ibm-3270-3.3.10ga4/0000750000175000017500000000000011302505056013146 5ustar bastianbastianibm-3270-3.3.10ga4/c3270/0000755000175000017500000000000011261530022013704 5ustar bastianbastianibm-3270-3.3.10ga4/c3270/selectc.h0000644000175000017500000000316611254565673015533 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of selectc.h */ #define unselect(baddr, len) #define area_is_selected(baddr, len) False ibm-3270-3.3.10ga4/c3270/x3270_glue.expect0000644000175000017500000002102711254565704016740 0ustar bastianbastian# Copyright (c) 2000-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the names of Paul Mattes nor the names of his contributors # may be used to endorse or promote products derived from this software # without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Glue functions between 'expect' and x3270 # Usage: source x3270_glue.expect namespace eval x3270 { variable verbose 0 variable pid 0 # Start function: Start ?-nohup? ?program? ?options? # # Sets up the 'expect' environment correctly and spawns a 3270 # interface process. # # The 'program' and 'options' can be: # "x3270 -script" to drive an x3270 session # "s3270" to drive a displayless 3270 session # "x3270if -i" to run as a child script of x3270 (via the Script() # action) # # If "args" is empty, or starts with an option besides '-nohup', # guesses which process to start. # It will only guess "x3270if -i" or "s3270"; if you want to start # x3270, you need to specify it explicitly. # # Returns the process ID of the spawned process. proc Start {args} { global stty_init timeout spawn_id env variable verbose variable pid if {$pid != 0} {return -code error "Already started."} # If the first argument is "-nohup", remember that as an # argument to 'spawn'. if {[lindex $args 0] == "-nohup"} { set nohup {-ignore HUP} set args [lrange $args 1 end] } { set nohup {} } # If there are no arguments, or the first argument is an # option, guess what to start. # If X3270INPUT is defined in the environment, this must be a # child script; start x3270if. Otherwise, this must be a peer # script; start s3270. if {$args == {} || [string index [lindex $args 0] 0] == "-"} { if {[info exists env(X3270INPUT)]} { set args [concat x3270if -i $args] } { if {$::tcl_platform(platform) == "windows"} { set args [concat ws3270 $args] } { set args [concat s3270 $args] } } } # Set up the pty initialization default. set stty_init -echo # Spawn the process. if {$verbose} { set pid [eval [concat spawn $nohup $args]] } { set pid [eval [concat spawn -noecho $nohup $args]] log_user 0 } # Set the 'expect' timeout. set timeout -1 return $pid } # Basic interface command. Used internally by the action functions # below. proc cmd {cmd} { variable verbose variable pid if {$pid==0} { return -code error "Not started yet." } if {$verbose} {puts "+$cmd"} send "$cmd\r" expect { -re "data: (.*)\r?\n.*\r?\nok\r?\n$" { set r $expect_out(buffer) } -re ".*ok\r?\n" { return {} } -re "(.*)\r?\n.*?\r?\nerror\r?\n" { return -code error "$expect_out(1,string)" } -re ".*error\r?\n" { return -code error \ "$cmd failed: $expect_out(buffer)" } eof { set pid 0; error "process died" } } # Convert result to a list. set ret {} set iter 0 while {1} { if {! [regexp "data: (.*?)\r?\n" $r dummy elt]} {break} if {$iter==1} {set ret [list $ret]} set r [string range $r [expr [string length $elt]+7] \ end] if {$iter > 0} { set ret [linsert $ret end $elt] } { set ret $elt } set iter [expr $iter + 1] } if {$verbose} {puts "ret $iter"} return $ret } # Convert an argument list to a comma-separated list that x3270 will # accept. proc commafy {alist} { set i 0 set a "" while {$i < [llength $alist]} { if {$i > 0} { set a "$a,[lindex $alist $i]" } { set a [lindex $alist $i] } incr i } return $a } # Quote a text string into x3270-acceptable format. proc stringify {text} { set a "\"" set i 0 while {$i < [string len $text]} { set c [string range $text $i $i] switch -- $c { "\n" { set a "$a\\n" } "\r" { set a "$a\\r" } " " { set a "$a\\ " } "\"" { set a "$a\\\"" } default { set a "$a$c" } } incr i } set a "$a\"" return $a } # User-accessible actions. # Some of these apply only to x3270 and x3270if, and not to s3270. proc AltCursor {} { return [cmd "AltCursor"] } proc Ascii {args} { return [cmd "Ascii([commafy $args])"] } proc AsciiField {} { return [cmd "AsciiField"] } proc Attn {} { return [cmd "Attn"] } proc BackSpace {} { return [cmd "BackSpace"] } proc BackTab {} { return [cmd "BackTab"] } proc CircumNot {} { return [cmd "CircumNot"] } proc Clear {} { return [cmd "Clear"] } proc CloseScript {} { return [cmd "CloseScript"] } proc Cols {} { return [lindex [Status] 7] } proc Compose {} { return [cmd "Compose"] } proc Connect {host} { return [cmd "Connect($host)"] } proc CursorSelect {} { return [cmd "CursorSelect"] } proc Delete {} { return [cmd "Delete"] } proc DeleteField {} { return [cmd "DeleteField"] } proc DeleteWord {} { return [cmd "DeleteWord"] } proc Disconnect {} { return [cmd "Disconnect"] } proc Down {} { return [cmd "Down"] } proc Dup {} { return [cmd "Dup"] } proc Ebcdic {args} { return [cmd "Ebcdic([commafy $args])"] } proc EbcdicField {} { return [cmd "EbcdicField"] } proc Enter {} { return [cmd "Enter"] } proc Erase {} { return [cmd "Erase"] } proc EraseEOF {} { return [cmd "EraseEOF"] } proc EraseInput {} { return [cmd "EraseInput"] } proc FieldEnd {} { return [cmd "FieldEnd"] } proc FieldMark {} { return [cmd "FieldMark"] } proc FieldExit {} { return [cmd "FieldExit"] } proc Flip {} { return [cmd "Flip"] } proc HexString {x} { return [cmd "HexString($x)"] } proc Home {} { return [cmd "Home"] } proc Info {text} { return [cmd "Info([stringify $text])"] } proc Insert {} { return [cmd "Insert"] } proc Interrupt {} { return [cmd "Interrupt"] } proc Key {k} { return [cmd "Key($k)"] } proc Keymap {k} { return [cmd "Keymap($k)"] } proc Left {} { return [cmd "Left"] } proc Left2 {} { return [cmd "Left2"] } proc MonoCase {} { return [cmd "MonoCase"] } proc MoveCursor {r c} { return [cmd "MoveCursor($r,$c)"] } proc Newline {} { return [cmd "Newline"] } proc NextWord {} { return [cmd "NextWord"] } proc PA {n} { return [cmd "PA($n)"] } proc PF {n} { return [cmd "PF($n)"] } proc PreviousWord {} { return [cmd "PreviousWord"] } proc Quit {} { exit } proc Reset {} { return [cmd "Reset"] } proc Right {} { return [cmd "Right"] } proc Right2 {} { return [cmd "Right2"] } proc Rows {} { return [lindex [Status] 6] } proc SetFont {font} { return [cmd "SetFont($font)"] } proc Snap {args} { return [cmd "Snap([commafy $args])"] } proc Status {} { variable verbose variable pid if {$pid==0} { return -code error "Not started yet." } if {$verbose} {puts "+(nothing)"} send "\r" expect { -re ".*ok\r?\n" { set r $expect_out(buffer) } eof { set pid 0; error "process died" } } return [string range $r 0 [expr [string length $r]-7]] } proc String {text} { return [cmd "String([stringify $text])"] } proc SysReq {} { return [cmd "SysReq"] } proc Tab {} { return [cmd "Tab"] } proc ToggleInsert {} { return [cmd "ToggleInsert"] } proc ToggleReverse {} { return [cmd "ToggleReverse"] } proc TemporaryKeymap {args} { return [cmd "TemporaryKeymap($args)"] } proc Transfer {args} { return [cmd "Transfer([commafy $args])"] } proc Up {} { return [cmd "Up"] } proc Wait {args} { return [cmd "Wait([commafy $args])"] } # Extra function to toggle verbosity on the fly. proc Setverbose {level} { variable verbose set verbose $level return } # Export all the user-visible functions. namespace export \[A-Z\]* } # Import all of the exported functions. namespace import x3270::* ibm-3270-3.3.10ga4/c3270/x3270hist.pl0000755000175000017500000002741711254565704015753 0ustar bastianbastian#!/usr/bin/perl # # Copyright (c) 2005-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # x3270hist.pl # An x3270 history plugin. # # Uses the x3270 plugin protocol to maintain command history. # Persistent history for a given is kept in the file ~/.x3hist.. # Each line of the history file contains a context prefix and text. Currently # supported prefixes are 'cms' (VM/CMS Ready prompt), 'cp' (VM CP mode) and # 'tso' (TSO READY prompt). Other modes, such as support for application # command history, may be added in the future. # # The x3270 plugin protocol starts the plugin process as a child of the # emulator process, with the plugin process's stdin and stdout connected # back to the emulator. # # The plugin is initially sent a string in the form: # x3270 host # If the plugin initializes successfully, it answers with the line "ok". # Otherwise it answers with an error message and exits. # # Just before the emulator sends any AID to the host, the emulator sends the # following text to the plugin: # aid # rows cols cursor # # The plugin responds with a line of text, which is ignored (but logged) by # the emulator. # # When the emulator user runs the Plugin(command,xxx) action, the emulator # sends the following text to the plugin: # command # rows cols cursor # # By convention, the values for are 'prev' and 'next', meaning that the # user wants the previous or next saved command respectively. Other commands # may be added in the future. # The plugin responds to the command with a line of text, which will be # interpreted as an x3270 macro, and thus can contain actions like # MoveCursor(), String(), etc. If the plugin is unable to process the command, # it responds with the Bell() action (to ring the terminal bell, if the problem # is minor such as running out of stored commands), or with the Info() action # (to pop up a dialog box to describe a more serious problem). # # Usage: # x3270hist.pl [-d] # The -d option causes debug information to be written to the file # /tmp/hist. # use strict; my $histmax = 100; # maximum history # Hashes that hold stored commands. The hash key is the host type or mode # (cms, cp or tso) my %hist; my %ix; # last returned index my %direction; # history direction if ($ARGV[0] eq "-d") { # Open the debug trace, unbuffered. open DEBUG, ">/tmp/hist" . $$; select DEBUG; $| = 1; select STDOUT; } # Make stdout unbuffered. $| = 1; # Read the initial status and say hello. my ($emu, $dummy, $host) = split /\s+/, ; if (!defined($host)) { die "Bad init string\n"; } print "ok\n"; print DEBUG "emulator $emu host $host\n"; # See if there's a history file for this host. if (defined($ENV{'HOME'}) && -d $ENV{'HOME'}) { my $histdir = "$ENV{'HOME'}/.x3hist"; if (-d $histdir || mkdir $histdir) { if (open HFILE, "<$histdir/$host") { my $line; my $mode; my $remainder; # Read in the history file, keeping only the last # $history_max entries for each mode. while ($line = ) { chomp $line; ($mode, $remainder) = split(/\s+/, $line, 2); print DEBUG "file: got $mode $remainder\n"; push @{$hist{$mode}}, $remainder; $ix{$mode} = scalar(@{$hist{$mode}}) - 1; if ($ix{$mode} >= $histmax) { shift @{$hist{$mode}}; $ix{$mode}--; } $direction{$mode} = -1; } # Rewrite the history file. close HFILE; open HFILE, ">$histdir/$host"; foreach $mode (keys(%hist)) { for (@{$hist{$mode}}) { print HFILE "$mode $_\n"; } } close HFILE; } # Get ready to append to it. open HFILE, ">>$histdir/$host"; select HFILE; $| = 1; select STDOUT; } } # AID digester. # Returns the row on the screen where the input field is, -1 if it can't # recognize one, and 0 if it was given an AID to process and there's nothing # to save. Also returns the mode (cms, cp, tso). sub digest { my $aid = shift; my $i; my @screen; my @sf; my $nsf = 0; my $cmd_row = -1; my $mode; my ($dummy, $rows, $dummy, $cols, $dummy, $cursor) = split /\s+/, ; print DEBUG "AID $aid rows $rows cols $cols cursor $cursor\n"; # Read, or skip, the screen data. # @screen contains the ASCII text # @sf contains the SF specifiers, with '*' indicating normal # 'z' indicating invisible, and # '+' indicating highlighted foreach $i (0..$rows-1) { my $row = ; #print DEBUG "got [$i] $row"; # If it isn't an Enter or a command, we don't care. if ($aid ne "Enter" && $aid ne "command") { #print DEBUG "ignoring\n"; next; } my $c; $screen[$i] = ""; $sf[$i] = ""; foreach $c (split /\s+/, $row) { # Treat SFs as spaces. if ($c =~ /SF/) { $screen[$i] .= " "; if ($c =~ /c0=(..)/ && ((hex("0x" . $1) & 0x0c) == 0x0c)) { #print DEBUG "invisible!\n"; $sf[$i] .= "z"; } elsif ($c =~ /c0=(..)/ && ((hex("0x" . $1) & 0x0c) == 0x08)) { #print DEBUG "highlighted!\n"; $sf[$i] .= "+"; } else { $sf[$i] .= "*"; } $nsf++; next; } # Ignore SAs. if ($c =~ /SA/) { next; } # Translate NULLs to spaces (for now). if (hex("0x" . $c) < ord(" ")) { $c = "20"; } # Accumulate the result. $screen[$i] .= chr(hex("0x" . $c)); $sf[$i] .= " "; } #print DEBUG "done: ", $screen[$i] . "\n"; #print DEBUG "done: ", $sf[$i] . "\n"; } if ($aid ne "Enter" && $aid ne "command") { #print DEBUG "AID not Enter or command\n"; return 0; } # The CMS input area is an unprotected field on the last two rows of # the screen, taking up all of the second-last row and all but the last # 21 positions of the last row. # # The TSO input area is either a cleared screen with an SF at the end # of the last row, or a highlighted 'READY ' prompt with an # unhighlighted empty field filling the rest of the screen. # If there is any highlighted text below the 'READY ', then there is a # subcommand active. if (substr($sf[$rows - 3], -1, 1) eq "*" && substr($sf[$rows - 1], -21, 1) eq "*" && $cursor >= ($cols * ($rows - 2)) && $cursor < ($cols * $rows) - 21) { # CMS or CP command prompt. $cmd_row = $rows - 2; if (substr($screen[$rows - 1], -20, 7) eq "CP READ") { $mode = "cp"; } else { $mode = "cms"; } } elsif ($nsf == 1 && substr($sf[$rows - 1], $cols - 1, 1) eq "*") { # TSO cleared screen. $cmd_row = 0; $mode = "tso"; } else { for ($i = $rows - 1; $i >= 0; $i--) { if (($sf[$i] =~ /\+/) && substr($screen[$i], 1, 6) ne "READY ") { # TSO Subcommand mode. print DEBUG "TSO subcommand mode?\n"; last; } if ((substr($sf[$i], 0, 8) eq "+ *") && (substr($screen[$i], 1, 6) eq "READY ") && (substr($screen[$i], 8) =~ /^\s+$/) && ($cursor >= ($i + 1) * $cols)) { # TSO 'READY' prompt. $cmd_row = $i + 1; $mode = "tso"; last; } } } if ($cmd_row == -1) { #print DEBUG "AID done not found\n"; return -1; } if ($aid eq "Enter") { my $cmd = ""; if ($mode eq "tso") { my $j; for ($j = $cmd_row; $j < $rows; $j++) { $cmd .= $screen[$j]; } } else { $cmd = $screen[$rows-2] . substr($screen[$rows-1], 1, $cols-21); } while ($cmd =~ /^.*\s+$/) { chop $cmd; } while ($cmd =~ /^\s+.*$/) { $cmd = substr($cmd, 1); } print DEBUG "mode='$mode' cmd='$cmd'\n"; if ($cmd ne "") { if (defined($hist{$mode})) { if ((@{$hist{$mode}})[-1] eq $cmd) { print DEBUG "duplicate\n"; return -1; } } push @{$hist{$mode}}, $cmd; $ix{$mode} = scalar(@{$hist{$mode}}) - 1; if ($ix{$mode} >= $histmax) { shift @{@hist{$mode}}; $ix{$mode}--; } $direction{$mode} = -1; print HFILE "$mode $cmd\n"; } else { $cmd_row = -1; } } #print DEBUG "AID done row $cmd_row\n"; return ($cmd_row, $mode); } # Ring the terminal bell with our response, but don't display any text. sub bell { my $msg = shift; # Print it to the debug file. print DEBUG "Bell - $msg\n"; # Tell the emulator. print 'Bell("', $msg, '")', "\n"; } # Pop up an error on the terminal. sub info { my $msg = shift; # Print it to the debug file. print DEBUG "Info - $msg\n"; # Tell the emulator. print 'Info("', $msg, '")', "\n"; } # Respond successfully to a command. sub success { my $msg = shift; # Print it to the debug file. print DEBUG "Success - $msg\n"; # Tell the emulator. print "$msg\n"; } # Quote a string for String(). sub quoteit { my $s = shift; $s =~ s/([\\"])/\\\1/g; return '"' . $s . '"'; } # Read indications from the emulator. while () { # Get the verb. We can do verb-specific splitting again later. print DEBUG "Got $_"; my ($verb) = split; if ($verb eq "aid") { # Split again. my ($dummy, $aid) = split; my ($okrow, $mode) = digest($aid); if ($okrow <= 0) { print "no new command\n"; } else { print "saved ", $mode, " ", (@{$hist{$mode}})[-1], "\n"; } } elsif ($verb eq "command") { my ($dummy, $what) = split; my ($okrow, $mode) = digest("command"); my $jump = 0; if ($what eq "prev") { if ($okrow < 0) { bell("Not in an input field."); next; } if (!defined($hist{$mode})) { bell("No saved '" . $mode . "' commands."); next; } if ($direction{$mode} > 0) { $direction{$mode} = -1; $jump = 2; } else { $jump = 1; } if ($ix{$mode} - ($jump - 1) < 0) { bell("No more '" . $mode . "' commands."); } else { success("MoveCursor($okrow,0) EraseEOF() String(" . quoteit((@{$hist{$mode}})[$ix{$mode} - ($jump - 1)]) . ")"); $ix{$mode} -= $jump; } $direction{$mode} = -1; } elsif ($what eq "next") { if ($okrow < 0) { bell("Not in an input field."); next; } if (!defined($hist{$mode})) { bell("No saved '" . $mode . "' commands."); next; } if ($direction{$mode} < 0) { $direction{$mode} = 1; $jump = 2; } else { $jump = 1; } if ($ix{$mode} + $jump > scalar @{$hist{$mode}}) { bell("No more '" . $mode . "' commands."); } else { $ix{$mode} += $jump; success("MoveCursor($okrow,0) EraseEOF() String(" . quoteit((@{$hist{$mode}})[$ix{$mode}]) . ")"); $direction{$mode} = 1; } } else { info("Unknown history command: '" . $what . "'"); } } else { info("Unknown history verb '" . $verb . "'"); } } print DEBUG "EOF, exiting\n"; ibm-3270-3.3.10ga4/c3270/xio.c0000644000175000017500000000752211254565704014676 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, * GA 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor their * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR * GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xio.c * Low-level I/O setup functions and exit code. */ #include "globals.h" #include "actionsc.h" #include "hostc.h" #include "telnetc.h" #include "togglesc.h" #include "utilc.h" #include "xioc.h" /* Statics. */ static unsigned long ns_read_id; static unsigned long ns_exception_id; static Boolean reading = False; static Boolean excepting = False; /* * Called to set up input on a new network connection. */ void x_add_input(int net_sock) { ns_exception_id = AddExcept(net_sock, net_exception); excepting = True; ns_read_id = AddInput(net_sock, net_input); reading = True; } /* * Called when an exception is received to disable further exceptions. */ void x_except_off(void) { if (excepting) { RemoveInput(ns_exception_id); excepting = False; } } /* * Called when exception processing is complete to re-enable exceptions. * This includes removing and restoring reading, so the exceptions are always * processed first. */ void x_except_on(int net_sock) { if (excepting) return; if (reading) RemoveInput(ns_read_id); ns_exception_id = AddExcept(net_sock, net_exception); excepting = True; if (reading) ns_read_id = AddInput(net_sock, net_input); } /* * Called to disable input on a closing network connection. */ void x_remove_input(void) { if (reading) { RemoveInput(ns_read_id); reading = False; } if (excepting) { RemoveInput(ns_exception_id); excepting = False; } } /* * Application exit, with cleanup. */ void x3270_exit(int n) { static Boolean already_exiting = 0; /* Handle unintentional recursion. */ if (already_exiting) return; already_exiting = True; /* Turn off toggle-related activity. */ shutdown_toggles(); /* Shut down the socket gracefully. */ host_disconnect(False); /* Tell anyone else who's interested. */ st_changed(ST_EXITING, True); #if defined(WC3270) /*[*/ if (n) { char buf[2]; printf("\n[Press ] "); fflush(stdout); (void) fgets(buf, sizeof(buf), stdin); } #endif /*]*/ exit(n); } void Quit_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Quit_action, event, params, num_params); if (!w || !CONNECTED) { x3270_exit(0); } } ibm-3270-3.3.10ga4/c3270/resolverc.h0000644000175000017500000000361311254565704016105 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resolverc.h * Hostname resolution. */ extern int resolve_host_and_port(const char *host, char *portname, int ix, unsigned short *pport, struct sockaddr *sa, socklen_t *sa_len, char *errmsg, int em_size, int *lastp); extern int numeric_host_and_port(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, char *errmsg, int em_len); ibm-3270-3.3.10ga4/c3270/resources.c0000644000175000017500000001175711254565673016123 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include #include "localdefs.h" extern String fallbacks[]; /* s3270 substitute Xt resource database. */ #if defined(C3270) /*[*/ /* * These should be properly #ifdef'd in X3270.xad, but it would turn it into * spaghetti. */ static struct { char *name; char *value; } rdb[] = { { "message.hour", "hour" }, { "message.hours", "hours" }, { "message.minute", "minute" }, { "message.bindPluName", "BIND PLU name:" }, { "message.buildDisabled", "disabled" }, { "message.buildEnabled", "enabled" }, { "message.buildOpts", "Build options:" }, { "message.byte", "byte" }, { "message.bytes", "bytes" }, { "message.characterSet", "EBCDIC character set:" }, { "message.charMode", "NVT character mode" }, { "message.columns", "columns" }, { "message.connectedTo", "Connected to:" }, { "message.connectionPending", "Connection pending to:" }, { "message.dbcsCgcsgid", "Host DBCS CGCSGID:" }, { "message.defaultCharacterSet", "Default (us) EBCDIC character set" }, { "message.dsMode", "3270 mode" }, { "message.extendedDs", "extended data stream" }, { "message.fullColor", "color" }, { "message.hostCodePage", "Host code page:" }, { "message.keyboardMap", "Keyboard map:" }, { "message.lineMode", "NVT line mode" }, { "message.localeCodeset", "Locale codeset:" }, { "message.luName", "LU name:" }, { "message.minute", "minute" }, { "message.minutes", "minutes" }, { "message.model", "Model" }, { "message.mono", "monochrome" }, { "message.notConnected", "Not connected" }, { "message.port", "Port:" }, { "message.proxyType", "Proxy type:" }, { "message.Received", "Received" }, { "message.received", "received" }, { "message.record", "record" }, { "message.records", "records" }, { "message.rows", "rows" }, { "message.sbcsCgcsgid", "Host SBCS CGCSGID:" }, { "message.second", "second" }, { "message.seconds", "seconds" }, { "message.secure", "via TLS/SSL" }, { "message.sent", "Sent" }, { "message.server", "Server:" }, { "message.specialCharacters", "Special characters:" }, { "message.sscpMode", "SSCP-LU mode" }, { "message.standardDs", "standard data stream" }, { "message.terminalName", "Terminal name:" }, { "message.tn3270eNoOpts", "No TN3270E options" }, { "message.tn3270eOpts", "TN3270E options:" }, #if defined(_WIN32) /*[*/ { "message.windowsCodePage", "Windows code page:" }, #endif /*][*/ { NULL, NULL } }; #endif /*]*/ static struct dresource { struct dresource *next; const char *name; char *value; } *drdb = NULL, **drdb_next = &drdb; void add_resource(const char *name, char *value) { struct dresource *d; for (d = drdb; d != NULL; d = d->next) { if (!strcmp(d->name, name)) { d->value = value; return; } } d = Malloc(sizeof(struct dresource)); d->next = NULL; d->name = name; d->value = value; *drdb_next = d; drdb_next = &d->next; } char * get_resource(const char *name) { struct dresource *d; int i; for (d = drdb; d != NULL; d = d->next) { if (!strcmp(d->name, name)) { return d->value; } } for (i = 0; fallbacks[i] != NULL; i++) { if (!strncmp(fallbacks[i], name, strlen(name)) && *(fallbacks[i] + strlen(name)) == ':') { return fallbacks[i] + strlen(name) + 2; } } #if defined(C3270) /*[*/ for (i = 0; rdb[i].name != (char *)NULL; i++) { if (!strcmp(rdb[i].name, name)) { return rdb[i].value; } } #endif /*]*/ return NULL; } ibm-3270-3.3.10ga4/c3270/screen.c0000644000175000017500000012523511257154430015351 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * screen.c * A curses-based 3270 Terminal Emulator * Screen drawing */ #include "globals.h" #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "ctlr.h" #include "actionsc.h" #include "charsetc.h" #include "ctlrc.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "screenc.h" #include "tablesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" #include "xioc.h" /* The usual x3270 'COLS' variable is cCOLS in c3270. */ #undef COLS extern int cCOLS; #if defined(HAVE_NCURSESW_NCURSES_H) /*[*/ #include #elif defined(HAVE_NCURSES_NCURSES_H) /*][*/ #include #elif defined(HAVE_NCURSES_H) /*][*/ #include #else /*][*/ #include #endif /*]*/ /* Curses' 'COLS' becomes cursesCOLS, to remove any ambiguity. */ #define cursesCOLS COLS #define cursesLINES LINES #define STATUS_PUSH_MS 5000 static int cp[16][16][2]; static int cmap8[16] = { COLOR_BLACK, /* neutral black */ COLOR_BLUE, /* blue */ COLOR_RED, /* red */ COLOR_MAGENTA, /* pink */ COLOR_GREEN, /* green */ COLOR_CYAN, /* turquoise */ COLOR_YELLOW, /* yellow */ COLOR_WHITE, /* neutral white */ COLOR_BLACK, /* black */ /* alas, in bold, this may be gray */ COLOR_BLUE, /* deep blue */ COLOR_YELLOW, /* orange */ COLOR_MAGENTA, /* purple */ COLOR_GREEN, /* pale green */ COLOR_CYAN, /* pale turquoise */ COLOR_BLACK, /* gray */ COLOR_WHITE /* white */ }; static int cmap16[16] = { COLOR_BLACK, /* neutral black */ 8 + COLOR_BLUE, /* blue */ COLOR_RED, /* red */ 8 + COLOR_MAGENTA, /* pink */ 8 + COLOR_GREEN, /* green */ 8 + COLOR_CYAN, /* turquoise */ 8 + COLOR_YELLOW, /* yellow */ 8 + COLOR_WHITE, /* neutral white */ COLOR_BLACK, /* black */ /* alas, in bold, this may be gray */ COLOR_BLUE, /* deep blue */ 8 + COLOR_RED, /* orange */ COLOR_MAGENTA, /* purple */ COLOR_GREEN, /* pale green */ COLOR_CYAN, /* pale turquoise */ COLOR_WHITE, /* gray */ 8 + COLOR_WHITE /* white */ }; static int *cmap = cmap8; static int defcolor_offset = 0; static int field_colors8[4] = { COLOR_GREEN, /* default */ COLOR_RED, /* intensified */ COLOR_BLUE, /* protected */ COLOR_WHITE /* protected, intensified */ }; static int field_colors16[4] = { 8 + COLOR_GREEN,/* default */ COLOR_RED, /* intensified */ 8 + COLOR_BLUE, /* protected */ 8 + COLOR_WHITE /* protected, intensified */ }; static int *field_colors = field_colors8; static int bg_color = COLOR_BLACK; static int defattr = A_NORMAL; static unsigned long input_id; Boolean escaped = True; enum ts { TS_AUTO, TS_ON, TS_OFF }; enum ts me_mode = TS_AUTO; enum ts ab_mode = TS_AUTO; #if defined(C3270_80_132) /*[*/ struct screen_spec { int rows, cols; char *mode_switch; } screen_spec; struct screen_spec altscreen_spec, defscreen_spec; static SCREEN *def_screen = NULL, *alt_screen = NULL; static SCREEN *cur_screen = NULL; static void parse_screen_spec(const char *str, struct screen_spec *spec); #endif /*]*/ static struct { char *name; int index; } cc_name[] = { { "black", COLOR_BLACK }, { "red", COLOR_RED }, { "green", COLOR_GREEN }, { "yellow", COLOR_YELLOW }, { "blue", COLOR_BLUE }, { "magenta", COLOR_MAGENTA }, { "cyan", COLOR_CYAN }, { "white", COLOR_WHITE }, { CN, 0 } }; static int status_row = 0; /* Row to display the status line on */ static int status_skip = 0; /* Row to blank above the status line */ static Boolean curses_alt = False; static void kybd_input(void); static void kybd_input2(int k, ucs4_t ucs4, int alt); static void draw_oia(void); static void screen_connect(Boolean connected); static void status_connect(Boolean ignored); static void status_3270_mode(Boolean ignored); static void status_printer(Boolean on); static int get_color_pair(int fg, int bg); static int color_from_fa(unsigned char); static void set_status_row(int screen_rows, int emulator_rows); static Boolean ts_value(const char *s, enum ts *tsp); static void display_linedraw(unsigned char ebc); static void display_ge(unsigned char ebc); static void init_user_colors(void); static void init_user_attribute_colors(void); static void screen_init2(void); /* Initialize the screen. */ void screen_init(void) { register_schange(ST_CONNECT, screen_connect); #if !defined(C3270_80_132) /*[*/ /* Disallow altscreen/defscreen. */ if ((appres.altscreen != CN) || (appres.defscreen != CN)) { (void) fprintf(stderr, "altscreen/defscreen not supported\n"); exit(1); } /* Initialize curses. */ if (initscr() == NULL) { (void) fprintf(stderr, "Can't initialize terminal.\n"); exit(1); } #else /*][*/ /* Parse altscreen/defscreen. */ if ((appres.altscreen != CN) ^ (appres.defscreen != CN)) { (void) fprintf(stderr, "Must specify both altscreen and defscreen\n"); exit(1); } if (appres.altscreen != CN) { parse_screen_spec(appres.altscreen, &altscreen_spec); if (altscreen_spec.rows < 27 || altscreen_spec.cols < 132) { (void) fprintf(stderr, "Rows and/or cols too small on " "alternate screen (mininum 27x132)\n"); exit(1); } parse_screen_spec(appres.defscreen, &defscreen_spec); if (defscreen_spec.rows < 24 || defscreen_spec.cols < 80) { (void) fprintf(stderr, "Rows and/or cols too small on " "default screen (mininum 24x80)\n"); exit(1); } } #endif /*]*/ /* * See about keyboard Meta-key behavior. * * Note: Formerly, "auto" meant to use the terminfo 'km' capability (if * set, then disable metaEscape). But popular terminals like the * Linux console and xterms are actually configurable, though they have * fixed terminfo capabilities. It is harmless to enable metaEscape * when the terminal supports it, so the default is now 'on'. * * Setting the high bit for the Meta key is a pretty achaic idea, IMO, * so we no loger support it. */ if (!ts_value(appres.meta_escape, &me_mode)) popup_an_error("Invalid %s value: '%s', " "assuming 'auto'\n", ResMetaEscape, appres.meta_escape); if (me_mode == TS_AUTO) me_mode = TS_ON; /* See about all-bold behavior. */ if (appres.all_bold_on) ab_mode = TS_ON; else if (!ts_value(appres.all_bold, &ab_mode)) popup_an_error("Invalid %s value: '%s', " "assuming 'auto'\n", ResAllBold, appres.all_bold); if (ab_mode == TS_AUTO) ab_mode = (appres.m3279 && (appres.color8 || COLORS < 16))? TS_ON: TS_OFF; if (ab_mode == TS_ON) defattr |= A_BOLD; /* Pull in the user's color mappings. */ init_user_colors(); init_user_attribute_colors(); } /* Really initialize the screen. */ static void screen_connect(Boolean connected) { static Boolean initted = False; int want_ov_rows = ov_rows; int want_ov_cols = ov_cols; Boolean oversize = False; if (initted || !connected) return; initted = True; #if !defined(C3270_80_132) /*[*/ /* Initialize curses. */ if (initscr() == NULL) { (void) fprintf(stderr, "Can't initialize terminal.\n"); exit(1); } #else /*][*/ /* Set up ncurses, and see if it's within bounds. */ if (appres.defscreen != CN) { char nbuf[64]; (void) sprintf(nbuf, "COLUMNS=%d", defscreen_spec.cols); putenv(NewString(nbuf)); (void) sprintf(nbuf, "LINES=%d", defscreen_spec.rows); putenv(NewString(nbuf)); def_screen = newterm(NULL, stdout, stdin); if (def_screen == NULL) { (void) fprintf(stderr, "Can't initialize %dx%d defscreen terminal.\n", defscreen_spec.rows, defscreen_spec.cols); exit(1); } if (write(1, defscreen_spec.mode_switch, strlen(defscreen_spec.mode_switch)) < 0) { endwin(); exit(1); } } if (appres.altscreen) { char nbuf[64]; (void) sprintf(nbuf, "COLUMNS=%d", altscreen_spec.cols); putenv(NewString(nbuf)); (void) sprintf(nbuf, "LINES=%d", altscreen_spec.rows); putenv(NewString(nbuf)); } alt_screen = newterm(NULL, stdout, stdin); if (alt_screen == NULL) { popup_an_error("Can't initialize terminal.\n"); exit(1); } if (def_screen == NULL) { def_screen = alt_screen; cur_screen = def_screen; } if (appres.altscreen) { set_term(alt_screen); cur_screen = alt_screen; } /* If they want 80/132 switching, then they want a model 5. */ if (def_screen != alt_screen && model_num != 5) { set_rows_cols(5, 0, 0); } #endif /*]*/ while (cursesLINES < maxROWS || cursesCOLS < maxCOLS) { /* * First, cancel any oversize. This will get us to the correct * model number, if there is any. */ if ((ov_cols && ov_cols > cursesCOLS) || (ov_rows && ov_rows > cursesLINES)) { ov_cols = 0; ov_rows = 0; oversize = True; continue; } /* If we're at the smallest screen now, give up. */ if (model_num == 2) { popup_an_error("Emulator won't fit on a %dx%d " "display.\n", cursesLINES, cursesCOLS); exit(1); } /* Try a smaller model. */ set_rows_cols(model_num - 1, 0, 0); } /* * Now, if they wanted an oversize, but didn't get it, try applying it * again. */ if (oversize) { if (want_ov_rows > cursesLINES - 2) want_ov_rows = cursesLINES - 2; if (want_ov_rows < maxROWS) want_ov_rows = maxROWS; if (want_ov_cols > cursesCOLS) want_ov_cols = cursesCOLS; set_rows_cols(model_num, want_ov_cols, want_ov_rows); } /* * Finally, if they want automatic oversize, see if that's possible. */ if (ov_auto && (maxROWS < cursesLINES - 2 || maxCOLS < cursesCOLS)) set_rows_cols(model_num, cursesCOLS, cursesLINES - 2); /* Figure out where the status line goes, if it fits. */ #if defined(C3270_80_132) /*[*/ if (def_screen != alt_screen) { /* Start out in defscreen mode. */ set_status_row(defscreen_spec.rows, MODEL_2_ROWS); } else #endif /*]*/ { /* Start out in altscreen mode. */ set_status_row(cursesLINES, maxROWS); } /* Set up callbacks for state changes. */ register_schange(ST_CONNECT, status_connect); register_schange(ST_3270_MODE, status_3270_mode); register_schange(ST_PRINTER, status_printer); /* Implement reverse video. */ if (appres.reverse_video) { int c; bg_color = COLOR_WHITE; c = cmap8[HOST_COLOR_NEUTRAL_BLACK]; cmap8[HOST_COLOR_NEUTRAL_BLACK] = cmap8[HOST_COLOR_NEUTRAL_WHITE]; cmap8[HOST_COLOR_NEUTRAL_WHITE] = c; c = cmap16[HOST_COLOR_NEUTRAL_BLACK]; cmap16[HOST_COLOR_NEUTRAL_BLACK] = cmap16[HOST_COLOR_NEUTRAL_WHITE]; cmap16[HOST_COLOR_NEUTRAL_WHITE] = c; } /* Play with curses color. */ if (!appres.mono) { start_color(); if (has_colors() && COLORS >= 8) { if (!appres.color8 && COLORS >= 16) { cmap = cmap16; field_colors = field_colors16; defcolor_offset = 8; if (appres.reverse_video) bg_color += defcolor_offset; } if (appres.m3279) defattr = get_color_pair( defcolor_offset + COLOR_BLUE, bg_color); else defattr = get_color_pair( defcolor_offset + COLOR_GREEN, bg_color); if (COLORS < 16) appres.color8 = True; #if defined(C3270_80_132) && defined(NCURSES_VERSION) /*[*/ if (def_screen != alt_screen) { SCREEN *s = cur_screen; /* * Initialize the colors for the other * screen. */ if (s == def_screen) set_term(alt_screen); else set_term(def_screen); start_color(); curses_alt = !curses_alt; (void) get_color_pair(field_colors[2], bg_color); curses_alt = !curses_alt; set_term(s); } #endif /*]*/ } else { appres.mono = True; appres.m3279 = False; /* Get the terminal name right. */ set_rows_cols(model_num, want_ov_cols, want_ov_rows); } } /* Set up the controller. */ ctlr_init(-1); ctlr_reinit(-1); screen_init2(); } /* Configure the TTY settings for a curses screen. */ static void setup_tty(void) { if (appres.cbreak_mode) cbreak(); else raw(); noecho(); nonl(); intrflush(stdscr,FALSE); if (appres.curses_keypad) keypad(stdscr, TRUE); meta(stdscr, TRUE); nodelay(stdscr, TRUE); refresh(); } #if defined(C3270_80_132) /*[*/ static void swap_screens(SCREEN *new_screen) { set_term(new_screen); cur_screen = new_screen; } #endif /*]*/ /* Secondary screen initialization. */ static void screen_init2(void) { escaped = False; /* * Finish initializing ncurses. This should be the first time that it * will send anything to the terminal. */ /* Set up the keyboard. */ #if defined(C3270_80_132) /*[*/ swap_screens(alt_screen); #endif /*]*/ setup_tty(); scrollok(stdscr, FALSE); #if defined(NCURSES_MOUSE_VERSION) /*[*/ if (appres.mouse) mousemask(BUTTON1_PRESSED, NULL); #endif /*]*/ #if defined(C3270_80_132) /*[*/ if (def_screen != alt_screen) { /* * The first setup_tty() set up altscreen. * Set up defscreen now, and leave it as the * current curses screen. */ swap_screens(def_screen); setup_tty(); scrollok(stdscr, FALSE); #if defined(NCURSES_MOUSE_VERSION) /*[*/ if (appres.mouse) mousemask(BUTTON1_PRESSED, NULL); #endif /*]*/ } #endif /*]*/ /* Subscribe to input events. */ input_id = AddInput(0, kybd_input); /* Ignore SIGINT and SIGTSTP. */ signal(SIGINT, SIG_IGN); signal(SIGTSTP, SIG_IGN); #if defined(C3270_80_132) /*[*/ /* Ignore SIGWINCH -- it might happen when we do 80/132 changes. */ if (def_screen != alt_screen) signal(SIGWINCH, SIG_IGN); #endif /*]*/ } /* Calculate where the status line goes now. */ static void set_status_row(int screen_rows, int emulator_rows) { if (screen_rows < emulator_rows + 1) { status_row = status_skip = 0; } else if (screen_rows == emulator_rows + 1) { status_skip = 0; status_row = emulator_rows; } else { status_skip = screen_rows - 2; status_row = screen_rows - 1; } } /* * Parse a tri-state resource value. * Returns True for success, False for failure. */ static Boolean ts_value(const char *s, enum ts *tsp) { *tsp = TS_AUTO; if (s != CN && s[0]) { int sl = strlen(s); if (!strncasecmp(s, "true", sl)) *tsp = TS_ON; else if (!strncasecmp(s, "false", sl)) *tsp = TS_OFF; else if (strncasecmp(s, "auto", sl)) return False; } return True; } /* Allocate a color pair. */ static int get_color_pair(int fg, int bg) { static int next_pair[2] = { 1, 1 }; int pair; #if defined(C3270_80_132) && defined(NCURSES_VERSION) /*[*/ /* ncurses allocates colors for each screen. */ int pair_index = !!curses_alt; #else /*][*/ /* curses allocates colors globally. */ const int pair_index = 0; #endif /*]*/ if ((pair = cp[fg][bg][pair_index])) return COLOR_PAIR(pair); if (next_pair[pair_index] >= COLOR_PAIRS) return 0; if (init_pair(next_pair[pair_index], fg, bg) != OK) return 0; pair = cp[fg][bg][pair_index] = next_pair[pair_index]++; return COLOR_PAIR(pair); } /* * Initialize the user-specified attribute color mappings. */ static void init_user_attribute_color(int *a, const char *resname) { char *r; unsigned long l; char *ptr; int i; if ((r = get_resource(resname)) == CN) return; for (i = 0; cc_name[i].name != CN; i++) { if (!strcasecmp(r, cc_name[i].name)) { *a = cc_name[i].index; return; } } l = strtoul(r, &ptr, 0); if (ptr == r || *ptr != '\0' || (int)l >= COLORS) { xs_warning("Invalid %s value: %s", resname, r); return; } *a = (int)l; } static void init_user_attribute_colors(void) { init_user_attribute_color(&field_colors[0], ResCursesColorForDefault); init_user_attribute_color(&field_colors[1], ResCursesColorForIntensified); init_user_attribute_color(&field_colors[2], ResCursesColorForProtected); init_user_attribute_color(&field_colors[3], ResCursesColorForProtectedIntensified); } /* * Map a field attribute to a curses color index. * Applies only to m3270 mode -- does not work for mono. */ static int default_color_from_fa(unsigned char fa) { # define DEFCOLOR_MAP(f) \ ((((f) & FA_PROTECT) >> 4) | (((f) & FA_INT_HIGH_SEL) >> 3)) return field_colors[DEFCOLOR_MAP(fa)]; } static int color_from_fa(unsigned char fa) { if (appres.m3279) { int fg; fg = default_color_from_fa(fa); return get_color_pair(fg, bg_color) | (((ab_mode == TS_ON) || FA_IS_HIGH(fa))? A_BOLD: A_NORMAL); } else if (!appres.mono) { return get_color_pair(defcolor_offset + COLOR_GREEN, bg_color) | (((ab_mode == TS_ON) || FA_IS_HIGH(fa))? A_BOLD: A_NORMAL); } else { /* No color at all. */ return ((ab_mode == TS_ON) || FA_IS_HIGH(fa))? A_BOLD: A_NORMAL; } } /* * Set up the user-specified color mappings. */ /*static*/ void init_user_color(const char *name, int ix) { char *r; int i; unsigned long l; char *ptr; r = get_fresource("%s%s", ResCursesColorForHostColor, name); if (r == CN) r = get_fresource("%s%d", ResCursesColorForHostColor, ix); if (r == CN) return; for (i = 0; cc_name[i].name != CN; i++) { if (!strcasecmp(r, cc_name[i].name)) { cmap[ix] = cc_name[i].index; return; } } l = strtoul(r, &ptr, 0); if (ptr != r && *ptr == '\0' && (int)l < COLORS) { cmap[ix] = (int)l; return; } xs_warning("Invalid %s value '%s'", ResCursesColorForHostColor, r); } static void init_user_colors(void) { int i; for (i = 0; host_color[i].name != CN; i++) { init_user_color(host_color[i].name, host_color[i].index); } } /* * Find the display attributes for a baddr, fa_addr and fa. */ static int calc_attrs(int baddr, int fa_addr, int fa) { int fg, bg, gr, a; /* Compute the color. */ /* * Monochrome is easy, and so is color if nothing is * specified. */ if (!appres.m3279 || (!ea_buf[baddr].fg && !ea_buf[fa_addr].fg && !ea_buf[baddr].bg && !ea_buf[fa_addr].bg)) { a = color_from_fa(fa); } else { /* The current location or the fa specifies the fg or bg. */ if (ea_buf[baddr].fg) fg = cmap[ea_buf[baddr].fg & 0x0f]; else if (ea_buf[fa_addr].fg) fg = cmap[ea_buf[fa_addr].fg & 0x0f]; else fg = default_color_from_fa(fa); if (ea_buf[baddr].bg) bg = cmap[ea_buf[baddr].bg & 0x0f]; else if (ea_buf[fa_addr].bg) bg = cmap[ea_buf[fa_addr].bg & 0x0f]; else bg = cmap[HOST_COLOR_NEUTRAL_BLACK]; a = get_color_pair(fg, bg); } /* Compute the display attributes. */ if (ea_buf[baddr].gr) gr = ea_buf[baddr].gr; else if (ea_buf[fa_addr].gr) gr = ea_buf[fa_addr].gr; else gr = 0; if (gr & GR_BLINK) a |= A_BLINK; if (gr & GR_REVERSE) a |= A_REVERSE; if (gr & GR_UNDERLINE) a |= A_UNDERLINE; if ((gr & GR_INTENSIFY) || (ab_mode == TS_ON) || FA_IS_HIGH(fa)) a |= A_BOLD; return a; } /* Display what's in the buffer. */ void screen_disp(Boolean erasing _is_unused) { int row, col; int field_attrs; unsigned char fa; extern Boolean screen_alt; struct screen_spec *cur_spec; #if defined(X3270_DBCS) /*[*/ enum dbcs_state d; #endif /*]*/ int fa_addr; /* This may be called when it isn't time. */ if (escaped) return; #if defined(C3270_80_132) /*[*/ /* See if they've switched screens on us. */ if (def_screen != alt_screen && screen_alt != curses_alt) { if (screen_alt) { if (write(1, altscreen_spec.mode_switch, strlen(altscreen_spec.mode_switch)) < 0) exit(1); trace_event("Switching to alt (%dx%d) screen.\n", altscreen_spec.rows, altscreen_spec.cols); swap_screens(alt_screen); cur_spec = &altscreen_spec; } else { if (write(1, defscreen_spec.mode_switch, strlen(defscreen_spec.mode_switch)) < 0) exit(1); trace_event("Switching to default (%dx%d) screen.\n", defscreen_spec.rows, defscreen_spec.cols); swap_screens(def_screen); cur_spec = &defscreen_spec; } /* Figure out where the status line goes now, if it fits. */ set_status_row(cur_spec->rows, ROWS); curses_alt = screen_alt; /* Tell curses to forget what may be on the screen already. */ clear(); } #endif /*]*/ fa = get_field_attribute(0); fa_addr = find_field_attribute(0); field_attrs = calc_attrs(0, fa_addr, fa); for (row = 0; row < ROWS; row++) { int baddr; if (!flipped) move(row, 0); for (col = 0; col < cCOLS; col++) { Boolean underlined = False; int attr_mask = toggled(UNDERSCORE)? (int)~A_UNDERLINE: -1; if (flipped) move(row, cCOLS-1 - col); baddr = row*cCOLS+col; if (ea_buf[baddr].fa) { fa_addr = baddr; fa = ea_buf[baddr].fa; field_attrs = calc_attrs(baddr, baddr, fa); (void) attrset(defattr); addch(' '); } else if (FA_IS_ZERO(fa)) { (void) attrset(field_attrs & attr_mask); if (field_attrs & A_UNDERLINE) underlined = True; addch(' '); } else { char mb[16]; int len; if (!(ea_buf[baddr].gr || ea_buf[baddr].fg || ea_buf[baddr].bg)) { (void) attrset(field_attrs & attr_mask); if (field_attrs & A_UNDERLINE) underlined = True; } else { int buf_attrs; buf_attrs = calc_attrs(baddr, fa_addr, fa); (void) attrset(buf_attrs & attr_mask); if (buf_attrs & A_UNDERLINE) underlined = True; } #if defined(X3270_DBCS) /*[*/ d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) { int xaddr = baddr; INC_BA(xaddr); len = ebcdic_to_multibyte( (ea_buf[baddr].cc << 8) | ea_buf[xaddr].cc, mb, sizeof(mb)); addstr(mb); } else if (!IS_RIGHT(d)) { #endif /*]*/ if (ea_buf[baddr].cs == CS_LINEDRAW) { display_linedraw( ea_buf[baddr].cc); } else if (ea_buf[baddr].cs == CS_APL || (ea_buf[baddr].cs & CS_GE)) { display_ge(ea_buf[baddr].cc); } else { len = ebcdic_to_multibyte_x( ea_buf[baddr].cc, CS_BASE, mb, sizeof(mb), EUO_BLANK_UNDEF | (appres.ascii_box_draw? EUO_ASCII_BOX: 0), NULL); if (len > 0) len--; if (toggled(UNDERSCORE) && (len == 1) && mb[0] == ' ') { mb[0] = '_'; } if (toggled(MONOCASE) && (len == 1) && !(mb[0] & 0x80) && islower(mb[0])) { mb[0] = toupper(mb[0]); } #if defined(CURSES_WIDE) /*[*/ addstr(mb); #else /*][*/ if (len > 1) addch(' '); else addch(mb[0] & 0xff); #endif /*]*/ } #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ } } } if (status_row) draw_oia(); (void) attrset(defattr); if (flipped) move(cursor_addr / cCOLS, cCOLS-1 - (cursor_addr % cCOLS)); else move(cursor_addr / cCOLS, cursor_addr % cCOLS); refresh(); } /* ESC processing. */ static unsigned long eto = 0L; static Boolean meta_escape = False; static void escape_timeout(void) { trace_event("Timeout waiting for key following Escape, processing " "separately\n"); eto = 0L; meta_escape = False; kybd_input2(0, 0x1b, 0); } /* Keyboard input. */ static void kybd_input(void) { int k = 0; /* KEY_XXX, or 0 */ ucs4_t ucs4 = 0; /* input character, or 0 */ Boolean first = True; static Boolean failed_first = False; for (;;) { volatile int alt = 0; char dbuf[128]; #if defined(CURSES_WIDE) /*[*/ wint_t wch; size_t sz; #endif /*]*/ if (isendwin()) return; ucs4 = 0; #if defined(CURSES_WIDE) /*[*/ k = wget_wch(stdscr, &wch); #else /*][*/ k = wgetch(stdscr); #endif /*]*/ trace_event("k=%d " #if defined(CURSES_WIDE) /*[*/ "wch=%u " #endif /*]*/ , k #if defined(CURSES_WIDE) /*[*/ , wch #endif /*]*/ ); if (k == ERR) { if (first) { if (failed_first) { trace_event("End of File, exiting.\n"); x3270_exit(1); } failed_first = True; } trace_event("k == ERR, return\n"); return; } else { failed_first = False; } #if !defined(CURSES_WIDE) /*[*/ /* Differentiate between KEY_XXX and regular input. */ if (!(k & ~0xff)) { char mb[2]; int consumed; enum me_fail error; /* Convert from local multi-byte to Unicode. */ mb[0] = k; mb[1] = '\0'; ucs4 = multibyte_to_unicode(mb, 1, &consumed, &error); if (ucs4 == 0) { trace_event("Invalid input char 0x%x\n", k); return; } k = 0; } #endif /*]*/ #if defined(CURSES_WIDE) /*[*/ if (k == KEY_CODE_YES) k = (int)wch; /* KEY_XXX */ else { char mbs[16]; wchar_t wcs[2]; k = 0; wcs[0] = wch; wcs[1] = 0; sz = wcstombs(mbs, wcs, sizeof(mbs)); if (sz < 0) { trace_event("Invalid input wchar 0x%x\n", wch); return; } if (sz == 1) { ucs4 = mbs[0] & 0xff; } else { int consumed; enum me_fail error; ucs4 = multibyte_to_unicode(mbs, sz, &consumed, &error); if (ucs4 == 0) { trace_event("Unsupported input " "wchar %x\n", wch); return; } } } #endif /*]*/ #if defined(NCURSES_MOUSE_VERSION) /*[*/ if (k == KEY_MOUSE) { MEVENT m; if (getmouse(&m) == OK) { trace_event("Mouse BUTTON1_PRESSED " "(x=%d,y=%d)\n", m.x, m.y); if (m.x < cCOLS && m.y < ROWS) { if (flipped) cursor_move((m.y * cCOLS) + (cCOLS - m.x)); else cursor_move((m.y * cCOLS) + m.x); move(m.y, m.x); refresh(); } } return; } #endif /*]*/ /* Handle Meta-Escapes. */ if (meta_escape) { if (eto != 0L) { RemoveTimeOut(eto); eto = 0L; } meta_escape = False; alt = KM_ALT; } else if (me_mode == TS_ON && ucs4 == 0x1b) { trace_event("Key '%s' (curses key 0x%x, char code 0x%x)\n", decode_key(k, ucs4, alt, dbuf), k, ucs4); eto = AddTimeOut(100L, escape_timeout); trace_event(" waiting to see if Escape is followed by" " another key\n"); meta_escape = True; continue; } trace_event("Key '%s' (curses key 0x%x, char code 0x%x)\n", decode_key(k, ucs4, alt, dbuf), k, ucs4); kybd_input2(k, ucs4, alt); first = False; } } static void kybd_input2(int k, ucs4_t ucs4, int alt) { char buf[16]; char *action; int i; action = lookup_key(k, ucs4, alt); if (action != CN) { if (strcmp(action, "[ignore]")) push_keymap_action(action); return; } ia_cause = IA_DEFAULT; /* These first cases apply to both 3270 and NVT modes. */ switch (k) { case KEY_UP: action_internal(Up_action, IA_DEFAULT, CN, CN); return; case KEY_DOWN: action_internal(Down_action, IA_DEFAULT, CN, CN); return; case KEY_LEFT: action_internal(Left_action, IA_DEFAULT, CN, CN); return; case KEY_RIGHT: action_internal(Right_action, IA_DEFAULT, CN, CN); return; case KEY_HOME: action_internal(Home_action, IA_DEFAULT, CN, CN); return; default: break; } switch (ucs4) { case 0x1d: action_internal(Escape_action, IA_DEFAULT, CN, CN); return; } /* Then look for 3270-only cases. */ if (IN_3270) { switch(k) { case KEY_DC: action_internal(Delete_action, IA_DEFAULT, CN, CN); return; case KEY_BACKSPACE: action_internal(BackSpace_action, IA_DEFAULT, CN, CN); return; case KEY_HOME: action_internal(Home_action, IA_DEFAULT, CN, CN); return; default: break; } switch(ucs4) { case 0x03: action_internal(Clear_action, IA_DEFAULT, CN, CN); return; case 0x12: action_internal(Reset_action, IA_DEFAULT, CN, CN); return; case 'L' & 0x1f: action_internal(Redraw_action, IA_DEFAULT, CN, CN); return; case '\t': action_internal(Tab_action, IA_DEFAULT, CN, CN); return; case 0177: action_internal(Delete_action, IA_DEFAULT, CN, CN); return; case '\b': action_internal(BackSpace_action, IA_DEFAULT, CN, CN); return; case '\r': action_internal(Enter_action, IA_DEFAULT, CN, CN); return; case '\n': action_internal(Newline_action, IA_DEFAULT, CN, CN); return; default: break; } } /* Do some NVT-only translations. */ if (IN_ANSI) switch (k) { case KEY_DC: ucs4 = 0x7f; k = 0; break; case KEY_BACKSPACE: ucs4 = '\b'; k = 0; break; } /* Catch PF keys. */ for (i = 1; i <= 24; i++) { if (k == KEY_F(i)) { (void) sprintf(buf, "%d", i); action_internal(PF_action, IA_DEFAULT, buf, CN); return; } } /* Then any other 8-bit ASCII character. */ if (ucs4) { char ks[16]; String params[2]; Cardinal one; sprintf(ks, "U+%04x", ucs4); params[0] = ks; params[1] = CN; one = 1; Key_action(NULL, NULL, params, &one); return; } trace_event(" dropped (no default)\n"); } void screen_suspend(void) { static Boolean need_to_scroll = False; if (!isendwin()) { #if defined(C3270_80_132) /*[*/ if (def_screen != alt_screen) { /* * Call endwin() for the last-defined screen * (altscreen) first. Note that this will leave * the curses screen set to defscreen when this * function exits; if the 3270 is really in altscreen * mode, we will have to switch it back when we resume * the screen, below. */ if (!curses_alt) swap_screens(alt_screen); endwin(); swap_screens(def_screen); endwin(); } else { endwin(); } #else /*][*/ endwin(); #endif /*]*/ } if (!escaped) { escaped = True; if (need_to_scroll) printf("\n"); else need_to_scroll = True; #if defined(C3270_80_132) /*[*/ if (curses_alt && def_screen != alt_screen) { if (write(1, defscreen_spec.mode_switch, strlen(defscreen_spec.mode_switch)) < 0) x3270_exit(1); } #endif /*]*/ RemoveInput(input_id); } } void screen_resume(void) { escaped = False; #if defined(C3270_80_132) /*[*/ if (def_screen != alt_screen && curses_alt) { /* * When we suspended the screen, we switched to defscreen so * that endwin() got called in the right order. Switch back. */ swap_screens(alt_screen); if (write(1, altscreen_spec.mode_switch, strlen(altscreen_spec.mode_switch)) < 0) x3270_exit(1); } #endif /*]*/ screen_disp(False); refresh(); input_id = AddInput(0, kybd_input); } void cursor_move(int baddr) { cursor_addr = baddr; } void toggle_monocase(struct toggle *t _is_unused, enum toggle_type tt _is_unused) { screen_disp(False); } void toggle_underscore(struct toggle *t _is_unused, enum toggle_type tt _is_unused) { screen_disp(False); } /* Status line stuff. */ static Boolean status_ta = False; static Boolean status_rm = False; static Boolean status_im = False; static Boolean status_secure = False; static Boolean oia_boxsolid = False; static Boolean oia_undera = True; static Boolean oia_compose = False; static Boolean oia_printer = False; static unsigned char oia_compose_char = 0; static enum keytype oia_compose_keytype = KT_STD; #define LUCNT 8 static char oia_lu[LUCNT+1]; static char *status_msg = "X Disconnected"; static char *saved_status_msg = NULL; static unsigned long saved_status_timeout; static void cancel_status_push(void) { saved_status_msg = NULL; if (saved_status_timeout) { RemoveTimeOut(saved_status_timeout); saved_status_timeout = 0; } } void status_ctlr_done(void) { oia_undera = True; } void status_insert_mode(Boolean on) { status_im = on; } static void status_pop(void) { status_msg = saved_status_msg; saved_status_msg = NULL; saved_status_timeout = 0; } void status_push(char *msg) { if (saved_status_msg != NULL) { /* Already showing something. */ RemoveTimeOut(saved_status_timeout); } else { saved_status_msg = status_msg; } saved_status_timeout = AddTimeOut(STATUS_PUSH_MS, status_pop); status_msg = msg; } void status_minus(void) { cancel_status_push(); status_msg = "X -f"; } void status_oerr(int error_type) { cancel_status_push(); switch (error_type) { case KL_OERR_PROTECTED: status_msg = "X Protected"; break; case KL_OERR_NUMERIC: status_msg = "X Numeric"; break; case KL_OERR_OVERFLOW: status_msg = "X Overflow"; break; } } void status_reset(void) { cancel_status_push(); if (!CONNECTED) status_msg = "X Disconnected"; else if (kybdlock & KL_ENTER_INHIBIT) status_msg = "X Inhibit"; else if (kybdlock & KL_DEFERRED_UNLOCK) status_msg = "X"; else status_msg = ""; } void status_reverse_mode(Boolean on) { status_rm = on; } void status_syswait(void) { cancel_status_push(); status_msg = "X SYSTEM"; } void status_twait(void) { cancel_status_push(); oia_undera = False; status_msg = "X Wait"; } void status_typeahead(Boolean on) { status_ta = on; } void status_compose(Boolean on, unsigned char c, enum keytype keytype) { oia_compose = on; oia_compose_char = c; oia_compose_keytype = keytype; } void status_lu(const char *lu) { if (lu != NULL) { (void) strncpy(oia_lu, lu, LUCNT); oia_lu[LUCNT] = '\0'; } else (void) memset(oia_lu, '\0', sizeof(oia_lu)); } static void status_connect(Boolean connected) { cancel_status_push(); if (connected) { oia_boxsolid = IN_3270 && !IN_SSCP; if (kybdlock & KL_AWAITING_FIRST) status_msg = "X"; else status_msg = ""; #if defined(HAVE_LIBSSL) /*[*/ status_secure = secure_connection; #endif /*]*/ } else { oia_boxsolid = False; status_msg = "X Disconnected"; status_secure = False; } } static void status_3270_mode(Boolean ignored _is_unused) { oia_boxsolid = IN_3270 && !IN_SSCP; if (oia_boxsolid) oia_undera = True; } static void status_printer(Boolean on) { oia_printer = on; } /*static*/ void draw_oia(void) { int rmargin; static Boolean filled_extra[2] = { False, False }; #if defined(C3270_80_132) /*[*/ if (def_screen != alt_screen) { if (curses_alt) rmargin = altscreen_spec.cols - 1; else rmargin = defscreen_spec.cols - 1; } else #endif /*]*/ { rmargin = maxCOLS - 1; } /* Black out the parts of the screen we aren't using. */ if (!appres.mono && !filled_extra[!!curses_alt]) { int r, c; attrset(defattr); for (r = 0; r <= status_row; r++) { int c0; if (r >= maxROWS && r != status_row) c0 = 0; else c0 = maxCOLS; move(r, c0); for (c = c0; c < cursesCOLS; c++) { printw(" "); } } } /* Make sure the status line region is filled in properly. */ if (!appres.mono) { int i; (void) attrset(defattr); if (status_skip) { move(status_skip, 0); for (i = 0; i < rmargin; i++) { printw(" "); } } move(status_row, 0); for (i = 0; i < rmargin; i++) { printw(" "); } } (void) attrset(A_REVERSE | defattr); mvprintw(status_row, 0, "4"); (void) attrset(A_UNDERLINE | defattr); if (oia_undera) printw("%c", IN_E? 'B': 'A'); else printw(" "); (void) attrset(A_REVERSE | defattr); if (IN_ANSI) printw("N"); else if (oia_boxsolid) printw(" "); else if (IN_SSCP) printw("S"); else printw("?"); (void) attrset(defattr); mvprintw(status_row, 8, "%-35.35s", status_msg); mvprintw(status_row, rmargin-36, "%c%c %c %c%c%c", oia_compose? 'C': ' ', oia_compose? oia_compose_char: ' ', status_ta? 'T': ' ', status_rm? 'R': ' ', status_im? 'I': ' ', oia_printer? 'P': ' '); if (status_secure) { if (appres.m3279) attrset(get_color_pair(defcolor_offset + COLOR_GREEN, bg_color) | A_BOLD); else attrset(A_BOLD); printw("S"); attrset(defattr); } else printw(" "); mvprintw(status_row, rmargin-25, "%s", oia_lu); mvprintw(status_row, rmargin-7, "%03d/%03d ", cursor_addr/cCOLS + 1, cursor_addr%cCOLS + 1); } void Redraw_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { if (!escaped) { endwin(); refresh(); } } void ring_bell(void) { beep(); } void screen_flip(void) { flipped = !flipped; screen_disp(False); } #if defined(C3270_80_132) /*[*/ /* Alt/default screen spec parsing. */ static void parse_screen_spec(const char *str, struct screen_spec *spec) { char msbuf[3]; char *s, *t, c; Boolean escaped = False; if (sscanf(str, "%dx%d=%2s", &spec->rows, &spec->cols, msbuf) != 3) { (void) fprintf(stderr, "Invalid screen screen spec '%s', must " "be 'x='\n", str); exit(1); } s = strchr(str, '=') + 1; spec->mode_switch = Malloc(strlen(s) + 1); t = spec->mode_switch; while ((c = *s++)) { if (escaped) { switch (c) { case 'E': *t++ = 0x1b; break; case 'n': *t++ = '\n'; break; case 'r': *t++ = '\r'; break; case 'b': *t++ = '\b'; break; case 't': *t++ = '\t'; break; case '\\': *t++ = '\\'; break; default: *t++ = c; break; } escaped = False; } else if (c == '\\') escaped = True; else *t++ = c; } *t = '\0'; } #endif /*]*/ void screen_132(void) { #if defined(C3270_80_132) /*[*/ if (cur_screen != alt_screen) { swap_screens(alt_screen); if (write(1, altscreen_spec.mode_switch, strlen(altscreen_spec.mode_switch)) < 0) x3270_exit(1); ctlr_erase(True); screen_disp(True); } #endif /*]*/ } void screen_80(void) { #if defined(C3270_80_132) /*[*/ if (cur_screen != def_screen) { swap_screens(def_screen); if (write(1, defscreen_spec.mode_switch, strlen(defscreen_spec.mode_switch)) < 0) x3270_exit(1); ctlr_erase(False); screen_disp(True); } #endif /*]*/ } /* * Translate an x3270 font line-drawing character (the first two rows of a * standard X11 fixed-width font) to a curses ACS character. * * Returns -1 if there is no translation. */ static int linedraw_to_acs(unsigned char c) { switch (c) { #if defined(ACS_BLOCK) /*[*/ case 0x0: return ACS_BLOCK; #endif /*]*/ #if defined(ACS_DIAMOND) /*[*/ case 0x1: return ACS_DIAMOND; #endif /*]*/ #if defined(ACS_CKBOARD) /*[*/ case 0x2: return ACS_CKBOARD; #endif /*]*/ #if defined(ACS_DEGREE) /*[*/ case 0x7: return ACS_DEGREE; #endif /*]*/ #if defined(ACS_PLMINUS) /*[*/ case 0x8: return ACS_PLMINUS; #endif /*]*/ #if defined(ACS_BOARD) /*[*/ case 0x9: return ACS_BOARD; #endif /*]*/ #if defined(ACS_LANTERN) /*[*/ case 0xa: return ACS_LANTERN; #endif /*]*/ #if defined(ACS_LRCORNER) /*[*/ case 0xb: return ACS_LRCORNER; #endif /*]*/ #if defined(ACS_URCORNER) /*[*/ case 0xc: return ACS_URCORNER; #endif /*]*/ #if defined(ACS_ULCORNER) /*[*/ case 0xd: return ACS_ULCORNER; #endif /*]*/ #if defined(ACS_LLCORNER) /*[*/ case 0xe: return ACS_LLCORNER; #endif /*]*/ #if defined(ACS_PLUS) /*[*/ case 0xf: return ACS_PLUS; #endif /*]*/ #if defined(ACS_S1) /*[*/ case 0x10: return ACS_S1; #endif /*]*/ #if defined(ACS_S3) /*[*/ case 0x11: return ACS_S3; #endif /*]*/ #if defined(ACS_HLINE) /*[*/ case 0x12: return ACS_HLINE; #endif /*]*/ #if defined(ACS_S7) /*[*/ case 0x13: return ACS_S7; #endif /*]*/ #if defined(ACS_S9) /*[*/ case 0x14: return ACS_S9; #endif /*]*/ #if defined(ACS_LTEE) /*[*/ case 0x15: return ACS_LTEE; #endif /*]*/ #if defined(ACS_RTEE) /*[*/ case 0x16: return ACS_RTEE; #endif /*]*/ #if defined(ACS_BTEE) /*[*/ case 0x17: return ACS_BTEE; #endif /*]*/ #if defined(ACS_TTEE) /*[*/ case 0x18: return ACS_TTEE; #endif /*]*/ #if defined(ACS_VLINE) /*[*/ case 0x19: return ACS_VLINE; #endif /*]*/ #if defined(ACS_LEQUAL) /*[*/ case 0x1a: return ACS_LEQUAL; #endif /*]*/ #if defined(ACS_GEQUAL) /*[*/ case 0x1b: return ACS_GEQUAL; #endif /*]*/ #if defined(ACS_PI) /*[*/ case 0x1c: return ACS_PI; #endif /*]*/ #if defined(ACS_NEQUAL) /*[*/ case 0x1d: return ACS_NEQUAL; #endif /*]*/ #if defined(ACS_STERLING) /*[*/ case 0x1e: return ACS_STERLING; #endif /*]*/ #if defined(ACS_BULLET) /*[*/ case 0x1f: return ACS_BULLET; #endif /*]*/ default: return -1; } } static void display_linedraw(unsigned char ebc) { int c; char mb[16]; int len; #if defined(CURSES_WIDE) /*[*/ if (appres.acs) #endif /*]*/ { /* Try UCS first. */ c = linedraw_to_acs(ebc); if (c != -1) { addch(c); return; } } /* Then try Unicode. */ len = ebcdic_to_multibyte_x(ebc, CS_LINEDRAW, mb, sizeof(mb), EUO_BLANK_UNDEF | (appres.ascii_box_draw? EUO_ASCII_BOX: 0), NULL); if (len > 0) len--; #if defined(CURSES_WIDE) /*[*/ addstr(mb); #else /*][*/ if (len > 1) addch(mb[0] & 0xff); else addch(' '); #endif /*]*/ } static int apl_to_acs(unsigned char c) { switch (c) { #if defined(ACS_DEGREE) /*[*/ case 0xaf: /* CG 0xd1 */ return ACS_DEGREE; #endif /*]*/ #if defined(ACS_LRCORNER) /*[*/ case 0xd4: /* CG 0xac */ return ACS_LRCORNER; #endif /*]*/ #if defined(ACS_URCORNER) /*[*/ case 0xd5: /* CG 0xad */ return ACS_URCORNER; #endif /*]*/ #if defined(ACS_ULCORNER) /*[*/ case 0xc5: /* CG 0xa4 */ return ACS_ULCORNER; #endif /*]*/ #if defined(ACS_LLCORNER) /*[*/ case 0xc4: /* CG 0xa3 */ return ACS_LLCORNER; #endif /*]*/ #if defined(ACS_PLUS) /*[*/ case 0xd3: /* CG 0xab */ return ACS_PLUS; #endif /*]*/ #if defined(ACS_HLINE) /*[*/ case 0xa2: /* CG 0x92 */ return ACS_HLINE; #endif /*]*/ #if defined(ACS_LTEE) /*[*/ case 0xc6: /* CG 0xa5 */ return ACS_LTEE; #endif /*]*/ #if defined(ACS_RTEE) /*[*/ case 0xd6: /* CG 0xae */ return ACS_RTEE; #endif /*]*/ #if defined(ACS_BTEE) /*[*/ case 0xc7: /* CG 0xa6 */ return ACS_BTEE; #endif /*]*/ #if defined(ACS_TTEE) /*[*/ case 0xd7: /* CG 0xaf */ return ACS_TTEE; #endif /*]*/ #if defined(ACS_VLINE) /*[*/ case 0x85: /* CG 0xa84? */ return ACS_VLINE; #endif /*]*/ #if defined(ACS_LEQUAL) /*[*/ case 0x8c: /* CG 0xf7 */ return ACS_LEQUAL; #endif /*]*/ #if defined(ACS_GEQUAL) /*[*/ case 0xae: /* CG 0xd9 */ return ACS_GEQUAL; #endif /*]*/ #if defined(ACS_NEQUAL) /*[*/ case 0xbe: /* CG 0x3e */ return ACS_NEQUAL; #endif /*]*/ #if defined(ACS_BULLET) /*[*/ case 0xa3: /* CG 0x93 */ return ACS_BULLET; #endif /*]*/ case 0xad: return '['; case 0xbd: return ']'; default: return -1; } } static void display_ge(unsigned char ebc) { int c; char mb[16]; int len; #if defined(CURSES_WIDE) /*[*/ if (appres.acs) #endif /*]*/ { /* Try UCS first. */ c = apl_to_acs(ebc); if (c != -1) { addch(c); return; } } /* Then try Unicode. */ len = ebcdic_to_multibyte_x(ebc, CS_GE, mb, sizeof(mb), EUO_BLANK_UNDEF | (appres.ascii_box_draw? EUO_ASCII_BOX: 0), NULL); if (len > 0) len--; #if defined(CURSES_WIDE) /*[*/ addstr(mb); #else /*][*/ if (len > 1) addch(mb[0] & 0xff); else addch(' '); #endif /*]*/ } ibm-3270-3.3.10ga4/c3270/XtGlue.c0000644000175000017500000004265611254565704015316 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* glue for missing Xt code */ #include "globals.h" #if defined(_WIN32) /*[*/ #include "appres.h" #include "trace_dsc.h" #include "xioc.h" #endif /*]*/ #include #include #include #include #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #if defined(_WIN32) /*[*/ #include #else /*][*/ #if defined(SEPARATE_SELECT_H) /*[*/ #include #endif /*]*/ #endif /*]*/ #define InputReadMask 0x1 #define InputExceptMask 0x2 #define InputWriteMask 0x4 #define MILLION 1000000L void (*Warning_redirect)(const char *) = NULL; void Error(const char *s) { fprintf(stderr, "Error: %s\n", s); #if defined(WC3270) /*[*/ x3270_exit(1); #else /*][*/ exit(1); #endif /*]*/ } void Warning(const char *s) { #if defined(C3270) /*[*/ extern Boolean any_error_output; #endif /*]*/ if (Warning_redirect != NULL) (*Warning_redirect)(s); else fprintf(stderr, "Warning: %s\n", s); #if defined(C3270) /*[*/ any_error_output = True; #endif /*]*/ } void * Malloc(size_t len) { char *r; r = malloc(len); if (r == (char *)NULL) Error("Out of memory"); return r; } void * Calloc(size_t nelem, size_t elsize) { char *r; r = malloc(nelem * elsize); if (r == (char *)NULL) Error("Out of memory"); return memset(r, '\0', nelem * elsize); } void * Realloc(void *p, size_t len) { p = realloc(p, len); if (p == NULL) Error("Out of memory"); return p; } void Free(void *p) { if (p != NULL) free(p); } char * NewString(const char *s) { return strcpy(Malloc(strlen(s) + 1), s); } static struct { /*const*/ char *name; /* not const because of ancient X11 API */ KeySym keysym; } latin1[] = { { "space", XK_space }, { "exclam", XK_exclam }, { "quotedbl", XK_quotedbl }, { "numbersign", XK_numbersign }, { "dollar", XK_dollar }, { "percent", XK_percent }, { "ampersand", XK_ampersand }, { "apostrophe", XK_apostrophe }, { "quoteright", XK_quoteright }, { "parenleft", XK_parenleft }, { "parenright", XK_parenright }, { "asterisk", XK_asterisk }, { "plus", XK_plus }, { "comma", XK_comma }, { "minus", XK_minus }, { "period", XK_period }, { "slash", XK_slash }, { "0", XK_0 }, { "1", XK_1 }, { "2", XK_2 }, { "3", XK_3 }, { "4", XK_4 }, { "5", XK_5 }, { "6", XK_6 }, { "7", XK_7 }, { "8", XK_8 }, { "9", XK_9 }, { "colon", XK_colon }, { "semicolon", XK_semicolon }, { "less", XK_less }, { "equal", XK_equal }, { "greater", XK_greater }, { "question", XK_question }, { "at", XK_at }, { "A", XK_A }, { "B", XK_B }, { "C", XK_C }, { "D", XK_D }, { "E", XK_E }, { "F", XK_F }, { "G", XK_G }, { "H", XK_H }, { "I", XK_I }, { "J", XK_J }, { "K", XK_K }, { "L", XK_L }, { "M", XK_M }, { "N", XK_N }, { "O", XK_O }, { "P", XK_P }, { "Q", XK_Q }, { "R", XK_R }, { "S", XK_S }, { "T", XK_T }, { "U", XK_U }, { "V", XK_V }, { "W", XK_W }, { "X", XK_X }, { "Y", XK_Y }, { "Z", XK_Z }, { "bracketleft", XK_bracketleft }, { "backslash", XK_backslash }, { "bracketright", XK_bracketright }, { "asciicircum", XK_asciicircum }, { "underscore", XK_underscore }, { "grave", XK_grave }, { "quoteleft", XK_quoteleft }, { "a", XK_a }, { "b", XK_b }, { "c", XK_c }, { "d", XK_d }, { "e", XK_e }, { "f", XK_f }, { "g", XK_g }, { "h", XK_h }, { "i", XK_i }, { "j", XK_j }, { "k", XK_k }, { "l", XK_l }, { "m", XK_m }, { "n", XK_n }, { "o", XK_o }, { "p", XK_p }, { "q", XK_q }, { "r", XK_r }, { "s", XK_s }, { "t", XK_t }, { "u", XK_u }, { "v", XK_v }, { "w", XK_w }, { "x", XK_x }, { "y", XK_y }, { "z", XK_z }, { "braceleft", XK_braceleft }, { "bar", XK_bar }, { "braceright", XK_braceright }, { "asciitilde", XK_asciitilde }, { "nobreakspace", XK_nobreakspace }, { "exclamdown", XK_exclamdown }, { "cent", XK_cent }, { "sterling", XK_sterling }, { "currency", XK_currency }, { "yen", XK_yen }, { "brokenbar", XK_brokenbar }, { "section", XK_section }, { "diaeresis", XK_diaeresis }, { "copyright", XK_copyright }, { "ordfeminine", XK_ordfeminine }, { "guillemotleft", XK_guillemotleft }, { "notsign", XK_notsign }, { "hyphen", XK_hyphen }, { "registered", XK_registered }, { "macron", XK_macron }, { "degree", XK_degree }, { "plusminus", XK_plusminus }, { "twosuperior", XK_twosuperior }, { "threesuperior", XK_threesuperior }, { "acute", XK_acute }, { "mu", XK_mu }, { "paragraph", XK_paragraph }, { "periodcentered", XK_periodcentered }, { "cedilla", XK_cedilla }, { "onesuperior", XK_onesuperior }, { "masculine", XK_masculine }, { "guillemotright", XK_guillemotright }, { "onequarter", XK_onequarter }, { "onehalf", XK_onehalf }, { "threequarters", XK_threequarters }, { "questiondown", XK_questiondown }, { "Agrave", XK_Agrave }, { "Aacute", XK_Aacute }, { "Acircumflex", XK_Acircumflex }, { "Atilde", XK_Atilde }, { "Adiaeresis", XK_Adiaeresis }, { "Aring", XK_Aring }, { "AE", XK_AE }, { "Ccedilla", XK_Ccedilla }, { "Egrave", XK_Egrave }, { "Eacute", XK_Eacute }, { "Ecircumflex", XK_Ecircumflex }, { "Ediaeresis", XK_Ediaeresis }, { "Igrave", XK_Igrave }, { "Iacute", XK_Iacute }, { "Icircumflex", XK_Icircumflex }, { "Idiaeresis", XK_Idiaeresis }, { "ETH", XK_ETH }, { "Eth", XK_Eth }, { "Ntilde", XK_Ntilde }, { "Ograve", XK_Ograve }, { "Oacute", XK_Oacute }, { "Ocircumflex", XK_Ocircumflex }, { "Otilde", XK_Otilde }, { "Odiaeresis", XK_Odiaeresis }, { "multiply", XK_multiply }, { "Ooblique", XK_Ooblique }, { "Ugrave", XK_Ugrave }, { "Uacute", XK_Uacute }, { "Ucircumflex", XK_Ucircumflex }, { "Udiaeresis", XK_Udiaeresis }, { "Yacute", XK_Yacute }, { "THORN", XK_THORN }, { "Thorn", XK_Thorn }, { "ssharp", XK_ssharp }, { "agrave", XK_agrave }, { "aacute", XK_aacute }, { "acircumflex", XK_acircumflex }, { "atilde", XK_atilde }, { "adiaeresis", XK_adiaeresis }, { "aring", XK_aring }, { "ae", XK_ae }, { "ccedilla", XK_ccedilla }, { "egrave", XK_egrave }, { "eacute", XK_eacute }, { "ecircumflex", XK_ecircumflex }, { "ediaeresis", XK_ediaeresis }, { "igrave", XK_igrave }, { "iacute", XK_iacute }, { "icircumflex", XK_icircumflex }, { "idiaeresis", XK_idiaeresis }, { "eth", XK_eth }, { "ntilde", XK_ntilde }, { "ograve", XK_ograve }, { "oacute", XK_oacute }, { "ocircumflex", XK_ocircumflex }, { "otilde", XK_otilde }, { "odiaeresis", XK_odiaeresis }, { "division", XK_division }, { "oslash", XK_oslash }, { "ugrave", XK_ugrave }, { "uacute", XK_uacute }, { "ucircumflex", XK_ucircumflex }, { "udiaeresis", XK_udiaeresis }, { "yacute", XK_yacute }, { "thorn", XK_thorn }, { "ydiaeresis", XK_ydiaeresis }, /* * The following are, umm, hacks to allow symbolic names for * control codes. */ #if !defined(_WIN32) /*[*/ { "BackSpace", 0x08 }, { "Tab", 0x09 }, { "Linefeed", 0x0a }, { "Return", 0x0d }, { "Escape", 0x1b }, { "Delete", 0x7f }, #endif /*]*/ { (char *)NULL, NoSymbol } }; KeySym StringToKeysym(char *s) { int i; if (strlen(s) == 1 && (*(unsigned char *)s & 0x7f) > ' ') return (KeySym)*(unsigned char *)s; for (i = 0; latin1[i].name != (char *)NULL; i++) { if (!strcmp(s, latin1[i].name)) return latin1[i].keysym; } return NoSymbol; } char * KeysymToString(KeySym k) { int i; for (i = 0; latin1[i].name != (char *)NULL; i++) { if (latin1[i].keysym == k) return latin1[i].name; } return (char *)NULL; } /* Timeouts. */ #if defined(_WIN32) /*[*/ static void ms_ts(unsigned long long *u) { FILETIME t; /* Get the system time, in 100ns units. */ GetSystemTimeAsFileTime(&t); memcpy(u, &t, sizeof(unsigned long long)); /* Divide by 10,000 to get ms. */ *u /= 10000ULL; } #endif /*]*/ typedef struct timeout { struct timeout *next; #if defined(_WIN32) /*[*/ unsigned long long ts; #else /*][*/ struct timeval tv; #endif /*]*/ void (*proc)(void); Boolean in_play; } timeout_t; #define TN (timeout_t *)NULL static timeout_t *timeouts = TN; unsigned long AddTimeOut(unsigned long interval_ms, void (*proc)(void)) { timeout_t *t_new; timeout_t *t; timeout_t *prev = TN; t_new = (timeout_t *)Malloc(sizeof(timeout_t)); t_new->proc = proc; t_new->in_play = False; #if defined(_WIN32) /*[*/ ms_ts(&t_new->ts); t_new->ts += interval_ms; #else /*][*/ (void) gettimeofday(&t_new->tv, NULL); t_new->tv.tv_sec += interval_ms / 1000L; t_new->tv.tv_usec += (interval_ms % 1000L) * 1000L; if (t_new->tv.tv_usec > MILLION) { t_new->tv.tv_sec += t_new->tv.tv_usec / MILLION; t_new->tv.tv_usec %= MILLION; } #endif /*]*/ /* Find where to insert this item. */ for (t = timeouts; t != TN; t = t->next) { #if defined(_WIN32) /*[*/ if (t->ts > t_new->ts) #else /*][*/ if (t->tv.tv_sec > t_new->tv.tv_sec || (t->tv.tv_sec == t_new->tv.tv_sec && t->tv.tv_usec > t_new->tv.tv_usec)) #endif /*]*/ break; prev = t; } /* Insert it. */ if (prev == TN) { /* Front. */ t_new->next = timeouts; timeouts = t_new; } else if (t == TN) { /* Rear. */ t_new->next = TN; prev->next = t_new; } else { /* Middle. */ t_new->next = t; prev->next = t_new; } return (unsigned long)t_new; } void RemoveTimeOut(unsigned long timer) { timeout_t *st = (timeout_t *)timer; timeout_t *t; timeout_t *prev = TN; if (st->in_play) return; for (t = timeouts; t != TN; t = t->next) { if (t == st) { if (prev != TN) prev->next = t->next; else timeouts = t->next; Free(t); return; } prev = t; } } /* Input events. */ typedef struct input { struct input *next; int source; int condition; void (*proc)(void); } input_t; static input_t *inputs = (input_t *)NULL; static Boolean inputs_changed = False; unsigned long AddInput(int source, void (*fn)(void)) { input_t *ip; ip = (input_t *)Malloc(sizeof(input_t)); ip->source = source; ip->condition = InputReadMask; ip->proc = fn; ip->next = inputs; inputs = ip; inputs_changed = True; return (unsigned long)ip; } unsigned long AddExcept(int source, void (*fn)(void)) { #if defined(_WIN32) /*[*/ return 0; #else /*][*/ input_t *ip; ip = (input_t *)Malloc(sizeof(input_t)); ip->source = source; ip->condition = InputExceptMask; ip->proc = fn; ip->next = inputs; inputs = ip; inputs_changed = True; return (unsigned long)ip; #endif /*]*/ } #if !defined(_WIN32) /*[*/ unsigned long AddOutput(int source, void (*fn)(void)) { input_t *ip; ip = (input_t *)Malloc(sizeof(input_t)); ip->source = source; ip->condition = InputWriteMask; ip->proc = fn; ip->next = inputs; inputs = ip; inputs_changed = True; return (unsigned long)ip; } #endif /*]*/ void RemoveInput(unsigned long id) { input_t *ip; input_t *prev = (input_t *)NULL; for (ip = inputs; ip != (input_t *)NULL; ip = ip->next) { if (ip == (input_t *)id) break; prev = ip; } if (ip == (input_t *)NULL) return; if (prev != (input_t *)NULL) prev->next = ip->next; else inputs = ip->next; Free(ip); inputs_changed = True; } #if !defined(_WIN32) /*[*/ /* * Modify the passed-in parameters so they reflect the values needed for * select(). */ int select_setup(int *nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval **timeout, struct timeval *timebuf) { input_t *ip; int r = 0; for (ip = inputs; ip != (input_t *)NULL; ip = ip->next) { if ((unsigned long)ip->condition & InputReadMask) { FD_SET(ip->source, readfds); if (ip->source >= *nfds) *nfds = ip->source + 1; r = 1; } if ((unsigned long)ip->condition & InputWriteMask) { FD_SET(ip->source, writefds); if (ip->source >= *nfds) *nfds = ip->source + 1; r = 1; } if ((unsigned long)ip->condition & InputExceptMask) { FD_SET(ip->source, exceptfds); if (ip->source >= *nfds) *nfds = ip->source + 1; r = 1; } } if (timeouts != TN) { struct timeval now, twait; (void) gettimeofday(&now, (void *)NULL); twait.tv_sec = timeouts->tv.tv_sec - now.tv_sec; twait.tv_usec = timeouts->tv.tv_usec - now.tv_usec; if (twait.tv_usec < 0L) { twait.tv_sec--; twait.tv_usec += MILLION; } if (twait.tv_sec < 0L) twait.tv_sec = twait.tv_usec = 0L; if (*timeout == NULL) { /* No timeout yet -- we're it. */ *timebuf = twait; *timeout = timebuf; r = 1; } else if (twait.tv_sec < (*timeout)->tv_sec || (twait.tv_sec == (*timeout)->tv_sec && twait.tv_usec < (*timeout)->tv_usec)) { /* We're sooner than what they're waiting for. */ **timeout = twait; r = 1; } } return r; } #endif /*]*/ #if defined(_WIN32) /*[*/ #define MAX_HA 256 #endif /*]*/ /* Event dispatcher. */ Boolean process_events(Boolean block) { #if defined(_WIN32) /*[*/ HANDLE ha[MAX_HA]; DWORD nha; DWORD tmo; DWORD ret; unsigned long long now; int i; #else /*][*/ fd_set rfds, wfds, xfds; int ns; struct timeval now, twait, *tp; #endif /*]*/ input_t *ip, *ip_next; struct timeout *t; Boolean any_events; Boolean processed_any = False; processed_any = False; retry: /* If we've processed any input, then don't block again. */ if (processed_any) block = False; any_events = False; #if defined(_WIN32) /*[*/ nha = 0; #else /*][*/ FD_ZERO(&rfds); FD_ZERO(&wfds); FD_ZERO(&xfds); #endif /*]*/ for (ip = inputs; ip != (input_t *)NULL; ip = ip->next) { if ((unsigned long)ip->condition & InputReadMask) { #if defined(_WIN32) /*[*/ ha[nha++] = (HANDLE)ip->source; #else /*][*/ FD_SET(ip->source, &rfds); #endif /*]*/ any_events = True; } #if !defined(_WIN32) /*[*/ if ((unsigned long)ip->condition & InputWriteMask) { FD_SET(ip->source, &wfds); any_events = True; } if ((unsigned long)ip->condition & InputExceptMask) { FD_SET(ip->source, &xfds); any_events = True; } #endif /*]*/ } if (block) { if (timeouts != TN) { #if defined(_WIN32) /*[*/ ms_ts(&now); if (now > timeouts->ts) tmo = 0; else tmo = timeouts->ts - now; #else /*][*/ (void) gettimeofday(&now, (void *)NULL); twait.tv_sec = timeouts->tv.tv_sec - now.tv_sec; twait.tv_usec = timeouts->tv.tv_usec - now.tv_usec; if (twait.tv_usec < 0L) { twait.tv_sec--; twait.tv_usec += MILLION; } if (twait.tv_sec < 0L) twait.tv_sec = twait.tv_usec = 0L; tp = &twait; #endif /*]*/ any_events = True; } else { #if defined(_WIN32) /*[*/ tmo = INFINITE; #else /*][*/ tp = (struct timeval *)NULL; #endif /*]*/ } } else { #if defined(_WIN32) /*[*/ tmo = 1; #else /*][*/ twait.tv_sec = twait.tv_usec = 0L; tp = &twait; #endif /*]*/ } if (!any_events) return processed_any; #if defined(_WIN32) /*[*/ ret = WaitForMultipleObjects(nha, ha, FALSE, tmo); if (ret == WAIT_FAILED) { #else /*][*/ ns = select(FD_SETSIZE, &rfds, &wfds, &xfds, tp); if (ns < 0) { if (errno != EINTR) Warning("process_events: select() failed"); #endif /*]*/ return processed_any; } inputs_changed = False; #if defined(_WIN32) /*[*/ for (i = 0, ip = inputs; ip != (input_t *)NULL; ip = ip_next, i++) { #else /*][*/ for (ip = inputs; ip != (input_t *)NULL; ip = ip_next) { #endif /*]*/ ip_next = ip->next; if (((unsigned long)ip->condition & InputReadMask) && #if defined(_WIN32) /*[*/ ret == WAIT_OBJECT_0 + i) { #else /*][*/ FD_ISSET(ip->source, &rfds)) { #endif /*]*/ (*ip->proc)(); processed_any = True; if (inputs_changed) goto retry; } #if !defined(_WIN32) /*[*/ if (((unsigned long)ip->condition & InputWriteMask) && FD_ISSET(ip->source, &wfds)) { (*ip->proc)(); processed_any = True; if (inputs_changed) goto retry; } if (((unsigned long)ip->condition & InputExceptMask) && FD_ISSET(ip->source, &xfds)) { (*ip->proc)(); processed_any = True; if (inputs_changed) goto retry; } #endif /*]*/ } /* See what's expired. */ if (timeouts != TN) { #if defined(_WIN32) /*[*/ ms_ts(&now); #else /*][*/ (void) gettimeofday(&now, (void *)NULL); #endif /*]*/ while ((t = timeouts) != TN) { #if defined(_WIN32) /*[*/ if (t->ts <= now) { #else /*][*/ if (t->tv.tv_sec < now.tv_sec || (t->tv.tv_sec == now.tv_sec && t->tv.tv_usec < now.tv_usec)) { #endif /*]*/ timeouts = t->next; t->in_play = True; (*t->proc)(); processed_any = True; Free(t); } else break; } } if (inputs_changed) goto retry; return processed_any; } ibm-3270-3.3.10ga4/c3270/screen.h0000644000175000017500000000316111254565673015363 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of screen.h */ #define SELECTED(baddr) False extern int *char_width, *char_height; ibm-3270-3.3.10ga4/c3270/utf8.c0000644000175000017500000001545611254565704014772 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utf8.c * 3270 Terminal Emulator * UTF-8 conversions */ #include "globals.h" #include "popupsc.h" #include "utf8c.h" char *locale_codeset = CN; Boolean is_utf8 = False; /* * Save the codeset from the locale, and set globals based on known values. */ void set_codeset(char *codeset_name) { #if !defined(TCL3270) /*[*/ is_utf8 = (!strcasecmp(codeset_name, "utf-8") || !strcasecmp(codeset_name, "utf8") || !strcasecmp(codeset_name, "utf_8")); #else /*][*/ /* * tcl3270 is always in UTF-8 mode, because it needs to * supply UTF-8 strings to libtcl and vice-versa. */ is_utf8 = True; #endif /*]*/ Replace(locale_codeset, NewString(codeset_name)); } /* * Convert from UCS-4 to UTF-8. * Returns: * >0: length of converted character * -1: invalid UCS-4 */ int unicode_to_utf8(ucs4_t ucs4, char *utf8) { if (ucs4 & 0x80000000) return -1; if (ucs4 <= 0x0000007f) { utf8[0] = ucs4 & 0x7f; /* 7 bits */ return 1; } else if (ucs4 <= 0x000007ff) { utf8[0] = 0xc0 | ((ucs4 >> 6) & 0x1f); /* upper 5 bits */ utf8[1] = 0x80 | (ucs4 & 0x3f); /* lower 6 bits */ return 2; } else if (ucs4 <= 0x0000ffff) { utf8[0] = 0xe0 | ((ucs4 >> 12) & 0x0f); /* upper 4 bits */ utf8[1] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 3; } else if (ucs4 <= 0x001fffff) { utf8[0] = 0xf0 | ((ucs4 >> 18) & 0x07); /* upper 3 bits */ utf8[1] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 4; } else if (ucs4 <= 0x03ffffff) { utf8[0] = 0xf8 | ((ucs4 >> 24) & 0x03); /* upper 2 bits */ utf8[1] = 0x80 | ((ucs4 >> 18) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[4] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 5; } else { utf8[0] = 0xfc | ((ucs4 >> 30) & 0x01); /* upper 1 bit */ utf8[1] = 0x80 | ((ucs4 >> 24) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 18) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[4] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[5] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 6; } } /* * Convert at most 'len' bytes from a UTF-8 string to one UCS-4 character. * Returns: * >0: Number of characters consumed. * 0: Incomplete sequence. * -1: Invalid sequence. * -2: Illegal (too-long) encoding. * -3: Invalid lead byte. * * An invalid sequence can be either improperly composed, or using the wrong * encoding length (often used to get past spam filters and such). */ int utf8_to_unicode(const char *utf8, int len, ucs4_t *ucs4) { /* No input is by definition incomplete. */ if (!len) return 0; /* See if it's ASCII-7. */ if ((utf8[0] & 0xff) < 0x80) { *ucs4 = utf8[0] & 0x7f; return 1; } /* Now check for specific UTF-8 leading bytes. */ if ((utf8[0] & 0xe0) == 0xc0) { /* 110xxxxx 10xxxxxx * 0x00000080-0x000007ff */ if (len < 2) return 0; if ((utf8[1] & 0xc0) != 0x80) return -1; *ucs4 = ((utf8[0] << 6) & 0x7c0) | (utf8[1] & 0x03f); if (*ucs4 < 0x00000080) return -1; return 2; } if ((utf8[0] & 0xf0) == 0xe0) { /* 1110xxxx 10xxxxxx 10xxxxxx * 0x00000800-0x0000ffff */ if (len < 3) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 12) & 0xf000) | ((utf8[1] << 6) & 0x0fc0) | ((utf8[2]) & 0x003f); if (*ucs4 < 0x00000800) return -2; return 3; } if ((utf8[0] & 0xf8) == 0xf0) { /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x00010000-0x001fffff */ if (len < 4) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 18) & 0x1c0000) | ((utf8[1] << 12) & 0x03f000) | ((utf8[2] << 6) & 0x000fc0) | ((utf8[3]) & 0x00003f); if (*ucs4 < 0x00010000) return -2; return 4; } if ((utf8[0] & 0xfc) == 0xf8) { /* 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x00200000-0x03ffffff */ if (len < 5) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80) || ((utf8[4] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 24) & 0x3000000) | ((utf8[1] << 18) & 0x0fc0000) | ((utf8[2] << 12) & 0x003f000) | ((utf8[3] << 6) & 0x0000fc0) | ((utf8[4]) & 0x000003f); if (*ucs4 < 0x00200000) return -2; return 5; } if ((utf8[0] & 0xfe) == 0xfc) { /* 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x04000000-0x7fffffff */ if (len < 6) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80) || ((utf8[4] & 0xc0) != 0x80) || ((utf8[5] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 30) & 0x40000000) | ((utf8[1] << 24) & 0x3f000000) | ((utf8[2] << 18) & 0x00fc0000) | ((utf8[3] << 12) & 0x0003f000) | ((utf8[4] << 6) & 0x00000fc0) | ((utf8[5]) & 0x0000003f); if (*ucs4 < 0x04000000) return -2; return 6; } return -3; } ibm-3270-3.3.10ga4/c3270/screenc.h0000644000175000017500000000626411254565674015536 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* c3270 version of screenc.h */ #define blink_start() #define display_heightMM() 100 #define display_height() 1 #define display_widthMM() 100 #define display_width() 1 #define mcursor_locked() #define mcursor_normal() #define mcursor_waiting() #define screen_obscured() False #define screen_scroll() extern void cursor_move(int baddr); extern void ring_bell(void); extern void screen_132(void); extern void screen_80(void); extern void screen_disp(Boolean erasing); extern void screen_init(void); extern void screen_flip(void); extern void screen_resume(void); extern void screen_suspend(void); extern FILE *start_pager(void); #if defined(WC3270) /*[*/ extern void pager_output(const char *s); extern Boolean screen_wait_for_key(void); #endif /*]*/ extern void toggle_monocase(struct toggle *t, enum toggle_type tt); extern Boolean escaped; extern void Escape_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Help_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Redraw_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Trace_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Show_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(WC3270) /*[*/ extern void Paste_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Title_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void screen_title(char *text); extern int windows_cp; #endif /*]*/ #if defined(C3270) /*[*/ extern void toggle_underscore(struct toggle *t, enum toggle_type type); #endif /*]*/ ibm-3270-3.3.10ga4/c3270/x3270if.man0000644000175000017500000001351711261530006015514 0ustar bastianbastian'\" t .TH X3270IF 1 "02 October 2009" .SH "NAME" x3270if \- command interface to x3270, c3270 and s3270 .SH "SYNOPSIS" \fBx3270if\fP [option]... [ \fIaction\fP ] .br \fBx3270if \-i\fP .SH "DESCRIPTION" \fBx3270if\fP provides an interface between scripts and the 3270 emulators \fIx3270\fP, \fIc3270\fP, and \fIs3270\fP. .LP \fBx3270if\fP operates in one of two modes. In \fBaction mode\fP, it passes a single action and parameters to the emulator for execution. The result of the action is written to standard output, along with the (optional) status of the emulator. (The action is optional as well, so that \fBx3270if\fP can just reports the emulator status.) In \fBiterative mode\fP, it forms a continuous conduit between a script and the emulator. .LP The \fIaction\fP takes the form: .IP \fIaction-name\fP(\fIparam\fP[,\fIparam\fP]...) .LP The parentheses are manatory, and usually must be quoted when \fBx3270if\fP is called from a shell script. .LP If any \fIparam\fP contains a space or comma, it must be surrounded by double quotes. .SH "OPTIONS" .TP \fB\-s\fP \fIfield\fP Causes \fBx3270if\fP to write to stdout the value of one of the emulator status fields. \fIField\fP is an integer in the range 0 through 11. The value 0 is a no-op and is used only to return exit status indicating the state of the emulator. The indices 1-11 and meanings of each field are documented on the \fIx3270-script\fP(1) manual page. If an \fIaction\fP is specified as well, the status field is written after the output of the action, separated by a newline. The \fB\-s\fP option is mutually exclusive with the \fB\-S\fP and \fB\-i\fP options. .TP \fB\-S\fP Causes \fBx3270if\fP to write to stdout the value of all of the emulator status fields. If an \fIaction\fP is specified as well, the status fields are written after the output of the action, separated by a newline. The \fB\-S\fP option is mutually exclusive with the \fB\-s\fP and \fB\-i\fP options. .TP \fB\-i\fP Puts \fBx3270if\fP in iterative mode. Data from \fBx3270if\fP's standard input is copied to the emulator's script input; data from the emulator's script output is copied to \fBx3270if\fP's standard output. The \fB\-i\fP option is mutually exclusive with the \fB\-s\fP and \fB\-S\fP options. \fBx3270if\fP runs until it detects end-of-file on its standard input or on the output from the emulator. (This mode exists primarily to give \fIexpect\fP(1) a process to run, on systems which do not support bidirectional pipes.) .TP \fB\-p\fP \fIprocess-id\fP Causes \fIx3270if\fP to use a Unix-domain socket to connect to the emulator, rather than pipe file descriptors given in environment variables. The emulator must have been started with the \fB\-socket\fP option. .TP \fB\-t\fP \fIport\fP Causes \fIx3270if\fP to use a TCP socket to connect to the emulator, rather than pipe file descriptors given in environment variables. The emulator must have been started with the \fB\-scriptport\fP option. .TP \fB\-v\fP Turns on verbose debug messages, showing on stderr the literal data that is passed between the emulator and \fBx3270if\fP. .SH "EXIT STATUS" In action mode, if the requested \fIaction\fP succeeds, \fBx3270if\fP exits with status 0. If the action fails, \fBx3270if\fP exits with status 1. In iterative mode, \fBx3270if\fP exits with status 0 when it encounters end-of-file. If there is an operational error within \fBx3270if\fP itself, such as a command-line syntax error, missing environment variable, or an unexpectedly closed pipe, \fBx3270if\fP exits with status 2. .SH "ENVIRONMENT" When a script is run as a child process of one of the emulators via the \fBScript\fP action, the emulator passes information about how to control it in environment variables. .LP On Unix, the emulator process creates a pair of pipes for communication with the child script process. The values of the file descriptors for these pipes are encoded as text in two environment variables: .TP \fBX3270OUTPUT\fP Output from the emulator, input to the child process. .TP \fBX3270INPUT\fP Input to the emulator, output from the child process. .LP On Windows, or when a Unix emulator is started with the \fB\-scriptport\fP option, the emulator will pass the port number encoded as text in the \fBX3270PORT\fP environment variable. \fIx3270if\fP will use that value as if it had been passed to it via the \fB\-t\fP option. \fBX3270PORT\fP takes precedence over \fBX3270OUTPUT\fP and \fBX3270INPUT\fP. .SH "SEE ALSO" x3270(1), c3270(1), s3270(1), x3270-script(1) .SH "COPYRIGHT" Copyright 1999-2009, Paul Mattes. .br All rights reserved. .LP Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: .TP * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. .TP * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. .TP * Neither the names of Paul Mattes nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. .LP THIS SOFTWARE IS PROVIDED BY PAUL MATTES `AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ibm-3270-3.3.10ga4/c3270/ibm_hosts0000644000175000017500000000205211254565704015636 0ustar bastianbastian# Sample x3270 ibm_hosts file. # # The format of each entry is: # # name type [prefix]hostname[:port] [actions] # # where # # name is a name you wish to give to the host. This name # can be used on the x3270 command line, and is the # name that will appear on the x3270 "Connect" menu. # # type is one of two keywords. The value "primary" means # the entry will appear on the "Connect" menu. The # value "alias" means it will not. # # hostname is the hostname or Internet address of the host to # to connect to. It can be preceded by a prefix such # as "s:" or "p:" or an LU name (see the x3270 man # page), and it can be followed by a "/" or ":" and a # port number to indicate a TCP port other than the # x3270 default (usually "telnet"). # # actions is an x3270 action or actions to execute once the # connection is made and a data-entry field is defined. # If the text looks like x3270 actions, e.g., PF(1), # it is unmodified; otherwise the text is used as a # parameter to the String() action. # #localhost primary 127.0.0.1 ibm-3270-3.3.10ga4/c3270/help.c0000644000175000017500000003437111254565674015037 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * Help.c * Help information for c3270. */ #include "globals.h" #include "appres.h" #include "resources.h" #include "actionsc.h" #include "gluec.h" #include "popupsc.h" #include "screenc.h" #define P_3270 0x0001 /* 3270 actions */ #define P_SCRIPTING 0x0002 /* scripting actions */ #define P_INTERACTIVE 0x0004 /* interactive (command-prompt) actions */ #define P_OPTIONS 0x0008 /* command-line options */ #define P_TRANSFER 0x0010 /* file transfer options */ #if defined(WC3270) /*[*/ #define PROGRAM "wc3270" #else /*][*/ #define PROGRAM "c3270" #endif /*]*/ static struct { const char *name; const char *args; int purpose; const char *help; } cmd_help[] = { #if defined(X3270_SCRIPT) /*[*/ { "Abort", CN, P_SCRIPTING, "Abort pending scripts and macros" }, { "AnsiText", CN, P_SCRIPTING, "Dump pending NVT text" }, #endif /*]*/ { "Ascii", CN, P_SCRIPTING, "Screen contents in ASCII" }, { "Ascii", "", P_SCRIPTING, " bytes of screen contents from cursor, in ASCII" }, { "Ascii", " ", P_SCRIPTING, " bytes of screen contents from ,, in ASCII" }, { "Ascii", " ", P_SCRIPTING, "x of screen contents from ,, in ASCII" }, { "AsciiField", CN, P_SCRIPTING, "Contents of current field, in ASCII" }, { "Attn", CN, P_3270, "Send 3270 ATTN sequence (TELNET IP)" }, { "BackSpace", CN, P_3270, "Move cursor left" }, { "BackTab", CN, P_3270, "Move to previous field" }, #if defined(X3270_SCRIPT) /*[*/ { "Bell", CN, P_SCRIPTING, "Ring the terminal bell" }, #endif /*]*/ { "CircumNot", CN, P_3270, "Send ~ in NVT mode, \254 in 3270 mode" }, { "Clear", CN, P_3270, "Send CLEAR AID (clear screen)" }, { "Close", CN, P_INTERACTIVE, "Alias for 'Disconnect'" }, #if defined(X3270_SCRIPT) /*[*/ { "CloseScript", CN, P_SCRIPTING, "Exit peer script" }, #endif /*]*/ { "Compose", CN, P_INTERACTIVE, "Interpret next two keystrokes according to the compose map" }, { "Connect", "[@][:]", P_INTERACTIVE, "Open connection to " }, #if defined(LOCAL_PROCESS) /*[*/ { "Connect", "-e [ [...]]", P_INTERACTIVE, "Open connection to a local shell or command" }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "ContinueScript", CN, P_SCRIPTING, "Resume paused script" }, #endif /*]*/ { "CursorSelect", CN, P_3270, "Light pen select at cursor location" }, { "Delete", CN, P_3270, "Delete character at cursor" }, { "DeleteField", CN, P_3270, "Erase field at cursor location (^U)" }, { "DeleteWord", CN, P_3270, "Erase word before cursor location (^W)" }, { "Disconnect", CN, P_INTERACTIVE, "Close connection to host" }, { "Down", CN, P_3270, "Move cursor down" }, { "Dup", CN, P_3270, "3270 DUP key (X'1C')" }, { "Ebcdic", CN, P_SCRIPTING, "Screen contents in EBCDIC" }, { "Ebcdic", "", P_SCRIPTING, " bytes of screen contents from cursor, in EBCDIC" }, { "Ebcdic", " ", P_SCRIPTING, " bytes of screen contents from ,, in EBCDIC" }, { "Ebcdic", " ", P_SCRIPTING, "x of screen contents from ,, in EBCDIC" }, { "EbcdicField", CN, P_SCRIPTING, "Contents of current field, in EBCDIC" }, { "Enter", CN, P_3270, "Send ENTER AID" }, { "Erase", CN, P_3270, "Destructive backspace" }, { "EraseEOF", CN, P_3270, "Erase from cursor to end of field" }, { "EraseInput", CN, P_3270, "Erase all input fields" }, { "Escape", CN, P_INTERACTIVE, "Escape to " #if defined(WC3270) /*[*/ "'wc3270>'" #else /*][*/ "'c3270>'" #endif /*]*/ " prompt" }, #if defined(X3270_SCRIPT) /*[*/ { "Execute", "", P_SCRIPTING, "Execute a shell command" }, #endif /*]*/ { "Exit", CN, P_INTERACTIVE, "Exit " #if defined(WC3270) /*[*/ "wc3270" #else /*][*/ "c3270" #endif /*]*/ }, #if defined(X3270_SCRIPT) /*[*/ { "Expect", "", P_SCRIPTING, "Wait for NVT output" }, #endif /*]*/ { "FieldEnd", CN, P_3270, "Move to end of field" }, { "FieldMark", CN, P_3270, "3270 FIELD MARK key (X'1E')" }, { "Flip", CN, P_3270, "Flip display left-to-right" }, { "Help", "all|interactive|3270|scripting|transfer|", P_INTERACTIVE, "Get help" }, { "HexString", "", P_3270|P_SCRIPTING, "Input field data in hex" }, { "Home", CN, P_3270, "Move cursor to first field" }, { "ignore", CN, P_3270, "Do nothing" }, { "Info", "", P_SCRIPTING|P_INTERACTIVE, "Display text in OIA" }, { "Insert", CN, P_3270, "Set 3270 insert mode" }, { "Interrupt", CN, P_3270, "In NVT mode, send IAC IP" }, { "Key", "|0x", P_3270, "Input one character" }, { "Left", CN, P_3270, "Move cursr left" }, { "Left2", CN, P_3270, "Move cursor left 2 columns" }, #if defined(X3270_SCRIPT) /*[*/ { "Macro", "", P_SCRIPTING, "Execute a predefined macro" }, #endif /*]*/ { "MonoCase", CN, P_3270, "Toggle monocase mode" }, { "MoveCursor", " ", P_3270|P_SCRIPTING, "Move cursor to specific location" }, { "Newline", CN, P_3270, "Move cursor to first field in next row" }, { "NextWord", CN, P_3270, "Move cursor to next word" }, { "Open", CN, P_INTERACTIVE, "Alias for 'Connect'" }, { "PA", "", P_3270, "Send 3270 Program Attention" }, #if defined(WC3270) /*[*/ { "Paste", CN, P_3270, "Paste clipboard contents" }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "PauseScript", CN, P_SCRIPTING, "Pause script until ResumeScript" }, #endif /*]*/ { "PF", "", P_3270, "Send 3270 PF AID" }, { "PreviousWord", CN, P_3270, "Move cursor to previous word" }, { "Printer", "Start[,lu]|Stop", P_3270|P_SCRIPTING|P_INTERACTIVE, #if defined(WC3270) /*[*/ "Start or stop wpr3287 printer session" }, #else /*][*/ "Start or stop pr3287 printer session" }, #endif /*]*/ { "PrintText", #if defined(WC3270) /*[*/ "", #else /*][*/ "", #endif /*]*/ P_SCRIPTING|P_INTERACTIVE, "Dump screen image to printer" }, #if defined(X3270_SCRIPT) /*[*/ { "Query", "", P_SCRIPTING|P_INTERACTIVE, "Query operational parameters" }, #endif /*]*/ { "Quit", CN, P_INTERACTIVE, "Exit " PROGRAM }, #if defined(X3270_SCRIPT) /*[*/ { "ReadBuffer", "ASCII|EBCDIC", P_SCRIPTING, "Dump display buffer" }, #endif /*]*/ { "Redraw", CN, P_INTERACTIVE|P_3270, "Redraw screen" }, { "Reset", CN, P_3270, "Clear keyboard lock" }, { "Right", CN, P_3270, "Move cursor right" }, { "Right2", CN, P_3270, "Move cursor right 2 columns" }, #if defined(X3270_SCRIPT) /*[*/ { "Script", " [...]", P_SCRIPTING, "Run a child script" }, #endif /*]*/ { "Show", CN, P_INTERACTIVE, "Display status and settings" }, #if defined(X3270_SCRIPT) /*[*/ { "Snap", "", P_SCRIPTING, "Screen snapshot manipulation" }, #endif /*]*/ { "Source", "", P_SCRIPTING|P_INTERACTIVE, "Read actions from file" }, { "String", "", P_3270|P_SCRIPTING, "Input a string" }, { "SysReq", CN, P_3270, "Send 3270 Attention (TELNET ABORT or SYSREQ AID)" }, { "Tab", CN, P_3270, "Move cursor to next field" }, #if defined(WC3270) /*[*/ { "Title", "", P_SCRIPTING|P_INTERACTIVE, "Change window title" }, #endif /*]*/ { "Toggle", " [set|clear]", P_INTERACTIVE|P_SCRIPTING, "Change a toggle" }, { "ToggleInsert", CN, P_3270, "Set or clear 3270 insert mode" }, { "ToggleReverse", CN, P_3270, "Set or clear reverse-input mode" }, { "Trace", "[data|keyboard] on|off []", P_INTERACTIVE, "Configure tracing" }, { "Transfer", "[]", P_INTERACTIVE, "IND$FILE file transfer (see 'help file-transfer')" }, { "Up", CN, P_3270, "Move cursor up" }, #if defined(X3270_SCRIPT) /*[*/ { "Wait", "", P_SCRIPTING, "Wait for host events" }, #endif /*]*/ { CN, CN, 0, CN } }; static const char *ft_help[] = { "Syntax:", " To be prompted interactively for parameters:", " Transfer", " To specify parameters on the command line:", " Transfer =...", "Keywords:", " Direction=send|receive default 'receive'", " HostFile= required", " LocalFile= required", " Host=tso|vm default 'tso'", " Mode=ascii|binary default 'ascii'", " Cr=remove|add|keep default 'remove'", " Remap=yes|no default 'yes'", " Exist=keep|replace|append default 'keep'", " Recfm=fixed|variable|undefined for Direction=send", " Lrecl= for Direction=send", " Blksize= for Direction=send Host=tso", " Allocation=tracks|cylinders|avblock for Direction=send Host=tso", " PrimarySpace= for Direction=send Host=tso", " SecondarySpace= for Direction=send Host=tso", "Note that to embed a space in a value, you must quote the keyword, e.g.:", " Transfer Direction=send LocalFile=/tmp/foo \"HostFile=foo text a\" Host=vm", NULL }; static struct { const char *name; int flag; const char *text; const char **block; void (*fn)(Boolean); } help_subcommand[] = { { "all", #if defined(X3270_SCRIPT) /*[*/ -1, #else /*][*/ ~P_SCRIPTING, #endif /*]*/ CN, NULL, NULL }, { "3270", P_3270, CN, NULL, NULL }, { "interactive", P_INTERACTIVE, CN, NULL, NULL }, { "options", P_OPTIONS, CN, NULL, &cmdline_help }, #if defined(X3270_SCRIPT) /*[*/ { "scripting", P_SCRIPTING, CN, NULL, NULL }, #endif /*]*/ #if defined(X3270_FT) /*[*/ { "file-transfer", P_TRANSFER, CN, ft_help, NULL }, #endif /*]*/ { CN, 0, CN } }; /* c3270-specific actions. */ void Help_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int i; int overall = -1; int match = 0; action_debug(Help_action, event, params, num_params); if (*num_params != 1) { action_output( " help all all commands\n" " help 3270 3270 commands\n" " help interactive interactive (command-prompt) commands\n" " help help for one \n" " help options command-line options\n" #if defined(X3270_SCRIPT) /*[*/ " help scripting scripting commands\n" #endif /*]*/ #if defined(X3270_FT) /*[*/ " help file-transfer file transfer options\n" ); #endif /*]*/ return; } if (!strcmp(params[0], "verify")) { int j; Boolean any = False; for (i = 0; cmd_help[i].name; i++) { Boolean found = False; for (j = 0; j < actioncount; j++) { if (!strcasecmp(cmd_help[i].name, actions[j].string)) { found = True; break; } } if (!found) { action_output("Help for nonexistent action: %s", cmd_help[i].name); any = True; } } if (!any) action_output("No orphaned help messages."); any = False; for (j = 0; j < actioncount; j++) { Boolean found = False; for (i = 0; cmd_help[i].name; i++) { if (!strcasecmp(cmd_help[i].name, actions[j].string)) { found = True; break; } } if (!found) { action_output("No Help for %s", actions[j].string); any = True; } } if (!any) printf("No orphaned actions.\n"); return; } for (i = 0; help_subcommand[i].name != CN; i++) { if (!strncasecmp(help_subcommand[i].name, params[0], strlen(params[0]))) { match = help_subcommand[i].flag; overall = i; break; } } if (match) { for (i = 0; cmd_help[i].name != CN; i++) { if (!strncasecmp(cmd_help[i].name, params[0], strlen(params[0]))) { action_output("Ambiguous: matches '%s' and " "one or more commands", help_subcommand[overall].name); return; } } if (help_subcommand[overall].text != CN) { action_output("%s", help_subcommand[overall].text); return; } if (help_subcommand[overall].block != NULL) { int j; for (j = 0; help_subcommand[overall].block[j] != CN; j++) { action_output("%s", help_subcommand[overall].block[j]); } return; } if (help_subcommand[overall].fn != NULL) { (*help_subcommand[overall].fn)(True); return; } for (i = 0; cmd_help[i].name != CN; i++) { if (cmd_help[i].purpose & match) { action_output(" %s %s\n %s", cmd_help[i].name, cmd_help[i].args? cmd_help[i].args: "", cmd_help[i].help? cmd_help[i].help: ""); } } } else { Boolean any = False; for (i = 0; cmd_help[i].name != CN; i++) { #if !defined(X3270_SCRIPT) /*[*/ if (cmd_help[i].purpose == P_SCRIPTING) continue; #endif /*]*/ if (!strncasecmp(cmd_help[i].name, params[0], strlen(params[0]))) { action_output(" %s %s\n %s", cmd_help[i].name, cmd_help[i].args? cmd_help[i].args: "", cmd_help[i].help? cmd_help[i].help: ""); any = True; } } if (!any) action_output("No such command: %s", params[0]); } } ibm-3270-3.3.10ga4/c3270/tn3270e.h0000644000175000017500000000704311254565704015204 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tn3270e.h * * Header file for the TN3270E Protocol, RFC 2355. */ /* Negotiation operations. */ #define TN3270E_OP_ASSOCIATE 0 #define TN3270E_OP_CONNECT 1 #define TN3270E_OP_DEVICE_TYPE 2 #define TN3270E_OP_FUNCTIONS 3 #define TN3270E_OP_IS 4 #define TN3270E_OP_REASON 5 #define TN3270E_OP_REJECT 6 #define TN3270E_OP_REQUEST 7 #define TN3270E_OP_SEND 8 /* Negotiation reason-codes. */ #define TN3270E_REASON_CONN_PARTNER 0 #define TN3270E_REASON_DEVICE_IN_USE 1 #define TN3270E_REASON_INV_ASSOCIATE 2 #define TN3270E_REASON_INV_DEVICE_NAME 3 #define TN3270E_REASON_INV_DEVICE_TYPE 4 #define TN3270E_REASON_TYPE_NAME_ERROR 5 #define TN3270E_REASON_UNKNOWN_ERROR 6 #define TN3270E_REASON_UNSUPPORTED_REQ 7 /* Negotiation function Names. */ #define TN3270E_FUNC_BIND_IMAGE 0 #define TN3270E_FUNC_DATA_STREAM_CTL 1 #define TN3270E_FUNC_RESPONSES 2 #define TN3270E_FUNC_SCS_CTL_CODES 3 #define TN3270E_FUNC_SYSREQ 4 /* Header data type names. */ #define TN3270E_DT_3270_DATA 0x00 #define TN3270E_DT_SCS_DATA 0x01 #define TN3270E_DT_RESPONSE 0x02 #define TN3270E_DT_BIND_IMAGE 0x03 #define TN3270E_DT_UNBIND 0x04 #define TN3270E_DT_NVT_DATA 0x05 #define TN3270E_DT_REQUEST 0x06 #define TN3270E_DT_SSCP_LU_DATA 0x07 #define TN3270E_DT_PRINT_EOJ 0x08 /* Header request flags. */ #define TN3270E_RQF_ERR_COND_CLEARED 0x00 /* Header response flags. */ #define TN3270E_RSF_NO_RESPONSE 0x00 #define TN3270E_RSF_ERROR_RESPONSE 0x01 #define TN3270E_RSF_ALWAYS_RESPONSE 0x02 #define TN3270E_RSF_POSITIVE_RESPONSE 0x00 #define TN3270E_RSF_NEGATIVE_RESPONSE 0x01 /* Header response data. */ #define TN3270E_POS_DEVICE_END 0x00 #define TN3270E_NEG_COMMAND_REJECT 0x00 #define TN3270E_NEG_INTERVENTION_REQUIRED 0x01 #define TN3270E_NEG_OPERATION_CHECK 0x02 #define TN3270E_NEG_COMPONENT_DISCONNECTED 0x03 /* TN3270E data header. */ typedef struct { unsigned char data_type; unsigned char request_flag; unsigned char response_flag; unsigned char seq_number[2]; /* actually, 16 bits, unaligned (!) */ } tn3270e_header; #define EH_SIZE 5 ibm-3270-3.3.10ga4/c3270/readres.c0000644000175000017500000001320211254565704015514 0ustar bastianbastian/* * Copyright (c) 2009, Paul Mattes. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * readres.c * A displayless 3270 Terminal Emulator * Resource file reader. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "readresc.h" #include "screenc.h" #include "selectc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include #include "winversc.h" #endif /*]*/ #if !defined(ME) /*[*/ # if defined(C3270) /*[*/ # if defined(WC3270) /*[*/ # define ME "wc3270" # else /*][*/ # define ME "c3270" # endif /*]*/ # elif defined(S3270) /*[*/ # if defined(WS3270) /*[*/ # define ME "ws3270" # else /*][*/ # define ME "s3270" # endif /*]*/ # elif defined(TCL3270) /*][*/ # define ME "tcl3270" # endif /*]*/ #endif /*]*/ /* * Make sure a resource definition begins with the application name, then * split it into the name and the value. */ int validate_and_split_resource(const char *where, const char *arg, const char **left, unsigned *rnlenp, const char **right) { unsigned match_len; unsigned rnlen; const char *s = arg; static char me_dot[] = ME "."; static char me_star[] = ME "*"; /* Enforce "-3270." or "-3270*" or "*". */ if (!strncmp(s, me_dot, sizeof(me_dot)-1)) match_len = sizeof(me_dot)-1; else if (!strncmp(arg, me_star, sizeof(me_star)-1)) match_len = sizeof(me_star)-1; else if (arg[0] == '*') match_len = 1; else { xs_warning("%s: Invalid resource syntax '%.*s', name must " "begin with '%s'", where, (int)(sizeof(me_dot)-1), arg, me_dot); return -1; } /* Separate the parts. */ s = arg + match_len; while (*s && *s != ':' && !isspace(*s)) s++; rnlen = s - (arg + match_len); if (!rnlen) { xs_warning("%s: Invalid resource syntax, missing resource " "name", where); return -1; } while (isspace(*s)) s++; if (*s != ':') { xs_warning("%s: Invalid resource syntax, missing ':'", where); return -1; } s++; while (isspace(*s)) s++; /* Return what we got. */ *left = arg + match_len; *rnlenp = rnlen; *right = s; return 0; } /* Read resources from a file. */ int read_resource_filex(const char *filename, Boolean fatal, rrf_t *rrf) { FILE *f; int ilen; char buf[4096]; char *where; int lno = 0; f = fopen(filename, "r"); if (f == NULL) { if (fatal) xs_warning("Cannot open '%s': %s", filename, strerror(errno)); return -1; } /* Merge in what's in the file into the resource database. */ where = Malloc(strlen(filename) + 64); ilen = 0; while (fgets(buf + ilen, sizeof(buf) - ilen, f) != CN || ilen) { char *s; unsigned sl; Boolean bsl = False; lno++; /* Stip any trailing newline. */ sl = strlen(buf + ilen); if (sl && (buf + ilen)[sl-1] == '\n') (buf + ilen)[--sl] = '\0'; /* Check for a trailing backslash. */ s = buf + ilen; if ((sl > 0) && (s[sl - 1] == '\\')) { s[sl - 1] = '\0'; bsl = True; } /* Skip leading whitespace. */ s = buf; while (isspace(*s)) s++; /* If this line is a continuation, try again. */ if (bsl) { ilen += strlen(buf + ilen); if ((unsigned)ilen >= sizeof(buf) - 1) { (void) sprintf(where, "%s:%d: Line too long\n", filename, lno); Warning(where); break; } continue; } /* Skip comments. */ if (*s == '!') { ilen = 0; continue; } if (*s == '#') { (void) sprintf(where, "%s:%d: Invalid profile " "syntax ('#' ignored)", filename, lno); Warning(where); ilen = 0; continue; } /* Strip trailing whitespace and check for empty lines. */ sl = strlen(s); while (sl && isspace(s[sl-1])) s[--sl] = '\0'; if (!sl) { ilen = 0; continue; } /* Digest it. */ (void) sprintf(where, "%s:%d", filename, lno); parse_xrm(s, where); /* Get ready for the next iteration. */ ilen = 0; } Free(where); fclose(f); return 0; } ibm-3270-3.3.10ga4/c3270/w3miscc.h0000644000175000017500000000372511254565704015455 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * w3misc.c * Miscellaneous Win32 functions. */ #if defined(_WIN32) /*[*/ #if defined(_WS2TCPIP_H) /*[*/ extern const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt); #endif /*]*/ extern int sockstart(void); extern const char *win32_strerror(int e); #if defined(_MSC_VER) /*[*/ extern int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg; extern int optind, opterr, optopt; #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/c3270/arpa_telnet.h0000644000175000017500000001140211254565704016372 0ustar bastianbastian/* @(#)telnet.h 1.7 88/08/19 SMI; from UCB 5.1 5/30/85 */ /* * Copyright (c) 1983 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */ /* * Definitions for the TELNET protocol. */ #ifndef _arpa_telnet_h #define _arpa_telnet_h #define IAC 255 /* interpret as command: */ #define DONT 254 /* you are not to use option */ #define DO 253 /* please, you use option */ #define WONT 252 /* I won't use option */ #define WILL 251 /* I will use option */ #define SB 250 /* interpret as subnegotiation */ #define GA 249 /* you may reverse the line */ #define EL 248 /* erase the current line */ #define EC 247 /* erase the current character */ #define AYT 246 /* are you there */ #define AO 245 /* abort output--but let prog finish */ #define IP 244 /* interrupt process--permanently */ #define BREAK 243 /* break */ #define DM 242 /* data mark--for connect. cleaning */ #define NOP 241 /* nop */ #define SE 240 /* end sub negotiation */ #define EOR 239 /* end of record (transparent mode) */ #define SUSP 237 /* suspend process */ #define xEOF 236 /* end of file */ #define SYNCH 242 /* for telfunc calls */ #ifdef TELCMDS const char *telcmds[] = { "EOF", "SUSP", "ABORT", "EOR", "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0 }; #endif #define TELCMD_FIRST xEOF #define TELCMD_LAST IAC #define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \ (unsigned int)(x) >= TELCMD_FIRST) #define TELCMD(x) telcmds[(x)-TELCMD_FIRST] /* telnet options */ #define TELOPT_BINARY 0 /* 8-bit data path */ #define TELOPT_ECHO 1 /* echo */ #define TELOPT_RCP 2 /* prepare to reconnect */ #define TELOPT_SGA 3 /* suppress go ahead */ #define TELOPT_NAMS 4 /* approximate message size */ #define TELOPT_STATUS 5 /* give status */ #define TELOPT_TM 6 /* timing mark */ #define TELOPT_RCTE 7 /* remote controlled transmission and echo */ #define TELOPT_NAOL 8 /* negotiate about output line width */ #define TELOPT_NAOP 9 /* negotiate about output page size */ #define TELOPT_NAOCRD 10 /* negotiate about CR disposition */ #define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */ #define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */ #define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */ #define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */ #define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */ #define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */ #define TELOPT_XASCII 17 /* extended ascic character set */ #define TELOPT_LOGOUT 18 /* force logout */ #define TELOPT_BM 19 /* byte macro */ #define TELOPT_DET 20 /* data entry terminal */ #define TELOPT_SUPDUP 21 /* supdup protocol */ #define TELOPT_SUPDUPOUTPUT 22 /* supdup output */ #define TELOPT_SNDLOC 23 /* send location */ #define TELOPT_TTYPE 24 /* terminal type */ #define TELOPT_EOR 25 /* end or record */ #define TELOPT_TUID 26 /* TACACS user identification */ #define TELOPT_OUTMRK 27 /* output marking */ #define TELOPT_TTYLOC 28 /* terminal location number */ #define TELOPT_3270REGIME 29 /* 3270 regime */ #define TELOPT_X3PAD 30 /* X.3 PAD */ #define TELOPT_NAWS 31 /* window size */ #define TELOPT_TSPEED 32 /* terminal speed */ #define TELOPT_LFLOW 33 /* remote flow control */ #define TELOPT_LINEMODE 34 /* linemode option */ #define TELOPT_XDISPLOC 35 /* X Display Location */ #define TELOPT_OLD_ENVIRON 36 /* old - Environment variables */ #define TELOPT_AUTHENTICATION 37/* authenticate */ #define TELOPT_ENCRYPT 38 /* encryption option */ #define TELOPT_NEW_ENVIRON 39 /* new - environment variables */ #define TELOPT_TN3270E 40 /* extended 3270 regime */ #define TELOPT_EXOPL 255 /* extended-options-list */ #define NTELOPTS (1+TELOPT_TN3270E) #ifdef TELOPTS const char *telopts[NTELOPTS+1] = { "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME", "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP", "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS", "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO", "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT", "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD", "TACACS UID", "OUTPUT MARKING", "TTYLOC", "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW", "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION", "ENCRYPT", "NEW-ENVIRON", "TN3270E", 0 }; #define TELOPT_FIRST TELOPT_BINARY #define TELOPT_LAST TELOPT_TN3270E #define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST) #define TELOPT(x) telopts[(x)-TELOPT_FIRST] #endif /* sub-option qualifiers */ #define TELQUAL_IS 0 /* option is... */ #define TELQUAL_SEND 1 /* send option */ #endif /*!_arpa_telnet_h*/ ibm-3270-3.3.10ga4/c3270/printer.c0000644000175000017500000004172111254565704015561 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * printer.c * Printer session support */ #include "globals.h" #if (defined(C3270) || defined(X3270_DISPLAY)) && defined(X3270_PRINTER) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #endif /*]*/ #if defined(_WIN32) /*[*/ #include "windows.h" #endif /*]*/ #include #include #include #include #include "3270ds.h" #include "appres.h" #include "objects.h" #include "resources.h" #include "ctlr.h" #include "charsetc.h" #include "ctlrc.h" #include "hostc.h" #include "menubarc.h" #include "popupsc.h" #include "printerc.h" #include "printc.h" #include "savec.h" #if defined(C3270) /*[*/ #include "screenc.h" #endif /*]*/ #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utilc.h" #include "w3miscc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #define PRINTER_BUF 1024 /* Statics */ static int printer_pid = -1; #if defined(_WIN32) /*[*/ static HANDLE printer_handle = NULL; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ static Widget lu_shell = (Widget)NULL; #endif /*]*/ static struct pr3o { int fd; /* file descriptor */ unsigned long input_id; /* input ID */ unsigned long timeout_id; /* timeout ID */ int count; /* input count */ char buf[PRINTER_BUF]; /* input buffer */ } printer_stdout = { -1, 0L, 0L, 0 }, printer_stderr = { -1, 0L, 0L, 0 }; #if !defined(_WIN32) /*[*/ static void printer_output(void); static void printer_error(void); static void printer_otimeout(void); static void printer_etimeout(void); static void printer_dump(struct pr3o *p, Boolean is_err, Boolean is_dead); #endif /*]*/ static void printer_host_connect(Boolean connected _is_unused); static void printer_exiting(Boolean b _is_unused); /* Globals */ /* * Printer initialization function. */ void printer_init(void) { /* Register interest in host connects and mode changes. */ register_schange(ST_CONNECT, printer_host_connect); register_schange(ST_3270_MODE, printer_host_connect); register_schange(ST_EXITING, printer_exiting); } /* * Printer Start-up function * If 'lu' is non-NULL, then use the specific-LU form. * If not, use the assoc form. */ void printer_start(const char *lu) { const char *cmdlineName; const char *cmdline; #if !defined(_WIN32) /*[*/ const char *cmd; #else /*][*/ const char *printerName; #endif /*]*/ int cmd_len = 0; const char *s; char *cmd_text; char c; char charset_cmd[256]; /* -charset */ char *proxy_cmd = CN; /* -proxy */ #if defined(_WIN32) /*[*/ char *pcp_res = CN; char *printercp = CN; /* -printercp */ STARTUPINFO startupinfo; PROCESS_INFORMATION process_information; char *subcommand; char *space; #else /*][*/ int stdout_pipe[2]; int stderr_pipe[2]; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* Make sure the popups are initted. */ printer_popup_init(); #endif /*]*/ /* Can't start two. */ if (printer_pid != -1) { popup_an_error("printer is already running"); return; } /* Gotta be in 3270 mode. */ if (!IN_3270) { popup_an_error("Not in 3270 mode"); return; } /* Select the command line to use. */ if (lu == CN) { /* Associate with the current session. */ /* Gotta be in TN3270E mode. */ if (!IN_TN3270E) { popup_an_error("Not in TN3270E mode"); return; } /* Gotta be connected to an LU. */ if (connected_lu == CN) { popup_an_error("Not connected to a specific LU"); return; } lu = connected_lu; cmdlineName = ResAssocCommand; } else { /* Specific LU passed in. */ cmdlineName = ResLuCommandLine; } /* Fetch the command line and command resources. */ cmdline = get_resource(cmdlineName); if (cmdline == CN) { popup_an_error("%s resource not defined", cmdlineName); return; } #if !defined(_WIN32) /*[*/ cmd = get_resource(ResPrinterCommand); if (cmd == CN) { popup_an_error(ResPrinterCommand " resource not defined"); return; } #else /*][*/ printerName = get_resource(ResPrinterName); #endif /*]*/ /* Construct the charset option. */ (void) sprintf(charset_cmd, "-charset %s", get_charset_name()); /* Construct proxy option. */ if (appres.proxy != CN) { #if !defined(_WIN32) /*[*/ proxy_cmd = xs_buffer("-proxy \"%s\"", appres.proxy); #else /*][ */ proxy_cmd = xs_buffer("-proxy %s", appres.proxy); #endif /*]*/ } #if defined(_WIN32) /*[*/ pcp_res = get_resource(ResPrinterCodepage); if (pcp_res) printercp = xs_buffer("-printercp %s", pcp_res); #endif /*]*/ /* Construct the command line. */ /* Figure out how long it will be. */ cmd_len = strlen(cmdline) + 1; s = cmdline; while ((s = strstr(s, "%L%")) != CN) { cmd_len += strlen(lu) - 3; s += 3; } s = cmdline; while ((s = strstr(s, "%H%")) != CN) { cmd_len += strlen(qualified_host) - 3; s += 3; } #if !defined(_WIN32) /*[*/ s = cmdline; while ((s = strstr(s, "%C%")) != CN) { cmd_len += strlen(cmd) - 3; s += 3; } #endif /*]*/ s = cmdline; while ((s = strstr(s, "%R%")) != CN) { cmd_len += strlen(charset_cmd) - 3; s += 3; } s = cmdline; while ((s = strstr(s, "%P%")) != CN) { cmd_len += (proxy_cmd? strlen(proxy_cmd): 0) - 3; s += 3; } #if defined(_WIN32) /*[*/ s = cmdline; while ((s = strstr(s, "%I%")) != CN) { cmd_len += (printercp? strlen(printercp): 0) - 3; s += 3; } #endif /*]*/ /* Allocate a string buffer and substitute into it. */ cmd_text = Malloc(cmd_len); cmd_text[0] = '\0'; for (s = cmdline; (c = *s) != '\0'; s++) { char buf1[2]; if (c == '%') { if (!strncmp(s+1, "L%", 2)) { (void) strcat(cmd_text, lu); s += 2; continue; } else if (!strncmp(s+1, "H%", 2)) { (void) strcat(cmd_text, qualified_host); s += 2; continue; #if !defined(_WIN32) /*[*/ } else if (!strncmp(s+1, "C%", 2)) { (void) strcat(cmd_text, cmd); s += 2; continue; #endif /*]*/ } else if (!strncmp(s+1, "R%", 2)) { (void) strcat(cmd_text, charset_cmd); s += 2; continue; } else if (!strncmp(s+1, "P%", 2)) { if (proxy_cmd != CN) (void) strcat(cmd_text, proxy_cmd); s += 2; continue; #if defined(_WIN32) /*[*/ } else if (!strncmp(s+1, "I%", 2)) { if (printercp != CN) (void) strcat(cmd_text, printercp); s += 2; continue; #endif /*]*/ } } buf1[0] = c; buf1[1] = '\0'; (void) strcat(cmd_text, buf1); } trace_dsn("Printer command line: %s\n", cmd_text); #if !defined(_WIN32) /*[*/ /* Make pipes for printer's stdout and stderr. */ if (pipe(stdout_pipe) < 0) { popup_an_errno(errno, "pipe() failed"); Free(cmd_text); if (proxy_cmd != CN) Free(proxy_cmd); return; } (void) fcntl(stdout_pipe[0], F_SETFD, 1); if (pipe(stderr_pipe) < 0) { popup_an_errno(errno, "pipe() failed"); (void) close(stdout_pipe[0]); (void) close(stdout_pipe[1]); Free(cmd_text); if (proxy_cmd != CN) Free(proxy_cmd); return; } (void) fcntl(stderr_pipe[0], F_SETFD, 1); /* Fork and exec the printer session. */ trace_dsn("Printer command line: %s\n", cmd_text); switch (printer_pid = fork()) { case 0: /* child process */ (void) dup2(stdout_pipe[1], 1); (void) close(stdout_pipe[1]); (void) dup2(stderr_pipe[1], 2); (void) close(stderr_pipe[1]); if (setsid() < 0) { perror("setsid"); _exit(1); } (void) execlp("/bin/sh", "sh", "-c", cmd_text, CN); (void) perror("exec(printer)"); _exit(1); default: /* parent process */ (void) close(stdout_pipe[1]); printer_stdout.fd = stdout_pipe[0]; (void) close(stderr_pipe[1]); printer_stderr.fd = stderr_pipe[0]; printer_stdout.input_id = AddInput(printer_stdout.fd, printer_output); printer_stderr.input_id = AddInput(printer_stderr.fd, printer_error); ++children; break; case -1: /* error */ popup_an_errno(errno, "fork()"); (void) close(stdout_pipe[0]); (void) close(stdout_pipe[1]); (void) close(stderr_pipe[0]); (void) close(stderr_pipe[1]); break; } #else /*][*/ /* Pass the command via the environment. */ if (printerName != NULL) { static char pn_buf[1024]; sprintf(pn_buf, "PRINTER=%s", printerName); putenv(pn_buf); } /* Create the wpr3287 process. */ (void) memset(&startupinfo, '\0', sizeof(STARTUPINFO)); startupinfo.cb = sizeof(STARTUPINFO); (void) memset(&process_information, '\0', sizeof(PROCESS_INFORMATION)); subcommand = NewString(cmd_text); strcpy(subcommand, cmd_text); space = strchr(subcommand, ' '); if (space) { *space = '\0'; } if (!strcasecmp(subcommand, "wpr3287.exe") || !strcasecmp(subcommand, "wpr3287")) { char *pc; pc = xs_buffer("%s%s", instdir, subcommand); Free(subcommand); subcommand = pc; if (space) pc = xs_buffer("\"%s\" %s", subcommand, space + 1); else pc = xs_buffer("\"%s%s\"", instdir, cmd_text); Free(cmd_text); cmd_text = pc; } trace_dsn("Printer command line: %s\n", cmd_text); if (CreateProcess( subcommand, cmd_text, NULL, NULL, FALSE, 0, /* creation flags */ NULL, NULL, &startupinfo, &process_information) == 0) { popup_an_error("CreateProcess(%s) failed: %s", subcommand, win32_strerror(GetLastError())); } printer_handle = process_information.hProcess; CloseHandle(process_information.hThread); printer_pid = process_information.dwProcessId; Free(subcommand); #endif /*]*/ Free(cmd_text); if (proxy_cmd != CN) Free(proxy_cmd); #if defined(_WIN32) /*[*/ if (printercp != CN) Free(printercp); #endif /*]*/ /* Tell everyone else. */ st_changed(ST_PRINTER, True); } #if !defined(_WIN32) /*[*/ /* There's data from the printer session. */ static void printer_data(struct pr3o *p, Boolean is_err) { int space; int nr; static char exitmsg[] = "Printer session exited"; /* Read whatever there is. */ space = PRINTER_BUF - p->count - 1; nr = read(p->fd, p->buf + p->count, space); /* Handle read errors and end-of-file. */ if (nr < 0) { popup_an_errno(errno, "printer session pipe input"); printer_stop(); return; } if (nr == 0) { if (printer_stderr.timeout_id != 0L) { /* * Append a termination error message to whatever the * printer process said, and pop it up. */ p = &printer_stderr; space = PRINTER_BUF - p->count - 1; if (p->count && *(p->buf + p->count - 1) != '\n') { *(p->buf + p->count) = '\n'; p->count++; space--; } (void) strncpy(p->buf + p->count, exitmsg, space); p->count += strlen(exitmsg); if (p->count >= PRINTER_BUF) p->count = PRINTER_BUF - 1; printer_dump(p, True, True); } else { popup_an_error("%s", exitmsg); } printer_stop(); return; } /* Add it to the buffer, and add a NULL. */ p->count += nr; p->buf[p->count] = '\0'; /* * If there's no more room in the buffer, dump it now. Otherwise, * give it a second to generate more output. */ if (p->count >= PRINTER_BUF - 1) { printer_dump(p, is_err, False); } else if (p->timeout_id == 0L) { p->timeout_id = AddTimeOut(1000, is_err? printer_etimeout: printer_otimeout); } } /* The printer process has some output for us. */ static void printer_output(void) { printer_data(&printer_stdout, False); } /* The printer process has some error output for us. */ static void printer_error(void) { printer_data(&printer_stderr, True); } /* Timeout from printer output or error output. */ static void printer_timeout(struct pr3o *p, Boolean is_err) { /* Forget the timeout ID. */ p->timeout_id = 0L; /* Dump the output. */ printer_dump(p, is_err, False); } /* Timeout from printer output. */ static void printer_otimeout(void) { printer_timeout(&printer_stdout, False); } /* Timeout from printer error output. */ static void printer_etimeout(void) { printer_timeout(&printer_stderr, True); } /* Dump pending printer process output. */ static void printer_dump(struct pr3o *p, Boolean is_err, Boolean is_dead) { if (p->count) { /* * Strip any trailing newline, and make sure the buffer is * NULL terminated. */ if (p->buf[p->count - 1] == '\n') p->buf[--(p->count)] = '\0'; else if (p->buf[p->count]) p->buf[p->count] = '\0'; /* Dump it and clear the buffer. */ #if defined(X3270_DISPLAY) /*[*/ popup_printer_output(is_err, is_dead? NULL: printer_stop, "%s", p->buf); #else /*][*/ action_output("%s", p->buf); #endif p->count = 0; } } #endif /*]*/ #if defined(_WIN32) /*[*/ /* Check for an exited printer session. */ void printer_check(void) { DWORD exit_code; if (printer_pid != -1 && GetExitCodeProcess(printer_handle, &exit_code) != 0 && exit_code != STILL_ACTIVE) { printer_pid = -1; CloseHandle(printer_handle); printer_handle = NULL; st_changed(ST_PRINTER, False); popup_an_error("Printer process exited with status %ld", exit_code); } } #endif /*]*/ /* Close the printer session. */ void printer_stop(void) { /* Remove inputs. */ if (printer_stdout.input_id) { RemoveInput(printer_stdout.input_id); printer_stdout.input_id = 0L; } if (printer_stderr.input_id) { RemoveInput(printer_stderr.input_id); printer_stderr.input_id = 0L; } /* Cancel timeouts. */ if (printer_stdout.timeout_id) { RemoveTimeOut(printer_stdout.timeout_id); printer_stdout.timeout_id = 0L; } if (printer_stderr.timeout_id) { RemoveTimeOut(printer_stderr.timeout_id); printer_stderr.timeout_id = 0L; } /* Clear buffers. */ printer_stdout.count = 0; printer_stderr.count = 0; /* Kill the process. */ if (printer_pid != -1) { #if !defined(_WIN32) /*[*/ (void) kill(-printer_pid, SIGTERM); #else /*][*/ TerminateProcess(printer_handle, 0); #endif /*]*/ printer_pid = -1; #if defined(_WIN32) /*[*/ printer_handle = NULL; #endif /*]*/ } /* Tell everyone else. */ st_changed(ST_PRINTER, False); } /* The emulator is exiting. Make sure the printer session is cleaned up. */ static void printer_exiting(Boolean b _is_unused) { printer_stop(); } #if defined(X3270_DISPLAY) /*[*/ /* Callback for "OK" button on printer specific-LU popup */ static void lu_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { char *lu; if (w) { lu = XawDialogGetValueString((Widget)client_data); if (lu == CN || *lu == '\0') { popup_an_error("Must supply an LU"); return; } else XtPopdown(lu_shell); } else lu = (char *)client_data; printer_start(lu); } #endif /*]*/ /* Host connect/disconnect/3270-mode event. */ static void printer_host_connect(Boolean connected _is_unused) { if (IN_3270) { char *printer_lu = appres.printer_lu; if (printer_lu != CN && !printer_running()) { if (!strcmp(printer_lu, ".")) { if (IN_TN3270E) { /* Associate with TN3270E session. */ trace_dsn("Starting associated printer " "session.\n"); printer_start(CN); } } else { /* Specific LU. */ trace_dsn("Starting %s printer session.\n", printer_lu); printer_start(printer_lu); } } else if (!IN_E && printer_lu != CN && !strcmp(printer_lu, ".") && printer_running()) { /* Stop an automatic associated printer. */ trace_dsn("Stopping printer session.\n"); printer_stop(); } } else if (printer_running()) { /* * We're no longer in 3270 mode, then we can no longer have a * printer session. This may cause some fireworks if there is * a print job pending when we do this, so some sort of awful * timeout may be needed. */ trace_dsn("Stopping printer session.\n"); printer_stop(); } } #if defined(X3270_DISPLAY) /*[*/ /* Pop up the LU dialog box. */ void printer_lu_dialog(void) { if (lu_shell == NULL) lu_shell = create_form_popup("printerLu", lu_callback, (XtCallbackProc)NULL, FORM_NO_WHITE); popup_popup(lu_shell, XtGrabExclusive); } #endif /*]*/ Boolean printer_running(void) { return printer_pid != -1; } #endif /*]*/ ibm-3270-3.3.10ga4/c3270/util.c0000644000175000017500000005021611256027015015040 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * util.c * Utility functions for x3270/c3270/s3270/tcl3270 */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include "resources.h" #include "charsetc.h" #include "utilc.h" #define my_isspace(c) isspace((unsigned char)c) /* * Cheesy internal version of sprintf that allocates its own memory. */ static char * xs_vsprintf(const char *fmt, va_list args) { char *r = CN; #if defined(HAVE_VASPRINTF) /*[*/ int nw; nw = vasprintf(&r, fmt, args); if (nw < 0 || r == CN) Error("Out of memory"); return r; #else /*][*/ char buf[16384]; int nc; nc = vsprintf(buf, fmt, args); if (nc > sizeof(buf)) Error("Internal buffer overflow"); r = Malloc(nc + 1); return strcpy(r, buf); #endif /*]*/ } /* * Common helper functions to insert strings, through a template, into a new * buffer. * 'format' is assumed to be a printf format string with '%s's in it. */ char * xs_buffer(const char *fmt, ...) { va_list args; char *r; va_start(args, fmt); r = xs_vsprintf(fmt, args); va_end(args); return r; } /* Common uses of xs_buffer. */ void xs_warning(const char *fmt, ...) { va_list args; char *r; va_start(args, fmt); r = xs_vsprintf(fmt, args); va_end(args); Warning(r); Free(r); } void xs_error(const char *fmt, ...) { va_list args; char *r; va_start(args, fmt); r = xs_vsprintf(fmt, args); va_end(args); Error(r); Free(r); } /* Prettyprinter for strings with unprintable data. */ void fcatv(FILE *f, char *s) { char c; while ((c = *s++)) { switch (c) { case '\n': (void) fprintf(f, "\\n"); break; case '\t': (void) fprintf(f, "\\t"); break; case '\b': (void) fprintf(f, "\\b"); break; default: if ((c & 0x7f) < ' ') (void) fprintf(f, "\\%03o", c & 0xff); else fputc(c, f); break; } } } /* String version of fcatv. */ char * scatv(const char *s, char *buf, size_t len) { char c; char *dst = buf; while ((c = *s++) && len > 0) { char cbuf[5]; char *t = cbuf; /* Expand this character. */ switch (c) { case '\n': (void) strcpy(cbuf, "\\n"); break; case '\t': (void) strcpy(cbuf, "\\t"); break; case '\b': (void) strcpy(cbuf, "\\b"); break; default: if ((c & 0x7f) < ' ') (void) sprintf(cbuf, "\\%03o", c & 0xff); else { cbuf[0] = c; cbuf[1] = '\0'; } break; } /* Copy as much as will fit. */ while ((c = *t++) && len > 0) { *dst++ = c; len--; } } if (len > 0) *dst = '\0'; return buf; } /* * Definition resource splitter, for resources of the repeating form: * left: right\n * * Can be called iteratively to parse a list. * Returns 1 for success, 0 for EOF, -1 for error. * * Note: Modifies the input string. */ int split_dresource(char **st, char **left, char **right) { char *s = *st; char *t; Boolean quote; /* Skip leading white space. */ while (my_isspace(*s)) s++; /* If nothing left, EOF. */ if (!*s) return 0; /* There must be a left-hand side. */ if (*s == ':') return -1; /* Scan until an unquoted colon is found. */ *left = s; for (; *s && *s != ':' && *s != '\n'; s++) if (*s == '\\' && *(s+1) == ':') s++; if (*s != ':') return -1; /* Stip white space before the colon. */ for (t = s-1; my_isspace(*t); t--) *t = '\0'; /* Terminate the left-hand side. */ *(s++) = '\0'; /* Skip white space after the colon. */ while (*s != '\n' && my_isspace(*s)) s++; /* There must be a right-hand side. */ if (!*s || *s == '\n') return -1; /* Scan until an unquoted newline is found. */ *right = s; quote = False; for (; *s; s++) { if (*s == '\\' && *(s+1) == '"') s++; else if (*s == '"') quote = !quote; else if (!quote && *s == '\n') break; } /* Strip white space before the newline. */ if (*s) { t = s; *st = s+1; } else { t = s-1; *st = s; } while (my_isspace(*t)) *t-- = '\0'; /* Done. */ return 1; } /* * Split a DBCS resource into its parts. * Returns the number of parts found: * -1 error (empty sub-field) * 0 nothing found * 1 one and just one thing found * 2 two things found * 3 more than two things found */ int split_dbcs_resource(const char *value, char sep, char **part1, char **part2) { int n_parts = 0; const char *s = value; const char *f_start = CN; /* start of sub-field */ const char *f_end = CN; /* end of sub-field */ char c; char **rp; *part1 = CN; *part2 = CN; for( ; ; ) { c = *s; if (c == sep || c == '\0') { if (f_start == CN) return -1; if (f_end == CN) f_end = s; if (f_end == f_start) { if (c == sep) { if (*part1) { Free(*part1); *part1 = NULL; } if (*part2) { Free(*part2); *part2 = NULL; } return -1; } else return n_parts; } switch (n_parts) { case 0: rp = part1; break; case 1: rp = part2; break; default: return 3; } *rp = Malloc(f_end - f_start + 1); strncpy(*rp, f_start, f_end - f_start); (*rp)[f_end - f_start] = '\0'; f_end = CN; f_start = CN; n_parts++; if (c == '\0') return n_parts; } else if (isspace(c)) { if (f_end == CN) f_end = s; } else { if (f_start == CN) f_start = s; f_end = CN; } s++; } } #if defined(X3270_DISPLAY) /*[*/ /* * List resource splitter, for lists of elements speparated by newlines. * * Can be called iteratively. * Returns 1 for success, 0 for EOF, -1 for error. */ int split_lresource(char **st, char **value) { char *s = *st; char *t; Boolean quote; /* Skip leading white space. */ while (my_isspace(*s)) s++; /* If nothing left, EOF. */ if (!*s) return 0; /* Save starting point. */ *value = s; /* Scan until an unquoted newline is found. */ quote = False; for (; *s; s++) { if (*s == '\\' && *(s+1) == '"') s++; else if (*s == '"') quote = !quote; else if (!quote && *s == '\n') break; } /* Strip white space before the newline. */ if (*s) { t = s; *st = s+1; } else { t = s-1; *st = s; } while (my_isspace(*t)) *t-- = '\0'; /* Done. */ return 1; } #endif /*]*/ const char * get_message(const char *key) { static char namebuf[128]; char *r; (void) sprintf(namebuf, "%s.%s", ResMessage, key); if ((r = get_resource(namebuf)) != CN) return r; else { (void) sprintf(namebuf, "[missing \"%s\" message]", key); return namebuf; } } #define ex_getenv getenv /* Variable and tilde substitution functions. */ static char * var_subst(const char *s) { enum { VS_BASE, VS_QUOTE, VS_DOLLAR, VS_BRACE, VS_VN, VS_VNB, VS_EOF } state = VS_BASE; char c; int o_len = strlen(s) + 1; char *ob; char *o; const char *vn_start = CN; if (strchr(s, '$') == CN) return NewString(s); o_len = strlen(s) + 1; ob = Malloc(o_len); o = ob; # define LBR '{' # define RBR '}' while (state != VS_EOF) { c = *s; switch (state) { case VS_BASE: if (c == '\\') state = VS_QUOTE; else if (c == '$') state = VS_DOLLAR; else *o++ = c; break; case VS_QUOTE: if (c == '$') { *o++ = c; o_len--; } else { *o++ = '\\'; *o++ = c; } state = VS_BASE; break; case VS_DOLLAR: if (c == LBR) state = VS_BRACE; else if (isalpha(c) || c == '_') { vn_start = s; state = VS_VN; } else { *o++ = '$'; *o++ = c; state = VS_BASE; } break; case VS_BRACE: if (isalpha(c) || c == '_') { vn_start = s; state = VS_VNB; } else { *o++ = '$'; *o++ = LBR; *o++ = c; state = VS_BASE; } break; case VS_VN: case VS_VNB: if (!(isalnum(c) || c == '_')) { int vn_len; char *vn; char *vv; vn_len = s - vn_start; if (state == VS_VNB && c != RBR) { *o++ = '$'; *o++ = LBR; (void) strncpy(o, vn_start, vn_len); o += vn_len; state = VS_BASE; continue; /* rescan */ } vn = Malloc(vn_len + 1); (void) strncpy(vn, vn_start, vn_len); vn[vn_len] = '\0'; if ((vv = ex_getenv(vn))) { *o = '\0'; o_len = o_len - 1 /* '$' */ - (state == VS_VNB) /* { */ - vn_len /* name */ - (state == VS_VNB) /* } */ + strlen(vv); ob = Realloc(ob, o_len); o = strchr(ob, '\0'); (void) strcpy(o, vv); o += strlen(vv); } Free(vn); if (state == VS_VNB) { state = VS_BASE; break; } else { /* Rescan this character */ state = VS_BASE; continue; } } break; case VS_EOF: break; } s++; if (c == '\0') state = VS_EOF; } return ob; } #if !defined(_WIN32) /*[*/ /* * Do tilde (home directory) substitution on a string. Returns a malloc'd * result. */ static char * tilde_subst(const char *s) { char *slash; const char *name; const char *rest; struct passwd *p; char *r; char *mname = CN; /* Does it start with a "~"? */ if (*s != '~') return NewString(s); /* Terminate with "/". */ slash = strchr(s, '/'); if (slash) { int len = slash - s; mname = Malloc(len + 1); (void) strncpy(mname, s, len); mname[len] = '\0'; name = mname; rest = slash; } else { name = s; rest = strchr(name, '\0'); } /* Look it up. */ if (!strcmp(name, "~")) /* this user */ p = getpwuid(getuid()); else /* somebody else */ p = getpwnam(name + 1); /* Free any temporary copy. */ Free(mname); /* Substitute and return. */ if (p == (struct passwd *)NULL) r = NewString(s); else { r = Malloc(strlen(p->pw_dir) + strlen(rest) + 1); (void) strcpy(r, p->pw_dir); (void) strcat(r, rest); } return r; } #endif /*]*/ char * do_subst(const char *s, Boolean do_vars, Boolean do_tilde) { if (!do_vars && !do_tilde) return NewString(s); if (do_vars) { char *t; t = var_subst(s); #if !defined(_WIN32) /*[*/ if (do_tilde) { char *u; u = tilde_subst(t); Free(t); return u; } #endif /*]*/ return t; } #if !defined(_WIN32) /*[*/ return tilde_subst(s); #else /*][*/ return NewString(s); #endif /*]*/ } /* * ctl_see * Expands a character in the manner of "cat -v". */ char * ctl_see(int c) { static char buf[64]; char *p = buf; c &= 0xff; if ((c & 0x80) && (c <= 0xa0)) { *p++ = 'M'; *p++ = '-'; c &= 0x7f; } if (c >= ' ' && c != 0x7f) { *p++ = c; } else { *p++ = '^'; if (c == 0x7f) { *p++ = '?'; } else { *p++ = c + '@'; } } *p = '\0'; return buf; } /* A version of get_resource that accepts sprintf arguments. */ char * get_fresource(const char *fmt, ...) { va_list args; char *name; char *r; va_start(args, fmt); name = xs_vsprintf(fmt, args); va_end(args); r = get_resource(name); Free(name); return r; } /* * Whitespace stripper. */ char * strip_whitespace(const char *s) { char *t = NewString(s); while (*t && my_isspace(*t)) t++; if (*t) { char *u = t + strlen(t) - 1; while (my_isspace(*u)) { *u-- = '\0'; } } return t; } /* * Hierarchy (a>b>c) splitter. */ Boolean split_hier(char *label, char **base, char ***parents) { int n_parents = 0; char *gt; char *lp; label = NewString(label); for (lp = label; (gt = strchr(lp, '>')) != CN; lp = gt + 1) { if (gt == lp) return False; n_parents++; } if (!*lp) return False; if (n_parents) { *parents = (char **)Calloc(n_parents + 1, sizeof(char *)); for (n_parents = 0, lp = label; (gt = strchr(lp, '>')) != CN; lp = gt + 1) { (*parents)[n_parents++] = lp; *gt = '\0'; } *base = lp; } else { (*parents) = NULL; (*base) = label; } return True; } /* * Incremental, reallocing version of snprintf. */ #define RPF_BLKSIZE 4096 #define SP_TMP_LEN 16384 /* Initialize an RPF structure. */ void rpf_init(rpf_t *r) { r->buf = NULL; r->alloc_len = 0; r->cur_len = 0; } /* Reset an initialized RPF structure (re-use with length 0). */ void rpf_reset(rpf_t *r) { r->cur_len = 0; } /* Append a string to a dynamically-allocated buffer. */ void rpf(rpf_t *r, char *fmt, ...) { va_list a; Boolean need_realloc = False; int ns; char tbuf[SP_TMP_LEN]; /* Figure out how much space would be needed. */ va_start(a, fmt); ns = vsprintf(tbuf, fmt, a); /* XXX: dangerous, but so is vsnprintf */ va_end(a); if (ns >= SP_TMP_LEN) Error("rpf overrun"); /* Make sure we have that. */ while (r->alloc_len - r->cur_len < ns + 1) { r->alloc_len += RPF_BLKSIZE; need_realloc = True; } if (need_realloc) { r->buf = Realloc(r->buf, r->alloc_len); } /* Scribble onto the end of that. */ (void) strcpy(r->buf + r->cur_len, tbuf); r->cur_len += ns; } /* Free resources associated with an RPF. */ void rpf_free(rpf_t *r) { Free(r->buf); r->buf = NULL; r->alloc_len = 0; r->cur_len = 0; } #if defined(X3270_DISPLAY) /*[*/ /* Glue between x3270 and the X libraries. */ /* * A way to work around problems with Xt resources. It seems to be impossible * to get arbitrarily named resources. Someday this should be hacked to * add classes too. */ char * get_resource(const char *name) { XrmValue value; char *type; char *str; char *r = CN; str = xs_buffer("%s.%s", XtName(toplevel), name); if ((XrmGetResource(rdb, str, 0, &type, &value) == True) && *value.addr) r = value.addr; XtFree(str); return r; } /* * Input callbacks. */ typedef void voidfn(void); typedef struct iorec { voidfn *fn; XtInputId id; struct iorec *next; } iorec_t; static iorec_t *iorecs = NULL; static void io_fn(XtPointer closure, int *source _is_unused, XtInputId *id) { iorec_t *iorec; for (iorec = iorecs; iorec != NULL; iorec = iorec->next) { if (iorec->id == *id) { (*iorec->fn)(); break; } } } unsigned long AddInput(int sock, voidfn *fn) { iorec_t *iorec; iorec = (iorec_t *)XtMalloc(sizeof(iorec_t)); iorec->fn = fn; iorec->id = XtAppAddInput(appcontext, sock, (XtPointer) XtInputReadMask, io_fn, NULL); iorec->next = iorecs; iorecs = iorec; return iorec->id; } unsigned long AddExcept(int sock, voidfn *fn) { iorec_t *iorec; iorec = (iorec_t *)XtMalloc(sizeof(iorec_t)); iorec->fn = fn; iorec->id = XtAppAddInput(appcontext, sock, (XtPointer) XtInputExceptMask, io_fn, NULL); iorec->next = iorecs; iorecs = iorec; return iorec->id; } unsigned long AddOutput(int sock, voidfn *fn) { iorec_t *iorec; iorec = (iorec_t *)XtMalloc(sizeof(iorec_t)); iorec->fn = fn; iorec->id = XtAppAddInput(appcontext, sock, (XtPointer) XtInputWriteMask, io_fn, NULL); iorec->next = iorecs; iorecs = iorec; return iorec->id; } void RemoveInput(unsigned long cookie) { iorec_t *iorec; iorec_t *prev = NULL; for (iorec = iorecs; iorec != NULL; iorec = iorec->next) { if (iorec->id == (XtInputId)cookie) { break; } prev = iorec; } if (iorec != NULL) { XtRemoveInput((XtInputId)cookie); if (prev != NULL) prev->next = iorec->next; else iorecs = iorec->next; XtFree((XtPointer)iorec); } } /* * Timer callbacks. */ typedef struct torec { voidfn *fn; XtIntervalId id; struct torec *next; } torec_t; static torec_t *torecs = NULL; static void to_fn(XtPointer closure, XtIntervalId *id) { torec_t *torec; torec_t *prev = NULL; voidfn *fn = NULL; for (torec = torecs; torec != NULL; torec = torec->next) { if (torec->id == *id) { break; } prev = torec; } if (torec != NULL) { /* Remember the record. */ fn = torec->fn; /* Free the record. */ if (prev != NULL) prev->next = torec->next; else torecs = torec->next; XtFree((XtPointer)torec); /* Call the function. */ (*fn)(); } } unsigned long AddTimeOut(unsigned long msec, voidfn *fn) { torec_t *torec; torec = (torec_t *)XtMalloc(sizeof(torec_t)); torec->fn = fn; torec->id = XtAppAddTimeOut(appcontext, msec, to_fn, NULL); torec->next = torecs; torecs = torec; return (unsigned long)torec->id; } void RemoveTimeOut(unsigned long cookie) { torec_t *torec; torec_t *prev = NULL; for (torec = torecs; torec != NULL; torec = torec->next) { if (torec->id == (XtIntervalId)cookie) { break; } prev = torec; } if (torec != NULL) { XtRemoveTimeOut((XtIntervalId)cookie); if (prev != NULL) prev->next = torec->next; else torecs = torec->next; XtFree((XtPointer)torec); } else { Error("RemoveTimeOut: Can't find"); } } KeySym StringToKeysym(char *s) { return XStringToKeysym(s); } #endif /*]*/ /* Return configuration options. */ const char * build_options(void) { return "Build options:" #if defined(X3270_ANSI) /*[*/ " --enable-ansi" #else /*][*/ " --disable-ansi" #endif /*]*/ #if defined(X3270_APL) /*[*/ " --enable-apl" #else /*][*/ " --disable-apl" #endif /*]*/ #if defined(X3270_DBCS) /*[*/ " --enable-dbcs" #else /*][*/ " --disable-dbcs" #endif /*]*/ #if defined(X3270_FT) /*[*/ " --enable-ft" #else /*][*/ " --disable-ft" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ # if defined(X3270_KEYPAD) /*[*/ " --enable-keypad" # else /*][*/ " --disable-keypad" # endif /*]*/ #endif /*]*/ #if defined(X3270_LOCAL_PROCESS) /*[*/ " --enable-local-process" #else /*][*/ " --disable-local-process" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ # if defined(X3270_MENUS) /*[*/ " --enable-menus" # else /*][*/ " --disable-menus" # endif /*]*/ #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_PRINTER) /*[*/ " --enable-printer" # else /*][*/ " --disable-printer" # endif /*]*/ #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_SCRIPT) /*[*/ " --enable-script" # else /*][*/ " --disable-script" # endif /*]*/ #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ " --enable-tn3270e" #else /*][*/ " --disable-tn3270e" #endif /*]*/ #if defined(X3270_TRACE) /*[*/ " --enable-trace" #else /*][*/ " --disable-trace" #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ " --with-ssl" #else /*][*/ " --without-ssl" #endif /*]*/ #if defined(C3270) /*[*/ # if defined(HAVE_LIBREADLINE) /*[*/ " --with-readline" # else /*][*/ " --without-readline" # endif /*]*/ # if !defined(_WIN32) /*[*/ # if defined(CURSES_WIDE) /*[*/ " --with-curses-wide" # else /*][*/ " --without-curses-wide" # endif /*]*/ # endif /*]*/ #endif /*]*/ #if defined(USE_ICONV) /*[*/ " --with-iconv" #endif /*]*/ ; } void dump_version(void) { printf("%s\n%s\n", build, build_options()); charset_list(); printf("\n" "Copyright 1989-2009, Paul Mattes, GTRC and others.\n" "See the source code or documentation for licensing details.\n" "Distributed WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); exit(0); } /* Scale a number for display. */ const char * display_scale(double d, char *buf, size_t buflen) { if (d >= 1000000.0) snprintf(buf, buflen, "%.3g M", d / 1000000.0); else if (d >= 1000.0) snprintf(buf, buflen, "%.3g K", d / 1000.0); else snprintf(buf, buflen, "%.3g ", d); /* Don't trust snprintf. */ buf[buflen - 1] = '\0'; return buf; } ibm-3270-3.3.10ga4/c3270/ft_cutc.h0000644000175000017500000000304511254565704015527 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ extern void ft_cut_data(void); ibm-3270-3.3.10ga4/c3270/ibm_hosts.man0000644000175000017500000000571011261530006016375 0ustar bastianbastian'\" t .TH IBM_HOSTS 5 "02 October 2009" .SH "NAME" ibm_hosts \- host database for x3270 and c3270 .SH "SYNOPSIS" /usr/lib/X11/x3270/ibm_hosts .SH "DESCRIPTION" The \fBibm_hosts\fP file contains information regarding IBM hosts on the network. An \fIIBM host\fP is a host which can communicate with a 3270 terminal emulator such as \fBx3270\fP or \fBc3270\fP. Each line defines a name in the following format (optional fields are shown in brackets): .LP \fIname\fP \fItype\fP [\fIopt\fP:]...[\fIluname\fP@]\fIhostname\fP[:\fIport\fP] [\fIactions\fP] .LP Items are separated by any number of blanks and/or TAB characters. A line beginning with # is taken as a comment (note that # anywhere else on a line does \fInot\fP indicate a comment). .LP The \fIname\fP field is a mnemonic used to identify the host. .LP The \fItype\fP field is a keyword that indicates the type of entry. The value \fBprimary\fP means that the \fIname\fP will be included in host-selection menus that may be displayed by a 3270 emulator. The value \fBalias\fP means that the \fIname\fP will not be included in menus, but will still be accepted as valid input when a host name is required. .LP The \fIhostname\fP field is the Internet hostname or dot-notation Internet address of the host. .LP The \fIhostname\fP can include `s:' or `p:' prefixes, e.g., \fBs:finicky\fP (see the \fIx3270\fP(1) or \fIc3270\fP(1) man page sfor details). It can also include an LU name, separated by an `@' character, e.g., \fBoddlu@bluehost\fP. Finally, it can include a non-default \fIport\fP number, appended to the \fIhostname\fP with a colon `:' character, e.g., \fBbluehost:97\fP. (For compatability with earlier versions of \fIx3270\fP, the \fIport\fP can also be separated by a slash `/' character.) .LP The optional \fIactions\fP field specifies actions to be taken once the connection is made and a data-entry field is defined. If the text looks like an action, e.g., \fBPF(1)\fP, it is unmodified; otherwise it is taken as the parameter to the \fBString()\fP action. The \fIactions\fP are not intended for entering usernames and passwords; rather they provide an automated way of specifying a front-end menu option. .SH "EXAMPLE" Given the following \fBibm_hosts\fP file: .LP .RS mvs primary mvs-host .br tso alias mvs-host .br mvs2 primary mvs-host:4012 .br vm primary vtam Tab() String(3) Enter() .RE A 3270 emulator will display four names (\fBmvs\fP, \fBmvs2\fP, \fBafhost\fP and \fBvm\fP) on its hosts menu. The names \fBmvs\fP and \fBtso\fP will cause connections to the host \fBmvs-host\fP. The name \fBmvs2\fP will also cause a connection to \fBmvs-host\fP, but to port 4012 rather than the emulator's default port (usually 23). The name \fBvm\fP will cause the 3270 emulator to connect to the host \fBvtam\fP (presumably some sort of host-selection front-end), enter the string `3' on the second data-entry field on the screen, and send the Enter \s-1AID\s+1 sequence. .SH "FILES" /usr/lib/X11/x3270/ibm_hosts .SH "SEE ALSO" x3270(1), c3270(1) ibm-3270-3.3.10ga4/c3270/printerc.h0000644000175000017500000000351011254565704015723 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * printerc.h * Printer session support */ extern void printer_init(void); extern void printer_lu_dialog(void); extern void printer_start(const char *lu); extern void printer_stop(void); extern Boolean printer_running(void); #if defined(_WIN32) /*[*/ extern void printer_check(void); #endif /*]*/ ibm-3270-3.3.10ga4/c3270/apl.c0000644000175000017500000001647611254565704014663 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * apl.c * This module handles APL-specific actions. */ #include "globals.h" #if defined(X3270_APL) /*[*/ #include #include "aplc.h" /* * APL keysym translation. * * This code looks a little odd because of how an APL font is implemented. * An APL font has APL graphics in place of the various accented letters and * special symbols in a regular font. APL keysym translation consists of * taking the keysym name for an APL symbol (these names are meaningful only to * x3270) and translating it into the keysym for the regular symbol that the * desired APL symbol _replaces_. * * For example, an APL font has the APL "jot" symbol where a regular font has * the "registered" symbol. So we take the keysym name "jot" and translate it * into the keysym XK_registered. When the XK_registered symbol is displayed * with an APL font, it appears as a "jot". * * The specification of which APL symbols replace which regular symbols is in * IBM GA27-3831, 3174 Establishment Controller Character Set Reference. * * In addition, several standard characters have different names for APL, * for example, "period" becomes "dot". These are included in the table as * well. */ static struct { const char *name; KeySym keysym; int is_ge; } axl[] = { { "Aunderbar", XK_nobreakspace, 1 }, { "Bunderbar", XK_acircumflex, 1 }, { "Cunderbar", XK_adiaeresis, 1 }, { "Dunderbar", XK_agrave, 1 }, { "Eunderbar", XK_aacute, 1 }, { "Funderbar", XK_atilde, 1 }, { "Gunderbar", XK_aring, 1 }, { "Hunderbar", XK_ccedilla, 1 }, { "Iunderbar", XK_ntilde, 1 }, { "Junderbar", XK_eacute, 1 }, { "Kunderbar", XK_ecircumflex, 1 }, { "Lunderbar", XK_ediaeresis, 1 }, { "Munderbar", XK_egrave, 1 }, { "Nunderbar", XK_iacute, 1 }, { "Ounderbar", XK_icircumflex, 1 }, { "Punderbar", XK_idiaeresis, 1 }, { "Qunderbar", XK_igrave, 1 }, { "Runderbar", XK_ssharp, 1 }, { "Sunderbar", XK_Acircumflex, 1 }, { "Tunderbar", XK_Adiaeresis, 1 }, { "Uunderbar", XK_Agrave, 1 }, { "Vunderbar", XK_Aacute, 1 }, { "Wunderbar", XK_Atilde, 1 }, { "Xunderbar", XK_Aring, 1 }, { "Yunderbar", XK_Ccedilla, 1 }, { "Zunderbar", XK_Ntilde, 1 }, { "alpha", XK_asciicircum, 1 }, { "bar", XK_minus, 0 }, { "braceleft", XK_braceleft, 1 }, { "braceright", XK_braceright, 1 }, { "bracketleft", XK_Yacute, 1 }, { "bracketright", XK_diaeresis, 1 }, { "circle", XK_cedilla, 1 }, { "circlebar", XK_Ograve, 1 }, { "circleslope", XK_otilde, 1 }, { "circlestar", XK_Ugrave, 1 }, { "circlestile", XK_ograve, 1 }, { "colon", XK_colon, 0 }, { "comma", XK_comma, 0 }, { "commabar", XK_W, 1 }, /* soliton */ { "del", XK_bracketleft, 1 }, { "delstile", XK_udiaeresis, 1 }, { "delta", XK_bracketright, 1 }, { "deltastile", XK_ugrave, 1 }, { "deltaunderbar", XK_Udiaeresis, 1 }, { "deltilde", XK_Ucircumflex, 1 }, { "diaeresis", XK_Ecircumflex, 1 }, { "diaeresiscircle", XK_V, 1 }, /* soliton */ { "diaeresisdot", XK_Odiaeresis, 1 }, { "diaeresisjot", XK_U, 1 }, /* soliton */ { "diamond", XK_oslash, 1 }, { "dieresis", XK_Ecircumflex, 1 }, { "dieresisdot", XK_Odiaeresis, 1 }, { "divide", XK_onehalf, 1 }, { "dot", XK_period, 0 }, { "downarrow", XK_guillemotright, 1 }, { "downcaret", XK_Igrave, 1 }, { "downcarettilde", XK_ocircumflex, 1 }, { "downshoe", XK_questiondown, 1 }, { "downstile", XK_thorn, 1 }, { "downtack", XK_ETH, 1 }, { "downtackjot", XK_Uacute, 1 }, { "downtackup", XK_onesuperior, 1 }, { "downtackuptack", XK_onesuperior, 1 }, { "epsilon", XK_sterling, 1 }, { "epsilonunderbar", XK_Iacute, 1 }, { "equal", XK_equal, 0 }, { "equalunderbar", XK_backslash, 1 }, { "euro", XK_X, 1 }, /* soliton */ { "greater", XK_greater, 0 }, { "iota", XK_yen, 1 }, { "iotaunderbar", XK_Egrave, 1 }, { "jot", XK_registered, 1 }, { "leftarrow", XK_currency, 1 }, { "leftbracket", XK_Yacute, 1 }, { "leftparen", XK_parenleft, 0 }, { "leftshoe", XK_masculine, 1 }, { "lefttack", XK_Icircumflex, 1 }, { "less", XK_less, 0 }, { "multiply", XK_paragraph, 1 }, { "notequal", XK_acute, 1 }, { "notgreater", XK_eth, 1 }, { "notless", XK_THORN, 1 }, { "omega", XK_copyright, 1 }, { "overbar", XK_mu, 1 }, { "plus", XK_plus, 0 }, { "plusminus", XK_AE, 1 }, { "quad", XK_degree, 1 }, { "quaddivide", XK_Oacute, 1 }, { "quadjot", XK_Ediaeresis, 1 }, { "quadquote", XK_uacute, 1 }, { "quadslope", XK_oacute, 1 }, { "query", XK_question, 0 }, { "quote", XK_apostrophe, 0 }, { "quotedot", XK_ucircumflex, 1 }, { "rho", XK_periodcentered, 1 }, { "rightarrow", XK_plusminus, 1 }, { "rightbracket", XK_diaeresis, 1 }, { "rightparen", XK_parenright, 0 }, { "rightshoe", XK_ordfeminine, 1 }, { "righttack", XK_Idiaeresis, 1 }, { "semicolon", XK_semicolon, 0 }, { "slash", XK_slash, 0 }, { "slashbar", XK_twosuperior, 1 }, { "slope", XK_onequarter, 1 }, { "slopebar", XK_Ocircumflex, 1 }, { "slopequad", XK_oacute, 1 }, { "splat", XK_ae, 1 }, { "squad", XK_odiaeresis, 1 }, { "star", XK_asterisk, 0 }, { "stile", XK_multiply, 1 }, { "tilde", XK_Ooblique, 1 }, { "times", XK_paragraph, 1 }, { "underbar", XK_underscore, 0 }, { "uparrow", XK_guillemotleft, 1 }, { "upcaret", XK_Eacute, 1 }, { "upcarettilde", XK_hyphen, 1 }, { "upshoe", XK_exclamdown, 1 }, { "upshoejot", XK_ydiaeresis, 1 }, { "upstile", XK_yacute, 1 }, { "uptack", XK_macron, 1 }, { "uptackjot", XK_Otilde, 1 }, { 0, 0 } }; /* * Translation from APL ksysym names to indirect APL keysyms. */ KeySym APLStringToKeysym(char *s, int *is_gep) { register int i; if (strncmp(s, "apl_", 4)) return NoSymbol; s += 4; for (i = 0; axl[i].name; i++) if (!strcmp(axl[i].name, s)) { *is_gep = axl[i].is_ge; return axl[i].keysym; } return NoSymbol; } #endif /*]*/ ibm-3270-3.3.10ga4/c3270/statusc.h0000644000175000017500000000417711254565674015603 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* c3270 verson of statusc.h */ #define status_kybdlock() #define status_script(on) #define status_timing(t0, t1) #define status_untiming() extern void status_compose(Boolean on, unsigned char c, enum keytype keytype); extern void status_ctlr_done(void); extern void status_insert_mode(Boolean on); extern void status_lu(const char *); extern void status_minus(void); extern void status_oerr(int error_type); extern void status_reset(void); extern void status_reverse_mode(Boolean on); extern void status_syswait(void); extern void status_twait(void); extern void status_typeahead(Boolean on); extern void status_push(char *msg); ibm-3270-3.3.10ga4/c3270/childc.h0000644000175000017500000000341211254565704015324 0ustar bastianbastian/* * Copyright (c) 2001-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * childc.h * Global declarations for child.c. */ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ extern int fork_child(void); extern void child_ignore_output(void); #else /*][*/ #define fork_child() fork() #define child_ignore_output() #endif /*]*/ ibm-3270-3.3.10ga4/c3270/child.c0000644000175000017500000001604111254565704015156 0ustar bastianbastian/* * Copyright (c) 2001-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * child.c * Child process output support. */ #include "globals.h" #include #include #include "popupsc.h" #include "utilc.h" #define CHILD_BUF 1024 static Boolean child_initted = False; static Boolean child_broken = False; static Boolean child_discarding = False; static int child_outpipe[2]; static int child_errpipe[2]; static struct pr3o { int fd; /* file descriptor */ unsigned long input_id; /* input ID */ unsigned long timeout_id; /* timeout ID */ int count; /* input count */ char buf[CHILD_BUF]; /* input buffer */ } child_stdout = { -1, 0L, 0L, 0 }, child_stderr = { -1, 0L, 0L, 0 }; static void child_output(void); static void child_error(void); static void child_otimeout(void); static void child_etimeout(void); static void child_dump(struct pr3o *p, Boolean is_err); static void init_child(void) { /* If initialization failed, there isn't much we can do. */ if (child_broken) return; /* Create pipes. */ if (pipe(child_outpipe) < 0) { popup_an_errno(errno, "pipe()"); child_broken = True; return; } if (pipe(child_errpipe) < 0) { popup_an_errno(errno, "pipe()"); close(child_outpipe[0]); close(child_outpipe[1]); child_broken = True; return; } /* Make sure their read ends are closed in child processes. */ (void) fcntl(child_outpipe[0], F_SETFD, 1); (void) fcntl(child_errpipe[0], F_SETFD, 1); #if defined(X3270_DISPLAY) /*[*/ /* Initialize the pop-ups. */ child_popup_init(); #endif /* Express interest in their output. */ child_stdout.fd = child_outpipe[0]; child_stdout.input_id = AddInput(child_outpipe[0], child_output); child_stderr.fd = child_errpipe[0]; child_stderr.input_id = AddInput(child_errpipe[0], child_error); child_initted = True; } /* * Fork a child process, with its stdout/stderr connected to pop-up windows. * Returns -1 for an error, 0 for child context, pid for parent context. */ int fork_child(void) { pid_t pid; /* Do initialization, if it hasn't been done already. */ if (!child_initted) init_child(); /* If output was being dumped, turn it back on now. */ if (child_discarding) child_discarding = False; /* Fork and rearrange output. */ pid = fork(); if (pid == 0) { /* Child. */ (void) dup2(child_outpipe[1], 1); (void) close(child_outpipe[1]); (void) dup2(child_errpipe[1], 2); (void) close(child_errpipe[1]); } return pid; } /* There's data from a child. */ static void child_data(struct pr3o *p, Boolean is_err) { int space; int nr; static char exitmsg[] = "Printer session exited"; /* * If we're discarding output, pull it in and drop it on the floor. */ if (child_discarding) { nr = read(p->fd, p->buf, CHILD_BUF); return; } /* Read whatever there is. */ space = CHILD_BUF - p->count - 1; nr = read(p->fd, p->buf + p->count, space); /* Handle read errors and end-of-file. */ if (nr < 0) { popup_an_errno(errno, "child session pipe input"); return; } if (nr == 0) { if (child_stderr.timeout_id != 0L) { /* * Append a termination error message to whatever the * child process said, and pop it up. */ p = &child_stderr; space = CHILD_BUF - p->count - 1; if (p->count && *(p->buf + p->count - 1) != '\n') { *(p->buf + p->count) = '\n'; p->count++; space--; } (void) strncpy(p->buf + p->count, exitmsg, space); p->count += strlen(exitmsg); if (p->count >= CHILD_BUF) p->count = CHILD_BUF - 1; child_dump(p, True); } else { popup_an_error("%s", exitmsg); } return; } /* Add it to the buffer, and add a NULL. */ p->count += nr; p->buf[p->count] = '\0'; /* * If there's no more room in the buffer, dump it now. Otherwise, * give it a second to generate more output. */ if (p->count >= CHILD_BUF - 1) { child_dump(p, is_err); } else if (p->timeout_id == 0L) { p->timeout_id = AddTimeOut(1000, is_err? child_etimeout: child_otimeout); } } /* The child process has some output for us. */ static void child_output(void) { child_data(&child_stdout, False); } /* The child process has some error output for us. */ static void child_error(void) { child_data(&child_stderr, True); } /* Timeout from child output or error output. */ static void child_timeout(struct pr3o *p, Boolean is_err) { /* Forget the timeout ID. */ p->timeout_id = 0L; /* Dump the output. */ child_dump(p, is_err); } /* Timeout from child output. */ static void child_otimeout(void) { child_timeout(&child_stdout, False); } /* Timeout from child error output. */ static void child_etimeout(void) { child_timeout(&child_stderr, True); } /* * Abort button from child output. * Ignore output from the child process, so the user can abort it. */ void child_ignore_output(void) { /* Pitch pending output. */ child_stdout.count = 0; child_stderr.count = 0; /* Remove pendnig timeouts. */ if (child_stdout.timeout_id) { RemoveTimeOut(child_stdout.timeout_id); child_stdout.timeout_id = 0L; } if (child_stderr.timeout_id) { RemoveTimeOut(child_stderr.timeout_id); child_stderr.timeout_id = 0L; } /* Remember it. */ child_discarding = True; } /* Dump pending child process output. */ static void child_dump(struct pr3o *p, Boolean is_err) { if (p->count) { /* * Strip any trailing newline, and make sure the buffer is * NULL terminated. */ if (p->buf[p->count - 1] == '\n') p->buf[--(p->count)] = '\0'; else if (p->buf[p->count]) p->buf[p->count] = '\0'; /* Dump it and clear the buffer. */ #if defined(X3270_DISPLAY) /*[*/ popup_child_output(is_err, child_ignore_output, "%s", p->buf); #else /*][*/ action_output("%s", p->buf); #endif p->count = 0; } } ibm-3270-3.3.10ga4/c3270/charset.c0000644000175000017500000002167211254565704015532 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * charset.c * This module handles character sets. */ #include "globals.h" #include "3270ds.h" #include "resources.h" #include "appres.h" #include "cg.h" #include "charsetc.h" #include "kybdc.h" #include "popupsc.h" #if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) /*[*/ #include "screenc.h" #endif /*]*/ #include "tablesc.h" #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" #include "utilc.h" #include #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(__CYGWIN__) /*[*/ #include #undef _WIN32 #endif /*]*/ /* Globals. */ Boolean charset_changed = False; #define DEFAULT_CGEN 0x02b90000 #define DEFAULT_CSET 0x00000025 unsigned long cgcsgid = DEFAULT_CGEN | DEFAULT_CSET; unsigned long cgcsgid_dbcs = 0L; char *default_display_charset = "3270cg-1a,3270cg-1,iso8859-1"; /* Statics. */ static enum cs_result charset_init2(char *csname, const char *codepage, const char *cgcsgid, const char *display_charsets); static void set_cgcsgids(const char *spec); static int set_cgcsgid(char *spec, unsigned long *idp); static void set_host_codepage(char *codepage); static void set_charset_name(char *csname); static char *host_codepage = CN; static char *charset_name = CN; /* * Change character sets. */ enum cs_result charset_init(char *csname) { enum cs_result rc; #if !defined(_WIN32) /*[*/ char *codeset_name; #endif /*]*/ const char *codepage; const char *cgcsgid; const char *display_charsets; #if defined(X3270_DBCS) /*[*/ const char *dbcs_cgcsgid = NULL; const char *dbcs_display_charsets = NULL; Boolean need_free = False; #endif /*]*/ #if !defined(_WIN32) /*[*/ /* Get all of the locale stuff right. */ setlocale(LC_ALL, ""); /* Figure out the locale code set (character set encoding). */ codeset_name = nl_langinfo(CODESET); #if defined(__CYGWIN__) /*[*/ /* * Cygwin's locale support is quite limited. If the locale * indicates "US-ASCII", which appears to be the only supported * encoding, ignore it and use the Windows ANSI code page, which * observation indicates is what is actually supported. * * Hopefully at some point Cygwin will start returning something * meaningful here and this logic will stop triggering. */ if (!strcmp(codeset_name, "US-ASCII")) codeset_name = xs_buffer("CP%d", GetACP()); #endif /*]*/ set_codeset(codeset_name); #endif /*]*/ /* Do nothing, successfully. */ if (csname == CN || !strcasecmp(csname, "us")) { set_cgcsgids(CN); set_host_codepage(CN); set_charset_name(CN); #if defined(X3270_DISPLAY) /*[*/ (void) screen_new_display_charsets(default_display_charset, "us"); #endif /*]*/ (void) set_uni(CN, &codepage, &cgcsgid, &display_charsets); #if defined(X3270_DBCS) /*[*/ (void) set_uni_dbcs("", NULL, NULL); #endif /*]*/ return CS_OKAY; } if (set_uni(csname, &codepage, &cgcsgid, &display_charsets) < 0) return CS_NOTFOUND; if (appres.sbcs_cgcsgid != CN) cgcsgid = appres.sbcs_cgcsgid; /* override */ #if defined(X3270_DBCS) /*[*/ if (set_uni_dbcs(csname, &dbcs_cgcsgid, &dbcs_display_charsets) == 0) { if (appres.dbcs_cgcsgid != CN) dbcs_cgcsgid = appres.dbcs_cgcsgid; /* override */ cgcsgid = xs_buffer("%s+%s", cgcsgid, dbcs_cgcsgid); display_charsets = xs_buffer("%s+%s", display_charsets, dbcs_display_charsets); need_free = True; } #endif /*]*/ rc = charset_init2(csname, codepage, cgcsgid, display_charsets); #if defined(X3270_DBCS) /*[*/ if (need_free) { Free((char *)cgcsgid); Free((char *)display_charsets); } #endif /*]*/ if (rc != CS_OKAY) { return rc; } return CS_OKAY; } /* Set a CGCSGID. Return 0 for success, -1 for failure. */ static int set_cgcsgid(char *spec, unsigned long *r) { unsigned long cp; char *ptr; if (spec != CN && (cp = strtoul(spec, &ptr, 0)) && ptr != spec && *ptr == '\0') { if (!(cp & ~0xffffL)) *r = DEFAULT_CGEN | cp; else *r = cp; return 0; } else return -1; } /* Set the CGCSGIDs. */ static void set_cgcsgids(const char *spec) { int n_ids = 0; char *spec_copy; char *buf; char *token; if (spec != CN) { buf = spec_copy = NewString(spec); while (n_ids >= 0 && (token = strtok(buf, "+")) != CN) { unsigned long *idp = NULL; buf = CN; switch (n_ids) { case 0: idp = &cgcsgid; break; #if defined(X3270_DBCS) /*[*/ case 1: idp = &cgcsgid_dbcs; break; #endif /*]*/ default: popup_an_error("Extra CGCSGID(s), ignoring"); break; } if (idp == NULL) break; if (set_cgcsgid(token, idp) < 0) { popup_an_error("Invalid CGCSGID '%s', ignoring", token); n_ids = -1; break; } n_ids++; } Free(spec_copy); if (n_ids > 0) return; } if (appres.sbcs_cgcsgid != CN) cgcsgid = strtoul(appres.sbcs_cgcsgid, NULL, 0); else cgcsgid = DEFAULT_CGEN | DEFAULT_CSET; #if defined(X3270_DBCS) /*[*/ if (appres.dbcs_cgcsgid != CN) cgcsgid_dbcs = strtoul(appres.dbcs_cgcsgid, NULL, 0); else cgcsgid_dbcs = 0L; #endif /*]*/ } /* Set the host codepage. */ static void set_host_codepage(char *codepage) { if (codepage == CN) { Replace(host_codepage, NewString("037")); return; } if (host_codepage == CN || strcmp(host_codepage, codepage)) { Replace(host_codepage, NewString(codepage)); } } /* Set the global charset name. */ static void set_charset_name(char *csname) { if (csname == CN) { Replace(charset_name, NewString("us")); charset_changed = False; return; } if ((charset_name != CN && strcmp(charset_name, csname)) || (appres.charset != CN && strcmp(appres.charset, csname))) { Replace(charset_name, NewString(csname)); charset_changed = True; } } /* Character set init, part 2. */ static enum cs_result charset_init2(char *csname, const char *codepage, const char *cgcsgid, const char *display_charsets) { const char *rcs = display_charsets; int n_rcs = 0; char *rcs_copy, *buf, *token; /* Isolate the pieces. */ buf = rcs_copy = NewString(rcs); while ((token = strtok(buf, "+")) != CN) { buf = CN; switch (n_rcs) { case 0: #if defined(X3270_DBCS) /*[*/ case 1: #endif /*]*/ break; default: popup_an_error("Extra charset value(s), ignoring"); break; } n_rcs++; } Free(rcs_copy); #if defined(X3270_DBCS) /*[*/ /* Can't swap DBCS modes while connected. */ if (IN_3270 && (n_rcs == 2) != dbcs) { popup_an_error("Can't change DBCS modes while connected"); return CS_ILLEGAL; } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ if (!screen_new_display_charsets( rcs? rcs: default_display_charset, csname)) { return CS_PREREQ; } #else /*][*/ #if defined(X3270_DBCS) /*[*/ if (n_rcs > 1) dbcs = True; else dbcs = False; #endif /*]*/ #endif /*]*/ /* Set up the cgcsgids. */ set_cgcsgids(cgcsgid); /* Set up the host code page. */ set_host_codepage((char *)codepage); /* Set up the character set name. */ set_charset_name(csname); return CS_OKAY; } /* Return the current host codepage. */ char * get_host_codepage(void) { return (host_codepage != CN)? host_codepage: "037"; } /* Return the current character set name. */ char * get_charset_name(void) { return (charset_name != CN)? charset_name: ((appres.charset != CN)? appres.charset: "us"); } ibm-3270-3.3.10ga4/c3270/ft_cut.c0000644000175000017500000004436311254565704015367 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ft_cut.c * File transfer, data movement logic, CUT version */ #include #include "globals.h" #if defined(X3270_FT) /*[*/ #include "appres.h" #include "ctlr.h" #include "3270ds.h" #include "actionsc.h" #include "charsetc.h" #include "ctlrc.h" #include "ft_cutc.h" #include "ft_cut_ds.h" #include "ftc.h" #include "kybdc.h" #include "popupsc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" static Boolean cut_xfer_in_progress = False; /* Data stream conversion tables. */ #define NQ 4 /* number of quadrants */ #define NE 77 /* number of elements per quadrant */ #define OTHER_2 2 /* "OTHER 2" quadrant (includes NULL) */ #define XLATE_NULL 0xc1 /* translation of NULL */ static char alphas[NE + 1] = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%&_()<+,-./:>?"; static struct { unsigned char selector; unsigned char xlate[NE]; } conv[NQ] = { { 0x5e, /* ';' */ { 0x40,0xc1,0xc2,0xc3, 0xc4,0xc5,0xc6,0xc7, 0xc8,0xc9,0xd1,0xd2, 0xd3,0xd4,0xd5,0xd6, 0xd7,0xd8,0xd9,0xe2, 0xe3,0xe4,0xe5,0xe6, 0xe7,0xe8,0xe9,0x81, 0x82,0x83,0x84,0x85, 0x86,0x87,0x88,0x89, 0x91,0x92,0x93,0x94, 0x95,0x96,0x97,0x98, 0x99,0xa2,0xa3,0xa4, 0xa5,0xa6,0xa7,0xa8, 0xa9,0xf0,0xf1,0xf2, 0xf3,0xf4,0xf5,0xf6, 0xf7,0xf8,0xf9,0x6c, 0x50,0x6d,0x4d,0x5d, 0x4c,0x4e,0x6b,0x60, 0x4b,0x61,0x7a,0x6e, 0x6f } }, { 0x7e, /* '=' */ { 0x20,0x41,0x42,0x43, 0x44,0x45,0x46,0x47, 0x48,0x49,0x4a,0x4b, 0x4c,0x4d,0x4e,0x4f, 0x50,0x51,0x52,0x53, 0x54,0x55,0x56,0x57, 0x58,0x59,0x5a,0x61, 0x62,0x63,0x64,0x65, 0x66,0x67,0x68,0x69, 0x6a,0x6b,0x6c,0x6d, 0x6e,0x6f,0x70,0x71, 0x72,0x73,0x74,0x75, 0x76,0x77,0x78,0x79, 0x7a,0x30,0x31,0x32, 0x33,0x34,0x35,0x36, 0x37,0x38,0x39,0x25, 0x26,0x27,0x28,0x29, 0x2a,0x2b,0x2c,0x2d, 0x2e,0x2f,0x3a,0x3b, 0x3f } }, { 0x5c, /* '*' */ { 0x00,0x00,0x01,0x02, 0x03,0x04,0x05,0x06, 0x07,0x08,0x09,0x0a, 0x0b,0x0c,0x0d,0x0e, 0x0f,0x10,0x11,0x12, 0x13,0x14,0x15,0x16, 0x17,0x18,0x19,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x3c,0x3d,0x3e, 0x00,0xfa,0xfb,0xfc, 0xfd,0xfe,0xff,0x7b, 0x7c,0x7d,0x7e,0x7f, 0x1a,0x1b,0x1c,0x1d, 0x1e,0x1f,0x00,0x00, 0x00 } }, { 0x7d, /* '\'' */ { 0x00,0xa0,0xa1,0xea, 0xeb,0xec,0xed,0xee, 0xef,0xe0,0xe1,0xaa, 0xab,0xac,0xad,0xae, 0xaf,0xb0,0xb1,0xb2, 0xb3,0xb4,0xb5,0xb6, 0xb7,0xb8,0xb9,0x80, 0x00,0xca,0xcb,0xcc, 0xcd,0xce,0xcf,0xc0, 0x00,0x8a,0x8b,0x8c, 0x8d,0x8e,0x8f,0x90, 0x00,0xda,0xdb,0xdc, 0xdd,0xde,0xdf,0xd0, 0x00,0x00,0x21,0x22, 0x23,0x24,0x5b,0x5c, 0x00,0x5e,0x5f,0x00, 0x9c,0x9d,0x9e,0x9f, 0xba,0xbb,0xbc,0xbd, 0xbe,0xbf,0x9a,0x9b, 0x00 } } }; static char table6[] = "abcdefghijklmnopqrstuvwxyz&-.,:+ABCDEFGHIJKLMNOPQRSTUVWXYZ012345"; static int quadrant = -1; static unsigned long expanded_length; static char *saved_errmsg = CN; #define XLATE_NBUF 32 static int xlate_buffered = 0; /* buffer count */ static int xlate_buf_ix = 0; /* buffer index */ static unsigned char xlate_buf[XLATE_NBUF]; /* buffer */ static void cut_control_code(void); static void cut_data_request(void); static void cut_retransmit(void); static void cut_data(void); static void cut_ack(void); static void cut_abort(const char *s, unsigned short reason); static unsigned from6(unsigned char c); /*static*/ int xlate_getc(void); /* * Convert a buffer for uploading (host->local). * Returns the length of the converted data. * If there is a conversion error, calls cut_abort() and returns -1. */ static int upload_convert(unsigned char *buf, int len, unsigned char *obuf, int obuf_len) { unsigned char *ob0 = obuf; unsigned char *ob = ob0; int nx; while (len-- && obuf_len) { unsigned char c = *buf++; char *ixp; int ix; int oq = -1; retry: if (quadrant < 0) { /* Find the quadrant. */ for (quadrant = 0; quadrant < NQ; quadrant++) { if (c == conv[quadrant].selector) break; } if (quadrant >= NQ) { cut_abort(get_message("ftCutConversionError"), SC_ABORT_XMIT); return -1; } continue; } /* Make sure it's in a valid range. */ if (c < 0x40 || c > 0xf9) { cut_abort(get_message("ftCutConversionError"), SC_ABORT_XMIT); return -1; } /* Translate to a quadrant index. */ ixp = strchr(alphas, ebc2asc0[c]); if (ixp == (char *)NULL) { /* Try a different quadrant. */ oq = quadrant; quadrant = -1; goto retry; } ix = ixp - alphas; /* * See if it's mapped by that quadrant, handling NULLs * specially. */ if (quadrant != OTHER_2 && c != XLATE_NULL && !conv[quadrant].xlate[ix]) { /* Try a different quadrant. */ oq = quadrant; quadrant = -1; goto retry; } /* Map it. */ c = conv[quadrant].xlate[ix]; if (ascii_flag && cr_flag && (c == '\r' || c == 0x1a)) continue; if (!(ascii_flag && remap_flag)) { /* No further translation necessary. */ *ob++ = c; obuf_len--; continue; } /* * Convert to local multi-byte. * We do that by inverting the host's EBCDIC-to-ASCII map, * getting back to EBCDIC, and converting to multi-byte from * there. */ #if defined(X3270_DBCS) /*[*/ switch (ft_dbcs_state) { case FT_DBCS_NONE: if (c == EBC_so) { ft_dbcs_state = FT_DBCS_SO; continue; } /* fall through to non-DBCS case below */ break; case FT_DBCS_SO: if (c == EBC_si) ft_dbcs_state = FT_DBCS_NONE; else { ft_dbcs_byte1 = i_asc2ft[c]; ft_dbcs_state = FT_DBCS_LEFT; } continue; case FT_DBCS_LEFT: if (c == EBC_si) { ft_dbcs_state = FT_DBCS_NONE; continue; } nx = ebcdic_to_multibyte((ft_dbcs_byte1 << 8) | i_asc2ft[c], (char *)ob, obuf_len); if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; ft_dbcs_state = FT_DBCS_SO; continue; } #endif /*]*/ if (c < 0x20 || ((c >= 0x80 && c < 0xa0 && c != 0x9f))) { /* * Control code, treat it as Unicode. * * Note that IND$FILE and the VM 'TYPE' command think * that EBCDIC X'E1' is a control code; IND$FILE maps * it onto ASCII 0x9f. So we skip it explicitly and * treat it as printable here. */ nx = unicode_to_multibyte(c, (char *)ob, obuf_len); } else if (c == 0xff) { nx = unicode_to_multibyte(0x9f, (char *)ob, obuf_len); } else { /* Displayable character, remap. */ c = i_asc2ft[c]; nx = ebcdic_to_multibyte(c, (char *)ob, obuf_len); } if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; } return ob - ob0; } /* * Store a download (local->host) character. * Returns the number of bytes stored. */ static int store_download(unsigned char c, unsigned char *ob) { unsigned char *ixp; unsigned ix; int oq; /* Quadrant already defined. */ if (quadrant >= 0) { ixp = (unsigned char *)memchr(conv[quadrant].xlate, c, NE); if (ixp != (unsigned char *)NULL) { ix = ixp - conv[quadrant].xlate; *ob++ = asc2ebc0[(int)alphas[ix]]; return 1; } } /* Locate a quadrant. */ oq = quadrant; for (quadrant = 0; quadrant < NQ; quadrant++) { if (quadrant == oq) continue; ixp = (unsigned char *)memchr(conv[quadrant].xlate, c, NE); if (ixp == (unsigned char *)NULL) continue; ix = ixp - conv[quadrant].xlate; *ob++ = conv[quadrant].selector; *ob++ = asc2ebc0[(int)alphas[ix]]; return 2; } quadrant = -1; fprintf(stderr, "Oops\n"); return 0; } /* Convert a buffer for downloading (local->host). */ /*static*/ int download_convert(unsigned const char *buf, unsigned len, unsigned char *xobuf) { unsigned char *ob0 = xobuf; unsigned char *ob = ob0; while (len) { unsigned char c = *buf; int consumed; enum me_fail error; ebc_t e; ucs4_t u; /* Handle nulls separately. */ if (!c) { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { ob += store_download(EBC_si, ob); ft_last_dbcs = False; } #endif /*]*/ if (quadrant != OTHER_2) { quadrant = OTHER_2; *ob++ = conv[quadrant].selector; } *ob++ = XLATE_NULL; buf++; len--; continue; } if (!(ascii_flag && remap_flag)) { ob += store_download(c, ob); buf++; len--; continue; } /* * Translate. * * The host uses a fixed EBCDIC-to-ASCII translation table, * which was derived empirically into i_ft2asc/i_asc2ft. * Invert that so that when the host applies its conversion, * it gets the right EBCDIC code. * * DBCS is a guess at this point, assuming that SO and SI * are unmodified by IND$FILE. */ u = multibyte_to_unicode((const char *)buf, len, &consumed, &error); if (u < 0x20 || ((u >= 0x80 && u < 0x9f))) e = i_asc2ft[u]; else if (u == 0x9f) e = 0xff; else e = unicode_to_ebcdic(u); if (e & 0xff00) { #if defined(X3270_DBCS) /*[*/ if (!ft_last_dbcs) ob += store_download(EBC_so, ob); ob += store_download(i_ft2asc[(e >> 8) & 0xff], ob); ob += store_download(i_ft2asc[e & 0xff], ob); ft_last_dbcs = True; #else /*][*/ ob += store_download('?', ob); #endif /*]*/ } else { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { ob += store_download(EBC_si, ob); ft_last_dbcs = False; } #endif /*]*/ if (e == 0) { ob += store_download('?', ob); } else { ob += store_download(i_ft2asc[e], ob); } } buf += consumed; len -= consumed; } return ob - ob0; } /* * Main entry point from ctlr.c. * We have received what looks like an appropriate message from the host. */ void ft_cut_data(void) { switch (ea_buf[O_FRAME_TYPE].cc) { case FT_CONTROL_CODE: cut_control_code(); break; case FT_DATA_REQUEST: cut_data_request(); break; case FT_RETRANSMIT: cut_retransmit(); break; case FT_DATA: cut_data(); break; default: trace_ds("< FT unknown 0x%02x\n", ea_buf[O_FRAME_TYPE].cc); cut_abort(get_message("ftCutUnknownFrame"), SC_ABORT_XMIT); break; } } /* * Process a control code from the host. */ static void cut_control_code(void) { unsigned short code; char *buf; char *bp; int i; trace_ds("< FT CONTROL_CODE "); code = (ea_buf[O_CC_STATUS_CODE].cc << 8) | ea_buf[O_CC_STATUS_CODE + 1].cc; switch (code) { case SC_HOST_ACK: trace_ds("HOST_ACK\n"); cut_xfer_in_progress = True; expanded_length = 0; quadrant = -1; xlate_buffered = 0; cut_ack(); ft_running(True); break; case SC_XFER_COMPLETE: trace_ds("XFER_COMPLETE\n"); cut_ack(); cut_xfer_in_progress = False; ft_complete((String)NULL); break; case SC_ABORT_FILE: case SC_ABORT_XMIT: trace_ds("ABORT\n"); cut_xfer_in_progress = False; cut_ack(); if (ft_state == FT_ABORT_SENT && saved_errmsg != CN) { buf = saved_errmsg; saved_errmsg = CN; } else { int mb_len = 161; bp = buf = Malloc(mb_len); for (i = 0; i < 80; i++) { int xlen; xlen = ebcdic_to_multibyte( ea_buf[O_CC_MESSAGE + i].cc, bp, mb_len); if (xlen) { bp += xlen - 1; mb_len -= xlen - 1; } } *bp-- = '\0'; while (bp >= buf && *bp == ' ') *bp-- = '\0'; if (bp >= buf && *bp == '$') *bp-- = '\0'; while (bp >= buf && *bp == ' ') *bp-- = '\0'; if (!*buf) strcpy(buf, get_message("ftHostCancel")); } ft_complete(buf); Free(buf); break; default: trace_ds("unknown 0x%04x\n", code); cut_abort(get_message("ftCutUnknownControl"), SC_ABORT_XMIT); break; } } /* * Process a data request from the host. */ static void cut_data_request(void) { unsigned char seq = ea_buf[O_DR_FRAME_SEQ].cc; int count; unsigned char cs; int c; int i; unsigned char attr; trace_ds("< FT DATA_REQUEST %u\n", from6(seq)); if (ft_state == FT_ABORT_WAIT) { cut_abort(get_message("ftUserCancel"), SC_ABORT_FILE); return; } /* Copy data into the screen buffer. */ count = 0; while (count < O_UP_MAX && (c = xlate_getc()) != EOF) { ctlr_add(O_UP_DATA + count, c, 0); count++; } /* Check for errors. */ if (ferror(ft_local_file)) { int j; char *msg; /* Clean out any data we may have written. */ for (j = 0; j < count; j++) ctlr_add(O_UP_DATA + j, 0, 0); /* Abort the transfer. */ msg = xs_buffer("read(%s): %s", ft_local_filename, strerror(errno)); cut_abort(msg, SC_ABORT_FILE); Free(msg); return; } /* Send special data for EOF. */ if (!count && feof(ft_local_file)) { ctlr_add(O_UP_DATA, EOF_DATA1, 0); ctlr_add(O_UP_DATA+1, EOF_DATA2, 0); count = 2; } /* Compute the other fields. */ ctlr_add(O_UP_FRAME_SEQ, seq, 0); cs = 0; for (i = 0; i < count; i++) cs ^= ea_buf[O_UP_DATA + i].cc; ctlr_add(O_UP_CSUM, asc2ebc0[(int)table6[cs & 0x3f]], 0); ctlr_add(O_UP_LEN, asc2ebc0[(int)table6[(count >> 6) & 0x3f]], 0); ctlr_add(O_UP_LEN+1, asc2ebc0[(int)table6[count & 0x3f]], 0); /* XXX: Change the data field attribute so it doesn't display. */ attr = ea_buf[O_DR_SF].fa; attr = (attr & ~FA_INTENSITY) | FA_INT_ZERO_NSEL; ctlr_add_fa(O_DR_SF, attr, 0); /* Send it up to the host. */ trace_ds("> FT DATA %u\n", from6(seq)); ft_update_length(); expanded_length += count; action_internal(Enter_action, IA_FT, CN, CN); } /* * (Improperly) process a retransmit from the host. */ static void cut_retransmit(void) { trace_ds("< FT RETRANSMIT\n"); cut_abort(get_message("ftCutRetransmit"), SC_ABORT_XMIT); } /* * Convert an encoded integer. */ static unsigned from6(unsigned char c) { char *p; c = ebc2asc0[c]; p = strchr(table6, c); if (p == CN) return 0; return p - table6; } /* * Process data from the host. */ static void cut_data(void) { static unsigned char cvbuf[O_RESPONSE - O_DT_DATA]; static unsigned char cvobuf[4 * (O_RESPONSE - O_DT_DATA)]; unsigned short raw_length; int conv_length; register int i; trace_ds("< FT DATA\n"); if (ft_state == FT_ABORT_WAIT) { cut_abort(get_message("ftUserCancel"), SC_ABORT_FILE); return; } /* Copy and convert the data. */ raw_length = from6(ea_buf[O_DT_LEN].cc) << 6 | from6(ea_buf[O_DT_LEN + 1].cc); if ((int)raw_length > O_RESPONSE - O_DT_DATA) { cut_abort(get_message("ftCutOversize"), SC_ABORT_XMIT); return; } for (i = 0; i < (int)raw_length; i++) cvbuf[i] = ea_buf[O_DT_DATA + i].cc; if (raw_length == 2 && cvbuf[0] == EOF_DATA1 && cvbuf[1] == EOF_DATA2) { trace_ds("< FT EOF\n"); cut_ack(); return; } conv_length = upload_convert(cvbuf, raw_length, cvobuf, sizeof(cvobuf)); if (conv_length < 0) return; /* Write it to the file. */ if (fwrite((char *)cvobuf, conv_length, 1, ft_local_file) == 0) { char *msg; msg = xs_buffer("write(%s): %s", ft_local_filename, strerror(errno)); cut_abort(msg, SC_ABORT_FILE); Free(msg); } else { ft_length += conv_length; ft_update_length(); cut_ack(); } } /* * Acknowledge a host command. */ static void cut_ack(void) { trace_ds("> FT ACK\n"); action_internal(Enter_action, IA_FT, CN, CN); } /* * Abort a transfer in progress. */ static void cut_abort(const char *s, unsigned short reason) { /* Save the error message. */ Replace(saved_errmsg, NewString(s)); /* Send the abort sequence. */ ctlr_add(RO_FRAME_TYPE, RFT_CONTROL_CODE, 0); ctlr_add(RO_FRAME_SEQ, ea_buf[O_DT_FRAME_SEQ].cc, 0); ctlr_add(RO_REASON_CODE, HIGH8(reason), 0); ctlr_add(RO_REASON_CODE+1, LOW8(reason), 0); trace_ds("> FT CONTROL_CODE ABORT\n"); action_internal(PF_action, IA_FT, "2", CN); /* Update the in-progress pop-up. */ ft_aborting(); } /* * Get the next translated character from the local file. * Returns the character (in EBCDIC), or EOF. */ /*static*/ int xlate_getc(void) { int r; int c; unsigned char cbuf[32]; int nc; int consumed; enum me_fail error; char mb[16]; int mb_len = 0; /* If there is a data buffered, return it. */ if (xlate_buffered) { r = xlate_buf[xlate_buf_ix]; xlate_buf_ix++; xlate_buffered--; return r; } if (ascii_flag) { /* * Get the next (possibly multi-byte) character from the file. */ do { c = fgetc(ft_local_file); if (c == EOF) { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { ft_last_dbcs = False; return EBC_si; } #endif /*]*/ return c; } ft_length++; mb[mb_len++] = c; error = ME_NONE; (void) multibyte_to_unicode(mb, mb_len, &consumed, &error); if (error == ME_INVALID) return -1; } while (error == ME_SHORT); /* Expand it. */ if (ascii_flag && cr_flag && !ft_last_cr && c == '\n') { nc = download_convert((unsigned const char *)"\r", 1, cbuf); } else { nc = 0; ft_last_cr = (c == '\r'); } } else { /* Binary, just read it. */ c = fgetc(ft_local_file); if (c == EOF) return c; mb[0] = c; mb_len = 1; nc = 0; ft_length++; } /* Convert it. */ nc += download_convert((unsigned char *)mb, mb_len, &cbuf[nc]); /* Return it and buffer what's left. */ r = cbuf[0]; if (nc > 1) { int i; for (i = 1; i < nc; i++) xlate_buf[xlate_buffered++] = cbuf[i]; xlate_buf_ix = 0; } return r; } #endif /*]*/ ibm-3270-3.3.10ga4/c3270/version.txt0000755000175000017500000000004611261527637016157 0ustar bastianbastianversion="3.3.10ga4" adversion="3.3.4" ibm-3270-3.3.10ga4/c3270/readresc.h0000644000175000017500000000355611254565704015677 0ustar bastianbastian/* * Copyright (c) 2009, Paul Mattes. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * readresc.h * A displayless 3270 Terminal Emulator * Header for resource file reader. */ typedef void (rrf_t)(const char *, const char *); extern int validate_and_split_resource(const char *where, const char *arg, const char **left, unsigned *rnlenp, const char **right); extern int read_resource_filex(const char *filename, Boolean fatal, rrf_t *rrf); ibm-3270-3.3.10ga4/c3270/actions.c0000644000175000017500000005370511254565704015543 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * actions.c * The X actions table and action debugging code. */ #include "globals.h" #include "appres.h" #include "actionsc.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "printc.h" #include "resources.h" #include "selectc.h" #include "togglesc.h" #include "trace_dsc.h" #include "utilc.h" #include "xioc.h" #if defined(X3270_FT) /*[*/ #include "ftc.h" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ #include "keypadc.h" #include "menubarc.h" #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) || defined(WC3270) /*[*/ #include "screenc.h" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ #include #define MODMAP_SIZE 8 #define MAP_SIZE 13 #define MAX_MODS_PER 4 static struct { const char *name[MAX_MODS_PER]; unsigned int mask; Boolean is_meta; } skeymask[MAP_SIZE] = { { { "Shift" }, ShiftMask, False }, { { (char *)NULL } /* Lock */, LockMask, False }, { { "Ctrl" }, ControlMask, False }, { { CN }, Mod1Mask, False }, { { CN }, Mod2Mask, False }, { { CN }, Mod3Mask, False }, { { CN }, Mod4Mask, False }, { { CN }, Mod5Mask, False }, { { "Button1" }, Button1Mask, False }, { { "Button2" }, Button2Mask, False }, { { "Button3" }, Button3Mask, False }, { { "Button4" }, Button4Mask, False }, { { "Button5" }, Button5Mask, False } }; static Boolean know_mods = False; #endif /*]*/ XtActionsRec all_actions[] = { #if defined(C3270) && defined(X3270_SCRIPT) /*[*/ { "Abort", Abort_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "AltCursor", AltCursor_action }, #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ { "Compose", Compose_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "Cut", Cut_action }, { "Default", Default_action }, { "HandleMenu", HandleMenu_action }, { "HardPrint", PrintText_action }, { "HexString", HexString_action }, #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ { "Info", Info_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "Keymap", TemporaryKeymap_action }, { PA_PFX "ConfigureNotify", PA_ConfigureNotify_action }, { PA_END, PA_End_action }, #endif /*]*/ #if defined(C3270) /*[*/ { "Escape", Escape_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { PA_PFX "EnterLeave", PA_EnterLeave_action }, { PA_PFX "Expose", PA_Expose_action }, { PA_PFX "Focus", PA_Focus_action }, { PA_PFX "GraphicsExpose", PA_GraphicsExpose_action }, { PA_PFX "KeymapNotify", PA_KeymapNotify_action }, # if defined(X3270_TRACE) /*[*/ { PA_KEYMAP_TRACE, PA_KeymapTrace_action }, # endif /*]*/ { PA_PFX "Shift", PA_Shift_action }, { PA_PFX "StateChanged", PA_StateChanged_action }, { PA_PFX "VisibilityNotify",PA_VisibilityNotify_action }, { PA_PFX "WMProtocols", PA_WMProtocols_action }, { PA_PFX "confirm", PA_confirm_action }, { "PrintWindow", PrintWindow_action }, #endif /*]*/ { "PrintText", PrintText_action }, #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ { "Flip", Flip_action }, { "Redraw", Redraw_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "SetFont", SetFont_action }, { "TemporaryKeymap", TemporaryKeymap_action }, # if defined(X3270_FT) && defined(X3270_MENUS) /*[*/ { PA_PFX "dialog-next", PA_dialog_next_action }, { PA_PFX "dialog-focus", PA_dialog_focus_action }, # endif /*]*/ { "insert-selection", insert_selection_action }, { "move-select", move_select_action }, { "select-end", select_end_action }, { "select-extend", select_extend_action }, { "select-start", select_start_action }, { "set-select", set_select_action }, { "start-extend", start_extend_action }, #endif /*]*/ #if defined(X3270_SCRIPT) || defined(S3270) /*[*/ { "AnsiText", AnsiText_action }, #endif /*]*/ { "Ascii", Ascii_action }, { "AsciiField", AsciiField_action }, { "Attn", Attn_action }, { "BackSpace", BackSpace_action }, { "BackTab", BackTab_action }, #if defined(X3270_SCRIPT) && (defined(X3270_DISPLAY) || defined(C3270)) /*[*/ { "Bell", Bell_action }, #endif /*]*/ { "CircumNot", CircumNot_action }, { "Clear", Clear_action }, #if defined(C3270) /*[*/ { "Close", Disconnect_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "CloseScript", CloseScript_action }, #endif /*]*/ { "Connect", Connect_action }, #if defined(X3270_SCRIPT) /*[*/ { "ContinueScript", ContinueScript_action }, #endif /*]*/ { "CursorSelect", CursorSelect_action }, { "Delete", Delete_action }, { "DeleteField", DeleteField_action }, { "DeleteWord", DeleteWord_action }, { "Disconnect", Disconnect_action }, { "Down", Down_action }, { "Dup", Dup_action }, { "Ebcdic", Ebcdic_action }, { "EbcdicField", EbcdicField_action }, { "Enter", Enter_action }, { "Erase", Erase_action }, { "EraseEOF", EraseEOF_action }, { "EraseInput", EraseInput_action }, #if defined(X3270_SCRIPT) /*[*/ { "Execute", Execute_action }, #endif /*]*/ #if defined(C3270) || defined(WC3270) /*[*/ { "Exit", Quit_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "Expect", Expect_action }, #endif /*]*/ { "FieldEnd", FieldEnd_action }, { "FieldMark", FieldMark_action }, { "HexString", HexString_action}, #if defined(C3270) || defined(WC3270) /*[*/ { "Help", Help_action}, #endif/*]*/ #if defined(X3270_SCRIPT) /*[*/ { "Plugin", Plugin_action}, #endif/*]*/ { "Home", Home_action }, { "Insert", Insert_action }, { "Interrupt", Interrupt_action }, { "Key", Key_action }, #if defined(X3270_DISPLAY) /*[*/ { "KybdSelect", KybdSelect_action }, #endif /*]*/ { "Left", Left_action }, { "Left2", Left2_action }, #if defined(X3270_SCRIPT) || defined(S3270) /*[*/ { "Macro", Macro_action }, #endif /*]*/ { "MonoCase", MonoCase_action }, #if defined(X3270_DISPLAY) /*[*/ { "MouseSelect", MouseSelect_action }, #endif /*]*/ { "MoveCursor", MoveCursor_action }, { "Newline", Newline_action }, { "NextWord", NextWord_action }, #if defined(C3270) || defined(WC3270) /*[*/ { "Open", Connect_action }, #endif /*]*/ { "PA", PA_action }, { "PF", PF_action }, #if defined(WC3270) /*[*/ { "Paste", Paste_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "PauseScript", PauseScript_action }, #endif /*]*/ { "PreviousWord", PreviousWord_action }, #if defined(X3270_PRINTER) /*[*/ { "Printer", Printer_action }, #endif /*]*/ #if defined(X3270_SCRIPT) || defined(S3270) /*[*/ { "Query", Query_action }, #endif /*]*/ { "Quit", Quit_action }, #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ { "ReadBuffer", ReadBuffer_action }, #endif /*]*/ #if defined(X3270_MENUS) /*[*/ { "Reconnect", Reconnect_action }, #endif /*]*/ { "Reset", Reset_action }, { "Right", Right_action }, { "Right2", Right2_action }, #if defined(X3270_DISPLAY) /*[*/ { "SelectAll", SelectAll_action }, { "SelectDown", SelectDown_action }, { "SelectMotion", SelectMotion_action }, { "SelectUp", SelectUp_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "Script", Script_action }, #endif /*]*/ #if defined(C3270) /*[*/ { "Show", Show_action }, #endif/*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ { "Snap", Snap_action }, #endif /*]*/ #if !defined(TCL3270) /*[*/ { "Source", Source_action }, #endif /*]*/ #if defined(TCL3270) /*[*/ { "Status", Status_action }, #endif /*]*/ { "String", String_action }, { "SysReq", SysReq_action }, { "Tab", Tab_action }, #if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ { "Title", Title_action }, #endif /*]*/ { "Toggle", Toggle_action }, { "ToggleInsert", ToggleInsert_action }, { "ToggleReverse", ToggleReverse_action }, #if defined(C3270) && defined(X3270_TRACE) /*[*/ { "Trace", Trace_action }, #endif/*]*/ #if defined(X3270_FT) /*[*/ { "Transfer", Transfer_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "Unselect", Unselect_action }, #endif /*]*/ { "Up", Up_action }, #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ { "Wait", Wait_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "WindowState", WindowState_action }, #endif /*]*/ { "ignore", ignore_action } }; int actioncount = XtNumber(all_actions); XtActionsRec *actions = NULL; /* Actions that are aliases for other actions. */ static char *aliased_actions[] = { "Close", "HardPrint", "Open", NULL }; enum iaction ia_cause; const char *ia_name[] = { "String", "Paste", "Screen redraw", "Keypad", "Default", "Key", "Macro", "Script", "Peek", "Typeahead", "File transfer", "Command", "Keymap", "Idle" }; /* No-op action for suppressed actions. */ static void suppressed_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(suppressed_action, event, params, num_params); } /* Look up an action name in the suppressed actions resource. */ static Boolean action_suppressed(String name, char *suppress) { char *s = suppress; char *t; while ((t = strstr(s, name)) != CN) { char b; char e = s[strlen(name)]; if (t == suppress) b = '\0'; else b = *(t - 1); if ((b == '\0' || b == ')' || isspace(b)) && (e == '\0' || e == '(' || isspace(e))) return True; s += strlen(name); } return False; } /* * Action table initialization. * Uses the suppressActions resource to prune the actions table. */ void action_init(void) { char *suppress; int i; /* See if there are any filters at all. */ suppress = get_resource(ResSuppressActions); if (suppress == CN) { actions = all_actions; return; } /* Yes, we'll need to copy the table and prune it. */ actions = (XtActionsRec *)Malloc(sizeof(all_actions)); memcpy(actions, all_actions, sizeof(all_actions)); for (i = 0; i < actioncount; i++) { if (action_suppressed(actions[i].string, suppress)) actions[i].proc = suppressed_action; } } /* * Return a name for an action. */ const char * action_name(XtActionProc action) { register int i; /* * XXX: It would be better if the real name could be displayed, with a * message indicating it is suppressed. */ if (action == suppressed_action) return "(suppressed)"; for (i = 0; i < actioncount; i++) if (actions[i].proc == action) { int j; Boolean aliased = False; for (j = 0; aliased_actions[j] != CN; j++) { if (!strcmp(aliased_actions[j], actions[i].string)) { aliased = True; break; } } if (!aliased) return actions[i].string; } return "(unknown)"; } #if defined(X3270_DISPLAY) /*[*/ /* * Search the modifier map to learn the modifier bits for Meta, Alt, Hyper and * Super. */ static void learn_modifiers(void) { XModifierKeymap *mm; int i, j, k; static char *default_modname[] = { CN, CN, "Ctrl", "Mod1", "Mod2", "Mod3", "Mod4", "Mod5", "Button1", "Button2", "Button3", "Button4", "Button5" }; mm = XGetModifierMapping(display); for (i = 0; i < MODMAP_SIZE; i++) { for (j = 0; j < mm->max_keypermod; j++) { KeyCode kc; const char *name = CN; Boolean is_meta = False; kc = mm->modifiermap[(i * mm->max_keypermod) + j]; if (!kc) continue; switch(XKeycodeToKeysym(display, kc, 0)) { case XK_Meta_L: case XK_Meta_R: name = "Meta"; is_meta = True; break; case XK_Alt_L: case XK_Alt_R: name = "Alt"; break; case XK_Super_L: case XK_Super_R: name = "Super"; break; case XK_Hyper_L: case XK_Hyper_R: name = "Hyper"; break; default: break; } if (name == CN) continue; if (is_meta) skeymask[i].is_meta = True; for (k = 0; k < MAX_MODS_PER; k++) { if (skeymask[i].name[k] == CN) break; else if (!strcmp(skeymask[i].name[k], name)) k = MAX_MODS_PER; } if (k >= MAX_MODS_PER) continue; skeymask[i].name[k] = name; } } for (i = 0; i < MODMAP_SIZE; i++) { if (skeymask[i].name[0] == CN) { skeymask[i].name[0] = default_modname[i]; } } XFreeModifiermap(mm); } #if defined(X3270_TRACE) /*[*/ /* * Return the symbolic name for the modifier combination (i.e., "Meta" instead * of "Mod2". Note that because it is possible to map multiple keysyms to the * same modifier bit, the answer may be ambiguous; we return the combinations * iteratively. */ static char * key_symbolic_state(unsigned int state, int *iteration) { static char rs[64]; static int ix[MAP_SIZE]; static int ix_ix[MAP_SIZE]; static int n_ix = 0; static int leftover = 0; const char *comma = ""; int i; if (!know_mods) { learn_modifiers(); know_mods = True; } if (*iteration == 0) { /* First time, build the table. */ n_ix = 0; for (i = 0; i < MAP_SIZE; i++) { if (skeymask[i].name[0] != CN && (state & skeymask[i].mask)) { ix[i] = 0; state &= ~skeymask[i].mask; ix_ix[n_ix++] = i; } else ix[i] = MAX_MODS_PER; } leftover = state; } /* Construct this result. */ rs[0] = '\0'; for (i = 0; i < n_ix; i++) { (void) strcat(rs, comma); (void) strcat(rs, skeymask[ix_ix[i]].name[ix[ix_ix[i]]]); comma = " "; } #if defined(VERBOSE_EVENTS) /*[*/ if (leftover) (void) sprintf(strchr(rs, '\0'), "%s?%d", comma, state); #endif /*]*/ /* * Iterate to the next. * This involves treating each slot like an n-ary number, where n is * the number of elements in the slot, iterating until the highest- * ordered slot rolls back over to 0. */ if (n_ix) { i = n_ix - 1; ix[ix_ix[i]]++; while (i >= 0 && (ix[ix_ix[i]] >= MAX_MODS_PER || skeymask[ix_ix[i]].name[ix[ix_ix[i]]] == CN)) { ix[ix_ix[i]] = 0; i = i - 1; if (i >= 0) ix[ix_ix[i]]++; } *iteration = i >= 0; } else *iteration = 0; return rs; } #endif /*]*/ /* Return whether or not an KeyPress event state includes the Meta key. */ Boolean event_is_meta(int state) { int i; /* Learn the modifier map. */ if (!know_mods) { learn_modifiers(); know_mods = True; } for (i = 0; i < MAP_SIZE; i++) { if (skeymask[i].name[0] != CN && skeymask[i].is_meta && (state & skeymask[i].mask)) { return True; } } return False; } #if defined(VERBOSE_EVENTS) /*[*/ static char * key_state(unsigned int state) { static char rs[64]; const char *comma = ""; static struct { const char *name; unsigned int mask; } keymask[] = { { "Shift", ShiftMask }, { "Lock", LockMask }, { "Control", ControlMask }, { "Mod1", Mod1Mask }, { "Mod2", Mod2Mask }, { "Mod3", Mod3Mask }, { "Mod4", Mod4Mask }, { "Mod5", Mod5Mask }, { "Button1", Button1Mask }, { "Button2", Button2Mask }, { "Button3", Button3Mask }, { "Button4", Button4Mask }, { "Button5", Button5Mask }, { CN, 0 }, }; int i; rs[0] = '\0'; for (i = 0; keymask[i].name; i++) { if (state & keymask[i].mask) { (void) strcat(rs, comma); (void) strcat(rs, keymask[i].name); comma = "|"; state &= ~keymask[i].mask; } } if (!rs[0]) (void) sprintf(rs, "%d", state); else if (state) (void) sprintf(strchr(rs, '\0'), "%s?%d", comma, state); return rs; } #endif /*]*/ #endif /*]*/ /* * Check the number of argument to an action, and possibly pop up a usage * message. * * Returns 0 if the argument count is correct, -1 otherwise. */ int check_usage(XtActionProc action, Cardinal nargs, Cardinal nargs_min, Cardinal nargs_max) { if (nargs >= nargs_min && nargs <= nargs_max) return 0; if (nargs_min == nargs_max) popup_an_error("%s requires %d argument%s", action_name(action), nargs_min, nargs_min == 1 ? "" : "s"); else popup_an_error("%s requires %d or %d arguments", action_name(action), nargs_min, nargs_max); cancel_if_idle_command(); return -1; } /* * Display an action debug message */ #if defined(X3270_TRACE) /*[*/ #define KSBUF 256 void action_debug(XtActionProc action, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; char pbuf[1024]; #if defined(X3270_DISPLAY) /*[*/ XKeyEvent *kevent; KeySym ks; XButtonEvent *bevent; XMotionEvent *mevent; XConfigureEvent *cevent; XClientMessageEvent *cmevent; XExposeEvent *exevent; const char *press = "Press"; const char *direction = "Down"; char dummystr[KSBUF+1]; char *atom_name; int ambiguous = 0; int state; const char *symname = ""; char snbuf[11]; #endif /*]*/ if (!toggled(EVENT_TRACE)) return; if (event == (XEvent *)NULL) { trace_event(" %s", ia_name[(int)ia_cause]); } #if defined(X3270_DISPLAY) /*[*/ else switch (event->type) { case KeyRelease: press = "Release"; case KeyPress: kevent = (XKeyEvent *)event; (void) XLookupString(kevent, dummystr, KSBUF, &ks, NULL); state = kevent->state; /* * If the keysym is a printable ASCII character, ignore the * Shift key. */ if (ks != ' ' && !(ks & ~0xff) && isprint(ks)) state &= ~ShiftMask; if (ks == NoSymbol) symname = "NoSymbol"; else if ((symname = XKeysymToString(ks)) == CN) { (void) sprintf(snbuf, "0x%lx", (unsigned long)ks); symname = snbuf; } do { int was_ambiguous = ambiguous; trace_event("%s ':%s%s'", was_ambiguous? " or": "Event", key_symbolic_state(state, &ambiguous), press, symname); } while (ambiguous); /* * If the keysym is an alphanumeric ASCII character, show the * case-insensitive alternative, sans the colon. */ if (!(ks & ~0xff) && isalpha(ks)) { ambiguous = 0; do { int was_ambiguous = ambiguous; trace_event(" %s '%s%s'", was_ambiguous? "or": "(case-insensitive:", key_symbolic_state(state, &ambiguous), press, symname); } while (ambiguous); trace_event(")"); } #if defined(VERBOSE_EVENTS) /*[*/ trace_event("\nKey%s [state %s, keycode %d, keysym " "0x%lx \"%s\"]", press, key_state(kevent->state), kevent->keycode, ks, symname); #endif /*]*/ break; case ButtonRelease: press = "Release"; direction = "Up"; case ButtonPress: bevent = (XButtonEvent *)event; do { int was_ambiguous = ambiguous; trace_event("%s '%s'", was_ambiguous? " or": "Event", key_symbolic_state(bevent->state, &ambiguous), bevent->button, direction); } while (ambiguous); #if defined(VERBOSE_EVENTS) /*[*/ trace_event("\nButton%s [state %s, button %d]", press, key_state(bevent->state), bevent->button); #endif /*]*/ break; case MotionNotify: mevent = (XMotionEvent *)event; do { int was_ambiguous = ambiguous; trace_event("%s '%s'", was_ambiguous? " or": "Event", key_symbolic_state(mevent->state, &ambiguous)); } while (ambiguous); #if defined(VERBOSE_EVENTS) /*[*/ trace_event("\nMotionNotify [state %s]", key_state(mevent->state)); #endif /*]*/ break; case EnterNotify: trace_event("EnterNotify"); break; case LeaveNotify: trace_event("LeaveNotify"); break; case FocusIn: trace_event("FocusIn"); break; case FocusOut: trace_event("FocusOut"); break; case KeymapNotify: trace_event("KeymapNotify"); break; case Expose: exevent = (XExposeEvent *)event; trace_event("Expose [%dx%d+%d+%d]", exevent->width, exevent->height, exevent->x, exevent->y); break; case PropertyNotify: trace_event("PropertyNotify"); break; case ClientMessage: cmevent = (XClientMessageEvent *)event; atom_name = XGetAtomName(display, (Atom)cmevent->data.l[0]); trace_event("ClientMessage [%s]", (atom_name == CN) ? "(unknown)" : atom_name); break; case ConfigureNotify: cevent = (XConfigureEvent *)event; trace_event("ConfigureNotify [%dx%d+%d+%d]", cevent->width, cevent->height, cevent->x, cevent->y); break; default: trace_event("Event %d", event->type); break; } if (keymap_trace != CN) trace_event(" via %s -> %s(", keymap_trace, action_name(action)); else #endif /*]*/ trace_event(" -> %s(", action_name(action)); for (i = 0; i < *num_params; i++) { trace_event("%s\"%s\"", i ? ", " : "", scatv(params[i], pbuf, sizeof(pbuf))); } trace_event(")\n"); trace_rollover_check(); } #endif /*]*/ /* * Wrapper for calling an action internally. */ void action_internal(XtActionProc action, enum iaction cause, const char *parm1, const char *parm2) { Cardinal count = 0; String parms[2]; /* Duplicate the parms, because XtActionProc doesn't grok 'const'. */ if (parm1 != CN) { parms[0] = NewString(parm1); count++; if (parm2 != CN) { parms[1] = NewString(parm2); count++; } } ia_cause = cause; (*action)((Widget) NULL, (XEvent *) NULL, count ? parms : (String *) NULL, &count); /* Free the parm copies. */ switch (count) { case 2: Free(parms[1]); /* fall through... */ case 1: Free(parms[0]); break; default: break; } } ibm-3270-3.3.10ga4/c3270/mkversion.sh0000755000175000017500000000462111254565673016311 0ustar bastianbastian#! /bin/sh # # Copyright (c) 1999-2009, Paul Mattes. # Copyright (c) 2005, Don Russell. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor # the names of their contributors may be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Create version.o from version.txt #set -x # Ensure that 'date' emits 7-bit U.S. ASCII. LANG=C LC_ALL=C export LANG LC_ALL set -e . ./version.txt builddate=`date` sccsdate=`date +%Y/%m/%d` user=${LOGNAME-$USER} # Create an all numeric timestamp for rpqnames. # rpq.c will return this string of numbers in bcd format # It is OK to change the length (+ or -), but use # decimal (0-9) digits only. Length must be even number of digits. rpq_timestamp=`date +%Y%m%d%H%M%S` trap 'rm -f version.c' 0 1 2 15 cat <version.c char *build = "${2-x3270} v$version $builddate $user"; char *app_defaults_version = "$adversion"; static char sccsid[] = "@(#)${2-x3270} v$version $sccsdate $user"; const char *build_rpq_timestamp = "$rpq_timestamp"; const char *build_rpq_version = "$version"; EOF ${1-cc} -c version.c ibm-3270-3.3.10ga4/c3270/host.c0000644000175000017500000006224611254565704015060 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * host.c * This module handles the ibm_hosts file, connecting to and * disconnecting from hosts, and state changes on the host * connection. */ #include "globals.h" #include "appres.h" #include "resources.h" #include "actionsc.h" #include "hostc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utilc.h" #include "xioc.h" #include #define RECONNECT_MS 2000 /* 2 sec before reconnecting to host */ #define RECONNECT_ERR_MS 5000 /* 5 sec before reconnecting to host */ #define MAX_RECENT 5 enum cstate cstate = NOT_CONNECTED; Boolean std_ds_host = False; Boolean no_login_host = False; Boolean non_tn3270e_host = False; Boolean passthru_host = False; Boolean ssl_host = False; #define LUNAME_SIZE 16 char luname[LUNAME_SIZE+1]; char *connected_lu = CN; char *connected_type = CN; Boolean ever_3270 = False; char *current_host = CN; char *full_current_host = CN; unsigned short current_port; char *reconnect_host = CN; char *qualified_host = CN; struct host *hosts = (struct host *)NULL; static struct host *last_host = (struct host *)NULL; static Boolean auto_reconnect_inprogress = False; static int net_sock = -1; #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ static unsigned long reconnect_id = 0; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ static void save_recent(const char *); #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ static void try_reconnect(void); #endif /*]*/ static char * stoken(char **s) { char *r; char *ss = *s; if (!*ss) return NULL; r = ss; while (*ss && *ss != ' ' && *ss != '\t') ss++; if (*ss) { *ss++ = '\0'; while (*ss == ' ' || *ss == '\t') ss++; } *s = ss; return r; } /* * Read the host file */ void hostfile_init(void) { FILE *hf; char buf[1024]; static Boolean hostfile_initted = False; struct host *h; char *hostfile_name; if (hostfile_initted) return; hostfile_initted = True; hostfile_name = appres.hostsfile; if (hostfile_name == CN) hostfile_name = xs_buffer("%s/ibm_hosts", appres.conf_dir); else hostfile_name = do_subst(appres.hostsfile, True, True); hf = fopen(hostfile_name, "r"); if (hf != (FILE *)NULL) { while (fgets(buf, sizeof(buf), hf)) { char *s = buf; char *name, *entry_type, *hostname; char *slash; if (strlen(buf) > (unsigned)1 && buf[strlen(buf) - 1] == '\n') { buf[strlen(buf) - 1] = '\0'; } while (isspace(*s)) s++; if (!*s || *s == '#') continue; name = stoken(&s); entry_type = stoken(&s); hostname = stoken(&s); if (!name || !entry_type || !hostname) { popup_an_error("Bad %s syntax, entry skipped", ResHostsFile); continue; } h = (struct host *)Malloc(sizeof(*h)); if (!split_hier(NewString(name), &h->name, &h->parents)) { Free(h); continue; } h->hostname = NewString(hostname); /* * Quick syntax extension to allow the hosts file to * specify a port as host/port. */ if ((slash = strchr(h->hostname, '/'))) *slash = ':'; if (!strcmp(entry_type, "primary")) h->entry_type = PRIMARY; else h->entry_type = ALIAS; if (*s) h->loginstring = NewString(s); else h->loginstring = CN; h->prev = last_host; h->next = (struct host *)NULL; if (last_host) last_host->next = h; else hosts = h; last_host = h; } (void) fclose(hf); } else if (appres.hostsfile != CN) { popup_an_errno(errno, "Cannot open " ResHostsFile " '%s'", appres.hostsfile); } Free(hostfile_name); #if defined(X3270_DISPLAY) /*[*/ /* * Read the recent-connection file, and prepend it to the hosts list. */ save_recent(CN); #endif /*]*/ } /* * Look up a host in the list. Turns aliases into real hostnames, and * finds loginstrings. */ static int hostfile_lookup(const char *name, char **hostname, char **loginstring) { struct host *h; hostfile_init(); for (h = hosts; h != (struct host *)NULL; h = h->next) { if (h->entry_type == RECENT) continue; if (!strcmp(name, h->name)) { *hostname = h->hostname; if (h->loginstring != CN) { *loginstring = h->loginstring; } else { *loginstring = appres.login_macro; } return 1; } } return 0; } #if defined(LOCAL_PROCESS) /*[*/ /* Recognize and translate "-e" options. */ static const char * parse_localprocess(const char *s) { int sl = strlen(OptLocalProcess); if (!strncmp(s, OptLocalProcess, sl)) { if (s[sl] == ' ') return(s + sl + 1); else if (s[sl] == '\0') { char *r; r = getenv("SHELL"); if (r != CN) return r; else return "/bin/sh"; } } return CN; } #endif /*]*/ static char *pfxstr = "AaCcLlNnPpSs"; /* * A new hostname parser. A bit more general. * Allows backslashes to quote anything. * Allows [ ] to quote : and @ inside any name (LU, host or port). * * Because the syntax is so awful, it needs to be picked apart explicitly. * Returns 0 for success, -1 for syntax error. */ static int new_split_host(char *raw, char **lu, char **host, char **port, unsigned *prefixes) { char *start = raw; int sl = strlen(raw); char *s; char *uq = NULL; int uq_len = 0; char *qmap = NULL; char *rqmap; char *errmsg = "nonspecific"; int rc = -1; Boolean quoted = False; int bracketed = 0; int n_ch = 0; int n_at = 0; int n_colon = 0; char *part[3] = { NULL, NULL, NULL }; int part_ix = 0; char *pfx; *lu = NULL; *host = NULL; *port = NULL; *prefixes = 0; /* Trim leading and trailing blanks. */ while (sl && isspace(*start)) { start++; sl--; } while (sl && isspace(start[sl - 1])) sl--; if (!sl) { errmsg = "empty string"; goto done; } /* * 'start' now points to the start of the string, and sl is its length. */ /* * Create a bit-map of quoted characters. * This includes and character preceded by \, and any : or @ inside * unquoted [ and ]. * This can fail if an unquoted [ is found inside a [ ], or if an * unquoted [ is not terminated, or if whitespace is found. * Backslashes and unquoted square brackets are deleted at this point. * Leaves a filtered copy of the string in uq[]. */ uq = Malloc(sl + 1); qmap = Malloc(sl + 1); memset(qmap, ' ', sl); qmap[sl] = '\0'; rqmap = qmap; for (s = start; s - start < sl; s++) { if (isspace(*s)) { errmsg = "contains whitespace"; goto done; } if (quoted) { qmap[uq_len] = '+'; quoted = False; uq[uq_len++] = *s; continue; } else if (*s == '\\') { quoted = True; continue; } if (bracketed) { if (*s == ':' || *s == '@') qmap[uq_len] = '+'; /* add the character below */ else if (*s == '[') { errmsg = "nested '['"; goto done; } else if (*s == ']') { /* * What follows has to be the end of the * string, or an unquoted ':' or a '@'. */ if ((s - start) == sl - 1 || *(s + 1) == '@' || *(s + 1) == ':') bracketed = 0; else { errmsg = "text following ']'"; goto done; } continue; } } else if (*s == '[') { /* * Make sure that what came before is the beginning of * the string or an unquoted : or @. */ if (uq_len == 0 || (qmap[uq_len - 1] == ' ' && (uq[uq_len - 1] == ':' || uq[uq_len - 1] == '@'))) bracketed = 1; else { errmsg = "text preceding '['"; goto done; } continue; } uq[uq_len++] = *s; } if (quoted) { errmsg = "dangling '\\'"; goto done; } if (bracketed) { errmsg = "missing ']'"; goto done; } if (!uq_len) { errmsg = "empty hostname"; goto done; } uq[uq_len] = '\0'; /* Trim off prefixes. */ s = uq; while ((pfx = strchr(pfxstr, *s)) != NULL && qmap[(s + 1) - uq] == ' ' && *(s + 1) == ':') { *prefixes |= 1 << ((pfx - pfxstr) / 2); s += 2; rqmap += 2; } start = s; /* * Now check for syntax: [LUname@]hostname[:port] * So more than one @, more than one :, : before @, or no text before @ * or :, or no text after : are all syntax errors. * This also lets us figure out which elements are there. */ while (*s) { if (rqmap[s - start] == ' ') { if (*s == '@') { if (n_ch == 0) { errmsg = "empty LU name"; goto done; } if (n_colon > 0) { errmsg = "'@' after ':'"; goto done; } if (n_at > 0) { errmsg = "double '@'"; goto done; } n_at++; n_ch = 0; } else if (*s == ':') { if (n_ch == 0) { errmsg = "empty hostname"; goto done; } if (n_colon > 0) { errmsg = "double ':'"; goto done; } n_colon++; n_ch = 0; } else n_ch++; } else n_ch++; s++; } if (!n_ch) { if (n_colon) errmsg = "empty port"; else errmsg = "empty hostname"; goto done; } /* * The syntax is clean, and we know what parts there are. * Split them out. */ if (n_at) { *lu = Malloc(uq_len + 1); part[0] = *lu; } *host = Malloc(uq_len + 1); part[1] = *host; if (n_colon) { *port = Malloc(uq_len + 1); part[2] = *port; } s = start; n_ch = 0; while (*s) { if (rqmap[s - start] == ' ' && (*s == '@' || *s == ':')) { part[part_ix][n_ch] = '\0'; part_ix++; n_ch = 0; } else { while (part[part_ix] == NULL) part_ix++; part[part_ix][n_ch++] = *s; } s++; } part[part_ix][n_ch] = '\0'; /* Success! */ rc = 0; done: if (uq != NULL) Free(uq); if (qmap != NULL) Free(qmap); if (rc < 0) popup_an_error("Hostname syntax error: %s", errmsg); return rc; } /* * Strip qualifiers from a hostname. * Returns the hostname part in a newly-malloc'd string. * 'needed' is returned True if anything was actually stripped. * Returns NULL if there is a syntax error. */ static char * split_host(char *s, Boolean *ansi, Boolean *std_ds, Boolean *passthru, Boolean *non_e, Boolean *secure, Boolean *no_login, char *xluname, char **port, Boolean *needed) { char *lu; char *host; unsigned prefixes; Boolean *pfxptr[6]; int i; *needed = False; /* Call the sane, new version. */ if (new_split_host(s, &lu, &host, port, &prefixes) < 0) return NULL; else { if (lu) { strncpy(xluname, lu, LUNAME_SIZE); xluname[LUNAME_SIZE] = '\0'; } else *xluname = '\0'; pfxptr[0] = ansi; /* A: */ pfxptr[1] = no_login; /* C: */ pfxptr[2] = secure; /* L: */ pfxptr[3] = non_e; /* N: */ pfxptr[4] = passthru; /* P: */ pfxptr[5] = std_ds; /* S: */ for (i = 0; i < 6; i++) if (prefixes & (1 << i)) *pfxptr[i] = True; *needed = (strcmp(s, host) != 0); return host; } } /* * Network connect/disconnect operations, combined with X input operations. * * Returns 0 for success, -1 for error. * Sets 'reconnect_host', 'current_host' and 'full_current_host' as * side-effects. */ int host_connect(const char *n) { char nb[2048]; /* name buffer */ char *s; /* temporary */ const char *chost; /* to whom we will connect */ char *target_name; char *ps = CN; char *port = CN; Boolean resolving; Boolean pending; static Boolean ansi_host; const char *localprocess_cmd = NULL; Boolean has_colons = False; if (CONNECTED || auto_reconnect_inprogress) return 0; /* Skip leading blanks. */ while (*n == ' ') n++; if (!*n) { popup_an_error("Invalid (empty) hostname"); return -1; } /* Save in a modifiable buffer. */ (void) strcpy(nb, n); /* Strip trailing blanks. */ s = nb + strlen(nb) - 1; while (*s == ' ') *s-- = '\0'; /* Remember this hostname, as the last hostname we connected to. */ Replace(reconnect_host, NewString(nb)); #if defined(X3270_DISPLAY) /*[*/ /* Remember this hostname in the recent connection list and file. */ save_recent(nb); #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ if ((localprocess_cmd = parse_localprocess(nb)) != CN) { chost = localprocess_cmd; port = appres.port; } else #endif /*]*/ { Boolean needed; /* Strip off and remember leading qualifiers. */ if ((s = split_host(nb, &ansi_host, &std_ds_host, &passthru_host, &non_tn3270e_host, &ssl_host, &no_login_host, luname, &port, &needed)) == CN) return -1; /* Look up the name in the hosts file. */ if (!needed && hostfile_lookup(s, &target_name, &ps)) { /* * Rescan for qualifiers. * Qualifiers, LU names, and ports are all overridden * by the hosts file. */ Free(s); if (!(s = split_host(target_name, &ansi_host, &std_ds_host, &passthru_host, &non_tn3270e_host, &ssl_host, &no_login_host, luname, &port, &needed))) return -1; } chost = s; /* Default the port. */ if (port == CN) port = appres.port; } /* * Store the original name in globals, even if we fail the connect * later: * current_host is the hostname part, stripped of qualifiers, luname * and port number * full_current_host is the entire string, for use in reconnecting */ if (n != full_current_host) { Replace(full_current_host, NewString(n)); } Replace(current_host, CN); if (localprocess_cmd != CN) { if (full_current_host[strlen(OptLocalProcess)] != '\0') current_host = NewString(full_current_host + strlen(OptLocalProcess) + 1); else current_host = NewString("default shell"); } else { current_host = s; } has_colons = (strchr(chost, ':') != NULL); Replace(qualified_host, xs_buffer("%s%s%s%s:%s", ssl_host? "L:": "", has_colons? "[": "", chost, has_colons? "]": "", port)); /* Attempt contact. */ ever_3270 = False; net_sock = net_connect(chost, port, localprocess_cmd != CN, &resolving, &pending); if (net_sock < 0 && !resolving) { #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_DISPLAY) /*[*/ if (appres.once) { /* Exit when the error pop-up pops down. */ exiting = True; } else # endif /*]*/ if (appres.reconnect) { auto_reconnect_inprogress = True; reconnect_id = AddTimeOut(RECONNECT_ERR_MS, try_reconnect); } #endif /*]*/ /* Redundantly signal a disconnect. */ st_changed(ST_CONNECT, False); return -1; } /* Still thinking about it? */ if (resolving) { cstate = RESOLVING; st_changed(ST_RESOLVING, True); return 0; } /* Success. */ /* Set pending string. */ if (ps == CN) ps = appres.login_macro; if (ps != CN) login_macro(ps); /* Prepare Xt for I/O. */ x_add_input(net_sock); /* Set state and tell the world. */ if (pending) { cstate = PENDING; st_changed(ST_HALF_CONNECT, True); } else { cstate = CONNECTED_INITIAL; st_changed(ST_CONNECT, True); #if defined(X3270_DISPLAY) /*[*/ if (appres.reconnect && error_popup_visible()) popdown_an_error(); #endif /*]*/ } return 0; } #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ /* * Reconnect to the last host. */ static void host_reconnect(void) { if (auto_reconnect_inprogress || current_host == CN || CONNECTED || HALF_CONNECTED) return; if (host_connect(reconnect_host) >= 0) auto_reconnect_inprogress = False; } /* * Called from timer to attempt an automatic reconnection. */ static void try_reconnect(void) { auto_reconnect_inprogress = False; host_reconnect(); } /* * Cancel any pending reconnect attempt. */ void host_cancel_reconnect(void) { if (auto_reconnect_inprogress) { RemoveTimeOut(reconnect_id); auto_reconnect_inprogress = False; } } #endif /*]*/ void host_disconnect(Boolean failed) { if (CONNECTED || HALF_CONNECTED) { x_remove_input(); net_disconnect(); net_sock = -1; #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_DISPLAY) /*[*/ if (appres.once) { if (error_popup_visible()) { /* * If there is an error pop-up, exit when it * pops down. */ exiting = True; } else { /* Exit now. */ x3270_exit(0); return; } } else # endif /*]*/ if (appres.reconnect && !auto_reconnect_inprogress) { /* Schedule an automatic reconnection. */ auto_reconnect_inprogress = True; reconnect_id = AddTimeOut(failed? RECONNECT_ERR_MS: RECONNECT_MS, try_reconnect); } #endif /*]*/ /* * Remember a disconnect from ANSI mode, to keep screen tracing * in sync. */ #if defined(X3270_TRACE) /*[*/ if (IN_ANSI && toggled(SCREEN_TRACE)) trace_ansi_disc(); #endif /*]*/ cstate = NOT_CONNECTED; /* Propagate the news to everyone else. */ st_changed(ST_CONNECT, False); } } /* The host has entered 3270 or ANSI mode, or switched between them. */ void host_in3270(enum cstate new_cstate) { Boolean now3270 = (new_cstate == CONNECTED_3270 || new_cstate == CONNECTED_SSCP || new_cstate == CONNECTED_TN3270E); cstate = new_cstate; ever_3270 = now3270; st_changed(ST_3270_MODE, now3270); } void host_connected(void) { cstate = CONNECTED_INITIAL; st_changed(ST_CONNECT, True); #if defined(X3270_DISPLAY) /*[*/ if (appres.reconnect && error_popup_visible()) popdown_an_error(); #endif /*]*/ } /* Swap out net_sock. */ void host_newfd(int s) { /* Shut off the old. */ x_remove_input(); /* Turn on the new. */ net_sock = s; x_add_input(net_sock); } #if defined(X3270_DISPLAY) /*[*/ /* Comparison function for the qsort. */ static int host_compare(const void *e1, const void *e2) { const struct host *h1 = *(const struct host **)e1; const struct host *h2 = *(const struct host **)e2; int r; if (h1->connect_time > h2->connect_time) r = -1; else if (h1->connect_time < h2->connect_time) r = 1; else r = 0; #if defined(CFDEBUG) /*[*/ printf("%s %ld %d %s %ld\n", h1->name, h1->connect_time, r, h2->name, h2->connect_time); #endif /*]*/ return r; } #endif /*]*/ #if defined(CFDEBUG) /*[*/ static void dump_array(const char *when, struct host **array, int nh) { int i; printf("%s\n", when); for (i = 0; i < nh; i++) { printf(" %15s %ld\n", array[i]->name, array[i]->connect_time); } } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* Save the most recent host in the recent host list. */ static void save_recent(const char *hn) { char *lcf_name = CN; FILE *lcf = (FILE *)NULL; struct host *h; struct host *rest = (struct host *)NULL; int n_ent = 0; struct host *h_array[(MAX_RECENT * 2) + 1]; int nh = 0; int i, j; time_t t = time((time_t *)NULL); /* Allocate a new entry. */ if (hn != CN) { h = (struct host *)Malloc(sizeof(*h)); h->name = NewString(hn); h->parents = NULL; h->hostname = NewString(hn); h->entry_type = RECENT; h->loginstring = CN; h->connect_time = t; h_array[nh++] = h; } /* Put the existing entries into the array. */ for (h = hosts; h != (struct host *)NULL; h = h->next) { if (h->entry_type != RECENT) break; h_array[nh++] = h; } /* Save the ibm_hosts entries for later. */ rest = h; if (rest != (struct host *)NULL) rest->prev = (struct host *)NULL; /* * Read the last-connection file, to capture the any changes made by * other instances of x3270. */ if (appres.connectfile_name != CN && strcasecmp(appres.connectfile_name, "none")) { lcf_name = do_subst(appres.connectfile_name, True, True); lcf = fopen(lcf_name, "r"); } if (lcf != (FILE *)NULL) { char buf[1024]; while (fgets(buf, sizeof(buf), lcf) != CN) { int sl; time_t connect_time; char *ptr; /* Pick apart the entry. */ sl = strlen(buf); if (buf[sl - 1] == '\n') buf[sl-- - 1] = '\0'; if (!sl || buf[0] == '#' || (connect_time = strtoul(buf, &ptr, 10)) == 0L || ptr == buf || *ptr != ' ' || !*(ptr + 1)) continue; h = (struct host *)Malloc(sizeof(*h)); h->name = NewString(ptr + 1); h->parents = NULL; h->hostname = NewString(ptr + 1); h->entry_type = RECENT; h->loginstring = CN; h->connect_time = connect_time; h_array[nh++] = h; if (nh > (MAX_RECENT * 2) + 1) break; } fclose(lcf); } /* Sort the array, in reverse order by connect time. */ #if defined(CFDEBUG) /*[*/ dump_array("before", h_array, nh); #endif /*]*/ qsort(h_array, nh, sizeof(struct host *), host_compare); #if defined(CFDEBUG) /*[*/ dump_array("after", h_array, nh); #endif /*]*/ /* * Filter out duplicate host names, and limit the array to * MAX_RECENT entries total. */ hosts = (struct host *)NULL; last_host = (struct host *)NULL; for (i = 0; i < nh; i++) { h = h_array[i]; if (h == (struct host *)NULL) continue; h->next = (struct host *)NULL; if (last_host != (struct host *)NULL) last_host->next = h; h->prev = last_host; last_host = h; if (hosts == (struct host *)NULL) hosts = h; n_ent++; /* Zap the duplicates. */ for (j = i+1; j < nh; j++) { if (h_array[j] && (n_ent >= MAX_RECENT || !strcmp(h_array[i]->name, h_array[j]->name))) { #if defined(CFDEBUG) /*[*/ printf("%s is a dup of %s\n", h_array[j]->name, h_array[i]->name); #endif /*]*/ Free(h_array[j]->name); Free(h_array[j]->hostname); Free(h_array[j]); h_array[j] = (struct host *)NULL; } } } /* Re-attach the ibm_hosts entries to the end. */ if (rest != (struct host *)NULL) { if (last_host != (struct host *)NULL) { last_host->next = rest; } else { hosts = rest; } rest->prev = last_host; } /* If there's been a change, rewrite the file. */ if (hn != CN && appres.connectfile_name != CN && strcasecmp(appres.connectfile_name, "none")) { lcf = fopen(lcf_name, "w"); if (lcf != (FILE *)NULL) { fprintf(lcf, "# Created %s# by %s\n", ctime(&t), build); for (h = hosts; h != (struct host *)NULL; h = h->next) { if (h->entry_type != RECENT) break; (void) fprintf(lcf, "%lu %s\n", h->connect_time, h->name); } fclose(lcf); } } if (lcf_name != CN) Free(lcf_name); } #endif /*]*/ /* Support for state change callbacks. */ struct st_callback { struct st_callback *next; void (*func)(Boolean); }; static struct st_callback *st_callbacks[N_ST]; static struct st_callback *st_last[N_ST]; /* Register a function interested in a state change. */ void register_schange(int tx, void (*func)(Boolean)) { struct st_callback *st; st = (struct st_callback *)Malloc(sizeof(*st)); st->func = func; st->next = (struct st_callback *)NULL; if (st_last[tx] != (struct st_callback *)NULL) st_last[tx]->next = st; else st_callbacks[tx] = st; st_last[tx] = st; } /* Signal a state change. */ void st_changed(int tx, Boolean mode) { struct st_callback *st; for (st = st_callbacks[tx]; st != (struct st_callback *)NULL; st = st->next) { (*st->func)(mode); } } /* Explicit connect/disconnect actions. */ void Connect_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Connect_action, event, params, num_params); if (check_usage(Connect_action, *num_params, 1, 1) < 0) return; if (CONNECTED || HALF_CONNECTED) { popup_an_error("Already connected"); return; } (void) host_connect(params[0]); /* * If called from a script and the connection was successful (or * half-successful), pause the script until we are connected and * we have identified the host type. */ if (!w && (CONNECTED || HALF_CONNECTED)) sms_connect_wait(); } #if defined(X3270_MENUS) /*[*/ void Reconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Reconnect_action, event, params, num_params); if (check_usage(Reconnect_action, *num_params, 0, 0) < 0) return; if (CONNECTED || HALF_CONNECTED) { popup_an_error("Already connected"); return; } if (current_host == CN) { popup_an_error("No previous host to connect to"); return; } host_reconnect(); /* * If called from a script and the connection was successful (or * half-successful), pause the script until we are connected and * we have identified the host type. */ if (!w && (CONNECTED || HALF_CONNECTED)) sms_connect_wait(); } #endif /*]*/ void Disconnect_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Disconnect_action, event, params, num_params); if (check_usage(Disconnect_action, *num_params, 0, 0) < 0) return; host_disconnect(False); } ibm-3270-3.3.10ga4/c3270/glue.c0000644000175000017500000011252011254565704015026 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * glue.c * A displayless 3270 Terminal Emulator * Glue for missing parts. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "readresc.h" #include "screenc.h" #include "selectc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include "xioc.h" #if defined(_WIN32) /*[*/ #include #include "winversc.h" #endif /*]*/ extern void usage(char *); #define LAST_ARG "--" #if defined(C3270) /*[*/ # if defined(WC3270) /*[*/ # define SESSION_SFX ".wc3270" # define SESSION_SSFX ".wc3" # else /*][*/ # define SESSION_SFX ".c3270" # endif /*]*/ #elif defined(S3270) /*[*/ # if defined(WS3270) /*[*/ # define SESSION_SFX ".ws3270" # define SESSION_SSFX ".ws3" # else /*][*/ # define SESSION_SFX ".s3270" # endif /*]*/ #elif defined(TCL3270) /*[*/ # define SESSION_SFX ".tcl3270" #endif /*]*/ #define SESSION_SFX_LEN (int)(sizeof(SESSION_SFX) - 1) #if defined(_WIN32) /*[*/ # define SESSION_SSFX_LEN (int)(sizeof(SESSION_SSFX) - 1) #endif /*]*/ #if defined(C3270) /*[*/ extern Boolean merge_profile(void); extern Boolean any_error_output; #endif /*]*/ /* Statics */ static void no_minus(const char *arg); #if defined(LOCAL_PROCESS) /*[*/ static void parse_local_process(int *argcp, const char **argv, const char **cmds); #endif /*]*/ static void set_appres_defaults(void); static void parse_options(int *argcp, const char **argv); static void parse_set_clear(int *argcp, const char **argv); static int parse_model_number(char *m); /* Globals */ const char *programname; char full_model_name[13] = "IBM-"; char *model_name = &full_model_name[4]; AppRes appres; int children = 0; Boolean exiting = False; char *command_string = CN; static Boolean sfont = False; Boolean *standard_font = &sfont; char *profile_name = CN; char *profile_path = CN; struct toggle_name toggle_names[] = { #if defined(C3270) /*[*/ { ResMonoCase, MONOCASE }, #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { ResDsTrace, DS_TRACE }, #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResLineWrap, LINE_WRAP }, #endif /*]*/ { ResBlankFill, BLANK_FILL }, #if defined(X3270_TRACE) /*[*/ { ResScreenTrace, SCREEN_TRACE }, { ResEventTrace, EVENT_TRACE }, #endif /*]*/ #if defined(C3270) /*[*/ { ResMarginedPaste, MARGINED_PASTE }, #endif /*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ { ResAidWait, AID_WAIT }, #endif /*]*/ #if defined(C3270) /*[*/ { ResUnderscore, UNDERSCORE }, #endif /*]*/ { NULL, 0 } }; int parse_command_line(int argc, const char **argv, const char **cl_hostname) { int cl, i; int ovc, ovr; int hn_argc; int model_number; int sl; int xcmd_len = 0; char *xcmd; int xargc; const char **xargv; Boolean read_session_or_profile = False; /* Figure out who we are */ #if defined(_WIN32) /*[*/ programname = strrchr(argv[0], '\\'); #else /*][*/ programname = strrchr(argv[0], '/'); #endif /*]*/ if (programname) ++programname; else programname = argv[0]; /* Save the command string for tracing purposes. */ cl = strlen(programname); for (i = 0; i < argc; i++) { cl += 1 + strlen(argv[i]); } cl++; command_string = Malloc(cl); (void) strcpy(command_string, programname); for (i = 0; i < argc; i++) { (void) strcat(strcat(command_string, " "), argv[i]); } /* * Save the command-line options so they can be reapplied after * the session file or profile has been read in. */ xcmd_len = 0; for (i = 0; i < argc; i++) xcmd_len += strlen(argv[i]) + 1; xcmd = Malloc(xcmd_len + 1); xargv = (const char **)Malloc((argc + 1) * sizeof(char *)); xcmd_len = 0; for (i = 0; i < argc; i++) { xargv[i] = xcmd + xcmd_len; (void) strcpy(xcmd + xcmd_len, argv[i]); xcmd_len += strlen(argv[i]) + 1; } xargv[i] = CN; *(xcmd + xcmd_len) = '\0'; xargc = argc; #if defined(LOCAL_PROCESS) /*[*/ /* Pick out the -e option. */ parse_local_process(&argc, argv, cl_hostname); #endif /*]*/ /* Set the defaults. */ set_appres_defaults(); /* Parse command-line options. */ parse_options(&argc, argv); /* Pick out the remaining -set and -clear toggle options. */ parse_set_clear(&argc, argv); /* Now figure out if there's a hostname. */ for (hn_argc = 1; hn_argc < argc; hn_argc++) { if (!strcmp(argv[hn_argc], LAST_ARG)) break; } /* Verify command-line syntax. */ switch (hn_argc) { case 1: break; case 2: no_minus(argv[1]); *cl_hostname = argv[1]; break; case 3: no_minus(argv[1]); no_minus(argv[2]); *cl_hostname = xs_buffer("%s:%s", argv[1], argv[2]); break; default: usage("Too many command-line arguments"); break; } /* Delete the host name and any "--". */ if (argv[hn_argc] != CN && !strcmp(argv[hn_argc], LAST_ARG)) hn_argc++; if (hn_argc > 1) { for (i = 1; i < argc - hn_argc + 2; i++) { argv[i] = argv[i + hn_argc - 1]; } } /* Merge in the session. */ if (*cl_hostname != CN && (((sl = strlen(*cl_hostname)) > SESSION_SFX_LEN && !strcasecmp(*cl_hostname + sl - SESSION_SFX_LEN, SESSION_SFX)) #if defined(_WIN32) /*[*/ || ((sl = strlen(*cl_hostname)) > SESSION_SSFX_LEN && !strcasecmp(*cl_hostname + sl - SESSION_SSFX_LEN, SESSION_SSFX)) #endif /*]*/ )) { const char *pname; if (read_resource_file(*cl_hostname, True) < 0) x3270_exit(1); read_session_or_profile = True; pname = strrchr(*cl_hostname, '\\'); if (pname != CN) pname++; else pname = *cl_hostname; profile_name = NewString(pname); Replace(profile_path, NewString(profile_name)); sl = strlen(profile_name); if (sl > SESSION_SFX_LEN && !strcasecmp(profile_name + sl - SESSION_SFX_LEN, SESSION_SFX)) { profile_name[sl - SESSION_SFX_LEN] = '\0'; #if defined(_WIN32) /*[*/ } else if (sl > SESSION_SSFX_LEN && !strcasecmp(profile_name + sl - SESSION_SSFX_LEN, SESSION_SSFX)) { profile_name[sl - SESSION_SSFX_LEN] = '\0'; #endif /*]*/ } *cl_hostname = appres.hostname; /* might be NULL */ #if defined(C3270) && !defined(_WIN32) /*[*/ } else { /* Read in the profile only if there's no sesson file. */ read_session_or_profile = merge_profile(); #endif /*]*/ } /* * Now parse the command-line arguments again, so they take * precedence over the session file or profile. */ if (read_session_or_profile) { parse_options(&xargc, xargv); parse_set_clear(&xargc, xargv); } /* Can't free xcmd, parts of it are still in use. */ Free((char *)xargv); /* * All right, we have all of the resources defined. * Sort out the contradictory and implicit settings. */ /* * Sort out model and color modes, based on the model number resource. */ model_number = parse_model_number(appres.model); if (model_number < 0) { popup_an_error("Invalid model number: %s", appres.model); model_number = 0; } if (!model_number) { #if defined(RESTRICT_3279) /*[*/ model_number = 3; #else /*][*/ model_number = 4; #endif /*]*/ } #if defined(C3270) && !defined(_WIN32) /*[*/ if (appres.mono) appres.m3279 = False; #endif /*]*/ if (!appres.extended) appres.oversize = CN; #if defined(RESTRICT_3279) /*[*/ if (appres.m3279 && model_number == 4) model_number = 3; #endif /*]*/ ovc = 0; ovr = 0; if (appres.extended && appres.oversize != CN) { #if defined(C3270) /*[*/ if (!strcasecmp(appres.oversize, "auto")) { ovc = -1; ovr = -1; } else #endif /*]*/ { int x_ovc, x_ovr; char junk; if (sscanf(appres.oversize, "%dx%d%c", &x_ovc, &x_ovr, &junk) == 2) { ovc = x_ovc; ovr = x_ovr; } } } set_rows_cols(model_number, ovc, ovr); if (appres.termname != CN) termtype = appres.termname; else termtype = full_model_name; if (appres.apl_mode) appres.charset = Apl; if (*cl_hostname == CN) appres.once = False; if (appres.conf_dir == CN) appres.conf_dir = LIBX3270DIR; return argc; } static void no_minus(const char *arg) { if (arg[0] == '-') usage(xs_buffer("Unknown or incomplete option: %s", arg)); } #if defined(LOCAL_PROCESS) /*[*/ /* * Pick out the -e option. */ static void parse_local_process(int *argcp, const char **argv, const char **cmds) { int i, j; int e_len = -1; char *cmds_buf = NULL; for (i = 1; i < *argcp; i++) { if (strcmp(argv[i], OptLocalProcess)) continue; /* Matched. Copy 'em. */ e_len = strlen(OptLocalProcess) + 1; for (j = i+1; j < *argcp; j++) { e_len += 1 + strlen(argv[j]); } e_len++; cmds_buf = Malloc(e_len); (void) strcpy(cmds_buf, OptLocalProcess); for (j = i+1; j < *argcp; j++) { (void) strcat(strcat(cmds_buf, " "), argv[j]); } /* Stamp out the remaining args. */ *argcp = i; argv[i] = CN; break; } *cmds = cmds_buf; } #endif /*]*/ static void set_appres_defaults(void) { /* Set the defaults. */ #if defined(C3270) && !defined(_WIN32) /*[*/ appres.mono = False; #endif /*]*/ appres.extended = True; #if defined(C3270) /*[*/ appres.m3279 = True; #else /*][*/ appres.m3279 = False; #endif /*]*/ appres.modified_sel = False; appres.apl_mode = False; #if defined(C3270) || defined(TCL3270) /*[*/ appres.scripted = False; #else /*][*/ appres.scripted = True; #endif /*]*/ appres.numeric_lock = False; appres.secure = False; #if defined(C3270) /*[*/ appres.oerr_lock = True; #else /*][*/ appres.oerr_lock = False; #endif /*]*/ appres.typeahead = True; appres.debug_tracing = True; #if defined(C3270) /*[*/ appres.compose_map = "latin1"; appres.do_confirms = True; appres.reconnect = False; #endif /*]*/ appres.model = "4"; appres.hostsfile = CN; appres.port = "telnet"; #if !defined(_WIN32) /*[*/ appres.charset = "bracket"; #else /*][*/ if (is_nt) appres.charset = "bracket"; else appres.charset = "bracket437"; #endif /*]*/ appres.termname = CN; appres.macros = CN; #if defined(X3270_TRACE) && !defined(_WIN32) /*[*/ appres.trace_dir = "/tmp"; #endif /*]*/ #if defined(WC3270) /*[*/ appres.trace_monitor = True; #endif /*]*/ appres.oversize = CN; #if defined(C3270) /*[*/ appres.meta_escape = "auto"; appres.curses_keypad = True; appres.cbreak_mode = False; appres.ascii_box_draw = False; # if defined(C3270) && !defined(_WIN32) /*[*/ appres.mouse = True; # endif /*]*/ #if defined(CURSES_WIDE) /*[*/ appres.acs = True; #endif /*]*/ #endif /*]*/ #if defined(X3270_ANSI) /*[*/ appres.icrnl = True; appres.inlcr = False; appres.onlcr = True; appres.erase = "^H"; appres.kill = "^U"; appres.werase = "^W"; appres.rprnt = "^R"; appres.lnext = "^V"; appres.intr = "^C"; appres.quit = "^\\"; appres.eof = "^D"; #endif /*]*/ appres.unlock_delay = True; appres.unlock_delay_ms = 350; #if defined(X3270_FT) /*[*/ appres.dft_buffer_size = DFT_BUF; #endif /*]*/ #if defined(C3270) /*[*/ appres.toggle[CURSOR_POS].value = True; #endif /*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ appres.toggle[AID_WAIT].value = True; #endif /*]*/ #if defined(C3270) && defined(_WIN32) /*[*/ appres.toggle[UNDERSCORE].value = True; #endif /*]*/ #if defined(C3270) && defined(X3270_SCRIPT) /*[*/ appres.plugin_command = "x3270hist.pl"; #endif /*]*/ #if defined(WS3270) /*[*/ appres.local_cp = GetACP(); #endif /*]*/ } #if defined (C3270) /*[*/ # if defined(WIN32) /*[*/ # define APPNAME "wc3270" # else /*][*/ # define APPNAME "c3270" # endif /*]*/ #elif defined(S3270) /*[*/ # if defined(WIN32) /*[*/ # define APPNAME "ws3270" # else /*][*/ # define APPNAME "s3270" # endif /*]*/ #elif defined(TCL3270) /*[*/ # define APPNAME "tcl3270" #else # error "Unknwon application" #endif /*]*/ #if defined(_WIN32) /*[*/ # define PR3287_NAME "wpr3287" #else /*][*/ # define PR3287_NAME "pr3287" #endif /*]*/ #define offset(n) (void *)&appres.n #define toggle_offset(index) offset(toggle[index].value) static struct { const char *name; enum { OPT_BOOLEAN, OPT_STRING, OPT_XRM, OPT_SKIP2, OPT_NOP, OPT_INT, OPT_V, OPT_DONE } type; Boolean flag; const char *res_name; void *aoff; char *help_opts; char *help_text; } opts[] = { #if defined(C3270) /*[*/ { OptAllBold, OPT_BOOLEAN, True, ResAllBold, offset(all_bold_on), CN, "Display all text in bold" }, #endif /*]*/ #if defined(C3270) && !defined(_WIN32) /*[*/ { OptAltScreen,OPT_STRING, False, ResAltScreen, offset(altscreen), "", "Specify string to switch terminal from 80-column mode to 132-column mode" }, #endif /*]*/ #if defined(WC3270) /*[*/ { OptAutoShortcut,OPT_BOOLEAN, True, ResAutoShortcut,offset(auto_shortcut), CN, "Run in auto-shortcut mode" }, #endif /*]*/ { OptAplMode, OPT_BOOLEAN, True, ResAplMode, offset(apl_mode), CN, "Turn on APL mode" }, #if defined(C3270) && !defined(_WIN32) /*[*/ { OptCbreak, OPT_BOOLEAN, True, ResCbreak, offset(cbreak_mode), CN, "Force terminal CBREAK mode" }, #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ { OptCertFile, OPT_STRING, False, ResCertFile, offset(cert_file), "", "Specify OpenSSL certificate file" }, #endif /*]*/ { OptCharset, OPT_STRING, False, ResCharset, offset(charset), "", "Use host ECBDIC character set (code page) "}, { OptClear, OPT_SKIP2, False, NULL, NULL, "", "Turn on " }, #if defined(C3270) && !defined(_WIN32) /*[*/ { OptDefScreen,OPT_STRING, False, ResDefScreen, offset(defscreen), "", "Specify string to switch terminal from 80-column mode to 132-column mode" }, #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ { OptLocalProcess,OPT_SKIP2,False, NULL, NULL, " [...]", "Run instead of making TELNET conection" }, #endif /*]*/ { OptHostsFile,OPT_STRING, False, ResHostsFile, offset(hostsfile), "", "Use as the ibm_hosts file" }, #if defined(C3270) /*[*/ { OptKeymap, OPT_STRING, False, ResKeymap, offset(key_map), "[,...]", "Keyboard map name(s)" }, #endif /*]*/ #if defined(WS3270) /*[*/ { OptLocalCp, OPT_INT, False, ResLocalCp, offset(local_cp), "", "Use instead of ANSI codepage for local I/O" }, #endif /*]*/ { OptModel, OPT_STRING, False, ResModel, offset(model), "[327{8,9}-]", "Emulate a 3278 or 3279 model " }, #if defined(C3270) /*[*/ # if !defined(_WIN32) /*[*/ { OptMono, OPT_BOOLEAN, True, ResMono, offset(mono), CN, "Do not use terminal color capabilities" }, # endif /*]*/ #if defined(WC3270) /*[*/ { OptNoAutoShortcut,OPT_BOOLEAN,False,ResAutoShortcut,offset(auto_shortcut), CN, "Do not run in auto-shortcut mode" }, #endif /*]*/ { OptNoPrompt, OPT_BOOLEAN, True, ResNoPrompt, offset(no_prompt), CN, "Suppress interactive mode (" APPNAME "> prompt)" }, #endif /*]*/ { OptOnce, OPT_BOOLEAN, True, ResOnce, offset(once), CN, "Exit as soon as the host disconnects" }, { OptOversize, OPT_STRING, False, ResOversize, offset(oversize), "x", "Specify larger screen" }, { OptPort, OPT_STRING, False, ResPort, offset(port), "", "Specify default TELNET port" }, #if defined(C3270) /*[*/ { OptPrinterLu,OPT_STRING, False, ResPrinterLu, offset(printer_lu), "", "Automatically start a "PR3287_NAME" printer session to " }, { OptReconnect,OPT_BOOLEAN, True, ResReconnect, offset(reconnect), CN, "Reconnect to host as soon as it disconnects" }, #if !defined(_WIN32) /*[*/ { OptReverseVideo,OPT_BOOLEAN,True,ResReverseVideo,offset(reverse_video), CN, "Switch to black-on-white mode" }, #endif /*]*/ #endif /*]*/ { OptProxy, OPT_STRING, False, ResProxy, offset(proxy), ":[:]", "Secify proxy type and server" }, #if defined(S3270) /*[*/ { OptScripted, OPT_NOP, False, ResScripted, NULL, CN, "Turn on scripting" }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { OptScriptPort,OPT_INT, True, ResScriptPort, offset(script_port), "", "TCP port to listen on for script commands" }, #endif /*]*/ #if defined(C3270) /*[*/ { OptSecure, OPT_BOOLEAN, True, ResSecure, offset(secure), CN, "Restrict potentially-destructive user actions" }, #endif /*]*/ { OptSet, OPT_SKIP2, False, NULL, NULL, "", "Turn on " }, #if defined(X3270_SCRIPT) /*[*/ { OptSocket, OPT_BOOLEAN, True, ResSocket, offset(socket), CN, "Create socket for script control" }, #endif /*]*/ { OptTermName, OPT_STRING, False, ResTermName, offset(termname), "", "Send as TELNET terminal name" }, #if defined(WC3270) /*[*/ { OptTitle, OPT_STRING, False, ResTitle, offset(title), "", "Set window title to " }, #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { OptDsTrace, OPT_BOOLEAN, True, ResDsTrace, toggle_offset(DS_TRACE), CN, "Enable tracing" }, { OptTraceFile,OPT_STRING, False, ResTraceFile, offset(trace_file), "", "Write traces to " }, { OptTraceFileSize,OPT_STRING,False,ResTraceFileSize,offset(trace_file_size), "[KM]", "Limit trace file to bytes" }, #endif /*]*/ { OptV, OPT_V, False, NULL, NULL, CN, "Display build options and character sets" }, { OptVersion, OPT_V, False, NULL, NULL, CN, "Display build options and character sets" }, { "-xrm", OPT_XRM, False, NULL, NULL, "'" APPNAME ".: '", "Set to " }, { LAST_ARG, OPT_DONE, False, NULL, NULL, CN, "Terminate argument list" }, { CN, OPT_SKIP2, False, NULL, NULL, CN, CN } }; /* * Pick out command-line options and set up appres. */ static void parse_options(int *argcp, const char **argv) { int i, j; int argc_out = 0; const char **argv_out = (const char **) Malloc((*argcp + 1) * sizeof(char *)); /* Parse the command-line options. */ argv_out[argc_out++] = argv[0]; for (i = 1; i < *argcp; i++) { for (j = 0; opts[j].name != CN; j++) { if (!strcmp(argv[i], opts[j].name)) break; } if (opts[j].name == CN) { argv_out[argc_out++] = argv[i]; continue; } switch (opts[j].type) { case OPT_BOOLEAN: *(Boolean *)opts[j].aoff = opts[j].flag; if (opts[j].res_name != CN) add_resource(NewString(opts[j].name), opts[j].flag? "True": "False"); break; case OPT_STRING: if (i == *argcp - 1) /* missing arg */ continue; *(const char **)opts[j].aoff = argv[++i]; if (opts[j].res_name != CN) add_resource(NewString(opts[j].res_name), NewString(argv[i])); break; case OPT_XRM: if (i == *argcp - 1) /* missing arg */ continue; parse_xrm(argv[++i], "-xrm"); break; case OPT_SKIP2: argv_out[argc_out++] = argv[i++]; if (i < *argcp) argv_out[argc_out++] = argv[i]; break; case OPT_NOP: break; case OPT_INT: if (i == *argcp - 1) /* missing arg */ continue; *(int *)opts[j].aoff = atoi(argv[++i]); if (opts[j].res_name != CN) add_resource(NewString(opts[j].name), NewString(argv[i])); break; case OPT_V: dump_version(); break; case OPT_DONE: while (i < *argcp) argv_out[argc_out++] = argv[i++]; break; } } *argcp = argc_out; argv_out[argc_out] = CN; (void) memcpy((char *)argv, (char *)argv_out, (argc_out + 1) * sizeof(char *)); Free((char *)argv_out); #if defined(X3270_TRACE) /*[*/ /* One isn't very useful without the other. */ if (appres.toggle[DS_TRACE].value) appres.toggle[EVENT_TRACE].value = True; #endif /*]*/ } /* Disply command-line help. */ void cmdline_help (Boolean as_action) { int i; for (i = 0; opts[i].name != CN; i++) { if (as_action) { action_output(" %s%s%s", opts[i].name, opts[i].help_opts? " ": "", opts[i].help_opts? opts[i].help_opts: ""); action_output(" %s", opts[i].help_text); } else fprintf(stderr, " %s%s%s\n %s\n", opts[i].name, opts[i].help_opts? " ": "", opts[i].help_opts? opts[i].help_opts: "", opts[i].help_text); } } /* * Pick out -set and -clear toggle options. */ static void parse_set_clear(int *argcp, const char **argv) { int i, j; int argc_out = 0; const char **argv_out = (const char **) Malloc((*argcp + 1) * sizeof(char *)); argv_out[argc_out++] = argv[0]; for (i = 1; i < *argcp; i++) { Boolean is_set = False; if (!strcmp(argv[i], OptSet)) is_set = True; else if (strcmp(argv[i], OptClear)) { argv_out[argc_out++] = argv[i]; continue; } if (i == *argcp - 1) /* missing arg */ continue; /* Delete the argument. */ i++; for (j = 0; toggle_names[j].name != NULL; j++) if (!strcmp(argv[i], toggle_names[j].name)) { appres.toggle[toggle_names[j].index].value = is_set; break; } if (toggle_names[j].name == NULL) usage("Unknown toggle name"); } *argcp = argc_out; argv_out[argc_out] = CN; (void) memcpy((char *)argv, (char *)argv_out, (argc_out + 1) * sizeof(char *)); Free((char *)argv_out); } /* * Parse the model number. * Returns -1 (error), 0 (default), or the specified number. */ static int parse_model_number(char *m) { int sl; int n; sl = strlen(m); /* An empty model number is no good. */ if (!sl) { return 0; } if (sl > 1) { /* * If it's longer than one character, it needs to start with * '327[89]', and it sets the m3279 resource. */ if (!strncmp(m, "3278", 4)) { appres.m3279 = False; } else if (!strncmp(m, "3279", 4)) { appres.m3279 = True; } else { return -1; } m += 4; sl -= 4; /* Check more syntax. -E is allowed, but ignored. */ switch (m[0]) { case '\0': /* Use default model number. */ return 0; case '-': /* Model number specified. */ m++; sl--; break; default: return -1; } switch (sl) { case 1: /* n */ break; case 3: /* n-E */ if (strcasecmp(m + 1, "-E")) { return -1; } break; default: return -1; } } /* Check the numeric model number. */ n = atoi(m); if (n >= 2 && n <= 5) { return n; } else { return -1; } } /* * Parse '-xrm' options. * Understands only: * {c,s,tcl}3270.: value * Asterisks and class names need not apply. */ static struct { const char *name; void *address; enum resource_type { XRM_STRING, XRM_BOOLEAN, XRM_INT } type; } resources[] = { #if defined(C3270) /*[*/ { ResAllBold, offset(all_bold), XRM_STRING }, { ResAltScreen, offset(altscreen), XRM_STRING }, #endif /*]*/ #if defined(WC3270) /*[*/ { ResAutoShortcut,offset(auto_shortcut),XRM_BOOLEAN }, #endif /*]*/ { ResBsdTm, offset(bsd_tm), XRM_BOOLEAN }, #if defined(HAVE_LIBSSL) /*[*/ { ResCertFile, offset(cert_file), XRM_STRING }, #endif /*]*/ { ResCharset, offset(charset), XRM_STRING }, { ResColor8, offset(color8), XRM_BOOLEAN }, #if defined(TCL3270) /*[*/ { ResCommandTimeout, offset(command_timeout), XRM_INT }, #endif /*]*/ { ResConfDir, offset(conf_dir), XRM_STRING }, #if defined(X3270_DBCS) /*[*/ { ResDbcsCgcsgid, offset(dbcs_cgcsgid), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResDefScreen, offset(defscreen), XRM_STRING }, #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResEof, offset(eof), XRM_STRING }, { ResErase, offset(erase), XRM_STRING }, #endif /*]*/ { ResExtended, offset(extended), XRM_BOOLEAN }, #if defined(X3270_FT) /*[*/ { ResDftBufferSize,offset(dft_buffer_size),XRM_INT }, #endif /*]*/ { ResHostname, offset(hostname), XRM_STRING }, { ResHostsFile, offset(hostsfile), XRM_STRING }, #if defined(X3270_ANSI) /*[*/ { ResIcrnl, offset(icrnl), XRM_BOOLEAN }, { ResInlcr, offset(inlcr), XRM_BOOLEAN }, { ResOnlcr, offset(onlcr), XRM_BOOLEAN }, { ResIntr, offset(intr), XRM_STRING }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { ResPluginCommand, offset(plugin_command), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResIdleCommand,offset(idle_command), XRM_STRING }, { ResIdleCommandEnabled,offset(idle_command_enabled), XRM_BOOLEAN }, { ResIdleTimeout,offset(idle_timeout), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResKeymap, offset(key_map), XRM_STRING }, { ResMetaEscape,offset(meta_escape), XRM_STRING }, { ResCursesKeypad,offset(curses_keypad),XRM_BOOLEAN }, { ResCbreak, offset(cbreak_mode), XRM_BOOLEAN }, { ResAsciiBoxDraw,offset(ascii_box_draw), XRM_BOOLEAN }, #if defined(CURSES_WIDE) /*[*/ { ResAcs, offset(acs), XRM_BOOLEAN }, #endif /*]*/ #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResKill, offset(kill), XRM_STRING }, { ResLnext, offset(lnext), XRM_STRING }, #endif /*]*/ #if defined(WS3270) /*[*/ { ResLocalCp, offset(local_cp), XRM_INT }, #endif /*]*/ { ResLoginMacro,offset(login_macro), XRM_STRING }, { ResM3279, offset(m3279), XRM_BOOLEAN }, { ResModel, offset(model), XRM_STRING }, { ResModifiedSel, offset(modified_sel), XRM_BOOLEAN }, #if defined(C3270) /*[*/ # if !defined(_WIN32) /*[*/ { ResMono, offset(mono), XRM_BOOLEAN }, { ResMouse, offset(mouse), XRM_BOOLEAN }, # endif /*]*/ { ResNoPrompt, offset(no_prompt), XRM_BOOLEAN }, #endif /*]*/ { ResNumericLock, offset(numeric_lock), XRM_BOOLEAN }, { ResOerrLock, offset(oerr_lock), XRM_BOOLEAN }, { ResOversize, offset(oversize), XRM_STRING }, { ResPort, offset(port), XRM_STRING }, #if defined(C3270) /*[*/ { ResPrinterLu, offset(printer_lu), XRM_STRING }, #endif /*]*/ { ResProxy, offset(proxy), XRM_STRING }, #if defined(X3270_ANSI) /*[*/ { ResQuit, offset(quit), XRM_STRING }, { ResRprnt, offset(rprnt), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResReconnect, offset(reconnect), XRM_BOOLEAN }, #if !defined(_WIN32) /*[*/ { ResReverseVideo,offset(reverse_video),XRM_BOOLEAN }, #endif /*]*/ #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { ResScreenTraceFile,offset(screentrace_file),XRM_STRING }, #endif /*]*/ { ResSecure, offset(secure), XRM_BOOLEAN }, { ResSbcsCgcsgid, offset(sbcs_cgcsgid), XRM_STRING }, #if defined(X3270_SCRIPT) /*[*/ { ResScriptPort,offset(script_port), XRM_INT }, #endif /*]*/ { ResTermName, offset(termname), XRM_STRING }, #if defined(WC3270) /*[*/ { ResTitle, offset(title), XRM_STRING }, #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { ResTraceDir, offset(trace_dir), XRM_STRING }, { ResTraceFile, offset(trace_file), XRM_STRING }, { ResTraceFileSize,offset(trace_file_size),XRM_STRING }, #if defined(WC3270) /*[*/ { ResTraceMonitor,offset(trace_monitor),XRM_BOOLEAN }, #endif /*]*/ #endif /*]*/ { ResTypeahead, offset(typeahead), XRM_BOOLEAN }, { ResUnlockDelay,offset(unlock_delay), XRM_BOOLEAN }, { ResUnlockDelayMs,offset(unlock_delay_ms),XRM_INT }, #if defined(WC3270) /*[*/ { ResVisualBell,offset(visual_bell), XRM_BOOLEAN }, #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResWerase, offset(werase), XRM_STRING }, #endif /*]*/ { CN, 0, XRM_STRING } }; /* * Compare two strings, allowing the second to differ by uppercasing the * first character of the second. */ static int strncapcmp(const char *known, const char *unknown, unsigned unk_len) { if (unk_len != strlen(known)) return -1; if (!strncmp(known, unknown, unk_len)) return 0; if (unk_len > 1 && unknown[0] == toupper(known[0]) && !strncmp(known + 1, unknown + 1, unk_len - 1)) return 0; return -1; } #if defined(C3270) /*[*/ struct host_color host_color[] = { { "NeutralBlack", HOST_COLOR_NEUTRAL_BLACK }, { "Blue", HOST_COLOR_BLUE }, { "Red", HOST_COLOR_RED }, { "Pink", HOST_COLOR_PINK }, { "Green", HOST_COLOR_GREEN }, { "Turquoise", HOST_COLOR_TURQUOISE }, { "Yellow", HOST_COLOR_YELLOW }, { "NeutralWhite", HOST_COLOR_NEUTRAL_WHITE }, { "Black", HOST_COLOR_BLACK }, { "DeepBlue", HOST_COLOR_DEEP_BLUE }, { "Orange", HOST_COLOR_ORANGE }, { "Purple", HOST_COLOR_PURPLE }, { "PaleGreen", HOST_COLOR_PALE_GREEN }, { "PaleTurquoise", HOST_COLOR_PALE_TURQUOISE }, { "Grey", HOST_COLOR_GREY }, { "Gray", HOST_COLOR_GREY }, /* alias */ { "White", HOST_COLOR_WHITE }, { CN, 0 } }; /* * Validate a resource that is fetched explicitly, rather than via appres. */ static int valid_explicit(const char *resname, unsigned len) { static struct { char *name; enum { V_FLAT, V_WILD, V_COLOR } type; } explicit_resources[] = { { ResKeymap, V_WILD }, { ResAssocCommand, V_FLAT }, { ResLuCommandLine, V_FLAT }, #if defined(_WIN32) /*[*/ { ResPrinterCodepage, V_FLAT }, { ResPrinterCommand, V_FLAT }, { ResPrinterName, V_FLAT }, { ResPrintTextFont, V_FLAT }, { ResPrintTextSize, V_FLAT }, { ResHostColorForDefault, V_FLAT }, { ResHostColorForIntensified, V_FLAT }, { ResHostColorForProtected, V_FLAT }, { ResHostColorForProtectedIntensified,V_FLAT }, { ResConsoleColorForHostColor, V_COLOR }, #else /*][*/ { ResPrintTextCommand, V_FLAT }, { ResCursesColorForDefault, V_FLAT }, { ResCursesColorForIntensified, V_FLAT }, { ResCursesColorForProtected, V_FLAT }, { ResCursesColorForProtectedIntensified,V_FLAT }, { ResCursesColorForHostColor, V_COLOR }, #endif /*]*/ { NULL, V_WILD } }; int i; int j; for (i = 0; explicit_resources[i].name != CN; i++) { unsigned sl = strlen(explicit_resources[i].name); switch (explicit_resources[i].type) { case V_FLAT: /* Exact match. */ if (len == sl && !strncmp(explicit_resources[i].name, resname, sl)) return 0; break; case V_WILD: /* xxx.* match. */ if (len > sl + 1 && resname[sl] == '.' && !strncmp(explicit_resources[i].name, resname, sl)) return 0; break; case V_COLOR: /* xxx or xxx match. */ for (j = 0; host_color[j].name != CN; j++) { char *x; x = xs_buffer("%s%s", explicit_resources[i].name, host_color[j].name); if (strlen(x) == len && !strncmp(x, resname, len)) { Free(x); return 0; } Free(x); x = xs_buffer("%s%d", explicit_resources[i].name, host_color[j].index); if (strlen(x) == len && !strncmp(x, resname, len)) { Free(x); return 0; } Free(x); } break; } } return -1; } #endif /*]*/ void parse_xrm(const char *arg, const char *where) { const char *name; unsigned rnlen; const char *s; int i; char *t; void *address = NULL; enum resource_type type = XRM_STRING; Boolean quoted; char c; #if defined(C3270) /*[*/ char *hide; Boolean arbitrary = False; #endif /*]*/ /* Validate and split. */ if (validate_and_split_resource(where, arg, &name, &rnlen, &s) < 0) return; /* Look up the name. */ for (i = 0; resources[i].name != CN; i++) { if (!strncapcmp(resources[i].name, name, rnlen)) { address = resources[i].address; type = resources[i].type; break; } } if (address == NULL) { for (i = 0; toggle_names[i].name != NULL; i++) { if (!strncapcmp(toggle_names[i].name, name, rnlen)) { address = &appres.toggle[toggle_names[i].index].value; type = XRM_BOOLEAN; break; } } } #if defined(C3270) /*[*/ if (address == NULL && valid_explicit(name, rnlen) == 0) { /* * Handle resources that are accessed only via get_resource(). */ address = &hide; type = XRM_STRING; arbitrary = True; } #endif /*]*/ if (address == NULL) { xs_warning("%s: Unknown resource name: %.*s", where, (int)rnlen, name); return; } switch (type) { case XRM_BOOLEAN: if (!strcasecmp(s, "true") || !strcasecmp(s, "t") || !strcmp(s, "1")) { *(Boolean *)address = True; } else if (!strcasecmp(s, "false") || !strcasecmp(s, "f") || !strcmp(s, "0")) { *(Boolean *)address = False; } else { xs_warning("%s: Invalid Boolean value: %s", where, s); } break; case XRM_STRING: t = Malloc(strlen(s) + 1); *(char **)address = t; quoted = False; while ((c = *s++) != '\0') { if (quoted) { switch (c) { case 'b': *t++ = '\b'; break; case 'f': *t++ = '\f'; break; case 'n': *t++ = '\n'; break; case 'r': *t++ = '\r'; break; case 't': *t++ = '\t'; break; default: /* Leave other backslashes intact. */ *t++ = '\\'; *t++ = c; break; } quoted = False; } else if (c == '\\') { quoted = True; } else { *t++ = c; } } *t = '\0'; break; case XRM_INT: { long n; char *ptr; n = strtol(s, &ptr, 0); if (*ptr != '\0') { xs_warning("%s: Invalid Integer value: %s", where, s); } else { *(int *)address = (int)n; } break; } } #if defined(C3270) /*[*/ /* Add a new, arbitrarily-named resource. */ if (arbitrary) { char *rsname; rsname = Malloc(rnlen + 1); (void) strncpy(rsname, name, rnlen); rsname[rnlen] = '\0'; add_resource(rsname, hide); } #endif /*]*/ } /* * Clean up a string for display (undo what parse_xrm does). */ char * safe_string(const char *s) { char *t = Malloc(1); int tlen = 1; *t = '\0'; /* * Translate the string to UCS4 a character at a time. * If the result is a control code or backslash, expand it. * Otherwise, translate it back to the local encoding and * append it to the output. */ while (*s) { ucs4_t u; int consumed; enum me_fail error; u = multibyte_to_unicode(s, strlen(s), &consumed, &error); if (u == 0) break; if (u < ' ') { char c = 0; int inc = 0; switch (u) { case '\b': c = 'b'; inc = 2; break; case '\f': c = 'f'; inc = 2; break; case '\n': c = 'n'; inc = 2; break; case '\r': c = 'r'; inc = 2; break; case '\t': c = 't'; inc = 2; break; default: inc = 6; break; } t = Realloc(t, tlen + inc); if (inc == 2) { *(t + tlen - 1) = '\\'; *(t + tlen) = c; } else { sprintf(t, "\\u%04x", u); } tlen += inc; } else { t = Realloc(t, tlen + consumed); memcpy(t + tlen - 1, s, consumed); tlen += consumed; } s += consumed; } *(t + tlen - 1) = '\0'; return t; } /* Read resources from a file. */ int read_resource_file(const char *filename, Boolean fatal) { return read_resource_filex(filename, fatal, parse_xrm); } /* Screen globals. */ static int cw = 7; int *char_width = &cw; static int ch = 7; int *char_height = &ch; Boolean visible_control = False; Boolean flipped = False; /* Replacements for functions in popups.c. */ #include Boolean error_popup_visible = False; static char vmsgbuf[4096]; /* Pop up an error dialog. */ void popup_an_error(const char *fmt, ...) { va_list args; char *s; int sl; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); /* * Multi-line messages are fine for X pop-ups, but they're no fun for * text applications. */ s = vmsgbuf; while ((s = strchr(s, '\n')) != NULL) { *s++ = ' '; } while ((sl = strlen(vmsgbuf)) > 0 && vmsgbuf[sl-1] == ' ') { vmsgbuf[--sl] = '\0'; } if (sms_redirect()) { sms_error(vmsgbuf); return; } else { #if defined(C3270) || defined(WC3270) /*[*/ screen_suspend(); any_error_output = True; #endif /*]*/ (void) fprintf(stderr, "%s\n", vmsgbuf); macro_output = True; } } /* Pop up an error dialog, based on an error number. */ void popup_an_errno(int errn, const char *fmt, ...) { va_list args; char *s; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); s = NewString(vmsgbuf); if (errn > 0) popup_an_error("%s:\n%s", s, strerror(errn)); else popup_an_error("%s", s); Free(s); } void action_output(const char *fmt, ...) { va_list args; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); if (sms_redirect()) { sms_info("%s", vmsgbuf); return; } else { FILE *aout; #if defined(C3270) /*[*/ screen_suspend(); aout = start_pager(); any_error_output = True; #else /*][*/ aout = stdout; #endif /*]*/ #if defined(WC3270) /*[*/ pager_output(vmsgbuf); #else /*][*/ (void) fprintf(aout, "%s\n", vmsgbuf); #endif /*]*/ macro_output = True; } } ibm-3270-3.3.10ga4/c3270/icmd.c0000644000175000017500000003256611254565674015027 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * icmd.c * A curses-based 3270 Terminal Emulator * Interactive commands */ #include "globals.h" #include "charsetc.h" #include "icmdc.h" #include "utf8c.h" #if defined(_WIN32) /*[*/ #include #endif /*]*/ /* Support functions for interactive commands. */ /* * Get a buffer full of input. * Trims white space in the result. * Returns NULL if there is an input error or if the input is 'quit'. */ static char * get_input(char *buf, int size) { int sl; char *s; fflush(stdout); /* Get the raw input. */ if (fgets(buf, size, stdin) == NULL) return NULL; /* Trim trailing white space. */ sl = strlen(buf); while (sl && isspace(buf[sl - 1])) buf[--sl] = '\0'; /* Trim leading white space. */ s = buf; while (*s && isspace(*s)) { s++; sl--; } if (s != buf) memmove(buf, s, sl + 1); /* Check for 'quit'. */ if (!strcasecmp(buf, "quit")) return NULL; return buf; } /* Get a yes, no or quit. Returns 0 for no, 1 for yes, -1 for quit or error. */ static int getyn(int defval) { char buf[64]; for (;;) { if (get_input(buf, sizeof(buf)) == NULL) return -1; if (!buf[0]) return defval; if (!strncasecmp(buf, "yes", strlen(buf))) return 1; else if (!strncasecmp(buf, "no", strlen(buf))) return 0; else { printf("Please answer 'yes', 'no' or 'quit': "); } } } /* * Get a numeric value. Returns the number for good input, -1 for quit or * error. */ static int getnum(int defval) { char buf[64]; unsigned long u; char *ptr; for (;;) { if (get_input(buf, sizeof(buf)) == NULL) return -1; if (!buf[0]) return defval; u = strtoul(buf, &ptr, 10); if (*ptr == '\0') return (int)u; printf("Please enter a number or 'quit': "); } } /* * Interactive file transfer command. * Called from Transfer_action. Returns a new set of params. * Returns 0 for success, -1 for failure. */ int interactive_transfer(String **params, Cardinal *num_params) { char inbuf[1024]; static String kw_ret[14]; static char kw[13][1024]; char hostfile[1024]; char localfile[1024]; int kw_ix = 0; int receive = 1; int tso = 1; int ascii = 1; int remap = 1; int n; enum { CR_REMOVE, CR_ADD, CR_KEEP } cr_mode = CR_REMOVE; enum { FE_KEEP, FE_REPLACE, FE_APPEND } fe_mode = FE_KEEP; enum { RF_NONE, RF_FIXED, RF_VARIABLE, RF_UNDEFINED } rf_mode = RF_NONE; enum { AT_NONE, AT_TRACKS, AT_CYLINDERS, AT_AVBLOCK } at_mode = AT_NONE; int lrecl = 0; int primary_space = 0, secondary_space = 0; int i; printf("\n\ File Transfer\n\ \n\ Type 'quit' at any prompt to abort this dialog.\n\ \n\ Note: In order to initiate a file transfer, the 3270 cursor must be\n\ positioned on an input field that can accept the IND$FILE command, i.e.,\n\ at VM/CMS or TSO command prompt.\n"); printf("\nContinue? (y/n) [y] "); if (getyn(1) <= 0) return -1; printf(" 'send' means copy a file from this workstation to the host.\n"); printf(" 'receive' means copy a file from the host to this workstation.\n"); for (;;) { printf("Direction (send/receive) [receive]: "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0] || !strncasecmp(inbuf, "receive", strlen(inbuf))) break; if (!strncasecmp(inbuf, "send", strlen(inbuf))) { strcpy(kw[kw_ix++], "Direction=send"); receive = 0; break; } } for (;;) { printf("Name of source file on %s: ", receive? "the host": "this workstation"); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (inbuf[0]) { if (receive) { sprintf(kw[kw_ix++], "HostFile=%s", inbuf); strcpy(hostfile, inbuf); } else { sprintf(kw[kw_ix++], "LocalFile=%s", inbuf); strcpy(localfile, inbuf); } break; } } for (;;) { printf("Name of destination file on %s: ", receive? "this workstation": "the host"); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (inbuf[0]) { if (receive) { sprintf(kw[kw_ix++], "LocalFile=%s", inbuf); strcpy(localfile, inbuf); } else { sprintf(kw[kw_ix++], "HostFile=%s", inbuf); strcpy(hostfile, inbuf); } break; } } for (;;) { printf("Host type: (tso/vm) [tso] "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0] || !strncasecmp(inbuf, "tso", strlen(inbuf))) break; if (!strncasecmp(inbuf, "vm", strlen(inbuf))) { strcpy(kw[kw_ix++], "Host=vm"); tso = 0; break; } } printf("\ An 'ascii' transfer does automatic translation between EBCDIC on the host and\n\ ASCII on the workstation.\n\ A 'binary' transfer does no data translation.\n"); for (;;) { printf("Transfer mode: (ascii/binary) [ascii] "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0] || !strncasecmp(inbuf, "ascii", strlen(inbuf))) break; if (!strncasecmp(inbuf, "binary", strlen(inbuf))) { strcpy(kw[kw_ix++], "Mode=binary"); ascii = 0; break; } } if (ascii) { printf("\ For ASCII transfers, carriage return (CR) characters can be handled specially.\n\ 'remove' means that CRs will be removed during the transfer.\n\ 'add' means that CRs will be added to each record during the transfer.\n\ 'keep' means that no special action is taken with CRs.\n"); for (;;) { printf("CR handling: (remove/add/keep) [remove] "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0] || !strncasecmp(inbuf, "remove", strlen(inbuf))) break; if (!strncasecmp(inbuf, "add", strlen(inbuf))) { strcpy(kw[kw_ix++], "Cr=add"); cr_mode = CR_ADD; break; } if (!strncasecmp(inbuf, "keep", strlen(inbuf))) { strcpy(kw[kw_ix++], "Cr=keep"); cr_mode = CR_KEEP; break; } } printf("\ For ASCII transfers, " #if defined(WC3270) /*[*/ "wc3270" #else /*][*/ "c3270" #endif /*]*/ " can either remap the text to ensure as\n\ accurate a translation between " #if defined(WC3270) /*[*/ "Windows code page %d" #else /*][*/ "%s" #endif /*]*/ " and EBCDIC code\n\ page %s as possible, or it can transfer text as-is and leave all\n\ translation to the IND$FILE program on the host.\n\ 'yes' means that text will be translated.\n\ 'no' means that text will be transferred as-is.\n", #if defined(WC3270) /*[*/ GetACP(), #else /*][*/ locale_codeset, #endif /*]*/ get_host_codepage()); for (;;) { printf("Remap character set: (yes/no) [yes] "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0] || !strncasecmp(inbuf, "yes", strlen(inbuf))) break; if (!strncasecmp(inbuf, "no", strlen(inbuf))) { strcpy(kw[kw_ix++], "Remap=no"); remap = 0; break; } } } if (receive) { printf("\ If the destination file exists, you can choose to keep it (and abort the\n\ transfer), replace it, or append the source file to it.\n"); for (;;) { printf("Action if destination file exists: " "(keep/replace/append) [keep] "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0] || !strncasecmp(inbuf, "keep", strlen(inbuf))) break; if (!strncasecmp(inbuf, "replace", strlen(inbuf))) { strcpy(kw[kw_ix++], "Exist=replace"); fe_mode = FE_REPLACE; break; } if (!strncasecmp(inbuf, "append", strlen(inbuf))) { strcpy(kw[kw_ix++], "Exist=append"); fe_mode = FE_APPEND; break; } } } if (!receive) { for (;;) { printf("[optional] Destinaton file record format (fixed/variable/undefined): "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0]) break; if (!strncasecmp(inbuf, "fixed", strlen(inbuf))) { sprintf(kw[kw_ix++], "Recfm=fixed"); rf_mode = RF_FIXED; break; } if (!strncasecmp(inbuf, "variable", strlen(inbuf))) { sprintf(kw[kw_ix++], "Recfm=variable"); rf_mode = RF_VARIABLE; break; } if (!strncasecmp(inbuf, "undefined", strlen(inbuf))) { sprintf(kw[kw_ix++], "Recfm=undefined"); rf_mode = RF_UNDEFINED; break; } } printf("[optional] Destination file logical record length: "); n = getnum(0); if (n < 0) return -1; if (n > 0) { sprintf(kw[kw_ix++], "Lrecl=%d", n); lrecl = n; } if (tso) { printf("[optional] Destination file block size: "); n = getnum(0); if (n < 0) return -1; if (n > 0) sprintf(kw[kw_ix++], "Blksize=%d", n); for (;;) { printf("[optional] Destination file allocation type (tracks/cylinders/avblock): "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0]) break; if (!strncasecmp(inbuf, "tracks", strlen(inbuf))) { strcpy(kw[kw_ix++], "Allocation=tracks"); at_mode = AT_TRACKS; break; } if (!strncasecmp(inbuf, "cylinders", strlen(inbuf))) { strcpy(kw[kw_ix++], "Allocation=cylinders"); at_mode = AT_CYLINDERS; break; } if (!strncasecmp(inbuf, "avblock", strlen(inbuf))) { strcpy(kw[kw_ix++], "Allocation=avblock"); at_mode = AT_AVBLOCK; break; } } printf("[optional] Destination file primary space: "); n = getnum(0); if (n < 0) return -1; if (n > 0) { sprintf(kw[kw_ix++], "PrimarySpace=%d", n); primary_space = n; } printf("[optional] Destination file secondary space: "); n = getnum(0); if (n < 0) return -1; if (n > 0) { sprintf(kw[kw_ix++], "SecondarySpace=%d", n); secondary_space = n; } } } printf("\nFile Transfer Summary:\n"); if (receive) { printf(" Source file on Host: %s\n", hostfile); printf(" Destination file on Workstation: %s\n", localfile); } else { printf(" Source file on workstation: %s\n", localfile); printf(" Destination file on Host: %s\n", hostfile); } printf(" Transfer mode: %s", ascii? "ASCII": "Binary"); if (ascii) { switch (cr_mode) { case CR_REMOVE: printf(", remove CRs"); break; case CR_ADD: printf(", add CRs"); break; case CR_KEEP: break; } if (remap) printf(", remap text\n"); else printf(", don't remap text\n"); } else printf("\n"); if (receive) { printf(" If destination file exists, "); switch (fe_mode) { case FE_KEEP: printf("abort the transfer\n"); break; case FE_REPLACE: printf("replace it\n"); break; case FE_APPEND: printf("append to it\n"); break; } } if (!receive && (rf_mode != RF_NONE || lrecl || primary_space || secondary_space)) { printf(" Destination file:\n"); switch (rf_mode) { case RF_NONE: break; case RF_FIXED: printf(" Record format: fixed\n"); break; case RF_VARIABLE: printf(" Record format: variable\n"); break; case RF_UNDEFINED: printf(" Record format: undefined\n"); break; } if (lrecl) printf(" Logical record length: %d\n", lrecl); if (primary_space || secondary_space) { printf(" Allocation:"); if (primary_space) printf(" primary %d", primary_space); if (secondary_space) printf(" secondary %d", secondary_space); switch (at_mode) { case AT_NONE: break; case AT_TRACKS: printf(" tracks"); break; case AT_CYLINDERS: printf(" cylinders"); break; case AT_AVBLOCK: printf(" avblock"); break; } printf("\n"); } } printf("\nContinue? (y/n) [y] "); if (getyn(1) <= 0) return -1; /* Let it go. */ #if defined(FT_DEBUG) /*[*/ printf("transfer"); #endif /*]*/ for (i = 0; i < kw_ix; i++) { kw_ret[i] = (String)kw[i]; #if defined(FT_DEBUG) /*[*/ if (strchr(kw_ret[i], ' ') != NULL) printf(" \"%s\"", kw_ret[i]); else printf(" %s", kw_ret[i]); #endif /*]*/ } #if defined(FT_DEBUG) /*[*/ printf("\n"); fflush(stdout); #endif /*]*/ kw_ret[i] = NULL; *params = kw_ret; *num_params = kw_ix; return 0; } ibm-3270-3.3.10ga4/c3270/tables.c0000644000175000017500000002171311254565704015347 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * tables.c * Translation tables between the three character sets: * EBCDIC * ASCII (ISO Latin-1) * Character Generator ("3270" font) */ #include "globals.h" #include "tablesc.h" const unsigned char asc2cg0[256] = { /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*20*/ 0x10, 0x19, 0x13, 0x2c, 0x1a, 0x2e, 0x30, 0x12, /*28*/ 0x0d, 0x0c, 0xbf, 0x35, 0x33, 0x31, 0x32, 0x14, /*30*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /*38*/ 0x28, 0x29, 0x34, 0xbe, 0x09, 0x11, 0x08, 0x18, /*40*/ 0x2d, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*48*/ 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, /*50*/ 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, /*58*/ 0xb7, 0xb8, 0xb9, 0x0a, 0x15, 0x0b, 0x3a, 0x2f, /*60*/ 0x3d, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /*68*/ 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, /*70*/ 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*78*/ 0x97, 0x98, 0x99, 0x0f, 0x16, 0x0e, 0x3b, 0x00, /*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*a0*/ 0x01, 0x6e, 0x1b, 0x1c, 0x1f, 0x1d, 0x17, 0x2b, /*a8*/ 0x3c, 0xd0, 0x6a, 0x6c, 0x36, 0x07, 0xd1, 0x37, /*b0*/ 0x38, 0xd6, 0x68, 0x69, 0x3e, 0x54, 0x1e, 0x39, /*b8*/ 0x3f, 0x67, 0x6b, 0x6d, 0x4b, 0x4c, 0x4d, 0x6f, /*c0*/ 0x60, 0x7a, 0x75, 0x65, 0x70, 0xbc, 0xba, 0xbd, /*c8*/ 0x61, 0x7b, 0x76, 0x71, 0x62, 0x7c, 0x77, 0x72, /*d0*/ 0xd7, 0x7f, 0x63, 0x7d, 0x78, 0x66, 0x73, 0x5b, /*d8*/ 0xbb, 0x64, 0x7e, 0x79, 0x74, 0x48, 0xd9, 0x2a, /*e0*/ 0x40, 0x5a, 0x55, 0x45, 0x50, 0x9c, 0x9a, 0x4f, /*e8*/ 0x41, 0x4a, 0x56, 0x51, 0x42, 0x5c, 0x57, 0x52, /*f0*/ 0xf7, 0x5f, 0x43, 0x5d, 0x58, 0x46, 0x53, 0x9d, /*f8*/ 0x9b, 0x44, 0x5e, 0x59, 0x4e, 0x49, 0xf9, 0x47 }; const unsigned char ebc2cg0[256] = { /*00*/ 0x00, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*08*/ 0xdf, 0xdf, 0xdf, 0xdf, 0x02, 0x03, 0x00, 0x00, /*10*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0x04, 0xdf, 0xdf, /*18*/ 0xdf, 0x05, 0xdf, 0xdf, 0x9f, 0xdf, 0x9e, 0xdf, /*20*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*28*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*30*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*38*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*40*/ 0x10, 0x01, 0x55, 0x50, 0x40, 0x5a, 0x45, 0x9c, /*48*/ 0x4f, 0x5f, 0x1b, 0x32, 0x09, 0x0d, 0x35, 0x16, /*50*/ 0x30, 0x4a, 0x56, 0x51, 0x41, 0x5c, 0x57, 0x52, /*58*/ 0x42, 0x2a, 0x19, 0x1a, 0xbf, 0x0c, 0xbe, 0x36, /*60*/ 0x31, 0x14, 0x75, 0x70, 0x60, 0x7a, 0x65, 0xbc, /*68*/ 0xbd, 0x7f, 0x17, 0x33, 0x2e, 0x2f, 0x08, 0x18, /*70*/ 0x9b, 0x7b, 0x76, 0x71, 0x61, 0x7c, 0x77, 0x72, /*78*/ 0x62, 0x3d, 0x34, 0x2c, 0x2d, 0x12, 0x11, 0x13, /*80*/ 0xbb, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /*88*/ 0x87, 0x88, 0x6c, 0x6d, 0xf7, 0x49, 0xf9, 0xd6, /*90*/ 0x38, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /*98*/ 0x90, 0x91, 0x6a, 0x6b, 0x9a, 0x3f, 0xba, 0x1f, /*a0*/ 0x54, 0x3b, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /*a8*/ 0x98, 0x99, 0x6e, 0x6f, 0xd7, 0x48, 0xd9, 0xd1, /*b0*/ 0x3a, 0x1c, 0x1d, 0x39, 0xd0, 0x2b, 0x1e, 0x4b, /*b8*/ 0x4c, 0x4d, 0x0a, 0x0b, 0x37, 0x3c, 0x3e, 0x5b, /*c0*/ 0x0f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*c8*/ 0xa7, 0xa8, 0x07, 0x58, 0x53, 0x43, 0x5d, 0x46, /*d0*/ 0x0e, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /*d8*/ 0xb0, 0xb1, 0x67, 0x59, 0x4e, 0x44, 0x5e, 0x47, /*e0*/ 0x15, 0x9d, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /*e8*/ 0xb8, 0xb9, 0x68, 0x78, 0x73, 0x63, 0x7d, 0x66, /*f0*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /*f8*/ 0x28, 0x29, 0x69, 0x79, 0x74, 0x64, 0x7e, 0x06 }; const unsigned char ebc2asc0[256] = { /*00*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*08*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*10*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*18*/ 0x20, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x3b, 0x20, /*20*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*28*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*30*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*38*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*40*/ 0x20, 0x20, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, /*48*/ 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /*50*/ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, /*58*/ 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0xac, /*60*/ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, /*68*/ 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /*70*/ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, /*78*/ 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /*80*/ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /*88*/ 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /*90*/ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /*98*/ 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /*a0*/ 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /*a8*/ 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, /*b0*/ 0x5e, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, /*b8*/ 0xbd, 0xbe, 0x5b, 0x5d, 0xaf, 0xa8, 0xb4, 0xd7, /*c0*/ 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /*c8*/ 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /*d0*/ 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /*d8*/ 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, /*e0*/ 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /*e8*/ 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /*f8*/ 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x20 }; const unsigned char asc2ebc0[256] = { /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*20*/ 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /*28*/ 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /*30*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /*38*/ 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /*40*/ 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /*48*/ 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /*50*/ 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /*58*/ 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /*60*/ 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /*68*/ 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*70*/ 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*78*/ 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x00, /*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*a0*/ 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /*a8*/ 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, /*b0*/ 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /*b8*/ 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /*c0*/ 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /*c8*/ 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /*d0*/ 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /*d8*/ 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /*e0*/ 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /*e8*/ 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /*f0*/ 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /*f8*/ 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf }; ibm-3270-3.3.10ga4/c3270/ctlr.h0000644000175000017500000000362711254565704015052 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ctlr.h * External declarations for ctlr.c data structures. */ extern int buffer_addr; /* buffer address */ extern int cursor_addr; /* cursor address */ extern struct ea *ea_buf; /* 3270 device buffer */ extern struct ea *aea_buf; /* alternate 3270 device buffer */ extern Boolean formatted; /* contains at least one field? */ extern Boolean is_altbuffer; /* in alternate-buffer mode? */ ibm-3270-3.3.10ga4/c3270/xioc.h0000644000175000017500000000350711254565704015045 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xioc.h * Global declarations for xio.c. */ extern void Quit_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void x3270_exit(int n); extern void x_add_input(int net_sock); extern void x_except_off(void); extern void x_except_on(int net_sock); extern void x_remove_input(void); ibm-3270-3.3.10ga4/c3270/ansi.c0000644000175000017500000016035711254565704015037 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ansi.c * ANSI terminal emulation. */ #include "globals.h" #if defined(X3270_ANSI) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #endif /*]*/ #include "appres.h" #include "ctlr.h" #include "3270ds.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "hostc.h" #include "screenc.h" #include "scrollc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #define MB_MAX 16 #define PE_MAX 1024 #define SC 1 /* save cursor position */ #define RC 2 /* restore cursor position */ #define NL 3 /* new line */ #define UP 4 /* cursor up */ #define E2 5 /* second level of ESC processing */ #define rS 6 /* reset */ #define IC 7 /* insert chars */ #define DN 8 /* cursor down */ #define RT 9 /* cursor right */ #define LT 10 /* cursor left */ #define CM 11 /* cursor motion */ #define ED 12 /* erase in display */ #define EL 13 /* erase in line */ #define IL 14 /* insert lines */ #define DL 15 /* delete lines */ #define DC 16 /* delete characters */ #define SG 17 /* set graphic rendition */ #define BL 18 /* ring bell */ #define NP 19 /* new page */ #define BS 20 /* backspace */ #define CR 21 /* carriage return */ #define LF 22 /* line feed */ #define HT 23 /* horizontal tab */ #define E1 24 /* first level of ESC processing */ #define Xx 25 /* undefined control character (nop) */ #define Pc 26 /* printing character */ #define Sc 27 /* semicolon (after ESC [) */ #define Dg 28 /* digit (after ESC [ or ESC [ ?) */ #define RI 29 /* reverse index */ #define DA 30 /* send device attributes */ #define SM 31 /* set mode */ #define RM 32 /* reset mode */ #define DO 33 /* return terminal ID (obsolete) */ #define SR 34 /* device status report */ #define CS 35 /* character set designate */ #define E3 36 /* third level of ESC processing */ #define DS 37 /* DEC private set */ #define DR 38 /* DEC private reset */ #define DV 39 /* DEC private save */ #define DT 40 /* DEC private restore */ #define SS 41 /* set scrolling region */ #define TM 42 /* text mode (ESC ]) */ #define T2 43 /* semicolon (after ESC ]) */ #define TX 44 /* text parameter (after ESC ] n ;) */ #define TB 45 /* text parameter done (ESC ] n ; xxx BEL) */ #define TS 46 /* tab set */ #define TC 47 /* tab clear */ #define C2 48 /* character set designate (finish) */ #define G0 49 /* select G0 character set */ #define G1 50 /* select G1 character set */ #define G2 51 /* select G2 character set */ #define G3 52 /* select G3 character set */ #define S2 53 /* select G2 for next character */ #define S3 54 /* select G3 for next character */ #define MB 55 /* process multi-byte character */ static enum state { DATA = 0, ESC = 1, CSDES = 2, N1 = 3, DECP = 4, TEXT = 5, TEXT2 = 6, MBPEND = 7 } state = DATA; static enum state ansi_data_mode(int, int); static enum state dec_save_cursor(int, int); static enum state dec_restore_cursor(int, int); static enum state ansi_newline(int, int); static enum state ansi_cursor_up(int, int); static enum state ansi_esc2(int, int); static enum state ansi_reset(int, int); static enum state ansi_insert_chars(int, int); static enum state ansi_cursor_down(int, int); static enum state ansi_cursor_right(int, int); static enum state ansi_cursor_left(int, int); static enum state ansi_cursor_motion(int, int); static enum state ansi_erase_in_display(int, int); static enum state ansi_erase_in_line(int, int); static enum state ansi_insert_lines(int, int); static enum state ansi_delete_lines(int, int); static enum state ansi_delete_chars(int, int); static enum state ansi_sgr(int, int); static enum state ansi_bell(int, int); static enum state ansi_newpage(int, int); static enum state ansi_backspace(int, int); static enum state ansi_cr(int, int); static enum state ansi_lf(int, int); static enum state ansi_htab(int, int); static enum state ansi_escape(int, int); static enum state ansi_nop(int, int); static enum state ansi_printing(int, int); static enum state ansi_semicolon(int, int); static enum state ansi_digit(int, int); static enum state ansi_reverse_index(int, int); static enum state ansi_send_attributes(int, int); static enum state ansi_set_mode(int, int); static enum state ansi_reset_mode(int, int); static enum state dec_return_terminal_id(int, int); static enum state ansi_status_report(int, int); static enum state ansi_cs_designate(int, int); static enum state ansi_esc3(int, int); static enum state dec_set(int, int); static enum state dec_reset(int, int); static enum state dec_save(int, int); static enum state dec_restore(int, int); static enum state dec_scrolling_region(int, int); static enum state xterm_text_mode(int, int); static enum state xterm_text_semicolon(int, int); static enum state xterm_text(int, int); static enum state xterm_text_do(int, int); static enum state ansi_htab_set(int, int); static enum state ansi_htab_clear(int, int); static enum state ansi_cs_designate2(int, int); static enum state ansi_select_g0(int, int); static enum state ansi_select_g1(int, int); static enum state ansi_select_g2(int, int); static enum state ansi_select_g3(int, int); static enum state ansi_one_g2(int, int); static enum state ansi_one_g3(int, int); static enum state ansi_multibyte(int, int); typedef enum state (*afn_t)(int, int); static afn_t ansi_fn[] = { /* 0 */ &ansi_data_mode, /* 1 */ &dec_save_cursor, /* 2 */ &dec_restore_cursor, /* 3 */ &ansi_newline, /* 4 */ &ansi_cursor_up, /* 5 */ &ansi_esc2, /* 6 */ &ansi_reset, /* 7 */ &ansi_insert_chars, /* 8 */ &ansi_cursor_down, /* 9 */ &ansi_cursor_right, /* 10 */ &ansi_cursor_left, /* 11 */ &ansi_cursor_motion, /* 12 */ &ansi_erase_in_display, /* 13 */ &ansi_erase_in_line, /* 14 */ &ansi_insert_lines, /* 15 */ &ansi_delete_lines, /* 16 */ &ansi_delete_chars, /* 17 */ &ansi_sgr, /* 18 */ &ansi_bell, /* 19 */ &ansi_newpage, /* 20 */ &ansi_backspace, /* 21 */ &ansi_cr, /* 22 */ &ansi_lf, /* 23 */ &ansi_htab, /* 24 */ &ansi_escape, /* 25 */ &ansi_nop, /* 26 */ &ansi_printing, /* 27 */ &ansi_semicolon, /* 28 */ &ansi_digit, /* 29 */ &ansi_reverse_index, /* 30 */ &ansi_send_attributes, /* 31 */ &ansi_set_mode, /* 32 */ &ansi_reset_mode, /* 33 */ &dec_return_terminal_id, /* 34 */ &ansi_status_report, /* 35 */ &ansi_cs_designate, /* 36 */ &ansi_esc3, /* 37 */ &dec_set, /* 38 */ &dec_reset, /* 39 */ &dec_save, /* 40 */ &dec_restore, /* 41 */ &dec_scrolling_region, /* 42 */ &xterm_text_mode, /* 43 */ &xterm_text_semicolon, /* 44 */ &xterm_text, /* 45 */ &xterm_text_do, /* 46 */ &ansi_htab_set, /* 47 */ &ansi_htab_clear, /* 48 */ &ansi_cs_designate2, /* 49 */ &ansi_select_g0, /* 50 */ &ansi_select_g1, /* 51 */ &ansi_select_g2, /* 52 */ &ansi_select_g3, /* 53 */ &ansi_one_g2, /* 54 */ &ansi_one_g3, /* 55 */ &ansi_multibyte, }; static unsigned char st[8][256] = { /* * State table for base processing (state == DATA) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,BL,BS,HT,LF,LF,NP,CR,G1,G0, /* 10 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,E1,Xx,Xx,Xx,Xx, /* 20 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 30 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 40 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 50 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 60 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 70 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Xx, /* 80 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx, /* 90 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx, /* a0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* b0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* c0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* d0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* e0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* f0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc }, /* * State table for ESC processing (state == ESC) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0,CS,CS,CS,CS, 0, 0, 0, 0, /* 30 */ 0, 0, 0, 0, 0, 0, 0,SC,RC, 0, 0, 0, 0, 0, 0, 0, /* 40 */ 0, 0, 0, 0, 0,NL, 0, 0,TS, 0, 0, 0, 0,RI,S2,S3, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,E2, 0,TM, 0, 0, /* 60 */ 0, 0, 0,rS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,G2,G3, /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC ()*+ C processing (state == CSDES) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ C2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 40 */ 0,C2,C2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC [ processing (state == N1) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg, 0,Sc, 0, 0, 0,E3, /* 40 */ IC,UP,DN,RT,LT, 0, 0, 0,CM, 0,ED,EL,IL,DL, 0, 0, /* 50 */ DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0,DA, 0, 0,CM,TC,SM, 0, 0, 0,RM,SG,SR, 0, /* 70 */ 0, 0,SS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC [ ? processing (state == DECP) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg, 0, 0, 0, 0, 0, 0, /* 40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0, 0, 0, 0, 0, 0,DS, 0, 0, 0,DR, 0, 0, 0, /* 70 */ 0, 0,DT,DV, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC ] processing (state == TEXT) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg, 0,T2, 0, 0, 0, 0, /* 40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC ] n ; processing (state == TEXT2) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0,TB, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 30 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 40 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 50 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 60 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 70 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,Xx, /* 80 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 90 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* a0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* b0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* c0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* d0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* e0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* f0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX }, /* * State table for multi-byte characters (state == MBPEND) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 10 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 20 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 30 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 40 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 50 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 60 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 70 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 80 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 90 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* a0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* b0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* c0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* d0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* e0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* f0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB }, }; /* Character sets. */ #define CS_G0 0 #define CS_G1 1 #define CS_G2 2 #define CS_G3 3 /* Character set designations. */ #define CSD_LD 0 #define CSD_UK 1 #define CSD_US 2 static int saved_cursor = 0; #define NN 20 static int n[NN], nx = 0; #define NT 256 static char text[NT + 1]; static int tx = 0; static int ansi_ch; static unsigned char gr = 0; static unsigned char saved_gr = 0; static unsigned char fg = 0; static unsigned char saved_fg = 0; static unsigned char bg = 0; static unsigned char saved_bg = 0; static int cset = CS_G0; static int saved_cset = CS_G0; static int csd[4] = { CSD_US, CSD_US, CSD_US, CSD_US }; static int saved_csd[4] = { CSD_US, CSD_US, CSD_US, CSD_US }; static int once_cset = -1; static int insert_mode = 0; static int auto_newline_mode = 0; static int appl_cursor = 0; static int saved_appl_cursor = 0; static int wraparound_mode = 1; static int saved_wraparound_mode = 1; static int rev_wraparound_mode = 0; static int saved_rev_wraparound_mode = 0; static int allow_wide_mode = 0; static int saved_allow_wide_mode = 0; static int wide_mode = 0; static int saved_wide_mode = 0; static Boolean saved_altbuffer = False; static int scroll_top = -1; static int scroll_bottom = -1; static unsigned char *tabs = (unsigned char *) NULL; static char gnnames[] = "()*+"; static char csnames[] = "0AB"; static int cs_to_change; static int pmi = 0; static char pending_mbs[MB_MAX]; static int pe = 0; static unsigned char ped[PE_MAX]; static Boolean held_wrap = False; static void ansi_scroll(void); static enum state ansi_data_mode(int ig1 _is_unused, int ig2 _is_unused) { return DATA; } static enum state dec_save_cursor(int ig1 _is_unused, int ig2 _is_unused) { int i; saved_cursor = cursor_addr; saved_cset = cset; for (i = 0; i < 4; i++) saved_csd[i] = csd[i]; saved_fg = fg; saved_bg = bg; saved_gr = gr; return DATA; } static enum state dec_restore_cursor(int ig1 _is_unused, int ig2 _is_unused) { int i; cset = saved_cset; for (i = 0; i < 4; i++) csd[i] = saved_csd[i]; fg = saved_fg; bg = saved_bg; gr = saved_gr; cursor_move(saved_cursor); held_wrap = False; return DATA; } static enum state ansi_newline(int ig1 _is_unused, int ig2 _is_unused) { int nc; cursor_move(cursor_addr - (cursor_addr % COLS)); nc = cursor_addr + COLS; if (nc < scroll_bottom * COLS) cursor_move(nc); else ansi_scroll(); held_wrap = False; return DATA; } static enum state ansi_cursor_up(int nn, int ig2 _is_unused) { int rr; if (nn < 1) nn = 1; rr = cursor_addr / COLS; if (rr - nn < 0) cursor_move(cursor_addr % COLS); else cursor_move(cursor_addr - (nn * COLS)); held_wrap = False; return DATA; } static enum state ansi_esc2(int ig1 _is_unused, int ig2 _is_unused) { register int i; for (i = 0; i < NN; i++) n[i] = 0; nx = 0; return N1; } static enum state ansi_reset(int ig1 _is_unused, int ig2 _is_unused) { int i; static Boolean first = True; gr = 0; saved_gr = 0; fg = 0; saved_fg = 0; bg = 0; saved_bg = 0; cset = CS_G0; saved_cset = CS_G0; csd[0] = csd[1] = csd[2] = csd[3] = CSD_US; saved_csd[0] = saved_csd[1] = saved_csd[2] = saved_csd[3] = CSD_US; once_cset = -1; saved_cursor = 0; insert_mode = 0; auto_newline_mode = 0; appl_cursor = 0; saved_appl_cursor = 0; wraparound_mode = 1; saved_wraparound_mode = 1; rev_wraparound_mode = 0; saved_rev_wraparound_mode = 0; allow_wide_mode = 0; saved_allow_wide_mode = 0; wide_mode = 0; allow_wide_mode = 0; saved_altbuffer = False; scroll_top = 1; scroll_bottom = ROWS; Replace(tabs, (unsigned char *)Malloc((COLS+7)/8)); for (i = 0; i < (COLS+7)/8; i++) tabs[i] = 0x01; held_wrap = False; if (!first) { ctlr_altbuffer(True); ctlr_aclear(0, ROWS * COLS, 1); ctlr_altbuffer(False); ctlr_clear(False); screen_80(); } first = False; pmi = 0; return DATA; } static enum state ansi_insert_chars(int nn, int ig2 _is_unused) { int cc = cursor_addr % COLS; /* current col */ int mc = COLS - cc; /* max chars that can be inserted */ int ns; /* chars that are shifting */ if (nn < 1) nn = 1; if (nn > mc) nn = mc; /* Move the surviving chars right */ ns = mc - nn; if (ns) ctlr_bcopy(cursor_addr, cursor_addr + nn, ns, 1); /* Clear the middle of the line */ ctlr_aclear(cursor_addr, nn, 1); return DATA; } static enum state ansi_cursor_down(int nn, int ig2 _is_unused) { int rr; if (nn < 1) nn = 1; rr = cursor_addr / COLS; if (rr + nn >= ROWS) cursor_move((ROWS-1)*COLS + (cursor_addr%COLS)); else cursor_move(cursor_addr + (nn * COLS)); held_wrap = False; return DATA; } static enum state ansi_cursor_right(int nn, int ig2 _is_unused) { int cc; if (nn < 1) nn = 1; cc = cursor_addr % COLS; if (cc == COLS-1) return DATA; if (cc + nn >= COLS) nn = COLS - 1 - cc; cursor_move(cursor_addr + nn); held_wrap = False; return DATA; } static enum state ansi_cursor_left(int nn, int ig2 _is_unused) { int cc; if (held_wrap) { held_wrap = False; return DATA; } if (nn < 1) nn = 1; cc = cursor_addr % COLS; if (!cc) return DATA; if (nn > cc) nn = cc; cursor_move(cursor_addr - nn); return DATA; } static enum state ansi_cursor_motion(int n1, int n2) { if (n1 < 1) n1 = 1; if (n1 > ROWS) n1 = ROWS; if (n2 < 1) n2 = 1; if (n2 > COLS) n2 = COLS; cursor_move((n1 - 1) * COLS + (n2 - 1)); held_wrap = False; return DATA; } static enum state ansi_erase_in_display(int nn, int ig2 _is_unused) { switch (nn) { case 0: /* below */ ctlr_aclear(cursor_addr, (ROWS * COLS) - cursor_addr, 1); break; case 1: /* above */ ctlr_aclear(0, cursor_addr + 1, 1); break; case 2: /* all (without moving cursor) */ if (cursor_addr == 0 && !is_altbuffer) scroll_save(ROWS, True); ctlr_aclear(0, ROWS * COLS, 1); break; } return DATA; } static enum state ansi_erase_in_line(int nn, int ig2 _is_unused) { int nc = cursor_addr % COLS; switch (nn) { case 0: /* to right */ ctlr_aclear(cursor_addr, COLS - nc, 1); break; case 1: /* to left */ ctlr_aclear(cursor_addr - nc, nc+1, 1); break; case 2: /* all */ ctlr_aclear(cursor_addr - nc, COLS, 1); break; } return DATA; } static enum state ansi_insert_lines(int nn, int ig2 _is_unused) { int rr = cursor_addr / COLS; /* current row */ int mr = scroll_bottom - rr; /* rows left at and below this one */ int ns; /* rows that are shifting */ /* If outside of the scrolling region, do nothing */ if (rr < scroll_top - 1 || rr >= scroll_bottom) return DATA; if (nn < 1) nn = 1; if (nn > mr) nn = mr; /* Move the victims down */ ns = mr - nn; if (ns) ctlr_bcopy(rr * COLS, (rr + nn) * COLS, ns * COLS, 1); /* Clear the middle of the screen */ ctlr_aclear(rr * COLS, nn * COLS, 1); return DATA; } static enum state ansi_delete_lines(int nn, int ig2 _is_unused) { int rr = cursor_addr / COLS; /* current row */ int mr = scroll_bottom - rr; /* max rows that can be deleted */ int ns; /* rows that are shifting */ /* If outside of the scrolling region, do nothing */ if (rr < scroll_top - 1 || rr >= scroll_bottom) return DATA; if (nn < 1) nn = 1; if (nn > mr) nn = mr; /* Move the surviving rows up */ ns = mr - nn; if (ns) ctlr_bcopy((rr + nn) * COLS, rr * COLS, ns * COLS, 1); /* Clear the rest of the screen */ ctlr_aclear((rr + ns) * COLS, nn * COLS, 1); return DATA; } static enum state ansi_delete_chars(int nn, int ig2 _is_unused) { int cc = cursor_addr % COLS; /* current col */ int mc = COLS - cc; /* max chars that can be deleted */ int ns; /* chars that are shifting */ if (nn < 1) nn = 1; if (nn > mc) nn = mc; /* Move the surviving chars left */ ns = mc - nn; if (ns) ctlr_bcopy(cursor_addr + nn, cursor_addr, ns, 1); /* Clear the end of the line */ ctlr_aclear(cursor_addr + ns, nn, 1); return DATA; } static enum state ansi_sgr(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 0: gr = 0; fg = 0; bg = 0; break; case 1: gr |= GR_INTENSIFY; break; case 4: gr |= GR_UNDERLINE; break; case 5: gr |= GR_BLINK; break; case 7: gr |= GR_REVERSE; break; case 30: fg = 0xf0; /* black */ break; case 31: fg = 0xf2; /* red */ break; case 32: fg = 0xf4; /* green */ break; case 33: fg = 0xf6; /* yellow */ break; case 34: fg = 0xf1; /* blue */ break; case 35: fg = 0xf3; /* magenta */ break; case 36: #if defined(WC3270) /*[*/ fg = 0xf6; /* turquoise */ #else /*][*/ fg = 0xfd; /* cyan */ #endif /*]*/ break; case 37: #if defined(WC3270) /*[*/ fg = 0xf7; /* white */ #else /*][*/ fg = 0xff; /* white */ #endif /*]*/ break; case 39: fg = 0; /* default */ break; case 40: bg = 0xf0; /* black */ break; case 41: bg = 0xf2; /* red */ break; case 42: bg = 0xf4; /* green */ break; case 43: bg = 0xf6; /* yellow */ break; case 44: bg = 0xf1; /* blue */ break; case 45: bg = 0xf3; /* magenta */ break; case 46: #if defined(WC3270) /*[*/ bg = 0xf6; /* turquoise */ #else /*][*/ bg = 0xfd; /* cyan */ #endif /*]*/ break; case 47: #if defined(WC3270) /*[*/ bg = 0xf7; /* white */ #else /*][*/ bg = 0xff; /* white */ #endif /*]*/ break; case 49: bg = 0; /* default */ break; } return DATA; } static enum state ansi_bell(int ig1 _is_unused, int ig2 _is_unused) { ring_bell(); return DATA; } static enum state ansi_newpage(int ig1 _is_unused, int ig2 _is_unused) { ctlr_clear(False); return DATA; } static enum state ansi_backspace(int ig1 _is_unused, int ig2 _is_unused) { if (held_wrap) { held_wrap = False; return DATA; } if (rev_wraparound_mode) { if (cursor_addr > (scroll_top - 1) * COLS) cursor_move(cursor_addr - 1); } else { if (cursor_addr % COLS) cursor_move(cursor_addr - 1); } return DATA; } static enum state ansi_cr(int ig1 _is_unused, int ig2 _is_unused) { if (cursor_addr % COLS) cursor_move(cursor_addr - (cursor_addr % COLS)); if (auto_newline_mode) (void) ansi_lf(0, 0); held_wrap = False; return DATA; } static enum state ansi_lf(int ig1 _is_unused, int ig2 _is_unused) { int nc = cursor_addr + COLS; held_wrap = False; /* If we're below the scrolling region, don't scroll. */ if ((cursor_addr / COLS) >= scroll_bottom) { if (nc < ROWS * COLS) cursor_move(nc); return DATA; } if (nc < scroll_bottom * COLS) cursor_move(nc); else ansi_scroll(); return DATA; } static enum state ansi_htab(int ig1 _is_unused, int ig2 _is_unused) { int col = cursor_addr % COLS; int i; held_wrap = False; if (col == COLS-1) return DATA; for (i = col+1; i < COLS-1; i++) if (tabs[i/8] & 1<<(i%8)) break; cursor_move(cursor_addr - col + i); return DATA; } static enum state ansi_escape(int ig1 _is_unused, int ig2 _is_unused) { return ESC; } static enum state ansi_nop(int ig1 _is_unused, int ig2 _is_unused) { return DATA; } #define PWRAP { \ nc = cursor_addr + 1; \ if (nc < scroll_bottom * COLS) \ cursor_move(nc); \ else { \ if (cursor_addr / COLS >= scroll_bottom) \ cursor_move(cursor_addr / COLS * COLS); \ else { \ ansi_scroll(); \ cursor_move(nc - COLS); \ } \ } \ } static enum state ansi_printing(int ig1 _is_unused, int ig2 _is_unused) { int nc; unsigned short ebc_ch; #if defined(X3270_DBCS) /*[*/ enum dbcs_state d; #endif /*]*/ if ((pmi == 0) && (ansi_ch & 0x80)) { char mbs[2]; int consumed; enum me_fail fail; unsigned long ucs4; mbs[0] = (char)ansi_ch; mbs[1] = '\0'; ucs4 = multibyte_to_unicode(mbs, 1, &consumed, &fail); if (ucs4 == 0) { switch (fail) { case ME_SHORT: /* Start munching multi-byte. */ pmi = 0; pending_mbs[pmi++] = (char)ansi_ch; return MBPEND; case ME_INVALID: default: /* Invalid multi-byte -> '?' */ ansi_ch = '?'; break; } } else { ansi_ch = ucs4; } } pmi = 0; /* Translate to EBCDIC to see if it's DBCS. */ ebc_ch = unicode_to_ebcdic(ansi_ch); if (ebc_ch & ~0xff) { #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif { ansi_ch = '?'; ebc_ch = asc2ebc0['?']; } } if (held_wrap) { PWRAP; held_wrap = False; } if (insert_mode) (void) ansi_insert_chars(1, 0); #if defined(X3270_DBCS) /*[*/ d = ctlr_dbcs_state(cursor_addr); #endif /*]*/ switch (csd[(once_cset != -1) ? once_cset : cset]) { case CSD_LD: /* line drawing "0" */ if (ansi_ch >= 0x5f && ansi_ch <= 0x7e) ctlr_add(cursor_addr, (unsigned char)(ansi_ch - 0x5f), CS_LINEDRAW); else if (ebc_ch & ~0xff) ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); else ctlr_add(cursor_addr, ebc_ch, CS_BASE); break; case CSD_UK: /* UK "A" */ if (ansi_ch == '#') ctlr_add(cursor_addr, 0x1e, CS_LINEDRAW); else if (ebc_ch & ~0xff) ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); else ctlr_add(cursor_addr, ebc_ch, CS_BASE); break; case CSD_US: /* US "B" */ #if !defined(X3270_DBCS) /*[*/ if (ebc_ch & ~0xff) ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); else ctlr_add(cursor_addr, ebc_ch, CS_BASE); #else /*][*/ if (ebc_ch & ~0xff) { /* Add a DBCS character to the buffer. */ if (!dbcs) { /* Not currently using a DBCS character set. */ ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); break; } /* Get past the last column. */ if ((cursor_addr % COLS) == (COLS-1)) { if (!wraparound_mode) return DATA; ctlr_add(cursor_addr, EBC_space, CS_BASE); ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); cursor_addr = cursor_addr + 1; d = ctlr_dbcs_state(cursor_addr); } /* Add the left half. */ ctlr_add(cursor_addr, (ebc_ch >> 8) & 0xff, CS_DBCS); ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); /* Handle unaligned DBCS overwrite. */ if (d == DBCS_RIGHT || d == DBCS_RIGHT_WRAP) { int xaddr; xaddr = cursor_addr; DEC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ea_buf[xaddr].db = DBCS_NONE; } /* Add the right half. */ INC_BA(cursor_addr); ctlr_add(cursor_addr, ebc_ch & 0xff, CS_DBCS); ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); /* Handle cursor wrap. */ if (wraparound_mode) { if (!((cursor_addr + 1) % COLS)) { held_wrap = True; } else { PWRAP; } } else { if ((cursor_addr % COLS) != (COLS - 1)) cursor_move(cursor_addr + 1); } (void) ctlr_dbcs_postprocess(); return DATA; } /* Add an SBCS character to the buffer. */ ctlr_add(cursor_addr, ebc_ch, CS_BASE); #endif /*]*/ break; } #if defined(X3270_DBCS) /*[*/ /* Handle conflicts with existing DBCS characters. */ if (d == DBCS_RIGHT || d == DBCS_RIGHT_WRAP) { int xaddr; xaddr = cursor_addr; DEC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ea_buf[xaddr].db = DBCS_NONE; ea_buf[cursor_addr].db = DBCS_NONE; (void) ctlr_dbcs_postprocess(); } if (d == DBCS_LEFT || d == DBCS_LEFT_WRAP) { int xaddr; xaddr = cursor_addr; INC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ea_buf[xaddr].db = DBCS_NONE; ea_buf[cursor_addr].db = DBCS_NONE; (void) ctlr_dbcs_postprocess(); } #endif /*]*/ once_cset = -1; ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); if (wraparound_mode) { /* * There is a fascinating behavior of xterm which we will * attempt to emulate here. When a character is printed in the * last column, the cursor sticks there, rather than wrapping * to the next line. Another printing character will put the * cursor in column 2 of the next line. One cursor-left * sequence won't budge it; two will. Saving and restoring * the cursor won't move the cursor, but will cancel all of * the above behaviors... * * In my opinion, very strange, but among other things, 'vi' * depends on it! */ if (!((cursor_addr + 1) % COLS)) { held_wrap = True; } else { PWRAP; } } else { if ((cursor_addr % COLS) != (COLS - 1)) cursor_move(cursor_addr + 1); } return DATA; } static enum state ansi_multibyte(int ig1, int ig2) { unsigned long ucs4; int consumed; enum me_fail fail; afn_t fn; if (pmi >= MB_MAX - 2) { /* String too long. */ pmi = 0; ansi_ch = '?'; return ansi_printing(ig1, ig2); } pending_mbs[pmi++] = (char)ansi_ch; pending_mbs[pmi] = '\0'; ucs4 = multibyte_to_unicode(pending_mbs, pmi, &consumed, &fail); if (ucs4 != 0) { /* Success! */ ansi_ch = ucs4; return ansi_printing(ig1, ig2); } if (fail == ME_SHORT) { /* Go get more. */ return MBPEND; } /* Failure. */ /* Replace the sequence with '?'. */ ucs4 = ansi_ch; /* save for later */ pmi = 0; ansi_ch = '?'; (void) ansi_printing(ig1, ig2); /* * Reprocess whatever we choked on (especially if it's a control * character). */ ansi_ch = ucs4; state = DATA; fn = ansi_fn[st[(int)DATA][ansi_ch]]; return (*fn)(n[0], n[1]); } static enum state ansi_semicolon(int ig1 _is_unused, int ig2 _is_unused) { if (nx >= NN) return DATA; nx++; return state; } static enum state ansi_digit(int ig1 _is_unused, int ig2 _is_unused) { n[nx] = (n[nx] * 10) + (ansi_ch - '0'); return state; } static enum state ansi_reverse_index(int ig1 _is_unused, int ig2 _is_unused) { int rr = cursor_addr / COLS; /* current row */ int np = (scroll_top - 1) - rr; /* number of rows in the scrolling region, above this line */ int ns; /* number of rows to scroll */ int nn = 1; /* number of rows to index */ held_wrap = False; /* If the cursor is above the scrolling region, do a simple margined cursor up. */ if (np < 0) { (void) ansi_cursor_up(nn, 0); return DATA; } /* Split the number of lines to scroll into ns */ if (nn > np) { ns = nn - np; nn = np; } else ns = 0; /* Move the cursor up without scrolling */ if (nn) (void) ansi_cursor_up(nn, 0); /* Insert lines at the top for backward scroll */ if (ns) (void) ansi_insert_lines(ns, 0); return DATA; } static enum state ansi_send_attributes(int nn, int ig2 _is_unused) { if (!nn) net_sends("\033[?1;2c"); return DATA; } static enum state dec_return_terminal_id(int ig1 _is_unused, int ig2 _is_unused) { return ansi_send_attributes(0, 0); } static enum state ansi_set_mode(int nn, int ig2 _is_unused) { switch (nn) { case 4: insert_mode = 1; break; case 20: auto_newline_mode = 1; break; } return DATA; } static enum state ansi_reset_mode(int nn, int ig2 _is_unused) { switch (nn) { case 4: insert_mode = 0; break; case 20: auto_newline_mode = 0; break; } return DATA; } static enum state ansi_status_report(int nn, int ig2 _is_unused) { static char cpr[11]; switch (nn) { case 5: net_sends("\033[0n"); break; case 6: (void) sprintf(cpr, "\033[%d;%dR", (cursor_addr/COLS) + 1, (cursor_addr%COLS) + 1); net_sends(cpr); break; } return DATA; } static enum state ansi_cs_designate(int ig1 _is_unused, int ig2 _is_unused) { cs_to_change = strchr(gnnames, ansi_ch) - gnnames; return CSDES; } static enum state ansi_cs_designate2(int ig1 _is_unused, int ig2 _is_unused) { csd[cs_to_change] = strchr(csnames, ansi_ch) - csnames; return DATA; } static enum state ansi_select_g0(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G0; return DATA; } static enum state ansi_select_g1(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G1; return DATA; } static enum state ansi_select_g2(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G2; return DATA; } static enum state ansi_select_g3(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G3; return DATA; } static enum state ansi_one_g2(int ig1 _is_unused, int ig2 _is_unused) { once_cset = CS_G2; return DATA; } static enum state ansi_one_g3(int ig1 _is_unused, int ig2 _is_unused) { once_cset = CS_G3; return DATA; } static enum state ansi_esc3(int ig1 _is_unused, int ig2 _is_unused) { return DECP; } static enum state dec_set(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* application cursor keys */ appl_cursor = 1; break; case 2: /* set G0-G3 */ csd[0] = csd[1] = csd[2] = csd[3] = CSD_US; break; case 3: /* 132-column mode */ if (allow_wide_mode) { wide_mode = 1; screen_132(); } break; case 7: /* wraparound mode */ wraparound_mode = 1; break; case 40: /* allow 80/132 switching */ allow_wide_mode = 1; break; case 45: /* reverse-wraparound mode */ rev_wraparound_mode = 1; break; case 47: /* alt buffer */ case 1049: ctlr_altbuffer(True); break; } return DATA; } static enum state dec_reset(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* normal cursor keys */ appl_cursor = 0; break; case 3: /* 132-column mode */ if (allow_wide_mode) { wide_mode = 0; screen_80(); } break; case 7: /* no wraparound mode */ wraparound_mode = 0; break; case 40: /* allow 80/132 switching */ allow_wide_mode = 0; break; case 45: /* no reverse-wraparound mode */ rev_wraparound_mode = 0; break; case 47: /* alt buffer */ case 1049: ctlr_altbuffer(False); break; } return DATA; } static enum state dec_save(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* application cursor keys */ saved_appl_cursor = appl_cursor; break; case 3: /* 132-column mode */ saved_wide_mode = wide_mode; break; case 7: /* wraparound mode */ saved_wraparound_mode = wraparound_mode; break; case 40: /* allow 80/132 switching */ saved_allow_wide_mode = allow_wide_mode; break; case 45: /* reverse-wraparound mode */ saved_rev_wraparound_mode = rev_wraparound_mode; break; case 47: /* alt buffer */ case 1049: saved_altbuffer = is_altbuffer; break; } return DATA; } static enum state dec_restore(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* application cursor keys */ appl_cursor = saved_appl_cursor; break; case 3: /* 132-column mode */ if (allow_wide_mode) { wide_mode = saved_wide_mode; if (wide_mode) screen_132(); else screen_80(); } break; case 7: /* wraparound mode */ wraparound_mode = saved_wraparound_mode; break; case 40: /* allow 80/132 switching */ allow_wide_mode = saved_allow_wide_mode; break; case 45: /* reverse-wraparound mode */ rev_wraparound_mode = saved_rev_wraparound_mode; break; case 47: /* alt buffer */ case 1049: /* alt buffer */ ctlr_altbuffer(saved_altbuffer); break; } return DATA; } static enum state dec_scrolling_region(int top, int bottom) { if (top < 1) top = 1; if (bottom > ROWS) bottom = ROWS; if (top <= bottom && (top > 1 || bottom < ROWS)) { scroll_top = top; scroll_bottom = bottom; cursor_move(0); } else { scroll_top = 1; scroll_bottom = ROWS; } return DATA; } static enum state xterm_text_mode(int ig1 _is_unused, int ig2 _is_unused) { nx = 0; n[0] = 0; return TEXT; } static enum state xterm_text_semicolon(int ig1 _is_unused, int ig2 _is_unused) { tx = 0; return TEXT2; } static enum state xterm_text(int ig1 _is_unused, int ig2 _is_unused) { if (tx < NT) text[tx++] = ansi_ch; return state; } static enum state xterm_text_do(int ig1 _is_unused, int ig2 _is_unused) { #if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ text[tx] = '\0'; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ switch (n[0]) { case 0: /* icon name and window title */ XtVaSetValues(toplevel, XtNiconName, text, NULL); XtVaSetValues(toplevel, XtNtitle, text, NULL); break; case 1: /* icon name */ XtVaSetValues(toplevel, XtNiconName, text, NULL); break; case 2: /* window_title */ XtVaSetValues(toplevel, XtNtitle, text, NULL); break; case 50: /* font */ screen_newfont(text, False, False); break; default: break; } #endif /*]*/ #if defined(WC3270) /*[*/ switch (n[0]) { case 0: /* icon name and window title */ case 2: /* window_title */ screen_title(text); break; default: break; } #endif /*]*/ return DATA; } static enum state ansi_htab_set(int ig1 _is_unused, int ig2 _is_unused) { register int col = cursor_addr % COLS; tabs[col/8] |= 1<<(col%8); return DATA; } static enum state ansi_htab_clear(int nn, int ig2 _is_unused) { register int col, i; switch (nn) { case 0: col = cursor_addr % COLS; tabs[col/8] &= ~(1<<(col%8)); break; case 3: for (i = 0; i < (COLS+7)/8; i++) tabs[i] = 0; break; } return DATA; } /* * Scroll the screen or the scrolling region. */ static void ansi_scroll(void) { held_wrap = False; /* Save the top line */ if (scroll_top == 1 && scroll_bottom == ROWS) { if (!is_altbuffer) scroll_save(1, False); ctlr_scroll(); return; } /* Scroll all but the last line up */ if (scroll_bottom > scroll_top) ctlr_bcopy(scroll_top * COLS, (scroll_top - 1) * COLS, (scroll_bottom - scroll_top) * COLS, 1); /* Clear the last line */ ctlr_aclear((scroll_bottom - 1) * COLS, COLS, 1); } /* Callback for when we enter ANSI mode. */ static void ansi_in3270(Boolean in3270) { if (!in3270) (void) ansi_reset(0, 0); } /* * External entry points */ void ansi_init(void) { register_schange(ST_3270_MODE, ansi_in3270); } void ansi_process(unsigned int c) { afn_t fn; c &= 0xff; ansi_ch = c; scroll_to_bottom(); #if defined(X3270_TRACE) /*[*/ if (toggled(SCREEN_TRACE)) trace_char((char)c); #endif /*]*/ fn = ansi_fn[st[(int)state][c]]; state = (*fn)(n[0], n[1]); /* Saving pending escape data. */ if (state == DATA) pe = 0; else if (pe < PE_MAX) ped[pe++] = c; } void ansi_send_up(void) { if (appl_cursor) net_sends("\033OA"); else net_sends("\033[A"); } void ansi_send_down(void) { if (appl_cursor) net_sends("\033OB"); else net_sends("\033[B"); } void ansi_send_right(void) { if (appl_cursor) net_sends("\033OC"); else net_sends("\033[C"); } void ansi_send_left(void) { if (appl_cursor) net_sends("\033OD"); else net_sends("\033[D"); } void ansi_send_home(void) { net_sends("\033[H"); } void ansi_send_clear(void) { net_sends("\033[2K"); } void ansi_send_pf(int nn) { static char fn_buf[6]; static int code[] = { /* * F1 through F12 are VT220 codes. (Note the discontinuity -- * \E[16~ is missing) */ 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 23, 24, /* * F13 through F20 are defined for xterm. */ 25, 26, 28, 29, 31, 32, 33, 34, /* * F21 through F24 are x3270 extensions. */ 35, 36, 37, 38 }; if (nn < 1 || (unsigned)nn > sizeof(code)/sizeof(code[0])) return; (void) sprintf(fn_buf, "\033[%d~", code[nn-1]); net_sends(fn_buf); } void ansi_send_pa(int nn) { static char fn_buf[4]; static char code[4] = { 'P', 'Q', 'R', 'S' }; if (nn < 1 || nn > 4) return; (void) sprintf(fn_buf, "\033O%c", code[nn-1]); net_sends(fn_buf); } void toggle_lineWrap(struct toggle *t _is_unused, enum toggle_type type _is_unused) { if (toggled(LINE_WRAP)) wraparound_mode = 1; else wraparound_mode = 0; } #if defined(X3270_TRACE) /*[*/ /* Emit an SGR command. */ static void emit_sgr(int mode) { space3270out((mode < 10)? 4: 5); *obptr++ = 0x1b; *obptr++ = '['; if (mode > 9) *obptr++ = '0' + (mode / 10); *obptr++ = '0' + (mode % 10); *obptr++ = 'm'; } /* Emit a DEC Private Mode command. */ static void emit_decpriv(int mode, char op) { space3270out((mode < 10)? 5: 6); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '?'; if (mode > 9) *obptr++ = '0' + (mode / 10); *obptr++ = '0' + (mode % 10); *obptr++ = op; } /* Emit a CUP (cursor position) command. */ static void emit_cup(int baddr) { if (baddr) { char cup_buf[11]; int sl; sl = sprintf(cup_buf, "\033[%d;%dH", (baddr / COLS) + 1, (baddr % COLS) + 1); space3270out(sl); strcpy((char *)obptr, cup_buf); obptr += sl; } else { space3270out(3); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = 'H'; } } /* Emit spaces or a CUP, whichever is shorter. */ static int ansi_dump_spaces(int spaces, int baddr) { if (spaces) { char cup_buf[11]; int sl; /* * Move the cursor, if it takes less space than * expanding the spaces. * It is possible to optimize this further with clever * CU[UDFB] sequences, but not (yet) worth the effort. */ sl = sprintf(cup_buf, "\033[%d;%dH", (baddr / COLS) + 1, (baddr % COLS) + 1); if (sl < spaces) { space3270out(sl); strcpy((char *)obptr, cup_buf); obptr += sl; } else { space3270out(spaces); while (spaces--) *obptr++ = ' '; } } return 0; } /* * Snap the provided screen buffer (primary or alternate). * This is (mostly) optimized to draw the minimum necessary, assuming a * blank screen. */ static void ansi_snap_one(struct ea *buf) { int baddr; int cur_gr = 0; int cur_fg = 0; int cur_bg = 0; int spaces = 0; static int uncolor_table[16] = { /* 0xf0 */ 0, /* 0xf1 */ 4, /* 0xf2 */ 1, /* 0xf3 */ 5, /* 0xf4 */ 2, /* 0xf5 */ 0, /* can't happen */ #if defined(WC3270) /*[*/ /* 0xf6 */ 6, #else /*][*/ /* 0xf6 */ 3, #endif /*]*/ #if defined(WC3270) /*[*/ /* 0xf7 */ 7, #else /*][*/ /* 0xf7 */ 0, /* can't happen */ #endif /*]*/ /* 0xf8 */ 0, /* can't happen */ /* 0xf9 */ 0, /* can't happen */ /* 0xfa */ 0, /* can't happen */ /* 0xfb */ 0, /* can't happen */ /* 0xfc */ 0, /* can't happen */ #if defined(WC3270) /*[*/ /* 0xfd */ 0, /* can't happen */ #else /*][*/ /* 0xfd */ 6, /* can't happen */ #endif /*]*/ /* 0xfe */ 0, /* can't happen */ #if defined(WC3270) /*[*/ /* 0xff */ 0, /* can't happen */ #else /*][*/ /* 0xff */ 7, /* can't happen */ #endif /*]*/ }; char mb[16]; int len; int xlen; int i; enum dbcs_state d; int c; int last_sgr = 0; #define EMIT_SGR(n) { emit_sgr(n); last_sgr = (n); } /* Draw what's on the screen. */ baddr = 0; do { int xgr = buf[baddr].gr; /* Set the attributes. */ if (xgr != cur_gr) { spaces = ansi_dump_spaces(spaces, baddr); if ((xgr ^ cur_gr) & cur_gr) { /* * Something turned off. Turn everything off, * then turn the remaining modes on below. */ EMIT_SGR(0); xgr = 0; } else { /* * Clear the bits in xgr that are already set * in cur_gr. Turn on the new modes. */ xgr &= ~cur_gr; } /* Turn on the attributes remaining in xgr. */ if (xgr & GR_INTENSIFY) EMIT_SGR(1); if (xgr & GR_UNDERLINE) EMIT_SGR(4); if (xgr & GR_BLINK) EMIT_SGR(5); if (xgr & GR_REVERSE) EMIT_SGR(7); cur_gr = buf[baddr].gr; } /* Set the colors. */ if (buf[baddr].fg != cur_fg) { spaces = ansi_dump_spaces(spaces, baddr); if (buf[baddr].fg) c = uncolor_table[buf[baddr].fg & 0x0f]; else c = 9; EMIT_SGR(30 + c); cur_fg = buf[baddr].fg; } if (buf[baddr].bg != cur_bg) { spaces = ansi_dump_spaces(spaces, baddr); if (buf[baddr].bg) c = uncolor_table[buf[baddr].bg & 0x0f]; else c = 9; EMIT_SGR(40 + c); cur_bg = buf[baddr].bg; } /* Expand the current character to multibyte. */ d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) { int xaddr = baddr; INC_BA(xaddr); len = ebcdic_to_multibyte(buf[baddr].cc << 8 | buf[xaddr].cc, mb, sizeof(mb)); } else if (IS_RIGHT(d)) { len = 0; } else { len = ebcdic_to_multibyte(buf[baddr].cc, mb, sizeof(mb)); } if (len > 0) len--; /* terminating NUL */ xlen = 0; for (i = 0; i < len; i++) { if ((mb[i] & 0xff) == 0xff) xlen++; } /* Optimize for white space. */ if (!cur_fg && !cur_bg && !cur_gr && ((len + xlen) == 1) && (mb[0] == ' ')) { spaces++; } else { if (spaces) spaces = ansi_dump_spaces(spaces, baddr); /* Emit the current character. */ space3270out(len + xlen); for (i = 0; i < len; i++) { if ((mb[i] & 0xff) == 0xff) *obptr++ = 0xff; *obptr++ = mb[i]; } } INC_BA(baddr); } while (baddr != 0); /* Remove any attributes we set above. */ if (last_sgr != 0) emit_sgr(0); } /* Snap the contents of the screen buffers in NVT mode. */ void ansi_snap(void) { /* * Note that ea_buf is the live buffer, and aea_buf is the other * buffer. So the task here is to draw the other buffer first, * then switch modes and draw the live one. */ if (is_altbuffer) { /* Draw the primary screen first. */ ansi_snap_one(aea_buf); emit_cup(0); /* Switch to the alternate. */ emit_decpriv(47, 'h'); /* Draw the secondary, and stay in alternate mode. */ ansi_snap_one(ea_buf); } else { int i; int any = 0; static struct ea zea = { 0, 0, 0, 0, 0, 0, 0, 0 }; /* See if aea_buf has anything in it. */ for (i = 0; i < ROWS * COLS; i++) { if (memcmp(&aea_buf[i], &zea, sizeof(struct ea))) { any = 1; break; } } if (any) { /* Switch to the alternate. */ emit_decpriv(47, 'h'); /* Draw the alternate screen. */ ansi_snap_one(aea_buf); emit_cup(0); /* Switch to the primary. */ emit_decpriv(47, 'l'); } /* Draw the primary, and stay in primary mode. */ ansi_snap_one(ea_buf); } } /* * Snap the non-default terminal modes. * This is a subtle piece of logic, and may harbor a few bugs yet. */ void ansi_snap_modes(void) { int i; static char csdsel[4] = "()*+"; /* Set up the saved cursor (cursor, fg, bg, gr, cset, csd). */ if (saved_cursor != 0 || saved_fg != 0 || saved_bg != 0 || saved_gr != 0 || saved_cset != CS_G0 || saved_csd[0] != CSD_US || saved_csd[1] != CSD_US || saved_csd[2] != CSD_US || saved_csd[3] != CSD_US) { if (saved_cursor != 0) emit_cup(saved_cursor); if (saved_fg != 0) emit_sgr(30 + saved_fg); if (saved_bg != 0) emit_sgr(40 + saved_bg); if (saved_gr != 0) { if (saved_gr & GR_INTENSIFY) emit_sgr(1); if (saved_gr & GR_UNDERLINE) emit_sgr(4); if (saved_gr & GR_BLINK) emit_sgr(5); if (saved_gr & GR_REVERSE) emit_sgr(7); } if (saved_cset != CS_G0) { switch (saved_cset) { case CS_G1: space3270out(1); *obptr++ = 0x0e; break; case CS_G2: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'N'; break; case CS_G3: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'O'; break; default: break; } } for (i = 0; i < 4; i++) { if (saved_csd[i] != CSD_US) { space3270out(3); *obptr++ = 0x1b; *obptr++ = csdsel[i]; *obptr++ = gnnames[saved_csd[i]]; } } /* Emit a SAVE CURSOR to stash these away. */ space3270out(2); *obptr++ = 0x1b; *obptr++ = '7'; } /* Now set the above to their current values, except for the cursor. */ if (fg != saved_fg) emit_sgr(30 + fg); if (bg != saved_bg) emit_sgr(40 + bg); if (gr != saved_gr) { emit_sgr(0); if (gr & GR_INTENSIFY) emit_sgr(1); if (gr & GR_UNDERLINE) emit_sgr(4); if (gr & GR_BLINK) emit_sgr(5); if (gr & GR_REVERSE) emit_sgr(7); } if (cset != saved_cset) { switch (cset) { case CS_G0: space3270out(1); *obptr++ = 0x0f; break; case CS_G1: space3270out(1); *obptr++ = 0x0e; break; case CS_G2: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'n'; break; case CS_G3: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'o'; break; default: break; } } for (i = 0; i < 4; i++) { if (csd[i] != saved_csd[i]) { space3270out(3); *obptr++ = 0x1b; *obptr++ = csdsel[i]; *obptr++ = gnnames[csd[i]]; } } /* * Handle appl_cursor, wrapaparound_mode, rev_wraparound_mode, * allow_wide_mode, wide_mode and altbuffer, both the saved values and * the current ones. */ if (saved_appl_cursor) { emit_decpriv(1, 'h'); /* set */ emit_decpriv(1, 's'); /* save */ if (!appl_cursor) emit_decpriv(1, 'l'); /* reset */ } else if (appl_cursor) { emit_decpriv(1, 'h'); /* set */ } if (saved_wide_mode) { emit_decpriv(3, 'h'); /* set */ emit_decpriv(3, 's'); /* save */ if (!wide_mode) emit_decpriv(3, 'l'); /* reset */ } else if (wide_mode) { emit_decpriv(3, 'h'); /* set */ } if (saved_wraparound_mode == 0) { emit_decpriv(7, 'h'); /* set (no-wraparound mode) */ emit_decpriv(7, 's'); /* save */ if (wraparound_mode) emit_decpriv(7, 'l'); /* reset */ } else if (!wraparound_mode) { emit_decpriv(7, 'h'); /* set (no-wraparound mode) */ } if (saved_allow_wide_mode) { emit_decpriv(40, 'h'); /* set */ emit_decpriv(40, 's'); /* save */ if (!allow_wide_mode) emit_decpriv(40, 'l'); /* reset */ } else if (allow_wide_mode) { emit_decpriv(40, 'h'); /* set */ } if (saved_rev_wraparound_mode) { emit_decpriv(45, 'h'); /* set (rev--wraparound mode) */ emit_decpriv(45, 's'); /* save */ if (!rev_wraparound_mode) emit_decpriv(45, 'l'); /* reset */ } else if (rev_wraparound_mode) { emit_decpriv(45, 'h'); /* set (rev-wraparound mode) */ } if (saved_altbuffer) { emit_decpriv(47, 'h'); /* set */ emit_decpriv(47, 's'); /* save */ if (!is_altbuffer) emit_decpriv(47, 'l'); /* reset */ } /* else not necessary to set it now -- it was already set when the screen was drawn */ /* * Now take care of auto_newline, insert mode, the scroll region * and tabs. */ if (auto_newline_mode) { space3270out(4); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '4'; *obptr++ = 'h'; } if (insert_mode) { space3270out(5); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '2'; *obptr++ = '0'; *obptr++ = 'h'; } if (scroll_top != 1 || scroll_bottom != ROWS) { space3270out(10); obptr += sprintf((char *)obptr, "\033[%d;%dr", scroll_top, scroll_bottom); } if (tabs) { unsigned char *deftabs; deftabs = (unsigned char *)Malloc((COLS+7)/8); for (i = 0; i < (COLS+7)/8; i++) deftabs[i] = 0x01; for (i = 0; i < COLS; i++) { if (tabs[i/8] & 1<<(i%8)) { if (!(deftabs[i/8] & 1<<(i%8))) { /* Tab was cleared. */ space3270out(15); obptr += sprintf((char *)obptr, "\033[%d;%dH", (cursor_addr / COLS) + 1, ((cursor_addr + i) % COLS) + 1); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '0'; *obptr++ = 'g'; } } else { if (deftabs[i/8] & 1<<(i%8)) { /* Tab was set. */ space3270out(13); obptr += sprintf((char *)obptr, "\033[%d;%dH", (cursor_addr / COLS) + 1, ((cursor_addr + i) % COLS) + 1); *obptr++ = 0x1b; *obptr++ = 'H'; } } } } /* * We're done moving the cursor for other purposes (saving it, * messing with tabs). Put it where it should be now. */ emit_cup(cursor_addr); /* Now add any pending single-character CS change. */ switch (once_cset) { case CS_G2: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'N'; break; case CS_G3: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'O'; break; default: break; } /* Now add any incomplete escape sequence. */ if (pe) { int xlen = 0; for (i = 0; i < pe; i++) if (ped[i] == 0xff) xlen++; space3270out(pe + xlen); for (i = 0; i < pe; i++) { if (ped[i] == 0xff) *obptr++ = 0xff; *obptr++ = ped[i]; } } /* Last, emit any incomplete multi-byte data. */ if (pmi) { space3270out(pmi); for (i = 0; i < pmi; i++) { *obptr++ = pending_mbs[i]; } } } #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/c3270/runc3270.bat0000755000175000017500000000005211254565707015703 0ustar bastianbastian@ECHO OFF SET TERMINFO=. c3270.exe %1% ibm-3270-3.3.10ga4/c3270/proxy.c0000644000175000017500000005361611254565704015265 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxy.c * This module implements various kinds of proxies. */ #include "globals.h" #if !defined(PR3287) /*[*/ #include "appres.h" #include "resources.h" #endif /*]*/ #if defined(_WIN32) /*[*/ #include #include #else /*][*/ #include #include #include #include #include #if defined(HAVE_SYS_SELECT_H) /*[*/ #include /* fd_set declaration */ #endif /*]*/ #endif /*]*/ #include "3270ds.h" #include "popupsc.h" #include "proxy.h" #include "proxyc.h" #include "resolverc.h" #include "telnetc.h" #include "trace_dsc.h" #include "w3miscc.h" #if defined(PR3287) /*[*/ extern char *proxy_spec; #endif /*]*/ #if defined(_WIN32) /*[*/ typedef unsigned long in_addr_t; #endif /*]*/ /* * Supported proxy types. * * At some point we will add SOCKS. */ enum { PT_NONE, PT_PASSTHRU, /* Sun telnet-passthru */ PT_HTTP, /* RFC 2817 CONNECT tunnel */ PT_TELNET, /* 'connect host port' proxy */ PT_SOCKS4, /* SOCKS version 4 (or 4A if necessary) */ PT_SOCKS4A, /* SOCKS version 4A (force remote name resolution) */ PT_SOCKS5, /* SOCKS version 5 (RFC 1928) */ PT_SOCKS5D, /* SOCKS version 5 (force remote name resolution) */ PT_MAX } proxytype_t; /* proxy type names -- keep these in sync with proxytype_t! */ char *type_name[] = { "unknown", "passthru", "HTTP", "TELNET", "SOCKS4", "SOCKS4A", "SOCKS5", "SOCKS5D" }; static int parse_host_port(char *s, char **phost, char **pport); static int proxy_passthru(int fd, char *host, unsigned short port); static int proxy_http(int fd, char *host, unsigned short port); static int proxy_telnet(int fd, char *host, unsigned short port); static int proxy_socks4(int fd, char *host, unsigned short port, int force_a); static int proxy_socks5(int fd, char *host, unsigned short port, int force_d); char * proxy_type_name(int type) { if (type < 1 || type >= PT_MAX) return "unknown"; else return type_name[type]; } /* * Resolve the type, hostname and port for a proxy. * Returns -1 for failure, 0 for no proxy, >0 (the proxy type) for success. */ int proxy_setup(char **phost, char **pport) { char *proxy; char *colon; int sl; #if defined(PR3287) /*[*/ proxy = proxy_spec; #else /*][*/ proxy = appres.proxy; #endif /*]*/ if (proxy == CN) return PT_NONE; if ((colon = strchr(proxy, ':')) == CN || (colon == proxy)) { popup_an_error("Invalid proxy syntax"); return -1; } sl = colon - proxy; if (sl == strlen(PROXY_PASSTHRU) && !strncasecmp(proxy, PROXY_PASSTHRU, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_PASSTHRU); return PT_PASSTHRU; } if (sl == strlen(PROXY_HTTP) && !strncasecmp(proxy, PROXY_HTTP, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_HTTP); return PT_HTTP; } if (sl == strlen(PROXY_TELNET) && !strncasecmp(proxy, PROXY_TELNET, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) { popup_an_error("Must specify port for telnet proxy"); return -1; } return PT_TELNET; } if (sl == strlen(PROXY_SOCKS4) && !strncasecmp(proxy, PROXY_SOCKS4, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS4); return PT_SOCKS4; } if (sl == strlen(PROXY_SOCKS4A) && !strncasecmp(proxy, PROXY_SOCKS4A, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS4A); return PT_SOCKS4A; } if (sl == strlen(PROXY_SOCKS5) && !strncasecmp(proxy, PROXY_SOCKS5, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS5); return PT_SOCKS5; } if (sl == strlen(PROXY_SOCKS5D) && !strncasecmp(proxy, PROXY_SOCKS5D, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS5D); return PT_SOCKS5D; } popup_an_error("Invalid proxy type '%.*s'", sl, proxy); return -1; } /* * Parse host[:port] from a string. * 'host' can be in square brackets to allow numeric IPv6 addresses. * Returns the host name and port name in heap memory. * Returns -1 for failure, 0 for success. */ static int parse_host_port(char *s, char **phost, char **pport) { char *colon; char *hstart; int hlen; if (*s == '[') { char *rbrack; /* Hostname in square brackets. */ hstart = s + 1; rbrack = strchr(s, ']'); if (rbrack == CN || rbrack == s + 1 || (*(rbrack + 1) != '\0' && *(rbrack + 1) != ':')) { popup_an_error("Invalid proxy hostname syntax"); return -1; } if (*(rbrack + 1) == ':') colon = rbrack + 1; else colon = NULL; hlen = rbrack - (s + 1); } else { hstart = s; colon = strchr(s, ':'); if (colon == s) { popup_an_error("Invalid proxy hostname syntax"); return -1; } if (colon == NULL) hlen = strlen(s); else hlen = colon - s; } /* Parse the port. */ if (colon == CN || !*(colon + 1)) *pport = CN; else *pport = NewString(colon + 1); /* Copy out the hostname. */ *phost = Malloc(hlen + 1); strncpy(*phost, hstart, hlen); (*phost)[hlen] = '\0'; return 0; } /* * Negotiate with the proxy server. * Returns -1 for failure, 0 for success. */ int proxy_negotiate(int type, int fd, char *host, unsigned short port) { switch (type) { case PT_NONE: return 0; case PT_PASSTHRU: return proxy_passthru(fd, host, port); case PT_HTTP: return proxy_http(fd, host, port); case PT_TELNET: return proxy_telnet(fd, host, port); case PT_SOCKS4: return proxy_socks4(fd, host, port, 0); case PT_SOCKS4A: return proxy_socks4(fd, host, port, 1); case PT_SOCKS5: return proxy_socks5(fd, host, port, 0); case PT_SOCKS5D: return proxy_socks5(fd, host, port, 1); default: return -1; } } /* Sun PASSTHRU proxy. */ static int proxy_passthru(int fd, char *host, unsigned short port) { char *buf; buf = Malloc(strlen(host) + 32); (void) sprintf(buf, "%s %u\r\n", host, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("Passthru Proxy: xmit '%.*s'", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("Passthru Proxy: send error"); Free(buf); return -1; } Free(buf); return 0; } /* HTTP (RFC 2817 CONNECT tunnel) proxy. */ static int proxy_http(int fd, char *host, unsigned short port) { char *buf; char *colon; char rbuf[1024]; int nr; int nread = 0; char *space; /* Send the CONNECT request. */ buf = Malloc(64 + strlen(host)); colon = strchr(host, ':'); sprintf(buf, "CONNECT %s%s%s:%u HTTP/1.1\r\n", (colon? "[": ""), host, (colon? "]": ""), port); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } sprintf(buf, "Host: %s%s%s:%u\r\n", (colon? "[": ""), host, (colon? "]": ""), port); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } strcpy(buf, "\r\n"); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit ''\n"); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } Free(buf); /* * Process the reply. * Read a byte at a time until \n or EOF. */ for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("HTTP Proxy: server timeout"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ return -1; } nr = recv(fd, &rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("HTTP Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ return -1; } if (nr == 0) { #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ popup_an_error("HTTP Proxy: unexpected EOF"); return -1; } if (rbuf[nread] == '\r') continue; if (rbuf[nread] == '\n') break; if ((size_t)++nread >= sizeof(rbuf)) { nread = sizeof(rbuf) - 1; break; } } rbuf[nread] = '\0'; #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)rbuf, nread); trace_dsn("HTTP Proxy: recv '%s'\n", rbuf); #endif /*]*/ if (strncmp(rbuf, "HTTP/", 5) || (space = strchr(rbuf, ' ')) == CN) { popup_an_error("HTTP Proxy: unrecognized reply"); return -1; } if (*(space + 1) != '2') { popup_an_error("HTTP Proxy: CONNECT failed:\n%s", rbuf); return -1; } return 0; } /* TELNET proxy. */ static int proxy_telnet(int fd, char *host, unsigned short port) { char *buf; buf = Malloc(strlen(host) + 32); (void) sprintf(buf, "connect %s %u\r\n", host, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("TELNET Proxy: xmit '%.*s'", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("TELNET Proxy: send error"); Free(buf); return -1; } Free(buf); return 0; } /* SOCKS version 4 proxy. */ static int proxy_socks4(int fd, char *host, unsigned short port, int force_a) { struct hostent *hp; struct in_addr ipaddr; int use_4a = 0; char *user; char *buf; char *s; char rbuf[8]; int nr; int nread = 0; unsigned short rport; /* Resolve the hostname to an IPv4 address. */ if (force_a) use_4a = 1; else { hp = gethostbyname(host); if (hp != NULL) { memcpy(&ipaddr, hp->h_addr, hp->h_length); } else { ipaddr.s_addr = inet_addr(host); if (ipaddr.s_addr == (in_addr_t)-1) use_4a = 1; } } /* Resolve the username. */ user = getenv("USER"); if (user == CN) user = "nobody"; /* Send the request to the server. */ if (use_4a) { buf = Malloc(32 + strlen(user) + strlen(host)); s = buf; *s++ = 0x04; *s++ = 0x01; SET16(s, port); SET32(s, 0x00000001); strcpy(s, user); s += strlen(user) + 1; strcpy(s, host); s += strlen(host) + 1; #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS4 Proxy: version 4 connect port %u " "address 0.0.0.1 user '%s' host '%s'\n", port, user, host); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { popup_a_sockerr("SOCKS4 Proxy: send error"); Free(buf); return -1; } Free(buf); } else { unsigned long u; buf = Malloc(32 + strlen(user)); s = buf; *s++ = 0x04; *s++ = 0x01; SET16(s, port); u = ntohl(ipaddr.s_addr); SET32(s, u); strcpy(s, user); s += strlen(user) + 1; #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS4 Proxy: xmit version 4 connect port %u " "address %s user '%s'\n", port, inet_ntoa(ipaddr), user); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { Free(buf); popup_a_sockerr("SOCKS4 Proxy: send error"); return -1; } Free(buf); } /* * Process the reply. * Read 8 bytes of response. */ for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS4 Proxy: server timeout"); return -1; } nr = recv(fd, &rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS4 Proxy: receive error"); return -1; } if (nr == 0) break; if ((size_t)++nread >= sizeof(rbuf)) break; } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)rbuf, nread); if (use_4a) { struct in_addr a; rport = (rbuf[2] << 8) | rbuf[3]; memcpy(&a, &rbuf[4], 4); trace_dsn("SOCKS4 Proxy: recv status 0x%02x port %u " "address %s\n", rbuf[1], rport, inet_ntoa(a)); } else trace_dsn("SOCKS4 Proxy: recv status 0x%02x\n", rbuf[1]); #endif /*]*/ switch (rbuf[1]) { case 0x5a: break; case 0x5b: popup_an_error("SOCKS4 Proxy: request rejected or failed"); return -1; case 0x5c: popup_an_error("SOCKS4 Proxy: client is not reachable"); return -1; case 0x5d: popup_an_error("SOCKS4 Proxy: userid error"); return -1; default: popup_an_error("SOCKS4 Proxy: unknown status 0x%02x", rbuf[1]); return -1; } return 0; } /* SOCKS version 5 (RFC 1928) proxy. */ static int proxy_socks5(int fd, char *host, unsigned short port, int force_d) { union { struct sockaddr sa; struct sockaddr_in sin; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sin6; #endif /*]*/ } ha; socklen_t ha_len = 0; int use_name = 0; char *buf; char *s; unsigned char rbuf[8]; int nr; int nread = 0; int n2read = 0; char nbuf[256]; int done = 0; #if defined(X3270_TRACE) /*[*/ char *atype_name[] = { "", "IPv4", "", "domainname", "IPv6" }; unsigned char *portp; unsigned short rport; #endif /*]*/ if (force_d) use_name = 1; else { char errmsg[1024]; int rv; /* Resolve the hostname. */ rv = resolve_host_and_port(host, CN, 0, &rport, &ha.sa, &ha_len, errmsg, sizeof(errmsg), NULL); if (rv == -2) use_name = 1; else if (rv < 0) { popup_an_error("SOCKS5 proxy: %s/%u: %s", host, port, errmsg); return -1; } } /* Send the authentication request to the server. */ strcpy((char *)rbuf, "\005\001\000"); #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: xmit version 5 nmethods 1 (no auth)\n"); trace_netdata('>', rbuf, 3); #endif /*]*/ if (send(fd, (char *)rbuf, 3, 0) < 0) { popup_a_sockerr("SOCKS5 Proxy: send error"); return -1; } /* * Wait for the server reply. * Read 2 bytes of response. */ nread = 0; for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS5 Proxy: server timeout"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } nr = recv(fd, (char *)&rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS5 Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } if (nr == 0) { popup_a_sockerr("SOCKS5 Proxy: unexpected EOF"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } if (++nread >= 2) break; } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', rbuf, nread); #endif /*]*/ if (rbuf[0] != 0x05 || (rbuf[1] != 0 && rbuf[1] != 0xff)) { popup_an_error("SOCKS5 Proxy: bad authentication response"); return -1; } #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: recv version %d method %d\n", rbuf[0], rbuf[1]); #endif /*]*/ if (rbuf[1] == 0xff) { popup_an_error("SOCKS5 Proxy: authentication failure"); return -1; } /* Send the request to the server. */ buf = Malloc(32 + strlen(host)); s = buf; *s++ = 0x05; /* protocol version 5 */ *s++ = 0x01; /* CONNECT */ *s++ = 0x00; /* reserved */ if (use_name) { *s++ = 0x03; /* domain name */ *s++ = strlen(host); strcpy(s, host); s += strlen(host); } else if (ha.sa.sa_family == AF_INET) { *s++ = 0x01; /* IPv4 */ memcpy(s, &ha.sin.sin_addr, 4); s += 4; strcpy(nbuf, inet_ntoa(ha.sin.sin_addr)); #if defined(AF_INET6) /*[*/ } else { *s++ = 0x04; /* IPv6 */ memcpy(s, &ha.sin6.sin6_addr, sizeof(struct in6_addr)); s += sizeof(struct in6_addr); (void) inet_ntop(AF_INET6, &ha.sin6.sin6_addr, nbuf, sizeof(nbuf)); #endif /*]*/ } SET16(s, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: xmit version 5 connect %s %s port %u\n", use_name? "domainname": ((ha.sa.sa_family == AF_INET)? "IPv4": "IPv6"), use_name? host: nbuf, port); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { popup_a_sockerr("SOCKS5 Proxy: send error"); Free(buf); return -1; } Free(buf); /* * Process the reply. * Only the first two bytes of the response are interesting; * skip the rest. */ nread = 0; done = 0; buf = NULL; while (!done) { fd_set rfds; struct timeval tv; unsigned char r; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS5 Proxy: server timeout"); return -1; } nr = recv(fd, (char *)&r, 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS5 Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } if (nr == 0) { popup_an_error("SOCKS5 Proxy: unexpected EOF"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } buf = Realloc(buf, nread + 1); buf[nread] = r; switch (nread++) { case 0: if (r != 0x05) { popup_an_error("SOCKS5 Proxy: incorrect " "reply version 0x%02x", r); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } break; case 1: #if defined(X3270_TRACE) /*[*/ if (r != 0x00) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ switch (r) { case 0x00: break; case 0x01: popup_an_error("SOCKS5 Proxy: server failure"); return -1; case 0x02: popup_an_error("SOCKS5 Proxy: connection not " "allowed"); return -1; case 0x03: popup_an_error("SOCKS5 Proxy: network " "unreachable"); return -1; case 0x04: popup_an_error("SOCKS5 Proxy: host " "unreachable"); return -1; case 0x05: popup_an_error("SOCKS5 Proxy: connection " "refused"); return -1; case 0x06: popup_an_error("SOCKS5 Proxy: ttl expired"); return -1; case 0x07: popup_an_error("SOCKS5 Proxy: command not " "supported"); return -1; case 0x08: popup_an_error("SOCKS5 Proxy: address type " "not supported"); return -1; default: popup_an_error("SOCKS5 Proxy: unknown server " "error 0x%02x", r); return -1; } break; case 2: break; case 3: switch (r) { case 0x01: n2read = 6; break; case 0x03: n2read = -1; break; #if defined(AF_INET6) /*[*/ case 0x04: n2read = sizeof(struct in6_addr) + 2; break; #endif /*]*/ default: popup_an_error("SOCKS5 Proxy: unknown server " "address type 0x%02x", r); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } break; default: if (n2read == -1) n2read = r + 2; else if (!--n2read) done = 1; break; } } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)buf, nread); switch (buf[3]) { case 0x01: /* IPv4 */ memcpy(&ha.sin.sin_addr, &buf[4], 4); strcpy(nbuf, inet_ntoa(ha.sin.sin_addr)); portp = (unsigned char *)&buf[4 + 4]; break; case 0x03: /* domainname */ strncpy(nbuf, &buf[5], buf[4]); nbuf[(unsigned char)buf[4]] = '\0'; portp = (unsigned char *)&buf[5 + (unsigned char)buf[4]]; break; #if defined(AF_INET6) /*[*/ case 0x04: /* IPv6 */ memcpy(&ha.sin6.sin6_addr, &buf[4], sizeof(struct in6_addr)); (void) inet_ntop(AF_INET6, &ha.sin6.sin6_addr, nbuf, sizeof(nbuf)); portp = (unsigned char *)&buf[4 + sizeof(struct in6_addr)]; break; #endif /*]*/ default: /* can't happen */ nbuf[0] = '\0'; portp = (unsigned char *)buf; break; } rport = (*portp << 8) + *(portp + 1); trace_dsn("SOCKS5 Proxy: recv version %d status 0x%02x address %s %s " "port %u\n", buf[0], buf[1], atype_name[(unsigned char)buf[3]], nbuf, rport); #endif /*]*/ Free(buf); return 0; } ibm-3270-3.3.10ga4/c3270/popupsc.h0000644000175000017500000000372711254565674015606 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* c3270 version of popupsc.h */ /* Note that these functions are in c3270.c, not popups.c. */ extern void action_output(const char *fmt, ...) printflike(1, 2); extern void popup_an_errno(int errn, const char *fmt, ...) printflike(2, 3); extern void popup_an_error(const char *fmt, ...) printflike(1, 2); extern void popup_an_info(const char *fmt, ...) printflike(1, 2); extern void Info_action(Widget w, XEvent *event, String *params, Cardinal *num_params); ibm-3270-3.3.10ga4/c3270/telnetc.h0000644000175000017500000000624411254565704015542 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * telnetc.h * Global declarations for telnet.c. */ /* Output buffer. */ extern unsigned char *obuf, *obptr; /* Spelled-out tty control character. */ struct ctl_char { const char *name; char value[3]; }; extern void net_abort(void); extern Boolean net_add_dummy_tn3270e(void); extern void net_add_eor(unsigned char *buf, int len); extern void net_break(void); extern void net_charmode(void); extern int net_connect(const char *, char *, Boolean, Boolean *, Boolean *); extern void net_disconnect(void); extern void net_exception(void); extern int net_getsockname(void *buf, int *len); extern void net_hexansi_out(unsigned char *buf, int len); extern void net_input(void); extern void net_interrupt(void); extern void net_linemode(void); extern struct ctl_char *net_linemode_chars(void); extern void net_output(void); extern const char *net_query_bind_plu_name(void); extern const char *net_query_connection_state(void); extern const char *net_query_host(void); extern const char *net_query_lu_name(void); extern void net_sendc(char c); extern void net_sends(const char *s); extern void net_send_erase(void); extern void net_send_kill(void); extern void net_send_werase(void); extern Boolean net_snap_options(void); extern void space3270out(int n); extern const char *tn3270e_current_opts(void); extern void trace_netdata(char direction, unsigned const char *buf, int len); extern void popup_a_sockerr(char *fmt, ...) printflike(1, 2); extern char *net_proxy_type(void); extern char *net_proxy_host(void); extern char *net_proxy_port(void); extern Boolean net_bound(void); ibm-3270-3.3.10ga4/c3270/dialogc.h0000644000175000017500000000307611254565673015513 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * dialogc.h * Empty definitions for dialog.c. */ ibm-3270-3.3.10ga4/c3270/X3270.xad0000644000175000017500000017653011256027001015143 0ustar bastianbastian! ! Copyright (c) 1995-2009, Paul Mattes. ! All rights reserved. ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions are met: ! * Redistributions of source code must retain the above copyright ! notice, this list of conditions and the following disclaimer. ! * Redistributions in binary form must reproduce the above copyright ! notice, this list of conditions and the following disclaimer in the ! documentation and/or other materials provided with the distribution. ! * Neither the names of Paul Mattes nor the names of his contributors ! may be used to endorse or promote products derived from this software ! without specific prior written permission. ! ! THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED ! WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ! MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO ! EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ! OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ! WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ! ! x3270 app-defaults file. This file is generally compiled into x3270, rather ! than installed. ! ! This file is in three sections: ! ! (1) User-Modifiable Resources ! Resources that are likeliest to be modified by an end user. ! ! (2) Labels and Messages ! Resources that are likely to be modified for translation into another ! language. ! ! (3) Base-Level Resources ! Resources required for the basic operation of x3270, not for the ! faint-hearted to modify. ! !============================================================================= ! Section 1: User-Modifiable Resources ! ! Resources that are likeliest to be modified by an end user. !============================================================================= ! ! Many of the resource definitions are commented out, because they are ! the defaults defined in x3270 itself. They are listed here so you can ! easily uncomment and change them. #ifndef STANDALONE ! ! Fonts ! *.emulatorFont: 3270 ! ! Color schemes for full-color (3279) mode ! Each scheme is a list of 23 items: ! 0 X color to use for IBM "neutral/black" (also used as ANSI color 0) ! 1 X color to use for IBM "blue" (also used for ANSI color 4) ! 2 X color to use for IBM "red" (also used for ANSI color 1) ! 3 X color to use for IBM "pink" (also used for ANSI color 5) ! 4 X color to use for IBM "green" (also used for ANSI color 2) ! 5 X color to use for IBM "turquoise" ! 6 X color to use for IBM "yellow" (also used for ANSI color 3) ! 7 X color to use for IBM "neutral/white" ! 8 X color to use for IBM "black" ! 9 X color to use for IBM "deep blue" ! 10 X color to use for IBM "orange" ! 11 X color to use for IBM "purple" ! 12 X color to use for IBM "pale green" ! 13 X color to use for IBM "pale turquoise" (also used for ANSI color 6) ! 14 X color to use for IBM "grey" ! 15 X color to use for IBM "white" (also used for ANSI color 7) ! 16 X color to use if one of 0..15 cannot be allocated (white or black) ! 17 X color to use as the default screen background ! 18 X color to use as the select background ! 19 IBM color index (0..15) to use for unprotected, unhighlighted fields ! 20 IBM color index (0..15) to use for unprotected, highlighted fields ! 21 IBM color index (0..15) to use for protected, unhighlighted fields ! 22 IBM color index (0..15) to use for protected, highlighted fields ! ! x3270.colorScheme: default x3270.colorScheme.default: \ black deepSkyBlue red pink \ green turquoise yellow white \ black blue3 orange purple \ paleGreen paleTurquoise2 grey white \ white black dimGrey \ 4 2 1 15 x3270.colorScheme.reverse: \ black blue firebrick pink \ green4 cadetBlue goldenrod black \ black blue3 orange purple \ paleGreen darkTurquoise grey black \ black white dimGrey \ 4 2 1 0 x3270.colorScheme.bright: \ black blue red magenta \ green turquoise yellow white \ black blue3 orange purple \ paleGreen cyan grey white \ white black dimGrey \ 4 2 1 15 x3270.colorScheme.cpe: \ black LightBlue1 PaleVioletRed1 \ pink green turquoise yellow white \ black LightBlue3 orange MediumPurple1 \ paleGreen paleTurquoise2 grey80 white \ white black dimGrey \ 4 2 1 15 x3270.colorScheme.greenScreen: \ green green green green \ green green green green \ green green green green \ green green green green \ white black dimGrey \ 4 15 4 15 #ifdef X3270_MENUS ! Color schemes listed on the Options color menu x3270.schemeList: Default 3279: default\n\ Bright: bright\n\ Reverse: reverse\n\ Green Screen: greenScreen ! Character sets listed on the Options menu x3270.charsetList: U.S. English (CP 037): us-intl\n\ Bracket (CP 037, modified): bracket\n\ APL (CP 037): apl\n\ Euro>U.S. English (CP 1140): us-euro\n\ Euro>Belgian (CP 1148): belgian-euro\n\ Euro>Finnish (CP 1143): finnish-euro\n\ Euro>French (CP 1147): french-euro\n\ Euro>German (CP 1141): german-euro\n\ Euro>Icelandic (CP 1149): icelandic-euro\n\ Euro>Italian (CP 1144): italian-euro\n\ Euro>Norwegian (CP 1142): norwegian-euro\n\ Euro>Spanish (CP 1145): spanish-euro\n\ Euro>United Kingdom (CP 1146): uk-euro\n\ Belgian (CP 500): belgian\n\ Brazilian (CP 275): brazilian\n\ #ifdef X3270_DBCS Chinese Simplified (CP 935): simplified-chinese\n\ Chinese GB 18030 (CP 1388): chinese-gb18030\n\ Chinese Traditional (CP 937): traditional-chinese\n\ #endif Finnish (CP 278): finnish\n\ French (CP 297): french\n\ German (CP 273): german\n\ Greek (CP 875): greek\n\ Hebrew (CP 424): hebrew\n\ Icelandic (CP 871): icelandic\n\ Italian (CP 280): italian\n\ #ifdef X3270_DBCS Japanese w/Kana (CP 930): japanese-kana\n\ Japanese w/Latin (CP 939): japanese-latin\n\ #endif Norwegian (CP 277): norwegian\n\ Open Systems (CP 1047): cp1047\n\ Polish (CP 870): cp870\n\ Russian (CP 880): russian\n\ Slovenian (CP 870): cp870\n\ Spanish (CP 284): spanish\n\ Thai (CP 1160): thai\n\ Turkish (CP 1026): turkish\n\ United Kingdom (CP 285): uk\n #endif ! ! Pseudo-colors for 3278 mode ! x3270.colorBackground: black ! x3270.selectBackground: dimGrey ! x3270.normalColor: green ! Note: the following values are the new defaults, which cause 3278's ! to display everything in green. ! x3270.inputColor: green ! x3270.boldColor: green ! To resurrect x3270's Pseudo-Color mode, which was how 3278's were ! displayed up through x3270 3.3.5, set the following resource values: ! x3270.inputColor: orange ! x3270.boldColor: cyan ! ! Cursors ! x3270.normalCursor: top_left_arrow ! x3270.waitCursor: watch ! x3270.lockedCursor: X_cursor ! ! Line-mode Telnet parameters ! x3270.icrnl: true ! x3270.inlcr: false ! x3270.erase: ^? ! x3270.kill: ^U ! x3270.werase: ^W ! x3270.rprnt: ^R ! x3270.lnext: ^V ! x3270.intr: ^C ! x3270.quit: ^\\ ! x3270.eof: ^D ! ! Toggles, using the same names as the "-set" and "-clear" options ! x3270.altCursor: false ! x3270.blankFill: false ! x3270.crosshair: false ! x3270.cursorBlink: false ! x3270.cursorPos: true ! x3270.dsTrace: false ! x3270.eventTrace: false ! x3270.lineWrap: true ! x3270.marginedPaste: false ! x3270.monoCase: false ! x3270.rectangleSelect: false ! x3270.screenTrace: false ! x3270.scrollBar: false ! x3270.showTiming: false ! ! Miscellaneous configuration parameters ! x3270.activeIcon: false ! x3270.allowResize: true ! x3270.bellVolume: 0 ! x3270.charset: bracket ! x3270.composeMap: latin1 ! x3270.connectFileName: ~/.x3270connect ! x3270.doConfirms: true ! x3270.debugTracing: true ! x3270.disconnectClear: false ! x3270.hostsFile: /usr/lib/X11/x3270/ibm_hosts ! x3270.highlightSelect: true ! x3270.idleCommand: ! x3270.idleTimeout: ~7m ! x3270.inputMethod: ! x3270.invertKeypadShift: false ! x3270.keymap: ! x3270.keypad: right ! x3270.keypadOn: false ! x3270.labelIcon: false ! x3270.m3279: false ! x3270.macros: ! x3270.menuBar: true ! x3270.modifiedSel: false ! x3270.modifiedSelColor: 10 ! x3270.model: 4 ! x3270.mono: false ! x3270.numericLock: false ! x3270.once: false ! x3270.pluginCommand: x3270hist.pl ! x3270.port: telnet ! x3270.preeditType: OverTheSpot+1 ! x3270.saveLines: 64 ! x3270.scripted: false ! x3270.suppressHost: false ! x3270.suppressFontMenu: false ! x3270.termName: ! x3270.traceDir: /tmp ! x3270.cursorColor: red ! (note: cursorColor is not used unless useCursorColor is true, below) ! x3270.useCursorColor: false ! x3270.visualBell: false ! x3270.visualSelect: false ! x3270.visualSelectColor: 6 ! ! Fonts listed on the Options menu and for screen resizing x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-1: \ 3270 Font (14 point): #resize 3270\n\ 8-point Font: #resize 3270gt8\n\ 12-point Font: #resize 3270-12\n\ 16-point Font: #resize 3270gt16\n\ 20-point Font: #resize 3270-20\n\ 24-point Font: #resize 3270gt24\n\ 32-point Font: #resize 3270gt32 x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-15: \ 3270 Font (14 point): #resize 3270\n\ 8-point Font: #resize 3270gt8\n\ 12-point Font: #resize 3270-12\n\ 16-point Font: #resize 3270gt16\n\ 20-point Font: #resize 3270-20\n\ 24-point Font: #resize 3270gt24\n\ 32-point Font: #resize 3270gt32 x3270.emulatorFontList.3270cg-1a,iso10646-1: 3270 x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-1+gb2312.1980-0,iso10646-1: \ 14-point 3270: 3270+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\ 20-point 3270: 3270-20+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\ 8x16: 8x16+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\ 12x24: 12x24+-isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0 x3270.emulatorFontList.iso10646-1,jisx0201.1976-0+jisx0208.1983-0,iso10646-1: \ 14-point: -misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0+-misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-0\n\ 16-point: -sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0+-jis-fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1983-0\n\ 18-point: -sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0+-misc-fixed-medium-r-normal-ja-18-120-100-100-c-180-iso10646-1\n\ 24-point: -sony-fixed-medium-r-normal--24-230-75-75-c-120-jisx0201.1976-0+-jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1983-0 x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-1+big5-0,iso10646-1: fixed+-wenquanyi-wenquanyi bitmap song-bold-r-normal--13-130-75-75-p-80-iso10646-1 #endif ! ! Print commands x3270.printTextCommand: lpr #ifndef STANDALONE x3270.printWindowCommand: xwd -id %d | xpr | lpr ! ! System V versions of print commands ! x3270.printTextCommand: lp ! x3270.printWindowCommand: xwd -id %d | xpr | lp ! ! Trace window command x3270.traceCommand: tail -f ! ! File transfer command ! x3270.ftCommand: ind$file ! ! Printer session options #endif #ifdef _WIN32 x3270.printer.assocCommandLine: wpr3287.exe -assoc %L% %R% %P% %I% %H% x3270.printer.luCommandLine: wpr3287.exe %R% %P% %I% %L%@%H% ! x3270.printer.name: #else x3270.printer.command: lpr x3270.printer.assocCommandLine: pr3287 -assoc %L% -command "%C%" %R% %P% "%H%" x3270.printer.luCommandLine: pr3287 -command "%C%" %R% %P% "%L%@%H%" #endif #ifndef STANDALONE ! ! Translation table for the '@server' pseudo-keymap, which is the keymap ! you get by default (in addition to the 'base' keymap, below). Maps server ! vendor strings to keymap names. x3270.serverKeymapList: \ Sun Microsystems, Inc.: sun_k5\n\ Hewlett-Packard Company: hp-k1\n ! ! Keymaps (keyboard and mouse mappings) ! ! Base keymap: What you get by default, in both 3270 and NVT modes. Any other ! user-specified keymap is logically added to this keymap. x3270.keymap.base: \ :Multi_key: Compose()\n\ Ctrl: HandleMenu(fileMenu)\n\ Ctrl: HandleMenu(optionsMenu)\n\ Ctrl: HandleMenu(hostMenu,macrosMenu)\n\ : SelectDown()\n\ ~Shift: SelectMotion()\n\ : ignore()\n\ : ignore()\n\ : insert-selection(PRIMARY)\n\ : start-extend()\n\ : select-extend()\n\ ~Shift: SelectUp(PRIMARY)\n\ ShiftInsert: insert-selection(PRIMARY)\n\ ShiftUp: KybdSelect(Up,PRIMARY)\n\ ShiftDown: KybdSelect(Down,PRIMARY)\n\ ShiftLeft: KybdSelect(Left,PRIMARY)\n\ ShiftRight: KybdSelect(Right,PRIMARY)\n\ ShiftF1: PF(13)\n\ ShiftF2: PF(14)\n\ ShiftF3: PF(15)\n\ ShiftF4: PF(16)\n\ ShiftF5: PF(17)\n\ ShiftF6: PF(18)\n\ ShiftF7: PF(19)\n\ ShiftF8: PF(20)\n\ ShiftF9: PF(21)\n\ ShiftF10: PF(22)\n\ ShiftF11: PF(23)\n\ ShiftF12: PF(24)\n\ MetaF1: PF(13)\n\ AltF1: PF(13)\n\ MetaF2: PF(14)\n\ AltF2: PF(14)\n\ MetaF3: PF(15)\n\ AltF3: PF(15)\n\ MetaF4: PF(16)\n\ AltF4: PF(16)\n\ MetaF5: PF(17)\n\ AltF5: PF(17)\n\ MetaF6: PF(18)\n\ AltF6: PF(18)\n\ MetaF7: PF(19)\n\ AltF7: PF(19)\n\ MetaF8: PF(20)\n\ AltF8: PF(20)\n\ MetaF9: PF(21)\n\ AltF9: PF(21)\n\ MetaF10: PF(22)\n\ AltF10: PF(22)\n\ MetaF11: PF(23)\n\ AltF11: PF(23)\n\ MetaF12: PF(24)\n\ AltF12: PF(24)\n\ :F1: PF(1)\n\ :F2: PF(2)\n\ :F3: PF(3)\n\ :F4: PF(4)\n\ :F5: PF(5)\n\ :F6: PF(6)\n\ :F7: PF(7)\n\ :F8: PF(8)\n\ :F9: PF(9)\n\ :F10: PF(10)\n\ :F11: PF(11)\n\ :F12: PF(12)\n\ :Print: PrintText()\n\ Altq: Quit()\n\ :dead_acute: Compose() Key(apostrophe)\n\ :dead_grave: Compose() Key(grave)\n\ :dead_circumflex: Compose() Key(asciicircum)\n\ :dead_tilde: Compose() Key(asciitilde)\n\ :dead_diaeresis: Compose() Key(quotedbl)\n ! ! Base keymap for 3270 mode. These mappings are added to the base keymap, ! but only when in 3270 mode. ! These were originally part of the base keymap, but were moved here, because ! they were no-ops in NVT mode, or interfered with NVT-mode data entry. ! ! Note that as yet, there is no x3270.keymap.base.nvt, which would define the ! base keymap extensions for NVT mode. ! x3270.keymap.base.3270: #override \ :Ctrl Shift: MouseSelect()\n\ Shift: MoveCursor()\n\ ShiftReturn: Newline()\n\ :Return: Enter()\n\ :Linefeed: Newline()\n\ :BackSpace: Erase()\n\ ShiftTab: BackTab()\n\ :MetaLeft: PreviousWord()\n\ :AltLeft: PreviousWord()\n\ :MetaRight: NextWord()\n\ :AltRight: NextWord()\n\ :Meta1: PA(1)\n\ :Alt1: PA(1)\n\ :Meta2: PA(2)\n\ :Alt2: PA(2)\n\ :Meta3: PA(3)\n\ :Alt3: PA(3)\n\ Metaa: Attn()\n\ Alta: Attn()\n\ Metab: PrintWindow()\n\ Altb: PrintWindow()\n\ Metac: Clear()\n\ Altc: Clear()\n\ Metad: Delete()\n\ Altd: Delete()\n\ Metae: EraseEOF()\n\ Alte: EraseEOF()\n\ Metaf: Flip()\n\ Altf: Flip()\n\ Metah: Home()\n\ Alth: Home()\n\ Metai: Insert()\n\ Alti: Insert()\n\ Metal: Redraw()\n\ Altl: Redraw()\n\ Metap: PrintText()\n\ Altp: PrintText()\n\ Metar: Reset()\n\ Altr: Reset()\n\ Metau: Unselect()\n\ Altu: Unselect()\n\ Ctrla: SelectAll(PRIMARY)\n\ Ctrlc: set-select(CLIPBOARD)\n\ Ctrlu: DeleteField()\n\ Ctrlw: DeleteWord()\n\ Ctrlv: insert-selection(CLIPBOARD)\n\ Altv: ToggleReverse()\n\ Metav: ToggleReverse() ! Keymap that exercises the optional history plugin. x3270.keymap.hist: ShiftPrior: Plugin(command,prev)\n\ ShiftNext: Plugin(command,next) ! Keymap that restores the old (pre 3.3) mouse-click behavior. x3270.keymap.oldclick: #override\n\ Ctrl: HandleMenu(fileMenu)\n\ Ctrl: HandleMenu(optionsMenu)\n\ Ctrl: HandleMenu(hostMenu,macrosMenu)\n\ : select-start()\n\ ~Shift: select-extend()\n\ : ignore()\n\ : ignore()\n\ : insert-selection(PRIMARY)\n\ : start-extend()\n\ : select-extend()\n\ ~Shift: select-end(PRIMARY) x3270.keymap.oldclick.3270: #override\n\ :Ctrl Shift: MouseSelect()\n\ Shift: MoveCursor() ! ! Start of keyboard-specific mappings. ! ! Sun Type 5 keyboard map. Not compatible with earlier Type 3 and Type 4 ! keymaps, but does a better job of mapping intuitive functions to the ! existing key labels, and has fewer surprises. x3270.keymap.sun_k5: \ Shift0x1005ff10: PF(23)\n\ Shift0x1005ff11: PF(24)\n\ :0x1005ff10: PF(11)\n\ :0x1005ff11: PF(12)\n\ ~@Num_LockF27: Home()\n\ ~@Num_LockF33: FieldEnd()\n\ :F18: insert-selection(PRIMARY)\n\ ShiftF22: SysReq()\n\ :F22: PrintText()\n\ KP_Enter: Newline()\n ! Sun Type 4 keyboard map, backwards-compatible with earlier versions of x3270. x3270.keymap.sun_k4: \ Shift0x1005ff10: PF(23)\n\ Shift0x1005ff11: PF(24)\n\ :0x1005ff10: PF(11)\n\ :0x1005ff11: PF(12)\n\ :KP_1: Key(1)\n\ :KP_2: Key(2)\n\ :KP_3: Key(3)\n\ :KP_4: Key(4)\n\ :KP_5: Key(5)\n\ :KP_6: Key(6)\n\ :KP_7: Key(7)\n\ :KP_8: Key(8)\n\ :KP_9: Key(9)\n\ :KP_0: Key(0)\n\ :KP_Decimal: Key(.)\n\ :F18: insert-selection(PRIMARY)\n\ :F19: SysReq()\n\ :F20: FieldMark()\n\ :F21: PA(1)\n\ :F22: PA(2)\n\ :F23: Dup()\n\ :F24: Reset()\n\ :F25: EraseEOF()\n\ :F26: EraseInput()\n\ :F27: Clear()\n\ :F29: Redraw()\n\ :F31: Home()\n\ :KP_Enter: Newline()\n\ :F35: Delete()\n ! Sun Type 3 keyboard. x3270.keymap.sun_k3: \ ShiftF21: PF(22)\n\ ShiftF22: PF(23)\n\ ShiftF23: PF(24)\n\ :MetaF21: PA(1)\n\ :MetaF22: PA(2)\n\ :MetaF23: Dup()\n\ :F19: SysReq()\n\ :0x0: FieldMark()\n\ :F21: PF(10)\n\ :F22: PF(11)\n\ :F23: PF(12)\n\ :F24: Reset()\n\ :F25: EraseEOF()\n\ :F26: EraseInput()\n\ :F27: Clear()\n\ :F31: Home()\n\ :F29: Redraw()\n\ :KP_Enter: Newline()\n\ :F35: Delete()\n x3270.keymap.ncd: \ :F13: Dup()\n\ :Linefeed: Dup()\n\ :F14: FieldMark()\n\ :Break: FieldMark()\n\ :Home: Home()\n\ :F17: Home()\n\ :End: EraseEOF()\n\ :F15: Reset()\n\ :Prior: Reset()\n\ :F16: Newline()\n\ :Next: Newline()\n\ :KP_Add: EraseInput()\n\ :Num_Lock: PF(13)\n\ :KP_Space: PF(13)\n\ :KP_Divide: PF(14)\n\ :KP_Multiply: PF(15)\n\ :KP_7: PF(16)\n\ :KP_8: PF(17)\n\ :KP_9: PF(18)\n\ :KP_4: PF(19)\n\ :KP_5: PF(20)\n\ :KP_6: PF(21)\n\ :KP_1: PF(22)\n\ :KP_2: PF(23)\n\ :KP_3: PF(24)\n\ :KP_Subtract: SysReq()\n\ :KP_0: PA(2)\n\ :KP_Decimal: PA(1)\n\ :KP_Enter: Clear()\n x3270.keymap.hp-k1: \ :KP_Tab: BackTab()\n\ :KP_Enter: Home()\n\ :KP_Separator: Delete()\n\ ShiftDelete: Delete()\n\ :Menu: EraseEOF()\n\ :KP_Multiply: PF(13)\n\ :KP_Divide: PF(14)\n\ :KP_Add: PF(15)\n\ :KP_7: PF(16)\n\ :KP_8: PF(17)\n\ :KP_9: PF(18)\n\ :KP_4: PF(19)\n\ :KP_5: PF(20)\n\ :KP_6: PF(21)\n\ :KP_1: PF(22)\n\ :KP_2: PF(23)\n\ :KP_3: PF(24)\n\ :KP_0: PA(2)\n\ :KP_Decimal: PA(1)\n ! Keymap for HP-PC101 workstation keyboard, Chris P-E x3270.keymap.hp-pc: \ :KP_Subtract: Compose()\n\ :KP_Enter: Enter()\n\ :Return: Newline()\n\ !F1: PF(1)\n\ !F2: PF(2)\n\ !F3: PF(3)\n\ !F4: PF(4)\n\ !F5: PF(5)\n\ !F6: PF(6)\n\ !F7: PF(7)\n\ !F8: PF(8)\n\ !F9: PF(9)\n\ !F10: PF(10)\n\ !F11: PF(11)\n\ !F12: PF(12)\n\ !ShifthpSystem: PF(13)\n\ !ShiftKP_Divide: PF(14)\n\ !ShiftKP_Multiply: PF(15)\n\ !ShiftKP_7: PF(16)\n\ !ShiftKP_8: PF(17)\n\ !ShiftKP_9: PF(18)\n\ !ShiftKP_4: PF(19)\n\ !ShiftKP_5: PF(20)\n\ !ShiftKP_6: PF(21)\n\ !ShiftKP_1: PF(22)\n\ !ShiftKP_2: PF(23)\n\ !ShiftKP_3: PF(24)\n\ !hpSystem: PF(1)\n\ !KP_Divide: PF(2)\n\ !KP_Multiply: PF(3)\n\ !KP_7: PF(4)\n\ !KP_8: PF(5)\n\ !KP_9: PF(6)\n\ !KP_4: PF(7)\n\ !KP_5: PF(8)\n\ !KP_6: PF(9)\n\ !KP_1: PF(10)\n\ !KP_2: PF(11)\n\ !KP_3: PF(12)\n\ !Break: Reset()\n\ !ShiftBreak: Attn()\n\ !MetaBreak: SysReq()\n\ !Prior: Dup()\n\ !Next: FieldMark()\n\ !Select: EraseEOF()\n\ !MetahpInsertChar: PA(1)\n\ !MetaHome: PA(2)\n\ !MetaPrior: PA(3)\n\ !hpInsertChar: Insert()\n\ !hpDeleteChar: Delete()\n\ !ShiftMenu: PrintWindow()\n\ !Menu: PrintText()\n ! Keymap for IBM X Terminal, Allan L. Bazinet x3270.keymap.ibm-xterm: \ :Execute: Enter()\n\ !Pause: Clear()\n\ !BackSpace: BackSpace()\Delete()\n\ !End: FieldEnd()\n\ !Altc: Clear()\n\ !AltPrint: SysReq()\n\ !CtrlHome: EraseInput()\n\ !CtrlEnd: EraseEOF()\n\ !ShiftTab: BackTab()\n\ :KP_Subtract: PA(1)\n\ :KP_Add: PA(2)\n\ :KP_Enter: Enter()\n\ :Prior: PA(1)\n\ :Next: PA(2)\n\ :Escape: Reset()\n\ :Control_L: Reset()\n\ :Insert: Insert()\n\ !ShiftRight: Right2()\n\ !ShiftLeft: Left2()\n ! Keymap for common 3270 functions on a PC keyboard, from Richard Lennox. x3270.keymap.rlx: #override \ Prior: PF(7)\n\ Next: PF(8)\n\ Control_R: Enter()\n\ Return: Newline()\n\ Pause: Clear()\n\ ShiftEscape: Attn()\n\ ShiftLeft: PreviousWord()\n\ ShiftRight: NextWord()\n\ CtrlLeft: PreviousWord()\n\ CtrlRight: NextWord()\n\ ShiftEnd: EraseEOF()\n\ End: FieldEnd() ! Keymap modifier for OpenWindows (makes button 2 the extend key; defines the ! Paste and Cut keys; uses CLIPBOARD). x3270.keymap.ow: #override \ ~Shift: select-start()\n\ ~Shift: select-extend()\n\ : start-extend()\n\ : select-extend()\n\ : ignore()\n\ : ignore()\n\ : insert-selection(CLIPBOARD,PRIMARY)\n\ : select-end(PRIMARY)\n\ :F16: set-select(CLIPBOARD)\n\ ShiftF18: insert-selection(PRIMARY)\n\ :F18: insert-selection(CLIPBOARD,PRIMARY)\n\ :F20: set-select(CLIPBOARD) Cut()\n ! APL keymap modifier. x3270.keymap.apl: #override \ !:Altbracketleft: Key(apl_leftarrow)\n\ !:Altbracketright: Key(apl_rightarrow)\n\ :bracketleft: Key(apl_bracketleft)\n\ :bracketright: Key(apl_bracketright)\n\ !:Alt1: Key(apl_diaeresis)\n\ !:Alt2: Key(apl_overbar)\n\ !:Alt3: Key(less)\n\ !:Alt4: Key(apl_notgreater)\n\ !:Alt5: Key(equal)\n\ !:Alt6: Key(apl_notless)\n\ !:Alt7: Key(greater)\n\ !:Alt8: Key(apl_notequal)\n\ !:Alt9: Key(apl_downcaret)\n\ !:Alt0: Key(apl_upcaret)\n\ !:Altminus: Key(apl_overbar)\n\ !:Altunderscore: Key(underscore)\n\ !:Alt=: Key(apl_multiply)\n\ !:Alt+: Key(apl_divide)\n\ !:Altasciitilde: Key(apl_tilde)\n\ !:Altbackslash: Key(apl_slope)\n\ !:Altbar: Key(apl_stile)\n\ :Alta: Key(apl_alpha)\n\ :Altb: Key(apl_downtack)\n\ :Altc: Key(apl_upshoe)\n\ :Altd: Key(apl_downstile)\n\ :Alte: Key(apl_epsilon)\n\ :Altf: Key(underscore)\n\ :Altg: Key(apl_del)\n\ :Alth: Key(apl_delta)\n\ :Alti: Key(apl_iota)\n\ :Altj: Key(apl_jot)\n\ :Altk: Key(apostrophe)\n\ :Altl: Key(apl_quad)\n\ :Altm: Key(apl_stile)\n\ :Altn: Key(apl_uptack)\n\ :Alto: Key(apl_circle)\n\ :Altp: Key(asterisk)\n\ :Altq: Key(question)\n\ :Altr: Key(apl_rho)\n\ :Alts: Key(apl_upstile)\n\ :Altt: Key(apl_tilde)\n\ :Altu: Key(apl_downarrow)\n\ :Altv: Key(apl_downshoe)\n\ :Altw: Key(apl_omega)\n\ :Altx: Key(apl_rightshoe)\n\ :Alty: Key(apl_uparrow)\n\ :Altz: Key(apl_leftshoe)\n\ :AltA: Key(apl_Aunderbar)\n\ :AltB: Key(apl_Bunderbar)\n\ :AltC: Key(apl_Cunderbar)\n\ :AltD: Key(apl_Dunderbar)\n\ :AltE: Key(apl_Eunderbar)\n\ :AltF: Key(apl_Funderbar)\n\ :AltG: Key(apl_Gunderbar)\n\ :AltH: Key(apl_Hunderbar)\n\ :AltI: Key(apl_Iunderbar)\n\ :AltJ: Key(apl_Junderbar)\n\ :AltK: Key(apl_Kunderbar)\n\ :AltL: Key(apl_Lunderbar)\n\ :AltM: Key(apl_Munderbar)\n\ :AltN: Key(apl_Nunderbar)\n\ :AltO: Key(apl_Ounderbar)\n\ :AltP: Key(apl_Punderbar)\n\ :AltQ: Key(apl_Qunderbar)\n\ :AltR: Key(apl_Runderbar)\n\ :AltS: Key(apl_Sunderbar)\n\ :AltT: Key(apl_Tunderbar)\n\ :AltU: Key(apl_Uunderbar)\n\ :AltV: Key(apl_Vunderbar)\n\ :AltW: Key(apl_Wunderbar)\n\ :AltX: Key(apl_Xunderbar)\n\ :AltY: Key(apl_Yunderbar)\n\ :AltZ: Key(apl_Zunderbar)\n ! ! Keymap for the "not" key, assumed to be above the "6" key on U.S. ! keyboards. This used to be part of the 3270 base keymap, but does not ! work properly on non-U.S. keyboards. x3270.keymap.not.3270: \ :asciicircum: Key(notsign) ! Helpful modifier to disply the translation table. x3270.keymap.t: \ Metat: XtDisplayTranslations()\n\ Altt: XtDisplayTranslations()\n ! International keymap modifiers. x3270.keymap.finnish7: \ :bracketleft: Key("adiaeresis")\n\ :bracketright: Key("aring")\n\ :backslash: Key("odiaeresis")\n\ :braceleft: Key("Adiaeresis")\n\ :braceright: Key("Aring")\n\ :bar: Key("Odiaeresis")\n x3270.keymap.norwegian7: \ :bracketleft: Key("ae")\n\ :backslash: Key("oslash")\n\ :bracketright: Key("aring")\n\ :braceleft: Key("AE")\n\ :bar: Key("Ooblique")\n\ :braceright: Key("Aring")\n\ :!Metau: Key("udiaeresis")\n\ :dollar: Key("currency")\n\ :at: Key("backslash")\n ! "Old" Norwegian keymap, compatible with older versions of x3270. x3270.keymap.oldnorwegian7: \ :bracketleft: Key("AE")\n\ :bracketright: Key("Aring")\n\ :backslash: Key("Ooblique")\n\ :braceleft: Key("ae")\n\ :braceright: Key("aring")\n\ :bar: Key("oslash")\n ! German keymap courtesy of Karlheinz Kandler x3270.keymap.german7: \ :bracketleft: Key("adiaeresis")\n\ :bracketright: Key("udiaeresis")\n\ :backslash: Key("odiaeresis")\n\ :braceleft: Key("Adiaeresis")\n\ :braceright: Key("Udiaeresis")\n\ :bar: Key("Odiaeresis")\n\ :asciicircum: Key("^")\n\ :asciitilde: Key("ssharp")\n\ :at: Key("section")\n ! Keymap modifier for RS/6000s with French AZERTY keyboards, which allows ! the diaeresis and circumflex keys to work intuitively (press diaereses, ! press "a", get "adiaeresis, etc.) x3270.keymap.fr6k: \ Shiftdead_diaeresis: Compose() Key(quotedbl)\n\ :dead_circumflex: Compose() Key(asciicircum)\n ! Icelandic keymap, courtesy of Rikhardur Egilsson x3270.keymap.icelandic: \ :dead_acute: Compose() Key(apostrophe)\n ! !============================================================================= ! Section 2: Labels and Messages ! ! These are resources that are likely to be modified for translation ! into another language. !============================================================================= ! x3270.errorPopup.title: x3270 Error x3270.errorPopup*cancelButton.label: Exit x3270.printerErrorPopup.title: x3270 Printer Error x3270.childErrorPopup.title: x3270 Child Process Error #ifdef X3270_MENUS x3270.infoPopup.title: x3270 Information x3270.printerInfoPopup.title: x3270 Printer Information x3270.childInfoPopup.title: x3270 Child Process Information x3270.connectPopup.title: x3270 Connect x3270.connectPopup.dialog.label: Enter Hostname x3270.fontPopup.title: x3270 Font x3270.fontPopup.dialog.label: Enter Font Name x3270.keymapPopup.title: x3270 Keymap x3270.keymapPopup.dialog.label: Enter Keymap Name x3270.oversizePopup.title: x3270 Oversize x3270.oversizePopup.dialog.label: Enter Dimensions (cols x rows) x3270.oversizePopup*confirmButton.label: Resize #endif #ifdef X3270_KEYPAD x3270.keypadPopup.title: x3270 Keypad #endif #ifdef X3270_MENUS x3270.printTextPopup.title: x3270 Screen Print x3270.printTextPopup.dialog.label: Enter Print Command x3270.printTextPopup*confirmButton.label: Print x3270.saveTextPopup.title: x3270 Screen Save x3270.saveTextPopup.dialog.label: Enter File Name x3270.saveTextPopup*confirmButton.label: Save as Text x3270.saveTextPopup*confirm2Button.label: Save as HTML x3270.printWindowPopup.title: x3270 Window Print x3270.printWindowPopup.dialog.label: Enter Print Command x3270.printWindowPopup*confirmButton.label: Print #endif #ifdef X3270_TRACE x3270.tracePopup.title: x3270 Tracing x3270.tracePopup.dialog.label: Enter Trace File Name x3270.tracePopup*confirmButton.label: Trace x3270.tracePopup*confirm2Button.label: No File x3270.screentracePopup.title: x3270 Screen Image Tracing x3270.screentracePopup.dialog.label: Enter File Name x3270.screentracePopup*confirmButton.label: Continuously x3270.screentracePopup*confirm2Button.label: Once #endif #ifdef X3270_MENUS x3270.executeActionPopup.title: x3270 Execute Action x3270.executeActionPopup.dialog.label: Enter Action and Parameters x3270.executeActionPopup*confirmButton.label: Execute x3270.saveOptionsPopup.title: x3270 Save Changed Options x3270.saveOptionsPopup.dialog.label: Enter Profile/Session File Name x3270.saveOptionsPopup*confirmButton.label: Save x3270.aboutCopyrightPopup.title: x3270 Copyright x3270.aboutConfigPopup.title: x3270 Configuration x3270.aboutStatusPopup.title: x3270 Connection Status x3270.connectPopup*confirmButton.label: Connect x3270.fontPopup*confirmButton.label: Select Font x3270.keymapPopup*confirmButton.label: Select Keymap #endif #ifdef X3270_FT x3270.ftPopup.title: x3270 File Transfer x3270.ftProgressPopup.title: x3270 File Transfer x3270.ftOverwritePopup.title: x3270 File Transfer #endif #ifdef X3270_SCRIPT x3270.idlePopup.title: x3270 Idle Command #endif x3270.kmPopup.title: x3270 Keymap x3270*confirmButton.label: OK x3270.printerErrorPopup*cancelButton.label: Abort Printer x3270.printerInfoPopup*cancelButton.label: Abort Printer x3270.childErrorPopup*cancelButton.label: Discard Output x3270.childInfoPopup*cancelButton.label: Discard Output x3270*cancelButton.label: Cancel #ifdef X3270_MENUS x3270*aboutOption.label: About x3270... x3270*aboutCopyright.label: Copyright x3270*aboutConfig.label: Configuration x3270*aboutStatus.label: Connection Status #ifdef X3270_FT x3270*ftOption.label: File Transfer... #endif #ifdef X3270_PRINTER x3270*printerOption.label: Printer Session x3270*assocButton.label: Start, associate with current LU x3270*luButton.label: Start, specific LU... x3270*printerOffButton.label: Stop Printer #endif x3270*abortScriptOption.label: Abort Scripts/Macros/Strings x3270*disconnectOption.label: Disconnect x3270*exitOption.label: Exit x3270 x3270*exitReallyOption.label: Disconnect and Exit x3270*printTextOption.label: Print Screen Text x3270*saveTextOption.label: Save Screen Text in File x3270*printWindowOption.label: Print Window Bitmap x3270*executeActionOption.label: Execute an Action x3270*fileMenuButton.label: File x3270*fileMenu.label: File #endif #ifdef X3270_FT x3270.ftPopup*justify: left x3270.ftPopup*send.label: Send to host x3270.ftPopup*receive.label: Receive from host x3270.ftPopup*ascii.label: Transfer ASCII file x3270.ftPopup*cr.label: Add/remove CR at end of line x3270.ftPopup*binary.label: Transfer binary file x3270.ftPopup*local.label: Local File Name x3270.ftPopup*host.label: Host File Name x3270.ftPopup*append.label: Append to file x3270.ftPopup*remap.label: Remap ASCII Characters x3270.ftPopup*vm.label: Host is VM/CMS x3270.ftPopup*tso.label: Host is TSO x3270.ftPopup*confirmButton.label: Transfer File x3270.ftPopup*file.label: Record Format x3270.ftPopup*recfmDefault.label: Default x3270.ftPopup*fixed.label: Fixed x3270.ftPopup*variable.label: Variable x3270.ftPopup*undefined.label: Undefined x3270.ftPopup*units.label: Space Allocation Units x3270.ftPopup*spaceDefault.label: Default x3270.ftPopup*tracks.label: Tracks x3270.ftPopup*cylinders.label: Cylinders x3270.ftPopup*avblock.label: Avblock x3270.ftPopup*lrecl.label: LRECL x3270.ftPopup*blksize.label: BLKSIZE x3270.ftPopup*primspace.label: Primary Space x3270.ftPopup*secspace.label: Secondary Space x3270.ftPopup*buffersize.label: DFT Buffer Size x3270.ftProgressPopup*fromLabel.label: Source: x3270.ftProgressPopup*fromLabel.justify: right x3270.ftProgressPopup*toLabel.label: Destination: x3270.ftProgressPopup*toLabel.justify: right x3270.ftProgressPopup*filename.justify: left x3270.ftOverwritePopup*overwriteName.label: Overwrite existing file %s? x3270.ftProgressPopup*waiting.label: Waiting for host acknowledgment... x3270.ftProgressPopup*status.label: %lu bytes transferred x3270.ftProgressPopup*aborting.label: Aborting transfer... #endif #ifdef X3270_SCRIPT x3270.idlePopup*justify: left x3270.idlePopup*command.label: Command(s) x3270.idlePopup*timeout.label: Timeout Value x3270.idlePopup*enable.label: Enable for this session x3270.idlePopup*enablePerm.label: Enable whenever connected x3270.idlePopup*disable.label: Disable x3270.idlePopup*hours.label: Hours x3270.idlePopup*minutes.label: Minutes x3270.idlePopup*seconds.label: Seconds x3270.idlePopup*fuzz.label: Vary time 0..10% #endif #ifdef X3270_PRINTER x3270.printerLuPopup.title: x3270 Printer Session x3270.printerLuPopup.dialog.label: Enter LU Name x3270.printerLuPopup*confirmButton.label: Start Session #endif #ifdef X3270_MENUS x3270*optionsMenuButton.label: Options x3270*optionsMenu.label: Options x3270*connectMenuButton.label: Connect x3270*macrosMenuButton.label: Macros x3270*macrosMenu.label: Macros x3270*hostMenu.label: Connect x3270*helpButton.label: Help x3270*otherHostOption.label: Other... x3270*togglesOption.label: Toggles x3270*fontsOption.label: Font x3270*modelsOption.label: Screen Size x3270*colorsOption.label: Color Scheme x3270*charsetOption.label: Character Set x3270*keymapOption.label: Change Keymap... x3270*idleCommandOption.label: Configure Idle Command x3270*keypadOption.label: Keypad x3270*monocaseOption.label: Monocase x3270*cursorBlinkOption.label: Blinking Cursor x3270*showTimingOption.label: Show Timing x3270*cursorPosOption.label: Track Cursor x3270*dsTraceOption.label: Trace Data Stream x3270*eventTraceOption.label: Trace Keyboard/Mouse Events x3270*screenTraceOption.label: Save Screen(s) in File x3270*scrollBarOption.label: Scrollbar x3270*lineWrapOption.label: Wraparound x3270*marginedPasteOption.label: Paste with Left Margin x3270*rectangleSelectOption.label: Select by Rectangles x3270*blankFillOption.label: Blank Fill x3270*crosshairOption.label: Crosshair Cursor x3270*visibleControlOption.label: Visible Control Chars x3270*underlineCursorOption.label: Underline Cursor x3270*blockCursorOption.label: Block Cursor x3270*otherFontOption.label: Other... x3270*lineModeOption.label: Line Mode x3270*characterModeOption.label: Character Mode x3270*extendedDsOption.label: Extended 3270 Data Stream x3270*m3278Option.label: Monochrome (3278) Emulation x3270*m3279Option.label: Color (3279) Emulation x3270*model2Option.label: Model 2 (80x24) x3270*model3Option.label: Model 3 (80x32) x3270*model4Option.label: Model 4 (80x43) x3270*model5Option.label: Model 5 (132x27) x3270*oversizeOption.label: Oversize... x3270*saveOption.label: Save Changed Options #endif ! ! Messages #ifdef X3270_MENUS x3270.message.processId: Process ID: x3270.message.windowId: Main window ID: x3270.message.model: Model x3270.message.rows: rows x3270.message.columns: columns x3270.message.mono: monochrome x3270.message.fullColor: color x3270.message.pseudoColor: pseudo-color x3270.message.extendedDs: extended data stream x3270.message.standardDs: standard data stream x3270.message.terminalName: Terminal name: x3270.message.luName: LU name: x3270.message.bindPluName: BIND PLU name: x3270.message.emulatorFont: Emulator font: x3270.message.emulatorFontDbcs: DBCS emulator font: x3270.message.xFont: standard X11 font x3270.message.cgFont: special 3270 CG font x3270.message.charset: Host EBCDIC character set: x3270.message.sbcsCgcsgid: Host SBCS CGCSGID: x3270.message.dbcsCgcsgid: Host DBCS CGCSGID: x3270.message.defaultCharacterSet: Default (us) EBCDIC character set x3270.message.displayCharacterSet: Display character set: x3270.message.displayCharacterSetDbcs: DBCS display character set: x3270.message.localeCodeset: Locale codeset: x3270.message.require: require x3270.message.have: have x3270.message.keyboardMap: Keyboard map: x3270.message.defaultKeyboardMap: Default keyboard map x3270.message.composeMap: Compose-key map: x3270.message.noComposeMap: No compose-key map x3270.message.activeIcon: Active icon x3270.message.iconFont: Icon font: x3270.message.iconLabelFont: Icon label font: x3270.message.staticIcon: Static bitmap icon x3270.message.connectedTo: Connected to: x3270.message.port: Port: x3270.message.secure: via TLS/SSL x3270.message.proxyType: Proxy type: x3270.message.server: Server: x3270.message.charMode: NVT character mode x3270.message.lineMode: NVT line mode x3270.message.dsMode: 3270 mode x3270.message.sscpMode: SSCP-LU mode x3270.message.tn3270eOpts: TN3270E options: x3270.message.tn3270eNoOpts: No TN3270E options x3270.message.connectionPending: Connection pending to: x3270.message.notConnected: Not connected x3270.message.specialCharacters: Special characters: x3270.message.hour: hour x3270.message.hours: hours x3270.message.minute: minute x3270.message.minutes: minutes x3270.message.second: second x3270.message.seconds: seconds x3270.message.sent: Sent x3270.message.Received: Received x3270.message.received: received x3270.message.byte: byte x3270.message.bytes: bytes x3270.message.record: record x3270.message.records: records x3270.message.statusDbcs: DBCS x3270.message.statusNotConnected: Not Connected x3270.message.statusTwait: Wait x3270.message.statusSyswait: System x3270.message.statusProtected: Protected x3270.message.statusNumeric: Numeric x3270.message.statusOverflow: Overflow x3270.message.statusInhibit: Inhibit x3270.message.statusScrolled: Scrolled x3270.message.statusMinus: No Function #endif x3270.message.statusConnecting: Connecting #endif #ifdef X3270_FT x3270.message.ftComplete: Transfer complete, %i bytes transferred\n\ %sbytes/sec in %s mode x3270.message.ftUnable: Cannot begin transfer x3270.message.ftStartTimeout: Transfer did not start within 10s x3270.message.ftUserCancel: Transfer cancelled by user x3270.message.ftHostCancel: Transfer cancelled by host x3270.message.ftCutUnknownFrame: Unknown frame type from host x3270.message.ftCutUnknownControl: Unknown FT control code from host x3270.message.ftCutRetransmit: Transmission error x3270.message.ftCutConversionError: Data conversion error x3270.message.ftCutOversize: Illegal frame length x3270.message.ftDisconnected: Host disconnected, transfer cancelled x3270.message.ftNot3270: Not in 3270 mode, transfer cancelled x3270.message.ftDftUnknownOpen: Uknown DFT Open type from host #endif x3270.message.inputMethod: X11 Input Method (XIM): x3270.message.ximState: state: x3270.message.ximDisabled: failed x3270.message.ximNotFound: not found x3270.message.ximActive: active x3270.message.ximLocale: locale: x3270.message.ximEncoding: encoding: #ifndef STANDALONE x3270.message.kmEvent: Event x3270.message.kmKeymapLine: Keymap:Line x3270.message.kmActions: Actions x3270.message.kmOverridden: \ -- overridden -- x3270.message.kmKeymap: Keymap x3270.message.kmTemporaryKeymap: Temporary keymap x3270.message.kmFile: from file x3270.message.kmResource: from resource x3270.message.kmFromServer: \ (expanded from '@server') ! !============================================================================= ! Section 3: Base-Level Resources ! ! Resources required for the basic operation of x3270, not for the ! faint-hearted to modify. !============================================================================= ! ! App-defaults file version x3270.adVersion: 3.3.4 ! ! Fonts #ifdef X3270_APL x3270.aplFont: 3270 #endif x3270.debugFont: 3270d x3270.iconFont: nil2 x3270.iconLabelFont: 8x13 #ifdef X3270_KEYPAD x3270*keyPad*large*font: fixed x3270*keyPad*small*font: -*-fixed-medium-r-semicondensed-*-12-*-* #endif x3270*value*font: fixed x3270*dataLabel.font: -*-courier-medium-r-normal--14-*-100-100-m-*-iso8859-1 !x3270*smallLabel.font: 5x7 x3270*smallLabel.font: 6x13 x3270*filename*font: fixed x3270*kmPopup*text*font: fixed x3270*font: -*-helvetica-bold-r-normal--14-*-100-100-p-*-iso8859-1 ! ! Menu configuration #ifdef X3270_MENUS x3270*menuBarContainer.borderWidth: 2 #endif #ifdef COLOR #ifdef X3270_KEYPAD x3270.keypadBackground: grey #endif #ifdef X3270_MENUS x3270*menuBarContainer.background: grey x3270*menuBarContainer.borderColor: grey40 x3270*fileMenuButton*background: grey x3270*optionsMenuButton*background: grey x3270*connectMenuButton*background: grey x3270*macrosMenuButton*background: grey x3270*helpButton*background: grey x3270*keypadButton*background: grey x3270*lockedIcon*background: grey x3270*lockedIcon*foreground: yellow4 x3270*lockedIcon*borderColor: grey x3270*unlockedIcon*background: grey x3270*unlockedIcon*borderColor: grey x3270*fileMenuButton*borderColor: grey x3270*optionsMenuButton*borderColor: grey x3270*connectMenuButton*borderColor: grey x3270*macrosMenuButton*borderColor: grey x3270*helpButton*borderColor: grey #endif #else #ifdef X3270_MENUS x3270*fileMenuButton*borderColor: XtDefaultBackground x3270*optionsMenuButton*borderColor: XtDefaultBackground x3270*connectMenuButton*borderColor: XtDefaultBackground x3270*macrosMenuButton*borderColor: XtDefaultBackground x3270*helpButton*borderColor: XtDefaultBackground #endif #endif #ifdef X3270_MENUS x3270*fileMenuButton*highlightThickness: 1 x3270*optionsMenuButton*highlightThickness: 1 x3270*connectMenuButton*highlightThickness: 1 x3270*macrosMenuButton*highlightThickness: 1 x3270*helpButton*highlightThickness: 1 x3270*keypadButton*highlightThickness: 1 #ifdef COLOR x3270*fileMenu*background: grey x3270*exitMenu*background: grey x3270*optionsMenu*background: grey x3270*hostMenu*background: grey x3270*macrosMenu*background: grey x3270*togglesMenu*background: grey x3270*fontsMenu*background: grey x3270*modelsMenu*background: grey x3270*colorsMenu*background: grey x3270*charsetMenu*background: grey x3270*printerMenu*background: grey #endif x3270*fileMenu.borderWidth: 2 x3270*exitMenu.borderWidth: 2 x3270*optionsMenu.borderWidth: 2 x3270*hostMenu.borderWidth: 2 x3270*macrosMenu.borderWidth: 2 x3270*togglesMenu.borderWidth: 2 x3270*fontsMenu.borderWidth: 2 x3270*modelsMenu.borderWidth: 2 x3270*colorsMenu.borderWidth: 2 x3270*charsetMenu.borderWidth: 2 #ifdef COLOR x3270*fileMenu.borderColor: grey40 x3270*exitMenu.borderColor: grey40 x3270*optionsMenu.borderColor: grey40 x3270*hostMenu.borderColor: grey40 x3270*macrosMenu.borderColor: grey40 x3270*togglesMenu.borderColor: grey40 x3270*fontsMenu.borderColor: grey40 x3270*modelsMenu.borderColor: grey40 x3270*colorsMenu.borderColor: grey40 x3270*charsetMenu.borderColor: grey40 #endif x3270*fileMenu*leftMargin: 20 x3270*fileMenu*rightMargin: 20 x3270*optionsMenu*rightMargin: 20 x3270*togglesMenu*leftMargin: 20 x3270*fontsMenu*leftMargin: 20 x3270*fontsMenu*rightMargin: 20 x3270*modelsMenu*leftMargin: 20 x3270*colorsMenu*leftMargin: 20 x3270*colorsMenu*rightMargin: 20 x3270*charsetMenu*leftMargin: 20 x3270*charsetMenu*rightMargin: 20 x3270*hostMenu*rightMargin: 20 x3270*macrosMenu*rightMargin: 20 #endif ! ! Confirm and cancel buttons ! borderWidth and borderColor are never specified anywhere else, so these ! always apply x3270*confirmButton.borderWidth: 2 x3270*confirm2Button*borderWidth: 2 x3270*cancelButton*borderWidth: 2 #ifdef COLOR x3270**confirmButton.borderColor: grey40 x3270**confirmButton.borderColor: grey40 x3270**confirm2Button.borderColor: grey40 x3270**cancelButton.borderColor: grey40 #endif ! foreground and background are often overridden by other resources, so they ! must be specified explicitly for each instance #ifdef COLOR x3270*dialog*confirmButton.foreground: black x3270*dialog*confirmButton.background: grey80 x3270*dialog*confirm2Button.background: grey80 x3270*dialog*cancelButton.foreground: firebrick x3270*dialog*cancelButton.background: grey80 #endif ! ! Values ! borderWidth and borderColor are never specified anywhere else, so these ! always apply #ifdef COLOR x3270*value.borderWidth: 2 x3270*value.borderColor: grey40 #endif ! background is overridden by dialog*background, so it must be specified ! explicitly #ifdef COLOR x3270*dialog*value*background: lavender #endif ! ! Overall defaults for dialog boxes #ifdef COLOR x3270*dialog*background: grey x3270*dialog*foreground: black #endif ! ! Fixed popup sizes x3270.errorPopup.width: 500 x3270.printerErrorPopup.width: 500 x3270.childErrorPopup.width: 500 x3270.infoPopup.width: 500 x3270.printerInfoPopup.width: 500 x3270.childInfoPopup.width: 500 x3270.printerLuPopup.width: 300 x3270.connectPopup.width: 300 x3270.fontPopup.width: 300 x3270.keymapPopup.width: 300 x3270.oversizePopup.width: 300 x3270.printTextPopup.width: 300 x3270.saveTextPopup.width: 300 x3270.printWindowPopup.width: 300 x3270.tracePopup.width: 300 x3270.screentracePopup.width: 300 x3270.executeActionPopup.width: 300 x3270.saveOptionsPopup.width: 300 ! ! Nondefault definitions for complex pop-ups #ifdef COLOR x3270.aboutCopyrightPopup*icon.foreground: darkslateblue x3270.aboutConfigPopup*icon.foreground: darkslateblue x3270.aboutStatusPopup*icon.foreground: darkslateblue x3270.errorPopup*label.foreground: firebrick x3270.printerErrorPopup*label.foreground: firebrick x3270.childErrorPopup*label.foreground: firebrick #ifdef X3270_FT x3270.ftProgressPopup*filename.borderWidth: 2 x3270.ftProgressPopup*filename.borderColor: grey40 x3270.ftProgressPopup*filename.background: lavender #endif #endif ! #ifdef X3270_KEYPAD ! Keypad key dimensions, in pixels x3270.keypad.keyHeight: 24 x3270.keypad.keyWidth: 48 x3270.keypad.pfWidth: 32 x3270.keypad.paWidth: 36 x3270.keypad.largeKeyWidth: 56 #endif ! ! Keymap display pop-up ! x3270*keymapDisplayOption.label: Display Current Keymap x3270.kmPopup*label.label: Current Keyboard Map x3270.kmPopup*sortActionOption.label: Sort by Action x3270.kmPopup*sortKeymapOption.label: Sort by Keymap x3270.kmPopup*sortEventOption.label: Sort by Event x3270.kmPopup*text*background: lavender x3270.kmPopup*text*foreground: black x3270.kmPopup*text.height: 250 x3270.kmPopup*text.width: 500 ! ! Basic event translations -- these should NEVER be changed without significant ! code changes x3270.translations: #override \n\ WM_PROTOCOLS: PA-WMProtocols()\n\ : PA-KeymapNotify()\n\ WM_STATE: PA-StateChanged()\n\ : PA-Focus()\n\ : PA-Focus()\n\ : PA-ConfigureNotify() x3270.container.translations: #override \n\ Shift_L: PA-Shift()\n\ Shift_L: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_R: PA-Shift()\n\ Alt_R: PA-Shift()\n\ :: Default()\n\ :: Default()\n\ :: Default() x3270*screen.translations: #override \n\ : PA-Expose()\n\ : PA-VisibilityNotify()\n\ : PA-GraphicsExpose()\n\ Shift_L: PA-Shift()\n\ Shift_L: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_R: PA-Shift()\n\ Alt_R: PA-Shift()\n\ :: Default()\n\ :: Default()\n\ :: Default() x3270icon.translations: #override \n\ : PA-Expose() #ifdef X3270_KEYPAD x3270.keypadPopup.translations: #override \n\ WM_PROTOCOLS: PA-WMProtocols()\n\ : PA-KeymapNotify()\n\ : PA-EnterLeave()\n\ : PA-EnterLeave() x3270.keypadPopup.container.translations: #override \n\ Shift_L: PA-Shift()\n\ Shift_L: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_R: PA-Shift()\n\ Alt_R: PA-Shift()\n\ :: Default() #endif x3270.errorPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printerErrorPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.childErrorPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.errorPopup*translations: #override \n\ Return: PA-confirm() x3270.printerErrorPopup*translations: #override \n\ Return: PA-confirm() x3270.childErrorPopup*translations: #override \n\ Return: PA-confirm() x3270.infoPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printerInfoPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.childInfoPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.infoPopup*translations: #override \n\ Return: PA-confirm() x3270.printerInfoPopup*translations: #override \n\ Return: PA-confirm() x3270.childInfoPopup*translations: #override \n\ Return: PA-confirm() #ifdef X3270_MENUS x3270.connectPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.fontPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.keymapPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printTextPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.saveTextPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printWindowPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.tracePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.screentracePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.executeActionPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.saveOptionsPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutCopyrightPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutCopyrightPopup*translations: #override \n\ Return: PA-confirm() x3270.aboutConfigPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutConfigPopup*translations: #override \n\ Return: PA-confirm() x3270.aboutStatusPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutStatusPopup*translations: #override \n\ Return: PA-confirm() x3270.kmPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.kmPopup*translations: #override \n\ Return: PA-confirm() x3270.luPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() #endif #ifdef X3270_FT x3270.ftPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() ! Note: WM_PROTOCOLS is explicitly not defined for ftPopup, so that the user ! can clear error conditions while a transfer is in progress. x3270.ftOverwritePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.ftPopup*value.translations: #override \n\ Return: PA-dialog-next()\n\ Tab: PA-dialog-next()\n\ : PA-dialog-focus() select-start()\n\ CtrlU: select-all(DUMMY) delete-selection() #endif #ifdef X3270_SCRIPT x3270.idlePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.idlePopup*value.translations: #override \n\ Return: PA-dialog-next()\n\ Tab: PA-dialog-next()\n\ : PA-dialog-focus() select-start()\n\ CtrlU: select-all(DUMMY) delete-selection() #endif x3270*value.translations: #override \n\ Return: PA-confirm()\n\ CtrlU: select-all(DUMMY) delete-selection() x3270*value.width: 200 ! Workaround for Xaw MenuButton bug that keeps menu items from highlighting ! when CapsLock or NumLock are down. Technically, this would require ! translations for all permutations of all 8 modifiers: shift, lock, control, ! mod1, mod2, mod3, mod4 and mod5. However, we will leave out shift and ! control, since they are "voluntary" key presses and would quadruple the ! size of this resource. x3270*MenuButton.translations: #override \n\ Lock: reset() PopupMenu()\n\ Mod1: reset() PopupMenu()\n\ Lock Mod1: reset() PopupMenu()\n\ Mod2: reset() PopupMenu()\n\ Lock Mod2: reset() PopupMenu()\n\ Mod1 Mod2: reset() PopupMenu()\n\ Lock Mod1 Mod2: reset() PopupMenu()\n\ Mod3: reset() PopupMenu()\n\ Lock Mod3: reset() PopupMenu()\n\ Mod1 Mod3: reset() PopupMenu()\n\ Lock Mod1 Mod3: reset() PopupMenu()\n\ Mod2 Mod3: reset() PopupMenu()\n\ Lock Mod2 Mod3: reset() PopupMenu()\n\ Mod1 Mod2 Mod3: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3: reset() PopupMenu()\n\ Mod4: reset() PopupMenu()\n\ Lock Mod4: reset() PopupMenu()\n\ Mod1 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod4: reset() PopupMenu()\n\ Mod2 Mod4: reset() PopupMenu()\n\ Lock Mod2 Mod4: reset() PopupMenu()\n\ Mod1 Mod2 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod4: reset() PopupMenu()\n\ Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod3 Mod4: reset() PopupMenu()\n\ Mod1 Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod3 Mod4: reset() PopupMenu()\n\ Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Mod1 Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Mod5: reset() PopupMenu()\n\ Lock Mod5: reset() PopupMenu()\n\ Mod1 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod5: reset() PopupMenu()\n\ Mod2 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod5: reset() PopupMenu()\n\ Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod3 Mod5: reset() PopupMenu()\n\ Mod1 Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod3 Mod5: reset() PopupMenu()\n\ Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod4 Mod5: reset() PopupMenu()\n\ Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Mod2 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3 Mod4 Mod5: reset() PopupMenu() #endif ! Default compose-key map. ! Each line is of the form "keysym1 + keysym2 = keysym3", meaning "when the ! Compose key is pressed, followed by keysym1 and keysym2 (in either order), ! interpret it as keysym3." The definitions are case-sensitive. x3270.composeMap.latin1: \ c + bar = cent \n\ c + slash = cent \n\ L + minus = sterling \n\ Y + equal = yen \n\ S + S = section \n\ C + O = copyright \n\ a + underscore = ordfeminine \n\ less + less = guillemotleft \n\ R + O = registered \n\ plus + minus = plusminus \n\ o + underscore = masculine \n\ greater + greater = guillemotright \n\ 1 + 4 = onequarter \n\ 1 + 2 = onehalf \n\ 3 + 4 = threequarters \n\ bar + bar = brokenbar \n\ A + grave = Agrave \n\ A + apostrophe = Aacute \n\ A + asciicircum = Acircumflex \n\ A + asciitilde = Atilde \n\ A + quotedbl = Adiaeresis \n\ A + asterisk = Aring \n\ A + E = AE \n\ C + comma = Ccedilla \n\ C + apostrophe = Ccedilla \n\ E + grave = Egrave \n\ E + apostrophe = Eacute \n\ E + asciicircum = Ecircumflex \n\ E + quotedbl = Ediaeresis \n\ I + grave = Igrave \n\ I + apostrophe = Iacute \n\ I + asciicircum = Icircumflex \n\ I + quotedbl = Idiaeresis \n\ N + asciitilde = Ntilde \n\ O + grave = Ograve \n\ O + apostrophe = Oacute \n\ O + asciicircum = Ocircumflex \n\ O + asciitilde = Otilde \n\ O + quotedbl = Odiaeresis \n\ O + slash = Ooblique \n\ U + grave = Ugrave \n\ U + apostrophe = Uacute \n\ U + asciicircum = Ucircumflex \n\ U + quotedbl = Udiaeresis \n\ Y + apostrophe = Yacute \n\ s + s = ssharp \n\ a + grave = agrave \n\ a + apostrophe = aacute \n\ a + asciicircum = acircumflex \n\ a + asciitilde = atilde \n\ a + quotedbl = adiaeresis \n\ a + asterisk = aring \n\ a + e = ae \n\ c + comma = ccedilla \n\ c + apostrophe = ccedilla \n\ e + grave = egrave \n\ e + apostrophe = eacute \n\ e + asciicircum = ecircumflex \n\ e + quotedbl = ediaeresis \n\ i + grave = igrave \n\ i + apostrophe = iacute \n\ i + asciicircum = icircumflex \n\ i + quotedbl = idiaeresis \n\ n + asciitilde = ntilde \n\ o + grave = ograve \n\ o + apostrophe = oacute \n\ o + asciicircum = ocircumflex \n\ o + asciitilde = otilde \n\ o + quotedbl = odiaeresis \n\ o + slash = oslash \n\ u + grave = ugrave \n\ u + apostrophe = uacute \n\ u + asciicircum = ucircumflex \n\ u + quotedbl = udiaeresis \n\ y + apostrophe = yacute \n\ y + quotedbl = ydiaeresis \n\ apostrophe + apostrophe = apostrophe \n\ apostrophe + space = apostrophe \n\ asciicircum + asciicircum = asciicircum \n\ asciicircum + space = asciicircum \n\ asciitilde + asciitilde = asciitilde \n\ asciitilde + space = asciitilde \n\ grave + grave = grave \n\ grave + space = grave \n\ quotedbl + quotedbl = quotedbl \n\ quotedbl + space = quotedbl \n #ifndef STANDALONE #ifdef X3270_APL ! ! Compose-key map for APL. x3270.composeMap.apl: \ A + underscore = apl_Aunderbar \n\ B + underscore = apl_Bunderbar \n\ C + underscore = apl_Cunderbar \n\ D + underscore = apl_Dunderbar \n\ E + underscore = apl_Eunderbar \n\ F + underscore = apl_Funderbar \n\ G + underscore = apl_Gunderbar \n\ H + underscore = apl_Hunderbar \n\ I + underscore = apl_Iunderbar \n\ J + underscore = apl_Junderbar \n\ K + underscore = apl_Kunderbar \n\ L + underscore = apl_Lunderbar \n\ M + underscore = apl_Munderbar \n\ N + underscore = apl_Nunderbar \n\ O + underscore = apl_Ounderbar \n\ P + underscore = apl_Punderbar \n\ Q + underscore = apl_Qunderbar \n\ R + underscore = apl_Runderbar \n\ S + underscore = apl_Sunderbar \n\ T + underscore = apl_Tunderbar \n\ U + underscore = apl_Uunderbar \n\ V + underscore = apl_Vunderbar \n\ W + underscore = apl_Wunderbar \n\ X + underscore = apl_Xunderbar \n\ Y + underscore = apl_Yunderbar \n\ Z + underscore = apl_Zunderbar \n\ apl_upcaret + apl_downcaret = apl_diamond \n\ apl_quad + apl_jot = apl_quadjot \n\ apl_iota + underscore = apl_iotaunderbar \n\ apl_epsilon + underscore = apl_epsilonunderbar \n\ less + equal = apl_notgreater \n\ plus + minus = apl_plusminus \n\ greater + equal = apl_notless \n\ equal + slash = apl_notequal \n\ apl_upcaret + apl_tilde = apl_upcarettilde \n\ apl_upcaret + asciitilde = apl_upcarettilde \n\ apl_downcaret + apl_tilde = apl_downcarettilde \n\ apl_downcaret + asciitilde = apl_downcarettilde \n\ apl_circle + apl_stile = apl_circlestile \n\ apl_circle + bar = apl_circlestile \n\ apl_quad + apl_slope = apl_slopequad \n\ apl_quad + backslash = apl_slopequad \n\ apl_circle + apl_slope = apl_circleslope \n\ apl_circle + backslash = apl_circleslope \n\ apl_downtack + apl_uptack = apl_downtackup \n\ apostrophe + period = apl_quotedot \n\ apl_del + apl_stile = apl_delstile \n\ apl_del + bar = apl_delstile \n\ apl_delta + apl_stile = apl_deltastile \n\ apl_delta + bar = apl_deltastile \n\ apl_quad + apostrophe = apl_quadquote \n\ apl_upshoe + apl_jot = apl_upshoejot \n\ slash + minus = apl_slashbar \n\ apl_slope + minus = apl_slopebar \n\ backslash + minus = apl_slopebar \n\ apl_diaeresis + period = apl_diaeresisdot \n\ apl_circle + minus = apl_circlebar \n\ apl_quad + apl_divide = apl_quaddivide \n\ apl_uptack + apl_jot = apl_uptackjot \n\ apl_del + apl_tilde = apl_deltilde \n\ apl_del + asciitilde = apl_deltilde \n\ apl_delta + underscore = apl_deltaunderbar \n\ apl_circle + asterisk = apl_circlestar \n\ apl_downtack + apl_jot = apl_downtackjot \n\ equal + underscore = apl_equalunderbar \n\ apl_quad + apl_quad = apl_squad \n\ apl_diaeresis + apl_jot = apl_diaeresisjot \n\ apl_diaeresis + apl_circle = apl_diaeresiscircle \n\ comma + minus = apl_commabar \n\ c + equal = apl_euro \n\ C + equal = apl_euro \n\ minus + parenleft = apl_lefttack \n\ minus + parenright = apl_righttack \n #endif #endif #ifdef STANDALONE #ifdef _WIN32 ! wc3270 keymap for more 3270-ish behavior: The Enter key is Newline and the ! Right-Ctrl key is Enter. x3270.keymap.rctrl.3270: \ RightCtrlCTRL: Enter()\n\ Return: Newline() #endif #endif ibm-3270-3.3.10ga4/c3270/c3270.c0000644000175000017500000010670011254565674014641 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * c3270.c * A curses-based 3270 Terminal Emulator * A Windows console 3270 Terminal Emulator * Main proceudre. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "gluec.h" #include "hostc.h" #include "idlec.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "printerc.h" #include "screenc.h" #include "statusc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "utf8c.h" #include "utilc.h" #include "xioc.h" #if defined(HAVE_LIBREADLINE) /*[*/ #include #if defined(HAVE_READLINE_HISTORY_H) /*[*/ #include #endif /*]*/ #endif /*]*/ #if defined(_WIN32) /*[*/ #include #include "w3miscc.h" #include "winversc.h" #include "windirsc.h" #include "relinkc.h" #include #endif /*]*/ #if defined(_WIN32) /*[*/ # define PROGRAM_NAME "wc3270" #else /*][*/ # define PROGRAM_NAME "c3270" #endif /*]*/ #if defined(_WIN32) /*[*/ # define DELENV "WC3DEL" #endif /*]*/ static void interact(void); static void stop_pager(void); #if defined(HAVE_LIBREADLINE) /*[*/ static CPPFunction attempted_completion; static char *completion_entry(const char *, int); #endif /*]*/ /* Pager state. */ #if !defined(_WIN32) /*[*/ static FILE *pager = NULL; #else /*][*/ static int pager_rowcnt = 0; static Boolean pager_q = False; #endif /*]*/ #if !defined(_WIN32) /*[*/ /* Base keymap. */ static char *base_keymap1 = "Ctrl]: Escape\n" "Ctrla Ctrla: Key(0x01)\n" "Ctrla Ctrl]: Key(0x1d)\n" "Ctrla c: Clear\n" "Ctrla e: Escape\n" "Ctrla i: Insert\n" "Ctrla r: Reset\n" "Ctrla l: Redraw\n" "Ctrla m: Compose\n" "Ctrla ^: Key(notsign)\n" "DC: Delete\n" "UP: Up\n" "DOWN: Down\n" "LEFT: Left\n" "RIGHT: Right\n" "HOME: Home\n" "Ctrla 1: PA(1)\n" "Ctrla 2: PA(2)\n" "Ctrla 3: PA(3)\n"; static char *base_keymap2 = "F1: PF(1)\n" "Ctrla F1: PF(13)\n" "F2: PF(2)\n" "Ctrla F2: PF(14)\n" "F3: PF(3)\n" "Ctrla F3: PF(15)\n" "F4: PF(4)\n" "Ctrla F4: PF(16)\n" "F5: PF(5)\n" "Ctrla F5: PF(17)\n" "F6: PF(6)\n" "Ctrla F6: PF(18)\n"; static char *base_keymap3 = "F7: PF(7)\n" "Ctrla F7: PF(19)\n" "F8: PF(8)\n" "Ctrla F8: PF(20)\n" "F9: PF(9)\n" "Ctrla F9: PF(21)\n" "F10: PF(10)\n" "Ctrla F10: PF(22)\n" "F11: PF(11)\n" "Ctrla F11: PF(23)\n" "F12: PF(12)\n" "Ctrla F12: PF(24)\n"; /* Base keymap, 3270 mode. */ static char *base_3270_keymap = "Ctrla a: Attn\n" "Ctrlc: Clear\n" "Ctrld: Dup\n" "Ctrlf: FieldMark\n" "Ctrlh: Erase\n" "Ctrli: Tab\n" "Ctrlj: Newline\n" "Ctrll: Redraw\n" "Ctrlm: Enter\n" "Ctrlr: Reset\n" "Ctrlu: DeleteField\n" "Ctrla v: ToggleReverse\n" "Ctrla f: Flip\n" "IC: ToggleInsert\n" "DC: Delete\n" "BACKSPACE: Erase\n" "HOME: Home\n" "END: FieldEnd\n"; #else /*][*/ /* Base keymap. */ static char *base_keymap = "Alt 1: PA(1)\n" "Alt 2: PA(2)\n" "Alt 3: PA(3)\n" "Alt ^: Key(notsign)\n" "Alt c: Clear\n" "Alt C: Clear\n" "Alt l: Redraw\n" "Alt L: Redraw\n" "Alt m: Compose\n" "Alt M: Compose\n" "Alt p: PrintText\n" "Alt P: PrintText\n" "Ctrl ]: Escape\n" "Shift F1: PF(13)\n" "Shift F2: PF(14)\n" "Shift F3: PF(15)\n" "Shift F4: PF(16)\n" "Shift F5: PF(17)\n" "Shift F6: PF(18)\n" "Shift F7: PF(19)\n" "Shift F8: PF(20)\n" "Shift F9: PF(21)\n" "Shift F10: PF(22)\n" "Shift F11: PF(23)\n" "Shift F12: PF(24)\n" "Shift ESCAPE: Key(0x1d)\n"; /* Base keymap, 3270 mode. */ static char *base_3270_keymap = "Ctrl a: Attn\n" "Alt a: Attn\n" "Alt A: Attn\n" "Ctrl c: Clear\n" "Ctrl d: Dup\n" "Alt d: Dup\n" "Alt D: Dup\n" "Ctrl f: FieldMark\n" "Alt f: FieldMark\n" "Alt F: FieldMark\n" "Ctrl h: Erase\n" "Alt i: Insert\n" "Alt I: Insert\n" "Ctrl i: Tab\n" "Ctrl j: Newline\n" "Ctrl l: Redraw\n" "Ctrl m: Enter\n" "Ctrl r: Reset\n" "Alt r: Reset\n" "Alt R: Reset\n" "Ctrl u: DeleteField\n" "Ctrl v: Paste\n" "Alt v: ToggleReverse\n" "Alt x: Flip\n" "INSERT: ToggleInsert\n" "Shift TAB: BackTab\n" "BACK: Erase\n" "Shift END: EraseEOF\n" "END: FieldEnd\n" "Shift LEFT: PreviousWord\n" "Shift RIGHT: NextWord\n" "PRIOR: PF(7)\n" "NEXT: PF(8)"; #endif /*]*/ Boolean any_error_output = False; Boolean escape_pending = False; Boolean stop_pending = False; Boolean dont_return = False; #if defined(_WIN32) /*[*/ char *instdir = NULL; char *myappdata = NULL; int is_installed; static void start_auto_shortcut(void); #endif /*]*/ void usage(char *msg) { if (msg != CN) fprintf(stderr, "%s\n", msg); fprintf(stderr, "Usage: %s [options] [ps:][LUname@]hostname[:port]\n", programname); fprintf(stderr, "Options:\n"); cmdline_help(False); exit(1); } /* Callback for connection state changes. */ static void main_connect(Boolean ignored) { if (CONNECTED || appres.disconnect_clear) { #if defined(C3270_80_132) /*[*/ if (appres.altscreen != CN) ctlr_erase(False); else #endif /*]*/ ctlr_erase(True); } } /* Callback for application exit. */ static void main_exiting(Boolean ignored) { if (escaped) stop_pager(); else screen_suspend(); } /* Make sure error messages are seen. */ static void pause_for_errors(void) { char s[10]; if (any_error_output) { screen_suspend(); printf("[Press ] "); fflush(stdout); if (fgets(s, sizeof(s), stdin) == NULL) x3270_exit(1); any_error_output = False; } } #if !defined(_WIN32) /*[*/ /* Empty SIGCHLD handler, ensuring that we can collect child exit status. */ static void sigchld_handler(int ignored) { #if !defined(_AIX) /*[*/ (void) signal(SIGCHLD, sigchld_handler); #endif /*]*/ } #endif /*]*/ int main(int argc, char *argv[]) { const char *cl_hostname = CN; #if defined(_WIN32) /*[*/ char *delenv; #endif /*]*/ #if defined(_WIN32) /*[*/ (void) get_version_info(); if (get_dirs(argv[0], "wc3270", &instdir, NULL, &myappdata, &is_installed) < 0) x3270_exit(1); if (sockstart()) x3270_exit(1); #endif /*]*/ add_resource("keymap.base", #if defined(_WIN32) /*[*/ base_keymap #else /*][*/ xs_buffer("%s%s%s", base_keymap1, base_keymap2, base_keymap3) #endif /*]*/ ); add_resource("keymap.base.3270", NewString(base_3270_keymap)); argc = parse_command_line(argc, (const char **)argv, &cl_hostname); printf("%s\n\n" "Copyright 1989-2009 by Paul Mattes, GTRC and others.\n" "Type 'show copyright' for full copyright information.\n" "Type 'help' for help information.\n\n", build); #if defined(_WIN32) /*[*/ /* Delete the link file, if we've been told do. */ delenv = getenv(DELENV); if (delenv != NULL) { unlink(delenv); putenv(DELENV "="); } /* Check for auto-shortcut mode. */ if (appres.auto_shortcut) { start_auto_shortcut(); exit(0); } #endif /*]*/ if (charset_init(appres.charset) != CS_OKAY) { xs_warning("Cannot find charset \"%s\"", appres.charset); (void) charset_init(CN); } action_init(); #if defined(HAVE_LIBREADLINE) /*[*/ /* Set up readline. */ rl_readline_name = "c3270"; rl_initialize(); rl_attempted_completion_function = attempted_completion; #if defined(RL_READLINE_VERSION) /*[*/ rl_completion_entry_function = completion_entry; #else /*][*/ rl_completion_entry_function = (Function *)completion_entry; #endif /*]*/ #endif /*]*/ /* Get the screen set up as early as possible. */ screen_init(); kybd_init(); idle_init(); keymap_init(); hostfile_init(); hostfile_init(); ansi_init(); sms_init(); register_schange(ST_CONNECT, main_connect); register_schange(ST_3270_MODE, main_connect); register_schange(ST_EXITING, main_exiting); #if defined(X3270_FT) /*[*/ ft_init(); #endif /*]*/ #if defined(X3270_PRINTER) /*[*/ printer_init(); #endif /*]*/ #if !defined(_WIN32) /*[*/ /* Make sure we don't fall over any SIGPIPEs. */ (void) signal(SIGPIPE, SIG_IGN); /* Make sure we can collect child exit status. */ (void) signal(SIGCHLD, sigchld_handler); #endif /*]*/ /* Handle initial toggle settings. */ #if defined(X3270_TRACE) /*[*/ if (!appres.debug_tracing) { appres.toggle[DS_TRACE].value = False; appres.toggle[EVENT_TRACE].value = False; } #endif /*]*/ initialize_toggles(); if (cl_hostname != CN) { pause_for_errors(); /* Connect to the host. */ appres.once = True; if (host_connect(cl_hostname) < 0) x3270_exit(1); /* Wait for negotiations to complete or fail. */ while (!IN_ANSI && !IN_3270) { (void) process_events(True); if (!PCONNECTED) x3270_exit(1); } pause_for_errors(); screen_disp(False); } else { /* Drop to the prompt. */ if (appres.secure) { Error("Must specify hostname with secure option"); } appres.once = False; if (!appres.no_prompt) interact(); else pause_for_errors(); } peer_script_init(); /* Process events forever. */ while (1) { if (!escaped #if defined(X3270_FT) /*[*/ || ft_state != FT_NONE #endif /*]*/ ) (void) process_events(True); if (appres.cbreak_mode && escape_pending) { escape_pending = False; screen_suspend(); } if (!appres.no_prompt) { if (!CONNECTED && !appres.reconnect) { screen_suspend(); (void) printf("Disconnected.\n"); if (appres.once) x3270_exit(0); interact(); screen_resume(); } else if (escaped #if defined(X3270_FT) /*[*/ && ft_state == FT_NONE #endif /*]*/ ) { interact(); trace_event("Done interacting.\n"); screen_resume(); } } else if (!CONNECTED && !appres.reconnect && !appres.no_prompt) { screen_suspend(); x3270_exit(0); } #if !defined(_WIN32) /*[*/ if (children && waitpid(0, (int *)0, WNOHANG) > 0) --children; #else /*][*/ printer_check(); #endif /*]*/ screen_disp(False); } } #if !defined(_WIN32) /*[*/ /* * SIGTSTP handler for use while a command is running. Sets a flag so that * c3270 will stop before the next prompt is printed. */ static void running_sigtstp_handler(int ignored _is_unused) { signal(SIGTSTP, SIG_IGN); stop_pending = True; } /* * SIGTSTP haandler for use while the prompt is being displayed. * Acts immediately by setting SIGTSTP to the default and sending it to * ourselves, but also sets a flag so that the user gets one free empty line * of input before resuming the connection. */ static void prompt_sigtstp_handler(int ignored _is_unused) { if (CONNECTED) dont_return = True; signal(SIGTSTP, SIG_DFL); kill(getpid(), SIGTSTP); } #endif /*]*/ /*static*/ void interact(void) { /* In case we got here because a command output, stop the pager. */ stop_pager(); trace_event("Interacting.\n"); if (appres.secure || appres.no_prompt) { char s[10]; printf("[Press ] "); fflush(stdout); if (fgets(s, sizeof(s), stdin) == NULL) x3270_exit(1); return; } #if !defined(_WIN32) /*[*/ /* Handle SIGTSTP differently at the prompt. */ signal(SIGTSTP, SIG_DFL); #endif /*]*/ /* * Ignore SIGINT at the prompt. * I'm sure there's more we could do. */ signal(SIGINT, SIG_IGN); for (;;) { int sl; char *s; #if defined(HAVE_LIBREADLINE) /*[*/ char *rl_s; #else /*][*/ char buf[1024]; #endif /*]*/ dont_return = False; /* Process a pending stop now. */ if (stop_pending) { stop_pending = False; #if !defined(_WIN32) /*[*/ signal(SIGTSTP, SIG_DFL); kill(getpid(), SIGTSTP); #endif /*]*/ continue; } #if !defined(_WIN32) /*[*/ /* Process SIGTSTPs immediately. */ signal(SIGTSTP, prompt_sigtstp_handler); #endif /*]*/ /* Display the prompt. */ if (CONNECTED) (void) printf("Press to resume session.\n"); #if defined(HAVE_LIBREADLINE) /*[*/ s = rl_s = readline("c3270> "); if (s == CN) { printf("\n"); exit(0); } #else /*][*/ (void) printf(PROGRAM_NAME "> "); (void) fflush(stdout); /* Get the command, and trim white space. */ if (fgets(buf, sizeof(buf), stdin) == CN) { printf("\n"); #if defined(_WIN32) /*[*/ continue; #else /*][*/ x3270_exit(0); #endif /*]*/ } s = buf; #endif /*]*/ #if !defined(_WIN32) /*[*/ /* Defer SIGTSTP until the next prompt display. */ signal(SIGTSTP, running_sigtstp_handler); #endif /*]*/ while (isspace(*s)) s++; sl = strlen(s); while (sl && isspace(s[sl-1])) s[--sl] = '\0'; /* A null command means go back. */ if (!sl) { if (CONNECTED && !dont_return) break; else continue; } #if defined(HAVE_LIBREADLINE) /*[*/ /* Save this command in the history buffer. */ add_history(s); #endif /*]*/ /* "?" is an alias for "Help". */ if (!strcmp(s, "?")) s = "Help"; /* * Process the command like a macro, and spin until it * completes. */ push_command(s); while (sms_active()) { (void) process_events(True); } /* Close the pager. */ stop_pager(); #if defined(HAVE_LIBREADLINE) /*[*/ /* Give back readline's buffer. */ free(rl_s); #endif /*]*/ /* If it succeeded, return to the session. */ if (!macro_output && CONNECTED) break; } /* Ignore SIGTSTP again. */ stop_pending = False; #if !defined(_WIN32) /*[*/ signal(SIGTSTP, SIG_IGN); #endif /*]*/ #if defined(_WIN32) /*[*/ signal(SIGINT, SIG_DFL); #endif /*]*/ } /* A command is about to produce output. Start the pager. */ FILE * start_pager(void) { #if !defined(_WIN32) /*[*/ static char *lesspath = LESSPATH; static char *lesscmd = LESSPATH " -EX"; static char *morepath = MOREPATH; static char *or_cat = " || cat"; char *pager_env; char *pager_cmd = CN; if (pager != NULL) return pager; if ((pager_env = getenv("PAGER")) != CN) pager_cmd = pager_env; else if (strlen(lesspath)) pager_cmd = lesscmd; else if (strlen(morepath)) pager_cmd = morepath; if (pager_cmd != CN) { char *s; s = Malloc(strlen(pager_cmd) + strlen(or_cat) + 1); (void) sprintf(s, "%s%s", pager_cmd, or_cat); pager = popen(s, "w"); Free(s); if (pager == NULL) (void) perror(pager_cmd); } if (pager == NULL) pager = stdout; return pager; #else /*][*/ return stdout; #endif /*]*/ } /* Stop the pager. */ static void stop_pager(void) { #if !defined(_WIN32) /*[*/ if (pager != NULL) { if (pager != stdout) pclose(pager); pager = NULL; } #else /*][*/ pager_rowcnt = 0; pager_q = False; #endif /*]*/ } #if defined(_WIN32) /*[*/ void pager_output(const char *s) { if (pager_q) return; do { char *nl; int sl; /* Pause for a screenful. */ if (pager_rowcnt >= maxROWS) { printf("Press any key to continue . . . "); fflush(stdout); pager_q = screen_wait_for_key(); printf("\r \r"); pager_rowcnt = 0; if (pager_q) return; } /* * Look for an embedded newline. If one is found, just print * up to it, so we can count the newline and possibly pause * partway through the string. */ nl = strchr(s, '\n'); if (nl != CN) { sl = nl - s; printf("%.*s\n", sl, s); s = nl + 1; } else { printf("%s\n", s); sl = strlen(s); s = CN; } /* Account for the newline. */ pager_rowcnt++; /* Account (conservatively) for any line wrap. */ pager_rowcnt += sl / maxCOLS; } while (s != CN); } #endif /*]*/ #if defined(HAVE_LIBREADLINE) /*[*/ static char **matches = (char **)NULL; static char **next_match; /* Generate a match list. */ static char ** attempted_completion(const char *text, int start, int end) { char *s; int i, j; int match_count; /* If this is not the first word, fail. */ s = rl_line_buffer; while (*s && isspace(*s)) s++; if (s - rl_line_buffer < start) { char *t = s; struct host *h; /* * If the first word is 'Connect' or 'Open', and the * completion is on the second word, expand from the * hostname list. */ /* See if we're in the second word. */ while (*t && !isspace(*t)) t++; while (*t && isspace(*t)) t++; if (t - rl_line_buffer < start) return NULL; /* * See if the first word is 'Open' or 'Connect'. In future, * we might do other expansions, and this code would need to * be generalized. */ if (!((!strncasecmp(s, "Open", 4) && isspace(*(s + 4))) || (!strncasecmp(s, "Connect", 7) && isspace(*(s + 7))))) return NULL; /* Look for any matches. Note that these are case-sensitive. */ for (h = hosts, match_count = 0; h; h = h->next) { if (!strncmp(h->name, t, strlen(t))) match_count++; } if (!match_count) return NULL; /* Allocate the return array. */ next_match = matches = Malloc((match_count + 1) * sizeof(char **)); /* Scan again for matches to fill in the array. */ for (h = hosts, j = 0; h; h = h->next) { int skip = 0; if (strncmp(h->name, t, strlen(t))) continue; /* * Skip hostsfile entries that are duplicates of * RECENT entries we've already recorded. */ if (h->entry_type != RECENT) { for (i = 0; i < j; i++) { if (!strcmp(matches[i], h->name)) { skip = 1; break; } } } if (skip) continue; /* * If the string contains spaces, put it in double * quotes. Otherwise, just copy it. (Yes, this code * is fairly stupid, and can be fooled by other * whitespace and embedded double quotes.) */ if (strchr(h->name, ' ') != CN) { matches[j] = Malloc(strlen(h->name) + 3); (void) sprintf(matches[j], "\"%s\"", h->name); j++; } else { matches[j++] = NewString(h->name); } } matches[j] = CN; return NULL; } /* Search for matches. */ for (i = 0, match_count = 0; i < actioncount; i++) { if (!strncasecmp(actions[i].string, s, strlen(s))) match_count++; } if (!match_count) return NULL; /* Return what we got. */ next_match = matches = Malloc((match_count + 1) * sizeof(char **)); for (i = 0, j = 0; i < actioncount; i++) { if (!strncasecmp(actions[i].string, s, strlen(s))) { matches[j++] = NewString(actions[i].string); } } matches[j] = CN; return NULL; } /* Return the match list. */ static char * completion_entry(const char *text, int state) { char *r; if (next_match == NULL) return CN; if ((r = *next_match++) == CN) { Free(matches); next_match = matches = NULL; return CN; } else return r; } #endif /*]*/ /* c3270-specific actions. */ /* Return a time difference in English */ static char * hms(time_t ts) { time_t t, td; long hr, mn, sc; static char buf[128]; (void) time(&t); td = t - ts; hr = td / 3600; mn = (td % 3600) / 60; sc = td % 60; if (hr > 0) (void) sprintf(buf, "%ld %s %ld %s %ld %s", hr, (hr == 1) ? get_message("hour") : get_message("hours"), mn, (mn == 1) ? get_message("minute") : get_message("minutes"), sc, (sc == 1) ? get_message("second") : get_message("seconds")); else if (mn > 0) (void) sprintf(buf, "%ld %s %ld %s", mn, (mn == 1) ? get_message("minute") : get_message("minutes"), sc, (sc == 1) ? get_message("second") : get_message("seconds")); else (void) sprintf(buf, "%ld %s", sc, (sc == 1) ? get_message("second") : get_message("seconds")); return buf; } static void status_dump(void) { const char *emode, *ftype, *ts; #if defined(X3270_TN3270E) /*[*/ const char *eopts; const char *bplu; #endif /*]*/ const char *ptype; extern int linemode; /* XXX */ extern time_t ns_time; extern int ns_bsent, ns_rsent, ns_brcvd, ns_rrcvd; action_output("%s", build); action_output("%s %s: %d %s x %d %s, %s, %s", get_message("model"), model_name, maxCOLS, get_message("columns"), maxROWS, get_message("rows"), appres.m3279? get_message("fullColor"): get_message("mono"), (appres.extended && !std_ds_host) ? get_message("extendedDs") : get_message("standardDs")); action_output("%s %s", get_message("terminalName"), termtype); if (connected_lu != CN && connected_lu[0]) action_output("%s %s", get_message("luName"), connected_lu); #if defined(X3270_TN3270E) /*[*/ bplu = net_query_bind_plu_name(); if (bplu != CN && bplu[0]) action_output("%s %s", get_message("bindPluName"), bplu); #endif /*]*/ action_output("%s %s (%s)", get_message("characterSet"), get_charset_name(), #if defined(X3270_DBCS) /*[*/ dbcs? "DBCS": "SBCS" #else /*][*/ "SBCS" #endif /*]*/ ); action_output("%s %s", get_message("hostCodePage"), get_host_codepage()); action_output("%s GCSGID %u, CPGID %u", get_message("sbcsCgcsgid"), (unsigned short)((cgcsgid >> 16) & 0xffff), (unsigned short)(cgcsgid & 0xffff)); #if defined(X3270_DBCS) /*[*/ if (dbcs) action_output("%s GCSGID %u, CPGID %u", get_message("dbcsCgcsgid"), (unsigned short)((cgcsgid_dbcs >> 16) & 0xffff), (unsigned short)(cgcsgid_dbcs & 0xffff)); #endif /*]*/ #if !defined(_WIN32) /*[*/ action_output("%s %s", get_message("localeCodeset"), locale_codeset); action_output("%s DBCS %s, wide curses %s", get_message("buildOpts"), #if defined(X3270_DBCS) /*[*/ get_message("buildEnabled"), #else /*][*/ get_message("buildDisabled"), #endif /*]*/ #if defined(CURSES_WIDE) /*[*/ get_message("buildEnabled") #else /*][*/ get_message("buildDisabled") #endif /*]*/ ); #else /*][*/ action_output("%s OEM %d ANSI %d", get_message("windowsCodePage"), windows_cp, GetACP()); #endif /*]*/ if (appres.key_map) { action_output("%s %s", get_message("keyboardMap"), appres.key_map); } if (CONNECTED) { action_output("%s %s", get_message("connectedTo"), #if defined(LOCAL_PROCESS) /*[*/ (local_process && !strlen(current_host))? "(shell)": #endif /*]*/ current_host); #if defined(LOCAL_PROCESS) /*[*/ if (!local_process) { #endif /*]*/ action_output(" %s %d", get_message("port"), current_port); #if defined(LOCAL_PROCESS) /*[*/ } #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ if (secure_connection) action_output(" %s", get_message("secure")); #endif /*]*/ ptype = net_proxy_type(); if (ptype) { action_output(" %s %s %s %s %s %s", get_message("proxyType"), ptype, get_message("server"), net_proxy_host(), get_message("port"), net_proxy_port()); } ts = hms(ns_time); if (IN_E) emode = "TN3270E "; else emode = ""; if (IN_ANSI) { if (linemode) ftype = get_message("lineMode"); else ftype = get_message("charMode"); action_output(" %s%s, %s", emode, ftype, ts); } else if (IN_SSCP) { action_output(" %s%s, %s", emode, get_message("sscpMode"), ts); } else if (IN_3270) { action_output(" %s%s, %s", emode, get_message("dsMode"), ts); } else action_output(" %s", ts); #if defined(X3270_TN3270E) /*[*/ eopts = tn3270e_current_opts(); if (eopts != CN) { action_output(" %s %s", get_message("tn3270eOpts"), eopts); } else if (IN_E) { action_output(" %s", get_message("tn3270eNoOpts")); } #endif /*]*/ if (IN_3270) action_output("%s %d %s, %d %s\n%s %d %s, %d %s", get_message("sent"), ns_bsent, (ns_bsent == 1) ? get_message("byte") : get_message("bytes"), ns_rsent, (ns_rsent == 1) ? get_message("record") : get_message("records"), get_message("Received"), ns_brcvd, (ns_brcvd == 1) ? get_message("byte") : get_message("bytes"), ns_rrcvd, (ns_rrcvd == 1) ? get_message("record") : get_message("records")); else action_output("%s %d %s, %s %d %s", get_message("sent"), ns_bsent, (ns_bsent == 1) ? get_message("byte") : get_message("bytes"), get_message("received"), ns_brcvd, (ns_brcvd == 1) ? get_message("byte") : get_message("bytes")); #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { struct ctl_char *c = net_linemode_chars(); int i; char buf[128]; char *s = buf; action_output("%s", get_message("specialCharacters")); for (i = 0; c[i].name; i++) { if (i && !(i % 4)) { *s = '\0'; action_output("%s", buf); s = buf; } s += sprintf(s, " %s %s", c[i].name, c[i].value); } if (s != buf) { *s = '\0'; action_output("%s", buf); } } #endif /*]*/ } else if (HALF_CONNECTED) { action_output("%s %s", get_message("connectionPending"), current_host); } else action_output("%s", get_message("notConnected")); } static void copyright_dump(void) { action_output(" "); action_output("Copyright (c) 1993-2009, Paul Mattes."); action_output("Copyright (c) 1990, Jeff Sparkes."); action_output("Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA"); action_output(" 30332."); action_output("All rights reserved."); action_output(" "); action_output("Redistribution and use in source and binary forms, with or without"); action_output("modification, are permitted provided that the following conditions are met:"); action_output(" * Redistributions of source code must retain the above copyright"); action_output(" notice, this list of conditions and the following disclaimer."); action_output(" * Redistributions in binary form must reproduce the above copyright"); action_output(" notice, this list of conditions and the following disclaimer in the"); action_output(" documentation and/or other materials provided with the distribution."); action_output(" * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of"); action_output(" their contributors may be used to endorse or promote products derived"); action_output(" from this software without specific prior written permission."); action_output(" "); action_output("THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC \"AS IS\" AND"); action_output("ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE"); action_output("IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE"); action_output("ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE"); action_output("LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR"); action_output("CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF"); action_output("SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS"); action_output("INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN"); action_output("CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)"); action_output("ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE"); action_output("POSSIBILITY OF SUCH DAMAGE."); action_output(" "); } void Show_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { action_debug(Show_action, event, params, num_params); if (*num_params == 0) { action_output(" Show copyright copyright information"); action_output(" Show stats connection statistics"); action_output(" Show status same as 'Show stats'"); action_output(" Show keymap current keymap"); return; } if (!strncasecmp(params[0], "stats", strlen(params[0])) || !strncasecmp(params[0], "status", strlen(params[0]))) { status_dump(); } else if (!strncasecmp(params[0], "keymap", strlen(params[0]))) { keymap_dump(); } else if (!strncasecmp(params[0], "copyright", strlen(params[0]))) { copyright_dump(); } else popup_an_error("Unknown 'Show' keyword"); } #if defined(X3270_TRACE) /*[*/ /* Trace([data|keyboard][on[filename]|off]) */ void Trace_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int tg = 0; Boolean both = False; Boolean on = False; action_debug(Trace_action, event, params, num_params); if (*num_params == 0) { action_output("Data tracing is %sabled.", toggled(DS_TRACE)? "en": "dis"); action_output("Keyboard tracing is %sabled.", toggled(EVENT_TRACE)? "en": "dis"); return; } if (!strcasecmp(params[0], "Data")) tg = DS_TRACE; else if (!strcasecmp(params[0], "Keyboard")) tg = EVENT_TRACE; else if (!strcasecmp(params[0], "Off")) { both = True; on = False; if (*num_params > 1) { popup_an_error("Trace(): Too many arguments for 'Off'"); return; } } else if (!strcasecmp(params[0], "On")) { both = True; on = True; } else { popup_an_error("Trace(): Unknown trace type -- " "must be Data or Keyboard"); return; } if (!both) { if (*num_params == 1 || !strcasecmp(params[1], "On")) on = True; else if (!strcasecmp(params[1], "Off")) { on = False; if (*num_params > 2) { popup_an_error("Trace(): Too many arguments " "for 'Off'"); return; } } else { popup_an_error("Trace(): Must be 'On' or 'Off'"); return; } } if (both) { if (on && *num_params > 1) appres.trace_file = NewString(params[1]); if ((on && !toggled(DS_TRACE)) || (!on && toggled(DS_TRACE))) do_toggle(DS_TRACE); if ((on && !toggled(EVENT_TRACE)) || (!on && toggled(EVENT_TRACE))) do_toggle(EVENT_TRACE); } else if ((on && !toggled(tg)) || (!on && toggled(tg))) { if (on && *num_params > 2) appres.trace_file = NewString(params[2]); do_toggle(tg); } if (tracefile_name != NULL) action_output("Trace file is %s", tracefile_name); } #endif /*]*/ /* Break to the command prompt. */ void Escape_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { action_debug(Escape_action, event, params, num_params); if (!appres.secure && !appres.no_prompt) { host_cancel_reconnect(); screen_suspend(); } } /* Popup an informational message. */ void popup_an_info(const char *fmt, ...) { va_list args; static char vmsgbuf[4096]; char *s, *t; Boolean quoted = False; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); /* Filter out the junk. */ for (s = t = vmsgbuf; *s; s++) { if (*s == '\n') { *t = '\0'; break; } else if (!quoted && *s == '\\') { quoted = True; } else if (*s >= ' ' && *s <= '~') { *t++ = *s; quoted = False; } } *t = '\0'; if (strlen(vmsgbuf)) status_push(vmsgbuf); } void Info_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { action_debug(Info_action, event, params, num_params); if (!*num_params) return; popup_an_info("%s", params[0]); } #if !defined(_WIN32) /*[*/ /* Support for c3270 profiles. */ #define PROFILE_ENV "C3270PRO" #define NO_PROFILE_ENV "NOC3270PRO" #define DEFAULT_PROFILE "~/.c3270pro" /* Read in the .c3270pro file. */ Boolean merge_profile(void) { const char *fname; char *profile_name; Boolean did_read = False; /* Check for the no-profile environment variable. */ if (getenv(NO_PROFILE_ENV) != CN) return did_read; /* Read the file. */ fname = getenv(PROFILE_ENV); if (fname == CN || *fname == '\0') fname = DEFAULT_PROFILE; profile_name = do_subst(fname, True, True); did_read = (read_resource_file(profile_name, False) >= 0); Free(profile_name); return did_read; } #endif /*]*/ #if defined(_WIN32) /*[*/ /* Start a auto-shortcut-mode copy of wc3270.exe. */ static void start_auto_shortcut(void) { char *tempdir; FILE *f; session_t s; HRESULT hres; char exepath[MAX_PATH]; char linkpath[MAX_PATH]; char sesspath[MAX_PATH]; char delenv[32 + MAX_PATH]; char args[1024]; HINSTANCE h; extern char *profile_path; /* XXX */ /* Make sure we're on NT. */ if (!is_nt) { fprintf(stderr, "Auto-shortcut does not work on Win9x\n"); x3270_exit(1); } /* Make sure there is a session file. */ if (profile_path == CN) { fprintf(stderr, "Can't use auto-shortcut mode without a " "session file\n"); x3270_exit(1); } printf("Running auto-shortcut\n"); fflush(stdout); /* Read the session file into 's'. */ f = fopen(profile_path, "r"); if (f == NULL) { fprintf(stderr, "%s: %s\n", profile_path, strerror(errno)); x3270_exit(1); } memset(&s, '\0', sizeof(session_t)); if (read_session(f, &s) == 0) { fprintf(stderr, "%s: invalid format\n", profile_path); x3270_exit(1); } printf("Read in session '%s'\n", profile_path); fflush(stdout); /* Create the shortcut. */ tempdir = getenv("TEMP"); if (tempdir == CN) { fprintf(stderr, "No %%TEMP%%?\n"); x3270_exit(1); } sprintf(linkpath, "%s\\wcsa%u.lnk", tempdir, getpid()); sprintf(exepath, "%s\\%s", instdir, "wc3270.exe"); printf("Executable path is '%s'\n", exepath); fflush(stdout); if (GetFullPathName(profile_path, MAX_PATH, sesspath, NULL) == 0) { fprintf(stderr, "%s: Error %ld\n", profile_path, GetLastError()); x3270_exit(1); } sprintf(args, "+S \"%s\"", sesspath); hres = create_shortcut(&s, /* session */ exepath, /* .exe */ linkpath, /* .lnk */ args, /* args */ tempdir /* cwd */); if (!SUCCEEDED(hres)) { fprintf(stderr, "Cannot create ShellLink '%s'\n", linkpath); x3270_exit(1); } printf("Created ShellLink '%s'\n", linkpath); fflush(stdout); /* Execute it. */ sprintf(delenv, "%s=%s", DELENV, linkpath); putenv(delenv); h = ShellExecute(NULL, "open", linkpath, "", tempdir, SW_SHOW); if ((int)h <= 32) { fprintf(stderr, "ShellExecute failed, error %d\n", (int)h); x3270_exit(1); } printf("Started ShellLink\n"); fflush(stdout); exit(0); } #endif /*]*/ ibm-3270-3.3.10ga4/c3270/make-cygwin-standalone0000755000175000017500000000054611254565707020224 0ustar bastianbastian#!/bin/bash # Create a Cygwin standalone zip file set -e set -x rm -rf standalone/ c3270-standalone.zip mkdir standalone mkdir standalone/c dlls=$(strings c3270.exe | grep '^cyg.*\.dll' | sed 's@^@/bin/@') cp -p c3270.exe runc3270.bat $dlls standalone/ cp -p /usr/share/terminfo/c/cygwin standalone/c/ zip -j c3270-standalone standalone/* rm -rf standalone/ ibm-3270-3.3.10ga4/c3270/macros.c0000644000175000017500000026252511254565704015371 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * macros.c * This module handles string, macro and script (sms) processing. */ #include "globals.h" #if defined(X3270_MENUS) /*[*/ #include #include #endif /*]*/ #if !defined(_WIN32) /*[*/ #include #include #include #include #include #include #endif /*]*/ #include #include #include #include #include "3270ds.h" #include "appres.h" #include "ctlr.h" #include "screen.h" #include "resources.h" #include "actionsc.h" #include "childc.h" #include "ctlrc.h" #include "ftc.h" #include "hostc.h" #include "idlec.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #if defined(X3270_PRINTER) /*[*/ #include "printerc.h" #endif /*]*/ #include "screenc.h" #include "seec.h" #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" #include "xioc.h" #if defined(_WIN32) /*[*/ #include "windows.h" #include #include "w3miscc.h" #endif /*]*/ #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #define ANSI_SAVE_SIZE 4096 #if defined(_WIN32) /*[*/ #define SOCK_CLOSE(s) closesocket(s) #else /*][*/ #define SOCK_CLOSE(s) close(s) #endif /*[*/ /* Externals */ extern int linemode; /* Globals */ struct macro_def *macro_defs = (struct macro_def *)NULL; Boolean macro_output = False; /* Statics */ typedef struct sms { struct sms *next; /* next sms on the stack */ char msc[1024]; /* input buffer */ int msc_len; /* length of input buffer */ char *dptr; /* data pointer (macros only) */ enum sms_state { SS_IDLE, /* no command active (scripts only) */ SS_INCOMPLETE, /* command(s) buffered and ready to run */ SS_RUNNING, /* command executing */ SS_KBWAIT, /* command awaiting keyboard unlock */ SS_CONNECT_WAIT,/* command awaiting connection to complete */ #if defined(X3270_FT) /*[*/ SS_FT_WAIT, /* command awaiting file transfer to complete */ #endif /*]*/ SS_TIME_WAIT, /* command awaiting simple timeout */ SS_PAUSED, /* stopped in PauseScript action */ SS_WAIT_NVT, /* awaiting completion of Wait(NVTMode) */ SS_WAIT_3270, /* awaiting completion of Wait(3270Mode) */ SS_WAIT_OUTPUT, /* awaiting completion of Wait(Output) */ SS_SWAIT_OUTPUT,/* awaiting completion of Snap(Wait) */ SS_WAIT_DISC, /* awaiting completion of Wait(Disconnect) */ SS_WAIT_IFIELD, /* awaiting completion of Wait(InputField) */ SS_WAIT_UNLOCK, /* awaiting completion of Wait(Unlock) */ SS_EXPECTING, /* awaiting completion of Expect() */ SS_CLOSING /* awaiting completion of Close() */ } state; enum sms_type { ST_STRING, /* string */ ST_MACRO, /* macro */ ST_COMMAND, /* interactive command */ ST_KEYMAP, /* keyboard map */ ST_IDLE, /* idle command */ ST_CHILD, /* child process */ ST_PEER, /* peer (external) process */ ST_FILE /* read commands from file */ } type; Boolean success; Boolean need_prompt; Boolean is_login; Boolean is_hex; /* flag for ST_STRING only */ Boolean output_wait_needed; Boolean executing; /* recursion avoidance */ Boolean accumulated; /* accumulated time flag */ Boolean idle_error; /* idle command caused an error */ Boolean is_socket; /* I/O is via a socket */ Boolean is_transient; /* I/O is via a transient socket */ Boolean is_external; /* I/O is via a transient socket to -socket */ unsigned long msec; /* total accumulated time */ FILE *outfile; int infd; #if defined(_WIN32) /*[*/ HANDLE inhandle; HANDLE child_handle; unsigned long exit_id; unsigned long listen_id; #endif /*]*/ int pid; unsigned long expect_id; unsigned long wait_id; } sms_t; #define SN ((sms_t *)NULL) static sms_t *sms = SN; static int sms_depth = 0; #if defined(X3270_SCRIPT) /*[*/ static int socketfd = -1; static unsigned long socket_id = 0L; # if defined(_WIN32) /*[*/ static HANDLE socket_event = NULL; # endif /*]*/ #endif /*]*/ #if defined(X3270_TRACE) /*[*/ static const char *sms_state_name[] = { "IDLE", "INCOMPLETE", "RUNNING", "KBWAIT", "CONNECT_WAIT", #if defined(X3270_FT) /*[*/ "FT_WAIT", #endif /*]*/ "TIME_WAIT", "PAUSED", "WAIT_NVT", "WAIT_3270", "WAIT_OUTPUT", "SWAIT_OUTPUT", "WAIT_DISC", "WAIT_IFIELD", "WAIT_UNLOCK", "EXPECTING", "CLOSING" }; #endif /*]*/ #if defined(X3270_MENUS) /*[*/ static struct macro_def *macro_last = (struct macro_def *) NULL; #endif /*]*/ static unsigned long stdin_id = 0L; static unsigned char *ansi_save_buf; static int ansi_save_cnt = 0; static int ansi_save_ix = 0; static char *expect_text = CN; static int expect_len = 0; static const char *st_name[] = { "String", "Macro", "Command", "KeymapAction", "IdleCommand", "ChildScript", "PeerScript", "File" }; static enum iaction st_cause[] = { IA_MACRO, IA_MACRO, IA_COMMAND, IA_KEYMAP, IA_IDLE, IA_MACRO, IA_MACRO }; #define ST_sNAME(s) st_name[(int)(s)->type] #define ST_NAME ST_sNAME(sms) #if defined(X3270_SCRIPT) /*[*/ static void cleanup_socket(Boolean b); #endif /*]*/ static void script_prompt(Boolean success); static void script_input(void); static void sms_pop(Boolean can_exit); #if defined(X3270_SCRIPT) /*[*/ static void socket_connection(void); # if defined(_WIN32) /*[*/ static void child_socket_connection(void); static void child_exited(void); # endif /*]*/ #endif /*]*/ static void wait_timed_out(void); static void read_from_file(void); static sms_t *sms_redirect_to(void); /* Macro that defines that the keyboard is locked due to user input. */ #define KBWAIT (kybdlock & (KL_OIA_LOCKED|KL_OIA_TWAIT|KL_DEFERRED_UNLOCK)) #if defined(X3270_SCRIPT) /*[*/ #define CKBWAIT (appres.toggle[AID_WAIT].value && KBWAIT) #else /*][*/ #define CKBWAIT (KBWAIT) #endif /*]*/ /* Macro that defines when it's safe to continue a Wait()ing sms. */ #define CAN_PROCEED ( \ IN_SSCP || \ (IN_3270 && (no_login_host || (formatted && cursor_addr)) && !CKBWAIT) || \ (IN_ANSI && !(kybdlock & KL_AWAITING_FIRST)) \ ) #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ static int plugin_pid = 0; /* process ID if running, or 0 */ static int plugin_outpipe = -1; /* from emulator, to plugin */ static int plugin_inpipe = -1; /* from plugin, to emulator */ static Bool plugin_started = False; /* True after INIT ack'ed */ static unsigned long plugin_input_id = 0L; /* input event */ static unsigned long plugin_timeout_id = 0L; /* timeout event */ #define PRB_MAX 1024 /* maximum reply size */ static char plugin_buf[PRB_MAX]; /* reply buffer */ static int prb_cnt = 0; /* pending reply size */ #define PLUGINSTART_SECS 5 /* timeout for init reply */ #define PLUGINWAIT_SECS 2 /* timeout for cmd or AID reply */ #define MAX_START_ARGS 10 /* max args for plugin command */ #define PLUGIN_QMAX 256 /* max pending INITs/AIDs/cmds */ static char plugin_tq[PLUGIN_QMAX]; /* FIFO of pending INITs/AIDs/cmds */ static int ptq_first = 0; /* FIFO index of first pending cmd */ static int ptq_last = 0; /* FIFO index of last pending cmd */ #define PLUGIN_BACKLOG (((ptq_last + PLUGIN_QMAX) - ptq_first) % PLUGIN_QMAX) #define PLUGIN_INIT 0 /* commands: initialize */ #define PLUGIN_AID 1 /* process AID */ #define PLUGIN_CMD 2 /* process command */ static Boolean plugin_complain = False; static Boolean plugin_start_failed = False; static char plugin_start_error[PRB_MAX]; static void plugin_start(char *command, char *argv[], Boolean complain); static void no_plugin(void); #endif /*]*/ #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ static void plugin_start_appres(Boolean complain) { int i = 0; char *args[MAX_START_ARGS]; char *ccopy = NewString(appres.plugin_command); char *command; char *s; command = strtok(ccopy, " \t"); if (command == NULL) { Free(ccopy); return; } args[i++] = command; while (i < MAX_START_ARGS - 1 && (s = strtok(NULL, " \t")) != NULL) { args[i++] = s; } args[i] = NULL; plugin_start(command, args, complain); Free(ccopy); } #endif /*]*/ /* Callbacks for state changes. */ static void sms_connect(Boolean connected) { #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ if (connected) { if (appres.plugin_command && !plugin_pid) { plugin_start_appres(False); } } else no_plugin(); #endif /*]*/ /* Hack to ensure that disconnects don't cause infinite recursion. */ if (sms != SN && sms->executing) return; if (!connected) { while (sms != SN && sms->is_login) { #if !defined(_WIN32) /*[*/ if (sms->type == ST_CHILD && sms->pid > 0) (void) kill(sms->pid, SIGTERM); #endif /*]*/ sms_pop(False); } } sms_continue(); } static void sms_in3270(Boolean in3270) { if (in3270 || IN_SSCP) sms_continue(); } /* One-time initialization. */ void sms_init(void) { register_schange(ST_CONNECT, sms_connect); register_schange(ST_3270_MODE, sms_in3270); } #if defined(X3270_MENUS) /*[*/ /* Parse the macros resource into the macro list */ void macros_init(void) { char *s = CN; char *name, *action; struct macro_def *m; int ns; int ix = 1; static char *last_s = CN; /* Free the previous macro definitions. */ while (macro_defs) { m = macro_defs->next; Free(macro_defs); macro_defs = m; } macro_defs = (struct macro_def *)NULL; macro_last = (struct macro_def *)NULL; if (last_s) { Free(last_s); last_s = CN; } /* Search for new ones. */ if (PCONNECTED) { char *rname; char *space; rname = NewString(current_host); if ((space = strchr(rname, ' '))) *space = '\0'; s = get_fresource("%s.%s", ResMacros, rname); Free(rname); } if (s == CN) { if (appres.macros == CN) return; s = NewString(appres.macros); } else s = NewString(s); last_s = s; while ((ns = split_dresource(&s, &name, &action)) == 1) { m = (struct macro_def *)Malloc(sizeof(*m)); if (!split_hier(name, &m->name, &m->parents)) { Free(m); continue; } m->action = action; if (macro_last) macro_last->next = m; else macro_defs = m; m->next = (struct macro_def *)NULL; macro_last = m; ix++; } if (ns < 0) { char buf[256]; (void) sprintf(buf, "Error in macro %d", ix); Warning(buf); } } #endif /*]*/ /* * Enable input from a script. */ static void script_enable(void) { #if defined(_WIN32) /*[*/ /* Windows child scripts are listening sockets. */ if (sms->type == ST_CHILD && sms->inhandle != INVALID_HANDLE_VALUE) { sms->listen_id = AddInput((int)sms->inhandle, child_socket_connection); return; } #endif /*]*/ if (sms->infd >= 0 && stdin_id == 0) { trace_dsn("Enabling input for %s[%d]\n", ST_NAME, sms_depth); #if defined(_WIN32) /*[*/ stdin_id = AddInput((int)sms->inhandle, script_input); #else /*][*/ stdin_id = AddInput(sms->infd, script_input); #endif /*]*/ } } /* * Disable input from a script. */ static void script_disable(void) { if (stdin_id != 0) { trace_dsn("Disabling input for %s[%d]\n", ST_NAME, sms_depth); RemoveInput(stdin_id); stdin_id = 0L; } } /* Allocate a new sms. */ static sms_t * new_sms(enum sms_type type) { sms_t *s; s = (sms_t *)Calloc(1, sizeof(sms_t)); s->state = SS_IDLE; s->type = type; s->dptr = s->msc; s->success = True; s->need_prompt = False; s->is_login = False; s->outfile = (FILE *)NULL; s->infd = -1; #if defined(_WIN32) /*[*/ s->inhandle = INVALID_HANDLE_VALUE; s->child_handle = INVALID_HANDLE_VALUE; #endif /*]*/ s->pid = -1; s->expect_id = 0L; s->wait_id = 0L; s->output_wait_needed = False; s->executing = False; s->accumulated = False; s->idle_error = False; s->msec = 0L; return s; } /* * Push an sms definition on the stack. * Returns whether or not that is legal. */ static Boolean sms_push(enum sms_type type) { sms_t *s; /* Preempt any running sms. */ if (sms != SN) { /* Remove the running sms's input. */ script_disable(); } s = new_sms(type); if (sms != SN) s->is_login = sms->is_login; /* propagate from parent */ s->next = sms; sms = s; /* Enable the abort button on the menu and the status indication. */ if (++sms_depth == 1) { menubar_as_set(True); status_script(True); } if (ansi_save_buf == (unsigned char *)NULL) ansi_save_buf = (unsigned char *)Malloc(ANSI_SAVE_SIZE); return True; } /* * Add an sms definition to the _bottom_ of the stack. */ static sms_t * sms_enqueue(enum sms_type type) { sms_t *s, *t, *t_prev = SN; /* Allocate and initialize a new structure. */ s = new_sms(type); /* Find the bottom of the stack. */ for (t = sms; t != SN; t = t->next) t_prev = t; if (t_prev == SN) { /* Empty stack. */ s->next = sms; sms = s; /* * Enable the abort button on the menu and the status * line indication. */ menubar_as_set(True); status_script(True); } else { /* Add to bottom. */ s->next = SN; t_prev->next = s; } sms_depth++; if (ansi_save_buf == (unsigned char *)NULL) ansi_save_buf = (unsigned char *)Malloc(ANSI_SAVE_SIZE); return s; } /* Pop an sms definition off the stack. */ static void sms_pop(Boolean can_exit) { sms_t *s; trace_dsn("%s[%d] complete\n", ST_NAME, sms_depth); /* When you pop the peer script, that's the end of x3270. */ if (sms->type == ST_PEER && !sms->is_transient && can_exit) x3270_exit(0); /* Remove the input event. */ script_disable(); /* Close the files. */ if (sms->outfile != NULL) fclose(sms->outfile); if (sms->infd >= 0) { if (sms->is_socket) SOCK_CLOSE(sms->infd); else close(sms->infd); } /* Cancel any pending timeouts. */ if (sms->expect_id != 0L) RemoveTimeOut(sms->expect_id); if (sms->wait_id != 0L) RemoveTimeOut(sms->wait_id); /* * If this was an idle command that generated an error, now is the * time to announce that. (If we announced it when the error first * occurred, we might be telling the wrong party, such as a script.) */ if (sms->idle_error) popup_an_error("Idle command disabled due to error"); #if defined(X3270_SCRIPT) /*[*/ /* If this was a -socket peer, get ready for another connection. */ if (sms->type == ST_PEER && sms->is_external) { #if defined(_WIN32) /*[*/ socket_id = AddInput((int)socket_event, socket_connection); #else /*][*/ socket_id = AddInput(socketfd, socket_connection); #endif /*]*/ } #endif /*]*/ /* Release the memory. */ s = sms; sms = s->next; Free(s); sms_depth--; if (sms == SN) { /* Turn off the menu option. */ menubar_as_set(False); status_script(False); } else if (CKBWAIT && (int)sms->state < (int)SS_KBWAIT) { /* The child implicitly blocked the parent. */ sms->state = SS_KBWAIT; trace_dsn("%s[%d] implicitly paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } else if (sms->state == SS_IDLE && sms->type != ST_FILE) { /* The parent needs to be restarted. */ script_enable(); } else if (sms->type == ST_FILE) { read_from_file(); } #if defined(_WIN32) /*[*/ /* If the new top sms is an exited script, pop it, too. */ if (sms != SN && sms->type == ST_CHILD && sms->child_handle == INVALID_HANDLE_VALUE) sms_pop(False); #endif /*]*/ } /* * Peer script initialization. * * Must be called after the initial call to connect to the host from the * command line, so that the initial state can be set properly. */ void peer_script_init(void) { sms_t *s; Boolean on_top; #if defined(X3270_SCRIPT) /*[*/ if (appres.script_port) { struct sockaddr_in sin; #if !defined(_WIN32) /*[*/ if (appres.socket) xs_warning("-scriptport overrides -socket"); #endif /*]*/ /* -scriptport overrides -script */ appres.scripted = False; /* Create the listening socket. */ socketfd = socket(AF_INET, SOCK_STREAM, 0); if (socketfd < 0) { #if !defined(_WIN32) /*[*/ popup_an_errno(errno, "socket()"); #else /*][*/ popup_an_error("socket(): %s", win32_strerror(GetLastError())); #endif /*]*/ return; } (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; sin.sin_port = htons(appres.script_port); sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); if (bind(socketfd, (struct sockaddr *)&sin, sizeof(sin)) < 0) { #if !defined(_WIN32) /*[*/ popup_an_errno(errno, "socket bind"); #else /*][*/ popup_an_error("socket bind: %s", win32_strerror(GetLastError())); #endif /*]*/ SOCK_CLOSE(socketfd); socketfd = -1; return; } if (listen(socketfd, 1) < 0) { #if !defined(_WIN32) /*[*/ popup_an_errno(errno, "socket listen"); #else /*][*/ popup_an_error("socket listen: %s", win32_strerror(GetLastError())); #endif /*]*/ SOCK_CLOSE(socketfd); socketfd = -1; return; } #if defined(_WIN32) /*[*/ socket_event = CreateEvent(NULL, FALSE, FALSE, NULL); if (socket_event == NULL) { popup_an_error("CreateEvent: %s", win32_strerror(GetLastError())); SOCK_CLOSE(socketfd); socketfd = -1; return; } if (WSAEventSelect(socketfd, socket_event, FD_ACCEPT) != 0) { popup_an_error("WSAEventSelect: %s", win32_strerror(GetLastError())); SOCK_CLOSE(socketfd); socketfd = -1; return; } socket_id = AddInput((int)socket_event, socket_connection); #else /*][*/ socket_id = AddInput(socketfd, socket_connection); #endif/*]*/ register_schange(ST_EXITING, cleanup_socket); return; } #endif /*]*/ #if defined(X3270_SCRIPT) && !defined(_WIN32) /*[*/ if (appres.socket && !appres.script_port) { struct sockaddr_un ssun; /* -socket overrides -script */ appres.scripted = False; /* Create the listening socket. */ socketfd = socket(AF_UNIX, SOCK_STREAM, 0); if (socketfd < 0) { popup_an_errno(errno, "Unix-domain socket"); return; } (void) memset(&ssun, '\0', sizeof(ssun)); ssun.sun_family = AF_UNIX; (void) sprintf(ssun.sun_path, "/tmp/x3sck.%u", getpid()); (void) unlink(ssun.sun_path); if (bind(socketfd, (struct sockaddr *)&ssun, sizeof(ssun)) < 0) { popup_an_errno(errno, "Unix-domain socket bind"); close(socketfd); socketfd = -1; return; } if (listen(socketfd, 1) < 0) { popup_an_errno(errno, "Unix-domain socket listen"); close(socketfd); socketfd = -1; (void) unlink(ssun.sun_path); return; } socket_id = AddInput(socketfd, socket_connection); register_schange(ST_EXITING, cleanup_socket); return; } #endif /*]*/ if (!appres.scripted) return; if (sms == SN) { /* No login script running, simply push a new sms. */ (void) sms_push(ST_PEER); s = sms; on_top = True; } else { /* Login script already running, pretend we started it. */ s = sms_enqueue(ST_PEER); s->state = SS_RUNNING; on_top = False; } s->infd = fileno(stdin); #if defined(_WIN32) /*[*/ s->inhandle = GetStdHandle(STD_INPUT_HANDLE); #endif /*]*/ s->outfile = stdout; (void) SETLINEBUF(s->outfile); /* even if it's a pipe */ if (on_top) { if (HALF_CONNECTED || (CONNECTED && (kybdlock & KL_AWAITING_FIRST))) s->state = SS_CONNECT_WAIT; else script_enable(); } } #if defined(X3270_SCRIPT) /*[*/ /* Accept a new socket connection. */ static void socket_connection(void) { int fd; sms_t *s; /* Accept the connection. */ #if !defined(_WIN32) /*[*/ if (appres.script_port) #endif /*]*/ { struct sockaddr_in sin; socklen_t len = sizeof(sin); (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; fd = accept(socketfd, (struct sockaddr *)&sin, &len); } #if !defined(_WIN32) /*[*/ else { struct sockaddr_un ssun; socklen_t len = sizeof(ssun); (void) memset(&ssun, '\0', sizeof(ssun)); ssun.sun_family = AF_UNIX; fd = accept(socketfd, (struct sockaddr *)&ssun, &len); } #endif /*]*/ if (fd < 0) { popup_an_errno(errno, "socket accept"); return; } trace_dsn("New script socket connection\n"); /* Push on a peer script. */ (void) sms_push(ST_PEER); s = sms; s->is_transient = True; s->is_external = True; s->infd = fd; #if !defined(_WIN32) /*[*/ s->outfile = fdopen(dup(fd), "w"); #endif /*]*/ #if defined(_WIN32) /*[*/ s->inhandle = CreateEvent(NULL, FALSE, FALSE, NULL); if (s->inhandle == NULL) { fprintf(stderr, "Can't create socket handle\n"); exit(1); } if (WSAEventSelect(s->infd, s->inhandle, FD_READ | FD_CLOSE) != 0) { fprintf(stderr, "Can't set socket handle events\n"); exit(1); } #endif /*]*/ s->is_socket = True; script_enable(); /* Don't accept any more connections. */ RemoveInput(socket_id); socket_id = 0L; } # if defined(_WIN32) /*[*/ /* Accept a new socket connection from a child process. */ static void child_socket_connection(void) { int fd; sms_t *old_sms; sms_t *s; struct sockaddr_in sin; socklen_t len = sizeof(sin); /* Accept the connection. */ (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; fd = accept(sms->infd, (struct sockaddr *)&sin, &len); if (fd < 0) { popup_an_error("socket accept: %s", win32_strerror(GetLastError())); return; } trace_dsn("New child script socket connection\n"); /* Push on a peer script. */ old_sms = sms; (void) sms_push(ST_PEER); s = sms; s->is_transient = True; s->infd = fd; s->inhandle = CreateEvent(NULL, FALSE, FALSE, NULL); if (s->inhandle == NULL) { fprintf(stderr, "Can't create socket handle\n"); exit(1); } if (WSAEventSelect(s->infd, s->inhandle, FD_READ | FD_CLOSE) != 0) { fprintf(stderr, "Can't set socket handle events\n"); exit(1); } s->is_socket = True; script_enable(); /* Don't accept any more connections on the global listen socket. */ RemoveInput(old_sms->listen_id); old_sms->listen_id = 0L; } #endif /*]*/ /* Clean up the Unix-domain socket. */ static void cleanup_socket(Boolean b _is_unused) { #if !defined(_WIN32) /*[*/ char buf[1024]; (void) sprintf(buf, "/tmp/x3sck.%u", getpid()); (void) unlink(buf); #endif /*]*/ } #endif /*]*/ #if defined(_WIN32) /*[*/ /* Process an event on a child script handle (presumably a process exit). */ static void child_exited(void) { sms_t *s; DWORD status; for (s = sms; s != NULL; s = s->next) { if (s->type == ST_CHILD) { status = 0; if (GetExitCodeProcess(s->child_handle, &status) == 0) { popup_an_error("GetExitCodeProcess failed: %s", win32_strerror(GetLastError())); } else if (status != STILL_ACTIVE) { trace_dsn("Child script exited with status " "0x%x\n", (unsigned)status); CloseHandle(s->child_handle); s->child_handle = INVALID_HANDLE_VALUE; RemoveInput(s->exit_id); s->exit_id = 0; if (s == sms) { sms_pop(False); sms_continue(); } break; } } } } #endif /*]*/ /* * Interpret and execute a script or macro command. */ enum em_stat { EM_CONTINUE, EM_PAUSE, EM_ERROR }; static enum em_stat execute_command(enum iaction cause, char *s, char **np) { enum { ME_GND, /* before action name */ ME_COMMENT, /* within a comment */ ME_FUNCTION, /* within action name */ ME_FUNCTIONx, /* saw whitespace after action name */ ME_LPAREN, /* saw left paren */ ME_P_PARM, /* paren: within unquoted parameter */ ME_P_QPARM, /* paren: within quoted parameter */ ME_P_BSL, /* paren: after backslash in quoted parameter */ ME_P_PARMx, /* paren: saw whitespace after parameter */ ME_S_PARM, /* space: within unquoted parameter */ ME_S_QPARM, /* space: within quoted parameter */ ME_S_BSL, /* space: after backslash in quoted parameter */ ME_S_PARMx /* space: saw whitespace after parameter */ } state = ME_GND; char c; char aname[64+1]; char parm[1024+1]; int nx = 0; Cardinal count = 0; String params[64]; int i, any, exact; int failreason = 0; Boolean saw_paren = False; static const char *fail_text[] = { /*1*/ "Action name must begin with an alphanumeric character", /*2*/ "Syntax error in action name", /*3*/ "Syntax error: \")\" or \",\" expected", /*4*/ "Extra data after parameters", /*5*/ "Syntax error: \")\" expected" }; #define fail(n) { failreason = n; goto failure; } #define free_params() { \ if (cause == IA_MACRO || cause == IA_KEYMAP || \ cause == IA_COMMAND || cause == IA_IDLE) { \ Cardinal j; \ for (j = 0; j < count; j++) \ Free(params[j]); \ } \ } parm[0] = '\0'; params[count] = parm; while ((c = *s++)) switch (state) { case ME_GND: if (isspace(c)) continue; else if (isalnum(c)) { state = ME_FUNCTION; nx = 0; aname[nx++] = c; } else if (c == '!' || c == '#') state = ME_COMMENT; else fail(1); break; case ME_COMMENT: break; case ME_FUNCTION: /* within function name */ if (c == '(' || isspace(c)) { aname[nx] = '\0'; if (c == '(') { nx = 0; state = ME_LPAREN; saw_paren = True; } else state = ME_FUNCTIONx; } else if (isalnum(c) || c == '_' || c == '-') { if (nx < 64) aname[nx++] = c; } else { fail(2); } break; case ME_FUNCTIONx: /* space after function name */ if (isspace(c)) continue; else if (c == '(') { nx = 0; state = ME_LPAREN; } else if (c == '"') { nx = 0; state = ME_S_QPARM; } else { state = ME_S_PARM; nx = 0; parm[nx++] = c; } break; case ME_LPAREN: if (isspace(c)) continue; else if (c == '"') state = ME_P_QPARM; else if (c == ',') { parm[nx++] = '\0'; params[++count] = &parm[nx]; } else if (c == ')') goto success; else { state = ME_P_PARM; parm[nx++] = c; } break; case ME_P_PARM: if (isspace(c)) { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_P_PARMx; } else if (c == ')') { parm[nx] = '\0'; ++count; goto success; } else if (c == ',') { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_LPAREN; } else { if (nx < 1024) parm[nx++] = c; } break; case ME_P_BSL: if (c == 'n' && nx < 1024) parm[nx++] = '\n'; else { if (c != '"' && nx < 1024) parm[nx++] = '\\'; if (nx < 1024) parm[nx++] = c; } state = ME_P_QPARM; break; case ME_P_QPARM: if (c == '"') { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_P_PARMx; } else if (c == '\\') { state = ME_P_BSL; } else if (nx < 1024) parm[nx++] = c; break; case ME_P_PARMx: if (isspace(c)) continue; else if (c == ',') state = ME_LPAREN; else if (c == ')') goto success; else fail(3); break; case ME_S_PARM: if (isspace(c)) { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_S_PARMx; } else { if (nx < 1024) parm[nx++] = c; } break; case ME_S_BSL: if (c == 'n' && nx < 1024) parm[nx++] = '\n'; else { if (c != '"' && nx < 1024) parm[nx++] = '\\'; if (nx < 1024) parm[nx++] = c; } state = ME_S_QPARM; break; case ME_S_QPARM: if (c == '"') { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_S_PARMx; } else if (c == '\\') { state = ME_S_BSL; } else if (nx < 1024) parm[nx++] = c; break; case ME_S_PARMx: if (isspace(c)) continue; else if (c == '"') state = ME_S_QPARM; else { parm[nx++] = c; state = ME_S_PARM; } break; } /* Terminal state. */ switch (state) { case ME_FUNCTION: /* mid-function-name */ aname[nx] = '\0'; break; case ME_FUNCTIONx: /* space after function */ break; case ME_GND: /* nothing */ case ME_COMMENT: if (np) *np = s - 1; return EM_CONTINUE; case ME_S_PARMx: /* space after space-style parameter */ break; case ME_S_PARM: /* mid space-style parameter */ parm[nx++] = '\0'; params[++count] = &parm[nx]; break; default: fail(5); } success: if (c) { while (*s && isspace(*s)) s++; if (*s) { if (np) *np = s; else fail(4); } else if (np) *np = s; } else if (np) *np = s-1; /* If it's a macro, do variable substitutions. */ if (cause == IA_MACRO || cause == IA_KEYMAP || cause == IA_COMMAND || cause == IA_IDLE) { Cardinal j; for (j = 0; j < count; j++) params[j] = do_subst(params[j], True, False); } /* Search the action list. */ if (!strncasecmp(aname, PA_PFX, strlen(PA_PFX))) { popup_an_error("Invalid action: %s", aname); free_params(); return EM_ERROR; } any = -1; exact = -1; for (i = 0; i < actioncount; i++) { if (!strcasecmp(aname, actions[i].string)) { exact = any = i; break; } } if (exact < 0) { for (i = 0; i < actioncount; i++) { if (!strncasecmp(aname, actions[i].string, strlen(aname))) { if (any >= 0) { popup_an_error("Ambiguous action name: " "%s", aname); free_params(); return EM_ERROR; } any = i; } } } if (any >= 0) { sms->accumulated = False; sms->msec = 0L; ia_cause = cause; (*actions[any].proc)((Widget)NULL, (XEvent *)NULL, count? params: (String *)NULL, &count); free_params(); screen_disp(False); } else { popup_an_error("Unknown action: %s", aname); free_params(); return EM_ERROR; } #if defined(X3270_FT) /*[*/ if (ft_state != FT_NONE) sms->state = SS_FT_WAIT; #endif /*]*/ if (CKBWAIT) return EM_PAUSE; else return EM_CONTINUE; failure: popup_an_error("%s", fail_text[failreason-1]); return EM_ERROR; #undef fail #undef free_params } /* Run the string at the top of the stack. */ static void run_string(void) { int len; int len_left; trace_dsn("%s[%d] running\n", ST_NAME, sms_depth); sms->state = SS_RUNNING; len = strlen(sms->dptr); trace_dsn("%sString[%d]: '%s'\n", sms->is_hex ? "Hex" : "", sms_depth, sms->dptr); if (sms->is_hex) { if (CKBWAIT) { sms->state = SS_KBWAIT; trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } else { hex_input(sms->dptr); sms_pop(False); } } else { if ((len_left = emulate_input(sms->dptr, len, False))) { sms->dptr += len - len_left; if (CKBWAIT) { sms->state = SS_KBWAIT; trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } } else { sms_pop(False); } } } /* Run the macro at the top of the stack. */ static void run_macro(void) { char *a = sms->dptr; char *nextm; enum em_stat es; sms_t *s; trace_dsn("%s[%d] running\n", ST_NAME, sms_depth); /* * Keep executing commands off the line until one pauses or * we run out of commands. */ while (*a) { /* * Check for command failure. */ if (!sms->success) { trace_dsn("%s[%d] failed\n", ST_NAME, sms_depth); /* Propogate it. */ if (sms->next != SN) sms->next->success = False; break; } sms->state = SS_RUNNING; trace_dsn("%s[%d]: '%s'\n", ST_NAME, sms_depth, a); s = sms; s->success = True; s->executing = True; es = execute_command(st_cause[s->type], a, &nextm); s->executing = False; s->dptr = nextm; /* * If a new sms was started, we will be resumed * when it completes. */ if (sms != s) { return; } /* Macro could not execute. Abort it. */ if (es == EM_ERROR) { trace_dsn("%s[%d] error\n", ST_NAME, sms_depth); /* Propogate it. */ if (sms->next != SN) sms->next->success = False; /* If it was an idle command, cancel it. */ cancel_if_idle_command(); break; } /* Macro paused, implicitly or explicitly. Suspend it. */ if (es == EM_PAUSE || (int)sms->state >= (int)SS_KBWAIT) { if (sms->state == SS_RUNNING) sms->state = SS_KBWAIT; trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); sms->dptr = nextm; return; } /* Macro ran. */ a = nextm; } /* Finished with this macro. */ sms_pop(False); } /* Push a macro (macro, command or keymap action) on the stack. */ static void push_xmacro(enum sms_type type, char *s, Boolean is_login) { macro_output = False; if (!sms_push(type)) return; (void) strncpy(sms->msc, s, 1023); sms->msc[1023] = '\0'; sms->msc_len = strlen(s); if (sms->msc_len > 1023) sms->msc_len = 1023; if (is_login) { sms->state = SS_WAIT_IFIELD; sms->is_login = True; } else sms->state = SS_INCOMPLETE; sms_continue(); } /* Push a macro on the stack. */ void push_macro(char *s, Boolean is_login) { push_xmacro(ST_MACRO, s, is_login); } /* Push an interactive command on the stack. */ void push_command(char *s) { push_xmacro(ST_COMMAND, s, False); } /* Push an keymap action on the stack. */ void push_keymap_action(char *s) { push_xmacro(ST_KEYMAP, s, False); } /* Push an keymap action on the stack. */ void push_idle(char *s) { push_xmacro(ST_IDLE, s, False); } /* Push a string on the stack. */ static void push_string(char *s, Boolean is_login, Boolean is_hex) { if (!sms_push(ST_STRING)) return; (void) strncpy(sms->msc, s, 1023); sms->msc[1023] = '\0'; sms->msc_len = strlen(s); if (sms->msc_len > 1023) sms->msc_len = 1023; if (is_login) { sms->state = SS_WAIT_IFIELD; sms->is_login = True; } else sms->state = SS_INCOMPLETE; sms->is_hex = is_hex; if (sms_depth == 1) sms_continue(); } /* Push a Source'd file on the stack. */ static void push_file(int fd) { if (!sms_push(ST_FILE)) return; sms->infd = fd; read_from_file(); } /* Set a pending string. */ void ps_set(char *s, Boolean is_hex) { push_string(s, False, is_hex); } #if defined(X3270_MENUS) /*[*/ /* Callback for macros menu. */ void macro_command(struct macro_def *m) { push_macro(m->action, False); } #endif /*]*/ /* * If the string looks like an action, e.g., starts with "Xxx(", run a login * macro. Otherwise, set a simple pending login string. */ void login_macro(char *s) { char *t = s; Boolean looks_right = False; while (isspace(*t)) t++; if (isalnum(*t)) { while (isalnum(*t)) t++; while (isspace(*t)) t++; if (*t == '(') looks_right = True; } if (looks_right) push_macro(s, True); else push_string(s, True, False); } /* Run the first command in the msc[] buffer. */ static void run_script(void) { trace_dsn("%s[%d] running\n", ST_NAME, sms_depth); for (;;) { char *ptr; int cmd_len; char *cmd; sms_t *s; enum em_stat es; /* If the script isn't idle, we're done. */ if (sms->state != SS_IDLE) break; /* If a prompt is required, send one. */ if (sms->need_prompt) { script_prompt(sms->success); sms->need_prompt = False; } /* If there isn't a pending command, we're done. */ if (!sms->msc_len) break; /* Isolate the command. */ ptr = memchr(sms->msc, '\n', sms->msc_len); if (!ptr) break; *ptr++ = '\0'; cmd_len = ptr - sms->msc; cmd = sms->msc; /* Execute it. */ sms->state = SS_RUNNING; sms->success = True; trace_dsn("%s[%d]: '%s'\n", ST_NAME, sms_depth, cmd); s = sms; s->executing = True; es = execute_command(IA_SCRIPT, cmd, (char **)NULL); s->executing = False; /* Move the rest of the buffer over. */ if (cmd_len < s->msc_len) { s->msc_len -= cmd_len; (void) memmove(s->msc, ptr, s->msc_len); } else s->msc_len = 0; /* * If a new sms was started, we will be resumed * when it completes. */ if (sms != s) { s->need_prompt = True; return; } /* Handle what it did. */ if (es == EM_PAUSE || (int)sms->state >= (int)SS_KBWAIT) { if (sms->state == SS_RUNNING) sms->state = SS_KBWAIT; script_disable(); if (sms->state == SS_CLOSING) { sms_pop(False); return; } sms->need_prompt = True; } else if (es == EM_ERROR) { trace_dsn("%s[%d] error\n", ST_NAME, sms_depth); script_prompt(False); /* If it was an idle command, cancel it. */ cancel_if_idle_command(); } else script_prompt(sms->success); if (sms->state == SS_RUNNING) sms->state = SS_IDLE; else { trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } } } /* Read the next command from a file. */ static void read_from_file(void) { char *dptr; int len_left = sizeof(sms->msc); sms->msc_len = 0; dptr = sms->msc; while (len_left) { int nr; nr = read(sms->infd, dptr, 1); if (nr < 0) { sms_pop(False); return; } if (nr == 0) { if (sms->msc_len == 0) { sms_pop(False); return; } else { *++dptr = '\0'; break; } } if (*dptr == '\n') { if (sms->msc_len) { *dptr = '\0'; break; } } dptr++; sms->msc_len++; len_left--; } /* Run the command as a macro. */ trace_dsn("%s[%d] read '%s'\n", ST_NAME, sms_depth, sms->msc); sms->state = SS_INCOMPLETE; push_macro(sms->dptr, False); } /* Handle an error generated during the execution of a script or macro. */ void sms_error(const char *msg) { sms_t *s; Boolean is_script = False; /* Print the error message. */ s = sms_redirect_to(); is_script = (s != NULL); if (is_script) { char *text = Malloc(strlen("data: ") + strlen(msg) + 2); char *newline; char *last_space; sprintf(text, "data: %s", msg); newline = text; while ((newline = strchr(newline, '\n')) != NULL) *newline++ = ' '; last_space = strrchr(text, ' '); if (last_space != NULL && last_space == text + strlen(text) - 1) *last_space = '\n'; else strcat(text, "\n"); if (s->is_socket) send(s->infd, text, strlen(text), 0); else fprintf(s->outfile, "%s", text); Free(text); } else (void) fprintf(stderr, "%s\n", msg); /* Fail the current command. */ sms->success = False; /* Cancel any login. */ if (s != NULL && s->is_login) host_disconnect(True); } /* * Generate a response to a script command. * Makes sure that each line of output is prefixed with 'data:', if * appropriate, and makes sure that the output is newline terminated. * * If the parameter is an empty string, generates nothing, but if it is a * newline, generates an empty line. */ void sms_info(const char *fmt, ...) { char *nl; char msgbuf[4096]; char *msg = msgbuf; va_list args; sms_t *s; va_start(args, fmt); vsprintf(msgbuf, fmt, args); va_end(args); do { int nc; nl = strchr(msg, '\n'); if (nl != CN) nc = nl - msg; else nc = strlen(msg); if (nc || (nl != CN)) { if ((s = sms_redirect_to()) != NULL) { char *text = Malloc(strlen("data: ") + nc + 2); sprintf(text, "data: %.*s\n", nc, msg); if (s->is_socket) send(s->infd, text, strlen(text), 0); else (void) fprintf(s->outfile, "%s", text); Free(text); } else (void) printf("%.*s\n", nc, msg); } msg = nl + 1; } while (nl); macro_output = True; } /* Process available input from a script. */ static void script_input(void) { char buf[128]; int nr; char *ptr; char c; trace_dsn("Input for %s[%d] %d\n", ST_NAME, sms_depth, sms->state); /* Read in what you can. */ if (sms->is_socket) nr = recv(sms->infd, buf, sizeof(buf), 0); else nr = read(sms->infd, buf, sizeof(buf)); if (nr < 0) { #if defined(_WIN32) /*[*/ if (sms->is_socket) popup_an_error("%s[%d] recv: %s", ST_NAME, sms_depth, win32_strerror(GetLastError())); else #endif popup_an_errno(errno, "%s[%d] read", ST_NAME, sms_depth); return; } if (nr == 0) { /* end of file */ trace_dsn("EOF %s[%d]\n", ST_NAME, sms_depth); sms_pop(True); sms_continue(); return; } /* Append to the pending command, ignoring returns. */ ptr = buf; while (nr--) if ((c = *ptr++) != '\r') sms->msc[sms->msc_len++] = c; /* Run the command(s). */ sms->state = SS_INCOMPLETE; sms_continue(); } /* Resume a paused sms, if conditions are now ripe. */ void sms_continue(void) { static Boolean continuing = False; if (continuing) return; continuing = True; while (True) { if (sms == SN) { continuing = False; return; } switch (sms->state) { case SS_IDLE: continuing = False; return; /* nothing to do */ case SS_INCOMPLETE: case SS_RUNNING: break; /* let it proceed */ case SS_KBWAIT: if (CKBWAIT) { continuing = False; return; } break; case SS_WAIT_NVT: if (IN_ANSI) { sms->state = SS_WAIT_IFIELD; continue; } continuing = False; return; case SS_WAIT_3270: if (IN_3270 | IN_SSCP) { sms->state = SS_WAIT_IFIELD; continue; } continuing = False; return; case SS_WAIT_UNLOCK: if (KBWAIT) { continuing = False; return; } break; case SS_WAIT_IFIELD: if (!CAN_PROCEED) { continuing = False; return; } /* fall through... */ case SS_CONNECT_WAIT: if (HALF_CONNECTED || (CONNECTED && (kybdlock & KL_AWAITING_FIRST))) { continuing = False; return; } if (!CONNECTED) { /* connection failed */ if (sms->need_prompt) { script_prompt(False); sms->need_prompt = False; } break; } break; #if defined(X3270_FT) /*[*/ case SS_FT_WAIT: if (ft_state == FT_NONE) break; else { continuing = False; return; } #endif /*]*/ case SS_TIME_WAIT: continuing = False; return; case SS_WAIT_OUTPUT: case SS_SWAIT_OUTPUT: if (!CONNECTED) { popup_an_error("Host disconnected"); break; } continuing = False; return; case SS_WAIT_DISC: if (!CONNECTED) break; else { continuing = False; return; } case SS_PAUSED: continuing = False; return; case SS_EXPECTING: continuing = False; return; case SS_CLOSING: continuing = False; return; /* can't happen, I hope */ } /* Restart the sms. */ sms->state = SS_IDLE; if (sms->wait_id != 0L) { RemoveTimeOut(sms->wait_id); sms->wait_id = 0L; } switch (sms->type) { case ST_STRING: run_string(); break; case ST_MACRO: case ST_COMMAND: case ST_KEYMAP: case ST_IDLE: run_macro(); break; case ST_PEER: case ST_CHILD: script_enable(); run_script(); break; case ST_FILE: read_from_file(); break; } } continuing = False; } /* * Return True if there is a pending macro. */ Boolean sms_in_macro(void) { sms_t *s; for (s = sms; s != NULL; s = s->next) { if (s->type == ST_MACRO || s->type == ST_STRING) return True; } return False; } /* * Macro- and script-specific actions. */ static void dump_range(int first, int len, Boolean in_ascii, struct ea *buf, int rel_rows _is_unused, int rel_cols) { register int i; Boolean any = False; Boolean is_zero = False; char *linebuf; char *s; linebuf = Malloc(maxCOLS * 4 + 1); s = linebuf; /* * If the client has looked at the live screen, then if they later * execute 'Wait(output)', they will need to wait for output from the * host. output_wait_needed is cleared by sms_host_output, * which is called from the write logic in ctlr.c. */ if (sms != SN && buf == ea_buf) sms->output_wait_needed = True; is_zero = FA_IS_ZERO(get_field_attribute(first)); for (i = 0; i < len; i++) { if (i && !((first + i) % rel_cols)) { *s = '\0'; action_output("%s", linebuf); s = linebuf; any = False; } if (in_ascii) { char mb[16]; ucs4_t uc; int j; int xlen; if (buf[first + i].fa) { is_zero = FA_IS_ZERO(buf[first + i].fa); s += sprintf(s, " "); } else if (is_zero) s += sprintf(s, " "); else #if defined(X3270_DBCS) /*[*/ if (IS_LEFT(ctlr_dbcs_state(first + i))) { xlen = ebcdic_to_multibyte( (buf[first + i].cc << 8) | buf[first + i + 1].cc, mb, sizeof(mb)); for (j = 0; j < xlen - 1; j++) { s += sprintf(s, "%c", mb[j]); } } else if (IS_RIGHT(ctlr_dbcs_state(first + i))) { continue; } else #endif /*]*/ { xlen = ebcdic_to_multibyte_x( buf[first + i].cc, buf[first + i].cs, mb, sizeof(mb), EUO_BLANK_UNDEF, &uc); for (j = 0; j < xlen - 1; j++) { s += sprintf(s, "%c", mb[j]); } } } else { s += sprintf(s, "%s%02x", i ? " " : "", buf[first + i].cc); } any = True; } if (any) { *s = '\0'; action_output("%s", linebuf); } Free(linebuf); } static void dump_fixed(String params[], Cardinal count, const char *name, Boolean in_ascii, struct ea *buf, int rel_rows, int rel_cols, int caddr) { int row, col, len, rows = 0, cols = 0; switch (count) { case 0: /* everything */ row = 0; col = 0; len = rel_rows*rel_cols; break; case 1: /* from cursor, for n */ row = caddr / rel_cols; col = caddr % rel_cols; len = atoi(params[0]); break; case 3: /* from (row,col), for n */ row = atoi(params[0]); col = atoi(params[1]); len = atoi(params[2]); break; case 4: /* from (row,col), for rows x cols */ row = atoi(params[0]); col = atoi(params[1]); rows = atoi(params[2]); cols = atoi(params[3]); len = 0; break; default: popup_an_error("%s requires 0, 1, 3 or 4 arguments", name); return; } if ( (row < 0 || row > rel_rows || col < 0 || col > rel_cols || len < 0) || ((count < 4) && ((row * rel_cols) + col + len > rel_rows * rel_cols)) || ((count == 4) && (cols < 0 || rows < 0 || col + cols > rel_cols || row + rows > rel_rows)) ) { popup_an_error("%s: Invalid argument", name); return; } if (count < 4) dump_range((row * rel_cols) + col, len, in_ascii, buf, rel_rows, rel_cols); else { int i; for (i = 0; i < rows; i++) dump_range(((row+i) * rel_cols) + col, cols, in_ascii, buf, rel_rows, rel_cols); } } static void dump_field(Cardinal count, const char *name, Boolean in_ascii) { int faddr; unsigned char fa; int start, baddr; int len = 0; if (count != 0) { popup_an_error("%s requires 0 arguments", name); return; } if (!formatted) { popup_an_error("%s: Screen is not formatted", name); return; } faddr = find_field_attribute(cursor_addr); fa = get_field_attribute(cursor_addr); start = faddr; INC_BA(start); baddr = start; do { if (ea_buf[baddr].fa) break; len++; INC_BA(baddr); } while (baddr != start); dump_range(start, len, in_ascii, ea_buf, ROWS, COLS); } void Ascii_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { dump_fixed(params, *num_params, action_name(Ascii_action), True, ea_buf, ROWS, COLS, cursor_addr); } void AsciiField_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params) { dump_field(*num_params, action_name(AsciiField_action), True); } void Ebcdic_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { dump_fixed(params, *num_params, action_name(Ebcdic_action), False, ea_buf, ROWS, COLS, cursor_addr); } void EbcdicField_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params) { dump_field(*num_params, action_name(EbcdicField_action), False); } static unsigned char calc_cs(unsigned char cs) { switch (cs & CS_MASK) { case CS_APL: return 0xf1; case CS_LINEDRAW: return 0xf2; case CS_DBCS: return 0xf8; default: return 0x00; } } /* * Internals of the ReadBuffer action. * Operates on the supplied 'buf' parameter, which might be the live * screen buffer 'ea_buf' or a copy saved with 'Snap'. */ static void do_read_buffer(String *params, Cardinal num_params, struct ea *buf, int fd) { register int baddr; unsigned char current_fg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; Boolean in_ebcdic = False; rpf_t r; if (num_params > 0) { if (num_params > 1) { popup_an_error("%s: extra agruments", action_name(ReadBuffer_action)); return; } if (!strncasecmp(params[0], "Ascii", strlen(params[0]))) in_ebcdic = False; else if (!strncasecmp(params[0], "Ebcdic", strlen(params[0]))) in_ebcdic = True; else { popup_an_error("%s: first parameter must be " "Ascii or Ebcdic", action_name(ReadBuffer_action)); return; } } if (fd >= 0) { char *s; int nw; s = xs_buffer("rows %d cols %d cursor %d\n", ROWS, COLS, cursor_addr); nw = write(fd, s, strlen(s)); Free(s); if (nw < 0) return; } rpf_init(&r); baddr = 0; do { if (!(baddr % COLS)) { if (baddr) { if (fd >= 0) { if (write(fd, r.buf + 1, strlen(r.buf + 1)) < 0) goto done; if (write(fd, "\n", 1) < 0) goto done; } else action_output("%s", r.buf + 1); } rpf_reset(&r); } if (buf[baddr].fa) { rpf(&r, " SF(%02x=%02x", XA_3270, buf[baddr].fa); if (buf[baddr].fg) rpf(&r, ",%02x=%02x", XA_FOREGROUND, buf[baddr].fg); if (buf[baddr].gr) rpf(&r, ",%02x=%02x", XA_HIGHLIGHTING, buf[baddr].gr | 0xf0); if (buf[baddr].cs & CS_MASK) rpf(&r, ",%02x=%02x", XA_CHARSET, calc_cs(buf[baddr].cs)); rpf(&r, ")"); } else { if (buf[baddr].fg != current_fg) { rpf(&r, " SA(%02x=%02x)", XA_FOREGROUND, buf[baddr].fg); current_fg = buf[baddr].fg; } if (buf[baddr].gr != current_gr) { rpf(&r, " SA(%02x=%02x)", XA_HIGHLIGHTING, buf[baddr].gr | 0xf0); current_gr = buf[baddr].gr; } if ((buf[baddr].cs & ~CS_GE) != (current_cs & ~CS_GE)) { rpf(&r, " SA(%02x=%02x)", XA_CHARSET, calc_cs(buf[baddr].cs)); current_cs = buf[baddr].cs; } if (in_ebcdic) { if (buf[baddr].cs & CS_GE) rpf(&r, " GE(%02x)", buf[baddr].cc); else rpf(&r, " %02x", buf[baddr].cc); } else { Boolean done = False; char mb[16]; int j; ucs4_t uc; #if defined(X3270_DBCS) /*[*/ int len; if (IS_LEFT(ctlr_dbcs_state(baddr))) { len = ebcdic_to_multibyte( (buf[baddr].cc << 8) | buf[baddr + 1].cc, mb, sizeof(mb)); rpf(&r, " "); for (j = 0; j < len-1; j++) rpf(&r, "%02x", mb[j] & 0xff); done = True; } else if (IS_RIGHT(ctlr_dbcs_state(baddr))) { rpf(&r, " -"); done = True; } #endif /*]*/ switch (buf[baddr].cc) { case EBC_null: mb[0] = '\0'; break; case EBC_so: mb[0] = 0x0e; mb[1] = '\0'; break; case EBC_si: mb[0] = 0x0f; mb[1] = '\0'; break; default: (void) ebcdic_to_multibyte_x( buf[baddr].cc, buf[baddr].cs, mb, sizeof(mb), EUO_NONE, &uc); break; } if (!done) { rpf(&r, " "); if (mb[0] == '\0') rpf(&r, "00"); else { for (j = 0; mb[j]; j++) { rpf(&r, "%02x", mb[j] & 0xff); } } } } } INC_BA(baddr); } while (baddr != 0); if (fd >= 0) { if (write(fd, r.buf + 1, strlen(r.buf + 1)) < 0) goto done; if (write(fd, "\n", 1) < 0) goto done; } else action_output("%s", r.buf + 1); done: rpf_free(&r); } /* * ReadBuffer action. */ void ReadBuffer_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { do_read_buffer(params, *num_params, ea_buf, -1); } /* * The sms prompt is preceeded by a status line with 11 fields: * * 1 keyboard status * U unlocked * L locked, waiting for host response * E locked, keying error * 2 formatting status of screen * F formatted * U unformatted * 3 protection status of current field * U unprotected (modifiable) * P protected * 4 connect status * N not connected * C(host) connected * 5 emulator mode * N not connected * C connected in ANSI character mode * L connected in ANSI line mode * P 3270 negotiation pending * I connected in 3270 mode * 6 model number * 7 rows * 8 cols * 9 cursor row * 10 cursor col * 11 main window id */ static char * status_string(void) { char kb_stat; char fmt_stat; char prot_stat; char *connect_stat = CN; char em_mode; char s[1024]; char *r; if (!kybdlock) kb_stat = 'U'; else if (!CONNECTED || KBWAIT) kb_stat = 'L'; else kb_stat = 'E'; if (formatted) fmt_stat = 'F'; else fmt_stat = 'U'; if (!formatted) prot_stat = 'U'; else { unsigned char fa; fa = get_field_attribute(cursor_addr); if (FA_IS_PROTECTED(fa)) prot_stat = 'P'; else prot_stat = 'U'; } if (CONNECTED) connect_stat = xs_buffer("C(%s)", current_host); else connect_stat = NewString("N"); if (CONNECTED) { if (IN_ANSI) { if (linemode) em_mode = 'L'; else em_mode = 'C'; } else if (IN_3270) em_mode = 'I'; else em_mode = 'P'; } else em_mode = 'N'; (void) sprintf(s, "%c %c %c %s %c %d %d %d %d %d 0x%lx", kb_stat, fmt_stat, prot_stat, connect_stat, em_mode, model_num, ROWS, COLS, cursor_addr / COLS, cursor_addr % COLS, #if defined(X3270_DISPLAY) /*[*/ XtWindow(toplevel) #else /*][*/ 0L #endif /*]*/ ); r = NewString(s); Free(connect_stat); return r; } static void script_prompt(Boolean success) { char *s; char timing[64]; char *t; s = status_string(); if (sms != SN && sms->accumulated) (void) sprintf(timing, "%ld.%03ld", sms->msec / 1000L, sms->msec % 1000L); else (void) strcpy(timing, "-"); t = Malloc(strlen(s) + 1 + strlen(timing) + 1 + 6 + 1); sprintf(t, "%s %s\n%s\n", s, timing, success ? "ok" : "error"); Free(s); if (sms->is_socket) { send(sms->infd, t, strlen(t), 0); } else { (void) fprintf(sms->outfile, "%s", t); (void) fflush(sms->outfile); } free(t); } /* Save the state of the screen for Snap queries. */ static char *snap_status = NULL; static struct ea *snap_buf = NULL; static int snap_rows = 0; static int snap_cols = 0; static int snap_field_start = -1; static int snap_field_length = -1; static int snap_caddr = 0; static void snap_save(void) { sms->output_wait_needed = True; Replace(snap_status, status_string()); Replace(snap_buf, (struct ea *)Malloc(ROWS*COLS*sizeof(struct ea))); (void) memcpy(snap_buf, ea_buf, ROWS*COLS*sizeof(struct ea)); snap_rows = ROWS; snap_cols = COLS; if (!formatted) { snap_field_start = -1; snap_field_length = -1; } else { int baddr; snap_field_length = 0; snap_field_start = find_field_attribute(cursor_addr); INC_BA(snap_field_start); baddr = snap_field_start; do { if (ea_buf[baddr].fa) break; snap_field_length++; INC_BA(baddr); } while (baddr != snap_field_start); } snap_caddr = cursor_addr; } /* * "Snap" action, maintains a snapshot for consistent multi-field comparisons: * * Snap [Save] * updates the saved image from the live image * Snap Rows * returns the number of rows * Snap Cols * returns the number of columns * Snap Staus * Snap Ascii ... * Snap AsciiField (not yet) * Snap Ebcdic ... * Snap EbcdicField (not yet) * Snap ReadBuffer * runs the named command * Snap Wait [tmo] Output * wait for the screen to change, then do a Snap Save */ void Snap_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (sms == SN || sms->state != SS_RUNNING) { popup_an_error("%s can only be called from scripts or macros", action_name(Snap_action)); return; } if (*num_params == 0) { snap_save(); return; } /* Handle 'Snap Wait' separately. */ if (!strcasecmp(params[0], action_name(Wait_action))) { long tmo = -1; char *ptr; Cardinal maxp = 0; if (*num_params > 1 && (tmo = strtol(params[1], &ptr, 10)) >= 0 && ptr != params[0] && *ptr == '\0') { maxp = 3; } else { tmo = -1; maxp = 2; } if (*num_params > maxp) { popup_an_error("Too many arguments to %s %s", action_name(Snap_action), action_name(Wait_action)); return; } if (*num_params < maxp) { popup_an_error("Too few arguments to %s %s", action_name(Snap_action), action_name(Wait_action)); return; } if (strcasecmp(params[*num_params - 1], "Output")) { popup_an_error("Unknown parameter to %s %s", action_name(Snap_action), action_name(Wait_action)); return; } /* Must be connected. */ if (!(CONNECTED || HALF_CONNECTED)) { popup_an_error("%s: Not connected", action_name(Snap_action)); return; } /* * Make sure we need to wait. * If we don't, then Snap(Wait) is equivalent to Snap(). */ if (!sms->output_wait_needed) { snap_save(); return; } /* Set the new state. */ sms->state = SS_SWAIT_OUTPUT; /* Set up a timeout, if they want one. */ if (tmo >= 0) sms->wait_id = AddTimeOut(tmo? (tmo * 1000): 1, wait_timed_out); return; } if (!strcasecmp(params[0], "Save")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } snap_save(); } else if (!strcasecmp(params[0], "Status")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } if (snap_status == NULL) { popup_an_error("No saved state"); return; } action_output("%s", snap_status); } else if (!strcasecmp(params[0], "Rows")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } if (snap_status == NULL) { popup_an_error("No saved state"); return; } action_output("%d", snap_rows); } else if (!strcasecmp(params[0], "Cols")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } if (snap_status == NULL) { popup_an_error("No saved state"); return; } action_output("%d", snap_cols); } else if (!strcasecmp(params[0], action_name(Ascii_action))) { if (snap_status == NULL) { popup_an_error("No saved state"); return; } dump_fixed(params + 1, *num_params - 1, action_name(Ascii_action), True, snap_buf, snap_rows, snap_cols, snap_caddr); } else if (!strcasecmp(params[0], action_name(Ebcdic_action))) { if (snap_status == NULL) { popup_an_error("No saved state"); return; } dump_fixed(params + 1, *num_params - 1, action_name(Ebcdic_action), False, snap_buf, snap_rows, snap_cols, snap_caddr); } else if (!strcasecmp(params[0], action_name(ReadBuffer_action))) { if (snap_status == NULL) { popup_an_error("No saved state"); return; } do_read_buffer(params + 1, *num_params - 1, snap_buf, -1); } else { popup_an_error("%s: Argument must be Save, Status, Rows, Cols, " "%s, %s %s, or %s", action_name(Snap_action), action_name(Wait_action), action_name(Ascii_action), action_name(Ebcdic_action), action_name(ReadBuffer_action)); } } /* * Wait for various conditions. */ void Wait_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { enum sms_state next_state = SS_WAIT_IFIELD; long tmo = -1; char *ptr; Cardinal np; String *pr; /* Pick off the timeout parameter first. */ if (*num_params > 0 && (tmo = strtol(params[0], &ptr, 10)) >= 0 && ptr != params[0] && *ptr == '\0') { np = *num_params - 1; pr = params + 1; } else { tmo = -1; np = *num_params; pr = params; } if (np > 1) { popup_an_error("Too many arguments to %s or invalid timeout " "value", action_name(Wait_action)); return; } if (sms == SN || sms->state != SS_RUNNING) { popup_an_error("%s can only be called from scripts or macros", action_name(Wait_action)); return; } if (np == 1) { if (!strcasecmp(pr[0], "NVTMode") || !strcasecmp(pr[0], "ansi")) { if (!IN_ANSI) next_state = SS_WAIT_NVT; } else if (!strcasecmp(pr[0], "3270Mode") || !strcasecmp(pr[0], "3270")) { if (!IN_3270) next_state = SS_WAIT_3270; } else if (!strcasecmp(pr[0], "Output")) { if (sms->output_wait_needed) next_state = SS_WAIT_OUTPUT; else return; } else if (!strcasecmp(pr[0], "Disconnect")) { if (CONNECTED) next_state = SS_WAIT_DISC; else return; } else if (!strcasecmp(pr[0], "Unlock")) { if (KBWAIT) next_state = SS_WAIT_UNLOCK; else return; } else if (tmo > 0 && !strcasecmp(pr[0], "Seconds")) { next_state = SS_TIME_WAIT; } else if (strcasecmp(pr[0], "InputField")) { popup_an_error("%s argument must be InputField, " "NVTmode, 3270Mode, Output, Seconds, Disconnect " "or Unlock", action_name(Wait_action)); return; } } if (!(CONNECTED || HALF_CONNECTED)) { popup_an_error("%s: Not connected", action_name(Wait_action)); return; } /* Is it already okay? */ if (next_state == SS_WAIT_IFIELD && CAN_PROCEED) return; /* No, wait for it to happen. */ sms->state = next_state; /* Set up a timeout, if they want one. */ if (tmo >= 0) sms->wait_id = AddTimeOut(tmo? (tmo * 1000): 1, wait_timed_out); } /* * Callback from Connect() and Reconnect() actions, to minimally pause a * running sms. */ void sms_connect_wait(void) { if (sms != SN && (int)sms->state >= (int)SS_RUNNING && sms->state != SS_WAIT_IFIELD) { if (HALF_CONNECTED || (CONNECTED && (kybdlock & KL_AWAITING_FIRST))) sms->state = SS_CONNECT_WAIT; } } /* * Callback from ctlr.c, to indicate that the host has changed the screen. */ void sms_host_output(void) { if (sms != SN) { sms->output_wait_needed = False; switch (sms->state) { case SS_SWAIT_OUTPUT: snap_save(); /* fall through... */ case SS_WAIT_OUTPUT: sms->state = SS_RUNNING; sms_continue(); break; default: break; } } } /* Return whether error pop-ups and acition output should be short-circuited. */ static sms_t * sms_redirect_to(void) { sms_t *s; for (s = sms; s != SN; s = s->next) { if ((s->type == ST_CHILD || s->type == ST_PEER) && (s->state == SS_RUNNING || s->state == SS_CONNECT_WAIT || s->state == SS_WAIT_OUTPUT || s->state == SS_SWAIT_OUTPUT || s->wait_id != 0L)) return s; } return NULL; } /* Return whether error pop-ups and acition output should be short-circuited. */ Boolean sms_redirect(void) { return sms_redirect_to() != NULL; } #if defined(X3270_MENUS) || defined(C3270) /*[*/ /* Return whether any scripts are active. */ Boolean sms_active(void) { return sms != SN; } #endif /*]*/ /* Translate an expect string (uses C escape syntax). */ static void expand_expect(char *s) { char *t = Malloc(strlen(s) + 1); char c; enum { XS_BASE, XS_BS, XS_O, XS_X } state = XS_BASE; int n = 0; int nd = 0; static char hexes[] = "0123456789abcdef"; expect_text = t; while ((c = *s++)) { switch (state) { case XS_BASE: if (c == '\\') state = XS_BS; else *t++ = c; break; case XS_BS: switch (c) { case 'x': nd = 0; n = 0; state = XS_X; break; case 'r': *t++ = '\r'; state = XS_BASE; break; case 'n': *t++ = '\n'; state = XS_BASE; break; case 'b': *t++ = '\b'; state = XS_BASE; break; default: if (c >= '0' && c <= '7') { nd = 1; n = c - '0'; state = XS_O; } else { *t++ = c; state = XS_BASE; } break; } break; case XS_O: if (nd < 3 && c >= '0' && c <= '7') { n = (n * 8) + (c - '0'); nd++; } else { *t++ = n; *t++ = c; state = XS_BASE; } break; case XS_X: if (isxdigit(c)) { n = (n * 16) + strchr(hexes, tolower(c)) - hexes; nd++; } else { if (nd) *t++ = n; else *t++ = 'x'; *t++ = c; state = XS_BASE; } break; } } expect_len = t - expect_text; } /* 'mem' version of strstr */ static char * memstr(char *s1, char *s2, int n1, int n2) { int i; for (i = 0; i <= n1 - n2; i++, s1++) if (*s1 == *s2 && !memcmp(s1, s2, n2)) return s1; return CN; } /* Check for a match against an expect string. */ static Boolean expect_matches(void) { int ix, i; unsigned char buf[ANSI_SAVE_SIZE]; char *t; ix = (ansi_save_ix + ANSI_SAVE_SIZE - ansi_save_cnt) % ANSI_SAVE_SIZE; for (i = 0; i < ansi_save_cnt; i++) { buf[i] = ansi_save_buf[(ix + i) % ANSI_SAVE_SIZE]; } t = memstr((char *)buf, expect_text, ansi_save_cnt, expect_len); if (t != CN) { ansi_save_cnt -= ((unsigned char *)t - buf) + expect_len; Free(expect_text); expect_text = CN; return True; } else return False; } /* Store an ANSI character for use by the Ansi action. */ void sms_store(unsigned char c) { if (sms == SN) return; /* Save the character in the buffer. */ ansi_save_buf[ansi_save_ix++] = c; ansi_save_ix %= ANSI_SAVE_SIZE; if (ansi_save_cnt < ANSI_SAVE_SIZE) ansi_save_cnt++; /* If a script or macro is waiting to match a string, check now. */ if (sms->state == SS_EXPECTING && expect_matches()) { RemoveTimeOut(sms->expect_id); sms->expect_id = 0L; sms->state = SS_INCOMPLETE; sms_continue(); } } /* Dump whatever ANSI data has been sent by the host since last called. */ void AnsiText_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { register int i; int ix; unsigned char c; char linebuf[ANSI_SAVE_SIZE * 4 + 1]; char *s = linebuf; if (!ansi_save_cnt) return; ix = (ansi_save_ix + ANSI_SAVE_SIZE - ansi_save_cnt) % ANSI_SAVE_SIZE; for (i = 0; i < ansi_save_cnt; i++) { c = ansi_save_buf[(ix + i) % ANSI_SAVE_SIZE]; if (!(c & ~0x1f)) switch (c) { case '\n': s += sprintf(s, "\\n"); break; case '\r': s += sprintf(s, "\\r"); break; case '\b': s += sprintf(s, "\\b"); break; default: s += sprintf(s, "\\%03o", c); break; } else if (c == '\\') s += sprintf(s, "\\\\"); else *s++ = (char)c; } *s = '\0'; action_output("%s", linebuf); ansi_save_cnt = 0; ansi_save_ix = 0; } /* Pause a script. */ void PauseScript_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { if (sms == SN || (sms->type != ST_PEER && sms->type != ST_CHILD)) { popup_an_error("%s can only be called from a script", action_name(PauseScript_action)); return; } sms->state = SS_PAUSED; } /* Continue a script. */ void ContinueScript_action(Widget w, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (check_usage(ContinueScript_action, *num_params, 1, 1) < 0) return; /* * If this is a nested script, this action aborts the current script, * then applies to the previous one. */ if (w == (Widget)NULL && sms_depth > 1) sms_pop(False); /* Continue the previous script. */ if (sms == SN || sms->state != SS_PAUSED) { popup_an_error("%s: No script waiting", action_name(ContinueScript_action)); sms_continue(); return; } action_output("%s", params[0]); sms->state = SS_RUNNING; sms_continue(); } /* Stop listening to stdin. */ void CloseScript_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (sms != SN && (sms->type == ST_PEER || sms->type == ST_CHILD)) { /* Close this script. */ sms->state = SS_CLOSING; script_prompt(True); /* If nonzero status passed, fail the calling script. */ if (*num_params > 0 && atoi(params[0]) != 0 && sms->next != SN) { sms->next->success = False; if (sms->is_login) host_disconnect(True); } } else popup_an_error("%s can only be called from a script", action_name(CloseScript_action)); } /* Execute an arbitrary shell command. */ void Execute_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int status; if (check_usage(Execute_action, *num_params, 1, 1) < 0) return; status = system(params[0]); if (status < 0) { popup_an_errno(errno, "system(\"%s\") failed", params[0]); } else if (status != 0) { #if defined(_WIN32) /*[*/ popup_an_error("system(\"%s\") exited with status %d\n", params[0], status); #else /*][*/ if (WIFEXITED(status)) { popup_an_error("system(\"%s\") exited with status %d\n", params[0], WEXITSTATUS(status)); } else if (WIFSIGNALED(status)) { popup_an_error("system(\"%s\") killed by signal %d\n", params[0], WTERMSIG(status)); } else if (WIFSTOPPED(status)) { popup_an_error("system(\"%s\") stopped by signal %d\n", params[0], WSTOPSIG(status)); } #endif /*]*/ } } /* Timeout for Expect action. */ static void expect_timed_out(void) { if (sms == SN || sms->state != SS_EXPECTING) return; Free(expect_text); expect_text = CN; popup_an_error("%s: Timed out", action_name(Expect_action)); sms->expect_id = 0L; sms->state = SS_INCOMPLETE; sms->success = False; if (sms->is_login) host_disconnect(True); sms_continue(); } /* Timeout for Wait action. */ static void wait_timed_out(void) { /* If they just wanted a delay, succeed. */ if (sms->state == SS_TIME_WAIT) { sms->success = True; sms->state = SS_INCOMPLETE; sms_continue(); return; } /* Pop up the error message. */ popup_an_error("%s: Timed out", action_name(Wait_action)); /* Forget the ID. */ sms->wait_id = 0L; /* If this is a login macro, it has failed. */ if (sms->is_login) host_disconnect(True); sms->success = False; sms->state = SS_INCOMPLETE; /* Let the script proceed. */ sms_continue(); } /* Wait for a string from the host (ANSI mode only). */ void Expect_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int tmo; /* Verify the environment and parameters. */ if (sms == SN || sms->state != SS_RUNNING) { popup_an_error("%s can only be called from a script or macro", action_name(Expect_action)); return; } if (check_usage(Expect_action, *num_params, 1, 2) < 0) return; if (!IN_ANSI) { popup_an_error("%s is valid only when connected in ANSI mode", action_name(Expect_action)); } if (*num_params == 2) { tmo = atoi(params[1]); if (tmo < 1 || tmo > 600) { popup_an_error("%s: Invalid timeout: %s", action_name(Expect_action), params[1]); return; } } else tmo = 30; /* See if the text is there already; if not, wait for it. */ expand_expect(params[0]); if (!expect_matches()) { sms->expect_id = AddTimeOut(tmo * 1000, expect_timed_out); sms->state = SS_EXPECTING; } /* else allow sms to proceed */ } #if defined(X3270_MENUS) /*[*/ /* "Execute an Action" menu option */ static Widget execute_action_shell = (Widget)NULL; /* Callback for "OK" button on execute action popup */ static void execute_action_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *text; text = XawDialogGetValueString((Widget)client_data); XtPopdown(execute_action_shell); if (!text) return; push_macro(text, False); } void execute_action_option(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { if (execute_action_shell == NULL) execute_action_shell = create_form_popup("ExecuteAction", execute_action_callback, (XtCallbackProc)NULL, FORM_NO_CC); popup_popup(execute_action_shell, XtGrabExclusive); } #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ # if defined(_WIN32) /*[*/ /* Let the system pick a TCP port to bind to, and listen on it. */ static unsigned short pick_port(int *sp) { int s; struct sockaddr_in sin; socklen_t len; s = socket(PF_INET, SOCK_STREAM, 0); if (s < 0) { popup_an_error("socket: %s\n", win32_strerror(GetLastError())); return 0; } (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) { popup_an_error("bind: %s\n", win32_strerror(GetLastError())); closesocket(s); return 0; } len = sizeof(sin); if (getsockname(s, (struct sockaddr *)&sin, &len) < 0) { popup_an_error("getsockaddr: %s\n", win32_strerror(GetLastError())); closesocket(s); return 0; } if (listen(s, 10) < 0) { popup_an_error("listen: %s\n", win32_strerror(GetLastError())); closesocket(s); return 0; } *sp = s; return ntohs(sin.sin_port); } # endif /*]*/ /* "Script" action, runs a script as a child process. */ # if !defined(_WIN32) /*[*/ void Script_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int inpipe[2]; int outpipe[2]; if (*num_params < 1) { popup_an_error("%s requires at least one argument", action_name(Script_action)); return; } /* Create a new script description. */ if (!sms_push(ST_CHILD)) return; /* * Create pipes and stdout stream for the script process. * inpipe[] is read by x3270, written by the script * outpipe[] is written by x3270, read by the script */ if (pipe(inpipe) < 0) { sms_pop(False); popup_an_error("pipe() failed"); return; } if (pipe(outpipe) < 0) { (void) close(inpipe[0]); (void) close(inpipe[1]); sms_pop(False); popup_an_error("pipe() failed"); return; } if ((sms->outfile = fdopen(outpipe[1], "w")) == (FILE *)NULL) { (void) close(inpipe[0]); (void) close(inpipe[1]); (void) close(outpipe[0]); (void) close(outpipe[1]); sms_pop(False); popup_an_error("fdopen() failed"); return; } (void) SETLINEBUF(sms->outfile); /* Fork and exec the script process. */ if ((sms->pid = fork_child()) < 0) { (void) close(inpipe[0]); (void) close(inpipe[1]); (void) close(outpipe[0]); sms_pop(False); popup_an_error("fork() failed"); return; } /* Child processing. */ if (sms->pid == 0) { char **argv; Cardinal i; char env_buf[2][32]; /* Clean up the pipes. */ (void) close(outpipe[1]); (void) close(inpipe[0]); /* Export the names of the pipes into the environment. */ (void) sprintf(env_buf[0], "X3270OUTPUT=%d", outpipe[0]); (void) putenv(env_buf[0]); (void) sprintf(env_buf[1], "X3270INPUT=%d", inpipe[1]); (void) putenv(env_buf[1]); /* Set up arguments. */ argv = (char **)Malloc((*num_params + 1) * sizeof(char *)); for (i = 0; i < *num_params; i++) argv[i] = params[i]; argv[i] = CN; /* Exec. */ (void) execvp(params[0], argv); (void) fprintf(stderr, "exec(%s) failed\n", params[0]); (void) _exit(1); } /* Clean up our ends of the pipes. */ sms->infd = inpipe[0]; (void) close(inpipe[1]); (void) close(outpipe[0]); /* Enable input. */ script_enable(); /* Set up to reap the child's exit status. */ ++children; } # endif /*]*/ # if defined(_WIN32) /*[*/ /* "Script" action, runs a script as a child process. */ void Script_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int s = -1; unsigned short port = 0; HANDLE hevent; char *pe; STARTUPINFO startupinfo; PROCESS_INFORMATION process_information; char *args; Cardinal i; if (*num_params < 1) { popup_an_error("%s requires at least one argument", action_name(Script_action)); return; } /* Set up X3270PORT for the child process. */ port = pick_port(&s); if (port == 0) return; hevent = CreateEvent(NULL, FALSE, FALSE, NULL); if (hevent == NULL) { popup_an_error("CreateEvent: %s", win32_strerror(GetLastError())); closesocket(s); return; } if (WSAEventSelect(s, hevent, FD_ACCEPT) != 0) { popup_an_error("WSAEventSelect: %s", win32_strerror(GetLastError())); closesocket(s); return; } pe = xs_buffer("X3270PORT=%d", port); putenv(pe); Free(pe); /* Start the child process. */ (void) memset(&startupinfo, '\0', sizeof(STARTUPINFO)); startupinfo.cb = sizeof(STARTUPINFO); (void) memset(&process_information, '\0', sizeof(PROCESS_INFORMATION)); args = NewString(params[0]); for (i = 1; i < *num_params; i++) { char *t; if (strchr(params[i], ' ') != NULL && params[i][0] != '"' && params[i][strlen(params[i]) - 1] != '"') t = xs_buffer("%s \"%s\"", args, params[i]); else t = xs_buffer("%s %s", args, params[i]); Free(args); args = t; } if (CreateProcess( NULL, args, NULL, NULL, FALSE, 0, NULL, NULL, &startupinfo, &process_information) == 0) { popup_an_error("CreateProcess(%s) failed: %s", params[0], win32_strerror(GetLastError())); Free(args); return; } else { Free(args); CloseHandle(process_information.hThread); } /* Create a new script description. */ if (!sms_push(ST_CHILD)) return; sms->child_handle = process_information.hProcess; sms->inhandle = hevent; sms->infd = s; /* * Wait for the child process to exit. * Note that this is an asynchronous event -- exits for multiple * children can happen in any order. */ sms->exit_id = AddInput((int)process_information.hProcess, child_exited); /* Allow the child script to connect back to us. */ sms->listen_id = AddInput((int)hevent, child_socket_connection); /* Enable input. */ script_enable(); } # endif /*]*/ #endif /*]*/ /* "Macro" action, explicitly invokes a named macro. */ void Macro_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { struct macro_def *m; if (check_usage(Macro_action, *num_params, 1, 1) < 0) return; for (m = macro_defs; m != (struct macro_def *)NULL; m = m->next) { if (!strcmp(m->name, params[0])) { push_macro(m->action, False); return; } } popup_an_error("no such macro: '%s'", params[0]); } #if defined(X3270_SCRIPT) /*[*/ /* * Idle cancellation: cancels the idle command if the current sms or any sms * that called it caused an error. */ void cancel_if_idle_command(void) { sms_t *s; for (s = sms; s != NULL; s = s->next) { if (s->type == ST_IDLE) { cancel_idle_timer(); s->idle_error = True; trace_dsn("Cancelling idle command"); break; } } } #endif /*]*/ #if defined(X3270_PRINTER) /*[*/ /* "Printer" action, starts or stops a printer session. */ void Printer_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (check_usage(Printer_action, *num_params, 1, 2) < 0) return; if (!strcasecmp(params[0], "Start")) { printer_start((*num_params > 1)? params[1] : CN); } else if (!strcasecmp(params[0], "Stop")) { if (*num_params != 1) { popup_an_error("%s: Extra argument(s)", action_name(Printer_action)); return; } printer_stop(); } else { popup_an_error("%s: Argument must Start or Stop", action_name(Printer_action)); } } #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ /* Abort all running scripts. */ void abort_script(void) { while (sms != SN) { #if !defined(_WIN32) /*[*/ if (sms->type == ST_CHILD && sms->pid > 0) (void) kill(sms->pid, SIGTERM); #endif /*]*/ sms_pop(True); } } /* "Abort" action, stops pending scripts. */ void Abort_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { #if !defined(_WIN32) /*[*/ child_ignore_output(); #endif /*]*/ abort_script(); } #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ /* Accumulate command execution time. */ void sms_accumulate_time(struct timeval *t0, struct timeval *t1) { if (sms != SN) { sms->accumulated = True; sms->msec += (t1->tv_sec - t0->tv_sec) * 1000 + (t1->tv_usec - t0->tv_usec + 500) / 1000; #if defined(DEBUG_ACCUMULATE) /*[*/ printf("%s: accumulated %lu msec\n", ST_NAME, sms->msec); #endif /*]*/ } } #endif /*]*/ void Query_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { static struct { char *name; const char *(*fn)(void); } queries[] = { { "BindPluName", net_query_bind_plu_name }, { "ConnectionState", net_query_connection_state }, { "Host", net_query_host }, { "LuName", net_query_lu_name }, { CN, NULL } }; int i; switch (*num_params) { case 0: for (i = 0; queries[i].name != CN; i++) { action_output("%s: %s", queries[i].name, (*queries[i].fn)()); } break; case 1: for (i = 0; queries[i].name != CN; i++) { if (!strcasecmp(params[0], queries[i].name)) { const char *s; s = (*queries[i].fn)(); action_output("%s\n", *s? s: " "); return; } } popup_an_error("%s: Unknown parameter", action_name(Query_action)); break; default: popup_an_error("%s: Requires 0 or 1 arguments", action_name(Query_action)); break; } } #if defined(X3270_SCRIPT) /*[*/ #if defined(X3270_PLUGIN) /*[*/ /* Plugin facility. */ static void no_plugin(void) { if (plugin_timeout_id != 0L) { RemoveTimeOut(plugin_timeout_id); plugin_timeout_id = 0L; } if (plugin_input_id != 0L) { RemoveInput(plugin_input_id); plugin_input_id = 0L; } if (plugin_inpipe != -1) { close(plugin_inpipe); plugin_inpipe = -1; } if (plugin_outpipe != -1) { close(plugin_outpipe); plugin_outpipe = -1; } plugin_pid = 0; plugin_started = False; prb_cnt = 0; ptq_first = ptq_last = 0; } /* Read a response from the plugin process. */ static void plugin_input(void) { int nr; char *nl; nr = read(plugin_inpipe, plugin_buf + prb_cnt, PRB_MAX - prb_cnt); if (nr < 0) { if (plugin_complain) popup_an_errno(errno, "Read from plugin command"); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Read from plugin command: %s", strerror(errno)); } no_plugin(); return; } if (nr == 0) { if (plugin_complain) popup_an_error("Plugin command exited"); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin command exited"); } no_plugin(); return; } nl = memchr(plugin_buf + prb_cnt, '\n', nr); if (nl != NULL) { int xtra; *nl = '\0'; trace_dsn("From plugin: %s\n", plugin_buf); switch (plugin_tq[ptq_first]) { case PLUGIN_INIT: if (strcasecmp(plugin_buf, "ok")) { if (plugin_complain) popup_an_error("Plugin start-up " "failed:\n%s", plugin_buf); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin start-up " "failed:\n%s", plugin_buf); } no_plugin(); } plugin_started = True; plugin_complain = True; break; case PLUGIN_AID: /* feedback is just for trace/debug purposes */ break; case PLUGIN_CMD: default: push_macro(plugin_buf, False); break; } ptq_first = (ptq_first + 1) % PLUGIN_QMAX; if (ptq_first == ptq_last) { RemoveInput(plugin_input_id); plugin_input_id = 0L; RemoveTimeOut(plugin_timeout_id); plugin_timeout_id = 0L; } xtra = (plugin_buf + prb_cnt + nr - 1) - nl; if (xtra > 0) (void) memmove(plugin_buf, nl + 1, xtra); prb_cnt = xtra; return; } prb_cnt += nr; if (prb_cnt >= PRB_MAX) { if (plugin_complain) popup_an_error("Plugin command buffer overflow"); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin command buffer overflow"); } no_plugin(); } } /* Plugin process took too long to answer. Kill it. */ static void plugin_timeout(void) { char *s; switch (plugin_tq[ptq_first]) { case PLUGIN_INIT: s = "init"; break; case PLUGIN_AID: s = "AID"; break; case PLUGIN_CMD: default: s = "command"; break; } if (plugin_complain) popup_an_error("Plugin %s timed out", s); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin %s timed out", s); } plugin_timeout_id = 0L; no_plugin(); } static void plugin_start(char *command, char *argv[], Boolean complain) { int inpipe[2]; int outpipe[2]; char *s; plugin_complain = complain; if (pipe(inpipe) < 0) { if (complain) popup_an_errno(errno, "pipe"); else { (void) snprintf(plugin_start_error, PRB_MAX, "pipe: %s", strerror(errno)); plugin_start_failed = True; } return; } if (pipe(outpipe) < 0) { if (complain) popup_an_errno(errno, "pipe"); else { (void) snprintf(plugin_start_error, PRB_MAX, "pipe: %s", strerror(errno)); plugin_start_failed = True; } close(inpipe[0]); close(inpipe[1]); return; } switch ((plugin_pid = fork())) { case -1: if (complain) popup_an_errno(errno, "fork"); else { (void) snprintf(plugin_start_error, PRB_MAX, "fork: %s", strerror(errno)); plugin_start_failed = True; } plugin_pid = 0; return; case 0: /* child */ (void) dup2(outpipe[0], 0); close(outpipe[0]); close(outpipe[1]); (void) dup2(inpipe[1], 1); close(inpipe[1]); (void) dup2(1, 2); close(inpipe[0]); if (execvp(command, argv) < 0) { char *buf = xs_buffer("%s: %s\n", command, strerror(errno)); write(2, buf, strlen(buf)); exit(1); } break; default: /* parent */ break; } /* Parent. */ plugin_inpipe = inpipe[0]; (void) fcntl(plugin_inpipe, F_SETFD, FD_CLOEXEC); close(inpipe[1]); plugin_outpipe = outpipe[1]; (void) fcntl(plugin_outpipe, F_SETFD, FD_CLOEXEC); close(outpipe[0]); prb_cnt = 0; /* Tell the plug-in what we're about. */ s = xs_buffer("x3270 host %s\n", current_host); (void) write(plugin_outpipe, s, strlen(s)); Free(s); /* Wait for the 'ok' from the child. */ ptq_first = ptq_last = 0; plugin_tq[ptq_last] = PLUGIN_INIT; ptq_last = (ptq_last + 1) % PLUGIN_QMAX; plugin_input_id = AddInput(plugin_inpipe, plugin_input); plugin_timeout_id = AddTimeOut(PLUGINSTART_SECS * 1000, plugin_timeout); plugin_started = False; } void Plugin_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (*num_params == 0) { popup_an_error("%s: Requires 1 or more arguments", action_name(Plugin_action)); return; } if (!strcasecmp(params[0], "Start")) { char *args[MAX_START_ARGS]; int i; if (*num_params < 2 && !appres.plugin_command) { popup_an_error("%s Start: Command name required", action_name(Plugin_action)); return; } if (plugin_pid) { popup_an_error("%s: Already running", action_name(Plugin_action)); return; } if (!CONNECTED) { popup_an_error("%s: Not connected", action_name(Plugin_action)); return; } if (*num_params >= 2) { for (i = 1; i < *num_params && i < MAX_START_ARGS; i++) args[i - 1] = params[i]; args[i - 1] = NULL; plugin_start(params[1], args, True); } else { plugin_start_appres(True); } } else if (!strcasecmp(params[0], "Stop")) { if (*num_params != 1) { popup_an_error("%s Stop: Extra argument(s)", action_name(Plugin_action)); return; } if (plugin_pid) { close(plugin_outpipe); plugin_outpipe = -1; close(plugin_inpipe); plugin_inpipe = -1; plugin_pid = 0; } } else if (!strcasecmp(params[0], "Command")) { int i; int s; if (*num_params < 2) { popup_an_error("%s Command: additional argument(s) " "required", action_name(Plugin_action)); return; } if (!plugin_pid) { if (plugin_start_failed) { popup_an_error("%s Command: Start failed:\n%s", action_name(Plugin_action), plugin_start_error); plugin_start_failed = False; } else { popup_an_error("%s Command: Not running", action_name(Plugin_action)); } return; } if (PLUGIN_BACKLOG >= PLUGIN_QMAX) { popup_an_error("%s Command: Plugin queue overflow", action_name(Plugin_action)); return; } if (write(plugin_outpipe, "command ", 8) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } for (i = 1; i < *num_params; i++) { if (i > 1) { if (write(plugin_outpipe, " ", 1) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } } if (write(plugin_outpipe, params[i], strlen(params[i])) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } } if (write(plugin_outpipe, "\n", 1) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } do_read_buffer(NULL, 0, ea_buf, plugin_outpipe); plugin_tq[ptq_last] = PLUGIN_CMD; ptq_last = (ptq_last + 1) % PLUGIN_QMAX; if (plugin_timeout_id != 0L) RemoveTimeOut(plugin_timeout_id); if (plugin_input_id == 0L) plugin_input_id = AddInput(plugin_inpipe, plugin_input); s = PLUGIN_BACKLOG * PLUGINWAIT_SECS; if (!plugin_started && s < PLUGINSTART_SECS) s = PLUGINSTART_SECS; plugin_timeout_id = AddTimeOut(s * 1000, plugin_timeout); } else { popup_an_error("%s: First argument must be Start, Stop or " "Command", action_name(Plugin_action)); return; } } /* Send an AID event to the plugin process. */ void plugin_aid(unsigned char aid) { char buf[64]; int s; /* No plugin, nothing to do. */ if (!plugin_pid) return; /* Make sure we don't overrun the response queue. */ if (PLUGIN_BACKLOG >= PLUGIN_QMAX) { trace_dsn("Plugin queue overflow\n"); return; } /* Write the AID and cursor position. */ snprintf(buf, sizeof(buf), "aid %s\n", see_aid(aid)); write(plugin_outpipe, buf, strlen(buf)); /* Write the screen buffer. */ do_read_buffer(NULL, 0, ea_buf, plugin_outpipe); /* * Wait for the response. * If we were already waiting for a response, wait a bit longer. */ plugin_tq[ptq_last] = PLUGIN_AID; ptq_last = (ptq_last + 1) % PLUGIN_QMAX; if (plugin_timeout_id != 0L) RemoveTimeOut(plugin_timeout_id); if (plugin_input_id == 0L) plugin_input_id = AddInput(plugin_inpipe, plugin_input); s = PLUGIN_BACKLOG * PLUGINWAIT_SECS; if (!plugin_started && s < PLUGINSTART_SECS) s = PLUGINSTART_SECS; plugin_timeout_id = AddTimeOut(s * 1000, plugin_timeout); } #else /*][*/ void Plugin_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { /* Do nothing. */ } #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ /* * Bell action, used by scripts to ring the console bell and enter a comment * into the trace log. */ void Bell_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { ring_bell(); } #endif /*]*/ #endif /*]*/ void Source_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int fd; action_debug(Source_action, event, params, num_params); if (check_usage(Source_action, *num_params, 1, 1) < 0) return; fd = open(params[0], O_RDONLY); if (fd < 0) { popup_an_errno(errno, "%s", params[0]); return; } push_file(fd); } ibm-3270-3.3.10ga4/c3270/resolver.c0000644000175000017500000002254511254565704015742 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resolver.c * Hostname resolution. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #include #include #include #else /*][*/ #include #include #endif /*]*/ #include #include "resolverc.h" #include "w3miscc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #if defined(_WIN32) /*[*/ static int win32_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res); static void win32_freeaddrinfo(struct addrinfo *res); static int win32_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags); #undef getaddrinfo #define getaddrinfo win32_getaddrinfo #undef freeaddrinfo #define freeaddrinfo win32_freeaddrinfo #undef getnameinfo #define getnameinfo win32_getnameinfo #endif /*]*/ /* * Resolve a hostname and port. * Returns 0 for success, -1 for fatal error (name resolution impossible), * -2 for simple error (cannot resolve the name). */ int resolve_host_and_port(const char *host, char *portname, int ix, unsigned short *pport, struct sockaddr *sa, socklen_t *sa_len, char *errmsg, int em_len, int *lastp) { #if defined(_WIN32) /*[*/ OSVERSIONINFO info; Boolean has_getaddrinfo = False; /* Figure out if we should use gethostbyname() or getaddrinfo(). */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); exit(1); } has_getaddrinfo = (info.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS && info.dwMajorVersion >= 5 && info.dwMinorVersion >= 1); if (has_getaddrinfo) #endif /*]*/ { #if defined(AF_INET6) /*[*/ struct addrinfo hints, *res0, *res; int rc; /* * Use getaddrinfo() to resolve the hostname and port * together. */ (void) memset(&hints, '\0', sizeof(struct addrinfo)); hints.ai_flags = 0; hints.ai_family = PF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; rc = getaddrinfo(host, portname, &hints, &res0); if (rc != 0) { snprintf(errmsg, em_len, "%s/%s:\n%s", host, portname? portname: "(none)", gai_strerror(rc)); return -2; } res = res0; /* * Return the reqested element. * Hopefully the list will not change between calls. */ while (ix && res->ai_next != NULL) { res = res->ai_next; ix--; } if (res == NULL) { /* Ran off the end? The list must have changed. */ snprintf(errmsg, em_len, "%s/%s:\n%s", host, portname? portname: "(none)", gai_strerror(EAI_AGAIN)); freeaddrinfo(res); return -2; } switch (res->ai_family) { case AF_INET: *pport = ntohs(((struct sockaddr_in *) res->ai_addr)->sin_port); break; case AF_INET6: *pport = ntohs(((struct sockaddr_in6 *) res->ai_addr)->sin6_port); break; default: snprintf(errmsg, em_len, "%s:\nunknown family %d", host, res->ai_family); freeaddrinfo(res); return -1; } (void) memcpy(sa, res->ai_addr, res->ai_addrlen); *sa_len = res->ai_addrlen; if (lastp != NULL) *lastp = (res->ai_next == NULL); freeaddrinfo(res0); #endif /*]*/ } #if defined(_WIN32) /*[*/ else #endif /*]*/ #if defined(_WIN32) || !defined(AF_INET6) /*[*/ { struct hostent *hp; struct servent *sp; unsigned short port; unsigned long lport; char *ptr; struct sockaddr_in *sin = (struct sockaddr_in *)sa; /* Get the port number. */ lport = strtoul(portname, &ptr, 0); if (ptr == portname || *ptr != '\0' || lport == 0L || lport & ~0xffff) { if (!(sp = getservbyname(portname, "tcp"))) { snprintf(errmsg, em_len, "Unknown port number or service: %s", portname); return -1; } port = sp->s_port; } else port = htons((unsigned short)lport); *pport = ntohs(port); /* Use gethostbyname() to resolve the hostname. */ hp = gethostbyname(host); if (hp == (struct hostent *) 0) { sin->sin_family = AF_INET; sin->sin_addr.s_addr = inet_addr(host); if (sin->sin_addr.s_addr == (unsigned long)-1) { snprintf(errmsg, em_len, "Unknown host:\n%s", host); return -2; } if (lastp != NULL) *lastp = True; } else { int i; for (i = 0; i < ix; i++) { if (hp->h_addr_list[i] == NULL) { snprintf(errmsg, em_len, "Unknown host:\n%s", host); return -2; } } sin->sin_family = hp->h_addrtype; (void) memmove(&sin->sin_addr, hp->h_addr_list[i], hp->h_length); if (lastp != NULL) *lastp = (hp->h_addr_list[i + 1] == NULL); } sin->sin_port = port; *sa_len = sizeof(struct sockaddr_in); } #endif /*]*/ return 0; } /* * Resolve a sockaddr into a numeric hostname and port. * Returns 0 for success, -1 for failure. */ int numeric_host_and_port(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, char *errmsg, int em_len) { #if defined(_WIN32) /*[*/ OSVERSIONINFO info; Boolean has_getnameinfo = False; /* Figure out if we should use inet_ntoa() or getnameinfo(). */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); exit(1); } has_getnameinfo = (info.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS && info.dwMajorVersion >= 5 && info.dwMinorVersion >= 1); if (has_getnameinfo) #endif /*]*/ { #if defined(AF_INET6) /*[*/ int rc; /* Use getnameinfo(). */ rc = getnameinfo(sa, salen, host, hostlen, serv, servlen, NI_NUMERICHOST | NI_NUMERICSERV); if (rc != 0) { snprintf(errmsg, em_len, "%s", gai_strerror(rc)); return -1; } #endif /*]*/ } #if defined(_WIN32) /*[*/ else #endif /*]*/ #if defined(_WIN32) || !defined(AF_INET6) /*[*/ { struct sockaddr_in *sin = (struct sockaddr_in *)sa; /* Use inet_ntoa() and snprintf(). */ snprintf(host, hostlen, "%s", inet_ntoa(sin->sin_addr)); snprintf(serv, servlen, "%u", ntohs(sin->sin_port)); } #endif /*]*/ return 0; } #if defined(_WIN32) /*[*/ /* * Windows-specific versions of getaddrinfo(), freeaddrinfo() and * gai_strerror(). * The symbols are resolved from ws2_32.dll at run-time, instead of * by linking against ws2_32.lib, because they are not defined on all * versions of Windows. */ typedef int (__stdcall *gai_fn)(const char *, const char *, const struct addrinfo *, struct addrinfo **); typedef void (__stdcall *fai_fn)(struct addrinfo*); typedef int (__stdcall *gni_fn)(const struct sockaddr *, socklen_t, char *, size_t, char *, size_t, int); /* Resolve a symbol in ws2_32.dll. */ static FARPROC get_ws2_32(const char *symbol) { static HMODULE ws2_32_handle = NULL; FARPROC p; if (ws2_32_handle == NULL) { ws2_32_handle = LoadLibrary("ws2_32.dll"); if (ws2_32_handle == NULL) { fprintf(stderr, "Can't load ws2_32.dll: %s\n", win32_strerror(GetLastError())); exit(1); } } p = GetProcAddress(ws2_32_handle, symbol); if (p == NULL) { fprintf(stderr, "Can't resolve %s in ws2_32.dll: %s\n", symbol, win32_strerror(GetLastError())); exit(1); } return p; } static int win32_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res) { static FARPROC gai_p = NULL; if (gai_p == NULL) gai_p = get_ws2_32("getaddrinfo"); return ((gai_fn)gai_p)(node, service, hints, res); } static void win32_freeaddrinfo(struct addrinfo *res) { static FARPROC fai_p = NULL; if (fai_p == NULL) fai_p = get_ws2_32("freeaddrinfo"); ((fai_fn)fai_p)(res); } static int win32_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags) { static FARPROC gni_p = NULL; if (gni_p == NULL) gni_p = get_ws2_32("getnameinfo"); return ((gni_fn)gni_p)(sa, salen, host, hostlen, serv, servlen, flags); } #endif /*]*/ ibm-3270-3.3.10ga4/c3270/menubarc.h0000644000175000017500000000453711254565704015703 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * menubarc.h * Global declarations for menubar.c. */ #if defined(X3270_MENUS) /*[*/ extern void HandleMenu_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) /*[*/ extern void menubar_as_set(Boolean sensitive); #else /*][*/ #define menubar_as_set(n) #endif /*]*/ extern void menubar_init(Widget container, Dimension overall_width, Dimension current_width); extern void menubar_keypad_changed(void); extern Dimension menubar_qheight(Dimension container_width); extern void menubar_resize(Dimension width); extern void menubar_retoggle(struct toggle *t); #else /*][*/ #define menubar_as_set(n) #define menubar_init(a, b, c) #define menubar_keypad_changed() #define menubar_qheight(n) 0 #define menubar_resize(n) #define menubar_retoggle(t) #define HandleMenu_action ignore_action #endif /*]*/ ibm-3270-3.3.10ga4/c3270/configure.in0000644000175000017500000002131111254565707016237 0ustar bastianbastiandnl Copyright (c) 2000-2009, Paul Mattes. dnl All rights reserved. dnl dnl Redistribution and use in source and binary forms, with or without dnl modification, are permitted provided that the following conditions are met: dnl * Redistributions of source code must retain the above copyright dnl notice, this list of conditions and the following disclaimer. dnl * Redistributions in binary form must reproduce the above copyright dnl notice, this list of conditions and the following disclaimer in the dnl documentation and/or other materials provided with the distribution. dnl * Neither the names of Paul Mattes nor the names of his contributors dnl may be used to endorse or promote products derived from this software dnl without specific prior written permission. dnl dnl THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED dnl WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO dnl EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, dnl SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED dnl TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR dnl PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF dnl LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING dnl NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS dnl SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. dnl Process this file with autoconf to produce a configure script. AC_INIT(c3270.c) AC_PREREQ(2.50) AC_CONFIG_HEADER(conf.h) dnl Checks for programs. AC_PROG_INSTALL AC_PROG_CC dnl Figure out what sort of host this is. dnl If it's hpux, then pass the -D_XOPEN_SOURCE_EXTENDED flag to cc, so that dnl all of the curses KEY_XXX definitions are visible. dnl If it's solaris2, then pass the -D__EXTENSIONS__ flas to cc, so that all dnl of the usual Unix functions are visible. AC_CANONICAL_HOST XPOSIX="" XANSI="" case "$host_os" in hpux) XPOSIX=-D_XOPEN_SOURCE_EXTENDED ;; solaris2*) XANSI=-D__EXTENSIONS__ ;; darwin*) XPRECOMP=-no-cpp-precomp ;; linux*) XANSI="-D_POSIX_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE" ;; aix*) BROKEN_NEWTERM=1 ;; esac AC_SUBST(XPOSIX) AC_SUBST(XANSI) AC_SUBST(XPRECOMP) AC_SUBST(BROKEN_NEWTERM) dnl Check for --without-readline AC_ARG_WITH(readline, [ --without-readline Don't use the readline library]) dnl Check for ISO 10646 (wchar_t is Unicode) and --with-iconv AC_CHECK_DECLS(__STDC_ISO_10646__, unset unkw, unkw=1) AC_ARG_WITH(iconv,[ --with-iconv ignore __STDC_ISO_10646__ and use iconv() instead]) case "$with_iconv" in no|"") ;; yes|*) AC_DEFINE(USE_ICONV,1) unkw=1 ;; esac AC_SUBST(USE_ICONV) dnl Check for libraries. dnl Note that the order here is important. The last libraries should appear dnl first, so that objects in them can be used by subsequent libraries. AC_SEARCH_LIBS(forkpty, util) AC_CHECK_FUNCS(forkpty) AC_CHECK_LIB(ncursesw, newterm, , [AC_CHECK_LIB(ncurses, newterm, , [AC_CHECK_LIB(curses, newterm, , [AC_MSG_ERROR(Can't find libncurses or new-enough libcurses)])])]) if test "$with_readline" != no; then AC_CHECK_LIB(readline, rl_initialize) fi AC_SEARCH_LIBS(gethostbyname, nsl) AC_SEARCH_LIBS(socket, socket) AC_CHECK_HEADERS(iconv.h) AC_SEARCH_LIBS(libiconv, iconv, , AC_SEARCH_LIBS(iconv, iconv, , if test "$unkw"; then AC_MSG_ERROR("No iconv library function"); fi)) dnl If we're on AIX and have ncurses, cancel BROKEN_NEWTERM. if test -n "$BROKEN_NEWTERM" then if test "$ac_cv_lib_ncurses_newterm" = yes then : else AC_DEFINE(BROKEN_NEWTERM,1) fi fi dnl Checks for header files. dnl AC_HEADER_STDC dnl AC_HEADER_SYS_WAIT dnl AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h unistd.h) AC_CHECK_HEADERS(sys/select.h) AC_CHECK_HEADERS(readline/history.h) AC_CHECK_HEADERS(pty.h) AC_CHECK_HEADERS(libutil.h) AC_CHECK_HEADERS(util.h) AC_CHECK_HEADERS(getopt.h) dnl Find the best curses header file and hope it's consistent with the library dnl we found. AC_CHECK_HEADERS(ncursesw/ncurses.h, , [AC_CHECK_HEADERS(ncurses/ncurses.h, , [AC_CHECK_HEADERS(ncurses.h, , [AC_CHECK_HEADERS(curses.h, , [AC_MSG_ERROR(No curses header file)])])])]) dnl Check for SSL header file. AC_ARG_WITH(ssl,[ --with-ssl=DIR specify OpenSSL install directory]) if test "$enable_ssl" != no then orig_CPPFLAGS="$CPPFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/local/ssl /usr/lib/ssl /usr/pkg/ssl /usr/ssl /var/ssl /opt/ssl do header_fail=0 if test -n "$dir" -a ! -d "$dir/include" then header_fail=1 continue fi if test -n "$any" then AC_MSG_NOTICE(retrying with -I$dir/include) fi if test -n "$dir" then CPPFLAGS="$orig_CPPFLAGS -I$dir/include" fi AC_CHECK_HEADERS(openssl/ssl.h, ,[header_fail=1]) if test "$header_fail" -eq 0 then break fi unset `echo ac_cv_header_openssl/ssl_h | $as_tr_sh` CPPFLAGS="$orig_CPPFLAGS" any=1 done if test $header_fail -eq 1 then AC_MSG_WARN(Disabling OpenSSL) enable_ssl="no" unset HAVE_LIBSSL fi fi dnl Checks for typedefs, structures, and compiler characteristics. dnl AC_C_CONST dnl AC_TYPE_PID_T dnl AC_TYPE_SIZE_T dnl AC_HEADER_TIME dnl Checks for library functions. dnl AC_PROG_GCC_TRADITIONAL dnl AC_FUNC_MEMCMP dnl AC_TYPE_SIGNAL dnl AC_FUNC_VPRINTF dnl AC_CHECK_FUNCS(gettimeofday putenv select socket strerror strstr strtol strtoul) AC_CHECK_FUNCS(vasprintf) AC_FUNC_FSEEKO dnl Check for SSL libraries. if test "$enable_ssl" != no then orig_LDFLAGS="$LDFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/pkg /usr /var /opt do lib_fail=0 if test -n "$dir" -a ! -d "$dir/ssl/lib" then lib_fail=1 continue fi if test -n "$any" then AC_MSG_NOTICE(retrying with -L$dir/ssl/lib) fi if test -n "$dir" then LDFLAGS="$orig_LDFLAGS -L$dir/ssl/lib" fi AC_CHECK_LIB(crypto, CRYPTO_malloc, , [lib_fail=1]) if test "$lib_fail" -eq 0 then AC_CHECK_LIB(ssl, SSL_new, , [lib_fail=1]) fi if test "$lib_fail" -eq 0 then break fi unset `echo ac_cv_lib_crypto_CRYPTO_malloc | $as_tr_sh` unset `echo ac_cv_lib_ssl_SSL_new | $as_tr_sh` LDFLAGS="$orig_LDFLAGS" any=1 done if test $lib_fail -eq 1 then AC_MSG_WARN(Disabling OpenSSL) enable_ssl="no" fi fi dnl Check for curses wide character support. if test "$ac_cv_lib_ncursesw_newterm" = yes then AC_CHECK_LIB(ncursesw, wadd_wch, [AC_DEFINE(CURSES_WIDE,1) Cw=1]) elif test "$ac_cv_lib_ncurses_newterm" = yes then AC_CHECK_LIB(ncurses, wadd_wch, [AC_DEFINE(CURSES_WIDE,1) Cw=1]) elif test "$ac_cv_lib_curses_newterm" = yes then AC_CHECK_LIB(curses, wadd_wch, [AC_DEFINE(CURSES_WIDE,1) Cw=1]) else echo "What??? " fi if test "$Cw" != "1" then AC_MSG_WARN(Wide curses not found -- c3270 will not be able to support multi-byte character encodings) fi AC_SUBST(CURSES_WIDE) dnl Check for default pager AC_PATH_PROG(LESSPATH, less) AC_DEFINE_UNQUOTED(LESSPATH,"$LESSPATH") AC_PATH_PROG(MOREPATH, more) AC_DEFINE_UNQUOTED(MOREPATH,"$MOREPATH") dnl Set up the configuration directory. LIBX3270DIR='${sysconfdir}/x3270' AC_SUBST(LIBX3270DIR) dnl Check for unwanted parts. AC_ARG_ENABLE(ansi,[ --disable-ansi leave out NVT (ANSI) support]) case "$enable_ansi" in ""|yes) AC_DEFINE(X3270_ANSI,1) ;; esac AC_ARG_ENABLE(apl,[ --disable-apl leave out APL character support]) case "$enable_apl" in ""|yes) AC_DEFINE(X3270_APL,1) ;; esac AC_ARG_ENABLE(dbcs,[ --disable-dbcs leave out DBCS support]) case "$enable_dbcs" in no) ;; *) AC_DEFINE(X3270_DBCS,1) DBCS=-DX3270_DBCS=1 ;; esac AC_SUBST(DBCS) AC_ARG_ENABLE(ft,[ --disable-ft leave out file transfer support]) case "$enable_ft" in ""|yes) AC_DEFINE(X3270_FT,1) ;; esac AC_ARG_ENABLE(local_process,[ --disable-local-process leave out local process support]) case "$enable_local_process" in ""|yes) AC_DEFINE(X3270_LOCAL_PROCESS,1) ;; esac AC_ARG_ENABLE(printer,[ --disable-printer leave out printer session support]) case "$enable_printer" in ""|yes) AC_DEFINE(X3270_PRINTER,1) ;; esac AC_ARG_ENABLE(script,[ --disable-script leave out scripting support]) case "$enable_script" in ""|yes) AC_DEFINE(X3270_SCRIPT,1) ;; esac AC_ARG_ENABLE(ssl,[ --disable-ssl leave out OpenSSL support]) case "$enable_ssl" in no) ;; *) SSL=-DHAVE_LIBSSL ;; esac AC_SUBST(SSL) AC_ARG_ENABLE(tn3270e,[ --disable-tn3270e leave out TN3270E support]) case "$enable_tn3270e" in ""|yes) AC_DEFINE(X3270_TN3270E,1) ;; esac AC_ARG_ENABLE(trace,[ --disable-trace leave out tracing support]) case "$enable_trace" in ""|yes) AC_DEFINE(X3270_TRACE,1) ;; esac AC_ARG_ENABLE(history,[ --enable-history include experimental history support]) case "$enable_history" in yes) AC_DEFINE(X3270_PLUGIN,1) ;; esac dnl Generate the Makefile. AC_OUTPUT(Makefile) ibm-3270-3.3.10ga4/c3270/keypadc.h0000644000175000017500000000517611254565704015527 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * keypadc.h * Global declarations for keypad.c. */ extern Boolean keypad_changed; #if defined(X3270_KEYPAD) /*[*/ extern enum kp_placement { kp_right, kp_left, kp_bottom, kp_integral, kp_inside_right } kp_placement; extern void keypad_first_up(void); extern Widget keypad_init(Widget container, Dimension voffset, Dimension screen_width, Boolean floating, Boolean vert); extern void keypad_move(void); extern void keypad_placement_init(void); extern void keypad_popup_init(void); extern Dimension keypad_qheight(void); extern void keypad_set_keymap(void); extern void keypad_set_temp_keymap(XtTranslations trans); extern void keypad_shift(void); extern Dimension min_keypad_width(void); extern void keypad_popdown(Boolean *was_up); extern void keypad_popup(void); #else /*][*/ #define keypad_qheight() 0 #define min_keypad_width() 0 #define keypad_first_up() #define keypad_init(a, b, c, d, e) 0 #define keypad_move() #define keypad_placement_init() #define keypad_popup_init() #define keypad_set_keymap() #define keypad_set_temp_keymap(n) #define keypad_shift() #define keypad_popdown(w) #define keypad_popup() #endif /*]*/ ibm-3270-3.3.10ga4/c3270/ftc.h0000644000175000017500000000605311254565704014656 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * ftc.h * Global declarations for ft.c. */ #if defined(X3270_FT) /*[*/ extern Boolean ascii_flag; extern Boolean cr_flag; extern unsigned long ft_length; extern FILE *ft_local_file; extern char *ft_local_filename; enum ft_state { FT_NONE, /* No transfer in progress */ FT_AWAIT_ACK, /* IND$FILE sent, awaiting acknowledgement message */ FT_RUNNING, /* Ack received, data flowing */ FT_ABORT_WAIT, /* Awaiting chance to send an abort */ FT_ABORT_SENT /* Abort sent; awaiting response */ }; extern Boolean ft_last_cr; extern enum ft_state ft_state; extern Boolean remap_flag; extern unsigned char i_ft2asc[], i_asc2ft[]; #if defined(X3270_DBCS) /*[*/ enum ftd { FT_DBCS_NONE, FT_DBCS_SO, FT_DBCS_LEFT }; extern enum ftd ft_dbcs_state; extern unsigned char ft_dbcs_byte1; extern Boolean ft_last_dbcs; #endif /*]*/ extern void ft_aborting(void); extern void ft_complete(const char *errmsg); extern void ft_init(void); extern void ft_running(Boolean is_cut); extern void ft_update_length(void); extern void PA_dialog_focus_action(Widget w, XEvent *event, String *parms, Cardinal *num_parms); extern void PA_dialog_next_action(Widget w, XEvent *event, String *parms, Cardinal *num_parms); extern void popup_ft(Widget w, XtPointer call_parms, XtPointer call_data); extern void Transfer_action(Widget w, XEvent *event, String *parms, Cardinal *num_parms); #if !defined(X3270_MENUS) /*[*/ extern void ft_init(void); #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/c3270/unicode_dbcsc.h0000644000175000017500000000345011254565704016664 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #if defined(X3270_DBCS) /*[*/ extern ucs4_t ebcdic_dbcs_to_unicode(ebc_t e, unsigned flags); extern ebc_t unicode_to_ebcdic_dbcs(ucs4_t u); extern int set_uni_dbcs(const char *csname, const char **codepage, const char **display_charsets); extern void charset_list_dbcs(void); #endif /*]*/ ibm-3270-3.3.10ga4/c3270/icmdc.h0000644000175000017500000000324111254565674015163 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * icmdc.h * A curses-based 3270 Terminal Emulator * Declarations for icmd.c. */ int interactive_transfer(String **params, Cardinal *num_params); ibm-3270-3.3.10ga4/c3270/trace_ds.c0000644000175000017500000006714311254565704015670 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * trace_ds.c * 3270 data stream tracing. * */ #include "globals.h" #if defined(X3270_TRACE) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include #include #include "3270ds.h" #include "appres.h" #include "objects.h" #include "resources.h" #include "ctlr.h" #include "ansic.h" #include "charsetc.h" #include "childc.h" #include "ctlrc.h" #include "menubarc.h" #include "popupsc.h" #include "printc.h" #include "savec.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utf8c.h" #include "utilc.h" #include "w3miscc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ /* Maximum size of a tracefile header. */ #define MAX_HEADER_SIZE (10*1024) /* Minimum size of a trace file. */ #define MIN_TRACEFILE_SIZE (64*1024) #define MIN_TRACEFILE_SIZE_NAME "64K" /* System calls which may not be there. */ #if !defined(HAVE_FSEEKO) /*[*/ #define fseeko(s, o, w) fseek(s, (long)o, w) #define ftello(s) (off_t)ftell(s) #endif /*]*/ /* Statics */ static int dscnt = 0; #if !defined(_WIN32) /*[*/ static int tracewindow_pid = -1; #else /*][*/ static HANDLE tracewindow_handle = NULL; #endif /*]*/ static FILE *tracef = NULL; static FILE *tracef_pipe = NULL; static char *tracef_bufptr = CN; static off_t tracef_size = 0; static off_t tracef_max = 0; static char *tracef_midpoint_header = CN; static off_t tracef_midpoint = 0; static void vwtrace(const char *fmt, va_list args); static void wtrace(const char *fmt, ...); static char *create_tracefile_header(const char *mode); static void stop_tracing(void); /* Globals */ struct timeval ds_ts; Boolean trace_skipping = False; char *tracefile_name = NULL; /* display a (row,col) */ const char * rcba(int baddr) { static char buf[16]; (void) sprintf(buf, "(%d,%d)", baddr/COLS + 1, baddr%COLS + 1); return buf; } /* Data Stream trace print, handles line wraps */ static char *tdsbuf = CN; #define TDS_LEN 75 /* * This function is careful to do line breaks based on wchar_t's, not * bytes, so multi-byte characters are traced properly. * However, it doesn't know that DBCS characters are two columns wide, so it * will get those wrong and break too late. To get that right, it needs some * sort of function to tell it that a wchar_t is double-width, which we lack at * the moment. * * If wchar_t's are Unicode, it could perhaps use some sort of heuristic based * on which plane the character is in. */ static void trace_ds_s(char *s, Boolean can_break) { int len = strlen(s); int len0 = len + 1; int wlen; Boolean nl = False; wchar_t *w_buf; /* wchar_t translation of s */ wchar_t *w_cur; /* current wchar_t pointer */ wchar_t *w_chunk; /* transient wchar_t buffer */ char *mb_chunk; /* transient multibyte buffer */ if (!toggled(DS_TRACE) || tracef == NULL || !len) return; /* Allocate buffers for chunks of output data. */ mb_chunk = Malloc(len0); w_chunk = (wchar_t *)Malloc(len0 * sizeof(wchar_t)); /* Convert the input string to wchar_t's. */ w_buf = (wchar_t *)Malloc(len0 * sizeof(wchar_t)); wlen = mbstowcs(w_buf, s, len); if (wlen < 0) Error("trace_ds_s: mbstowcs failed"); w_cur = w_buf; /* Check for a trailing newline. */ if (len && s[len-1] == '\n') { wlen--; nl = True; } if (!can_break && dscnt + wlen >= 75) { wtrace("...\n... "); dscnt = 0; } while (dscnt + wlen >= 75) { int plen = 75-dscnt; int mblen; if (plen) { memcpy(w_chunk, w_cur, plen * sizeof(wchar_t)); w_chunk[plen] = 0; mblen = wcstombs(mb_chunk, w_chunk, len0); if (mblen <= 0) Error("trace_ds_s: wcstombs 1 failed"); } else { mb_chunk[0] = '\0'; mblen = 0; } wtrace("%.*s ...\n... ", mblen, mb_chunk); dscnt = 4; w_cur += plen; wlen -= plen; } if (wlen) { int mblen; memcpy(w_chunk, w_cur, wlen * sizeof(wchar_t)); w_chunk[wlen] = 0; mblen = wcstombs(mb_chunk, w_chunk, len0); if (mblen <= 0) Error("trace_ds_s: wcstombs 2 failed"); wtrace("%.*s", mblen, mb_chunk); dscnt += wlen; } if (nl) { wtrace("\n"); dscnt = 0; } Free(mb_chunk); Free(w_buf); Free(w_chunk); } void trace_ds(const char *fmt, ...) { va_list args; if (!toggled(DS_TRACE) || tracef == NULL) return; va_start(args, fmt); /* allocate buffer */ if (tdsbuf == CN) tdsbuf = Malloc(4096); /* print out remainder of message */ (void) vsprintf(tdsbuf, fmt, args); trace_ds_s(tdsbuf, True); va_end(args); } void trace_ds_nb(const char *fmt, ...) { va_list args; if (!toggled(DS_TRACE) || tracef == NULL) return; va_start(args, fmt); /* allocate buffer */ if (tdsbuf == CN) tdsbuf = Malloc(4096); /* print out remainder of message */ (void) vsprintf(tdsbuf, fmt, args); trace_ds_s(tdsbuf, False); va_end(args); } /* Conditional event trace. */ void trace_event(const char *fmt, ...) { va_list args; if (!toggled(EVENT_TRACE) || tracef == NULL) return; /* print out message */ va_start(args, fmt); vwtrace(fmt, args); va_end(args); } /* Conditional data stream trace, without line splitting. */ void trace_dsn(const char *fmt, ...) { va_list args; if (!toggled(DS_TRACE) || tracef == NULL) return; /* print out message */ va_start(args, fmt); vwtrace(fmt, args); va_end(args); } /* * Write to the trace file, varargs style. * This is the only function that actually does output to the trace file -- * all others are wrappers around this function. */ static void vwtrace(const char *fmt, va_list args) { if (tracef_bufptr != CN) { tracef_bufptr += vsprintf(tracef_bufptr, fmt, args); } else if (tracef != NULL) { int n2w, nw; char buf[16384]; buf[0] = 0; (void) vsnprintf(buf, sizeof(buf), fmt, args); buf[sizeof(buf) - 1] = '\0'; n2w = strlen(buf); nw = fwrite(buf, n2w, 1, tracef); if (nw == 1) { tracef_size += nw; fflush(tracef); } else { if (errno != EPIPE #if defined(EILSEQ) /*[*/ && errno != EILSEQ #endif /*]*/ ) popup_an_errno(errno, "Write to trace file failed"); #if defined(EILSEQ) /*[*/ if (errno != EILSEQ) #endif /*]*/ stop_tracing(); } if (tracef_pipe != NULL) { nw = fwrite(buf, n2w, 1, tracef_pipe); if (nw != 1) { (void) fclose(tracef_pipe); tracef_pipe = NULL; } else { fflush(tracef_pipe); } } } } /* Write to the trace file. */ static void wtrace(const char *fmt, ...) { if (tracef != NULL) { va_list args; va_start(args, fmt); vwtrace(fmt, args); va_end(args); } } static void stop_tracing(void) { if (tracef != NULL && tracef != stdout) (void) fclose(tracef); tracef = NULL; if (tracef_pipe != NULL) { (void) fclose(tracef_pipe); tracef_pipe = NULL; } if (toggled(DS_TRACE)) { toggle_toggle(&appres.toggle[DS_TRACE]); menubar_retoggle(&appres.toggle[DS_TRACE]); } if (toggled(EVENT_TRACE)) { toggle_toggle(&appres.toggle[EVENT_TRACE]); menubar_retoggle(&appres.toggle[EVENT_TRACE]); } } /* Check for a trace file rollover event. */ void trace_rollover_check(void) { if (tracef == NULL || tracef_max == 0) return; /* See if we've reached the midpoint. */ if (!tracef_midpoint) { if (tracef_size >= tracef_max / 2) { tracef_midpoint = ftello(tracef); #if defined(ROLLOVER_DEBUG) /*[*/ printf("midpoint is %lld\n", tracef_midpoint); #endif /*]*/ tracef_midpoint_header = create_tracefile_header("rolled over"); } return; } /* See if we've reached a rollover point. */ if (tracef_size >= tracef_max) { char buf[8*1024]; int nr; off_t rpos = tracef_midpoint, wpos = 0; if (!tracef_midpoint) Error("Tracefile rollover logic error"); #if defined(ROLLOVER_DEBUG) /*[*/ printf("rolling over at %lld\n", tracef_size); #endif /*]*/ /* * Overwrite the file with the midpoint header, and the data * which follows the midpoint. */ if (fseeko(tracef, 0, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(0) failed"); stop_tracing(); return; } wtrace("%s", tracef_midpoint_header); wpos = ftello(tracef); if (wpos < 0) { popup_an_errno(errno, "trace file ftello() failed"); stop_tracing(); return; } if (fseeko(tracef, rpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld) failed", (long)rpos); stop_tracing(); return; } #if defined(ROLLOVER_DEBUG) /*[*/ printf("rpos = %lld, wpos = %lld\n", rpos, wpos); #endif /*]*/ while ((nr = fread(buf, 1, sizeof(buf), tracef)) > 0) { rpos = ftello(tracef); if (fseeko(tracef, wpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld) " "failed", (long)wpos); stop_tracing(); return; } if (fwrite(buf, nr, 1, tracef) < 1) break; wpos = ftello(tracef); if (wpos < 0) { popup_an_errno(errno, "trace file ftello() " "failed"); stop_tracing(); return; } if (fseeko(tracef, rpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld)" "failed", (long)rpos); stop_tracing(); return; } } if (ferror(tracef)) { popup_an_errno(errno, "trace file rollover copy " "failed"); stop_tracing(); return; } #if defined(ROLLOVER_DEBUG) /*[*/ printf("final wpos = %lld\n", wpos); #endif /*]*/ #if !defined(_MSC_VER) /*[*/ if (ftruncate(fileno(tracef), wpos) < 0) { popup_an_errno(errno, "trace file ftruncate(%ld) " "failed", (long)wpos); stop_tracing(); return; } #endif /*]*/ if (fseeko(tracef, wpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld) failed", (long)wpos); stop_tracing(); return; } #if defined(_MSC_VER) /*[*/ SetEndOfFile((HANDLE)_get_osfhandle(fileno(tracef))); #endif /*]*/ tracef_size = wpos; tracef_midpoint = wpos; Replace(tracef_midpoint_header, create_tracefile_header("rolled over")); } } #if defined(X3270_DISPLAY) /*[*/ static Widget trace_shell = (Widget)NULL; #endif /*]*/ static int trace_reason; /* Create a trace file header. */ static char * create_tracefile_header(const char *mode) { char *buf; time_t clk; /* Create a buffer and redirect output. */ buf = Malloc(MAX_HEADER_SIZE); tracef_bufptr = buf; /* Display current status */ clk = time((time_t *)0); wtrace("Trace %s %s", mode, ctime(&clk)); wtrace(" Version: %s\n", build); wtrace(" %s\n", build_options()); save_yourself(); wtrace(" Command: %s\n", command_string); wtrace(" Model %s, %d rows x %d cols", model_name, maxROWS, maxCOLS); #if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) /*[*/ wtrace(", %s display", appres.mono ? "monochrome" : "color"); #endif /*]*/ if (appres.extended) wtrace(", extended data stream"); wtrace(", %s emulation", appres.m3279 ? "color" : "monochrome"); wtrace(", %s charset", get_charset_name()); if (appres.apl_mode) wtrace(", APL mode"); wtrace("\n"); #if !defined(_WIN32) /*[*/ wtrace(" Locale codeset: %s\n", locale_codeset); #else /*][*/ wtrace(" ANSI codepage: %d\n", GetACP()); # if defined(WS3270) /*[*/ wtrace(" Local codepage: %d\n", appres.local_cp); # endif /*]*/ #endif /*]*/ wtrace(" Host codepage: %d", (int)(cgcsgid & 0xffff)); #if defined(X3270_DBCS) /*[*/ if (dbcs) wtrace("+%d", (int)(cgcsgid_dbcs & 0xffff)); #endif /*]*/ wtrace("\n"); if (CONNECTED) wtrace(" Connected to %s, port %u\n", current_host, current_port); /* Snap the current TELNET options. */ if (net_snap_options()) { wtrace(" TELNET state:\n"); trace_netdata('<', obuf, obptr - obuf); } /* Dump the screen contents and modes into the trace file. */ if (CONNECTED) { /* * Note that if the screen is not formatted, we do not * attempt to save what's on it. However, if we're in * 3270 SSCP-LU or NVT mode, we'll do a dummy, empty * write to ensure that the display is in the right * mode. */ if (formatted) { wtrace(" Screen contents (3270):\n"); obptr = obuf; #if defined(X3270_TN3270E) /*[*/ (void) net_add_dummy_tn3270e(); #endif /*]*/ ctlr_snap_buffer(); space3270out(2); net_add_eor(obuf, obptr - obuf); obptr += 2; trace_netdata('<', obuf, obptr - obuf); obptr = obuf; #if defined(X3270_TN3270E) /*[*/ (void) net_add_dummy_tn3270e(); #endif /*]*/ if (ctlr_snap_modes()) { wtrace(" 3270 modes:\n"); space3270out(2); net_add_eor(obuf, obptr - obuf); obptr += 2; trace_netdata('<', obuf, obptr - obuf); } } #if defined(X3270_TN3270E) /*[*/ else if (IN_E) { obptr = obuf; (void) net_add_dummy_tn3270e(); wtrace(" Screen contents (%s):\n", IN_SSCP? "SSCP-LU": "TN3270E-NVT"); if (IN_SSCP) ctlr_snap_buffer_sscp_lu(); else if (IN_ANSI) ansi_snap(); space3270out(2); net_add_eor(obuf, obptr - obuf); obptr += 2; trace_netdata('<', obuf, obptr - obuf); if (IN_ANSI) { wtrace(" NVT modes:\n"); obptr = obuf; ansi_snap_modes(); trace_netdata('<', obuf, obptr - obuf); } } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ else if (IN_ANSI) { obptr = obuf; wtrace(" Screen contents (NVT):\n"); ansi_snap(); trace_netdata('<', obuf, obptr - obuf); wtrace(" NVT modes:\n"); obptr = obuf; ansi_snap_modes(); trace_netdata('<', obuf, obptr - obuf); } #endif /*]*/ } wtrace(" Data stream:\n"); /* Return the buffer. */ tracef_bufptr = CN; return buf; } /* Calculate the tracefile maximum size. */ static void get_tracef_max(void) { static Boolean calculated = False; char *ptr; Boolean bad = False; if (calculated) return; calculated = True; if (appres.trace_file_size == CN || !strcmp(appres.trace_file_size, "0") || !strncasecmp(appres.trace_file_size, "none", strlen(appres.trace_file_size))) { tracef_max = 0; return; } tracef_max = strtoul(appres.trace_file_size, &ptr, 0); if (tracef_max == 0 || ptr == appres.trace_file_size || *(ptr + 1)) { bad = True; } else switch (*ptr) { case 'k': case 'K': tracef_max *= 1024; break; case 'm': case 'M': tracef_max *= 1024 * 1024; break; case '\0': break; default: bad = True; break; } if (bad) { tracef_max = MIN_TRACEFILE_SIZE; #if defined(X3270_DISPLAY) /*[*/ popup_an_info("Invalid %s '%s', assuming " MIN_TRACEFILE_SIZE_NAME, ResTraceFileSize, appres.trace_file_size); #endif /*]*/ } else if (tracef_max < MIN_TRACEFILE_SIZE) { tracef_max = MIN_TRACEFILE_SIZE; } } /* Parse the name '/dev/fd', so we can simulate it. */ static int get_devfd(const char *pathname) { unsigned long fd; char *ptr; if (strncmp(pathname, "/dev/fd/", 8)) return -1; fd = strtoul(pathname + 8, &ptr, 10); if (ptr == pathname + 8 || *ptr != '\0' || fd < 0) return -1; return fd; } /* Callback for "OK" button on trace popup */ static void tracefile_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { char *tfn = CN; int devfd = -1; #if defined(X3270_DISPLAY) /*[*/ int pipefd[2]; Boolean just_piped = False; #endif /*]*/ char *buf; #if defined(X3270_DISPLAY) /*[*/ if (w) tfn = XawDialogGetValueString((Widget)client_data); else #endif /*]*/ tfn = (char *)client_data; tfn = do_subst(tfn, True, True); if (strchr(tfn, '\'') || ((int)strlen(tfn) > 0 && tfn[strlen(tfn)-1] == '\\')) { popup_an_error("Illegal file name: %s", tfn); Free(tfn); return; } tracef_max = 0; tracef_midpoint = 0; Replace(tracef_midpoint_header, CN); if (!strcmp(tfn, "stdout")) { tracef = stdout; } else { #if defined(X3270_DISPLAY) /*[*/ FILE *pipefile = NULL; if (!strcmp(tfn, "none") || !tfn[0]) { just_piped = True; if (!appres.trace_monitor) { popup_an_error("Must specify a trace file " "name"); free(tfn); return; } } if (appres.trace_monitor) { if (pipe(pipefd) < 0) { popup_an_errno(errno, "pipe() failed"); Free(tfn); return; } pipefile = fdopen(pipefd[1], "w"); if (pipefile == NULL) { popup_an_errno(errno, "fdopen() failed"); (void) close(pipefd[0]); (void) close(pipefd[1]); Free(tfn); return; } (void) SETLINEBUF(pipefile); (void) fcntl(pipefd[1], F_SETFD, 1); } if (just_piped) { tracef = pipefile; } else #endif /*]*/ { #if defined(X3270_DISPLAY) /*[*/ tracef_pipe = pipefile; #endif /*]*/ /* Get the trace file maximum. */ get_tracef_max(); /* If there's a limit, the file can't exist. */ if (tracef_max && !access(tfn, R_OK)) { popup_an_error("Trace file '%s' already exists", tfn); #if defined(X3270_DISPLAY) /*[*/ fclose(tracef_pipe); (void) close(pipefd[0]); (void) close(pipefd[1]); #endif /*]*/ Free(tfn); return; } /* Open and configure the file. */ if ((devfd = get_devfd(tfn)) >= 0) tracef = fdopen(dup(devfd), "a"); else tracef = fopen(tfn, tracef_max? "w+": "a"); if (tracef == (FILE *)NULL) { popup_an_errno(errno, "%s", tfn); #if defined(X3270_DISPLAY) /*[*/ fclose(tracef_pipe); (void) close(pipefd[0]); (void) close(pipefd[1]); #endif /*]*/ Free(tfn); return; } Replace(tracefile_name, NewString(tfn)); (void) SETLINEBUF(tracef); #if !defined(_WIN32) /*[*/ (void) fcntl(fileno(tracef), F_SETFD, 1); #endif /*]*/ } } #if defined(X3270_DISPLAY) /*[*/ /* Start the monitor window */ if (tracef != stdout && appres.trace_monitor) { switch (tracewindow_pid = fork_child()) { case 0: /* child process */ { char cmd[64]; (void) sprintf(cmd, "cat <&%d", pipefd[0]); (void) execlp("xterm", "xterm", "-title", just_piped? "trace": tfn, "-sb", "-e", "/bin/sh", "-c", cmd, CN); } (void) perror("exec(xterm) failed"); _exit(1); default: /* parent */ (void) close(pipefd[0]); ++children; break; case -1: /* error */ popup_an_errno(errno, "fork() failed"); break; } } #endif /*]*/ #if defined(_WIN32) && defined(C3270) /*[*/ /* Start the monitor window. */ if (tracef != stdout && appres.trace_monitor && is_installed) { STARTUPINFO startupinfo; PROCESS_INFORMATION process_information; char *path; char *args; (void) memset(&startupinfo, '\0', sizeof(STARTUPINFO)); startupinfo.cb = sizeof(STARTUPINFO); startupinfo.lpTitle = tfn; (void) memset(&process_information, '\0', sizeof(PROCESS_INFORMATION)); path = xs_buffer("%scatf.exe", instdir); args = xs_buffer("\"%scatf.exe\" \"%s\"", instdir, tfn); if (CreateProcess( path, args, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &startupinfo, &process_information) == 0) { popup_an_error("CreateProcess(%s) failed: %s", path, win32_strerror(GetLastError())); Free(path); Free(args); } else { Free(path); Free(args); tracewindow_handle = process_information.hProcess; CloseHandle(process_information.hThread); } } #endif /*]*/ Free(tfn); /* We're really tracing, turn the flag on. */ appres.toggle[trace_reason].value = True; appres.toggle[trace_reason].changed = True; menubar_retoggle(&appres.toggle[trace_reason]); /* Display current status. */ buf = create_tracefile_header("started"); wtrace("%s", buf); Free(buf); #if defined(X3270_DISPLAY) /*[*/ if (w) XtPopdown(trace_shell); #endif /*]*/ } #if defined(X3270_DISPLAY) /*[*/ /* Callback for "No File" button on trace popup */ static void no_tracefile_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { tracefile_callback((Widget)NULL, "", PN); XtPopdown(trace_shell); } #endif /*]*/ /* Open the trace file. */ static void tracefile_on(int reason, enum toggle_type tt) { char *tracefile_buf = NULL; char *tracefile; if (tracef != (FILE *)NULL) return; trace_reason = reason; if (appres.secure && tt != TT_INITIAL) { tracefile_callback((Widget)NULL, "none", PN); return; } if (appres.trace_file) tracefile = appres.trace_file; else { #if defined(_WIN32) /*[*/ tracefile_buf = xs_buffer("%s%sx3trc.%u.txt", (appres.trace_dir != CN)? appres.trace_dir: myappdata, (appres.trace_dir != CN)? "\\": "", getpid()); #else /*][*/ tracefile_buf = xs_buffer("%s/x3trc.%u", appres.trace_dir, getpid()); #endif /*]*/ tracefile = tracefile_buf; } #if defined(X3270_DISPLAY) /*[*/ if (tt == TT_INITIAL || tt == TT_ACTION) #endif /*]*/ { tracefile_callback((Widget)NULL, tracefile, PN); if (tracefile_buf != NULL) Free(tracefile_buf); return; } #if defined(X3270_DISPLAY) /*[*/ if (trace_shell == NULL) { trace_shell = create_form_popup("trace", tracefile_callback, appres.trace_monitor? no_tracefile_callback: NULL, FORM_NO_WHITE); XtVaSetValues(XtNameToWidget(trace_shell, ObjDialog), XtNvalue, tracefile, NULL); } /* Turn the toggle _off_ until the popup succeeds. */ appres.toggle[reason].value = False; appres.toggle[reason].changed = True; popup_popup(trace_shell, XtGrabExclusive); #endif /*]*/ if (tracefile_buf != NULL) Free(tracefile_buf); } /* Close the trace file. */ static void tracefile_off(void) { time_t clk; clk = time((time_t *)0); wtrace("Trace stopped %s", ctime(&clk)); #if !defined(_WIN32) /*[*/ if (tracewindow_pid != -1) (void) kill(tracewindow_pid, SIGKILL); tracewindow_pid = -1; #else /*][*/ if (tracewindow_handle != NULL) { TerminateProcess(tracewindow_handle, 0); CloseHandle(tracewindow_handle); tracewindow_handle = NULL; } #endif /*]*/ stop_tracing(); } void toggle_dsTrace(struct toggle *t _is_unused, enum toggle_type tt) { /* If turning on trace and no trace file, open one. */ if (toggled(DS_TRACE) && tracef == NULL) tracefile_on(DS_TRACE, tt); /* If turning off trace and not still tracing events, close the trace file. */ else if (!toggled(DS_TRACE) && !toggled(EVENT_TRACE)) tracefile_off(); if (toggled(DS_TRACE)) (void) gettimeofday(&ds_ts, (struct timezone *)NULL); } void toggle_eventTrace(struct toggle *t _is_unused, enum toggle_type tt) { /* If turning on event debug, and no trace file, open one. */ if (toggled(EVENT_TRACE) && tracef == NULL) tracefile_on(EVENT_TRACE, tt); /* If turning off event debug, and not tracing the data stream, close the trace file. */ else if (!toggled(EVENT_TRACE) && !toggled(DS_TRACE)) tracefile_off(); } /* Screen trace file support. */ #if defined(X3270_DISPLAY) /*[*/ static Widget screentrace_shell = (Widget)NULL; #endif /*]*/ static FILE *screentracef = (FILE *)0; /* * Screen trace function, called when the host clears the screen. */ static void do_screentrace(void) { register int i; if (fprint_screen(screentracef, P_TEXT, 0, NULL)) { for (i = 0; i < COLS; i++) (void) fputc('=', screentracef); (void) fputc('\n', screentracef); } } void trace_screen(void) { trace_skipping = False; if (!toggled(SCREEN_TRACE) || !screentracef) return; do_screentrace(); } /* Called from ANSI emulation code to log a single character. */ void trace_char(char c) { if (!toggled(SCREEN_TRACE) || !screentracef) return; (void) fputc(c, screentracef); } /* * Called when disconnecting in ANSI mode, to finish off the trace file * and keep the next screen clear from re-recording the screen image. * (In a gross violation of data hiding and modularity, trace_skipping is * manipulated directly in ctlr_clear()). */ void trace_ansi_disc(void) { int i; (void) fputc('\n', screentracef); for (i = 0; i < COLS; i++) (void) fputc('=', screentracef); (void) fputc('\n', screentracef); trace_skipping = True; } /* * Screen tracing callback. * Returns True for success, False for failure. */ static Boolean screentrace_cb(char *tfn) { tfn = do_subst(tfn, True, True); screentracef = fopen(tfn, "a"); if (screentracef == (FILE *)NULL) { popup_an_errno(errno, "%s", tfn); Free(tfn); return False; } Free(tfn); (void) SETLINEBUF(screentracef); #if !defined(_WIN32) /*[*/ (void) fcntl(fileno(screentracef), F_SETFD, 1); #endif /*]*/ /* We're really tracing, turn the flag on. */ appres.toggle[SCREEN_TRACE].value = True; appres.toggle[SCREEN_TRACE].changed = True; menubar_retoggle(&appres.toggle[SCREEN_TRACE]); return True; } #if defined(X3270_DISPLAY) /*[*/ /* Callback for "OK" button on screentrace popup */ static void screentrace_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { if (screentrace_cb(XawDialogGetValueString((Widget)client_data))) XtPopdown(screentrace_shell); } /* Callback for second "OK" button on screentrace popup */ static void onescreen_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { char *tfn; if (w) tfn = XawDialogGetValueString((Widget)client_data); else tfn = (char *)client_data; tfn = do_subst(tfn, True, True); screentracef = fopen(tfn, "a"); if (screentracef == (FILE *)NULL) { popup_an_errno(errno, "%s", tfn); XtFree(tfn); return; } (void) fcntl(fileno(screentracef), F_SETFD, 1); XtFree(tfn); /* Save the current image, once. */ do_screentrace(); /* Close the file, we're done. */ (void) fclose(screentracef); screentracef = (FILE *)NULL; if (w) XtPopdown(screentrace_shell); } #endif /*]*/ void toggle_screenTrace(struct toggle *t _is_unused, enum toggle_type tt) { char *tracefile_buf = NULL; char *tracefile; if (toggled(SCREEN_TRACE)) { if (appres.screentrace_file) tracefile = appres.screentrace_file; else { #if defined(_WIN32) /*[*/ tracefile_buf = xs_buffer("%s%sx3scr.%u.txt", (appres.trace_dir != CN)? appres.trace_dir: myappdata, (appres.trace_dir != CN)? "\\": "", getpid()); #else /*][*/ tracefile_buf = xs_buffer("%s/x3scr.%u", appres.trace_dir, getpid()); #endif /*]*/ tracefile = tracefile_buf; } if (tt == TT_INITIAL || tt == TT_ACTION) { (void) screentrace_cb(NewString(tracefile)); if (tracefile_buf != NULL) Free(tracefile_buf); return; } #if defined(X3270_DISPLAY) /*[*/ if (screentrace_shell == NULL) { screentrace_shell = create_form_popup("screentrace", screentrace_callback, onescreen_callback, FORM_NO_WHITE); XtVaSetValues(XtNameToWidget(screentrace_shell, ObjDialog), XtNvalue, tracefile, NULL); } appres.toggle[SCREEN_TRACE].value = False; appres.toggle[SCREEN_TRACE].changed = True; popup_popup(screentrace_shell, XtGrabExclusive); #endif /*]*/ } else { if (ctlr_any_data() && !trace_skipping) do_screentrace(); (void) fclose(screentracef); } if (tracefile_buf != NULL) Free(tracefile_buf); } #endif /*]*/ ibm-3270-3.3.10ga4/c3270/ctlr.c0000644000175000017500000020560611254565704015046 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * ctlr.c * This module handles interpretation of the 3270 data stream and * maintenance of the 3270 device state. It was split out from * screen.c, which handles X operations. * */ #include "globals.h" #include #include "3270ds.h" #include "appres.h" #include "ctlr.h" #include "screen.h" #include "resources.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "ft_cutc.h" #include "ft_dftc.h" #include "hostc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "screenc.h" #include "scrollc.h" #include "seec.h" #include "selectc.h" #include "sfc.h" #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" /* Externals: kybd.c */ extern unsigned char aid; /* Globals */ int ROWS, COLS; int maxROWS, maxCOLS; int defROWS, defCOLS; int altROWS, altCOLS; int ov_rows, ov_cols; Boolean ov_auto; int model_num; int cursor_addr, buffer_addr; Boolean screen_alt = False; /* alternate screen? */ Boolean is_altbuffer = False; struct ea *ea_buf; /* 3270 device buffer */ /* ea_buf[-1] is the dummy default field attribute */ struct ea *aea_buf; /* alternate 3270 extended attribute buffer */ Boolean formatted = False; /* set in screen_disp */ Boolean screen_changed = False; int first_changed = -1; int last_changed = -1; unsigned char reply_mode = SF_SRM_FIELD; int crm_nattr = 0; unsigned char crm_attr[16]; Boolean dbcs = False; /* Statics */ static unsigned char *zero_buf; /* empty buffer, for area clears */ static void set_formatted(void); static void ctlr_blanks(void); static Boolean trace_primed = False; static unsigned char default_fg; static unsigned char default_bg; static unsigned char default_gr; static unsigned char default_cs; static unsigned char default_ic; static void ctlr_half_connect(Boolean ignored); static void ctlr_connect(Boolean ignored); static int sscp_start; static void ticking_stop(void); static void ctlr_add_ic(int baddr, unsigned char ic); /* * code_table is used to translate buffer addresses and attributes to the 3270 * datastream representation */ static unsigned char code_table[64] = { 0x40, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, }; #define IsBlank(c) ((c == EBC_null) || (c == EBC_space)) #define ALL_CHANGED { \ screen_changed = True; \ if (IN_ANSI) { first_changed = 0; last_changed = ROWS*COLS; } } #define REGION_CHANGED(f, l) { \ screen_changed = True; \ if (IN_ANSI) { \ if (first_changed == -1 || f < first_changed) first_changed = f; \ if (last_changed == -1 || l > last_changed) last_changed = l; } } #define ONE_CHANGED(n) REGION_CHANGED(n, n+1) #define DECODE_BADDR(c1, c2) \ ((((c1) & 0xC0) == 0x00) ? \ (((c1) & 0x3F) << 8) | (c2) : \ (((c1) & 0x3F) << 6) | ((c2) & 0x3F)) #define ENCODE_BADDR(ptr, addr) { \ if ((ROWS * COLS) > 0x1000) { \ *(ptr)++ = ((addr) >> 8) & 0x3F; \ *(ptr)++ = (addr) & 0xFF; \ } else { \ *(ptr)++ = code_table[((addr) >> 6) & 0x3F]; \ *(ptr)++ = code_table[(addr) & 0x3F]; \ } \ } /* * Initialize the emulated 3270 hardware. */ void ctlr_init(unsigned cmask _is_unused) { /* Register callback routines. */ register_schange(ST_HALF_CONNECT, ctlr_half_connect); register_schange(ST_CONNECT, ctlr_connect); register_schange(ST_3270_MODE, ctlr_connect); } /* * Reinitialize the emulated 3270 hardware. */ void ctlr_reinit(unsigned cmask) { static struct ea *real_ea_buf = NULL; static struct ea *real_aea_buf = NULL; if (cmask & MODEL_CHANGE) { /* Allocate buffers */ if (real_ea_buf) Free((char *)real_ea_buf); real_ea_buf = (struct ea *)Calloc(sizeof(struct ea), (maxROWS * maxCOLS) + 1); ea_buf = real_ea_buf + 1; if (real_aea_buf) Free((char *)real_aea_buf); real_aea_buf = (struct ea *)Calloc(sizeof(struct ea), (maxROWS * maxCOLS) + 1); aea_buf = real_aea_buf + 1; Replace(zero_buf, (unsigned char *)Calloc(sizeof(struct ea), maxROWS * maxCOLS)); cursor_addr = 0; buffer_addr = 0; } } /* * Deal with the relationships between model numbers and rows/cols. */ void set_rows_cols(int mn, int ovc, int ovr) { int defmod; if (ovc < 0 || ovr < 0) { ov_auto = True; ovc = 0; ovr = 0; } switch (mn) { case 2: maxCOLS = MODEL_2_COLS; maxROWS = MODEL_2_ROWS; model_num = 2; break; case 3: maxCOLS = MODEL_3_COLS; maxROWS = MODEL_3_ROWS; model_num = 3; break; case 4: #if defined(RESTRICT_3279) /*[*/ if (appres.m3279) { popup_an_error("No 3279 Model 4\nDefaulting to model 3"); set_rows_cols("3", ovc, ovr); return; } #endif /*]*/ maxCOLS = MODEL_4_COLS; maxROWS = MODEL_4_ROWS; model_num = 4; break; case 5: #if defined(RESTRICT_3279) /*[*/ if (appres.m3279) { popup_an_error("No 3279 Model 5\nDefaulting to model 3"); set_rows_cols(3, ovc, ovr); return; } #endif /*]*/ maxCOLS = MODEL_5_COLS; maxROWS = MODEL_5_ROWS; model_num = 5; break; default: #if defined(RESTRICT_3279) /*[*/ defmod = appres.m3279 ? 3 : 4; #else /*][*/ defmod = 4; #endif popup_an_error("Unknown model: %d\nDefaulting to %d", mn, defmod); set_rows_cols(defmod, ovc, ovr); return; } /* Apply oversize. */ ov_cols = 0; ov_rows = 0; if (ovc != 0 || ovr != 0) { if (ovc <= 0 || ovr <= 0) popup_an_error("Invalid %s %dx%d:\nNegative or zero", ResOversize, ovc, ovr); else if (ovc * ovr >= 0x4000) popup_an_error("Invalid %s %dx%d:\nToo big", ResOversize, ovc, ovr); else if (ovc > 0 && ovc < maxCOLS) popup_an_error("Invalid %s cols (%d):\nLess than model %d cols (%d)", ResOversize, ovc, model_num, maxCOLS); else if (ovr > 0 && ovr < maxROWS) popup_an_error("Invalid %s rows (%d):\nLess than model %d rows (%d)", ResOversize, ovr, model_num, maxROWS); else { ov_cols = maxCOLS = ovc; ov_rows = maxROWS = ovr; } } /* Update the model name. */ (void) sprintf(model_name, "327%c-%d%s", appres.m3279 ? '9' : '8', model_num, appres.extended ? "-E" : ""); /* Make sure that the current rows/cols are still 24x80. */ COLS = defCOLS = MODEL_2_COLS; ROWS = defROWS = MODEL_2_ROWS; screen_alt = False; /* Set the defaults for the alternate screen size. */ altROWS = maxROWS; altCOLS = maxCOLS; } /* * Set the formatted screen flag. A formatted screen is a screen that * has at least one field somewhere on it. */ static void set_formatted(void) { register int baddr; formatted = False; baddr = 0; do { if (ea_buf[baddr].fa) { formatted = True; break; } INC_BA(baddr); } while (baddr != 0); } /* * Called when a host is half connected. */ static void ctlr_half_connect(Boolean ignored _is_unused) { ticking_start(True); } /* * Called when a host connects, disconnects, or changes ANSI/3270 modes. */ static void ctlr_connect(Boolean ignored _is_unused) { ticking_stop(); status_untiming(); if (ever_3270) { ea_buf[-1].fa = FA_PRINTABLE | FA_MODIFY; aea_buf[-1].fa = FA_PRINTABLE | FA_MODIFY; } else { ea_buf[-1].fa = FA_PRINTABLE | FA_PROTECT; aea_buf[-1].fa = FA_PRINTABLE | FA_PROTECT; } if (!IN_3270 || (IN_SSCP && (kybdlock & KL_OIA_TWAIT))) { kybdlock_clr(KL_OIA_TWAIT, "ctlr_connect"); status_reset(); } default_fg = 0x00; default_bg = 0x00; default_gr = 0x00; default_cs = 0x00; default_ic = 0x00; reply_mode = SF_SRM_FIELD; crm_nattr = 0; /* On disconnect, reset the default and alternate dimensions. */ if (!CONNECTED) { defROWS = MODEL_2_ROWS; defCOLS = MODEL_2_COLS; altROWS = maxROWS; altCOLS = maxCOLS; ctlr_erase(False); } } /* * Find the buffer address of the field attribute for a given buffer address. * Returns -1 if the screen isn't formatted. */ int find_field_attribute(int baddr) { int sbaddr; if (!formatted) return -1; sbaddr = baddr; do { if (ea_buf[baddr].fa) return baddr; DEC_BA(baddr); } while (baddr != sbaddr); return -1; } /* * Find the field attribute for the given buffer address. Return its address * rather than its value. */ unsigned char get_field_attribute(register int baddr) { return ea_buf[find_field_attribute(baddr)].fa; } /* * Find the field attribute for the given buffer address, bounded by another * buffer address. Return the attribute in a parameter. * * Returns True if an attribute is found, False if boundary hit. */ Boolean get_bounded_field_attribute(register int baddr, register int bound, unsigned char *fa_out) { int sbaddr; if (!formatted) { *fa_out = ea_buf[-1].fa; return True; } sbaddr = baddr; do { if (ea_buf[baddr].fa) { *fa_out = ea_buf[baddr].fa; return True; } DEC_BA(baddr); } while (baddr != sbaddr && baddr != bound); /* Screen is unformatted (and 'formatted' is inaccurate). */ if (baddr == sbaddr) { *fa_out = ea_buf[-1].fa; return True; } /* Wrapped to boundary. */ return False; } /* * Given the address of a field attribute, return the address of the * extended attribute structure. */ struct ea * fa2ea(int baddr) { return &ea_buf[baddr]; } /* * Find the next unprotected field. Returns the address following the * unprotected attribute byte, or 0 if no nonzero-width unprotected field * can be found. */ int next_unprotected(int baddr0) { register int baddr, nbaddr; nbaddr = baddr0; do { baddr = nbaddr; INC_BA(nbaddr); if (ea_buf[baddr].fa && !FA_IS_PROTECTED(ea_buf[baddr].fa) && !ea_buf[nbaddr].fa) return nbaddr; } while (nbaddr != baddr0); return 0; } /* * Perform an erase command, which may include changing the (virtual) screen * size. */ void ctlr_erase(Boolean alt) { int newROWS, newCOLS; kybd_inhibit(False); ctlr_clear(True); /* Let a script go. */ sms_host_output(); if (alt) { newROWS = altROWS; newCOLS = altCOLS; } else { newROWS = defROWS; newCOLS = defCOLS; } if (alt == screen_alt && ROWS == newROWS && COLS == newCOLS) return; screen_disp(True); if (visible_control) { /* Blank the entire display. */ ctlr_blanks(); ROWS = maxROWS; COLS = maxCOLS; screen_disp(False); } ROWS = newROWS; COLS = newCOLS; if (visible_control) { /* Fill the active part of the screen with NULLs again. */ ctlr_clear(False); screen_disp(False); } screen_alt = alt; } /* * Interpret an incoming 3270 command. */ enum pds process_ds(unsigned char *buf, int buflen) { enum pds rv; if (!buflen) return PDS_OKAY_NO_OUTPUT; scroll_to_bottom(); trace_ds("< "); switch (buf[0]) { /* 3270 command */ case CMD_EAU: /* erase all unprotected */ case SNA_CMD_EAU: ctlr_erase_all_unprotected(); trace_ds("EraseAllUnprotected\n"); return PDS_OKAY_NO_OUTPUT; break; case CMD_EWA: /* erase/write alternate */ case SNA_CMD_EWA: ctlr_erase(True); trace_ds("EraseWriteAlternate"); if ((rv = ctlr_write(buf, buflen, True)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_EW: /* erase/write */ case SNA_CMD_EW: ctlr_erase(False); trace_ds("EraseWrite"); if ((rv = ctlr_write(buf, buflen, True)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_W: /* write */ case SNA_CMD_W: trace_ds("Write"); if ((rv = ctlr_write(buf, buflen, False)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_RB: /* read buffer */ case SNA_CMD_RB: trace_ds("ReadBuffer\n"); ctlr_read_buffer(aid); return PDS_OKAY_OUTPUT; break; case CMD_RM: /* read modifed */ case SNA_CMD_RM: trace_ds("ReadModified\n"); ctlr_read_modified(aid, False); return PDS_OKAY_OUTPUT; break; case CMD_RMA: /* read modifed all */ case SNA_CMD_RMA: trace_ds("ReadModifiedAll\n"); ctlr_read_modified(aid, True); return PDS_OKAY_OUTPUT; break; case CMD_WSF: /* write structured field */ case SNA_CMD_WSF: trace_ds("WriteStructuredField"); return write_structured_field(buf, buflen); break; case CMD_NOP: /* no-op */ trace_ds("NoOp\n"); return PDS_OKAY_NO_OUTPUT; break; default: /* unknown 3270 command */ popup_an_error("Unknown 3270 Data Stream command: 0x%X\n", buf[0]); return PDS_BAD_CMD; } } /* * Functions to insert SA attributes into the inbound data stream. */ static void insert_sa1(unsigned char attr, unsigned char value, unsigned char *currentp, Boolean *anyp) { if (value == *currentp) return; *currentp = value; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = attr; *obptr++ = value; if (*anyp) trace_ds("'"); trace_ds(" SetAttribute(%s)", see_efa(attr, value)); *anyp = False; } /* * Translate an internal character set number to a 3270DS characte set number. */ static unsigned char host_cs(unsigned char cs) { switch (cs & CS_MASK) { case CS_APL: case CS_LINEDRAW: return 0xf0 | (cs & CS_MASK); case CS_DBCS: return 0xf8; default: return 0; } } static void insert_sa(int baddr, unsigned char *current_fgp, unsigned char *current_bgp, unsigned char *current_grp, unsigned char *current_csp, Boolean *anyp) { if (reply_mode != SF_SRM_CHAR) return; if (memchr((char *)crm_attr, XA_FOREGROUND, crm_nattr)) insert_sa1(XA_FOREGROUND, ea_buf[baddr].fg, current_fgp, anyp); if (memchr((char *)crm_attr, XA_BACKGROUND, crm_nattr)) insert_sa1(XA_BACKGROUND, ea_buf[baddr].bg, current_bgp, anyp); if (memchr((char *)crm_attr, XA_HIGHLIGHTING, crm_nattr)) { unsigned char gr; gr = ea_buf[baddr].gr; if (gr) gr |= 0xf0; insert_sa1(XA_HIGHLIGHTING, gr, current_grp, anyp); } if (memchr((char *)crm_attr, XA_CHARSET, crm_nattr)) { insert_sa1(XA_CHARSET, host_cs(ea_buf[baddr].cs), current_csp, anyp); } } /* * Process a 3270 Read-Modified command and transmit the data back to the * host. */ void ctlr_read_modified(unsigned char aid_byte, Boolean all) { register int baddr, sbaddr; Boolean send_data = True; Boolean short_read = False; unsigned char current_fg = 0x00; unsigned char current_bg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; if (IN_SSCP && aid_byte != AID_ENTER) return; #if defined(X3270_FT) /*[*/ if (aid_byte == AID_SF) { dft_read_modified(); return; } #endif /*]*/ trace_ds("> "); obptr = obuf; switch (aid_byte) { case AID_SYSREQ: /* test request */ space3270out(4); *obptr++ = 0x01; /* soh */ *obptr++ = 0x5b; /* % */ *obptr++ = 0x61; /* / */ *obptr++ = 0x02; /* stx */ trace_ds("SYSREQ"); break; case AID_PA1: /* short-read AIDs */ case AID_PA2: case AID_PA3: case AID_CLEAR: if (!all) short_read = True; /* fall through... */ case AID_SELECT: /* No data on READ MODIFIED */ if (!all) send_data = False; /* fall through... */ default: /* ordinary AID */ if (!IN_SSCP) { space3270out(3); *obptr++ = aid_byte; trace_ds("%s", see_aid(aid_byte)); if (short_read) goto rm_done; ENCODE_BADDR(obptr, cursor_addr); trace_ds("%s", rcba(cursor_addr)); } else { space3270out(1); /* just in case */ } break; } baddr = 0; if (formatted) { /* find first field attribute */ do { if (ea_buf[baddr].fa) break; INC_BA(baddr); } while (baddr != 0); sbaddr = baddr; do { if (FA_IS_MODIFIED(ea_buf[baddr].fa)) { Boolean any = False; INC_BA(baddr); space3270out(3); *obptr++ = ORDER_SBA; ENCODE_BADDR(obptr, baddr); trace_ds(" SetBufferAddress%s", rcba(baddr)); while (!ea_buf[baddr].fa) { if (send_data && ea_buf[baddr].cc) { insert_sa(baddr, ¤t_fg, ¤t_bg, ¤t_gr, ¤t_cs, &any); if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; if (any) trace_ds("'"); trace_ds(" GraphicEscape"); any = False; } space3270out(1); *obptr++ = ea_buf[baddr].cc; if (ea_buf[baddr].cc <= 0x3f || ea_buf[baddr].cc == 0xff) { if (any) trace_ds("'"); trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); any = False; } else { if (!any) trace_ds(" '"); trace_ds("%s", see_ebc(ea_buf[baddr].cc)); any = True; } } INC_BA(baddr); } if (any) trace_ds("'"); } else { /* not modified - skip */ do { INC_BA(baddr); } while (!ea_buf[baddr].fa); } } while (baddr != sbaddr); } else { Boolean any = False; int nbytes = 0; /* * If we're in SSCP-LU mode, the starting point is where the * host left the cursor. */ if (IN_SSCP) baddr = sscp_start; do { if (ea_buf[baddr].cc) { insert_sa(baddr, ¤t_fg, ¤t_bg, ¤t_gr, ¤t_cs, &any); if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; if (any) trace_ds("' "); trace_ds(" GraphicEscape "); any = False; } space3270out(1); *obptr++ = ea_buf[baddr].cc; if (ea_buf[baddr].cc <= 0x3f || ea_buf[baddr].cc == 0xff) { if (any) trace_ds("'"); trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); any = False; } else { if (!any) trace_ds(" '"); trace_ds("%s", see_ebc(ea_buf[baddr].cc)); any = True; } nbytes++; } INC_BA(baddr); /* * If we're in SSCP-LU mode, end the return value at * 255 bytes, or where the screen wraps. */ if (IN_SSCP && (nbytes >= 255 || !baddr)) break; } while (baddr != 0); if (any) trace_ds("'"); } rm_done: trace_ds("\n"); net_output(); } /* * Process a 3270 Read-Buffer command and transmit the data back to the * host. */ void ctlr_read_buffer(unsigned char aid_byte) { register int baddr; unsigned char fa; Boolean any = False; int attr_count = 0; unsigned char current_fg = 0x00; unsigned char current_bg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; #if defined(X3270_FT) /*[*/ if (aid_byte == AID_SF) { dft_read_modified(); return; } #endif /*]*/ trace_ds("> "); obptr = obuf; space3270out(3); *obptr++ = aid_byte; ENCODE_BADDR(obptr, cursor_addr); trace_ds("%s%s", see_aid(aid_byte), rcba(cursor_addr)); baddr = 0; do { if (ea_buf[baddr].fa) { if (reply_mode == SF_SRM_FIELD) { space3270out(2); *obptr++ = ORDER_SF; } else { space3270out(4); *obptr++ = ORDER_SFE; attr_count = obptr - obuf; *obptr++ = 1; /* for now */ *obptr++ = XA_3270; } fa = ea_buf[baddr].fa & ~FA_PRINTABLE; *obptr++ = code_table[fa]; if (any) trace_ds("'"); trace_ds(" StartField%s%s%s", (reply_mode == SF_SRM_FIELD) ? "" : "Extended", rcba(baddr), see_attr(fa)); if (reply_mode != SF_SRM_FIELD) { if (ea_buf[baddr].fg) { space3270out(2); *obptr++ = XA_FOREGROUND; *obptr++ = ea_buf[baddr].fg; trace_ds("%s", see_efa(XA_FOREGROUND, ea_buf[baddr].fg)); (*(obuf + attr_count))++; } if (ea_buf[baddr].bg) { space3270out(2); *obptr++ = XA_BACKGROUND; *obptr++ = ea_buf[baddr].bg; trace_ds("%s", see_efa(XA_BACKGROUND, ea_buf[baddr].bg)); (*(obuf + attr_count))++; } if (ea_buf[baddr].gr) { space3270out(2); *obptr++ = XA_HIGHLIGHTING; *obptr++ = ea_buf[baddr].gr | 0xf0; trace_ds("%s", see_efa(XA_HIGHLIGHTING, ea_buf[baddr].gr | 0xf0)); (*(obuf + attr_count))++; } if (ea_buf[baddr].cs & CS_MASK) { space3270out(2); *obptr++ = XA_CHARSET; *obptr++ = host_cs(ea_buf[baddr].cs); trace_ds("%s", see_efa(XA_CHARSET, host_cs(ea_buf[baddr].cs))); (*(obuf + attr_count))++; } } any = False; } else { insert_sa(baddr, ¤t_fg, ¤t_bg, ¤t_gr, ¤t_cs, &any); if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; if (any) trace_ds("'"); trace_ds(" GraphicEscape"); any = False; } space3270out(1); *obptr++ = ea_buf[baddr].cc; if (ea_buf[baddr].cc <= 0x3f || ea_buf[baddr].cc == 0xff) { if (any) trace_ds("'"); trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); any = False; } else { if (!any) trace_ds(" '"); trace_ds("%s", see_ebc(ea_buf[baddr].cc)); any = True; } } INC_BA(baddr); } while (baddr != 0); if (any) trace_ds("'"); trace_ds("\n"); net_output(); } #if defined(X3270_TRACE) /*[*/ /* * Construct a 3270 command to reproduce the current state of the display, if * formatted. */ void ctlr_snap_buffer(void) { register int baddr = 0; int attr_count; unsigned char current_fg = 0x00; unsigned char current_bg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; unsigned char av; space3270out(2); *obptr++ = screen_alt ? CMD_EWA : CMD_EW; *obptr++ = code_table[0]; do { if (ea_buf[baddr].fa) { space3270out(4); *obptr++ = ORDER_SFE; attr_count = obptr - obuf; *obptr++ = 1; /* for now */ *obptr++ = XA_3270; *obptr++ = code_table[ea_buf[baddr].fa & ~FA_PRINTABLE]; if (ea_buf[baddr].fg) { space3270out(2); *obptr++ = XA_FOREGROUND; *obptr++ = ea_buf[baddr].fg; (*(obuf + attr_count))++; } if (ea_buf[baddr].bg) { space3270out(2); *obptr++ = XA_BACKGROUND; *obptr++ = ea_buf[baddr].fg; (*(obuf + attr_count))++; } if (ea_buf[baddr].gr) { space3270out(2); *obptr++ = XA_HIGHLIGHTING; *obptr++ = ea_buf[baddr].gr | 0xf0; (*(obuf + attr_count))++; } if (ea_buf[baddr].cs & CS_MASK) { space3270out(2); *obptr++ = XA_CHARSET; *obptr++ = host_cs(ea_buf[baddr].cs); (*(obuf + attr_count))++; } } else { av = ea_buf[baddr].fg; if (current_fg != av) { current_fg = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_FOREGROUND; *obptr++ = av; } av = ea_buf[baddr].bg; if (current_bg != av) { current_bg = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_BACKGROUND; *obptr++ = av; } av = ea_buf[baddr].gr; if (av) av |= 0xf0; if (current_gr != av) { current_gr = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_HIGHLIGHTING; *obptr++ = av; } av = ea_buf[baddr].cs & CS_MASK; if (av) av = host_cs(av); if (current_cs != av) { current_cs = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_CHARSET; *obptr++ = av; } if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; } space3270out(1); *obptr++ = ea_buf[baddr].cc; } INC_BA(baddr); } while (baddr != 0); space3270out(4); *obptr++ = ORDER_SBA; ENCODE_BADDR(obptr, cursor_addr); *obptr++ = ORDER_IC; } /* * Construct a 3270 command to reproduce the reply mode. * Returns a Boolean indicating if one is necessary. */ Boolean ctlr_snap_modes(void) { int i; if (!IN_3270 || reply_mode == SF_SRM_FIELD) return False; space3270out(6 + crm_nattr); *obptr++ = CMD_WSF; *obptr++ = 0x00; /* implicit length */ *obptr++ = 0x00; *obptr++ = SF_SET_REPLY_MODE; *obptr++ = 0x00; /* partition 0 */ *obptr++ = reply_mode; if (reply_mode == SF_SRM_CHAR) for (i = 0; i < crm_nattr; i++) *obptr++ = crm_attr[i]; return True; } /* * Construct a 3270 command to reproduce the current state of the display * in SSCP-LU mode. */ void ctlr_snap_buffer_sscp_lu(void) { register int baddr = 0; /* Write out the screen contents once. */ do { if (ea_buf[baddr].cc == 0xff) { space3270out(1); *obptr++ = 0xff; } space3270out(1); *obptr++ = ea_buf[baddr].cc; INC_BA(baddr); } while (baddr != 0); /* Write them out again, until we hit where the cursor is. */ if (cursor_addr != baddr) { do { if (ea_buf[baddr].cc == 0xff) { space3270out(1); *obptr++ = 0xff; } space3270out(1); *obptr++ = ea_buf[baddr].cc; INC_BA(baddr); } while (baddr != cursor_addr); } } #endif /*]*/ /* * Process a 3270 Erase All Unprotected command. */ void ctlr_erase_all_unprotected(void) { register int baddr, sbaddr; unsigned char fa; Boolean f; kybd_inhibit(False); ALL_CHANGED; if (formatted) { /* find first field attribute */ baddr = 0; do { if (ea_buf[baddr].fa) break; INC_BA(baddr); } while (baddr != 0); sbaddr = baddr; f = False; do { fa = ea_buf[baddr].fa; if (!FA_IS_PROTECTED(fa)) { mdt_clear(baddr); do { INC_BA(baddr); if (!f) { cursor_move(baddr); f = True; } if (!ea_buf[baddr].fa) { ctlr_add(baddr, EBC_null, 0); } } while (!ea_buf[baddr].fa); } else { do { INC_BA(baddr); } while (!ea_buf[baddr].fa); } } while (baddr != sbaddr); if (!f) cursor_move(0); } else { ctlr_clear(True); } aid = AID_NO; do_reset(False); } /* * Process a 3270 Write command. */ enum pds ctlr_write(unsigned char buf[], int buflen, Boolean erase) { register unsigned char *cp; register int baddr; unsigned char current_fa; Boolean last_cmd; Boolean last_zpt; Boolean wcc_keyboard_restore, wcc_sound_alarm; Boolean ra_ge; int i; unsigned char na; int any_fa; unsigned char efa_fg; unsigned char efa_bg; unsigned char efa_gr; unsigned char efa_cs; unsigned char efa_ic; const char *paren = "("; enum { NONE, ORDER, SBA, TEXT, NULLCH } previous = NONE; enum pds rv = PDS_OKAY_NO_OUTPUT; int fa_addr; Boolean add_dbcs; unsigned char add_c1, add_c2 = 0; enum dbcs_state d; enum dbcs_why why = DBCS_FIELD; Boolean aborted = False; #if defined(X3270_DBCS) /*[*/ char mb[16]; #endif /*]*/ #define END_TEXT0 { if (previous == TEXT) trace_ds("'"); } #define END_TEXT(cmd) { END_TEXT0; trace_ds(" %s", cmd); } /* XXX: Should there be a ctlr_add_cs call here? */ #define START_FIELD(fa) { \ current_fa = fa; \ ctlr_add_fa(buffer_addr, fa, 0); \ ctlr_add_cs(buffer_addr, 0); \ ctlr_add_fg(buffer_addr, 0); \ ctlr_add_bg(buffer_addr, 0); \ ctlr_add_gr(buffer_addr, 0); \ ctlr_add_ic(buffer_addr, 0); \ trace_ds("%s", see_attr(fa)); \ formatted = True; \ } kybd_inhibit(False); if (buflen < 2) return PDS_BAD_CMD; default_fg = 0; default_bg = 0; default_gr = 0; default_cs = 0; default_ic = 0; trace_primed = True; buffer_addr = cursor_addr; if (WCC_RESET(buf[1])) { if (erase) reply_mode = SF_SRM_FIELD; trace_ds("%sreset", paren); paren = ","; } wcc_sound_alarm = WCC_SOUND_ALARM(buf[1]); if (wcc_sound_alarm) { trace_ds("%salarm", paren); paren = ","; } wcc_keyboard_restore = WCC_KEYBOARD_RESTORE(buf[1]); if (wcc_keyboard_restore) ticking_stop(); if (wcc_keyboard_restore) { trace_ds("%srestore", paren); paren = ","; } if (WCC_RESET_MDT(buf[1])) { trace_ds("%sresetMDT", paren); paren = ","; baddr = 0; if (appres.modified_sel) ALL_CHANGED; do { if (ea_buf[baddr].fa) { mdt_clear(baddr); } INC_BA(baddr); } while (baddr != 0); } if (strcmp(paren, "(")) trace_ds(")"); last_cmd = True; last_zpt = False; current_fa = get_field_attribute(buffer_addr); #define ABORT_WRITEx { \ rv = PDS_BAD_ADDR; \ aborted = True; \ break; \ } #define ABORT_WRITE(s) { \ trace_ds(" [" s "; write aborted]\n"); \ ABORT_WRITEx; \ } \ for (cp = &buf[2]; !aborted && cp < (buf + buflen); cp++) { switch (*cp) { case ORDER_SF: /* start field */ END_TEXT("StartField"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cp++; /* skip field attribute */ START_FIELD(*cp); ctlr_add_fg(buffer_addr, 0); ctlr_add_bg(buffer_addr, 0); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_SBA: /* set buffer address */ cp += 2; /* skip buffer address */ buffer_addr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("SetBufferAddress"); previous = SBA; trace_ds("%s", rcba(buffer_addr)); if (buffer_addr >= COLS * ROWS) { trace_ds("COLS %d ROWS %d\n", COLS, ROWS); ABORT_WRITE("invalid SBA address"); } current_fa = get_field_attribute(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_IC: /* insert cursor */ END_TEXT("InsertCursor"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cursor_move(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_PT: /* program tab */ END_TEXT("ProgramTab"); previous = ORDER; /* * If the buffer address is the field attribute of * of an unprotected field, simply advance one * position. */ if (ea_buf[buffer_addr].fa && !FA_IS_PROTECTED(ea_buf[buffer_addr].fa)) { INC_BA(buffer_addr); last_zpt = False; last_cmd = True; break; } /* * Otherwise, advance to the first position of the * next unprotected field. */ baddr = next_unprotected(buffer_addr); if (baddr < buffer_addr) baddr = 0; /* * Null out the remainder of the current field -- even * if protected -- if the PT doesn't follow a command * or order, or (honestly) if the last order we saw was * a null-filling PT that left the buffer address at 0. * XXX: There's some funky DBCS rule here. */ if (!last_cmd || last_zpt) { trace_ds("(nulling)"); while ((buffer_addr != baddr) && (!ea_buf[buffer_addr].fa)) { ctlr_add(buffer_addr, EBC_null, 0); ctlr_add_cs(buffer_addr, 0); ctlr_add_fg(buffer_addr, 0); ctlr_add_bg(buffer_addr, 0); ctlr_add_gr(buffer_addr, 0); ctlr_add_ic(buffer_addr, 0); INC_BA(buffer_addr); } if (baddr == 0) last_zpt = True; } else last_zpt = False; buffer_addr = baddr; last_cmd = True; break; case ORDER_RA: /* repeat to address */ END_TEXT("RepeatToAddress"); cp += 2; /* skip buffer address */ baddr = DECODE_BADDR(*(cp-1), *cp); trace_ds("%s", rcba(baddr)); cp++; /* skip char to repeat */ add_dbcs = False; ra_ge = False; previous = ORDER; #if defined(X3270_DBCS) /*[*/ if (dbcs) { d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("RA over right half of DBCS character"); } if (default_cs == CS_DBCS || d == DBCS_LEFT) { add_dbcs = True; } } if (add_dbcs) { if ((baddr - buffer_addr) % 2) { ABORT_WRITE("DBCS RA with odd length"); } add_c1 = *cp; cp++; if (cp >= buf + buflen) { ABORT_WRITE("missing second half of DBCS character"); } add_c2 = *cp; if (add_c1 == EBC_null) { switch (add_c2) { case EBC_null: case EBC_nl: case EBC_em: case EBC_ff: case EBC_cr: case EBC_dup: case EBC_fm: break; default: trace_ds(" [invalid DBCS RA control character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; } } else if (add_c1 < 0x40 || add_c1 > 0xfe || add_c2 < 0x40 || add_c2 > 0xfe) { trace_ds(" [invalid DBCS RA character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; } (void) ebcdic_to_multibyte( (add_c1 << 8) | add_c2, mb, sizeof(mb)); trace_ds_nb("'%s'", mb); } else #endif /*]*/ { if (*cp == ORDER_GE) { ra_ge = True; trace_ds("GraphicEscape"); cp++; } add_c1 = *cp; if (add_c1) trace_ds("'"); trace_ds("%s", see_ebc(add_c1)); if (add_c1) trace_ds("'"); } if (baddr >= COLS * ROWS) { ABORT_WRITE("invalid RA address"); } do { if (add_dbcs) { ctlr_add(buffer_addr, add_c1, default_cs); } else { if (ra_ge) ctlr_add(buffer_addr, add_c1, CS_GE); else if (default_cs) ctlr_add(buffer_addr, add_c1, default_cs); else ctlr_add(buffer_addr, add_c1, 0); } ctlr_add_fg(buffer_addr, default_fg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); if (add_dbcs) { ctlr_add(buffer_addr, add_c2, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } } while (buffer_addr != baddr); current_fa = get_field_attribute(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_EUA: /* erase unprotected to address */ cp += 2; /* skip buffer address */ baddr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("EraseUnprotectedAll"); if (previous != SBA) trace_ds("%s", rcba(baddr)); previous = ORDER; if (baddr >= COLS * ROWS) { ABORT_WRITE("invalid EUA address"); } d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("EUA overwriting right half of DBCS character"); } d = ctlr_lookleft_state(baddr, &why); if (d == DBCS_LEFT) { ABORT_WRITE("EUA overwriting left half of DBCS character"); } do { if (ea_buf[buffer_addr].fa) current_fa = ea_buf[buffer_addr].fa; else if (!FA_IS_PROTECTED(current_fa)) { ctlr_add(buffer_addr, EBC_null, CS_BASE); } INC_BA(buffer_addr); } while (buffer_addr != baddr); current_fa = get_field_attribute(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_GE: /* graphic escape */ /* XXX: DBCS? */ END_TEXT("GraphicEscape "); cp++; /* skip char */ previous = ORDER; if (*cp) trace_ds("'"); trace_ds("%s", see_ebc(*cp)); if (*cp) trace_ds("'"); ctlr_add(buffer_addr, *cp, CS_GE); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); current_fa = get_field_attribute(buffer_addr); last_cmd = False; last_zpt = False; break; case ORDER_MF: /* modify field */ END_TEXT("ModifyField"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cp++; na = *cp; if (ea_buf[buffer_addr].fa) { for (i = 0; i < (int)na; i++) { cp++; if (*cp == XA_3270) { trace_ds(" 3270"); cp++; ctlr_add_fa(buffer_addr, *cp, ea_buf[buffer_addr].cs); trace_ds("%s", see_attr(*cp)); } else if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) ctlr_add_fg(buffer_addr, *cp); } else if (*cp == XA_BACKGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) ctlr_add_bg(buffer_addr, *cp); } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; ctlr_add_gr(buffer_addr, *cp & 0x0f); } else if (*cp == XA_CHARSET) { int cs = 0; trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (*cp == 0xf1) cs = CS_APL; else if (*cp == 0xf8) cs = CS_DBCS; ctlr_add_cs(buffer_addr, cs); } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; } else if (*cp == XA_INPUT_CONTROL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); ctlr_add_ic(buffer_addr, (*(cp + 1) == 1)); cp++; } else { trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; } } INC_BA(buffer_addr); } else cp += na * 2; last_cmd = True; last_zpt = False; break; case ORDER_SFE: /* start field extended */ END_TEXT("StartFieldExtended"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cp++; /* skip order */ na = *cp; any_fa = 0; efa_fg = 0; efa_bg = 0; efa_gr = 0; efa_cs = 0; efa_ic = 0; for (i = 0; i < (int)na; i++) { cp++; if (*cp == XA_3270) { trace_ds(" 3270"); cp++; START_FIELD(*cp); any_fa++; } else if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) efa_fg = *cp; } else if (*cp == XA_BACKGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) efa_bg = *cp; } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; efa_gr = *cp & 0x07; } else if (*cp == XA_CHARSET) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (*cp == 0xf1) efa_cs = CS_APL; else if (dbcs && (*cp == 0xf8)) efa_cs = CS_DBCS; else efa_cs = CS_BASE; } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; } else if (*cp == XA_INPUT_CONTROL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (dbcs) efa_ic = (*(cp + 1) == 1); cp++; } else { trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; } } if (!any_fa) START_FIELD(0); ctlr_add_cs(buffer_addr, efa_cs); ctlr_add_fg(buffer_addr, efa_fg); ctlr_add_bg(buffer_addr, efa_bg); ctlr_add_gr(buffer_addr, efa_gr); ctlr_add_ic(buffer_addr, efa_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_SA: /* set attribute */ END_TEXT("SetAttribute"); previous = ORDER; cp++; if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (appres.m3279) default_fg = *(cp + 1); } else if (*cp == XA_BACKGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (appres.m3279) default_bg = *(cp + 1); } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_gr = *(cp + 1) & 0x0f; } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_fg = 0; default_bg = 0; default_gr = 0; default_cs = 0; default_ic = 0; } else if (*cp == XA_CHARSET) { trace_ds("%s", see_efa(*cp, *(cp + 1))); switch (*(cp + 1)) { case 0xf1: default_cs = CS_APL; break; case 0xf8: default_cs = CS_DBCS; break; default: default_cs = CS_BASE; break; } } else if (*cp == XA_INPUT_CONTROL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (*(cp + 1) == 1) default_ic = 1; else default_ic = 0; } else trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; last_cmd = True; last_zpt = False; break; case FCORDER_SUB: /* format control orders */ case FCORDER_DUP: case FCORDER_FM: case FCORDER_FF: case FCORDER_CR: case FCORDER_NL: case FCORDER_EM: case FCORDER_EO: END_TEXT(see_ebc(*cp)); previous = ORDER; d = ctlr_lookleft_state(buffer_addr, &why); if (default_cs == CS_DBCS || d != DBCS_NONE) { ABORT_WRITE("invalid format control order in DBCS field"); } ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case FCORDER_SO: /* Look left for errors. */ END_TEXT(see_ebc(*cp)); d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("SO overwriting right half of DBCS character"); } if (d != DBCS_NONE && why == DBCS_FIELD) { ABORT_WRITE("SO in DBCS field"); } if (d != DBCS_NONE && why == DBCS_SUBFIELD) { ABORT_WRITE("double SO"); } /* All is well. */ previous = ORDER; ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case FCORDER_SI: /* Look left for errors. */ END_TEXT(see_ebc(*cp)); d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("SI overwriting right half of DBCS character"); } if (d != DBCS_NONE && why == DBCS_FIELD) { ABORT_WRITE("SI in DBCS field"); } fa_addr = find_field_attribute(buffer_addr); baddr = buffer_addr; DEC_BA(baddr); while (!aborted && ((fa_addr >= 0 && baddr != fa_addr) || (fa_addr < 0 && baddr != ROWS*COLS - 1))) { if (ea_buf[baddr].cc == FCORDER_SI) { ABORT_WRITE("double SI"); } if (ea_buf[baddr].cc == FCORDER_SO) break; DEC_BA(baddr); } if (aborted) break; if (ea_buf[baddr].cc != FCORDER_SO) { ABORT_WRITE("SI without SO"); } /* All is well. */ previous = ORDER; ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case FCORDER_NULL: /* NULL or DBCS control char */ add_dbcs = False; d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("NULL overwriting right half of DBCS character"); } if (d != DBCS_NONE || default_cs == CS_DBCS) { add_c1 = EBC_null; cp++; if (cp >= buf + buflen) { ABORT_WRITE("missing second half of DBCS character"); } add_c2 = *cp; switch (add_c2) { case EBC_null: case EBC_nl: case EBC_em: case EBC_ff: case EBC_cr: case EBC_dup: case EBC_fm: /* DBCS control code */ END_TEXT(see_ebc(add_c2)); add_dbcs = True; break; case ORDER_SF: case ORDER_SFE: /* Dead position */ END_TEXT("DeadNULL"); cp--; break; default: trace_ds(" [invalid DBCS control character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; break; } if (aborted) break; } else { END_TEXT("NULL"); add_c1 = *cp; } previous = NULLCH; ctlr_add(buffer_addr, add_c1, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); if (add_dbcs) { ctlr_add(buffer_addr, add_c2, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } last_cmd = False; last_zpt = False; break; default: /* enter character */ if (*cp <= 0x3F) { END_TEXT("UnsupportedOrder"); trace_ds("(%02X)", *cp); previous = ORDER; last_cmd = True; last_zpt = False; break; } if (previous != TEXT) trace_ds(" '"); previous = TEXT; #if defined(X3270_DBCS) /*[*/ add_dbcs = False; d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("overwriting right half of DBCS character"); } if (d != DBCS_NONE || default_cs == CS_DBCS) { add_c1 = *cp; cp++; if (cp >= buf + buflen) { ABORT_WRITE("missing second half of DBCS character"); } add_c2 = *cp; if (add_c1 < 0x40 || add_c1 > 0xfe || add_c2 < 0x40 || add_c2 > 0xfe) { trace_ds(" [invalid DBCS character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; } add_dbcs = True; (void) ebcdic_to_multibyte( (add_c1 << 8) | add_c2, mb, sizeof(mb)); trace_ds_nb("%s", mb); } else { #endif /*]*/ add_c1 = *cp; trace_ds("%s", see_ebc(*cp)); #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ ctlr_add(buffer_addr, add_c1, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); #if defined(X3270_DBCS) /*[*/ if (add_dbcs) { ctlr_add(buffer_addr, add_c2, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } #endif /*]*/ last_cmd = False; last_zpt = False; break; } } set_formatted(); END_TEXT0; trace_ds("\n"); kybdlock_clr(KL_AWAITING_FIRST, "ctlr_write"); if (wcc_keyboard_restore) { aid = AID_NO; do_reset(False); } else if (kybdlock & KL_OIA_TWAIT) { kybdlock_clr(KL_OIA_TWAIT, "ctlr_write"); status_syswait(); } if (wcc_sound_alarm) ring_bell(); /* Set up the DBCS state. */ if (ctlr_dbcs_postprocess() < 0 && rv == PDS_OKAY_NO_OUTPUT) rv = PDS_BAD_ADDR; trace_primed = False; ps_process(); /* Let a script go. */ sms_host_output(); /* Tell 'em what happened. */ return rv; } #undef START_FIELDx #undef START_FIELD0 #undef START_FIELD #undef END_TEXT0 #undef END_TEXT #undef ABORT_WRITEx #undef ABORT_WRITE /* * Write SSCP-LU data, which is quite a bit dumber than regular 3270 * output. */ void ctlr_write_sscp_lu(unsigned char buf[], int buflen) { int i; unsigned char *cp = buf; int s_row; unsigned char c; int baddr; int text = False; /* * The 3174 Functionl Description says that anything but NL, NULL, FM, * or DUP is to be displayed as a graphic. However, to deal with * badly-behaved hosts, we filter out SF, IC and SBA sequences, and * we display other control codes as spaces. */ trace_ds("SSCP-LU data\n< "); for (i = 0; i < buflen; cp++, i++) { switch (*cp) { case FCORDER_NL: /* * Insert NULLs to the end of the line and advance to * the beginning of the next line. */ if (text) { trace_ds("'"); text = False; } trace_ds(" NL"); s_row = buffer_addr / COLS; while ((buffer_addr / COLS) == s_row) { ctlr_add(buffer_addr, EBC_null, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } break; case ORDER_SF: /* Some hosts forget they're talking SSCP-LU. */ cp++; i++; if (text) { trace_ds("'"); text = False; } trace_ds(" SF%s %s [translated to space]\n", rcba(buffer_addr), see_attr(*cp)); ctlr_add(buffer_addr, EBC_space, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); break; case ORDER_IC: if (text) { trace_ds("'"); text = False; } trace_ds(" IC%s [ignored]\n", rcba(buffer_addr)); break; case ORDER_SBA: baddr = DECODE_BADDR(*(cp+1), *(cp+2)); trace_ds(" SBA%s [ignored]\n", rcba(baddr)); cp += 2; i += 2; break; case ORDER_GE: cp++; if (++i >= buflen) break; if (*cp <= 0x40) c = EBC_space; else c = *cp; if (text) { trace_ds("'"); text = False; } trace_ds(" GE '%s'", see_ebc(c)); ctlr_add(buffer_addr, c, CS_GE); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); break; default: if (!text) { trace_ds(" '"); text = True; } trace_ds("%s", see_ebc(*cp)); ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); break; } } if (text) trace_ds("'"); trace_ds("\n"); cursor_move(buffer_addr); sscp_start = buffer_addr; /* Unlock the keyboard. */ aid = AID_NO; do_reset(False); /* Let a script go. */ sms_host_output(); } #if defined(X3270_DBCS) /*[*/ /* * Determine the DBCS state of a buffer location strictly by looking left. * Used only to validate write operations. * Returns only DBCS_LEFT, DBCS_RIGHT or DBCS_NONE. * Also returns whether the location is part of a DBCS field (SFE with the * DBCS character set), DBCS subfield (to the right of an SO within a non-DBCS * field), or DBCS attribute (has the DBCS character set extended attribute * within a non-DBCS field). * * This function should be used only to determine the legality of adding a * DBCS or SBCS character at baddr. */ enum dbcs_state ctlr_lookleft_state(int baddr, enum dbcs_why *why) { int faddr; int fdist; int xaddr; Boolean si = False; #define AT_END(f, b) \ (((f) < 0 && (b) == ROWS*COLS - 1) || \ ((f) >= 0 && (b) == (f))) /* If we're not in DBCS state, everything is DBCS_NONE. */ if (!dbcs) return DBCS_NONE; /* Find the field attribute, if any. */ faddr = find_field_attribute(baddr); /* * First in precedence is a DBCS field. * DBCS SA and SO/SI inside a DBCS field are errors, but are considered * defective DBCS characters. */ if (ea_buf[faddr].cs == CS_DBCS) { *why = DBCS_FIELD; fdist = (baddr + ROWS*COLS) - faddr; return (fdist % 2)? DBCS_LEFT: DBCS_RIGHT; } /* * The DBCS attribute takes precedence next. * SO and SI can appear within such a region, but they are single-byte * characters which effectively split it. */ if (ea_buf[baddr].cs == CS_DBCS) { if (ea_buf[baddr].cc == EBC_so || ea_buf[baddr].cc == EBC_si) return DBCS_NONE; xaddr = baddr; while (!AT_END(faddr, xaddr) && ea_buf[xaddr].cs == CS_DBCS && ea_buf[xaddr].cc != EBC_so && ea_buf[xaddr].cc != EBC_si) { DEC_BA(xaddr); } *why = DBCS_ATTRIBUTE; fdist = (baddr + ROWS*COLS) - xaddr; return (fdist % 2)? DBCS_LEFT: DBCS_RIGHT; } /* * Finally, look for a SO not followed by an SI. */ xaddr = baddr; DEC_BA(xaddr); while (!AT_END(faddr, xaddr)) { if (ea_buf[xaddr].cc == EBC_si) si = True; else if (ea_buf[xaddr].cc == EBC_so) { if (si) si = False; else { *why = DBCS_SUBFIELD; fdist = (baddr + ROWS*COLS) - xaddr; return (fdist % 2)? DBCS_LEFT: DBCS_RIGHT; } } DEC_BA(xaddr); } /* Nada. */ return DBCS_NONE; } static Boolean valid_dbcs_char(unsigned char c1, unsigned char c2) { if (c1 >= 0x40 && c1 < 0xff && c2 >= 0x40 && c2 < 0xff) return True; if (c1 != 0x00 || c2 < 0x40 || c2 >= 0xff) return False; switch (c2) { case EBC_null: case EBC_nl: case EBC_em: case EBC_ff: case EBC_cr: case EBC_dup: case EBC_fm: return True; default: return False; } } /* * Post-process DBCS state in the buffer. * This has two purposes: * * - Required post-processing validation, per the data stream spec, which can * cause the write operation to be rejected. * - Setting up the value of the all the db fields in ea_buf. * * This function is called at the end of every 3270 write operation, and also * after each batch of NVT write operations. It could also be called after * significant keyboard operations, but that might be too expensive. * * Returns 0 for success, -1 for failure. */ int ctlr_dbcs_postprocess(void) { int baddr; /* current buffer address */ int faddr0; /* address of first field attribute */ int faddr; /* address of current field attribute */ int last_baddr; /* last buffer address to search */ int pbaddr = -1; /* previous buffer address */ int dbaddr = -1; /* first data position of current DBCS (sub-) field */ Boolean so = False, si = False; Boolean dbcs_field = False; int rc = 0; /* If we're not in DBCS mode, do nothing. */ if (!dbcs) return 0; /* * Find the field attribute for location 0. If unformatted, it's the * dummy at -1. Also compute the starting and ending points for the * scan: the first location after that field attribute. */ faddr0 = find_field_attribute(0); baddr = faddr0; INC_BA(baddr); if (faddr0 < 0) last_baddr = 0; else last_baddr = faddr0; faddr = faddr0; dbcs_field = (ea_buf[faddr].cs & CS_MASK) == CS_DBCS; do { if (ea_buf[baddr].fa) { faddr = baddr; ea_buf[faddr].db = DBCS_NONE; dbcs_field = (ea_buf[faddr].cs & CS_MASK) == CS_DBCS; if (dbcs_field) { dbaddr = baddr; INC_BA(dbaddr); } else { dbaddr = -1; } /* * An SI followed by a field attribute shouldn't be * displayed with a wide cursor. */ if (pbaddr >= 0 && ea_buf[pbaddr].db == DBCS_SI) ea_buf[pbaddr].db = DBCS_NONE; } else { switch (ea_buf[baddr].cc) { case EBC_so: /* Two SO's or SO in DBCS field are invalid. */ if (so || dbcs_field) { trace_ds("DBCS postprocess: invalid SO " "found at %s\n", rcba(baddr)); rc = -1; } else { dbaddr = baddr; INC_BA(dbaddr); } ea_buf[baddr].db = DBCS_NONE; so = True; si = False; break; case EBC_si: /* Two SI's or SI in DBCS field are invalid. */ if (si || dbcs_field) { trace_ds("Postprocess: Invalid SO found " "at %s\n", rcba(baddr)); rc = -1; ea_buf[baddr].db = DBCS_NONE; } else { ea_buf[baddr].db = DBCS_SI; } dbaddr = -1; si = True; so = False; break; default: /* Non-base CS in DBCS subfield is invalid. */ if (so && ea_buf[baddr].cs != CS_BASE) { trace_ds("DBCS postprocess: invalid " "character set found at %s\n", rcba(baddr)); rc = -1; ea_buf[baddr].cs = CS_BASE; } if ((ea_buf[baddr].cs & CS_MASK) == CS_DBCS) { /* * Beginning or continuation of an SA DBCS * subfield. */ if (dbaddr < 0) { dbaddr = baddr; } } else if (!so && !dbcs_field) { /* * End of SA DBCS subfield. */ dbaddr = -1; } if (dbaddr >= 0) { /* * Turn invalid characters into spaces, * silently. */ if ((baddr + ROWS*COLS - dbaddr) % 2) { if (!valid_dbcs_char( ea_buf[pbaddr].cc, ea_buf[baddr].cc)) { ea_buf[pbaddr].cc = EBC_space; ea_buf[baddr].cc = EBC_space; } MAKE_RIGHT(baddr); } else { MAKE_LEFT(baddr); } } else ea_buf[baddr].db = DBCS_NONE; break; } } /* * Check for dead positions. * Turn them into NULLs, silently. */ if (pbaddr >= 0 && IS_LEFT(ea_buf[pbaddr].db) && !IS_RIGHT(ea_buf[baddr].db) && ea_buf[pbaddr].db != DBCS_DEAD) { if (!ea_buf[baddr].fa) { trace_ds("DBCS postprocess: dead position " "at %s\n", rcba(pbaddr)); rc = -1; } ea_buf[pbaddr].cc = EBC_null; ea_buf[pbaddr].db = DBCS_DEAD; } /* Check for SB's, which follow SIs. */ if (pbaddr >= 0 && ea_buf[pbaddr].db == DBCS_SI) ea_buf[baddr].db = DBCS_SB; /* Save this position as the previous and increment. */ pbaddr = baddr; INC_BA(baddr); } while (baddr != last_baddr); return rc; } #endif /*]*/ /* * Process pending input. */ void ps_process(void) { while (run_ta()) ; sms_continue(); #if defined(X3270_FT) /*[*/ /* Process file transfers. */ if (ft_state != FT_NONE && /* transfer in progress */ formatted && /* screen is formatted */ !screen_alt && /* 24x80 screen */ !kybdlock && /* keyboard not locked */ /* magic field */ ea_buf[1919].fa && FA_IS_SKIP(ea_buf[1919].fa)) { ft_cut_data(); } #endif /*]*/ } /* * Tell me if there is any data on the screen. */ Boolean ctlr_any_data(void) { register int i; for (i = 0; i < ROWS*COLS; i++) { if (!IsBlank(ea_buf[i].cc)) return True; } return False; } /* * Clear the text (non-status) portion of the display. Also resets the cursor * and buffer addresses and extended attributes. */ void ctlr_clear(Boolean can_snap) { /* Snap any data that is about to be lost into the trace file. */ if (ctlr_any_data()) { #if defined(X3270_TRACE) /*[*/ if (can_snap && !trace_skipping && toggled(SCREEN_TRACE)) trace_screen(); #endif /*]*/ scroll_save(maxROWS, ever_3270 ? False : True); } #if defined(X3270_TRACE) /*[*/ trace_skipping = False; #endif /*]*/ /* Clear the screen. */ (void) memset((char *)ea_buf, 0, ROWS*COLS*sizeof(struct ea)); ALL_CHANGED; cursor_move(0); buffer_addr = 0; unselect(0, ROWS*COLS); formatted = False; default_fg = 0; default_bg = 0; default_gr = 0; default_ic = 0; sscp_start = 0; } /* * Fill the screen buffer with blanks. */ static void ctlr_blanks(void) { int baddr; for (baddr = 0; baddr < maxROWS*maxCOLS; baddr++) { ea_buf[baddr].cc = EBC_space; } ALL_CHANGED; cursor_move(0); buffer_addr = 0; unselect(0, ROWS*COLS); formatted = False; } /* * Change a character in the 3270 buffer. * Removes any field attribute defined at that location. */ void ctlr_add(int baddr, unsigned char c, unsigned char cs) { unsigned char oc = 0; if (ea_buf[baddr].fa || ((oc = ea_buf[baddr].cc) != c || ea_buf[baddr].cs != cs)) { if (trace_primed && !IsBlank(oc)) { #if defined(X3270_TRACE) /*[*/ if (toggled(SCREEN_TRACE)) trace_screen(); #endif /*]*/ scroll_save(maxROWS, False); trace_primed = False; } if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].cc = c; ea_buf[baddr].cs = cs; ea_buf[baddr].fa = 0; } } /* * Set a field attribute in the 3270 buffer. */ void ctlr_add_fa(int baddr, unsigned char fa, unsigned char cs) { /* Put a null in the display buffer. */ ctlr_add(baddr, EBC_null, cs); /* * Store the new attribute, setting the 'printable' bits so that the * value will be non-zero. */ ea_buf[baddr].fa = FA_PRINTABLE | (fa & FA_MASK); } /* * Change the character set for a field in the 3270 buffer. */ void ctlr_add_cs(int baddr, unsigned char cs) { if (ea_buf[baddr].cs != cs) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].cs = cs; } } /* * Change the graphic rendition of a character in the 3270 buffer. */ void ctlr_add_gr(int baddr, unsigned char gr) { if (ea_buf[baddr].gr != gr) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].gr = gr; if (gr & GR_BLINK) blink_start(); } } /* * Change the foreground color for a character in the 3270 buffer. */ void ctlr_add_fg(int baddr, unsigned char color) { if (!appres.m3279) return; if ((color & 0xf0) != 0xf0) color = 0; if (ea_buf[baddr].fg != color) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].fg = color; } } /* * Change the background color for a character in the 3270 buffer. */ void ctlr_add_bg(int baddr, unsigned char color) { if (!appres.m3279) return; if ((color & 0xf0) != 0xf0) color = 0; if (ea_buf[baddr].bg != color) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].bg = color; } } /* * Change the input control bit for a character in the 3270 buffer. */ static void ctlr_add_ic(int baddr, unsigned char ic) { ea_buf[baddr].ic = ic; } /* * Wrapping bersion of ctlr_bcopy. */ void ctlr_wrapping_memmove(int baddr_to, int baddr_from, int count) { /* * The 'to' region, the 'from' region, or both can wrap the screen, * and can overlap each other. memmove() is smart enough to deal with * overlaps, but not across a screen wrap. * * It's faster to figure out if none of this is true, then do a slow * location-at-a-time version only if it happens. */ if (baddr_from + count <= ROWS*COLS && baddr_to + count <= ROWS*COLS) { ctlr_bcopy(baddr_from, baddr_to, count, True); } else { int i, from, to; for (i = 0; i < count; i++) { if (baddr_to > baddr_from) { /* Shifting right, move left. */ to = (baddr_to + count - 1 - i) % ROWS*COLS; from = (baddr_from + count - 1 - i) % ROWS*COLS; } else { /* Shifting left, move right. */ to = (baddr_to + i) % ROWS*COLS; from = (baddr_from + i) % ROWS*COLS; } ctlr_bcopy(from, to, 1, True); } } } /* * Copy a block of characters in the 3270 buffer, optionally including all of * the extended attributes. (The character set, which is actually kept in the * extended attributes, is considered part of the characters here.) */ void ctlr_bcopy(int baddr_from, int baddr_to, int count, int move_ea) { /* Move the characters. */ if (memcmp((char *) &ea_buf[baddr_from], (char *) &ea_buf[baddr_to], count * sizeof(struct ea))) { (void) memmove(&ea_buf[baddr_to], &ea_buf[baddr_from], count * sizeof(struct ea)); REGION_CHANGED(baddr_to, baddr_to + count); /* * For the time being, if any selected text shifts around on * the screen, unhighlight it. Eventually there should be * logic for preserving the highlight if the *all* of the * selected text moves. */ if (area_is_selected(baddr_to, count)) unselect(baddr_to, count); } /* XXX: What about move_ea? */ } #if defined(X3270_ANSI) /*[*/ /* * Erase a region of the 3270 buffer, optionally clearing extended attributes * as well. */ void ctlr_aclear(int baddr, int count, int clear_ea) { if (memcmp((char *) &ea_buf[baddr], (char *) zero_buf, count * sizeof(struct ea))) { (void) memset((char *) &ea_buf[baddr], 0, count * sizeof(struct ea)); REGION_CHANGED(baddr, baddr + count); if (area_is_selected(baddr, count)) unselect(baddr, count); } /* XXX: What about clear_ea? */ } /* * Scroll the screen 1 row. * * This could be accomplished with ctlr_bcopy() and ctlr_aclear(), but this * operation is common enough to warrant a separate path. */ void ctlr_scroll(void) { int qty = (ROWS - 1) * COLS; Boolean obscured; /* Make sure nothing is selected. (later this can be fixed) */ unselect(0, ROWS*COLS); /* Synchronize pending changes prior to this. */ obscured = screen_obscured(); if (!obscured && screen_changed) screen_disp(False); /* Move ea_buf. */ (void) memmove(&ea_buf[0], &ea_buf[COLS], qty * sizeof(struct ea)); /* Clear the last line. */ (void) memset((char *) &ea_buf[qty], 0, COLS * sizeof(struct ea)); /* Update the screen. */ if (obscured) { ALL_CHANGED; } else { screen_scroll(); } } #endif /*]*/ /* * Note that a particular region of the screen has changed. */ void ctlr_changed(int bstart, int bend) { REGION_CHANGED(bstart, bend); } #if defined(X3270_ANSI) /*[*/ /* * Swap the regular and alternate screen buffers */ void ctlr_altbuffer(Boolean alt) { struct ea *etmp; if (alt != is_altbuffer) { etmp = ea_buf; ea_buf = aea_buf; aea_buf = etmp; is_altbuffer = alt; ALL_CHANGED; unselect(0, ROWS*COLS); /* * There may be blinkers on the alternate screen; schedule one * iteration just in case. */ blink_start(); } } #endif /*]*/ /* * Set or clear the MDT on an attribute */ void mdt_set(int baddr) { int faddr; faddr = find_field_attribute(baddr); if (faddr >= 0 && !(ea_buf[faddr].fa & FA_MODIFY)) { ea_buf[faddr].fa |= FA_MODIFY; if (appres.modified_sel) ALL_CHANGED; } } void mdt_clear(int baddr) { int faddr; faddr = find_field_attribute(baddr); if (faddr >= 0 && (ea_buf[faddr].fa & FA_MODIFY)) { ea_buf[faddr].fa &= ~FA_MODIFY; if (appres.modified_sel) ALL_CHANGED; } } /* * Support for screen-size swapping for scrolling */ void ctlr_shrink(void) { int baddr; for (baddr = 0; baddr < ROWS*COLS; baddr++) { if (!ea_buf[baddr].fa) ea_buf[baddr].cc = visible_control? EBC_space : EBC_null; } ALL_CHANGED; screen_disp(False); } #if defined(X3270_DBCS) /*[*/ /* * DBCS state query. * Returns: * DBCS_NONE: Buffer position is SBCS. * DBCS_LEFT: Buffer position is left half of a DBCS character. * DBCS_RIGHT: Buffer position is right half of a DBCS character. * DBCS_SI: Buffer position is the SI terminating a DBCS subfield (treated * as DBCS_LEFT for wide cursor tests) * DBCS_SB: Buffer position is an SBCS character after an SI (treated as * DBCS_RIGHT for wide cursor tests) * * Takes line-wrapping into account, which probably isn't done all that well. */ enum dbcs_state ctlr_dbcs_state(int baddr) { return dbcs? ea_buf[baddr].db: DBCS_NONE; } #endif /*]*/ /* * Transaction timing. The time between sending an interrupt (PF, PA, Enter, * Clear) and the host unlocking the keyboard is indicated on the status line * to an accuracy of 0.1 seconds. If we don't repaint the screen before we see * the unlock, the time should be fairly accurate. */ static struct timeval t_start; static Boolean ticking = False; static Boolean mticking = False; static unsigned long tick_id; static struct timeval t_want; /* Return the difference in milliseconds between two timevals. */ static long delta_msec(struct timeval *t1, struct timeval *t0) { return (t1->tv_sec - t0->tv_sec) * 1000 + (t1->tv_usec - t0->tv_usec + 500) / 1000; } static void keep_ticking(void) { struct timeval t1; long msec; do { (void) gettimeofday(&t1, (struct timezone *) 0); t_want.tv_sec++; msec = delta_msec(&t_want, &t1); } while (msec <= 0); tick_id = AddTimeOut(msec, keep_ticking); status_timing(&t_start, &t1); } void ticking_start(Boolean anyway) { (void) gettimeofday(&t_start, (struct timezone *) 0); mticking = True; if (!toggled(SHOW_TIMING) && !anyway) return; status_untiming(); if (ticking) RemoveTimeOut(tick_id); ticking = True; tick_id = AddTimeOut(1000, keep_ticking); t_want = t_start; } static void ticking_stop(void) { struct timeval t1; (void) gettimeofday(&t1, (struct timezone *) 0); if (mticking) { sms_accumulate_time(&t_start, &t1); mticking = False; } else { return; } if (!ticking) return; RemoveTimeOut(tick_id); ticking = False; status_timing(&t_start, &t1); } void toggle_showTiming(struct toggle *t _is_unused, enum toggle_type tt _is_unused) { if (!toggled(SHOW_TIMING)) status_untiming(); } /* * No-op toggle. */ void toggle_nop(struct toggle *t _is_unused, enum toggle_type tt _is_unused) { } ibm-3270-3.3.10ga4/c3270/globals.h0000644000175000017500000002702011254565704015522 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2005, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes nor the * names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL AND JEFF SPARKES * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL OR JEFF * SPARKES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * globals.h * Common definitions for x3270, c3270, s3270 and tcl3270. */ /* Autoconf settings. */ #include "conf.h" /* autoconf settings */ #if defined(X3270_TN3270E) && !defined(X3270_ANSI) /*[*/ #define X3270_ANSI 1 /* RFC2355 requires NVT mode */ #endif /*]*/ #if defined(HAVE_VASPRINTF) && !defined(_GNU_SOURCE) /*[*/ #define _GNU_SOURCE /* vasprintf isn't POSIX */ #endif /*]*/ /* * OS-specific #defines. Except for the blocking-connect workarounds, these * should be replaced with autoconf probes as soon as possible. */ /* * BLOCKING_CONNECT_ONLY * Use only blocking sockets. */ #if defined(sco) /*[*/ #define BLOCKING_CONNECT_ONLY 1 #endif /*]*/ #if defined(apollo) /*[*/ #define BLOCKING_CONNECT_ONLY 1 #endif /*]*/ /* * Compiler-specific #defines. */ /* '_is_unused' explicitly flags an unused parameter */ #if defined(__GNUC__) /*[*/ #define _is_unused __attribute__((__unused__)) #define printflike(s,f) __attribute__ ((__format__ (__printf__, s, f))) #else /*][*/ #define _is_unused /* nothing */ #define printflike(s, f) /* nothing */ #endif /*]*/ /* * Prerequisite #includes. */ #include /* Unix standard I/O library */ #include /* Other Unix library functions */ #if !defined(_MSC_VER) /*[*/ #include /* Unix system calls */ #endif /*]*/ #include /* Character classes */ #include /* String manipulations */ #include /* Basic system data types */ #if !defined(_MSC_VER) /*[*/ #include /* System time-related data types */ #endif /*]*/ #include /* C library time functions */ #include "localdefs.h" /* {s,tcl,c}3270-specific defines */ /* * MSC glue. */ #if defined(_MSC_VER) /*[*/ #include /* for struct timeval */ extern int gettimeofday(struct timeval *, void *); #define R_OK 4 #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /*]*/ /* * Locale-related definitions. * Note that USE_ICONV can be used to override __STDC_ISO_10646__, so that * development of iconv-based logic can be done on 10646-compliant systems. */ #if defined(__STDC_ISO_10646__) && !defined(USE_ICONV) /*[*/ #define UNICODE_WCHAR 1 #endif /*]*/ #if !defined(_WIN32) && !defined(UNICODE_WCHAR) /*[*/ #undef USE_ICONV #define USE_ICONV 1 #include #endif /*]*/ /* * Unicode UCS-4 characters are (hopefully) 32 bits. * EBCDIC (including DBCS) is (hopefully) 16 bits. */ typedef unsigned int ucs4_t; typedef unsigned short ebc_t; /* * Cancel out contradictory parts. */ #if !defined(X3270_DISPLAY) /*[*/ #undef X3270_KEYPAD #undef X3270_MENUS #endif /*]*/ #if defined(C3270) && defined(X3270_DBCS) && !defined(CURSES_WIDE) /*[*/ #undef X3270_DBCS #endif /*]*/ /* Local process (-e) header files. */ #if defined(X3270_LOCAL_PROCESS) && defined(HAVE_FORKPTY) /*[*/ #define LOCAL_PROCESS 1 #include #if defined(HAVE_PTY_H) /*[*/ #include #endif /*]*/ #if defined(HAVE_LIBUTIL_H) /*[*/ #include #endif /*]*/ #if defined(HAVE_UTIL_H) /*[*/ #include #endif /*]*/ #endif /*]*/ /* Functions we may need to supply. */ #if defined(NEED_STRTOK_R) /*[*/ extern char *strtok_r(char *str, const char *sep, char **last); #endif /*]*/ /* Stop conflicting with curses' COLS, even if we don't link with it. */ #define COLS cCOLS /* Simple global variables */ extern int COLS; /* current */ extern int ROWS; extern int maxCOLS; /* maximum */ extern int maxROWS; extern int defROWS; /* default (EraseWrite) */ extern int defCOLS; extern int altROWS; /* alternate (EraseWriteAlternate) */ extern int altCOLS; #if defined(X3270_DISPLAY) /*[*/ extern Atom a_3270, a_registry, a_encoding; extern XtAppContext appcontext; #endif /*]*/ extern const char *build; extern const char *build_rpq_timestamp; extern const char *build_rpq_version; extern int children; extern char *connected_lu; extern char *connected_type; extern char *current_host; extern unsigned short current_port; #if defined(X3270_DBCS) /*[*/ extern Boolean dbcs; #endif /*]*/ #if defined(X3270_FT) /*[*/ extern int dft_buffersize; #endif /*]*/ extern char *efontname; extern Boolean ever_3270; extern Boolean exiting; #if defined(X3270_DISPLAY) /*[*/ extern Boolean *extended_3270font; extern Font *fid; extern Boolean *font_8bit; #endif /*]*/ extern Boolean flipped; extern char *full_current_host; extern char *full_efontname; #if defined(X3270_DBCS) /*[*/ extern char *full_efontname_dbcs; #endif /*]*/ extern char full_model_name[]; extern char *funky_font; extern char *hostname; #if defined(X3270_DBCS) /*[*/ #if defined(X3270_DISPLAY) /*[*/ extern char *locale_name; #endif /*]*/ #endif /*]*/ extern char luname[]; #if defined(LOCAL_PROCESS) /*[*/ extern Boolean local_process; #endif /*]*/ extern char *model_name; extern int model_num; extern Boolean no_login_host; extern Boolean non_tn3270e_host; extern int ov_cols, ov_rows; extern Boolean ov_auto; extern Boolean passthru_host; extern const char *programname; extern char *qualified_host; extern char *reconnect_host; extern int screen_depth; extern Boolean scroll_initted; #if defined(HAVE_LIBSSL) /*[*/ extern Boolean secure_connection; #endif /*]*/ extern Boolean shifted; extern Boolean ssl_host; extern Boolean *standard_font; extern Boolean std_ds_host; extern char *termtype; extern Widget toplevel; extern Boolean visible_control; extern int *xtra_width; #if defined(X3270_DISPLAY) /*[*/ extern Atom a_delete_me; extern Atom a_save_yourself; extern Atom a_state; extern Display *display; extern Pixmap gray; extern Pixel keypadbg_pixel; extern XrmDatabase rdb; extern Window root_window; extern char *user_title; #endif /*]*/ #if defined(_WIN32) && (defined(C3270) || defined(S3270)) /*[*/ extern char *instdir; extern char *myappdata; #endif /*]*/ #if defined(_WIN32) && defined(C3270) /*[*/ extern int is_installed; #endif /*]*/ /* Data types and complex global variables */ /* connection state */ enum cstate { NOT_CONNECTED, /* no socket, unknown mode */ RESOLVING, /* resolving hostname */ PENDING, /* connection pending */ CONNECTED_INITIAL, /* connected, no mode yet */ CONNECTED_ANSI, /* connected in NVT ANSI mode */ CONNECTED_3270, /* connected in old-style 3270 mode */ CONNECTED_INITIAL_E, /* connected in TN3270E mode, unnegotiated */ CONNECTED_NVT, /* connected in TN3270E mode, NVT mode */ CONNECTED_SSCP, /* connected in TN3270E mode, SSCP-LU mode */ CONNECTED_TN3270E /* connected in TN3270E mode, 3270 mode */ }; extern enum cstate cstate; #define PCONNECTED ((int)cstate >= (int)RESOLVING) #define HALF_CONNECTED (cstate == RESOLVING || cstate == PENDING) #define CONNECTED ((int)cstate >= (int)CONNECTED_INITIAL) #define IN_NEITHER (cstate == CONNECTED_INITIAL) #define IN_ANSI (cstate == CONNECTED_ANSI || cstate == CONNECTED_NVT) #define IN_3270 (cstate == CONNECTED_3270 || cstate == CONNECTED_TN3270E || cstate == CONNECTED_SSCP) #define IN_SSCP (cstate == CONNECTED_SSCP) #define IN_TN3270E (cstate == CONNECTED_TN3270E) #define IN_E (cstate >= CONNECTED_INITIAL_E) /* keyboard modifer bitmap */ #define ShiftKeyDown 0x01 #define MetaKeyDown 0x02 #define AltKeyDown 0x04 /* toggle names */ struct toggle_name { const char *name; int index; }; extern struct toggle_name toggle_names[]; /* extended attributes */ struct ea { unsigned char cc; /* EBCDIC or ASCII character code */ unsigned char fa; /* field attribute, it nonzero */ unsigned char fg; /* foreground color (0x00 or 0xf) */ unsigned char bg; /* background color (0x00 or 0xf) */ unsigned char gr; /* ANSI graphics rendition bits */ unsigned char cs; /* character set (GE flag, or 0..2) */ unsigned char ic; /* input control (DBCS) */ unsigned char db; /* DBCS state */ }; #define GR_BLINK 0x01 #define GR_REVERSE 0x02 #define GR_UNDERLINE 0x04 #define GR_INTENSIFY 0x08 #define CS_MASK 0x03 /* mask for specific character sets */ #define CS_BASE 0x00 /* base character set (X'00') */ #define CS_APL 0x01 /* APL character set (X'01' or GE) */ #define CS_LINEDRAW 0x02 /* DEC line-drawing character set (ANSI) */ #define CS_DBCS 0x03 /* DBCS character set (X'F8') */ #define CS_GE 0x04 /* cs flag for Graphic Escape */ /* translation lists */ struct trans_list { char *name; char *pathname; Boolean is_temp; Boolean from_server; struct trans_list *next; }; extern struct trans_list *trans_list; /* input key type */ enum keytype { KT_STD, KT_GE }; /* state changes */ #define ST_RESOLVING 1 #define ST_HALF_CONNECT 2 #define ST_CONNECT 3 #define ST_3270_MODE 4 #define ST_LINE_MODE 5 #define ST_REMODEL 6 #define ST_PRINTER 7 #define ST_EXITING 8 #define ST_CHARSET 9 #define N_ST 10 /* Naming convention for private actions. */ #define PA_PFX "PA-" /* Shorthand macros */ #define CN ((char *) NULL) #define PN ((XtPointer) NULL) #define Replace(var, value) { Free(var); var = (value); } /* Configuration change masks. */ #define NO_CHANGE 0x0000 /* no change */ #define MODEL_CHANGE 0x0001 /* screen dimensions changed */ #define FONT_CHANGE 0x0002 /* emulator font changed */ #define COLOR_CHANGE 0x0004 /* color scheme or 3278/9 mode changed */ #define SCROLL_CHANGE 0x0008 /* scrollbar snapped on or off */ #define CHARSET_CHANGE 0x0010 /* character set changed */ #define ALL_CHANGE 0xffff /* everything changed */ /* Portability macros */ /* Equivalent of setlinebuf */ #if defined(_IOLBF) /*[*/ #define SETLINEBUF(s) setvbuf(s, (char *)NULL, _IOLBF, BUFSIZ) #else /*][*/ #define SETLINEBUF(s) setlinebuf(s) #endif /*]*/ /* Motorola version of gettimeofday */ #if defined(MOTOROLA) #define gettimeofday(tp,tz) gettimeofday(tp) #endif /* Default DFT file transfer buffer size. */ #if defined(X3270_FT) && !defined(DFT_BUF) /*[*/ #define DFT_BUF (4 * 1024) #endif /*]*/ /* DBCS Preedit Types */ #if defined(X3270_DBCS) /*[*/ #define PT_ROOT "Root" #define PT_OVER_THE_SPOT "OverTheSpot" #define PT_OFF_THE_SPOT "OffTheSpot" #define PT_ON_THE_SPOT "OnTheSpot" #endif /*]*/ ibm-3270-3.3.10ga4/c3270/keymapc.h0000644000175000017500000000343211254565674015537 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* c3270 version of keymapc.h */ #define KM_CTRL 0x0001 #define KM_ALT 0x0002 extern void keymap_init(void); extern char *lookup_key(int k, ucs4_t ucs4, int modifiers); extern void keymap_dump(void); extern const char *decode_key(int k, ucs4_t ucs4, int hint, char *buf); ibm-3270-3.3.10ga4/c3270/idle.c0000644000175000017500000004453711254565704015023 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * idle.c * This module handles the idle command. */ #include "globals.h" #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #include #include #include #include #include #include #include #include #endif /*]*/ #include #include "appres.h" #include "dialogc.h" #include "hostc.h" #include "idlec.h" #include "macrosc.h" #include "objects.h" #include "popupsc.h" #include "resources.h" #include "trace_dsc.h" #include "utilc.h" /* Macros. */ #define MSEC_PER_SEC 1000L #define IDLE_SEC 1L #define IDLE_MIN 60L #define IDLE_HR (60L * 60L) #define IDLE_MS (7L * IDLE_MIN * MSEC_PER_SEC) #if defined(X3270_DISPLAY) /*[*/ #define FILE_WIDTH 300 /* width of file name widgets */ #define MARGIN 3 /* distance from margins to widgets */ #define CLOSE_VGAP 0 /* distance between paired toggles */ #define FAR_VGAP 10 /* distance between single toggles and groups */ #define BUTTON_GAP 5 /* horizontal distance between buttons */ #endif /*]*/ #define BN (Boolean *)NULL /* Externals. */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ extern Pixmap diamond; extern Pixmap no_diamond; extern Pixmap dot; extern Pixmap no_dot; #endif /*]*/ /* Globals. */ Boolean idle_changed = False; char *idle_command = CN; char *idle_timeout_string = CN; enum idle_enum idle_user_enabled = IDLE_DISABLED; /* Statics. */ static Boolean idle_enabled = False; /* validated and user-enabled */ static unsigned long idle_n = 0L; static unsigned long idle_multiplier = IDLE_SEC; static unsigned long idle_id; static unsigned long idle_ms; static Boolean idle_randomize = False; static Boolean idle_ticking = False; static void idle_in3270(Boolean in3270); static int process_timeout_value(char *t); #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static enum idle_enum s_disabled = IDLE_DISABLED; static enum idle_enum s_session = IDLE_SESSION; static enum idle_enum s_perm = IDLE_PERM; static char hms = 'm'; static Boolean fuzz = False; static char s_hours = 'h'; static char s_minutes = 'm'; static char s_seconds = 's'; static Widget idle_dialog, idle_shell, command_value, timeout_value; static Widget enable_toggle, enable_perm_toggle, disable_toggle; static Widget hours_toggle, minutes_toggle, seconds_toggle, fuzz_toggle; static sr_t *idle_sr = (sr_t *)NULL; static void idle_cancel(Widget w, XtPointer client_data, XtPointer call_data); static void idle_popup_callback(Widget w, XtPointer client_data, XtPointer call_data); static void idle_popup_init(void); static int idle_start(void); static void okay_callback(Widget w, XtPointer call_parms, XtPointer call_data); static void toggle_enable(Widget w, XtPointer client_data, XtPointer call_data); static void mark_toggle(Widget w, Pixmap p); static void toggle_hms(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_fuzz(Widget w, XtPointer client_data, XtPointer call_data); #endif /*]*/ /* Initialization. */ void idle_init(void) { char *cmd, *tmo; /* Register for state changes. */ register_schange(ST_3270_MODE, idle_in3270); register_schange(ST_CONNECT, idle_in3270); /* Get values from resources. */ cmd = appres.idle_command; idle_command = cmd? NewString(cmd): CN; tmo = appres.idle_timeout; idle_timeout_string = tmo? NewString(tmo): CN; if (appres.idle_command_enabled) idle_user_enabled = IDLE_PERM; else idle_user_enabled = IDLE_DISABLED; if (idle_user_enabled && idle_command != CN && process_timeout_value(idle_timeout_string) == 0) idle_enabled = True; /* Seed the random number generator (we seem to be the only user). */ #if defined(_WIN32) /*[*/ srand(time(NULL)); #else /*][*/ srandom(time(NULL)); #endif /*]*/ } /* * Process a timeout value: or ~?[0-9]+[HhMmSs] * Returns 0 for success, -1 for failure. * Sets idle_ms and idle_randomize as side-effects. */ static int process_timeout_value(char *t) { char *s = t; char *ptr; if (s == CN || *s == '\0') { idle_ms = IDLE_MS; idle_randomize = True; return 0; } if (*s == '~') { idle_randomize = True; s++; } idle_n = strtoul(s, &ptr, 0); if (idle_n <= 0) goto bad_idle; switch (*ptr) { case 'H': case 'h': idle_multiplier = IDLE_HR; break; case 'M': case 'm': idle_multiplier = IDLE_MIN; break; case 'S': case 's': case '\0': idle_multiplier = IDLE_SEC; break; default: goto bad_idle; } idle_ms = idle_n * idle_multiplier * MSEC_PER_SEC; return 0; bad_idle: popup_an_error("Invalid idle timeout value '%s'", t); idle_ms = 0L; idle_randomize = False; return -1; } /* Called when a host connects or disconnects. */ static void idle_in3270(Boolean in3270 _is_unused) { if (IN_3270) { reset_idle_timer(); } else { /* Not in 3270 mode any more, turn off the timeout. */ if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } /* If the user didn't want it to be permanent, disable it. */ if (idle_user_enabled != IDLE_PERM) idle_user_enabled = IDLE_DISABLED; } } /* * Idle timeout. */ static void idle_timeout(void) { trace_event("Idle timeout\n"); idle_ticking = False; push_idle(idle_command); reset_idle_timer(); } /* * Reset (and re-enable) the idle timer. Called when the user presses a key or * clicks with the mouse. */ void reset_idle_timer(void) { if (idle_enabled) { unsigned long idle_ms_now; if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } idle_ms_now = idle_ms; if (idle_randomize) { idle_ms_now = idle_ms; #if defined(_WIN32) /*[*/ idle_ms_now -= rand() % (idle_ms / 10L); #else /*][*/ idle_ms_now -= random() % (idle_ms / 10L); #endif /*]*/ } #if defined(DEBUG_IDLE_TIMEOUT) /*[*/ trace_event("Setting idle timeout to %lu\n", idle_ms_now); #endif /*]*/ idle_id = AddTimeOut(idle_ms_now, idle_timeout); idle_ticking = True; } } /* * Cancel the idle timer. This is called when there is an error in * processing the idle command. */ void cancel_idle_timer(void) { if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } idle_enabled = False; } char * get_idle_command(void) { return idle_command; } char * get_idle_timeout(void) { return idle_timeout_string; } #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ /* "Idle Command" dialog. */ /* * Pop up the "Idle" menu. * Called back from the "Configure Idle Command" option on the Options menu. */ void popup_idle(void) { char *its; char *s; /* Initialize it. */ if (idle_shell == (Widget)NULL) idle_popup_init(); /* * Split the idle_timeout_string (the raw resource value) into fuzz, * a number, and h/m/s. */ its = NewString(idle_timeout_string); if (its != CN) { if (*its == '~') { fuzz = True; its++; } else { fuzz = False; } s = its; while (isdigit(*s)) s++; switch (*s) { case 'h': case 'H': hms = 'h'; break; case 'm': case 'M': hms = 'm'; break; case 's': case 'S': hms = 's'; break; default: break; } *s = '\0'; } /* Set the resource values. */ dialog_set(&idle_sr, idle_dialog); XtVaSetValues(command_value, XtNstring, idle_command, NULL); XtVaSetValues(timeout_value, XtNstring, its, NULL); mark_toggle(enable_toggle, (idle_user_enabled == IDLE_SESSION)? diamond : no_diamond); mark_toggle(enable_perm_toggle, (idle_user_enabled == IDLE_PERM)? diamond : no_diamond); mark_toggle(disable_toggle, (idle_user_enabled == IDLE_DISABLED)? diamond : no_diamond); mark_toggle(hours_toggle, (hms == 'h') ? diamond : no_diamond); mark_toggle(minutes_toggle, (hms == 'm') ? diamond : no_diamond); mark_toggle(seconds_toggle, (hms == 's') ? diamond : no_diamond); mark_toggle(fuzz_toggle, fuzz ? dot : no_dot); /* Pop it up. */ popup_popup(idle_shell, XtGrabNone); } /* Initialize the idle pop-up. */ static void idle_popup_init(void) { Widget w; Widget cancel_button; Widget command_label, timeout_label; Widget okay_button; /* Prime the dialog functions. */ dialog_set(&idle_sr, idle_dialog); /* Create the menu shell. */ idle_shell = XtVaCreatePopupShell( "idlePopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(idle_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(idle_shell, XtNpopupCallback, idle_popup_callback, (XtPointer)NULL); /* Create the form within the shell. */ idle_dialog = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, idle_shell, NULL); /* Create the file name widgets. */ command_label = XtVaCreateManagedWidget( "command", labelWidgetClass, idle_dialog, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); command_value = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, idle_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNvertDistance, FAR_VGAP, XtNfromHoriz, command_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(command_label, command_value, XtNheight); w = XawTextGetSource(command_value); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_command); dialog_register_sensitivity(command_value, BN, False, BN, False, BN, False); timeout_label = XtVaCreateManagedWidget( "timeout", labelWidgetClass, idle_dialog, XtNfromVert, command_label, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); timeout_value = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, idle_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNdisplayCaret, False, XtNfromVert, command_label, XtNvertDistance, 3, XtNfromHoriz, timeout_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(timeout_label, timeout_value, XtNheight); dialog_match_dimension(command_label, timeout_label, XtNwidth); w = XawTextGetSource(timeout_value); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(timeout_value, BN, False, BN, False, BN, False); /* Create the hour/minute/seconds radio buttons. */ hours_toggle = XtVaCreateManagedWidget( "hours", commandWidgetClass, idle_dialog, XtNfromVert, timeout_value, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(hours_toggle, no_diamond); XtAddCallback(hours_toggle, XtNcallback, toggle_hms, (XtPointer)&s_hours); minutes_toggle = XtVaCreateManagedWidget( "minutes", commandWidgetClass, idle_dialog, XtNfromVert, timeout_value, XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, hours_toggle, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(minutes_toggle, diamond); XtAddCallback(minutes_toggle, XtNcallback, toggle_hms, (XtPointer)&s_minutes); seconds_toggle = XtVaCreateManagedWidget( "seconds", commandWidgetClass, idle_dialog, XtNfromVert, timeout_value, XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, minutes_toggle, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(seconds_toggle, no_diamond); XtAddCallback(seconds_toggle, XtNcallback, toggle_hms, (XtPointer)&s_seconds); /* Create the fuzz toggle. */ fuzz_toggle = XtVaCreateManagedWidget( "fuzz", commandWidgetClass, idle_dialog, XtNfromVert, hours_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(fuzz_toggle, no_dot); XtAddCallback(fuzz_toggle, XtNcallback, toggle_fuzz, (XtPointer)NULL); /* Create enable/disable toggles. */ enable_toggle = XtVaCreateManagedWidget( "enable", commandWidgetClass, idle_dialog, XtNfromVert, fuzz_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(enable_toggle, (idle_user_enabled == IDLE_SESSION)? diamond : no_diamond); XtAddCallback(enable_toggle, XtNcallback, toggle_enable, (XtPointer)&s_session); enable_perm_toggle = XtVaCreateManagedWidget( "enablePerm", commandWidgetClass, idle_dialog, XtNfromVert, enable_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(enable_perm_toggle, (idle_user_enabled == IDLE_PERM)? diamond : no_diamond); XtAddCallback(enable_perm_toggle, XtNcallback, toggle_enable, (XtPointer)&s_perm); disable_toggle = XtVaCreateManagedWidget( "disable", commandWidgetClass, idle_dialog, XtNfromVert, enable_perm_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(disable_toggle, (idle_user_enabled == IDLE_DISABLED)? diamond : no_diamond); XtAddCallback(disable_toggle, XtNcallback, toggle_enable, (XtPointer)&s_disabled); /* Set up the buttons at the bottom. */ okay_button = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, idle_dialog, XtNfromVert, disable_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(okay_button, XtNcallback, okay_callback, (XtPointer)NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, idle_dialog, XtNfromVert, disable_toggle, XtNvertDistance, FAR_VGAP, XtNfromHoriz, okay_button, XtNhorizDistance, BUTTON_GAP, NULL); XtAddCallback(cancel_button, XtNcallback, idle_cancel, 0); } /* Callbacks for all the idle widgets. */ /* Idle pop-up popping up. */ static void idle_popup_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Set the focus to the command widget. */ PA_dialog_focus_action(command_value, (XEvent *)NULL, (String *)NULL, (Cardinal *)NULL); } /* Cancel button pushed. */ static void idle_cancel(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(idle_shell); } /* OK button pushed. */ static void okay_callback(Widget w _is_unused, XtPointer call_parms _is_unused, XtPointer call_data _is_unused) { if (idle_start() == 0) { idle_changed = True; XtPopdown(idle_shell); } } /* Mark a toggle. */ static void mark_toggle(Widget w, Pixmap p) { XtVaSetValues(w, XtNleftBitmap, p, NULL); } /* Hour/minute/second options. */ static void toggle_hms(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ hms = *(char *)client_data; /* Change the widget states. */ mark_toggle(hours_toggle, (hms == 'h') ? diamond : no_diamond); mark_toggle(minutes_toggle, (hms == 'm') ? diamond : no_diamond); mark_toggle(seconds_toggle, (hms == 's') ? diamond : no_diamond); } /* Fuzz option. */ static void toggle_fuzz(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ fuzz = !fuzz; /* Change the widget state. */ mark_toggle(fuzz_toggle, fuzz ? dot : no_dot); } /* Enable/disable options. */ static void toggle_enable(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ idle_user_enabled = *(enum idle_enum *)client_data; /* Change the widget states. */ mark_toggle(enable_toggle, (idle_user_enabled == IDLE_SESSION)? diamond: no_diamond); mark_toggle(enable_perm_toggle, (idle_user_enabled == IDLE_PERM)? diamond: no_diamond); mark_toggle(disable_toggle, (idle_user_enabled == IDLE_DISABLED)? diamond: no_diamond); } /* * Called when the user presses the OK button on the idle command dialog. * Returns 0 for success, -1 otherwise. */ static int idle_start(void) { char *cmd, *tmo, *its; /* Update the globals, so the dialog has the same values next time. */ XtVaGetValues(command_value, XtNstring, &cmd, NULL); Replace(idle_command, NewString(cmd)); XtVaGetValues(timeout_value, XtNstring, &tmo, NULL); its = Malloc(strlen(tmo) + 3); (void) sprintf(its, "%s%s%c", fuzz? "~": "", tmo, hms); Replace(idle_timeout_string, its); /* See if they've turned it off. */ if (!idle_user_enabled) { /* If they're turned it off, cancel the timer. */ idle_enabled = False; if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } return 0; } /* They've turned it on, and possibly reconfigured it. */ /* Validate the timeout. It should work, yes? */ if (process_timeout_value(its) < 0) { return -1; } /* Seems okay. Reset to the new interval and command. */ idle_enabled = True; if (IN_3270) { reset_idle_timer(); } return 0; } #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/c3270/unicodec.h0000644000175000017500000000640511254565704015674 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* EBCDIC-to-Unicode options */ #define EUO_NONE 0x00000000 /* no options */ #define EUO_BLANK_UNDEF 0x00000001 /* if undefined, return U+0020 */ #define EUO_UPRIV 0x00000002 /* translate FM/DUP/SUB/EO to UPRIV */ #define EUO_ASCII_BOX 0x00000004 /* use ASCII for box drawing */ extern ucs4_t ebcdic_to_unicode(ebc_t e, unsigned char cs, unsigned flags); extern ucs4_t ebcdic_base_to_unicode(ebc_t e, unsigned flags); extern ebc_t unicode_to_ebcdic(ucs4_t u); extern ebc_t unicode_to_ebcdic_ge(ucs4_t u, Boolean *ge); extern int set_uni(const char *csname, const char **host_codepage, const char **cgcsgid, const char **display_charsets); extern int linedraw_to_unicode(ebc_t e); extern int apl_to_unicode(ebc_t e, unsigned flags); #if !defined(_WIN32) && !defined(UNICODE_WCHAR) /*[*/ extern iconv_t i_u2mb; extern iconv_t i_mb2u; #endif /*]*/ extern int ebcdic_to_multibyte_x(ebc_t ebc, unsigned char cs, char mb[], int mb_len, unsigned flags, ucs4_t *uc); extern int ebcdic_to_multibyte(ebc_t ebc, char mb[], int mb_len); extern int ebcdic_to_multibyte_string(unsigned char *ebc, size_t ebc_len, char mb[], size_t mb_len); extern int mb_max_len(int len); enum me_fail { ME_NONE, /* no error */ ME_INVALID, /* invalid sequence */ ME_SHORT /* incomplete sequence */ }; extern ucs4_t multibyte_to_unicode(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp); extern int multibyte_to_unicode_string(char *mb, size_t mb_len, ucs4_t *ucs4, size_t u_len); extern ebc_t multibyte_to_ebcdic(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp); extern int multibyte_to_ebcdic_string(char *mb, size_t mb_len, unsigned char *ebc, size_t ebc_len, enum me_fail *errorp); extern int unicode_to_multibyte(ucs4_t ucs4, char *mb, size_t mb_len); ibm-3270-3.3.10ga4/c3270/configure0000755000175000017500000074135011256024436015640 0ustar bastianbastian#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.63. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell bug-autoconf@gnu.org about your system, echo including any error possibly output before this message. echo This can help us improve future autoconf versions. echo Configuration will now proceed without shell functions. } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="c3270.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='LTLIBOBJS LIBOBJS SSL DBCS LIBX3270DIR MOREPATH LESSPATH CURSES_WIDE USE_ICONV EGREP GREP CPP BROKEN_NEWTERM XPRECOMP XANSI XPOSIX host_os host_vendor host_cpu host build_os build_vendor build_cpu build OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking with_readline with_iconv with_ssl enable_ansi enable_apl enable_dbcs enable_ft enable_local_process enable_printer enable_script enable_ssl enable_tn3270e enable_trace enable_history ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { $as_echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { $as_echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 { (exit 1); exit 1; }; } ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { $as_echo "$as_me: error: working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-ansi leave out NVT (ANSI) support --disable-apl leave out APL character support --disable-dbcs leave out DBCS support --disable-ft leave out file transfer support --disable-local-process leave out local process support --disable-printer leave out printer session support --disable-script leave out scripting support --disable-ssl leave out OpenSSL support --disable-tn3270e leave out TN3270E support --disable-trace leave out tracing support --enable-history include experimental history support Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --without-readline Don't use the readline library --with-iconv ignore __STDC_ISO_10646__ and use iconv() instead --with-ssl=DIR specify OpenSSL install directory Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 $as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers conf.h" ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 $as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 $as_echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { $as_echo "$as_me:$LINENO: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } if test -z "$ac_file"; then $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 $as_echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi fi fi { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } { $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } { $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest$ac_cv_exeext { $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:$LINENO: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:$LINENO: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 $as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { $as_echo "$as_me:$LINENO: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 $as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 $as_echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:$LINENO: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 $as_echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac XPOSIX="" XANSI="" case "$host_os" in hpux) XPOSIX=-D_XOPEN_SOURCE_EXTENDED ;; solaris2*) XANSI=-D__EXTENSIONS__ ;; darwin*) XPRECOMP=-no-cpp-precomp ;; linux*) XANSI="-D_POSIX_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE" ;; aix*) BROKEN_NEWTERM=1 ;; esac # Check whether --with-readline was given. if test "${with_readline+set}" = set; then withval=$with_readline; fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:$LINENO: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 $as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:$LINENO: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking whether __STDC_ISO_10646__ is declared" >&5 $as_echo_n "checking whether __STDC_ISO_10646__ is declared... " >&6; } if test "${ac_cv_have_decl___STDC_ISO_10646__+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { #ifndef __STDC_ISO_10646__ (void) __STDC_ISO_10646__; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl___STDC_ISO_10646__=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl___STDC_ISO_10646__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl___STDC_ISO_10646__" >&5 $as_echo "$ac_cv_have_decl___STDC_ISO_10646__" >&6; } if test "x$ac_cv_have_decl___STDC_ISO_10646__" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL___STDC_ISO_10646__ 1 _ACEOF unset unkw else cat >>confdefs.h <<_ACEOF #define HAVE_DECL___STDC_ISO_10646__ 0 _ACEOF unkw=1 fi # Check whether --with-iconv was given. if test "${with_iconv+set}" = set; then withval=$with_iconv; fi case "$with_iconv" in no|"") ;; yes|*) cat >>confdefs.h <<\_ACEOF #define USE_ICONV 1 _ACEOF unkw=1 ;; esac { $as_echo "$as_me:$LINENO: checking for library containing forkpty" >&5 $as_echo_n "checking for library containing forkpty... " >&6; } if test "${ac_cv_search_forkpty+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char forkpty (); int main () { return forkpty (); ; return 0; } _ACEOF for ac_lib in '' util; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_forkpty=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_forkpty+set}" = set; then break fi done if test "${ac_cv_search_forkpty+set}" = set; then : else ac_cv_search_forkpty=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_forkpty" >&5 $as_echo "$ac_cv_search_forkpty" >&6; } ac_res=$ac_cv_search_forkpty if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi for ac_func in forkpty do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 $as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_var=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking for newterm in -lncursesw" >&5 $as_echo_n "checking for newterm in -lncursesw... " >&6; } if test "${ac_cv_lib_ncursesw_newterm+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lncursesw $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char newterm (); int main () { return newterm (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_ncursesw_newterm=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ncursesw_newterm=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ncursesw_newterm" >&5 $as_echo "$ac_cv_lib_ncursesw_newterm" >&6; } if test "x$ac_cv_lib_ncursesw_newterm" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBNCURSESW 1 _ACEOF LIBS="-lncursesw $LIBS" else { $as_echo "$as_me:$LINENO: checking for newterm in -lncurses" >&5 $as_echo_n "checking for newterm in -lncurses... " >&6; } if test "${ac_cv_lib_ncurses_newterm+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lncurses $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char newterm (); int main () { return newterm (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_ncurses_newterm=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ncurses_newterm=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_newterm" >&5 $as_echo "$ac_cv_lib_ncurses_newterm" >&6; } if test "x$ac_cv_lib_ncurses_newterm" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBNCURSES 1 _ACEOF LIBS="-lncurses $LIBS" else { $as_echo "$as_me:$LINENO: checking for newterm in -lcurses" >&5 $as_echo_n "checking for newterm in -lcurses... " >&6; } if test "${ac_cv_lib_curses_newterm+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcurses $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char newterm (); int main () { return newterm (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_curses_newterm=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_curses_newterm=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_curses_newterm" >&5 $as_echo "$ac_cv_lib_curses_newterm" >&6; } if test "x$ac_cv_lib_curses_newterm" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBCURSES 1 _ACEOF LIBS="-lcurses $LIBS" else { { $as_echo "$as_me:$LINENO: error: Can't find libncurses or new-enough libcurses" >&5 $as_echo "$as_me: error: Can't find libncurses or new-enough libcurses" >&2;} { (exit 1); exit 1; }; } fi fi fi if test "$with_readline" != no; then { $as_echo "$as_me:$LINENO: checking for rl_initialize in -lreadline" >&5 $as_echo_n "checking for rl_initialize in -lreadline... " >&6; } if test "${ac_cv_lib_readline_rl_initialize+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lreadline $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char rl_initialize (); int main () { return rl_initialize (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_readline_rl_initialize=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_readline_rl_initialize=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_readline_rl_initialize" >&5 $as_echo "$ac_cv_lib_readline_rl_initialize" >&6; } if test "x$ac_cv_lib_readline_rl_initialize" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBREADLINE 1 _ACEOF LIBS="-lreadline $LIBS" fi fi { $as_echo "$as_me:$LINENO: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if test "${ac_cv_search_gethostbyname+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF for ac_lib in '' nsl; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_gethostbyname=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_gethostbyname+set}" = set; then break fi done if test "${ac_cv_search_gethostbyname+set}" = set; then : else ac_cv_search_gethostbyname=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_gethostbyname" >&5 $as_echo "$ac_cv_search_gethostbyname" >&6; } ac_res=$ac_cv_search_gethostbyname if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:$LINENO: checking for library containing socket" >&5 $as_echo_n "checking for library containing socket... " >&6; } if test "${ac_cv_search_socket+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char socket (); int main () { return socket (); ; return 0; } _ACEOF for ac_lib in '' socket; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_socket=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_socket+set}" = set; then break fi done if test "${ac_cv_search_socket+set}" = set; then : else ac_cv_search_socket=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_socket" >&5 $as_echo "$ac_cv_search_socket" >&6; } ac_res=$ac_cv_search_socket if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi for ac_header in iconv.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking for library containing libiconv" >&5 $as_echo_n "checking for library containing libiconv... " >&6; } if test "${ac_cv_search_libiconv+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char libiconv (); int main () { return libiconv (); ; return 0; } _ACEOF for ac_lib in '' iconv; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_libiconv=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_libiconv+set}" = set; then break fi done if test "${ac_cv_search_libiconv+set}" = set; then : else ac_cv_search_libiconv=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_libiconv" >&5 $as_echo "$ac_cv_search_libiconv" >&6; } ac_res=$ac_cv_search_libiconv if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else { $as_echo "$as_me:$LINENO: checking for library containing iconv" >&5 $as_echo_n "checking for library containing iconv... " >&6; } if test "${ac_cv_search_iconv+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char iconv (); int main () { return iconv (); ; return 0; } _ACEOF for ac_lib in '' iconv; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_iconv=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_iconv+set}" = set; then break fi done if test "${ac_cv_search_iconv+set}" = set; then : else ac_cv_search_iconv=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_iconv" >&5 $as_echo "$ac_cv_search_iconv" >&6; } ac_res=$ac_cv_search_iconv if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else if test "$unkw"; then { { $as_echo "$as_me:$LINENO: error: \"No iconv library function\"" >&5 $as_echo "$as_me: error: \"No iconv library function\"" >&2;} { (exit 1); exit 1; }; }; fi fi fi if test -n "$BROKEN_NEWTERM" then if test "$ac_cv_lib_ncurses_newterm" = yes then : else cat >>confdefs.h <<\_ACEOF #define BROKEN_NEWTERM 1 _ACEOF fi fi for ac_header in sys/select.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in readline/history.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in pty.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in libutil.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in util.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in getopt.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in ncursesw/ncurses.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else for ac_header in ncurses/ncurses.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else for ac_header in ncurses.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else for ac_header in curses.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else { { $as_echo "$as_me:$LINENO: error: No curses header file" >&5 $as_echo "$as_me: error: No curses header file" >&2;} { (exit 1); exit 1; }; } fi done fi done fi done fi done # Check whether --with-ssl was given. if test "${with_ssl+set}" = set; then withval=$with_ssl; fi if test "$enable_ssl" != no then orig_CPPFLAGS="$CPPFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/local/ssl /usr/lib/ssl /usr/pkg/ssl /usr/ssl /var/ssl /opt/ssl do header_fail=0 if test -n "$dir" -a ! -d "$dir/include" then header_fail=1 continue fi if test -n "$any" then { $as_echo "$as_me:$LINENO: retrying with -I$dir/include" >&5 $as_echo "$as_me: retrying with -I$dir/include" >&6;} fi if test -n "$dir" then CPPFLAGS="$orig_CPPFLAGS -I$dir/include" fi for ac_header in openssl/ssl.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else header_fail=1 fi done if test "$header_fail" -eq 0 then break fi unset `echo ac_cv_header_openssl/ssl_h | $as_tr_sh` CPPFLAGS="$orig_CPPFLAGS" any=1 done if test $header_fail -eq 1 then { $as_echo "$as_me:$LINENO: WARNING: Disabling OpenSSL" >&5 $as_echo "$as_me: WARNING: Disabling OpenSSL" >&2;} enable_ssl="no" unset HAVE_LIBSSL fi fi for ac_func in vasprintf do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 $as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_var=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5 $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } if test "${ac_cv_sys_largefile_source+set}" = set; then $as_echo_n "(cached) " >&6 else while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include /* for off_t */ #include int main () { int (*fp) (FILE *, off_t, int) = fseeko; return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_sys_largefile_source=no; break else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define _LARGEFILE_SOURCE 1 #include /* for off_t */ #include int main () { int (*fp) (FILE *, off_t, int) = fseeko; return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_sys_largefile_source=1; break else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_cv_sys_largefile_source=unknown break done fi { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5 $as_echo "$ac_cv_sys_largefile_source" >&6; } case $ac_cv_sys_largefile_source in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source _ACEOF ;; esac rm -rf conftest* # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug # in glibc 2.1.3, but that breaks too many other things. # If you want fseeko and ftello with glibc, upgrade to a fixed glibc. if test $ac_cv_sys_largefile_source != unknown; then cat >>confdefs.h <<\_ACEOF #define HAVE_FSEEKO 1 _ACEOF fi if test "$enable_ssl" != no then orig_LDFLAGS="$LDFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/pkg /usr /var /opt do lib_fail=0 if test -n "$dir" -a ! -d "$dir/ssl/lib" then lib_fail=1 continue fi if test -n "$any" then { $as_echo "$as_me:$LINENO: retrying with -L$dir/ssl/lib" >&5 $as_echo "$as_me: retrying with -L$dir/ssl/lib" >&6;} fi if test -n "$dir" then LDFLAGS="$orig_LDFLAGS -L$dir/ssl/lib" fi { $as_echo "$as_me:$LINENO: checking for CRYPTO_malloc in -lcrypto" >&5 $as_echo_n "checking for CRYPTO_malloc in -lcrypto... " >&6; } if test "${ac_cv_lib_crypto_CRYPTO_malloc+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char CRYPTO_malloc (); int main () { return CRYPTO_malloc (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_crypto_CRYPTO_malloc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_crypto_CRYPTO_malloc=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_CRYPTO_malloc" >&5 $as_echo "$ac_cv_lib_crypto_CRYPTO_malloc" >&6; } if test "x$ac_cv_lib_crypto_CRYPTO_malloc" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBCRYPTO 1 _ACEOF LIBS="-lcrypto $LIBS" else lib_fail=1 fi if test "$lib_fail" -eq 0 then { $as_echo "$as_me:$LINENO: checking for SSL_new in -lssl" >&5 $as_echo_n "checking for SSL_new in -lssl... " >&6; } if test "${ac_cv_lib_ssl_SSL_new+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lssl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char SSL_new (); int main () { return SSL_new (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_ssl_SSL_new=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ssl_SSL_new=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_new" >&5 $as_echo "$ac_cv_lib_ssl_SSL_new" >&6; } if test "x$ac_cv_lib_ssl_SSL_new" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBSSL 1 _ACEOF LIBS="-lssl $LIBS" else lib_fail=1 fi fi if test "$lib_fail" -eq 0 then break fi unset `echo ac_cv_lib_crypto_CRYPTO_malloc | $as_tr_sh` unset `echo ac_cv_lib_ssl_SSL_new | $as_tr_sh` LDFLAGS="$orig_LDFLAGS" any=1 done if test $lib_fail -eq 1 then { $as_echo "$as_me:$LINENO: WARNING: Disabling OpenSSL" >&5 $as_echo "$as_me: WARNING: Disabling OpenSSL" >&2;} enable_ssl="no" fi fi if test "$ac_cv_lib_ncursesw_newterm" = yes then { $as_echo "$as_me:$LINENO: checking for wadd_wch in -lncursesw" >&5 $as_echo_n "checking for wadd_wch in -lncursesw... " >&6; } if test "${ac_cv_lib_ncursesw_wadd_wch+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lncursesw $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char wadd_wch (); int main () { return wadd_wch (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_ncursesw_wadd_wch=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ncursesw_wadd_wch=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ncursesw_wadd_wch" >&5 $as_echo "$ac_cv_lib_ncursesw_wadd_wch" >&6; } if test "x$ac_cv_lib_ncursesw_wadd_wch" = x""yes; then cat >>confdefs.h <<\_ACEOF #define CURSES_WIDE 1 _ACEOF Cw=1 fi elif test "$ac_cv_lib_ncurses_newterm" = yes then { $as_echo "$as_me:$LINENO: checking for wadd_wch in -lncurses" >&5 $as_echo_n "checking for wadd_wch in -lncurses... " >&6; } if test "${ac_cv_lib_ncurses_wadd_wch+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lncurses $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char wadd_wch (); int main () { return wadd_wch (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_ncurses_wadd_wch=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ncurses_wadd_wch=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_wadd_wch" >&5 $as_echo "$ac_cv_lib_ncurses_wadd_wch" >&6; } if test "x$ac_cv_lib_ncurses_wadd_wch" = x""yes; then cat >>confdefs.h <<\_ACEOF #define CURSES_WIDE 1 _ACEOF Cw=1 fi elif test "$ac_cv_lib_curses_newterm" = yes then { $as_echo "$as_me:$LINENO: checking for wadd_wch in -lcurses" >&5 $as_echo_n "checking for wadd_wch in -lcurses... " >&6; } if test "${ac_cv_lib_curses_wadd_wch+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcurses $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char wadd_wch (); int main () { return wadd_wch (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_curses_wadd_wch=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_curses_wadd_wch=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_curses_wadd_wch" >&5 $as_echo "$ac_cv_lib_curses_wadd_wch" >&6; } if test "x$ac_cv_lib_curses_wadd_wch" = x""yes; then cat >>confdefs.h <<\_ACEOF #define CURSES_WIDE 1 _ACEOF Cw=1 fi else echo "What??? " fi if test "$Cw" != "1" then { $as_echo "$as_me:$LINENO: WARNING: Wide curses not found -- c3270 will not be able to support multi-byte character encodings" >&5 $as_echo "$as_me: WARNING: Wide curses not found -- c3270 will not be able to support multi-byte character encodings" >&2;} fi # Extract the first word of "less", so it can be a program name with args. set dummy less; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_LESSPATH+set}" = set; then $as_echo_n "(cached) " >&6 else case $LESSPATH in [\\/]* | ?:[\\/]*) ac_cv_path_LESSPATH="$LESSPATH" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LESSPATH="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi LESSPATH=$ac_cv_path_LESSPATH if test -n "$LESSPATH"; then { $as_echo "$as_me:$LINENO: result: $LESSPATH" >&5 $as_echo "$LESSPATH" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi cat >>confdefs.h <<_ACEOF #define LESSPATH "$LESSPATH" _ACEOF # Extract the first word of "more", so it can be a program name with args. set dummy more; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MOREPATH+set}" = set; then $as_echo_n "(cached) " >&6 else case $MOREPATH in [\\/]* | ?:[\\/]*) ac_cv_path_MOREPATH="$MOREPATH" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MOREPATH="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MOREPATH=$ac_cv_path_MOREPATH if test -n "$MOREPATH"; then { $as_echo "$as_me:$LINENO: result: $MOREPATH" >&5 $as_echo "$MOREPATH" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi cat >>confdefs.h <<_ACEOF #define MOREPATH "$MOREPATH" _ACEOF LIBX3270DIR='${sysconfdir}/x3270' # Check whether --enable-ansi was given. if test "${enable_ansi+set}" = set; then enableval=$enable_ansi; fi case "$enable_ansi" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_ANSI 1 _ACEOF ;; esac # Check whether --enable-apl was given. if test "${enable_apl+set}" = set; then enableval=$enable_apl; fi case "$enable_apl" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_APL 1 _ACEOF ;; esac # Check whether --enable-dbcs was given. if test "${enable_dbcs+set}" = set; then enableval=$enable_dbcs; fi case "$enable_dbcs" in no) ;; *) cat >>confdefs.h <<\_ACEOF #define X3270_DBCS 1 _ACEOF DBCS=-DX3270_DBCS=1 ;; esac # Check whether --enable-ft was given. if test "${enable_ft+set}" = set; then enableval=$enable_ft; fi case "$enable_ft" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_FT 1 _ACEOF ;; esac # Check whether --enable-local_process was given. if test "${enable_local_process+set}" = set; then enableval=$enable_local_process; fi case "$enable_local_process" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_LOCAL_PROCESS 1 _ACEOF ;; esac # Check whether --enable-printer was given. if test "${enable_printer+set}" = set; then enableval=$enable_printer; fi case "$enable_printer" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_PRINTER 1 _ACEOF ;; esac # Check whether --enable-script was given. if test "${enable_script+set}" = set; then enableval=$enable_script; fi case "$enable_script" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_SCRIPT 1 _ACEOF ;; esac # Check whether --enable-ssl was given. if test "${enable_ssl+set}" = set; then enableval=$enable_ssl; fi case "$enable_ssl" in no) ;; *) SSL=-DHAVE_LIBSSL ;; esac # Check whether --enable-tn3270e was given. if test "${enable_tn3270e+set}" = set; then enableval=$enable_tn3270e; fi case "$enable_tn3270e" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_TN3270E 1 _ACEOF ;; esac # Check whether --enable-trace was given. if test "${enable_trace+set}" = set; then enableval=$enable_trace; fi case "$enable_trace" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_TRACE 1 _ACEOF ;; esac # Check whether --enable-history was given. if test "${enable_history+set}" = set; then enableval=$enable_history; fi case "$enable_history" in yes) cat >>confdefs.h <<\_ACEOF #define X3270_PLUGIN 1 _ACEOF ;; esac ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { $as_echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { $as_echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "conf.h") CONFIG_HEADERS="$CONFIG_HEADERS conf.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 $as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=' ' ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\).*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\).*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 $as_echo "$as_me: error: could not setup config files machinery" >&2;} { (exit 1); exit 1; }; } _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 $as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 $as_echo "$as_me: error: could not setup config headers machinery" >&2;} { (exit 1); exit 1; }; } fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ac_file_inputs="$ac_file_inputs '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 $as_echo "$as_me: error: could not create -" >&2;} { (exit 1); exit 1; }; } fi ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 $as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi ibm-3270-3.3.10ga4/c3270/x3270if.c0000644000175000017500000003133311254565704015176 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * Script interface utility for x3270, c3270 and s3270. * * Accesses an x3270 command stream on the file descriptors defined by the * environment variables X3270OUTPUT (output from x3270, input to script) and * X3270INPUT (input to x3270, output from script). * * Can also access a command stream via a socket, whose TCP port is defined by * the environment variable X3270PORT. */ #include "conf.h" #if defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #if !defined(_WIN32) /*[*/ #include #include #include #include #include #include #include #include #include #if defined(HAVE_SYS_SELECT_H) /*[*/ #include #endif /*]*/ #if defined(HAVE_GETOPT_H) /*[*/ #include #endif /*]*/ #endif /*]*/ #if defined(_WIN32) /*[*/ #include "w3miscc.h" #endif /*]*/ #define IBS 4096 #define NO_STATUS (-1) #define ALL_FIELDS (-2) extern int optind; extern char *optarg; static char *me; static int verbose = 0; static char buf[IBS]; #if !defined(_WIN32) /*[*/ static void iterative_io(int pid); #endif /*]*/ static void single_io(int pid, unsigned short port, int fn, char *cmd); static void usage(void) { (void) fprintf(stderr, "\ usage: %s [-v] [-S] [-s field] [-p pid] [-t port] [action[(param[,...])]]\n\ %s -i\n", me, me); exit(2); } /* Get a file descriptor from the environment. */ static int fd_env(const char *name) { char *fdname; int fd; fdname = getenv(name); if (fdname == (char *)NULL) { (void) fprintf(stderr, "%s: %s not set in the environment\n", me, name); exit(2); } fd = atoi(fdname); if (fd <= 0) { (void) fprintf(stderr, "%s: invalid value '%s' for %s\n", me, fdname, name); exit(2); } return fd; } int main(int argc, char *argv[]) { int c; int fn = NO_STATUS; char *ptr; int iterative = 0; int pid = 0; unsigned short port = 0; #if defined(_WIN32) /*[*/ if (sockstart() < 0) exit(1); #endif /*]*/ /* Identify yourself. */ if ((me = strrchr(argv[0], '/')) != (char *)NULL) me++; else me = argv[0]; /* Parse options. */ while ((c = getopt(argc, argv, "ip:s:St:v")) != -1) { switch (c) { #if !defined(_WIN32) /*[*/ case 'i': if (fn >= 0) usage(); iterative++; break; case 'p': pid = (int)strtoul(optarg, &ptr, 0); if (ptr == optarg || *ptr != '\0' || pid <= 0) { (void) fprintf(stderr, "%s: Invalid process ID: '%s'\n", me, optarg); usage(); } break; #endif /*]*/ case 's': if (fn >= 0 || iterative) usage(); fn = (int)strtol(optarg, &ptr, 0); if (ptr == optarg || *ptr != '\0' || fn < 0) { (void) fprintf(stderr, "%s: Invalid field number: '%s'\n", me, optarg); usage(); } break; case 'S': if (fn >= 0 || iterative) usage(); fn = ALL_FIELDS; break; case 't': port = (unsigned short)strtoul(optarg, &ptr, 0); if (ptr == optarg || *ptr != '\0' || port <= 0) { (void) fprintf(stderr, "%s: Invalid port: '%s'\n", me, optarg); usage(); } break; case 'v': verbose++; break; default: usage(); break; } } /* Validate positional arguments. */ if (optind == argc) { /* No positional arguments. */ if (fn == NO_STATUS && !iterative) usage(); } else { /* Got positional arguments. */ if (iterative) usage(); } if (pid && port) usage(); #if !defined(_WIN32) /*[*/ /* Ignore broken pipes. */ (void) signal(SIGPIPE, SIG_IGN); #endif /*]*/ /* Do the I/O. */ #if !defined(_WIN32) /*[*/ if (iterative) iterative_io(pid); else #endif /*]*/ single_io(pid, port, fn, argv[optind]); return 0; } #if !defined(_WIN32) /*[*/ /* Connect to a Unix-domain socket. */ static int usock(int pid) { struct sockaddr_un ssun; int fd; fd = socket(AF_UNIX, SOCK_STREAM, 0); if (fd < 0) { perror("socket"); exit(2); } (void) memset(&ssun, '\0', sizeof(struct sockaddr_un)); ssun.sun_family = AF_UNIX; (void) sprintf(ssun.sun_path, "/tmp/x3sck.%d", pid); if (connect(fd, (struct sockaddr *)&ssun, sizeof(ssun)) < 0) { perror("connect"); exit(2); } return fd; } #endif /*]*/ /* Connect to a TCP socket. */ static int tsock(unsigned short port) { struct sockaddr_in sin; int fd; fd = socket(AF_INET, SOCK_STREAM, 0); if (fd < 0) { #if defined(_WIN32) /*[*/ fprintf(stderr, "socket: %s\n", win32_strerror(GetLastError())); #else /*][*/ perror("socket"); #endif /*]*/ exit(2); } (void) memset(&sin, '\0', sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_port = htons(port); sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); if (connect(fd, (struct sockaddr *)&sin, sizeof(sin)) < 0) { #if defined(_WIN32) /*[*/ fprintf(stderr, "connect(%u): %s\n", port, win32_strerror(GetLastError())); #else /*][*/ perror("connect"); #endif /*]*/ exit(2); } return fd; } /* Do a single command, and interpret the results. */ static void single_io(int pid, unsigned short port, int fn, char *cmd) { char *port_env; int infd; int outfd; char status[IBS] = ""; int nr; int xs = -1; int nw = 0; char rbuf[IBS]; int sl = 0; int done = 0; int is_socket = 0; char *cmd_nl; char *wstr; /* Verify the environment and open files. */ #if !defined(_WIN32) /*[*/ if (pid) { infd = outfd = usock(pid); } else #endif /*]*/ if (port) { infd = outfd = tsock(port); is_socket = 1; } else if ((port_env = getenv("X3270PORT")) != NULL) { infd = outfd = tsock(atoi(port_env)); is_socket = 1; } else { infd = fd_env("X3270OUTPUT"); outfd = fd_env("X3270INPUT"); } if (infd < 0) { perror("x3270if: input: fdopen"); exit(2); } if (outfd < 0) { perror("x3270if: output: fdopen"); exit(2); } /* Speak to x3270. */ if (verbose) (void) fprintf(stderr, "i+ out %s\n", (cmd != NULL) ? cmd : ""); if (cmd != NULL) { cmd_nl = malloc(strlen(cmd) + 2); if (cmd_nl == NULL) { fprintf(stderr, "Out of memory\n"); exit(2); } sprintf(cmd_nl, "%s\n", cmd); wstr = cmd_nl; } else { cmd_nl = NULL; wstr = "\n"; } if (is_socket) { nw = send(outfd, wstr, strlen(wstr), 0); } else { nw = write(outfd, wstr, strlen(wstr)); } if (nw < 0) { if (is_socket) #if defined(_WIN32) /*[*/ fprintf(stderr, "x3270if: send: %s\n", win32_strerror(GetLastError())); #else /*][*/ perror("x3270if: send"); #endif /*]*/ else perror("x3270if: write"); exit(2); } if (cmd_nl != NULL) free(cmd_nl); /* Get the answer. */ while (!done && (nr = (is_socket? recv(infd, rbuf, IBS, 0): read(infd, rbuf, IBS))) > 0) { int i; int get_more = 0; i = 0; do { /* Copy from rbuf into buf until '\n'. */ while (i < nr && rbuf[i] != '\n') { if (sl < IBS - 1) buf[sl++] = rbuf[i++]; } if (rbuf[i] == '\n') i++; else { /* Go get more input. */ get_more = 1; break; } /* Process one line of output. */ buf[sl] = '\0'; if (verbose) (void) fprintf(stderr, "i+ in %s\n", buf); if (!strcmp(buf, "ok")) { (void) fflush(stdout); xs = 0; done = 1; break; } else if (!strcmp(buf, "error")) { (void) fflush(stdout); xs = 1; done = 1; break; } else if (!strncmp(buf, "data: ", 6)) { if (printf("%s\n", buf + 6) < 0) { perror("x3270if: printf"); exit(2); } } else (void) strcpy(status, buf); /* Get ready for the next. */ sl = 0; } while (i < nr); if (get_more) { get_more = 0; continue; } } if (nr < 0) { if (is_socket) #if defined(_WIN32) /*[*/ fprintf(stderr, "x3270if: recv: %s\n", win32_strerror(GetLastError())); #else /*][*/ perror("recv"); #endif /*]*/ else perror("read"); exit(2); } else if (nr == 0) { fprintf(stderr, "x3270if: unexpected EOF\n"); exit(2); } if (fflush(stdout) < 0) { perror("x3270if: fflush"); exit(2); } /* Print status, if that's what they want. */ if (fn != NO_STATUS) { char *sf = (char *)NULL; char *sb = status; int rc; if (fn == ALL_FIELDS) { rc = printf("%s\n", status); } else { do { if (!fn--) break; sf = strtok(sb, " \t"); sb = (char *)NULL; } while (sf != (char *)NULL); rc = printf("%s\n", (sf != (char *)NULL) ? sf : ""); } if (rc < 0) { perror("x3270if: printf"); exit(2); } } if (fflush(stdout) < 0) { perror("x3270if: fflush"); exit(2); } if (is_socket) { shutdown(infd, 2); #if defined(_WIN32) /*[*/ closesocket(infd); #else /*][*/ close(infd); #endif /*]*/ } exit(xs); } #if !defined(_WIN32) /*[*/ /* Act as a passive pipe between 'expect' and x3270. */ static void iterative_io(int pid) { # define N_IO 2 struct { const char *name; int rfd, wfd; char buf[IBS]; int offset, count; } io[N_IO]; /* [0] is program->x3270, [1] is x3270->program */ fd_set rfds, wfds; int fd_max = 0; int i; #ifdef DEBUG if (verbose) { freopen("/tmp/x3270if.dbg", "w", stderr); setlinebuf(stderr); } #endif /* Get the x3270 file descriptors. */ io[0].name = "program->x3270"; io[0].rfd = fileno(stdin); if (pid) io[0].wfd = usock(pid); else io[0].wfd = fd_env("X3270INPUT"); io[1].name = "x3270->program"; if (pid) io[1].rfd = dup(io[0].wfd); else io[1].rfd = fd_env("X3270OUTPUT"); io[1].wfd = fileno(stdout); for (i = 0; i < N_IO; i++) { if (io[i].rfd > fd_max) fd_max = io[i].rfd; if (io[i].wfd > fd_max) fd_max = io[i].wfd; (void) fcntl(io[i].rfd, F_SETFL, fcntl(io[i].rfd, F_GETFL, 0) | O_NDELAY); (void) fcntl(io[i].wfd, F_SETFL, fcntl(io[i].wfd, F_GETFL, 0) | O_NDELAY); io[i].offset = 0; io[i].count = 0; } fd_max++; for (;;) { int rv; FD_ZERO(&rfds); FD_ZERO(&wfds); for (i = 0; i < N_IO; i++) { if (io[i].count) { FD_SET(io[i].wfd, &wfds); #ifdef DEBUG if (verbose) (void) fprintf(stderr, "enabling output %s %d\n", io[i].name, io[i].wfd); #endif } else { FD_SET(io[i].rfd, &rfds); #ifdef DEBUG if (verbose) (void) fprintf(stderr, "enabling input %s %d\n", io[i].name, io[i].rfd); #endif } } if ((rv = select(fd_max, &rfds, &wfds, (fd_set *)NULL, (struct timeval *)NULL)) < 0) { perror("x3270if: select"); exit(2); } if (verbose) (void) fprintf(stderr, "select->%d\n", rv); for (i = 0; i < N_IO; i++) { if (io[i].count) { if (FD_ISSET(io[i].wfd, &wfds)) { rv = write(io[i].wfd, io[i].buf + io[i].offset, io[i].count); if (rv < 0) { (void) fprintf(stderr, "x3270if: write(%s): %s", io[i].name, strerror(errno)); exit(2); } io[i].offset += rv; io[i].count -= rv; #ifdef DEBUG if (verbose) (void) fprintf(stderr, "write(%s)->%d\n", io[i].name, rv); #endif } } else if (FD_ISSET(io[i].rfd, &rfds)) { rv = read(io[i].rfd, io[i].buf, IBS); if (rv < 0) { (void) fprintf(stderr, "x3270if: read(%s): %s", io[i].name, strerror(errno)); exit(2); } if (rv == 0) exit(0); io[i].offset = 0; io[i].count = rv; #ifdef DEBUG if (verbose) (void) fprintf(stderr, "read(%s)->%d\n", io[i].name, rv); #endif } } } } #endif /*]*/ ibm-3270-3.3.10ga4/c3270/rpq.c0000644000175000017500000005044111254565704014677 0ustar bastianbastian/* * Copyright (c) 2005-2009, Paul Mattes. * Copyright (c) 2004-2005, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * rpq.c * RPQNAMES structured field support. * */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #include #include "3270ds.h" #include "appres.h" #include "popupsc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" /* Statics */ static Boolean select_rpq_terms(void); static int get_rpq_timezone(void); static int get_rpq_user(unsigned char buf[], const int buflen); #if !defined(_WIN32) /*[*/ static int get_rpq_address(unsigned char buf[], const int buflen); #endif /*]*/ static void rpq_warning(const char *fmt, ...); static void rpq_dump_warnings(void); static Boolean rpq_complained = False; #if !defined(_WIN32) /*[*/ static Boolean omit_due_space_limit = False; #endif /*]*/ /* * Define symbolic names for RPQ self-defining terms. * (Numbering is arbitrary, but must be 0-255 inclusive. * Do not renumber existing items because these identify the * self-defining term to the mainframe software. Changing pre-existing * values will possibly impact host based software. */ #define RPQ_ADDRESS 0 #define RPQ_TIMESTAMP 1 #define RPQ_TIMEZONE 2 #define RPQ_USER 3 #define RPQ_VERSION 4 /* * Define a table of RPQ self-defing terms. * NOTE: Synonyms could be specified by coding different text items but using * the same "id" value. * Items should be listed in alphabetical order by "text" name so if the user * specifies abbreviations, they work in a predictable manner. E.g., "TIME" * should match TIMESTAMP instead of TIMEZONE. */ static struct rpq_keyword { Boolean omit; /* set from X3270RPQ="kw1:kw2..." environment var */ int oride; /* displacement */ const Boolean allow_oride; const unsigned char id; const char *text; } rpq_keywords[] = { {True, 0, True, RPQ_ADDRESS, "ADDRESS"}, {True, 0, False, RPQ_TIMESTAMP, "TIMESTAMP"}, {True, 0, True, RPQ_TIMEZONE, "TIMEZONE"}, {True, 0, True, RPQ_USER, "USER"}, {True, 0, False, RPQ_VERSION, "VERSION"}, }; #define NS_RPQ (sizeof(rpq_keywords)/sizeof(rpq_keywords[0])) static char *x3270rpq; /* * RPQNAMES query reply. */ void do_qr_rpqnames(void) { #define TERM_PREFIX_SIZE 2 /* Each term has 1 byte length and 1 byte id */ unsigned char *rpql, *p_term; unsigned j; int term_id,i,x; int remaining = 254; /* maximum data area for rpqname reply */ Boolean omit_due_space_limit; trace_ds("> QueryReply(RPQNames)\n"); /* * Allocate enough space for the maximum allowed item. * By pre-allocating the space I don't have to worry about the * possibility of addresses changing. */ space3270out(4+4+1+remaining); /* Maximum space for an RPQNAME item */ SET32(obptr, 0); /* Device number, 0 = All */ SET32(obptr, 0); /* Model number, 0 = All */ rpql = obptr++; /* Save address to place data length. */ /* * Create fixed length portion - program id: x3270 * This is known 8-bit text so we can use asc2ebc0 to translate it. */ for (j = 0; j < 5; j++) { *obptr++ = asc2ebc0[(int)"x3270"[j]]; remaining--; } /* Create user selected variable-length self-defining terms. */ select_rpq_terms(); for (j=0; j remaining); if (!omit_due_space_limit) { for (i = 0; i < x; i++) { *obptr++ = asc2ebc0[(int)(*(build_rpq_version+i) & 0xff)]; } } break; case RPQ_TIMESTAMP: /* program build time (yyyymmddhhmmss bcd) */ x = strlen(build_rpq_timestamp); omit_due_space_limit = ((x+1)/2 > remaining); if (!omit_due_space_limit) { for (i=0; i < x; i+=2) { *obptr++ = ((*(build_rpq_timestamp+i) - '0') << 4) + (*(build_rpq_timestamp+i+1) - '0'); } } break; default: /* unsupported ID, (can't happen) */ Error("Unsupported RPQ term"); break; } if (omit_due_space_limit) rpq_warning("RPQ %s term omitted due to insufficient " "space", rpq_keywords[j].text); /* * The item is built, insert item length as needed and * adjust space remaining. * obptr now points at "next available byte". */ x = obptr-p_term; if (x > TERM_PREFIX_SIZE) { *p_term = x; remaining -= x; /* This includes length and id fields, correction below */ } else { /* We didn't add an item after all, reset pointer. */ obptr = p_term; } /* * When we calculated the length of the term, a few lines * above, that length included the term length and term id * prefix too. (TERM_PREFIX_SIZE) * But just prior to the switch statement, we decremented the * remaining space by that amount so subsequent routines would * be told how much space they have for their data, without * each routine having to account for that prefix. * That means the remaining space is actually more than we * think right now, by the length of the prefix.... add that * back so the remaining space is accurate. * * And... if there was no item added, we still have to make the * same correction to "claim back" the term prefix area so it * may be used by the next possible term. */ remaining += TERM_PREFIX_SIZE; } /* Fill in overall length of RPQNAME info */ *rpql = (obptr - rpql); rpq_dump_warnings(); } /* Utility function used by the RPQNAMES query reply. */ static Boolean select_rpq_terms(void) { size_t i; unsigned j,k; int len; char *uplist; char *p1, *p2; char *kw; Boolean is_no_form; /* See if the user wants any rpqname self-defining terms returned */ if ((x3270rpq = getenv("X3270RPQ")) == NULL) return False; /* * Make an uppercase copy of the user selections so I can match * keywords more easily. * If there are override values, I'll get those from the ORIGINAL * string so upper/lower case is preserved as necessary. */ uplist = (char *) malloc(strlen(x3270rpq)+1); assert(uplist != NULL); p1 = uplist; p2 = x3270rpq; do { *p1++ = toupper(*p2++); } while (*p2); *p1 = '\0'; for (i=0; i 2) && (strncmp("NO", kw, 2) == 0)); if (is_no_form) { kw+=2; /* skip "NO" prefix for matching keyword */ len-=2; /* adjust keyword length */ } for (j=0; j < NS_RPQ; j++) { if (strncmp(kw, rpq_keywords[j].text, len) == 0) { rpq_keywords[j].omit = is_no_form; if (*p1 == '=') { if (rpq_keywords[j].allow_oride) { rpq_keywords[j].oride = p1-uplist+1; } else { rpq_warning("RPQ %s term " "override " "ignored", p1); } } break; } } if (j >= NS_RPQ) { /* unrecognized keyword... */ if (strcmp(kw,"ALL") == 0) { for (k=0; k < NS_RPQ; k++) rpq_keywords[k].omit = is_no_form; } else { rpq_warning("RPQ term \"%s\" is unrecognized", kw); } } } free(uplist); /* * Return to caller with indication (T/F) of any items * to be selected (T) or are all terms suppressed? (F) */ for (i=0; i id != RPQ_TIMEZONE; kw++) { } /* Is there a user override? */ if ((kw->allow_oride) && (kw->oride > 0)) { ldiv_t hhmm; long x; p1 = x3270rpq+kw->oride; x = strtol(p1, &p2, 10); if (errno != 0) { rpq_warning("RPQ TIMEZONE term is invalid - " "use +/-hhmm"); return 4; } if ((*p2 != '\0') && (*p2 != ':') && (!isspace(*p2))) return 4; hhmm = ldiv(x, 100L); if (hhmm.rem > 59L) { rpq_warning("RPQ TIMEZONE term is invalid - " "use +/-hhmm"); return 4; } delta = (labs(hhmm.quot) * 60L) + hhmm.rem; if (hhmm.quot < 0L) delta = -delta; } else { /* * No override specified, try to get information from the * system. */ if ((here = time(NULL)) == (time_t)(-1)) { rpq_warning("RPQ: Unable to determine workstation " "local time"); return 1; } memcpy(&here_tm, localtime(&here), sizeof(struct tm)); if ((utc_tm = gmtime(&here)) == NULL) { rpq_warning("RPQ: Unable to determine workstation UTC " "time"); return 2; } /* * Do not take Daylight Saving Time into account. * We just want the "raw" time difference. */ here_tm.tm_isdst = 0; utc_tm->tm_isdst = 0; delta = difftime(mktime(&here_tm), mktime(utc_tm)) / 60L; } /* sanity check: difference cannot exceed +/- 12 hours */ if (labs(delta) > 720L) rpq_warning("RPQ timezone exceeds 12 hour UTC offset"); return (labs(delta) > 720L)? 3 : (int) delta; } /* Utility function used by the RPQNAMES query reply. */ static int get_rpq_user(unsigned char buf[], const int buflen) { /* * Text may be specified in one of two ways, but not both. * An environment variable provides the user interface: * - X3270RPQ: Keyword USER= * * NOTE: If the string begins with 0x then no ASCII/EBCDIC * translation is done. The hex characters will be sent as true hex * data. E.g., X3270RPQ="user=0x ab 12 EF" will result in 3 bytes * sent as 0xAB12EF. White space is optional in hex data format. * When hex format is required, the 0x prefix must be the first two * characters of the string. E.g., X3270RPQ="user= 0X AB" will * result in 6 bytes sent as 0x40F0E740C1C2 because the text is * accepted "as is" then translated from ASCII to EBCDIC. */ const char *rpqtext = CN; int x = 0; struct rpq_keyword *kw; char *sbuf, *sbuf0; const char *s; enum me_fail error; int xlen; /* id isn't necessarily the table index... locate item */ for (kw = &rpq_keywords[0]; kw -> id != RPQ_USER; kw++) { } if ((!kw->allow_oride) || (kw->oride <= 0)) return 0; rpqtext = x3270rpq + kw->oride; if ((*rpqtext == '0') && (toupper(*(rpqtext+1)) == 'X')) { /* text has 0x prefix... interpret as hex, no translation */ char hexstr[512]; /* more than enough room to copy */ char * p_h; char c; int x; Boolean is_first_hex_digit; p_h = &hexstr[0]; /* copy the hex digits from X3270RPQ, removing white * space, and using all upper case for the hex digits a-f. */ rpqtext += 2; /* skip 0x prefix */ for (*p_h = '\0'; *rpqtext; rpqtext++) { c = toupper(*rpqtext); if ((c==':') || (c=='\0')) break; if (isspace(c)) continue; /* skip white space */ if (!isxdigit(c)) { rpq_warning("RPQ USER term has non-hex " "character"); break; } x = (p_h - hexstr)/2; if (x >= buflen) { x = buflen; rpq_warning("RPQ USER term truncated after %d " "bytes", x); break; /* too long, truncate */ } *p_h++ = c; /* copy (upper case) character */ *p_h = '\0'; /* keep string properly terminated */ } /* * 'hexstr' is now a character string of 0-9, A-F only, * (a-f were converted to upper case). * There may be an odd number of characters, implying a leading * 0. The string is also known to fit in the area specified. */ /* hex digits are handled in pairs, set a flag so we keep track * of which hex digit we're currently working with. */ is_first_hex_digit = ((strlen(hexstr) % 2) == 0); if (!is_first_hex_digit) rpq_warning("RPQ USER term has odd number of hex " "digits"); *buf = 0; /* initialize first byte for possible implied leading zero */ for (p_h = &hexstr[0]; *p_h; p_h++) { int n; /* convert the hex character to a value 0-15 */ n = isdigit(*p_h) ? *p_h - '0' : *p_h - 'A' + 10; if (is_first_hex_digit) { *buf = n << 4; } else { *buf++ |= n; } is_first_hex_digit = !is_first_hex_digit; } return (strlen(hexstr)+1)/2; } /* plain text - subject to ascii/ebcdic translation */ /* * Copy the source string to a temporary buffer, terminating on * ':', unless preceded by '\'. */ sbuf = sbuf0 = Malloc(strlen(rpqtext) + 1); for (s = rpqtext; *s && (*s != ':'); s++) { if (*s == '\\' && *(s + 1)) { *sbuf++ = *++s; } else *sbuf++ = *s; } *sbuf = '\0'; /* Translate multibyte to EBCDIC in the target buffer. */ xlen = multibyte_to_ebcdic_string(sbuf0, strlen(sbuf0), buf, buflen, &error); if (xlen < 0) { rpq_warning("RPQ USER term translation error"); if (buflen) { *buf = asc2ebc0['?']; x = 1; } } else { x = xlen; } Free(sbuf0); return x; } #if !defined(_WIN32) /*[*/ static int get_rpq_address(unsigned char *buf, const int maxlen) { struct rpq_keyword *kw; int x = 0; if (maxlen < 2) { omit_due_space_limit = True; return 0; } /* id isn't necessarily the table index... locate item */ for (kw = &rpq_keywords[0]; kw->id != RPQ_ADDRESS; kw++) { } /* Is there a user override? */ if ((kw->allow_oride) && (kw->oride > 0)) { char *p1, *p2, *rpqtext; #if defined(AF_INET6) /*[*/ struct addrinfo *res; int ga_err; #else /*][*/ in_addr_t ia; #endif /*]*/ p1 = x3270rpq + kw->oride; rpqtext = (char *) malloc(strlen(p1) + 1); for (p2=rpqtext;*p1; p2++) { if (*p1 == ':') break; if ((*p1 == '\\') && (*(p1+1) == ':')) p1++; *p2 = *p1; p1++; } *p2 = '\0'; #if defined(AF_INET6) /*[*/ ga_err = getaddrinfo(rpqtext, NULL, NULL, &res); if (ga_err == 0) { void *src = NULL; int len = 0; SET16(buf, res->ai_family); x += 2; switch (res->ai_family) { case AF_INET: src = &((struct sockaddr_in *)res->ai_addr)->sin_addr; len = sizeof(struct in_addr); break; case AF_INET6: src = &((struct sockaddr_in6 *)res->ai_addr)->sin6_addr; len = sizeof(struct in6_addr); break; default: rpq_warning("RPQ ADDRESS term has " "unrecognized family %u", res->ai_family); break; } if (x + len <= maxlen) { x += len; (void) memcpy(buf, src, len); } else { rpq_warning("RPQ ADDRESS term incomplete due " "to space limit"); } /* Give back storage obtained by getaddrinfo */ freeaddrinfo(res); } else { rpq_warning("RPQ: can't resolve '%s': %s", rpqtext, gai_strerror(ga_err)); } #else /*][*/ /* * No IPv6 support. * Use plain old inet_addr() and gethostbyname(). */ ia = inet_addr(rpqtext); if (ia == htonl(INADDR_NONE)) { struct hostent *h; h = gethostbyname(rpqtext); if (h == NULL || h->h_addrtype != AF_INET) { rpq_warning("RPQ: gethostbyname error"); return 0; } (void) memcpy(&ia, h->h_addr_list[0], h->h_length); } SET16(buf, AF_INET); x += 2; if (x + sizeof(in_addr_t) <= maxlen) { (void) memcpy(buf, &ia, sizeof(in_addr_t)); x += sizeof(in_addr_t); } else { rpq_warning("RPQ ADDRESS term incomplete due to " "space limit"); } #endif /*]*/ free(rpqtext); } else { /* No override... get our address from the actual socket */ union { struct sockaddr sa; struct sockaddr_in sa4; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sa6; #endif /*]*/ } u; int addrlen = sizeof(u); void *src = NULL; int len = 0; if (net_getsockname(&u, &addrlen) < 0) return 0; SET16(buf, u.sa.sa_family); x += 2; switch (u.sa.sa_family) { case AF_INET: src = &u.sa4.sin_addr; len = sizeof(struct in_addr); break; #if defined(AF_INET6) /*[*/ case AF_INET6: src = &u.sa6.sin6_addr; len = sizeof(struct in6_addr); break; #endif /*]*/ default: rpq_warning("RPQ ADDRESS term has unrecognized " "family %u", u.sa.sa_family); break; } if (x + len <= maxlen) { (void) memcpy(buf, src, len); x += len; } else { rpq_warning("RPQ ADDRESS term incomplete due to space " "limit"); } } return x; } #endif /*]*/ #define RPQ_WARNBUF_SIZE 1024 static char *rpq_warnbuf = CN; static int rpq_wbcnt = 0; static void rpq_warning(const char *fmt, ...) { va_list a; /* Only accumulate RPQ warnings if they * have not been displayed already. */ if (!rpq_complained) { va_start(a, fmt); if (rpq_warnbuf == CN) rpq_warnbuf = Malloc(RPQ_WARNBUF_SIZE); if (rpq_wbcnt < RPQ_WARNBUF_SIZE) { *(rpq_warnbuf + rpq_wbcnt++) = '\n'; *(rpq_warnbuf + rpq_wbcnt) = '\0'; } if (rpq_wbcnt < RPQ_WARNBUF_SIZE) { rpq_wbcnt += vsnprintf(rpq_warnbuf + rpq_wbcnt, RPQ_WARNBUF_SIZE - rpq_wbcnt, fmt, a); } va_end(a); } } static void rpq_dump_warnings(void) { /* If there's something to complain about, only complain once. */ if (!rpq_complained && rpq_wbcnt) { popup_an_error("%s", rpq_warnbuf); rpq_wbcnt = 0; rpq_complained = True; free(rpq_warnbuf); rpq_warnbuf = CN; } } ibm-3270-3.3.10ga4/c3270/charsetc.h0000644000175000017500000000406211254565704015674 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * charsetc.h * Global declarations for charset.c */ extern Boolean charset_changed; extern unsigned long cgcsgid; #if defined(X3270_DBCS) /*[*/ extern unsigned long cgcsgid_dbcs; #endif /*]*/ extern char *default_display_charset; enum cs_result { CS_OKAY, CS_NOTFOUND, CS_BAD, CS_PREREQ, CS_ILLEGAL }; extern enum cs_result charset_init(char *csname); extern char *get_charset_name(void); extern char *get_host_codepage(void); extern void charset_list(void); ibm-3270-3.3.10ga4/c3270/ft_dft_ds.h0000644000175000017500000000506011254565704016033 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* DFT-style file transfer codes. */ /* Host requests. */ #define TR_OPEN_REQ 0x0012 /* open request */ #define TR_CLOSE_REQ 0x4112 /* close request */ #define TR_SET_CUR_REQ 0x4511 /* set cursor request */ #define TR_GET_REQ 0x4611 /* get request */ #define TR_INSERT_REQ 0x4711 /* insert request */ #define TR_DATA_INSERT 0x4704 /* data to insert */ /* PC replies. */ #define TR_GET_REPLY 0x4605 /* data for get */ #define TR_NORMAL_REPLY 0x4705 /* insert normal reply */ #define TR_ERROR_REPLY 0x08 /* error reply (low 8 bits) */ #define TR_CLOSE_REPLY 0x4109 /* close acknowledgement */ /* Other headers. */ #define TR_RECNUM_HDR 0x6306 /* record number header */ #define TR_ERROR_HDR 0x6904 /* error header */ #define TR_NOT_COMPRESSED 0xc080 /* data not compressed */ #define TR_BEGIN_DATA 0x61 /* beginning of data */ /* Error codes. */ #define TR_ERR_EOF 0x2200 /* get past end of file */ #define TR_ERR_CMDFAIL 0x0100 /* command failed */ ibm-3270-3.3.10ga4/c3270/ft.c0000644000175000017500000015771211256026744014515 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * ft.c * This module handles the file transfer dialogs. */ #include "globals.h" #if defined(X3270_FT) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #include #include #include #include #include #include #include #include #endif /*]*/ #include #include "appres.h" #include "actionsc.h" #include "charsetc.h" #include "ft_cutc.h" #include "ft_dftc.h" #include "ftc.h" #include "dialogc.h" #include "hostc.h" #if defined(C3270) || defined(WC3270) /*[*/ #include "icmdc.h" #endif /*]*/ #include "kybdc.h" #include "macrosc.h" #include "objects.h" #include "popupsc.h" #include "screenc.h" #include "tablesc.h" #include "telnetc.h" #include "utilc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ /* Macros. */ #define eos(s) strchr((s), '\0') #if defined(X3270_DISPLAY) /*[*/ #define FILE_WIDTH 300 /* width of file name widgets */ #define MARGIN 3 /* distance from margins to widgets */ #define CLOSE_VGAP 0 /* distance between paired toggles */ #define FAR_VGAP 10 /* distance between single toggles and groups */ #define BUTTON_GAP 5 /* horizontal distance between buttons */ #define COLUMN_GAP 40 /* distance between columns */ #endif /*]*/ #define BN (Boolean *)NULL /* Externals. */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ extern Pixmap diamond; extern Pixmap no_diamond; extern Pixmap null; extern Pixmap dot; extern Pixmap no_dot; #endif /*]*/ /* Globals. */ enum ft_state ft_state = FT_NONE; /* File transfer state */ char *ft_local_filename; /* Local file to transfer to/from */ FILE *ft_local_file = (FILE *)NULL; /* File descriptor for local file */ Boolean ft_last_cr = False; /* CR was last char in local file */ Boolean ascii_flag = True; /* Convert to ascii */ Boolean cr_flag = True; /* Add crlf to each line */ Boolean remap_flag = True; /* Remap ASCII<->EBCDIC */ unsigned long ft_length = 0; /* Length of transfer */ /* Statics. */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Widget ft_dialog, ft_shell, local_file, host_file; static Widget lrecl_widget, blksize_widget; static Widget primspace_widget, secspace_widget; static Widget send_toggle, receive_toggle; static Widget vm_toggle, tso_toggle; static Widget ascii_toggle, binary_toggle; static Widget cr_widget; static Widget remap_widget; static Widget buffersize_widget; #endif /*]*/ static char *ft_host_filename; /* Host file to transfer to/from */ static Boolean receive_flag = True; /* Current transfer is receive */ static Boolean append_flag = False; /* Append transfer */ static Boolean vm_flag = False; /* VM Transfer flag */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Widget recfm_options[5]; static Widget units_options[5]; static struct toggle_list recfm_toggles = { recfm_options }; static struct toggle_list units_toggles = { units_options }; #endif /*]*/ static enum recfm { DEFAULT_RECFM, RECFM_FIXED, RECFM_VARIABLE, RECFM_UNDEFINED } recfm = DEFAULT_RECFM; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Boolean recfm_default = True; static enum recfm r_default_recfm = DEFAULT_RECFM; static enum recfm r_fixed = RECFM_FIXED; static enum recfm r_variable = RECFM_VARIABLE; static enum recfm r_undefined = RECFM_UNDEFINED; #endif /*]*/ static enum units { DEFAULT_UNITS, TRACKS, CYLINDERS, AVBLOCK } units = DEFAULT_UNITS; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Boolean units_default = True; static enum units u_default_units = DEFAULT_UNITS; static enum units u_tracks = TRACKS; static enum units u_cylinders = CYLINDERS; static enum units u_avblock = AVBLOCK; #endif /*]*/ static Boolean allow_overwrite = False; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static sr_t *ft_sr = (sr_t *)NULL; static Widget progress_shell, from_file, to_file; static Widget ft_status, waiting, aborting; static String status_string; #endif /*]*/ static struct timeval t0; /* Starting time */ static Boolean ft_is_cut; /* File transfer is CUT-style */ /* Translation table: "ASCII" to EBCDIC, as seen by IND$FILE. */ unsigned char i_asc2ft[256] = { 0x00,0x01,0x02,0x03,0x37,0x2d,0x2e,0x2f,0x16,0x05,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x3c,0x3d,0x32,0x26,0x18,0x19,0x3f,0x27,0x1c,0x1d,0x1e,0x1f, 0x40,0x5a,0x7f,0x7b,0x5b,0x6c,0x50,0x7d,0x4d,0x5d,0x5c,0x4e,0x6b,0x60,0x4b,0x61, 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0x7a,0x5e,0x4c,0x7e,0x6e,0x6f, 0x7c,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6, 0xd7,0xd8,0xd9,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0x4a,0xe0,0x4f,0x5f,0x6d, 0x79,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x91,0x92,0x93,0x94,0x95,0x96, 0x97,0x98,0x99,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xc0,0x6a,0xd0,0xa1,0x07, 0x20,0x21,0x22,0x23,0x24,0x15,0x06,0x17,0x28,0x29,0x2a,0x2b,0x2c,0x09,0x0a,0x1b, 0x30,0x31,0x1a,0x33,0x34,0x35,0x36,0x08,0x38,0x39,0x3a,0x3b,0x04,0x14,0x3e,0xe1, 0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x51,0x52,0x53,0x54,0x55,0x56,0x57, 0x58,0x59,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x70,0x71,0x72,0x73,0x74,0x75, 0x76,0x77,0x78,0x80,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x9a,0x9b,0x9c,0x9d,0x9e, 0x9f,0xa0,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7, 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xda,0xdb, 0xdc,0xdd,0xde,0xdf,0xea,0xeb,0xec,0xed,0xee,0xef,0xfa,0xfb,0xfc,0xfd,0xfe,0xff}; /* Translation table: EBCDIC to "ASCII", as seen by IND$FILE. */ unsigned char i_ft2asc[256] = { 0x00,0x01,0x02,0x03,0x9c,0x09,0x86,0x7f,0x97,0x8d,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x9d,0x85,0x08,0x87,0x18,0x19,0x92,0x8f,0x1c,0x1d,0x1e,0x1f, 0x80,0x81,0x82,0x83,0x84,0x00,0x17,0x1b,0x88,0x89,0x8a,0x8b,0x8c,0x05,0x06,0x07, 0x90,0x91,0x16,0x93,0x94,0x95,0x96,0x04,0x98,0x99,0x9a,0x9b,0x14,0x15,0x9e,0x1a, 0x20,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0x5b,0x2e,0x3c,0x28,0x2b,0x5d, 0x26,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0x21,0x24,0x2a,0x29,0x3b,0x5e, 0x2d,0x2f,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0x7c,0x2c,0x25,0x5f,0x3e,0x3f, 0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,0x60,0x3a,0x23,0x40,0x27,0x3d,0x22, 0xc3,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9, 0xca,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0xcb,0xcc,0xcd,0xce,0xcf,0xd0, 0xd1,0x7e,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7, 0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7, 0x7b,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0xe8,0xe9,0xea,0xeb,0xec,0xed, 0x7d,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0xee,0xef,0xf0,0xf1,0xf2,0xf3, 0x5c,0x9f,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9, 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xfa,0xfb,0xfc,0xfd,0xfe,0xff}; #if defined(X3270_DBCS) /*[*/ enum ftd ft_dbcs_state = FT_DBCS_NONE; unsigned char ft_dbcs_byte1; Boolean ft_last_dbcs = False; #endif /*]*/ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Widget overwrite_shell; #endif /*]*/ static Boolean ft_is_action; static unsigned long ft_start_id = 0; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static void ft_cancel(Widget w, XtPointer client_data, XtPointer call_data); static void ft_popup_callback(Widget w, XtPointer client_data, XtPointer call_data); static void ft_popup_init(void); static int ft_start(void); static void ft_start_callback(Widget w, XtPointer call_parms, XtPointer call_data); static void overwrite_cancel_callback(Widget w, XtPointer client_data, XtPointer call_data); static void overwrite_okay_callback(Widget w, XtPointer client_data, XtPointer call_data); static void overwrite_popdown(Widget w, XtPointer client_data, XtPointer call_data); static void overwrite_popup_init(void); static void popup_overwrite(void); static void popup_progress(void); static void progress_cancel_callback(Widget w, XtPointer client_data, XtPointer call_data); static void progress_popup_callback(Widget w, XtPointer client_data, XtPointer call_data); static void progress_popup_init(void); static void recfm_callback(Widget w, XtPointer user_data, XtPointer call_data); static void toggle_append(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_ascii(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_cr(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_remap(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_receive(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_vm(Widget w, XtPointer client_data, XtPointer call_data); static void units_callback(Widget w, XtPointer user_data, XtPointer call_data); #endif /*]*/ static void ft_connected(Boolean ignored); static void ft_in3270(Boolean ignored); /* Main external entry point. */ #if !defined(X3270_DISPLAY) || !defined(X3270_MENUS) /*[*/ void ft_init(void) { /* Register for state changes. */ register_schange(ST_CONNECT, ft_connected); register_schange(ST_3270_MODE, ft_in3270); } #endif /*]*/ /* Return the right value for fopen()ing the local file. */ static char * local_fflag(void) { static char ret[3]; int nr = 0; ret[nr++] = receive_flag? (append_flag? 'a': 'w' ): 'r'; if (!ascii_flag) ret[nr++] = 'b'; ret[nr] = '\0'; return ret; } /* Timeout function for stalled transfers. */ static void ft_didnt_start(void) { if (ft_local_file != NULL) { fclose(ft_local_file); ft_local_file = NULL; if (receive_flag && !append_flag) unlink(ft_local_filename); } allow_overwrite = False; ft_complete(get_message("ftStartTimeout")); sms_continue(); } #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ /* "File Transfer" dialog. */ /* * Pop up the "Transfer" menu. * Called back from the "File Transfer" option on the File menu. */ void popup_ft(Widget w _is_unused, XtPointer call_parms _is_unused, XtPointer call_data _is_unused) { /* Initialize it. */ if (ft_shell == (Widget)NULL) ft_popup_init(); /* Pop it up. */ dialog_set(&ft_sr, ft_dialog); popup_popup(ft_shell, XtGrabNone); } /* Initialize the transfer pop-up. */ static void ft_popup_init(void) { Widget w; Widget cancel_button; Widget local_label, host_label; Widget append_widget; Widget lrecl_label, blksize_label, primspace_label, secspace_label; Widget h_ref = (Widget)NULL; Dimension d1; Dimension maxw = 0; Widget recfm_label, units_label; Widget buffersize_label; Widget start_button; char buflen_buf[128]; /* Register for state changes. */ register_schange(ST_CONNECT, ft_connected); register_schange(ST_3270_MODE, ft_in3270); /* Prep the dialog functions. */ dialog_set(&ft_sr, ft_dialog); /* Create the menu shell. */ ft_shell = XtVaCreatePopupShell( "ftPopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(ft_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(ft_shell, XtNpopupCallback, ft_popup_callback, (XtPointer)NULL); /* Create the form within the shell. */ ft_dialog = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, ft_shell, NULL); /* Create the file name widgets. */ local_label = XtVaCreateManagedWidget( "local", labelWidgetClass, ft_dialog, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); local_file = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNvertDistance, FAR_VGAP, XtNfromHoriz, local_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(local_label, local_file, XtNheight); w = XawTextGetSource(local_file); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_unixfile); dialog_register_sensitivity(local_file, BN, False, BN, False, BN, False); host_label = XtVaCreateManagedWidget( "host", labelWidgetClass, ft_dialog, XtNfromVert, local_label, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); host_file = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNdisplayCaret, False, XtNfromVert, local_label, XtNvertDistance, 3, XtNfromHoriz, host_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(host_label, host_file, XtNheight); dialog_match_dimension(local_label, host_label, XtNwidth); w = XawTextGetSource(host_file); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_hostfile); dialog_register_sensitivity(host_file, BN, False, BN, False, BN, False); /* Create the left column. */ /* Create send/receive toggles. */ send_toggle = XtVaCreateManagedWidget( "send", commandWidgetClass, ft_dialog, XtNfromVert, host_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(send_toggle, receive_flag ? no_diamond : diamond); XtAddCallback(send_toggle, XtNcallback, toggle_receive, (XtPointer)&s_false); receive_toggle = XtVaCreateManagedWidget( "receive", commandWidgetClass, ft_dialog, XtNfromVert, send_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(receive_toggle, receive_flag ? diamond : no_diamond); XtAddCallback(receive_toggle, XtNcallback, toggle_receive, (XtPointer)&s_true); /* Create ASCII/binary toggles. */ ascii_toggle = XtVaCreateManagedWidget( "ascii", commandWidgetClass, ft_dialog, XtNfromVert, receive_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(ascii_toggle, ascii_flag ? diamond : no_diamond); XtAddCallback(ascii_toggle, XtNcallback, toggle_ascii, (XtPointer)&s_true); binary_toggle = XtVaCreateManagedWidget( "binary", commandWidgetClass, ft_dialog, XtNfromVert, ascii_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(binary_toggle, ascii_flag ? no_diamond : diamond); XtAddCallback(binary_toggle, XtNcallback, toggle_ascii, (XtPointer)&s_false); /* Create append toggle. */ append_widget = XtVaCreateManagedWidget( "append", commandWidgetClass, ft_dialog, XtNfromVert, binary_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(append_widget, append_flag ? dot : no_dot); XtAddCallback(append_widget, XtNcallback, toggle_append, NULL); /* Set up the recfm group. */ recfm_label = XtVaCreateManagedWidget( "file", labelWidgetClass, ft_dialog, XtNfromVert, append_widget, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_register_sensitivity(recfm_label, &receive_flag, False, BN, False, BN, False); recfm_options[0] = XtVaCreateManagedWidget( "recfmDefault", commandWidgetClass, ft_dialog, XtNfromVert, recfm_label, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[0], (recfm == DEFAULT_RECFM) ? diamond : no_diamond); XtAddCallback(recfm_options[0], XtNcallback, recfm_callback, (XtPointer)&r_default_recfm); dialog_register_sensitivity(recfm_options[0], &receive_flag, False, BN, False, BN, False); recfm_options[1] = XtVaCreateManagedWidget( "fixed", commandWidgetClass, ft_dialog, XtNfromVert, recfm_options[0], XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[1], (recfm == RECFM_FIXED) ? diamond : no_diamond); XtAddCallback(recfm_options[1], XtNcallback, recfm_callback, (XtPointer)&r_fixed); dialog_register_sensitivity(recfm_options[1], &receive_flag, False, BN, False, BN, False); recfm_options[2] = XtVaCreateManagedWidget( "variable", commandWidgetClass, ft_dialog, XtNfromVert, recfm_options[1], XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[2], (recfm == RECFM_VARIABLE) ? diamond : no_diamond); XtAddCallback(recfm_options[2], XtNcallback, recfm_callback, (XtPointer)&r_variable); dialog_register_sensitivity(recfm_options[2], &receive_flag, False, BN, False, BN, False); recfm_options[3] = XtVaCreateManagedWidget( "undefined", commandWidgetClass, ft_dialog, XtNfromVert, recfm_options[2], XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[3], (recfm == RECFM_UNDEFINED) ? diamond : no_diamond); XtAddCallback(recfm_options[3], XtNcallback, recfm_callback, (XtPointer)&r_undefined); dialog_register_sensitivity(recfm_options[3], &receive_flag, False, &vm_flag, False, BN, False); lrecl_label = XtVaCreateManagedWidget( "lrecl", labelWidgetClass, ft_dialog, XtNfromVert, recfm_options[3], XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_register_sensitivity(lrecl_label, &receive_flag, False, &recfm_default, False, BN, False); lrecl_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, recfm_options[3], XtNvertDistance, 3, XtNfromHoriz, lrecl_label, XtNhorizDistance, MARGIN, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(lrecl_label, lrecl_widget, XtNheight); w = XawTextGetSource(lrecl_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(lrecl_widget, &receive_flag, False, &recfm_default, False, BN, False); blksize_label = XtVaCreateManagedWidget( "blksize", labelWidgetClass, ft_dialog, XtNfromVert, lrecl_widget, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_match_dimension(blksize_label, lrecl_label, XtNwidth); dialog_register_sensitivity(blksize_label, &receive_flag, False, &recfm_default, False, BN, False); blksize_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, lrecl_widget, XtNvertDistance, 3, XtNfromHoriz, blksize_label, XtNhorizDistance, MARGIN, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(blksize_label, blksize_widget, XtNheight); w = XawTextGetSource(blksize_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(blksize_widget, &receive_flag, False, &recfm_default, False, BN, False); /* Find the widest widget in the left column. */ XtVaGetValues(send_toggle, XtNwidth, &maxw, NULL); h_ref = send_toggle; #define REMAX(w) { \ XtVaGetValues((w), XtNwidth, &d1, NULL); \ if (d1 > maxw) { \ maxw = d1; \ h_ref = (w); \ } \ } REMAX(receive_toggle); REMAX(ascii_toggle); REMAX(binary_toggle); REMAX(append_widget); #undef REMAX /* Create the right column buttons. */ /* Create VM/TSO toggle. */ vm_toggle = XtVaCreateManagedWidget( "vm", commandWidgetClass, ft_dialog, XtNfromVert, host_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(vm_toggle, vm_flag ? diamond : no_diamond); XtAddCallback(vm_toggle, XtNcallback, toggle_vm, (XtPointer)&s_true); tso_toggle = XtVaCreateManagedWidget( "tso", commandWidgetClass, ft_dialog, XtNfromVert, vm_toggle, XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(tso_toggle, vm_flag ? no_diamond : diamond); XtAddCallback(tso_toggle, XtNcallback, toggle_vm, (XtPointer)&s_false); /* Create CR toggle. */ cr_widget = XtVaCreateManagedWidget( "cr", commandWidgetClass, ft_dialog, XtNfromVert, tso_toggle, XtNvertDistance, FAR_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(cr_widget, cr_flag ? dot : no_dot); XtAddCallback(cr_widget, XtNcallback, toggle_cr, 0); dialog_register_sensitivity(cr_widget, BN, False, BN, False, BN, False); /* Create remap toggle. */ remap_widget = XtVaCreateManagedWidget( "remap", commandWidgetClass, ft_dialog, XtNfromVert, cr_widget, XtNfromHoriz, h_ref, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(remap_widget, remap_flag ? dot : no_dot); XtAddCallback(remap_widget, XtNcallback, toggle_remap, NULL); dialog_register_sensitivity(remap_widget, &ascii_flag, True, BN, False, BN, False); /* Set up the Units group. */ units_label = XtVaCreateManagedWidget( "units", labelWidgetClass, ft_dialog, XtNfromVert, append_widget, XtNvertDistance, FAR_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_register_sensitivity(units_label, &receive_flag, False, &vm_flag, False, BN, False); units_options[0] = XtVaCreateManagedWidget( "spaceDefault", commandWidgetClass, ft_dialog, XtNfromVert, units_label, XtNvertDistance, 3, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[0], (units == DEFAULT_UNITS) ? diamond : no_diamond); XtAddCallback(units_options[0], XtNcallback, units_callback, (XtPointer)&u_default_units); dialog_register_sensitivity(units_options[0], &receive_flag, False, &vm_flag, False, BN, False); units_options[1] = XtVaCreateManagedWidget( "tracks", commandWidgetClass, ft_dialog, XtNfromVert, units_options[0], XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[1], (units == TRACKS) ? diamond : no_diamond); XtAddCallback(units_options[1], XtNcallback, units_callback, (XtPointer)&u_tracks); dialog_register_sensitivity(units_options[1], &receive_flag, False, &vm_flag, False, BN, False); units_options[2] = XtVaCreateManagedWidget( "cylinders", commandWidgetClass, ft_dialog, XtNfromVert, units_options[1], XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[2], (units == CYLINDERS) ? diamond : no_diamond); XtAddCallback(units_options[2], XtNcallback, units_callback, (XtPointer)&u_cylinders); dialog_register_sensitivity(units_options[2], &receive_flag, False, &vm_flag, False, BN, False); units_options[3] = XtVaCreateManagedWidget( "avblock", commandWidgetClass, ft_dialog, XtNfromVert, units_options[2], XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[3], (units == AVBLOCK) ? diamond : no_diamond); XtAddCallback(units_options[3], XtNcallback, units_callback, (XtPointer)&u_avblock); dialog_register_sensitivity(units_options[3], &receive_flag, False, &vm_flag, False, BN, False); primspace_label = XtVaCreateManagedWidget( "primspace", labelWidgetClass, ft_dialog, XtNfromVert, units_options[3], XtNvertDistance, 3, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_register_sensitivity(primspace_label, &receive_flag, False, &vm_flag, False, &units_default, False); primspace_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, units_options[3], XtNvertDistance, 3, XtNfromHoriz, primspace_label, XtNhorizDistance, 0, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(primspace_label, primspace_widget, XtNheight); w = XawTextGetSource(primspace_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(primspace_widget, &receive_flag, False, &vm_flag, False, &units_default, False); secspace_label = XtVaCreateManagedWidget( "secspace", labelWidgetClass, ft_dialog, XtNfromVert, primspace_widget, XtNvertDistance, 3, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_match_dimension(primspace_label, secspace_label, XtNwidth); dialog_register_sensitivity(secspace_label, &receive_flag, False, &vm_flag, False, &units_default, False); secspace_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, primspace_widget, XtNvertDistance, 3, XtNfromHoriz, secspace_label, XtNhorizDistance, 0, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(secspace_label, secspace_widget, XtNheight); w = XawTextGetSource(secspace_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(secspace_widget, &receive_flag, False, &vm_flag, False, &units_default, False); /* Set up the DFT buffer size. */ buffersize_label = XtVaCreateManagedWidget( "buffersize", labelWidgetClass, ft_dialog, XtNfromVert, blksize_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); buffersize_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, blksize_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, buffersize_label, XtNhorizDistance, 0, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(buffersize_label, buffersize_widget, XtNheight); w = XawTextGetSource(buffersize_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(buffersize_widget, BN, False, BN, False, BN, False); set_dft_buffersize(); (void) sprintf(buflen_buf, "%d", dft_buffersize); XtVaSetValues(buffersize_widget, XtNstring, buflen_buf, NULL); /* Set up the buttons at the bottom. */ start_button = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, ft_dialog, XtNfromVert, buffersize_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(start_button, XtNcallback, ft_start_callback, (XtPointer)NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, ft_dialog, XtNfromVert, buffersize_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, start_button, XtNhorizDistance, BUTTON_GAP, NULL); XtAddCallback(cancel_button, XtNcallback, ft_cancel, 0); } /* Callbacks for all the transfer widgets. */ /* Transfer pop-up popping up. */ static void ft_popup_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Set the focus to the local file widget. */ PA_dialog_focus_action(local_file, (XEvent *)NULL, (String *)NULL, (Cardinal *)NULL); /* Disallow overwrites. */ allow_overwrite = False; } /* Cancel button pushed. */ static void ft_cancel(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(ft_shell); } /* recfm options. */ static void recfm_callback(Widget w, XtPointer user_data, XtPointer call_data _is_unused) { recfm = *(enum recfm *)user_data; recfm_default = (recfm == DEFAULT_RECFM); dialog_check_sensitivity(&recfm_default); dialog_flip_toggles(&recfm_toggles, w); } /* Units options. */ static void units_callback(Widget w, XtPointer user_data, XtPointer call_data _is_unused) { units = *(enum units *)user_data; units_default = (units == DEFAULT_UNITS); dialog_check_sensitivity(&units_default); dialog_flip_toggles(&units_toggles, w); } /* OK button pushed. */ static void ft_start_callback(Widget w _is_unused, XtPointer call_parms _is_unused, XtPointer call_data _is_unused) { if (ft_start()) { XtPopdown(ft_shell); popup_progress(); } } /* Send/receive options. */ static void toggle_receive(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ receive_flag = *(Boolean *)client_data; /* Change the widget states. */ dialog_mark_toggle(receive_toggle, receive_flag ? diamond : no_diamond); dialog_mark_toggle(send_toggle, receive_flag ? no_diamond : diamond); dialog_check_sensitivity(&receive_flag); } /* Ascii/binary options. */ static void toggle_ascii(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag. */ ascii_flag = *(Boolean *)client_data; /* Change the widget states. */ dialog_mark_toggle(ascii_toggle, ascii_flag ? diamond : no_diamond); dialog_mark_toggle(binary_toggle, ascii_flag ? no_diamond : diamond); cr_flag = ascii_flag; remap_flag = ascii_flag; dialog_mark_toggle(cr_widget, cr_flag ? dot : no_dot); dialog_mark_toggle(remap_widget, remap_flag ? dot : no_dot); dialog_check_sensitivity(&ascii_flag); } /* CR option. */ static void toggle_cr(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle the cr flag */ cr_flag = !cr_flag; dialog_mark_toggle(w, cr_flag ? dot : no_dot); } /* Append option. */ static void toggle_append(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle Append Flag */ append_flag = !append_flag; dialog_mark_toggle(w, append_flag ? dot : no_dot); } /* Remap option. */ static void toggle_remap(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle Remap Flag */ remap_flag = !remap_flag; dialog_mark_toggle(w, remap_flag ? dot : no_dot); } /* TSO/VM option. */ static void toggle_vm(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle the flag. */ vm_flag = *(Boolean *)client_data; /* Change the widget states. */ dialog_mark_toggle(vm_toggle, vm_flag ? diamond : no_diamond); dialog_mark_toggle(tso_toggle, vm_flag ? no_diamond : diamond); if (vm_flag) { if (recfm == RECFM_UNDEFINED) { recfm = DEFAULT_RECFM; recfm_default = True; dialog_flip_toggles(&recfm_toggles, recfm_toggles.widgets[0]); } } dialog_check_sensitivity(&vm_flag); } /* * Begin the transfer. * Returns 1 if the transfer has started, 0 otherwise. */ static int ft_start(void) { char opts[80]; char *op = opts + 1; char *cmd; String buffersize, lrecl, blksize, primspace, secspace; char updated_buffersize[128]; unsigned flen; ft_is_action = False; #if defined(X3270_DBCS) /*[*/ ft_dbcs_state = FT_DBCS_NONE; #endif /*]*/ /* Get the DFT buffer size. */ XtVaGetValues(buffersize_widget, XtNstring, &buffersize, NULL); if (*buffersize) dft_buffersize = atoi(buffersize); else dft_buffersize = 0; set_dft_buffersize(); (void) sprintf(updated_buffersize, "%d", dft_buffersize); XtVaSetValues(buffersize_widget, XtNstring, updated_buffersize, NULL); /* Get the host file from its widget */ XtVaGetValues(host_file, XtNstring, &ft_host_filename, NULL); if (!*ft_host_filename) return 0; /* XXX: probably more validation to do here */ /* Get the local file from it widget */ XtVaGetValues(local_file, XtNstring, &ft_local_filename, NULL); if (!*ft_local_filename) return 0; /* See if the local file can be overwritten. */ if (receive_flag && !append_flag && !allow_overwrite) { ft_local_file = fopen(ft_local_filename, ascii_flag? "r": "rb"); if (ft_local_file != (FILE *)NULL) { (void) fclose(ft_local_file); ft_local_file = (FILE *)NULL; popup_overwrite(); return 0; } } /* Open the local file. */ ft_local_file = fopen(ft_local_filename, local_fflag()); if (ft_local_file == (FILE *)NULL) { allow_overwrite = False; popup_an_errno(errno, "Local file '%s'", ft_local_filename); return 0; } /* Build the ind$file command */ op[0] = '\0'; if (ascii_flag) strcat(op, " ascii"); if (cr_flag) strcat(op, " crlf"); if (append_flag && !receive_flag) strcat(op, " append"); if (!receive_flag) { if (!vm_flag) { if (recfm != DEFAULT_RECFM) { /* RECFM Entered, process */ strcat(op, " recfm("); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; case RECFM_UNDEFINED: strcat(op, "u"); break; default: break; }; strcat(op, ")"); XtVaGetValues(lrecl_widget, XtNstring, &lrecl, NULL); if (strlen(lrecl) > 0) sprintf(eos(op), " lrecl(%s)", lrecl); XtVaGetValues(blksize_widget, XtNstring, &blksize, NULL); if (strlen(blksize) > 0) sprintf(eos(op), " blksize(%s)", blksize); } if (units != DEFAULT_UNITS) { /* Space Entered, processs it */ switch (units) { case TRACKS: strcat(op, " tracks"); break; case CYLINDERS: strcat(op, " cylinders"); break; case AVBLOCK: strcat(op, " avblock"); break; default: break; }; XtVaGetValues(primspace_widget, XtNstring, &primspace, NULL); if (strlen(primspace) > 0) { sprintf(eos(op), " space(%s", primspace); XtVaGetValues(secspace_widget, XtNstring, &secspace, NULL); if (strlen(secspace) > 0) sprintf(eos(op), ",%s", secspace); strcat(op, ")"); } } } else { if (recfm != DEFAULT_RECFM) { strcat(op, " recfm "); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; default: break; }; XtVaGetValues(lrecl_widget, XtNstring, &lrecl, NULL); if (strlen(lrecl) > 0) sprintf(eos(op), " lrecl %s", lrecl); } } } /* Insert the '(' for VM options. */ if (strlen(op) > 0 && vm_flag) { opts[0] = ' '; opts[1] = '('; op = opts; } /* Build the whole command. */ cmd = xs_buffer("ind\\e005Bfile %s %s%s\\n", receive_flag ? "get" : "put", ft_host_filename, op); /* Erase the line and enter the command. */ flen = kybd_prime(); if (!flen || flen < strlen(cmd) - 1) { XtFree(cmd); if (ft_local_file != NULL) { fclose(ft_local_file); ft_local_file = NULL; if (receive_flag && !append_flag) unlink(ft_local_filename); } popup_an_error("%s", get_message("ftUnable")); allow_overwrite = False; return 0; } (void) emulate_input(cmd, strlen(cmd), False); XtFree(cmd); /* Get this thing started. */ ft_state = FT_AWAIT_ACK; ft_is_cut = False; ft_last_cr = False; #if defined(X3270_DBCS) /*[*/ ft_last_dbcs = False; #endif /*]*/ return 1; } /* "Transfer in Progress" pop-up. */ /* Pop up the "in progress" pop-up. */ static void popup_progress(void) { /* Initialize it. */ if (progress_shell == (Widget)NULL) progress_popup_init(); /* Pop it up. */ popup_popup(progress_shell, XtGrabNone); } /* Initialize the "in progress" pop-up. */ static void progress_popup_init(void) { Widget progress_pop, from_label, to_label, cancel_button; /* Create the shell. */ progress_shell = XtVaCreatePopupShell( "ftProgressPopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(progress_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(progress_shell, XtNpopupCallback, progress_popup_callback, (XtPointer)NULL); /* Create a form structure to contain the other stuff */ progress_pop = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, progress_shell, NULL); /* Create the widgets. */ from_label = XtVaCreateManagedWidget( "fromLabel", labelWidgetClass, progress_pop, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); from_file = XtVaCreateManagedWidget( "filename", labelWidgetClass, progress_pop, XtNwidth, FILE_WIDTH, XtNvertDistance, FAR_VGAP, XtNfromHoriz, from_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(from_label, from_file, XtNheight); to_label = XtVaCreateManagedWidget( "toLabel", labelWidgetClass, progress_pop, XtNfromVert, from_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); to_file = XtVaCreateManagedWidget( "filename", labelWidgetClass, progress_pop, XtNwidth, FILE_WIDTH, XtNfromVert, from_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, to_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(to_label, to_file, XtNheight); dialog_match_dimension(from_label, to_label, XtNwidth); waiting = XtVaCreateManagedWidget( "waiting", labelWidgetClass, progress_pop, XtNfromVert, to_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNmappedWhenManaged, False, NULL); ft_status = XtVaCreateManagedWidget( "status", labelWidgetClass, progress_pop, XtNfromVert, to_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNresizable, True, XtNmappedWhenManaged, False, NULL); XtVaGetValues(ft_status, XtNlabel, &status_string, NULL); status_string = XtNewString(status_string); aborting = XtVaCreateManagedWidget( "aborting", labelWidgetClass, progress_pop, XtNfromVert, to_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNmappedWhenManaged, False, NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, progress_pop, XtNfromVert, ft_status, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(cancel_button, XtNcallback, progress_cancel_callback, NULL); } /* Callbacks for the "in progress" pop-up. */ /* In-progress pop-up popped up. */ static void progress_popup_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtVaSetValues(from_file, XtNlabel, receive_flag ? ft_host_filename : ft_local_filename, NULL); XtVaSetValues(to_file, XtNlabel, receive_flag ? ft_local_filename : ft_host_filename, NULL); switch (ft_state) { case FT_AWAIT_ACK: XtUnmapWidget(ft_status); XtUnmapWidget(aborting); XtMapWidget(waiting); break; case FT_RUNNING: XtUnmapWidget(waiting); XtUnmapWidget(aborting); XtMapWidget(ft_status); break; case FT_ABORT_WAIT: case FT_ABORT_SENT: XtUnmapWidget(waiting); XtUnmapWidget(ft_status); XtMapWidget(aborting); break; default: break; } } /* In-progress "cancel" button. */ static void progress_cancel_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { if (ft_state == FT_RUNNING) { ft_state = FT_ABORT_WAIT; XtUnmapWidget(waiting); XtUnmapWidget(ft_status); XtMapWidget(aborting); } else { /* Impatient user or hung host -- just clean up. */ ft_complete(get_message("ftUserCancel")); } } /* "Overwrite existing?" pop-up. */ /* Pop up the "overwrite" pop-up. */ static void popup_overwrite(void) { /* Initialize it. */ if (overwrite_shell == (Widget)NULL) overwrite_popup_init(); /* Pop it up. */ popup_popup(overwrite_shell, XtGrabExclusive); } /* Initialize the "overwrite" pop-up. */ static void overwrite_popup_init(void) { Widget overwrite_pop, overwrite_name, okay_button, cancel_button; String overwrite_string, label, lf; Dimension d; /* Create the shell. */ overwrite_shell = XtVaCreatePopupShell( "ftOverwritePopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(overwrite_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(overwrite_shell, XtNpopdownCallback, overwrite_popdown, (XtPointer)NULL); /* Create a form structure to contain the other stuff */ overwrite_pop = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, overwrite_shell, NULL); /* Create the widgets. */ overwrite_name = XtVaCreateManagedWidget( "overwriteName", labelWidgetClass, overwrite_pop, XtNvertDistance, MARGIN, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNresizable, True, NULL); XtVaGetValues(overwrite_name, XtNlabel, &overwrite_string, NULL); XtVaGetValues(local_file, XtNstring, &lf, NULL); label = xs_buffer(overwrite_string, lf); XtVaSetValues(overwrite_name, XtNlabel, label, NULL); XtFree(label); XtVaGetValues(overwrite_name, XtNwidth, &d, NULL); if ((Dimension)(d + 20) < 400) d = 400; else d += 20; XtVaSetValues(overwrite_name, XtNwidth, d, NULL); XtVaGetValues(overwrite_name, XtNheight, &d, NULL); XtVaSetValues(overwrite_name, XtNheight, d + 20, NULL); okay_button = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, overwrite_pop, XtNfromVert, overwrite_name, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(okay_button, XtNcallback, overwrite_okay_callback, NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, overwrite_pop, XtNfromVert, overwrite_name, XtNvertDistance, FAR_VGAP, XtNfromHoriz, okay_button, XtNhorizDistance, BUTTON_GAP, NULL); XtAddCallback(cancel_button, XtNcallback, overwrite_cancel_callback, NULL); } /* Overwrite "okay" button. */ static void overwrite_okay_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(overwrite_shell); allow_overwrite = True; if (ft_start()) { XtPopdown(ft_shell); popup_progress(); } } /* Overwrite "cancel" button. */ static void overwrite_cancel_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(overwrite_shell); } /* Overwrite pop-up popped down. */ static void overwrite_popdown(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtDestroyWidget(overwrite_shell); overwrite_shell = (Widget)NULL; } #endif /*]*/ /* External entry points called by ft_dft and ft_cut. */ /* Pop up a message, end the transfer. */ void ft_complete(const char *errmsg) { /* Close the local file. */ if (ft_local_file != (FILE *)NULL && fclose(ft_local_file) < 0) popup_an_errno(errno, "close(%s)", ft_local_filename); ft_local_file = (FILE *)NULL; /* Clean up the state. */ ft_state = FT_NONE; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ /* Pop down the in-progress shell. */ if (!ft_is_action) XtPopdown(progress_shell); #endif /*]*/ /* Pop up the text. */ if (errmsg != CN) { char *msg_copy = NewString(errmsg); /* Make sure the error message will fit on the display. */ if (strlen(msg_copy) > 50 && strchr(msg_copy, '\n') == CN) { char *s = msg_copy + 50; while (s > msg_copy && *s != ' ') s--; if (s > msg_copy) *s = '\n'; /* yikes! */ } #if defined(C3270) /*[*/ printf("\r%79s\n", ""); fflush(stdout); #endif /*]*/ popup_an_error("%s", msg_copy); Free(msg_copy); } else { struct timeval t1; double bytes_sec; char *buf; char kbuf[256]; (void) gettimeofday(&t1, (struct timezone *)NULL); bytes_sec = (double)ft_length / ((double)(t1.tv_sec - t0.tv_sec) + (double)(t1.tv_usec - t0.tv_usec) / 1.0e6); buf = Malloc(256); (void) sprintf(buf, get_message("ftComplete"), ft_length, display_scale(bytes_sec, kbuf, sizeof(kbuf)), ft_is_cut ? "CUT" : "DFT"); if (ft_is_action) { #if defined(C3270) /*[*/ printf("\r%79s\n", ""); fflush(stdout); #endif /*]*/ sms_info("%s", buf); sms_continue(); } #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ else popup_an_info("%s", buf); #endif /*]*/ Free(buf); } } /* Update the bytes-transferred count on the progress pop-up. */ void ft_update_length(void) { #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ char text_string[80]; /* Format the message */ if (!ft_is_action) { sprintf(text_string, status_string, ft_length); XtVaSetValues(ft_status, XtNlabel, text_string, NULL); } #endif /*]*/ #if defined(C3270) /*[*/ printf("\r%79s\rTransferred %lu bytes. ", "", ft_length); fflush(stdout); #endif /*]*/ } /* Process a transfer acknowledgement. */ void ft_running(Boolean is_cut) { if (ft_state == FT_AWAIT_ACK) { ft_state = FT_RUNNING; if (ft_start_id) { RemoveTimeOut(ft_start_id); ft_start_id = 0; } } ft_is_cut = is_cut; (void) gettimeofday(&t0, (struct timezone *)NULL); ft_length = 0; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ if (!ft_is_action) { XtUnmapWidget(waiting); ft_update_length(); XtMapWidget(ft_status); } #endif /*]*/ #if defined(C3270) /*[*/ ft_update_length(); #endif /*]*/ } /* Process a protocol-generated abort. */ void ft_aborting(void) { if (ft_state == FT_RUNNING || ft_state == FT_ABORT_WAIT) { ft_state = FT_ABORT_SENT; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ if (!ft_is_action) { XtUnmapWidget(waiting); XtUnmapWidget(ft_status); XtMapWidget(aborting); } #endif /*]*/ } } /* Process a disconnect abort. */ static void ft_connected(Boolean ignored _is_unused) { if (!CONNECTED && ft_state != FT_NONE) ft_complete(get_message("ftDisconnected")); } /* Process an abort from no longer being in 3270 mode. */ static void ft_in3270(Boolean ignored _is_unused) { if (!IN_3270 && ft_state != FT_NONE) ft_complete(get_message("ftNot3270")); } /* * Script/macro action for file transfer. * Transfer(option=value[,...]) * Options are: * Direction=send|receive default receive * HostFile=name required * LocalFile=name required * Host=[tso|vm] default tso * Mode=[ascii|binary] default ascii * Cr=[add|remove|keep] default add/remove * Remap=[yes|no] default yes * Exist=[keep|replace|append] default keep * Recfm=[default|fixed|variable|undefined] default default * Lrecl=n no default * Blksize=n no default * Allocation=[default|tracks|cylinders|avblock] default default * PrimarySpace=n no default * SecondarySpace=n no default */ static struct { const char *name; char *value; const char *keyword[4]; } tp[] = { { "Direction", CN, { "receive", "send" } }, { "HostFile" }, { "LocalFile" }, { "Host", CN, { "tso", "vm" } }, { "Mode", CN, { "ascii", "binary" } }, { "Cr", CN, { "auto", "remove", "add", "keep" } }, { "Remap", CN, { "yes", "no" } }, { "Exist", CN, { "keep", "replace", "append" } }, { "Recfm", CN, { "default", "fixed", "variable", "undefined" } }, { "Lrecl" }, { "Blksize" }, { "Allocation", CN, { "default", "tracks", "cylinders", "avblock" } }, { "PrimarySpace" }, { "SecondarySpace" }, { "BufferSize" }, { CN } }; enum ft_parm_name { PARM_DIRECTION, PARM_HOST_FILE, PARM_LOCAL_FILE, PARM_HOST, PARM_MODE, PARM_CR, PARM_REMAP, PARM_EXIST, PARM_RECFM, PARM_LRECL, PARM_BLKSIZE, PARM_ALLOCATION, PARM_PRIMARY_SPACE, PARM_SECONDARY_SPACE, PARM_BUFFER_SIZE, N_PARMS }; void Transfer_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int i, k; Cardinal j; long l; char *ptr; char opts[80]; char *op = opts + 1; char *cmd; unsigned flen; String *xparams = params; Cardinal xnparams = *num_params; action_debug(Transfer_action, event, params, num_params); ft_is_action = True; /* Make sure we're connected. */ if (!IN_3270) { popup_an_error("Not connected"); return; } #if defined(C3270) || defined(WC3270) /*[*/ /* Check for interactive mode. */ if (xnparams == 0 && escaped) { if (interactive_transfer(&xparams, &xnparams) < 0) { printf("\n"); fflush(stdout); action_output("Aborted"); return; } } #endif /*]*/ /* Set everything to the default. */ for (i = 0; i < N_PARMS; i++) { Free(tp[i].value); if (tp[i].keyword[0] != CN) tp[i].value = NewString(tp[i].keyword[0]); else tp[i].value = CN; } /* See what they specified. */ for (j = 0; j < xnparams; j++) { for (i = 0; i < N_PARMS; i++) { char *eq; int kwlen; eq = strchr(xparams[j], '='); if (eq == CN || eq == xparams[j] || !*(eq + 1)) { popup_an_error("Invalid option syntax: '%s'", xparams[j]); return; } kwlen = eq - xparams[j]; if (!strncasecmp(xparams[j], tp[i].name, kwlen) && !tp[i].name[kwlen]) { if (tp[i].keyword[0]) { for (k = 0; tp[i].keyword[k] != CN && k < 4; k++) { if (!strcasecmp(eq + 1, tp[i].keyword[k])) { break; } } if (k >= 4 || tp[i].keyword[k] == CN) { popup_an_error("Invalid option " "value: '%s'", eq + 1); return; } } else switch (i) { case PARM_LRECL: case PARM_BLKSIZE: case PARM_PRIMARY_SPACE: case PARM_SECONDARY_SPACE: case PARM_BUFFER_SIZE: l = strtol(eq + 1, &ptr, 10); if (ptr == eq + 1 || *ptr) { popup_an_error("Invalid option " "value: '%s'", eq + 1); return; } break; default: break; } tp[i].value = NewString(eq + 1); break; } } if (i >= N_PARMS) { popup_an_error("Unknown option: %s", xparams[j]); return; } } /* Check for required values. */ if (tp[PARM_HOST_FILE].value == CN) { popup_an_error("Missing 'HostFile' option"); return; } if (tp[PARM_LOCAL_FILE].value == CN) { popup_an_error("Missing 'LocalFile' option"); return; } /* * Start the transfer. Much of this is duplicated from ft_start() * and should be made common. */ if (tp[PARM_BUFFER_SIZE].value != CN) dft_buffersize = atoi(tp[PARM_BUFFER_SIZE].value); else dft_buffersize = 0; set_dft_buffersize(); receive_flag = !strcasecmp(tp[PARM_DIRECTION].value, "receive"); append_flag = !strcasecmp(tp[PARM_EXIST].value, "append"); allow_overwrite = !strcasecmp(tp[PARM_EXIST].value, "replace"); ascii_flag = !strcasecmp(tp[PARM_MODE].value, "ascii"); if (!strcasecmp(tp[PARM_CR].value, "auto")) { cr_flag = ascii_flag; } else { cr_flag = !strcasecmp(tp[PARM_CR].value, "remove") || !strcasecmp(tp[PARM_CR].value, "add"); } if (ascii_flag) remap_flag = !strcasecmp(tp[PARM_REMAP].value, "yes"); vm_flag = !strcasecmp(tp[PARM_HOST].value, "vm"); recfm = DEFAULT_RECFM; for (k = 0; tp[PARM_RECFM].keyword[k] != CN && k < 4; k++) { if (!strcasecmp(tp[PARM_RECFM].value, tp[PARM_RECFM].keyword[k])) { recfm = (enum recfm)k; break; } } units = DEFAULT_UNITS; for (k = 0; tp[PARM_ALLOCATION].keyword[k] != CN && k < 4; k++) { if (!strcasecmp(tp[PARM_ALLOCATION].value, tp[PARM_ALLOCATION].keyword[k])) { units = (enum units)k; break; } } ft_host_filename = tp[PARM_HOST_FILE].value; ft_local_filename = tp[PARM_LOCAL_FILE].value; /* See if the local file can be overwritten. */ if (receive_flag && !append_flag && !allow_overwrite) { ft_local_file = fopen(ft_local_filename, ascii_flag? "r": "rb"); if (ft_local_file != (FILE *)NULL) { (void) fclose(ft_local_file); popup_an_error("File exists"); return; } } /* Open the local file. */ ft_local_file = fopen(ft_local_filename, local_fflag()); if (ft_local_file == (FILE *)NULL) { popup_an_errno(errno, "Local file '%s'", ft_local_filename); return; } /* Build the ind$file command */ op[0] = '\0'; if (ascii_flag) strcat(op, " ascii"); if (cr_flag) strcat(op, " crlf"); if (append_flag && !receive_flag) strcat(op, " append"); if (!receive_flag) { if (!vm_flag) { if (recfm != DEFAULT_RECFM) { /* RECFM Entered, process */ strcat(op, " recfm("); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; case RECFM_UNDEFINED: strcat(op, "u"); break; default: break; }; strcat(op, ")"); if (tp[PARM_LRECL].value != CN) sprintf(eos(op), " lrecl(%s)", tp[PARM_LRECL].value); if (tp[PARM_BLKSIZE].value != CN) sprintf(eos(op), " blksize(%s)", tp[PARM_BLKSIZE].value); } if (units != DEFAULT_UNITS) { /* Space Entered, processs it */ switch (units) { case TRACKS: strcat(op, " tracks"); break; case CYLINDERS: strcat(op, " cylinders"); break; case AVBLOCK: strcat(op, " avblock"); break; default: break; }; if (tp[PARM_PRIMARY_SPACE].value != CN) { sprintf(eos(op), " space(%s", tp[PARM_PRIMARY_SPACE].value); if (tp[PARM_SECONDARY_SPACE].value) sprintf(eos(op), ",%s", tp[PARM_SECONDARY_SPACE].value); strcat(op, ")"); } } } else { if (recfm != DEFAULT_RECFM) { strcat(op, " recfm "); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; default: break; }; if (tp[PARM_LRECL].value) sprintf(eos(op), " lrecl %s", tp[PARM_LRECL].value); } } } /* Insert the '(' for VM options. */ if (strlen(op) > 0 && vm_flag) { opts[0] = ' '; opts[1] = '('; op = opts; } /* Build the whole command. */ cmd = xs_buffer("ind\\e005Bfile %s %s%s\\n", receive_flag ? "get" : "put", ft_host_filename, op); /* Erase the line and enter the command. */ flen = kybd_prime(); if (!flen || flen < strlen(cmd) - 1) { Free(cmd); if (ft_local_file != NULL) { fclose(ft_local_file); ft_local_file = NULL; if (receive_flag && !append_flag) unlink(ft_local_filename); } popup_an_error("%s", get_message("ftUnable")); return; } (void) emulate_input(cmd, strlen(cmd), False); Free(cmd); #if defined(C3270) /*[*/ if (!escaped) screen_suspend(); printf("Awaiting start of transfer... "); fflush(stdout); #endif /*]*/ /* Get this thing started. */ ft_start_id = AddTimeOut(10 * 1000, ft_didnt_start); ft_state = FT_AWAIT_ACK; ft_is_cut = False; } #endif /*]*/ ibm-3270-3.3.10ga4/c3270/scrollc.h0000644000175000017500000000315511254565673015550 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of scrollc.h */ #define scroll_save(n, trim_blanks) #define scroll_to_bottom() ibm-3270-3.3.10ga4/c3270/ctlrc.h0000644000175000017500000001154111254565704015207 0ustar bastianbastian/* * Copyright (c) 2005-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ctlrc.h * Global declarations for ctlr.c. */ enum pds { PDS_OKAY_NO_OUTPUT = 0, /* command accepted, produced no output */ PDS_OKAY_OUTPUT = 1, /* command accepted, produced output */ PDS_BAD_CMD = -1, /* command rejected */ PDS_BAD_ADDR = -2 /* command contained a bad address */ }; void ctlr_aclear(int baddr, int count, int clear_ea); void ctlr_add(int baddr, unsigned char c, unsigned char cs); void ctlr_add_bg(int baddr, unsigned char color); void ctlr_add_cs(int baddr, unsigned char cs); void ctlr_add_fa(int baddr, unsigned char fa, unsigned char cs); void ctlr_add_fg(int baddr, unsigned char color); void ctlr_add_gr(int baddr, unsigned char gr); void ctlr_altbuffer(Boolean alt); Boolean ctlr_any_data(void); void ctlr_bcopy(int baddr_from, int baddr_to, int count, int move_ea); void ctlr_changed(int bstart, int bend); void ctlr_clear(Boolean can_snap); void ctlr_erase(Boolean alt); void ctlr_erase_all_unprotected(void); void ctlr_init(unsigned cmask); void ctlr_read_buffer(unsigned char aid_byte); void ctlr_read_modified(unsigned char aid_byte, Boolean all); void ctlr_reinit(unsigned cmask); void ctlr_scroll(void); void ctlr_shrink(void); void ctlr_snap_buffer(void); void ctlr_snap_buffer_sscp_lu(void); Boolean ctlr_snap_modes(void); void ctlr_wrapping_memmove(int baddr_to, int baddr_from, int count); enum pds ctlr_write(unsigned char buf[], int buflen, Boolean erase); void ctlr_write_sscp_lu(unsigned char buf[], int buflen); struct ea *fa2ea(int baddr); int find_field_attribute(int baddr); unsigned char get_field_attribute(register int baddr); Boolean get_bounded_field_attribute(register int baddr, register int bound, unsigned char *fa_out); void mdt_clear(int baddr); void mdt_set(int baddr); int next_unprotected(int baddr0); enum pds process_ds(unsigned char *buf, int buflen); void ps_process(void); void set_rows_cols(int mn, int ovc, int ovr); void ticking_start(Boolean anyway); void toggle_nop(struct toggle *t, enum toggle_type tt); void toggle_showTiming(struct toggle *t, enum toggle_type tt); enum dbcs_state { DBCS_NONE = 0, /* position is not DBCS */ DBCS_LEFT, /* position is left half of DBCS character */ DBCS_RIGHT, /* position is right half of DBCS character */ DBCS_SI, /* position is SI terminating DBCS subfield */ DBCS_SB, /* position is SBCS character after the SI */ DBCS_LEFT_WRAP, /* position is left half of split DBCS */ DBCS_RIGHT_WRAP, /* position is right half of split DBCS */ DBCS_DEAD /* position is dead left-half DBCS */ }; #define IS_LEFT(d) ((d) == DBCS_LEFT || (d) == DBCS_LEFT_WRAP) #define IS_RIGHT(d) ((d) == DBCS_RIGHT || (d) == DBCS_RIGHT_WRAP) #define IS_DBCS(d) (IS_LEFT(d) || IS_RIGHT(d)) #define MAKE_LEFT(b) { \ if (((b) % COLS) == ((ROWS * COLS) - 1)) \ ea_buf[(b)].db = DBCS_LEFT_WRAP; \ else \ ea_buf[(b)].db = DBCS_LEFT; \ } #define MAKE_RIGHT(b) { \ if (!((b) % COLS)) \ ea_buf[(b)].db = DBCS_RIGHT_WRAP; \ else \ ea_buf[(b)].db = DBCS_RIGHT; \ } #define SOSI(c) (((c) == EBC_so)? EBC_si: EBC_so) enum dbcs_why { DBCS_FIELD, DBCS_SUBFIELD, DBCS_ATTRIBUTE }; #if defined(X3270_DBCS) /*[*/ enum dbcs_state ctlr_dbcs_state(int baddr); extern enum dbcs_state ctlr_lookleft_state(int baddr, enum dbcs_why *why); int ctlr_dbcs_postprocess(void); #else /*][*/ #define ctlr_dbcs_state(b) DBCS_NONE #define ctlr_lookleft_state(b, w) DBCS_NONE #define ctlr_dbcs_postprocess() 0 #endif /*]*/ ibm-3270-3.3.10ga4/c3270/sfc.h0000644000175000017500000000320211254565704014646 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * sfc.h * Global declarations for sf.c. */ extern enum pds write_structured_field(unsigned char buf[], int buflen); ibm-3270-3.3.10ga4/c3270/print.c0000644000175000017500000007103711254565704015235 0ustar bastianbastian/* * Copyright (c) 1994-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * print.c * Screen printing functions. */ #include "globals.h" #include "appres.h" #include "3270ds.h" #include "ctlr.h" #include "ctlrc.h" #include "tablesc.h" #include #if defined(X3270_DISPLAY) /*[*/ #include #include #endif /*]*/ #include "objects.h" #include "resources.h" #include "actionsc.h" #include "charsetc.h" #include "popupsc.h" #include "printc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include #include #include #include #endif /*]*/ #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ /* Globals */ #if defined(X3270_DISPLAY) /*[*/ char *print_text_command = NULL; Boolean ptc_changed = FALSE; #endif /*]*/ /* Statics */ #if defined(X3270_DISPLAY) /*[*/ static Widget print_text_shell = (Widget)NULL; static Widget save_text_shell = (Widget)NULL; static Widget print_window_shell = (Widget)NULL; char *print_window_command = CN; #endif /*]*/ /* Print Text popup */ /* * Map default 3279 colors. This code is duplicated three times. ;-( */ static int color_from_fa(unsigned char fa) { static int field_colors[4] = { HOST_COLOR_GREEN, /* default */ HOST_COLOR_RED, /* intensified */ HOST_COLOR_BLUE, /* protected */ HOST_COLOR_WHITE /* protected, intensified */ # define DEFCOLOR_MAP(f) \ ((((f) & FA_PROTECT) >> 4) | (((f) & FA_INT_HIGH_SEL) >> 3)) }; if (appres.m3279) return field_colors[DEFCOLOR_MAP(fa)]; else return HOST_COLOR_GREEN; } /* * Map 3279 colors onto HTML colors. */ static char * html_color(int color) { static char *html_color_map[] = { "black", "deepSkyBlue", "red", "pink", "green", "turquoise", "yellow", "white", "black", "blue3", "orange", "purple", "paleGreen", "paleTurquoise2", "grey", "white" }; if (color >= HOST_COLOR_NEUTRAL_BLACK && color <= HOST_COLOR_WHITE) return html_color_map[color]; else return "black"; } /* Convert a caption string to UTF-8 RTF. */ static char * rtf_caption(const char *caption) { ucs4_t u; int consumed; enum me_fail error; char *result = Malloc(1); int rlen = 1; char uubuf[64]; char mb[16]; int nmb; result[0] = '\0'; while (*caption) { u = multibyte_to_unicode(caption, strlen(caption), &consumed, &error); if (u == 0) break; if (u & ~0x7f) { sprintf(uubuf, "\\u%u?", u); } else { nmb = unicode_to_multibyte(u, mb, sizeof(mb)); if (mb[0] == '\\' || mb[0] == '{' || mb[0] == '}') sprintf(uubuf, "\\%c", mb[0]); else if (mb[0] == '-') sprintf(uubuf, "\\_"); else if (mb[0] == ' ') sprintf(uubuf, "\\~"); else { uubuf[0] = mb[0]; uubuf[1] = '\0'; } } result = Realloc(result, rlen + strlen(uubuf)); strcat(result, uubuf); rlen += strlen(uubuf); caption += consumed; } return result; } /* Convert a caption string to UTF-8 HTML. */ static char * html_caption(const char *caption) { ucs4_t u; int consumed; enum me_fail error; char *result = Malloc(1); int rlen = 1; char u8buf[16]; int nu8; result[0] = '\0'; while (*caption) { u = multibyte_to_unicode(caption, strlen(caption), &consumed, &error); if (u == 0) break; switch (u) { case '<': result = Realloc(result, rlen + 4); strcat(result, "<"); rlen += 4; break; case '>': result = Realloc(result, rlen + 4); strcat(result, ">"); rlen += 4; break; case '&': result = Realloc(result, rlen + 5); strcat(result, "&"); rlen += 5; break; default: nu8 = unicode_to_utf8(u, u8buf); result = Realloc(result, rlen + nu8); memcpy(result + rlen - 1, u8buf, nu8); rlen += nu8; result[rlen - 1] = '\0'; break; } caption += consumed; } return result; } /* * Print the ASCIIfied contents of the screen onto a stream. * Returns True if anything printed, False otherwise. * * 'ptype' can specify: * P_TEXT: Ordinary text * P_HTML: HTML * P_RTF: Windows rich text * * 'opts' is an OR of: * FPS_EVEN_IF_EMPTY Create a file even if the screen is clear * FPS_MODIFIED_ITALIC Print modified fields in italic * font-style:normal|italic */ Boolean fprint_screen(FILE *f, ptype_t ptype, unsigned opts, char *caption) { register int i; unsigned long uc; int ns = 0; int nr = 0; Boolean any = False; int fa_addr = find_field_attribute(0); unsigned char fa = ea_buf[fa_addr].fa; int fa_fg, current_fg; int fa_bg, current_bg; Bool fa_high, current_high; Bool fa_ital, current_ital; Bool mi = ((opts & FPS_MODIFIED_ITALIC)) != 0; char *xcaption = NULL; if (caption != NULL) { char *ts = strstr(caption, "%T%"); if (ts != NULL) { time_t t = time(NULL); struct tm *tm = localtime(&t); xcaption = Malloc(strlen(caption) + 1 - 3 + 19); strncpy(xcaption, caption, ts - caption); sprintf(xcaption + (ts - caption), "%04d-%02d-%02d %02d:%02d:%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); strcat(xcaption, ts + 3); } else { xcaption = NewString(caption); } } if (ptype != P_TEXT) { opts |= FPS_EVEN_IF_EMPTY; } if (ea_buf[fa_addr].fg) fa_fg = ea_buf[fa_addr].fg & 0x0f; else fa_fg = color_from_fa(fa); current_fg = fa_fg; if (ea_buf[fa_addr].bg) fa_bg = ea_buf[fa_addr].bg & 0x0f; else fa_bg = HOST_COLOR_BLACK; current_bg = fa_bg; if (ea_buf[fa_addr].gr & GR_INTENSIFY) fa_high = True; else fa_high = FA_IS_HIGH(fa); current_high = fa_high; fa_ital = mi && FA_IS_MODIFIED(fa); current_ital = fa_ital; if (ptype == P_RTF) { char *pt_font = get_resource(ResPrintTextFont); char *pt_size = get_resource(ResPrintTextSize); int pt_nsize; if (pt_font == CN) pt_font = "Courier New"; if (pt_size == CN) pt_size = "8"; pt_nsize = atoi(pt_size); if (pt_nsize <= 0) pt_nsize = 8; fprintf(f, "{\\rtf1\\ansi\\ansicpg%u\\deff0\\deflang1033{\\fonttbl{\\f0\\fmodern\\fprq1\\fcharset0 %s;}}\n" "\\viewkind4\\uc1\\pard\\f0\\fs%d ", #if defined(_WIN32) /*[*/ GetACP(), #else /*][*/ 1252, /* the number doesn't matter */ #endif /*]*/ pt_font, pt_nsize * 2); if (xcaption != NULL) { char *hcaption = rtf_caption(xcaption); fprintf(f, "%s\\par\\par\n", hcaption); Free(hcaption); } if (current_high) fprintf(f, "\\b "); } if (ptype == P_HTML) { char *hcaption = NULL; /* Make the caption HTML-safe. */ if (xcaption != NULL) hcaption = html_caption(xcaption); /* Print the preamble. */ fprintf(f, "\n" "\n" " \n" "\n" " \n"); if (hcaption) fprintf(f, "

%s

\n", hcaption); fprintf(f, " " "\n" "
" "
",
			   html_color(current_fg),
			   html_color(current_bg),
			   current_high? "bold": "normal",
			   current_ital? "italic": "normal");
		if (hcaption != NULL)
			Free(hcaption);
	}

	if (ptype == P_TEXT) {
	    	if (xcaption != NULL)
		    	fprintf(f, "%s\n\n", xcaption);
	}

	for (i = 0; i < ROWS*COLS; i++) {
		char mb[16];
		int nmb;

		uc = 0;

		if (i && !(i % COLS)) {
		    	if (ptype == P_HTML)
			    	(void) fputc('\n', f);
			else
				nr++;
			ns = 0;
		}
		if (ea_buf[i].fa) {
			uc = ' ';
			fa = ea_buf[i].fa;
			if (ea_buf[i].fg)
				fa_fg = ea_buf[i].fg & 0x0f;
			else
				fa_fg = color_from_fa(fa);
			if (ea_buf[i].bg)
				fa_bg = ea_buf[i].bg & 0x0f;
			else
				fa_bg = HOST_COLOR_BLACK;
			if (ea_buf[i].gr & GR_INTENSIFY)
				fa_high = True;
			else
				fa_high = FA_IS_HIGH(fa);
			fa_ital = mi && FA_IS_MODIFIED(fa);
		}
		if (FA_IS_ZERO(fa)) {
#if defined(X3270_DBCS) /*[*/
			if (ctlr_dbcs_state(i) == DBCS_LEFT)
			    	uc = 0x3000;
			else
#endif /*]*/
				uc = ' ';
		} else {
		    	/* Convert EBCDIC to Unicode. */
#if defined(X3270_DBCS) /*[*/
			switch (ctlr_dbcs_state(i)) {
			case DBCS_NONE:
			case DBCS_SB:
			    	uc = ebcdic_to_unicode(ea_buf[i].cc,
					ea_buf[i].cs, EUO_NONE);
				if (uc == 0)
				    	uc = ' ';
				break;
			case DBCS_LEFT:
				uc = ebcdic_to_unicode(
					(ea_buf[i].cc << 8) |
					 ea_buf[i + 1].cc,
					CS_BASE, EUO_NONE);
				if (uc == 0)
				    	uc = 0x3000;
				break;
			case DBCS_RIGHT:
				/* skip altogether, we took care of it above */
				continue;
			default:
				uc = ' ';
				break;
			}
#else /*][*/
			uc = ebcdic_to_unicode(ea_buf[i].cc, ea_buf[i].cs,
				EUO_NONE);
			if (uc == 0)
				uc = ' ';
#endif /*]*/
		}

		/* Translate to a type-specific format and write it out. */
		if (uc == ' ' && ptype != P_HTML)
			ns++;
#if defined(X3270_DBCS) /*[*/
		else if (uc == 0x3000) {
		    	if (ptype == P_HTML)
			    	fprintf(f, "  ");
			else
				ns += 2;
		}
#endif /*]*/
		else {
			while (nr) {
			    	if (ptype == P_RTF)
				    	fprintf(f, "\\par");
				(void) fputc('\n', f);
				nr--;
			}
			while (ns) {
			    	if (ptype == P_RTF)
				    	fprintf(f, "\\~");
				else
					(void) fputc(' ', f);
				ns--;
			}
			if (ptype == P_RTF) {
				Bool high;

				if (ea_buf[i].gr & GR_INTENSIFY)
					high = True;
				else
					high = fa_high;
				if (high != current_high) {
					if (high)
						fprintf(f, "\\b ");
					else
						fprintf(f, "\\b0 ");
					current_high = high;
				}
			}
			if (ptype == P_HTML) {
				int fg_color, bg_color;
				Bool high;

				if (ea_buf[i].fg)
					fg_color = ea_buf[i].fg & 0x0f;
				else
					fg_color = fa_fg;
				if (ea_buf[i].bg)
					bg_color = ea_buf[i].bg & 0x0f;
				else
					bg_color = fa_bg;
				if (ea_buf[i].gr & GR_REVERSE) {
				    	int tmp;

					tmp = fg_color;
					fg_color = bg_color;
					bg_color = tmp;
				}

				if (i == cursor_addr) {
				    	fg_color = (bg_color == HOST_COLOR_RED)?
							HOST_COLOR_BLACK: bg_color;
					bg_color = HOST_COLOR_RED;
				}
				if (ea_buf[i].gr & GR_INTENSIFY)
					high = True;
				else
					high = fa_high;

				if (fg_color != current_fg ||
				    bg_color != current_bg ||
				    high != current_high ||
				    fa_ital != current_ital) {
					fprintf(f,
						"",
						html_color(fg_color),
						html_color(bg_color),
						high? "bold": "normal",
						fa_ital? "italic": "normal");
					current_fg = fg_color;
					current_bg = bg_color;
					current_high = high;
					current_ital = fa_ital;
				}
			}
			any = True;
			if (ptype == P_RTF) {
				if (uc & ~0x7f) {
					fprintf(f, "\\u%ld?", uc);
				} else {
					nmb = unicode_to_multibyte(uc,
						mb, sizeof(mb));
					if (mb[0] == '\\' ||
						mb[0] == '{' ||
						mb[0] == '}')
						fprintf(f, "\\%c",
							mb[0]);
					else if (mb[0] == '-')
						fprintf(f, "\\_");
					else if (mb[0] == ' ')
						fprintf(f, "\\~");
					else
						fputc(mb[0], f);
				}
			} else if (ptype == P_HTML) {
				if (uc == '<')
					fprintf(f, "<");
				else if (uc == '&')
				    	fprintf(f, "&");
				else if (uc == '>')
				    	fprintf(f, ">");
				else {
					nmb = unicode_to_utf8(uc, mb);
					{
					    int k;

					    for (k = 0; k < nmb; k++) {
						fputc(mb[k], f);
					    }
					}
				}
			} else {
				nmb = unicode_to_multibyte(uc,
					mb, sizeof(mb));
				(void) fputs(mb, f);
			}
		}
	}

	if (xcaption != NULL)
	    	Free(xcaption);

	if (ptype == P_HTML)
	    	(void) fputc('\n', f);
	else
		nr++;
	if (!any && !(opts & FPS_EVEN_IF_EMPTY) && ptype == P_TEXT)
		return False;
	while (nr) {
	    	if (ptype == P_RTF)
		    	fprintf(f, "\\par");
		if (ptype == P_TEXT)
			(void) fputc('\n', f);
		nr--;
	}
	if (ptype == P_RTF) {
	    	fprintf(f, "\n}\n%c", 0);
	}
	if (ptype == P_HTML) {
		fprintf(f, "%s
\n" " \n" "\n", current_high? "": ""); } return True; } #if !defined(_WIN32) /*[*/ /* Termination code for print text process. */ static void print_text_done(FILE *f, Boolean do_popdown #if defined(X3270_DISPLAY) /*[*/ _is_unused #endif /*]*/ ) { int status; status = pclose(f); if (status) { popup_an_error("Print program exited with status %d.", (status & 0xff00) > 8); } else { #if defined(X3270_DISPLAY) /*[*/ if (do_popdown) XtPopdown(print_text_shell); #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ if (appres.do_confirms) popup_an_info("Screen image printed."); #endif /*]*/ } } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* Callback for "OK" button on the print text popup. */ static void print_text_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *filter; FILE *f; filter = XawDialogGetValueString((Widget)client_data); if (!filter) { XtPopdown(print_text_shell); return; } if (!(f = popen(filter, "w"))) { popup_an_errno(errno, "popen(%s)", filter); return; } if (print_text_command == NULL || strcmp(print_text_command, filter)) { Replace(print_text_command, filter); ptc_changed = True; } (void) fprint_screen(f, P_TEXT, FPS_EVEN_IF_EMPTY, NULL); print_text_done(f, True); } /* Callback for "Plain Text" button on save text popup. */ static void save_text_plain_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *filename; FILE *f; filename = XawDialogGetValueString((Widget)client_data); if (!filename) { XtPopdown(save_text_shell); return; } if (!(f = fopen(filename, "a"))) { popup_an_errno(errno, "%s", filename); return; } (void) fprint_screen(f, P_TEXT, FPS_EVEN_IF_EMPTY, NULL); fclose(f); XtPopdown(save_text_shell); if (appres.do_confirms) popup_an_info("Screen image saved."); } /* Callback for "HTML" button on save text popup. */ static void save_text_html_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *filename; FILE *f; filename = XawDialogGetValueString((Widget)client_data); if (!filename) { XtPopdown(save_text_shell); return; } if (!(f = fopen(filename, "a"))) { popup_an_errno(errno, "%s", filename); return; } (void) fprint_screen(f, P_HTML, FPS_EVEN_IF_EMPTY, NULL); fclose(f); XtPopdown(save_text_shell); if (appres.do_confirms) popup_an_info("Screen image saved."); } /* Pop up the Print Text dialog, given a filter. */ static void popup_print_text(char *filter) { if (print_text_shell == NULL) { print_text_shell = create_form_popup("PrintText", print_text_callback, (XtCallbackProc)NULL, FORM_AS_IS); XtVaSetValues(XtNameToWidget(print_text_shell, ObjDialog), XtNvalue, filter, NULL); } popup_popup(print_text_shell, XtGrabExclusive); } /* Pop up the Save Text dialog. */ static void popup_save_text(char *filename) { if (save_text_shell == NULL) { save_text_shell = create_form_popup("SaveText", save_text_plain_callback, save_text_html_callback, FORM_AS_IS); } if (filename != CN) XtVaSetValues(XtNameToWidget(save_text_shell, ObjDialog), XtNvalue, filename, NULL); popup_popup(save_text_shell, XtGrabExclusive); } #endif /*]*/ #if defined(_WIN32) /*[*/ /* * A Windows version of something like mkstemp(). Creates a temporary * file in $TEMP, returning its path and an open file descriptor. */ int win_mkstemp(char **path, ptype_t ptype) { char *s; int fd; s = getenv("TEMP"); if (s == NULL) s = getenv("TMP"); if (s == NULL) s = "C:"; *path = xs_buffer("%s\\x3h%u.%s", s, getpid(), (ptype == P_RTF)? "rtf": "txt"); fd = open(*path, O_CREAT | O_RDWR, S_IREAD | S_IWRITE); if (fd < 0) { Free(*path); *path = NULL; } return fd; } /* * Find WORDPAD.EXE. */ #define PROGRAMFILES "%ProgramFiles%" char * find_wordpad(void) { char data[1024]; DWORD dlen; char *slash; static char *wp = NULL; HKEY key; if (wp != NULL) return wp; /* Get the shell print command for RTF files. */ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Classes\\rtffile\\shell\\print\\command", 0, KEY_READ, &key) != ERROR_SUCCESS) { return NULL; } dlen = sizeof(data); if (RegQueryValueEx(key, NULL, NULL, NULL, (LPVOID)data, &dlen) != ERROR_SUCCESS) { RegCloseKey(key); return NULL; } RegCloseKey(key); if (data[0] == '"') { char data2[1024]; char *q2; /* The first token is quoted; that's the path. */ strcpy(data2, data + 1); q2 = strchr(data2, '"'); if (q2 == NULL) { return NULL; } *q2 = '\0'; strcpy(data, data2); } else if ((slash = strchr(data, '/')) != NULL) { /* Find the "/p". */ *slash = '\0'; if (*(slash - 1) == ' ') *(slash - 1) = '\0'; } if (!strncasecmp(data, PROGRAMFILES, strlen(PROGRAMFILES))) { char *pf = getenv("PROGRAMFILES"); /* Substitute %ProgramFiles%. */ if (pf == NULL) { return NULL; } wp = xs_buffer("%s\\%s", pf, data + strlen(PROGRAMFILES)); } else { wp = NewString(data); } if (GetShortPathName(wp, data, sizeof(data)) != 0) { Free(wp); wp = NewString(data); } return wp; } #endif /*]*/ /* Print or save the contents of the screen as text. */ void PrintText_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; char *filter = CN; Boolean secure = appres.secure; ptype_t ptype = P_TEXT; Boolean use_file = False; Boolean use_string = False; char *temp_name = NULL; unsigned opts = FPS_EVEN_IF_EMPTY; char *caption = NULL; action_debug(PrintText_action, event, params, num_params); /* * Pick off optional arguments: * file directs the output to a file instead of a command; * must be the last keyword * html generates HTML output instead of ASCII text (and implies * 'file') * rtf generates RTF output instead of ASCII text (and implies * 'file') * modi print modified fields in italics * caption "text" * Adds caption text above the screen * %T% is replaced by a timestamp * secure disables the pop-up dialog, if this action is invoked from * a keymap * command directs the output to a command (this is the default, but * allows the command to be one of the other keywords); * must be the last keyword * string returns the data as a string, allowed only from scripts */ for (i = 0; i < *num_params; i++) { if (!strcasecmp(params[i], "file")) { use_file = True; i++; break; } else if (!strcasecmp(params[i], "html")) { ptype = P_HTML; use_file = True; } else if (!strcasecmp(params[i], "rtf")) { ptype = P_RTF; use_file = True; } else if (!strcasecmp(params[i], "secure")) { secure = True; } else if (!strcasecmp(params[i], "command")) { if ((ptype != P_TEXT) || use_file) { popup_an_error("%s: contradictory options", action_name(PrintText_action)); return; } i++; break; } else if (!strcasecmp(params[i], "string")) { if (ia_cause != IA_SCRIPT) { popup_an_error("%s(string) can only be used " "from a script", action_name(PrintText_action)); return; } use_string = True; use_file = True; } else if (!strcasecmp(params[i], "modi")) { opts |= FPS_MODIFIED_ITALIC; } else if (!strcasecmp(params[i], "caption")) { if (i == *num_params - 1) { popup_an_error("%s: mising caption parameter", action_name(PrintText_action)); return; } caption = params[++i]; } else { break; } } switch (*num_params - i) { case 0: /* Use the default. */ if (!use_file) { #if !defined(_WIN32) /*[*/ filter = get_resource(ResPrintTextCommand); #else /*][*/ filter = get_resource(ResPrinterName); /* XXX */ #endif /*]*/ } break; case 1: if (use_string) { popup_an_error("%s: extra arguments or invalid option(s)", action_name(PrintText_action)); return; } filter = params[i]; break; default: popup_an_error("%s: extra arguments or invalid option(s)", action_name(PrintText_action)); return; } #if defined(_WIN32) /*[*/ /* On Windows, use rich text. */ if (!use_string && !use_file && ptype != P_HTML) ptype = P_RTF; #endif /*]*/ if (filter != CN && filter[0] == '@') { /* * Starting the PrintTextCommand resource value with '@' * suppresses the pop-up dialog, as does setting the 'secure' * resource. */ secure = True; filter++; } if (!use_file && (filter == CN || !*filter)) #if !defined(_WIN32) /*[*/ filter = "lpr"; #else /*][*/ filter = CN; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ if (secure || ia_cause == IA_COMMAND || ia_cause == IA_MACRO || ia_cause == IA_SCRIPT) #endif /*]*/ { FILE *f; int fd = -1; /* Invoked non-interactively. */ if (use_file) { if (use_string) { #if defined(_WIN32) /*[*/ fd = win_mkstemp(&temp_name, ptype); #else /*][*/ temp_name = NewString("/tmp/x3hXXXXXX"); fd = mkstemp(temp_name); #endif /*]*/ if (fd < 0) { popup_an_errno(errno, "mkstemp"); return; } f = fdopen(fd, "w+"); } else { if (filter == CN || !*filter) { popup_an_error("%s: missing filename", action_name(PrintText_action)); return; } f = fopen(filter, "a"); } } else { #if !defined(_WIN32) /*[*/ f = popen(filter, "w"); #else /*][*/ fd = win_mkstemp(&temp_name, ptype); if (fd < 0) { popup_an_errno(errno, "mkstemp"); return; } f = fdopen(fd, "w+"); #endif /*]*/ } if (f == NULL) { popup_an_errno(errno, "%s: %s", action_name(PrintText_action), filter); if (fd >= 0) { (void) close(fd); } if (temp_name) { unlink(temp_name); Free(temp_name); } return; } (void) fprint_screen(f, ptype, opts, caption); if (use_string) { char buf[8192]; rewind(f); while (fgets(buf, sizeof(buf), f) != NULL) action_output("%s", buf); } if (use_file) fclose(f); else { #if !defined(_WIN32) /*[*/ print_text_done(f, False); #else /*][*/ char *wp; fclose(f); wp = find_wordpad(); if (wp == NULL) { popup_an_error("%s: Can't find WORDPAD.EXE", action_name(PrintText_action)); } else { char *cmd; if (filter != CN) cmd = xs_buffer("start /wait /min %s " "/pt \"%s\" \"%s\"", wp, temp_name, filter); else cmd = xs_buffer("start /wait /min %s " "/p \"%s\"", wp, temp_name); system(cmd); Free(cmd); } #if !defined(S3270) /*[*/ if (appres.do_confirms) popup_an_info("Screen image printed.\n"); #endif /*]*/ #endif /*]*/ } if (temp_name) { unlink(temp_name); Free(temp_name); } return; } #if defined(X3270_DISPLAY) /*[*/ /* Invoked interactively -- pop up the confirmation dialog. */ if (use_file) { popup_save_text(filter); } else { popup_print_text(filter); } #endif /*]*/ } #if defined(X3270_DISPLAY) /*[*/ #if defined(X3270_MENUS) /*[*/ /* Callback for Print Text menu option. */ void print_text_option(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { char *filter = get_resource(ResPrintTextCommand); Boolean secure = appres.secure; ptype_t ptype = P_TEXT; if (print_text_command != NULL) filter = print_text_command; else { filter = get_resource(ResPrintTextCommand); if (filter == NULL || !*filter) filter = "lpr"; print_text_command = XtNewString(filter); } /* Decode the filter. */ if (filter != CN && *filter == '@') { secure = True; filter++; } if (filter == CN || !*filter) filter = "lpr"; if (secure) { FILE *f; /* Print the screen without confirming. */ if (!(f = popen(filter, "w"))) { popup_an_errno(errno, "popen(%s)", filter); return; } (void) fprint_screen(f, ptype, FPS_EVEN_IF_EMPTY, NULL); print_text_done(f, False); } else { /* Pop up a dialog to confirm or modify their choice. */ popup_print_text(filter); } } /* Callback for Save Text menu option. */ void save_text_option(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Pop up a dialog to confirm or modify their choice. */ popup_save_text(CN); } #endif /*]*/ /* Print Window popup */ /* * Printing the window bitmap is a rather convoluted process: * The PrintWindow action calls PrintWindow_action(), or a menu option calls * print_window_option(). * print_window_option() pops up the dialog. * The OK button on the dialog triggers print_window_callback. * print_window_callback pops down the dialog, then schedules a timeout * 1 second away. * When the timeout expires, it triggers snap_it(), which finally calls * xwd. * The timeout indirection is necessary because xwd prints the actual contents * of the window, including any pop-up dialog in front of it. We pop down the * dialog, but then it is up to the server and Xt to send us the appropriate * expose events to repaint our window. Hopefully, one second is enough to do * that. */ /* Termination procedure for window print. */ static void print_window_done(int status) { if (status) popup_an_error("Print program exited with status %d.", (status & 0xff00) >> 8); else if (appres.do_confirms) popup_an_info("Bitmap printed."); } /* Timeout callback for window print. */ static void snap_it(XtPointer closure _is_unused, XtIntervalId *id _is_unused) { if (!print_window_command) return; XSync(display, 0); print_window_done(system(print_window_command)); } /* Callback for "OK" button on print window popup. */ static void print_window_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { print_window_command = XawDialogGetValueString((Widget)client_data); XtPopdown(print_window_shell); if (print_window_command) (void) XtAppAddTimeOut(appcontext, 1000, snap_it, 0); } /* Print the contents of the screen as a bitmap. */ void PrintWindow_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { char *filter = get_resource(ResPrintWindowCommand); char *fb = XtMalloc(strlen(filter) + 16); char *xfb = fb; Boolean secure = appres.secure; action_debug(PrintWindow_action, event, params, num_params); if (*num_params > 0) filter = params[0]; if (*num_params > 1) popup_an_error("%s: extra arguments ignored", action_name(PrintWindow_action)); if (filter == CN) { popup_an_error("%s: no %s defined", action_name(PrintWindow_action), ResPrintWindowCommand); return; } (void) sprintf(fb, filter, XtWindow(toplevel)); if (fb[0] == '@') { secure = True; xfb = fb + 1; } if (secure) { print_window_done(system(xfb)); Free(fb); return; } if (print_window_shell == NULL) print_window_shell = create_form_popup("printWindow", print_window_callback, (XtCallbackProc)NULL, FORM_AS_IS); XtVaSetValues(XtNameToWidget(print_window_shell, ObjDialog), XtNvalue, fb, NULL); popup_popup(print_window_shell, XtGrabExclusive); } #if defined(X3270_MENUS) /*[*/ /* Callback for menu Print Window option. */ void print_window_option(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { Cardinal zero = 0; PrintWindow_action(w, (XEvent *)NULL, (String *)NULL, &zero); } #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/c3270/config.guess0000755000175000017500000012753411254565704016261 0ustar bastianbastian#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ibm-3270-3.3.10ga4/c3270/idlec.h0000644000175000017500000000425711254565704015166 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * idlec.h * Global declarations for idle.c. */ enum idle_enum { IDLE_DISABLED = 0, IDLE_SESSION = 1, IDLE_PERM = 2 }; #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ extern void cancel_idle_timer(void); extern void idle_init(void); extern void reset_idle_timer(void); extern char *get_idle_command(); extern char *get_idle_timeout(); extern Boolean idle_changed; extern char *idle_command; extern char *idle_timeout_string; extern enum idle_enum idle_user_enabled; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ extern void popup_idle(void); #endif /*]*/ #else /*][*/ #define cancel_idle_timer() #define idle_init() #define reset_idle_timer() #endif /*]*/ ibm-3270-3.3.10ga4/c3270/utf8c.h0000644000175000017500000000344711254565704015137 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utf8c.h * 3270 Terminal Emulator * UTF-8 conversions */ extern char *locale_codeset; extern Boolean is_utf8; extern void set_codeset(char *codeset_name); extern int unicode_to_utf8(ucs4_t ucs4, char *utf8); extern int utf8_to_unicode(const char *utf8, int len, ucs4_t *ucs4); ibm-3270-3.3.10ga4/c3270/conf.h.in0000644000175000017500000000503111254565707015432 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * conf.h * System-specific #defines for libraries and library functions. * Automatically generated from conf.h.in by configure. */ /* Libraries. */ #undef HAVE_LIBNCURSESW #undef HAVE_LIBNCURSES #undef HAVE_LIBCURSES #undef HAVE_LIBREADLINE #undef HAVE_LIBSSL /* Header files. */ #undef HAVE_NCURSESW_NCURSES_H #undef HAVE_NCURSES_NCURSES_H #undef HAVE_NCURSES_H #undef HAVE_CURSES_H #undef HAVE_SYS_SELECT_H #undef HAVE_READLINE_HISTORY_H #undef HAVE_PTY_H #undef HAVE_LIBUTIL_H #undef HAVE_UTIL_H #undef HAVE_GETOPT_H /* Uncommon functions. */ #undef HAVE_VASPRINTF #undef HAVE_FSEEKO #undef HAVE_FORKPTY /* Default pager. */ #define LESSPATH "" #define MOREPATH "" /* Wide curses. */ #undef CURSES_WIDE /* Configuration options. */ #undef USE_ICONV /* Broken stuff. */ #undef BROKEN_NEWTERM /* Optional parts. */ #undef X3270_ANSI #undef X3270_APL #undef X3270_DBCS #undef X3270_FT #undef X3270_LOCAL_PROCESS #undef X3270_PRINTER #undef X3270_SCRIPT #undef X3270_TN3270E #undef X3270_TRACE #undef X3270_PLUGIN ibm-3270-3.3.10ga4/c3270/mkfb.c0000644000175000017500000002706611254565704015023 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * mkfb.c * Utility to create RDB string definitions from a simple #ifdef'd .ad * file */ #include "conf.h" #include #include #include #include #define BUFSZ 1024 /* input line buffer size */ #define ARRSZ 8192 /* output array size */ #define SSSZ 10 /* maximum nested ifdef */ unsigned aix[ARRSZ]; /* fallback array indices */ unsigned xlno[ARRSZ]; /* fallback array line numbers */ unsigned n_fallbacks = 0; /* number of fallback entries */ /* ifdef state stack */ #define MODE_COLOR 0x00000001 #define MODE_FT 0x00000002 #define MODE_TRACE 0x00000004 #define MODE_MENUS 0x00000008 #define MODE_ANSI 0x00000010 #define MODE_KEYPAD 0x00000020 #define MODE_APL 0x00000040 #define MODE_PRINTER 0x00000080 #define MODE_STANDALONE 0x00000100 #define MODE_SCRIPT 0x00000200 #define MODE_DBCS 0x00000400 #define MODE__WIN32 0x00000800 #define MODEMASK 0x00000fff struct { unsigned long ifdefs; unsigned long ifndefs; unsigned lno; } ss[SSSZ]; unsigned ssp = 0; struct { const char *name; unsigned long mask; } parts[] = { { "COLOR", MODE_COLOR }, { "X3270_FT", MODE_FT }, { "X3270_TRACE", MODE_TRACE }, { "X3270_MENUS", MODE_MENUS }, { "X3270_ANSI", MODE_ANSI }, { "X3270_KEYPAD", MODE_KEYPAD }, { "X3270_APL", MODE_APL }, { "X3270_PRINTER", MODE_PRINTER }, { "STANDALONE", MODE_STANDALONE }, { "X3270_SCRIPT", MODE_SCRIPT }, { "X3270_DBCS", MODE_DBCS }, { "_WIN32", MODE__WIN32 } }; #define NPARTS (sizeof(parts)/sizeof(parts[0])) unsigned long is_defined = MODE_COLOR | #if defined(X3270_FT) MODE_FT #else 0 #endif | #if defined(X3270_TRACE) MODE_TRACE #else 0 #endif | #if defined(X3270_MENUS) MODE_MENUS #else 0 #endif | #if defined(X3270_ANSI) MODE_ANSI #else 0 #endif | #if defined(X3270_KEYPAD) MODE_KEYPAD #else 0 #endif | #if defined(X3270_APL) MODE_APL #else 0 #endif | #if defined(X3270_PRINTER) MODE_PRINTER #else 0 #endif | #if defined(X3270_SCRIPT) MODE_SCRIPT #else 0 #endif | #if defined(X3270_DBCS) MODE_DBCS #else 0 #endif | #if defined(_WIN32) MODE__WIN32 #else 0 #endif ; unsigned long is_undefined; char *me; void emit(FILE *t, int ix, char c); void usage(void) { fprintf(stderr, "usage: %s [infile [outfile]]\n", me); exit(1); } int main(int argc, char *argv[]) { char buf[BUFSZ]; int lno = 0; int cc = 0; unsigned i; int continued = 0; const char *filename = "standard input"; FILE *u, *t, *tc = NULL, *tm = NULL, *o; int cmode = 0; unsigned long ifdefs; unsigned long ifndefs; int last_continue = 0; /* Parse arguments. */ if ((me = strrchr(argv[0], '/')) != (char *)NULL) me++; else me = argv[0]; if (argc > 1 && !strcmp(argv[1], "-c")) { cmode = 1; is_defined |= MODE_STANDALONE; argc--; argv++; } switch (argc) { case 1: break; case 2: case 3: if (strcmp(argv[1], "-")) { if (freopen(argv[1], "r", stdin) == (FILE *)NULL) { perror(argv[1]); exit(1); } filename = argv[1]; } break; default: usage(); } is_undefined = MODE_COLOR | (~is_defined & MODEMASK); /* Do #ifdef, comment and whitespace processing first. */ u = tmpfile(); if (u == NULL) { perror("tmpfile"); exit(1); } while (fgets(buf, BUFSZ, stdin) != (char *)NULL) { char *s = buf; int sl; unsigned i; lno++; /* Skip leading white space. */ while (isspace(*s)) s++; if (cmode && (!strncmp(s, "x3270.", 6) || !strncmp(s, "x3270*", 6))) { s += 6; } /* Remove trailing white space. */ while ((sl = strlen(s)) && isspace(s[sl-1])) s[sl-1] = '\0'; /* Skip comments and empty lines. */ if ((!last_continue && *s == '!') || !*s) continue; /* Check for simple if[n]defs. */ if (*s == '#') { int ifnd = 1; if (!strncmp(s, "#ifdef ", 7) || !(ifnd = strncmp(s, "#ifndef ", 8))) { char *tk; if (ssp >= SSSZ) { fprintf(stderr, "%s, line %d: Stack overflow\n", filename, lno); exit(1); } ss[ssp].ifdefs = 0L; ss[ssp].ifndefs = 0L; ss[ssp].lno = lno; tk = s + 7 + !ifnd; for (i = 0; i < NPARTS; i++) { if (!strcmp(tk, parts[i].name)) { if (!ifnd) ss[ssp++].ifndefs = parts[i].mask; else ss[ssp++].ifdefs = parts[i].mask; break; } } if (i >= NPARTS) { fprintf(stderr, "%s, line %d: Unknown condition\n", filename, lno); exit(1); } continue; } else if (!strcmp(s, "#else")) { unsigned long tmp; if (!ssp) { fprintf(stderr, "%s, line %d: Missing #if[n]def\n", filename, lno); exit(1); } tmp = ss[ssp-1].ifdefs; ss[ssp-1].ifdefs = ss[ssp-1].ifndefs; ss[ssp-1].ifndefs = tmp; } else if (!strcmp(s, "#endif")) { if (!ssp) { fprintf(stderr, "%s, line %d: Missing #if[n]def\n", filename, lno); exit(1); } ssp--; } else { fprintf(stderr, "%s, line %d: Unrecognized # directive\n", filename, lno); exit(1); } continue; } /* Figure out if there's anything to emit. */ /* First, look for contradictions. */ ifdefs = 0; ifndefs = 0; for (i = 0; i < ssp; i++) { ifdefs |= ss[i].ifdefs; ifndefs |= ss[i].ifndefs; } if (ifdefs & ifndefs) { #ifdef DEBUG_IFDEFS fprintf(stderr, "contradiction, line %d\n", lno); #endif continue; } /* Then, apply the actual values. */ if (ifdefs && (ifdefs & is_defined) != ifdefs) { #ifdef DEBUG_IFDEFS fprintf(stderr, "ifdef failed, line %d\n", lno); #endif continue; } if (ifndefs && (ifndefs & is_undefined) != ifndefs) { #ifdef DEBUG_IFDEFS fprintf(stderr, "ifndef failed, line %d\n", lno); #endif continue; } /* Emit the text. */ fprintf(u, "%lx %lx %d\n%s\n", ifdefs, ifndefs, lno, s); last_continue = strlen(s) > 0 && s[strlen(s) - 1] == '\\'; } if (ssp) { fprintf(stderr, "%d missing #endif(s) in %s\n", ssp, filename); fprintf(stderr, "last #ifdef was at line %u\n", ss[ssp-1].lno); exit(1); } /* Re-scan, emitting code this time. */ rewind(u); t = tmpfile(); if (t == NULL) { perror("tmpfile"); exit(1); } if (!cmode) { tc = tmpfile(); if (tc == NULL) { perror("tmpfile"); exit(1); } tm = tmpfile(); if (tm == NULL) { perror("tmpfile"); exit(1); } } /* Emit the initial boilerplate. */ fprintf(t, "/* This file was created automatically from %s by mkfb. */\n\n", filename); if (cmode) { fprintf(t, "#include \"globals.h\"\n"); fprintf(t, "static unsigned char fsd[] = {\n"); } else { fprintf(t, "unsigned char common_fallbacks[] = {\n"); fprintf(tc, "unsigned char color_fallbacks[] = {\n"); fprintf(tm, "unsigned char mono_fallbacks[] = {\n"); } /* Scan the file, emitting the fsd array and creating the indices. */ while (fscanf(u, "%lx %lx %d\n", &ifdefs, &ifndefs, &lno) == 3) { char *s = buf; char c; int white; FILE *t_this = t; int ix = 0; if (fgets(buf, BUFSZ, u) == NULL) break; if (strlen(buf) > 0 && buf[strlen(buf)-1] == '\n') buf[strlen(buf)-1] = '\0'; #if 0 fprintf(stderr, "%lx %lx %d %s\n", ifdefs, ifndefs, lno, buf); #endif /* Add array offsets. */ if (cmode) { /* Ignore color. Accumulate offsets into an array. */ if (n_fallbacks >= ARRSZ) { fprintf(stderr, "%s, line %d: Buffer overflow\n", filename, lno); exit(1); } aix[n_fallbacks] = cc; xlno[n_fallbacks++] = lno; } else { /* Use color to decide which file to write into. */ if (!(ifdefs & MODE_COLOR) && !(ifndefs & MODE_COLOR)) { /* Both. */ t_this = t; ix = 0; } else if (ifdefs & MODE_COLOR) { /* Just color. */ t_this = tc; ix = 1; } else { /* Just mono. */ t_this = tm; ix = 2; } } continued = 0; white = 0; while ((c = *s++) != '\0') { if (c == ' ' || c == '\t') white++; else if (white) { emit(t_this, ix, ' '); cc++; white = 0; } switch (c) { case ' ': case '\t': break; case '#': if (!cmode) { emit(t_this, ix, '\\'); emit(t_this, ix, '#'); cc += 2; } else { emit(t_this, ix, c); cc++; } break; case '\\': if (*s == '\0') { continued = 1; break; } else if (cmode) { switch ((c = *s++)) { case 't': c = '\t'; break; case 'n': c = '\n'; break; default: break; } } /* else fall through */ default: emit(t_this, ix, c); cc++; break; } } if (white) { emit(t_this, ix, ' '); cc++; white = 0; } if (!continued) { if (cmode) emit(t_this, ix, 0); else emit(t_this, ix, '\n'); cc++; } } fclose(u); if (cmode) fprintf(t, "};\n\n"); else { emit(t, 0, 0); fprintf(t, "};\n\n"); emit(tc, 0, 0); fprintf(tc, "};\n\n"); emit(tm, 0, 0); fprintf(tm, "};\n\n"); } /* Open the output file. */ if (argc == 3) { o = fopen(argv[2], "w"); if (o == NULL) { perror(argv[2]); exit(1); } } else o = stdout; /* Copy tmp to output. */ rewind(t); if (!cmode) { rewind(tc); rewind(tm); } while (fgets(buf, sizeof(buf), t) != NULL) { fprintf(o, "%s", buf); } if (!cmode) { while (fgets(buf, sizeof(buf), tc) != NULL) { fprintf(o, "%s", buf); } while (fgets(buf, sizeof(buf), tm) != NULL) { fprintf(o, "%s", buf); } } if (cmode) { /* Emit the fallback array. */ fprintf(o, "String fallbacks[%u] = {\n", n_fallbacks + 1); for (i = 0; i < n_fallbacks; i++) { fprintf(o, "\t(String)&fsd[%u], /* line %u */\n", aix[i], xlno[i]); } fprintf(o, "\t(String)NULL\n};\n\n"); /* Emit some test code. */ fprintf(o, "%s", "#if defined(DEBUG) /*[*/\n\ #include \n\ int\n\ main(int argc, char *argv[])\n\ {\n\ int i;\n\ \n\ for (i = 0; fallbacks[i] != NULL; i++)\n\ printf(\"%d: %s\\n\", i, fallbacks[i]);\n\ return 0;\n\ }\n"); fprintf(o, "#endif /*]*/\n\n"); } if (o != stdout) fclose(o); fclose(t); if (!cmode) { fclose(tc); fclose(tm); } return 0; } static int n_out[3] = { 0, 0, 0 }; void emit(FILE *t, int ix, char c) { if (n_out[ix] >= 19) { fprintf(t, "\n"); n_out[ix] = 0; } fprintf(t, "%3d,", (unsigned char)c); n_out[ix]++; } ibm-3270-3.3.10ga4/c3270/seec.h0000644000175000017500000000430011254565704015012 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * seec.h * Declarations for see.c * */ #if defined(X3270_TRACE) /*[*/ extern const char *see_aid(unsigned char code); extern const char *see_attr(unsigned char fa); extern const char *see_color(unsigned char setting); extern const char *see_ebc(unsigned char ch); extern const char *see_efa(unsigned char efa, unsigned char value); extern const char *see_efa_only(unsigned char efa); extern const char *see_qcode(unsigned char id); extern const char *unknown(unsigned char value); #else /*][*/ #define see_aid 0 && #define see_attr 0 && #define see_color 0 && #define see_ebc 0 && #define see_efa 0 && #define see_efa_only 0 && #define see_qcode 0 && #define unknown 0 && #endif /*]*/ ibm-3270-3.3.10ga4/c3270/unicode_dbcs.c0000644000175000017500000711141411254565704016523 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * unicode.c * A Windows console-based 3270 Terminal Emulator * DBCS EBCDIC/Unicode translation functions */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include "3270ds.h" #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" /* * DBCS EBCDIC-to-Unicode translation tables. */ #if defined(X3270_DBCS) /*[*/ typedef struct { char *name; const char *codepage; const char *display_charset; const char *u2ebc[512]; /* Unicode to EBCDIC vectors */ const char *ebc2u[512]; /* EBCDIC to Unicode vectors */ } uni16_t; static uni16_t uni16[] = { { "cp930", "0x080b012c" /* 2059, 300 */, "jisx0208.1983-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-300_P110-1997 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x6a\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x43\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x00\x00\x44\x4a\x00\x00\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x43\x77\x43\x78\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x73\x00\x00\x44\xee\x44\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6e\x00\x00\x43\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x43\x70\x00\x00\x43\x4e\x43\x71\x00\x00\x00\x00\x00\x00\x43\x4f\x43\x64\x00\x00\x00\x00\x43\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5f\x00\x00\x00\x00\x43\x61\x44\x4d\x00\x00\x43\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6c\x43\x6d\x43\x6b\x43\x6a\x43\x62\x43\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x43\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x43\x5d\x43\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x43\x68\x43\x69\x00\x00\x00\x00\x43\x66\x43\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ "\x43\x7c\x43\xb7\x43\x7d\x43\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7e\x00\x00\x00\x00\x43\xb9\x43\x7f\x00\x00\x00\x00\x43\xe1\x43\xb1\x00\x00\x00\x00\x43\xe3\x43\xb0\x00\x00\x00\x00\x43\xe2\x43\xb2\x43\xee\x00\x00\x00\x00\x43\xe9\x00\x00\x00\x00\x43\xe4\x43\xb4\x43\xf0\x00\x00\x00\x00\x43\xeb\x00\x00\x00\x00\x43\xe6\x43\xb3\x00\x00\x00\x00\x43\xea\x43\xef\x00\x00\x00\x00\x43\xe5\x43\xb5\x00\x00\x00\x00\x43\xec\x43\xf1\x00\x00\x00\x00\x43\xe7\x43\xb6\x00\x00\x00\x00\x43\xed\x00\x00\x00\x00\x43\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x76\x00\x00\x00\x00\x43\x75\x00\x00\x43\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x45\x41\x4b\xce\x00\x00\x45\x47\x00\x00\x00\x00\x00\x00\x45\x4d\x49\xd3\x45\x43\x45\x5e\x45\x5f\x00\x00\x46\xaf\x47\x89\x00\x00\x56\x42\x4d\xec\x00\x00\x00\x00\x4f\x97\x56\x43\x46\x9b\x57\x75\x4d\x56\x50\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x62\x00\x00\x00\x00\x48\x83\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7c\x00\x00\x56\x44\x00\x00\x56\x45\x00\x00\x00\x00\x45\x5c\x00\x00\x00\x00\x00\x00\x56\x46\x4c\xb8\x00\x00\x00\x00\x00\x00\x56\x47\x00\x00\x46\x7a\x48\xab\x00\x00\x47\x62\x54\xc8\x00\x00\x00\x00\x56\x48\x00\x00\x00\x00\x56\x49\x4b\x9f\x00\x00\x45\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xd8\x00\x00\x55\xa9\x54\xa5\x4f\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd0\x56\x4a\x49\x47\x56\x4b\x4b\xbd\x00\x00\x00\x00\x00\x00\x45\x49\x4e\xb5\x47\x49\x00\x00\x00\x00\x56\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbf\x00\x00\x4a\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x70\x00\x00", /* 4e80 */ "\x47\xc0\x00\x00\x56\x4d\x00\x00\x00\x00\x56\x4e\x4b\xb1\x00\x00\x47\xc2\x48\x96\x56\x4f\x45\xce\x45\x42\x00\x00\x56\x50\x00\x00\x00\x00\x49\x9d\x4b\x74\x00\x00\x45\x45\x45\x6d\x00\x00\x00\x00\x4b\xe4\x50\xe8\x00\x00\x55\xdc\x48\x67\x00\x00\x56\x52\x51\x67\x56\x53\x4c\xce\x56\x54\x00\x00\x47\x8e\x4f\x7f\x4f\xfa\x00\x00\x4b\xac\x00\x00\x00\x00\x4b\x73\x45\x75\x4e\x52\x49\x9c\x00\x00\x56\x55\x00\x00\x00\x00\x56\x56\x00\x00\x00\x00\x56\x57\x00\x00\x00\x00\x00\x00\x45\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd9\x47\x76\x56\x5c\x00\x00\x56\x5a\x00\x00\x56\x5b\x50\x85\x00\x00\x00\x00\x45\xe0\x48\x4b\x00\x00\x56\x59\x56\x58\x4b\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x54\x65\x48\xb5\x47\x55\x56\x5e\x47\x5d\x48\xa2\x00\x00\x00\x00\x00\x00\x44\x5c\x56\x5f\x56\x61\x00\x00\x56\x5d\x00\x00\x45\x9a\x49\xc3\x46\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x60\x4d\x71\x00\x00\x4d\xed\x00\x00\x48\x69\x00\x00\x00\x00\x00\x00\x48\xb2\x53\x41\x00\x00\x00\x00\x00\x00\x4a\x55\x56\x62\x00\x00\x00\x00\x00\x00", /* 4f00 */ "\x56\x65\x47\xd2\x00\x00\x56\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x63\x45\xb2\x00\x00\x00\x00\x4d\x99\x4e\x9f\x4a\x83\x50\xf6\x4a\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xbd\x00\x00\x56\x64\x48\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xa6\x56\x68\x00\x00\x00\x00\x00\x00\x49\xc9\x00\x00\x54\x4a\x00\x00\x46\xf4\x56\x6a\x50\x8a\x00\x00\x4b\xbc\x54\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xdf\x00\x00\x00\x00\x4e\xfe\x56\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xc8\x48\xa4\x46\xe0\x45\x76\x4c\xe6\x00\x00\x46\x96\x00\x00\x47\x70\x56\x6e\x56\x6b\x00\x00\x49\xc1\x56\x67\x56\x6f\x45\x94\x56\x69\x56\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7c\x56\x7a\x00\x00\x00\x00\x48\x76\x00\x00\x4b\x94\x51\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x56\x77\x54\x62\x00\x00\x00\x00\x48\xb6", /* 4f80 */ "\x00\x00\x00\x00\x00\x00\x4f\x98\x00\x00\x00\x00\x56\x7d\x00\x00\x56\x72\x00\x00\x56\x71\x4a\x46\x00\x00\x4f\xc2\x00\x00\x56\x73\x00\x00\x4f\x8d\x56\x70\x00\x00\x56\x7b\x00\x00\x56\x7e\x00\x00\x56\x76\x00\x00\x56\x74\x48\xbc\x00\x00\x4a\x9e\x00\x00\x00\x00\x52\xec\x47\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x78\x00\x00\x56\x75\x53\xb9\x53\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8c\x55\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4c\x00\x00\x00\x00\x48\x51\x4a\x6a\x54\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x52\x94\x46\x60\x00\x00\x00\x00\x56\x86\x56\x80\x00\x00\x56\x85\x56\x83\x00\x00\x00\x00\x56\x7f\x00\x00\x00\x00\x4e\x97\x56\x81\x00\x00\x56\x84\x56\x82\x00\x00\x45\xaa\x00\x00\x53\xc4\x52\xec\x45\xa5\x00\x00\x4b\x4a\x56\x87\x56\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xde\x56\x96\x00\x00\x00\x00\x00\x00\x4c\xe1\x00\x00\x4d\xb1\x51\xf8\x00\x00\x50\xf9\x00\x00\x4e\x67\x00\x00\x00\x00\x00\x00\x56\x95\x56\x94", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8f\x56\x99\x00\x00\x00\x00\x45\xd6\x00\x00\x49\xfa\x00\x00\x4a\xc4\x00\x00\x56\xa1\x00\x00\x56\x97\x4b\x6a\x00\x00\x56\x8c\x00\x00\x53\x43\x00\x00\x00\x00\x4c\xae\x56\x89\x00\x00\x00\x00\x00\x00\x56\x98\x4a\xd0\x00\x00\x56\x90\x56\x91\x55\x69\x48\x7d\x56\x8e\x52\xf1\x00\x00\x56\x8b\x56\x92\x56\x8d\x4d\x51\x56\x93\x4f\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x63\x00\x00\x00\x00\x52\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8a\x00\x00\x56\xa4\x56\x9a\x00\x00\x00\x00\x56\xa2\x56\x9b\x56\x9e\x4d\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x49\x56\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x56\x9c\x56\xa0\x00\x00\x00\x00\x00\x00\x56\x9f\x00\x00\x4e\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xa5\x00\x00\x00\x00\x00\x00\x56\xa3\x00\x00\x54\xd2\x00\x00\x49\x43\x4f\x95\x50\xc3\x00\x00\x56\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x50\x59\x00\x00\x00\x00", /* 5080 */ "\x56\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x56\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xe7\x00\x00\x00\x00\x00\x00\x4f\xc3\x00\x00\x00\x00\x56\xa8\x00\x00\x00\x00\x00\x00\x50\x9c\x46\xac\x56\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x43\x54\xda\x00\x00\x00\x00\x00\x00\x00\x00\x56\xad\x56\xb0\x56\xab\x4b\x58\x00\x00\x4c\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x43\x00\x00\x00\x00\x00\x00\x56\xb1\x00\x00\x00\x00\x4f\xc9\x00\x00\x00\x00\x00\x00\x56\xae\x56\xaf\x00\x00\x00\x00\x48\xec\x00\x00\x4b\xba\x00\x00\x55\xad\x00\x00\x00\x00\x00\x00\x4a\xbb\x52\xd4\x00\x00\x56\xb5\x00\x00\x4d\x82\x00\x00\x00\x00\x00\x00\x56\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb7\x00\x00\x56\xb4\x00\x00\x4e\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb6\x56\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb2\x56\xba\x00\x00\x00\x00\x00\x00\x56\xb9\x00\x00\x55\x78\x00\x00\x00\x00\x00\x00\x00\x00", /* 5100 */ "\x49\xca\x56\xbc\x56\xbd\x00\x00\x45\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x56\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6f\x00\x00\x56\xc0\x56\xbf\x56\xc1\x00\x00\x52\x90\x00\x00\x56\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa2\x00\x00\x56\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc4\x00\x00\x00\x00\x56\xc3\x56\xc6\x56\xc5\x00\x00\x00\x00\x56\xc7\x56\xc8\x4c\x91\x00\x00\x46\x95\x4b\xe8\x48\xc9\x4d\xf3\x55\x5a\x47\xa2\x45\x9e\x56\xc9\x47\x9e\x56\xca\x4b\x56\x50\x50\x00\x00\x46\x9f\x00\x00\x56\xcb\x00\x00\x56\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4b\x00\x00\x51\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xcd\x00\x00\x56\xce\x46\x65\x00\x00\x00\x00\x46\xb1\x56\xcf\x56\xd0\x45\x48\x46\xbb\x45\x46\x56\xd1\x00\x00\x00\x00\x47\xb3\x00\x00\x00\x00\x00\x00\x46\x49\x4f\x67\x47\xaf\x47\xc9\x00\x00\x00\x00\x00\x00\x48\xf4\x00\x00\x00\x00\x00\x00", /* 5180 */ "\x56\xd2\x00\x00\x56\xd3\x00\x00\x00\x00\x45\x8e\x46\x45\x00\x00\x00\x00\x56\xd6\x4e\xa1\x00\x00\x56\xd5\x48\xeb\x00\x00\x56\xd7\x61\x9d\x56\xd8\x4f\x8f\x56\xd9\x00\x00\x56\xda\x56\xdb\x52\x7e\x00\x00\x48\xc4\x00\x00\x00\x00\x00\x00\x56\xdc\x00\x00\x00\x00\x4e\x7b\x00\x00\x56\xdf\x00\x00\x56\xdd\x54\x67\x56\xde\x00\x00\x48\x78\x56\xe0\x56\xe1\x56\xe2\x4b\xde\x00\x00\x00\x00\x00\x00\x56\xe6\x56\xe4\x56\xe5\x56\xe3\x50\xc9\x56\xe7\x51\x46\x48\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xe9\x56\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xdc\x56\xea\x4f\x80\x00\x00\x00\x00\x56\xeb\x00\x00\x55\xf9\x53\x44\x4b\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x77\x00\x00\x00\x00\x00\x00\x00\x00\x56\xec\x68\x84\x4e\xd9\x00\x00\x00\x00\x56\xed\x4d\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x48\xe6\x55\x8a\x00\x00\x56\xee\x54\x9e\x00\x00\x56\xef\x56\xf0\x00\x00\x00\x00\x56\xf1\x51\xac\x00\x00\x00\x00\x00\x00\x56\xf2\x51\xec\x00\x00\x50\xcf\x50\xe6\x45\x9b\x00\x00\x00\x00\x4b\xb6\x56\xf3\x00\x00", /* 5200 */ "\x4c\x50\x00\x00\x00\x00\x4f\x44\x56\xf4\x00\x00\x45\xb4\x47\x65\x4b\x9b\x00\x00\x4c\xd7\x56\xf5\x00\x00\x00\x00\x54\xe3\x00\x00\x00\x00\x4c\x52\x00\x00\x00\x00\x56\xf6\x56\xf7\x00\x00\x4b\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x5c\x46\xdd\x00\x00\x56\xf8\x00\x00\x45\xbc\x56\xf9\x00\x00\x00\x00\x00\x00\x56\xfa\x00\x00\x4c\xdd\x00\x00\x00\x00\x56\xfb\x00\x00\x00\x00\x46\xc4\x48\xcf\x4b\x6b\x56\xfc\x4b\xc0\x4b\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x79\x56\xfd\x00\x00\x00\x00\x47\x4d\x00\x00\x00\x00\x4a\x90\x56\xfe\x51\xae\x45\xaf\x00\x00\x57\x41\x00\x00\x00\x00\x00\x00\x00\x00\x57\x43\x00\x00\x51\x99\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc7\x00\x00\x54\x81\x57\x42\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xd3\x47\x66\x54\x81\x00\x00\x00\x00\x00\x00\x57\x48\x57\x45\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4e\x4d\x85\x57\x44\x47\xd6\x57\x46\x57\x47\x4b\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x4a\x00\x00\x57\x49", /* 5280 */ "\x00\x00\x00\x00\x00\x00\x55\xd6\x00\x00\x00\x00\x00\x00\x49\xf0\x57\x4c\x51\x85\x00\x00\x00\x00\x00\x00\x57\x4b\x00\x00\x00\x00\x00\x00\x57\x4e\x57\x4d\x00\x00\x55\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf7\x57\x4f\x00\x00\x00\x00\x48\x70\x45\x9f\x00\x00\x00\x00\x4e\x68\x00\x00\x00\x00\x57\x50\x00\x00\x00\x00\x46\x71\x4a\x64\x54\xc6\x57\x51\x57\x52\x00\x00\x5f\xaa\x00\x00\x4d\x92\x00\x00\x00\x00\x48\xa9\x57\x54\x00\x00\x00\x00\x00\x00\x49\x78\x00\x00\x00\x00\x57\x53\x00\x00\x55\x6a\x00\x00\x57\x56\x57\x55\x00\x00\x54\xb1\x00\x00\x4e\xef\x00\x00\x46\x9c\x00\x00\x48\xce\x00\x00\x00\x00\x00\x00\x57\x57\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd6\x00\x00\x00\x00\x45\xe4\x00\x00\x53\x92\x4b\x9a\x46\xed\x00\x00\x57\x58\x00\x00\x45\xb5\x57\x59\x4a\xe1\x57\x5c\x00\x00\x47\xee\x57\x5a\x49\x9f\x00\x00\x57\x5b\x4c\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7a\x57\x5d\x00\x00\x57\x5e\x00\x00\x00\x00\x57\x5f\x57\x60\x54\x70\x00\x00\x00\x00\x00\x00\x51\xe9\x52\x97", /* 5300 */ "\x57\x61\x4f\x5b\x4e\xcb\x00\x00\x00\x00\x4a\xa8\x57\x62\x57\x63\x57\x64\x00\x00\x00\x00\x00\x00\x00\x00\x57\x66\x00\x00\x57\x68\x57\x67\x00\x00\x00\x00\x00\x00\x00\x00\x57\x69\x45\x90\x45\x5a\x00\x00\x54\x57\x57\x6a\x00\x00\x00\x00\x51\xb7\x00\x00\x00\x00\x4e\x6b\x4d\x4d\x00\x00\x57\x6c\x57\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xed\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6d\x00\x00\x57\x6e\x00\x00\x57\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x57\x70\x4f\xd1\x45\x54\x4a\x87\x00\x00\x00\x00\x00\x00\x50\xf1\x57\x71\x45\x4a\x00\x00\x45\x4c\x00\x00\x57\x72\x57\x73\x4e\x47\x45\xdf\x57\x74\x47\x90\x00\x00\x00\x00\x57\x76\x00\x00\x00\x00\x00\x00\x53\xad\x4a\xf2\x49\x96\x47\xd7\x00\x00\x00\x00\x45\x59\x48\xe3\x00\x00\x45\xf6\x00\x00\x51\xc0\x00\x00\x57\x79\x00\x00\x49\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xdb\x00\x00\x00\x00\x57\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x57\x7b\x4c\x82\x47\x99\x4b\x91\x57\x7c\x4b\x6d\x4a\xa4\x4c\xf5\x00\x00\x57\x7d\x4e\x79\x00\x00\x00\x00\x57\x7e\x00\x00\x00\x00\x00\x00\x53\xe2", /* 5380 */ "\x00\x00\x00\x00\x57\x7f\x00\x00\x53\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x80\x00\x00\x00\x00\x57\x81\x00\x00\x4f\x55\x00\x00\x49\x42\x00\x00\x00\x00\x00\x00\x00\x00\x45\x74\x57\x82\x00\x00\x00\x00\x00\x00\x00\x00\x57\x84\x57\x83\x00\x00\x51\x78\x53\x67\x00\x00\x00\x00\x00\x00\x53\xb7\x57\x85\x00\x00\x57\x86\x00\x00\x57\x87\x4c\x8e\x00\x00\x00\x00\x57\x88\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd2\x57\x89\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf5\x50\xa5\x48\x5c\x46\xd4\x4b\x71\x47\xf9\x47\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa5\x00\x00\x46\xa6\x48\x4c\x00\x00\x50\xf5\x00\x00\x55\xb2\x00\x00\x57\x8b\x00\x00\x57\x8c\x00\x00\x51\x94\x53\xf5\x45\x88\x45\xd4\x4c\x8b\x00\x00\x00\x00\x57\x91\x4f\x71\x4e\x41\x4d\xd5\x4f\x86\x57\x92\x57\x90\x47\xc6\x47\x78\x50\x42\x47\xd9\x48\x5a\x00\x00\x00\x00\x4f\x59\x48\xe2\x45\xf0\x00\x00\x57\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x57\x94\x00\x00\x55\xea\x47\xba\x00\x00\x00\x00\x00\x00\x45\xa0\x45\x7e\x53\xd3\x55\xbc\x46\x6d\x45\xf3\x51\xaf\x50\xc6\x4e\xb2\x46\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xcf\x00\x00\x57\x9d\x00\x00\x50\x7a\x53\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4f\x00\x00\x00\x00\x57\x9c\x00\x00\x49\xcb\x57\x97\x57\x98\x57\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x9b\x00\x00\x4b\x98\x49\xc4\x00\x00\x53\xe5\x57\x99\x57\x95\x47\xf6\x00\x00\x57\x96\x00\x00\x4b\x50\x00\x00\x00\x00\x00\x00\x50\x73\x00\x00\x4f\x56\x4a\xee\x49\x54\x00\x00\x00\x00\x00\x00\x57\x9e\x00\x00\x00\x00\x50\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xa1\x00\x00\x54\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa5\x57\xa3\x00\x00\x47\x7f\x00\x00\x57\xa0\x57\xaa\x57\xa4\x00\x00\x00\x00\x00\x00\x57\xa7\x4a\xf6\x49\xb0\x00\x00\x00\x00", /* 5480 */ "\x57\xa8\x00\x00\x00\x00\x00\x00\x57\xab\x00\x00\x57\xad\x00\x00\x00\x00\x00\x00\x57\xae\x4f\x50\x45\x7a\x00\x00\x57\xa1\x57\x9f\x57\xac\x00\x00\x57\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb2\x00\x00\x57\xbc\x57\xb4\x00\x00\x00\x00\x57\xb9\x57\xbd\x00\x00\x57\xba\x57\xb5\x00\x00\x00\x00\x57\xb1\x00\x00\x00\x00\x4c\xde\x53\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb3\x00\x00\x00\x00\x00\x00\x57\xb0\x52\xb1\x57\xbe\x00\x00\x4e\xf9\x45\xd0\x57\xbb\x00\x00\x57\xb6\x00\x00\x00\x00\x57\xaf\x57\xb8\x4a\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xcb\x57\xc7\x00\x00\x00\x00\x57\xbf\x57\xc1\x00\x00\x55\x68\x55\xf0\x00\x00\x00\x00\x00\x00\x57\xc6\x57\xc5\x00\x00\x00\x00\x00\x00\x47\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7c\x00\x00\x00\x00\x57\xc4\x00\x00\x57\xc0", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdb\x00\x00\x51\xb8\x4f\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x4b\xab\x00\x00\x00\x00\x00\x00\x57\xc3\x00\x00\x54\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcc\x4b\xe0\x00\x00\x4d\x43\x00\x00\x57\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x57\xd1\x57\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x54\x78\x00\x00\x57\xc9\x00\x00\x00\x00\x00\x00\x53\x83\x57\xce\x46\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcb\x00\x00\x00\x00\x46\xe4\x00\x00\x00\x00\x00\x00\x47\xe4\x00\x00\x00\x00\x57\xcf\x57\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcd\x57\xd3\x54\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x57\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xd8\x57\xdd\x00\x00\x57\xd9\x00\x00", /* 5580 */ "\x57\xd5\x00\x00\x00\x00\x57\xdf\x46\xb3\x00\x00\x57\xde\x57\xe1\x00\x00\x52\x53\x57\xd6\x55\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xda\x57\xd4\x52\xb5\x00\x00\x45\xd1\x54\x75\x57\xdb\x57\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xd3\x57\xe2\x57\xe0\x51\x68\x4d\x6d\x4c\x5f\x00\x00\x57\xdc\x00\x00\x4e\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe5\x57\xe3\x00\x00\x58\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa2\x00\x00\x57\xe6\x00\x00\x00\x00\x57\xe4\x00\x00\x00\x00\x00\x00\x4b\x5e\x57\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xeb\x00\x00\x57\xe9\x00\x00\x00\x00\x00\x00\x57\xee\x57\xed\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x63\x00\x00\x00\x00\x47\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xea\x00\x00\x57\xec\x54\xec\x50\xf3\x00\x00\x00\x00\x57\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf8\x00\x00\x50\xca\x57\xf3\x00\x00\x54\x7f\x00\x00\x57\xf2\x00\x00\x57\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x62\x00\x00\x57\xf0\x00\x00\x57\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf6\x00\x00\x00\x00\x00\x00\x45\xfc\x00\x00\x57\xfa\x57\xf5\x57\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6d\x00\x00\x00\x00\x00\x00\x55\xf1\x00\x00\x55\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5680 */ "\x57\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf7\x55\xd8\x00\x00\x00\x00\x58\x41\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x42\x00\x00\x51\x90\x00\x00\x00\x00\x58\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x46\x00\x00\x58\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x49\x00\x00\x00\x00\x00\x00\x58\x4c\x58\x4a\x58\x48\x58\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x58\x47\x00\x00\x51\x90\x00\x00\x00\x00\x00\x00\x58\x4d\x00\x00\x00\x00\x58\x4f\x00\x00\x58\x4e\x00\x00\x00\x00\x00\x00\x58\x50\x56\xd4\x00\x00\x50\x65\x45\x44\x00\x00\x00\x00\x46\xa9\x00\x00\x4a\x49\x00\x00\x00\x00\x47\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x51\x00\x00\x4b\x44\x00\x00\x4a\xfa\x47\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x52\x4a\x94\x00\x00\x00\x00\x45\x8f\x00\x00\x58\x53", /* 5700 */ "\x52\x66\x00\x00\x00\x00\x53\xcf\x58\x54\x00\x00\x00\x00\x00\x00\x58\x56\x58\x55\x00\x00\x51\xbd\x00\x00\x58\x57\x00\x00\x4f\x49\x00\x00\x00\x00\x47\xe1\x54\xe7\x00\x00\x00\x00\x58\x5a\x00\x00\x58\x59\x00\x00\x00\x00\x00\x00\x58\x5b\x00\x00\x00\x00\x46\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5c\x47\x82\x47\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x49\xe6\x00\x00\x00\x00\x45\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd1\x58\x5d\x00\x00\x00\x00\x58\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x58\x61\x00\x00\x45\xec\x00\x00\x00\x00\x00\x00\x00\x00\x49\xae\x00\x00\x00\x00\x4c\x55\x00\x00\x00\x00\x00\x00\x58\x5e\x58\x62\x4e\x8d\x4e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x65\x00\x00\x00\x00\x53\xa6\x58\x63\x51\xc4\x00\x00\x00\x00\x53\x98\x49\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x66", /* 5780 */ "\x00\x00\x00\x00\x4b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x64\x58\x67\x00\x00\x46\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x69\x00\x00\x54\x66\x47\xce\x58\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x6d\x00\x00\x58\x6c\x00\x00\x00\x00\x00\x00\x53\xcd\x00\x00\x00\x00\x58\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x71\x00\x00\x00\x00\x58\x6e\x00\x00\x00\x00\x58\x6f\x58\x73\x58\x70\x00\x00\x00\x00\x4e\xac\x00\x00\x00\x00\x45\xdb\x00\x00\x00\x00\x00\x00\x58\x74\x58\x75\x58\x72\x00\x00\x58\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf4\x00\x00\x00\x00\x48\xe9\x51\x7e\x00\x00\x00\x00\x58\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x48\x00\x00\x00\x00\x4d\x57\x00\x00\x4d\xac\x46\xf1\x00\x00\x46\xa3\x00\x00\x00\x00\x00\x00", /* 5800 */ "\x46\x9d\x00\x00\x49\x7f\x00\x00\x00\x00\x4a\xe7\x53\x71\x00\x00\x00\x00\x00\x00\x58\x78\x58\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xb0\x00\x00\x00\x00\x00\x00\x58\x7b\x00\x00\x00\x00\x00\x00\x53\xa7\x00\x00\x00\x00\x00\x00\x58\x7c\x00\x00\x00\x00\x4b\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xac\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x53\x50\xa4\x49\xb8\x00\x00\x00\x00\x45\xd9\x54\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7c\x00\x00\x00\x00\x58\x80\x00\x00\x00\x00\x53\x9f\x4b\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x53\x58\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc6\x58\x81\x00\x00\x4c\xcb\x00\x00\x00\x00\x48\x6a\x52\xf8\x4f\x6f\x46\x57\x00\x00\x00\x00\x00\x00\x53\xc1\x00\x00\x00\x00\x4f\x5e\x58\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x43\x00\x00\x4f\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x58\x83\x00\x00\x58\x86\x00\x00\x00\x00\x4d\x89\x00\x00\x00\x00\x00\x00\x58\x84\x00\x00\x00\x00\x00\x00\x00\x00\x52\x79\x00\x00", /* 5880 */ "\x00\x00\x00\x00\x00\x00\x4a\x95\x00\x00\x58\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbe\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x51\x50\x00\x00\x58\x8a\x58\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xfc\x00\x00\x00\x00\x58\x88\x00\x00\x00\x00\x58\x8b\x00\x00\x00\x00\x00\x00\x58\x8c\x52\x89\x00\x00\x00\x00\x00\x00\x00\x00\x58\x89\x58\x8d\x58\x8e\x55\x52\x00\x00\x00\x00\x54\x88\x00\x00\x00\x00\x4b\x95\x00\x00\x00\x00\x00\x00\x58\x8f\x00\x00\x4e\x8e\x00\x00\x00\x00\x4e\xc8\x00\x00\x51\x96\x00\x00\x00\x00\x00\x00\x00\x00\x58\x91\x00\x00\x58\x90\x00\x00\x55\xb9\x00\x00\x58\x92\x58\x94\x58\x93\x00\x00\x00\x00\x58\x96\x00\x00\x58\x95\x58\x97\x00\x00\x00\x00\x00\x00\x00\x00\x58\x98\x58\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x7d\x51\x4f\x00\x00\x4c\x9f\x58\x9a\x49\x6c\x4e\xb0\x47\x75\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9b\x00\x00\x58\x9c\x50\x77\x58\x9d\x58\x9e\x52\x75\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x58\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x6f\x58\xa0\x58\xa1\x00\x00\x00\x00\x00\x00\x49\x7e\x58\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc3\x46\x94\x00\x00\x52\xc8\x54\xdd\x45\xfe\x58\xa3\x48\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8b\x00\x00\x00\x00\x58\xa5\x00\x00\x45\x5b\x00\x00\x46\x8a\x45\xab\x45\x73\x58\xa6\x58\xa7\x47\x92\x00\x00\x00\x00\x49\x41\x58\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x51\x47\x58\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf2\x00\x00\x00\x00\x4d\x69\x45\xe6\x4d\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8f\x4c\x53\x58\xac\x4c\x64\x00\x00\x58\xad\x52\x84\x58\xab\x00\x00\x55\x83\x58\xaf\x00\x00\x58\xae\x58\xb0\x00\x00\x58\xb1\x00\x00\x00\x00\x58\xb4\x00\x00\x58\xb3\x58\xb2\x00\x00\x46\xe5\x00\x00\x58\xb5\x4e\xca\x58\xb7\x4e\xbb\x00\x00\x58\xb6\x00\x00\x4e\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x46\x99\x4d\x90\x00\x00\x00\x00\x00\x00\x58\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x46\x9e\x00\x00\x00\x00", /* 5980 */ "\x00\x00\x58\xb9\x4b\xf8\x51\xa2\x55\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x43\x00\x00\x00\x00\x58\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x95\x00\x00\x00\x00\x53\xd1\x00\x00\x00\x00\x4a\x66\x00\x00\x58\xbb\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xbd\x58\xbe\x4d\x9e\x00\x00\x00\x00\x50\xec\x00\x00\x00\x00\x00\x00\x53\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xdc\x58\xc0\x49\xa3\x00\x00\x00\x00\x53\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc1\x00\x00\x00\x00\x4c\xc1\x00\x00\x49\x90\x00\x00\x00\x00\x00\x00\x00\x00\x54\x9c\x53\xf2\x00\x00\x4f\xf1\x48\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc3\x58\xc4\x00\x00\x51\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x55\x55\xde\x00\x00\x58\xc2\x00\x00\x55\x8c\x4a\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x79\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb9\x00\x00\x00\x00\x00\x00\x4b\x42", /* 5a00 */ "\x00\x00\x4c\x65\x00\x00\x55\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x54\x00\x00\x58\xc9\x00\x00\x58\xc8\x00\x00\x00\x00\x58\xc6\x52\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc5\x00\x00\x00\x00\x00\x00\x54\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xce\x58\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x98\x00\x00\x00\x00\x00\x00\x58\xcb\x50\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xcc\x00\x00\x00\x00\x58\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd0\x00\x00\x00\x00\x00\x00\x49\x6f\x00\x00\x00\x00\x00\x00\x58\xd1\x00\x00\x58\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x54", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd2\x48\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd3\x58\xd8\x58\xd4\x00\x00\x00\x00\x4e\x89\x58\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe0\x00\x00\x58\xd6\x4e\xc3\x00\x00\x00\x00\x00\x00\x58\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xdd\x58\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x67\x00\x00\x58\xd9\x00\x00\x00\x00\x58\xdb\x00\x00\x00\x00\x58\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xde\x58\xdf\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8b\x00\x00\x58\xe1\x58\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe4\x00\x00\x52\xea\x00\x00\x00\x00\x00\x00\x55\xe8\x00\x00\x58\xe3\x00\x00\x00\x00\x00\x00\x58\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe6\x00\x00\x58\xe9\x00\x00\x00\x00\x58\xe7\x00\x00\x58\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x64\x58\xea\x00\x00\x00\x00\x4b\xd9\x58\xeb\x58\xec\x48\xf2\x4a\x41\x00\x00\x52\x58\x58\xee\x4f\xf2\x45\xf4\x00\x00\x4f\x83\x00\x00\x00\x00\x00\x00\x4a\xec\x4e\xaf\x58\xef\x45\xbe\x00\x00\x00\x00\x58\xf0\x00\x00\x4c\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf1\x59\x5b\x00\x00\x58\xf2\x00\x00\x58\xf3\x00\x00\x00\x00\x58\xf4\x00\x00\x58\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b80 */ "\x58\xf6\x00\x00\x00\x00\x58\xf7\x00\x00\x48\x6f\x00\x00\x46\xd5\x46\xf0\x45\xa8\x00\x00\x52\x4d\x48\xc5\x4c\x75\x00\x00\x46\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5c\x00\x00\x47\xdd\x49\xa2\x4d\x64\x45\xe7\x50\xab\x4d\x8b\x49\x4d\x00\x00\x45\xed\x00\x00\x00\x00\x4a\xde\x49\x8f\x47\xb8\x4f\x7a\x58\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x92\x00\x00\x4e\xd4\x00\x00\x00\x00\x49\x68\x50\x78\x52\xef\x46\x86\x00\x00\x58\xf9\x48\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x82\x58\xfc\x00\x00\x4f\xe9\x58\xfa\x49\xdf\x4a\x84\x4a\x56\x58\xfb\x00\x00\x58\xfd\x00\x00\x00\x00\x45\xac\x00\x00\x00\x00\x00\x00\x59\x41\x00\x00\x4b\x81\x55\xf4\x52\x44\x00\x00\x00\x00\x00\x00\x59\x42\x00\x00\x00\x00\x47\xf8\x00\x00\x4b\x59\x59\x43\x4b\x93\x00\x00\x52\xb8\x59\x46\x00\x00\x59\x45\x59\x47\x51\xfc\x4f\xa9\x5c\x7e\x49\x87\x00\x00\x59\x48\x59\x44\x00\x00\x4c\x7a\x00\x00\x59\x49\x00\x00\x00\x00\x59\x4a\x00\x00\x55\x56\x59\x4b\x00\x00\x4b\x60\x00\x00\x46\xa0\x00\x00\x00\x00\x00\x00\x46\x56\x46\xb2", /* 5c00 */ "\x00\x00\x4d\x76\x49\xfb\x00\x00\x49\x8a\x59\x4c\x49\x59\x59\x4d\x59\x4e\x51\x89\x4c\xef\x4d\x5f\x00\x00\x59\x4f\x48\xae\x45\x5d\x00\x00\x48\x4a\x00\x00\x59\x50\x00\x00\x00\x00\x53\xc0\x00\x00\x00\x00\x00\x00\x48\x71\x00\x00\x00\x00\x00\x00\x59\x51\x00\x00\x59\x52\x00\x00\x59\x53\x00\x00\x53\xae\x00\x00\x00\x00\x00\x00\x59\x54\x00\x00\x00\x00\x00\x00\x00\x00\x68\x80\x00\x00\x00\x00\x00\x00\x4b\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x55\x51\x5d\x4c\x6b\x49\xce\x4a\x86\x4f\xb9\x45\xc8\x4c\xc6\x48\x8b\x59\x56\x00\x00\x00\x00\x00\x00\x48\x5e\x59\x57\x00\x00\x4d\x94\x00\x00\x4d\xa7\x45\xe9\x00\x00\x55\xba\x59\x58\x54\x43\x59\x5a\x54\xb2\x00\x00\x59\x59\x00\x00\x48\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x43\x00\x00\x00\x00\x47\x6d\x00\x00\x53\xfb\x55\xc0\x55\xc0\x00\x00\x4a\x8e\x4c\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x5c\x00\x00\x59\x5d\x4f\xdd\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\x00\x00\x59\x5e\x00\x00\x00\x00\x59\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x60\x00\x00\x00\x00\x00\x00\x47\x4a\x52\x5a\x00\x00\x00\x00\x59\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x59\x67\x00\x00\x54\xb9\x45\xbf\x00\x00\x59\x63\x50\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x52\x62\x00\x00\x4d\x46\x00\x00\x00\x00\x59\x65\x59\x66\x47\x48\x00\x00\x59\x68\x59\x64\x59\x6a\x00\x00\x59\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x69\x00\x00\x59\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x96\x51\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9d\x59\x6d\x59\x72\x00\x00\x00\x00\x59\x71\x00\x00\x4a\xac\x48\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x59\x70\x45\x6f\x00\x00\x00\x00\x00\x00\x59\x6f\x50\x72\x00\x00\x59\x6e\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x7f\x00\x00\x00\x00\x00\x00\x59\x73\x00\x00\x00\x00\x45\x7f\x00\x00\x00\x00\x59\x77\x00\x00\x00\x00\x51\x4d\x59\x74\x50\x74\x54\xf1\x59\x7c\x59\x7b\x59\x7a\x59\x76\x00\x00\x00\x00\x00\x00\x59\x75\x00\x00\x00\x00\x59\x79\x00\x00\x00\x00\x00\x00\x00\x00\x59\x78\x00\x00\x4f\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x83\x59\x7d\x00\x00\x59\x82\x00\x00\x49\x8c\x00\x00\x59\x7e\x59\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9e\x00\x00\x00\x00\x59\x85\x59\x87\x00\x00\x4e\xd3\x00\x00\x00\x00\x00\x00\x59\x86\x00\x00\x00\x00\x59\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d80 */ "\x00\x00\x00\x00\x59\x8b\x00\x00\x59\x8a\x00\x00\x00\x00\x59\x89\x00\x00\x00\x00\x00\x00\x47\xd1\x59\x8c\x00\x00\x00\x00\x00\x00\x59\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x59\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x90\x00\x00\x59\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x92\x59\x93\x59\x95\x4c\xe8\x00\x00\x59\x94\x4f\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x96\x00\x00\x00\x00\x49\xcf\x52\x81\x00\x00\x00\x00\x59\x97\x00\x00\x59\x99\x59\x98\x00\x00\x00\x00\x51\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9a\x00\x00\x45\x67\x47\x41\x00\x00\x00\x00\x4d\x47\x00\x00\x4c\x67\x00\x00\x45\x6a\x48\x5b\x4c\xa3\x4a\x52\x00\x00\x00\x00\x59\x9b\x00\x00\x00\x00\x49\x8b\x00\x00\x00\x00\x47\xad\x4a\x4b\x4a\xe6\x4e\x7d\x59\x9c\x00\x00\x53\xcb\x00\x00\x00\x00\x00\x00\x48\x93\x00\x00\x4e\x46\x4a\x7d\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x45\x53\x47\x6b\x00\x00\x00\x00\x4f\x75\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9d\x4a\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x59\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x51\xc7\x00\x00\x00\x00\x59\x9f\x59\x9e\x59\xa1\x00\x00\x48\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x44\x00\x00\x4b\x53\x00\x00\x49\x60\x49\x82\x00\x00\x00\x00\x4d\xc5\x00\x00\x00\x00\x59\xa2\x54\xbe\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x85\x00\x00\x00\x00\x59\xa5\x00\x00\x00\x00\x59\xa4\x59\xa3\x4a\x5e\x00\x00\x59\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x49\x6b\x00\x00\x59\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xa9\x4c\xca\x00\x00\x59\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x83\x00\x00\x48\xde\x59\xaa\x4e\x7f\x59\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6f\x45\x8d\x45\x60\x59\xac\x59\xad\x00\x00\x45\xa9\x48\xda\x59\xae\x50\xa2\x4d\xaf\x52\x5f\x4b\x57\x59\xaf", /* 5e80 */ "\x00\x00\x4b\x92\x00\x00\x45\xb7\x48\x50\x00\x00\x00\x00\x55\x8d\x00\x00\x00\x00\x4a\xed\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x64\x55\x4f\x48\x54\x00\x00\x00\x00\x51\x5a\x00\x00\x45\x51\x00\x00\x00\x00\x00\x00\x59\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xde\x48\xb1\x00\x00\x00\x00\x00\x00\x45\xf8\x00\x00\x48\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xeb\x50\xc1\x46\x9a\x4c\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb1\x59\xb2\x4b\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb3\x4e\xdb\x4e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb5\x59\xb4\x00\x00\x00\x00\x54\xad\x00\x00\x00\x00\x53\x6c\x00\x00\x00\x00\x00\x00\x59\xb7\x59\xb8\x00\x00\x59\xb6\x00\x00\x55\xaf\x55\x62\x59\xba\x59\xb9\x50\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x59\xbb\x59\xbc\x00\x00\x00\x00\x59\xbd\x00\x00\x00\x00\x00\x00\x59\xbe\x59\xbf\x00\x00\x59\xc0\x59\xc1\x00\x00\x47\xd0\x50\x5b\x52\xd6\x00\x00\x46\x66\x4b\xaf\x55\x64\x00\x00\x54\x4b\x51\xd9", /* 5f00 */ "\x00\x00\x4b\x47\x00\x00\x59\xc2\x54\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x59\xc3\x50\xcd\x59\xc4\x56\x41\x56\x51\x00\x00\x46\x8f\x50\xe1\x59\xc5\x00\x00\x4b\x63\x51\xe5\x46\xda\x59\xc6\x54\xac\x45\xd3\x00\x00\x00\x00\x55\x97\x00\x00\x00\x00\x00\x00\x4c\x9b\x00\x00\x59\xc7\x00\x00\x00\x00\x00\x00\x47\xe6\x4e\x42\x53\x6b\x00\x00\x59\xc8\x00\x00\x00\x00\x00\x00\x59\xc9\x00\x00\x59\xca\x00\x00\x4b\x6e\x00\x00\x00\x00\x59\xcb\x48\xba\x00\x00\x46\xd2\x59\xcc\x00\x00\x00\x00\x00\x00\x52\xe0\x00\x00\x4a\xd4\x00\x00\x00\x00\x59\xcd\x00\x00\x00\x00\x00\x00\x53\xc7\x00\x00\x00\x00\x59\xce\x00\x00\x53\x85\x00\x00\x59\xcf\x00\x00\x59\xd0\x00\x00\x00\x00\x59\xd1\x00\x00\x46\x5f\x00\x00\x00\x00\x59\xd2\x59\xd3\x00\x00\x59\xd4\x00\x00\x00\x00\x59\xd5\x59\xd6\x00\x00\x00\x00\x00\x00\x59\xd7\x46\x90\x00\x00\x00\x00\x00\x00\x45\xe1\x59\xd8\x00\x00\x4d\xcd\x51\x59\x4e\x86\x4e\x88\x52\x9c\x00\x00\x00\x00\x49\x64\x49\x5e\x00\x00\x59\xd9\x00\x00\x00\x00\x00\x00\x59\xda\x00\x00\x49\x5d\x00\x00\x00\x00\x47\x72\x00\x00\x00\x00\x59\xdd", /* 5f80 */ "\x4c\xea\x4a\x61\x59\xdc\x59\xdb\x4e\x60\x48\xa3\x00\x00\x59\xe0\x59\xdf\x00\x00\x59\xde\x49\x91\x45\xe5\x00\x00\x00\x00\x00\x00\x50\xb3\x59\xe1\x4c\x6c\x48\xfb\x00\x00\x00\x00\x00\x00\x47\xe8\x59\xe4\x59\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x59\xe3\x00\x00\x59\xe5\x46\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xe6\x4a\x70\x4e\xf5\x00\x00\x00\x00\x59\xe7\x4b\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x46\x54\x4c\x74\x00\x00\x00\x00\x59\xe8\x00\x00\x48\xf8\x00\x00\x00\x00\x59\xe9\x55\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe7\x00\x00\x47\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x97\x4b\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xea\x46\x61\x4c\x45\x4e\xa3\x00\x00\x00\x00\x48\x95\x59\xf0\x59\xf1\x00\x00\x46\x4f\x00\x00\x00\x00\x00\x00\x59\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x60\x00\x00\x00\x00\x00\x00\x00\x00\x59\xef\x59\xee\x00\x00\x00\x00\x00\x00\x4a\xae\x00\x00\x00\x00\x59\xed\x00\x00\x00\x00\x59\xeb\x00\x00\x50\x56\x00\x00\x59\xf2", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf7\x59\xfd\x59\xf5\x00\x00\x4c\xd6\x00\x00\x00\x00\x59\xfa\x4e\xf0\x00\x00\x00\x00\x59\xf4\x00\x00\x59\xf9\x50\x9f\x46\xad\x00\x00\x00\x00\x50\x81\x59\xf3\x00\x00\x00\x00\x00\x00\x47\xcc\x59\xfc\x46\x6e\x54\xde\x59\xf6\x4e\x71\x59\xfb\x00\x00\x00\x00\x00\x00\x55\x42\x00\x00\x59\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x42\x52\x56\x5a\x4c\x00\x00\x00\x00\x5a\x49\x00\x00\x00\x00\x00\x00\x5a\x48\x4b\xca\x00\x00\x5a\x4a\x00\x00\x00\x00\x4b\xd5\x00\x00\x47\xc7\x00\x00\x00\x00\x52\x98\x00\x00\x00\x00\x00\x00\x5a\x50\x5a\x41\x00\x00\x00\x00\x5a\x44\x00\x00\x5a\x47\x5a\x43\x00\x00\x55\x94\x5a\x4b\x5a\x4d\x4e\xce\x00\x00\x00\x00\x53\xb8\x4c\x81\x5a\x45\x5a\x4f\x5a\x4e\x49\x4e\x00\x00\x4b\xb0\x53\x84\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x5a\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6080 */ "\x00\x00\x5a\x52\x00\x00\x5a\x53\x5a\x55\x5a\x51\x00\x00\x00\x00\x00\x00\x54\x69\x5a\x57\x5a\x5c\x4d\xe3\x55\x44\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x5a\x00\x00\x50\x91\x00\x00\x5a\x58\x5a\x59\x00\x00\x00\x00\x5a\x54\x5a\x56\x00\x00\x00\x00\x00\x00\x4a\xb1\x4d\xd8\x00\x00\x00\x00\x4d\xeb\x00\x00\x00\x00\x48\x73\x5a\x5b\x00\x00\x4b\xcd\x49\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x9d\x52\x76\x53\xa3\x5a\x64\x55\x54\x00\x00\x5a\x5e\x00\x00\x00\x00\x00\x00\x51\x45\x5a\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x5f\x5a\x63\x4e\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x78\x00\x00\x5a\x61\x00\x00\x5a\x65\x00\x00\x00\x00\x5a\x66\x00\x00\x54\x9d\x00\x00\x4e\xd7\x00\x00\x5a\x5f\x4f\xe0\x5a\x60\x5a\x5d\x00\x00\x4b\x68\x00\x00\x00\x00\x00\x00\x55\x4a\x50\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb8\x5a\x73\x5a\x68\x48\xb3\x5a\x6e\x00\x00\x5a\x6b\x5a\x6c\x00\x00\x54\x72\x5a\x6f\x5a\x72\x00\x00\x00\x00\x00\x00\x00\x00", /* 6100 */ "\x5a\x6d\x52\x82\x00\x00\x5a\x70\x00\x00\x00\x00\x5a\x6a\x00\x00\x53\xc8\x50\x98\x00\x00\x00\x00\x00\x00\x5a\x74\x5a\x75\x47\x63\x00\x00\x5a\x76\x00\x00\x00\x00\x00\x00\x5a\x69\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb2\x45\xc6\x00\x00\x00\x00\x00\x00\x47\xf7\x5a\x67\x5a\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7b\x5a\x7a\x00\x00\x00\x00\x00\x00\x5a\x80\x00\x00\x00\x00\x00\x00\x5a\x7e\x00\x00\x00\x00\x00\x00\x5a\x81\x00\x00\x00\x00\x5a\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7f\x5a\x84\x5a\x7c\x51\xe3\x00\x00\x00\x00\x5a\x85\x00\x00\x5a\x86\x00\x00\x00\x00\x5a\x77\x4c\xbe\x00\x00\x5a\x7d\x48\xfd\x53\x8e\x5a\x78\x4a\x76\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x92\x00\x00\x52\xe3\x00\x00\x00\x00\x5a\x8a\x5a\x8b\x5a\x8c\x00\x00\x00\x00\x5a\x83\x00\x00\x5a\x91\x00\x00\x00\x00\x4d\xdb\x4d\xd3\x00\x00\x5a\x82\x00\x00\x4e\xb6\x52\x8a\x00\x00\x00\x00\x5a\x8d\x00\x00\x00\x00\x4c\x49\x5a\x8f\x4f\xad\x5a\x90\x00\x00\x5a\x87\x5a\x8e\x5a\x93\x48\xa8\x5a\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf4\x00\x00", /* 6180 */ "\x00\x00\x00\x00\x50\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x88\x00\x00\x00\x00\x5a\x99\x00\x00\x00\x00\x00\x00\x4f\x4a\x00\x00\x55\x5b\x5a\x9a\x00\x00\x00\x00\x5a\x98\x00\x00\x5a\x96\x00\x00\x5a\x94\x5a\x95\x55\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xfc\x00\x00\x00\x00\x53\xc2\x00\x00\x51\x75\x00\x00\x5a\x9b\x5a\x97\x00\x00\x5a\x9c\x00\x00\x00\x00\x00\x00\x47\xbe\x00\x00\x00\x00\x00\x00\x4e\x6c\x00\x00\x00\x00\x00\x00\x5a\xa3\x00\x00\x00\x00\x00\x00\x51\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa1\x00\x00\x00\x00\x5a\xa2\x4e\xa4\x5a\xa0\x5a\x9f\x5a\x9e\x5a\xa4\x5a\x9d\x5a\xa6\x00\x00\x00\x00\x4e\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa8\x00\x00\x00\x00\x5a\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x53\x00\x00\x5a\xa9\x00\x00\x5a\xab\x5a\xaa\x4d\xc6\x00\x00\x5a\xad\x00\x00\x5a\xaf\x5a\xac\x5a\xb0\x5a\xae", /* 6200 */ "\x5a\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xb2\x5a\xb3\x51\x61\x00\x00\x54\x60\x5a\xb4\x51\x7f\x00\x00\x45\xba\x49\xde\x4d\xa0\x5a\xb5\x5a\xb6\x00\x00\x4d\x7f\x00\x00\x00\x00\x00\x00\x55\x95\x5a\xb7\x00\x00\x64\x6e\x5a\xb8\x54\xd9\x00\x00\x5a\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x47\x64\x00\x00\x00\x00\x00\x00\x5a\xba\x00\x00\x00\x00\x00\x00\x5a\xbb\x4f\x92\x5a\xbc\x00\x00\x5a\xbd\x5a\xbe\x50\x92\x00\x00\x00\x00\x00\x00\x45\xcf\x00\x00\x00\x00\x4c\x44\x00\x00\x00\x00\x00\x00\x47\xdc\x45\x8c\x5a\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xca\x65\x5d\x50\xad\x00\x00\x45\xcb\x00\x00\x49\xf1\x5a\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x47\xea\x00\x00\x49\x81\x00\x00\x00\x00\x55\xd5\x00\x00\x00\x00\x5a\xc3\x00\x00\x00\x00\x5a\xc1\x00\x00\x5a\xc4\x00\x00\x00\x00\x5a\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb7\x00\x00\x00\x00\x4c\x69\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7a\x00\x00\x00\x00\x4c\x76\x00\x00\x00\x00\x5a\xc6\x00\x00\x5a\xca\x4c\x48", /* 6280 */ "\x48\xf7\x00\x00\x5a\xc7\x5a\xcd\x4e\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc8\x4e\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x66\x5a\xc9\x5a\xcb\x5a\xce\x47\x51\x5a\xcc\x4a\x67\x49\x8d\x00\x00\x00\x00\x5a\xdc\x4a\x85\x00\x00\x4e\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xda\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa6\x5a\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x86\x00\x00\x00\x00\x00\x00\x4b\x90\x00\x00\x00\x00\x00\x00\x51\xe0\x00\x00\x5a\xd1\x49\xe1\x4d\x53\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd9\x00\x00\x00\x00\x4a\xa1\x5a\xd4\x5a\xdb\x5a\xd5\x5a\xdd\x5a\xd8\x00\x00\x53\x45\x4f\xba\x00\x00\x5a\xd2\x53\xa2\x5a\xd0\x4f\x61\x4b\xdb\x5a\xd7\x00\x00\x00\x00\x5a\xcf\x50\x45\x52\x5c\x00\x00\x4b\xfd\x5a\xd6\x4e\xe2\x00\x00\x00\x00\x4d\x77\x48\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc5\x4e\xe5\x5a\xdf\x5a\xe4\x00\x00\x5a\xe0\x00\x00\x50\x8d\x00\x00\x5a\xe5\x4f\x9e\x55\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd7\x5a\xe6", /* 6300 */ "\x00\x00\x46\xd8\x5a\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb6\x5a\xe3\x54\x89\x00\x00\x00\x00\x5a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe1\x4f\x81\x00\x00\x00\x00\x54\x8f\x00\x00\x00\x00\x00\x00\x48\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x87\x00\x00\x00\x00\x52\xa8\x5a\xe9\x55\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa0\x00\x00\x00\x00\x55\x7d\x5a\xe8\x00\x00\x5a\xea\x5a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x41\x00\x00\x55\x46\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x85\x4b\xb3\x5a\xf5\x00\x00\x5a\xf4\x00\x00\x00\x00\x4e\xd6\x00\x00\x00\x00\x00\x00\x54\x93\x00\x00\x00\x00\x00\x00\x5a\xef\x4d\x8f\x00\x00\x00\x00\x4f\xc0\x54\xc0\x00\x00\x00\x00\x00\x00\x00\x00", /* 6380 */ "\x5a\xed\x00\x00\x00\x00\x4d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x61\x5a\xf2\x00\x00\x00\x00\x4e\xec\x00\x00\x5a\xec\x5a\xf1\x00\x00\x00\x00\x4c\xfa\x00\x00\x00\x00\x00\x00\x5a\xeb\x00\x00\x4d\x44\x00\x00\x00\x00\x4a\xe3\x00\x00\x00\x00\x00\x00\x5a\xf3\x55\xe6\x4b\x4f\x4b\x7f\x5a\xf0\x00\x00\x47\xa8\x00\x00\x4c\xac\x48\xd5\x55\xd0\x4a\x60\x5a\xee\x55\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc1\x00\x00\x54\xcd\x5a\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa3\x00\x00\x00\x00\x5a\xf7\x00\x00\x5a\xf9\x00\x00\x00\x00\x4e\xfd\x5b\x42\x00\x00\x5a\xfa\x00\x00\x00\x00\x5a\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xcf\x49\xb9\x00\x00\x5a\xfe\x00\x00\x00\x00\x00\x00\x4c\xf2\x00\x00\x00\x00\x00\x00\x4c\x46\x49\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x60\x00\x00\x5a\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd5\x5a\xfb\x5b\x41\x00\x00\x00\x00\x00\x00\x4f\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xd8\x00\x00\x5b\x4b\x00\x00\x00\x00\x00\x00\x5b\x45\x54\xa3\x00\x00\x5b\x4c\x5b\x49\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x46\x00\x00\x5b\x4a\x00\x00\x00\x00\x00\x00\x4d\xc8\x52\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x43\x00\x00\x5b\x47\x00\x00\x00\x00\x00\x00\x4e\x49\x00\x00\x00\x00\x00\x00\x50\xa3\x00\x00\x00\x00\x00\x00\x4e\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4d\x00\x00\x00\x00\x54\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4e\x00\x00\x48\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x51\x00\x00\x55\xf5\x00\x00\x51\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6480 */ "\x00\x00\x00\x00\x00\x00\x4a\x74\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xde\x5b\x57\x00\x00\x5b\x55\x00\x00\x00\x00\x00\x00\x00\x00\x53\x48\x00\x00\x00\x00\x5b\x53\x55\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x7a\x5b\x58\x00\x00\x00\x00\x00\x00\x5b\x59\x00\x00\x51\xe1\x00\x00\x4e\x62\x4c\x77\x00\x00\x53\x72\x00\x00\x4e\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x52\x00\x00\x5b\x56\x5b\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4e\x5b\x62\x00\x00\x00\x00\x5b\x5e\x00\x00\x5b\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x9b\x5b\x54\x00\x00\x00\x00\x00\x00\x5b\x5d\x00\x00\x5b\x60\x00\x00\x00\x00\x00\x00\x5b\x61\x00\x00\x5b\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x65\x5b\x66\x55\x43\x5b\x67\x00\x00\x00\x00\x4f\xd6\x5b\x64\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcd\x00\x00\x00\x00\x5b\x68\x00\x00\x5b\x63\x5b\x6b\x00\x00\x5b\x69\x00\x00\x5b\x6a\x00\x00\x00\x00\x00\x00\x5b\x6c\x00\x00\x00\x00\x5b\x6e\x55\xf6\x00\x00", /* 6500 */ "\x5b\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x5b\x70\x5b\x71\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x72\x5b\x74\x5b\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7f\x5b\x75\x5b\x76\x00\x00\x00\x00\x47\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x77\x5b\x78\x5b\x7a\x5b\x79\x5b\x7b\x48\x8f\x00\x00\x4b\xc5\x00\x00\x00\x00\x48\xaf\x45\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf7\x00\x00\x00\x00\x5b\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x80\x5b\x7e\x46\x47\x00\x00\x4c\x5c\x00\x00\x00\x00\x00\x00\x5b\x82\x5b\x7f\x4b\x8a\x5b\x81\x47\xa5\x00\x00\x00\x00\x00\x00\x5b\x83\x51\xb1\x00\x00\x00\x00\x00\x00\x4f\xcf\x4a\xc9\x00\x00\x00\x00\x49\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb0\x00\x00\x00\x00\x00\x00\x46\xcc\x00\x00\x5b\x84\x00\x00\x47\x7c\x4b\xf3\x00\x00\x49\x51\x5b\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6580 */ "\x00\x00\x00\x00\x5b\x86\x5b\x87\x00\x00\x00\x00\x00\x00\x45\xca\x58\xed\x46\x8e\x00\x00\x00\x00\x51\x9d\x00\x00\x47\xdb\x00\x00\x4b\x80\x52\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x83\x00\x00\x46\x4e\x00\x00\x5b\x89\x4b\xd1\x00\x00\x00\x00\x5b\x8a\x00\x00\x55\x81\x00\x00\x00\x00\x54\xcf\x51\x41\x00\x00\x51\xc2\x00\x00\x00\x00\x00\x00\x5b\x8b\x4e\xfc\x49\x89\x00\x00\x4e\xa5\x45\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8c\x00\x00\x45\xcd\x00\x00\x00\x00\x4d\xa4\x48\x88\x00\x00\x00\x00\x00\x00\x5b\x8f\x00\x00\x5b\x8d\x5b\x90\x4a\xcf\x5b\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7b\x5b\x91\x00\x00\x00\x00\x4a\xdc\x00\x00\x00\x00\x5b\x92\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xab\x00\x00\x5b\x93\x00\x00\x51\x65\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x95\x5b\x94\x4b\x77\x00\x00\x00\x00\x45\x62\x4d\x9d\x4c\x7b\x4d\x6a\x46\xe9\x00\x00\x00\x00\x4d\x67\x47\xec\x00\x00\x00\x00\x00\x00\x5b\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa3\x5b\x9c\x00\x00\x00\x00\x00\x00\x00\x00", /* 6600 */ "\x5b\x97\x00\x00\x5b\x99\x5b\x9b\x00\x00\x00\x00\x4f\xe7\x46\xfe\x00\x00\x5b\x9d\x52\x8e\x00\x00\x46\xd1\x00\x00\x45\xa6\x54\xe8\x00\x00\x00\x00\x00\x00\x47\xe9\x4c\x59\x5b\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa3\x00\x00\x5b\xa1\x47\xa9\x47\xac\x00\x00\x00\x00\x00\x00\x5b\xa4\x46\x62\x00\x00\x55\x9d\x48\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x45\xb3\x5b\xa0\x4b\xbb\x00\x00\x52\xeb\x00\x00\x00\x00\x5b\xa2\x5b\x9f\x51\x93\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9f\x4c\x98\x00\x00\x00\x00\x5b\x9e\x00\x00\x52\x51\x46\x51\x48\xb0\x5b\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa6\x00\x00\x4b\xb2\x00\x00\x00\x00\x00\x00\x51\xea\x00\x00\x00\x00\x54\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa8\x00\x00\x5b\xab\x00\x00\x00\x00\x00\x00\x5b\xad\x5b\xa9\x4f\xce\x00\x00\x00\x00\x5b\xac\x00\x00\x5b\xaa\x5b\xa7\x55\x6d\x50\xa0\x51\xb2\x4c\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x49\xf8\x49\x93\x5b\xb0\x00\x00\x00\x00\x5b\xaf\x47\x95\x00\x00\x4a\xf8\x00\x00\x00\x00\x00\x00\x46\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6680 */ "\x00\x00\x4c\x83\x00\x00\x5b\xb1\x5b\xb3\x00\x00\x00\x00\x4f\x46\x5b\xb2\x4e\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xab\x00\x00\x00\x00\x4f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6c\x4b\xe2\x5b\xb5\x5b\xb4\x00\x00\x00\x00\x00\x00\x5b\xb7\x00\x00\x00\x00\x5b\xb6\x00\x00\x4c\xc7\x00\x00\x00\x00\x00\x00\x50\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x50\x93\x00\x00\x00\x00\x4a\xfe\x00\x00\x00\x00\x00\x00\x5b\xb8\x00\x00\x4c\xb2\x00\x00\x00\x00\x00\x00\x5b\xbf\x52\x43\x00\x00\x00\x00\x5b\xbe\x00\x00\x5b\xbd\x5b\xbb\x00\x00\x5b\xba\x00\x00\x00\x00\x5b\xb9\x00\x00\x00\x00\x4c\x56\x00\x00\x5b\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc0\x00\x00\x00\x00\x51\x52\x5b\xc1\x00\x00\x4b\xfe\x52\xa6\x00\x00\x00\x00\x51\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc2\x00\x00\x00\x00\x5b\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc4\x00\x00\x49\xb6\x4e\xbc\x4a\x6d\x5b\xc5\x00\x00\x5b\xc6\x47\x9d\x4e\xd2\x5b\xc7\x53\x97\x57\x8d\x49\x5f\x51\x66\x4b\xc3", /* 6700 */ "\x46\xf5\x00\x00\x00\x00\x56\xac\x00\x00\x00\x00\x00\x00\x00\x00\x45\x61\x46\x85\x00\x00\x4b\xc4\x00\x00\x47\xd4\x5b\xc8\x54\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa4\x55\xf3\x5b\xca\x48\x6e\x00\x00\x00\x00\x00\x00\x47\xbb\x00\x00\x47\x5c\x5b\xcb\x46\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcd\x5b\xce\x45\x6c\x00\x00\x49\xc6\x47\x46\x45\x66\x48\xf9\x5b\xd0\x00\x00\x00\x00\x4d\x42\x00\x00\x00\x00\x4e\xa2\x00\x00\x5b\xd2\x5b\xd3\x5b\xd4\x00\x00\x4d\x96\x00\x00\x00\x00\x50\xf0\x00\x00\x5b\xd1\x00\x00\x53\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd5\x00\x00\x00\x00\x46\x68\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x51\x50\xd0\x46\xbc\x45\x56\x00\x00\x54\xc1\x00\x00\x00\x00\x50\xf4\x00\x00\x00\x00\x5b\xd7\x00\x00\x00\x00\x52\x5d\x00\x00\x5b\xd6\x4b\x4b\x54\x80\x47\x5e\x51\xa6\x52\x91\x5b\xd9\x46\x76\x5b\xd8\x00\x00\x00\x00\x00\x00\x5b\xde\x00\x00\x00\x00\x50\x8b\x00\x00\x4c\x63\x5b\xdc\x45\x57\x5b\x9a\x5b\xe0\x00\x00\x4a\xa6\x00\x00\x52\x80\x00\x00\x00\x00\x00\x00\x00\x00\x54\xdf\x00\x00\x45\x78\x46\xb4", /* 6780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xdb\x00\x00\x52\x5e\x00\x00\x5b\xda\x00\x00\x5b\xdf\x54\xf2\x00\x00\x00\x00\x00\x00\x4a\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x78\x00\x00\x45\xa2\x00\x00\x00\x00\x49\xd9\x00\x00\x47\xb9\x46\x72\x00\x00\x00\x00\x4f\xd2\x5b\xe2\x52\xd0\x00\x00\x00\x00\x00\x00\x5b\xe1\x00\x00\x00\x00\x5b\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x61\x00\x00\x00\x00\x00\x00\x54\xc9\x5b\xe6\x00\x00\x4e\xe8\x5b\xe4\x5b\xe9\x5b\xf2\x00\x00\x5b\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf0\x55\xcd\x00\x00\x00\x00\x4a\x7f\x00\x00\x5b\xf4\x00\x00\x00\x00\x00\x00\x52\xd9\x00\x00\x00\x00\x00\x00\x5b\xf1\x49\x80\x50\x4a\x4e\xc1\x00\x00\x48\x9b\x4d\xea\x00\x00\x00\x00\x00\x00\x4f\xd8\x00\x00\x4e\xe1\x00\x00\x00\x00\x5b\xed\x54\xf3\x00\x00\x00\x00\x00\x00\x5b\xee\x00\x00\x5b\xeb\x00\x00\x00\x00\x5b\xea\x00\x00\x5b\xe8\x00\x00\x00\x00\x5b\xe7\x00\x00\x5b\xef\x5b\xe5\x00\x00\x4b\xea\x00\x00\x46\xea\x47\xa7\x51\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x73\x00\x00\x00\x00\x50\x54\x4a\xc1", /* 6800 */ "\x00\x00\x5b\xf3\x52\xd1\x47\xd3\x45\xfa\x51\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xe3\x00\x00\x00\x00\x4d\xcc\x47\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf5\x00\x00\x00\x00\x48\xbf\x52\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xde\x48\x56\x52\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfa\x00\x00\x55\xda\x00\x00\x00\x00\x00\x00\x4b\x9e\x46\x67\x00\x00\x00\x00\x47\xde\x4d\xe0\x00\x00\x00\x00\x5b\xf8\x50\xd6\x49\xab\x4a\xda\x5b\xf9\x00\x00\x5b\xf6\x00\x00\x48\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf7\x5b\xfb\x00\x00\x49\xc0\x48\x79\x5b\xec\x53\x6d\x53\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfd\x00\x00\x00\x00\x47\x71\x4d\x88\x00\x00\x51\xf3\x00\x00\x00\x00\x00\x00\x5b\xfc\x00\x00\x00\x00\x00\x00\x50\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x4b\x00\x00\x4e\x77\x5c\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x44\x5c\x42", /* 6880 */ "\x00\x00\x4e\x44\x00\x00\x5c\x48\x00\x00\x47\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfe\x5b\xfe\x5c\x45\x00\x00\x00\x00\x00\x00\x50\xda\x5c\x47\x00\x00\x00\x00\x52\xcc\x00\x00\x00\x00\x00\x00\x53\xbc\x00\x00\x4e\x92\x00\x00\x5c\x43\x52\xc6\x00\x00\x50\xac\x00\x00\x00\x00\x00\x00\x58\xa4\x52\xd3\x48\x58\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x46\x00\x00\x51\xe4\x46\x82\x53\x59\x00\x00\x53\x61\x00\x00\x5c\x4c\x49\xad\x00\x00\x00\x00\x5c\x4a\x5c\x4d\x00\x00\x5c\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb1\x00\x00\x5c\x60\x00\x00\x53\x86\x55\xca\x5c\x50\x4e\xf1\x00\x00\x5c\x56\x00\x00\x5c\x5f\x00\x00\x00\x00\x4b\x5a\x00\x00\x5c\x57\x5c\x59\x00\x00\x54\xc2\x5c\x52\x00\x00\x4b\xef\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xa9\x5c\x5e\x5c\x54\x00\x00\x5c\x5d\x00\x00\x00\x00\x00\x00\x5c\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x9d\x5c\x5b\x00\x00\x00\x00\x53\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x94\x55\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x54\x68\x5c\x4f\x00\x00\x00\x00\x5c\x5c\x4f\xf7\x00\x00\x00\x00\x5c\x51\x00\x00\x00\x00\x4d\xfd\x5c\x55\x47\xc5\x4b\xa0\x5c\x4e\x00\x00\x00\x00\x5c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xed\x53\x70\x51\x63\x48\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x63\x5c\x61\x5c\x64\x00\x00\x53\xfa\x5c\x53\x00\x00\x5c\x65\x00\x00\x5c\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x71\x00\x00\x00\x00\x00\x00\x54\xa7\x00\x00\x5c\x69\x00\x00\x00\x00\x52\xed\x00\x00\x00\x00\x00\x00\x5c\x6f\x00\x00\x4c\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x95\x5c\x6b\x55\xc5\x00\x00\x00\x00\x00\x00\x5c\x70\x53\x4c\x00\x00\x54\xe2\x5c\x73\x5c\x72\x00\x00\x4a\xdf\x52\x7c\x4d\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x6e\x00\x00\x5c\x6c\x54\xa2\x00\x00\x45\x6b\x53\xef\x4f\xae\x00\x00\x00\x00\x00\x00\x52\xb3\x5c\x6d\x49\xb7\x00\x00\x5c\x68\x5c\x6a\x5c\x67\x00\x00\x00\x00\x52\xba\x47\x61\x5c\x74\x00\x00", /* 6980 */ "\x00\x00\x5c\x75\x4c\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x52\x00\x00\x00\x00\x00\x00\x49\xeb\x00\x00\x00\x00\x54\x76\x00\x00\x00\x00\x55\xc7\x5c\x86\x00\x00\x00\x00\x5c\x79\x00\x00\x00\x00\x4d\x7e\x5c\x85\x00\x00\x00\x00\x00\x00\x5c\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4a\x00\x00\x00\x00\x5c\x80\x5c\x76\x00\x00\x53\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x82\x00\x00\x00\x00\x5c\x7c\x5c\x77\x00\x00\x5c\x7a\x00\x00\x5c\x83\x00\x00\x00\x00\x00\x00\x4d\xb9\x00\x00\x00\x00\x5c\x7f\x47\x96\x4e\xfa\x52\xdb\x5c\x7d\x00\x00\x54\x8c\x00\x00\x00\x00\x5c\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x48\x48\x68\x81\x00\x00\x00\x00\x00\x00\x5c\x81\x5c\x87\x00\x00\x00\x00\x00\x00\x5c\x90\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8f\x5c\x89\x00\x00\x00\x00\x5c\x94\x00\x00\x5c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8d\x00\x00\x4b\x5c\x00\x00\x4d\xb7\x00\x00\x5c\x8c", /* 6a00 */ "\x00\x00\x00\x00\x5c\x8a\x00\x00\x00\x00\x53\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x95\x49\x4f\x5c\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x97\x5c\x99\x5c\x93\x00\x00\x00\x00\x53\x8b\x00\x00\x49\x66\x00\x00\x5c\x8b\x00\x00\x00\x00\x5c\x91\x53\x9b\x00\x00\x48\x64\x5c\x96\x5c\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xdc\x45\xf2\x4b\x6f\x00\x00\x00\x00\x5c\x88\x00\x00\x5c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x55\x85\x5c\x9f\x00\x00\x5c\xa7\x46\xcf\x4e\x69\x00\x00\x00\x00\x4b\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x9c\x00\x00\x5c\xa6\x5c\xa1\x5c\xa5\x00\x00\x00\x00\x45\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc2\x5c\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x00\x00\x55\xd4\x5c\xa2\x00\x00\x00\x00\x00\x00\x5c\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xa8\x5c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xaf\x4f\xb2", /* 6a80 */ "\x4f\xf5\x00\x00\x00\x00\x00\x00\x5c\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xab\x55\xee\x00\x00\x5c\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x55\x00\x00\x00\x00\x00\x00\x5c\x9e\x00\x00\x5c\xad\x5c\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb2\x00\x00\x5c\xb1\x00\x00\x54\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb5\x00\x00\x00\x00\x5c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb7\x5c\xb4\x52\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xba\x00\x00\x55\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xbb\x4d\xa6\x00\x00\x00\x00\x5c\xb8\x53\x62\x00\x00\x00\x00\x5c\xb9\x00\x00\x5c\xbc\x00\x00\x00\x00\x00\x00\x51\xc5\x00\x00\x5c\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc2\x52\xee\x00\x00\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xde\x5c\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc3\x00\x00\x00\x00\x00\x00\x5c\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf7\x00\x00\x5c\xc5\x4c\xb5\x45\x97\x00\x00\x4b\x9d\x00\x00\x00\x00\x00\x00\x4a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc7\x5c\xc6\x5c\xc8\x51\x7d\x00\x00\x00\x00\x4c\xf8\x4e\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xcc\x00\x00\x00\x00\x00\x00\x5c\xcb\x00\x00\x5c\xcd\x00\x00\x00\x00\x46\xf7\x00\x00\x54\x87\x00\x00\x5c\xce\x00\x00\x00\x00\x4d\x4e\x5c\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xcf\x00\x00\x5c\xd1\x00\x00\x00\x00\x00\x00\x5c\xd2\x00\x00\x5c\xd3\x48\xd8\x45\x77\x4d\x4c\x00\x00\x45\xb1\x00\x00\x00\x00\x47\xd8\x55\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x9f\x00\x00\x00\x00\x00\x00\x48\xe4\x49\x55\x00\x00\x00\x00\x00\x00\x5c\xd4\x5c\xd5\x00\x00\x49\x99\x00\x00\x00\x00\x00\x00\x5c\xd6", /* 6b80 */ "\x5c\xd7\x00\x00\x00\x00\x5c\xd9\x5c\xd8\x00\x00\x4f\x42\x00\x00\x00\x00\x53\xa4\x48\x65\x49\x92\x00\x00\x5c\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdc\x4e\x73\x00\x00\x5c\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdf\x5c\xe0\x00\x00\x00\x00\x00\x00\x5c\xe1\x00\x00\x5c\xe2\x5c\xe3\x5c\xe4\x54\x59\x47\xed\x00\x00\x5c\xe5\x00\x00\x00\x00\x49\xe9\x50\xc0\x5c\xe6\x00\x00\x00\x00\x48\x49\x58\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5b\x5c\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe8\x00\x00\x49\x69\x49\xf5\x00\x00\x00\x00\x00\x00\x4c\x97\x5c\xe9\x47\x4e\x00\x00\x5c\xea\x00\x00\x53\xd7\x00\x00\x00\x00\x46\xe2\x00\x00\x00\x00\x00\x00\x5c\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xed\x5c\xec\x00\x00\x00\x00\x5c\xef\x00\x00\x00\x00\x00\x00\x5c\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8e\x00\x00\x47\x56\x00\x00\x5c\xf1\x5c\xf2\x00\x00\x00\x00\x45\xb9\x00\x00\x00\x00\x00\x00\x5c\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf5\x5c\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x9c\x00\x00\x00\x00\x4c\xa4\x45\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6e\x5c\xf6\x53\x4d\x4d\x84\x49\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x50\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf8\x00\x00\x4e\xc4\x00\x00\x00\x00\x4e\x82\x00\x00\x5c\xf9\x55\x5e\x5c\xf7\x45\xad\x45\xe8\x00\x00\x5c\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x45\x00\x00\x52\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xfe\x50\xd2\x00\x00\x50\xc8\x5d\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa4\x00\x00\x00\x00\x49\x4c\x5d\x44\x00\x00", /* 6c80 */ "\x00\x00\x5d\x42\x5c\xfb\x55\xd9\x00\x00\x00\x00\x5c\xfd\x00\x00\x4c\x8f\x00\x00\x00\x00\x00\x00\x55\x98\x5c\xfc\x00\x00\x00\x00\x5d\x48\x00\x00\x5d\x47\x4f\xf8\x00\x00\x00\x00\x47\xfd\x00\x00\x00\x00\x4e\xad\x5d\x41\x5d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x75\x45\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xec\x00\x00\x00\x00\x5d\x4d\x00\x00\x00\x00\x5d\x50\x00\x00\x46\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xaa\x46\x5c\x5d\x52\x45\x84\x46\xc6\x5d\x4b\x5d\x51\x4e\x6f\x00\x00\x4a\x58\x00\x00\x00\x00\x5d\x49\x5d\x4c\x00\x00\x00\x00\x00\x00\x46\xee\x4d\xb8\x00\x00\x51\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd7\x00\x00\x46\x4a\x00\x00\x55\xc6\x00\x00\x5d\x55\x5d\x4e\x5d\x53\x00\x00\x5d\x4f\x00\x00\x00\x00\x00\x00\x4e\x87\x46\xca\x4d\x4b\x00\x00\x4e\x56\x00\x00\x00\x00\x49\x44\x00\x00\x5d\x56\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x54\x46\xf3\x5d\x4a\x00\x00\x4f\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xda\x5d\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x4e\x00\x00\x52\xb6\x00\x00\x54\x50\x00\x00\x00\x00\x4d\x98\x5d\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xdc\x00\x00\x00\x00\x00\x00\x50\xb7\x4f\xd4\x5d\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x72\x5d\x5c\x00\x00\x52\xac\x5d\x59\x00\x00\x50\xbc\x00\x00\x00\x00\x47\xb4\x00\x00\x5d\x5b\x4a\x72\x00\x00\x00\x00\x46\xfc\x00\x00\x00\x00\x4c\xc9\x46\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x66\x5d\x64\x00\x00\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5f\x5d\x63\x00\x00\x46\x6b\x00\x00\x00\x00\x46\xeb\x4a\x9d\x00\x00\x55\xcc\x00\x00\x4a\x8c\x5d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x7e\x00\x00\x00\x00\x45\xa7\x4d\x41\x5d\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x6a\x00\x00\x5d\x60\x48\x6b\x00\x00\x00\x00\x00\x00\x4f\x7d\x00\x00\x5d\x67\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x61\x00\x00\x5d\x68\x5d\x6b\x00\x00\x00\x00\x4d\xda\x00\x00\x5d\x69\x55\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x72\x00\x00\x00\x00\x4f\x91\x00\x00\x00\x00\x4a\x45\x00\x00\x00\x00\x5d\x6f\x00\x00\x00\x00\x5d\x73\x00\x00\x00\x00\x00\x00\x4e\x74\x00\x00\x00\x00\x00\x00\x4a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x7c\x5d\x75\x5d\x71\x00\x00\x00\x00\x00\x00\x52\xc7\x5d\x78\x00\x00\x00\x00\x5d\x74\x00\x00\x4a\xbf\x5d\x7b\x00\x00\x00\x00\x5d\x82\x00\x00\x00\x00\x55\xe1\x5d\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x77\x00\x00\x00\x00\x4c\xa5\x00\x00\x00\x00\x5d\x81\x00\x00\x5d\x70\x00\x00\x5d\x79\x00\x00\x5d\x83\x55\x4e\x5d\x76\x00\x00\x5d\x84\x00\x00\x00\x00\x47\x77\x5d\x7f\x48\x94\x00\x00\x48\xea\x00\x00\x4b\x46\x5d\x7a\x5d\x6c\x5d\x7d\x4a\x91\x5d\x80\x00\x00\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x96\x00\x00\x54\x41\x47\x69\x4a\xc0\x5d\x6d\x48\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x98\x00\x00\x51\x64\x00\x00\x00\x00\x00\x00\x5d\x87\x50\xe4\x47\x8a\x00\x00\x5d\x99\x00\x00\x5d\x92\x52\x7a\x45\xd2\x00\x00\x5d\x8c\x5d\x98\x4e\x43\x51\xa0\x5d\x93\x00\x00\x49\x50\x00\x00\x5d\x8f\x49\x45\x5d\x85\x5d\x6e\x48\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9a\x5d\x8a\x5d\x96\x00\x00\x5d\x95\x00\x00\x5d\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x88\x00\x00\x00\x00\x5d\x91\x5d\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x52\x00\x00\x51\x55\x00\x00\x00\x00\x53\xf3\x5d\x8e\x00\x00\x00\x00\x5d\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xbd\x00\x00\x00\x00\x00\x00\x5d\x8d\x00\x00\x00\x00\x5d\x86\x48\xbd\x00\x00\x00\x00\x5d\x88\x00\x00\x00\x00\x00\x00\x5d\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6b\x4c\x90", /* 6e80 */ "\x47\x5b\x00\x00\x5d\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x5d\xa5\x47\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xce\x00\x00\x5d\x9d\x00\x00\x00\x00\x00\x00\x4d\xc4\x4a\x4d\x00\x00\x5d\xa8\x00\x00\x00\x00\x52\x71\x00\x00\x00\x00\x53\x76\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa0\x00\x00\x00\x00\x5d\xa2\x00\x00\x00\x00\x00\x00\x48\xbe\x5d\x9e\x00\x00\x00\x00\x54\x97\x00\x00\x00\x00\x5d\x9f\x00\x00\x5d\xa6\x00\x00\x00\x00\x5d\xa7\x00\x00\x5d\xa1\x4e\xe6\x00\x00\x00\x00\x00\x00\x52\xa9\x00\x00\x48\x57\x5d\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa2\x00\x00\x52\x4a\x5d\xa3\x5d\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa3\x4d\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xab\x00\x00\x00\x00\x5d\xb1\x00\x00\x00\x00\x5d\xaf\x00\x00\x4f\xb7\x00\x00\x00\x00\x5d\xb7\x5d\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xad\x5d\xb4", /* 6f00 */ "\x00\x00\x4b\x78\x4f\xbc\x00\x00\x00\x00\x00\x00\x4d\xae\x00\x00\x00\x00\x54\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xc4\x00\x00\x55\x75\x00\x00\x5d\xb6\x49\xed\x54\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8e\x00\x00\x4f\x58\x54\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x6e\x4e\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xb0\x5d\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xb5\x5d\xae\x00\x00\x5d\xa9\x00\x00\x00\x00\x00\x00\x5d\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x4a\xc2\x00\x00\x00\x00\x00\x00\x5d\xc3\x00\x00\x00\x00\x5d\xbd\x4d\xc0\x00\x00\x00\x00\x46\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd2\x00\x00\x5d\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xbe\x4c\x93\x5d\xbc\x54\x46\x00\x00\x00\x00\x00\x00\x5d\xbf\x00\x00\x00\x00\x00\x00\x5d\xba\x00\x00\x5d\xb9\x00\x00\x5d\xc2\x00\x00\x00\x00\x00\x00", /* 6f80 */ "\x5d\xbb\x55\xa0\x5d\xc0\x00\x00\x48\x87\x00\x00\x5d\xb8\x00\x00\x5d\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xc5\x00\x00\x00\x00\x5d\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xcb\x00\x00\x5d\xc9\x4e\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x89\x00\x00\x5d\xc8\x00\x00\x5d\xca\x00\x00\x00\x00\x00\x00\x5d\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xd0\x50\xbe\x5d\xcf\x4a\xce\x00\x00\x00\x00\x5d\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xd4\x5d\xd1\x00\x00\x00\x00\x5d\xd3\x00\x00\x00\x00\x5d\xcd\x00\x00\x00\x00\x00\x00\x5d\xd0\x53\x80\x50\x7e\x00\x00\x00\x00\x51\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa3\x5d\xd2\x00\x00\x5d\xd6\x4d\xd4\x00\x00\x50\x55\x00\x00\x5d\xe2\x00\x00\x5d\xd5\x66\x58\x00\x00\x00\x00\x00\x00\x5d\xdb\x00\x00\x00\x00\x00\x00\x51\x87\x00\x00", /* 7000 */ "\x00\x00\x5d\xdd\x00\x00\x00\x00\x00\x00\x5d\xd7\x55\x50\x5d\xd8\x00\x00\x5d\xd9\x00\x00\x5d\xda\x00\x00\x00\x00\x00\x00\x5d\xde\x00\x00\x5d\xdc\x00\x00\x00\x00\x00\x00\x55\xd1\x00\x00\x00\x00\x5d\xe4\x00\x00\x5d\xe0\x5d\xdf\x00\x00\x52\xb0\x53\x5c\x5d\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xde\x52\xae\x5d\xe3\x00\x00\x00\x00\x00\x00\x46\x5b\x00\x00\x00\x00\x00\x00\x5d\xe5\x00\x00\x5d\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x85\x00\x00\x00\x00\x00\x00\x4b\x65\x4a\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x73\x00\x00\x00\x00\x00\x00\x54\x6a\x4c\xbc\x00\x00\x00\x00", /* 7080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xea\x00\x00\x00\x00\x00\x00\x49\x7d\x4f\xcb\x00\x00\x00\x00\x00\x00\x4d\xad\x00\x00\x00\x00\x00\x00\x4f\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xed\x5d\xee\x48\x61\x5d\xf0\x5d\xec\x00\x00\x00\x00\x00\x00\x52\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xef\x47\x88\x49\xd7\x52\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd1\x00\x00\x00\x00\x5d\xf2\x00\x00\x00\x00\x00\x00\x50\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf3\x00\x00\x00\x00\x00\x00\x53\x8c\x00\x00\x5d\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x87\x00\x00\x00\x00\x00\x00\x5d\xf8\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x53\xee\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xfa\x54\x4f\x00\x00\x5d\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x47\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xfc\x5d\xfd\x00\x00\x4c\x6f\x00\x00\x00\x00\x5e\x42\x00\x00\x54\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x85\x5e\x43\x00\x00\x00\x00\x4b\xdd\x00\x00\x00\x00\x5d\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x41\x00\x00\x54\xea\x53\x57\x5d\xfe\x47\x42\x00\x00\x54\xa0\x00\x00\x00\x00\x5e\x44\x00\x00\x4c\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x90\x00\x00\x00\x00", /* 7180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x47\x00\x00\x00\x00\x00\x00\x5e\x45\x00\x00\x46\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x46\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9d\x5e\x48\x00\x00\x00\x00\x00\x00\x4f\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbb\x00\x00\x00\x00\x00\x00\x5e\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x47\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x4d\x00\x00\x00\x00\x5e\x4b\x00\x00\x49\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf8\x5e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x53\x00\x00\x4a\x79\x00\x00\x5e\x4e\x00\x00\x5e\x51\x50\x47\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfb\x5e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x66\x54\xce\x5e\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x56\x54\xe6\x57\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x54\x00\x00\x00\x00\x00\x00\x5e\x59\x00\x00\x5e\x57\x5e\x58\x00\x00\x5e\x5a\x5e\x5b", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x5c\x00\x00\x00\x00\x5e\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x5e\x00\x00\x4c\x87\x00\x00\x5e\x60\x5e\x5f\x00\x00\x00\x00\x5e\x61\x00\x00\x5e\x62\x00\x00\x00\x00\x53\xa9\x45\xcc\x00\x00\x00\x00\x00\x00\x50\x96\x5e\x63\x5e\x64\x52\xdd\x4c\x79\x5e\x65\x5e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x67\x47\x67\x4a\xbd\x00\x00\x00\x00\x5e\x68\x55\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x69\x53\xfc\x00\x00\x49\x73\x00\x00\x55\xb7\x00\x00\x4a\xaf\x00\x00\x50\x9a\x55\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7b\x00\x00\x46\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x58\x00\x00\x5e\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x46\xa2\x00\x00\x00\x00\x00\x00\x54\x8a\x5e\x6b\x00\x00", /* 7280 */ "\x53\x54\x5e\x6c\x5e\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6f\x00\x00\x00\x00\x00\x00\x5e\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xdc\x00\x00\x5e\x71\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x72\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc5\x00\x00\x00\x00\x4c\xa7\x00\x00\x5e\x73\x5e\x74\x00\x00\x00\x00\x00\x00\x48\x52\x00\x00\x00\x00\x5e\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x75\x00\x00\x00\x00\x00\x00\x4e\x5a\x5e\x76\x5e\x78\x00\x00\x5e\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7a\x00\x00\x51\xdb\x00\x00\x5e\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x52\x74\x00\x00\x4e\xcf\x00\x00\x50\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7d\x5e\x7e\x5e\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7b\x00\x00\x00\x00\x4a\xdb\x4c\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x80\x52\xfe\x5e\x7f\x00\x00\x00\x00\x50\x6f\x54\xd6\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x84\x5e\x81\x00\x00\x00\x00\x00\x00\x4a\x51\x5e\x83\x5e\x85\x00\x00\x4e\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x86\x5e\x8b\x00\x00\x00\x00\x00\x00\x5e\x88\x49\xc5\x4f\xd0\x00\x00\x00\x00\x4f\x45\x5e\x89\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x87\x00\x00\x50\x4f\x53\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8c\x4c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x95\x51\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8e\x5e\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x65\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x92\x00\x00\x5e\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x93\x00\x00\x4d\x61\x00\x00\x00\x00\x5e\x96\x00\x00\x5e\x94\x5e\x95\x00\x00\x51\xcb\x5e\x97\x00\x00\x00\x00\x00\x00\x00\x00", /* 7380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x6e\x00\x00\x00\x00\x47\x83\x00\x00\x45\xfd\x00\x00\x49\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf9\x5e\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9c\x00\x00\x5e\x99\x00\x00\x00\x00\x5e\x9d\x00\x00\x4c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x98\x5e\x9e\x53\x99\x00\x00\x00\x00\x4d\x5d\x5e\x9b\x00\x00\x00\x00\x00\x00\x5e\xa2\x00\x00\x00\x00\x00\x00\x5e\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa5\x00\x00\x4b\x99\x00\x00\x00\x00\x5e\xa1\x00\x00\x5e\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb9\x00\x00\x00\x00\x50\x66\x5e\xa3\x00\x00\x00\x00\x5e\xa4\x00\x00\x00\x00\x00\x00\x5e\xa8\x00\x00\x00\x00\x5e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xb7\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x48\xdb\x00\x00\x5e\xa9\x45\xeb\x5e\xa7\x00\x00\x50\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5c\x00\x00\x00\x00\x5e\xac\x5e\xaa\x00\x00\x00\x00\x5e\xad\x5e\xab\x00\x00\x00\x00\x00\x00\x5e\xae\x00\x00\x00\x00\x00\x00\x5e\xaf\x54\x53\x4c\xd8\x52\xa3\x52\x9f\x00\x00\x00\x00\x00\x00\x5e\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb2\x00\x00\x5e\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb1\x00\x00\x00\x00\x00\x00\x5e\xb4\x53\xf1\x4f\x52\x5e\xb6\x00\x00\x4b\x5b\x5e\xb3\x50\x8c\x00\x00\x5e\xbc\x5e\xb9\x5e\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb7\x5e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbe\x5e\xb8\x00\x00\x00\x00\x51\x88\x00\x00\x00\x00\x68\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbf\x00\x00", /* 7480 */ "\x00\x00\x00\x00\x00\x00\x52\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbd\x00\x00\x50\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc1\x5e\xc0\x00\x00\x00\x00\x5e\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x64\x00\x00\x00\x00\x00\x00\x5e\xc7\x00\x00\x54\x52\x5e\xc8\x00\x00\x00\x00\x49\xc2\x5e\xc9\x00\x00\x5e\xca\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xcb\x00\x00\x5e\xcc\x5e\xce\x5e\xcd\x00\x00\x00\x00\x00\x00\x4c\xd4\x5e\xcf\x5e\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7500 */ "\x00\x00\x5e\xd1\x00\x00\x5e\xd3\x5e\xd2\x5e\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xd6\x5e\xd5\x5e\xd7\x00\x00\x00\x00\x54\x95\x00\x00\x5e\xd8\x00\x00\x53\xe6\x00\x00\x00\x00\x4b\x55\x00\x00\x4b\x66\x00\x00\x52\xa7\x00\x00\x5e\xd9\x45\x99\x00\x00\x00\x00\x00\x00\x45\xc0\x00\x00\x55\xd7\x5e\xda\x00\x00\x45\xb6\x00\x00\x00\x00\x4d\x58\x5e\xdb\x00\x00\x00\x00\x58\xfe\x45\x63\x46\x7c\x48\xa0\x49\x67\x00\x00\x00\x00\x00\x00\x45\x7c\x57\x65\x00\x00\x45\x55\x46\x77\x5e\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xdd\x00\x00\x5e\xe1\x00\x00\x00\x00\x5e\xe0\x5e\xdf\x5b\x7c\x47\xae\x5e\xde\x00\x00\x55\x8f\x00\x00\x47\x8b\x00\x00\x00\x00\x4e\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x47\xab\x5e\xe3\x5e\xe2\x4d\x72\x50\x86\x00\x00\x00\x00\x49\xfe\x00\x00\x55\x9a\x00\x00\x5e\xe4\x4c\xf0\x51\xb4\x5e\xe5\x00\x00\x52\xfd\x48\xb9\x5e\xe6\x00\x00\x5e\xe9\x00\x00\x5e\xe7\x4a\xa9\x00\x00\x00\x00\x4e\x54\x5e\xe8\x00\x00\x5e\xeb\x50\xdd\x5e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xd4", /* 7580 */ "\x00\x00\x00\x00\x5e\xec\x00\x00\x00\x00\x00\x00\x5e\xed\x5e\xee\x00\x00\x5e\xf0\x5e\xef\x4e\xa0\x00\x00\x00\x00\x51\x71\x55\xb0\x00\x00\x4c\xb4\x00\x00\x00\x00\x5e\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf2\x00\x00\x00\x00\x5e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf5\x00\x00\x5e\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xfd\x4d\x97\x5e\xf7\x00\x00\x5e\xf9\x00\x00\x00\x00\x5e\xfb\x54\xe1\x00\x00\x00\x00\x5e\xfc\x5e\xfa\x51\x42\x00\x00\x00\x00\x00\x00\x5e\xf6\x5e\xf8\x00\x00\x49\xbf\x00\x00\x4e\x4a\x00\x00\x00\x00\x5f\x41\x00\x00\x00\x00\x5e\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x42\x00\x00\x51\x82\x53\xfd\x00\x00\x00\x00\x55\x49\x5f\x43\x00\x00\x4c\x47\x00\x00\x00\x00\x5f\x45\x00\x00\x00\x00\x00\x00\x51\x74\x5f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4a\x00\x00\x5f\x4c\x5f\x4d\x50\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4b\x00\x00\x5f\x48\x00\x00\x5f\x46\x5f\x47", /* 7600 */ "\x00\x00\x5f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4f\x00\x00\x5f\x4e\x00\x00\x52\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x50\x5f\x52\x5f\x53\x5f\x54\x00\x00\x5f\x55\x00\x00\x54\xa4\x5f\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x00\x00\x00\x00\x00\x00\x5f\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb7\x00\x00\x00\x00\x00\x00\x5f\x5c\x5f\x59\x5f\x5a\x00\x00\x00\x00\x00\x00\x54\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xaa\x00\x00\x00\x00\x00\x00\x53\x7e\x00\x00\x5f\x5b\x00\x00\x00\x00\x00\x00\x5f\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5e\x5f\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x62\x5f\x60\x5f\x61\x5f\x63\x00\x00\x5f\x64\x00\x00\x00\x00\x00\x00\x5f\x65\x00\x00\x5f\x66\x00\x00\x00\x00\x00\x00\x5f\x67\x00\x00\x53\x9a\x00\x00\x46\x4b\x46\xe8\x5f\x68\x46\x59\x45\x4b\x00\x00", /* 7680 */ "\x5f\x6a\x00\x00\x5f\x69\x5f\x6b\x45\xef\x00\x00\x4a\xb0\x4c\xbb\x5f\x6c\x00\x00\x00\x00\x5f\x6d\x00\x00\x00\x00\x52\x99\x00\x00\x52\xa4\x00\x00\x00\x00\x4e\x81\x00\x00\x00\x00\x53\x96\x00\x00\x00\x00\x5f\x6e\x5f\x6f\x5f\x72\x5f\x70\x00\x00\x5f\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xda\x00\x00\x5f\x74\x00\x00\x00\x00\x00\x00\x5f\x75\x00\x00\x00\x00\x68\x68\x5f\x76\x5f\x77\x5f\x78\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc7\x00\x00\x00\x00\x5f\x79\x53\xba\x00\x00\x00\x00\x50\x57\x00\x00\x51\xb5\x00\x00\x47\x74\x00\x00\x00\x00\x5f\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x7d\x00\x00\x00\x00\x00\x00\x5f\x7c\x4d\x65\x00\x00\x00\x00\x00\x00\x48\x44\x5c\xc9\x00\x00\x5f\x7e\x4b\x84\x00\x00\x5f\x7f\x00\x00\x49\xe3\x48\x90\x5f\x80\x00\x00\x53\xf7\x00\x00\x00\x00\x5f\x81\x00\x00\x00\x00\x00\x00\x46\x75\x00\x00\x00\x00\x00\x00\x50\x80\x00\x00\x46\x74\x00\x00\x00\x00\x00\x00\x46\x78\x00\x00\x00\x00\x5f\x83\x00\x00\x00\x00\x50\x82\x00\x00", /* 7700 */ "\x00\x00\x48\x47\x00\x00\x00\x00\x5f\x86\x00\x00\x00\x00\x5f\x85\x5f\x84\x52\xbc\x00\x00\x4d\xa2\x45\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8b\x00\x00\x00\x00\x51\xca\x46\x42\x4e\x6a\x00\x00\x00\x00\x00\x00\x5f\x87\x5f\x89\x5f\x8a\x00\x00\x00\x00\x5f\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8c\x5f\x8d\x00\x00\x4e\x5f\x00\x00\x49\xa5\x00\x00\x00\x00\x00\x00\x47\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8e\x5f\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x90\x5f\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6c\x00\x00\x4a\x73\x00\x00\x5f\x94\x4a\x96\x00\x00\x5f\x91\x00\x00\x00\x00\x5f\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x97\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x96\x5f\x95", /* 7780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x99\x00\x00\x00\x00\x5f\x98\x00\x00\x00\x00\x5f\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9c\x00\x00\x5f\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb0\x52\x7d\x00\x00\x00\x00\x5f\x9d\x00\x00\x00\x00\x4f\x9b\x00\x00\x00\x00\x5f\x9e\x00\x00\x00\x00\x5f\x9f\x00\x00\x5f\xa3\x5f\xa1\x5f\xa2\x00\x00\x5f\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x50\x00\x00\x00\x00\x5f\xa6\x50\xed\x5f\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc1\x5f\xa8\x00\x00\x45\xb0\x00\x00\x55\xc9\x00\x00\x4e\x4d\x00\x00\x00\x00\x00\x00\x4a\x82\x5f\xa9\x51\xbb\x00\x00\x00\x00\x00\x00\x45\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xab\x00\x00\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x49\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xad\x00\x00\x46\xd3\x4c\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb0\x5f\xae\x00\x00\x00\x00\x00\x00\x4d\x45\x54\xb4\x52\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc2\x00\x00\x4a\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x84\x4a\xef\x00\x00\x00\x00\x53\x69\x00\x00\x00\x00\x52\xbf\x00\x00\x5f\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb6\x00\x00\x5f\xb9\x00\x00\x00\x00\x00\x00", /* 7880 */ "\x00\x00\x4f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb7\x51\x95\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xba\x53\x56\x5f\xb5\x00\x00\x00\x00\x51\x7b\x00\x00\x4f\xb1\x00\x00\x52\xd2\x00\x00\x54\x5b\x00\x00\x00\x00\x5f\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbb\x00\x00\x00\x00\x00\x00\x4d\xf8\x00\x00\x50\x7d\x5f\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7a\x00\x00\x5f\xc4\x00\x00\x5f\xc3\x00\x00\x00\x00\x4a\x62\x00\x00\x00\x00\x00\x00\x5f\xc5\x5f\xc0\x00\x00\x00\x00\x00\x00\x5f\xc6\x5f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x9c\x5f\xbf\x00\x00\x00\x00\x5f\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc8\x49\xb4\x00\x00\x00\x00\x00\x00\x5f\xc7\x00\x00\x00\x00\x48\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xca\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x51\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x9c\x00\x00\x00\x00\x5f\xcd\x4d\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xb9\x00\x00\x00\x00\x00\x00\x51\x4c\x5f\xd0\x5f\xcf\x00\x00\x00\x00\x00\x00\x5f\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x53\x00\x00\x49\x58\x00\x00\x46\x63\x00\x00\x5f\xd3\x53\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x92\x4e\xd8\x4f\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8c\x00\x00\x00\x00\x55\x5c\x00\x00\x5f\xd8\x4c\xdc\x53\x65\x00\x00\x00\x00\x5f\xd7\x00\x00\x00\x00\x4c\xeb\x45\xa1\x5f\xd6\x5f\xd4\x00\x00\x4f\x89\x00\x00\x00\x00\x49\xf9\x00\x00\x00\x00\x4d\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x53\x00\x00\x00\x00\x52\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xda", /* 7980 */ "\x50\xe7\x4d\x75\x00\x00\x00\x00\x50\xae\x4f\x87\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdb\x00\x00\x00\x00\x52\x86\x4b\xa7\x45\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdf\x00\x00\x5f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xaa\x4f\xd7\x00\x00\x00\x00\x5f\xe0\x00\x00\x00\x00\x00\x00\x54\xf5\x00\x00\x50\xfa\x55\x53\x00\x00\x5f\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6a\x5f\xe2\x00\x00\x00\x00\x55\x5d\x54\x63\x53\xd0\x45\xf1\x46\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe3\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xed\x4d\xba\x00\x00\x00\x00\x5f\xe4\x00\x00\x00\x00\x4c\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x83\x00\x00\x54\xb5\x00\x00\x5f\xe7\x50\x8f\x00\x00\x4c\x8a\x5f\xe5\x00\x00\x4d\x9f\x00\x00\x00\x00\x5f\xe6\x00\x00\x00\x00\x00\x00\x4b\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x75\x00\x00\x00\x00\x00\x00\x00\x00", /* 7a00 */ "\x52\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe8\x00\x00\x00\x00\x47\xf4\x00\x00\x5f\xe9\x47\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xfa\x00\x00\x00\x00\x50\x87\x5f\xea\x5f\xeb\x4d\xcf\x00\x00\x52\x96\x00\x00\x00\x00\x5f\xec\x53\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x92\x00\x00\x00\x00\x5f\xed\x47\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xef\x00\x00\x00\x00\x00\x00\x5f\xf0\x4d\xbe\x4f\xc7\x5f\xee\x4f\xd5\x4e\x94\x00\x00\x48\xd4\x5f\xf1\x00\x00\x00\x00\x52\xbe\x00\x00\x00\x00\x5f\xf3\x00\x00\x00\x00\x00\x00\x48\x91\x52\x54\x50\xb8\x50\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf5\x5f\xf4\x4e\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf6\x00\x00\x4f\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf8\x00\x00\x00\x00\x00\x00\x4b\x86\x00\x00\x49\x86\x00\x00\x00\x00\x5f\xf9\x47\x8d\x00\x00\x00\x00\x5f\xfa\x00\x00\x4e\x91", /* 7a80 */ "\x00\x00\x4a\xfd\x00\x00\x51\x69\x54\x99\x00\x00\x00\x00\x00\x00\x5f\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb0\x4b\xe9\x00\x00\x5f\xfc\x5f\xfe\x60\x41\x5f\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x42\x4a\x65\x00\x00\x00\x00\x00\x00\x50\xaa\x49\xa7\x60\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x44\x00\x00\x00\x00\x00\x00\x55\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x47\x00\x00\x00\x00\x00\x00\x60\x46\x60\x49\x60\x48\x00\x00\x60\x4a\x52\xf0\x00\x00\x60\x4b\x45\xdd\x00\x00\x60\x4c\x00\x00\x60\x4d\x00\x00\x60\x4f\x60\x4e\x60\x51\x00\x00\x60\x50\x00\x00\x00\x00\x00\x00\x60\x52\x60\x53\x00\x00\x49\xe7\x60\x54\x00\x00\x66\xc1\x47\x6e\x60\x55\x60\x56\x54\x6b\x00\x00\x4d\x50\x60\x57\x60\x58\x00\x00\x00\x00\x51\xc8\x60\x5a\x00\x00\x60\x5b\x00\x00\x48\xef\x60\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x71\x00\x00\x60\x5d\x45\xf5\x54\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x52\x87", /* 7b00 */ "\x00\x00\x00\x00\x60\x5e\x00\x00\x54\xd5\x00\x00\x60\x62\x00\x00\x51\xcf\x00\x00\x60\x61\x60\x60\x00\x00\x00\x00\x00\x00\x60\x5f\x00\x00\x49\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe7\x60\x65\x00\x00\x4f\x41\x00\x00\x00\x00\x60\x66\x00\x00\x47\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf4\x4f\xd9\x00\x00\x60\x68\x00\x00\x00\x00\x00\x00\x46\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x63\x00\x00\x60\x67\x60\x64\x00\x00\x00\x00\x49\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6c\x4a\xc7\x00\x00\x4d\x9b\x46\xa7\x00\x00\x4b\x8f\x60\x6b\x60\x6a\x00\x00\x52\xf5\x60\x69\x4b\x45\x4b\x7c\x00\x00\x49\xd0\x00\x00\x46\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x84\x00\x00\x50\x48\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4e\x00\x00\x60\x73\x00\x00\x60\x71\x60\x72\x00\x00\x00\x00\x60\x70\x60\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7b80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9b\x4f\x51\x00\x00\x00\x00\x00\x00\x55\xa4\x00\x00\x60\x77\x00\x00\x60\x7b\x00\x00\x00\x00\x60\x7a\x00\x00\x4e\xe0\x4c\xcc\x00\x00\x48\x43\x60\x75\x60\x7c\x60\x79\x00\x00\x60\x78\x60\x74\x60\x82\x60\x76\x00\x00\x46\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x00\x00\x00\x00\x51\x8d\x00\x00\x00\x00\x00\x00\x4a\xfb\x00\x00\x00\x00\x60\x80\x00\x00\x00\x00\x00\x00\x50\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa1\x51\xe8\x00\x00\x00\x00\x49\xe8\x00\x00\x60\x81\x4f\xb6\x00\x00\x49\xa8\x00\x00\x60\x7e\x60\x7f\x00\x00\x00\x00\x60\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x83\x00\x00\x00\x00\x48\x75\x00\x00\x00\x00\x00\x00\x4a\xd8\x60\x87\x60\x85\x00\x00\x00\x00\x60\x84\x00\x00\x00\x00\x00\x00\x54\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8c\x00\x00\x00\x00\x60\x8e\x60\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7c00 */ "\x60\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8d\x00\x00\x00\x00\x00\x00\x4f\x53\x57\x8a\x60\x8a\x60\x88\x00\x00\x00\x00\x51\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x60\x92\x00\x00\x4b\xec\x00\x00\x60\x8f\x00\x00\x00\x00\x00\x00\x60\x90\x00\x00\x00\x00\x60\x91\x60\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x93\x51\xab\x00\x00\x00\x00\x00\x00\x00\x00\x60\x95\x52\x70\x4f\x4c\x60\x96\x00\x00\x00\x00\x60\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x97\x4d\xfe\x00\x00\x51\xf2\x60\x9a\x00\x00\x00\x00\x00\x00\x4f\x99\x00\x00\x60\x99\x00\x00\x60\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9c\x4c\xee\x00\x00\x00\x00\x00\x00\x52\xaa\x60\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x6f\x00\x00\x60\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf0\x00\x00", /* 7c80 */ "\x00\x00\x55\xe7\x4e\x85\x60\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x9e\x00\x00\x4f\xcc\x00\x00\x53\xc9\x00\x00\x00\x00\x60\xa1\x00\x00\x4c\xa9\x00\x00\x00\x00\x4c\x4b\x00\x00\x4d\x59\x4b\xf7\x00\x00\x00\x00\x4f\xc8\x00\x00\x00\x00\x00\x00\x4b\xfb\x00\x00\x60\xa5\x60\xa3\x00\x00\x60\xa2\x52\xab\x00\x00\x4b\xd4\x60\xa7\x00\x00\x00\x00\x60\xa4\x00\x00\x60\xa6\x60\xab\x00\x00\x00\x00\x60\xaa\x60\xa9\x60\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xac\x00\x00\x00\x00\x00\x00\x60\xae\x46\x6c\x00\x00\x51\xbc\x00\x00\x60\xb0\x00\x00\x00\x00\x60\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x54\x71\x00\x00\x00\x00\x00\x00\x51\x60\x00\x00\x00\x00\x00\x00\x60\xb1\x00\x00\x00\x00\x00\x00\x48\x84\x00\x00\x60\xb3\x00\x00\x00\x00\x00\x00\x60\xb4\x00\x00\x54\x92\x51\x8c\x51\x4b\x00\x00\x60\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xb5\x00\x00\x00\x00\x60\xb6\x00\x00\x60\xb7\x00\x00\x60\xb8\x00\x00\x46\xc7\x00\x00\x52\xc2\x48\xfa\x00\x00\x00\x00\x51\xfe\x00\x00", /* 7d00 */ "\x46\xdb\x00\x00\x60\xba\x00\x00\x47\xbd\x4b\x67\x60\xb9\x00\x00\x00\x00\x00\x00\x60\xbd\x4c\xf9\x00\x00\x49\xe2\x00\x00\x00\x00\x4f\xb5\x00\x00\x00\x00\x00\x00\x47\xa6\x60\xbc\x00\x00\x4f\x47\x4c\x78\x46\x80\x49\xf3\x4f\xf3\x60\xbb\x00\x00\x00\x00\x00\x00\x47\x9f\x48\x77\x4c\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf0\x55\x92\x00\x00\x60\xc0\x51\x48\x47\x68\x00\x00\x60\xc1\x4e\x59\x00\x00\x60\xc3\x00\x00\x00\x00\x00\x00\x4c\xe4\x4c\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc2\x00\x00\x00\x00\x49\xf4\x55\x63\x46\xb9\x60\xbe\x60\xc5\x00\x00\x60\xc4\x00\x00\x00\x00\x60\xbf\x46\x88\x00\x00\x60\xc9\x60\xcc\x46\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd0\x60\xc6\x00\x00\x50\x6d\x00\x00\x00\x00\x4c\xe7\x4e\xf7\x60\xcd\x00\x00\x00\x00\x47\x57\x00\x00\x60\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcb\x00\x00\x00\x00\x48\x81\x52\x68\x60\xc7\x00\x00\x4a\xe4\x4a\xf3\x00\x00\x00\x00\x49\xf6\x00\x00\x00\x00\x00\x00\x54\xed\x00\x00\x00\x00", /* 7d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x74\x00\x00\x00\x00\x00\x00\x60\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x4a\x47\xcb\x54\xeb\x50\x70\x00\x00\x00\x00\x60\xdc\x60\xda\x00\x00\x60\xd8\x60\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd7\x51\xa3\x48\x80\x60\xd1\x60\xd9\x60\xdd\x48\xcb\x4a\x53\x00\x00\x4d\xc9\x60\xd3\x00\x00\x60\xd4\x60\xdb\x00\x00\x54\xd3\x54\xa6\x00\x00\x60\xd6\x49\xdc\x48\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd5\x00\x00\x00\x00\x4b\x97\x53\x7d\x00\x00\x00\x00\x00\x00\x47\x93\x00\x00\x48\xa5\x4a\x9b\x00\x00\x00\x00\x60\xde\x60\xe1\x00\x00\x60\xdf\x00\x00\x46\x87\x00\x00\x60\xe8\x60\xe0\x60\xe3\x00\x00\x4a\x80\x60\xe7\x00\x00\x00\x00\x60\xe2\x00\x00\x00\x00\x00\x00\x48\x4e\x4c\xfc\x00\x00\x00\x00\x55\x6b\x00\x00\x00\x00\x4e\x9a\x00\x00\x00\x00\x60\xe6\x00\x00\x48\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe4\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x4b\xaa\x00\x00\x00\x00\x48\x59\x60\xe9\x00\x00\x00\x00\x00\x00\x60\xee\x60\xea\x60\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe6\x00\x00\x00\x00\x4f\x6b\x60\xed\x00\x00\x60\xeb\x5b\xcc\x55\xa8\x00\x00\x00\x00\x4e\x93\x00\x00\x00\x00\x00\x00\x00\x00\x49\xe4\x00\x00\x00\x00\x49\xf7\x00\x00\x00\x00\x60\xf2\x60\xf9\x00\x00\x00\x00\x60\xf4\x00\x00\x60\xf8\x00\x00\x60\xf6\x60\xef\x60\xf5\x00\x00\x60\xf3\x48\x66\x00\x00\x00\x00\x47\x59\x00\x00\x60\xf7\x00\x00\x00\x00\x60\xf0\x00\x00\x60\xf1\x00\x00\x48\x68\x53\x73\x00\x00\x52\xda\x00\x00\x00\x00\x00\x00\x00\x00\x60\xfd\x00\x00\x48\x9a\x51\xd4\x60\xfb\x00\x00\x00\x00\x60\xfe\x61\x41\x00\x00\x00\x00\x60\xfa\x60\xfc\x00\x00\x00\x00\x52\xda\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf1\x61\x42\x00\x00\x61\x45\x61\x44\x53\x73\x00\x00\x4d\x9a\x00\x00\x00\x00\x4b\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x43\x00\x00\x61\x47\x61\x46\x61\x48\x00\x00\x61\x4a", /* 7e80 */ "\x00\x00\x00\x00\x55\xeb\x61\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x52\x78\x61\x4c\x51\xbf\x00\x00\x61\x4e\x00\x00\x61\x4d\x55\xfa\x52\x73\x00\x00\x61\x4f\x61\x50\x61\x51\x00\x00\x61\x52\x00\x00\x00\x00\x00\x00\x00\x00\x61\x53\x53\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x84\x00\x00\x61\x54\x00\x00\x61\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x56\x00\x00\x61\x57\x00\x00\x00\x00\x00\x00\x00\x00\x61\x58\x54\xcb\x61\x59\x00\x00\x51\x6e\x61\x5a\x00\x00\x00\x00\x61\x5c\x61\x5b\x00\x00\x00\x00\x61\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5e\x61\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x61\x61\x60\x61\x62\x4c\x4e\x55\xef\x00\x00\x00\x00\x46\x8c\x00\x00\x4f\x82\x00\x00\x4c\x99\x00\x00\x00\x00\x55\x79\x00\x00\x55\xa5\x61\x63\x5a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f80 */ "\x00\x00\x00\x00\x61\x64\x61\x66\x00\x00\x4d\xfa\x61\x65\x61\x67\x61\x68\x00\x00\x4a\xd1\x00\x00\x61\x69\x00\x00\x45\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6d\x00\x00\x00\x00\x61\x6c\x61\x6b\x00\x00\x00\x00\x61\x6e\x00\x00\x61\x6f\x47\xb1\x00\x00\x00\x00\x00\x00\x55\x96\x45\x98\x00\x00\x00\x00\x00\x00\x00\x00\x61\x71\x61\x70\x00\x00\x00\x00\x61\x72\x00\x00\x00\x00\x00\x00\x61\x74\x00\x00\x61\x75\x61\x73\x00\x00\x00\x00\x00\x00\x47\x8f\x00\x00\x00\x00\x00\x00\x4f\xfb\x00\x00\x00\x00\x00\x00\x61\x78\x61\x79\x00\x00\x00\x00\x00\x00\x61\x7a\x00\x00\x4d\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x69\x00\x00\x54\xf9\x61\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x69\x61\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7d\x00\x00\x00\x00\x61\x7e\x00\x00\x55\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb6\x00\x00\x00\x00\x61\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x80\x00\x00\x51\xf6\x4d\xb5\x00\x00\x00\x00\x00\x00", /* 8000 */ "\x52\xa0\x49\x85\x00\x00\x47\x60\x61\x81\x46\x70\x53\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x61\x82\x51\xe6\x00\x00\x00\x00\x00\x00\x49\x8e\x00\x00\x61\x83\x00\x00\x00\x00\x49\x9a\x00\x00\x4f\xec\x54\xe4\x61\x84\x00\x00\x00\x00\x61\x85\x00\x00\x00\x00\x00\x00\x00\x00\x61\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xab\x00\x00\x00\x00\x4e\x99\x00\x00\x00\x00\x00\x00\x00\x00\x61\x89\x00\x00\x55\xb8\x00\x00\x61\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8b\x00\x00\x00\x00\x00\x00\x61\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8c\x00\x00\x00\x00\x00\x00\x4b\xb5\x00\x00\x61\x8d\x00\x00\x54\x79\x00\x00\x00\x00\x00\x00\x48\xbb\x61\x8e\x00\x00\x4b\x89\x61\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xca\x61\x93\x00\x00\x61\x92\x61\x91\x4d\xa8\x00\x00\x61\x94\x48\xd7\x00\x00\x61\x95\x00\x00\x00\x00\x00\x00\x61\x96\x53\xe4\x61\x97", /* 8080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x61\x98\x61\x99\x53\xb6\x4b\x41\x00\x00\x4a\x42\x00\x00\x55\x7f\x4e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x9a\x00\x00\x00\x00\x52\x67\x00\x00\x52\x6a\x00\x00\x61\x9b\x52\x92\x00\x00\x4c\x8c\x00\x00\x00\x00\x00\x00\x4c\xc5\x53\x82\x00\x00\x00\x00\x49\x7b\x00\x00\x00\x00\x00\x00\x4b\x79\x4c\xfb\x00\x00\x61\x9e\x61\x9c\x00\x00\x50\xeb\x00\x00\x52\xd5\x48\xac\x00\x00\x54\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf6\x61\xa3\x00\x00\x4e\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb2\x00\x00\x52\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x88\x00\x00\x00\x00\x61\xa1\x61\xa4\x61\x9f\x00\x00\x61\xa2\x50\xb6\x00\x00\x00\x00\x4d\x63\x00\x00\x00\x00\x4e\xe9\x61\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa6\x00\x00\x61\xa7\x00\x00\x00\x00\x4e\xab\x00\x00\x00\x00\x00\x00\x4b\xe3\x00\x00\x00\x00\x00\x00\x61\xb0\x47\x4f\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x48\x74\x00\x00\x00\x00\x50\x51\x55\xec\x47\xe3\x50\x79\x61\xa5\x53\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5c\x61\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xaa\x00\x00\x4a\xb4\x00\x00\x4c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x61\xad\x00\x00\x00\x00\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x61\xac\x00\x00\x00\x00\x00\x00\x00\x00\x61\xab\x00\x00\x00\x00\x52\xc4\x00\x00\x4d\x62\x61\xaf\x00\x00\x61\xae\x52\x47\x4c\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb3\x61\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x51\xce\x00\x00\x00\x00\x61\xb2\x00\x00\x4b\xa4\x61\xb1\x00\x00\x00\x00\x61\xb6\x00\x00\x00\x00\x00\x00\x4d\xb6\x4c\xa0\x52\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9a", /* 8180 */ "\x61\xba\x00\x00\x61\xbb\x61\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb8\x00\x00\x61\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd8\x00\x00\x00\x00\x00\x00\x61\xbf\x00\x00\x61\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x51\x91\x00\x00\x4d\x8a\x50\x60\x00\x00\x00\x00\x61\xbc\x00\x00\x00\x00\x61\xbe\x61\xc1\x00\x00\x00\x00\x00\x00\x4e\xf6\x61\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xc4\x00\x00\x00\x00\x50\x76\x00\x00\x61\xc0\x00\x00\x00\x00\x61\xc3\x00\x00\x61\xca\x00\x00\x00\x00\x61\xc7\x61\xc6\x53\x5f\x61\xc8\x00\x00\x61\xc9\x00\x00\x00\x00\x00\x00\x54\x74\x00\x00\x61\xc5\x61\xcb\x00\x00\x00\x00\x00\x00\x61\xcc\x00\x00\x00\x00\x00\x00\x61\xcd\x00\x00\x4d\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x61\xce\x61\xcf\x61\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd1\x61\xd2\x00\x00\x00\x00\x4a\x47\x00\x00\x53\x8a\x00\x00\x51\x73\x4c\xd0\x00\x00\x45\xc3\x00\x00\x00\x00\x4d\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x48\x4c\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd3\x61\xd4\x4a\x89\x00\x00\x61\xd5\x00\x00", /* 8200 */ "\x00\x00\x61\xd6\x61\xd7\x00\x00\x00\x00\x61\xd8\x00\x00\x53\x58\x46\x6a\x57\x78\x62\xba\x00\x00\x50\x94\x61\xd9\x4c\x58\x00\x00\x61\xda\x00\x00\x61\xdb\x00\x00\x00\x00\x00\x00\x61\xdc\x4e\x5b\x4c\xaa\x00\x00\x00\x00\x4f\xc1\x4f\xb8\x00\x00\x4a\x63\x4b\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdd\x48\x9f\x61\xde\x49\x56\x00\x00\x61\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe1\x00\x00\x54\xdb\x4b\x87\x53\xac\x61\xe0\x46\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xae\x61\xe3\x61\xe4\x00\x00\x00\x00\x61\xe5\x00\x00\x61\xe6\x00\x00\x00\x00\x61\xe8\x00\x00\x61\xe7\x00\x00\x4c\x4a\x00\x00\x61\xe9\x00\x00\x61\xea\x61\xeb\x00\x00\x00\x00\x55\xb4\x45\xc4\x00\x00\x61\xec\x47\xc3\x00\x00\x00\x00\x00\x00\x4d\x54\x61\xed\x53\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xee\x00\x00", /* 8280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9a\x00\x00\x61\xef\x00\x00\x00\x00\x00\x00\x00\x00\x61\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbd\x00\x00\x00\x00\x00\x00\x49\x72\x00\x00\x61\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7b\x4a\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x61\xf1\x61\xf4\x54\x42\x00\x00\x4f\xe5\x00\x00\x46\xd9\x00\x00\x46\x83\x00\x00\x00\x00\x00\x00\x00\x00\x49\x53\x4d\xd0\x00\x00\x61\xf3\x00\x00\x4e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4b\x61\xf9\x55\x59\x52\xd7\x00\x00\x00\x00\x4a\xb8\x00\x00\x62\x46\x00\x00\x53\x77\x62\x43\x00\x00\x62\x41\x61\xf7\x00\x00\x61\xf5\x00\x00\x61\xf6\x00\x00\x46\xd6\x4a\x5f\x54\xb0\x00\x00\x00\x00\x00\x00\x4d\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xee\x00\x00\x61\xfb\x61\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x61\xfe\x62\x44\x61\xfd\x00\x00\x00\x00\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x61\xf8\x46\x46\x61\xfc\x54\x7a\x4b\xd3\x62\x42\x00\x00\x00\x00\x62\x45\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4a\x53\xf6\x62\x52\x00\x00\x00\x00\x00\x00\x50\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x58\x00\x00\x00\x00\x00\x00\x00\x00\x47\x4c\x00\x00\x00\x00\x62\x51\x00\x00\x00\x00\x00\x00\x62\x50\x00\x00\x62\x4b\x54\x7b\x00\x00\x62\x49\x62\x47\x49\x77\x00\x00\x4d\xf7\x62\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4f\x53\xb3\x00\x00\x00\x00\x48\x42\x53\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5f\x62\x4e\x00\x00\x46\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5f\x00\x00\x62\x5a\x00\x00\x4b\xa1\x00\x00\x00\x00\x00\x00\x49\xe0\x62\x5d\x00\x00\x00\x00\x62\x5b", /* 8380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x62\x00\x00\x54\x86\x00\x00\x62\x63\x62\x5c\x00\x00\x00\x00\x00\x00\x62\x59\x00\x00\x00\x00\x00\x00\x00\x00\x62\x60\x00\x00\x00\x00\x62\x57\x00\x00\x00\x00\x00\x00\x62\x53\x00\x00\x00\x00\x00\x00\x51\xee\x62\x55\x62\x61\x00\x00\x62\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x64\x00\x00\x62\x54\x54\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc9\x00\x00\x00\x00\x00\x00\x62\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x75\x00\x00\x00\x00\x00\x00\x62\x6e\x00\x00\x00\x00\x00\x00\x47\x53\x00\x00\x62\x67\x00\x00\x00\x00\x46\xd7\x00\x00\x4c\x73\x00\x00\x62\x68\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x51\x00\x00\x00\x00\x51\x80\x00\x00\x62\x6c\x00\x00\x00\x00\x00\x00\x4b\xa8\x00\x00\x00\x00\x53\xd4\x62\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6a\x00\x00\x54\xe9\x00\x00\x00\x00\x00\x00\x4b\x6c\x51\x6d\x48\xcc\x62\x71\x00\x00\x62\x65\x00\x00\x62\x74\x62\x69\x00\x00\x00\x00\x00\x00\x62\x76\x00\x00\x62\x6a\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x62\x6b\x54\xf7\x00\x00\x00\x00\x62\x6f\x00\x00\x00\x00\x52\xc9\x62\x6d\x50\xdb\x62\x72\x54\x82\x00\x00\x00\x00\x00\x00\x00\x00\x62\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x73\x00\x00\x54\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4a\x62\x77\x00\x00\x4b\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7c\x00\x00\x00\x00\x00\x00\x62\x85\x00\x00\x00\x00\x62\x84\x00\x00\x00\x00\x00\x00\x62\x79\x47\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x82\x00\x00\x62\x7e\x45\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x59\x00\x00\x00\x00\x00\x00\x48\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x47\x62\x78\x50\x71\x00\x00\x00\x00\x4e\x72\x00\x00\x00\x00\x62\x81\x00\x00\x62\x7c\x4f\x79\x51\x6c\x62\x7f\x62\x83\x00\x00\x54\x4e\x00\x00\x00\x00\x00\x00\x50\xd9\x00\x00\x62\x7b\x00\x00\x62\x7d\x50\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x62\x80\x00\x00\x62\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x93\x00\x00\x00\x00\x00\x00\x4f\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x50\x95\x00\x00\x00\x00\x52\x59\x00\x00\x00\x00\x62\x89\x00\x00\x62\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x90\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb2\x00\x00\x62\x8a\x00\x00\x00\x00\x00\x00\x4a\xba\x62\x87\x00\x00\x62\x8c\x50\xb9\x00\x00\x00\x00\x62\x88\x00\x00\x62\x8f\x00\x00\x00\x00\x4c\x94\x00\x00\x62\x91\x00\x00\x00\x00\x50\x83\x62\x86\x4f\x6d\x00\x00\x62\x8b\x00\x00\x00\x00\x62\x8e\x4f\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x62\x92\x00\x00\x00\x00\x62\x94\x62\x8d\x00\x00\x52\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x88\x00\x00\x4b\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8b\x00\x00\x00\x00\x62\x95", /* 8500 */ "\x52\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6c\x00\x00\x55\x7b\x62\x9c\x62\x9b\x00\x00\x62\x97\x62\x98\x00\x00\x54\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9a\x00\x00\x54\xa8\x00\x00\x53\xf8\x00\x00\x00\x00\x4f\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x99\x4e\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd1\x00\x00\x00\x00\x62\xa0\x62\xa5\x00\x00\x52\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x62\xa4\x53\xa8\x62\xa6\x62\xa7\x00\x00\x00\x00\x55\x65\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9e\x00\x00\x62\xa9\x00\x00\x54\x91\x62\xa3\x62\xa1\x62\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x50\xde\x54\xf0\x51\xd3\x62\xa8\x00\x00\x62\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb7\x00\x00", /* 8580 */ "\x62\xaa\x00\x00\x00\x00\x00\x00\x4a\x92\x00\x00\x00\x00\x62\xb4\x62\xac\x00\x00\x62\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb8\x62\xad\x00\x00\x00\x00\x62\xb1\x00\x00\x00\x00\x4c\xec\x00\x00\x51\xad\x00\x00\x62\xb2\x62\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xab\x00\x00\x4f\xbf\x00\x00\x62\xaf\x4c\xf1\x54\x5a\x49\x98\x46\xe1\x00\x00\x62\xb3\x53\xf9\x62\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xbf\x62\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xbc\x00\x00\x00\x00\x00\x00\x4e\xed\x00\x00\x62\xbe\x62\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc4\x62\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x68\x62\xc3\x00\x00\x00\x00\x00\x00\x4f\xf6\x4c\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe2\x00\x00\x62\xc5\x53\xed\x50\x5f\x00\x00\x00\x00\x62\xc9\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x54\x96\x00\x00\x00\x00\x00\x00\x4e\xda\x4c\xbf\x00\x00\x00\x00\x62\xc6\x62\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc7\x00\x00\x00\x00\x5c\xbd\x5c\xbe\x00\x00\x00\x00\x62\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa6\x00\x00\x5f\x82\x62\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcf\x4a\xab\x00\x00\x52\x60\x00\x00\x00\x00\x00\x00\x52\xfb\x62\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x72\x00\x00\x52\x50\x00\x00\x55\x88\x62\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x00\x00\x00\x00\x00\x00\x4b\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xb6\x00\x00\x51\x44\x00\x00\x00\x00\x00\x00\x00\x00", /* 8680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xaa\x62\xd8\x62\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd5\x00\x00\x4f\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd6\x55\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd7\x62\xd9\x62\xe3\x00\x00\x00\x00\x00\x00\x62\xdc\x62\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xdd\x00\x00\x62\xde\x4f\xea\x00\x00\x62\xe0\x00\x00\x53\xd8\x00\x00\x4d\xf9\x62\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbb\x00\x00\x62\xe9\x00\x00\x00\x00\x62\xe5\x62\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe6\x00\x00\x00\x00\x62\xe7\x4e\x66\x53\xa5\x4f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x4e\x62\xf3\x00\x00\x62\xef\x00\x00\x00\x00\x55\x99\x00\x00", /* 8700 */ "\x62\xed\x00\x00\x4e\xcd\x62\xee\x00\x00\x00\x00\x62\xeb\x00\x00\x62\xec\x62\xf1\x62\xf4\x00\x00\x00\x00\x62\xf2\x00\x00\x00\x00\x00\x00\x62\xf0\x62\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xdc\x00\x00\x62\xfa\x00\x00\x53\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf8\x00\x00\x00\x00\x00\x00\x62\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf5\x00\x00\x00\x00\x52\x6d\x00\x00\x00\x00\x00\x00\x62\xf7\x00\x00\x00\x00\x00\x00\x62\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x52\xa1\x62\xfd\x00\x00\x62\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x63\x49\x00\x00\x53\x47\x00\x00\x63\x42\x00\x00\x63\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xfb\x63\x46\x00\x00\x00\x00\x63\x4a\x00\x00\x00\x00\x51\xc3\x00\x00\x63\x43\x00\x00\x63\x45\x00\x00\x00\x00\x00\x00\x63\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x41\x00\x00\x4e\x6e\x00\x00\x62\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4b", /* 8780 */ "\x00\x00\x00\x00\x63\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x00\x00\x63\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x00\x00\x00\x00\x63\x4f\x00\x00\x00\x00\x00\x00\x63\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd6\x63\x59\x00\x00\x63\x51\x00\x00\x00\x00\x63\x52\x00\x00\x00\x00\x00\x00\x63\x56\x00\x00\x63\x4d\x54\xf4\x00\x00\x00\x00\x00\x00\x63\x50\x00\x00\x00\x00\x00\x00\x00\x00\x63\x53\x00\x00\x63\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x00\x00\x63\x5a\x00\x00\x00\x00\x63\x5b\x00\x00\x00\x00\x00\x00\x63\x63\x63\x64\x00\x00\x50\x90\x00\x00\x51\xc6\x00\x00\x00\x00\x63\x62\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbd\x00\x00\x63\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x61\x63\x5d\x63\x5f\x00\x00\x63\x65\x00\x00\x00\x00\x00\x00\x63\x66\x63\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa1\x00\x00\x63\x68\x63\x67\x53\x51\x00\x00\x00\x00\x00\x00\x63\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x63\x6b\x00\x00\x00\x00\x63\x6c\x00\x00\x63\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x43\x00\x00\x63\x6e\x00\x00\x63\x6f\x00\x00\x4b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xa4\x63\x70\x00\x00\x00\x00\x00\x00\x00\x00\x63\x71\x48\x6c\x00\x00\x00\x00\x00\x00\x4b\xa5\x00\x00\x63\x72\x00\x00\x47\x80\x00\x00\x4d\xa5\x63\x73\x00\x00\x00\x00\x4b\xed\x63\x74\x4a\xea\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc0\x00\x00\x00\x00\x63\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x54\x00\x00\x63\x7a\x00\x00\x00\x00\x63\x78\x00\x00\x52\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x79\x63\x77\x4a\xa7", /* 8880 */ "\x00\x00\x63\x76\x63\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x6a\x00\x00\x00\x00\x4a\x54\x00\x00\x63\x82\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7e\x00\x00\x00\x00\x00\x00\x4a\x57\x63\x7d\x00\x00\x63\x80\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7c\x00\x00\x00\x00\x00\x00\x63\x81\x00\x00\x63\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8d\x00\x00\x00\x00\x63\x7f\x00\x00\x54\xc5\x63\x86\x00\x00\x00\x00\x4f\x5a\x63\x85\x00\x00\x54\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x84\x00\x00\x49\xbd\x4f\x60\x63\x87\x63\x88\x48\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x63\x89\x46\xf8\x00\x00\x00\x00\x63\x8a\x63\x8b\x00\x00\x00\x00\x49\x6a\x63\x8c\x00\x00\x4f\x8a\x00\x00\x54\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x92\x4f\xa8\x53\x49\x63\x90\x00\x00\x00\x00\x4f\x43\x63\x8d\x00\x00\x00\x00\x63\x8f\x45\x7b\x4c\x8d\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x63\x8e\x00\x00\x63\x93\x00\x00\x00\x00\x4b\x51\x00\x00\x00\x00\x63\x97\x00\x00\x63\x94\x00\x00\x00\x00\x00\x00\x54\x5e\x00\x00\x51\xba\x63\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xda\x63\x96\x63\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x63\x95\x63\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9e\x00\x00\x63\xa0\x00\x00\x00\x00\x63\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9c\x00\x00\x63\x9f\x50\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa2\x63\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa4\x54\xaf\x63\xa3\x00\x00\x00\x00\x00\x00\x63\xa7\x00\x00\x63\xa5\x00\x00\x00\x00\x00\x00\x63\xa6\x00\x00\x00\x00\x63\xa8\x00\x00\x63\xa9\x00\x00\x00\x00\x4d\xdf\x00\x00\x63\xaa\x00\x00\x00\x00\x63\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xac\x45\x58", /* 8980 */ "\x00\x00\x46\x55\x00\x00\x63\xad\x00\x00\x00\x00\x4d\xf2\x4b\xfa\x63\xae\x00\x00\x63\xaf\x45\xbb\x00\x00\x00\x00\x00\x00\x46\xfb\x00\x00\x00\x00\x00\x00\x63\xb0\x00\x00\x00\x00\x4a\x50\x53\xeb\x63\xb1\x00\x00\x4a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb4\x4e\xd0\x00\x00\x63\xb3\x48\x85\x00\x00\x63\xb5\x00\x00\x00\x00\x63\xb6\x00\x00\x00\x00\x63\xb7\x48\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb8\x00\x00\x00\x00\x63\xba\x00\x00\x63\xb9\x63\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbc\x00\x00\x53\x60\x63\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb7\x00\x00\x00\x00\x4c\xd1\x63\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbf\x00\x00\x00\x00\x00\x00\x63\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a00 */ "\x47\x9a\x00\x00\x4f\xc4\x63\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc9\x00\x00\x50\xf2\x00\x00\x63\xc4\x00\x00\x49\xd2\x00\x00\x63\xc3\x00\x00\x63\xc5\x4b\xc8\x00\x00\x00\x00\x63\xc2\x4a\xb6\x47\x94\x00\x00\x00\x00\x63\xc6\x00\x00\x63\xc7\x00\x00\x50\xef\x00\x00\x00\x00\x00\x00\x54\xcc\x00\x00\x63\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x71\x00\x00\x00\x00\x45\xe2\x00\x00\x00\x00\x00\x00\x4a\x9a\x00\x00\x4b\xad\x4c\xdf\x00\x00\x63\xc9\x63\xcb\x00\x00\x00\x00\x4d\x68\x4f\x66\x49\xba\x00\x00\x00\x00\x00\x00\x00\x00\x63\xca\x00\x00\x00\x00\x00\x00\x00\x00\x63\xce\x00\x00\x63\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x76\x55\xe3\x63\xcd\x00\x00\x4f\x88\x49\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcc\x00\x00\x00\x00\x4e\x90\x00\x00\x51\xc1\x00\x00\x63\xd3\x54\xfb\x00\x00\x00\x00\x49\x48\x00\x00\x00\x00\x4c\xb0\x00\x00\x50\xd3\x63\xd2\x63\xd1\x51\x8e\x00\x00\x4b\x5f\x47\x50\x4d\x8d\x4d\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd4\x00\x00\x00\x00\x63\xd0\x00\x00\x00\x00\x00\x00", /* 8a80 */ "\x00\x00\x00\x00\x63\xd6\x00\x00\x63\xd7\x63\xd5\x00\x00\x4e\xb4\x00\x00\x4d\x8c\x00\x00\x00\x00\x4b\x76\x4a\x7e\x00\x00\x00\x00\x00\x00\x63\xda\x00\x00\x4f\xa0\x00\x00\x4f\xa2\x00\x00\x00\x00\x4a\xcb\x00\x00\x63\xdd\x00\x00\x00\x00\x00\x00\x48\xe7\x00\x00\x46\xfd\x63\xd9\x00\x00\x63\xde\x4d\x91\x63\xdb\x63\xdc\x63\xdf\x63\xd8\x00\x00\x00\x00\x00\x00\x49\x52\x4a\x4f\x00\x00\x00\x00\x4b\x83\x00\x00\x49\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf2\x00\x00\x00\x00\x52\x65\x00\x00\x63\xe1\x46\x89\x00\x00\x00\x00\x63\xe3\x00\x00\x50\xb2\x00\x00\x00\x00\x49\x63\x00\x00\x00\x00\x00\x00\x4a\xe8\x63\xe0\x63\xe2\x00\x00\x4b\xc1\x00\x00\x00\x00\x51\x81\x00\x00\x00\x00\x00\x00\x48\xf3\x00\x00\x00\x00\x00\x00\x63\xe4\x63\xf2\x55\x70\x00\x00\x63\xf1\x63\xed\x63\xea\x63\xec\x63\xeb\x00\x00\x63\xe7\x00\x00\x52\x46\x63\xe6\x00\x00\x00\x00\x00\x00\x4e\x96\x00\x00\x4e\x9c\x4f\x9c\x00\x00\x00\x00\x63\xe8\x00\x00\x63\xe5\x00\x00\x00\x00\x63\xef\x63\xf0\x47\xe2\x00\x00\x55\xab\x00\x00\x00\x00\x00\x00\x4f\xe1\x00\x00", /* 8b00 */ "\x4f\x4d\x54\xe5\x55\x73\x00\x00\x4f\xe2\x00\x00\x00\x00\x63\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf3\x00\x00\x52\xf9\x00\x00\x63\xf7\x00\x00\x00\x00\x00\x00\x63\xe9\x00\x00\x63\xf6\x63\xf8\x00\x00\x49\x7c\x63\xf5\x4a\x6e\x00\x00\x4d\xbb\x00\x00\x00\x00\x63\xf9\x4d\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x63\xfd\x00\x00\x53\x81\x00\x00\x00\x00\x63\xfe\x55\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x87\x00\x00\x00\x00\x00\x00\x00\x00\x64\x41\x00\x00\x00\x00\x63\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x46\x00\x00\x00\x00\x64\x42\x00\x00\x64\x44\x64\x43\x00\x00\x00\x00\x00\x00\x64\x45\x00\x00\x00\x00\x64\x47\x00\x00\x4a\x75\x00\x00\x64\x49\x64\x48\x4e\x4f\x00\x00\x00\x00\x64\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x64\x4b\x64\x4d\x00\x00\x00\x00\x64\x4e\x47\x81\x61\x76\x4b\x7b\x00\x00\x64\x4a\x00\x00\x00\x00\x49\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x4f\x00\x00\x64\x50", /* 8b80 */ "\x64\x51\x00\x00\x00\x00\x51\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x88\x00\x00\x64\x52\x00\x00\x64\x53\x00\x00\x53\xfe\x00\x00\x64\x55\x64\x56\x00\x00\x00\x00\x64\x57\x00\x00\x00\x00\x64\x54\x64\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x81\x00\x00\x00\x00\x64\x59\x00\x00\x00\x00\x00\x00\x00\x00\x64\x5b\x00\x00\x64\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x99\x00\x00\x64\x5c\x00\x00\x46\x48\x00\x00\x64\x5d\x00\x00\x64\x5e\x00\x00\x64\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x60\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x94\x64\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x68\x53\x55\x64\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x63\x55\x93\x64\x64\x00\x00\x64\x65\x00\x00\x00\x00\x00\x00", /* 8c80 */ "\x00\x00\x00\x00\x64\x66\x00\x00\x00\x00\x64\x68\x00\x00\x00\x00\x00\x00\x64\x67\x64\x69\x00\x00\x50\x64\x64\x6a\x64\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x6d\x00\x00\x00\x00\x00\x00\x64\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x49\xea\x46\xb6\x00\x00\x49\xc8\x49\xaf\x4a\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa3\x4a\xeb\x4a\x5d\x64\x70\x49\xa1\x4b\xd2\x64\x6f\x64\x71\x4c\x62\x4d\xef\x00\x00\x64\x73\x64\x74\x48\x7f\x00\x00\x64\x76\x49\x74\x4a\xf4\x00\x00\x00\x00\x46\xd0\x50\x7b\x64\x72\x00\x00\x48\x72\x46\x41\x64\x75\x55\xf8\x4b\x4d\x50\x67\x00\x00\x00\x00\x46\x50\x64\x77\x00\x00\x4f\xfd\x00\x00\x00\x00\x64\x79\x64\x78\x00\x00\x00\x00\x53\x9e\x00\x00\x50\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7b\x4d\xee\x4f\x94\x00\x00\x4a\xad\x00\x00\x4f\x4f\x00\x00\x47\xe5\x64\x7a\x55\x66\x00\x00\x4f\xa7\x00\x00\x00\x00\x00\x00\x46\xec\x00\x00\x00\x00\x52\xc1\x00\x00\x00\x00\x64\x7c\x00\x00\x00\x00\x00\x00\x64\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7f\x64\x80\x4e\x8f\x64\x7e\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x53\x5a\x55\x74\x00\x00\x64\x81\x4c\x7c\x00\x00\x64\x82\x55\x84\x00\x00\x64\x84\x00\x00\x64\x83\x64\x86\x00\x00\x64\x85\x64\x87\x64\x88\x00\x00\x64\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xf9\x00\x00\x51\x51\x64\x8a\x00\x00\x00\x00\x00\x00\x53\xcc\x00\x00\x64\x8b\x00\x00\x00\x00\x4a\xaa\x64\x8c\x00\x00\x51\xc9\x50\xee\x00\x00\x64\x8d\x48\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d80 */ "\x00\x00\x64\x8f\x00\x00\x00\x00\x00\x00\x4a\x78\x00\x00\x00\x00\x00\x00\x00\x00\x46\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xed\x00\x00\x00\x00\x00\x00\x00\x00\x55\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x92\x00\x00\x00\x00\x00\x00\x64\x91\x00\x00\x00\x00\x00\x00\x64\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x98\x64\x96\x00\x00\x00\x00\x64\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x95\x00\x00\x00\x00\x00\x00\x64\x94\x64\x97\x00\x00\x4d\xc2\x00\x00\x64\x9b\x00\x00\x4c\xcd\x00\x00\x64\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x55\xcb\x00\x00\x64\x99\x64\x9a\x00\x00\x00\x00\x00\x00\x47\x84\x00\x00\x00\x00\x00\x00\x50\xb4\x00\x00\x50\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x9d\x00\x00\x00\x00\x64\x9f", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x9e\x64\xa0\x4c\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7c\x64\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa2\x64\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa7\x00\x00\x00\x00\x00\x00\x64\xa8\x64\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa5\x00\x00\x55\xa7\x00\x00\x00\x00\x64\xaa\x64\xae\x64\xab\x64\xa9\x00\x00\x64\xac\x00\x00\x00\x00\x00\x00\x64\xad\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb2\x00\x00\x00\x00\x00\x00\x64\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x68\x64\xb1\x00\x00\x00\x00\x64\xb3\x64\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb5\x00\x00\x52\xf6\x00\x00\x64\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb7\x00\x00\x00\x00\x00\x00", /* 8e80 */ "\x00\x00\x64\xb8\x00\x00\x00\x00\x64\xba\x64\xb9\x00\x00\x64\xb6\x00\x00\x00\x00\x64\xbc\x64\xbb\x00\x00\x4c\xa1\x00\x00\x00\x00\x00\x00\x64\xbe\x00\x00\x64\xbd\x64\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc2\x47\x9c\x50\x44\x00\x00\x00\x00\x53\x53\x53\x7a\x64\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc4\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc6\x64\xc5\x00\x00\x64\xc7\x00\x00\x46\x53\x64\xc8\x4d\xaa\x48\x97\x00\x00\x64\xc9\x00\x00\x00\x00\x4e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xca\x00\x00\x00\x00\x00\x00\x4c\xb1\x00\x00\x00\x00\x47\x52\x64\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa6\x00\x00\x00\x00\x64\xcd\x64\xcc\x48\xa6\x64\xcf\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x4a\x5a\x00\x00\x64\xd2\x00\x00\x00\x00\x00\x00\x4d\x6e\x64\xd0\x00\x00\x64\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xd4\x64\xd5\x4a\x68\x64\xd3\x00\x00\x00\x00\x00\x00\x64\xd7\x00\x00\x51\x5b\x64\xd6\x47\x87\x00\x00\x64\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xd9\x00\x00\x00\x00\x4e\xf4\x48\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa6\x00\x00\x00\x00\x00\x00\x64\xda\x00\x00\x00\x00\x00\x00\x00\x00\x46\x93\x64\xdc\x00\x00\x64\xdb\x00\x00\x00\x00\x64\xdf\x50\x6c\x00\x00\x00\x00\x64\xde\x00\x00\x50\xfe\x64\xdd\x64\xe1\x00\x00\x00\x00\x64\xe0\x00\x00\x00\x00\x64\xe2\x54\xee\x64\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe5\x00\x00\x00\x00\x50\xa9\x00\x00\x52\xe1\x64\xe6\x64\xe7\x64\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5e\x64\xe9\x00\x00\x4d\x74\x64\xea\x00\x00\x00\x00\x00\x00\x64\xeb\x00\x00\x00\x00\x00\x00\x64\xed\x64\xec\x00\x00\x00\x00\x00\x00\x00\x00\x64\xee\x61\x49\x64\xef\x47\xdf\x52\xe5\x48\x45\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf0\x00\x00\x00\x00\x45\xd5\x47\xf5\x48\x41\x00\x00\x00\x00\x54\x7e\x00\x00\x00\x00\x55\xdf\x00\x00\x49\xcd\x50\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa9\x00\x00\x00\x00\x46\x73\x00\x00\x00\x00\x48\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf4\x00\x00\x00\x00\x64\xf3\x53\x5d\x00\x00\x00\x00\x64\xf6\x4e\x9e\x49\xef\x00\x00\x53\xdf\x00\x00\x64\xf5\x4a\x9c\x00\x00\x00\x00\x00\x00\x64\xf7\x00\x00\x00\x00\x4e\x58\x64\xfa\x64\xf9\x54\xa9\x00\x00\x00\x00\x49\xd1\x00\x00\x00\x00", /* 9000 */ "\x4b\x49\x47\x44\x00\x00\x4c\x72\x00\x00\x64\xf8\x4b\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x65\x44\x00\x00\x65\x41\x64\xfd\x4b\xda\x50\xbb\x64\xfb\x00\x00\x51\x5e\x48\xf0\x64\xfc\x65\x43\x4f\xb3\x00\x00\x4f\xca\x45\xe3\x00\x00\x00\x00\x53\xb1\x65\x42\x48\xcd\x45\xb8\x64\xfe\x4d\xce\x47\x54\x00\x00\x00\x00\x00\x00\x65\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x77\x00\x00\x00\x00\x4a\xd3\x46\x69\x00\x00\x00\x00\x54\x85\x65\x46\x00\x00\x4a\xd6\x65\x47\x00\x00\x00\x00\x55\xac\x00\x00\x65\x4e\x00\x00\x00\x00\x54\xf8\x4c\xf7\x00\x00\x00\x00\x4c\x6d\x00\x00\x49\xec\x00\x00\x65\x4d\x4a\x8b\x46\xab\x00\x00\x50\x5d\x48\x8d\x65\x48\x65\x4a\x65\x4b\x65\x4c\x45\x50\x46\xa4\x49\xbc\x65\x4f\x00\x00\x65\x50\x52\xf3\x00\x00\x00\x00\x54\x55\x00\x00\x65\x51\x00\x00\x46\xe3\x54\x4c\x00\x00\x4e\xc2\x00\x00\x68\x82\x00\x00\x65\x53\x65\x52\x49\xcc\x00\x00\x00\x00\x00\x00\x51\x43\x54\x58\x65\x54\x00\x00\x00\x00\x65\x57\x00\x00\x00\x00\x52\x6e\x65\x55\x53\x5b\x48\x5d\x00\x00\x4c\xda\x00\x00\x52\x6b\x65\x59\x00\x00\x4c\xc4", /* 9080 */ "\x65\x5b\x53\x7b\x65\x58\x60\x45\x4d\xa9\x00\x00\x00\x00\x51\x86\x00\x00\x65\x5a\x50\xea\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5c\x00\x00\x4c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x46\x00\x00\x00\x00\x46\xc5\x00\x00\x51\xa8\x00\x00\x4e\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5e\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x65\x60\x00\x00\x00\x00\x4d\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x52\x00\x00\x00\x00\x00\x00\x45\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x63\x00\x00\x00\x00\x65\x64\x00\x00\x00\x00\x49\x9e\x65\x61\x00\x00\x65\x62\x00\x00\x00\x00\x00\x00\x45\x95\x00\x00\x00\x00\x00\x00\x00\x00\x51\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb7\x00\x00\x49\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x4f\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x65\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x68\x00\x00\x00\x00\x65\x67\x00\x00\x00\x00\x00\x00\x65\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x54\x00\x00\x00\x00\x65\x6c\x00\x00\x65\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x73\x65\x6d\x55\x48\x52\xbb\x47\xf3\x55\x91\x00\x00\x00\x00\x00\x00\x47\x58\x00\x00\x4e\x7c\x00\x00\x65\x6e\x00\x00\x65\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xae\x65\x70\x00\x00\x65\x71\x00\x00\x00\x00\x00\x00\x65\x72\x50\xbd\x00\x00\x51\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x74\x65\x73\x00\x00\x4d\x86\x00\x00\x51\xeb\x48\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9180 */ "\x00\x00\x00\x00\x65\x77\x00\x00\x00\x00\x00\x00\x00\x00\x51\xa9\x00\x00\x65\x76\x00\x00\x65\x75\x00\x00\x51\x6f\x00\x00\x00\x00\x51\x70\x00\x00\x53\x78\x00\x00\x00\x00\x00\x00\x00\x00\x51\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x78\x00\x00\x50\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7b\x65\x79\x50\x7f\x00\x00\x00\x00\x65\x7a\x00\x00\x51\xfa\x00\x00\x00\x00\x65\x7d\x65\x7c\x00\x00\x00\x00\x50\xc2\x00\x00\x65\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7f\x65\x80\x00\x00\x00\x00\x00\x00\x00\x00\x53\x46\x53\xbf\x4d\x79\x52\x52\x00\x00\x65\x81\x47\x6c\x45\xa3\x45\x69\x47\xb5\x65\x82\x45\x86\x00\x00\x00\x00\x00\x00\x00\x00\x65\x87\x65\x85\x4f\xf4\x00\x00\x65\x83\x65\x84\x4a\xcc\x49\x88\x65\x86\x65\x88\x00\x00\x65\x89\x00\x00\x4c\xe3\x65\x8d\x65\x8f\x53\x4a\x4b\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8a\x65\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8b\x65\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd0\x00\x00\x00\x00\x65\x92", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x90\x00\x00\x00\x00\x00\x00\x65\x95\x00\x00\x00\x00\x4e\x63\x53\x8f\x00\x00\x65\x93\x52\x69\x00\x00\x00\x00\x65\x94\x65\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x98\x00\x00\x00\x00\x65\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xae\x00\x00\x00\x00\x55\xbf\x00\x00\x65\xa6\x65\x9b\x00\x00\x65\x9f\x00\x00\x00\x00\x65\xa4\x65\x9e\x00\x00\x00\x00\x00\x00\x45\xd7\x65\x9a\x00\x00\x00\x00\x65\xa0\x65\x9c\x00\x00\x65\xa7\x00\x00\x00\x00\x65\xa1\x00\x00\x65\xa2\x65\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x99\x00\x00\x65\xa3\x65\xa9\x49\xd4\x00\x00\x00\x00\x53\x93\x00\x00\x00\x00\x00\x00\x4e\xa8\x00\x00\x65\x9d\x00\x00\x4f\xb4\x65\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xac\x65\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x83\x00\x00", /* 9280 */ "\x47\x8c\x00\x00\x00\x00\x4c\xe2\x00\x00\x48\xc0\x00\x00\x00\x00\x52\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xad\x00\x00\x65\xaf\x00\x00\x65\xb1\x65\xae\x00\x00\x4d\xdc\x00\x00\x4e\x80\x65\xb0\x65\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbb\x00\x00\x65\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb3\x65\xb7\x00\x00\x54\x49\x65\xbd\x00\x00\x65\xb9\x00\x00\x65\xb5\x00\x00\x65\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbc\x00\x00\x00\x00\x00\x00\x52\xc0\x00\x00\x00\x00\x65\xb4\x00\x00\x65\xb2\x53\x63\x00\x00\x00\x00\x4d\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbe\x48\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe7\x53\x94\x65\xc2\x65\xc5\x46\xa1\x00\x00\x00\x00\x65\xc9", /* 9300 */ "\x00\x00\x00\x00\x65\xce\x00\x00\x00\x00\x00\x00\x55\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc0\x53\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xef\x65\xc7\x65\xcb\x00\x00\x00\x00\x65\xcc\x65\xc8\x00\x00\x4e\x57\x65\xc3\x65\xca\x65\xcd\x00\x00\x65\xc1\x4b\x8e\x00\x00\x53\xf0\x00\x00\x00\x00\x52\x57\x4f\xe6\x00\x00\x52\x83\x50\xb1\x00\x00\x00\x00\x48\x86\x00\x00\x00\x00\x65\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbe\x65\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc4\x00\x00\x00\x00\x00\x00\x51\xf7\x00\x00\x00\x00\x4b\x48\x00\x00\x55\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xaa\x00\x00\x65\xd4\x65\xd5\x00\x00\x00\x00\x00\x00\x48\xc7\x52\xad\x00\x00\x00\x00\x00\x00\x65\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x70\x00\x00\x65\xd3\x00\x00\x65\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd2\x00\x00\x53\xbd\x00\x00", /* 9380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xda\x00\x00\x4d\x70\x51\x97\x00\x00\x00\x00\x54\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd8\x00\x00\x00\x00\x54\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6e\x65\xd9\x4c\x89\x00\x00\x65\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe2\x00\x00\x00\x00\x65\xdd\x00\x00\x65\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe5\x50\x41\x00\x00\x00\x00\x00\x00\x00\x00\x65\xdc\x65\xde\x65\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe3\x65\xe4\x00\x00\x00\x00\x4a\x8d\x00\x00\x00\x00\x65\xe6\x65\xe0\x00\x00\x00\x00\x65\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x65\xec\x00\x00\x00\x00\x00\x00\x65\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xcd\x00\x00\x00\x00\x65\xea\x65\xe9\x00\x00\x00\x00\x00\x00\x4c\xc8\x52\xcf\x65\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf0\x00\x00\x00\x00\x00\x00\x51\x56\x65\xee\x00\x00\x53\x88\x00\x00\x65\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf2\x00\x00\x00\x00\x65\xf5\x65\xf4\x00\x00\x00\x00\x65\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4e\x65\xf3\x52\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf8\x65\xf7\x00\x00\x00\x00\x65\xfb\x00\x00\x65\xf9\x00\x00\x65\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfd\x00\x00\x66\x41\x00\x00\x00\x00\x00\x00\x00\x00\x66\x44\x66\x43\x66\x45\x66\x42", /* 9480 */ "\x00\x00\x66\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9580 */ "\x46\xaa\x00\x00\x66\x47\x51\x9c\x00\x00\x00\x00\x00\x00\x66\x48\x00\x00\x4b\x7d\x66\x49\x46\xcd\x00\x00\x00\x00\x00\x00\x54\x5f\x00\x00\x4d\xd9\x66\x4a\x45\xc1\x66\x4b\x00\x00\x66\x4c\x00\x00\x66\x4d\x66\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4f\x00\x00\x45\xc5\x4a\xe9\x54\x9b\x51\x72\x00\x00\x66\x51\x66\x50\x00\x00\x00\x00\x00\x00\x00\x00\x66\x52\x00\x00\x00\x00\x00\x00\x00\x00\x51\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x55\x00\x00\x66\x54\x66\x53\x00\x00\x66\x56\x00\x00\x00\x00\x00\x00\x00\x00\x66\x59\x00\x00\x00\x00\x00\x00\x53\x64\x00\x00\x00\x00\x66\x57\x00\x00\x66\x5b\x66\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x5d\x66\x5c\x66\x5e\x00\x00\x4b\xcc\x00\x00\x00\x00\x00\x00\x66\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x66\x60\x66\x62\x00\x00\x00\x00\x66\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x86\x00\x00\x00\x00\x00\x00\x00\x00\x66\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x64\x00\x00\x45\x91\x00\x00\x00\x00\x00\x00\x66\x65\x66\x66\x00\x00\x00\x00\x47\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xef\x00\x00\x00\x00\x00\x00\x46\xae\x4f\xe8\x00\x00\x66\x67\x00\x00\x4b\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x6a\x66\x69\x49\xe5\x00\x00\x66\x68\x48\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x57\x66\x6b\x66\x6c\x52\x72\x66\x6d\x00\x00\x00\x00\x49\xd8\x4c\x84\x49\x6d\x4f\xfe\x66\x6e\x00\x00\x00\x00\x00\x00\x55\xc3\x00\x00\x66\x71\x00\x00\x00\x00\x00\x00\x4c\xd2\x00\x00\x66\x70\x4e\x61\x00\x00\x50\xc7\x4a\xb7\x66\x6f\x49\x61\x00\x00\x4a\x6c\x00\x00\x00\x00\x47\xbf\x00\x00\x00\x00", /* 9680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb9\x46\x5d\x00\x00\x4c\xe5\x00\x00\x4a\x93\x66\x73\x00\x00\x66\x72\x49\xa9\x4e\x76\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5a\x66\x76\x00\x00\x66\x77\x66\x75\x53\xc3\x00\x00\x47\x97\x4b\xf9\x66\x79\x00\x00\x00\x00\x4e\xae\x00\x00\x00\x00\x4c\xe0\x00\x00\x00\x00\x00\x00\x66\x7a\x65\x56\x00\x00\x66\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x66\x7f\x66\x7e\x66\x7c\x66\x7d\x00\x00\x66\x80\x00\x00\x66\x81\x55\x45\x66\x82\x66\x83\x00\x00\x4f\xda\x4e\xd5\x00\x00\x00\x00\x00\x00\x4f\x64\x51\xa4\x00\x00\x00\x00\x45\x70\x47\x45\x47\xa0\x4c\x4d\x00\x00\x54\x77\x00\x00\x66\x85\x52\xb7\x52\x5b\x66\x84\x00\x00\x00\x00\x4a\x8a\x00\x00\x00\x00\x00\x00\x66\x86\x63\x54\x00\x00\x00\x00\x66\x88\x00\x00\x51\xfb\x66\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x97\x49\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x49\xdd\x00\x00\x49\xbb\x52\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x90\x00\x00\x4a\xbc\x00\x00\x00\x00\x00\x00\x50\x69\x4b\xd6\x00\x00\x66\x89\x00\x00\x45\x82\x00\x00\x00\x00\x00\x00\x00\x00", /* 9700 */ "\x47\xfb\x00\x00\x00\x00\x00\x00\x66\x8a\x00\x00\x66\x8b\x4d\xde\x66\x8c\x00\x00\x4f\x4b\x00\x00\x00\x00\x66\x8e\x66\x90\x66\x92\x00\x00\x66\x91\x00\x00\x66\x8f\x00\x00\x00\x00\x66\x93\x00\x00\x00\x00\x66\x8d\x00\x00\x00\x00\x4d\xe8\x00\x00\x4e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x94\x00\x00\x00\x00\x4e\x48\x00\x00\x00\x00\x66\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x96\x00\x00\x4b\xc6\x66\x97\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcf\x66\x98\x00\x00\x66\x99\x00\x00\x66\x9a\x66\x9b\x00\x00\x00\x00\x00\x00\x66\xa0\x66\x9e\x66\x9d\x00\x00\x66\x9c\x00\x00\x66\x9f\x66\xa1\x00\x00\x00\x00\x00\x00\x66\xa2\x00\x00\x66\xa3\x00\x00\x66\xa4\x46\x4c\x00\x00\x00\x00\x66\xa5\x48\xc3\x00\x00\x00\x00\x46\x44\x00\x00\x00\x00\x66\xa6\x00\x00\x48\xe1\x00\x00\x66\xa7\x68\x52\x46\x91\x00\x00\x66\xa8\x00\x00\x66\xa9\x00\x00\x66\xaa\x4a\xa3\x00\x00\x53\xb5\x00\x00\x66\xab\x00\x00\x00\x00\x00\x00\x52\xce\x00\x00\x00\x00\x4d\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x66\xac\x66\xb0\x00\x00\x66\xae\x00\x00\x00\x00\x00\x00", /* 9780 */ "\x00\x00\x66\xaf\x00\x00\x00\x00\x54\x45\x66\xad\x52\x77\x00\x00\x00\x00\x00\x00\x00\x00\x66\xb1\x00\x00\x50\x4c\x00\x00\x66\xb2\x66\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe7\x00\x00\x00\x00\x00\x00\x66\xb4\x00\x00\x00\x00\x00\x00\x51\xed\x00\x00\x00\x00\x66\xb7\x00\x00\x00\x00\x66\xb6\x00\x00\x66\xb5\x00\x00\x00\x00\x63\xfc\x00\x00\x54\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xb8\x66\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xba\x00\x00\x00\x00\x66\xbb\x00\x00\x66\xbc\x00\x00\x00\x00\x66\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xbf\x4f\xdf\x00\x00\x00\x00\x00\x00\x66\xc0\x48\x4d\x00\x00\x66\xc2\x52\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x55\x77\x00\x00\x00\x00\x00\x00\x4a\x5c", /* 9800 */ "\x00\x00\x4c\xd9\x4d\x5b\x49\x46\x00\x00\x4a\x97\x47\xb2\x00\x00\x46\xb0\x00\x00\x00\x00\x00\x00\x54\x56\x00\x00\x00\x00\x66\xc3\x4d\x4a\x53\x9d\x55\x57\x51\x7a\x00\x00\x00\x00\x00\x00\x55\xe4\x4a\xcd\x00\x00\x66\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc6\x00\x00\x00\x00\x66\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb3\x47\xeb\x00\x00\x00\x00\x4e\xb3\x00\x00\x00\x00\x00\x00\x55\x76\x00\x00\x00\x00\x66\xc7\x50\xfb\x66\xc8\x00\x00\x53\xab\x4a\x7a\x66\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x66\xca\x47\xfe\x47\xf1\x54\x8e\x66\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x48\xb8\x4a\xe5\x00\x00\x66\xcb\x4c\x57\x00\x00\x55\xc1\x55\xc1\x00\x00\x00\x00\x46\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xcc\x00\x00\x4e\xee\x00\x00\x00\x00\x00\x00\x66\xcd\x00\x00\x00\x00\x00\x00\x66\xce\x66\xcf\x66\xd0\x00\x00\x66\xd2\x66\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xe7\x00\x00\x66\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd4\x00\x00\x66\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd8\x66\xd7\x00\x00\x66\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8a\x66\xda\x00\x00\x00\x00\x46\xb8\x00\x00\x00\x00\x53\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdc\x00\x00\x66\xde\x00\x00\x66\xdb\x5c\xca\x46\xb5\x00\x00\x00\x00\x4b\xa3\x00\x00\x52\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x8f\x4d\x49\x49\x57\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x66\xe0\x00\x00\x50\xbf\x00\x00\x00\x00\x00\x00\x54\xbc\x49\x79\x00\x00\x50\xa7\x00\x00\x00\x00\x00\x00\x55\xb3\x00\x00\x66\xe2\x55\x4b\x66\xe3\x00\x00\x00\x00\x00\x00\x66\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe1\x66\xe8\x00\x00\x66\xea\x66\xe7\x00\x00\x00\x00\x66\xe9\x00\x00\x00\x00\x66\xe5\x48\x62\x00\x00\x00\x00\x00\x00\x66\xeb\x00\x00\x66\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xed\x66\xee\x00\x00\x00\x00\x00\x00\x66\xef\x00\x00\x00\x00\x66\xf1\x00\x00\x00\x00\x00\x00\x66\xf0\x00\x00\x66\xf3\x66\xf5\x00\x00\x00\x00\x00\x00\x66\xf2\x66\xf4\x52\xe8\x00\x00\x00\x00\x66\xf6\x00\x00\x51\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xbe\x66\xf7\x66\xf8\x46\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfa\x00\x00\x00\x00\x4b\x85\x00\x00\x00\x00\x00\x00\x46\x64\x66\xfb\x66\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x52\xdf\x50\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe5\x00\x00\x00\x00\x4d\xe5\x49\xac\x4c\xfe\x00\x00\x4f\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf5\x67\x44\x49\xfc\x00\x00\x00\x00\x53\xbe\x00\x00\x00\x00\x67\x43\x00\x00\x00\x00\x67\x41\x00\x00\x67\x42\x00\x00\x66\xfe\x00\x00\x00\x00\x67\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x45\x67\x46\x00\x00\x00\x00\x67\x48\x67\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4b\x00\x00\x00\x00\x67\x4a\x00\x00\x00\x00\x00\x00\x4c\xc0", /* 9a00 */ "\x00\x00\x67\x4c\x00\x00\x00\x00\x00\x00\x67\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x58\x67\x4d\x00\x00\x00\x00\x4d\xd2\x48\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xda\x00\x00\x00\x00\x67\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x56\x00\x00\x67\x52\x00\x00\x67\x54\x67\x55\x00\x00\x67\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x58\x67\x59\x00\x00\x00\x00\x00\x00\x53\xda\x00\x00\x00\x00\x67\x57\x00\x00\x67\x5b\x00\x00\x00\x00\x4c\xd5\x67\x5a\x00\x00\x00\x00\x00\x00\x67\x5c\x00\x00\x00\x00\x67\x5d\x00\x00\x67\x60\x67\x5f\x00\x00\x00\x00\x00\x00\x67\x5e\x67\x61\x67\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x67\x63\x00\x00\x00\x00\x67\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9c\x00\x00\x00\x00\x00\x00\x67\x65\x00\x00\x00\x00\x00\x00\x67\x66\x00\x00\x00\x00\x00\x00\x52\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x67\x00\x00\x67\x6a\x00\x00\x67\x68\x67\x69\x00\x00\x00\x00\x00\x00\x45\x71\x67\x6b\x00\x00\x00\x00\x67\x6c\x00\x00\x67\x6d\x67\x6e\x00\x00\x00\x00\x67\x6f\x67\x70\x00\x00\x00\x00\x67\x71\x00\x00\x00\x00\x00\x00\x4c\xf6\x67\x73\x00\x00\x50\x9d\x67\x74\x67\x72\x00\x00\x67\x76\x00\x00\x00\x00\x67\x75\x00\x00\x00\x00\x67\x77\x00\x00\x00\x00\x00\x00\x67\x78\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7a\x00\x00\x67\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7c\x00\x00\x00\x00\x67\x7d\x67\x7e\x00\x00\x67\x7f\x00\x00\x67\x80\x67\x81\x67\x82\x67\x83\x00\x00\x00\x00\x00\x00\x67\x84\x67\x85\x00\x00\x67\x86\x67\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x88\x4a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x52\xcb\x50\xa8\x67\x8a\x67\x89\x4d\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x8b\x67\x8c\x53\x89\x00\x00\x67\x8d\x00\x00\x00\x00\x4d\xe2\x00\x00\x00\x00\x00\x00\x67\x8e\x00\x00\x48\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf4\x00\x00\x00\x00\x67\x91\x00\x00\x67\x90\x67\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b80 */ "\x00\x00\x00\x00\x00\x00\x67\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8e\x67\x93\x00\x00\x67\x95\x52\x8d\x67\x92\x00\x00\x00\x00\x67\x96\x67\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x98\x67\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9a\x00\x00\x55\xce\x4e\xb7\x00\x00\x53\x91\x4c\xe9\x00\x00\x00\x00\x67\x9b\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa0\x00\x00\x67\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa1\x00\x00\x00\x00\x4f\xc6\x67\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa2\x00\x00\x67\xa3\x67\xa4\x00\x00\x67\xa8\x00\x00\x4f\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x50\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa9\x67\xa6\x67\xa5\x67\xa7\x00\x00\x00\x00\x00\x00\x4d\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x51\x67\xab\x67\xac\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c00 */ "\x67\xb1\x00\x00\x00\x00\x00\x00\x67\xad\x00\x00\x67\xb5\x00\x00\x67\xb6\x67\xb2\x67\xb8\x00\x00\x67\xb4\x55\x71\x00\x00\x00\x00\x52\x93\x00\x00\x67\xb7\x67\xb3\x67\xb0\x67\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbc\x00\x00\x00\x00\x67\xbb\x67\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6e\x67\xb9\x55\xc8\x67\xbd\x00\x00\x67\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd5\x51\xf0\x54\xab\x00\x00\x00\x00\x67\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc0\x67\xbe\x55\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4c\x00\x00\x00\x00\x67\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc5\x00\x00\x67\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x79\x00\x00\x67\xc8\x00\x00\x4d\x95\x00\x00\x67\xc7\x67\xc9\x00\x00\x00\x00\x00\x00\x67\xca\x00\x00\x00\x00\x4e\xa6\x4b\x70\x00\x00\x54\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d00 */ "\x00\x00\x00\x00\x00\x00\x67\xcc\x00\x00\x00\x00\x67\xcd\x51\xa1\x54\xfc\x67\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x54\x64\x00\x00\x00\x00\x00\x00\x67\xd4\x00\x00\x00\x00\x67\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc3\x00\x00\x00\x00\x00\x00\x67\xd2\x00\x00\x00\x00\x00\x00\x67\xd1\x00\x00\x00\x00\x67\xcf\x00\x00\x4c\x54\x00\x00\x67\xce\x50\xba\x67\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd6\x00\x00\x00\x00\x67\xd8\x67\xd6\x00\x00\x67\xd5\x00\x00\x00\x00\x67\xd7\x00\x00\x67\xd9\x00\x00\x67\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xdf\x67\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xdd\x00\x00\x00\x00\x4b\xe7\x67\xdb\x67\xdc\x00\x00\x50\xfd\x55\x7e\x00\x00\x00\x00\x67\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe4\x51\x8a\x00\x00\x00\x00\x67\xe5\x67\xe2\x00\x00\x67\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe3\x00\x00\x53\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe9\x00\x00\x67\xea\x00\x00\x00\x00\x00\x00\x50\xe5\x00\x00\x00\x00\x67\xeb\x00\x00\x47\x7a\x00\x00\x00\x00\x00\x00\x67\xef\x00\x00\x67\xf0\x67\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xed\x67\xf3\x00\x00\x67\xec\x00\x00\x67\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf2\x00\x00\x00\x00\x00\x00\x67\xf6\x00\x00\x00\x00\x00\x00\x54\x64\x00\x00\x67\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf9\x00\x00\x67\xfa\x00\x00\x00\x00\x4b\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf7\x4b\x7a\x50\xaf\x00\x00\x00\x00\x67\xfb\x00\x00\x00\x00", /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xfe\x67\xfc\x67\xfd\x00\x00\x00\x00\x68\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x42\x00\x00\x00\x00\x4c\x7d\x68\x43\x00\x00\x00\x00\x4c\x7d\x68\x44\x00\x00\x46\x97", /* 9e80 */ "\x00\x00\x68\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x46\x00\x00\x00\x00\x68\x47\x68\x48\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4a\x51\xf9\x51\x9e\x00\x00\x68\x49\x00\x00\x4c\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4b\x00\x00\x51\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4c\x4a\xe0\x00\x00\x00\x00\x53\xb4\x68\x4e\x00\x00\x00\x00\x68\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x61\x55\x5f\x00\x00\x00\x00\x68\x4d\x52\x61\x55\x5f\x48\xa7\x68\x50\x00\x00\x68\x51\x4e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x53\x55\xae\x51\xa7\x68\x54\x68\x55\x68\x56\x46\x79\x00\x00\x68\x57\x00\x00\x00\x00\x00\x00\x5e\x90\x4d\xbc\x00\x00\x51\xdd\x68\x58\x68\x5a\x68\x59\x00\x00\x68\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5c\x00\x00\x00\x00\x68\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5f\x00\x00\x68\x60\x68\x61\x00\x00\x68\x62\x00\x00\x68\x63\x68\x64\x68\x65\x00\x00\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x66\x68\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xaf\x00\x00\x68\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xcb\x68\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xfd\x00\x00\x00\x00\x68\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x6d\x51\xf5\x00\x00\x00\x00\x68\x6e\x68\x6f\x00\x00\x00\x00\x68\x70\x00\x00\x68\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x73\x68\x74\x68\x75\x4c\x80\x68\x72\x00\x00\x00\x00\x68\x76\x68\x77\x00\x00\x00\x00\x68\x79\x00\x00\x68\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7b\x00\x00\x00\x00\x00\x00\x68\x7c\x68\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7e\x5f\xf7\x00\x00\x00\x00\x68\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x69\x41\x69\x42\x69\x43\x69\x44\x69\x45\x69\x46\x69\x47\x69\x48\x69\x49\x69\x4a\x69\x4b\x69\x4c\x69\x4d\x69\x4e\x69\x4f\x69\x50\x69\x51\x69\x52\x69\x53\x69\x54\x69\x55\x69\x56\x69\x57\x69\x58\x69\x59\x69\x5a\x69\x5b\x69\x5c\x69\x5d\x69\x5e\x69\x5f\x69\x60\x69\x61\x69\x62\x69\x63\x69\x64\x69\x65\x69\x66\x69\x67\x69\x68\x69\x69\x69\x6a\x69\x6b\x69\x6c\x69\x6d\x69\x6e\x69\x6f\x69\x70\x69\x71\x69\x72\x69\x73\x69\x74\x69\x75\x69\x76\x69\x77\x69\x78\x69\x79\x69\x7a\x69\x7b\x69\x7c\x69\x7d\x69\x7e\x69\x7f\x69\x80\x69\x81\x69\x82\x69\x83\x69\x84\x69\x85\x69\x86\x69\x87\x69\x88\x69\x89\x69\x8a\x69\x8b\x69\x8c\x69\x8d\x69\x8e\x69\x8f\x69\x90\x69\x91\x69\x92\x69\x93\x69\x94\x69\x95\x69\x96\x69\x97\x69\x98\x69\x99\x69\x9a\x69\x9b\x69\x9c\x69\x9d\x69\x9e\x69\x9f\x69\xa0\x69\xa1\x69\xa2\x69\xa3\x69\xa4\x69\xa5\x69\xa6\x69\xa7\x69\xa8\x69\xa9\x69\xaa\x69\xab\x69\xac\x69\xad\x69\xae\x69\xaf\x69\xb0\x69\xb1\x69\xb2\x69\xb3\x69\xb4\x69\xb5\x69\xb6\x69\xb7\x69\xb8\x69\xb9\x69\xba\x69\xbb\x69\xbc\x69\xbd\x69\xbe\x69\xbf\x69\xc0", /* e080 */ "\x69\xc1\x69\xc2\x69\xc3\x69\xc4\x69\xc5\x69\xc6\x69\xc7\x69\xc8\x69\xc9\x69\xca\x69\xcb\x69\xcc\x69\xcd\x69\xce\x69\xcf\x69\xd0\x69\xd1\x69\xd2\x69\xd3\x69\xd4\x69\xd5\x69\xd6\x69\xd7\x69\xd8\x69\xd9\x69\xda\x69\xdb\x69\xdc\x69\xdd\x69\xde\x69\xdf\x69\xe0\x69\xe1\x69\xe2\x69\xe3\x69\xe4\x69\xe5\x69\xe6\x69\xe7\x69\xe8\x69\xe9\x69\xea\x69\xeb\x69\xec\x69\xed\x69\xee\x69\xef\x69\xf0\x69\xf1\x69\xf2\x69\xf3\x69\xf4\x69\xf5\x69\xf6\x69\xf7\x69\xf8\x69\xf9\x69\xfa\x69\xfb\x69\xfc\x69\xfd\x69\xfe\x6a\x41\x6a\x42\x6a\x43\x6a\x44\x6a\x45\x6a\x46\x6a\x47\x6a\x48\x6a\x49\x6a\x4a\x6a\x4b\x6a\x4c\x6a\x4d\x6a\x4e\x6a\x4f\x6a\x50\x6a\x51\x6a\x52\x6a\x53\x6a\x54\x6a\x55\x6a\x56\x6a\x57\x6a\x58\x6a\x59\x6a\x5a\x6a\x5b\x6a\x5c\x6a\x5d\x6a\x5e\x6a\x5f\x6a\x60\x6a\x61\x6a\x62\x6a\x63\x6a\x64\x6a\x65\x6a\x66\x6a\x67\x6a\x68\x6a\x69\x6a\x6a\x6a\x6b\x6a\x6c\x6a\x6d\x6a\x6e\x6a\x6f\x6a\x70\x6a\x71\x6a\x72\x6a\x73\x6a\x74\x6a\x75\x6a\x76\x6a\x77\x6a\x78\x6a\x79\x6a\x7a\x6a\x7b\x6a\x7c\x6a\x7d\x6a\x7e\x6a\x7f\x6a\x80\x6a\x81\x6a\x82", /* e100 */ "\x6a\x83\x6a\x84\x6a\x85\x6a\x86\x6a\x87\x6a\x88\x6a\x89\x6a\x8a\x6a\x8b\x6a\x8c\x6a\x8d\x6a\x8e\x6a\x8f\x6a\x90\x6a\x91\x6a\x92\x6a\x93\x6a\x94\x6a\x95\x6a\x96\x6a\x97\x6a\x98\x6a\x99\x6a\x9a\x6a\x9b\x6a\x9c\x6a\x9d\x6a\x9e\x6a\x9f\x6a\xa0\x6a\xa1\x6a\xa2\x6a\xa3\x6a\xa4\x6a\xa5\x6a\xa6\x6a\xa7\x6a\xa8\x6a\xa9\x6a\xaa\x6a\xab\x6a\xac\x6a\xad\x6a\xae\x6a\xaf\x6a\xb0\x6a\xb1\x6a\xb2\x6a\xb3\x6a\xb4\x6a\xb5\x6a\xb6\x6a\xb7\x6a\xb8\x6a\xb9\x6a\xba\x6a\xbb\x6a\xbc\x6a\xbd\x6a\xbe\x6a\xbf\x6a\xc0\x6a\xc1\x6a\xc2\x6a\xc3\x6a\xc4\x6a\xc5\x6a\xc6\x6a\xc7\x6a\xc8\x6a\xc9\x6a\xca\x6a\xcb\x6a\xcc\x6a\xcd\x6a\xce\x6a\xcf\x6a\xd0\x6a\xd1\x6a\xd2\x6a\xd3\x6a\xd4\x6a\xd5\x6a\xd6\x6a\xd7\x6a\xd8\x6a\xd9\x6a\xda\x6a\xdb\x6a\xdc\x6a\xdd\x6a\xde\x6a\xdf\x6a\xe0\x6a\xe1\x6a\xe2\x6a\xe3\x6a\xe4\x6a\xe5\x6a\xe6\x6a\xe7\x6a\xe8\x6a\xe9\x6a\xea\x6a\xeb\x6a\xec\x6a\xed\x6a\xee\x6a\xef\x6a\xf0\x6a\xf1\x6a\xf2\x6a\xf3\x6a\xf4\x6a\xf5\x6a\xf6\x6a\xf7\x6a\xf8\x6a\xf9\x6a\xfa\x6a\xfb\x6a\xfc\x6a\xfd\x6a\xfe\x6b\x41\x6b\x42\x6b\x43\x6b\x44", /* e180 */ "\x6b\x45\x6b\x46\x6b\x47\x6b\x48\x6b\x49\x6b\x4a\x6b\x4b\x6b\x4c\x6b\x4d\x6b\x4e\x6b\x4f\x6b\x50\x6b\x51\x6b\x52\x6b\x53\x6b\x54\x6b\x55\x6b\x56\x6b\x57\x6b\x58\x6b\x59\x6b\x5a\x6b\x5b\x6b\x5c\x6b\x5d\x6b\x5e\x6b\x5f\x6b\x60\x6b\x61\x6b\x62\x6b\x63\x6b\x64\x6b\x65\x6b\x66\x6b\x67\x6b\x68\x6b\x69\x6b\x6a\x6b\x6b\x6b\x6c\x6b\x6d\x6b\x6e\x6b\x6f\x6b\x70\x6b\x71\x6b\x72\x6b\x73\x6b\x74\x6b\x75\x6b\x76\x6b\x77\x6b\x78\x6b\x79\x6b\x7a\x6b\x7b\x6b\x7c\x6b\x7d\x6b\x7e\x6b\x7f\x6b\x80\x6b\x81\x6b\x82\x6b\x83\x6b\x84\x6b\x85\x6b\x86\x6b\x87\x6b\x88\x6b\x89\x6b\x8a\x6b\x8b\x6b\x8c\x6b\x8d\x6b\x8e\x6b\x8f\x6b\x90\x6b\x91\x6b\x92\x6b\x93\x6b\x94\x6b\x95\x6b\x96\x6b\x97\x6b\x98\x6b\x99\x6b\x9a\x6b\x9b\x6b\x9c\x6b\x9d\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xa1\x6b\xa2\x6b\xa3\x6b\xa4\x6b\xa5\x6b\xa6\x6b\xa7\x6b\xa8\x6b\xa9\x6b\xaa\x6b\xab\x6b\xac\x6b\xad\x6b\xae\x6b\xaf\x6b\xb0\x6b\xb1\x6b\xb2\x6b\xb3\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x6b\xba\x6b\xbb\x6b\xbc\x6b\xbd\x6b\xbe\x6b\xbf\x6b\xc0\x6b\xc1\x6b\xc2\x6b\xc3\x6b\xc4", /* e200 */ "\x6b\xc5\x6b\xc6\x6b\xc7\x6b\xc8\x6b\xc9\x6b\xca\x6b\xcb\x6b\xcc\x6b\xcd\x6b\xce\x6b\xcf\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\x6b\xd4\x6b\xd5\x6b\xd6\x6b\xd7\x6b\xd8\x6b\xd9\x6b\xda\x6b\xdb\x6b\xdc\x6b\xdd\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x6b\xe9\x6b\xea\x6b\xeb\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\x6b\xfc\x6b\xfd\x6b\xfe\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\x6c\x46\x6c\x47\x6c\x48\x6c\x49\x6c\x4a\x6c\x4b\x6c\x4c\x6c\x4d\x6c\x4e\x6c\x4f\x6c\x50\x6c\x51\x6c\x52\x6c\x53\x6c\x54\x6c\x55\x6c\x56\x6c\x57\x6c\x58\x6c\x59\x6c\x5a\x6c\x5b\x6c\x5c\x6c\x5d\x6c\x5e\x6c\x5f\x6c\x60\x6c\x61\x6c\x62\x6c\x63\x6c\x64\x6c\x65\x6c\x66\x6c\x67\x6c\x68\x6c\x69\x6c\x6a\x6c\x6b\x6c\x6c\x6c\x6d\x6c\x6e\x6c\x6f\x6c\x70\x6c\x71\x6c\x72\x6c\x73\x6c\x74\x6c\x75\x6c\x76\x6c\x77\x6c\x78\x6c\x79\x6c\x7a\x6c\x7b\x6c\x7c\x6c\x7d\x6c\x7e\x6c\x7f\x6c\x80\x6c\x81\x6c\x82\x6c\x83\x6c\x84\x6c\x85\x6c\x86", /* e280 */ "\x6c\x87\x6c\x88\x6c\x89\x6c\x8a\x6c\x8b\x6c\x8c\x6c\x8d\x6c\x8e\x6c\x8f\x6c\x90\x6c\x91\x6c\x92\x6c\x93\x6c\x94\x6c\x95\x6c\x96\x6c\x97\x6c\x98\x6c\x99\x6c\x9a\x6c\x9b\x6c\x9c\x6c\x9d\x6c\x9e\x6c\x9f\x6c\xa0\x6c\xa1\x6c\xa2\x6c\xa3\x6c\xa4\x6c\xa5\x6c\xa6\x6c\xa7\x6c\xa8\x6c\xa9\x6c\xaa\x6c\xab\x6c\xac\x6c\xad\x6c\xae\x6c\xaf\x6c\xb0\x6c\xb1\x6c\xb2\x6c\xb3\x6c\xb4\x6c\xb5\x6c\xb6\x6c\xb7\x6c\xb8\x6c\xb9\x6c\xba\x6c\xbb\x6c\xbc\x6c\xbd\x6c\xbe\x6c\xbf\x6c\xc0\x6c\xc1\x6c\xc2\x6c\xc3\x6c\xc4\x6c\xc5\x6c\xc6\x6c\xc7\x6c\xc8\x6c\xc9\x6c\xca\x6c\xcb\x6c\xcc\x6c\xcd\x6c\xce\x6c\xcf\x6c\xd0\x6c\xd1\x6c\xd2\x6c\xd3\x6c\xd4\x6c\xd5\x6c\xd6\x6c\xd7\x6c\xd8\x6c\xd9\x6c\xda\x6c\xdb\x6c\xdc\x6c\xdd\x6c\xde\x6c\xdf\x6c\xe0\x6c\xe1\x6c\xe2\x6c\xe3\x6c\xe4\x6c\xe5\x6c\xe6\x6c\xe7\x6c\xe8\x6c\xe9\x6c\xea\x6c\xeb\x6c\xec\x6c\xed\x6c\xee\x6c\xef\x6c\xf0\x6c\xf1\x6c\xf2\x6c\xf3\x6c\xf4\x6c\xf5\x6c\xf6\x6c\xf7\x6c\xf8\x6c\xf9\x6c\xfa\x6c\xfb\x6c\xfc\x6c\xfd\x6c\xfe\x6d\x41\x6d\x42\x6d\x43\x6d\x44\x6d\x45\x6d\x46\x6d\x47\x6d\x48", /* e300 */ "\x6d\x49\x6d\x4a\x6d\x4b\x6d\x4c\x6d\x4d\x6d\x4e\x6d\x4f\x6d\x50\x6d\x51\x6d\x52\x6d\x53\x6d\x54\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x59\x6d\x5a\x6d\x5b\x6d\x5c\x6d\x5d\x6d\x5e\x6d\x5f\x6d\x60\x6d\x61\x6d\x62\x6d\x63\x6d\x64\x6d\x65\x6d\x66\x6d\x67\x6d\x68\x6d\x69\x6d\x6a\x6d\x6b\x6d\x6c\x6d\x6d\x6d\x6e\x6d\x6f\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x74\x6d\x75\x6d\x76\x6d\x77\x6d\x78\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7c\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x82\x6d\x83\x6d\x84\x6d\x85\x6d\x86\x6d\x87\x6d\x88\x6d\x89\x6d\x8a\x6d\x8b\x6d\x8c\x6d\x8d\x6d\x8e\x6d\x8f\x6d\x90\x6d\x91\x6d\x92\x6d\x93\x6d\x94\x6d\x95\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9b\x6d\x9c\x6d\x9d\x6d\x9e\x6d\x9f\x6d\xa0\x6d\xa1\x6d\xa2\x6d\xa3\x6d\xa4\x6d\xa5\x6d\xa6\x6d\xa7\x6d\xa8\x6d\xa9\x6d\xaa\x6d\xab\x6d\xac\x6d\xad\x6d\xae\x6d\xaf\x6d\xb0\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb4\x6d\xb5\x6d\xb6\x6d\xb7\x6d\xb8\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xbf\x6d\xc0\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc4\x6d\xc5\x6d\xc6\x6d\xc7\x6d\xc8", /* e380 */ "\x6d\xc9\x6d\xca\x6d\xcb\x6d\xcc\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd1\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd6\x6d\xd7\x6d\xd8\x6d\xd9\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdd\x6d\xde\x6d\xdf\x6d\xe0\x6d\xe1\x6d\xe2\x6d\xe3\x6d\xe4\x6d\xe5\x6d\xe6\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xeb\x6d\xec\x6d\xed\x6d\xee\x6d\xef\x6d\xf0\x6d\xf1\x6d\xf2\x6d\xf3\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf7\x6d\xf8\x6d\xf9\x6d\xfa\x6d\xfb\x6d\xfc\x6d\xfd\x6d\xfe\x6e\x41\x6e\x42\x6e\x43\x6e\x44\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4d\x6e\x4e\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x53\x6e\x54\x6e\x55\x6e\x56\x6e\x57\x6e\x58\x6e\x59\x6e\x5a\x6e\x5b\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x5f\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6b\x6e\x6c\x6e\x6d\x6e\x6e\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x7e\x6e\x7f\x6e\x80\x6e\x81\x6e\x82\x6e\x83\x6e\x84\x6e\x85\x6e\x86\x6e\x87\x6e\x88\x6e\x89\x6e\x8a", /* e400 */ "\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x8f\x6e\x90\x6e\x91\x6e\x92\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x98\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9c\x6e\x9d\x6e\x9e\x6e\x9f\x6e\xa0\x6e\xa1\x6e\xa2\x6e\xa3\x6e\xa4\x6e\xa5\x6e\xa6\x6e\xa7\x6e\xa8\x6e\xa9\x6e\xaa\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xaf\x6e\xb0\x6e\xb1\x6e\xb2\x6e\xb3\x6e\xb4\x6e\xb5\x6e\xb6\x6e\xb7\x6e\xb8\x6e\xb9\x6e\xba\x6e\xbb\x6e\xbc\x6e\xbd\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc1\x6e\xc2\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc7\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcb\x6e\xcc\x6e\xcd\x6e\xce\x6e\xcf\x6e\xd0\x6e\xd1\x6e\xd2\x6e\xd3\x6e\xd4\x6e\xd5\x6e\xd6\x6e\xd7\x6e\xd8\x6e\xd9\x6e\xda\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xde\x6e\xdf\x6e\xe0\x6e\xe1\x6e\xe2\x6e\xe3\x6e\xe4\x6e\xe5\x6e\xe6\x6e\xe7\x6e\xe8\x6e\xe9\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf4\x6e\xf5\x6e\xf6\x6e\xf7\x6e\xf8\x6e\xf9\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6f\x41\x6f\x42\x6f\x43\x6f\x44\x6f\x45\x6f\x46\x6f\x47\x6f\x48\x6f\x49\x6f\x4a\x6f\x4b\x6f\x4c", /* e480 */ "\x6f\x4d\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x58\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5c\x6f\x5d\x6f\x5e\x6f\x5f\x6f\x60\x6f\x61\x6f\x62\x6f\x63\x6f\x64\x6f\x65\x6f\x66\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6d\x6f\x6e\x6f\x6f\x6f\x70\x6f\x71\x6f\x72\x6f\x73\x6f\x74\x6f\x75\x6f\x76\x6f\x77\x6f\x78\x6f\x79\x6f\x7a\x6f\x7b\x6f\x7c\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x84\x6f\x85\x6f\x86\x6f\x87\x6f\x88\x6f\x89\x6f\x8a\x6f\x8b\x6f\x8c\x6f\x8d\x6f\x8e\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9c\x6f\x9d\x6f\x9e\x6f\x9f\x6f\xa0\x6f\xa1\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa7\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb3\x6f\xb4\x6f\xb5\x6f\xb6\x6f\xb7\x6f\xb8\x6f\xb9\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc0\x6f\xc1\x6f\xc2\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xc9\x6f\xca\x6f\xcb\x6f\xcc", /* e500 */ "\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd1\x6f\xd2\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xde\x6f\xdf\x6f\xe0\x6f\xe1\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea\x6f\xeb\x6f\xec\x6f\xed\x6f\xee\x6f\xef\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4c\x70\x4d\x70\x4e\x70\x4f\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5e\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6b\x70\x6c\x70\x6d\x70\x6e\x70\x6f\x70\x70\x70\x71\x70\x72\x70\x73\x70\x74\x70\x75\x70\x76\x70\x77\x70\x78\x70\x79\x70\x7a\x70\x7b\x70\x7c\x70\x7d\x70\x7e\x70\x7f\x70\x80\x70\x81\x70\x82\x70\x83\x70\x84\x70\x85\x70\x86\x70\x87\x70\x88\x70\x89\x70\x8a\x70\x8b\x70\x8c\x70\x8d\x70\x8e", /* e580 */ "\x70\x8f\x70\x90\x70\x91\x70\x92\x70\x93\x70\x94\x70\x95\x70\x96\x70\x97\x70\x98\x70\x99\x70\x9a\x70\x9b\x70\x9c\x70\x9d\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xab\x70\xac\x70\xad\x70\xae\x70\xaf\x70\xb0\x70\xb1\x70\xb2\x70\xb3\x70\xb4\x70\xb5\x70\xb6\x70\xb7\x70\xb8\x70\xb9\x70\xba\x70\xbb\x70\xbc\x70\xbd\x70\xbe\x70\xbf\x70\xc0\x70\xc1\x70\xc2\x70\xc3\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc8\x70\xc9\x70\xca\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xd8\x70\xd9\x70\xda\x70\xdb\x70\xdc\x70\xdd\x70\xde\x70\xdf\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe4\x70\xe5\x70\xe6\x70\xe7\x70\xe8\x70\xe9\x70\xea\x70\xeb\x70\xec\x70\xed\x70\xee\x70\xef\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf7\x70\xf8\x70\xf9\x70\xfa\x70\xfb\x70\xfc\x70\xfd\x70\xfe\x71\x41\x71\x42\x71\x43\x71\x44\x71\x45\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4a\x71\x4b\x71\x4c\x71\x4d\x71\x4e\x71\x4f\x71\x50", /* e600 */ "\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5c\x71\x5d\x71\x5e\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x64\x71\x65\x71\x66\x71\x67\x71\x68\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6e\x71\x6f\x71\x70\x71\x71\x71\x72\x71\x73\x71\x74\x71\x75\x71\x76\x71\x77\x71\x78\x71\x79\x71\x7a\x71\x7b\x71\x7c\x71\x7d\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x84\x71\x85\x71\x86\x71\x87\x71\x88\x71\x89\x71\x8a\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x8f\x71\x90\x71\x91\x71\x92\x71\x93\x71\x94\x71\x95\x71\x96\x71\x97\x71\x98\x71\x99\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\x9f\x71\xa0\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa8\x71\xa9\x71\xaa\x71\xab\x71\xac\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb3\x71\xb4\x71\xb5\x71\xb6\x71\xb7\x71\xb8\x71\xb9\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc3\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xce\x71\xcf\x71\xd0", /* e680 */ "\x71\xd1\x71\xd2\x71\xd3\x71\xd4\x71\xd5\x71\xd6\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe0\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe5\x71\xe6\x71\xe7\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xee\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8\x71\xf9\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x47\x72\x48\x72\x49\x72\x4a\x72\x4b\x72\x4c\x72\x4d\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x52\x72\x53\x72\x54\x72\x55\x72\x56\x72\x57\x72\x58\x72\x59\x72\x5a\x72\x5b\x72\x5c\x72\x5d\x72\x5e\x72\x5f\x72\x60\x72\x61\x72\x62\x72\x63\x72\x64\x72\x65\x72\x66\x72\x67\x72\x68\x72\x69\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x6e\x72\x6f\x72\x70\x72\x71\x72\x72\x72\x73\x72\x74\x72\x75\x72\x76\x72\x77\x72\x78\x72\x79\x72\x7a\x72\x7b\x72\x7c\x72\x7d\x72\x7e\x72\x7f\x72\x80\x72\x81\x72\x82\x72\x83\x72\x84\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8a\x72\x8b\x72\x8c\x72\x8d\x72\x8e\x72\x8f\x72\x90\x72\x91\x72\x92", /* e700 */ "\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\x9f\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xac\x72\xad\x72\xae\x72\xaf\x72\xb0\x72\xb1\x72\xb2\x72\xb3\x72\xb4\x72\xb5\x72\xb6\x72\xb7\x72\xb8\x72\xb9\x72\xba\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc1\x72\xc2\x72\xc3\x72\xc4\x72\xc5\x72\xc6\x72\xc7\x72\xc8\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcd\x72\xce\x72\xcf\x72\xd0\x72\xd1\x72\xd2\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd7\x72\xd8\x72\xd9\x72\xda\x72\xdb\x72\xdc\x72\xdd\x72\xde\x72\xdf\x72\xe0\x72\xe1\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xe8\x72\xe9\x72\xea\x72\xeb\x72\xec\x72\xed\x72\xee\x72\xef\x72\xf0\x72\xf1\x72\xf2\x72\xf3\x72\xf4\x72\xf5\x72\xf6\x72\xf7\x72\xf8\x72\xf9\x72\xfa\x72\xfb\x72\xfc\x72\xfd\x72\xfe\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4d\x73\x4e\x73\x4f\x73\x50\x73\x51\x73\x52\x73\x53\x73\x54", /* e780 */ "\x73\x55\x73\x56\x73\x57\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x60\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6c\x73\x6d\x73\x6e\x73\x6f\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c\x73\x7d\x73\x7e\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x84\x73\x85\x73\x86\x73\x87\x73\x88\x73\x89\x73\x8a\x73\x8b\x73\x8c\x73\x8d\x73\x8e\x73\x8f\x73\x90\x73\x91\x73\x92\x73\x93\x73\x94\x73\x95\x73\x96\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9b\x73\x9c\x73\x9d\x73\x9e\x73\x9f\x73\xa0\x73\xa1\x73\xa2\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xa9\x73\xaa\x73\xab\x73\xac\x73\xad\x73\xae\x73\xaf\x73\xb0\x73\xb1\x73\xb2\x73\xb3\x73\xb4\x73\xb5\x73\xb6\x73\xb7\x73\xb8\x73\xb9\x73\xba\x73\xbb\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc0\x73\xc1\x73\xc2\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xc8\x73\xc9\x73\xca\x73\xcb\x73\xcc\x73\xcd\x73\xce\x73\xcf\x73\xd0\x73\xd1\x73\xd2\x73\xd3\x73\xd4", /* e800 */ "\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xd9\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xde\x73\xdf\x73\xe0\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe5\x73\xe6\x73\xe7\x73\xe8\x73\xe9\x73\xea\x73\xeb\x73\xec\x73\xed\x73\xee\x73\xef\x73\xf0\x73\xf1\x73\xf2\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc\x73\xfd\x73\xfe\x74\x41\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x55\x74\x56\x74\x57\x74\x58\x74\x59\x74\x5a\x74\x5b\x74\x5c\x74\x5d\x74\x5e\x74\x5f\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6d\x74\x6e\x74\x6f\x74\x70\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x76\x74\x77\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7e\x74\x7f\x74\x80\x74\x81\x74\x82\x74\x83\x74\x84\x74\x85\x74\x86\x74\x87\x74\x88\x74\x89\x74\x8a\x74\x8b\x74\x8c\x74\x8d\x74\x8e\x74\x8f\x74\x90\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96", /* e880 */ "\x74\x97\x74\x98\x74\x99\x74\x9a\x74\x9b\x74\x9c\x74\x9d\x74\x9e\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xa7\x74\xa8\x74\xa9\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xba\x74\xbb\x74\xbc\x74\xbd\x74\xbe\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd2\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdc\x74\xdd\x74\xde\x74\xdf\x74\xe0\x74\xe1\x74\xe2\x74\xe3\x74\xe4\x74\xe5\x74\xe6\x74\xe7\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xee\x74\xef\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf4\x74\xf5\x74\xf6\x74\xf7\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x41\x75\x42\x75\x43\x75\x44\x75\x45\x75\x46\x75\x47\x75\x48\x75\x49\x75\x4a\x75\x4b\x75\x4c\x75\x4d\x75\x4e\x75\x4f\x75\x50\x75\x51\x75\x52\x75\x53\x75\x54\x75\x55\x75\x56\x75\x57\x75\x58", /* e900 */ "\x75\x59\x75\x5a\x75\x5b\x75\x5c\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x65\x75\x66\x75\x67\x75\x68\x75\x69\x75\x6a\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x72\x75\x73\x75\x74\x75\x75\x75\x76\x75\x77\x75\x78\x75\x79\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x7f\x75\x80\x75\x81\x75\x82\x75\x83\x75\x84\x75\x85\x75\x86\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8b\x75\x8c\x75\x8d\x75\x8e\x75\x8f\x75\x90\x75\x91\x75\x92\x75\x93\x75\x94\x75\x95\x75\x96\x75\x97\x75\x98\x75\x99\x75\x9a\x75\x9b\x75\x9c\x75\x9d\x75\x9e\x75\x9f\x75\xa0\x75\xa1\x75\xa2\x75\xa3\x75\xa4\x75\xa5\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xab\x75\xac\x75\xad\x75\xae\x75\xaf\x75\xb0\x75\xb1\x75\xb2\x75\xb3\x75\xb4\x75\xb5\x75\xb6\x75\xb7\x75\xb8\x75\xb9\x75\xba\x75\xbb\x75\xbc\x75\xbd\x75\xbe\x75\xbf\x75\xc0\x75\xc1\x75\xc2\x75\xc3\x75\xc4\x75\xc5\x75\xc6\x75\xc7\x75\xc8\x75\xc9\x75\xca\x75\xcb\x75\xcc\x75\xcd\x75\xce\x75\xcf\x75\xd0\x75\xd1\x75\xd2\x75\xd3\x75\xd4\x75\xd5\x75\xd6\x75\xd7\x75\xd8", /* e980 */ "\x75\xd9\x75\xda\x75\xdb\x75\xdc\x75\xdd\x75\xde\x75\xdf\x75\xe0\x75\xe1\x75\xe2\x75\xe3\x75\xe4\x75\xe5\x75\xe6\x75\xe7\x75\xe8\x75\xe9\x75\xea\x75\xeb\x75\xec\x75\xed\x75\xee\x75\xef\x75\xf0\x75\xf1\x75\xf2\x75\xf3\x75\xf4\x75\xf5\x75\xf6\x75\xf7\x75\xf8\x75\xf9\x75\xfa\x75\xfb\x75\xfc\x75\xfd\x75\xfe\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x80\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a", /* ea00 */ "\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x76\xfe\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c", /* ea80 */ "\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x80\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc", /* eb00 */ "\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x77\xfe\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x80\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e", /* eb80 */ "\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x78\xfe\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60", /* ec00 */ "\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x80\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0", /* ec80 */ "\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x79\xfe\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x80\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2", /* ed00 */ "\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7a\xfe\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64", /* ed80 */ "\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x80\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4", /* ee00 */ "\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7b\xfe\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x80\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6", /* ee80 */ "\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7c\xfe\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68", /* ef00 */ "\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x80\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8", /* ef80 */ "\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7d\xfe\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x80\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa", /* f000 */ "\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7e\xfe\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c", /* f080 */ "\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x80\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec", /* f100 */ "\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x7f\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x8e\x58\x77\x58\x82\x59\x80\x5b\xae\x5c\x66\x5c\x78\x5e\x49\x5e\x8a\x5f\x7a\x5f\xd2\x5f\xd5\x5f\xd9\x5f\xdd\x60\x59\x60\xad\x61\x77\x62\xb9\x62\xce\x62\xe2\x63\xee\x64\x8e\x64\xf1\x65\x49\x65\x66\x65\xb8\x65\xc6\x66\x78\x66\xdd\x66\xdf\x66\xe6\x67\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x00\x00\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x00\x00\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-300_P110-1997 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\x22\x12\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x22\x20\x22\xa5\x23\x12\x22\x02\x22\x07\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\x22\x61\x22\x52\x22\x6a\x22\x6b\x22\x1a\x22\x3d\x22\x1d\x22\x2b\x22\x2c\x22\x08\x22\x0b\x22\x86\x22\x87\x22\x82\x22\x83\x22\x2a\x22\x29\x22\x27\x22\x28\x21\xd2\x21\xd4\x22\x00\x22\x03\x21\x2b\x20\x30\x26\x6f\x26\x6d\x26\x6a\x20\x20\x20\x21\x00\xb6\x25\xef\x00\x00\x25\x00\x25\x02\x25\x0c\x25\x10", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\x30\x1c\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x25\x18\x25\x14\x25\x1c\x25\x2c\x25\x24\x25\x34\x25\x3c\x25\x01\x25\x03\x25\x0f\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x25\x13\x25\x1b\x25\x17\x25\x23\x25\x33\x25\x2b\x25\x3b\x25\x4b\x25\x20\x25\x2f\x25\x28\x25\x37\x25\x3f\x25\x1d\x25\x30\x25\x25\x25\x38\x25\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x14\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\x4e\xdd\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x66\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\xf8\x6f\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x67\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x8c\x4e\x09\x56\xdb\x4e\x94\x51\x6d\x4e\x03\x51\x6b\x4e\x5d\x53\x41\x76\x7e\x53\x43\x4e\x07\x51\x04\x90\xfd\x90\x53\x5e\x9c\x77\x0c\x5e\x02\x53\x3a\x75\x3a\x67\x51\x67\x71\x89\x7f\x53\x57\x53\x17\x59\x27\x4e\x2d\x5c\x0f\x4e\x0a\x4e\x0b\x5e\x74\x67\x08\x65\xe5\x75\x30\x5b\x50\x5c\x71\x67\x2c\x5d\xdd\x85\xe4\x91\xce\x5d\xe5\x69\x6d\x67\x28\x4e\x95\x90\xce\x5c\xf6\x96\xc4\x9a\xd8\x5c\xa1\x59\x2b\x53\x9f\x4e\xac\x4f\x50\x6b\x63\x67\x7e\x6a\x5f\x54\x8c\x88\xfd\x75\x37\x7f\x8e\x54\x09\x5d\x0e", /* 4580 */ "\x77\xf3\x8c\x37\x96\xfb\x95\x77\x6c\xbb\x6c\xa2\x91\xd1\x65\xb0\x53\xe3\x6a\x4b\x4e\x45\x79\x8f\x62\x40\x5e\x73\x51\x85\x56\xfd\x53\x16\x96\x2a\x5b\xae\x4e\xba\x4f\x5c\x90\xe8\x6e\x05\x6b\x21\x7f\xa9\x75\x1f\x4e\xe3\x51\xfa\x6c\x34\x68\xee\x51\x49\x52\xa0\x54\x08\x79\x5e\x67\x97\x91\xcd\x88\x4c\x4f\xe1\x66\x0e\x6d\x77\x5b\x89\x5e\x78\x4f\xdd\x59\x2a\x5b\xcc\x6c\x5f\x92\x34\x52\x4d\x77\xe5\x6b\x66\x4f\x0a\x66\x2d\x52\x06\x52\xdd\x75\x28\x5e\x83\x90\x20\x6c\x17\x62\x10\x89\x8b\x52\x29\x4f\x1a\x5b\x66\x5c\xa9\x75\x23\x95\x93\x57\x30\x81\xea\x82\x6f\x95\xa2\x61\x1b\x65\x3f\x5c\x3e\x8a\x08\x65\x87\x62\x4b\x72\x36\x65\xb9\x4e\x8b\x62\x38\x54\xc1\x55\x9c\x6e\x21\x5f\x18\x53\xe4\x8f\xba\x50\x09\x92\x44\x4e\x4b\x58\x34\x6d\x0b\x57\xce\x6d\x25\x7a\xcb\x5e\xa6\x53\x48\x4e\xca\x5f\x66\x8a\x2d\x90\x1a\x52\xd5\x5f\x8c\x59\x48\x5b\x9a\x6c\x60\x5c\x4b\x6d\x5c\x74\x06\x57\x42\x5b\x9f\x82\xf1\x76\x84\x53\xf8\x79\xc0\x6a\x2a\x54\x0d\x5b\x5d\x7a\xf9\x53\x5a\x52\x9b\x5e\xab\x84\x49\x68\x04\x6c\x38\x56\x68\x73\x89\x59\x1a\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\xc0\x77\x1f\x60\x75\x97\x59\x51\x86\x83\x02\x65\x4f\x8c\x4a\x51\x75\x6c\xd5\x76\x7a\x97\x52\x58\x97\x65\x99\x5f\xe0\x8c\xc7\x66\x42\x72\x69\x8e\xca\x5f\xb3\x89\x81\x5b\xfe\x58\x5a\x79\xcb\x76\x7d\x6c\xb3\x70\x2c\x6c\xb9\x96\x86\x85\x35\x5f\x53\x4f\xca\x5f\xd7\x66\x25\x79\x3e\x99\xac\x51\x65\x5e\xfa\x68\x39\x67\x49\x90\x32\x82\x08\x6d\x66\x7c\xbe\x54\x0c\x60\x27\x7c\x73\x80\x05\x52\xa9\x67\x9d\x8f\xd1\x76\xf4\x76\xee\x67\x65\x75\x3b\x76\xf8\x9e\xd2\x4e\x38\x82\x39\x75\x31\x58\xeb\x7b\x2c\x71\x8a", /* 4680 */ "\x7d\x19\x50\x65\x68\xb0\x82\xb3\x57\x1f\x67\x09\x5b\xb6\x7d\xda\x7d\x4c\x8a\xbf\x59\x29\x67\x1f\x7f\x6e\x6d\x45\x65\x89\x5f\x0f\x5f\x62\x97\x62\x7a\x2e\x8f\x38\x59\x16\x51\x43\x4f\x53\x9e\x7f\x5f\xa1\x59\x73\x5e\xb7\x4e\x16\x52\xc7\x58\x00\x59\x7d\x51\x50\x5b\xfa\x92\xfc\x72\x79\x57\xfc\x90\x54\x54\x11\x53\xd6\x7b\x49\x66\x7a\x56\xde\x95\x80\x90\x4b\x50\x99\x60\x1d\x96\x3f\x4e\x0d\x98\x08\x51\x68\x5b\xff\x55\x84\x67\x7f\x98\xef\x8c\x9e\x73\xfe\x98\xdf\x7d\x44\x98\x5e\x51\x6c\x67\x50\x99\x99\x55\x46\x7d\x50\x88\x68\x77\xe2\x6f\x5f\x79\xc1\x52\x36\x90\xa6\x6c\xbc\x7c\xf8\x5b\x8f\x7b\x56\x6c\xe2\x54\xe1\x65\x70\x95\x8b\x6e\x96\x6a\x39\x8c\xbb\x66\x0c\x5f\x37\x78\x14\x53\xcb\x5b\x87\x82\xe5\x83\xca\x63\x01\x82\xb1\x5f\x15\x7d\x00\x83\x52\x52\x25\x4f\xee\x8d\x8a\x4f\x4f\x85\xac\x6b\xdb\x90\x60\x55\x4f\x59\x65\x57\x8b\x5f\xc3\x76\x7b\x65\xe9\x67\xf3\x6d\x69\x8c\xea\x52\xd9\x6c\xc9\x5e\x38\x5b\x88\x57\xfa\x7b\xa1\x6c\xf0\x4f\x38\x67\x00\x4e\xe5\x6b\x4c\x88\xd5\x8d\x64\x8d\xb3\x89\x8f\x6d\x41\x8a\xa0\x66\x07\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xde\x71\x67\x58\x69\x90\x01\x96\xc5\x67\x2b\x54\xf2\x5c\xb8\x4e\x5f\x5c\x90\x52\x1d\x83\x28\x52\x47\x6b\xd4\x80\xfd\x8a\x71\x62\x95\x8e\xe2\x83\xc5\x90\x23\x4e\xd6\x6c\x11\x7d\x66\x91\x52\x7e\x41\x4f\xa1\x6e\x80\x67\x1d\x4e\xd8\x67\x61\x71\x21\x80\x03\x69\x7d\x4e\x3b\x61\x0f\x62\x26\x52\x07\x52\x64\x72\x47\x7d\x30\x6e\x08\x7a\x32\x5e\x03\x91\xcc\x5c\x5e\x7a\xe0\x59\x09\x4f\x55\x68\x5c\x5f\x7c\x67\xfb\x76\xca\x58\xf2\x4e\xc1\x6d\xf1\x53\xf0\x9c\xe5\x9d\xb4\x65\x2f\x65\x74\x89\xd2\x56\x09\x54\x73", /* 4780 */ "\x88\x5b\x8b\x70\x57\x27\x73\x87\x8d\xef\x70\x6b\x96\x1c\x8f\x1d\x70\xb9\x4e\x0e\x6e\x1b\x75\x51\x92\x80\x7a\x7a\x4e\xa4\x7f\xbd\x53\x4a\x53\xce\x59\x2e\x7d\xcf\x8a\x18\x66\x74\x69\xcb\x96\x9b\x68\x85\x53\x70\x8a\x00\x68\x17\x8e\xab\x66\xf8\x51\x4b\x7d\x20\x96\xc6\x7b\xc0\x51\x48\x6e\xdd\x6c\x7a\x65\x59\x7d\x14\x67\xf4\x63\xa5\x66\x1f\x77\x40\x75\x59\x66\x20\x5d\xf1\x75\x4c\x51\x77\x65\x6c\x7f\xa4\x98\x06\x51\x71\x6d\x3b\x91\xcf\x63\x07\x89\xe3\x5b\xa4\x67\x9c\x54\x04\x67\x1b\x96\x32\x7d\x04\x61\xb2\x96\x7d\x4e\x80\x56\xf3\x4e\x88\x82\x72\x7a\x0e\x69\x0d\x53\xef\x60\x52\x4f\x4d\x51\x78\x5f\xc5\x7d\x9a\x60\x25\x57\x28\x57\xa3\x54\x1b\x5e\xf6\x5d\x8b\x4f\x01\x68\x03\x67\x0d\x71\xb1\x52\x72\x53\x54\x6b\x69\x53\xf2\x51\x2a\x65\x8e\x62\x3f\x5b\x97\x68\x3c\x8f\xb0\x7b\x20\x57\x12\x8a\xf8\x81\x07\x55\x53\x8c\xe2\x5f\x25\x98\xa8\x5f\x97\x66\x13\x62\x53\x98\x2d\x65\xed\x6b\xb5\x52\xe2\x71\x36\x56\xe3\x98\x4d\x84\x3d\x91\x4d\x7a\x0b\x8f\xbb\x54\x3e\x61\x1f\x5b\xdb\x53\xcd\x7a\x14\x97\x00\x6e\x90\x6c\x96\x98\x4c\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xbc\x83\x49\x7b\x97\x76\xdb\x8f\xb2\x90\xa3\x77\x01\x69\xd8\x6b\xbf\x5c\x11\x4e\xcb\x53\xd7\x97\xf3\x7d\xe8\x59\xd4\x5e\x84\x4f\xc2\x72\xb6\x79\x3a\x5e\x97\x5a\x9b\x68\x2a\x6e\xcb\x68\xa8\x7e\x04\x53\xf3\x5d\xe6\x53\xca\x90\x78\x5c\x45\x60\xc5\x7d\xf4\x70\xad\x99\x28\x92\x71\x6a\x21\x6b\x8a\x7e\x3e\x4e\x9c\x7e\x4a\x4e\xf2\x58\x57\x6d\x88\x88\x53\x69\x1c\x67\x17\x5b\x85\x52\x9f\x5c\x1a\x8c\xbf\x60\xa6\x81\x02\x7b\xe0\x4f\x73\x7d\x21\x51\xa8\x68\x51\x78\xba\x72\x67\x4e\x26\x50\x24\x89\xb3\x8c\xb4", /* 4880 */ "\x7d\xad\x7d\x71\x5b\xbf\x4e\x21\x7c\xd6\x89\xaa\x93\x32\x6f\x84\x65\xbd\x5b\xb9\x98\xdb\x5c\x40\x79\x50\x90\x4e\x6c\x0f\x65\x39\x76\xe4\x7a\x4d\x6e\x0b\x5d\xfb\x6d\xf3\x5f\xdc\x4e\x89\x8e\xcd\x88\xc5\x91\x78\x7e\x54\x67\xd3\x5e\x1d\x7d\xbf\x7c\x89\x82\x2a\x75\x32\x54\x68\x4e\xd9\x5f\x85\x4f\x4e\x7d\xd1\x8e\xfd\x9e\xbb\x61\x76\x52\xb4\x78\xef\x4e\x39\x80\xb2\x96\x50\x5c\x0e\x65\x3e\x66\x43\x5e\xa7\x4e\xf6\x60\xf3\x9a\x13\x4e\xd5\x4f\x7f\x8f\x2a\x98\x54\x75\x6a\x5f\x35\x80\x5e\x4f\x9b\x6e\x6f\x6e\xb6\x68\x21\x92\x85\x92\xf3\x87\x8d\x97\x56\x51\x99\x5b\x8c\x6e\x2f\x93\x5b\x59\x1c\x51\x45\x9f\x8d\x7d\xb1\x83\xf1\x90\x1f\x52\xc9\x52\x37\x8d\x77\x64\x69\x53\xc2\x55\xb6\x7a\x42\x63\xa8\x8f\xd4\x80\x77\x6b\x62\x4f\x1d\x5e\x79\x74\x03\x6a\x29\x5c\x55\x5e\x61\x84\x5b\x5e\xad\x97\x5e\x53\xf7\x53\x58\x6b\x73\x62\xe1\x51\xe6\x8a\x9e\x66\x28\x57\xdf\x6d\xf5\x51\x8d\x50\xcd\x79\xd1\x9b\x5a\x7a\xef\x90\x14\x68\x48\x5b\x57\x8a\xd6\x51\x7c\x53\xc8\x63\x2f\x62\x80\x5f\xb9\x67\x2d\x7c\xfb\x5f\x93\x51\xb7\x61\x4b\x5c\xf0\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x31\x53\x9a\x50\x74\x6c\xe8\x6e\x2c\x98\x03\x4e\x57\x8a\x66\x57\x6a\x84\x29\x51\x5a\x6c\x7d\x5b\x9d\x60\x6d\x6a\x0b\x6e\x29\x65\x77\x8a\xac\x82\xb8\x54\x4a\x6b\x74\x82\x2c\x98\xfe\x79\x3c\x5c\x06\x96\xe3\x78\x02\x52\x24\x5f\x79\x5f\x71\x66\xfd\x5e\x2f\x96\x78\x93\x8c\x8a\xc7\x5f\x70\x60\xaa\x6a\x19\x75\x33\x5b\xb3\x6b\xcd\x88\xdc\x5e\x4c\x58\xf0\x96\x64\x7b\x39\x5a\x66\x4e\x7e\x7a\xf6\x82\x9d\x72\x5b\x8c\xb7\x79\xfb\x78\x5d\x83\x36\x52\xb9\x99\x0a\x52\xf2\x80\xa5\x8b\x19\x70\x89\x59\x0f\x58\x02", /* 4980 */ "\x67\xcf\x62\x55\x5e\x30\x71\x3c\x78\x6b\x80\x01\x7a\x76\x5b\xe9\x91\xdd\x65\xad\x5c\x04\x5d\xee\x5d\x50\x62\x98\x80\x10\x5b\xa3\x59\xcb\x5f\x8b\x6b\x8b\x66\x6f\x8c\x61\x90\xf7\x53\x53\x96\xe2\x85\xab\x6b\x7b\x80\x15\x64\xcd\x4e\xae\x4e\x91\x90\xe1\x52\xe4\x6c\x42\x8c\xab\x5b\x98\x59\xbb\x88\xcf\x77\x3c\x4f\x2f\x7a\xaf\x7b\xc9\x96\x8e\x63\xdb\x68\x42\x99\xc5\x68\xb6\x57\x47\x8c\xa1\x54\x7d\x73\x8b\x84\xb2\x90\xc1\x78\xe8\x7b\x11\x66\xf2\x69\x75\x58\x31\x63\xd0\x8a\x3c\x96\xea\x90\x55\x88\xc1\x99\x96\x75\xc5\x68\x50\x4f\x59\x74\xe6\x4e\xe4\x54\x39\x73\x2a\x67\x2a\x52\x5b\x8c\xa0\x4f\x34\x51\x00\x54\x2b\x90\x69\x8f\xc4\x5c\x3b\x5d\xcc\x7b\x54\x8f\xfd\x8a\x0e\x4e\x08\x92\x5b\x71\xc3\x8a\xb2\x70\xba\x96\x62\x67\x9a\x76\xae\x8b\x77\x7d\xbe\x96\xe8\x62\x11\x5b\xc4\x83\x7b\x62\xbc\x7d\x0d\x76\xe3\x7e\x2b\x96\x4d\x57\x2d\x7a\xdc\x7b\xc4\x6b\xba\x8c\x9d\x69\x8e\x90\x47\x6f\x14\x53\x60\x8f\xeb\x52\x87\x62\x4d\x65\x66\x7d\x1a\x7d\x42\x6b\xce\x7d\x79\x7e\x2e\x66\x6e\x79\x65\x50\x0b\x5c\x02\x99\xd2\x8a\x55\x75\x60\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x58\x80\x89\x50\xbe\x5e\x2b\x6d\xb2\x4f\x8b\x81\xe3\x81\xf3\x56\xe0\x7d\x99\x5d\xf2\x89\x9a\x6e\x9d\x6d\x17\x8a\xad\x89\x96\x73\x1b\x5d\xe8\x7d\xb2\x88\x8b\x4e\xfb\x5b\xc6\x88\x96\x6c\xc1\x84\x57\x8f\x03\x6b\xc5\x97\xff\x8c\xa9\x5e\x45\x82\xe6\x63\xaa\x5f\x81\x78\xc1\x82\x1e\x52\xaa\x7a\xaa\x59\x99\x62\x97\x8f\x14\x7f\xd2\x4f\xc3\x54\xc9\x96\x7a\x66\xf4\x8b\x1b\x5e\x72\x5f\xa9\x8a\x2a\x6d\x3e\x77\x63\x64\x83\x8b\x58\x61\x4e\x5a\x5a\x8d\x85\x71\xd0\x98\x3c\x72\xe9\x58\x3a\x5d\xfe\x8a\x8d\x67\xc4", /* 4a80 */ "\x7d\xe0\x4f\x11\x77\xed\x4f\x0f\x5b\xc5\x62\x9c\x5c\x3c\x53\x3b\x6d\xc0\x81\xfc\x96\xd1\x90\x4a\x6d\x6e\x93\xe1\x5c\x64\x98\xfc\x52\x4a\x6d\xfb\x85\x84\x96\x8a\x56\xfa\x58\x83\x77\x66\x98\x05\x4e\x73\x8c\x46\x8a\x31\x7d\xd2\x8f\xf0\x6d\x6a\x4f\x9d\x6b\x6f\x6b\x27\x62\xc5\x51\x1f\x97\x69\x53\x74\x9a\xa8\x67\x75\x88\x7f\x53\x05\x75\x70\x8d\x70\x86\x4e\x5c\xef\x8c\xde\x5f\xf5\x72\x5f\x76\x86\x60\x9f\x80\xcc\x59\xeb\x81\x31\x5e\x0c\x8a\x17\x96\x76\x82\xd7\x74\xb0\x84\xb8\x50\xd5\x96\xf2\x72\x48\x78\x34\x6d\xd1\x6e\x09\x67\xff\x6f\x54\x59\x15\x50\x0d\x72\xac\x9e\xc4\x7b\x46\x9b\x3c\x65\x63\x53\xbb\x8a\x98\x91\xdc\x98\x18\x6f\xc3\x65\xc5\x50\x1f\x7f\x8a\x6f\x64\x90\x31\x5f\x3e\x63\xf4\x90\x38\x8b\x66\x7b\xe4\x72\x06\x68\x43\x72\xec\x65\xcf\x82\xa6\x5b\xa2\x69\x60\x9e\xa6\x52\xdf\x67\x90\x63\x9b\x7d\x75\x98\x55\x5d\xf3\x58\x05\x8a\xcb\x95\xa3\x88\x63\x8c\xa8\x5b\x63\x5e\x8a\x54\x49\x78\x6c\x7d\x2b\x8c\xa2\x53\x52\x7d\x76\x8c\xb8\x70\x70\x54\x7c\x65\x45\x66\x76\x73\xb2\x56\xf2\x7b\xb1\x58\xa8\x7a\x81\x66\xae\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x87\x59\xff\x88\x40\x56\xf0\x7b\x51\x6d\xf7\x5f\x01\x93\x4b\x90\x00\x4f\xe3\x67\x5f\x4f\xbf\x8c\xc3\x52\x6f\x63\xa1\x54\x42\x89\x07\x69\x8a\x5e\x2d\x5a\x18\x75\x18\x51\x4d\x5e\x7e\x50\xb5\x5b\xdd\x68\xd2\x74\x5e\x69\xfb\x5f\xae\x55\xe3\x8a\x70\x5b\xf8\x58\x24\x83\x58\x5f\x13\x5e\x95\x70\x6f\x75\x1a\x7d\x05\x60\xe3\x7e\x70\x50\x12\x52\x38\x83\xef\x53\x73\x5f\x31\x6a\x2b\x9c\xf4\x53\xcc\x6d\x32\x4e\xab\x4e\x92\x84\x2c\x8a\x8c\x65\xe2\x6f\x01\x80\xa9\x9d\xf9\x8b\x72\x7b\x52\x95\x89\x6d\x74\x63\xa2", /* 4b80 */ "\x65\x90\x5b\xd2\x63\x19\x8a\xb0\x76\xdf\x99\xa8\x7a\x74\x82\x36\x88\x46\x80\x61\x65\x57\x59\x22\x96\x44\x88\xab\x93\x26\x7b\x4b\x62\xb5\x53\x71\x5e\x81\x5b\xdf\x4f\x75\x58\xc1\x70\x58\x7d\xca\x54\x38\x73\xe0\x52\xd8\x52\x08\x78\xd0\x6b\x23\x68\x38\x4e\x43\x69\x0e\x83\x77\x6e\xd1\x98\xf2\x81\x70\x88\x57\x8e\xf8\x79\x8e\x83\xdc\x8f\xce\x7e\x01\x55\x10\x4e\xa8\x8a\x33\x91\x62\x5e\xfb\x60\x6f\x4e\x86\x66\x4b\x63\x68\x52\x17\x80\x56\x51\xfd\x76\x42\x82\x1f\x96\x85\x50\xcf\x66\x2f\x4f\x3c\x4e\x59\x6a\x3d\x4e\x71\x52\x3a\x8a\xcf\x6a\x58\x66\xff\x67\x0b\x65\x3b\x97\x32\x5e\xc3\x8a\x13\x57\x82\x60\x4b\x86\x6b\x95\xd8\x60\xa9\x4e\x01\x63\xcf\x6f\xc0\x65\x9c\x8c\xac\x83\x05\x7c\xa7\x60\x50\x96\xf7\x5f\xcd\x64\x0d\x5b\x54\x90\x0f\x62\xd3\x59\xb9\x71\x59\x51\xac\x79\xf0\x55\x2f\x52\x75\x66\x97\x80\xf8\x4e\x98\x4e\xcf\x51\xcd\x9d\x5c\x51\x44\x7a\x93\x67\xf1\x58\x41\x7c\x21\x88\x61\x5c\x31\x68\xda\x91\xe7\x9d\xf2\x63\xee\x65\x75\x84\xee\x52\x3b\x6b\x32\x7c\x98\x59\x82\x96\x9c\x89\x87\x7c\x9f\x90\x06\x62\xdb\x66\xdc\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x55\x69\x82\x50\xac\x62\x3b\x5f\xd8\x63\xda\x75\xdb\x62\x7f\x61\x6e\x82\x66\x7c\x95\x71\x6e\x96\xc7\x7f\x6a\x54\x26\x52\x00\x83\xd3\x52\x11\x59\x4f\x9d\x28\x57\x4a\x66\xc7\x98\x58\x82\x0e\x66\x14\x73\x3f\x50\xb7\x65\x51\x5e\xb8\x5b\x6b\x55\xac\x5f\xeb\x63\x88\x8c\xaf\x67\x6f\x59\x51\x5a\x01\x71\xe5\x5d\xe3\x8c\x6a\x62\x71\x81\xf4\x5c\x3a\x5f\x92\x90\x45\x73\x84\x71\x49\x79\xd8\x79\x6d\x90\x03\x83\xcc\x5f\xb4\x5b\x8d\x62\x79\x64\xae\x7d\x18\x72\x3e\x5b\xee\x65\xe7\x8d\x08\x9e\x7c\x52\xe7\x5d\x07", /* 4c80 */ "\x9f\x62\x60\x69\x53\x6f\x66\x81\x96\x63\x5e\x3d\x62\xb1\x72\x2a\x6e\x4a\x93\xae\x79\xe6\x53\xe5\x80\x9d\x88\xfe\x53\xb3\x6c\x88\x6e\x7f\x51\x41\x90\x91\x6f\x6e\x84\xc4\x85\xea\x81\x29\x6b\xd2\x66\x3c\x7f\x72\x73\xc2\x5f\x1f\x79\x0e\x60\xb2\x72\xed\x58\xee\x81\x79\x8e\x8d\x5c\x65\x5d\xe7\x6c\x37\x6d\xe1\x86\x2d\x72\xaf\x8e\x0a\x7c\x92\x82\x18\x80\x33\x63\xa7\x92\x91\x50\x19\x81\x55\x8a\x69\x8e\xdf\x66\xb4\x81\x33\x75\x91\x6b\x20\x66\x69\x90\xf5\x4e\x32\x73\xea\x69\x3f\x76\x87\x70\x7d\x7d\x3a\x61\x48\x86\x07\x99\xff\x59\xc9\x78\x32\x78\x15\x90\x7f\x80\xa1\x5c\x3f\x66\xa2\x94\x18\x6d\x44\x5e\x55\x58\x54\x7b\x95\x8d\xe1\x4e\xa1\x8c\x5a\x81\xe8\x89\xe6\x96\x70\x52\x63\x74\xf6\x9a\x5a\x60\x12\x52\x0a\x74\x34\x98\x01\x90\x7a\x55\x04\x79\x56\x52\x30\x54\xb2\x8a\x34\x96\xa3\x4f\xf3\x92\x83\x91\xe3\x7d\x39\x96\x88\x4f\x51\x7d\x61\x5d\xba\x9b\xae\x5f\x80\x79\x5d\x85\x97\x8d\xa3\x7c\x60\x5c\x0a\x75\x65\x85\xa9\x63\xd6\x9e\x97\x7d\x22\x53\x75\x9a\xea\x90\x42\x6b\x3d\x7d\x0b\x63\x92\x80\xaa\x7d\xe9\x9f\x3b\x99\xc6\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x78\x67\x31\x55\x31\x63\x98\x78\x25\x5c\xb3\x5d\xe1\x92\xad\x98\xfd\x98\x10\x6c\xe3\x6b\x64\x53\x21\x6b\x53\x5e\x8f\x7a\xe5\x50\x2b\x6e\x56\x62\xbd\x82\x76\x6a\x9c\x4e\x18\x57\xf7\x75\x2b\x7c\x97\x82\xeb\x98\x02\x81\x1a\x73\xcd\x8f\x9b\x5c\x0b\x63\xe1\x73\x72\x81\x50\x80\xe1\x5b\x99\x76\xd7\x62\x91\x65\xec\x8a\x3a\x59\x47\x65\xe8\x6e\x7e\x66\x96\x55\xab\x8f\x09\x92\xed\x93\x96\x4e\xee\x75\x5c\x6f\x38\x8f\x9e\x79\x81\x5c\x01\x62\xe0\x9b\xe8\x91\xc8\x62\x76\x65\xcb\x8e\x0f\x8b\x21\x69\x9b\x62\x16", /* 4d80 */ "\x5a\x92\x90\xb8\x50\xda\x79\xdf\x6c\x41\x52\x70\x91\x75\x8b\x39\x68\x5d\x58\x75\x81\x9c\x5b\x9c\x8a\x89\x8a\x72\x9d\x8f\x63\x77\x59\x74\x8a\xa4\x52\xb1\x69\x62\x5c\x48\x9c\xe9\x67\x3a\x75\xb2\x6d\x1e\x4f\x0d\x7e\x6d\x7b\x48\x7f\xcc\x65\xe6\x59\xa5\x79\xe9\x62\x12\x6e\xde\x77\x0b\x8c\xa7\x65\xbc\x88\x5d\x6a\xdb\x5c\x4a\x80\x74\x90\x84\x8e\xcc\x65\xd7\x57\xf9\x70\x8e\x6f\x06\x5e\x7c\x77\xac\x4f\xf5\x59\x49\x81\xed\x9b\x45\x7f\xfc\x81\x78\x69\xfd\x6c\xca\x69\xc7\x79\xd2\x8b\x1d\x9e\xd9\x81\xd3\x7a\x3c\x79\x68\x6f\x5c\x63\xb2\x8d\xdd\x63\x83\x6e\x9c\x5e\x33\x61\xf8\x76\xbf\x64\x2c\x7d\xb4\x62\x47\x64\x58\x68\x16\x5f\x69\x90\x22\x7a\x1a\x82\xb9\x70\xc8\x9a\x12\x61\x63\x6f\xef\x53\xeb\x9d\x3b\x62\xfe\x60\xa0\x95\x91\x6d\x99\x61\x62\x92\x98\x63\x5c\x97\x07\x89\x72\x68\x3d\x51\xe1\x9b\x54\x60\x8c\x5b\x22\x99\xc4\x71\x26\x8a\x73\x97\x1c\x73\x96\x67\xd4\x60\xa3\x4e\x11\x4e\xf0\x8c\xdb\x8c\xb0\x79\x12\x97\x74\x89\x86\x51\x46\x57\xdc\x99\xd0\x80\xc3\x83\x38\x78\xa7\x86\xcd\x7f\x85\x50\x49\x82\x47\x69\x0b\x7c\x4d\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x5f\x26\x6e\x25\x68\x81\x93\x75\x5d\xfd\x53\x47\x97\x27\x64\x3a\x75\xc7\x6f\xa4\x73\xa9\x77\xe9\x94\x51\x8b\x5c\x80\x8c\x67\x4e\x4e\xad\x58\x2f\x75\x73\x8e\xd2\x6c\xe5\x93\x20\x8f\xf7\x7d\x33\x72\xc2\x82\x17\x74\x22\x82\xc5\x9a\x30\x77\x3a\x5f\x84\x96\x73\x64\xad\x92\x0d\x74\xdc\x60\xc7\x86\xed\x4f\xfa\x52\xa3\x6a\x3a\x77\x20\x53\x20\x61\xb6\x56\x74\x87\x76\x6c\xbf\x50\x5c\x60\x2a\x84\x66\x6b\x96\x6d\xbc\x97\xd3\x96\x8f\x68\x76\x60\xd1\x53\x78\x64\xa4\x51\xa0\x91\x54\x5d\xf4\x62\x9e\x5e\x63", /* 4e80 */ "\x92\x9a\x76\x93\x6c\x5a\x65\x97\x50\xe7\x7c\x82\x5f\x6b\x6c\xe1\x5f\x6c\x5a\xc1\x6f\x2c\x85\x2d\x64\x42\x57\x50\x58\xc7\x8c\xfc\x8a\x5e\x7a\x7f\x68\x9d\x7e\x26\x7a\x40\x73\x44\x8a\xeb\x4f\xd7\x7a\x63\x80\x36\x7d\xef\x80\xc6\x8a\xed\x73\x1f\x8f\xea\x4f\x0e\x75\x8b\x51\x8a\x67\x34\x5f\xd9\x61\xc7\x65\xaf\x9c\xf3\x5e\xca\x92\x62\x68\xdf\x6c\xb8\x80\xf4\x57\xcb\x6c\x99\x96\xa0\x5b\x64\x58\xf1\x68\xc4\x54\x10\x98\x30\x8a\x87\x4e\x5e\x61\x67\x9b\xab\x90\xaa\x55\xb0\x82\xbd\x59\x6a\x66\xf3\x82\x99\x58\x93\x71\x9f\x62\x84\x67\xd1\x90\x63\x5a\xcc\x6c\x57\x7c\xe7\x58\x51\x64\xb2\x58\xca\x83\x0e\x59\x68\x53\x02\x5a\x46\x87\x02\x60\x65\x72\xd9\x89\xa7\x66\x89\x66\xf9\x5d\x6f\x5b\xb0\x96\xbc\x63\x6e\x60\xdc\x79\x48\x51\xdd\x86\x06\x5e\xc9\x75\x54\x59\x6e\x6b\x04\x4f\x43\x7b\x94\x67\xda\x62\xdd\x62\x8a\x97\x1e\x62\xed\x6e\xc5\x50\x8d\x67\xb6\x80\xe4\x9e\xbf\x5e\xb5\x63\x8c\x85\xcd\x98\x67\x52\xc5\x60\x16\x68\xcb\x61\xd0\x57\x51\x8f\x29\x5f\xaa\x81\xa8\x7d\x62\x71\xc8\x54\xc0\x69\xcc\x6b\x3e\x65\xac\x63\xc3\x4f\x46\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x1b\x6b\x86\x88\xf8\x52\x03\x73\x2e\x66\x87\x7d\x17\x57\xf4\x57\x0f\x61\x8e\x97\x0a\x7c\x3f\x8b\x00\x78\x81\x8c\xe0\x54\x8b\x7b\x87\x74\x5b\x7c\x11\x88\x70\x53\x98\x54\x48\x6c\xf3\x6f\x22\x53\xf6\x88\xb4\x53\x01\x7a\x6b\x86\x95\x58\x6b\x5d\x29\x88\xc2\x62\xd2\x4e\x1e\x50\x36\x96\xc0\x73\x63\x8a\x3b\x51\x76\x71\x99\x7f\xe0\x88\x88\x7e\x1e\x4e\x4f\x84\xcb\x6f\x2b\x58\x59\x93\x6c\x53\xe9\x86\x5a\x91\x49\x86\xef\x5e\x06\x55\x07\x90\x2e\x67\x95\x84\x6c\x5b\xa5\x82\xa5\x84\x31\x6d\x8c\x63\xfa\x4e\xa5", /* 4f80 */ "\x51\xc6\x63\x28\x7f\x70\x5b\x5f\x5d\xbd\x99\xc8\x53\xec\x79\x85\x8a\x54\x79\x62\x88\xdf\x5b\x09\x4f\xb5\x4f\x91\x9b\x8e\x51\x92\x96\xf0\x6d\xaf\x62\x2f\x84\x90\x8c\xdc\x50\x75\x5c\xe0\x4e\x14\x4f\x83\x7c\x54\x84\xd1\x77\xb3\x8a\xee\x5c\xe8\x62\xf6\x66\x3b\x8a\x93\x85\x26\x8a\x95\x65\xfa\x67\x14\x53\xd4\x62\xab\x8c\xe6\x88\xf3\x5b\xe7\x86\x8a\x66\x8e\x58\x2a\x61\x70\x69\x6f\x9f\x13\x7a\x92\x78\x93\x6a\x7f\x90\x17\x92\x66\x7d\x10\x7b\xc7\x6e\xf4\x82\x1c\x5c\x3d\x62\xcd\x85\xc1\x6f\x02\x6e\x67\x66\x91\x85\xa6\x63\x7a\x82\x1b\x4f\x8d\x50\x91\x8a\x02\x62\xec\x9b\xc9\x7a\x3d\x7c\x9b\x50\xc5\x90\x19\x70\x8a\x7c\x8b\x64\xec\x66\x5f\x65\x62\x73\x2b\x53\x39\x67\xa0\x55\xa7\x6d\x2a\x7a\x3f\x64\xe6\x79\xa7\x67\xd8\x7b\x26\x96\xbb\x63\x11\x72\xa0\x5c\x6f\x70\x26\x97\xee\x60\xdf\x8a\xfe\x8b\x04\x84\x94\x9b\xd6\x82\xaf\x93\x2c\x66\x06\x96\x40\x5b\xc2\x86\xc7\x79\x49\x80\x17\x69\x19\x70\x92\x96\x3b\x7c\x7e\x59\xd3\x5b\x5c\x7d\x1b\x91\xd8\x6a\x80\x85\xe9\x69\x05\x6c\x93\x50\x2d\x4e\xa6\x7f\xc1\x61\xa4\x8c\xca\x96\x65\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\xd1\x53\xf1\x59\x8a\x8e\xac\x62\xd8\x68\x67\x71\xd5\x7b\x67\x50\x4f\x67\xd0\x82\xd1\x97\x8d\x74\x8b\x80\xba\x73\x36\x51\x4e\x81\x05\x90\xca\x58\x4a\x67\xfe\x6f\xf1\x5f\xfd\x76\xc6\x9a\x0e\x50\x7d\x96\x94\x5e\xf7\x7b\xb8\x90\x4d\x6c\x4e\x85\xfb\x81\x9d\x67\xaf\x56\x4c\x56\x06\x8c\x8c\x56\xda\x73\xed\x8c\xc4\x8f\xc5\x96\xf6\x6c\x50\x89\x44\x8f\x3f\x7d\x5e\x60\xe8\x72\xfc\x7d\x9c\x84\x63\x5c\xfb\x54\x46\x5d\x16\x6c\xa1\x81\xb3\x58\xfa\x5b\xb4\x81\x08\x54\x1f\x8c\xbc\x61\x82\x78\xa9\x6f\xe1\x91\xac", /* 5080 */ "\x76\xf2\x60\x20\x76\xfe\x84\xc9\x7f\x36\x4e\xc7\x75\x5d\x7a\x17\x84\xec\x75\xf4\x4f\x3a\x67\x6d\x74\x60\x62\xf3\x6f\x20\x79\xe4\x87\xf9\x60\x94\x62\x34\x66\xab\x82\x0c\x84\x99\x72\x3a\x5f\xcc\x61\x09\x70\xcf\x72\x61\x7a\x50\x50\x98\x9a\xed\x5d\x69\x60\x1c\x66\x67\x99\xb4\x5e\x7b\x64\x3e\x58\x30\x53\xc9\x7a\x9f\x99\x0c\x9b\x42\x8f\x5f\x7a\xae\x5b\x9b\x68\xa2\x62\x49\x79\x84\x9d\xfa\x54\x51\x93\x2f\x8a\xc4\x5f\x90\x8d\xf3\x5a\x2f\x80\xde\x6d\x29\x7a\x4f\x84\xbc\x9d\x2b\x90\x10\x6d\x38\x91\x6a\x6f\xc1\x99\x05\x6b\xbb\x5e\xb6\x91\xb8\x50\x76\x6f\x0f\x4e\x19\x54\x0f\x96\x75\x6c\x72\x51\xb4\x56\x31\x9f\x20\x66\xa6\x5f\x0a\x75\xab\x51\xf8\x67\x4f\x8d\xf5\x6c\x70\x8a\x6b\x75\x7f\x5c\xac\x68\x41\x8c\xd3\x9b\xdb\x84\x75\x68\x93\x84\x0c\x72\xdb\x75\x77\x85\x68\x78\x3a\x84\x7a\x5f\x10\x83\x1c\x68\x13\x6e\x1a\x9d\xaf\x51\xf9\x79\x80\x4e\x99\x5e\xe3\x90\x8a\x80\xaf\x59\xa8\x77\xdb\x8d\x74\x8a\x1f\x67\x3d\x53\x3f\x8a\x0a\x56\x18\x67\x56\x53\xd9\x4f\x10\x74\x09\x5a\x41\x4f\xf8\x79\xb0\x98\x38\x8e\x2a\x9d\x60\x8f\x44\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xa5\x75\xbe\x90\x6d\x86\x7b\x60\xbc\x51\xb6\x59\x37\x7d\x2f\x91\x6c\x69\xae\x7c\xe0\x79\x2a\x5d\x14\x64\xc1\x58\xec\x58\x9c\x8d\x66\x66\xd9\x61\xf2\x91\x2d\x6e\x58\x94\x35\x96\x5b\x72\x72\x5f\x6a\x5e\x9a\x8f\x1b\x5b\x95\x5c\x39\x90\x13\x83\x4f\x7c\xce\x62\x0a\x90\xed\x69\x1b\x6e\x15\x65\xdb\x66\xfe\x4e\x9f\x55\xaa\x7a\x83\x83\xe9\x8b\x83\x84\x6d\x83\xf0\x7f\x50\x91\x8d\x91\x90\x75\x8e\x95\xa5\x81\xe7\x75\xe2\x61\xa9\x8a\x50\x95\xb2\x53\xa8\x59\xf6\x98\x13\x78\x91\x7c\x17\x6b\x3a\x57\xe0\x62\x0e", /* 5180 */ "\x83\xd6\x8a\xd2\x75\xd4\x92\x7e\x59\xdc\x52\x89\x90\x87\x6f\xfe\x74\x73\x5c\x09\x9d\x6c\x84\xfc\x7c\xdf\x7b\xad\x8a\x6e\x59\x4e\x56\xca\x81\x9a\x79\x47\x66\x36\x53\xe1\x78\x87\x58\xcc\x93\x97\x6e\x13\x52\x56\x82\x8b\x9e\x9f\x95\x83\x65\x8c\x9e\x93\x73\x45\x6e\x26\x9d\x07\x59\x83\x7d\xac\x96\xc1\x61\xbe\x67\x62\x9e\xce\x90\xa8\x91\x87\x9f\x0e\x7c\x38\x51\xf1\x85\x99\x52\x4c\x54\x0e\x79\x01\x65\x5e\x66\x68\x5c\xe1\x75\x66\x76\xc8\x86\x79\x53\x1d\x55\x06\x79\x26\x89\x12\x77\xef\x7c\xc0\x57\x0b\x51\x5c\x7e\x8a\x53\x5c\x8a\x60\x65\xa7\x87\x66\x57\x66\x6a\xe8\x87\xfb\x5e\x16\x7a\xea\x8d\x73\x77\x1e\x73\x7a\x66\xe0\x94\x10\x81\x6b\x7b\x08\x91\xfc\x57\x37\x6f\xe4\x85\x6a\x7e\x55\x99\x57\x87\xba\x69\x4a\x81\x8f\x5e\xff\x89\x1c\x72\xd0\x98\x46\x9e\xdb\x8d\x99\x5d\xd6\x62\xb9\x64\xab\x4f\x76\x61\x3f\x68\xaf\x5f\x14\x80\x0c\x92\xf8\x7b\xc1\x52\xfe\x66\x4f\x91\x77\x51\xf6\x97\xa0\x83\x9e\x64\x7a\x9c\x3a\x68\x05\x7c\x4f\x68\x5f\x9b\x6f\x9f\x4b\x7f\xfb\x93\x48\x4f\xf6\x9e\x92\x91\xb1\x96\xdb\x5b\xe6\x6c\xcc\x7c\xfe\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x53\x68\x22\x66\xb9\x5b\xd4\x98\xf4\x8a\xe6\x81\x54\x78\x27\x74\xbd\x6e\xd3\x92\x88\x5a\x20\x5b\x8b\x86\xf8\x76\x0d\x86\x5c\x66\x41\x91\xc9\x55\x89\x7a\x4e\x59\xe5\x60\x42\x93\x2b\x5b\x5a\x84\x9c\x5c\x91\x96\xcd\x62\xd9\x67\x5c\x67\x87\x5e\x7d\x86\x50\x9e\xb9\x5c\xb1\x80\xce\x7a\x00\x8a\xbc\x57\x00\x80\x96\x7d\x72\x92\x11\x80\x98\x90\x7c\x77\x61\x87\x37\x90\x75\x81\x7a\x7c\x3e\x6e\xa2\x96\x5e\x7e\x90\x72\xd7\x58\xfd\x60\xb3\x97\x86\x7e\x88\x58\x7e\x6e\x20\x84\xdc\x69\x61\x77\xad\x51\x97\x65\x2a", /* 5280 */ "\x67\x77\x5d\xcd\x61\x01\x93\x2e\x59\x54\x63\x67\x79\x8d\x7a\xff\x80\xd6\x58\xb3\x61\x68\x6a\xc3\x74\x83\x9b\x92\x66\x0a\x64\x2d\x51\x18\x67\x63\x80\x9b\x9c\x10\x4f\xc9\x69\x53\x7a\x1c\x52\xff\x60\x55\x76\x8e\x81\x7f\x56\x42\x5f\x6d\x71\x94\x70\xbb\x74\x36\x80\x00\x88\x1f\x55\xda\x74\x35\x76\x90\x96\xeb\x66\xdd\x75\x1c\x63\x3d\x6e\xc9\x7c\x64\x7c\xa5\x6d\x35\x93\x5c\x70\x27\x5e\x25\x70\x1d\x54\xbd\x61\x1a\x69\x73\x6c\x6a\x55\x9a\x6d\x19\x96\xcc\x5b\xe1\x59\xfb\x69\x7c\x91\x4c\x77\x09\x85\x00\x7a\x46\x78\x72\x92\xe4\x8c\xed\x7c\xfa\x9d\x1b\x81\x4e\x9a\xc4\x68\xa0\x6d\xcb\x59\x18\x84\x0a\x56\x29\x9b\x41\x68\x97\x70\xb3\x97\x71\x94\x19\x67\xa2\x68\x02\x78\x95\x68\xa7\x50\xd6\x80\xb1\x5e\xf8\x82\xd4\x79\x7a\x67\xca\x7e\x61\x69\xcd\x51\xc4\x72\x3d\x68\x29\x99\xb3\x5f\x3c\x8f\x61\x68\x2b\x61\x55\x65\x91\x8f\xb1\x7e\x1b\x97\x98\x99\x52\x88\x77\x5b\x2c\x66\x31\x4f\xe0\x69\x39\x6a\xfb\x5b\xb5\x7a\xc8\x50\x26\x59\x44\x90\x59\x7b\x25\x7b\x4f\x8e\x74\x85\x43\x58\x58\x8b\x0e\x50\x39\x86\x54\x97\xf6\x75\x69\x72\xf8\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf7\x9d\x89\x50\x16\x51\xcc\x62\xcc\x91\xc6\x87\x55\x64\x9a\x88\xf4\x91\xe6\x68\x54\x69\x5a\x6c\x40\x7b\x6c\x67\x41\x77\xd7\x88\x23\x53\x84\x8e\xc0\x72\x80\x8c\x6b\x78\x8d\x71\x65\x82\x07\x68\xb1\x8d\x04\x90\x77\x70\x1e\x8f\xe6\x81\x0a\x81\xbf\x89\xdc\x68\xb3\x6a\xdf\x92\xea\x95\xc7\x79\x57\x7a\x20\x53\xa9\x8e\x5f\x78\x6f\x79\xb9\x5f\x27\x5e\xd6\x68\x53\x93\xac\x91\x9c\x69\x1a\x58\x06\x64\xb0\x7e\x6b\x7d\x8f\x68\xf2\x6e\xa5\x82\xdb\x91\x92\x52\x43\x8e\xb0\x90\x81\x72\x1b\x7d\xcb\x76\x56\x59\xac", /* 5380 */ "\x6f\xe0\x8b\x28\x80\xa2\x55\x44\x60\x70\x5f\x4a\x68\xc8\x63\x3a\x94\x38\x9b\x4f\x81\xe5\x6a\x17\x70\xdd\x69\xa7\x61\x4c\x92\x0e\x93\x10\x9b\xad\x52\xd7\x92\x5e\x92\xf9\x59\x93\x76\x96\x66\xfb\x57\x69\x73\xca\x76\x78\x6a\x1f\x7e\x9c\x98\x11\x8c\xd1\x58\x40\x63\x49\x87\x1c\x62\xd0\x60\xb4\x6b\x89\x86\xee\x57\x64\x58\x1d\x85\x49\x72\x35\x76\x52\x98\x3b\x82\x37\x53\x51\x5c\x24\x59\xbe\x58\x15\x90\x1d\x69\xb4\x83\x4a\x9e\xa9\x97\x6b\x80\x86\x53\xad\x60\x68\x4f\xae\x76\xc3\x6a\x05\x68\x9b\x93\x7e\x99\xd5\x91\xc7\x5c\x16\x58\x5e\x61\xa7\x96\x99\x4f\xdf\x82\x78\x9c\x52\x5f\x45\x61\x08\x7c\x8d\x80\x6f\x5d\xf7\x8d\x6b\x57\xb0\x98\xe2\x57\x03\x79\xbf\x59\x96\x79\x41\x54\x0a\x83\xdf\x9c\x39\x52\xd2\x6b\xd8\x86\xcb\x4e\xc0\x9a\x52\x53\x66\x80\x06\x73\x37\x64\x92\x8f\xed\x5a\xc9\x54\x20\x53\x7f\x4f\xaf\x80\x7e\x54\x3b\x75\x15\x7b\x18\x87\xec\x54\xb3\x70\x4c\x89\x97\x6c\xab\x85\xfa\x71\x30\x69\x6e\x93\x28\x74\x5a\x59\xd1\x6e\x5b\x61\x7e\x53\xe2\x83\x17\x76\xe7\x85\x23\x85\xaf\x69\x25\x5c\x60\x72\x59\x75\xd5\x8b\x90\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x07\x82\xad\x5c\x5b\x7b\xed\x97\x84\x6f\x70\x76\x4c\x88\xb7\x92\xd2\x4f\x36\x5e\xfe\x90\x61\x88\xe1\x84\x71\x71\x1a\x6d\x1b\x80\xb4\x74\xe2\x74\x33\x5a\x7f\x90\x5c\x98\x0c\x53\x19\x90\x6e\x6b\xb4\x85\xaa\x78\x97\x7a\xfa\x6a\xae\x89\x10\x95\x8f\x62\x0c\x4f\x3d\x4f\x7c\x79\xbe\x9d\xd7\x4e\xd4\x57\xa2\x51\xa5\x69\x00\x60\x89\x70\x7c\x7a\xe3\x89\x56\x93\xa7\x9c\x2d\x51\x12\x52\xfa\x7c\xca\x60\xf9\x70\x78\x81\xc6\x55\x9d\x69\x91\x96\xc9\x55\x3e\x80\x5a\x83\x04\x83\x32\x54\xfa\x56\x99\x8f\xbf\x56\x34", /* 5480 */ "\x67\x60\x52\x65\x84\x0e\x5e\x5f\x7b\x65\x90\x35\x83\x87\x6b\x4e\x58\xbe\x63\x09\x72\x7d\x97\xad\x69\xd0\x54\x6a\x98\x4e\x63\x2b\x71\x4e\x85\x57\x7c\xde\x63\x72\x68\xf9\x75\x11\x86\x02\x6e\xba\x5a\x3c\x7a\x84\x85\x1a\x95\xa4\x59\xd0\x60\xda\x51\xea\x5a\x29\x71\x69\x6f\x15\x69\x6b\x64\x14\x76\x26\x4e\x4e\x7d\xbb\x69\x34\x85\x21\x8f\xfa\x93\x54\x9c\x3b\x5f\x17\x5e\xd3\x82\x58\x89\x5f\x82\xe7\x52\xc3\x5c\x51\x83\xab\x78\x26\x79\xe1\x7f\xf0\x62\x6e\x60\xf0\x5c\xa8\x6f\x97\x71\xa8\x99\x09\x51\x32\x5e\x37\x5f\x04\x63\x7b\x67\x53\x68\xd7\x66\x52\x9c\xf6\x88\xb0\x52\xab\x4f\xc4\x4e\x3c\x67\xb3\x7c\x1e\x7f\x4d\x8a\x23\x64\x51\x71\xe6\x65\xa4\x6f\x09\x85\x3d\x50\x72\x7d\xba\x55\x5e\x7b\x04\x72\xfd\x6c\xd3\x84\x22\x62\x1f\x50\xad\x82\x35\x87\x18\x59\x19\x60\x28\x67\x7c\x6f\x23\x75\xb9\x69\x5c\x52\x0e\x80\x18\x8b\x01\x71\xed\x57\x13\x66\x0f\x83\xeb\x71\x64\x7d\x9b\x56\x17\x7d\x7d\x8f\x4d\x93\x18\x85\x69\x5d\x17\x67\x8c\x67\xde\x87\xc7\x79\xae\x58\x35\x84\x04\x90\x41\x7f\xd4\x6f\x51\x8a\x63\x9d\x08\x67\x0f\x93\x9a\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xac\x60\x2f\x64\xe2\x60\x8d\x96\xb7\x63\x57\x84\x61\x91\x4b\x75\xd8\x60\xe7\x99\x13\x9c\x57\x59\x84\x6d\xeb\x5e\x96\x70\x06\x9b\xf0\x58\xbb\x79\xb1\x60\xb6\x63\x3f\x5b\xf5\x98\x12\x55\x8b\x82\xd3\x51\x47\x61\x90\x79\x53\x79\xbd\x6c\x5d\x9e\xba\x9c\x48\x8d\xa8\x5e\xe0\x7d\x43\x5e\xfc\x85\x4e\x8c\xe4\x5a\xe1\x54\xe8\x50\x23\x52\xbe\x7d\xec\x85\x11\x66\x66\x6c\x3e\x72\x4c\x8a\xdc\x9c\x0d\x77\xa5\x8b\x02\x8d\x05\x6f\x11\x98\x34\x97\xfb\x50\xfb\x7f\x75\x5a\x03\x85\x13\x4f\xb6\x63\x4c\x9d\x61\x80\x8b", /* 5580 */ "\x52\x94\x65\xa1\x56\x7a\x59\x57\x8d\x0b\x6a\x35\x6a\xd3\x70\xf9\x86\x5e\x6f\xb1\x51\xe7\x7f\xeb\x59\xea\x5e\x87\x6b\x6a\x75\x4f\x71\x7d\x91\x4e\x7d\x2c\x8c\x79\x60\x62\x62\x1a\x7f\xa8\x5f\x1b\x6c\x8c\x86\xfe\x75\x62\x7b\x86\x9a\xb8\x66\x27\x7a\xba\x84\x4e\x6f\x81\x8b\x2c\x86\xa4\x6f\xeb\x7b\x8b\x7f\x77\x8f\x2f\x8e\x44\x7e\x23\x4e\x4d\x79\xa6\x8a\xfa\x90\x3c\x50\xd1\x9e\xcd\x5e\xdf\x75\x8f\x63\x1f\x53\xdb\x99\x10\x82\x6e\x62\xf7\x68\xfa\x72\x5d\x80\x3d\x58\xd5\x5c\x4d\x86\xd9\x54\x0b\x88\x05\x92\xf2\x92\x37\x5c\x62\x98\x5b\x86\xe4\x96\x6a\x72\x62\x69\x55\x6c\xd7\x69\x94\x9c\x2f\x77\xe7\x68\xc9\x8d\xe8\x6d\x6c\x67\xc1\x9b\xaa\x61\x9a\x63\xa9\x70\x15\x93\x06\x93\x4d\x6a\x61\x62\x58\x52\x83\x75\x25\x56\x87\x6c\x83\x68\x34\x64\x9e\x4e\x9b\x72\x52\x59\xe6\x8f\xc2\x5f\xbd\x6d\xd8\x85\xf7\x8a\x51\x98\x17\x99\xc1\x63\xa0\x7c\x81\x5b\x30\x81\x39\x54\x03\x7e\x82\x81\x06\x53\x2a\x6a\x8e\x7f\x6b\x54\xe9\x56\x78\x8a\xb9\x67\x15\x5b\xd3\x64\x78\x64\xfe\x6b\x1d\x8c\xc2\x51\xcb\x7e\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x0c\x4e\x10\x4e\x15\x4e\x28\x4e\x2a\x4e\x31\x4e\x36\x4e\x3f\x4e\x42\x4e\x56\x4e\x58\x4e\x62\x4e\x82\x4e\x85\x4e\x8a\x4e\x8e\x5f\x0d\x4e\x9e\x4e\xa0\x4e\xa2\x4e\xb0\x4e\xb3\x4e\xb6\x4e\xce\x4e\xcd\x4e\xc4\x4e\xc6\x4e\xc2\x4e\xe1\x4e\xd7\x4e\xde\x4e\xed\x4e\xdf\x4e\xfc\x4f\x09\x4f\x1c\x4f\x00\x4f\x03\x4f\x5a\x4f\x30\x4f\x5d\x4f\x39\x4f\x57\x4f\x47\x4f\x5e\x4f\x56\x4f\x5b\x4f\x92\x4f\x8a\x4f\x88\x4f\x8f\x4f\x9a\x4f\xad\x4f\x98\x4f\x7b\x4f\xab\x4f\x69\x4f\x70\x4f\x94\x4f\x6f\x4f\x86\x4f\x96\x4f\xd4", /* 5680 */ "\x4f\xce\x4f\xd8\x4f\xdb\x4f\xd1\x4f\xda\x4f\xd0\x4f\xcd\x4f\xe4\x4f\xe5\x50\x1a\x50\x40\x50\x28\x50\x14\x50\x2a\x50\x25\x50\x05\x50\x21\x50\x22\x50\x29\x50\x2c\x4f\xff\x4f\xfe\x4f\xef\x50\x11\x50\x1e\x50\x06\x50\x43\x50\x47\x50\x55\x50\x50\x50\x48\x50\x5a\x50\x56\x50\x0f\x50\x46\x50\x70\x50\x42\x50\x6c\x50\x78\x50\x80\x50\x94\x50\x9a\x50\x85\x50\xb4\x67\x03\x50\xb2\x50\xc9\x50\xca\x50\xb3\x50\xc2\x50\xf4\x50\xde\x50\xe5\x50\xd8\x50\xed\x50\xe3\x50\xee\x50\xf9\x50\xf5\x51\x09\x51\x01\x51\x02\x51\x1a\x51\x15\x51\x14\x51\x16\x51\x21\x51\x3a\x51\x37\x51\x3c\x51\x3b\x51\x3f\x51\x40\x51\x4a\x51\x4c\x51\x52\x51\x54\x51\x62\x51\x64\x51\x69\x51\x6a\x51\x6e\x51\x80\x51\x82\x56\xd8\x51\x8c\x51\x89\x51\x8f\x51\x91\x51\x93\x51\x95\x51\x96\x51\x9d\x51\xa4\x51\xa6\x51\xa2\x51\xa9\x51\xaa\x51\xab\x51\xb3\x51\xb1\x51\xb2\x51\xb0\x51\xb5\x51\xbe\x51\xbd\x51\xc5\x51\xc9\x51\xdb\x51\xe0\x51\xe9\x51\xec\x51\xed\x51\xf0\x51\xf5\x51\xfe\x52\x04\x52\x0b\x52\x14\x52\x15\x52\x27\x52\x2a\x52\x2e\x52\x33\x52\x39\x52\x44\x52\x4b\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x4f\x52\x5e\x52\x54\x52\x71\x52\x6a\x52\x73\x52\x74\x52\x69\x52\x7f\x52\x7d\x52\x8d\x52\x88\x52\x92\x52\x91\x52\x9c\x52\xa6\x52\xac\x52\xad\x52\xbc\x52\xb5\x52\xc1\x52\xc0\x52\xcd\x52\xdb\x52\xde\x52\xe3\x52\xe6\x52\xe0\x52\xf3\x52\xf5\x52\xf8\x52\xf9\x53\x00\x53\x06\x53\x07\x53\x08\x75\x38\x53\x0d\x53\x10\x53\x0f\x53\x15\x53\x1a\x53\x24\x53\x23\x53\x2f\x53\x31\x53\x33\x53\x38\x53\x40\x53\x45\x53\x46\x53\x49\x4e\x17\x53\x4d\x51\xd6\x82\x09\x53\x5e\x53\x69\x53\x6e\x53\x72\x53\x77\x53\x7b\x53\x82", /* 5780 */ "\x53\x93\x53\x96\x53\xa0\x53\xa6\x53\xa5\x53\xae\x53\xb0\x53\xb2\x53\xb6\x53\xc3\x7c\x12\x53\xdd\x53\xdf\x66\xfc\xfa\x0e\x71\xee\x53\xee\x53\xe8\x53\xed\x53\xfa\x54\x01\x54\x3d\x54\x40\x54\x2c\x54\x2d\x54\x3c\x54\x2e\x54\x36\x54\x29\x54\x1d\x54\x4e\x54\x8f\x54\x75\x54\x8e\x54\x5f\x54\x71\x54\x77\x54\x70\x54\x92\x54\x7b\x54\x80\x54\x9c\x54\x76\x54\x84\x54\x90\x54\x86\x54\x8a\x54\xc7\x54\xbc\x54\xaf\x54\xa2\x54\xb8\x54\xa5\x54\xac\x54\xc4\x54\xd8\x54\xc8\x54\xa8\x54\xab\x54\xc2\x54\xa4\x54\xa9\x54\xbe\x54\xe5\x54\xff\x54\xe6\x55\x0f\x55\x14\x54\xfd\x54\xee\x54\xed\x54\xe2\x55\x39\x55\x40\x55\x63\x55\x4c\x55\x2e\x55\x5c\x55\x45\x55\x56\x55\x57\x55\x38\x55\x33\x55\x5d\x55\x99\x55\x80\x55\x8a\x55\x9f\x55\x7b\x55\x7e\x55\x98\x55\x9e\x55\xae\x55\x7c\x55\x86\x55\x83\x55\xa9\x55\x87\x55\xa8\x55\xc5\x55\xdf\x55\xc4\x55\xdc\x55\xe4\x55\xd4\x55\xf9\x56\x14\x55\xf7\x56\x16\x55\xfe\x55\xfd\x56\x1b\x56\x4e\x56\x50\x56\x36\x56\x32\x56\x38\x56\x6b\x56\x64\x56\x86\x56\x2f\x56\x6c\x56\x6a\x71\xdf\x56\x94\x56\x8f\x56\x80\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8a\x56\xa0\x56\xa5\x56\xae\x56\xb6\x56\xb4\x56\xc8\x56\xc2\x56\xbc\x56\xc1\x56\xc3\x56\xc0\x56\xce\x56\xd3\x56\xd1\x56\xd7\x56\xee\x56\xf9\x56\xff\x57\x04\x57\x09\x57\x08\x57\x0d\x55\xc7\x57\x18\x57\x16\x57\x1c\x57\x26\x57\x38\x57\x4e\x57\x3b\x57\x59\x57\x40\x57\x4f\x57\x65\x57\x88\x57\x61\x57\x7f\x57\x89\x57\x93\x57\xa0\x57\xa4\x57\xb3\x57\xac\x57\xaa\x57\xc3\x57\xc6\x57\xc8\x57\xc0\x57\xd4\x57\xc7\x57\xd2\x57\xd3\x57\xd6\xfa\x0f\x58\x0a\x57\xe3\x58\x0b\x58\x19\x58\x21\x58\x4b\x58\x62\x6b\xc0", /* 5880 */ "\x58\x3d\x58\x52\xfa\x10\x58\x70\x58\x79\x58\x85\x58\x72\x58\x9f\x58\xab\x58\xb8\x58\x9e\x58\xae\x58\xb2\x58\xb9\x58\xba\x58\xc5\x58\xd3\x58\xd1\x58\xd7\x58\xd9\x58\xd8\x58\xde\x58\xdc\x58\xdf\x58\xe4\x58\xe5\x58\xef\x58\xf7\x58\xf9\x58\xfb\x58\xfc\x59\x02\x59\x0a\x59\x0b\x59\x10\x59\x1b\x68\xa6\x59\x25\x59\x2c\x59\x2d\x59\x32\x59\x38\x59\x3e\x59\x55\x59\x50\x59\x53\x59\x5a\x59\x58\x59\x5b\x59\x5d\x59\x63\x59\x62\x59\x60\x59\x67\x59\x6c\x59\x69\x59\x78\x59\x81\x59\x8d\x59\x9b\x59\x9d\x59\xa3\x59\xa4\x59\xb2\x59\xba\x59\xc6\x59\xe8\x59\xd9\x59\xda\x5a\x25\x5a\x1f\x5a\x11\x5a\x1c\x5a\x1a\x5a\x09\x5a\x40\x5a\x6c\x5a\x49\x5a\x35\x5a\x36\x5a\x62\x5a\x6a\x5a\x9a\x5a\xbc\x5a\xbe\x5a\xd0\x5a\xcb\x5a\xc2\x5a\xbd\x5a\xe3\x5a\xd7\x5a\xe6\x5a\xe9\x5a\xd6\x5a\xfa\x5a\xfb\x5b\x0c\x5b\x0b\x5b\x16\x5b\x32\x5b\x2a\x5b\x36\x5b\x3e\x5b\x43\x5b\x45\x5b\x40\x5b\x51\x5b\x55\x5b\x56\x65\x88\x5b\x5b\x5b\x65\x5b\x69\x5b\x70\x5b\x73\x5b\x75\x5b\x78\x5b\x7a\x5b\x80\x5b\x83\x5b\xa6\x5b\xb8\x5b\xc3\x5b\xc7\x5b\xc0\x5b\xc9\x75\x2f\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd0\x5b\xd8\x5b\xde\x5b\xec\x5b\xe4\x5b\xe2\x5b\xe5\x5b\xeb\x5b\xf0\x5b\xf3\x5b\xf6\x5c\x05\x5c\x07\x5c\x08\x5c\x0d\x5c\x13\x5c\x1e\x5c\x20\x5c\x22\x5c\x28\x5c\x38\x5c\x41\x5c\x46\x5c\x4e\x5c\x53\x5c\x50\x5b\x71\x5c\x6c\x5c\x6e\x5c\x76\x5c\x79\x5c\x8c\x5c\x94\x5c\xbe\x5c\xab\x5c\xbb\x5c\xb6\x5c\xb7\x5c\xa6\x5c\xba\x5c\xc5\x5c\xbc\x5c\xc7\x5c\xd9\x5c\xe9\x5c\xfd\x5c\xfa\x5c\xf5\x5c\xed\x5c\xea\x5d\x0b\x5d\x15\x5d\x1f\x5d\x1b\x5d\x11\x5d\x27\x5d\x22\x5d\x1a\x5d\x19\x5d\x18\x5d\x4c\x5d\x52\x5d\x53", /* 5980 */ "\xfa\x11\x5d\x5c\x5d\x4e\x5d\x4b\x5d\x42\x5d\x6c\x5d\x73\x5d\x6d\x5d\x76\x5d\x87\x5d\x84\x5d\x82\x5d\x8c\x5d\xa2\x5d\x9d\x5d\x90\x5d\xac\x5d\xae\x5d\xb7\x5d\xb8\x5d\xbc\x5d\xb9\x5d\xc9\x5d\xd0\x5d\xd3\x5d\xd2\x5d\xdb\x5d\xeb\x5d\xf5\x5e\x0b\x5e\x1a\x5e\x19\x5e\x11\x5e\x1b\x5e\x36\x5e\x44\x5e\x43\x5e\x40\x5e\x47\x5e\x4e\x5e\x57\x5e\x54\x5e\x62\x5e\x64\x5e\x75\x5e\x76\x5e\x7a\x5e\x7f\x5e\xa0\x5e\xc1\x5e\xc2\x5e\xc8\x5e\xd0\x5e\xcf\x5e\xdd\x5e\xda\x5e\xdb\x5e\xe2\x5e\xe1\x5e\xe8\x5e\xe9\x5e\xec\x5e\xf0\x5e\xf1\x5e\xf3\x5e\xf4\x5f\x03\x5f\x09\x5f\x0b\x5f\x11\x5f\x16\x5f\x21\x5f\x29\x5f\x2d\x5f\x2f\x5f\x34\x5f\x38\x5f\x41\x5f\x48\x5f\x4c\x5f\x4e\x5f\x51\x5f\x56\x5f\x57\x5f\x59\x5f\x5c\x5f\x5d\x5f\x61\x5f\x67\x5f\x73\x5f\x77\x5f\x83\x5f\x82\x5f\x7f\x5f\x8a\x5f\x88\x5f\x87\x5f\x91\x5f\x99\x5f\x9e\x5f\x98\x5f\xa0\x5f\xa8\x5f\xad\x5f\xb7\x5f\xbc\x5f\xd6\x5f\xfb\x5f\xe4\x5f\xf8\x5f\xf1\x5f\xf0\x5f\xdd\x5f\xde\x5f\xff\x60\x21\x60\x19\x60\x10\x60\x29\x60\x0e\x60\x31\x60\x1b\x60\x15\x60\x2b\x60\x26\x60\x0f\x60\x3a\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x5a\x60\x41\x60\x60\x60\x5d\x60\x6a\x60\x77\x60\x5f\x60\x4a\x60\x46\x60\x4d\x60\x63\x60\x43\x60\x64\x60\x6c\x60\x6b\x60\x59\x60\x85\x60\x81\x60\x83\x60\x9a\x60\x84\x60\x9b\x60\x8a\x60\x96\x60\x97\x60\x92\x60\xa7\x60\x8b\x60\xe1\x60\xb8\x60\xde\x60\xe0\x60\xd3\x60\xbd\x60\xc6\x60\xb5\x60\xd5\x60\xd8\x61\x20\x60\xf2\x61\x15\x61\x06\x60\xf6\x60\xf7\x61\x00\x60\xf4\x60\xfa\x61\x03\x61\x21\x60\xfb\x60\xf1\x61\x0d\x61\x0e\x61\x11\x61\x47\x61\x4d\x61\x37\x61\x28\x61\x27\x61\x3e\x61\x4a\x61\x30\x61\x3c", /* 5a80 */ "\x61\x2c\x61\x34\x61\x65\x61\x5d\x61\x3d\x61\x42\x61\x44\x61\x73\x61\x87\x61\x77\x61\x58\x61\x59\x61\x5a\x61\x6b\x61\x74\x61\x6f\x61\x71\x61\x5f\x61\x53\x61\x75\x61\x98\x61\x99\x61\x96\x61\xac\x61\x94\x61\x8a\x61\x91\x61\xab\x61\xae\x61\xcc\x61\xca\x61\xc9\x61\xc8\x61\xc3\x61\xc6\x61\xba\x61\xcb\x7f\x79\x61\xcd\x61\xe6\x61\xe3\x61\xf4\x61\xf7\x61\xf6\x61\xfd\x61\xfa\x61\xff\x61\xfc\x61\xfe\x62\x00\x62\x08\x62\x09\x62\x0d\x62\x13\x62\x14\x62\x1b\x62\x1e\x62\x21\x62\x2a\x62\x2e\x62\x30\x62\x32\x62\x33\x62\x41\x62\x4e\x62\x5e\x62\x63\x62\x5b\x62\x60\x62\x68\x62\x7c\x62\x82\x62\x89\x62\x92\x62\x7e\x62\x93\x62\x96\x62\x83\x62\x94\x62\xd7\x62\xd1\x62\xbb\x62\xcf\x62\xac\x62\xc6\x62\xc8\x62\xdc\x62\xd4\x62\xca\x62\xc2\x62\xa6\x62\xc7\x62\x9b\x62\xc9\x63\x0c\x62\xee\x62\xf1\x63\x27\x63\x02\x63\x08\x62\xef\x62\xf5\x62\xff\x63\x50\x63\x4d\x63\x3e\x63\x4f\x63\x96\x63\x8e\x63\x80\x63\xab\x63\x76\x63\xa3\x63\x8f\x63\x89\x63\x9f\x63\x6b\x63\x69\x63\xb5\x63\xbe\x63\xe9\x63\xc0\x63\xc6\x63\xf5\x63\xe3\x63\xc9\x63\xd2\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf6\x63\xc4\x64\x34\x64\x06\x64\x13\x64\x26\x64\x36\x64\x1c\x64\x17\x64\x28\x64\x0f\x64\x16\x64\x4e\x64\x67\x64\x6f\x64\x60\x64\x76\x64\xb9\x64\x9d\x64\xce\x64\x95\x64\xbb\x64\x93\x64\xa5\x64\xa9\x64\x88\x64\xbc\x64\xda\x64\xd2\x64\xc5\x64\xc7\x64\xd4\x64\xd8\x64\xc2\x64\xf1\x64\xe7\x64\xe0\x64\xe1\x64\xe3\x64\xef\x64\xf4\x64\xf6\x64\xf2\x64\xfa\x65\x00\x64\xfd\x65\x18\x65\x1c\x65\x1d\x65\x22\x65\x24\x65\x23\x65\x2b\x65\x2c\x65\x34\x65\x35\x65\x37\x65\x36\x65\x38\x75\x4b\x65\x48\x65\x4e\x65\x56", /* 5b80 */ "\x65\x4d\x65\x58\x65\x55\x65\x5d\x65\x72\x65\x78\x65\x82\x65\x83\x8b\x8a\x65\x9b\x65\x9f\x65\xab\x65\xb7\x65\xc3\x65\xc6\x65\xc1\x65\xc4\x65\xcc\x65\xd2\x65\xd9\x65\xe1\x65\xe0\x65\xf1\x66\x00\x66\x15\x66\x02\x67\x72\x66\x03\x65\xfb\x66\x09\x66\x3f\x66\x35\x66\x2e\x66\x1e\x66\x34\x66\x1c\x66\x24\x66\x44\x66\x49\x66\x65\x66\x57\x66\x5e\x66\x64\x66\x59\x66\x62\x66\x5d\xfa\x12\x66\x73\x66\x70\x66\x83\x66\x88\x66\x84\x66\x99\x66\x98\x66\xa0\x66\x9d\x66\xb2\x66\xc4\x66\xc1\x66\xbf\x66\xc9\x66\xbe\x66\xbc\x66\xb8\x66\xd6\x66\xda\x66\xe6\x66\xe9\x66\xf0\x66\xf5\x66\xf7\x66\xfa\x67\x0e\xf9\x29\x67\x16\x67\x1e\x7e\x22\x67\x26\x67\x27\x97\x38\x67\x2e\x67\x3f\x67\x36\x67\x37\x67\x38\x67\x46\x67\x5e\x67\x59\x67\x66\x67\x64\x67\x89\x67\x85\x67\x70\x67\xa9\x67\x6a\x67\x8b\x67\x73\x67\xa6\x67\xa1\x67\xbb\x67\xb7\x67\xef\x67\xb4\x67\xec\x67\xe9\x67\xb8\x67\xe7\x67\xe4\x68\x52\x67\xdd\x67\xe2\x67\xee\x67\xc0\x67\xce\x67\xb9\x68\x01\x67\xc6\x68\x1e\x68\x46\x68\x4d\x68\x40\x68\x44\x68\x32\x68\x4e\x68\x63\x68\x59\x68\x8e\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x77\x68\x7f\x68\x9f\x68\x7e\x68\x8f\x68\xad\x68\x94\x68\x83\x68\xbc\x68\xb9\x68\x74\x68\xb5\x68\xba\x69\x0f\x69\x01\x68\xca\x69\x08\x68\xd8\x69\x26\x68\xe1\x69\x0c\x68\xcd\x68\xd4\x68\xe7\x68\xd5\x69\x12\x68\xef\x69\x04\x68\xe3\x68\xe0\x68\xcf\x68\xc6\x69\x22\x69\x2a\x69\x21\x69\x23\x69\x28\xfa\x13\x69\x79\x69\x77\x69\x36\x69\x78\x69\x54\x69\x6a\x69\x74\x69\x68\x69\x3d\x69\x59\x69\x30\x69\x5e\x69\x5d\x69\x7e\x69\x81\x69\xb2\x69\xbf\xfa\x14\x69\x98\x69\xc1\x69\xd3\x69\xbe\x69\xce\x5b\xe8\x69\xca", /* 5c80 */ "\x69\xb1\x69\xdd\x69\xbb\x69\xc3\x69\xa0\x69\x9c\x69\x95\x69\xde\x6a\x2e\x69\xe8\x6a\x02\x6a\x1b\x69\xff\x69\xf9\x69\xf2\x69\xe7\x69\xe2\x6a\x1e\x69\xed\x6a\x14\x69\xeb\x6a\x0a\x6a\x22\x6a\x12\x6a\x23\x6a\x13\x6a\x30\x6a\x6b\x6a\x44\x6a\x0c\x6a\xa0\x6a\x36\x6a\x78\x6a\x47\x6a\x62\x6a\x59\x6a\x66\x6a\x48\x6a\x46\x6a\x38\x6a\x72\x6a\x73\x6a\x90\x6a\x8d\x6a\x84\x6a\xa2\x6a\xa3\x6a\x7e\x6a\x97\x6a\xac\x6a\xaa\x6a\xbb\x6a\xc2\x6a\xb8\x6a\xb3\x6a\xc1\x6a\xde\x6a\xe2\x6a\xd1\x6a\xda\x6a\xe4\x86\x16\x86\x17\x6a\xea\x6b\x05\x6b\x0a\x6a\xfa\x6b\x12\x6b\x16\x6b\x1f\x6b\x38\x6b\x37\x6b\x39\x76\xdc\x98\xee\x6b\x47\x6b\x43\x6b\x49\x6b\x50\x6b\x59\x6b\x54\x6b\x5b\x6b\x5f\x6b\x61\x6b\x78\x6b\x79\x6b\x7f\x6b\x80\x6b\x84\x6b\x83\x6b\x8d\x6b\x98\x6b\x95\x6b\x9e\x6b\xa4\x6b\xaa\x6b\xab\x6b\xaf\x6b\xb1\x6b\xb2\x6b\xb3\x6b\xb7\x6b\xbc\x6b\xc6\x6b\xcb\x6b\xd3\x6b\xd6\x6b\xdf\x6b\xec\x6b\xeb\x6b\xf3\x6b\xef\x6c\x08\x6c\x13\x6c\x14\x6c\x1b\x6c\x24\x6c\x23\x6c\x3f\x6c\x5e\x6c\x55\x6c\x5c\x6c\x62\x6c\x82\x6c\x8d\x6c\x86\x6c\x6f\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9a\x6c\x81\x6c\x9b\x6c\x7e\x6c\x68\x6c\x73\x6c\x92\x6c\x90\x6c\xc4\x6c\xf1\x6c\xbd\x6c\xc5\x6c\xae\x6c\xda\x6c\xdd\x6c\xb1\x6c\xbe\x6c\xba\x6c\xdb\x6c\xef\x6c\xd9\x6c\xea\x6d\x1f\x6d\x04\x6d\x36\x6d\x2b\x6d\x3d\x6d\x33\x6d\x12\x6d\x0c\x6d\x63\x6d\x87\x6d\x93\x6d\x6f\x6d\x64\x6d\x5a\x6d\x79\x6d\x59\x6d\x8e\x6d\x95\x6d\x9b\x6d\x85\x6d\x96\x6d\xf9\x6e\x0a\x6e\x2e\x6d\xb5\x6d\xe6\x6d\xc7\x6d\xac\x6d\xb8\x6d\xcf\x6d\xc6\x6d\xec\x6d\xde\x6d\xcc\x6d\xe8\x6d\xf8\x6d\xd2\x6d\xc5\x6d\xfa\x6d\xd9\x6d\xf2", /* 5d80 */ "\x6d\xfc\x6d\xe4\x6d\xd5\x6d\xea\x6d\xee\x6e\x2d\x6e\x6e\x6e\x19\x6e\x72\x6e\x5f\x6e\x39\x6e\x3e\x6e\x23\x6e\x6b\x6e\x5c\x6e\x2b\x6e\x76\x6e\x4d\x6e\x1f\x6e\x27\x6e\x43\x6e\x3c\x6e\x3a\x6e\x4e\x6e\x24\x6e\x1d\x6e\x38\x6e\x82\x6e\xaa\x6e\x98\x6e\xb7\x6e\xbd\x6e\xaf\x6e\xc4\x6e\xb2\x6e\xd4\x6e\xd5\x6e\x8f\x6e\xbf\x6e\xc2\x6e\x9f\x6f\x41\x6f\x45\x6e\xec\x6e\xf8\x6e\xfe\x6f\x3f\x6e\xf2\x6f\x31\x6e\xef\x6f\x32\x6e\xcc\x6e\xff\x6f\x3e\x6f\x13\x6e\xf7\x6f\x86\x6f\x7a\x6f\x78\x6f\x80\x6f\x6f\x6f\x5b\x6f\x6d\x6f\x74\x6f\x82\x6f\x88\x6f\x7c\x6f\x58\x6f\xc6\x6f\x8e\x6f\x91\x6f\x66\x6f\xb3\x6f\xa3\x6f\xb5\x6f\xa1\x6f\xb9\x6f\xdb\x6f\xaa\x6f\xc2\x6f\xdf\x6f\xd5\x6f\xec\x6f\xd8\x6f\xd4\x6f\xf5\x6f\xee\x70\x05\x70\x07\x70\x09\x70\x0b\x6f\xfa\x70\x11\x70\x01\x70\x0f\x70\x1b\x70\x1a\x70\x1f\x6f\xf3\x70\x28\x70\x18\x70\x30\x70\x3e\x70\x32\x70\x51\x70\x63\x70\x85\x70\x99\x70\xaf\x70\xab\x70\xac\x70\xb8\x70\xae\x70\xdf\x70\xcb\x70\xd9\x71\x09\x71\x0f\x71\x04\x70\xf1\x70\xfd\x71\x1c\x71\x19\x71\x5c\x71\x46\x71\x47\x71\x66\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x62\x71\x4c\x71\x56\x71\x6c\x71\x88\x71\x8f\x71\x84\x71\x95\xfa\x15\x71\xac\x71\xc1\x71\xb9\x71\xbe\x71\xd2\x71\xe7\x71\xc9\x71\xd4\x71\xd7\x71\xce\x71\xf5\x71\xe0\x71\xec\x71\xfb\x71\xfc\x71\xf9\x71\xfe\x71\xff\x72\x0d\x72\x10\x72\x28\x72\x2d\x72\x2c\x72\x30\x72\x32\x72\x3b\x72\x3c\x72\x3f\x72\x40\x72\x46\x72\x4b\x72\x58\x72\x74\x72\x7e\x72\x81\x72\x87\x72\x82\x72\x92\x72\x96\x72\xa2\x72\xa7\x72\xb1\x72\xb2\x72\xbe\x72\xc3\x72\xc6\x72\xc4\x72\xb9\x72\xce\x72\xd2\x72\xe2\x72\xe0\x72\xe1\x72\xf9", /* 5e80 */ "\x72\xf7\x73\x17\x73\x0a\x73\x1c\x73\x16\x73\x1d\x73\x24\x73\x34\x73\x29\x73\x2f\xfa\x16\x73\x25\x73\x3e\x73\x4f\x73\x4e\x73\x57\x9e\xd8\x73\x6a\x73\x68\x73\x70\x73\x77\x73\x78\x73\x75\x73\x7b\x73\xc8\x73\xbd\x73\xb3\x73\xce\x73\xbb\x73\xc0\x73\xc9\x73\xd6\x73\xe5\x73\xe3\x73\xd2\x73\xee\x73\xf1\x73\xde\x73\xf8\x74\x07\x73\xf5\x74\x05\x74\x26\x74\x2a\x74\x25\x74\x29\x74\x2e\x74\x32\x74\x3a\x74\x55\x74\x3f\x74\x5f\x74\x59\x74\x41\x74\x5c\x74\x69\x74\x70\x74\x63\x74\x6a\x74\x64\x74\x62\x74\x89\x74\x6f\x74\x7e\x74\x9f\x74\x9e\x74\xa2\x74\xa7\x74\xca\x74\xcf\x74\xd4\x74\xe0\x74\xe3\x74\xe7\x74\xe9\x74\xee\x74\xf0\x74\xf2\x74\xf1\x74\xf7\x74\xf8\x75\x01\x75\x04\x75\x03\x75\x05\x75\x0d\x75\x0c\x75\x0e\x75\x13\x75\x1e\x75\x26\x75\x2c\x75\x3c\x75\x44\x75\x4d\x75\x4a\x75\x49\x75\x46\x75\x5b\x75\x5a\x75\x64\x75\x67\x75\x6b\x75\x6f\x75\x74\x75\x6d\x75\x78\x75\x76\x75\x82\x75\x86\x75\x87\x75\x8a\x75\x89\x75\x94\x75\x9a\x75\x9d\x75\xa5\x75\xa3\x75\xc2\x75\xb3\x75\xc3\x75\xb5\x75\xbd\x75\xb8\x75\xbc\x75\xb1\x75\xcd\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xca\x75\xd2\x75\xd9\x75\xe3\x75\xde\x75\xfe\x75\xff\x75\xfc\x76\x01\x75\xf0\x75\xfa\x75\xf2\x75\xf3\x76\x0b\x76\x09\x76\x1f\x76\x27\x76\x20\x76\x21\x76\x22\x76\x24\x76\x34\x76\x30\x76\x3b\x76\x47\x76\x48\x76\x58\x76\x46\x76\x5c\x76\x61\x76\x62\x76\x68\x76\x69\x76\x67\x76\x6a\x76\x6c\x76\x70\x76\x72\x76\x76\x76\x7c\x76\x82\x76\x80\x76\x83\x76\x88\x76\x8b\x76\x99\x76\x9a\x76\x9c\x76\x9e\x76\x9b\x76\xa6\x76\xb0\x76\xb4\x76\xb8\x76\xb9\x76\xba\x76\xc2\xfa\x17\x76\xcd\x76\xd6\x76\xd2\x76\xde\x76\xe1", /* 5f80 */ "\x76\xe5\x76\xea\x86\x2f\x76\xfb\x77\x08\x77\x07\x77\x04\x77\x24\x77\x29\x77\x25\x77\x26\x77\x1b\x77\x37\x77\x38\x77\x46\x77\x47\x77\x5a\x77\x68\x77\x6b\x77\x5b\x77\x65\x77\x7f\x77\x7e\x77\x79\x77\x8e\x77\x8b\x77\x91\x77\xa0\x77\x9e\x77\xb0\x77\xb6\x77\xb9\x77\xbf\x77\xbc\x77\xbd\x77\xbb\x77\xc7\x77\xcd\x77\xda\x77\xdc\x77\xe3\x77\xee\x52\xaf\x77\xfc\x78\x0c\x78\x12\x78\x21\x78\x3f\x78\x20\x78\x45\x78\x4e\x78\x64\x78\x74\x78\x8e\x78\x7a\x78\x86\x78\x9a\x78\x7c\x78\x8c\x78\xa3\x78\xb5\x78\xaa\x78\xaf\x78\xd1\x78\xc6\x78\xcb\x78\xd4\x78\xbe\x78\xbc\x78\xc5\x78\xca\x78\xec\x78\xe7\x78\xda\x78\xfd\x78\xf4\x79\x07\x79\x11\x79\x19\x79\x2c\x79\x2b\x79\x30\xfa\x18\x79\x40\x79\x60\xfa\x19\x79\x5f\x79\x5a\x79\x55\xfa\x1a\x79\x7f\x79\x8a\x79\x94\xfa\x1b\x79\x9d\x79\x9b\x79\xaa\x79\xb3\x79\xba\x79\xc9\x79\xd5\x79\xe7\x79\xec\x79\xe3\x7a\x08\x7a\x0d\x7a\x18\x7a\x19\x7a\x1f\x7a\x31\x7a\x3e\x7a\x37\x7a\x3b\x7a\x43\x7a\x57\x7a\x49\x7a\x62\x7a\x61\x7a\x69\x9f\x9d\x7a\x70\x7a\x79\x7a\x7d\x7a\x88\x7a\x95\x7a\x98\x7a\x96\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x97\x7a\xa9\x7a\xb0\x7a\xb6\x90\x83\x7a\xc3\x7a\xbf\x7a\xc5\x7a\xc4\x7a\xc7\x7a\xca\x7a\xcd\x7a\xcf\x7a\xd2\x7a\xd1\x7a\xd5\x7a\xd3\x7a\xd9\x7a\xda\x7a\xdd\x7a\xe1\x7a\xe2\x7a\xe6\x7a\xe7\xfa\x1c\x7a\xeb\x7a\xed\x7a\xf0\x7a\xf8\x7b\x02\x7b\x0f\x7b\x0b\x7b\x0a\x7b\x06\x7b\x33\x7b\x36\x7b\x19\x7b\x1e\x7b\x35\x7b\x28\x7b\x50\x7b\x4d\x7b\x4c\x7b\x45\x7b\x5d\x7b\x75\x7b\x7a\x7b\x74\x7b\x70\x7b\x71\x7b\x6e\x7b\x9d\x7b\x98\x7b\x9f\x7b\x8d\x7b\x9c\x7b\x9a\x7b\x92\x7b\x8f\x7b\x99\x7b\xcf\x7b\xcb\x7b\xcc", /* 6080 */ "\x7b\xb4\x7b\xc6\x7b\x9e\x7b\xdd\x7b\xe9\x7b\xe6\x7b\xf7\x7b\xe5\x7c\x14\x7c\x00\x7c\x13\x7c\x07\x7b\xf3\x7c\x0d\x7b\xf6\x7c\x23\x7c\x27\x7c\x2a\x7c\x1f\x7c\x37\x7c\x2b\x7c\x3d\x7c\x40\x7c\x4c\x7c\x43\x7c\x56\x7c\x50\x7c\x58\x7c\x5f\x7c\x65\x7c\x6c\x7c\x75\x7c\x83\x7c\x90\x7c\xa4\x7c\xa2\x7c\xab\x7c\xa1\x7c\xad\x7c\xa8\x7c\xb3\x7c\xb2\x7c\xb1\x7c\xae\x7c\xb9\xfa\x1d\x7c\xbd\x7c\xc5\x7c\xc2\x7c\xd2\x7c\xe2\x7c\xd8\x7c\xdc\x7c\xef\x7c\xf2\x7c\xf4\x7c\xf6\x7d\x06\x7d\x02\x7d\x1c\x7d\x15\x7d\x0a\x7d\x45\x7d\x4b\x7d\x2e\x7d\x32\x7d\x3f\x7d\x35\x7d\x48\x7d\x46\x7d\x5c\x7d\x73\x7d\x56\x7d\x4e\x7d\x68\x7d\x6e\x7d\x4f\x7d\x63\x7d\x93\x7d\x89\x7d\x5b\x7d\xae\x7d\xa3\x7d\xb5\x7d\xb7\x7d\xc7\x7d\xbd\x7d\xab\x7d\xa2\x7d\xaf\x7d\xa0\x7d\xb8\x7d\x9f\x7d\xb0\x7d\xd5\x7d\xd8\x7d\xdd\x7d\xd6\x7d\xe4\x7d\xde\x7d\xfb\x7e\x0b\x7d\xf2\x7d\xe1\x7d\xdc\x7e\x05\x7e\x0a\x7e\x21\x7e\x12\x7e\x1f\x7e\x09\x7e\x3a\x7e\x46\x7e\x66\x7e\x31\x7e\x3d\x7e\x35\x7e\x3b\x7e\x39\x7e\x43\x7e\x37\x7e\x32\x7e\x5d\x7e\x56\x7e\x5e\x7e\x52\x7e\x59\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x5a\x7e\x67\x7e\x79\x7e\x6a\x7e\x69\x7e\x7c\x7e\x7b\x7e\x7d\x8f\xae\x7e\x7f\x7e\x83\x7e\x89\x7e\x8e\x7e\x8c\x7e\x92\x7e\x93\x7e\x94\x7e\x96\x7e\x9b\x7f\x38\x7f\x3a\x7f\x45\x7f\x47\x7f\x4c\x7f\x4e\x7f\x51\x7f\x55\x7f\x54\x7f\x58\x7f\x5f\x7f\x60\x7f\x68\x7f\x67\x7f\x69\x7f\x78\x7f\x82\x7f\x86\x7f\x83\x7f\x87\x7f\x88\x7f\x8c\x7f\x94\x7f\x9e\x7f\x9d\x7f\x9a\x7f\xa1\x7f\xa3\x7f\xaf\x7f\xae\x7f\xb2\x7f\xb9\x7f\xb6\x7f\xb8\x8b\x71\xfa\x1e\x7f\xc5\x7f\xc6\x7f\xca\x7f\xd5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xf3", /* 6180 */ "\x7f\xf9\x80\x04\x80\x0b\x80\x12\x80\x19\x80\x1c\x80\x21\x80\x28\x80\x3f\x80\x3b\x80\x4a\x80\x46\x80\x52\x80\x58\x80\x5f\x80\x62\x80\x68\x80\x73\x80\x72\x80\x70\x80\x76\x80\x79\x80\x7d\x80\x7f\x80\x84\x80\x85\x80\x93\x80\x9a\x80\xad\x51\x90\x80\xac\x80\xdb\x80\xe5\x80\xd9\x80\xdd\x80\xc4\x80\xda\x81\x09\x80\xef\x80\xf1\x81\x1b\x81\x23\x81\x2f\x81\x4b\x81\x46\x81\x3e\x81\x53\x81\x51\x81\x41\x81\x71\x81\x6e\x81\x65\x81\x5f\x81\x66\x81\x74\x81\x83\x81\x88\x81\x8a\x81\x80\x81\x82\x81\xa0\x81\x95\x81\xa3\x81\x93\x81\xb5\x81\xa4\x81\xa9\x81\xb8\x81\xb0\x81\xc8\x81\xbe\x81\xbd\x81\xc0\x81\xc2\x81\xba\x81\xc9\x81\xcd\x81\xd1\x81\xd8\x81\xd9\x81\xda\x81\xdf\x81\xe0\x81\xfa\x81\xfb\x81\xfe\x82\x01\x82\x02\x82\x05\x82\x0d\x82\x10\x82\x12\x82\x16\x82\x29\x82\x2b\x82\x2e\x82\x38\x82\x33\x82\x40\x82\x59\x82\x5a\x82\x5d\x82\x5f\x82\x64\x82\x62\x82\x68\x82\x6a\x82\x6b\x82\x71\x82\x77\x82\x7e\x82\x8d\x82\x92\x82\xab\x82\x9f\x82\xbb\x82\xac\x82\xe1\x82\xe3\x82\xdf\x83\x01\x82\xd2\x82\xf4\x82\xf3\x83\x03\x82\xfb\x82\xf9\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\xde\x83\x06\x82\xdc\x82\xfa\x83\x09\x82\xd9\x83\x35\x83\x62\x83\x34\x83\x16\x83\x31\x83\x40\x83\x39\x83\x50\x83\x45\x83\x2f\x83\x2b\x83\x18\x83\x9a\x83\xaa\x83\x9f\x83\xa2\x83\x96\x83\x23\x83\x8e\x83\x75\x83\x7f\x83\x8a\x83\x7c\x83\xb5\x83\x73\x83\x93\x83\xa0\x83\x85\x83\x89\x83\xa8\x83\xf4\x84\x13\x83\xc7\x83\xce\x83\xf7\x83\xfd\x84\x03\x83\xd8\x84\x0b\x83\xc1\x84\x07\x83\xe0\x83\xf2\x84\x0d\x84\x20\x83\xf6\x83\xbd\x83\xfb\x84\x2a\x84\x62\x84\x3c\x84\x84\x84\x77\x84\x6b\x84\x79\x84\x48\x84\x6e", /* 6280 */ "\x84\x82\x84\x69\x84\x46\x84\x6f\x84\x38\x84\x35\x84\xca\x84\xb9\x84\xbf\x84\x9f\x84\xb4\x84\xcd\x84\xbb\x84\xda\x84\xd0\x84\xc1\x84\xad\x84\xc6\x84\xd6\x84\xa1\x84\xd9\x84\xff\x84\xf4\x85\x17\x85\x18\x85\x2c\x85\x1f\x85\x15\x85\x14\x85\x06\x85\x53\x85\x5a\x85\x40\x85\x59\x85\x63\x85\x58\x85\x48\x85\x41\x85\x4a\x85\x4b\x85\x6b\x85\x55\x85\x80\x85\xa4\x85\x88\x85\x91\x85\x8a\x85\xa8\x85\x6d\x85\x94\x85\x9b\x85\xae\x85\x87\x85\x9c\x85\x77\x85\x7e\x85\x90\xfa\x1f\x82\x0a\x85\xb0\x85\xc9\x85\xba\x85\xcf\x85\xb9\x85\xd0\x85\xd5\x85\xdd\x85\xe5\x85\xdc\x85\xf9\x86\x0a\x86\x13\x86\x0b\x85\xfe\x86\x22\x86\x1a\x86\x30\x86\x3f\xfa\x20\x86\x4d\x4e\x55\x86\x55\x86\x5f\x86\x67\x86\x71\x86\x93\x86\xa3\x86\xa9\x86\x8b\x86\xaa\x86\x8c\x86\xb6\x86\xaf\x86\xc4\x86\xc6\x86\xb0\x86\xc9\x86\xce\xfa\x21\x86\xab\x86\xd4\x86\xde\x86\xe9\x86\xec\x86\xdf\x86\xdb\x87\x12\x87\x06\x87\x08\x87\x00\x87\x03\x86\xfb\x87\x11\x87\x09\x87\x0d\x86\xf9\x87\x0a\x87\x34\x87\x3f\x87\x3b\x87\x25\x87\x29\x87\x1a\x87\x5f\x87\x78\x87\x4c\x87\x4e\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x74\x87\x57\x87\x68\x87\x82\x87\x6a\x87\x60\x87\x6e\x87\x59\x87\x53\x87\x63\x87\x7f\x87\xa2\x87\xc6\x87\x9f\x87\xaf\x87\xcb\x87\xbd\x87\xc0\x87\xd0\x96\xd6\x87\xab\x87\xc4\x87\xb3\x87\xd2\x87\xbb\x87\xef\x87\xf2\x87\xe0\x88\x0e\x88\x07\x88\x0f\x88\x16\x88\x0d\x87\xfe\x87\xf6\x87\xf7\x88\x11\x88\x15\x88\x22\x88\x21\x88\x27\x88\x31\x88\x36\x88\x39\x88\x3b\x88\x42\x88\x44\x88\x4d\x88\x52\x88\x59\x88\x5e\x88\x62\x88\x6b\x88\x81\x88\x7e\x88\x75\x88\x7d\x88\x72\x88\x82\x88\x9e\x88\x97\x88\x92\x88\xae", /* 6380 */ "\x88\x99\x88\xa2\x88\x8d\x88\xa4\x88\xbf\x88\xb5\x88\xb1\x88\xc3\x88\xc4\x88\xd4\x88\xd8\x88\xd9\x88\xdd\x88\xf9\x89\x02\x88\xfc\x88\xf5\x88\xe8\x88\xf2\x89\x04\x89\x0c\x89\x2a\x89\x1d\x89\x0a\x89\x13\x89\x1e\x89\x25\x89\x2b\x89\x41\x89\x3b\x89\x36\x89\x43\x89\x38\x89\x4d\x89\x4c\x89\x60\x89\x5e\x89\x66\x89\x6a\x89\x64\x89\x6d\x89\x6f\x89\x74\x89\x77\x89\x7e\x89\x83\x89\x88\x89\x8a\x89\x93\x89\x98\x89\xa1\x89\xa9\x89\xa6\x89\xac\x89\xaf\x89\xb2\x89\xba\x89\xbf\x89\xbd\x89\xc0\x89\xda\x89\xdd\x89\xe7\x89\xf4\x89\xf8\x8a\x03\x8a\x16\x8a\x10\x8a\x0c\x8a\x12\x8a\x1b\x8a\x1d\x8a\x25\x8a\x36\x8a\x41\x8a\x37\x8a\x5b\x8a\x52\x8a\x46\x8a\x48\x8a\x7c\x8a\x6d\x8a\x6c\x8a\x62\x8a\x79\x8a\x85\x8a\x82\x8a\x84\x8a\xa8\x8a\xa1\x8a\x91\x8a\xa5\x8a\xa6\x8a\x9a\x8a\xa3\x8a\xa7\x8a\xcc\x8a\xbe\x8a\xcd\x8a\xc2\x8a\xda\x8a\xf3\x8a\xe7\x8a\xe4\x8a\xf1\x8b\x14\x8a\xe0\x8a\xe2\x8a\xe1\x8a\xdf\xfa\x22\x8a\xf6\x8a\xf7\x8a\xde\x8a\xdb\x8b\x0c\x8b\x07\x8b\x1a\x8b\x16\x8b\x10\x8b\x17\x8b\x20\x8b\x33\x8b\x41\x97\xab\x8b\x26\x8b\x2b\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x3e\x8b\x4c\x8b\x4f\x8b\x4e\x8b\x53\x8b\x49\x8b\x56\x8b\x5b\x8b\x5a\x8b\x74\x8b\x6b\x8b\x5f\x8b\x6c\x8b\x6f\x8b\x7d\x8b\x7f\x8b\x80\x8b\x8c\x8b\x8e\x8b\x99\x8b\x92\x8b\x93\x8b\x96\x8b\x9a\x8c\x3a\x8c\x41\x8c\x3f\x8c\x48\x8c\x4c\x8c\x4e\x8c\x50\x8c\x55\x8c\x62\x8c\x6c\x8c\x78\x8c\x7a\x8c\x7c\x8c\x82\x8c\x89\x8c\x85\x8c\x8a\x8c\x8d\x8c\x8e\x8c\x98\x8c\x94\x62\x1d\x8c\xad\x8c\xaa\x8c\xae\x8c\xbd\x8c\xb2\x8c\xb3\x8c\xc1\x8c\xb6\x8c\xc8\x8c\xce\x8c\xcd\x8c\xe3\x8c\xda\x8c\xf0\x8c\xf4\x8c\xfd\x8c\xfa", /* 6480 */ "\x8c\xfb\x8d\x07\x8d\x0a\x8d\x0f\x8d\x0d\x8d\x12\x8d\x10\x8d\x13\x8d\x14\x8d\x16\x8d\x67\x8d\x6d\x8d\x71\x8d\x76\xfa\x23\x8d\x81\x8d\xc2\x8d\xbe\x8d\xba\x8d\xcf\x8d\xda\x8d\xd6\x8d\xcc\x8d\xdb\x8d\xcb\x8d\xea\x8d\xeb\x8d\xdf\x8d\xe3\x8d\xfc\x8e\x08\x8d\xff\x8e\x09\x8e\x1d\x8e\x1e\x8e\x10\x8e\x1f\x8e\x42\x8e\x35\x8e\x30\x8e\x34\x8e\x4a\x8e\x47\x8e\x49\x8e\x4c\x8e\x50\x8e\x48\x8e\x59\x8e\x64\x8e\x60\x8e\x55\x8e\x63\x8e\x76\x8e\x72\x8e\x87\x8e\x7c\x8e\x81\x8e\x85\x8e\x84\x8e\x8b\x8e\x8a\x8e\x93\x8e\x91\x8e\x94\x8e\x99\x8e\xa1\x8e\xaa\x8e\xb1\x8e\xbe\x8e\xc6\x8e\xc5\x8e\xc8\x8e\xcb\x8e\xcf\x8e\xdb\x8e\xe3\x8e\xfc\x8e\xfb\x8e\xeb\x8e\xfe\x8f\x0a\x8f\x0c\x8f\x05\x8f\x15\x8f\x12\x8f\x13\x8f\x1c\x8f\x19\x8f\x1f\x8f\x26\x8f\x33\x8f\x3b\x8f\x39\x8f\x45\x8f\x42\x8f\x3e\x8f\x49\x8f\x46\x8f\x4c\x8f\x4e\x8f\x57\x8f\x5c\x8f\x62\x8f\x63\x8f\x64\x8f\x9c\x8f\x9f\x8f\xa3\x8f\xa8\x8f\xa7\x8f\xad\x8f\xaf\x8f\xb7\xfa\x24\x8f\xda\x8f\xe5\x8f\xe2\x8f\xef\x8f\xe9\x8f\xf4\x90\x05\x8f\xf9\x8f\xf8\x90\x11\x90\x15\x90\x0e\x90\x21\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x90\x1e\x90\x16\x90\x0b\x90\x27\x90\x36\x90\x39\x90\x4f\xfa\x25\x90\x50\x90\x51\x90\x52\x90\x49\x90\x3e\x90\x56\x90\x58\x90\x5e\x90\x68\x90\x67\x90\x6f\x90\x76\x96\xa8\x90\x72\x90\x82\x90\x7d\x90\x89\x90\x80\x90\x8f\x62\x48\x90\xaf\x90\xb1\x90\xb5\x90\xe2\x90\xe4\x90\xdb\x90\xde\x91\x02\xfa\x26\x91\x15\x91\x12\x91\x19\x91\x32\x91\x27\x91\x30\x91\x4a\x91\x56\x91\x58\x91\x63\x91\x65\x91\x69\x91\x73\x91\x72\x91\x8b\x91\x89\x91\x82\x91\xa2\x91\xab\x91\xaf\x91\xaa\x91\xb5\x91\xb4\x91\xba\x91\xc0", /* 6580 */ "\x91\xc1\x91\xcb\x91\xd0\x91\xda\x91\xdb\x91\xd7\x91\xde\x91\xd6\x91\xdf\x91\xe1\x91\xed\x91\xf5\x91\xee\x91\xe4\x91\xf6\x91\xe5\x92\x06\x92\x1e\x91\xff\x92\x10\x92\x14\x92\x0a\x92\x2c\x92\x15\x92\x29\x92\x57\x92\x45\x92\x3a\x92\x49\x92\x64\x92\x40\x92\x3c\x92\x48\x92\x4e\x92\x50\x92\x59\x92\x3f\x92\x51\x92\x39\x92\x4b\x92\x67\x92\x5a\x92\x9c\x92\xa7\x92\x77\x92\x78\x92\x96\x92\x93\x92\x9b\x92\x95\x92\xe9\x92\xcf\x92\xe7\x92\xd7\x92\xd9\x92\xd0\xfa\x27\x92\xd5\x92\xb9\x92\xb7\x92\xe0\x92\xd3\x93\x3a\x93\x35\x93\x0f\x93\x25\x92\xfa\x93\x21\x93\x44\x92\xfb\xfa\x28\x93\x19\x93\x1e\x92\xff\x93\x22\x93\x1a\x93\x1d\x93\x23\x93\x02\x93\x3b\x93\x70\x93\x60\x93\x7c\x93\x6e\x93\x56\x93\x57\x93\xb9\x93\xb0\x93\xa4\x93\xad\x93\x94\x93\xc8\x93\xd6\x93\xc6\x93\xd7\x93\xe8\x93\xe5\x93\xd8\x93\xc3\x93\xdd\x93\xde\x93\xd0\x93\xe4\x94\x1a\x93\xf8\x94\x14\x94\x13\x94\x21\x94\x03\x94\x07\x94\x36\x94\x2b\x94\x31\x94\x3a\x94\x41\x94\x52\x94\x45\x94\x44\x94\x48\x94\x5b\x94\x5a\x94\x60\x94\x62\x94\x5e\x94\x6a\x94\x75\x94\x70\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x77\x94\x7f\x94\x7d\x94\x7c\x94\x7e\x94\x81\x95\x82\x95\x87\x95\x8a\x95\x92\x95\x94\x95\x96\x95\x98\x95\x99\x95\xa0\x95\xa8\x95\xa7\x95\xad\x95\xbc\x95\xbb\x95\xb9\x95\xbe\x95\xca\x6f\xf6\x95\xc3\x95\xcd\x95\xcc\x95\xd5\x95\xd4\x95\xd6\x95\xdc\x95\xe1\x95\xe5\x95\xe2\x96\x21\x96\x28\x96\x2e\x96\x2f\x96\x42\x96\x4f\x96\x4c\x96\x4b\x96\x5c\x96\x5d\x96\x5f\x96\x66\x96\x77\x96\x72\x96\x6c\x96\x8d\x96\x8b\xf9\xdc\x96\x98\x96\x95\x96\x97\xfa\x29\x96\x9d\x96\xa7\x96\xaa\x96\xb1\x96\xb2\x96\xb0\x96\xaf", /* 6680 */ "\x96\xb4\x96\xb6\x96\xb8\x96\xb9\x96\xce\x96\xcb\x96\xd5\x96\xdc\x96\xd9\x96\xf9\x97\x04\x97\x06\x97\x08\x97\x19\x97\x0d\x97\x13\x97\x0e\x97\x11\x97\x0f\x97\x16\x97\x24\x97\x2a\x97\x30\x97\x33\x97\x39\x97\x3b\x97\x3d\x97\x3e\x97\x46\x97\x44\x97\x43\x97\x48\x97\x42\x97\x49\x97\x4d\x97\x4f\x97\x51\x97\x55\x97\x5c\x97\x60\x97\x64\x97\x66\x97\x68\x97\x6d\x97\x79\x97\x85\x97\x7c\x97\x81\x97\x7a\x97\x8b\x97\x8f\x97\x90\x97\x9c\x97\xa8\x97\xa6\x97\xa3\x97\xb3\x97\xb4\x97\xc3\x97\xc6\x97\xc8\x97\xcb\x97\xdc\x97\xed\x97\xf2\x7a\xdf\x97\xf5\x98\x0f\x98\x1a\x98\x24\x98\x21\x98\x37\x98\x3d\x98\x4f\x98\x4b\x98\x57\x98\x65\x98\x6b\x98\x6f\x98\x70\x98\x71\x98\x74\x98\x73\x98\xaa\x98\xaf\x98\xb1\x98\xb6\x98\xc4\x98\xc3\x98\xc6\x98\xdc\x98\xed\x98\xe9\xfa\x2a\x98\xeb\xfa\x2b\x99\x03\x99\x1d\x99\x12\x99\x14\x99\x18\x99\x27\xfa\x2c\x99\x21\x99\x1e\x99\x24\x99\x20\x99\x2c\x99\x2e\x99\x3d\x99\x3e\x99\x42\x99\x49\x99\x45\x99\x50\x99\x4b\x99\x51\x99\x4c\x99\x55\x99\x97\x99\x98\x99\x9e\x99\xa5\x99\xad\x99\xae\x99\xbc\x99\xdf\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xdb\x99\xdd\x99\xd8\x99\xd1\x99\xed\x99\xee\x99\xe2\x99\xf1\x99\xf2\x99\xfb\x99\xf8\x9a\x01\x9a\x0f\x9a\x05\x9a\x19\x9a\x2b\x9a\x37\x9a\x40\x9a\x45\x9a\x42\x9a\x43\x9a\x3e\x9a\x55\x9a\x4d\x9a\x4e\x9a\x5b\x9a\x57\x9a\x5f\x9a\x62\x9a\x69\x9a\x65\x9a\x64\x9a\x6a\x9a\x6b\x9a\xad\x9a\xb0\x9a\xbc\x9a\xc0\x9a\xcf\x9a\xd3\x9a\xd4\x9a\xd1\x9a\xd9\x9a\xdc\x9a\xde\x9a\xdf\x9a\xe2\x9a\xe3\x9a\xe6\x9a\xef\x9a\xeb\x9a\xee\x9a\xf4\x9a\xf1\x9a\xf7\x9a\xfb\x9b\x06\x9b\x18\x9b\x1a\x9b\x1f\x9b\x22\x9b\x23\x9b\x25", /* 6780 */ "\x9b\x27\x9b\x28\x9b\x29\x9b\x2a\x9b\x2e\x9b\x2f\x9b\x31\x9b\x32\x9b\x3b\x9b\x44\x9b\x43\x9b\x4d\x9b\x4e\x9b\x51\x9b\x58\x9b\x75\x9b\x74\x9b\x72\x9b\x93\x9b\x8f\x9b\x83\x9b\x91\x9b\x96\x9b\x97\x9b\x9f\x9b\xa0\x9b\xa8\x9b\xb1\x9b\xb4\x9b\xc0\x9b\xca\x9b\xbb\x9b\xb9\x9b\xc6\x9b\xcf\x9b\xd1\x9b\xd2\x9b\xe3\x9b\xe2\x9b\xe4\x9b\xd4\x9b\xe1\x9b\xf5\x9b\xf1\x9b\xf2\x9c\x04\x9c\x1b\x9c\x15\x9c\x14\x9c\x00\x9c\x09\x9c\x13\x9c\x0c\x9c\x06\x9c\x08\x9c\x12\x9c\x0a\x9c\x2e\x9c\x25\x9c\x24\x9c\x21\x9c\x30\x9c\x47\x9c\x32\x9c\x46\x9c\x3e\x9c\x5a\x9c\x60\x9c\x67\x9c\x76\x9c\x78\x9c\xeb\x9c\xe7\x9c\xec\x9c\xf0\x9d\x09\x9d\x03\x9d\x06\x9d\x2a\x9d\x26\x9d\x2c\x9d\x23\x9d\x1f\x9d\x15\x9d\x12\x9d\x41\x9d\x3f\x9d\x44\x9d\x3e\x9d\x46\x9d\x48\x9d\x5d\x9d\x5e\x9d\x59\x9d\x51\x9d\x50\x9d\x64\x9d\x72\x9d\x70\x9d\x87\x9d\x6b\x9d\x6f\x9d\x7a\x9d\x9a\x9d\xa4\x9d\xa9\x9d\xab\x9d\xb2\x9d\xc4\x9d\xc1\x9d\xbb\x9d\xb8\x9d\xba\x9d\xc6\x9d\xcf\x9d\xc2\xfa\x2d\x9d\xd9\x9d\xd3\x9d\xf8\x9d\xe6\x9d\xed\x9d\xef\x9d\xfd\x9e\x1a\x9e\x1b\x9e\x19\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x1e\x9e\x75\x9e\x79\x9e\x7d\x9e\x81\x9e\x88\x9e\x8b\x9e\x8c\x9e\x95\x9e\x91\x9e\x9d\x9e\xa5\x9e\xb8\x9e\xaa\x9e\xad\x9e\xbc\x9e\xbe\x97\x61\x9e\xcc\x9e\xcf\x9e\xd0\x9e\xd1\x9e\xd4\x9e\xdc\x9e\xde\x9e\xdd\x9e\xe0\x9e\xe5\x9e\xe8\x9e\xef\x9e\xf4\x9e\xf6\x9e\xf7\x9e\xf9\x9e\xfb\x9e\xfc\x9e\xfd\x9f\x07\x9f\x08\x76\xb7\x9f\x15\x9f\x21\x9f\x2c\x9f\x3e\x9f\x4a\x9f\x4e\x9f\x4f\x9f\x52\x9f\x54\x9f\x63\x9f\x5f\x9f\x60\x9f\x61\x9f\x66\x9f\x67\x9f\x6c\x9f\x6a\x9f\x77\x9f\x72\x9f\x76\x9f\x95\x9f\x9c\x9f\xa0", /* 6880 */ "\x5c\x2d\x69\xd9\x90\x65\x74\x76\x51\xdc\x71\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 6980 */ "\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc", /* 6a80 */ "\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba", /* 6b80 */ "\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78", /* 6c80 */ "\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36", /* 6d80 */ "\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4", /* 6e80 */ "\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2", /* 6f80 */ "\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70", /* 7080 */ "\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e", /* 7180 */ "\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec", /* 7280 */ "\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xe7\xa8\xe7\xa9\xe7\xaa", /* 7380 */ "\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe7\xff\xe8\x00\xe8\x01\xe8\x02\xe8\x03\xe8\x04\xe8\x05\xe8\x06\xe8\x07\xe8\x08\xe8\x09\xe8\x0a\xe8\x0b\xe8\x0c\xe8\x0d\xe8\x0e\xe8\x0f\xe8\x10\xe8\x11\xe8\x12\xe8\x13\xe8\x14\xe8\x15\xe8\x16\xe8\x17\xe8\x18\xe8\x19\xe8\x1a\xe8\x1b\xe8\x1c\xe8\x1d\xe8\x1e\xe8\x1f\xe8\x20\xe8\x21\xe8\x22\xe8\x23\xe8\x24\xe8\x25\xe8\x26\xe8\x27\xe8\x28\xe8\x29\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x2a\xe8\x2b\xe8\x2c\xe8\x2d\xe8\x2e\xe8\x2f\xe8\x30\xe8\x31\xe8\x32\xe8\x33\xe8\x34\xe8\x35\xe8\x36\xe8\x37\xe8\x38\xe8\x39\xe8\x3a\xe8\x3b\xe8\x3c\xe8\x3d\xe8\x3e\xe8\x3f\xe8\x40\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68", /* 7480 */ "\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe8\xff\xe9\x00\xe9\x01\xe9\x02\xe9\x03\xe9\x04\xe9\x05\xe9\x06\xe9\x07\xe9\x08\xe9\x09\xe9\x0a\xe9\x0b\xe9\x0c\xe9\x0d\xe9\x0e\xe9\x0f\xe9\x10\xe9\x11\xe9\x12\xe9\x13\xe9\x14\xe9\x15\xe9\x16\xe9\x17\xe9\x18\xe9\x19\xe9\x1a\xe9\x1b\xe9\x1c\xe9\x1d\xe9\x1e\xe9\x1f\xe9\x20\xe9\x21\xe9\x22\xe9\x23\xe9\x24\xe9\x25\xe9\x26", /* 7580 */ "\xe9\x27\xe9\x28\xe9\x29\xe9\x2a\xe9\x2b\xe9\x2c\xe9\x2d\xe9\x2e\xe9\x2f\xe9\x30\xe9\x31\xe9\x32\xe9\x33\xe9\x34\xe9\x35\xe9\x36\xe9\x37\xe9\x38\xe9\x39\xe9\x3a\xe9\x3b\xe9\x3c\xe9\x3d\xe9\x3e\xe9\x3f\xe9\x40\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xe9\x58\xe9\x59\xe9\x5a\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4", /* 7680 */ "\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xe9\xff\xea\x00\xea\x01\xea\x02\xea\x03\xea\x04\xea\x05\xea\x06\xea\x07\xea\x08\xea\x09\xea\x0a\xea\x0b\xea\x0c\xea\x0d\xea\x0e\xea\x0f\xea\x10\xea\x11\xea\x12\xea\x13\xea\x14\xea\x15\xea\x16\xea\x17\xea\x18\xea\x19\xea\x1a\xea\x1b\xea\x1c\xea\x1d\xea\x1e\xea\x1f\xea\x20\xea\x21\xea\x22\xea\x23\xea\x24\xea\x25\xea\x26\xea\x27\xea\x28\xea\x29\xea\x2a\xea\x2b\xea\x2c\xea\x2d\xea\x2e\xea\x2f\xea\x30\xea\x31\xea\x32\xea\x33\xea\x34\xea\x35\xea\x36\xea\x37\xea\x38\xea\x39\xea\x3a\xea\x3b\xea\x3c\xea\x3d\xea\x3e\xea\x3f\xea\x40\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2", /* 7780 */ "\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xea\xff\xeb\x00\xeb\x01\xeb\x02\xeb\x03\xeb\x04\xeb\x05\xeb\x06\xeb\x07\xeb\x08\xeb\x09\xeb\x0a\xeb\x0b\xeb\x0c\xeb\x0d\xeb\x0e\xeb\x0f\xeb\x10\xeb\x11\xeb\x12\xeb\x13\xeb\x14\xeb\x15\xeb\x16\xeb\x17\xeb\x18\xeb\x19\xeb\x1a\xeb\x1b\xeb\x1c\xeb\x1d\xeb\x1e\xeb\x1f\xeb\x20\xeb\x21\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x22\xeb\x23\xeb\x24\xeb\x25\xeb\x26\xeb\x27\xeb\x28\xeb\x29\xeb\x2a\xeb\x2b\xeb\x2c\xeb\x2d\xeb\x2e\xeb\x2f\xeb\x30\xeb\x31\xeb\x32\xeb\x33\xeb\x34\xeb\x35\xeb\x36\xeb\x37\xeb\x38\xeb\x39\xeb\x3a\xeb\x3b\xeb\x3c\xeb\x3d\xeb\x3e\xeb\x3f\xeb\x40\xeb\x41\xeb\x42\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d\xeb\x5e\xeb\x5f\xeb\x60", /* 7880 */ "\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xeb\xd7\xeb\xd8\xeb\xd9\xeb\xda\xeb\xdb\xeb\xdc\xeb\xdd\xeb\xde\xeb\xdf\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xeb\xf2\xeb\xf3\xeb\xf4\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe\xeb\xff\xec\x00\xec\x01\xec\x02\xec\x03\xec\x04\xec\x05\xec\x06\xec\x07\xec\x08\xec\x09\xec\x0a\xec\x0b\xec\x0c\xec\x0d\xec\x0e\xec\x0f\xec\x10\xec\x11\xec\x12\xec\x13\xec\x14\xec\x15\xec\x16\xec\x17\xec\x18\xec\x19\xec\x1a\xec\x1b\xec\x1c\xec\x1d\xec\x1e", /* 7980 */ "\xec\x1f\xec\x20\xec\x21\xec\x22\xec\x23\xec\x24\xec\x25\xec\x26\xec\x27\xec\x28\xec\x29\xec\x2a\xec\x2b\xec\x2c\xec\x2d\xec\x2e\xec\x2f\xec\x30\xec\x31\xec\x32\xec\x33\xec\x34\xec\x35\xec\x36\xec\x37\xec\x38\xec\x39\xec\x3a\xec\x3b\xec\x3c\xec\x3d\xec\x3e\xec\x3f\xec\x40\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc", /* 7a80 */ "\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xec\xff\xed\x00\xed\x01\xed\x02\xed\x03\xed\x04\xed\x05\xed\x06\xed\x07\xed\x08\xed\x09\xed\x0a\xed\x0b\xed\x0c\xed\x0d\xed\x0e\xed\x0f\xed\x10\xed\x11\xed\x12\xed\x13\xed\x14\xed\x15\xed\x16\xed\x17\xed\x18\xed\x19\xed\x1a\xed\x1b\xed\x1c\xed\x1d\xed\x1e\xed\x1f\xed\x20\xed\x21\xed\x22\xed\x23\xed\x24\xed\x25\xed\x26\xed\x27\xed\x28\xed\x29\xed\x2a\xed\x2b\xed\x2c\xed\x2d\xed\x2e\xed\x2f\xed\x30\xed\x31\xed\x32\xed\x33\xed\x34\xed\x35\xed\x36\xed\x37\xed\x38\xed\x39\xed\x3a\xed\x3b\xed\x3c\xed\x3d\xed\x3e\xed\x3f\xed\x40\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a", /* 7b80 */ "\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xed\xff\xee\x00\xee\x01\xee\x02\xee\x03\xee\x04\xee\x05\xee\x06\xee\x07\xee\x08\xee\x09\xee\x0a\xee\x0b\xee\x0c\xee\x0d\xee\x0e\xee\x0f\xee\x10\xee\x11\xee\x12\xee\x13\xee\x14\xee\x15\xee\x16\xee\x17\xee\x18\xee\x19\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x1a\xee\x1b\xee\x1c\xee\x1d\xee\x1e\xee\x1f\xee\x20\xee\x21\xee\x22\xee\x23\xee\x24\xee\x25\xee\x26\xee\x27\xee\x28\xee\x29\xee\x2a\xee\x2b\xee\x2c\xee\x2d\xee\x2e\xee\x2f\xee\x30\xee\x31\xee\x32\xee\x33\xee\x34\xee\x35\xee\x36\xee\x37\xee\x38\xee\x39\xee\x3a\xee\x3b\xee\x3c\xee\x3d\xee\x3e\xee\x3f\xee\x40\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58", /* 7c80 */ "\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xee\xff\xef\x00\xef\x01\xef\x02\xef\x03\xef\x04\xef\x05\xef\x06\xef\x07\xef\x08\xef\x09\xef\x0a\xef\x0b\xef\x0c\xef\x0d\xef\x0e\xef\x0f\xef\x10\xef\x11\xef\x12\xef\x13\xef\x14\xef\x15\xef\x16", /* 7d80 */ "\xef\x17\xef\x18\xef\x19\xef\x1a\xef\x1b\xef\x1c\xef\x1d\xef\x1e\xef\x1f\xef\x20\xef\x21\xef\x22\xef\x23\xef\x24\xef\x25\xef\x26\xef\x27\xef\x28\xef\x29\xef\x2a\xef\x2b\xef\x2c\xef\x2d\xef\x2e\xef\x2f\xef\x30\xef\x31\xef\x32\xef\x33\xef\x34\xef\x35\xef\x36\xef\x37\xef\x38\xef\x39\xef\x3a\xef\x3b\xef\x3c\xef\x3d\xef\x3e\xef\x3f\xef\x40\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xef\xd2\xef\xd3\xef\xd4", /* 7e80 */ "\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xef\xff\xf0\x00\xf0\x01\xf0\x02\xf0\x03\xf0\x04\xf0\x05\xf0\x06\xf0\x07\xf0\x08\xf0\x09\xf0\x0a\xf0\x0b\xf0\x0c\xf0\x0d\xf0\x0e\xf0\x0f\xf0\x10\xf0\x11\xf0\x12\xf0\x13\xf0\x14\xf0\x15\xf0\x16\xf0\x17\xf0\x18\xf0\x19\xf0\x1a\xf0\x1b\xf0\x1c\xf0\x1d\xf0\x1e\xf0\x1f\xf0\x20\xf0\x21\xf0\x22\xf0\x23\xf0\x24\xf0\x25\xf0\x26\xf0\x27\xf0\x28\xf0\x29\xf0\x2a\xf0\x2b\xf0\x2c\xf0\x2d\xf0\x2e\xf0\x2f\xf0\x30\xf0\x31\xf0\x32\xf0\x33\xf0\x34\xf0\x35\xf0\x36\xf0\x37\xf0\x38\xf0\x39\xf0\x3a\xf0\x3b\xf0\x3c\xf0\x3d\xf0\x3e\xf0\x3f\xf0\x40\xf0\x41\xf0\x42\xf0\x43\xf0\x44\xf0\x45\xf0\x46\xf0\x47\xf0\x48\xf0\x49\xf0\x4a\xf0\x4b\xf0\x4c\xf0\x4d\xf0\x4e\xf0\x4f\xf0\x50\xf0\x51\xf0\x52\xf0\x53\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x54\xf0\x55\xf0\x56\xf0\x57\xf0\x58\xf0\x59\xf0\x5a\xf0\x5b\xf0\x5c\xf0\x5d\xf0\x5e\xf0\x5f\xf0\x60\xf0\x61\xf0\x62\xf0\x63\xf0\x64\xf0\x65\xf0\x66\xf0\x67\xf0\x68\xf0\x69\xf0\x6a\xf0\x6b\xf0\x6c\xf0\x6d\xf0\x6e\xf0\x6f\xf0\x70\xf0\x71\xf0\x72\xf0\x73\xf0\x74\xf0\x75\xf0\x76\xf0\x77\xf0\x78\xf0\x79\xf0\x7a\xf0\x7b\xf0\x7c\xf0\x7d\xf0\x7e\xf0\x7f\xf0\x80\xf0\x81\xf0\x82\xf0\x83\xf0\x84\xf0\x85\xf0\x86\xf0\x87\xf0\x88\xf0\x89\xf0\x8a\xf0\x8b\xf0\x8c\xf0\x8d\xf0\x8e\xf0\x8f\xf0\x90\xf0\x91\xf0\x92", /* 7f80 */ "\xf0\x93\xf0\x94\xf0\x95\xf0\x96\xf0\x97\xf0\x98\xf0\x99\xf0\x9a\xf0\x9b\xf0\x9c\xf0\x9d\xf0\x9e\xf0\x9f\xf0\xa0\xf0\xa1\xf0\xa2\xf0\xa3\xf0\xa4\xf0\xa5\xf0\xa6\xf0\xa7\xf0\xa8\xf0\xa9\xf0\xaa\xf0\xab\xf0\xac\xf0\xad\xf0\xae\xf0\xaf\xf0\xb0\xf0\xb1\xf0\xb2\xf0\xb3\xf0\xb4\xf0\xb5\xf0\xb6\xf0\xb7\xf0\xb8\xf0\xb9\xf0\xba\xf0\xbb\xf0\xbc\xf0\xbd\xf0\xbe\xf0\xbf\xf0\xc0\xf0\xc1\xf0\xc2\xf0\xc3\xf0\xc4\xf0\xc5\xf0\xc6\xf0\xc7\xf0\xc8\xf0\xc9\xf0\xca\xf0\xcb\xf0\xcc\xf0\xcd\xf0\xce\xf0\xcf\xf0\xd0\xf0\xd1\xf0\xd2\xf0\xd3\xf0\xd4\xf0\xd5\xf0\xd6\xf0\xd7\xf0\xd8\xf0\xd9\xf0\xda\xf0\xdb\xf0\xdc\xf0\xdd\xf0\xde\xf0\xdf\xf0\xe0\xf0\xe1\xf0\xe2\xf0\xe3\xf0\xe4\xf0\xe5\xf0\xe6\xf0\xe7\xf0\xe8\xf0\xe9\xf0\xea\xf0\xeb\xf0\xec\xf0\xed\xf0\xee\xf0\xef\xf0\xf0\xf0\xf1\xf0\xf2\xf0\xf3\xf0\xf4\xf0\xf5\xf0\xf6\xf0\xf7\xf0\xf8\xf0\xf9\xf0\xfa\xf0\xfb\xf0\xfc\xf0\xfd\xf0\xfe\xf0\xff\xf1\x00\xf1\x01\xf1\x02\xf1\x03\xf1\x04\xf1\x05\xf1\x06\xf1\x07\xf1\x08\xf1\x09\xf1\x0a\xf1\x0b\xf1\x0c\xf1\x0d\xf1\x0e\xf1\x0f\xf1\x10\xf1\x11\x00\x00", /* 8000 */ NULL, /* 8080 */ NULL, /* 8100 */ NULL, /* 8180 */ NULL, /* 8200 */ NULL, /* 8280 */ NULL, /* 8300 */ NULL, /* 8380 */ NULL, /* 8400 */ NULL, /* 8480 */ NULL, /* 8500 */ NULL, /* 8580 */ NULL, /* 8600 */ NULL, /* 8680 */ NULL, /* 8700 */ NULL, /* 8780 */ NULL, /* 8800 */ NULL, /* 8880 */ NULL, /* 8900 */ NULL, /* 8980 */ NULL, /* 8a00 */ NULL, /* 8a80 */ NULL, /* 8b00 */ NULL, /* 8b80 */ NULL, /* 8c00 */ NULL, /* 8c80 */ NULL, /* 8d00 */ NULL, /* 8d80 */ NULL, /* 8e00 */ NULL, /* 8e80 */ NULL, /* 8f00 */ NULL, /* 8f80 */ NULL, /* 9000 */ NULL, /* 9080 */ NULL, /* 9100 */ NULL, /* 9180 */ NULL, /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ NULL, /* e080 */ NULL, /* e100 */ NULL, /* e180 */ NULL, /* e200 */ NULL, /* e280 */ NULL, /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp935", "0x04380345" /* 1080, 837 */, "gb2312.1980-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-837_P100-2000 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x88\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x44\x46\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x48\x46\x46\x46\x5a\x00\x00\x46\x4c\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x46\x50\x46\x4e\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x46\x54\x46\x52\x00\x00\x46\x59\x00\x00\x00\x00\x00\x00", /* 0100 */ "\x00\x00\x46\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x46\x4b\x00\x00\x46\x4f\x00\x00\x46\x53\x00\x00\x46\x55\x00\x00\x46\x56\x00\x00\x46\x57\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0200 */ NULL, /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x46\x00\x00\x45\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4a\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x8b\x00\x00\x44\xee\x44\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x66\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6b\x00\x00\x00\x00\x45\x77\x44\x4d\x00\x00\x45\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6d\x00\x00\x45\x63\x45\x64\x45\x68\x45\x67\x45\x71\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x45\x62\x45\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x75\x00\x00\x00\x00\x00\x00\x45\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x45\x73\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0", /* 2480 */ "\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2500 */ "\x46\xa4\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x45\x5b\x45\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x59\xba\x4b\xa0\x00\x00\x53\xde\x00\x00\x00\x00\x00\x00\x57\x93\x5b\x69\x54\xfc\x55\x6f\x58\x62\x5c\xa1\x49\xba\x5a\x8c\x00\x00\x5c\xa3\x4a\x94\x00\x00\x5c\x48\x54\x72\x5c\xa6\x55\xbf\x00\x00\x54\x91\x49\x9c\x59\xb4\x4a\xd3\x4b\xaa\x56\x5f\x5c\xa8\x00\x00\x00\x00\x00\x00\x4b\xa9\x00\x00\x51\x5d\x59\x6f\x00\x00\x55\x45\x5c\xac\x00\x00\x4c\xf5\x59\x5e\x62\x7c\x5b\xcf\x00\x00\x00\x00\x4c\x82\x00\x00\x4a\xad\x00\x00\x51\x79\x00\x00\x5c\xbb\x00\x00\x57\x89\x4b\x44\x57\xa9\x5b\xf6\x00\x00\x50\xf5\x4f\xd8\x5c\xae\x00\x00\x00\x00\x00\x00\x52\xca\x00\x00\x4f\xc2\x00\x00\x5c\xb0\x52\x54\x59\xe4\x00\x00\x5b\xad\x57\xd9\x5b\x47\x4d\xf4\x4c\x46\x50\xd5\x00\x00\x53\xb8\x53\x72\x54\x67\x00\x00\x4d\x74\x00\x00\x4a\x6b\x59\xd1\x00\x00\x00\x00\x5c\xbe\x4f\xc4\x53\xf1\x59\xb1\x58\x50\x58\x88\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe8\x00\x00\x00\x00\x5c\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf1\x51\xd1\x00\x00\x54\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x4c\x00\x00", /* 4e80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6b\x00\x00\x5a\x89\x5b\x9a\x00\x00\x55\xc1\x4b\xfd\x5c\xa0\x5a\x7a\x50\x98\x00\x00\x5a\xc5\x4e\x45\x5c\xc0\x57\xe4\x4f\xad\x00\x00\x00\x00\x5c\xa7\x00\x00\x59\x67\x58\xa8\x00\x00\x00\x00\x00\x00\x5c\xbc\x5d\x90\x57\x97\x50\x5a\x00\x00\x4f\x5b\x4d\xa4\x59\xdf\x49\xf9\x4d\xdf\x52\xb5\x00\x00\x58\x8e\x4f\xa8\x57\x44\x51\x61\x00\x00\x00\x00\x00\x00\x54\x77\x5d\x92\x00\x00\x5d\x95\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x5c\xe8\x00\x00\x00\x00\x00\x00\x59\xd9\x55\xb1\x54\xc9\x5c\xeb\x5c\xe9\x5c\xc5\x4f\x97\x53\xcc\x4a\x91\x00\x00\x5c\xea\x4f\x92\x4f\x8a\x00\x00\x54\xd3\x4a\xd2\x00\x00\x00\x00\x51\xd7\x00\x00\x49\xd5\x5c\x70\x55\xca\x56\x9c\x5b\x6c\x4c\xb5\x58\x69\x00\x00\x00\x00\x00\x00\x5d\x7a\x5c\xef\x54\x4a\x00\x00\x5c\xed\x00\x00\x4a\xf9\x51\x8f\x59\xd3\x00\x00\x00\x00\x5c\xec\x00\x00\x59\xc6\x5c\xee\x52\x67\x00\x00\x00\x00\x00\x00\x59\x97\x00\x00\x5b\xd8\x5c\xf1\x00\x00\x5c\xf4\x4e\xfd\x4e\xda\x00\x00\x00\x00\x00\x00\x54\xcd\x00\x00\x4c\x7d\x00\x00\x4c\x62", /* 4f00 */ "\x00\x00\x53\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf7\x59\xc0\x00\x00\x00\x00\x57\xe8\x4e\xbe\x4c\x9d\x4c\x45\x58\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd9\x5a\x65\x4e\x90\x4e\x82\x5c\xf0\x00\x00\x00\x00\x55\x41\x57\xaf\x4a\xaa\x00\x00\x5c\xf2\x00\x00\x55\x6b\x5c\xf5\x51\xd6\x5c\xf6\x00\x00\x00\x00\x57\xb0\x5c\xf8\x00\x00\x00\x00\x00\x00\x49\xad\x4d\x60\x00\x00\x5d\x43\x00\x00\x48\xe8\x00\x00\x51\x87\x00\x00\x55\x8d\x00\x00\x56\x65\x00\x00\x56\x66\x5d\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x89\x00\x00\x00\x00\x4b\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xba\x4b\x6d\x5c\x41\x5c\x95\x5a\x73\x00\x00\x56\xe4\x00\x00\x4d\xcd\x00\x00\x5d\x42\x5d\x7c\x5a\x81\x5c\xfc\x4c\x91\x5c\x98\x5c\xfd\x5c\xf9\x5d\x41\x52\xe2\x00\x00\x00\x00\x5a\x56\x5c\xf3\x5d\x7d\x00\x00\x5c\xfa\x00\x00\x53\x86\x00\x00\x00\x00\x50\xcf\x00\x00\x00\x00\x59\x91\x48\xda\x00\x00\x00\x00\x4e\xd0\x5d\x46\x00\x00\x5d\x45\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x4c\x5d\x4e\x00\x00\x5d\x4b\x55\xb8", /* 4f80 */ "\x00\x00\x00\x00\x00\x00\x5d\x49\x5b\xb5\x00\x00\x00\x00\x00\x00\x4a\x7e\x5d\x48\x00\x00\x50\xfc\x00\x00\x55\xcb\x00\x00\x5d\x4a\x00\x00\x5d\x47\x00\x00\x00\x00\x5d\x50\x00\x00\x00\x00\x4b\xb0\x00\x00\x00\x00\x00\x00\x4d\x49\x00\x00\x59\xbf\x00\x00\x00\x00\x58\x60\x00\x00\x00\x00\x51\xc1\x00\x00\x4f\x64\x5b\x8d\x49\xdf\x54\x68\x50\x8c\x5d\x4d\x00\x00\x5d\x4f\x00\x00\x57\xe9\x4d\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x84\x00\x00\x00\x00\x00\x00\x4a\xd8\x4b\xec\x5d\x54\x00\x00\x00\x00\x00\x00\x00\x00\x50\x41\x00\x00\x00\x00\x00\x00\x5d\x7e\x54\x6e\x50\xfd\x5d\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x77\x4c\x9e\x00\x00\x5d\x55\x00\x00\x5d\x57\x49\x43\x5a\x82\x5d\x59\x00\x00\x58\xc4\x00\x00\x5d\x56\x00\x00\x00\x00\x5d\x51\x00\x00\x5d\x52\x51\x49\x5d\x53\x00\x00\x00\x00\x4e\xf2\x58\xdd\x4c\xa8\x00\x00\x4f\xe2\x00\x00\x5d\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5a\x00\x00\x48\xb2\x00\x00\x00\x00\x00\x00\x5d\x62\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x64\x49\x56\x00\x00\x5d\x5f\x00\x00\x00\x00\x4b\x59\x00\x00\x4f\xf2\x00\x00\x00\x00\x00\x00\x56\xc7\x4d\xf1\x59\xcf\x00\x00\x5d\x63\x00\x00\x00\x00\x4f\x89\x00\x00\x4a\x4b\x00\x00\x00\x00\x00\x00\x5d\x65\x4f\xea\x00\x00\x5d\x66\x5d\x5b\x52\xde\x00\x00\x5d\x5e\x5d\x61\x5d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4e\x00\x00\x5b\xb4\x00\x00\x54\x84\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x68\x00\x00\x00\x00\x00\x00\x4e\xd8\x5d\x6a\x00\x00\x00\x00\x00\x00\x5d\x5c\x00\x00\x5d\x6b\x53\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x97\x00\x00\x57\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x5c\x57\x55\x00\x00\x00\x00\x00\x00\x5d\x6d\x00\x00\x00\x00\x5d\x67\x4a\x45", /* 5080 */ "\x50\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb4\x00\x00\x00\x00\x50\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf5\x00\x00\x5d\x6e\x00\x00\x5d\x6f\x4a\xa1\x5d\x70\x00\x00\x00\x00\x4a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x71\x55\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x72\x00\x00\x00\x00\x00\x00\x51\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x76\x55\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x75\x5d\x74\x5d\x77\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7b\x00\x00\x4f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa6\x00\x00\x00\x00\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x73\x5d\x78\x00\x00\x00\x00\x00\x00\x5d\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf8\x5c\xa2\x5a\xc9\x00\x00\x5a\xa9\x58\xd5\x4a\x85\x5b\x77\x00\x00\x58\x68\x4d\x83\x00\x00\x50\x6b\x00\x00\x52\x83\x00\x00\x00\x00\x00\x00\x4b\xd1\x00\x00\x00\x00\x57\x63\x5d\x8f\x5d\x91\x00\x00\x00\x00\x00\x00\x4b\x53\x00\x00\x4b\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa3\x00\x00\x00\x00\x54\xea\x00\x00\x00\x00\x54\xaa\x00\x00\x00\x00\x48\xca\x4d\x4b\x51\x9a\x5d\x83\x00\x00\x50\xbb\x4d\x52\x00\x00\x4d\x78\x58\xca\x49\x99\x53\xe3\x4f\xde\x4b\x85\x5c\x68\x00\x00\x59\x99\x4e\xe5\x55\xdd\x00\x00\x00\x00", /* 5180 */ "\x4e\xbc\x5d\x87\x5c\xe6\x00\x00\x00\x00\x52\xd9\x00\x00\x00\x00\x4c\xd3\x54\xbc\x00\x00\x00\x00\x49\xe0\x5a\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x52\x50\x00\x00\x00\x00\x52\x82\x5d\xa1\x54\xde\x00\x00\x58\xb3\x00\x00\x4f\xfb\x53\x49\x00\x00\x00\x00\x00\x00\x4d\x7a\x00\x00\x5d\xa2\x00\x00\x5a\xa8\x5d\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9c\x4b\xab\x00\x00\x00\x00\x4c\x8c\x49\x9a\x5d\x9d\x4a\x86\x4f\xf5\x00\x00\x50\x97\x59\xb0\x50\xe3\x00\x00\x00\x00\x00\x00\x4b\xb2\x5d\x9f\x5d\x9e\x00\x00\x00\x00\x4f\xba\x00\x00\x00\x00\x00\x00\x53\xdf\x00\x00\x5c\x5c\x5d\xa0\x00\x00\x51\x59\x00\x00\x4b\x93\x51\x89\x00\x00\x00\x00\x4e\xf4\x00\x00\x4a\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x7d\x00\x00\x52\xfc\x00\x00\x00\x00\x4e\xb7\x4c\x52\x00\x00\x00\x00\x4c\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8d\x00\x00\x53\xbd\x00\x00\x50\x4d\x4e\x6b\x00\x00\x00\x00\x4b\x6a\x00\x00\x5e\x69\x58\xd6\x00\x00\x57\x59\x48\xbb\x4a\x97\x4e\x98\x5e\x6a\x4d\xae\x00\x00\x5a\xe3", /* 5200 */ "\x4b\x56\x4b\x94\x5c\xd5\x54\xcf\x00\x00\x00\x00\x4c\x76\x54\x70\x5c\xd6\x00\x00\x50\x4f\x00\x00\x00\x00\x5e\x5b\x5c\xd7\x00\x00\x00\x00\x58\xcb\x4e\x4e\x00\x00\x00\x00\x00\x00\x66\x5e\x51\x70\x51\x96\x5a\xf1\x4c\xd4\x4a\xb3\x00\x00\x4a\x96\x00\x00\x00\x00\x55\x5e\x00\x00\x00\x00\x00\x00\x53\x70\x00\x00\x00\x00\x00\x00\x53\x79\x50\xfa\x00\x00\x49\x91\x00\x00\x5c\xd8\x4d\x6e\x00\x00\x4b\x5d\x00\x00\x00\x00\x5c\xd9\x00\x00\x00\x00\x5b\xc5\x56\x42\x54\xae\x55\x52\x4a\xcb\x50\x6c\x00\x00\x4d\x95\x00\x00\x5c\xda\x5c\xdb\x4b\xe6\x4e\xc0\x56\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x98\x00\x00\x5c\xdc\x54\x50\x00\x00\x00\x00\x4d\x70\x4f\x43\x00\x00\x00\x00\x56\xdd\x00\x00\x53\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdf\x00\x00\x5c\xdd\x00\x00\x00\x00\x5c\xde\x00\x00\x00\x00\x00\x00\x48\xfd\x00\x00\x4f\xe6\x00\x00\x55\xa2\x4e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb0\x00\x00\x00\x00\x4c\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe1\x00\x00\x4f\x6b", /* 5280 */ "\x00\x00\x5c\xe3\x5c\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe4\x00\x00\x00\x00\x5c\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x46\x00\x00\x54\xaf\x48\xeb\x4d\x46\x4e\xd2\x57\xf0\x5e\x5d\x51\x73\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xae\x5b\xf9\x53\x4c\x4f\x79\x5e\x5e\x5e\x5f\x00\x00\x00\x00\x00\x00\x50\xf7\x4f\xa1\x50\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x60\x55\xc5\x00\x00\x00\x00\x00\x00\x49\xa9\x00\x00\x00\x00\x00\x00\x5a\x62\x00\x00\x52\x84\x00\x00\x59\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x62\x00\x00\x50\xd4\x00\x00\x00\x00\x00\x00\x5e\x63\x00\x00\x50\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x89\x55\x77\x00\x00\x00\x00\x00\x00\x4d\x54\x57\xef", /* 5300 */ "\x5a\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x48\xfb\x4a\xd1\x00\x00\x58\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8a\x00\x00\x5f\xca\x5d\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xaf\x4e\x4f\x49\x51\x00\x00\x4a\x77\x5c\xcd\x00\x00\x00\x00\x5a\xd0\x00\x00\x00\x00\x4f\x53\x50\x90\x00\x00\x58\x5b\x00\x00\x00\x00\x5c\xcf\x00\x00\x00\x00\x00\x00\x4c\x6b\x00\x00\x00\x00\x00\x00\x5c\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa4\x54\x99\x59\xbc\x00\x00\x00\x00\x5c\xd1\x52\xe3\x00\x00\x55\xad\x00\x00\x54\x47\x00\x00\x5c\xa5\x00\x00\x55\x9e\x57\xe6\x4e\x7c\x48\xea\x00\x00\x00\x00\x00\x00\x4e\x4a\x58\xac\x00\x00\x49\x50\x5c\x85\x5c\x5f\x00\x00\x4b\x45\x51\xf3\x52\xce\x00\x00\x00\x00\x49\xa8\x00\x00\x49\xb6\x00\x00\x49\x86\x60\x52\x5b\x5c\x50\x48\x51\xab\x5c\xd4\x51\xb0\x00\x00\x5c\xd3\x57\xd3\x00\x00\x5d\xdf\x00\x00\x57\xbf\x00\x00\x00\x00\x5c\xb3\x52\x4e\x5a\x41\x57\xa2\x00\x00\x4e\xb3\x54\xb3\x51\xd0\x00\x00\x4f\xec\x58\xb5\x00\x00\x5d\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x54\x85", /* 5380 */ "\x00\x00\x00\x00\x4a\x47\x00\x00\x4b\xf1\x56\xfb\x50\xf9\x00\x00\x00\x00\x50\xf6\x00\x00\x59\x59\x59\x82\x5c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xdd\x00\x00\x00\x00\x50\xe4\x00\x00\x4d\xf0\x00\x00\x00\x00\x5c\xc7\x00\x00\x5a\xac\x00\x00\x00\x00\x58\x82\x5c\xc8\x00\x00\x5c\xc9\x58\x63\x00\x00\x4a\x99\x4f\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa4\x00\x00\x00\x00\x00\x00\x58\x78\x00\x00\x54\xfd\x49\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x76\x49\xe5\x4e\xaf\x5a\x71\x56\x4b\x4c\x54\x00\x00\x00\x00\x00\x00\x4c\x42\x00\x00\x00\x00\x55\xe4\x00\x00\x54\xa0\x55\xdb\x49\x85\x58\xef\x00\x00\x53\x71\x00\x00\x00\x00\x00\x00\x5e\x65\x4b\x9f\x00\x00\x00\x00\x50\x7a\x4d\x65\x4f\xe3\x51\x8e\x00\x00\x60\x56\x60\x55\x5b\xba\x4f\x70\x5b\x79\x48\xc7\x4b\xa2\x50\x69\x56\xa7\x60\x53\x55\xb6\x5a\x72\x00\x00\x5c\xce\x59\xb5\x4d\xc4\x56\x5e\x56\xbd\x00\x00\x60\x57\x4b\x91\x60\x54\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x5a\x96\x00\x00\x4a\x74\x4c\xf6\x00\x00\x60\x5a\x00\x00\x4d\xce\x4e\xa9\x4b\x96\x00\x00\x57\x4c\x52\x9c\x4d\xf2\x50\xf3\x57\x62\x58\x93\x60\x58\x58\x65\x00\x00\x51\xbf\x60\x59\x51\xef\x00\x00\x00\x00\x00\x00\x4f\xfc\x00\x00\x51\x7f\x57\x6c\x59\xf6\x4c\x6d\x60\x61\x00\x00\x60\x64\x00\x00\x00\x00\x4c\x92\x48\xc8\x4b\xd5\x4c\x74\x00\x00\x4d\xab\x56\xfc\x50\x74\x56\x51\x53\xf3\x00\x00\x5b\xa7\x60\x65\x00\x00\x57\xe1\x4a\x53\x00\x00\x00\x00\x57\xfb\x4a\xb4\x00\x00\x57\xc6\x4d\xef\x00\x00\x57\xe0\x00\x00\x59\x5d\x00\x00\x00\x00\x60\x60\x00\x00\x00\x00\x4a\xf3\x00\x00\x4a\x6a\x00\x00\x4c\xe5\x60\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc4\x00\x00\x60\x5c\x60\x5d\x60\x5e\x53\x5b\x60\x5f\x60\x62\x5a\xb0\x60\x63\x00\x00\x54\x5a\x57\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd7\x00\x00\x60\x6a\x00\x00\x60\x6f\x00\x00\x5b\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x69\x60\x7a\x57\xb5\x00\x00\x4d\xc6\x60\x6e\x60\x68\x53\x7e\x00\x00\x00\x00\x55\x8c\x4d\xf3\x52\x9d\x00\x00\x00\x00", /* 5480 */ "\x4f\xd6\x00\x00\x60\x66\x00\x00\x60\x6d\x00\x00\x53\x78\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x46\x4d\xcc\x00\x00\x4f\xcb\x5a\x5d\x4c\xbf\x00\x00\x5b\xe3\x00\x00\x60\x67\x4d\x5e\x50\x47\x00\x00\x00\x00\x51\x9d\x60\x6b\x60\x6c\x00\x00\x60\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x7b\x60\x86\x00\x00\x60\x77\x60\x76\x5c\x69\x60\x84\x60\x85\x63\x8c\x59\xa6\x60\x72\x00\x00\x50\x49\x00\x00\x5a\xda\x00\x00\x50\x68\x60\x74\x00\x00\x00\x00\x00\x00\x58\x6c\x00\x00\x00\x00\x60\x7d\x00\x00\x59\x6a\x00\x00\x60\x7e\x48\xa6\x53\xb6\x60\x73\x00\x00\x4d\xe4\x00\x00\x4b\xde\x57\x7b\x4d\x9f\x5a\xd4\x00\x00\x00\x00\x60\x7f\x58\x8d\x48\xa4\x60\x88\x60\x71\x59\x66\x60\x75\x60\x78\x60\x79\x60\x7c\x00\x00\x4e\x49\x00\x00\x60\x81\x60\x82\x00\x00\x60\x83\x60\x87\x60\x89\x5a\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe6\x53\x56\x60\x8b\x55\x7a\x51\x48\x52\xc3\x00\x00\x00\x00\x50\x7e\x58\x99\x00\x00\x00\x00\x00\x00\x5b\x7c\x60\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb7\x00\x00\x4d\xde\x60\x8d\x00\x00\x5e\x61", /* 5500 */ "\x00\x00\x59\x85\x00\x00\x00\x00\x00\x00\x00\x00\x56\x95\x4a\xbc\x00\x00\x48\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x92\x56\xc5\x60\x93\x00\x00\x00\x00\x60\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8c\x00\x00\x60\x90\x60\x91\x4e\x5d\x00\x00\x00\x00\x60\x94\x00\x00\x00\x00\x60\x95\x00\x00\x4e\x43\x00\x00\x55\xda\x57\xa7\x60\xa6\x4a\x4a\x00\x00\x60\xa5\x00\x00\x00\x00\x00\x00\x60\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9f\x00\x00\x57\x79\x60\x9d\x00\x00\x60\x9b\x00\x00\x50\x70\x5c\x64\x00\x00\x55\x6c\x00\x00\x00\x00\x60\x99\x48\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9c\x60\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x68\x00\x00\x00\x00\x53\xa0\x55\x56\x50\xb1\x60\x96\x00\x00\x00\x00\x53\x5e\x00\x00\x5c\xc3\x60\x9a\x52\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xa2\x60\xa3\x60\xa4\x58\xa4\x00\x00\x00\x00\x60\xb3\x56\xe3\x00\x00\x60\xb0\x00\x00", /* 5580 */ "\x50\x46\x60\xae\x57\xb8\x60\xaa\x55\x66\x00\x00\x00\x00\x50\xad\x60\xad\x4d\xec\x4d\xaf\x60\xa8\x00\x00\x00\x00\x00\x00\x60\x97\x00\x00\x60\xb2\x00\x00\x00\x00\x60\xb7\x00\x00\x00\x00\x00\x00\x4a\xac\x60\xb8\x00\x00\x00\x00\x58\x52\x4d\xc7\x00\x00\x60\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xab\x00\x00\x5a\xfa\x00\x00\x60\x98\x00\x00\x53\x88\x00\x00\x60\xac\x00\x00\x5a\x98\x00\x00\x60\xb5\x60\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc3\x58\xe0\x00\x00\x00\x00\x00\x00\x60\xbb\x00\x00\x00\x00\x60\xc8\x60\xc9\x00\x00\x00\x00\x00\x00\x60\xbd\x60\xa9\x55\x44\x60\xc0\x00\x00\x60\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc7\x60\xc2\x00\x00\x60\xb4\x00\x00\x57\xca\x00\x00\x56\x63\x60\xcc\x60\xc5\x60\xc1\x00\x00\x60\xca\x00\x00\x60\xb9\x60\xbe\x60\xbf\x00\x00\x00\x00\x60\xc4\x00\x00\x00\x00\x60\xc6\x60\xc7\x00\x00\x60\xcb\x00\x00\x60\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x74\x60\xd4\x00\x00", /* 5600 */ "\x60\xd5\x60\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcf\x4e\xcd\x00\x00\x00\x00\x60\xd0\x00\x00\x4c\xc1\x5c\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe9\x00\x00\x00\x00\x51\xee\x00\x00\x00\x00\x60\xce\x60\xbc\x00\x00\x00\x00\x00\x00\x60\xd3\x60\xd2\x00\x00\x00\x00\x60\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x60\xdb\x60\xd7\x00\x00\x00\x00\x00\x00\x5b\xf5\x4a\x50\x00\x00\x5c\x8d\x00\x00\x56\x5b\x00\x00\x00\x00\x60\xd9\x00\x00\x57\xfa\x00\x00\x00\x00\x00\x00\x4d\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe0\x60\xdc\x59\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe1\x00\x00\x00\x00\x60\xda\x60\xd8\x60\xde\x00\x00\x00\x00\x60\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xdd\x00\x00\x60\xe3\x00\x00\x00\x00\x00\x00\x53\xf6\x5c\xab\x5a\xea\x60\xe5\x55\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe6\x60\xe7\x00\x00\x00\x00\x00\x00", /* 5680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe8\x60\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xbe\x56\xe6\x00\x00\x00\x00\x00\x00\x60\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xeb\x00\x00\x00\x00\x60\xec\x00\x00\x00\x00\x54\x95\x56\x64\x00\x00\x60\xed\x4e\x78\x5c\xb5\x59\xf1\x60\xee\x57\x65\x00\x00\x4b\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf0\x00\x00\x5a\xaf\x00\x00\x00\x00\x50\xa6\x4a\xd0\x00\x00\x00\x00\x57\xa6\x60\xef\x00\x00\x00\x00\x00\x00\x60\xf1\x4d\x6c\x00\x00\x00\x00\x4d\x9b\x57\x5c\x60\xf2", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x53\xd3\x60\xf3\x00\x00\x5a\xb1\x00\x00\x54\xa5\x60\xf5\x60\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf6\x00\x00\x00\x00\x57\x61\x00\x00\x00\x00\x00\x00\x55\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd9\x5e\x77\x5e\x79\x00\x00\x5e\x78\x4d\x88\x5e\x7c\x5e\x7d\x4b\x78\x00\x00\x00\x00\x5e\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7b\x4a\x41\x5e\x7f\x00\x00\x00\x00\x4e\x99\x00\x00\x5b\xb6\x00\x00\x5e\x81\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf8\x00\x00\x00\x00\x4c\x5b\x00\x00\x5e\x70\x56\xad\x50\x52\x4e\x55\x5c\x99\x50\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8a\x00\x00\x00\x00\x4e\xe0\x56\xb2\x5e\x7e\x48\xd2\x57\xea\x4c\x78\x5c\x59\x53\xc1\x00\x00\x00\x00\x50\xa3\x00\x00\x56\xb8\x00\x00\x5e\x88\x5e\x82\x53\xb9\x5e\x84\x00\x00\x5e\x89\x00\x00\x53\x98\x00\x00\x00\x00\x00\x00\x5e\x8b\x00\x00\x00\x00\x5e\x8a\x50\x60\x00\x00\x00\x00\x00\x00\x5e\x87\x5e\x86\x00\x00\x00\x00\x00\x00", /* 5780 */ "\x00\x00\x00\x00\x4a\xb8\x50\xab\x51\xa1\x5e\x83\x5e\x85\x00\x00\x00\x00\x00\x00\x00\x00\x58\xcc\x5e\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdc\x5e\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x94\x5e\x72\x4d\x58\x5a\xaa\x5e\x8d\x00\x00\x50\x71\x5e\x91\x00\x00\x5e\x71\x00\x00\x4b\x87\x00\x00\x5e\x8c\x50\x86\x00\x00\x00\x00\x00\x00\x5e\x8f\x00\x00\x5e\x92\x00\x00\x00\x00\x00\x00\x5e\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x41\x48\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf0\x00\x00\x00\x00\x4a\x67\x5e\x90\x00\x00\x00\x00\x5e\x99\x00\x00\x53\xd1\x5e\x95\x00\x00\x00\x00\x5e\x96\x5e\x98\x5e\x97\x00\x00\x00\x00\x5e\x9f\x00\x00\x5a\x93\x49\xb9\x00\x00\x00\x00\x00\x00\x5e\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa3\x00\x00\x5e\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9b\x00\x00\x00\x00\x00\x00\x5e\x9d\x53\x81\x4e\x9a\x00\x00\x00\x00\x5e\xa2\x00\x00\x00\x00", /* 5800 */ "\x5e\xa4\x00\x00\x56\xc2\x00\x00\x00\x00\x00\x00\x4b\xd0\x5f\x60\x00\x00\x00\x00\x00\x00\x5e\xa0\x00\x00\x5e\xa1\x00\x00\x00\x00\x00\x00\x54\x55\x00\x00\x00\x00\x00\x00\x4b\xe8\x00\x00\x00\x00\x00\x00\x5e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa5\x00\x00\x5e\xa8\x49\x44\x00\x00\x00\x00\x4b\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x9b\x66\x94\x00\x00\x00\x00\x00\x00\x56\x7c\x00\x00\x00\x00\x56\x9f\x00\x00\x00\x00\x00\x00\x56\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xed\x5e\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x73\x00\x00", /* 5880 */ "\x5e\xae\x5e\xab\x00\x00\x4f\xb2\x00\x00\x55\xfa\x00\x00\x00\x00\x00\x00\x5e\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6a\x52\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x5d\x5e\xad\x00\x00\x00\x00\x00\x00\x5a\xf5\x58\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xaa\x4b\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x74\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7a\x00\x00\x00\x00\x00\x00\x5e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x76\x00\x00\x00\x00\x00\x00\x4d\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbe\x54\xc8\x00\x00\x5c\x53\x00\x00\x55\x9a\x00\x00\x00\x00\x50\x67\x00\x00\x00\x00\x4d\xf7\x00\x00\x00\x00\x59\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x61\xb9\x00\x00\x4a\xa5\x00\x00\x00\x00\x49\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb3\x00\x00\x58\x64\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x88\x58\x46\x57\x83\x00\x00\x00\x00\x5d\x8e\x4b\xdf\x00\x00\x59\xb8\x00\x00\x00\x00\x4d\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb8\x61\xb6\x00\x00\x4a\xf2\x00\x00\x56\xeb\x56\xaa\x4c\x93\x00\x00\x5c\xb1\x59\x8c\x4d\xba\x00\x00\x55\xa6\x00\x00\x00\x00\x57\x57\x00\x00\x00\x00\x59\xc3\x50\x85\x4e\xcf\x4b\xe0\x00\x00\x5f\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc5\x5e\x5c\x00\x00\x59\x79\x00\x00\x00\x00\x53\xe5\x52\xcd\x4c\x8f\x00\x00\x4c\x7c\x00\x00\x00\x00\x50\x9d\x5c\x81\x00\x00\x53\xf4\x00\x00\x00\x00\x49\x5c\x5f\xc7\x4f\x51\x56\xd6\x5f\xc9\x00\x00\x5f\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8d\x00\x00\x55\x7d\x00\x00\x00\x00\x48\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4e\x53\x4b\x00\x00\x52\xcb\x00\x00\x4e\xe8\x56\x9e\x00\x00\x00\x00\x00\x00\x4d\xc2\x00\x00\x00\x00", /* 5980 */ "\x00\x00\x63\x9a\x54\xe6\x63\x9b\x57\x9e\x00\x00\x5c\x51\x4c\xbd\x51\xe7\x00\x00\x54\xd0\x00\x00\x00\x00\x63\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc9\x4e\xca\x00\x00\x00\x00\x59\x9e\x63\xa0\x00\x00\x52\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9f\x63\xa4\x57\x77\x00\x00\x00\x00\x4c\x61\x63\x9d\x63\x9e\x63\xa2\x00\x00\x00\x00\x52\xdc\x63\xa7\x00\x00\x00\x00\x63\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x63\x00\x00\x53\xdd\x00\x00\x00\x00\x63\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb6\x00\x00\x00\x00\x00\x00\x63\xa1\x55\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x84\x4d\x63\x63\xa5\x58\xd4\x57\xae\x00\x00\x00\x00\x63\xa8\x63\xaf\x00\x00\x59\xa5\x00\x00\x4f\x4a\x63\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xae\x00\x00\x50\xd0\x00\x00\x00\x00\x59\xcb\x00\x00\x00\x00\x00\x00\x4e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb0\x00\x00\x59\xf5\x00\x00\x00\x00\x00\x00\x5c\x6b", /* 5a00 */ "\x00\x00\x57\x9f\x00\x00\x57\x7e\x51\xa5\x63\xaa\x63\xab\x4f\x5f\x63\xad\x63\xb2\x00\x00\x00\x00\x63\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb5\x00\x00\x63\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x52\xee\x00\x00\x00\x00\x00\x00\x52\xc7\x00\x00\x00\x00\x4f\xe9\x55\x90\x00\x00\x00\x00\x63\xb6\x00\x00\x4b\xef\x00\x00\x00\x00\x00\x00\x52\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8a\x63\xb3\x00\x00\x63\xb4\x00\x00\x54\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbc\x00\x00\x00\x00\x00\x00\x63\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc4\x00\x00\x00\x00\x57\x92\x63\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb9\x00\x00\x00\x00\x50\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x44\x63\xbe\x55\x95\x63\xc2\x00\x00\x00\x00\x63\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf5", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x64\x63\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc6\x58\x51\x00\x00\x66\x95\x00\x00\x00\x00\x63\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc4\x00\x00\x00\x00\x4e\xdd\x55\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb4\x00\x00\x00\x00\x58\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc7\x00\x00\x63\xc8\x00\x00\x63\xcd\x00\x00\x63\xcf\x00\x00\x00\x00\x00\x00\x63\xd0\x00\x00\x00\x00\x00\x00\x63\xca\x4b\x75\x00\x00\x63\xcb\x00\x00\x00\x00\x63\xce\x00\x00\x00\x00\x52\xda\x00\x00\x63\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd3\x63\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd4\x00\x00\x5d\x99\x00\x00\x00\x00\x63\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x73\x63\xdc\x00\x00\x63\xdd\x50\x77\x5a\xcf\x00\x00\x5c\x76\x4a\xe5\x56\x90\x63\xd9\x5c\xc2\x5c\x6e\x58\xa1\x00\x00\x52\x6f\x00\x00\x00\x00\x63\xde\x4e\xbd\x4d\x62\x63\xda\x59\x47\x00\x00\x00\x00\x4d\xa1\x51\xce\x00\x00\x5c\xaa\x00\x00\x00\x00\x00\x00\x55\xea\x63\x8f\x00\x00\x63\xdb\x00\x00\x4c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe5\x00\x00\x00\x00\x52\xf4\x00\x00\x00\x00", /* 5b80 */ "\x63\x52\x52\xfd\x00\x00\x56\x9d\x63\x53\x5b\x4c\x00\x00\x5a\x8f\x55\xd7\x48\xb1\x00\x00\x56\x6e\x57\x8b\x00\x00\x00\x00\x4d\xe9\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x63\x54\x00\x00\x5c\x7a\x4d\x79\x5b\xe5\x4b\xa7\x57\x91\x59\xca\x49\x46\x55\xb4\x00\x00\x4a\x89\x55\x94\x50\x6d\x58\xfa\x55\xd1\x63\x56\x4e\x62\x00\x00\x00\x00\x00\x00\x58\x7c\x4d\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd6\x00\x00\x00\x00\x4d\xa5\x59\x88\x58\x9d\x4e\xd1\x00\x00\x63\x57\x54\xdc\x00\x00\x00\x00\x00\x00\x50\x8e\x49\x97\x56\x7e\x00\x00\x00\x00\x4e\xc4\x00\x00\x4e\xc3\x59\xf9\x52\x7c\x50\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xba\x00\x00\x00\x00\x00\x00\x52\x62\x00\x00\x4d\xad\x5a\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7e\x52\xae\x49\xeb\x00\x00\x4d\x71\x00\x00\x00\x00\x63\x5b\x51\x68\x00\x00\x00\x00\x5b\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5c\x00\x00\x63\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xe6\x4b\xd3\x56\x62\x59\x50\x4b\x5c\x00\x00\x00\x00\x55\xd8", /* 5c00 */ "\x00\x00\x4c\x83\x00\x00\x00\x00\x55\x85\x00\x00\x4f\x4b\x00\x00\x00\x00\x57\xbd\x5c\x91\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa0\x00\x00\x55\x79\x00\x00\x00\x00\x4b\xfa\x63\xd7\x4e\xe1\x00\x00\x4a\x5e\x00\x00\x55\x70\x00\x00\x63\xd8\x4a\x42\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcb\x00\x00\x5a\x68\x5f\xcc\x00\x00\x59\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcc\x00\x00\x00\x00\x5f\xce\x00\x00\x00\x00\x00\x00\x55\xab\x59\xfb\x4a\x7f\x63\x8b\x52\xe0\x4f\xa0\x57\xb1\x52\xf1\x4f\xd5\x53\xa7\x49\xe2\x00\x00\x00\x00\x4f\xd2\x00\x00\x00\x00\x54\x9d\x56\xea\x4f\x8d\x57\xdc\x00\x00\x00\x00\x55\xb9\x53\xc0\x63\x8d\x58\xbb\x00\x00\x00\x00\x00\x00\x5b\x59\x00\x00\x00\x00\x00\x00\x63\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf3\x00\x00\x57\x60\x51\xc4\x00\x00\x63\x90\x00\x00\x51\xc3\x63\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x99\x57\x6d\x00\x00\x55\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd8\x61\x48\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8d", /* 5c80 */ "\x00\x00\x56\x8b\x53\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x4c\x00\x00\x00\x00\x00\x00\x61\x47\x61\x49\x00\x00\x00\x00\x61\x4a\x61\x4f\x00\x00\x00\x00\x49\xec\x00\x00\x61\x4b\x4c\xd9\x61\x4d\x61\x4e\x61\x50\x4b\x5a\x61\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x53\x61\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x72\x00\x00\x61\x56\x61\x55\x51\x8c\x00\x00\x00\x00\x00\x00\x61\x57\x00\x00\x5a\xbf\x00\x00\x61\x52\x00\x00\x61\x5a\x48\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x61\x54\x00\x00\x50\x9a\x00\x00\x61\x59\x00\x00\x00\x00\x61\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5f\x00\x00\x00\x00\x61\x5d\x61\x5f\x51\xcc\x00\x00\x4b\xea\x00\x00\x5a\x99\x00\x00\x00\x00\x54\x6d\x00\x00\x00\x00\x4c\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xfd\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x61\x60\x61\x61\x00\x00\x00\x00\x61\x67\x4a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xdd\x00\x00\x59\x62\x00\x00\x00\x00\x00\x00\x00\x00\x61\x68\x00\x00\x00\x00\x61\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x65\x00\x00\x61\x63\x61\x62\x00\x00\x49\x60\x00\x00\x00\x00\x00\x00\x5b\x58\x61\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6c\x61\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x9b\x00\x00\x00\x00\x61\x73\x61\x72\x54\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x69\x00\x00\x00\x00\x61\x6e\x00\x00\x61\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x74\x00\x00\x61\x71\x61\x6d\x00\x00\x00\x00\x61\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x61\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d80 */ "\x00\x00\x00\x00\x61\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x77\x00\x00\x00\x00\x00\x00\x61\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7d\x00\x00\x4a\xa7\x5b\xdc\x00\x00\x00\x00\x59\x52\x4a\x52\x00\x00\x00\x00\x4d\x44\x5c\x94\x54\x69\x4f\xdd\x4d\x4e\x00\x00\x57\xd6\x00\x00\x00\x00\x49\xed\x5e\x6f\x00\x00\x4e\xb9\x59\xd0\x56\x68\x48\xcc\x00\x00\x00\x00\x58\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x84\x4f\x8e\x00\x00", /* 5e00 */ "\x00\x00\x49\x72\x55\xcf\x49\xbb\x00\x00\x56\x47\x4c\x4b\x00\x00\x55\xa5\x00\x00\x00\x00\x00\x00\x58\x43\x00\x00\x00\x00\x60\xf7\x5b\x6a\x60\xfa\x00\x00\x00\x00\x60\xf9\x53\x61\x56\xfa\x00\x00\x51\x51\x60\xf8\x5b\xe2\x49\xae\x5b\xc3\x4b\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf7\x5b\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x4f\x48\xee\x00\x00\x00\x00\x60\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x41\x4a\x43\x00\x00\x00\x00\x60\xfc\x60\xfd\x52\x51\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7d\x00\x00\x61\x42\x4c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x43\x52\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x44\x00\x00\x00\x00\x61\x45\x00\x00\x00\x00\x61\x46\x4a\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc8\x53\xbc\x52\xe9\x00\x00\x49\xa1\x00\x00\x58\xd1\x00\x00\x64\x7b\x4e\x63\x5a\x77\x5a\x64\x00\x00\x4d\x84", /* 5e80 */ "\x61\xce\x00\x00\x00\x00\x00\x00\x5c\x4f\x00\x00\x54\x8d\x49\x73\x00\x00\x00\x00\x4a\xb1\x61\xd0\x00\x00\x00\x00\x00\x00\x58\xf1\x51\xad\x61\xcf\x00\x00\x50\x83\x5a\x46\x4b\x77\x61\xd1\x4b\x8b\x00\x00\x52\x8e\x4c\xfc\x00\x00\x4c\xad\x00\x00\x53\x73\x4c\x6f\x61\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd2\x4b\xc7\x5c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd7\x00\x00\x61\xd5\x55\xfb\x50\x55\x5a\x59\x61\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4e\x50\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xda\x61\xd9\x50\xa9\x00\x00\x00\x00\x51\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdc\x00\x00\x61\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x68\x00\x00\x59\x73\x57\x42\x00\x00\x00\x00\x4f\x48\x00\x00\x00\x00\x00\x00\x5f\xc2\x5c\xa4", /* 5f00 */ "\x50\x4a\x5e\x6d\x59\xeb\x53\xf9\x53\x4a\x00\x00\x00\x00\x00\x00\x5f\xc3\x00\x00\x49\x77\x60\x4e\x00\x00\x00\x00\x00\x00\x55\xbc\x00\x00\x60\x51\x00\x00\x4d\x4d\x00\x00\x59\xfc\x00\x00\x4c\xa4\x4d\xea\x00\x00\x00\x00\x4a\x7a\x00\x00\x00\x00\x00\x00\x4b\x7c\x5b\x65\x00\x00\x00\x00\x00\x00\x00\x00\x52\x76\x58\x72\x4e\x41\x00\x00\x63\x94\x63\x93\x00\x00\x00\x00\x63\x95\x00\x00\x57\x85\x00\x00\x54\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4f\x54\x5f\x00\x00\x63\x97\x00\x00\x00\x00\x00\x00\x66\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x87\x00\x00\x4d\x8a\x4b\x51\x00\x00\x51\xbb\x63\x89\x63\x88\x63\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x59\xcc\x00\x00\x00\x00\x00\x00\x61\x8b\x58\xcd\x00\x00\x57\x4e\x00\x00\x59\x86\x00\x00\x00\x00\x49\xc9\x49\x8c\x00\x00\x49\x93\x53\x8e\x00\x00\x00\x00\x5b\x63\x5a\x50\x00\x00\x61\x7c\x00\x00\x00\x00\x00\x00\x61\x7d\x00\x00\x59\xda\x00\x00\x4a\x59\x49\x6b\x00\x00\x00\x00\x00\x00", /* 5f80 */ "\x57\x9a\x5b\x98\x61\x7e\x00\x00\x4f\xb5\x4a\xfc\x00\x00\x61\x7f\x4d\xdb\x61\x81\x4e\x52\x51\xc8\x61\x82\x00\x00\x00\x00\x00\x00\x58\xeb\x00\x00\x57\x5d\x00\x00\x00\x00\x61\x83\x00\x00\x4b\x63\x53\x67\x61\x84\x00\x00\x00\x00\x61\x85\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x86\x00\x00\x59\x4d\x00\x00\x00\x00\x61\x87\x57\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x88\x00\x00\x4b\x62\x00\x00\x00\x00\x00\x00\x00\x00\x61\x89\x4e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc3\x61\xdf\x49\x78\x59\xe3\x00\x00\x00\x00\x61\xe0\x00\x00\x00\x00\x4e\xc8\x54\xcb\x00\x00\x61\xe2\x66\xfd\x66\xfc\x60\x4f\x00\x00\x00\x00\x00\x00\x61\xe1\x5b\xbd\x57\x9d\x52\x46\x00\x00\x00\x00\x00\x00\x62\x63\x00\x00\x00\x00\x5b\xd1\x61\xe6\x00\x00\x00\x00\x61\xe7\x00\x00\x00\x00\x5a\x67\x00\x00\x00\x00\x61\xeb\x50\x8d\x00\x00\x61\xec\x61\xe4\x00\x00\x00\x00\x4a\x60\x00\x00\x00\x00\x00\x00\x52\xed\x00\x00\x00\x00\x61\xed\x00\x00\x00\x00\x58\xc2\x00\x00\x4d\xf5\x61\xe8\x4c\x7e", /* 6000 */ "\x4e\x53\x56\xab\x56\x6b\x61\xe3\x61\xe5\x61\xe9\x61\xea\x00\x00\x00\x00\x00\x00\x61\xf6\x00\x00\x00\x00\x61\xf3\x5a\xf4\x61\xf2\x00\x00\x00\x00\x53\x4d\x00\x00\x5b\x9b\x53\x62\x49\xbf\x00\x00\x00\x00\x61\xee\x00\x00\x61\xf1\x51\x4f\x56\x5c\x00\x00\x00\x00\x4b\x41\x61\xf8\x00\x00\x00\x00\x00\x00\x4e\xb0\x61\xf0\x58\xd3\x5a\xb8\x61\xf4\x4d\x76\x61\xf5\x00\x00\x00\x00\x00\x00\x54\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x7c\x67\x41\x00\x00\x00\x00\x61\xf7\x00\x00\x67\x45\x61\xfd\x55\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x55\x00\x00\x4e\x70\x00\x00\x00\x00\x50\x76\x00\x00\x4d\xe2\x00\x00\x00\x00\x56\x41\x00\x00\x00\x00\x00\x00\x67\x46\x67\x43\x00\x00\x00\x00\x67\x42\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x76\x67\x47\x58\xf3\x00\x00\x00\x00\x67\x44\x4d\xdd\x4b\xf6\x62\x41\x4b\xb1\x56\xf0\x4d\x47\x00\x00\x58\x42\x54\x41\x00\x00\x00\x00\x50\x72\x00\x00\x00\x00\x4b\xf0\x00\x00\x61\xf9\x61\xfa\x61\xfc\x61\xfb\x52\xd4\x62\x42\x00\x00\x5a\x61", /* 6080 */ "\x00\x00\x00\x00\x00\x00\x62\x47\x54\x64\x00\x00\x00\x00\x00\x00\x00\x00\x58\x44\x00\x00\x00\x00\x62\x49\x4d\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x62\x48\x00\x00\x4e\x7a\x00\x00\x62\x43\x00\x00\x00\x00\x00\x00\x62\x44\x62\x4a\x00\x00\x62\x46\x00\x00\x57\xf1\x5a\x66\x00\x00\x00\x00\x4e\x5c\x00\x00\x00\x00\x5a\xc2\x00\x00\x52\xf9\x00\x00\x00\x00\x67\x48\x58\xfb\x62\x45\x00\x00\x52\x96\x00\x00\x62\x4d\x49\x4f\x00\x00\x62\x52\x00\x00\x00\x00\x00\x00\x4e\xc1\x00\x00\x00\x00\x62\x4c\x4b\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8a\x62\x50\x00\x00\x00\x00\x00\x00\x4f\xa9\x57\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x94\x00\x00\x00\x00\x00\x00\x56\xe7\x00\x00\x00\x00\x62\x4f\x00\x00\x62\x51\x00\x00\x58\x47\x62\x4e\x00\x00\x57\xa8\x4e\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8c\x4f\xe4\x49\xd1\x4a\x6d\x00\x00\x49\x59\x62\x4b\x49\xd0\x4b\x4c\x4d\x7f\x4b\xe7\x00\x00\x00\x00\x58\x8c\x62\x57\x00\x00\x4e\x6c\x00\x00\x00\x00\x54\xc6\x58\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6100 */ "\x62\x58\x4a\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x49\x00\x00\x5a\x9b\x5a\x85\x00\x00\x00\x00\x00\x00\x67\x4a\x62\x59\x59\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x55\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xcf\x62\x53\x00\x00\x00\x00\x62\x56\x4c\x7f\x00\x00\x62\x54\x50\xa1\x00\x00\x00\x00\x00\x00\x62\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc7\x00\x00\x62\x5b\x00\x00\x4e\x65\x00\x00\x55\x98\x00\x00\x00\x00\x55\x86\x00\x00\x00\x00\x00\x00\x52\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x51\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x7b\x50\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5c\x00\x00\x50\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x90\x00\x00\x00\x00\x5a\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5f\x4d\xa8\x67\x4c\x00\x00\x00\x00\x62\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb5\x00\x00\x00\x00\x00\x00\x4b\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb7\x00\x00\x48\xc2\x67\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4f\x50\xc0\x00\x00\x62\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb1", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x50\x00\x00\x4c\xe9\x00\x00\x57\xeb\x65\xa6\x58\xe6\x55\xf8\x54\xd5\x58\x57\x4a\x69\x57\xd1\x4f\x85\x00\x00\x00\x00\x62\x7e\x4e\x93\x65\xa7\x5b\x5d\x00\x00\x53\xdc\x65\xa8\x00\x00\x00\x00\x00\x00\x65\xa9\x00\x00\x65\xab\x65\xaa\x00\x00\x65\xad\x65\xac\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x78\x00\x00\x65\xae\x00\x00\x51\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc0\x4a\xf6\x00\x00\x00\x00\x4e\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe5\x66\xe4\x4c\x5f\x56\x9a\x49\x83\x00\x00\x66\xe6\x00\x00\x00\x00\x00\x00\x55\x68\x66\xe7\x66\xe8\x00\x00\x55\xd5\x5f\xcf\x49\xc4\x5a\xf9\x00\x00\x00\x00\x53\xca\x48\xc6\x4a\xf1\x54\xd2\x00\x00\x00\x00\x00\x00\x57\x70\x00\x00\x00\x00\x50\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x7b\x00\x00\x00\x00\x54\x44\x5b\xb3\x00\x00\x50\xa8\x5f\xd0\x55\x48\x59\x90\x53\x44\x48\xe6\x4a\x56\x54\xc4\x00\x00\x00\x00\x48\xe1\x00\x00\x00\x00\x4c\x97\x00\x00\x00\x00\x53\x9b\x00\x00\x00\x00\x4b\xf2\x00\x00\x5b\x72\x4a\x70", /* 6280 */ "\x4e\xbb\x00\x00\x00\x00\x00\x00\x4a\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf0\x48\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd5\x55\xe2\x5c\x45\x00\x00\x57\x56\x4b\xb5\x50\x59\x5b\x7b\x00\x00\x4c\xa6\x53\x77\x00\x00\x00\x00\x00\x00\x5f\xd1\x50\x79\x51\xd4\x54\x60\x00\x00\x4e\x44\x49\x48\x00\x00\x00\x00\x53\x8b\x00\x00\x00\x00\x53\x9c\x56\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x49\x47\x00\x00\x00\x00\x00\x00\x4b\x76\x00\x00\x00\x00\x00\x00\x52\xa7\x00\x00\x5f\xd2\x59\x5a\x4a\x8a\x00\x00\x52\x93\x00\x00\x00\x00\x4c\x98\x00\x00\x5b\xf3\x4b\x43\x49\xef\x52\xb3\x52\xe8\x50\xac\x5f\xd3\x00\x00\x48\xe7\x53\x64\x51\x81\x00\x00\x4d\x75\x00\x00\x4f\xdb\x57\x78\x48\xcd\x00\x00\x57\x6f\x5f\xd5\x4f\xcf\x5c\x5e\x5f\xd4\x5b\x70\x48\xdc\x00\x00\x00\x00\x52\xe1\x00\x00\x00\x00\x51\xa2\x4e\xef\x00\x00\x5a\x55\x50\xb8\x53\x41\x49\xa5\x5a\xf0\x00\x00\x00\x00\x50\xa7\x55\xc2\x5f\xd6\x5b\x9d\x00\x00\x4d\x50\x00\x00\x54\xac\x56\x49\x00\x00\x5f\xd8\x50\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x53\xb3\x5c\x47\x55\xaf\x52\xc2", /* 6300 */ "\x00\x00\x4a\x76\x4d\x72\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb7\x65\xfb\x48\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x50\x87\x00\x00\x00\x00\x56\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x57\x7a\x00\x00\x00\x00\x00\x00\x5b\xbe\x51\xcd\x00\x00\x57\xcd\x56\xa1\x58\xad\x52\xd2\x4b\x52\x5f\xd7\x5b\x96\x4e\xb6\x4e\x73\x00\x00\x00\x00\x48\xa3\x00\x00\x53\x52\x4a\xeb\x00\x00\x00\x00\x00\x00\x5b\x92\x00\x00\x00\x00\x65\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xd9\x57\x46\x00\x00\x00\x00\x57\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe5\x5f\xdb\x00\x00\x57\x51\x50\xa5\x00\x00\x00\x00\x5c\x5d\x00\x00\x5f\xda\x48\xc5\x4d\xb3\x55\x73\x52\xf2\x4f\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xcb\x56\x91\x00\x00\x4e\xf0\x4e\x5b\x4b\x57\x00\x00\x00\x00\x00\x00\x53\x96\x00\x00\x5f\xe5\x00\x00\x00\x00\x00\x00\x5f\xe2\x4f\xdc\x00\x00\x00\x00\x5f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb6\x4f\x7d\x00\x00\x00\x00\x5f\xdf\x52\xec\x00\x00\x00\x00\x00\x00\x00\x00", /* 6380 */ "\x58\x66\x00\x00\x4b\x81\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xdd\x55\xd9\x4b\x95\x5f\xe4\x00\x00\x5b\x66\x00\x00\x5f\xe0\x56\xcc\x53\xfd\x00\x00\x53\x65\x00\x00\x00\x00\x00\x00\x59\xb3\x00\x00\x4f\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd2\x00\x00\x56\xbc\x4a\x58\x00\x00\x4f\x73\x00\x00\x50\x78\x57\x66\x59\x7a\x4a\xea\x00\x00\x5f\xe3\x5f\xdc\x5f\xe6\x00\x00\x65\xfd\x00\x00\x00\x00\x51\xaf\x5f\xe1\x00\x00\x00\x00\x5b\xbf\x4b\x47\x00\x00\x49\xf3\x00\x00\x5f\xe7\x00\x00\x5f\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xec\x00\x00\x5f\xf0\x00\x00\x00\x00\x54\xdf\x00\x00\x00\x00\x00\x00\x5c\x82\x5f\xee\x52\x89\x56\xe0\x00\x00\x49\xe4\x00\x00\x00\x00\x00\x00\x59\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xed\x00\x00\x5f\xea\x57\xd4\x00\x00\x4a\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4b\x4f\xbd\x00\x00\x00\x00\x4f\x72\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe8\x00\x00\x5a\xad\x00\x00\x5f\xdd\x00\x00\x5f\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x50\xbe\x00\x00\x5f\xeb", /* 6400 */ "\x49\xf2\x4c\xe8\x51\xa6\x00\x00\x00\x00\x4f\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf4\x5f\xf7\x00\x00\x00\x00\x49\xaa\x4a\xa3\x00\x00\x00\x00\x4a\xe9\x55\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf5\x56\x71\x00\x00\x4c\xe2\x00\x00\x5f\xf6\x5f\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf8\x00\x00\x00\x00\x00\x00\x56\xc1\x00\x00\x48\xe0\x4a\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xae\x00\x00\x00\x00\x49\xea\x00\x00\x66\x41\x00\x00\x5f\xf3\x00\x00\x00\x00\x55\x84\x5f\xf2\x48\xd9\x59\xa0\x49\x98\x00\x00\x56\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xef\x00\x00\x56\x44\x00\x00\x00\x00\x00\x00\x5b\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xdc\x00\x00\x52\xa5\x00\x00\x00\x00\x00\x00\x5f\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9f\x52\xa0\x60\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6480 */ "\x00\x00\x00\x00\x51\x6c\x00\x00\x5f\xfb\x4f\xee\x00\x00\x53\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x65\x54\xf5\x00\x00\x00\x00\x56\x5a\x5f\xfd\x00\x00\x00\x00\x60\x44\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x57\x00\x00\x00\x00\x00\x00\x00\x00\x51\x63\x00\x00\x00\x00\x54\x6b\x49\xa4\x4a\xe8\x00\x00\x5c\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xeb\x00\x00\x60\x42\x60\x43\x00\x00\x60\x45\x00\x00\x4d\xb2\x00\x00\x00\x00\x00\x00\x60\x46\x00\x00\x50\xdd\x00\x00\x00\x00\x55\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xd8\x54\x87\x00\x00\x60\x47\x00\x00\x54\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x60\x48\x66\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x73\x00\x00\x00\x00\x00\x00\x60\x4a\x00\x00\x60\x49\x00\x00\x49\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6500 */ "\x53\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xef\x00\x00\x00\x00\x60\x4d\x5b\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb6\x66\x56\x55\xd4\x00\x00\x5c\xfb\x4c\xc3\x00\x00\x4d\x45\x00\x00\x00\x00\x4c\x65\x5b\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6a\x00\x00\x00\x00\x58\xa6\x6a\xcc\x00\x00\x00\x00\x4b\x70\x00\x00\x00\x00\x52\x95\x00\x00\x4f\xc7\x00\x00\x00\x00\x00\x00\x66\x57\x48\xbc\x00\x00\x00\x00\x4f\x6c\x00\x00\x51\x52\x00\x00\x49\x76\x4a\x48\x00\x00\x00\x00\x00\x00\x4c\xd1\x55\x42\x00\x00\x00\x00\x4b\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x66\x58\x4f\xb3\x00\x00\x00\x00\x00\x00\x55\xfc\x00\x00\x54\x63\x00\x00\x5b\x9c\x00\x00\x00\x00\x4c\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc3\x00\x00\x00\x00\x00\x00\x5b\x4b\x49\x94\x00\x00\x00\x00\x00\x00\x66\xb2\x48\xde\x00\x00\x66\xb4\x00\x00\x00\x00\x00\x00\x4b\xb6\x00\x00\x51\x6f\x00\x00\x6b\x9b\x58\xb0\x00\x00\x00\x00\x5b\x86\x00\x00\x57\xd2\x00\x00\x00\x00\x4f\x90\x4a\x83\x00\x00\x4c\xaa\x00\x00\x5b\x56\x00\x00\x67\x5d\x00\x00\x4b\xce\x00\x00\x56\x59\x58\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x5d\x00\x00\x00\x00\x66\xb5\x55\xa8\x00\x00\x00\x00\x00\x00\x53\x74\x00\x00\x66\xb8\x66\xb7\x51\xc2\x66\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfc\x66\xb9\x00\x00\x66\xba\x5c\x86\x00\x00\x00\x00\x66\xbb\x00\x00\x00\x00\x00\x00\x66\xbc\x53\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xdd\x00\x00\x4e\xc7\x00\x00\x00\x00\x54\xd4\x4b\x49\x4f\xc8\x5b\xbb\x5a\xe6\x00\x00\x00\x00\x59\x4e\x58\xf0\x65\xb7\x65\xb8\x65\xb9\x4d\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb0\x50\x96\x00\x00\x00\x00\x57\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6600 */ "\x65\xbf\x00\x00\x48\xb9\x65\xbd\x00\x00\x00\x00\x50\xa4\x00\x00\x00\x00\x00\x00\x65\xba\x00\x00\x49\xfc\x00\x00\x52\x98\x4e\x89\x00\x00\x00\x00\x00\x00\x59\xd6\x57\xf3\x65\xbe\x00\x00\x00\x00\x00\x00\x65\xbb\x00\x00\x00\x00\x00\x00\x65\xc2\x00\x00\x58\xc6\x5a\x53\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb9\x00\x00\x52\x61\x5c\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x71\x00\x00\x55\xc6\x00\x00\x65\xc4\x00\x00\x00\x00\x65\xc3\x65\xc6\x65\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xe6\x00\x00\x58\x74\x00\x00\x00\x00\x65\xca\x00\x00\x4e\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9b\x55\x6e\x00\x00\x00\x00\x65\xcb\x00\x00\x00\x00\x55\x59\x58\x9f\x65\xc9\x5a\xcd\x65\xcc\x65\xce\x00\x00\x00\x00\x57\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc8\x00\x00\x65\xcd\x00\x00\x00\x00\x57\xed\x00\x00\x4e\x7e\x00\x00\x4a\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd4\x4f\xaf\x57\xf9\x00\x00\x00\x00\x00\x00\x54\x88\x00\x00\x4f\xa6\x65\xcf\x00\x00\x00\x00\x5b\xc6\x00\x00\x00\x00\x00\x00\x51\x60\x00\x00", /* 6680 */ "\x00\x00\x00\x00\x5a\xdc\x00\x00\x65\xd0\x00\x00\x00\x00\x58\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x55\xed\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4f\x48\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd2\x6a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x49\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xee\x00\x00\x65\xd5\x65\xd6\x53\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd7\x00\x00\x00\x00\x65\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xba\x00\x00\x54\x9b\x59\xb6\x4c\xfb\x00\x00\x00\x00\x65\xc1\x00\x00\x49\xdb\x00\x00\x00\x00\x51\xfb\x00\x00\x5a\xf7\x56\xe5", /* 6700 */ "\x5c\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc1\x5a\x70\x66\x63\x53\x94\x00\x00\x4c\x9f\x00\x00\x00\x00\x66\x74\x00\x00\x00\x00\x00\x00\x56\x57\x66\x7e\x00\x00\x50\xc9\x00\x00\x00\x00\x00\x00\x57\x9c\x00\x00\x4a\x4f\x00\x00\x53\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x9d\x00\x00\x52\xbd\x00\x00\x57\xb3\x52\xa8\x49\x5e\x5a\xfc\x00\x00\x55\xf4\x00\x00\x5b\xeb\x00\x00\x00\x00\x53\xd2\x4b\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x9b\x00\x00\x00\x00\x58\xdf\x00\x00\x00\x00\x55\x51\x00\x00\x5a\xd2\x54\xa7\x00\x00\x00\x00\x4c\xca\x00\x00\x64\xbd\x55\x5c\x00\x00\x00\x00\x64\xba\x00\x00\x50\xed\x58\xd2\x49\xc3\x4a\xe4\x00\x00\x64\xbb\x00\x00\x00\x00\x5b\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc4\x00\x00\x64\xbc\x55\xf7\x4c\xdb\x56\xf4\x00\x00\x00\x00\x00\x00\x50\xb3\x00\x00\x00\x00\x59\x8f\x64\xbe\x64\xc1\x00\x00\x00\x00\x4d\xbb\x00\x00\x49\x4d\x4f\x7c\x00\x00\x65\xbc\x64\xc2\x00\x00\x64\xc5\x00\x00\x64\xca\x00\x00\x00\x00\x00\x00\x00\x00\x64\xcb\x00\x00\x56\x69\x48\xe4", /* 6780 */ "\x00\x00\x4e\xaa\x00\x00\x00\x00\x4d\x59\x00\x00\x00\x00\x64\xc0\x00\x00\x57\x98\x00\x00\x64\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8e\x00\x00\x51\x76\x64\xc3\x00\x00\x52\x56\x00\x00\x4d\x9c\x5b\xa5\x64\xc7\x00\x00\x00\x00\x00\x00\x55\xdf\x5a\xe5\x00\x00\x64\xbf\x00\x00\x64\xc4\x64\xc6\x00\x00\x54\x59\x4c\x84\x00\x00\x64\xc8\x00\x00\x50\x7d\x64\xd1\x00\x00\x00\x00\x64\xd6\x00\x00\x64\xd4\x4e\xdb\x4e\xce\x64\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xdd\x00\x00\x64\xd9\x49\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd7\x52\xb2\x4c\xcb\x53\xe1\x54\xbd\x54\xe0\x00\x00\x00\x00\x00\x00\x64\xce\x64\xd3\x64\xd5\x00\x00\x4d\x92\x64\xd7\x5c\x96\x00\x00\x52\xfa\x00\x00\x64\xdb\x00\x00\x00\x00\x49\xe8\x00\x00\x00\x00\x00\x00\x64\xd0\x00\x00\x00\x00\x4e\xec\x00\x00\x00\x00\x50\x62\x64\xcc\x5b\xf8\x00\x00\x51\x99\x49\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xde\x00\x00\x55\xc0", /* 6800 */ "\x64\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x44\x00\x00\x49\x8b\x5b\x5b\x64\xcd\x64\xcf\x4b\xaf\x64\xd2\x00\x00\x64\xdc\x50\xb7\x00\x00\x55\xf6\x00\x00\x56\x48\x00\x00\x00\x00\x53\xdb\x50\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe8\x00\x00\x00\x00\x00\x00\x58\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf1\x5b\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xdf\x64\xe0\x00\x00\x00\x00\x00\x00\x59\x9a\x4d\xca\x4c\xf8\x00\x00\x00\x00\x4c\xf0\x5a\xd3\x64\xee\x00\x00\x64\xed\x64\xeb\x4d\x91\x56\xd1\x64\xe5\x57\xa5\x50\x93\x00\x00\x48\xb7\x64\xf0\x64\xef\x00\x00\x5c\x60\x00\x00\x64\xe3\x00\x00\x57\x49\x55\x43\x00\x00\x4e\x58\x4f\x7b\x64\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe1\x64\xe2\x64\xe4\x4b\x55\x64\xe6\x54\x65\x64\xea\x64\xec\x4f\x50\x5c\x4e\x00\x00\x64\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf4\x00\x00\x57\x50\x64\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6880 */ "\x00\x00\x51\x5a\x00\x00\x64\xe7\x00\x00\x52\x57\x48\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf3\x00\x00\x00\x00\x00\x00\x64\xf6\x00\x00\x00\x00\x00\x00\x4d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x52\x6e\x57\xdf\x50\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x56\x94\x00\x00\x56\xdc\x58\xb4\x00\x00\x00\x00\x55\xe0\x00\x00\x64\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xeb\x00\x00\x64\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7e\x00\x00\x53\xe4\x00\x00\x4d\x98\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf3\x00\x00\x00\x00\x5c\x78\x00\x00\x00\x00\x4e\xab\x00\x00\x53\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc3\x00\x00\x00\x00\x65\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4d\x00\x00\x65\x42\x50\xe1\x00\x00\x00\x00\x00\x00\x50\x63\x00\x00\x00\x00\x00\x00\x64\xfd\x4d\x77\x00\x00\x64\xfa\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x65\x44\x00\x00\x00\x00\x00\x00\x59\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x43\x00\x00\x5b\xb1\x5c\x55\x00\x00\x65\x47\x00\x00\x4f\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfb\x64\xfc\x00\x00\x00\x00\x00\x00\x65\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x76\x00\x00\x00\x00\x59\xab\x00\x00\x00\x00\x00\x00\x65\x52\x00\x00\x00\x00\x00\x00\x00\x00\x65\x49\x00\x00\x00\x00\x00\x00\x4a\xa9\x00\x00\x4a\xba\x00\x00\x00\x00\x65\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa7\x00\x00\x00\x00\x65\x45\x00\x00\x00\x00\x4a\x9f\x00\x00\x00\x00\x65\x4c\x50\xe2\x00\x00\x65\x4a\x00\x00\x00\x00\x65\x59\x00\x00\x00\x00\x65\x58\x00\x00\x00\x00\x00\x00\x00\x00\x65\x4e\x00\x00\x00\x00\x64\xf9\x00\x00\x00\x00\x65\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4c\x65\x51\x65\x5a\x00\x00\x00\x00\x51\xa4\x00\x00\x00\x00\x00\x00", /* 6980 */ "\x65\x4f\x00\x00\x4c\xc4\x00\x00\x65\x4d\x00\x00\x5a\x7c\x65\x54\x65\x55\x65\x57\x00\x00\x00\x00\x00\x00\x65\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xc5\x65\x65\x00\x00\x00\x00\x65\x50\x00\x00\x00\x00\x65\x5b\x48\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5c\x5b\x45\x00\x00\x00\x00\x65\x5e\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x65\x61\x00\x00\x00\x00\x51\x92\x00\x00\x00\x00\x54\xb5\x00\x00\x00\x00\x00\x00\x65\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x63\x00\x00\x65\x53\x00\x00\x65\x56\x00\x00\x4e\x51\x00\x00\x00\x00\x00\x00\x65\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf6\x00\x00\x00\x00\x00\x00\x65\x64\x65\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xda\x00\x00\x65\x68", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6b\x65\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x61\x00\x00\x52\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x78\x00\x00\x4d\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x65\x69\x00\x00\x5a\x43\x00\x00\x00\x00\x00\x00\x65\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x77\x65\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6f\x00\x00\x00\x00\x54\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x79\x4a\x68\x00\x00\x65\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x91\x00\x00\x00\x00\x00\x00\x65\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x76\x00\x00\x00\x00\x65\x7a\x00\x00\x00\x00\x00\x00", /* 6a80 */ "\x56\xb3\x00\x00\x00\x00\x00\x00\x58\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x75\x00\x00\x65\x7c\x65\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7d\x00\x00\x65\x7f\x52\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x57\x4a\xcd\x4e\x56\x58\xbf\x66\xa2\x00\x00\x00\x00\x53\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa3\x00\x00\x66\xa4\x53\xda\x00\x00\x00\x00\x00\x00\x50\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa5\x00\x00\x00\x00\x66\xa6\x58\xa9\x00\x00\x54\x58\x00\x00\x00\x00\x4c\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb8\x5b\x9e\x4a\xca\x49\xbc\x57\xe3\x53\xe6\x00\x00\x00\x00\x57\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf4\x00\x00\x56\x60\x4e\xde\x00\x00\x00\x00\x00\x00", /* 6b80 */ "\x00\x00\x65\x83\x65\x84\x59\x8b\x65\x86\x00\x00\x4a\xf8\x65\x85\x00\x00\x59\x53\x55\xe1\x49\xcf\x00\x00\x65\x89\x00\x00\x00\x00\x00\x00\x00\x00\x65\x87\x65\x88\x00\x00\x00\x00\x5b\xb2\x00\x00\x00\x00\x00\x00\x65\x8a\x65\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xae\x53\x59\x4b\xcd\x00\x00\x59\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8f\x00\x00\x4e\x79\x66\xb0\x00\x00\x00\x00\x59\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe2\x00\x00\x52\xb7\x00\x00\x52\x5f\x00\x00\x00\x00\x4b\xbd\x5c\xb8\x49\x68\x49\x6f\x49\x71\x53\x9f\x00\x00\x49\x70\x00\x00\x52\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x44\x4d\xc0\x00\x00\x00\x00\x00\x00\x56\xb9\x00\x00\x00\x00\x00\x00\x66\x45\x00\x00\x66\x47\x00\x00\x00\x00\x00\x00\x66\x48\x00\x00\x00\x00\x00\x00\x66\x46\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x49\x66\x4b\x66\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4c\x00\x00\x55\xce\x5c\xb4\x52\x92\x00\x00\x52\x45\x53\xf7\x66\x4d\x52\xc9\x00\x00\x66\x4e\x66\x4f\x66\x50\x4c\x75\x00\x00\x00\x00\x00\x00\x4c\x9b\x00\x00\x66\x51\x54\x83\x00\x00\x66\x53\x00\x00\x4d\xa3\x59\x96\x48\xb0\x66\x52\x66\x54\x00\x00\x00\x00\x00\x00\x4b\x4a\x51\xc7\x54\x89\x00\x00\x66\x55\x00\x00\x56\x4e\x62\x7f\x00\x00\x00\x00\x5a\x60\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x7b\x00\x00\x00\x00\x57\x41\x5b\xac\x54\x94\x00\x00\x00\x00\x00\x00\x5d\x81\x4e\x84\x00\x00\x4d\xb9\x62\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x4b\x00\x00\x00\x00\x00\x00\x62\x81\x55\x67\x00\x00\x4d\xb8\x00\x00\x00\x00\x00\x00\x59\x54\x62\x82\x54\xe9\x4d\x4f\x4f\x4d\x4a\x78\x57\xda\x00\x00\x00\x00\x56\xbf\x00\x00\x00\x00\x00\x00\x62\x89\x62\x8a\x57\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xac\x00\x00\x4e\xb2\x00\x00\x62\x8b\x00\x00\x62\x8c\x00\x00\x00\x00\x58\xd9\x00\x00\x00\x00\x00\x00\x53\xfa\x4c\x7a\x00\x00", /* 6c80 */ "\x00\x00\x54\x7f\x59\xc9\x57\xd5\x00\x00\x62\x85\x62\x8d\x00\x00\x55\x93\x4a\x61\x00\x00\x00\x00\x62\x88\x00\x00\x00\x00\x53\xe2\x62\x86\x00\x00\x00\x00\x67\x53\x62\x87\x00\x00\x00\x00\x00\x00\x00\x00\x55\x53\x00\x00\x53\x87\x00\x00\x00\x00\x00\x00\x4d\x55\x00\x00\x52\x5b\x00\x00\x62\x84\x53\x5d\x51\x44\x51\xd8\x49\xd6\x00\x00\x62\x8e\x4e\x46\x52\xac\x00\x00\x62\x91\x4f\xd9\x00\x00\x00\x00\x62\x9c\x62\x96\x4d\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x70\x5a\x6d\x00\x00\x5b\xcd\x5b\x73\x4d\x61\x5b\x54\x59\x78\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb8\x54\x97\x00\x00\x00\x00\x00\x00\x54\xa9\x49\xb3\x00\x00\x52\x7a\x00\x00\x00\x00\x00\x00\x62\x8f\x00\x00\x00\x00\x62\x9d\x62\x90\x4c\x48\x62\x98\x62\x95\x00\x00\x00\x00\x00\x00\x4c\x5a\x00\x00\x00\x00\x53\x42\x00\x00\x62\x97\x53\x7d\x49\xa7\x53\xfb\x00\x00\x52\xdf\x00\x00\x00\x00\x5c\x42\x00\x00\x50\xe0\x62\x9a\x00\x00\x00\x00\x62\x9b\x62\x9e\x56\xa8\x62\x94\x00\x00\x5a\x5e\x00\x00\x49\x63\x67\x54\x62\x92\x62\x93\x00\x00\x62\x99\x58\xb9\x53\xc2\x5a\xf2\x62\x9f\x00\x00", /* 6d00 */ "\x00\x00\x4f\x81\x00\x00\x00\x00\x62\xa6\x00\x00\x00\x00\x62\xa5\x00\x00\x00\x00\x00\x00\x59\x94\x62\xa2\x00\x00\x62\xa8\x00\x00\x00\x00\x00\x00\x54\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x58\x54\x00\x00\x62\xa7\x62\xad\x51\xe4\x00\x00\x00\x00\x4b\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x93\x00\x00\x62\xa1\x00\x00\x00\x00\x4d\xe8\x62\xa9\x00\x00\x00\x00\x62\xab\x00\x00\x00\x00\x4b\xfc\x5b\xdd\x62\xb1\x00\x00\x62\xac\x00\x00\x00\x00\x00\x00\x62\xa0\x00\x00\x4e\x8f\x57\x7d\x54\x42\x53\x69\x00\x00\x00\x00\x51\x98\x00\x00\x62\xa3\x00\x00\x54\x53\x4f\x4c\x4f\x5d\x62\xa4\x00\x00\x5c\x67\x49\xe1\x00\x00\x62\xaa\x4e\xc2\x62\xae\x00\x00\x4e\x8c\x62\xaf\x53\x48\x62\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x84\x50\x43\x00\x00\x62\xb9\x00\x00\x62\xb6\x00\x00\x62\xba\x00\x00\x00\x00\x62\xbc\x00\x00\x00\x00\x53\xd5\x00\x00\x00\x00\x4d\xc5\x50\xca\x00\x00\x00\x00\x00\x00\x4c\xa0\x62\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa0\x00\x00\x00\x00\x4d\xa2\x4f\x9f\x00\x00\x00\x00\x00\x00\x62\xbb\x00\x00\x00\x00\x00\x00", /* 6d80 */ "\x00\x00\x00\x00\x57\x5f\x00\x00\x00\x00\x52\xf8\x00\x00\x00\x00\x58\x9c\x55\x87\x00\x00\x00\x00\x5a\x5f\x00\x00\x58\x71\x00\x00\x00\x00\x62\xb2\x00\x00\x62\xb7\x62\xb8\x56\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xcd\x00\x00\x50\xd3\x62\xb4\x51\x50\x62\xb5\x57\xcf\x00\x00\x4e\x61\x4b\x73\x00\x00\x54\xf2\x4f\x47\x5b\x67\x55\x4c\x4c\xa1\x62\xc9\x00\x00\x00\x00\x62\xcb\x59\x64\x00\x00\x00\x00\x59\xb9\x00\x00\x00\x00\x4d\xac\x00\x00\x00\x00\x4d\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc2\x4b\x8e\x00\x00\x00\x00\x00\x00\x5c\x6d\x62\xbf\x58\x9e\x62\xbe\x00\x00\x00\x00\x00\x00\x51\x7c\x56\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd6\x00\x00\x56\xd3\x62\xc7\x00\x00\x00\x00\x00\x00\x62\xc6\x62\xc0\x00\x00\x62\xc3\x4b\x4d\x00\x00\x00\x00\x5a\x79\x00\x00\x62\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf8\x4a\xe2\x00\x00\x4e\x54\x00\x00\x00\x00\x55\x8f\x00\x00\x4a\xbd\x00\x00\x00\x00\x00\x00\x4e\x8d\x00\x00\x59\x6d\x00\x00\x56\xec\x67\x55\x00\x00\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x86\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa7\x00\x00\x62\xca\x5c\x75\x62\xc1\x00\x00\x4f\x45\x62\xc4\x00\x00\x00\x00\x5a\x87\x00\x00\x62\xc8\x55\x99\x00\x00\x00\x00\x62\xbd\x00\x00\x00\x00\x5a\x86\x00\x00\x00\x00\x54\x9f\x4b\xc8\x00\x00\x5a\xfb\x49\xb2\x62\xd6\x00\x00\x00\x00\x00\x00\x57\xc1\x00\x00\x62\xcc\x00\x00\x57\xbb\x00\x00\x4c\xda\x00\x00\x00\x00\x62\xd5\x00\x00\x50\x6a\x00\x00\x00\x00\x00\x00\x5a\x6e\x00\x00\x52\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x68\x62\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x64\x62\xce\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x62\xd4\x00\x00\x4d\xfd\x00\x00\x58\x87\x00\x00\x00\x00\x5b\x5f\x00\x00\x00\x00\x00\x00\x62\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcf\x00\x00\x00\x00\x62\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x86\x55\xa9", /* 6e80 */ "\x00\x00\x00\x00\x00\x00\x50\xa2\x00\x00\x4f\x46\x62\xd2\x00\x00\x00\x00\x4c\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe6\x5a\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xda\x00\x00\x00\x00\x00\x00\x51\x90\x00\x00\x00\x00\x62\xe8\x00\x00\x00\x00\x59\xe6\x00\x00\x00\x00\x62\xde\x00\x00\x62\xdf\x00\x00\x00\x00\x58\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7d\x00\x00\x62\xd9\x62\xd0\x00\x00\x62\xe4\x00\x00\x54\xdb\x62\xe2\x00\x00\x00\x00\x52\xe6\x62\xe1\x00\x00\x62\xe0\x00\x00\x00\x00\x00\x00\x4a\x9d\x62\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x82\x00\x00\x00\x00\x00\x00\x5c\x6c\x00\x00\x00\x00\x00\x00\x62\xe5\x00\x00\x4e\x4c\x00\x00\x5c\x72\x56\xce\x66\x99\x00\x00\x62\xe3\x00\x00\x00\x00\x4d\x97\x00\x00\x00\x00\x00\x00\x5b\xcc\x62\xd8\x62\xdb\x51\xf9\x62\xdd\x00\x00\x51\xca\x50\xc3\x51\xcf\x00\x00\x49\x96\x56\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x62\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x53\xae\x00\x00\x00\x00\x00\x00\x53\xe0\x00\x00\x00\x00\x62\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xa8\x00\x00\x00\x00\x00\x00\x50\xeb\x59\x7d\x62\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xad\x00\x00\x00\x00\x00\x00\x62\xec\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf5\x62\xf3\x51\xfd\x00\x00\x62\xdc\x00\x00\x62\xef\x00\x00\x55\xfd\x00\x00\x5b\x64\x00\x00\x00\x00\x62\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xea\x62\xeb\x00\x00\x00\x00\x00\x00\x62\xf1\x00\x00\x57\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6b\x00\x00\x00\x00\x00\x00\x54\x51\x00\x00\x51\xb9\x00\x00\x00\x00\x00\x00\x62\xe9\x00\x00\x00\x00\x00\x00\x51\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb5\x4a\x51\x00\x00\x00\x00\x00\x00\x62\xfa\x00\x00\x62\xf2\x00\x00\x00\x00\x00\x00\x62\xf9\x00\x00\x62\xfc\x00\x00\x62\xfb\x00\x00\x00\x00\x00\x00", /* 6f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6e\x00\x00\x00\x00\x00\x00\x4a\x5a\x62\xf6\x00\x00\x00\x00\x62\xf8\x62\xf7\x53\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc3\x00\x00\x00\x00\x63\x44\x00\x00\x00\x00\x63\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xa3\x00\x00\x63\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xfd\x49\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x48\x00\x00\x63\x49\x63\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x47\x63\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4b\x63\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4f\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x81\x00\x00\x00\x00\x63\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x91\x66\xe0\x52\x91\x00\x00\x4b\x66\x4e\x72\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8a\x5a\xed\x00\x00\x4f\xc3\x00\x00\x00\x00\x00\x00\x5c\x66\x00\x00\x5a\xd5\x49\xd2", /* 7080 */ "\x66\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc0\x00\x00\x00\x00\x00\x00\x51\xae\x4a\xb5\x00\x00\x00\x00\x00\x00\x59\x77\x00\x00\x00\x00\x00\x00\x4a\x54\x00\x00\x54\xb1\x50\x5b\x66\xbf\x00\x00\x00\x00\x5b\xca\x00\x00\x00\x00\x66\xbe\x66\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc4\x4f\xe5\x56\xbe\x53\x7a\x4f\xbb\x00\x00\x66\xc5\x00\x00\x49\x9f\x00\x00\x00\x00\x00\x00\x66\xc3\x5b\x48\x4b\x84\x00\x00\x66\xc1\x51\x56\x4a\x84\x00\x00\x00\x00\x66\xc2\x56\x58\x50\xc2\x56\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x51\x72\x00\x00\x66\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe5\x50\xd2\x00\x00\x5b\xf1\x00\x00\x00\x00\x00\x00\x59\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x4c\x53\x55\x75\x66\xc6\x4e\x83\x00\x00\x56\xcb\x4f\x9e\x54\xc7\x00\x00\x58\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x8a\x00\x00\x53\x8c\x00\x00\x00\x00\x00\x00\x4c\x8a\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x69\x4d\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc8\x00\x00\x00\x00\x66\xc9\x00\x00\x4e\x60\x66\xca\x00\x00\x66\xe1\x49\x5a\x4c\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xcb\x59\x87\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x54\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd2\x00\x00\x4e\x6d\x00\x00\x4e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xce\x00\x00\x55\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x5a\x00\x00\x66\xe2\x5b\x75\x66\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf2\x00\x00\x00\x00\x00\x00\x66\xd1\x66\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd3\x00\x00\x66\xd4\x00\x00\x00\x00\x55\x5f\x00\x00\x00\x00", /* 7180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x58\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x59\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x54\xda\x00\x00\x00\x00\x00\x00\x66\xd5\x57\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xeb\x66\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd8\x00\x00\x00\x00\x00\x00\x48\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd6\x00\x00\x66\xd7\x00\x00\x00\x00\x00\x00\x66\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdb\x59\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xda\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xee\x00\x00\x66\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdf\x00\x00\x5c\x46\x00\x00\x53\x60\x00\x00\x00\x00\x00\x00\x66\x5c\x48\xad\x00\x00\x00\x00\x00\x00\x4f\xf3\x4c\xb7\x59\xae\x48\xd5\x4b\x9a\x00\x00\x5c\xb2\x00\x00\x56\x4c\x00\x00\x62\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xab\x48\xe5\x00\x00\x00\x00\x00\x00\x53\x66\x66\x59\x00\x00\x00\x00\x00\x00\x00\x00\x66\x5a\x00\x00\x00\x00\x00\x00\x66\x5b\x00\x00\x00\x00\x59\x60\x00\x00\x53\x43\x00\x00\x65\xf1\x00\x00\x52\xb1\x00\x00\x52\xb4\x50\xcd\x00\x00\x00\x00\x00\x00\x65\xf2\x52\xc0\x00\x00\x57\xee\x00\x00\x00\x00\x00\x00\x00\x00\x65\xef\x65\xf3\x00\x00\x00\x00\x55\x9d\x00\x00\x00\x00\x54\x43\x00\x00\x00\x00\x00\x00\x56\xd7\x57\xfd\x00\x00\x00\x00\x00\x00\x65\xf4\x65\xf5", /* 7280 */ "\x58\x4c\x50\xe6\x00\x00\x00\x00\x65\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbe\x65\xf7\x00\x00\x65\xf8\x00\x00\x65\xf9\x00\x00\x00\x00\x65\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xad\x61\x8c\x00\x00\x4c\x58\x61\x8d\x00\x00\x00\x00\x00\x00\x61\x8e\x00\x00\x5c\x54\x61\x8f\x61\x90\x5a\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x92\x50\x92\x61\x91\x4b\x72\x00\x00\x00\x00\x00\x00\x49\x57\x00\x00\x00\x00\x00\x00\x00\x00\x61\x94\x61\x93\x00\x00\x4d\xfb\x00\x00\x61\x95\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x57\x00\x00\x4f\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x52\xfb\x00\x00\x4d\xdc\x4f\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x96\x61\x98\x00\x00\x00\x00\x4b\xbf\x58\x61\x55\xa7\x61\x97\x5b\x99\x5a\x9d\x61\x99\x61\x9d\x61\x9a\x00\x00\x00\x00\x61\x9b\x50\xe9\x00\x00\x61\x9f\x61\xa0\x50\xc6\x00\x00\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x61\x9c\x00\x00\x61\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa4\x00\x00\x00\x00\x00\x00\x51\x74\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa2\x00\x00\x61\xa7\x49\xfd\x61\xa1\x00\x00\x00\x00\x00\x00\x52\x6d\x49\xc1\x61\xa6\x61\xa5\x00\x00\x00\x00\x61\xa3\x61\xa8\x00\x00\x00\x00\x61\xaa\x00\x00\x00\x00\x00\x00\x58\xc8\x5b\xec\x52\x48\x61\xab\x00\x00\x58\x77\x00\x00\x00\x00\x61\xad\x00\x00\x00\x00\x4d\xee\x00\x00\x00\x00\x65\x81\x61\xac\x61\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4b\x5a\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xaf\x00\x00\x00\x00\x61\xae\x00\x00\x65\x82\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb2\x56\xa0\x00\x00\x61\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb4\x00\x00", /* 7380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x00\x00\x00\x00\x51\xc9\x00\x00\x5a\x92\x00\x00\x57\x96\x00\x00\x00\x00\x64\x81\x00\x00\x00\x00\x64\x82\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe9\x00\x00\x00\x00\x00\x00\x64\x85\x00\x00\x00\x00\x64\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x87\x00\x00\x52\x55\x00\x00\x00\x00\x64\x83\x4e\x57\x58\x76\x00\x00\x51\x82\x64\x8a\x00\x00\x00\x00\x00\x00\x64\x89\x00\x00\x00\x00\x64\x95\x49\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8b\x00\x00\x64\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8d\x64\x8c\x55\x5a\x00\x00\x00\x00\x5b\x85\x00\x00\x64\x86\x4c\x49\x64\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x94\x00\x00\x5b\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8e\x00\x00\x64\x93\x00\x00\x64\x92\x00\x00\x00\x00\x00\x00\x48\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x64\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x54\x93\x00\x00\x50\xc4\x50\xec\x00\x00\x00\x00\x51\x91\x64\x91\x00\x00\x00\x00\x00\x00\x00\x00\x64\x97\x56\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x61\x00\x00\x00\x00\x64\x9b\x64\x9a\x00\x00\x64\x9c\x00\x00\x64\x98\x00\x00\x64\x9f\x00\x00\x64\x9e\x00\x00\x64\x9d\x00\x00\x00\x00\x51\x75\x54\x79\x53\x9e\x53\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa5\x00\x00\x64\xa4\x00\x00\x64\xa6\x4d\xf6\x64\x99\x64\xa3\x00\x00\x54\xef\x55\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa8\x00\x00\x00\x00\x4d\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9f\x64\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa9\x00\x00", /* 7480 */ "\x64\xac\x64\xad\x00\x00\x51\x47\x00\x00\x00\x00\x00\x00\x64\xae\x00\x00\x00\x00\x00\x00\x64\xaf\x00\x00\x00\x00\x64\xab\x00\x00\x64\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xaa\x00\x00\x64\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb4\x64\xb1\x64\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6f\x00\x00\x68\xab\x00\x00\x68\xac\x00\x00\x53\xaf\x48\xe9\x54\xbe\x00\x00\x57\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcc\x65\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb1\x00\x00\x53\xbe\x4a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb2", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9a\x00\x00\x65\xb3\x00\x00\x65\xb4\x00\x00\x65\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc9\x60\x50\x55\x96\x00\x00\x56\xef\x00\x00\x00\x00\x55\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9c\x00\x00\x00\x00\x5a\x63\x56\x46\x00\x00\x4c\xa5\x68\xad\x49\x62\x00\x00\x63\x58\x56\xee\x5a\x69\x4e\xd6\x55\x8b\x00\x00\x4b\x88\x00\x00\x52\xcf\x4b\x8a\x00\x00\x67\xad\x4e\x4d\x00\x00\x00\x00\x64\x7e\x00\x00\x67\xae\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x49\x00\x00\x00\x00\x67\xb1\x00\x00\x00\x00\x67\xb0\x4f\x88\x00\x00\x67\xaf\x57\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x51\x95\x5e\x6e\x67\xb2\x58\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd3\x53\xe7\x00\x00\x00\x00\x00\x00\x4c\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb3\x00\x00\x4a\x8c\x00\x00\x00\x00\x00\x00\x4e\x9c\x67\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7c", /* 7580 */ "\x00\x00\x00\x00\x00\x00\x67\xb5\x00\x00\x00\x00\x4f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x69\x83\x00\x00\x00\x00\x00\x00\x55\xe7\x00\x00\x59\xc8\x68\xd9\x00\x00\x68\xda\x00\x00\x68\xdb\x51\x66\x00\x00\x4c\xec\x4f\xcd\x00\x00\x00\x00\x68\xdd\x00\x00\x53\x51\x68\xdc\x59\x92\x00\x00\x68\xdf\x48\xcb\x4f\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xde\x68\xde\x00\x00\x4a\xae\x4c\x89\x68\xe5\x68\xe4\x53\xa2\x68\xe0\x68\xe1\x4a\xc2\x00\x00\x00\x00\x68\xe2\x5b\x8f\x00\x00\x00\x00\x56\xda\x4f\xd1\x4e\xb1\x00\x00\x00\x00\x00\x00\x68\xe7\x68\xe6\x68\xe3\x49\xa0\x00\x00\x5b\xa1\x5a\x58\x4f\xb6\x54\xab\x00\x00\x00\x00\x68\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x59\x98\x00\x00\x5b\xcb\x4d\xda\x68\xe8\x00\x00\x4b\xba\x00\x00\x00\x00\x57\x54\x00\x00\x00\x00\x53\xa5\x00\x00\x00\x00\x00\x00\x51\x41\x68\xea\x68\xed\x00\x00\x68\xec\x68\xef\x68\xeb\x00\x00\x4e\x5e\x68\xee\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb4\x68\xf1\x00\x00\x00\x00\x4a\x75\x00\x00\x00\x00\x00\x00\x00\x00\x49\x74\x00\x00\x00\x00\x68\xf2\x00\x00\x00\x00\x68\xf3", /* 7600 */ "\x68\xf5\x4a\xe0\x00\x00\x68\xf0\x00\x00\x68\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x68\xf9\x00\x00\x68\xf7\x00\x00\x00\x00\x00\x00\x68\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x68\xfc\x00\x00\x68\xf8\x68\xfb\x68\xfd\x00\x00\x69\x41\x00\x00\x00\x00\x00\x00\x57\xc0\x69\x44\x00\x00\x69\x43\x00\x00\x51\x97\x68\xfa\x55\xdc\x00\x00\x00\x00\x4a\xf0\x49\x92\x56\xb0\x00\x00\x69\x46\x00\x00\x00\x00\x69\x47\x00\x00\x00\x00\x69\x4c\x5b\x6e\x69\x49\x00\x00\x00\x00\x54\xb2\x00\x00\x00\x00\x00\x00\x69\x42\x00\x00\x69\x4b\x69\x48\x69\x45\x00\x00\x00\x00\x69\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xa8\x69\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4f\x00\x00\x69\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x50\x00\x00\x69\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x59\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x52\x00\x00\x00\x00\x00\x00\x69\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x90\x00\x00\x00\x00\x4b\x67\x00\x00\x48\xd6\x48\xd8\x00\x00", /* 7680 */ "\x00\x00\x00\x00\x5a\xec\x00\x00\x4b\x64\x00\x00\x4f\x74\x4e\x6a\x68\xa6\x00\x00\x00\x00\x4c\xdd\x00\x00\x00\x00\x68\xa7\x00\x00\x00\x00\x48\xa7\x00\x00\x68\xa8\x00\x00\x00\x00\x57\x8f\x00\x00\x00\x00\x68\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa3\x00\x00\x00\x00\x5b\xe4\x69\x85\x00\x00\x69\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x94\x00\x00\x00\x00\x5a\x7b\x00\x00\x00\x00\x5b\xd0\x53\x89\x00\x00\x5a\x4f\x00\x00\x59\xe5\x00\x00\x00\x00\x67\xc0\x48\xba\x5b\x55\x59\x6e\x4e\xdf\x4d\xcf\x00\x00\x50\x99\x00\x00\x4c\xc6\x4b\x61\x53\x6c\x00\x00\x00\x00\x55\xa1\x00\x00\x00\x00\x00\x00\x52\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xbe\x4b\xa1\x00\x00\x67\x8d\x52\x44\x00\x00\x5b\xb0\x00\x00\x00\x00\x00\x00\x58\x81\x67\x90\x00\x00\x00\x00\x53\x6e\x00\x00\x4b\xdb\x00\x00", /* 7700 */ "\x00\x00\x55\xa0\x00\x00\x00\x00\x67\x8e\x00\x00\x00\x00\x67\x91\x67\x92\x52\x5c\x00\x00\x50\x54\x00\x00\x67\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x95\x67\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x87\x52\x7f\x00\x00\x67\x94\x00\x00\x00\x00\x00\x00\x67\x97\x00\x00\x5b\x43\x59\x43\x00\x00\x00\x00\x00\x00\x67\x96\x00\x00\x52\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x98\x50\x95\x4f\xeb\x67\x99\x00\x00\x56\xf6\x00\x00\x59\x7b\x00\x00\x00\x00\x00\x00\x5c\x65\x5b\x97\x00\x00\x67\x9d\x00\x00\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9a\x67\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9e\x4f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x4f\x67\xa0\x4b\xbc\x00\x00\x67\xa1\x52\xbf\x00\x00\x67\x9f\x00\x00\x00\x00\x4f\x7e\x49\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc2\x00\x00\x00\x00\x00\x00\x67\xa4\x5c\xb9\x67\xa2", /* 7780 */ "\x67\xa5\x00\x00\x00\x00\x00\x00\x52\x8a\x4a\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa6\x67\xa3\x58\x59\x00\x00\x00\x00\x67\xa7\x51\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa8\x67\xa9\x00\x00\x5f\xaa\x00\x00\x00\x00\x53\xb2\x00\x00\x54\x66\x00\x00\x5b\xf4\x4b\x69\x00\x00\x56\x52\x00\x00\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x57\x4b\x00\x00\x67\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x50\x00\x00\x67\xac\x00\x00\x6b\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa2\x00\x00\x00\x00\x00\x00\x52\x4c\x69\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb7\x59\xd2\x00\x00\x5b\xa9\x00\x00\x68\x93\x00\x00\x4f\xd7\x00\x00\x4f\x63\x68\x94\x4b\xcb\x48\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x55\xae\x00\x00\x00\x00\x67\x56\x00\x00\x67\x57\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf8\x4c\x4f\x50\x94", /* 7800 */ "\x67\x58\x51\xea\x55\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x59\x00\x00\x00\x00\x53\xf5\x50\x53\x00\x00\x00\x00\x00\x00\x67\x5c\x53\x99\x00\x00\x59\x70\x00\x00\x5c\x49\x67\x5a\x67\x5b\x00\x00\x59\x83\x00\x00\x67\x5f\x67\x60\x00\x00\x67\x64\x00\x00\x00\x00\x00\x00\x67\x68\x00\x00\x67\x66\x67\x6e\x5b\x89\x00\x00\x67\x69\x00\x00\x00\x00\x67\x67\x67\x5e\x00\x00\x00\x00\x53\x8a\x00\x00\x00\x00\x00\x00\x53\xc5\x00\x00\x00\x00\x55\x8a\x5a\xd1\x67\x61\x67\x62\x67\x63\x67\x65\x00\x00\x50\xf8\x00\x00\x4a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x89\x00\x00\x67\x70\x00\x00\x00\x00\x00\x00\x00\x00\x67\x71\x00\x00\x67\x6a\x00\x00\x67\x6f\x00\x00\x57\xf7\x00\x00\x00\x00\x56\x56\x67\x6c\x67\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x72\x51\x93\x5a\x52\x67\x6b\x54\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xee\x00\x00\x00\x00\x00\x00\x00\x00\x53\x91\x00\x00\x00\x00\x00\x00", /* 7880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x76\x00\x00\x4b\x90\x00\x00\x00\x00\x51\xb4\x48\xac\x56\x8a\x00\x00\x00\x00\x49\x4e\x00\x00\x67\x74\x00\x00\x00\x00\x00\x00\x57\x8c\x4b\x83\x00\x00\x67\x75\x67\x73\x67\x77\x00\x00\x00\x00\x4b\x9b\x00\x00\x67\x78\x00\x00\x67\x79\x00\x00\x67\x7c\x00\x00\x49\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x97\x4e\xed\x67\x7a\x56\xbb\x49\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xea\x00\x00\x00\x00\x4a\xc4\x00\x00\x00\x00\x00\x00\x48\xf4\x00\x00\x00\x00\x00\x00\x67\x7f\x50\xd9\x4a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6d\x00\x00\x00\x00\x00\x00\x67\x7d\x50\x64\x00\x00\x00\x00\x00\x00\x67\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa4\x00\x00\x00\x00\x00\x00\x67\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x82\x00\x00\x67\x84\x00\x00\x00\x00\x51\x77\x00\x00\x00\x00\x4e\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x4f\x58\x00\x00\x00\x00\x00\x00\x67\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbd\x66\xe9\x50\xf0\x00\x00\x55\x88\x00\x00\x66\xea\x53\xed\x00\x00\x00\x00\x00\x00\x00\x00\x66\xeb\x00\x00\x53\xec\x66\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xef\x00\x00\x00\x00\x5c\x87\x66\xf2\x00\x00\x00\x00\x66\xf0\x66\xed\x66\xee\x5c\x43\x55\x92\x56\x8f\x66\xf3\x00\x00\x66\xf1\x00\x00\x00\x00\x58\x8a\x00\x00\x66\xf5\x53\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbf\x00\x00\x66\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x5b\x4e\x97\x00\x00\x66\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7980 */ "\x5d\x98\x4f\x9c\x00\x00\x00\x00\x51\xba\x66\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8e\x5c\xad\x50\xea\x00\x00\x54\x7d\x4d\xcb\x00\x00\x58\xe2\x56\x5d\x00\x00\x57\x5a\x00\x00\x00\x00\x4c\xd0\x00\x00\x00\x00\x49\x9d\x00\x00\x54\x90\x00\x00\x5b\xd5\x00\x00\x00\x00\x00\x00\x50\x66\x52\x8c\x00\x00\x00\x00\x68\x96\x00\x00\x00\x00\x52\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x83\x00\x00\x00\x00\x00\x00\x68\x98\x4a\x73\x00\x00\x54\x78\x59\x8e\x00\x00\x5b\xc7\x00\x00\x68\x99\x00\x00\x68\x97\x00\x00\x4e\x9e\x4a\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x75\x00\x00\x00\x00\x59\xc5\x00\x00\x4e\x81\x00\x00\x00\x00", /* 7a00 */ "\x58\x41\x00\x00\x68\x9d\x68\x9c\x00\x00\x00\x00\x68\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6c\x00\x00\x55\x74\x56\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x9f\x00\x00\x00\x00\x48\xdd\x00\x00\x00\x00\x5b\xc8\x00\x00\x00\x00\x00\x00\x68\x9e\x00\x00\x4a\x8e\x00\x00\x00\x00\x6b\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc7\x00\x00\x00\x00\x00\x00\x68\xa1\x00\x00\x68\xa0\x00\x00\x4b\x5e\x4e\xd9\x4e\x9d\x00\x00\x4c\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa5\x00\x00\x00\x00\x00\x00\x59\x48\x00\x00\x4f\xbe\x54\x8f\x69\x56\x69\x57\x50\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa8", /* 7a80 */ "\x69\x58\x57\x5b\x00\x00\x54\x74\x5b\x4d\x00\x00\x69\x59\x00\x00\x69\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6f\x00\x00\x00\x00\x00\x00\x59\xa3\x5b\xce\x00\x00\x00\x00\x69\x5b\x4f\x71\x4a\xaf\x4f\xbc\x00\x00\x00\x00\x00\x00\x4a\xdb\x57\xd0\x00\x00\x50\x7f\x69\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9b\x69\x5c\x00\x00\x69\x5f\x00\x00\x00\x00\x00\x00\x69\x5e\x69\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf9\x00\x00\x00\x00\x5b\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb9\x4f\xb8\x5b\x62\x00\x00\x00\x00\x50\x42\x00\x00\x57\x4f\x69\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7f\x00\x00\x4b\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf0\x6a\x63\x00\x00\x00\x00\x6a\x64\x00\x00\x4c\xcc", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x6a\x66\x6a\x67\x00\x00\x48\xc9\x00\x00\x6a\x65\x00\x00\x6a\x69\x56\x92\x00\x00\x00\x00\x00\x00\x6a\x6b\x00\x00\x58\xa5\x00\x00\x00\x00\x49\x6a\x6a\x68\x00\x00\x00\x00\x00\x00\x6a\x6f\x00\x00\x4b\x71\x00\x00\x00\x00\x6a\x77\x00\x00\x6a\x72\x00\x00\x00\x00\x00\x00\x6a\x74\x6a\x73\x4c\x9c\x00\x00\x49\x5f\x00\x00\x6a\x6e\x6a\x6a\x4b\x7a\x00\x00\x6a\x70\x00\x00\x00\x00\x6a\x71\x00\x00\x6a\x75\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x6d\x00\x00\x4e\xe2\x00\x00\x51\x9e\x00\x00\x6a\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x7a\x00\x00\x6a\x6c\x00\x00\x4b\x68\x00\x00\x4f\x8f\x6a\x7c\x00\x00\x00\x00\x4c\x44\x50\x91\x5b\xfd\x57\x52\x00\x00\x4a\xef\x00\x00\x49\xde\x00\x00\x6a\x78\x00\x00\x6a\x79\x55\x58\x00\x00\x6a\x7d\x00\x00\x00\x00\x6a\x7e\x00\x00\x6a\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x7f\x00\x00\x00\x00\x6a\x84\x6a\x83\x00\x00\x00\x00\x6a\x7b\x00\x00\x50\x8b\x00\x00\x4a\x90\x00\x00\x6a\x81\x00\x00\x00\x00\x54\x49\x00\x00", /* 7b80 */ "\x4e\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5f\x00\x00\x00\x00\x6a\x85\x00\x00\x00\x00\x00\x00\x49\xac\x4e\x9f\x00\x00\x56\x84\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8e\x6a\x8a\x00\x00\x00\x00\x00\x00\x4d\x7c\x6a\x8f\x00\x00\x00\x00\x00\x00\x6a\x86\x6a\x87\x6a\x8b\x51\xe0\x6a\x8d\x6a\x90\x6a\x89\x4e\xfc\x00\x00\x00\x00\x00\x00\x58\x85\x00\x00\x00\x00\x6a\x91\x00\x00\x00\x00\x00\x00\x6a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x4d\x53\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x94\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x92\x00\x00\x51\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdc\x6a\x96\x00\x00\x00\x00\x6a\x95\x00\x00\x00\x00\x00\x00\x4a\xda\x00\x00\x00\x00\x00\x00\x6a\x97\x6a\x98\x00\x00\x00\x00\x00\x00\x6a\x99\x00\x00\x00\x00\x00\x00\x50\xb9\x00\x00\x00\x00\x50\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x92\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x9c\x00\x00\x6a\x9b\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd7\x00\x00\x00\x00\x00\x00\x6a\x9f\x6a\x9a\x00\x00\x00\x00\x6a\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa2\x4e\x69\x00\x00\x00\x00\x6a\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xbd\x6a\xa5\x6a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x77\x5d\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdf\x6a\xcb\x5c\x71\x00\x00\x00\x00", /* 7c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xcd\x51\x43\x00\x00\x00\x00\x53\xc8\x00\x00\x4a\xd5\x5b\x53\x00\x00\x00\x00\x00\x00\x6a\xcf\x6a\xce\x6a\xd0\x56\x7a\x00\x00\x00\x00\x6a\xd1\x00\x00\x5a\xc0\x5b\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x81\x00\x00\x00\x00\x00\x00\x51\x58\x00\x00\x00\x00\x51\x5b\x6a\xd2\x4f\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xe1\x00\x00\x00\x00\x6a\xd3\x6a\xd4\x4f\xaa\x00\x00\x00\x00\x6a\xd5\x00\x00\x00\x00\x00\x00\x6a\xda\x00\x00\x6a\xd6\x6a\xd9\x00\x00\x4d\xfc\x00\x00\x6a\xd7\x6a\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe1\x56\xc6\x6a\xdb\x00\x00\x49\xd9\x00\x00\x00\x00\x52\x73\x00\x00\x00\x00\x5a\xe2\x50\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe8\x00\x00\x00\x00\x58\x55\x00\x00\x00\x00\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x78\x00\x00\x56\x98\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x95\x00\x00\x00\x00\x00\x00\x5c\x6f\x00\x00\x00\x00\x00\x00\x50\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e80 */ "\x00\x00\x00\x00\x5c\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xed\x00\x00\x00\x00\x00\x00\x63\xf8\x4f\xbf\x63\xf9\x4d\xeb\x63\xfa\x58\x6b\x63\xfb\x5a\xbb\x4e\xb5\x63\xfc\x63\xfd\x4e\xcc\x54\xd1\x57\xb2\x64\x41\x00\x00\x4a\xbe\x64\x42\x55\x54\x4c\xd8\x52\xc8\x00\x00\x5c\x7d\x51\xd9\x4c\x77\x5b\xbc\x57\xc5\x4c\x64\x00\x00\x00\x00\x53\x46\x64\x43\x58\x7f\x64\x44\x64\x45\x64\x46\x51\x57\x5c\x8a\x55\x91\x58\x58\x5b\xae\x5b\xd4\x64\x47\x48\xec\x64\x48\x64\x49\x55\x7c\x59\xee\x4f\xac\x64\x4a\x48\xf2\x54\xdd\x4f\x82\x64\x4b\x54\xc5\x00\x00\x64\x4c\x4e\x87\x4c\xf7\x59\x44\x64\x4d\x51\xe6\x4f\xf7\x4f\x6a\x57\x53\x64\x4e\x64\x4f\x4f\xed\x58\xe4\x00\x00\x56\x88\x56\xcf\x4e\xcb\x64\x50\x4e\xa7\x58\xf6\x64\x51\x00\x00\x58\xf7\x64\x52\x64\x53\x4a\xc1\x64\x54\x64\x55\x55\x9f\x57\xab\x52\x81\x64\x57\x49\x61\x4a\x92\x00\x00\x64\x58\x64\x59\x5c\x7b\x5b\x60\x64\x5a\x51\xcb", /* 7f00 */ "\x5c\x5a\x64\x5b\x64\x5c\x64\x5d\x4e\xe9\x52\x86\x50\xc1\x64\x5e\x64\x5f\x4e\xa8\x00\x00\x64\x60\x64\x61\x64\x56\x4b\xcf\x64\x62\x00\x00\x64\x63\x64\x64\x4e\x5a\x4b\x7e\x51\xc5\x49\x81\x64\x65\x5a\xb4\x64\x66\x4c\xbe\x64\x68\x64\x67\x4c\x8d\x00\x00\x64\x69\x49\xf7\x64\x6a\x64\x6b\x64\x6c\x64\x6d\x64\x6e\x64\x6f\x64\x70\x5a\x47\x56\x96\x64\x71\x64\x72\x64\x73\x64\x74\x55\x69\x64\x75\x64\x76\x64\x77\x64\x78\x64\x79\x4f\x69\x64\x7a\x6a\x5e\x00\x00\x4c\xd6\x00\x00\x54\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5f\x00\x00\x6a\x60\x6a\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7e\x57\x99\x00\x00\x00\x00\x5c\xe7\x4d\xb0\x00\x00\x51\xdd\x67\xb6\x00\x00\x4c\x43\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb8\x00\x00\x67\xb7\x48\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xba\x5b\x76\x5c\x90\x00\x00\x00\x00\x00\x00\x5b\xc2\x00\x00\x00\x00\x67\xbc\x55\xef\x00\x00\x67\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbf\x00\x00", /* 7f80 */ "\x00\x00\x67\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x93\x00\x00\x54\x5c\x00\x00\x52\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x88\x00\x00\x00\x00\x6a\xc5\x58\xde\x6a\xc6\x00\x00\x58\x7b\x00\x00\x00\x00\x54\xb9\x00\x00\x00\x00\x6a\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc8\x6a\xc9\x00\x00\x6a\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9b\x4c\xfd\x00\x00\x00\x00\x63\x92\x5a\x91\x00\x00\x6a\xdf\x00\x00\x57\xcb\x00\x00\x00\x00\x00\x00\x4a\x82\x00\x00\x00\x00\x00\x00\x00\x00\x69\x54\x00\x00\x59\xed\x00\x00\x6a\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x89\x6a\xe1\x00\x00\x00\x00\x54\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x74\x4a\xe3\x6a\xe3\x00\x00\x00\x00\x00\x00\x6a\xe2\x6a\xe4\x00\x00\x00\x00\x6a\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe6\x00\x00\x4d\xb1\x48\xbe\x00\x00\x6a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4d\x59\xec\x00\x00\x00\x00\x00\x00", /* 8000 */ "\x59\xaa\x50\xce\x00\x00\x50\x5c\x66\x43\x5b\x7f\x65\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x69\x94\x4b\xf7\x56\x43\x00\x00\x00\x00\x52\xcc\x00\x00\x69\x88\x00\x00\x69\x89\x4c\xfa\x69\x8a\x4d\xc3\x5a\xc4\x48\xd1\x00\x00\x00\x00\x69\x8b\x00\x00\x00\x00\x00\x00\x69\x8c\x00\x00\x69\x8d\x00\x00\x00\x00\x69\x8e\x69\x8f\x69\x90\x69\x92\x69\x91\x53\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x93\x00\x00\x4b\xf9\x00\x00\x69\x95\x59\xad\x5f\xc6\x56\x6a\x00\x00\x00\x00\x4a\x7c\x00\x00\x4b\x42\x00\x00\x4d\x42\x00\x00\x00\x00\x52\xf3\x69\x96\x00\x00\x00\x00\x69\x97\x00\x00\x00\x00\x00\x00\x51\x64\x51\x9c\x5b\xaf\x69\x98\x00\x00\x00\x00\x00\x00\x00\x00\x69\x99\x00\x00\x51\x4a\x00\x00\x00\x00\x00\x00\x53\xb7\x00\x00\x4f\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x9a\x4a\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x52", /* 8080 */ "\x67\x51\x00\x00\x00\x00\x56\x81\x59\xdd\x00\x00\x56\x61\x5b\x78\x00\x00\x54\xe1\x00\x00\x50\xde\x4e\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x61\x00\x00\x00\x00\x58\xa3\x00\x00\x5b\xe1\x00\x00\x4b\xc6\x4c\xd7\x66\x60\x4c\xcd\x00\x00\x66\x5f\x4a\x46\x4d\x69\x5b\xaa\x00\x00\x4c\x95\x4c\x6a\x00\x00\x00\x00\x00\x00\x4e\xe6\x4c\x5e\x66\x66\x00\x00\x66\x67\x48\xb8\x50\x6f\x00\x00\x66\x65\x5a\x9e\x00\x00\x66\x68\x00\x00\x00\x00\x66\x69\x00\x00\x00\x00\x4c\x6e\x00\x00\x66\x62\x66\x64\x55\x97\x5b\xd6\x5b\x6d\x58\xb1\x66\x6f\x57\xb7\x66\x70\x00\x00\x4b\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x53\x66\x72\x56\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x76\x66\x73\x00\x00\x66\x71\x53\x7f\x66\x6e\x55\xa3\x66\x75\x48\xfa\x00\x00\x00\x00\x4d\xf9\x00\x00\x00\x00\x5c\xb6\x69\x84\x00\x00\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x76\x63\xbf\x66\x79\x00\x00\x50\x89\x59\xc7\x66\x77\x66\x7c\x4c\xeb\x66\x78\x00\x00\x4f\x5a\x00\x00\x58\xd7\x00\x00\x48\xb6\x00\x00\x66\x7d\x52\xdb\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x5b\xab\x00\x00\x00\x00\x00\x00\x4a\xdf\x00\x00\x00\x00\x51\xf5\x4e\xb8\x00\x00\x00\x00\x66\x7a\x66\x7b\x5a\xdf\x53\xe9\x52\xd3\x66\x7f\x53\x47\x5d\x96\x00\x00\x49\xb0\x00\x00\x66\x85\x00\x00\x4f\x65\x00\x00\x00\x00\x00\x00\x66\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x84\x00\x00\x00\x00\x4c\xab\x00\x00\x57\x71\x66\x86\x00\x00\x00\x00\x00\x00\x66\x82\x00\x00\x51\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xf2\x00\x00\x66\x87\x00\x00\x50\xaf\x59\xb7\x66\x88\x00\x00\x00\x00\x00\x00\x4c\xae\x4c\xac\x00\x00\x66\x89\x54\x5b\x57\x94\x00\x00\x00\x00\x00\x00\x66\x8b\x66\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc7\x00\x00\x66\x93\x00\x00\x66\x8f\x00\x00\x00\x00\x00\x00\x66\x92\x54\xf8\x00\x00\x59\x9d\x66\x8d\x00\x00\x00\x00\x66\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb8\x58\x79\x52\xe4\x66\x90\x66\x91\x56\xd9\x57\x68", /* 8180 */ "\x48\xf1\x00\x00\x66\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x96\x00\x00\x49\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdf\x00\x00\x66\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x8d\x00\x00\x00\x00\x56\xc4\x52\xa3\x58\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x9a\x00\x00\x00\x00\x66\xa1\x00\x00\x53\x93\x00\x00\x66\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xde\x66\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6e\x66\xa0\x49\x7b\x5a\x57\x00\x00\x00\x00\x59\xdb\x00\x00\x00\x00\x00\x00\x66\x9e\x00\x00\x66\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5c\x00\x00\x00\x00\x00\x00\x65\xaf\x00\x00\x00\x00\x5c\x74\x00\x00\x6a\xaa\x4a\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc0\x5b\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8a\x4f\xc9\x00\x00\x6a\xa6\x00\x00", /* 8200 */ "\x59\xa7\x6a\xa7\x6a\xa8\x00\x00\x6a\xa9\x4f\xca\x5a\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x81\x55\x82\x00\x00\x00\x00\x6a\x62\x00\x00\x55\xe5\x00\x00\x56\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb5\x56\x54\x00\x00\x57\xe7\x5b\xda\x00\x00\x6a\xac\x6a\xad\x6a\xae\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xb1\x00\x00\x4d\xbc\x6a\xb2\x48\xe2\x6a\xaf\x00\x00\x6a\xb0\x4f\x42\x49\xd4\x00\x00\x6a\xb5\x6a\xb6\x4b\xe5\x49\xaf\x58\x6f\x6a\xb3\x4a\xab\x00\x00\x6a\xb4\x00\x00\x00\x00\x6a\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xb8\x00\x00\x00\x00\x57\x47\x00\x00\x6a\xb9\x00\x00\x6a\xba\x00\x00\x00\x00\x00\x00\x6a\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x72\x00\x00\x6a\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xdd\x51\x5c\x4e\xe7\x00\x00\x55\x4b\x59\x7e\x63\x96\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb2\x59\xd4\x00\x00\x00\x00\x5e\xb3\x48\xab\x5e\xb4", /* 8280 */ "\x00\x00\x00\x00\x4f\x7a\x00\x00\x5e\xb8\x00\x00\x00\x00\x00\x00\x5c\xc1\x00\x00\x5e\xb6\x5a\x94\x00\x00\x55\x76\x5e\xb9\x5e\xb5\x00\x00\x5e\xba\x52\x42\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbb\x5e\xc4\x5e\xbc\x00\x00\x00\x00\x57\xde\x5b\xa4\x00\x00\x5e\xce\x00\x00\x5e\xcc\x00\x00\x00\x00\x5e\xd1\x4f\x87\x51\xaa\x00\x00\x5e\xb7\x5e\xca\x5e\xcd\x5e\xbd\x4c\x72\x48\xc4\x5e\xc6\x58\xbd\x5e\xc0\x4e\x48\x00\x00\x4c\x5c\x5e\xcb\x00\x00\x00\x00\x5e\xc5\x5e\xbe\x54\x7b\x00\x00\x00\x00\x00\x00\x59\x5f\x5e\xbf\x00\x00\x00\x00\x5e\xc9\x00\x00\x00\x00\x5e\xcf\x00\x00\x00\x00\x57\xac\x5e\xc1\x00\x00\x5e\xc2\x5e\xc7\x5e\xc8\x49\xd3\x5e\xd0\x56\x75\x00\x00\x5a\xb6\x5e\xda\x5e\xde\x56\xa5\x5e\xe5\x00\x00\x52\x88\x5e\xdb\x00\x00\x00\x00\x50\x61\x5e\xd8\x00\x00\x48\xf9\x4d\x56\x5e\xe4\x5e\xd2\x00\x00\x5e\xc3\x5e\xd5\x54\xf3\x50\x81\x00\x00\x00\x00\x00\x00\x00\x00\x55\x5b\x00\x00\x00\x00\x00\x00\x49\x5d\x00\x00\x5a\x42\x00\x00\x00\x00\x5e\xd9\x00\x00\x00\x00\x5e\xd4\x00\x00\x53\xba\x00\x00\x5e\xdd\x00\x00\x00\x00\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x5c\x62\x52\x4f\x4c\x56\x54\x71\x52\x49\x5e\xe1\x5e\xd7\x5e\xea\x5e\xd3\x00\x00\x00\x00\x5e\xdc\x00\x00\x4f\xa4\x5e\xd6\x00\x00\x5e\xdf\x00\x00\x00\x00\x5e\xe2\x5e\xe3\x00\x00\x5e\xf7\x00\x00\x00\x00\x5e\xe0\x5f\x42\x5e\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xea\x4a\xc3\x00\x00\x00\x00\x52\x43\x49\xe6\x5e\xf9\x00\x00\x5e\xf1\x00\x00\x5e\xee\x00\x00\x5e\xfb\x5e\xed\x59\xef\x49\xe7\x00\x00\x54\xd6\x54\xe2\x5e\xfa\x00\x00\x5e\xec\x00\x00\x00\x00\x00\x00\x5e\xf6\x00\x00\x00\x00\x5e\xf4\x00\x00\x00\x00\x4f\xa2\x5e\xf3\x00\x00\x49\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf2\x4e\xf5\x5e\xe7\x4e\x64\x00\x00\x50\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xd3\x5e\xe8\x5e\xe9\x00\x00\x5e\xf0\x5e\xf5\x5e\xf8\x4b\x54\x00\x00\x54\xd8\x4e\x88\x5e\xfd\x5e\xfc\x5a\x4b\x5f\x41\x5f\x43\x5f\x45\x59\xf0\x5f\x44\x5f\x46\x5f\x47\x59\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc8\x5f\x49\x00\x00\x00\x00\x5f\x56\x5f\x51\x5f\x54\x00\x00\x00\x00", /* 8380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x50\x53\xcd\x00\x00\x00\x00\x50\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4f\x00\x00\x00\x00\x00\x00\x5e\xeb\x5f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x00\x00\x00\x00\x5e\xef\x5f\x4f\x00\x00\x5f\x58\x00\x00\x5f\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x59\x5f\x53\x5f\x4d\x52\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x48\x50\xb2\x51\x4b\x5f\x4a\x5f\x4b\x00\x00\x5f\x52\x4e\x92\x5f\x55\x5a\x48\x5f\x5a\x00\x00\x5f\x5b\x52\x47\x00\x00\x00\x00\x5f\x72\x5f\x5c\x00\x00\x00\x00\x00\x00\x5f\x71\x00\x00\x4d\x5d\x00\x00\x00\x00\x4f\xd4\x00\x00\x4f\xf9\x00\x00\x00\x00\x4d\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x6a\x00\x00\x5f\x65\x00\x00\x5f\x5f\x00\x00\x00\x00\x00\x00\x49\xca\x5f\x63\x00\x00\x5f\x6b\x49\xa3\x5f\x75\x00\x00\x00\x00\x00\x00\x5f\x5e\x00\x00\x00\x00\x00\x00\x53\xcf\x5f\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x74\x51\x83\x4c\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x6e\x5f\x6f\x00\x00\x00\x00\x00\x00\x5f\x64\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x5f\x5d\x00\x00\x5f\x6d\x56\xd0\x00\x00\x5f\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x62\x52\x68\x53\xbb\x57\xad\x5f\x6c\x00\x00\x5f\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x61\x00\x00\x00\x00\x00\x00\x5f\x66\x51\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x49\x5a\x4a\x5f\x73\x58\x95\x54\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x67\x00\x00\x00\x00\x00\x00\x5f\x81\x51\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf7\x00\x00\x5f\x79\x5f\x78\x4c\xef\x5f\x76\x00\x00\x00\x00\x00\x00\x00\x00\x53\xce\x00\x00\x4b\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x83\x00\x00\x4d\xf8\x5a\xe0\x5f\x88\x00\x00\x00\x00\x00\x00\x4a\xcf\x00\x00\x5f\x7a\x00\x00\x50\x9c\x5f\x84\x00\x00\x5f\x7f\x00\x00\x5f\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x4b\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x7b\x5f\x7c\x5f\x7e\x00\x00\x4f\x4f\x5f\x85\x00\x00\x5f\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x96\x00\x00\x52\x69\x00\x00\x00\x00\x56\x83\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe0\x00\x00\x00\x00\x53\xd0\x00\x00\x5f\x95\x00\x00\x00\x00\x00\x00\x5b\x95\x5f\x94\x5f\x91\x00\x00\x00\x00\x5f\x8d\x00\x00\x5f\x90\x00\x00\x5f\x89\x00\x00\x00\x00\x58\xed\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd7\x5f\x8f\x00\x00\x00\x00\x5f\x8a\x00\x00\x00\x00\x5f\x8b\x56\x93\x00\x00\x5f\x8e\x00\x00\x00\x00\x49\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb5\x00\x00\x4e\xba\x5f\x92\x00\x00\x00\x00\x5f\x98\x00\x00\x5f\x97\x5f\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x8f\x00\x00\x00\x00\x00\x00\x5f\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa3\x00\x00\x00\x00\x5f\xa2", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x99\x00\x00\x00\x00\x00\x00\x00\x00\x52\x90\x00\x00\x51\xfa\x00\x00\x00\x00\x00\x00\x5b\x82\x00\x00\x00\x00\x57\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9e\x00\x00\x49\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe7\x55\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x5e\x5f\x9b\x5f\x9d\x5f\x9f\x5f\xa1\x48\xa9\x49\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xab\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa5\x4f\x56\x54\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa0\x00\x00\x00\x00\x5f\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa7\x00\x00\x00\x00\x00\x00\x5f\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xac\x00\x00\x5a\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb2\x5f\xa9\x5f\xad\x00\x00\x00\x00\x50\xd8\x00\x00", /* 8580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x49\x41\x5f\xb5\x00\x00\x5f\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x46\x5f\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xae\x00\x00\x00\x00\x00\x00\x5f\xaf\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x5f\xb3\x55\xec\x5f\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb7\x00\x00\x5f\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xd7\x52\x8b\x00\x00\x00\x00\x5f\xb9\x00\x00\x53\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe4\x00\x00\x00\x00\x00\x00\x5f\xbc", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbd\x00\x00\x5f\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x5a\x00\x00\x00\x00\x00\x00\x5f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xad\x4e\x42\x51\xb1\x53\x50\x51\xc6\x00\x00\x00\x00\x69\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe8\x00\x00\x00\x00\x00\x00\x5a\x7d\x00\x00\x00\x00\x00\x00\x66\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x87\x69\xaf\x00\x00\x69\xb0\x00\x00\x00\x00\x55\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe6\x69\xb2\x69\xb4\x69\xb3\x56\x85\x58\x5a\x69\xb1", /* 8680 */ "\x55\xb3\x59\xce\x51\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x69\xb7\x48\xf5\x69\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xbd\x00\x00\x49\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x61\x69\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xbb\x5a\xe8\x00\x00\x00\x00\x69\xba\x69\xb5\x69\xbe\x69\xbc\x00\x00\x69\xb8\x00\x00\x00\x00\x69\xc6\x69\xc3\x69\xc5\x00\x00\x00\x00\x69\xc9\x69\xc1\x69\xbf\x00\x00\x00\x00\x00\x00\x69\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfa\x00\x00\x00\x00\x00\x00\x69\xc0\x00\x00\x54\x9a\x55\x7f\x00\x00\x69\xc7\x4d\x66\x4b\x50\x00\x00\x00\x00\x69\xc2\x69\xc8\x69\xcf\x69\xd5\x00\x00\x00\x00\x4e\x77\x00\x00\x00\x00\x00\x00\x69\xd4\x57\x7c\x00\x00\x5b\xea\x00\x00\x00\x00\x69\xd1\x69\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x69\xca\x00\x00\x00\x00\x00\x00\x69\xcd\x51\xf8\x00\x00\x5b\x7d\x69\xcb\x69\xcc\x69\xce\x69\xd2\x00\x00\x00\x00\x00\x00\x69\xd8\x5a\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe9\x00\x00", /* 8700 */ "\x55\xf0\x00\x00\x4c\x85\x69\xd6\x00\x00\x00\x00\x00\x00\x69\xd7\x69\xd9\x69\xdc\x69\xda\x00\x00\x00\x00\x69\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x59\x71\x69\xd0\x00\x00\x57\x69\x00\x00\x57\xce\x5b\xa8\x00\x00\x69\xe2\x00\x00\x52\x7b\x00\x00\x69\xdf\x00\x00\x00\x00\x50\xae\x69\xeb\x69\xdd\x00\x00\x69\xe0\x00\x00\x00\x00\x00\x00\x69\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x69\xe1\x00\x00\x00\x00\x69\xe6\x00\x00\x00\x00\x69\xe5\x00\x00\x00\x00\x69\xe8\x00\x00\x00\x00\x00\x00\x69\xde\x00\x00\x00\x00\x69\xe3\x69\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4c\x69\xe4\x49\xf4\x00\x00\x00\x00\x69\xf1\x00\x00\x58\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x69\xf4\x00\x00\x00\x00\x00\x00\x4e\x68\x00\x00\x69\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xef\x00\x00\x00\x00\x69\xf5\x69\xf7\x69\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xf2\x00\x00\x69\xf0\x00\x00\x00\x00\x00\x00\x4d\xfa\x00\x00\x4b\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x69\xee\x69\xf6\x69\xec\x69\xed\x00\x00", /* 8780 */ "\x00\x00\x00\x00\x69\xea\x6a\x46\x00\x00\x6a\x43\x00\x00\x00\x00\x6a\x42\x00\x00\x00\x00\x69\xf3\x00\x00\x54\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xfa\x00\x00\x00\x00\x00\x00\x6a\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xfc\x00\x00\x00\x00\x6a\x47\x6a\x49\x6a\x44\x00\x00\x69\xfb\x00\x00\x00\x00\x00\x00\x6a\x4b\x00\x00\x6a\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x00\x00\x6a\x4e\x00\x00\x00\x00\x6a\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x41\x00\x00\x00\x00\x00\x00\x6a\x51\x6a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x4f\x69\xfd\x6a\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x52\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x54\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x48\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x53\x00\x00\x00\x00\x00\x00\x6a\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x58\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x5d\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x57\x00\x00\x54\xe3\x6a\x56\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5b\x4a\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5c\x00\x00\x00\x00\x6a\x5d\x00\x00\x00\x00\x00\x00\x59\x4a\x00\x00\x00\x00\x00\x00\x6a\xab\x58\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xcf\x59\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x6e\x00\x00\x00\x00\x4f\x76\x00\x00\x59\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe1\x61\x8a\x59\xc1\x69\x62\x49\xb8\x00\x00\x00\x00\x49\x8e\x69\x63\x00\x00\x55\x60\x4a\x64\x00\x00\x5d\x93\x00\x00\x56\x45\x00\x00\x69\x64\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x65\x6a\xbf\x69\x66", /* 8880 */ "\x00\x00\x5a\xab\x69\x67\x00\x00\x48\xbf\x6a\xc0\x00\x00\x00\x00\x6a\xc1\x00\x00\x00\x00\x4a\xfb\x00\x00\x53\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x56\xba\x00\x00\x00\x00\x00\x00\x58\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x68\x00\x00\x5d\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x5b\x00\x00\x58\x4e\x00\x00\x00\x00\x00\x00\x4c\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc2\x51\x71\x00\x00\x00\x00\x5c\x50\x69\x69\x00\x00\x00\x00\x69\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6e\x00\x00\x00\x00\x00\x00\x5d\x97\x00\x00\x59\xe0\x5a\xa2\x00\x00\x00\x00\x6a\xc2\x54\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc3\x00\x00\x00\x00\x69\x6d\x69\x6f\x50\x84\x69\x70\x00\x00\x00\x00\x69\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x76\x69\x71\x00\x00\x55\x71\x53\x82\x00\x00\x00\x00\x00\x00\x51\xe2\x4d\x9d\x00\x00\x00\x00\x69\x73\x00\x00\x69\x75\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x4d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd5\x00\x00\x48\xfc\x69\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x78\x69\x72\x69\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x77\x00\x00\x00\x00\x00\x00\x54\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6a\x69\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5d\x00\x00\x00\x00\x00\x00\x69\x7c\x00\x00\x69\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x7f\x00\x00\x00\x00\x58\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc4\x4f\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x82\x00\x00\x00\x00\x00\x00\x57\xf6", /* 8980 */ "\x00\x00\x59\xa9\x00\x00\x69\x9c\x00\x00\x00\x00\x4c\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xfa\x4d\x7b\x00\x00\x4d\x87\x52\x79\x55\xd2\x65\xe7\x50\xbf\x4f\xf4\x65\xe8\x65\xe9\x65\xea\x00\x00\x65\xeb\x65\xec\x65\xed\x65\xee\x4f\x67\x00\x00\x00\x00\x00\x00\x6b\x9c\x00\x00\x00\x00\x00\x00\x6b\x9e\x00\x00\x6b\x9f\x00\x00\x6b\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x83\x00\x00\x6b\xa0\x4a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa1\x00\x00\x00\x00\x00\x00\x6b\xa2\x00\x00\x00\x00\x00\x00\x66\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a00 */ "\x59\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9f\x56\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8b80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa4\x4e\xc5\x4b\xa8\x4c\xbb\x54\xce\x4e\xa4\x5d\xa5\x5d\xa6\x56\xd5\x54\xc2\x5d\xa7\x53\xfc\x00\x00\x59\x55\x59\xe8\x59\x56\x4e\xc6\x00\x00\x4f\x52\x4e\x85\x5d\xa8\x5d\xa9\x59\x68\x5d\xaa\x58\xec\x4b\xee\x51\xda\x00\x00\x56\x6f\x4c\x8e\x55\x89\x4c\x63\x4f\xf6\x5b\xa3\x5d\xab\x5d\xac\x53\xbf\x5c\x88\x55\xb5\x00\x00\x5b\x49\x56\x7f\x5b\x90\x5d\xad\x5b\xde\x4a\xc9\x5d\xaf\x5d\xae\x00\x00\x59\xea\x5d\xb0\x5d\xb1\x5d\xb2\x55\xd3\x5d\xb3\x55\xaa\x5d\xb4\x5d\xb5\x4a\x6f\x5b\xee\x5d\xb6\x4e\x50\x4b\x4e\x5d\xb7\x5d\xb8\x4d\x8f\x59\x4f\x59\xe7\x5d\xb9\x4c\xc2\x58\x8b\x49\xee\x5d\xba\x5d\xbb\x00\x00\x4f\x8c\x57\xdb\x5a\x90\x5d\xbc\x57\xf2\x5d\xbd\x5a\x75\x4e\x86\x5d\xbe\x56\x55\x56\x70\x5d\xbf\x54\x8c\x5b\xed\x5d\xc0\x53\x55\x4b\xc0\x5d\xc1\x4c\x6c\x50\x6e\x5d\xc2", /* 8c00 */ "\x5d\xc3\x56\x4d\x5d\xc4\x4b\x98\x5d\xc5\x51\x62\x5c\x5b\x5d\xc6\x56\xb7\x00\x00\x59\xe9\x52\xb0\x5d\xc7\x4b\x9e\x4e\x71\x5d\xc8\x58\xb2\x5d\xc9\x5d\xca\x57\xbc\x5d\xcb\x5d\xcc\x5d\xcd\x49\xf6\x5d\xd0\x5d\xce\x59\x89\x5d\xcf\x52\x75\x5d\xd1\x00\x00\x5d\xd2\x5d\xd3\x5d\xd4\x58\xba\x59\xa4\x48\xf8\x5d\xd5\x54\x4b\x5d\xd6\x4f\x98\x52\x41\x5d\xd7\x5d\xd8\x52\x9e\x56\xb6\x5d\xd9\x5d\xda\x50\xbd\x53\xd6\x5d\xdb\x5d\xdc\x54\x54\x5d\xdd\x5d\xde\x4d\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb8\x6a\xf7\x00\x00\x6a\xf8\x00\x00\x00\x00\x57\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x59\x00\x00\x00\x00\x00\x00\x00\x00\x66\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x94\x4e\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xbf\x5a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x79\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x95\x49\x4a\x49\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c80 */ "\x00\x00\x00\x00\x6b\x96\x00\x00\x00\x00\x6b\x98\x00\x00\x00\x00\x00\x00\x4d\xd0\x6b\x97\x00\x00\x52\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x9a\x00\x00\x00\x00\x00\x00\x6b\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x54\x5b\x8b\x4c\xb9\x00\x00\x4d\x51\x49\xc5\x5a\xef\x58\x6d\x48\xdb\x5b\x6b\x4e\x96\x5b\xc9\x4c\x57\x56\xaf\x53\xb5\x49\x82\x4d\x5a\x5b\xfb\x4d\x82\x4c\x41\x4e\xf9\x65\xd9\x65\xda\x56\xf8\x4d\x94\x65\xdb\x4a\xfa\x52\x53\x4c\x71\x4d\xd7\x65\xdc\x5a\xf3\x65\xdd\x4e\xd5\x4e\x7f\x65\xde\x51\x7e\x51\xb7\x5a\xde\x5c\x6a\x65\xdf\x65\xe0\x65\xe3\x65\xe1\x65\xe2\x55\x7e\x4c\xb2\x4b\xc3\x65\xe4\x55\xe9\x55\x6d\x4a\xcc\x00\x00\x00\x00\x61\xd8\x53\x83\x65\xe5\x50\xb4\x00\x00\x5c\x58\x65\xe6\x5c\x4c\x54\xfb\x5c\xd2\x5c\xcc\x5a\xdd\x00\x00\x5a\xf8\x55\x64\x5a\x4e\x4c\xd2\x4a\x81\x00\x00\x55\x83\x6a\xf5\x00\x00\x00\x00\x00\x00\x4d\xd4\x00\x00\x6a\xf6\x00\x00\x00\x00\x5c\x7f\x00\x00\x00\x00\x6a\xf0\x4c\xaf\x5b\x74\x4c\xce\x53\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d80 */ "\x00\x00\x4a\x63\x00\x00\x00\x00\x6a\xf1\x4a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xbc\x54\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf3\x00\x00\x00\x00\x6a\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xca\x00\x00\x00\x00\x00\x00\x54\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf4\x00\x00\x5c\x84\x53\x5f\x6b\x60\x00\x00\x00\x00\x6b\x5b\x00\x00\x6b\x63\x00\x00\x6b\x62\x00\x00\x5b\xb9\x6b\x61\x00\x00\x00\x00\x00\x00\x5a\xbd\x6b\x64\x00\x00\x6b\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x48\xce\x4b\x99\x00\x00\x6b\x69\x6b\x6a\x00\x00\x53\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x65\x6b\x66\x00\x00\x00\x00\x6b\x67\x6b\x6b\x00\x00\x4f\xdf\x6b\x68\x4c\xf9\x00\x00\x00\x00\x00\x00\x6b\x70\x6b\x73\x00\x00\x00\x00\x00\x00\x50\x88\x00\x00\x4d\x93\x6b\x5c\x6b\x6d\x00\x00\x00\x00\x51\xb6\x00\x00\x00\x00\x00\x00\x56\xf7\x00\x00\x4e\xf8\x00\x00\x6b\x6e\x6b\x6f\x6b\x71\x4b\xe4\x6b\x72\x00\x00\x6b\x75\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5d\x00\x00\x00\x00\x00\x00\x6b\x74\x5a\x5b\x00\x00\x4a\x8d\x00\x00\x00\x00\x56\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x77\x4f\xe0\x6b\x78\x00\x00\x00\x00\x56\xde\x6b\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc7\x5c\x79\x00\x00\x6b\x79\x00\x00\x6b\x7a\x6b\x7c\x00\x00\x6b\x83\x00\x00\x00\x00\x00\x00\x6b\x81\x00\x00\x00\x00\x00\x00\x6b\x7f\x6b\x7d\x00\x00\x00\x00\x6b\x82\x00\x00\x00\x00\x6b\x7e\x6b\x85\x6b\x86\x00\x00\x56\xe2\x00\x00\x00\x00\x63\x5f\x4b\x58\x6b\x84\x6b\x89\x56\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x87\x6b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x64\x00\x00\x00\x00\x6b\x5f\x00\x00\x00\x00\x4b\x65\x49\xe3\x00\x00\x6b\x8d\x6b\x8a\x00\x00\x4b\xd6\x00\x00\x6b\x8e\x00\x00\x6b\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x8c\x00\x00\x00\x00\x4a\xd9", /* 8e80 */ "\x00\x00\x5a\xe9\x00\x00\x00\x00\x00\x00\x6b\x8f\x00\x00\x4a\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x90\x6b\x92\x00\x00\x00\x00\x00\x00\x6b\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x93\x00\x00\x6b\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x8e\x4d\x4a\x00\x00\x00\x00\x54\x9c\x00\x00\x00\x00\x4b\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x55\x5a\xfd\x4d\x8d\x58\xf8\x00\x00\x65\x8e\x5c\x4a\x65\x8f\x51\xd5\x54\xec\x4d\xe3\x65\x90\x65\x91\x65\x92\x5b\xe0\x65\x93\x65\x94\x65\x96\x65\x95\x65\x97\x65\x98\x54\x82\x65\x99\x5a\xd7\x65\x9a\x4f\x6e", /* 8f80 */ "\x00\x00\x65\x9b\x65\x9c\x4f\x6f\x65\x9d\x4c\xa7\x51\x5e\x65\x9e\x49\x52\x4e\x74\x4d\x96\x65\x9f\x00\x00\x65\xa0\x65\xa1\x65\xa2\x4c\x99\x4e\xac\x00\x00\x55\xe3\x60\xcd\x5a\xae\x58\x5d\x5b\x57\x65\xa3\x5b\x7e\x65\xa4\x58\xc0\x4d\x5c\x00\x00\x4a\xc6\x49\x79\x00\x00\x00\x00\x00\x00\x50\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x49\x87\x49\x88\x00\x00\x49\x89\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5d\x54\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x63\x61\x00\x00\x00\x00\x49\x7f\x00\x00\x00\x00\x00\x00\x51\x69\x4a\xee\x00\x00\x00\x00\x54\x48\x5a\x78\x00\x00\x53\xf8\x59\x58\x00\x00\x4d\x9e\x51\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4d\x00\x00\x5a\xca\x4f\x9d\x00\x00\x63\x62\x4c\x55\x63\x63\x00\x00\x00\x00\x4e\x59\x5b\x83\x00\x00\x4f\x99\x5a\xb5\x57\xa4\x51\x4c\x4a\x79\x00\x00\x00\x00\x56\xf5\x00\x00\x63\x66\x63\x64\x63\x68\x00\x00\x63\x6a\x63\x67\x4b\x6f\x53\xc7\x00\x00\x4b\x9d\x63\x65\x00\x00\x55\xf5\x00\x00\x00\x00\x63\x69\x00\x00\x00\x00\x00\x00\x52\x74\x49\x65\x4e\xa2\x00\x00\x00\x00\x00\x00\x5c\x57\x00\x00\x00\x00", /* 9000 */ "\x57\x6b\x56\x6d\x55\xc9\x56\xd2\x63\x6c\x63\x6b\x52\xe5\x00\x00\x00\x00\x59\x41\x59\x57\x63\x6d\x00\x00\x63\x70\x00\x00\x57\x58\x5b\xef\x63\x6f\x4b\x7d\x00\x00\x57\x5e\x00\x00\x63\x71\x4b\xb9\x00\x00\x00\x00\x57\x48\x4d\x85\x00\x00\x55\xc4\x4a\x71\x56\x79\x5a\xeb\x63\x72\x4c\x8b\x00\x00\x00\x00\x00\x00\x63\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x75\x4a\xfd\x63\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x73\x63\x74\x00\x00\x59\xdc\x00\x00\x00\x00\x51\xde\x49\x66\x00\x00\x5a\x83\x00\x00\x00\x00\x4b\xdc\x56\x8d\x00\x00\x63\x77\x00\x00\x00\x00\x5a\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x8a\x00\x00\x4b\xf3\x63\x7a\x63\x78\x63\x79\x4b\x60\x00\x00\x00\x00\x00\x00\x59\xc4\x63\x7c\x00\x00\x00\x00\x63\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7d\x54\x52\x00\x00\x59\xa2\x00\x00\x00\x00\x63\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe1\x5b\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x81\x5c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x82\x00\x00\x49\x7c", /* 9080 */ "\x59\x9c\x00\x00\x63\x83\x63\x85\x00\x00\x00\x00\x00\x00\x00\x00\x63\x84\x00\x00\x00\x00\x63\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd7\x00\x00\x4b\x6b\x00\x00\x64\x7f\x00\x00\x5d\xf4\x00\x00\x5d\xf7\x00\x00\x5d\xf5\x00\x00\x5d\xf6\x00\x00\x00\x00\x00\x00\x5d\xf9\x58\xce\x52\xc6\x00\x00\x00\x00\x48\xed\x00\x00\x00\x00\x00\x00\x58\xaf\x00\x00\x5d\xf8\x00\x00\x5a\x6a\x4d\xa9\x5e\x42\x54\x92\x00\x00\x5d\xfb\x5d\xfa\x55\x7b\x5d\xfc\x00\x00\x5e\x41\x5c\x7e\x5d\xfd\x51\x7a\x00\x00\x00\x00\x5e\x45\x00\x00\x00\x00\x5a\x95\x00\x00\x00\x00\x5e\x47\x5e\x44\x00\x00\x5e\x48\x00\x00\x00\x00\x4f\x5c\x00\x00\x00\x00\x00\x00\x50\xc8\x5e\x43\x5e\x46\x5b\xa2\x00\x00\x5e\x49\x00\x00\x00\x00\x00\x00\x5e\x4d\x00\x00\x00\x00\x00\x00\x5e\x4e\x5e\x4c\x4d\xc1\x00\x00\x00\x00\x00\x00\x50\x44\x5e\x4b\x00\x00\x00\x00\x00\x00\x5e\x4a\x5a\xc6\x49\xbe\x00\x00\x00\x00\x5e\x4f\x00\x00\x4d\x9a\x00\x00\x5e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5b\x00\x00\x00\x00\x00\x00\x4b\x46\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbb\x5e\x51\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x4b\xf4\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x54\x00\x00\x00\x00\x00\x00\x5e\x53\x5e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x57\x00\x00\x5e\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x59\x00\x00\x00\x00\x5e\x5a\x00\x00\x00\x00\x5a\x6f\x6a\xf9\x54\x96\x5c\x63\x53\x85\x6a\xfb\x6a\xfc\x6a\xfa\x00\x00\x4f\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x58\xee\x00\x00\x00\x00\x4c\x73\x00\x00\x00\x00\x5a\xcc\x56\xa9\x00\x00\x00\x00\x6b\x42\x6b\x41\x4d\xa7\x6a\xfd\x56\x76\x00\x00\x00\x00\x00\x00\x6b\x44\x50\xd1\x00\x00\x4a\x8b\x00\x00\x57\x4a\x6b\x45\x6b\x43\x4f\x54\x6b\x48\x00\x00\x6b\x49\x4f\x6d\x52\x58\x50\x82\x56\x82\x6b\x4a\x00\x00\x00\x00\x00\x00\x6b\x46\x6b\x47\x52\xef", /* 9180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x4c\x00\x00\x4a\xbb\x00\x00\x5c\x8e\x00\x00\x4a\xd6\x6b\x4b\x6b\x4e\x00\x00\x00\x00\x6b\x4d\x6b\x4f\x58\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x71\x54\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x50\x6b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x52\x00\x00\x00\x00\x6b\x53\x6b\x54\x6b\x55\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x57\x6b\x56\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc8\x00\x00\x5a\x74\x55\xcc\x00\x00\x50\xee\x5b\xd7\x59\xaf\x51\x5f\x00\x00\x4f\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9480 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc3\x67\xc4\x67\xc5\x5b\x8c\x4b\xa3\x67\xc7\x67\xc6\x67\xc8\x67\xc9\x54\x45\x67\xca\x67\xcb\x00\x00\x4c\x50\x4b\x97\x67\xcc\x67\xce\x00\x00\x67\xcd\x00\x00\x4c\xc5\x67\xcf\x67\xd0\x67\xd1\x4b\xda\x4a\x4e\x5b\xd2\x52\xc5\x49\x55\x4c\xd5\x67\xd2\x67\xd3\x5a\xbe\x54\x75\x4f\xfa\x57\xd8\x4d\x53\x67\xd5\x67\xd4\x67\xd7\x67\xd6\x53\x45\x67\xd8\x67\xd9\x54\x4e\x67\xda\x54\x4f\x67\xdb\x49\xa6\x67\xdc\x67\xdd\x67\xde\x67\xdf\x67\xe0\x5c\x8b\x67\xe1\x67\xe2\x4e\xd7\x67\xe3\x5a\x6b\x56\xf9\x49\xab\x51\x86\x67\xe4\x54\x46\x52\x4d\x00\x00\x67\xe5\x67\xe6\x67\xe7\x67\xe8\x67\xe9\x67\xea\x67\xeb\x00\x00\x67\xec\x67\xed\x67\xee\x00\x00\x00\x00\x67\xef\x67\xf0\x67\xf1\x67\xf3\x67\xf2\x00\x00\x67\xf4\x57\x4d\x51\xc0\x67\xf5\x67\xf6\x67\xf7\x5b\x41\x67\xf8\x58\x53\x67\xf9\x67\xfa\x00\x00\x67\xfb\x67\xfc\x68\x41\x67\xfd\x68\x42\x4c\xf4\x52\x9b\x68\x43\x68\x44\x4f\x62\x59\xbe\x49\xf8\x68\x45\x68\x46\x68\x47\x59\xf7\x68\x48\x5b\xfc\x68\x49\x53\xcb\x00\x00\x68\x4a\x68\x4b\x51\x54\x68\x4c", /* 9500 */ "\x58\x9b\x56\x99\x68\x4e\x68\x4d\x4a\x9b\x4d\x99\x68\x4f\x68\x50\x58\xe1\x68\x51\x68\x52\x4c\x87\x58\xbe\x68\x53\x68\x54\x68\x55\x54\xf0\x56\xdf\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x5b\x81\x68\x5b\x4a\xec\x52\x4a\x68\x5c\x00\x00\x68\x5d\x68\x5e\x68\x5f\x00\x00\x57\xfc\x68\x60\x51\xdf\x4a\xb7\x5c\x56\x4f\x96\x00\x00\x58\x67\x68\x63\x68\x61\x68\x62\x68\x64\x4b\xa6\x4e\xfb\x4f\xe1\x52\x6c\x68\x65\x68\x66\x00\x00\x68\x67\x68\x6f\x68\x68\x68\x69\x68\x6a\x54\x62\x68\x92\x4b\xcc\x68\x6b\x00\x00\x68\x6c\x68\x6d\x4b\xc5\x52\x5e\x68\x6e\x00\x00\x68\x70\x68\x71\x68\x72\x5b\x93\x00\x00\x68\x73\x52\xf6\x00\x00\x68\x74\x52\xf7\x68\x75\x68\x76\x4c\xe3\x48\xf6\x68\x77\x68\x78\x68\x79\x00\x00\x68\x7a\x68\x7b\x68\x7c\x68\x7d\x00\x00\x68\x7e\x4f\xb4\x68\x82\x68\x7f\x68\x81\x00\x00\x68\x83\x68\x84\x51\x6d\x68\x85\x68\x86\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x50\xd7\x00\x00\x68\x8e\x51\x4d\x68\x8f\x68\x90\x68\x91\x00\x00\x00\x00\x58\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x44", /* 9580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x65\x62\x65\x55\x61\x62\x66\x00\x00\x49\x75\x57\xc9\x4a\xb2\x54\xf1\x62\x67\x58\x70\x62\x68\x4e\xe3\x62\x69\x62\x6a\x52\x66\x5b\x42\x52\xd5\x4d\x8c\x57\xc4\x62\x6b\x52\x97\x62\x6c\x00\x00", /* 9600 */ "\x4c\x47\x4c\xf2\x4d\xd1\x62\x6d\x62\x6e\x5a\xc3\x62\x6f\x00\x00\x62\x70\x59\x6b\x62\x71\x62\x72\x62\x73\x62\x74\x59\x76\x62\x75\x49\xfa\x50\xba\x62\x76\x00\x00\x50\xaa\x62\x77\x62\x78\x62\x79\x00\x00\x62\x7a\x62\x7b\x00\x00\x4c\xb6\x5d\xe1\x00\x00\x4b\xd2\x00\x00\x5d\xe3\x5d\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe5\x00\x00\x00\x00\x00\x00\x54\xed\x00\x00\x00\x00\x5d\xe4\x4c\x60\x59\x95\x59\xf4\x5b\x94\x4f\x77\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x89\x5d\xe7\x5d\xe6\x00\x00\x48\xa1\x57\x73\x00\x00\x5d\xe8\x00\x00\x4c\xbc\x4e\xc9\x51\xbc\x51\xa3\x4a\x62\x5d\xe9\x00\x00\x51\xa9\x52\xaf\x4f\x55\x00\x00\x00\x00\x58\x7e\x00\x00\x00\x00\x00\x00\x5d\xea\x55\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7d\x00\x00\x00\x00\x00\x00\x5d\xeb\x00\x00\x4b\xb7\x5a\xb9\x00\x00\x4a\x9e\x00\x00\x00\x00\x5d\xec\x5a\xc8\x58\x75\x53\x84\x00\x00\x5d\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xee\x00\x00\x5d\xef\x51\x8b\x56\xd4\x58\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x88\x51\xa0\x00\x00\x5d\xf0\x00\x00\x00\x00\x56\x86\x00\x00\x5d\xf1\x00\x00\x56\x87\x59\xfd\x00\x00\x00\x00\x00\x00\x4c\xf3\x00\x00\x00\x00\x5d\xf2\x48\xae\x58\x56\x00\x00\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf3\x00\x00\x00\x00\x62\x64\x00\x00\x00\x00\x51\x45\x00\x00\x00\x00\x6b\xbe\x00\x00\x00\x00\x6b\xbf\x6b\xc0\x52\xd0\x00\x00\x54\xb7\x59\x84\x00\x00\x00\x00\x58\xda\x59\x65\x4e\xae\x4d\x6d\x00\x00\x68\x95\x00\x00\x00\x00\x4a\xc5\x5a\x5a\x6b\xc1\x4a\x9c\x00\x00\x00\x00\x6b\xc2\x00\x00\x00\x00\x4b\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8b\x6b\xa6\x59\x49\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa8\x00\x00\x00\x00\x00\x00\x6b\xa7\x00\x00\x00\x00\x51\x84\x50\xd6\x00\x00\x49\x42\x00\x00\x00\x00\x00\x00\x00\x00\x57\xec\x00\x00", /* 9700 */ "\x58\xe7\x6b\xaa\x00\x00\x00\x00\x58\x97\x00\x00\x6b\xa9\x5b\x91\x6b\xab\x52\x59\x00\x00\x00\x00\x00\x00\x4e\x95\x6b\xad\x6b\xac\x00\x00\x00\x00\x00\x00\x52\xdd\x00\x00\x00\x00\x51\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x4a\x00\x00\x58\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xae\x00\x00\x00\x00\x6b\xaf\x00\x00\x00\x00\x6b\xb0\x00\x00\x51\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd3\x53\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x81\x6b\xa5\x00\x00\x00\x00\x4f\xb7\x00\x00\x00\x00\x4f\xb1\x00\x00\x4b\x86\x00\x00\x00\x00\x4c\x67\x00\x00\x50\x5f\x52\x72\x52\x87\x00\x00\x00\x00\x5c\xcb\x00\x00\x00\x00\x00\x00\x4c\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9a\x59\x45\x00\x00\x48\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x50\x00\x00\x00\x00\x00\x00", /* 9780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xab\x00\x00\x48\xaf\x00\x00\x00\x00\x00\x00\x6c\x52\x6c\x53\x00\x00\x6c\x54\x00\x00\x00\x00\x00\x00\x54\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xce\x00\x00\x00\x00\x6c\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x56\x00\x00\x49\x7e\x00\x00\x6c\x55\x00\x00\x00\x00\x6c\x58\x00\x00\x6c\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa3\x54\xcc\x00\x00\x4d\xaa\x64\xb7\x64\xb8\x64\xb9\x4f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf3\x00\x00\x5a\xce\x55\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb2\x4b\xa4\x54\x8b\x69\x9d\x58\x8f\x56\x53\x58\xea\x64\x90\x57\x88\x4d\x6b\x4b\xd8", /* 9880 */ "\x69\x9e\x48\xe3\x56\x6c\x69\x9f\x5a\xa3\x51\xac\x51\x8d\x53\xc3\x4f\xb0\x69\xa0\x4e\xd4\x00\x00\x69\xa1\x69\xa2\x00\x00\x69\xa3\x59\xc2\x53\xb4\x00\x00\x57\x67\x69\xa4\x00\x00\x5a\x51\x50\x65\x56\xe1\x00\x00\x69\xa5\x69\xa6\x59\x75\x4b\xed\x69\xa7\x69\xa8\x4b\x7f\x69\xa9\x69\xaa\x00\x00\x49\xfb\x69\xab\x69\xac\x54\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x88\x00\x00\x00\x00\x66\xa8\x66\xa9\x66\xaa\x00\x00\x66\xab\x00\x00\x00\x00\x53\xad\x66\xac\x66\xad\x00\x00\x00\x00\x00\x00\x4c\x69\x55\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb7\x6c\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x70\x00\x00\x00\x00\x49\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x73\x6c\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xba\x00\x00\x4e\xa1\x00\x00\x61\xbb\x61\xbc\x61\xbd\x61\xbe\x61\xbf\x61\xc0\x4c\x59\x59\xfa\x4f\x44\x55\xcd\x49\x45\x56\x67\x00\x00\x61\xc1\x4b\xfb\x54\xc3\x61\xc2\x00\x00\x00\x00\x4f\x68\x00\x00\x49\x9e\x61\xc3\x00\x00\x4b\xf5", /* 9980 */ "\x61\xc4\x52\xd8\x00\x00\x00\x00\x61\xc5\x58\x7a\x4d\x7d\x61\xc6\x50\xa0\x00\x00\x61\xc7\x49\xf5\x00\x00\x61\xc8\x00\x00\x51\x94\x61\xc9\x61\xca\x51\xf7\x61\xcb\x61\xcc\x61\xcd\x55\xd6\x5c\xb7\x5d\x86\x58\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa4\x00\x00\x00\x00\x5e\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xec\x5a\xa5\x57\x74\x59\x51\x4a\x7b\x54\x9e\x00\x00\x49\xb4\x51\xbe\x63\xdf\x55\xba\x63\xe0\x63\xe1\x4f\xd3\x63\xe2\x5c\x44\x57\x75\x63\xe4\x4e\xdc\x63\xe3", /* 9a80 */ "\x63\xe5\x63\xe6\x51\xed\x00\x00\x4f\x5e\x63\xe7\x51\xe5\x4d\xa6\x63\xe8\x00\x00\x63\xe9\x4a\x72\x59\x8a\x00\x00\x00\x00\x50\x45\x63\xea\x53\xee\x63\xeb\x63\xec\x00\x00\x00\x00\x63\xed\x53\xac\x63\xee\x00\x00\x55\x47\x63\xef\x63\xf0\x63\xf1\x63\x59\x63\xf2\x63\xf3\x51\xe1\x63\xf4\x63\xf5\x5b\xe7\x63\xf6\x00\x00\x63\xf7\x4d\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x5b\x6c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x5e\x6c\x5c\x4d\xa0\x00\x00\x6c\x5f\x00\x00\x6c\x60\x00\x00\x00\x00\x00\x00\x6c\x62\x6c\x61\x6c\x64\x00\x00\x00\x00\x6c\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x65\x6c\x66\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x67\x00\x00\x56\x89\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x74\x00\x00\x6c\x75\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x76\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x78\x00\x00\x6c\x7a\x00\x00\x6c\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7b\x00\x00\x6c\x79\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x5c\x77\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7d\x00\x00\x00\x00\x00\x00\x6c\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7f\x00\x00\x00\x00\x00\x00\x6c\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6b\x00\x00\x00\x00\x5c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x98\x4d\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9e\x4e\x8b\x6c\x69\x53\xc6\x6c\x68\x00\x00\x6c\x6a\x6c\x6c\x6c\x6b\x00\x00\x00\x00\x00\x00\x6c\x6d\x00\x00\x57\xb9\x00\x00\x6c\x6e\x00\x00\x00\x00\x52\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b80 */ NULL, /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x84\x00\x00\x00\x00\x6b\xce", /* 9c80 */ "\x00\x00\x51\xb2\x6b\xcf\x00\x00\x00\x00\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\x00\x00\x00\x00\x6b\xd5\x00\x00\x49\x4b\x6b\xd6\x00\x00\x6b\xd7\x6b\xd8\x6b\xd9\x00\x00\x6b\xda\x6b\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xdc\x6b\xdd\x58\x6a\x00\x00\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x50\xef\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x00\x00\x6b\xe9\x00\x00\x6b\xea\x6b\xeb\x00\x00\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x4f\xa7\x00\x00\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xf9\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\x00\x00\x00\x00\x6b\xfc\x6b\xfd\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\x00\x00\x00\x00\x6c\x46\x6c\x47\x6c\x48\x49\x8f\x6c\x49\x6c\x4a\x6c\x4b\x00\x00\x00\x00\x6c\x4c\x6c\x4d\x51\x7b\x6c\x4e\x00\x00\x00\x00\x6c\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf0\x68\xae\x4e\xa5\x68\xaf\x52\x9a\x00\x00\x53\x58\x59\x5b\x00\x00\x68\xb0\x68\xb1\x68\xb2\x68\xb3\x68\xb4\x59\x5c\x00\x00\x59\x8d\x00\x00\x68\xb6\x68\xb5\x5a\xa6\x00\x00\x57\x72\x68\xb7\x68\xb9\x68\xb8\x68\xba\x68\xbb\x00\x00\x00\x00\x4c\xea\x68\xbc\x4d\xe7\x00\x00\x68\xbd\x68\xbe\x4f\xe8\x68\xbf\x4b\xeb\x68\xc0\x68\xc1\x68\xc2\x68\xc3\x54\xb4\x68\xc4\x68\xc5\x00\x00\x68\xc6\x53\x95\x00\x00\x68\xc7\x00\x00\x00\x00\x00\x00\x68\xc8\x00\x00\x68\xc9\x6c\x5d\x00\x00\x68\xca\x68\xcb\x68\xcc\x00\x00\x68\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x68\xce\x4d\xd6\x00\x00\x68\xcf\x68\xd0\x68\xd1\x68\xd2\x68\xd3\x68\xd4\x68\xd5\x68\xd7\x00\x00\x00\x00\x5a\x45\x68\xd6\x00\x00\x68\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5a\x51\xb8", /* 9e80 */ "\x00\x00\x00\x00\x6c\x85\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x86\x6c\x87\x00\x00\x00\x00\x6c\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x89\x51\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x8b\x00\x00\x6c\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xef\x00\x00\x00\x00\x00\x00\x6a\xee\x00\x00\x00\x00\x51\xe8\x00\x00\x6c\x82\x6c\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x85\x00\x00\x00\x00\x00\x00\x55\xf1\x50\xe7\x68\xa3\x00\x00\x4d\xd9\x00\x00\x00\x00\x54\x4d\x00\x00\x00\x00\x00\x00\x52\xab\x00\x00\x00\x00\x6c\x8d\x6c\x8e\x6c\x8f\x00\x00\x6c\x91\x6c\x90\x00\x00\x6c\x92\x00\x00\x00\x00\x6c\x95\x00\x00\x6c\x94\x00\x00\x6c\x93\x6c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x8a\x00\x00\x67\x8b\x67\x8c\x00\x00\x6b\xbb\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xbc\x00\x00\x6b\xbd\x4b\xa5\x00\x00\x5c\xbd\x00\x00\x00\x00\x4d\x64\x00\x00\x00\x00\x00\x00\x5c\xba\x00\x00\x5e\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf2\x00\x00\x6c\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x99\x00\x00\x00\x00\x6c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9c\x00\x00\x6c\x9b\x00\x00\x49\x67\x00\x00\x6c\x9d\x6c\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x66\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7d", /* 9f80 */ "\x6b\xb2\x00\x00\x00\x00\x6b\xb3\x51\x85\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x54\xa2\x6b\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9b\x4d\x48\x67\x89\x00\x00\x00\x00\x00\x00\x4d\x8b\x5d\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1", /* e080 */ "\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85", /* e100 */ "\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48", /* e180 */ "\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9", /* e200 */ "\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d", /* e280 */ "\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50", /* e300 */ "\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1", /* e380 */ "\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95", /* e400 */ "\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58", /* e480 */ "\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9", /* e500 */ "\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d", /* e580 */ "\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60", /* e600 */ "\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1", /* e680 */ "\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5", /* e700 */ "\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5b\x44\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-837_P100-2000 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x21\x6a\x21\x6b\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\xf8\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x15\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x64\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x65\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x16\x30\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x36\x22\x27\x22\x28\x22\x11\x22\x0f\x22\x2a\x22\x29\x22\x08\x22\x37\x22\x1a\x22\xa5\x22\x25\x22\x20\x23\x12\x22\x99\x22\x2b\x22\x2e\x22\x61\x22\x4c\x22\x48\x22\x3d\x22\x1d\x00\x00\x22\x6e\x22\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x20\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x88\x24\x89\x24\x8a\x24\x8b\x24\x8c\x24\x8d\x24\x8e\x24\x8f\x24\x90\x24\x91\x24\x92\x24\x93\x24\x94\x24\x95\x24\x96\x24\x97\x24\x98\x24\x99\x24\x9a\x24\x9b\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x24\x7e\x24\x7f\x24\x80\x24\x81\x24\x82\x24\x83\x24\x84\x24\x85\x24\x86\x24\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x20\x32\x21\x32\x22\x32\x23\x32\x24\x32\x25\x32\x26\x32\x27\x32\x28\x32\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xe1\x01\xce\x00\xe0\x01\x13\x00\xe9\x01\x1b\x00\xe8\x01\x2b\x00\xed\x01\xd0\x00\xec\x01\x4d\x00\xf3\x01\xd2\x00\xf2\x01\x6b\x00\xfa\x01\xd4\x00\xf9\x01\xd6\x01\xd8\x01\xda\x01\xdc\x00\xfc\x00\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f", /* 4680 */ "\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x25\x01\x25\x02\x25\x03\x25\x04\x25\x05\x25\x06\x25\x07\x25\x08\x25\x09\x25\x0a\x25\x0b\x25\x0c\x25\x0d\x25\x0e\x25\x0f\x25\x10\x25\x11\x25\x12\x25\x13\x25\x14\x25\x15\x25\x16\x25\x17\x25\x18\x25\x19\x25\x1a\x25\x1b\x25\x1c\x25\x1d\x25\x1e\x25\x1f\x25\x20\x25\x21\x25\x22\x25\x23\x25\x24\x25\x25\x25\x26\x25\x27\x25\x28\x25\x29\x25\x2a\x25\x2b\x25\x2c\x25\x2d\x25\x2e\x25\x2f\x25\x30\x25\x31\x25\x32\x25\x33\x25\x34\x25\x35\x25\x36\x25\x37\x25\x38\x25\x39\x25\x3a\x25\x3b\x25\x3c\x25\x3d\x25\x3e\x25\x3f\x25\x40\x25\x41\x25\x42\x25\x43\x25\x44\x25\x45\x25\x46\x25\x47\x25\x48\x25\x49\x25\x4a\x25\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4a\x96\x3f\x57\xc3\x63\x28\x54\xce\x55\x09\x54\xc0\x76\x91\x76\x4c\x85\x3c\x77\xee\x82\x7e\x78\x8d\x72\x31\x96\x98\x97\x8d\x6c\x28\x5b\x89\x4f\xfa\x63\x09\x66\x97\x5c\xb8\x80\xfa\x68\x48\x80\xae\x66\x02\x76\xce\x51\xf9\x65\x56\x71\xac\x7f\xf1\x88\x84\x50\xb2\x59\x65\x61\xca\x6f\xb3\x82\xad\x63\x4c\x62\x52\x53\xed\x54\x27\x7b\x06\x51\x6b\x75\xa4\x5d\xf4\x62\xd4\x8d\xcb\x97\x76\x62\x8a\x80\x19\x57\x5d\x97\x38\x7f\x62\x72\x38\x76\x7d\x67\xcf\x76\x7e\x64\x46\x4f\x70\x8d\x25\x62\xdc\x7a\x17\x65\x91\x73\xed\x64\x2c\x62\x73\x82\x2c\x98\x81\x67\x7f\x72\x48\x62\x6e\x62\xcc\x4f\x34\x74\xe3\x53\x4a\x52\x9e\x7e\xca\x90\xa6\x5e\x2e\x68\x86\x69\x9c\x81\x80\x7e\xd1\x68\xd2\x78\xc5\x86\x8c\x95\x51\x50\x8d\x8c\x24\x82\xde\x80\xde\x53\x05\x89\x12\x52\x65\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x84\x96\xf9\x4f\xdd\x58\x21\x99\x71\x5b\x9d\x62\xb1\x62\xa5\x66\xb4\x8c\x79\x9c\x8d\x72\x06\x67\x6f\x78\x91\x60\xb2\x53\x51\x53\x17\x8f\x88\x80\xcc\x8d\x1d\x94\xa1\x50\x0d\x72\xc8\x59\x07\x60\xeb\x71\x19\x88\xab\x59\x54\x82\xef\x67\x2c\x7b\x28\x5d\x29\x7e\xf7\x75\x2d\x6c\xf5\x8e\x66\x8f\xf8\x90\x3c\x9f\x3b\x6b\xd4\x91\x19\x7b\x14\x5f\x7c\x78\xa7\x84\xd6\x85\x3d\x6b\xd5\x6b\xd9\x6b\xd6\x5e\x01\x5e\x87\x75\xf9\x95\xed\x65\x5d\x5f\x0a\x5f\xc5\x8f\x9f\x58\xc1\x81\xc2\x90\x7f\x96\x5b\x97\xad\x8f\xb9", /* 4980 */ "\x00\x00\x7f\x16\x8d\x2c\x62\x41\x4f\xbf\x53\xd8\x53\x5e\x8f\xa8\x8f\xa9\x8f\xab\x90\x4d\x68\x07\x5f\x6a\x81\x98\x88\x68\x9c\xd6\x61\x8b\x52\x2b\x76\x2a\x5f\x6c\x65\x8c\x6f\xd2\x6e\xe8\x5b\xbe\x64\x48\x51\x75\x51\xb0\x67\xc4\x4e\x19\x79\xc9\x99\x7c\x70\xb3\x75\xc5\x5e\x76\x73\xbb\x83\xe0\x64\xad\x62\xe8\x94\xb5\x6c\xe2\x53\x5a\x52\xc3\x64\x0f\x94\xc2\x7b\x94\x4f\x2f\x5e\x1b\x82\x36\x81\x16\x81\x8a\x6e\x24\x6c\xca\x9a\x73\x63\x55\x53\x5c\x54\xfa\x88\x65\x57\xe0\x4e\x0d\x5e\x03\x6b\x65\x7c\x3f\x90\xe8\x60\x16\x64\xe6\x73\x1c\x88\xc1\x67\x50\x62\x4d\x8d\x22\x77\x6c\x8e\x29\x91\xc7\x5f\x69\x83\xdc\x85\x21\x99\x10\x53\xc2\x86\x95\x6b\x8b\x60\xed\x60\xe8\x70\x7f\x82\xcd\x82\x31\x4e\xd3\x6c\xa7\x85\xcf\x64\xcd\x7c\xd9\x69\xfd\x66\xf9\x83\x49\x53\x95\x7b\x56\x4f\xa7\x51\x8c\x6d\x4b\x5c\x42\x8e\x6d\x63\xd2\x53\xc9\x83\x2c\x83\x36\x67\xe5\x78\xb4\x64\x3d\x5b\xdf\x5c\x94\x5d\xee\x8b\xe7\x62\xc6\x67\xf4\x8c\x7a\x64\x00\x63\xba\x87\x49\x99\x8b\x8c\x17\x7f\x20\x94\xf2\x4e\xa7\x96\x10\x98\xa4\x66\x0c\x73\x16\x00\x00\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x3a\x5c\x1d\x5e\x38\x95\x7f\x50\x7f\x80\xa0\x53\x82\x65\x5e\x75\x45\x55\x31\x50\x21\x8d\x85\x62\x84\x94\x9e\x67\x1d\x56\x32\x6f\x6e\x5d\xe2\x54\x35\x70\x92\x8f\x66\x62\x6f\x64\xa4\x63\xa3\x5f\x7b\x6f\x88\x90\xf4\x81\xe3\x8f\xb0\x5c\x18\x66\x68\x5f\xf1\x6c\x89\x96\x48\x8d\x81\x88\x6c\x64\x91\x79\xf0\x57\xce\x6a\x59\x62\x10\x54\x48\x4e\x58\x7a\x0b\x60\xe9\x6f\x84\x8b\xda\x62\x7f\x90\x1e\x9a\x8b\x79\xe4\x54\x03\x75\xf4\x63\x01\x53\x19\x6c\x60\x8f\xdf\x5f\x1b\x9a\x70\x80\x3b\x9f\x7f\x4f\x88\x5c\x3a", /* 4a80 */ "\x00\x00\x8d\x64\x7f\xc5\x65\xa5\x70\xbd\x51\x45\x51\xb2\x86\x6b\x5d\x07\x5b\xa0\x62\xbd\x91\x6c\x75\x74\x8e\x0c\x7a\x20\x61\x01\x7b\x79\x4e\xc7\x7e\xf8\x77\x85\x4e\x11\x81\xed\x52\x1d\x51\xfa\x6a\x71\x53\xa8\x8e\x87\x95\x04\x96\xcf\x6e\xc1\x96\x64\x69\x5a\x78\x40\x50\xa8\x77\xd7\x64\x10\x89\xe6\x59\x04\x63\xe3\x5d\xdd\x7a\x7f\x69\x3d\x4f\x20\x82\x39\x55\x98\x4e\x32\x75\xae\x7a\x97\x5e\x62\x5e\x8a\x95\xef\x52\x1b\x54\x39\x70\x8a\x63\x76\x95\x24\x57\x82\x66\x25\x69\x3f\x91\x87\x55\x07\x6d\xf3\x7e\xaf\x88\x22\x62\x33\x7e\xf0\x75\xb5\x83\x28\x78\xc1\x96\xcc\x8f\x9e\x61\x48\x74\xf7\x8b\xcd\x6b\x64\x52\x3a\x8d\x50\x6b\x21\x80\x6a\x84\x71\x56\xf1\x53\x06\x4e\xce\x4e\x1b\x51\xd1\x7c\x97\x91\x8b\x7c\x07\x4f\xc3\x8e\x7f\x7b\xe1\x7a\x9c\x64\x67\x5d\x14\x50\xac\x81\x06\x76\x01\x7c\xb9\x6d\xec\x7f\xe0\x67\x51\x5b\x58\x5b\xf8\x78\xcb\x64\xae\x64\x13\x63\xaa\x63\x2b\x95\x19\x64\x2d\x8f\xbe\x7b\x54\x76\x29\x62\x53\x59\x27\x54\x46\x6b\x79\x50\xa3\x62\x34\x5e\x26\x6b\x86\x4e\xe3\x8d\x37\x88\x8b\x5f\x85\x90\x2e\x00\x00\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x20\x80\x3d\x62\xc5\x4e\x39\x53\x55\x90\xf8\x63\xb8\x80\xc6\x65\xe6\x6c\x2e\x4f\x46\x60\xee\x6d\xe1\x8b\xde\x5f\x39\x86\xcb\x5f\x53\x63\x21\x51\x5a\x83\x61\x68\x63\x52\x00\x63\x63\x8e\x48\x50\x12\x5c\x9b\x79\x77\x5b\xfc\x52\x30\x7a\x3b\x60\xbc\x90\x53\x76\xd7\x5f\xb7\x5f\x97\x76\x84\x8e\x6c\x70\x6f\x76\x7b\x7b\x49\x77\xaa\x51\xf3\x90\x93\x58\x24\x4f\x4e\x6e\xf4\x8f\xea\x65\x4c\x7b\x1b\x72\xc4\x6d\xa4\x7f\xdf\x5a\xe1\x62\xb5\x5e\x95\x57\x30\x84\x82\x7b\x2c\x5e\x1d\x5f\x1f\x90\x12\x7f\x14\x98\xa0", /* 4b80 */ "\x00\x00\x63\x82\x6e\xc7\x78\x98\x70\xb9\x51\x78\x97\x5b\x57\xab\x75\x35\x4f\x43\x75\x38\x5e\x97\x60\xe6\x59\x60\x6d\xc0\x6b\xbf\x78\x89\x53\xfc\x96\xd5\x51\xcb\x52\x01\x63\x89\x54\x0a\x94\x93\x8c\x03\x8d\xcc\x72\x39\x78\x9f\x87\x76\x8f\xed\x8c\x0d\x53\xe0\x4e\x01\x76\xef\x53\xee\x94\x89\x98\x76\x9f\x0e\x95\x2d\x5b\x9a\x8b\xa2\x4e\x22\x4e\x1c\x51\xac\x84\x63\x61\xc2\x52\xa8\x68\x0b\x4f\x97\x60\x6b\x51\xbb\x6d\x1e\x51\x5c\x62\x96\x65\x97\x96\x61\x8c\x46\x90\x17\x75\xd8\x90\xfd\x77\x63\x6b\xd2\x72\x8a\x72\xec\x8b\xfb\x58\x35\x77\x79\x8d\x4c\x67\x5c\x95\x40\x80\x9a\x5e\xa6\x6e\x21\x59\x92\x7a\xef\x77\xed\x95\x3b\x6b\xb5\x65\xad\x7f\x0e\x58\x06\x51\x51\x96\x1f\x5b\xf9\x58\xa9\x54\x28\x8e\x72\x65\x66\x98\x7f\x56\xe4\x94\x9d\x76\xfe\x90\x41\x63\x87\x54\xc6\x59\x1a\x59\x3a\x57\x9b\x8e\xb2\x67\x35\x8d\xfa\x82\x35\x52\x41\x60\xf0\x58\x15\x86\xfe\x5c\xe8\x9e\x45\x4f\xc4\x98\x9d\x8b\xb9\x5a\x25\x60\x76\x53\x84\x62\x7c\x90\x4f\x91\x02\x99\x7f\x60\x69\x80\x0c\x51\x3f\x80\x33\x5c\x14\x99\x75\x6d\x31\x4e\x8c\x00\x00\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x30\x53\xd1\x7f\x5a\x7b\x4f\x4f\x10\x4e\x4f\x96\x00\x6c\xd5\x73\xd0\x85\xe9\x5e\x06\x75\x6a\x7f\xfb\x6a\x0a\x77\xfe\x94\x92\x7e\x41\x51\xe1\x70\xe6\x53\xcd\x8f\xd4\x83\x03\x8d\x29\x72\xaf\x99\x6d\x6c\xdb\x57\x4a\x82\xb3\x65\xb9\x80\xaa\x62\x3f\x96\x32\x59\xa8\x4e\xff\x8b\xbf\x7e\xba\x65\x3e\x83\xf2\x97\x5e\x55\x61\x98\xde\x80\xa5\x53\x2a\x8b\xfd\x54\x20\x80\xba\x5e\x9f\x6c\xb8\x8d\x39\x82\xac\x91\x5a\x54\x29\x6c\x1b\x52\x06\x7e\xb7\x57\x5f\x71\x1a\x6c\x7e\x7c\x89\x59\x4b\x4e\xfd\x5f\xff\x61\x24", /* 4c80 */ "\x00\x00\x7c\xaa\x4e\x30\x5c\x01\x67\xab\x87\x02\x5c\xf0\x95\x0b\x98\xce\x75\xaf\x70\xfd\x90\x22\x51\xaf\x7f\x1d\x8b\xbd\x59\x49\x51\xe4\x4f\x5b\x54\x26\x59\x2b\x65\x77\x80\xa4\x5b\x75\x62\x76\x62\xc2\x8f\x90\x5e\x45\x6c\x1f\x7b\x26\x4f\x0f\x4f\xd8\x67\x0d\x6d\x6e\x6d\xaa\x79\x8f\x88\xb1\x5f\x17\x75\x2b\x62\x9a\x8f\x85\x4f\xef\x91\xdc\x65\xa7\x81\x2f\x81\x51\x5e\x9c\x81\x50\x8d\x74\x52\x6f\x89\x86\x8d\x4b\x59\x0d\x50\x85\x4e\xd8\x96\x1c\x72\x36\x81\x79\x8d\x1f\x5b\xcc\x8b\xa3\x96\x44\x59\x87\x7f\x1a\x54\x90\x56\x76\x56\x0e\x8b\xe5\x65\x39\x69\x82\x94\x99\x76\xd6\x6e\x89\x5e\x72\x75\x18\x67\x46\x67\xd1\x7a\xff\x80\x9d\x8d\x76\x61\x1f\x79\xc6\x65\x62\x8d\x63\x51\x88\x52\x1a\x94\xa2\x7f\x38\x80\x9b\x7e\xb2\x5c\x97\x6e\x2f\x67\x60\x7b\xd9\x76\x8b\x9a\xd8\x81\x8f\x7f\x94\x7c\xd5\x64\x1e\x95\x50\x7a\x3f\x54\x4a\x54\xe5\x6b\x4c\x64\x01\x62\x08\x9e\x3d\x80\xf3\x75\x99\x52\x72\x97\x69\x84\x5b\x68\x3c\x86\xe4\x96\x01\x96\x94\x94\xec\x4e\x2a\x54\x04\x7e\xd9\x68\x39\x8d\xdf\x80\x15\x66\xf4\x5e\x9a\x7f\xb9\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x80\x3f\x68\x97\x5d\xe5\x65\x3b\x52\x9f\x60\x6d\x9f\x9a\x4f\x9b\x8e\xac\x51\x6c\x5b\xab\x5f\x13\x5d\xe9\x6c\x5e\x62\xf1\x8d\x21\x51\x71\x94\xa9\x52\xfe\x6c\x9f\x82\xdf\x72\xd7\x57\xa2\x67\x84\x8d\x2d\x59\x1f\x8f\x9c\x83\xc7\x54\x95\x7b\x8d\x4f\x30\x6c\xbd\x5b\x64\x59\xd1\x9f\x13\x53\xe4\x86\xca\x9a\xa8\x8c\x37\x80\xa1\x65\x45\x98\x7e\x56\xfa\x96\xc7\x52\x2e\x74\xdc\x52\x50\x5b\xe1\x63\x02\x89\x02\x4e\x56\x62\xd0\x60\x2a\x68\xfa\x51\x73\x5b\x98\x51\xa0\x89\xc2\x7b\xa1\x99\x86\x7f\x50\x60\xef", /* 4d80 */ "\x00\x00\x70\x4c\x8d\x2f\x51\x49\x5e\x7f\x90\x1b\x74\x70\x89\xc4\x57\x2d\x78\x45\x5f\x52\x9f\x9f\x95\xfa\x8f\x68\x9b\x3c\x8b\xe1\x76\x78\x68\x42\x67\xdc\x8d\xea\x8d\x35\x52\x3d\x8f\x8a\x6e\xda\x68\xcd\x95\x05\x90\xed\x56\xfd\x67\x9c\x88\xf9\x8f\xc7\x54\xc8\x9a\xb8\x5b\x69\x6d\x77\x6c\x26\x4e\xa5\x5b\xb3\x9a\x87\x91\x63\x61\xa8\x90\xaf\x97\xe9\x54\x2b\x6d\xb5\x5b\xd2\x51\xfd\x55\x8a\x7f\x55\x7f\xf0\x64\xbc\x63\x4d\x65\xf1\x61\xbe\x60\x8d\x71\x0a\x6c\x57\x6c\x49\x59\x2f\x67\x6d\x82\x2a\x58\xd5\x56\x8e\x8c\x6a\x6b\xeb\x90\xdd\x59\x7d\x80\x17\x53\xf7\x6d\x69\x54\x75\x55\x9d\x83\x77\x83\xcf\x68\x38\x79\xbe\x54\x8c\x4f\x55\x54\x08\x76\xd2\x8c\x89\x96\x02\x6c\xb3\x6d\xb8\x8d\x6b\x89\x10\x9e\x64\x8d\x3a\x56\x3f\x9e\xd1\x75\xd5\x5f\x88\x72\xe0\x60\x68\x54\xfc\x4e\xa8\x6a\x2a\x88\x61\x60\x52\x8f\x70\x54\xc4\x70\xd8\x86\x79\x9e\x3f\x6d\x2a\x5b\x8f\x5f\x18\x7e\xa2\x55\x89\x4f\xaf\x73\x34\x54\x3c\x53\x9a\x50\x19\x54\x0e\x54\x7c\x4e\x4e\x5f\xfd\x74\x5a\x58\xf6\x84\x6b\x80\xe1\x87\x74\x72\xd0\x7c\xca\x6e\x56\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x27\x86\x4e\x55\x2c\x62\xa4\x4e\x92\x6c\xaa\x62\x37\x82\xb1\x54\xd7\x53\x4e\x73\x3e\x6e\xd1\x75\x3b\x52\x12\x53\x16\x8b\xdd\x69\xd0\x5f\x8a\x60\x00\x6d\xee\x57\x4f\x6b\x22\x73\xaf\x68\x53\x8f\xd8\x7f\x13\x63\x62\x60\xa3\x55\x24\x75\xea\x8c\x62\x71\x15\x6d\xa3\x5b\xa6\x5e\x7b\x83\x52\x61\x4c\x9e\xc4\x78\xfa\x87\x57\x7c\x27\x76\x87\x51\xf0\x60\xf6\x71\x4c\x66\x43\x5e\x4c\x60\x4d\x8c\x0e\x70\x70\x63\x25\x8f\x89\x5f\xbd\x60\x62\x86\xd4\x56\xde\x6b\xc1\x60\x94\x61\x67\x53\x49\x60\xe0\x66\x66\x8d\x3f", /* 4e80 */ "\x00\x00\x79\xfd\x4f\x1a\x70\xe9\x6c\x47\x8b\xb3\x8b\xf2\x7e\xd8\x83\x64\x66\x0f\x5a\x5a\x9b\x42\x6d\x51\x6d\xf7\x8c\x41\x6d\x3b\x4f\x19\x70\x6b\x83\xb7\x62\x16\x60\xd1\x97\x0d\x8d\x27\x79\x78\x51\xfb\x57\x3e\x57\xfa\x67\x3a\x75\x78\x7a\x3d\x79\xef\x7b\x95\x80\x8c\x99\x65\x8f\xf9\x6f\xc0\x8b\xa5\x9e\x21\x59\xec\x7e\xe9\x7f\x09\x54\x09\x67\x81\x68\xd8\x8f\x91\x7c\x4d\x96\xc6\x53\xca\x60\x25\x75\xbe\x6c\x72\x53\x73\x5a\xc9\x7e\xa7\x63\x24\x51\xe0\x81\x0a\x5d\xf1\x84\xdf\x62\x80\x51\x80\x5b\x63\x4f\x0e\x79\x6d\x52\x42\x60\xb8\x6d\x4e\x5b\xc4\x5b\xc2\x8b\xa1\x8b\xb0\x65\xe2\x5f\xcc\x96\x45\x59\x93\x7e\xe7\x7e\xaa\x56\x09\x67\xb7\x59\x39\x4f\x73\x5b\xb6\x52\xa0\x83\x5a\x98\x8a\x8d\x3e\x75\x32\x94\xbe\x50\x47\x7a\x3c\x4e\xf7\x67\xb6\x9a\x7e\x5a\xc1\x6b\x7c\x76\xd1\x57\x5a\x5c\x16\x7b\x3a\x95\xf4\x71\x4e\x51\x7c\x80\xa9\x82\x70\x59\x78\x7f\x04\x83\x27\x68\xc0\x67\xec\x78\xb1\x78\x77\x62\xe3\x63\x61\x7b\x80\x4f\xed\x52\x6a\x51\xcf\x83\x50\x69\xdb\x92\x74\x8d\xf5\x8d\x31\x89\xc1\x95\x2e\x7b\xad\x4e\xf6\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x65\x82\x30\x52\x51\x99\x6f\x6e\x10\x6e\x85\x6d\xa7\x5e\xfa\x50\xf5\x59\xdc\x5c\x06\x6d\x46\x6c\x5f\x75\x86\x84\x8b\x68\x68\x59\x56\x8b\xb2\x53\x20\x91\x71\x96\x4d\x85\x49\x69\x12\x79\x01\x71\x26\x80\xf6\x4e\xa4\x90\xca\x6d\x47\x9a\x84\x5a\x07\x56\xbc\x64\x05\x94\xf0\x77\xeb\x4f\xa5\x81\x1a\x72\xe1\x89\xd2\x99\x7a\x7f\x34\x7e\xde\x52\x7f\x65\x59\x91\x75\x8f\x7f\x8f\x83\x53\xeb\x7a\x96\x63\xed\x63\xa5\x76\x86\x79\xf8\x88\x57\x96\x36\x62\x2a\x52\xab\x82\x82\x68\x54\x67\x70\x63\x77\x77\x6b\x7a\xed", /* 4f80 */ "\x00\x00\x6d\x01\x7e\xd3\x89\xe3\x59\xd0\x62\x12\x85\xc9\x82\xa5\x75\x4c\x50\x1f\x4e\xcb\x75\xa5\x8b\xeb\x5c\x4a\x5d\xfe\x7b\x4b\x65\xa4\x91\xd1\x4e\xca\x6d\x25\x89\x5f\x7d\x27\x95\x26\x4e\xc5\x8c\x28\x8f\xdb\x97\x73\x66\x4b\x79\x81\x8f\xd1\x70\xec\x6d\x78\x5c\x3d\x52\xb2\x83\x46\x51\x62\x83\x0e\x77\x5b\x66\x76\x9c\xb8\x4e\xac\x60\xca\x7c\xbe\x7c\xb3\x7e\xcf\x4e\x95\x8b\x66\x66\x6f\x98\x88\x97\x59\x58\x83\x65\x6c\x95\x5c\x5f\x84\x75\xc9\x97\x56\x7a\xdf\x7a\xde\x51\xc0\x70\xaf\x7a\x98\x63\xea\x7a\x76\x7e\xa0\x73\x96\x97\xed\x4e\x45\x70\x78\x4e\x5d\x91\x52\x53\xa9\x65\x51\x65\xe7\x81\xfc\x82\x05\x54\x8e\x5c\x31\x75\x9a\x97\xa0\x62\xd8\x72\xd9\x75\xbd\x5c\x45\x9a\x79\x83\xca\x5c\x40\x54\x80\x77\xe9\x4e\x3e\x6c\xae\x80\x5a\x62\xd2\x63\x6e\x5d\xe8\x51\x77\x8d\xdd\x8e\x1e\x95\x2f\x4f\xf1\x53\xe5\x60\xe7\x70\xac\x52\x67\x63\x50\x9e\x43\x5a\x1f\x50\x26\x77\x37\x53\x77\x7e\xe2\x64\x85\x65\x2b\x62\x89\x63\x98\x50\x14\x72\x35\x89\xc9\x51\xb3\x8b\xc0\x7e\xdd\x57\x47\x83\xcc\x94\xa7\x51\x9b\x54\x1b\x5c\xfb\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x7a\xe3\x6d\x5a\x90\xe1\x9a\x8f\x55\x80\x54\x96\x53\x61\x54\xaf\x5f\x00\x63\xe9\x69\x77\x51\xef\x61\x68\x52\x0a\x58\x2a\x52\xd8\x57\x4e\x78\x0d\x77\x0b\x5e\xb7\x61\x77\x7c\xe0\x62\x5b\x62\x97\x4e\xa2\x70\x95\x80\x03\x62\xf7\x70\xe4\x97\x60\x57\x77\x82\xdb\x67\xef\x68\xf5\x78\xd5\x98\x97\x79\xd1\x58\xf3\x54\xb3\x53\xef\x6e\x34\x51\x4b\x52\x3b\x5b\xa2\x8b\xfe\x80\xaf\x55\x43\x57\xa6\x60\x73\x57\x51\x54\x2d\x7a\x7a\x60\x50\x5b\x54\x63\xa7\x62\xa0\x53\xe3\x62\x63\x5b\xc7\x67\xaf\x54\xed\x7a\x9f", /* 5080 */ "\x00\x00\x82\xe6\x91\x77\x5e\x93\x88\xe4\x59\x38\x57\xae\x63\x0e\x8d\xe8\x80\xef\x57\x57\x7b\x77\x4f\xa9\x5f\xeb\x5b\xbd\x6b\x3e\x53\x21\x7b\x50\x72\xc2\x68\x46\x77\xff\x77\x36\x65\xf7\x51\xb5\x4e\x8f\x76\xd4\x5c\xbf\x7a\xa5\x84\x75\x59\x4e\x9b\x41\x50\x80\x99\x88\x61\x27\x6e\x83\x57\x64\x66\x06\x63\x46\x56\xf0\x62\xec\x62\x69\x5e\xd3\x96\x14\x57\x83\x62\xc9\x55\x87\x87\x21\x81\x4a\x8f\xa3\x55\x66\x83\xb1\x67\x65\x8d\x56\x84\xdd\x5a\x6a\x68\x0f\x62\xe6\x7b\xee\x96\x11\x51\x70\x6f\x9c\x8c\x30\x63\xfd\x89\xc8\x61\xd2\x7f\x06\x70\xc2\x6e\xe5\x74\x05\x69\x94\x72\xfc\x5e\xca\x90\xce\x67\x17\x6d\x6a\x63\x5e\x52\xb3\x72\x62\x80\x01\x4f\x6c\x59\xe5\x91\x6a\x70\xd9\x6d\x9d\x52\xd2\x4e\x50\x96\xf7\x95\x6d\x85\x7e\x78\xca\x7d\x2f\x51\x21\x57\x92\x64\xc2\x80\x8b\x7c\x7b\x6c\xea\x68\xf1\x69\x5e\x51\xb7\x53\x98\x68\xa8\x72\x81\x9e\xce\x7b\xf1\x72\xf8\x79\xbb\x6f\x13\x74\x06\x67\x4e\x91\xcc\x9c\xa4\x79\x3c\x83\x89\x83\x54\x54\x0f\x68\x17\x4e\x3d\x53\x89\x52\xb1\x78\x3e\x53\x86\x52\x29\x50\x88\x4f\x8b\x4f\xd0\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe2\x7a\xcb\x7c\x92\x6c\xa5\x96\xb6\x52\x9b\x74\x83\x54\xe9\x4f\xe9\x80\x54\x83\xb2\x8f\xde\x95\x70\x5e\xc9\x60\x1c\x6d\x9f\x5e\x18\x65\x5b\x81\x38\x94\xfe\x60\x4b\x70\xbc\x7e\xc3\x7c\xae\x51\xc9\x68\x81\x7c\xb1\x82\x6f\x4e\x24\x8f\x86\x91\xcf\x66\x7e\x4e\xae\x8c\x05\x64\xa9\x80\x4a\x50\xda\x75\x97\x71\xce\x5b\xe5\x8f\xbd\x6f\x66\x4e\x86\x64\x82\x95\x63\x5e\xd6\x65\x99\x52\x17\x88\xc2\x70\xc8\x52\xa3\x73\x0e\x74\x33\x67\x97\x78\xf7\x97\x16\x4e\x34\x90\xbb\x9c\xde\x6d\xcb\x51\xdb\x8d\x41\x54\x1d", /* 5180 */ "\x00\x00\x62\xce\x73\xb2\x83\xf1\x96\xf6\x9f\x84\x94\xc3\x4f\x36\x7f\x9a\x51\xcc\x70\x75\x96\x75\x5c\xad\x98\x86\x53\xe6\x4e\xe4\x6e\x9c\x74\x09\x69\xb4\x78\x6b\x99\x8f\x75\x59\x52\x18\x76\x24\x6d\x41\x67\xf3\x51\x6d\x9f\x99\x80\x4b\x54\x99\x7b\x3c\x7a\xbf\x96\x86\x57\x84\x62\xe2\x96\x47\x69\x7c\x5a\x04\x64\x02\x7b\xd3\x6f\x0f\x96\x4b\x82\xa6\x53\x62\x98\x85\x5e\x90\x70\x89\x63\xb3\x53\x64\x86\x4f\x9c\x81\x9e\x93\x78\x8c\x97\x32\x8d\xef\x8d\x42\x9e\x7f\x6f\x5e\x79\x84\x5f\x55\x96\x46\x62\x2e\x9a\x74\x54\x15\x94\xdd\x4f\xa3\x65\xc5\x5c\x65\x5c\x61\x7f\x15\x86\x51\x6c\x2f\x5f\x8b\x73\x87\x6e\xe4\x7e\xff\x5c\xe6\x63\x1b\x5b\x6a\x6e\xe6\x53\x75\x4e\x71\x63\xa0\x75\x65\x62\xa1\x8f\x6e\x4f\x26\x4e\xd1\x6c\xa6\x7e\xb6\x8b\xba\x84\x1d\x87\xba\x7f\x57\x90\x3b\x95\x23\x7b\xa9\x9a\xa1\x88\xf8\x84\x3d\x6d\x1b\x9a\x86\x7e\xdc\x59\x88\x9e\xbb\x73\x9b\x78\x01\x86\x82\x9a\x6c\x9a\x82\x56\x1b\x54\x17\x57\xcb\x4e\x70\x9e\xa6\x53\x56\x8f\xc8\x81\x09\x77\x92\x99\x92\x86\xee\x6e\xe1\x85\x13\x66\xfc\x61\x62\x6f\x2b\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x29\x82\x92\x83\x2b\x76\xf2\x6c\x13\x5f\xd9\x83\xbd\x73\x2b\x83\x05\x95\x1a\x6b\xdb\x77\xdb\x94\xc6\x53\x6f\x83\x02\x51\x92\x5e\x3d\x8c\x8c\x8d\x38\x4e\x48\x73\xab\x67\x9a\x68\x85\x91\x76\x97\x09\x71\x64\x6c\xa1\x77\x09\x5a\x92\x95\x41\x6b\xcf\x7f\x8e\x66\x27\x5b\xd0\x59\xb9\x5a\x9a\x95\xe8\x95\xf7\x4e\xec\x84\x0c\x84\x99\x6a\xac\x76\xdf\x95\x30\x73\x1b\x68\xa6\x5b\x5f\x77\x2f\x91\x9a\x97\x61\x7c\xdc\x8f\xf7\x8c\x1c\x5f\x25\x7c\x73\x79\xd8\x89\xc5\x6c\xcc\x87\x1c\x5b\xc6\x5e\x42\x68\xc9\x77\x20", /* 5280 */ "\x00\x00\x7e\xf5\x51\x95\x51\x4d\x52\xc9\x5a\x29\x7f\x05\x97\x62\x82\xd7\x63\xcf\x77\x84\x85\xd0\x79\xd2\x6e\x3a\x5e\x99\x59\x99\x85\x11\x70\x6d\x6c\x11\x62\xbf\x76\xbf\x65\x4f\x60\xaf\x95\xfd\x66\x0e\x87\x9f\x9e\x23\x94\xed\x54\x0d\x54\x7d\x8c\x2c\x64\x78\x64\x79\x86\x11\x6a\x21\x81\x9c\x78\xe8\x64\x69\x9b\x54\x62\xb9\x67\x2b\x83\xab\x58\xa8\x9e\xd8\x6c\xab\x6f\x20\x5b\xde\x96\x4c\x8c\x0b\x72\x5f\x67\xd0\x62\xc7\x72\x61\x4e\xa9\x59\xc6\x6b\xcd\x58\x93\x66\xae\x5e\x55\x52\xdf\x61\x55\x67\x28\x76\xee\x77\x66\x72\x67\x7a\x46\x62\xff\x54\xea\x54\x50\x94\xa0\x90\xa3\x5a\x1c\x7e\xb3\x6c\x16\x4e\x43\x59\x76\x80\x10\x59\x48\x53\x57\x75\x37\x96\xbe\x56\xca\x63\x20\x81\x11\x60\x7c\x95\xf9\x6d\xd6\x54\x62\x99\x81\x51\x85\x5a\xe9\x80\xfd\x59\xae\x97\x13\x50\x2a\x6c\xe5\x5c\x3c\x62\xdf\x4f\x60\x53\x3f\x81\x7b\x90\x06\x6e\xba\x85\x2b\x62\xc8\x5e\x74\x78\xbe\x64\xb5\x63\x7b\x5f\xf5\x5a\x18\x91\x7f\x9e\x1f\x5c\x3f\x63\x4f\x80\x42\x5b\x7d\x55\x6e\x95\x4a\x95\x4d\x6d\x85\x60\xa8\x67\xe0\x72\xde\x51\xdd\x5b\x81\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe7\x6c\xde\x72\x5b\x62\x6d\x94\xae\x7e\xbd\x81\x13\x6d\x53\x51\x9c\x5f\x04\x59\x74\x52\xaa\x60\x12\x59\x73\x66\x96\x86\x50\x75\x9f\x63\x2a\x61\xe6\x7c\xef\x8b\xfa\x54\xe6\x6b\x27\x9e\x25\x6b\xb4\x85\xd5\x54\x55\x50\x76\x6c\xa4\x55\x6a\x8d\xb4\x72\x2c\x5e\x15\x60\x15\x74\x36\x62\xcd\x63\x92\x72\x4c\x5f\x98\x6e\x43\x6d\x3e\x65\x00\x6f\x58\x76\xd8\x78\xd0\x76\xfc\x75\x54\x52\x24\x53\xdb\x4e\x53\x5e\x9e\x65\xc1\x80\x2a\x80\xd6\x62\x9b\x54\x86\x52\x28\x70\xae\x88\x8d\x8d\xd1\x6c\xe1\x54\x78\x80\xda", /* 5380 */ "\x00\x00\x57\xf9\x88\xf4\x8d\x54\x96\x6a\x91\x4d\x4f\x69\x6c\x9b\x55\xb7\x76\xc6\x78\x30\x62\xa8\x70\xf9\x6f\x8e\x5f\x6d\x84\xec\x68\xda\x78\x7c\x7b\xf7\x81\xa8\x67\x0b\x9e\x4f\x63\x67\x78\xb0\x57\x6f\x78\x12\x97\x39\x62\x79\x62\xab\x52\x88\x74\x35\x6b\xd7\x55\x64\x81\x3e\x75\xb2\x76\xae\x53\x39\x75\xde\x50\xfb\x5c\x41\x8b\x6c\x7b\xc7\x50\x4f\x72\x47\x9a\x97\x98\xd8\x6f\x02\x74\xe2\x79\x68\x64\x87\x77\xa5\x62\xfc\x98\x91\x8d\x2b\x54\xc1\x80\x58\x4e\x52\x57\x6a\x82\xf9\x84\x0d\x5e\x73\x51\xed\x74\xf6\x8b\xc4\x5c\x4f\x57\x61\x6c\xfc\x98\x87\x5a\x46\x78\x34\x9b\x44\x8f\xeb\x7c\x95\x52\x56\x62\x51\x94\xfa\x4e\xc6\x83\x86\x84\x61\x83\xe9\x84\xb2\x57\xd4\x67\x34\x57\x03\x66\x6e\x6d\x66\x8c\x31\x66\xdd\x70\x11\x67\x1f\x6b\x3a\x68\x16\x62\x1a\x59\xbb\x4e\x03\x51\xc4\x6f\x06\x67\xd2\x6c\x8f\x51\x76\x68\xcb\x59\x47\x6b\x67\x75\x66\x5d\x0e\x81\x10\x9f\x50\x65\xd7\x79\x48\x79\x41\x9a\x91\x8d\x77\x5c\x82\x4e\x5e\x4f\x01\x54\x2f\x59\x51\x78\x0c\x56\x68\x6c\x14\x8f\xc4\x5f\x03\x6c\x7d\x6c\xe3\x8b\xab\x63\x90\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x70\x6d\x3d\x72\x75\x62\x66\x94\x8e\x94\xc5\x53\x43\x8f\xc1\x7b\x7e\x4e\xdf\x8c\x26\x4e\x7e\x9e\xd4\x94\xb1\x94\xb3\x52\x4d\x6f\x5c\x90\x63\x6d\x45\x8c\x34\x58\x11\x5d\x4c\x6b\x20\x6b\x49\x67\xaa\x54\x5b\x81\x54\x7f\x8c\x58\x99\x85\x37\x5f\x3a\x62\xa2\x6a\x47\x95\x39\x65\x72\x60\x84\x68\x65\x77\xa7\x4e\x54\x4f\xa8\x5d\xe7\x97\x98\x64\xac\x7f\xd8\x5c\xed\x4f\xcf\x7a\x8d\x52\x07\x83\x04\x4e\x14\x60\x2f\x7a\x83\x94\xa6\x4f\xb5\x4e\xb2\x79\xe6\x74\x34\x52\xe4\x82\xb9\x64\xd2\x79\xbd\x5b\xdd\x6c\x81", /* 5480 */ "\x00\x00\x97\x52\x8f\x7b\x6c\x22\x50\x3e\x53\x7f\x6e\x05\x64\xce\x66\x74\x6c\x30\x60\xc5\x98\x77\x8b\xf7\x5e\x86\x74\x3c\x7a\x77\x79\xcb\x4e\x18\x90\xb1\x74\x03\x6c\x42\x56\xda\x91\x4b\x6c\xc5\x8d\x8b\x53\x3a\x86\xc6\x66\xf2\x8e\xaf\x5c\x48\x9a\x71\x6e\x20\x53\xd6\x5a\x36\x9f\x8b\x8d\xa3\x53\xbb\x57\x08\x98\xa7\x67\x43\x91\x9b\x6c\xc9\x51\x68\x75\xca\x62\xf3\x72\xac\x52\x38\x52\x9d\x7f\x3a\x70\x94\x76\x38\x53\x74\x9e\x4a\x69\xb7\x78\x6e\x96\xc0\x88\xd9\x7f\xa4\x71\x36\x71\xc3\x51\x89\x67\xd3\x74\xe4\x58\xe4\x65\x18\x56\xb7\x8b\xa9\x99\x76\x62\x70\x7e\xd5\x60\xf9\x70\xed\x58\xec\x4e\xc1\x4e\xba\x5f\xcd\x97\xe7\x4e\xfb\x8b\xa4\x52\x03\x59\x8a\x7e\xab\x62\x54\x4e\xcd\x65\xe5\x62\x0e\x83\x38\x84\xc9\x83\x63\x87\x8d\x71\x94\x6e\xb6\x5b\xb9\x7e\xd2\x51\x97\x63\xc9\x67\xd4\x80\x89\x83\x39\x88\x15\x51\x12\x5b\x7a\x59\x82\x8f\xb1\x4e\x73\x6c\x5d\x51\x65\x89\x25\x8f\x6f\x96\x2e\x85\x4a\x74\x5e\x95\x10\x95\xf0\x6d\xa6\x82\xe5\x5f\x31\x64\x92\x6d\x12\x84\x28\x81\x6e\x9c\xc3\x58\x5e\x8d\x5b\x4e\x09\x53\xc1\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x1e\x65\x63\x68\x51\x55\xd3\x4e\x27\x64\x14\x9a\x9a\x62\x6b\x5a\xc2\x74\x5f\x82\x72\x6d\xa9\x68\xee\x50\xe7\x83\x8e\x78\x02\x67\x40\x52\x39\x6c\x99\x7e\xb1\x50\xbb\x55\x65\x71\x5e\x7b\x5b\x66\x52\x73\xca\x82\xeb\x67\x49\x5c\x71\x52\x20\x71\x7d\x88\x6b\x95\xea\x96\x55\x64\xc5\x8d\x61\x81\xb3\x55\x84\x6c\x55\x62\x47\x7f\x2e\x58\x92\x4f\x24\x55\x46\x8d\x4f\x66\x4c\x4e\x0a\x5c\x1a\x88\xf3\x68\xa2\x63\x4e\x7a\x0d\x70\xe7\x82\x8d\x52\xfa\x97\xf6\x5c\x11\x54\xe8\x90\xb5\x7e\xcd\x59\x62\x8d\x4a\x86\xc7", /* 5580 */ "\x00\x00\x82\x0c\x82\x0d\x8d\x66\x64\x44\x5c\x04\x61\x51\x6d\x89\x79\x3e\x8b\xbe\x78\x37\x75\x33\x54\x7b\x4f\x38\x8e\xab\x6d\xf1\x5a\x20\x7e\xc5\x79\x5e\x6c\x88\x5b\xa1\x5a\x76\x75\x1a\x80\xbe\x61\x4e\x6e\x17\x58\xf0\x75\x1f\x75\x25\x72\x72\x53\x47\x7e\xf3\x77\x01\x76\xdb\x52\x69\x80\xdc\x57\x23\x5e\x08\x59\x31\x72\xee\x65\xbd\x6e\x7f\x8b\xd7\x5c\x38\x86\x71\x53\x41\x77\xf3\x62\xfe\x65\xf6\x4e\xc0\x98\xdf\x86\x80\x5b\x9e\x8b\xc6\x53\xf2\x77\xe2\x4f\x7f\x5c\x4e\x9a\x76\x59\xcb\x5f\x0f\x79\x3a\x58\xeb\x4e\x16\x67\xff\x4e\x8b\x62\xed\x8a\x93\x90\x1d\x52\xbf\x66\x2f\x55\xdc\x56\x6c\x90\x02\x4e\xd5\x4f\x8d\x91\xca\x99\x70\x6c\x0f\x5e\x02\x60\x43\x5b\xa4\x89\xc6\x8b\xd5\x65\x36\x62\x4b\x99\x96\x5b\x88\x5b\xff\x63\x88\x55\x2e\x53\xd7\x76\x26\x51\x7d\x85\x2c\x67\xa2\x68\xb3\x6b\x8a\x62\x92\x8f\x93\x53\xd4\x82\x12\x6d\xd1\x75\x8f\x4e\x66\x8d\x4e\x5b\x70\x71\x9f\x85\xaf\x66\x91\x66\xd9\x7f\x72\x87\x00\x9e\xcd\x9f\x20\x5c\x5e\x67\x2f\x8f\xf0\x68\x11\x67\x5f\x62\x0d\x7a\xd6\x58\x85\x5e\xb6\x65\x70\x6f\x31\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x55\x52\x37\x80\x0d\x64\x54\x88\x70\x75\x29\x5e\x05\x68\x13\x62\xf4\x97\x1c\x53\xcc\x72\x3d\x8c\x01\x6c\x34\x77\x61\x7a\x0e\x54\x2e\x77\xac\x98\x7a\x82\x1c\x8b\xf4\x78\x55\x67\x14\x70\xc1\x65\xaf\x64\x95\x56\x36\x60\x1d\x79\xc1\x53\xf8\x4e\x1d\x6b\x7b\x80\x86\x5b\xfa\x55\xe3\x56\xdb\x4f\x3a\x4f\x3c\x99\x72\x5d\xf3\x67\x7e\x80\x38\x60\x02\x98\x82\x90\x01\x5b\x8b\x8b\xbc\x8b\xf5\x64\x1c\x82\x58\x64\xde\x55\xfd\x82\xcf\x91\x65\x4f\xd7\x7d\x20\x90\x1f\x7c\x9f\x50\xf3\x58\x51\x6e\xaf\x5b\xbf\x8b\xc9", /* 5680 */ "\x00\x00\x80\x83\x91\x78\x84\x9c\x7b\x97\x86\x7d\x96\x8b\x96\x8f\x7e\xe5\x9a\xd3\x78\x8e\x5c\x81\x7a\x57\x90\x42\x96\xa7\x79\x5f\x5b\x59\x63\x5f\x7b\x0b\x84\xd1\x68\xad\x55\x06\x7f\x29\x74\x10\x7d\x22\x95\x01\x62\x40\x58\x4c\x4e\xd6\x5b\x83\x59\x79\x58\x54\x73\x6d\x63\x1e\x8e\x4b\x8e\x0f\x80\xce\x82\xd4\x62\xac\x53\xf0\x6c\xf0\x91\x5e\x59\x2a\x60\x01\x6c\x70\x57\x4d\x64\x4a\x8d\x2a\x76\x2b\x6e\xe9\x57\x5b\x6a\x80\x75\xf0\x6f\x6d\x8c\x2d\x8c\x08\x57\x66\x6b\xef\x88\x92\x78\xb3\x63\xa2\x53\xf9\x70\xad\x6c\x64\x58\x58\x64\x2a\x58\x02\x68\xe0\x81\x9b\x55\x10\x7c\xd6\x50\x18\x8e\xba\x6d\xcc\x8d\x9f\x70\xeb\x63\x8f\x6d\x9b\x6e\xd4\x7e\xe6\x84\x04\x68\x43\x90\x03\x6d\xd8\x96\x76\x8b\xa8\x59\x57\x72\x79\x85\xe4\x81\x7e\x75\xbc\x8a\x8a\x68\xaf\x52\x54\x8e\x22\x95\x11\x63\xd0\x98\x98\x8e\x44\x55\x7c\x4f\x53\x66\xff\x56\x8f\x60\xd5\x6d\x95\x52\x43\x5c\x49\x59\x29\x6d\xfb\x58\x6b\x75\x30\x75\x1c\x60\x6c\x82\x14\x81\x46\x63\x11\x67\x61\x8f\xe2\x77\x3a\x8d\xf3\x8d\x34\x94\xc1\x5e\x16\x53\x85\x54\x2c\x70\xc3\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x40\x5e\xf7\x50\x5c\x4e\xad\x5e\xad\x63\x3a\x82\x47\x90\x1a\x68\x50\x91\x6e\x77\xb3\x54\x0c\x94\xdc\x5f\x64\x7a\xe5\x68\x76\x63\x45\x7b\x52\x7e\xdf\x75\xdb\x50\x77\x62\x95\x59\x34\x90\x0f\x51\xf8\x79\xc3\x7a\x81\x56\xfe\x5f\x92\x90\x14\x6d\x82\x5c\x60\x57\x1f\x54\x10\x51\x54\x6e\x4d\x56\xe2\x63\xa8\x98\x93\x81\x7f\x87\x15\x89\x2a\x90\x00\x54\x1e\x5c\x6f\x81\xc0\x62\xd6\x62\x58\x81\x31\x9e\x35\x96\x40\x9a\x6e\x9a\x7c\x69\x2d\x59\xa5\x62\xd3\x55\x3e\x63\x16\x54\xc7\x86\xd9\x6d\x3c\x5a\x03\x74\xe6", /* 5780 */ "\x00\x00\x88\x9c\x6b\x6a\x59\x16\x8c\x4c\x5f\x2f\x6e\x7e\x73\xa9\x98\x7d\x4e\x38\x70\xf7\x5b\x8c\x78\x97\x63\x3d\x66\x5a\x76\x96\x60\xcb\x5b\x9b\x5a\x49\x4e\x07\x81\x55\x6c\x6a\x73\x8b\x4e\xa1\x67\x89\x7f\x51\x5f\x80\x65\xfa\x67\x1b\x5f\xd8\x59\x84\x5a\x01\x5d\xcd\x5f\xae\x53\x71\x97\xe6\x8f\xdd\x68\x45\x56\xf4\x55\x2f\x60\xdf\x4e\x3a\x6f\x4d\x7e\xf4\x82\xc7\x84\x0e\x59\xd4\x4f\x1f\x4f\x2a\x5c\x3e\x7e\xac\x67\x2a\x85\x1a\x54\x73\x75\x4f\x80\xc3\x55\x82\x9b\x4f\x4f\x4d\x6e\x2d\x8c\x13\x5c\x09\x61\x70\x53\x6b\x76\x1f\x6e\x29\x86\x8a\x65\x87\x95\xfb\x7e\xb9\x54\x3b\x7a\x33\x7d\x0a\x95\xee\x55\xe1\x7f\xc1\x74\xee\x63\x1d\x87\x17\x6d\xa1\x7a\x9d\x62\x11\x65\xa1\x53\x67\x63\xe1\x6c\x83\x5d\xeb\x54\x5c\x94\xa8\x4e\x4c\x6c\x61\x8b\xec\x5c\x4b\x65\xe0\x82\x9c\x68\xa7\x54\x3e\x54\x34\x6b\xcb\x6b\x66\x4e\x94\x63\x42\x53\x48\x82\x1e\x4f\x0d\x4f\xae\x57\x5e\x62\x0a\x96\xfe\x66\x64\x72\x69\x52\xff\x52\xa1\x60\x9f\x8b\xef\x66\x14\x71\x99\x67\x90\x89\x7f\x78\x52\x77\xfd\x66\x70\x56\x3b\x54\x38\x95\x21\x72\x7a\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x60\x6f\x5e\x0c\x60\x89\x81\x9d\x59\x15\x60\xdc\x71\x84\x70\xef\x6e\xaa\x6c\x50\x72\x80\x6a\x84\x88\xad\x5e\x2d\x4e\x60\x5a\xb3\x55\x9c\x94\xe3\x6d\x17\x7c\xfb\x96\x99\x62\x0f\x7e\xc6\x77\x8e\x86\x7e\x53\x23\x97\x1e\x8f\x96\x66\x87\x5c\xe1\x4f\xa0\x72\xed\x4e\x0b\x53\xa6\x59\x0f\x54\x13\x63\x80\x95\x28\x51\x48\x4e\xd9\x9c\x9c\x7e\xa4\x54\xb8\x8d\x24\x88\x54\x82\x37\x95\xf2\x6d\x8e\x5f\x26\x5a\xcc\x66\x3e\x96\x69\x73\xb0\x73\x2e\x53\xbf\x81\x7a\x99\x85\x7f\xa1\x5b\xaa\x96\x77\x96\x50\x7e\xbf", /* 5880 */ "\x00\x00\x76\xf8\x53\xa2\x95\x76\x99\x99\x7b\xb1\x89\x44\x6e\x58\x4e\x61\x7f\xd4\x79\x65\x8b\xe6\x60\xf3\x54\xcd\x4e\xab\x98\x79\x5d\xf7\x6a\x61\x50\xcf\x54\x11\x8c\x61\x84\x27\x78\x5d\x97\x04\x52\x4a\x54\xee\x56\xa3\x95\x00\x6d\x88\x5b\xb5\x6d\xc6\x66\x53\x5c\x0f\x5b\x5d\x68\x21\x80\x96\x55\x78\x7b\x11\x65\x48\x69\x54\x4e\x9b\x6b\x47\x87\x4e\x97\x8b\x53\x4f\x63\x1f\x64\x3a\x90\xaa\x65\x9c\x80\xc1\x8c\x10\x51\x99\x68\xb0\x53\x78\x87\xf9\x61\xc8\x6c\xc4\x6c\xfb\x8c\x22\x5c\x51\x85\xaa\x82\xaf\x95\x0c\x6b\x23\x8f\x9b\x65\xb0\x5f\xfb\x5f\xc3\x4f\xe1\x88\x45\x66\x1f\x81\x65\x73\x29\x60\xfa\x51\x74\x52\x11\x57\x8b\x5f\x62\x90\xa2\x88\x4c\x91\x92\x5e\x78\x67\x4f\x60\x27\x59\xd3\x51\x44\x51\xf6\x80\xf8\x53\x08\x6c\x79\x96\xc4\x71\x8a\x4f\x11\x4f\xee\x7f\x9e\x67\x3d\x55\xc5\x95\x08\x79\xc0\x88\x96\x7e\xe3\x58\x9f\x62\x0c\x97\x00\x86\x5a\x56\x18\x98\x7b\x5f\x90\x8b\xb8\x84\xc4\x91\x57\x53\xd9\x65\xed\x5e\x8f\x75\x5c\x60\x64\x7d\x6e\x5a\x7f\x7e\xea\x7e\xed\x8f\x69\x55\xa7\x5b\xa3\x60\xac\x65\xcb\x73\x84\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x09\x76\x63\x77\x29\x7e\xda\x97\x74\x85\x9b\x5b\x66\x7a\x74\x96\xea\x88\x40\x52\xcb\x71\x8f\x5f\xaa\x65\xec\x8b\xe2\x5b\xfb\x9a\x6f\x5d\xe1\x6b\x89\x6c\x5b\x8b\xad\x8b\xaf\x90\x0a\x8f\xc5\x53\x8b\x62\xbc\x9e\x26\x9e\x2d\x54\x40\x4e\x2b\x82\xbd\x72\x59\x86\x9c\x5d\x16\x88\x59\x6d\xaf\x96\xc5\x54\xd1\x4e\x9a\x8b\xb6\x71\x09\x54\xbd\x96\x09\x70\xdf\x6d\xf9\x76\xd0\x4e\x25\x78\x14\x87\x12\x5c\xa9\x5e\xf6\x8a\x00\x98\x9c\x96\x0e\x70\x8e\x6c\xbf\x59\x44\x63\xa9\x77\x3c\x88\x4d\x6f\x14\x82\x73\x58\x30", /* 5980 */ "\x00\x00\x71\xd5\x53\x8c\x78\x1a\x96\xc1\x55\x01\x5f\x66\x71\x30\x5b\xb4\x8c\x1a\x9a\x8c\x6b\x83\x59\x2e\x9e\x2f\x79\xe7\x67\x68\x62\x6c\x4f\x6f\x75\xa1\x7f\x8a\x6d\x0b\x96\x33\x6c\x27\x4e\xf0\x75\xd2\x51\x7b\x68\x37\x6f\x3e\x90\x80\x81\x70\x59\x96\x74\x76\x64\x47\x5c\x27\x90\x65\x7a\x91\x8c\x23\x59\xda\x54\xac\x82\x00\x83\x6f\x89\x81\x80\x00\x69\x30\x56\x4e\x80\x36\x72\x37\x91\xce\x51\xb6\x4e\x5f\x98\x75\x63\x96\x4e\x1a\x53\xf6\x66\xf3\x81\x4b\x59\x1c\x6d\xb2\x4e\x00\x58\xf9\x53\x3b\x63\xd6\x94\xf1\x4f\x9d\x4f\x0a\x88\x63\x98\x90\x59\x37\x90\x57\x79\xfb\x4e\xea\x80\xf0\x75\x91\x6c\x82\x5b\x9c\x59\xe8\x5f\x5d\x69\x05\x86\x81\x50\x1a\x5d\xf2\x4e\x59\x77\xe3\x4e\xe5\x82\x7a\x62\x91\x66\x13\x90\x91\x5c\x79\x4e\xbf\x5f\x79\x81\xc6\x90\x38\x80\x84\x75\xab\x4e\xa6\x88\xd4\x61\x0f\x6b\xc5\x5f\xc6\x4e\x49\x76\xca\x6e\xa2\x8b\xe3\x8b\xae\x8c\x0a\x8b\xd1\x5f\x02\x7f\xfc\x7f\xcc\x7e\xce\x83\x35\x83\x6b\x56\xe0\x6b\xb7\x97\xf3\x96\x34\x59\xfb\x54\x1f\x94\xf6\x6d\xeb\x5b\xc5\x99\x6e\x5c\x39\x5f\x15\x96\x90\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x70\x82\xf1\x6a\x31\x5a\x74\x9e\x70\x5e\x94\x7f\x28\x83\xb9\x84\x24\x84\x25\x83\x67\x87\x47\x8f\xce\x8d\x62\x76\xc8\x5f\x71\x98\x96\x78\x6c\x66\x20\x54\xdf\x62\xe5\x4f\x63\x81\xc3\x75\xc8\x5e\xb8\x96\xcd\x8e\x0a\x86\xf9\x54\x8f\x6c\xf3\x6d\x8c\x6c\x38\x60\x7f\x52\xc7\x75\x28\x5e\x7d\x4f\x18\x60\xa0\x5f\xe7\x5c\x24\x75\x31\x90\xae\x94\xc0\x72\xb9\x6c\xb9\x6e\x38\x91\x49\x67\x09\x53\xcb\x53\xf3\x4f\x51\x91\xc9\x8b\xf1\x53\xc8\x5e\x7c\x8f\xc2\x6d\xe4\x4e\x8e\x76\xc2\x69\x86\x86\x5e\x61\x1a\x82\x06", /* 5a80 */ "\x00\x00\x4f\x59\x4f\xde\x90\x3e\x9c\x7c\x61\x09\x6e\x1d\x6e\x14\x96\x85\x4e\x88\x5a\x31\x96\xe8\x4e\x0e\x5c\x7f\x79\xb9\x5b\x87\x8b\xed\x7f\xbd\x73\x89\x57\xdf\x82\x8b\x90\xc1\x54\x01\x90\x47\x55\xbb\x5c\xea\x5f\xa1\x61\x08\x6b\x32\x72\xf1\x80\xb2\x8a\x89\x6d\x74\x5b\xd3\x88\xd5\x98\x84\x8c\x6b\x9a\x6d\x9e\x33\x6e\x0a\x51\xa4\x51\x43\x57\xa3\x88\x81\x53\x9f\x63\xf4\x8f\x95\x56\xed\x54\x58\x57\x06\x73\x3f\x6e\x90\x7f\x18\x8f\xdc\x82\xd1\x61\x3f\x60\x28\x96\x62\x66\xf0\x7e\xa6\x8d\x8a\x8d\xc3\x94\xa5\x5c\xb3\x7c\xa4\x67\x08\x60\xa6\x96\x05\x80\x18\x4e\x91\x90\xe7\x53\x00\x96\x68\x51\x41\x8f\xd0\x85\x74\x91\x5d\x66\x55\x97\xf5\x5b\x55\x53\x1d\x78\x38\x67\x42\x68\x3d\x54\xc9\x70\x7e\x5b\xb0\x8f\x7d\x51\x8d\x57\x28\x54\xb1\x65\x12\x66\x82\x8d\x5e\x8d\x43\x81\x0f\x84\x6c\x90\x6d\x7c\xdf\x51\xff\x85\xfb\x67\xa3\x65\xe9\x6f\xa1\x86\xa4\x8e\x81\x56\x6a\x90\x20\x76\x82\x70\x76\x71\xe5\x8d\x23\x62\xe9\x52\x19\x6c\xfd\x8d\x3c\x60\x0e\x58\x9e\x61\x8e\x66\xfe\x8d\x60\x62\x4e\x55\xb3\x6e\x23\x67\x2d\x8f\x67\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe1\x95\xf8\x77\x28\x68\x05\x69\xa8\x54\x8b\x4e\x4d\x70\xb8\x8b\xc8\x64\x58\x65\x8b\x5b\x85\x7a\x84\x50\x3a\x5b\xe8\x77\xbb\x6b\xe1\x8a\x79\x7c\x98\x6c\xbe\x76\xcf\x65\xa9\x8f\x97\x5d\x2d\x5c\x55\x86\x38\x68\x08\x53\x60\x62\x18\x7a\xd9\x6e\x5b\x7e\xfd\x6a\x1f\x7a\xe0\x5f\x70\x6f\x33\x5f\x20\x63\x8c\x6d\xa8\x67\x56\x4e\x08\x5e\x10\x8d\x26\x4e\xd7\x80\xc0\x76\x34\x96\x9c\x62\xdb\x66\x2d\x62\x7e\x6c\xbc\x8d\x75\x71\x67\x7f\x69\x51\x46\x80\x87\x53\xec\x90\x6e\x62\x98\x54\xf2\x86\xf0\x8f\x99\x80\x05", /* 5b80 */ "\x00\x00\x95\x17\x85\x17\x8f\xd9\x6d\x59\x73\xcd\x65\x9f\x77\x1f\x75\x04\x78\x27\x81\xfb\x8d\x1e\x94\x88\x4f\xa6\x67\x95\x75\xb9\x8b\xca\x97\x07\x63\x2f\x95\x47\x96\x35\x84\xb8\x63\x23\x77\x41\x5f\x81\x72\xf0\x4e\x89\x60\x14\x65\x74\x62\xef\x6b\x63\x65\x3f\x5e\x27\x75\xc7\x90\xd1\x8b\xc1\x82\x9d\x67\x9d\x65\x2f\x54\x31\x87\x18\x77\xe5\x80\xa2\x81\x02\x6c\x41\x4e\x4b\x7e\xc7\x80\x4c\x76\xf4\x69\x0d\x6b\x96\x62\x67\x50\x3c\x4f\x84\x57\x40\x63\x07\x6b\x62\x8d\xbe\x53\xea\x65\xe8\x7e\xb8\x5f\xd7\x63\x1a\x63\xb7\x81\xf3\x81\xf4\x7f\x6e\x5e\x1c\x5c\xd9\x52\x36\x66\x7a\x79\xe9\x7a\x1a\x8d\x28\x70\x99\x75\xd4\x6e\xde\x6c\xbb\x7a\x92\x4e\x2d\x76\xc5\x5f\xe0\x94\x9f\x88\x77\x7e\xc8\x79\xcd\x80\xbf\x91\xcd\x4e\xf2\x4f\x17\x82\x1f\x54\x68\x5d\xde\x6d\x32\x8b\xcc\x7c\xa5\x8f\x74\x80\x98\x5e\x1a\x54\x92\x76\xb1\x5b\x99\x66\x3c\x9a\xa4\x73\xe0\x68\x2a\x86\xdb\x67\x31\x73\x2a\x8b\xf8\x8b\xdb\x90\x10\x7a\xf9\x70\xdb\x71\x6e\x62\xc4\x77\xa9\x56\x31\x4e\x3b\x84\x57\x67\xf1\x52\xa9\x86\xc0\x8d\x2e\x94\xf8\x7b\x51\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x4f\x6c\xe8\x79\x5d\x9a\x7b\x62\x93\x72\x2a\x62\xfd\x4e\x13\x78\x16\x8f\x6c\x64\xb0\x8d\x5a\x7b\xc6\x68\x69\x5e\x84\x88\xc5\x59\x86\x64\x9e\x58\xee\x72\xb6\x69\x0e\x95\x25\x8f\xfd\x8d\x58\x57\x60\x7f\x00\x8c\x06\x51\xc6\x63\x49\x62\xd9\x53\x53\x68\x4c\x74\x22\x83\x01\x91\x4c\x55\x44\x77\x40\x70\x7c\x6d\x4a\x51\x79\x54\xa8\x8d\x44\x59\xff\x6e\xcb\x6d\xc4\x5b\x5c\x7d\x2b\x4e\xd4\x7c\x7d\x6e\xd3\x5b\x50\x81\xea\x6e\x0d\x5b\x57\x9b\x03\x68\xd5\x8e\x2a\x5b\x97\x7e\xfc\x60\x3b\x7e\xb5\x90\xb9\x8d\x70", /* 5c80 */ "\x00\x00\x59\x4f\x63\xcd\x79\xdf\x8d\xb3\x53\x52\x65\xcf\x79\x56\x8b\xc5\x96\x3b\x7e\xc4\x94\xbb\x7e\x82\x56\x34\x91\x89\x67\x00\x7f\x6a\x5c\x0a\x90\x75\x66\x28\x5d\xe6\x4f\x50\x67\xde\x50\x5a\x4f\x5c\x57\x50\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8d\x4e\x0c\x51\x40\x4e\x10\x5e\xff\x53\x45\x4e\x15\x4e\x98\x4e\x1e\x9b\x32\x5b\x6c\x56\x69\x4e\x28\x79\xba\x4e\x3f\x53\x15\x4e\x47\x59\x2d\x72\x3b\x53\x6e\x6c\x10\x56\xdf\x80\xe4\x99\x97\x6b\xd3\x77\x7e\x9f\x17\x4e\x36\x4e\x9f\x9f\x10\x4e\x5c\x4e\x69\x4e\x93\x82\x88\x5b\x5b\x55\x6c\x56\x0f\x4e\xc4\x53\x8d\x53\x9d\x53\xa3\x53\xa5\x53\xae\x97\x65\x8d\x5d\x53\x1a\x53\xf5\x53\x26\x53\x2e\x53\x3e\x8d\x5c\x53\x66\x53\x63\x52\x02\x52\x08\x52\x0e\x52\x2d\x52\x33\x52\x3f\x52\x40\x52\x4c\x52\x5e\x52\x61\x52\x5c\x84\xaf\x52\x7d\x52\x82\x52\x81\x52\x90\x52\x93\x51\x82\x7f\x54\x4e\xbb\x4e\xc3\x4e\xc9\x4e\xc2\x4e\xe8\x4e\xe1\x4e\xeb\x4e\xde\x4f\x1b\x4e\xf3\x4f\x22\x4f\x64\x4e\xf5\x4f\x25\x4f\x27\x4f\x09\x4f\x2b\x4f\x5e\x4f\x67\x65\x38\x4f\x5a\x4f\x5d\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x5f\x4f\x57\x4f\x32\x4f\x3d\x4f\x76\x4f\x74\x4f\x91\x4f\x89\x4f\x83\x4f\x8f\x4f\x7e\x4f\x7b\x4f\xaa\x4f\x7c\x4f\xac\x4f\x94\x4f\xe6\x4f\xe8\x4f\xea\x4f\xc5\x4f\xda\x4f\xe3\x4f\xdc\x4f\xd1\x4f\xdf\x4f\xf8\x50\x29\x50\x4c\x4f\xf3\x50\x2c\x50\x0f\x50\x2e\x50\x2d\x4f\xfe\x50\x1c\x50\x0c\x50\x25\x50\x28\x50\x7e\x50\x43\x50\x55\x50\x48\x50\x4e\x50\x6c\x50\x7b\x50\xa5\x50\xa7\x50\xa9\x50\xba\x50\xd6\x51\x06\x50\xed\x50\xec\x50\xe6\x50\xee\x51\x07\x51\x0b\x4e\xdd\x6c\x3d\x4f\x58\x4f\x65\x4f\xce\x9f\xa0", /* 5d80 */ "\x00\x00\x6c\x46\x7c\x74\x51\x6e\x5d\xfd\x9e\xc9\x99\x98\x51\x81\x59\x14\x52\xf9\x53\x0d\x8a\x07\x53\x10\x51\xeb\x59\x19\x51\x55\x4e\xa0\x51\x56\x4e\xb3\x88\x6e\x88\xa4\x4e\xb5\x81\x14\x88\xd2\x79\x80\x5b\x34\x88\x03\x7f\xb8\x51\xab\x51\xb1\x51\xbd\x51\xbc\x51\xc7\x51\x96\x51\xa2\x51\xa5\x8b\xa0\x8b\xa6\x8b\xa7\x8b\xaa\x8b\xb4\x8b\xb5\x8b\xb7\x8b\xc2\x8b\xc3\x8b\xcb\x8b\xcf\x8b\xce\x8b\xd2\x8b\xd3\x8b\xd4\x8b\xd6\x8b\xd8\x8b\xd9\x8b\xdc\x8b\xdf\x8b\xe0\x8b\xe4\x8b\xe8\x8b\xe9\x8b\xee\x8b\xf0\x8b\xf3\x8b\xf6\x8b\xf9\x8b\xfc\x8b\xff\x8c\x00\x8c\x02\x8c\x04\x8c\x07\x8c\x0c\x8c\x0f\x8c\x11\x8c\x12\x8c\x14\x8c\x15\x8c\x16\x8c\x19\x8c\x1b\x8c\x18\x8c\x1d\x8c\x1f\x8c\x20\x8c\x21\x8c\x25\x8c\x27\x8c\x2a\x8c\x2b\x8c\x2e\x8c\x2f\x8c\x32\x8c\x33\x8c\x35\x8c\x36\x53\x69\x53\x7a\x96\x1d\x96\x22\x96\x21\x96\x31\x96\x2a\x96\x3d\x96\x3c\x96\x42\x96\x49\x96\x54\x96\x5f\x96\x67\x96\x6c\x96\x72\x96\x74\x96\x88\x96\x8d\x96\x97\x96\xb0\x90\x97\x90\x9b\x90\x9d\x90\x99\x90\xac\x90\xa1\x90\xb4\x90\xb3\x90\xb6\x90\xba\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xb8\x90\xb0\x90\xcf\x90\xc5\x90\xbe\x90\xd0\x90\xc4\x90\xc7\x90\xd3\x90\xe6\x90\xe2\x90\xdc\x90\xd7\x90\xdb\x90\xeb\x90\xef\x90\xfe\x91\x04\x91\x22\x91\x1e\x91\x23\x91\x31\x91\x2f\x91\x39\x91\x43\x91\x46\x52\x0d\x59\x42\x52\xa2\x52\xac\x52\xad\x52\xbe\x54\xff\x52\xd0\x52\xd6\x52\xf0\x53\xdf\x71\xee\x77\xcd\x5e\xf4\x51\xf5\x51\xfc\x9b\x2f\x53\xb6\x5f\x01\x75\x5a\x5d\xef\x57\x4c\x57\xa9\x57\xa1\x58\x7e\x58\xbc\x58\xc5\x58\xd1\x57\x29\x57\x2c\x57\x2a\x57\x33\x57\x39\x57\x2e\x57\x2f\x57\x5c\x57\x3b", /* 5e80 */ "\x00\x00\x57\x42\x57\x69\x57\x85\x57\x6b\x57\x86\x57\x7c\x57\x7b\x57\x68\x57\x6d\x57\x76\x57\x73\x57\xad\x57\xa4\x57\x8c\x57\xb2\x57\xcf\x57\xa7\x57\xb4\x57\x93\x57\xa0\x57\xd5\x57\xd8\x57\xda\x57\xd9\x57\xd2\x57\xb8\x57\xf4\x57\xef\x57\xf8\x57\xe4\x57\xdd\x58\x0b\x58\x0d\x57\xfd\x57\xed\x58\x00\x58\x1e\x58\x19\x58\x44\x58\x20\x58\x65\x58\x6c\x58\x81\x58\x89\x58\x9a\x58\x80\x99\xa8\x9f\x19\x61\xff\x82\x79\x82\x7d\x82\x7f\x82\x8f\x82\x8a\x82\xa8\x82\x84\x82\x8e\x82\x91\x82\x97\x82\x99\x82\xab\x82\xb8\x82\xbe\x82\xb0\x82\xc8\x82\xca\x82\xe3\x82\x98\x82\xb7\x82\xae\x82\xcb\x82\xcc\x82\xc1\x82\xa9\x82\xb4\x82\xa1\x82\xaa\x82\x9f\x82\xc4\x82\xce\x82\xa4\x82\xe1\x83\x09\x82\xf7\x82\xe4\x83\x0f\x83\x07\x82\xdc\x82\xf4\x82\xd2\x82\xd8\x83\x0c\x82\xfb\x82\xd3\x83\x11\x83\x1a\x83\x06\x83\x14\x83\x15\x82\xe0\x82\xd5\x83\x1c\x83\x51\x83\x5b\x83\x5c\x83\x08\x83\x92\x83\x3c\x83\x34\x83\x31\x83\x9b\x83\x5e\x83\x2f\x83\x4f\x83\x47\x83\x43\x83\x5f\x83\x40\x83\x17\x83\x60\x83\x2d\x83\x3a\x83\x33\x83\x66\x83\x65\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x68\x83\x1b\x83\x69\x83\x6c\x83\x6a\x83\x6d\x83\x6e\x83\xb0\x83\x78\x83\xb3\x83\xb4\x83\xa0\x83\xaa\x83\x93\x83\x9c\x83\x85\x83\x7c\x83\xb6\x83\xa9\x83\x7d\x83\xb8\x83\x7b\x83\x98\x83\x9e\x83\xa8\x83\xba\x83\xbc\x83\xc1\x84\x01\x83\xe5\x83\xd8\x58\x07\x84\x18\x84\x0b\x83\xdd\x83\xfd\x83\xd6\x84\x1c\x84\x38\x84\x11\x84\x06\x83\xd4\x83\xdf\x84\x0f\x84\x03\x83\xf8\x83\xf9\x83\xea\x83\xc5\x83\xc0\x84\x26\x83\xf0\x83\xe1\x84\x5c\x84\x51\x84\x5a\x84\x59\x84\x73\x84\x87\x84\x88\x84\x7a\x84\x89\x84\x78", /* 5f80 */ "\x00\x00\x84\x3c\x84\x46\x84\x69\x84\x76\x84\x8c\x84\x8e\x84\x31\x84\x6d\x84\xc1\x84\xcd\x84\xd0\x84\xe6\x84\xbd\x84\xd3\x84\xca\x84\xbf\x84\xba\x84\xe0\x84\xa1\x84\xb9\x84\xb4\x84\x97\x84\xe5\x84\xe3\x85\x0c\x75\x0d\x85\x38\x84\xf0\x85\x39\x85\x1f\x85\x3a\x85\x56\x85\x3b\x84\xff\x84\xfc\x85\x59\x85\x48\x85\x68\x85\x64\x85\x5e\x85\x7a\x77\xa2\x85\x43\x85\x72\x85\x7b\x85\xa4\x85\xa8\x85\x87\x85\x8f\x85\x79\x85\xae\x85\x9c\x85\x85\x85\xb9\x85\xb7\x85\xb0\x85\xd3\x85\xc1\x85\xdc\x85\xff\x86\x27\x86\x05\x86\x29\x86\x16\x86\x3c\x5e\xfe\x5f\x08\x59\x3c\x59\x41\x80\x37\x59\x55\x59\x5a\x59\x58\x53\x0f\x5c\x22\x5c\x25\x5c\x2c\x5c\x34\x62\x4c\x62\x6a\x62\x9f\x62\xbb\x62\xca\x62\xda\x62\xd7\x62\xee\x63\x22\x62\xf6\x63\x39\x63\x4b\x63\x43\x63\xad\x63\xf6\x63\x71\x63\x7a\x63\x8e\x63\xb4\x63\x6d\x63\xac\x63\x8a\x63\x69\x63\xae\x63\xbc\x63\xf2\x63\xf8\x63\xe0\x63\xff\x63\xc4\x63\xde\x63\xce\x64\x52\x63\xc6\x63\xbe\x64\x45\x64\x41\x64\x0b\x64\x1b\x64\x20\x64\x0c\x64\x26\x64\x21\x64\x5e\x64\x84\x64\x6d\x64\x96\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7a\x64\xb7\x64\xb8\x64\x99\x64\xba\x64\xc0\x64\xd0\x64\xd7\x64\xe4\x64\xe2\x65\x09\x65\x25\x65\x2e\x5f\x0b\x5f\xd2\x75\x19\x5f\x11\x53\x5f\x53\xf1\x53\xfd\x53\xe9\x53\xe8\x53\xfb\x54\x12\x54\x16\x54\x06\x54\x4b\x54\x52\x54\x53\x54\x54\x54\x56\x54\x43\x54\x21\x54\x57\x54\x59\x54\x23\x54\x32\x54\x82\x54\x94\x54\x77\x54\x71\x54\x64\x54\x9a\x54\x9b\x54\x84\x54\x76\x54\x66\x54\x9d\x54\xd0\x54\xad\x54\xc2\x54\xb4\x54\xd2\x54\xa7\x54\xa6\x54\xd3\x54\xd4\x54\x72\x54\xa3\x54\xd5\x54\xbb\x54\xbf\x54\xcc", /* 6080 */ "\x00\x00\x54\xd9\x54\xda\x54\xdc\x54\xa9\x54\xaa\x54\xa4\x54\xdd\x54\xcf\x54\xde\x55\x1b\x54\xe7\x55\x20\x54\xfd\x55\x14\x54\xf3\x55\x22\x55\x23\x55\x0f\x55\x11\x55\x27\x55\x2a\x55\x67\x55\x8f\x55\xb5\x55\x49\x55\x6d\x55\x41\x55\x55\x55\x3f\x55\x50\x55\x3c\x55\x37\x55\x56\x55\x75\x55\x76\x55\x77\x55\x33\x55\x30\x55\x5c\x55\x8b\x55\xd2\x55\x83\x55\xb1\x55\xb9\x55\x88\x55\x81\x55\x9f\x55\x7e\x55\xd6\x55\x91\x55\x7b\x55\xdf\x55\xbd\x55\xbe\x55\x94\x55\x99\x55\xea\x55\xf7\x55\xc9\x56\x1f\x55\xd1\x55\xeb\x55\xec\x55\xd4\x55\xe6\x55\xdd\x55\xc4\x55\xef\x55\xe5\x55\xf2\x55\xf3\x55\xcc\x55\xcd\x55\xe8\x55\xf5\x55\xe4\x8f\x94\x56\x1e\x56\x08\x56\x0c\x56\x01\x56\x24\x56\x23\x55\xfe\x56\x00\x56\x27\x56\x2d\x56\x58\x56\x39\x56\x57\x56\x2c\x56\x4d\x56\x62\x56\x59\x56\x5c\x56\x4c\x56\x54\x56\x86\x56\x64\x56\x71\x56\x6b\x56\x7b\x56\x7c\x56\x85\x56\x93\x56\xaf\x56\xd4\x56\xd7\x56\xdd\x56\xe1\x56\xf5\x56\xeb\x56\xf9\x56\xff\x57\x04\x57\x0a\x57\x09\x57\x1c\x5e\x0f\x5e\x19\x5e\x14\x5e\x11\x5e\x31\x5e\x3b\x5e\x3c\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x37\x5e\x44\x5e\x54\x5e\x5b\x5e\x5e\x5e\x61\x5c\x8c\x5c\x7a\x5c\x8d\x5c\x90\x5c\x96\x5c\x88\x5c\x98\x5c\x99\x5c\x91\x5c\x9a\x5c\x9c\x5c\xb5\x5c\xa2\x5c\xbd\x5c\xac\x5c\xab\x5c\xb1\x5c\xa3\x5c\xc1\x5c\xb7\x5c\xc4\x5c\xd2\x5c\xe4\x5c\xcb\x5c\xe5\x5d\x02\x5d\x03\x5d\x27\x5d\x26\x5d\x2e\x5d\x24\x5d\x1e\x5d\x06\x5d\x1b\x5d\x58\x5d\x3e\x5d\x34\x5d\x3d\x5d\x6c\x5d\x5b\x5d\x6f\x5d\x5d\x5d\x6b\x5d\x4b\x5d\x4a\x5d\x69\x5d\x74\x5d\x82\x5d\x99\x5d\x9d\x8c\x73\x5d\xb7\x5d\xc5\x5f\x73\x5f\x77\x5f\x82\x5f\x87", /* 6180 */ "\x00\x00\x5f\x89\x5f\x8c\x5f\x95\x5f\x99\x5f\x9c\x5f\xa8\x5f\xad\x5f\xb5\x5f\xbc\x88\x62\x5f\x61\x72\xad\x72\xb0\x72\xb4\x72\xb7\x72\xb8\x72\xc3\x72\xc1\x72\xce\x72\xcd\x72\xd2\x72\xe8\x72\xef\x72\xe9\x72\xf2\x72\xf4\x72\xf7\x73\x01\x72\xf3\x73\x03\x72\xfa\x72\xfb\x73\x17\x73\x13\x73\x21\x73\x0a\x73\x1e\x73\x1d\x73\x15\x73\x22\x73\x39\x73\x25\x73\x2c\x73\x38\x73\x31\x73\x50\x73\x4d\x73\x57\x73\x60\x73\x6c\x73\x6f\x73\x7e\x82\x1b\x59\x25\x98\xe7\x59\x24\x59\x02\x99\x63\x99\x67\x99\x68\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x74\x99\x77\x99\x7d\x99\x80\x99\x84\x99\x87\x99\x8a\x99\x8d\x99\x90\x99\x91\x99\x93\x99\x94\x99\x95\x5e\x80\x5e\x91\x5e\x8b\x5e\x96\x5e\xa5\x5e\xa0\x5e\xb9\x5e\xb5\x5e\xbe\x5e\xb3\x8d\x53\x5e\xd2\x5e\xd1\x5e\xdb\x5e\xe8\x5e\xea\x81\xba\x5f\xc4\x5f\xc9\x5f\xd6\x5f\xcf\x60\x03\x5f\xee\x60\x04\x5f\xe1\x5f\xe4\x5f\xfe\x60\x05\x60\x06\x5f\xea\x5f\xed\x5f\xf8\x60\x19\x60\x35\x60\x26\x60\x1b\x60\x0f\x60\x0d\x60\x29\x60\x2b\x60\x0a\x60\x3f\x60\x21\x60\x78\x60\x79\x60\x7b\x60\x7a\x60\x42\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6a\x60\x7d\x60\x96\x60\x9a\x60\xad\x60\x9d\x60\x83\x60\x92\x60\x8c\x60\x9b\x60\xec\x60\xbb\x60\xb1\x60\xdd\x60\xd8\x60\xc6\x60\xda\x60\xb4\x61\x20\x61\x26\x61\x15\x61\x23\x60\xf4\x61\x00\x61\x0e\x61\x2b\x61\x4a\x61\x75\x61\xac\x61\x94\x61\xa7\x61\xb7\x61\xd4\x61\xf5\x5f\xdd\x96\xb3\x95\xe9\x95\xeb\x95\xf1\x95\xf3\x95\xf5\x95\xf6\x95\xfc\x95\xfe\x96\x03\x96\x04\x96\x06\x96\x08\x96\x0a\x96\x0b\x96\x0c\x96\x0d\x96\x0f\x96\x12\x96\x15\x96\x16\x96\x17\x96\x19\x96\x1a\x4e\x2c\x72\x3f\x62\x15\x6c\x35", /* 6280 */ "\x00\x00\x6c\x54\x6c\x5c\x6c\x4a\x6c\xa3\x6c\x85\x6c\x90\x6c\x94\x6c\x8c\x6c\x68\x6c\x69\x6c\x74\x6c\x76\x6c\x86\x6c\xa9\x6c\xd0\x6c\xd4\x6c\xad\x6c\xf7\x6c\xf8\x6c\xf1\x6c\xd7\x6c\xb2\x6c\xe0\x6c\xd6\x6c\xfa\x6c\xeb\x6c\xee\x6c\xb1\x6c\xd3\x6c\xef\x6c\xfe\x6d\x39\x6d\x27\x6d\x0c\x6d\x43\x6d\x48\x6d\x07\x6d\x04\x6d\x19\x6d\x0e\x6d\x2b\x6d\x4d\x6d\x2e\x6d\x35\x6d\x1a\x6d\x4f\x6d\x52\x6d\x54\x6d\x33\x6d\x91\x6d\x6f\x6d\x9e\x6d\xa0\x6d\x5e\x6d\x93\x6d\x94\x6d\x5c\x6d\x60\x6d\x7c\x6d\x63\x6e\x1a\x6d\xc7\x6d\xc5\x6d\xde\x6e\x0e\x6d\xbf\x6d\xe0\x6e\x11\x6d\xe6\x6d\xdd\x6d\xd9\x6e\x16\x6d\xab\x6e\x0c\x6d\xae\x6e\x2b\x6e\x6e\x6e\x4e\x6e\x6b\x6e\xb2\x6e\x5f\x6e\x86\x6e\x53\x6e\x54\x6e\x32\x6e\x25\x6e\x44\x6e\xdf\x6e\xb1\x6e\x98\x6e\xe0\x6f\x2d\x6e\xe2\x6e\xa5\x6e\xa7\x6e\xbd\x6e\xbb\x6e\xb7\x6e\xd7\x6e\xb4\x6e\xcf\x6e\x8f\x6e\xc2\x6e\x9f\x6f\x62\x6f\x46\x6f\x47\x6f\x24\x6f\x15\x6e\xf9\x6f\x2f\x6f\x36\x6f\x4b\x6f\x74\x6f\x2a\x6f\x09\x6f\x29\x6f\x89\x6f\x8d\x6f\x8c\x6f\x78\x6f\x72\x6f\x7c\x6f\x7a\x6f\xd1\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xc9\x6f\xa7\x6f\xb9\x6f\xb6\x6f\xc2\x6f\xe1\x6f\xee\x6f\xde\x6f\xe0\x6f\xef\x70\x1a\x70\x23\x70\x1b\x70\x39\x70\x35\x70\x4f\x70\x5e\x5b\x80\x5b\x84\x5b\x95\x5b\x93\x5b\xa5\x5b\xb8\x75\x2f\x9a\x9e\x64\x34\x5b\xe4\x5b\xee\x89\x30\x5b\xf0\x8e\x47\x8b\x07\x8f\xb6\x8f\xd3\x8f\xd5\x8f\xe5\x8f\xee\x8f\xe4\x8f\xe9\x8f\xe6\x8f\xf3\x8f\xe8\x90\x05\x90\x04\x90\x0b\x90\x26\x90\x11\x90\x0d\x90\x16\x90\x21\x90\x35\x90\x36\x90\x2d\x90\x2f\x90\x44\x90\x51\x90\x52\x90\x50\x90\x68\x90\x58\x90\x62\x90\x5b\x66\xb9", /* 6380 */ "\x00\x00\x90\x74\x90\x7d\x90\x82\x90\x88\x90\x83\x90\x8b\x5f\x50\x5f\x57\x5f\x56\x5f\x58\x5c\x3b\x54\xab\x5c\x50\x5c\x59\x5b\x71\x5c\x63\x5c\x66\x7f\xbc\x5f\x2a\x5f\x29\x5f\x2d\x82\x74\x5f\x3c\x9b\x3b\x5c\x6e\x59\x81\x59\x83\x59\x8d\x59\xa9\x59\xaa\x59\xa3\x59\x97\x59\xca\x59\xab\x59\x9e\x59\xa4\x59\xd2\x59\xb2\x59\xaf\x59\xd7\x59\xbe\x5a\x05\x5a\x06\x59\xdd\x5a\x08\x59\xe3\x59\xd8\x59\xf9\x5a\x0c\x5a\x09\x5a\x32\x5a\x34\x5a\x11\x5a\x23\x5a\x13\x5a\x40\x5a\x67\x5a\x4a\x5a\x55\x5a\x3c\x5a\x62\x5a\x75\x80\xec\x5a\xaa\x5a\x9b\x5a\x77\x5a\x7a\x5a\xbe\x5a\xeb\x5a\xb2\x5a\xd2\x5a\xd4\x5a\xb8\x5a\xe0\x5a\xe3\x5a\xf1\x5a\xd6\x5a\xe6\x5a\xd8\x5a\xdc\x5b\x09\x5b\x17\x5b\x16\x5b\x32\x5b\x37\x5b\x40\x5c\x15\x5c\x1c\x5b\x5a\x5b\x65\x5b\x73\x5b\x51\x5b\x53\x5b\x62\x9a\x75\x9a\x77\x9a\x78\x9a\x7a\x9a\x7f\x9a\x7d\x9a\x80\x9a\x81\x9a\x85\x9a\x88\x9a\x8a\x9a\x90\x9a\x92\x9a\x93\x9a\x96\x9a\x98\x9a\x9b\x9a\x9c\x9a\x9d\x9a\x9f\x9a\xa0\x9a\xa2\x9a\xa3\x9a\xa5\x9a\xa7\x7e\x9f\x7e\xa1\x7e\xa3\x7e\xa5\x7e\xa8\x7e\xa9\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xad\x7e\xb0\x7e\xbe\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc9\x7e\xcb\x7e\xcc\x7e\xd0\x7e\xd4\x7e\xd7\x7e\xdb\x7e\xe0\x7e\xe1\x7e\xe8\x7e\xeb\x7e\xee\x7e\xef\x7e\xf1\x7e\xf2\x7f\x0d\x7e\xf6\x7e\xfa\x7e\xfb\x7e\xfe\x7f\x01\x7f\x02\x7f\x03\x7f\x07\x7f\x08\x7f\x0b\x7f\x0c\x7f\x0f\x7f\x11\x7f\x12\x7f\x17\x7f\x19\x7f\x1c\x7f\x1b\x7f\x1f\x7f\x21\x7f\x22\x7f\x23\x7f\x24\x7f\x25\x7f\x26\x7f\x27\x7f\x2a\x7f\x2b\x7f\x2c\x7f\x2d\x7f\x2f\x7f\x30\x7f\x31\x7f\x32\x7f\x33\x7f\x35\x5e\x7a\x75\x7f\x5d\xdb\x75\x3e\x90\x95", /* 6480 */ "\x00\x00\x73\x8e\x73\x91\x73\xae\x73\xa2\x73\x9f\x73\xcf\x73\xc2\x73\xd1\x73\xb7\x73\xb3\x73\xc0\x73\xc9\x73\xc8\x73\xe5\x73\xd9\x98\x7c\x74\x0a\x73\xe9\x73\xe7\x73\xde\x73\xba\x73\xf2\x74\x0f\x74\x2a\x74\x5b\x74\x26\x74\x25\x74\x28\x74\x30\x74\x2e\x74\x2c\x74\x1b\x74\x1a\x74\x41\x74\x5c\x74\x57\x74\x55\x74\x59\x74\x77\x74\x6d\x74\x7e\x74\x9c\x74\x8e\x74\x80\x74\x81\x74\x87\x74\x8b\x74\x9e\x74\xa8\x74\xa9\x74\x90\x74\xa7\x74\xd2\x74\xba\x97\xea\x97\xeb\x97\xec\x67\x4c\x67\x53\x67\x5e\x67\x48\x67\x69\x67\xa5\x67\x87\x67\x6a\x67\x73\x67\x98\x67\xa7\x67\x75\x67\xa8\x67\x9e\x67\xad\x67\x8b\x67\x77\x67\x7c\x67\xf0\x68\x09\x67\xd8\x68\x0a\x67\xe9\x67\xb0\x68\x0c\x67\xd9\x67\xb5\x67\xda\x67\xb3\x67\xdd\x68\x00\x67\xc3\x67\xb8\x67\xe2\x68\x0e\x67\xc1\x67\xfd\x68\x32\x68\x33\x68\x60\x68\x61\x68\x4e\x68\x62\x68\x44\x68\x64\x68\x83\x68\x1d\x68\x55\x68\x66\x68\x41\x68\x67\x68\x40\x68\x3e\x68\x4a\x68\x49\x68\x29\x68\xb5\x68\x8f\x68\x74\x68\x77\x68\x93\x68\x6b\x68\xc2\x69\x6e\x68\xfc\x69\x1f\x69\x20\x68\xf9\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x24\x68\xf0\x69\x0b\x69\x01\x69\x57\x68\xe3\x69\x10\x69\x71\x69\x39\x69\x60\x69\x42\x69\x5d\x69\x84\x69\x6b\x69\x80\x69\x98\x69\x78\x69\x34\x69\xcc\x69\x87\x69\x88\x69\xce\x69\x89\x69\x66\x69\x63\x69\x79\x69\x9b\x69\xa7\x69\xbb\x69\xab\x69\xad\x69\xd4\x69\xb1\x69\xc1\x69\xca\x69\xdf\x69\x95\x69\xe0\x69\x8d\x69\xff\x6a\x2f\x69\xed\x6a\x17\x6a\x18\x6a\x65\x69\xf2\x6a\x44\x6a\x3e\x6a\xa0\x6a\x50\x6a\x5b\x6a\x35\x6a\x8e\x6a\x79\x6a\x3d\x6a\x28\x6a\x58\x6a\x7c\x6a\x91\x6a\x90\x6a\xa9\x6a\x97\x6a\xab", /* 6580 */ "\x00\x00\x73\x37\x73\x52\x6b\x81\x6b\x82\x6b\x87\x6b\x84\x6b\x92\x6b\x93\x6b\x8d\x6b\x9a\x6b\x9b\x6b\xa1\x6b\xaa\x8f\x6b\x8f\x6d\x8f\x71\x8f\x72\x8f\x73\x8f\x75\x8f\x76\x8f\x78\x8f\x77\x8f\x79\x8f\x7a\x8f\x7c\x8f\x7e\x8f\x81\x8f\x82\x8f\x84\x8f\x87\x8f\x8b\x8f\x8d\x8f\x8e\x8f\x8f\x8f\x98\x8f\x9a\x8e\xce\x62\x0b\x62\x17\x62\x1b\x62\x1f\x62\x22\x62\x21\x62\x25\x62\x24\x62\x2c\x81\xe7\x74\xef\x74\xf4\x74\xff\x75\x0f\x75\x11\x75\x13\x65\x34\x65\xee\x65\xef\x65\xf0\x66\x0a\x66\x19\x67\x72\x66\x03\x66\x15\x66\x00\x70\x85\x66\xf7\x66\x1d\x66\x34\x66\x31\x66\x36\x66\x35\x80\x06\x66\x5f\x66\x54\x66\x41\x66\x4f\x66\x56\x66\x61\x66\x57\x66\x77\x66\x84\x66\x8c\x66\xa7\x66\x9d\x66\xbe\x66\xdb\x66\xdc\x66\xe6\x66\xe9\x8d\x32\x8d\x33\x8d\x36\x8d\x3b\x8d\x3d\x8d\x40\x8d\x45\x8d\x46\x8d\x48\x8d\x49\x8d\x47\x8d\x4d\x8d\x55\x8d\x59\x89\xc7\x89\xca\x89\xcb\x89\xcc\x89\xce\x89\xcf\x89\xd0\x89\xd1\x72\x6e\x72\x9f\x72\x5d\x72\x66\x72\x6f\x72\x7e\x72\x7f\x72\x84\x72\x8b\x72\x8d\x72\x8f\x72\x92\x63\x08\x63\x32\x63\xb0\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x3f\x64\xd8\x80\x04\x6b\xea\x6b\xf3\x6b\xfd\x6b\xf5\x6b\xf9\x6c\x05\x6c\x07\x6c\x06\x6c\x0d\x6c\x15\x6c\x18\x6c\x19\x6c\x1a\x6c\x21\x6c\x29\x6c\x24\x6c\x2a\x6c\x32\x65\x35\x65\x55\x65\x6b\x72\x4d\x72\x52\x72\x56\x72\x30\x86\x62\x52\x16\x80\x9f\x80\x9c\x80\x93\x80\xbc\x67\x0a\x80\xbd\x80\xb1\x80\xab\x80\xad\x80\xb4\x80\xb7\x80\xe7\x80\xe8\x80\xe9\x80\xea\x80\xdb\x80\xc2\x80\xc4\x80\xd9\x80\xcd\x80\xd7\x67\x10\x80\xdd\x80\xeb\x80\xf1\x80\xf4\x80\xed\x81\x0d\x81\x0e\x80\xf2\x80\xfc\x67\x15\x81\x12", /* 6680 */ "\x00\x00\x8c\x5a\x81\x36\x81\x1e\x81\x2c\x81\x18\x81\x32\x81\x48\x81\x4c\x81\x53\x81\x74\x81\x59\x81\x5a\x81\x71\x81\x60\x81\x69\x81\x7c\x81\x7d\x81\x6d\x81\x67\x58\x4d\x5a\xb5\x81\x88\x81\x82\x81\x91\x6e\xd5\x81\xa3\x81\xaa\x81\xcc\x67\x26\x81\xca\x81\xbb\x81\xc1\x81\xa6\x6b\x24\x6b\x37\x6b\x39\x6b\x43\x6b\x46\x6b\x59\x98\xd1\x98\xd2\x98\xd3\x98\xd5\x98\xd9\x98\xda\x6b\xb3\x5f\x40\x6b\xc2\x89\xf3\x65\x90\x9f\x51\x65\x93\x65\xbc\x65\xc6\x65\xc4\x65\xc3\x65\xcc\x65\xce\x65\xd2\x65\xd6\x70\x80\x70\x9c\x70\x96\x70\x9d\x70\xbb\x70\xc0\x70\xb7\x70\xab\x70\xb1\x70\xe8\x70\xca\x71\x10\x71\x13\x71\x16\x71\x2f\x71\x31\x71\x73\x71\x5c\x71\x68\x71\x45\x71\x72\x71\x4a\x71\x78\x71\x7a\x71\x98\x71\xb3\x71\xb5\x71\xa8\x71\xa0\x71\xe0\x71\xd4\x71\xe7\x71\xf9\x72\x1d\x72\x28\x70\x6c\x71\x18\x71\x66\x71\xb9\x62\x3e\x62\x3d\x62\x43\x62\x48\x62\x49\x79\x3b\x79\x40\x79\x46\x79\x49\x79\x5b\x79\x5c\x79\x53\x79\x5a\x79\x62\x79\x57\x79\x60\x79\x6f\x79\x67\x79\x7a\x79\x85\x79\x8a\x79\x9a\x79\xa7\x79\xb3\x5f\xd1\x5f\xd0\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x3c\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\x59\x60\x63\x60\xab\x61\x06\x61\x0d\x61\x5d\x61\xa9\x61\x9d\x61\xcb\x61\xd1\x62\x06\x80\x80\x80\x7f\x6c\x93\x6c\xf6\x6d\xfc\x77\xf6\x77\xf8\x78\x00\x78\x09\x78\x17\x78\x18\x78\x11\x65\xab\x78\x2d\x78\x1c\x78\x1d\x78\x39\x78\x3a\x78\x3b\x78\x1f\x78\x3c\x78\x25\x78\x2c\x78\x23\x78\x29\x78\x4e\x78\x6d\x78\x56\x78\x57\x78\x26\x78\x50\x78\x47\x78\x4c\x78\x6a\x78\x9b\x78\x93\x78\x9a\x78\x87\x78\x9c\x78\xa1\x78\xa3\x78\xb2\x78\xb9\x78\xa5\x78\xd4\x78\xd9\x78\xc9", /* 6780 */ "\x00\x00\x78\xec\x78\xf2\x79\x05\x78\xf4\x79\x13\x79\x24\x79\x1e\x79\x34\x9f\x9b\x9e\xf9\x9e\xfb\x9e\xfc\x76\xf1\x77\x04\x77\x0d\x76\xf9\x77\x07\x77\x08\x77\x1a\x77\x22\x77\x19\x77\x2d\x77\x26\x77\x35\x77\x38\x77\x50\x77\x51\x77\x47\x77\x43\x77\x5a\x77\x68\x77\x62\x77\x65\x77\x7f\x77\x8d\x77\x7d\x77\x80\x77\x8c\x77\x91\x77\x9f\x77\xa0\x77\xb0\x77\xb5\x77\xbd\x75\x3a\x75\x40\x75\x4e\x75\x4b\x75\x48\x75\x5b\x75\x72\x75\x79\x75\x83\x7f\x58\x7f\x61\x7f\x5f\x8a\x48\x7f\x68\x7f\x74\x7f\x71\x7f\x79\x7f\x81\x7f\x7e\x76\xcd\x76\xe5\x88\x32\x94\x85\x94\x86\x94\x87\x94\x8b\x94\x8a\x94\x8c\x94\x8d\x94\x8f\x94\x90\x94\x94\x94\x97\x94\x95\x94\x9a\x94\x9b\x94\x9c\x94\xa3\x94\xa4\x94\xab\x94\xaa\x94\xad\x94\xac\x94\xaf\x94\xb0\x94\xb2\x94\xb4\x94\xb6\x94\xb7\x94\xb8\x94\xb9\x94\xba\x94\xbc\x94\xbd\x94\xbf\x94\xc4\x94\xc8\x94\xc9\x94\xca\x94\xcb\x94\xcc\x94\xcd\x94\xce\x94\xd0\x94\xd1\x94\xd2\x94\xd5\x94\xd6\x94\xd7\x94\xd9\x94\xd8\x94\xdb\x94\xde\x94\xdf\x94\xe0\x94\xe2\x94\xe4\x94\xe5\x94\xe7\x94\xe8\x94\xea\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe9\x94\xeb\x94\xee\x94\xef\x94\xf3\x94\xf4\x94\xf5\x94\xf7\x94\xf9\x94\xfc\x94\xfd\x94\xff\x95\x03\x95\x02\x95\x06\x95\x07\x95\x09\x95\x0a\x95\x0d\x95\x0e\x95\x0f\x95\x12\x95\x13\x95\x14\x95\x15\x95\x16\x95\x18\x95\x1b\x95\x1d\x95\x1e\x95\x1f\x95\x22\x95\x2a\x95\x2b\x95\x29\x95\x2c\x95\x31\x95\x32\x95\x34\x95\x36\x95\x37\x95\x38\x95\x3c\x95\x3e\x95\x3f\x95\x42\x95\x35\x95\x44\x95\x45\x95\x46\x95\x49\x95\x4c\x95\x4e\x95\x4f\x95\x52\x95\x53\x95\x54\x95\x56\x95\x57\x95\x58\x95\x59\x95\x5b\x95\x5e", /* 6880 */ "\x00\x00\x95\x5f\x95\x5d\x95\x61\x95\x62\x95\x64\x95\x65\x95\x66\x95\x67\x95\x68\x95\x69\x95\x6a\x95\x6b\x95\x6c\x95\x6f\x95\x71\x95\x72\x95\x73\x95\x3a\x77\xe7\x77\xec\x96\xc9\x79\xd5\x79\xed\x79\xe3\x79\xeb\x7a\x06\x5d\x47\x7a\x03\x7a\x02\x7a\x1e\x7a\x14\x7a\x39\x7a\x37\x7a\x51\x9e\xcf\x99\xa5\x7a\x70\x76\x88\x76\x8e\x76\x93\x76\x99\x76\xa4\x74\xde\x74\xe0\x75\x2c\x9e\x20\x9e\x22\x9e\x28\x9e\x29\x9e\x2a\x9e\x2b\x9e\x2c\x9e\x32\x9e\x31\x9e\x36\x9e\x38\x9e\x37\x9e\x39\x9e\x3a\x9e\x3e\x9e\x41\x9e\x42\x9e\x44\x9e\x46\x9e\x47\x9e\x48\x9e\x49\x9e\x4b\x9e\x4c\x9e\x4e\x9e\x51\x9e\x55\x9e\x57\x9e\x5a\x9e\x5b\x9e\x5c\x9e\x5e\x9e\x63\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x9e\x6b\x9e\x6c\x9e\x71\x9e\x6d\x9e\x73\x75\x92\x75\x94\x75\x96\x75\xa0\x75\x9d\x75\xac\x75\xa3\x75\xb3\x75\xb4\x75\xb8\x75\xc4\x75\xb1\x75\xb0\x75\xc3\x75\xc2\x75\xd6\x75\xcd\x75\xe3\x75\xe8\x75\xe6\x75\xe4\x75\xeb\x75\xe7\x76\x03\x75\xf1\x75\xfc\x75\xff\x76\x10\x76\x00\x76\x05\x76\x0c\x76\x17\x76\x0a\x76\x25\x76\x18\x76\x15\x76\x19\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x1b\x76\x3c\x76\x22\x76\x20\x76\x40\x76\x2d\x76\x30\x76\x3f\x76\x35\x76\x43\x76\x3e\x76\x33\x76\x4d\x76\x5e\x76\x54\x76\x5c\x76\x56\x76\x6b\x76\x6f\x7f\xca\x7a\xe6\x7a\x78\x7a\x79\x7a\x80\x7a\x86\x7a\x88\x7a\x95\x7a\xa6\x7a\xa0\x7a\xac\x7a\xa8\x7a\xad\x7a\xb3\x88\x64\x88\x69\x88\x72\x88\x7d\x88\x7f\x88\x82\x88\xa2\x88\xc6\x88\xb7\x88\xbc\x88\xc9\x88\xe2\x88\xce\x88\xe3\x88\xe5\x88\xf1\x89\x1a\x88\xfc\x88\xe8\x88\xfe\x88\xf0\x89\x21\x89\x19\x89\x13\x89\x1b\x89\x0a\x89\x34\x89\x2b\x89\x36\x89\x41", /* 6980 */ "\x00\x00\x89\x66\x89\x7b\x75\x8b\x80\xe5\x76\xb2\x76\xb4\x77\xdc\x80\x12\x80\x14\x80\x16\x80\x1c\x80\x20\x80\x22\x80\x25\x80\x26\x80\x27\x80\x29\x80\x28\x80\x31\x80\x0b\x80\x35\x80\x43\x80\x46\x80\x4d\x80\x52\x80\x69\x80\x71\x89\x83\x98\x78\x98\x80\x98\x83\x98\x89\x98\x8c\x98\x8d\x98\x8f\x98\x94\x98\x9a\x98\x9b\x98\x9e\x98\x9f\x98\xa1\x98\xa2\x98\xa5\x98\xa6\x86\x4d\x86\x54\x86\x6c\x86\x6e\x86\x7f\x86\x7a\x86\x7c\x86\x7b\x86\xa8\x86\x8d\x86\x8b\x86\xac\x86\x9d\x86\xa7\x86\xa3\x86\xaa\x86\x93\x86\xa9\x86\xb6\x86\xc4\x86\xb5\x86\xce\x86\xb0\x86\xba\x86\xb1\x86\xaf\x86\xc9\x86\xcf\x86\xb4\x86\xe9\x86\xf1\x86\xf2\x86\xed\x86\xf3\x86\xd0\x87\x13\x86\xde\x86\xf4\x86\xdf\x86\xd8\x86\xd1\x87\x03\x87\x07\x86\xf8\x87\x08\x87\x0a\x87\x0d\x87\x09\x87\x23\x87\x3b\x87\x1e\x87\x25\x87\x2e\x87\x1a\x87\x3e\x87\x48\x87\x34\x87\x31\x87\x29\x87\x37\x87\x3f\x87\x82\x87\x22\x87\x7d\x87\x7e\x87\x7b\x87\x60\x87\x70\x87\x4c\x87\x6e\x87\x8b\x87\x53\x87\x63\x87\x7c\x87\x64\x87\x59\x87\x65\x87\x93\x87\xaf\x87\xa8\x87\xd2\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xc6\x87\x88\x87\x85\x87\xad\x87\x97\x87\x83\x87\xab\x87\xe5\x87\xac\x87\xb5\x87\xb3\x87\xcb\x87\xd3\x87\xbd\x87\xd1\x87\xc0\x87\xca\x87\xdb\x87\xea\x87\xe0\x87\xee\x88\x16\x88\x13\x87\xfe\x88\x0a\x88\x1b\x88\x21\x88\x39\x88\x3c\x7f\x36\x7f\x42\x7f\x44\x7f\x45\x82\x10\x7a\xfa\x7a\xfd\x7b\x08\x7b\x03\x7b\x04\x7b\x15\x7b\x0a\x7b\x2b\x7b\x0f\x7b\x47\x7b\x38\x7b\x2a\x7b\x19\x7b\x2e\x7b\x31\x7b\x20\x7b\x25\x7b\x24\x7b\x33\x7b\x3e\x7b\x1e\x7b\x58\x7b\x5a\x7b\x45\x7b\x75\x7b\x4c\x7b\x5d\x7b\x60\x7b\x6e", /* 6a80 */ "\x00\x00\x7b\x7b\x7b\x62\x7b\x72\x7b\x71\x7b\x90\x7b\xa6\x7b\xa7\x7b\xb8\x7b\xac\x7b\x9d\x7b\xa8\x7b\x85\x7b\xaa\x7b\x9c\x7b\xa2\x7b\xab\x7b\xb4\x7b\xd1\x7b\xc1\x7b\xcc\x7b\xdd\x7b\xda\x7b\xe5\x7b\xe6\x7b\xea\x7c\x0c\x7b\xfe\x7b\xfc\x7c\x0f\x7c\x16\x7c\x0b\x7c\x1f\x7c\x2a\x7c\x26\x7c\x38\x7c\x41\x7c\x40\x81\xfe\x82\x01\x82\x02\x82\x04\x81\xec\x88\x44\x82\x21\x82\x22\x82\x23\x82\x2d\x82\x2f\x82\x28\x82\x2b\x82\x38\x82\x3b\x82\x33\x82\x34\x82\x3e\x82\x44\x82\x49\x82\x4b\x82\x4f\x82\x5a\x82\x5f\x82\x68\x88\x7e\x88\x85\x88\x88\x88\xd8\x88\xdf\x89\x5e\x7f\x9d\x7f\x9f\x7f\xa7\x7f\xaf\x7f\xb0\x7f\xb2\x7c\x7c\x65\x49\x7c\x91\x7c\x9d\x7c\x9c\x7c\x9e\x7c\xa2\x7c\xb2\x7c\xbc\x7c\xbd\x7c\xc1\x7c\xc7\x7c\xcc\x7c\xcd\x7c\xc8\x7c\xc5\x7c\xd7\x7c\xe8\x82\x6e\x66\xa8\x7f\xbf\x7f\xce\x7f\xd5\x7f\xe5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xee\x7f\xf3\x7c\xf8\x7d\x77\x7d\xa6\x7d\xae\x7e\x47\x7e\x9b\x9e\xb8\x9e\xb4\x8d\x73\x8d\x84\x8d\x94\x8d\x91\x8d\xb1\x8d\x67\x8d\x6d\x8c\x47\x8c\x49\x91\x4a\x91\x50\x91\x4e\x91\x4f\x91\x64\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x62\x91\x61\x91\x70\x91\x69\x91\x6f\x91\x7d\x91\x7e\x91\x72\x91\x74\x91\x79\x91\x8c\x91\x85\x91\x90\x91\x8d\x91\x91\x91\xa2\x91\xa3\x91\xaa\x91\xad\x91\xae\x91\xaf\x91\xb5\x91\xb4\x91\xba\x8c\x55\x9e\x7e\x8d\xb8\x8d\xeb\x8e\x05\x8e\x59\x8e\x69\x8d\xb5\x8d\xbf\x8d\xbc\x8d\xba\x8d\xc4\x8d\xd6\x8d\xd7\x8d\xda\x8d\xde\x8d\xce\x8d\xcf\x8d\xdb\x8d\xc6\x8d\xec\x8d\xf7\x8d\xf8\x8d\xe3\x8d\xf9\x8d\xfb\x8d\xe4\x8e\x09\x8d\xfd\x8e\x14\x8e\x1d\x8e\x1f\x8e\x2c\x8e\x2e\x8e\x23\x8e\x2f\x8e\x3a\x8e\x40\x8e\x39", /* 6b80 */ "\x00\x00\x8e\x35\x8e\x3d\x8e\x31\x8e\x49\x8e\x41\x8e\x42\x8e\x51\x8e\x52\x8e\x4a\x8e\x70\x8e\x76\x8e\x7c\x8e\x6f\x8e\x74\x8e\x85\x8e\x8f\x8e\x94\x8e\x90\x8e\x9c\x8e\x9e\x8c\x78\x8c\x82\x8c\x8a\x8c\x85\x8c\x98\x8c\x94\x65\x9b\x89\xd6\x89\xde\x89\xda\x89\xdc\x89\xe5\x89\xeb\x89\xef\x8a\x3e\x8b\x26\x97\x53\x96\xe9\x96\xf3\x96\xef\x97\x06\x97\x01\x97\x08\x97\x0f\x97\x0e\x97\x2a\x97\x2d\x97\x30\x97\x3e\x9f\x80\x9f\x83\x9f\x85\x9f\x86\x9f\x87\x9f\x88\x9f\x89\x9f\x8a\x9f\x8c\x9e\xfe\x9f\x0b\x9f\x0d\x96\xb9\x96\xbc\x96\xbd\x96\xce\x96\xd2\x77\xbf\x96\xe0\x92\x8e\x92\xae\x92\xc8\x93\x3e\x93\x6a\x93\xca\x93\x8f\x94\x3e\x94\x6b\x9c\x7f\x9c\x82\x9c\x85\x9c\x86\x9c\x87\x9c\x88\x7a\x23\x9c\x8b\x9c\x8e\x9c\x90\x9c\x91\x9c\x92\x9c\x94\x9c\x95\x9c\x9a\x9c\x9b\x9c\x9e\x9c\x9f\x9c\xa0\x9c\xa1\x9c\xa2\x9c\xa3\x9c\xa5\x9c\xa6\x9c\xa7\x9c\xa8\x9c\xa9\x9c\xab\x9c\xad\x9c\xae\x9c\xb0\x9c\xb1\x9c\xb2\x9c\xb3\x9c\xb4\x9c\xb5\x9c\xb6\x9c\xb7\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xca\x9c\xcb\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xcc\x9c\xcd\x9c\xce\x9c\xcf\x9c\xd0\x9c\xd3\x9c\xd4\x9c\xd5\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xdc\x9c\xdd\x9c\xdf\x9c\xe2\x97\x7c\x97\x85\x97\x91\x97\x92\x97\x94\x97\xaf\x97\xab\x97\xa3\x97\xb2\x97\xb4\x9a\xb1\x9a\xb0\x9a\xb7\x9e\x58\x9a\xb6\x9a\xba\x9a\xbc\x9a\xc1\x9a\xc0\x9a\xc5\x9a\xc2\x9a\xcb\x9a\xcc\x9a\xd1\x9b\x45\x9b\x43\x9b\x47\x9b\x49\x9b\x48\x9b\x4d\x9b\x51\x98\xe8\x99\x0d\x99\x2e\x99\x55\x99\x54\x9a\xdf\x9a\xe1\x9a\xe6\x9a\xef\x9a\xeb\x9a\xfb\x9a\xed\x9a\xf9\x9b\x08\x9b\x0f\x9b\x13\x9b\x1f", /* 6c80 */ "\x00\x00\x9b\x23\x9e\xbd\x9e\xbe\x7e\x3b\x9e\x82\x9e\x87\x9e\x88\x9e\x8b\x9e\x92\x93\xd6\x9e\x9d\x9e\x9f\x9e\xdb\x9e\xdc\x9e\xdd\x9e\xe0\x9e\xdf\x9e\xe2\x9e\xe9\x9e\xe7\x9e\xe5\x9e\xea\x9e\xef\x9f\x22\x9f\x2c\x9f\x2f\x9f\x39\x9f\x37\x9f\x3d\x9f\x3e\x9f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ NULL, /* 6d80 */ NULL, /* 6e00 */ NULL, /* 6e80 */ NULL, /* 6f00 */ NULL, /* 6f80 */ NULL, /* 7000 */ NULL, /* 7080 */ NULL, /* 7100 */ NULL, /* 7180 */ NULL, /* 7200 */ NULL, /* 7280 */ NULL, /* 7300 */ NULL, /* 7380 */ NULL, /* 7400 */ NULL, /* 7480 */ NULL, /* 7500 */ NULL, /* 7580 */ NULL, /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 7680 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* 7780 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* 7880 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* 7980 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* 7a80 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* 7b80 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* 7c80 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* 7d80 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* 7e80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* 7f80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* 8000 */ NULL, /* 8080 */ NULL, /* 8100 */ NULL, /* 8180 */ NULL, /* 8200 */ NULL, /* 8280 */ NULL, /* 8300 */ NULL, /* 8380 */ NULL, /* 8400 */ NULL, /* 8480 */ NULL, /* 8500 */ NULL, /* 8580 */ NULL, /* 8600 */ NULL, /* 8680 */ NULL, /* 8700 */ NULL, /* 8780 */ NULL, /* 8800 */ NULL, /* 8880 */ NULL, /* 8900 */ NULL, /* 8980 */ NULL, /* 8a00 */ NULL, /* 8a80 */ NULL, /* 8b00 */ NULL, /* 8b80 */ NULL, /* 8c00 */ NULL, /* 8c80 */ NULL, /* 8d00 */ NULL, /* 8d80 */ NULL, /* 8e00 */ NULL, /* 8e80 */ NULL, /* 8f00 */ NULL, /* 8f80 */ NULL, /* 9000 */ NULL, /* 9080 */ NULL, /* 9100 */ NULL, /* 9180 */ NULL, /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ NULL, /* e080 */ NULL, /* e100 */ NULL, /* e180 */ NULL, /* e200 */ NULL, /* e280 */ NULL, /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp937", "0x03a70343" /* 935, 835 */, "big5-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-937_P110-1999 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\xa1\x44\xed\x44\x4b\x00\x00\x00\x00\x44\xee\x00\x00\x43\x79\x46\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x53\x00\x00\x45\x51\x45\x52\x45\x54\x00\x00\x47\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x44\x4a\x44\x4a\x00\x00\x00\x00\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x43\x77\x43\x78\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x43\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x73\x00\x00\x44\x50\x44\xef\x00\x00\x42\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x42\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x46\xbb\x00\x00\x00\x00\x00\x00\x46\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x46\xd4\x46\xd5\x46\xd7\x46\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xef\x46\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6e\x00\x00\x43\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x43\x70\x00\x00\x43\x4e\x43\x71\x00\x00\x00\x00\x00\x00\x43\x4f\x43\x64\x00\x00\x00\x00\x43\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xda\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc5\x00\x00\x00\x00\x43\x61\x44\x4d\x46\xcc\x46\xcb\x00\x00\x00\x00\x42\x4f\x00\x00\x44\x7c\x00\x00\x43\x6c\x43\x6d\x46\xc8\x46\xc9\x46\xd0\x43\x63\x00\x00\x46\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa1\x43\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x46\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x43\x5d\x43\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x43\x68\x43\x69\x00\x00\x00\x00\x43\x66\x43\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xd2\x00\x00\x00\x00\x00\x00\x46\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8d\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x00\x00\x47\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x41\x46\x42\x46\x43\x46\x44\x46\x45\x46\x46\x46\x47\x46\x48\x46\x49\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x46\x52\x46\x53\x46\x54\x46\x55\x46\x56\x46\x57\x46\x58\x46\x59\x46\x5a\x00\x00\x00\x00", /* 2480 */ NULL, /* 2500 */ "\x46\x75\x43\xb7\x46\x76\x43\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x78\x00\x00\x00\x00\x43\xb9\x46\x79\x00\x00\x00\x00\x43\xe1\x46\x7a\x00\x00\x00\x00\x43\xe3\x46\x7b\x00\x00\x00\x00\x43\xe2\x46\x73\x43\xee\x00\x00\x00\x00\x43\xe9\x00\x00\x00\x00\x43\xe4\x46\x72\x43\xf0\x00\x00\x00\x00\x43\xeb\x00\x00\x00\x00\x43\xe6\x46\x71\x00\x00\x00\x00\x43\xea\x43\xef\x00\x00\x00\x00\x43\xe5\x46\x70\x00\x00\x00\x00\x43\xec\x43\xf1\x00\x00\x00\x00\x43\xe7\x46\x6f\x00\x00\x00\x00\x43\xed\x00\x00\x00\x00\x43\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x46\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x82\x00\x00\x00\x00\x46\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x83\x00\x00\x00\x00\x46\x7c\x46\x7d\x46\x7f\x46\x7e\x46\x89\x46\x8a\x46\x8b\x46\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x46\x60\x46\x61\x46\x62\x46\x63\x46\x64\x46\x65\x46\x66\x46\x67\x46\x6e\x46\x6d\x46\x6c\x46\x6b\x46\x6a\x46\x69\x46\x68\x00\x00\x00\x00\x00\x00\x00\x00\x46\x74\x46\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x85\x46\x86\x46\x88\x46\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x76\x00\x00\x00\x00\x43\x75\x00\x00\x43\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x46\xb9\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe9\x46\xea\x00\x00\x00\x00\x45\x41\x45\x42\x45\x43\x45\x44\x45\x45\x45\x46\x45\x47\x45\x48\x45\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x56\x45\x57\x45\x58\x45\x59\x45\x5a\x45\x5b\x45\x5c\x45\x5d\x45\x5e\x45\x5f\x45\x60\x45\x61\x45\x62\x45\x63\x45\x64\x45\x65\x45\x66\x45\x67\x45\x68\x45\x69\x45\x6a\x45\x6b\x45\x6c\x45\x6d\x45\x6e\x45\x6f\x45\x70\x45\x71\x45\x72\x45\x73\x45\x74\x45\x75\x45\x76\x45\x77\x45\x78\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3300 */ NULL, /* 3380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe2\x46\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xdd\x46\xde\x46\xdf\x00\x00\x00\x00\x46\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe0\x00\x00\x00\x00\x46\xcf\x46\xce\x00\x00\x00\x00\x46\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x4c\x41\x4c\x43\x00\x00\x4c\x44\x00\x00\x00\x00\x00\x00\x69\x46\x4c\x57\x4c\x55\x4c\x58\x4c\x56\x69\x47\x4c\x83\x69\x50\x69\x4e\x4c\x82\x4c\x81\x00\x00\x00\x00\x4c\xe1\x4c\xe0\x4c\xdf\x00\x00\x4c\xe2\x4c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa1\x4d\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xe3\x00\x00\x48\x42\x00\x00\x00\x00\x4c\x59\x00\x00\x4c\x84\x69\x51\x00\x00\x4c\x85\x69\x64\x4e\x8c\x6b\x52\x00\x00\x00\x00\x48\x43\x00\x00\x4c\x5a\x4c\x86\x00\x00\x4c\xe3\x69\x65\x00\x00\x00\x00\x48\x44\x00\x00\x00\x00\x69\x41\x4c\x45\x00\x00\x4c\x5c\x00\x00\x69\x48\x4c\x5d\x00\x00\x00\x00\x4c\x87\x00\x00\x4c\xe4\x4c\xe6\x4c\xe5\x00\x00\x00\x00\x4d\xa3\x4d\xa4\x00\x00\x00\x00\x4f\xe4\x00\x00\x53\xfd\x4c\x42\x00\x00\x00\x00\x69\x42\x4c\x46\x4c\x5f\x4c\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x92\x72\x6f", /* 4e80 */ "\x00\x00\x00\x00\x5b\xa9\x79\x77\x79\x78\x48\x46\x4c\x47\x00\x00\x4c\x89\x00\x00\x00\x00\x4f\xe6\x4c\x48\x69\x49\x4c\x60\x00\x00\x00\x00\x4c\x8a\x4c\x8c\x69\x52\x4c\x8d\x4c\x8b\x00\x00\x00\x00\x00\x00\x4d\xa6\x00\x00\x4f\xe7\x00\x00\x00\x00\x4f\xe8\x51\xe6\x48\x48\x4c\x61\x4c\x8e\x00\x00\x4d\xa7\x4d\xa9\x4d\xa8\x00\x00\x4e\x8d\x00\x00\x00\x00\x4f\xe9\x4f\xea\x51\xe7\x51\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x54\x41\x00\x00\x00\x00\x79\x79\x00\x00\x00\x00\x8f\x66\x4c\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x90\x4c\x8f\x69\x53\x4c\x91\x4c\x97\x00\x00\x4c\x92\x4c\x93\x69\x55\x69\x54\x4c\x95\x4c\x96\x00\x00\x4c\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe9\x4c\xea\x4c\xeb\x4c\xec\x4c\xe8\x4c\xef\x69\x6b\x00\x00\x69\x67\x69\x6a\x4c\xf0\x4d\x43\x00\x00\x69\x69\x00\x00\x4c\xed\x4c\xee\x4c\xe7\x00\x00\x00\x00\x69\x66\x69\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb6\x69\x90\x4d\xb3\x4d\xb7\x69\x9a\x69\x8e\x4d\xb4\x69\x92\x00\x00\x00\x00\x00\x00\x4d\xb5\x00\x00\x4d\xb8\x00\x00\x4d\xaa", /* 4f00 */ "\x69\x91\x4d\xb9\x69\x95\x00\x00\x69\x99\x69\x96\x00\x00\x00\x00\x69\x93\x4d\xab\x4d\xad\x4d\xba\x00\x00\x4d\xaf\x69\x8b\x4d\xb2\x4d\xb0\x4d\xb1\x69\x9b\x69\x98\x69\x8f\x4d\xae\x00\x00\x00\x00\x69\x8c\x4d\xac\x00\x00\x00\x00\x00\x00\x69\x94\x00\x00\x00\x00\x00\x00\x00\x00\x69\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x8d\x6a\x48\x00\x00\x4e\xa3\x4e\x96\x00\x00\x00\x00\x6a\x49\x4e\x93\x00\x00\x4e\xa5\x00\x00\x4e\x9b\x00\x00\x4e\x9a\x69\xfa\x4e\x9e\x4e\x99\x6a\x42\x6a\x4a\x00\x00\x6a\x46\x00\x00\x4e\x9c\x00\x00\x00\x00\x4e\x9f\x4e\x90\x4e\xa8\x69\xfc\x00\x00\x00\x00\x6b\x5e\x4e\x8e\x4e\xa4\x4e\x8f\x4e\x97\x4e\x98\x6a\x44\x69\xfd\x4e\x9d\x4e\x95\x69\xf9\x4e\x91\x6a\x47\x4e\xa6\x4e\xa9\x4e\x94\x4e\xa1\x4e\xa7\x4e\x92\x6a\x45\x4e\xa2\x6a\x4b\x69\xfb\x4e\xa0\x6a\x41\x00\x00\x00\x00\x6a\x43\x00\x00\x4f\xf8\x6b\x60\x6b\x6c\x4f\xf0\x00\x00\x6b\x6d\x4f\xeb\x4f\xf5\x00\x00\x00\x00\x4f\xee\x6b\x5a\x4f\xf6\x6b\x59\x6b\x5d\x6b\x64\x6b\x62\x50\x41\x4f\xf9\x6b\x54\x6b\x56\x4f\xfb\x4f\xef", /* 4f80 */ "\x6b\x57\x6b\x63\x6b\x6a\x4f\xf4\x6b\x5c\x6b\x55\x4f\xf3\x6b\x58\x4f\xf7\x6b\x5b\x00\x00\x4f\xf2\x00\x00\x4f\xed\x00\x00\x4f\xfc\x6b\x65\x4f\xfd\x6b\x69\x00\x00\x6b\x67\x6b\x6b\x4f\xfa\x6b\x5f\x6b\x53\x00\x00\x6b\x61\x4f\xf1\x6b\x66\x4f\xec\x6b\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf7\x51\xeb\x00\x00\x00\x00\x6d\x43\x6d\x4b\x00\x00\x51\xea\x51\xf2\x52\x41\x00\x00\x6d\x51\x6d\x4f\x6d\x4a\x00\x00\x00\x00\x00\x00\x51\xec\x6d\x50\x6d\x46\x51\xfa\x51\xf1\x51\xf9\x6d\x41\x00\x00\x6d\x4d\x00\x00\x6d\x44\x51\xf5\x6d\x45\x00\x00\x6c\xfd\x51\xfc\x51\xef\x51\xf8\x51\xee\x00\x00\x6d\x42\x6d\x47\x00\x00\x6d\x4e\x51\xf6\x51\xf3\x6d\x49\x51\xfb\x6d\x4c\x6d\x48\x51\xf0\x51\xfd\x51\xf4\x51\xed\x51\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x52\x00\x00\x54\x5b\x54\x45\x00\x00\x54\x55\x00\x00\x54\x5a\x6f\x93\x6f\x92\x6f\x97\x6f\x98\x54\x48\x00\x00\x54\x51\x00\x00\x00\x00\x00\x00\x54\x5e\x00\x00", /* 5000 */ "\x54\x52\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x8c\x54\x4b\x6f\x8d\x00\x00\x54\x60\x00\x00\x54\x57\x54\x42\x54\x43\x6f\xa0\x56\xa3\x00\x00\x54\x50\x54\x4f\x6f\x8e\x54\x53\x72\x7f\x54\x4a\x6f\x99\x54\x59\x54\x58\x54\x4e\x6f\x91\x6f\x9a\x00\x00\x6f\x8b\x54\x4d\x6f\x9b\x54\x56\x6f\x8f\x54\x44\x00\x00\x54\x47\x54\x46\x6f\x9c\x54\x54\x54\x49\x54\x5d\x54\x5f\x6f\x96\x54\x5c\x00\x00\x6f\x9e\x6f\x90\x6f\x9f\x00\x00\x6f\x94\x00\x00\x6f\x9d\x00\x00\x6f\x95\x00\x00\x00\x00\x00\x00\x00\x00\x54\x4c\x00\x00\x00\x00\x00\x00\x72\x88\x72\x7b\x00\x00\x56\x97\x00\x00\x72\x81\x72\x87\x56\x96\x72\x79\x56\x9a\x72\x7d\x72\x76\x56\x98\x72\x7a\x56\x9d\x56\xa2\x00\x00\x72\x8c\x00\x00\x72\x75\x00\x00\x56\x9e\x00\x00\x72\x8b\x00\x00\x00\x00\x56\x99\x72\x7c\x56\x95\x72\x77\x72\x73\x72\x82\x72\x74\x72\x72\x72\x7e\x72\x85\x72\x86\x56\x9b\x00\x00\x00\x00\x75\xc0\x72\x83\x72\x71\x72\x84\x00\x00\x56\xa5\x72\x89\x56\xa4\x72\x70\x00\x00\x72\x78\x72\x8a\x56\xa0\x56\x9f\x56\x9c\x56\xa1\x00\x00\x00\x00\x56\x93\x00\x00\x00\x00\x56\x94\x00\x00\x00\x00", /* 5080 */ "\x59\x4e\x00\x00\x75\xc3\x75\xbc\x00\x00\x59\x4b\x00\x00\x75\xc4\x00\x00\x00\x00\x00\x00\x75\xba\x75\xbd\x59\x4a\x75\xbe\x00\x00\x00\x00\x59\x4d\x75\xc2\x00\x00\x75\xb8\x75\xb7\x59\x4f\x00\x00\x59\x50\x59\x4c\x59\x51\x75\xb6\x75\xc1\x75\xbf\x75\xb9\x00\x00\x00\x00\x00\x00\x59\x49\x75\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb0\x5b\xaa\x79\x7d\x5b\xb3\x79\x84\x79\x87\x5b\xac\x5b\xad\x79\x81\x5b\xab\x79\x8a\x5b\xb1\x79\x8b\x00\x00\x79\x86\x5b\xb2\x00\x00\x79\x7a\x5b\xaf\x79\x7b\x00\x00\x79\x85\x79\x83\x00\x00\x79\x7e\x5b\xae\x79\x7c\x5b\xb4\x79\x82\x79\x89\x79\x7f\x79\x88\x00\x00\x00\x00\x5d\xfb\x5d\xf8\x00\x00\x5d\xf9\x00\x00\x7d\x43\x7c\xf8\x5d\xf7\x5d\xf4\x7c\xf9\x00\x00\x00\x00\x5d\xf6\x7c\xfc\x00\x00\x7d\x41\x00\x00\x00\x00\x7d\x48\x00\x00\x00\x00\x7d\x47\x7d\x42\x5d\xf3\x7c\xf7\x5d\xf1\x7c\xfa\x5d\xfc\x7c\xfd\x00\x00\x7d\x44\x5d\xf5\x5d\xf2\x7d\x46\x7d\x45\x5d\xfa\x00\x00\x7c\xfb\x00\x00\x60\x42\x80\x76\x00\x00\x80\x73\x60\x43\x00\x00\x60\x41\x00\x00\x80\x7a\x80\x77\x80\x70", /* 5100 */ "\x5f\xfd\x00\x00\x60\x44\x80\x71\x5f\xfc\x60\x47\x80\x74\x80\x75\x60\x45\x60\x46\x80\x7b\x80\x78\x80\x79\x00\x00\x00\x00\x00\x00\x62\x53\x83\xc3\x62\x50\x83\xc0\x62\x52\x62\x54\x00\x00\x83\xc1\x62\x51\x00\x00\x83\xc2\x00\x00\x83\xbf\x00\x00\x00\x00\x63\xc0\x86\xc8\x63\xc1\x86\xc6\x00\x00\x86\xc7\x86\xc5\x86\xc4\x00\x00\x00\x00\x86\xc9\x63\xbf\x00\x00\x00\x00\x89\x65\x89\x66\x00\x00\x80\x72\x89\x64\x63\xc2\x66\x4b\x8b\x5a\x8b\x5b\x00\x00\x67\x83\x67\x84\x8e\x70\x8e\x6f\x67\xd7\x67\xd6\x90\x41\x00\x00\x4c\x4a\x4c\x62\x4c\x99\x00\x00\x4c\x98\x4c\xf2\x4c\xf1\x4d\xbd\x4d\xbc\x4d\xbe\x4d\xbb\x00\x00\x4e\xab\x4e\xaa\x4e\xac\x00\x00\x00\x00\x00\x00\x00\x00\x50\x43\x00\x00\x50\x42\x50\x44\x00\x00\x52\x42\x00\x00\x46\xf1\x6f\xa1\x46\xf2\x56\xa6\x46\xf4\x46\xf3\x75\xc5\x00\x00\x46\xf5\x5d\xfd\x46\xf6\x00\x00\x4c\x4b\x00\x00\x4c\x9a\x4d\xbf\x50\x45\x00\x00\x4c\x4c\x4c\x9d\x4c\x9b\x4c\x9c\x00\x00\x00\x00\x4d\xc0\x00\x00\x00\x00\x00\x00\x4e\xad\x50\x47\x50\x46\x50\x48\x00\x00\x00\x00\x00\x00\x54\x61\x00\x00\x00\x00\x00\x00", /* 5180 */ "\x62\x55\x00\x00\x48\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4f\x00\x00\x4c\xf3\x4c\xf4\x00\x00\x00\x00\x4d\xc1\x00\x00\x6a\x4c\x00\x00\x52\x44\x52\x43\x6f\xa3\x6f\xa2\x56\xa7\x48\x4e\x4c\x9e\x69\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x6e\x00\x00\x52\x45\x00\x00\x54\x64\x00\x00\x54\x62\x54\x63\x00\x00\x00\x00\x00\x00\x00\x00\x62\x56\x48\x4f\x4c\xf5\x00\x00\x00\x00\x00\x00\x4d\xc2\x69\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xae\x4e\xaf\x00\x00\x6a\x4d\x00\x00\x00\x00\x6b\x6f\x50\x49\x6b\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xa5\x6f\xa6\x54\x67\x00\x00\x6f\xa7\x00\x00\x6f\xa4\x54\x68\x54\x66\x54\x65\x6f\xa8\x00\x00\x72\x8d\x00\x00\x00\x00\x00\x00\x75\xc6\x00\x00\x00\x00\x79\x8c\x7d\x49\x00\x00\x00\x00\x00\x00\x60\x48\x62\x57\x83\xc4\x00\x00\x4c\x4d\x4c\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xa8\x59\x53\x00\x00\x5e\x41\x00\x00\x69\x43\x4c\x9f\x00\x00\x4c\xf8\x4c\xf6\x4c\xf7\x00\x00\x00\x00\x50\x4a\x00\x00\x00\x00", /* 5200 */ "\x4c\x4e\x4c\x4f\x00\x00\x4c\x63\x00\x00\x00\x00\x4c\xa0\x4c\xa1\x4c\xa2\x69\x9e\x4c\xf9\x00\x00\x69\x6c\x00\x00\x4d\xc6\x00\x00\x69\x9f\x4d\xc4\x4d\xc5\x69\x9d\x00\x00\x00\x00\x4d\xc7\x4d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x4e\x51\xce\x6a\x4f\x00\x00\x00\x00\x6a\x50\x00\x00\x00\x00\x4e\xb1\x4e\xb0\x00\x00\x00\x00\x4e\xb4\x4e\xb2\x4e\xb3\x00\x00\x00\x00\x00\x00\x50\x50\x00\x00\x50\x4f\x6b\x75\x6b\x72\x6b\x73\x00\x00\x6b\x71\x50\x51\x50\x4d\x50\x4c\x00\x00\x50\x4e\x50\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x52\x00\x00\x52\x47\x6d\x53\x00\x00\x6b\x74\x52\x4c\x00\x00\x6d\x54\x52\x48\x52\x4b\x52\x4a\x52\x49\x52\x46\x00\x00\x00\x00\x00\x00\x6f\xab\x00\x00\x54\x6b\x6f\xae\x54\x69\x00\x00\x00\x00\x00\x00\x6f\xaa\x54\x6c\x54\x6a\x54\x6d\x6f\xac\x6f\xad\x00\x00\x6f\xa9\x6f\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x57\x56\xa9\x72\x8e\x72\x90\x72\x8f\x72\x91\x56\xaa\x00\x00\x00\x00\x59\x54\x00\x00\x59\x55\x59\x56\x00\x00\x5b\xb6\x79\x8e\x00\x00\x79\x8d\x79\x8f\x79\x90\x5b\xb7\x00\x00\x5b\xb5", /* 5280 */ "\x7d\x4a\x7d\x4b\x5e\x43\x5e\x42\x7e\xe2\x00\x00\x00\x00\x60\x49\x60\x4a\x60\x4b\x60\x4d\x80\x7c\x80\x7d\x60\x4c\x00\x00\x00\x00\x00\x00\x62\x58\x00\x00\x62\x59\x00\x00\x00\x00\x8b\x5c\x8e\x72\x8e\x71\x90\x42\x00\x00\x4c\x50\x00\x00\x00\x00\x00\x00\x4c\xfb\x4c\xfa\x00\x00\x00\x00\x4d\xc8\x00\x00\x00\x00\x69\xa0\x00\x00\x00\x00\x4e\xb6\x4e\xb7\x4e\xb5\x4e\xb8\x6a\x51\x6a\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x54\x6b\x76\x00\x00\x50\x53\x00\x00\x6d\x55\x52\x50\x6d\x56\x52\x4f\x00\x00\x00\x00\x00\x00\x52\x4d\x00\x00\x52\x4e\x00\x00\x00\x00\x00\x00\x6f\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x56\xab\x72\x93\x00\x00\x56\xae\x72\x92\x57\xaa\x56\xad\x56\xac\x00\x00\x59\x5a\x00\x00\x59\x59\x59\x58\x5b\xb8\x00\x00\x00\x00\x5b\xbb\x5b\xbc\x5b\xba\x00\x00\x5b\xb9\x00\x00\x00\x00\x7d\x4c\x00\x00\x7d\x4d\x00\x00\x00\x00\x00\x00\x80\x7f\x60\x4e\x80\x7e\x00\x00\x62\x5a\x86\xca\x63\xc3\x00\x00\x8b\x5d\x66\xdf\x48\x54\x4c\x64\x4c\xa3\x69\x57\x00\x00\x4c\xa4\x4c\xa5", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xfc\x4c\xfd\x00\x00\x4d\xc9\x6a\x53\x6b\x77\x6b\x78\x00\x00\x52\x51\x6f\xb1\x56\xb0\x56\xaf\x75\xc8\x75\xc7\x00\x00\x00\x00\x4c\x51\x4c\xa6\x4d\x41\x00\x00\x56\xb1\x69\x44\x00\x00\x69\x6d\x4d\x42\x00\x00\x69\xa2\x4d\xcb\x4d\xca\x69\xa1\x4e\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6e\x00\x00\x00\x00\x72\x94\x00\x00\x5b\xbd\x7d\x4e\x5e\x44\x00\x00\x00\x00\x83\xc5\x00\x00\x00\x00\x8c\xeb\x48\x57\x4c\xa7\x00\x00\x00\x00\x6b\x79\x6d\x57\x56\xb4\x56\xb2\x56\xb3\x4c\x52\x00\x00\x4c\x65\x45\x4b\x4c\xaa\x00\x00\x4c\xa9\x4c\xa8\x4d\x45\x4d\x44\x00\x00\x69\x6e\x69\xa3\x00\x00\x00\x00\x00\x00\x50\x58\x50\x55\x50\x57\x50\x56\x00\x00\x00\x00\x52\x52\x00\x00\x00\x00\x59\x5b\x00\x00\x4c\x53\x00\x00\x4c\xab\x00\x00\x4d\x47\x4d\x46\x00\x00\x6a\x54\x00\x00\x00\x00\x50\x59\x00\x00\x00\x00\x48\x5a\x00\x00\x00\x00\x69\x58\x00\x00\x4d\x49\x4d\x48\x4d\xcc\x4d\xcd\x6a\x55\x4e\xba\x00\x00\x4e\xbb\x00\x00\x50\x5a\x50\x5b\x50\x5c\x00\x00\x52\x53\x6d\x58\x00\x00\x00\x00\x54\x6f", /* 5380 */ "\x00\x00\x00\x00\x69\x45\x00\x00\x4c\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xa4\x00\x00\x00\x00\x00\x00\x6a\x56\x6a\x57\x00\x00\x00\x00\x6b\x7a\x00\x00\x6b\x7b\x00\x00\x6d\x5a\x6d\x59\x6d\x5c\x6d\x5b\x52\x54\x00\x00\x72\x95\x54\x71\x6f\xb2\x54\x70\x00\x00\x00\x00\x00\x00\x00\x00\x75\xc9\x59\x5c\x00\x00\x75\xca\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x4f\x5e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4f\x00\x00\x8b\x5e\x00\x00\x48\x5c\x00\x00\x00\x00\x69\x59\x00\x00\x4d\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x54\x4c\x66\x4c\xae\x4c\xad\x00\x00\x4c\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x50\x5d\x50\x5f\x00\x00\x00\x00\x00\x00\x52\x55\x00\x00\x00\x00\x00\x00\x54\x72\x00\x00\x83\xc6\x65\x5a\x4c\x67\x4d\x4c\x4d\x5b\x4d\x56\x00\x00\x4d\x51\x4d\x50\x4d\x57\x4d\x55\x4d\x4e\x4d\x5c\x4d\x4f\x4d\x4b\x4d\x5a\x4d\x59\x4d\x58\x4d\x4d\x00\x00\x4d\x54\x00\x00\x00\x00\x4d\x53\x00\x00\x00\x00\x4d\x5d\x4d\x52\x00\x00\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x4d\xd3\x00\x00\x4d\xd9\x4d\xd5\x00\x00\x4d\xdb\x69\xa5\x4d\xd8\x4d\xce\x4d\xd1\x4d\xd4\x4d\xd0\x4d\xd7\x4d\xda\x4d\xcf\x4d\xd2\x4d\xd6\x4d\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x60\x6a\x5d\x00\x00\x4e\xc8\x6a\x5e\x4e\xbc\x4e\xbe\x4e\xd6\x4e\xd1\x00\x00\x00\x00\x00\x00\x6a\x65\x6a\x5f\x4e\xc0\x4e\xc2\x6a\x64\x4e\xc9\x6a\x5a\x4e\xd5\x4e\xd7\x4e\xbd\x4e\xce\x00\x00\x6a\x58\x4e\xd4\x00\x00\x4e\xc5\x00\x00\x4e\xcf\x4e\xd0\x6a\x59\x4e\xcd\x4e\xcb\x00\x00\x4e\xcc\x4e\xd2\x6a\x61\x4e\xbf\x00\x00\x4e\xd3\x6a\x63\x4e\xc7\x4e\xc4\x00\x00\x6a\x5c\x4e\xc3\x6a\x66\x4e\xc6\x00\x00\x4e\xca\x00\x00\x00\x00\x00\x00\x4e\xc1\x6a\x62\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x8d\x6b\x8c\x50\x71\x6b\x8f\x6b\x91\x6b\x86\x6b\x89\x6b\x90\x50\x72\x00\x00\x00\x00\x6b\x83\x6b\x87\x00\x00\x00\x00\x6b\x8b\x6d\x6b\x50\x6d\x6d\x6f\x50\x60\x6b\x88\x50\x61\x50\x6e\x50\x67\x50\x63\x00\x00\x6b\x84\x50\x66\x50\x6b\x50\x74\x6b\x85\x6b\x7d", /* 5480 */ "\x50\x65\x6b\x7e\x6b\x81\x00\x00\x50\x68\x00\x00\x50\x6a\x6b\x7c\x6b\x82\x00\x00\x00\x00\x50\x73\x50\x6f\x6b\x8a\x50\x75\x00\x00\x50\x6c\x6b\x7f\x50\x69\x00\x00\x00\x00\x50\x64\x50\x62\x00\x00\x6b\x8e\x00\x00\x50\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x6a\x6d\x5e\x6d\x6d\x00\x00\x00\x00\x6d\x60\x52\x5c\x52\x6a\x52\x58\x52\x69\x52\x61\x52\x66\x52\x56\x6d\x5f\x6d\x65\x52\x65\x6d\x71\x52\x67\x00\x00\x52\x5d\x00\x00\x00\x00\x6d\x67\x6d\x64\x52\x5b\x00\x00\x6d\x5d\x52\x68\x6d\x6c\x52\x60\x6d\x6e\x52\x6b\x52\x57\x52\x62\x52\x5f\x6d\x62\x52\x63\x6d\x68\x6d\x69\x52\x5e\x52\x64\x52\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x52\x59\x6d\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x70\x00\x00\x6f\xc6\x54\x7f\x6f\xb4\x00\x00\x6f\xb9\x54\x78\x54\x84\x6f\xb7\x54\x73\x54\x7d\x54\x83\x6f\xbe\x00\x00\x54\x7e\x54\x82\x00\x00\x00\x00\x6f\xc1\x54\x79\x6f\xb8\x00\x00\x00\x00\x00\x00\x6f\xc4\x6f\xc5\x00\x00\x54\x7b\x6f\xc3\x54\x77\x54\x87\x00\x00\x6f\xbb", /* 5500 */ "\x00\x00\x54\x75\x00\x00\x6f\xc8\x6f\xbc\x6f\xc0\x54\x7a\x54\x86\x6f\xbd\x54\x81\x6f\xc2\x6f\xc9\x72\xa4\x00\x00\x6f\xc7\x54\x88\x54\x74\x6f\xbf\x6f\xb6\x00\x00\x54\x7c\x00\x00\x00\x00\x6f\xb5\x00\x00\x00\x00\x6f\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xb3\x54\x85\x00\x00\x00\x00\x72\x9c\x00\x00\x56\xc8\x72\xaa\x56\xc6\x56\xc3\x72\xa1\x56\xbf\x72\xa5\x56\xca\x72\x9b\x72\xa0\x72\x9f\x54\x76\x56\xc5\x72\xa8\x00\x00\x72\xab\x72\x98\x00\x00\x59\x6e\x00\x00\x72\xac\x56\xcb\x00\x00\x56\xbd\x56\xba\x72\xa3\x56\xb7\x00\x00\x72\xa9\x00\x00\x56\xbe\x72\xad\x00\x00\x72\x99\x72\xa7\x56\xc1\x72\x9a\x72\x9d\x72\xa2\x00\x00\x00\x00\x56\xc2\x56\xc0\x56\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc7\x00\x00\x56\xbb\x57\x97\x00\x00\x56\xbc\x72\x9e\x56\xc9\x56\xc4\x72\xa6\x56\xb9\x00\x00\x00\x00\x00\x00\x56\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x96\x72\x97\x75\xcf\x00\x00\x00\x00\x00\x00\x59\x5d\x59\x60\x75\xda\x59\x74\x75\xdd", /* 5580 */ "\x59\x5e\x75\xd6\x59\x64\x59\x6a\x5a\xc2\x00\x00\x00\x00\x59\x68\x75\xd3\x59\x75\x59\x61\x59\x69\x75\xdb\x79\x9e\x75\xe0\x75\xd4\x00\x00\x75\xcb\x75\xd8\x75\xd2\x59\x67\x75\xde\x00\x00\x00\x00\x59\x63\x59\x77\x59\x70\x00\x00\x59\x65\x59\x62\x00\x00\x59\x6d\x00\x00\x75\xdf\x75\xd1\x75\xd7\x75\xd9\x75\xcd\x75\xdc\x59\x5f\x75\xcc\x00\x00\x59\x66\x59\x76\x59\x72\x75\xce\x59\x6c\x00\x00\x00\x00\x59\x73\x59\x6f\x59\x6b\x00\x00\x75\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x71\x00\x00\x00\x00\x00\x00\x79\x9c\x79\x98\x00\x00\x79\xa7\x79\x91\x79\x9a\x5b\xcb\x5b\xcc\x5b\xc4\x79\xa3\x5b\xce\x79\x96\x79\x95\x79\x93\x79\xa5\x5b\xc2\x79\x9f\x79\x94\x5b\xc5\x79\x9d\x5b\xc0\x79\x99\x79\xa0\x79\xa2\x00\x00\x00\x00\x79\xa6\x5b\xc9\x79\x92\x5b\xc3\x79\x97\x00\x00\x5b\xbe\x00\x00\x5b\xca\x79\xa1\x5b\xc6\x5b\xc7\x5b\xcd\x5b\xc1\x46\xf7\x5b\xbf\x79\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc8\x00\x00\x00\x00\x79\xa4\x00\x00\x00\x00\x00\x00\x5e\x55\x5e\x50\x00\x00\x7d\x5e\x7d\x5a\x00\x00\x7d\x54\x5e\x4a\x5e\x46\x7d\x5d", /* 5600 */ "\x5e\x47\x7d\x57\x7d\x59\x00\x00\x7d\x5c\x00\x00\x5e\x4c\x00\x00\x5e\x53\x5e\x4d\x00\x00\x00\x00\x7d\x52\x5e\x4e\x5e\x4f\x7d\x55\x5e\x54\x00\x00\x7d\x53\x7d\x58\x5e\x4b\x7d\x51\x5e\x51\x5e\x49\x00\x00\x00\x00\x00\x00\x5e\x48\x7d\x56\x7d\x5b\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x50\x00\x00\x60\x56\x80\x91\x00\x00\x80\x8e\x00\x00\x60\x50\x60\x5c\x60\x5d\x00\x00\x60\x53\x80\x8c\x60\x55\x80\x84\x60\x5b\x00\x00\x80\x90\x60\x52\x80\x92\x60\x51\x00\x00\x80\x8d\x80\x8f\x60\x54\x80\x8b\x80\x85\x80\x82\x00\x00\x00\x00\x75\xd0\x80\x88\x00\x00\x80\x81\x80\x87\x80\x86\x00\x00\x80\x83\x00\x00\x60\x58\x00\x00\x00\x00\x00\x00\x00\x00\x60\x57\x00\x00\x00\x00\x00\x00\x60\x59\x80\x89\x62\x5b\x80\x8a\x00\x00\x00\x00\x00\x00\x83\xcf\x00\x00\x83\xc8\x00\x00\x62\x67\x83\xcc\x62\x5f\x62\x63\x83\xcb\x00\x00\x62\x62\x62\x5e\x62\x61\x62\x5c\x62\x66\x83\xcd\x83\xc9\x62\x65\x83\xc7\x62\x64\x83\xce\x83\xca\x60\x5a\x00\x00\x62\x68\x83\xd0\x62\x60\x62\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x86\xd1\x86\xd3", /* 5680 */ "\x63\xc5\x86\xd4\x86\xd2\x86\xd0\x86\xcf\x63\xc7\x86\xce\x63\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x86\xcc\x86\xcd\x63\xc4\x63\xc9\x63\xc6\x00\x00\x00\x00\x86\xcb\x00\x00\x65\x5b\x00\x00\x89\x69\x89\x67\x89\x6c\x89\x6a\x00\x00\x89\x68\x89\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4c\x8b\x61\x8b\x62\x66\xe0\x00\x00\x8b\x63\x8b\x5f\x8b\x64\x8b\x60\x65\x5c\x00\x00\x00\x00\x00\x00\x8c\xec\x8c\xee\x66\xe3\x8c\xed\x66\xe2\x66\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe4\x8e\x74\x8e\x75\x00\x00\x67\x86\x67\x85\x67\x87\x8e\x73\x00\x00\x8f\x68\x8f\x67\x00\x00\x67\xd8\x67\xda\x67\xd9\x8f\x69\x68\x54\x90\xb5\x00\x00\x00\x00\x00\x00\x68\x7d\x00\x00\x90\xb4\x90\xfd\x00\x00\x00\x00\x69\x4a\x00\x00\x00\x00\x4d\x5f\x4d\x5e\x00\x00\x4d\xdf\x4d\xde\x69\xa7\x4d\xdd\x69\xa6\x00\x00\x00\x00\x4e\xda\x6a\x69\x00\x00\x6a\x68\x00\x00\x00\x00\x4e\xd8\x4e\xdb\x00\x00\x00\x00\x6a\x67\x00\x00\x4e\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x92\x00\x00\x6b\x93\x50\x76\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6c", /* 5700 */ "\x00\x00\x6f\xca\x6f\xcb\x54\x89\x54\x8a\x00\x00\x00\x00\x72\xaf\x56\xcd\x56\xcf\x72\xae\x56\xce\x75\xe1\x59\x78\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcf\x5b\xd0\x79\xa8\x00\x00\x5e\x57\x00\x00\x5e\x56\x00\x00\x80\x93\x83\xd2\x83\xd1\x00\x00\x91\x7c\x4c\x68\x69\x5a\x00\x00\x69\x6f\x69\x70\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe2\x4d\xe6\x69\xa9\x00\x00\x4d\xe4\x4d\xe3\x69\xa8\x4d\xe5\x4d\xe1\x00\x00\x00\x00\x4d\xe0\x69\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xe5\x00\x00\x00\x00\x4e\xe2\x00\x00\x4e\xde\x6a\x6a\x00\x00\x00\x00\x00\x00\x6a\x6b\x00\x00\x4e\xe0\x00\x00\x6a\x6d\x4e\xdc\x6a\x6e\x6a\x6c\x4e\xdf\x4e\xe1\x4e\xe4\x4e\xe3\x4e\xdd\x6a\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x7b\x6b\xa0\x00\x00\x50\x7d\x00\x00\x50\x7c\x00\x00\x6b\xa1\x50\x7a\x50\x79\x6b\x97\x00\x00\x6b\x96\x00\x00\x6b\x94\x6b\x99\x6b\x98\x6b\x95\x6b\x9e\x6b\x9f\x6b\x9c\x6b\x9a\x50\x78\x00\x00\x00\x00\x00\x00\x6b\x9d\x50\x7e\x6b\xa2\x00\x00\x00\x00", /* 5780 */ "\x6b\x9b\x00\x00\x52\x6d\x50\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6e\x6d\x76\x00\x00\x00\x00\x6d\x7c\x00\x00\x00\x00\x00\x00\x52\x74\x6d\x7a\x6d\x81\x00\x00\x6d\x77\x6d\x7b\x6d\x7d\x6d\x7f\x6d\x79\x00\x00\x6d\x78\x6d\x73\x6d\x74\x52\x6f\x00\x00\x52\x71\x52\x70\x6d\x75\x6d\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x72\x6f\xd5\x00\x00\x6f\xd4\x6f\xd9\x6f\xd0\x00\x00\x6f\xd3\x6f\xd2\x00\x00\x6f\xd6\x00\x00\x6f\xda\x54\x8b\x54\x8e\x00\x00\x00\x00\x6f\xd1\x6f\xd7\x00\x00\x00\x00\x00\x00\x54\x8d\x6f\xcc\x00\x00\x52\x72\x72\xbd\x6f\xd8\x00\x00\x6f\xcf\x00\x00\x54\x8c\x6f\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\xb4\x00\x00\x00\x00\x56\xd0\x56\xd4\x72\xc4\x72\xb2\x72\xc0\x56\xd5\x72\xc2\x00\x00\x72\xc8\x00\x00\x72\xcc\x00\x00\x00\x00\x72\xc3\x72\xb7\x72\xbf\x00\x00\x72\xcd\x72\xcb\x72\xc1\x72\xbc\x72\xb5\x75\xe9\x72\xb3\x56\xd9\x72\xba\x56\xda\x56\xd6\x72\xb0\x72\xc6\x72\xb8\x00\x00\x00\x00", /* 5800 */ "\x72\xb6\x72\xc9\x56\xd7\x00\x00\x72\xcf\x56\xd1\x56\xd3\x72\xbe\x72\xb9\x54\x8f\x56\xd2\x72\xbb\x72\xca\x72\xce\x72\xc5\x00\x00\x72\xc7\x00\x00\x00\x00\x00\x00\x72\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe4\x00\x00\x75\xed\x75\xec\x59\x81\x75\xe5\x00\x00\x59\x82\x59\x7f\x00\x00\x75\xe7\x59\x7c\x75\xeb\x00\x00\x75\xe6\x75\xe8\x75\xe2\x59\x7a\x00\x00\x75\xf5\x75\xf4\x75\xf1\x59\x79\x59\x7d\x59\x7e\x6f\xcd\x75\xee\x59\x7b\x56\xd8\x75\xf0\x75\xe3\x75\xf3\x75\xf2\x00\x00\x75\xf6\x00\x00\x79\xb6\x00\x00\x75\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xea\x79\xae\x5b\xda\x5b\xdd\x5b\xd8\x79\xad\x79\xb1\x79\xac\x00\x00\x5b\xd2\x5b\xdc\x79\xa9\x5b\xd6\x79\xb0\x00\x00\x5b\xd4\x5b\xd3\x79\xb3\x5b\xd5\x79\xb5\x00\x00\x79\xb2\x5b\xd1\x00\x00\x00\x00\x00\x00\x5b\xdb\x79\xb7\x79\xab\x79\xb4\x00\x00\x00\x00\x79\xaa\x00\x00\x00\x00\x5b\xd7\x00\x00\x5b\xd9\x00\x00\x79\xaf\x00\x00\x79\xb8\x00\x00\x00\x00\x7d\x66\x5e\x58\x7d\x6c\x00\x00\x00\x00\x5e\x5d\x7d\x68\x7d\x6f\x7d\x60\x5e\x5f\x5e\x59\x7d\x65", /* 5880 */ "\x60\x5e\x7d\x64\x7d\x6d\x5e\x5a\x00\x00\x5e\x5e\x7d\x63\x7d\x69\x7d\x6e\x7d\x5f\x5e\x5c\x7d\x67\x00\x00\x00\x00\x7d\x6b\x7d\x71\x7d\x61\x7d\x6a\x00\x00\x5e\x5b\x7d\x70\x00\x00\x00\x00\x00\x00\x7d\x62\x00\x00\x00\x00\x00\x00\x60\x62\x80\x95\x60\x60\x60\x5f\x80\x97\x80\x9c\x00\x00\x80\x98\x00\x00\x80\x9b\x60\x65\x00\x00\x62\x4e\x60\x64\x00\x00\x80\x94\x80\x9a\x00\x00\x60\x63\x80\x99\x00\x00\x80\x96\x00\x00\x60\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\xd7\x00\x00\x83\xd9\x83\xd4\x62\x6a\x83\xd6\x00\x00\x62\x69\x83\xd8\x00\x00\x00\x00\x62\x6c\x83\xda\x62\x6b\x83\xd3\x83\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcd\x86\xd7\x00\x00\x63\xcc\x86\xd8\x63\xcb\x86\xd6\x63\xca\x86\xd5\x00\x00\x65\x5e\x65\x5d\x8b\x65\x8b\x67\x00\x00\x8b\x66\x66\x4d\x66\x4e\x00\x00\x00\x00\x66\x4f\x8c\xef\x66\xe5\x00\x00\x00\x00\x90\x44\x90\x43\x68\x7e\x00\x00\x4c\x69\x4c\xb0\x00\x00\x00\x00\x4e\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x82\x00\x00\x00\x00\x00\x00\x00\x00\x59\x83\x59\x84\x00\x00\x79\xb9\x5e\x60\x7d\x72\x80\x9d", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x69\x5b\x00\x00\x00\x00\x6a\x70\x00\x00\x00\x00\x00\x00\x48\x62\x00\x00\x6b\xa3\x6d\x83\x6f\xdb\x54\x90\x00\x00\x00\x00\x8b\x68\x00\x00\x67\x88\x4c\x6a\x4d\x60\x69\x71\x00\x00\x4d\xe7\x4d\xe8\x00\x00\x50\x7f\x00\x00\x00\x00\x00\x00\x56\xdb\x00\x00\x5e\x62\x00\x00\x5e\x63\x5e\x61\x00\x00\x4c\x6b\x00\x00\x4c\xb1\x4c\xb3\x4c\xb2\x69\x5c\x4c\xb4\x4d\x61\x69\x72\x00\x00\x4d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe9\x4d\xea\x00\x00\x00\x00\x00\x00\x69\xab\x00\x00\x4e\xe7\x00\x00\x6a\x71\x00\x00\x00\x00\x00\x00\x50\x84\x6b\xa4\x00\x00\x50\x82\x50\x83\x50\x81\x6f\xdc\x00\x00\x00\x00\x00\x00\x52\x78\x52\x77\x52\x79\x52\x76\x00\x00\x6d\x84\x50\x85\x52\x75\x00\x00\x54\x91\x54\x92\x00\x00\x54\x93\x00\x00\x72\xd0\x00\x00\x00\x00\x00\x00\x59\x85\x75\xf7\x56\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xde\x00\x00\x5e\x65\x5e\x64\x7d\x73\x00\x00\x60\x66\x62\x6d\x00\x00\x89\x6d\x8f\x6a\x90\x45\x4c\x6c\x4d\x63\x00\x00\x4d\x64\x69\xb1\x4d\xec\x4d\xef\x00\x00\x69\xaf\x69\xad\x4d\xee\x69\xb0\x69\xb2", /* 5980 */ "\x69\xac\x4d\xf1\x4d\xf0\x4d\xed\x4d\xeb\x69\xae\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf2\x00\x00\x00\x00\x4e\xef\x6a\x76\x6a\x79\x6a\x78\x00\x00\x4e\xe9\x4e\xf1\x00\x00\x00\x00\x4e\xee\x6a\x75\x6a\x73\x4e\xed\x00\x00\x00\x00\x00\x00\x4e\xe8\x4e\xeb\x00\x00\x6a\x74\x6a\x7b\x6a\x77\x4e\xec\x4e\xf0\x4e\xf3\x6a\x72\x6a\x7a\x4e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8a\x50\x92\x00\x00\x6b\xb0\x6b\xa9\x50\x93\x6b\xb4\x6b\xa5\x6b\xac\x00\x00\x00\x00\x50\x89\x6b\xa6\x50\x87\x6b\xad\x6b\xb1\x50\x86\x00\x00\x6b\xb2\x6b\xab\x00\x00\x6b\xae\x00\x00\x50\x95\x50\x8c\x6b\xb5\x6b\xb3\x00\x00\x50\x91\x50\x8f\x6b\xaa\x50\x8e\x6b\xa8\x6b\xa7\x50\x8d\x50\x8b\x50\x94\x50\x90\x50\x88\x00\x00\x6b\xaf\x00\x00\x52\x7b\x00\x00\x52\x83\x6d\x92\x52\x7a\x6d\x8a\x6d\x86\x00\x00\x6d\x96\x6d\x85\x00\x00\x52\x7d\x6d\x8f\x52\x81\x52\x84\x00\x00\x52\x7e\x6d\x93\x52\x82\x00\x00\x54\x9a\x6d\x99\x6d\x87\x00\x00\x00\x00\x6d\x89\x6d\x90\x6d\x94\x6d\x98\x6d\x95\x6d\x8e\x6d\x91\x00\x00\x00\x00\x6d\x8b\x52\x86\x6d\x8d\x6d\x8c\x6d\x97\x52\x7c", /* 5a00 */ "\x6d\x88\x52\x85\x00\x00\x52\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa0\x6f\xe4\x00\x00\x54\x9f\x00\x00\x00\x00\x6f\xe2\x00\x00\x54\x94\x00\x00\x54\x99\x00\x00\x6f\xe1\x6f\xde\x6f\xe3\x54\x95\x6f\xdd\x00\x00\x54\x98\x54\x96\x00\x00\x6f\xe5\x54\x97\x54\x9b\x00\x00\x00\x00\x54\x9c\x00\x00\x54\x9e\x00\x00\x00\x00\x00\x00\x54\x9d\x00\x00\x00\x00\x00\x00\x6f\xdf\x6f\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xe6\x00\x00\x72\xd7\x56\xdd\x76\x48\x72\xd6\x72\xe9\x00\x00\x00\x00\x56\xe3\x00\x00\x72\xe7\x00\x00\x56\xe2\x56\xde\x72\xf0\x72\xe0\x72\xe3\x00\x00\x56\xe6\x72\xed\x72\xe5\x56\xdf\x56\xe7\x00\x00\x72\xea\x72\xe8\x00\x00\x00\x00\x72\xd9\x72\xee\x72\xe2\x72\xdd\x00\x00\x72\xd3\x72\xef\x72\xdf\x72\xd2\x00\x00\x56\xe5\x72\xe4\x72\xf1\x72\xe1\x72\xd5\x72\xda\x72\xd1\x00\x00\x56\xe4\x00\x00\x72\xde\x72\xdb\x56\xe0\x72\xd4\x00\x00\x72\xec\x56\xe1\x00\x00\x72\xdc\x72\xd8\x00\x00\x00\x00\x72\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x86\x76\x41\x00\x00\x75\xfb\x76\x4f\x76\x43\x76\x50\x00\x00\x59\x88", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x76\x4c\x76\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x4a\x76\x4d\x76\x51\x00\x00\x72\xe6\x76\x53\x79\xcd\x00\x00\x59\x89\x76\x54\x75\xf9\x76\x46\x00\x00\x76\x4b\x00\x00\x00\x00\x59\x87\x59\x8a\x76\x52\x76\x55\x75\xfd\x75\xfa\x00\x00\x00\x00\x75\xfc\x00\x00\x00\x00\x76\x44\x76\x42\x59\x8b\x00\x00\x76\x4e\x00\x00\x00\x00\x76\x45\x00\x00\x76\x47\x75\xf8\x79\xc1\x79\xbf\x5b\xe7\x5b\xe5\x79\xc9\x79\xc0\x79\xca\x79\xc6\x79\xbe\x79\xcc\x79\xbd\x79\xc4\x5b\xe4\x5b\xe3\x5b\xe2\x79\xc2\x79\xc7\x5b\xdf\x5b\xe6\x00\x00\x79\xbb\x00\x00\x79\xc5\x79\xba\x79\xc3\x5b\xe0\x79\xc8\x79\xbc\x5b\xe1\x79\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x77\x5e\x6a\x5e\x69\x5e\x6b\x7d\x84\x7d\x79\x7d\x7f\x7d\x74\x7d\x83\x7d\x82\x7d\x86\x7d\x7e\x5e\x66\x7d\x7d\x5e\x6c\x00\x00\x7d\x76\x5e\x67\x00\x00\x7d\x85\x5e\x68\x7d\x78\x7d\x7b\x7d\x81\x7d\x7a\x7d\x75\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x7c\x80\x9f\x60\x6a\x80\xa2\x80\xa1\x80\xa4\x80\xa6\x00\x00\x60\x68\x00\x00\x80\xa0\x00\x00\x80\x9e", /* 5b00 */ "\x00\x00\x80\xa7\x80\xa5\x80\xa3\x00\x00\x80\xa9\x00\x00\x80\xa8\x60\x6c\x60\x67\x00\x00\x60\x69\x60\x6b\x00\x00\x00\x00\x80\xaa\x83\xe1\x00\x00\x00\x00\x83\xe0\x83\xdf\x00\x00\x83\xe2\x83\xdb\x00\x00\x83\xdc\x83\xe4\x83\xdd\x00\x00\x62\x6e\x83\xe6\x00\x00\x83\xe5\x83\xde\x00\x00\x86\xdc\x63\xd0\x86\xda\x86\xdf\x86\xde\x83\xe3\x00\x00\x63\xcf\x00\x00\x86\xdd\x86\xd9\x86\xe1\x86\xe0\x63\xce\x00\x00\x86\xdb\x00\x00\x62\x6f\x00\x00\x00\x00\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x89\x6e\x8b\x69\x8b\x6a\x8b\x6b\x66\xe6\x00\x00\x00\x00\x66\xe7\x00\x00\x8c\xf0\x00\x00\x8e\x77\x8e\x76\x00\x00\x00\x00\x8f\x6b\x8f\x6c\x90\x46\x90\xb6\x00\x00\x4c\x6d\x4c\x6e\x00\x00\x4c\x6f\x4c\xb5\x4d\x65\x69\xb3\x4d\xf2\x4d\xf3\x00\x00\x4e\xf6\x4e\xf7\x4e\xf5\x4e\xf4\x00\x00\x50\x96\x00\x00\x00\x00\x6b\xb6\x50\x98\x50\x97\x6b\xb7\x00\x00\x00\x00\x00\x00\x52\x87\x00\x00\x54\xa1\x6f\xe7\x00\x00\x72\xf3\x00\x00\x56\xe8\x59\x8d\x72\xf2\x59\x8c\x00\x00\x5e\x6d\x00\x00\x7d\x87\x62\x70\x00\x00\x63\xd1\x86\xe2\x00\x00\x66\xe8\x00\x00\x67\xdb", /* 5b80 */ "\x48\x67\x69\x73\x00\x00\x4d\x66\x69\x74\x4d\xf6\x00\x00\x4d\xf4\x4d\xf5\x4d\xf7\x00\x00\x4e\xf9\x4e\xf8\x00\x00\x6a\x7c\x4e\xfa\x00\x00\x00\x00\x6a\x7d\x6b\xb8\x00\x00\x6b\xb9\x00\x00\x50\x99\x50\x9b\x50\x9d\x50\x9a\x50\x9e\x50\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x8b\x52\x88\x52\x8a\x52\x8c\x52\x89\x6f\xe8\x6d\x9a\x00\x00\x00\x00\x00\x00\x6f\xea\x6f\xe9\x54\xa7\x00\x00\x54\xa3\x00\x00\x00\x00\x54\xa4\x54\xa6\x54\xa8\x54\xa5\x00\x00\x54\xaa\x54\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xed\x72\xf5\x72\xf4\x56\xec\x00\x00\x56\xeb\x56\xea\x56\xee\x56\xe9\x00\x00\x00\x00\x76\x5b\x76\x58\x59\x8f\x76\x57\x76\x5c\x00\x00\x59\x91\x76\x5a\x59\x8e\x59\x90\x76\x59\x00\x00\x79\xce\x00\x00\x79\xcf\x79\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6e\x5e\x76\x7d\x88\x5e\x70\x5e\x74\x7d\x89\x5e\x75\x5e\x71\x5e\x72\x5e\x6f\x5e\x73\x60\x6f\x76\x56\x60\x70\x60\x6e\x00\x00\x60\x6d\x83\xe7\x62\x71\x86\xe3\x86\xe4\x00\x00\x00\x00\x66\x50\x66\xe9\x00\x00\x4c\x70\x00\x00\x4d\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x52\x8d\x00\x00\x6f\xeb\x54\xab\x00\x00\x00\x00\x56\xf1\x56\xf0\x56\xef\x59\x92\x59\x93\x76\x5d\x5e\x77\x62\x72\x4c\x71\x69\x5d\x4c\xb6\x69\x75\x00\x00\x00\x00\x69\xb4\x4d\xf9\x00\x00\x00\x00\x00\x00\x50\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x79\xd1\x00\x00\x00\x00\x4c\x72\x00\x00\x4c\xb7\x69\xb5\x00\x00\x00\x00\x6a\x7e\x00\x00\x6a\x7f\x00\x00\x4e\xfb\x00\x00\x00\x00\x00\x00\x76\x5e\x59\x94\x00\x00\x79\xd2\x00\x00\x00\x00\x00\x00\x63\xd2\x4c\x73\x4c\x88\x4c\xb8\x69\x76\x4d\x67\x00\x00\x4f\x42\x4f\x41\x4e\xfc\x4e\xfd\x00\x00\x00\x00\x6b\xba\x50\xa1\x50\xa2\x6b\xbb\x50\xa0\x00\x00\x00\x00\x52\x91\x6d\x9b\x52\x90\x52\x8e\x52\x8f\x54\xae\x54\xac\x00\x00\x00\x00\x6f\xed\x54\xad\x6f\xec\x00\x00\x54\xa2\x72\xf6\x00\x00\x00\x00\x56\xf3\x56\xf4\x00\x00\x00\x00\x56\xf2\x00\x00\x5e\x78\x7d\x8a\x60\x71\x60\x72\x00\x00\x80\xab\x63\xd3\x89\x6f\x89\x70\x00\x00\x67\x89\x90\xb7\x69\x4c\x4c\xb9\x00\x00\x4c\x74\x00\x00\x69\x78\x69\x77\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfa\x69\xb7\x69\xb8\x69\xb6\x00\x00\x69\xb9\x00\x00", /* 5c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x88\x00\x00\x6a\x83\x6a\x85\x6a\x87\x6a\x84\x4f\x46\x6a\x81\x00\x00\x6a\x82\x4f\x43\x4f\x44\x6a\x86\x6a\x89\x4f\x45\x6a\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc9\x00\x00\x6b\xc3\x6b\xbe\x50\xa4\x6b\xc6\x6b\xc4\x6b\xbd\x6b\xca\x6b\xcd\x6b\xc8\x6b\xc1\x50\xa6\x6b\xc7\x50\xa7\x6b\xc2\x6b\xc5\x6b\xbc\x6b\xc0\x6b\xcc\x50\xa8\x00\x00\x50\xa9\x00\x00\x6b\xbf\x6b\xcb\x50\xa3\x50\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xac\x6d\xa5\x6d\xab\x6d\xa4\x6d\xa6\x6d\xa0\x6d\x9e\x00\x00\x6d\xad\x6d\xaa\x6d\x9c\x00\x00\x52\x93\x6d\xa8\x6d\xa9\x00\x00\x6d\xa7\x6d\x9f\x6d\x9d\x52\x92\x6d\xa3\x6d\xa1\x00\x00\x00\x00\x6d\xa2\x6d\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb3\x00\x00\x54\xb2\x00\x00\x6f\xee\x54\xaf\x6f\xf0\x00\x00\x54\xb4\x6f\xf1\x00\x00\x00\x00\x54\xb7\x00\x00\x54\xb5\x6f\xf2\x6d\xaf\x6f\xf4\x00\x00\x54\xb1\x00\x00\x54\xb0\x00\x00\x6f\xef", /* 5d00 */ "\x6f\xf3\x54\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x56\xf6\x56\xf5\x00\x00\x00\x00\x00\x00\x72\xf8\x72\xfc\x73\x41\x56\xf7\x73\x44\x00\x00\x56\xfb\x73\x46\x00\x00\x56\xfd\x00\x00\x56\xf9\x57\x44\x00\x00\x57\x41\x72\xfa\x56\xf8\x00\x00\x72\xf9\x72\xf7\x73\x48\x72\xfb\x00\x00\x56\xfa\x73\x47\x57\x42\x73\x43\x73\x42\x57\x43\x72\xfd\x56\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x73\x49\x00\x00\x73\x45\x76\x6d\x76\x74\x76\x69\x59\x97\x76\x65\x76\x75\x76\x5f\x76\x72\x76\x70\x76\x6a\x00\x00\x76\x73\x76\x6c\x00\x00\x76\x64\x76\x76\x76\x62\x76\x6f\x76\x60\x00\x00\x76\x77\x00\x00\x59\x98\x00\x00\x76\x71\x79\xd5\x76\x63\x59\x95\x00\x00\x76\x67\x00\x00\x59\x96\x76\x66\x76\x6b\x00\x00\x00\x00\x76\x68\x00\x00\x00\x00\x00\x00\x76\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x79\xd9\x00\x00\x00\x00\x00\x00\x79\xdc\x79\xd4\x00\x00\x79\xd6\x00\x00\x79\xdb\x79\xda\x5b\xe8\x00\x00\x76\x61\x79\xd8\x00\x00\x00\x00\x5b\xe9\x00\x00\x79\xd3\x79\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x91\x00\x00\x7d\x98\x7d\x8f\x00\x00\x7d\x96\x7d\x8d\x7d\x95\x7d\x99", /* 5d80 */ "\x7d\x8c\x7d\x90\x7d\x8b\x00\x00\x5e\x79\x00\x00\x7d\x8e\x5e\x7a\x7d\x94\x7d\x93\x7d\x92\x00\x00\x00\x00\x7d\x97\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaf\x80\xb1\x60\x74\x80\xb2\x00\x00\x80\xad\x00\x00\x80\xac\x80\xb6\x00\x00\x80\xb4\x60\x73\x80\xb7\x80\xae\x80\xb3\x80\xb5\x80\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x83\xeb\x83\xf0\x83\xea\x83\xef\x00\x00\x83\xe8\x83\xf2\x83\xee\x83\xf3\x83\xed\x83\xe9\x83\xf1\x00\x00\x83\xf4\x83\xec\x00\x00\x86\xe5\x63\xd7\x00\x00\x63\xd5\x00\x00\x63\xd4\x63\xd6\x00\x00\x00\x00\x89\x71\x00\x00\x8a\xc0\x8b\x6c\x00\x00\x00\x00\x8c\xf1\x8c\xf2\x00\x00\x66\xea\x00\x00\x8e\x78\x00\x00\x67\x8a\x00\x00\x8e\x79\x00\x00\x8f\x6e\x67\xdd\x00\x00\x67\xdc\x8f\x6d\x68\x55\x00\x00\x90\x47\x00\x00\x00\x00\x48\x6e\x00\x00\x4c\x75\x4d\xfb\x69\xba\x6a\x8b\x4f\xd5\x57\x45\x00\x00\x00\x00\x4c\x76\x4d\x6a\x4d\x69\x4d\x68\x00\x00\x00\x00\x4f\x47\x00\x00\x00\x00\x54\xb8\x00\x00\x79\xdd\x4c\x77\x4c\x78\x4c\x79\x4c\xba\x00\x00\x00\x00\x52\x94\x00\x00\x6d\xb0\x00\x00\x00\x00\x00\x00\x59\x99\x4c\x7a\x69\x5e", /* 5e00 */ "\x00\x00\x00\x00\x4d\x6b\x4d\x6c\x69\x79\x00\x00\x4d\xfc\x00\x00\x00\x00\x00\x00\x6a\x8c\x00\x00\x4f\x48\x00\x00\x6a\x8d\x00\x00\x00\x00\x50\xaf\x00\x00\x00\x00\x6b\xcf\x50\xad\x50\xac\x6b\xce\x50\xaa\x6b\xd0\x50\xab\x50\xae\x00\x00\x52\x95\x00\x00\x52\x97\x6d\xb4\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb5\x52\x96\x00\x00\x00\x00\x6f\xf6\x6f\xf5\x00\x00\x54\xba\x00\x00\x54\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x48\x73\x4b\x00\x00\x57\x47\x57\x49\x57\x46\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9b\x73\x4a\x00\x00\x59\x9c\x76\x79\x00\x00\x59\x9d\x76\x78\x59\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x79\xe0\x79\xe2\x5b\xea\x79\xe1\x79\xdf\x79\xde\x00\x00\x00\x00\x00\x00\x7d\x9c\x5e\x7f\x5e\x7d\x00\x00\x5e\x7e\x7d\x9a\x7d\x9b\x00\x00\x5e\x7b\x80\xbb\x80\xb9\x00\x00\x60\x76\x80\xba\x60\x77\x60\x75\x5e\x7c\x00\x00\x00\x00\x83\xf7\x83\xf5\x83\xf6\x80\xb8\x86\xe7\x63\xd8\x86\xe6\x89\x72\x89\x73\x83\xf8\x8b\x6d\x00\x00\x4c\x7b\x4d\x6d\x4e\x41\x69\xbb\x4d\xfd\x00\x00\x50\xb0\x5b\xeb\x48\x73\x4c\xbb\x4d\x6e\x52\x98\x59\x9e\x48\x74", /* 5e80 */ "\x69\x7a\x00\x00\x69\x7b\x00\x00\x69\xbc\x00\x00\x00\x00\x4f\x4a\x6a\x91\x6a\x8f\x4f\x4b\x6a\x8e\x6a\x90\x6a\x92\x00\x00\x4f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb4\x50\xb5\x50\xb2\x00\x00\x00\x00\x50\xb1\x6d\xb9\x50\xb3\x00\x00\x00\x00\x00\x00\x52\x99\x00\x00\x6d\xb8\x6d\xba\x6d\xb7\x6d\xbb\x52\x9a\x54\xbd\x6f\xf7\x00\x00\x6f\xf9\x54\xbb\x6f\xfa\x54\xbc\x6f\xf8\x00\x00\x6d\xb6\x73\x4c\x73\x4f\x73\x50\x73\x4d\x57\x4d\x57\x4c\x57\x4a\x57\x4b\x73\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x57\x4e\x00\x00\x00\x00\x59\xa0\x59\xa1\x00\x00\x59\xa2\x79\xe3\x79\xe5\x79\xe7\x5b\xed\x5b\xec\x59\x9f\x79\xe6\x79\xe4\x00\x00\x7d\xa0\x00\x00\x00\x00\x7d\x9e\x7d\xa4\x5e\x81\x7d\xa5\x7d\xa2\x5e\x82\x7d\x9f\x7d\x9d\x7d\xa3\x60\x79\x80\xbd\x7d\xa1\x60\x7b\x80\xbe\x60\x7a\x60\x7d\x80\xbf\x60\x78\x60\x7c\x00\x00\x83\xfd\x83\xfb\x83\xfa\x83\xfc\x83\xf9\x00\x00\x00\x00\x66\x52\x00\x00\x8c\xf3\x8c\xf4\x00\x00\x8e\x7a\x8f\x6f\x68\xa1\x48\x75\x00\x00\x50\xb6\x4f\x4c\x00\x00\x00\x00\x52\x9b\x00\x00\x00\x00\x00\x00\x4c\x7c\x4c\xbc", /* 5f00 */ "\x00\x00\x4d\x6f\x69\xbd\x00\x00\x4f\x4d\x6a\x93\x00\x00\x6d\xbc\x52\x9c\x00\x00\x5e\x83\x4c\x7d\x00\x00\x00\x00\x00\x00\x4e\x42\x00\x00\x00\x00\x5b\xee\x4c\x7e\x4c\xbd\x4c\xbe\x00\x00\x4d\x71\x4d\x70\x00\x00\x69\xbe\x4e\x43\x00\x00\x6a\x94\x00\x00\x4f\x4e\x00\x00\x00\x00\x6b\xd2\x6b\xd3\x6b\xd4\x00\x00\x50\xb7\x50\xb8\x6b\xd1\x50\xb9\x00\x00\x00\x00\x00\x00\x52\x9d\x6d\xbd\x00\x00\x6f\xfc\x54\xbe\x00\x00\x6f\xfb\x00\x00\x57\x4f\x73\x51\x57\x50\x73\x52\x00\x00\x00\x00\x00\x00\x59\xa3\x00\x00\x00\x00\x00\x00\x79\xe8\x00\x00\x00\x00\x7d\xa7\x7d\xa6\x00\x00\x5e\x84\x00\x00\x60\x7e\x80\xc0\x62\x73\x84\x41\x63\xd9\x00\x00\x67\xde\x90\x49\x48\x79\x00\x00\x00\x00\x00\x00\x6b\xd5\x00\x00\x6d\xbe\x57\x51\x76\x7a\x5b\xef\x00\x00\x00\x00\x00\x00\x65\x60\x65\x60\x00\x00\x00\x00\x48\x7a\x4f\x50\x00\x00\x4f\x4f\x52\x9e\x00\x00\x6f\xfd\x00\x00\x57\x53\x58\xa8\x57\x54\x57\x52\x59\xa4\x00\x00\x7d\xa8\x5e\x85\x60\x7f\x00\x00\x69\x4d\x69\xbf\x00\x00\x6a\x96\x4f\x51\x6a\x95\x4f\x52\x00\x00\x00\x00\x50\xbd\x6b\xd8\x6b\xd7\x50\xbc", /* 5f80 */ "\x50\xba\x50\xbb\x6b\xd6\x00\x00\x00\x00\x52\xa0\x6d\xbf\x52\xa3\x52\x9f\x52\xa5\x52\xa1\x52\xa2\x52\xa4\x00\x00\x00\x00\x00\x00\x54\xc1\x54\xc0\x54\xbf\x00\x00\x00\x00\x00\x00\x73\x54\x57\x55\x57\x58\x57\x56\x00\x00\x73\x53\x57\x5b\x00\x00\x57\x57\x73\x55\x57\x5a\x57\x59\x00\x00\x00\x00\x00\x00\x76\x7c\x76\x7b\x00\x00\x59\xa7\x59\xa5\x59\xa6\x76\x7d\x5b\xf0\x79\xea\x5b\xf1\x79\xe9\x00\x00\x00\x00\x80\xc1\x00\x00\x00\x00\x60\x82\x7d\xa9\x60\x81\x00\x00\x5e\x86\x00\x00\x86\xe9\x84\x42\x63\xda\x86\xe8\x8b\x6e\x8c\xf5\x8c\xf6\x00\x00\x4c\xbf\x00\x00\x4d\x72\x00\x00\x00\x00\x00\x00\x69\x7c\x00\x00\x00\x00\x4f\x54\x4f\x56\x00\x00\x69\xc2\x6a\x99\x6a\x98\x6a\x97\x00\x00\x69\xc1\x69\xc0\x4e\x45\x4f\x55\x4f\x53\x4e\x44\x00\x00\x00\x00\x00\x00\x50\xbe\x6b\xd9\x00\x00\x50\xbf\x6a\x9e\x00\x00\x6a\xa0\x6a\x9f\x6b\xda\x00\x00\x00\x00\x6a\x9b\x00\x00\x4f\x5a\x4f\x58\x00\x00\x6a\x9a\x6a\x9c\x6a\xa2\x00\x00\x4f\x57\x00\x00\x6a\x9d\x6a\xa6\x50\xc1\x00\x00\x6a\xa3\x4f\x59\x00\x00\x6a\xa1\x6a\xa4\x00\x00\x50\xc0\x00\x00\x50\xc2", /* 6000 */ "\x6a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xee\x6b\xe1\x6b\xdf\x6b\xed\x6b\xe8\x52\xaa\x50\xc3\x6b\xe9\x6b\xec\x52\xa6\x6b\xeb\x50\xc4\x50\xc9\x50\xc7\x6b\xe2\x00\x00\x6b\xdd\x6b\xe4\x50\xce\x6b\xef\x52\xa7\x6b\xe5\x00\x00\x52\xa8\x50\xca\x6b\xe7\x00\x00\x6d\xce\x52\xa9\x6b\xdc\x50\xcb\x52\xab\x50\xcc\x50\xc8\x50\xcd\x6b\xe6\x6b\xdb\x6b\xea\x50\xc5\x00\x00\x00\x00\x6b\xde\x6b\xe3\x6b\xe0\x50\xc6\x00\x00\x6d\xc0\x00\x00\x6d\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xcb\x70\x44\x6d\xcc\x52\xb1\x6d\xcf\x6d\xc5\x52\xb0\x6d\xc7\x00\x00\x6d\xc8\x00\x00\x00\x00\x6d\xca\x52\xac\x00\x00\x00\x00\x54\xc5\x00\x00\x00\x00\x6d\xc6\x6d\xc2\x54\xc6\x00\x00\x00\x00\x6d\xd0\x54\xc2\x70\x42\x6d\xc9\x00\x00\x70\x41\x6d\xc4\x6d\xcd\x00\x00\x00\x00\x52\xaf\x54\xc3\x52\xb5\x54\xc4\x6d\xd1\x70\x43\x52\xae\x54\xc8\x52\xb4\x52\xb3\x52\xb2\x54\xc7\x6d\xd2\x54\xc9\x52\xad\x00\x00\x6d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x5c", /* 6080 */ "\x70\x47\x70\x49\x00\x00\x70\x4b\x54\xca\x54\xd0\x73\x58\x70\x4f\x70\x46\x57\x5e\x73\x56\x00\x00\x54\xcf\x54\xcd\x70\x51\x00\x00\x73\x57\x00\x00\x70\x48\x00\x00\x54\xce\x70\x4c\x54\xd1\x70\x4e\x00\x00\x00\x00\x54\xcc\x70\x4d\x70\x50\x70\x4a\x00\x00\x54\xcb\x57\x5f\x00\x00\x70\x45\x57\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x57\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x5a\x73\x63\x59\xaa\x00\x00\x57\x62\x57\x67\x59\xab\x73\x65\x57\x6e\x76\x7f\x73\x5b\x57\x66\x57\x69\x57\x64\x73\x59\x73\x67\x73\x6a\x76\x8f\x00\x00\x73\x68\x76\x84\x57\x65\x57\x6c\x57\x70\x73\x62\x76\x7e\x73\x66\x57\x61\x76\x81\x73\x69\x76\x83\x73\x5e\x00\x00\x59\xa8\x00\x00\x73\x5c\x73\x5d\x57\x6b\x00\x00\x00\x00\x57\x6a\x73\x60\x57\x6f\x73\x64\x57\x68\x73\x61\x00\x00\x57\x6d\x59\xac\x59\xa9\x76\x82\x00\x00\x73\x5f\x00\x00\x57\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb1\x59\xb5\x76\x86\x5b\xf6\x59\xb3\x76\x8a\x59\xb7\x79\xeb\x76\x8c\x5b\xf8\x59\xaf\x59\xb2\x76\x8d\x00\x00\x76\x8e\x76\x94", /* 6100 */ "\x59\xb9\x5b\xf9\x00\x00\x76\x90\x76\x95\x76\x89\x5c\x46\x00\x00\x5b\xfa\x59\xb8\x76\x87\x76\x96\x00\x00\x5c\x45\x59\xb6\x5b\xf3\x76\x93\x00\x00\x59\xba\x76\x8b\x76\x85\x59\xb0\x76\x88\x00\x00\x76\x91\x00\x00\x5b\xf2\x5b\xf7\x59\xad\x76\x92\x00\x00\x5b\xf5\x00\x00\x00\x00\x00\x00\x59\xae\x00\x00\x00\x00\x00\x00\x5c\x44\x7d\xab\x79\xf6\x00\x00\x79\xee\x7d\xaa\x00\x00\x79\xf2\x79\xf4\x00\x00\x00\x00\x79\xf1\x00\x00\x5c\x43\x00\x00\x79\xf0\x5c\x47\x00\x00\x00\x00\x00\x00\x7d\xba\x00\x00\x00\x00\x5c\x42\x5e\x88\x79\xf7\x7d\xac\x00\x00\x00\x00\x5b\xfd\x79\xef\x79\xf3\x5e\x87\x5b\xf4\x79\xec\x79\xed\x5e\x89\x5b\xfc\x5c\x41\x5b\xfb\x79\xf5\x00\x00\x00\x00\x7d\xb0\x7d\xb1\x7d\xb6\x60\x87\x7d\xbd\x00\x00\x5e\x8f\x00\x00\x5e\x8e\x7d\xb8\x00\x00\x60\x86\x7d\xad\x5e\x8d\x00\x00\x7d\xbc\x5e\x8b\x5e\x8c\x00\x00\x7d\xb9\x80\xd2\x60\x84\x59\xb4\x00\x00\x7d\xbb\x60\x8b\x7d\xb3\x00\x00\x60\x85\x00\x00\x60\x8a\x7d\xae\x7d\xb2\x7d\xaf\x7d\xb5\x5e\x90\x60\x83\x5e\x8a\x00\x00\x80\xc4\x7d\xb7\x00\x00\x60\x89\x00\x00\x60\x8c\x00\x00", /* 6180 */ "\x7d\xb4\x00\x00\x60\x88\x80\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc8\x62\x77\x80\xc2\x84\x4e\x80\xd1\x60\x90\x00\x00\x60\x8e\x62\x75\x80\xce\x80\xca\x60\x94\x00\x00\x84\x45\x00\x00\x00\x00\x00\x00\x60\x92\x80\xc9\x00\x00\x84\x43\x00\x00\x80\xcd\x00\x00\x80\xd0\x80\xc7\x00\x00\x60\x93\x00\x00\x00\x00\x60\x8d\x84\x44\x62\x76\x80\xcf\x60\x8f\x60\x91\x80\xcc\x60\x95\x80\xcb\x80\xc6\x80\xc5\x62\x74\x80\xd3\x84\x47\x86\xeb\x62\x79\x00\x00\x84\x4d\x00\x00\x84\x4b\x00\x00\x86\xec\x00\x00\x62\x7a\x84\x4c\x00\x00\x84\x49\x63\xdc\x86\xea\x00\x00\x84\x46\x84\x48\x63\xdd\x62\x7c\x63\xdb\x62\x7b\x63\xdf\x84\x4a\x62\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x7c\x00\x00\x89\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xf2\x89\x75\x86\xee\x00\x00\x00\x00\x65\x61\x86\xf0\x86\xef\x63\xde\x86\xed\x86\xf1\x89\x7d\x89\x79\x89\x7b\x00\x00\x89\x76\x89\x77\x00\x00\x89\x7a\x89\x78\x66\x53\x00\x00\x00\x00\x66\x56\x66\x55\x66\x54\x66\xeb\x8c\xf7\x66\xec\x8b\x6f\x67\x8b\x8e\x7b\x67\x8c\x67\xdf", /* 6200 */ "\x68\x56\x90\x4a\x00\x00\x90\x4b\x90\x4c\x00\x00\x00\x00\x91\xaa\x4c\xc0\x69\x7d\x4d\x73\x00\x00\x4e\x47\x4e\x48\x4e\x46\x00\x00\x4e\x49\x4f\x5c\x4f\x5b\x00\x00\x6b\xf0\x50\xd0\x50\xcf\x00\x00\x00\x00\x70\x52\x57\x71\x57\x72\x00\x00\x00\x00\x00\x00\x59\xbb\x79\xf8\x5c\x48\x5c\x49\x79\xfa\x79\xfc\x79\xfb\x00\x00\x7d\xbf\x00\x00\x7d\xbe\x5e\x91\x7d\xc0\x00\x00\x80\xd4\x60\x96\x00\x00\x62\x7d\x00\x00\x63\xe0\x65\x62\x63\xe1\x00\x00\x4c\xc1\x00\x00\x00\x00\x00\x00\x6a\xa7\x00\x00\x00\x00\x6b\xf1\x50\xd2\x50\xd1\x50\xd3\x52\xb6\x6d\xd3\x6d\xd4\x00\x00\x00\x00\x70\x53\x54\xd2\x57\x73\x59\xbc\x76\x97\x4c\xc2\x00\x00\x4c\x7f\x4c\xc3\x00\x00\x69\x7e\x4d\x77\x4d\x76\x4d\x74\x4d\x75\x00\x00\x00\x00\x00\x00\x4e\x4c\x69\xca\x69\xcc\x4e\x4b\x69\xc4\x00\x00\x69\xc5\x00\x00\x69\xcb\x69\xc7\x69\xc9\x4e\x4a\x69\xc6\x69\xc3\x69\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x63\x4f\x6c\x4f\x6a\x6a\xb1\x6a\xae\x6a\xb6\x4f\x68\x6a\xb7\x00\x00\x4f\x61\x6a\xb4\x00\x00\x4f\x67\x6a\xb0\x6a\xaf\x4f\x65\x6a\xb5\x4f\x66\x50\xd4", /* 6280 */ "\x4f\x60\x6a\xb2\x00\x00\x6a\xa8\x4f\x5d\x00\x00\x4f\x70\x6a\xad\x6a\xb3\x4f\x62\x4f\x64\x00\x00\x6a\xa9\x00\x00\x6a\xaa\x6a\xab\x00\x00\x4f\x6f\x4f\x69\x4f\x6e\x6a\xac\x4f\x6d\x4f\x5f\x4f\x5e\x4f\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xe2\x6b\xfd\x6b\xf6\x50\xdd\x50\xf0\x6b\xf2\x6b\xf9\x6b\xfb\x6c\x41\x50\xeb\x00\x00\x6b\xfa\x6b\xf3\x50\xe9\x6b\xf7\x00\x00\x6c\x42\x50\xda\x00\x00\x6b\xfc\x50\xe4\x50\xe3\x6b\xf5\x50\xd8\x00\x00\x00\x00\x50\xd9\x00\x00\x50\xd7\x00\x00\x50\xef\x50\xe7\x50\xe1\x50\xd5\x6b\xf8\x50\xe0\x50\xd6\x50\xe8\x50\xf1\x6d\xd5\x50\xe5\x6b\xf4\x50\xdb\x50\xde\x50\xdf\x00\x00\x50\xed\x50\xee\x50\xec\x50\xe6\x50\xea\x50\xdc\x52\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xdb\x52\xc3\x52\xbb\x52\xbd\x52\xc2\x6d\xe7\x52\xc0\x70\x54\x54\xd3\x52\xc5\x6d\xd8\x6d\xe0\x52\xc1\x6d\xdf\x6d\xdc\x6d\xe4\x6d\xe6\x52\xba\x52\xbe\x52\xc4\x54\xd5", /* 6300 */ "\x6d\xe1\x52\xbc\x52\xc7\x6d\xda\x00\x00\x00\x00\x00\x00\x52\xbf\x54\xd4\x52\xb9\x00\x00\x6d\xd7\x6d\xde\x6d\xd6\x6d\xd9\x6d\xdd\x70\x55\x52\xc6\x00\x00\x6d\xe2\x6d\xe3\x6d\xe5\x52\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe3\x70\x61\x54\xe1\x54\xe2\x70\x57\x70\x67\x00\x00\x54\xd8\x00\x00\x00\x00\x73\x6b\x70\x69\x70\x63\x00\x00\x70\x5a\x00\x00\x70\x6c\x70\x5d\x54\xde\x73\x83\x70\x60\x54\xe0\x54\xd7\x00\x00\x70\x6e\x70\x62\x54\xda\x70\x5b\x70\x58\x70\x59\x54\xdb\x70\x68\x70\x6f\x54\xdd\x70\x5f\x70\x5e\x54\xe5\x54\xe4\x54\xd6\x54\xdc\x54\xdf\x70\x6b\x00\x00\x00\x00\x70\x65\x54\xd9\x70\x56\x70\x6d\x70\x64\x70\x66\x70\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x6c\x00\x00\x57\x7b\x57\x90\x57\x8f\x00\x00\x57\x84\x00\x00\x73\x7e\x73\x7a\x73\x77\x73\x8a\x57\x7e\x57\x76\x00\x00\x00\x00\x73\x7c\x59\xcc\x57\x7a\x73\x85\x00\x00\x57\x91\x57\x8e\x73\x81\x73\x6f\x00\x00\x00\x00", /* 6380 */ "\x57\x8d\x73\x87\x73\x6e\x57\x82\x57\x86\x73\x86\x00\x00\x73\x78\x57\x87\x57\x81\x73\x6d\x00\x00\x59\xbe\x73\x89\x73\x76\x57\x8c\x73\x79\x73\x88\x57\x8b\x00\x00\x76\x98\x00\x00\x57\x77\x73\x74\x57\x7c\x57\x88\x00\x00\x57\x83\x73\x7d\x73\x73\x73\x71\x73\x84\x57\x74\x57\x89\x57\x78\x59\xbd\x73\x82\x57\x79\x00\x00\x57\x75\x57\x85\x57\x7f\x57\x7d\x73\x75\x57\x8a\x73\x72\x73\x7f\x73\x7b\x76\x9a\x76\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x70\x76\xaa\x00\x00\x59\xc0\x00\x00\x76\xb0\x76\x9f\x76\xad\x79\xfd\x59\xc3\x76\xb1\x76\xb4\x59\xc2\x76\xa2\x76\xb3\x76\xb2\x59\xc4\x76\x9b\x59\xbf\x59\xc7\x00\x00\x59\xc5\x76\xaf\x00\x00\x76\xa5\x59\xc9\x76\xb6\x76\xae\x76\xb7\x59\xd1\x59\xcf\x76\xac\x76\xab\x00\x00\x76\xa9\x76\xa3\x59\xc8\x00\x00\x59\xc6\x70\x5c\x76\x9c\x00\x00\x7a\x5e\x76\x9d\x59\xc1\x59\xce\x7a\x42\x00\x00\x59\xca\x59\xcb\x76\x9e\x76\xb5\x7a\x41\x76\xa6\x76\xa1\x59\xcd\x76\xa7\x76\xa4\x00\x00\x00\x00\x59\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x58\x00\x00\x00\x00\x7a\x45\x7a\x58\x7a\x5d\x7a\x51\x5c\x54\x7a\x62\x5c\x51\x7a\x43\x00\x00\x7a\x44\x5c\x4a\x5c\x53\x7a\x4b\x5c\x56\x5c\x57\x7a\x4c\x00\x00\x7a\x59\x7a\x5f\x5c\x52\x00\x00\x5c\x4c\x7a\x4a\x7a\x46\x7a\x61\x7a\x4f\x7a\x50\x7a\x47\x7a\x5b\x7a\x52\x7a\x5c\x7a\x54\x00\x00\x5c\x4d\x7d\xc1\x5c\x50\x5c\x4e\x7a\x60\x7a\x57\x7a\x53\x00\x00\x00\x00\x7a\x48\x5e\x9b\x7a\x56\x5c\x55\x7a\x4e\x00\x00\x7a\x4d\x00\x00\x00\x00\x00\x00\x5c\x4f\x5c\x4b\x7d\xd6\x7a\x5a\x7a\x55\x00\x00\x7a\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xd1\x00\x00\x7d\xc2\x7d\xcd\x00\x00\x7d\xd4\x5e\x99\x59\xd0\x7d\xd2\x5e\x94\x00\x00\x00\x00\x00\x00\x5e\x93\x7d\xd9\x00\x00\x7d\xc3\x7d\xd0\x7d\xc4\x7d\xcf\x5e\x97\x7d\xd3\x76\xa8\x00\x00\x00\x00\x00\x00\x7d\xda\x7d\xcb\x5e\x9a\x80\xe2\x60\x97\x00\x00\x7d\xd8\x7d\xd7\x5e\x9c\x80\xd5\x60\x98\x80\xd6\x00\x00\x7d\xc7\x7d\xc8\x7d\xc5\x7d\xca\x7d\xc6\x7d\xdb\x5e\x96\x60\x99\x5e\x98\x5e\x9d\x00\x00\x7d\xc9\x00\x00\x7d\xd5", /* 6480 */ "\x00\x00\x00\x00\x7d\xce\x00\x00\x00\x00\x80\xd9\x00\x00\x5e\x92\x60\x9c\x84\x55\x80\xde\x80\xdd\x80\xdf\x00\x00\x00\x00\x80\xdc\x60\x9d\x68\xcb\x60\xa3\x60\xa0\x00\x00\x60\xa1\x80\xd7\x80\xda\x80\xe4\x60\xa9\x60\xa7\x00\x00\x80\xdb\x76\xa0\x60\x9a\x80\xe1\x80\xd8\x00\x00\x60\xaa\x80\xe0\x5e\x95\x60\x9f\x7d\xcc\x00\x00\x00\x00\x60\xa2\x00\x00\x60\xa6\x60\xa8\x60\xa5\x60\xa4\x00\x00\x60\x9e\x80\xe3\x60\x9b\x60\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x82\x62\x83\x84\x54\x62\x8c\x62\x89\x00\x00\x62\x7f\x62\x87\x84\x56\x62\x85\x62\x7e\x00\x00\x62\x86\x00\x00\x84\x53\x63\xe3\x62\x81\x00\x00\x62\x88\x63\xe2\x84\x52\x84\x51\x00\x00\x62\x8a\x00\x00\x62\x8b\x00\x00\x84\x50\x84\x4f\x63\xe4\x84\x59\x62\x84\x84\x57\x00\x00\x00\x00\x00\x00\x00\x00\x63\xe5\x00\x00\x63\xea\x86\xf5\x86\xf7\x00\x00\x63\xe7\x00\x00\x86\xf8\x86\xf4\x00\x00\x86\xf6\x63\xe8\x63\xeb\x00\x00\x86\xf3\x63\xe6\x63\xe9\x65\x64\x84\x58\x65\x63\x00\x00\x00\x00\x65\x69\x89\x82\x00\x00\x65\x67\x65\x68\x89\x85\x89\x81\x65\x65\x89\x7e", /* 6500 */ "\x66\x57\x89\x83\x00\x00\x89\x84\x89\x7f\x00\x00\x65\x66\x8b\x70\x00\x00\x8b\x73\x00\x00\x00\x00\x8b\x74\x8b\x72\x8b\x75\x66\x58\x8b\x71\x00\x00\x00\x00\x8c\xfb\x66\xee\x8c\xfa\x8c\xf9\x8c\xf8\x66\xed\x66\xef\x00\x00\x8e\x7c\x67\x8e\x67\x8d\x00\x00\x00\x00\x8f\x71\x8f\x70\x8f\x73\x68\x57\x67\xe0\x90\x4e\x8f\x72\x00\x00\x00\x00\x90\x4d\x68\x59\x68\x58\x68\x7f\x90\xb8\x91\x41\x4c\xc4\x00\x00\x00\x00\x76\xb8\x84\x5a\x48\x82\x00\x00\x4e\x4d\x6a\xb8\x4f\x73\x4f\x71\x00\x00\x4f\x72\x00\x00\x6c\x43\x50\xf2\x52\xc8\x00\x00\x6d\xe8\x00\x00\x6d\xe9\x00\x00\x52\xc9\x70\x71\x00\x00\x54\xe6\x54\xe7\x70\x70\x00\x00\x00\x00\x00\x00\x00\x00\x57\x98\x00\x00\x57\x94\x00\x00\x73\x8b\x57\x9b\x57\x9a\x57\x93\x57\x96\x57\x99\x57\x95\x00\x00\x00\x00\x76\xbc\x57\x92\x59\xd3\x00\x00\x00\x00\x00\x00\x59\xd5\x59\xd6\x76\xbb\x76\xbe\x59\xd4\x76\xb9\x76\xbd\x00\x00\x76\xba\x00\x00\x5c\x59\x00\x00\x00\x00\x7a\x63\x00\x00\x00\x00\x5e\x9e\x7d\xdc\x62\x8d\x60\xac\x80\xe5\x60\xad\x60\xae\x80\xe7\x80\xe6\x80\xe8\x84\x5c\x00\x00\x00\x00\x84\x5b", /* 6580 */ "\x86\xfa\x86\xf9\x63\xec\x63\xed\x8b\x76\x00\x00\x00\x00\x4c\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x76\xbf\x00\x00\x00\x00\x00\x00\x59\xd8\x59\xd7\x7a\x64\x00\x00\x89\x86\x67\x8f\x90\x4f\x4c\xc6\x00\x00\x54\xe8\x00\x00\x57\x9d\x57\x9c\x76\xc0\x76\xc1\x5c\x5a\x7d\xdd\x5e\x9f\x84\x5d\x00\x00\x4c\xc7\x4d\x78\x00\x00\x50\xf3\x6c\x44\x00\x00\x6d\xea\x52\xca\x57\x9e\x00\x00\x76\xc2\x59\xd9\x5c\x5b\x00\x00\x80\xe9\x80\xea\x00\x00\x00\x00\x86\xfb\x65\x6a\x91\x42\x4c\xc8\x00\x00\x6c\x45\x50\xf4\x52\xcb\x00\x00\x6d\xeb\x00\x00\x54\xe9\x70\x75\x70\x73\x70\x74\x54\xea\x70\x72\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa0\x57\xa1\x73\x8c\x57\xa2\x57\x9f\x76\xc3\x00\x00\x76\xc4\x7a\x65\x00\x00\x00\x00\x5e\xa1\x5e\xa0\x00\x00\x00\x00\x86\xfc\x89\x87\x00\x00\x8b\x78\x8b\x77\x8c\xfc\x48\x87\x69\x5f\x52\xcc\x00\x00\x00\x00\x4c\xc9\x4d\x79\x00\x00\x4e\x4f\x4e\x4e\x00\x00\x00\x00\x4e\x50\x4e\x51\x69\xce\x69\xcd\x6a\xb9\x4f\x74\x6a\xbc\x6a\xbb\x6a\xba\x6a\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x50\xf5\x6c\x4b\x6c\x47\x6c\x50\x00\x00\x00\x00", /* 6600 */ "\x50\xfc\x00\x00\x50\xfa\x6c\x4c\x6c\x48\x6c\x4f\x50\xf9\x51\x43\x6c\x4a\x6c\x46\x51\x42\x6c\x4d\x50\xf8\x6c\x4e\x50\xfb\x50\xfd\x6c\x52\x6c\x51\x6c\x49\x50\xf7\x50\xf6\x51\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xf0\x6d\xf6\x00\x00\x52\xd2\x52\xcf\x6d\xed\x6d\xf2\x00\x00\x52\xd5\x52\xcd\x6d\xf1\x52\xd0\x52\xd3\x00\x00\x00\x00\x6d\xf4\x00\x00\x52\xce\x6d\xf9\x52\xd1\x00\x00\x52\xd4\x6d\xee\x6d\xf3\x6d\xf7\x6d\xef\x6d\xec\x00\x00\x00\x00\x6d\xf8\x6d\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xf2\x54\xeb\x54\xee\x00\x00\x54\xf1\x00\x00\x70\x78\x00\x00\x54\xec\x70\x76\x00\x00\x54\xf0\x00\x00\x00\x00\x54\xed\x00\x00\x70\x79\x54\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x90\x57\xa4\x73\x8f\x73\x91\x57\xa3\x57\xa8\x70\x77\x00\x00\x73\x8e\x73\x92\x00\x00\x57\xa5\x73\x8d\x57\xa7\x00\x00\x57\xa6\x00\x00\x76\xcb\x00\x00\x76\xc6\x00\x00\x59\xda\x59\xde\x59\xdb\x76\xc9\x76\xcc\x00\x00\x59\xdc\x00\x00\x59\xdd\x59\xe2\x7a\x6e\x76\xca\x59\xe0\x76\xc7\x76\xc5\x00\x00\x59\xe1\x00\x00", /* 6680 */ "\x76\xc8\x00\x00\x00\x00\x00\x00\x5c\x61\x00\x00\x7a\x66\x5c\x5e\x5c\x5f\x5c\x5d\x7a\x6b\x7a\x6a\x7a\x67\x5c\x63\x00\x00\x00\x00\x7a\x69\x59\xdf\x00\x00\x00\x00\x7a\x6d\x7a\x68\x5c\x60\x5c\x5c\x5c\x62\x7a\x6c\x00\x00\x00\x00\x00\x00\x5e\xa4\x00\x00\x7d\xe0\x7d\xdf\x7d\xde\x5e\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa3\x80\xed\x80\xf0\x60\xb0\x00\x00\x00\x00\x60\xaf\x80\xf1\x80\xec\x60\xb2\x80\xee\x00\x00\x60\xb1\x80\xeb\x00\x00\x80\xef\x62\x93\x62\x90\x84\x66\x84\x65\x00\x00\x84\x64\x84\x5f\x00\x00\x84\x60\x00\x00\x00\x00\x00\x00\x62\x91\x00\x00\x62\x8e\x62\x92\x84\x5e\x62\x8f\x84\x61\x84\x62\x84\x67\x00\x00\x00\x00\x84\x63\x00\x00\x00\x00\x86\xfd\x00\x00\x00\x00\x00\x00\x63\xef\x00\x00\x89\x8a\x63\xee\x89\x88\x89\x89\x65\x6b\x66\x5a\x8b\x79\x00\x00\x66\x59\x00\x00\x00\x00\x8d\x41\x8d\x42\x00\x00\x66\xf0\x00\x00\x8c\xfd\x67\x90\x00\x00\x90\x50\x68\x5a\x90\xb9\x90\xba\x00\x00\x4c\xca\x00\x00\x4e\x52\x4e\x53\x4f\x75\x00\x00\x6c\x53\x52\xd6\x54\xf3\x57\xa9\x00\x00\x00\x00\x56\xb6\x00\x00\x59\xe3\x59\xe4", /* 6700 */ "\x59\x52\x76\xcd\x00\x00\x5c\x64\x7d\xe2\x7d\xe1\x00\x00\x00\x00\x4c\xcb\x4e\x54\x6c\x54\x51\x45\x00\x00\x51\x44\x00\x00\x6d\xfa\x6d\xfb\x00\x00\x70\x7a\x70\x7b\x54\xf4\x54\xf5\x00\x00\x54\xf6\x73\x93\x00\x00\x00\x00\x57\xab\x00\x00\x59\xe6\x00\x00\x59\xe5\x7a\x6f\x7b\xc2\x7d\xe3\x84\x68\x00\x00\x00\x00\x65\x6c\x66\xf1\x4c\xcc\x00\x00\x4d\x7c\x4d\x7d\x4d\x7b\x4d\x7e\x4d\x7a\x00\x00\x00\x00\x4e\x57\x00\x00\x69\xd6\x4e\x56\x4e\x58\x00\x00\x00\x00\x69\xd1\x69\xd0\x69\xd3\x69\xd2\x69\xd5\x4e\x55\x69\xcf\x69\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbe\x4f\x7f\x6a\xbf\x6a\xc3\x4f\x7e\x00\x00\x6a\xc7\x6a\xc2\x6a\xc5\x4f\x77\x4f\x78\x4f\x79\x4f\x7a\x00\x00\x4f\x82\x00\x00\x6a\xc1\x4f\x7c\x4f\x83\x00\x00\x6a\xc0\x6a\xc6\x00\x00\x4f\x7b\x6a\xc4\x4f\x7d\x4f\x76\x4f\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5a\x00\x00\x6c\x56\x51\x46\x00\x00\x51\x50\x51\x51\x51\x49\x51\x5b\x51\x4b\x6c\x5e\x51\x56\x6c\x59\x51\x4c\x6c\x68\x6c\x69\x6c\x61\x6c\x5a\x51\x59\x6c\x66\x51\x54\x51\x52", /* 6780 */ "\x00\x00\x6c\x67\x00\x00\x6c\x65\x6c\x5d\x6c\x55\x6c\x5c\x51\x4d\x00\x00\x51\x53\x00\x00\x51\x47\x6c\x60\x6c\x5f\x6c\x57\x00\x00\x51\x55\x6c\x63\x6c\x58\x51\x58\x6c\x6a\x51\x48\x00\x00\x51\x4f\x6c\x5b\x6c\x64\x51\x57\x00\x00\x51\x4a\x51\x4e\x00\x00\x6c\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x5e\x52\xde\x52\xeb\x00\x00\x6e\x59\x6e\x4f\x52\xe4\x6e\x4d\x52\xdd\x6e\x48\x52\xe7\x6e\x55\x6e\x42\x6e\x44\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x47\x6d\xfc\x6e\x54\x6e\x64\x52\xe2\x6e\x49\x6e\x5b\x00\x00\x6e\x41\x6e\x62\x6e\x63\x6e\x66\x6e\x5d\x6e\x4e\x6e\x56\x52\xe8\x52\xdb\x52\xe3\x52\xef\x52\xd8\x52\xda\x00\x00\x00\x00\x00\x00\x6e\x46\x52\xec\x52\xe5\x6e\x60\x6e\x43\x52\xee\x52\xe9\x6e\x4c\x00\x00\x00\x00\x52\xed\x6e\x53\x6e\x4b\x52\xe6\x6e\x5f\x6e\x57\x00\x00\x52\xe0\x6e\x65\x6e\x4a\x52\xdc\x6e\x5c\x6e\x52\x52\xe1\x6e\x58\x52\xd9\x6d\xfd\x52\xea\x55\x48\x52\xdf\x6e\x51\x6e\x50\x6e\x45\x00\x00\x6e\x61\x00\x00\x6e\x5a\x00\x00\x00\x00\x52\xd7", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x90\x55\x4f\x70\x91\x00\x00\x70\x85\x55\x44\x55\x50\x00\x00\x70\x7d\x00\x00\x70\x87\x70\x8f\x00\x00\x70\x7c\x70\x98\x54\xf7\x00\x00\x00\x00\x00\x00\x70\x97\x70\x92\x00\x00\x70\x93\x55\x42\x55\x4d\x70\x89\x00\x00\x70\x8a\x70\x94\x70\x8b\x00\x00\x70\x86\x70\x7f\x70\x81\x70\x8e\x70\x88\x00\x00\x00\x00\x54\xf8\x54\xfc\x70\x96\x70\x82\x55\x4b\x55\x47\x00\x00\x00\x00\x55\x4a\x55\x51\x54\xfd\x55\x4c\x70\x8d\x55\x4e\x54\xfa\x00\x00\x54\xf9\x70\x7e\x00\x00\x70\x83\x55\x45\x70\x95\x70\x8c\x70\x84\x55\x49\x55\x46\x00\x00\x54\xfb\x55\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\xa8\x00\x00\x73\x98\x73\x99\x73\x9d\x00\x00\x73\xac\x73\xa9\x00\x00\x73\xa2\x73\xa1\x57\xb2\x73\xa5\x73\xb4\x73\x94\x00\x00\x73\xb5\x73\xa7\x73\xb9\x73\xad\x57\xb1", /* 6880 */ "\x73\xab\x57\xac\x57\xc1\x57\xb7\x00\x00\x57\xbb\x57\xba\x73\x95\x00\x00\x73\xb2\x73\xb8\x73\xb0\x73\xb7\x00\x00\x00\x00\x73\xa4\x73\x96\x73\xb6\x73\xa6\x57\xaf\x57\xbc\x00\x00\x73\xaf\x57\xb5\x00\x00\x00\x00\x00\x00\x73\xae\x73\x97\x57\xbd\x00\x00\x57\xbf\x73\xb1\x57\xc0\x57\xae\x73\x9e\x73\xb3\x00\x00\x00\x00\x57\xb4\x57\xbe\x73\xa0\x73\xaa\x73\x9b\x73\x9f\x57\xb9\x73\x9a\x57\xad\x57\xb6\x57\xb3\x73\xa3\x55\x43\x76\xe4\x57\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb8\x00\x00\x76\xe7\x76\xfd\x76\xf2\x59\xfa\x00\x00\x59\xf5\x76\xe1\x59\xf6\x76\xf1\x00\x00\x76\xea\x76\xf7\x59\xf2\x76\xcf\x76\xf9\x59\xe8\x76\xd7\x59\xeb\x59\xea\x00\x00\x59\xfb\x00\x00\x76\xd1\x76\xf3\x76\xf4\x59\xed\x59\xe9\x76\xdf\x00\x00\x59\xf4\x76\xda\x00\x00\x76\xf5\x59\xf0\x76\xed\x76\xfa\x76\xd4\x76\xd9\x76\xd3\x00\x00\x59\xef\x76\xe6\x7a\x86\x76\xd5\x59\xf3\x76\xde\x76\xf6\x59\xee\x76\xdb\x76\xd8\x76\xe9\x59\xf1\x59\xe7\x59\xfd\x76\xec\x76\xeb\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x76\xd0\x59\xec\x76\xf8\x76\xe0\x76\xe2\x00\x00\x76\xef\x76\xee\x76\xce\x59\xf7\x59\xf9\x76\xd6\x76\xdd\x76\xe5\x59\xf8\x76\xdc\x76\xe8\x76\xfb\x00\x00\x76\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x76\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x9a\x5c\x6c\x00\x00\x7a\x98\x7a\x83\x7a\x88\x7a\x81\x00\x00\x7a\x94\x7a\x72\x7a\x79\x00\x00\x7a\x92\x7a\x9c\x7a\x84\x00\x00\x7a\x76\x7a\x8a\x7a\x8f\x7a\x7a\x00\x00\x7a\x8c\x7a\x77\x00\x00\x00\x00\x7a\x7e\x7a\x7f\x5c\x6e\x7a\x93\x7a\x91\x00\x00\x7a\x73\x7a\x96\x00\x00\x7a\x97\x7a\x99\x5c\x72\x5c\x6a\x00\x00\x73\x9c\x7a\x7b\x7a\x8e\x7a\x7c\x5c\x67\x5c\x77\x7a\x95\x5c\x75\x5c\x71\x7a\x71\x5c\x69\x00\x00\x7a\x74\x5c\x76\x00\x00\x7a\x85\x7a\x70\x00\x00\x5c\x6f\x7a\x89\x7a\x78\x5c\x70\x7a\x82\x5c\x66\x59\xfc\x7a\x8b\x76\xe3\x7a\x75\x00\x00\x00\x00\x7a\x90\x5c\x6b\x7a\x8d\x5c\x68\x7a\x87\x5c\x73\x7a\x7d\x7a\x9b\x00\x00\x00\x00\x00\x00\x00\x00", /* 6980 */ "\x00\x00\x00\x00\x5c\x6d\x7b\x4e\x00\x00\x00\x00\x5c\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xf1\x7d\xef\x00\x00\x7e\x48\x7d\xed\x00\x00\x7e\x42\x5c\x65\x5e\xa7\x7d\xe9\x7e\x47\x00\x00\x7d\xee\x7d\xfc\x5e\xac\x5e\xa5\x00\x00\x7e\x45\x00\x00\x7d\xe7\x7e\x44\x00\x00\x5e\xb7\x7d\xf8\x7e\x4b\x5e\xb5\x7d\xf0\x5e\xa6\x7d\xf2\x7e\x43\x5e\xaf\x7d\xeb\x5e\xb3\x5e\xa9\x7d\xf4\x7d\xea\x7d\xe4\x00\x00\x7e\x41\x5e\xb0\x7e\x4a\x7d\xe5\x5e\xad\x00\x00\x7d\xfa\x00\x00\x5e\xae\x7d\xec\x7d\xf7\x7d\xf3\x7d\xf5\x00\x00\x5e\xa8\x7e\x49\x5e\xb6\x7d\xf6\x00\x00\x7e\x4c\x00\x00\x00\x00\x7d\xe6\x7d\xfb\x5e\xab\x5e\xb4\x5e\xb2\x7d\xe8\x7d\xfd\x5e\xb1\x00\x00\x00\x00\x5e\xaa\x7d\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xfd\x00\x00\x80\xf9\x80\xf5\x81\x4c\x81\x49\x60\xb5\x00\x00\x00\x00\x81\x50\x80\xfc\x60\xc0\x81\x46\x00\x00\x00\x00\x80\xf8\x81\x45\x60\xbd\x81\x59\x00\x00\x81\x56\x81\x48\x80\xf6\x00\x00\x00\x00\x81\x4d\x81\x4f\x60\xb9\x81\x43\x80\xfb", /* 6a00 */ "\x80\xf2\x60\xb6\x60\xbe\x00\x00\x81\x52\x60\xbf\x80\xf3\x81\x58\x81\x4b\x81\x51\x60\xbc\x00\x00\x00\x00\x81\x4e\x00\x00\x81\x55\x00\x00\x60\xc1\x00\x00\x60\xbb\x81\x47\x80\xf7\x81\x5a\x80\xf4\x81\x53\x60\xb8\x00\x00\x81\x41\x00\x00\x81\x42\x60\xb7\x60\xb4\x80\xfa\x60\xba\x00\x00\x60\xb3\x00\x00\x81\x54\x81\x57\x81\x44\x84\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x6d\x00\x00\x84\x69\x62\xa0\x00\x00\x00\x00\x62\x95\x62\x9a\x62\x96\x84\x77\x84\x83\x62\x94\x84\x6f\x84\x78\x81\x4a\x84\x79\x00\x00\x00\x00\x62\x9b\x00\x00\x84\x89\x62\x9f\x62\xa2\x84\x6b\x00\x00\x62\x9e\x00\x00\x84\x87\x84\x88\x84\x7d\x84\x7c\x84\x74\x00\x00\x00\x00\x84\x7e\x84\x86\x84\x85\x00\x00\x62\x99\x62\x97\x84\x76\x84\x73\x00\x00\x84\x70\x84\x84\x62\xa1\x84\x82\x62\x9d\x62\x9c\x00\x00\x84\x7b\x00\x00\x84\x6a\x84\x6c\x84\x6e\x84\x81\x84\x7a\x62\x98\x00\x00\x84\x71\x00\x00\x84\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf7\x87\x52", /* 6a80 */ "\x63\xf0\x87\x43\x00\x00\x87\x4e\x63\xf2\x87\x55\x00\x00\x87\x4a\x00\x00\x87\x45\x00\x00\x00\x00\x87\x56\x87\x41\x87\x4c\x00\x00\x63\xf9\x87\x51\x87\x57\x87\x4b\x63\xf1\x87\x4d\x87\x42\x63\xf8\x00\x00\x00\x00\x87\x54\x87\x47\x63\xf4\x00\x00\x87\x49\x87\x46\x63\xfa\x87\x48\x63\xf3\x63\xf6\x87\x50\x87\x44\x87\x53\x00\x00\x87\x4f\x00\x00\x00\x00\x00\x00\x65\x6e\x89\x95\x65\x73\x65\x74\x00\x00\x00\x00\x00\x00\x65\x6d\x89\x94\x00\x00\x89\x91\x89\x92\x65\x71\x89\x8c\x89\x90\x65\x70\x00\x00\x89\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x65\x72\x65\x6f\x00\x00\x89\x8b\x89\x8f\x89\x93\x00\x00\x00\x00\x00\x00\x8b\x7f\x8b\x7c\x8b\x86\x00\x00\x8b\x85\x8b\x83\x8b\x7d\x00\x00\x66\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x7e\x66\x5d\x63\xf5\x8b\x82\x66\x5c\x8b\x87\x8b\x81\x8b\x7b\x89\x8e\x00\x00\x00\x00\x00\x00\x66\x5b\x00\x00\x8b\x7a\x8d\x46\x00\x00\x8d\x45\x8b\x84\x66\xf2\x00\x00\x8d\x49\x8d\x4a\x8d\x44\x8d\x48\x00\x00\x8d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x81\x8d\x47\x67\x93\x67\x91\x8e\x7e\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x8e\x82\x00\x00\x8e\x7d\x8e\x7f\x67\x92\x00\x00\x00\x00\x00\x00\x8f\x75\x8f\x76\x67\xe1\x8f\x74\x00\x00\x00\x00\x00\x00\x90\x53\x68\x5b\x90\x51\x90\x52\x90\xbb\x00\x00\x00\x00\x68\xa2\x91\x45\x91\x43\x91\x44\x91\x46\x00\x00\x00\x00\x00\x00\x91\xab\x00\x00\x4c\xcd\x4e\x59\x00\x00\x51\x5c\x00\x00\x6c\x6b\x00\x00\x00\x00\x6e\x67\x00\x00\x00\x00\x00\x00\x70\x99\x70\x9b\x00\x00\x70\x9a\x00\x00\x70\x9c\x57\xc2\x73\xbb\x70\x9d\x00\x00\x73\xba\x73\xbc\x73\xbd\x77\x41\x5a\x42\x77\x42\x77\x44\x5a\x43\x5a\x41\x77\x43\x00\x00\x7a\xa2\x7a\xa0\x7a\x9f\x00\x00\x7a\x9e\x7a\x9d\x5c\x78\x7a\xa1\x5e\xb8\x7e\x4d\x7e\x4f\x5e\xb9\x7e\x4e\x60\xc3\x00\x00\x60\xc2\x81\x5b\x00\x00\x00\x00\x84\x8b\x84\x8a\x84\x8c\x00\x00\x00\x00\x62\xa3\x00\x00\x87\x58\x63\xfb\x00\x00\x89\x96\x65\x75\x8b\x88\x67\xe2\x4c\xce\x4d\x7f\x4e\x5a\x4f\x84\x51\x5d\x51\x5e\x00\x00\x00\x00\x52\xf0\x00\x00\x00\x00\x70\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x79\x00\x00\x00\x00\x00\x00\x81\xda\x62\xa4\x65\x76\x4c\xcf\x00\x00\x4e\x5b\x00\x00\x00\x00\x6c\x6d\x51\x5f", /* 6b80 */ "\x6c\x6c\x00\x00\x6e\x68\x52\xf1\x6e\x69\x00\x00\x52\xf2\x00\x00\x70\xa0\x55\x53\x55\x52\x00\x00\x73\xc2\x73\xc0\x73\xc1\x73\xbf\x00\x00\x73\xbe\x00\x00\x00\x00\x77\x45\x77\x48\x5a\x45\x77\x46\x5a\x44\x77\x47\x00\x00\x7a\xa3\x00\x00\x00\x00\x7e\x50\x7e\x51\x7e\x52\x00\x00\x81\x5e\x81\x5d\x60\xc4\x81\x5c\x81\x5f\x84\x8d\x00\x00\x00\x00\x84\x8e\x84\x8f\x00\x00\x87\x59\x63\xfc\x65\x77\x8b\x89\x00\x00\x67\x94\x69\x60\x00\x00\x52\xf3\x6e\x6a\x55\x54\x00\x00\x00\x00\x57\xc3\x00\x00\x5a\x46\x77\x49\x00\x00\x5c\x7b\x5c\x7a\x00\x00\x00\x00\x7e\x53\x7e\x54\x60\xc5\x60\xc6\x84\x91\x84\x90\x89\x97\x90\x54\x4c\xd0\x69\x61\x4d\x81\x00\x00\x4f\x85\x6a\xc8\x00\x00\x52\xf4\x5c\x7c\x4c\xd1\x00\x00\x6e\x6b\x52\xf5\x6e\x6c\x00\x00\x63\xfd\x4c\xd2\x00\x00\x00\x00\x6c\x6e\x00\x00\x6e\x6d\x00\x00\x70\xa5\x70\xa4\x70\xa2\x00\x00\x70\xa1\x70\xa6\x70\xa3\x00\x00\x00\x00\x57\xc4\x57\xc5\x00\x00\x00\x00\x5a\x47\x77\x4a\x00\x00\x77\x4b\x77\x4c\x00\x00\x00\x00\x00\x00\x7a\xa8\x7a\xa9\x7a\xa7\x00\x00\x7a\xa5\x7a\xa6\x5c\x7d\x7e\x55\x81\x62", /* 6c00 */ "\x81\x61\x81\x60\x81\x63\x84\x93\x84\x92\x62\xa5\x84\x94\x00\x00\x64\x41\x87\x5a\x00\x00\x89\x98\x8b\x8a\x8f\x77\x00\x00\x4c\xd3\x4d\x83\x4d\x82\x00\x00\x51\x60\x69\x62\x69\x7f\x4e\x5c\x00\x00\x69\xd7\x6a\xc9\x6a\xca\x51\x61\x00\x00\x6c\x6f\x00\x00\x52\xf6\x6e\x6e\x6e\x6f\x00\x00\x55\x55\x55\x59\x70\xa7\x55\x58\x55\x56\x55\x57\x00\x00\x73\xc3\x57\xc6\x5a\x4a\x00\x00\x5a\x48\x5a\x49\x77\x4d\x00\x00\x00\x00\x5e\xba\x4c\xd4\x00\x00\x69\x81\x00\x00\x4d\x84\x00\x00\x00\x00\x69\x84\x00\x00\x00\x00\x4d\x87\x69\x83\x4d\x86\x4d\x85\x4f\x86\x69\x82\x00\x00\x00\x00\x69\xd8\x00\x00\x00\x00\x00\x00\x69\xdc\x69\xde\x69\xdf\x4e\x66\x4e\x67\x69\xdb\x4e\x62\x00\x00\x69\xd9\x00\x00\x69\xdd\x4e\x63\x00\x00\x4e\x5e\x00\x00\x4e\x5f\x00\x00\x4e\x65\x69\xda\x4e\x5d\x4f\x87\x4e\x60\x4e\x61\x4e\x64\x00\x00\x00\x00\x00\x00\x6a\xdb\x6a\xd9\x6a\xcc\x4f\x93\x6a\xd3\x4f\x8e\x6a\xcd\x00\x00\x6a\xd5\x00\x00\x6a\xd2\x4f\x91\x6a\xd1\x4f\x98\x6a\xda\x4f\x9a\x00\x00\x4f\x9c\x00\x00\x6a\xcb\x00\x00\x4f\x8f\x6a\xdc\x00\x00\x4f\x96\x4f\x99\x00\x00", /* 6c80 */ "\x6c\x87\x4f\x89\x4f\xa0\x4f\x97\x6a\xce\x4f\x8c\x4f\x9b\x6a\xd6\x4f\x8a\x4f\x8b\x6c\x85\x6a\xcf\x4f\x92\x4f\x9d\x6a\xdd\x6a\xd0\x4f\x90\x00\x00\x4f\x95\x6c\x70\x4f\x9e\x6a\xd7\x4f\x94\x00\x00\x4f\x9f\x4f\x88\x6a\xd4\x4f\x8d\x6a\xd8\x6c\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6d\x51\x7d\x6c\x77\x51\x74\x00\x00\x6c\x8d\x51\x65\x00\x00\x51\x68\x6c\x84\x00\x00\x6c\x75\x6c\x79\x51\x70\x51\x72\x6c\x7c\x51\x79\x51\x6b\x51\x69\x51\x6a\x51\x78\x6c\x89\x51\x73\x6c\x7b\x6c\x7d\x51\x71\x51\x76\x6c\x7e\x6c\x8c\x00\x00\x52\xf7\x51\x7c\x00\x00\x51\x66\x6c\x8b\x00\x00\x6c\x8f\x6c\x7a\x6c\x91\x6c\x82\x51\x6f\x6c\x76\x51\x6e\x51\x81\x51\x75\x00\x00\x6c\x74\x6e\x78\x51\x7b\x51\x7f\x6c\x83\x6c\x88\x00\x00\x51\x82\x51\x7a\x51\x6c\x51\x62\x00\x00\x51\x67\x00\x00\x6c\x78\x51\x63\x6c\x90\x00\x00\x6c\x72\x6c\x71\x6c\x7f\x6c\x73\x51\x7e\x55\x5a\x51\x77\x6c\x81\x51\x64\x00\x00\x53\x49\x00\x00\x00\x00\x00\x00\x6c\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x6e\x7f\x6e\x83\x00\x00\x6e\x86\x6e\x7a\x00\x00\x00\x00\x6e\x89\x6e\x8c\x6e\x8e\x6e\x77\x52\xf8\x52\xfd\x70\xac\x53\x50\x6e\x87\x6e\x8f\x6e\x7e\x6e\x76\x00\x00\x00\x00\x00\x00\x70\xc7\x53\x43\x6e\x84\x6e\x7b\x6e\x7d\x53\x48\x00\x00\x6e\x81\x53\x42\x6e\x73\x6e\x8a\x00\x00\x6e\x8d\x00\x00\x00\x00\x52\xfc\x00\x00\x53\x4b\x6e\x70\x53\x4d\x52\xfa\x53\x51\x6e\x8b\x6e\x72\x53\x4e\x70\xc1\x6c\x8a\x53\x41\x52\xf9\x6e\x79\x6e\x71\x53\x4f\x53\x47\x6e\x85\x53\x4c\x53\x4a\x6e\x7c\x53\x44\x6e\x74\x53\x45\x53\x46\x6e\x75\x6e\x88\x52\xfb\x6e\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xaf\x55\x62\x55\x67\x00\x00\x00\x00\x00\x00\x70\xb8\x70\xbe\x70\xba\x70\xad\x70\xb0\x70\xa9\x70\xaa\x55\x6e\x55\x5f\x70\xb9\x70\xc2\x55\x69\x55\x5b\x00\x00\x55\x64\x70\xb1\x55\x66\x70\xb2\x70\xbc\x00\x00\x00\x00\x00\x00\x55\x68\x70\xcb\x70\xab\x55\x61\x55\x60\x55\x6c\x70\xa8\x70\xc9\x70\xbd\x70\xca\x70\xc4\x70\xb6", /* 6d80 */ "\x70\xc5\x00\x00\x70\xbf\x70\xc8\x70\xc6\x55\x6d\x70\xb7\x55\x5e\x55\x5d\x55\x65\x55\x6b\x70\xc3\x55\x6a\x70\xb4\x57\xc7\x00\x00\x70\xcc\x70\xb3\x70\xae\x55\x63\x55\x6f\x55\x5c\x00\x00\x70\xbb\x70\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe9\x73\xc5\x73\xc9\x00\x00\x57\xd6\x57\xd4\x00\x00\x00\x00\x57\xcb\x73\xc7\x73\xc6\x57\xdf\x00\x00\x73\xcc\x57\xd9\x00\x00\x73\xde\x73\xea\x57\xc8\x73\xdb\x73\xd4\x57\xeb\x73\xc4\x00\x00\x73\xe0\x00\x00\x57\xe8\x57\xdc\x57\xe7\x57\xd2\x73\xd0\x73\xe2\x73\xda\x57\xd3\x57\xcd\x73\xe8\x00\x00\x73\xe1\x73\xe3\x57\xd5\x57\xdd\x73\xe5\x73\xce\x73\xdf\x73\xd3\x73\xe7\x57\xe2\x57\xca\x57\xe0\x73\xd8\x73\xd6\x73\xd7\x57\xd7\x73\xd2\x73\xd1\x57\xcc\x73\xcb\x73\xe9\x57\xce\x73\xd5\x57\xec\x00\x00\x57\xe6\x73\xca\x57\xe3\x57\xe1\x57\xea\x73\xdc\x57\xe5\x70\xb5\x73\xdd\x57\xe4\x73\xe4\x57\xc9\x73\xd9\x57\xdb\x73\xcd\x57\xda\x00\x00\x57\xd8\x57\xd0\x57\xcf\x77\x4e\x73\xe6\x00\x00\x00\x00", /* 6e00 */ "\x73\xcf\x00\x00\x00\x00\x77\x63\x00\x00\x57\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x67\x57\xde\x5a\x55\x77\x5d\x5a\x63\x00\x00\x77\x51\x5a\x52\x5a\x4e\x77\x6f\x5a\x54\x5a\x58\x5a\x53\x5a\x5c\x77\x73\x77\x6a\x00\x00\x00\x00\x77\x58\x5a\x61\x5a\x5b\x77\x64\x5a\x4b\x77\x70\x77\x69\x5a\x4f\x77\x5e\x5a\x5e\x77\x7b\x77\x7c\x00\x00\x5a\x4c\x77\x6e\x5a\x60\x77\x62\x77\x54\x77\x55\x5a\x64\x77\x59\x77\x60\x77\x5a\x00\x00\x5a\x62\x5a\x6a\x77\x56\x77\x4f\x77\x50\x00\x00\x77\x52\x5a\x51\x77\x5f\x00\x00\x5a\x5f\x5a\x68\x00\x00\x00\x00\x77\x61\x77\x79\x77\x71\x5a\x4d\x77\x77\x5a\x59\x00\x00\x5a\x57\x00\x00\x77\x7d\x5a\x56\x77\x67\x77\x5b\x77\x65\x5a\x6d\x77\x6b\x77\x68\x77\x57\x5a\x69\x77\x75\x77\x72\x77\x7a\x5a\x50\x77\x66\x5a\x6c\x00\x00\x77\x6d\x00\x00\x00\x00\x5a\x5a\x5a\x5d\x00\x00\x77\x6c\x5a\x6b\x77\x5c\x73\xc8\x00\x00\x00\x00\x77\x76\x77\x74\x77\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6e80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x53\x5a\x66\x00\x00\x00\x00\x00\x00\x7a\xc8\x7a\xc7\x7a\xad\x5c\x84\x00\x00\x7a\xc6\x7a\xb0\x7a\xb1\x00\x00\x5c\x8e\x7a\xcf\x5c\x89\x7a\xc5\x00\x00\x7a\xaa\x5c\x8f\x5c\x85\x7a\xb9\x7a\xaf\x7a\xb2\x7a\xca\x5c\x7e\x7a\xd1\x7a\xc9\x5c\x88\x7a\xbe\x5c\x93\x00\x00\x00\x00\x5c\x92\x5c\x8c\x00\x00\x00\x00\x7a\xd0\x5c\x7f\x7a\xbc\x7a\xb3\x7a\xc0\x7a\xcc\x5c\x94\x00\x00\x5c\x82\x7a\xbb\x91\xc7\x7a\xb4\x5c\x8b\x00\x00\x5c\x8a\x7a\xb7\x7a\xc1\x7a\xcb\x7a\xae\x7a\xb8\x5c\x83\x7a\xc2\x5c\x90\x5c\x87\x7a\xb5\x5c\x86\x7a\xac\x7a\xba\x7a\xce\x5a\x65\x5e\xd6\x7a\xbd\x7e\x56\x7a\xbf\x7a\xcd\x5c\x8d\x7a\xb6\x5c\x81\x5c\x91\x60\xd8\x7a\xab\x00\x00\x7a\xc4\x00\x00\x00\x00\x00\x00\x7a\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x72\x5e\xd3\x7e\x67\x7e\x6c\x5e\xc8\x00\x00\x7e\x58\x5e\xd5\x00\x00\x5e\xbf\x7e\x57\x7e\x78\x5e\xd7\x7e\x5b\x7e\x6b\x00\x00\x7e\x5d\x7e\x7b\x7e\x77\x5e\xbd\x5e\xc7", /* 6f00 */ "\x81\x7d\x5e\xd4\x5e\xc5\x7e\x59\x00\x00\x7e\x76\x5e\xc9\x7e\x73\x7e\x81\x7e\x5f\x7e\x68\x00\x00\x00\x00\x7e\x7e\x7e\x74\x5e\xc4\x00\x00\x00\x00\x7e\x66\x5e\xbe\x5e\xbc\x5e\xce\x00\x00\x00\x00\x7e\x64\x7e\x61\x7e\x62\x00\x00\x7e\x7a\x00\x00\x7e\x7f\x7e\x7d\x5e\xc2\x7e\x82\x5e\xc6\x5e\xcd\x00\x00\x7e\x5a\x81\x65\x7e\x63\x00\x00\x5e\xc0\x5e\xd2\x5e\xcf\x5e\xc3\x7e\x6d\x7e\x5e\x5e\xd0\x7e\x6f\x5e\xca\x5e\xcc\x5e\xbb\x00\x00\x7e\x71\x7e\x69\x7e\x5c\x5e\xcb\x7e\x79\x7e\x7c\x7e\x65\x7e\x70\x00\x00\x5e\xc1\x60\xc7\x7e\x6e\x81\x64\x00\x00\x7e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x60\x81\x6e\x81\x78\x60\xca\x81\x77\x81\x84\x60\xcc\x81\x75\x00\x00\x81\x79\x60\xd7\x00\x00\x81\x70\x60\xcf\x00\x00\x81\x7c\x84\x9c\x60\xdb\x60\xda\x81\x7e\x81\x6d\x81\x89\x60\xd5\x00\x00\x60\xcb\x81\x82\x00\x00\x81\x86\x81\x8b\x81\x7f\x81\x73\x60\xce\x60\xd1\x60\xd9\x60\xd4\x00\x00\x81\x76\x7e\x6a\x00\x00\x00\x00\x81\x72\x81\x8a\x60\xd0\x00\x00\x60\xd3\x81\x8c\x60\xc8\x81\x81\x81\x66\x81\x87", /* 6f80 */ "\x64\x4a\x00\x00\x81\x74\x00\x00\x60\xc9\x81\x6f\x60\xcd\x81\x67\x5e\xd1\x81\x6b\x00\x00\x81\x85\x81\x6c\x81\x6a\x60\xd2\x00\x00\x81\x83\x00\x00\x81\x69\x81\x7b\x81\x7a\x81\x88\x81\x71\x60\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x9f\x00\x00\x62\xb2\x62\xa8\x84\xab\x84\x97\x62\xaa\x84\xa3\x62\xb1\x62\xac\x84\xa1\x87\x5c\x84\xa7\x84\xad\x84\xa6\x84\x95\x84\xa4\x84\xaf\x84\xb1\x62\xa7\x84\xb0\x62\xad\x62\xb3\x00\x00\x62\xb0\x00\x00\x84\xaa\x62\xaf\x84\xa5\x00\x00\x84\x99\x84\x9e\x00\x00\x84\xa9\x62\xae\x62\xab\x62\xa6\x62\xa9\x84\x9d\x00\x00\x81\x68\x84\x98\x84\x9b\x84\xac\x84\xa0\x84\x96\x87\x5b\x84\xae\x84\x9a\x84\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x87\x5e\x64\x4e\x00\x00\x00\x00\x64\x42\x00\x00\x00\x00\x64\x46\x87\x60\x87\x66\x87\x64\x64\x44\x64\x45\x64\x4c\x87\x67\x87\x5f\x64\x47\x00\x00\x87\x63\x87\x62\x87\x68\x64\x4d\x00\x00\x64\x48\x64\x4b\x87\x61\x64\x4f\x64\x49\x64\x50\x64\x43\x87\x65\x00\x00\x87\x5d\x00\x00\x00\x00\x89\xa5\x00\x00\x00\x00\x65\x7c\x89\xa2\x89\xa4\x00\x00\x65\x7a\x89\xa0", /* 7000 */ "\x89\xa1\x89\x9c\x00\x00\x00\x00\x84\xa2\x89\x9d\x65\x7b\x89\x99\x00\x00\x65\x78\x89\xa6\x65\x79\x89\x9a\x89\x9b\x89\x9f\x65\x7e\x00\x00\x65\x7d\x00\x00\x00\x00\x89\x9e\x66\x64\x8b\x8e\x8b\x94\x66\x65\x8b\x8b\x66\x62\x66\x5f\x8b\x96\x66\x63\x00\x00\x66\x60\x8b\x8d\x8b\x90\x8b\x91\x8b\x92\x8b\x95\x00\x00\x89\xa3\x8b\x8c\x66\x61\x8b\x93\x8b\x97\x8b\x8f\x00\x00\x00\x00\x00\x00\x8d\x4d\x66\xf4\x8d\x50\x66\xf5\x8d\x58\x8d\x4f\x8d\x4c\x00\x00\x8d\x4e\x8d\x52\x8d\x55\x8d\x54\x8d\x57\x8d\x4b\x00\x00\x66\xf3\x8d\x53\x8d\x56\x8d\x59\x8d\x51\x8e\x83\x8e\x84\x8e\x88\x8e\x89\x00\x00\x8e\x86\x8e\x87\x8e\x85\x00\x00\x67\x95\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe3\x8f\x7b\x00\x00\x00\x00\x8f\x78\x8f\x79\x8f\x7a\x67\xe4\x00\x00\x90\x56\x90\x55\x00\x00\x90\xbe\x68\x81\x90\xbc\x90\xbf\x90\xbd\x91\x47\x68\xa3\x68\xb1\x91\x93\x91\x7d\x00\x00\x91\x92\x91\xc0\x91\xc1\x4c\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x68\x69\xe0\x00\x00\x00\x00\x6a\xde\x00\x00\x4f\xa1\x00\x00\x4f\xa4\x00\x00\x6a\xdf\x00\x00\x4f\xa2\x4f\xa3\x00\x00\x00\x00", /* 7080 */ "\x00\x00\x00\x00\x6c\x9a\x6c\x9c\x6c\x97\x6c\x94\x6c\x96\x00\x00\x00\x00\x00\x00\x51\x86\x00\x00\x00\x00\x00\x00\x51\x84\x00\x00\x00\x00\x6c\x98\x51\x85\x6c\x95\x6c\x92\x51\x83\x6c\x99\x00\x00\x6c\x93\x51\x87\x6c\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x91\x00\x00\x6e\x95\x00\x00\x00\x00\x53\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x98\x00\x00\x53\x52\x53\x55\x53\x57\x53\x59\x53\x56\x6e\x94\x6e\x93\x00\x00\x53\x54\x6e\x96\x6e\x97\x00\x00\x6e\x90\x53\x58\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x6e\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xda\x70\xdb\x70\xdc\x55\x74\x00\x00\x55\x70\x70\xd1\x00\x00\x70\xd9\x70\xde\x55\x75\x00\x00\x70\xcf\x70\xd5\x70\xce\x70\xd8\x00\x00\x00\x00\x70\xd4\x55\x71\x55\x73\x70\xdd\x00\x00\x70\xcd\x70\xd0\x70\xd6\x00\x00\x70\xd7\x70\xdf\x70\xd3\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf1\x73\xf1\x00\x00\x00\x00\x73\xf3\x73\xef\x00\x00\x73\xfb\x73\xed\x73\xfa\x57\xed\x73\xeb\x77\x82\x73\xf5\x57\xf0\x00\x00\x73\xf6", /* 7100 */ "\x73\xf9\x00\x00\x73\xfd\x00\x00\x73\xf2\x00\x00\x73\xf7\x00\x00\x00\x00\x57\xee\x57\xef\x73\xfc\x73\xf0\x73\xec\x74\x41\x00\x00\x73\xf4\x00\x00\x00\x00\x73\xf8\x00\x00\x00\x00\x00\x00\x73\xee\x00\x00\x5a\x6e\x5a\x6f\x77\x8c\x5a\x75\x00\x00\x77\x7f\x77\x89\x77\x7e\x5a\x72\x77\x87\x77\x85\x00\x00\x77\x86\x5a\x70\x00\x00\x77\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x83\x77\x81\x5a\x71\x77\x84\x77\x88\x00\x00\x00\x00\x00\x00\x5a\x73\x00\x00\x00\x00\x00\x00\x77\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xd7\x7a\xde\x7a\xe0\x7a\xe6\x00\x00\x5c\xa1\x7a\xd2\x00\x00\x5c\x99\x00\x00\x7a\xe1\x5c\x9e\x7a\xe7\x5c\x95\x00\x00\x7a\xe4\x00\x00\x7a\xd4\x7a\xe5\x7a\xd3\x00\x00\x5c\xa3\x00\x00\x7a\xdf\x5c\x96\x7a\xe8\x00\x00\x5c\x9b\x7a\xd8\x5c\xa0\x7a\xe3\x7a\xd6\x7a\xdd\x7a\xd9\x7a\xd5\x5c\x98\x5c\x9f\x5c\x9d\x5c\x9a\x5c\xa2\x5c\x97\x7a\xdc\x00\x00\x5c\x9c\x00\x00\x5a\x74\x00\x00\x7a\xe2\x00\x00\x7a\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xdb\x00\x00\x00\x00\x7e\x8a\x00\x00\x5e\xda\x00\x00\x00\x00", /* 7180 */ "\x7e\x86\x7e\x8c\x7e\x88\x00\x00\x5e\xdc\x7e\x87\x7e\x8b\x7e\x83\x00\x00\x7e\x85\x5e\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x89\x7e\x84\x00\x00\x5e\xdd\x00\x00\x5e\xd8\x00\x00\x00\x00\x7e\x8d\x00\x00\x5e\xd9\x81\x92\x81\x8f\x81\x9b\x81\x95\x81\x97\x60\xdc\x81\x91\x81\x99\x00\x00\x00\x00\x81\x98\x81\x96\x00\x00\x81\x9c\x60\xdf\x81\x93\x81\x9a\x00\x00\x60\xdd\x00\x00\x00\x00\x81\x8e\x81\x90\x60\xde\x81\x8d\x81\x9d\x00\x00\x81\x94\x00\x00\x00\x00\x84\xb5\x62\xba\x00\x00\x00\x00\x84\xc0\x84\xbe\x62\xb4\x84\xb4\x84\xb7\x84\xb8\x84\xb3\x62\xbe\x62\xbf\x84\xb2\x84\xc1\x84\xbc\x62\xb8\x62\xb5\x84\xbb\x84\xb9\x00\x00\x00\x00\x62\xbb\x84\xbd\x62\xb6\x00\x00\x62\xb7\x00\x00\x84\xba\x62\xb9\x84\xb6\x00\x00\x84\xbf\x62\xbc\x84\xc2\x84\xc3\x62\xbd\x00\x00\x00\x00\x64\x52\x64\x59\x87\x69\x87\x6f\x00\x00\x87\x6d\x64\x55\x64\x54\x64\x51\x87\x6b\x00\x00\x00\x00\x00\x00\x64\x57\x64\x56\x64\x53\x00\x00\x87\x6e\x87\x6a\x87\x6c\x00\x00\x64\x58\x00\x00\x00\x00\x00\x00\x65\x83\x89\xa9\x00\x00\x65\x7f\x65\x81\x89\xab\x65\x82\x89\xa8", /* 7200 */ "\x00\x00\x89\xa7\x8b\x9b\x89\xaa\x00\x00\x8b\x9c\x66\x66\x8b\x9a\x00\x00\x00\x00\x8b\x99\x00\x00\x8b\x98\x66\x67\x00\x00\x00\x00\x66\xf6\x00\x00\x00\x00\x8d\x5a\x8d\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x8c\x8e\x8b\x67\x96\x00\x00\x8e\x8a\x8f\x7c\x8f\x7d\x00\x00\x00\x00\x90\x57\x90\xc0\x00\x00\x00\x00\x91\x48\x91\xac\x68\xc5\x91\xb6\x4c\xd6\x00\x00\x51\x88\x51\x89\x00\x00\x00\x00\x53\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x64\x5a\x4c\xd7\x00\x00\x51\x8a\x55\x76\x5c\xa4\x4c\xd8\x00\x00\x57\xf2\x5e\xde\x69\x63\x00\x00\x6e\x99\x70\xe0\x00\x00\x7e\x8e\x00\x00\x64\x5b\x4c\xd9\x51\x8b\x6e\x9a\x6e\x9b\x77\x8d\x5a\x76\x00\x00\x00\x00\x7a\xe9\x00\x00\x00\x00\x5c\xa5\x7e\x8f\x00\x00\x00\x00\x60\xe0\x00\x00\x66\x68\x4c\xda\x77\x8e\x4c\xdb\x00\x00\x4e\x6a\x69\xe1\x4e\x69\x4f\xa7\x4f\xa6\x4f\xa5\x6a\xe0\x00\x00\x00\x00\x00\x00\x51\x8c\x00\x00\x51\x8d\x6c\x9d\x00\x00\x6e\x9c\x00\x00\x6e\x9f\x53\x5d\x6e\x9d\x00\x00\x53\x5c\x6e\x9e\x53\x5e\x00\x00\x70\xe3\x70\xe2\x70\xe1\x55\x77\x00\x00\x74\x43\x74\x44\x57\xf3\x74\x42\x74\x45", /* 7280 */ "\x5a\x78\x57\xf4\x00\x00\x00\x00\x5a\x77\x77\x92\x77\x91\x00\x00\x77\x8f\x77\x90\x00\x00\x77\x93\x7a\xeb\x7a\xea\x7a\xee\x00\x00\x7a\xed\x7a\xec\x5e\xdf\x7e\x92\x00\x00\x7e\x91\x5e\xe0\x7e\x90\x81\x9e\x00\x00\x81\x9f\x60\xe1\x00\x00\x84\xc4\x84\xc5\x00\x00\x00\x00\x8b\xa1\x66\x69\x8b\xa0\x8b\x9f\x8b\x9d\x8b\x9e\x67\x97\x8d\x5c\x8f\x7e\x91\x49\x00\x00\x4c\xdc\x00\x00\x69\x85\x4d\x88\x69\x86\x00\x00\x00\x00\x00\x00\x69\xe2\x69\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe6\x00\x00\x00\x00\x6a\xe2\x00\x00\x6a\xe1\x51\x8e\x6a\xe5\x4f\xa9\x6a\xe3\x4f\xa8\x6a\xe7\x6a\xe4\x00\x00\x00\x00\x6c\xa1\x6e\xa0\x6c\x9f\x6c\xa6\x00\x00\x51\x8f\x00\x00\x51\x92\x6c\xa7\x6c\xa3\x00\x00\x6c\xa4\x00\x00\x6c\x9e\x51\x91\x6c\xa0\x51\x90\x6c\xa5\x00\x00\x6c\xa2\x00\x00\x00\x00\x6e\xa4\x53\x60\x53\x61\x00\x00\x6e\xa7\x6e\xa1\x00\x00\x6e\xa6\x00\x00\x6e\xa2\x53\x5f\x6e\xa5\x6e\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xe9\x70\xe6\x00\x00\x70\xe8\x55\x7c\x55\x7b\x55\x79\x70\xe5\x70\xea\x55\x78\x55\x7a\x70\xe7\x74\x4d", /* 7300 */ "\x70\xe4\x70\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x48\x74\x4c\x00\x00\x74\x4b\x77\x95\x77\xa0\x00\x00\x00\x00\x74\x4e\x00\x00\x74\x49\x77\x94\x57\xf8\x00\x00\x00\x00\x57\xf7\x74\x47\x74\x4a\x57\xf9\x00\x00\x57\xf6\x57\xf5\x74\x46\x74\x4f\x00\x00\x00\x00\x00\x00\x77\x97\x77\x9e\x00\x00\x5a\x7a\x77\x9d\x77\x9a\x00\x00\x5a\x7c\x00\x00\x00\x00\x00\x00\x77\x9c\x00\x00\x00\x00\x77\x96\x77\x98\x77\x9b\x77\x99\x5a\x7b\x77\x9f\x5a\x79\x5c\xa6\x00\x00\x00\x00\x7a\xf2\x7a\xf1\x7a\xef\x00\x00\x5c\xa9\x5c\xa8\x7a\xf3\x00\x00\x7a\xf0\x7e\x93\x5e\xe1\x5c\xa7\x00\x00\x00\x00\x00\x00\x7a\xf5\x7a\xf4\x00\x00\x7e\x96\x7e\x94\x60\xe2\x00\x00\x5e\xe2\x7e\x95\x81\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe3\x81\xa0\x81\xa9\x81\xa8\x81\xa6\x00\x00\x81\xa5\x81\xa2\x81\xa3\x81\xa4\x81\xa7\x81\xaa\x00\x00\x00\x00\x84\xca\x84\xc7\x84\xc8\x62\xc0\x84\xc6\x84\xcc\x84\xcb\x84\xc9\x00\x00\x87\x71\x87\x72\x64\x5c\x00\x00\x64\x5d\x87\x70\x00\x00\x65\x85\x89\xac\x65\x84\x66\x6a\x00\x00\x66\x6b\x66\xf7\x8d\x5e\x8d\x5d\x8e\x8d\x8f\x7f", /* 7380 */ "\x67\xe5\x90\x59\x90\x58\x90\x5a\x4d\x89\x6e\xa8\x55\x7d\x57\xfa\x74\x50\x4d\x8a\x69\x87\x4c\xdd\x00\x00\x00\x00\x69\xe4\x00\x00\x00\x00\x00\x00\x6a\xec\x6a\xea\x6a\xeb\x6a\xe8\x4f\xaa\x6a\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xaf\x00\x00\x51\x95\x6c\xad\x6c\xa9\x6c\xac\x00\x00\x6c\xa8\x51\x97\x6c\xab\x00\x00\x51\x94\x51\x93\x00\x00\x51\x96\x6c\xae\x6c\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x53\x65\x53\x68\x6e\xb0\x6e\xaf\x6e\xae\x53\x62\x6e\xb7\x6e\xad\x00\x00\x53\x64\x70\xf0\x00\x00\x6e\xb4\x6e\xb2\x53\x67\x00\x00\x6e\xaa\x6e\xb5\x00\x00\x6e\xac\x6e\xb6\x6e\xb3\x6e\xab\x00\x00\x53\x63\x6e\xb8\x6e\xa9\x53\x66\x00\x00\x00\x00\x00\x00\x00\x00\x70\xf5\x70\xec\x70\xf7\x00\x00\x70\xef\x70\xfa\x70\xfb\x70\xed\x70\xf9\x70\xf6\x70\xf4\x70\xf8\x55\x84\x00\x00\x55\x82\x00\x00\x00\x00\x70\xf2\x00\x00\x70\xee\x00\x00\x70\xf1\x70\xfc\x70\xf3\x55\x83\x6e\xb1\x00\x00\x55\x7e\x55\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x5e\x74\x53\x74\x51\x00\x00\x74\x52\x00\x00\x74\x59\x00\x00\x74\x5a\x74\x56\x58\x42\x74\x5b", /* 7400 */ "\x74\x58\x74\x55\x00\x00\x57\xfd\x74\x54\x57\xfb\x58\x41\x74\x57\x74\x5f\x55\x7f\x57\xfc\x74\x5d\x74\x5c\x58\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xa5\x00\x00\x00\x00\x00\x00\x77\xa6\x5a\x87\x00\x00\x77\xac\x00\x00\x00\x00\x77\xae\x77\xa7\x5a\x81\x77\xab\x77\xaa\x5a\x82\x5a\x88\x00\x00\x5a\x89\x77\xad\x5a\x7e\x77\xa4\x77\xa2\x77\xa8\x77\xa1\x5a\x86\x77\xa3\x77\xa9\x77\xaf\x5a\x7f\x5a\x85\x5a\x83\x5a\x84\x00\x00\x00\x00\x00\x00\x5a\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb0\x7a\xfc\x5c\xaf\x7b\x43\x00\x00\x7a\xf6\x00\x00\x7b\x44\x00\x00\x00\x00\x00\x00\x7a\xf7\x7a\xf8\x00\x00\x7b\x45\x7b\x42\x7a\xfd\x7b\x41\x7a\xfa\x7a\xf9\x00\x00\x7b\x46\x5c\xac\x00\x00\x7a\xfb\x00\x00\x5c\xb1\x5c\xab\x5c\xb2\x5c\xb3\x00\x00\x5c\xae\x5c\xad\x00\x00\x00\x00\x7e\x97\x5e\xe4\x5e\xe3\x00\x00\x00\x00\x7e\x9c\x00\x00\x60\xe4\x5e\xe5\x00\x00\x00\x00\x5e\xe7\x7e\x9d\x5c\xaa\x5e\xe6\x7e\x99\x7e\x9b\x7e\x98\x00\x00\x7e\x9a\x00\x00\x00\x00\x00\x00\x81\xb4\x00\x00\x00\x00\x81\xb3\x81\xb0\x60\xe7\x84\xcd", /* 7480 */ "\x60\xe8\x81\xaf\x00\x00\x60\xe6\x00\x00\x81\xb1\x81\xae\x81\xab\x81\xb2\x81\xac\x81\xad\x60\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x87\x76\x00\x00\x84\xd1\x00\x00\x84\xd0\x84\xd2\x00\x00\x87\x73\x62\xc3\x00\x00\x84\xce\x00\x00\x62\xc1\x00\x00\x62\xc5\x62\xc4\x84\xcf\x84\xd3\x00\x00\x62\xc2\x00\x00\x87\x7a\x64\x60\x65\x86\x64\x61\x64\x5e\x87\x77\x87\x75\x00\x00\x87\x78\x00\x00\x87\x7b\x64\x5f\x87\x79\x87\x74\x00\x00\x00\x00\x89\xaf\x89\xb2\x8b\xa4\x89\xad\x00\x00\x8d\x5f\x89\xb3\x00\x00\x66\x6c\x89\xb1\x65\x87\x89\xae\x89\xb0\x89\xb4\x8b\xa5\x00\x00\x8b\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x66\x6d\x8b\xa2\x00\x00\x00\x00\x00\x00\x66\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x67\x99\x8f\x82\x67\x98\x8f\x84\x8f\x81\x8f\x83\x68\x5c\x90\xc1\x4d\x8b\x6c\xb0\x70\xfd\x71\x41\x58\x44\x7b\x47\x62\xc6\x66\x6e\x67\xe6\x90\xc2\x4d\x8c\x00\x00\x6c\xb1\x46\xf8\x00\x00\x00\x00\x6e\xb9\x00\x00\x6e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x42\x71\x43\x58\x45\x58\x46\x00\x00\x00\x00\x00\x00\x77\xb0\x00\x00\x7b\x4a\x7b\x49\x7b\x48", /* 7500 */ "\x7e\x9e\x00\x00\x7e\x9f\x7e\xa0\x5e\xe8\x00\x00\x00\x00\x81\xb6\x81\xb5\x00\x00\x00\x00\x84\xd4\x62\xc7\x62\xc8\x00\x00\x87\x7f\x87\x7c\x87\x7d\x87\x7e\x89\xb6\x89\xb5\x65\x88\x8b\xa6\x8e\x8e\x4d\x8d\x00\x00\x53\x69\x00\x00\x58\x47\x7b\x4b\x00\x00\x4d\x8e\x00\x00\x71\x44\x58\x48\x00\x00\x00\x00\x5a\x8a\x5a\x8b\x00\x00\x4d\x8f\x4d\x90\x69\xe5\x4f\xac\x4f\xab\x53\x6a\x6e\xbb\x77\xb1\x4d\x91\x4d\x92\x4d\x93\x4d\x94\x00\x00\x00\x00\x00\x00\x4f\xad\x4f\xae\x6a\xee\x6a\xed\x00\x00\x00\x00\x51\x98\x6c\xb4\x6c\xb2\x6c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xbc\x6e\xbd\x00\x00\x00\x00\x53\x6e\x53\x6c\x00\x00\x53\x6d\x53\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x55\x85\x00\x00\x00\x00\x00\x00\x00\x00\x55\x89\x55\x88\x71\x45\x55\x87\x55\x86\x00\x00\x71\x46\x00\x00\x00\x00\x58\x4b\x74\x61\x74\x60\x58\x49\x58\x4a\x00\x00\x00\x00\x00\x00\x5a\x8d\x5a\x8c\x77\xb3\x00\x00\x00\x00\x77\xb2\x58\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb4\x7b\x4d\x5c\xb5\x7b\x4c\x00\x00\x00\x00\x00\x00\x7e\xa1\x81\xb7\x60\xe9", /* 7580 */ "\x84\xd5\x00\x00\x00\x00\x00\x00\x87\x81\x00\x00\x66\x70\x66\x6f\x00\x00\x00\x00\x67\xe7\x4d\x95\x6c\xb5\x00\x00\x00\x00\x58\x4d\x7e\xa2\x5e\xe9\x48\xa8\x00\x00\x6a\xef\x6a\xf0\x00\x00\x00\x00\x6c\xb6\x51\x9a\x51\x9b\x00\x00\x00\x00\x51\x99\x00\x00\x00\x00\x00\x00\x00\x00\x53\x72\x53\x73\x53\x70\x53\x71\x00\x00\x6e\xbe\x00\x00\x00\x00\x6e\xbf\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x71\x47\x00\x00\x55\x8d\x55\x8e\x00\x00\x58\x50\x71\x4d\x00\x00\x55\x93\x55\x91\x71\x4e\x71\x49\x55\x90\x55\x8f\x55\x8a\x71\x4c\x71\x4b\x71\x48\x55\x92\x00\x00\x71\x4a\x55\x8b\x00\x00\x55\x8c\x00\x00\x00\x00\x58\x51\x74\x65\x74\x66\x58\x52\x74\x62\x74\x64\x74\x68\x74\x67\x74\x63\x00\x00\x58\x4e\x58\x4f\x00\x00\x77\xbb\x5a\x92\x5a\x91\x77\xb5\x5a\x8f\x00\x00\x77\xb8\x5a\x93\x77\xb9\x5a\x94\x77\xb6\x5a\x8e\x5a\x90\x77\xba\x00\x00\x77\xb7\x77\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x5a\x00\x00\x7b\x4f\x5c\xb7\x5c\xba\x5c\xb9\x5c\xbe\x5c\xbd\x7b\x5b\x7b\x59\x7b\x52\x7b\x56\x7b\x55\x5c\xbb\x7b\x58\x7b\x54\x7b\x5c\x7b\x53\x5c\xbc", /* 7600 */ "\x5c\xb6\x5c\xb8\x00\x00\x7b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xa4\x5e\xed\x7e\xa8\x5e\xec\x7e\xa5\x5e\xeb\x00\x00\x7b\x50\x7b\x57\x7e\xa7\x00\x00\x5e\xee\x7e\xa9\x7e\xa6\x7e\xa3\x00\x00\x00\x00\x81\xba\x81\xbe\x81\xc0\x81\xbc\x81\xbb\x81\xb9\x60\xec\x60\xea\x60\xef\x60\xf0\x81\xbd\x60\xed\x81\xb8\x60\xee\x5e\xea\x81\xbf\x60\xeb\x00\x00\x00\x00\x00\x00\x84\xd7\x00\x00\x84\xd6\x84\xde\x84\xd8\x84\xdd\x84\xda\x62\xc9\x84\xdc\x00\x00\x00\x00\x62\xca\x00\x00\x62\xcb\x00\x00\x84\xdb\x84\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x64\x63\x87\x82\x00\x00\x00\x00\x64\x62\x87\x85\x87\x83\x87\x84\x00\x00\x00\x00\x64\x64\x00\x00\x00\x00\x00\x00\x89\xba\x00\x00\x65\x8b\x89\xbb\x00\x00\x00\x00\x65\x89\x89\xbc\x65\x8a\x89\xb9\x89\xbd\x00\x00\x89\xb7\x00\x00\x00\x00\x66\x71\x8b\xa7\x66\x72\x66\xf9\x00\x00\x89\xb8\x66\xfa\x00\x00\x00\x00\x00\x00\x67\x9a\x8e\x8f\x00\x00\x67\xe9\x8f\x85\x67\xe8\x00\x00\x90\x5b\x68\x82\x68\x83\x00\x00\x00\x00\x91\xbc\x48\xa9\x00\x00\x53\x74\x6e\xc0\x00\x00\x5a\x95\x5a\x96\x4d\x96\x4e\x6b\x69\xe6", /* 7680 */ "\x00\x00\x6a\xf1\x4f\xaf\x00\x00\x51\x9c\x00\x00\x53\x75\x53\x76\x53\x77\x74\x6a\x71\x4f\x55\x94\x00\x00\x00\x00\x58\x53\x74\x69\x00\x00\x00\x00\x77\xbd\x5a\x98\x00\x00\x77\xbc\x5a\x97\x00\x00\x00\x00\x7b\x5d\x60\xf1\x81\xc4\x81\xc1\x81\xc2\x81\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x86\x00\x00\x89\xbe\x00\x00\x00\x00\x00\x00\x8d\x61\x8d\x60\x00\x00\x8f\x86\x4d\x97\x6c\xb7\x55\x95\x00\x00\x00\x00\x00\x00\x5a\x99\x7b\x5e\x00\x00\x00\x00\x7e\xaa\x00\x00\x60\xf2\x84\xdf\x00\x00\x89\xbf\x8d\x62\x4d\x98\x00\x00\x00\x00\x51\x9d\x53\x7a\x6e\xc1\x53\x7b\x53\x79\x00\x00\x53\x78\x71\x50\x55\x96\x00\x00\x00\x00\x55\x97\x55\x98\x00\x00\x00\x00\x00\x00\x58\x55\x74\x6b\x58\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xbe\x58\x56\x5a\x9a\x7b\x5f\x5c\xbf\x5c\xc0\x00\x00\x5e\xef\x00\x00\x5e\xf0\x60\xf3\x62\xcd\x84\xe0\x62\xcc\x00\x00\x87\x87\x64\x65\x00\x00\x89\xc0\x8d\x63\x4d\x99\x4f\xb0\x6c\xba\x6c\xb9\x51\x9e\x6c\xb8\x51\x9f\x6c\xbb\x00\x00\x6e\xc7\x53\x7e\x53\x7d\x6e\xc9\x6e\xc8\x53\x83\x00\x00\x53\x82\x00\x00", /* 7700 */ "\x00\x00\x53\x7c\x00\x00\x6e\xc3\x6e\xc4\x6e\xc5\x00\x00\x53\x84\x6e\xc2\x53\x7f\x6e\xc6\x53\x81\x00\x00\x00\x00\x00\x00\x00\x00\x71\x53\x71\x57\x71\x55\x71\x54\x00\x00\x71\x58\x00\x00\x00\x00\x00\x00\x71\x59\x71\x5a\x71\x52\x00\x00\x71\x51\x00\x00\x55\x9a\x55\x9b\x00\x00\x71\x5b\x71\x56\x00\x00\x74\x74\x00\x00\x71\x5c\x55\x9c\x55\x99\x00\x00\x00\x00\x00\x00\x74\x6e\x00\x00\x74\x6d\x00\x00\x74\x6f\x74\x70\x74\x72\x74\x71\x74\x76\x58\x5a\x58\x57\x58\x5b\x74\x6c\x58\x5c\x74\x75\x58\x59\x74\x73\x58\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xc1\x77\xc3\x77\xbf\x77\xc0\x00\x00\x00\x00\x77\xc4\x77\xc6\x77\xc7\x77\xc2\x77\xc5\x5a\x9b\x00\x00\x00\x00\x7b\x63\x00\x00\x7b\x68\x7b\x60\x7b\x64\x00\x00\x00\x00\x7b\x69\x7b\x65\x5c\xc1\x5c\xc9\x00\x00\x5c\xc4\x7b\x61\x7b\x62\x5e\xf4\x5c\xcc\x5c\xc5\x00\x00\x5c\xca\x5c\xc3\x7b\x67\x5c\xcb\x7b\x66\x5c\xc7\x5c\xc2\x5c\xc8\x7b\x6a\x7e\xaf\x7e\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc6\x00\x00\x00\x00\x7e\xac\x5e\xf2\x7e\xb2\x5e\xf3", /* 7780 */ "\x7e\xb0\x7e\xab\x7e\xae\x7e\xb3\x5e\xf1\x7e\xad\x00\x00\x60\xf5\x81\xc8\x81\xc7\x00\x00\x60\xf8\x60\xf6\x81\xc5\x60\xf4\x81\xc6\x00\x00\x60\xf7\x00\x00\x00\x00\x00\x00\x84\xe8\x00\x00\x84\xea\x00\x00\x84\xe9\x84\xe1\x84\xe5\x84\xe4\x84\xe2\x62\xcf\x62\xd0\x62\xce\x84\xe3\x84\xe6\x84\xe7\x00\x00\x62\xd1\x00\x00\x64\x6a\x87\x8f\x00\x00\x64\x67\x87\x89\x64\x69\x64\x6b\x00\x00\x00\x00\x64\x68\x87\x8e\x87\x8a\x64\x66\x87\x8d\x87\x88\x87\x8c\x87\x8b\x00\x00\x00\x00\x89\xc2\x65\x8e\x65\x8f\x65\x8c\x00\x00\x65\x8d\x00\x00\x00\x00\x89\xc1\x00\x00\x8b\xaa\x00\x00\x00\x00\x66\x73\x00\x00\x8b\xa8\x8b\xa9\x00\x00\x8d\x64\x8d\x67\x8d\x65\x8d\x66\x8e\x90\x00\x00\x00\x00\x67\x9b\x90\x5c\x90\xc3\x00\x00\x68\x84\x91\x4a\x91\x4b\x68\xb2\x4d\x9a\x53\x85\x00\x00\x77\xc8\x00\x00\x7b\x6b\x00\x00\x4d\x9b\x4f\xb1\x00\x00\x51\xa0\x00\x00\x6e\xca\x6e\xcb\x55\x9d\x00\x00\x00\x00\x77\xc9\x5a\x9c\x5c\xcd\x64\x6c\x87\x90\x8b\xab\x8d\x68\x4d\x9c\x00\x00\x00\x00\x00\x00\x6c\xc1\x6c\xbc\x6c\xbe\x6c\xc0\x6c\xbf\x6c\xbd\x51\xa1\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x53\x86\x6e\xd4\x00\x00\x6e\xcf\x6e\xcc\x00\x00\x00\x00\x6e\xd3\x00\x00\x00\x00\x53\x88\x53\x89\x6e\xd2\x6e\xd1\x6e\xd0\x6e\xcd\x6e\xce\x6e\xd5\x53\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa1\x00\x00\x55\xa7\x55\xa6\x71\x65\x71\x5f\x71\x5d\x00\x00\x55\xa4\x74\x7d\x55\x9f\x71\x62\x71\x66\x71\x68\x71\x64\x71\x5e\x55\xa5\x71\x63\x71\x61\x55\x9e\x71\x69\x55\xa8\x71\x67\x55\xa2\x71\x60\x00\x00\x55\xa3\x55\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5e\x00\x00\x74\x7e\x00\x00\x00\x00\x74\x77\x74\x79\x74\x7b\x00\x00\x74\x7c\x74\x7a\x58\x5f\x00\x00\x74\x7f\x00\x00\x74\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xcd\x5a\x9d\x77\xd5\x00\x00\x77\xca\x00\x00\x77\xd6\x00\x00\x77\xcb\x77\xcc\x00\x00\x00\x00\x77\xd4\x77\xd3\x77\xd0\x58\x5d\x5a\x9e\x77\xce\x77\xd1\x5a\x9f\x77\xd2\x77\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x76\x00\x00\x7b\x7a\x5c\xd4\x00\x00\x7e\xb9\x5c\xd7", /* 7880 */ "\x7b\x78\x00\x00\x00\x00\x7b\x75\x7b\x70\x7b\x72\x7b\x73\x7b\x6c\x00\x00\x5c\xd3\x00\x00\x00\x00\x5c\xd2\x00\x00\x5c\xce\x7b\x6f\x00\x00\x5c\xd5\x00\x00\x5c\xd6\x7b\x6e\x7b\x71\x7b\x79\x5c\xd0\x5c\xd1\x7b\x77\x7b\x6d\x00\x00\x00\x00\x00\x00\x7e\xbb\x5e\xf6\x7e\xbd\x7b\x74\x7e\xbf\x5e\xfa\x7e\xc0\x7e\xbc\x00\x00\x5e\xf7\x7e\xb8\x5e\xf9\x7e\xb5\x7e\xba\x7e\xbe\x7e\xb7\x00\x00\x00\x00\x5c\xcf\x00\x00\x7e\xb4\x5e\xf8\x7e\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xfb\x81\xca\x61\x42\x00\x00\x60\xfd\x00\x00\x00\x00\x5e\xf5\x00\x00\x81\xd1\x81\xd2\x60\xfa\x00\x00\x00\x00\x81\xd0\x81\xd3\x60\xfc\x60\xf9\x81\xcc\x81\xc9\x81\xce\x81\xcb\x61\x43\x81\xcd\x00\x00\x00\x00\x81\xcf\x61\x41\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x84\xf1\x00\x00\x84\xeb\x84\xef\x84\xf5\x84\xf6\x84\xf2\x84\xf3\x84\xf0\x00\x00\x84\xed\x00\x00\x62\xd5\x62\xd2\x84\xec\x84\xee\x00\x00\x62\xd4\x84\xf4\x00\x00\x64\x70\x00\x00\x00\x00\x87\x96\x87\x91\x64\x6f\x00\x00\x00\x00\x64\x6d\x00\x00\x87\x98\x64\x6e\x87\x94\x87\x95\x87\x92\x87\x99\x89\xc3", /* 7900 */ "\x00\x00\x64\x71\x87\x93\x00\x00\x87\x9a\x87\x97\x00\x00\x00\x00\x00\x00\x89\xc7\x00\x00\x00\x00\x89\xc4\x00\x00\x65\x90\x00\x00\x89\xc8\x89\xca\x89\xc9\x89\xc5\x89\xc6\x00\x00\x00\x00\x8b\xb0\x00\x00\x66\x74\x00\x00\x8b\xad\x8b\xaf\x8b\xac\x8b\xb1\x00\x00\x00\x00\x8b\xae\x00\x00\x8d\x6a\x8d\x6d\x8d\x69\x66\xfb\x8d\x6b\x8d\x6c\x8d\x6e\x66\xfc\x67\x41\x66\xfd\x8e\x91\x00\x00\x8e\x93\x00\x00\x8e\x92\x00\x00\x00\x00\x00\x00\x8f\x87\x00\x00\x00\x00\x90\xc4\x91\x4c\x4d\x9d\x00\x00\x00\x00\x6a\xf2\x51\xa2\x6c\xc3\x51\xa3\x51\xa4\x6c\xc2\x00\x00\x6e\xda\x6e\xd9\x53\x8a\x53\x8d\x53\x8c\x53\x8b\x6e\xd6\x6e\xd8\x6e\xd7\x00\x00\x00\x00\x71\x6c\x55\xaa\x71\x70\x71\x6f\x71\x6e\x71\x6a\x55\xa9\x55\xad\x55\xb0\x00\x00\x00\x00\x55\xb1\x71\x6b\x71\x6d\x55\xaf\x55\xae\x55\xac\x55\xab\x74\x87\x00\x00\x74\x85\x74\x81\x58\x60\x00\x00\x74\x82\x58\x61\x74\x83\x74\x84\x74\x86\x00\x00\x58\x62\x00\x00\x00\x00\x77\xda\x00\x00\x77\xd9\x77\xd8\x77\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x7e\x5c\xd8\x00\x00\x7b\x7b\x7b\x7d\x00\x00\x5c\xd9", /* 7980 */ "\x00\x00\x5c\xda\x7b\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xc9\x00\x00\x7e\xc2\x7e\xc3\x00\x00\x5e\xfd\x5e\xfb\x5e\xfc\x7e\xcb\x00\x00\x7e\xca\x7e\xc7\x7e\xc6\x7e\xc5\x7e\xc4\x7e\xc8\x7e\xc1\x00\x00\x81\xd4\x81\xd9\x81\xd7\x00\x00\x00\x00\x00\x00\x81\xd6\x81\xd5\x81\xd8\x00\x00\x84\xf7\x00\x00\x62\xd6\x64\x72\x87\x9c\x00\x00\x64\x73\x87\x9b\x89\xcc\x89\xcb\x65\x91\x00\x00\x8b\xb2\x66\x75\x8d\x6f\x67\xea\x8f\x88\x00\x00\x90\xc6\x90\xc5\x69\x88\x53\x8e\x53\x8f\x74\x88\x00\x00\x5c\xdc\x4d\x9e\x4f\xb4\x4f\xb3\x4f\xb2\x00\x00\x00\x00\x00\x00\x6c\xc4\x00\x00\x00\x00\x51\xa6\x51\xa5\x00\x00\x53\x92\x00\x00\x6e\xdc\x6e\xdf\x6e\xdd\x00\x00\x53\x90\x53\x91\x00\x00\x00\x00\x6e\xdb\x6e\xde\x00\x00\x55\xb8\x00\x00\x00\x00\x00\x00\x71\x77\x71\x79\x71\x78\x55\xb5\x71\x73\x00\x00\x00\x00\x55\xb3\x55\xb2\x00\x00\x55\xb6\x55\xb4\x00\x00\x55\xb7\x71\x76\x71\x71\x71\x72\x71\x75\x71\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x8b\x74\x8c\x74\x8a\x00\x00\x74\x89\x58\x63\x00\x00\x00\x00\x00\x00\x00\x00", /* 7a00 */ "\x5a\xa4\x00\x00\x77\xdb\x77\xdd\x77\xdf\x5a\xa3\x00\x00\x00\x00\x5a\xa1\x00\x00\x77\xdc\x5a\xa2\x77\xde\x5a\xa0\x00\x00\x00\x00\x7b\x89\x7b\x7f\x7b\x83\x7b\x87\x5c\xe0\x7b\x85\x00\x00\x7b\x84\x7b\x81\x7b\x82\x5c\xde\x7b\x88\x5c\xdd\x00\x00\x5c\xe2\x5c\xe1\x5c\xdf\x00\x00\x7b\x86\x00\x00\x00\x00\x00\x00\x7e\xd1\x00\x00\x7e\xd0\x00\x00\x00\x00\x7e\xcc\x00\x00\x00\x00\x5f\x41\x7e\xcf\x7e\xce\x5f\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x48\x00\x00\x81\xdb\x00\x00\x61\x49\x61\x45\x61\x47\x00\x00\x61\x44\x61\x46\x00\x00\x00\x00\x00\x00\x84\xf8\x00\x00\x62\xd9\x84\xfa\x84\xf9\x00\x00\x7e\xcd\x62\xdb\x62\xda\x62\xd7\x62\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xa1\x00\x00\x87\x9f\x64\x74\x87\xa0\x00\x00\x87\xa2\x87\x9e\x87\x9d\x00\x00\x00\x00\x89\xcd\x65\x94\x65\x92\x65\x93\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xb3\x8b\xb4\x66\x77\x00\x00\x66\x76\x8d\x71\x8d\x72\x8d\x70\x00\x00\x8f\x89\x8f\x8a\x00\x00\x00\x00\x4d\x9f\x69\xe7\x4f\xb5\x00\x00\x6c\xc5\x51\xa8\x51\xa7\x6c\xc6\x00\x00\x00\x00\x6e\xe1\x53\x93", /* 7a80 */ "\x6e\xe0\x53\x94\x00\x00\x00\x00\x55\xb9\x71\x7c\x71\x7a\x71\x81\x55\xba\x71\x7b\x71\x7f\x71\x7d\x71\x7e\x00\x00\x00\x00\x74\x8d\x74\x8f\x00\x00\x58\x64\x00\x00\x74\x8e\x58\x65\x5a\xa7\x5a\xa6\x5a\xa5\x77\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x8c\x5c\xe3\x5c\xe4\x00\x00\x7b\x8b\x7b\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xd2\x5f\x44\x5f\x43\x7e\xd3\x7e\xd4\x00\x00\x61\x4b\x61\x4a\x00\x00\x85\x41\x81\xdc\x81\xde\x81\xdd\x84\xfd\x84\xfb\x85\x42\x84\xfc\x00\x00\x62\xdc\x00\x00\x00\x00\x00\x00\x87\xa3\x64\x75\x87\xa4\x87\xa5\x00\x00\x00\x00\x65\x95\x65\x96\x00\x00\x67\x42\x00\x00\x00\x00\x68\x5d\x4d\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x82\x55\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x58\xfc\x00\x00\x00\x00\x5a\xa9\x77\xe2\x5a\xa8\x77\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x8d\x00\x00\x5f\x45\x7e\xd5\x5f\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x43\x8d\x73\x00\x00\x4e\x6c\x51\xa9\x6c\xc7\x00\x00\x53\x96\x00\x00\x53\x95", /* 7b00 */ "\x6e\xe3\x6e\xe4\x00\x00\x00\x00\x71\x84\x71\x86\x55\xbc\x00\x00\x71\x88\x71\x8b\x71\x89\x00\x00\x00\x00\x00\x00\x71\x8a\x71\x87\x71\x83\x55\xbd\x71\x8c\x71\x85\x00\x00\x00\x00\x00\x00\x00\x00\x74\x98\x58\x6b\x74\xa1\x58\x68\x00\x00\x74\x9a\x58\x6c\x00\x00\x58\x66\x00\x00\x74\x95\x74\xa2\x74\x96\x74\x93\x58\x6a\x00\x00\x58\x67\x00\x00\x74\x99\x74\x9c\x58\x69\x74\x9d\x58\x6d\x74\x9e\x74\x94\x74\x9b\x74\x9f\x74\x97\x74\x92\x74\x90\x00\x00\x00\x00\x74\xa0\x00\x00\x00\x00\x77\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x77\xe9\x00\x00\x00\x00\x00\x00\x77\xe5\x77\xeb\x5a\xac\x74\x91\x77\xe6\x5a\xaa\x77\xe3\x5a\xb1\x77\xe7\x5a\xb0\x77\xe8\x5a\xb2\x5a\xad\x5a\xb3\x5a\xae\x00\x00\x5a\xaf\x00\x00\x5a\xab\x00\x00\x77\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe7\x7b\x98\x00\x00\x7b\x9b\x7b\x8f\x7b\x94\x7b\x8e\x5c\xe9\x00\x00\x7b\x92\x00\x00\x00\x00\x00\x00\x7b\x90\x5c\xe8\x00\x00\x7b\x97\x7b\x96\x7b\x93\x7b\x95\x7b\x91\x5f\x4a\x7b\x9a\x5c\xe5\x7b\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7b80 */ "\x00\x00\x00\x00\x7e\xe5\x00\x00\x5f\x51\x7e\xe0\x00\x00\x5f\x50\x7e\xd6\x00\x00\x7e\xd8\x5f\x49\x7e\xdd\x7e\xdc\x7e\xdf\x5f\x4e\x7e\xda\x7e\xd9\x00\x00\x00\x00\x5f\x4d\x5f\x48\x7e\xdb\x5f\x4b\x7e\xe1\x7e\xe3\x00\x00\x7e\xde\x7e\xd7\x5f\x4c\x00\x00\x00\x00\x61\x53\x5f\x47\x00\x00\x00\x00\x7e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe2\x61\x4c\x00\x00\x81\xe4\x00\x00\x61\x4d\x00\x00\x00\x00\x61\x4f\x81\xe7\x00\x00\x81\xdf\x5f\x4f\x81\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe1\x00\x00\x5c\xe6\x61\x52\x00\x00\x00\x00\x61\x4e\x00\x00\x61\x50\x61\x51\x00\x00\x62\xdf\x81\xe6\x81\xe0\x61\x54\x00\x00\x81\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x4c\x85\x47\x00\x00\x00\x00\x85\x51\x62\xdd\x85\x49\x62\xe1\x85\x4f\x85\x46\x85\x43\x85\x52\x64\x7b\x62\xe2\x85\x4e\x85\x44\x62\xe0\x85\x48\x62\xe4\x85\x45\x85\x4a\x62\xe3\x85\x4d\x85\x50\x00\x00\x00\x00\x00\x00\x00\x00\x87\xb7\x87\xb8\x87\xa8\x87\xaf\x87\xad\x00\x00\x00\x00\x64\x79\x87\xb4\x85\x4b\x00\x00\x87\xab\x00\x00\x87\xb5\x64\x78\x87\xaa", /* 7c00 */ "\x87\xa9\x87\xb3\x87\xb0\x87\xb2\x00\x00\x87\xa6\x87\xb6\x64\x76\x00\x00\x87\xb1\x87\xba\x87\xae\x64\x7a\x64\x77\x87\xac\x87\xa7\x87\xb9\x62\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\xd0\x00\x00\x00\x00\x89\xce\x89\xd4\x65\x9a\x89\xd2\x89\xd1\x65\x9c\x89\xd7\x65\x9b\x00\x00\x89\xd8\x89\xd5\x65\x98\x89\xd6\x89\xcf\x65\x99\x65\x97\x8b\xb8\x89\xd3\x00\x00\x00\x00\x89\xd9\x00\x00\x00\x00\x8b\xb5\x00\x00\x00\x00\x00\x00\x66\x7c\x66\x7a\x8b\xb7\x00\x00\x8b\xb9\x8b\xb6\x66\x7b\x66\x78\x66\x79\x66\x7d\x00\x00\x00\x00\x67\x45\x00\x00\x8d\x78\x00\x00\x8d\x77\x8d\x75\x8d\x74\x8d\x76\x00\x00\x67\x44\x67\x46\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x8e\x95\x8e\x94\x00\x00\x00\x00\x8f\x8b\x00\x00\x8f\x8d\x8f\x8f\x8f\x8e\x8f\x8c\x00\x00\x00\x00\x67\xec\x67\xeb\x00\x00\x00\x00\x68\x5f\x68\x5e\x68\x60\x90\x5e\x90\x5d\x00\x00\x91\x4d\x90\xc7\x91\x4e\x68\xa4\x00\x00\x68\xa5\x91\x7e\x00\x00\x00\x00\x68\xca\x4e\x6d\x00\x00\x6c\xc8\x00\x00\x00\x00\x6e\xe6\x6e\xe7\x6e\xe5\x00\x00\x00\x00\x53\x97\x00\x00\x6e\xe8", /* 7c80 */ "\x6e\xe9\x6e\xea\x00\x00\x00\x00\x71\x8d\x71\x93\x00\x00\x00\x00\x71\x91\x55\xbe\x71\x8f\x00\x00\x71\x90\x71\x92\x00\x00\x00\x00\x00\x00\x71\x8e\x58\x6e\x00\x00\x74\xa3\x58\x70\x74\xa5\x58\x6f\x74\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xed\x5a\xb4\x00\x00\x77\xef\x77\xec\x74\xa6\x00\x00\x5a\xb5\x00\x00\x00\x00\x77\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x9e\x00\x00\x5c\xea\x7b\x9c\x5c\xeb\x7b\x9d\x5c\xec\x00\x00\x00\x00\x00\x00\x5f\x52\x7e\xe9\x7e\xe6\x7e\xe8\x5f\x53\x5f\x54\x7e\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe8\x00\x00\x00\x00\x81\xe9\x00\x00\x61\x55\x81\xeb\x81\xea\x00\x00\x46\xf9\x00\x00\x85\x56\x85\x57\x85\x53\x00\x00\x85\x54\x62\xe5\x62\xe6\x85\x55\x00\x00\x64\x82\x00\x00\x00\x00\x64\x7d\x64\x83\x64\x7e\x64\x81\x64\x7c\x00\x00\x64\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x65\x9d\x87\xbb\x00\x00\x8b\xbb\x00\x00\x8b\xba\x00\x00\x8d\x79\x67\x47\x67\x48\x8f\x91\x8e\x96\x00\x00\x8f\x90\x00\x00\x91\x4f\x91\x94\x4e\x6e\x00\x00\x00\x00\x4f\xb6\x00\x00\x6c\xc9\x51\xaa\x00\x00", /* 7d00 */ "\x53\x9a\x6e\xed\x53\x98\x6e\xeb\x53\x9d\x53\x99\x53\x9e\x53\x9c\x6e\xec\x53\x9b\x55\xc2\x55\xc1\x71\x9e\x55\xca\x71\x97\x71\x9d\x55\xc6\x71\x96\x71\x9c\x71\x9a\x55\xc5\x55\xc7\x71\x99\x55\xc0\x71\x98\x55\xcb\x55\xc8\x55\xcc\x55\xc9\x71\x95\x71\x94\x71\x9b\x55\xc3\x55\xbf\x55\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xb5\x74\xae\x00\x00\x5a\xba\x74\xad\x00\x00\x58\x74\x58\x7b\x58\x78\x58\x7e\x58\x7d\x58\x79\x00\x00\x74\xa7\x74\xaa\x00\x00\x74\xa9\x58\x75\x74\xab\x74\xb4\x58\x76\x74\xa8\x74\xb1\x74\xb2\x58\x77\x74\xaf\x58\x7c\x58\x72\x58\x7a\x74\xac\x58\x71\x74\xb0\x00\x00\x00\x00\x74\xb3\x00\x00\x00\x00\x00\x00\x78\x43\x77\xf7\x5a\xb7\x78\x41\x77\xfb\x77\xf3\x77\xfc\x5a\xb9\x77\xf4\x00\x00\x77\xf0\x00\x00\x00\x00\x5c\xf2\x77\xf9\x00\x00\x5a\xb6\x78\x42\x00\x00\x5a\xbd\x5a\xbf\x77\xf2\x00\x00\x00\x00\x5a\xbe\x77\xf5\x5a\xb8\x77\xfd\x77\xf6\x77\xfa\x00\x00\x77\xf8\x5a\xbb\x77\xf1\x5a\xc0\x58\x73\x5a\xbc\x5a\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xee\x7b\xa5\x7b\xa7\x7b\xa9\x7b\xad\x00\x00\x7b\xa3", /* 7d80 */ "\x7b\xa1\x5c\xf0\x00\x00\x7b\xa8\x7b\xac\x7b\xa4\x7b\xa0\x00\x00\x7b\x9f\x00\x00\x00\x00\x00\x00\x7b\xaa\x7b\xa2\x7b\xa6\x5c\xf1\x00\x00\x5c\xef\x7b\xae\x5c\xed\x7b\xab\x00\x00\x7e\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x7e\xf2\x61\x62\x7e\xfc\x5f\x5a\x7f\x43\x5f\x60\x7e\xed\x00\x00\x00\x00\x7e\xfd\x7e\xea\x00\x00\x7f\x42\x7e\xee\x00\x00\x5f\x67\x5f\x64\x7f\x41\x7e\xf8\x5f\x56\x5f\x5e\x5f\x5d\x00\x00\x5f\x5c\x5f\x62\x00\x00\x7e\xeb\x5f\x63\x7e\xf9\x5f\x5f\x5f\x55\x7e\xfb\x5f\x58\x5f\x59\x5f\x61\x7e\xf0\x7e\xef\x7e\xec\x00\x00\x7e\xf4\x7e\xf1\x7e\xf5\x5f\x66\x00\x00\x7f\x44\x5f\x5b\x7e\xf6\x7e\xf7\x00\x00\x7e\xf3\x00\x00\x00\x00\x00\x00\x5f\x65\x00\x00\x00\x00\x00\x00\x00\x00\x81\xf0\x61\x5a\x61\x63\x61\x5f\x81\xed\x00\x00\x61\x5c\x61\x60\x81\xf9\x61\x56\x81\xf1\x00\x00\x61\x5e\x00\x00\x00\x00\x81\xf4\x81\xef\x61\x5d\x61\x61\x81\xee\x00\x00\x61\x5b\x00\x00\x81\xf8\x61\x58\x81\xf7\x81\xf6\x61\x64\x80\xbc\x61\x57\x00\x00\x81\xf5\x81\xec\x00\x00\x61\x65\x81\xf3\x61\x59\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x81\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe9\x62\xee\x62\xe7\x85\x64\x85\x5b\x85\x67\x85\x5f\x85\x65\x62\xef\x62\xe8\x85\x58\x85\x5e\x85\x68\x85\x61\x85\x66\x85\x5a\x00\x00\x00\x00\x85\x62\x62\xea\x85\x60\x62\xed\x62\xec\x85\x5c\x85\x5d\x85\x59\x85\x63\x62\xeb\x85\x6a\x85\x69\x00\x00\x00\x00\x00\x00\x87\xc6\x87\xc2\x64\x8a\x00\x00\x87\xbc\x64\x84\x64\x94\x87\xc8\x64\x8c\x64\x88\x87\xbf\x64\x8f\x64\x92\x87\xca\x64\x87\x87\xc1\x64\x90\x87\xcc\x87\xc9\x87\xbd\x64\x8b\x64\x85\x64\x93\x87\xc4\x64\x8e\x87\xbe\x64\x89\x87\xcb\x64\x8d\x64\x86\x87\xc5\x64\x91\x87\xc3\x00\x00\x00\x00\x87\xc7\x00\x00\x00\x00\x00\x00\x89\xdb\x89\xe1\x65\xa3\x89\xe4\x65\x9e\x65\x9f\x89\xdc\x89\xe3\x89\xde\x65\xa4\x65\xa1\x00\x00\x89\xda\x00\x00\x65\xa0\x89\xe0\x89\xe2\x65\xa2\x89\xdf\x89\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xc5\x66\x82\x66\x83\x66\x7e\x00\x00\x66\x7f\x00\x00\x8b\xc1\x8b\xbf\x00\x00\x8b\xc3\x66\x85\x8b\xc4\x8b\xbd\x8b\xbc\x8b\xc0\x8b\xbe\x66\x81\x8b\xc2\x8d\x7a\x67\x4b\x67\x4a\x8d\x7b\x00\x00", /* 7e80 */ "\x8d\x7d\x8d\x7c\x67\x4c\x00\x00\x00\x00\x00\x00\x8e\x9b\x8e\x98\x8e\x99\x00\x00\x8e\x97\x8e\x9a\x67\x9e\x8e\x9c\x00\x00\x67\x9d\x00\x00\x8f\x92\x00\x00\x68\x61\x68\x63\x90\x5f\x68\x62\x90\xc8\x91\x51\x91\x53\x91\x50\x91\x52\x68\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6f\x00\x00\x53\x9f\x70\xd2\x55\xcd\x00\x00\x00\x00\x58\x7f\x78\x44\x78\x45\x00\x00\x00\x00\x00\x00\x85\x6b\x64\x95\x87\xcd\x00\x00\x00\x00\x65\xa5\x00\x00\x8b\xc7\x8b\xc6\x67\x4d\x8e\x9d\x00\x00\x8f\x93\x68\x85\x69\xe8\x00\x00\x00\x00\x51\xab\x4f\xb7\x00\x00\x00\x00\x6e\xee\x00\x00\x00\x00\x71\xa4\x71\x9f\x71\xa3\x71\xa1\x55\xce\x71\xa2\x71\xa0\x00\x00\x74\xb6\x00\x00\x78\x46\x78\x47\x7b\xb1\x7b\xb2\x5c\xf4\x5c\xf5\x7b\xb0\x7b\xb3\x7b\xaf\x5c\xf3\x00\x00\x5f\x68\x00\x00\x5c\xf6\x7f\x45\x00\x00\x61\x66\x81\xfa\x61\x67\x00\x00\x62\xf0\x85\x6e\x85\x6c\x85\x6d\x87\xd0\x87\xcf\x87\xce", /* 7f80 */ "\x00\x00\x00\x00\x00\x00\x8b\xc8\x00\x00\x66\x84\x8b\xc9\x8f\x94\x68\x86\x90\xc9\x4e\x70\x51\xad\x51\xac\x6e\xf0\x53\xa0\x00\x00\x00\x00\x6e\xef\x71\xa6\x00\x00\x55\xcf\x74\xb7\x71\xa5\x00\x00\x00\x00\x00\x00\x58\x82\x74\xba\x74\xb8\x74\xb9\x58\x81\x00\x00\x78\x49\x78\x4a\x78\x48\x00\x00\x5c\xf9\x7b\xb5\x7b\xb4\x7b\xb6\x5c\xf8\x5c\xf7\x00\x00\x00\x00\x81\xfb\x81\xfd\x00\x00\x61\x68\x81\xfc\x85\x6f\x62\xf1\x89\xe6\x00\x00\x89\xe5\x66\x86\x8b\xca\x66\x88\x66\x87\x8d\x7e\x8e\x9e\x67\x9f\x4e\x71\x6e\xf1\x53\xa1\x71\xa9\x55\xd1\x71\xa8\x71\xa7\x00\x00\x55\xd0\x00\x00\x74\xc0\x00\x00\x74\xc2\x74\xbb\x74\xbc\x58\x83\x74\xbd\x58\x84\x74\xc1\x74\xbe\x74\xbf\x58\x85\x00\x00\x5a\xc3\x5a\xc4\x00\x00\x78\x4b\x00\x00\x00\x00\x00\x00\x7b\xb7\x7b\xb8\x00\x00\x7f\x49\x5f\x6b\x5f\x69\x5f\x6a\x7f\x46\x7f\x47\x00\x00\x7f\x48\x82\x45\x00\x00\x82\x46\x61\x69\x82\x43\x82\x42\x82\x44\x82\x41\x62\xf4\x85\x70\x62\xf2\x62\xf3\x87\xd2\x64\x96\x87\xd1\x89\x55\x00\x00\x89\xe7\x89\xe8\x65\xa6\x00\x00\x65\xa7\x64\x97\x8b\xcb\x8b\xcc\x8d\x7f", /* 8000 */ "\x67\x4e\x4e\x72\x00\x00\x4e\x73\x53\xa2\x51\xae\x55\xd2\x6e\xf2\x00\x00\x00\x00\x00\x00\x5a\xc5\x4e\x74\x53\xa4\x6e\xf3\x6e\xf4\x53\xa3\x53\xa5\x4e\x75\x00\x00\x6e\xf5\x55\xd4\x71\xaa\x55\xd6\x55\xd3\x55\xd5\x00\x00\x74\xc5\x58\x86\x00\x00\x74\xc4\x74\xc3\x00\x00\x7b\xb9\x00\x00\x00\x00\x7f\x4a\x00\x00\x61\x6a\x00\x00\x62\xf5\x85\x72\x85\x71\x00\x00\x87\xd3\x00\x00\x00\x00\x00\x00\x8e\x9f\x00\x00\x00\x00\x4e\x76\x6a\xf3\x6c\xca\x53\xa6\x6e\xf6\x00\x00\x71\xac\x00\x00\x00\x00\x00\x00\x55\xd7\x71\xab\x55\xd8\x00\x00\x00\x00\x00\x00\x74\xc7\x00\x00\x00\x00\x58\x88\x74\xc6\x74\xc8\x00\x00\x58\x87\x00\x00\x00\x00\x00\x00\x00\x00\x78\x4d\x78\x4e\x78\x4c\x5a\xc6\x00\x00\x00\x00\x00\x00\x5c\xfa\x00\x00\x5c\xfb\x00\x00\x5f\x6d\x00\x00\x7f\x4c\x7f\x4b\x5f\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x47\x00\x00\x00\x00\x82\x48\x00\x00\x00\x00\x00\x00\x00\x00\x85\x73\x00\x00\x00\x00\x64\x9b\x64\x9a\x64\x98\x64\x99\x64\x9c\x00\x00\x89\xe9\x65\xa9\x65\xa8\x8b\xcd\x8d\x81\x00\x00\x00\x00\x00\x00\x67\xee\x67\xed\x4e\x77", /* 8080 */ "\x00\x00\x00\x00\x70\x9f\x00\x00\x5c\xfd\x5a\xc7\x5c\xfc\x5f\x6e\x00\x00\x4e\x78\x69\x89\x4e\x79\x4e\x7a\x00\x00\x00\x00\x6c\xcb\x6a\xf6\x00\x00\x6a\xf7\x4f\xb9\x00\x00\x6a\xf4\x4f\xb8\x00\x00\x4f\xbb\x6a\xf5\x4f\xbd\x4f\xbc\x6a\xf8\x4f\xba\x00\x00\x00\x00\x00\x00\x51\xb3\x51\xb1\x6c\xcd\x00\x00\x51\xb0\x00\x00\x00\x00\x00\x00\x51\xb5\x51\xb7\x51\xb4\x00\x00\x6c\xd0\x6c\xcc\x51\xb8\x00\x00\x51\xb2\x4f\xbe\x00\x00\x51\xb6\x6c\xcf\x00\x00\x00\x00\x6c\xce\x00\x00\x51\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xfc\x53\xaa\x53\xab\x6f\x41\x00\x00\x6e\xf8\x6e\xfb\x6f\x47\x6f\x45\x00\x00\x53\xac\x6f\x4b\x53\xaf\x6f\x48\x6e\xfd\x6e\xfa\x00\x00\x00\x00\x78\x50\x6f\x46\x53\xa7\x6f\x49\x6e\xf7\x6f\x43\x53\xa9\x53\xae\x6f\x44\x53\xb2\x53\xb0\x00\x00\x6e\xf9\x53\xad\x00\x00\x6f\x42\x53\xb1\x53\xa8\x6f\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xdd\x00\x00\x55\xe6\x55\xdb\x55\xd9\x71\xae\x55\xe1\x55\xde\x71\xb0\x00\x00\x00\x00\x55\xe0\x71\xaf\x71\xad\x71\xb2\x55\xe5\x55\xe3\x78\x4f\x00\x00", /* 8100 */ "\x71\xb3\x71\xb1\x55\xda\x00\x00\x00\x00\x55\xdc\x55\xdf\x00\x00\x55\xe2\x00\x00\x55\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xd2\x58\x8a\x00\x00\x74\xc9\x74\xcb\x00\x00\x74\xcc\x00\x00\x74\xd4\x74\xd0\x74\xce\x00\x00\x74\xd1\x74\xd5\x58\x8b\x58\x8f\x74\xca\x00\x00\x74\xd3\x00\x00\x58\x8d\x00\x00\x58\x8c\x74\xcf\x74\xcd\x00\x00\x58\x89\x58\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xcd\x78\x58\x00\x00\x00\x00\x78\x56\x5a\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x78\x51\x7b\xc7\x00\x00\x5a\xce\x78\x55\x00\x00\x00\x00\x78\x52\x5a\xca\x5a\xd0\x78\x57\x5a\xcc\x78\x54\x5f\x6f\x5a\xcb\x78\x53\x5a\xd1\x5a\xc9\x5a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xbf\x7b\xbd\x00\x00\x7b\xc3\x00\x00\x7b\xbb\x7b\xc8\x7b\xc0\x00\x00\x7b\xba\x5d\x44\x5d\x4a\x7b\xc5\x00\x00\x7b\xbe\x00\x00\x5d\x47\x00\x00\x00\x00\x5d\x45\x7b\xc6\x5d\x42\x5d\x41\x7b\xc1\x5d\x46\x5a\xd2\x00\x00\x7b\xc4\x7b\xbc\x5d\x43\x5d\x48\x5d\x49\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x74", /* 8180 */ "\x5f\x70\x00\x00\x5f\x75\x7f\x4f\x00\x00\x00\x00\x7f\x4e\x7f\x50\x5f\x72\x7f\x4d\x5f\x73\x7f\x53\x7f\x52\x7f\x51\x00\x00\x5f\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x4c\x00\x00\x82\x4f\x61\x70\x82\x4e\x61\x6f\x61\x6b\x61\x6c\x61\x6d\x82\x4b\x82\x4a\x61\x6e\x00\x00\x82\x4d\x82\x49\x00\x00\x00\x00\x85\x75\x85\x7f\x62\xf8\x62\xf7\x00\x00\x85\x79\x85\x7b\x00\x00\x85\x76\x00\x00\x85\x7a\x85\x74\x85\x7d\x62\xf6\x85\x7c\x85\x78\x00\x00\x85\x7e\x00\x00\x85\x77\x64\x9f\x87\xd4\x87\xda\x64\xa3\x64\xa5\x64\xa2\x64\xa1\x00\x00\x64\xa0\x64\x9e\x87\xd5\x87\xd8\x64\x9d\x87\xd9\x00\x00\x64\xa4\x87\xd7\x00\x00\x87\xd6\x65\xaa\x00\x00\x65\xab\x89\xec\x89\xea\x89\xeb\x00\x00\x00\x00\x8b\xcf\x00\x00\x8b\xce\x66\x89\x8d\x83\x67\x4f\x8d\x82\x00\x00\x8e\xa0\x8f\x95\x67\xef\x91\x54\x91\x55\x68\x64\x4e\x7b\x00\x00\x51\xb9\x78\x59\x5f\x76\x64\xa6\x87\xdb\x4e\x7c\x00\x00\x55\xe8\x55\xe7\x78\x5a\x00\x00\x00\x00\x00\x00\x85\x81\x4e\x7d\x53\xb3\x00\x00\x00\x00\x78\x5b\x78\x5c\x78\x5d\x5f\x77\x62\xf9\x4e\x7e\x00\x00\x51\xba\x6f\x4c", /* 8200 */ "\x55\xe9\x71\xb4\x58\x90\x00\x00\x78\x5e\x5d\x4b\x00\x00\x5f\x78\x62\xfa\x64\xa7\x65\xac\x8d\x84\x4e\x7f\x51\xbb\x00\x00\x00\x00\x55\xea\x74\xd6\x5a\xd3\x00\x00\x5f\x79\x7f\x54\x82\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x81\x5a\xd4\x7b\xc9\x5f\x7a\x4e\x82\x6c\xd1\x6f\x4d\x53\xb4\x00\x00\x00\x00\x71\xb6\x00\x00\x00\x00\x55\xed\x00\x00\x55\xeb\x55\xec\x55\xee\x00\x00\x00\x00\x71\xb5\x00\x00\x00\x00\x74\xdb\x74\xd8\x74\xda\x58\x91\x58\x93\x58\x92\x74\xd7\x58\x94\x74\xd9\x00\x00\x78\x5f\x78\x60\x00\x00\x78\x61\x7b\xcc\x00\x00\x7b\xcd\x00\x00\x7b\xcb\x7b\xce\x00\x00\x5d\x4c\x00\x00\x7b\xca\x00\x00\x5f\x7b\x00\x00\x00\x00\x82\x55\x82\x51\x82\x54\x82\x56\x82\x53\x82\x52\x00\x00\x85\x82\x85\x83\x85\x84\x62\xfb\x62\xfc\x87\xdd\x87\xdc\x87\xde\x00\x00\x89\xee\x89\xed\x00\x00\x8b\xd1\x00\x00\x8b\xd2\x8b\xd0\x00\x00\x67\x50\x00\x00\x8d\x85\x8d\x86\x00\x00\x8f\x96\x90\x60\x90\xca\x4e\x83\x4f\xbf\x00\x00\x64\xa8\x4e\x84\x00\x00\x74\xdc\x78\x62\x00\x00\x68\x8d\x69\xe9\x00\x00\x00\x00\x00\x00\x69\xea\x69\xec\x4e\x85\x69\xed", /* 8280 */ "\x69\xeb\x00\x00\x00\x00\x6b\x43\x6b\x44\x6a\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x42\x4f\xc1\x00\x00\x4f\xc2\x6a\xfc\x6a\xfa\x6a\xf9\x6a\xfd\x4f\xc0\x6b\x41\x6f\x4e\x00\x00\x00\x00\x00\x00\x6c\xd6\x51\xbe\x6c\xd5\x6c\xd7\x00\x00\x51\xbd\x6c\xdc\x51\xc1\x6c\xd2\x6c\xe0\x6c\xe6\x51\xc8\x6c\xe3\x51\xc5\x00\x00\x6c\xd9\x6c\xdf\x6c\xe1\x00\x00\x6c\xd4\x51\xc4\x51\xbf\x6c\xda\x51\xc6\x51\xc9\x51\xc3\x00\x00\x51\xbc\x6c\xde\x6c\xd8\x6c\xe5\x51\xcb\x51\xc7\x51\xc2\x6c\xdd\x55\xef\x6c\xdb\x51\xc0\x51\xca\x00\x00\x6c\xd3\x00\x00\x6c\xe2\x6c\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc5\x53\xbf\x53\xc7\x53\xc4\x6f\x55\x6f\x58\x53\xc0\x00\x00\x6f\x4f\x00\x00\x53\xb9\x53\xc3\x00\x00\x53\xc6\x53\xc8\x6f\x64\x6f\x5b\x00\x00\x53\xb8\x6f\x63\x53\xbc\x53\xba\x53\xb5\x6f\x53\x00\x00\x6f\x62\x6f\x57\x6f\x5a\x6f\x67\x00\x00\x53\xc9\x6f\x61\x53\xc1\x6f\x5c\x6f\x66\x6f\x59\x6f\x5d\x6f\x60\x00\x00\x00\x00\x6f\x51\x6f\x65\x6f\x5f\x00\x00\x00\x00\x6f\x50\x00\x00", /* 8300 */ "\x6f\x54\x53\xc2\x53\xbd\x53\xb6\x53\xbb\x53\xb7\x53\xca\x6f\x52\x71\xc7\x53\xbe\x00\x00\x00\x00\x6f\x5e\x6d\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\xca\x55\xfd\x00\x00\x71\xba\x00\x00\x71\xc5\x71\xc1\x00\x00\x71\xd4\x00\x00\x71\xcc\x00\x00\x71\xc2\x00\x00\x71\xcb\x71\xbc\x71\xc0\x71\xd7\x56\x43\x71\xcf\x71\xc6\x55\xf0\x71\xd5\x71\xb8\x00\x00\x71\xce\x00\x00\x56\x42\x55\xfa\x71\xb7\x55\xf8\x55\xf7\x55\xfc\x71\xcd\x55\xf4\x55\xfb\x6f\x56\x78\x63\x71\xc8\x00\x00\x00\x00\x71\xbe\x56\x41\x71\xbf\x71\xc3\x56\x44\x71\xb9\x71\xd1\x00\x00\x71\xd0\x71\xd8\x55\xf6\x55\xf3\x71\xd6\x71\xd2\x71\xc9\x71\xc4\x55\xf9\x55\xf5\x71\xbb\x55\xf1\x71\xd3\x55\xf2\x00\x00\x71\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xe2\x74\xe4\x74\xe9\x74\xfd\x58\xa2\x58\x98\x00\x00\x74\xe1\x58\xa3\x58\xa4\x74\xec\x74\xf3\x74\xf9", /* 8380 */ "\x00\x00\x74\xe6\x00\x00\x74\xed\x00\x00\x00\x00\x58\xa5\x74\xfb\x74\xf6\x58\xa0\x58\x9e\x74\xf2\x74\xee\x74\xe0\x58\x95\x74\xe5\x74\xdd\x00\x00\x58\x9d\x58\x9f\x74\xea\x74\xe7\x58\x9a\x74\xf7\x58\x97\x74\xe8\x75\x41\x74\xf0\x00\x00\x74\xef\x58\x96\x00\x00\x58\xa1\x00\x00\x58\x99\x74\xde\x74\xe3\x74\xf4\x74\xfa\x58\xa6\x74\xdf\x74\xeb\x74\xf1\x58\x9c\x00\x00\x00\x00\x74\xfc\x74\xf5\x74\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9b\x00\x00\x78\x73\x78\x67\x5a\xdc\x78\x85\x78\x8d\x78\x90\x5a\xda\x78\x6f\x78\x89\x78\x70\x78\x7e\x5a\xe7\x78\x7a\x5a\xe4\x00\x00\x78\x7b\x78\x64\x00\x00\x78\x8a\x00\x00\x00\x00\x5a\xed\x78\x87\x78\x7c\x78\x92\x78\x77\x7b\xee\x00\x00\x78\x95\x5a\xeb\x78\x75\x78\x82\x5a\xee\x5a\xd9\x78\x79\x78\x93\x78\x72\x78\x6b\x78\x76\x00\x00\x78\x6a\x78\x68\x5a\xd5\x78\x8b\x78\x71\x78\x8e\x00\x00\x78\x8f\x5a\xdd\x5a\xe2\x5a\xde\x5a\xe6\x78\x86\x5a\xdf\x78\x7d\x78\x6d\x00\x00\x5a\xd7\x78\x65\x78\x88\x78\x91\x78\x6c\x5a\xe5\x78\x96\x78\x78", /* 8400 */ "\x00\x00\x78\x74\x00\x00\x5a\xd6\x5a\xea\x00\x00\x78\x84\x5a\xec\x00\x00\x78\x7f\x5a\xe1\x5a\xdb\x5a\xe3\x5a\xd8\x5a\xe9\x78\x81\x78\x6e\x78\x83\x78\x69\x78\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xed\x00\x00\x7c\x46\x5c\xdb\x7b\xf2\x00\x00\x7b\xf0\x7b\xdb\x5d\x50\x7b\xeb\x7c\x42\x7b\xe7\x5d\x58\x7c\x41\x7b\xe5\x5a\xe8\x7b\xf5\x7b\xe6\x7b\xfc\x5d\x57\x5d\x4f\x00\x00\x7b\xd0\x7b\xd8\x00\x00\x7b\xf1\x7b\xe9\x7c\x45\x7b\xec\x5d\x5d\x7b\xfd\x00\x00\x5d\x54\x00\x00\x7b\xef\x7b\xf7\x7b\xdc\x7b\xf6\x00\x00\x7c\x4a\x7b\xd7\x7b\xf8\x00\x00\x7c\x48\x00\x00\x7b\xd1\x5a\xe0\x00\x00\x7b\xdf\x7b\xde\x5d\x56\x00\x00\x7b\xe2\x7b\xe4\x7b\xf3\x7c\x47\x5d\x59\x00\x00\x5d\x5a\x00\x00\x7b\xd6\x5d\x52\x7b\xda\x7c\x43\x5d\x5b\x00\x00\x5d\x53\x5d\x55\x5d\x5c\x7c\x49\x7b\xf9\x7b\xf4\x00\x00\x00\x00\x7b\xe1\x7b\xe0\x5d\x51\x7b\xd2\x5d\x4e\x7b\xea\x7b\xd3\x7b\xe8\x00\x00\x00\x00\x7b\xdd\x7c\x44\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x5d\x4d\x00\x00\x00\x00\x00\x00\x7b\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xd5\x7b\xfb\x7b\xd4\x5f\x89\x7f\x7c\x00\x00\x00\x00\x7f\x6b\x00\x00\x00\x00\x7f\x55\x7f\x73\x5f\x81\x7f\x64\x7f\x6e\x5f\x84\x7f\x67\x5f\x82\x7f\x58\x7f\x76\x7f\x57\x7f\x6a\x00\x00\x7f\x56\x00\x00\x00\x00\x7f\x68\x7f\x71\x7f\x6f\x7f\x63\x7f\x5e\x7f\x5c\x00\x00\x7f\x5d\x7f\x70\x7f\x7b\x7f\x65\x5f\x83\x00\x00\x7f\x60\x00\x00\x7f\x74\x00\x00\x5f\x86\x7f\x5f\x7f\x59\x7f\x69\x5f\x8a\x00\x00\x00\x00\x5f\x7d\x5f\x87\x7f\x61\x7f\x5b\x00\x00\x5f\x7f\x7b\xfa\x5f\x7e\x7f\x6c\x00\x00\x5f\x7c\x5f\x8c\x5f\x85\x7f\x6d\x7f\x62\x7f\x5a\x7f\x75\x7f\x66\x5f\x8b\x7f\x79\x5f\x88\x7f\x78\x00\x00\x7f\x72\x7f\x77\x00\x00\x00\x00\x00\x00\x7f\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x7e\x82\x7f\x82\x72\x82\x71\x82\x6d\x61\x7c\x00\x00\x61\x74\x82\x82\x82\x81\x7b\xcf\x82\x6a\x82\x6e\x82\x68\x00\x00\x82\x7b\x82\x6c\x00\x00\x82\x83\x82\x65\x82\x63\x82\x6f\x82\x79\x82\x74\x61\x7e", /* 8500 */ "\x82\x5a\x00\x00\x82\x78\x00\x00\x00\x00\x00\x00\x61\x7f\x7b\xe3\x82\x66\x82\x5d\x82\x60\x82\x87\x82\x67\x82\x5e\x82\x5c\x82\x59\x00\x00\x61\x78\x82\x70\x61\x77\x61\x7b\x82\x6b\x82\x73\x61\x71\x82\x84\x82\x88\x61\x73\x00\x00\x82\x62\x82\x76\x82\x7a\x82\x5f\x82\x85\x61\x7a\x00\x00\x61\x79\x82\x57\x61\x7d\x82\x7d\x82\x61\x82\x75\x82\x5b\x82\x69\x82\x64\x61\x75\x61\x76\x82\x77\x82\x89\x82\x86\x82\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x58\x00\x00\x61\x72\x85\x95\x00\x00\x85\x8c\x85\x8f\x00\x00\x63\x45\x85\x91\x85\x86\x85\x8d\x85\x93\x63\x42\x63\x46\x62\xfd\x00\x00\x00\x00\x85\x88\x85\x98\x00\x00\x00\x00\x85\x92\x00\x00\x85\x89\x85\xa1\x85\x9b\x85\x85\x87\xf1\x85\x8b\x63\x41\x00\x00\x85\x96\x00\x00\x85\xa0\x63\x49\x00\x00\x85\x9d\x85\x8a\x85\x90\x85\x94\x85\x8e\x85\xa2\x85\x9f\x85\x9c\x63\x43\x63\x44\x63\x48\x85\x87\x85\xa3\x63\x47\x85\x99\x00\x00\x00\x00\x85\x97\x00\x00\x00\x00\x00\x00\x85\x9a\x88\x41\x87\xeb\x87\xf0\x87\xfd\x87\xef\x87\xe7\x87\xec\x00\x00\x64\xab\x00\x00", /* 8580 */ "\x87\xe0\x87\xf8\x87\xfa\x87\xdf\x64\xaa\x87\xfc\x87\xf4\x64\xb1\x87\xfb\x87\xed\x64\xb3\x87\xe5\x85\x9e\x87\xf5\x87\xf2\x87\xe1\x88\x43\x64\xad\x00\x00\x00\x00\x64\xae\x87\xe3\x87\xf3\x00\x00\x88\x42\x87\xf6\x87\xe9\x64\xb0\x64\xac\x87\xf7\x87\xea\x88\x44\x87\xe4\x87\xee\x87\xf9\x87\xe6\x87\xe8\x00\x00\x65\xb5\x87\xe2\x64\xb2\x65\xae\x64\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x64\xaf\x65\xb2\x8a\x41\x00\x00\x89\xf4\x89\xef\x89\xf5\x8a\x42\x8a\x46\x8a\x45\x65\xb4\x65\xb3\x00\x00\x00\x00\x89\xf6\x8a\x47\x89\xf9\x89\xf1\x00\x00\x89\xf3\x89\xf2\x89\xf8\x89\xfd\x89\xf0\x89\xf7\x89\xfc\x65\xb1\x00\x00\x89\xfa\x00\x00\x65\xaf\x89\xfb\x65\xad\x65\xb0\x8b\xe2\x8a\x43\x00\x00\x00\x00\x66\x8d\x00\x00\x8b\xda\x8b\xde\x8b\xd6\x8b\xd9\x00\x00\x8b\xe1\x66\x8b\x8b\xe6\x8b\xdf\x00\x00\x8b\xd7\x8b\xe7\x8b\xe0\x66\x8e\x66\x8f\x8b\xe4\x00\x00\x8b\xd8\x66\x8a\x66\x8c\x8b\xd3\x8b\xdb\x8b\xd5\x00\x00\x8b\xe5\x8b\xe3\x8b\xd4\x8b\xdc\x00\x00\x00\x00\x00\x00\x8d\x8d\x66\x90\x8b\xdd\x67\x52\x67\x54\x67\x51\x00\x00\x8d\x92\x8d\x8a\x8d\x88", /* 8600 */ "\x8d\x8c\x8d\x89\x00\x00\x00\x00\x8d\x8e\x8d\x90\x67\x55\x67\x57\x00\x00\x8d\x8f\x67\x58\x67\x56\x8d\x91\x00\x00\x00\x00\x00\x00\x00\x00\x67\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa0\x8e\xa1\x8e\xa7\x67\xa2\x8d\x8b\x8e\xa6\x00\x00\x8e\xad\x8e\xa4\x8e\xab\x8e\xaa\x8d\x87\x8e\xa5\x8a\x44\x8e\xae\x8e\xa3\x8e\xa8\x00\x00\x8e\xac\x8e\xa2\x00\x00\x8f\x9a\x67\xa1\x8e\xa9\x00\x00\x00\x00\x90\x65\x8f\x9b\x8f\x99\x8f\x97\x8f\x98\x8f\x9c\x00\x00\x68\x65\x90\x63\x90\x61\x90\x66\x90\x64\x00\x00\x90\x67\x68\x66\x90\x62\x00\x00\x00\x00\x90\xcb\x00\x00\x00\x00\x91\x56\x91\x57\x91\x58\x00\x00\x00\x00\x91\xb7\x91\xad\x69\xee\x51\xcc\x00\x00\x53\xcb\x00\x00\x71\xda\x71\xd9\x56\x45\x58\xa7\x75\x43\x00\x00\x00\x00\x75\x42\x00\x00\x5a\xef\x5d\x5f\x00\x00\x5d\x5e\x5d\x60\x00\x00\x7f\x7d\x82\x8a\x85\xa4\x85\xa6\x85\xa5\x00\x00\x64\xb4\x88\x45\x8a\x48\x91\x95\x4e\x86\x00\x00\x6c\xe9\x6c\xea\x6c\xe8\x6c\xe7\x51\xcd\x00\x00\x6f\x6b\x6f\x69\x00\x00\x00\x00\x6f\x68\x00\x00\x53\xcc\x53\xce\x53\xcd\x6f\x6a\x00\x00\x00\x00\x00\x00", /* 8680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\xe6\x71\xe3\x71\xe1\x00\x00\x00\x00\x56\x46\x71\xe4\x56\x4b\x71\xde\x71\xed\x00\x00\x71\xef\x71\xdf\x00\x00\x56\x48\x71\xf0\x71\xeb\x71\xdd\x71\xe2\x71\xec\x71\xe8\x71\xe5\x00\x00\x56\x4d\x71\xee\x71\xe0\x00\x00\x00\x00\x71\xe9\x71\xdb\x56\x4c\x56\x49\x71\xe7\x00\x00\x71\xea\x71\xdc\x56\x4a\x56\x47\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb1\x75\x4a\x58\xb0\x00\x00\x75\x4d\x75\x50\x58\xad\x58\xab\x75\x45\x75\x4e\x75\x4c\x75\x49\x75\x51\x75\x52\x75\x54\x75\x55\x75\x44\x58\xaa\x75\x47\x75\x46\x75\x53\x58\xac\x75\x48\x58\xae\x58\xa9\x75\x4b\x58\xb2\x00\x00\x58\xaf\x75\x4f\x00\x00\x00\x00\x00\x00\x5a\xf6\x78\xa5\x00\x00\x78\x9a\x5a\xf3\x00\x00\x7c\x50\x78\xa3\x78\x97\x5a\xf1\x78\x9c\x5a\xf4\x78\xa0\x78\x9e\x5a\xf7\x5a\xf0\x00\x00\x00\x00\x78\x98\x78\x9b\x5a\xf5\x00\x00\x78\x99\x00\x00\x78\xa4\x78\xa2\x78\x9d\x78\x9f\x78\xa1\x5a\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x51\x7c\x57\x7c\x4d\x7c\x53\x5d\x61\x7c\x4f\x5d\x67\x00\x00\x00\x00\x5d\x66\x00\x00", /* 8700 */ "\x5d\x65\x7c\x56\x5d\x68\x5d\x69\x7c\x4c\x7c\x59\x5d\x6a\x5d\x64\x5d\x63\x7c\x55\x5d\x6b\x7c\x4b\x7c\x4e\x7c\x58\x7c\x54\x00\x00\x00\x00\x7f\x9e\x7f\x93\x5d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x93\x7f\x87\x7f\x9c\x7f\x88\x5f\x8e\x00\x00\x7f\x85\x00\x00\x7f\x8e\x7f\x86\x5f\x90\x7f\x7f\x7f\x9b\x5f\x91\x7f\x98\x7f\x99\x7f\x81\x5f\x96\x7f\x90\x00\x00\x7f\x8a\x7f\x91\x7f\x84\x00\x00\x7f\x9d\x7f\x95\x7f\x8f\x7f\x7e\x5f\x92\x7f\x96\x00\x00\x5f\x95\x7f\x9a\x00\x00\x7f\x94\x5f\x8f\x7f\x92\x00\x00\x7f\x8c\x5f\x8d\x7f\x83\x7f\x8b\x7f\x97\x7f\x89\x00\x00\x00\x00\x7f\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8a\x7c\x52\x82\x9c\x82\xa5\x82\x9b\x82\x97\x82\x94\x61\x8b\x82\x92\x5f\x94\x82\x8b\x61\x89\x82\x91\x61\x88\x82\x96\x82\x93\x82\xa3\x82\x9e\x82\x98\x82\x9d\x61\x84\x82\x95\x82\xa8\x82\x8c\x82\x8d\x82\xa4\x61\x85\x82\xa9\x61\x87\x82\xaa\x82\x9a\x7f\x82\x82\xa0\x82\x99\x82\xa2\x82\x9f\x00\x00\x00\x00\x00\x00\x82\x90\x61\x82\x82\xa7\x61\x83\x82\x8e\x61\x86\x85\xb0\x82\xa1\x82\xa6\x00\x00\x00\x00\x00\x00\x00\x00", /* 8780 */ "\x00\x00\x85\xad\x61\x81\x63\x4a\x85\xb7\x85\xb3\x00\x00\x85\xb1\x85\xac\x85\xbb\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x85\xa8\x85\xb4\x85\xb5\x85\xab\x85\xaa\x85\xb8\x00\x00\x85\xae\x85\xa9\x85\xaf\x00\x00\x85\xba\x85\xa7\x85\xb9\x85\xb6\x63\x4c\x63\x4b\x00\x00\x00\x00\x63\x4d\x85\xb2\x8a\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x47\x64\xba\x88\x4b\x88\x48\x88\x4f\x88\x55\x88\x4a\x00\x00\x88\x5e\x64\xb7\x88\x58\x88\x4d\x88\x59\x88\x54\x88\x5b\x88\x4c\x64\xbc\x64\xbb\x88\x4e\x88\x5c\x88\x46\x88\x5a\x64\xb5\x00\x00\x88\x52\x88\x51\x88\x56\x88\x49\x64\xb9\x00\x00\x64\xbd\x88\x50\x88\x57\x64\xbe\x88\x53\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb6\x64\xb8\x8a\x55\x8a\x53\x00\x00\x00\x00\x8a\x5a\x8a\x57\x8a\x5b\x00\x00\x8a\x4c\x8a\x54\x8a\x5f\x88\x5d\x8a\x50\x65\xb9\x82\x8f\x8a\x4b\x8a\x58\x8a\x52\x8a\x4f\x8a\x4a\x8a\x49\x8a\x5e\x00\x00\x8a\x4e\x8a\x4d\x65\xb7\x8a\x56\x00\x00\x65\xb6\x00\x00\x00\x00\x65\xb8\x8a\x51\x8a\x5d\x00\x00\x8b\xeb\x8b\xec\x00\x00\x66\x94\x8b\xe9\x66\x91\x8b\xf1\x00\x00\x66\x95\x8b\xf3", /* 8800 */ "\x8b\xe8\x8a\x5c\x8b\xf5\x8b\xea\x00\x00\x66\x92\x8b\xf0\x00\x00\x8b\xf2\x8b\xed\x8b\xf4\x8b\xef\x8b\xee\x66\x93\x00\x00\x00\x00\x8d\x94\x8d\x95\x00\x00\x8d\x97\x67\x59\x67\x5a\x8d\x98\x8d\x96\x00\x00\x8d\x93\x00\x00\x8e\xb1\x8e\xb4\x8e\xb0\x00\x00\x67\xa6\x8e\xb2\x67\xa5\x67\xa4\x67\xa3\x8e\xb3\x8f\xa1\x8f\x9f\x00\x00\x8f\x9e\x8e\xaf\x8f\xa0\x8e\xb5\x8f\x9d\x00\x00\x90\x6a\x90\x48\x90\x68\x68\x67\x90\x69\x90\x6b\x00\x00\x90\xce\x68\x87\x90\xcd\x90\xcc\x68\x88\x00\x00\x68\xa6\x91\x7f\x91\x97\x91\x96\x91\x98\x4e\x87\x6f\x6c\x00\x00\x71\xf1\x71\xf2\x00\x00\x00\x00\x00\x00\x78\xa6\x00\x00\x8e\xb6\x90\xcf\x4e\x88\x53\xcf\x6f\x6d\x00\x00\x00\x00\x00\x00\x75\x56\x58\xb3\x00\x00\x78\xa8\x78\xa7\x5a\xf8\x00\x00\x5d\x6c\x82\xab\x61\x8c\x00\x00\x61\x8d\x00\x00\x00\x00\x00\x00\x63\x4f\x68\x89\x4e\x89\x00\x00\x00\x00\x00\x00\x6f\x6e\x51\xcf\x6f\x70\x6f\x6f\x53\xd0\x00\x00\x71\xf3\x00\x00\x71\xfa\x56\x4e\x71\xf8\x71\xf6\x00\x00\x71\xfd\x71\xf4\x71\xf5\x56\x4f\x00\x00\x56\x53\x00\x00\x00\x00\x72\x41\x56\x52\x71\xfc\x71\xf9", /* 8880 */ "\x71\xf7\x56\x50\x56\x51\x71\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb5\x75\x57\x00\x00\x58\xba\x75\x67\x58\xb9\x75\x69\x00\x00\x00\x00\x75\x5d\x58\xb7\x75\x68\x00\x00\x75\x58\x58\xb8\x75\x64\x75\x60\x75\x62\x75\x5c\x75\x63\x00\x00\x00\x00\x58\xb4\x75\x5f\x00\x00\x75\x5e\x75\x5a\x00\x00\x75\x65\x00\x00\x00\x00\x75\x61\x75\x59\x00\x00\x75\x5b\x58\xb6\x75\x66\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xfb\x78\xb3\x00\x00\x00\x00\x00\x00\x78\xaf\x78\xb1\x78\xac\x78\xab\x78\xa9\x00\x00\x78\xb0\x78\xb2\x78\xae\x00\x00\x78\xad\x5a\xf9\x5a\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xb5\x5d\x74\x7c\x5b\x7c\x61\x7c\x5c\x7c\x5d\x00\x00\x7c\x62\x00\x00\x5d\x76\x00\x00\x5d\x6e\x5d\x75\x7c\x5a\x78\xaa\x5d\x71\x5d\x6f\x7c\x60\x7c\x5f\x5d\x70\x5d\x72\x7c\x5e\x5d\x6d\x00\x00\x5d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xa0\x5f\x9d\x00\x00\x00\x00\x7f\xab\x7f\xaa\x00\x00\x7f\xa5\x5f\x9f\x7f\xa9\x7f\xa1\x7f\xa2\x5f\x97\x5f\x99\x00\x00\x7f\xa7\x7f\x9f\x5f\x9b\x5f\x9a\x7f\xa3\x7f\xa8\x7f\xa6\x5f\x9c\x7f\xa4\x00\x00", /* 8900 */ "\x00\x00\x78\xb4\x5f\x98\x00\x00\x00\x00\x82\xac\x82\xb3\x61\x8f\x00\x00\x82\xb7\x61\x93\x82\xaf\x82\xad\x00\x00\x82\xb6\x00\x00\x61\x8e\x82\xb5\x61\x90\x61\x91\x82\xae\x61\x92\x82\xb4\x82\xb0\x82\xb1\x82\xb2\x5f\x9e\x00\x00\x00\x00\x00\x00\x85\xbc\x85\xc8\x00\x00\x63\x54\x85\xc3\x85\xc5\x00\x00\x63\x52\x85\xbd\x85\xc1\x00\x00\x85\xc4\x63\x50\x63\x53\x85\xc7\x85\xbf\x85\xc0\x85\xc6\x85\xbe\x85\xc2\x63\x51\x88\x60\x00\x00\x88\x5f\x64\xc0\x88\x65\x64\xc2\x00\x00\x00\x00\x64\xbf\x88\x61\x64\xc3\x88\x62\x00\x00\x00\x00\x88\x63\x88\x66\x00\x00\x64\xc1\x00\x00\x8a\x64\x00\x00\x00\x00\x8a\x67\x00\x00\x8a\x61\x8a\x63\x00\x00\x00\x00\x8a\x62\x8a\x65\x8a\x66\x88\x64\x8a\x60\x00\x00\x00\x00\x66\x98\x8b\xf9\x8b\xfc\x8c\x41\x8b\xf7\x8b\xf8\x8b\xfb\x8b\xfd\x66\x99\x66\x97\x66\x96\x8b\xfa\x8b\xf6\x8d\x99\x67\x5b\x00\x00\x8d\x9a\x00\x00\x00\x00\x8e\xb8\x67\xa7\x8e\xba\x67\xa8\x8e\xb7\x8e\xb9\x67\xf1\x00\x00\x8f\xa2\x67\xf0\x90\x6e\x90\x6d\x00\x00\x90\x6c\x00\x00\x00\x00\x91\x59\x91\x5a\x91\x5c\x91\x5b\x00\x00\x69\xef\x4e\x8a", /* 8980 */ "\x00\x00\x53\xd1\x75\x6a\x5a\xfc\x00\x00\x7c\x63\x65\xba\x00\x00\x8c\x42\x00\x00\x00\x00\x4f\xc3\x00\x00\x00\x00\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x58\xbb\x00\x00\x78\xb6\x5a\xfd\x78\xb8\x78\xb7\x00\x00\x00\x00\x7c\x64\x5d\x77\x7f\xac\x7f\xaf\x7f\xae\x00\x00\x7f\xad\x82\xb8\x82\xba\x82\xb9\x00\x00\x63\x56\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x64\xc4\x88\x67\x88\x69\x88\x68\x00\x00\x00\x00\x65\xbb\x00\x00\x00\x00\x00\x00\x8c\x44\x8c\x43\x00\x00\x8d\x9b\x67\x5c\x00\x00\x00\x00\x67\xa9\x8f\xa4\x8f\xa3\x68\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc4\x6f\x71\x53\xd2\x75\x6d\x75\x6b\x00\x00\x00\x00\x75\x6c\x78\xba\x78\xbb\x7c\x6b\x78\xb9\x00\x00\x7c\x65\x7c\x69\x7c\x68\x7c\x6a\x5d\x78\x7c\x67\x7c\x66\x7c\x6c\x00\x00\x7f\xb2\x7f\xb0\x00\x00\x7f\xb1\x82\xbd\x82\xbb\x00\x00\x00\x00\x82\xbc\x85\xc9\x88\x6a\x88\x6b\x65\xbc\x00\x00\x8c\x45\x8d\x9c\x67\x5d\x00\x00\x8e\xbb\x8f\xa5\x67\xf2\x00\x00\x90\x6f\x91\x5d", /* 8a00 */ "\x4f\xc5\x00\x00\x53\xd4\x53\xd5\x6f\x72\x00\x00\x00\x00\x6f\x73\x53\xd3\x00\x00\x56\x59\x00\x00\x56\x57\x00\x00\x56\x56\x56\x5d\x56\x55\x56\x5e\x72\x42\x56\x5b\x00\x00\x56\x58\x56\x5c\x56\x5a\x56\x54\x00\x00\x00\x00\x58\xc4\x00\x00\x58\xbe\x75\x71\x58\xc3\x00\x00\x00\x00\x58\xc5\x58\xbf\x00\x00\x58\xc0\x00\x00\x75\x6f\x00\x00\x00\x00\x58\xbd\x00\x00\x75\x70\x58\xc2\x00\x00\x00\x00\x75\x6e\x58\xc1\x00\x00\x00\x00\x5b\x4b\x00\x00\x5b\x4d\x00\x00\x00\x00\x78\xbe\x5b\x4c\x5b\x41\x5b\x45\x00\x00\x5d\x8c\x7c\x71\x78\xc0\x5b\x46\x00\x00\x00\x00\x78\xc3\x78\xc4\x5b\x4a\x00\x00\x78\xc6\x00\x00\x78\xc8\x00\x00\x78\xc9\x78\xbd\x78\xbc\x78\xca\x5b\x49\x78\xc7\x78\xc5\x00\x00\x5b\x47\x5b\x43\x5b\x4e\x78\xc1\x78\xc2\x78\xbf\x00\x00\x5b\x48\x00\x00\x00\x00\x5b\x44\x00\x00\x5b\x42\x7c\x70\x5d\x87\x5d\x82\x00\x00\x00\x00\x5d\x7c\x00\x00\x5d\x8d\x5d\x7d\x00\x00\x5d\x79\x5d\x89\x5d\x86\x5d\x88\x00\x00\x5d\x7e\x5d\x84\x5d\x7a\x5d\x7b\x7c\x78\x7c\x75\x7c\x6d\x7c\x72\x00\x00\x5d\x8a\x7c\x79\x5d\x8b\x5d\x81\x00\x00\x00\x00\x7c\x6f", /* 8a80 */ "\x00\x00\x7c\x77\x7c\x73\x7c\x76\x7c\x74\x5d\x85\x7c\x6e\x5d\x7f\x00\x00\x00\x00\x00\x00\x7f\xb5\x5f\xa1\x5f\xa4\x00\x00\x7f\xb7\x00\x00\x5f\xac\x7f\xb6\x5f\xa6\x00\x00\x61\x98\x7f\xb8\x00\x00\x5f\xab\x7f\xb4\x5f\xad\x00\x00\x00\x00\x00\x00\x5f\xa2\x00\x00\x5d\x83\x5f\xa5\x00\x00\x5f\xa3\x5f\xa7\x5f\xa9\x5f\xa0\x5f\xae\x5f\xaa\x00\x00\x5f\xa8\x7f\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x61\x9f\x00\x00\x61\x9b\x00\x00\x00\x00\x00\x00\x61\xa2\x00\x00\x82\xc0\x61\xa3\x82\xcc\x82\xc5\x61\x94\x82\xcd\x82\xc7\x61\x9e\x82\xc8\x00\x00\x61\x9d\x82\xcb\x61\x97\x82\xc9\x82\xbf\x61\x96\x85\xd4\x61\x9c\x00\x00\x61\x99\x00\x00\x61\xa1\x00\x00\x82\xbe\x00\x00\x82\xc2\x61\x95\x82\xc1\x82\xc3\x82\xc4\x61\xa0\x82\xc6\x82\xca\x82\xce\x00\x00\x61\xa4\x63\x5c\x85\xcf\x85\xd5\x85\xd2\x85\xca\x85\xd6\x85\xcb\x00\x00\x85\xd1\x00\x00\x63\x57\x63\x5d\x85\xd7\x00\x00\x00\x00\x63\x59\x00\x00\x63\x63\x63\x5e\x85\xd9\x85\xd3\x63\x5a\x85\xcc\x63\x64\x85\xcd\x85\xce\x63\x65\x63\x62\x61\x9a\x00\x00\x63\x58\x85\xda\x63\x66\x00\x00\x63\x5f\x85\xd8", /* 8b00 */ "\x63\x5b\x63\x60\x63\x61\x00\x00\x64\xcc\x88\x70\x88\x79\x88\x76\x88\x78\x00\x00\x64\xc9\x88\x71\x00\x00\x88\x77\x64\xc5\x88\x73\x64\xcd\x88\x6f\x88\x74\x88\x7b\x85\xd0\x88\x75\x88\x6e\x64\xc6\x88\x6d\x64\xc7\x88\x7c\x64\xc8\x88\x7a\x64\xcb\x88\x6c\x00\x00\x64\xca\x00\x00\x88\x72\x8a\x6a\x8a\x78\x8a\x73\x8a\x75\x8a\x69\x65\xbd\x00\x00\x8a\x68\x65\xc0\x65\xbf\x00\x00\x8a\x77\x8a\x6f\x8a\x6c\x8a\x72\x00\x00\x8a\x6b\x00\x00\x8a\x6d\x8a\x76\x8a\x74\x00\x00\x65\xbe\x8a\x7b\x8a\x79\x8a\x70\x8a\x7a\x8a\x71\x00\x00\x8c\x49\x66\x9a\x8c\x50\x00\x00\x00\x00\x8e\xbe\x66\xa1\x8a\x6e\x8c\x47\x66\x9d\x8c\x48\x8c\x4d\x00\x00\x00\x00\x66\x9f\x66\xa0\x8c\x46\x8c\x4f\x8c\x51\x8c\x4a\x8c\x4c\x8c\x4e\x8c\x4b\x8c\x52\x66\x9c\x66\xa2\x66\x9e\x00\x00\x66\x9b\x8d\x9f\x00\x00\x67\x62\x8d\x9d\x00\x00\x00\x00\x8d\xa1\x00\x00\x8d\xa2\x67\x60\x8d\xa3\x8d\xa0\x00\x00\x8d\x9e\x67\x63\x67\x5f\x8d\xa4\x00\x00\x67\x61\x67\x5e\x00\x00\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x67\xab\x8e\xbd\x8e\xbc\x8e\xbf\x8e\xc0\x00\x00\x67\xac\x8f\xa6\x8f\xab", /* 8b80 */ "\x67\xf3\x00\x00\x8f\xa8\x00\x00\x8f\xa7\x8f\xaa\x8f\xa9\x00\x00\x90\x73\x00\x00\x68\x68\x90\x72\x90\x70\x00\x00\x90\x71\x00\x00\x00\x00\x00\x00\x68\x8b\x68\x8a\x90\xd0\x90\xd1\x68\x8c\x00\x00\x91\x5e\x91\x5f\x68\xb3\x00\x00\x68\xb9\x00\x00\x91\x99\x91\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc6\x00\x00\x75\x72\x00\x00\x75\x73\x7c\x7a\x7f\xb9\x82\xcf\x64\xcf\x00\x00\x64\xce\x8a\x7c\x8c\x53\x00\x00\x90\x74\x4f\xc7\x72\x43\x56\x5f\x58\xc6\x7c\x7c\x7c\x7b\x61\xa5\x82\xd0\x61\xa6\x88\x7d\x65\xc1\x00\x00\x00\x00\x00\x00\x68\xc2\x4f\xc8\x6c\xeb\x72\x44\x00\x00\x00\x00\x58\xc7\x00\x00\x75\x74\x75\x75\x00\x00\x78\xcb\x00\x00\x5b\x4f\x5d\x8e\x00\x00\x7c\x7e\x7c\x7d\x7c\x7f\x00\x00\x7f\xba\x7f\xbb\x5f\xaf\x63\x67\x61\xa7\x63\x68\x00\x00\x88\x82\x88\x7e\x88\x81\x88\x7f\x64\xd0\x00\x00\x8a\x7d\x8c\x55\x8c\x54\x6b\x45\x56\x61\x56\x60\x72\x45\x00\x00\x75\x76\x00\x00\x00\x00", /* 8c80 */ "\x78\xcd\x78\xcc\x5b\x50\x00\x00\x7c\x82\x7c\x83\x7c\x81\x00\x00\x00\x00\x5d\x90\x5d\x8f\x00\x00\x5f\xb1\x5f\xb0\x00\x00\x82\xd1\x85\xdd\x85\xdb\x85\xdc\x63\x69\x88\x84\x88\x83\x00\x00\x8a\x81\x8a\x7f\x8a\x7e\x8c\x56\x00\x00\x91\x9a\x4f\xc9\x53\xd6\x00\x00\x53\xd7\x56\x62\x56\x63\x72\x47\x72\x46\x75\x77\x00\x00\x58\xcd\x58\xcb\x58\xc8\x58\xcc\x58\xca\x58\xc9\x00\x00\x00\x00\x5b\x51\x78\xd0\x00\x00\x5d\x95\x5b\x53\x5b\x58\x78\xd2\x5b\x5a\x5b\x59\x5b\x5c\x78\xd1\x78\xce\x5b\x56\x5b\x52\x5b\x54\x78\xcf\x5b\x5b\x5b\x57\x5b\x55\x5d\x97\x5d\x96\x5d\x94\x5d\x98\x00\x00\x5d\x92\x5d\x93\x00\x00\x5d\x91\x00\x00\x7c\x84\x00\x00\x00\x00\x7f\xbd\x00\x00\x5f\xb3\x5f\xb4\x5f\xb2\x00\x00\x7f\xbc\x00\x00\x7f\xbe\x00\x00\x82\xd4\x82\xd6\x00\x00\x61\xb0\x82\xd7\x61\xa9\x82\xd3\x61\xa8\x61\xb2\x61\xae\x61\xaf\x61\xab\x82\xd2\x61\xaa\x82\xd8\x82\xd5\x00\x00\x61\xb1\x00\x00\x61\xac\x61\xad\x85\xdf\x00\x00\x85\xe1\x85\xe0\x00\x00\x85\xe2\x63\x6a\x85\xde\x00\x00\x00\x00\x64\xd4\x88\x85\x64\xd1\x64\xd5\x64\xd3\x64\xd2\x8a\x82\x00\x00", /* 8d00 */ "\x8a\x85\x00\x00\x8a\x84\x00\x00\x8a\x83\x65\xc2\x8c\x57\x8c\x58\x66\xa3\x8c\x59\x66\xa4\x00\x00\x00\x00\x67\x65\x00\x00\x67\x64\x8e\xc1\x00\x00\x00\x00\x67\xad\x8e\xc2\x8f\xac\x67\xf4\x67\xf5\x00\x00\x90\x75\x00\x00\x68\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x00\x00\x58\xcf\x58\xce\x7c\x85\x7c\x86\x00\x00\x5f\xb5\x85\xe3\x61\xb3\x85\xe4\x88\x86\x4f\xcb\x00\x00\x6f\x74\x53\xd9\x53\xd8\x00\x00\x72\x48\x56\x64\x72\x49\x75\x7a\x00\x00\x75\x79\x00\x00\x75\x78\x00\x00\x00\x00", /* 8d80 */ "\x78\xd4\x5b\x5f\x00\x00\x00\x00\x78\xd3\x5b\x5e\x00\x00\x00\x00\x00\x00\x78\xd5\x5b\x5d\x00\x00\x7c\x88\x7c\x8b\x7c\x89\x7c\x8a\x7c\x8e\x7c\x87\x7c\x8f\x7c\x8c\x7c\x8d\x5f\xb7\x7f\xbf\x00\x00\x00\x00\x5f\xb6\x00\x00\x82\xdc\x82\xda\x00\x00\x00\x00\x61\xb4\x82\xd9\x82\xdb\x00\x00\x61\xb5\x00\x00\x85\xe5\x00\x00\x85\xe6\x64\xd6\x00\x00\x8c\x5b\x8c\x5d\x8c\x5a\x8c\x5c\x8d\xa5\x8e\xc3\x00\x00\x00\x00\x91\x81\x4f\xcc\x53\xda\x72\x4a\x72\x4c\x72\x4b\x00\x00\x75\x7d\x58\xd1\x00\x00\x75\x7b\x00\x00\x58\xd0\x75\x7e\x00\x00\x75\x7f\x75\x7c\x00\x00\x00\x00\x78\xe1\x5b\x67\x78\xd9\x78\xdf\x00\x00\x00\x00\x5b\x62\x5b\x65\x78\xd8\x5b\x60\x78\xdc\x7c\x95\x5b\x64\x00\x00\x78\xd7\x00\x00\x78\xdd\x78\xda\x78\xe0\x78\xd6\x78\xde\x5b\x63\x5b\x66\x78\xdb\x5b\x61\x00\x00\x5d\x9a\x7c\x91\x5d\x99\x7c\x98\x7c\x97\x5d\xa0\x00\x00\x5d\xa1\x7c\x99\x5d\x9b\x7c\x96\x5d\x9f\x7c\x9b\x7c\x92\x00\x00\x7c\x94\x5d\x9c\x7c\x90\x7c\x93\x7c\x9a\x5d\x9d\x7c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9e\x00\x00\x5f\xb8\x7f\xc4\x7f\xca\x7f\xc2", /* 8e00 */ "\x7f\xcb\x00\x00\x7f\xc1\x7f\xc6\x7f\xcc\x7f\xc9\x7f\xc8\x7f\xc7\x00\x00\x7f\xc0\x7f\xc5\x00\x00\x00\x00\x7f\xc3\x00\x00\x61\xba\x61\xb7\x82\xe5\x82\xea\x82\xec\x82\xe9\x82\xe2\x82\xe4\x82\xee\x82\xeb\x82\xe6\x82\xef\x82\xe3\x82\xed\x61\xb8\x61\xbe\x61\xbc\x82\xdd\x61\xbd\x61\xb9\x82\xde\x82\xe0\x82\xdf\x82\xe7\x82\xe8\x00\x00\x61\xbb\x00\x00\x61\xb6\x00\x00\x00\x00\x82\xe1\x00\x00\x85\xf0\x63\x6c\x00\x00\x85\xe7\x63\x6d\x63\x70\x85\xec\x00\x00\x85\xe9\x63\x6f\x00\x00\x00\x00\x85\xed\x85\xee\x85\xe8\x85\xf1\x85\xea\x85\xef\x63\x6e\x00\x00\x63\x6b\x85\xeb\x00\x00\x88\x8c\x64\xd9\x64\xd7\x64\xda\x64\xd8\x88\x8b\x88\x88\x88\x87\x00\x00\x88\x8a\x00\x00\x00\x00\x88\x89\x8a\x93\x65\xc8\x8a\x8a\x8a\x89\x00\x00\x65\xc3\x8a\x8f\x8a\x8e\x8a\x86\x8a\x91\x8a\x8b\x65\xc7\x8a\x88\x8a\x90\x8a\x87\x65\xc4\x65\xc6\x8a\x8c\x65\xc5\x8a\x8d\x00\x00\x8a\x92\x8c\x61\x00\x00\x66\xa9\x8c\x5e\x00\x00\x8c\x62\x00\x00\x00\x00\x66\xa6\x8c\x60\x66\xab\x00\x00\x66\xa8\x00\x00\x8c\x5f\x00\x00\x66\xaa\x8c\x63\x66\xa5\x00\x00\x00\x00\x00\x00", /* 8e80 */ "\x00\x00\x67\x67\x67\x69\x00\x00\x8d\xa8\x67\x68\x8d\xa6\x66\xa7\x8d\xa7\x67\x66\x67\xae\x67\xb0\x8e\xc5\x67\xaf\x8e\xc4\x00\x00\x8f\xb1\x67\xf6\x8f\xb0\x67\xf7\x8f\xae\x8f\xad\x8f\xb2\x8f\xb3\x90\x76\x00\x00\x8f\xaf\x00\x00\x00\x00\x90\xd5\x90\xd2\x90\xd3\x90\xd4\x68\xa8\x00\x00\x91\x62\x91\x61\x91\x60\x91\x82\x00\x00\x91\xae\x91\x9b\x68\xba\x4f\xcd\x56\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xbf\x00\x00\x00\x00\x85\xf2\x00\x00\x00\x00\x65\xc9\x00\x00\x8c\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x9c\x4f\xce\x51\xd0\x53\xdc\x53\xdb\x00\x00\x56\x68\x00\x00\x72\x4d\x56\x66\x72\x4e\x56\x67\x00\x00\x00\x00\x75\x85\x75\x81\x00\x00\x00\x00\x58\xd2\x75\x84\x75\x83\x75\x82\x58\xd3\x75\x86\x75\x87\x00\x00\x00\x00\x00\x00\x78\xe8\x78\xe6\x78\xea\x78\xeb\x78\xf1\x00\x00\x78\xed\x78\xef\x00\x00\x78\xe7\x78\xe2\x00\x00\x78\xee\x00\x00\x00\x00\x78\xf0\x78\xe9\x78\xec\x78\xe3\x5b\x69\x78\xe5\x78\xe4\x5b\x68\x5b\x6a\x00\x00\x5d\xa5\x7c\x9e", /* 8f00 */ "\x7c\xa0\x7c\x9f\x7c\xa4\x5d\xa3\x00\x00\x7c\xa1\x7c\x9d\x7c\xa2\x7c\xa3\x5d\xa4\x5d\xa6\x7c\xa5\x00\x00\x7f\xd0\x7f\xcf\x00\x00\x7f\xcd\x7f\xce\x5f\xba\x5f\xbc\x5f\xb9\x5f\xbb\x82\xf6\x82\xf7\x82\xf2\x00\x00\x82\xf3\x61\xc1\x61\xc6\x61\xc0\x61\xc7\x61\xc2\x82\xf4\x00\x00\x00\x00\x82\xf5\x82\xf1\x61\xc8\x61\xc4\x00\x00\x00\x00\x61\xc3\x61\xc5\x00\x00\x82\xf0\x00\x00\x85\xf4\x63\x72\x00\x00\x00\x00\x85\xf6\x63\x74\x85\xf9\x85\xf5\x85\xf3\x85\xf8\x63\x73\x85\xf7\x00\x00\x63\x71\x00\x00\x00\x00\x64\xdc\x64\xdf\x88\x8e\x00\x00\x64\xdd\x88\x8d\x64\xdb\x64\xde\x8a\x94\x8a\x95\x8a\x96\x65\xca\x00\x00\x8a\x97\x00\x00\x65\xcb\x66\xad\x8c\x67\x8c\x68\x8c\x66\x8c\x65\x8c\x69\x66\xac\x8d\xac\x8d\xaa\x8d\xab\x8d\xad\x8d\xa9\x8d\xae\x8e\xc7\x00\x00\x8e\xc8\x8e\xc6\x67\xb1\x8f\xb4\x67\xf8\x8f\xb5\x90\x78\x90\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcf\x5b\x6b\x00\x00\x00\x00\x5d\xa7\x00\x00\x00\x00\x00\x00\x5f\xbd\x00\x00\x00\x00\x63\x76\x00\x00\x63\x75\x00\x00\x00\x00\x00\x00\x00\x00\x66\xae\x67\x49\x67\xb2\x4f\xd0\x56\x69\x5d\xa8\x00\x00\x8c\x6a\x48\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x47\x00\x00\x00\x00\x4f\xd1\x00\x00\x4f\xd4\x4f\xd3\x4f\xd2\x00\x00\x00\x00\x6b\x46\x00\x00\x6c\xed\x00\x00\x6c\xef\x51\xd1\x00\x00\x00\x00\x51\xd3\x6c\xec\x6c\xee\x51\xd2\x6c\xf1\x6c\xf0\x6c\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x78\x6f\x76\x53\xdf\x6f\x75\x53\xe4\x53\xe1\x53\xde\x00\x00\x53\xe5\x00\x00\x53\xe0\x53\xe3\x00\x00\x53\xe2\x6f\x77\x00\x00\x53\xdd\x00\x00\x00\x00\x00\x00\x56\x6f\x72\x50\x72\x56\x56\x6c\x56\x73\x00\x00\x56\x6e\x72\x53\x72\x55\x56\x71\x72\x4f\x72\x52", /* 9000 */ "\x56\x6d\x56\x6a\x72\x51\x56\x70\x72\x54\x56\x72\x56\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x75\x89\x75\x8c\x58\xd5\x00\x00\x58\xdf\x58\xdb\x75\x8a\x00\x00\x00\x00\x58\xe3\x58\xdc\x58\xe1\x58\xd7\x00\x00\x58\xd4\x58\xd6\x58\xe2\x75\x8b\x58\xda\x58\xdd\x58\xd9\x58\xde\x75\x8d\x58\xe0\x58\xd8\x75\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xf2\x5b\x6c\x78\xf4\x00\x00\x5b\x6e\x5b\x70\x00\x00\x78\xf3\x5b\x6d\x5b\x71\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x5d\xae\x7c\xaa\x5d\xb6\x7c\xa7\x00\x00\x5d\xb7\x5d\xac\x00\x00\x7c\xa8\x00\x00\x00\x00\x5d\xb1\x00\x00\x7c\xa9\x5d\xaa\x5d\xa9\x00\x00\x5d\xb4\x5d\xb3\x5d\xb2\x5d\xb0\x5d\xb5\x7c\xa6\x5d\xab\x5d\xad\x5d\xaf\x00\x00\x00\x00\x5f\xbf\x5f\xc2\x00\x00\x5f\xc6\x5f\xc0\x5f\xc5\x5f\xc3\x00\x00\x5f\xbe\x00\x00\x5f\xc4\x5f\xc1\x00\x00\x00\x00\x00\x00\x82\xfb\x61\xcb\x61\xc9\x00\x00\x82\xfc\x00\x00\x61\xcc\x61\xca\x82\xfa\x82\xf9\x00\x00\x63\x7a\x82\xf8\x63\x78\x63\x77\x85\xfa\x61\xcd\x63\x79\x85\xfb\x63\x7c\x85\xfc\x63\x7b\x64\xe1\x88\x90\x64\xe0", /* 9080 */ "\x64\xe5\x64\xe3\x64\xe4\x65\xcd\x64\xe2\x88\x8f\x85\xfd\x65\xcc\x65\xce\x00\x00\x66\xaf\x66\xb0\x00\x00\x8d\xaf\x00\x00\x68\x6a\x68\x69\x4f\xd6\x00\x00\x00\x00\x69\xf4\x56\x74\x00\x00\x69\xf1\x69\xf2\x69\xf0\x00\x00\x69\xf3\x00\x00\x00\x00\x6b\x4b\x6b\x48\x6b\x4d\x6b\x49\x4f\xd7\x4f\xda\x00\x00\x6b\x4a\x4f\xd9\x6b\x4c\x00\x00\x00\x00\x4f\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xf5\x6c\xf7\x51\xd6\x6c\xf3\x6c\xf6\x6c\xf4\x51\xd4\x51\xd7\x00\x00\x51\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x7a\x6f\x7e\x6f\x7b\x00\x00\x53\xe8\x00\x00\x53\xe9\x00\x00\x6f\x7d\x00\x00\x6f\x7f\x6f\x82\x00\x00\x53\xe6\x6f\x81\x00\x00\x00\x00\x53\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x94\x6f\x7c\x72\x57\x72\x60\x72\x5e\x72\x59\x72\x5a\x72\x5f\x72\x61\x56\x76\x00\x00\x72\x5c\x72\x58\x56\x75\x56\x77\x72\x5b\x72\x62\x72\x5d\x00\x00\x00\x00\x58\xe4\x75\x97\x75\x8f\x75\x95\x75\x96\x58\xe5\x00\x00\x75\x8e\x75\x90\x6f\x79\x75\x92\x75\x93\x75\x91\x5b\x73\x00\x00\x00\x00\x00\x00\x78\xfb\x86\x41\x78\xfc\x78\xf9\x58\xe6\x5b\x75\x78\xf8", /* 9100 */ "\x79\x41\x78\xfd\x5b\x72\x79\x44\x78\xf7\x79\x43\x78\xf5\x79\x42\x78\xfa\x5b\x74\x00\x00\x7c\xb1\x00\x00\x7c\xac\x7c\xb2\x7c\xad\x7c\xab\x7c\xae\x5d\xb8\x00\x00\x7c\xb0\x00\x00\x7c\xaf\x5d\xb9\x5f\xc8\x5f\xc7\x7f\xd7\x7f\xda\x7f\xd2\x7f\xd6\x5f\xc9\x7f\xd5\x7f\xd3\x7f\xd9\x7f\xd4\x7f\xd1\x7f\xd8\x00\x00\x83\x45\x61\xd0\x8a\x98\x83\x42\x83\x43\x83\x41\x78\xf6\x61\xcf\x83\x46\x82\xfd\x61\xce\x61\xd1\x83\x44\x86\x42\x63\x7d\x86\x43\x86\x44\x00\x00\x88\x91\x64\xe6\x8a\x99\x8a\x9a\x00\x00\x00\x00\x8a\x9b\x8c\x6c\x8c\x6b\x8d\xb1\x00\x00\x8d\xb0\x8e\xca\x8e\xcb\x8e\xc9\x8f\xb6\x67\xf9\x4f\xdb\x53\xeb\x53\xea\x56\x7a\x56\x79\x72\x64\x72\x65\x72\x63\x00\x00\x56\x78\x75\x9b\x00\x00\x75\x9c\x75\x98\x58\xe7\x75\x99\x00\x00\x75\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x79\x47\x79\x49\x79\x45\x79\x48\x5b\x76\x79\x46\x5b\x77\x00\x00\x00\x00\x79\xf9\x5d\xbc\x5d\xbb\x00\x00\x5d\xba\x00\x00\x7c\xb3\x7c\xb4\x00\x00\x00\x00\x7f\xdc\x7f\xde\x5f\xcd\x5f\xca\x00\x00\x5f\xcc\x5f\xcb\x7f\xdd\x7f\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9180 */ "\x83\x4d\x83\x4a\x83\x4b\x61\xd5\x83\x4c\x83\x47\x83\x48\x61\xd2\x00\x00\x61\xd3\x83\x49\x61\xd4\x00\x00\x86\x48\x00\x00\x86\x49\x86\x46\x86\x47\x63\x7e\x86\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x95\x88\x92\x88\x94\x64\xe9\x88\x98\x64\xe8\x88\x96\x88\x99\x88\x97\x88\x93\x64\xe7\x00\x00\x8a\x9d\x00\x00\x8a\x9e\x8a\x9c\x00\x00\x8a\xa0\x65\xcf\x65\xd0\x8c\x6e\x66\xb2\x8a\x9f\x8c\x6d\x66\xb1\x8d\xb4\x8d\xb5\x67\x6a\x8d\xb3\x00\x00\x8d\xb2\x00\x00\x8e\xcc\x67\xb3\x00\x00\x90\x79\x90\xd7\x90\xd6\x00\x00\x68\x8f\x68\xa9\x90\xd8\x91\x83\x00\x00\x68\xbb\x4f\xdc\x51\xd8\x00\x00\x5d\xbd\x00\x00\x67\x6b\x4f\xdd\x53\xec\x58\xe8\x5b\x78\x65\xd1\x51\xd9\x00\x00\x6f\x84\x6f\x83\x72\x66\x00\x00\x56\x7d\x56\x7b\x56\x7f\x72\x68\x00\x00\x56\x7e\x56\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x72\x67\x58\xeb\x75\xa2\x00\x00\x58\xea\x58\xec\x75\xa7\x58\xee\x75\xa4\x75\xa5\x75\x9d\x58\xed\x75\xa8\x00\x00\x00\x00\x75\x9f\x00\x00\x75\xa0\x75\x9e\x58\xe9\x00\x00\x75\xa6\x75\xa1\x75\xa3\x00\x00\x00\x00\x00\x00\x79\x55\x00\x00\x79\x54", /* 9200 */ "\x79\x52\x79\x4a\x79\x59\x79\x4d\x79\x57\x79\x5e\x79\x56\x5b\x81\x00\x00\x5b\x7c\x79\x4b\x00\x00\x79\x51\x5b\x7e\x00\x00\x79\x50\x5b\x7f\x5b\x82\x79\x53\x00\x00\x5b\x79\x5b\x7a\x79\x5f\x79\x5d\x00\x00\x79\x5c\x79\x4e\x00\x00\x79\x5a\x00\x00\x5b\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x7b\x79\x5b\x79\x4c\x79\x4f\x79\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x44\x7c\xbe\x00\x00\x7c\xb7\x7c\xca\x7c\xd3\x7c\xba\x5d\xc8\x00\x00\x7c\xc7\x5d\xbe\x5d\xc0\x5d\xcc\x7c\xb8\x00\x00\x00\x00\x5d\xc1\x5d\xc3\x5d\xcd\x5d\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xcb\x7c\xc0\x00\x00\x7c\xb5\x5d\xc9\x7c\xbf\x5d\xc5\x7c\xd1\x5d\xca\x7c\xcf\x7c\xc3\x7c\xcd\x5d\xc7\x7c\xb6\x7c\xd0\x7c\xcb\x00\x00\x7c\xd2\x5d\xbf\x00\x00\x00\x00\x5d\xce\x5d\xc4\x00\x00\x00\x00\x7c\xbc\x00\x00\x7c\xc4\x7c\xc8\x00\x00\x7c\xcc\x5d\xc6\x7c\xbb\x7c\xb9\x7c\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x7c\xc2\x7c\xc1\x00\x00\x7c\xc6\x7c\xc9\x00\x00\x7c\xce\x00\x00\x00\x00\x00\x00\x7f\xe1\x00\x00\x5f\xce\x7f\xeb\x7f\xe3\x5f\xd3\x5f\xd7\x7f\xf4\x7f\xfc\x7f\xed", /* 9280 */ "\x5f\xcf\x00\x00\x7f\xf1\x7c\xbd\x00\x00\x5f\xd0\x7f\xf8\x7f\xfd\x7f\xf5\x00\x00\x7f\xf7\x80\x43\x7f\xf9\x7f\xe7\x7f\xf0\x00\x00\x00\x00\x5f\xd8\x00\x00\x5f\xd4\x7f\xe5\x7f\xf2\x5f\xd2\x7f\xec\x5f\xd1\x7f\xfa\x7f\xe9\x7f\xe2\x5f\xd5\x80\x42\x00\x00\x00\x00\x7f\xe4\x7f\xf6\x7f\xf3\x7f\xee\x7f\xe0\x7f\xdf\x7f\xe8\x7f\xfb\x5f\xd6\x80\x41\x7f\xe6\x7f\xea\x61\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe2\x61\xdd\x83\x6e\x83\x6b\x83\x53\x61\xd8\x00\x00\x00\x00\x00\x00\x61\xd7\x61\xde\x00\x00\x00\x00\x00\x00\x83\x51\x61\xdc\x83\x5d\x83\x4f\x83\x50\x61\xd6\x83\x6d\x61\xe0\x83\x60\x83\x65\x83\x5f\x86\x5b\x83\x5b\x83\x63\x83\x61\x83\x54\x83\x4e\x83\x69\x61\xdf\x83\x6a\x00\x00\x83\x64\x00\x00\x83\x59\x83\x57\x83\x52\x00\x00\x00\x00\x00\x00\x83\x5a\x83\x67\x83\x56\x83\x66\x83\x6c\x00\x00\x00\x00\x61\xdb\x00\x00\x83\x62\x83\x68\x83\x5e\x83\x58\x61\xd9\x00\x00\x00\x00\x00\x00\x7f\xef\x83\x5c\x61\xe1\x83\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x61\x63\x82\x86\x60\x86\x5d\x86\x70\x63\x86\x00\x00\x86\x6d\x86\x65", /* 9300 */ "\x86\x6f\x86\x56\x86\x63\x00\x00\x63\x88\x00\x00\x86\x4e\x00\x00\x86\x4c\x86\x6e\x00\x00\x86\x6c\x86\x6b\x86\x5a\x86\x59\x86\x4f\x63\x8a\x00\x00\x86\x55\x86\x5f\x86\x6a\x63\x8d\x86\x71\x00\x00\x64\xf1\x63\x8f\x63\x89\x86\x53\x00\x00\x86\x5c\x86\x4b\x86\x4d\x63\x7f\x63\x8c\x63\x85\x86\x54\x86\x64\x86\x5e\x63\x8b\x86\x4a\x64\xec\x86\x66\x86\x69\x63\x87\x00\x00\x86\x58\x63\x8e\x63\x84\x00\x00\x00\x00\x00\x00\x63\x83\x86\x62\x86\x68\x63\x81\x00\x00\x86\x51\x86\x67\x00\x00\x00\x00\x86\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x57\x88\x9f\x00\x00\x88\xa4\x64\xee\x64\xf0\x88\xaa\x64\xea\x88\xb9\x88\xb0\x88\xa5\x88\xa6\x88\xaf\x00\x00\x64\xf7\x88\xae\x88\x9e\x88\xad\x88\xa1\x88\xba\x64\xf6\x64\xf4\x88\xa2\x00\x00\x88\xb5\x00\x00\x88\xa7\x88\xb4\x00\x00\x88\xb6\x88\x9d\x64\xef\x00\x00\x88\xb7\x00\x00\x00\x00\x88\xab\x00\x00\x64\xf3\x88\xa8\x00\x00\x00\x00\x64\xf5\x88\xb1\x00\x00\x00\x00\x00\x00\x64\xed\x88\xa3\x88\xb2\x00\x00\x88\xac\x86\x50\x88\xb3\x88\xa0\x00\x00\x64\xf2\x00\x00", /* 9380 */ "\x88\xb8\x00\x00\x64\xeb\x88\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xae\x8a\xa7\x65\xd3\x00\x00\x8a\xa2\x8a\xb1\x8a\xa9\x88\xa9\x00\x00\x8a\xb3\x8a\xa3\x00\x00\x65\xd2\x8a\xad\x65\xd4\x65\xdc\x65\xda\x8a\xaf\x65\xdb\x8a\xa5\x00\x00\x8a\xa6\x8a\xab\x8a\xb0\x00\x00\x88\x9a\x65\xd5\x8a\xb8\x8a\xb5\x8a\xb9\x8a\xac\x8a\xa8\x8a\xb6\x8c\x79\x8a\xaa\x00\x00\x65\xd8\x00\x00\x65\xd7\x88\x9c\x65\xd9\x8a\xb2\x8a\xb4\x65\xd6\x8a\xb7\x8a\xa1\x00\x00\x8a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x83\x00\x00\x8c\x72\x66\xb6\x8c\x81\x00\x00\x00\x00\x8c\x70\x66\xb7\x00\x00\x8c\x7b\x00\x00\x8c\x77\x66\xbc\x8c\x82\x8c\x71\x8c\x74\x66\xb4\x8c\x84\x00\x00\x8c\x7c\x8c\x7f\x66\xba\x66\xbf\x66\xbd\x8c\x78\x8c\x73\x00\x00\x66\xb8\x66\xb9\x8c\x6f\x66\xb5\x00\x00\x66\xb3\x66\xbb\x8c\x7e\x66\xbe\x00\x00\x8c\x7a\x8c\x85\x66\xc0\x00\x00\x00\x00\x00\x00\x8c\x76\x00\x00\x8c\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xc2\x8d\xd0\x8d\xc4\x8d\xcb\x8c\x75\x8d\xc9\x8d\xb8\x8d\xce\x67\x6e\x8d\xbc\x8d\xcd", /* 9400 */ "\x8d\xc3\x00\x00\x00\x00\x67\x6d\x00\x00\x00\x00\x8d\xd2\x8d\xc5\x00\x00\x8d\xca\x8d\xcc\x8d\xb6\x8d\xcf\x8d\xc1\x8d\xc6\x8d\xba\x8d\xbe\x8d\xd1\x8d\xc8\x8d\xb7\x8d\xbb\x8d\xbd\x8d\xc7\x00\x00\x67\x6c\x8d\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbf\x8e\xd0\x8e\xd5\x67\xba\x8e\xd7\x00\x00\x67\xb4\x00\x00\x8e\xd3\x8e\xd9\x67\xb9\x67\xb5\x00\x00\x67\xb6\x8e\xcf\x8e\xd6\x67\xb8\x8e\xd4\x67\xb7\x8e\xce\x8e\xd2\x8e\xd1\x00\x00\x8e\xcd\x8e\xd8\x00\x00\x00\x00\x00\x00\x67\xfa\x8f\xbd\x8f\xc0\x8f\xbc\x8f\xbe\x8f\xbf\x8f\xb9\x8f\xba\x8f\xb7\x00\x00\x00\x00\x8f\xbb\x8f\xb8\x67\xfb\x67\xfc\x00\x00\x00\x00\x90\x7b\x00\x00\x90\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x7c\x90\x7e\x00\x00\x68\x6c\x00\x00\x90\x7a\x68\x6b\x68\x6d\x00\x00\x00\x00\x00\x00\x90\xda\x90\xdb\x68\x90\x90\xd9\x00\x00\x91\x64\x91\x63\x91\x65\x68\xab\x91\x66\x68\xaa\x91\x67\x91\x84\x91\x87\x91\x86\x68\xb4\x91\x85\x00\x00\x00\x00\x00\x00\x68\xbe\x68\xbc\x68\xbd\x68\xc3", /* 9480 */ "\x91\xb0\x91\xb1\x91\xaf\x91\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xda\x00\x00\x00\x00\x75\xa9\x79\x60\x83\x6f\x8c\x86\x00\x00\x00\x00", /* 9580 */ "\x51\xdb\x00\x00\x53\xed\x56\x81\x00\x00\x00\x00\x75\xaa\x00\x00\x75\xab\x58\xef\x00\x00\x5b\x85\x79\x62\x79\x61\x5b\x89\x5b\x84\x79\x63\x5b\x86\x5b\x88\x5b\x87\x5b\x83\x00\x00\x00\x00\x00\x00\x5d\xcf\x00\x00\x00\x00\x7c\xd7\x7c\xd5\x00\x00\x7c\xd6\x7c\xd4\x00\x00\x5f\xd9\x00\x00\x5f\xdc\x5f\xde\x5f\xdd\x00\x00\x00\x00\x5f\xda\x5f\xdb\x00\x00\x83\x71\x83\x70\x61\xe3\x83\x72\x00\x00\x83\x73\x61\xe4\x00\x00\x00\x00\x00\x00\x86\x79\x86\x77\x88\xc0\x00\x00\x86\x75\x86\x76\x63\x90\x86\x72\x86\x7a\x86\x74\x86\x78\x88\xbc\x00\x00\x00\x00\x88\xbe\x00\x00\x88\xbf\x64\xfc\x88\xbb\x64\xfb\x88\xbd\x64\xf8\x64\xf9\x64\xfa\x86\x73\x00\x00\x00\x00\x65\xdf\x8a\xbc\x8a\xba\x8a\xbb\x65\xdd\x65\xe0\x65\xde\x00\x00\x00\x00\x00\x00\x8c\x87\x8c\x88\x66\xc1\x00\x00\x8d\xd3\x8d\xd5\x8d\xd4\x67\x6f\x67\xbb\x8e\xdc\x8e\xdb\x8e\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x69\x8a\x00\x00\x69\xf7\x4e\x8b\x69\xf5\x69\xf8\x69\xf6\x00\x00\x00\x00\x00\x00\x6b\x4f\x00\x00\x4f\xe1\x00\x00\x4f\xe2\x6b\x51\x4f\xdf\x6b\x50\x6b\x4e\x4f\xe0\x4f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xf8\x6c\xfb\x51\xdf\x6c\xfa\x6c\xf9\x00\x00\x51\xde\x51\xdd\x00\x00\x51\xe1\x6c\xfc\x51\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x89\x53\xef\x53\xf0\x53\xf1\x6f\x8a\x6f\x86\x53\xee\x6f\x87\x00\x00\x6f\x88\x6f\x85\x00\x00\x00\x00\x00\x00\x56\x88\x00\x00\x00\x00\x56\x85\x72\x69\x56\x86\x56\x89\x72\x6a\x00\x00\x56\x84\x56\x82\x56\x83\x56\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf0\x75\xae\x58\xf8\x75\xad\x00\x00\x75\xb0\x58\xf4\x75\xaf\x5b\x91\x58\xf2\x58\xf5\x58\xf1\x58\xf6\x58\xf7\x58\xf3\x00\x00\x00\x00\x00\x00\x75\xac\x5b\x8d\x79\x65\x00\x00", /* 9680 */ "\x79\x69\x00\x00\x00\x00\x79\x68\x5b\x92\x5b\x8e\x5b\x8f\x79\x64\x79\x66\x79\x67\x5b\x8a\x5b\x8c\x00\x00\x5b\x90\x5b\x8b\x00\x00\x00\x00\x7c\xda\x7c\xd8\x7c\xd9\x5d\xd1\x5d\xd2\x00\x00\x7c\xdb\x5d\xd0\x5f\xdf\x00\x00\x5f\xe1\x5f\xe0\x00\x00\x80\x45\x00\x00\x00\x00\x80\x46\x83\x75\x00\x00\x83\x74\x00\x00\x00\x00\x63\x91\x63\x92\x86\x7b\x63\x93\x00\x00\x88\xc3\x00\x00\x88\xc1\x00\x00\x88\xc2\x64\xfd\x00\x00\x8a\xbd\x66\xc2\x00\x00\x48\xeb\x00\x00\x65\x41\x51\xe2\x00\x00\x56\x8a\x72\x6b\x00\x00\x00\x00\x75\xb1\x58\xf9\x5b\x93\x79\x6a\x79\x6c\x5b\x95\x5b\x94\x5b\x96\x5b\x97\x79\x6b\x5d\xd5\x5d\xd6\x5d\xd4\x5f\xe2\x5d\xd3\x7c\xdc\x00\x00\x00\x00\x00\x00\x5f\xe3\x83\x76\x86\x7c\x63\x94\x65\x42\x8a\xbe\x8a\xc2\x65\xe3\x8a\xbf\x65\xe4\x65\xe2\x8a\xc3\x65\xe5\x8a\xc1\x00\x00\x8c\x89\x65\xe1\x66\xc3\x00\x00\x90\xdc\x00\x00\x00\x00\x51\xe3\x58\xfb\x58\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x98\x79\x6e\x79\x6d\x5b\x99\x00\x00\x00\x00\x7c\xe0\x5d\xda\x5d\xd7\x7c\xdf\x5d\xd9\x7c\xdd\x5d\xd8\x00\x00\x7c\xde\x00\x00\x80\x47", /* 9700 */ "\x5f\xe4\x00\x00\x83\x79\x00\x00\x61\xe5\x83\x77\x61\xe6\x61\xe7\x83\x78\x61\xe8\x00\x00\x86\x7d\x00\x00\x63\x98\x63\x95\x63\x9a\x86\x7f\x63\x96\x86\x7e\x63\x99\x00\x00\x00\x00\x63\x97\x00\x00\x88\xc6\x88\xc8\x00\x00\x00\x00\x65\x43\x88\xc7\x65\x44\x88\xc5\x88\xc4\x00\x00\x8a\xc5\x8a\xc4\x65\xe6\x8a\xc6\x8c\x8e\x66\xc5\x8c\x8d\x8c\x8a\x66\xc4\x8c\x8b\x8c\x8c\x00\x00\x8d\xd6\x8d\xd7\x67\x70\x00\x00\x67\xbe\x00\x00\x00\x00\x8e\xdd\x00\x00\x00\x00\x67\xbc\x67\xbd\x8e\xde\x00\x00\x00\x00\x67\xfd\x68\x41\x8f\xc1\x00\x00\x00\x00\x68\x91\x90\xde\x68\x93\x00\x00\x90\xdd\x90\xdf\x68\x92\x91\x68\x00\x00\x91\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe4\x00\x00\x00\x00\x00\x00\x5d\xdb\x00\x00\x80\x48\x00\x00\x83\x7a\x63\x9b\x63\x9c\x00\x00\x51\xe5\x00\x00\x61\xe9\x66\xc6\x53\xf2\x00\x00\x00\x00\x00\x00\x63\x9d\x00\x00\x68\x6e\x53\xf3\x75\xb2\x00\x00\x79\x6f\x00\x00\x79\x71\x00\x00\x79\x70\x00\x00\x7c\xe4\x7c\xe1\x5d\xdc\x00\x00\x5d\xdd\x7c\xe2\x7c\xe3\x00\x00\x80\x4a\x80\x4f\x5f\xe5\x80\x49\x80\x4b\x80\x52", /* 9780 */ "\x80\x4d\x80\x51\x80\x4e\x80\x4c\x80\x50\x5f\xe6\x00\x00\x00\x00\x83\x7d\x00\x00\x83\x7b\x61\xeb\x00\x00\x61\xea\x83\x7c\x61\xec\x00\x00\x00\x00\x00\x00\x00\x00\x86\x83\x00\x00\x00\x00\x86\x82\x63\x9e\x86\x81\x88\xc9\x00\x00\x88\xcb\x88\xcd\x88\xcc\x00\x00\x65\x45\x88\xca\x8a\xcd\x65\xe7\x8a\xcb\x8a\xce\x65\xe8\x00\x00\x8a\xc9\x00\x00\x8a\xcc\x8a\xca\x8a\xc7\x65\xe9\x8a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x8f\x00\x00\x00\x00\x8c\x91\x8c\x90\x00\x00\x8d\xd8\x00\x00\x8d\xd9\x00\x00\x00\x00\x00\x00\x8e\xdf\x00\x00\x68\x43\x00\x00\x68\x42\x90\x7f\x90\x81\x68\x94\x90\xe0\x00\x00\x68\xb5\x00\x00\x53\xf4\x5b\x9a\x80\x54\x80\x53\x83\x7f\x83\x7e\x00\x00\x00\x00\x65\x46\x88\xcf\x88\xce\x8a\xd1\x8a\xcf\x8a\xd2\x8a\xd0\x00\x00\x00\x00\x66\xc7\x8c\x92\x8c\x93\x8c\x94\x00\x00\x8e\xe0\x00\x00\x8f\xc2\x00\x00\x90\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf5\x00\x00\x00\x00\x86\x84\x88\xd0\x00\x00\x53\xf6\x00\x00\x00\x00\x5f\xe7\x00\x00\x86\x85\x65\xea\x8a\xd3\x66\xc8\x00\x00\x8d\xda\x8d\xdb\x67\xbf", /* 9800 */ "\x90\x82\x53\xf7\x59\x41\x59\x42\x75\xb3\x5b\x9b\x5b\x9c\x79\x72\x5b\x9d\x00\x00\x5d\xe1\x00\x00\x5d\xe3\x7c\xe6\x7c\xe7\x7c\xe5\x5d\xde\x5d\xdf\x5d\xe2\x5d\xe0\x00\x00\x00\x00\x80\x55\x5f\xe8\x5f\xe9\x00\x00\x00\x00\x83\x87\x61\xef\x83\x82\x83\x81\x00\x00\x83\x86\x61\xed\x00\x00\x00\x00\x63\xa5\x00\x00\x83\x83\x83\x88\x83\x85\x83\x84\x00\x00\x61\xee\x00\x00\x63\xa3\x00\x00\x86\x87\x63\x9f\x00\x00\x86\x88\x00\x00\x00\x00\x86\x86\x00\x00\x63\xa2\x63\xa0\x63\xa4\x00\x00\x63\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\xd1\x00\x00\x88\xd6\x88\xd2\x88\xd5\x65\x47\x00\x00\x87\xc0\x88\xd4\x88\xd3\x00\x00\x65\xed\x65\xeb\x65\xee\x65\xec\x8a\xd4\x8a\xd5\x8a\xd6\x65\xef\x00\x00\x00\x00\x00\x00\x8c\x98\x66\xca\x8c\x96\x00\x00\x66\xcb\x8c\x95\x8c\x97\x66\xc9\x8d\xdf\x8d\xdc\x00\x00\x8d\xdd\x8d\xde\x8e\xe1\x67\xc1\x00\x00\x67\xc0\x00\x00\x8f\xc4\x8f\xc3\x68\x44\x00\x00\x00\x00\x00\x00\x68\x6f\x68\x95\x68\xac\x91\x69\x91\x9e\x91\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf8\x79\x73\x00\x00\x00\x00\x7c\xe8\x80\x56\x80\x57\x5f\xea\x00\x00\x5f\xeb\x83\x89\x61\xf0\x00\x00\x00\x00\x65\x48\x00\x00\x8a\xd7\x00\x00\x65\xf0\x8c\x9b\x66\xcc\x8c\x9a\x8c\x9c\x8c\x99\x8e\xe4\x8d\xe0\x8d\xe1\x00\x00\x67\x71\x00\x00\x8e\xe3\x00\x00\x00\x00\x8e\xe2\x00\x00\x8f\xc5\x91\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf9\x00\x00\x00\x00\x00\x00\x53\xfa\x00\x00\x00\x00\x56\x8b\x72\x6c\x00\x00\x75\xb4\x00\x00\x5b\x9e\x00\x00\x5b\xa1\x5b\x9f\x79\x74\x00\x00\x5b\xa3\x00\x00\x5b\xa0\x00\x00\x00\x00\x5b\xa2\x00\x00\x5d\xe5\x00\x00\x7c\xe9\x00\x00\x00\x00\x7c\xea\x83\x8b\x00\x00\x5d\xe4\x5d\xe6\x5d\xe7\x00\x00", /* 9900 */ "\x80\x59\x00\x00\x80\x58\x5f\xec\x00\x00\x5f\xed\x00\x00\x80\x5a\x83\x8a\x5f\xef\x61\xf1\x00\x00\x5f\xee\x00\x00\x00\x00\x00\x00\x63\xa6\x83\x8c\x61\xf3\x61\xf2\x83\x8d\x83\x90\x83\x8e\x83\x8f\x61\xf4\x00\x00\x63\xab\x63\xa9\x00\x00\x00\x00\x63\xa8\x86\x8a\x00\x00\x63\xaa\x00\x00\x00\x00\x86\x89\x88\xd7\x00\x00\x86\x8b\x63\xa7\x86\x8c\x88\xda\x88\xd8\x88\xd9\x88\xde\x65\xf4\x88\xdd\x88\xe0\x88\xdf\x88\xdc\x88\xdb\x00\x00\x65\x49\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xda\x00\x00\x8a\xd9\x65\xf3\x65\xf1\x65\xf2\x00\x00\x8a\xd8\x00\x00\x8c\x9f\x00\x00\x66\xcd\x00\x00\x8c\x9e\x8c\x9d\x66\xce\x00\x00\x8d\xe6\x8d\xe5\x00\x00\x8d\xe3\x00\x00\x8d\xe2\x67\x73\x67\x72\x8d\xe7\x8f\xc6\x68\x45\x8e\xe6\x67\xc2\x8e\xe5\x8d\xe4\x00\x00\x8f\xc7\x68\x70\x00\x00\x68\xad\x91\x6a\x00\x00\x91\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xfb\x75\xb5\x88\xe1\x53\xfc\x00\x00\x00\x00\x80\x5c\x80\x5b\x86\x8d\x00\x00\x00\x00\x88\xe3\x00\x00\x88\xe2\x00\x00\x65\xf5\x8c\xa0\x8c\xa1\x67\x74\x00\x00\x00\x00\x91\xa2\x56\x8c\x5b\xa5\x5b\xa4\x7c\xeb\x7c\xed\x5d\xe9\x7c\xec\x5d\xe8\x5d\xea\x7c\xee\x00\x00\x00\x00\x00\x00\x80\x5e\x80\x60\x80\x5f\x00\x00\x80\x62\x00\x00\x00\x00\x00\x00\x5f\xf0\x80\x61\x80\x5d\x00\x00\x00\x00\x00\x00\x80\x63\x00\x00\x83\x97\x00\x00\x83\x9a\x83\x9c\x83\x92\x83\x96\x83\x93\x61\xf6\x61\xf9\x61\xfb\x83\x94\x83\x95\x61\xfa\x83\x98\x83\x9b\x83\x99\x61\xfc\x00\x00\x61\xf8\x83\x91\x61\xf5\x00\x00\x61\xf7\x00\x00\x00\x00\x63\xad\x86\x93\x86\x91\x86\x90\x00\x00\x86\x96\x00\x00\x86\x95\x86\x94\x00\x00\x86\x8f\x63\xac\x86\x8e\x00\x00\x86\x92\x63\xae\x00\x00\x00\x00\x88\xe6\x00\x00\x88\xea\x88\xe7\x88\xe9\x88\xe8\x88\xe5\x88\xeb\x88\xee\x88\xec\x88\xed\x65\x4b", /* 9a00 */ "\x00\x00\x65\x4a\x88\xe4\x88\xef\x8a\xdf\x8a\xe2\x8a\xe4\x8a\xe3\x00\x00\x8a\xdd\x8a\xe1\x8a\xdc\x00\x00\x8a\xde\x65\xf6\x8a\xdb\x00\x00\x8a\xe0\x00\x00\x00\x00\x8c\xae\x8c\xa3\x66\xcf\x00\x00\x00\x00\x66\xd0\x8c\xa2\x8c\xa7\x8c\xad\x8c\xa5\x8c\xac\x00\x00\x8c\xa9\x00\x00\x8c\xa8\x8c\xab\x8c\xa6\x8c\xa4\x00\x00\x8c\xaa\x00\x00\x8d\xee\x8d\xec\x67\x75\x8d\xeb\x8d\xf1\x8d\xef\x00\x00\x67\x76\x8d\xea\x8d\xe8\x00\x00\x8d\xe9\x67\x78\x8d\xed\x67\x77\x8d\xf0\x8e\xe7\x8e\xed\x00\x00\x00\x00\x8e\xe8\x67\xc6\x8e\xee\x67\xc5\x8e\xec\x8e\xeb\x67\xc4\x8e\xea\x67\xc3\x8e\xe9\x00\x00\x8f\xcd\x8f\xcf\x8f\xce\x00\x00\x8f\xcb\x68\x47\x8f\xc8\x8f\xcc\x8f\xd1\x00\x00\x8f\xd0\x8f\xc9\x8f\xca\x68\x46\x90\x83\x68\x73\x00\x00\x90\x84\x68\x71\x68\x72\x00\x00\x00\x00\x90\xe2\x68\x96\x91\x88\x00\x00\x68\xb6\x00\x00\x91\xa3\x68\xb7\x91\xa4\x91\xa5\x91\xb3\x91\xb2\x68\xc6\x91\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8d\x00\x00\x00\x00\x7c\xf0\x00\x00\x7c\xef\x00\x00\x5f\xf1\x5f\xf2\x80\x64\x00\x00\x83\x9d\x86\x99\x00\x00\x00\x00\x61\xfd\x63\xaf\x86\x97\x00\x00\x86\x9a\x63\xb0\x00\x00\x88\xf0\x86\x98\x8a\xe5\x65\xf7\x8c\xaf\x00\x00\x00\x00\x00\x00\x8d\xf4\x8d\xf2\x00\x00\x00\x00\x8d\xf3\x00\x00\x00\x00\x8e\xef\x00\x00\x67\xc7\x8f\xd2\x68\x76\x68\x48\x68\x74\x68\x75\x90\xe3\x68\xae\x00\x00\x56\x8e\x00\x00\x00\x00\x00\x00\x8a\xe6\x00\x00\x00\x00\x72\x6d\x00\x00\x5d\xeb\x00\x00\x80\x65\x00\x00\x00\x00\x5f\xf3\x80\x66\x00\x00\x00\x00\x00\x00\x83\x9f\x83\x9e\x63\xb2\x62\x41\x62\x42\x00\x00\x83\xa2\x83\xa1\x83\xa0\x00\x00\x00\x00\x86\x9b\x86\x9e\x00\x00\x86\x9d\x86\x9c\x63\xb1\x88\xf4\x88\xf2\x88\xf1\x00\x00", /* 9b00 */ "\x00\x00\x88\xf3\x00\x00\x65\xf8\x8a\xe8\x8a\xe9\x65\xf9\x00\x00\x8a\xe7\x00\x00\x8c\xb1\x8c\xb0\x8c\xb3\x66\xd1\x8c\xb2\x00\x00\x8d\xf5\x8d\xf7\x8d\xf6\x00\x00\x00\x00\x8e\xf0\x8e\xf3\x8e\xf1\x8e\xf2\x8f\xd3\x68\x49\x00\x00\x00\x00\x00\x00\x90\x85\x90\x86\x90\x87\x00\x00\x68\x97\x68\xaf\x91\xa6\x56\x8f\x00\x00\x62\x43\x63\xb3\x8a\xea\x00\x00\x8f\xd4\x00\x00\x00\x00\x91\xb4\x72\x6e\x00\x00\x68\xc7\x56\x90\x86\x9f\x00\x00\x8a\xeb\x00\x00\x8c\xb4\x00\x00\x00\x00\x8e\xf4\x8f\xd5\x56\x91\x00\x00\x80\x67\x80\x68\x00\x00\x5f\xf4\x5f\xf5\x83\xa4\x62\x45\x62\x44\x83\xa3\x00\x00\x88\xf5\x00\x00\x8a\xec\x8a\xee\x8a\xed\x65\xfc\x65\xfb\x65\xfa\x00\x00\x67\xc9\x8e\xf5\x00\x00\x67\xc8\x8f\xd7\x8f\xd6\x00\x00\x68\x98\x90\xe4\x59\x43\x7c\xf1\x00\x00\x00\x00\x00\x00\x80\x6b\x80\x69\x80\x6a\x00\x00\x00\x00\x83\xad\x00\x00\x83\xa8\x83\xa5\x83\xac\x00\x00\x00\x00\x00\x00\x83\xae\x00\x00\x00\x00\x62\x47\x83\xab\x83\xa7\x00\x00\x00\x00\x83\xa6\x83\xaa\x83\xa9\x62\x46\x00\x00\x00\x00\x86\xaa\x86\xa5\x86\xa3\x86\xac\x86\xa4\x00\x00", /* 9b80 */ "\x86\xa0\x00\x00\x86\xa6\x00\x00\x00\x00\x86\xa1\x89\x41\x86\xa2\x86\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xa9\x63\xb4\x86\xa8\x86\xa7\x00\x00\x86\xab\x00\x00\x00\x00\x00\x00\x00\x00\x88\xf6\x88\xf9\x00\x00\x00\x00\x88\xf8\x00\x00\x89\x43\x88\xfb\x89\x42\x00\x00\x88\xfd\x88\xfc\x88\xfa\x00\x00\x88\xf7\x00\x00\x65\x4e\x65\x4d\x00\x00\x65\x4f\x65\x4c\x89\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xf4\x8a\xf7\x00\x00\x8a\xf5\x8a\xf9\x00\x00\x00\x00\x00\x00\x8a\xfa\x00\x00\x8a\xf2\x66\x44\x8a\xf3\x00\x00\x8a\xf1\x8a\xf8\x00\x00\x8a\xf0\x8a\xef\x66\x43\x66\x41\x65\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xf6\x8c\xbd\x8c\xc3\x66\xd4\x8c\xbe\x00\x00\x8c\xc1\x8c\xc5\x66\xd5\x8c\xc0\x00\x00\x8c\xb8\x00\x00\x8c\xb7\x8c\xc4\x8c\xbb\x00\x00\x8c\xb9\x8c\xc2\x8c\xba\x66\xd3\x66\xd2\x00\x00\x8c\xb5\x8c\xb6\x8c\xbf\x00\x00\x00\x00\x00\x00\x8c\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xfa\x8d\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x66\x42\x00\x00\x00\x00", /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xfb\x8e\x44\x8e\x42\x8d\xf9\x8e\x47\x00\x00\x8d\xf8\x00\x00\x67\x7a\x8e\x43\x00\x00\x00\x00\x00\x00\x8d\xfc\x67\x79\x8e\x46\x00\x00\x00\x00\x8e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x8e\xf8\x8e\xf7\x00\x00\x00\x00\x00\x00\x8f\x41\x00\x00\x8e\xfa\x8e\xfd\x67\xcb\x00\x00\x00\x00\x8e\xfb\x8e\xfc\x00\x00\x8e\xf6\x8e\xf9\x67\xca\x00\x00\x00\x00\x00\x00\x68\x4b\x8f\xe2\x8f\xdd\x8f\xe1\x00\x00\x8f\xe4\x8f\xe0\x00\x00\x8f\xdc\x00\x00\x68\x4d\x8f\xdf\x8f\xe3\x68\x4c\x8f\xda\x8e\x41\x8f\xde\x00\x00\x00\x00\x8f\xdb\x00\x00\x8f\xd8\x00\x00\x8f\xd9\x68\x4a\x90\x8b\x90\x8d\x90\x90\x90\x8c\x90\x91\x00\x00\x90\x8a\x00\x00\x90\x88\x00\x00\x68\x77\x90\x8e\x68\x79\x68\x78\x90\x89\x90\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x90\xe9\x68\x99\x90\xea\x00\x00\x90\xe8\x90\xe5\x00\x00\x00\x00\x90\xe7\x90\xe6\x91\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x91\x6d\x91\x6c\x00\x00\x00\x00\x91\x8b\x00\x00\x91\x8a\x91\x89\x91\x8c\x00\x00\x68\xbf\x68\xc0\x91\xba\x91\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x44\x79\x75\x7c\xf4\x00\x00\x5d\xec\x7c\xf2\x00\x00\x00\x00\x7c\xf3\x00\x00\x00\x00\x00\x00\x80\x6c\x80\x6d\x5f\xf8\x5f\xf6\x80\x6e\x5f\xf7\x83\xb3\x00\x00\x83\xb6\x83\xb0\x83\xb7\x83\xaf\x83\xb1\x00\x00\x83\xb2", /* 9d00 */ "\x83\xb5\x00\x00\x00\x00\x62\x4a\x83\xba\x83\xb9\x62\x48\x83\xb4\x83\xb8\x62\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xb7\x00\x00\x63\xb9\x00\x00\x86\xb2\x63\xb5\x00\x00\x86\xaf\x86\xb5\x86\xb8\x00\x00\x63\xba\x00\x00\x86\xb4\x86\xb1\x86\xb9\x86\xb0\x00\x00\x86\xb6\x63\xb6\x00\x00\x86\xae\x63\xb7\x00\x00\x63\xb8\x86\xb3\x00\x00\x00\x00\x00\x00\x89\x56\x89\x49\x89\x4a\x89\x4d\x89\x4b\x00\x00\x89\x45\x00\x00\x00\x00\x89\x48\x89\x52\x89\x4c\x00\x00\x00\x00\x65\x50\x00\x00\x89\x54\x89\x51\x65\x51\x89\x53\x89\x46\x89\x4f\x89\x50\x00\x00\x89\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x41\x8b\x43\x8b\x46\x00\x00\x00\x00\x8a\xfd\x00\x00\x66\x45\x8b\x48\x8a\xfc\x8b\x49\x00\x00\x8b\x45\x8b\x47\x8b\x4b\x8b\x44\x8b\x4c\x8b\x42\x8a\xfb\x66\x46\x00\x00\x8b\x4a\x66\x47\x66\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\x8c\xdf\x8c\xd6\x66\xd9\x8c\xd2\x66\xda\x00\x00\x00\x00\x8c\xdb\x8c\xd5\x8c\xcb\x66\xd8\x8c\xd8\x8c\xd3\x8c\xd4\x00\x00\x8c\xc6\x8c\xcd\x8c\xdc\x00\x00\x8c\xd9\x00\x00\x8c\xd1\x00\x00\x8c\xdd", /* 9d80 */ "\x8c\xcc\x8c\xc7\x8c\xda\x00\x00\x8c\xc9\x8c\xd7\x8c\xce\x8c\xde\x8c\xca\x66\xd6\x8c\xc8\x8c\xcf\x8c\xd0\x00\x00\x00\x00\x00\x00\x8e\x4e\x00\x00\x8e\x4c\x00\x00\x8e\x51\x00\x00\x8e\x5d\x8e\x54\x8e\x4d\x8e\x49\x8e\x56\x8e\x4f\x8e\x52\x8e\x4b\x8e\x59\x8e\x48\x8e\x50\x8e\x55\x8e\x57\x8e\x5a\x8e\x4a\x00\x00\x8e\x5e\x8e\x5f\x8e\x58\x8e\x5c\x8e\x53\x00\x00\x8f\x51\x8f\x54\x00\x00\x67\xcc\x00\x00\x8f\x53\x8f\x58\x8f\x56\x67\xcd\x8f\x4d\x8f\x43\x8f\x42\x67\xcf\x8f\x4f\x8f\x50\x8f\x4c\x8f\x44\x00\x00\x8f\x49\x8e\x5b\x00\x00\x8f\x45\x67\xce\x8f\x4b\x00\x00\x8f\x4a\x00\x00\x8f\x46\x8f\x52\x00\x00\x8f\x47\x8f\xe9\x8f\x55\x8f\x57\x8f\x4e\x8f\x48\x8f\xea\x8f\xec\x8f\xe6\x68\x4e\x00\x00\x8f\xf3\x8f\xf1\x68\x4f\x8f\xf0\x8f\xef\x8f\xe8\x8f\xe5\x8f\xeb\x8f\xf4\x8f\xe7\x8f\xed\x00\x00\x90\x9a\x90\x9f\x90\x95\x90\x98\x68\x7a\x90\x9c\x00\x00\x90\xa3\x8f\xee\x00\x00\x90\x96\x90\xa0\x90\xa4\x90\x9b\x90\x94\x90\x9e\x00\x00\x90\x9d\x90\xa2\x90\xa1\x8f\xf2\x90\x99\x90\x93\x90\x97\x68\x9a\x68\x9b\x90\x92\x00\x00\x90\xf5\x90\xec\x90\xf4", /* 9e00 */ "\x90\xf1\x90\xf2\x90\xeb\x90\xee\x90\xf6\x90\xf0\x90\xef\x90\xed\x00\x00\x90\xf3\x00\x00\x91\x6e\x00\x00\x91\x6f\x00\x00\x91\x71\x91\x70\x91\x73\x91\x72\x91\x8e\x91\x8d\x91\xa7\x00\x00\x91\xa8\x00\x00\x91\xb5\x68\xc4\x68\xc8\x00\x00\x91\xbf\x68\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x45\x00\x00\x00\x00\x00\x00\x67\x7b\x8f\x59\x00\x00\x68\x9c\x68\x9d\x00\x00\x59\x46", /* 9e80 */ "\x7c\xf5\x00\x00\x5d\xed\x83\xbb\x00\x00\x00\x00\x86\xbb\x86\xbc\x86\xba\x89\x58\x89\x57\x65\x52\x8b\x4e\x89\x59\x8b\x4d\x00\x00\x00\x00\x8c\xe1\x66\xdb\x66\xdd\x8c\xe0\x00\x00\x00\x00\x66\xdc\x00\x00\x8e\x60\x8e\x62\x8e\x61\x8f\x5a\x67\xd0\x00\x00\x68\x7b\x90\xf7\x91\x74\x00\x00\x00\x00\x91\xc2\x59\x47\x00\x00\x80\x6f\x00\x00\x62\x4b\x00\x00\x00\x00\x00\x00\x86\xbe\x86\xbd\x00\x00\x89\x5a\x00\x00\x00\x00\x00\x00\x66\xde\x67\x7c\x8f\xf5\x91\xbb\x00\x00\x00\x00\x00\x00\x59\x48\x5f\xf9\x00\x00\x62\x4c\x00\x00\x8c\xe2\x00\x00\x90\xa5\x5b\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x89\x5b\x00\x00\x00\x00\x00\x00\x68\xb0\x5b\xa7\x62\x4d\x65\x53\x90\xa6\x5b\xa8\x00\x00\x83\xbc\x63\xbc\x86\xbf\x86\xc0\x00\x00\x63\xbb\x00\x00\x89\x5c\x65\x57\x65\x55\x65\x56\x65\x54\x8b\x4f\x66\x48\x00\x00\x00\x00\x00\x00\x8e\x64\x8e\x63\x8e\x66\x8e\x65\x67\x7d\x00\x00\x00\x00\x8f\x5b\x00\x00\x8f\x5d\x8f\x5c\x67\xd1\x8f\xf6\x00\x00\x90\xa7\x90\xa8\x68\x7c\x91\x75\x91\x8f\x68\xc1\x00\x00\x79\x76\x86\xc1\x89\x5d\x8c\xe3\x7c\xf6\x00\x00\x89\x5e", /* 9f00 */ "\x8b\x51\x8b\x50\x00\x00\x00\x00\x00\x00\x00\x00\x90\xa9\x68\x9e\x00\x00\x91\x76\x91\x90\x00\x00\x00\x00\x00\x00\x5d\xee\x83\xbd\x83\xbe\x00\x00\x86\xc2\x5d\xef\x00\x00\x66\x49\x8b\x52\x00\x00\x8f\x5f\x67\xd2\x8f\x60\x8f\x5e\x90\xaa\x00\x00\x90\xf8\x00\x00\x5d\xf0\x00\x00\x89\x61\x89\x60\x89\x5f\x8b\x53\x00\x00\x00\x00\x8b\x57\x8b\x56\x8b\x55\x8b\x54\x66\x4a\x8c\xe4\x8e\x68\x67\x7e\x8e\x67\x8f\x61\x8f\xf9\x8f\xf8\x68\x50\x8f\xf7\x90\xad\x90\xac\x90\xab\x00\x00\x00\x00\x5f\xfa\x00\x00\x86\xc3\x65\x58\x00\x00\x8c\xe5\x8c\xe6\x8f\xfa\x90\xae\x00\x00\x00\x00\x90\xf9\x91\x77\x91\xa9\x91\xc4\x5f\xfb\x65\x59\x8b\x58\x8c\xe7\x8f\x62\x90\xaf\x00\x00\x00\x00\x62\x4f\x00\x00\x89\x62\x8b\x59\x8c\xe8\x8c\xe9\x8c\xea\x8e\x6d\x00\x00\x8e\x69\x67\xd3\x8e\x6c\x8e\x6b\x67\x7f\x8e\x6a\x67\x82\x00\x00\x67\x81\x8f\x64\x8f\x63\x67\xd4\x67\xd5\x00\x00\x00\x00\x68\x52\x8f\xfb\x68\x51\x00\x00\x90\xb2\x90\xb3\x90\xb1\x90\xb0\x68\xa0\x00\x00\x90\xfa\x90\xfb\x90\xfc\x68\x9f\x91\x78\x91\x7b\x91\x7a\x91\x79\x00\x00\x00\x00\x91\xc3\x00\x00", /* 9f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbd\x00\x00\x00\x00\x66\x51\x8e\x6e\x8f\x65\x00\x00\x68\x53\x8f\xfc\x00\x00\x00\x00\x91\xc5\x00\x00\x00\x00\x00\x00\x63\xbe\x00\x00\x00\x00\x00\x00\x89\x63\x00\x00\x8f\xfd\x00\x00\x91\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\xc2\x41\xc2\x42\xc2\x43\xc2\x44\xc2\x45\xc2\x46\xc2\x47\xc2\x48\xc2\x49\xc2\x4a\xc2\x4b\xc2\x4c\xc2\x4d\xc2\x4e\xc2\x4f\xc2\x50\xc2\x51\xc2\x52\xc2\x53\xc2\x54\xc2\x55\xc2\x56\xc2\x57\xc2\x58\xc2\x59\xc2\x5a\xc2\x5b\xc2\x5c\xc2\x5d\xc2\x5e\xc2\x5f\xc2\x60\xc2\x61\xc2\x62\xc2\x63\xc2\x64\xc2\x65\xc2\x66\xc2\x67\xc2\x68\xc2\x69\xc2\x6a\xc2\x6b\xc2\x6c\xc2\x6d\xc2\x6e\xc2\x6f\xc2\x70\xc2\x71\xc2\x72\xc2\x73\xc2\x74\xc2\x75\xc2\x76\xc2\x77\xc2\x78\xc2\x79\xc2\x7a\xc2\x7b\xc2\x7c\xc2\x7d\xc2\x7e\xc2\x7f\xc2\x81\xc2\x82\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\xc2\x88\xc2\x89\xc2\x8a\xc2\x8b\xc2\x8c\xc2\x8d\xc2\x8e\xc2\x8f\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\xc2\x95\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\xc2\xa3\xc2\xa4\xc2\xa5\xc2\xa6\xc2\xa7\xc2\xa8\xc2\xa9\xc2\xaa\xc2\xab\xc2\xac\xc2\xad\xc2\xae\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc2\xc0\xc2\xc1", /* e080 */ "\xc2\xc2\xc2\xc3\xc2\xc4\xc2\xc5\xc2\xc6\xc2\xc7\xc2\xc8\xc2\xc9\xc2\xca\xc2\xcb\xc2\xcc\xc2\xcd\xc2\xce\xc2\xcf\xc2\xd0\xc2\xd1\xc2\xd2\xc2\xd3\xc2\xd4\xc2\xd5\xc2\xd6\xc2\xd7\xc2\xd8\xc2\xd9\xc2\xda\xc2\xdb\xc2\xdc\xc2\xdd\xc2\xde\xc2\xdf\xc2\xe0\xc2\xe1\xc2\xe2\xc2\xe3\xc2\xe4\xc2\xe5\xc2\xe6\xc2\xe7\xc2\xe8\xc2\xe9\xc2\xea\xc2\xeb\xc2\xec\xc2\xed\xc2\xee\xc2\xef\xc2\xf0\xc2\xf1\xc2\xf2\xc2\xf3\xc2\xf4\xc2\xf5\xc2\xf6\xc2\xf7\xc2\xf8\xc2\xf9\xc2\xfa\xc2\xfb\xc2\xfc\xc2\xfd\xc3\x41\xc3\x42\xc3\x43\xc3\x44\xc3\x45\xc3\x46\xc3\x47\xc3\x48\xc3\x49\xc3\x4a\xc3\x4b\xc3\x4c\xc3\x4d\xc3\x4e\xc3\x4f\xc3\x50\xc3\x51\xc3\x52\xc3\x53\xc3\x54\xc3\x55\xc3\x56\xc3\x57\xc3\x58\xc3\x59\xc3\x5a\xc3\x5b\xc3\x5c\xc3\x5d\xc3\x5e\xc3\x5f\xc3\x60\xc3\x61\xc3\x62\xc3\x63\xc3\x64\xc3\x65\xc3\x66\xc3\x67\xc3\x68\xc3\x69\xc3\x6a\xc3\x6b\xc3\x6c\xc3\x6d\xc3\x6e\xc3\x6f\xc3\x70\xc3\x71\xc3\x72\xc3\x73\xc3\x74\xc3\x75\xc3\x76\xc3\x77\xc3\x78\xc3\x79\xc3\x7a\xc3\x7b\xc3\x7c\xc3\x7d\xc3\x7e\xc3\x7f\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85", /* e100 */ "\xc3\x86\xc3\x87\xc3\x88\xc3\x89\xc3\x8a\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\xc3\x90\xc3\x91\xc3\x92\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\xc3\x9d\xc3\x9e\xc3\x9f\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xb7\xc3\xb8\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf\xc3\xc0\xc3\xc1\xc3\xc2\xc3\xc3\xc3\xc4\xc3\xc5\xc3\xc6\xc3\xc7\xc3\xc8\xc3\xc9\xc3\xca\xc3\xcb\xc3\xcc\xc3\xcd\xc3\xce\xc3\xcf\xc3\xd0\xc3\xd1\xc3\xd2\xc3\xd3\xc3\xd4\xc3\xd5\xc3\xd6\xc3\xd7\xc3\xd8\xc3\xd9\xc3\xda\xc3\xdb\xc3\xdc\xc3\xdd\xc3\xde\xc3\xdf\xc3\xe0\xc3\xe1\xc3\xe2\xc3\xe3\xc3\xe4\xc3\xe5\xc3\xe6\xc3\xe7\xc3\xe8\xc3\xe9\xc3\xea\xc3\xeb\xc3\xec\xc3\xed\xc3\xee\xc3\xef\xc3\xf0\xc3\xf1\xc3\xf2\xc3\xf3\xc3\xf4\xc3\xf5\xc3\xf6\xc3\xf7\xc3\xf8\xc3\xf9\xc3\xfa\xc3\xfb\xc3\xfc\xc3\xfd\xc4\x41\xc4\x42\xc4\x43\xc4\x44\xc4\x45\xc4\x46\xc4\x47\xc4\x48", /* e180 */ "\xc4\x49\xc4\x4a\xc4\x4b\xc4\x4c\xc4\x4d\xc4\x4e\xc4\x4f\xc4\x50\xc4\x51\xc4\x52\xc4\x53\xc4\x54\xc4\x55\xc4\x56\xc4\x57\xc4\x58\xc4\x59\xc4\x5a\xc4\x5b\xc4\x5c\xc4\x5d\xc4\x5e\xc4\x5f\xc4\x60\xc4\x61\xc4\x62\xc4\x63\xc4\x64\xc4\x65\xc4\x66\xc4\x67\xc4\x68\xc4\x69\xc4\x6a\xc4\x6b\xc4\x6c\xc4\x6d\xc4\x6e\xc4\x6f\xc4\x70\xc4\x71\xc4\x72\xc4\x73\xc4\x74\xc4\x75\xc4\x76\xc4\x77\xc4\x78\xc4\x79\xc4\x7a\xc4\x7b\xc4\x7c\xc4\x7d\xc4\x7e\xc4\x7f\xc4\x81\xc4\x82\xc4\x83\xc4\x84\xc4\x85\xc4\x86\xc4\x87\xc4\x88\xc4\x89\xc4\x8a\xc4\x8b\xc4\x8c\xc4\x8d\xc4\x8e\xc4\x8f\xc4\x90\xc4\x91\xc4\x92\xc4\x93\xc4\x94\xc4\x95\xc4\x96\xc4\x97\xc4\x98\xc4\x99\xc4\x9a\xc4\x9b\xc4\x9c\xc4\x9d\xc4\x9e\xc4\x9f\xc4\xa0\xc4\xa1\xc4\xa2\xc4\xa3\xc4\xa4\xc4\xa5\xc4\xa6\xc4\xa7\xc4\xa8\xc4\xa9\xc4\xaa\xc4\xab\xc4\xac\xc4\xad\xc4\xae\xc4\xaf\xc4\xb0\xc4\xb1\xc4\xb2\xc4\xb3\xc4\xb4\xc4\xb5\xc4\xb6\xc4\xb7\xc4\xb8\xc4\xb9\xc4\xba\xc4\xbb\xc4\xbc\xc4\xbd\xc4\xbe\xc4\xbf\xc4\xc0\xc4\xc1\xc4\xc2\xc4\xc3\xc4\xc4\xc4\xc5\xc4\xc6\xc4\xc7\xc4\xc8\xc4\xc9", /* e200 */ "\xc4\xca\xc4\xcb\xc4\xcc\xc4\xcd\xc4\xce\xc4\xcf\xc4\xd0\xc4\xd1\xc4\xd2\xc4\xd3\xc4\xd4\xc4\xd5\xc4\xd6\xc4\xd7\xc4\xd8\xc4\xd9\xc4\xda\xc4\xdb\xc4\xdc\xc4\xdd\xc4\xde\xc4\xdf\xc4\xe0\xc4\xe1\xc4\xe2\xc4\xe3\xc4\xe4\xc4\xe5\xc4\xe6\xc4\xe7\xc4\xe8\xc4\xe9\xc4\xea\xc4\xeb\xc4\xec\xc4\xed\xc4\xee\xc4\xef\xc4\xf0\xc4\xf1\xc4\xf2\xc4\xf3\xc4\xf4\xc4\xf5\xc4\xf6\xc4\xf7\xc4\xf8\xc4\xf9\xc4\xfa\xc4\xfb\xc4\xfc\xc4\xfd\xc5\x41\xc5\x42\xc5\x43\xc5\x44\xc5\x45\xc5\x46\xc5\x47\xc5\x48\xc5\x49\xc5\x4a\xc5\x4b\xc5\x4c\xc5\x4d\xc5\x4e\xc5\x4f\xc5\x50\xc5\x51\xc5\x52\xc5\x53\xc5\x54\xc5\x55\xc5\x56\xc5\x57\xc5\x58\xc5\x59\xc5\x5a\xc5\x5b\xc5\x5c\xc5\x5d\xc5\x5e\xc5\x5f\xc5\x60\xc5\x61\xc5\x62\xc5\x63\xc5\x64\xc5\x65\xc5\x66\xc5\x67\xc5\x68\xc5\x69\xc5\x6a\xc5\x6b\xc5\x6c\xc5\x6d\xc5\x6e\xc5\x6f\xc5\x70\xc5\x71\xc5\x72\xc5\x73\xc5\x74\xc5\x75\xc5\x76\xc5\x77\xc5\x78\xc5\x79\xc5\x7a\xc5\x7b\xc5\x7c\xc5\x7d\xc5\x7e\xc5\x7f\xc5\x81\xc5\x82\xc5\x83\xc5\x84\xc5\x85\xc5\x86\xc5\x87\xc5\x88\xc5\x89\xc5\x8a\xc5\x8b\xc5\x8c\xc5\x8d", /* e280 */ "\xc5\x8e\xc5\x8f\xc5\x90\xc5\x91\xc5\x92\xc5\x93\xc5\x94\xc5\x95\xc5\x96\xc5\x97\xc5\x98\xc5\x99\xc5\x9a\xc5\x9b\xc5\x9c\xc5\x9d\xc5\x9e\xc5\x9f\xc5\xa0\xc5\xa1\xc5\xa2\xc5\xa3\xc5\xa4\xc5\xa5\xc5\xa6\xc5\xa7\xc5\xa8\xc5\xa9\xc5\xaa\xc5\xab\xc5\xac\xc5\xad\xc5\xae\xc5\xaf\xc5\xb0\xc5\xb1\xc5\xb2\xc5\xb3\xc5\xb4\xc5\xb5\xc5\xb6\xc5\xb7\xc5\xb8\xc5\xb9\xc5\xba\xc5\xbb\xc5\xbc\xc5\xbd\xc5\xbe\xc5\xbf\xc5\xc0\xc5\xc1\xc5\xc2\xc5\xc3\xc5\xc4\xc5\xc5\xc5\xc6\xc5\xc7\xc5\xc8\xc5\xc9\xc5\xca\xc5\xcb\xc5\xcc\xc5\xcd\xc5\xce\xc5\xcf\xc5\xd0\xc5\xd1\xc5\xd2\xc5\xd3\xc5\xd4\xc5\xd5\xc5\xd6\xc5\xd7\xc5\xd8\xc5\xd9\xc5\xda\xc5\xdb\xc5\xdc\xc5\xdd\xc5\xde\xc5\xdf\xc5\xe0\xc5\xe1\xc5\xe2\xc5\xe3\xc5\xe4\xc5\xe5\xc5\xe6\xc5\xe7\xc5\xe8\xc5\xe9\xc5\xea\xc5\xeb\xc5\xec\xc5\xed\xc5\xee\xc5\xef\xc5\xf0\xc5\xf1\xc5\xf2\xc5\xf3\xc5\xf4\xc5\xf5\xc5\xf6\xc5\xf7\xc5\xf8\xc5\xf9\xc5\xfa\xc5\xfb\xc5\xfc\xc5\xfd\xc6\x41\xc6\x42\xc6\x43\xc6\x44\xc6\x45\xc6\x46\xc6\x47\xc6\x48\xc6\x49\xc6\x4a\xc6\x4b\xc6\x4c\xc6\x4d\xc6\x4e\xc6\x4f\xc6\x50", /* e300 */ "\xc6\x51\xc6\x52\xc6\x53\xc6\x54\xc6\x55\xc6\x56\xc6\x57\xc6\x58\xc6\x59\xc6\x5a\xc6\x5b\xc6\x5c\xc6\x5d\xc6\x5e\xc6\x5f\xc6\x60\xc6\x61\xc6\x62\xc6\x63\xc6\x64\xc6\x65\xc6\x66\xc6\x67\xc6\x68\xc6\x69\xc6\x6a\xc6\x6b\xc6\x6c\xc6\x6d\xc6\x6e\xc6\x6f\xc6\x70\xc6\x71\xc6\x72\xc6\x73\xc6\x74\xc6\x75\xc6\x76\xc6\x77\xc6\x78\xc6\x79\xc6\x7a\xc6\x7b\xc6\x7c\xc6\x7d\xc6\x7e\xc6\x7f\xc6\x81\xc6\x82\xc6\x83\xc6\x84\xc6\x85\xc6\x86\xc6\x87\xc6\x88\xc6\x89\xc6\x8a\xc6\x8b\xc6\x8c\xc6\x8d\xc6\x8e\xc6\x8f\xc6\x90\xc6\x91\xc6\x92\xc6\x93\xc6\x94\xc6\x95\xc6\x96\xc6\x97\xc6\x98\xc6\x99\xc6\x9a\xc6\x9b\xc6\x9c\xc6\x9d\xc6\x9e\xc6\x9f\xc6\xa0\xc6\xa1\xc6\xa2\xc6\xa3\xc6\xa4\xc6\xa5\xc6\xa6\xc6\xa7\xc6\xa8\xc6\xa9\xc6\xaa\xc6\xab\xc6\xac\xc6\xad\xc6\xae\xc6\xaf\xc6\xb0\xc6\xb1\xc6\xb2\xc6\xb3\xc6\xb4\xc6\xb5\xc6\xb6\xc6\xb7\xc6\xb8\xc6\xb9\xc6\xba\xc6\xbb\xc6\xbc\xc6\xbd\xc6\xbe\xc6\xbf\xc6\xc0\xc6\xc1\xc6\xc2\xc6\xc3\xc6\xc4\xc6\xc5\xc6\xc6\xc6\xc7\xc6\xc8\xc6\xc9\xc6\xca\xc6\xcb\xc6\xcc\xc6\xcd\xc6\xce\xc6\xcf\xc6\xd0\xc6\xd1", /* e380 */ "\xc6\xd2\xc6\xd3\xc6\xd4\xc6\xd5\xc6\xd6\xc6\xd7\xc6\xd8\xc6\xd9\xc6\xda\xc6\xdb\xc6\xdc\xc6\xdd\xc6\xde\xc6\xdf\xc6\xe0\xc6\xe1\xc6\xe2\xc6\xe3\xc6\xe4\xc6\xe5\xc6\xe6\xc6\xe7\xc6\xe8\xc6\xe9\xc6\xea\xc6\xeb\xc6\xec\xc6\xed\xc6\xee\xc6\xef\xc6\xf0\xc6\xf1\xc6\xf2\xc6\xf3\xc6\xf4\xc6\xf5\xc6\xf6\xc6\xf7\xc6\xf8\xc6\xf9\xc6\xfa\xc6\xfb\xc6\xfc\xc6\xfd\xc7\x41\xc7\x42\xc7\x43\xc7\x44\xc7\x45\xc7\x46\xc7\x47\xc7\x48\xc7\x49\xc7\x4a\xc7\x4b\xc7\x4c\xc7\x4d\xc7\x4e\xc7\x4f\xc7\x50\xc7\x51\xc7\x52\xc7\x53\xc7\x54\xc7\x55\xc7\x56\xc7\x57\xc7\x58\xc7\x59\xc7\x5a\xc7\x5b\xc7\x5c\xc7\x5d\xc7\x5e\xc7\x5f\xc7\x60\xc7\x61\xc7\x62\xc7\x63\xc7\x64\xc7\x65\xc7\x66\xc7\x67\xc7\x68\xc7\x69\xc7\x6a\xc7\x6b\xc7\x6c\xc7\x6d\xc7\x6e\xc7\x6f\xc7\x70\xc7\x71\xc7\x72\xc7\x73\xc7\x74\xc7\x75\xc7\x76\xc7\x77\xc7\x78\xc7\x79\xc7\x7a\xc7\x7b\xc7\x7c\xc7\x7d\xc7\x7e\xc7\x7f\xc7\x81\xc7\x82\xc7\x83\xc7\x84\xc7\x85\xc7\x86\xc7\x87\xc7\x88\xc7\x89\xc7\x8a\xc7\x8b\xc7\x8c\xc7\x8d\xc7\x8e\xc7\x8f\xc7\x90\xc7\x91\xc7\x92\xc7\x93\xc7\x94\xc7\x95", /* e400 */ "\xc7\x96\xc7\x97\xc7\x98\xc7\x99\xc7\x9a\xc7\x9b\xc7\x9c\xc7\x9d\xc7\x9e\xc7\x9f\xc7\xa0\xc7\xa1\xc7\xa2\xc7\xa3\xc7\xa4\xc7\xa5\xc7\xa6\xc7\xa7\xc7\xa8\xc7\xa9\xc7\xaa\xc7\xab\xc7\xac\xc7\xad\xc7\xae\xc7\xaf\xc7\xb0\xc7\xb1\xc7\xb2\xc7\xb3\xc7\xb4\xc7\xb5\xc7\xb6\xc7\xb7\xc7\xb8\xc7\xb9\xc7\xba\xc7\xbb\xc7\xbc\xc7\xbd\xc7\xbe\xc7\xbf\xc7\xc0\xc7\xc1\xc7\xc2\xc7\xc3\xc7\xc4\xc7\xc5\xc7\xc6\xc7\xc7\xc7\xc8\xc7\xc9\xc7\xca\xc7\xcb\xc7\xcc\xc7\xcd\xc7\xce\xc7\xcf\xc7\xd0\xc7\xd1\xc7\xd2\xc7\xd3\xc7\xd4\xc7\xd5\xc7\xd6\xc7\xd7\xc7\xd8\xc7\xd9\xc7\xda\xc7\xdb\xc7\xdc\xc7\xdd\xc7\xde\xc7\xdf\xc7\xe0\xc7\xe1\xc7\xe2\xc7\xe3\xc7\xe4\xc7\xe5\xc7\xe6\xc7\xe7\xc7\xe8\xc7\xe9\xc7\xea\xc7\xeb\xc7\xec\xc7\xed\xc7\xee\xc7\xef\xc7\xf0\xc7\xf1\xc7\xf2\xc7\xf3\xc7\xf4\xc7\xf5\xc7\xf6\xc7\xf7\xc7\xf8\xc7\xf9\xc7\xfa\xc7\xfb\xc7\xfc\xc7\xfd\xc8\x41\xc8\x42\xc8\x43\xc8\x44\xc8\x45\xc8\x46\xc8\x47\xc8\x48\xc8\x49\xc8\x4a\xc8\x4b\xc8\x4c\xc8\x4d\xc8\x4e\xc8\x4f\xc8\x50\xc8\x51\xc8\x52\xc8\x53\xc8\x54\xc8\x55\xc8\x56\xc8\x57\xc8\x58", /* e480 */ "\xc8\x59\xc8\x5a\xc8\x5b\xc8\x5c\xc8\x5d\xc8\x5e\xc8\x5f\xc8\x60\xc8\x61\xc8\x62\xc8\x63\xc8\x64\xc8\x65\xc8\x66\xc8\x67\xc8\x68\xc8\x69\xc8\x6a\xc8\x6b\xc8\x6c\xc8\x6d\xc8\x6e\xc8\x6f\xc8\x70\xc8\x71\xc8\x72\xc8\x73\xc8\x74\xc8\x75\xc8\x76\xc8\x77\xc8\x78\xc8\x79\xc8\x7a\xc8\x7b\xc8\x7c\xc8\x7d\xc8\x7e\xc8\x7f\xc8\x81\xc8\x82\xc8\x83\xc8\x84\xc8\x85\xc8\x86\xc8\x87\xc8\x88\xc8\x89\xc8\x8a\xc8\x8b\xc8\x8c\xc8\x8d\xc8\x8e\xc8\x8f\xc8\x90\xc8\x91\xc8\x92\xc8\x93\xc8\x94\xc8\x95\xc8\x96\xc8\x97\xc8\x98\xc8\x99\xc8\x9a\xc8\x9b\xc8\x9c\xc8\x9d\xc8\x9e\xc8\x9f\xc8\xa0\xc8\xa1\xc8\xa2\xc8\xa3\xc8\xa4\xc8\xa5\xc8\xa6\xc8\xa7\xc8\xa8\xc8\xa9\xc8\xaa\xc8\xab\xc8\xac\xc8\xad\xc8\xae\xc8\xaf\xc8\xb0\xc8\xb1\xc8\xb2\xc8\xb3\xc8\xb4\xc8\xb5\xc8\xb6\xc8\xb7\xc8\xb8\xc8\xb9\xc8\xba\xc8\xbb\xc8\xbc\xc8\xbd\xc8\xbe\xc8\xbf\xc8\xc0\xc8\xc1\xc8\xc2\xc8\xc3\xc8\xc4\xc8\xc5\xc8\xc6\xc8\xc7\xc8\xc8\xc8\xc9\xc8\xca\xc8\xcb\xc8\xcc\xc8\xcd\xc8\xce\xc8\xcf\xc8\xd0\xc8\xd1\xc8\xd2\xc8\xd3\xc8\xd4\xc8\xd5\xc8\xd6\xc8\xd7\xc8\xd8\xc8\xd9", /* e500 */ "\xc8\xda\xc8\xdb\xc8\xdc\xc8\xdd\xc8\xde\xc8\xdf\xc8\xe0\xc8\xe1\xc8\xe2\xc8\xe3\xc8\xe4\xc8\xe5\xc8\xe6\xc8\xe7\xc8\xe8\xc8\xe9\xc8\xea\xc8\xeb\xc8\xec\xc8\xed\xc8\xee\xc8\xef\xc8\xf0\xc8\xf1\xc8\xf2\xc8\xf3\xc8\xf4\xc8\xf5\xc8\xf6\xc8\xf7\xc8\xf8\xc8\xf9\xc8\xfa\xc8\xfb\xc8\xfc\xc8\xfd\xc9\x41\xc9\x42\xc9\x43\xc9\x44\xc9\x45\xc9\x46\xc9\x47\xc9\x48\xc9\x49\xc9\x4a\xc9\x4b\xc9\x4c\xc9\x4d\xc9\x4e\xc9\x4f\xc9\x50\xc9\x51\xc9\x52\xc9\x53\xc9\x54\xc9\x55\xc9\x56\xc9\x57\xc9\x58\xc9\x59\xc9\x5a\xc9\x5b\xc9\x5c\xc9\x5d\xc9\x5e\xc9\x5f\xc9\x60\xc9\x61\xc9\x62\xc9\x63\xc9\x64\xc9\x65\xc9\x66\xc9\x67\xc9\x68\xc9\x69\xc9\x6a\xc9\x6b\xc9\x6c\xc9\x6d\xc9\x6e\xc9\x6f\xc9\x70\xc9\x71\xc9\x72\xc9\x73\xc9\x74\xc9\x75\xc9\x76\xc9\x77\xc9\x78\xc9\x79\xc9\x7a\xc9\x7b\xc9\x7c\xc9\x7d\xc9\x7e\xc9\x7f\xc9\x81\xc9\x82\xc9\x83\xc9\x84\xc9\x85\xc9\x86\xc9\x87\xc9\x88\xc9\x89\xc9\x8a\xc9\x8b\xc9\x8c\xc9\x8d\xc9\x8e\xc9\x8f\xc9\x90\xc9\x91\xc9\x92\xc9\x93\xc9\x94\xc9\x95\xc9\x96\xc9\x97\xc9\x98\xc9\x99\xc9\x9a\xc9\x9b\xc9\x9c\xc9\x9d", /* e580 */ "\xc9\x9e\xc9\x9f\xc9\xa0\xc9\xa1\xc9\xa2\xc9\xa3\xc9\xa4\xc9\xa5\xc9\xa6\xc9\xa7\xc9\xa8\xc9\xa9\xc9\xaa\xc9\xab\xc9\xac\xc9\xad\xc9\xae\xc9\xaf\xc9\xb0\xc9\xb1\xc9\xb2\xc9\xb3\xc9\xb4\xc9\xb5\xc9\xb6\xc9\xb7\xc9\xb8\xc9\xb9\xc9\xba\xc9\xbb\xc9\xbc\xc9\xbd\xc9\xbe\xc9\xbf\xc9\xc0\xc9\xc1\xc9\xc2\xc9\xc3\xc9\xc4\xc9\xc5\xc9\xc6\xc9\xc7\xc9\xc8\xc9\xc9\xc9\xca\xc9\xcb\xc9\xcc\xc9\xcd\xc9\xce\xc9\xcf\xc9\xd0\xc9\xd1\xc9\xd2\xc9\xd3\xc9\xd4\xc9\xd5\xc9\xd6\xc9\xd7\xc9\xd8\xc9\xd9\xc9\xda\xc9\xdb\xc9\xdc\xc9\xdd\xc9\xde\xc9\xdf\xc9\xe0\xc9\xe1\xc9\xe2\xc9\xe3\xc9\xe4\xc9\xe5\xc9\xe6\xc9\xe7\xc9\xe8\xc9\xe9\xc9\xea\xc9\xeb\xc9\xec\xc9\xed\xc9\xee\xc9\xef\xc9\xf0\xc9\xf1\xc9\xf2\xc9\xf3\xc9\xf4\xc9\xf5\xc9\xf6\xc9\xf7\xc9\xf8\xc9\xf9\xc9\xfa\xc9\xfb\xc9\xfc\xc9\xfd\xca\x41\xca\x42\xca\x43\xca\x44\xca\x45\xca\x46\xca\x47\xca\x48\xca\x49\xca\x4a\xca\x4b\xca\x4c\xca\x4d\xca\x4e\xca\x4f\xca\x50\xca\x51\xca\x52\xca\x53\xca\x54\xca\x55\xca\x56\xca\x57\xca\x58\xca\x59\xca\x5a\xca\x5b\xca\x5c\xca\x5d\xca\x5e\xca\x5f\xca\x60", /* e600 */ "\xca\x61\xca\x62\xca\x63\xca\x64\xca\x65\xca\x66\xca\x67\xca\x68\xca\x69\xca\x6a\xca\x6b\xca\x6c\xca\x6d\xca\x6e\xca\x6f\xca\x70\xca\x71\xca\x72\xca\x73\xca\x74\xca\x75\xca\x76\xca\x77\xca\x78\xca\x79\xca\x7a\xca\x7b\xca\x7c\xca\x7d\xca\x7e\xca\x7f\xca\x81\xca\x82\xca\x83\xca\x84\xca\x85\xca\x86\xca\x87\xca\x88\xca\x89\xca\x8a\xca\x8b\xca\x8c\xca\x8d\xca\x8e\xca\x8f\xca\x90\xca\x91\xca\x92\xca\x93\xca\x94\xca\x95\xca\x96\xca\x97\xca\x98\xca\x99\xca\x9a\xca\x9b\xca\x9c\xca\x9d\xca\x9e\xca\x9f\xca\xa0\xca\xa1\xca\xa2\xca\xa3\xca\xa4\xca\xa5\xca\xa6\xca\xa7\xca\xa8\xca\xa9\xca\xaa\xca\xab\xca\xac\xca\xad\xca\xae\xca\xaf\xca\xb0\xca\xb1\xca\xb2\xca\xb3\xca\xb4\xca\xb5\xca\xb6\xca\xb7\xca\xb8\xca\xb9\xca\xba\xca\xbb\xca\xbc\xca\xbd\xca\xbe\xca\xbf\xca\xc0\xca\xc1\xca\xc2\xca\xc3\xca\xc4\xca\xc5\xca\xc6\xca\xc7\xca\xc8\xca\xc9\xca\xca\xca\xcb\xca\xcc\xca\xcd\xca\xce\xca\xcf\xca\xd0\xca\xd1\xca\xd2\xca\xd3\xca\xd4\xca\xd5\xca\xd6\xca\xd7\xca\xd8\xca\xd9\xca\xda\xca\xdb\xca\xdc\xca\xdd\xca\xde\xca\xdf\xca\xe0\xca\xe1", /* e680 */ "\xca\xe2\xca\xe3\xca\xe4\xca\xe5\xca\xe6\xca\xe7\xca\xe8\xca\xe9\xca\xea\xca\xeb\xca\xec\xca\xed\xca\xee\xca\xef\xca\xf0\xca\xf1\xca\xf2\xca\xf3\xca\xf4\xca\xf5\xca\xf6\xca\xf7\xca\xf8\xca\xf9\xca\xfa\xca\xfb\xca\xfc\xca\xfd\xcb\x41\xcb\x42\xcb\x43\xcb\x44\xcb\x45\xcb\x46\xcb\x47\xcb\x48\xcb\x49\xcb\x4a\xcb\x4b\xcb\x4c\xcb\x4d\xcb\x4e\xcb\x4f\xcb\x50\xcb\x51\xcb\x52\xcb\x53\xcb\x54\xcb\x55\xcb\x56\xcb\x57\xcb\x58\xcb\x59\xcb\x5a\xcb\x5b\xcb\x5c\xcb\x5d\xcb\x5e\xcb\x5f\xcb\x60\xcb\x61\xcb\x62\xcb\x63\xcb\x64\xcb\x65\xcb\x66\xcb\x67\xcb\x68\xcb\x69\xcb\x6a\xcb\x6b\xcb\x6c\xcb\x6d\xcb\x6e\xcb\x6f\xcb\x70\xcb\x71\xcb\x72\xcb\x73\xcb\x74\xcb\x75\xcb\x76\xcb\x77\xcb\x78\xcb\x79\xcb\x7a\xcb\x7b\xcb\x7c\xcb\x7d\xcb\x7e\xcb\x7f\xcb\x81\xcb\x82\xcb\x83\xcb\x84\xcb\x85\xcb\x86\xcb\x87\xcb\x88\xcb\x89\xcb\x8a\xcb\x8b\xcb\x8c\xcb\x8d\xcb\x8e\xcb\x8f\xcb\x90\xcb\x91\xcb\x92\xcb\x93\xcb\x94\xcb\x95\xcb\x96\xcb\x97\xcb\x98\xcb\x99\xcb\x9a\xcb\x9b\xcb\x9c\xcb\x9d\xcb\x9e\xcb\x9f\xcb\xa0\xcb\xa1\xcb\xa2\xcb\xa3\xcb\xa4\xcb\xa5", /* e700 */ "\xcb\xa6\xcb\xa7\xcb\xa8\xcb\xa9\xcb\xaa\xcb\xab\xcb\xac\xcb\xad\xcb\xae\xcb\xaf\xcb\xb0\xcb\xb1\xcb\xb2\xcb\xb3\xcb\xb4\xcb\xb5\xcb\xb6\xcb\xb7\xcb\xb8\xcb\xb9\xcb\xba\xcb\xbb\xcb\xbc\xcb\xbd\xcb\xbe\xcb\xbf\xcb\xc0\xcb\xc1\xcb\xc2\xcb\xc3\xcb\xc4\xcb\xc5\xcb\xc6\xcb\xc7\xcb\xc8\xcb\xc9\xcb\xca\xcb\xcb\xcb\xcc\xcb\xcd\xcb\xce\xcb\xcf\xcb\xd0\xcb\xd1\xcb\xd2\xcb\xd3\xcb\xd4\xcb\xd5\xcb\xd6\xcb\xd7\xcb\xd8\xcb\xd9\xcb\xda\xcb\xdb\xcb\xdc\xcb\xdd\xcb\xde\xcb\xdf\xcb\xe0\xcb\xe1\xcb\xe2\xcb\xe3\xcb\xe4\xcb\xe5\xcb\xe6\xcb\xe7\xcb\xe8\xcb\xe9\xcb\xea\xcb\xeb\xcb\xec\xcb\xed\xcb\xee\xcb\xef\xcb\xf0\xcb\xf1\xcb\xf2\xcb\xf3\xcb\xf4\xcb\xf5\xcb\xf6\xcb\xf7\xcb\xf8\xcb\xf9\xcb\xfa\xcb\xfb\xcb\xfc\xcb\xfd\xcc\x41\xcc\x42\xcc\x43\xcc\x44\xcc\x45\xcc\x46\xcc\x47\xcc\x48\xcc\x49\xcc\x4a\xcc\x4b\xcc\x4c\xcc\x4d\xcc\x4e\xcc\x4f\xcc\x50\xcc\x51\xcc\x52\xcc\x53\xcc\x54\xcc\x55\xcc\x56\xcc\x57\xcc\x58\xcc\x59\xcc\x5a\xcc\x5b\xcc\x5c\xcc\x5d\xcc\x5e\xcc\x5f\xcc\x60\xcc\x61\xcc\x62\xcc\x63\xcc\x64\xcc\x65\xcc\x66\xcc\x67\xcc\x68", /* e780 */ "\xcc\x69\xcc\x6a\xcc\x6b\xcc\x6c\xcc\x6d\xcc\x6e\xcc\x6f\xcc\x70\xcc\x71\xcc\x72\xcc\x73\xcc\x74\xcc\x75\xcc\x76\xcc\x77\xcc\x78\xcc\x79\xcc\x7a\xcc\x7b\xcc\x7c\xcc\x7d\xcc\x7e\xcc\x7f\xcc\x81\xcc\x82\xcc\x83\xcc\x84\xcc\x85\xcc\x86\xcc\x87\xcc\x88\xcc\x89\xcc\x8a\xcc\x8b\xcc\x8c\xcc\x8d\xcc\x8e\xcc\x8f\xcc\x90\xcc\x91\xcc\x92\xcc\x93\xcc\x94\xcc\x95\xcc\x96\xcc\x97\xcc\x98\xcc\x99\xcc\x9a\xcc\x9b\xcc\x9c\xcc\x9d\xcc\x9e\xcc\x9f\xcc\xa0\xcc\xa1\xcc\xa2\xcc\xa3\xcc\xa4\xcc\xa5\xcc\xa6\xcc\xa7\xcc\xa8\xcc\xa9\xcc\xaa\xcc\xab\xcc\xac\xcc\xad\xcc\xae\xcc\xaf\xcc\xb0\xcc\xb1\xcc\xb2\xcc\xb3\xcc\xb4\xcc\xb5\xcc\xb6\xcc\xb7\xcc\xb8\xcc\xb9\xcc\xba\xcc\xbb\xcc\xbc\xcc\xbd\xcc\xbe\xcc\xbf\xcc\xc0\xcc\xc1\xcc\xc2\xcc\xc3\xcc\xc4\xcc\xc5\xcc\xc6\xcc\xc7\xcc\xc8\xcc\xc9\xcc\xca\xcc\xcb\xcc\xcc\xcc\xcd\xcc\xce\xcc\xcf\xcc\xd0\xcc\xd1\xcc\xd2\xcc\xd3\xcc\xd4\xcc\xd5\xcc\xd6\xcc\xd7\xcc\xd8\xcc\xd9\xcc\xda\xcc\xdb\xcc\xdc\xcc\xdd\xcc\xde\xcc\xdf\xcc\xe0\xcc\xe1\xcc\xe2\xcc\xe3\xcc\xe4\xcc\xe5\xcc\xe6\xcc\xe7\xcc\xe8\xcc\xe9", /* e800 */ "\xcc\xea\xcc\xeb\xcc\xec\xcc\xed\xcc\xee\xcc\xef\xcc\xf0\xcc\xf1\xcc\xf2\xcc\xf3\xcc\xf4\xcc\xf5\xcc\xf6\xcc\xf7\xcc\xf8\xcc\xf9\xcc\xfa\xcc\xfb\xcc\xfc\xcc\xfd\xcd\x41\xcd\x42\xcd\x43\xcd\x44\xcd\x45\xcd\x46\xcd\x47\xcd\x48\xcd\x49\xcd\x4a\xcd\x4b\xcd\x4c\xcd\x4d\xcd\x4e\xcd\x4f\xcd\x50\xcd\x51\xcd\x52\xcd\x53\xcd\x54\xcd\x55\xcd\x56\xcd\x57\xcd\x58\xcd\x59\xcd\x5a\xcd\x5b\xcd\x5c\xcd\x5d\xcd\x5e\xcd\x5f\xcd\x60\xcd\x61\xcd\x62\xcd\x63\xcd\x64\xcd\x65\xcd\x66\xcd\x67\xcd\x68\xcd\x69\xcd\x6a\xcd\x6b\xcd\x6c\xcd\x6d\xcd\x6e\xcd\x6f\xcd\x70\xcd\x71\xcd\x72\xcd\x73\xcd\x74\xcd\x75\xcd\x76\xcd\x77\xcd\x78\xcd\x79\xcd\x7a\xcd\x7b\xcd\x7c\xcd\x7d\xcd\x7e\xcd\x7f\xcd\x81\xcd\x82\xcd\x83\xcd\x84\xcd\x85\xcd\x86\xcd\x87\xcd\x88\xcd\x89\xcd\x8a\xcd\x8b\xcd\x8c\xcd\x8d\xcd\x8e\xcd\x8f\xcd\x90\xcd\x91\xcd\x92\xcd\x93\xcd\x94\xcd\x95\xcd\x96\xcd\x97\xcd\x98\xcd\x99\xcd\x9a\xcd\x9b\xcd\x9c\xcd\x9d\xcd\x9e\xcd\x9f\xcd\xa0\xcd\xa1\xcd\xa2\xcd\xa3\xcd\xa4\xcd\xa5\xcd\xa6\xcd\xa7\xcd\xa8\xcd\xa9\xcd\xaa\xcd\xab\xcd\xac\xcd\xad", /* e880 */ "\xcd\xae\xcd\xaf\xcd\xb0\xcd\xb1\xcd\xb2\xcd\xb3\xcd\xb4\xcd\xb5\xcd\xb6\xcd\xb7\xcd\xb8\xcd\xb9\xcd\xba\xcd\xbb\xcd\xbc\xcd\xbd\xcd\xbe\xcd\xbf\xcd\xc0\xcd\xc1\xcd\xc2\xcd\xc3\xcd\xc4\xcd\xc5\xcd\xc6\xcd\xc7\xcd\xc8\xcd\xc9\xcd\xca\xcd\xcb\xcd\xcc\xcd\xcd\xcd\xce\xcd\xcf\xcd\xd0\xcd\xd1\xcd\xd2\xcd\xd3\xcd\xd4\xcd\xd5\xcd\xd6\xcd\xd7\xcd\xd8\xcd\xd9\xcd\xda\xcd\xdb\xcd\xdc\xcd\xdd\xcd\xde\xcd\xdf\xcd\xe0\xcd\xe1\xcd\xe2\xcd\xe3\xcd\xe4\xcd\xe5\xcd\xe6\xcd\xe7\xcd\xe8\xcd\xe9\xcd\xea\xcd\xeb\xcd\xec\xcd\xed\xcd\xee\xcd\xef\xcd\xf0\xcd\xf1\xcd\xf2\xcd\xf3\xcd\xf4\xcd\xf5\xcd\xf6\xcd\xf7\xcd\xf8\xcd\xf9\xcd\xfa\xcd\xfb\xcd\xfc\xcd\xfd\xce\x41\xce\x42\xce\x43\xce\x44\xce\x45\xce\x46\xce\x47\xce\x48\xce\x49\xce\x4a\xce\x4b\xce\x4c\xce\x4d\xce\x4e\xce\x4f\xce\x50\xce\x51\xce\x52\xce\x53\xce\x54\xce\x55\xce\x56\xce\x57\xce\x58\xce\x59\xce\x5a\xce\x5b\xce\x5c\xce\x5d\xce\x5e\xce\x5f\xce\x60\xce\x61\xce\x62\xce\x63\xce\x64\xce\x65\xce\x66\xce\x67\xce\x68\xce\x69\xce\x6a\xce\x6b\xce\x6c\xce\x6d\xce\x6e\xce\x6f\xce\x70", /* e900 */ "\xce\x71\xce\x72\xce\x73\xce\x74\xce\x75\xce\x76\xce\x77\xce\x78\xce\x79\xce\x7a\xce\x7b\xce\x7c\xce\x7d\xce\x7e\xce\x7f\xce\x81\xce\x82\xce\x83\xce\x84\xce\x85\xce\x86\xce\x87\xce\x88\xce\x89\xce\x8a\xce\x8b\xce\x8c\xce\x8d\xce\x8e\xce\x8f\xce\x90\xce\x91\xce\x92\xce\x93\xce\x94\xce\x95\xce\x96\xce\x97\xce\x98\xce\x99\xce\x9a\xce\x9b\xce\x9c\xce\x9d\xce\x9e\xce\x9f\xce\xa0\xce\xa1\xce\xa2\xce\xa3\xce\xa4\xce\xa5\xce\xa6\xce\xa7\xce\xa8\xce\xa9\xce\xaa\xce\xab\xce\xac\xce\xad\xce\xae\xce\xaf\xce\xb0\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xce\xb5\xce\xb6\xce\xb7\xce\xb8\xce\xb9\xce\xba\xce\xbb\xce\xbc\xce\xbd\xce\xbe\xce\xbf\xce\xc0\xce\xc1\xce\xc2\xce\xc3\xce\xc4\xce\xc5\xce\xc6\xce\xc7\xce\xc8\xce\xc9\xce\xca\xce\xcb\xce\xcc\xce\xcd\xce\xce\xce\xcf\xce\xd0\xce\xd1\xce\xd2\xce\xd3\xce\xd4\xce\xd5\xce\xd6\xce\xd7\xce\xd8\xce\xd9\xce\xda\xce\xdb\xce\xdc\xce\xdd\xce\xde\xce\xdf\xce\xe0\xce\xe1\xce\xe2\xce\xe3\xce\xe4\xce\xe5\xce\xe6\xce\xe7\xce\xe8\xce\xe9\xce\xea\xce\xeb\xce\xec\xce\xed\xce\xee\xce\xef\xce\xf0\xce\xf1", /* e980 */ "\xce\xf2\xce\xf3\xce\xf4\xce\xf5\xce\xf6\xce\xf7\xce\xf8\xce\xf9\xce\xfa\xce\xfb\xce\xfc\xce\xfd\xcf\x41\xcf\x42\xcf\x43\xcf\x44\xcf\x45\xcf\x46\xcf\x47\xcf\x48\xcf\x49\xcf\x4a\xcf\x4b\xcf\x4c\xcf\x4d\xcf\x4e\xcf\x4f\xcf\x50\xcf\x51\xcf\x52\xcf\x53\xcf\x54\xcf\x55\xcf\x56\xcf\x57\xcf\x58\xcf\x59\xcf\x5a\xcf\x5b\xcf\x5c\xcf\x5d\xcf\x5e\xcf\x5f\xcf\x60\xcf\x61\xcf\x62\xcf\x63\xcf\x64\xcf\x65\xcf\x66\xcf\x67\xcf\x68\xcf\x69\xcf\x6a\xcf\x6b\xcf\x6c\xcf\x6d\xcf\x6e\xcf\x6f\xcf\x70\xcf\x71\xcf\x72\xcf\x73\xcf\x74\xcf\x75\xcf\x76\xcf\x77\xcf\x78\xcf\x79\xcf\x7a\xcf\x7b\xcf\x7c\xcf\x7d\xcf\x7e\xcf\x7f\xcf\x81\xcf\x82\xcf\x83\xcf\x84\xcf\x85\xcf\x86\xcf\x87\xcf\x88\xcf\x89\xcf\x8a\xcf\x8b\xcf\x8c\xcf\x8d\xcf\x8e\xcf\x8f\xcf\x90\xcf\x91\xcf\x92\xcf\x93\xcf\x94\xcf\x95\xcf\x96\xcf\x97\xcf\x98\xcf\x99\xcf\x9a\xcf\x9b\xcf\x9c\xcf\x9d\xcf\x9e\xcf\x9f\xcf\xa0\xcf\xa1\xcf\xa2\xcf\xa3\xcf\xa4\xcf\xa5\xcf\xa6\xcf\xa7\xcf\xa8\xcf\xa9\xcf\xaa\xcf\xab\xcf\xac\xcf\xad\xcf\xae\xcf\xaf\xcf\xb0\xcf\xb1\xcf\xb2\xcf\xb3\xcf\xb4\xcf\xb5", /* ea00 */ "\xcf\xb6\xcf\xb7\xcf\xb8\xcf\xb9\xcf\xba\xcf\xbb\xcf\xbc\xcf\xbd\xcf\xbe\xcf\xbf\xcf\xc0\xcf\xc1\xcf\xc2\xcf\xc3\xcf\xc4\xcf\xc5\xcf\xc6\xcf\xc7\xcf\xc8\xcf\xc9\xcf\xca\xcf\xcb\xcf\xcc\xcf\xcd\xcf\xce\xcf\xcf\xcf\xd0\xcf\xd1\xcf\xd2\xcf\xd3\xcf\xd4\xcf\xd5\xcf\xd6\xcf\xd7\xcf\xd8\xcf\xd9\xcf\xda\xcf\xdb\xcf\xdc\xcf\xdd\xcf\xde\xcf\xdf\xcf\xe0\xcf\xe1\xcf\xe2\xcf\xe3\xcf\xe4\xcf\xe5\xcf\xe6\xcf\xe7\xcf\xe8\xcf\xe9\xcf\xea\xcf\xeb\xcf\xec\xcf\xed\xcf\xee\xcf\xef\xcf\xf0\xcf\xf1\xcf\xf2\xcf\xf3\xcf\xf4\xcf\xf5\xcf\xf6\xcf\xf7\xcf\xf8\xcf\xf9\xcf\xfa\xcf\xfb\xcf\xfc\xcf\xfd\xd0\x41\xd0\x42\xd0\x43\xd0\x44\xd0\x45\xd0\x46\xd0\x47\xd0\x48\xd0\x49\xd0\x4a\xd0\x4b\xd0\x4c\xd0\x4d\xd0\x4e\xd0\x4f\xd0\x50\xd0\x51\xd0\x52\xd0\x53\xd0\x54\xd0\x55\xd0\x56\xd0\x57\xd0\x58\xd0\x59\xd0\x5a\xd0\x5b\xd0\x5c\xd0\x5d\xd0\x5e\xd0\x5f\xd0\x60\xd0\x61\xd0\x62\xd0\x63\xd0\x64\xd0\x65\xd0\x66\xd0\x67\xd0\x68\xd0\x69\xd0\x6a\xd0\x6b\xd0\x6c\xd0\x6d\xd0\x6e\xd0\x6f\xd0\x70\xd0\x71\xd0\x72\xd0\x73\xd0\x74\xd0\x75\xd0\x76\xd0\x77\xd0\x78", /* ea80 */ "\xd0\x79\xd0\x7a\xd0\x7b\xd0\x7c\xd0\x7d\xd0\x7e\xd0\x7f\xd0\x81\xd0\x82\xd0\x83\xd0\x84\xd0\x85\xd0\x86\xd0\x87\xd0\x88\xd0\x89\xd0\x8a\xd0\x8b\xd0\x8c\xd0\x8d\xd0\x8e\xd0\x8f\xd0\x90\xd0\x91\xd0\x92\xd0\x93\xd0\x94\xd0\x95\xd0\x96\xd0\x97\xd0\x98\xd0\x99\xd0\x9a\xd0\x9b\xd0\x9c\xd0\x9d\xd0\x9e\xd0\x9f\xd0\xa0\xd0\xa1\xd0\xa2\xd0\xa3\xd0\xa4\xd0\xa5\xd0\xa6\xd0\xa7\xd0\xa8\xd0\xa9\xd0\xaa\xd0\xab\xd0\xac\xd0\xad\xd0\xae\xd0\xaf\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5\xd0\xb6\xd0\xb7\xd0\xb8\xd0\xb9\xd0\xba\xd0\xbb\xd0\xbc\xd0\xbd\xd0\xbe\xd0\xbf\xd0\xc0\xd0\xc1\xd0\xc2\xd0\xc3\xd0\xc4\xd0\xc5\xd0\xc6\xd0\xc7\xd0\xc8\xd0\xc9\xd0\xca\xd0\xcb\xd0\xcc\xd0\xcd\xd0\xce\xd0\xcf\xd0\xd0\xd0\xd1\xd0\xd2\xd0\xd3\xd0\xd4\xd0\xd5\xd0\xd6\xd0\xd7\xd0\xd8\xd0\xd9\xd0\xda\xd0\xdb\xd0\xdc\xd0\xdd\xd0\xde\xd0\xdf\xd0\xe0\xd0\xe1\xd0\xe2\xd0\xe3\xd0\xe4\xd0\xe5\xd0\xe6\xd0\xe7\xd0\xe8\xd0\xe9\xd0\xea\xd0\xeb\xd0\xec\xd0\xed\xd0\xee\xd0\xef\xd0\xf0\xd0\xf1\xd0\xf2\xd0\xf3\xd0\xf4\xd0\xf5\xd0\xf6\xd0\xf7\xd0\xf8\xd0\xf9", /* eb00 */ "\xd0\xfa\xd0\xfb\xd0\xfc\xd0\xfd\xd1\x41\xd1\x42\xd1\x43\xd1\x44\xd1\x45\xd1\x46\xd1\x47\xd1\x48\xd1\x49\xd1\x4a\xd1\x4b\xd1\x4c\xd1\x4d\xd1\x4e\xd1\x4f\xd1\x50\xd1\x51\xd1\x52\xd1\x53\xd1\x54\xd1\x55\xd1\x56\xd1\x57\xd1\x58\xd1\x59\xd1\x5a\xd1\x5b\xd1\x5c\xd1\x5d\xd1\x5e\xd1\x5f\xd1\x60\xd1\x61\xd1\x62\xd1\x63\xd1\x64\xd1\x65\xd1\x66\xd1\x67\xd1\x68\xd1\x69\xd1\x6a\xd1\x6b\xd1\x6c\xd1\x6d\xd1\x6e\xd1\x6f\xd1\x70\xd1\x71\xd1\x72\xd1\x73\xd1\x74\xd1\x75\xd1\x76\xd1\x77\xd1\x78\xd1\x79\xd1\x7a\xd1\x7b\xd1\x7c\xd1\x7d\xd1\x7e\xd1\x7f\xd1\x81\xd1\x82\xd1\x83\xd1\x84\xd1\x85\xd1\x86\xd1\x87\xd1\x88\xd1\x89\xd1\x8a\xd1\x8b\xd1\x8c\xd1\x8d\xd1\x8e\xd1\x8f\xd1\x90\xd1\x91\xd1\x92\xd1\x93\xd1\x94\xd1\x95\xd1\x96\xd1\x97\xd1\x98\xd1\x99\xd1\x9a\xd1\x9b\xd1\x9c\xd1\x9d\xd1\x9e\xd1\x9f\xd1\xa0\xd1\xa1\xd1\xa2\xd1\xa3\xd1\xa4\xd1\xa5\xd1\xa6\xd1\xa7\xd1\xa8\xd1\xa9\xd1\xaa\xd1\xab\xd1\xac\xd1\xad\xd1\xae\xd1\xaf\xd1\xb0\xd1\xb1\xd1\xb2\xd1\xb3\xd1\xb4\xd1\xb5\xd1\xb6\xd1\xb7\xd1\xb8\xd1\xb9\xd1\xba\xd1\xbb\xd1\xbc\xd1\xbd", /* eb80 */ "\xd1\xbe\xd1\xbf\xd1\xc0\xd1\xc1\xd1\xc2\xd1\xc3\xd1\xc4\xd1\xc5\xd1\xc6\xd1\xc7\xd1\xc8\xd1\xc9\xd1\xca\xd1\xcb\xd1\xcc\xd1\xcd\xd1\xce\xd1\xcf\xd1\xd0\xd1\xd1\xd1\xd2\xd1\xd3\xd1\xd4\xd1\xd5\xd1\xd6\xd1\xd7\xd1\xd8\xd1\xd9\xd1\xda\xd1\xdb\xd1\xdc\xd1\xdd\xd1\xde\xd1\xdf\xd1\xe0\xd1\xe1\xd1\xe2\xd1\xe3\xd1\xe4\xd1\xe5\xd1\xe6\xd1\xe7\xd1\xe8\xd1\xe9\xd1\xea\xd1\xeb\xd1\xec\xd1\xed\xd1\xee\xd1\xef\xd1\xf0\xd1\xf1\xd1\xf2\xd1\xf3\xd1\xf4\xd1\xf5\xd1\xf6\xd1\xf7\xd1\xf8\xd1\xf9\xd1\xfa\xd1\xfb\xd1\xfc\xd1\xfd\xd2\x41\xd2\x42\xd2\x43\xd2\x44\xd2\x45\xd2\x46\xd2\x47\xd2\x48\xd2\x49\xd2\x4a\xd2\x4b\xd2\x4c\xd2\x4d\xd2\x4e\xd2\x4f\xd2\x50\xd2\x51\xd2\x52\xd2\x53\xd2\x54\xd2\x55\xd2\x56\xd2\x57\xd2\x58\xd2\x59\xd2\x5a\xd2\x5b\xd2\x5c\xd2\x5d\xd2\x5e\xd2\x5f\xd2\x60\xd2\x61\xd2\x62\xd2\x63\xd2\x64\xd2\x65\xd2\x66\xd2\x67\xd2\x68\xd2\x69\xd2\x6a\xd2\x6b\xd2\x6c\xd2\x6d\xd2\x6e\xd2\x6f\xd2\x70\xd2\x71\xd2\x72\xd2\x73\xd2\x74\xd2\x75\xd2\x76\xd2\x77\xd2\x78\xd2\x79\xd2\x7a\xd2\x7b\xd2\x7c\xd2\x7d\xd2\x7e\xd2\x7f\xd2\x81", /* ec00 */ "\xd2\x82\xd2\x83\xd2\x84\xd2\x85\xd2\x86\xd2\x87\xd2\x88\xd2\x89\xd2\x8a\xd2\x8b\xd2\x8c\xd2\x8d\xd2\x8e\xd2\x8f\xd2\x90\xd2\x91\xd2\x92\xd2\x93\xd2\x94\xd2\x95\xd2\x96\xd2\x97\xd2\x98\xd2\x99\xd2\x9a\xd2\x9b\xd2\x9c\xd2\x9d\xd2\x9e\xd2\x9f\xd2\xa0\xd2\xa1\xd2\xa2\xd2\xa3\xd2\xa4\xd2\xa5\xd2\xa6\xd2\xa7\xd2\xa8\xd2\xa9\xd2\xaa\xd2\xab\xd2\xac\xd2\xad\xd2\xae\xd2\xaf\xd2\xb0\xd2\xb1\xd2\xb2\xd2\xb3\xd2\xb4\xd2\xb5\xd2\xb6\xd2\xb7\xd2\xb8\xd2\xb9\xd2\xba\xd2\xbb\xd2\xbc\xd2\xbd\xd2\xbe\xd2\xbf\xd2\xc0\xd2\xc1\xd2\xc2\xd2\xc3\xd2\xc4\xd2\xc5\xd2\xc6\xd2\xc7\xd2\xc8\xd2\xc9\xd2\xca\xd2\xcb\xd2\xcc\xd2\xcd\xd2\xce\xd2\xcf\xd2\xd0\xd2\xd1\xd2\xd2\xd2\xd3\xd2\xd4\xd2\xd5\xd2\xd6\xd2\xd7\xd2\xd8\xd2\xd9\xd2\xda\xd2\xdb\xd2\xdc\xd2\xdd\xd2\xde\xd2\xdf\xd2\xe0\xd2\xe1\xd2\xe2\xd2\xe3\xd2\xe4\xd2\xe5\xd2\xe6\xd2\xe7\xd2\xe8\xd2\xe9\xd2\xea\xd2\xeb\xd2\xec\xd2\xed\xd2\xee\xd2\xef\xd2\xf0\xd2\xf1\xd2\xf2\xd2\xf3\xd2\xf4\xd2\xf5\xd2\xf6\xd2\xf7\xd2\xf8\xd2\xf9\xd2\xfa\xd2\xfb\xd2\xfc\xd2\xfd\xd3\x41\xd3\x42\xd3\x43\xd3\x44", /* ec80 */ "\xd3\x45\xd3\x46\xd3\x47\xd3\x48\xd3\x49\xd3\x4a\xd3\x4b\xd3\x4c\xd3\x4d\xd3\x4e\xd3\x4f\xd3\x50\xd3\x51\xd3\x52\xd3\x53\xd3\x54\xd3\x55\xd3\x56\xd3\x57\xd3\x58\xd3\x59\xd3\x5a\xd3\x5b\xd3\x5c\xd3\x5d\xd3\x5e\xd3\x5f\xd3\x60\xd3\x61\xd3\x62\xd3\x63\xd3\x64\xd3\x65\xd3\x66\xd3\x67\xd3\x68\xd3\x69\xd3\x6a\xd3\x6b\xd3\x6c\xd3\x6d\xd3\x6e\xd3\x6f\xd3\x70\xd3\x71\xd3\x72\xd3\x73\xd3\x74\xd3\x75\xd3\x76\xd3\x77\xd3\x78\xd3\x79\xd3\x7a\xd3\x7b\xd3\x7c\xd3\x7d\xd3\x7e\xd3\x7f\xd3\x81\xd3\x82\xd3\x83\xd3\x84\xd3\x85\xd3\x86\xd3\x87\xd3\x88\xd3\x89\xd3\x8a\xd3\x8b\xd3\x8c\xd3\x8d\xd3\x8e\xd3\x8f\xd3\x90\xd3\x91\xd3\x92\xd3\x93\xd3\x94\xd3\x95\xd3\x96\xd3\x97\xd3\x98\xd3\x99\xd3\x9a\xd3\x9b\xd3\x9c\xd3\x9d\xd3\x9e\xd3\x9f\xd3\xa0\xd3\xa1\xd3\xa2\xd3\xa3\xd3\xa4\xd3\xa5\xd3\xa6\xd3\xa7\xd3\xa8\xd3\xa9\xd3\xaa\xd3\xab\xd3\xac\xd3\xad\xd3\xae\xd3\xaf\xd3\xb0\xd3\xb1\xd3\xb2\xd3\xb3\xd3\xb4\xd3\xb5\xd3\xb6\xd3\xb7\xd3\xb8\xd3\xb9\xd3\xba\xd3\xbb\xd3\xbc\xd3\xbd\xd3\xbe\xd3\xbf\xd3\xc0\xd3\xc1\xd3\xc2\xd3\xc3\xd3\xc4\xd3\xc5", /* ed00 */ "\xd3\xc6\xd3\xc7\xd3\xc8\xd3\xc9\xd3\xca\xd3\xcb\xd3\xcc\xd3\xcd\xd3\xce\xd3\xcf\xd3\xd0\xd3\xd1\xd3\xd2\xd3\xd3\xd3\xd4\xd3\xd5\xd3\xd6\xd3\xd7\xd3\xd8\xd3\xd9\xd3\xda\xd3\xdb\xd3\xdc\xd3\xdd\xd3\xde\xd3\xdf\xd3\xe0\xd3\xe1\xd3\xe2\xd3\xe3\xd3\xe4\xd3\xe5\xd3\xe6\xd3\xe7\xd3\xe8\xd3\xe9\xd3\xea\xd3\xeb\xd3\xec\xd3\xed\xd3\xee\xd3\xef\xd3\xf0\xd3\xf1\xd3\xf2\xd3\xf3\xd3\xf4\xd3\xf5\xd3\xf6\xd3\xf7\xd3\xf8\xd3\xf9\xd3\xfa\xd3\xfb\xd3\xfc\xd3\xfd\xd4\x41\xd4\x42\xd4\x43\xd4\x44\xd4\x45\xd4\x46\xd4\x47\xd4\x48\xd4\x49\xd4\x4a\xd4\x4b\xd4\x4c\xd4\x4d\xd4\x4e\xd4\x4f\xd4\x50\xd4\x51\xd4\x52\xd4\x53\xd4\x54\xd4\x55\xd4\x56\xd4\x57\xd4\x58\xd4\x59\xd4\x5a\xd4\x5b\xd4\x5c\xd4\x5d\xd4\x5e\xd4\x5f\xd4\x60\xd4\x61\xd4\x62\xd4\x63\xd4\x64\xd4\x65\xd4\x66\xd4\x67\xd4\x68\xd4\x69\xd4\x6a\xd4\x6b\xd4\x6c\xd4\x6d\xd4\x6e\xd4\x6f\xd4\x70\xd4\x71\xd4\x72\xd4\x73\xd4\x74\xd4\x75\xd4\x76\xd4\x77\xd4\x78\xd4\x79\xd4\x7a\xd4\x7b\xd4\x7c\xd4\x7d\xd4\x7e\xd4\x7f\xd4\x81\xd4\x82\xd4\x83\xd4\x84\xd4\x85\xd4\x86\xd4\x87\xd4\x88\xd4\x89", /* ed80 */ "\xd4\x8a\xd4\x8b\xd4\x8c\xd4\x8d\xd4\x8e\xd4\x8f\xd4\x90\xd4\x91\xd4\x92\xd4\x93\xd4\x94\xd4\x95\xd4\x96\xd4\x97\xd4\x98\xd4\x99\xd4\x9a\xd4\x9b\xd4\x9c\xd4\x9d\xd4\x9e\xd4\x9f\xd4\xa0\xd4\xa1\xd4\xa2\xd4\xa3\xd4\xa4\xd4\xa5\xd4\xa6\xd4\xa7\xd4\xa8\xd4\xa9\xd4\xaa\xd4\xab\xd4\xac\xd4\xad\xd4\xae\xd4\xaf\xd4\xb0\xd4\xb1\xd4\xb2\xd4\xb3\xd4\xb4\xd4\xb5\xd4\xb6\xd4\xb7\xd4\xb8\xd4\xb9\xd4\xba\xd4\xbb\xd4\xbc\xd4\xbd\xd4\xbe\xd4\xbf\xd4\xc0\xd4\xc1\xd4\xc2\xd4\xc3\xd4\xc4\xd4\xc5\xd4\xc6\xd4\xc7\xd4\xc8\xd4\xc9\xd4\xca\xd4\xcb\xd4\xcc\xd4\xcd\xd4\xce\xd4\xcf\xd4\xd0\xd4\xd1\xd4\xd2\xd4\xd3\xd4\xd4\xd4\xd5\xd4\xd6\xd4\xd7\xd4\xd8\xd4\xd9\xd4\xda\xd4\xdb\xd4\xdc\xd4\xdd\xd4\xde\xd4\xdf\xd4\xe0\xd4\xe1\xd4\xe2\xd4\xe3\xd4\xe4\xd4\xe5\xd4\xe6\xd4\xe7\xd4\xe8\xd4\xe9\xd4\xea\xd4\xeb\xd4\xec\xd4\xed\xd4\xee\xd4\xef\xd4\xf0\xd4\xf1\xd4\xf2\xd4\xf3\xd4\xf4\xd4\xf5\xd4\xf6\xd4\xf7\xd4\xf8\xd4\xf9\xd4\xfa\xd4\xfb\xd4\xfc\xd4\xfd\xd5\x41\xd5\x42\xd5\x43\xd5\x44\xd5\x45\xd5\x46\xd5\x47\xd5\x48\xd5\x49\xd5\x4a\xd5\x4b\xd5\x4c", /* ee00 */ "\xd5\x4d\xd5\x4e\xd5\x4f\xd5\x50\xd5\x51\xd5\x52\xd5\x53\xd5\x54\xd5\x55\xd5\x56\xd5\x57\xd5\x58\xd5\x59\xd5\x5a\xd5\x5b\xd5\x5c\xd5\x5d\xd5\x5e\xd5\x5f\xd5\x60\xd5\x61\xd5\x62\xd5\x63\xd5\x64\xd5\x65\xd5\x66\xd5\x67\xd5\x68\xd5\x69\xd5\x6a\xd5\x6b\xd5\x6c\xd5\x6d\xd5\x6e\xd5\x6f\xd5\x70\xd5\x71\xd5\x72\xd5\x73\xd5\x74\xd5\x75\xd5\x76\xd5\x77\xd5\x78\xd5\x79\xd5\x7a\xd5\x7b\xd5\x7c\xd5\x7d\xd5\x7e\xd5\x7f\xd5\x81\xd5\x82\xd5\x83\xd5\x84\xd5\x85\xd5\x86\xd5\x87\xd5\x88\xd5\x89\xd5\x8a\xd5\x8b\xd5\x8c\xd5\x8d\xd5\x8e\xd5\x8f\xd5\x90\xd5\x91\xd5\x92\xd5\x93\xd5\x94\xd5\x95\xd5\x96\xd5\x97\xd5\x98\xd5\x99\xd5\x9a\xd5\x9b\xd5\x9c\xd5\x9d\xd5\x9e\xd5\x9f\xd5\xa0\xd5\xa1\xd5\xa2\xd5\xa3\xd5\xa4\xd5\xa5\xd5\xa6\xd5\xa7\xd5\xa8\xd5\xa9\xd5\xaa\xd5\xab\xd5\xac\xd5\xad\xd5\xae\xd5\xaf\xd5\xb0\xd5\xb1\xd5\xb2\xd5\xb3\xd5\xb4\xd5\xb5\xd5\xb6\xd5\xb7\xd5\xb8\xd5\xb9\xd5\xba\xd5\xbb\xd5\xbc\xd5\xbd\xd5\xbe\xd5\xbf\xd5\xc0\xd5\xc1\xd5\xc2\xd5\xc3\xd5\xc4\xd5\xc5\xd5\xc6\xd5\xc7\xd5\xc8\xd5\xc9\xd5\xca\xd5\xcb\xd5\xcc\xd5\xcd", /* ee80 */ "\xd5\xce\xd5\xcf\xd5\xd0\xd5\xd1\xd5\xd2\xd5\xd3\xd5\xd4\xd5\xd5\xd5\xd6\xd5\xd7\xd5\xd8\xd5\xd9\xd5\xda\xd5\xdb\xd5\xdc\xd5\xdd\xd5\xde\xd5\xdf\xd5\xe0\xd5\xe1\xd5\xe2\xd5\xe3\xd5\xe4\xd5\xe5\xd5\xe6\xd5\xe7\xd5\xe8\xd5\xe9\xd5\xea\xd5\xeb\xd5\xec\xd5\xed\xd5\xee\xd5\xef\xd5\xf0\xd5\xf1\xd5\xf2\xd5\xf3\xd5\xf4\xd5\xf5\xd5\xf6\xd5\xf7\xd5\xf8\xd5\xf9\xd5\xfa\xd5\xfb\xd5\xfc\xd5\xfd\xd6\x41\xd6\x42\xd6\x43\xd6\x44\xd6\x45\xd6\x46\xd6\x47\xd6\x48\xd6\x49\xd6\x4a\xd6\x4b\xd6\x4c\xd6\x4d\xd6\x4e\xd6\x4f\xd6\x50\xd6\x51\xd6\x52\xd6\x53\xd6\x54\xd6\x55\xd6\x56\xd6\x57\xd6\x58\xd6\x59\xd6\x5a\xd6\x5b\xd6\x5c\xd6\x5d\xd6\x5e\xd6\x5f\xd6\x60\xd6\x61\xd6\x62\xd6\x63\xd6\x64\xd6\x65\xd6\x66\xd6\x67\xd6\x68\xd6\x69\xd6\x6a\xd6\x6b\xd6\x6c\xd6\x6d\xd6\x6e\xd6\x6f\xd6\x70\xd6\x71\xd6\x72\xd6\x73\xd6\x74\xd6\x75\xd6\x76\xd6\x77\xd6\x78\xd6\x79\xd6\x7a\xd6\x7b\xd6\x7c\xd6\x7d\xd6\x7e\xd6\x7f\xd6\x81\xd6\x82\xd6\x83\xd6\x84\xd6\x85\xd6\x86\xd6\x87\xd6\x88\xd6\x89\xd6\x8a\xd6\x8b\xd6\x8c\xd6\x8d\xd6\x8e\xd6\x8f\xd6\x90\xd6\x91", /* ef00 */ "\xd6\x92\xd6\x93\xd6\x94\xd6\x95\xd6\x96\xd6\x97\xd6\x98\xd6\x99\xd6\x9a\xd6\x9b\xd6\x9c\xd6\x9d\xd6\x9e\xd6\x9f\xd6\xa0\xd6\xa1\xd6\xa2\xd6\xa3\xd6\xa4\xd6\xa5\xd6\xa6\xd6\xa7\xd6\xa8\xd6\xa9\xd6\xaa\xd6\xab\xd6\xac\xd6\xad\xd6\xae\xd6\xaf\xd6\xb0\xd6\xb1\xd6\xb2\xd6\xb3\xd6\xb4\xd6\xb5\xd6\xb6\xd6\xb7\xd6\xb8\xd6\xb9\xd6\xba\xd6\xbb\xd6\xbc\xd6\xbd\xd6\xbe\xd6\xbf\xd6\xc0\xd6\xc1\xd6\xc2\xd6\xc3\xd6\xc4\xd6\xc5\xd6\xc6\xd6\xc7\xd6\xc8\xd6\xc9\xd6\xca\xd6\xcb\xd6\xcc\xd6\xcd\xd6\xce\xd6\xcf\xd6\xd0\xd6\xd1\xd6\xd2\xd6\xd3\xd6\xd4\xd6\xd5\xd6\xd6\xd6\xd7\xd6\xd8\xd6\xd9\xd6\xda\xd6\xdb\xd6\xdc\xd6\xdd\xd6\xde\xd6\xdf\xd6\xe0\xd6\xe1\xd6\xe2\xd6\xe3\xd6\xe4\xd6\xe5\xd6\xe6\xd6\xe7\xd6\xe8\xd6\xe9\xd6\xea\xd6\xeb\xd6\xec\xd6\xed\xd6\xee\xd6\xef\xd6\xf0\xd6\xf1\xd6\xf2\xd6\xf3\xd6\xf4\xd6\xf5\xd6\xf6\xd6\xf7\xd6\xf8\xd6\xf9\xd6\xfa\xd6\xfb\xd6\xfc\xd6\xfd\xd7\x41\xd7\x42\xd7\x43\xd7\x44\xd7\x45\xd7\x46\xd7\x47\xd7\x48\xd7\x49\xd7\x4a\xd7\x4b\xd7\x4c\xd7\x4d\xd7\x4e\xd7\x4f\xd7\x50\xd7\x51\xd7\x52\xd7\x53\xd7\x54", /* ef80 */ "\xd7\x55\xd7\x56\xd7\x57\xd7\x58\xd7\x59\xd7\x5a\xd7\x5b\xd7\x5c\xd7\x5d\xd7\x5e\xd7\x5f\xd7\x60\xd7\x61\xd7\x62\xd7\x63\xd7\x64\xd7\x65\xd7\x66\xd7\x67\xd7\x68\xd7\x69\xd7\x6a\xd7\x6b\xd7\x6c\xd7\x6d\xd7\x6e\xd7\x6f\xd7\x70\xd7\x71\xd7\x72\xd7\x73\xd7\x74\xd7\x75\xd7\x76\xd7\x77\xd7\x78\xd7\x79\xd7\x7a\xd7\x7b\xd7\x7c\xd7\x7d\xd7\x7e\xd7\x7f\xd7\x81\xd7\x82\xd7\x83\xd7\x84\xd7\x85\xd7\x86\xd7\x87\xd7\x88\xd7\x89\xd7\x8a\xd7\x8b\xd7\x8c\xd7\x8d\xd7\x8e\xd7\x8f\xd7\x90\xd7\x91\xd7\x92\xd7\x93\xd7\x94\xd7\x95\xd7\x96\xd7\x97\xd7\x98\xd7\x99\xd7\x9a\xd7\x9b\xd7\x9c\xd7\x9d\xd7\x9e\xd7\x9f\xd7\xa0\xd7\xa1\xd7\xa2\xd7\xa3\xd7\xa4\xd7\xa5\xd7\xa6\xd7\xa7\xd7\xa8\xd7\xa9\xd7\xaa\xd7\xab\xd7\xac\xd7\xad\xd7\xae\xd7\xaf\xd7\xb0\xd7\xb1\xd7\xb2\xd7\xb3\xd7\xb4\xd7\xb5\xd7\xb6\xd7\xb7\xd7\xb8\xd7\xb9\xd7\xba\xd7\xbb\xd7\xbc\xd7\xbd\xd7\xbe\xd7\xbf\xd7\xc0\xd7\xc1\xd7\xc2\xd7\xc3\xd7\xc4\xd7\xc5\xd7\xc6\xd7\xc7\xd7\xc8\xd7\xc9\xd7\xca\xd7\xcb\xd7\xcc\xd7\xcd\xd7\xce\xd7\xcf\xd7\xd0\xd7\xd1\xd7\xd2\xd7\xd3\xd7\xd4\xd7\xd5", /* f000 */ "\xd7\xd6\xd7\xd7\xd7\xd8\xd7\xd9\xd7\xda\xd7\xdb\xd7\xdc\xd7\xdd\xd7\xde\xd7\xdf\xd7\xe0\xd7\xe1\xd7\xe2\xd7\xe3\xd7\xe4\xd7\xe5\xd7\xe6\xd7\xe7\xd7\xe8\xd7\xe9\xd7\xea\xd7\xeb\xd7\xec\xd7\xed\xd7\xee\xd7\xef\xd7\xf0\xd7\xf1\xd7\xf2\xd7\xf3\xd7\xf4\xd7\xf5\xd7\xf6\xd7\xf7\xd7\xf8\xd7\xf9\xd7\xfa\xd7\xfb\xd7\xfc\xd7\xfd\xd8\x41\xd8\x42\xd8\x43\xd8\x44\xd8\x45\xd8\x46\xd8\x47\xd8\x48\xd8\x49\xd8\x4a\xd8\x4b\xd8\x4c\xd8\x4d\xd8\x4e\xd8\x4f\xd8\x50\xd8\x51\xd8\x52\xd8\x53\xd8\x54\xd8\x55\xd8\x56\xd8\x57\xd8\x58\xd8\x59\xd8\x5a\xd8\x5b\xd8\x5c\xd8\x5d\xd8\x5e\xd8\x5f\xd8\x60\xd8\x61\xd8\x62\xd8\x63\xd8\x64\xd8\x65\xd8\x66\xd8\x67\xd8\x68\xd8\x69\xd8\x6a\xd8\x6b\xd8\x6c\xd8\x6d\xd8\x6e\xd8\x6f\xd8\x70\xd8\x71\xd8\x72\xd8\x73\xd8\x74\xd8\x75\xd8\x76\xd8\x77\xd8\x78\xd8\x79\xd8\x7a\xd8\x7b\xd8\x7c\xd8\x7d\xd8\x7e\xd8\x7f\xd8\x81\xd8\x82\xd8\x83\xd8\x84\xd8\x85\xd8\x86\xd8\x87\xd8\x88\xd8\x89\xd8\x8a\xd8\x8b\xd8\x8c\xd8\x8d\xd8\x8e\xd8\x8f\xd8\x90\xd8\x91\xd8\x92\xd8\x93\xd8\x94\xd8\x95\xd8\x96\xd8\x97\xd8\x98\xd8\x99", /* f080 */ "\xd8\x9a\xd8\x9b\xd8\x9c\xd8\x9d\xd8\x9e\xd8\x9f\xd8\xa0\xd8\xa1\xd8\xa2\xd8\xa3\xd8\xa4\xd8\xa5\xd8\xa6\xd8\xa7\xd8\xa8\xd8\xa9\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae\xd8\xaf\xd8\xb0\xd8\xb1\xd8\xb2\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba\xd8\xbb\xd8\xbc\xd8\xbd\xd8\xbe\xd8\xbf\xd8\xc0\xd8\xc1\xd8\xc2\xd8\xc3\xd8\xc4\xd8\xc5\xd8\xc6\xd8\xc7\xd8\xc8\xd8\xc9\xd8\xca\xd8\xcb\xd8\xcc\xd8\xcd\xd8\xce\xd8\xcf\xd8\xd0\xd8\xd1\xd8\xd2\xd8\xd3\xd8\xd4\xd8\xd5\xd8\xd6\xd8\xd7\xd8\xd8\xd8\xd9\xd8\xda\xd8\xdb\xd8\xdc\xd8\xdd\xd8\xde\xd8\xdf\xd8\xe0\xd8\xe1\xd8\xe2\xd8\xe3\xd8\xe4\xd8\xe5\xd8\xe6\xd8\xe7\xd8\xe8\xd8\xe9\xd8\xea\xd8\xeb\xd8\xec\xd8\xed\xd8\xee\xd8\xef\xd8\xf0\xd8\xf1\xd8\xf2\xd8\xf3\xd8\xf4\xd8\xf5\xd8\xf6\xd8\xf7\xd8\xf8\xd8\xf9\xd8\xfa\xd8\xfb\xd8\xfc\xd8\xfd\xd9\x41\xd9\x42\xd9\x43\xd9\x44\xd9\x45\xd9\x46\xd9\x47\xd9\x48\xd9\x49\xd9\x4a\xd9\x4b\xd9\x4c\xd9\x4d\xd9\x4e\xd9\x4f\xd9\x50\xd9\x51\xd9\x52\xd9\x53\xd9\x54\xd9\x55\xd9\x56\xd9\x57\xd9\x58\xd9\x59\xd9\x5a\xd9\x5b\xd9\x5c", /* f100 */ "\xd9\x5d\xd9\x5e\xd9\x5f\xd9\x60\xd9\x61\xd9\x62\xd9\x63\xd9\x64\xd9\x65\xd9\x66\xd9\x67\xd9\x68\xd9\x69\xd9\x6a\xd9\x6b\xd9\x6c\xd9\x6d\xd9\x6e\xd9\x6f\xd9\x70\xd9\x71\xd9\x72\xd9\x73\xd9\x74\xd9\x75\xd9\x76\xd9\x77\xd9\x78\xd9\x79\xd9\x7a\xd9\x7b\xd9\x7c\xd9\x7d\xd9\x7e\xd9\x7f\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x88\xd9\x89\xd9\x8a\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f\xd9\x90\xd9\x91\xd9\x92\xd9\x93\xd9\x94\xd9\x95\xd9\x96\xd9\x97\xd9\x98\xd9\x99\xd9\x9a\xd9\x9b\xd9\x9c\xd9\x9d\xd9\x9e\xd9\x9f\xd9\xa0\xd9\xa1\xd9\xa2\xd9\xa3\xd9\xa4\xd9\xa5\xd9\xa6\xd9\xa7\xd9\xa8\xd9\xa9\xd9\xaa\xd9\xab\xd9\xac\xd9\xad\xd9\xae\xd9\xaf\xd9\xb0\xd9\xb1\xd9\xb2\xd9\xb3\xd9\xb4\xd9\xb5\xd9\xb6\xd9\xb7\xd9\xb8\xd9\xb9\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf\xd9\xc0\xd9\xc1\xd9\xc2\xd9\xc3\xd9\xc4\xd9\xc5\xd9\xc6\xd9\xc7\xd9\xc8\xd9\xc9\xd9\xca\xd9\xcb\xd9\xcc\xd9\xcd\xd9\xce\xd9\xcf\xd9\xd0\xd9\xd1\xd9\xd2\xd9\xd3\xd9\xd4\xd9\xd5\xd9\xd6\xd9\xd7\xd9\xd8\xd9\xd9\xd9\xda\xd9\xdb\xd9\xdc\xd9\xdd", /* f180 */ "\xd9\xde\xd9\xdf\xd9\xe0\xd9\xe1\xd9\xe2\xd9\xe3\xd9\xe4\xd9\xe5\xd9\xe6\xd9\xe7\xd9\xe8\xd9\xe9\xd9\xea\xd9\xeb\xd9\xec\xd9\xed\xd9\xee\xd9\xef\xd9\xf0\xd9\xf1\xd9\xf2\xd9\xf3\xd9\xf4\xd9\xf5\xd9\xf6\xd9\xf7\xd9\xf8\xd9\xf9\xd9\xfa\xd9\xfb\xd9\xfc\xd9\xfd\xda\x41\xda\x42\xda\x43\xda\x44\xda\x45\xda\x46\xda\x47\xda\x48\xda\x49\xda\x4a\xda\x4b\xda\x4c\xda\x4d\xda\x4e\xda\x4f\xda\x50\xda\x51\xda\x52\xda\x53\xda\x54\xda\x55\xda\x56\xda\x57\xda\x58\xda\x59\xda\x5a\xda\x5b\xda\x5c\xda\x5d\xda\x5e\xda\x5f\xda\x60\xda\x61\xda\x62\xda\x63\xda\x64\xda\x65\xda\x66\xda\x67\xda\x68\xda\x69\xda\x6a\xda\x6b\xda\x6c\xda\x6d\xda\x6e\xda\x6f\xda\x70\xda\x71\xda\x72\xda\x73\xda\x74\xda\x75\xda\x76\xda\x77\xda\x78\xda\x79\xda\x7a\xda\x7b\xda\x7c\xda\x7d\xda\x7e\xda\x7f\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87\xda\x88\xda\x89\xda\x8a\xda\x8b\xda\x8c\xda\x8d\xda\x8e\xda\x8f\xda\x90\xda\x91\xda\x92\xda\x93\xda\x94\xda\x95\xda\x96\xda\x97\xda\x98\xda\x99\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f\xda\xa0\xda\xa1", /* f200 */ "\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8\xda\xa9\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9\xda\xba\xda\xbb\xda\xbc\xda\xbd\xda\xbe\xda\xbf\xda\xc0\xda\xc1\xda\xc2\xda\xc3\xda\xc4\xda\xc5\xda\xc6\xda\xc7\xda\xc8\xda\xc9\xda\xca\xda\xcb\xda\xcc\xda\xcd\xda\xce\xda\xcf\xda\xd0\xda\xd1\xda\xd2\xda\xd3\xda\xd4\xda\xd5\xda\xd6\xda\xd7\xda\xd8\xda\xd9\xda\xda\xda\xdb\xda\xdc\xda\xdd\xda\xde\xda\xdf\xda\xe0\xda\xe1\xda\xe2\xda\xe3\xda\xe4\xda\xe5\xda\xe6\xda\xe7\xda\xe8\xda\xe9\xda\xea\xda\xeb\xda\xec\xda\xed\xda\xee\xda\xef\xda\xf0\xda\xf1\xda\xf2\xda\xf3\xda\xf4\xda\xf5\xda\xf6\xda\xf7\xda\xf8\xda\xf9\xda\xfa\xda\xfb\xda\xfc\xda\xfd\xdb\x41\xdb\x42\xdb\x43\xdb\x44\xdb\x45\xdb\x46\xdb\x47\xdb\x48\xdb\x49\xdb\x4a\xdb\x4b\xdb\x4c\xdb\x4d\xdb\x4e\xdb\x4f\xdb\x50\xdb\x51\xdb\x52\xdb\x53\xdb\x54\xdb\x55\xdb\x56\xdb\x57\xdb\x58\xdb\x59\xdb\x5a\xdb\x5b\xdb\x5c\xdb\x5d\xdb\x5e\xdb\x5f\xdb\x60\xdb\x61\xdb\x62\xdb\x63\xdb\x64", /* f280 */ "\xdb\x65\xdb\x66\xdb\x67\xdb\x68\xdb\x69\xdb\x6a\xdb\x6b\xdb\x6c\xdb\x6d\xdb\x6e\xdb\x6f\xdb\x70\xdb\x71\xdb\x72\xdb\x73\xdb\x74\xdb\x75\xdb\x76\xdb\x77\xdb\x78\xdb\x79\xdb\x7a\xdb\x7b\xdb\x7c\xdb\x7d\xdb\x7e\xdb\x7f\xdb\x81\xdb\x82\xdb\x83\xdb\x84\xdb\x85\xdb\x86\xdb\x87\xdb\x88\xdb\x89\xdb\x8a\xdb\x8b\xdb\x8c\xdb\x8d\xdb\x8e\xdb\x8f\xdb\x90\xdb\x91\xdb\x92\xdb\x93\xdb\x94\xdb\x95\xdb\x96\xdb\x97\xdb\x98\xdb\x99\xdb\x9a\xdb\x9b\xdb\x9c\xdb\x9d\xdb\x9e\xdb\x9f\xdb\xa0\xdb\xa1\xdb\xa2\xdb\xa3\xdb\xa4\xdb\xa5\xdb\xa6\xdb\xa7\xdb\xa8\xdb\xa9\xdb\xaa\xdb\xab\xdb\xac\xdb\xad\xdb\xae\xdb\xaf\xdb\xb0\xdb\xb1\xdb\xb2\xdb\xb3\xdb\xb4\xdb\xb5\xdb\xb6\xdb\xb7\xdb\xb8\xdb\xb9\xdb\xba\xdb\xbb\xdb\xbc\xdb\xbd\xdb\xbe\xdb\xbf\xdb\xc0\xdb\xc1\xdb\xc2\xdb\xc3\xdb\xc4\xdb\xc5\xdb\xc6\xdb\xc7\xdb\xc8\xdb\xc9\xdb\xca\xdb\xcb\xdb\xcc\xdb\xcd\xdb\xce\xdb\xcf\xdb\xd0\xdb\xd1\xdb\xd2\xdb\xd3\xdb\xd4\xdb\xd5\xdb\xd6\xdb\xd7\xdb\xd8\xdb\xd9\xdb\xda\xdb\xdb\xdb\xdc\xdb\xdd\xdb\xde\xdb\xdf\xdb\xe0\xdb\xe1\xdb\xe2\xdb\xe3\xdb\xe4\xdb\xe5", /* f300 */ "\xdb\xe6\xdb\xe7\xdb\xe8\xdb\xe9\xdb\xea\xdb\xeb\xdb\xec\xdb\xed\xdb\xee\xdb\xef\xdb\xf0\xdb\xf1\xdb\xf2\xdb\xf3\xdb\xf4\xdb\xf5\xdb\xf6\xdb\xf7\xdb\xf8\xdb\xf9\xdb\xfa\xdb\xfb\xdb\xfc\xdb\xfd\xdc\x41\xdc\x42\xdc\x43\xdc\x44\xdc\x45\xdc\x46\xdc\x47\xdc\x48\xdc\x49\xdc\x4a\xdc\x4b\xdc\x4c\xdc\x4d\xdc\x4e\xdc\x4f\xdc\x50\xdc\x51\xdc\x52\xdc\x53\xdc\x54\xdc\x55\xdc\x56\xdc\x57\xdc\x58\xdc\x59\xdc\x5a\xdc\x5b\xdc\x5c\xdc\x5d\xdc\x5e\xdc\x5f\xdc\x60\xdc\x61\xdc\x62\xdc\x63\xdc\x64\xdc\x65\xdc\x66\xdc\x67\xdc\x68\xdc\x69\xdc\x6a\xdc\x6b\xdc\x6c\xdc\x6d\xdc\x6e\xdc\x6f\xdc\x70\xdc\x71\xdc\x72\xdc\x73\xdc\x74\xdc\x75\xdc\x76\xdc\x77\xdc\x78\xdc\x79\xdc\x7a\xdc\x7b\xdc\x7c\xdc\x7d\xdc\x7e\xdc\x7f\xdc\x81\xdc\x82\xdc\x83\xdc\x84\xdc\x85\xdc\x86\xdc\x87\xdc\x88\xdc\x89\xdc\x8a\xdc\x8b\xdc\x8c\xdc\x8d\xdc\x8e\xdc\x8f\xdc\x90\xdc\x91\xdc\x92\xdc\x93\xdc\x94\xdc\x95\xdc\x96\xdc\x97\xdc\x98\xdc\x99\xdc\x9a\xdc\x9b\xdc\x9c\xdc\x9d\xdc\x9e\xdc\x9f\xdc\xa0\xdc\xa1\xdc\xa2\xdc\xa3\xdc\xa4\xdc\xa5\xdc\xa6\xdc\xa7\xdc\xa8\xdc\xa9", /* f380 */ "\xdc\xaa\xdc\xab\xdc\xac\xdc\xad\xdc\xae\xdc\xaf\xdc\xb0\xdc\xb1\xdc\xb2\xdc\xb3\xdc\xb4\xdc\xb5\xdc\xb6\xdc\xb7\xdc\xb8\xdc\xb9\xdc\xba\xdc\xbb\xdc\xbc\xdc\xbd\xdc\xbe\xdc\xbf\xdc\xc0\xdc\xc1\xdc\xc2\xdc\xc3\xdc\xc4\xdc\xc5\xdc\xc6\xdc\xc7\xdc\xc8\xdc\xc9\xdc\xca\xdc\xcb\xdc\xcc\xdc\xcd\xdc\xce\xdc\xcf\xdc\xd0\xdc\xd1\xdc\xd2\xdc\xd3\xdc\xd4\xdc\xd5\xdc\xd6\xdc\xd7\xdc\xd8\xdc\xd9\xdc\xda\xdc\xdb\xdc\xdc\xdc\xdd\xdc\xde\xdc\xdf\xdc\xe0\xdc\xe1\xdc\xe2\xdc\xe3\xdc\xe4\xdc\xe5\xdc\xe6\xdc\xe7\xdc\xe8\xdc\xe9\xdc\xea\xdc\xeb\xdc\xec\xdc\xed\xdc\xee\xdc\xef\xdc\xf0\xdc\xf1\xdc\xf2\xdc\xf3\xdc\xf4\xdc\xf5\xdc\xf6\xdc\xf7\xdc\xf8\xdc\xf9\xdc\xfa\xdc\xfb\xdc\xfc\xdc\xfd\xdd\x41\xdd\x42\xdd\x43\xdd\x44\xdd\x45\xdd\x46\xdd\x47\xdd\x48\xdd\x49\xdd\x4a\xdd\x4b\xdd\x4c\xdd\x4d\xdd\x4e\xdd\x4f\xdd\x50\xdd\x51\xdd\x52\xdd\x53\xdd\x54\xdd\x55\xdd\x56\xdd\x57\xdd\x58\xdd\x59\xdd\x5a\xdd\x5b\xdd\x5c\xdd\x5d\xdd\x5e\xdd\x5f\xdd\x60\xdd\x61\xdd\x62\xdd\x63\xdd\x64\xdd\x65\xdd\x66\xdd\x67\xdd\x68\xdd\x69\xdd\x6a\xdd\x6b\xdd\x6c", /* f400 */ "\xdd\x6d\xdd\x6e\xdd\x6f\xdd\x70\xdd\x71\xdd\x72\xdd\x73\xdd\x74\xdd\x75\xdd\x76\xdd\x77\xdd\x78\xdd\x79\xdd\x7a\xdd\x7b\xdd\x7c\xdd\x7d\xdd\x7e\xdd\x7f\xdd\x81\xdd\x82\xdd\x83\xdd\x84\xdd\x85\xdd\x86\xdd\x87\xdd\x88\xdd\x89\xdd\x8a\xdd\x8b\xdd\x8c\xdd\x8d\xdd\x8e\xdd\x8f\xdd\x90\xdd\x91\xdd\x92\xdd\x93\xdd\x94\xdd\x95\xdd\x96\xdd\x97\xdd\x98\xdd\x99\xdd\x9a\xdd\x9b\xdd\x9c\xdd\x9d\xdd\x9e\xdd\x9f\xdd\xa0\xdd\xa1\xdd\xa2\xdd\xa3\xdd\xa4\xdd\xa5\xdd\xa6\xdd\xa7\xdd\xa8\xdd\xa9\xdd\xaa\xdd\xab\xdd\xac\xdd\xad\xdd\xae\xdd\xaf\xdd\xb0\xdd\xb1\xdd\xb2\xdd\xb3\xdd\xb4\xdd\xb5\xdd\xb6\xdd\xb7\xdd\xb8\xdd\xb9\xdd\xba\xdd\xbb\xdd\xbc\xdd\xbd\xdd\xbe\xdd\xbf\xdd\xc0\xdd\xc1\xdd\xc2\xdd\xc3\xdd\xc4\xdd\xc5\xdd\xc6\xdd\xc7\xdd\xc8\xdd\xc9\xdd\xca\xdd\xcb\xdd\xcc\xdd\xcd\xdd\xce\xdd\xcf\xdd\xd0\xdd\xd1\xdd\xd2\xdd\xd3\xdd\xd4\xdd\xd5\xdd\xd6\xdd\xd7\xdd\xd8\xdd\xd9\xdd\xda\xdd\xdb\xdd\xdc\xdd\xdd\xdd\xde\xdd\xdf\xdd\xe0\xdd\xe1\xdd\xe2\xdd\xe3\xdd\xe4\xdd\xe5\xdd\xe6\xdd\xe7\xdd\xe8\xdd\xe9\xdd\xea\xdd\xeb\xdd\xec\xdd\xed", /* f480 */ "\xdd\xee\xdd\xef\xdd\xf0\xdd\xf1\xdd\xf2\xdd\xf3\xdd\xf4\xdd\xf5\xdd\xf6\xdd\xf7\xdd\xf8\xdd\xf9\xdd\xfa\xdd\xfb\xdd\xfc\xdd\xfd\xde\x41\xde\x42\xde\x43\xde\x44\xde\x45\xde\x46\xde\x47\xde\x48\xde\x49\xde\x4a\xde\x4b\xde\x4c\xde\x4d\xde\x4e\xde\x4f\xde\x50\xde\x51\xde\x52\xde\x53\xde\x54\xde\x55\xde\x56\xde\x57\xde\x58\xde\x59\xde\x5a\xde\x5b\xde\x5c\xde\x5d\xde\x5e\xde\x5f\xde\x60\xde\x61\xde\x62\xde\x63\xde\x64\xde\x65\xde\x66\xde\x67\xde\x68\xde\x69\xde\x6a\xde\x6b\xde\x6c\xde\x6d\xde\x6e\xde\x6f\xde\x70\xde\x71\xde\x72\xde\x73\xde\x74\xde\x75\xde\x76\xde\x77\xde\x78\xde\x79\xde\x7a\xde\x7b\xde\x7c\xde\x7d\xde\x7e\xde\x7f\xde\x81\xde\x82\xde\x83\xde\x84\xde\x85\xde\x86\xde\x87\xde\x88\xde\x89\xde\x8a\xde\x8b\xde\x8c\xde\x8d\xde\x8e\xde\x8f\xde\x90\xde\x91\xde\x92\xde\x93\xde\x94\xde\x95\xde\x96\xde\x97\xde\x98\xde\x99\xde\x9a\xde\x9b\xde\x9c\xde\x9d\xde\x9e\xde\x9f\xde\xa0\xde\xa1\xde\xa2\xde\xa3\xde\xa4\xde\xa5\xde\xa6\xde\xa7\xde\xa8\xde\xa9\xde\xaa\xde\xab\xde\xac\xde\xad\xde\xae\xde\xaf\xde\xb0\xde\xb1", /* f500 */ "\xde\xb2\xde\xb3\xde\xb4\xde\xb5\xde\xb6\xde\xb7\xde\xb8\xde\xb9\xde\xba\xde\xbb\xde\xbc\xde\xbd\xde\xbe\xde\xbf\xde\xc0\xde\xc1\xde\xc2\xde\xc3\xde\xc4\xde\xc5\xde\xc6\xde\xc7\xde\xc8\xde\xc9\xde\xca\xde\xcb\xde\xcc\xde\xcd\xde\xce\xde\xcf\xde\xd0\xde\xd1\xde\xd2\xde\xd3\xde\xd4\xde\xd5\xde\xd6\xde\xd7\xde\xd8\xde\xd9\xde\xda\xde\xdb\xde\xdc\xde\xdd\xde\xde\xde\xdf\xde\xe0\xde\xe1\xde\xe2\xde\xe3\xde\xe4\xde\xe5\xde\xe6\xde\xe7\xde\xe8\xde\xe9\xde\xea\xde\xeb\xde\xec\xde\xed\xde\xee\xde\xef\xde\xf0\xde\xf1\xde\xf2\xde\xf3\xde\xf4\xde\xf5\xde\xf6\xde\xf7\xde\xf8\xde\xf9\xde\xfa\xde\xfb\xde\xfc\xde\xfd\xdf\x41\xdf\x42\xdf\x43\xdf\x44\xdf\x45\xdf\x46\xdf\x47\xdf\x48\xdf\x49\xdf\x4a\xdf\x4b\xdf\x4c\xdf\x4d\xdf\x4e\xdf\x4f\xdf\x50\xdf\x51\xdf\x52\xdf\x53\xdf\x54\xdf\x55\xdf\x56\xdf\x57\xdf\x58\xdf\x59\xdf\x5a\xdf\x5b\xdf\x5c\xdf\x5d\xdf\x5e\xdf\x5f\xdf\x60\xdf\x61\xdf\x62\xdf\x63\xdf\x64\xdf\x65\xdf\x66\xdf\x67\xdf\x68\xdf\x69\xdf\x6a\xdf\x6b\xdf\x6c\xdf\x6d\xdf\x6e\xdf\x6f\xdf\x70\xdf\x71\xdf\x72\xdf\x73\xdf\x74", /* f580 */ "\xdf\x75\xdf\x76\xdf\x77\xdf\x78\xdf\x79\xdf\x7a\xdf\x7b\xdf\x7c\xdf\x7d\xdf\x7e\xdf\x7f\xdf\x81\xdf\x82\xdf\x83\xdf\x84\xdf\x85\xdf\x86\xdf\x87\xdf\x88\xdf\x89\xdf\x8a\xdf\x8b\xdf\x8c\xdf\x8d\xdf\x8e\xdf\x8f\xdf\x90\xdf\x91\xdf\x92\xdf\x93\xdf\x94\xdf\x95\xdf\x96\xdf\x97\xdf\x98\xdf\x99\xdf\x9a\xdf\x9b\xdf\x9c\xdf\x9d\xdf\x9e\xdf\x9f\xdf\xa0\xdf\xa1\xdf\xa2\xdf\xa3\xdf\xa4\xdf\xa5\xdf\xa6\xdf\xa7\xdf\xa8\xdf\xa9\xdf\xaa\xdf\xab\xdf\xac\xdf\xad\xdf\xae\xdf\xaf\xdf\xb0\xdf\xb1\xdf\xb2\xdf\xb3\xdf\xb4\xdf\xb5\xdf\xb6\xdf\xb7\xdf\xb8\xdf\xb9\xdf\xba\xdf\xbb\xdf\xbc\xdf\xbd\xdf\xbe\xdf\xbf\xdf\xc0\xdf\xc1\xdf\xc2\xdf\xc3\xdf\xc4\xdf\xc5\xdf\xc6\xdf\xc7\xdf\xc8\xdf\xc9\xdf\xca\xdf\xcb\xdf\xcc\xdf\xcd\xdf\xce\xdf\xcf\xdf\xd0\xdf\xd1\xdf\xd2\xdf\xd3\xdf\xd4\xdf\xd5\xdf\xd6\xdf\xd7\xdf\xd8\xdf\xd9\xdf\xda\xdf\xdb\xdf\xdc\xdf\xdd\xdf\xde\xdf\xdf\xdf\xe0\xdf\xe1\xdf\xe2\xdf\xe3\xdf\xe4\xdf\xe5\xdf\xe6\xdf\xe7\xdf\xe8\xdf\xe9\xdf\xea\xdf\xeb\xdf\xec\xdf\xed\xdf\xee\xdf\xef\xdf\xf0\xdf\xf1\xdf\xf2\xdf\xf3\xdf\xf4\xdf\xf5", /* f600 */ "\xdf\xf6\xdf\xf7\xdf\xf8\xdf\xf9\xdf\xfa\xdf\xfb\xdf\xfc\xdf\xfd\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9", /* f680 */ "\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc\xe0\xfd\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c", /* f700 */ "\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd", /* f780 */ "\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1", /* f800 */ "\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\x00\x00\x00\x00\x44\x5c\x46\xa8\x46\xa9\x46\xaa\x46\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4b\x7a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x41\x46\xa7\x47\x49\x46\xb6\x46\xbc\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xa4\x46\xa5\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xa0\x46\xa1\x46\xa2\x46\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x46\xbe\x46\xbf\x46\xc2\x46\xc3\x46\xc0\x46\xc1\x46\xbd\x47\x42\x47\x43\x47\x44\x00\x00\x47\x45\x47\x46\x47\x47\x47\x48\x47\x4a\x47\x4b\x47\x4c\x47\x4d\x47\x4e\x47\x4f\x47\x50\x47\x53\x47\x54\x46\xc4\x47\x55\x47\x56\x47\x57\x47\x58\x47\x59\x00\x00\x47\x5a\x47\x5b\x47\x5c\x47\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x46\xb8\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x00\x00\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x47\x51\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-937_P110-1999 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\x27\x3d\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x35\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x3e\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x20\x27\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x23\x12\x22\x02\x22\x07\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\x00\x00\x00\x00\x22\x6a\x22\x6b\x00\x00\x22\x3d\x22\x1d\x00\x00\x22\x2c\x22\x08\x22\x0b\x22\x86\x22\x87\x22\x82\x22\x83\x00\x00\x00\x00\x22\x27\x22\x28\x21\xd2\x21\xd4\x22\x00\x22\x03\x21\x2b\x20\x30\x26\x6f\x26\x6d\x26\x6a\x20\x20\x20\x21\x00\xb6\x25\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x01\x25\x03\x25\x0f\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x25\x13\x25\x1b\x25\x17\x25\x23\x25\x33\x25\x2b\x25\x3b\x25\x4b\x25\x20\x25\x2f\x25\x28\x25\x37\x25\x3f\x25\x1d\x25\x30\x25\x25\x25\x38\x25\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x14\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x20\x32\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x02\xba\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x66\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x67\x22\x35\x26\x40\x00\xd7\x00\xf7\x22\x25\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x00\xb4\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x21\x30\x22\x30\x23\x30\x24\x30\x25\x30\x26\x30\x27\x30\x28\x30\x29\x53\x41\x53\x44\x53\x45\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xca\x02\xc7\x02\xcb\x02\xd9\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ NULL, /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x81\x25\x82\x25\x83\x25\x84\x25\x85\x25\x86\x25\x87\x25\x88\x25\x8f\x25\x8e\x25\x8d\x25\x8c\x25\x8b\x25\x8a\x25\x89\x25\x3c\x25\x34\x25\x2c\x25\x24\x25\x1c\x25\x94\x25\x00\x25\x02\x25\x95\x25\x0c\x25\x10\x25\x14\x25\x18\x25\x6d\x25\x6e\x25\x70\x25\x6f", /* 4680 */ "\x00\x00\x25\x50\x25\x5e\x25\x6a\x25\x61\x25\xe2\x25\xe3\x25\xe5\x25\xe4\x25\x71\x25\x72\x25\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x41\xfe\x42\xfe\x43\xfe\x44\xfe\x3b\xfe\x3c\x00\x00\xfe\x31\xf8\x3f\xf8\x40\xf8\x41\xf8\x42\xfe\x35\xfe\x36\xfe\x37\xfe\x38\xfe\x39\xfe\x3a\xfe\x3d\xfe\x3e\xfe\x3f\xfe\x40\xfe\x33\x25\x74\xff\x0a\x30\x03\x32\xa3\x21\x05\xfe\x34\xfe\x4f\xfe\x49\xfe\x4a\xfe\x4d\xfe\x4e\xfe\x4b\xfe\x4c\xfe\x61\x22\x1a\x22\x52\x22\x61\x22\x29\x22\x2a\x22\xa5\x22\x20\x22\x1f\x22\xbf\x33\xd2\x33\xd1\x22\x2b\x22\x2e\x22\x95\x22\x99\x21\x96\x21\x97\x21\x99\x21\x98\x00\x00\x00\x00\x22\x15\x21\x09\x33\xd5\x33\x9c\x33\x9d\x33\x9e\x33\xce\x33\xa1\x33\x8e\x33\x8f\x33\xc4\x00\xb7\x00\x00\x00\x00\x00\x00\x30\x1d\x30\x1e\x00\x00\x00\x00\x00\x00\x21\xe7\x21\xb8\x21\xb9\x51\x59\x51\x5b\x51\x5e\x51\x5d\x51\x61\x51\x63\x55\xe7\x74\xe9\x7c\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x30\xfe\x50\xfe\x51\xfe\x52\xfe\x54\xfe\x55\xfe\x56\xfe\x57\xfe\x32\xfe\x58\xfe\x59\xfe\x5a\xfe\x5b\xfe\x5c\xfe\x5d\xfe\x5e\xff\xe3\x02\xcd\xfe\x5f\xfe\x60\xfe\x62\xfe\x63\xfe\x64\xfe\x65\xfe\x66\xfe\x68\xfe\x69\xfe\x6a\xfe\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4780 */ "\x00\x00\x24\x00\x24\x01\x24\x02\x24\x03\x24\x04\x24\x05\x24\x06\x24\x07\x24\x08\x24\x09\x24\x0a\x24\x0b\x24\x0c\x24\x0d\x24\x0e\x24\x0f\x24\x10\x24\x11\x24\x12\x24\x13\x24\x14\x24\x15\x24\x16\x24\x17\x24\x18\x24\x19\x24\x1a\x24\x1b\x24\x1c\x24\x1d\x24\x1e\x24\x1f\x24\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x28\x4e\x36\x4e\x3f\x4e\x59\x4e\x85\x4e\x8c\x4e\xa0\x4e\xba\x51\x3f\x51\x65\x51\x6b\x51\x82\x51\x96\x51\xab\x51\xe0\x51\xf5\x52\x00\x52\x9b\x52\xf9\x53\x15\x53\x1a\x53\x38\x53\x41\x53\x5c\x53\x69\x53\x82\x53\xb6\x53\xc8\x53\xe3\x56\xd7\x57\x1f\x58\xeb\x59\x0a\x59\x15\x59\x27\x59\x73\x5b\x50\x5b\x80\x5b\xf8\x5c\x0f\x5c\x22\x5c\x38\x5c\x6e\x5c\x71\x5d\xdb\x5d\xe5\x5d\xf1\x5d\xfe\x5e\x72\x5e\x7a\x5e\x7f\x5e\xf4\x5e\xfe\x5f\x0b\x5f\x13\x5f\x50\x5f\x61\x5f\x73\x5f\xc3\x62\x08\x62\x36\x62\x4b", /* 4880 */ "\x00\x00\x65\x2f\x65\x34\x65\x87\x65\x97\x65\xa4\x65\xb9\x65\xe0\x65\xe5\x66\xf0\x67\x08\x67\x28\x6b\x20\x6b\x62\x6b\x79\x6b\xb3\x6b\xcb\x6b\xd4\x6b\xdb\x6c\x0f\x6c\x14\x6c\x34\x70\x6b\x72\x2a\x72\x36\x72\x3b\x72\x3f\x72\x47\x72\x59\x72\x5b\x72\xac\x73\x84\x73\x89\x74\xdc\x74\xe6\x75\x18\x75\x1f\x75\x28\x75\x30\x75\x8b\x75\x92\x76\x76\x76\x7d\x76\xae\x76\xbf\x76\xee\x77\xdb\x77\xe2\x77\xf3\x79\x3a\x79\xb8\x79\xbe\x7a\x74\x7a\xcb\x7a\xf9\x7c\x73\x7c\xf8\x7f\x36\x7f\x51\x7f\x8a\x7f\xbd\x80\x01\x80\x0c\x80\x12\x80\x33\x80\x7f\x80\x89\x81\xe3\x81\xea\x81\xf3\x81\xfc\x82\x0c\x82\x1b\x82\x1f\x82\x6e\x82\x72\x82\x78\x86\x4d\x86\x6b\x88\x40\x88\x4c\x88\x63\x89\x7e\x89\x8b\x89\xd2\x8a\x00\x8c\x37\x8c\x46\x8c\x55\x8c\x78\x8c\x9d\x8d\x64\x8d\x70\x8d\xb3\x8e\xab\x8e\xca\x8f\x9b\x8f\xb0\x8f\xb5\x90\x91\x91\x49\x91\xc6\x91\xcc\x91\xd1\x95\x77\x95\x80\x96\x1c\x96\xb6\x96\xb9\x96\xe8\x97\x52\x97\x5e\x97\x62\x97\x69\x97\xcb\x97\xed\x97\xf3\x98\x01\x98\xa8\x98\xdb\x98\xdf\x99\x96\x99\x99\x99\xac\x9a\xa8\x9a\xd8\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xdf\x9b\x25\x9b\x2f\x9b\x32\x9b\x3c\x9b\x5a\x9c\xe5\x9e\x75\x9e\x7f\x9e\xa5\x9e\xbb\x9e\xc3\x9e\xcd\x9e\xd1\x9e\xf9\x9e\xfd\x9f\x0e\x9f\x13\x9f\x20\x9f\x3b\x9f\x4a\x9f\x52\x9f\x8d\x9f\x9c\x9f\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x59\x4e\x01\x4e\x03\x4e\x43\x4e\x5d\x4e\x86\x4e\x8c\x4e\xba\x51\x3f\x51\x65\x51\x6b\x51\xe0\x52\x00\x52\x01\x52\x9b\x53\x15\x53\x41\x53\x5c\x53\xc8\x4e\x09\x4e\x0b\x4e\x08\x4e\x0a\x4e\x2b\x4e\x38\x51\xe1\x4e\x45\x4e\x48\x4e\x5f\x4e\x5e\x4e\x8e\x4e\xa1\x51\x40\x52\x03\x52\xfa\x53\x43\x53\xc9\x53\xe3\x57\x1f\x58\xeb\x59\x15\x59\x27\x59\x73\x5b\x50\x5b\x51\x5b\x53\x5b\xf8\x5c\x0f\x5c\x22\x5c\x38\x5c\x71\x5d\xdd\x5d\xe5\x5d\xf1\x5d\xf2\x5d\xf3\x5d\xfe\x5e\x72\x5e\xfe\x5f\x0b\x5f\x13\x62\x4d", /* 4c80 */ "\x00\x00\x4e\x11\x4e\x10\x4e\x0d\x4e\x2d\x4e\x30\x4e\x39\x4e\x4b\x5c\x39\x4e\x88\x4e\x91\x4e\x95\x4e\x92\x4e\x94\x4e\xa2\x4e\xc1\x4e\xc0\x4e\xc3\x4e\xc6\x4e\xc7\x4e\xcd\x4e\xca\x4e\xcb\x4e\xc4\x51\x43\x51\x41\x51\x67\x51\x6d\x51\x6e\x51\x6c\x51\x97\x51\xf6\x52\x06\x52\x07\x52\x08\x52\xfb\x52\xfe\x52\xff\x53\x16\x53\x39\x53\x48\x53\x47\x53\x45\x53\x5e\x53\x84\x53\xcb\x53\xca\x53\xcd\x58\xec\x59\x29\x59\x2b\x59\x2a\x59\x2d\x5b\x54\x5c\x11\x5c\x24\x5c\x3a\x5c\x6f\x5d\xf4\x5e\x7b\x5e\xff\x5f\x14\x5f\x15\x5f\xc3\x62\x08\x62\x36\x62\x4b\x62\x4e\x65\x2f\x65\x87\x65\x97\x65\xa4\x65\xb9\x65\xe5\x66\xf0\x67\x08\x67\x28\x6b\x20\x6b\x62\x6b\x79\x6b\xcb\x6b\xd4\x6b\xdb\x6c\x0f\x6c\x34\x70\x6b\x72\x2a\x72\x36\x72\x3b\x72\x47\x72\x59\x72\x5b\x72\xac\x73\x8b\x4e\x19\x4e\x16\x4e\x15\x4e\x14\x4e\x18\x4e\x3b\x4e\x4d\x4e\x4f\x4e\x4e\x4e\xe5\x4e\xd8\x4e\xd4\x4e\xd5\x4e\xd6\x4e\xd7\x4e\xe3\x4e\xe4\x4e\xd9\x4e\xde\x51\x45\x51\x44\x51\x89\x51\x8a\x51\xac\x51\xf9\x51\xfa\x51\xf8\x52\x0a\x52\xa0\x52\x9f\x53\x05\x53\x06\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x17\x53\x1d\x4e\xdf\x53\x4a\x53\x49\x53\x61\x53\x60\x53\x6f\x53\x6e\x53\xbb\x53\xef\x53\xe4\x53\xf3\x53\xec\x53\xee\x53\xe9\x53\xe8\x53\xfc\x53\xf8\x53\xf5\x53\xeb\x53\xe6\x53\xea\x53\xf2\x53\xf1\x53\xf0\x53\xe5\x53\xed\x53\xfb\x56\xdb\x56\xda\x59\x16\x59\x2e\x59\x31\x59\x74\x59\x76\x5b\x55\x5b\x83\x5c\x3c\x5d\xe8\x5d\xe7\x5d\xe6\x5e\x02\x5e\x03\x5e\x73\x5e\x7c\x5f\x01\x5f\x18\x5f\x17\x5f\xc5\x62\x0a\x62\x53\x62\x54\x62\x52\x62\x51\x65\xa5\x65\xe6\x67\x2e\x67\x2c\x67\x2a\x67\x2b\x67\x2d\x6b\x63", /* 4d80 */ "\x00\x00\x6b\xcd\x6c\x11\x6c\x10\x6c\x38\x6c\x41\x6c\x40\x6c\x3e\x72\xaf\x73\x84\x73\x89\x74\xdc\x74\xe6\x75\x18\x75\x1f\x75\x28\x75\x29\x75\x30\x75\x31\x75\x32\x75\x33\x75\x8b\x76\x7d\x76\xae\x76\xbf\x76\xee\x77\xdb\x77\xe2\x77\xf3\x79\x3a\x79\xbe\x7a\x74\x7a\xcb\x4e\x1e\x4e\x1f\x4e\x52\x4e\x53\x4e\x69\x4e\x99\x4e\xa4\x4e\xa6\x4e\xa5\x4e\xff\x4f\x09\x4f\x19\x4f\x0a\x4f\x15\x4f\x0d\x4f\x10\x4f\x11\x4f\x0f\x4e\xf2\x4e\xf6\x4e\xfb\x4e\xf0\x4e\xf3\x4e\xfd\x4f\x01\x4f\x0b\x51\x49\x51\x47\x51\x46\x51\x48\x51\x68\x51\x71\x51\x8d\x51\xb0\x52\x17\x52\x11\x52\x12\x52\x0e\x52\x16\x52\xa3\x53\x08\x53\x21\x53\x20\x53\x70\x53\x71\x54\x09\x54\x0f\x54\x0c\x54\x0a\x54\x10\x54\x01\x54\x0b\x54\x04\x54\x11\x54\x0d\x54\x08\x54\x03\x54\x0e\x54\x06\x54\x12\x56\xe0\x56\xde\x56\xdd\x57\x33\x57\x30\x57\x28\x57\x2d\x57\x2c\x57\x2f\x57\x29\x59\x19\x59\x1a\x59\x37\x59\x38\x59\x84\x59\x78\x59\x83\x59\x7d\x59\x79\x59\x82\x59\x81\x5b\x57\x5b\x58\x5b\x87\x5b\x88\x5b\x85\x5b\x89\x5b\xfa\x5c\x16\x5c\x79\x5d\xde\x5e\x06\x5e\x76\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x74\x5f\x0f\x5f\x1b\x5f\xd9\x5f\xd6\x62\x0e\x62\x0c\x62\x0d\x62\x10\x62\x63\x62\x5b\x62\x58\x65\x36\x65\xe9\x65\xe8\x65\xec\x65\xed\x66\xf2\x66\xf3\x67\x09\x67\x3d\x67\x34\x67\x31\x67\x35\x6b\x21\x6b\x64\x6b\x7b\x6c\x16\x6c\x5d\x6c\x57\x6c\x59\x6c\x5f\x6c\x60\x6c\x50\x6c\x55\x6c\x61\x6c\x5b\x6c\x4d\x6c\x4e\x70\x70\x72\x5f\x72\x5d\x76\x7e\x7a\xf9\x7c\x73\x7c\xf8\x7f\x36\x7f\x8a\x7f\xbd\x80\x01\x80\x03\x80\x0c\x80\x12\x80\x33\x80\x7f\x80\x89\x80\x8b\x80\x8c\x81\xe3\x81\xea\x81\xf3\x81\xfc\x82\x0c", /* 4e80 */ "\x00\x00\x82\x1b\x82\x1f\x82\x6e\x82\x72\x82\x7e\x86\x6b\x88\x40\x88\x4c\x88\x63\x89\x7f\x96\x21\x4e\x32\x4e\xa8\x4f\x4d\x4f\x4f\x4f\x47\x4f\x57\x4f\x5e\x4f\x34\x4f\x5b\x4f\x55\x4f\x30\x4f\x50\x4f\x51\x4f\x3d\x4f\x3a\x4f\x38\x4f\x43\x4f\x54\x4f\x3c\x4f\x46\x4f\x63\x4f\x5c\x4f\x60\x4f\x2f\x4f\x4e\x4f\x36\x4f\x59\x4f\x5d\x4f\x48\x4f\x5a\x51\x4c\x51\x4b\x51\x4d\x51\x75\x51\xb6\x51\xb7\x52\x25\x52\x24\x52\x29\x52\x2a\x52\x28\x52\xab\x52\xa9\x52\xaa\x52\xac\x53\x23\x53\x73\x53\x75\x54\x1d\x54\x2d\x54\x1e\x54\x3e\x54\x26\x54\x4e\x54\x27\x54\x46\x54\x43\x54\x33\x54\x48\x54\x42\x54\x1b\x54\x29\x54\x4a\x54\x39\x54\x3b\x54\x38\x54\x2e\x54\x35\x54\x36\x54\x20\x54\x3c\x54\x40\x54\x31\x54\x2b\x54\x1f\x54\x2c\x56\xea\x56\xf0\x56\xe4\x56\xeb\x57\x4a\x57\x51\x57\x40\x57\x4d\x57\x47\x57\x4e\x57\x3e\x57\x50\x57\x4f\x57\x3b\x58\xef\x59\x3e\x59\x9d\x59\x92\x59\xa8\x59\x9e\x59\xa3\x59\x99\x59\x96\x59\x8d\x59\xa4\x59\x93\x59\x8a\x59\xa5\x5b\x5d\x5b\x5c\x5b\x5a\x5b\x5b\x5b\x8c\x5b\x8b\x5b\x8f\x5c\x2c\x5c\x40\x5c\x41\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x3f\x5c\x3e\x5c\x90\x5c\x91\x5c\x94\x5c\x8c\x5d\xeb\x5e\x0c\x5e\x8f\x5e\x87\x5e\x8a\x5e\xf7\x5f\x04\x5f\x1f\x5f\x64\x5f\x62\x5f\x77\x5f\x79\x5f\xd8\x5f\xcc\x5f\xd7\x5f\xcd\x5f\xf1\x5f\xeb\x5f\xf8\x5f\xea\x62\x12\x62\x11\x62\x84\x62\x97\x62\x96\x62\x80\x62\x76\x62\x89\x62\x6d\x62\x8a\x62\x7c\x62\x7e\x62\x79\x62\x73\x62\x92\x62\x6f\x62\x98\x62\x6e\x62\x95\x62\x93\x62\x91\x62\x86\x65\x39\x65\x3b\x65\x38\x65\xf1\x66\xf4\x67\x5f\x67\x4e\x67\x4f\x67\x50\x67\x51\x67\x5c\x67\x56\x67\x5e\x67\x49\x67\x46", /* 4f80 */ "\x00\x00\x67\x60\x67\x53\x67\x57\x6b\x65\x6b\xcf\x6c\x42\x6c\x5e\x6c\x99\x6c\x81\x6c\x88\x6c\x89\x6c\x85\x6c\x9b\x6c\x6a\x6c\x7a\x6c\x90\x6c\x70\x6c\x8c\x6c\x68\x6c\x96\x6c\x92\x6c\x7d\x6c\x83\x6c\x72\x6c\x7e\x6c\x74\x6c\x86\x6c\x76\x6c\x8d\x6c\x94\x6c\x98\x6c\x82\x70\x76\x70\x7c\x70\x7d\x70\x78\x72\x62\x72\x61\x72\x60\x72\xc4\x72\xc2\x73\x96\x75\x2c\x75\x2b\x75\x37\x75\x38\x76\x82\x76\xef\x77\xe3\x79\xc1\x79\xc0\x79\xbf\x7a\x76\x7c\xfb\x7f\x55\x80\x96\x80\x93\x80\x9d\x80\x98\x80\x9b\x80\x9a\x80\xb2\x82\x6f\x82\x92\x82\x8b\x82\x8d\x89\x8b\x89\xd2\x8a\x00\x8c\x37\x8c\x46\x8c\x55\x8c\x9d\x8d\x64\x8d\x70\x8d\xb3\x8e\xab\x8e\xca\x8f\x9b\x8f\xb0\x8f\xc2\x8f\xc6\x8f\xc5\x8f\xc4\x5d\xe1\x90\x91\x90\xa2\x90\xaa\x90\xa6\x90\xa3\x91\x49\x91\xc6\x91\xcc\x96\x32\x96\x2e\x96\x31\x96\x2a\x96\x2c\x4e\x26\x4e\x56\x4e\x73\x4e\x8b\x4e\x9b\x4e\x9e\x4e\xab\x4e\xac\x4f\x6f\x4f\x9d\x4f\x8d\x4f\x73\x4f\x7f\x4f\x6c\x4f\x9b\x4f\x8b\x4f\x86\x4f\x83\x4f\x70\x4f\x75\x4f\x88\x4f\x69\x4f\x7b\x4f\x96\x4f\x7e\x4f\x8f\x4f\x91\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7a\x51\x54\x51\x52\x51\x55\x51\x69\x51\x77\x51\x76\x51\x78\x51\xbd\x51\xfd\x52\x3b\x52\x38\x52\x37\x52\x3a\x52\x30\x52\x2e\x52\x36\x52\x41\x52\xbe\x52\xbb\x53\x52\x53\x54\x53\x53\x53\x51\x53\x66\x53\x77\x53\x78\x53\x79\x53\xd6\x53\xd4\x53\xd7\x54\x73\x54\x75\x54\x96\x54\x78\x54\x95\x54\x80\x54\x7b\x54\x77\x54\x84\x54\x92\x54\x86\x54\x7c\x54\x90\x54\x71\x54\x76\x54\x8c\x54\x9a\x54\x62\x54\x68\x54\x8b\x54\x7d\x54\x8e\x56\xfa\x57\x83\x57\x77\x57\x6a\x57\x69\x57\x61\x57\x66\x57\x64\x57\x7c\x59\x1c", /* 5080 */ "\x00\x00\x59\x49\x59\x47\x59\x48\x59\x44\x59\x54\x59\xbe\x59\xbb\x59\xd4\x59\xb9\x59\xae\x59\xd1\x59\xc6\x59\xd0\x59\xcd\x59\xcb\x59\xd3\x59\xca\x59\xaf\x59\xb3\x59\xd2\x59\xc5\x5b\x5f\x5b\x64\x5b\x63\x5b\x97\x5b\x9a\x5b\x98\x5b\x9c\x5b\x99\x5b\x9b\x5c\x1a\x5c\x48\x5c\x45\x5c\x46\x5c\xb7\x5c\xa1\x5c\xb8\x5c\xa9\x5c\xab\x5c\xb1\x5c\xb3\x5e\x18\x5e\x1a\x5e\x16\x5e\x15\x5e\x1b\x5e\x11\x5e\x78\x5e\x9a\x5e\x97\x5e\x9c\x5e\x95\x5e\x96\x5e\xf6\x5f\x26\x5f\x27\x5f\x29\x5f\x80\x5f\x81\x5f\x7f\x5f\x7c\x5f\xdd\x5f\xe0\x5f\xfd\x5f\xf5\x5f\xff\x60\x0f\x60\x14\x60\x2f\x60\x35\x60\x16\x60\x2a\x60\x15\x60\x21\x60\x27\x60\x29\x60\x2b\x60\x1b\x62\x16\x62\x15\x62\x3f\x62\x3e\x62\x40\x62\x7f\x62\xc9\x62\xcc\x62\xc4\x62\xbf\x62\xc2\x62\xb9\x62\xd2\x62\xdb\x62\xab\x62\xd3\x62\xd4\x62\xcb\x62\xc8\x62\xa8\x62\xbd\x62\xbc\x62\xd0\x62\xd9\x62\xc7\x62\xcd\x62\xb5\x62\xda\x62\xb1\x62\xd8\x62\xd6\x62\xd7\x62\xc6\x62\xac\x62\xce\x65\x3e\x65\xa7\x65\xbc\x65\xfa\x66\x14\x66\x13\x66\x0c\x66\x06\x66\x02\x66\x0e\x66\x00\x66\x0f\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x15\x66\x0a\x66\x07\x67\x0d\x67\x0b\x67\x6d\x67\x8b\x67\x95\x67\x71\x67\x9c\x67\x73\x67\x77\x67\x87\x67\x9d\x67\x97\x67\x6f\x67\x70\x67\x7f\x67\x89\x67\x7e\x67\x90\x67\x75\x67\x9a\x67\x93\x67\x7c\x67\x6a\x67\x72\x6b\x23\x6b\x66\x6b\x67\x6b\x7f\x6c\x13\x6c\x1b\x6c\xe3\x6c\xe8\x6c\xf3\x6c\xb1\x6c\xcc\x6c\xe5\x6c\xb3\x6c\xbd\x6c\xbe\x6c\xbc\x6c\xe2\x6c\xab\x6c\xd5\x6c\xd3\x6c\xb8\x6c\xc4\x6c\xb9\x6c\xc1\x6c\xae\x6c\xd7\x6c\xc5\x6c\xf1\x6c\xbf\x6c\xbb\x6c\xe1\x6c\xdb\x6c\xca\x6c\xac\x6c\xef\x6c\xdc", /* 5180 */ "\x00\x00\x6c\xd6\x6c\xe0\x70\x95\x70\x8e\x70\x92\x70\x8a\x70\x99\x72\x2c\x72\x2d\x72\x38\x72\x48\x72\x67\x72\x69\x72\xc0\x72\xce\x72\xd9\x72\xd7\x72\xd0\x73\xa9\x73\xa8\x73\x9f\x73\xab\x73\xa5\x75\x3d\x75\x9d\x75\x99\x75\x9a\x76\x84\x76\xc2\x76\xf2\x76\xf4\x77\xe5\x77\xfd\x79\x3e\x79\x40\x79\x41\x79\xc9\x79\xc8\x7a\x7a\x7a\x79\x7a\xfa\x7c\xfe\x7f\x54\x7f\x8c\x7f\x8b\x80\x05\x80\xba\x80\xa5\x80\xa2\x80\xb1\x80\xa1\x80\xab\x80\xa9\x80\xb4\x80\xaa\x80\xaf\x81\xe5\x81\xfe\x82\x0d\x82\xb3\x82\x9d\x82\x99\x82\xad\x82\xbd\x82\x9f\x82\xb9\x82\xb1\x82\xac\x82\xa5\x82\xaf\x82\xb8\x82\xa3\x82\xb0\x82\xbe\x82\xb7\x86\x4e\x86\x71\x52\x1d\x88\x68\x8e\xcb\x8f\xce\x8f\xd4\x8f\xd1\x90\xb5\x90\xb8\x90\xb1\x90\xb6\x91\xc7\x91\xd1\x95\x77\x95\x80\x96\x1c\x96\x40\x96\x3f\x96\x3b\x96\x44\x96\x42\x96\xb9\x96\xe8\x97\x52\x97\x5e\x4e\x9f\x4e\xad\x4e\xae\x4f\xe1\x4f\xb5\x4f\xaf\x4f\xbf\x4f\xe0\x4f\xd1\x4f\xcf\x4f\xdd\x4f\xc3\x4f\xb6\x4f\xd8\x4f\xdf\x4f\xca\x4f\xd7\x4f\xae\x4f\xd0\x4f\xc4\x4f\xc2\x4f\xda\x4f\xce\x4f\xde\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb7\x51\x57\x51\x92\x51\x91\x51\xa0\x52\x4e\x52\x43\x52\x4a\x52\x4d\x52\x4c\x52\x4b\x52\x47\x52\xc7\x52\xc9\x52\xc3\x52\xc1\x53\x0d\x53\x57\x53\x7b\x53\x9a\x53\xdb\x54\xac\x54\xc0\x54\xa8\x54\xce\x54\xc9\x54\xb8\x54\xa6\x54\xb3\x54\xc7\x54\xc2\x54\xbd\x54\xaa\x54\xc1\x54\xc4\x54\xc8\x54\xaf\x54\xab\x54\xb1\x54\xbb\x54\xa9\x54\xa7\x54\xbf\x56\xff\x57\x82\x57\x8b\x57\xa0\x57\xa3\x57\xa2\x57\xce\x57\xae\x57\x93\x59\x55\x59\x51\x59\x4f\x59\x4e\x59\x50\x59\xdc\x59\xd8\x59\xff\x59\xe3\x59\xe8\x5a\x03", /* 5280 */ "\x00\x00\x59\xe5\x59\xea\x59\xda\x59\xe6\x5a\x01\x59\xfb\x5b\x69\x5b\xa3\x5b\xa6\x5b\xa4\x5b\xa2\x5b\xa5\x5c\x01\x5c\x4e\x5c\x4f\x5c\x4d\x5c\x4b\x5c\xd9\x5c\xd2\x5d\xf7\x5e\x1d\x5e\x25\x5e\x1f\x5e\x7d\x5e\xa0\x5e\xa6\x5e\xfa\x5f\x08\x5f\x2d\x5f\x65\x5f\x88\x5f\x85\x5f\x8a\x5f\x8b\x5f\x87\x5f\x8c\x5f\x89\x60\x12\x60\x1d\x60\x20\x60\x25\x60\x0e\x60\x28\x60\x4d\x60\x70\x60\x68\x60\x62\x60\x46\x60\x43\x60\x6c\x60\x6b\x60\x6a\x60\x64\x62\x41\x62\xdc\x63\x16\x63\x09\x62\xfc\x62\xed\x63\x01\x62\xee\x62\xfd\x63\x07\x62\xf1\x62\xf7\x62\xef\x62\xec\x62\xfe\x62\xf4\x63\x11\x63\x02\x65\x3f\x65\x45\x65\xab\x65\xbd\x65\xe2\x66\x25\x66\x2d\x66\x20\x66\x27\x66\x2f\x66\x1f\x66\x28\x66\x31\x66\x24\x66\xf7\x67\xff\x67\xd3\x67\xf1\x67\xd4\x67\xd0\x67\xec\x67\xb6\x67\xaf\x67\xf5\x67\xe9\x67\xef\x67\xc4\x67\xd1\x67\xb4\x67\xda\x67\xe5\x67\xb8\x67\xcf\x67\xde\x67\xf3\x67\xb0\x67\xd9\x67\xe2\x67\xdd\x67\xd2\x6b\x6a\x6b\x83\x6b\x86\x6b\xb5\x6b\xd2\x6b\xd7\x6c\x1f\x6c\xc9\x6d\x0b\x6d\x32\x6d\x2a\x6d\x41\x6d\x25\x6d\x0c\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x31\x6d\x1e\x6d\x17\x6d\x3b\x6d\x3d\x6d\x3e\x6d\x36\x6d\x1b\x6c\xf5\x6d\x39\x6d\x27\x6d\x38\x6d\x29\x6d\x2e\x6d\x35\x6d\x0e\x6d\x2b\x70\xab\x70\xba\x70\xb3\x70\xac\x70\xaf\x70\xad\x70\xb8\x70\xae\x70\xa4\x72\x30\x72\x72\x72\x6f\x72\x74\x72\xe9\x72\xe0\x72\xe1\x73\xb7\x73\xca\x73\xbb\x73\xb2\x73\xcd\x73\xc0\x73\xb3\x75\x1a\x75\x2d\x75\x4f\x75\x4c\x75\x4e\x75\x4b\x75\xab\x75\xa4\x75\xa5\x75\xa2\x75\xa3\x76\x78\x76\x86\x76\x87\x76\x88\x76\xc8\x76\xc6\x76\xc3\x76\xc5\x77\x01\x76\xf9\x76\xf8\x77\x09", /* 5380 */ "\x00\x00\x77\x0b\x76\xfe\x76\xfc\x77\x07\x77\xdc\x78\x02\x78\x14\x78\x0c\x78\x0d\x79\x46\x79\x49\x79\x48\x79\x47\x79\xb9\x79\xba\x79\xd1\x79\xd2\x79\xcb\x7a\x7f\x7a\x81\x7a\xff\x7a\xfd\x7c\x7d\x7d\x02\x7d\x05\x7d\x00\x7d\x09\x7d\x07\x7d\x04\x7d\x06\x7f\x38\x7f\x8e\x7f\xbf\x80\x04\x80\x10\x80\x0d\x80\x11\x80\x36\x80\xd6\x80\xe5\x80\xda\x80\xc3\x80\xc4\x80\xcc\x80\xe1\x80\xdb\x80\xce\x80\xde\x80\xe4\x80\xdd\x81\xf4\x82\x22\x82\xe7\x83\x03\x83\x05\x82\xe3\x82\xdb\x82\xe6\x83\x04\x82\xe5\x83\x02\x83\x09\x82\xd2\x82\xd7\x82\xf1\x83\x01\x82\xdc\x82\xd4\x82\xd1\x82\xde\x82\xd3\x82\xdf\x82\xef\x83\x06\x86\x50\x86\x79\x86\x7b\x86\x7a\x88\x4d\x88\x6b\x89\x81\x89\xd4\x8a\x08\x8a\x02\x8a\x03\x8c\x9e\x8c\xa0\x8d\x74\x8d\x73\x8d\xb4\x8e\xcd\x8e\xcc\x8f\xf0\x8f\xe6\x8f\xe2\x8f\xea\x8f\xe5\x8f\xed\x8f\xeb\x8f\xe4\x8f\xe8\x90\xca\x90\xce\x90\xc1\x90\xc3\x91\x4b\x91\x4a\x91\xcd\x95\x82\x96\x50\x96\x4b\x96\x4c\x96\x4d\x97\x62\x97\x69\x97\xcb\x97\xed\x97\xf3\x98\x01\x98\xa8\x98\xdb\x98\xdf\x99\x96\x99\x99\x4e\x58\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb3\x50\x0c\x50\x0d\x50\x23\x4f\xef\x50\x26\x50\x25\x4f\xf8\x50\x29\x50\x16\x50\x06\x50\x3c\x50\x1f\x50\x1a\x50\x12\x50\x11\x4f\xfa\x50\x00\x50\x14\x50\x28\x4f\xf1\x50\x21\x50\x0b\x50\x19\x50\x18\x4f\xf3\x4f\xee\x50\x2d\x50\x2a\x4f\xfe\x50\x2b\x50\x09\x51\x7c\x51\xa4\x51\xa5\x51\xa2\x51\xcd\x51\xcc\x51\xc6\x51\xcb\x52\x56\x52\x5c\x52\x54\x52\x5b\x52\x5d\x53\x2a\x53\x7f\x53\x9f\x53\x9d\x53\xdf\x54\xe8\x55\x10\x55\x01\x55\x37\x54\xfc\x54\xe5\x54\xf2\x55\x06\x54\xfa\x55\x14\x54\xe9\x54\xed\x54\xe1", /* 5480 */ "\x00\x00\x55\x09\x54\xee\x54\xea\x54\xe6\x55\x27\x55\x07\x54\xfd\x55\x0f\x57\x03\x57\x04\x57\xc2\x57\xd4\x57\xcb\x57\xc3\x58\x09\x59\x0f\x59\x57\x59\x58\x59\x5a\x5a\x11\x5a\x18\x5a\x1c\x5a\x1f\x5a\x1b\x5a\x13\x59\xec\x5a\x20\x5a\x23\x5a\x29\x5a\x25\x5a\x0c\x5a\x09\x5b\x6b\x5c\x58\x5b\xb0\x5b\xb3\x5b\xb6\x5b\xb4\x5b\xae\x5b\xb5\x5b\xb9\x5b\xb8\x5c\x04\x5c\x51\x5c\x55\x5c\x50\x5c\xed\x5c\xfd\x5c\xfb\x5c\xea\x5c\xe8\x5c\xf0\x5c\xf6\x5d\x01\x5c\xf4\x5d\xee\x5e\x2d\x5e\x2b\x5e\xab\x5e\xad\x5e\xa7\x5f\x31\x5f\x92\x5f\x91\x5f\x90\x60\x59\x60\x63\x60\x65\x60\x50\x60\x55\x60\x6d\x60\x69\x60\x6f\x60\x84\x60\x9f\x60\x9a\x60\x8d\x60\x94\x60\x8c\x60\x85\x60\x96\x62\x47\x62\xf3\x63\x08\x62\xff\x63\x4e\x63\x3e\x63\x2f\x63\x55\x63\x42\x63\x46\x63\x4f\x63\x49\x63\x3a\x63\x50\x63\x3d\x63\x2a\x63\x2b\x63\x28\x63\x4d\x63\x4c\x65\x48\x65\x49\x65\x99\x65\xc1\x65\xc5\x66\x42\x66\x49\x66\x4f\x66\x43\x66\x52\x66\x4c\x66\x45\x66\x41\x66\xf8\x67\x14\x67\x15\x67\x17\x68\x21\x68\x38\x68\x48\x68\x46\x68\x53\x68\x39\x68\x42\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x54\x68\x29\x68\xb3\x68\x17\x68\x4c\x68\x51\x68\x3d\x67\xf4\x68\x50\x68\x40\x68\x3c\x68\x43\x68\x2a\x68\x45\x68\x13\x68\x18\x68\x41\x6b\x8a\x6b\x89\x6b\xb7\x6c\x23\x6c\x27\x6c\x28\x6c\x26\x6c\x24\x6c\xf0\x6d\x6a\x6d\x95\x6d\x88\x6d\x87\x6d\x66\x6d\x78\x6d\x77\x6d\x59\x6d\x93\x6d\x6c\x6d\x89\x6d\x6e\x6d\x5a\x6d\x74\x6d\x69\x6d\x8c\x6d\x8a\x6d\x79\x6d\x85\x6d\x65\x6d\x94\x70\xca\x70\xd8\x70\xe4\x70\xd9\x70\xc8\x70\xcf\x72\x39\x72\x79\x72\xfc\x72\xf9\x72\xfd\x72\xf8\x72\xf7\x73\x86\x73\xed\x74\x09", /* 5580 */ "\x00\x00\x73\xee\x73\xe0\x73\xea\x73\xde\x75\x54\x75\x5d\x75\x5c\x75\x5a\x75\x59\x75\xbe\x75\xc5\x75\xc7\x75\xb2\x75\xb3\x75\xbd\x75\xbc\x75\xb9\x75\xc2\x75\xb8\x76\x8b\x76\xb0\x76\xca\x76\xcd\x76\xce\x77\x29\x77\x1f\x77\x20\x77\x28\x77\xe9\x78\x30\x78\x27\x78\x38\x78\x1d\x78\x34\x78\x37\x78\x25\x78\x2d\x78\x20\x78\x1f\x78\x32\x79\x55\x79\x50\x79\x60\x79\x5f\x79\x56\x79\x5e\x79\x5d\x79\x57\x79\x5a\x79\xe4\x79\xe3\x79\xe7\x79\xdf\x79\xe6\x79\xe9\x79\xd8\x7a\x84\x7a\x88\x7a\xd9\x7b\x06\x7b\x11\x7c\x89\x7d\x21\x7d\x17\x7d\x0b\x7d\x0a\x7d\x20\x7d\x22\x7d\x14\x7d\x10\x7d\x15\x7d\x1a\x7d\x1c\x7d\x0d\x7d\x19\x7d\x1b\x7f\x3a\x7f\x5f\x7f\x94\x7f\xc5\x7f\xc1\x80\x06\x80\x18\x80\x15\x80\x19\x80\x17\x80\x3d\x80\x3f\x80\xf1\x81\x02\x80\xf0\x81\x05\x80\xed\x80\xf4\x81\x06\x80\xf8\x80\xf3\x81\x08\x80\xfd\x81\x0a\x80\xfc\x80\xef\x81\xed\x81\xec\x82\x00\x82\x10\x82\x2a\x82\x2b\x82\x28\x82\x2c\x82\xbb\x83\x2b\x83\x52\x83\x54\x83\x4a\x83\x38\x83\x50\x83\x49\x83\x35\x83\x34\x83\x4f\x83\x32\x83\x39\x83\x36\x83\x17\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x40\x83\x31\x83\x28\x83\x43\x86\x54\x86\x8a\x86\xaa\x86\x93\x86\xa4\x86\xa9\x86\x8c\x86\xa3\x86\x9c\x88\x70\x88\x77\x88\x81\x88\x82\x88\x7d\x88\x79\x8a\x18\x8a\x10\x8a\x0e\x8a\x0c\x8a\x15\x8a\x0a\x8a\x17\x8a\x13\x8a\x16\x8a\x0f\x8a\x11\x8c\x48\x8c\x7a\x8c\x79\x8c\xa1\x8c\xa2\x8d\x77\x8e\xac\x8e\xd2\x8e\xd4\x8e\xcf\x8f\xb1\x90\x01\x90\x06\x8f\xf7\x90\x00\x8f\xfa\x8f\xf4\x90\x03\x8f\xfd\x90\x05\x8f\xf8\x90\x95\x90\xe1\x90\xdd\x90\xe2\x91\x52\x91\x4d\x91\x4c\x91\xd8\x91\xdd\x91\xd7\x91\xdc\x91\xd9", /* 5680 */ "\x00\x00\x95\x83\x96\x62\x96\x63\x96\x61\x96\x5b\x96\x5d\x96\x64\x96\x58\x96\x5e\x96\xbb\x98\xe2\x99\xac\x9a\xa8\x9a\xd8\x9b\x25\x9b\x32\x9b\x3c\x4e\x7e\x50\x7a\x50\x7d\x50\x5c\x50\x47\x50\x43\x50\x4c\x50\x5a\x50\x49\x50\x65\x50\x76\x50\x4e\x50\x55\x50\x75\x50\x74\x50\x77\x50\x4f\x50\x0f\x50\x6f\x50\x6d\x51\x5c\x51\x95\x51\xf0\x52\x6a\x52\x6f\x52\xd2\x52\xd9\x52\xd8\x52\xd5\x53\x10\x53\x0f\x53\x19\x53\x3f\x53\x40\x53\x3e\x53\xc3\x66\xfc\x55\x46\x55\x6a\x55\x66\x55\x44\x55\x5e\x55\x61\x55\x43\x55\x4a\x55\x31\x55\x56\x55\x4f\x55\x55\x55\x2f\x55\x64\x55\x38\x55\x2e\x55\x5c\x55\x2c\x55\x63\x55\x33\x55\x41\x55\x57\x57\x08\x57\x0b\x57\x09\x57\xdf\x58\x05\x58\x0a\x58\x06\x57\xe0\x57\xe4\x57\xfa\x58\x02\x58\x35\x57\xf7\x57\xf9\x59\x20\x59\x62\x5a\x36\x5a\x41\x5a\x49\x5a\x66\x5a\x6a\x5a\x40\x5a\x3c\x5a\x62\x5a\x5a\x5a\x46\x5a\x4a\x5b\x70\x5b\xc7\x5b\xc5\x5b\xc4\x5b\xc2\x5b\xbf\x5b\xc6\x5c\x09\x5c\x08\x5c\x07\x5c\x60\x5c\x5c\x5c\x5d\x5d\x07\x5d\x06\x5d\x0e\x5d\x1b\x5d\x16\x5d\x22\x5d\x11\x5d\x29\x5d\x14\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x19\x5d\x24\x5d\x27\x5d\x17\x5d\xe2\x5e\x38\x5e\x36\x5e\x33\x5e\x37\x5e\xb7\x5e\xb8\x5e\xb6\x5e\xb5\x5e\xbe\x5f\x35\x5f\x37\x5f\x57\x5f\x6c\x5f\x69\x5f\x6b\x5f\x97\x5f\x99\x5f\x9e\x5f\x98\x5f\xa1\x5f\xa0\x5f\x9c\x60\x7f\x60\xa3\x60\x89\x60\xa0\x60\xa8\x60\xcb\x60\xb4\x60\xe6\x60\xbd\x60\xc5\x60\xbb\x60\xb5\x60\xdc\x60\xbc\x60\xd8\x60\xd5\x60\xc6\x60\xdf\x60\xb8\x60\xda\x60\xc7\x62\x1a\x62\x1b\x62\x48\x63\xa0\x63\xa7\x63\x72\x63\x96\x63\xa2\x63\xa5\x63\x77\x63\x67\x63\x98\x63\xaa\x63\x71\x63\xa9", /* 5780 */ "\x00\x00\x63\x89\x63\x83\x63\x9b\x63\x6b\x63\xa8\x63\x84\x63\x88\x63\x99\x63\xa1\x63\xac\x63\x92\x63\x8f\x63\x80\x63\x7b\x63\x69\x63\x68\x63\x7a\x65\x5d\x65\x56\x65\x51\x65\x59\x65\x57\x55\x5f\x65\x4f\x65\x58\x65\x55\x65\x54\x65\x9c\x65\x9b\x65\xac\x65\xcf\x65\xcb\x65\xcc\x65\xce\x66\x5d\x66\x5a\x66\x64\x66\x68\x66\x66\x66\x5e\x66\xf9\x52\xd7\x67\x1b\x68\x81\x68\xaf\x68\xa2\x68\x93\x68\xb5\x68\x7f\x68\x76\x68\xb1\x68\xa7\x68\x97\x68\xb0\x68\x83\x68\xc4\x68\xad\x68\x86\x68\x85\x68\x94\x68\x9d\x68\xa8\x68\x9f\x68\xa1\x68\x82\x6b\x32\x6b\xba\x6b\xeb\x6b\xec\x6c\x2b\x6d\x8e\x6d\xbc\x6d\xf3\x6d\xd9\x6d\xb2\x6d\xe1\x6d\xcc\x6d\xe4\x6d\xfb\x6d\xfa\x6e\x05\x6d\xc7\x6d\xcb\x6d\xaf\x6d\xd1\x6d\xae\x6d\xde\x6d\xf9\x6d\xb8\x6d\xf7\x6d\xf5\x6d\xc5\x6d\xd2\x6e\x1a\x6d\xb5\x6d\xda\x6d\xeb\x6d\xd8\x6d\xea\x6d\xf1\x6d\xee\x6d\xe8\x6d\xc6\x6d\xc4\x6d\xaa\x6d\xec\x6d\xbf\x6d\xe6\x70\xf9\x71\x09\x71\x0a\x70\xfd\x70\xef\x72\x3d\x72\x7d\x72\x81\x73\x1c\x73\x1b\x73\x16\x73\x13\x73\x19\x73\x87\x74\x05\x74\x0a\x74\x03\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x73\xfe\x74\x0d\x74\xe0\x74\xf6\x74\xf7\x75\x1c\x75\x22\x75\x65\x75\x66\x75\x62\x75\x70\x75\x8f\x75\xd4\x75\xd5\x75\xb5\x75\xca\x75\xcd\x76\x8e\x76\xd4\x76\xd2\x76\xdb\x77\x37\x77\x3e\x77\x3c\x77\x36\x77\x38\x77\x3a\x78\x6b\x78\x43\x78\x4e\x79\x65\x79\x68\x79\x6d\x79\xfb\x7a\x92\x7a\x95\x7b\x20\x7b\x28\x7b\x1b\x7b\x2c\x7b\x26\x7b\x19\x7b\x1e\x7b\x2e\x7c\x92\x7c\x97\x7c\x95\x7d\x46\x7d\x43\x7d\x71\x7d\x2e\x7d\x39\x7d\x3c\x7d\x40\x7d\x30\x7d\x33\x7d\x44\x7d\x2f\x7d\x42\x7d\x32\x7d\x31\x7f\x3d", /* 5880 */ "\x00\x00\x7f\x9e\x7f\x9a\x7f\xcc\x7f\xce\x7f\xd2\x80\x1c\x80\x4a\x80\x46\x81\x2f\x81\x16\x81\x23\x81\x2b\x81\x29\x81\x30\x81\x24\x82\x02\x82\x35\x82\x37\x82\x36\x82\x39\x83\x8e\x83\x9e\x83\x98\x83\x78\x83\xa2\x83\x96\x83\xbd\x83\xab\x83\x92\x83\x8a\x83\x93\x83\x89\x83\xa0\x83\x77\x83\x7b\x83\x7c\x83\x86\x83\xa7\x86\x55\x5f\x6a\x86\xc7\x86\xc0\x86\xb6\x86\xc4\x86\xb5\x86\xc6\x86\xcb\x86\xb1\x86\xaf\x86\xc9\x88\x53\x88\x9e\x88\x88\x88\xab\x88\x92\x88\x96\x88\x8d\x88\x8b\x89\x93\x89\x8f\x8a\x2a\x8a\x1d\x8a\x23\x8a\x25\x8a\x31\x8a\x2d\x8a\x1f\x8a\x1b\x8a\x22\x8c\x49\x8c\x5a\x8c\xa9\x8c\xac\x8c\xab\x8c\xa8\x8c\xaa\x8c\xa7\x8d\x67\x8d\x66\x8d\xbe\x8d\xba\x8e\xdb\x8e\xdf\x90\x19\x90\x0d\x90\x1a\x90\x17\x90\x23\x90\x1f\x90\x1d\x90\x10\x90\x15\x90\x1e\x90\x20\x90\x0f\x90\x22\x90\x16\x90\x1b\x90\x14\x90\xe8\x90\xed\x90\xfd\x91\x57\x91\xce\x91\xf5\x91\xe6\x91\xe3\x91\xe7\x91\xed\x91\xe9\x95\x89\x96\x6a\x96\x75\x96\x73\x96\x78\x96\x70\x96\x74\x96\x76\x96\x77\x96\x6c\x96\xc0\x96\xea\x96\xe9\x7a\xe0\x7a\xdf\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x02\x98\x03\x9b\x5a\x9c\xe5\x9e\x75\x9e\x7f\x9e\xa5\x9e\xbb\x50\xa2\x50\x8d\x50\x85\x50\x99\x50\x91\x50\x80\x50\x96\x50\x98\x50\x9a\x67\x00\x51\xf1\x52\x72\x52\x74\x52\x75\x52\x69\x52\xde\x52\xdd\x52\xdb\x53\x5a\x53\xa5\x55\x7b\x55\x80\x55\xa7\x55\x7c\x55\x8a\x55\x9d\x55\x98\x55\x82\x55\x9c\x55\xaa\x55\x94\x55\x87\x55\x8b\x55\x83\x55\xb3\x55\xae\x55\x9f\x55\x3e\x55\xb2\x55\x9a\x55\xbb\x55\xac\x55\xb1\x55\x7e\x55\x89\x55\xab\x55\x99\x57\x0d\x58\x2f\x58\x2a\x58\x34\x58\x24\x58\x30\x58\x31\x58\x21", /* 5980 */ "\x00\x00\x58\x1d\x58\x20\x58\xf9\x58\xfa\x59\x60\x5a\x77\x5a\x9a\x5a\x7f\x5a\x92\x5a\x9b\x5a\xa7\x5b\x73\x5b\x71\x5b\xd2\x5b\xcc\x5b\xd3\x5b\xd0\x5c\x0a\x5c\x0b\x5c\x31\x5d\x4c\x5d\x50\x5d\x34\x5d\x47\x5d\xfd\x5e\x45\x5e\x3d\x5e\x40\x5e\x43\x5e\x7e\x5e\xca\x5e\xc1\x5e\xc2\x5e\xc4\x5f\x3c\x5f\x6d\x5f\xa9\x5f\xaa\x5f\xa8\x60\xd1\x60\xe1\x60\xb2\x60\xb6\x60\xe0\x61\x1c\x61\x23\x60\xfa\x61\x15\x60\xf0\x60\xfb\x60\xf4\x61\x68\x60\xf1\x61\x0e\x60\xf6\x61\x09\x61\x00\x61\x12\x62\x1f\x62\x49\x63\xa3\x63\x8c\x63\xcf\x63\xc0\x63\xe9\x63\xc9\x63\xc6\x63\xcd\x63\xd2\x63\xe3\x63\xd0\x63\xe1\x63\xd6\x63\xed\x63\xee\x63\x76\x63\xf4\x63\xea\x63\xdb\x64\x52\x63\xda\x63\xf9\x65\x5e\x65\x66\x65\x62\x65\x63\x65\x91\x65\x90\x65\xaf\x66\x6e\x66\x70\x66\x74\x66\x76\x66\x6f\x66\x91\x66\x7a\x66\x7e\x66\x77\x66\xfe\x66\xff\x67\x1f\x67\x1d\x68\xfa\x68\xd5\x68\xe0\x68\xd8\x68\xd7\x69\x05\x68\xdf\x68\xf5\x68\xee\x68\xe7\x68\xf9\x68\xd2\x68\xf2\x68\xe3\x68\xcb\x68\xcd\x69\x0d\x69\x12\x69\x0e\x68\xc9\x68\xda\x69\x6e\x68\xfb\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x3e\x6b\x3a\x6b\x3d\x6b\x98\x6b\x96\x6b\xbc\x6b\xef\x6c\x2e\x6c\x2f\x6c\x2c\x6e\x2f\x6e\x38\x6e\x54\x6e\x21\x6e\x32\x6e\x67\x6e\x4a\x6e\x20\x6e\x25\x6e\x23\x6e\x1b\x6e\x5b\x6e\x58\x6e\x24\x6e\x56\x6e\x6e\x6e\x2d\x6e\x26\x6e\x6f\x6e\x34\x6e\x4d\x6e\x3a\x6e\x2c\x6e\x43\x6e\x1d\x6e\x3e\x6e\xcb\x6e\x89\x6e\x19\x6e\x4e\x6e\x63\x6e\x44\x6e\x72\x6e\x69\x6e\x5f\x71\x19\x71\x1a\x71\x26\x71\x30\x71\x21\x71\x36\x71\x6e\x71\x1c\x72\x4c\x72\x84\x72\x80\x73\x36\x73\x25\x73\x34\x73\x29\x74\x3a\x74\x2a\x74\x33", /* 5a80 */ "\x00\x00\x74\x22\x74\x25\x74\x35\x74\x36\x74\x34\x74\x2f\x74\x1b\x74\x26\x74\x28\x75\x25\x75\x26\x75\x6b\x75\x6a\x75\xe2\x75\xdb\x75\xe3\x75\xd9\x75\xd8\x75\xde\x75\xe0\x76\x7b\x76\x7c\x76\x96\x76\x93\x76\xb4\x76\xdc\x77\x4f\x77\xed\x78\x5d\x78\x6c\x78\x6f\x7a\x0d\x7a\x08\x7a\x0b\x7a\x05\x7a\x00\x7a\x98\x7a\x97\x7a\x96\x7a\xe5\x7a\xe3\x7b\x49\x7b\x56\x7b\x46\x7b\x50\x7b\x52\x7b\x54\x7b\x4d\x7b\x4b\x7b\x4f\x7b\x51\x7c\x9f\x7c\xa5\x7d\x5e\x7d\x50\x7d\x68\x7d\x55\x7d\x2b\x7d\x6e\x7d\x72\x7d\x61\x7d\x66\x7d\x62\x7d\x70\x7d\x73\x55\x84\x7f\xd4\x7f\xd5\x80\x0b\x80\x52\x80\x85\x81\x55\x81\x54\x81\x4b\x81\x51\x81\x4e\x81\x39\x81\x46\x81\x3e\x81\x4c\x81\x53\x81\x74\x82\x12\x82\x1c\x83\xe9\x84\x03\x83\xf8\x84\x0d\x83\xe0\x83\xc5\x84\x0b\x83\xc1\x83\xef\x83\xf1\x83\xf4\x84\x57\x84\x0a\x83\xf0\x84\x0c\x83\xcc\x83\xfd\x83\xf2\x83\xca\x84\x38\x84\x0e\x84\x04\x83\xdc\x84\x07\x83\xd4\x83\xdf\x86\x5b\x86\xdf\x86\xd9\x86\xed\x86\xd4\x86\xdb\x86\xe4\x86\xd0\x86\xde\x88\x57\x88\xc1\x88\xc2\x88\xb1\x89\x83\x89\x96\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x3b\x8a\x60\x8a\x55\x8a\x5e\x8a\x3c\x8a\x41\x8a\x54\x8a\x5b\x8a\x50\x8a\x46\x8a\x34\x8a\x3a\x8a\x36\x8a\x56\x8c\x61\x8c\x82\x8c\xaf\x8c\xbc\x8c\xb3\x8c\xbd\x8c\xc1\x8c\xbb\x8c\xc0\x8c\xb4\x8c\xb7\x8c\xb6\x8c\xbf\x8c\xb8\x8d\x8a\x8d\x85\x8d\x81\x8d\xce\x8d\xdd\x8d\xcb\x8d\xda\x8d\xd1\x8d\xcc\x8d\xdb\x8d\xc6\x8e\xfb\x8e\xf8\x8e\xfc\x8f\x9c\x90\x2e\x90\x35\x90\x31\x90\x38\x90\x32\x90\x36\x91\x02\x90\xf5\x91\x09\x90\xfe\x91\x63\x91\x65\x91\xcf\x92\x14\x92\x15\x92\x23\x92\x09\x92\x1e\x92\x0d\x92\x10", /* 5b80 */ "\x00\x00\x92\x07\x92\x11\x95\x94\x95\x8f\x95\x8b\x95\x91\x95\x93\x95\x92\x95\x8e\x96\x8a\x96\x8e\x96\x8b\x96\x7d\x96\x85\x96\x86\x96\x8d\x96\x72\x96\x84\x96\xc1\x96\xc5\x96\xc4\x96\xc6\x96\xc7\x96\xef\x96\xf2\x97\xcc\x98\x05\x98\x06\x98\x08\x98\xe7\x98\xea\x98\xef\x98\xe9\x98\xf2\x98\xed\x99\xae\x99\xad\x9e\xc3\x9e\xcd\x9e\xd1\x4e\x82\x50\xad\x50\xb5\x50\xb2\x50\xb3\x50\xc5\x50\xbe\x50\xac\x50\xb7\x50\xbb\x50\xaf\x50\xc7\x52\x7f\x52\x77\x52\x7d\x52\xdf\x52\xe6\x52\xe4\x52\xe2\x52\xe3\x53\x2f\x55\xdf\x55\xe8\x55\xd3\x55\xe6\x55\xce\x55\xdc\x55\xc7\x55\xd1\x55\xe3\x55\xe4\x55\xef\x55\xda\x55\xe1\x55\xc5\x55\xc6\x55\xe5\x55\xc9\x57\x12\x57\x13\x58\x5e\x58\x51\x58\x58\x58\x57\x58\x5a\x58\x54\x58\x6b\x58\x4c\x58\x6d\x58\x4a\x58\x62\x58\x52\x58\x4b\x59\x67\x5a\xc1\x5a\xc9\x5a\xcc\x5a\xbe\x5a\xbd\x5a\xbc\x5a\xb3\x5a\xc2\x5a\xb2\x5d\x69\x5d\x6f\x5e\x4c\x5e\x79\x5e\xc9\x5e\xc8\x5f\x12\x5f\x59\x5f\xac\x5f\xae\x61\x1a\x61\x0f\x61\x48\x61\x1f\x60\xf3\x61\x1b\x60\xf9\x61\x01\x61\x08\x61\x4e\x61\x4c\x61\x44\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x4d\x61\x3e\x61\x34\x61\x27\x61\x0d\x61\x06\x61\x37\x62\x21\x62\x22\x64\x13\x64\x3e\x64\x1e\x64\x2a\x64\x2d\x64\x3d\x64\x2c\x64\x0f\x64\x1c\x64\x14\x64\x0d\x64\x36\x64\x16\x64\x17\x64\x06\x65\x6c\x65\x9f\x65\xb0\x66\x97\x66\x89\x66\x87\x66\x88\x66\x96\x66\x84\x66\x98\x66\x8d\x67\x03\x69\x94\x69\x6d\x69\x5a\x69\x77\x69\x60\x69\x54\x69\x75\x69\x30\x69\x82\x69\x4a\x69\x68\x69\x6b\x69\x5e\x69\x53\x69\x79\x69\x86\x69\x5d\x69\x63\x69\x5b\x6b\x47\x6b\x72\x6b\xc0\x6b\xbf\x6b\xd3\x6b\xfd\x6e\xa2\x6e\xaf", /* 5c80 */ "\x00\x00\x6e\xd3\x6e\xb6\x6e\xc2\x6e\x90\x6e\x9d\x6e\xc7\x6e\xc5\x6e\xa5\x6e\x98\x6e\xbc\x6e\xba\x6e\xab\x6e\xd1\x6e\x96\x6e\x9c\x6e\xc4\x6e\xd4\x6e\xaa\x6e\xa7\x6e\xb4\x71\x4e\x71\x59\x71\x69\x71\x64\x71\x49\x71\x67\x71\x5c\x71\x6c\x71\x66\x71\x4c\x71\x65\x71\x5e\x71\x46\x71\x68\x71\x56\x72\x3a\x72\x52\x73\x37\x73\x45\x73\x3f\x73\x3e\x74\x6f\x74\x5a\x74\x55\x74\x5f\x74\x5e\x74\x41\x74\x3f\x74\x59\x74\x5b\x74\x5c\x75\x76\x75\x78\x76\x00\x75\xf0\x76\x01\x75\xf2\x75\xf1\x75\xfa\x75\xff\x75\xf4\x75\xf3\x76\xde\x76\xdf\x77\x5b\x77\x6b\x77\x66\x77\x5e\x77\x63\x77\x79\x77\x6a\x77\x6c\x77\x5c\x77\x65\x77\x68\x77\x62\x77\xee\x78\x8e\x78\xb0\x78\x97\x78\x98\x78\x8c\x78\x89\x78\x7c\x78\x91\x78\x93\x78\x7f\x79\x7a\x79\x7f\x79\x81\x84\x2c\x79\xbd\x7a\x1c\x7a\x1a\x7a\x20\x7a\x14\x7a\x1f\x7a\x1e\x7a\x9f\x7a\xa0\x7b\x77\x7b\xc0\x7b\x60\x7b\x6e\x7b\x67\x7c\xb1\x7c\xb3\x7c\xb5\x7d\x93\x7d\x79\x7d\x91\x7d\x81\x7d\x8f\x7d\x5b\x7f\x6e\x7f\x69\x7f\x6a\x7f\x72\x7f\xa9\x7f\xa8\x7f\xa4\x80\x56\x80\x58\x80\x86\x80\x84\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x71\x81\x70\x81\x78\x81\x65\x81\x6e\x81\x73\x81\x6b\x81\x79\x81\x7a\x81\x66\x82\x05\x82\x47\x84\x82\x84\x77\x84\x3d\x84\x31\x84\x75\x84\x66\x84\x6b\x84\x49\x84\x6c\x84\x5b\x84\x3c\x84\x35\x84\x61\x84\x63\x84\x69\x84\x6d\x84\x46\x86\x5e\x86\x5c\x86\x5f\x86\xf9\x87\x13\x87\x08\x87\x07\x87\x00\x86\xfe\x86\xfb\x87\x02\x87\x03\x87\x06\x87\x0a\x88\x59\x88\xdf\x88\xd4\x88\xd9\x88\xdc\x88\xd8\x88\xdd\x88\xe1\x88\xca\x88\xd5\x88\xd2\x89\x9c\x89\xe3\x8a\x6b\x8a\x72\x8a\x73\x8a\x66\x8a\x69\x8a\x70\x8a\x87", /* 5d80 */ "\x00\x00\x8a\x7c\x8a\x63\x8a\xa0\x8a\x71\x8a\x85\x8a\x6d\x8a\x62\x8a\x6e\x8a\x6c\x8a\x79\x8a\x7b\x8a\x3e\x8a\x68\x8c\x62\x8c\x8a\x8c\x89\x8c\xca\x8c\xc7\x8c\xc8\x8c\xc4\x8c\xb2\x8c\xc3\x8c\xc2\x8c\xc5\x8d\xe1\x8d\xdf\x8d\xe8\x8d\xef\x8d\xf3\x8d\xfa\x8d\xea\x8d\xe4\x8d\xe6\x8e\xb2\x8f\x03\x8f\x09\x8e\xfe\x8f\x0a\x8f\x9f\x8f\xb2\x90\x4b\x90\x4a\x90\x53\x90\x42\x90\x54\x90\x3c\x90\x55\x90\x50\x90\x47\x90\x4f\x90\x4e\x90\x4d\x90\x51\x90\x3e\x90\x41\x91\x12\x91\x17\x91\x6c\x91\x6a\x91\x69\x91\xc9\x92\x37\x92\x57\x92\x38\x92\x3d\x92\x40\x92\x3e\x92\x5b\x92\x4b\x92\x64\x92\x51\x92\x34\x92\x49\x92\x4d\x92\x45\x92\x39\x92\x3f\x92\x5a\x95\x98\x96\x98\x96\x94\x96\x95\x96\xcd\x96\xcb\x96\xc9\x96\xca\x96\xf7\x96\xfb\x96\xf9\x96\xf6\x97\x56\x97\x74\x97\x76\x98\x10\x98\x11\x98\x13\x98\x0a\x98\x12\x98\x0c\x98\xfc\x98\xf4\x98\xfd\x98\xfe\x99\xb3\x99\xb1\x99\xb4\x9a\xe1\x9c\xe9\x9e\x82\x9f\x0e\x9f\x13\x9f\x20\x50\xe7\x50\xee\x50\xe5\x50\xd6\x50\xed\x50\xda\x50\xd5\x50\xcf\x50\xd1\x50\xf1\x50\xce\x50\xe9\x51\x62\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf3\x52\x83\x52\x82\x53\x31\x53\xad\x55\xfe\x56\x00\x56\x1b\x56\x17\x55\xfd\x56\x14\x56\x06\x56\x09\x56\x0d\x56\x0e\x55\xf7\x56\x16\x56\x1f\x56\x08\x56\x10\x55\xf6\x57\x18\x57\x16\x58\x75\x58\x7e\x58\x83\x58\x93\x58\x8a\x58\x79\x58\x85\x58\x7d\x58\xfd\x59\x25\x59\x22\x59\x24\x59\x6a\x59\x69\x5a\xe1\x5a\xe6\x5a\xe9\x5a\xd7\x5a\xd6\x5a\xd8\x5a\xe3\x5b\x75\x5b\xde\x5b\xe7\x5b\xe1\x5b\xe5\x5b\xe6\x5b\xe8\x5b\xe2\x5b\xe4\x5b\xdf\x5c\x0d\x5c\x62\x5d\x84\x5d\x87\x5e\x5b\x5e\x63\x5e\x55\x5e\x57\x5e\x54", /* 5e80 */ "\x00\x00\x5e\xd3\x5e\xd6\x5f\x0a\x5f\x46\x5f\x70\x5f\xb9\x61\x47\x61\x3f\x61\x4b\x61\x77\x61\x62\x61\x63\x61\x5f\x61\x5a\x61\x58\x61\x75\x62\x2a\x64\x87\x64\x58\x64\x54\x64\xa4\x64\x78\x64\x5f\x64\x7a\x64\x51\x64\x67\x64\x34\x64\x6d\x64\x7b\x65\x72\x65\xa1\x65\xd7\x65\xd6\x66\xa2\x66\xa8\x66\x9d\x69\x9c\x69\xa8\x69\x95\x69\xc1\x69\xae\x69\xd3\x69\xcb\x69\x9b\x69\xb7\x69\xbb\x69\xab\x69\xb4\x69\xd0\x69\xcd\x69\xad\x69\xcc\x69\xa6\x69\xc3\x69\xa3\x6b\x49\x6b\x4c\x6c\x33\x6f\x33\x6f\x14\x6e\xfe\x6f\x13\x6e\xf4\x6f\x29\x6f\x3e\x6f\x20\x6f\x2c\x6f\x0f\x6f\x02\x6f\x22\x6e\xff\x6e\xef\x6f\x06\x6f\x31\x6f\x38\x6f\x32\x6f\x23\x6f\x15\x6f\x2b\x6f\x2f\x6f\x88\x6f\x2a\x6e\xec\x6f\x01\x6e\xf2\x6e\xcc\x6e\xf7\x71\x94\x71\x99\x71\x7d\x71\x8a\x71\x84\x71\x92\x72\x3e\x72\x92\x72\x96\x73\x44\x73\x50\x74\x64\x74\x63\x74\x6a\x74\x70\x74\x6d\x75\x04\x75\x91\x76\x27\x76\x0d\x76\x0b\x76\x09\x76\x13\x76\xe1\x76\xe3\x77\x84\x77\x7d\x77\x7f\x77\x61\x78\xc1\x78\x9f\x78\xa7\x78\xb3\x78\xa9\x78\xa3\x79\x8e\x79\x8f\x79\x8d\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x2e\x7a\x31\x7a\xaa\x7a\xa9\x7a\xed\x7a\xef\x7b\xa1\x7b\x95\x7b\x8b\x7b\x75\x7b\x97\x7b\x9d\x7b\x94\x7b\x8f\x7b\xb8\x7b\x87\x7b\x84\x7c\xb9\x7c\xbd\x7c\xbe\x7d\xbb\x7d\xb0\x7d\x9c\x7d\xbd\x7d\xbe\x7d\xa0\x7d\xca\x7d\xb4\x7d\xb2\x7d\xb1\x7d\xba\x7d\xa2\x7d\xbf\x7d\xb5\x7d\xb8\x7d\xad\x7d\xd2\x7d\xc7\x7d\xac\x7f\x70\x7f\xe0\x7f\xe1\x7f\xdf\x80\x5e\x80\x5a\x80\x87\x81\x50\x81\x80\x81\x8f\x81\x88\x81\x8a\x81\x7f\x81\x82\x81\xe7\x81\xfa\x82\x07\x82\x14\x82\x1e\x82\x4b\x84\xc9\x84\xbf\x84\xc6\x84\xc4", /* 5f80 */ "\x00\x00\x84\x99\x84\x9e\x84\xb2\x84\x9c\x84\xcb\x84\xb8\x84\xc0\x84\xd3\x84\x90\x84\xbc\x84\xd1\x84\xca\x87\x3f\x87\x1c\x87\x3b\x87\x22\x87\x25\x87\x34\x87\x18\x87\x55\x87\x37\x87\x29\x88\xf3\x89\x02\x88\xf4\x88\xf9\x88\xf8\x88\xfd\x88\xe8\x89\x1a\x88\xef\x8a\xa6\x8a\x8c\x8a\x9e\x8a\xa3\x8a\x8d\x8a\xa1\x8a\x93\x8a\xa4\x8a\xaa\x8a\xa5\x8a\xa8\x8a\x98\x8a\x91\x8a\x9a\x8a\xa7\x8c\x6a\x8c\x8d\x8c\x8c\x8c\xd3\x8c\xd1\x8c\xd2\x8d\x6b\x8d\x99\x8d\x95\x8d\xfc\x8f\x14\x8f\x12\x8f\x15\x8f\x13\x8f\xa3\x90\x60\x90\x58\x90\x5c\x90\x63\x90\x59\x90\x5e\x90\x62\x90\x5d\x90\x5b\x91\x19\x91\x18\x91\x1e\x91\x75\x91\x78\x91\x77\x91\x74\x92\x78\x92\x80\x92\x85\x92\x98\x92\x96\x92\x7b\x92\x93\x92\x9c\x92\xa8\x92\x7c\x92\x91\x95\xa1\x95\xa8\x95\xa9\x95\xa3\x95\xa5\x95\xa4\x96\x99\x96\x9c\x96\x9b\x96\xcc\x96\xd2\x97\x00\x97\x7c\x97\x85\x97\xf6\x98\x17\x98\x18\x98\xaf\x98\xb1\x99\x03\x99\x05\x99\x0c\x99\x09\x99\xc1\x9a\xaf\x9a\xb0\x9a\xe6\x9b\x41\x9b\x42\x9c\xf4\x9c\xf6\x9c\xf3\x9e\xbc\x9f\x3b\x9f\x4a\x51\x04\x51\x00\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xfb\x50\xf5\x50\xf9\x51\x02\x51\x08\x51\x09\x51\x05\x51\xdc\x52\x87\x52\x88\x52\x89\x52\x8d\x52\x8a\x52\xf0\x53\xb2\x56\x2e\x56\x3b\x56\x39\x56\x32\x56\x3f\x56\x34\x56\x29\x56\x53\x56\x4e\x56\x57\x56\x74\x56\x36\x56\x2f\x56\x30\x58\x80\x58\x9f\x58\x9e\x58\xb3\x58\x9c\x58\xae\x58\xa9\x58\xa6\x59\x6d\x5b\x09\x5a\xfb\x5b\x0b\x5a\xf5\x5b\x0c\x5b\x08\x5b\xee\x5b\xec\x5b\xe9\x5b\xeb\x5c\x64\x5c\x65\x5d\x9d\x5d\x94\x5e\x62\x5e\x5f\x5e\x61\x5e\xe2\x5e\xda\x5e\xdf\x5e\xdd\x5e\xe3\x5e\xe0\x5f\x48\x5f\x71", /* 6080 */ "\x00\x00\x5f\xb7\x5f\xb5\x61\x76\x61\x67\x61\x6e\x61\x5d\x61\x55\x61\x82\x61\x7c\x61\x70\x61\x6b\x61\x7e\x61\xa7\x61\x90\x61\xab\x61\x8e\x61\xac\x61\x9a\x61\xa4\x61\x94\x61\xae\x62\x2e\x64\x69\x64\x6f\x64\x79\x64\x9e\x64\xb2\x64\x88\x64\x90\x64\xb0\x64\xa5\x64\x93\x64\x95\x64\xa9\x64\x92\x64\xae\x64\xad\x64\xab\x64\x9a\x64\xac\x64\x99\x64\xa2\x64\xb3\x65\x75\x65\x77\x65\x78\x66\xae\x66\xab\x66\xb4\x66\xb1\x6a\x23\x6a\x1f\x69\xe8\x6a\x01\x6a\x1e\x6a\x19\x69\xfd\x6a\x21\x6a\x13\x6a\x0a\x69\xf3\x6a\x02\x6a\x05\x69\xed\x6a\x11\x6b\x50\x6b\x4e\x6b\xa4\x6b\xc5\x6b\xc6\x6f\x3f\x6f\x7c\x6f\x84\x6f\x51\x6f\x66\x6f\x54\x6f\x86\x6f\x6d\x6f\x5b\x6f\x78\x6f\x6e\x6f\x8e\x6f\x7a\x6f\x70\x6f\x64\x6f\x97\x6f\x58\x6e\xd5\x6f\x6f\x6f\x60\x6f\x5f\x71\x9f\x71\xac\x71\xb1\x71\xa8\x72\x56\x72\x9b\x73\x4e\x73\x57\x74\x69\x74\x8b\x74\x83\x74\x7e\x74\x80\x75\x7f\x76\x20\x76\x29\x76\x1f\x76\x24\x76\x26\x76\x21\x76\x22\x76\x9a\x76\xba\x76\xe4\x77\x8e\x77\x87\x77\x8c\x77\x91\x77\x8b\x78\xcb\x78\xc5\x78\xba\x78\xca\x78\xbe\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xd5\x78\xbc\x78\xd0\x7a\x3f\x7a\x3c\x7a\x40\x7a\x3d\x7a\x37\x7a\x3b\x7a\xaf\x7a\xae\x7b\xad\x7b\xb1\x7b\xc4\x7b\xb4\x7b\xc6\x7b\xc7\x7b\xc1\x7b\xa0\x7b\xcc\x7c\xca\x7d\xe0\x7d\xf4\x7d\xef\x7d\xfb\x7d\xd8\x7d\xec\x7d\xdd\x7d\xe8\x7d\xe3\x7d\xda\x7d\xde\x7d\xe9\x7d\x9e\x7d\xd9\x7d\xf2\x7d\xf9\x7f\x75\x7f\x77\x7f\xaf\x7f\xe9\x80\x26\x81\x9b\x81\x9c\x81\x9d\x81\xa0\x81\x9a\x81\x98\x85\x17\x85\x3d\x85\x1a\x84\xee\x85\x2c\x85\x2d\x85\x13\x85\x11\x85\x23\x85\x21\x85\x14\x84\xec\x85\x25\x84\xff\x85\x06", /* 6180 */ "\x00\x00\x87\x82\x87\x74\x87\x76\x87\x60\x87\x66\x87\x78\x87\x68\x87\x59\x87\x57\x87\x4c\x87\x53\x88\x5b\x88\x5d\x89\x10\x89\x07\x89\x12\x89\x13\x89\x15\x89\x0a\x8a\xbc\x8a\xd2\x8a\xc7\x8a\xc4\x8a\x95\x8a\xcb\x8a\xf8\x8a\xb2\x8a\xc9\x8a\xc2\x8a\xbf\x8a\xb0\x8a\xd6\x8a\xcd\x8a\xb6\x8a\xb9\x8a\xdb\x8c\x4c\x8c\x4e\x8c\x6c\x8c\xe0\x8c\xde\x8c\xe6\x8c\xe4\x8c\xec\x8c\xed\x8c\xe2\x8c\xe3\x8c\xdc\x8c\xea\x8c\xe1\x8d\x6d\x8d\x9f\x8d\xa3\x8e\x2b\x8e\x10\x8e\x1d\x8e\x22\x8e\x0f\x8e\x29\x8e\x1f\x8e\x21\x8e\x1e\x8e\xba\x8f\x1d\x8f\x1b\x8f\x1f\x8f\x29\x8f\x26\x8f\x2a\x8f\x1c\x8f\x1e\x8f\x25\x90\x69\x90\x6e\x90\x68\x90\x6d\x90\x77\x91\x30\x91\x2d\x91\x27\x91\x31\x91\x87\x91\x89\x91\x8b\x91\x83\x92\xc5\x92\xbb\x92\xb7\x92\xea\x92\xac\x92\xe4\x92\xc1\x92\xb3\x92\xbc\x92\xd2\x92\xc7\x92\xf0\x92\xb2\x95\xad\x95\xb1\x97\x04\x97\x06\x97\x07\x97\x09\x97\x60\x97\x8d\x97\x8b\x97\x8f\x98\x21\x98\x2b\x98\x1c\x98\xb3\x99\x0a\x99\x13\x99\x12\x99\x18\x99\xdd\x99\xd0\x99\xdf\x99\xdb\x99\xd1\x99\xd5\x99\xd2\x99\xd9\x9a\xb7\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xee\x9a\xef\x9b\x27\x9b\x45\x9b\x44\x9b\x77\x9b\x6f\x9d\x06\x9d\x09\x9d\x03\x9e\xa9\x9e\xbe\x9e\xce\x58\xa8\x9f\x52\x51\x12\x51\x18\x51\x14\x51\x10\x51\x15\x51\x80\x51\xaa\x51\xdd\x52\x91\x52\x93\x52\xf3\x56\x59\x56\x6b\x56\x79\x56\x69\x56\x64\x56\x78\x56\x6a\x56\x68\x56\x65\x56\x71\x56\x6f\x56\x6c\x56\x62\x56\x76\x58\xc1\x58\xbe\x58\xc7\x58\xc5\x59\x6e\x5b\x1d\x5b\x34\x5b\x78\x5b\xf0\x5c\x0e\x5f\x4a\x61\xb2\x61\x91\x61\xa9\x61\x8a\x61\xcd\x61\xb6\x61\xbe\x61\xca\x61\xc8\x62\x30\x64\xc5\x64\xc1", /* 6280 */ "\x00\x00\x64\xcb\x64\xbb\x64\xbc\x64\xda\x64\xc4\x64\xc7\x64\xc2\x64\xcd\x64\xbf\x64\xd2\x64\xd4\x64\xbe\x65\x74\x66\xc6\x66\xc9\x66\xb9\x66\xc4\x66\xc7\x66\xb8\x6a\x3d\x6a\x38\x6a\x3a\x6a\x59\x6a\x6b\x6a\x58\x6a\x39\x6a\x44\x6a\x62\x6a\x61\x6a\x4b\x6a\x47\x6a\x35\x6a\x5f\x6a\x48\x6b\x59\x6b\x77\x6c\x05\x6f\xc2\x6f\xb1\x6f\xa1\x6f\xc3\x6f\xa4\x6f\xc1\x6f\xa7\x6f\xb3\x6f\xc0\x6f\xb9\x6f\xb6\x6f\xa6\x6f\xa0\x6f\xb4\x71\xbe\x71\xc9\x71\xd0\x71\xd2\x71\xc8\x71\xd5\x71\xb9\x71\xce\x71\xd9\x71\xdc\x71\xc3\x71\xc4\x73\x68\x74\x9c\x74\xa3\x74\x98\x74\x9f\x74\x9e\x74\xe2\x75\x0c\x75\x0d\x76\x34\x76\x38\x76\x3a\x76\xe7\x76\xe5\x77\xa0\x77\x9e\x77\x9f\x77\xa5\x78\xe8\x78\xda\x78\xec\x78\xe7\x79\xa6\x7a\x4d\x7a\x4e\x7a\x46\x7a\x4c\x7a\x4b\x7a\xba\x7b\xd9\x7c\x11\x7b\xc9\x7b\xe4\x7b\xdb\x7b\xe1\x7b\xe9\x7b\xe6\x7c\xd5\x7c\xd6\x7e\x0a\x7e\x11\x7e\x08\x7e\x1b\x7e\x23\x7e\x1e\x7e\x1d\x7e\x09\x7e\x10\x7f\x79\x7f\xb2\x7f\xf0\x7f\xf1\x7f\xee\x80\x28\x81\xb3\x81\xa9\x81\xa8\x81\xfb\x82\x08\x82\x58\x82\x59\x85\x4a\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x59\x85\x48\x85\x68\x85\x69\x85\x43\x85\x49\x85\x6d\x85\x6a\x85\x5e\x87\x83\x87\x9f\x87\x9e\x87\xa2\x87\x8d\x88\x61\x89\x2a\x89\x32\x89\x25\x89\x2b\x89\x21\x89\xaa\x89\xa6\x8a\xe6\x8a\xfa\x8a\xeb\x8a\xf1\x8b\x00\x8a\xdc\x8a\xe7\x8a\xee\x8a\xfe\x8b\x01\x8b\x02\x8a\xf7\x8a\xed\x8a\xf3\x8a\xf6\x8a\xfc\x8c\x6b\x8c\x6d\x8c\x93\x8c\xf4\x8e\x44\x8e\x31\x8e\x34\x8e\x42\x8e\x39\x8e\x35\x8f\x3b\x8f\x2f\x8f\x38\x8f\x33\x8f\xa8\x8f\xa6\x90\x75\x90\x74\x90\x78\x90\x72\x90\x7c\x90\x7a\x91\x34\x91\x92\x93\x20", /* 6380 */ "\x00\x00\x93\x36\x92\xf8\x93\x33\x93\x2f\x93\x22\x92\xfc\x93\x2b\x93\x04\x93\x1a\x93\x10\x93\x26\x93\x21\x93\x15\x93\x2e\x93\x19\x95\xbb\x96\xa7\x96\xa8\x96\xaa\x96\xd5\x97\x0e\x97\x11\x97\x16\x97\x0d\x97\x13\x97\x0f\x97\x5b\x97\x5c\x97\x66\x97\x98\x98\x30\x98\x38\x98\x3b\x98\x37\x98\x2d\x98\x39\x98\x24\x99\x10\x99\x28\x99\x1e\x99\x1b\x99\x21\x99\x1a\x99\xed\x99\xe2\x99\xf1\x9a\xb8\x9a\xbc\x9a\xfb\x9a\xed\x9b\x28\x9b\x91\x9d\x15\x9d\x23\x9d\x26\x9d\x28\x9d\x12\x9d\x1b\x9e\xd8\x9e\xd4\x9f\x8d\x9f\x9c\x51\x2a\x51\x1f\x51\x21\x51\x32\x52\xf5\x56\x8e\x56\x80\x56\x90\x56\x85\x56\x87\x56\x8f\x58\xd5\x58\xd3\x58\xd1\x58\xce\x5b\x30\x5b\x2a\x5b\x24\x5b\x7a\x5c\x37\x5c\x68\x5d\xbc\x5d\xba\x5d\xbd\x5d\xb8\x5e\x6b\x5f\x4c\x5f\xbd\x61\xc9\x61\xc2\x61\xc7\x61\xe6\x61\xcb\x62\x32\x62\x34\x64\xce\x64\xca\x64\xd8\x64\xe0\x64\xf0\x64\xe6\x64\xec\x64\xf1\x64\xe2\x64\xed\x65\x82\x65\x83\x66\xd9\x66\xd6\x6a\x80\x6a\x94\x6a\x84\x6a\xa2\x6a\x9c\x6a\xdb\x6a\xa3\x6a\x7e\x6a\x97\x6a\x90\x6a\xa0\x6b\x5c\x6b\xae\x6b\xda\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x08\x6f\xd8\x6f\xf1\x6f\xdf\x6f\xe0\x6f\xdb\x6f\xe4\x6f\xeb\x6f\xef\x6f\x80\x6f\xec\x6f\xe1\x6f\xe9\x6f\xd5\x6f\xee\x6f\xf0\x71\xe7\x71\xdf\x71\xee\x71\xe6\x71\xe5\x71\xed\x71\xec\x71\xf4\x71\xe0\x72\x35\x72\x46\x73\x70\x73\x72\x74\xa9\x74\xb0\x74\xa6\x74\xa8\x76\x46\x76\x42\x76\x4c\x76\xea\x77\xb3\x77\xaa\x77\xb0\x77\xac\x77\xa7\x77\xad\x77\xef\x78\xf7\x78\xfa\x78\xf4\x78\xef\x79\x01\x79\xa7\x79\xaa\x7a\x57\x7a\xbf\x7c\x07\x7c\x0d\x7b\xfe\x7b\xf7\x7c\x0c\x7b\xe0\x7c\xe0\x7c\xdc\x7c\xde\x7c\xe2", /* 6480 */ "\x00\x00\x7c\xdf\x7c\xd9\x7c\xdd\x7e\x2e\x7e\x3e\x7e\x46\x7e\x37\x7e\x32\x7e\x43\x7e\x2b\x7e\x3d\x7e\x31\x7e\x45\x7e\x41\x7e\x34\x7e\x39\x7e\x48\x7e\x35\x7e\x3f\x7e\x2f\x7f\x44\x7f\xf3\x7f\xfc\x80\x71\x80\x72\x80\x70\x80\x6f\x80\x73\x81\xc6\x81\xc3\x81\xba\x81\xc2\x81\xc0\x81\xbf\x81\xbd\x81\xc9\x81\xbe\x81\xe8\x82\x09\x82\x71\x85\xaa\x85\x84\x85\x7e\x85\x9c\x85\x91\x85\x94\x85\xaf\x85\x9b\x85\x87\x85\xa8\x85\x8a\x86\x67\x87\xc0\x87\xd1\x87\xb3\x87\xd2\x87\xc6\x87\xab\x87\xbb\x87\xba\x87\xc8\x87\xcb\x89\x3b\x89\x36\x89\x44\x89\x38\x89\x3d\x89\xac\x8b\x0e\x8b\x17\x8b\x19\x8b\x1b\x8b\x0a\x8b\x20\x8b\x1d\x8b\x04\x8b\x10\x8c\x41\x8c\x3f\x8c\x73\x8c\xfa\x8c\xfd\x8c\xfc\x8c\xf8\x8c\xfb\x8d\xa8\x8e\x49\x8e\x4b\x8e\x48\x8e\x4a\x8f\x44\x8f\x3e\x8f\x42\x8f\x45\x8f\x3f\x90\x7f\x90\x7d\x90\x84\x90\x81\x90\x82\x90\x80\x91\x39\x91\xa3\x91\x9e\x91\x9c\x93\x4d\x93\x82\x93\x28\x93\x75\x93\x4a\x93\x65\x93\x4b\x93\x18\x93\x7e\x93\x6c\x93\x5b\x93\x70\x93\x5a\x93\x54\x95\xca\x95\xcb\x95\xcc\x95\xc8\x95\xc6\x96\xb1\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xb8\x96\xd6\x97\x1c\x97\x1e\x97\xa0\x97\xd3\x98\x46\x98\xb6\x99\x35\x9a\x01\x99\xff\x9b\xae\x9b\xab\x9b\xaa\x9b\xad\x9d\x3b\x9d\x3f\x9e\x8b\x9e\xcf\x9e\xde\x9e\xdc\x9e\xdd\x9e\xdb\x9f\x3e\x9f\x4b\x53\xe2\x56\x95\x56\xae\x58\xd9\x58\xd8\x5b\x38\x5f\x5e\x61\xe3\x62\x33\x64\xf4\x64\xf2\x64\xfe\x65\x06\x64\xfa\x64\xfb\x64\xf7\x65\xb7\x66\xdc\x67\x26\x6a\xb3\x6a\xac\x6a\xc3\x6a\xbb\x6a\xb8\x6a\xc2\x6a\xae\x6a\xaf\x6b\x5f\x6b\x78\x6b\xaf\x70\x09\x70\x0b\x6f\xfe\x70\x06\x6f\xfa\x70\x11\x70\x0f\x71\xfb", /* 6580 */ "\x00\x00\x71\xfc\x71\xfe\x71\xf8\x73\x77\x73\x75\x74\xa7\x74\xbf\x75\x15\x76\x56\x76\x58\x76\x52\x77\xbd\x77\xbf\x77\xbb\x77\xbc\x79\x0e\x79\xae\x7a\x61\x7a\x62\x7a\x60\x7a\xc4\x7a\xc5\x7c\x2b\x7c\x27\x7c\x2a\x7c\x1e\x7c\x23\x7c\x21\x7c\xe7\x7e\x54\x7e\x55\x7e\x5e\x7e\x5a\x7e\x61\x7e\x52\x7e\x59\x7f\x48\x7f\xf9\x7f\xfb\x80\x77\x80\x76\x81\xcd\x81\xcf\x82\x0a\x85\xcf\x85\xa9\x85\xcd\x85\xd0\x85\xc9\x85\xb0\x85\xba\x85\xb9\x85\xa6\x87\xef\x87\xec\x87\xf2\x87\xe0\x89\x86\x89\xb2\x89\xf4\x8b\x28\x8b\x39\x8b\x2c\x8b\x2b\x8c\x50\x8d\x05\x8e\x59\x8e\x63\x8e\x66\x8e\x64\x8e\x5f\x8e\x55\x8e\xc0\x8f\x49\x8f\x4d\x90\x87\x90\x83\x90\x88\x91\xab\x91\xac\x91\xd0\x93\x94\x93\x8a\x93\x96\x93\xa2\x93\xb3\x93\xae\x93\xac\x93\xb0\x93\x98\x93\x9a\x93\x97\x95\xd4\x95\xd6\x95\xd0\x95\xd5\x96\xe2\x96\xdc\x96\xd9\x96\xdb\x96\xde\x97\x24\x97\xa3\x97\xa6\x97\xad\x97\xf9\x98\x4d\x98\x4f\x98\x4c\x98\x4e\x98\x53\x98\xba\x99\x3e\x99\x3f\x99\x3d\x99\x2e\x99\xa5\x9a\x0e\x9a\xc1\x9b\x03\x9b\x06\x9b\x4f\x9b\x4e\x9b\x4d\x9b\xca\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xc9\x9b\xfd\x9b\xc8\x9b\xc0\x9d\x51\x9d\x5d\x9d\x60\x9e\xe0\x9f\x15\x9f\x2c\x51\x33\x56\xa5\x58\xde\x58\xdf\x58\xe2\x5b\xf5\x9f\x90\x5e\xec\x61\xf2\x61\xf7\x61\xf6\x61\xf5\x65\x00\x65\x0f\x66\xe0\x66\xdd\x6a\xe5\x6a\xdd\x6a\xda\x6a\xd3\x70\x1b\x70\x1f\x70\x28\x70\x1a\x70\x1d\x70\x15\x70\x18\x72\x06\x72\x0d\x72\x58\x72\xa2\x73\x78\x73\x7a\x74\xbd\x74\xca\x74\xe3\x75\x87\x75\x86\x76\x5f\x76\x61\x77\xc7\x79\x19\x79\xb1\x7a\x6b\x7a\x69\x7c\x3e\x7c\x3f\x7c\x38\x7c\x3d\x7c\x37\x7c\x40\x7e\x6b\x7e\x6d", /* 6680 */ "\x00\x00\x7e\x79\x7e\x69\x7e\x6a\x7f\x85\x7e\x73\x7f\xb6\x7f\xb9\x7f\xb8\x81\xd8\x85\xe9\x85\xdd\x85\xea\x85\xd5\x85\xe4\x85\xe5\x85\xf7\x87\xfb\x88\x05\x88\x0d\x87\xf9\x87\xfe\x89\x60\x89\x5f\x89\x56\x89\x5e\x8b\x41\x8b\x5c\x8b\x58\x8b\x49\x8b\x5a\x8b\x4e\x8b\x4f\x8b\x46\x8b\x59\x8d\x08\x8d\x0a\x8e\x7c\x8e\x72\x8e\x87\x8e\x76\x8e\x6c\x8e\x7a\x8e\x74\x8f\x54\x8f\x4e\x8f\xad\x90\x8a\x90\x8b\x91\xb1\x91\xae\x93\xe1\x93\xd1\x93\xdf\x93\xc3\x93\xc8\x93\xdc\x93\xdd\x93\xd6\x93\xe2\x93\xcd\x93\xd8\x93\xe4\x93\xd7\x93\xe8\x95\xdc\x96\xb4\x96\xe3\x97\x2a\x97\x27\x97\x61\x97\xdc\x97\xfb\x98\x5e\x98\x58\x98\x5b\x98\xbc\x99\x45\x99\x49\x9a\x16\x9a\x19\x9b\x0d\x9b\xe8\x9b\xe7\x9b\xd6\x9b\xdb\x9d\x89\x9d\x61\x9d\x72\x9d\x6a\x9d\x6c\x9e\x92\x9e\x97\x9e\x93\x9e\xb4\x52\xf8\x56\xa8\x56\xb7\x56\xb6\x56\xb4\x56\xbc\x58\xe4\x5b\x40\x5b\x43\x5b\x7d\x5b\xf6\x5d\xc9\x61\xf8\x61\xfa\x65\x18\x65\x14\x65\x19\x66\xe6\x67\x27\x6a\xec\x70\x3e\x70\x30\x70\x32\x72\x10\x73\x7b\x74\xcf\x76\x62\x76\x65\x79\x26\x79\x2a\x79\x2c\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x2b\x7a\xc7\x7a\xf6\x7c\x4c\x7c\x43\x7c\x4d\x7c\xef\x7c\xf0\x8f\xae\x7e\x7d\x7e\x7c\x7e\x82\x7f\x4c\x80\x00\x81\xda\x82\x66\x85\xfb\x85\xf9\x86\x11\x85\xfa\x86\x06\x86\x0b\x86\x07\x86\x0a\x88\x14\x88\x15\x89\x64\x89\xba\x89\xf8\x8b\x70\x8b\x6c\x8b\x66\x8b\x6f\x8b\x5f\x8b\x6b\x8d\x0f\x8d\x0d\x8e\x89\x8e\x81\x8e\x85\x8e\x82\x91\xb4\x91\xcb\x94\x18\x94\x03\x93\xfd\x95\xe1\x97\x30\x98\xc4\x99\x52\x99\x51\x99\xa8\x9a\x2b\x9a\x30\x9a\x37\x9a\x35\x9c\x13\x9c\x0d\x9e\x79\x9e\xb5\x9e\xe8\x9f\x2f\x9f\x5f", /* 6780 */ "\x00\x00\x9f\x63\x9f\x61\x51\x37\x51\x38\x56\xc1\x56\xc0\x56\xc2\x59\x14\x5c\x6c\x5d\xcd\x61\xfc\x61\xfe\x65\x1d\x65\x1c\x65\x95\x66\xe9\x6a\xfb\x6b\x04\x6a\xfa\x6b\xb2\x70\x4c\x72\x1b\x72\xa7\x74\xd6\x74\xd4\x76\x69\x77\xd3\x7c\x50\x7e\x8f\x7e\x8c\x7f\xbc\x86\x17\x86\x2d\x86\x1a\x88\x23\x88\x22\x88\x21\x88\x1f\x89\x6a\x89\x6c\x89\xbd\x8b\x74\x8b\x77\x8b\x7d\x8d\x13\x8e\x8a\x8e\x8d\x8e\x8b\x8f\x5f\x8f\xaf\x91\xba\x94\x2e\x94\x33\x94\x35\x94\x3a\x94\x38\x94\x32\x94\x2b\x95\xe2\x97\x38\x97\x39\x97\x32\x97\xff\x98\x67\x98\x65\x99\x57\x9a\x45\x9a\x43\x9a\x40\x9a\x3e\x9a\xcf\x9b\x54\x9b\x51\x9c\x2d\x9c\x25\x9d\xaf\x9d\xb4\x9d\xc2\x9d\xb8\x9e\x9d\x9e\xef\x9f\x19\x9f\x5c\x9f\x66\x9f\x67\x51\x3c\x51\x3b\x56\xc8\x56\xca\x56\xc9\x5b\x7f\x5d\xd4\x5d\xd2\x5f\x4e\x61\xff\x65\x24\x6b\x0a\x6b\x61\x70\x51\x70\x58\x73\x80\x74\xe4\x75\x8a\x76\x6e\x76\x6c\x79\xb3\x7c\x60\x7c\x5f\x80\x7e\x80\x7d\x81\xdf\x89\x72\x89\x6f\x89\xfc\x8b\x80\x8d\x16\x8d\x17\x8e\x91\x8e\x93\x8f\x61\x91\x48\x94\x44\x94\x51\x94\x52\x97\x3d\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x3e\x97\xc3\x97\xc1\x98\x6b\x99\x55\x9a\x55\x9a\x4d\x9a\xd2\x9b\x1a\x9c\x49\x9c\x31\x9c\x3e\x9c\x3b\x9d\xd3\x9d\xd7\x9f\x34\x9f\x6c\x9f\x6a\x9f\x94\x56\xcc\x5d\xd6\x62\x00\x65\x23\x65\x2b\x65\x2a\x66\xec\x6b\x10\x74\xda\x7a\xca\x7c\x64\x7c\x63\x7c\x65\x7e\x93\x7e\x96\x7e\x94\x81\xe2\x86\x38\x86\x3f\x88\x31\x8b\x8a\x90\x90\x90\x8f\x94\x63\x94\x60\x94\x64\x97\x68\x98\x6f\x99\x5c\x9a\x5a\x9a\x5b\x9a\x57\x9a\xd3\x9a\xd4\x9a\xd1\x9c\x54\x9c\x57\x9c\x56\x9d\xe5\x9e\x9f\x9e\xf4\x56\xd1\x58\xe9\x65\x2c", /* 6880 */ "\x00\x00\x70\x5e\x76\x71\x76\x72\x77\xd7\x7f\x50\x7f\x88\x88\x36\x88\x39\x88\x62\x8b\x93\x8b\x92\x8b\x96\x82\x77\x8d\x1b\x91\xc0\x94\x6a\x97\x42\x97\x48\x97\x44\x97\xc6\x98\x70\x9a\x5f\x9b\x22\x9b\x58\x9c\x5f\x9d\xf9\x9d\xfa\x9e\x7c\x9e\x7d\x9f\x07\x9f\x77\x9f\x72\x5e\xf3\x6b\x16\x70\x63\x7c\x6c\x7c\x6e\x88\x3b\x89\xc0\x8e\xa1\x91\xc1\x94\x72\x94\x70\x98\x71\x99\x5e\x9a\xd6\x9b\x23\x9e\xcc\x70\x64\x77\xda\x8b\x9a\x94\x77\x97\xc9\x9a\x62\x9a\x65\x7e\x9c\x8b\x9c\x8e\xaa\x91\xc5\x94\x7d\x94\x7e\x94\x7c\x9c\x77\x9c\x78\x9e\xf7\x8c\x54\x94\x7f\x9e\x1a\x72\x28\x9a\x6a\x9b\x31\x9e\x1b\x9e\x1e\x7c\x72\x64\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x42\x4e\x5c\x51\xf5\x53\x1a\x53\x82\x4e\x07\x4e\x0c\x4e\x47\x4e\x8d\x56\xd7\xfa\x0c\x5c\x6e\x5f\x73\x4e\x0f\x51\x87\x4e\x0e\x4e\x2e\x4e\x93\x4e\xc2\x4e\xc9\x4e\xc8\x51\x98\x52\xfc\x53\x6c\x53\xb9\x57\x20\x59\x03\x59\x2c\x5c\x10\x5d\xff\x65\xe1\x6b\xb3\x6b\xcc\x6c\x14\x72\x3f\x4e\x31\x4e\x3c\x4e\xe8\x4e\xdc\x4e\xe9\x4e\xe1\x4e\xdd\x4e\xda\x52\x0c\x53\x1c\x53\x4c\x57\x22\x57\x23\x59\x17\x59\x2f\x5b\x81\x5b\x84\x5c\x12\x5c\x3b\x5c\x74\x5c\x73\x5e\x04\x5e\x80\x5e\x82\x5f\xc9\x62\x09\x62\x50\x6c\x15", /* 6980 */ "\x00\x00\x6c\x36\x6c\x43\x6c\x3f\x6c\x3b\x72\xae\x72\xb0\x73\x8a\x79\xb8\x80\x8a\x96\x1e\x4f\x0e\x4f\x18\x4f\x2c\x4e\xf5\x4f\x14\x4e\xf1\x4f\x00\x4e\xf7\x4f\x08\x4f\x1d\x4f\x02\x4f\x05\x4f\x22\x4f\x13\x4f\x04\x4e\xf4\x4f\x12\x51\xb1\x52\x13\x52\x09\x52\x10\x52\xa6\x53\x22\x53\x1f\x53\x4d\x53\x8a\x54\x07\x56\xe1\x56\xdf\x57\x2e\x57\x2a\x57\x34\x59\x3c\x59\x80\x59\x7c\x59\x85\x59\x7b\x59\x7e\x59\x77\x59\x7f\x5b\x56\x5c\x15\x5c\x25\x5c\x7c\x5c\x7a\x5c\x7b\x5c\x7e\x5d\xdf\x5e\x75\x5e\x84\x5f\x02\x5f\x1a\x5f\x74\x5f\xd5\x5f\xd4\x5f\xcf\x62\x65\x62\x5c\x62\x5e\x62\x64\x62\x61\x62\x66\x62\x62\x62\x59\x62\x60\x62\x5a\x65\xef\x65\xee\x67\x3e\x67\x39\x67\x38\x67\x3b\x67\x3a\x67\x3f\x67\x3c\x67\x33\x6c\x18\x6c\x46\x6c\x52\x6c\x5c\x6c\x4f\x6c\x4a\x6c\x54\x6c\x4b\x6c\x4c\x70\x71\x72\x5e\x72\xb4\x72\xb5\x73\x8e\x75\x2a\x76\x7f\x7a\x75\x7f\x51\x82\x78\x82\x7c\x82\x80\x82\x7d\x82\x7f\x86\x4d\x89\x7e\x90\x99\x90\x97\x90\x98\x90\x9b\x90\x94\x96\x22\x96\x24\x96\x20\x96\x23\x4f\x56\x4f\x3b\x4f\x62\x4f\x49\x4f\x53\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x64\x4f\x3e\x4f\x67\x4f\x52\x4f\x5f\x4f\x41\x4f\x58\x4f\x2d\x4f\x33\x4f\x3f\x4f\x61\x51\x8f\x51\xb9\x52\x1c\x52\x1e\x52\x21\x52\xad\x52\xae\x53\x09\x53\x63\x53\x72\x53\x8e\x53\x8f\x54\x30\x54\x37\x54\x2a\x54\x54\x54\x45\x54\x19\x54\x1c\x54\x25\x54\x18\x54\x3d\x54\x4f\x54\x41\x54\x28\x54\x24\x54\x47\x56\xee\x56\xe7\x56\xe5\x57\x41\x57\x45\x57\x4c\x57\x49\x57\x4b\x57\x52\x59\x06\x59\x40\x59\xa6\x59\x98\x59\xa0\x59\x97\x59\x8e\x59\xa2\x59\x90\x59\x8f\x59\xa7\x59\xa1\x5b\x8e\x5b\x92\x5c\x28\x5c\x2a", /* 6a80 */ "\x00\x00\x5c\x8d\x5c\x8f\x5c\x88\x5c\x8b\x5c\x89\x5c\x92\x5c\x8a\x5c\x86\x5c\x93\x5c\x95\x5d\xe0\x5e\x0a\x5e\x0e\x5e\x8b\x5e\x89\x5e\x8c\x5e\x88\x5e\x8d\x5f\x05\x5f\x1d\x5f\x78\x5f\x76\x5f\xd2\x5f\xd1\x5f\xd0\x5f\xed\x5f\xe8\x5f\xee\x5f\xf3\x5f\xe1\x5f\xe4\x5f\xe3\x5f\xfa\x5f\xef\x5f\xf7\x5f\xfb\x60\x00\x5f\xf4\x62\x3a\x62\x83\x62\x8c\x62\x8e\x62\x8f\x62\x94\x62\x87\x62\x71\x62\x7b\x62\x7a\x62\x70\x62\x81\x62\x88\x62\x77\x62\x7d\x62\x72\x62\x74\x65\x37\x65\xf0\x65\xf4\x65\xf3\x65\xf2\x65\xf5\x67\x45\x67\x47\x67\x59\x67\x55\x67\x4c\x67\x48\x67\x5d\x67\x4d\x67\x5a\x67\x4b\x6b\xd0\x6c\x19\x6c\x1a\x6c\x78\x6c\x67\x6c\x6b\x6c\x84\x6c\x8b\x6c\x8f\x6c\x71\x6c\x6f\x6c\x69\x6c\x9a\x6c\x6d\x6c\x87\x6c\x95\x6c\x9c\x6c\x66\x6c\x73\x6c\x65\x6c\x7b\x6c\x8e\x70\x74\x70\x7a\x72\x63\x72\xbf\x72\xbd\x72\xc3\x72\xc6\x72\xc1\x72\xba\x72\xc5\x73\x95\x73\x97\x73\x93\x73\x94\x73\x92\x75\x3a\x75\x39\x75\x94\x75\x95\x76\x81\x79\x3d\x80\x34\x80\x95\x80\x99\x80\x90\x80\x92\x80\x9c\x82\x90\x82\x8f\x82\x85\x82\x8e\x82\x91\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x93\x82\x8a\x82\x83\x82\x84\x8c\x78\x8f\xc9\x8f\xbf\x90\x9f\x90\xa1\x90\xa5\x90\x9e\x90\xa7\x90\xa0\x96\x30\x96\x28\x96\x2f\x96\x2d\x4e\x33\x4f\x98\x4f\x7c\x4f\x85\x4f\x7d\x4f\x80\x4f\x87\x4f\x76\x4f\x74\x4f\x89\x4f\x84\x4f\x77\x4f\x4c\x4f\x97\x4f\x6a\x4f\x9a\x4f\x79\x4f\x81\x4f\x78\x4f\x90\x4f\x9c\x4f\x94\x4f\x9e\x4f\x92\x4f\x82\x4f\x95\x4f\x6b\x4f\x6e\x51\x9e\x51\xbc\x51\xbe\x52\x35\x52\x32\x52\x33\x52\x46\x52\x31\x52\xbc\x53\x0a\x53\x0b\x53\x3c\x53\x92\x53\x94\x54\x87\x54\x7f\x54\x81\x54\x91", /* 6b80 */ "\x00\x00\x54\x82\x54\x88\x54\x6b\x54\x7a\x54\x7e\x54\x65\x54\x6c\x54\x74\x54\x66\x54\x8d\x54\x6f\x54\x61\x54\x60\x54\x98\x54\x63\x54\x67\x54\x64\x56\xf7\x56\xf9\x57\x6f\x57\x72\x57\x6d\x57\x6b\x57\x71\x57\x70\x57\x76\x57\x80\x57\x75\x57\x7b\x57\x73\x57\x74\x57\x62\x57\x68\x57\x7d\x59\x0c\x59\x45\x59\xb5\x59\xba\x59\xcf\x59\xce\x59\xb2\x59\xcc\x59\xc1\x59\xb6\x59\xbc\x59\xc3\x59\xd6\x59\xb1\x59\xbd\x59\xc0\x59\xc8\x59\xb4\x59\xc7\x5b\x62\x5b\x65\x5b\x93\x5b\x95\x5c\x44\x5c\x47\x5c\xae\x5c\xa4\x5c\xa0\x5c\xb5\x5c\xaf\x5c\xa8\x5c\xac\x5c\x9f\x5c\xa3\x5c\xad\x5c\xa2\x5c\xaa\x5c\xa7\x5c\x9d\x5c\xa5\x5c\xb6\x5c\xb0\x5c\xa6\x5e\x17\x5e\x14\x5e\x19\x5f\x28\x5f\x22\x5f\x23\x5f\x24\x5f\x54\x5f\x82\x5f\x7e\x5f\x7d\x5f\xde\x5f\xe5\x60\x2d\x60\x26\x60\x19\x60\x32\x60\x0b\x60\x34\x60\x0a\x60\x17\x60\x33\x60\x1a\x60\x1e\x60\x2c\x60\x22\x60\x0d\x60\x10\x60\x2e\x60\x13\x60\x11\x60\x0c\x60\x09\x60\x1c\x62\x14\x62\x3d\x62\xad\x62\xb4\x62\xd1\x62\xbe\x62\xaa\x62\xb6\x62\xca\x62\xae\x62\xb3\x62\xaf\x62\xbb\x62\xa9\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb0\x62\xb8\x65\x3d\x65\xa8\x65\xbb\x66\x09\x65\xfc\x66\x04\x66\x12\x66\x08\x65\xfb\x66\x03\x66\x0b\x66\x0d\x66\x05\x65\xfd\x66\x11\x66\x10\x66\xf6\x67\x0a\x67\x85\x67\x6c\x67\x8e\x67\x92\x67\x76\x67\x7b\x67\x98\x67\x86\x67\x84\x67\x74\x67\x8d\x67\x8c\x67\x7a\x67\x9f\x67\x91\x67\x99\x67\x83\x67\x7d\x67\x81\x67\x78\x67\x79\x67\x94\x6b\x25\x6b\x80\x6b\x7e\x6b\xde\x6c\x1d\x6c\x93\x6c\xec\x6c\xeb\x6c\xee\x6c\xd9\x6c\xb6\x6c\xd4\x6c\xad\x6c\xe7\x6c\xb7\x6c\xd0\x6c\xc2\x6c\xba\x6c\xc3\x6c\xc6\x6c\xed", /* 6c80 */ "\x00\x00\x6c\xf2\x6c\xd2\x6c\xdd\x6c\xb4\x6c\x8a\x6c\x9d\x6c\x80\x6c\xde\x6c\xc0\x6d\x30\x6c\xcd\x6c\xc7\x6c\xb0\x6c\xf9\x6c\xcf\x6c\xe9\x6c\xd1\x70\x94\x70\x98\x70\x85\x70\x93\x70\x86\x70\x84\x70\x91\x70\x96\x70\x82\x70\x9a\x70\x83\x72\x6a\x72\xd6\x72\xcb\x72\xd8\x72\xc9\x72\xdc\x72\xd2\x72\xd4\x72\xda\x72\xcc\x72\xd1\x73\xa4\x73\xa1\x73\xad\x73\xa6\x73\xa2\x73\xa0\x73\xac\x73\x9d\x74\xdd\x74\xe8\x75\x3f\x75\x40\x75\x3e\x75\x8c\x75\x98\x76\xaf\x76\xf3\x76\xf1\x76\xf0\x76\xf5\x77\xf8\x77\xfc\x77\xf9\x77\xfb\x77\xfa\x77\xf7\x79\x42\x79\x3f\x79\xc5\x7a\x78\x7a\x7b\x7a\xfb\x7c\x75\x7c\xfd\x80\x35\x80\x8f\x80\xae\x80\xa3\x80\xb8\x80\xb5\x80\xad\x82\x20\x82\xa0\x82\xc0\x82\xab\x82\x9a\x82\x98\x82\x9b\x82\xb5\x82\xa7\x82\xae\x82\xbc\x82\x9e\x82\xba\x82\xb4\x82\xa8\x82\xa1\x82\xa9\x82\xc2\x82\xa4\x82\xc3\x82\xb6\x82\xa2\x86\x70\x86\x6f\x86\x6d\x86\x6e\x8c\x56\x8f\xd2\x8f\xcb\x8f\xd3\x8f\xcd\x8f\xd6\x8f\xd5\x8f\xd7\x90\xb2\x90\xb4\x90\xaf\x90\xb3\x90\xb0\x96\x39\x96\x3d\x96\x3c\x96\x3a\x96\x43\x4f\xcd\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc5\x4f\xd3\x4f\xb2\x4f\xc9\x4f\xcb\x4f\xc1\x4f\xd4\x4f\xdc\x4f\xd9\x4f\xbb\x4f\xb3\x4f\xdb\x4f\xc7\x4f\xd6\x4f\xba\x4f\xc0\x4f\xb9\x4f\xec\x52\x44\x52\x49\x52\xc0\x52\xc2\x53\x3d\x53\x7c\x53\x97\x53\x96\x53\x99\x53\x98\x54\xba\x54\xa1\x54\xad\x54\xa5\x54\xcf\x54\xc3\x83\x0d\x54\xb7\x54\xae\x54\xd6\x54\xb6\x54\xc5\x54\xc6\x54\xa0\x54\x70\x54\xbc\x54\xa2\x54\xbe\x54\x72\x54\xde\x54\xb0\x57\xb5\x57\x9e\x57\x9f\x57\xa4\x57\x8c\x57\x97\x57\x9d\x57\x9b\x57\x94\x57\x98\x57\x8f\x57\x99\x57\xa5\x57\x9a", /* 6d80 */ "\x00\x00\x57\x95\x58\xf4\x59\x0d\x59\x53\x59\xe1\x59\xde\x59\xee\x5a\x00\x59\xf1\x59\xdd\x59\xfa\x59\xfd\x59\xfc\x59\xf6\x59\xe4\x59\xf2\x59\xf7\x59\xdb\x59\xe9\x59\xf3\x59\xf5\x59\xe0\x59\xfe\x59\xf4\x59\xed\x5b\xa8\x5c\x4c\x5c\xd0\x5c\xd8\x5c\xcc\x5c\xd7\x5c\xcb\x5c\xdb\x5c\xde\x5c\xda\x5c\xc9\x5c\xc7\x5c\xca\x5c\xd6\x5c\xd3\x5c\xd4\x5c\xcf\x5c\xc8\x5c\xc6\x5c\xce\x5c\xdf\x5c\xf8\x5d\xf9\x5e\x21\x5e\x22\x5e\x23\x5e\x20\x5e\x24\x5e\xb0\x5e\xa4\x5e\xa2\x5e\x9b\x5e\xa3\x5e\xa5\x5f\x07\x5f\x2e\x5f\x56\x5f\x86\x60\x37\x60\x39\x60\x54\x60\x72\x60\x5e\x60\x45\x60\x53\x60\x47\x60\x49\x60\x5b\x60\x4c\x60\x40\x60\x42\x60\x5f\x60\x24\x60\x44\x60\x58\x60\x66\x60\x6e\x62\x42\x62\x43\x62\xcf\x63\x0d\x63\x0b\x62\xf5\x63\x0e\x63\x03\x62\xeb\x62\xf9\x63\x0f\x63\x0c\x62\xf8\x62\xf6\x63\x00\x63\x13\x63\x14\x62\xfa\x63\x15\x62\xfb\x62\xf0\x65\x41\x65\x43\x65\xaa\x65\xbf\x66\x36\x66\x21\x66\x32\x66\x35\x66\x1c\x66\x26\x66\x22\x66\x33\x66\x2b\x66\x3a\x66\x1d\x66\x34\x66\x39\x66\x2e\x67\x0f\x67\x10\x67\xc1\x67\xf2\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc8\x67\xba\x67\xdc\x67\xbb\x67\xf8\x67\xd8\x67\xc0\x67\xb7\x67\xc5\x67\xeb\x67\xe4\x67\xdf\x67\xb5\x67\xcd\x67\xb3\x67\xf7\x67\xf6\x67\xee\x67\xe3\x67\xc2\x67\xb9\x67\xce\x67\xe7\x67\xf0\x67\xb2\x67\xfc\x67\xc6\x67\xed\x67\xcc\x67\xae\x67\xe6\x67\xdb\x67\xfa\x67\xc9\x67\xca\x67\xc3\x67\xea\x67\xcb\x6b\x28\x6b\x82\x6b\x84\x6b\xb6\x6b\xd6\x6b\xd8\x6b\xe0\x6c\x20\x6c\x21\x6d\x28\x6d\x34\x6d\x2d\x6d\x1f\x6d\x3c\x6d\x3f\x6d\x12\x6d\x0a\x6c\xda\x6d\x33\x6d\x04\x6d\x19\x6d\x3a\x6d\x1a\x6d\x11\x6d\x00", /* 6e80 */ "\x00\x00\x6d\x1d\x6d\x42\x6d\x01\x6d\x18\x6d\x37\x6d\x03\x6d\x0f\x6d\x40\x6d\x07\x6d\x20\x6d\x2c\x6d\x08\x6d\x22\x6d\x09\x6d\x10\x70\xb7\x70\x9f\x70\xbe\x70\xb1\x70\xb0\x70\xa1\x70\xb4\x70\xb5\x70\xa9\x72\x41\x72\x49\x72\x4a\x72\x6c\x72\x70\x72\x73\x72\x6e\x72\xca\x72\xe4\x72\xe8\x72\xeb\x72\xdf\x72\xea\x72\xe6\x72\xe3\x73\x85\x73\xcc\x73\xc2\x73\xc8\x73\xc5\x73\xb9\x73\xb6\x73\xb5\x73\xb4\x73\xeb\x73\xbf\x73\xc7\x73\xbe\x73\xc3\x73\xc6\x73\xb8\x73\xcb\x74\xec\x74\xee\x75\x2e\x75\x47\x75\x48\x75\xa7\x75\xaa\x76\x79\x76\xc4\x77\x08\x77\x03\x77\x04\x77\x05\x77\x0a\x76\xf7\x76\xfb\x76\xfa\x77\xe7\x77\xe8\x78\x06\x78\x11\x78\x12\x78\x05\x78\x10\x78\x0f\x78\x0e\x78\x09\x78\x03\x78\x13\x79\x4a\x79\x4c\x79\x4b\x79\x45\x79\x44\x79\xd5\x79\xcd\x79\xcf\x79\xd6\x79\xce\x7a\x80\x7a\x7e\x7a\xd1\x7b\x00\x7b\x01\x7c\x7a\x7c\x78\x7c\x79\x7c\x7f\x7c\x80\x7c\x81\x7d\x03\x7d\x08\x7d\x01\x7f\x58\x7f\x91\x7f\x8d\x7f\xbe\x80\x07\x80\x0e\x80\x0f\x80\x14\x80\x37\x80\xd8\x80\xc7\x80\xe0\x80\xd1\x80\xc8\x80\xc2\x80\xd0\x00\x00\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc5\x80\xe3\x80\xd9\x80\xdc\x80\xca\x80\xd5\x80\xc9\x80\xcf\x80\xd7\x80\xe6\x80\xcd\x81\xff\x82\x21\x82\x94\x82\xd9\x82\xfe\x82\xf9\x83\x07\x82\xe8\x83\x00\x82\xd5\x83\x3a\x82\xeb\x82\xd6\x82\xf4\x82\xec\x82\xe1\x82\xf2\x82\xf5\x83\x0c\x82\xfb\x82\xf6\x82\xf0\x82\xea\x82\xe4\x82\xe0\x82\xfa\x82\xf3\x82\xed\x86\x77\x86\x74\x86\x7c\x86\x73\x88\x41\x88\x4e\x88\x67\x88\x6a\x88\x69\x89\xd3\x8a\x04\x8a\x07\x8d\x72\x8f\xe3\x8f\xe1\x8f\xee\x8f\xe0\x90\xf1\x90\xbd\x90\xbf\x90\xd5\x90\xc5\x90\xbe\x90\xc7", /* 6f80 */ "\x00\x00\x90\xcb\x90\xc8\x91\xd4\x91\xd3\x96\x54\x96\x4f\x96\x51\x96\x53\x96\x4a\x96\x4e\x50\x1e\x50\x05\x50\x07\x50\x13\x50\x22\x50\x30\x50\x1b\x4f\xf5\x4f\xf4\x50\x33\x50\x37\x50\x2c\x4f\xf6\x4f\xf7\x50\x17\x50\x1c\x50\x20\x50\x27\x50\x35\x50\x2f\x50\x31\x50\x0e\x51\x5a\x51\x94\x51\x93\x51\xca\x51\xc4\x51\xc5\x51\xc8\x51\xce\x52\x61\x52\x5a\x52\x52\x52\x5e\x52\x5f\x52\x55\x52\x62\x52\xcd\x53\x0e\x53\x9e\x55\x26\x54\xe2\x55\x17\x55\x12\x54\xe7\x54\xf3\x54\xe4\x55\x1a\x54\xff\x55\x04\x55\x08\x54\xeb\x55\x11\x55\x05\x54\xf1\x55\x0a\x54\xfb\x54\xf7\x54\xf8\x54\xe0\x55\x0e\x55\x03\x55\x0b\x57\x01\x57\x02\x57\xcc\x58\x32\x57\xd5\x57\xd2\x57\xba\x57\xc6\x57\xbd\x57\xbc\x57\xb8\x57\xb6\x57\xbf\x57\xc7\x57\xd0\x57\xb9\x57\xc1\x59\x0e\x59\x4a\x5a\x19\x5a\x16\x5a\x2d\x5a\x2e\x5a\x15\x5a\x0f\x5a\x17\x5a\x0a\x5a\x1e\x5a\x33\x5b\x6c\x5b\xa7\x5b\xad\x5b\xac\x5c\x03\x5c\x56\x5c\x54\x5c\xec\x5c\xff\x5c\xee\x5c\xf1\x5c\xf7\x5d\x00\x5c\xf9\x5e\x29\x5e\x28\x5e\xa8\x5e\xae\x5e\xaa\x5e\xac\x5f\x33\x5f\x30\x5f\x67\x00\x00\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\xa2\x60\x88\x60\x80\x60\x92\x60\x81\x60\x9d\x60\x83\x60\x95\x60\x9b\x60\x97\x60\x87\x60\x9c\x60\x8e\x62\x19\x62\x46\x62\xf2\x63\x10\x63\x56\x63\x2c\x63\x44\x63\x45\x63\x36\x63\x43\x63\xe4\x63\x39\x63\x4b\x63\x4a\x63\x3c\x63\x29\x63\x41\x63\x34\x63\x58\x63\x54\x63\x59\x63\x2d\x63\x47\x63\x33\x63\x5a\x63\x51\x63\x38\x63\x57\x63\x40\x63\x48\x65\x4a\x65\x46\x65\xc6\x65\xc3\x65\xc4\x65\xc2\x66\x4a\x66\x5f\x66\x47\x66\x51\x67\x12\x67\x13\x68\x1f\x68\x1a\x68\x49\x68\x32", /* 7080 */ "\x00\x00\x68\x33\x68\x3b\x68\x4b\x68\x4f\x68\x16\x68\x31\x68\x1c\x68\x35\x68\x2b\x68\x2d\x68\x2f\x68\x4e\x68\x44\x68\x34\x68\x1d\x68\x12\x68\x14\x68\x26\x68\x28\x68\x2e\x68\x4d\x68\x3a\x68\x25\x68\x20\x6b\x2c\x6b\x2f\x6b\x2d\x6b\x31\x6b\x34\x6b\x6d\x80\x82\x6b\x88\x6b\xe6\x6b\xe4\x6b\xe8\x6b\xe3\x6b\xe2\x6b\xe7\x6c\x25\x6d\x7a\x6d\x63\x6d\x64\x6d\x76\x6d\x0d\x6d\x61\x6d\x92\x6d\x58\x6d\x62\x6d\x6d\x6d\x6f\x6d\x91\x6d\x8d\x6d\xef\x6d\x7f\x6d\x86\x6d\x5e\x6d\x67\x6d\x60\x6d\x97\x6d\x70\x6d\x7c\x6d\x5f\x6d\x82\x6d\x98\x6d\x2f\x6d\x68\x6d\x8b\x6d\x7e\x6d\x80\x6d\x84\x6d\x16\x6d\x83\x6d\x7b\x6d\x7d\x6d\x75\x6d\x90\x70\xdc\x70\xd3\x70\xd1\x70\xdd\x70\xcb\x7f\x39\x70\xe2\x70\xd7\x70\xd2\x70\xde\x70\xe0\x70\xd4\x70\xcd\x70\xc5\x70\xc6\x70\xc7\x70\xda\x70\xce\x70\xe1\x72\x42\x72\x78\x72\x77\x72\x76\x73\x00\x72\xfa\x72\xf4\x72\xfe\x72\xf6\x72\xf3\x72\xfb\x73\x01\x73\xd3\x73\xd9\x73\xe5\x73\xd6\x73\xbc\x73\xe7\x73\xe3\x73\xe9\x73\xdc\x73\xd2\x73\xdb\x73\xd4\x73\xdd\x73\xda\x73\xd7\x73\xd8\x73\xe8\x74\xde\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xdf\x74\xf4\x74\xf5\x75\x21\x75\x5b\x75\x5f\x75\xb0\x75\xc1\x75\xbb\x75\xc4\x75\xc0\x75\xbf\x75\xb6\x75\xba\x76\x8a\x76\xc9\x77\x1d\x77\x1b\x77\x10\x77\x13\x77\x12\x77\x23\x77\x11\x77\x15\x77\x19\x77\x1a\x77\x22\x77\x27\x78\x23\x78\x2c\x78\x22\x78\x35\x78\x2f\x78\x28\x78\x2e\x78\x2b\x78\x21\x78\x29\x78\x33\x78\x2a\x78\x31\x79\x54\x79\x5b\x79\x4f\x79\x5c\x79\x53\x79\x52\x79\x51\x79\xeb\x79\xec\x79\xe0\x79\xee\x79\xed\x79\xea\x79\xdc\x79\xde\x79\xdd\x7a\x86\x7a\x89\x7a\x85\x7a\x8b\x7a\x8c\x7a\x8a", /* 7180 */ "\x00\x00\x7a\x87\x7a\xd8\x7b\x10\x7b\x04\x7b\x13\x7b\x05\x7b\x0f\x7b\x08\x7b\x0a\x7b\x0e\x7b\x09\x7b\x12\x7c\x84\x7c\x91\x7c\x8a\x7c\x8c\x7c\x88\x7c\x8d\x7c\x85\x7d\x1e\x7d\x1d\x7d\x11\x7d\x0e\x7d\x18\x7d\x16\x7d\x13\x7d\x1f\x7d\x12\x7d\x0f\x7d\x0c\x7f\x5c\x7f\x61\x7f\x5e\x7f\x60\x7f\x5d\x7f\x5b\x7f\x96\x7f\x92\x7f\xc3\x7f\xc2\x7f\xc0\x80\x16\x80\x3e\x80\x39\x80\xfa\x80\xf2\x80\xf9\x80\xf5\x81\x01\x80\xfb\x81\x00\x82\x01\x82\x2f\x82\x25\x83\x33\x83\x2d\x83\x44\x83\x19\x83\x51\x83\x25\x83\x56\x83\x3f\x83\x41\x83\x26\x83\x1c\x83\x22\x83\x42\x83\x4e\x83\x1b\x83\x2a\x83\x08\x83\x3c\x83\x4d\x83\x16\x83\x24\x83\x20\x83\x37\x83\x2f\x83\x29\x83\x47\x83\x45\x83\x4c\x83\x53\x83\x1e\x83\x2c\x83\x4b\x83\x27\x83\x48\x86\x53\x86\x52\x86\xa2\x86\xa8\x86\x96\x86\x8d\x86\x91\x86\x9e\x86\x87\x86\x97\x86\x86\x86\x8b\x86\x9a\x86\x85\x86\xa5\x86\x99\x86\xa1\x86\xa7\x86\x95\x86\x98\x86\x8e\x86\x9d\x86\x90\x86\x94\x88\x43\x88\x44\x88\x6d\x88\x75\x88\x76\x88\x72\x88\x80\x88\x71\x88\x7f\x88\x6f\x88\x83\x88\x7e\x88\x74\x00\x00\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x7c\x8a\x12\x8c\x47\x8c\x57\x8c\x7b\x8c\xa4\x8c\xa3\x8d\x76\x8d\x78\x8d\xb5\x8d\xb7\x8d\xb6\x8e\xd1\x8e\xd3\x8f\xfe\x8f\xf5\x90\x02\x8f\xff\x8f\xfb\x90\x04\x8f\xfc\x8f\xf6\x90\xd6\x90\xe0\x90\xd9\x90\xda\x90\xe3\x90\xdf\x90\xe5\x90\xd8\x90\xdb\x90\xd7\x90\xdc\x90\xe4\x91\x50\x91\x4e\x91\x4f\x91\xd5\x91\xe2\x91\xda\x96\x5c\x96\x5f\x96\xbc\x98\xe3\x9a\xdf\x9b\x2f\x4e\x7f\x50\x70\x50\x6a\x50\x61\x50\x5e\x50\x60\x50\x53\x50\x4b\x50\x5d\x50\x72\x50\x48\x50\x4d\x50\x41\x50\x5b\x50\x4a\x50\x62\x50\x15", /* 7280 */ "\x00\x00\x50\x45\x50\x5f\x50\x69\x50\x6b\x50\x63\x50\x64\x50\x46\x50\x40\x50\x6e\x50\x73\x50\x57\x50\x51\x51\xd0\x52\x6b\x52\x6d\x52\x6c\x52\x6e\x52\xd6\x52\xd3\x53\x2d\x53\x9c\x55\x75\x55\x76\x55\x3c\x55\x4d\x55\x50\x55\x34\x55\x2a\x55\x51\x55\x62\x55\x36\x55\x35\x55\x30\x55\x52\x55\x45\x55\x0c\x55\x32\x55\x65\x55\x4e\x55\x39\x55\x48\x55\x2d\x55\x3b\x55\x40\x55\x4b\x57\x0a\x57\x07\x57\xfb\x58\x14\x57\xe2\x57\xf6\x57\xdc\x57\xf4\x58\x00\x57\xed\x57\xfd\x58\x08\x57\xf8\x58\x0b\x57\xf3\x57\xcf\x58\x07\x57\xee\x57\xe3\x57\xf2\x57\xe5\x57\xec\x57\xe1\x58\x0e\x57\xfc\x58\x10\x57\xe7\x58\x01\x58\x0c\x57\xf1\x57\xe9\x57\xf0\x58\x0d\x58\x04\x59\x5c\x5a\x60\x5a\x58\x5a\x55\x5a\x67\x5a\x5e\x5a\x38\x5a\x35\x5a\x6d\x5a\x50\x5a\x5f\x5a\x65\x5a\x6c\x5a\x53\x5a\x64\x5a\x57\x5a\x43\x5a\x5d\x5a\x52\x5a\x44\x5a\x5b\x5a\x48\x5a\x8e\x5a\x3e\x5a\x4d\x5a\x39\x5a\x4c\x5a\x70\x5a\x69\x5a\x47\x5a\x51\x5a\x56\x5a\x42\x5a\x5c\x5b\x72\x5b\x6e\x5b\xc1\x5b\xc0\x5c\x59\x5d\x1e\x5d\x0b\x5d\x1d\x5d\x1a\x5d\x20\x5d\x0c\x5d\x28\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x0d\x5d\x26\x5d\x25\x5d\x0f\x5d\x30\x5d\x12\x5d\x23\x5d\x1f\x5d\x2e\x5e\x3e\x5e\x34\x5e\xb1\x5e\xb4\x5e\xb9\x5e\xb2\x5e\xb3\x5f\x36\x5f\x38\x5f\x9b\x5f\x96\x5f\x9f\x60\x8a\x60\x90\x60\x86\x60\xbe\x60\xb0\x60\xba\x60\xd3\x60\xd4\x60\xcf\x60\xe4\x60\xd9\x60\xdd\x60\xc8\x60\xb1\x60\xdb\x60\xb7\x60\xca\x60\xbf\x60\xc3\x60\xcd\x60\xc0\x63\x32\x63\x65\x63\x8a\x63\x82\x63\x7d\x63\xbd\x63\x9e\x63\xad\x63\x9d\x63\x97\x63\xab\x63\x8e\x63\x6f\x63\x87\x63\x90\x63\x6e\x63\xaf\x63\x75\x63\x9c\x63\x6d\x63\xae", /* 7380 */ "\x00\x00\x63\x7c\x63\xa4\x63\x3b\x63\x9f\x63\x78\x63\x85\x63\x81\x63\x91\x63\x8d\x63\x70\x65\x53\x65\xcd\x66\x65\x66\x61\x66\x5b\x66\x59\x66\x5c\x66\x62\x67\x18\x68\x79\x68\x87\x68\x90\x68\x9c\x68\x6d\x68\x6e\x68\xae\x68\xab\x69\x56\x68\x6f\x68\xa3\x68\xac\x68\xa9\x68\x75\x68\x74\x68\xb2\x68\x8f\x68\x77\x68\x92\x68\x7c\x68\x6b\x68\x72\x68\xaa\x68\x80\x68\x71\x68\x7e\x68\x9b\x68\x96\x68\x8b\x68\xa0\x68\x89\x68\xa4\x68\x78\x68\x7b\x68\x91\x68\x8c\x68\x8a\x68\x7d\x6b\x36\x6b\x33\x6b\x37\x6b\x38\x6b\x91\x6b\x8f\x6b\x8d\x6b\x8e\x6b\x8c\x6c\x2a\x6d\xc0\x6d\xab\x6d\xb4\x6d\xb3\x6e\x74\x6d\xac\x6d\xe9\x6d\xe2\x6d\xb7\x6d\xf6\x6d\xd4\x6e\x00\x6d\xc8\x6d\xe0\x6d\xdf\x6d\xd6\x6d\xbe\x6d\xe5\x6d\xdc\x6d\xdd\x6d\xdb\x6d\xf4\x6d\xca\x6d\xbd\x6d\xed\x6d\xf0\x6d\xba\x6d\xd5\x6d\xc2\x6d\xcf\x6d\xc9\x6d\xd0\x6d\xf2\x6d\xd3\x6d\xfd\x6d\xd7\x6d\xcd\x6d\xe3\x6d\xbb\x70\xfa\x71\x0d\x70\xf7\x71\x17\x70\xf4\x71\x0c\x70\xf0\x71\x04\x70\xf3\x71\x10\x70\xfc\x70\xff\x71\x06\x71\x13\x71\x00\x70\xf8\x70\xf6\x71\x0b\x71\x02\x00\x00\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x0e\x72\x7e\x72\x7b\x72\x7c\x72\x7f\x73\x1d\x73\x17\x73\x07\x73\x11\x73\x18\x73\x0a\x73\x08\x72\xff\x73\x0f\x73\x1e\x73\x88\x73\xf6\x73\xf8\x73\xf5\x74\x04\x74\x01\x73\xfd\x74\x07\x74\x00\x73\xfa\x73\xfc\x73\xff\x74\x0c\x74\x0b\x73\xf4\x74\x08\x75\x64\x75\x63\x75\xce\x75\xd2\x75\xcf\x75\xcb\x75\xcc\x75\xd1\x75\xd0\x76\x8f\x76\x89\x76\xd3\x77\x39\x77\x2f\x77\x2d\x77\x31\x77\x32\x77\x34\x77\x33\x77\x3d\x77\x25\x77\x3b\x77\x35\x78\x48\x78\x52\x78\x49\x78\x4d\x78\x4a\x78\x4c\x78\x26\x78\x45\x78\x50", /* 7480 */ "\x00\x00\x79\x64\x79\x67\x79\x69\x79\x6a\x79\x63\x79\x6b\x79\x61\x79\xbb\x79\xfa\x79\xf8\x79\xf6\x79\xf7\x7a\x8f\x7a\x94\x7a\x90\x7b\x35\x7b\x47\x7b\x34\x7b\x25\x7b\x30\x7b\x22\x7b\x24\x7b\x33\x7b\x18\x7b\x2a\x7b\x1d\x7b\x31\x7b\x2b\x7b\x2d\x7b\x2f\x7b\x32\x7b\x38\x7b\x1a\x7b\x23\x7c\x94\x7c\x98\x7c\x96\x7c\xa3\x7d\x35\x7d\x3d\x7d\x38\x7d\x36\x7d\x3a\x7d\x45\x7d\x2c\x7d\x29\x7d\x41\x7d\x47\x7d\x3e\x7d\x3f\x7d\x4a\x7d\x3b\x7d\x28\x7f\x63\x7f\x95\x7f\x9c\x7f\x9d\x7f\x9b\x7f\xca\x7f\xcb\x7f\xcd\x7f\xd0\x7f\xd1\x7f\xc7\x7f\xcf\x7f\xc9\x80\x1f\x80\x1e\x80\x1b\x80\x47\x80\x43\x80\x48\x81\x18\x81\x25\x81\x19\x81\x1b\x81\x2d\x81\x1f\x81\x2c\x81\x1e\x81\x21\x81\x15\x81\x27\x81\x1d\x81\x22\x82\x11\x82\x38\x82\x33\x82\x3a\x82\x34\x82\x32\x82\x74\x83\x90\x83\xa3\x83\xa8\x83\x8d\x83\x7a\x83\x73\x83\xa4\x83\x74\x83\x8f\x83\x81\x83\x95\x83\x99\x83\x75\x83\x94\x83\xa9\x83\x7d\x83\x83\x83\x8c\x83\x9d\x83\x9b\x83\xaa\x83\x8b\x83\x7e\x83\xa5\x83\xaf\x83\x88\x83\x97\x83\xb0\x83\x7f\x83\xa6\x83\x87\x83\xae\x83\x76\x00\x00\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x9a\x86\x59\x86\x56\x86\xbf\x86\xb7\x86\xc2\x86\xc1\x86\xc5\x86\xba\x86\xb0\x86\xc8\x86\xb9\x86\xb3\x86\xb8\x86\xcc\x86\xb4\x86\xbb\x86\xbc\x86\xc3\x86\xbd\x86\xbe\x88\x52\x88\x89\x88\x95\x88\xa8\x88\xa2\x88\xaa\x88\x9a\x88\x91\x88\xa1\x88\x9f\x88\x98\x88\xa7\x88\x99\x88\x9b\x88\x97\x88\xa4\x88\xac\x88\x8c\x88\x93\x88\x8e\x89\x82\x89\xd6\x89\xd9\x89\xd5\x8a\x30\x8a\x27\x8a\x2c\x8a\x1e\x8c\x39\x8c\x3b\x8c\x5c\x8c\x5d\x8c\x7d\x8c\xa5\x8d\x7d\x8d\x7b\x8d\x79\x8d\xbc\x8d\xc2\x8d\xb9\x8d\xbf\x8d\xc1", /* 7580 */ "\x00\x00\x8e\xd8\x8e\xde\x8e\xdd\x8e\xdc\x8e\xd7\x8e\xe0\x8e\xe1\x90\x24\x90\x0b\x90\x11\x90\x1c\x90\x0c\x90\x21\x90\xef\x90\xea\x90\xf0\x90\xf4\x90\xf2\x90\xf3\x90\xd4\x90\xeb\x90\xec\x90\xe9\x91\x56\x91\x58\x91\x5a\x91\x53\x91\x55\x91\xec\x91\xf4\x91\xf1\x91\xf3\x91\xf8\x91\xe4\x91\xf9\x91\xea\x91\xeb\x91\xf7\x91\xe8\x91\xee\x95\x7a\x95\x86\x95\x88\x96\x7c\x96\x6d\x96\x6b\x96\x71\x96\x6f\x96\xbf\x97\x6a\x98\x04\x98\xe5\x99\x97\x50\x9b\x50\x95\x50\x94\x50\x9e\x50\x8b\x50\xa3\x50\x83\x50\x8c\x50\x8e\x50\x9d\x50\x68\x50\x9c\x50\x92\x50\x82\x50\x87\x51\x5f\x51\xd4\x53\x12\x53\x11\x53\xa4\x53\xa7\x55\x91\x55\xa8\x55\xa5\x55\xad\x55\x77\x56\x45\x55\xa2\x55\x93\x55\x88\x55\x8f\x55\xb5\x55\x81\x55\xa3\x55\x92\x55\xa4\x55\x7d\x55\x8c\x55\xa6\x55\x7f\x55\x95\x55\xa1\x55\x8e\x57\x0c\x58\x29\x58\x37\x58\x19\x58\x1e\x58\x27\x58\x23\x58\x28\x57\xf5\x58\x48\x58\x25\x58\x1c\x58\x1b\x58\x33\x58\x3f\x58\x36\x58\x2e\x58\x39\x58\x38\x58\x2d\x58\x2c\x58\x3b\x59\x61\x5a\xaf\x5a\x94\x5a\x9f\x5a\x7a\x5a\xa2\x5a\x9e\x00\x00\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x78\x5a\xa6\x5a\x7c\x5a\xa5\x5a\xac\x5a\x95\x5a\xae\x5a\x37\x5a\x84\x5a\x8a\x5a\x97\x5a\x83\x5a\x8b\x5a\xa9\x5a\x7b\x5a\x7d\x5a\x8c\x5a\x9c\x5a\x8f\x5a\x93\x5a\x9d\x5b\xea\x5b\xcd\x5b\xcb\x5b\xd4\x5b\xd1\x5b\xca\x5b\xce\x5c\x0c\x5c\x30\x5d\x37\x5d\x43\x5d\x6b\x5d\x41\x5d\x4b\x5d\x3f\x5d\x35\x5d\x51\x5d\x4e\x5d\x55\x5d\x33\x5d\x3a\x5d\x52\x5d\x3d\x5d\x31\x5d\x59\x5d\x42\x5d\x39\x5d\x49\x5d\x38\x5d\x3c\x5d\x32\x5d\x36\x5d\x40\x5d\x45\x5e\x44\x5e\x41\x5f\x58\x5f\xa6\x5f\xa5\x5f\xab\x60\xc9\x60\xb9", /* 7680 */ "\x00\x00\x60\xcc\x60\xe2\x60\xce\x60\xc4\x61\x14\x60\xf2\x61\x0a\x61\x16\x61\x05\x60\xf5\x61\x13\x60\xf8\x60\xfc\x60\xfe\x60\xc1\x61\x03\x61\x18\x61\x1d\x61\x10\x60\xff\x61\x04\x61\x0b\x62\x4a\x63\x94\x63\xb1\x63\xb0\x63\xce\x63\xe5\x63\xe8\x63\xef\x63\xc3\x64\x9d\x63\xf3\x63\xca\x63\xe0\x63\xf6\x63\xd5\x63\xf2\x63\xf5\x64\x61\x63\xdf\x63\xbe\x63\xdd\x63\xdc\x63\xc4\x63\xd8\x63\xd3\x63\xc2\x63\xc7\x63\xcc\x63\xcb\x63\xc8\x63\xf0\x63\xd7\x63\xd9\x65\x32\x65\x67\x65\x6a\x65\x64\x65\x5c\x65\x68\x65\x65\x65\x8c\x65\x9d\x65\x9e\x65\xae\x65\xd0\x65\xd2\x66\x7c\x66\x6c\x66\x7b\x66\x80\x66\x71\x66\x79\x66\x6a\x66\x72\x67\x01\x69\x0c\x68\xd3\x69\x04\x68\xdc\x69\x2a\x68\xec\x68\xea\x68\xf1\x69\x0f\x68\xd6\x68\xf7\x68\xeb\x68\xe4\x68\xf6\x69\x13\x69\x10\x68\xf3\x68\xe1\x69\x07\x68\xcc\x69\x08\x69\x70\x68\xb4\x69\x11\x68\xef\x68\xc6\x69\x14\x68\xf8\x68\xd0\x68\xfd\x68\xfc\x68\xe8\x69\x0b\x69\x0a\x69\x17\x68\xce\x68\xc8\x68\xdd\x68\xde\x68\xe6\x68\xf4\x68\xd1\x69\x06\x68\xd4\x68\xe9\x69\x15\x69\x25\x68\xc7\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x39\x6b\x3b\x6b\x3f\x6b\x3c\x6b\x94\x6b\x97\x6b\x99\x6b\x95\x6b\xbd\x6b\xf0\x6b\xf2\x6b\xf3\x6c\x30\x6d\xfc\x6e\x46\x6e\x47\x6e\x1f\x6e\x49\x6e\x88\x6e\x3c\x6e\x3d\x6e\x45\x6e\x62\x6e\x2b\x6e\x3f\x6e\x41\x6e\x5d\x6e\x73\x6e\x1c\x6e\x33\x6e\x4b\x6e\x40\x6e\x51\x6e\x3b\x6e\x03\x6e\x2e\x6e\x5e\x6e\x68\x6e\x5c\x6e\x61\x6e\x31\x6e\x28\x6e\x60\x6e\x71\x6e\x6b\x6e\x39\x6e\x22\x6e\x30\x6e\x53\x6e\x65\x6e\x27\x6e\x78\x6e\x64\x6e\x77\x6e\x55\x6e\x79\x6e\x52\x6e\x66\x6e\x35\x6e\x36\x6e\x5a\x71\x20\x71\x1e", /* 7780 */ "\x00\x00\x71\x2f\x70\xfb\x71\x2e\x71\x31\x71\x23\x71\x25\x71\x22\x71\x32\x71\x1f\x71\x28\x71\x3a\x71\x1b\x72\x4b\x72\x5a\x72\x88\x72\x89\x72\x86\x72\x85\x72\x8b\x73\x12\x73\x0b\x73\x30\x73\x22\x73\x31\x73\x33\x73\x27\x73\x32\x73\x2d\x73\x26\x73\x23\x73\x35\x73\x0c\x74\x2e\x74\x2c\x74\x30\x74\x2b\x74\x16\x74\x1a\x74\x21\x74\x2d\x74\x31\x74\x24\x74\x23\x74\x1d\x74\x29\x74\x20\x74\x32\x74\xfb\x75\x2f\x75\x6f\x75\x6c\x75\xe7\x75\xda\x75\xe1\x75\xe6\x75\xdd\x75\xdf\x75\xe4\x75\xd7\x76\x95\x76\x92\x76\xda\x77\x46\x77\x47\x77\x44\x77\x4d\x77\x45\x77\x4a\x77\x4e\x77\x4b\x77\x4c\x77\xde\x77\xec\x78\x60\x78\x64\x78\x65\x78\x5c\x78\x6d\x78\x71\x78\x6a\x78\x6e\x78\x70\x78\x69\x78\x68\x78\x5e\x78\x62\x79\x74\x79\x73\x79\x72\x79\x70\x7a\x02\x7a\x0a\x7a\x03\x7a\x0c\x7a\x04\x7a\x99\x7a\xe6\x7a\xe4\x7b\x4a\x7b\x3b\x7b\x44\x7b\x48\x7b\x4c\x7b\x4e\x7b\x40\x7b\x58\x7b\x45\x7c\xa2\x7c\x9e\x7c\xa8\x7c\xa1\x7d\x58\x7d\x6f\x7d\x63\x7d\x53\x7d\x56\x7d\x67\x7d\x6a\x7d\x4f\x7d\x6d\x7d\x5c\x7d\x6b\x7d\x52\x7d\x54\x7d\x69\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x51\x7d\x5f\x7d\x4e\x7f\x3e\x7f\x3f\x7f\x65\x7f\x66\x7f\xa2\x7f\xa0\x7f\xa1\x7f\xd7\x80\x51\x80\x4f\x80\x50\x80\xfe\x80\xd4\x81\x43\x81\x4a\x81\x52\x81\x4f\x81\x47\x81\x3d\x81\x4d\x81\x3a\x81\xe6\x81\xee\x81\xf7\x81\xf8\x81\xf9\x82\x04\x82\x3c\x82\x3d\x82\x3f\x82\x75\x83\x3b\x83\xcf\x83\xf9\x84\x23\x83\xc0\x83\xe8\x84\x12\x83\xe7\x83\xe4\x83\xfc\x83\xf6\x84\x10\x83\xc6\x83\xc8\x83\xeb\x83\xe3\x83\xbf\x84\x01\x83\xdd\x83\xe5\x83\xd8\x83\xff\x83\xe1\x83\xcb\x83\xce\x83\xd6\x83\xf5\x83\xc9\x84\x09", /* 7880 */ "\x00\x00\x84\x0f\x83\xde\x84\x11\x84\x06\x83\xc2\x83\xf3\x83\xd5\x83\xfa\x83\xc7\x83\xd1\x83\xea\x84\x13\x83\xc3\x83\xec\x83\xee\x83\xc4\x83\xfb\x83\xd7\x83\xe2\x84\x1b\x83\xdb\x83\xfe\x86\xd8\x86\xe2\x86\xe6\x86\xd3\x86\xe3\x86\xda\x86\xea\x86\xdd\x86\xeb\x86\xdc\x86\xec\x86\xe9\x86\xd7\x86\xe8\x86\xd1\x88\x48\x88\x56\x88\x55\x88\xba\x88\xd7\x88\xb9\x88\xb8\x88\xc0\x88\xbe\x88\xb6\x88\xbc\x88\xb7\x88\xbd\x88\xb2\x89\x01\x88\xc9\x89\x95\x89\x98\x89\x97\x89\xdd\x89\xda\x89\xdb\x8a\x4e\x8a\x4d\x8a\x39\x8a\x59\x8a\x40\x8a\x57\x8a\x58\x8a\x44\x8a\x45\x8a\x52\x8a\x48\x8a\x51\x8a\x4a\x8a\x4c\x8a\x4f\x8c\x5f\x8c\x81\x8c\x80\x8c\xba\x8c\xbe\x8c\xb0\x8c\xb9\x8c\xb5\x8d\x84\x8d\x80\x8d\x89\x8d\xd8\x8d\xd3\x8d\xcd\x8d\xc7\x8d\xd6\x8d\xdc\x8d\xcf\x8d\xd5\x8d\xd9\x8d\xc8\x8d\xd7\x8d\xc5\x8e\xef\x8e\xf7\x8e\xfa\x8e\xf9\x8e\xe6\x8e\xee\x8e\xe5\x8e\xf5\x8e\xe7\x8e\xe8\x8e\xf6\x8e\xeb\x8e\xf1\x8e\xec\x8e\xf4\x8e\xe9\x90\x2d\x90\x34\x90\x2f\x91\x06\x91\x2c\x91\x04\x90\xff\x90\xfc\x91\x08\x90\xf9\x90\xfb\x91\x01\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x00\x91\x07\x91\x05\x91\x03\x91\x61\x91\x64\x91\x5f\x91\x62\x91\x60\x92\x01\x92\x0a\x92\x25\x92\x03\x92\x1a\x92\x26\x92\x0f\x92\x0c\x92\x00\x92\x12\x91\xff\x91\xfd\x92\x06\x92\x04\x92\x27\x92\x02\x92\x1c\x92\x24\x92\x19\x92\x17\x92\x05\x92\x16\x95\x7b\x95\x8d\x95\x8c\x95\x90\x96\x87\x96\x7e\x96\x88\x96\x89\x96\x83\x96\x80\x96\xc2\x96\xc8\x96\xc3\x96\xf1\x96\xf0\x97\x6c\x97\x70\x97\x6e\x98\x07\x98\xa9\x98\xeb\x9c\xe6\x9e\xf9\x4e\x83\x4e\x84\x4e\xb6\x50\xbd\x50\xbf\x50\xc6\x50\xae\x50\xc4\x50\xca", /* 7980 */ "\x00\x00\x50\xb4\x50\xc8\x50\xc2\x50\xb0\x50\xc1\x50\xba\x50\xb1\x50\xcb\x50\xc9\x50\xb6\x50\xb8\x51\xd7\x52\x7a\x52\x78\x52\x7b\x52\x7c\x55\xc3\x55\xdb\x55\xcc\x55\xd0\x55\xcb\x55\xca\x55\xdd\x55\xc0\x55\xd4\x55\xc4\x55\xe9\x55\xbf\x55\xd2\x55\x8d\x55\xcf\x55\xd5\x55\xe2\x55\xd6\x55\xc8\x55\xf2\x55\xcd\x55\xd9\x55\xc2\x57\x14\x58\x53\x58\x68\x58\x64\x58\x4f\x58\x4d\x58\x49\x58\x6f\x58\x55\x58\x4e\x58\x5d\x58\x59\x58\x65\x58\x5b\x58\x3d\x58\x63\x58\x71\x58\xfc\x5a\xc7\x5a\xc4\x5a\xcb\x5a\xba\x5a\xb8\x5a\xb1\x5a\xb5\x5a\xb0\x5a\xbf\x5a\xc8\x5a\xbb\x5a\xc6\x5a\xb7\x5a\xc0\x5a\xca\x5a\xb4\x5a\xb6\x5a\xcd\x5a\xb9\x5a\x90\x5b\xd6\x5b\xd8\x5b\xd9\x5c\x1f\x5c\x33\x5d\x71\x5d\x63\x5d\x4a\x5d\x65\x5d\x72\x5d\x6c\x5d\x5e\x5d\x68\x5d\x67\x5d\x62\x5d\xf0\x5e\x4f\x5e\x4e\x5e\x4a\x5e\x4d\x5e\x4b\x5e\xc5\x5e\xcc\x5e\xc6\x5e\xcb\x5e\xc7\x5f\x40\x5f\xaf\x5f\xad\x60\xf7\x61\x49\x61\x4a\x61\x2b\x61\x45\x61\x36\x61\x32\x61\x2e\x61\x46\x61\x2f\x61\x4f\x61\x29\x61\x40\x62\x20\x91\x68\x62\x23\x62\x25\x62\x24\x63\xc5\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf1\x63\xeb\x64\x10\x64\x12\x64\x09\x64\x20\x64\x24\x64\x33\x64\x43\x64\x1f\x64\x15\x64\x18\x64\x39\x64\x37\x64\x22\x64\x23\x64\x0c\x64\x26\x64\x30\x64\x28\x64\x41\x64\x35\x64\x2f\x64\x0a\x64\x1a\x64\x40\x64\x25\x64\x27\x64\x0b\x63\xe7\x64\x1b\x64\x2e\x64\x21\x64\x0e\x65\x6f\x65\x92\x65\xd3\x66\x86\x66\x8c\x66\x95\x66\x90\x66\x8b\x66\x8a\x66\x99\x66\x94\x66\x78\x67\x20\x69\x66\x69\x5f\x69\x38\x69\x4e\x69\x62\x69\x71\x69\x3f\x69\x45\x69\x6a\x69\x39\x69\x42\x69\x57\x69\x59\x69\x7a\x69\x48\x69\x49", /* 7a80 */ "\x00\x00\x69\x35\x69\x6c\x69\x33\x69\x3d\x69\x65\x68\xf0\x69\x78\x69\x34\x69\x69\x69\x40\x69\x6f\x69\x44\x69\x76\x69\x58\x69\x41\x69\x74\x69\x4c\x69\x3b\x69\x4b\x69\x37\x69\x5c\x69\x4f\x69\x51\x69\x32\x69\x52\x69\x2f\x69\x7b\x69\x3c\x6b\x46\x6b\x45\x6b\x43\x6b\x42\x6b\x48\x6b\x41\x6b\x9b\xfa\x0d\x6b\xfb\x6b\xfc\x6b\xf9\x6b\xf7\x6b\xf8\x6e\x9b\x6e\xd6\x6e\xc8\x6e\x8f\x6e\xc0\x6e\x9f\x6e\x93\x6e\x94\x6e\xa0\x6e\xb1\x6e\xb9\x6e\xc6\x6e\xd2\x6e\xbd\x6e\xc1\x6e\x9e\x6e\xc9\x6e\xb7\x6e\xb0\x6e\xcd\x6e\xa6\x6e\xcf\x6e\xb2\x6e\xbe\x6e\xc3\x6e\xdc\x6e\xd8\x6e\x99\x6e\x92\x6e\x8e\x6e\x8d\x6e\xa4\x6e\xa1\x6e\xbf\x6e\xb3\x6e\xd0\x6e\xca\x6e\x97\x6e\xae\x6e\xa3\x71\x47\x71\x54\x71\x52\x71\x63\x71\x60\x71\x41\x71\x5d\x71\x62\x71\x72\x71\x78\x71\x6a\x71\x61\x71\x42\x71\x58\x71\x43\x71\x4b\x71\x70\x71\x5f\x71\x50\x71\x53\x71\x44\x71\x4d\x71\x5a\x72\x4f\x72\x8d\x72\x8c\x72\x91\x72\x90\x72\x8e\x73\x3c\x73\x42\x73\x3b\x73\x3a\x73\x40\x73\x4a\x73\x49\x74\x44\x74\x4a\x74\x4b\x74\x52\x74\x51\x74\x57\x74\x40\x74\x4f\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x50\x74\x4e\x74\x42\x74\x46\x74\x4d\x74\x54\x74\xe1\x74\xff\x74\xfe\x74\xfd\x75\x1d\x75\x79\x75\x77\x69\x83\x75\xef\x76\x0f\x76\x03\x75\xf7\x75\xfe\x75\xfc\x75\xf9\x75\xf8\x76\x10\x75\xfb\x75\xf6\x75\xed\x75\xf5\x75\xfd\x76\x99\x76\xb5\x76\xdd\x77\x55\x77\x5f\x77\x60\x77\x52\x77\x56\x77\x5a\x77\x69\x77\x67\x77\x54\x77\x59\x77\x6d\x77\xe0\x78\x87\x78\x9a\x78\x94\x78\x8f\x78\x84\x78\x95\x78\x85\x78\x86\x78\xa1\x78\x83\x78\x79\x78\x99\x78\x80\x78\x96\x78\x7b\x79\x7c\x79\x82\x79\x7d\x79\x79\x7a\x11", /* 7b80 */ "\x00\x00\x7a\x18\x7a\x19\x7a\x12\x7a\x17\x7a\x15\x7a\x22\x7a\x13\x7a\x1b\x7a\x10\x7a\xa3\x7a\xa2\x7a\x9e\x7a\xeb\x7b\x66\x7b\x64\x7b\x6d\x7b\x74\x7b\x69\x7b\x72\x7b\x65\x7b\x73\x7b\x71\x7b\x70\x7b\x61\x7b\x78\x7b\x76\x7b\x63\x7c\xb2\x7c\xb4\x7c\xaf\x7d\x88\x7d\x86\x7d\x80\x7d\x8d\x7d\x7f\x7d\x85\x7d\x7a\x7d\x8e\x7d\x7b\x7d\x83\x7d\x7c\x7d\x8c\x7d\x94\x7d\x84\x7d\x7d\x7d\x92\x7f\x6d\x7f\x6b\x7f\x67\x7f\x68\x7f\x6c\x7f\xa6\x7f\xa5\x7f\xa7\x7f\xdb\x7f\xdc\x80\x21\x81\x64\x81\x60\x81\x77\x81\x5c\x81\x69\x81\x5b\x81\x62\x81\x72\x67\x21\x81\x5e\x81\x76\x81\x67\x81\x6f\x81\x44\x81\x61\x82\x1d\x82\x49\x82\x44\x82\x40\x82\x42\x82\x45\x84\xf1\x84\x3f\x84\x56\x84\x76\x84\x79\x84\x8f\x84\x8d\x84\x65\x84\x51\x84\x40\x84\x86\x84\x67\x84\x30\x84\x4d\x84\x7d\x84\x5a\x84\x59\x84\x74\x84\x73\x84\x5d\x85\x07\x84\x5e\x84\x37\x84\x3a\x84\x34\x84\x7a\x84\x43\x84\x78\x84\x32\x84\x45\x84\x29\x83\xd9\x84\x4b\x84\x2f\x84\x42\x84\x2d\x84\x5f\x84\x70\x84\x39\x84\x4e\x84\x4c\x84\x52\x84\x6f\x84\xc5\x84\x8e\x84\x3b\x84\x47\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x36\x84\x33\x84\x68\x84\x7e\x84\x44\x84\x2b\x84\x60\x84\x54\x84\x6e\x84\x50\x87\x0b\x87\x04\x86\xf7\x87\x0c\x86\xfa\x86\xd6\x86\xf5\x87\x4d\x86\xf8\x87\x0e\x87\x09\x87\x01\x86\xf6\x87\x0d\x87\x05\x88\xd6\x88\xcb\x88\xcd\x88\xce\x88\xde\x88\xdb\x88\xda\x88\xcc\x88\xd0\x89\x85\x89\x9b\x89\xdf\x89\xe5\x89\xe4\x89\xe1\x89\xe0\x89\xe2\x89\xdc\x89\xe6\x8a\x76\x8a\x86\x8a\x7f\x8a\x61\x8a\x3f\x8a\x77\x8a\x82\x8a\x84\x8a\x75\x8a\x83\x8a\x81\x8a\x74\x8a\x7a\x8c\x3c\x8c\x4b\x8c\x4a\x8c\x65\x8c\x64\x8c\x66", /* 7c80 */ "\x00\x00\x8c\x86\x8c\x84\x8c\x85\x8c\xcc\x8d\x68\x8d\x69\x8d\x91\x8d\x8c\x8d\x8e\x8d\x8f\x8d\x8d\x8d\x93\x8d\x94\x8d\x90\x8d\x92\x8d\xf0\x8d\xe0\x8d\xec\x8d\xf1\x8d\xee\x8d\xd0\x8d\xe9\x8d\xe3\x8d\xe2\x8d\xe7\x8d\xf2\x8d\xeb\x8d\xf4\x8f\x06\x8e\xff\x8f\x01\x8f\x00\x8f\x05\x8f\x07\x8f\x08\x8f\x02\x8f\x0b\x90\x52\x90\x3f\x90\x44\x90\x49\x90\x3d\x91\x10\x91\x0d\x91\x0f\x91\x11\x91\x16\x91\x14\x91\x0b\x91\x0e\x91\x6e\x91\x6f\x92\x48\x92\x52\x92\x30\x92\x3a\x92\x66\x92\x33\x92\x65\x92\x5e\x92\x83\x92\x2e\x92\x4a\x92\x46\x92\x6d\x92\x6c\x92\x4f\x92\x60\x92\x67\x92\x6f\x92\x36\x92\x61\x92\x70\x92\x31\x92\x54\x92\x63\x92\x50\x92\x72\x92\x4e\x92\x53\x92\x4c\x92\x56\x92\x32\x95\x9f\x95\x9c\x95\x9e\x95\x9b\x96\x92\x96\x93\x96\x91\x96\x97\x96\xce\x96\xfa\x96\xfd\x96\xf8\x96\xf5\x97\x73\x97\x77\x97\x78\x97\x72\x98\x0f\x98\x0d\x98\x0e\x98\xac\x98\xf6\x98\xf9\x99\xaf\x99\xb2\x99\xb0\x99\xb5\x9a\xad\x9a\xab\x9b\x5b\x9c\xea\x9c\xed\x9c\xe7\x9e\x80\x9e\xfd\x50\xe6\x50\xd4\x50\xd7\x50\xe8\x50\xf3\x50\xdb\x50\xea\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdd\x50\xe4\x50\xd3\x50\xec\x50\xf0\x50\xef\x50\xe3\x50\xe0\x51\xd8\x52\x80\x52\x81\x52\xe9\x52\xeb\x53\x30\x53\xac\x56\x27\x56\x15\x56\x0c\x56\x12\x55\xfc\x56\x0f\x56\x1c\x56\x01\x56\x13\x56\x02\x55\xfa\x56\x1d\x56\x04\x55\xff\x55\xf9\x58\x89\x58\x7c\x58\x90\x58\x98\x58\x86\x58\x81\x58\x7f\x58\x74\x58\x8b\x58\x7a\x58\x87\x58\x91\x58\x8e\x58\x76\x58\x82\x58\x88\x58\x7b\x58\x94\x58\x8f\x58\xfe\x59\x6b\x5a\xdc\x5a\xee\x5a\xe5\x5a\xd5\x5a\xea\x5a\xda\x5a\xed\x5a\xeb\x5a\xf3\x5a\xe2\x5a\xe0\x5a\xdb", /* 7d80 */ "\x00\x00\x5a\xec\x5a\xde\x5a\xdd\x5a\xd9\x5a\xe8\x5a\xdf\x5b\x77\x5b\xe0\x5b\xe3\x5c\x63\x5d\x82\x5d\x80\x5d\x7d\x5d\x86\x5d\x7a\x5d\x81\x5d\x77\x5d\x8a\x5d\x89\x5d\x88\x5d\x7e\x5d\x7c\x5d\x8d\x5d\x79\x5d\x7f\x5e\x58\x5e\x59\x5e\x53\x5e\xd8\x5e\xd1\x5e\xd7\x5e\xce\x5e\xdc\x5e\xd5\x5e\xd9\x5e\xd2\x5e\xd4\x5f\x44\x5f\x43\x5f\x6f\x5f\xb6\x61\x2c\x61\x28\x61\x41\x61\x5e\x61\x71\x61\x73\x61\x52\x61\x53\x61\x72\x61\x6c\x61\x80\x61\x74\x61\x54\x61\x7a\x61\x5b\x61\x65\x61\x3b\x61\x6a\x61\x61\x61\x56\x62\x29\x62\x27\x62\x2b\x64\x2b\x64\x4d\x64\x5b\x64\x5d\x64\x74\x64\x76\x64\x72\x64\x73\x64\x7d\x64\x75\x64\x66\x64\xa6\x64\x4e\x64\x82\x64\x5e\x64\x5c\x64\x4b\x64\x53\x64\x60\x64\x50\x64\x7f\x64\x3f\x64\x6c\x64\x6b\x64\x59\x64\x65\x64\x77\x65\x73\x65\xa0\x66\xa1\x66\xa0\x66\x9f\x67\x05\x67\x04\x67\x22\x69\xb1\x69\xb6\x69\xc9\x69\xa0\x69\xce\x69\x96\x69\xb0\x69\xac\x69\xbc\x69\x91\x69\x99\x69\x8e\x69\xa7\x69\x8d\x69\xa9\x69\xbe\x69\xaf\x69\xbf\x69\xc4\x69\xbd\x69\xa4\x69\xd4\x69\xb9\x69\xca\x69\x9a\x69\xcf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xb3\x69\x93\x69\xaa\x69\xa1\x69\x9e\x69\xd9\x69\x97\x69\x90\x69\xc2\x69\xb5\x69\xa5\x69\xc6\x6b\x4a\x6b\x4d\x6b\x4b\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xc3\x6b\xc4\x6b\xfe\x6e\xce\x6e\xf5\x6e\xf1\x6f\x03\x6f\x25\x6e\xf8\x6f\x37\x6e\xfb\x6f\x2e\x6f\x09\x6f\x4e\x6f\x19\x6f\x1a\x6f\x27\x6f\x18\x6f\x3b\x6f\x12\x6e\xed\x6f\x0a\x6f\x36\x6f\x73\x6e\xf9\x6e\xee\x6f\x2d\x6f\x40\x6f\x30\x6f\x3c\x6f\x35\x6e\xeb\x6f\x07\x6f\x0e\x6f\x43\x6f\x05\x6e\xfd\x6e\xf6\x6f\x39\x6f\x1c\x6e\xfc\x6f\x3a\x6f\x1f\x6f\x0d\x6f\x1e", /* 7e80 */ "\x00\x00\x6f\x08\x6f\x21\x71\x87\x71\x90\x71\x89\x71\x80\x71\x85\x71\x82\x71\x8f\x71\x7b\x71\x86\x71\x81\x71\x97\x72\x44\x72\x53\x72\x97\x72\x95\x72\x93\x73\x43\x73\x4d\x73\x51\x73\x4c\x74\x62\x74\x73\x74\x71\x74\x75\x74\x72\x74\x67\x74\x6e\x75\x00\x75\x02\x75\x03\x75\x7d\x75\x90\x76\x16\x76\x08\x76\x0c\x76\x15\x76\x11\x76\x0a\x76\x14\x76\xb8\x77\x81\x77\x7c\x77\x85\x77\x82\x77\x6e\x77\x80\x77\x6f\x77\x7e\x77\x83\x78\xb2\x78\xaa\x78\xb4\x78\xad\x78\xa8\x78\x7e\x78\xab\x78\x9e\x78\xa5\x78\xa0\x78\xac\x78\xa2\x78\xa4\x79\x98\x79\x8a\x79\x8b\x79\x96\x79\x95\x79\x94\x79\x93\x79\x97\x79\x88\x79\x92\x79\x90\x7a\x2b\x7a\x4a\x7a\x30\x7a\x2f\x7a\x28\x7a\x26\x7a\xa8\x7a\xab\x7a\xac\x7a\xee\x7b\x88\x7b\x9c\x7b\x8a\x7b\x91\x7b\x90\x7b\x96\x7b\x8d\x7b\x8c\x7b\x9b\x7b\x8e\x7b\x85\x7b\x98\x52\x84\x7b\x99\x7b\xa4\x7b\x82\x7c\xbb\x7c\xbf\x7c\xbc\x7c\xba\x7d\xa7\x7d\xb7\x7d\xc2\x7d\xa3\x7d\xaa\x7d\xc1\x7d\xc0\x7d\xc5\x7d\x9d\x7d\xce\x7d\xc4\x7d\xc6\x7d\xcb\x7d\xcc\x7d\xaf\x7d\xb9\x7d\x96\x7d\xbc\x7d\x9f\x7d\xa6\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xae\x7d\xa9\x7d\xa1\x7d\xc9\x7f\x73\x7f\xe2\x7f\xe3\x7f\xe5\x7f\xde\x80\x24\x80\x5d\x80\x5c\x81\x89\x81\x86\x81\x83\x81\x87\x81\x8d\x81\x8c\x81\x8b\x82\x15\x84\x97\x84\xa4\x84\xa1\x84\x9f\x84\xba\x84\xce\x84\xc2\x84\xac\x84\xae\x84\xab\x84\xb9\x84\xb4\x84\xc1\x84\xcd\x84\xaa\x84\x9a\x84\xb1\x84\xd0\x84\x9d\x84\xa7\x84\xbb\x84\xa2\x84\x94\x84\xc7\x84\xcc\x84\x9b\x84\xa9\x84\xaf\x84\xa8\x84\xd6\x84\x98\x84\xb6\x84\xcf\x84\xa0\x84\xd7\x84\xd4\x84\xd2\x84\xdb\x84\xb0\x84\x91\x86\x61\x87\x33\x87\x23", /* 7f80 */ "\x00\x00\x87\x28\x87\x6b\x87\x40\x87\x2e\x87\x1e\x87\x21\x87\x19\x87\x1b\x87\x43\x87\x2c\x87\x41\x87\x3e\x87\x46\x87\x20\x87\x32\x87\x2a\x87\x2d\x87\x3c\x87\x12\x87\x3a\x87\x31\x87\x35\x87\x42\x87\x26\x87\x27\x87\x38\x87\x24\x87\x1a\x87\x30\x87\x11\x88\xf7\x88\xe7\x88\xf1\x88\xf2\x88\xfa\x88\xfe\x88\xee\x88\xfc\x88\xf6\x88\xfb\x88\xf0\x88\xec\x88\xeb\x89\x9d\x89\xa1\x89\x9f\x89\x9e\x89\xe9\x89\xeb\x89\xe8\x8a\xab\x8a\x99\x8a\x8b\x8a\x92\x8a\x8f\x8a\x96\x8c\x3d\x8c\x68\x8c\x69\x8c\xd5\x8c\xcf\x8c\xd7\x8d\x96\x8e\x09\x8e\x02\x8d\xff\x8e\x0d\x8d\xfd\x8e\x0a\x8e\x03\x8e\x07\x8e\x06\x8e\x05\x8d\xfe\x8e\x00\x8e\x04\x8f\x10\x8f\x11\x8f\x0e\x8f\x0d\x91\x23\x91\x1c\x91\x20\x91\x22\x91\x1f\x91\x1d\x91\x1a\x91\x24\x91\x21\x91\x1b\x91\x7a\x91\x72\x91\x79\x91\x73\x92\xa5\x92\xa4\x92\x76\x92\x9b\x92\x7a\x92\xa0\x92\x94\x92\xaa\x92\x8d\x92\xa6\x92\x9a\x92\xab\x92\x79\x92\x97\x92\x7f\x92\xa3\x92\xee\x92\x8e\x92\x82\x92\x95\x92\xa2\x92\x7d\x92\x88\x92\xa1\x92\x8a\x92\x86\x92\x8c\x92\x99\x92\xa7\x92\x7e\x92\x87\x00\x00\x00\x00", /* 8000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\xa9\x92\x9d\x92\x8b\x92\x2d\x96\x9e\x96\xa1\x96\xff\x97\x58\x97\x7d\x97\x7a\x97\x7e\x97\x83\x97\x80\x97\x82\x97\x7b\x97\x84\x97\x81\x97\x7f\x97\xce\x97\xcd\x98\x16\x98\xad\x98\xae\x99\x02\x99\x00\x99\x07\x99\x9d\x99\x9c\x99\xc3\x99\xb9\x99\xbb\x99\xba\x99\xc2\x99\xbd\x99\xc7\x9a\xb1\x9a\xe3\x9a\xe7\x9b\x3e\x9b\x3f\x9b\x60\x9b\x61\x9b\x5f\x9c\xf1\x9c\xf2\x9c\xf5\x9e\xa7\x50\xff\x51\x03\x51\x30\x50\xf8\x51\x06\x51\x07\x50\xf6\x50\xfe\x51\x0b\x51\x0c\x50\xfd\x51\x0a\x52\x8b\x52\x8c\x52\xf1\x52\xef", /* 8080 */ "\x00\x00\x56\x48\x56\x42\x56\x4c\x56\x35\x56\x41\x56\x4a\x56\x49\x56\x46\x56\x58\x56\x5a\x56\x40\x56\x33\x56\x3d\x56\x2c\x56\x3e\x56\x38\x56\x2a\x56\x3a\x57\x1a\x58\xab\x58\x9d\x58\xb1\x58\xa0\x58\xa3\x58\xaf\x58\xac\x58\xa5\x58\xa1\x58\xff\x5a\xff\x5a\xf4\x5a\xfd\x5a\xf7\x5a\xf6\x5b\x03\x5a\xf8\x5b\x02\x5a\xf9\x5b\x01\x5b\x07\x5b\x05\x5b\x0f\x5c\x67\x5d\x99\x5d\x97\x5d\x9f\x5d\x92\x5d\xa2\x5d\x93\x5d\x95\x5d\xa0\x5d\x9c\x5d\xa1\x5d\x9a\x5d\x9e\x5e\x69\x5e\x5d\x5e\x60\x5e\x5c\x7d\xf3\x5e\xdb\x5e\xde\x5e\xe1\x5f\x49\x5f\xb2\x61\x8b\x61\x83\x61\x79\x61\xb1\x61\xb0\x61\xa2\x61\x89\x61\x9b\x61\x93\x61\xaf\x61\xad\x61\x9f\x61\x92\x61\xaa\x61\xa1\x61\x8d\x61\x66\x61\xb3\x62\x2d\x64\x6e\x64\x70\x64\x96\x64\xa0\x64\x85\x64\x97\x64\x9c\x64\x8f\x64\x8b\x64\x8a\x64\x8c\x64\xa3\x64\x9f\x64\x68\x64\xb1\x64\x98\x65\x76\x65\x7a\x65\x79\x65\x7b\x65\xb2\x65\xb3\x66\xb5\x66\xb0\x66\xa9\x66\xb2\x66\xb7\x66\xaa\x66\xaf\x6a\x00\x6a\x06\x6a\x17\x69\xe5\x69\xf8\x6a\x15\x69\xf1\x69\xe4\x6a\x20\x69\xff\x69\xec\x69\xe2\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1b\x6a\x1d\x69\xfe\x6a\x27\x69\xf2\x69\xee\x6a\x14\x69\xf7\x69\xe7\x6a\x40\x6a\x08\x69\xe6\x69\xfb\x6a\x0d\x69\xfc\x69\xeb\x6a\x09\x6a\x04\x6a\x18\x6a\x25\x6a\x0f\x69\xf6\x6a\x26\x6a\x07\x69\xf4\x6a\x16\x6b\x51\x6b\xa5\x6b\xa3\x6b\xa2\x6b\xa6\x6c\x01\x6c\x00\x6b\xff\x6c\x02\x6f\x41\x6f\x26\x6f\x7e\x6f\x87\x6f\xc6\x6f\x92\x6f\x8d\x6f\x89\x6f\x8c\x6f\x62\x6f\x4f\x6f\x85\x6f\x5a\x6f\x96\x6f\x76\x6f\x6c\x6f\x82\x6f\x55\x6f\x72\x6f\x52\x6f\x50\x6f\x57\x6f\x94\x6f\x93\x6f\x5d\x6f\x00\x6f\x61\x6f\x6b", /* 8180 */ "\x00\x00\x6f\x7d\x6f\x67\x6f\x90\x6f\x53\x6f\x8b\x6f\x69\x6f\x7f\x6f\x95\x6f\x63\x6f\x77\x6f\x6a\x6f\x7b\x71\xb2\x71\xaf\x71\x9b\x71\xb0\x71\xa0\x71\x9a\x71\xa9\x71\xb5\x71\x9d\x71\xa5\x71\x9e\x71\xa4\x71\xa1\x71\xaa\x71\x9c\x71\xa7\x71\xb3\x72\x98\x72\x9a\x73\x58\x73\x52\x73\x5e\x73\x5f\x73\x60\x73\x5d\x73\x5b\x73\x61\x73\x5a\x73\x59\x73\x62\x74\x87\x74\x89\x74\x8a\x74\x86\x74\x81\x74\x7d\x74\x85\x74\x88\x74\x7c\x74\x79\x75\x08\x75\x07\x75\x7e\x76\x25\x76\x1e\x76\x19\x76\x1d\x76\x1c\x76\x23\x76\x1a\x76\x28\x76\x1b\x76\x9c\x76\x9d\x76\x9e\x76\x9b\x77\x8d\x77\x8f\x77\x89\x77\x88\x78\xcd\x78\xbb\x78\xcf\x78\xcc\x78\xd1\x78\xce\x78\xd4\x78\xc8\x78\xc3\x78\xc4\x78\xc9\x79\x9a\x79\xa1\x79\xa0\x79\x9c\x79\xa2\x79\x9b\x6b\x76\x7a\x39\x7a\xb2\x7a\xb4\x7a\xb3\x7b\xb7\x7b\xcb\x7b\xbe\x7b\xac\x7b\xce\x7b\xaf\x7b\xb9\x7b\xca\x7b\xb5\x7c\xc5\x7c\xc8\x7c\xcc\x7c\xcb\x7d\xf7\x7d\xdb\x7d\xea\x7d\xe7\x7d\xd7\x7d\xe1\x7e\x03\x7d\xfa\x7d\xe6\x7d\xf6\x7d\xf1\x7d\xf0\x7d\xee\x7d\xdf\x7f\x76\x7f\xac\x7f\xb0\x7f\xad\x00\x00\x00\x00", /* 8200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xed\x7f\xeb\x7f\xea\x7f\xec\x7f\xe6\x7f\xe8\x80\x64\x80\x67\x81\xa3\x81\x9f\x81\x9e\x81\x95\x81\xa2\x81\x99\x81\x97\x82\x16\x82\x4f\x82\x53\x82\x52\x82\x50\x82\x4e\x82\x51\x85\x24\x85\x3b\x85\x0f\x85\x00\x85\x29\x85\x0e\x85\x09\x85\x0d\x85\x1f\x85\x0a\x85\x27\x85\x1c\x84\xfb\x85\x2b\x84\xfa\x85\x08\x85\x0c\x84\xf4\x85\x2a\x84\xf2\x85\x15\x84\xf7\x84\xeb\x84\xf3\x84\xfc\x85\x12\x84\xea\x84\xe9\x85\x16\x84\xfe\x85\x28\x85\x1d\x85\x2e\x85\x02\x84\xfd\x85\x1e\x84\xf6\x85\x31\x85\x26\x84\xe7\x84\xe8", /* 8280 */ "\x00\x00\x84\xf0\x84\xef\x84\xf9\x85\x18\x85\x20\x85\x30\x85\x0b\x85\x19\x85\x2f\x86\x62\x87\x56\x87\x63\x87\x64\x87\x77\x87\xe1\x87\x73\x87\x58\x87\x54\x87\x5b\x87\x52\x87\x61\x87\x5a\x87\x51\x87\x5e\x87\x6d\x87\x6a\x87\x50\x87\x4e\x87\x5f\x87\x5d\x87\x6f\x87\x6c\x87\x7a\x87\x6e\x87\x5c\x87\x65\x87\x4f\x87\x7b\x87\x75\x87\x62\x87\x67\x87\x69\x88\x5a\x89\x05\x89\x0c\x89\x14\x89\x0b\x89\x17\x89\x18\x89\x19\x89\x06\x89\x16\x89\x11\x89\x0e\x89\x09\x89\xa2\x89\xa4\x89\xa3\x89\xed\x89\xf0\x89\xec\x8a\xcf\x8a\xc6\x8a\xb8\x8a\xd3\x8a\xd1\x8a\xd4\x8a\xd5\x8a\xbb\x8a\xd7\x8a\xbe\x8a\xc0\x8a\xc5\x8a\xd8\x8a\xc3\x8a\xba\x8a\xbd\x8a\xd9\x8c\x3e\x8c\x4d\x8c\x8f\x8c\xe5\x8c\xdf\x8c\xd9\x8c\xe8\x8c\xda\x8c\xdd\x8c\xe7\x8d\xa0\x8d\x9c\x8d\xa1\x8d\x9b\x8e\x20\x8e\x23\x8e\x25\x8e\x24\x8e\x2e\x8e\x15\x8e\x1b\x8e\x16\x8e\x11\x8e\x19\x8e\x26\x8e\x27\x8e\x14\x8e\x12\x8e\x18\x8e\x13\x8e\x1c\x8e\x17\x8e\x1a\x8f\x2c\x8f\x24\x8f\x18\x8f\x1a\x8f\x20\x8f\x23\x8f\x16\x8f\x17\x90\x73\x90\x70\x90\x6f\x90\x67\x90\x6b\x91\x2f\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x2b\x91\x29\x91\x2a\x91\x32\x91\x26\x91\x2e\x91\x85\x91\x86\x91\x8a\x91\x81\x91\x82\x91\x84\x91\x80\x92\xd0\x92\xc3\x92\xc4\x92\xc0\x92\xd9\x92\xb6\x92\xcf\x92\xf1\x92\xdf\x92\xd8\x92\xe9\x92\xd7\x92\xdd\x92\xcc\x92\xef\x92\xc2\x92\xe8\x92\xca\x92\xc8\x92\xce\x92\xe6\x92\xcd\x92\xd5\x92\xc9\x92\xe0\x92\xde\x92\xe7\x92\xd1\x92\xd3\x92\xb5\x92\xe1\x92\xc6\x92\xb4\x95\x7c\x95\xac\x95\xab\x95\xae\x95\xb0\x96\xa4\x96\xa2\x96\xd3\x97\x05\x97\x08\x97\x02\x97\x5a\x97\x8a\x97\x8e\x97\x88\x97\xd0\x97\xcf", /* 8380 */ "\x00\x00\x98\x1e\x98\x1d\x98\x26\x98\x29\x98\x28\x98\x20\x98\x1b\x98\x27\x98\xb2\x99\x08\x98\xfa\x99\x11\x99\x14\x99\x16\x99\x17\x99\x15\x99\xdc\x99\xcd\x99\xcf\x99\xd3\x99\xd4\x99\xce\x99\xc9\x99\xd6\x99\xd8\x99\xcb\x99\xd7\x99\xcc\x9a\xb3\x9a\xec\x9a\xeb\x9a\xf3\x9a\xf2\x9a\xf1\x9b\x46\x9b\x43\x9b\x67\x9b\x74\x9b\x71\x9b\x66\x9b\x76\x9b\x75\x9b\x70\x9b\x68\x9b\x64\x9b\x6c\x9c\xfc\x9c\xfa\x9c\xfd\x9c\xff\x9c\xf7\x9d\x07\x9d\x00\x9c\xf9\x9c\xfb\x9d\x08\x9d\x05\x9d\x04\x9e\x83\x9e\xd3\x9f\x0f\x9f\x10\x51\x1c\x51\x13\x51\x17\x51\x1a\x51\x11\x51\xde\x53\x34\x53\xe1\x56\x70\x56\x60\x56\x6e\x56\x73\x56\x66\x56\x63\x56\x6d\x56\x72\x56\x5e\x56\x77\x57\x1c\x57\x1b\x58\xc8\x58\xbd\x58\xc9\x58\xbf\x58\xba\x58\xc2\x58\xbc\x58\xc6\x5b\x17\x5b\x19\x5b\x1b\x5b\x21\x5b\x14\x5b\x13\x5b\x10\x5b\x16\x5b\x28\x5b\x1a\x5b\x20\x5b\x1e\x5b\xef\x5d\xac\x5d\xb1\x5d\xa9\x5d\xa7\x5d\xb5\x5d\xb0\x5d\xae\x5d\xaa\x5d\xa8\x5d\xb2\x5d\xad\x5d\xaf\x5d\xb4\x5e\x67\x5e\x68\x5e\x66\x5e\x6f\x5e\xe9\x5e\xe7\x5e\xe6\x5e\xe8\x5e\xe5\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4b\x5f\xbc\x61\x9d\x61\xa8\x61\x96\x61\xc5\x61\xb4\x61\xc6\x61\xc1\x61\xcc\x61\xba\x61\xbf\x61\xb8\x61\x8c\x64\xd7\x64\xd6\x64\xd0\x64\xcf\x64\xc9\x64\xbd\x64\x89\x64\xc3\x64\xdb\x64\xf3\x64\xd9\x65\x33\x65\x7f\x65\x7c\x65\xa2\x66\xc8\x66\xbe\x66\xc0\x66\xca\x66\xcb\x66\xcf\x66\xbd\x66\xbb\x66\xba\x66\xcc\x67\x23\x6a\x34\x6a\x66\x6a\x49\x6a\x67\x6a\x32\x6a\x68\x6a\x3e\x6a\x5d\x6a\x6d\x6a\x76\x6a\x5b\x6a\x51\x6a\x28\x6a\x5a\x6a\x3b\x6a\x3f\x6a\x41\x6a\x6a\x6a\x64\x6a\x50\x6a\x4f\x6a\x54\x6a\x6f", /* 8480 */ "\x00\x00\x6a\x69\x6a\x60\x6a\x3c\x6a\x5e\x6a\x56\x6a\x55\x6a\x4d\x6a\x4e\x6a\x46\x6b\x55\x6b\x54\x6b\x56\x6b\xa7\x6b\xaa\x6b\xab\x6b\xc8\x6b\xc7\x6c\x04\x6c\x03\x6c\x06\x6f\xad\x6f\xcb\x6f\xa3\x6f\xc7\x6f\xbc\x6f\xce\x6f\xc8\x6f\x5e\x6f\xc4\x6f\xbd\x6f\x9e\x6f\xca\x6f\xa8\x70\x04\x6f\xa5\x6f\xae\x6f\xba\x6f\xac\x6f\xaa\x6f\xcf\x6f\xbf\x6f\xb8\x6f\xa2\x6f\xc9\x6f\xab\x6f\xcd\x6f\xaf\x6f\xb2\x6f\xb0\x71\xc5\x71\xc2\x71\xbf\x71\xb8\x71\xd6\x71\xc0\x71\xc1\x71\xcb\x71\xd4\x71\xca\x71\xc7\x71\xcf\x71\xbd\x71\xd8\x71\xbc\x71\xc6\x71\xda\x71\xdb\x72\x9d\x72\x9e\x73\x69\x73\x66\x73\x67\x73\x6c\x73\x65\x73\x6b\x73\x6a\x74\x7f\x74\x9a\x74\xa0\x74\x94\x74\x92\x74\x95\x74\xa1\x75\x0b\x75\x80\x76\x2f\x76\x2d\x76\x31\x76\x3d\x76\x33\x76\x3c\x76\x35\x76\x32\x76\x30\x76\xbb\x76\xe6\x77\x9a\x77\x9d\x77\xa1\x77\x9c\x77\x9b\x77\xa2\x77\xa3\x77\x95\x77\x99\x77\x97\x78\xdd\x78\xe9\x78\xe5\x78\xea\x78\xde\x78\xe3\x78\xdb\x78\xe1\x78\xe2\x78\xed\x78\xdf\x78\xe0\x79\xa4\x7a\x44\x7a\x48\x7a\x47\x7a\xb6\x7a\xb8\x7a\xb5\x00\x00\x00\x00", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xb1\x7a\xb7\x7b\xde\x7b\xe3\x7b\xe7\x7b\xdd\x7b\xd5\x7b\xe5\x7b\xda\x7b\xe8\x7b\xf9\x7b\xd4\x7b\xea\x7b\xe2\x7b\xdc\x7b\xeb\x7b\xd8\x7b\xdf\x7c\xd2\x7c\xd4\x7c\xd7\x7c\xd0\x7c\xd1\x7e\x12\x7e\x21\x7e\x17\x7e\x0c\x7e\x1f\x7e\x20\x7e\x13\x7e\x0e\x7e\x1c\x7e\x15\x7e\x1a\x7e\x22\x7e\x0b\x7e\x0f\x7e\x16\x7e\x0d\x7e\x14\x7e\x25\x7e\x24\x7f\x43\x7f\x7b\x7f\x7c\x7f\x7a\x7f\xb1\x7f\xef\x80\x2a\x80\x29\x80\x6c\x81\xb1\x81\xa6\x81\xae\x81\xb9\x81\xb5\x81\xab\x81\xb0\x81\xac\x81\xb4\x81\xb2\x81\xb7\x81\xa7", /* 8580 */ "\x00\x00\x81\xf2\x82\x55\x82\x56\x82\x57\x85\x56\x85\x45\x85\x6b\x85\x4d\x85\x53\x85\x61\x85\x58\x85\x40\x85\x46\x85\x64\x85\x41\x85\x62\x85\x44\x85\x51\x85\x47\x85\x63\x85\x3e\x85\x5b\x85\x71\x85\x4e\x85\x6e\x85\x75\x85\x55\x85\x67\x85\x60\x85\x8c\x85\x66\x85\x5d\x85\x54\x85\x65\x85\x6c\x86\x63\x86\x65\x86\x64\x87\x9b\x87\x8f\x87\x97\x87\x93\x87\x92\x87\x88\x87\x81\x87\x96\x87\x98\x87\x79\x87\x87\x87\xa3\x87\x85\x87\x90\x87\x91\x87\x9d\x87\x84\x87\x94\x87\x9c\x87\x9a\x87\x89\x89\x1e\x89\x26\x89\x30\x89\x2d\x89\x2e\x89\x27\x89\x31\x89\x22\x89\x29\x89\x23\x89\x2f\x89\x2c\x89\x1f\x89\xf1\x8a\xe0\x8a\xe2\x8a\xf2\x8a\xf4\x8a\xf5\x8a\xdd\x8b\x14\x8a\xe4\x8a\xdf\x8a\xf0\x8a\xc8\x8a\xde\x8a\xe1\x8a\xe8\x8a\xff\x8a\xef\x8a\xfb\x8c\x91\x8c\x92\x8c\x90\x8c\xf5\x8c\xee\x8c\xf1\x8c\xf0\x8c\xf3\x8d\x6c\x8d\x6e\x8d\xa5\x8d\xa7\x8e\x33\x8e\x3e\x8e\x38\x8e\x40\x8e\x45\x8e\x36\x8e\x3c\x8e\x3d\x8e\x41\x8e\x30\x8e\x3f\x8e\xbd\x8f\x36\x8f\x2e\x8f\x35\x8f\x32\x8f\x39\x8f\x37\x8f\x34\x90\x76\x90\x79\x90\x7b\x90\x86\x00\x00\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xfa\x91\x33\x91\x35\x91\x36\x91\x93\x91\x90\x91\x91\x91\x8d\x91\x8f\x93\x27\x93\x1e\x93\x08\x93\x1f\x93\x06\x93\x0f\x93\x7a\x93\x38\x93\x3c\x93\x1b\x93\x23\x93\x12\x93\x01\x93\x46\x93\x2d\x93\x0e\x93\x0d\x92\xcb\x93\x1d\x92\xfa\x93\x25\x93\x13\x92\xf9\x92\xf7\x93\x34\x93\x02\x93\x24\x92\xff\x93\x29\x93\x39\x93\x35\x93\x2a\x93\x14\x93\x0c\x93\x0b\x92\xfe\x93\x09\x93\x00\x92\xfb\x93\x16\x95\xbc\x95\xcd\x95\xbe\x95\xb9\x95\xba\x95\xb6\x95\xbf\x95\xb5\x95\xbd\x96\xa9\x96\xd4\x97\x0b\x97\x12\x97\x10", /* 8680 */ "\x00\x00\x97\x99\x97\x97\x97\x94\x97\xf0\x97\xf8\x98\x35\x98\x2f\x98\x32\x99\x24\x99\x1f\x99\x27\x99\x29\x99\x9e\x99\xee\x99\xec\x99\xe5\x99\xe4\x99\xf0\x99\xe3\x99\xea\x99\xe9\x99\xe7\x9a\xb9\x9a\xbf\x9a\xb4\x9a\xbb\x9a\xf6\x9a\xfa\x9a\xf9\x9a\xf7\x9b\x33\x9b\x80\x9b\x85\x9b\x87\x9b\x7c\x9b\x7e\x9b\x7b\x9b\x82\x9b\x93\x9b\x92\x9b\x90\x9b\x7a\x9b\x95\x9b\x7d\x9b\x88\x9d\x25\x9d\x17\x9d\x20\x9d\x1e\x9d\x14\x9d\x29\x9d\x1d\x9d\x18\x9d\x22\x9d\x10\x9d\x19\x9d\x1f\x9e\x88\x9e\x86\x9e\x87\x9e\xae\x9e\xad\x9e\xd5\x9e\xd6\x9e\xfa\x9f\x12\x9f\x3d\x51\x26\x51\x25\x51\x22\x51\x24\x51\x20\x51\x29\x52\xf4\x56\x93\x56\x8c\x56\x8d\x56\x86\x56\x84\x56\x83\x56\x7e\x56\x82\x56\x7f\x56\x81\x58\xd6\x58\xd4\x58\xcf\x58\xd2\x5b\x2d\x5b\x25\x5b\x32\x5b\x23\x5b\x2c\x5b\x27\x5b\x26\x5b\x2f\x5b\x2e\x5b\x7b\x5b\xf1\x5b\xf2\x5d\xb7\x5e\x6c\x5e\x6a\x5f\xbe\x5f\xbb\x61\xc3\x61\xb5\x61\xbc\x61\xe7\x61\xe0\x61\xe5\x61\xe4\x61\xe8\x61\xde\x64\xef\x64\xe9\x64\xe3\x64\xeb\x64\xe4\x64\xe8\x65\x81\x65\x80\x65\xb6\x65\xda\x66\xd2\x00\x00\x00\x00", /* 8700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8d\x6a\x96\x6a\x81\x6a\xa5\x6a\x89\x6a\x9f\x6a\x9b\x6a\xa1\x6a\x9e\x6a\x87\x6a\x93\x6a\x8e\x6a\x95\x6a\x83\x6a\xa8\x6a\xa4\x6a\x91\x6a\x7f\x6a\xa6\x6a\x9a\x6a\x85\x6a\x8c\x6a\x92\x6b\x5b\x6b\xad\x6c\x09\x6f\xcc\x6f\xa9\x6f\xf4\x6f\xd4\x6f\xe3\x6f\xdc\x6f\xed\x6f\xe7\x6f\xe6\x6f\xde\x6f\xf2\x6f\xdd\x6f\xe2\x6f\xe8\x71\xe1\x71\xf1\x71\xe8\x71\xf2\x71\xe4\x71\xf0\x71\xe2\x73\x73\x73\x6e\x73\x6f\x74\x97\x74\xb2\x74\xab\x74\x90\x74\xaa\x74\xad\x74\xb1\x74\xa5\x74\xaf\x75\x10\x75\x11\x75\x12\x75\x0f", /* 8780 */ "\x00\x00\x75\x84\x76\x43\x76\x48\x76\x49\x76\x47\x76\xa4\x76\xe9\x77\xb5\x77\xab\x77\xb2\x77\xb7\x77\xb6\x77\xb4\x77\xb1\x77\xa8\x77\xf0\x78\xf3\x78\xfd\x79\x02\x78\xfb\x78\xfc\x78\xf2\x79\x05\x78\xf9\x78\xfe\x79\x04\x79\xab\x79\xa8\x7a\x5c\x7a\x5b\x7a\x56\x7a\x58\x7a\x54\x7a\x5a\x7a\xbe\x7a\xc0\x7a\xc1\x7c\x05\x7c\x0f\x7b\xf2\x7c\x00\x7b\xff\x7b\xfb\x7c\x0e\x7b\xf4\x7c\x0b\x7b\xf3\x7c\x02\x7c\x09\x7c\x03\x7c\x01\x7b\xf8\x7b\xfd\x7c\x06\x7b\xf0\x7b\xf1\x7c\x10\x7c\x0a\x7c\xe8\x7e\x2d\x7e\x3c\x7e\x42\x7e\x33\x98\x48\x7e\x38\x7e\x2a\x7e\x49\x7e\x40\x7e\x47\x7e\x29\x7e\x4c\x7e\x30\x7e\x3b\x7e\x36\x7e\x44\x7e\x3a\x7f\x45\x7f\x7f\x7f\x7e\x7f\x7d\x7f\xf4\x7f\xf2\x80\x2c\x81\xbb\x81\xc4\x81\xcc\x81\xca\x81\xc5\x81\xc7\x81\xbc\x81\xe9\x82\x5b\x82\x5a\x82\x5c\x85\x83\x85\x80\x85\x8f\x85\xa7\x85\x95\x85\xa0\x85\x8b\x85\xa3\x85\x7b\x85\xa4\x85\x9a\x85\x9e\x85\x77\x85\x7c\x85\x89\x85\xa1\x85\x7a\x85\x78\x85\x57\x85\x8e\x85\x96\x85\x86\x85\x8d\x85\x99\x85\x9d\x85\x81\x85\xa2\x85\x82\x85\x88\x85\x85\x85\x79\x00\x00\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x76\x85\x98\x85\x90\x85\x9f\x86\x68\x87\xbe\x87\xaa\x87\xad\x87\xc5\x87\xb0\x87\xac\x87\xb9\x87\xb5\x87\xbc\x87\xae\x87\xc9\x87\xc3\x87\xc2\x87\xcc\x87\xb7\x87\xaf\x87\xc4\x87\xca\x87\xb4\x87\xb6\x87\xbf\x87\xb8\x87\xbd\x87\xde\x87\xb2\x89\x35\x89\x33\x89\x3c\x89\x3e\x89\x41\x89\x52\x89\x37\x89\x42\x89\xad\x89\xaf\x89\xae\x89\xf2\x89\xf3\x8b\x1e\x8b\x18\x8b\x16\x8b\x11\x8b\x05\x8b\x0b\x8b\x22\x8b\x0f\x8b\x12\x8b\x15\x8b\x07\x8b\x0d\x8b\x08\x8b\x06\x8b\x1c\x8b\x13\x8b\x1a\x8c\x4f\x8c\x70\x8c\x72", /* 8880 */ "\x00\x00\x8c\x71\x8c\x6f\x8c\x95\x8c\x94\x8c\xf9\x8d\x6f\x8e\x4e\x8e\x4d\x8e\x53\x8e\x50\x8e\x4c\x8e\x47\x8f\x43\x8f\x40\x90\x85\x90\x7e\x91\x38\x91\x9a\x91\xa2\x91\x9b\x91\x99\x91\x9f\x91\xa1\x91\x9d\x91\xa0\x93\xa1\x93\x83\x93\xaf\x93\x64\x93\x56\x93\x47\x93\x7c\x93\x58\x93\x5c\x93\x76\x93\x49\x93\x50\x93\x51\x93\x60\x93\x6d\x93\x8f\x93\x4c\x93\x6a\x93\x79\x93\x57\x93\x55\x93\x52\x93\x4f\x93\x71\x93\x77\x93\x7b\x93\x61\x93\x5e\x93\x63\x93\x67\x93\x80\x93\x4e\x93\x59\x95\xc7\x95\xc0\x95\xc9\x95\xc3\x95\xc5\x95\xb7\x96\xae\x96\xb0\x96\xac\x97\x20\x97\x1f\x97\x18\x97\x1d\x97\x19\x97\x9a\x97\xa1\x97\x9c\x97\x9e\x97\x9d\x97\xd5\x97\xd4\x97\xf1\x98\x41\x98\x44\x98\x4a\x98\x49\x98\x45\x98\x43\x99\x25\x99\x2b\x99\x2c\x99\x2a\x99\x33\x99\x32\x99\x2f\x99\x2d\x99\x31\x99\x30\x99\x98\x99\xa3\x99\xa1\x9a\x02\x99\xfa\x99\xf4\x99\xf7\x99\xf9\x99\xf8\x99\xf6\x99\xfb\x99\xfd\x99\xfe\x99\xfc\x9a\x03\x9a\xbe\x9a\xfe\x9a\xfd\x9b\x01\x9a\xfc\x9b\x48\x9b\x9a\x9b\xa8\x9b\x9e\x9b\x9b\x9b\xa6\x9b\xa1\x9b\xa5\x9b\xa4\x00\x00\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x86\x9b\xa2\x9b\xa0\x9b\xaf\x9d\x33\x9d\x41\x9d\x67\x9d\x36\x9d\x2e\x9d\x2f\x9d\x31\x9d\x38\x9d\x30\x9d\x45\x9d\x42\x9d\x43\x9d\x3e\x9d\x37\x9d\x40\x9d\x3d\x7f\xf5\x9d\x2d\x9e\x8a\x9e\x89\x9e\x8d\x9e\xb0\x9e\xc8\x9e\xda\x9e\xfb\x9e\xff\x9f\x24\x9f\x23\x9f\x22\x9f\x54\x9f\xa0\x51\x31\x51\x2d\x51\x2e\x56\x98\x56\x9c\x56\x97\x56\x9a\x56\x9d\x56\x99\x59\x70\x5b\x3c\x5c\x69\x5c\x6a\x5d\xc0\x5e\x6d\x5e\x6e\x61\xd8\x61\xdf\x61\xed\x61\xee\x61\xf1\x61\xea\x61\xf0\x61\xeb\x61\xd6\x61\xe9\x64\xff\x65\x04", /* 8980 */ "\x00\x00\x64\xfd\x64\xf8\x65\x01\x65\x03\x64\xfc\x65\x94\x65\xdb\x66\xda\x66\xdb\x66\xd8\x6a\xc5\x6a\xb9\x6a\xbd\x6a\xe1\x6a\xc6\x6a\xba\x6a\xb6\x6a\xb7\x6a\xc7\x6a\xb4\x6a\xad\x6b\x5e\x6b\xc9\x6c\x0b\x70\x07\x70\x0c\x70\x0d\x70\x01\x70\x05\x70\x14\x70\x0e\x6f\xff\x70\x00\x6f\xfb\x70\x26\x6f\xfc\x6f\xf7\x70\x0a\x72\x01\x71\xff\x71\xf9\x72\x03\x71\xfd\x73\x76\x74\xb8\x74\xc0\x74\xb5\x74\xc1\x74\xbe\x74\xb6\x74\xbb\x74\xc2\x75\x14\x75\x13\x76\x5c\x76\x64\x76\x59\x76\x50\x76\x53\x76\x57\x76\x5a\x76\xa6\x76\xbd\x76\xec\x77\xc2\x77\xba\x78\xff\x79\x0c\x79\x13\x79\x14\x79\x09\x79\x10\x79\x12\x79\x11\x79\xad\x79\xac\x7a\x5f\x7c\x1c\x7c\x29\x7c\x19\x7c\x20\x7c\x1f\x7c\x2d\x7c\x1d\x7c\x26\x7c\x28\x7c\x22\x7c\x25\x7c\x30\x7e\x5c\x7e\x50\x7e\x56\x7e\x63\x7e\x58\x7e\x62\x7e\x5f\x7e\x51\x7e\x60\x7e\x57\x7e\x53\x7f\xb5\x7f\xb3\x7f\xf7\x7f\xf8\x80\x75\x81\xd1\x81\xd2\x81\xd0\x82\x5f\x82\x5e\x85\xb4\x85\xc6\x85\xc0\x85\xc3\x85\xc2\x85\xb3\x85\xb5\x85\xbd\x85\xc7\x85\xc4\x85\xbf\x85\xcb\x85\xce\x85\xc8\x85\xc5\x00\x00\x00\x00", /* 8a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\xb1\x85\xb6\x85\xd2\x86\x24\x85\xb8\x85\xb7\x85\xbe\x86\x69\x87\xe7\x87\xe6\x87\xe2\x87\xdb\x87\xeb\x87\xea\x87\xe5\x87\xdf\x87\xf3\x87\xe4\x87\xd4\x87\xdc\x87\xd3\x87\xed\x87\xd8\x87\xe3\x87\xa4\x87\xd7\x87\xd9\x88\x01\x87\xf4\x87\xe8\x87\xdd\x89\x53\x89\x4b\x89\x4f\x89\x4c\x89\x46\x89\x50\x89\x51\x89\x49\x8b\x2a\x8b\x27\x8b\x23\x8b\x33\x8b\x30\x8b\x35\x8b\x47\x8b\x2f\x8b\x3c\x8b\x3e\x8b\x31\x8b\x25\x8b\x37\x8b\x26\x8b\x36\x8b\x2e\x8b\x24\x8b\x3b\x8b\x3d\x8b\x3a\x8c\x42\x8c\x75\x8c\x99\x8c\x98", /* 8a80 */ "\x00\x00\x8c\x97\x8c\xfe\x8d\x04\x8d\x02\x8d\x00\x8e\x5c\x8e\x62\x8e\x60\x8e\x57\x8e\x56\x8e\x5e\x8e\x65\x8e\x67\x8e\x5b\x8e\x5a\x8e\x61\x8e\x5d\x8e\x69\x8e\x54\x8f\x46\x8f\x47\x8f\x48\x8f\x4b\x91\x28\x91\x3a\x91\x3b\x91\x3e\x91\xa8\x91\xa5\x91\xa7\x91\xaf\x91\xaa\x93\xb5\x93\x8c\x93\x92\x93\xb7\x93\x9b\x93\x9d\x93\x89\x93\xa7\x93\x8e\x93\xaa\x93\x9e\x93\xa6\x93\x95\x93\x88\x93\x99\x93\x9f\x93\x8d\x93\xb1\x93\x91\x93\xb2\x93\xa4\x93\xa8\x93\xb4\x93\xa3\x93\xa5\x95\xd2\x95\xd3\x95\xd1\x96\xb3\x96\xd7\x96\xda\x5d\xc2\x96\xdf\x96\xd8\x96\xdd\x97\x23\x97\x22\x97\x25\x97\xac\x97\xae\x97\xa8\x97\xab\x97\xa4\x97\xaa\x97\xa2\x97\xa5\x97\xd7\x97\xd9\x97\xd6\x97\xd8\x97\xfa\x98\x50\x98\x51\x98\x52\x98\xb8\x99\x41\x99\x3c\x99\x3a\x9a\x0f\x9a\x0b\x9a\x09\x9a\x0d\x9a\x04\x9a\x11\x9a\x0a\x9a\x05\x9a\x07\x9a\x06\x9a\xc0\x9a\xdc\x9b\x08\x9b\x04\x9b\x05\x9b\x29\x9b\x35\x9b\x4a\x9b\x4c\x9b\x4b\x9b\xc7\x9b\xc6\x9b\xc3\x9b\xbf\x9b\xc1\x9b\xb5\x9b\xb8\x9b\xd3\x9b\xb6\x9b\xc4\x9b\xb9\x9b\xbd\x9d\x5c\x9d\x53\x9d\x4f\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x4a\x9d\x5b\x9d\x4b\x9d\x59\x9d\x56\x9d\x4c\x9d\x57\x9d\x52\x9d\x54\x9d\x5f\x9d\x58\x9d\x5a\x9e\x8e\x9e\x8c\x9e\xdf\x9f\x01\x9f\x00\x9f\x16\x9f\x25\x9f\x2b\x9f\x2a\x9f\x29\x9f\x28\x9f\x4c\x9f\x55\x51\x34\x51\x35\x52\x96\x52\xf7\x53\xb4\x56\xab\x56\xad\x56\xa6\x56\xa7\x56\xaa\x56\xac\x58\xda\x58\xdd\x58\xdb\x59\x12\x5b\x3d\x5b\x3e\x5b\x3f\x5d\xc3\x5e\x70\x5f\xbf\x61\xfb\x65\x07\x65\x10\x65\x0d\x65\x09\x65\x0c\x65\x0e\x65\x84\x65\xde\x65\xdd\x66\xde\x6a\xe7\x6a\xe0\x6a\xcc\x6a\xd1\x6a\xd9\x6a\xcb", /* 8b80 */ "\x00\x00\x6a\xdf\x6a\xdc\x6a\xd0\x6a\xeb\x6a\xcf\x6a\xcd\x6a\xde\x6b\x60\x6b\xb0\x6c\x0c\x70\x19\x70\x27\x70\x20\x70\x16\x70\x2b\x70\x21\x70\x22\x70\x23\x70\x29\x70\x17\x70\x24\x70\x1c\x70\x2a\x72\x0c\x72\x0a\x72\x07\x72\x02\x72\x05\x72\xa5\x72\xa6\x72\xa4\x72\xa3\x72\xa1\x74\xcb\x74\xc5\x74\xb7\x74\xc3\x75\x16\x76\x60\x77\xc9\x77\xca\x77\xc4\x77\xf1\x79\x1d\x79\x1b\x79\x21\x79\x1c\x79\x17\x79\x1e\x79\xb0\x7a\x67\x7a\x68\x7c\x33\x7c\x3c\x7c\x39\x7c\x2c\x7c\x3b\x7c\xec\x7c\xea\x7e\x76\x7e\x75\x7e\x78\x7e\x70\x7e\x77\x7e\x6f\x7e\x7a\x7e\x72\x7e\x74\x7e\x68\x7f\x4b\x7f\x4a\x7f\x83\x7f\x86\x7f\xb7\x7f\xfd\x7f\xfe\x80\x78\x81\xd7\x81\xd5\x82\x64\x82\x61\x82\x63\x85\xeb\x85\xf1\x85\xed\x85\xd9\x85\xe1\x85\xe8\x85\xda\x85\xd7\x85\xec\x85\xf2\x85\xf8\x85\xd8\x85\xdf\x85\xe3\x85\xdc\x85\xd1\x85\xf0\x85\xe6\x85\xef\x85\xde\x85\xe2\x88\x00\x87\xfa\x88\x03\x87\xf6\x87\xf7\x88\x09\x88\x0c\x88\x0b\x88\x06\x87\xfc\x88\x08\x87\xff\x88\x0a\x88\x02\x89\x62\x89\x5a\x89\x5b\x89\x57\x89\x61\x89\x5c\x89\x58\x89\x5d\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x59\x89\x88\x89\xb7\x89\xb6\x89\xf6\x8b\x50\x8b\x48\x8b\x4a\x8b\x40\x8b\x53\x8b\x56\x8b\x54\x8b\x4b\x8b\x55\x8b\x51\x8b\x42\x8b\x52\x8b\x57\x8c\x43\x8c\x77\x8c\x76\x8c\x9a\x8d\x06\x8d\x07\x8d\x09\x8d\xac\x8d\xaa\x8d\xad\x8d\xab\x8e\x6d\x8e\x78\x8e\x73\x8e\x6a\x8e\x6f\x8e\x7b\x8e\xc2\x8f\x52\x8f\x51\x8f\x4f\x8f\x50\x8f\x53\x8f\xb4\x91\x40\x91\x3f\x91\xb0\x91\xad\x93\xde\x93\xc7\x93\xcf\x93\xc2\x93\xda\x93\xd0\x93\xf9\x93\xec\x93\xcc\x93\xd9\x93\xa9\x93\xe6\x93\xca\x93\xd4\x93\xee\x93\xe3\x93\xd5", /* 8c80 */ "\x00\x00\x93\xc4\x93\xce\x93\xc0\x93\xd2\x93\xe7\x95\x7d\x95\xda\x95\xdb\x96\xe1\x97\x29\x97\x2b\x97\x2c\x97\x28\x97\x26\x97\xb3\x97\xb7\x97\xb6\x97\xdd\x97\xde\x97\xdf\x98\x5c\x98\x59\x98\x5d\x98\x57\x98\xbf\x98\xbd\x98\xbb\x98\xbe\x99\x48\x99\x47\x99\x43\x99\xa6\x99\xa7\x9a\x1a\x9a\x15\x9a\x25\x9a\x1d\x9a\x24\x9a\x1b\x9a\x22\x9a\x20\x9a\x27\x9a\x23\x9a\x1e\x9a\x1c\x9a\x14\x9a\xc2\x9b\x0b\x9b\x0a\x9b\x0e\x9b\x0c\x9b\x37\x9b\xea\x9b\xeb\x9b\xe0\x9b\xde\x9b\xe4\x9b\xe6\x9b\xe2\x9b\xf0\x9b\xd4\x9b\xd7\x9b\xec\x9b\xdc\x9b\xd9\x9b\xe5\x9b\xd5\x9b\xe1\x9b\xda\x9d\x77\x9d\x81\x9d\x8a\x9d\x84\x9d\x88\x9d\x71\x9d\x80\x9d\x78\x9d\x86\x9d\x8b\x9d\x8c\x9d\x7d\x9d\x6b\x9d\x74\x9d\x75\x9d\x70\x9d\x69\x9d\x85\x9d\x73\x9d\x7b\x9d\x82\x9d\x6f\x9d\x79\x9d\x7f\x9d\x87\x9d\x68\x9e\x94\x9e\x91\x9e\xc0\x9e\xfc\x9f\x2d\x9f\x40\x9f\x41\x9f\x4d\x9f\x56\x9f\x57\x9f\x58\x53\x37\x56\xb2\x56\xb5\x56\xb3\x58\xe3\x5b\x45\x5d\xc6\x5d\xc7\x5e\xee\x5e\xef\x5f\xc0\x5f\xc1\x61\xf9\x65\x17\x65\x16\x65\x15\x65\x13\x65\xdf\x66\xe8\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe3\x66\xe4\x6a\xf3\x6a\xf0\x6a\xea\x6a\xe8\x6a\xf9\x6a\xf1\x6a\xee\x6a\xef\x70\x3c\x70\x35\x70\x2f\x70\x37\x70\x34\x70\x31\x70\x42\x70\x38\x70\x3f\x70\x3a\x70\x39\x70\x40\x70\x3b\x70\x33\x70\x41\x72\x13\x72\x14\x72\xa8\x73\x7d\x73\x7c\x74\xba\x76\xab\x76\xaa\x76\xbe\x76\xed\x77\xcc\x77\xce\x77\xcf\x77\xcd\x77\xf2\x79\x25\x79\x23\x79\x27\x79\x28\x79\x24\x79\x29\x79\xb2\x7a\x6e\x7a\x6c\x7a\x6d\x7a\xf7\x7c\x49\x7c\x48\x7c\x4a\x7c\x47\x7c\x45\x7c\xee\x7e\x7b\x7e\x7e\x7e\x81\x7e\x80\x7f\xba\x7f\xff", /* 8d80 */ "\x00\x00\x80\x79\x81\xdb\x81\xd9\x82\x0b\x82\x68\x82\x69\x86\x22\x85\xff\x86\x01\x85\xfe\x86\x1b\x86\x00\x85\xf6\x86\x04\x86\x09\x86\x05\x86\x0c\x85\xfd\x88\x19\x88\x10\x88\x11\x88\x17\x88\x13\x88\x16\x89\x63\x89\x66\x89\xb9\x89\xf7\x8b\x60\x8b\x6a\x8b\x5d\x8b\x68\x8b\x63\x8b\x65\x8b\x67\x8b\x6d\x8d\xae\x8e\x86\x8e\x88\x8e\x84\x8f\x59\x8f\x56\x8f\x57\x8f\x55\x8f\x58\x8f\x5a\x90\x8d\x91\x43\x91\x41\x91\xb7\x91\xb5\x91\xb2\x91\xb3\x94\x0b\x94\x13\x93\xfb\x94\x20\x94\x0f\x94\x14\x93\xfe\x94\x15\x94\x10\x94\x28\x94\x19\x94\x0d\x93\xf5\x94\x00\x93\xf7\x94\x07\x94\x0e\x94\x16\x94\x12\x93\xfa\x94\x09\x93\xf8\x94\x0a\x93\xff\x93\xfc\x94\x0c\x93\xf6\x94\x11\x94\x06\x95\xde\x95\xe0\x95\xdf\x97\x2e\x97\x2f\x97\xb9\x97\xbb\x97\xfd\x97\xfe\x98\x60\x98\x62\x98\x63\x98\x5f\x98\xc1\x98\xc2\x99\x50\x99\x4e\x99\x59\x99\x4c\x99\x4b\x99\x53\x9a\x32\x9a\x34\x9a\x31\x9a\x2c\x9a\x2a\x9a\x36\x9a\x29\x9a\x2e\x9a\x38\x9a\x2d\x9a\xc7\x9a\xca\x9a\xc6\x9b\x10\x9b\x12\x9b\x11\x9c\x0b\x9c\x08\x9b\xf7\x9c\x05\x9c\x12\x9b\xf8\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x40\x9c\x07\x9c\x0e\x9c\x06\x9c\x17\x9c\x14\x9c\x09\x9d\x9f\x9d\x99\x9d\xa4\x9d\x9d\x9d\x92\x9d\x98\x9d\x90\x9d\x9b\x9d\xa0\x9d\x94\x9d\x9c\x9d\xaa\x9d\x97\x9d\xa1\x9d\x9a\x9d\xa2\x9d\xa8\x9d\x9e\x9d\xa3\x9d\xbf\x9d\xa9\x9d\x96\x9d\xa6\x9d\xa7\x9e\x99\x9e\x9b\x9e\x9a\x9e\xe5\x9e\xe4\x9e\xe7\x9e\xe6\x9f\x30\x9f\x2e\x9f\x5b\x9f\x60\x9f\x5e\x9f\x5d\x9f\x59\x9f\x91\x51\x3a\x51\x39\x52\x98\x52\x97\x56\xc3\x56\xbd\x56\xbe\x5b\x48\x5b\x47\x5d\xcb\x5d\xcf\x5e\xf1\x61\xfd\x65\x1b\x6b\x02\x6a\xfc\x6b\x03", /* 8e80 */ "\x00\x00\x6a\xf8\x6b\x00\x70\x43\x70\x44\x70\x4a\x70\x48\x70\x49\x70\x45\x70\x46\x72\x1d\x72\x1a\x72\x19\x73\x7e\x75\x17\x76\x6a\x77\xd0\x79\x2d\x79\x31\x79\x2f\x7c\x54\x7c\x53\x7c\xf2\x7e\x8a\x7e\x87\x7e\x88\x7e\x8b\x7e\x86\x7e\x8d\x7f\x4d\x7f\xbb\x80\x30\x81\xdd\x86\x18\x86\x2a\x86\x26\x86\x1f\x86\x23\x86\x1c\x86\x19\x86\x27\x86\x2e\x86\x21\x86\x20\x86\x29\x86\x1e\x86\x25\x88\x29\x88\x1d\x88\x1b\x88\x20\x88\x24\x88\x1c\x88\x2b\x88\x4a\x89\x6d\x89\x69\x89\x6e\x89\x6b\x89\xfa\x8b\x79\x8b\x78\x8b\x45\x8b\x7a\x8b\x7b\x8d\x10\x8d\x14\x8d\xaf\x8e\x8e\x8e\x8c\x8f\x5e\x8f\x5b\x8f\x5d\x91\x46\x91\x44\x91\x45\x91\xb9\x94\x3f\x94\x3b\x94\x36\x94\x29\x94\x3d\x94\x3c\x94\x30\x94\x39\x94\x2a\x94\x37\x94\x2c\x94\x40\x94\x31\x95\xe5\x95\xe4\x95\xe3\x97\x35\x97\x3a\x97\xbf\x97\xe1\x98\x64\x98\xc9\x98\xc6\x98\xc0\x99\x58\x99\x56\x9a\x39\x9a\x3d\x9a\x46\x9a\x44\x9a\x42\x9a\x41\x9a\x3a\x9a\x3f\x9a\xcd\x9b\x15\x9b\x17\x9b\x18\x9b\x16\x9b\x3a\x9b\x52\x9c\x2b\x9c\x1d\x9c\x1c\x9c\x2c\x9c\x23\x9c\x28\x9c\x29\x9c\x24\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x21\x9d\xb7\x9d\xb6\x9d\xbc\x9d\xc1\x9d\xc7\x9d\xca\x9d\xcf\x9d\xbe\x9d\xc5\x9d\xc3\x9d\xbb\x9d\xb5\x9d\xce\x9d\xb9\x9d\xba\x9d\xac\x9d\xc8\x9d\xb1\x9d\xad\x9d\xcc\x9d\xb3\x9d\xcd\x9d\xb2\x9e\x7a\x9e\x9c\x9e\xeb\x9e\xee\x9e\xed\x9f\x1b\x9f\x18\x9f\x1a\x9f\x31\x9f\x4e\x9f\x65\x9f\x64\x9f\x92\x4e\xb9\x56\xc6\x56\xc5\x56\xcb\x59\x71\x5b\x4b\x5b\x4c\x5d\xd5\x5d\xd1\x5e\xf2\x65\x21\x65\x20\x65\x26\x65\x22\x6b\x0b\x6b\x08\x6b\x09\x6c\x0d\x70\x55\x70\x56\x70\x57\x70\x52\x72\x1e\x72\x1f\x72\xa9\x73\x7f", /* 8f80 */ "\x00\x00\x74\xd8\x74\xd5\x74\xd9\x74\xd7\x76\x6d\x76\xad\x79\x35\x79\xb4\x7a\x70\x7a\x71\x7c\x57\x7c\x5c\x7c\x59\x7c\x5b\x7c\x5a\x7c\xf4\x7c\xf1\x7e\x91\x7f\x4f\x7f\x87\x81\xde\x82\x6b\x86\x34\x86\x35\x86\x33\x86\x2c\x86\x32\x86\x36\x88\x2c\x88\x28\x88\x26\x88\x2a\x88\x25\x89\x71\x89\xbf\x89\xbe\x89\xfb\x8b\x7e\x8b\x84\x8b\x82\x8b\x86\x8b\x85\x8b\x7f\x8d\x15\x8e\x95\x8e\x94\x8e\x9a\x8e\x92\x8e\x90\x8e\x96\x8e\x97\x8f\x60\x8f\x62\x91\x47\x94\x4c\x94\x50\x94\x4a\x94\x4b\x94\x4f\x94\x47\x94\x45\x94\x48\x94\x49\x94\x46\x97\x3f\x97\xe3\x98\x6a\x98\x69\x98\xcb\x99\x54\x99\x5b\x9a\x4e\x9a\x53\x9a\x54\x9a\x4c\x9a\x4f\x9a\x48\x9a\x4a\x9a\x49\x9a\x52\x9a\x50\x9a\xd0\x9b\x19\x9b\x2b\x9b\x3b\x9b\x56\x9b\x55\x9c\x46\x9c\x48\x9c\x3f\x9c\x44\x9c\x39\x9c\x33\x9c\x41\x9c\x3c\x9c\x37\x9c\x34\x9c\x32\x9c\x3d\x9c\x36\x9d\xdb\x9d\xd2\x9d\xde\x9d\xda\x9d\xcb\x9d\xd0\x9d\xdc\x9d\xd1\x9d\xdf\x9d\xe9\x9d\xd9\x9d\xd8\x9d\xd6\x9d\xf5\x9d\xd5\x9d\xdd\x9e\xb6\x9e\xf0\x9f\x35\x9f\x33\x9f\x32\x9f\x42\x9f\x6b\x9f\x95\x9f\xa2\x00\x00\x00\x00", /* 9000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x3d\x52\x99\x58\xe8\x58\xe7\x59\x72\x5b\x4d\x5d\xd8\x88\x2f\x5f\x4f\x62\x01\x62\x03\x62\x04\x65\x29\x65\x25\x65\x96\x66\xeb\x6b\x11\x6b\x12\x6b\x0f\x6b\xca\x70\x5b\x70\x5a\x72\x22\x73\x82\x73\x81\x73\x83\x76\x70\x77\xd4\x7c\x67\x7c\x66\x7e\x95\x82\x6c\x86\x3a\x86\x40\x86\x39\x86\x3c\x86\x31\x86\x3b\x86\x3e\x88\x30\x88\x32\x88\x2e\x88\x33\x89\x76\x89\x74\x89\x73\x89\xfe\x8b\x8c\x8b\x8e\x8b\x8b\x8b\x88\x8c\x45\x8d\x19\x8e\x98\x8f\x64\x8f\x63\x91\xbc\x94\x62\x94\x55\x94\x5d\x94\x57\x94\x5e\x97\xc4", /* 9080 */ "\x00\x00\x97\xc5\x98\x00\x9a\x56\x9a\x59\x9b\x1e\x9b\x1f\x9b\x20\x9c\x52\x9c\x58\x9c\x50\x9c\x4a\x9c\x4d\x9c\x4b\x9c\x55\x9c\x59\x9c\x4c\x9c\x4e\x9d\xfb\x9d\xf7\x9d\xef\x9d\xe3\x9d\xeb\x9d\xf8\x9d\xe4\x9d\xf6\x9d\xe1\x9d\xee\x9d\xe6\x9d\xf2\x9d\xf0\x9d\xe2\x9d\xec\x9d\xf4\x9d\xf3\x9d\xe8\x9d\xed\x9e\xc2\x9e\xd0\x9e\xf2\x9e\xf3\x9f\x06\x9f\x1c\x9f\x38\x9f\x37\x9f\x36\x9f\x43\x9f\x4f\x9f\x71\x9f\x70\x9f\x6e\x9f\x6f\x56\xd3\x56\xcd\x5b\x4e\x5c\x6d\x65\x2d\x66\xed\x66\xee\x6b\x13\x70\x5f\x70\x61\x70\x5d\x70\x60\x72\x23\x74\xdb\x74\xe5\x77\xd5\x79\x38\x79\xb7\x79\xb6\x7c\x6a\x7e\x97\x7f\x89\x82\x6d\x86\x43\x88\x38\x88\x37\x88\x35\x88\x4b\x8b\x94\x8b\x95\x8e\x9e\x8e\x9f\x8e\xa0\x8e\x9d\x91\xbe\x91\xbd\x91\xc2\x94\x6b\x94\x68\x94\x69\x96\xe5\x97\x46\x97\x43\x97\x47\x97\xc7\x97\xe5\x9a\x5e\x9a\xd5\x9b\x59\x9c\x63\x9c\x67\x9c\x66\x9c\x62\x9c\x5e\x9c\x60\x9e\x02\x9d\xfe\x9e\x07\x9e\x03\x9e\x06\x9e\x05\x9e\x00\x9e\x01\x9e\x09\x9d\xff\x9d\xfd\x9e\x04\x9e\xa0\x9f\x1e\x9f\x46\x9f\x74\x9f\x75\x9f\x76\x56\xd4\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x2e\x65\xb8\x6b\x18\x6b\x19\x6b\x17\x6b\x1a\x70\x62\x72\x26\x72\xaa\x77\xd8\x77\xd9\x79\x39\x7c\x69\x7c\x6b\x7c\xf6\x7e\x9a\x7e\x98\x7e\x9b\x7e\x99\x81\xe0\x81\xe1\x86\x46\x86\x47\x86\x48\x89\x79\x89\x7a\x89\x7c\x89\x7b\x89\xff\x8b\x98\x8b\x99\x8e\xa5\x8e\xa4\x8e\xa3\x94\x6e\x94\x6d\x94\x6f\x94\x71\x94\x73\x97\x49\x98\x72\x99\x5f\x9c\x68\x9c\x6e\x9c\x6d\x9e\x0b\x9e\x0d\x9e\x10\x9e\x0f\x9e\x12\x9e\x11\x9e\xa1\x9e\xf5\x9f\x09\x9f\x47\x9f\x78\x9f\x7b\x9f\x7a\x9f\x79\x57\x1e\x70\x66\x7c\x6f\x88\x3c", /* 9180 */ "\x00\x00\x8d\xb2\x8e\xa6\x91\xc3\x94\x74\x94\x78\x94\x76\x94\x75\x9a\x60\x9c\x74\x9c\x73\x9c\x71\x9c\x75\x9e\x14\x9e\x13\x9e\xf6\x9f\x0a\x9f\xa4\x70\x68\x70\x65\x7c\xf7\x86\x6a\x88\x3e\x88\x3d\x88\x3f\x8b\x9e\x8c\x9c\x8e\xa9\x8e\xc9\x97\x4b\x98\x73\x98\x74\x98\xcc\x99\x61\x99\xab\x9a\x64\x9a\x66\x9a\x67\x9b\x24\x9e\x15\x9e\x17\x9f\x48\x62\x07\x6b\x1e\x72\x27\x86\x4c\x8e\xa8\x94\x82\x94\x80\x94\x81\x9a\x69\x9a\x68\x9b\x2e\x9e\x19\x72\x29\x86\x4b\x8b\x9f\x94\x83\x9c\x79\x9e\xb7\x76\x75\x9a\x6b\x9c\x7a\x9e\x1d\x70\x69\x70\x6a\x9e\xa4\x9f\x7e\x9f\x49\x9f\x98\x69\x1e\x6e\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* c280 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* c300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* c380 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* c400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* c480 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* c500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* c580 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* c600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* c680 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* c700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* c780 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* c800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* c880 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* c900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* c980 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* ca00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* ca80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* cb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* cb80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* cc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96", /* cc80 */ "\x00\x00\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xe7\xa8\xe7\xa9\xe7\xaa\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe7\xff\xe8\x00\xe8\x01\xe8\x02\xe8\x03\xe8\x04\xe8\x05\xe8\x06\xe8\x07\xe8\x08\xe8\x09\xe8\x0a\xe8\x0b\xe8\x0c\xe8\x0d\xe8\x0e\xe8\x0f\xe8\x10\xe8\x11\xe8\x12\xe8\x13\x00\x00\x00\x00", /* cd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x14\xe8\x15\xe8\x16\xe8\x17\xe8\x18\xe8\x19\xe8\x1a\xe8\x1b\xe8\x1c\xe8\x1d\xe8\x1e\xe8\x1f\xe8\x20\xe8\x21\xe8\x22\xe8\x23\xe8\x24\xe8\x25\xe8\x26\xe8\x27\xe8\x28\xe8\x29\xe8\x2a\xe8\x2b\xe8\x2c\xe8\x2d\xe8\x2e\xe8\x2f\xe8\x30\xe8\x31\xe8\x32\xe8\x33\xe8\x34\xe8\x35\xe8\x36\xe8\x37\xe8\x38\xe8\x39\xe8\x3a\xe8\x3b\xe8\x3c\xe8\x3d\xe8\x3e\xe8\x3f\xe8\x40\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52", /* cd80 */ "\x00\x00\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\x00\x00\x00\x00", /* ce00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe8\xff\xe9\x00\xe9\x01\xe9\x02\xe9\x03\xe9\x04\xe9\x05\xe9\x06\xe9\x07\xe9\x08\xe9\x09\xe9\x0a\xe9\x0b\xe9\x0c\xe9\x0d\xe9\x0e", /* ce80 */ "\x00\x00\xe9\x0f\xe9\x10\xe9\x11\xe9\x12\xe9\x13\xe9\x14\xe9\x15\xe9\x16\xe9\x17\xe9\x18\xe9\x19\xe9\x1a\xe9\x1b\xe9\x1c\xe9\x1d\xe9\x1e\xe9\x1f\xe9\x20\xe9\x21\xe9\x22\xe9\x23\xe9\x24\xe9\x25\xe9\x26\xe9\x27\xe9\x28\xe9\x29\xe9\x2a\xe9\x2b\xe9\x2c\xe9\x2d\xe9\x2e\xe9\x2f\xe9\x30\xe9\x31\xe9\x32\xe9\x33\xe9\x34\xe9\x35\xe9\x36\xe9\x37\xe9\x38\xe9\x39\xe9\x3a\xe9\x3b\xe9\x3c\xe9\x3d\xe9\x3e\xe9\x3f\xe9\x40\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xe9\x58\xe9\x59\xe9\x5a\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\x00\x00\x00\x00", /* cf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca", /* cf80 */ "\x00\x00\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xe9\xff\xea\x00\xea\x01\xea\x02\xea\x03\xea\x04\xea\x05\xea\x06\xea\x07\xea\x08\xea\x09\xea\x0a\xea\x0b\xea\x0c\xea\x0d\xea\x0e\xea\x0f\xea\x10\xea\x11\xea\x12\xea\x13\xea\x14\xea\x15\xea\x16\xea\x17\xea\x18\xea\x19\xea\x1a\xea\x1b\xea\x1c\xea\x1d\xea\x1e\xea\x1f\xea\x20\xea\x21\xea\x22\xea\x23\xea\x24\xea\x25\xea\x26\xea\x27\xea\x28\xea\x29\xea\x2a\xea\x2b\xea\x2c\xea\x2d\xea\x2e\xea\x2f\xea\x30\xea\x31\xea\x32\xea\x33\xea\x34\xea\x35\xea\x36\xea\x37\xea\x38\xea\x39\xea\x3a\xea\x3b\xea\x3c\xea\x3d\xea\x3e\xea\x3f\xea\x40\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\x00\x00\x00\x00", /* d000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86", /* d080 */ "\x00\x00\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xea\xff\xeb\x00\xeb\x01\xeb\x02\xeb\x03\x00\x00\x00\x00", /* d100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x04\xeb\x05\xeb\x06\xeb\x07\xeb\x08\xeb\x09\xeb\x0a\xeb\x0b\xeb\x0c\xeb\x0d\xeb\x0e\xeb\x0f\xeb\x10\xeb\x11\xeb\x12\xeb\x13\xeb\x14\xeb\x15\xeb\x16\xeb\x17\xeb\x18\xeb\x19\xeb\x1a\xeb\x1b\xeb\x1c\xeb\x1d\xeb\x1e\xeb\x1f\xeb\x20\xeb\x21\xeb\x22\xeb\x23\xeb\x24\xeb\x25\xeb\x26\xeb\x27\xeb\x28\xeb\x29\xeb\x2a\xeb\x2b\xeb\x2c\xeb\x2d\xeb\x2e\xeb\x2f\xeb\x30\xeb\x31\xeb\x32\xeb\x33\xeb\x34\xeb\x35\xeb\x36\xeb\x37\xeb\x38\xeb\x39\xeb\x3a\xeb\x3b\xeb\x3c\xeb\x3d\xeb\x3e\xeb\x3f\xeb\x40\xeb\x41\xeb\x42", /* d180 */ "\x00\x00\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d\xeb\x5e\xeb\x5f\xeb\x60\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\x00\x00\x00\x00", /* d200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xeb\xd7\xeb\xd8\xeb\xd9\xeb\xda\xeb\xdb\xeb\xdc\xeb\xdd\xeb\xde\xeb\xdf\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xeb\xf2\xeb\xf3\xeb\xf4\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe", /* d280 */ "\x00\x00\xeb\xff\xec\x00\xec\x01\xec\x02\xec\x03\xec\x04\xec\x05\xec\x06\xec\x07\xec\x08\xec\x09\xec\x0a\xec\x0b\xec\x0c\xec\x0d\xec\x0e\xec\x0f\xec\x10\xec\x11\xec\x12\xec\x13\xec\x14\xec\x15\xec\x16\xec\x17\xec\x18\xec\x19\xec\x1a\xec\x1b\xec\x1c\xec\x1d\xec\x1e\xec\x1f\xec\x20\xec\x21\xec\x22\xec\x23\xec\x24\xec\x25\xec\x26\xec\x27\xec\x28\xec\x29\xec\x2a\xec\x2b\xec\x2c\xec\x2d\xec\x2e\xec\x2f\xec\x30\xec\x31\xec\x32\xec\x33\xec\x34\xec\x35\xec\x36\xec\x37\xec\x38\xec\x39\xec\x3a\xec\x3b\xec\x3c\xec\x3d\xec\x3e\xec\x3f\xec\x40\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\x00\x00\x00\x00", /* d300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba", /* d380 */ "\x00\x00\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xec\xff\xed\x00\xed\x01\xed\x02\xed\x03\xed\x04\xed\x05\xed\x06\xed\x07\xed\x08\xed\x09\xed\x0a\xed\x0b\xed\x0c\xed\x0d\xed\x0e\xed\x0f\xed\x10\xed\x11\xed\x12\xed\x13\xed\x14\xed\x15\xed\x16\xed\x17\xed\x18\xed\x19\xed\x1a\xed\x1b\xed\x1c\xed\x1d\xed\x1e\xed\x1f\xed\x20\xed\x21\xed\x22\xed\x23\xed\x24\xed\x25\xed\x26\xed\x27\xed\x28\xed\x29\xed\x2a\xed\x2b\xed\x2c\xed\x2d\xed\x2e\xed\x2f\xed\x30\xed\x31\xed\x32\xed\x33\xed\x34\xed\x35\xed\x36\xed\x37\x00\x00\x00\x00", /* d400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x38\xed\x39\xed\x3a\xed\x3b\xed\x3c\xed\x3d\xed\x3e\xed\x3f\xed\x40\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76", /* d480 */ "\x00\x00\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\x00\x00\x00\x00", /* d500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xed\xff\xee\x00\xee\x01\xee\x02\xee\x03\xee\x04\xee\x05\xee\x06\xee\x07\xee\x08\xee\x09\xee\x0a\xee\x0b\xee\x0c\xee\x0d\xee\x0e\xee\x0f\xee\x10\xee\x11\xee\x12\xee\x13\xee\x14\xee\x15\xee\x16\xee\x17\xee\x18\xee\x19\xee\x1a\xee\x1b\xee\x1c\xee\x1d\xee\x1e\xee\x1f\xee\x20\xee\x21\xee\x22\xee\x23\xee\x24\xee\x25\xee\x26\xee\x27\xee\x28\xee\x29\xee\x2a\xee\x2b\xee\x2c\xee\x2d\xee\x2e\xee\x2f\xee\x30\xee\x31\xee\x32", /* d580 */ "\x00\x00\xee\x33\xee\x34\xee\x35\xee\x36\xee\x37\xee\x38\xee\x39\xee\x3a\xee\x3b\xee\x3c\xee\x3d\xee\x3e\xee\x3f\xee\x40\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\x00\x00\x00\x00", /* d600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee", /* d680 */ "\x00\x00\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xee\xff\xef\x00\xef\x01\xef\x02\xef\x03\xef\x04\xef\x05\xef\x06\xef\x07\xef\x08\xef\x09\xef\x0a\xef\x0b\xef\x0c\xef\x0d\xef\x0e\xef\x0f\xef\x10\xef\x11\xef\x12\xef\x13\xef\x14\xef\x15\xef\x16\xef\x17\xef\x18\xef\x19\xef\x1a\xef\x1b\xef\x1c\xef\x1d\xef\x1e\xef\x1f\xef\x20\xef\x21\xef\x22\xef\x23\xef\x24\xef\x25\xef\x26\xef\x27\xef\x28\xef\x29\xef\x2a\xef\x2b\xef\x2c\xef\x2d\xef\x2e\xef\x2f\xef\x30\xef\x31\xef\x32\xef\x33\xef\x34\xef\x35\xef\x36\xef\x37\xef\x38\xef\x39\xef\x3a\xef\x3b\xef\x3c\xef\x3d\xef\x3e\xef\x3f\xef\x40\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\x00\x00\x00\x00", /* d700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa", /* d780 */ "\x00\x00\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xef\xd2\xef\xd3\xef\xd4\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xef\xff\xf0\x00\xf0\x01\xf0\x02\xf0\x03\xf0\x04\xf0\x05\xf0\x06\xf0\x07\xf0\x08\xf0\x09\xf0\x0a\xf0\x0b\xf0\x0c\xf0\x0d\xf0\x0e\xf0\x0f\xf0\x10\xf0\x11\xf0\x12\xf0\x13\xf0\x14\xf0\x15\xf0\x16\xf0\x17\xf0\x18\xf0\x19\xf0\x1a\xf0\x1b\xf0\x1c\xf0\x1d\xf0\x1e\xf0\x1f\xf0\x20\xf0\x21\xf0\x22\xf0\x23\xf0\x24\xf0\x25\xf0\x26\xf0\x27\x00\x00\x00\x00", /* d800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x28\xf0\x29\xf0\x2a\xf0\x2b\xf0\x2c\xf0\x2d\xf0\x2e\xf0\x2f\xf0\x30\xf0\x31\xf0\x32\xf0\x33\xf0\x34\xf0\x35\xf0\x36\xf0\x37\xf0\x38\xf0\x39\xf0\x3a\xf0\x3b\xf0\x3c\xf0\x3d\xf0\x3e\xf0\x3f\xf0\x40\xf0\x41\xf0\x42\xf0\x43\xf0\x44\xf0\x45\xf0\x46\xf0\x47\xf0\x48\xf0\x49\xf0\x4a\xf0\x4b\xf0\x4c\xf0\x4d\xf0\x4e\xf0\x4f\xf0\x50\xf0\x51\xf0\x52\xf0\x53\xf0\x54\xf0\x55\xf0\x56\xf0\x57\xf0\x58\xf0\x59\xf0\x5a\xf0\x5b\xf0\x5c\xf0\x5d\xf0\x5e\xf0\x5f\xf0\x60\xf0\x61\xf0\x62\xf0\x63\xf0\x64\xf0\x65\xf0\x66", /* d880 */ "\x00\x00\xf0\x67\xf0\x68\xf0\x69\xf0\x6a\xf0\x6b\xf0\x6c\xf0\x6d\xf0\x6e\xf0\x6f\xf0\x70\xf0\x71\xf0\x72\xf0\x73\xf0\x74\xf0\x75\xf0\x76\xf0\x77\xf0\x78\xf0\x79\xf0\x7a\xf0\x7b\xf0\x7c\xf0\x7d\xf0\x7e\xf0\x7f\xf0\x80\xf0\x81\xf0\x82\xf0\x83\xf0\x84\xf0\x85\xf0\x86\xf0\x87\xf0\x88\xf0\x89\xf0\x8a\xf0\x8b\xf0\x8c\xf0\x8d\xf0\x8e\xf0\x8f\xf0\x90\xf0\x91\xf0\x92\xf0\x93\xf0\x94\xf0\x95\xf0\x96\xf0\x97\xf0\x98\xf0\x99\xf0\x9a\xf0\x9b\xf0\x9c\xf0\x9d\xf0\x9e\xf0\x9f\xf0\xa0\xf0\xa1\xf0\xa2\xf0\xa3\xf0\xa4\xf0\xa5\xf0\xa6\xf0\xa7\xf0\xa8\xf0\xa9\xf0\xaa\xf0\xab\xf0\xac\xf0\xad\xf0\xae\xf0\xaf\xf0\xb0\xf0\xb1\xf0\xb2\xf0\xb3\xf0\xb4\xf0\xb5\xf0\xb6\xf0\xb7\xf0\xb8\xf0\xb9\xf0\xba\xf0\xbb\xf0\xbc\xf0\xbd\xf0\xbe\xf0\xbf\xf0\xc0\xf0\xc1\xf0\xc2\xf0\xc3\xf0\xc4\xf0\xc5\xf0\xc6\xf0\xc7\xf0\xc8\xf0\xc9\xf0\xca\xf0\xcb\xf0\xcc\xf0\xcd\xf0\xce\xf0\xcf\xf0\xd0\xf0\xd1\xf0\xd2\xf0\xd3\xf0\xd4\xf0\xd5\xf0\xd6\xf0\xd7\xf0\xd8\xf0\xd9\xf0\xda\xf0\xdb\xf0\xdc\xf0\xdd\xf0\xde\xf0\xdf\xf0\xe0\xf0\xe1\xf0\xe2\xf0\xe3\x00\x00\x00\x00", /* d900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xe4\xf0\xe5\xf0\xe6\xf0\xe7\xf0\xe8\xf0\xe9\xf0\xea\xf0\xeb\xf0\xec\xf0\xed\xf0\xee\xf0\xef\xf0\xf0\xf0\xf1\xf0\xf2\xf0\xf3\xf0\xf4\xf0\xf5\xf0\xf6\xf0\xf7\xf0\xf8\xf0\xf9\xf0\xfa\xf0\xfb\xf0\xfc\xf0\xfd\xf0\xfe\xf0\xff\xf1\x00\xf1\x01\xf1\x02\xf1\x03\xf1\x04\xf1\x05\xf1\x06\xf1\x07\xf1\x08\xf1\x09\xf1\x0a\xf1\x0b\xf1\x0c\xf1\x0d\xf1\x0e\xf1\x0f\xf1\x10\xf1\x11\xf1\x12\xf1\x13\xf1\x14\xf1\x15\xf1\x16\xf1\x17\xf1\x18\xf1\x19\xf1\x1a\xf1\x1b\xf1\x1c\xf1\x1d\xf1\x1e\xf1\x1f\xf1\x20\xf1\x21\xf1\x22", /* d980 */ "\x00\x00\xf1\x23\xf1\x24\xf1\x25\xf1\x26\xf1\x27\xf1\x28\xf1\x29\xf1\x2a\xf1\x2b\xf1\x2c\xf1\x2d\xf1\x2e\xf1\x2f\xf1\x30\xf1\x31\xf1\x32\xf1\x33\xf1\x34\xf1\x35\xf1\x36\xf1\x37\xf1\x38\xf1\x39\xf1\x3a\xf1\x3b\xf1\x3c\xf1\x3d\xf1\x3e\xf1\x3f\xf1\x40\xf1\x41\xf1\x42\xf1\x43\xf1\x44\xf1\x45\xf1\x46\xf1\x47\xf1\x48\xf1\x49\xf1\x4a\xf1\x4b\xf1\x4c\xf1\x4d\xf1\x4e\xf1\x4f\xf1\x50\xf1\x51\xf1\x52\xf1\x53\xf1\x54\xf1\x55\xf1\x56\xf1\x57\xf1\x58\xf1\x59\xf1\x5a\xf1\x5b\xf1\x5c\xf1\x5d\xf1\x5e\xf1\x5f\xf1\x60\xf1\x61\xf1\x62\xf1\x63\xf1\x64\xf1\x65\xf1\x66\xf1\x67\xf1\x68\xf1\x69\xf1\x6a\xf1\x6b\xf1\x6c\xf1\x6d\xf1\x6e\xf1\x6f\xf1\x70\xf1\x71\xf1\x72\xf1\x73\xf1\x74\xf1\x75\xf1\x76\xf1\x77\xf1\x78\xf1\x79\xf1\x7a\xf1\x7b\xf1\x7c\xf1\x7d\xf1\x7e\xf1\x7f\xf1\x80\xf1\x81\xf1\x82\xf1\x83\xf1\x84\xf1\x85\xf1\x86\xf1\x87\xf1\x88\xf1\x89\xf1\x8a\xf1\x8b\xf1\x8c\xf1\x8d\xf1\x8e\xf1\x8f\xf1\x90\xf1\x91\xf1\x92\xf1\x93\xf1\x94\xf1\x95\xf1\x96\xf1\x97\xf1\x98\xf1\x99\xf1\x9a\xf1\x9b\xf1\x9c\xf1\x9d\xf1\x9e\xf1\x9f\x00\x00\x00\x00", /* da00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\xa0\xf1\xa1\xf1\xa2\xf1\xa3\xf1\xa4\xf1\xa5\xf1\xa6\xf1\xa7\xf1\xa8\xf1\xa9\xf1\xaa\xf1\xab\xf1\xac\xf1\xad\xf1\xae\xf1\xaf\xf1\xb0\xf1\xb1\xf1\xb2\xf1\xb3\xf1\xb4\xf1\xb5\xf1\xb6\xf1\xb7\xf1\xb8\xf1\xb9\xf1\xba\xf1\xbb\xf1\xbc\xf1\xbd\xf1\xbe\xf1\xbf\xf1\xc0\xf1\xc1\xf1\xc2\xf1\xc3\xf1\xc4\xf1\xc5\xf1\xc6\xf1\xc7\xf1\xc8\xf1\xc9\xf1\xca\xf1\xcb\xf1\xcc\xf1\xcd\xf1\xce\xf1\xcf\xf1\xd0\xf1\xd1\xf1\xd2\xf1\xd3\xf1\xd4\xf1\xd5\xf1\xd6\xf1\xd7\xf1\xd8\xf1\xd9\xf1\xda\xf1\xdb\xf1\xdc\xf1\xdd\xf1\xde", /* da80 */ "\x00\x00\xf1\xdf\xf1\xe0\xf1\xe1\xf1\xe2\xf1\xe3\xf1\xe4\xf1\xe5\xf1\xe6\xf1\xe7\xf1\xe8\xf1\xe9\xf1\xea\xf1\xeb\xf1\xec\xf1\xed\xf1\xee\xf1\xef\xf1\xf0\xf1\xf1\xf1\xf2\xf1\xf3\xf1\xf4\xf1\xf5\xf1\xf6\xf1\xf7\xf1\xf8\xf1\xf9\xf1\xfa\xf1\xfb\xf1\xfc\xf1\xfd\xf1\xfe\xf1\xff\xf2\x00\xf2\x01\xf2\x02\xf2\x03\xf2\x04\xf2\x05\xf2\x06\xf2\x07\xf2\x08\xf2\x09\xf2\x0a\xf2\x0b\xf2\x0c\xf2\x0d\xf2\x0e\xf2\x0f\xf2\x10\xf2\x11\xf2\x12\xf2\x13\xf2\x14\xf2\x15\xf2\x16\xf2\x17\xf2\x18\xf2\x19\xf2\x1a\xf2\x1b\xf2\x1c\xf2\x1d\xf2\x1e\xf2\x1f\xf2\x20\xf2\x21\xf2\x22\xf2\x23\xf2\x24\xf2\x25\xf2\x26\xf2\x27\xf2\x28\xf2\x29\xf2\x2a\xf2\x2b\xf2\x2c\xf2\x2d\xf2\x2e\xf2\x2f\xf2\x30\xf2\x31\xf2\x32\xf2\x33\xf2\x34\xf2\x35\xf2\x36\xf2\x37\xf2\x38\xf2\x39\xf2\x3a\xf2\x3b\xf2\x3c\xf2\x3d\xf2\x3e\xf2\x3f\xf2\x40\xf2\x41\xf2\x42\xf2\x43\xf2\x44\xf2\x45\xf2\x46\xf2\x47\xf2\x48\xf2\x49\xf2\x4a\xf2\x4b\xf2\x4c\xf2\x4d\xf2\x4e\xf2\x4f\xf2\x50\xf2\x51\xf2\x52\xf2\x53\xf2\x54\xf2\x55\xf2\x56\xf2\x57\xf2\x58\xf2\x59\xf2\x5a\xf2\x5b\x00\x00\x00\x00", /* db00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x5c\xf2\x5d\xf2\x5e\xf2\x5f\xf2\x60\xf2\x61\xf2\x62\xf2\x63\xf2\x64\xf2\x65\xf2\x66\xf2\x67\xf2\x68\xf2\x69\xf2\x6a\xf2\x6b\xf2\x6c\xf2\x6d\xf2\x6e\xf2\x6f\xf2\x70\xf2\x71\xf2\x72\xf2\x73\xf2\x74\xf2\x75\xf2\x76\xf2\x77\xf2\x78\xf2\x79\xf2\x7a\xf2\x7b\xf2\x7c\xf2\x7d\xf2\x7e\xf2\x7f\xf2\x80\xf2\x81\xf2\x82\xf2\x83\xf2\x84\xf2\x85\xf2\x86\xf2\x87\xf2\x88\xf2\x89\xf2\x8a\xf2\x8b\xf2\x8c\xf2\x8d\xf2\x8e\xf2\x8f\xf2\x90\xf2\x91\xf2\x92\xf2\x93\xf2\x94\xf2\x95\xf2\x96\xf2\x97\xf2\x98\xf2\x99\xf2\x9a", /* db80 */ "\x00\x00\xf2\x9b\xf2\x9c\xf2\x9d\xf2\x9e\xf2\x9f\xf2\xa0\xf2\xa1\xf2\xa2\xf2\xa3\xf2\xa4\xf2\xa5\xf2\xa6\xf2\xa7\xf2\xa8\xf2\xa9\xf2\xaa\xf2\xab\xf2\xac\xf2\xad\xf2\xae\xf2\xaf\xf2\xb0\xf2\xb1\xf2\xb2\xf2\xb3\xf2\xb4\xf2\xb5\xf2\xb6\xf2\xb7\xf2\xb8\xf2\xb9\xf2\xba\xf2\xbb\xf2\xbc\xf2\xbd\xf2\xbe\xf2\xbf\xf2\xc0\xf2\xc1\xf2\xc2\xf2\xc3\xf2\xc4\xf2\xc5\xf2\xc6\xf2\xc7\xf2\xc8\xf2\xc9\xf2\xca\xf2\xcb\xf2\xcc\xf2\xcd\xf2\xce\xf2\xcf\xf2\xd0\xf2\xd1\xf2\xd2\xf2\xd3\xf2\xd4\xf2\xd5\xf2\xd6\xf2\xd7\xf2\xd8\xf2\xd9\xf2\xda\xf2\xdb\xf2\xdc\xf2\xdd\xf2\xde\xf2\xdf\xf2\xe0\xf2\xe1\xf2\xe2\xf2\xe3\xf2\xe4\xf2\xe5\xf2\xe6\xf2\xe7\xf2\xe8\xf2\xe9\xf2\xea\xf2\xeb\xf2\xec\xf2\xed\xf2\xee\xf2\xef\xf2\xf0\xf2\xf1\xf2\xf2\xf2\xf3\xf2\xf4\xf2\xf5\xf2\xf6\xf2\xf7\xf2\xf8\xf2\xf9\xf2\xfa\xf2\xfb\xf2\xfc\xf2\xfd\xf2\xfe\xf2\xff\xf3\x00\xf3\x01\xf3\x02\xf3\x03\xf3\x04\xf3\x05\xf3\x06\xf3\x07\xf3\x08\xf3\x09\xf3\x0a\xf3\x0b\xf3\x0c\xf3\x0d\xf3\x0e\xf3\x0f\xf3\x10\xf3\x11\xf3\x12\xf3\x13\xf3\x14\xf3\x15\xf3\x16\xf3\x17\x00\x00\x00\x00", /* dc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x18\xf3\x19\xf3\x1a\xf3\x1b\xf3\x1c\xf3\x1d\xf3\x1e\xf3\x1f\xf3\x20\xf3\x21\xf3\x22\xf3\x23\xf3\x24\xf3\x25\xf3\x26\xf3\x27\xf3\x28\xf3\x29\xf3\x2a\xf3\x2b\xf3\x2c\xf3\x2d\xf3\x2e\xf3\x2f\xf3\x30\xf3\x31\xf3\x32\xf3\x33\xf3\x34\xf3\x35\xf3\x36\xf3\x37\xf3\x38\xf3\x39\xf3\x3a\xf3\x3b\xf3\x3c\xf3\x3d\xf3\x3e\xf3\x3f\xf3\x40\xf3\x41\xf3\x42\xf3\x43\xf3\x44\xf3\x45\xf3\x46\xf3\x47\xf3\x48\xf3\x49\xf3\x4a\xf3\x4b\xf3\x4c\xf3\x4d\xf3\x4e\xf3\x4f\xf3\x50\xf3\x51\xf3\x52\xf3\x53\xf3\x54\xf3\x55\xf3\x56", /* dc80 */ "\x00\x00\xf3\x57\xf3\x58\xf3\x59\xf3\x5a\xf3\x5b\xf3\x5c\xf3\x5d\xf3\x5e\xf3\x5f\xf3\x60\xf3\x61\xf3\x62\xf3\x63\xf3\x64\xf3\x65\xf3\x66\xf3\x67\xf3\x68\xf3\x69\xf3\x6a\xf3\x6b\xf3\x6c\xf3\x6d\xf3\x6e\xf3\x6f\xf3\x70\xf3\x71\xf3\x72\xf3\x73\xf3\x74\xf3\x75\xf3\x76\xf3\x77\xf3\x78\xf3\x79\xf3\x7a\xf3\x7b\xf3\x7c\xf3\x7d\xf3\x7e\xf3\x7f\xf3\x80\xf3\x81\xf3\x82\xf3\x83\xf3\x84\xf3\x85\xf3\x86\xf3\x87\xf3\x88\xf3\x89\xf3\x8a\xf3\x8b\xf3\x8c\xf3\x8d\xf3\x8e\xf3\x8f\xf3\x90\xf3\x91\xf3\x92\xf3\x93\xf3\x94\xf3\x95\xf3\x96\xf3\x97\xf3\x98\xf3\x99\xf3\x9a\xf3\x9b\xf3\x9c\xf3\x9d\xf3\x9e\xf3\x9f\xf3\xa0\xf3\xa1\xf3\xa2\xf3\xa3\xf3\xa4\xf3\xa5\xf3\xa6\xf3\xa7\xf3\xa8\xf3\xa9\xf3\xaa\xf3\xab\xf3\xac\xf3\xad\xf3\xae\xf3\xaf\xf3\xb0\xf3\xb1\xf3\xb2\xf3\xb3\xf3\xb4\xf3\xb5\xf3\xb6\xf3\xb7\xf3\xb8\xf3\xb9\xf3\xba\xf3\xbb\xf3\xbc\xf3\xbd\xf3\xbe\xf3\xbf\xf3\xc0\xf3\xc1\xf3\xc2\xf3\xc3\xf3\xc4\xf3\xc5\xf3\xc6\xf3\xc7\xf3\xc8\xf3\xc9\xf3\xca\xf3\xcb\xf3\xcc\xf3\xcd\xf3\xce\xf3\xcf\xf3\xd0\xf3\xd1\xf3\xd2\xf3\xd3\x00\x00\x00\x00", /* dd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xd4\xf3\xd5\xf3\xd6\xf3\xd7\xf3\xd8\xf3\xd9\xf3\xda\xf3\xdb\xf3\xdc\xf3\xdd\xf3\xde\xf3\xdf\xf3\xe0\xf3\xe1\xf3\xe2\xf3\xe3\xf3\xe4\xf3\xe5\xf3\xe6\xf3\xe7\xf3\xe8\xf3\xe9\xf3\xea\xf3\xeb\xf3\xec\xf3\xed\xf3\xee\xf3\xef\xf3\xf0\xf3\xf1\xf3\xf2\xf3\xf3\xf3\xf4\xf3\xf5\xf3\xf6\xf3\xf7\xf3\xf8\xf3\xf9\xf3\xfa\xf3\xfb\xf3\xfc\xf3\xfd\xf3\xfe\xf3\xff\xf4\x00\xf4\x01\xf4\x02\xf4\x03\xf4\x04\xf4\x05\xf4\x06\xf4\x07\xf4\x08\xf4\x09\xf4\x0a\xf4\x0b\xf4\x0c\xf4\x0d\xf4\x0e\xf4\x0f\xf4\x10\xf4\x11\xf4\x12", /* dd80 */ "\x00\x00\xf4\x13\xf4\x14\xf4\x15\xf4\x16\xf4\x17\xf4\x18\xf4\x19\xf4\x1a\xf4\x1b\xf4\x1c\xf4\x1d\xf4\x1e\xf4\x1f\xf4\x20\xf4\x21\xf4\x22\xf4\x23\xf4\x24\xf4\x25\xf4\x26\xf4\x27\xf4\x28\xf4\x29\xf4\x2a\xf4\x2b\xf4\x2c\xf4\x2d\xf4\x2e\xf4\x2f\xf4\x30\xf4\x31\xf4\x32\xf4\x33\xf4\x34\xf4\x35\xf4\x36\xf4\x37\xf4\x38\xf4\x39\xf4\x3a\xf4\x3b\xf4\x3c\xf4\x3d\xf4\x3e\xf4\x3f\xf4\x40\xf4\x41\xf4\x42\xf4\x43\xf4\x44\xf4\x45\xf4\x46\xf4\x47\xf4\x48\xf4\x49\xf4\x4a\xf4\x4b\xf4\x4c\xf4\x4d\xf4\x4e\xf4\x4f\xf4\x50\xf4\x51\xf4\x52\xf4\x53\xf4\x54\xf4\x55\xf4\x56\xf4\x57\xf4\x58\xf4\x59\xf4\x5a\xf4\x5b\xf4\x5c\xf4\x5d\xf4\x5e\xf4\x5f\xf4\x60\xf4\x61\xf4\x62\xf4\x63\xf4\x64\xf4\x65\xf4\x66\xf4\x67\xf4\x68\xf4\x69\xf4\x6a\xf4\x6b\xf4\x6c\xf4\x6d\xf4\x6e\xf4\x6f\xf4\x70\xf4\x71\xf4\x72\xf4\x73\xf4\x74\xf4\x75\xf4\x76\xf4\x77\xf4\x78\xf4\x79\xf4\x7a\xf4\x7b\xf4\x7c\xf4\x7d\xf4\x7e\xf4\x7f\xf4\x80\xf4\x81\xf4\x82\xf4\x83\xf4\x84\xf4\x85\xf4\x86\xf4\x87\xf4\x88\xf4\x89\xf4\x8a\xf4\x8b\xf4\x8c\xf4\x8d\xf4\x8e\xf4\x8f\x00\x00\x00\x00", /* de00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x90\xf4\x91\xf4\x92\xf4\x93\xf4\x94\xf4\x95\xf4\x96\xf4\x97\xf4\x98\xf4\x99\xf4\x9a\xf4\x9b\xf4\x9c\xf4\x9d\xf4\x9e\xf4\x9f\xf4\xa0\xf4\xa1\xf4\xa2\xf4\xa3\xf4\xa4\xf4\xa5\xf4\xa6\xf4\xa7\xf4\xa8\xf4\xa9\xf4\xaa\xf4\xab\xf4\xac\xf4\xad\xf4\xae\xf4\xaf\xf4\xb0\xf4\xb1\xf4\xb2\xf4\xb3\xf4\xb4\xf4\xb5\xf4\xb6\xf4\xb7\xf4\xb8\xf4\xb9\xf4\xba\xf4\xbb\xf4\xbc\xf4\xbd\xf4\xbe\xf4\xbf\xf4\xc0\xf4\xc1\xf4\xc2\xf4\xc3\xf4\xc4\xf4\xc5\xf4\xc6\xf4\xc7\xf4\xc8\xf4\xc9\xf4\xca\xf4\xcb\xf4\xcc\xf4\xcd\xf4\xce", /* de80 */ "\x00\x00\xf4\xcf\xf4\xd0\xf4\xd1\xf4\xd2\xf4\xd3\xf4\xd4\xf4\xd5\xf4\xd6\xf4\xd7\xf4\xd8\xf4\xd9\xf4\xda\xf4\xdb\xf4\xdc\xf4\xdd\xf4\xde\xf4\xdf\xf4\xe0\xf4\xe1\xf4\xe2\xf4\xe3\xf4\xe4\xf4\xe5\xf4\xe6\xf4\xe7\xf4\xe8\xf4\xe9\xf4\xea\xf4\xeb\xf4\xec\xf4\xed\xf4\xee\xf4\xef\xf4\xf0\xf4\xf1\xf4\xf2\xf4\xf3\xf4\xf4\xf4\xf5\xf4\xf6\xf4\xf7\xf4\xf8\xf4\xf9\xf4\xfa\xf4\xfb\xf4\xfc\xf4\xfd\xf4\xfe\xf4\xff\xf5\x00\xf5\x01\xf5\x02\xf5\x03\xf5\x04\xf5\x05\xf5\x06\xf5\x07\xf5\x08\xf5\x09\xf5\x0a\xf5\x0b\xf5\x0c\xf5\x0d\xf5\x0e\xf5\x0f\xf5\x10\xf5\x11\xf5\x12\xf5\x13\xf5\x14\xf5\x15\xf5\x16\xf5\x17\xf5\x18\xf5\x19\xf5\x1a\xf5\x1b\xf5\x1c\xf5\x1d\xf5\x1e\xf5\x1f\xf5\x20\xf5\x21\xf5\x22\xf5\x23\xf5\x24\xf5\x25\xf5\x26\xf5\x27\xf5\x28\xf5\x29\xf5\x2a\xf5\x2b\xf5\x2c\xf5\x2d\xf5\x2e\xf5\x2f\xf5\x30\xf5\x31\xf5\x32\xf5\x33\xf5\x34\xf5\x35\xf5\x36\xf5\x37\xf5\x38\xf5\x39\xf5\x3a\xf5\x3b\xf5\x3c\xf5\x3d\xf5\x3e\xf5\x3f\xf5\x40\xf5\x41\xf5\x42\xf5\x43\xf5\x44\xf5\x45\xf5\x46\xf5\x47\xf5\x48\xf5\x49\xf5\x4a\xf5\x4b\x00\x00\x00\x00", /* df00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x4c\xf5\x4d\xf5\x4e\xf5\x4f\xf5\x50\xf5\x51\xf5\x52\xf5\x53\xf5\x54\xf5\x55\xf5\x56\xf5\x57\xf5\x58\xf5\x59\xf5\x5a\xf5\x5b\xf5\x5c\xf5\x5d\xf5\x5e\xf5\x5f\xf5\x60\xf5\x61\xf5\x62\xf5\x63\xf5\x64\xf5\x65\xf5\x66\xf5\x67\xf5\x68\xf5\x69\xf5\x6a\xf5\x6b\xf5\x6c\xf5\x6d\xf5\x6e\xf5\x6f\xf5\x70\xf5\x71\xf5\x72\xf5\x73\xf5\x74\xf5\x75\xf5\x76\xf5\x77\xf5\x78\xf5\x79\xf5\x7a\xf5\x7b\xf5\x7c\xf5\x7d\xf5\x7e\xf5\x7f\xf5\x80\xf5\x81\xf5\x82\xf5\x83\xf5\x84\xf5\x85\xf5\x86\xf5\x87\xf5\x88\xf5\x89\xf5\x8a", /* df80 */ "\x00\x00\xf5\x8b\xf5\x8c\xf5\x8d\xf5\x8e\xf5\x8f\xf5\x90\xf5\x91\xf5\x92\xf5\x93\xf5\x94\xf5\x95\xf5\x96\xf5\x97\xf5\x98\xf5\x99\xf5\x9a\xf5\x9b\xf5\x9c\xf5\x9d\xf5\x9e\xf5\x9f\xf5\xa0\xf5\xa1\xf5\xa2\xf5\xa3\xf5\xa4\xf5\xa5\xf5\xa6\xf5\xa7\xf5\xa8\xf5\xa9\xf5\xaa\xf5\xab\xf5\xac\xf5\xad\xf5\xae\xf5\xaf\xf5\xb0\xf5\xb1\xf5\xb2\xf5\xb3\xf5\xb4\xf5\xb5\xf5\xb6\xf5\xb7\xf5\xb8\xf5\xb9\xf5\xba\xf5\xbb\xf5\xbc\xf5\xbd\xf5\xbe\xf5\xbf\xf5\xc0\xf5\xc1\xf5\xc2\xf5\xc3\xf5\xc4\xf5\xc5\xf5\xc6\xf5\xc7\xf5\xc8\xf5\xc9\xf5\xca\xf5\xcb\xf5\xcc\xf5\xcd\xf5\xce\xf5\xcf\xf5\xd0\xf5\xd1\xf5\xd2\xf5\xd3\xf5\xd4\xf5\xd5\xf5\xd6\xf5\xd7\xf5\xd8\xf5\xd9\xf5\xda\xf5\xdb\xf5\xdc\xf5\xdd\xf5\xde\xf5\xdf\xf5\xe0\xf5\xe1\xf5\xe2\xf5\xe3\xf5\xe4\xf5\xe5\xf5\xe6\xf5\xe7\xf5\xe8\xf5\xe9\xf5\xea\xf5\xeb\xf5\xec\xf5\xed\xf5\xee\xf5\xef\xf5\xf0\xf5\xf1\xf5\xf2\xf5\xf3\xf5\xf4\xf5\xf5\xf5\xf6\xf5\xf7\xf5\xf8\xf5\xf9\xf5\xfa\xf5\xfb\xf5\xfc\xf5\xfd\xf5\xfe\xf5\xff\xf6\x00\xf6\x01\xf6\x02\xf6\x03\xf6\x04\xf6\x05\xf6\x06\xf6\x07\x00\x00\x00\x00", /* e000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x08\xf6\x09\xf6\x0a\xf6\x0b\xf6\x0c\xf6\x0d\xf6\x0e\xf6\x0f\xf6\x10\xf6\x11\xf6\x12\xf6\x13\xf6\x14\xf6\x15\xf6\x16\xf6\x17\xf6\x18\xf6\x19\xf6\x1a\xf6\x1b\xf6\x1c\xf6\x1d\xf6\x1e\xf6\x1f\xf6\x20\xf6\x21\xf6\x22\xf6\x23\xf6\x24\xf6\x25\xf6\x26\xf6\x27\xf6\x28\xf6\x29\xf6\x2a\xf6\x2b\xf6\x2c\xf6\x2d\xf6\x2e\xf6\x2f\xf6\x30\xf6\x31\xf6\x32\xf6\x33\xf6\x34\xf6\x35\xf6\x36\xf6\x37\xf6\x38\xf6\x39\xf6\x3a\xf6\x3b\xf6\x3c\xf6\x3d\xf6\x3e\xf6\x3f\xf6\x40\xf6\x41\xf6\x42\xf6\x43\xf6\x44\xf6\x45\xf6\x46", /* e080 */ "\x00\x00\xf6\x47\xf6\x48\xf6\x49\xf6\x4a\xf6\x4b\xf6\x4c\xf6\x4d\xf6\x4e\xf6\x4f\xf6\x50\xf6\x51\xf6\x52\xf6\x53\xf6\x54\xf6\x55\xf6\x56\xf6\x57\xf6\x58\xf6\x59\xf6\x5a\xf6\x5b\xf6\x5c\xf6\x5d\xf6\x5e\xf6\x5f\xf6\x60\xf6\x61\xf6\x62\xf6\x63\xf6\x64\xf6\x65\xf6\x66\xf6\x67\xf6\x68\xf6\x69\xf6\x6a\xf6\x6b\xf6\x6c\xf6\x6d\xf6\x6e\xf6\x6f\xf6\x70\xf6\x71\xf6\x72\xf6\x73\xf6\x74\xf6\x75\xf6\x76\xf6\x77\xf6\x78\xf6\x79\xf6\x7a\xf6\x7b\xf6\x7c\xf6\x7d\xf6\x7e\xf6\x7f\xf6\x80\xf6\x81\xf6\x82\xf6\x83\xf6\x84\xf6\x85\xf6\x86\xf6\x87\xf6\x88\xf6\x89\xf6\x8a\xf6\x8b\xf6\x8c\xf6\x8d\xf6\x8e\xf6\x8f\xf6\x90\xf6\x91\xf6\x92\xf6\x93\xf6\x94\xf6\x95\xf6\x96\xf6\x97\xf6\x98\xf6\x99\xf6\x9a\xf6\x9b\xf6\x9c\xf6\x9d\xf6\x9e\xf6\x9f\xf6\xa0\xf6\xa1\xf6\xa2\xf6\xa3\xf6\xa4\xf6\xa5\xf6\xa6\xf6\xa7\xf6\xa8\xf6\xa9\xf6\xaa\xf6\xab\xf6\xac\xf6\xad\xf6\xae\xf6\xaf\xf6\xb0\xf6\xb1\xf6\xb2\xf6\xb3\xf6\xb4\xf6\xb5\xf6\xb6\xf6\xb7\xf6\xb8\xf6\xb9\xf6\xba\xf6\xbb\xf6\xbc\xf6\xbd\xf6\xbe\xf6\xbf\xf6\xc0\xf6\xc1\xf6\xc2\xf6\xc3\x00\x00\x00\x00", /* e100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xc4\xf6\xc5\xf6\xc6\xf6\xc7\xf6\xc8\xf6\xc9\xf6\xca\xf6\xcb\xf6\xcc\xf6\xcd\xf6\xce\xf6\xcf\xf6\xd0\xf6\xd1\xf6\xd2\xf6\xd3\xf6\xd4\xf6\xd5\xf6\xd6\xf6\xd7\xf6\xd8\xf6\xd9\xf6\xda\xf6\xdb\xf6\xdc\xf6\xdd\xf6\xde\xf6\xdf\xf6\xe0\xf6\xe1\xf6\xe2\xf6\xe3\xf6\xe4\xf6\xe5\xf6\xe6\xf6\xe7\xf6\xe8\xf6\xe9\xf6\xea\xf6\xeb\xf6\xec\xf6\xed\xf6\xee\xf6\xef\xf6\xf0\xf6\xf1\xf6\xf2\xf6\xf3\xf6\xf4\xf6\xf5\xf6\xf6\xf6\xf7\xf6\xf8\xf6\xf9\xf6\xfa\xf6\xfb\xf6\xfc\xf6\xfd\xf6\xfe\xf6\xff\xf7\x00\xf7\x01\xf7\x02", /* e180 */ "\x00\x00\xf7\x03\xf7\x04\xf7\x05\xf7\x06\xf7\x07\xf7\x08\xf7\x09\xf7\x0a\xf7\x0b\xf7\x0c\xf7\x0d\xf7\x0e\xf7\x0f\xf7\x10\xf7\x11\xf7\x12\xf7\x13\xf7\x14\xf7\x15\xf7\x16\xf7\x17\xf7\x18\xf7\x19\xf7\x1a\xf7\x1b\xf7\x1c\xf7\x1d\xf7\x1e\xf7\x1f\xf7\x20\xf7\x21\xf7\x22\xf7\x23\xf7\x24\xf7\x25\xf7\x26\xf7\x27\xf7\x28\xf7\x29\xf7\x2a\xf7\x2b\xf7\x2c\xf7\x2d\xf7\x2e\xf7\x2f\xf7\x30\xf7\x31\xf7\x32\xf7\x33\xf7\x34\xf7\x35\xf7\x36\xf7\x37\xf7\x38\xf7\x39\xf7\x3a\xf7\x3b\xf7\x3c\xf7\x3d\xf7\x3e\xf7\x3f\xf7\x40\xf7\x41\xf7\x42\xf7\x43\xf7\x44\xf7\x45\xf7\x46\xf7\x47\xf7\x48\xf7\x49\xf7\x4a\xf7\x4b\xf7\x4c\xf7\x4d\xf7\x4e\xf7\x4f\xf7\x50\xf7\x51\xf7\x52\xf7\x53\xf7\x54\xf7\x55\xf7\x56\xf7\x57\xf7\x58\xf7\x59\xf7\x5a\xf7\x5b\xf7\x5c\xf7\x5d\xf7\x5e\xf7\x5f\xf7\x60\xf7\x61\xf7\x62\xf7\x63\xf7\x64\xf7\x65\xf7\x66\xf7\x67\xf7\x68\xf7\x69\xf7\x6a\xf7\x6b\xf7\x6c\xf7\x6d\xf7\x6e\xf7\x6f\xf7\x70\xf7\x71\xf7\x72\xf7\x73\xf7\x74\xf7\x75\xf7\x76\xf7\x77\xf7\x78\xf7\x79\xf7\x7a\xf7\x7b\xf7\x7c\xf7\x7d\xf7\x7e\xf7\x7f\x00\x00\x00\x00", /* e200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x80\xf7\x81\xf7\x82\xf7\x83\xf7\x84\xf7\x85\xf7\x86\xf7\x87\xf7\x88\xf7\x89\xf7\x8a\xf7\x8b\xf7\x8c\xf7\x8d\xf7\x8e\xf7\x8f\xf7\x90\xf7\x91\xf7\x92\xf7\x93\xf7\x94\xf7\x95\xf7\x96\xf7\x97\xf7\x98\xf7\x99\xf7\x9a\xf7\x9b\xf7\x9c\xf7\x9d\xf7\x9e\xf7\x9f\xf7\xa0\xf7\xa1\xf7\xa2\xf7\xa3\xf7\xa4\xf7\xa5\xf7\xa6\xf7\xa7\xf7\xa8\xf7\xa9\xf7\xaa\xf7\xab\xf7\xac\xf7\xad\xf7\xae\xf7\xaf\xf7\xb0\xf7\xb1\xf7\xb2\xf7\xb3\xf7\xb4\xf7\xb5\xf7\xb6\xf7\xb7\xf7\xb8\xf7\xb9\xf7\xba\xf7\xbb\xf7\xbc\xf7\xbd\xf7\xbe", /* e280 */ "\x00\x00\xf7\xbf\xf7\xc0\xf7\xc1\xf7\xc2\xf7\xc3\xf7\xc4\xf7\xc5\xf7\xc6\xf7\xc7\xf7\xc8\xf7\xc9\xf7\xca\xf7\xcb\xf7\xcc\xf7\xcd\xf7\xce\xf7\xcf\xf7\xd0\xf7\xd1\xf7\xd2\xf7\xd3\xf7\xd4\xf7\xd5\xf7\xd6\xf7\xd7\xf7\xd8\xf7\xd9\xf7\xda\xf7\xdb\xf7\xdc\xf7\xdd\xf7\xde\xf7\xdf\xf7\xe0\xf7\xe1\xf7\xe2\xf7\xe3\xf7\xe4\xf7\xe5\xf7\xe6\xf7\xe7\xf7\xe8\xf7\xe9\xf7\xea\xf7\xeb\xf7\xec\xf7\xed\xf7\xee\xf7\xef\xf7\xf0\xf7\xf1\xf7\xf2\xf7\xf3\xf7\xf4\xf7\xf5\xf7\xf6\xf7\xf7\xf7\xf8\xf7\xf9\xf7\xfa\xf7\xfb\xf7\xfc\xf7\xfd\xf7\xfe\xf7\xff\xf8\x00\xf8\x01\xf8\x02\xf8\x03\xf8\x04\xf8\x05\xf8\x06\xf8\x07\xf8\x08\xf8\x09\xf8\x0a\xf8\x0b\xf8\x0c\xf8\x0d\xf8\x0e\xf8\x0f\xf8\x10\xf8\x11\xf8\x12\xf8\x13\xf8\x14\xf8\x15\xf8\x16\xf8\x17\xf8\x18\xf8\x19\xf8\x1a\xf8\x1b\xf8\x1c\xf8\x1d\xf8\x1e\xf8\x1f\xf8\x20\xf8\x21\xf8\x22\xf8\x23\xf8\x24\xf8\x25\xf8\x26\xf8\x27\xf8\x28\xf8\x29\xf8\x2a\xf8\x2b\xf8\x2c\xf8\x2d\xf8\x2e\xf8\x2f\xf8\x30\xf8\x31\xf8\x32\xf8\x33\xf8\x34\xf8\x35\xf8\x36\xf8\x37\xf8\x38\xf8\x39\xf8\x3a\xf8\x3b\x00\x00\x00\x00", /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp1388", "0x03a90345" /* 937, 837 */, "gb18030.2000-1,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-1388_P103-2001 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x88\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x00\x00\x43\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x44\x46\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x48\x46\x46\x46\x5a\x00\x00\x46\x4c\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x46\x50\x46\x4e\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x46\x54\x46\x52\x00\x00\x46\x59\x00\x00\x00\x00\x00\x00", /* 0100 */ "\x00\x00\x46\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5d\x00\x00\x00\x00\x00\x00\x46\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x46\x4b\x00\x00\x46\x4f\x00\x00\x46\x53\x00\x00\x46\x55\x00\x00\x46\x56\x00\x00\x46\x57\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x46\x00\x00\x45\x45\xcd\x41\xcd\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ "\x47\x5d\x47\x5e\x47\x5f\x47\x60\x47\x61\x47\x62\x47\x63\x47\x64\x47\x65\x47\x66\x47\x67\x47\x68\x47\x69\x47\x6a\x47\x6b\x47\x6c\x47\x6d\x47\x6e\x47\x6f\x47\x70\x47\x71\x47\x72\x47\x73\x47\x74\x47\x75\x47\x76\x47\x77\x47\x78\x47\x79\x47\x7a\x47\x7b\x47\x7c\x47\x7d\x47\x7e\x47\x7f\x47\x80\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8d\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x47\xa1\x47\xa2\x47\xa3\x47\xa4\x47\xa5\x47\xa6\x47\xa7\x47\xa8\x47\xa9\x47\xaa\x47\xab\x47\xac\x47\xad\x47\xae\x47\xaf\x47\xb0\x47\xb1\x47\xb2\x47\xb3\x47\xb4\x47\xb5\x47\xb6\x47\xb7\x47\xb8\x47\xb9\x47\xba\x47\xbb\x47\xbc\x47\xbd\x47\xbe\x47\xbf\x47\xc0\x47\xc1\x47\xc2\x47\xc3\x47\xc4\x47\xc5\x47\xc6\x47\xc7\x47\xc8\x47\xc9\x47\xca\x47\xcb\x47\xcc\x47\xcd\x47\xce\x47\xcf\x47\xd0\x47\xd1\x47\xd2\x47\xd3\x47\xd4\x47\xd5\x47\xd6\x47\xd7\x47\xd8\x47\xd9\x47\xda\x47\xdb\x47\xdc", /* 0680 */ "\x47\xdd\x47\xde\x47\xdf\x47\xe0\x47\xe1\x47\xe2\x47\xe3\x47\xe4\x47\xe5\x47\xe6\x47\xe7\x47\xe8\x47\xe9\x47\xea\x47\xeb\x47\xec\x47\xed\x47\xee\x47\xef\x47\xf0\x47\xf1\x47\xf2\x47\xf3\x47\xf4\x47\xf5\x47\xf6\x47\xf7\x47\xf8\x47\xf9\x47\xfa\x47\xfb\x47\xfc\x47\xfd\x47\xfe\x48\x41\x48\x42\x48\x43\x48\x44\x48\x45\x48\x46\x48\x47\x48\x48\x48\x49\x48\x4a\x48\x4b\x48\x4c\x48\x4d\x48\x4e\x48\x4f\x48\x50\x48\x51\x48\x52\x48\x53\x48\x54\x48\x55\x48\x56\x48\x57\x48\x58\x48\x59\x48\x5a\x48\x5b\x48\x5c\x48\x5d\x48\x5e\x48\x5f\x48\x60\x48\x61\x48\x62\x48\x63\x48\x64\x48\x65\x48\x66\x48\x67\x48\x68\x48\x69\x48\x6a\x48\x6b\x48\x6c\x48\x6d\x48\x6e\x48\x6f\x48\x70\x48\x71\x48\x72\x48\x73\x48\x74\x48\x75\x48\x76\x48\x77\x48\x78\x48\x79\x48\x7a\x48\x7b\x48\x7c\x48\x7d\x48\x7e\x48\x7f\x48\x80\x48\x81\x48\x82\x48\x83\x48\x84\x48\x85\x48\x86\x48\x87\x48\x88\x48\x89\x48\x8a\x48\x8b\x48\x8c\x48\x8d\x48\x8e\x48\x8f\x48\x90\x48\x91\x48\x92\x48\x93\x48\x94\x48\x95\x48\x96\x48\x97\x48\x98\x48\x99\x48\x9a\x48\x9b\x48\x9c\x48\x9d\x48\x9e", /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ "\x6d\x41\x6d\x42\x6d\x43\x6d\x44\x6d\x45\x6d\x46\x6d\x47\x6d\x48\x6d\x49\x6d\x4a\x6d\x4b\x6d\x4c\x6d\x4d\x6d\x4e\x6d\x4f\x6d\x50\x6d\x51\x6d\x52\x6d\x53\x6d\x54\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x59\x6d\x5a\x6d\x5b\x6d\x5c\x6d\x5d\x6d\x5e\x6d\x5f\x6d\x60\x6d\x61\x6d\x62\x6d\x63\x6d\x64\x6d\x65\x6d\x66\x6d\x67\x6d\x68\x6d\x69\x6d\x6a\x6d\x6b\x6d\x6c\x6d\x6d\x6d\x6e\x6d\x6f\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x74\x6d\x75\x6d\x76\x6d\x77\x6d\x78\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7c\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x82\x6d\x83\x6d\x84\x6d\x85\x6d\x86\x6d\x87\x6d\x88\x6d\x89\x6d\x8a\x6d\x8b\x6d\x8c\x6d\x8d\x6d\x8e\x6d\x8f\x6d\x90\x6d\x91\x6d\x92\x6d\x93\x6d\x94\x6d\x95\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9b\x6d\x9c\x6d\x9d\x6d\x9e\x6d\x9f\x6d\xa0\x6d\xa1\x6d\xa2\x6d\xa3\x6d\xa4\x6d\xa5\x6d\xa6\x6d\xa7\x6d\xa8\x6d\xa9\x6d\xaa\x6d\xab\x6d\xac\x6d\xad\x6d\xae\x6d\xaf\x6d\xb0\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb4\x6d\xb5\x6d\xb6\x6d\xb7\x6d\xb8\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xbf\x6d\xc0", /* 0f80 */ "\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc4\x6d\xc5\x6d\xc6\x6d\xc7\x6d\xc8\x6d\xc9\x6d\xca\x6d\xcb\x6d\xcc\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd1\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd6\x6d\xd7\x6d\xd8\x6d\xd9\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdd\x6d\xde\x6d\xdf\x6d\xe0\x6d\xe1\x6d\xe2\x6d\xe3\x6d\xe4\x6d\xe5\x6d\xe6\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xeb\x6d\xec\x6d\xed\x6d\xee\x6d\xef\x6d\xf0\x6d\xf1\x6d\xf2\x6d\xf3\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf7\x6d\xf8\x6d\xf9\x6d\xfa\x6d\xfb\x6d\xfc\x6d\xfd\x6d\xfe\x6e\x41\x6e\x42\x6e\x43\x6e\x44\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4d\x6e\x4e\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x53\x6e\x54\x6e\x55\x6e\x56\x6e\x57\x6e\x58\x6e\x59\x6e\x5a\x6e\x5b\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x5f\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6b\x6e\x6c\x6e\x6d\x6e\x6e\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x7e\x6e\x7f\x6e\x80\x6e\x81\x6e\x82", /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ "\x6e\x83\x6e\x84\x6e\x85\x6e\x86\x6e\x87\x6e\x88\x6e\x89\x6e\x8a\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x8f\x6e\x90\x6e\x91\x6e\x92\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x98\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9c\x6e\x9d\x6e\x9e\x6e\x9f\x6e\xa0\x6e\xa1\x6e\xa2\x6e\xa3\x6e\xa4\x6e\xa5\x6e\xa6\x6e\xa7\x6e\xa8\x6e\xa9\x6e\xaa\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xaf\x6e\xb0\x6e\xb1\x6e\xb2\x6e\xb3\x6e\xb4\x6e\xb5\x6e\xb6\x6e\xb7\x6e\xb8\x6e\xb9\x6e\xba\x6e\xbb\x6e\xbc\x6e\xbd\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc1\x6e\xc2\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc7\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcb\x6e\xcc\x6e\xcd\x6e\xce\x6e\xcf\x6e\xd0\x6e\xd1\x6e\xd2\x6e\xd3\x6e\xd4\x6e\xd5\x6e\xd6\x6e\xd7\x6e\xd8\x6e\xd9\x6e\xda\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xde\x6e\xdf\x6e\xe0\x6e\xe1\x6e\xe2\x6e\xe3\x6e\xe4\x6e\xe5\x6e\xe6\x6e\xe7\x6e\xe8\x6e\xe9\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf4\x6e\xf5\x6e\xf6\x6e\xf7\x6e\xf8\x6e\xf9\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6f\x41\x6f\x42\x6f\x43\x6f\x44", /* 1880 */ "\x6f\x45\x6f\x46\x6f\x47\x6f\x48\x6f\x49\x6f\x4a\x6f\x4b\x6f\x4c\x6f\x4d\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x58\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5c\x6f\x5d\x6f\x5e\x6f\x5f\x6f\x60\x6f\x61\x6f\x62\x6f\x63\x6f\x64\x6f\x65\x6f\x66\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6d\x6f\x6e\x6f\x6f\x6f\x70\x6f\x71\x6f\x72\x6f\x73\x6f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\xcd\x44\xcd\x45\x44\x4a\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x8b\x00\x00\x44\xee\x44\xef\x00\x00\xcd\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\xcd\x47\x00\x00\x00\x00\x00\x00\xcd\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\xcd\x49\xcd\x4a\xcd\x4b\xcd\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x66\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\xcd\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6b\x00\x00\x00\x00\x45\x77\x44\x4d\xcd\x4e\x45\x6e\x00\x00\x00\x00\xcd\x4f\x00\x00\x45\x6d\x00\x00\x45\x63\x45\x64\x45\x68\x45\x67\x45\x71\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x45\x62\x45\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x75\x00\x00\x00\x00\x00\x00\x45\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x45\x73\x00\x00\x00\x00\x44\x67\x44\x77\xcd\x51\xcd\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x90\x00\x00\x00\x00\x00\x00\x45\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0", /* 2480 */ "\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2500 */ "\x46\xa4\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x54\xcd\x55\xcd\x56\xcd\x57\xcd\x58\xcd\x59\xcd\x5a\xcd\x5b\xcd\x5c\xcd\x5d\xcd\x5e\xcd\x5f\xcd\x60\xcd\x61\xcd\x62\xcd\x63\xcd\x64\xcd\x65\xcd\x66\xcd\x67\xcd\x68\xcd\x69\xcd\x6a\xcd\x6b\xcd\x6c\xcd\x6d\xcd\x6e\xcd\x6f\xcd\x70\xcd\x71\xcd\x72\xcd\x73\xcd\x74\xcd\x75\xcd\x76\xcd\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\xcd\x78\xcd\x79\xcd\x7a\xcd\x7b\xcd\x7c\xcd\x7d\xcd\x7e\xcd\x7f\xcd\x81\xcd\x82\xcd\x83\xcd\x84\xcd\x85\xcd\x86\xcd\x87\x00\x00\x00\x00\x00\x00\xcd\x88\xcd\x89\xcd\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x8b\xcd\x8c\xcd\x8d\xcd\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\xcd\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ "\x00\x00\xce\x56\x00\x00\x00\x00\xce\x5a\x00\x00\x00\x00\x00\x00\xce\x5d\x00\x00\x00\x00\xce\x5e\xce\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x71\x00\x00\x00\x00\xce\x74\x00\x00\x00\x00\x00\x00\xce\x77\x00\x00\x00\x00\x00\x00\x00\x00\xce\x79\x00\x00\x00\x00\xce\x7a\xce\x7b\x00\x00\x00\x00\x00\x00\xce\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2f00 */ NULL, /* 2f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xca\xcd\xcb\xcd\xcc\xcd\xcd\xcd\xce\xcd\xcf\xcd\xd0\xcd\xd1\xcd\xd2\xcd\xd3\xcd\xd4\xcd\xd5\x00\x00\x00\x00\x00\x00\x00\x00", /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x45\x5b\x45\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x91\xcd\x92\x00\x00\x00\x00\xcd\x93\xcd\x94\xcd\x95\xcd\x96\xcd\x97\xcd\x98\xcd\x99\xcd\x9a\xcd\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xc9\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3300 */ NULL, /* 3380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9d\xcd\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9f\xcd\xa0\xcd\xa1\x00\x00\x00\x00\xcd\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa4\x00\x00\x00\x00\xcd\xa5\xcd\xa6\x00\x00\x00\x00\xcd\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3400 */ "\xcf\x41\xcf\x42\xcf\x43\xcf\x44\xcf\x45\xcf\x46\xcf\x47\xcf\x48\xcf\x49\xcf\x4a\xcf\x4b\xcf\x4c\xcf\x4d\xcf\x4e\xcf\x4f\xcf\x50\xcf\x51\xcf\x52\xcf\x53\xcf\x54\xcf\x55\xcf\x56\xcf\x57\xcf\x58\xcf\x59\xcf\x5a\xcf\x5b\xcf\x5c\xcf\x5d\xcf\x5e\xcf\x5f\xcf\x60\xcf\x61\xcf\x62\xcf\x63\xcf\x64\xcf\x65\xcf\x66\xcf\x67\xcf\x68\xcf\x69\xcf\x6a\xcf\x6b\xcf\x6c\xcf\x6d\xcf\x6e\xcf\x6f\xcf\x70\xcf\x71\xcf\x72\xcf\x73\xcf\x74\xcf\x75\xcf\x76\xcf\x77\xcf\x78\xcf\x79\xcf\x7a\xcf\x7b\xcf\x7c\xcf\x7d\xcf\x7e\xcf\x7f\xcf\x80\xcf\x81\xcf\x82\xcf\x83\xcf\x84\xcf\x85\xcf\x86\xcf\x87\xce\x5c\xcf\x88\xcf\x89\xcf\x8a\xcf\x8b\xcf\x8c\xcf\x8d\xcf\x8e\xcf\x8f\xcf\x90\xcf\x91\xcf\x92\xcf\x93\xcf\x94\xcf\x95\xcf\x96\xcf\x97\xcf\x98\xcf\x99\xcf\x9a\xcf\x9b\xcf\x9c\xcf\x9d\xcf\x9e\xcf\x9f\xcf\xa0\xcf\xa1\xcf\xa2\xcf\xa3\xcf\xa4\xcf\xa5\xcf\xa6\xcf\xa7\xcf\xa8\xcf\xa9\xcf\xaa\xcf\xab\xcf\xac\xcf\xad\xcf\xae\xcf\xaf\xcf\xb0\xcf\xb1\xcf\xb2\xce\x5b\xcf\xb3\xcf\xb4\xcf\xb5\xcf\xb6\xcf\xb7\xcf\xb8\xcf\xb9\xcf\xba\xcf\xbb\xcf\xbc\xcf\xbd\xcf\xbe", /* 3480 */ "\xcf\xbf\xcf\xc0\xcf\xc1\xcf\xc2\xcf\xc3\xcf\xc4\xcf\xc5\xcf\xc6\xcf\xc7\xcf\xc8\xcf\xc9\xcf\xca\xcf\xcb\xcf\xcc\xcf\xcd\xcf\xce\xcf\xcf\xcf\xd0\xcf\xd1\xcf\xd2\xcf\xd3\xcf\xd4\xcf\xd5\xcf\xd6\xcf\xd7\xcf\xd8\xcf\xd9\xcf\xda\xcf\xdb\xcf\xdc\xcf\xdd\xcf\xde\xcf\xdf\xcf\xe0\xcf\xe1\xcf\xe2\xcf\xe3\xcf\xe4\xcf\xe5\xcf\xe6\xcf\xe7\xcf\xe8\xcf\xe9\xcf\xea\xcf\xeb\xcf\xec\xcf\xed\xcf\xee\xcf\xef\xcf\xf0\xcf\xf1\xcf\xf2\xcf\xf3\xcf\xf4\xcf\xf5\xcf\xf6\xcf\xf7\xcf\xf8\xcf\xf9\xcf\xfa\xcf\xfb\xcf\xfc\xcf\xfd\xcf\xfe\xd0\x41\xd0\x42\xd0\x43\xd0\x44\xd0\x45\xd0\x46\xd0\x47\xd0\x48\xd0\x49\xd0\x4a\xd0\x4b\xd0\x4c\xd0\x4d\xd0\x4e\xd0\x4f\xd0\x50\xd0\x51\xd0\x52\xd0\x53\xd0\x54\xd0\x55\xd0\x56\xd0\x57\xd0\x58\xd0\x59\xd0\x5a\xd0\x5b\xd0\x5c\xd0\x5d\xd0\x5e\xd0\x5f\xd0\x60\xd0\x61\xd0\x62\xd0\x63\xd0\x64\xd0\x65\xd0\x66\xd0\x67\xd0\x68\xd0\x69\xd0\x6a\xd0\x6b\xd0\x6c\xd0\x6d\xd0\x6e\xd0\x6f\xd0\x70\xd0\x71\xd0\x72\xd0\x73\xd0\x74\xd0\x75\xd0\x76\xd0\x77\xd0\x78\xd0\x79\xd0\x7a\xd0\x7b\xd0\x7c\xd0\x7d\xd0\x7e\xd0\x7f\xd0\x80", /* 3500 */ "\xd0\x81\xd0\x82\xd0\x83\xd0\x84\xd0\x85\xd0\x86\xd0\x87\xd0\x88\xd0\x89\xd0\x8a\xd0\x8b\xd0\x8c\xd0\x8d\xd0\x8e\xd0\x8f\xd0\x90\xd0\x91\xd0\x92\xd0\x93\xd0\x94\xd0\x95\xd0\x96\xd0\x97\xd0\x98\xd0\x99\xd0\x9a\xd0\x9b\xd0\x9c\xd0\x9d\xd0\x9e\xd0\x9f\xd0\xa0\xd0\xa1\xd0\xa2\xd0\xa3\xd0\xa4\xd0\xa5\xd0\xa6\xd0\xa7\xd0\xa8\xd0\xa9\xd0\xaa\xd0\xab\xd0\xac\xd0\xad\xd0\xae\xd0\xaf\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5\xd0\xb6\xd0\xb7\xd0\xb8\xd0\xb9\xd0\xba\xd0\xbb\xd0\xbc\xd0\xbd\xd0\xbe\xd0\xbf\xd0\xc0\xd0\xc1\xd0\xc2\xd0\xc3\xd0\xc4\xd0\xc5\xd0\xc6\xd0\xc7\xd0\xc8\xd0\xc9\xd0\xca\xd0\xcb\xd0\xcc\xd0\xcd\xd0\xce\xd0\xcf\xd0\xd0\xd0\xd1\xd0\xd2\xd0\xd3\xd0\xd4\xd0\xd5\xd0\xd6\xd0\xd7\xd0\xd8\xd0\xd9\xd0\xda\xd0\xdb\xd0\xdc\xd0\xdd\xd0\xde\xd0\xdf\xd0\xe0\xd0\xe1\xd0\xe2\xd0\xe3\xd0\xe4\xd0\xe5\xd0\xe6\xd0\xe7\xd0\xe8\xd0\xe9\xd0\xea\xd0\xeb\xd0\xec\xd0\xed\xd0\xee\xd0\xef\xd0\xf0\xd0\xf1\xd0\xf2\xd0\xf3\xd0\xf4\xd0\xf5\xd0\xf6\xd0\xf7\xd0\xf8\xd0\xf9\xd0\xfa\xd0\xfb\xd0\xfc\xd0\xfd\xd0\xfe\xd1\x41\xd1\x42", /* 3580 */ "\xd1\x43\xd1\x44\xd1\x45\xd1\x46\xd1\x47\xd1\x48\xd1\x49\xd1\x4a\xd1\x4b\xd1\x4c\xd1\x4d\xd1\x4e\xd1\x4f\xd1\x50\xd1\x51\xd1\x52\xd1\x53\xd1\x54\xd1\x55\xd1\x56\xd1\x57\xd1\x58\xd1\x59\xd1\x5a\xd1\x5b\xd1\x5c\xd1\x5d\xd1\x5e\xd1\x5f\xd1\x60\xce\x60\xd1\x61\xd1\x62\xd1\x63\xd1\x64\xd1\x65\xd1\x66\xd1\x67\xd1\x68\xd1\x69\xd1\x6a\xd1\x6b\xd1\x6c\xd1\x6d\xd1\x6e\xd1\x6f\xd1\x70\xd1\x71\xd1\x72\xd1\x73\xd1\x74\xd1\x75\xd1\x76\xd1\x77\xd1\x78\xd1\x79\xd1\x7a\xd1\x7b\xd1\x7c\xd1\x7d\xd1\x7e\xd1\x7f\xd1\x80\xd1\x81\xd1\x82\xd1\x83\xd1\x84\xd1\x85\xd1\x86\xd1\x87\xd1\x88\xd1\x89\xd1\x8a\xd1\x8b\xd1\x8c\xd1\x8d\xd1\x8e\xd1\x8f\xd1\x90\xd1\x91\xd1\x92\xd1\x93\xd1\x94\xd1\x95\xd1\x96\xd1\x97\xd1\x98\xd1\x99\xd1\x9a\xd1\x9b\xd1\x9c\xd1\x9d\xd1\x9e\xd1\x9f\xd1\xa0\xd1\xa1\xd1\xa2\xd1\xa3\xd1\xa4\xd1\xa5\xd1\xa6\xd1\xa7\xd1\xa8\xd1\xa9\xd1\xaa\xd1\xab\xd1\xac\xd1\xad\xd1\xae\xd1\xaf\xd1\xb0\xd1\xb1\xd1\xb2\xd1\xb3\xd1\xb4\xd1\xb5\xd1\xb6\xd1\xb7\xd1\xb8\xd1\xb9\xd1\xba\xd1\xbb\xd1\xbc\xd1\xbd\xd1\xbe\xd1\xbf\xd1\xc0\xd1\xc1", /* 3600 */ "\xd1\xc2\xd1\xc3\xd1\xc4\xd1\xc5\xd1\xc6\xd1\xc7\xd1\xc8\xd1\xc9\xd1\xca\xd1\xcb\xd1\xcc\xd1\xcd\xd1\xce\xd1\xcf\xce\x62\xd1\xd0\xd1\xd1\xd1\xd2\xd1\xd3\xd1\xd4\xd1\xd5\xd1\xd6\xd1\xd7\xd1\xd8\xd1\xd9\xd1\xda\xce\x61\xd1\xdb\xd1\xdc\xd1\xdd\xd1\xde\xd1\xdf\xd1\xe0\xd1\xe1\xd1\xe2\xd1\xe3\xd1\xe4\xd1\xe5\xd1\xe6\xd1\xe7\xd1\xe8\xd1\xe9\xd1\xea\xd1\xeb\xd1\xec\xd1\xed\xd1\xee\xd1\xef\xd1\xf0\xd1\xf1\xd1\xf2\xd1\xf3\xd1\xf4\xd1\xf5\xd1\xf6\xd1\xf7\xd1\xf8\xd1\xf9\xd1\xfa\xd1\xfb\xd1\xfc\xd1\xfd\xd1\xfe\xd2\x41\xd2\x42\xd2\x43\xd2\x44\xd2\x45\xd2\x46\xd2\x47\xd2\x48\xd2\x49\xd2\x4a\xd2\x4b\xd2\x4c\xd2\x4d\xd2\x4e\xd2\x4f\xd2\x50\xd2\x51\xd2\x52\xd2\x53\xd2\x54\xd2\x55\xd2\x56\xd2\x57\xd2\x58\xd2\x59\xd2\x5a\xd2\x5b\xd2\x5c\xd2\x5d\xd2\x5e\xd2\x5f\xd2\x60\xd2\x61\xd2\x62\xd2\x63\xd2\x64\xd2\x65\xd2\x66\xd2\x67\xd2\x68\xd2\x69\xd2\x6a\xd2\x6b\xd2\x6c\xd2\x6d\xd2\x6e\xd2\x6f\xd2\x70\xd2\x71\xd2\x72\xd2\x73\xd2\x74\xd2\x75\xd2\x76\xd2\x77\xd2\x78\xd2\x79\xd2\x7a\xd2\x7b\xd2\x7c\xd2\x7d\xd2\x7e\xd2\x7f\xd2\x80\xd2\x81", /* 3680 */ "\xd2\x82\xd2\x83\xd2\x84\xd2\x85\xd2\x86\xd2\x87\xd2\x88\xd2\x89\xd2\x8a\xd2\x8b\xd2\x8c\xd2\x8d\xd2\x8e\xd2\x8f\xd2\x90\xd2\x91\xd2\x92\xd2\x93\xd2\x94\xd2\x95\xd2\x96\xd2\x97\xd2\x98\xd2\x99\xd2\x9a\xd2\x9b\xd2\x9c\xd2\x9d\xd2\x9e\xd2\x9f\xd2\xa0\xd2\xa1\xd2\xa2\xd2\xa3\xd2\xa4\xd2\xa5\xd2\xa6\xd2\xa7\xd2\xa8\xd2\xa9\xd2\xaa\xd2\xab\xd2\xac\xd2\xad\xd2\xae\xd2\xaf\xd2\xb0\xd2\xb1\xd2\xb2\xd2\xb3\xd2\xb4\xd2\xb5\xd2\xb6\xd2\xb7\xd2\xb8\xd2\xb9\xd2\xba\xd2\xbb\xd2\xbc\xd2\xbd\xd2\xbe\xd2\xbf\xd2\xc0\xd2\xc1\xd2\xc2\xd2\xc3\xd2\xc4\xd2\xc5\xd2\xc6\xd2\xc7\xd2\xc8\xd2\xc9\xd2\xca\xd2\xcb\xd2\xcc\xd2\xcd\xd2\xce\xd2\xcf\xd2\xd0\xd2\xd1\xd2\xd2\xd2\xd3\xd2\xd4\xd2\xd5\xd2\xd6\xd2\xd7\xd2\xd8\xd2\xd9\xd2\xda\xd2\xdb\xd2\xdc\xd2\xdd\xd2\xde\xd2\xdf\xd2\xe0\xd2\xe1\xd2\xe2\xd2\xe3\xd2\xe4\xd2\xe5\xd2\xe6\xd2\xe7\xd2\xe8\xd2\xe9\xd2\xea\xd2\xeb\xd2\xec\xd2\xed\xd2\xee\xd2\xef\xd2\xf0\xd2\xf1\xd2\xf2\xd2\xf3\xd2\xf4\xd2\xf5\xd2\xf6\xd2\xf7\xd2\xf8\xd2\xf9\xd2\xfa\xd2\xfb\xd2\xfc\xd2\xfd\xd2\xfe\xd3\x41\xd3\x42\xd3\x43", /* 3700 */ "\xd3\x44\xd3\x45\xd3\x46\xd3\x47\xd3\x48\xd3\x49\xd3\x4a\xd3\x4b\xd3\x4c\xd3\x4d\xd3\x4e\xd3\x4f\xd3\x50\xd3\x51\xd3\x52\xd3\x53\xd3\x54\xd3\x55\xd3\x56\xd3\x57\xd3\x58\xd3\x59\xd3\x5a\xd3\x5b\xd3\x5c\xd3\x5d\xd3\x5e\xd3\x5f\xd3\x60\xd3\x61\xd3\x62\xd3\x63\xd3\x64\xd3\x65\xd3\x66\xd3\x67\xd3\x68\xd3\x69\xd3\x6a\xd3\x6b\xd3\x6c\xd3\x6d\xd3\x6e\xd3\x6f\xd3\x70\xd3\x71\xd3\x72\xd3\x73\xd3\x74\xd3\x75\xd3\x76\xd3\x77\xd3\x78\xd3\x79\xd3\x7a\xd3\x7b\xd3\x7c\xd3\x7d\xd3\x7e\xd3\x7f\xd3\x80\xd3\x81\xd3\x82\xd3\x83\xd3\x84\xd3\x85\xd3\x86\xd3\x87\xd3\x88\xd3\x89\xd3\x8a\xd3\x8b\xd3\x8c\xd3\x8d\xd3\x8e\xd3\x8f\xd3\x90\xd3\x91\xd3\x92\xd3\x93\xd3\x94\xd3\x95\xd3\x96\xd3\x97\xd3\x98\xd3\x99\xd3\x9a\xd3\x9b\xd3\x9c\xd3\x9d\xd3\x9e\xd3\x9f\xd3\xa0\xd3\xa1\xd3\xa2\xd3\xa3\xd3\xa4\xd3\xa5\xd3\xa6\xd3\xa7\xd3\xa8\xd3\xa9\xd3\xaa\xd3\xab\xd3\xac\xd3\xad\xd3\xae\xd3\xaf\xd3\xb0\xd3\xb1\xd3\xb2\xd3\xb3\xd3\xb4\xd3\xb5\xd3\xb6\xd3\xb7\xd3\xb8\xd3\xb9\xd3\xba\xd3\xbb\xd3\xbc\xd3\xbd\xd3\xbe\xd3\xbf\xd3\xc0\xd3\xc1\xd3\xc2\xd3\xc3", /* 3780 */ "\xd3\xc4\xd3\xc5\xd3\xc6\xd3\xc7\xd3\xc8\xd3\xc9\xd3\xca\xd3\xcb\xd3\xcc\xd3\xcd\xd3\xce\xd3\xcf\xd3\xd0\xd3\xd1\xd3\xd2\xd3\xd3\xd3\xd4\xd3\xd5\xd3\xd6\xd3\xd7\xd3\xd8\xd3\xd9\xd3\xda\xd3\xdb\xd3\xdc\xd3\xdd\xd3\xde\xd3\xdf\xd3\xe0\xd3\xe1\xd3\xe2\xd3\xe3\xd3\xe4\xd3\xe5\xd3\xe6\xd3\xe7\xd3\xe8\xd3\xe9\xd3\xea\xd3\xeb\xd3\xec\xd3\xed\xd3\xee\xd3\xef\xd3\xf0\xd3\xf1\xd3\xf2\xd3\xf3\xd3\xf4\xd3\xf5\xd3\xf6\xd3\xf7\xd3\xf8\xd3\xf9\xd3\xfa\xd3\xfb\xd3\xfc\xd3\xfd\xd3\xfe\xd4\x41\xd4\x42\xd4\x43\xd4\x44\xd4\x45\xd4\x46\xd4\x47\xd4\x48\xd4\x49\xd4\x4a\xd4\x4b\xd4\x4c\xd4\x4d\xd4\x4e\xd4\x4f\xd4\x50\xd4\x51\xd4\x52\xd4\x53\xd4\x54\xd4\x55\xd4\x56\xd4\x57\xd4\x58\xd4\x59\xd4\x5a\xd4\x5b\xd4\x5c\xd4\x5d\xd4\x5e\xd4\x5f\xd4\x60\xd4\x61\xd4\x62\xd4\x63\xd4\x64\xd4\x65\xd4\x66\xd4\x67\xd4\x68\xd4\x69\xd4\x6a\xd4\x6b\xd4\x6c\xd4\x6d\xd4\x6e\xd4\x6f\xd4\x70\xd4\x71\xd4\x72\xd4\x73\xd4\x74\xd4\x75\xd4\x76\xd4\x77\xd4\x78\xd4\x79\xd4\x7a\xd4\x7b\xd4\x7c\xd4\x7d\xd4\x7e\xd4\x7f\xd4\x80\xd4\x81\xd4\x82\xd4\x83\xd4\x84\xd4\x85", /* 3800 */ "\xd4\x86\xd4\x87\xd4\x88\xd4\x89\xd4\x8a\xd4\x8b\xd4\x8c\xd4\x8d\xd4\x8e\xd4\x8f\xd4\x90\xd4\x91\xd4\x92\xd4\x93\xd4\x94\xd4\x95\xd4\x96\xd4\x97\xd4\x98\xd4\x99\xd4\x9a\xd4\x9b\xd4\x9c\xd4\x9d\xd4\x9e\xd4\x9f\xd4\xa0\xd4\xa1\xd4\xa2\xd4\xa3\xd4\xa4\xd4\xa5\xd4\xa6\xd4\xa7\xd4\xa8\xd4\xa9\xd4\xaa\xd4\xab\xd4\xac\xd4\xad\xd4\xae\xd4\xaf\xd4\xb0\xd4\xb1\xd4\xb2\xd4\xb3\xd4\xb4\xd4\xb5\xd4\xb6\xd4\xb7\xd4\xb8\xd4\xb9\xd4\xba\xd4\xbb\xd4\xbc\xd4\xbd\xd4\xbe\xd4\xbf\xd4\xc0\xd4\xc1\xd4\xc2\xd4\xc3\xd4\xc4\xd4\xc5\xd4\xc6\xd4\xc7\xd4\xc8\xd4\xc9\xd4\xca\xd4\xcb\xd4\xcc\xd4\xcd\xd4\xce\xd4\xcf\xd4\xd0\xd4\xd1\xd4\xd2\xd4\xd3\xd4\xd4\xd4\xd5\xd4\xd6\xd4\xd7\xd4\xd8\xd4\xd9\xd4\xda\xd4\xdb\xd4\xdc\xd4\xdd\xd4\xde\xd4\xdf\xd4\xe0\xd4\xe1\xd4\xe2\xd4\xe3\xd4\xe4\xd4\xe5\xd4\xe6\xd4\xe7\xd4\xe8\xd4\xe9\xd4\xea\xd4\xeb\xd4\xec\xd4\xed\xd4\xee\xd4\xef\xd4\xf0\xd4\xf1\xd4\xf2\xd4\xf3\xd4\xf4\xd4\xf5\xd4\xf6\xd4\xf7\xd4\xf8\xd4\xf9\xd4\xfa\xd4\xfb\xd4\xfc\xd4\xfd\xd4\xfe\xd5\x41\xd5\x42\xd5\x43\xd5\x44\xd5\x45\xd5\x46\xd5\x47", /* 3880 */ "\xd5\x48\xd5\x49\xd5\x4a\xd5\x4b\xd5\x4c\xd5\x4d\xd5\x4e\xd5\x4f\xd5\x50\xd5\x51\xd5\x52\xd5\x53\xd5\x54\xd5\x55\xd5\x56\xd5\x57\xd5\x58\xd5\x59\xd5\x5a\xd5\x5b\xd5\x5c\xd5\x5d\xd5\x5e\xd5\x5f\xd5\x60\xd5\x61\xd5\x62\xd5\x63\xd5\x64\xd5\x65\xd5\x66\xd5\x67\xd5\x68\xd5\x69\xd5\x6a\xd5\x6b\xd5\x6c\xd5\x6d\xd5\x6e\xd5\x6f\xd5\x70\xd5\x71\xd5\x72\xd5\x73\xd5\x74\xd5\x75\xd5\x76\xd5\x77\xd5\x78\xd5\x79\xd5\x7a\xd5\x7b\xd5\x7c\xd5\x7d\xd5\x7e\xd5\x7f\xd5\x80\xd5\x81\xd5\x82\xd5\x83\xd5\x84\xd5\x85\xd5\x86\xd5\x87\xd5\x88\xd5\x89\xd5\x8a\xd5\x8b\xd5\x8c\xd5\x8d\xd5\x8e\xd5\x8f\xd5\x90\xd5\x91\xd5\x92\xd5\x93\xd5\x94\xd5\x95\xd5\x96\xd5\x97\xd5\x98\xd5\x99\xd5\x9a\xd5\x9b\xd5\x9c\xd5\x9d\xd5\x9e\xd5\x9f\xd5\xa0\xd5\xa1\xd5\xa2\xd5\xa3\xd5\xa4\xd5\xa5\xd5\xa6\xd5\xa7\xd5\xa8\xd5\xa9\xd5\xaa\xd5\xab\xd5\xac\xd5\xad\xd5\xae\xd5\xaf\xd5\xb0\xd5\xb1\xd5\xb2\xd5\xb3\xd5\xb4\xd5\xb5\xd5\xb6\xd5\xb7\xd5\xb8\xd5\xb9\xd5\xba\xd5\xbb\xd5\xbc\xd5\xbd\xd5\xbe\xd5\xbf\xd5\xc0\xd5\xc1\xd5\xc2\xd5\xc3\xd5\xc4\xd5\xc5\xd5\xc6\xd5\xc7", /* 3900 */ "\xd5\xc8\xd5\xc9\xd5\xca\xd5\xcb\xd5\xcc\xd5\xcd\xd5\xce\xd5\xcf\xd5\xd0\xd5\xd1\xd5\xd2\xd5\xd3\xd5\xd4\xd5\xd5\xd5\xd6\xd5\xd7\xd5\xd8\xd5\xd9\xd5\xda\xd5\xdb\xd5\xdc\xd5\xdd\xd5\xde\xd5\xdf\xce\x66\xd5\xe0\xd5\xe1\xd5\xe2\xd5\xe3\xd5\xe4\xd5\xe5\xd5\xe6\xd5\xe7\xd5\xe8\xd5\xe9\xd5\xea\xd5\xeb\xd5\xec\xd5\xed\xd5\xee\xd5\xef\xd5\xf0\xd5\xf1\xd5\xf2\xd5\xf3\xd5\xf4\xd5\xf5\xd5\xf6\xd5\xf7\xd5\xf8\xd5\xf9\xd5\xfa\xd5\xfb\xd5\xfc\xd5\xfd\xd5\xfe\xd6\x41\xd6\x42\xd6\x43\xd6\x44\xd6\x45\xd6\x46\xd6\x47\xd6\x48\xd6\x49\xd6\x4a\xd6\x4b\xd6\x4c\xd6\x4d\xd6\x4e\xd6\x4f\xd6\x50\xd6\x51\xd6\x52\xd6\x53\xd6\x54\xd6\x55\xd6\x56\xd6\x57\xd6\x58\xd6\x59\xd6\x5a\xd6\x5b\xd6\x5c\xd6\x5d\xd6\x5e\xd6\x5f\xd6\x60\xd6\x61\xd6\x62\xd6\x63\xd6\x64\xd6\x65\xd6\x66\xd6\x67\xd6\x68\xd6\x69\xd6\x6a\xd6\x6b\xd6\x6c\xd6\x6d\xd6\x6e\xd6\x6f\xd6\x70\xd6\x71\xd6\x72\xd6\x73\xd6\x74\xd6\x75\xd6\x76\xce\x65\xd6\x77\xd6\x78\xd6\x79\xd6\x7a\xd6\x7b\xd6\x7c\xd6\x7d\xd6\x7e\xd6\x7f\xd6\x80\xd6\x81\xd6\x82\xd6\x83\xd6\x84\xd6\x85\xd6\x86\xd6\x87", /* 3980 */ "\xd6\x88\xd6\x89\xd6\x8a\xd6\x8b\xd6\x8c\xd6\x8d\xd6\x8e\xd6\x8f\xd6\x90\xd6\x91\xd6\x92\xd6\x93\xd6\x94\xd6\x95\xd6\x96\xd6\x97\xd6\x98\xd6\x99\xd6\x9a\xd6\x9b\xd6\x9c\xd6\x9d\xd6\x9e\xd6\x9f\xd6\xa0\xd6\xa1\xd6\xa2\xd6\xa3\xd6\xa4\xd6\xa5\xd6\xa6\xd6\xa7\xd6\xa8\xd6\xa9\xd6\xaa\xd6\xab\xd6\xac\xd6\xad\xd6\xae\xd6\xaf\xd6\xb0\xd6\xb1\xd6\xb2\xd6\xb3\xd6\xb4\xd6\xb5\xd6\xb6\xd6\xb7\xd6\xb8\xd6\xb9\xd6\xba\xd6\xbb\xd6\xbc\xd6\xbd\xd6\xbe\xd6\xbf\xd6\xc0\xd6\xc1\xd6\xc2\xd6\xc3\xd6\xc4\xd6\xc5\xd6\xc6\xd6\xc7\xd6\xc8\xd6\xc9\xd6\xca\xd6\xcb\xd6\xcc\xd6\xcd\xd6\xce\xd6\xcf\xd6\xd0\xd6\xd1\xd6\xd2\xd6\xd3\xd6\xd4\xd6\xd5\xd6\xd6\xce\x68\xce\x6b\xd6\xd7\xd6\xd8\xd6\xd9\xd6\xda\xd6\xdb\xd6\xdc\xd6\xdd\xd6\xde\xd6\xdf\xd6\xe0\xd6\xe1\xd6\xe2\xd6\xe3\xd6\xe4\xce\x69\xd6\xe5\xd6\xe6\xd6\xe7\xd6\xe8\xd6\xe9\xd6\xea\xd6\xeb\xd6\xec\xd6\xed\xd6\xee\xd6\xef\xd6\xf0\xd6\xf1\xd6\xf2\xd6\xf3\xd6\xf4\xd6\xf5\xd6\xf6\xd6\xf7\xd6\xf8\xd6\xf9\xd6\xfa\xd6\xfb\xd6\xfc\xd6\xfd\xd6\xfe\xd7\x41\xd7\x42\xd7\x43\xd7\x44\xd7\x45\xd7\x46", /* 3a00 */ "\xd7\x47\xd7\x48\xd7\x49\xd7\x4a\xd7\x4b\xd7\x4c\xd7\x4d\xd7\x4e\xd7\x4f\xd7\x50\xd7\x51\xd7\x52\xd7\x53\xd7\x54\xd7\x55\xd7\x56\xd7\x57\xd7\x58\xd7\x59\xd7\x5a\xd7\x5b\xd7\x5c\xd7\x5d\xd7\x5e\xd7\x5f\xd7\x60\xd7\x61\xd7\x62\xd7\x63\xd7\x64\xd7\x65\xd7\x66\xd7\x67\xd7\x68\xd7\x69\xd7\x6a\xd7\x6b\xd7\x6c\xd7\x6d\xd7\x6e\xd7\x6f\xd7\x70\xd7\x71\xd7\x72\xd7\x73\xd7\x74\xd7\x75\xd7\x76\xd7\x77\xd7\x78\xd7\x79\xd7\x7a\xd7\x7b\xd7\x7c\xd7\x7d\xd7\x7e\xd7\x7f\xd7\x80\xd7\x81\xd7\x82\xd7\x83\xd7\x84\xd7\x85\xd7\x86\xd7\x87\xd7\x88\xd7\x89\xd7\x8a\xd7\x8b\xd7\x8c\xd7\x8d\xd7\x8e\xd7\x8f\xd7\x90\xd7\x91\xd7\x92\xd7\x93\xd7\x94\xd7\x95\xd7\x96\xd7\x97\xd7\x98\xd7\x99\xd7\x9a\xd7\x9b\xd7\x9c\xd7\x9d\xd7\x9e\xd7\x9f\xd7\xa0\xd7\xa1\xd7\xa2\xd7\xa3\xd7\xa4\xd7\xa5\xd7\xa6\xd7\xa7\xd7\xa8\xd7\xa9\xd7\xaa\xd7\xab\xd7\xac\xd7\xad\xd7\xae\xd7\xaf\xd7\xb0\xd7\xb1\xd7\xb2\xd7\xb3\xd7\xb4\xd7\xb5\xd7\xb6\xd7\xb7\xd7\xb8\xd7\xb9\xce\x6a\xd7\xba\xd7\xbb\xd7\xbc\xd7\xbd\xd7\xbe\xd7\xbf\xd7\xc0\xd7\xc1\xd7\xc2\xd7\xc3\xd7\xc4\xd7\xc5", /* 3a80 */ "\xd7\xc6\xd7\xc7\xd7\xc8\xd7\xc9\xd7\xca\xd7\xcb\xd7\xcc\xd7\xcd\xd7\xce\xd7\xcf\xd7\xd0\xd7\xd1\xd7\xd2\xd7\xd3\xd7\xd4\xd7\xd5\xd7\xd6\xd7\xd7\xd7\xd8\xd7\xd9\xd7\xda\xd7\xdb\xd7\xdc\xd7\xdd\xd7\xde\xd7\xdf\xd7\xe0\xd7\xe1\xd7\xe2\xd7\xe3\xd7\xe4\xd7\xe5\xd7\xe6\xd7\xe7\xd7\xe8\xd7\xe9\xd7\xea\xd7\xeb\xd7\xec\xd7\xed\xd7\xee\xd7\xef\xd7\xf0\xd7\xf1\xd7\xf2\xd7\xf3\xd7\xf4\xd7\xf5\xd7\xf6\xd7\xf7\xd7\xf8\xd7\xf9\xd7\xfa\xd7\xfb\xd7\xfc\xd7\xfd\xd7\xfe\xd8\x41\xd8\x42\xd8\x43\xd8\x44\xd8\x45\xd8\x46\xd8\x47\xd8\x48\xd8\x49\xd8\x4a\xd8\x4b\xd8\x4c\xd8\x4d\xd8\x4e\xd8\x4f\xd8\x50\xd8\x51\xd8\x52\xd8\x53\xd8\x54\xd8\x55\xd8\x56\xd8\x57\xd8\x58\xd8\x59\xd8\x5a\xd8\x5b\xd8\x5c\xd8\x5d\xd8\x5e\xd8\x5f\xd8\x60\xd8\x61\xd8\x62\xd8\x63\xd8\x64\xd8\x65\xd8\x66\xd8\x67\xd8\x68\xd8\x69\xd8\x6a\xd8\x6b\xd8\x6c\xd8\x6d\xd8\x6e\xd8\x6f\xd8\x70\xd8\x71\xd8\x72\xd8\x73\xd8\x74\xd8\x75\xd8\x76\xd8\x77\xd8\x78\xd8\x79\xd8\x7a\xd8\x7b\xd8\x7c\xd8\x7d\xd8\x7e\xd8\x7f\xd8\x80\xd8\x81\xd8\x82\xd8\x83\xd8\x84\xd8\x85\xd8\x86\xd8\x87", /* 3b00 */ "\xd8\x88\xd8\x89\xd8\x8a\xd8\x8b\xd8\x8c\xd8\x8d\xd8\x8e\xd8\x8f\xd8\x90\xd8\x91\xd8\x92\xd8\x93\xd8\x94\xd8\x95\xd8\x96\xd8\x97\xd8\x98\xd8\x99\xd8\x9a\xd8\x9b\xd8\x9c\xd8\x9d\xd8\x9e\xd8\x9f\xd8\xa0\xd8\xa1\xd8\xa2\xd8\xa3\xd8\xa4\xd8\xa5\xd8\xa6\xd8\xa7\xd8\xa8\xd8\xa9\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae\xd8\xaf\xd8\xb0\xd8\xb1\xd8\xb2\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba\xd8\xbb\xd8\xbc\xd8\xbd\xd8\xbe\xd8\xbf\xd8\xc0\xd8\xc1\xd8\xc2\xd8\xc3\xd8\xc4\xd8\xc5\xd8\xc6\xd8\xc7\xd8\xc8\xd8\xc9\xd8\xca\xd8\xcb\xd8\xcc\xd8\xcd\xd8\xce\xd8\xcf\xd8\xd0\xd8\xd1\xd8\xd2\xd8\xd3\xd8\xd4\xd8\xd5\xce\x6e\xd8\xd6\xd8\xd7\xd8\xd8\xd8\xd9\xd8\xda\xd8\xdb\xd8\xdc\xd8\xdd\xd8\xde\xd8\xdf\xd8\xe0\xd8\xe1\xd8\xe2\xd8\xe3\xd8\xe4\xd8\xe5\xd8\xe6\xd8\xe7\xd8\xe8\xd8\xe9\xd8\xea\xd8\xeb\xd8\xec\xd8\xed\xd8\xee\xd8\xef\xd8\xf0\xd8\xf1\xd8\xf2\xd8\xf3\xd8\xf4\xd8\xf5\xd8\xf6\xd8\xf7\xd8\xf8\xd8\xf9\xd8\xfa\xd8\xfb\xd8\xfc\xd8\xfd\xd8\xfe\xd9\x41\xd9\x42\xd9\x43\xd9\x44\xd9\x45\xd9\x46\xd9\x47\xd9\x48", /* 3b80 */ "\xd9\x49\xd9\x4a\xd9\x4b\xd9\x4c\xd9\x4d\xd9\x4e\xd9\x4f\xd9\x50\xd9\x51\xd9\x52\xd9\x53\xd9\x54\xd9\x55\xd9\x56\xd9\x57\xd9\x58\xd9\x59\xd9\x5a\xd9\x5b\xd9\x5c\xd9\x5d\xd9\x5e\xd9\x5f\xd9\x60\xd9\x61\xd9\x62\xd9\x63\xd9\x64\xd9\x65\xd9\x66\xd9\x67\xd9\x68\xd9\x69\xd9\x6a\xd9\x6b\xd9\x6c\xd9\x6d\xd9\x6e\xd9\x6f\xd9\x70\xd9\x71\xd9\x72\xd9\x73\xd9\x74\xd9\x75\xd9\x76\xd9\x77\xd9\x78\xd9\x79\xd9\x7a\xd9\x7b\xd9\x7c\xd9\x7d\xd9\x7e\xd9\x7f\xd9\x80\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x88\xd9\x89\xd9\x8a\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f\xd9\x90\xd9\x91\xd9\x92\xd9\x93\xd9\x94\xd9\x95\xd9\x96\xd9\x97\xd9\x98\xd9\x99\xd9\x9a\xd9\x9b\xd9\x9c\xd9\x9d\xd9\x9e\xd9\x9f\xd9\xa0\xd9\xa1\xd9\xa2\xd9\xa3\xd9\xa4\xd9\xa5\xd9\xa6\xd9\xa7\xd9\xa8\xd9\xa9\xd9\xaa\xd9\xab\xd9\xac\xd9\xad\xd9\xae\xd9\xaf\xd9\xb0\xd9\xb1\xd9\xb2\xd9\xb3\xd9\xb4\xd9\xb5\xd9\xb6\xd9\xb7\xd9\xb8\xd9\xb9\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf\xd9\xc0\xd9\xc1\xd9\xc2\xd9\xc3\xd9\xc4\xd9\xc5\xd9\xc6\xd9\xc7\xd9\xc8", /* 3c00 */ "\xd9\xc9\xd9\xca\xd9\xcb\xd9\xcc\xd9\xcd\xd9\xce\xd9\xcf\xd9\xd0\xd9\xd1\xd9\xd2\xd9\xd3\xd9\xd4\xd9\xd5\xd9\xd6\xd9\xd7\xd9\xd8\xd9\xd9\xd9\xda\xd9\xdb\xd9\xdc\xd9\xdd\xd9\xde\xd9\xdf\xd9\xe0\xd9\xe1\xd9\xe2\xd9\xe3\xd9\xe4\xd9\xe5\xd9\xe6\xd9\xe7\xd9\xe8\xd9\xe9\xd9\xea\xd9\xeb\xd9\xec\xd9\xed\xd9\xee\xd9\xef\xd9\xf0\xd9\xf1\xd9\xf2\xd9\xf3\xd9\xf4\xd9\xf5\xd9\xf6\xd9\xf7\xd9\xf8\xd9\xf9\xd9\xfa\xd9\xfb\xd9\xfc\xd9\xfd\xd9\xfe\xda\x41\xda\x42\xda\x43\xda\x44\xda\x45\xda\x46\xda\x47\xda\x48\xda\x49\xda\x4a\xda\x4b\xda\x4c\xda\x4d\xda\x4e\xda\x4f\xda\x50\xda\x51\xda\x52\xda\x53\xda\x54\xda\x55\xda\x56\xda\x57\xda\x58\xda\x59\xda\x5a\xda\x5b\xda\x5c\xda\x5d\xda\x5e\xda\x5f\xda\x60\xda\x61\xda\x62\xda\x63\xda\x64\xda\x65\xda\x66\xda\x67\xda\x68\xda\x69\xda\x6a\xda\x6b\xda\x6c\xda\x6d\xda\x6e\xda\x6f\xda\x70\xda\x71\xda\x72\xda\x73\xda\x74\xda\x75\xda\x76\xda\x77\xda\x78\xce\x6f\xda\x79\xda\x7a\xda\x7b\xda\x7c\xda\x7d\xda\x7e\xda\x7f\xda\x80\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87\xda\x88\xda\x89", /* 3c80 */ "\xda\x8a\xda\x8b\xda\x8c\xda\x8d\xda\x8e\xda\x8f\xda\x90\xda\x91\xda\x92\xda\x93\xda\x94\xda\x95\xda\x96\xda\x97\xda\x98\xda\x99\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f\xda\xa0\xda\xa1\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8\xda\xa9\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9\xda\xba\xda\xbb\xda\xbc\xda\xbd\xda\xbe\xda\xbf\xda\xc0\xda\xc1\xda\xc2\xda\xc3\xda\xc4\xda\xc5\xda\xc6\xda\xc7\xda\xc8\xda\xc9\xda\xca\xda\xcb\xda\xcc\xda\xcd\xda\xce\xda\xcf\xda\xd0\xda\xd1\xda\xd2\xda\xd3\xda\xd4\xda\xd5\xda\xd6\xda\xd7\xda\xd8\xda\xd9\xda\xda\xda\xdb\xda\xdc\xda\xdd\xda\xde\xda\xdf\xda\xe0\xda\xe1\xda\xe2\xda\xe3\xda\xe4\xda\xe5\xda\xe6\xda\xe7\xda\xe8\xda\xe9\xce\x70\xda\xea\xda\xeb\xda\xec\xda\xed\xda\xee\xda\xef\xda\xf0\xda\xf1\xda\xf2\xda\xf3\xda\xf4\xda\xf5\xda\xf6\xda\xf7\xda\xf8\xda\xf9\xda\xfa\xda\xfb\xda\xfc\xda\xfd\xda\xfe\xdb\x41\xdb\x42\xdb\x43\xdb\x44\xdb\x45\xdb\x46\xdb\x47\xdb\x48\xdb\x49\xdb\x4a", /* 3d00 */ "\xdb\x4b\xdb\x4c\xdb\x4d\xdb\x4e\xdb\x4f\xdb\x50\xdb\x51\xdb\x52\xdb\x53\xdb\x54\xdb\x55\xdb\x56\xdb\x57\xdb\x58\xdb\x59\xdb\x5a\xdb\x5b\xdb\x5c\xdb\x5d\xdb\x5e\xdb\x5f\xdb\x60\xdb\x61\xdb\x62\xdb\x63\xdb\x64\xdb\x65\xdb\x66\xdb\x67\xdb\x68\xdb\x69\xdb\x6a\xdb\x6b\xdb\x6c\xdb\x6d\xdb\x6e\xdb\x6f\xdb\x70\xdb\x71\xdb\x72\xdb\x73\xdb\x74\xdb\x75\xdb\x76\xdb\x77\xdb\x78\xdb\x79\xdb\x7a\xdb\x7b\xdb\x7c\xdb\x7d\xdb\x7e\xdb\x7f\xdb\x80\xdb\x81\xdb\x82\xdb\x83\xdb\x84\xdb\x85\xdb\x86\xdb\x87\xdb\x88\xdb\x89\xdb\x8a\xdb\x8b\xdb\x8c\xdb\x8d\xdb\x8e\xdb\x8f\xdb\x90\xdb\x91\xdb\x92\xdb\x93\xdb\x94\xdb\x95\xdb\x96\xdb\x97\xdb\x98\xdb\x99\xdb\x9a\xdb\x9b\xdb\x9c\xdb\x9d\xdb\x9e\xdb\x9f\xdb\xa0\xdb\xa1\xdb\xa2\xdb\xa3\xdb\xa4\xdb\xa5\xdb\xa6\xdb\xa7\xdb\xa8\xdb\xa9\xdb\xaa\xdb\xab\xdb\xac\xdb\xad\xdb\xae\xdb\xaf\xdb\xb0\xdb\xb1\xdb\xb2\xdb\xb3\xdb\xb4\xdb\xb5\xdb\xb6\xdb\xb7\xdb\xb8\xdb\xb9\xdb\xba\xdb\xbb\xdb\xbc\xdb\xbd\xdb\xbe\xdb\xbf\xdb\xc0\xdb\xc1\xdb\xc2\xdb\xc3\xdb\xc4\xdb\xc5\xdb\xc6\xdb\xc7\xdb\xc8\xdb\xc9\xdb\xca", /* 3d80 */ "\xdb\xcb\xdb\xcc\xdb\xcd\xdb\xce\xdb\xcf\xdb\xd0\xdb\xd1\xdb\xd2\xdb\xd3\xdb\xd4\xdb\xd5\xdb\xd6\xdb\xd7\xdb\xd8\xdb\xd9\xdb\xda\xdb\xdb\xdb\xdc\xdb\xdd\xdb\xde\xdb\xdf\xdb\xe0\xdb\xe1\xdb\xe2\xdb\xe3\xdb\xe4\xdb\xe5\xdb\xe6\xdb\xe7\xdb\xe8\xdb\xe9\xdb\xea\xdb\xeb\xdb\xec\xdb\xed\xdb\xee\xdb\xef\xdb\xf0\xdb\xf1\xdb\xf2\xdb\xf3\xdb\xf4\xdb\xf5\xdb\xf6\xdb\xf7\xdb\xf8\xdb\xf9\xdb\xfa\xdb\xfb\xdb\xfc\xdb\xfd\xdb\xfe\xdc\x41\xdc\x42\xdc\x43\xdc\x44\xdc\x45\xdc\x46\xdc\x47\xdc\x48\xdc\x49\xdc\x4a\xdc\x4b\xdc\x4c\xdc\x4d\xdc\x4e\xdc\x4f\xdc\x50\xdc\x51\xdc\x52\xdc\x53\xdc\x54\xdc\x55\xdc\x56\xdc\x57\xdc\x58\xdc\x59\xdc\x5a\xdc\x5b\xdc\x5c\xdc\x5d\xdc\x5e\xdc\x5f\xdc\x60\xdc\x61\xdc\x62\xdc\x63\xdc\x64\xdc\x65\xdc\x66\xdc\x67\xdc\x68\xdc\x69\xdc\x6a\xdc\x6b\xdc\x6c\xdc\x6d\xdc\x6e\xdc\x6f\xdc\x70\xdc\x71\xdc\x72\xdc\x73\xdc\x74\xdc\x75\xdc\x76\xdc\x77\xdc\x78\xdc\x79\xdc\x7a\xdc\x7b\xdc\x7c\xdc\x7d\xdc\x7e\xdc\x7f\xdc\x80\xdc\x81\xdc\x82\xdc\x83\xdc\x84\xdc\x85\xdc\x86\xdc\x87\xdc\x88\xdc\x89\xdc\x8a\xdc\x8b\xdc\x8c", /* 3e00 */ "\xdc\x8d\xdc\x8e\xdc\x8f\xdc\x90\xdc\x91\xdc\x92\xdc\x93\xdc\x94\xdc\x95\xdc\x96\xdc\x97\xdc\x98\xdc\x99\xdc\x9a\xdc\x9b\xdc\x9c\xdc\x9d\xdc\x9e\xdc\x9f\xdc\xa0\xdc\xa1\xdc\xa2\xdc\xa3\xdc\xa4\xdc\xa5\xdc\xa6\xdc\xa7\xdc\xa8\xdc\xa9\xdc\xaa\xdc\xab\xdc\xac\xdc\xad\xdc\xae\xdc\xaf\xdc\xb0\xdc\xb1\xdc\xb2\xdc\xb3\xdc\xb4\xdc\xb5\xdc\xb6\xdc\xb7\xdc\xb8\xdc\xb9\xdc\xba\xdc\xbb\xdc\xbc\xdc\xbd\xdc\xbe\xdc\xbf\xdc\xc0\xdc\xc1\xdc\xc2\xdc\xc3\xdc\xc4\xdc\xc5\xdc\xc6\xdc\xc7\xdc\xc8\xdc\xc9\xdc\xca\xdc\xcb\xdc\xcc\xdc\xcd\xdc\xce\xdc\xcf\xdc\xd0\xdc\xd1\xdc\xd2\xdc\xd3\xdc\xd4\xdc\xd5\xdc\xd6\xdc\xd7\xdc\xd8\xdc\xd9\xdc\xda\xdc\xdb\xdc\xdc\xdc\xdd\xdc\xde\xdc\xdf\xdc\xe0\xdc\xe1\xdc\xe2\xdc\xe3\xdc\xe4\xdc\xe5\xdc\xe6\xdc\xe7\xdc\xe8\xdc\xe9\xdc\xea\xdc\xeb\xdc\xec\xdc\xed\xdc\xee\xdc\xef\xdc\xf0\xdc\xf1\xdc\xf2\xdc\xf3\xdc\xf4\xdc\xf5\xdc\xf6\xdc\xf7\xdc\xf8\xdc\xf9\xdc\xfa\xdc\xfb\xdc\xfc\xdc\xfd\xdc\xfe\xdd\x41\xdd\x42\xdd\x43\xdd\x44\xdd\x45\xdd\x46\xdd\x47\xdd\x48\xdd\x49\xdd\x4a\xdd\x4b\xdd\x4c\xdd\x4d\xdd\x4e", /* 3e80 */ "\xdd\x4f\xdd\x50\xdd\x51\xdd\x52\xdd\x53\xdd\x54\xdd\x55\xdd\x56\xdd\x57\xdd\x58\xdd\x59\xdd\x5a\xdd\x5b\xdd\x5c\xdd\x5d\xdd\x5e\xdd\x5f\xdd\x60\xdd\x61\xdd\x62\xdd\x63\xdd\x64\xdd\x65\xdd\x66\xdd\x67\xdd\x68\xdd\x69\xdd\x6a\xdd\x6b\xdd\x6c\xdd\x6d\xdd\x6e\xdd\x6f\xdd\x70\xdd\x71\xdd\x72\xdd\x73\xdd\x74\xdd\x75\xdd\x76\xdd\x77\xdd\x78\xdd\x79\xdd\x7a\xdd\x7b\xdd\x7c\xdd\x7d\xdd\x7e\xdd\x7f\xdd\x80\xdd\x81\xdd\x82\xdd\x83\xdd\x84\xdd\x85\xdd\x86\xdd\x87\xdd\x88\xdd\x89\xdd\x8a\xdd\x8b\xdd\x8c\xdd\x8d\xdd\x8e\xdd\x8f\xdd\x90\xdd\x91\xdd\x92\xdd\x93\xdd\x94\xdd\x95\xdd\x96\xdd\x97\xdd\x98\xdd\x99\xdd\x9a\xdd\x9b\xdd\x9c\xdd\x9d\xdd\x9e\xdd\x9f\xdd\xa0\xdd\xa1\xdd\xa2\xdd\xa3\xdd\xa4\xdd\xa5\xdd\xa6\xdd\xa7\xdd\xa8\xdd\xa9\xdd\xaa\xdd\xab\xdd\xac\xdd\xad\xdd\xae\xdd\xaf\xdd\xb0\xdd\xb1\xdd\xb2\xdd\xb3\xdd\xb4\xdd\xb5\xdd\xb6\xdd\xb7\xdd\xb8\xdd\xb9\xdd\xba\xdd\xbb\xdd\xbc\xdd\xbd\xdd\xbe\xdd\xbf\xdd\xc0\xdd\xc1\xdd\xc2\xdd\xc3\xdd\xc4\xdd\xc5\xdd\xc6\xdd\xc7\xdd\xc8\xdd\xc9\xdd\xca\xdd\xcb\xdd\xcc\xdd\xcd\xdd\xce", /* 3f00 */ "\xdd\xcf\xdd\xd0\xdd\xd1\xdd\xd2\xdd\xd3\xdd\xd4\xdd\xd5\xdd\xd6\xdd\xd7\xdd\xd8\xdd\xd9\xdd\xda\xdd\xdb\xdd\xdc\xdd\xdd\xdd\xde\xdd\xdf\xdd\xe0\xdd\xe1\xdd\xe2\xdd\xe3\xdd\xe4\xdd\xe5\xdd\xe6\xdd\xe7\xdd\xe8\xdd\xe9\xdd\xea\xdd\xeb\xdd\xec\xdd\xed\xdd\xee\xdd\xef\xdd\xf0\xdd\xf1\xdd\xf2\xdd\xf3\xdd\xf4\xdd\xf5\xdd\xf6\xdd\xf7\xdd\xf8\xdd\xf9\xdd\xfa\xdd\xfb\xdd\xfc\xdd\xfd\xdd\xfe\xde\x41\xde\x42\xde\x43\xde\x44\xde\x45\xde\x46\xde\x47\xde\x48\xde\x49\xde\x4a\xde\x4b\xde\x4c\xde\x4d\xde\x4e\xde\x4f\xde\x50\xde\x51\xde\x52\xde\x53\xde\x54\xde\x55\xde\x56\xde\x57\xde\x58\xde\x59\xde\x5a\xde\x5b\xde\x5c\xde\x5d\xde\x5e\xde\x5f\xde\x60\xde\x61\xde\x62\xde\x63\xde\x64\xde\x65\xde\x66\xde\x67\xde\x68\xde\x69\xde\x6a\xde\x6b\xde\x6c\xde\x6d\xde\x6e\xde\x6f\xde\x70\xde\x71\xde\x72\xde\x73\xde\x74\xde\x75\xde\x76\xde\x77\xde\x78\xde\x79\xde\x7a\xde\x7b\xde\x7c\xde\x7d\xde\x7e\xde\x7f\xde\x80\xde\x81\xde\x82\xde\x83\xde\x84\xde\x85\xde\x86\xde\x87\xde\x88\xde\x89\xde\x8a\xde\x8b\xde\x8c\xde\x8d\xde\x8e\xde\x8f\xde\x90", /* 3f80 */ "\xde\x91\xde\x92\xde\x93\xde\x94\xde\x95\xde\x96\xde\x97\xde\x98\xde\x99\xde\x9a\xde\x9b\xde\x9c\xde\x9d\xde\x9e\xde\x9f\xde\xa0\xde\xa1\xde\xa2\xde\xa3\xde\xa4\xde\xa5\xde\xa6\xde\xa7\xde\xa8\xde\xa9\xde\xaa\xde\xab\xde\xac\xde\xad\xde\xae\xde\xaf\xde\xb0\xde\xb1\xde\xb2\xde\xb3\xde\xb4\xde\xb5\xde\xb6\xde\xb7\xde\xb8\xde\xb9\xde\xba\xde\xbb\xde\xbc\xde\xbd\xde\xbe\xde\xbf\xde\xc0\xde\xc1\xde\xc2\xde\xc3\xde\xc4\xde\xc5\xde\xc6\xde\xc7\xde\xc8\xde\xc9\xde\xca\xde\xcb\xde\xcc\xde\xcd\xde\xce\xde\xcf\xde\xd0\xde\xd1\xde\xd2\xde\xd3\xde\xd4\xde\xd5\xde\xd6\xde\xd7\xde\xd8\xde\xd9\xde\xda\xde\xdb\xde\xdc\xde\xdd\xde\xde\xde\xdf\xde\xe0\xde\xe1\xde\xe2\xde\xe3\xde\xe4\xde\xe5\xde\xe6\xde\xe7\xde\xe8\xde\xe9\xde\xea\xde\xeb\xde\xec\xde\xed\xde\xee\xde\xef\xde\xf0\xde\xf1\xde\xf2\xde\xf3\xde\xf4\xde\xf5\xde\xf6\xde\xf7\xde\xf8\xde\xf9\xde\xfa\xde\xfb\xde\xfc\xde\xfd\xde\xfe\xdf\x41\xdf\x42\xdf\x43\xdf\x44\xdf\x45\xdf\x46\xdf\x47\xdf\x48\xdf\x49\xdf\x4a\xdf\x4b\xdf\x4c\xdf\x4d\xdf\x4e\xdf\x4f\xdf\x50\xdf\x51\xdf\x52", /* 4000 */ "\xdf\x53\xdf\x54\xdf\x55\xdf\x56\xdf\x57\xdf\x58\xdf\x59\xdf\x5a\xdf\x5b\xdf\x5c\xdf\x5d\xdf\x5e\xdf\x5f\xdf\x60\xdf\x61\xdf\x62\xdf\x63\xdf\x64\xdf\x65\xdf\x66\xdf\x67\xdf\x68\xdf\x69\xdf\x6a\xdf\x6b\xdf\x6c\xdf\x6d\xdf\x6e\xdf\x6f\xdf\x70\xdf\x71\xdf\x72\xdf\x73\xdf\x74\xdf\x75\xdf\x76\xdf\x77\xdf\x78\xdf\x79\xdf\x7a\xdf\x7b\xdf\x7c\xdf\x7d\xdf\x7e\xdf\x7f\xdf\x80\xdf\x81\xdf\x82\xdf\x83\xdf\x84\xdf\x85\xdf\x86\xdf\x87\xdf\x88\xdf\x89\xdf\x8a\xdf\x8b\xdf\x8c\xdf\x8d\xdf\x8e\xdf\x8f\xdf\x90\xdf\x91\xdf\x92\xdf\x93\xdf\x94\xdf\x95\xdf\x96\xdf\x97\xdf\x98\xdf\x99\xdf\x9a\xdf\x9b\xdf\x9c\xdf\x9d\xdf\x9e\xdf\x9f\xdf\xa0\xdf\xa1\xdf\xa2\xdf\xa3\xdf\xa4\xdf\xa5\xdf\xa6\xdf\xa7\xdf\xa8\xce\x75\xdf\xa9\xdf\xaa\xdf\xab\xdf\xac\xdf\xad\xdf\xae\xdf\xaf\xdf\xb0\xdf\xb1\xdf\xb2\xdf\xb3\xdf\xb4\xdf\xb5\xdf\xb6\xdf\xb7\xdf\xb8\xdf\xb9\xdf\xba\xdf\xbb\xdf\xbc\xdf\xbd\xdf\xbe\xdf\xbf\xdf\xc0\xdf\xc1\xdf\xc2\xdf\xc3\xdf\xc4\xdf\xc5\xdf\xc6\xdf\xc7\xdf\xc8\xdf\xc9\xdf\xca\xdf\xcb\xdf\xcc\xdf\xcd\xdf\xce\xdf\xcf\xdf\xd0\xdf\xd1", /* 4080 */ "\xdf\xd2\xdf\xd3\xdf\xd4\xdf\xd5\xdf\xd6\xdf\xd7\xdf\xd8\xdf\xd9\xdf\xda\xdf\xdb\xdf\xdc\xdf\xdd\xdf\xde\xdf\xdf\xdf\xe0\xdf\xe1\xdf\xe2\xdf\xe3\xdf\xe4\xdf\xe5\xdf\xe6\xdf\xe7\xdf\xe8\xdf\xe9\xdf\xea\xdf\xeb\xdf\xec\xdf\xed\xdf\xee\xdf\xef\xdf\xf0\xdf\xf1\xdf\xf2\xdf\xf3\xdf\xf4\xdf\xf5\xdf\xf6\xdf\xf7\xdf\xf8\xdf\xf9\xdf\xfa\xdf\xfb\xdf\xfc\xdf\xfd\xdf\xfe\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93", /* 4100 */ "\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xce\x76\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54", /* 4180 */ "\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4", /* 4200 */ "\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96", /* 4280 */ "\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58", /* 4300 */ "\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xce\x78\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7", /* 4380 */ "\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xce\x7e\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xce\x7d\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xce\x81\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96", /* 4400 */ "\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58", /* 4480 */ "\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xce\x82\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7", /* 4500 */ "\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99", /* 4580 */ "\xe6\x9a\xe6\x9b\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b", /* 4600 */ "\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xce\x84\xe7\xa8\xe7\xa9\xe7\xaa\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xce\x83\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9", /* 4680 */ "\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b", /* 4700 */ "\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xce\x86\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xce\x87\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xce\x88\xe9\x58\xe9\x59\xe9\x5a", /* 4780 */ "\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xce\x89\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9", /* 4800 */ "\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b", /* 4880 */ "\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xeb\x41\xeb\x42\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d", /* 4900 */ "\xeb\x5e\xeb\x5f\xeb\x60\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xce\x8b\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xce\x8c\xeb\xd7\xeb\xd8\xce\x8d\xeb\xd9\xeb\xda", /* 4980 */ "\xeb\xdb\xeb\xdc\xce\x8e\xce\x8f\xeb\xdd\xce\x90\xce\x91\xeb\xde\xeb\xdf\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xce\x93\xeb\xf2\xeb\xf3\xeb\xf4\xce\x92\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xce\x95\xce\x94\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94", /* 4a00 */ "\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56", /* 4a80 */ "\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6", /* 4b00 */ "\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98", /* 4b80 */ "\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a", /* 4c00 */ "\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xce\x9c\xef\xd2\xef\xd3\xef\xd4\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9", /* 4c80 */ "\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xce\x99\xce\x9a\xce\x9b\xce\x9d\xce\x98\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xf6\x41\xf6\x42\xf6\x43\xf6\x44\xf6\x45\xf6\x46\xf6\x47\xf6\x48\xf6\x49\xf6\x4a\xf6\x4b\xf6\x4c\xf6\x4d\xf6\x4e\xf6\x4f\xf6\x50\xf6\x51\xf6\x52\xf6\x53\xf6\x54\xf6\x55\xf6\x56\xf6\x57\xf6\x58\xf6\x59\xf6\x5a\xf6\x5b\xf6\x5c\xf6\x5d\xf6\x5e\xf6\x5f\xf6\x60\xf6\x61\xf6\x62\xf6\x63\xf6\x64\xf6\x65\xf6\x66\xf6\x67\xf6\x68\xf6\x69\xf6\x6a\xf6\x6b\xf6\x6c\xf6\x6d\xf6\x6e\xf6\x6f\xf6\x70\xf6\x71\xf6\x72\xf6\x73\xf6\x74\xf6\x75\xf6\x76\xf6\x77\xf6\x78\xf6\x79\xf6\x7a\xf6\x7b\xf6\x7c\xf6\x7d\xf6\x7e\xf6\x7f\xf6\x80\xf6\x81\xf6\x82\xf6\x83\xf6\x84\xf6\x85\xf6\x86\xf6\x87\xf6\x88\xf6\x89\xf6\x8a\xf6\x8b\xf6\x8c\xf6\x8d\xf6\x8e\xf6\x8f\xf6\x90\xf6\x91\xf6\x92\xf6\x93\xf6\x94\xf6\x95\xf6\x96", /* 4d00 */ "\xf6\x97\xf6\x98\xf6\x99\xf6\x9a\xf6\x9b\xf6\x9c\xf6\x9d\xf6\x9e\xf6\x9f\xf6\xa0\xf6\xa1\xf6\xa2\xf6\xa3\xf6\xa4\xf6\xa5\xf6\xa6\xf6\xa7\xf6\xa8\xf6\xa9\xce\x9e\xce\x9f\xce\xa0\xce\xa1\xce\xa2\xce\xa3\xce\xa4\xf6\xaa\xf6\xab\xf6\xac\xf6\xad\xf6\xae\xf6\xaf\xf6\xb0\xf6\xb1\xf6\xb2\xf6\xb3\xf6\xb4\xf6\xb5\xf6\xb6\xf6\xb7\xf6\xb8\xf6\xb9\xf6\xba\xf6\xbb\xf6\xbc\xf6\xbd\xf6\xbe\xf6\xbf\xf6\xc0\xf6\xc1\xf6\xc2\xf6\xc3\xf6\xc4\xf6\xc5\xf6\xc6\xf6\xc7\xf6\xc8\xf6\xc9\xf6\xca\xf6\xcb\xf6\xcc\xf6\xcd\xf6\xce\xf6\xcf\xf6\xd0\xf6\xd1\xf6\xd2\xf6\xd3\xf6\xd4\xf6\xd5\xf6\xd6\xf6\xd7\xf6\xd8\xf6\xd9\xf6\xda\xf6\xdb\xf6\xdc\xf6\xdd\xf6\xde\xf6\xdf\xf6\xe0\xf6\xe1\xf6\xe2\xf6\xe3\xf6\xe4\xf6\xe5\xf6\xe6\xf6\xe7\xf6\xe8\xf6\xe9\xf6\xea\xf6\xeb\xf6\xec\xf6\xed\xf6\xee\xf6\xef\xf6\xf0\xf6\xf1\xf6\xf2\xf6\xf3\xf6\xf4\xf6\xf5\xf6\xf6\xf6\xf7\xf6\xf8\xf6\xf9\xf6\xfa\xf6\xfb\xf6\xfc\xf6\xfd\xf6\xfe\xf7\x41\xf7\x42\xf7\x43\xf7\x44\xf7\x45\xf7\x46\xf7\x47\xf7\x48\xf7\x49\xf7\x4a\xf7\x4b\xf7\x4c\xf7\x4d\xf7\x4e\xf7\x4f\xf7\x50\xf7\x51", /* 4d80 */ "\xf7\x52\xf7\x53\xf7\x54\xf7\x55\xf7\x56\xf7\x57\xf7\x58\xf7\x59\xf7\x5a\xf7\x5b\xf7\x5c\xf7\x5d\xf7\x5e\xf7\x5f\xf7\x60\xf7\x61\xf7\x62\xf7\x63\xf7\x64\xf7\x65\xf7\x66\xf7\x67\xf7\x68\xf7\x69\xf7\x6a\xf7\x6b\xf7\x6c\xf7\x6d\xf7\x6e\xf7\x6f\xf7\x70\xf7\x71\xf7\x72\xf7\x73\xf7\x74\xf7\x75\xf7\x76\xf7\x77\xf7\x78\xf7\x79\xf7\x7a\xf7\x7b\xf7\x7c\xf7\x7d\xf7\x7e\xf7\x7f\xce\xa5\xf7\x80\xf7\x81\xf7\x82\xf7\x83\xf7\x84\xf7\x85\xf7\x86\xf7\x87\xf7\x88\xf7\x89\xf7\x8a\xf7\x8b\xf7\x8c\xf7\x8d\xf7\x8e\xf7\x8f\xf7\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4e00 */ "\x59\xba\x4b\xa0\x81\x41\x53\xde\x81\x42\x81\x43\x81\x44\x57\x93\x5b\x69\x54\xfc\x55\x6f\x58\x62\x5c\xa1\x49\xba\x5a\x8c\x81\x45\x5c\xa3\x4a\x94\x81\x46\x5c\x48\x54\x72\x5c\xa6\x55\xbf\x81\x47\x54\x91\x49\x9c\x59\xb4\x4a\xd3\x4b\xaa\x56\x5f\x5c\xa8\x81\x48\x81\x49\x81\x4a\x4b\xa9\x81\x4b\x51\x5d\x59\x6f\x81\x4c\x55\x45\x5c\xac\x81\x4d\x4c\xf5\x59\x5e\x62\x7c\x5b\xcf\x81\x4e\x81\x4f\x4c\x82\x81\x50\x4a\xad\x81\x51\x51\x79\x81\x52\x5c\xbb\x81\x53\x57\x89\x4b\x44\x57\xa9\x5b\xf6\x81\x54\x50\xf5\x4f\xd8\x5c\xae\x81\x55\x81\x56\x81\x57\x52\xca\x81\x58\x4f\xc2\x81\x59\x5c\xb0\x52\x54\x59\xe4\x81\x5a\x5b\xad\x57\xd9\x5b\x47\x4d\xf4\x4c\x46\x50\xd5\x81\x5b\x53\xb8\x53\x72\x54\x67\x81\x5c\x4d\x74\x81\x5d\x4a\x6b\x59\xd1\x81\x5e\x81\x5f\x5c\xbe\x4f\xc4\x53\xf1\x59\xb1\x58\x50\x58\x88\x81\x60\x81\x61\x81\x62\x81\x63\x55\xe8\x81\x64\x81\x65\x5c\xbf\x81\x66\x81\x67\x81\x68\x81\x69\x81\x6a\x81\x6b\x51\xf1\x51\xd1\x81\x6c\x54\xe8\x81\x6d\x81\x6e\x81\x6f\x81\x70\x81\x71\x81\x72\x81\x73\x81\x74\x81\x75\x81\x76\x54\x4c\x81\x77", /* 4e80 */ "\x81\x78\x81\x79\x81\x7a\x81\x7b\x81\x7c\x81\x7d\x51\x6b\x81\x7e\x5a\x89\x5b\x9a\x81\x7f\x55\xc1\x4b\xfd\x5c\xa0\x5a\x7a\x50\x98\x81\x81\x5a\xc5\x4e\x45\x5c\xc0\x57\xe4\x4f\xad\x81\x82\x81\x83\x5c\xa7\x81\x84\x59\x67\x58\xa8\x81\x85\x81\x86\x81\x87\x5c\xbc\x5d\x90\x57\x97\x50\x5a\x81\x88\x4f\x5b\x4d\xa4\x59\xdf\x49\xf9\x4d\xdf\x52\xb5\x81\x89\x58\x8e\x4f\xa8\x57\x44\x51\x61\x81\x8a\x81\x8b\x81\x8c\x54\x77\x5d\x92\x81\x8d\x5d\x95\x81\x8e\x81\x8f\x81\x90\x81\x91\x54\xca\x5c\xe8\x81\x92\x81\x93\x81\x94\x59\xd9\x55\xb1\x54\xc9\x5c\xeb\x5c\xe9\x5c\xc5\x4f\x97\x53\xcc\x4a\x91\x81\x95\x5c\xea\x4f\x92\x4f\x8a\x81\x96\x54\xd3\x4a\xd2\x81\x97\x81\x98\x51\xd7\x81\x99\x49\xd5\x5c\x70\x55\xca\x56\x9c\x5b\x6c\x4c\xb5\x58\x69\x81\x9a\x81\x9b\x81\x9c\x5d\x7a\x5c\xef\x54\x4a\x81\x9d\x5c\xed\x81\x9e\x4a\xf9\x51\x8f\x59\xd3\x81\x9f\x81\xa0\x5c\xec\x81\xa1\x59\xc6\x5c\xee\x52\x67\x81\xa2\x81\xa3\x81\xa4\x59\x97\x81\xa5\x5b\xd8\x5c\xf1\x81\xa6\x5c\xf4\x4e\xfd\x4e\xda\x81\xa7\x81\xa8\x81\xa9\x54\xcd\x81\xaa\x4c\x7d\x81\xab\x4c\x62", /* 4f00 */ "\x81\xac\x53\xf2\x81\xad\x81\xae\x81\xaf\x81\xb0\x81\xb1\x81\xb2\x81\xb3\x5c\xf7\x59\xc0\x81\xb4\x81\xb5\x57\xe8\x4e\xbe\x4c\x9d\x4c\x45\x58\xdc\x81\xb6\x81\xb7\x81\xb8\x81\xb9\x81\xba\x5b\xd9\x5a\x65\x4e\x90\x4e\x82\x5c\xf0\x81\xbb\x81\xbc\x55\x41\x57\xaf\x4a\xaa\x81\xbd\x5c\xf2\x81\xbe\x55\x6b\x5c\xf5\x51\xd6\x5c\xf6\x81\xbf\x81\xc0\x57\xb0\x5c\xf8\x81\xc1\x81\xc2\x81\xc3\x49\xad\x4d\x60\x81\xc4\x5d\x43\x81\xc5\x48\xe8\x81\xc6\x51\x87\x81\xc7\x55\x8d\x81\xc8\x56\x65\x81\xc9\x56\x66\x5d\x44\x81\xca\x81\xcb\x81\xcc\x81\xcd\x81\xce\x4b\x89\x81\xcf\x81\xd0\x4b\x4b\x81\xd1\x81\xd2\x81\xd3\x81\xd4\x81\xd5\x81\xd6\x57\xba\x4b\x6d\x5c\x41\x5c\x95\x5a\x73\x81\xd7\x56\xe4\x81\xd8\x4d\xcd\x81\xd9\x5d\x42\x5d\x7c\x5a\x81\x5c\xfc\x4c\x91\x5c\x98\x5c\xfd\x5c\xf9\x5d\x41\x52\xe2\x81\xda\x81\xdb\x5a\x56\x5c\xf3\x5d\x7d\x81\xdc\x5c\xfa\x81\xdd\x53\x86\x81\xde\x81\xdf\x50\xcf\x81\xe0\x81\xe1\x59\x91\x48\xda\x81\xe2\x81\xe3\x4e\xd0\x5d\x46\x81\xe4\x5d\x45\x81\xe5\x81\xe6\x81\xe7\x81\xe8\x5d\x4c\x5d\x4e\x81\xe9\x5d\x4b\x55\xb8", /* 4f80 */ "\x81\xea\x81\xeb\x81\xec\x5d\x49\x5b\xb5\x81\xed\x81\xee\x81\xef\x4a\x7e\x5d\x48\x81\xf0\x50\xfc\x81\xf1\x55\xcb\x81\xf2\x5d\x4a\x81\xf3\x5d\x47\x81\xf4\x81\xf5\x5d\x50\x81\xf6\x81\xf7\x4b\xb0\x81\xf8\x81\xf9\x81\xfa\x4d\x49\x81\xfb\x59\xbf\x81\xfc\x81\xfd\x58\x60\x82\x41\x82\x42\x51\xc1\x82\x43\x4f\x64\x5b\x8d\x49\xdf\x54\x68\x50\x8c\x5d\x4d\x82\x44\x5d\x4f\x82\x45\x57\xe9\x4d\xed\x82\x46\x82\x47\x82\x48\x82\x49\x82\x4a\x54\x76\x82\x4b\x82\x4c\x82\x4d\x82\x4e\x82\x4f\x82\x50\x82\x51\x82\x52\x82\x53\x49\x84\x82\x54\x82\x55\x82\x56\x4a\xd8\x4b\xec\x5d\x54\x82\x57\x82\x58\x82\x59\x82\x5a\x50\x41\x82\x5b\x82\x5c\x82\x5d\x5d\x7e\x54\x6e\x50\xfd\x5d\x58\x82\x5e\x82\x5f\x82\x60\x82\x61\x82\x62\x56\x77\x4c\x9e\x82\x63\x5d\x55\x82\x64\x5d\x57\x49\x43\x5a\x82\x5d\x59\x82\x65\x58\xc4\x82\x66\x5d\x56\x82\x67\x82\x68\x5d\x51\x82\x69\x5d\x52\x51\x49\x5d\x53\x82\x6a\x82\x6b\x4e\xf2\x58\xdd\x4c\xa8\x82\x6c\x4f\xe2\x82\x6d\x5d\x5d\x82\x6e\x82\x6f\x82\x70\x82\x71\x5d\x5a\x82\x72\x48\xb2\x82\x73\x82\x74\x82\x75\x5d\x62\x82\x76", /* 5000 */ "\x82\x77\x82\x78\x82\x79\x82\x7a\x82\x7b\x82\x7c\x82\x7d\x82\x7e\x82\x7f\x82\x81\x82\x82\x82\x83\x5d\x64\x49\x56\x82\x84\x5d\x5f\x82\x85\x82\x86\x4b\x59\x82\x87\x4f\xf2\x82\x88\x82\x89\x82\x8a\x56\xc7\x4d\xf1\x59\xcf\x82\x8b\x5d\x63\x82\x8c\x82\x8d\x4f\x89\x82\x8e\x4a\x4b\x82\x8f\x82\x90\x82\x91\x5d\x65\x4f\xea\x82\x92\x5d\x66\x5d\x5b\x52\xde\x82\x93\x5d\x5e\x5d\x61\x5d\x60\x82\x94\x82\x95\x82\x96\x82\x97\x82\x98\x82\x99\x82\x9a\x82\x9b\x82\x9c\x82\x9d\x82\x9e\x5b\x4e\x82\x9f\x5b\xb4\x82\xa0\x54\x84\x82\xa1\x82\xa2\x82\xa3\x82\xa4\x5d\x68\x82\xa5\x82\xa6\x82\xa7\x4e\xd8\x5d\x6a\x82\xa8\x82\xa9\x82\xaa\x5d\x5c\x82\xab\x5d\x6b\x53\xaa\x82\xac\x82\xad\x82\xae\x82\xaf\x82\xb0\x5d\x69\x82\xb1\x82\xb2\x82\xb3\x82\xb4\x5c\x97\x82\xb5\x57\x43\x82\xb6\x82\xb7\x82\xb8\x82\xb9\x82\xba\x82\xbb\x82\xbc\x82\xbd\x4f\x41\x82\xbe\x82\xbf\x82\xc0\x82\xc1\x82\xc2\x82\xc3\x5d\x6c\x82\xc4\x82\xc5\x82\xc6\x82\xc7\x82\xc8\x82\xc9\x82\xca\x82\xcb\x82\xcc\x53\x5c\x57\x55\x82\xcd\x82\xce\x82\xcf\x5d\x6d\x82\xd0\x82\xd1\x5d\x67\x4a\x45", /* 5080 */ "\x50\x9f\x82\xd2\x82\xd3\x82\xd4\x82\xd5\x4c\xb4\x82\xd6\x82\xd7\x50\xfb\x82\xd8\x82\xd9\x82\xda\x82\xdb\x48\xf7\x82\xdc\x82\xdd\x82\xde\x82\xdf\x82\xe0\x82\xe1\x82\xe2\x82\xe3\x82\xe4\x82\xe5\x82\xe6\x82\xe7\x82\xe8\x82\xe9\x82\xea\x82\xeb\x82\xec\x82\xed\x82\xee\x82\xef\x82\xf0\x4a\xf5\x82\xf1\x5d\x6e\x82\xf2\x5d\x6f\x4a\xa1\x5d\x70\x82\xf3\x82\xf4\x4a\xde\x82\xf5\x82\xf6\x82\xf7\x82\xf8\x82\xf9\x48\xc0\x82\xfa\x82\xfb\x82\xfc\x82\xfd\x83\x41\x83\x42\x83\x43\x5d\x71\x55\x55\x83\x44\x83\x45\x83\x46\x83\x47\x83\x48\x83\x49\x83\x4a\x83\x4b\x83\x4c\x83\x4d\x83\x4e\x83\x4f\x83\x50\x83\x51\x83\x52\x83\x53\x83\x54\x83\x55\x83\x56\x58\x92\x83\x57\x83\x58\x83\x59\x83\x5a\x83\x5b\x83\x5c\x5d\x72\x83\x5d\x83\x5e\x83\x5f\x51\x65\x83\x60\x83\x61\x83\x62\x83\x63\x83\x64\x83\x65\x83\x66\x83\x67\x83\x68\x83\x69\x83\x6a\x5d\x76\x55\x4e\x83\x6b\x83\x6c\x83\x6d\x83\x6e\x5d\x75\x5d\x74\x5d\x77\x83\x6f\x83\x70\x83\x71\x83\x72\x56\x7b\x83\x73\x4f\x49\x83\x74\x83\x75\x83\x76\x83\x77\x83\x78\x53\xa6\x83\x79\x83\x7a\x83\x7b\x83\x7c", /* 5100 */ "\x83\x7d\x83\x7e\x83\x7f\x83\x81\x83\x82\x83\x83\x5d\x73\x5d\x78\x83\x84\x83\x85\x83\x86\x5d\x79\x83\x87\x83\x88\x83\x89\x83\x8a\x83\x8b\x83\x8c\x54\xe4\x83\x8d\x83\x8e\x83\x8f\x83\x90\x83\x91\x83\x92\x83\x93\x83\x94\x83\x95\x83\x96\x83\x97\x83\x98\x83\x99\x83\x9a\x50\xdb\x83\x9b\x83\x9c\x83\x9d\x83\x9e\x83\x9f\x83\xa0\x83\xa1\x83\xa2\x83\xa3\x83\xa4\x83\xa5\x83\xa6\x83\xa7\x83\xa8\x83\xa9\x83\xaa\x83\xab\x83\xac\x83\xad\x83\xae\x83\xaf\x83\xb0\x83\xb1\x83\xb2\x83\xb3\x83\xb4\x83\xb5\x83\xb6\x83\xb7\x4b\xf8\x5c\xa2\x5a\xc9\x83\xb8\x5a\xa9\x58\xd5\x4a\x85\x5b\x77\x83\xb9\x58\x68\x4d\x83\x83\xba\x50\x6b\x83\xbb\x52\x83\x83\xbc\x83\xbd\x83\xbe\x4b\xd1\x83\xbf\x83\xc0\x57\x63\x5d\x8f\x5d\x91\x83\xc1\x83\xc2\x83\xc3\x4b\x53\x83\xc4\x4b\xb4\x83\xc5\x83\xc6\x83\xc7\x83\xc8\x83\xc9\x4f\xa3\x83\xca\x83\xcb\x54\xea\x83\xcc\x83\xcd\x54\xaa\x83\xce\x83\xcf\x48\xca\x4d\x4b\x51\x9a\x5d\x83\x83\xd0\x50\xbb\x4d\x52\x83\xd1\x4d\x78\x58\xca\x49\x99\x53\xe3\x4f\xde\x4b\x85\x5c\x68\x83\xd2\x59\x99\x4e\xe5\x55\xdd\x83\xd3\x83\xd4", /* 5180 */ "\x4e\xbc\x5d\x87\x5c\xe6\x83\xd5\x83\xd6\x52\xd9\x83\xd7\x83\xd8\x4c\xd3\x54\xbc\x83\xd9\x83\xda\x49\xe0\x5a\xd8\x83\xdb\x83\xdc\x83\xdd\x83\xde\x52\x50\x83\xdf\x83\xe0\x52\x82\x5d\xa1\x54\xde\x83\xe1\x58\xb3\x83\xe2\x4f\xfb\x53\x49\x83\xe3\x83\xe4\x83\xe5\x4d\x7a\x83\xe6\x5d\xa2\x83\xe7\x5a\xa8\x5d\xa3\x83\xe8\x83\xe9\x83\xea\x83\xeb\x83\xec\x5d\x9c\x4b\xab\x83\xed\x83\xee\x4c\x8c\x49\x9a\x5d\x9d\x4a\x86\x4f\xf5\x83\xef\x50\x97\x59\xb0\x50\xe3\x83\xf0\x83\xf1\x83\xf2\x4b\xb2\x5d\x9f\x5d\x9e\x83\xf3\x83\xf4\x4f\xba\x83\xf5\x83\xf6\x83\xf7\x53\xdf\x83\xf8\x5c\x5c\x5d\xa0\x83\xf9\x51\x59\x83\xfa\x4b\x93\x51\x89\x83\xfb\x83\xfc\x4e\xf4\x83\xfd\x4a\xd4\x84\x41\x84\x42\x84\x43\x84\x44\x84\x45\x84\x46\x84\x47\x84\x48\x84\x49\x51\x7d\x84\x4a\x52\xfc\x84\x4b\x84\x4c\x4e\xb7\x4c\x52\x84\x4d\x84\x4e\x4c\x90\x84\x4f\x84\x50\x84\x51\x84\x52\x84\x53\x84\x54\x5d\x8d\x84\x55\x53\xbd\x84\x56\x50\x4d\x4e\x6b\x84\x57\x84\x58\x4b\x6a\x84\x59\x5e\x69\x58\xd6\x84\x5a\x57\x59\x48\xbb\x4a\x97\x4e\x98\x5e\x6a\x4d\xae\x84\x5b\x5a\xe3", /* 5200 */ "\x4b\x56\x4b\x94\x5c\xd5\x54\xcf\x84\x5c\x84\x5d\x4c\x76\x54\x70\x5c\xd6\x84\x5e\x50\x4f\x84\x5f\x84\x60\x5e\x5b\x5c\xd7\x84\x61\x84\x62\x58\xcb\x4e\x4e\x84\x63\x84\x64\x84\x65\x66\x5e\x51\x70\x51\x96\x5a\xf1\x4c\xd4\x4a\xb3\x84\x66\x4a\x96\x84\x67\x84\x68\x55\x5e\x84\x69\x84\x6a\x84\x6b\x53\x70\x84\x6c\x84\x6d\x84\x6e\x53\x79\x50\xfa\x84\x6f\x49\x91\x84\x70\x5c\xd8\x4d\x6e\x84\x71\x4b\x5d\x84\x72\x84\x73\x5c\xd9\x84\x74\x84\x75\x5b\xc5\x56\x42\x54\xae\x55\x52\x4a\xcb\x50\x6c\x84\x76\x4d\x95\x84\x77\x5c\xda\x5c\xdb\x4b\xe6\x4e\xc0\x56\xe9\x84\x78\x84\x79\x84\x7a\x84\x7b\x84\x7c\x84\x7d\x58\x98\x84\x7e\x5c\xdc\x54\x50\x84\x7f\x84\x81\x4d\x70\x4f\x43\x84\x82\x84\x83\x56\xdd\x84\x84\x53\xc9\x84\x85\x84\x86\x84\x87\x84\x88\x84\x89\x5c\xdf\x84\x8a\x5c\xdd\x84\x8b\x84\x8c\x5c\xde\x84\x8d\x84\x8e\x84\x8f\x48\xfd\x84\x90\x4f\xe6\x84\x91\x55\xa2\x4e\xf3\x84\x92\x84\x93\x84\x94\x84\x95\x4c\xb0\x84\x96\x84\x97\x4c\xed\x84\x98\x84\x99\x84\x9a\x84\x9b\x84\x9c\x84\x9d\x84\x9e\x84\x9f\x84\xa0\x84\xa1\x5c\xe1\x84\xa2\x4f\x6b", /* 5280 */ "\x84\xa3\x5c\xe3\x5c\xe2\x84\xa4\x84\xa5\x84\xa6\x84\xa7\x84\xa8\x53\x9d\x84\xa9\x84\xaa\x84\xab\x84\xac\x84\xad\x84\xae\x84\xaf\x5c\xe4\x84\xb0\x84\xb1\x5c\xe5\x84\xb2\x84\xb3\x84\xb4\x84\xb5\x84\xb6\x84\xb7\x84\xb8\x51\x46\x84\xb9\x54\xaf\x48\xeb\x4d\x46\x4e\xd2\x57\xf0\x5e\x5d\x51\x73\x84\xba\x84\xbb\x84\xbc\x84\xbd\x4b\xae\x5b\xf9\x53\x4c\x4f\x79\x5e\x5e\x5e\x5f\x84\xbe\x84\xbf\x84\xc0\x50\xf7\x4f\xa1\x50\xcc\x84\xc1\x84\xc2\x84\xc3\x84\xc4\x84\xc5\x84\xc6\x84\xc7\x84\xc8\x84\xc9\x84\xca\x5e\x60\x55\xc5\x84\xcb\x84\xcc\x84\xcd\x49\xa9\x84\xce\x84\xcf\x84\xd0\x5a\x62\x84\xd1\x52\x84\x84\xd2\x59\x4b\x84\xd3\x84\xd4\x84\xd5\x84\xd6\x5e\x62\x84\xd7\x50\xd4\x84\xd8\x84\xd9\x84\xda\x5e\x63\x84\xdb\x50\x51\x84\xdc\x84\xdd\x84\xde\x84\xdf\x84\xe0\x84\xe1\x52\xbb\x84\xe2\x84\xe3\x84\xe4\x84\xe5\x54\x7a\x84\xe6\x84\xe7\x84\xe8\x84\xe9\x84\xea\x84\xeb\x84\xec\x84\xed\x84\xee\x84\xef\x84\xf0\x5e\x64\x84\xf1\x84\xf2\x84\xf3\x84\xf4\x84\xf5\x84\xf6\x84\xf7\x84\xf8\x5d\x89\x55\x77\x84\xf9\x84\xfa\x84\xfb\x4d\x54\x57\xef", /* 5300 */ "\x5a\xc7\x84\xfc\x84\xfd\x85\x41\x85\x42\x48\xfb\x4a\xd1\x85\x43\x58\xd8\x85\x44\x85\x45\x85\x46\x85\x47\x5d\x8a\x85\x48\x5f\xca\x5d\x8c\x85\x49\x85\x4a\x85\x4b\x85\x4c\x5c\xaf\x4e\x4f\x49\x51\x85\x4d\x4a\x77\x5c\xcd\x85\x4e\x85\x4f\x5a\xd0\x85\x50\x85\x51\x4f\x53\x50\x90\x85\x52\x58\x5b\x85\x53\x85\x54\x5c\xcf\x85\x55\x85\x56\x85\x57\x4c\x6b\x85\x58\x85\x59\x85\x5a\x5c\xd0\x85\x5b\x85\x5c\x85\x5d\x85\x5e\x85\x5f\x85\x60\x85\x61\x85\x62\x85\x63\x85\x64\x53\xa4\x54\x99\x59\xbc\x85\x65\x85\x66\x5c\xd1\x52\xe3\x85\x67\x55\xad\x85\x68\x54\x47\x85\x69\x5c\xa5\x85\x6a\x55\x9e\x57\xe6\x4e\x7c\x48\xea\x85\x6b\x85\x6c\x85\x6d\x4e\x4a\x58\xac\x85\x6e\x49\x50\x5c\x85\x5c\x5f\x85\x6f\x4b\x45\x51\xf3\x52\xce\x85\x70\x85\x71\x49\xa8\x85\x72\x49\xb6\x85\x73\x49\x86\x60\x52\x5b\x5c\x50\x48\x51\xab\x5c\xd4\x51\xb0\x85\x74\x5c\xd3\x57\xd3\x85\x75\x5d\xdf\x85\x76\x57\xbf\x85\x77\x85\x78\x5c\xb3\x52\x4e\x5a\x41\x57\xa2\x85\x79\x4e\xb3\x54\xb3\x51\xd0\x85\x7a\x4f\xec\x58\xb5\x85\x7b\x5d\xe0\x85\x7c\x85\x7d\x85\x7e\x85\x7f\x54\x85", /* 5380 */ "\x85\x81\x85\x82\x4a\x47\x85\x83\x4b\xf1\x56\xfb\x50\xf9\x85\x84\x85\x85\x50\xf6\x85\x86\x59\x59\x59\x82\x5c\xc6\x85\x87\x85\x88\x85\x89\x85\x8a\x85\x8b\x85\x8c\x85\x8d\x49\xdd\x85\x8e\x85\x8f\x50\xe4\x85\x90\x4d\xf0\x85\x91\x85\x92\x5c\xc7\x85\x93\x5a\xac\x85\x94\x85\x95\x58\x82\x5c\xc8\x85\x96\x5c\xc9\x58\x63\x85\x97\x4a\x99\x4f\xc6\x85\x98\x85\x99\x85\x9a\x85\x9b\x5c\xca\x85\x9c\x85\x9d\x85\x9e\x85\x9f\x85\xa0\x85\xa1\x85\xa2\x5e\x6c\x85\xa3\x85\xa4\x85\xa5\x85\xa6\x54\xa4\x85\xa7\x85\xa8\x85\xa9\x58\x78\x85\xaa\x54\xfd\x49\xcd\x85\xab\x85\xac\x85\xad\x85\xae\x85\xaf\x5a\x76\x49\xe5\x4e\xaf\x5a\x71\x56\x4b\x4c\x54\x85\xb0\x85\xb1\x85\xb2\x4c\x42\x85\xb3\x85\xb4\x55\xe4\x85\xb5\x54\xa0\x55\xdb\x49\x85\x58\xef\x85\xb6\x53\x71\x85\xb7\x85\xb8\x85\xb9\x5e\x65\x4b\x9f\x85\xba\x85\xbb\x50\x7a\x4d\x65\x4f\xe3\x51\x8e\x85\xbc\x60\x56\x60\x55\x5b\xba\x4f\x70\x5b\x79\x48\xc7\x4b\xa2\x50\x69\x56\xa7\x60\x53\x55\xb6\x5a\x72\x85\xbd\x5c\xce\x59\xb5\x4d\xc4\x56\x5e\x56\xbd\x85\xbe\x60\x57\x4b\x91\x60\x54\x85\xbf\x85\xc0", /* 5400 */ "\x85\xc1\x5a\x96\x85\xc2\x4a\x74\x4c\xf6\x85\xc3\x60\x5a\x85\xc4\x4d\xce\x4e\xa9\x4b\x96\x85\xc5\x57\x4c\x52\x9c\x4d\xf2\x50\xf3\x57\x62\x58\x93\x60\x58\x58\x65\x85\xc6\x51\xbf\x60\x59\x51\xef\x85\xc7\x85\xc8\x85\xc9\x4f\xfc\x85\xca\x51\x7f\x57\x6c\x59\xf6\x4c\x6d\x60\x61\x85\xcb\x60\x64\x85\xcc\x85\xcd\x4c\x92\x48\xc8\x4b\xd5\x4c\x74\x85\xce\x4d\xab\x56\xfc\x50\x74\x56\x51\x53\xf3\x85\xcf\x5b\xa7\x60\x65\x85\xd0\x57\xe1\x4a\x53\x85\xd1\x85\xd2\x57\xfb\x4a\xb4\x85\xd3\x57\xc6\x4d\xef\x85\xd4\x57\xe0\x85\xd5\x59\x5d\x85\xd6\x85\xd7\x60\x60\x85\xd8\x85\xd9\x4a\xf3\x85\xda\x4a\x6a\x85\xdb\x4c\xe5\x60\x5b\x85\xdc\x85\xdd\x85\xde\x85\xdf\x52\xc4\x85\xe0\x60\x5c\x60\x5d\x60\x5e\x53\x5b\x60\x5f\x60\x62\x5a\xb0\x60\x63\x85\xe1\x54\x5a\x57\xd7\x85\xe2\x85\xe3\x85\xe4\x85\xe5\x85\xe6\x52\xd7\x85\xe7\x60\x6a\x85\xe8\x60\x6f\x85\xe9\x5b\xdb\x85\xea\x85\xeb\x85\xec\x85\xed\x85\xee\x85\xef\x85\xf0\x85\xf1\x60\x69\x60\x7a\x57\xb5\x85\xf2\x4d\xc6\x60\x6e\x60\x68\x53\x7e\x85\xf3\x85\xf4\x55\x8c\x4d\xf3\x52\x9d\x85\xf5\x85\xf6", /* 5480 */ "\x4f\xd6\x85\xf7\x60\x66\x85\xf8\x60\x6d\x85\xf9\x53\x78\x85\xfa\x85\xfb\x85\xfc\x85\xfd\x5b\x46\x4d\xcc\x86\x41\x4f\xcb\x5a\x5d\x4c\xbf\x86\x42\x5b\xe3\x86\x43\x60\x67\x4d\x5e\x50\x47\x86\x44\x86\x45\x51\x9d\x60\x6b\x60\x6c\x86\x46\x60\x70\x86\x47\x86\x48\x86\x49\x86\x4a\x86\x4b\x60\x7b\x60\x86\x86\x4c\x60\x77\x60\x76\x5c\x69\x60\x84\x60\x85\x63\x8c\x59\xa6\x60\x72\x86\x4d\x50\x49\x86\x4e\x5a\xda\x86\x4f\x50\x68\x60\x74\x86\x50\x86\x51\x86\x52\x58\x6c\x86\x53\x86\x54\x60\x7d\x86\x55\x59\x6a\x86\x56\x60\x7e\x48\xa6\x53\xb6\x60\x73\x86\x57\x4d\xe4\x86\x58\x4b\xde\x57\x7b\x4d\x9f\x5a\xd4\x86\x59\x86\x5a\x60\x7f\x58\x8d\x48\xa4\x60\x88\x60\x71\x59\x66\x60\x75\x60\x78\x60\x79\x60\x7c\x86\x5b\x4e\x49\x86\x5c\x60\x81\x60\x82\x86\x5d\x60\x83\x60\x87\x60\x89\x5a\x54\x86\x5e\x86\x5f\x86\x60\x86\x61\x86\x62\x4c\xe6\x53\x56\x60\x8b\x55\x7a\x51\x48\x52\xc3\x86\x63\x86\x64\x50\x7e\x58\x99\x86\x65\x86\x66\x86\x67\x5b\x7c\x60\x8f\x86\x68\x86\x69\x86\x6a\x86\x6b\x86\x6c\x86\x6d\x49\xb7\x86\x6e\x4d\xde\x60\x8d\x86\x6f\x5e\x61", /* 5500 */ "\x86\x70\x59\x85\x86\x71\x86\x72\x86\x73\x86\x74\x56\x95\x4a\xbc\x86\x75\x48\xa5\x86\x76\x86\x77\x86\x78\x86\x79\x86\x7a\x60\x92\x56\xc5\x60\x93\x86\x7b\x86\x7c\x60\x8e\x86\x7d\x86\x7e\x86\x7f\x86\x81\x86\x82\x86\x83\x60\x8a\x86\x84\x86\x85\x86\x86\x86\x87\x60\x8c\x86\x88\x60\x90\x60\x91\x4e\x5d\x86\x89\x86\x8a\x60\x94\x86\x8b\x86\x8c\x60\x95\x86\x8d\x4e\x43\x86\x8e\x55\xda\x57\xa7\x60\xa6\x4a\x4a\x86\x8f\x60\xa5\x86\x90\x86\x91\x86\x92\x60\xa0\x86\x93\x86\x94\x86\x95\x86\x96\x60\x9f\x86\x97\x57\x79\x60\x9d\x86\x98\x60\x9b\x86\x99\x50\x70\x5c\x64\x86\x9a\x55\x6c\x86\x9b\x86\x9c\x60\x99\x48\xa0\x86\x9d\x86\x9e\x86\x9f\x86\xa0\x86\xa1\x60\x9e\x86\xa2\x86\xa3\x86\xa4\x86\xa5\x60\x9c\x60\xa1\x86\xa6\x86\xa7\x86\xa8\x86\xa9\x86\xaa\x60\xa7\x86\xab\x86\xac\x86\xad\x86\xae\x4c\x68\x86\xaf\x86\xb0\x53\xa0\x55\x56\x50\xb1\x60\x96\x86\xb1\x86\xb2\x53\x5e\x86\xb3\x5c\xc3\x60\x9a\x52\xf5\x86\xb4\x86\xb5\x86\xb6\x86\xb7\x86\xb8\x86\xb9\x60\xa2\x60\xa3\x60\xa4\x58\xa4\x86\xba\x86\xbb\x60\xb3\x56\xe3\x86\xbc\x60\xb0\x86\xbd", /* 5580 */ "\x50\x46\x60\xae\x57\xb8\x60\xaa\x55\x66\x86\xbe\x86\xbf\x50\xad\x60\xad\x4d\xec\x4d\xaf\x60\xa8\x86\xc0\x86\xc1\x86\xc2\x60\x97\x86\xc3\x60\xb2\x86\xc4\x86\xc5\x60\xb7\x86\xc6\x86\xc7\x86\xc8\x4a\xac\x60\xb8\x86\xc9\x86\xca\x58\x52\x4d\xc7\x86\xcb\x60\xaf\x86\xcc\x86\xcd\x86\xce\x86\xcf\x86\xd0\x86\xd1\x86\xd2\x58\xf9\x86\xd3\x86\xd4\x86\xd5\x86\xd6\x86\xd7\x86\xd8\x86\xd9\x86\xda\x86\xdb\x60\xab\x86\xdc\x5a\xfa\x86\xdd\x60\x98\x86\xde\x53\x88\x86\xdf\x60\xac\x86\xe0\x5a\x98\x86\xe1\x60\xb5\x60\xb6\x86\xe2\x86\xe3\x86\xe4\x86\xe5\x86\xe6\x60\xc3\x58\xe0\x86\xe7\x86\xe8\x86\xe9\x60\xbb\x86\xea\x86\xeb\x60\xc8\x60\xc9\x86\xec\x86\xed\x86\xee\x60\xbd\x60\xa9\x55\x44\x60\xc0\x86\xef\x60\xb1\x86\xf0\x86\xf1\x86\xf2\x86\xf3\x86\xf4\x55\xc7\x60\xc2\x86\xf5\x60\xb4\x86\xf6\x57\xca\x86\xf7\x56\x63\x60\xcc\x60\xc5\x60\xc1\x86\xf8\x60\xca\x86\xf9\x60\xb9\x60\xbe\x60\xbf\x86\xfa\x86\xfb\x60\xc4\x86\xfc\x86\xfd\x60\xc6\x60\xc7\x87\x41\x60\xcb\x87\x42\x60\xba\x87\x43\x87\x44\x87\x45\x87\x46\x87\x47\x56\x74\x60\xd4\x87\x48", /* 5600 */ "\x60\xd5\x60\xd1\x87\x49\x87\x4a\x87\x4b\x87\x4c\x87\x4d\x87\x4e\x60\xcf\x4e\xcd\x87\x4f\x87\x50\x60\xd0\x87\x51\x4c\xc1\x5c\xc4\x87\x52\x87\x53\x87\x54\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x58\xe9\x87\x5a\x87\x5b\x51\xee\x87\x5c\x87\x5d\x60\xce\x60\xbc\x87\x5e\x87\x5f\x87\x60\x60\xd3\x60\xd2\x87\x61\x87\x62\x60\xd6\x87\x63\x87\x64\x87\x65\x87\x66\x60\xdb\x60\xd7\x87\x67\x87\x68\x87\x69\x5b\xf5\x4a\x50\x87\x6a\x5c\x8d\x87\x6b\x56\x5b\x87\x6c\x87\x6d\x60\xd9\x87\x6e\x57\xfa\x87\x6f\x87\x70\x87\x71\x4d\xd8\x87\x72\x87\x73\x87\x74\x87\x75\x87\x76\x87\x77\x87\x78\x87\x79\x87\x7a\x87\x7b\x87\x7c\x87\x7d\x60\xe0\x60\xdc\x59\xac\x87\x7e\x87\x7f\x87\x81\x87\x82\x87\x83\x60\xe1\x87\x84\x87\x85\x60\xda\x60\xd8\x60\xde\x87\x86\x87\x87\x60\xdf\x87\x88\x87\x89\x87\x8a\x87\x8b\x87\x8c\x60\xdd\x87\x8d\x60\xe3\x87\x8e\x87\x8f\x87\x90\x53\xf6\x5c\xab\x5a\xea\x60\xe5\x55\xc8\x87\x91\x87\x92\x87\x93\x87\x94\x60\xe4\x87\x95\x87\x96\x87\x97\x87\x98\x4c\xc0\x87\x99\x87\x9a\x87\x9b\x87\x9c\x60\xe6\x60\xe7\x87\x9d\x87\x9e\x87\x9f", /* 5680 */ "\x87\xa0\x87\xa1\x87\xa2\x87\xa3\x87\xa4\x60\xe8\x60\xe2\x87\xa5\x87\xa6\x87\xa7\x87\xa8\x87\xa9\x87\xaa\x87\xab\x4d\xbe\x56\xe6\x87\xac\x87\xad\x87\xae\x60\xe9\x87\xaf\x87\xb0\x87\xb1\x87\xb2\x87\xb3\x87\xb4\x87\xb5\x87\xb6\x87\xb7\x87\xb8\x87\xb9\x87\xba\x87\xbb\x87\xbc\x87\xbd\x58\x9a\x87\xbe\x87\xbf\x87\xc0\x87\xc1\x87\xc2\x87\xc3\x87\xc4\x87\xc5\x87\xc6\x87\xc7\x87\xc8\x60\xea\x87\xc9\x87\xca\x87\xcb\x87\xcc\x87\xcd\x87\xce\x87\xcf\x54\xc1\x87\xd0\x87\xd1\x87\xd2\x87\xd3\x4f\x60\x87\xd4\x87\xd5\x87\xd6\x87\xd7\x87\xd8\x87\xd9\x87\xda\x87\xdb\x87\xdc\x87\xdd\x87\xde\x87\xdf\x87\xe0\x52\xd1\x87\xe1\x87\xe2\x87\xe3\x87\xe4\x87\xe5\x87\xe6\x87\xe7\x87\xe8\x87\xe9\x60\xeb\x87\xea\x87\xeb\x60\xec\x87\xec\x87\xed\x54\x95\x56\x64\x87\xee\x60\xed\x4e\x78\x5c\xb5\x59\xf1\x60\xee\x57\x65\x87\xef\x4b\xd9\x87\xf0\x87\xf1\x87\xf2\x87\xf3\x87\xf4\x87\xf5\x60\xf0\x87\xf6\x5a\xaf\x87\xf7\x87\xf8\x50\xa6\x4a\xd0\x87\xf9\x87\xfa\x57\xa6\x60\xef\x87\xfb\x87\xfc\x87\xfd\x60\xf1\x4d\x6c\x88\x41\x88\x42\x4d\x9b\x57\x5c\x60\xf2", /* 5700 */ "\x88\x43\x88\x44\x88\x45\x53\xd3\x60\xf3\x88\x46\x5a\xb1\x88\x47\x54\xa5\x60\xf5\x60\xf4\x88\x48\x88\x49\x88\x4a\x88\x4b\x88\x4c\x88\x4d\x88\x4e\x88\x4f\x88\x50\x88\x51\x88\x52\x88\x53\x88\x54\x88\x55\x88\x56\x88\x57\x88\x58\x60\xf6\x88\x59\x88\x5a\x57\x61\x88\x5b\x88\x5c\x88\x5d\x55\xa4\x88\x5e\x88\x5f\x88\x60\x88\x61\x5a\xd9\x5e\x77\x5e\x79\x88\x62\x5e\x78\x4d\x88\x5e\x7c\x5e\x7d\x4b\x78\x88\x63\x88\x64\x5e\x7a\x88\x65\x88\x66\x88\x67\x88\x68\x88\x69\x5e\x7b\x4a\x41\x5e\x7f\x88\x6a\x88\x6b\x4e\x99\x88\x6c\x5b\xb6\x88\x6d\x5e\x81\x88\x6e\x88\x6f\x88\x70\x88\x71\x4f\xf8\x88\x72\x88\x73\x4c\x5b\x88\x74\x5e\x70\x56\xad\x50\x52\x4e\x55\x5c\x99\x50\x73\x88\x75\x88\x76\x88\x77\x88\x78\x88\x79\x50\x8a\x88\x7a\x88\x7b\x4e\xe0\x56\xb2\x5e\x7e\x48\xd2\x57\xea\x4c\x78\x5c\x59\x53\xc1\x88\x7c\x88\x7d\x50\xa3\x88\x7e\x56\xb8\x88\x7f\x5e\x88\x5e\x82\x53\xb9\x5e\x84\x88\x81\x5e\x89\x88\x82\x53\x98\x88\x83\x88\x84\x88\x85\x5e\x8b\x88\x86\x88\x87\x5e\x8a\x50\x60\x88\x88\x88\x89\x88\x8a\x5e\x87\x5e\x86\x88\x8b\x88\x8c\x88\x8d", /* 5780 */ "\x88\x8e\x88\x8f\x4a\xb8\x50\xab\x51\xa1\x5e\x83\x5e\x85\x88\x90\x88\x91\x88\x92\x88\x93\x58\xcc\x5e\x8e\x88\x94\x88\x95\x88\x96\x88\x97\x88\x98\x50\xdc\x5e\x93\x88\x99\x88\x9a\x88\x9b\x88\x9c\x88\x9d\x88\x9e\x88\x9f\x4b\xe1\x88\xa0\x88\xa1\x88\xa2\x88\xa3\x5e\x94\x5e\x72\x4d\x58\x5a\xaa\x5e\x8d\x88\xa4\x50\x71\x5e\x91\x88\xa5\x5e\x71\x88\xa6\x4b\x87\x88\xa7\x5e\x8c\x50\x86\x88\xa8\x88\xa9\x88\xaa\x5e\x8f\x88\xab\x5e\x92\x88\xac\x88\xad\x88\xae\x5e\x9a\x88\xaf\x88\xb0\x88\xb1\x88\xb2\x88\xb3\x88\xb4\x88\xb5\x88\xb6\x88\xb7\x4d\x41\x48\xa2\x88\xb8\x88\xb9\x88\xba\x88\xbb\x88\xbc\x88\xbd\x88\xbe\x51\xf0\x88\xbf\x88\xc0\x4a\x67\x5e\x90\x88\xc1\x88\xc2\x5e\x99\x88\xc3\x53\xd1\x5e\x95\x88\xc4\x88\xc5\x5e\x96\x5e\x98\x5e\x97\x88\xc6\x88\xc7\x5e\x9f\x88\xc8\x5a\x93\x49\xb9\x88\xc9\x88\xca\x88\xcb\x5e\x9e\x88\xcc\x88\xcd\x88\xce\x88\xcf\x88\xd0\x88\xd1\x88\xd2\x88\xd3\x5e\xa3\x88\xd4\x5e\x9c\x88\xd5\x88\xd6\x88\xd7\x88\xd8\x5e\x9b\x88\xd9\x88\xda\x88\xdb\x5e\x9d\x53\x81\x4e\x9a\x88\xdc\x88\xdd\x5e\xa2\x88\xde\x88\xdf", /* 5800 */ "\x5e\xa4\x88\xe0\x56\xc2\x88\xe1\x88\xe2\x88\xe3\x4b\xd0\x5f\x60\x88\xe4\x88\xe5\x88\xe6\x5e\xa0\x88\xe7\x5e\xa1\x88\xe8\x88\xe9\x88\xea\x54\x55\x88\xeb\x88\xec\x88\xed\x4b\xe8\x88\xee\x88\xef\x88\xf0\x5e\xa6\x88\xf1\x88\xf2\x88\xf3\x88\xf4\x5e\xa5\x88\xf5\x5e\xa8\x49\x44\x88\xf6\x88\xf7\x4b\x6c\x88\xf8\x88\xf9\x88\xfa\x88\xfb\x88\xfc\x50\x50\x88\xfd\x89\x41\x89\x42\x89\x43\x89\x44\x59\x7f\x89\x45\x89\x46\x89\x47\x89\x48\x4b\xc1\x89\x49\x89\x4a\x89\x4b\x89\x4c\x89\x4d\x89\x4e\x89\x4f\x89\x50\x89\x51\x89\x52\x89\x53\x89\x54\x89\x55\x89\x56\x5e\xa7\x89\x57\x89\x58\x89\x59\x89\x5a\x89\x5b\x89\x5c\x89\x5d\x56\x9b\x66\x94\x89\x5e\x89\x5f\x89\x60\x56\x7c\x89\x61\x89\x62\x56\x9f\x89\x63\x89\x64\x89\x65\x56\xc0\x89\x66\x89\x67\x89\x68\x89\x69\x89\x6a\x54\xfa\x89\x6b\x89\x6c\x89\x6d\x89\x6e\x89\x6f\x89\x70\x5e\xa9\x89\x71\x89\x72\x89\x73\x89\x74\x89\x75\x56\xed\x5e\xaa\x89\x76\x89\x77\x89\x78\x89\x79\x89\x7a\x89\x7b\x89\x7c\x89\x7d\x89\x7e\x89\x7f\x89\x81\x89\x82\x89\x83\x89\x84\x89\x85\x89\x86\x89\x87\x5e\x73\x89\x88", /* 5880 */ "\x5e\xae\x5e\xab\x89\x89\x4f\xb2\x89\x8a\x55\xfa\x89\x8b\x89\x8c\x89\x8d\x5e\xac\x89\x8e\x89\x8f\x89\x90\x89\x91\x89\x92\x89\x93\x89\x94\x89\x95\x55\x6a\x52\xb8\x89\x96\x89\x97\x89\x98\x89\x99\x89\x9a\x54\x5d\x5e\xad\x89\x9b\x89\x9c\x89\x9d\x5a\xf5\x58\xe5\x89\x9e\x89\x9f\x89\xa0\x89\xa1\x89\xa2\x89\xa3\x89\xa4\x89\xa5\x52\xaa\x4b\xd4\x89\xa6\x89\xa7\x89\xa8\x89\xa9\x89\xaa\x89\xab\x89\xac\x89\xad\x89\xae\x89\xaf\x89\xb0\x89\xb1\x89\xb2\x89\xb3\x89\xb4\x89\xb5\x89\xb6\x89\xb7\x5e\x74\x89\xb8\x89\xb9\x89\xba\x89\xbb\x49\x7a\x89\xbc\x89\xbd\x89\xbe\x5e\x75\x89\xbf\x89\xc0\x89\xc1\x89\xc2\x89\xc3\x89\xc4\x89\xc5\x89\xc6\x89\xc7\x89\xc8\x89\xc9\x5e\x76\x89\xca\x89\xcb\x89\xcc\x4d\xbd\x89\xcd\x89\xce\x89\xcf\x89\xd0\x89\xd1\x89\xd2\x89\xd3\x89\xd4\x89\xd5\x89\xd6\x89\xd7\x89\xd8\x89\xd9\x89\xda\x54\xbf\x89\xdb\x89\xdc\x89\xdd\x89\xde\x89\xdf\x89\xe0\x55\xbe\x54\xc8\x89\xe1\x5c\x53\x89\xe2\x55\x9a\x89\xe3\x89\xe4\x50\x67\x89\xe5\x89\xe6\x4d\xf7\x89\xe7\x89\xe8\x59\xbb\x89\xe9\x89\xea\x89\xeb\x89\xec\x89\xed\x89\xee", /* 5900 */ "\x89\xef\x89\xf0\x61\xb9\x89\xf1\x4a\xa5\x89\xf2\x89\xf3\x49\x58\x89\xf4\x89\xf5\x89\xf6\x89\xf7\x89\xf8\x4c\xb3\x89\xf9\x58\x64\x89\xfa\x89\xfb\x89\xfc\x89\xfd\x5d\x88\x58\x46\x57\x83\x8a\x41\x8a\x42\x5d\x8e\x4b\xdf\x8a\x43\x59\xb8\x8a\x44\x8a\x45\x4d\x5b\x8a\x46\x8a\x47\x8a\x48\x8a\x49\x61\xb8\x61\xb6\x8a\x4a\x4a\xf2\x8a\x4b\x56\xeb\x56\xaa\x4c\x93\x8a\x4c\x5c\xb1\x59\x8c\x4d\xba\x8a\x4d\x55\xa6\x8a\x4e\x8a\x4f\x57\x57\x8a\x50\x8a\x51\x59\xc3\x50\x85\x4e\xcf\x4b\xe0\x8a\x52\x5f\xc4\x8a\x53\x8a\x54\x8a\x55\x8a\x56\x5f\xc5\x5e\x5c\x8a\x57\x59\x79\x8a\x58\x8a\x59\x53\xe5\x52\xcd\x4c\x8f\x8a\x5a\x4c\x7c\x8a\x5b\x8a\x5c\x50\x9d\x5c\x81\x8a\x5d\x53\xf4\x8a\x5e\x8a\x5f\x49\x5c\x5f\xc7\x4f\x51\x56\xd6\x5f\xc9\x8a\x60\x5f\xc8\x8a\x61\x8a\x62\x8a\x63\x8a\x64\x8a\x65\x4b\x8d\x8a\x66\x55\x7d\x8a\x67\x8a\x68\x48\xc1\x8a\x69\x8a\x6a\x8a\x6b\x8a\x6c\x8a\x6d\x8a\x6e\x8a\x6f\x8a\x70\x8a\x71\x8a\x72\x8a\x73\x8a\x74\x8a\x75\x53\x4e\x53\x4b\x8a\x76\x52\xcb\x8a\x77\x4e\xe8\x56\x9e\x8a\x78\x8a\x79\x8a\x7a\x4d\xc2\x8a\x7b\x8a\x7c", /* 5980 */ "\x8a\x7d\x63\x9a\x54\xe6\x63\x9b\x57\x9e\x8a\x7e\x5c\x51\x4c\xbd\x51\xe7\x8a\x7f\x54\xd0\x8a\x81\x8a\x82\x63\x9c\x8a\x83\x8a\x84\x8a\x85\x8a\x86\x4b\xc9\x4e\xca\x8a\x87\x8a\x88\x59\x9e\x63\xa0\x8a\x89\x52\x8f\x8a\x8a\x8a\x8b\x8a\x8c\x8a\x8d\x63\xa3\x8a\x8e\x8a\x8f\x8a\x90\x8a\x91\x63\x9f\x63\xa4\x57\x77\x8a\x92\x8a\x93\x4c\x61\x63\x9d\x63\x9e\x63\xa2\x8a\x94\x8a\x95\x52\xdc\x63\xa7\x8a\x96\x8a\x97\x63\xa6\x8a\x98\x8a\x99\x8a\x9a\x8a\x9b\x8a\x9c\x8a\x9d\x52\x63\x8a\x9e\x53\xdd\x8a\x9f\x8a\xa0\x63\xa9\x8a\xa1\x8a\xa2\x8a\xa3\x8a\xa4\x8a\xa5\x8a\xa6\x8a\xa7\x52\xb6\x8a\xa8\x8a\xa9\x8a\xaa\x63\xa1\x55\xbb\x8a\xab\x8a\xac\x8a\xad\x8a\xae\x4f\x84\x4d\x63\x63\xa5\x58\xd4\x57\xae\x8a\xaf\x8a\xb0\x63\xa8\x63\xaf\x8a\xb1\x59\xa5\x8a\xb2\x4f\x4a\x63\xac\x8a\xb3\x8a\xb4\x8a\xb5\x8a\xb6\x8a\xb7\x63\xae\x8a\xb8\x50\xd0\x8a\xb9\x8a\xba\x59\xcb\x8a\xbb\x8a\xbc\x8a\xbd\x4e\xa6\x8a\xbe\x8a\xbf\x8a\xc0\x8a\xc1\x8a\xc2\x8a\xc3\x8a\xc4\x8a\xc5\x8a\xc6\x8a\xc7\x8a\xc8\x8a\xc9\x63\xb0\x8a\xca\x59\xf5\x8a\xcb\x8a\xcc\x8a\xcd\x5c\x6b", /* 5a00 */ "\x8a\xce\x57\x9f\x8a\xcf\x57\x7e\x51\xa5\x63\xaa\x63\xab\x4f\x5f\x63\xad\x63\xb2\x8a\xd0\x8a\xd1\x63\xb1\x8a\xd2\x8a\xd3\x8a\xd4\x8a\xd5\x63\xb5\x8a\xd6\x63\xb7\x8a\xd7\x8a\xd8\x8a\xd9\x8a\xda\x52\xee\x8a\xdb\x8a\xdc\x8a\xdd\x52\xc7\x8a\xde\x8a\xdf\x4f\xe9\x55\x90\x8a\xe0\x8a\xe1\x63\xb6\x8a\xe2\x4b\xef\x8a\xe3\x8a\xe4\x8a\xe5\x52\x85\x8a\xe6\x8a\xe7\x8a\xe8\x8a\xe9\x8a\xea\x8a\xeb\x8a\xec\x5a\x8a\x63\xb3\x8a\xed\x63\xb4\x8a\xee\x54\xa1\x8a\xef\x8a\xf0\x8a\xf1\x8a\xf2\x8a\xf3\x63\xbc\x8a\xf4\x8a\xf5\x8a\xf6\x63\xb8\x8a\xf7\x8a\xf8\x8a\xf9\x8a\xfa\x8a\xfb\x53\xc4\x8a\xfc\x8a\xfd\x57\x92\x63\xba\x8b\x41\x8b\x42\x8b\x43\x8b\x44\x8b\x45\x8b\x46\x8b\x47\x8b\x48\x8b\x49\x8b\x4a\x63\xbb\x8b\x4b\x8b\x4c\x8b\x4d\x8b\x4e\x4e\x8a\x8b\x4f\x8b\x50\x8b\x51\x8b\x52\x8b\x53\x8b\x54\x8b\x55\x63\xbd\x8b\x56\x8b\x57\x8b\x58\x8b\x59\x63\xb9\x8b\x5a\x8b\x5b\x50\xb6\x8b\x5c\x8b\x5d\x8b\x5e\x8b\x5f\x8b\x60\x8b\x61\x8b\x62\x8b\x63\x8b\x64\x5a\x44\x63\xbe\x55\x95\x63\xc2\x8b\x65\x8b\x66\x63\xc3\x8b\x67\x8b\x68\x8b\x69\x8b\x6a\x58\xf5", /* 5a80 */ "\x8b\x6b\x8b\x6c\x8b\x6d\x8b\x6e\x8b\x6f\x8b\x70\x8b\x71\x8b\x72\x8b\x73\x8b\x74\x8b\x75\x8b\x76\x8b\x77\x8b\x78\x8b\x79\x8b\x7a\x8b\x7b\x8b\x7c\x52\x5d\x8b\x7d\x8b\x7e\x8b\x7f\x8b\x81\x8b\x82\x8b\x83\x8b\x84\x52\x64\x63\xc1\x8b\x85\x8b\x86\x8b\x87\x8b\x88\x8b\x89\x8b\x8a\x8b\x8b\x8b\x8c\x8b\x8d\x8b\x8e\x8b\x8f\x8b\x90\x8b\x91\x8b\x92\x63\xc0\x8b\x93\x8b\x94\x8b\x95\x8b\x96\x8b\x97\x8b\x98\x8b\x99\x63\xc6\x58\x51\x8b\x9a\x66\x95\x8b\x9b\x8b\x9c\x63\xc9\x8b\x9d\x8b\x9e\x8b\x9f\x8b\xa0\x8b\xa1\x63\xc4\x8b\xa2\x8b\xa3\x4e\xdd\x55\x49\x8b\xa4\x8b\xa5\x8b\xa6\x8b\xa7\x8b\xa8\x8b\xa9\x4e\xb4\x8b\xaa\x8b\xab\x58\x73\x8b\xac\x8b\xad\x8b\xae\x8b\xaf\x8b\xb0\x63\xc7\x8b\xb1\x63\xc8\x8b\xb2\x63\xcd\x8b\xb3\x63\xcf\x8b\xb4\x8b\xb5\x8b\xb6\x63\xd0\x8b\xb7\x8b\xb8\x8b\xb9\x63\xca\x4b\x75\x8b\xba\x63\xcb\x8b\xbb\x8b\xbc\x63\xce\x8b\xbd\x8b\xbe\x52\xda\x8b\xbf\x63\xc5\x8b\xc0\x8b\xc1\x8b\xc2\x8b\xc3\x8b\xc4\x63\xcc\x8b\xc5\x8b\xc6\x8b\xc7\x8b\xc8\x8b\xc9\x8b\xca\x8b\xcb\x8b\xcc\x8b\xcd\x8b\xce\x8b\xcf\x8b\xd0\x8b\xd1\x8b\xd2", /* 5b00 */ "\x8b\xd3\x8b\xd4\x8b\xd5\x8b\xd6\x8b\xd7\x8b\xd8\x8b\xd9\x8b\xda\x8b\xdb\x63\xd1\x8b\xdc\x8b\xdd\x8b\xde\x8b\xdf\x8b\xe0\x8b\xe1\x8b\xe2\x8b\xe3\x8b\xe4\x8b\xe5\x8b\xe6\x8b\xe7\x63\xd3\x63\xd2\x8b\xe8\x8b\xe9\x8b\xea\x8b\xeb\x8b\xec\x8b\xed\x8b\xee\x8b\xef\x8b\xf0\x8b\xf1\x8b\xf2\x8b\xf3\x8b\xf4\x8b\xf5\x8b\xf6\x8b\xf7\x8b\xf8\x8b\xf9\x8b\xfa\x8b\xfb\x8b\xfc\x8b\xfd\x8c\x41\x8c\x42\x8c\x43\x8c\x44\x63\xd4\x8c\x45\x5d\x99\x8c\x46\x8c\x47\x63\xd5\x8c\x48\x8c\x49\x8c\x4a\x8c\x4b\x8c\x4c\x8c\x4d\x8c\x4e\x8c\x4f\x63\xd6\x8c\x50\x8c\x51\x8c\x52\x8c\x53\x8c\x54\x8c\x55\x8c\x56\x8c\x57\x8c\x58\x8c\x59\x8c\x5a\x8c\x5b\x8c\x5c\x8c\x5d\x8c\x5e\x5c\x73\x63\xdc\x8c\x5f\x63\xdd\x50\x77\x5a\xcf\x8c\x60\x5c\x76\x4a\xe5\x56\x90\x63\xd9\x5c\xc2\x5c\x6e\x58\xa1\x8c\x61\x52\x6f\x8c\x62\x8c\x63\x63\xde\x4e\xbd\x4d\x62\x63\xda\x59\x47\x8c\x64\x8c\x65\x4d\xa1\x51\xce\x8c\x66\x5c\xaa\x8c\x67\x8c\x68\x8c\x69\x55\xea\x63\x8f\x8c\x6a\x63\xdb\x8c\x6b\x4c\x96\x8c\x6c\x8c\x6d\x8c\x6e\x8c\x6f\x54\xe5\x8c\x70\x8c\x71\x52\xf4\x8c\x72\x8c\x73", /* 5b80 */ "\x63\x52\x52\xfd\x8c\x74\x56\x9d\x63\x53\x5b\x4c\x8c\x75\x5a\x8f\x55\xd7\x48\xb1\x8c\x76\x56\x6e\x57\x8b\x8c\x77\x8c\x78\x4d\xe9\x8c\x79\x8c\x7a\x8c\x7b\x63\x55\x8c\x7c\x63\x54\x8c\x7d\x5c\x7a\x4d\x79\x5b\xe5\x4b\xa7\x57\x91\x59\xca\x49\x46\x55\xb4\x8c\x7e\x4a\x89\x55\x94\x50\x6d\x58\xfa\x55\xd1\x63\x56\x4e\x62\x8c\x7f\x8c\x81\x8c\x82\x58\x7c\x4d\x4c\x8c\x83\x8c\x84\x8c\x85\x8c\x86\x5a\xd6\x8c\x87\x8c\x88\x4d\xa5\x59\x88\x58\x9d\x4e\xd1\x8c\x89\x63\x57\x54\xdc\x8c\x8a\x8c\x8b\x8c\x8c\x50\x8e\x49\x97\x56\x7e\x8c\x8d\x8c\x8e\x4e\xc4\x8c\x8f\x4e\xc3\x59\xf9\x52\x7c\x50\x7c\x8c\x90\x8c\x91\x8c\x92\x8c\x93\x4c\xba\x8c\x94\x8c\x95\x8c\x96\x52\x62\x8c\x97\x4d\xad\x5a\xa1\x8c\x98\x8c\x99\x8c\x9a\x8c\x9b\x8c\x9c\x8c\x9d\x8c\x9e\x8c\x9f\x8c\xa0\x54\x7e\x52\xae\x49\xeb\x8c\xa1\x4d\x71\x8c\xa2\x8c\xa3\x63\x5b\x51\x68\x8c\xa4\x8c\xa5\x5b\x4f\x8c\xa6\x8c\xa7\x8c\xa8\x8c\xa9\x8c\xaa\x63\x5c\x8c\xab\x63\x5e\x8c\xac\x8c\xad\x8c\xae\x8c\xaf\x8c\xb0\x8c\xb1\x8c\xb2\x4a\xe6\x4b\xd3\x56\x62\x59\x50\x4b\x5c\x8c\xb3\x8c\xb4\x55\xd8", /* 5c00 */ "\x8c\xb5\x4c\x83\x8c\xb6\x8c\xb7\x55\x85\x8c\xb8\x4f\x4b\x8c\xb9\x8c\xba\x57\xbd\x5c\x91\x8c\xbb\x8c\xbc\x8c\xbd\x8c\xbe\x58\xa0\x8c\xbf\x55\x79\x8c\xc0\x8c\xc1\x4b\xfa\x63\xd7\x4e\xe1\x8c\xc2\x4a\x5e\x8c\xc3\x55\x70\x8c\xc4\x63\xd8\x4a\x42\x8c\xc5\x8c\xc6\x8c\xc7\x8c\xc8\x5f\xcb\x8c\xc9\x5a\x68\x5f\xcc\x8c\xca\x59\xa1\x8c\xcb\x8c\xcc\x8c\xcd\x8c\xce\x5f\xcd\x8c\xcf\x8c\xd0\x8c\xd1\x8c\xd2\x4f\xcc\x8c\xd3\x8c\xd4\x5f\xce\x8c\xd5\x8c\xd6\x8c\xd7\x55\xab\x59\xfb\x4a\x7f\x63\x8b\x52\xe0\x4f\xa0\x57\xb1\x52\xf1\x4f\xd5\x53\xa7\x49\xe2\x8c\xd8\x8c\xd9\x4f\xd2\x8c\xda\x8c\xdb\x54\x9d\x56\xea\x4f\x8d\x57\xdc\x8c\xdc\x8c\xdd\x55\xb9\x53\xc0\x63\x8d\x58\xbb\x8c\xde\x8c\xdf\x8c\xe0\x5b\x59\x8c\xe1\x8c\xe2\x8c\xe3\x63\x8e\x8c\xe4\x8c\xe5\x8c\xe6\x8c\xe7\x55\xf3\x8c\xe8\x57\x60\x51\xc4\x8c\xe9\x63\x90\x8c\xea\x51\xc3\x63\x91\x8c\xeb\x8c\xec\x8c\xed\x8c\xee\x8c\xef\x8c\xf0\x8c\xf1\x63\x99\x57\x6d\x8c\xf2\x55\x5d\x8c\xf3\x8c\xf4\x8c\xf5\x8c\xf6\x8c\xf7\x8c\xf8\x8c\xf9\x59\xd8\x61\x48\x8c\xfa\x8c\xfb\x8c\xfc\x8c\xfd\x5a\x8d", /* 5c80 */ "\x8d\x41\x56\x8b\x53\xf0\x8d\x42\x8d\x43\x8d\x44\x8d\x45\x8d\x46\x61\x4c\x8d\x47\x8d\x48\x8d\x49\x61\x47\x61\x49\x8d\x4a\x8d\x4b\x61\x4a\x61\x4f\x8d\x4c\x8d\x4d\x49\xec\x8d\x4e\x61\x4b\x4c\xd9\x61\x4d\x61\x4e\x61\x50\x4b\x5a\x61\x51\x8d\x4f\x8d\x50\x8d\x51\x8d\x52\x8d\x53\x61\x53\x61\x58\x8d\x54\x8d\x55\x8d\x56\x8d\x57\x8d\x58\x59\x72\x8d\x59\x61\x56\x61\x55\x51\x8c\x8d\x5a\x8d\x5b\x8d\x5c\x61\x57\x8d\x5d\x5a\xbf\x8d\x5e\x61\x52\x8d\x5f\x61\x5a\x48\xb5\x8d\x60\x8d\x61\x8d\x62\x8d\x63\x61\x54\x8d\x64\x50\x9a\x8d\x65\x61\x59\x8d\x66\x8d\x67\x61\x5b\x8d\x68\x8d\x69\x8d\x6a\x8d\x6b\x8d\x6c\x8d\x6d\x61\x5e\x8d\x6e\x8d\x6f\x8d\x70\x8d\x71\x8d\x72\x8d\x73\x61\x5c\x8d\x74\x8d\x75\x8d\x76\x8d\x77\x8d\x78\x8d\x79\x5b\xc4\x8d\x7a\x8d\x7b\x8d\x7c\x8d\x7d\x8d\x7e\x8d\x7f\x8d\x81\x58\x5f\x8d\x82\x8d\x83\x61\x5d\x61\x5f\x51\xcc\x8d\x84\x4b\xea\x8d\x85\x5a\x99\x8d\x86\x8d\x87\x54\x6d\x8d\x88\x8d\x89\x4c\x86\x8d\x8a\x8d\x8b\x8d\x8c\x8d\x8d\x8d\x8e\x8d\x8f\x8d\x90\x8d\x91\x8d\x92\x8d\x93\x4f\xfd\x8d\x94\x8d\x95\x8d\x96\x8d\x97", /* 5d00 */ "\x8d\x98\x8d\x99\x61\x60\x61\x61\x8d\x9a\x8d\x9b\x61\x67\x4a\x88\x8d\x9c\x8d\x9d\x8d\x9e\x8d\x9f\x8d\xa0\x8d\xa1\x53\xe8\x8d\xa2\x8d\xa3\x8d\xa4\x8d\xa5\x8d\xa6\x4a\xdd\x8d\xa7\x59\x62\x8d\xa8\x8d\xa9\x8d\xaa\x8d\xab\x61\x68\x8d\xac\x8d\xad\x61\x66\x8d\xae\x8d\xaf\x8d\xb0\x8d\xb1\x8d\xb2\x61\x65\x8d\xb3\x61\x63\x61\x62\x8d\xb4\x49\x60\x8d\xb5\x8d\xb6\x8d\xb7\x5b\x58\x61\x64\x8d\xb8\x8d\xb9\x8d\xba\x8d\xbb\x8d\xbc\x61\x6b\x8d\xbd\x8d\xbe\x8d\xbf\x8d\xc0\x8d\xc1\x8d\xc2\x8d\xc3\x8d\xc4\x61\x6c\x61\x6a\x8d\xc5\x8d\xc6\x8d\xc7\x8d\xc8\x8d\xc9\x8d\xca\x8d\xcb\x8d\xcc\x68\x9b\x8d\xcd\x8d\xce\x61\x73\x61\x72\x54\x56\x8d\xcf\x8d\xd0\x8d\xd1\x8d\xd2\x8d\xd3\x8d\xd4\x8d\xd5\x8d\xd6\x8d\xd7\x8d\xd8\x8d\xd9\x61\x69\x8d\xda\x8d\xdb\x61\x6e\x8d\xdc\x61\x70\x8d\xdd\x8d\xde\x8d\xdf\x8d\xe0\x8d\xe1\x8d\xe2\x8d\xe3\x8d\xe4\x8d\xe5\x8d\xe6\x8d\xe7\x61\x74\x8d\xe8\x61\x71\x61\x6d\x8d\xe9\x8d\xea\x61\x6f\x8d\xeb\x8d\xec\x8d\xed\x8d\xee\x61\x75\x8d\xef\x8d\xf0\x8d\xf1\x8d\xf2\x8d\xf3\x8d\xf4\x8d\xf5\x8d\xf6\x8d\xf7\x8d\xf8\x8d\xf9", /* 5d80 */ "\x8d\xfa\x8d\xfb\x61\x76\x8d\xfc\x8d\xfd\x8e\x41\x8e\x42\x8e\x43\x8e\x44\x8e\x45\x8e\x46\x8e\x47\x8e\x48\x8e\x49\x8e\x4a\x8e\x4b\x8e\x4c\x8e\x4d\x8e\x4e\x8e\x4f\x8e\x50\x8e\x51\x8e\x52\x8e\x53\x8e\x54\x61\x77\x8e\x55\x8e\x56\x8e\x57\x61\x78\x8e\x58\x8e\x59\x8e\x5a\x8e\x5b\x8e\x5c\x8e\x5d\x8e\x5e\x8e\x5f\x8e\x60\x8e\x61\x8e\x62\x8e\x63\x8e\x64\x8e\x65\x8e\x66\x8e\x67\x8e\x68\x8e\x69\x8e\x6a\x8e\x6b\x8e\x6c\x8e\x6d\x8e\x6e\x8e\x6f\x8e\x70\x61\x7a\x8e\x71\x8e\x72\x8e\x73\x8e\x74\x8e\x75\x8e\x76\x8e\x77\x8e\x78\x8e\x79\x8e\x7a\x8e\x7b\x8e\x7c\x8e\x7d\x61\x7b\x8e\x7e\x8e\x7f\x8e\x81\x8e\x82\x8e\x83\x8e\x84\x8e\x85\x57\xa0\x8e\x86\x8e\x87\x8e\x88\x8e\x89\x8e\x8a\x8e\x8b\x8e\x8c\x8e\x8d\x8e\x8e\x8e\x8f\x8e\x90\x8e\x91\x8e\x92\x64\x7d\x8e\x93\x4a\xa7\x5b\xdc\x8e\x94\x8e\x95\x59\x52\x4a\x52\x8e\x96\x8e\x97\x4d\x44\x5c\x94\x54\x69\x4f\xdd\x4d\x4e\x8e\x98\x57\xd6\x8e\x99\x8e\x9a\x49\xed\x5e\x6f\x8e\x9b\x4e\xb9\x59\xd0\x56\x68\x48\xcc\x8e\x9c\x8e\x9d\x58\x90\x8e\x9e\x8e\x9f\x8e\xa0\x8e\xa1\x8e\xa2\x5d\x84\x4f\x8e\x8e\xa3", /* 5e00 */ "\x8e\xa4\x49\x72\x55\xcf\x49\xbb\x8e\xa5\x56\x47\x4c\x4b\x8e\xa6\x55\xa5\x8e\xa7\x8e\xa8\x8e\xa9\x58\x43\x8e\xaa\x8e\xab\x60\xf7\x5b\x6a\x60\xfa\x8e\xac\x8e\xad\x60\xf9\x53\x61\x56\xfa\x8e\xae\x51\x51\x60\xf8\x5b\xe2\x49\xae\x5b\xc3\x4b\x7b\x8e\xaf\x8e\xb0\x8e\xb1\x8e\xb2\x8e\xb3\x8e\xb4\x8e\xb5\x8e\xb6\x4a\xf7\x5b\xa0\x8e\xb7\x8e\xb8\x8e\xb9\x8e\xba\x8e\xbb\x58\x4f\x48\xee\x8e\xbc\x8e\xbd\x60\xfb\x8e\xbe\x8e\xbf\x8e\xc0\x8e\xc1\x8e\xc2\x61\x41\x4a\x43\x8e\xc3\x8e\xc4\x60\xfc\x60\xfd\x52\x51\x8e\xc5\x8e\xc6\x8e\xc7\x8e\xc8\x52\x7d\x8e\xc9\x61\x42\x4c\x9a\x8e\xca\x8e\xcb\x8e\xcc\x8e\xcd\x8e\xce\x8e\xcf\x4e\x6f\x8e\xd0\x8e\xd1\x8e\xd2\x8e\xd3\x8e\xd4\x8e\xd5\x8e\xd6\x61\x43\x52\xba\x8e\xd7\x8e\xd8\x8e\xd9\x8e\xda\x8e\xdb\x61\x44\x8e\xdc\x8e\xdd\x61\x45\x8e\xde\x8e\xdf\x61\x46\x4a\xb0\x8e\xe0\x8e\xe1\x8e\xe2\x8e\xe3\x8e\xe4\x8e\xe5\x8e\xe6\x8e\xe7\x8e\xe8\x8e\xe9\x8e\xea\x8e\xeb\x8e\xec\x8e\xed\x8e\xee\x4c\xc8\x53\xbc\x52\xe9\x8e\xef\x49\xa1\x8e\xf0\x58\xd1\x8e\xf1\x64\x7b\x4e\x63\x5a\x77\x5a\x64\x8e\xf2\x4d\x84", /* 5e80 */ "\x61\xce\x8e\xf3\x8e\xf4\x8e\xf5\x5c\x4f\x8e\xf6\x54\x8d\x49\x73\x8e\xf7\x8e\xf8\x4a\xb1\x61\xd0\x8e\xf9\x8e\xfa\x8e\xfb\x58\xf1\x51\xad\x61\xcf\x8e\xfc\x50\x83\x5a\x46\x4b\x77\x61\xd1\x4b\x8b\x8e\xfd\x52\x8e\x4c\xfc\x8f\x41\x4c\xad\x8f\x42\x53\x73\x4c\x6f\x61\xd3\x8f\x43\x8f\x44\x8f\x45\x8f\x46\x61\xd2\x4b\xc7\x5c\x9a\x8f\x47\x8f\x48\x8f\x49\x8f\x4a\x8f\x4b\x57\x45\x8f\x4c\x8f\x4d\x8f\x4e\x8f\x4f\x8f\x50\x61\xd7\x8f\x51\x61\xd5\x55\xfb\x50\x55\x5a\x59\x61\xd4\x8f\x52\x8f\x53\x8f\x54\x8f\x55\x61\xd6\x8f\x56\x8f\x57\x8f\x58\x8f\x59\x8f\x5a\x8f\x5b\x8f\x5c\x8f\x5d\x8f\x5e\x8f\x5f\x51\x4e\x50\xc7\x8f\x60\x8f\x61\x8f\x62\x8f\x63\x8f\x64\x8f\x65\x61\xda\x61\xd9\x50\xa9\x8f\x66\x8f\x67\x51\x6e\x8f\x68\x8f\x69\x8f\x6a\x8f\x6b\x61\xdb\x8f\x6c\x8f\x6d\x8f\x6e\x8f\x6f\x8f\x70\x8f\x71\x8f\x72\x8f\x73\x8f\x74\x8f\x75\x8f\x76\x8f\x77\x61\xdc\x8f\x78\x61\xdd\x8f\x79\x8f\x7a\x8f\x7b\x8f\x7c\x8f\x7d\x8f\x7e\x8f\x7f\x8f\x81\x8f\x82\x5e\x68\x8f\x83\x59\x73\x57\x42\x8f\x84\x8f\x85\x4f\x48\x8f\x86\x8f\x87\x8f\x88\x5f\xc2\x5c\xa4", /* 5f00 */ "\x50\x4a\x5e\x6d\x59\xeb\x53\xf9\x53\x4a\x8f\x89\x8f\x8a\x8f\x8b\x5f\xc3\x8f\x8c\x49\x77\x60\x4e\x8f\x8d\x8f\x8e\x8f\x8f\x55\xbc\x8f\x90\x60\x51\x8f\x91\x4d\x4d\x8f\x92\x59\xfc\x8f\x93\x4c\xa4\x4d\xea\x8f\x94\x8f\x95\x4a\x7a\x8f\x96\x8f\x97\x8f\x98\x4b\x7c\x5b\x65\x8f\x99\x8f\x9a\x8f\x9b\x8f\x9c\x52\x76\x58\x72\x4e\x41\x8f\x9d\x63\x94\x63\x93\x8f\x9e\x8f\x9f\x63\x95\x8f\xa0\x57\x85\x8f\xa1\x54\xf4\x8f\xa2\x8f\xa3\x8f\xa4\x8f\xa5\x8f\xa6\x8f\xa7\x8f\xa8\x4b\x4f\x54\x5f\x8f\xa9\x63\x97\x8f\xaa\x8f\xab\x8f\xac\x66\xaf\x8f\xad\x8f\xae\x8f\xaf\x8f\xb0\x8f\xb1\x8f\xb2\x8f\xb3\x8f\xb4\x8f\xb5\x8f\xb6\x8f\xb7\x8f\xb8\x8f\xb9\x8f\xba\x8f\xbb\x63\x87\x8f\xbc\x4d\x8a\x4b\x51\x8f\xbd\x51\xbb\x63\x89\x63\x88\x63\x8a\x8f\xbe\x8f\xbf\x8f\xc0\x8f\xc1\x59\xcc\x8f\xc2\x8f\xc3\x8f\xc4\x61\x8b\x58\xcd\x8f\xc5\x57\x4e\x8f\xc6\x59\x86\x8f\xc7\x8f\xc8\x49\xc9\x49\x8c\x8f\xc9\x49\x93\x53\x8e\x8f\xca\x8f\xcb\x5b\x63\x5a\x50\x8f\xcc\x61\x7c\x8f\xcd\x8f\xce\x8f\xcf\x61\x7d\x8f\xd0\x59\xda\x8f\xd1\x4a\x59\x49\x6b\x8f\xd2\x8f\xd3\x8f\xd4", /* 5f80 */ "\x57\x9a\x5b\x98\x61\x7e\x8f\xd5\x4f\xb5\x4a\xfc\x8f\xd6\x61\x7f\x4d\xdb\x61\x81\x4e\x52\x51\xc8\x61\x82\x8f\xd7\x8f\xd8\x8f\xd9\x58\xeb\x8f\xda\x57\x5d\x8f\xdb\x8f\xdc\x61\x83\x8f\xdd\x4b\x63\x53\x67\x61\x84\x8f\xde\x8f\xdf\x61\x85\x8f\xe0\x8f\xe1\x8f\xe2\x8f\xe3\x5a\x9a\x8f\xe4\x8f\xe5\x8f\xe6\x8f\xe7\x8f\xe8\x8f\xe9\x61\x86\x8f\xea\x59\x4d\x8f\xeb\x8f\xec\x61\x87\x57\xa1\x8f\xed\x8f\xee\x8f\xef\x8f\xf0\x8f\xf1\x8f\xf2\x61\x88\x8f\xf3\x4b\x62\x8f\xf4\x8f\xf5\x8f\xf6\x8f\xf7\x61\x89\x4e\x75\x8f\xf8\x8f\xf9\x8f\xfa\x8f\xfb\x8f\xfc\x58\xc3\x61\xdf\x49\x78\x59\xe3\x8f\xfd\x90\x41\x61\xe0\x90\x42\x90\x43\x4e\xc8\x54\xcb\x90\x44\x61\xe2\x66\xfd\x66\xfc\x60\x4f\x90\x45\x90\x46\x90\x47\x61\xe1\x5b\xbd\x57\x9d\x52\x46\x90\x48\x90\x49\x90\x4a\x62\x63\x90\x4b\x90\x4c\x5b\xd1\x61\xe6\x90\x4d\x90\x4e\x61\xe7\x90\x4f\x90\x50\x5a\x67\x90\x51\x90\x52\x61\xeb\x50\x8d\x90\x53\x61\xec\x61\xe4\x90\x54\x90\x55\x4a\x60\x90\x56\x90\x57\x90\x58\x52\xed\x90\x59\x90\x5a\x61\xed\x90\x5b\x90\x5c\x58\xc2\x90\x5d\x4d\xf5\x61\xe8\x4c\x7e", /* 6000 */ "\x4e\x53\x56\xab\x56\x6b\x61\xe3\x61\xe5\x61\xe9\x61\xea\x90\x5e\x90\x5f\x90\x60\x61\xf6\x90\x61\x90\x62\x61\xf3\x5a\xf4\x61\xf2\x90\x63\x90\x64\x53\x4d\x90\x65\x5b\x9b\x53\x62\x49\xbf\x90\x66\x90\x67\x61\xee\x90\x68\x61\xf1\x51\x4f\x56\x5c\x90\x69\x90\x6a\x4b\x41\x61\xf8\x90\x6b\x90\x6c\x90\x6d\x4e\xb0\x61\xf0\x58\xd3\x5a\xb8\x61\xf4\x4d\x76\x61\xf5\x90\x6e\x90\x6f\x90\x70\x54\x73\x90\x71\x90\x72\x90\x73\x90\x74\x90\x75\x61\xef\x90\x76\x90\x77\x90\x78\x90\x79\x90\x7a\x5c\x7c\x67\x41\x90\x7b\x90\x7c\x61\xf7\x90\x7d\x67\x45\x61\xfd\x55\xd0\x90\x7e\x90\x7f\x90\x81\x90\x82\x90\x83\x90\x84\x90\x85\x51\x55\x90\x86\x4e\x70\x90\x87\x90\x88\x50\x76\x90\x89\x4d\xe2\x90\x8a\x90\x8b\x56\x41\x90\x8c\x90\x8d\x90\x8e\x67\x46\x67\x43\x90\x8f\x90\x90\x67\x42\x90\x91\x90\x92\x90\x93\x90\x94\x4e\x76\x67\x47\x58\xf3\x90\x95\x90\x96\x67\x44\x4d\xdd\x4b\xf6\x62\x41\x4b\xb1\x56\xf0\x4d\x47\x90\x97\x58\x42\x54\x41\x90\x98\x90\x99\x50\x72\x90\x9a\x90\x9b\x4b\xf0\x90\x9c\x61\xf9\x61\xfa\x61\xfc\x61\xfb\x52\xd4\x62\x42\x90\x9d\x5a\x61", /* 6080 */ "\x90\x9e\x90\x9f\x90\xa0\x62\x47\x54\x64\x90\xa1\x90\xa2\x90\xa3\x90\xa4\x58\x44\x90\xa5\x90\xa6\x62\x49\x4d\xb6\x90\xa7\x90\xa8\x90\xa9\x90\xaa\x62\x48\x90\xab\x4e\x7a\x90\xac\x62\x43\x90\xad\x90\xae\x90\xaf\x62\x44\x62\x4a\x90\xb0\x62\x46\x90\xb1\x57\xf1\x5a\x66\x90\xb2\x90\xb3\x4e\x5c\x90\xb4\x90\xb5\x5a\xc2\x90\xb6\x52\xf9\x90\xb7\x90\xb8\x67\x48\x58\xfb\x62\x45\x90\xb9\x52\x96\x90\xba\x62\x4d\x49\x4f\x90\xbb\x62\x52\x90\xbc\x90\xbd\x90\xbe\x4e\xc1\x90\xbf\x90\xc0\x62\x4c\x4b\x5f\x90\xc1\x90\xc2\x90\xc3\x90\xc4\x90\xc5\x90\xc6\x90\xc7\x90\xc8\x54\x8a\x62\x50\x90\xc9\x90\xca\x90\xcb\x4f\xa9\x57\x90\x90\xcc\x90\xcd\x90\xce\x90\xcf\x90\xd0\x4e\x94\x90\xd1\x90\xd2\x90\xd3\x56\xe7\x90\xd4\x90\xd5\x62\x4f\x90\xd6\x62\x51\x90\xd7\x58\x47\x62\x4e\x90\xd8\x57\xa8\x4e\x7d\x90\xd9\x90\xda\x90\xdb\x90\xdc\x90\xdd\x4b\x8c\x4f\xe4\x49\xd1\x4a\x6d\x90\xde\x49\x59\x62\x4b\x49\xd0\x4b\x4c\x4d\x7f\x4b\xe7\x90\xdf\x90\xe0\x58\x8c\x62\x57\x90\xe1\x4e\x6c\x90\xe2\x90\xe3\x54\xc6\x58\xc9\x90\xe4\x90\xe5\x90\xe6\x90\xe7\x90\xe8", /* 6100 */ "\x62\x58\x4a\x8f\x90\xe9\x90\xea\x90\xeb\x90\xec\x67\x49\x90\xed\x5a\x9b\x5a\x85\x90\xee\x90\xef\x90\xf0\x67\x4a\x62\x59\x59\xe1\x90\xf1\x90\xf2\x90\xf3\x90\xf4\x90\xf5\x62\x55\x90\xf6\x90\xf7\x90\xf8\x90\xf9\x5a\x7e\x90\xfa\x90\xfb\x90\xfc\x90\xfd\x4c\xcf\x62\x53\x91\x41\x91\x42\x62\x56\x4c\x7f\x91\x43\x62\x54\x50\xa1\x91\x44\x91\x45\x91\x46\x62\x5a\x91\x47\x91\x48\x91\x49\x91\x4a\x91\x4b\x91\x4c\x91\x4d\x91\x4e\x91\x4f\x91\x50\x91\x51\x91\x52\x91\x53\x91\x54\x91\x55\x91\x56\x91\x57\x91\x58\x91\x59\x5a\xb7\x91\x5a\x91\x5b\x91\x5c\x91\x5d\x91\x5e\x91\x5f\x91\x60\x91\x61\x4a\xc7\x91\x62\x62\x5b\x91\x63\x4e\x65\x91\x64\x55\x98\x91\x65\x91\x66\x55\x86\x91\x67\x91\x68\x91\x69\x52\xbc\x91\x6a\x91\x6b\x91\x6c\x91\x6d\x91\x6e\x91\x6f\x91\x70\x67\x4b\x91\x71\x91\x72\x91\x73\x91\x74\x51\xfc\x91\x75\x91\x76\x91\x77\x91\x78\x4e\x7b\x50\x4e\x91\x79\x91\x7a\x91\x7b\x91\x7c\x91\x7d\x91\x7e\x91\x7f\x57\xbe\x91\x81\x91\x82\x91\x83\x91\x84\x62\x5c\x91\x85\x50\x56\x91\x86\x91\x87\x91\x88\x91\x89\x91\x8a\x91\x8b\x91\x8c\x91\x8d", /* 6180 */ "\x91\x8e\x91\x8f\x91\x90\x91\x91\x91\x92\x91\x93\x91\x94\x91\x95\x91\x96\x91\x97\x91\x98\x49\x90\x91\x99\x91\x9a\x5a\xf6\x91\x9b\x91\x9c\x91\x9d\x91\x9e\x91\x9f\x62\x5e\x91\xa0\x91\xa1\x91\xa2\x91\xa3\x91\xa4\x91\xa5\x91\xa6\x91\xa7\x67\x4d\x91\xa8\x91\xa9\x91\xaa\x91\xab\x91\xac\x91\xad\x91\xae\x91\xaf\x91\xb0\x62\x5f\x4d\xa8\x67\x4c\x91\xb1\x91\xb2\x62\x5d\x91\xb3\x91\xb4\x91\xb5\x91\xb6\x91\xb7\x91\xb8\x91\xb9\x91\xba\x91\xbb\x91\xbc\x62\x60\x91\xbd\x91\xbe\x91\xbf\x91\xc0\x91\xc1\x91\xc2\x4d\xb5\x91\xc3\x91\xc4\x91\xc5\x4b\xad\x91\xc6\x91\xc7\x91\xc8\x91\xc9\x91\xca\x58\xb7\x91\xcb\x48\xc2\x67\x4e\x91\xcc\x91\xcd\x91\xce\x91\xcf\x91\xd0\x67\x4f\x50\xc0\x91\xd1\x62\x61\x91\xd2\x91\xd3\x91\xd4\x91\xd5\x91\xd6\x91\xd7\x91\xd8\x91\xd9\x91\xda\x91\xdb\x91\xdc\x91\xdd\x91\xde\x91\xdf\x91\xe0\x91\xe1\x91\xe2\x53\x53\x91\xe3\x91\xe4\x91\xe5\x91\xe6\x91\xe7\x91\xe8\x91\xe9\x91\xea\x91\xeb\x91\xec\x91\xed\x91\xee\x91\xef\x91\xf0\x62\x62\x91\xf1\x91\xf2\x91\xf3\x91\xf4\x91\xf5\x91\xf6\x91\xf7\x91\xf8\x91\xf9\x5e\xb1", /* 6200 */ "\x91\xfa\x91\xfb\x91\xfc\x91\xfd\x92\x41\x92\x42\x67\x50\x92\x43\x4c\xe9\x92\x44\x57\xeb\x65\xa6\x58\xe6\x55\xf8\x54\xd5\x58\x57\x4a\x69\x57\xd1\x4f\x85\x92\x45\x92\x46\x62\x7e\x4e\x93\x65\xa7\x5b\x5d\x92\x47\x53\xdc\x65\xa8\x92\x48\x92\x49\x92\x4a\x65\xa9\x92\x4b\x65\xab\x65\xaa\x92\x4c\x65\xad\x65\xac\x92\x4d\x92\x4e\x92\x4f\x92\x50\x4f\x78\x92\x51\x65\xae\x92\x52\x51\xbd\x92\x53\x92\x54\x92\x55\x92\x56\x4a\xc0\x4a\xf6\x92\x57\x92\x58\x4e\x47\x92\x59\x92\x5a\x92\x5b\x92\x5c\x92\x5d\x66\xe5\x66\xe4\x4c\x5f\x56\x9a\x49\x83\x92\x5e\x66\xe6\x92\x5f\x92\x60\x92\x61\x55\x68\x66\xe7\x66\xe8\x92\x62\x55\xd5\x5f\xcf\x49\xc4\x5a\xf9\x92\x63\x92\x64\x53\xca\x48\xc6\x4a\xf1\x54\xd2\x92\x65\x92\x66\x92\x67\x57\x70\x92\x68\x92\x69\x50\x58\x92\x6a\x92\x6b\x92\x6c\x92\x6d\x92\x6e\x92\x6f\x92\x70\x50\x7b\x92\x71\x92\x72\x54\x44\x5b\xb3\x92\x73\x50\xa8\x5f\xd0\x55\x48\x59\x90\x53\x44\x48\xe6\x4a\x56\x54\xc4\x92\x74\x92\x75\x48\xe1\x92\x76\x92\x77\x4c\x97\x92\x78\x92\x79\x53\x9b\x92\x7a\x92\x7b\x4b\xf2\x92\x7c\x5b\x72\x4a\x70", /* 6280 */ "\x4e\xbb\x92\x7d\x92\x7e\x92\x7f\x4a\x4d\x92\x81\x92\x82\x92\x83\x92\x84\x4f\xf0\x48\xd0\x92\x85\x92\x86\x92\x87\x92\x88\x92\x89\x92\x8a\x59\xd5\x55\xe2\x5c\x45\x92\x8b\x57\x56\x4b\xb5\x50\x59\x5b\x7b\x92\x8c\x4c\xa6\x53\x77\x92\x8d\x92\x8e\x92\x8f\x5f\xd1\x50\x79\x51\xd4\x54\x60\x92\x90\x4e\x44\x49\x48\x92\x91\x92\x92\x53\x8b\x92\x93\x92\x94\x53\x9c\x56\xa6\x92\x95\x92\x96\x92\x97\x92\x98\x49\x47\x92\x99\x92\x9a\x92\x9b\x4b\x76\x92\x9c\x92\x9d\x92\x9e\x52\xa7\x92\x9f\x5f\xd2\x59\x5a\x4a\x8a\x92\xa0\x52\x93\x92\xa1\x92\xa2\x4c\x98\x92\xa3\x5b\xf3\x4b\x43\x49\xef\x52\xb3\x52\xe8\x50\xac\x5f\xd3\x92\xa4\x48\xe7\x53\x64\x51\x81\x92\xa5\x4d\x75\x92\xa6\x4f\xdb\x57\x78\x48\xcd\x92\xa7\x57\x6f\x5f\xd5\x4f\xcf\x5c\x5e\x5f\xd4\x5b\x70\x48\xdc\x92\xa8\x92\xa9\x52\xe1\x92\xaa\x92\xab\x51\xa2\x4e\xef\x92\xac\x5a\x55\x50\xb8\x53\x41\x49\xa5\x5a\xf0\x92\xad\x92\xae\x50\xa7\x55\xc2\x5f\xd6\x5b\x9d\x92\xaf\x4d\x50\x92\xb0\x54\xac\x56\x49\x92\xb1\x5f\xd8\x50\x5d\x92\xb2\x92\xb3\x92\xb4\x92\xb5\x53\xb3\x5c\x47\x55\xaf\x52\xc2", /* 6300 */ "\x92\xb6\x4a\x76\x4d\x72\x92\xb7\x92\xb8\x92\xb9\x92\xba\x5b\xb7\x65\xfb\x48\xb3\x92\xbb\x92\xbc\x92\xbd\x92\xbe\x50\x87\x92\xbf\x92\xc0\x56\xf3\x92\xc1\x92\xc2\x92\xc3\x92\xc4\x57\x7a\x92\xc5\x92\xc6\x92\xc7\x5b\xbe\x51\xcd\x92\xc8\x57\xcd\x56\xa1\x58\xad\x52\xd2\x4b\x52\x5f\xd7\x5b\x96\x4e\xb6\x4e\x73\x92\xc9\x92\xca\x48\xa3\x92\xcb\x53\x52\x4a\xeb\x92\xcc\x92\xcd\x92\xce\x5b\x92\x92\xcf\x92\xd0\x65\xfc\x92\xd1\x92\xd2\x92\xd3\x92\xd4\x92\xd5\x92\xd6\x5f\xd9\x57\x46\x92\xd7\x92\xd8\x57\x8d\x92\xd9\x92\xda\x92\xdb\x92\xdc\x57\xe5\x5f\xdb\x92\xdd\x57\x51\x50\xa5\x92\xde\x92\xdf\x5c\x5d\x92\xe0\x5f\xda\x48\xc5\x4d\xb3\x55\x73\x52\xf2\x4f\xe7\x92\xe1\x92\xe2\x92\xe3\x92\xe4\x49\xb5\x92\xe5\x92\xe6\x92\xe7\x92\xe8\x92\xe9\x92\xea\x92\xeb\x92\xec\x50\xcb\x56\x91\x92\xed\x4e\xf0\x4e\x5b\x4b\x57\x92\xee\x92\xef\x92\xf0\x53\x96\x92\xf1\x5f\xe5\x92\xf2\x92\xf3\x92\xf4\x5f\xe2\x4f\xdc\x92\xf5\x92\xf6\x5f\xde\x92\xf7\x92\xf8\x92\xf9\x92\xfa\x4a\xb6\x4f\x7d\x92\xfb\x92\xfc\x5f\xdf\x52\xec\x92\xfd\x93\x41\x93\x42\x93\x43", /* 6380 */ "\x58\x66\x93\x44\x4b\x81\x93\x45\x93\x46\x93\x47\x93\x48\x4b\xdd\x55\xd9\x4b\x95\x5f\xe4\x93\x49\x5b\x66\x93\x4a\x5f\xe0\x56\xcc\x53\xfd\x93\x4b\x53\x65\x93\x4c\x93\x4d\x93\x4e\x59\xb3\x93\x4f\x4f\xf1\x93\x50\x93\x51\x93\x52\x93\x53\x93\x54\x93\x55\x93\x56\x51\xd2\x93\x57\x56\xbc\x4a\x58\x93\x58\x4f\x73\x93\x59\x50\x78\x57\x66\x59\x7a\x4a\xea\x93\x5a\x5f\xe3\x5f\xdc\x5f\xe6\x93\x5b\x65\xfd\x93\x5c\x93\x5d\x51\xaf\x5f\xe1\x93\x5e\x93\x5f\x5b\xbf\x4b\x47\x93\x60\x49\xf3\x93\x61\x5f\xe7\x93\x62\x5f\xf1\x93\x63\x93\x64\x93\x65\x93\x66\x93\x67\x5f\xec\x93\x68\x5f\xf0\x93\x69\x93\x6a\x54\xdf\x93\x6b\x93\x6c\x93\x6d\x5c\x82\x5f\xee\x52\x89\x56\xe0\x93\x6e\x49\xe4\x93\x6f\x93\x70\x93\x71\x59\xbd\x93\x72\x93\x73\x93\x74\x93\x75\x93\x76\x93\x77\x93\x78\x5f\xed\x93\x79\x5f\xea\x57\xd4\x93\x7a\x4a\xa6\x93\x7b\x93\x7c\x93\x7d\x93\x7e\x93\x7f\x50\x4b\x4f\xbd\x93\x81\x93\x82\x4f\x72\x93\x83\x93\x84\x93\x85\x93\x86\x5f\xe8\x93\x87\x5a\xad\x93\x88\x5f\xdd\x93\x89\x5f\xe9\x93\x8a\x93\x8b\x93\x8c\x93\x8d\x50\xbe\x93\x8e\x5f\xeb", /* 6400 */ "\x49\xf2\x4c\xe8\x51\xa6\x93\x8f\x93\x90\x4f\x61\x93\x91\x93\x92\x93\x93\x93\x94\x93\x95\x5f\xf4\x5f\xf7\x93\x96\x93\x97\x49\xaa\x4a\xa3\x93\x98\x93\x99\x4a\xe9\x55\x46\x93\x9a\x93\x9b\x93\x9c\x93\x9d\x93\x9e\x93\x9f\x5f\xf5\x56\x71\x93\xa0\x4c\xe2\x93\xa1\x5f\xf6\x5f\xf9\x93\xa2\x93\xa3\x93\xa4\x93\xa5\x5f\xf8\x93\xa6\x93\xa7\x93\xa8\x56\xc1\x93\xa9\x48\xe0\x4a\xed\x93\xaa\x93\xab\x93\xac\x93\xad\x93\xae\x93\xaf\x63\x5a\x93\xb0\x93\xb1\x93\xb2\x93\xb3\x93\xb4\x58\xae\x93\xb5\x93\xb6\x49\xea\x93\xb7\x66\x41\x93\xb8\x5f\xf3\x93\xb9\x93\xba\x55\x84\x5f\xf2\x48\xd9\x59\xa0\x49\x98\x93\xbb\x56\xae\x93\xbc\x93\xbd\x93\xbe\x93\xbf\x93\xc0\x93\xc1\x93\xc2\x5f\xef\x93\xc3\x56\x44\x93\xc4\x93\xc5\x93\xc6\x5b\x4a\x93\xc7\x93\xc8\x93\xc9\x93\xca\x93\xcb\x5f\xfa\x93\xcc\x93\xcd\x93\xce\x93\xcf\x93\xd0\x93\xd1\x93\xd2\x93\xd3\x4a\xdc\x93\xd4\x52\xa5\x93\xd5\x93\xd6\x93\xd7\x5f\xfc\x93\xd8\x93\xd9\x93\xda\x93\xdb\x93\xdc\x93\xdd\x93\xde\x93\xdf\x93\xe0\x93\xe1\x52\x9f\x52\xa0\x60\x41\x93\xe2\x93\xe3\x93\xe4\x93\xe5\x93\xe6", /* 6480 */ "\x93\xe7\x93\xe8\x51\x6c\x93\xe9\x5f\xfb\x4f\xee\x93\xea\x53\xb1\x93\xeb\x93\xec\x93\xed\x93\xee\x93\xef\x93\xf0\x93\xf1\x93\xf2\x93\xf3\x4a\x65\x54\xf5\x93\xf4\x93\xf5\x56\x5a\x5f\xfd\x93\xf6\x93\xf7\x60\x44\x93\xf8\x93\xf9\x93\xfa\x93\xfb\x5c\x52\x93\xfc\x93\xfd\x94\x41\x94\x42\x94\x43\x4a\x57\x94\x44\x94\x45\x94\x46\x94\x47\x51\x63\x94\x48\x94\x49\x54\x6b\x49\xa4\x4a\xe8\x94\x4a\x5c\x4b\x94\x4b\x94\x4c\x94\x4d\x94\x4e\x52\xeb\x94\x4f\x60\x42\x60\x43\x94\x50\x60\x45\x94\x51\x4d\xb2\x94\x52\x94\x53\x94\x54\x60\x46\x94\x55\x50\xdd\x94\x56\x94\x57\x55\x63\x94\x58\x94\x59\x94\x5a\x94\x5b\x94\x5c\x94\x5d\x94\x5e\x49\xd8\x54\x87\x94\x5f\x60\x47\x94\x60\x54\x7c\x94\x61\x94\x62\x94\x63\x94\x64\x60\x48\x66\x42\x94\x65\x94\x66\x94\x67\x94\x68\x94\x69\x56\x73\x94\x6a\x94\x6b\x94\x6c\x60\x4a\x94\x6d\x60\x49\x94\x6e\x49\xc0\x94\x6f\x94\x70\x94\x71\x94\x72\x94\x73\x94\x74\x94\x75\x94\x76\x94\x77\x94\x78\x94\x79\x94\x7a\x94\x7b\x94\x7c\x94\x7d\x94\x7e\x94\x7f\x94\x81\x94\x82\x94\x83\x94\x84\x94\x85\x94\x86\x94\x87\x94\x88", /* 6500 */ "\x53\x6a\x94\x89\x94\x8a\x94\x8b\x94\x8c\x94\x8d\x94\x8e\x94\x8f\x94\x90\x60\x4b\x94\x91\x94\x92\x94\x93\x94\x94\x94\x95\x94\x96\x94\x97\x94\x98\x5a\xdb\x94\x99\x94\x9a\x94\x9b\x94\x9c\x94\x9d\x54\xc0\x94\x9e\x94\x9f\x94\xa0\x94\xa1\x94\xa2\x94\xa3\x94\xa4\x94\xa5\x94\xa6\x94\xa7\x94\xa8\x94\xa9\x60\x4c\x94\xaa\x94\xab\x94\xac\x94\xad\x94\xae\x4f\xef\x94\xaf\x94\xb0\x60\x4d\x5b\xa6\x94\xb1\x94\xb2\x94\xb3\x94\xb4\x65\xb6\x66\x56\x55\xd4\x94\xb5\x5c\xfb\x4c\xc3\x94\xb6\x4d\x45\x94\xb7\x94\xb8\x4c\x65\x5b\x9f\x94\xb9\x94\xba\x94\xbb\x94\xbc\x94\xbd\x4d\x6a\x94\xbe\x94\xbf\x58\xa6\x6a\xcc\x94\xc0\x94\xc1\x4b\x70\x94\xc2\x94\xc3\x52\x95\x94\xc4\x4f\xc7\x94\xc5\x94\xc6\x94\xc7\x66\x57\x48\xbc\x94\xc8\x94\xc9\x4f\x6c\x94\xca\x51\x52\x94\xcb\x49\x76\x4a\x48\x94\xcc\x94\xcd\x94\xce\x4c\xd1\x55\x42\x94\xcf\x94\xd0\x4b\xd7\x94\xd1\x94\xd2\x94\xd3\x94\xd4\x66\x58\x4f\xb3\x94\xd5\x94\xd6\x94\xd7\x55\xfc\x94\xd8\x54\x63\x94\xd9\x5b\x9c\x94\xda\x94\xdb\x4c\x94\x94\xdc\x94\xdd\x94\xde\x94\xdf\x94\xe0\x94\xe1\x94\xe2\x94\xe3", /* 6580 */ "\x94\xe4\x94\xe5\x94\xe6\x94\xe7\x94\xe8\x94\xe9\x94\xea\x57\xc3\x94\xeb\x94\xec\x94\xed\x5b\x4b\x49\x94\x94\xee\x94\xef\x94\xf0\x66\xb2\x48\xde\x94\xf1\x66\xb4\x94\xf2\x94\xf3\x94\xf4\x4b\xb6\x94\xf5\x51\x6f\x94\xf6\x6b\x9b\x58\xb0\x94\xf7\x94\xf8\x5b\x86\x94\xf9\x57\xd2\x94\xfa\x94\xfb\x4f\x90\x4a\x83\x94\xfc\x4c\xaa\x94\xfd\x5b\x56\x95\x41\x67\x5d\x95\x42\x4b\xce\x95\x43\x56\x59\x58\xc1\x95\x44\x95\x45\x95\x46\x95\x47\x95\x48\x95\x49\x95\x4a\x95\x4b\x4c\x5d\x95\x4c\x95\x4d\x66\xb5\x55\xa8\x95\x4e\x95\x4f\x95\x50\x53\x74\x95\x51\x66\xb8\x66\xb7\x51\xc2\x66\xb6\x95\x52\x95\x53\x95\x54\x95\x55\x58\xfc\x66\xb9\x95\x56\x66\xba\x5c\x86\x95\x57\x95\x58\x66\xbb\x95\x59\x95\x5a\x95\x5b\x66\xbc\x53\xeb\x95\x5c\x95\x5d\x95\x5e\x95\x5f\x95\x60\x95\x61\x95\x62\x95\x63\x57\xdd\x95\x64\x4e\xc7\x95\x65\x95\x66\x54\xd4\x4b\x49\x4f\xc8\x5b\xbb\x5a\xe6\x95\x67\x95\x68\x59\x4e\x58\xf0\x65\xb7\x65\xb8\x65\xb9\x4d\xb4\x95\x69\x95\x6a\x95\x6b\x95\x6c\x55\xb0\x50\x96\x95\x6d\x95\x6e\x57\x9b\x95\x6f\x95\x70\x95\x71\x95\x72\x95\x73", /* 6600 */ "\x65\xbf\x95\x74\x48\xb9\x65\xbd\x95\x75\x95\x76\x50\xa4\x95\x77\x95\x78\x95\x79\x65\xba\x95\x7a\x49\xfc\x95\x7b\x52\x98\x4e\x89\x95\x7c\x95\x7d\x95\x7e\x59\xd6\x57\xf3\x65\xbe\x95\x7f\x95\x81\x95\x82\x65\xbb\x95\x83\x95\x84\x95\x85\x65\xc2\x95\x86\x58\xc6\x5a\x53\x95\x87\x95\x88\x95\x89\x95\x8a\x4a\xb9\x95\x8b\x52\x61\x5c\x93\x95\x8c\x95\x8d\x95\x8e\x95\x8f\x5b\x71\x95\x90\x55\xc6\x95\x91\x65\xc4\x95\x92\x95\x93\x65\xc3\x65\xc6\x65\xc5\x95\x94\x95\x95\x95\x96\x95\x97\x95\x98\x5b\xe6\x95\x99\x58\x74\x95\x9a\x95\x9b\x65\xca\x95\x9c\x4e\x6e\x95\x9d\x95\x9e\x95\x9f\x95\xa0\x95\xa1\x95\xa2\x95\xa3\x4f\x9b\x55\x6e\x95\xa4\x95\xa5\x65\xcb\x95\xa6\x95\xa7\x55\x59\x58\x9f\x65\xc9\x5a\xcd\x65\xcc\x65\xce\x95\xa8\x95\xa9\x57\x8e\x95\xaa\x95\xab\x95\xac\x95\xad\x65\xc8\x95\xae\x65\xcd\x95\xaf\x95\xb0\x57\xed\x95\xb1\x4e\x7e\x95\xb2\x4a\x5f\x95\xb3\x95\xb4\x95\xb5\x95\xb6\x95\xb7\x53\xd4\x4f\xaf\x57\xf9\x95\xb8\x95\xb9\x95\xba\x54\x88\x95\xbb\x4f\xa6\x65\xcf\x95\xbc\x95\xbd\x5b\xc6\x95\xbe\x95\xbf\x95\xc0\x51\x60\x95\xc1", /* 6680 */ "\x95\xc2\x95\xc3\x5a\xdc\x95\xc4\x65\xd0\x95\xc5\x95\xc6\x58\x5e\x95\xc7\x95\xc8\x95\xc9\x95\xca\x65\xd1\x95\xcb\x95\xcc\x95\xcd\x95\xce\x55\xed\x95\xcf\x95\xd0\x95\xd1\x95\xd2\x53\x4f\x48\xb4\x95\xd3\x95\xd4\x95\xd5\x95\xd6\x95\xd7\x65\xd3\x95\xd8\x95\xd9\x95\xda\x95\xdb\x95\xdc\x95\xdd\x95\xde\x95\xdf\x95\xe0\x65\xd2\x6a\xde\x95\xe1\x95\xe2\x95\xe3\x95\xe4\x95\xe5\x52\xb9\x95\xe6\x95\xe7\x95\xe8\x95\xe9\x95\xea\x49\x49\x95\xeb\x95\xec\x95\xed\x95\xee\x63\x7f\x95\xef\x95\xf0\x95\xf1\x95\xf2\x65\xd4\x95\xf3\x95\xf4\x95\xf5\x95\xf6\x95\xf7\x95\xf8\x95\xf9\x95\xfa\x95\xfb\x95\xfc\x95\xfd\x96\x41\x96\x42\x96\x43\x96\x44\x96\x45\x96\x46\x96\x47\x96\x48\x96\x49\x96\x4a\x96\x4b\x96\x4c\x96\x4d\x96\x4e\x96\x4f\x55\xee\x96\x50\x65\xd5\x65\xd6\x53\xd7\x96\x51\x96\x52\x96\x53\x96\x54\x96\x55\x96\x56\x96\x57\x96\x58\x65\xd7\x96\x59\x96\x5a\x65\xd8\x96\x5b\x96\x5c\x96\x5d\x96\x5e\x96\x5f\x96\x60\x5a\xba\x96\x61\x54\x9b\x59\xb6\x4c\xfb\x96\x62\x96\x63\x65\xc1\x96\x64\x49\xdb\x96\x65\x96\x66\x51\xfb\x96\x67\x5a\xf7\x56\xe5", /* 6700 */ "\x5c\x8f\x96\x68\x96\x69\x96\x6a\x96\x6b\x96\x6c\x96\x6d\x96\x6e\x5a\xc1\x5a\x70\x66\x63\x53\x94\x96\x6f\x4c\x9f\x96\x70\x96\x71\x66\x74\x96\x72\x96\x73\x96\x74\x56\x57\x66\x7e\x96\x75\x50\xc9\x96\x76\x96\x77\x96\x78\x57\x9c\x96\x79\x4a\x4f\x96\x7a\x53\xd9\x96\x7b\x96\x7c\x96\x7d\x96\x7e\x96\x7f\x96\x81\x66\x9d\x96\x82\x52\xbd\x96\x83\x57\xb3\x52\xa8\x49\x5e\x5a\xfc\x96\x84\x55\xf4\x96\x85\x5b\xeb\x96\x86\x96\x87\x53\xd2\x4b\xe3\x96\x88\x96\x89\x96\x8a\x96\x8b\x4e\x9b\x96\x8c\x96\x8d\x58\xdf\x96\x8e\x96\x8f\x55\x51\x96\x90\x5a\xd2\x54\xa7\x96\x91\x96\x92\x4c\xca\x96\x93\x64\xbd\x55\x5c\x96\x94\x96\x95\x64\xba\x96\x96\x50\xed\x58\xd2\x49\xc3\x4a\xe4\x96\x97\x64\xbb\x96\x98\x96\x99\x5b\x68\x96\x9a\x96\x9b\x96\x9c\x96\x9d\x96\x9e\x4b\xc4\x96\x9f\x64\xbc\x55\xf7\x4c\xdb\x56\xf4\x96\xa0\x96\xa1\x96\xa2\x50\xb3\x96\xa3\x96\xa4\x59\x8f\x64\xbe\x64\xc1\x96\xa5\x96\xa6\x4d\xbb\x96\xa7\x49\x4d\x4f\x7c\x96\xa8\x65\xbc\x64\xc2\x96\xa9\x64\xc5\x96\xaa\x64\xca\x96\xab\x96\xac\x96\xad\x96\xae\x64\xcb\x96\xaf\x56\x69\x48\xe4", /* 6780 */ "\x96\xb0\x4e\xaa\x96\xb1\x96\xb2\x4d\x59\x96\xb3\x96\xb4\x64\xc0\x96\xb5\x57\x98\x96\xb6\x64\xc9\x96\xb7\x96\xb8\x96\xb9\x96\xba\x57\xf5\x96\xbb\x96\xbc\x96\xbd\x96\xbe\x5b\x8e\x96\xbf\x51\x76\x64\xc3\x96\xc0\x52\x56\x96\xc1\x4d\x9c\x5b\xa5\x64\xc7\x96\xc2\x96\xc3\x96\xc4\x55\xdf\x5a\xe5\x96\xc5\x64\xbf\x96\xc6\x64\xc4\x64\xc6\x96\xc7\x54\x59\x4c\x84\x96\xc8\x64\xc8\x96\xc9\x50\x7d\x64\xd1\x96\xca\x96\xcb\x64\xd6\x96\xcc\x64\xd4\x4e\xdb\x4e\xce\x64\xda\x96\xcd\x96\xce\x96\xcf\x96\xd0\x96\xd1\x96\xd2\x96\xd3\x96\xd4\x64\xdd\x96\xd5\x64\xd9\x49\x9b\x96\xd6\x96\xd7\x96\xd8\x96\xd9\x96\xda\x96\xdb\x96\xdc\x96\xdd\x96\xde\x96\xdf\x48\xd7\x52\xb2\x4c\xcb\x53\xe1\x54\xbd\x54\xe0\x96\xe0\x96\xe1\x96\xe2\x64\xce\x64\xd3\x64\xd5\x96\xe3\x4d\x92\x64\xd7\x5c\x96\x96\xe4\x52\xfa\x96\xe5\x64\xdb\x96\xe6\x96\xe7\x49\xe8\x96\xe8\x96\xe9\x96\xea\x64\xd0\x96\xeb\x96\xec\x4e\xec\x96\xed\x96\xee\x50\x62\x64\xcc\x5b\xf8\x96\xef\x51\x99\x49\xf0\x96\xf0\x96\xf1\x96\xf2\x96\xf3\x96\xf4\x96\xf5\x96\xf6\x96\xf7\x64\xde\x96\xf8\x55\xc0", /* 6800 */ "\x64\xd8\x96\xf9\x96\xfa\x96\xfb\x96\xfc\x5b\x44\x96\xfd\x49\x8b\x5b\x5b\x64\xcd\x64\xcf\x4b\xaf\x64\xd2\x97\x41\x64\xdc\x50\xb7\x97\x42\x55\xf6\x97\x43\x56\x48\x97\x44\x97\x45\x53\xdb\x50\xf4\x97\x46\x97\x47\x97\x48\x97\x49\x97\x4a\x64\xe8\x97\x4b\x97\x4c\x97\x4d\x58\xa2\x97\x4e\x97\x4f\x97\x50\x97\x51\x97\x52\x97\x53\x97\x54\x64\xf1\x5b\xe9\x97\x55\x97\x56\x97\x57\x97\x58\x97\x59\x97\x5a\x97\x5b\x64\xdf\x64\xe0\x97\x5c\x97\x5d\x97\x5e\x59\x9a\x4d\xca\x4c\xf8\x97\x5f\x97\x60\x4c\xf0\x5a\xd3\x64\xee\x97\x61\x64\xed\x64\xeb\x4d\x91\x56\xd1\x64\xe5\x57\xa5\x50\x93\x97\x62\x48\xb7\x64\xf0\x64\xef\x97\x63\x5c\x60\x97\x64\x64\xe3\x97\x65\x57\x49\x55\x43\x97\x66\x4e\x58\x4f\x7b\x64\xe9\x97\x67\x97\x68\x97\x69\x97\x6a\x97\x6b\x97\x6c\x97\x6d\x97\x6e\x97\x6f\x97\x70\x64\xe1\x64\xe2\x64\xe4\x4b\x55\x64\xe6\x54\x65\x64\xea\x64\xec\x4f\x50\x5c\x4e\x97\x71\x64\xf7\x97\x72\x97\x73\x97\x74\x97\x75\x97\x76\x97\x77\x97\x78\x97\x79\x64\xf4\x97\x7a\x57\x50\x64\xf5\x97\x7b\x97\x7c\x97\x7d\x97\x7e\x97\x7f\x97\x81\x97\x82\x97\x83", /* 6880 */ "\x97\x84\x51\x5a\x97\x85\x64\xe7\x97\x86\x52\x57\x48\xef\x97\x87\x97\x88\x97\x89\x97\x8a\x97\x8b\x97\x8c\x97\x8d\x97\x8e\x64\xf3\x97\x8f\x97\x90\x97\x91\x64\xf6\x97\x92\x97\x93\x97\x94\x4d\x43\x97\x95\x97\x96\x97\x97\x97\x98\x97\x99\x97\x9a\x97\x9b\x97\x9c\x97\x9d\x97\x9e\x55\x72\x97\x9f\x97\xa0\x97\xa1\x52\x6e\x57\xdf\x50\xe5\x97\xa2\x97\xa3\x97\xa4\x97\xa5\x56\x94\x97\xa6\x56\xdc\x58\xb4\x97\xa7\x97\xa8\x55\xe0\x97\xa9\x64\xf2\x97\xaa\x97\xab\x97\xac\x97\xad\x97\xae\x97\xaf\x97\xb0\x97\xb1\x97\xb2\x97\xb3\x4e\xeb\x97\xb4\x64\xf8\x97\xb5\x97\xb6\x97\xb7\x97\xb8\x97\xb9\x97\xba\x52\x7e\x97\xbb\x53\xe4\x97\xbc\x4d\x98\x97\xbd\x97\xbe\x97\xbf\x97\xc0\x48\xf3\x97\xc1\x97\xc2\x5c\x78\x97\xc3\x97\xc4\x4e\xab\x97\xc5\x53\x90\x97\xc6\x97\xc7\x97\xc8\x97\xc9\x97\xca\x56\xc3\x97\xcb\x97\xcc\x65\x46\x97\xcd\x97\xce\x97\xcf\x97\xd0\x97\xd1\x97\xd2\x97\xd3\x97\xd4\x97\xd5\x97\xd6\x55\x4d\x97\xd7\x65\x42\x50\xe1\x97\xd8\x97\xd9\x97\xda\x50\x63\x97\xdb\x97\xdc\x97\xdd\x64\xfd\x4d\x77\x97\xde\x64\xfa\x97\xdf\x97\xe0\x97\xe1", /* 6900 */ "\x97\xe2\x65\x44\x97\xe3\x97\xe4\x97\xe5\x59\xcd\x97\xe6\x97\xe7\x97\xe8\x97\xe9\x97\xea\x65\x43\x97\xeb\x5b\xb1\x5c\x55\x97\xec\x65\x47\x97\xed\x4f\x57\x97\xee\x97\xef\x97\xf0\x97\xf1\x97\xf2\x97\xf3\x97\xf4\x97\xf5\x97\xf6\x97\xf7\x97\xf8\x97\xf9\x64\xfb\x64\xfc\x97\xfa\x97\xfb\x97\xfc\x65\x41\x97\xfd\x98\x41\x98\x42\x98\x43\x98\x44\x98\x45\x98\x46\x98\x47\x57\x76\x98\x48\x98\x49\x59\xab\x98\x4a\x98\x4b\x98\x4c\x65\x52\x98\x4d\x98\x4e\x98\x4f\x98\x50\x65\x49\x98\x51\x98\x52\x98\x53\x4a\xa9\x98\x54\x4a\xba\x98\x55\x98\x56\x65\x4b\x98\x57\x98\x58\x98\x59\x98\x5a\x98\x5b\x98\x5c\x98\x5d\x98\x5e\x98\x5f\x98\x60\x98\x61\x98\x62\x98\x63\x98\x64\x98\x65\x98\x66\x98\x67\x58\xa7\x98\x68\x98\x69\x65\x45\x98\x6a\x98\x6b\x4a\x9f\x98\x6c\x98\x6d\x65\x4c\x50\xe2\x98\x6e\x65\x4a\x98\x6f\x98\x70\x65\x59\x98\x71\x98\x72\x65\x58\x98\x73\x98\x74\x98\x75\x98\x76\x65\x4e\x98\x77\x98\x78\x64\xf9\x98\x79\x98\x7a\x65\x48\x98\x7b\x98\x7c\x98\x7d\x98\x7e\x98\x7f\x50\x4c\x65\x51\x65\x5a\x98\x81\x98\x82\x51\xa4\x98\x83\x98\x84\x98\x85", /* 6980 */ "\x65\x4f\x98\x86\x4c\xc4\x98\x87\x65\x4d\x98\x88\x5a\x7c\x65\x54\x65\x55\x65\x57\x98\x89\x98\x8a\x98\x8b\x65\x67\x98\x8c\x98\x8d\x98\x8e\x98\x8f\x98\x90\x98\x91\x50\xc5\x65\x65\x98\x92\x98\x93\x65\x50\x98\x94\x98\x95\x65\x5b\x48\xf0\x98\x96\x98\x97\x98\x98\x98\x99\x98\x9a\x98\x9b\x98\x9c\x98\x9d\x98\x9e\x98\x9f\x65\x5c\x5b\x45\x98\xa0\x98\xa1\x65\x5e\x98\xa2\x65\x5f\x98\xa3\x98\xa4\x98\xa5\x65\x61\x98\xa6\x98\xa7\x51\x92\x98\xa8\x98\xa9\x54\xb5\x98\xaa\x98\xab\x98\xac\x65\x5d\x98\xad\x98\xae\x98\xaf\x98\xb0\x98\xb1\x65\x62\x98\xb2\x98\xb3\x98\xb4\x98\xb5\x98\xb6\x98\xb7\x98\xb8\x98\xb9\x65\x63\x98\xba\x65\x53\x98\xbb\x65\x56\x98\xbc\x4e\x51\x98\xbd\x98\xbe\x98\xbf\x65\x60\x98\xc0\x98\xc1\x98\xc2\x98\xc3\x98\xc4\x98\xc5\x4e\xf6\x98\xc6\x98\xc7\x98\xc8\x65\x64\x65\x66\x98\xc9\x98\xca\x98\xcb\x98\xcc\x98\xcd\x98\xce\x98\xcf\x98\xd0\x98\xd1\x98\xd2\x98\xd3\x98\xd4\x65\x6a\x98\xd5\x98\xd6\x98\xd7\x98\xd8\x65\x6e\x98\xd9\x98\xda\x98\xdb\x98\xdc\x98\xdd\x98\xde\x98\xdf\x98\xe0\x98\xe1\x98\xe2\x49\xda\x98\xe3\x65\x68", /* 6a00 */ "\x98\xe4\x98\xe5\x98\xe6\x98\xe7\x98\xe8\x98\xe9\x98\xea\x98\xeb\x98\xec\x98\xed\x4c\x4e\x98\xee\x98\xef\x98\xf0\x98\xf1\x98\xf2\x98\xf3\x98\xf4\x98\xf5\x98\xf6\x98\xf7\x98\xf8\x98\xf9\x65\x6b\x65\x6c\x98\xfa\x98\xfb\x98\xfc\x98\xfd\x99\x41\x99\x42\x5b\x61\x99\x43\x52\xa2\x99\x44\x99\x45\x99\x46\x99\x47\x99\x48\x99\x49\x65\x78\x99\x4a\x4d\xe0\x99\x4b\x99\x4c\x99\x4d\x99\x4e\x65\x69\x99\x4f\x5a\x43\x99\x50\x99\x51\x99\x52\x65\x74\x99\x53\x99\x54\x99\x55\x99\x56\x99\x57\x99\x58\x99\x59\x65\x77\x65\x70\x99\x5a\x99\x5b\x99\x5c\x99\x5d\x99\x5e\x65\x6f\x99\x5f\x99\x60\x54\x61\x99\x61\x99\x62\x99\x63\x99\x64\x99\x65\x99\x66\x99\x67\x99\x68\x65\x72\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x6d\x99\x6e\x99\x6f\x65\x79\x4a\x68\x99\x70\x65\x73\x99\x71\x99\x72\x99\x73\x99\x74\x99\x75\x58\x91\x99\x76\x99\x77\x99\x78\x65\x6d\x99\x79\x99\x7a\x99\x7b\x99\x7c\x99\x7d\x99\x7e\x99\x7f\x99\x81\x99\x82\x99\x83\x99\x84\x4a\x98\x99\x85\x99\x86\x99\x87\x99\x88\x99\x89\x99\x8a\x99\x8b\x65\x76\x99\x8c\x99\x8d\x65\x7a\x99\x8e\x99\x8f\x99\x90", /* 6a80 */ "\x56\xb3\x99\x91\x99\x92\x99\x93\x58\x4d\x99\x94\x99\x95\x99\x96\x99\x97\x99\x98\x99\x99\x99\x9a\x99\x9b\x99\x9c\x65\x75\x99\x9d\x65\x7c\x65\x7b\x99\x9e\x99\x9f\x99\xa0\x99\xa1\x99\xa2\x65\x7e\x99\xa3\x99\xa4\x99\xa5\x99\xa6\x99\xa7\x99\xa8\x99\xa9\x99\xaa\x65\x71\x99\xab\x99\xac\x99\xad\x99\xae\x99\xaf\x99\xb0\x99\xb1\x99\xb2\x65\x7d\x99\xb3\x65\x7f\x52\x6a\x99\xb4\x99\xb5\x99\xb6\x99\xb7\x99\xb8\x99\xb9\x99\xba\x99\xbb\x99\xbc\x99\xbd\x99\xbe\x99\xbf\x99\xc0\x99\xc1\x99\xc2\x99\xc3\x99\xc4\x99\xc5\x99\xc6\x99\xc7\x99\xc8\x99\xc9\x99\xca\x99\xcb\x99\xcc\x99\xcd\x99\xce\x99\xcf\x99\xd0\x99\xd1\x99\xd2\x99\xd3\x99\xd4\x99\xd5\x99\xd6\x99\xd7\x99\xd8\x99\xd9\x99\xda\x99\xdb\x99\xdc\x99\xdd\x99\xde\x99\xdf\x99\xe0\x99\xe1\x99\xe2\x99\xe3\x99\xe4\x99\xe5\x99\xe6\x99\xe7\x99\xe8\x99\xe9\x99\xea\x99\xeb\x99\xec\x99\xed\x99\xee\x99\xef\x99\xf0\x99\xf1\x99\xf2\x99\xf3\x99\xf4\x99\xf5\x99\xf6\x99\xf7\x99\xf8\x99\xf9\x99\xfa\x99\xfb\x99\xfc\x99\xfd\x9a\x41\x9a\x42\x9a\x43\x9a\x44\x9a\x45\x9a\x46\x9a\x47\x9a\x48\x9a\x49", /* 6b00 */ "\x9a\x4a\x9a\x4b\x9a\x4c\x9a\x4d\x9a\x4e\x9a\x4f\x9a\x50\x9a\x51\x9a\x52\x9a\x53\x9a\x54\x9a\x55\x9a\x56\x9a\x57\x9a\x58\x9a\x59\x9a\x5a\x9a\x5b\x9a\x5c\x9a\x5d\x9a\x5e\x9a\x5f\x9a\x60\x9a\x61\x9a\x62\x9a\x63\x9a\x64\x9a\x65\x9a\x66\x9a\x67\x9a\x68\x9a\x69\x54\x57\x4a\xcd\x4e\x56\x58\xbf\x66\xa2\x9a\x6a\x9a\x6b\x53\x57\x9a\x6c\x9a\x6d\x9a\x6e\x9a\x6f\x9a\x70\x9a\x71\x9a\x72\x9a\x73\x9a\x74\x9a\x75\x5a\x9c\x9a\x76\x9a\x77\x9a\x78\x9a\x79\x66\xa3\x9a\x7a\x66\xa4\x53\xda\x9a\x7b\x9a\x7c\x9a\x7d\x50\x8f\x9a\x7e\x9a\x7f\x9a\x81\x9a\x82\x66\xa5\x9a\x83\x9a\x84\x66\xa6\x58\xa9\x9a\x85\x54\x58\x9a\x86\x9a\x87\x4c\xe7\x9a\x88\x9a\x89\x9a\x8a\x9a\x8b\x9a\x8c\x9a\x8d\x9a\x8e\x9a\x8f\x9a\x90\x9a\x91\x9a\x92\x9a\x93\x66\xa7\x9a\x94\x9a\x95\x9a\x96\x9a\x97\x9a\x98\x9a\x99\x9a\x9a\x9a\x9b\x5b\xb8\x5b\x9e\x4a\xca\x49\xbc\x57\xe3\x53\xe6\x9a\x9c\x9a\x9d\x57\x82\x9a\x9e\x9a\x9f\x9a\xa0\x9a\xa1\x9a\xa2\x9a\xa3\x9a\xa4\x9a\xa5\x9a\xa6\x9a\xa7\x9a\xa8\x9a\xa9\x9a\xaa\x9a\xab\x4a\xf4\x9a\xac\x56\x60\x4e\xde\x9a\xad\x9a\xae\x9a\xaf", /* 6b80 */ "\x9a\xb0\x65\x83\x65\x84\x59\x8b\x65\x86\x9a\xb1\x4a\xf8\x65\x85\x9a\xb2\x59\x53\x55\xe1\x49\xcf\x9a\xb3\x65\x89\x9a\xb4\x9a\xb5\x9a\xb6\x9a\xb7\x65\x87\x65\x88\x9a\xb8\x9a\xb9\x5b\xb2\x9a\xba\x9a\xbb\x9a\xbc\x65\x8a\x65\x8b\x9a\xbd\x9a\xbe\x9a\xbf\x9a\xc0\x9a\xc1\x65\x8c\x9a\xc2\x9a\xc3\x9a\xc4\x9a\xc5\x9a\xc6\x9a\xc7\x9a\xc8\x9a\xc9\x65\x8d\x9a\xca\x9a\xcb\x9a\xcc\x9a\xcd\x9a\xce\x9a\xcf\x9a\xd0\x9a\xd1\x66\xae\x53\x59\x4b\xcd\x9a\xd2\x59\xf2\x9a\xd3\x9a\xd4\x9a\xd5\x9a\xd6\x9a\xd7\x9a\xd8\x9a\xd9\x4b\x8f\x9a\xda\x4e\x79\x66\xb0\x9a\xdb\x9a\xdc\x59\xe2\x9a\xdd\x9a\xde\x9a\xdf\x9a\xe0\x9a\xe1\x57\xe2\x9a\xe2\x52\xb7\x9a\xe3\x52\x5f\x9a\xe4\x9a\xe5\x4b\xbd\x5c\xb8\x49\x68\x49\x6f\x49\x71\x53\x9f\x9a\xe6\x49\x70\x9a\xe7\x52\x4b\x9a\xe8\x9a\xe9\x9a\xea\x9a\xeb\x9a\xec\x5b\x51\x9a\xed\x9a\xee\x9a\xef\x9a\xf0\x9a\xf1\x9a\xf2\x9a\xf3\x9a\xf4\x66\x44\x4d\xc0\x9a\xf5\x9a\xf6\x9a\xf7\x56\xb9\x9a\xf8\x9a\xf9\x9a\xfa\x66\x45\x9a\xfb\x66\x47\x9a\xfc\x9a\xfd\x9b\x41\x66\x48\x9b\x42\x9b\x43\x9b\x44\x66\x46\x9b\x45\x9b\x46", /* 6c00 */ "\x9b\x47\x9b\x48\x9b\x49\x9b\x4a\x9b\x4b\x66\x49\x66\x4b\x66\x4a\x9b\x4c\x9b\x4d\x9b\x4e\x9b\x4f\x9b\x50\x66\x4c\x9b\x51\x55\xce\x5c\xb4\x52\x92\x9b\x52\x52\x45\x53\xf7\x66\x4d\x52\xc9\x9b\x53\x66\x4e\x66\x4f\x66\x50\x4c\x75\x9b\x54\x9b\x55\x9b\x56\x4c\x9b\x9b\x57\x66\x51\x54\x83\x9b\x58\x66\x53\x9b\x59\x4d\xa3\x59\x96\x48\xb0\x66\x52\x66\x54\x9b\x5a\x9b\x5b\x9b\x5c\x4b\x4a\x51\xc7\x54\x89\x9b\x5d\x66\x55\x9b\x5e\x56\x4e\x62\x7f\x9b\x5f\x9b\x60\x5a\x60\x9b\x61\x9b\x62\x9b\x63\x9b\x64\x5d\x7b\x9b\x65\x9b\x66\x57\x41\x5b\xac\x54\x94\x9b\x67\x9b\x68\x9b\x69\x5d\x81\x4e\x84\x9b\x6a\x4d\xb9\x62\x83\x9b\x6b\x9b\x6c\x9b\x6d\x9b\x6e\x9b\x6f\x58\x4b\x9b\x70\x9b\x71\x9b\x72\x62\x81\x55\x67\x9b\x73\x4d\xb8\x9b\x74\x9b\x75\x9b\x76\x59\x54\x62\x82\x54\xe9\x4d\x4f\x4f\x4d\x4a\x78\x57\xda\x9b\x77\x9b\x78\x56\xbf\x9b\x79\x9b\x7a\x9b\x7b\x62\x89\x62\x8a\x57\x95\x9b\x7c\x9b\x7d\x9b\x7e\x9b\x7f\x9b\x81\x56\xac\x9b\x82\x4e\xb2\x9b\x83\x62\x8b\x9b\x84\x62\x8c\x9b\x85\x9b\x86\x58\xd9\x9b\x87\x9b\x88\x9b\x89\x53\xfa\x4c\x7a\x9b\x8a", /* 6c80 */ "\x9b\x8b\x54\x7f\x59\xc9\x57\xd5\x9b\x8c\x62\x85\x62\x8d\x9b\x8d\x55\x93\x4a\x61\x9b\x8e\x9b\x8f\x62\x88\x9b\x90\x9b\x91\x53\xe2\x62\x86\x9b\x92\x9b\x93\x67\x53\x62\x87\x9b\x94\x9b\x95\x9b\x96\x9b\x97\x55\x53\x9b\x98\x53\x87\x9b\x99\x9b\x9a\x9b\x9b\x4d\x55\x9b\x9c\x52\x5b\x9b\x9d\x62\x84\x53\x5d\x51\x44\x51\xd8\x49\xd6\x9b\x9e\x62\x8e\x4e\x46\x52\xac\x9b\x9f\x62\x91\x4f\xd9\x9b\xa0\x9b\xa1\x62\x9c\x62\x96\x4d\xd2\x9b\xa2\x9b\xa3\x9b\xa4\x9b\xa5\x4c\x70\x5a\x6d\x9b\xa6\x5b\xcd\x5b\x73\x4d\x61\x5b\x54\x59\x78\x9b\xa7\x9b\xa8\x9b\xa9\x9b\xaa\x58\xb8\x54\x97\x9b\xab\x9b\xac\x9b\xad\x54\xa9\x49\xb3\x9b\xae\x52\x7a\x9b\xaf\x9b\xb0\x9b\xb1\x62\x8f\x9b\xb2\x9b\xb3\x62\x9d\x62\x90\x4c\x48\x62\x98\x62\x95\x9b\xb4\x9b\xb5\x9b\xb6\x4c\x5a\x9b\xb7\x9b\xb8\x53\x42\x9b\xb9\x62\x97\x53\x7d\x49\xa7\x53\xfb\x9b\xba\x52\xdf\x9b\xbb\x9b\xbc\x5c\x42\x9b\xbd\x50\xe0\x62\x9a\x9b\xbe\x9b\xbf\x62\x9b\x62\x9e\x56\xa8\x62\x94\x9b\xc0\x5a\x5e\x9b\xc1\x49\x63\x67\x54\x62\x92\x62\x93\x9b\xc2\x62\x99\x58\xb9\x53\xc2\x5a\xf2\x62\x9f\x9b\xc3", /* 6d00 */ "\x9b\xc4\x4f\x81\x9b\xc5\x9b\xc6\x62\xa6\x9b\xc7\x9b\xc8\x62\xa5\x9b\xc9\x9b\xca\x9b\xcb\x59\x94\x62\xa2\x9b\xcc\x62\xa8\x9b\xcd\x9b\xce\x9b\xcf\x54\xf6\x9b\xd0\x9b\xd1\x9b\xd2\x9b\xd3\x58\x54\x9b\xd4\x62\xa7\x62\xad\x51\xe4\x9b\xd5\x9b\xd6\x4b\xb3\x9b\xd7\x9b\xd8\x9b\xd9\x9b\xda\x9b\xdb\x9b\xdc\x4f\x93\x9b\xdd\x62\xa1\x9b\xde\x9b\xdf\x4d\xe8\x62\xa9\x9b\xe0\x9b\xe1\x62\xab\x9b\xe2\x9b\xe3\x4b\xfc\x5b\xdd\x62\xb1\x9b\xe4\x62\xac\x9b\xe5\x9b\xe6\x9b\xe7\x62\xa0\x9b\xe8\x4e\x8f\x57\x7d\x54\x42\x53\x69\x9b\xe9\x9b\xea\x51\x98\x9b\xeb\x62\xa3\x9b\xec\x54\x53\x4f\x4c\x4f\x5d\x62\xa4\x9b\xed\x5c\x67\x49\xe1\x9b\xee\x62\xaa\x4e\xc2\x62\xae\x9b\xef\x4e\x8c\x62\xaf\x53\x48\x62\xb0\x9b\xf0\x9b\xf1\x9b\xf2\x9b\xf3\x5b\x84\x50\x43\x9b\xf4\x62\xb9\x9b\xf5\x62\xb6\x9b\xf6\x62\xba\x9b\xf7\x9b\xf8\x62\xbc\x9b\xf9\x9b\xfa\x53\xd5\x9b\xfb\x9b\xfc\x4d\xc5\x50\xca\x9b\xfd\x9c\x41\x9c\x42\x4c\xa0\x62\xb3\x9c\x43\x9c\x44\x9c\x45\x9c\x46\x5a\xa0\x9c\x47\x9c\x48\x4d\xa2\x4f\x9f\x9c\x49\x9c\x4a\x9c\x4b\x62\xbb\x9c\x4c\x9c\x4d\x9c\x4e", /* 6d80 */ "\x9c\x4f\x9c\x50\x57\x5f\x9c\x51\x9c\x52\x52\xf8\x9c\x53\x9c\x54\x58\x9c\x55\x87\x9c\x55\x9c\x56\x5a\x5f\x9c\x57\x58\x71\x9c\x58\x9c\x59\x62\xb2\x9c\x5a\x62\xb7\x62\xb8\x56\xe8\x9c\x5b\x9c\x5c\x9c\x5d\x9c\x5e\x9c\x5f\x56\xcd\x9c\x60\x50\xd3\x62\xb4\x51\x50\x62\xb5\x57\xcf\x9c\x61\x4e\x61\x4b\x73\x9c\x62\x54\xf2\x4f\x47\x5b\x67\x55\x4c\x4c\xa1\x62\xc9\x9c\x63\x9c\x64\x62\xcb\x59\x64\x9c\x65\x9c\x66\x59\xb9\x9c\x67\x9c\x68\x4d\xac\x9c\x69\x9c\x6a\x4d\xd3\x9c\x6b\x9c\x6c\x9c\x6d\x9c\x6e\x9c\x6f\x9c\x70\x62\xc2\x4b\x8e\x9c\x71\x9c\x72\x9c\x73\x5c\x6d\x62\xbf\x58\x9e\x62\xbe\x9c\x74\x9c\x75\x9c\x76\x51\x7c\x56\xc9\x9c\x77\x9c\x78\x9c\x79\x9c\x7a\x55\xe6\x9c\x7b\x9c\x7c\x9c\x7d\x9c\x7e\x52\xd6\x9c\x7f\x56\xd3\x62\xc7\x9c\x81\x9c\x82\x9c\x83\x62\xc6\x62\xc0\x9c\x84\x62\xc3\x4b\x4d\x9c\x85\x9c\x86\x5a\x79\x9c\x87\x62\xc5\x9c\x88\x9c\x89\x9c\x8a\x9c\x8b\x59\xf8\x4a\xe2\x9c\x8c\x4e\x54\x9c\x8d\x9c\x8e\x55\x8f\x9c\x8f\x4a\xbd\x9c\x90\x9c\x91\x9c\x92\x4e\x8d\x9c\x93\x59\x6d\x9c\x94\x56\xec\x67\x55\x9c\x95\x9c\x96\x9c\x97", /* 6e00 */ "\x9c\x98\x9c\x99\x9c\x9a\x9c\x9b\x9c\x9c\x54\x86\x9c\x9d\x9c\x9e\x9c\x9f\x9c\xa0\x5a\xa7\x9c\xa1\x62\xca\x5c\x75\x62\xc1\x9c\xa2\x4f\x45\x62\xc4\x9c\xa3\x9c\xa4\x5a\x87\x9c\xa5\x62\xc8\x55\x99\x9c\xa6\x9c\xa7\x62\xbd\x9c\xa8\x9c\xa9\x5a\x86\x9c\xaa\x9c\xab\x54\x9f\x4b\xc8\x9c\xac\x5a\xfb\x49\xb2\x62\xd6\x9c\xad\x9c\xae\x9c\xaf\x57\xc1\x9c\xb0\x62\xcc\x9c\xb1\x57\xbb\x9c\xb2\x4c\xda\x9c\xb3\x9c\xb4\x62\xd5\x9c\xb5\x50\x6a\x9c\xb6\x9c\xb7\x9c\xb8\x5a\x6e\x9c\xb9\x52\x8d\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xbe\x9c\xbf\x9c\xc0\x9c\xc1\x53\x68\x62\xd7\x9c\xc2\x9c\xc3\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xc8\x9c\xc9\x57\x64\x62\xce\x9c\xca\x9c\xcb\x9c\xcc\x9c\xcd\x62\xd3\x62\xd4\x9c\xce\x4d\xfd\x9c\xcf\x58\x87\x9c\xd0\x9c\xd1\x5b\x5f\x9c\xd2\x9c\xd3\x9c\xd4\x62\xd1\x9c\xd5\x9c\xd6\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xda\x9c\xdb\x9c\xdc\x9c\xdd\x9c\xde\x9c\xdf\x62\xcf\x9c\xe0\x9c\xe1\x62\xcd\x9c\xe2\x9c\xe3\x9c\xe4\x9c\xe5\x9c\xe6\x9c\xe7\x9c\xe8\x9c\xe9\x9c\xea\x9c\xeb\x9c\xec\x9c\xed\x9c\xee\x9c\xef\x9c\xf0\x57\x86\x55\xa9", /* 6e80 */ "\x9c\xf1\x9c\xf2\x9c\xf3\x50\xa2\x9c\xf4\x4f\x46\x62\xd2\x9c\xf5\x9c\xf6\x4c\xc7\x9c\xf7\x9c\xf8\x9c\xf9\x9c\xfa\x9c\xfb\x62\xe6\x5a\xb3\x9c\xfc\x9c\xfd\x9d\x41\x9d\x42\x9d\x43\x9d\x44\x9d\x45\x62\xda\x9d\x46\x9d\x47\x9d\x48\x51\x90\x9d\x49\x9d\x4a\x62\xe8\x9d\x4b\x9d\x4c\x59\xe6\x9d\x4d\x9d\x4e\x62\xde\x9d\x4f\x62\xdf\x9d\x50\x9d\x51\x58\x4a\x9d\x52\x9d\x53\x9d\x54\x9d\x55\x56\x7d\x9d\x56\x62\xd9\x62\xd0\x9d\x57\x62\xe4\x9d\x58\x54\xdb\x62\xe2\x9d\x59\x9d\x5a\x52\xe6\x62\xe1\x9d\x5b\x62\xe0\x9d\x5c\x9d\x5d\x9d\x5e\x4a\x9d\x62\xe7\x9d\x5f\x9d\x60\x9d\x61\x9d\x62\x4b\x82\x9d\x63\x9d\x64\x9d\x65\x5c\x6c\x9d\x66\x9d\x67\x9d\x68\x62\xe5\x9d\x69\x4e\x4c\x9d\x6a\x5c\x72\x56\xce\x66\x99\x9d\x6b\x62\xe3\x9d\x6c\x9d\x6d\x4d\x97\x9d\x6e\x9d\x6f\x9d\x70\x5b\xcc\x62\xd8\x62\xdb\x51\xf9\x62\xdd\x9d\x71\x51\xca\x50\xc3\x51\xcf\x9d\x72\x49\x96\x56\xb1\x9d\x73\x9d\x74\x9d\x75\x9d\x76\x9d\x77\x9d\x78\x9d\x79\x9d\x7a\x9d\x7b\x9d\x7c\x4b\x6e\x9d\x7d\x9d\x7e\x9d\x7f\x9d\x81\x62\xee\x9d\x82\x9d\x83\x9d\x84\x9d\x85\x9d\x86\x9d\x87", /* 6f00 */ "\x9d\x88\x9d\x89\x53\xae\x9d\x8a\x9d\x8b\x9d\x8c\x53\xe0\x9d\x8d\x9d\x8e\x62\xf4\x9d\x8f\x9d\x90\x9d\x91\x9d\x92\x9d\x93\x51\xa8\x9d\x94\x9d\x95\x9d\x96\x50\xeb\x59\x7d\x62\xed\x9d\x97\x9d\x98\x9d\x99\x9d\x9a\x9d\x9b\x9d\x9c\x9d\x9d\x9d\x9e\x9d\x9f\x9d\xa0\x52\xad\x9d\xa1\x9d\xa2\x9d\xa3\x62\xec\x9d\xa4\x9d\xa5\x9d\xa6\x9d\xa7\x62\xf5\x62\xf3\x51\xfd\x9d\xa8\x62\xdc\x9d\xa9\x62\xef\x9d\xaa\x55\xfd\x9d\xab\x5b\x64\x9d\xac\x9d\xad\x62\xf0\x9d\xae\x9d\xaf\x9d\xb0\x9d\xb1\x9d\xb2\x9d\xb3\x9d\xb4\x59\x9b\x9d\xb5\x9d\xb6\x9d\xb7\x9d\xb8\x9d\xb9\x9d\xba\x9d\xbb\x62\xea\x62\xeb\x9d\xbc\x9d\xbd\x9d\xbe\x62\xf1\x9d\xbf\x57\xaa\x9d\xc0\x9d\xc1\x9d\xc2\x9d\xc3\x9d\xc4\x9d\xc5\x9d\xc6\x9d\xc7\x9d\xc8\x9d\xc9\x53\x6b\x9d\xca\x9d\xcb\x9d\xcc\x54\x51\x9d\xcd\x51\xb9\x9d\xce\x9d\xcf\x9d\xd0\x62\xe9\x9d\xd1\x9d\xd2\x9d\xd3\x51\x6a\x9d\xd4\x9d\xd5\x9d\xd6\x9d\xd7\x9d\xd8\x9d\xd9\x56\xb5\x4a\x51\x9d\xda\x9d\xdb\x9d\xdc\x62\xfa\x9d\xdd\x62\xf2\x9d\xde\x9d\xdf\x9d\xe0\x62\xf9\x9d\xe1\x62\xfc\x9d\xe2\x62\xfb\x9d\xe3\x9d\xe4\x9d\xe5", /* 6f80 */ "\x9d\xe6\x9d\xe7\x9d\xe8\x9d\xe9\x4a\x6e\x9d\xea\x9d\xeb\x9d\xec\x4a\x5a\x62\xf6\x9d\xed\x9d\xee\x62\xf8\x62\xf7\x53\x8d\x9d\xef\x9d\xf0\x9d\xf1\x9d\xf2\x9d\xf3\x9d\xf4\x9d\xf5\x9d\xf6\x9d\xf7\x9d\xf8\x9d\xf9\x9d\xfa\x9d\xfb\x50\xbc\x9d\xfc\x9d\xfd\x9e\x41\x9e\x42\x5a\xe7\x9e\x43\x9e\x44\x9e\x45\x9e\x46\x9e\x47\x63\x42\x9e\x48\x9e\x49\x9e\x4a\x9e\x4b\x9e\x4c\x9e\x4d\x9e\x4e\x9e\x4f\x9e\x50\x9e\x51\x9e\x52\x48\xc3\x9e\x53\x9e\x54\x63\x44\x9e\x55\x9e\x56\x63\x43\x9e\x57\x9e\x58\x9e\x59\x9e\x5a\x9e\x5b\x9e\x5c\x4e\xa3\x9e\x5d\x63\x45\x9e\x5e\x9e\x5f\x9e\x60\x9e\x61\x9e\x62\x9e\x63\x63\x41\x9e\x64\x9e\x65\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x62\xfd\x49\x95\x9e\x6b\x9e\x6c\x9e\x6d\x9e\x6e\x9e\x6f\x9e\x70\x9e\x71\x9e\x72\x9e\x73\x9e\x74\x9e\x75\x63\x48\x9e\x76\x63\x49\x63\x46\x9e\x77\x9e\x78\x9e\x79\x9e\x7a\x9e\x7b\x9e\x7c\x9e\x7d\x9e\x7e\x9e\x7f\x9e\x81\x9e\x82\x9e\x83\x63\x47\x63\x4a\x9e\x84\x9e\x85\x9e\x86\x9e\x87\x9e\x88\x9e\x89\x9e\x8a\x9e\x8b\x9e\x8c\x9e\x8d\x9e\x8e\x9e\x8f\x9e\x90\x9e\x91\x9e\x92\x9e\x93", /* 7000 */ "\x9e\x94\x9e\x95\x9e\x96\x9e\x97\x9e\x98\x9e\x99\x9e\x9a\x9e\x9b\x9e\x9c\x9e\x9d\x9e\x9e\x9e\x9f\x9e\xa0\x9e\xa1\x9e\xa2\x9e\xa3\x9e\xa4\x53\xd8\x9e\xa5\x9e\xa6\x9e\xa7\x9e\xa8\x9e\xa9\x9e\xaa\x9e\xab\x9e\xac\x63\x4b\x63\x4d\x9e\xad\x9e\xae\x9e\xaf\x9e\xb0\x9e\xb1\x9e\xb2\x9e\xb3\x63\x4c\x9e\xb4\x9e\xb5\x9e\xb6\x9e\xb7\x9e\xb8\x9e\xb9\x9e\xba\x9e\xbb\x9e\xbc\x9e\xbd\x9e\xbe\x9e\xbf\x9e\xc0\x9e\xc1\x9e\xc2\x9e\xc3\x9e\xc4\x63\x4f\x9e\xc5\x9e\xc6\x9e\xc7\x63\x4e\x9e\xc8\x9e\xc9\x9e\xca\x9e\xcb\x9e\xcc\x9e\xcd\x9e\xce\x9e\xcf\x9e\xd0\x9e\xd1\x9e\xd2\x9e\xd3\x9e\xd4\x9e\xd5\x9e\xd6\x9e\xd7\x9e\xd8\x9e\xd9\x4d\x81\x9e\xda\x9e\xdb\x63\x50\x9e\xdc\x9e\xdd\x9e\xde\x9e\xdf\x9e\xe0\x9e\xe1\x9e\xe2\x9e\xe3\x9e\xe4\x9e\xe5\x9e\xe6\x9e\xe7\x9e\xe8\x9e\xe9\x63\x51\x9e\xea\x9e\xeb\x9e\xec\x9e\xed\x9e\xee\x9e\xef\x9e\xf0\x9e\xf1\x9e\xf2\x9e\xf3\x9e\xf4\x9e\xf5\x4e\x91\x66\xe0\x52\x91\x9e\xf6\x4b\x66\x4e\x72\x9e\xf7\x9e\xf8\x9e\xf9\x9e\xfa\x51\x8a\x5a\xed\x9e\xfb\x4f\xc3\x9e\xfc\x9e\xfd\x9f\x41\x5c\x66\x9f\x42\x5a\xd5\x49\xd2", /* 7080 */ "\x66\xbd\x9f\x43\x9f\x44\x9f\x45\x9f\x46\x65\xc0\x9f\x47\x9f\x48\x9f\x49\x51\xae\x4a\xb5\x9f\x4a\x9f\x4b\x9f\x4c\x59\x77\x9f\x4d\x9f\x4e\x9f\x4f\x4a\x54\x9f\x50\x54\xb1\x50\x5b\x66\xbf\x9f\x51\x9f\x52\x5b\xca\x9f\x53\x9f\x54\x66\xbe\x66\xc0\x9f\x55\x9f\x56\x9f\x57\x9f\x58\x9f\x59\x9f\x5a\x9f\x5b\x9f\x5c\x9f\x5d\x9f\x5e\x9f\x5f\x9f\x60\x9f\x61\x66\xc4\x4f\xe5\x56\xbe\x53\x7a\x4f\xbb\x9f\x62\x66\xc5\x9f\x63\x49\x9f\x9f\x64\x9f\x65\x9f\x66\x66\xc3\x5b\x48\x4b\x84\x9f\x67\x66\xc1\x51\x56\x4a\x84\x9f\x68\x9f\x69\x66\xc2\x56\x58\x50\xc2\x56\xfd\x9f\x6a\x9f\x6b\x9f\x6c\x9f\x6d\x51\x72\x9f\x6e\x66\xc7\x9f\x6f\x9f\x70\x9f\x71\x9f\x72\x9f\x73\x9f\x74\x9f\x75\x9f\x76\x9f\x77\x9f\x78\x9f\x79\x9f\x7a\x9f\x7b\x4d\xe5\x50\xd2\x9f\x7c\x5b\xf1\x9f\x7d\x9f\x7e\x9f\x7f\x59\x6c\x9f\x81\x9f\x82\x9f\x83\x9f\x84\x50\x5e\x9f\x85\x4c\x53\x55\x75\x66\xc6\x4e\x83\x9f\x86\x56\xcb\x4f\x9e\x54\xc7\x9f\x87\x58\x49\x9f\x88\x9f\x89\x9f\x8a\x9f\x8b\x9f\x8c\x9f\x8d\x9f\x8e\x57\x8a\x9f\x8f\x53\x8c\x9f\x90\x9f\x91\x9f\x92\x4c\x8a\x9f\x93\x9f\x94", /* 7100 */ "\x9f\x95\x9f\x96\x9f\x97\x9f\x98\x9f\x99\x9f\x9a\x9f\x9b\x9f\x9c\x9f\x9d\x59\x69\x4d\xb7\x9f\x9e\x9f\x9f\x9f\xa0\x9f\xa1\x9f\xa2\x66\xc8\x9f\xa3\x9f\xa4\x66\xc9\x9f\xa5\x4e\x60\x66\xca\x9f\xa6\x66\xe1\x49\x5a\x4c\x79\x9f\xa7\x9f\xa8\x9f\xa9\x9f\xaa\x9f\xab\x9f\xac\x9f\xad\x9f\xae\x9f\xaf\x9f\xb0\x9f\xb1\x4f\x59\x9f\xb2\x9f\xb3\x9f\xb4\x9f\xb5\x9f\xb6\x9f\xb7\x9f\xb8\x9f\xb9\x66\xcb\x59\x87\x66\xcc\x9f\xba\x9f\xbb\x9f\xbc\x9f\xbd\x54\xba\x9f\xbe\x9f\xbf\x9f\xc0\x9f\xc1\x9f\xc2\x9f\xc3\x9f\xc4\x9f\xc5\x9f\xc6\x9f\xc7\x9f\xc8\x9f\xc9\x9f\xca\x9f\xcb\x66\xd0\x9f\xcc\x9f\xcd\x9f\xce\x9f\xcf\x66\xd2\x9f\xd0\x4e\x6d\x9f\xd1\x4e\xe4\x9f\xd2\x9f\xd3\x9f\xd4\x9f\xd5\x9f\xd6\x9f\xd7\x9f\xd8\x9f\xd9\x9f\xda\x9f\xdb\x9f\xdc\x9f\xdd\x9f\xde\x66\xce\x9f\xdf\x55\x57\x9f\xe0\x9f\xe1\x9f\xe2\x9f\xe3\x9f\xe4\x52\x5a\x9f\xe5\x66\xe2\x5b\x75\x66\xcf\x9f\xe6\x9f\xe7\x9f\xe8\x9f\xe9\x9f\xea\x5b\xf2\x9f\xeb\x9f\xec\x9f\xed\x66\xd1\x66\xcd\x9f\xee\x9f\xef\x9f\xf0\x9f\xf1\x66\xd3\x9f\xf2\x66\xd4\x9f\xf3\x9f\xf4\x55\x5f\x9f\xf5\x9f\xf6", /* 7180 */ "\x9f\xf7\x9f\xf8\x9f\xf9\x9f\xfa\x58\x48\x9f\xfb\x9f\xfc\x9f\xfd\xa0\x41\xa0\x42\x58\xdb\xa0\x43\xa0\x44\xa0\x45\xa0\x46\x59\x4c\xa0\x47\xa0\x48\xa0\x49\xa0\x4a\x54\xda\xa0\x4b\xa0\x4c\xa0\x4d\x66\xd5\x57\xf4\xa0\x4e\xa0\x4f\xa0\x50\xa0\x51\xa0\x52\x55\xeb\x66\xd9\xa0\x53\xa0\x54\xa0\x55\xa0\x56\xa0\x57\xa0\x58\xa0\x59\x66\xd8\xa0\x5a\xa0\x5b\xa0\x5c\x48\xbd\xa0\x5d\xa0\x5e\xa0\x5f\xa0\x60\xa0\x61\xa0\x62\x66\xd6\xa0\x63\x66\xd7\xa0\x64\xa0\x65\xa0\x66\x66\xe3\xa0\x67\xa0\x68\xa0\x69\xa0\x6a\xa0\x6b\xa0\x6c\xa0\x6d\xa0\x6e\xa0\x6f\x54\xbb\xa0\x70\xa0\x71\xa0\x72\xa0\x73\xa0\x74\xa0\x75\xa0\x76\xa0\x77\xa0\x78\xa0\x79\x51\x67\xa0\x7a\xa0\x7b\xa0\x7c\xa0\x7d\xa0\x7e\x66\xdb\x59\x81\xa0\x7f\xa0\x81\xa0\x82\xa0\x83\xa0\x84\xa0\x85\xa0\x86\xa0\x87\xa0\x88\xa0\x89\x66\xda\xa0\x8a\xa0\x8b\xa0\x8c\xa0\x8d\x5a\xee\xa0\x8e\x66\xdc\xa0\x8f\xa0\x90\xa0\x91\xa0\x92\xa0\x93\xa0\x94\x5e\x66\xa0\x95\xa0\x96\xa0\x97\xa0\x98\xa0\x99\xa0\x9a\xa0\x9b\xa0\x9c\xa0\x9d\xa0\x9e\x66\xdd\xa0\x9f\xa0\xa0\xa0\xa1\xa0\xa2\xa0\xa3\xa0\xa4", /* 7200 */ "\xa0\xa5\xa0\xa6\xa0\xa7\xa0\xa8\xa0\xa9\xa0\xaa\x49\x4c\xa0\xab\xa0\xac\xa0\xad\xa0\xae\xa0\xaf\xa0\xb0\xa0\xb1\xa0\xb2\xa0\xb3\xa0\xb4\xa0\xb5\xa0\xb6\xa0\xb7\xa0\xb8\xa0\xb9\xa0\xba\xa0\xbb\xa0\xbc\xa0\xbd\xa0\xbe\xa0\xbf\xa0\xc0\x66\xde\xa0\xc1\xa0\xc2\xa0\xc3\xa0\xc4\xa0\xc5\xa0\xc6\xa0\xc7\xa0\xc8\xa0\xc9\xa0\xca\x66\xdf\xa0\xcb\x5c\x46\xa0\xcc\x53\x60\xa0\xcd\xa0\xce\xa0\xcf\x66\x5c\x48\xad\xa0\xd0\xa0\xd1\xa0\xd2\x4f\xf3\x4c\xb7\x59\xae\x48\xd5\x4b\x9a\xa0\xd3\x5c\xb2\xa0\xd4\x56\x4c\xa0\xd5\x62\x7d\xa0\xd6\xa0\xd7\xa0\xd8\xa0\xd9\xa0\xda\xa0\xdb\xa0\xdc\x53\xab\x48\xe5\xa0\xdd\xa0\xde\xa0\xdf\x53\x66\x66\x59\xa0\xe0\xa0\xe1\xa0\xe2\xa0\xe3\x66\x5a\xa0\xe4\xa0\xe5\xa0\xe6\x66\x5b\xa0\xe7\xa0\xe8\x59\x60\xa0\xe9\x53\x43\xa0\xea\x65\xf1\xa0\xeb\x52\xb1\xa0\xec\x52\xb4\x50\xcd\xa0\xed\xa0\xee\xa0\xef\x65\xf2\x52\xc0\xa0\xf0\x57\xee\xa0\xf1\xa0\xf2\xa0\xf3\xa0\xf4\x65\xef\x65\xf3\xa0\xf5\xa0\xf6\x55\x9d\xa0\xf7\xa0\xf8\x54\x43\xa0\xf9\xa0\xfa\xa0\xfb\x56\xd7\x57\xfd\xa0\xfc\xa0\xfd\xa1\x41\x65\xf4\x65\xf5", /* 7280 */ "\x58\x4c\x50\xe6\xa1\x42\xa1\x43\x65\xf6\xa1\x44\xa1\x45\xa1\x46\xa1\x47\xa1\x48\x4b\xbe\x65\xf7\xa1\x49\x65\xf8\xa1\x4a\x65\xf9\xa1\x4b\xa1\x4c\x65\xfa\xa1\x4d\xa1\x4e\xa1\x4f\xa1\x50\xa1\x51\xa1\x52\xa1\x53\xa1\x54\xa1\x55\xa1\x56\xa1\x57\xa1\x58\x65\xf0\xa1\x59\xa1\x5a\xa1\x5b\xa1\x5c\xa1\x5d\xa1\x5e\xa1\x5f\xa1\x60\xa1\x61\xa1\x62\xa1\x63\xa1\x64\x54\xad\x61\x8c\xa1\x65\x4c\x58\x61\x8d\xa1\x66\xa1\x67\xa1\x68\x61\x8e\xa1\x69\x5c\x54\x61\x8f\x61\x90\x5a\x6c\xa1\x6a\xa1\x6b\xa1\x6c\xa1\x6d\xa1\x6e\xa1\x6f\xa1\x70\x61\x92\x50\x92\x61\x91\x4b\x72\xa1\x71\xa1\x72\xa1\x73\x49\x57\xa1\x74\xa1\x75\xa1\x76\xa1\x77\x61\x94\x61\x93\xa1\x78\x4d\xfb\xa1\x79\x61\x95\xa1\x7a\xa1\x7b\xa1\x7c\xa1\x7d\x4d\x57\xa1\x7e\x4f\xd0\xa1\x7f\xa1\x81\xa1\x82\xa1\x83\x52\xfb\xa1\x84\x4d\xdc\x4f\x66\xa1\x85\xa1\x86\xa1\x87\xa1\x88\xa1\x89\xa1\x8a\x61\x96\x61\x98\xa1\x8b\xa1\x8c\x4b\xbf\x58\x61\x55\xa7\x61\x97\x5b\x99\x5a\x9d\x61\x99\x61\x9d\x61\x9a\xa1\x8d\xa1\x8e\x61\x9b\x50\xe9\xa1\x8f\x61\x9f\x61\xa0\x50\xc6\xa1\x90\xa1\x91\xa1\x92", /* 7300 */ "\xa1\x93\x61\x9c\xa1\x94\x61\x9e\xa1\x95\xa1\x96\xa1\x97\xa1\x98\xa1\x99\xa1\x9a\x61\xa4\xa1\x9b\xa1\x9c\xa1\x9d\x51\x74\xa1\x9e\xa1\x9f\xa1\xa0\xa1\xa1\x61\xa2\xa1\xa2\x61\xa7\x49\xfd\x61\xa1\xa1\xa3\xa1\xa4\xa1\xa5\x52\x6d\x49\xc1\x61\xa6\x61\xa5\xa1\xa6\xa1\xa7\x61\xa3\x61\xa8\xa1\xa8\xa1\xa9\x61\xaa\xa1\xaa\xa1\xab\xa1\xac\x58\xc8\x5b\xec\x52\x48\x61\xab\xa1\xad\x58\x77\xa1\xae\xa1\xaf\x61\xad\xa1\xb0\xa1\xb1\x4d\xee\xa1\xb2\xa1\xb3\x65\x81\x61\xac\x61\xa9\xa1\xb4\xa1\xb5\xa1\xb6\xa1\xb7\x4e\x4b\x5a\xb2\xa1\xb8\xa1\xb9\xa1\xba\xa1\xbb\xa1\xbc\xa1\xbd\xa1\xbe\xa1\xbf\xa1\xc0\xa1\xc1\xa1\xc2\xa1\xc3\xa1\xc4\x61\xaf\xa1\xc5\xa1\xc6\x61\xae\xa1\xc7\x65\x82\xa1\xc8\xa1\xc9\xa1\xca\xa1\xcb\x61\xb0\xa1\xcc\xa1\xcd\xa1\xce\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xd2\xa1\xd3\x61\xb1\xa1\xd4\xa1\xd5\xa1\xd6\xa1\xd7\xa1\xd8\xa1\xd9\xa1\xda\xa1\xdb\xa1\xdc\xa1\xdd\xa1\xde\x61\xb2\x56\xa0\xa1\xdf\x61\xb3\xa1\xe0\xa1\xe1\xa1\xe2\xa1\xe3\xa1\xe4\xa1\xe5\xa1\xe6\xa1\xe7\xa1\xe8\xa1\xe9\xa1\xea\xa1\xeb\xa1\xec\xa1\xed\x61\xb4\xa1\xee", /* 7380 */ "\xa1\xef\xa1\xf0\xa1\xf1\xa1\xf2\x58\xfd\xa1\xf3\xa1\xf4\x51\xc9\xa1\xf5\x5a\x92\xa1\xf6\x57\x96\xa1\xf7\xa1\xf8\x64\x81\xa1\xf9\xa1\xfa\x64\x82\xa1\xfb\xa1\xfc\xa1\xfd\xa2\x41\x4f\xc0\xa2\x42\xa2\x43\xa2\x44\xa2\x45\x51\xe9\xa2\x46\xa2\x47\xa2\x48\x64\x85\xa2\x49\xa2\x4a\x64\x84\xa2\x4b\xa2\x4c\xa2\x4d\xa2\x4e\xa2\x4f\xa2\x50\x57\x87\xa2\x51\x52\x55\xa2\x52\xa2\x53\x64\x83\x4e\x57\x58\x76\xa2\x54\x51\x82\x64\x8a\xa2\x55\xa2\x56\xa2\x57\x64\x89\xa2\x58\xa2\x59\x64\x95\x49\xa2\xa2\x5a\xa2\x5b\xa2\x5c\xa2\x5d\x64\x8b\xa2\x5e\x64\x87\xa2\x5f\xa2\x60\xa2\x61\xa2\x62\xa2\x63\x64\x8d\x64\x8c\x55\x5a\xa2\x64\xa2\x65\x5b\x85\xa2\x66\x64\x86\x4c\x49\x64\x88\xa2\x67\xa2\x68\xa2\x69\xa2\x6a\xa2\x6b\xa2\x6c\xa2\x6d\x64\x8f\xa2\x6e\xa2\x6f\xa2\x70\xa2\x71\x64\x94\xa2\x72\x5b\xe8\xa2\x73\xa2\x74\xa2\x75\xa2\x76\x64\x8e\xa2\x77\x64\x93\xa2\x78\x64\x92\xa2\x79\xa2\x7a\xa2\x7b\x48\xdf\xa2\x7c\xa2\x7d\xa2\x7e\xa2\x7f\x64\x96\xa2\x81\xa2\x82\xa2\x83\xa2\x84\xa2\x85\xa2\x86\xa2\x87\xa2\x88\xa2\x89\xa2\x8a\xa2\x8b\xa2\x8c\xa2\x8d", /* 7400 */ "\xa2\x8e\xa2\x8f\xa2\x90\x54\x93\xa2\x91\x50\xc4\x50\xec\xa2\x92\xa2\x93\x51\x91\x64\x91\xa2\x94\xa2\x95\xa2\x96\xa2\x97\x64\x97\x56\x97\xa2\x98\xa2\x99\xa2\x9a\xa2\x9b\xa2\x9c\xa2\x9d\xa2\x9e\xa2\x9f\xa2\xa0\x64\xa1\x64\xa0\xa2\xa1\xa2\xa2\xa2\xa3\xa2\xa4\xa2\xa5\xa2\xa6\x5c\x61\xa2\xa7\xa2\xa8\x64\x9b\x64\x9a\xa2\xa9\x64\x9c\xa2\xaa\x64\x98\xa2\xab\x64\x9f\xa2\xac\x64\x9e\xa2\xad\x64\x9d\xa2\xae\xa2\xaf\x51\x75\x54\x79\x53\x9e\x53\x63\xa2\xb0\xa2\xb1\xa2\xb2\xa2\xb3\xa2\xb4\x54\x8e\xa2\xb5\xa2\xb6\xa2\xb7\xa2\xb8\x64\xa2\xa2\xb9\xa2\xba\xa2\xbb\xa2\xbc\xa2\xbd\xa2\xbe\xa2\xbf\xa2\xc0\xa2\xc1\xa2\xc2\xa2\xc3\xa2\xc4\xa2\xc5\xa2\xc6\xa2\xc7\xa2\xc8\xa2\xc9\xa2\xca\xa2\xcb\x64\xa5\xa2\xcc\x64\xa4\xa2\xcd\x64\xa6\x4d\xf6\x64\x99\x64\xa3\xa2\xce\x54\xef\x55\x4a\xa2\xcf\xa2\xd0\xa2\xd1\xa2\xd2\xa2\xd3\xa2\xd4\xa2\xd5\xa2\xd6\xa2\xd7\xa2\xd8\xa2\xd9\xa2\xda\xa2\xdb\x64\xa8\xa2\xdc\xa2\xdd\x4d\x86\xa2\xde\xa2\xdf\xa2\xe0\xa2\xe1\xa2\xe2\x59\x9f\x64\xa7\xa2\xe3\xa2\xe4\xa2\xe5\xa2\xe6\xa2\xe7\xa2\xe8\x64\xa9\xa2\xe9", /* 7480 */ "\x64\xac\x64\xad\xa2\xea\x51\x47\xa2\xeb\xa2\xec\xa2\xed\x64\xae\xa2\xee\xa2\xef\xa2\xf0\x64\xaf\xa2\xf1\xa2\xf2\x64\xab\xa2\xf3\x64\xb3\xa2\xf4\xa2\xf5\xa2\xf6\xa2\xf7\xa2\xf8\xa2\xf9\xa2\xfa\xa2\xfb\xa2\xfc\xa2\xfd\xa3\x41\x64\xaa\xa3\x42\x64\xb0\xa3\x43\xa3\x44\xa3\x45\xa3\x46\xa3\x47\xa3\x48\xa3\x49\xa3\x4a\x64\xb4\x64\xb1\x64\xb2\xa3\x4b\xa3\x4c\xa3\x4d\xa3\x4e\xa3\x4f\xa3\x50\xa3\x51\xa3\x52\xa3\x53\xa3\x54\xa3\x55\xa3\x56\xa3\x57\xa3\x58\xa3\x59\xa3\x5a\x64\xb6\xa3\x5b\xa3\x5c\xa3\x5d\xa3\x5e\xa3\x5f\xa3\x60\xa3\x61\xa3\x62\xa3\x63\xa3\x64\xa3\x65\xa3\x66\xa3\x67\xa3\x68\xa3\x69\xa3\x6a\xa3\x6b\xa3\x6c\xa3\x6d\xa3\x6e\xa3\x6f\xa3\x70\xa3\x71\x64\xb5\xa3\x72\xa3\x73\xa3\x74\xa3\x75\xa3\x76\xa3\x77\xa3\x78\xa3\x79\xa3\x7a\x4d\x6f\xa3\x7b\x68\xab\xa3\x7c\x68\xac\xa3\x7d\x53\xaf\x48\xe9\x54\xbe\xa3\x7e\x57\x7f\xa3\x7f\xa3\x81\xa3\x82\xa3\x83\xa3\x84\xa3\x85\xa3\x86\x57\xcc\x65\xb0\xa3\x87\xa3\x88\xa3\x89\xa3\x8a\x65\xb1\xa3\x8b\x53\xbe\x4a\xc8\xa3\x8c\xa3\x8d\xa3\x8e\xa3\x8f\xa3\x90\xa3\x91\xa3\x92\x65\xb2", /* 7500 */ "\xa3\x93\xa3\x94\xa3\x95\xa3\x96\x5b\x88\xa3\x97\xa3\x98\xa3\x99\xa3\x9a\xa3\x9b\xa3\x9c\xa3\x9d\xa3\x9e\x5f\x9a\xa3\x9f\x65\xb3\xa3\xa0\x65\xb4\xa3\xa1\x65\xb5\xa3\xa2\xa3\xa3\xa3\xa4\xa3\xa5\x4c\xc9\x60\x50\x55\x96\xa3\xa6\x56\xef\xa3\xa7\xa3\xa8\x55\x9b\xa3\xa9\xa3\xaa\xa3\xab\xa3\xac\xa3\xad\x55\x9c\xa3\xae\xa3\xaf\x5a\x63\x56\x46\xa3\xb0\x4c\xa5\x68\xad\x49\x62\xa3\xb1\x63\x58\x56\xee\x5a\x69\x4e\xd6\x55\x8b\xa3\xb2\x4b\x88\xa3\xb3\x52\xcf\x4b\x8a\xa3\xb4\x67\xad\x4e\x4d\xa3\xb5\xa3\xb6\x64\x7e\xa3\xb7\x67\xae\xa3\xb8\xa3\xb9\xa3\xba\xa3\xbb\x4a\x49\xa3\xbc\xa3\xbd\x67\xb1\xa3\xbe\xa3\xbf\x67\xb0\x4f\x88\xa3\xc0\x67\xaf\x57\xb6\xa3\xc1\xa3\xc2\xa3\xc3\xa3\xc4\x53\x6f\xa3\xc5\xa3\xc6\xa3\xc7\xa3\xc8\x51\x95\x5e\x6e\x67\xb2\x58\xf2\xa3\xc9\xa3\xca\xa3\xcb\xa3\xcc\xa3\xcd\xa3\xce\xa3\xcf\xa3\xd0\x51\xd3\x53\xe7\xa3\xd1\xa3\xd2\xa3\xd3\x4c\x4c\xa3\xd4\xa3\xd5\xa3\xd6\xa3\xd7\xa3\xd8\xa3\xd9\xa3\xda\x67\xb3\xa3\xdb\x4a\x8c\xa3\xdc\xa3\xdd\xa3\xde\x4e\x9c\x67\xb4\xa3\xdf\xa3\xe0\xa3\xe1\xa3\xe2\xa3\xe3\x64\x7c", /* 7580 */ "\xa3\xe4\xa3\xe5\xa3\xe6\x67\xb5\xa3\xe7\xa3\xe8\x4f\x4e\xa3\xe9\xa3\xea\xa3\xeb\xa3\xec\x69\x83\xa3\xed\xa3\xee\xa3\xef\x55\xe7\xa3\xf0\x59\xc8\x68\xd9\xa3\xf1\x68\xda\xa3\xf2\x68\xdb\x51\x66\xa3\xf3\x4c\xec\x4f\xcd\xa3\xf4\xa3\xf5\x68\xdd\xa3\xf6\x53\x51\x68\xdc\x59\x92\xa3\xf7\x68\xdf\x48\xcb\x4f\x8b\xa3\xf8\xa3\xf9\xa3\xfa\xa3\xfb\xa3\xfc\x59\xde\x68\xde\xa3\xfd\x4a\xae\x4c\x89\x68\xe5\x68\xe4\x53\xa2\x68\xe0\x68\xe1\x4a\xc2\xa4\x41\xa4\x42\x68\xe2\x5b\x8f\xa4\x43\xa4\x44\x56\xda\x4f\xd1\x4e\xb1\xa4\x45\xa4\x46\xa4\x47\x68\xe7\x68\xe6\x68\xe3\x49\xa0\xa4\x48\x5b\xa1\x5a\x58\x4f\xb6\x54\xab\xa4\x49\xa4\x4a\x68\xe9\xa4\x4b\xa4\x4c\xa4\x4d\xa4\x4e\x59\x98\xa4\x4f\x5b\xcb\x4d\xda\x68\xe8\xa4\x50\x4b\xba\xa4\x51\xa4\x52\x57\x54\xa4\x53\xa4\x54\x53\xa5\xa4\x55\xa4\x56\xa4\x57\x51\x41\x68\xea\x68\xed\xa4\x58\x68\xec\x68\xef\x68\xeb\xa4\x59\x4e\x5e\x68\xee\xa4\x5a\xa4\x5b\xa4\x5c\xa4\x5d\x56\xb4\x68\xf1\xa4\x5e\xa4\x5f\x4a\x75\xa4\x60\xa4\x61\xa4\x62\xa4\x63\x49\x74\xa4\x64\xa4\x65\x68\xf2\xa4\x66\xa4\x67\x68\xf3", /* 7600 */ "\x68\xf5\x4a\xe0\xa4\x68\x68\xf0\xa4\x69\x68\xf6\xa4\x6a\xa4\x6b\xa4\x6c\xa4\x6d\x68\xf9\xa4\x6e\x68\xf7\xa4\x6f\xa4\x70\xa4\x71\x68\xf4\xa4\x72\xa4\x73\xa4\x74\xa4\x75\x68\xfc\xa4\x76\x68\xf8\x68\xfb\x68\xfd\xa4\x77\x69\x41\xa4\x78\xa4\x79\xa4\x7a\x57\xc0\x69\x44\xa4\x7b\x69\x43\xa4\x7c\x51\x97\x68\xfa\x55\xdc\xa4\x7d\xa4\x7e\x4a\xf0\x49\x92\x56\xb0\xa4\x7f\x69\x46\xa4\x81\xa4\x82\x69\x47\xa4\x83\xa4\x84\x69\x4c\x5b\x6e\x69\x49\xa4\x85\xa4\x86\x54\xb2\xa4\x87\xa4\x88\xa4\x89\x69\x42\xa4\x8a\x69\x4b\x69\x48\x69\x45\xa4\x8b\xa4\x8c\x69\x4a\xa4\x8d\xa4\x8e\xa4\x8f\xa4\x90\xa4\x91\xa4\x92\xa4\x93\xa4\x94\x48\xa8\x69\x4d\xa4\x95\xa4\x96\xa4\x97\xa4\x98\xa4\x99\xa4\x9a\x69\x4f\xa4\x9b\x69\x51\xa4\x9c\xa4\x9d\xa4\x9e\xa4\x9f\xa4\xa0\x69\x50\xa4\xa1\x69\x4e\xa4\xa2\xa4\xa3\xa4\xa4\xa4\xa5\x59\x42\xa4\xa6\xa4\xa7\xa4\xa8\xa4\xa9\xa4\xaa\xa4\xab\xa4\xac\x69\x52\xa4\xad\xa4\xae\xa4\xaf\x69\x53\xa4\xb0\xa4\xb1\xa4\xb2\xa4\xb3\xa4\xb4\xa4\xb5\xa4\xb6\xa4\xb7\x4d\x90\xa4\xb8\xa4\xb9\x4b\x67\xa4\xba\x48\xd6\x48\xd8\xa4\xbb", /* 7680 */ "\xa4\xbc\xa4\xbd\x5a\xec\xa4\xbe\x4b\x64\xa4\xbf\x4f\x74\x4e\x6a\x68\xa6\xa4\xc0\xa4\xc1\x4c\xdd\xa4\xc2\xa4\xc3\x68\xa7\xa4\xc4\xa4\xc5\x48\xa7\xa4\xc6\x68\xa8\xa4\xc7\xa4\xc8\x57\x8f\xa4\xc9\xa4\xca\x68\xa9\xa4\xcb\xa4\xcc\xa4\xcd\xa4\xce\xa4\xcf\xa4\xd0\xa4\xd1\xa4\xd2\xa4\xd3\xa4\xd4\x68\xaa\xa4\xd5\xa4\xd6\xa4\xd7\xa4\xd8\xa4\xd9\xa4\xda\xa4\xdb\xa4\xdc\xa4\xdd\x53\xa3\xa4\xde\xa4\xdf\x5b\xe4\x69\x85\xa4\xe0\x69\x86\xa4\xe1\xa4\xe2\xa4\xe3\xa4\xe4\xa4\xe5\xa4\xe6\xa4\xe7\xa4\xe8\xa4\xe9\xa4\xea\x52\x94\xa4\xeb\xa4\xec\x5a\x7b\xa4\xed\xa4\xee\x5b\xd0\x53\x89\xa4\xef\x5a\x4f\xa4\xf0\x59\xe5\xa4\xf1\xa4\xf2\x67\xc0\x48\xba\x5b\x55\x59\x6e\x4e\xdf\x4d\xcf\xa4\xf3\x50\x99\xa4\xf4\x4c\xc6\x4b\x61\x53\x6c\xa4\xf5\xa4\xf6\x55\xa1\xa4\xf7\xa4\xf8\xa4\xf9\x52\x6b\xa4\xfa\xa4\xfb\xa4\xfc\xa4\xfd\xa5\x41\x67\xc1\xa5\x42\xa5\x43\xa5\x44\xa5\x45\xa5\x46\xa5\x47\xa5\x48\xa5\x49\x52\xbe\x4b\xa1\xa5\x4a\x67\x8d\x52\x44\xa5\x4b\x5b\xb0\xa5\x4c\xa5\x4d\xa5\x4e\x58\x81\x67\x90\xa5\x4f\xa5\x50\x53\x6e\xa5\x51\x4b\xdb\xa5\x52", /* 7700 */ "\xa5\x53\x55\xa0\xa5\x54\xa5\x55\x67\x8e\xa5\x56\xa5\x57\x67\x91\x67\x92\x52\x5c\xa5\x58\x50\x54\xa5\x59\x67\x8f\xa5\x5a\xa5\x5b\xa5\x5c\xa5\x5d\xa5\x5e\xa5\x5f\xa5\x60\xa5\x61\xa5\x62\xa5\x63\xa5\x64\x67\x95\x67\x93\xa5\x65\xa5\x66\xa5\x67\xa5\x68\x5b\x87\x52\x7f\xa5\x69\x67\x94\xa5\x6a\xa5\x6b\xa5\x6c\x67\x97\xa5\x6d\x5b\x43\x59\x43\xa5\x6e\xa5\x6f\xa5\x70\x67\x96\xa5\x71\x52\x70\xa5\x72\xa5\x73\xa5\x74\xa5\x75\xa5\x76\x67\x98\x50\x95\x4f\xeb\x67\x99\xa5\x77\x56\xf6\xa5\x78\x59\x7b\xa5\x79\xa5\x7a\xa5\x7b\x5c\x65\x5b\x97\xa5\x7c\x67\x9d\xa5\x7d\xa5\x7e\xa5\x7f\x67\x9c\xa5\x81\xa5\x82\xa5\x83\xa5\x84\xa5\x85\xa5\x86\xa5\x87\xa5\x88\x67\x9a\x67\x9b\xa5\x89\xa5\x8a\xa5\x8b\xa5\x8c\xa5\x8d\xa5\x8e\xa5\x8f\xa5\x90\x67\x9e\x4f\xa5\xa5\x91\xa5\x92\xa5\x93\xa5\x94\xa5\x95\x56\x4f\x67\xa0\x4b\xbc\xa5\x96\x67\xa1\x52\xbf\xa5\x97\x67\x9f\xa5\x98\xa5\x99\x4f\x7e\x49\xc6\xa5\x9a\xa5\x9b\xa5\x9c\xa5\x9d\xa5\x9e\xa5\x9f\xa5\xa0\xa5\xa1\xa5\xa2\xa5\xa3\xa5\xa4\xa5\xa5\x4b\xc2\xa5\xa6\xa5\xa7\xa5\xa8\x67\xa4\x5c\xb9\x67\xa2", /* 7780 */ "\x67\xa5\xa5\xa9\xa5\xaa\xa5\xab\x52\x8a\x4a\x93\xa5\xac\xa5\xad\xa5\xae\xa5\xaf\xa5\xb0\xa5\xb1\x67\xa6\x67\xa3\x58\x59\xa5\xb2\xa5\xb3\x67\xa7\x51\xf6\xa5\xb4\xa5\xb5\xa5\xb6\xa5\xb7\xa5\xb8\xa5\xb9\xa5\xba\xa5\xbb\xa5\xbc\xa5\xbd\xa5\xbe\xa5\xbf\x67\xa8\x67\xa9\xa5\xc0\x5f\xaa\xa5\xc1\xa5\xc2\x53\xb2\xa5\xc3\x54\x66\xa5\xc4\x5b\xf4\x4b\x69\xa5\xc5\x56\x52\xa5\xc6\xa5\xc7\xa5\xc8\x67\xaa\xa5\xc9\xa5\xca\x57\x4b\xa5\xcb\x67\xab\xa5\xcc\xa5\xcd\xa5\xce\xa5\xcf\xa5\xd0\x5b\x50\xa5\xd1\x67\xac\xa5\xd2\x6b\xc3\xa5\xd3\xa5\xd4\xa5\xd5\xa5\xd6\xa5\xd7\xa5\xd8\xa5\xd9\xa5\xda\xa5\xdb\xa5\xdc\xa5\xdd\xa5\xde\xa5\xdf\x5e\x67\xa5\xe0\xa5\xe1\xa5\xe2\xa5\xe3\xa5\xe4\xa5\xe5\xa5\xe6\xa5\xe7\xa5\xe8\x4a\xa2\xa5\xe9\xa5\xea\xa5\xeb\x52\x4c\x69\x87\xa5\xec\xa5\xed\xa5\xee\xa5\xef\xa5\xf0\x55\xb7\x59\xd2\xa5\xf1\x5b\xa9\xa5\xf2\x68\x93\xa5\xf3\x4f\xd7\xa5\xf4\x4f\x63\x68\x94\x4b\xcb\x48\xaa\xa5\xf5\xa5\xf6\xa5\xf7\xa5\xf8\x55\xae\xa5\xf9\xa5\xfa\x67\x56\xa5\xfb\x67\x57\xa5\xfc\xa5\xfd\xa6\x41\xa6\x42\x57\xf8\x4c\x4f\x50\x94", /* 7800 */ "\x67\x58\x51\xea\x55\x50\xa6\x43\xa6\x44\xa6\x45\xa6\x46\xa6\x47\xa6\x48\x67\x59\xa6\x49\xa6\x4a\x53\xf5\x50\x53\xa6\x4b\xa6\x4c\xa6\x4d\x67\x5c\x53\x99\xa6\x4e\x59\x70\xa6\x4f\x5c\x49\x67\x5a\x67\x5b\xa6\x50\x59\x83\xa6\x51\x67\x5f\x67\x60\xa6\x52\x67\x64\xa6\x53\xa6\x54\xa6\x55\x67\x68\xa6\x56\x67\x66\x67\x6e\x5b\x89\xa6\x57\x67\x69\xa6\x58\xa6\x59\x67\x67\x67\x5e\xa6\x5a\xa6\x5b\x53\x8a\xa6\x5c\xa6\x5d\xa6\x5e\x53\xc5\xa6\x5f\xa6\x60\x55\x8a\x5a\xd1\x67\x61\x67\x62\x67\x63\x67\x65\xa6\x61\x50\xf8\xa6\x62\x4a\xa0\xa6\x63\xa6\x64\xa6\x65\xa6\x66\x4d\x89\xa6\x67\x67\x70\xa6\x68\xa6\x69\xa6\x6a\xa6\x6b\x67\x71\xa6\x6c\x67\x6a\xa6\x6d\x67\x6f\xa6\x6e\x57\xf7\xa6\x6f\xa6\x70\x56\x56\x67\x6c\x67\x6d\xa6\x71\xa6\x72\xa6\x73\xa6\x74\xa6\x75\x58\x96\xa6\x76\xa6\x77\xa6\x78\xa6\x79\xa6\x7a\xa6\x7b\xa6\x7c\xa6\x7d\xa6\x7e\xa6\x7f\xa6\x81\xa6\x82\x67\x72\x51\x93\x5a\x52\x67\x6b\x54\xb6\xa6\x83\xa6\x84\xa6\x85\xa6\x86\xa6\x87\xa6\x88\xa6\x89\xa6\x8a\x4e\xee\xa6\x8b\xa6\x8c\xa6\x8d\xa6\x8e\x53\x91\xa6\x8f\xa6\x90\xa6\x91", /* 7880 */ "\xa6\x92\xa6\x93\xa6\x94\xa6\x95\xa6\x96\xa6\x97\xa6\x98\x67\x76\xa6\x99\x4b\x90\xa6\x9a\xa6\x9b\x51\xb4\x48\xac\x56\x8a\xa6\x9c\xa6\x9d\x49\x4e\xa6\x9e\x67\x74\xa6\x9f\xa6\xa0\xa6\xa1\x57\x8c\x4b\x83\xa6\xa2\x67\x75\x67\x73\x67\x77\xa6\xa3\xa6\xa4\x4b\x9b\xa6\xa5\x67\x78\xa6\xa6\x67\x79\xa6\xa7\x67\x7c\xa6\xa8\x49\x6c\xa6\xa9\xa6\xaa\xa6\xab\xa6\xac\xa6\xad\xa6\xae\xa6\xaf\xa6\xb0\x53\x97\x4e\xed\x67\x7a\x56\xbb\x49\xe9\xa6\xb1\xa6\xb2\xa6\xb3\xa6\xb4\x67\x7b\xa6\xb5\xa6\xb6\xa6\xb7\xa6\xb8\x52\xea\xa6\xb9\xa6\xba\x4a\xc4\xa6\xbb\xa6\xbc\xa6\xbd\x48\xf4\xa6\xbe\xa6\xbf\xa6\xc0\x67\x7f\x50\xd9\x4a\xe7\xa6\xc1\xa6\xc2\xa6\xc3\xa6\xc4\x53\x6d\xa6\xc5\xa6\xc6\xa6\xc7\x67\x7d\x50\x64\xa6\xc8\xa6\xc9\xa6\xca\x67\x7e\xa6\xcb\xa6\xcc\xa6\xcd\xa6\xce\xa6\xcf\xa6\xd0\xa6\xd1\xa6\xd2\xa6\xd3\xa6\xd4\xa6\xd5\xa6\xd6\xa6\xd7\xa6\xd8\x52\xa4\xa6\xd9\xa6\xda\xa6\xdb\x67\x81\xa6\xdc\xa6\xdd\xa6\xde\xa6\xdf\xa6\xe0\x67\x82\xa6\xe1\x67\x84\xa6\xe2\xa6\xe3\x51\x77\xa6\xe4\xa6\xe5\x4e\x67\xa6\xe6\xa6\xe7\xa6\xe8\xa6\xe9\xa6\xea", /* 7900 */ "\xa6\xeb\x4f\x58\xa6\xec\xa6\xed\xa6\xee\x67\x83\xa6\xef\xa6\xf0\xa6\xf1\xa6\xf2\xa6\xf3\xa6\xf4\xa6\xf5\xa6\xf6\xa6\xf7\xa6\xf8\xa6\xf9\xa6\xfa\xa6\xfb\x67\x85\xa6\xfc\xa6\xfd\xa7\x41\xa7\x42\xa7\x43\xa7\x44\xa7\x45\xa7\x46\xa7\x47\xa7\x48\x67\x87\xa7\x49\xa7\x4a\xa7\x4b\xa7\x4c\xa7\x4d\x67\x86\xa7\x4e\xa7\x4f\xa7\x50\xa7\x51\xa7\x52\xa7\x53\xa7\x54\xa7\x55\xa7\x56\xa7\x57\xa7\x58\xa7\x59\xa7\x5a\xa7\x5b\xa7\x5c\x67\x88\xa7\x5d\xa7\x5e\xa7\x5f\xa7\x60\xa7\x61\x55\xbd\x66\xe9\x50\xf0\xa7\x62\x55\x88\xa7\x63\x66\xea\x53\xed\xa7\x64\xa7\x65\xa7\x66\xa7\x67\x66\xeb\xa7\x68\x53\xec\x66\xec\xa7\x69\xa7\x6a\xa7\x6b\xa7\x6c\xa7\x6d\xa7\x6e\xa7\x6f\xa7\x70\xa7\x71\x66\xef\xa7\x72\xa7\x73\x5c\x87\x66\xf2\xa7\x74\xa7\x75\x66\xf0\x66\xed\x66\xee\x5c\x43\x55\x92\x56\x8f\x66\xf3\xa7\x76\x66\xf1\xa7\x77\xa7\x78\x58\x8a\xa7\x79\x66\xf5\x53\xb0\xa7\x7a\xa7\x7b\xa7\x7c\xa7\x7d\x4e\xbf\xa7\x7e\x66\xf4\xa7\x7f\xa7\x81\xa7\x82\xa7\x83\xa7\x84\xa7\x85\xa7\x86\x4b\x5b\x4e\x97\xa7\x87\x66\xf6\xa7\x88\xa7\x89\xa7\x8a\xa7\x8b\xa7\x8c", /* 7980 */ "\x5d\x98\x4f\x9c\xa7\x8d\xa7\x8e\x51\xba\x66\xf7\xa7\x8f\xa7\x90\xa7\x91\xa7\x92\x66\xf8\xa7\x93\xa7\x94\xa7\x95\xa7\x96\x4c\xa2\xa7\x97\xa7\x98\xa7\x99\xa7\x9a\xa7\x9b\xa7\x9c\xa7\x9d\xa7\x9e\xa7\x9f\xa7\xa0\x66\xf9\xa7\xa1\xa7\xa2\xa7\xa3\xa7\xa4\xa7\xa5\xa7\xa6\xa7\xa7\xa7\xa8\xa7\xa9\xa7\xaa\xa7\xab\xa7\xac\x66\xfa\xa7\xad\xa7\xae\xa7\xaf\xa7\xb0\xa7\xb1\xa7\xb2\xa7\xb3\xa7\xb4\xa7\xb5\xa7\xb6\xa7\xb7\x66\xfb\xa7\xb8\xa7\xb9\xa7\xba\xa7\xbb\xa7\xbc\x5a\x8e\x5c\xad\x50\xea\xa7\xbd\x54\x7d\x4d\xcb\xa7\xbe\x58\xe2\x56\x5d\xa7\xbf\x57\x5a\xa7\xc0\xa7\xc1\x4c\xd0\xa7\xc2\xa7\xc3\x49\x9d\xa7\xc4\x54\x90\xa7\xc5\x5b\xd5\xa7\xc6\xa7\xc7\xa7\xc8\x50\x66\x52\x8c\xa7\xc9\xa7\xca\x68\x96\xa7\xcb\xa7\xcc\x52\x78\xa7\xcd\xa7\xce\xa7\xcf\xa7\xd0\xa7\xd1\xa7\xd2\x5c\x83\xa7\xd3\xa7\xd4\xa7\xd5\x68\x98\x4a\x73\xa7\xd6\x54\x78\x59\x8e\xa7\xd7\x5b\xc7\xa7\xd8\x68\x99\xa7\xd9\x68\x97\xa7\xda\x4e\x9e\x4a\x66\xa7\xdb\xa7\xdc\xa7\xdd\xa7\xde\xa7\xdf\xa7\xe0\xa7\xe1\x4f\x75\xa7\xe2\xa7\xe3\x59\xc5\xa7\xe4\x4e\x81\xa7\xe5\xa7\xe6", /* 7a00 */ "\x58\x41\xa7\xe7\x68\x9d\x68\x9c\xa7\xe8\xa7\xe9\x68\x9a\xa7\xea\xa7\xeb\xa7\xec\xa7\xed\x4a\x6c\xa7\xee\x55\x74\x56\x50\xa7\xef\xa7\xf0\xa7\xf1\xa7\xf2\xa7\xf3\x68\x9f\xa7\xf4\xa7\xf5\x48\xdd\xa7\xf6\xa7\xf7\x5b\xc8\xa7\xf8\xa7\xf9\xa7\xfa\x68\x9e\xa7\xfb\x4a\x8e\xa7\xfc\xa7\xfd\x6b\xd4\xa8\x41\xa8\x42\xa8\x43\xa8\x44\xa8\x45\xa8\x46\xa8\x47\xa8\x48\xa8\x49\xa8\x4a\xa8\x4b\xa8\x4c\xa8\x4d\xa8\x4e\xa8\x4f\x57\xc7\xa8\x50\xa8\x51\xa8\x52\x68\xa1\xa8\x53\x68\xa0\xa8\x54\x4b\x5e\x4e\xd9\x4e\x9d\xa8\x55\x4c\xe4\xa8\x56\xa8\x57\xa8\x58\xa8\x59\xa8\x5a\xa8\x5b\x52\xc1\xa8\x5c\xa8\x5d\xa8\x5e\xa8\x5f\xa8\x60\xa8\x61\xa8\x62\xa8\x63\xa8\x64\xa8\x65\x68\xa2\xa8\x66\xa8\x67\xa8\x68\xa8\x69\xa8\x6a\x56\x8c\xa8\x6b\xa8\x6c\xa8\x6d\xa8\x6e\xa8\x6f\xa8\x70\xa8\x71\xa8\x72\xa8\x73\xa8\x74\xa8\x75\xa8\x76\xa8\x77\xa8\x78\xa8\x79\xa8\x7a\xa8\x7b\xa8\x7c\xa8\x7d\xa8\x7e\xa8\x7f\xa8\x81\xa8\x82\xa8\x83\x68\xa5\xa8\x84\xa8\x85\xa8\x86\x59\x48\xa8\x87\x4f\xbe\x54\x8f\x69\x56\x69\x57\x50\x75\xa8\x88\xa8\x89\xa8\x8a\xa8\x8b\x4a\xa8", /* 7a80 */ "\x69\x58\x57\x5b\xa8\x8c\x54\x74\x5b\x4d\xa8\x8d\x69\x59\xa8\x8e\x69\x5a\xa8\x8f\xa8\x90\xa8\x91\xa8\x92\x54\x6f\xa8\x93\xa8\x94\xa8\x95\x59\xa3\x5b\xce\xa8\x96\xa8\x97\x69\x5b\x4f\x71\x4a\xaf\x4f\xbc\xa8\x98\xa8\x99\xa8\x9a\x4a\xdb\x57\xd0\xa8\x9b\x50\x7f\x69\x5d\xa8\x9c\xa8\x9d\xa8\x9e\xa8\x9f\x50\x9b\x69\x5c\xa8\xa0\x69\x5f\xa8\xa1\xa8\xa2\xa8\xa3\x69\x5e\x69\x60\xa8\xa4\xa8\xa5\xa8\xa6\xa8\xa7\xa8\xa8\x69\x61\xa8\xa9\xa8\xaa\xa8\xab\xa8\xac\xa8\xad\xa8\xae\xa8\xaf\xa8\xb0\xa8\xb1\xa8\xb2\xa8\xb3\x51\x9f\xa8\xb4\xa8\xb5\xa8\xb6\xa8\xb7\xa8\xb8\xa8\xb9\xa8\xba\xa8\xbb\xa8\xbc\xa8\xbd\xa8\xbe\x51\x42\xa8\xbf\xa8\xc0\xa8\xc1\xa8\xc2\xa8\xc3\xa8\xc4\xa8\xc5\xa8\xc6\xa8\xc7\xa8\xc8\x55\xf9\xa8\xc9\xa8\xca\x5b\x5e\xa8\xcb\xa8\xcc\xa8\xcd\xa8\xce\x4f\xb9\x4f\xb8\x5b\x62\xa8\xcf\xa8\xd0\x50\x42\xa8\xd1\x57\x4f\x69\x55\xa8\xd2\xa8\xd3\xa8\xd4\xa8\xd5\xa8\xd6\xa8\xd7\x4f\x7f\xa8\xd8\x4b\xca\xa8\xd9\xa8\xda\xa8\xdb\xa8\xdc\xa8\xdd\xa8\xde\xa8\xdf\xa8\xe0\xa8\xe1\x5b\xf0\x6a\x63\xa8\xe2\xa8\xe3\x6a\x64\xa8\xe4\x4c\xcc", /* 7b00 */ "\xa8\xe5\xa8\xe6\xa8\xe7\x6a\x66\x6a\x67\xa8\xe8\x48\xc9\xa8\xe9\x6a\x65\xa8\xea\x6a\x69\x56\x92\xa8\xeb\xa8\xec\xa8\xed\x6a\x6b\xa8\xee\x58\xa5\xa8\xef\xa8\xf0\x49\x6a\x6a\x68\xa8\xf1\xa8\xf2\xa8\xf3\x6a\x6f\xa8\xf4\x4b\x71\xa8\xf5\xa8\xf6\x6a\x77\xa8\xf7\x6a\x72\xa8\xf8\xa8\xf9\xa8\xfa\x6a\x74\x6a\x73\x4c\x9c\xa8\xfb\x49\x5f\xa8\xfc\x6a\x6e\x6a\x6a\x4b\x7a\xa8\xfd\x6a\x70\xa9\x41\xa9\x42\x6a\x71\xa9\x43\x6a\x75\xa9\x44\xa9\x45\xa9\x46\xa9\x47\x6a\x6d\xa9\x48\x4e\xe2\xa9\x49\x51\x9e\xa9\x4a\x6a\x76\xa9\x4b\xa9\x4c\xa9\x4d\xa9\x4e\xa9\x4f\xa9\x50\x6a\x7a\xa9\x51\x6a\x6c\xa9\x52\x4b\x68\xa9\x53\x4f\x8f\x6a\x7c\xa9\x54\xa9\x55\x4c\x44\x50\x91\x5b\xfd\x57\x52\xa9\x56\x4a\xef\xa9\x57\x49\xde\xa9\x58\x6a\x78\xa9\x59\x6a\x79\x55\x58\xa9\x5a\x6a\x7d\xa9\x5b\xa9\x5c\x6a\x7e\xa9\x5d\x6a\x82\xa9\x5e\xa9\x5f\xa9\x60\xa9\x61\xa9\x62\xa9\x63\xa9\x64\xa9\x65\xa9\x66\xa9\x67\xa9\x68\x6a\x7f\xa9\x69\xa9\x6a\x6a\x84\x6a\x83\xa9\x6b\xa9\x6c\x6a\x7b\xa9\x6d\x50\x8b\xa9\x6e\x4a\x90\xa9\x6f\x6a\x81\xa9\x70\xa9\x71\x54\x49\xa9\x72", /* 7b80 */ "\x4e\xf1\xa9\x73\xa9\x74\xa9\x75\xa9\x76\x6a\x8c\xa9\x77\xa9\x78\xa9\x79\xa9\x7a\xa9\x7b\xa9\x7c\xa9\x7d\x4d\x5f\xa9\x7e\xa9\x7f\x6a\x85\xa9\x81\xa9\x82\xa9\x83\x49\xac\x4e\x9f\xa9\x84\x56\x84\xa9\x85\xa9\x86\xa9\x87\xa9\x88\x6a\x8e\x6a\x8a\xa9\x89\xa9\x8a\xa9\x8b\x4d\x7c\x6a\x8f\xa9\x8c\xa9\x8d\xa9\x8e\x6a\x86\x6a\x87\x6a\x8b\x51\xe0\x6a\x8d\x6a\x90\x6a\x89\x4e\xfc\xa9\x8f\xa9\x90\xa9\x91\x58\x85\xa9\x92\xa9\x93\x6a\x91\xa9\x94\xa9\x95\xa9\x96\x6a\x88\xa9\x97\xa9\x98\xa9\x99\xa9\x9a\xa9\x9b\xa9\x9c\xa9\x9d\xa9\x9e\x6a\x93\xa9\x9f\xa9\xa0\xa9\xa1\xa9\xa2\x5c\x4d\x53\xa9\xa9\xa3\xa9\xa4\xa9\xa5\xa9\xa6\x6a\x94\xa9\xa7\xa9\xa8\xa9\xa9\xa9\xaa\x6a\x92\xa9\xab\x51\xa7\xa9\xac\xa9\xad\xa9\xae\xa9\xaf\xa9\xb0\x4c\xdc\x6a\x96\xa9\xb1\xa9\xb2\x6a\x95\xa9\xb3\xa9\xb4\xa9\xb5\x4a\xda\xa9\xb6\xa9\xb7\xa9\xb8\x6a\x97\x6a\x98\xa9\xb9\xa9\xba\xa9\xbb\x6a\x99\xa9\xbc\xa9\xbd\xa9\xbe\x50\xb9\xa9\xbf\xa9\xc0\x50\xe8\xa9\xc1\xa9\xc2\xa9\xc3\xa9\xc4\xa9\xc5\x53\x92\xa9\xc6\xa9\xc7\xa9\xc8\xa9\xc9\x6a\x9c\xa9\xca\x6a\x9b\xa9\xcb", /* 7c00 */ "\xa9\xcc\xa9\xcd\xa9\xce\xa9\xcf\xa9\xd0\xa9\xd1\xa9\xd2\x4a\xd7\xa9\xd3\xa9\xd4\xa9\xd5\x6a\x9f\x6a\x9a\xa9\xd6\xa9\xd7\x6a\x9d\xa9\xd8\xa9\xd9\xa9\xda\xa9\xdb\xa9\xdc\xa9\xdd\x6a\x9e\xa9\xde\xa9\xdf\xa9\xe0\xa9\xe1\xa9\xe2\xa9\xe3\xa9\xe4\xa9\xe5\x6a\xa0\xa9\xe6\xa9\xe7\xa9\xe8\xa9\xe9\xa9\xea\xa9\xeb\x6a\xa2\x4e\x69\xa9\xec\xa9\xed\x6a\xa1\xa9\xee\xa9\xef\xa9\xf0\xa9\xf1\xa9\xf2\xa9\xf3\xa9\xf4\xa9\xf5\xa9\xf6\xa9\xf7\xa9\xf8\xa9\xf9\xa9\xfa\x6a\xa3\xa9\xfb\xa9\xfc\xa9\xfd\xaa\x41\xaa\x42\xaa\x43\x49\xbd\x6a\xa5\x6a\xa4\xaa\x44\xaa\x45\xaa\x46\xaa\x47\xaa\x48\xaa\x49\xaa\x4a\xaa\x4b\xaa\x4c\xaa\x4d\xaa\x4e\x4e\xad\xaa\x4f\xaa\x50\xaa\x51\xaa\x52\xaa\x53\xaa\x54\xaa\x55\xaa\x56\xaa\x57\xaa\x58\xaa\x59\xaa\x5a\xaa\x5b\xaa\x5c\xaa\x5d\xaa\x5e\xaa\x5f\xaa\x60\xaa\x61\xaa\x62\xaa\x63\xaa\x64\xaa\x65\xaa\x66\xaa\x67\xaa\x68\xaa\x69\xaa\x6a\xaa\x6b\xaa\x6c\xaa\x6d\xaa\x6e\xaa\x6f\xaa\x70\xaa\x71\xaa\x72\xaa\x73\x52\x77\x5d\x82\xaa\x74\xaa\x75\xaa\x76\xaa\x77\xaa\x78\xaa\x79\x50\xdf\x6a\xcb\x5c\x71\xaa\x7a\xaa\x7b", /* 7c80 */ "\xaa\x7c\xaa\x7d\xaa\x7e\xaa\x7f\xaa\x81\xaa\x82\xaa\x83\xaa\x84\xaa\x85\x4c\x7b\xaa\x86\xaa\x87\xaa\x88\xaa\x89\xaa\x8a\xaa\x8b\xaa\x8c\x6a\xcd\x51\x43\xaa\x8d\xaa\x8e\x53\xc8\xaa\x8f\x4a\xd5\x5b\x53\xaa\x90\xaa\x91\xaa\x92\x6a\xcf\x6a\xce\x6a\xd0\x56\x7a\xaa\x93\xaa\x94\x6a\xd1\xaa\x95\x5a\xc0\x5b\xdf\xaa\x96\xaa\x97\xaa\x98\xaa\x99\x4c\x81\xaa\x9a\xaa\x9b\xaa\x9c\x51\x58\xaa\x9d\xaa\x9e\x51\x5b\x6a\xd2\x4f\xab\xaa\x9f\xaa\xa0\xaa\xa1\xaa\xa2\xaa\xa3\x4a\xe1\xaa\xa4\xaa\xa5\x6a\xd3\x6a\xd4\x4f\xaa\xaa\xa6\xaa\xa7\x6a\xd5\xaa\xa8\xaa\xa9\xaa\xaa\x6a\xda\xaa\xab\x6a\xd6\x6a\xd9\xaa\xac\x4d\xfc\xaa\xad\x6a\xd7\x6a\xd8\xaa\xae\xaa\xaf\xaa\xb0\xaa\xb1\xaa\xb2\xaa\xb3\xaa\xb4\x4c\xe1\x56\xc6\x6a\xdb\xaa\xb5\x49\xd9\xaa\xb6\xaa\xb7\x52\x73\xaa\xb8\xaa\xb9\x5a\xe2\x50\x57\xaa\xba\xaa\xbb\xaa\xbc\xaa\xbd\xaa\xbe\xaa\xbf\xaa\xc0\x6a\xdc\xaa\xc1\xaa\xc2\xaa\xc3\xaa\xc4\xaa\xc5\xaa\xc6\x53\x54\xaa\xc7\xaa\xc8\xaa\xc9\xaa\xca\xaa\xcb\xaa\xcc\xaa\xcd\xaa\xce\x6a\xe8\xaa\xcf\xaa\xd0\x58\x55\xaa\xd1\xaa\xd2\xaa\xd3\xaa\xd4", /* 7d00 */ "\xaa\xd5\xaa\xd6\xaa\xd7\xaa\xd8\xaa\xd9\xaa\xda\xaa\xdb\xaa\xdc\xaa\xdd\xaa\xde\x57\xc8\xaa\xdf\xaa\xe0\xaa\xe1\xaa\xe2\xaa\xe3\xaa\xe4\xaa\xe5\xaa\xe6\xaa\xe7\xaa\xe8\xaa\xe9\xaa\xea\xaa\xeb\xaa\xec\xaa\xed\xaa\xee\xaa\xef\xaa\xf0\xaa\xf1\xaa\xf2\xaa\xf3\x56\x78\xaa\xf4\x56\x98\xaa\xf5\xaa\xf6\xaa\xf7\xaa\xf8\x4f\x95\xaa\xf9\xaa\xfa\xaa\xfb\x5c\x6f\xaa\xfc\xaa\xfd\xab\x41\x50\xda\xab\x42\xab\x43\xab\x44\xab\x45\xab\x46\xab\x47\xab\x48\xab\x49\xab\x4a\xab\x4b\xab\x4c\xab\x4d\xab\x4e\xab\x4f\xab\x50\xab\x51\xab\x52\xab\x53\xab\x54\xab\x55\xab\x56\xab\x57\xab\x58\xab\x59\xab\x5a\xab\x5b\xab\x5c\xab\x5d\xab\x5e\xab\x5f\xab\x60\xab\x61\xab\x62\xab\x63\xab\x64\xab\x65\xab\x66\xab\x67\xab\x68\xab\x69\xab\x6a\xab\x6b\xab\x6c\xab\x6d\xab\x6e\xab\x6f\xab\x70\xab\x71\xab\x72\xab\x73\xab\x74\xab\x75\xab\x76\xab\x77\xab\x78\xab\x79\xab\x7a\xab\x7b\xab\x7c\xab\x7d\xab\x7e\xab\x7f\x58\xf4\xab\x81\xab\x82\xab\x83\xab\x84\xab\x85\xab\x86\xab\x87\xab\x88\x6a\xe9\xab\x89\xab\x8a\xab\x8b\xab\x8c\xab\x8d\xab\x8e\xab\x8f\xab\x90", /* 7d80 */ "\xab\x91\xab\x92\xab\x93\xab\x94\xab\x95\xab\x96\xab\x97\xab\x98\xab\x99\xab\x9a\xab\x9b\xab\x9c\xab\x9d\xab\x9e\xab\x9f\xab\xa0\xab\xa1\xab\xa2\xab\xa3\xab\xa4\xab\xa5\xab\xa6\xab\xa7\xab\xa8\xab\xa9\xab\xaa\xab\xab\xab\xac\xab\xad\xab\xae\xab\xaf\xab\xb0\xab\xb1\xab\xb2\xab\xb3\xab\xb4\xab\xb5\xab\xb6\x6a\xea\xab\xb7\xab\xb8\xab\xb9\xab\xba\xab\xbb\xab\xbc\xab\xbd\x6a\xeb\xab\xbe\xab\xbf\xab\xc0\xab\xc1\xab\xc2\xab\xc3\xab\xc4\xab\xc5\xab\xc6\xab\xc7\xab\xc8\xab\xc9\xab\xca\xab\xcb\xab\xcc\xab\xcd\xab\xce\xab\xcf\xab\xd0\xab\xd1\xab\xd2\xab\xd3\xab\xd4\xab\xd5\xab\xd6\xab\xd7\xab\xd8\xab\xd9\xab\xda\xab\xdb\xab\xdc\xab\xdd\xab\xde\xab\xdf\xab\xe0\xab\xe1\xab\xe2\xab\xe3\xab\xe4\xab\xe5\xab\xe6\xab\xe7\xab\xe8\xab\xe9\xab\xea\xab\xeb\xab\xec\xab\xed\xab\xee\xab\xef\xab\xf0\xab\xf1\xab\xf2\xab\xf3\xab\xf4\xab\xf5\xab\xf6\xab\xf7\xab\xf8\xab\xf9\xab\xfa\xab\xfb\xab\xfc\xab\xfd\xac\x41\xac\x42\xac\x43\xac\x44\xac\x45\xac\x46\xac\x47\xac\x48\xac\x49\xac\x4a\xac\x4b\xac\x4c\xac\x4d\xac\x4e\xac\x4f\xac\x50\xac\x51", /* 7e00 */ "\xac\x52\xac\x53\xac\x54\xac\x55\xac\x56\xac\x57\xac\x58\xac\x59\xac\x5a\xac\x5b\xac\x5c\xac\x5d\xac\x5e\xac\x5f\xac\x60\xac\x61\xac\x62\xac\x63\xac\x64\xac\x65\xac\x66\xac\x67\xac\x68\xac\x69\xac\x6a\xac\x6b\xac\x6c\xac\x6d\xac\x6e\xac\x6f\xac\x70\xac\x71\xac\x72\xac\x73\xac\x74\xac\x75\xac\x76\xac\x77\xac\x78\xac\x79\xac\x7a\xac\x7b\xac\x7c\xac\x7d\xac\x7e\xac\x7f\xac\x81\xac\x82\xac\x83\xac\x84\xac\x85\xac\x86\xac\x87\xac\x88\xac\x89\xac\x8a\xac\x8b\xac\x8c\xac\x8d\x6c\x84\xac\x8e\xac\x8f\xac\x90\xac\x91\xac\x92\x4c\x51\xac\x93\xac\x94\xac\x95\xac\x96\xac\x97\x6a\xec\xac\x98\xac\x99\xac\x9a\xac\x9b\xac\x9c\xac\x9d\xac\x9e\xac\x9f\xac\xa0\xac\xa1\xac\xa2\xac\xa3\xac\xa4\xac\xa5\xac\xa6\xac\xa7\xac\xa8\xac\xa9\xac\xaa\xac\xab\xac\xac\xac\xad\xac\xae\xac\xaf\xac\xb0\xac\xb1\xac\xb2\xac\xb3\xac\xb4\xac\xb5\xac\xb6\xac\xb7\xac\xb8\xac\xb9\xac\xba\xac\xbb\xac\xbc\xac\xbd\xac\xbe\xac\xbf\xac\xc0\xac\xc1\xac\xc2\xac\xc3\xac\xc4\xac\xc5\xac\xc6\xac\xc7\xac\xc8\xac\xc9\xac\xca\xac\xcb\xac\xcc\xac\xcd\xac\xce\xac\xcf", /* 7e80 */ "\xac\xd0\xac\xd1\x5c\x8c\xac\xd2\xac\xd3\xac\xd4\xac\xd5\xac\xd6\xac\xd7\xac\xd8\xac\xd9\xac\xda\xac\xdb\xac\xdc\xac\xdd\xac\xde\xac\xdf\xac\xe0\xac\xe1\xac\xe2\xac\xe3\xac\xe4\xac\xe5\xac\xe6\xac\xe7\xac\xe8\xac\xe9\x6a\xed\xac\xea\xac\xeb\xac\xec\x63\xf8\x4f\xbf\x63\xf9\x4d\xeb\x63\xfa\x58\x6b\x63\xfb\x5a\xbb\x4e\xb5\x63\xfc\x63\xfd\x4e\xcc\x54\xd1\x57\xb2\x64\x41\xac\xed\x4a\xbe\x64\x42\x55\x54\x4c\xd8\x52\xc8\xac\xee\x5c\x7d\x51\xd9\x4c\x77\x5b\xbc\x57\xc5\x4c\x64\xac\xef\xac\xf0\x53\x46\x64\x43\x58\x7f\x64\x44\x64\x45\x64\x46\x51\x57\x5c\x8a\x55\x91\x58\x58\x5b\xae\x5b\xd4\x64\x47\x48\xec\x64\x48\x64\x49\x55\x7c\x59\xee\x4f\xac\x64\x4a\x48\xf2\x54\xdd\x4f\x82\x64\x4b\x54\xc5\xac\xf1\x64\x4c\x4e\x87\x4c\xf7\x59\x44\x64\x4d\x51\xe6\x4f\xf7\x4f\x6a\x57\x53\x64\x4e\x64\x4f\x4f\xed\x58\xe4\xac\xf2\x56\x88\x56\xcf\x4e\xcb\x64\x50\x4e\xa7\x58\xf6\x64\x51\xac\xf3\x58\xf7\x64\x52\x64\x53\x4a\xc1\x64\x54\x64\x55\x55\x9f\x57\xab\x52\x81\x64\x57\x49\x61\x4a\x92\xac\xf4\x64\x58\x64\x59\x5c\x7b\x5b\x60\x64\x5a\x51\xcb", /* 7f00 */ "\x5c\x5a\x64\x5b\x64\x5c\x64\x5d\x4e\xe9\x52\x86\x50\xc1\x64\x5e\x64\x5f\x4e\xa8\xac\xf5\x64\x60\x64\x61\x64\x56\x4b\xcf\x64\x62\xac\xf6\x64\x63\x64\x64\x4e\x5a\x4b\x7e\x51\xc5\x49\x81\x64\x65\x5a\xb4\x64\x66\x4c\xbe\x64\x68\x64\x67\x4c\x8d\xac\xf7\x64\x69\x49\xf7\x64\x6a\x64\x6b\x64\x6c\x64\x6d\x64\x6e\x64\x6f\x64\x70\x5a\x47\x56\x96\x64\x71\x64\x72\x64\x73\x64\x74\x55\x69\x64\x75\x64\x76\x64\x77\x64\x78\x64\x79\x4f\x69\x64\x7a\x6a\x5e\xac\xf8\x4c\xd6\xac\xf9\x54\xb0\xac\xfa\xac\xfb\xac\xfc\xac\xfd\xad\x41\xad\x42\xad\x43\x6a\x5f\xad\x44\x6a\x60\x6a\x61\xad\x45\xad\x46\xad\x47\xad\x48\xad\x49\xad\x4a\xad\x4b\xad\x4c\xad\x4d\xad\x4e\x4d\x7e\x57\x99\xad\x4f\xad\x50\x5c\xe7\x4d\xb0\xad\x51\x51\xdd\x67\xb6\xad\x52\x4c\x43\xad\x53\xad\x54\xad\x55\xad\x56\x67\xb8\xad\x57\x67\xb7\x48\xd4\xad\x58\xad\x59\xad\x5a\xad\x5b\xad\x5c\x67\xba\x5b\x76\x5c\x90\xad\x5d\xad\x5e\xad\x5f\x5b\xc2\xad\x60\xad\x61\x67\xbc\x55\xef\xad\x62\x67\xbb\xad\x63\xad\x64\xad\x65\xad\x66\x67\xbd\xad\x67\xad\x68\xad\x69\xad\x6a\x67\xbf\xad\x6b", /* 7f80 */ "\xad\x6c\x67\xbe\xad\x6d\xad\x6e\xad\x6f\xad\x70\xad\x71\xad\x72\xad\x73\xad\x74\x59\x93\xad\x75\x54\x5c\xad\x76\x52\x60\xad\x77\xad\x78\xad\x79\xad\x7a\xad\x7b\x4c\xe0\xad\x7c\xad\x7d\xad\x7e\xad\x7f\xad\x81\x51\x88\xad\x82\xad\x83\x6a\xc5\x58\xde\x6a\xc6\xad\x84\x58\x7b\xad\x85\xad\x86\x54\xb9\xad\x87\xad\x88\x6a\xc7\xad\x89\xad\x8a\xad\x8b\xad\x8c\xad\x8d\xad\x8e\xad\x8f\x6a\xc8\x6a\xc9\xad\x90\x6a\xca\xad\x91\xad\x92\xad\x93\xad\x94\xad\x95\x5d\x9b\x4c\xfd\xad\x96\xad\x97\x63\x92\x5a\x91\xad\x98\x6a\xdf\xad\x99\x57\xcb\xad\x9a\xad\x9b\xad\x9c\x4a\x82\xad\x9d\xad\x9e\xad\x9f\xad\xa0\x69\x54\xad\xa1\x59\xed\xad\xa2\x6a\xe0\xad\xa3\xad\xa4\xad\xa5\xad\xa6\xad\xa7\x58\x89\x6a\xe1\xad\xa8\xad\xa9\x54\x6c\xad\xaa\xad\xab\xad\xac\xad\xad\xad\xae\xad\xaf\x4b\x74\x4a\xe3\x6a\xe3\xad\xb0\xad\xb1\xad\xb2\x6a\xe2\x6a\xe4\xad\xb3\xad\xb4\x6a\xe5\xad\xb5\xad\xb6\xad\xb7\xad\xb8\x6a\xe6\xad\xb9\x4d\xb1\x48\xbe\xad\xba\x6a\xe7\xad\xbb\xad\xbc\xad\xbd\xad\xbe\xad\xbf\xad\xc0\xad\xc1\x4c\x4d\x59\xec\xad\xc2\xad\xc3\xad\xc4", /* 8000 */ "\x59\xaa\x50\xce\xad\xc5\x50\x5c\x66\x43\x5b\x7f\x65\xc7\xad\xc6\xad\xc7\xad\xc8\xad\xc9\x69\x94\x4b\xf7\x56\x43\xad\xca\xad\xcb\x52\xcc\xad\xcc\x69\x88\xad\xcd\x69\x89\x4c\xfa\x69\x8a\x4d\xc3\x5a\xc4\x48\xd1\xad\xce\xad\xcf\x69\x8b\xad\xd0\xad\xd1\xad\xd2\x69\x8c\xad\xd3\x69\x8d\xad\xd4\xad\xd5\x69\x8e\x69\x8f\x69\x90\x69\x92\x69\x91\x53\x75\xad\xd6\xad\xd7\xad\xd8\xad\xd9\xad\xda\xad\xdb\x69\x93\xad\xdc\x4b\xf9\xad\xdd\x69\x95\x59\xad\x5f\xc6\x56\x6a\xad\xde\xad\xdf\x4a\x7c\xad\xe0\x4b\x42\xad\xe1\x4d\x42\xad\xe2\xad\xe3\x52\xf3\x69\x96\xad\xe4\xad\xe5\x69\x97\xad\xe6\xad\xe7\xad\xe8\x51\x64\x51\x9c\x5b\xaf\x69\x98\xad\xe9\xad\xea\xad\xeb\xad\xec\x69\x99\xad\xed\x51\x4a\xad\xee\xad\xef\xad\xf0\x53\xb7\xad\xf1\x4f\xda\xad\xf2\xad\xf3\xad\xf4\xad\xf5\xad\xf6\xad\xf7\xad\xf8\xad\xf9\xad\xfa\xad\xfb\xad\xfc\xad\xfd\xae\x41\xae\x42\x69\x9a\x4a\xce\xae\x43\xae\x44\xae\x45\xae\x46\xae\x47\xae\x48\x69\x9b\xae\x49\xae\x4a\xae\x4b\xae\x4c\xae\x4d\xae\x4e\xae\x4f\xae\x50\xae\x51\xae\x52\xae\x53\xae\x54\xae\x55\x67\x52", /* 8080 */ "\x67\x51\xae\x56\xae\x57\x56\x81\x59\xdd\xae\x58\x56\x61\x5b\x78\xae\x59\x54\xe1\xae\x5a\x50\xde\x4e\xa0\xae\x5b\xae\x5c\xae\x5d\xae\x5e\xae\x5f\xae\x60\x66\x61\xae\x61\xae\x62\x58\xa3\xae\x63\x5b\xe1\xae\x64\x4b\xc6\x4c\xd7\x66\x60\x4c\xcd\xae\x65\x66\x5f\x4a\x46\x4d\x69\x5b\xaa\xae\x66\x4c\x95\x4c\x6a\xae\x67\xae\x68\xae\x69\x4e\xe6\x4c\x5e\x66\x66\xae\x6a\x66\x67\x48\xb8\x50\x6f\xae\x6b\x66\x65\x5a\x9e\xae\x6c\x66\x68\xae\x6d\xae\x6e\x66\x69\xae\x6f\xae\x70\x4c\x6e\xae\x71\x66\x62\x66\x64\x55\x97\x5b\xd6\x5b\x6d\x58\xb1\x66\x6f\x57\xb7\x66\x70\xae\x72\x4b\x48\xae\x73\xae\x74\xae\x75\xae\x76\xae\x77\x49\x53\x66\x72\x56\xa4\xae\x78\xae\x79\xae\x7a\xae\x7b\xae\x7c\xae\x7d\xae\x7e\x53\x76\x66\x73\xae\x7f\x66\x71\x53\x7f\x66\x6e\x55\xa3\x66\x75\x48\xfa\xae\x81\xae\x82\x4d\xf9\xae\x83\xae\x84\x5c\xb6\x69\x84\xae\x85\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x76\x63\xbf\x66\x79\xae\x86\x50\x89\x59\xc7\x66\x77\x66\x7c\x4c\xeb\x66\x78\xae\x87\x4f\x5a\xae\x88\x58\xd7\xae\x89\x48\xb6\xae\x8a\x66\x7d\x52\xdb\xae\x8b\xae\x8c", /* 8100 */ "\xae\x8d\xae\x8e\x5b\xab\xae\x8f\xae\x90\xae\x91\x4a\xdf\xae\x92\xae\x93\x51\xf5\x4e\xb8\xae\x94\xae\x95\x66\x7a\x66\x7b\x5a\xdf\x53\xe9\x52\xd3\x66\x7f\x53\x47\x5d\x96\xae\x96\x49\xb0\xae\x97\x66\x85\xae\x98\x4f\x65\xae\x99\xae\x9a\xae\x9b\x66\x83\xae\x9c\xae\x9d\xae\x9e\xae\x9f\xae\xa0\xae\xa1\xae\xa2\xae\xa3\xae\xa4\xae\xa5\xae\xa6\xae\xa7\xae\xa8\x66\x84\xae\xa9\xae\xaa\x4c\xab\xae\xab\x57\x71\x66\x86\xae\xac\xae\xad\xae\xae\x66\x82\xae\xaf\x51\x53\xae\xb0\xae\xb1\xae\xb2\xae\xb3\xae\xb4\x53\xa1\xae\xb5\xae\xb6\xae\xb7\xae\xb8\xae\xb9\xae\xba\xae\xbb\x56\xf2\xae\xbc\x66\x87\xae\xbd\x50\xaf\x59\xb7\x66\x88\xae\xbe\xae\xbf\xae\xc0\x4c\xae\x4c\xac\xae\xc1\x66\x89\x54\x5b\x57\x94\xae\xc2\xae\xc3\xae\xc4\x66\x8b\x66\x8c\xae\xc5\xae\xc6\xae\xc7\xae\xc8\xae\xc9\x66\x8e\xae\xca\xae\xcb\xae\xcc\xae\xcd\x58\xc7\xae\xce\x66\x93\xae\xcf\x66\x8f\xae\xd0\xae\xd1\xae\xd2\x66\x92\x54\xf8\xae\xd3\x59\x9d\x66\x8d\xae\xd4\xae\xd5\x66\x8a\xae\xd6\xae\xd7\xae\xd8\xae\xd9\x4c\xb8\x58\x79\x52\xe4\x66\x90\x66\x91\x56\xd9\x57\x68", /* 8180 */ "\x48\xf1\xae\xda\x66\x97\xae\xdb\xae\xdc\xae\xdd\xae\xde\xae\xdf\x66\x96\xae\xe0\x49\xb1\xae\xe1\xae\xe2\xae\xe3\xae\xe4\x4c\xdf\xae\xe5\x66\x98\xae\xe6\xae\xe7\xae\xe8\xae\xe9\xae\xea\xae\xeb\x49\x8d\xae\xec\xae\xed\x56\xc4\x52\xa3\x58\x45\xae\xee\xae\xef\xae\xf0\xae\xf1\xae\xf2\x66\x9a\xae\xf3\xae\xf4\x66\xa1\xae\xf5\x53\x93\xae\xf6\x66\x9b\xae\xf7\xae\xf8\xae\xf9\xae\xfa\xae\xfb\xae\xfc\xae\xfd\xaf\x41\x55\x65\xaf\x42\xaf\x43\xaf\x44\xaf\x45\xaf\x46\xaf\x47\x61\xde\x66\x9f\xaf\x48\xaf\x49\xaf\x4a\xaf\x4b\x57\x6e\x66\xa0\x49\x7b\x5a\x57\xaf\x4c\xaf\x4d\x59\xdb\xaf\x4e\xaf\x4f\xaf\x50\x66\x9e\xaf\x51\x66\x9c\xaf\x52\xaf\x53\xaf\x54\xaf\x55\xaf\x56\xaf\x57\xaf\x58\xaf\x59\xaf\x5a\xaf\x5b\xaf\x5c\xaf\x5d\xaf\x5e\xaf\x5f\xaf\x60\xaf\x61\xaf\x62\xaf\x63\xaf\x64\xaf\x65\xaf\x66\xaf\x67\x4a\x5c\xaf\x68\xaf\x69\xaf\x6a\x65\xaf\xaf\x6b\xaf\x6c\x5c\x74\xaf\x6d\x6a\xaa\x4a\x95\xaf\x6e\xaf\x6f\xaf\x70\xaf\x71\xaf\x72\x5b\xc0\x5b\xc1\xaf\x73\xaf\x74\xaf\x75\xaf\x76\xaf\x77\xaf\x78\x5b\x8a\x4f\xc9\xaf\x79\x6a\xa6\xaf\x7a", /* 8200 */ "\x59\xa7\x6a\xa7\x6a\xa8\xaf\x7b\x6a\xa9\x4f\xca\x5a\x7f\xaf\x7c\xaf\x7d\xaf\x7e\xaf\x7f\xaf\x81\x55\x81\x55\x82\xaf\x82\xaf\x83\x6a\x62\xaf\x84\x55\xe5\xaf\x85\x56\xf1\xaf\x86\xaf\x87\xaf\x88\xaf\x89\xaf\x8a\xaf\x8b\x61\xb5\x56\x54\xaf\x8c\x57\xe7\x5b\xda\xaf\x8d\x6a\xac\x6a\xad\x6a\xae\xaf\x8e\xaf\x8f\xaf\x90\xaf\x91\x6a\xb1\xaf\x92\x4d\xbc\x6a\xb2\x48\xe2\x6a\xaf\xaf\x93\x6a\xb0\x4f\x42\x49\xd4\xaf\x94\x6a\xb5\x6a\xb6\x4b\xe5\x49\xaf\x58\x6f\x6a\xb3\x4a\xab\xaf\x95\x6a\xb4\xaf\x96\xaf\x97\x6a\xb7\xaf\x98\xaf\x99\xaf\x9a\xaf\x9b\xaf\x9c\x6a\xb8\xaf\x9d\xaf\x9e\x57\x47\xaf\x9f\x6a\xb9\xaf\xa0\x6a\xba\xaf\xa1\xaf\xa2\xaf\xa3\x6a\xbb\xaf\xa4\xaf\xa5\xaf\xa6\xaf\xa7\xaf\xa8\xaf\xa9\xaf\xaa\xaf\xab\x56\x72\xaf\xac\x6a\xbc\xaf\xad\xaf\xae\xaf\xaf\xaf\xb0\x6a\xbd\xaf\xb1\xaf\xb2\xaf\xb3\xaf\xb4\xaf\xb5\xaf\xb6\xaf\xb7\xaf\xb8\x6a\xbe\xaf\xb9\xaf\xba\xaf\xbb\xaf\xbc\xaf\xbd\x6a\xdd\x51\x5c\x4e\xe7\xaf\xbe\x55\x4b\x59\x7e\x63\x96\xaf\xbf\xaf\xc0\xaf\xc1\xaf\xc2\x5e\xb2\x59\xd4\xaf\xc3\xaf\xc4\x5e\xb3\x48\xab\x5e\xb4", /* 8280 */ "\xaf\xc5\xaf\xc6\x4f\x7a\xaf\xc7\x5e\xb8\xaf\xc8\xaf\xc9\xaf\xca\x5c\xc1\xaf\xcb\x5e\xb6\x5a\x94\xaf\xcc\x55\x76\x5e\xb9\x5e\xb5\xaf\xcd\x5e\xba\x52\x42\xaf\xce\xaf\xcf\xaf\xd0\xaf\xd1\x5e\xbb\x5e\xc4\x5e\xbc\xaf\xd2\xaf\xd3\x57\xde\x5b\xa4\xaf\xd4\x5e\xce\xaf\xd5\x5e\xcc\xaf\xd6\xaf\xd7\x5e\xd1\x4f\x87\x51\xaa\xaf\xd8\x5e\xb7\x5e\xca\x5e\xcd\x5e\xbd\x4c\x72\x48\xc4\x5e\xc6\x58\xbd\x5e\xc0\x4e\x48\xaf\xd9\x4c\x5c\x5e\xcb\xaf\xda\xaf\xdb\x5e\xc5\x5e\xbe\x54\x7b\xaf\xdc\xaf\xdd\xaf\xde\x59\x5f\x5e\xbf\xaf\xdf\xaf\xe0\x5e\xc9\xaf\xe1\xaf\xe2\x5e\xcf\xaf\xe3\xaf\xe4\x57\xac\x5e\xc1\xaf\xe5\x5e\xc2\x5e\xc7\x5e\xc8\x49\xd3\x5e\xd0\x56\x75\xaf\xe6\x5a\xb6\x5e\xda\x5e\xde\x56\xa5\x5e\xe5\xaf\xe7\x52\x88\x5e\xdb\xaf\xe8\xaf\xe9\x50\x61\x5e\xd8\xaf\xea\x48\xf9\x4d\x56\x5e\xe4\x5e\xd2\xaf\xeb\x5e\xc3\x5e\xd5\x54\xf3\x50\x81\xaf\xec\xaf\xed\xaf\xee\xaf\xef\x55\x5b\xaf\xf0\xaf\xf1\xaf\xf2\x49\x5d\xaf\xf3\x5a\x42\xaf\xf4\xaf\xf5\x5e\xd9\xaf\xf6\xaf\xf7\x5e\xd4\xaf\xf8\x53\xba\xaf\xf9\x5e\xdd\xaf\xfa\xaf\xfb\xaf\xfc\xaf\xfd", /* 8300 */ "\xb0\x41\x5c\x62\x52\x4f\x4c\x56\x54\x71\x52\x49\x5e\xe1\x5e\xd7\x5e\xea\x5e\xd3\xb0\x42\xb0\x43\x5e\xdc\xb0\x44\x4f\xa4\x5e\xd6\xb0\x45\x5e\xdf\xb0\x46\xb0\x47\x5e\xe2\x5e\xe3\xb0\x48\x5e\xf7\xb0\x49\xb0\x4a\x5e\xe0\x5f\x42\x5e\xe6\xb0\x4b\xb0\x4c\xb0\x4d\xb0\x4e\xb0\x4f\xb0\x50\xb0\x51\xb0\x52\xb0\x53\xb0\x54\x4e\xea\x4a\xc3\xb0\x55\xb0\x56\x52\x43\x49\xe6\x5e\xf9\xb0\x57\x5e\xf1\xb0\x58\x5e\xee\xb0\x59\x5e\xfb\x5e\xed\x59\xef\x49\xe7\xb0\x5a\x54\xd6\x54\xe2\x5e\xfa\xb0\x5b\x5e\xec\xb0\x5c\xb0\x5d\xb0\x5e\x5e\xf6\xb0\x5f\xb0\x60\x5e\xf4\xb0\x61\xb0\x62\x4f\xa2\x5e\xf3\xb0\x63\x49\xdc\xb0\x64\xb0\x65\xb0\x66\xb0\x67\xb0\x68\x5e\xf2\x4e\xf5\x5e\xe7\x4e\x64\xb0\x69\x50\xf2\xb0\x6a\xb0\x6b\xb0\x6c\xb0\x6d\xb0\x6e\x4e\xd3\x5e\xe8\x5e\xe9\xb0\x6f\x5e\xf0\x5e\xf5\x5e\xf8\x4b\x54\xb0\x70\x54\xd8\x4e\x88\x5e\xfd\x5e\xfc\x5a\x4b\x5f\x41\x5f\x43\x5f\x45\x59\xf0\x5f\x44\x5f\x46\x5f\x47\x59\xa8\xb0\x71\xb0\x72\xb0\x73\xb0\x74\xb0\x75\xb0\x76\xb0\x77\x4d\xc8\x5f\x49\xb0\x78\xb0\x79\x5f\x56\x5f\x51\x5f\x54\xb0\x7a\xb0\x7b", /* 8380 */ "\xb0\x7c\xb0\x7d\xb0\x7e\xb0\x7f\xb0\x81\x5f\x50\x53\xcd\xb0\x82\xb0\x83\x50\xf1\xb0\x84\xb0\x85\xb0\x86\xb0\x87\x55\x4f\xb0\x88\xb0\x89\xb0\x8a\x5e\xeb\x5f\x4e\xb0\x8b\xb0\x8c\xb0\x8d\xb0\x8e\x5f\x57\xb0\x8f\xb0\x90\x5e\xef\x5f\x4f\xb0\x91\x5f\x58\xb0\x92\x5f\x4c\xb0\x93\xb0\x94\xb0\x95\xb0\x96\xb0\x97\xb0\x98\xb0\x99\x5f\x59\x5f\x53\x5f\x4d\x52\xa9\xb0\x9a\xb0\x9b\xb0\x9c\xb0\x9d\x5f\x48\x50\xb2\x51\x4b\x5f\x4a\x5f\x4b\xb0\x9e\x5f\x52\x4e\x92\x5f\x55\x5a\x48\x5f\x5a\xb0\x9f\x5f\x5b\x52\x47\xb0\xa0\xb0\xa1\x5f\x72\x5f\x5c\xb0\xa2\xb0\xa3\xb0\xa4\x5f\x71\xb0\xa5\x4d\x5d\xb0\xa6\xb0\xa7\x4f\xd4\xb0\xa8\x4f\xf9\xb0\xa9\xb0\xaa\x4d\xc9\xb0\xab\xb0\xac\xb0\xad\xb0\xae\x5f\x6a\xb0\xaf\x5f\x65\xb0\xb0\x5f\x5f\xb0\xb1\xb0\xb2\xb0\xb3\x49\xca\x5f\x63\xb0\xb4\x5f\x6b\x49\xa3\x5f\x75\xb0\xb5\xb0\xb6\xb0\xb7\x5f\x5e\xb0\xb8\xb0\xb9\xb0\xba\x53\xcf\x5f\x70\xb0\xbb\xb0\xbc\xb0\xbd\xb0\xbe\xb0\xbf\x5f\x74\x51\x83\x4c\x66\xb0\xc0\xb0\xc1\xb0\xc2\xb0\xc3\xb0\xc4\x5f\x6e\x5f\x6f\xb0\xc5\xb0\xc6\xb0\xc7\x5f\x64\xb0\xc8\xb0\xc9", /* 8400 */ "\xb0\xca\x5f\x5d\xb0\xcb\x5f\x6d\x56\xd0\xb0\xcc\x5f\x69\xb0\xcd\xb0\xce\xb0\xcf\xb0\xd0\x5f\x62\x52\x68\x53\xbb\x57\xad\x5f\x6c\xb0\xd1\x5f\x68\xb0\xd2\xb0\xd3\xb0\xd4\xb0\xd5\xb0\xd6\xb0\xd7\x5f\x61\xb0\xd8\xb0\xd9\xb0\xda\x5f\x66\x51\xdb\xb0\xdb\xb0\xdc\xb0\xdd\xb0\xde\xb0\xdf\xb0\xe0\x5a\x49\x5a\x4a\x5f\x73\x58\x95\x54\xf7\xb0\xe1\xb0\xe2\xb0\xe3\xb0\xe4\xb0\xe5\xb0\xe6\xb0\xe7\xb0\xe8\x5f\x87\xb0\xe9\xb0\xea\xb0\xeb\xb0\xec\xb0\xed\xb0\xee\x5f\x67\xb0\xef\xb0\xf0\xb0\xf1\x5f\x81\x51\xe3\xb0\xf2\xb0\xf3\xb0\xf4\xb0\xf5\xb0\xf6\xb0\xf7\xb0\xf8\xb0\xf9\x5f\x82\xb0\xfa\xb0\xfb\xb0\xfc\xb0\xfd\xb1\x41\xb1\x42\xb1\x43\xb1\x44\xb1\x45\xb1\x46\x5f\x77\xb1\x47\xb1\x48\xb1\x49\xb1\x4a\xb1\x4b\x5b\xf7\xb1\x4c\x5f\x79\x5f\x78\x4c\xef\x5f\x76\xb1\x4d\xb1\x4e\xb1\x4f\xb1\x50\x53\xce\xb1\x51\x4b\xac\xb1\x52\xb1\x53\xb1\x54\xb1\x55\xb1\x56\x5f\x83\xb1\x57\x4d\xf8\x5a\xe0\x5f\x88\xb1\x58\xb1\x59\xb1\x5a\x4a\xcf\xb1\x5b\x5f\x7a\xb1\x5c\x50\x9c\x5f\x84\xb1\x5d\x5f\x7f\xb1\x5e\x5f\x7d\xb1\x5f\xb1\x60\xb1\x61\xb1\x62\xb1\x63", /* 8480 */ "\xb1\x64\xb1\x65\x4b\x79\xb1\x66\xb1\x67\xb1\x68\xb1\x69\x5f\x7b\x5f\x7c\x5f\x7e\xb1\x6a\x4f\x4f\x5f\x85\xb1\x6b\x5f\x86\xb1\x6c\xb1\x6d\xb1\x6e\xb1\x6f\xb1\x70\xb1\x71\xb1\x72\xb1\x73\x5f\x96\xb1\x74\x52\x69\xb1\x75\xb1\x76\x56\x83\xb1\x77\xb1\x78\xb1\x79\xb1\x7a\x5f\x93\xb1\x7b\xb1\x7c\xb1\x7d\xb1\x7e\xb1\x7f\xb1\x81\xb1\x82\xb1\x83\xb1\x84\xb1\x85\xb1\x86\xb1\x87\xb1\x88\x5c\xe0\xb1\x89\xb1\x8a\x53\xd0\xb1\x8b\x5f\x95\xb1\x8c\xb1\x8d\xb1\x8e\x5b\x95\x5f\x94\x5f\x91\xb1\x8f\xb1\x90\x5f\x8d\xb1\x91\x5f\x90\xb1\x92\x5f\x89\xb1\x93\xb1\x94\x58\xed\xb1\x95\xb1\x96\xb1\x97\xb1\x98\x54\xd7\x5f\x8f\xb1\x99\xb1\x9a\x5f\x8a\xb1\x9b\xb1\x9c\x5f\x8b\x56\x93\xb1\x9d\x5f\x8e\xb1\x9e\xb1\x9f\x49\x6d\xb1\xa0\xb1\xa1\xb1\xa2\xb1\xa3\xb1\xa4\xb1\xa5\x50\xb5\xb1\xa6\x4e\xba\x5f\x92\xb1\xa7\xb1\xa8\x5f\x98\xb1\xa9\x5f\x97\x5f\x8c\xb1\xaa\xb1\xab\xb1\xac\xb1\xad\xb1\xae\x53\x8f\xb1\xaf\xb1\xb0\xb1\xb1\x5f\x9c\xb1\xb2\xb1\xb3\xb1\xb4\xb1\xb5\xb1\xb6\xb1\xb7\xb1\xb8\xb1\xb9\xb1\xba\xb1\xbb\xb1\xbc\x5f\xa3\xb1\xbd\xb1\xbe\x5f\xa2", /* 8500 */ "\xb1\xbf\xb1\xc0\xb1\xc1\xb1\xc2\xb1\xc3\xb1\xc4\xb1\xc5\xb1\xc6\xb1\xc7\xb1\xc8\xb1\xc9\xb1\xca\x5f\x99\xb1\xcb\xb1\xcc\xb1\xcd\xb1\xce\x52\x90\xb1\xcf\x51\xfa\xb1\xd0\xb1\xd1\xb1\xd2\x5b\x82\xb1\xd3\xb1\xd4\x57\xb4\xb1\xd5\xb1\xd6\xb1\xd7\xb1\xd8\x5f\x9e\xb1\xd9\x49\xcb\xb1\xda\xb1\xdb\xb1\xdc\xb1\xdd\xb1\xde\xb1\xdf\xb1\xe0\xb1\xe1\xb1\xe2\x52\xe7\x55\xde\xb1\xe3\xb1\xe4\xb1\xe5\xb1\xe6\xb1\xe7\xb1\xe8\xb1\xe9\xb1\xea\xb1\xeb\xb1\xec\x54\x5e\x5f\x9b\x5f\x9d\x5f\x9f\x5f\xa1\x48\xa9\x49\x6e\xb1\xed\xb1\xee\xb1\xef\xb1\xf0\xb1\xf1\x5f\xab\xb1\xf2\xb1\xf3\xb1\xf4\xb1\xf5\x5f\xa5\x4f\x56\x54\xee\xb1\xf6\xb1\xf7\xb1\xf8\xb1\xf9\xb1\xfa\xb1\xfb\xb1\xfc\xb1\xfd\xb2\x41\xb2\x42\xb2\x43\x5f\xa0\xb2\x44\xb2\x45\x5f\xa4\xb2\x46\xb2\x47\xb2\x48\xb2\x49\x5f\xa8\xb2\x4a\xb2\x4b\xb2\x4c\xb2\x4d\xb2\x4e\x5f\xa7\xb2\x4f\xb2\x50\xb2\x51\x5f\xa6\xb2\x52\xb2\x53\xb2\x54\xb2\x55\xb2\x56\xb2\x57\xb2\x58\xb2\x59\xb2\x5a\x5f\xac\xb2\x5b\x5a\xcb\xb2\x5c\xb2\x5d\xb2\x5e\xb2\x5f\x5f\xb2\x5f\xa9\x5f\xad\xb2\x60\xb2\x61\x50\xd8\xb2\x62", /* 8580 */ "\xb2\x63\xb2\x64\xb2\x65\xb2\x66\x49\x41\x5f\xb5\xb2\x67\x5f\xb0\xb2\x68\xb2\x69\xb2\x6a\xb2\x6b\xb2\x6c\xb2\x6d\xb2\x6e\x5f\xb1\xb2\x6f\xb2\x70\xb2\x71\xb2\x72\xb2\x73\xb2\x74\xb2\x75\xb2\x76\xb2\x77\xb2\x78\xb2\x79\x59\x46\x5f\xb4\xb2\x7a\xb2\x7b\xb2\x7c\xb2\x7d\xb2\x7e\xb2\x7f\xb2\x81\x5f\xae\xb2\x82\xb2\x83\xb2\x84\x5f\xaf\xb2\x85\x58\xbc\xb2\x86\xb2\x87\xb2\x88\x5f\xb3\x55\xec\x5f\xb8\xb2\x89\xb2\x8a\xb2\x8b\xb2\x8c\xb2\x8d\xb2\x8e\x5f\xb7\xb2\x8f\x5f\xb6\xb2\x90\xb2\x91\xb2\x92\xb2\x93\xb2\x94\xb2\x95\xb2\x96\x5f\xba\xb2\x97\xb2\x98\xb2\x99\xb2\x9a\xb2\x9b\xb2\x9c\xb2\x9d\x4f\x86\xb2\x9e\xb2\x9f\xb2\xa0\xb2\xa1\xb2\xa2\x49\xd7\x52\x8b\xb2\xa3\xb2\xa4\x5f\xb9\xb2\xa5\x53\x5a\xb2\xa6\xb2\xa7\xb2\xa8\xb2\xa9\xb2\xaa\xb2\xab\x5f\xbb\xb2\xac\xb2\xad\xb2\xae\xb2\xaf\xb2\xb0\xb2\xb1\xb2\xb2\x56\xd8\xb2\xb3\xb2\xb4\xb2\xb5\xb2\xb6\x4c\x4a\xb2\xb7\xb2\xb8\xb2\xb9\xb2\xba\xb2\xbb\xb2\xbc\xb2\xbd\xb2\xbe\xb2\xbf\xb2\xc0\xb2\xc1\xb2\xc2\xb2\xc3\xb2\xc4\xb2\xc5\xb2\xc6\xb2\xc7\x5a\xe4\xb2\xc8\xb2\xc9\xb2\xca\x5f\xbc", /* 8600 */ "\xb2\xcb\xb2\xcc\xb2\xcd\xb2\xce\xb2\xcf\x5f\xbe\xb2\xd0\xb2\xd1\xb2\xd2\xb2\xd3\xb2\xd4\xb2\xd5\xb2\xd6\xb2\xd7\xb2\xd8\xb2\xd9\xb2\xda\x52\xa1\xb2\xdb\xb2\xdc\xb2\xdd\xb2\xde\x5f\xc0\xb2\xdf\xb2\xe0\xb2\xe1\xb2\xe2\xb2\xe3\xb2\xe4\xb2\xe5\xb2\xe6\xb2\xe7\xb2\xe8\xb2\xe9\xb2\xea\xb2\xeb\xb2\xec\xb2\xed\xb2\xee\x5f\xbd\xb2\xef\x5f\xbf\xb2\xf0\xb2\xf1\xb2\xf2\xb2\xf3\xb2\xf4\xb2\xf5\xb2\xf6\xb2\xf7\xb2\xf8\xb2\xf9\xb2\xfa\xb2\xfb\xb2\xfc\xb2\xfd\x5b\x5a\xb3\x41\xb3\x42\xb3\x43\x5f\xc1\xb3\x44\xb3\x45\xb3\x46\xb3\x47\xb3\x48\xb3\x49\xb3\x4a\xb3\x4b\xb3\x4c\xb3\x4d\xb3\x4e\xb3\x4f\xb3\x50\xb3\x51\xb3\x52\xb3\x53\x69\xad\x4e\x42\x51\xb1\x53\x50\x51\xc6\xb3\x54\xb3\x55\x69\xae\xb3\x56\xb3\x57\xb3\x58\xb3\x59\xb3\x5a\x58\xe8\xb3\x5b\xb3\x5c\xb3\x5d\x5a\x7d\xb3\x5e\xb3\x5f\xb3\x60\x66\x5d\xb3\x61\xb3\x62\xb3\x63\xb3\x64\xb3\x65\xb3\x66\xb3\x67\xb3\x68\x4a\x87\x69\xaf\xb3\x69\x69\xb0\xb3\x6a\xb3\x6b\x55\xac\xb3\x6c\xb3\x6d\xb3\x6e\xb3\x6f\xb3\x70\xb3\x71\xb3\x72\x4d\xe6\x69\xb2\x69\xb4\x69\xb3\x56\x85\x58\x5a\x69\xb1", /* 8680 */ "\x55\xb3\x59\xce\x51\xeb\xb3\x73\xb3\x74\xb3\x75\xb3\x76\xb3\x77\xb3\x78\xb3\x79\x57\xc2\x69\xb7\x48\xf5\x69\xb6\xb3\x7a\xb3\x7b\xb3\x7c\xb3\x7d\xb3\x7e\x69\xbd\xb3\x7f\x49\xce\xb3\x81\xb3\x82\xb3\x83\xb3\x84\xb3\x85\xb3\x86\x59\x61\x69\xb9\xb3\x87\xb3\x88\xb3\x89\xb3\x8a\xb3\x8b\x69\xbb\x5a\xe8\xb3\x8c\xb3\x8d\x69\xba\x69\xb5\x69\xbe\x69\xbc\xb3\x8e\x69\xb8\xb3\x8f\xb3\x90\x69\xc6\x69\xc3\x69\xc5\xb3\x91\xb3\x92\x69\xc9\x69\xc1\x69\xbf\xb3\x93\xb3\x94\xb3\x95\x69\xc4\xb3\x96\xb3\x97\xb3\x98\xb3\x99\xb3\x9a\x5b\xfa\xb3\x9b\xb3\x9c\xb3\x9d\x69\xc0\xb3\x9e\x54\x9a\x55\x7f\xb3\x9f\x69\xc7\x4d\x66\x4b\x50\xb3\xa0\xb3\xa1\x69\xc2\x69\xc8\x69\xcf\x69\xd5\xb3\xa2\xb3\xa3\x4e\x77\xb3\xa4\xb3\xa5\xb3\xa6\x69\xd4\x57\x7c\xb3\xa7\x5b\xea\xb3\xa8\xb3\xa9\x69\xd1\x69\xd3\xb3\xaa\xb3\xab\xb3\xac\xb3\xad\x4c\xf1\xb3\xae\xb3\xaf\xb3\xb0\xb3\xb1\x69\xca\xb3\xb2\xb3\xb3\xb3\xb4\x69\xcd\x51\xf8\xb3\xb5\x5b\x7d\x69\xcb\x69\xcc\x69\xce\x69\xd2\xb3\xb6\xb3\xb7\xb3\xb8\x69\xd8\x5a\x5c\xb3\xb9\xb3\xba\xb3\xbb\xb3\xbc\x4b\xe9\xb3\xbd", /* 8700 */ "\x55\xf0\xb3\xbe\x4c\x85\x69\xd6\xb3\xbf\xb3\xc0\xb3\xc1\x69\xd7\x69\xd9\x69\xdc\x69\xda\xb3\xc2\xb3\xc3\x69\xdb\xb3\xc4\xb3\xc5\xb3\xc6\xb3\xc7\x59\x71\x69\xd0\xb3\xc8\x57\x69\xb3\xc9\x57\xce\x5b\xa8\xb3\xca\x69\xe2\xb3\xcb\x52\x7b\xb3\xcc\x69\xdf\xb3\xcd\xb3\xce\x50\xae\x69\xeb\x69\xdd\xb3\xcf\x69\xe0\xb3\xd0\xb3\xd1\xb3\xd2\x69\xe7\xb3\xd3\xb3\xd4\xb3\xd5\xb3\xd6\x69\xe1\xb3\xd7\xb3\xd8\x69\xe6\xb3\xd9\xb3\xda\x69\xe5\xb3\xdb\xb3\xdc\x69\xe8\xb3\xdd\xb3\xde\xb3\xdf\x69\xde\xb3\xe0\xb3\xe1\x69\xe3\x69\xe9\xb3\xe2\xb3\xe3\xb3\xe4\xb3\xe5\xb3\xe6\xb3\xe7\xb3\xe8\x5a\x4c\x69\xe4\x49\xf4\xb3\xe9\xb3\xea\x69\xf1\xb3\xeb\x58\xaa\xb3\xec\xb3\xed\xb3\xee\xb3\xef\x69\xf4\xb3\xf0\xb3\xf1\xb3\xf2\x4e\x68\xb3\xf3\x69\xf8\xb3\xf4\xb3\xf5\xb3\xf6\xb3\xf7\xb3\xf8\xb3\xf9\x69\xef\xb3\xfa\xb3\xfb\x69\xf5\x69\xf7\x69\xf9\xb3\xfc\xb3\xfd\xb4\x41\xb4\x42\xb4\x43\xb4\x44\xb4\x45\xb4\x46\x69\xf2\xb4\x47\x69\xf0\xb4\x48\xb4\x49\xb4\x4a\x4d\xfa\xb4\x4b\x4b\x9c\xb4\x4c\xb4\x4d\xb4\x4e\xb4\x4f\x69\xee\x69\xf6\x69\xec\x69\xed\xb4\x50", /* 8780 */ "\xb4\x51\xb4\x52\x69\xea\x6a\x46\xb4\x53\x6a\x43\xb4\x54\xb4\x55\x6a\x42\xb4\x56\xb4\x57\x69\xf3\xb4\x58\x54\xd9\xb4\x59\xb4\x5a\xb4\x5b\xb4\x5c\xb4\x5d\x69\xfa\xb4\x5e\xb4\x5f\xb4\x60\x6a\x45\xb4\x61\xb4\x62\xb4\x63\xb4\x64\xb4\x65\xb4\x66\xb4\x67\x52\x99\xb4\x68\xb4\x69\xb4\x6a\xb4\x6b\xb4\x6c\xb4\x6d\xb4\x6e\xb4\x6f\x69\xfc\xb4\x70\xb4\x71\x6a\x47\x6a\x49\x6a\x44\xb4\x72\x69\xfb\xb4\x73\xb4\x74\xb4\x75\x6a\x4b\xb4\x76\x6a\x4a\xb4\x77\xb4\x78\xb4\x79\xb4\x7a\x51\xdc\xb4\x7b\xb4\x7c\x6a\x4e\xb4\x7d\xb4\x7e\x6a\x50\xb4\x7f\xb4\x81\xb4\x82\xb4\x83\xb4\x84\x6a\x41\xb4\x85\xb4\x86\xb4\x87\x6a\x51\x6a\x4c\xb4\x88\xb4\x89\xb4\x8a\xb4\x8b\xb4\x8c\x6a\x4f\x69\xfd\x6a\x4d\xb4\x8d\xb4\x8e\xb4\x8f\xb4\x90\xb4\x91\xb4\x92\xb4\x93\x6a\x52\xb4\x94\xb4\x95\xb4\x96\xb4\x97\x6a\x54\xb4\x98\xb4\x99\xb4\x9a\xb4\x9b\x6a\x48\xb4\x9c\xb4\x9d\xb4\x9e\xb4\x9f\x6a\x53\xb4\xa0\xb4\xa1\xb4\xa2\x6a\x55\xb4\xa3\xb4\xa4\xb4\xa5\xb4\xa6\xb4\xa7\xb4\xa8\xb4\xa9\xb4\xaa\xb4\xab\xb4\xac\x58\xb6\xb4\xad\xb4\xae\xb4\xaf\xb4\xb0\x6a\x58\xb4\xb1", /* 8800 */ "\xb4\xb2\xb4\xb3\xb4\xb4\x5d\x9a\xb4\xb5\xb4\xb6\xb4\xb7\xb4\xb8\xb4\xb9\xb4\xba\x6a\x59\xb4\xbb\xb4\xbc\xb4\xbd\xb4\xbe\xb4\xbf\xb4\xc0\xb4\xc1\xb4\xc2\x6a\x57\xb4\xc3\x54\xe3\x6a\x56\xb4\xc4\xb4\xc5\xb4\xc6\xb4\xc7\x6a\x5a\xb4\xc8\xb4\xc9\xb4\xca\xb4\xcb\xb4\xcc\x6a\x5b\x4a\xbf\xb4\xcd\xb4\xce\xb4\xcf\xb4\xd0\xb4\xd1\xb4\xd2\xb4\xd3\xb4\xd4\xb4\xd5\xb4\xd6\xb4\xd7\xb4\xd8\xb4\xd9\xb4\xda\xb4\xdb\x67\xc2\xb4\xdc\xb4\xdd\xb4\xde\xb4\xdf\xb4\xe0\xb4\xe1\x6a\x5c\xb4\xe2\xb4\xe3\x6a\x5d\xb4\xe4\xb4\xe5\xb4\xe6\x59\x4a\xb4\xe7\xb4\xe8\xb4\xe9\x6a\xab\x58\xc5\xb4\xea\xb4\xeb\xb4\xec\xb4\xed\xb4\xee\xb4\xef\x58\xcf\x59\x7c\xb4\xf0\xb4\xf1\xb4\xf2\xb4\xf3\xb4\xf4\xb4\xf5\x58\x6e\xb4\xf6\xb4\xf7\x4f\x76\xb4\xf8\x59\x63\xb4\xf9\xb4\xfa\xb4\xfb\xb4\xfc\xb4\xfd\xb5\x41\xb5\x42\x4d\xe1\x61\x8a\x59\xc1\x69\x62\x49\xb8\xb5\x43\xb5\x44\x49\x8e\x69\x63\xb5\x45\x55\x60\x4a\x64\xb5\x46\x5d\x93\xb5\x47\x56\x45\xb5\x48\x69\x64\xb5\x49\xb5\x4a\xb5\x4b\xb5\x4c\x5b\xd3\xb5\x4d\xb5\x4e\xb5\x4f\xb5\x50\xb5\x51\x69\x65\x6a\xbf\x69\x66", /* 8880 */ "\xb5\x52\x5a\xab\x69\x67\xb5\x53\x48\xbf\x6a\xc0\xb5\x54\xb5\x55\x6a\xc1\xb5\x56\xb5\x57\x4a\xfb\xb5\x58\x53\x7b\xb5\x59\xb5\x5a\xb5\x5b\xb5\x5c\x56\xba\xb5\x5d\xb5\x5e\xb5\x5f\x58\xe3\xb5\x60\xb5\x61\xb5\x62\xb5\x63\xb5\x64\x57\x81\xb5\x65\xb5\x66\xb5\x67\xb5\x68\xb5\x69\x69\x68\xb5\x6a\x5d\x94\xb5\x6b\xb5\x6c\xb5\x6d\xb5\x6e\xb5\x6f\xb5\x70\x49\x5b\xb5\x71\x58\x4e\xb5\x72\xb5\x73\xb5\x74\x4c\xa3\xb5\x75\xb5\x76\xb5\x77\xb5\x78\xb5\x79\x69\x6a\xb5\x7a\xb5\x7b\xb5\x7c\xb5\x7d\x69\x6b\xb5\x7e\xb5\x7f\xb5\x81\xb5\x82\x49\xc2\x51\x71\xb5\x83\xb5\x84\x5c\x50\x69\x69\xb5\x85\xb5\x86\x69\x6c\xb5\x87\xb5\x88\xb5\x89\xb5\x8a\x69\x6e\xb5\x8b\xb5\x8c\xb5\x8d\x5d\x97\xb5\x8e\x59\xe0\x5a\xa2\xb5\x8f\xb5\x90\x6a\xc2\x54\xb8\xb5\x91\xb5\x92\xb5\x93\xb5\x94\xb5\x95\x6a\xc3\xb5\x96\xb5\x97\x69\x6d\x69\x6f\x50\x84\x69\x70\xb5\x98\xb5\x99\x69\x74\xb5\x9a\xb5\x9b\xb5\x9c\xb5\x9d\xb5\x9e\xb5\x9f\xb5\xa0\x69\x76\x69\x71\xb5\xa1\x55\x71\x53\x82\xb5\xa2\xb5\xa3\xb5\xa4\x51\xe2\x4d\x9d\xb5\xa5\xb5\xa6\x69\x73\xb5\xa7\x69\x75\xb5\xa8", /* 8900 */ "\xb5\xa9\xb5\xaa\x4d\x73\xb5\xab\xb5\xac\xb5\xad\xb5\xae\xb5\xaf\xb5\xb0\xb5\xb1\x69\x7b\xb5\xb2\xb5\xb3\xb5\xb4\xb5\xb5\xb5\xb6\x4d\xd5\xb5\xb7\x48\xfc\x69\x79\xb5\xb8\xb5\xb9\xb5\xba\xb5\xbb\xb5\xbc\x69\x78\x69\x72\x69\x7a\xb5\xbd\xb5\xbe\xb5\xbf\xb5\xc0\xb5\xc1\x69\x77\xb5\xc2\xb5\xc3\xb5\xc4\x54\xeb\xb5\xc5\xb5\xc6\xb5\xc7\xb5\xc8\x57\x6a\x69\x7d\xb5\xc9\xb5\xca\xb5\xcb\xb5\xcc\x63\x5d\xb5\xcd\xb5\xce\xb5\xcf\x69\x7c\xb5\xd0\x69\x7e\xb5\xd1\xb5\xd2\xb5\xd3\xb5\xd4\xb5\xd5\xb5\xd6\xb5\xd7\xb5\xd8\xb5\xd9\xb5\xda\x69\x7f\xb5\xdb\xb5\xdc\x58\x86\xb5\xdd\xb5\xde\xb5\xdf\xb5\xe0\xb5\xe1\xb5\xe2\xb5\xe3\xb5\xe4\xb5\xe5\xb5\xe6\xb5\xe7\xb5\xe8\xb5\xe9\xb5\xea\xb5\xeb\xb5\xec\xb5\xed\xb5\xee\xb5\xef\xb5\xf0\xb5\xf1\xb5\xf2\xb5\xf3\xb5\xf4\xb5\xf5\x6a\xc4\x4f\x94\xb5\xf6\xb5\xf7\xb5\xf8\xb5\xf9\xb5\xfa\xb5\xfb\x69\x81\xb5\xfc\xb5\xfd\xb6\x41\xb6\x42\xb6\x43\xb6\x44\xb6\x45\xb6\x46\xb6\x47\xb6\x48\xb6\x49\xb6\x4a\xb6\x4b\xb6\x4c\xb6\x4d\xb6\x4e\xb6\x4f\xb6\x50\xb6\x51\xb6\x52\x69\x82\xb6\x53\xb6\x54\xb6\x55\x57\xf6", /* 8980 */ "\xb6\x56\x59\xa9\xb6\x57\x69\x9c\xb6\x58\xb6\x59\x4c\xb1\xb6\x5a\xb6\x5b\xb6\x5c\xb6\x5d\xb6\x5e\xb6\x5f\xb6\x60\xb6\x61\xb6\x62\xb6\x63\xb6\x64\xb6\x65\xb6\x66\xb6\x67\xb6\x68\xb6\x69\xb6\x6a\xb6\x6b\xb6\x6c\xb6\x6d\xb6\x6e\xb6\x6f\xb6\x70\xb6\x71\xb6\x72\xb6\x73\xb6\x74\xb6\x75\xb6\x76\xb6\x77\xb6\x78\xb6\x79\xb6\x7a\xb6\x7b\xb6\x7c\xb6\x7d\xb6\x7e\xb6\x7f\xb6\x81\xb6\x82\xb6\x83\xb6\x84\xb6\x85\xb6\x86\xb6\x87\xb6\x88\xb6\x89\xb6\x8a\xb6\x8b\xb6\x8c\xb6\x8d\xb6\x8e\xb6\x8f\xb6\x90\xb6\x91\xb6\x92\xb6\x93\xb6\x94\x4e\xfa\x4d\x7b\xb6\x95\x4d\x87\x52\x79\x55\xd2\x65\xe7\x50\xbf\x4f\xf4\x65\xe8\x65\xe9\x65\xea\xb6\x96\x65\xeb\x65\xec\x65\xed\x65\xee\x4f\x67\xb6\x97\xb6\x98\xb6\x99\x6b\x9c\xb6\x9a\xb6\x9b\xb6\x9c\x6b\x9e\xb6\x9d\x6b\x9f\xb6\x9e\x6b\x9d\xb6\x9f\xb6\xa0\xb6\xa1\xb6\xa2\x4f\x83\xb6\xa3\x6b\xa0\x4a\xa4\xb6\xa4\xb6\xa5\xb6\xa6\xb6\xa7\x6b\xa1\xb6\xa8\xb6\xa9\xb6\xaa\x6b\xa2\xb6\xab\xb6\xac\xb6\xad\x66\xb1\xb6\xae\xb6\xaf\xb6\xb0\xb6\xb1\xb6\xb2\xb6\xb3\xb6\xb4\xb6\xb5\xb6\xb6\xb6\xb7\xb6\xb8\xb6\xb9", /* 8a00 */ "\x59\x74\xb6\xba\xb6\xbb\xb6\xbc\xb6\xbd\xb6\xbe\xb6\xbf\x5d\x8b\xb6\xc0\xb6\xc1\xb6\xc2\xb6\xc3\xb6\xc4\xb6\xc5\xb6\xc6\xb6\xc7\xb6\xc8\xb6\xc9\xb6\xca\xb6\xcb\xb6\xcc\xb6\xcd\xb6\xce\xb6\xcf\xb6\xd0\xb6\xd1\xb6\xd2\xb6\xd3\xb6\xd4\xb6\xd5\xb6\xd6\xb6\xd7\xb6\xd8\xb6\xd9\xb6\xda\xb6\xdb\xb6\xdc\xb6\xdd\xb6\xde\xb6\xdf\xb6\xe0\xb6\xe1\xb6\xe2\xb6\xe3\xb6\xe4\xb6\xe5\xb6\xe6\xb6\xe7\xb6\xe8\xb6\xe9\xb6\xea\xb6\xeb\xb6\xec\xb6\xed\xb6\xee\xb6\xef\xb6\xf0\xb6\xf1\xb6\xf2\xb6\xf3\xb6\xf4\xb6\xf5\x6b\xa3\xb6\xf6\xb6\xf7\xb6\xf8\xb6\xf9\xb6\xfa\xb6\xfb\xb6\xfc\xb6\xfd\xb7\x41\x67\xb9\xb7\x42\xb7\x43\xb7\x44\xb7\x45\xb7\x46\xb7\x47\xb7\x48\xb7\x49\xb7\x4a\xb7\x4b\xb7\x4c\xb7\x4d\xb7\x4e\xb7\x4f\xb7\x50\xb7\x51\xb7\x52\xb7\x53\xb7\x54\xb7\x55\xb7\x56\xb7\x57\xb7\x58\xb7\x59\xb7\x5a\xb7\x5b\xb7\x5c\xb7\x5d\xb7\x5e\xb7\x5f\xb7\x60\xb7\x61\xb7\x62\xb7\x63\xb7\x64\xb7\x65\xb7\x66\xb7\x67\xb7\x68\xb7\x69\xb7\x6a\xb7\x6b\xb7\x6c\xb7\x6d\xb7\x6e\xb7\x6f\xb7\x70\xb7\x71\x5b\x52\xb7\x72\xb7\x73\xb7\x74\xb7\x75\xb7\x76\xb7\x77", /* 8a80 */ "\xb7\x78\xb7\x79\xb7\x7a\xb7\x7b\xb7\x7c\xb7\x7d\xb7\x7e\xb7\x7f\xb7\x81\x5a\x9f\x56\xdb\xb7\x82\xb7\x83\xb7\x84\xb7\x85\xb7\x86\xb7\x87\xb7\x88\xb7\x89\x55\xc3\xb7\x8a\xb7\x8b\xb7\x8c\xb7\x8d\xb7\x8e\xb7\x8f\xb7\x90\xb7\x91\xb7\x92\xb7\x93\xb7\x94\xb7\x95\xb7\x96\xb7\x97\xb7\x98\xb7\x99\xb7\x9a\xb7\x9b\xb7\x9c\xb7\x9d\xb7\x9e\xb7\x9f\xb7\xa0\xb7\xa1\xb7\xa2\xb7\xa3\xb7\xa4\xb7\xa5\xb7\xa6\xb7\xa7\xb7\xa8\xb7\xa9\xb7\xaa\xb7\xab\xb7\xac\xb7\xad\xb7\xae\xb7\xaf\xb7\xb0\xb7\xb1\xb7\xb2\xb7\xb3\xb7\xb4\xb7\xb5\xb7\xb6\xb7\xb7\xb7\xb8\xb7\xb9\xb7\xba\xb7\xbb\xb7\xbc\xb7\xbd\xb7\xbe\xb7\xbf\xb7\xc0\xb7\xc1\xb7\xc2\xb7\xc3\xb7\xc4\xb7\xc5\xb7\xc6\xb7\xc7\xb7\xc8\xb7\xc9\xb7\xca\xb7\xcb\xb7\xcc\xb7\xcd\xb7\xce\xb7\xcf\xb7\xd0\xb7\xd1\xb7\xd2\xb7\xd3\xb7\xd4\xb7\xd5\xb7\xd6\xb7\xd7\xb7\xd8\xb7\xd9\xb7\xda\xb7\xdb\xb7\xdc\xb7\xdd\xb7\xde\xb7\xdf\xb7\xe0\xb7\xe1\xb7\xe2\xb7\xe3\xb7\xe4\xb7\xe5\xb7\xe6\xb7\xe7\xb7\xe8\xb7\xe9\xb7\xea\xb7\xeb\xb7\xec\xb7\xed\xb7\xee\xb7\xef\xb7\xf0\xb7\xf1\xb7\xf2\xb7\xf3\xb7\xf4\xb7\xf5", /* 8b00 */ "\xb7\xf6\xb7\xf7\xb7\xf8\xb7\xf9\xb7\xfa\xb7\xfb\xb7\xfc\x63\x60\xb7\xfd\xb8\x41\xb8\x42\xb8\x43\xb8\x44\xb8\x45\xb8\x46\xb8\x47\xb8\x48\xb8\x49\xb8\x4a\xb8\x4b\xb8\x4c\xb8\x4d\xb8\x4e\xb8\x4f\xb8\x50\xb8\x51\xb8\x52\xb8\x53\xb8\x54\xb8\x55\xb8\x56\xb8\x57\xb8\x58\xb8\x59\xb8\x5a\xb8\x5b\xb8\x5c\xb8\x5d\x6b\xa4\xb8\x5e\xb8\x5f\xb8\x60\xb8\x61\xb8\x62\xb8\x63\xb8\x64\xb8\x65\xb8\x66\xb8\x67\xb8\x68\xb8\x69\xb8\x6a\xb8\x6b\xb8\x6c\xb8\x6d\xb8\x6e\xb8\x6f\xb8\x70\xb8\x71\xb8\x72\xb8\x73\xb8\x74\xb8\x75\xb8\x76\xb8\x77\xb8\x78\xb8\x79\xb8\x7a\xb8\x7b\xb8\x7c\xb8\x7d\xb8\x7e\xb8\x7f\xb8\x81\xb8\x82\xb8\x83\xb8\x84\xb8\x85\xb8\x86\xb8\x87\xb8\x88\xb8\x89\xb8\x8a\xb8\x8b\xb8\x8c\xb8\x8d\xb8\x8e\xb8\x8f\xb8\x90\xb8\x91\xb8\x92\xb8\x93\xb8\x94\xb8\x95\xb8\x96\xb8\x97\xb8\x98\xb8\x99\xb8\x9a\xb8\x9b\xb8\x9c\xb8\x9d\x4f\xae\xb8\x9e\xb8\x9f\xb8\xa0\xb8\xa1\xb8\xa2\x53\xa8\xb8\xa3\xb8\xa4\xb8\xa5\xb8\xa6\xb8\xa7\xb8\xa8\xb8\xa9\xb8\xaa\xb8\xab\xb8\xac\xb8\xad\xb8\xae\xb8\xaf\xb8\xb0\xb8\xb1\xb8\xb2\xb8\xb3\xb8\xb4\xb8\xb5", /* 8b80 */ "\xb8\xb6\xb8\xb7\xb8\xb8\xb8\xb9\xb8\xba\xb8\xbb\xb8\xbc\xb8\xbd\xb8\xbe\xb8\xbf\xb8\xc0\xb8\xc1\xb8\xc2\xb8\xc3\xb8\xc4\xb8\xc5\xb8\xc6\xb8\xc7\xb8\xc8\xb8\xc9\xb8\xca\xb8\xcb\xb8\xcc\xb8\xcd\xb8\xce\xb8\xcf\xb8\xd0\xb8\xd1\xb8\xd2\xb8\xd3\xb8\xd4\xb8\xd5\x5d\xa4\x4e\xc5\x4b\xa8\x4c\xbb\x54\xce\x4e\xa4\x5d\xa5\x5d\xa6\x56\xd5\x54\xc2\x5d\xa7\x53\xfc\xb8\xd6\x59\x55\x59\xe8\x59\x56\x4e\xc6\xb8\xd7\x4f\x52\x4e\x85\x5d\xa8\x5d\xa9\x59\x68\x5d\xaa\x58\xec\x4b\xee\x51\xda\xb8\xd8\x56\x6f\x4c\x8e\x55\x89\x4c\x63\x4f\xf6\x5b\xa3\x5d\xab\x5d\xac\x53\xbf\x5c\x88\x55\xb5\xb8\xd9\x5b\x49\x56\x7f\x5b\x90\x5d\xad\x5b\xde\x4a\xc9\x5d\xaf\x5d\xae\xb8\xda\x59\xea\x5d\xb0\x5d\xb1\x5d\xb2\x55\xd3\x5d\xb3\x55\xaa\x5d\xb4\x5d\xb5\x4a\x6f\x5b\xee\x5d\xb6\x4e\x50\x4b\x4e\x5d\xb7\x5d\xb8\x4d\x8f\x59\x4f\x59\xe7\x5d\xb9\x4c\xc2\x58\x8b\x49\xee\x5d\xba\x5d\xbb\xb8\xdb\x4f\x8c\x57\xdb\x5a\x90\x5d\xbc\x57\xf2\x5d\xbd\x5a\x75\x4e\x86\x5d\xbe\x56\x55\x56\x70\x5d\xbf\x54\x8c\x5b\xed\x5d\xc0\x53\x55\x4b\xc0\x5d\xc1\x4c\x6c\x50\x6e\x5d\xc2", /* 8c00 */ "\x5d\xc3\x56\x4d\x5d\xc4\x4b\x98\x5d\xc5\x51\x62\x5c\x5b\x5d\xc6\x56\xb7\xb8\xdc\x59\xe9\x52\xb0\x5d\xc7\x4b\x9e\x4e\x71\x5d\xc8\x58\xb2\x5d\xc9\x5d\xca\x57\xbc\x5d\xcb\x5d\xcc\x5d\xcd\x49\xf6\x5d\xd0\x5d\xce\x59\x89\x5d\xcf\x52\x75\x5d\xd1\xb8\xdd\x5d\xd2\x5d\xd3\x5d\xd4\x58\xba\x59\xa4\x48\xf8\x5d\xd5\x54\x4b\x5d\xd6\x4f\x98\x52\x41\x5d\xd7\x5d\xd8\x52\x9e\x56\xb6\x5d\xd9\x5d\xda\x50\xbd\x53\xd6\x5d\xdb\x5d\xdc\x54\x54\x5d\xdd\x5d\xde\x4d\x68\xb8\xde\xb8\xdf\xb8\xe0\xb8\xe1\xb8\xe2\xb8\xe3\xb8\xe4\xb8\xe5\xb8\xe6\x4e\x8e\xb8\xe7\xb8\xe8\xb8\xe9\xb8\xea\x4b\xb8\x6a\xf7\xb8\xeb\x6a\xf8\xb8\xec\xb8\xed\x57\x84\xb8\xee\xb8\xef\xb8\xf0\xb8\xf1\xb8\xf2\xb8\xf3\xb8\xf4\xb8\xf5\x6b\x59\xb8\xf6\xb8\xf7\xb8\xf8\xb8\xf9\x66\x81\xb8\xfa\xb8\xfb\xb8\xfc\xb8\xfd\xb9\x41\xb9\x42\x58\x94\x4e\x5f\xb9\x43\xb9\x44\xb9\x45\xb9\x46\xb9\x47\xb9\x48\xb9\x49\x4d\xbf\x5a\xa4\xb9\x4a\xb9\x4b\xb9\x4c\xb9\x4d\xb9\x4e\xb9\x4f\xb9\x50\x61\x79\xb9\x51\xb9\x52\xb9\x53\xb9\x54\x6b\x95\x49\x4a\x49\xf1\xb9\x55\xb9\x56\xb9\x57\xb9\x58\xb9\x59", /* 8c80 */ "\xb9\x5a\xb9\x5b\x6b\x96\xb9\x5c\xb9\x5d\x6b\x98\xb9\x5e\xb9\x5f\xb9\x60\x4d\xd0\x6b\x97\xb9\x61\x52\x52\xb9\x62\xb9\x63\xb9\x64\xb9\x65\xb9\x66\xb9\x67\xb9\x68\x6b\x9a\xb9\x69\xb9\x6a\xb9\x6b\x6b\x99\xb9\x6c\xb9\x6d\xb9\x6e\xb9\x6f\xb9\x70\xb9\x71\xb9\x72\xb9\x73\xb9\x74\xb9\x75\xb9\x76\xb9\x77\xb9\x78\xb9\x79\xb9\x7a\xb9\x7b\xb9\x7c\xb9\x7d\xb9\x7e\xb9\x7f\xb9\x81\xb9\x82\xb9\x83\xb9\x84\xb9\x85\xb9\x86\xb9\x87\xb9\x88\xb9\x89\xb9\x8a\xb9\x8b\xb9\x8c\xb9\x8d\xb9\x8e\xb9\x8f\xb9\x90\xb9\x91\xb9\x92\xb9\x93\xb9\x94\xb9\x95\xb9\x96\xb9\x97\xb9\x98\xb9\x99\xb9\x9a\xb9\x9b\xb9\x9c\xb9\x9d\xb9\x9e\xb9\x9f\xb9\xa0\xb9\xa1\xb9\xa2\xb9\xa3\xb9\xa4\xb9\xa5\xb9\xa6\xb9\xa7\xb9\xa8\xb9\xa9\xb9\xaa\xb9\xab\xb9\xac\xb9\xad\xb9\xae\xb9\xaf\xb9\xb0\xb9\xb1\xb9\xb2\xb9\xb3\xb9\xb4\xb9\xb5\xb9\xb6\xb9\xb7\xb9\xb8\xb9\xb9\xb9\xba\xb9\xbb\xb9\xbc\xb9\xbd\xb9\xbe\xb9\xbf\xb9\xc0\xb9\xc1\xb9\xc2\xb9\xc3\xb9\xc4\xb9\xc5\xb9\xc6\xb9\xc7\xb9\xc8\xb9\xc9\xb9\xca\xb9\xcb\xb9\xcc\xb9\xcd\xb9\xce\xb9\xcf\xb9\xd0\xb9\xd1\xb9\xd2\xb9\xd3", /* 8d00 */ "\xb9\xd4\xb9\xd5\xb9\xd6\xb9\xd7\xb9\xd8\xb9\xd9\xb9\xda\xb9\xdb\xb9\xdc\xb9\xdd\xb9\xde\xb9\xdf\xb9\xe0\xb9\xe1\xb9\xe2\xb9\xe3\xb9\xe4\xb9\xe5\xb9\xe6\xb9\xe7\xb9\xe8\xb9\xe9\xb9\xea\xb9\xeb\xb9\xec\xb9\xed\xb9\xee\xb9\xef\xb9\xf0\x49\x54\x5b\x8b\x4c\xb9\xb9\xf1\x4d\x51\x49\xc5\x5a\xef\x58\x6d\x48\xdb\x5b\x6b\x4e\x96\x5b\xc9\x4c\x57\x56\xaf\x53\xb5\x49\x82\x4d\x5a\x5b\xfb\x4d\x82\x4c\x41\x4e\xf9\x65\xd9\x65\xda\x56\xf8\x4d\x94\x65\xdb\x4a\xfa\x52\x53\x4c\x71\x4d\xd7\x65\xdc\x5a\xf3\x65\xdd\x4e\xd5\x4e\x7f\x65\xde\x51\x7e\x51\xb7\x5a\xde\x5c\x6a\x65\xdf\x65\xe0\x65\xe3\x65\xe1\x65\xe2\x55\x7e\x4c\xb2\x4b\xc3\x65\xe4\x55\xe9\x55\x6d\x4a\xcc\xb9\xf2\xb9\xf3\x61\xd8\x53\x83\x65\xe5\x50\xb4\xb9\xf4\x5c\x58\x65\xe6\x5c\x4c\x54\xfb\x5c\xd2\x5c\xcc\x5a\xdd\xb9\xf5\x5a\xf8\x55\x64\x5a\x4e\x4c\xd2\x4a\x81\xb9\xf6\x55\x83\x6a\xf5\xb9\xf7\xb9\xf8\xb9\xf9\x4d\xd4\xb9\xfa\x6a\xf6\xb9\xfb\xb9\xfc\x5c\x7f\xb9\xfd\xba\x41\x6a\xf0\x4c\xaf\x5b\x74\x4c\xce\x53\xef\xba\x42\xba\x43\xba\x44\xba\x45\xba\x46\xba\x47\xba\x48\xba\x49", /* 8d80 */ "\xba\x4a\x4a\x63\xba\x4b\xba\x4c\x6a\xf1\x4a\x4c\xba\x4d\xba\x4e\xba\x4f\xba\x50\x5a\xbc\x54\x98\xba\x51\xba\x52\xba\x53\xba\x54\xba\x55\x6a\xf3\xba\x56\xba\x57\x6a\xf2\xba\x58\xba\x59\xba\x5a\xba\x5b\xba\x5c\xba\x5d\xba\x5e\xba\x5f\xba\x60\xba\x61\x56\xca\xba\x62\xba\x63\xba\x64\x54\xa3\xba\x65\xba\x66\xba\x67\xba\x68\xba\x69\xba\x6a\xba\x6b\xba\x6c\xba\x6d\xba\x6e\xba\x6f\xba\x70\xba\x71\x6a\xf4\xba\x72\x5c\x84\x53\x5f\x6b\x60\xba\x73\xba\x74\x6b\x5b\xba\x75\x6b\x63\xba\x76\x6b\x62\xba\x77\x5b\xb9\x6b\x61\xba\x78\xba\x79\xba\x7a\x5a\xbd\x6b\x64\xba\x7b\x6b\x6c\xba\x7c\xba\x7d\xba\x7e\xba\x7f\x48\xce\x4b\x99\xba\x81\x6b\x69\x6b\x6a\xba\x82\x53\x7c\xba\x83\xba\x84\xba\x85\xba\x86\x6b\x65\x6b\x66\xba\x87\xba\x88\x6b\x67\x6b\x6b\xba\x89\x4f\xdf\x6b\x68\x4c\xf9\xba\x8a\xba\x8b\xba\x8c\x6b\x70\x6b\x73\xba\x8d\xba\x8e\xba\x8f\x50\x88\xba\x90\x4d\x93\x6b\x5c\x6b\x6d\xba\x91\xba\x92\x51\xb6\xba\x93\xba\x94\xba\x95\x56\xf7\xba\x96\x4e\xf8\xba\x97\x6b\x6e\x6b\x6f\x6b\x71\x4b\xe4\x6b\x72\xba\x98\x6b\x75\xba\x99\xba\x9a", /* 8e00 */ "\xba\x9b\xba\x9c\xba\x9d\xba\x9e\xba\x9f\x6b\x5d\xba\xa0\xba\xa1\xba\xa2\x6b\x74\x5a\x5b\xba\xa3\x4a\x8d\xba\xa4\xba\xa5\x56\xa3\xba\xa6\xba\xa7\xba\xa8\xba\xa9\x6b\x76\xba\xaa\xba\xab\xba\xac\xba\xad\xba\xae\xba\xaf\xba\xb0\xba\xb1\x6b\x77\x4f\xe0\x6b\x78\xba\xb2\xba\xb3\x56\xde\x6b\x7b\xba\xb4\xba\xb5\xba\xb6\xba\xb7\xba\xb8\x49\xc7\x5c\x79\xba\xb9\x6b\x79\xba\xba\x6b\x7a\x6b\x7c\xba\xbb\x6b\x83\xba\xbc\xba\xbd\xba\xbe\x6b\x81\xba\xbf\xba\xc0\xba\xc1\x6b\x7f\x6b\x7d\xba\xc2\xba\xc3\x6b\x82\xba\xc4\xba\xc5\x6b\x7e\x6b\x85\x6b\x86\xba\xc6\x56\xe2\xba\xc7\xba\xc8\x63\x5f\x4b\x58\x6b\x84\x6b\x89\x56\xa2\xba\xc9\xba\xca\xba\xcb\xba\xcc\xba\xcd\x6b\x87\x6b\x88\xba\xce\xba\xcf\xba\xd0\xba\xd1\xba\xd2\xba\xd3\x6b\x5e\xba\xd4\xba\xd5\xba\xd6\xba\xd7\xba\xd8\xba\xd9\xba\xda\xba\xdb\xba\xdc\xba\xdd\xba\xde\xba\xdf\x49\x64\xba\xe0\xba\xe1\x6b\x5f\xba\xe2\xba\xe3\x4b\x65\x49\xe3\xba\xe4\x6b\x8d\x6b\x8a\xba\xe5\x4b\xd6\xba\xe6\x6b\x8e\xba\xe7\x6b\x8b\xba\xe8\xba\xe9\xba\xea\xba\xeb\xba\xec\x6b\x8c\xba\xed\xba\xee\x4a\xd9", /* 8e80 */ "\xba\xef\x5a\xe9\xba\xf0\xba\xf1\xba\xf2\x6b\x8f\xba\xf3\x4a\x9a\xba\xf4\xba\xf5\xba\xf6\xba\xf7\xba\xf8\xba\xf9\xba\xfa\x6b\x90\x6b\x92\xba\xfb\xba\xfc\xba\xfd\x6b\x91\xbb\x41\xbb\x42\xbb\x43\xbb\x44\xbb\x45\xbb\x46\xbb\x47\x6b\x93\xbb\x48\x6b\x94\xbb\x49\xbb\x4a\xbb\x4b\xbb\x4c\xbb\x4d\xbb\x4e\xbb\x4f\xbb\x50\xbb\x51\xbb\x52\xbb\x53\xbb\x54\x55\x8e\x4d\x4a\xbb\x55\xbb\x56\x54\x9c\xbb\x57\xbb\x58\x4b\xe2\xbb\x59\xbb\x5a\xbb\x5b\xbb\x5c\xbb\x5d\xbb\x5e\xbb\x5f\x56\xc8\xbb\x60\xbb\x61\xbb\x62\xbb\x63\xbb\x64\xbb\x65\xbb\x66\xbb\x67\xbb\x68\xbb\x69\xbb\x6a\xbb\x6b\xbb\x6c\xbb\x6d\xbb\x6e\xbb\x6f\xbb\x70\xbb\x71\xbb\x72\x65\xa5\xbb\x73\xbb\x74\xbb\x75\xbb\x76\xbb\x77\xbb\x78\xbb\x79\xbb\x7a\xbb\x7b\xbb\x7c\xbb\x7d\xbb\x7e\xbb\x7f\xbb\x81\xbb\x82\xbb\x83\xbb\x84\xbb\x85\xbb\x86\xbb\x87\xbb\x88\xbb\x89\xbb\x8a\xbb\x8b\xbb\x8c\xbb\x8d\xbb\x8e\xbb\x8f\xbb\x90\xbb\x91\xbb\x92\xbb\x93\xbb\x94\xbb\x95\xbb\x96\xbb\x97\xbb\x98\xbb\x99\xbb\x9a\xbb\x9b\xbb\x9c\xbb\x9d\xbb\x9e\xbb\x9f\xbb\xa0\xbb\xa1\xbb\xa2\xbb\xa3\xbb\xa4", /* 8f00 */ "\xbb\xa5\xbb\xa6\xbb\xa7\xbb\xa8\xbb\xa9\xbb\xaa\xbb\xab\xbb\xac\xbb\xad\xbb\xae\xbb\xaf\xbb\xb0\xbb\xb1\xbb\xb2\xbb\xb3\xbb\xb4\xbb\xb5\xbb\xb6\xbb\xb7\xbb\xb8\xbb\xb9\xbb\xba\xbb\xbb\xbb\xbc\xbb\xbd\xbb\xbe\xbb\xbf\xbb\xc0\xbb\xc1\xbb\xc2\xbb\xc3\xbb\xc4\xbb\xc5\xbb\xc6\xbb\xc7\xbb\xc8\xbb\xc9\xbb\xca\xbb\xcb\xbb\xcc\xbb\xcd\xbb\xce\xbb\xcf\xbb\xd0\xbb\xd1\xbb\xd2\xbb\xd3\xbb\xd4\xbb\xd5\xbb\xd6\xbb\xd7\xbb\xd8\xbb\xd9\xbb\xda\xbb\xdb\xbb\xdc\xbb\xdd\xbb\xde\xbb\xdf\xbb\xe0\xbb\xe1\xbb\xe2\xbb\xe3\xbb\xe4\xbb\xe5\xbb\xe6\xbb\xe7\xbb\xe8\xbb\xe9\xbb\xea\xbb\xeb\xbb\xec\xbb\xed\xbb\xee\xbb\xef\xbb\xf0\xbb\xf1\xbb\xf2\xbb\xf3\xbb\xf4\xbb\xf5\xbb\xf6\xbb\xf7\xbb\xf8\xbb\xf9\xbb\xfa\xbb\xfb\xbb\xfc\xbb\xfd\xbc\x41\xbc\x42\xbc\x43\xbc\x44\xbc\x45\xbc\x46\xbc\x47\xbc\x48\xbc\x49\xbc\x4a\xbc\x4b\xbc\x4c\xbc\x4d\x4a\x55\x5a\xfd\x4d\x8d\x58\xf8\xbc\x4e\x65\x8e\x5c\x4a\x65\x8f\x51\xd5\x54\xec\x4d\xe3\x65\x90\x65\x91\x65\x92\x5b\xe0\x65\x93\x65\x94\x65\x96\x65\x95\x65\x97\x65\x98\x54\x82\x65\x99\x5a\xd7\x65\x9a\x4f\x6e", /* 8f80 */ "\xbc\x4f\x65\x9b\x65\x9c\x4f\x6f\x65\x9d\x4c\xa7\x51\x5e\x65\x9e\x49\x52\x4e\x74\x4d\x96\x65\x9f\xbc\x50\x65\xa0\x65\xa1\x65\xa2\x4c\x99\x4e\xac\xbc\x51\x55\xe3\x60\xcd\x5a\xae\x58\x5d\x5b\x57\x65\xa3\x5b\x7e\x65\xa4\x58\xc0\x4d\x5c\xbc\x52\x4a\xc6\x49\x79\xbc\x53\xbc\x54\xbc\x55\x50\xb0\xbc\x56\xbc\x57\xbc\x58\xbc\x59\x49\x87\x49\x88\xbc\x5a\x49\x89\xbc\x5b\xbc\x5c\xbc\x5d\xbc\x5e\x4a\x5d\x54\xe7\xbc\x5f\xbc\x60\xbc\x61\xbc\x62\x63\x61\xbc\x63\xbc\x64\x49\x7f\xbc\x65\xbc\x66\xbc\x67\x51\x69\x4a\xee\xbc\x68\xbc\x69\x54\x48\x5a\x78\xbc\x6a\x53\xf8\x59\x58\xbc\x6b\x4d\x9e\x51\xf4\xbc\x6c\xbc\x6d\xbc\x6e\xbc\x6f\xbc\x70\x5a\x4d\xbc\x71\x5a\xca\x4f\x9d\xbc\x72\x63\x62\x4c\x55\x63\x63\xbc\x73\xbc\x74\x4e\x59\x5b\x83\xbc\x75\x4f\x99\x5a\xb5\x57\xa4\x51\x4c\x4a\x79\xbc\x76\xbc\x77\x56\xf5\xbc\x78\x63\x66\x63\x64\x63\x68\xbc\x79\x63\x6a\x63\x67\x4b\x6f\x53\xc7\xbc\x7a\x4b\x9d\x63\x65\xbc\x7b\x55\xf5\xbc\x7c\xbc\x7d\x63\x69\xbc\x7e\xbc\x7f\xbc\x81\x52\x74\x49\x65\x4e\xa2\xbc\x82\xbc\x83\xbc\x84\x5c\x57\xbc\x85\xbc\x86", /* 9000 */ "\x57\x6b\x56\x6d\x55\xc9\x56\xd2\x63\x6c\x63\x6b\x52\xe5\xbc\x87\xbc\x88\x59\x41\x59\x57\x63\x6d\xbc\x89\x63\x70\xbc\x8a\x57\x58\x5b\xef\x63\x6f\x4b\x7d\xbc\x8b\x57\x5e\xbc\x8c\x63\x71\x4b\xb9\xbc\x8d\xbc\x8e\x57\x48\x4d\x85\xbc\x8f\x55\xc4\x4a\x71\x56\x79\x5a\xeb\x63\x72\x4c\x8b\xbc\x90\xbc\x91\xbc\x92\x63\x6e\xbc\x93\xbc\x94\xbc\x95\xbc\x96\xbc\x97\xbc\x98\x63\x75\x4a\xfd\x63\x76\xbc\x99\xbc\x9a\xbc\x9b\xbc\x9c\xbc\x9d\x63\x73\x63\x74\xbc\x9e\x59\xdc\xbc\x9f\xbc\xa0\x51\xde\x49\x66\xbc\xa1\x5a\x83\xbc\xa2\xbc\xa3\x4b\xdc\x56\x8d\xbc\xa4\x63\x77\xbc\xa5\xbc\xa6\x5a\x97\xbc\xa7\xbc\xa8\xbc\xa9\xbc\xaa\xbc\xab\x49\x8a\xbc\xac\x4b\xf3\x63\x7a\x63\x78\x63\x79\x4b\x60\xbc\xad\xbc\xae\xbc\xaf\x59\xc4\x63\x7c\xbc\xb0\xbc\xb1\x63\x7e\xbc\xb2\xbc\xb3\xbc\xb4\xbc\xb5\xbc\xb6\xbc\xb7\x63\x7d\x54\x52\xbc\xb8\x59\xa2\xbc\xb9\xbc\xba\x63\x7b\xbc\xbb\xbc\xbc\xbc\xbd\xbc\xbe\x5a\xe1\x5b\x7a\xbc\xbf\xbc\xc0\xbc\xc1\xbc\xc2\xbc\xc3\x63\x81\x5c\x92\xbc\xc4\xbc\xc5\xbc\xc6\xbc\xc7\xbc\xc8\xbc\xc9\xbc\xca\x63\x82\xbc\xcb\x49\x7c", /* 9080 */ "\x59\x9c\xbc\xcc\x63\x83\x63\x85\xbc\xcd\xbc\xce\xbc\xcf\xbc\xd0\x63\x84\xbc\xd1\xbc\xd2\x63\x86\xbc\xd3\xbc\xd4\xbc\xd5\xbc\xd6\xbc\xd7\x59\xd7\xbc\xd8\x4b\x6b\xbc\xd9\x64\x7f\xbc\xda\x5d\xf4\xbc\xdb\x5d\xf7\xbc\xdc\x5d\xf5\xbc\xdd\x5d\xf6\xbc\xde\xbc\xdf\xbc\xe0\x5d\xf9\x58\xce\x52\xc6\xbc\xe1\xbc\xe2\x48\xed\xbc\xe3\xbc\xe4\xbc\xe5\x58\xaf\xbc\xe6\x5d\xf8\xbc\xe7\x5a\x6a\x4d\xa9\x5e\x42\x54\x92\xbc\xe8\x5d\xfb\x5d\xfa\x55\x7b\x5d\xfc\xbc\xe9\x5e\x41\x5c\x7e\x5d\xfd\x51\x7a\xbc\xea\xbc\xeb\x5e\x45\xbc\xec\xbc\xed\x5a\x95\xbc\xee\xbc\xef\x5e\x47\x5e\x44\xbc\xf0\x5e\x48\xbc\xf1\xbc\xf2\x4f\x5c\xbc\xf3\xbc\xf4\xbc\xf5\x50\xc8\x5e\x43\x5e\x46\x5b\xa2\xbc\xf6\x5e\x49\xbc\xf7\xbc\xf8\xbc\xf9\x5e\x4d\xbc\xfa\xbc\xfb\xbc\xfc\x5e\x4e\x5e\x4c\x4d\xc1\xbc\xfd\xbd\x41\xbd\x42\x50\x44\x5e\x4b\xbd\x43\xbd\x44\xbd\x45\x5e\x4a\x5a\xc6\x49\xbe\xbd\x46\xbd\x47\x5e\x4f\xbd\x48\x4d\x9a\xbd\x49\x5e\x50\xbd\x4a\xbd\x4b\xbd\x4c\xbd\x4d\x4a\x5b\xbd\x4e\xbd\x4f\xbd\x50\x4b\x46\xbd\x51\xbd\x52\xbd\x53\xbd\x54\x4b\xbb\x5e\x51\xbd\x55", /* 9100 */ "\xbd\x56\xbd\x57\x4b\xf4\xbd\x58\x5e\x52\xbd\x59\xbd\x5a\xbd\x5b\xbd\x5c\xbd\x5d\xbd\x5e\xbd\x5f\xbd\x60\xbd\x61\xbd\x62\xbd\x63\xbd\x64\xbd\x65\xbd\x66\xbd\x67\xbd\x68\xbd\x69\xbd\x6a\xbd\x6b\xbd\x6c\x49\x69\xbd\x6d\xbd\x6e\xbd\x6f\xbd\x70\x5e\x54\xbd\x71\xbd\x72\xbd\x73\x5e\x53\x5e\x55\xbd\x74\xbd\x75\xbd\x76\xbd\x77\xbd\x78\xbd\x79\xbd\x7a\xbd\x7b\xbd\x7c\xbd\x7d\xbd\x7e\x5e\x57\xbd\x7f\x5e\x56\xbd\x81\xbd\x82\xbd\x83\xbd\x84\xbd\x85\xbd\x86\xbd\x87\x5e\x58\xbd\x88\xbd\x89\xbd\x8a\xbd\x8b\xbd\x8c\xbd\x8d\xbd\x8e\xbd\x8f\xbd\x90\x5e\x59\xbd\x91\xbd\x92\x5e\x5a\xbd\x93\xbd\x94\x5a\x6f\x6a\xf9\x54\x96\x5c\x63\x53\x85\x6a\xfb\x6a\xfc\x6a\xfa\xbd\x95\x4f\xc5\xbd\x96\xbd\x97\xbd\x98\xbd\x99\x58\xee\xbd\x9a\xbd\x9b\x4c\x73\xbd\x9c\xbd\x9d\x5a\xcc\x56\xa9\xbd\x9e\xbd\x9f\x6b\x42\x6b\x41\x4d\xa7\x6a\xfd\x56\x76\xbd\xa0\xbd\xa1\xbd\xa2\x6b\x44\x50\xd1\xbd\xa3\x4a\x8b\xbd\xa4\x57\x4a\x6b\x45\x6b\x43\x4f\x54\x6b\x48\xbd\xa5\x6b\x49\x4f\x6d\x52\x58\x50\x82\x56\x82\x6b\x4a\xbd\xa6\xbd\xa7\xbd\xa8\x6b\x46\x6b\x47\x52\xef", /* 9180 */ "\xbd\xa9\xbd\xaa\xbd\xab\xbd\xac\xbd\xad\x6b\x4c\xbd\xae\x4a\xbb\xbd\xaf\x5c\x8e\xbd\xb0\x4a\xd6\x6b\x4b\x6b\x4e\xbd\xb1\xbd\xb2\x6b\x4d\x6b\x4f\x58\xd0\xbd\xb3\xbd\xb4\xbd\xb5\xbd\xb6\xbd\xb7\xbd\xb8\xbd\xb9\x52\x71\x54\xa8\xbd\xba\xbd\xbb\xbd\xbc\xbd\xbd\xbd\xbe\xbd\xbf\x6b\x50\x6b\x51\xbd\xc0\xbd\xc1\xbd\xc2\xbd\xc3\xbd\xc4\xbd\xc5\x6b\x52\xbd\xc6\xbd\xc7\x6b\x53\x6b\x54\x6b\x55\xbd\xc8\xbd\xc9\xbd\xca\xbd\xcb\x6b\x57\x6b\x56\xbd\xcc\xbd\xcd\xbd\xce\xbd\xcf\x6b\x58\xbd\xd0\xbd\xd1\xbd\xd2\xbd\xd3\xbd\xd4\xbd\xd5\xbd\xd6\xbd\xd7\xbd\xd8\xbd\xd9\xbd\xda\xbd\xdb\x49\xc8\xbd\xdc\x5a\x74\x55\xcc\xbd\xdd\x50\xee\x5b\xd7\x59\xaf\x51\x5f\xbd\xde\x4f\x91\xbd\xdf\xbd\xe0\xbd\xe1\xbd\xe2\xbd\xe3\xbd\xe4\xbd\xe5\xbd\xe6\xbd\xe7\xbd\xe8\x4c\xa9\xbd\xe9\xbd\xea\xbd\xeb\xbd\xec\xbd\xed\xbd\xee\xbd\xef\xbd\xf0\xbd\xf1\xbd\xf2\xbd\xf3\xbd\xf4\xbd\xf5\xbd\xf6\xbd\xf7\xbd\xf8\xbd\xf9\xbd\xfa\xbd\xfb\xbd\xfc\xbd\xfd\xbe\x41\xbe\x42\xbe\x43\xbe\x44\xbe\x45\xbe\x46\xbe\x47\xbe\x48\xbe\x49\xbe\x4a\xbe\x4b\xbe\x4c\xbe\x4d\xbe\x4e", /* 9200 */ "\xbe\x4f\xbe\x50\xbe\x51\xbe\x52\xbe\x53\xbe\x54\xbe\x55\xbe\x56\xbe\x57\xbe\x58\xbe\x59\xbe\x5a\xbe\x5b\xbe\x5c\xbe\x5d\xbe\x5e\xbe\x5f\xbe\x60\xbe\x61\xbe\x62\xbe\x63\xbe\x64\xbe\x65\xbe\x66\xbe\x67\xbe\x68\xbe\x69\xbe\x6a\xbe\x6b\xbe\x6c\xbe\x6d\xbe\x6e\xbe\x6f\xbe\x70\xbe\x71\xbe\x72\xbe\x73\xbe\x74\xbe\x75\xbe\x76\xbe\x77\xbe\x78\xbe\x79\xbe\x7a\xbe\x7b\xbe\x7c\xbe\x7d\xbe\x7e\xbe\x7f\xbe\x81\xbe\x82\xbe\x83\xbe\x84\xbe\x85\xbe\x86\xbe\x87\xbe\x88\xbe\x89\xbe\x8a\xbe\x8b\xbe\x8c\xbe\x8d\xbe\x8e\xbe\x8f\xbe\x90\xbe\x91\xbe\x92\xbe\x93\xbe\x94\xbe\x95\xbe\x96\xbe\x97\xbe\x98\xbe\x99\xbe\x9a\xbe\x9b\xbe\x9c\xbe\x9d\xbe\x9e\xbe\x9f\xbe\xa0\xbe\xa1\xbe\xa2\xbe\xa3\xbe\xa4\xbe\xa5\xbe\xa6\xbe\xa7\xbe\xa8\xbe\xa9\xbe\xaa\xbe\xab\xbe\xac\xbe\xad\xbe\xae\xbe\xaf\xbe\xb0\xbe\xb1\xbe\xb2\xbe\xb3\xbe\xb4\xbe\xb5\xbe\xb6\xbe\xb7\xbe\xb8\xbe\xb9\xbe\xba\xbe\xbb\xbe\xbc\xbe\xbd\xbe\xbe\xbe\xbf\xbe\xc0\xbe\xc1\xbe\xc2\xbe\xc3\x4e\xf7\xbe\xc4\xbe\xc5\xbe\xc6\xbe\xc7\xbe\xc8\xbe\xc9\xbe\xca\xbe\xcb\xbe\xcc\xbe\xcd\xbe\xce", /* 9280 */ "\xbe\xcf\xbe\xd0\xbe\xd1\xbe\xd2\xbe\xd3\xbe\xd4\xbe\xd5\xbe\xd6\xbe\xd7\xbe\xd8\xbe\xd9\xbe\xda\xbe\xdb\xbe\xdc\x6b\xc5\xbe\xdd\xbe\xde\xbe\xdf\xbe\xe0\xbe\xe1\xbe\xe2\xbe\xe3\xbe\xe4\xbe\xe5\xbe\xe6\xbe\xe7\xbe\xe8\xbe\xe9\xbe\xea\xbe\xeb\xbe\xec\xbe\xed\xbe\xee\xbe\xef\xbe\xf0\xbe\xf1\xbe\xf2\xbe\xf3\xbe\xf4\xbe\xf5\xbe\xf6\xbe\xf7\xbe\xf8\xbe\xf9\xbe\xfa\xbe\xfb\x6b\xc6\xbe\xfc\xbe\xfd\xbf\x41\xbf\x42\xbf\x43\xbf\x44\xbf\x45\xbf\x46\xbf\x47\xbf\x48\xbf\x49\xbf\x4a\xbf\x4b\xbf\x4c\xbf\x4d\xbf\x4e\xbf\x4f\xbf\x50\xbf\x51\xbf\x52\xbf\x53\xbf\x54\xbf\x55\xbf\x56\xbf\x57\x6b\xc7\xbf\x58\xbf\x59\xbf\x5a\xbf\x5b\xbf\x5c\xbf\x5d\xbf\x5e\xbf\x5f\xbf\x60\xbf\x61\xbf\x62\xbf\x63\xbf\x64\xbf\x65\xbf\x66\xbf\x67\xbf\x68\xbf\x69\xbf\x6a\xbf\x6b\xbf\x6c\xbf\x6d\xbf\x6e\xbf\x6f\xbf\x70\xbf\x71\xbf\x72\xbf\x73\xbf\x74\xbf\x75\xbf\x76\xbf\x77\xbf\x78\xbf\x79\xbf\x7a\xbf\x7b\xbf\x7c\xbf\x7d\xbf\x7e\xbf\x7f\xbf\x81\xbf\x82\xbf\x83\xbf\x84\xbf\x85\xbf\x86\xbf\x87\xbf\x88\xbf\x89\xbf\x8a\xbf\x8b\xbf\x8c\xbf\x8d\xbf\x8e\xbf\x8f", /* 9300 */ "\xbf\x90\xbf\x91\xbf\x92\xbf\x93\xbf\x94\xbf\x95\xbf\x96\xbf\x97\xbf\x98\xbf\x99\xbf\x9a\xbf\x9b\xbf\x9c\xbf\x9d\xbf\x9e\xbf\x9f\xbf\xa0\xbf\xa1\xbf\xa2\xbf\xa3\xbf\xa4\xbf\xa5\xbf\xa6\xbf\xa7\xbf\xa8\xbf\xa9\xbf\xaa\xbf\xab\xbf\xac\xbf\xad\xbf\xae\xbf\xaf\xbf\xb0\xbf\xb1\xbf\xb2\xbf\xb3\xbf\xb4\xbf\xb5\xbf\xb6\xbf\xb7\xbf\xb8\xbf\xb9\xbf\xba\xbf\xbb\xbf\xbc\xbf\xbd\xbf\xbe\xbf\xbf\xbf\xc0\xbf\xc1\xbf\xc2\xbf\xc3\xbf\xc4\xbf\xc5\xbf\xc6\xbf\xc7\xbf\xc8\xbf\xc9\xbf\xca\xbf\xcb\xbf\xcc\xbf\xcd\x6b\xc8\xbf\xce\xbf\xcf\xbf\xd0\xbf\xd1\xbf\xd2\xbf\xd3\xbf\xd4\xbf\xd5\xbf\xd6\xbf\xd7\xbf\xd8\xbf\xd9\xbf\xda\xbf\xdb\xbf\xdc\xbf\xdd\xbf\xde\xbf\xdf\xbf\xe0\xbf\xe1\xbf\xe2\xbf\xe3\xbf\xe4\xbf\xe5\xbf\xe6\xbf\xe7\xbf\xe8\xbf\xe9\xbf\xea\xbf\xeb\xbf\xec\xbf\xed\xbf\xee\xbf\xef\xbf\xf0\xbf\xf1\xbf\xf2\xbf\xf3\xbf\xf4\xbf\xf5\xbf\xf6\xbf\xf7\xbf\xf8\x6b\xc9\xbf\xf9\xbf\xfa\xbf\xfb\xbf\xfc\xbf\xfd\xc0\x41\xc0\x42\xc0\x43\xc0\x44\xc0\x45\xc0\x46\xc0\x47\xc0\x48\xc0\x49\xc0\x4a\xc0\x4b\xc0\x4c\xc0\x4d\xc0\x4e\xc0\x4f\xc0\x50", /* 9380 */ "\xc0\x51\xc0\x52\xc0\x53\xc0\x54\xc0\x55\xc0\x56\xc0\x57\xc0\x58\xc0\x59\xc0\x5a\xc0\x5b\xc0\x5c\xc0\x5d\xc0\x5e\xc0\x5f\x6b\xcb\xc0\x60\xc0\x61\xc0\x62\xc0\x63\xc0\x64\xc0\x65\xc0\x66\xc0\x67\xc0\x68\xc0\x69\xc0\x6a\xc0\x6b\xc0\x6c\xc0\x6d\xc0\x6e\xc0\x6f\xc0\x70\xc0\x71\xc0\x72\xc0\x73\xc0\x74\xc0\x75\xc0\x76\xc0\x77\xc0\x78\xc0\x79\xc0\x7a\xc0\x7b\xc0\x7c\xc0\x7d\xc0\x7e\xc0\x7f\xc0\x81\xc0\x82\xc0\x83\xc0\x84\xc0\x85\xc0\x86\xc0\x87\xc0\x88\xc0\x89\xc0\x8a\xc0\x8b\xc0\x8c\xc0\x8d\xc0\x8e\xc0\x8f\xc0\x90\xc0\x91\xc0\x92\xc0\x93\xc0\x94\xc0\x95\xc0\x96\xc0\x97\xc0\x98\xc0\x99\xc0\x9a\x6b\xca\xc0\x9b\xc0\x9c\xc0\x9d\xc0\x9e\xc0\x9f\xc0\xa0\xc0\xa1\xc0\xa2\xc0\xa3\xc0\xa4\xc0\xa5\x6c\x8a\xc0\xa6\xc0\xa7\xc0\xa8\xc0\xa9\xc0\xaa\xc0\xab\xc0\xac\xc0\xad\xc0\xae\xc0\xaf\xc0\xb0\xc0\xb1\xc0\xb2\xc0\xb3\xc0\xb4\xc0\xb5\xc0\xb6\xc0\xb7\xc0\xb8\xc0\xb9\xc0\xba\xc0\xbb\xc0\xbc\xc0\xbd\xc0\xbe\xc0\xbf\xc0\xc0\xc0\xc1\xc0\xc2\xc0\xc3\xc0\xc4\xc0\xc5\xc0\xc6\xc0\xc7\xc0\xc8\xc0\xc9\xc0\xca\xc0\xcb\xc0\xcc\xc0\xcd\xc0\xce", /* 9400 */ "\xc0\xcf\xc0\xd0\xc0\xd1\xc0\xd2\xc0\xd3\xc0\xd4\xc0\xd5\xc0\xd6\xc0\xd7\xc0\xd8\xc0\xd9\xc0\xda\xc0\xdb\xc0\xdc\xc0\xdd\xc0\xde\xc0\xdf\xc0\xe0\xc0\xe1\xc0\xe2\xc0\xe3\xc0\xe4\xc0\xe5\xc0\xe6\xc0\xe7\xc0\xe8\xc0\xe9\xc0\xea\xc0\xeb\xc0\xec\xc0\xed\xc0\xee\xc0\xef\xc0\xf0\xc0\xf1\xc0\xf2\xc0\xf3\xc0\xf4\xc0\xf5\xc0\xf6\xc0\xf7\xc0\xf8\xc0\xf9\xc0\xfa\xc0\xfb\xc0\xfc\xc0\xfd\xc1\x41\xc1\x42\xc1\x43\xc1\x44\xc1\x45\xc1\x46\xc1\x47\xc1\x48\xc1\x49\xc1\x4a\xc1\x4b\xc1\x4c\xc1\x4d\xc1\x4e\xc1\x4f\x6b\xcc\xc1\x50\xc1\x51\xc1\x52\xc1\x53\xc1\x54\xc1\x55\xc1\x56\xc1\x57\xc1\x58\xc1\x59\xc1\x5a\xc1\x5b\xc1\x5c\xc1\x5d\xc1\x5e\xc1\x5f\xc1\x60\xc1\x61\xc1\x62\xc1\x63\xc1\x64\xc1\x65\xc1\x66\xc1\x67\xc1\x68\xc1\x69\xc1\x6a\xc1\x6b\xc1\x6c\xc1\x6d\xc1\x6e\xc1\x6f\xc1\x70\xc1\x71\xc1\x72\xc1\x73\xc1\x74\xc1\x75\xc1\x76\xc1\x77\xc1\x78\xc1\x79\xc1\x7a\xc1\x7b\x6b\xcd\xc1\x7c\xc1\x7d\xc1\x7e\xc1\x7f\xc1\x81\xc1\x82\xc1\x83\xc1\x84\xc1\x85\xc1\x86\xc1\x87\xc1\x88\xc1\x89\xc1\x8a\xc1\x8b\xc1\x8c\xc1\x8d\xc1\x8e\xc1\x8f\xc1\x90", /* 9480 */ "\xc1\x91\xc1\x92\xc1\x93\xc1\x94\xc1\x95\x67\xc3\x67\xc4\x67\xc5\x5b\x8c\x4b\xa3\x67\xc7\x67\xc6\x67\xc8\x67\xc9\x54\x45\x67\xca\x67\xcb\xc1\x96\x4c\x50\x4b\x97\x67\xcc\x67\xce\xc1\x97\x67\xcd\xc1\x98\x4c\xc5\x67\xcf\x67\xd0\x67\xd1\x4b\xda\x4a\x4e\x5b\xd2\x52\xc5\x49\x55\x4c\xd5\x67\xd2\x67\xd3\x5a\xbe\x54\x75\x4f\xfa\x57\xd8\x4d\x53\x67\xd5\x67\xd4\x67\xd7\x67\xd6\x53\x45\x67\xd8\x67\xd9\x54\x4e\x67\xda\x54\x4f\x67\xdb\x49\xa6\x67\xdc\x67\xdd\x67\xde\x67\xdf\x67\xe0\x5c\x8b\x67\xe1\x67\xe2\x4e\xd7\x67\xe3\x5a\x6b\x56\xf9\x49\xab\x51\x86\x67\xe4\x54\x46\x52\x4d\xc1\x99\x67\xe5\x67\xe6\x67\xe7\x67\xe8\x67\xe9\x67\xea\x67\xeb\xc1\x9a\x67\xec\x67\xed\x67\xee\xc1\x9b\xc1\x9c\x67\xef\x67\xf0\x67\xf1\x67\xf3\x67\xf2\xc1\x9d\x67\xf4\x57\x4d\x51\xc0\x67\xf5\x67\xf6\x67\xf7\x5b\x41\x67\xf8\x58\x53\x67\xf9\x67\xfa\xc1\x9e\x67\xfb\x67\xfc\x68\x41\x67\xfd\x68\x42\x4c\xf4\x52\x9b\x68\x43\x68\x44\x4f\x62\x59\xbe\x49\xf8\x68\x45\x68\x46\x68\x47\x59\xf7\x68\x48\x5b\xfc\x68\x49\x53\xcb\xc1\x9f\x68\x4a\x68\x4b\x51\x54\x68\x4c", /* 9500 */ "\x58\x9b\x56\x99\x68\x4e\x68\x4d\x4a\x9b\x4d\x99\x68\x4f\x68\x50\x58\xe1\x68\x51\x68\x52\x4c\x87\x58\xbe\x68\x53\x68\x54\x68\x55\x54\xf0\x56\xdf\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x5b\x81\x68\x5b\x4a\xec\x52\x4a\x68\x5c\xc1\xa0\x68\x5d\x68\x5e\x68\x5f\xc1\xa1\x57\xfc\x68\x60\x51\xdf\x4a\xb7\x5c\x56\x4f\x96\xc1\xa2\x58\x67\x68\x63\x68\x61\x68\x62\x68\x64\x4b\xa6\x4e\xfb\x4f\xe1\x52\x6c\x68\x65\x68\x66\xc1\xa3\x68\x67\x68\x6f\x68\x68\x68\x69\x68\x6a\x54\x62\x68\x92\x4b\xcc\x68\x6b\xc1\xa4\x68\x6c\x68\x6d\x4b\xc5\x52\x5e\x68\x6e\xc1\xa5\x68\x70\x68\x71\x68\x72\x5b\x93\xc1\xa6\x68\x73\x52\xf6\xc1\xa7\x68\x74\x52\xf7\x68\x75\x68\x76\x4c\xe3\x48\xf6\x68\x77\x68\x78\x68\x79\xc1\xa8\x68\x7a\x68\x7b\x68\x7c\x68\x7d\xc1\xa9\x68\x7e\x4f\xb4\x68\x82\x68\x7f\x68\x81\xc1\xaa\x68\x83\x68\x84\x51\x6d\x68\x85\x68\x86\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x50\xd7\xc1\xab\x68\x8e\x51\x4d\x68\x8f\x68\x90\x68\x91\xc1\xac\xc1\xad\x58\x83\xc1\xae\xc1\xaf\xc1\xb0\xc1\xb1\xc1\xb2\xc1\xb3\xc1\xb4\xc1\xb5\x4a\x44", /* 9580 */ "\xc1\xb6\xc1\xb7\xc1\xb8\xc1\xb9\xc1\xba\xc1\xbb\xc1\xbc\xc1\xbd\xc1\xbe\xc1\xbf\xc1\xc0\xc1\xc1\xc1\xc2\xc1\xc3\xc1\xc4\xc1\xc5\xc1\xc6\xc1\xc7\xc1\xc8\xc1\xc9\xc1\xca\xc1\xcb\xc1\xcc\xc1\xcd\xc1\xce\xc1\xcf\xc1\xd0\xc1\xd1\xc1\xd2\xc1\xd3\xc1\xd4\xc1\xd5\xc1\xd6\xc1\xd7\xc1\xd8\xc1\xd9\xc1\xda\xc1\xdb\xc1\xdc\xc1\xdd\xc1\xde\xc1\xdf\xc1\xe0\xc1\xe1\xc1\xe2\xc1\xe3\xc1\xe4\xc1\xe5\xc1\xe6\xc1\xe7\xc1\xe8\xc1\xe9\xc1\xea\xc1\xeb\xc1\xec\xc1\xed\xc1\xee\xc1\xef\xc1\xf0\xc1\xf1\xc1\xf2\xc1\xf3\xc1\xf4\xc1\xf5\xc1\xf6\xc1\xf7\xc1\xf8\xc1\xf9\xc1\xfa\xc1\xfb\xc1\xfc\xc1\xfd\xc2\x41\xc2\x42\xc2\x43\xc2\x44\xc2\x45\xc2\x46\xc2\x47\xc2\x48\xc2\x49\xc2\x4a\xc2\x4b\xc2\x4c\xc2\x4d\xc2\x4e\xc2\x4f\xc2\x50\xc2\x51\xc2\x52\xc2\x53\xc2\x54\xc2\x55\xc2\x56\xc2\x57\xc2\x58\xc2\x59\xc2\x5a\xc2\x5b\xc2\x5c\xc2\x5d\xc2\x5e\xc2\x5f\xc2\x60\x52\x65\x62\x65\x55\x61\x62\x66\xc2\x61\x49\x75\x57\xc9\x4a\xb2\x54\xf1\x62\x67\x58\x70\x62\x68\x4e\xe3\x62\x69\x62\x6a\x52\x66\x5b\x42\x52\xd5\x4d\x8c\x57\xc4\x62\x6b\x52\x97\x62\x6c\xc2\x62", /* 9600 */ "\x4c\x47\x4c\xf2\x4d\xd1\x62\x6d\x62\x6e\x5a\xc3\x62\x6f\xc2\x63\x62\x70\x59\x6b\x62\x71\x62\x72\x62\x73\x62\x74\x59\x76\x62\x75\x49\xfa\x50\xba\x62\x76\xc2\x64\x50\xaa\x62\x77\x62\x78\x62\x79\xc2\x65\x62\x7a\x62\x7b\xc2\x66\x4c\xb6\x5d\xe1\xc2\x67\x4b\xd2\xc2\x68\x5d\xe3\x5d\xe2\xc2\x69\xc2\x6a\xc2\x6b\xc2\x6c\xc2\x6d\xc2\x6e\xc2\x6f\x5d\xe5\xc2\x70\xc2\x71\xc2\x72\x54\xed\xc2\x73\xc2\x74\x5d\xe4\x4c\x60\x59\x95\x59\xf4\x5b\x94\x4f\x77\xc2\x75\xc2\x76\xc2\x77\xc2\x78\x5c\x89\x5d\xe7\x5d\xe6\xc2\x79\x48\xa1\x57\x73\xc2\x7a\x5d\xe8\xc2\x7b\x4c\xbc\x4e\xc9\x51\xbc\x51\xa3\x4a\x62\x5d\xe9\xc2\x7c\x51\xa9\x52\xaf\x4f\x55\xc2\x7d\xc2\x7e\x58\x7e\xc2\x7f\xc2\x81\xc2\x82\x5d\xea\x55\x62\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\x49\x7d\xc2\x88\xc2\x89\xc2\x8a\x5d\xeb\xc2\x8b\x4b\xb7\x5a\xb9\xc2\x8c\x4a\x9e\xc2\x8d\xc2\x8e\x5d\xec\x5a\xc8\x58\x75\x53\x84\xc2\x8f\x5d\xed\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\x5d\xee\xc2\x95\x5d\xef\x51\x8b\x56\xd4\x58\x7d\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d", /* 9680 */ "\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\x5a\x88\x51\xa0\xc2\xa3\x5d\xf0\xc2\xa4\xc2\xa5\x56\x86\xc2\xa6\x5d\xf1\xc2\xa7\x56\x87\x59\xfd\xc2\xa8\xc2\xa9\xc2\xaa\x4c\xf3\xc2\xab\xc2\xac\x5d\xf2\x48\xae\x58\x56\xc2\xad\xc2\xae\x5b\x6f\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\x56\x8e\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc2\xc0\x5d\xf3\xc2\xc1\xc2\xc2\x62\x64\xc2\xc3\xc2\xc4\x51\x45\xc2\xc5\xc2\xc6\x6b\xbe\xc2\xc7\xc2\xc8\x6b\xbf\x6b\xc0\x52\xd0\xc2\xc9\x54\xb7\x59\x84\xc2\xca\xc2\xcb\x58\xda\x59\x65\x4e\xae\x4d\x6d\xc2\xcc\x68\x95\xc2\xcd\xc2\xce\x4a\xc5\x5a\x5a\x6b\xc1\x4a\x9c\xc2\xcf\xc2\xd0\x6b\xc2\xc2\xd1\xc2\xd2\x4b\x92\xc2\xd3\xc2\xd4\xc2\xd5\xc2\xd6\xc2\xd7\xc2\xd8\xc2\xd9\xc2\xda\xc2\xdb\xc2\xdc\x6b\xc4\xc2\xdd\xc2\xde\xc2\xdf\xc2\xe0\xc2\xe1\xc2\xe2\xc2\xe3\x5a\x8b\x6b\xa6\x59\x49\xc2\xe4\xc2\xe5\xc2\xe6\xc2\xe7\x6b\xa8\xc2\xe8\xc2\xe9\xc2\xea\x6b\xa7\xc2\xeb\xc2\xec\x51\x84\x50\xd6\xc2\xed\x49\x42\xc2\xee\xc2\xef\xc2\xf0\xc2\xf1\x57\xec\xc2\xf2", /* 9700 */ "\x58\xe7\x6b\xaa\xc2\xf3\xc2\xf4\x58\x97\xc2\xf5\x6b\xa9\x5b\x91\x6b\xab\x52\x59\xc2\xf6\xc2\xf7\xc2\xf8\x4e\x95\x6b\xad\x6b\xac\xc2\xf9\xc2\xfa\xc2\xfb\x52\xdd\xc2\xfc\xc2\xfd\x51\x78\xc3\x41\xc3\x42\xc3\x43\xc3\x44\xc3\x45\x56\x4a\xc3\x46\x58\x5c\xc3\x47\xc3\x48\xc3\x49\xc3\x4a\xc3\x4b\xc3\x4c\xc3\x4d\xc3\x4e\xc3\x4f\xc3\x50\xc3\x51\x6b\xae\xc3\x52\xc3\x53\x6b\xaf\xc3\x54\xc3\x55\x6b\xb0\xc3\x56\x51\xb5\xc3\x57\xc3\x58\xc3\x59\xc3\x5a\xc3\x5b\x48\xd3\x53\x9a\xc3\x5c\xc3\x5d\xc3\x5e\xc3\x5f\x6b\xb1\xc3\x60\xc3\x61\xc3\x62\xc3\x63\xc3\x64\xc3\x65\xc3\x66\xc3\x67\xc3\x68\xc3\x69\xc3\x6a\xc3\x6b\xc3\x6c\xc3\x6d\xc3\x6e\xc3\x6f\xc3\x70\xc3\x71\xc3\x72\x54\x81\x6b\xa5\xc3\x73\xc3\x74\x4f\xb7\xc3\x75\xc3\x76\x4f\xb1\xc3\x77\x4b\x86\xc3\x78\xc3\x79\x4c\x67\xc3\x7a\x50\x5f\x52\x72\x52\x87\xc3\x7b\xc3\x7c\x5c\xcb\xc3\x7d\xc3\x7e\xc3\x7f\x4c\xee\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85\xc3\x86\xc3\x87\xc3\x88\xc3\x89\x4f\x9a\x59\x45\xc3\x8a\x48\xcf\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\x6c\x50\xc3\x90\xc3\x91\xc3\x92", /* 9780 */ "\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\x6c\x51\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\x58\xab\xc3\x9d\x48\xaf\xc3\x9e\xc3\x9f\xc3\xa0\x6c\x52\x6c\x53\xc3\xa1\x6c\x54\xc3\xa2\xc3\xa3\xc3\xa4\x54\x6a\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\x4f\xce\xc3\xac\xc3\xad\x6c\x57\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\x6c\x56\xc3\xb5\x49\x7e\xc3\xb6\x6c\x55\xc3\xb7\xc3\xb8\x6c\x58\xc3\xb9\x6c\x59\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf\xc3\xc0\xc3\xc1\xc3\xc2\xc3\xc3\xc3\xc4\xc3\xc5\xc3\xc6\xc3\xc7\xc3\xc8\xc3\xc9\xc3\xca\xc3\xcb\xc3\xcc\xc3\xcd\xc3\xce\xc3\xcf\xc3\xd0\xc3\xd1\xc3\xd2\xc3\xd3\xc3\xd4\xc3\xd5\xc3\xd6\xc3\xd7\xc3\xd8\xc3\xd9\xc3\xda\xc3\xdb\xc3\xdc\xc3\xdd\xc3\xde\xc3\xdf\xc3\xe0\xc3\xe1\xc3\xe2\xc3\xe3\xc3\xe4\xc3\xe5\xc3\xe6\xc3\xe7\xc3\xe8\xc3\xe9\xc3\xea\x57\xa3\x54\xcc\xc3\xeb\x4d\xaa\x64\xb7\x64\xb8\x64\xb9\x4f\xc1\xc3\xec\xc3\xed\xc3\xee\xc3\xef\xc3\xf0\x59\xf3\xc3\xf1\x5a\xce\x55\x78\xc3\xf2\xc3\xf3\xc3\xf4\xc3\xf5\xc3\xf6\xc3\xf7\xc3\xf8\xc3\xf9\xc3\xfa", /* 9800 */ "\xc3\xfb\xc3\xfc\xc3\xfd\xc4\x41\xc4\x42\xc4\x43\xc4\x44\xc4\x45\xc4\x46\xc4\x47\xc4\x48\xc4\x49\xc4\x4a\xc4\x4b\xc4\x4c\xc4\x4d\xc4\x4e\xc4\x4f\xc4\x50\xc4\x51\xc4\x52\xc4\x53\xc4\x54\xc4\x55\xc4\x56\xc4\x57\xc4\x58\xc4\x59\xc4\x5a\xc4\x5b\xc4\x5c\xc4\x5d\xc4\x5e\xc4\x5f\xc4\x60\xc4\x61\xc4\x62\xc4\x63\xc4\x64\xc4\x65\xc4\x66\xc4\x67\xc4\x68\xc4\x69\xc4\x6a\xc4\x6b\xc4\x6c\xc4\x6d\xc4\x6e\xc4\x6f\xc4\x70\xc4\x71\xc4\x72\xc4\x73\xc4\x74\xc4\x75\xc4\x76\xc4\x77\xc4\x78\xc4\x79\xc4\x7a\xc4\x7b\xc4\x7c\xc4\x7d\xc4\x7e\xc4\x7f\xc4\x81\xc4\x82\xc4\x83\xc4\x84\xc4\x85\xc4\x86\xc4\x87\xc4\x88\xc4\x89\xc4\x8a\xc4\x8b\xc4\x8c\xc4\x8d\xc4\x8e\xc4\x8f\xc4\x90\xc4\x91\xc4\x92\xc4\x93\xc4\x94\xc4\x95\xc4\x96\xc4\x97\xc4\x98\xc4\x99\xc4\x9a\xc4\x9b\xc4\x9c\xc4\x9d\xc4\x9e\xc4\x9f\xc4\xa0\xc4\xa1\xc4\xa2\xc4\xa3\xc4\xa4\xc4\xa5\xc4\xa6\xc4\xa7\xc4\xa8\xc4\xa9\xc4\xaa\xc4\xab\xc4\xac\xc4\xad\xc4\xae\xc4\xaf\xc4\xb0\xc4\xb1\xc4\xb2\xc4\xb3\x59\xb2\x4b\xa4\x54\x8b\x69\x9d\x58\x8f\x56\x53\x58\xea\x64\x90\x57\x88\x4d\x6b\x4b\xd8", /* 9880 */ "\x69\x9e\x48\xe3\x56\x6c\x69\x9f\x5a\xa3\x51\xac\x51\x8d\x53\xc3\x4f\xb0\x69\xa0\x4e\xd4\xc4\xb4\x69\xa1\x69\xa2\xc4\xb5\x69\xa3\x59\xc2\x53\xb4\xc4\xb6\x57\x67\x69\xa4\xc4\xb7\x5a\x51\x50\x65\x56\xe1\xc4\xb8\x69\xa5\x69\xa6\x59\x75\x4b\xed\x69\xa7\x69\xa8\x4b\x7f\x69\xa9\x69\xaa\xc4\xb9\x49\xfb\x69\xab\x69\xac\x54\xa6\xc4\xba\xc4\xbb\xc4\xbc\xc4\xbd\xc4\xbe\xc4\xbf\xc4\xc0\xc4\xc1\xc4\xc2\xc4\xc3\xc4\xc4\xc4\xc5\xc4\xc6\xc4\xc7\xc4\xc8\xc4\xc9\xc4\xca\xc4\xcb\xc4\xcc\xc4\xcd\xc4\xce\xc4\xcf\xc4\xd0\xc4\xd1\xc4\xd2\xc4\xd3\xc4\xd4\xc4\xd5\xc4\xd6\xc4\xd7\xc4\xd8\xc4\xd9\xc4\xda\xc4\xdb\xc4\xdc\xc4\xdd\xc4\xde\xc4\xdf\x4c\x88\xc4\xe0\xc4\xe1\x66\xa8\x66\xa9\x66\xaa\xc4\xe2\x66\xab\xc4\xe3\xc4\xe4\x53\xad\x66\xac\x66\xad\xc4\xe5\xc4\xe6\xc4\xe7\x4c\x69\x55\xb2\xc4\xe8\xc4\xe9\xc4\xea\xc4\xeb\xc4\xec\xc4\xed\xc4\xee\x61\xb7\x6c\x6f\xc4\xef\xc4\xf0\xc4\xf1\xc4\xf2\xc4\xf3\xc4\xf4\xc4\xf5\xc4\xf6\xc4\xf7\xc4\xf8\xc4\xf9\xc4\xfa\xc4\xfb\xc4\xfc\xc4\xfd\xc5\x41\xc5\x42\xc5\x43\xc5\x44\xc5\x45\xc5\x46\xc5\x47\xc5\x48", /* 9900 */ "\xc5\x49\xc5\x4a\xc5\x4b\xc5\x4c\xc5\x4d\xc5\x4e\xc5\x4f\xc5\x50\xc5\x51\xc5\x52\xc5\x53\xc5\x54\xc5\x55\x6c\x70\xc5\x56\xc5\x57\x49\xcc\xc5\x58\xc5\x59\xc5\x5a\xc5\x5b\xc5\x5c\xc5\x5d\xc5\x5e\xc5\x5f\xc5\x60\xc5\x61\xc5\x62\xc5\x63\xc5\x64\xc5\x65\xc5\x66\xc5\x67\xc5\x68\xc5\x69\xc5\x6a\xc5\x6b\xc5\x6c\xc5\x6d\xc5\x6e\xc5\x6f\xc5\x70\xc5\x71\xc5\x72\xc5\x73\xc5\x74\x6c\x71\xc5\x75\xc5\x76\xc5\x77\xc5\x78\xc5\x79\xc5\x7a\xc5\x7b\xc5\x7c\xc5\x7d\xc5\x7e\xc5\x7f\xc5\x81\xc5\x82\xc5\x83\xc5\x84\xc5\x85\xc5\x86\xc5\x87\xc5\x88\xc5\x89\xc5\x8a\xc5\x8b\xc5\x8c\xc5\x8d\xc5\x8e\xc5\x8f\xc5\x90\xc5\x91\xc5\x92\xc5\x93\xc5\x94\xc5\x95\xc5\x96\xc5\x97\xc5\x98\xc5\x99\xc5\x9a\x6c\x73\x6c\x72\xc5\x9b\xc5\x9c\xc5\x9d\xc5\x9e\xc5\x9f\xc5\xa0\xc5\xa1\xc5\xa2\xc5\xa3\xc5\xa4\xc5\xa5\xc5\xa6\xc5\xa7\x61\xba\xc5\xa8\x4e\xa1\xc5\xa9\x61\xbb\x61\xbc\x61\xbd\x61\xbe\x61\xbf\x61\xc0\x4c\x59\x59\xfa\x4f\x44\x55\xcd\x49\x45\x56\x67\xc5\xaa\x61\xc1\x4b\xfb\x54\xc3\x61\xc2\xc5\xab\xc5\xac\x4f\x68\xc5\xad\x49\x9e\x61\xc3\xc5\xae\x4b\xf5", /* 9980 */ "\x61\xc4\x52\xd8\xc5\xaf\xc5\xb0\x61\xc5\x58\x7a\x4d\x7d\x61\xc6\x50\xa0\xc5\xb1\x61\xc7\x49\xf5\xc5\xb2\x61\xc8\xc5\xb3\x51\x94\x61\xc9\x61\xca\x51\xf7\x61\xcb\x61\xcc\x61\xcd\x55\xd6\x5c\xb7\x5d\x86\x58\x84\xc5\xb4\xc5\xb5\xc5\xb6\xc5\xb7\xc5\xb8\xc5\xb9\xc5\xba\xc5\xbb\xc5\xbc\xc5\xbd\xc5\xbe\x68\xa4\xc5\xbf\xc5\xc0\x5e\xaf\xc5\xc1\xc5\xc2\xc5\xc3\xc5\xc4\xc5\xc5\xc5\xc6\xc5\xc7\xc5\xc8\xc5\xc9\xc5\xca\xc5\xcb\xc5\xcc\xc5\xcd\xc5\xce\xc5\xcf\xc5\xd0\xc5\xd1\xc5\xd2\xc5\xd3\xc5\xd4\xc5\xd5\xc5\xd6\xc5\xd7\xc5\xd8\xc5\xd9\xc5\xda\xc5\xdb\xc5\xdc\xc5\xdd\xc5\xde\xc5\xdf\xc5\xe0\xc5\xe1\xc5\xe2\xc5\xe3\xc5\xe4\xc5\xe5\xc5\xe6\xc5\xe7\xc5\xe8\xc5\xe9\xc5\xea\xc5\xeb\xc5\xec\xc5\xed\xc5\xee\xc5\xef\xc5\xf0\xc5\xf1\xc5\xf2\xc5\xf3\xc5\xf4\xc5\xf5\xc5\xf6\xc5\xf7\xc5\xf8\xc5\xf9\xc5\xfa\xc5\xfb\xc5\xfc\xc5\xfd\xc6\x41\xc6\x42\xc6\x43\xc6\x44\xc6\x45\xc6\x46\xc6\x47\xc6\x48\xc6\x49\xc6\x4a\xc6\x4b\xc6\x4c\xc6\x4d\xc6\x4e\xc6\x4f\xc6\x50\xc6\x51\xc6\x52\xc6\x53\xc6\x54\xc6\x55\xc6\x56\xc6\x57\xc6\x58\xc6\x59\xc6\x5a", /* 9a00 */ "\xc6\x5b\xc6\x5c\xc6\x5d\xc6\x5e\xc6\x5f\xc6\x60\xc6\x61\xc6\x62\xc6\x63\xc6\x64\xc6\x65\xc6\x66\xc6\x67\xc6\x68\xc6\x69\xc6\x6a\xc6\x6b\xc6\x6c\xc6\x6d\xc6\x6e\xc6\x6f\xc6\x70\xc6\x71\xc6\x72\xc6\x73\xc6\x74\xc6\x75\xc6\x76\xc6\x77\xc6\x78\xc6\x79\xc6\x7a\xc6\x7b\xc6\x7c\xc6\x7d\xc6\x7e\xc6\x7f\xc6\x81\xc6\x82\xc6\x83\xc6\x84\xc6\x85\xc6\x86\xc6\x87\xc6\x88\xc6\x89\xc6\x8a\xc6\x8b\xc6\x8c\xc6\x8d\xc6\x8e\xc6\x8f\xc6\x90\xc6\x91\xc6\x92\xc6\x93\xc6\x94\xc6\x95\xc6\x96\xc6\x97\xc6\x98\xc6\x99\xc6\x9a\xc6\x9b\xc6\x9c\xc6\x9d\xc6\x9e\xc6\x9f\xc6\xa0\xc6\xa1\xc6\xa2\xc6\xa3\xc6\xa4\xc6\xa5\xc6\xa6\xc6\xa7\xc6\xa8\xc6\xa9\xc6\xaa\xc6\xab\xc6\xac\xc6\xad\xc6\xae\xc6\xaf\xc6\xb0\xc6\xb1\xc6\xb2\xc6\xb3\xc6\xb4\xc6\xb5\xc6\xb6\xc6\xb7\xc6\xb8\xc6\xb9\xc6\xba\xc6\xbb\xc6\xbc\xc6\xbd\xc6\xbe\xc6\xbf\xc6\xc0\xc6\xc1\xc6\xc2\xc6\xc3\xc6\xc4\xc6\xc5\xc6\xc6\xc6\xc7\x51\xec\x5a\xa5\x57\x74\x59\x51\x4a\x7b\x54\x9e\xc6\xc8\x49\xb4\x51\xbe\x63\xdf\x55\xba\x63\xe0\x63\xe1\x4f\xd3\x63\xe2\x5c\x44\x57\x75\x63\xe4\x4e\xdc\x63\xe3", /* 9a80 */ "\x63\xe5\x63\xe6\x51\xed\xc6\xc9\x4f\x5e\x63\xe7\x51\xe5\x4d\xa6\x63\xe8\xc6\xca\x63\xe9\x4a\x72\x59\x8a\xc6\xcb\xc6\xcc\x50\x45\x63\xea\x53\xee\x63\xeb\x63\xec\xc6\xcd\xc6\xce\x63\xed\x53\xac\x63\xee\xc6\xcf\x55\x47\x63\xef\x63\xf0\x63\xf1\x63\x59\x63\xf2\x63\xf3\x51\xe1\x63\xf4\x63\xf5\x5b\xe7\x63\xf6\xc6\xd0\x63\xf7\x4d\x67\xc6\xd1\xc6\xd2\xc6\xd3\xc6\xd4\xc6\xd5\xc6\xd6\xc6\xd7\x6c\x5b\x6c\x5a\xc6\xd8\xc6\xd9\xc6\xda\xc6\xdb\x6c\x5e\x6c\x5c\x4d\xa0\xc6\xdc\x6c\x5f\xc6\xdd\x6c\x60\xc6\xde\xc6\xdf\xc6\xe0\x6c\x62\x6c\x61\x6c\x64\xc6\xe1\xc6\xe2\x6c\x63\xc6\xe3\xc6\xe4\xc6\xe5\xc6\xe6\xc6\xe7\x6c\x65\x6c\x66\xc6\xe8\xc6\xe9\xc6\xea\xc6\xeb\x6c\x67\xc6\xec\x56\x89\xc6\xed\xc6\xee\xc6\xef\xc6\xf0\x4c\xde\xc6\xf1\xc6\xf2\xc6\xf3\xc6\xf4\xc6\xf5\xc6\xf6\x6c\x74\xc6\xf7\x6c\x75\xc6\xf8\xc6\xf9\xc6\xfa\xc6\xfb\x6c\x76\xc6\xfc\xc6\xfd\xc7\x41\xc7\x42\x6c\x78\xc7\x43\x6c\x7a\xc7\x44\x6c\x77\xc7\x45\xc7\x46\xc7\x47\xc7\x48\xc7\x49\xc7\x4a\xc7\x4b\xc7\x4c\xc7\x4d\x6c\x7b\xc7\x4e\x6c\x79\xc7\x4f\xc7\x50\xc7\x51\xc7\x52", /* 9b00 */ "\xc7\x53\xc7\x54\xc7\x55\x5c\x77\xc7\x56\xc7\x57\xc7\x58\xc7\x59\x6c\x7c\xc7\x5a\xc7\x5b\xc7\x5c\xc7\x5d\xc7\x5e\xc7\x5f\x6c\x7d\xc7\x60\xc7\x61\xc7\x62\x6c\x7e\xc7\x63\xc7\x64\xc7\x65\xc7\x66\xc7\x67\xc7\x68\xc7\x69\xc7\x6a\xc7\x6b\xc7\x6c\xc7\x6d\x6c\x7f\xc7\x6e\xc7\x6f\xc7\x70\x6c\x81\xc7\x71\xc7\x72\xc7\x73\xc7\x74\xc7\x75\xc7\x76\xc7\x77\xc7\x78\xc7\x79\xc7\x7a\xc7\x7b\x5e\x6b\xc7\x7c\xc7\x7d\x5c\xa9\xc7\x7e\xc7\x7f\xc7\x81\xc7\x82\xc7\x83\xc7\x84\xc7\x85\xc7\x86\x63\x98\x4d\x8e\xc7\x87\xc7\x88\xc7\x89\xc7\x8a\x50\x9e\x4e\x8b\x6c\x69\x53\xc6\x6c\x68\xc7\x8b\x6c\x6a\x6c\x6c\x6c\x6b\xc7\x8c\xc7\x8d\xc7\x8e\x6c\x6d\xc7\x8f\x57\xb9\xc7\x90\x6c\x6e\xc7\x91\xc7\x92\x52\xa6\xc7\x93\xc7\x94\xc7\x95\xc7\x96\xc7\x97\xc7\x98\xc7\x99\xc7\x9a\xc7\x9b\xc7\x9c\xc7\x9d\xc7\x9e\xc7\x9f\xc7\xa0\xc7\xa1\xc7\xa2\xc7\xa3\xc7\xa4\xc7\xa5\xc7\xa6\xc7\xa7\xc7\xa8\xc7\xa9\xc7\xaa\xc7\xab\xc7\xac\xc7\xad\xc7\xae\xc7\xaf\xc7\xb0\xc7\xb1\xc7\xb2\xc7\xb3\xc7\xb4\xc7\xb5\xc7\xb6\xc7\xb7\xc7\xb8\xc7\xb9\xc7\xba\xc7\xbb\xc7\xbc\xc7\xbd", /* 9b80 */ "\xc7\xbe\xc7\xbf\xc7\xc0\xc7\xc1\xc7\xc2\xc7\xc3\xc7\xc4\xc7\xc5\xc7\xc6\xc7\xc7\xc7\xc8\xc7\xc9\xc7\xca\xc7\xcb\xc7\xcc\xc7\xcd\xc7\xce\xc7\xcf\xc7\xd0\xc7\xd1\xc7\xd2\xc7\xd3\xc7\xd4\xc7\xd5\xc7\xd6\xc7\xd7\xc7\xd8\xc7\xd9\xc7\xda\xc7\xdb\xc7\xdc\xc7\xdd\xc7\xde\xc7\xdf\xc7\xe0\xc7\xe1\xc7\xe2\xc7\xe3\xc7\xe4\xc7\xe5\xc7\xe6\xc7\xe7\xc7\xe8\xc7\xe9\xc7\xea\xc7\xeb\xc7\xec\xc7\xed\xc7\xee\xc7\xef\xc7\xf0\xc7\xf1\xc7\xf2\xc7\xf3\xc7\xf4\xc7\xf5\xc7\xf6\xc7\xf7\xc7\xf8\xc7\xf9\xc7\xfa\xc7\xfb\xc7\xfc\xc7\xfd\xc8\x41\xc8\x42\xc8\x43\xc8\x44\xc8\x45\xc8\x46\xc8\x47\xc8\x48\xc8\x49\xc8\x4a\xc8\x4b\xc8\x4c\xc8\x4d\xc8\x4e\xc8\x4f\xc8\x50\xc8\x51\xc8\x52\xc8\x53\xc8\x54\xc8\x55\xc8\x56\xc8\x57\xc8\x58\xc8\x59\xc8\x5a\xc8\x5b\xc8\x5c\xc8\x5d\xc8\x5e\xc8\x5f\xc8\x60\xc8\x61\xc8\x62\xc8\x63\xc8\x64\xc8\x65\xc8\x66\xc8\x67\xc8\x68\xc8\x69\xc8\x6a\xc8\x6b\xc8\x6c\xc8\x6d\xc8\x6e\xc8\x6f\xc8\x70\xc8\x71\xc8\x72\xc8\x73\xc8\x74\xc8\x75\xc8\x76\xc8\x77\xc8\x78\xc8\x79\xc8\x7a\xc8\x7b\xc8\x7c\xc8\x7d\xc8\x7e\xc8\x7f\xc8\x81", /* 9c00 */ "\xc8\x82\xc8\x83\xc8\x84\xc8\x85\xc8\x86\xc8\x87\xc8\x88\xc8\x89\xc8\x8a\xc8\x8b\xc8\x8c\xc8\x8d\xc8\x8e\xc8\x8f\xc8\x90\xc8\x91\xc8\x92\xc8\x93\xc8\x94\xc8\x95\xc8\x96\xc8\x97\xc8\x98\xc8\x99\xc8\x9a\xc8\x9b\xc8\x9c\xc8\x9d\xc8\x9e\xc8\x9f\xc8\xa0\xc8\xa1\xc8\xa2\xc8\xa3\xc8\xa4\xc8\xa5\xc8\xa6\xc8\xa7\xc8\xa8\xc8\xa9\xc8\xaa\xc8\xab\xc8\xac\xc8\xad\xc8\xae\xc8\xaf\xc8\xb0\xc8\xb1\xc8\xb2\xc8\xb3\xc8\xb4\xc8\xb5\xc8\xb6\xc8\xb7\xc8\xb8\xc8\xb9\xc8\xba\xc8\xbb\xc8\xbc\xc8\xbd\xc8\xbe\xc8\xbf\xc8\xc0\xc8\xc1\xc8\xc2\xc8\xc3\xc8\xc4\xc8\xc5\xc8\xc6\xc8\xc7\xc8\xc8\xc8\xc9\xc8\xca\xc8\xcb\xc8\xcc\xc8\xcd\xc8\xce\xc8\xcf\xc8\xd0\xc8\xd1\xc8\xd2\xc8\xd3\xc8\xd4\xc8\xd5\xc8\xd6\xc8\xd7\xc8\xd8\xc8\xd9\xc8\xda\xc8\xdb\xc8\xdc\xc8\xdd\xc8\xde\xc8\xdf\xc8\xe0\xc8\xe1\xc8\xe2\xc8\xe3\xc8\xe4\xc8\xe5\xc8\xe6\xc8\xe7\xc8\xe8\xc8\xe9\xc8\xea\xc8\xeb\xc8\xec\xc8\xed\xc8\xee\xc8\xef\xc8\xf0\xc8\xf1\xc8\xf2\xc8\xf3\xc8\xf4\xc8\xf5\xc8\xf6\xc8\xf7\xc8\xf8\xc8\xf9\xc8\xfa\xc8\xfb\xc8\xfc\xc8\xfd\x5a\x84\xc9\x41\xc9\x42\x6b\xce", /* 9c80 */ "\xc9\x43\x51\xb2\x6b\xcf\xc9\x44\xc9\x45\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\xc9\x46\xc9\x47\x6b\xd5\xc9\x48\x49\x4b\x6b\xd6\xc9\x49\x6b\xd7\x6b\xd8\x6b\xd9\xc9\x4a\x6b\xda\x6b\xdb\xc9\x4b\xc9\x4c\xc9\x4d\xc9\x4e\x6b\xdc\x6b\xdd\x58\x6a\xc9\x4f\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x50\xef\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\xc9\x50\x6b\xe9\xc9\x51\x6b\xea\x6b\xeb\xc9\x52\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x4f\xa7\xc9\x53\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\xc9\x54\xc9\x55\xc9\x56\xc9\x57\xc9\x58\x54\xf9\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\xc9\x59\xc9\x5a\x6b\xfc\x6b\xfd\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\xc9\x5b\xc9\x5c\x6c\x46\x6c\x47\x6c\x48\x49\x8f\x6c\x49\x6c\x4a\x6c\x4b\xc9\x5d\xc9\x5e\x6c\x4c\x6c\x4d\x51\x7b\x6c\x4e\xc9\x5f\xc9\x60\x6c\x4f\xc9\x61\xc9\x62\xc9\x63\xc9\x64\xc9\x65\xc9\x66\xc9\x67\xc9\x68\xc9\x69\xc9\x6a\xc9\x6b\xc9\x6c\xc9\x6d\xc9\x6e\xc9\x6f\xc9\x70\xc9\x71\xc9\x72\xc9\x73\xc9\x74\xc9\x75\xc9\x76\xc9\x77\xc9\x78\xc9\x79\xc9\x7a\xc9\x7b\xc9\x7c\xc9\x7d", /* 9d00 */ "\xc9\x7e\xc9\x7f\xc9\x81\xc9\x82\xc9\x83\xc9\x84\xc9\x85\xc9\x86\xc9\x87\xc9\x88\xc9\x89\xc9\x8a\xc9\x8b\xc9\x8c\xc9\x8d\xc9\x8e\xc9\x8f\xc9\x90\xc9\x91\xc9\x92\xc9\x93\xc9\x94\xc9\x95\xc9\x96\xc9\x97\xc9\x98\xc9\x99\xc9\x9a\xc9\x9b\xc9\x9c\xc9\x9d\xc9\x9e\xc9\x9f\xc9\xa0\xc9\xa1\xc9\xa2\xc9\xa3\xc9\xa4\xc9\xa5\xc9\xa6\xc9\xa7\xc9\xa8\xc9\xa9\xc9\xaa\xc9\xab\xc9\xac\xc9\xad\xc9\xae\xc9\xaf\xc9\xb0\xc9\xb1\xc9\xb2\xc9\xb3\xc9\xb4\xc9\xb5\xc9\xb6\xc9\xb7\xc9\xb8\xc9\xb9\xc9\xba\xc9\xbb\xc9\xbc\xc9\xbd\xc9\xbe\xc9\xbf\xc9\xc0\xc9\xc1\xc9\xc2\xc9\xc3\xc9\xc4\xc9\xc5\xc9\xc6\xc9\xc7\xc9\xc8\xc9\xc9\xc9\xca\xc9\xcb\xc9\xcc\xc9\xcd\xc9\xce\xc9\xcf\xc9\xd0\xc9\xd1\xc9\xd2\xc9\xd3\xc9\xd4\xc9\xd5\xc9\xd6\xc9\xd7\xc9\xd8\xc9\xd9\xc9\xda\xc9\xdb\xc9\xdc\xc9\xdd\xc9\xde\xc9\xdf\xc9\xe0\xc9\xe1\xc9\xe2\xc9\xe3\xc9\xe4\xc9\xe5\xc9\xe6\xc9\xe7\xc9\xe8\xc9\xe9\xc9\xea\xc9\xeb\xc9\xec\xc9\xed\xc9\xee\xc9\xef\xc9\xf0\xc9\xf1\xc9\xf2\xc9\xf3\xc9\xf4\xc9\xf5\xc9\xf6\xc9\xf7\xc9\xf8\xc9\xf9\xc9\xfa\xc9\xfb\xc9\xfc\xc9\xfd\xca\x41", /* 9d80 */ "\xca\x42\xca\x43\xca\x44\xca\x45\xca\x46\xca\x47\xca\x48\xca\x49\xca\x4a\xca\x4b\xca\x4c\xca\x4d\xca\x4e\xca\x4f\xca\x50\xca\x51\xca\x52\xca\x53\xca\x54\xca\x55\xca\x56\xca\x57\xca\x58\xca\x59\xca\x5a\xca\x5b\xca\x5c\xca\x5d\xca\x5e\xca\x5f\xca\x60\xca\x61\xca\x62\xca\x63\xca\x64\xca\x65\xca\x66\xca\x67\xca\x68\xca\x69\xca\x6a\xca\x6b\xca\x6c\xca\x6d\xca\x6e\xca\x6f\xca\x70\xca\x71\xca\x72\xca\x73\xca\x74\xca\x75\xca\x76\xca\x77\xca\x78\xca\x79\xca\x7a\xca\x7b\xca\x7c\xca\x7d\xca\x7e\xca\x7f\xca\x81\xca\x82\xca\x83\xca\x84\xca\x85\xca\x86\xca\x87\xca\x88\xca\x89\xca\x8a\xca\x8b\xca\x8c\xca\x8d\xca\x8e\xca\x8f\xca\x90\xca\x91\xca\x92\xca\x93\xca\x94\xca\x95\xca\x96\xca\x97\xca\x98\xca\x99\xca\x9a\xca\x9b\xca\x9c\xca\x9d\xca\x9e\xca\x9f\xca\xa0\xca\xa1\xca\xa2\xca\xa3\xca\xa4\xca\xa5\xca\xa6\xca\xa7\xca\xa8\xca\xa9\xca\xaa\xca\xab\xca\xac\xca\xad\xca\xae\xca\xaf\xca\xb0\xca\xb1\xca\xb2\xca\xb3\xca\xb4\xca\xb5\xca\xb6\xca\xb7\xca\xb8\xca\xb9\xca\xba\xca\xbb\xca\xbc\xca\xbd\xca\xbe\xca\xbf\xca\xc0\xca\xc1\xca\xc2", /* 9e00 */ "\xca\xc3\xca\xc4\xca\xc5\xca\xc6\xca\xc7\xca\xc8\xca\xc9\xca\xca\xca\xcb\xca\xcc\xca\xcd\xca\xce\xca\xcf\xca\xd0\xca\xd1\xca\xd2\xca\xd3\xca\xd4\xca\xd5\xca\xd6\xca\xd7\xca\xd8\xca\xd9\xca\xda\xca\xdb\xca\xdc\xca\xdd\xca\xde\xca\xdf\xca\xe0\xca\xe1\x52\xf0\x68\xae\x4e\xa5\x68\xaf\x52\x9a\xca\xe2\x53\x58\x59\x5b\xca\xe3\x68\xb0\x68\xb1\x68\xb2\x68\xb3\x68\xb4\x59\x5c\xca\xe4\x59\x8d\xca\xe5\x68\xb6\x68\xb5\x5a\xa6\xca\xe6\x57\x72\x68\xb7\x68\xb9\x68\xb8\x68\xba\x68\xbb\xca\xe7\xca\xe8\x4c\xea\x68\xbc\x4d\xe7\xca\xe9\x68\xbd\x68\xbe\x4f\xe8\x68\xbf\x4b\xeb\x68\xc0\x68\xc1\x68\xc2\x68\xc3\x54\xb4\x68\xc4\x68\xc5\xca\xea\x68\xc6\x53\x95\xca\xeb\x68\xc7\xca\xec\xca\xed\xca\xee\x68\xc8\xca\xef\x68\xc9\x6c\x5d\xca\xf0\x68\xca\x68\xcb\x68\xcc\xca\xf1\x68\xcd\xca\xf2\xca\xf3\xca\xf4\xca\xf5\x68\xce\x4d\xd6\xca\xf6\x68\xcf\x68\xd0\x68\xd1\x68\xd2\x68\xd3\x68\xd4\x68\xd5\x68\xd7\xca\xf7\xca\xf8\x5a\x45\x68\xd6\xca\xf9\x68\xd8\xca\xfa\xca\xfb\xca\xfc\xca\xfd\xcb\x41\xcb\x42\xcb\x43\xcb\x44\xcb\x45\xcb\x46\x6b\x5a\x51\xb8", /* 9e80 */ "\xcb\x47\xcb\x48\x6c\x85\xcb\x49\xcb\x4a\xcb\x4b\xcb\x4c\x6c\x86\x6c\x87\xcb\x4d\xcb\x4e\x6c\x88\xcb\x4f\xcb\x50\xcb\x51\xcb\x52\xcb\x53\xcb\x54\x6c\x89\x51\xb3\xcb\x55\xcb\x56\xcb\x57\xcb\x58\xcb\x59\xcb\x5a\xcb\x5b\xcb\x5c\xcb\x5d\x6c\x8b\xcb\x5e\x6c\x8c\xcb\x5f\xcb\x60\xcb\x61\xcb\x62\xcb\x63\xcb\x64\x51\xf2\xcb\x65\xcb\x66\xcb\x67\xcb\x68\xcb\x69\xcb\x6a\xcb\x6b\xcb\x6c\xcb\x6d\xcb\x6e\xcb\x6f\xcb\x70\xcb\x71\x6a\xef\xcb\x72\xcb\x73\xcb\x74\x6a\xee\xcb\x75\xcb\x76\x51\xe8\xcb\x77\x6c\x82\x6c\x83\xcb\x78\xcb\x79\xcb\x7a\xcb\x7b\xcb\x7c\x4e\x66\xcb\x7d\xcb\x7e\xcb\x7f\xcb\x81\x5d\x85\xcb\x82\xcb\x83\xcb\x84\x55\xf1\x50\xe7\x68\xa3\xcb\x85\x4d\xd9\xcb\x86\xcb\x87\x54\x4d\xcb\x88\xcb\x89\xcb\x8a\x52\xab\xcb\x8b\xcb\x8c\x6c\x8d\x6c\x8e\x6c\x8f\xcb\x8d\x6c\x91\x6c\x90\xcb\x8e\x6c\x92\xcb\x8f\xcb\x90\x6c\x95\xcb\x91\x6c\x94\xcb\x92\x6c\x93\x6c\x96\xcb\x93\xcb\x94\xcb\x95\xcb\x96\x6c\x97\xcb\x97\xcb\x98\xcb\x99\xcb\x9a\xcb\x9b\xcb\x9c\xcb\x9d\xcb\x9e\xcb\x9f\x67\x8a\xcb\xa0\x67\x8b\x67\x8c\xcb\xa1\x6b\xbb\xcb\xa2", /* 9f00 */ "\xcb\xa3\xcb\xa4\xcb\xa5\xcb\xa6\xcb\xa7\xcb\xa8\xcb\xa9\xcb\xaa\xcb\xab\xcb\xac\xcb\xad\x6b\xbc\xcb\xae\x6b\xbd\x4b\xa5\xcb\xaf\x5c\xbd\xcb\xb0\xcb\xb1\x4d\x64\xcb\xb2\xcb\xb3\xcb\xb4\x5c\xba\xcb\xb5\x5e\xb0\xcb\xb6\xcb\xb7\xcb\xb8\xcb\xb9\xcb\xba\xcb\xbb\x55\xf2\xcb\xbc\x6c\x98\xcb\xbd\xcb\xbe\xcb\xbf\xcb\xc0\xcb\xc1\xcb\xc2\xcb\xc3\xcb\xc4\xcb\xc5\x6c\x99\xcb\xc6\xcb\xc7\x6c\x9a\xcb\xc8\xcb\xc9\xcb\xca\xcb\xcb\xcb\xcc\xcb\xcd\xcb\xce\x6c\x9c\xcb\xcf\x6c\x9b\xcb\xd0\x49\x67\xcb\xd1\x6c\x9d\x6c\x9e\xcb\xd2\xcb\xd3\xcb\xd4\xcb\xd5\xcb\xd6\x6c\x9f\xcb\xd7\xcb\xd8\xcb\xd9\xcb\xda\xcb\xdb\xcb\xdc\xcb\xdd\xcb\xde\xcb\xdf\xcb\xe0\xcb\xe1\x53\xea\x66\xb3\xcb\xe2\xcb\xe3\xcb\xe4\xcb\xe5\xcb\xe6\xcb\xe7\xcb\xe8\xcb\xe9\xcb\xea\xcb\xeb\xcb\xec\xcb\xed\xcb\xee\xcb\xef\xcb\xf0\xcb\xf1\xcb\xf2\xcb\xf3\xcb\xf4\xcb\xf5\xcb\xf6\xcb\xf7\xcb\xf8\xcb\xf9\xcb\xfa\xcb\xfb\xcb\xfc\xcb\xfd\xcc\x41\xcc\x42\xcc\x43\xcc\x44\xcc\x45\xcc\x46\xcc\x47\xcc\x48\xcc\x49\xcc\x4a\xcc\x4b\xcc\x4c\xcc\x4d\xcc\x4e\xcc\x4f\xcc\x50\xcc\x51\x4a\x7d", /* 9f80 */ "\x6b\xb2\xcc\x52\xcc\x53\x6b\xb3\x51\x85\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x54\xa2\x6b\xba\xcc\x54\xcc\x55\xcc\x56\xcc\x57\xcc\x58\xcc\x59\xcc\x5a\xcc\x5b\xcc\x5c\xcc\x5d\xcc\x5e\xcc\x5f\x51\x9b\x4d\x48\x67\x89\xcc\x60\xcc\x61\xcc\x62\x4d\x8b\x5d\x7f\xcc\x63\xcc\x64\xcc\x65\xcc\x66\xcc\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ "\x6f\x75\x6f\x76\x6f\x77\x6f\x78\x6f\x79\x6f\x7a\x6f\x7b\x6f\x7c\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x84\x6f\x85\x6f\x86\x6f\x87\x6f\x88\x6f\x89\x6f\x8a\x6f\x8b\x6f\x8c\x6f\x8d\x6f\x8e\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9c\x6f\x9d\x6f\x9e\x6f\x9f\x6f\xa0\x6f\xa1\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa7\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb3\x6f\xb4\x6f\xb5\x6f\xb6\x6f\xb7\x6f\xb8\x6f\xb9\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc0\x6f\xc1\x6f\xc2\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xc9\x6f\xca\x6f\xcb\x6f\xcc\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd1\x6f\xd2\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xde\x6f\xdf\x6f\xe0\x6f\xe1\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea\x6f\xeb\x6f\xec\x6f\xed\x6f\xee\x6f\xef\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4", /* a080 */ "\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4c\x70\x4d\x70\x4e\x70\x4f\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5e\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6b\x70\x6c\x70\x6d\x70\x6e\x70\x6f\x70\x70\x70\x71\x70\x72\x70\x73\x70\x74\x70\x75\x70\x76\x70\x77\x70\x78\x70\x79\x70\x7a\x70\x7b\x70\x7c\x70\x7d\x70\x7e\x70\x7f\x70\x80\x70\x81\x70\x82\x70\x83\x70\x84\x70\x85\x70\x86\x70\x87\x70\x88\x70\x89\x70\x8a\x70\x8b\x70\x8c\x70\x8d\x70\x8e\x70\x8f\x70\x90\x70\x91\x70\x92\x70\x93\x70\x94\x70\x95\x70\x96\x70\x97\x70\x98\x70\x99\x70\x9a\x70\x9b\x70\x9c\x70\x9d\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xab\x70\xac\x70\xad\x70\xae\x70\xaf\x70\xb0\x70\xb1\x70\xb2\x70\xb3\x70\xb4\x70\xb5\x70\xb6", /* a100 */ "\x70\xb7\x70\xb8\x70\xb9\x70\xba\x70\xbb\x70\xbc\x70\xbd\x70\xbe\x70\xbf\x70\xc0\x70\xc1\x70\xc2\x70\xc3\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc8\x70\xc9\x70\xca\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xd8\x70\xd9\x70\xda\x70\xdb\x70\xdc\x70\xdd\x70\xde\x70\xdf\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe4\x70\xe5\x70\xe6\x70\xe7\x70\xe8\x70\xe9\x70\xea\x70\xeb\x70\xec\x70\xed\x70\xee\x70\xef\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf7\x70\xf8\x70\xf9\x70\xfa\x70\xfb\x70\xfc\x70\xfd\x70\xfe\x71\x41\x71\x42\x71\x43\x71\x44\x71\x45\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4a\x71\x4b\x71\x4c\x71\x4d\x71\x4e\x71\x4f\x71\x50\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5c\x71\x5d\x71\x5e\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x64\x71\x65\x71\x66\x71\x67\x71\x68\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6e\x71\x6f\x71\x70\x71\x71\x71\x72\x71\x73\x71\x74\x71\x75\x71\x76\x71\x77\x71\x78", /* a180 */ "\x71\x79\x71\x7a\x71\x7b\x71\x7c\x71\x7d\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x84\x71\x85\x71\x86\x71\x87\x71\x88\x71\x89\x71\x8a\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x8f\x71\x90\x71\x91\x71\x92\x71\x93\x71\x94\x71\x95\x71\x96\x71\x97\x71\x98\x71\x99\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\x9f\x71\xa0\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa8\x71\xa9\x71\xaa\x71\xab\x71\xac\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb3\x71\xb4\x71\xb5\x71\xb6\x71\xb7\x71\xb8\x71\xb9\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc3\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xce\x71\xcf\x71\xd0\x71\xd1\x71\xd2\x71\xd3\x71\xd4\x71\xd5\x71\xd6\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe0\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe5\x71\xe6\x71\xe7\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xee\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8", /* a200 */ "\x71\xf9\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x47\x72\x48\x72\x49\x72\x4a\x72\x4b\x72\x4c\x72\x4d\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x52\x72\x53\x72\x54\x72\x55\x72\x56\x72\x57\x72\x58\x72\x59\x72\x5a\x72\x5b\x72\x5c\x72\x5d\x72\x5e\x72\x5f\x72\x60\x72\x61\x72\x62\x72\x63\x72\x64\x72\x65\x72\x66\x72\x67\x72\x68\x72\x69\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x6e\x72\x6f\x72\x70\x72\x71\x72\x72\x72\x73\x72\x74\x72\x75\x72\x76\x72\x77\x72\x78\x72\x79\x72\x7a\x72\x7b\x72\x7c\x72\x7d\x72\x7e\x72\x7f\x72\x80\x72\x81\x72\x82\x72\x83\x72\x84\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8a\x72\x8b\x72\x8c\x72\x8d\x72\x8e\x72\x8f\x72\x90\x72\x91\x72\x92\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\x9f\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xac\x72\xad\x72\xae\x72\xaf\x72\xb0\x72\xb1\x72\xb2\x72\xb3\x72\xb4\x72\xb5\x72\xb6\x72\xb7\x72\xb8\x72\xb9\x72\xba", /* a280 */ "\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc1\x72\xc2\x72\xc3\x72\xc4\x72\xc5\x72\xc6\x72\xc7\x72\xc8\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcd\x72\xce\x72\xcf\x72\xd0\x72\xd1\x72\xd2\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd7\x72\xd8\x72\xd9\x72\xda\x72\xdb\x72\xdc\x72\xdd\x72\xde\x72\xdf\x72\xe0\x72\xe1\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xe8\x72\xe9\x72\xea\x72\xeb\x72\xec\x72\xed\x72\xee\x72\xef\x72\xf0\x72\xf1\x72\xf2\x72\xf3\x72\xf4\x72\xf5\x72\xf6\x72\xf7\x72\xf8\x72\xf9\x72\xfa\x72\xfb\x72\xfc\x72\xfd\x72\xfe\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4d\x73\x4e\x73\x4f\x73\x50\x73\x51\x73\x52\x73\x53\x73\x54\x73\x55\x73\x56\x73\x57\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x60\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6c\x73\x6d\x73\x6e\x73\x6f\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c", /* a300 */ "\x73\x7d\x73\x7e\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x84\x73\x85\x73\x86\x73\x87\x73\x88\x73\x89\x73\x8a\x73\x8b\x73\x8c\x73\x8d\x73\x8e\x73\x8f\x73\x90\x73\x91\x73\x92\x73\x93\x73\x94\x73\x95\x73\x96\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9b\x73\x9c\x73\x9d\x73\x9e\x73\x9f\x73\xa0\x73\xa1\x73\xa2\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xa9\x73\xaa\x73\xab\x73\xac\x73\xad\x73\xae\x73\xaf\x73\xb0\x73\xb1\x73\xb2\x73\xb3\x73\xb4\x73\xb5\x73\xb6\x73\xb7\x73\xb8\x73\xb9\x73\xba\x73\xbb\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc0\x73\xc1\x73\xc2\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xc8\x73\xc9\x73\xca\x73\xcb\x73\xcc\x73\xcd\x73\xce\x73\xcf\x73\xd0\x73\xd1\x73\xd2\x73\xd3\x73\xd4\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xd9\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xde\x73\xdf\x73\xe0\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe5\x73\xe6\x73\xe7\x73\xe8\x73\xe9\x73\xea\x73\xeb\x73\xec\x73\xed\x73\xee\x73\xef\x73\xf0\x73\xf1\x73\xf2\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc", /* a380 */ "\x73\xfd\x73\xfe\x74\x41\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x55\x74\x56\x74\x57\x74\x58\x74\x59\x74\x5a\x74\x5b\x74\x5c\x74\x5d\x74\x5e\x74\x5f\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6d\x74\x6e\x74\x6f\x74\x70\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x76\x74\x77\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7e\x74\x7f\x74\x80\x74\x81\x74\x82\x74\x83\x74\x84\x74\x85\x74\x86\x74\x87\x74\x88\x74\x89\x74\x8a\x74\x8b\x74\x8c\x74\x8d\x74\x8e\x74\x8f\x74\x90\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96\x74\x97\x74\x98\x74\x99\x74\x9a\x74\x9b\x74\x9c\x74\x9d\x74\x9e\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xa7\x74\xa8\x74\xa9\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xba\x74\xbb\x74\xbc\x74\xbd\x74\xbe", /* a400 */ "\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd2\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdc\x74\xdd\x74\xde\x74\xdf\x74\xe0\x74\xe1\x74\xe2\x74\xe3\x74\xe4\x74\xe5\x74\xe6\x74\xe7\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xee\x74\xef\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf4\x74\xf5\x74\xf6\x74\xf7\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x41\x75\x42\x75\x43\x75\x44\x75\x45\x75\x46\x75\x47\x75\x48\x75\x49\x75\x4a\x75\x4b\x75\x4c\x75\x4d\x75\x4e\x75\x4f\x75\x50\x75\x51\x75\x52\x75\x53\x75\x54\x75\x55\x75\x56\x75\x57\x75\x58\x75\x59\x75\x5a\x75\x5b\x75\x5c\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x65\x75\x66\x75\x67\x75\x68\x75\x69\x75\x6a\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x72\x75\x73\x75\x74\x75\x75\x75\x76\x75\x77\x75\x78\x75\x79\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x7f\x75\x80", /* a480 */ "\x75\x81\x75\x82\x75\x83\x75\x84\x75\x85\x75\x86\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8b\x75\x8c\x75\x8d\x75\x8e\x75\x8f\x75\x90\x75\x91\x75\x92\x75\x93\x75\x94\x75\x95\x75\x96\x75\x97\x75\x98\x75\x99\x75\x9a\x75\x9b\x75\x9c\x75\x9d\x75\x9e\x75\x9f\x75\xa0\x75\xa1\x75\xa2\x75\xa3\x75\xa4\x75\xa5\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xab\x75\xac\x75\xad\x75\xae\x75\xaf\x75\xb0\x75\xb1\x75\xb2\x75\xb3\x75\xb4\x75\xb5\x75\xb6\x75\xb7\x75\xb8\x75\xb9\x75\xba\x75\xbb\x75\xbc\x75\xbd\x75\xbe\x75\xbf\x75\xc0\x75\xc1\x75\xc2\x75\xc3\x75\xc4\x75\xc5\x75\xc6\x75\xc7\x75\xc8\x75\xc9\x75\xca\x75\xcb\x75\xcc\x75\xcd\x75\xce\x75\xcf\x75\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1", /* e080 */ "\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85", /* e100 */ "\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48", /* e180 */ "\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9", /* e200 */ "\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d", /* e280 */ "\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50", /* e300 */ "\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1", /* e380 */ "\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95", /* e400 */ "\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58", /* e480 */ "\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9", /* e500 */ "\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d", /* e580 */ "\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60", /* e600 */ "\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1", /* e680 */ "\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5", /* e700 */ "\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x80\x41\x80\x42\x80\x43\x80\x44\x80\x45\x80\x46\x80\x47\x80\x48\x80\x49\x80\x4a\x80\x4b\x80\x4c\x80\x4d\x80\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x90\xfc\x91\xfc\x92\xfc\x93\xfc\x94\xfc\x95\xfc\x96\xfc\x97\xfc\x98\xfc\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x57\xce\x58\xce\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x67\x00\x00\x00\x00\x00\x00\x00\x00\xce\x6c\xce\x6d\x00\x00\x00\x00\x00\x00\x00\x00\xce\x72\xce\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x96\xce\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5b\x44\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x46\xce\x47\xce\x48\xce\x49\x00\x00\xce\x4a\x00\x00\xce\x4b\xce\x4c\x00\x00\x00\x00\x00\x00\xce\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x4e\xce\x4f\xce\x50\x00\x00\xce\x51\xce\x52\x00\x00\x00\x00\xce\x53\xce\x54\xce\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x47\xf8\x48\xf8\x49\xf8\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x6b\xf8\x6c\xf8\x6d\xf8\x6e\x00\x00\x00\x00", /* fb80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x7f\xf8\x80\xf8\x81\xf8\x82\xf8\x83\xf8\x84\xf8\x85\xf8\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x9b\xf8\x9c\xf8\x9d\xf8\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xc4\xf8\xc5\xf8\xc6\xf8\xc7\xf8\xc8\xf8\xc9\xf8\xca\xf8\xcb\xf8\xcc\xf8\xcd\xf8\xce\xf8\xcf\xf8\xd0\xf8\xd1\xf8\xd2\xf8\xd3\xf8\xd4\xf8\xd5\xf8\xd6\xf8\xd7\xf8\xd8\xf8\xd9\xf8\xda\xf8\xdb\xf8\xdc\xf8\xdd\xf8\xde\xf8\xdf\xf8\xe0\xf8\xe1\xf8\xe2\xf8\xe3\xf8\xe4\xf8\xe5\xf8\xe6\xf8\xe7\xf8\xe8\xf8\xe9\xf8\xea\xf8\xeb\xf8\xec\xf8\xed\xf8\xee\xf8\xef\xf8\xf0", /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa8\x47\x51\x00\x00\x47\x52\x47\x53\x47\x41\x47\x42\x47\x4f\x47\x50\x47\x43\x47\x44\x47\x4d\x47\x4e\x47\x47\x47\x48\x47\x45\x47\x46\x47\x49\x47\x4a\x47\x4b\x47\x4c\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa9\xcd\xaa\xcd\xab\xcd\xac\xcd\xad\xcd\xae\xcd\xaf\xcd\xb0\xcd\xb1\xcd\xb2\x00\x00\xcd\xb3\xcd\xb4\xcd\xb5\xcd\xb6\x00\x00\xcd\xb7\xcd\xb8\xcd\xb9\xcd\xba\xcd\xbb\xcd\xbc\xcd\xbd\xcd\xbe\xcd\xbf\xcd\xc0\xcd\xc1\xcd\xc2\xcd\xc3\xcd\xc4\x00\x00\xcd\xc5\xcd\xc6\xcd\xc7\xcd\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fe80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xd0\xfb\xd1\xfb\xd2\xfb\xd3\xfb\xd4\xfb\xd5\xfb\xd6\xfb\xd7\xfb\xd8\xfb\xd9\x00\x00\x00\x00\xfb\xdc\xfb\xdd\xfb\xde\xfb\xdf\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xe4\xfb\xe5\xfb\xe6\xfb\xe7\xfb\xe8\xfb\xe9\xfb\xea\xfb\xeb\xfb\xec\xfb\xed\xfb\xee\xfb\xef\xfb\xf0\xfb\xf1\x00\x00\x00\x00\xfb\xf4\xfb\xf5\xfb\xf6\xfb\xf7\xfb\xf8\xfb\xf9\xfb\xfa\xfb\xfb\xfb\xfc\xfb\xfd\xfb\xfe\xfc\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x52\xfc\x53\xfc\x54\xfc\x55\xfc\x56\xfc\x57\xfc\x58\xfc\x59\xfc\x5a\xfc\x5b\xfc\x5c\xfc\x5d\xfc\x5e\xfc\x5f\xfc\x60\xfc\x61\xfc\x62\xfc\x63\xfc\x64\xfc\x65\xfc\x66\xfc\x67\xfc\x68\xfc\x69\xfc\x6a\xfc\x6b\xfc\x6c\xfc\x6d\xfc\x6e\xfc\x6f\xfc\x70\xfc\x71\xfc\x72\xfc\x73\xfc\x74\xfc\x75\xfc\x76\xfc\x77\xfc\x78\xfc\x79\xfc\x7a\xfc\x7b\xfc\x7c\xfc\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x84\xfc\x85\x00\x00\x00\x00\x00\x00", /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-1388_P103-2001 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x21\x6a\x21\x6b\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\xf8\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x15\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x64\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x65\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x16\x30\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x36\x22\x27\x22\x28\x22\x11\x22\x0f\x22\x2a\x22\x29\x22\x08\x22\x37\x22\x1a\x22\xa5\x22\x25\x22\x20\x23\x12\x22\x99\x22\x2b\x22\x2e\x22\x61\x22\x4c\x22\x48\x22\x3d\x22\x1d\x00\x00\x22\x6e\x22\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x20\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x88\x24\x89\x24\x8a\x24\x8b\x24\x8c\x24\x8d\x24\x8e\x24\x8f\x24\x90\x24\x91\x24\x92\x24\x93\x24\x94\x24\x95\x24\x96\x24\x97\x24\x98\x24\x99\x24\x9a\x24\x9b\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x24\x7e\x24\x7f\x24\x80\x24\x81\x24\x82\x24\x83\x24\x84\x24\x85\x24\x86\x24\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x20\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x20\x32\x21\x32\x22\x32\x23\x32\x24\x32\x25\x32\x26\x32\x27\x32\x28\x32\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xe1\x01\xce\x00\xe0\x01\x13\x00\xe9\x01\x1b\x00\xe8\x01\x2b\x00\xed\x01\xd0\x00\xec\x01\x4d\x00\xf3\x01\xd2\x00\xf2\x01\x6b\x00\xfa\x01\xd4\x00\xf9\x01\xd6\x01\xd8\x01\xda\x01\xdc\x00\xfc\x00\xea\x02\x51\xe7\xc7\x01\x44\x01\x48\x01\xf9\x02\x61\x00\x00\x00\x00\x00\x00\x00\x00\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f", /* 4680 */ "\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x25\x01\x25\x02\x25\x03\x25\x04\x25\x05\x25\x06\x25\x07\x25\x08\x25\x09\x25\x0a\x25\x0b\x25\x0c\x25\x0d\x25\x0e\x25\x0f\x25\x10\x25\x11\x25\x12\x25\x13\x25\x14\x25\x15\x25\x16\x25\x17\x25\x18\x25\x19\x25\x1a\x25\x1b\x25\x1c\x25\x1d\x25\x1e\x25\x1f\x25\x20\x25\x21\x25\x22\x25\x23\x25\x24\x25\x25\x25\x26\x25\x27\x25\x28\x25\x29\x25\x2a\x25\x2b\x25\x2c\x25\x2d\x25\x2e\x25\x2f\x25\x30\x25\x31\x25\x32\x25\x33\x25\x34\x25\x35\x25\x36\x25\x37\x25\x38\x25\x39\x25\x3a\x25\x3b\x25\x3c\x25\x3d\x25\x3e\x25\x3f\x25\x40\x25\x41\x25\x42\x25\x43\x25\x44\x25\x45\x25\x46\x25\x47\x25\x48\x25\x49\x25\x4a\x25\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x35\xfe\x36\xfe\x39\xfe\x3a\xfe\x3f\xfe\x40\xfe\x3d\xfe\x3e\xfe\x41\xfe\x42\xfe\x43\xfe\x44\xfe\x3b\xfe\x3c\xfe\x37\xfe\x38\xfe\x31\xfe\x33\xfe\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x06\x01\x06\x02\x06\x03\x06\x04\x06\x05\x06\x06\x06\x07\x06\x08\x06\x09\x06\x0a\x06\x0b\x06\x0c\x06\x0d\x06\x0e\x06\x0f\x06\x10\x06\x11\x06\x12\x06\x13\x06\x14\x06\x15\x06\x16\x06\x17\x06\x18\x06\x19\x06\x1a\x06\x1b\x06\x1c\x06\x1d\x06\x1e\x06\x1f\x06\x20\x06\x21\x06\x22", /* 4780 */ "\x06\x23\x06\x24\x06\x25\x06\x26\x06\x27\x06\x28\x06\x29\x06\x2a\x06\x2b\x06\x2c\x06\x2d\x06\x2e\x06\x2f\x06\x30\x06\x31\x06\x32\x06\x33\x06\x34\x06\x35\x06\x36\x06\x37\x06\x38\x06\x39\x06\x3a\x06\x3b\x06\x3c\x06\x3d\x06\x3e\x06\x3f\x06\x40\x06\x41\x06\x42\x06\x43\x06\x44\x06\x45\x06\x46\x06\x47\x06\x48\x06\x49\x06\x4a\x06\x4b\x06\x4c\x06\x4d\x06\x4e\x06\x4f\x06\x50\x06\x51\x06\x52\x06\x53\x06\x54\x06\x55\x06\x56\x06\x57\x06\x58\x06\x59\x06\x5a\x06\x5b\x06\x5c\x06\x5d\x06\x5e\x06\x5f\x06\x60\x06\x61\x06\x62\x06\x63\x06\x64\x06\x65\x06\x66\x06\x67\x06\x68\x06\x69\x06\x6a\x06\x6b\x06\x6c\x06\x6d\x06\x6e\x06\x6f\x06\x70\x06\x71\x06\x72\x06\x73\x06\x74\x06\x75\x06\x76\x06\x77\x06\x78\x06\x79\x06\x7a\x06\x7b\x06\x7c\x06\x7d\x06\x7e\x06\x7f\x06\x80\x06\x81\x06\x82\x06\x83\x06\x84\x06\x85\x06\x86\x06\x87\x06\x88\x06\x89\x06\x8a\x06\x8b\x06\x8c\x06\x8d\x06\x8e\x06\x8f\x06\x90\x06\x91\x06\x92\x06\x93\x06\x94\x06\x95\x06\x96\x06\x97\x06\x98\x06\x99\x06\x9a\x06\x9b\x06\x9c\x06\x9d\x06\x9e\x06\x9f\x06\xa0\x06\xa1\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\xa2\x06\xa3\x06\xa4\x06\xa5\x06\xa6\x06\xa7\x06\xa8\x06\xa9\x06\xaa\x06\xab\x06\xac\x06\xad\x06\xae\x06\xaf\x06\xb0\x06\xb1\x06\xb2\x06\xb3\x06\xb4\x06\xb5\x06\xb6\x06\xb7\x06\xb8\x06\xb9\x06\xba\x06\xbb\x06\xbc\x06\xbd\x06\xbe\x06\xbf\x06\xc0\x06\xc1\x06\xc2\x06\xc3\x06\xc4\x06\xc5\x06\xc6\x06\xc7\x06\xc8\x06\xc9\x06\xca\x06\xcb\x06\xcc\x06\xcd\x06\xce\x06\xcf\x06\xd0\x06\xd1\x06\xd2\x06\xd3\x06\xd4\x06\xd5\x06\xd6\x06\xd7\x06\xd8\x06\xd9\x06\xda\x06\xdb\x06\xdc\x06\xdd\x06\xde\x06\xdf\x06\xe0", /* 4880 */ "\x06\xe1\x06\xe2\x06\xe3\x06\xe4\x06\xe5\x06\xe6\x06\xe7\x06\xe8\x06\xe9\x06\xea\x06\xeb\x06\xec\x06\xed\x06\xee\x06\xef\x06\xf0\x06\xf1\x06\xf2\x06\xf3\x06\xf4\x06\xf5\x06\xf6\x06\xf7\x06\xf8\x06\xf9\x06\xfa\x06\xfb\x06\xfc\x06\xfd\x06\xfe\x06\xff\x00\x00\x55\x4a\x96\x3f\x57\xc3\x63\x28\x54\xce\x55\x09\x54\xc0\x76\x91\x76\x4c\x85\x3c\x77\xee\x82\x7e\x78\x8d\x72\x31\x96\x98\x97\x8d\x6c\x28\x5b\x89\x4f\xfa\x63\x09\x66\x97\x5c\xb8\x80\xfa\x68\x48\x80\xae\x66\x02\x76\xce\x51\xf9\x65\x56\x71\xac\x7f\xf1\x88\x84\x50\xb2\x59\x65\x61\xca\x6f\xb3\x82\xad\x63\x4c\x62\x52\x53\xed\x54\x27\x7b\x06\x51\x6b\x75\xa4\x5d\xf4\x62\xd4\x8d\xcb\x97\x76\x62\x8a\x80\x19\x57\x5d\x97\x38\x7f\x62\x72\x38\x76\x7d\x67\xcf\x76\x7e\x64\x46\x4f\x70\x8d\x25\x62\xdc\x7a\x17\x65\x91\x73\xed\x64\x2c\x62\x73\x82\x2c\x98\x81\x67\x7f\x72\x48\x62\x6e\x62\xcc\x4f\x34\x74\xe3\x53\x4a\x52\x9e\x7e\xca\x90\xa6\x5e\x2e\x68\x86\x69\x9c\x81\x80\x7e\xd1\x68\xd2\x78\xc5\x86\x8c\x95\x51\x50\x8d\x8c\x24\x82\xde\x80\xde\x53\x05\x89\x12\x52\x65\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x84\x96\xf9\x4f\xdd\x58\x21\x99\x71\x5b\x9d\x62\xb1\x62\xa5\x66\xb4\x8c\x79\x9c\x8d\x72\x06\x67\x6f\x78\x91\x60\xb2\x53\x51\x53\x17\x8f\x88\x80\xcc\x8d\x1d\x94\xa1\x50\x0d\x72\xc8\x59\x07\x60\xeb\x71\x19\x88\xab\x59\x54\x82\xef\x67\x2c\x7b\x28\x5d\x29\x7e\xf7\x75\x2d\x6c\xf5\x8e\x66\x8f\xf8\x90\x3c\x9f\x3b\x6b\xd4\x91\x19\x7b\x14\x5f\x7c\x78\xa7\x84\xd6\x85\x3d\x6b\xd5\x6b\xd9\x6b\xd6\x5e\x01\x5e\x87\x75\xf9\x95\xed\x65\x5d\x5f\x0a\x5f\xc5\x8f\x9f\x58\xc1\x81\xc2\x90\x7f\x96\x5b\x97\xad\x8f\xb9", /* 4980 */ "\x00\x00\x7f\x16\x8d\x2c\x62\x41\x4f\xbf\x53\xd8\x53\x5e\x8f\xa8\x8f\xa9\x8f\xab\x90\x4d\x68\x07\x5f\x6a\x81\x98\x88\x68\x9c\xd6\x61\x8b\x52\x2b\x76\x2a\x5f\x6c\x65\x8c\x6f\xd2\x6e\xe8\x5b\xbe\x64\x48\x51\x75\x51\xb0\x67\xc4\x4e\x19\x79\xc9\x99\x7c\x70\xb3\x75\xc5\x5e\x76\x73\xbb\x83\xe0\x64\xad\x62\xe8\x94\xb5\x6c\xe2\x53\x5a\x52\xc3\x64\x0f\x94\xc2\x7b\x94\x4f\x2f\x5e\x1b\x82\x36\x81\x16\x81\x8a\x6e\x24\x6c\xca\x9a\x73\x63\x55\x53\x5c\x54\xfa\x88\x65\x57\xe0\x4e\x0d\x5e\x03\x6b\x65\x7c\x3f\x90\xe8\x60\x16\x64\xe6\x73\x1c\x88\xc1\x67\x50\x62\x4d\x8d\x22\x77\x6c\x8e\x29\x91\xc7\x5f\x69\x83\xdc\x85\x21\x99\x10\x53\xc2\x86\x95\x6b\x8b\x60\xed\x60\xe8\x70\x7f\x82\xcd\x82\x31\x4e\xd3\x6c\xa7\x85\xcf\x64\xcd\x7c\xd9\x69\xfd\x66\xf9\x83\x49\x53\x95\x7b\x56\x4f\xa7\x51\x8c\x6d\x4b\x5c\x42\x8e\x6d\x63\xd2\x53\xc9\x83\x2c\x83\x36\x67\xe5\x78\xb4\x64\x3d\x5b\xdf\x5c\x94\x5d\xee\x8b\xe7\x62\xc6\x67\xf4\x8c\x7a\x64\x00\x63\xba\x87\x49\x99\x8b\x8c\x17\x7f\x20\x94\xf2\x4e\xa7\x96\x10\x98\xa4\x66\x0c\x73\x16\x00\x00\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x3a\x5c\x1d\x5e\x38\x95\x7f\x50\x7f\x80\xa0\x53\x82\x65\x5e\x75\x45\x55\x31\x50\x21\x8d\x85\x62\x84\x94\x9e\x67\x1d\x56\x32\x6f\x6e\x5d\xe2\x54\x35\x70\x92\x8f\x66\x62\x6f\x64\xa4\x63\xa3\x5f\x7b\x6f\x88\x90\xf4\x81\xe3\x8f\xb0\x5c\x18\x66\x68\x5f\xf1\x6c\x89\x96\x48\x8d\x81\x88\x6c\x64\x91\x79\xf0\x57\xce\x6a\x59\x62\x10\x54\x48\x4e\x58\x7a\x0b\x60\xe9\x6f\x84\x8b\xda\x62\x7f\x90\x1e\x9a\x8b\x79\xe4\x54\x03\x75\xf4\x63\x01\x53\x19\x6c\x60\x8f\xdf\x5f\x1b\x9a\x70\x80\x3b\x9f\x7f\x4f\x88\x5c\x3a", /* 4a80 */ "\x00\x00\x8d\x64\x7f\xc5\x65\xa5\x70\xbd\x51\x45\x51\xb2\x86\x6b\x5d\x07\x5b\xa0\x62\xbd\x91\x6c\x75\x74\x8e\x0c\x7a\x20\x61\x01\x7b\x79\x4e\xc7\x7e\xf8\x77\x85\x4e\x11\x81\xed\x52\x1d\x51\xfa\x6a\x71\x53\xa8\x8e\x87\x95\x04\x96\xcf\x6e\xc1\x96\x64\x69\x5a\x78\x40\x50\xa8\x77\xd7\x64\x10\x89\xe6\x59\x04\x63\xe3\x5d\xdd\x7a\x7f\x69\x3d\x4f\x20\x82\x39\x55\x98\x4e\x32\x75\xae\x7a\x97\x5e\x62\x5e\x8a\x95\xef\x52\x1b\x54\x39\x70\x8a\x63\x76\x95\x24\x57\x82\x66\x25\x69\x3f\x91\x87\x55\x07\x6d\xf3\x7e\xaf\x88\x22\x62\x33\x7e\xf0\x75\xb5\x83\x28\x78\xc1\x96\xcc\x8f\x9e\x61\x48\x74\xf7\x8b\xcd\x6b\x64\x52\x3a\x8d\x50\x6b\x21\x80\x6a\x84\x71\x56\xf1\x53\x06\x4e\xce\x4e\x1b\x51\xd1\x7c\x97\x91\x8b\x7c\x07\x4f\xc3\x8e\x7f\x7b\xe1\x7a\x9c\x64\x67\x5d\x14\x50\xac\x81\x06\x76\x01\x7c\xb9\x6d\xec\x7f\xe0\x67\x51\x5b\x58\x5b\xf8\x78\xcb\x64\xae\x64\x13\x63\xaa\x63\x2b\x95\x19\x64\x2d\x8f\xbe\x7b\x54\x76\x29\x62\x53\x59\x27\x54\x46\x6b\x79\x50\xa3\x62\x34\x5e\x26\x6b\x86\x4e\xe3\x8d\x37\x88\x8b\x5f\x85\x90\x2e\x00\x00\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x20\x80\x3d\x62\xc5\x4e\x39\x53\x55\x90\xf8\x63\xb8\x80\xc6\x65\xe6\x6c\x2e\x4f\x46\x60\xee\x6d\xe1\x8b\xde\x5f\x39\x86\xcb\x5f\x53\x63\x21\x51\x5a\x83\x61\x68\x63\x52\x00\x63\x63\x8e\x48\x50\x12\x5c\x9b\x79\x77\x5b\xfc\x52\x30\x7a\x3b\x60\xbc\x90\x53\x76\xd7\x5f\xb7\x5f\x97\x76\x84\x8e\x6c\x70\x6f\x76\x7b\x7b\x49\x77\xaa\x51\xf3\x90\x93\x58\x24\x4f\x4e\x6e\xf4\x8f\xea\x65\x4c\x7b\x1b\x72\xc4\x6d\xa4\x7f\xdf\x5a\xe1\x62\xb5\x5e\x95\x57\x30\x84\x82\x7b\x2c\x5e\x1d\x5f\x1f\x90\x12\x7f\x14\x98\xa0", /* 4b80 */ "\x00\x00\x63\x82\x6e\xc7\x78\x98\x70\xb9\x51\x78\x97\x5b\x57\xab\x75\x35\x4f\x43\x75\x38\x5e\x97\x60\xe6\x59\x60\x6d\xc0\x6b\xbf\x78\x89\x53\xfc\x96\xd5\x51\xcb\x52\x01\x63\x89\x54\x0a\x94\x93\x8c\x03\x8d\xcc\x72\x39\x78\x9f\x87\x76\x8f\xed\x8c\x0d\x53\xe0\x4e\x01\x76\xef\x53\xee\x94\x89\x98\x76\x9f\x0e\x95\x2d\x5b\x9a\x8b\xa2\x4e\x22\x4e\x1c\x51\xac\x84\x63\x61\xc2\x52\xa8\x68\x0b\x4f\x97\x60\x6b\x51\xbb\x6d\x1e\x51\x5c\x62\x96\x65\x97\x96\x61\x8c\x46\x90\x17\x75\xd8\x90\xfd\x77\x63\x6b\xd2\x72\x8a\x72\xec\x8b\xfb\x58\x35\x77\x79\x8d\x4c\x67\x5c\x95\x40\x80\x9a\x5e\xa6\x6e\x21\x59\x92\x7a\xef\x77\xed\x95\x3b\x6b\xb5\x65\xad\x7f\x0e\x58\x06\x51\x51\x96\x1f\x5b\xf9\x58\xa9\x54\x28\x8e\x72\x65\x66\x98\x7f\x56\xe4\x94\x9d\x76\xfe\x90\x41\x63\x87\x54\xc6\x59\x1a\x59\x3a\x57\x9b\x8e\xb2\x67\x35\x8d\xfa\x82\x35\x52\x41\x60\xf0\x58\x15\x86\xfe\x5c\xe8\x9e\x45\x4f\xc4\x98\x9d\x8b\xb9\x5a\x25\x60\x76\x53\x84\x62\x7c\x90\x4f\x91\x02\x99\x7f\x60\x69\x80\x0c\x51\x3f\x80\x33\x5c\x14\x99\x75\x6d\x31\x4e\x8c\x00\x00\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x30\x53\xd1\x7f\x5a\x7b\x4f\x4f\x10\x4e\x4f\x96\x00\x6c\xd5\x73\xd0\x85\xe9\x5e\x06\x75\x6a\x7f\xfb\x6a\x0a\x77\xfe\x94\x92\x7e\x41\x51\xe1\x70\xe6\x53\xcd\x8f\xd4\x83\x03\x8d\x29\x72\xaf\x99\x6d\x6c\xdb\x57\x4a\x82\xb3\x65\xb9\x80\xaa\x62\x3f\x96\x32\x59\xa8\x4e\xff\x8b\xbf\x7e\xba\x65\x3e\x83\xf2\x97\x5e\x55\x61\x98\xde\x80\xa5\x53\x2a\x8b\xfd\x54\x20\x80\xba\x5e\x9f\x6c\xb8\x8d\x39\x82\xac\x91\x5a\x54\x29\x6c\x1b\x52\x06\x7e\xb7\x57\x5f\x71\x1a\x6c\x7e\x7c\x89\x59\x4b\x4e\xfd\x5f\xff\x61\x24", /* 4c80 */ "\x00\x00\x7c\xaa\x4e\x30\x5c\x01\x67\xab\x87\x02\x5c\xf0\x95\x0b\x98\xce\x75\xaf\x70\xfd\x90\x22\x51\xaf\x7f\x1d\x8b\xbd\x59\x49\x51\xe4\x4f\x5b\x54\x26\x59\x2b\x65\x77\x80\xa4\x5b\x75\x62\x76\x62\xc2\x8f\x90\x5e\x45\x6c\x1f\x7b\x26\x4f\x0f\x4f\xd8\x67\x0d\x6d\x6e\x6d\xaa\x79\x8f\x88\xb1\x5f\x17\x75\x2b\x62\x9a\x8f\x85\x4f\xef\x91\xdc\x65\xa7\x81\x2f\x81\x51\x5e\x9c\x81\x50\x8d\x74\x52\x6f\x89\x86\x8d\x4b\x59\x0d\x50\x85\x4e\xd8\x96\x1c\x72\x36\x81\x79\x8d\x1f\x5b\xcc\x8b\xa3\x96\x44\x59\x87\x7f\x1a\x54\x90\x56\x76\x56\x0e\x8b\xe5\x65\x39\x69\x82\x94\x99\x76\xd6\x6e\x89\x5e\x72\x75\x18\x67\x46\x67\xd1\x7a\xff\x80\x9d\x8d\x76\x61\x1f\x79\xc6\x65\x62\x8d\x63\x51\x88\x52\x1a\x94\xa2\x7f\x38\x80\x9b\x7e\xb2\x5c\x97\x6e\x2f\x67\x60\x7b\xd9\x76\x8b\x9a\xd8\x81\x8f\x7f\x94\x7c\xd5\x64\x1e\x95\x50\x7a\x3f\x54\x4a\x54\xe5\x6b\x4c\x64\x01\x62\x08\x9e\x3d\x80\xf3\x75\x99\x52\x72\x97\x69\x84\x5b\x68\x3c\x86\xe4\x96\x01\x96\x94\x94\xec\x4e\x2a\x54\x04\x7e\xd9\x68\x39\x8d\xdf\x80\x15\x66\xf4\x5e\x9a\x7f\xb9\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x80\x3f\x68\x97\x5d\xe5\x65\x3b\x52\x9f\x60\x6d\x9f\x9a\x4f\x9b\x8e\xac\x51\x6c\x5b\xab\x5f\x13\x5d\xe9\x6c\x5e\x62\xf1\x8d\x21\x51\x71\x94\xa9\x52\xfe\x6c\x9f\x82\xdf\x72\xd7\x57\xa2\x67\x84\x8d\x2d\x59\x1f\x8f\x9c\x83\xc7\x54\x95\x7b\x8d\x4f\x30\x6c\xbd\x5b\x64\x59\xd1\x9f\x13\x53\xe4\x86\xca\x9a\xa8\x8c\x37\x80\xa1\x65\x45\x98\x7e\x56\xfa\x96\xc7\x52\x2e\x74\xdc\x52\x50\x5b\xe1\x63\x02\x89\x02\x4e\x56\x62\xd0\x60\x2a\x68\xfa\x51\x73\x5b\x98\x51\xa0\x89\xc2\x7b\xa1\x99\x86\x7f\x50\x60\xef", /* 4d80 */ "\x00\x00\x70\x4c\x8d\x2f\x51\x49\x5e\x7f\x90\x1b\x74\x70\x89\xc4\x57\x2d\x78\x45\x5f\x52\x9f\x9f\x95\xfa\x8f\x68\x9b\x3c\x8b\xe1\x76\x78\x68\x42\x67\xdc\x8d\xea\x8d\x35\x52\x3d\x8f\x8a\x6e\xda\x68\xcd\x95\x05\x90\xed\x56\xfd\x67\x9c\x88\xf9\x8f\xc7\x54\xc8\x9a\xb8\x5b\x69\x6d\x77\x6c\x26\x4e\xa5\x5b\xb3\x9a\x87\x91\x63\x61\xa8\x90\xaf\x97\xe9\x54\x2b\x6d\xb5\x5b\xd2\x51\xfd\x55\x8a\x7f\x55\x7f\xf0\x64\xbc\x63\x4d\x65\xf1\x61\xbe\x60\x8d\x71\x0a\x6c\x57\x6c\x49\x59\x2f\x67\x6d\x82\x2a\x58\xd5\x56\x8e\x8c\x6a\x6b\xeb\x90\xdd\x59\x7d\x80\x17\x53\xf7\x6d\x69\x54\x75\x55\x9d\x83\x77\x83\xcf\x68\x38\x79\xbe\x54\x8c\x4f\x55\x54\x08\x76\xd2\x8c\x89\x96\x02\x6c\xb3\x6d\xb8\x8d\x6b\x89\x10\x9e\x64\x8d\x3a\x56\x3f\x9e\xd1\x75\xd5\x5f\x88\x72\xe0\x60\x68\x54\xfc\x4e\xa8\x6a\x2a\x88\x61\x60\x52\x8f\x70\x54\xc4\x70\xd8\x86\x79\x9e\x3f\x6d\x2a\x5b\x8f\x5f\x18\x7e\xa2\x55\x89\x4f\xaf\x73\x34\x54\x3c\x53\x9a\x50\x19\x54\x0e\x54\x7c\x4e\x4e\x5f\xfd\x74\x5a\x58\xf6\x84\x6b\x80\xe1\x87\x74\x72\xd0\x7c\xca\x6e\x56\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x27\x86\x4e\x55\x2c\x62\xa4\x4e\x92\x6c\xaa\x62\x37\x82\xb1\x54\xd7\x53\x4e\x73\x3e\x6e\xd1\x75\x3b\x52\x12\x53\x16\x8b\xdd\x69\xd0\x5f\x8a\x60\x00\x6d\xee\x57\x4f\x6b\x22\x73\xaf\x68\x53\x8f\xd8\x7f\x13\x63\x62\x60\xa3\x55\x24\x75\xea\x8c\x62\x71\x15\x6d\xa3\x5b\xa6\x5e\x7b\x83\x52\x61\x4c\x9e\xc4\x78\xfa\x87\x57\x7c\x27\x76\x87\x51\xf0\x60\xf6\x71\x4c\x66\x43\x5e\x4c\x60\x4d\x8c\x0e\x70\x70\x63\x25\x8f\x89\x5f\xbd\x60\x62\x86\xd4\x56\xde\x6b\xc1\x60\x94\x61\x67\x53\x49\x60\xe0\x66\x66\x8d\x3f", /* 4e80 */ "\x00\x00\x79\xfd\x4f\x1a\x70\xe9\x6c\x47\x8b\xb3\x8b\xf2\x7e\xd8\x83\x64\x66\x0f\x5a\x5a\x9b\x42\x6d\x51\x6d\xf7\x8c\x41\x6d\x3b\x4f\x19\x70\x6b\x83\xb7\x62\x16\x60\xd1\x97\x0d\x8d\x27\x79\x78\x51\xfb\x57\x3e\x57\xfa\x67\x3a\x75\x78\x7a\x3d\x79\xef\x7b\x95\x80\x8c\x99\x65\x8f\xf9\x6f\xc0\x8b\xa5\x9e\x21\x59\xec\x7e\xe9\x7f\x09\x54\x09\x67\x81\x68\xd8\x8f\x91\x7c\x4d\x96\xc6\x53\xca\x60\x25\x75\xbe\x6c\x72\x53\x73\x5a\xc9\x7e\xa7\x63\x24\x51\xe0\x81\x0a\x5d\xf1\x84\xdf\x62\x80\x51\x80\x5b\x63\x4f\x0e\x79\x6d\x52\x42\x60\xb8\x6d\x4e\x5b\xc4\x5b\xc2\x8b\xa1\x8b\xb0\x65\xe2\x5f\xcc\x96\x45\x59\x93\x7e\xe7\x7e\xaa\x56\x09\x67\xb7\x59\x39\x4f\x73\x5b\xb6\x52\xa0\x83\x5a\x98\x8a\x8d\x3e\x75\x32\x94\xbe\x50\x47\x7a\x3c\x4e\xf7\x67\xb6\x9a\x7e\x5a\xc1\x6b\x7c\x76\xd1\x57\x5a\x5c\x16\x7b\x3a\x95\xf4\x71\x4e\x51\x7c\x80\xa9\x82\x70\x59\x78\x7f\x04\x83\x27\x68\xc0\x67\xec\x78\xb1\x78\x77\x62\xe3\x63\x61\x7b\x80\x4f\xed\x52\x6a\x51\xcf\x83\x50\x69\xdb\x92\x74\x8d\xf5\x8d\x31\x89\xc1\x95\x2e\x7b\xad\x4e\xf6\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x65\x82\x30\x52\x51\x99\x6f\x6e\x10\x6e\x85\x6d\xa7\x5e\xfa\x50\xf5\x59\xdc\x5c\x06\x6d\x46\x6c\x5f\x75\x86\x84\x8b\x68\x68\x59\x56\x8b\xb2\x53\x20\x91\x71\x96\x4d\x85\x49\x69\x12\x79\x01\x71\x26\x80\xf6\x4e\xa4\x90\xca\x6d\x47\x9a\x84\x5a\x07\x56\xbc\x64\x05\x94\xf0\x77\xeb\x4f\xa5\x81\x1a\x72\xe1\x89\xd2\x99\x7a\x7f\x34\x7e\xde\x52\x7f\x65\x59\x91\x75\x8f\x7f\x8f\x83\x53\xeb\x7a\x96\x63\xed\x63\xa5\x76\x86\x79\xf8\x88\x57\x96\x36\x62\x2a\x52\xab\x82\x82\x68\x54\x67\x70\x63\x77\x77\x6b\x7a\xed", /* 4f80 */ "\x00\x00\x6d\x01\x7e\xd3\x89\xe3\x59\xd0\x62\x12\x85\xc9\x82\xa5\x75\x4c\x50\x1f\x4e\xcb\x75\xa5\x8b\xeb\x5c\x4a\x5d\xfe\x7b\x4b\x65\xa4\x91\xd1\x4e\xca\x6d\x25\x89\x5f\x7d\x27\x95\x26\x4e\xc5\x8c\x28\x8f\xdb\x97\x73\x66\x4b\x79\x81\x8f\xd1\x70\xec\x6d\x78\x5c\x3d\x52\xb2\x83\x46\x51\x62\x83\x0e\x77\x5b\x66\x76\x9c\xb8\x4e\xac\x60\xca\x7c\xbe\x7c\xb3\x7e\xcf\x4e\x95\x8b\x66\x66\x6f\x98\x88\x97\x59\x58\x83\x65\x6c\x95\x5c\x5f\x84\x75\xc9\x97\x56\x7a\xdf\x7a\xde\x51\xc0\x70\xaf\x7a\x98\x63\xea\x7a\x76\x7e\xa0\x73\x96\x97\xed\x4e\x45\x70\x78\x4e\x5d\x91\x52\x53\xa9\x65\x51\x65\xe7\x81\xfc\x82\x05\x54\x8e\x5c\x31\x75\x9a\x97\xa0\x62\xd8\x72\xd9\x75\xbd\x5c\x45\x9a\x79\x83\xca\x5c\x40\x54\x80\x77\xe9\x4e\x3e\x6c\xae\x80\x5a\x62\xd2\x63\x6e\x5d\xe8\x51\x77\x8d\xdd\x8e\x1e\x95\x2f\x4f\xf1\x53\xe5\x60\xe7\x70\xac\x52\x67\x63\x50\x9e\x43\x5a\x1f\x50\x26\x77\x37\x53\x77\x7e\xe2\x64\x85\x65\x2b\x62\x89\x63\x98\x50\x14\x72\x35\x89\xc9\x51\xb3\x8b\xc0\x7e\xdd\x57\x47\x83\xcc\x94\xa7\x51\x9b\x54\x1b\x5c\xfb\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x7a\xe3\x6d\x5a\x90\xe1\x9a\x8f\x55\x80\x54\x96\x53\x61\x54\xaf\x5f\x00\x63\xe9\x69\x77\x51\xef\x61\x68\x52\x0a\x58\x2a\x52\xd8\x57\x4e\x78\x0d\x77\x0b\x5e\xb7\x61\x77\x7c\xe0\x62\x5b\x62\x97\x4e\xa2\x70\x95\x80\x03\x62\xf7\x70\xe4\x97\x60\x57\x77\x82\xdb\x67\xef\x68\xf5\x78\xd5\x98\x97\x79\xd1\x58\xf3\x54\xb3\x53\xef\x6e\x34\x51\x4b\x52\x3b\x5b\xa2\x8b\xfe\x80\xaf\x55\x43\x57\xa6\x60\x73\x57\x51\x54\x2d\x7a\x7a\x60\x50\x5b\x54\x63\xa7\x62\xa0\x53\xe3\x62\x63\x5b\xc7\x67\xaf\x54\xed\x7a\x9f", /* 5080 */ "\x00\x00\x82\xe6\x91\x77\x5e\x93\x88\xe4\x59\x38\x57\xae\x63\x0e\x8d\xe8\x80\xef\x57\x57\x7b\x77\x4f\xa9\x5f\xeb\x5b\xbd\x6b\x3e\x53\x21\x7b\x50\x72\xc2\x68\x46\x77\xff\x77\x36\x65\xf7\x51\xb5\x4e\x8f\x76\xd4\x5c\xbf\x7a\xa5\x84\x75\x59\x4e\x9b\x41\x50\x80\x99\x88\x61\x27\x6e\x83\x57\x64\x66\x06\x63\x46\x56\xf0\x62\xec\x62\x69\x5e\xd3\x96\x14\x57\x83\x62\xc9\x55\x87\x87\x21\x81\x4a\x8f\xa3\x55\x66\x83\xb1\x67\x65\x8d\x56\x84\xdd\x5a\x6a\x68\x0f\x62\xe6\x7b\xee\x96\x11\x51\x70\x6f\x9c\x8c\x30\x63\xfd\x89\xc8\x61\xd2\x7f\x06\x70\xc2\x6e\xe5\x74\x05\x69\x94\x72\xfc\x5e\xca\x90\xce\x67\x17\x6d\x6a\x63\x5e\x52\xb3\x72\x62\x80\x01\x4f\x6c\x59\xe5\x91\x6a\x70\xd9\x6d\x9d\x52\xd2\x4e\x50\x96\xf7\x95\x6d\x85\x7e\x78\xca\x7d\x2f\x51\x21\x57\x92\x64\xc2\x80\x8b\x7c\x7b\x6c\xea\x68\xf1\x69\x5e\x51\xb7\x53\x98\x68\xa8\x72\x81\x9e\xce\x7b\xf1\x72\xf8\x79\xbb\x6f\x13\x74\x06\x67\x4e\x91\xcc\x9c\xa4\x79\x3c\x83\x89\x83\x54\x54\x0f\x68\x17\x4e\x3d\x53\x89\x52\xb1\x78\x3e\x53\x86\x52\x29\x50\x88\x4f\x8b\x4f\xd0\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe2\x7a\xcb\x7c\x92\x6c\xa5\x96\xb6\x52\x9b\x74\x83\x54\xe9\x4f\xe9\x80\x54\x83\xb2\x8f\xde\x95\x70\x5e\xc9\x60\x1c\x6d\x9f\x5e\x18\x65\x5b\x81\x38\x94\xfe\x60\x4b\x70\xbc\x7e\xc3\x7c\xae\x51\xc9\x68\x81\x7c\xb1\x82\x6f\x4e\x24\x8f\x86\x91\xcf\x66\x7e\x4e\xae\x8c\x05\x64\xa9\x80\x4a\x50\xda\x75\x97\x71\xce\x5b\xe5\x8f\xbd\x6f\x66\x4e\x86\x64\x82\x95\x63\x5e\xd6\x65\x99\x52\x17\x88\xc2\x70\xc8\x52\xa3\x73\x0e\x74\x33\x67\x97\x78\xf7\x97\x16\x4e\x34\x90\xbb\x9c\xde\x6d\xcb\x51\xdb\x8d\x41\x54\x1d", /* 5180 */ "\x00\x00\x62\xce\x73\xb2\x83\xf1\x96\xf6\x9f\x84\x94\xc3\x4f\x36\x7f\x9a\x51\xcc\x70\x75\x96\x75\x5c\xad\x98\x86\x53\xe6\x4e\xe4\x6e\x9c\x74\x09\x69\xb4\x78\x6b\x99\x8f\x75\x59\x52\x18\x76\x24\x6d\x41\x67\xf3\x51\x6d\x9f\x99\x80\x4b\x54\x99\x7b\x3c\x7a\xbf\x96\x86\x57\x84\x62\xe2\x96\x47\x69\x7c\x5a\x04\x64\x02\x7b\xd3\x6f\x0f\x96\x4b\x82\xa6\x53\x62\x98\x85\x5e\x90\x70\x89\x63\xb3\x53\x64\x86\x4f\x9c\x81\x9e\x93\x78\x8c\x97\x32\x8d\xef\x8d\x42\x9e\x7f\x6f\x5e\x79\x84\x5f\x55\x96\x46\x62\x2e\x9a\x74\x54\x15\x94\xdd\x4f\xa3\x65\xc5\x5c\x65\x5c\x61\x7f\x15\x86\x51\x6c\x2f\x5f\x8b\x73\x87\x6e\xe4\x7e\xff\x5c\xe6\x63\x1b\x5b\x6a\x6e\xe6\x53\x75\x4e\x71\x63\xa0\x75\x65\x62\xa1\x8f\x6e\x4f\x26\x4e\xd1\x6c\xa6\x7e\xb6\x8b\xba\x84\x1d\x87\xba\x7f\x57\x90\x3b\x95\x23\x7b\xa9\x9a\xa1\x88\xf8\x84\x3d\x6d\x1b\x9a\x86\x7e\xdc\x59\x88\x9e\xbb\x73\x9b\x78\x01\x86\x82\x9a\x6c\x9a\x82\x56\x1b\x54\x17\x57\xcb\x4e\x70\x9e\xa6\x53\x56\x8f\xc8\x81\x09\x77\x92\x99\x92\x86\xee\x6e\xe1\x85\x13\x66\xfc\x61\x62\x6f\x2b\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x29\x82\x92\x83\x2b\x76\xf2\x6c\x13\x5f\xd9\x83\xbd\x73\x2b\x83\x05\x95\x1a\x6b\xdb\x77\xdb\x94\xc6\x53\x6f\x83\x02\x51\x92\x5e\x3d\x8c\x8c\x8d\x38\x4e\x48\x73\xab\x67\x9a\x68\x85\x91\x76\x97\x09\x71\x64\x6c\xa1\x77\x09\x5a\x92\x95\x41\x6b\xcf\x7f\x8e\x66\x27\x5b\xd0\x59\xb9\x5a\x9a\x95\xe8\x95\xf7\x4e\xec\x84\x0c\x84\x99\x6a\xac\x76\xdf\x95\x30\x73\x1b\x68\xa6\x5b\x5f\x77\x2f\x91\x9a\x97\x61\x7c\xdc\x8f\xf7\x8c\x1c\x5f\x25\x7c\x73\x79\xd8\x89\xc5\x6c\xcc\x87\x1c\x5b\xc6\x5e\x42\x68\xc9\x77\x20", /* 5280 */ "\x00\x00\x7e\xf5\x51\x95\x51\x4d\x52\xc9\x5a\x29\x7f\x05\x97\x62\x82\xd7\x63\xcf\x77\x84\x85\xd0\x79\xd2\x6e\x3a\x5e\x99\x59\x99\x85\x11\x70\x6d\x6c\x11\x62\xbf\x76\xbf\x65\x4f\x60\xaf\x95\xfd\x66\x0e\x87\x9f\x9e\x23\x94\xed\x54\x0d\x54\x7d\x8c\x2c\x64\x78\x64\x79\x86\x11\x6a\x21\x81\x9c\x78\xe8\x64\x69\x9b\x54\x62\xb9\x67\x2b\x83\xab\x58\xa8\x9e\xd8\x6c\xab\x6f\x20\x5b\xde\x96\x4c\x8c\x0b\x72\x5f\x67\xd0\x62\xc7\x72\x61\x4e\xa9\x59\xc6\x6b\xcd\x58\x93\x66\xae\x5e\x55\x52\xdf\x61\x55\x67\x28\x76\xee\x77\x66\x72\x67\x7a\x46\x62\xff\x54\xea\x54\x50\x94\xa0\x90\xa3\x5a\x1c\x7e\xb3\x6c\x16\x4e\x43\x59\x76\x80\x10\x59\x48\x53\x57\x75\x37\x96\xbe\x56\xca\x63\x20\x81\x11\x60\x7c\x95\xf9\x6d\xd6\x54\x62\x99\x81\x51\x85\x5a\xe9\x80\xfd\x59\xae\x97\x13\x50\x2a\x6c\xe5\x5c\x3c\x62\xdf\x4f\x60\x53\x3f\x81\x7b\x90\x06\x6e\xba\x85\x2b\x62\xc8\x5e\x74\x78\xbe\x64\xb5\x63\x7b\x5f\xf5\x5a\x18\x91\x7f\x9e\x1f\x5c\x3f\x63\x4f\x80\x42\x5b\x7d\x55\x6e\x95\x4a\x95\x4d\x6d\x85\x60\xa8\x67\xe0\x72\xde\x51\xdd\x5b\x81\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe7\x6c\xde\x72\x5b\x62\x6d\x94\xae\x7e\xbd\x81\x13\x6d\x53\x51\x9c\x5f\x04\x59\x74\x52\xaa\x60\x12\x59\x73\x66\x96\x86\x50\x75\x9f\x63\x2a\x61\xe6\x7c\xef\x8b\xfa\x54\xe6\x6b\x27\x9e\x25\x6b\xb4\x85\xd5\x54\x55\x50\x76\x6c\xa4\x55\x6a\x8d\xb4\x72\x2c\x5e\x15\x60\x15\x74\x36\x62\xcd\x63\x92\x72\x4c\x5f\x98\x6e\x43\x6d\x3e\x65\x00\x6f\x58\x76\xd8\x78\xd0\x76\xfc\x75\x54\x52\x24\x53\xdb\x4e\x53\x5e\x9e\x65\xc1\x80\x2a\x80\xd6\x62\x9b\x54\x86\x52\x28\x70\xae\x88\x8d\x8d\xd1\x6c\xe1\x54\x78\x80\xda", /* 5380 */ "\x00\x00\x57\xf9\x88\xf4\x8d\x54\x96\x6a\x91\x4d\x4f\x69\x6c\x9b\x55\xb7\x76\xc6\x78\x30\x62\xa8\x70\xf9\x6f\x8e\x5f\x6d\x84\xec\x68\xda\x78\x7c\x7b\xf7\x81\xa8\x67\x0b\x9e\x4f\x63\x67\x78\xb0\x57\x6f\x78\x12\x97\x39\x62\x79\x62\xab\x52\x88\x74\x35\x6b\xd7\x55\x64\x81\x3e\x75\xb2\x76\xae\x53\x39\x75\xde\x50\xfb\x5c\x41\x8b\x6c\x7b\xc7\x50\x4f\x72\x47\x9a\x97\x98\xd8\x6f\x02\x74\xe2\x79\x68\x64\x87\x77\xa5\x62\xfc\x98\x91\x8d\x2b\x54\xc1\x80\x58\x4e\x52\x57\x6a\x82\xf9\x84\x0d\x5e\x73\x51\xed\x74\xf6\x8b\xc4\x5c\x4f\x57\x61\x6c\xfc\x98\x87\x5a\x46\x78\x34\x9b\x44\x8f\xeb\x7c\x95\x52\x56\x62\x51\x94\xfa\x4e\xc6\x83\x86\x84\x61\x83\xe9\x84\xb2\x57\xd4\x67\x34\x57\x03\x66\x6e\x6d\x66\x8c\x31\x66\xdd\x70\x11\x67\x1f\x6b\x3a\x68\x16\x62\x1a\x59\xbb\x4e\x03\x51\xc4\x6f\x06\x67\xd2\x6c\x8f\x51\x76\x68\xcb\x59\x47\x6b\x67\x75\x66\x5d\x0e\x81\x10\x9f\x50\x65\xd7\x79\x48\x79\x41\x9a\x91\x8d\x77\x5c\x82\x4e\x5e\x4f\x01\x54\x2f\x59\x51\x78\x0c\x56\x68\x6c\x14\x8f\xc4\x5f\x03\x6c\x7d\x6c\xe3\x8b\xab\x63\x90\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x70\x6d\x3d\x72\x75\x62\x66\x94\x8e\x94\xc5\x53\x43\x8f\xc1\x7b\x7e\x4e\xdf\x8c\x26\x4e\x7e\x9e\xd4\x94\xb1\x94\xb3\x52\x4d\x6f\x5c\x90\x63\x6d\x45\x8c\x34\x58\x11\x5d\x4c\x6b\x20\x6b\x49\x67\xaa\x54\x5b\x81\x54\x7f\x8c\x58\x99\x85\x37\x5f\x3a\x62\xa2\x6a\x47\x95\x39\x65\x72\x60\x84\x68\x65\x77\xa7\x4e\x54\x4f\xa8\x5d\xe7\x97\x98\x64\xac\x7f\xd8\x5c\xed\x4f\xcf\x7a\x8d\x52\x07\x83\x04\x4e\x14\x60\x2f\x7a\x83\x94\xa6\x4f\xb5\x4e\xb2\x79\xe6\x74\x34\x52\xe4\x82\xb9\x64\xd2\x79\xbd\x5b\xdd\x6c\x81", /* 5480 */ "\x00\x00\x97\x52\x8f\x7b\x6c\x22\x50\x3e\x53\x7f\x6e\x05\x64\xce\x66\x74\x6c\x30\x60\xc5\x98\x77\x8b\xf7\x5e\x86\x74\x3c\x7a\x77\x79\xcb\x4e\x18\x90\xb1\x74\x03\x6c\x42\x56\xda\x91\x4b\x6c\xc5\x8d\x8b\x53\x3a\x86\xc6\x66\xf2\x8e\xaf\x5c\x48\x9a\x71\x6e\x20\x53\xd6\x5a\x36\x9f\x8b\x8d\xa3\x53\xbb\x57\x08\x98\xa7\x67\x43\x91\x9b\x6c\xc9\x51\x68\x75\xca\x62\xf3\x72\xac\x52\x38\x52\x9d\x7f\x3a\x70\x94\x76\x38\x53\x74\x9e\x4a\x69\xb7\x78\x6e\x96\xc0\x88\xd9\x7f\xa4\x71\x36\x71\xc3\x51\x89\x67\xd3\x74\xe4\x58\xe4\x65\x18\x56\xb7\x8b\xa9\x99\x76\x62\x70\x7e\xd5\x60\xf9\x70\xed\x58\xec\x4e\xc1\x4e\xba\x5f\xcd\x97\xe7\x4e\xfb\x8b\xa4\x52\x03\x59\x8a\x7e\xab\x62\x54\x4e\xcd\x65\xe5\x62\x0e\x83\x38\x84\xc9\x83\x63\x87\x8d\x71\x94\x6e\xb6\x5b\xb9\x7e\xd2\x51\x97\x63\xc9\x67\xd4\x80\x89\x83\x39\x88\x15\x51\x12\x5b\x7a\x59\x82\x8f\xb1\x4e\x73\x6c\x5d\x51\x65\x89\x25\x8f\x6f\x96\x2e\x85\x4a\x74\x5e\x95\x10\x95\xf0\x6d\xa6\x82\xe5\x5f\x31\x64\x92\x6d\x12\x84\x28\x81\x6e\x9c\xc3\x58\x5e\x8d\x5b\x4e\x09\x53\xc1\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x1e\x65\x63\x68\x51\x55\xd3\x4e\x27\x64\x14\x9a\x9a\x62\x6b\x5a\xc2\x74\x5f\x82\x72\x6d\xa9\x68\xee\x50\xe7\x83\x8e\x78\x02\x67\x40\x52\x39\x6c\x99\x7e\xb1\x50\xbb\x55\x65\x71\x5e\x7b\x5b\x66\x52\x73\xca\x82\xeb\x67\x49\x5c\x71\x52\x20\x71\x7d\x88\x6b\x95\xea\x96\x55\x64\xc5\x8d\x61\x81\xb3\x55\x84\x6c\x55\x62\x47\x7f\x2e\x58\x92\x4f\x24\x55\x46\x8d\x4f\x66\x4c\x4e\x0a\x5c\x1a\x88\xf3\x68\xa2\x63\x4e\x7a\x0d\x70\xe7\x82\x8d\x52\xfa\x97\xf6\x5c\x11\x54\xe8\x90\xb5\x7e\xcd\x59\x62\x8d\x4a\x86\xc7", /* 5580 */ "\x00\x00\x82\x0c\x82\x0d\x8d\x66\x64\x44\x5c\x04\x61\x51\x6d\x89\x79\x3e\x8b\xbe\x78\x37\x75\x33\x54\x7b\x4f\x38\x8e\xab\x6d\xf1\x5a\x20\x7e\xc5\x79\x5e\x6c\x88\x5b\xa1\x5a\x76\x75\x1a\x80\xbe\x61\x4e\x6e\x17\x58\xf0\x75\x1f\x75\x25\x72\x72\x53\x47\x7e\xf3\x77\x01\x76\xdb\x52\x69\x80\xdc\x57\x23\x5e\x08\x59\x31\x72\xee\x65\xbd\x6e\x7f\x8b\xd7\x5c\x38\x86\x71\x53\x41\x77\xf3\x62\xfe\x65\xf6\x4e\xc0\x98\xdf\x86\x80\x5b\x9e\x8b\xc6\x53\xf2\x77\xe2\x4f\x7f\x5c\x4e\x9a\x76\x59\xcb\x5f\x0f\x79\x3a\x58\xeb\x4e\x16\x67\xff\x4e\x8b\x62\xed\x8a\x93\x90\x1d\x52\xbf\x66\x2f\x55\xdc\x56\x6c\x90\x02\x4e\xd5\x4f\x8d\x91\xca\x99\x70\x6c\x0f\x5e\x02\x60\x43\x5b\xa4\x89\xc6\x8b\xd5\x65\x36\x62\x4b\x99\x96\x5b\x88\x5b\xff\x63\x88\x55\x2e\x53\xd7\x76\x26\x51\x7d\x85\x2c\x67\xa2\x68\xb3\x6b\x8a\x62\x92\x8f\x93\x53\xd4\x82\x12\x6d\xd1\x75\x8f\x4e\x66\x8d\x4e\x5b\x70\x71\x9f\x85\xaf\x66\x91\x66\xd9\x7f\x72\x87\x00\x9e\xcd\x9f\x20\x5c\x5e\x67\x2f\x8f\xf0\x68\x11\x67\x5f\x62\x0d\x7a\xd6\x58\x85\x5e\xb6\x65\x70\x6f\x31\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x55\x52\x37\x80\x0d\x64\x54\x88\x70\x75\x29\x5e\x05\x68\x13\x62\xf4\x97\x1c\x53\xcc\x72\x3d\x8c\x01\x6c\x34\x77\x61\x7a\x0e\x54\x2e\x77\xac\x98\x7a\x82\x1c\x8b\xf4\x78\x55\x67\x14\x70\xc1\x65\xaf\x64\x95\x56\x36\x60\x1d\x79\xc1\x53\xf8\x4e\x1d\x6b\x7b\x80\x86\x5b\xfa\x55\xe3\x56\xdb\x4f\x3a\x4f\x3c\x99\x72\x5d\xf3\x67\x7e\x80\x38\x60\x02\x98\x82\x90\x01\x5b\x8b\x8b\xbc\x8b\xf5\x64\x1c\x82\x58\x64\xde\x55\xfd\x82\xcf\x91\x65\x4f\xd7\x7d\x20\x90\x1f\x7c\x9f\x50\xf3\x58\x51\x6e\xaf\x5b\xbf\x8b\xc9", /* 5680 */ "\x00\x00\x80\x83\x91\x78\x84\x9c\x7b\x97\x86\x7d\x96\x8b\x96\x8f\x7e\xe5\x9a\xd3\x78\x8e\x5c\x81\x7a\x57\x90\x42\x96\xa7\x79\x5f\x5b\x59\x63\x5f\x7b\x0b\x84\xd1\x68\xad\x55\x06\x7f\x29\x74\x10\x7d\x22\x95\x01\x62\x40\x58\x4c\x4e\xd6\x5b\x83\x59\x79\x58\x54\x73\x6d\x63\x1e\x8e\x4b\x8e\x0f\x80\xce\x82\xd4\x62\xac\x53\xf0\x6c\xf0\x91\x5e\x59\x2a\x60\x01\x6c\x70\x57\x4d\x64\x4a\x8d\x2a\x76\x2b\x6e\xe9\x57\x5b\x6a\x80\x75\xf0\x6f\x6d\x8c\x2d\x8c\x08\x57\x66\x6b\xef\x88\x92\x78\xb3\x63\xa2\x53\xf9\x70\xad\x6c\x64\x58\x58\x64\x2a\x58\x02\x68\xe0\x81\x9b\x55\x10\x7c\xd6\x50\x18\x8e\xba\x6d\xcc\x8d\x9f\x70\xeb\x63\x8f\x6d\x9b\x6e\xd4\x7e\xe6\x84\x04\x68\x43\x90\x03\x6d\xd8\x96\x76\x8b\xa8\x59\x57\x72\x79\x85\xe4\x81\x7e\x75\xbc\x8a\x8a\x68\xaf\x52\x54\x8e\x22\x95\x11\x63\xd0\x98\x98\x8e\x44\x55\x7c\x4f\x53\x66\xff\x56\x8f\x60\xd5\x6d\x95\x52\x43\x5c\x49\x59\x29\x6d\xfb\x58\x6b\x75\x30\x75\x1c\x60\x6c\x82\x14\x81\x46\x63\x11\x67\x61\x8f\xe2\x77\x3a\x8d\xf3\x8d\x34\x94\xc1\x5e\x16\x53\x85\x54\x2c\x70\xc3\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x40\x5e\xf7\x50\x5c\x4e\xad\x5e\xad\x63\x3a\x82\x47\x90\x1a\x68\x50\x91\x6e\x77\xb3\x54\x0c\x94\xdc\x5f\x64\x7a\xe5\x68\x76\x63\x45\x7b\x52\x7e\xdf\x75\xdb\x50\x77\x62\x95\x59\x34\x90\x0f\x51\xf8\x79\xc3\x7a\x81\x56\xfe\x5f\x92\x90\x14\x6d\x82\x5c\x60\x57\x1f\x54\x10\x51\x54\x6e\x4d\x56\xe2\x63\xa8\x98\x93\x81\x7f\x87\x15\x89\x2a\x90\x00\x54\x1e\x5c\x6f\x81\xc0\x62\xd6\x62\x58\x81\x31\x9e\x35\x96\x40\x9a\x6e\x9a\x7c\x69\x2d\x59\xa5\x62\xd3\x55\x3e\x63\x16\x54\xc7\x86\xd9\x6d\x3c\x5a\x03\x74\xe6", /* 5780 */ "\x00\x00\x88\x9c\x6b\x6a\x59\x16\x8c\x4c\x5f\x2f\x6e\x7e\x73\xa9\x98\x7d\x4e\x38\x70\xf7\x5b\x8c\x78\x97\x63\x3d\x66\x5a\x76\x96\x60\xcb\x5b\x9b\x5a\x49\x4e\x07\x81\x55\x6c\x6a\x73\x8b\x4e\xa1\x67\x89\x7f\x51\x5f\x80\x65\xfa\x67\x1b\x5f\xd8\x59\x84\x5a\x01\x5d\xcd\x5f\xae\x53\x71\x97\xe6\x8f\xdd\x68\x45\x56\xf4\x55\x2f\x60\xdf\x4e\x3a\x6f\x4d\x7e\xf4\x82\xc7\x84\x0e\x59\xd4\x4f\x1f\x4f\x2a\x5c\x3e\x7e\xac\x67\x2a\x85\x1a\x54\x73\x75\x4f\x80\xc3\x55\x82\x9b\x4f\x4f\x4d\x6e\x2d\x8c\x13\x5c\x09\x61\x70\x53\x6b\x76\x1f\x6e\x29\x86\x8a\x65\x87\x95\xfb\x7e\xb9\x54\x3b\x7a\x33\x7d\x0a\x95\xee\x55\xe1\x7f\xc1\x74\xee\x63\x1d\x87\x17\x6d\xa1\x7a\x9d\x62\x11\x65\xa1\x53\x67\x63\xe1\x6c\x83\x5d\xeb\x54\x5c\x94\xa8\x4e\x4c\x6c\x61\x8b\xec\x5c\x4b\x65\xe0\x82\x9c\x68\xa7\x54\x3e\x54\x34\x6b\xcb\x6b\x66\x4e\x94\x63\x42\x53\x48\x82\x1e\x4f\x0d\x4f\xae\x57\x5e\x62\x0a\x96\xfe\x66\x64\x72\x69\x52\xff\x52\xa1\x60\x9f\x8b\xef\x66\x14\x71\x99\x67\x90\x89\x7f\x78\x52\x77\xfd\x66\x70\x56\x3b\x54\x38\x95\x21\x72\x7a\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x60\x6f\x5e\x0c\x60\x89\x81\x9d\x59\x15\x60\xdc\x71\x84\x70\xef\x6e\xaa\x6c\x50\x72\x80\x6a\x84\x88\xad\x5e\x2d\x4e\x60\x5a\xb3\x55\x9c\x94\xe3\x6d\x17\x7c\xfb\x96\x99\x62\x0f\x7e\xc6\x77\x8e\x86\x7e\x53\x23\x97\x1e\x8f\x96\x66\x87\x5c\xe1\x4f\xa0\x72\xed\x4e\x0b\x53\xa6\x59\x0f\x54\x13\x63\x80\x95\x28\x51\x48\x4e\xd9\x9c\x9c\x7e\xa4\x54\xb8\x8d\x24\x88\x54\x82\x37\x95\xf2\x6d\x8e\x5f\x26\x5a\xcc\x66\x3e\x96\x69\x73\xb0\x73\x2e\x53\xbf\x81\x7a\x99\x85\x7f\xa1\x5b\xaa\x96\x77\x96\x50\x7e\xbf", /* 5880 */ "\x00\x00\x76\xf8\x53\xa2\x95\x76\x99\x99\x7b\xb1\x89\x44\x6e\x58\x4e\x61\x7f\xd4\x79\x65\x8b\xe6\x60\xf3\x54\xcd\x4e\xab\x98\x79\x5d\xf7\x6a\x61\x50\xcf\x54\x11\x8c\x61\x84\x27\x78\x5d\x97\x04\x52\x4a\x54\xee\x56\xa3\x95\x00\x6d\x88\x5b\xb5\x6d\xc6\x66\x53\x5c\x0f\x5b\x5d\x68\x21\x80\x96\x55\x78\x7b\x11\x65\x48\x69\x54\x4e\x9b\x6b\x47\x87\x4e\x97\x8b\x53\x4f\x63\x1f\x64\x3a\x90\xaa\x65\x9c\x80\xc1\x8c\x10\x51\x99\x68\xb0\x53\x78\x87\xf9\x61\xc8\x6c\xc4\x6c\xfb\x8c\x22\x5c\x51\x85\xaa\x82\xaf\x95\x0c\x6b\x23\x8f\x9b\x65\xb0\x5f\xfb\x5f\xc3\x4f\xe1\x88\x45\x66\x1f\x81\x65\x73\x29\x60\xfa\x51\x74\x52\x11\x57\x8b\x5f\x62\x90\xa2\x88\x4c\x91\x92\x5e\x78\x67\x4f\x60\x27\x59\xd3\x51\x44\x51\xf6\x80\xf8\x53\x08\x6c\x79\x96\xc4\x71\x8a\x4f\x11\x4f\xee\x7f\x9e\x67\x3d\x55\xc5\x95\x08\x79\xc0\x88\x96\x7e\xe3\x58\x9f\x62\x0c\x97\x00\x86\x5a\x56\x18\x98\x7b\x5f\x90\x8b\xb8\x84\xc4\x91\x57\x53\xd9\x65\xed\x5e\x8f\x75\x5c\x60\x64\x7d\x6e\x5a\x7f\x7e\xea\x7e\xed\x8f\x69\x55\xa7\x5b\xa3\x60\xac\x65\xcb\x73\x84\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x09\x76\x63\x77\x29\x7e\xda\x97\x74\x85\x9b\x5b\x66\x7a\x74\x96\xea\x88\x40\x52\xcb\x71\x8f\x5f\xaa\x65\xec\x8b\xe2\x5b\xfb\x9a\x6f\x5d\xe1\x6b\x89\x6c\x5b\x8b\xad\x8b\xaf\x90\x0a\x8f\xc5\x53\x8b\x62\xbc\x9e\x26\x9e\x2d\x54\x40\x4e\x2b\x82\xbd\x72\x59\x86\x9c\x5d\x16\x88\x59\x6d\xaf\x96\xc5\x54\xd1\x4e\x9a\x8b\xb6\x71\x09\x54\xbd\x96\x09\x70\xdf\x6d\xf9\x76\xd0\x4e\x25\x78\x14\x87\x12\x5c\xa9\x5e\xf6\x8a\x00\x98\x9c\x96\x0e\x70\x8e\x6c\xbf\x59\x44\x63\xa9\x77\x3c\x88\x4d\x6f\x14\x82\x73\x58\x30", /* 5980 */ "\x00\x00\x71\xd5\x53\x8c\x78\x1a\x96\xc1\x55\x01\x5f\x66\x71\x30\x5b\xb4\x8c\x1a\x9a\x8c\x6b\x83\x59\x2e\x9e\x2f\x79\xe7\x67\x68\x62\x6c\x4f\x6f\x75\xa1\x7f\x8a\x6d\x0b\x96\x33\x6c\x27\x4e\xf0\x75\xd2\x51\x7b\x68\x37\x6f\x3e\x90\x80\x81\x70\x59\x96\x74\x76\x64\x47\x5c\x27\x90\x65\x7a\x91\x8c\x23\x59\xda\x54\xac\x82\x00\x83\x6f\x89\x81\x80\x00\x69\x30\x56\x4e\x80\x36\x72\x37\x91\xce\x51\xb6\x4e\x5f\x98\x75\x63\x96\x4e\x1a\x53\xf6\x66\xf3\x81\x4b\x59\x1c\x6d\xb2\x4e\x00\x58\xf9\x53\x3b\x63\xd6\x94\xf1\x4f\x9d\x4f\x0a\x88\x63\x98\x90\x59\x37\x90\x57\x79\xfb\x4e\xea\x80\xf0\x75\x91\x6c\x82\x5b\x9c\x59\xe8\x5f\x5d\x69\x05\x86\x81\x50\x1a\x5d\xf2\x4e\x59\x77\xe3\x4e\xe5\x82\x7a\x62\x91\x66\x13\x90\x91\x5c\x79\x4e\xbf\x5f\x79\x81\xc6\x90\x38\x80\x84\x75\xab\x4e\xa6\x88\xd4\x61\x0f\x6b\xc5\x5f\xc6\x4e\x49\x76\xca\x6e\xa2\x8b\xe3\x8b\xae\x8c\x0a\x8b\xd1\x5f\x02\x7f\xfc\x7f\xcc\x7e\xce\x83\x35\x83\x6b\x56\xe0\x6b\xb7\x97\xf3\x96\x34\x59\xfb\x54\x1f\x94\xf6\x6d\xeb\x5b\xc5\x99\x6e\x5c\x39\x5f\x15\x96\x90\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x70\x82\xf1\x6a\x31\x5a\x74\x9e\x70\x5e\x94\x7f\x28\x83\xb9\x84\x24\x84\x25\x83\x67\x87\x47\x8f\xce\x8d\x62\x76\xc8\x5f\x71\x98\x96\x78\x6c\x66\x20\x54\xdf\x62\xe5\x4f\x63\x81\xc3\x75\xc8\x5e\xb8\x96\xcd\x8e\x0a\x86\xf9\x54\x8f\x6c\xf3\x6d\x8c\x6c\x38\x60\x7f\x52\xc7\x75\x28\x5e\x7d\x4f\x18\x60\xa0\x5f\xe7\x5c\x24\x75\x31\x90\xae\x94\xc0\x72\xb9\x6c\xb9\x6e\x38\x91\x49\x67\x09\x53\xcb\x53\xf3\x4f\x51\x91\xc9\x8b\xf1\x53\xc8\x5e\x7c\x8f\xc2\x6d\xe4\x4e\x8e\x76\xc2\x69\x86\x86\x5e\x61\x1a\x82\x06", /* 5a80 */ "\x00\x00\x4f\x59\x4f\xde\x90\x3e\x9c\x7c\x61\x09\x6e\x1d\x6e\x14\x96\x85\x4e\x88\x5a\x31\x96\xe8\x4e\x0e\x5c\x7f\x79\xb9\x5b\x87\x8b\xed\x7f\xbd\x73\x89\x57\xdf\x82\x8b\x90\xc1\x54\x01\x90\x47\x55\xbb\x5c\xea\x5f\xa1\x61\x08\x6b\x32\x72\xf1\x80\xb2\x8a\x89\x6d\x74\x5b\xd3\x88\xd5\x98\x84\x8c\x6b\x9a\x6d\x9e\x33\x6e\x0a\x51\xa4\x51\x43\x57\xa3\x88\x81\x53\x9f\x63\xf4\x8f\x95\x56\xed\x54\x58\x57\x06\x73\x3f\x6e\x90\x7f\x18\x8f\xdc\x82\xd1\x61\x3f\x60\x28\x96\x62\x66\xf0\x7e\xa6\x8d\x8a\x8d\xc3\x94\xa5\x5c\xb3\x7c\xa4\x67\x08\x60\xa6\x96\x05\x80\x18\x4e\x91\x90\xe7\x53\x00\x96\x68\x51\x41\x8f\xd0\x85\x74\x91\x5d\x66\x55\x97\xf5\x5b\x55\x53\x1d\x78\x38\x67\x42\x68\x3d\x54\xc9\x70\x7e\x5b\xb0\x8f\x7d\x51\x8d\x57\x28\x54\xb1\x65\x12\x66\x82\x8d\x5e\x8d\x43\x81\x0f\x84\x6c\x90\x6d\x7c\xdf\x51\xff\x85\xfb\x67\xa3\x65\xe9\x6f\xa1\x86\xa4\x8e\x81\x56\x6a\x90\x20\x76\x82\x70\x76\x71\xe5\x8d\x23\x62\xe9\x52\x19\x6c\xfd\x8d\x3c\x60\x0e\x58\x9e\x61\x8e\x66\xfe\x8d\x60\x62\x4e\x55\xb3\x6e\x23\x67\x2d\x8f\x67\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe1\x95\xf8\x77\x28\x68\x05\x69\xa8\x54\x8b\x4e\x4d\x70\xb8\x8b\xc8\x64\x58\x65\x8b\x5b\x85\x7a\x84\x50\x3a\x5b\xe8\x77\xbb\x6b\xe1\x8a\x79\x7c\x98\x6c\xbe\x76\xcf\x65\xa9\x8f\x97\x5d\x2d\x5c\x55\x86\x38\x68\x08\x53\x60\x62\x18\x7a\xd9\x6e\x5b\x7e\xfd\x6a\x1f\x7a\xe0\x5f\x70\x6f\x33\x5f\x20\x63\x8c\x6d\xa8\x67\x56\x4e\x08\x5e\x10\x8d\x26\x4e\xd7\x80\xc0\x76\x34\x96\x9c\x62\xdb\x66\x2d\x62\x7e\x6c\xbc\x8d\x75\x71\x67\x7f\x69\x51\x46\x80\x87\x53\xec\x90\x6e\x62\x98\x54\xf2\x86\xf0\x8f\x99\x80\x05", /* 5b80 */ "\x00\x00\x95\x17\x85\x17\x8f\xd9\x6d\x59\x73\xcd\x65\x9f\x77\x1f\x75\x04\x78\x27\x81\xfb\x8d\x1e\x94\x88\x4f\xa6\x67\x95\x75\xb9\x8b\xca\x97\x07\x63\x2f\x95\x47\x96\x35\x84\xb8\x63\x23\x77\x41\x5f\x81\x72\xf0\x4e\x89\x60\x14\x65\x74\x62\xef\x6b\x63\x65\x3f\x5e\x27\x75\xc7\x90\xd1\x8b\xc1\x82\x9d\x67\x9d\x65\x2f\x54\x31\x87\x18\x77\xe5\x80\xa2\x81\x02\x6c\x41\x4e\x4b\x7e\xc7\x80\x4c\x76\xf4\x69\x0d\x6b\x96\x62\x67\x50\x3c\x4f\x84\x57\x40\x63\x07\x6b\x62\x8d\xbe\x53\xea\x65\xe8\x7e\xb8\x5f\xd7\x63\x1a\x63\xb7\x81\xf3\x81\xf4\x7f\x6e\x5e\x1c\x5c\xd9\x52\x36\x66\x7a\x79\xe9\x7a\x1a\x8d\x28\x70\x99\x75\xd4\x6e\xde\x6c\xbb\x7a\x92\x4e\x2d\x76\xc5\x5f\xe0\x94\x9f\x88\x77\x7e\xc8\x79\xcd\x80\xbf\x91\xcd\x4e\xf2\x4f\x17\x82\x1f\x54\x68\x5d\xde\x6d\x32\x8b\xcc\x7c\xa5\x8f\x74\x80\x98\x5e\x1a\x54\x92\x76\xb1\x5b\x99\x66\x3c\x9a\xa4\x73\xe0\x68\x2a\x86\xdb\x67\x31\x73\x2a\x8b\xf8\x8b\xdb\x90\x10\x7a\xf9\x70\xdb\x71\x6e\x62\xc4\x77\xa9\x56\x31\x4e\x3b\x84\x57\x67\xf1\x52\xa9\x86\xc0\x8d\x2e\x94\xf8\x7b\x51\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x4f\x6c\xe8\x79\x5d\x9a\x7b\x62\x93\x72\x2a\x62\xfd\x4e\x13\x78\x16\x8f\x6c\x64\xb0\x8d\x5a\x7b\xc6\x68\x69\x5e\x84\x88\xc5\x59\x86\x64\x9e\x58\xee\x72\xb6\x69\x0e\x95\x25\x8f\xfd\x8d\x58\x57\x60\x7f\x00\x8c\x06\x51\xc6\x63\x49\x62\xd9\x53\x53\x68\x4c\x74\x22\x83\x01\x91\x4c\x55\x44\x77\x40\x70\x7c\x6d\x4a\x51\x79\x54\xa8\x8d\x44\x59\xff\x6e\xcb\x6d\xc4\x5b\x5c\x7d\x2b\x4e\xd4\x7c\x7d\x6e\xd3\x5b\x50\x81\xea\x6e\x0d\x5b\x57\x9b\x03\x68\xd5\x8e\x2a\x5b\x97\x7e\xfc\x60\x3b\x7e\xb5\x90\xb9\x8d\x70", /* 5c80 */ "\x00\x00\x59\x4f\x63\xcd\x79\xdf\x8d\xb3\x53\x52\x65\xcf\x79\x56\x8b\xc5\x96\x3b\x7e\xc4\x94\xbb\x7e\x82\x56\x34\x91\x89\x67\x00\x7f\x6a\x5c\x0a\x90\x75\x66\x28\x5d\xe6\x4f\x50\x67\xde\x50\x5a\x4f\x5c\x57\x50\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8d\x4e\x0c\x51\x40\x4e\x10\x5e\xff\x53\x45\x4e\x15\x4e\x98\x4e\x1e\x9b\x32\x5b\x6c\x56\x69\x4e\x28\x79\xba\x4e\x3f\x53\x15\x4e\x47\x59\x2d\x72\x3b\x53\x6e\x6c\x10\x56\xdf\x80\xe4\x99\x97\x6b\xd3\x77\x7e\x9f\x17\x4e\x36\x4e\x9f\x9f\x10\x4e\x5c\x4e\x69\x4e\x93\x82\x88\x5b\x5b\x55\x6c\x56\x0f\x4e\xc4\x53\x8d\x53\x9d\x53\xa3\x53\xa5\x53\xae\x97\x65\x8d\x5d\x53\x1a\x53\xf5\x53\x26\x53\x2e\x53\x3e\x8d\x5c\x53\x66\x53\x63\x52\x02\x52\x08\x52\x0e\x52\x2d\x52\x33\x52\x3f\x52\x40\x52\x4c\x52\x5e\x52\x61\x52\x5c\x84\xaf\x52\x7d\x52\x82\x52\x81\x52\x90\x52\x93\x51\x82\x7f\x54\x4e\xbb\x4e\xc3\x4e\xc9\x4e\xc2\x4e\xe8\x4e\xe1\x4e\xeb\x4e\xde\x4f\x1b\x4e\xf3\x4f\x22\x4f\x64\x4e\xf5\x4f\x25\x4f\x27\x4f\x09\x4f\x2b\x4f\x5e\x4f\x67\x65\x38\x4f\x5a\x4f\x5d\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x5f\x4f\x57\x4f\x32\x4f\x3d\x4f\x76\x4f\x74\x4f\x91\x4f\x89\x4f\x83\x4f\x8f\x4f\x7e\x4f\x7b\x4f\xaa\x4f\x7c\x4f\xac\x4f\x94\x4f\xe6\x4f\xe8\x4f\xea\x4f\xc5\x4f\xda\x4f\xe3\x4f\xdc\x4f\xd1\x4f\xdf\x4f\xf8\x50\x29\x50\x4c\x4f\xf3\x50\x2c\x50\x0f\x50\x2e\x50\x2d\x4f\xfe\x50\x1c\x50\x0c\x50\x25\x50\x28\x50\x7e\x50\x43\x50\x55\x50\x48\x50\x4e\x50\x6c\x50\x7b\x50\xa5\x50\xa7\x50\xa9\x50\xba\x50\xd6\x51\x06\x50\xed\x50\xec\x50\xe6\x50\xee\x51\x07\x51\x0b\x4e\xdd\x6c\x3d\x4f\x58\x4f\x65\x4f\xce\x9f\xa0", /* 5d80 */ "\x00\x00\x6c\x46\x7c\x74\x51\x6e\x5d\xfd\x9e\xc9\x99\x98\x51\x81\x59\x14\x52\xf9\x53\x0d\x8a\x07\x53\x10\x51\xeb\x59\x19\x51\x55\x4e\xa0\x51\x56\x4e\xb3\x88\x6e\x88\xa4\x4e\xb5\x81\x14\x88\xd2\x79\x80\x5b\x34\x88\x03\x7f\xb8\x51\xab\x51\xb1\x51\xbd\x51\xbc\x51\xc7\x51\x96\x51\xa2\x51\xa5\x8b\xa0\x8b\xa6\x8b\xa7\x8b\xaa\x8b\xb4\x8b\xb5\x8b\xb7\x8b\xc2\x8b\xc3\x8b\xcb\x8b\xcf\x8b\xce\x8b\xd2\x8b\xd3\x8b\xd4\x8b\xd6\x8b\xd8\x8b\xd9\x8b\xdc\x8b\xdf\x8b\xe0\x8b\xe4\x8b\xe8\x8b\xe9\x8b\xee\x8b\xf0\x8b\xf3\x8b\xf6\x8b\xf9\x8b\xfc\x8b\xff\x8c\x00\x8c\x02\x8c\x04\x8c\x07\x8c\x0c\x8c\x0f\x8c\x11\x8c\x12\x8c\x14\x8c\x15\x8c\x16\x8c\x19\x8c\x1b\x8c\x18\x8c\x1d\x8c\x1f\x8c\x20\x8c\x21\x8c\x25\x8c\x27\x8c\x2a\x8c\x2b\x8c\x2e\x8c\x2f\x8c\x32\x8c\x33\x8c\x35\x8c\x36\x53\x69\x53\x7a\x96\x1d\x96\x22\x96\x21\x96\x31\x96\x2a\x96\x3d\x96\x3c\x96\x42\x96\x49\x96\x54\x96\x5f\x96\x67\x96\x6c\x96\x72\x96\x74\x96\x88\x96\x8d\x96\x97\x96\xb0\x90\x97\x90\x9b\x90\x9d\x90\x99\x90\xac\x90\xa1\x90\xb4\x90\xb3\x90\xb6\x90\xba\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xb8\x90\xb0\x90\xcf\x90\xc5\x90\xbe\x90\xd0\x90\xc4\x90\xc7\x90\xd3\x90\xe6\x90\xe2\x90\xdc\x90\xd7\x90\xdb\x90\xeb\x90\xef\x90\xfe\x91\x04\x91\x22\x91\x1e\x91\x23\x91\x31\x91\x2f\x91\x39\x91\x43\x91\x46\x52\x0d\x59\x42\x52\xa2\x52\xac\x52\xad\x52\xbe\x54\xff\x52\xd0\x52\xd6\x52\xf0\x53\xdf\x71\xee\x77\xcd\x5e\xf4\x51\xf5\x51\xfc\x9b\x2f\x53\xb6\x5f\x01\x75\x5a\x5d\xef\x57\x4c\x57\xa9\x57\xa1\x58\x7e\x58\xbc\x58\xc5\x58\xd1\x57\x29\x57\x2c\x57\x2a\x57\x33\x57\x39\x57\x2e\x57\x2f\x57\x5c\x57\x3b", /* 5e80 */ "\x00\x00\x57\x42\x57\x69\x57\x85\x57\x6b\x57\x86\x57\x7c\x57\x7b\x57\x68\x57\x6d\x57\x76\x57\x73\x57\xad\x57\xa4\x57\x8c\x57\xb2\x57\xcf\x57\xa7\x57\xb4\x57\x93\x57\xa0\x57\xd5\x57\xd8\x57\xda\x57\xd9\x57\xd2\x57\xb8\x57\xf4\x57\xef\x57\xf8\x57\xe4\x57\xdd\x58\x0b\x58\x0d\x57\xfd\x57\xed\x58\x00\x58\x1e\x58\x19\x58\x44\x58\x20\x58\x65\x58\x6c\x58\x81\x58\x89\x58\x9a\x58\x80\x99\xa8\x9f\x19\x61\xff\x82\x79\x82\x7d\x82\x7f\x82\x8f\x82\x8a\x82\xa8\x82\x84\x82\x8e\x82\x91\x82\x97\x82\x99\x82\xab\x82\xb8\x82\xbe\x82\xb0\x82\xc8\x82\xca\x82\xe3\x82\x98\x82\xb7\x82\xae\x82\xcb\x82\xcc\x82\xc1\x82\xa9\x82\xb4\x82\xa1\x82\xaa\x82\x9f\x82\xc4\x82\xce\x82\xa4\x82\xe1\x83\x09\x82\xf7\x82\xe4\x83\x0f\x83\x07\x82\xdc\x82\xf4\x82\xd2\x82\xd8\x83\x0c\x82\xfb\x82\xd3\x83\x11\x83\x1a\x83\x06\x83\x14\x83\x15\x82\xe0\x82\xd5\x83\x1c\x83\x51\x83\x5b\x83\x5c\x83\x08\x83\x92\x83\x3c\x83\x34\x83\x31\x83\x9b\x83\x5e\x83\x2f\x83\x4f\x83\x47\x83\x43\x83\x5f\x83\x40\x83\x17\x83\x60\x83\x2d\x83\x3a\x83\x33\x83\x66\x83\x65\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x68\x83\x1b\x83\x69\x83\x6c\x83\x6a\x83\x6d\x83\x6e\x83\xb0\x83\x78\x83\xb3\x83\xb4\x83\xa0\x83\xaa\x83\x93\x83\x9c\x83\x85\x83\x7c\x83\xb6\x83\xa9\x83\x7d\x83\xb8\x83\x7b\x83\x98\x83\x9e\x83\xa8\x83\xba\x83\xbc\x83\xc1\x84\x01\x83\xe5\x83\xd8\x58\x07\x84\x18\x84\x0b\x83\xdd\x83\xfd\x83\xd6\x84\x1c\x84\x38\x84\x11\x84\x06\x83\xd4\x83\xdf\x84\x0f\x84\x03\x83\xf8\x83\xf9\x83\xea\x83\xc5\x83\xc0\x84\x26\x83\xf0\x83\xe1\x84\x5c\x84\x51\x84\x5a\x84\x59\x84\x73\x84\x87\x84\x88\x84\x7a\x84\x89\x84\x78", /* 5f80 */ "\x00\x00\x84\x3c\x84\x46\x84\x69\x84\x76\x84\x8c\x84\x8e\x84\x31\x84\x6d\x84\xc1\x84\xcd\x84\xd0\x84\xe6\x84\xbd\x84\xd3\x84\xca\x84\xbf\x84\xba\x84\xe0\x84\xa1\x84\xb9\x84\xb4\x84\x97\x84\xe5\x84\xe3\x85\x0c\x75\x0d\x85\x38\x84\xf0\x85\x39\x85\x1f\x85\x3a\x85\x56\x85\x3b\x84\xff\x84\xfc\x85\x59\x85\x48\x85\x68\x85\x64\x85\x5e\x85\x7a\x77\xa2\x85\x43\x85\x72\x85\x7b\x85\xa4\x85\xa8\x85\x87\x85\x8f\x85\x79\x85\xae\x85\x9c\x85\x85\x85\xb9\x85\xb7\x85\xb0\x85\xd3\x85\xc1\x85\xdc\x85\xff\x86\x27\x86\x05\x86\x29\x86\x16\x86\x3c\x5e\xfe\x5f\x08\x59\x3c\x59\x41\x80\x37\x59\x55\x59\x5a\x59\x58\x53\x0f\x5c\x22\x5c\x25\x5c\x2c\x5c\x34\x62\x4c\x62\x6a\x62\x9f\x62\xbb\x62\xca\x62\xda\x62\xd7\x62\xee\x63\x22\x62\xf6\x63\x39\x63\x4b\x63\x43\x63\xad\x63\xf6\x63\x71\x63\x7a\x63\x8e\x63\xb4\x63\x6d\x63\xac\x63\x8a\x63\x69\x63\xae\x63\xbc\x63\xf2\x63\xf8\x63\xe0\x63\xff\x63\xc4\x63\xde\x63\xce\x64\x52\x63\xc6\x63\xbe\x64\x45\x64\x41\x64\x0b\x64\x1b\x64\x20\x64\x0c\x64\x26\x64\x21\x64\x5e\x64\x84\x64\x6d\x64\x96\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7a\x64\xb7\x64\xb8\x64\x99\x64\xba\x64\xc0\x64\xd0\x64\xd7\x64\xe4\x64\xe2\x65\x09\x65\x25\x65\x2e\x5f\x0b\x5f\xd2\x75\x19\x5f\x11\x53\x5f\x53\xf1\x53\xfd\x53\xe9\x53\xe8\x53\xfb\x54\x12\x54\x16\x54\x06\x54\x4b\x54\x52\x54\x53\x54\x54\x54\x56\x54\x43\x54\x21\x54\x57\x54\x59\x54\x23\x54\x32\x54\x82\x54\x94\x54\x77\x54\x71\x54\x64\x54\x9a\x54\x9b\x54\x84\x54\x76\x54\x66\x54\x9d\x54\xd0\x54\xad\x54\xc2\x54\xb4\x54\xd2\x54\xa7\x54\xa6\x54\xd3\x54\xd4\x54\x72\x54\xa3\x54\xd5\x54\xbb\x54\xbf\x54\xcc", /* 6080 */ "\x00\x00\x54\xd9\x54\xda\x54\xdc\x54\xa9\x54\xaa\x54\xa4\x54\xdd\x54\xcf\x54\xde\x55\x1b\x54\xe7\x55\x20\x54\xfd\x55\x14\x54\xf3\x55\x22\x55\x23\x55\x0f\x55\x11\x55\x27\x55\x2a\x55\x67\x55\x8f\x55\xb5\x55\x49\x55\x6d\x55\x41\x55\x55\x55\x3f\x55\x50\x55\x3c\x55\x37\x55\x56\x55\x75\x55\x76\x55\x77\x55\x33\x55\x30\x55\x5c\x55\x8b\x55\xd2\x55\x83\x55\xb1\x55\xb9\x55\x88\x55\x81\x55\x9f\x55\x7e\x55\xd6\x55\x91\x55\x7b\x55\xdf\x55\xbd\x55\xbe\x55\x94\x55\x99\x55\xea\x55\xf7\x55\xc9\x56\x1f\x55\xd1\x55\xeb\x55\xec\x55\xd4\x55\xe6\x55\xdd\x55\xc4\x55\xef\x55\xe5\x55\xf2\x55\xf3\x55\xcc\x55\xcd\x55\xe8\x55\xf5\x55\xe4\x8f\x94\x56\x1e\x56\x08\x56\x0c\x56\x01\x56\x24\x56\x23\x55\xfe\x56\x00\x56\x27\x56\x2d\x56\x58\x56\x39\x56\x57\x56\x2c\x56\x4d\x56\x62\x56\x59\x56\x5c\x56\x4c\x56\x54\x56\x86\x56\x64\x56\x71\x56\x6b\x56\x7b\x56\x7c\x56\x85\x56\x93\x56\xaf\x56\xd4\x56\xd7\x56\xdd\x56\xe1\x56\xf5\x56\xeb\x56\xf9\x56\xff\x57\x04\x57\x0a\x57\x09\x57\x1c\x5e\x0f\x5e\x19\x5e\x14\x5e\x11\x5e\x31\x5e\x3b\x5e\x3c\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x37\x5e\x44\x5e\x54\x5e\x5b\x5e\x5e\x5e\x61\x5c\x8c\x5c\x7a\x5c\x8d\x5c\x90\x5c\x96\x5c\x88\x5c\x98\x5c\x99\x5c\x91\x5c\x9a\x5c\x9c\x5c\xb5\x5c\xa2\x5c\xbd\x5c\xac\x5c\xab\x5c\xb1\x5c\xa3\x5c\xc1\x5c\xb7\x5c\xc4\x5c\xd2\x5c\xe4\x5c\xcb\x5c\xe5\x5d\x02\x5d\x03\x5d\x27\x5d\x26\x5d\x2e\x5d\x24\x5d\x1e\x5d\x06\x5d\x1b\x5d\x58\x5d\x3e\x5d\x34\x5d\x3d\x5d\x6c\x5d\x5b\x5d\x6f\x5d\x5d\x5d\x6b\x5d\x4b\x5d\x4a\x5d\x69\x5d\x74\x5d\x82\x5d\x99\x5d\x9d\x8c\x73\x5d\xb7\x5d\xc5\x5f\x73\x5f\x77\x5f\x82\x5f\x87", /* 6180 */ "\x00\x00\x5f\x89\x5f\x8c\x5f\x95\x5f\x99\x5f\x9c\x5f\xa8\x5f\xad\x5f\xb5\x5f\xbc\x88\x62\x5f\x61\x72\xad\x72\xb0\x72\xb4\x72\xb7\x72\xb8\x72\xc3\x72\xc1\x72\xce\x72\xcd\x72\xd2\x72\xe8\x72\xef\x72\xe9\x72\xf2\x72\xf4\x72\xf7\x73\x01\x72\xf3\x73\x03\x72\xfa\x72\xfb\x73\x17\x73\x13\x73\x21\x73\x0a\x73\x1e\x73\x1d\x73\x15\x73\x22\x73\x39\x73\x25\x73\x2c\x73\x38\x73\x31\x73\x50\x73\x4d\x73\x57\x73\x60\x73\x6c\x73\x6f\x73\x7e\x82\x1b\x59\x25\x98\xe7\x59\x24\x59\x02\x99\x63\x99\x67\x99\x68\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x74\x99\x77\x99\x7d\x99\x80\x99\x84\x99\x87\x99\x8a\x99\x8d\x99\x90\x99\x91\x99\x93\x99\x94\x99\x95\x5e\x80\x5e\x91\x5e\x8b\x5e\x96\x5e\xa5\x5e\xa0\x5e\xb9\x5e\xb5\x5e\xbe\x5e\xb3\x8d\x53\x5e\xd2\x5e\xd1\x5e\xdb\x5e\xe8\x5e\xea\x81\xba\x5f\xc4\x5f\xc9\x5f\xd6\x5f\xcf\x60\x03\x5f\xee\x60\x04\x5f\xe1\x5f\xe4\x5f\xfe\x60\x05\x60\x06\x5f\xea\x5f\xed\x5f\xf8\x60\x19\x60\x35\x60\x26\x60\x1b\x60\x0f\x60\x0d\x60\x29\x60\x2b\x60\x0a\x60\x3f\x60\x21\x60\x78\x60\x79\x60\x7b\x60\x7a\x60\x42\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6a\x60\x7d\x60\x96\x60\x9a\x60\xad\x60\x9d\x60\x83\x60\x92\x60\x8c\x60\x9b\x60\xec\x60\xbb\x60\xb1\x60\xdd\x60\xd8\x60\xc6\x60\xda\x60\xb4\x61\x20\x61\x26\x61\x15\x61\x23\x60\xf4\x61\x00\x61\x0e\x61\x2b\x61\x4a\x61\x75\x61\xac\x61\x94\x61\xa7\x61\xb7\x61\xd4\x61\xf5\x5f\xdd\x96\xb3\x95\xe9\x95\xeb\x95\xf1\x95\xf3\x95\xf5\x95\xf6\x95\xfc\x95\xfe\x96\x03\x96\x04\x96\x06\x96\x08\x96\x0a\x96\x0b\x96\x0c\x96\x0d\x96\x0f\x96\x12\x96\x15\x96\x16\x96\x17\x96\x19\x96\x1a\x4e\x2c\x72\x3f\x62\x15\x6c\x35", /* 6280 */ "\x00\x00\x6c\x54\x6c\x5c\x6c\x4a\x6c\xa3\x6c\x85\x6c\x90\x6c\x94\x6c\x8c\x6c\x68\x6c\x69\x6c\x74\x6c\x76\x6c\x86\x6c\xa9\x6c\xd0\x6c\xd4\x6c\xad\x6c\xf7\x6c\xf8\x6c\xf1\x6c\xd7\x6c\xb2\x6c\xe0\x6c\xd6\x6c\xfa\x6c\xeb\x6c\xee\x6c\xb1\x6c\xd3\x6c\xef\x6c\xfe\x6d\x39\x6d\x27\x6d\x0c\x6d\x43\x6d\x48\x6d\x07\x6d\x04\x6d\x19\x6d\x0e\x6d\x2b\x6d\x4d\x6d\x2e\x6d\x35\x6d\x1a\x6d\x4f\x6d\x52\x6d\x54\x6d\x33\x6d\x91\x6d\x6f\x6d\x9e\x6d\xa0\x6d\x5e\x6d\x93\x6d\x94\x6d\x5c\x6d\x60\x6d\x7c\x6d\x63\x6e\x1a\x6d\xc7\x6d\xc5\x6d\xde\x6e\x0e\x6d\xbf\x6d\xe0\x6e\x11\x6d\xe6\x6d\xdd\x6d\xd9\x6e\x16\x6d\xab\x6e\x0c\x6d\xae\x6e\x2b\x6e\x6e\x6e\x4e\x6e\x6b\x6e\xb2\x6e\x5f\x6e\x86\x6e\x53\x6e\x54\x6e\x32\x6e\x25\x6e\x44\x6e\xdf\x6e\xb1\x6e\x98\x6e\xe0\x6f\x2d\x6e\xe2\x6e\xa5\x6e\xa7\x6e\xbd\x6e\xbb\x6e\xb7\x6e\xd7\x6e\xb4\x6e\xcf\x6e\x8f\x6e\xc2\x6e\x9f\x6f\x62\x6f\x46\x6f\x47\x6f\x24\x6f\x15\x6e\xf9\x6f\x2f\x6f\x36\x6f\x4b\x6f\x74\x6f\x2a\x6f\x09\x6f\x29\x6f\x89\x6f\x8d\x6f\x8c\x6f\x78\x6f\x72\x6f\x7c\x6f\x7a\x6f\xd1\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xc9\x6f\xa7\x6f\xb9\x6f\xb6\x6f\xc2\x6f\xe1\x6f\xee\x6f\xde\x6f\xe0\x6f\xef\x70\x1a\x70\x23\x70\x1b\x70\x39\x70\x35\x70\x4f\x70\x5e\x5b\x80\x5b\x84\x5b\x95\x5b\x93\x5b\xa5\x5b\xb8\x75\x2f\x9a\x9e\x64\x34\x5b\xe4\x5b\xee\x89\x30\x5b\xf0\x8e\x47\x8b\x07\x8f\xb6\x8f\xd3\x8f\xd5\x8f\xe5\x8f\xee\x8f\xe4\x8f\xe9\x8f\xe6\x8f\xf3\x8f\xe8\x90\x05\x90\x04\x90\x0b\x90\x26\x90\x11\x90\x0d\x90\x16\x90\x21\x90\x35\x90\x36\x90\x2d\x90\x2f\x90\x44\x90\x51\x90\x52\x90\x50\x90\x68\x90\x58\x90\x62\x90\x5b\x66\xb9", /* 6380 */ "\x00\x00\x90\x74\x90\x7d\x90\x82\x90\x88\x90\x83\x90\x8b\x5f\x50\x5f\x57\x5f\x56\x5f\x58\x5c\x3b\x54\xab\x5c\x50\x5c\x59\x5b\x71\x5c\x63\x5c\x66\x7f\xbc\x5f\x2a\x5f\x29\x5f\x2d\x82\x74\x5f\x3c\x9b\x3b\x5c\x6e\x59\x81\x59\x83\x59\x8d\x59\xa9\x59\xaa\x59\xa3\x59\x97\x59\xca\x59\xab\x59\x9e\x59\xa4\x59\xd2\x59\xb2\x59\xaf\x59\xd7\x59\xbe\x5a\x05\x5a\x06\x59\xdd\x5a\x08\x59\xe3\x59\xd8\x59\xf9\x5a\x0c\x5a\x09\x5a\x32\x5a\x34\x5a\x11\x5a\x23\x5a\x13\x5a\x40\x5a\x67\x5a\x4a\x5a\x55\x5a\x3c\x5a\x62\x5a\x75\x80\xec\x5a\xaa\x5a\x9b\x5a\x77\x5a\x7a\x5a\xbe\x5a\xeb\x5a\xb2\x5a\xd2\x5a\xd4\x5a\xb8\x5a\xe0\x5a\xe3\x5a\xf1\x5a\xd6\x5a\xe6\x5a\xd8\x5a\xdc\x5b\x09\x5b\x17\x5b\x16\x5b\x32\x5b\x37\x5b\x40\x5c\x15\x5c\x1c\x5b\x5a\x5b\x65\x5b\x73\x5b\x51\x5b\x53\x5b\x62\x9a\x75\x9a\x77\x9a\x78\x9a\x7a\x9a\x7f\x9a\x7d\x9a\x80\x9a\x81\x9a\x85\x9a\x88\x9a\x8a\x9a\x90\x9a\x92\x9a\x93\x9a\x96\x9a\x98\x9a\x9b\x9a\x9c\x9a\x9d\x9a\x9f\x9a\xa0\x9a\xa2\x9a\xa3\x9a\xa5\x9a\xa7\x7e\x9f\x7e\xa1\x7e\xa3\x7e\xa5\x7e\xa8\x7e\xa9\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xad\x7e\xb0\x7e\xbe\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc9\x7e\xcb\x7e\xcc\x7e\xd0\x7e\xd4\x7e\xd7\x7e\xdb\x7e\xe0\x7e\xe1\x7e\xe8\x7e\xeb\x7e\xee\x7e\xef\x7e\xf1\x7e\xf2\x7f\x0d\x7e\xf6\x7e\xfa\x7e\xfb\x7e\xfe\x7f\x01\x7f\x02\x7f\x03\x7f\x07\x7f\x08\x7f\x0b\x7f\x0c\x7f\x0f\x7f\x11\x7f\x12\x7f\x17\x7f\x19\x7f\x1c\x7f\x1b\x7f\x1f\x7f\x21\x7f\x22\x7f\x23\x7f\x24\x7f\x25\x7f\x26\x7f\x27\x7f\x2a\x7f\x2b\x7f\x2c\x7f\x2d\x7f\x2f\x7f\x30\x7f\x31\x7f\x32\x7f\x33\x7f\x35\x5e\x7a\x75\x7f\x5d\xdb\x75\x3e\x90\x95", /* 6480 */ "\x00\x00\x73\x8e\x73\x91\x73\xae\x73\xa2\x73\x9f\x73\xcf\x73\xc2\x73\xd1\x73\xb7\x73\xb3\x73\xc0\x73\xc9\x73\xc8\x73\xe5\x73\xd9\x98\x7c\x74\x0a\x73\xe9\x73\xe7\x73\xde\x73\xba\x73\xf2\x74\x0f\x74\x2a\x74\x5b\x74\x26\x74\x25\x74\x28\x74\x30\x74\x2e\x74\x2c\x74\x1b\x74\x1a\x74\x41\x74\x5c\x74\x57\x74\x55\x74\x59\x74\x77\x74\x6d\x74\x7e\x74\x9c\x74\x8e\x74\x80\x74\x81\x74\x87\x74\x8b\x74\x9e\x74\xa8\x74\xa9\x74\x90\x74\xa7\x74\xd2\x74\xba\x97\xea\x97\xeb\x97\xec\x67\x4c\x67\x53\x67\x5e\x67\x48\x67\x69\x67\xa5\x67\x87\x67\x6a\x67\x73\x67\x98\x67\xa7\x67\x75\x67\xa8\x67\x9e\x67\xad\x67\x8b\x67\x77\x67\x7c\x67\xf0\x68\x09\x67\xd8\x68\x0a\x67\xe9\x67\xb0\x68\x0c\x67\xd9\x67\xb5\x67\xda\x67\xb3\x67\xdd\x68\x00\x67\xc3\x67\xb8\x67\xe2\x68\x0e\x67\xc1\x67\xfd\x68\x32\x68\x33\x68\x60\x68\x61\x68\x4e\x68\x62\x68\x44\x68\x64\x68\x83\x68\x1d\x68\x55\x68\x66\x68\x41\x68\x67\x68\x40\x68\x3e\x68\x4a\x68\x49\x68\x29\x68\xb5\x68\x8f\x68\x74\x68\x77\x68\x93\x68\x6b\x68\xc2\x69\x6e\x68\xfc\x69\x1f\x69\x20\x68\xf9\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x24\x68\xf0\x69\x0b\x69\x01\x69\x57\x68\xe3\x69\x10\x69\x71\x69\x39\x69\x60\x69\x42\x69\x5d\x69\x84\x69\x6b\x69\x80\x69\x98\x69\x78\x69\x34\x69\xcc\x69\x87\x69\x88\x69\xce\x69\x89\x69\x66\x69\x63\x69\x79\x69\x9b\x69\xa7\x69\xbb\x69\xab\x69\xad\x69\xd4\x69\xb1\x69\xc1\x69\xca\x69\xdf\x69\x95\x69\xe0\x69\x8d\x69\xff\x6a\x2f\x69\xed\x6a\x17\x6a\x18\x6a\x65\x69\xf2\x6a\x44\x6a\x3e\x6a\xa0\x6a\x50\x6a\x5b\x6a\x35\x6a\x8e\x6a\x79\x6a\x3d\x6a\x28\x6a\x58\x6a\x7c\x6a\x91\x6a\x90\x6a\xa9\x6a\x97\x6a\xab", /* 6580 */ "\x00\x00\x73\x37\x73\x52\x6b\x81\x6b\x82\x6b\x87\x6b\x84\x6b\x92\x6b\x93\x6b\x8d\x6b\x9a\x6b\x9b\x6b\xa1\x6b\xaa\x8f\x6b\x8f\x6d\x8f\x71\x8f\x72\x8f\x73\x8f\x75\x8f\x76\x8f\x78\x8f\x77\x8f\x79\x8f\x7a\x8f\x7c\x8f\x7e\x8f\x81\x8f\x82\x8f\x84\x8f\x87\x8f\x8b\x8f\x8d\x8f\x8e\x8f\x8f\x8f\x98\x8f\x9a\x8e\xce\x62\x0b\x62\x17\x62\x1b\x62\x1f\x62\x22\x62\x21\x62\x25\x62\x24\x62\x2c\x81\xe7\x74\xef\x74\xf4\x74\xff\x75\x0f\x75\x11\x75\x13\x65\x34\x65\xee\x65\xef\x65\xf0\x66\x0a\x66\x19\x67\x72\x66\x03\x66\x15\x66\x00\x70\x85\x66\xf7\x66\x1d\x66\x34\x66\x31\x66\x36\x66\x35\x80\x06\x66\x5f\x66\x54\x66\x41\x66\x4f\x66\x56\x66\x61\x66\x57\x66\x77\x66\x84\x66\x8c\x66\xa7\x66\x9d\x66\xbe\x66\xdb\x66\xdc\x66\xe6\x66\xe9\x8d\x32\x8d\x33\x8d\x36\x8d\x3b\x8d\x3d\x8d\x40\x8d\x45\x8d\x46\x8d\x48\x8d\x49\x8d\x47\x8d\x4d\x8d\x55\x8d\x59\x89\xc7\x89\xca\x89\xcb\x89\xcc\x89\xce\x89\xcf\x89\xd0\x89\xd1\x72\x6e\x72\x9f\x72\x5d\x72\x66\x72\x6f\x72\x7e\x72\x7f\x72\x84\x72\x8b\x72\x8d\x72\x8f\x72\x92\x63\x08\x63\x32\x63\xb0\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x3f\x64\xd8\x80\x04\x6b\xea\x6b\xf3\x6b\xfd\x6b\xf5\x6b\xf9\x6c\x05\x6c\x07\x6c\x06\x6c\x0d\x6c\x15\x6c\x18\x6c\x19\x6c\x1a\x6c\x21\x6c\x29\x6c\x24\x6c\x2a\x6c\x32\x65\x35\x65\x55\x65\x6b\x72\x4d\x72\x52\x72\x56\x72\x30\x86\x62\x52\x16\x80\x9f\x80\x9c\x80\x93\x80\xbc\x67\x0a\x80\xbd\x80\xb1\x80\xab\x80\xad\x80\xb4\x80\xb7\x80\xe7\x80\xe8\x80\xe9\x80\xea\x80\xdb\x80\xc2\x80\xc4\x80\xd9\x80\xcd\x80\xd7\x67\x10\x80\xdd\x80\xeb\x80\xf1\x80\xf4\x80\xed\x81\x0d\x81\x0e\x80\xf2\x80\xfc\x67\x15\x81\x12", /* 6680 */ "\x00\x00\x8c\x5a\x81\x36\x81\x1e\x81\x2c\x81\x18\x81\x32\x81\x48\x81\x4c\x81\x53\x81\x74\x81\x59\x81\x5a\x81\x71\x81\x60\x81\x69\x81\x7c\x81\x7d\x81\x6d\x81\x67\x58\x4d\x5a\xb5\x81\x88\x81\x82\x81\x91\x6e\xd5\x81\xa3\x81\xaa\x81\xcc\x67\x26\x81\xca\x81\xbb\x81\xc1\x81\xa6\x6b\x24\x6b\x37\x6b\x39\x6b\x43\x6b\x46\x6b\x59\x98\xd1\x98\xd2\x98\xd3\x98\xd5\x98\xd9\x98\xda\x6b\xb3\x5f\x40\x6b\xc2\x89\xf3\x65\x90\x9f\x51\x65\x93\x65\xbc\x65\xc6\x65\xc4\x65\xc3\x65\xcc\x65\xce\x65\xd2\x65\xd6\x70\x80\x70\x9c\x70\x96\x70\x9d\x70\xbb\x70\xc0\x70\xb7\x70\xab\x70\xb1\x70\xe8\x70\xca\x71\x10\x71\x13\x71\x16\x71\x2f\x71\x31\x71\x73\x71\x5c\x71\x68\x71\x45\x71\x72\x71\x4a\x71\x78\x71\x7a\x71\x98\x71\xb3\x71\xb5\x71\xa8\x71\xa0\x71\xe0\x71\xd4\x71\xe7\x71\xf9\x72\x1d\x72\x28\x70\x6c\x71\x18\x71\x66\x71\xb9\x62\x3e\x62\x3d\x62\x43\x62\x48\x62\x49\x79\x3b\x79\x40\x79\x46\x79\x49\x79\x5b\x79\x5c\x79\x53\x79\x5a\x79\x62\x79\x57\x79\x60\x79\x6f\x79\x67\x79\x7a\x79\x85\x79\x8a\x79\x9a\x79\xa7\x79\xb3\x5f\xd1\x5f\xd0\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x3c\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\x59\x60\x63\x60\xab\x61\x06\x61\x0d\x61\x5d\x61\xa9\x61\x9d\x61\xcb\x61\xd1\x62\x06\x80\x80\x80\x7f\x6c\x93\x6c\xf6\x6d\xfc\x77\xf6\x77\xf8\x78\x00\x78\x09\x78\x17\x78\x18\x78\x11\x65\xab\x78\x2d\x78\x1c\x78\x1d\x78\x39\x78\x3a\x78\x3b\x78\x1f\x78\x3c\x78\x25\x78\x2c\x78\x23\x78\x29\x78\x4e\x78\x6d\x78\x56\x78\x57\x78\x26\x78\x50\x78\x47\x78\x4c\x78\x6a\x78\x9b\x78\x93\x78\x9a\x78\x87\x78\x9c\x78\xa1\x78\xa3\x78\xb2\x78\xb9\x78\xa5\x78\xd4\x78\xd9\x78\xc9", /* 6780 */ "\x00\x00\x78\xec\x78\xf2\x79\x05\x78\xf4\x79\x13\x79\x24\x79\x1e\x79\x34\x9f\x9b\x9e\xf9\x9e\xfb\x9e\xfc\x76\xf1\x77\x04\x77\x0d\x76\xf9\x77\x07\x77\x08\x77\x1a\x77\x22\x77\x19\x77\x2d\x77\x26\x77\x35\x77\x38\x77\x50\x77\x51\x77\x47\x77\x43\x77\x5a\x77\x68\x77\x62\x77\x65\x77\x7f\x77\x8d\x77\x7d\x77\x80\x77\x8c\x77\x91\x77\x9f\x77\xa0\x77\xb0\x77\xb5\x77\xbd\x75\x3a\x75\x40\x75\x4e\x75\x4b\x75\x48\x75\x5b\x75\x72\x75\x79\x75\x83\x7f\x58\x7f\x61\x7f\x5f\x8a\x48\x7f\x68\x7f\x74\x7f\x71\x7f\x79\x7f\x81\x7f\x7e\x76\xcd\x76\xe5\x88\x32\x94\x85\x94\x86\x94\x87\x94\x8b\x94\x8a\x94\x8c\x94\x8d\x94\x8f\x94\x90\x94\x94\x94\x97\x94\x95\x94\x9a\x94\x9b\x94\x9c\x94\xa3\x94\xa4\x94\xab\x94\xaa\x94\xad\x94\xac\x94\xaf\x94\xb0\x94\xb2\x94\xb4\x94\xb6\x94\xb7\x94\xb8\x94\xb9\x94\xba\x94\xbc\x94\xbd\x94\xbf\x94\xc4\x94\xc8\x94\xc9\x94\xca\x94\xcb\x94\xcc\x94\xcd\x94\xce\x94\xd0\x94\xd1\x94\xd2\x94\xd5\x94\xd6\x94\xd7\x94\xd9\x94\xd8\x94\xdb\x94\xde\x94\xdf\x94\xe0\x94\xe2\x94\xe4\x94\xe5\x94\xe7\x94\xe8\x94\xea\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe9\x94\xeb\x94\xee\x94\xef\x94\xf3\x94\xf4\x94\xf5\x94\xf7\x94\xf9\x94\xfc\x94\xfd\x94\xff\x95\x03\x95\x02\x95\x06\x95\x07\x95\x09\x95\x0a\x95\x0d\x95\x0e\x95\x0f\x95\x12\x95\x13\x95\x14\x95\x15\x95\x16\x95\x18\x95\x1b\x95\x1d\x95\x1e\x95\x1f\x95\x22\x95\x2a\x95\x2b\x95\x29\x95\x2c\x95\x31\x95\x32\x95\x34\x95\x36\x95\x37\x95\x38\x95\x3c\x95\x3e\x95\x3f\x95\x42\x95\x35\x95\x44\x95\x45\x95\x46\x95\x49\x95\x4c\x95\x4e\x95\x4f\x95\x52\x95\x53\x95\x54\x95\x56\x95\x57\x95\x58\x95\x59\x95\x5b\x95\x5e", /* 6880 */ "\x00\x00\x95\x5f\x95\x5d\x95\x61\x95\x62\x95\x64\x95\x65\x95\x66\x95\x67\x95\x68\x95\x69\x95\x6a\x95\x6b\x95\x6c\x95\x6f\x95\x71\x95\x72\x95\x73\x95\x3a\x77\xe7\x77\xec\x96\xc9\x79\xd5\x79\xed\x79\xe3\x79\xeb\x7a\x06\x5d\x47\x7a\x03\x7a\x02\x7a\x1e\x7a\x14\x7a\x39\x7a\x37\x7a\x51\x9e\xcf\x99\xa5\x7a\x70\x76\x88\x76\x8e\x76\x93\x76\x99\x76\xa4\x74\xde\x74\xe0\x75\x2c\x9e\x20\x9e\x22\x9e\x28\x9e\x29\x9e\x2a\x9e\x2b\x9e\x2c\x9e\x32\x9e\x31\x9e\x36\x9e\x38\x9e\x37\x9e\x39\x9e\x3a\x9e\x3e\x9e\x41\x9e\x42\x9e\x44\x9e\x46\x9e\x47\x9e\x48\x9e\x49\x9e\x4b\x9e\x4c\x9e\x4e\x9e\x51\x9e\x55\x9e\x57\x9e\x5a\x9e\x5b\x9e\x5c\x9e\x5e\x9e\x63\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x9e\x6b\x9e\x6c\x9e\x71\x9e\x6d\x9e\x73\x75\x92\x75\x94\x75\x96\x75\xa0\x75\x9d\x75\xac\x75\xa3\x75\xb3\x75\xb4\x75\xb8\x75\xc4\x75\xb1\x75\xb0\x75\xc3\x75\xc2\x75\xd6\x75\xcd\x75\xe3\x75\xe8\x75\xe6\x75\xe4\x75\xeb\x75\xe7\x76\x03\x75\xf1\x75\xfc\x75\xff\x76\x10\x76\x00\x76\x05\x76\x0c\x76\x17\x76\x0a\x76\x25\x76\x18\x76\x15\x76\x19\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x1b\x76\x3c\x76\x22\x76\x20\x76\x40\x76\x2d\x76\x30\x76\x3f\x76\x35\x76\x43\x76\x3e\x76\x33\x76\x4d\x76\x5e\x76\x54\x76\x5c\x76\x56\x76\x6b\x76\x6f\x7f\xca\x7a\xe6\x7a\x78\x7a\x79\x7a\x80\x7a\x86\x7a\x88\x7a\x95\x7a\xa6\x7a\xa0\x7a\xac\x7a\xa8\x7a\xad\x7a\xb3\x88\x64\x88\x69\x88\x72\x88\x7d\x88\x7f\x88\x82\x88\xa2\x88\xc6\x88\xb7\x88\xbc\x88\xc9\x88\xe2\x88\xce\x88\xe3\x88\xe5\x88\xf1\x89\x1a\x88\xfc\x88\xe8\x88\xfe\x88\xf0\x89\x21\x89\x19\x89\x13\x89\x1b\x89\x0a\x89\x34\x89\x2b\x89\x36\x89\x41", /* 6980 */ "\x00\x00\x89\x66\x89\x7b\x75\x8b\x80\xe5\x76\xb2\x76\xb4\x77\xdc\x80\x12\x80\x14\x80\x16\x80\x1c\x80\x20\x80\x22\x80\x25\x80\x26\x80\x27\x80\x29\x80\x28\x80\x31\x80\x0b\x80\x35\x80\x43\x80\x46\x80\x4d\x80\x52\x80\x69\x80\x71\x89\x83\x98\x78\x98\x80\x98\x83\x98\x89\x98\x8c\x98\x8d\x98\x8f\x98\x94\x98\x9a\x98\x9b\x98\x9e\x98\x9f\x98\xa1\x98\xa2\x98\xa5\x98\xa6\x86\x4d\x86\x54\x86\x6c\x86\x6e\x86\x7f\x86\x7a\x86\x7c\x86\x7b\x86\xa8\x86\x8d\x86\x8b\x86\xac\x86\x9d\x86\xa7\x86\xa3\x86\xaa\x86\x93\x86\xa9\x86\xb6\x86\xc4\x86\xb5\x86\xce\x86\xb0\x86\xba\x86\xb1\x86\xaf\x86\xc9\x86\xcf\x86\xb4\x86\xe9\x86\xf1\x86\xf2\x86\xed\x86\xf3\x86\xd0\x87\x13\x86\xde\x86\xf4\x86\xdf\x86\xd8\x86\xd1\x87\x03\x87\x07\x86\xf8\x87\x08\x87\x0a\x87\x0d\x87\x09\x87\x23\x87\x3b\x87\x1e\x87\x25\x87\x2e\x87\x1a\x87\x3e\x87\x48\x87\x34\x87\x31\x87\x29\x87\x37\x87\x3f\x87\x82\x87\x22\x87\x7d\x87\x7e\x87\x7b\x87\x60\x87\x70\x87\x4c\x87\x6e\x87\x8b\x87\x53\x87\x63\x87\x7c\x87\x64\x87\x59\x87\x65\x87\x93\x87\xaf\x87\xa8\x87\xd2\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xc6\x87\x88\x87\x85\x87\xad\x87\x97\x87\x83\x87\xab\x87\xe5\x87\xac\x87\xb5\x87\xb3\x87\xcb\x87\xd3\x87\xbd\x87\xd1\x87\xc0\x87\xca\x87\xdb\x87\xea\x87\xe0\x87\xee\x88\x16\x88\x13\x87\xfe\x88\x0a\x88\x1b\x88\x21\x88\x39\x88\x3c\x7f\x36\x7f\x42\x7f\x44\x7f\x45\x82\x10\x7a\xfa\x7a\xfd\x7b\x08\x7b\x03\x7b\x04\x7b\x15\x7b\x0a\x7b\x2b\x7b\x0f\x7b\x47\x7b\x38\x7b\x2a\x7b\x19\x7b\x2e\x7b\x31\x7b\x20\x7b\x25\x7b\x24\x7b\x33\x7b\x3e\x7b\x1e\x7b\x58\x7b\x5a\x7b\x45\x7b\x75\x7b\x4c\x7b\x5d\x7b\x60\x7b\x6e", /* 6a80 */ "\x00\x00\x7b\x7b\x7b\x62\x7b\x72\x7b\x71\x7b\x90\x7b\xa6\x7b\xa7\x7b\xb8\x7b\xac\x7b\x9d\x7b\xa8\x7b\x85\x7b\xaa\x7b\x9c\x7b\xa2\x7b\xab\x7b\xb4\x7b\xd1\x7b\xc1\x7b\xcc\x7b\xdd\x7b\xda\x7b\xe5\x7b\xe6\x7b\xea\x7c\x0c\x7b\xfe\x7b\xfc\x7c\x0f\x7c\x16\x7c\x0b\x7c\x1f\x7c\x2a\x7c\x26\x7c\x38\x7c\x41\x7c\x40\x81\xfe\x82\x01\x82\x02\x82\x04\x81\xec\x88\x44\x82\x21\x82\x22\x82\x23\x82\x2d\x82\x2f\x82\x28\x82\x2b\x82\x38\x82\x3b\x82\x33\x82\x34\x82\x3e\x82\x44\x82\x49\x82\x4b\x82\x4f\x82\x5a\x82\x5f\x82\x68\x88\x7e\x88\x85\x88\x88\x88\xd8\x88\xdf\x89\x5e\x7f\x9d\x7f\x9f\x7f\xa7\x7f\xaf\x7f\xb0\x7f\xb2\x7c\x7c\x65\x49\x7c\x91\x7c\x9d\x7c\x9c\x7c\x9e\x7c\xa2\x7c\xb2\x7c\xbc\x7c\xbd\x7c\xc1\x7c\xc7\x7c\xcc\x7c\xcd\x7c\xc8\x7c\xc5\x7c\xd7\x7c\xe8\x82\x6e\x66\xa8\x7f\xbf\x7f\xce\x7f\xd5\x7f\xe5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xee\x7f\xf3\x7c\xf8\x7d\x77\x7d\xa6\x7d\xae\x7e\x47\x7e\x9b\x9e\xb8\x9e\xb4\x8d\x73\x8d\x84\x8d\x94\x8d\x91\x8d\xb1\x8d\x67\x8d\x6d\x8c\x47\x8c\x49\x91\x4a\x91\x50\x91\x4e\x91\x4f\x91\x64\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x62\x91\x61\x91\x70\x91\x69\x91\x6f\x91\x7d\x91\x7e\x91\x72\x91\x74\x91\x79\x91\x8c\x91\x85\x91\x90\x91\x8d\x91\x91\x91\xa2\x91\xa3\x91\xaa\x91\xad\x91\xae\x91\xaf\x91\xb5\x91\xb4\x91\xba\x8c\x55\x9e\x7e\x8d\xb8\x8d\xeb\x8e\x05\x8e\x59\x8e\x69\x8d\xb5\x8d\xbf\x8d\xbc\x8d\xba\x8d\xc4\x8d\xd6\x8d\xd7\x8d\xda\x8d\xde\x8d\xce\x8d\xcf\x8d\xdb\x8d\xc6\x8d\xec\x8d\xf7\x8d\xf8\x8d\xe3\x8d\xf9\x8d\xfb\x8d\xe4\x8e\x09\x8d\xfd\x8e\x14\x8e\x1d\x8e\x1f\x8e\x2c\x8e\x2e\x8e\x23\x8e\x2f\x8e\x3a\x8e\x40\x8e\x39", /* 6b80 */ "\x00\x00\x8e\x35\x8e\x3d\x8e\x31\x8e\x49\x8e\x41\x8e\x42\x8e\x51\x8e\x52\x8e\x4a\x8e\x70\x8e\x76\x8e\x7c\x8e\x6f\x8e\x74\x8e\x85\x8e\x8f\x8e\x94\x8e\x90\x8e\x9c\x8e\x9e\x8c\x78\x8c\x82\x8c\x8a\x8c\x85\x8c\x98\x8c\x94\x65\x9b\x89\xd6\x89\xde\x89\xda\x89\xdc\x89\xe5\x89\xeb\x89\xef\x8a\x3e\x8b\x26\x97\x53\x96\xe9\x96\xf3\x96\xef\x97\x06\x97\x01\x97\x08\x97\x0f\x97\x0e\x97\x2a\x97\x2d\x97\x30\x97\x3e\x9f\x80\x9f\x83\x9f\x85\x9f\x86\x9f\x87\x9f\x88\x9f\x89\x9f\x8a\x9f\x8c\x9e\xfe\x9f\x0b\x9f\x0d\x96\xb9\x96\xbc\x96\xbd\x96\xce\x96\xd2\x77\xbf\x96\xe0\x92\x8e\x92\xae\x92\xc8\x93\x3e\x93\x6a\x93\xca\x93\x8f\x94\x3e\x94\x6b\x9c\x7f\x9c\x82\x9c\x85\x9c\x86\x9c\x87\x9c\x88\x7a\x23\x9c\x8b\x9c\x8e\x9c\x90\x9c\x91\x9c\x92\x9c\x94\x9c\x95\x9c\x9a\x9c\x9b\x9c\x9e\x9c\x9f\x9c\xa0\x9c\xa1\x9c\xa2\x9c\xa3\x9c\xa5\x9c\xa6\x9c\xa7\x9c\xa8\x9c\xa9\x9c\xab\x9c\xad\x9c\xae\x9c\xb0\x9c\xb1\x9c\xb2\x9c\xb3\x9c\xb4\x9c\xb5\x9c\xb6\x9c\xb7\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xca\x9c\xcb\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xcc\x9c\xcd\x9c\xce\x9c\xcf\x9c\xd0\x9c\xd3\x9c\xd4\x9c\xd5\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xdc\x9c\xdd\x9c\xdf\x9c\xe2\x97\x7c\x97\x85\x97\x91\x97\x92\x97\x94\x97\xaf\x97\xab\x97\xa3\x97\xb2\x97\xb4\x9a\xb1\x9a\xb0\x9a\xb7\x9e\x58\x9a\xb6\x9a\xba\x9a\xbc\x9a\xc1\x9a\xc0\x9a\xc5\x9a\xc2\x9a\xcb\x9a\xcc\x9a\xd1\x9b\x45\x9b\x43\x9b\x47\x9b\x49\x9b\x48\x9b\x4d\x9b\x51\x98\xe8\x99\x0d\x99\x2e\x99\x55\x99\x54\x9a\xdf\x9a\xe1\x9a\xe6\x9a\xef\x9a\xeb\x9a\xfb\x9a\xed\x9a\xf9\x9b\x08\x9b\x0f\x9b\x13\x9b\x1f", /* 6c80 */ "\x00\x00\x9b\x23\x9e\xbd\x9e\xbe\x7e\x3b\x9e\x82\x9e\x87\x9e\x88\x9e\x8b\x9e\x92\x93\xd6\x9e\x9d\x9e\x9f\x9e\xdb\x9e\xdc\x9e\xdd\x9e\xe0\x9e\xdf\x9e\xe2\x9e\xe9\x9e\xe7\x9e\xe5\x9e\xea\x9e\xef\x9f\x22\x9f\x2c\x9f\x2f\x9f\x39\x9f\x37\x9f\x3d\x9f\x3e\x9f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x0f\x01\x0f\x02\x0f\x03\x0f\x04\x0f\x05\x0f\x06\x0f\x07\x0f\x08\x0f\x09\x0f\x0a\x0f\x0b\x0f\x0c\x0f\x0d\x0f\x0e\x0f\x0f\x0f\x10\x0f\x11\x0f\x12\x0f\x13\x0f\x14\x0f\x15\x0f\x16\x0f\x17\x0f\x18\x0f\x19\x0f\x1a\x0f\x1b\x0f\x1c\x0f\x1d\x0f\x1e\x0f\x1f\x0f\x20\x0f\x21\x0f\x22\x0f\x23\x0f\x24\x0f\x25\x0f\x26\x0f\x27\x0f\x28\x0f\x29\x0f\x2a\x0f\x2b\x0f\x2c\x0f\x2d\x0f\x2e\x0f\x2f\x0f\x30\x0f\x31\x0f\x32\x0f\x33\x0f\x34\x0f\x35\x0f\x36\x0f\x37\x0f\x38\x0f\x39\x0f\x3a\x0f\x3b\x0f\x3c\x0f\x3d\x0f\x3e", /* 6d80 */ "\x0f\x3f\x0f\x40\x0f\x41\x0f\x42\x0f\x43\x0f\x44\x0f\x45\x0f\x46\x0f\x47\x0f\x48\x0f\x49\x0f\x4a\x0f\x4b\x0f\x4c\x0f\x4d\x0f\x4e\x0f\x4f\x0f\x50\x0f\x51\x0f\x52\x0f\x53\x0f\x54\x0f\x55\x0f\x56\x0f\x57\x0f\x58\x0f\x59\x0f\x5a\x0f\x5b\x0f\x5c\x0f\x5d\x0f\x5e\x0f\x5f\x0f\x60\x0f\x61\x0f\x62\x0f\x63\x0f\x64\x0f\x65\x0f\x66\x0f\x67\x0f\x68\x0f\x69\x0f\x6a\x0f\x6b\x0f\x6c\x0f\x6d\x0f\x6e\x0f\x6f\x0f\x70\x0f\x71\x0f\x72\x0f\x73\x0f\x74\x0f\x75\x0f\x76\x0f\x77\x0f\x78\x0f\x79\x0f\x7a\x0f\x7b\x0f\x7c\x0f\x7d\x0f\x7e\x0f\x7f\x0f\x80\x0f\x81\x0f\x82\x0f\x83\x0f\x84\x0f\x85\x0f\x86\x0f\x87\x0f\x88\x0f\x89\x0f\x8a\x0f\x8b\x0f\x8c\x0f\x8d\x0f\x8e\x0f\x8f\x0f\x90\x0f\x91\x0f\x92\x0f\x93\x0f\x94\x0f\x95\x0f\x96\x0f\x97\x0f\x98\x0f\x99\x0f\x9a\x0f\x9b\x0f\x9c\x0f\x9d\x0f\x9e\x0f\x9f\x0f\xa0\x0f\xa1\x0f\xa2\x0f\xa3\x0f\xa4\x0f\xa5\x0f\xa6\x0f\xa7\x0f\xa8\x0f\xa9\x0f\xaa\x0f\xab\x0f\xac\x0f\xad\x0f\xae\x0f\xaf\x0f\xb0\x0f\xb1\x0f\xb2\x0f\xb3\x0f\xb4\x0f\xb5\x0f\xb6\x0f\xb7\x0f\xb8\x0f\xb9\x0f\xba\x0f\xbb\x0f\xbc\x0f\xbd\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\xbe\x0f\xbf\x0f\xc0\x0f\xc1\x0f\xc2\x0f\xc3\x0f\xc4\x0f\xc5\x0f\xc6\x0f\xc7\x0f\xc8\x0f\xc9\x0f\xca\x0f\xcb\x0f\xcc\x0f\xcd\x0f\xce\x0f\xcf\x0f\xd0\x0f\xd1\x0f\xd2\x0f\xd3\x0f\xd4\x0f\xd5\x0f\xd6\x0f\xd7\x0f\xd8\x0f\xd9\x0f\xda\x0f\xdb\x0f\xdc\x0f\xdd\x0f\xde\x0f\xdf\x0f\xe0\x0f\xe1\x0f\xe2\x0f\xe3\x0f\xe4\x0f\xe5\x0f\xe6\x0f\xe7\x0f\xe8\x0f\xe9\x0f\xea\x0f\xeb\x0f\xec\x0f\xed\x0f\xee\x0f\xef\x0f\xf0\x0f\xf1\x0f\xf2\x0f\xf3\x0f\xf4\x0f\xf5\x0f\xf6\x0f\xf7\x0f\xf8\x0f\xf9\x0f\xfa\x0f\xfb\x0f\xfc", /* 6e80 */ "\x0f\xfd\x0f\xfe\x0f\xff\x18\x00\x18\x01\x18\x02\x18\x03\x18\x04\x18\x05\x18\x06\x18\x07\x18\x08\x18\x09\x18\x0a\x18\x0b\x18\x0c\x18\x0d\x18\x0e\x18\x0f\x18\x10\x18\x11\x18\x12\x18\x13\x18\x14\x18\x15\x18\x16\x18\x17\x18\x18\x18\x19\x18\x1a\x18\x1b\x18\x1c\x18\x1d\x18\x1e\x18\x1f\x18\x20\x18\x21\x18\x22\x18\x23\x18\x24\x18\x25\x18\x26\x18\x27\x18\x28\x18\x29\x18\x2a\x18\x2b\x18\x2c\x18\x2d\x18\x2e\x18\x2f\x18\x30\x18\x31\x18\x32\x18\x33\x18\x34\x18\x35\x18\x36\x18\x37\x18\x38\x18\x39\x18\x3a\x18\x3b\x18\x3c\x18\x3d\x18\x3e\x18\x3f\x18\x40\x18\x41\x18\x42\x18\x43\x18\x44\x18\x45\x18\x46\x18\x47\x18\x48\x18\x49\x18\x4a\x18\x4b\x18\x4c\x18\x4d\x18\x4e\x18\x4f\x18\x50\x18\x51\x18\x52\x18\x53\x18\x54\x18\x55\x18\x56\x18\x57\x18\x58\x18\x59\x18\x5a\x18\x5b\x18\x5c\x18\x5d\x18\x5e\x18\x5f\x18\x60\x18\x61\x18\x62\x18\x63\x18\x64\x18\x65\x18\x66\x18\x67\x18\x68\x18\x69\x18\x6a\x18\x6b\x18\x6c\x18\x6d\x18\x6e\x18\x6f\x18\x70\x18\x71\x18\x72\x18\x73\x18\x74\x18\x75\x18\x76\x18\x77\x18\x78\x18\x79\x18\x7a\x18\x7b\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x7c\x18\x7d\x18\x7e\x18\x7f\x18\x80\x18\x81\x18\x82\x18\x83\x18\x84\x18\x85\x18\x86\x18\x87\x18\x88\x18\x89\x18\x8a\x18\x8b\x18\x8c\x18\x8d\x18\x8e\x18\x8f\x18\x90\x18\x91\x18\x92\x18\x93\x18\x94\x18\x95\x18\x96\x18\x97\x18\x98\x18\x99\x18\x9a\x18\x9b\x18\x9c\x18\x9d\x18\x9e\x18\x9f\x18\xa0\x18\xa1\x18\xa2\x18\xa3\x18\xa4\x18\xa5\x18\xa6\x18\xa7\x18\xa8\x18\xa9\x18\xaa\x18\xab\x18\xac\x18\xad\x18\xae\x18\xaf\xa0\x00\xa0\x01\xa0\x02\xa0\x03\xa0\x04\xa0\x05\xa0\x06\xa0\x07\xa0\x08\xa0\x09\xa0\x0a", /* 6f80 */ "\xa0\x0b\xa0\x0c\xa0\x0d\xa0\x0e\xa0\x0f\xa0\x10\xa0\x11\xa0\x12\xa0\x13\xa0\x14\xa0\x15\xa0\x16\xa0\x17\xa0\x18\xa0\x19\xa0\x1a\xa0\x1b\xa0\x1c\xa0\x1d\xa0\x1e\xa0\x1f\xa0\x20\xa0\x21\xa0\x22\xa0\x23\xa0\x24\xa0\x25\xa0\x26\xa0\x27\xa0\x28\xa0\x29\xa0\x2a\xa0\x2b\xa0\x2c\xa0\x2d\xa0\x2e\xa0\x2f\xa0\x30\xa0\x31\xa0\x32\xa0\x33\xa0\x34\xa0\x35\xa0\x36\xa0\x37\xa0\x38\xa0\x39\xa0\x3a\xa0\x3b\xa0\x3c\xa0\x3d\xa0\x3e\xa0\x3f\xa0\x40\xa0\x41\xa0\x42\xa0\x43\xa0\x44\xa0\x45\xa0\x46\xa0\x47\xa0\x48\xa0\x49\xa0\x4a\xa0\x4b\xa0\x4c\xa0\x4d\xa0\x4e\xa0\x4f\xa0\x50\xa0\x51\xa0\x52\xa0\x53\xa0\x54\xa0\x55\xa0\x56\xa0\x57\xa0\x58\xa0\x59\xa0\x5a\xa0\x5b\xa0\x5c\xa0\x5d\xa0\x5e\xa0\x5f\xa0\x60\xa0\x61\xa0\x62\xa0\x63\xa0\x64\xa0\x65\xa0\x66\xa0\x67\xa0\x68\xa0\x69\xa0\x6a\xa0\x6b\xa0\x6c\xa0\x6d\xa0\x6e\xa0\x6f\xa0\x70\xa0\x71\xa0\x72\xa0\x73\xa0\x74\xa0\x75\xa0\x76\xa0\x77\xa0\x78\xa0\x79\xa0\x7a\xa0\x7b\xa0\x7c\xa0\x7d\xa0\x7e\xa0\x7f\xa0\x80\xa0\x81\xa0\x82\xa0\x83\xa0\x84\xa0\x85\xa0\x86\xa0\x87\xa0\x88\xa0\x89\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x8a\xa0\x8b\xa0\x8c\xa0\x8d\xa0\x8e\xa0\x8f\xa0\x90\xa0\x91\xa0\x92\xa0\x93\xa0\x94\xa0\x95\xa0\x96\xa0\x97\xa0\x98\xa0\x99\xa0\x9a\xa0\x9b\xa0\x9c\xa0\x9d\xa0\x9e\xa0\x9f\xa0\xa0\xa0\xa1\xa0\xa2\xa0\xa3\xa0\xa4\xa0\xa5\xa0\xa6\xa0\xa7\xa0\xa8\xa0\xa9\xa0\xaa\xa0\xab\xa0\xac\xa0\xad\xa0\xae\xa0\xaf\xa0\xb0\xa0\xb1\xa0\xb2\xa0\xb3\xa0\xb4\xa0\xb5\xa0\xb6\xa0\xb7\xa0\xb8\xa0\xb9\xa0\xba\xa0\xbb\xa0\xbc\xa0\xbd\xa0\xbe\xa0\xbf\xa0\xc0\xa0\xc1\xa0\xc2\xa0\xc3\xa0\xc4\xa0\xc5\xa0\xc6\xa0\xc7\xa0\xc8", /* 7080 */ "\xa0\xc9\xa0\xca\xa0\xcb\xa0\xcc\xa0\xcd\xa0\xce\xa0\xcf\xa0\xd0\xa0\xd1\xa0\xd2\xa0\xd3\xa0\xd4\xa0\xd5\xa0\xd6\xa0\xd7\xa0\xd8\xa0\xd9\xa0\xda\xa0\xdb\xa0\xdc\xa0\xdd\xa0\xde\xa0\xdf\xa0\xe0\xa0\xe1\xa0\xe2\xa0\xe3\xa0\xe4\xa0\xe5\xa0\xe6\xa0\xe7\xa0\xe8\xa0\xe9\xa0\xea\xa0\xeb\xa0\xec\xa0\xed\xa0\xee\xa0\xef\xa0\xf0\xa0\xf1\xa0\xf2\xa0\xf3\xa0\xf4\xa0\xf5\xa0\xf6\xa0\xf7\xa0\xf8\xa0\xf9\xa0\xfa\xa0\xfb\xa0\xfc\xa0\xfd\xa0\xfe\xa0\xff\xa1\x00\xa1\x01\xa1\x02\xa1\x03\xa1\x04\xa1\x05\xa1\x06\xa1\x07\xa1\x08\xa1\x09\xa1\x0a\xa1\x0b\xa1\x0c\xa1\x0d\xa1\x0e\xa1\x0f\xa1\x10\xa1\x11\xa1\x12\xa1\x13\xa1\x14\xa1\x15\xa1\x16\xa1\x17\xa1\x18\xa1\x19\xa1\x1a\xa1\x1b\xa1\x1c\xa1\x1d\xa1\x1e\xa1\x1f\xa1\x20\xa1\x21\xa1\x22\xa1\x23\xa1\x24\xa1\x25\xa1\x26\xa1\x27\xa1\x28\xa1\x29\xa1\x2a\xa1\x2b\xa1\x2c\xa1\x2d\xa1\x2e\xa1\x2f\xa1\x30\xa1\x31\xa1\x32\xa1\x33\xa1\x34\xa1\x35\xa1\x36\xa1\x37\xa1\x38\xa1\x39\xa1\x3a\xa1\x3b\xa1\x3c\xa1\x3d\xa1\x3e\xa1\x3f\xa1\x40\xa1\x41\xa1\x42\xa1\x43\xa1\x44\xa1\x45\xa1\x46\xa1\x47\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x48\xa1\x49\xa1\x4a\xa1\x4b\xa1\x4c\xa1\x4d\xa1\x4e\xa1\x4f\xa1\x50\xa1\x51\xa1\x52\xa1\x53\xa1\x54\xa1\x55\xa1\x56\xa1\x57\xa1\x58\xa1\x59\xa1\x5a\xa1\x5b\xa1\x5c\xa1\x5d\xa1\x5e\xa1\x5f\xa1\x60\xa1\x61\xa1\x62\xa1\x63\xa1\x64\xa1\x65\xa1\x66\xa1\x67\xa1\x68\xa1\x69\xa1\x6a\xa1\x6b\xa1\x6c\xa1\x6d\xa1\x6e\xa1\x6f\xa1\x70\xa1\x71\xa1\x72\xa1\x73\xa1\x74\xa1\x75\xa1\x76\xa1\x77\xa1\x78\xa1\x79\xa1\x7a\xa1\x7b\xa1\x7c\xa1\x7d\xa1\x7e\xa1\x7f\xa1\x80\xa1\x81\xa1\x82\xa1\x83\xa1\x84\xa1\x85\xa1\x86", /* 7180 */ "\xa1\x87\xa1\x88\xa1\x89\xa1\x8a\xa1\x8b\xa1\x8c\xa1\x8d\xa1\x8e\xa1\x8f\xa1\x90\xa1\x91\xa1\x92\xa1\x93\xa1\x94\xa1\x95\xa1\x96\xa1\x97\xa1\x98\xa1\x99\xa1\x9a\xa1\x9b\xa1\x9c\xa1\x9d\xa1\x9e\xa1\x9f\xa1\xa0\xa1\xa1\xa1\xa2\xa1\xa3\xa1\xa4\xa1\xa5\xa1\xa6\xa1\xa7\xa1\xa8\xa1\xa9\xa1\xaa\xa1\xab\xa1\xac\xa1\xad\xa1\xae\xa1\xaf\xa1\xb0\xa1\xb1\xa1\xb2\xa1\xb3\xa1\xb4\xa1\xb5\xa1\xb6\xa1\xb7\xa1\xb8\xa1\xb9\xa1\xba\xa1\xbb\xa1\xbc\xa1\xbd\xa1\xbe\xa1\xbf\xa1\xc0\xa1\xc1\xa1\xc2\xa1\xc3\xa1\xc4\xa1\xc5\xa1\xc6\xa1\xc7\xa1\xc8\xa1\xc9\xa1\xca\xa1\xcb\xa1\xcc\xa1\xcd\xa1\xce\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xd2\xa1\xd3\xa1\xd4\xa1\xd5\xa1\xd6\xa1\xd7\xa1\xd8\xa1\xd9\xa1\xda\xa1\xdb\xa1\xdc\xa1\xdd\xa1\xde\xa1\xdf\xa1\xe0\xa1\xe1\xa1\xe2\xa1\xe3\xa1\xe4\xa1\xe5\xa1\xe6\xa1\xe7\xa1\xe8\xa1\xe9\xa1\xea\xa1\xeb\xa1\xec\xa1\xed\xa1\xee\xa1\xef\xa1\xf0\xa1\xf1\xa1\xf2\xa1\xf3\xa1\xf4\xa1\xf5\xa1\xf6\xa1\xf7\xa1\xf8\xa1\xf9\xa1\xfa\xa1\xfb\xa1\xfc\xa1\xfd\xa1\xfe\xa1\xff\xa2\x00\xa2\x01\xa2\x02\xa2\x03\xa2\x04\xa2\x05\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x06\xa2\x07\xa2\x08\xa2\x09\xa2\x0a\xa2\x0b\xa2\x0c\xa2\x0d\xa2\x0e\xa2\x0f\xa2\x10\xa2\x11\xa2\x12\xa2\x13\xa2\x14\xa2\x15\xa2\x16\xa2\x17\xa2\x18\xa2\x19\xa2\x1a\xa2\x1b\xa2\x1c\xa2\x1d\xa2\x1e\xa2\x1f\xa2\x20\xa2\x21\xa2\x22\xa2\x23\xa2\x24\xa2\x25\xa2\x26\xa2\x27\xa2\x28\xa2\x29\xa2\x2a\xa2\x2b\xa2\x2c\xa2\x2d\xa2\x2e\xa2\x2f\xa2\x30\xa2\x31\xa2\x32\xa2\x33\xa2\x34\xa2\x35\xa2\x36\xa2\x37\xa2\x38\xa2\x39\xa2\x3a\xa2\x3b\xa2\x3c\xa2\x3d\xa2\x3e\xa2\x3f\xa2\x40\xa2\x41\xa2\x42\xa2\x43\xa2\x44", /* 7280 */ "\xa2\x45\xa2\x46\xa2\x47\xa2\x48\xa2\x49\xa2\x4a\xa2\x4b\xa2\x4c\xa2\x4d\xa2\x4e\xa2\x4f\xa2\x50\xa2\x51\xa2\x52\xa2\x53\xa2\x54\xa2\x55\xa2\x56\xa2\x57\xa2\x58\xa2\x59\xa2\x5a\xa2\x5b\xa2\x5c\xa2\x5d\xa2\x5e\xa2\x5f\xa2\x60\xa2\x61\xa2\x62\xa2\x63\xa2\x64\xa2\x65\xa2\x66\xa2\x67\xa2\x68\xa2\x69\xa2\x6a\xa2\x6b\xa2\x6c\xa2\x6d\xa2\x6e\xa2\x6f\xa2\x70\xa2\x71\xa2\x72\xa2\x73\xa2\x74\xa2\x75\xa2\x76\xa2\x77\xa2\x78\xa2\x79\xa2\x7a\xa2\x7b\xa2\x7c\xa2\x7d\xa2\x7e\xa2\x7f\xa2\x80\xa2\x81\xa2\x82\xa2\x83\xa2\x84\xa2\x85\xa2\x86\xa2\x87\xa2\x88\xa2\x89\xa2\x8a\xa2\x8b\xa2\x8c\xa2\x8d\xa2\x8e\xa2\x8f\xa2\x90\xa2\x91\xa2\x92\xa2\x93\xa2\x94\xa2\x95\xa2\x96\xa2\x97\xa2\x98\xa2\x99\xa2\x9a\xa2\x9b\xa2\x9c\xa2\x9d\xa2\x9e\xa2\x9f\xa2\xa0\xa2\xa1\xa2\xa2\xa2\xa3\xa2\xa4\xa2\xa5\xa2\xa6\xa2\xa7\xa2\xa8\xa2\xa9\xa2\xaa\xa2\xab\xa2\xac\xa2\xad\xa2\xae\xa2\xaf\xa2\xb0\xa2\xb1\xa2\xb2\xa2\xb3\xa2\xb4\xa2\xb5\xa2\xb6\xa2\xb7\xa2\xb8\xa2\xb9\xa2\xba\xa2\xbb\xa2\xbc\xa2\xbd\xa2\xbe\xa2\xbf\xa2\xc0\xa2\xc1\xa2\xc2\xa2\xc3\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\xc4\xa2\xc5\xa2\xc6\xa2\xc7\xa2\xc8\xa2\xc9\xa2\xca\xa2\xcb\xa2\xcc\xa2\xcd\xa2\xce\xa2\xcf\xa2\xd0\xa2\xd1\xa2\xd2\xa2\xd3\xa2\xd4\xa2\xd5\xa2\xd6\xa2\xd7\xa2\xd8\xa2\xd9\xa2\xda\xa2\xdb\xa2\xdc\xa2\xdd\xa2\xde\xa2\xdf\xa2\xe0\xa2\xe1\xa2\xe2\xa2\xe3\xa2\xe4\xa2\xe5\xa2\xe6\xa2\xe7\xa2\xe8\xa2\xe9\xa2\xea\xa2\xeb\xa2\xec\xa2\xed\xa2\xee\xa2\xef\xa2\xf0\xa2\xf1\xa2\xf2\xa2\xf3\xa2\xf4\xa2\xf5\xa2\xf6\xa2\xf7\xa2\xf8\xa2\xf9\xa2\xfa\xa2\xfb\xa2\xfc\xa2\xfd\xa2\xfe\xa2\xff\xa3\x00\xa3\x01\xa3\x02", /* 7380 */ "\xa3\x03\xa3\x04\xa3\x05\xa3\x06\xa3\x07\xa3\x08\xa3\x09\xa3\x0a\xa3\x0b\xa3\x0c\xa3\x0d\xa3\x0e\xa3\x0f\xa3\x10\xa3\x11\xa3\x12\xa3\x13\xa3\x14\xa3\x15\xa3\x16\xa3\x17\xa3\x18\xa3\x19\xa3\x1a\xa3\x1b\xa3\x1c\xa3\x1d\xa3\x1e\xa3\x1f\xa3\x20\xa3\x21\xa3\x22\xa3\x23\xa3\x24\xa3\x25\xa3\x26\xa3\x27\xa3\x28\xa3\x29\xa3\x2a\xa3\x2b\xa3\x2c\xa3\x2d\xa3\x2e\xa3\x2f\xa3\x30\xa3\x31\xa3\x32\xa3\x33\xa3\x34\xa3\x35\xa3\x36\xa3\x37\xa3\x38\xa3\x39\xa3\x3a\xa3\x3b\xa3\x3c\xa3\x3d\xa3\x3e\xa3\x3f\xa3\x40\xa3\x41\xa3\x42\xa3\x43\xa3\x44\xa3\x45\xa3\x46\xa3\x47\xa3\x48\xa3\x49\xa3\x4a\xa3\x4b\xa3\x4c\xa3\x4d\xa3\x4e\xa3\x4f\xa3\x50\xa3\x51\xa3\x52\xa3\x53\xa3\x54\xa3\x55\xa3\x56\xa3\x57\xa3\x58\xa3\x59\xa3\x5a\xa3\x5b\xa3\x5c\xa3\x5d\xa3\x5e\xa3\x5f\xa3\x60\xa3\x61\xa3\x62\xa3\x63\xa3\x64\xa3\x65\xa3\x66\xa3\x67\xa3\x68\xa3\x69\xa3\x6a\xa3\x6b\xa3\x6c\xa3\x6d\xa3\x6e\xa3\x6f\xa3\x70\xa3\x71\xa3\x72\xa3\x73\xa3\x74\xa3\x75\xa3\x76\xa3\x77\xa3\x78\xa3\x79\xa3\x7a\xa3\x7b\xa3\x7c\xa3\x7d\xa3\x7e\xa3\x7f\xa3\x80\xa3\x81\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x82\xa3\x83\xa3\x84\xa3\x85\xa3\x86\xa3\x87\xa3\x88\xa3\x89\xa3\x8a\xa3\x8b\xa3\x8c\xa3\x8d\xa3\x8e\xa3\x8f\xa3\x90\xa3\x91\xa3\x92\xa3\x93\xa3\x94\xa3\x95\xa3\x96\xa3\x97\xa3\x98\xa3\x99\xa3\x9a\xa3\x9b\xa3\x9c\xa3\x9d\xa3\x9e\xa3\x9f\xa3\xa0\xa3\xa1\xa3\xa2\xa3\xa3\xa3\xa4\xa3\xa5\xa3\xa6\xa3\xa7\xa3\xa8\xa3\xa9\xa3\xaa\xa3\xab\xa3\xac\xa3\xad\xa3\xae\xa3\xaf\xa3\xb0\xa3\xb1\xa3\xb2\xa3\xb3\xa3\xb4\xa3\xb5\xa3\xb6\xa3\xb7\xa3\xb8\xa3\xb9\xa3\xba\xa3\xbb\xa3\xbc\xa3\xbd\xa3\xbe\xa3\xbf\xa3\xc0", /* 7480 */ "\xa3\xc1\xa3\xc2\xa3\xc3\xa3\xc4\xa3\xc5\xa3\xc6\xa3\xc7\xa3\xc8\xa3\xc9\xa3\xca\xa3\xcb\xa3\xcc\xa3\xcd\xa3\xce\xa3\xcf\xa3\xd0\xa3\xd1\xa3\xd2\xa3\xd3\xa3\xd4\xa3\xd5\xa3\xd6\xa3\xd7\xa3\xd8\xa3\xd9\xa3\xda\xa3\xdb\xa3\xdc\xa3\xdd\xa3\xde\xa3\xdf\xa3\xe0\xa3\xe1\xa3\xe2\xa3\xe3\xa3\xe4\xa3\xe5\xa3\xe6\xa3\xe7\xa3\xe8\xa3\xe9\xa3\xea\xa3\xeb\xa3\xec\xa3\xed\xa3\xee\xa3\xef\xa3\xf0\xa3\xf1\xa3\xf2\xa3\xf3\xa3\xf4\xa3\xf5\xa3\xf6\xa3\xf7\xa3\xf8\xa3\xf9\xa3\xfa\xa3\xfb\xa3\xfc\xa3\xfd\xa3\xfe\xa3\xff\xa4\x00\xa4\x01\xa4\x02\xa4\x03\xa4\x04\xa4\x05\xa4\x06\xa4\x07\xa4\x08\xa4\x09\xa4\x0a\xa4\x0b\xa4\x0c\xa4\x0d\xa4\x0e\xa4\x0f\xa4\x10\xa4\x11\xa4\x12\xa4\x13\xa4\x14\xa4\x15\xa4\x16\xa4\x17\xa4\x18\xa4\x19\xa4\x1a\xa4\x1b\xa4\x1c\xa4\x1d\xa4\x1e\xa4\x1f\xa4\x20\xa4\x21\xa4\x22\xa4\x23\xa4\x24\xa4\x25\xa4\x26\xa4\x27\xa4\x28\xa4\x29\xa4\x2a\xa4\x2b\xa4\x2c\xa4\x2d\xa4\x2e\xa4\x2f\xa4\x30\xa4\x31\xa4\x32\xa4\x33\xa4\x34\xa4\x35\xa4\x36\xa4\x37\xa4\x38\xa4\x39\xa4\x3a\xa4\x3b\xa4\x3c\xa4\x3d\xa4\x3e\xa4\x3f\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x40\xa4\x41\xa4\x42\xa4\x43\xa4\x44\xa4\x45\xa4\x46\xa4\x47\xa4\x48\xa4\x49\xa4\x4a\xa4\x4b\xa4\x4c\xa4\x4d\xa4\x4e\xa4\x4f\xa4\x50\xa4\x51\xa4\x52\xa4\x53\xa4\x54\xa4\x55\xa4\x56\xa4\x57\xa4\x58\xa4\x59\xa4\x5a\xa4\x5b\xa4\x5c\xa4\x5d\xa4\x5e\xa4\x5f\xa4\x60\xa4\x61\xa4\x62\xa4\x63\xa4\x64\xa4\x65\xa4\x66\xa4\x67\xa4\x68\xa4\x69\xa4\x6a\xa4\x6b\xa4\x6c\xa4\x6d\xa4\x6e\xa4\x6f\xa4\x70\xa4\x71\xa4\x72\xa4\x73\xa4\x74\xa4\x75\xa4\x76\xa4\x77\xa4\x78\xa4\x79\xa4\x7a\xa4\x7b\xa4\x7c\xa4\x7d\xa4\x7e", /* 7580 */ "\xa4\x7f\xa4\x80\xa4\x81\xa4\x82\xa4\x83\xa4\x84\xa4\x85\xa4\x86\xa4\x87\xa4\x88\xa4\x89\xa4\x8a\xa4\x8b\xa4\x8c\xa4\x8d\xa4\x8e\xa4\x8f\xa4\x90\xa4\x91\xa4\x92\xa4\x93\xa4\x94\xa4\x95\xa4\x96\xa4\x97\xa4\x98\xa4\x99\xa4\x9a\xa4\x9b\xa4\x9c\xa4\x9d\xa4\x9e\xa4\x9f\xa4\xa0\xa4\xa1\xa4\xa2\xa4\xa3\xa4\xa4\xa4\xa5\xa4\xa6\xa4\xa7\xa4\xa8\xa4\xa9\xa4\xaa\xa4\xab\xa4\xac\xa4\xad\xa4\xae\xa4\xaf\xa4\xb0\xa4\xb1\xa4\xb2\xa4\xb3\xa4\xb4\xa4\xb5\xa4\xb6\xa4\xb7\xa4\xb8\xa4\xb9\xa4\xba\xa4\xbb\xa4\xbc\xa4\xbd\xa4\xbe\xa4\xbf\xa4\xc0\xa4\xc1\xa4\xc2\xa4\xc3\xa4\xc4\xa4\xc5\xa4\xc6\xa4\xc7\xa4\xc8\xa4\xc9\xa4\xca\xa4\xcb\xa4\xcc\xa4\xcd\xa4\xce\xa4\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 7680 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* 7780 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* 7880 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* 7980 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* 7a80 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* 7b80 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* 7c80 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* 7d80 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* 7e80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* 7f80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* 8000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8080 */ NULL, /* 8100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x02\x4e\x04\x4e\x05\x4e\x06\x4e\x0f\x4e\x12\x4e\x17\x4e\x1f\x4e\x20\x4e\x21\x4e\x23\x4e\x26\x4e\x29\x4e\x2e\x4e\x2f\x4e\x31\x4e\x33\x4e\x35\x4e\x37\x4e\x3c\x4e\x40\x4e\x41\x4e\x42\x4e\x44\x4e\x46\x4e\x4a\x4e\x51\x4e\x55\x4e\x57\x4e\x5a\x4e\x5b\x4e\x62\x4e\x63\x4e\x64\x4e\x65\x4e\x67\x4e\x68\x4e\x6a\x4e\x6b\x4e\x6c\x4e\x6d\x4e\x6e\x4e\x6f\x4e\x72\x4e\x74\x4e\x75\x4e\x76\x4e\x77\x4e\x78\x4e\x79\x4e\x7a\x4e\x7b\x4e\x7c\x4e\x7d\x4e\x7f\x4e\x80\x4e\x81\x4e\x82\x4e\x83\x4e\x84\x4e\x85\x4e\x87\x4e\x8a", /* 8180 */ "\x00\x00\x4e\x90\x4e\x96\x4e\x97\x4e\x99\x4e\x9c\x4e\x9d\x4e\x9e\x4e\xa3\x4e\xaa\x4e\xaf\x4e\xb0\x4e\xb1\x4e\xb4\x4e\xb6\x4e\xb7\x4e\xb8\x4e\xb9\x4e\xbc\x4e\xbd\x4e\xbe\x4e\xc8\x4e\xcc\x4e\xcf\x4e\xd0\x4e\xd2\x4e\xda\x4e\xdb\x4e\xdc\x4e\xe0\x4e\xe2\x4e\xe6\x4e\xe7\x4e\xe9\x4e\xed\x4e\xee\x4e\xef\x4e\xf1\x4e\xf4\x4e\xf8\x4e\xf9\x4e\xfa\x4e\xfc\x4e\xfe\x4f\x00\x4f\x02\x4f\x03\x4f\x04\x4f\x05\x4f\x06\x4f\x07\x4f\x08\x4f\x0b\x4f\x0c\x4f\x12\x4f\x13\x4f\x14\x4f\x15\x4f\x16\x4f\x1c\x4f\x1d\x4f\x21\x4f\x23\x4f\x28\x4f\x29\x4f\x2c\x4f\x2d\x4f\x2e\x4f\x31\x4f\x33\x4f\x35\x4f\x37\x4f\x39\x4f\x3b\x4f\x3e\x4f\x3f\x4f\x40\x4f\x41\x4f\x42\x4f\x44\x4f\x45\x4f\x47\x4f\x48\x4f\x49\x4f\x4a\x4f\x4b\x4f\x4c\x4f\x52\x4f\x54\x4f\x56\x4f\x61\x4f\x62\x4f\x66\x4f\x68\x4f\x6a\x4f\x6b\x4f\x6d\x4f\x6e\x4f\x71\x4f\x72\x4f\x75\x4f\x77\x4f\x78\x4f\x79\x4f\x7a\x4f\x7d\x4f\x80\x4f\x81\x4f\x82\x4f\x85\x4f\x86\x4f\x87\x4f\x8a\x4f\x8c\x4f\x8e\x4f\x90\x4f\x92\x4f\x93\x4f\x95\x4f\x96\x4f\x98\x4f\x99\x4f\x9a\x4f\x9c\x4f\x9e\x4f\x9f\x00\x00\x00\x00", /* 8200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa1\x4f\xa2\x4f\xa4\x4f\xab\x4f\xad\x4f\xb0\x4f\xb1\x4f\xb2\x4f\xb3\x4f\xb4\x4f\xb6\x4f\xb7\x4f\xb8\x4f\xb9\x4f\xba\x4f\xbb\x4f\xbc\x4f\xbd\x4f\xbe\x4f\xc0\x4f\xc1\x4f\xc2\x4f\xc6\x4f\xc7\x4f\xc8\x4f\xc9\x4f\xcb\x4f\xcc\x4f\xcd\x4f\xd2\x4f\xd3\x4f\xd4\x4f\xd5\x4f\xd6\x4f\xd9\x4f\xdb\x4f\xe0\x4f\xe2\x4f\xe4\x4f\xe5\x4f\xe7\x4f\xeb\x4f\xec\x4f\xf0\x4f\xf2\x4f\xf4\x4f\xf5\x4f\xf6\x4f\xf7\x4f\xf9\x4f\xfb\x4f\xfc\x4f\xfd\x4f\xff\x50\x00\x50\x01\x50\x02\x50\x03\x50\x04\x50\x05\x50\x06\x50\x07\x50\x08", /* 8280 */ "\x00\x00\x50\x09\x50\x0a\x50\x0b\x50\x0e\x50\x10\x50\x11\x50\x13\x50\x15\x50\x16\x50\x17\x50\x1b\x50\x1d\x50\x1e\x50\x20\x50\x22\x50\x23\x50\x24\x50\x27\x50\x2b\x50\x2f\x50\x30\x50\x31\x50\x32\x50\x33\x50\x34\x50\x35\x50\x36\x50\x37\x50\x38\x50\x39\x50\x3b\x50\x3d\x50\x3f\x50\x40\x50\x41\x50\x42\x50\x44\x50\x45\x50\x46\x50\x49\x50\x4a\x50\x4b\x50\x4d\x50\x50\x50\x51\x50\x52\x50\x53\x50\x54\x50\x56\x50\x57\x50\x58\x50\x59\x50\x5b\x50\x5d\x50\x5e\x50\x5f\x50\x60\x50\x61\x50\x62\x50\x63\x50\x64\x50\x66\x50\x67\x50\x68\x50\x69\x50\x6a\x50\x6b\x50\x6d\x50\x6e\x50\x6f\x50\x70\x50\x71\x50\x72\x50\x73\x50\x74\x50\x75\x50\x78\x50\x79\x50\x7a\x50\x7c\x50\x7d\x50\x81\x50\x82\x50\x83\x50\x84\x50\x86\x50\x87\x50\x89\x50\x8a\x50\x8b\x50\x8c\x50\x8e\x50\x8f\x50\x90\x50\x91\x50\x92\x50\x93\x50\x94\x50\x95\x50\x96\x50\x97\x50\x98\x50\x99\x50\x9a\x50\x9b\x50\x9c\x50\x9d\x50\x9e\x50\x9f\x50\xa0\x50\xa1\x50\xa2\x50\xa4\x50\xa6\x50\xaa\x50\xab\x50\xad\x50\xae\x50\xaf\x50\xb0\x50\xb1\x50\xb3\x50\xb4\x50\xb5\x50\xb6\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb7\x50\xb8\x50\xb9\x50\xbc\x50\xbd\x50\xbe\x50\xbf\x50\xc0\x50\xc1\x50\xc2\x50\xc3\x50\xc4\x50\xc5\x50\xc6\x50\xc7\x50\xc8\x50\xc9\x50\xca\x50\xcb\x50\xcc\x50\xcd\x50\xce\x50\xd0\x50\xd1\x50\xd2\x50\xd3\x50\xd4\x50\xd5\x50\xd7\x50\xd8\x50\xd9\x50\xdb\x50\xdc\x50\xdd\x50\xde\x50\xdf\x50\xe0\x50\xe1\x50\xe2\x50\xe3\x50\xe4\x50\xe5\x50\xe8\x50\xe9\x50\xea\x50\xeb\x50\xef\x50\xf0\x50\xf1\x50\xf2\x50\xf4\x50\xf6\x50\xf7\x50\xf8\x50\xf9\x50\xfa\x50\xfc\x50\xfd\x50\xfe\x50\xff\x51\x00\x51\x01\x51\x02", /* 8380 */ "\x00\x00\x51\x03\x51\x04\x51\x05\x51\x08\x51\x09\x51\x0a\x51\x0c\x51\x0d\x51\x0e\x51\x0f\x51\x10\x51\x11\x51\x13\x51\x14\x51\x15\x51\x16\x51\x17\x51\x18\x51\x19\x51\x1a\x51\x1b\x51\x1c\x51\x1d\x51\x1e\x51\x1f\x51\x20\x51\x22\x51\x23\x51\x24\x51\x25\x51\x26\x51\x27\x51\x28\x51\x29\x51\x2a\x51\x2b\x51\x2c\x51\x2d\x51\x2e\x51\x2f\x51\x30\x51\x31\x51\x32\x51\x33\x51\x34\x51\x35\x51\x36\x51\x37\x51\x38\x51\x39\x51\x3a\x51\x3b\x51\x3c\x51\x3d\x51\x3e\x51\x42\x51\x47\x51\x4a\x51\x4c\x51\x4e\x51\x4f\x51\x50\x51\x52\x51\x53\x51\x57\x51\x58\x51\x59\x51\x5b\x51\x5d\x51\x5e\x51\x5f\x51\x60\x51\x61\x51\x63\x51\x64\x51\x66\x51\x67\x51\x69\x51\x6a\x51\x6f\x51\x72\x51\x7a\x51\x7e\x51\x7f\x51\x83\x51\x84\x51\x86\x51\x87\x51\x8a\x51\x8b\x51\x8e\x51\x8f\x51\x90\x51\x91\x51\x93\x51\x94\x51\x98\x51\x9a\x51\x9d\x51\x9e\x51\x9f\x51\xa1\x51\xa3\x51\xa6\x51\xa7\x51\xa8\x51\xa9\x51\xaa\x51\xad\x51\xae\x51\xb4\x51\xb8\x51\xb9\x51\xba\x51\xbe\x51\xbf\x51\xc1\x51\xc2\x51\xc3\x51\xc5\x51\xc8\x51\xca\x51\xcd\x51\xce\x51\xd0\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd2\x51\xd3\x51\xd4\x51\xd5\x51\xd6\x51\xd7\x51\xd8\x51\xd9\x51\xda\x51\xdc\x51\xde\x51\xdf\x51\xe2\x51\xe3\x51\xe5\x51\xe6\x51\xe7\x51\xe8\x51\xe9\x51\xea\x51\xec\x51\xee\x51\xf1\x51\xf2\x51\xf4\x51\xf7\x51\xfe\x52\x04\x52\x05\x52\x09\x52\x0b\x52\x0c\x52\x0f\x52\x10\x52\x13\x52\x14\x52\x15\x52\x1c\x52\x1e\x52\x1f\x52\x21\x52\x22\x52\x23\x52\x25\x52\x26\x52\x27\x52\x2a\x52\x2c\x52\x2f\x52\x31\x52\x32\x52\x34\x52\x35\x52\x3c\x52\x3e\x52\x44\x52\x45\x52\x46\x52\x47\x52\x48\x52\x49\x52\x4b\x52\x4e", /* 8480 */ "\x00\x00\x52\x4f\x52\x52\x52\x53\x52\x55\x52\x57\x52\x58\x52\x59\x52\x5a\x52\x5b\x52\x5d\x52\x5f\x52\x60\x52\x62\x52\x63\x52\x64\x52\x66\x52\x68\x52\x6b\x52\x6c\x52\x6d\x52\x6e\x52\x70\x52\x71\x52\x73\x52\x74\x52\x75\x52\x76\x52\x77\x52\x78\x52\x79\x52\x7a\x52\x7b\x52\x7c\x52\x7e\x52\x80\x52\x83\x52\x84\x52\x85\x52\x86\x52\x87\x52\x89\x52\x8a\x52\x8b\x52\x8c\x52\x8d\x52\x8e\x52\x8f\x52\x91\x52\x92\x52\x94\x52\x95\x52\x96\x52\x97\x52\x98\x52\x99\x52\x9a\x52\x9c\x52\xa4\x52\xa5\x52\xa6\x52\xa7\x52\xae\x52\xaf\x52\xb0\x52\xb4\x52\xb5\x52\xb6\x52\xb7\x52\xb8\x52\xb9\x52\xba\x52\xbb\x52\xbc\x52\xbd\x52\xc0\x52\xc1\x52\xc2\x52\xc4\x52\xc5\x52\xc6\x52\xc8\x52\xca\x52\xcc\x52\xcd\x52\xce\x52\xcf\x52\xd1\x52\xd3\x52\xd4\x52\xd5\x52\xd7\x52\xd9\x52\xda\x52\xdb\x52\xdc\x52\xdd\x52\xde\x52\xe0\x52\xe1\x52\xe2\x52\xe3\x52\xe5\x52\xe6\x52\xe7\x52\xe8\x52\xe9\x52\xea\x52\xeb\x52\xec\x52\xed\x52\xee\x52\xef\x52\xf1\x52\xf2\x52\xf3\x52\xf4\x52\xf5\x52\xf6\x52\xf7\x52\xf8\x52\xfb\x52\xfc\x52\xfd\x53\x01\x53\x02\x00\x00\x00\x00", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x03\x53\x04\x53\x07\x53\x09\x53\x0a\x53\x0b\x53\x0c\x53\x0e\x53\x11\x53\x12\x53\x13\x53\x14\x53\x18\x53\x1b\x53\x1c\x53\x1e\x53\x1f\x53\x22\x53\x24\x53\x25\x53\x27\x53\x28\x53\x29\x53\x2b\x53\x2c\x53\x2d\x53\x2f\x53\x30\x53\x31\x53\x32\x53\x33\x53\x34\x53\x35\x53\x36\x53\x37\x53\x38\x53\x3c\x53\x3d\x53\x40\x53\x42\x53\x44\x53\x46\x53\x4b\x53\x4c\x53\x4d\x53\x50\x53\x54\x53\x58\x53\x59\x53\x5b\x53\x5d\x53\x65\x53\x68\x53\x6a\x53\x6c\x53\x6d\x53\x72\x53\x76\x53\x79\x53\x7b\x53\x7c\x53\x7d\x53\x7e", /* 8580 */ "\x00\x00\x53\x80\x53\x81\x53\x83\x53\x87\x53\x88\x53\x8a\x53\x8e\x53\x8f\x53\x90\x53\x91\x53\x92\x53\x93\x53\x94\x53\x96\x53\x97\x53\x99\x53\x9b\x53\x9c\x53\x9e\x53\xa0\x53\xa1\x53\xa4\x53\xa7\x53\xaa\x53\xab\x53\xac\x53\xad\x53\xaf\x53\xb0\x53\xb1\x53\xb2\x53\xb3\x53\xb4\x53\xb5\x53\xb7\x53\xb8\x53\xb9\x53\xba\x53\xbc\x53\xbd\x53\xbe\x53\xc0\x53\xc3\x53\xc4\x53\xc5\x53\xc6\x53\xc7\x53\xce\x53\xcf\x53\xd0\x53\xd2\x53\xd3\x53\xd5\x53\xda\x53\xdc\x53\xdd\x53\xde\x53\xe1\x53\xe2\x53\xe7\x53\xf4\x53\xfa\x53\xfe\x53\xff\x54\x00\x54\x02\x54\x05\x54\x07\x54\x0b\x54\x14\x54\x18\x54\x19\x54\x1a\x54\x1c\x54\x22\x54\x24\x54\x25\x54\x2a\x54\x30\x54\x33\x54\x36\x54\x37\x54\x3a\x54\x3d\x54\x3f\x54\x41\x54\x42\x54\x44\x54\x45\x54\x47\x54\x49\x54\x4c\x54\x4d\x54\x4e\x54\x4f\x54\x51\x54\x5a\x54\x5d\x54\x5e\x54\x5f\x54\x60\x54\x61\x54\x63\x54\x65\x54\x67\x54\x69\x54\x6a\x54\x6b\x54\x6c\x54\x6d\x54\x6e\x54\x6f\x54\x70\x54\x74\x54\x79\x54\x7a\x54\x7e\x54\x7f\x54\x81\x54\x83\x54\x85\x54\x87\x54\x88\x54\x89\x54\x8a\x00\x00\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8d\x54\x91\x54\x93\x54\x97\x54\x98\x54\x9c\x54\x9e\x54\x9f\x54\xa0\x54\xa1\x54\xa2\x54\xa5\x54\xae\x54\xb0\x54\xb2\x54\xb5\x54\xb6\x54\xb7\x54\xb9\x54\xba\x54\xbc\x54\xbe\x54\xc3\x54\xc5\x54\xca\x54\xcb\x54\xd6\x54\xd8\x54\xdb\x54\xe0\x54\xe1\x54\xe2\x54\xe3\x54\xe4\x54\xeb\x54\xec\x54\xef\x54\xf0\x54\xf1\x54\xf4\x54\xf5\x54\xf6\x54\xf7\x54\xf8\x54\xf9\x54\xfb\x54\xfe\x55\x00\x55\x02\x55\x03\x55\x04\x55\x05\x55\x08\x55\x0a\x55\x0b\x55\x0c\x55\x0d\x55\x0e\x55\x12\x55\x13\x55\x15\x55\x16\x55\x17", /* 8680 */ "\x00\x00\x55\x18\x55\x19\x55\x1a\x55\x1c\x55\x1d\x55\x1e\x55\x1f\x55\x21\x55\x25\x55\x26\x55\x28\x55\x29\x55\x2b\x55\x2d\x55\x32\x55\x34\x55\x35\x55\x36\x55\x38\x55\x39\x55\x3a\x55\x3b\x55\x3d\x55\x40\x55\x42\x55\x45\x55\x47\x55\x48\x55\x4b\x55\x4c\x55\x4d\x55\x4e\x55\x4f\x55\x51\x55\x52\x55\x53\x55\x54\x55\x57\x55\x58\x55\x59\x55\x5a\x55\x5b\x55\x5d\x55\x5e\x55\x5f\x55\x60\x55\x62\x55\x63\x55\x68\x55\x69\x55\x6b\x55\x6f\x55\x70\x55\x71\x55\x72\x55\x73\x55\x74\x55\x79\x55\x7a\x55\x7d\x55\x7f\x55\x85\x55\x86\x55\x8c\x55\x8d\x55\x8e\x55\x90\x55\x92\x55\x93\x55\x95\x55\x96\x55\x97\x55\x9a\x55\x9b\x55\x9e\x55\xa0\x55\xa1\x55\xa2\x55\xa3\x55\xa4\x55\xa5\x55\xa6\x55\xa8\x55\xa9\x55\xaa\x55\xab\x55\xac\x55\xad\x55\xae\x55\xaf\x55\xb0\x55\xb2\x55\xb4\x55\xb6\x55\xb8\x55\xba\x55\xbc\x55\xbf\x55\xc0\x55\xc1\x55\xc2\x55\xc3\x55\xc6\x55\xc7\x55\xc8\x55\xca\x55\xcb\x55\xce\x55\xcf\x55\xd0\x55\xd5\x55\xd7\x55\xd8\x55\xd9\x55\xda\x55\xdb\x55\xde\x55\xe0\x55\xe2\x55\xe7\x55\xe9\x55\xed\x55\xee\x55\xf0\x55\xf1\x00\x00\x00\x00", /* 8700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf4\x55\xf6\x55\xf8\x55\xf9\x55\xfa\x55\xfb\x55\xfc\x55\xff\x56\x02\x56\x03\x56\x04\x56\x05\x56\x06\x56\x07\x56\x0a\x56\x0b\x56\x0d\x56\x10\x56\x11\x56\x12\x56\x13\x56\x14\x56\x15\x56\x16\x56\x17\x56\x19\x56\x1a\x56\x1c\x56\x1d\x56\x20\x56\x21\x56\x22\x56\x25\x56\x26\x56\x28\x56\x29\x56\x2a\x56\x2b\x56\x2e\x56\x2f\x56\x30\x56\x33\x56\x35\x56\x37\x56\x38\x56\x3a\x56\x3c\x56\x3d\x56\x3e\x56\x40\x56\x41\x56\x42\x56\x43\x56\x44\x56\x45\x56\x46\x56\x47\x56\x48\x56\x49\x56\x4a\x56\x4b\x56\x4f\x56\x50", /* 8780 */ "\x00\x00\x56\x51\x56\x52\x56\x53\x56\x55\x56\x56\x56\x5a\x56\x5b\x56\x5d\x56\x5e\x56\x5f\x56\x60\x56\x61\x56\x63\x56\x65\x56\x66\x56\x67\x56\x6d\x56\x6e\x56\x6f\x56\x70\x56\x72\x56\x73\x56\x74\x56\x75\x56\x77\x56\x78\x56\x79\x56\x7a\x56\x7d\x56\x7e\x56\x7f\x56\x80\x56\x81\x56\x82\x56\x83\x56\x84\x56\x87\x56\x88\x56\x89\x56\x8a\x56\x8b\x56\x8c\x56\x8d\x56\x90\x56\x91\x56\x92\x56\x94\x56\x95\x56\x96\x56\x97\x56\x98\x56\x99\x56\x9a\x56\x9b\x56\x9c\x56\x9d\x56\x9e\x56\x9f\x56\xa0\x56\xa1\x56\xa2\x56\xa4\x56\xa5\x56\xa6\x56\xa7\x56\xa8\x56\xa9\x56\xaa\x56\xab\x56\xac\x56\xad\x56\xae\x56\xb0\x56\xb1\x56\xb2\x56\xb3\x56\xb4\x56\xb5\x56\xb6\x56\xb8\x56\xb9\x56\xba\x56\xbb\x56\xbd\x56\xbe\x56\xbf\x56\xc0\x56\xc1\x56\xc2\x56\xc3\x56\xc4\x56\xc5\x56\xc6\x56\xc7\x56\xc8\x56\xc9\x56\xcb\x56\xcc\x56\xcd\x56\xce\x56\xcf\x56\xd0\x56\xd1\x56\xd2\x56\xd3\x56\xd5\x56\xd6\x56\xd8\x56\xd9\x56\xdc\x56\xe3\x56\xe5\x56\xe6\x56\xe7\x56\xe8\x56\xe9\x56\xea\x56\xec\x56\xee\x56\xef\x56\xf2\x56\xf3\x56\xf6\x56\xf7\x56\xf8\x00\x00\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xfb\x56\xfc\x57\x00\x57\x01\x57\x02\x57\x05\x57\x07\x57\x0b\x57\x0c\x57\x0d\x57\x0e\x57\x0f\x57\x10\x57\x11\x57\x12\x57\x13\x57\x14\x57\x15\x57\x16\x57\x17\x57\x18\x57\x19\x57\x1a\x57\x1b\x57\x1d\x57\x1e\x57\x20\x57\x21\x57\x22\x57\x24\x57\x25\x57\x26\x57\x27\x57\x2b\x57\x31\x57\x32\x57\x34\x57\x35\x57\x36\x57\x37\x57\x38\x57\x3c\x57\x3d\x57\x3f\x57\x41\x57\x43\x57\x44\x57\x45\x57\x46\x57\x48\x57\x49\x57\x4b\x57\x52\x57\x53\x57\x54\x57\x55\x57\x56\x57\x58\x57\x59\x57\x62\x57\x63\x57\x65\x57\x67", /* 8880 */ "\x00\x00\x57\x6c\x57\x6e\x57\x70\x57\x71\x57\x72\x57\x74\x57\x75\x57\x78\x57\x79\x57\x7a\x57\x7d\x57\x7e\x57\x7f\x57\x80\x57\x81\x57\x87\x57\x88\x57\x89\x57\x8a\x57\x8d\x57\x8e\x57\x8f\x57\x90\x57\x91\x57\x94\x57\x95\x57\x96\x57\x97\x57\x98\x57\x99\x57\x9a\x57\x9c\x57\x9d\x57\x9e\x57\x9f\x57\xa5\x57\xa8\x57\xaa\x57\xac\x57\xaf\x57\xb0\x57\xb1\x57\xb3\x57\xb5\x57\xb6\x57\xb7\x57\xb9\x57\xba\x57\xbb\x57\xbc\x57\xbd\x57\xbe\x57\xbf\x57\xc0\x57\xc1\x57\xc4\x57\xc5\x57\xc6\x57\xc7\x57\xc8\x57\xc9\x57\xca\x57\xcc\x57\xcd\x57\xd0\x57\xd1\x57\xd3\x57\xd6\x57\xd7\x57\xdb\x57\xdc\x57\xde\x57\xe1\x57\xe2\x57\xe3\x57\xe5\x57\xe6\x57\xe7\x57\xe8\x57\xe9\x57\xea\x57\xeb\x57\xec\x57\xee\x57\xf0\x57\xf1\x57\xf2\x57\xf3\x57\xf5\x57\xf6\x57\xf7\x57\xfb\x57\xfc\x57\xfe\x57\xff\x58\x01\x58\x03\x58\x04\x58\x05\x58\x08\x58\x09\x58\x0a\x58\x0c\x58\x0e\x58\x0f\x58\x10\x58\x12\x58\x13\x58\x14\x58\x16\x58\x17\x58\x18\x58\x1a\x58\x1b\x58\x1c\x58\x1d\x58\x1f\x58\x22\x58\x23\x58\x25\x58\x26\x58\x27\x58\x28\x58\x29\x58\x2b\x00\x00\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x2c\x58\x2d\x58\x2e\x58\x2f\x58\x31\x58\x32\x58\x33\x58\x34\x58\x36\x58\x37\x58\x38\x58\x39\x58\x3a\x58\x3b\x58\x3c\x58\x3d\x58\x3e\x58\x3f\x58\x40\x58\x41\x58\x42\x58\x43\x58\x45\x58\x46\x58\x47\x58\x48\x58\x49\x58\x4a\x58\x4b\x58\x4e\x58\x4f\x58\x50\x58\x52\x58\x53\x58\x55\x58\x56\x58\x57\x58\x59\x58\x5a\x58\x5b\x58\x5c\x58\x5d\x58\x5f\x58\x60\x58\x61\x58\x62\x58\x63\x58\x64\x58\x66\x58\x67\x58\x68\x58\x69\x58\x6a\x58\x6d\x58\x6e\x58\x6f\x58\x70\x58\x71\x58\x72\x58\x73\x58\x74\x58\x75\x58\x76", /* 8980 */ "\x00\x00\x58\x77\x58\x78\x58\x79\x58\x7a\x58\x7b\x58\x7c\x58\x7d\x58\x7f\x58\x82\x58\x84\x58\x86\x58\x87\x58\x88\x58\x8a\x58\x8b\x58\x8c\x58\x8d\x58\x8e\x58\x8f\x58\x90\x58\x91\x58\x94\x58\x95\x58\x96\x58\x97\x58\x98\x58\x9b\x58\x9c\x58\x9d\x58\xa0\x58\xa1\x58\xa2\x58\xa3\x58\xa4\x58\xa5\x58\xa6\x58\xa7\x58\xaa\x58\xab\x58\xac\x58\xad\x58\xae\x58\xaf\x58\xb0\x58\xb1\x58\xb2\x58\xb3\x58\xb4\x58\xb5\x58\xb6\x58\xb7\x58\xb8\x58\xb9\x58\xba\x58\xbb\x58\xbd\x58\xbe\x58\xbf\x58\xc0\x58\xc2\x58\xc3\x58\xc4\x58\xc6\x58\xc7\x58\xc8\x58\xc9\x58\xca\x58\xcb\x58\xcc\x58\xcd\x58\xce\x58\xcf\x58\xd0\x58\xd2\x58\xd3\x58\xd4\x58\xd6\x58\xd7\x58\xd8\x58\xd9\x58\xda\x58\xdb\x58\xdc\x58\xdd\x58\xde\x58\xdf\x58\xe0\x58\xe1\x58\xe2\x58\xe3\x58\xe5\x58\xe6\x58\xe7\x58\xe8\x58\xe9\x58\xea\x58\xed\x58\xef\x58\xf1\x58\xf2\x58\xf4\x58\xf5\x58\xf7\x58\xf8\x58\xfa\x58\xfb\x58\xfc\x58\xfd\x58\xfe\x58\xff\x59\x00\x59\x01\x59\x03\x59\x05\x59\x06\x59\x08\x59\x09\x59\x0a\x59\x0b\x59\x0c\x59\x0e\x59\x10\x59\x11\x59\x12\x59\x13\x00\x00\x00\x00", /* 8a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x17\x59\x18\x59\x1b\x59\x1d\x59\x1e\x59\x20\x59\x21\x59\x22\x59\x23\x59\x26\x59\x28\x59\x2c\x59\x30\x59\x32\x59\x33\x59\x35\x59\x36\x59\x3b\x59\x3d\x59\x3e\x59\x3f\x59\x40\x59\x43\x59\x45\x59\x46\x59\x4a\x59\x4c\x59\x4d\x59\x50\x59\x52\x59\x53\x59\x59\x59\x5b\x59\x5c\x59\x5d\x59\x5e\x59\x5f\x59\x61\x59\x63\x59\x64\x59\x66\x59\x67\x59\x68\x59\x69\x59\x6a\x59\x6b\x59\x6c\x59\x6d\x59\x6e\x59\x6f\x59\x70\x59\x71\x59\x72\x59\x75\x59\x77\x59\x7a\x59\x7b\x59\x7c\x59\x7e\x59\x7f\x59\x80\x59\x85\x59\x89", /* 8a80 */ "\x00\x00\x59\x8b\x59\x8c\x59\x8e\x59\x8f\x59\x90\x59\x91\x59\x94\x59\x95\x59\x98\x59\x9a\x59\x9b\x59\x9c\x59\x9d\x59\x9f\x59\xa0\x59\xa1\x59\xa2\x59\xa6\x59\xa7\x59\xac\x59\xad\x59\xb0\x59\xb1\x59\xb3\x59\xb4\x59\xb5\x59\xb6\x59\xb7\x59\xb8\x59\xba\x59\xbc\x59\xbd\x59\xbf\x59\xc0\x59\xc1\x59\xc2\x59\xc3\x59\xc4\x59\xc5\x59\xc7\x59\xc8\x59\xc9\x59\xcc\x59\xcd\x59\xce\x59\xcf\x59\xd5\x59\xd6\x59\xd9\x59\xdb\x59\xde\x59\xdf\x59\xe0\x59\xe1\x59\xe2\x59\xe4\x59\xe6\x59\xe7\x59\xe9\x59\xea\x59\xeb\x59\xed\x59\xee\x59\xef\x59\xf0\x59\xf1\x59\xf2\x59\xf3\x59\xf4\x59\xf5\x59\xf6\x59\xf7\x59\xf8\x59\xfa\x59\xfc\x59\xfd\x59\xfe\x5a\x00\x5a\x02\x5a\x0a\x5a\x0b\x5a\x0d\x5a\x0e\x5a\x0f\x5a\x10\x5a\x12\x5a\x14\x5a\x15\x5a\x16\x5a\x17\x5a\x19\x5a\x1a\x5a\x1b\x5a\x1d\x5a\x1e\x5a\x21\x5a\x22\x5a\x24\x5a\x26\x5a\x27\x5a\x28\x5a\x2a\x5a\x2b\x5a\x2c\x5a\x2d\x5a\x2e\x5a\x2f\x5a\x30\x5a\x33\x5a\x35\x5a\x37\x5a\x38\x5a\x39\x5a\x3a\x5a\x3b\x5a\x3d\x5a\x3e\x5a\x3f\x5a\x41\x5a\x42\x5a\x43\x5a\x44\x5a\x45\x5a\x47\x5a\x48\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4b\x5a\x4c\x5a\x4d\x5a\x4e\x5a\x4f\x5a\x50\x5a\x51\x5a\x52\x5a\x53\x5a\x54\x5a\x56\x5a\x57\x5a\x58\x5a\x59\x5a\x5b\x5a\x5c\x5a\x5d\x5a\x5e\x5a\x5f\x5a\x60\x5a\x61\x5a\x63\x5a\x64\x5a\x65\x5a\x66\x5a\x68\x5a\x69\x5a\x6b\x5a\x6c\x5a\x6d\x5a\x6e\x5a\x6f\x5a\x70\x5a\x71\x5a\x72\x5a\x73\x5a\x78\x5a\x79\x5a\x7b\x5a\x7c\x5a\x7d\x5a\x7e\x5a\x80\x5a\x81\x5a\x82\x5a\x83\x5a\x84\x5a\x85\x5a\x86\x5a\x87\x5a\x88\x5a\x89\x5a\x8a\x5a\x8b\x5a\x8c\x5a\x8d\x5a\x8e\x5a\x8f\x5a\x90\x5a\x91\x5a\x93\x5a\x94\x5a\x95", /* 8b80 */ "\x00\x00\x5a\x96\x5a\x97\x5a\x98\x5a\x99\x5a\x9c\x5a\x9d\x5a\x9e\x5a\x9f\x5a\xa0\x5a\xa1\x5a\xa2\x5a\xa3\x5a\xa4\x5a\xa5\x5a\xa6\x5a\xa7\x5a\xa8\x5a\xa9\x5a\xab\x5a\xac\x5a\xad\x5a\xae\x5a\xaf\x5a\xb0\x5a\xb1\x5a\xb4\x5a\xb6\x5a\xb7\x5a\xb9\x5a\xba\x5a\xbb\x5a\xbc\x5a\xbd\x5a\xbf\x5a\xc0\x5a\xc3\x5a\xc4\x5a\xc5\x5a\xc6\x5a\xc7\x5a\xc8\x5a\xca\x5a\xcb\x5a\xcd\x5a\xce\x5a\xcf\x5a\xd0\x5a\xd1\x5a\xd3\x5a\xd5\x5a\xd7\x5a\xd9\x5a\xda\x5a\xdb\x5a\xdd\x5a\xde\x5a\xdf\x5a\xe2\x5a\xe4\x5a\xe5\x5a\xe7\x5a\xe8\x5a\xea\x5a\xec\x5a\xed\x5a\xee\x5a\xef\x5a\xf0\x5a\xf2\x5a\xf3\x5a\xf4\x5a\xf5\x5a\xf6\x5a\xf7\x5a\xf8\x5a\xf9\x5a\xfa\x5a\xfb\x5a\xfc\x5a\xfd\x5a\xfe\x5a\xff\x5b\x00\x5b\x01\x5b\x02\x5b\x03\x5b\x04\x5b\x05\x5b\x06\x5b\x07\x5b\x08\x5b\x0a\x5b\x0b\x5b\x0c\x5b\x0d\x5b\x0e\x5b\x0f\x5b\x10\x5b\x11\x5b\x12\x5b\x13\x5b\x14\x5b\x15\x5b\x18\x5b\x19\x5b\x1a\x5b\x1b\x5b\x1c\x5b\x1d\x5b\x1e\x5b\x1f\x5b\x20\x5b\x21\x5b\x22\x5b\x23\x5b\x24\x5b\x25\x5b\x26\x5b\x27\x5b\x28\x5b\x29\x5b\x2a\x5b\x2b\x5b\x2c\x5b\x2d\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x2e\x5b\x2f\x5b\x30\x5b\x31\x5b\x33\x5b\x35\x5b\x36\x5b\x38\x5b\x39\x5b\x3a\x5b\x3b\x5b\x3c\x5b\x3d\x5b\x3e\x5b\x3f\x5b\x41\x5b\x42\x5b\x43\x5b\x44\x5b\x45\x5b\x46\x5b\x47\x5b\x48\x5b\x49\x5b\x4a\x5b\x4b\x5b\x4c\x5b\x4d\x5b\x4e\x5b\x4f\x5b\x52\x5b\x56\x5b\x5e\x5b\x60\x5b\x61\x5b\x67\x5b\x68\x5b\x6b\x5b\x6d\x5b\x6e\x5b\x6f\x5b\x72\x5b\x74\x5b\x76\x5b\x77\x5b\x78\x5b\x79\x5b\x7b\x5b\x7c\x5b\x7e\x5b\x7f\x5b\x82\x5b\x86\x5b\x8a\x5b\x8d\x5b\x8e\x5b\x90\x5b\x91\x5b\x92\x5b\x94\x5b\x96\x5b\x9f\x5b\xa7", /* 8c80 */ "\x00\x00\x5b\xa8\x5b\xa9\x5b\xac\x5b\xad\x5b\xae\x5b\xaf\x5b\xb1\x5b\xb2\x5b\xb7\x5b\xba\x5b\xbb\x5b\xbc\x5b\xc0\x5b\xc1\x5b\xc3\x5b\xc8\x5b\xc9\x5b\xca\x5b\xcb\x5b\xcd\x5b\xce\x5b\xcf\x5b\xd1\x5b\xd4\x5b\xd5\x5b\xd6\x5b\xd7\x5b\xd8\x5b\xd9\x5b\xda\x5b\xdb\x5b\xdc\x5b\xe0\x5b\xe2\x5b\xe3\x5b\xe6\x5b\xe7\x5b\xe9\x5b\xea\x5b\xeb\x5b\xec\x5b\xed\x5b\xef\x5b\xf1\x5b\xf2\x5b\xf3\x5b\xf4\x5b\xf5\x5b\xf6\x5b\xf7\x5b\xfd\x5b\xfe\x5c\x00\x5c\x02\x5c\x03\x5c\x05\x5c\x07\x5c\x08\x5c\x0b\x5c\x0c\x5c\x0d\x5c\x0e\x5c\x10\x5c\x12\x5c\x13\x5c\x17\x5c\x19\x5c\x1b\x5c\x1e\x5c\x1f\x5c\x20\x5c\x21\x5c\x23\x5c\x26\x5c\x28\x5c\x29\x5c\x2a\x5c\x2b\x5c\x2d\x5c\x2e\x5c\x2f\x5c\x30\x5c\x32\x5c\x33\x5c\x35\x5c\x36\x5c\x37\x5c\x43\x5c\x44\x5c\x46\x5c\x47\x5c\x4c\x5c\x4d\x5c\x52\x5c\x53\x5c\x54\x5c\x56\x5c\x57\x5c\x58\x5c\x5a\x5c\x5b\x5c\x5c\x5c\x5d\x5c\x5f\x5c\x62\x5c\x64\x5c\x67\x5c\x68\x5c\x69\x5c\x6a\x5c\x6b\x5c\x6c\x5c\x6d\x5c\x70\x5c\x72\x5c\x73\x5c\x74\x5c\x75\x5c\x76\x5c\x77\x5c\x78\x5c\x7b\x5c\x7c\x5c\x7d\x5c\x7e\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x80\x5c\x83\x5c\x84\x5c\x85\x5c\x86\x5c\x87\x5c\x89\x5c\x8a\x5c\x8b\x5c\x8e\x5c\x8f\x5c\x92\x5c\x93\x5c\x95\x5c\x9d\x5c\x9e\x5c\x9f\x5c\xa0\x5c\xa1\x5c\xa4\x5c\xa5\x5c\xa6\x5c\xa7\x5c\xa8\x5c\xaa\x5c\xae\x5c\xaf\x5c\xb0\x5c\xb2\x5c\xb4\x5c\xb6\x5c\xb9\x5c\xba\x5c\xbb\x5c\xbc\x5c\xbe\x5c\xc0\x5c\xc2\x5c\xc3\x5c\xc5\x5c\xc6\x5c\xc7\x5c\xc8\x5c\xc9\x5c\xca\x5c\xcc\x5c\xcd\x5c\xce\x5c\xcf\x5c\xd0\x5c\xd1\x5c\xd3\x5c\xd4\x5c\xd5\x5c\xd6\x5c\xd7\x5c\xd8\x5c\xda\x5c\xdb\x5c\xdc\x5c\xdd\x5c\xde\x5c\xdf", /* 8d80 */ "\x00\x00\x5c\xe0\x5c\xe2\x5c\xe3\x5c\xe7\x5c\xe9\x5c\xeb\x5c\xec\x5c\xee\x5c\xef\x5c\xf1\x5c\xf2\x5c\xf3\x5c\xf4\x5c\xf5\x5c\xf6\x5c\xf7\x5c\xf8\x5c\xf9\x5c\xfa\x5c\xfc\x5c\xfd\x5c\xfe\x5c\xff\x5d\x00\x5d\x01\x5d\x04\x5d\x05\x5d\x08\x5d\x09\x5d\x0a\x5d\x0b\x5d\x0c\x5d\x0d\x5d\x0f\x5d\x10\x5d\x11\x5d\x12\x5d\x13\x5d\x15\x5d\x17\x5d\x18\x5d\x19\x5d\x1a\x5d\x1c\x5d\x1d\x5d\x1f\x5d\x20\x5d\x21\x5d\x22\x5d\x23\x5d\x25\x5d\x28\x5d\x2a\x5d\x2b\x5d\x2c\x5d\x2f\x5d\x30\x5d\x31\x5d\x32\x5d\x33\x5d\x35\x5d\x36\x5d\x37\x5d\x38\x5d\x39\x5d\x3a\x5d\x3b\x5d\x3c\x5d\x3f\x5d\x40\x5d\x41\x5d\x42\x5d\x43\x5d\x44\x5d\x45\x5d\x46\x5d\x48\x5d\x49\x5d\x4d\x5d\x4e\x5d\x4f\x5d\x50\x5d\x51\x5d\x52\x5d\x53\x5d\x54\x5d\x55\x5d\x56\x5d\x57\x5d\x59\x5d\x5a\x5d\x5c\x5d\x5e\x5d\x5f\x5d\x60\x5d\x61\x5d\x62\x5d\x63\x5d\x64\x5d\x65\x5d\x66\x5d\x67\x5d\x68\x5d\x6a\x5d\x6d\x5d\x6e\x5d\x70\x5d\x71\x5d\x72\x5d\x73\x5d\x75\x5d\x76\x5d\x77\x5d\x78\x5d\x79\x5d\x7a\x5d\x7b\x5d\x7c\x5d\x7d\x5d\x7e\x5d\x7f\x5d\x80\x5d\x81\x5d\x83\x5d\x84\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x85\x5d\x86\x5d\x87\x5d\x88\x5d\x89\x5d\x8a\x5d\x8b\x5d\x8c\x5d\x8d\x5d\x8e\x5d\x8f\x5d\x90\x5d\x91\x5d\x92\x5d\x93\x5d\x94\x5d\x95\x5d\x96\x5d\x97\x5d\x98\x5d\x9a\x5d\x9b\x5d\x9c\x5d\x9e\x5d\x9f\x5d\xa0\x5d\xa1\x5d\xa2\x5d\xa3\x5d\xa4\x5d\xa5\x5d\xa6\x5d\xa7\x5d\xa8\x5d\xa9\x5d\xaa\x5d\xab\x5d\xac\x5d\xad\x5d\xae\x5d\xaf\x5d\xb0\x5d\xb1\x5d\xb2\x5d\xb3\x5d\xb4\x5d\xb5\x5d\xb6\x5d\xb8\x5d\xb9\x5d\xba\x5d\xbb\x5d\xbc\x5d\xbd\x5d\xbe\x5d\xbf\x5d\xc0\x5d\xc1\x5d\xc2\x5d\xc3\x5d\xc4\x5d\xc6\x5d\xc7", /* 8e80 */ "\x00\x00\x5d\xc8\x5d\xc9\x5d\xca\x5d\xcb\x5d\xcc\x5d\xce\x5d\xcf\x5d\xd0\x5d\xd1\x5d\xd2\x5d\xd3\x5d\xd4\x5d\xd5\x5d\xd6\x5d\xd7\x5d\xd8\x5d\xd9\x5d\xda\x5d\xdc\x5d\xdf\x5d\xe0\x5d\xe3\x5d\xe4\x5d\xea\x5d\xec\x5d\xed\x5d\xf0\x5d\xf5\x5d\xf6\x5d\xf8\x5d\xf9\x5d\xfa\x5d\xfb\x5d\xfc\x5d\xff\x5e\x00\x5e\x04\x5e\x07\x5e\x09\x5e\x0a\x5e\x0b\x5e\x0d\x5e\x0e\x5e\x12\x5e\x13\x5e\x17\x5e\x1e\x5e\x1f\x5e\x20\x5e\x21\x5e\x22\x5e\x23\x5e\x24\x5e\x25\x5e\x28\x5e\x29\x5e\x2a\x5e\x2b\x5e\x2c\x5e\x2f\x5e\x30\x5e\x32\x5e\x33\x5e\x34\x5e\x35\x5e\x36\x5e\x39\x5e\x3a\x5e\x3e\x5e\x3f\x5e\x40\x5e\x41\x5e\x43\x5e\x46\x5e\x47\x5e\x48\x5e\x49\x5e\x4a\x5e\x4b\x5e\x4d\x5e\x4e\x5e\x4f\x5e\x50\x5e\x51\x5e\x52\x5e\x53\x5e\x56\x5e\x57\x5e\x58\x5e\x59\x5e\x5a\x5e\x5c\x5e\x5d\x5e\x5f\x5e\x60\x5e\x63\x5e\x64\x5e\x65\x5e\x66\x5e\x67\x5e\x68\x5e\x69\x5e\x6a\x5e\x6b\x5e\x6c\x5e\x6d\x5e\x6e\x5e\x6f\x5e\x70\x5e\x71\x5e\x75\x5e\x77\x5e\x79\x5e\x7e\x5e\x81\x5e\x82\x5e\x83\x5e\x85\x5e\x88\x5e\x89\x5e\x8c\x5e\x8d\x5e\x8e\x5e\x92\x5e\x98\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9b\x5e\x9d\x5e\xa1\x5e\xa2\x5e\xa3\x5e\xa4\x5e\xa8\x5e\xa9\x5e\xaa\x5e\xab\x5e\xac\x5e\xae\x5e\xaf\x5e\xb0\x5e\xb1\x5e\xb2\x5e\xb4\x5e\xba\x5e\xbb\x5e\xbc\x5e\xbd\x5e\xbf\x5e\xc0\x5e\xc1\x5e\xc2\x5e\xc3\x5e\xc4\x5e\xc5\x5e\xc6\x5e\xc7\x5e\xc8\x5e\xcb\x5e\xcc\x5e\xcd\x5e\xce\x5e\xcf\x5e\xd0\x5e\xd4\x5e\xd5\x5e\xd7\x5e\xd8\x5e\xd9\x5e\xda\x5e\xdc\x5e\xdd\x5e\xde\x5e\xdf\x5e\xe0\x5e\xe1\x5e\xe2\x5e\xe3\x5e\xe4\x5e\xe5\x5e\xe6\x5e\xe7\x5e\xe9\x5e\xeb\x5e\xec\x5e\xed\x5e\xee\x5e\xef\x5e\xf0\x5e\xf1", /* 8f80 */ "\x00\x00\x5e\xf2\x5e\xf3\x5e\xf5\x5e\xf8\x5e\xf9\x5e\xfb\x5e\xfc\x5e\xfd\x5f\x05\x5f\x06\x5f\x07\x5f\x09\x5f\x0c\x5f\x0d\x5f\x0e\x5f\x10\x5f\x12\x5f\x14\x5f\x16\x5f\x19\x5f\x1a\x5f\x1c\x5f\x1d\x5f\x1e\x5f\x21\x5f\x22\x5f\x23\x5f\x24\x5f\x28\x5f\x2b\x5f\x2c\x5f\x2e\x5f\x30\x5f\x32\x5f\x33\x5f\x34\x5f\x35\x5f\x36\x5f\x37\x5f\x38\x5f\x3b\x5f\x3d\x5f\x3e\x5f\x3f\x5f\x41\x5f\x42\x5f\x43\x5f\x44\x5f\x45\x5f\x46\x5f\x47\x5f\x48\x5f\x49\x5f\x4a\x5f\x4b\x5f\x4c\x5f\x4d\x5f\x4e\x5f\x4f\x5f\x51\x5f\x54\x5f\x59\x5f\x5a\x5f\x5b\x5f\x5c\x5f\x5e\x5f\x5f\x5f\x60\x5f\x63\x5f\x65\x5f\x67\x5f\x68\x5f\x6b\x5f\x6e\x5f\x6f\x5f\x72\x5f\x74\x5f\x75\x5f\x76\x5f\x78\x5f\x7a\x5f\x7d\x5f\x7e\x5f\x7f\x5f\x83\x5f\x86\x5f\x8d\x5f\x8e\x5f\x8f\x5f\x91\x5f\x93\x5f\x94\x5f\x96\x5f\x9a\x5f\x9b\x5f\x9d\x5f\x9e\x5f\x9f\x5f\xa0\x5f\xa2\x5f\xa3\x5f\xa4\x5f\xa5\x5f\xa6\x5f\xa7\x5f\xa9\x5f\xab\x5f\xac\x5f\xaf\x5f\xb0\x5f\xb1\x5f\xb2\x5f\xb3\x5f\xb4\x5f\xb6\x5f\xb8\x5f\xb9\x5f\xba\x5f\xbb\x5f\xbe\x5f\xbf\x5f\xc0\x5f\xc1\x5f\xc2\x5f\xc7\x00\x00\x00\x00", /* 9000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc8\x5f\xca\x5f\xcb\x5f\xce\x5f\xd3\x5f\xd4\x5f\xd5\x5f\xda\x5f\xdb\x5f\xdc\x5f\xde\x5f\xdf\x5f\xe2\x5f\xe3\x5f\xe5\x5f\xe6\x5f\xe8\x5f\xe9\x5f\xec\x5f\xef\x5f\xf0\x5f\xf2\x5f\xf3\x5f\xf4\x5f\xf6\x5f\xf7\x5f\xf9\x5f\xfa\x5f\xfc\x60\x07\x60\x08\x60\x09\x60\x0b\x60\x0c\x60\x10\x60\x11\x60\x13\x60\x17\x60\x18\x60\x1a\x60\x1e\x60\x1f\x60\x22\x60\x23\x60\x24\x60\x2c\x60\x2d\x60\x2e\x60\x30\x60\x31\x60\x32\x60\x33\x60\x34\x60\x36\x60\x37\x60\x38\x60\x39\x60\x3a\x60\x3d\x60\x3e\x60\x40\x60\x44\x60\x45", /* 9080 */ "\x00\x00\x60\x46\x60\x47\x60\x48\x60\x49\x60\x4a\x60\x4c\x60\x4e\x60\x4f\x60\x51\x60\x53\x60\x54\x60\x56\x60\x57\x60\x58\x60\x5b\x60\x5c\x60\x5e\x60\x5f\x60\x60\x60\x61\x60\x65\x60\x66\x60\x6e\x60\x71\x60\x72\x60\x74\x60\x75\x60\x77\x60\x7e\x60\x80\x60\x81\x60\x82\x60\x85\x60\x86\x60\x87\x60\x88\x60\x8a\x60\x8b\x60\x8e\x60\x8f\x60\x90\x60\x91\x60\x93\x60\x95\x60\x97\x60\x98\x60\x99\x60\x9c\x60\x9e\x60\xa1\x60\xa2\x60\xa4\x60\xa5\x60\xa7\x60\xa9\x60\xaa\x60\xae\x60\xb0\x60\xb3\x60\xb5\x60\xb6\x60\xb7\x60\xb9\x60\xba\x60\xbd\x60\xbe\x60\xbf\x60\xc0\x60\xc1\x60\xc2\x60\xc3\x60\xc4\x60\xc7\x60\xc8\x60\xc9\x60\xcc\x60\xcd\x60\xce\x60\xcf\x60\xd0\x60\xd2\x60\xd3\x60\xd4\x60\xd6\x60\xd7\x60\xd9\x60\xdb\x60\xde\x60\xe1\x60\xe2\x60\xe3\x60\xe4\x60\xe5\x60\xea\x60\xf1\x60\xf2\x60\xf5\x60\xf7\x60\xf8\x60\xfb\x60\xfc\x60\xfd\x60\xfe\x60\xff\x61\x02\x61\x03\x61\x04\x61\x05\x61\x07\x61\x0a\x61\x0b\x61\x0c\x61\x10\x61\x11\x61\x12\x61\x13\x61\x14\x61\x16\x61\x17\x61\x18\x61\x19\x61\x1b\x61\x1c\x61\x1d\x61\x1e\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x21\x61\x22\x61\x25\x61\x28\x61\x29\x61\x2a\x61\x2c\x61\x2d\x61\x2e\x61\x2f\x61\x30\x61\x31\x61\x32\x61\x33\x61\x34\x61\x35\x61\x36\x61\x37\x61\x38\x61\x39\x61\x3a\x61\x3b\x61\x3c\x61\x3d\x61\x3e\x61\x40\x61\x41\x61\x42\x61\x43\x61\x44\x61\x45\x61\x46\x61\x47\x61\x49\x61\x4b\x61\x4d\x61\x4f\x61\x50\x61\x52\x61\x53\x61\x54\x61\x56\x61\x57\x61\x58\x61\x59\x61\x5a\x61\x5b\x61\x5c\x61\x5e\x61\x5f\x61\x60\x61\x61\x61\x63\x61\x64\x61\x65\x61\x66\x61\x69\x61\x6a\x61\x6b\x61\x6c\x61\x6d\x61\x6e\x61\x6f", /* 9180 */ "\x00\x00\x61\x71\x61\x72\x61\x73\x61\x74\x61\x76\x61\x78\x61\x79\x61\x7a\x61\x7b\x61\x7c\x61\x7d\x61\x7e\x61\x7f\x61\x80\x61\x81\x61\x82\x61\x83\x61\x84\x61\x85\x61\x86\x61\x87\x61\x88\x61\x89\x61\x8a\x61\x8c\x61\x8d\x61\x8f\x61\x90\x61\x91\x61\x92\x61\x93\x61\x95\x61\x96\x61\x97\x61\x98\x61\x99\x61\x9a\x61\x9b\x61\x9c\x61\x9e\x61\x9f\x61\xa0\x61\xa1\x61\xa2\x61\xa3\x61\xa4\x61\xa5\x61\xa6\x61\xaa\x61\xab\x61\xad\x61\xae\x61\xaf\x61\xb0\x61\xb1\x61\xb2\x61\xb3\x61\xb4\x61\xb5\x61\xb6\x61\xb8\x61\xb9\x61\xba\x61\xbb\x61\xbc\x61\xbd\x61\xbf\x61\xc0\x61\xc1\x61\xc3\x61\xc4\x61\xc5\x61\xc6\x61\xc7\x61\xc9\x61\xcc\x61\xcd\x61\xce\x61\xcf\x61\xd0\x61\xd3\x61\xd5\x61\xd6\x61\xd7\x61\xd8\x61\xd9\x61\xda\x61\xdb\x61\xdc\x61\xdd\x61\xde\x61\xdf\x61\xe0\x61\xe1\x61\xe2\x61\xe3\x61\xe4\x61\xe5\x61\xe7\x61\xe8\x61\xe9\x61\xea\x61\xeb\x61\xec\x61\xed\x61\xee\x61\xef\x61\xf0\x61\xf1\x61\xf2\x61\xf3\x61\xf4\x61\xf6\x61\xf7\x61\xf8\x61\xf9\x61\xfa\x61\xfb\x61\xfc\x61\xfd\x61\xfe\x62\x00\x62\x01\x62\x02\x62\x03\x00\x00\x00\x00", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x04\x62\x05\x62\x07\x62\x09\x62\x13\x62\x14\x62\x19\x62\x1c\x62\x1d\x62\x1e\x62\x20\x62\x23\x62\x26\x62\x27\x62\x28\x62\x29\x62\x2b\x62\x2d\x62\x2f\x62\x30\x62\x31\x62\x32\x62\x35\x62\x36\x62\x38\x62\x39\x62\x3a\x62\x3b\x62\x3c\x62\x42\x62\x44\x62\x45\x62\x46\x62\x4a\x62\x4f\x62\x50\x62\x55\x62\x56\x62\x57\x62\x59\x62\x5a\x62\x5c\x62\x5d\x62\x5e\x62\x5f\x62\x60\x62\x61\x62\x62\x62\x64\x62\x65\x62\x68\x62\x71\x62\x72\x62\x74\x62\x75\x62\x77\x62\x78\x62\x7a\x62\x7b\x62\x7d\x62\x81\x62\x82\x62\x83", /* 9280 */ "\x00\x00\x62\x85\x62\x86\x62\x87\x62\x88\x62\x8b\x62\x8c\x62\x8d\x62\x8e\x62\x8f\x62\x90\x62\x94\x62\x99\x62\x9c\x62\x9d\x62\x9e\x62\xa3\x62\xa6\x62\xa7\x62\xa9\x62\xaa\x62\xad\x62\xae\x62\xaf\x62\xb0\x62\xb2\x62\xb3\x62\xb4\x62\xb6\x62\xb7\x62\xb8\x62\xba\x62\xbe\x62\xc0\x62\xc1\x62\xc3\x62\xcb\x62\xcf\x62\xd1\x62\xd5\x62\xdd\x62\xde\x62\xe0\x62\xe1\x62\xe4\x62\xea\x62\xeb\x62\xf0\x62\xf2\x62\xf5\x62\xf8\x62\xf9\x62\xfa\x62\xfb\x63\x00\x63\x03\x63\x04\x63\x05\x63\x06\x63\x0a\x63\x0b\x63\x0c\x63\x0d\x63\x0f\x63\x10\x63\x12\x63\x13\x63\x14\x63\x15\x63\x17\x63\x18\x63\x19\x63\x1c\x63\x26\x63\x27\x63\x29\x63\x2c\x63\x2d\x63\x2e\x63\x30\x63\x31\x63\x33\x63\x34\x63\x35\x63\x36\x63\x37\x63\x38\x63\x3b\x63\x3c\x63\x3e\x63\x3f\x63\x40\x63\x41\x63\x44\x63\x47\x63\x48\x63\x4a\x63\x51\x63\x52\x63\x53\x63\x54\x63\x56\x63\x57\x63\x58\x63\x59\x63\x5a\x63\x5b\x63\x5c\x63\x5d\x63\x60\x63\x64\x63\x65\x63\x66\x63\x68\x63\x6a\x63\x6b\x63\x6c\x63\x6f\x63\x70\x63\x72\x63\x73\x63\x74\x63\x75\x63\x78\x63\x79\x63\x7c\x00\x00\x00\x00", /* 9300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7d\x63\x7e\x63\x7f\x63\x81\x63\x83\x63\x84\x63\x85\x63\x86\x63\x8b\x63\x8d\x63\x91\x63\x93\x63\x94\x63\x95\x63\x97\x63\x99\x63\x9a\x63\x9b\x63\x9c\x63\x9d\x63\x9e\x63\x9f\x63\xa1\x63\xa4\x63\xa6\x63\xab\x63\xaf\x63\xb1\x63\xb2\x63\xb5\x63\xb6\x63\xb9\x63\xbb\x63\xbd\x63\xbf\x63\xc0\x63\xc1\x63\xc2\x63\xc3\x63\xc5\x63\xc7\x63\xc8\x63\xca\x63\xcb\x63\xcc\x63\xd1\x63\xd3\x63\xd4\x63\xd5\x63\xd7\x63\xd8\x63\xd9\x63\xda\x63\xdb\x63\xdc\x63\xdd\x63\xdf\x63\xe2\x63\xe4\x63\xe5\x63\xe6\x63\xe7\x63\xe8", /* 9380 */ "\x00\x00\x63\xeb\x63\xec\x63\xee\x63\xef\x63\xf0\x63\xf1\x63\xf3\x63\xf5\x63\xf7\x63\xf9\x63\xfa\x63\xfb\x63\xfc\x63\xfe\x64\x03\x64\x04\x64\x06\x64\x07\x64\x08\x64\x09\x64\x0a\x64\x0d\x64\x0e\x64\x11\x64\x12\x64\x15\x64\x16\x64\x17\x64\x18\x64\x19\x64\x1a\x64\x1d\x64\x1f\x64\x22\x64\x23\x64\x24\x64\x25\x64\x27\x64\x28\x64\x29\x64\x2b\x64\x2e\x64\x2f\x64\x30\x64\x31\x64\x32\x64\x33\x64\x35\x64\x36\x64\x37\x64\x38\x64\x39\x64\x3b\x64\x3c\x64\x3e\x64\x40\x64\x42\x64\x43\x64\x49\x64\x4b\x64\x4c\x64\x4d\x64\x4e\x64\x4f\x64\x50\x64\x51\x64\x53\x64\x55\x64\x56\x64\x57\x64\x59\x64\x5a\x64\x5b\x64\x5c\x64\x5d\x64\x5f\x64\x60\x64\x61\x64\x62\x64\x63\x64\x64\x64\x65\x64\x66\x64\x68\x64\x6a\x64\x6b\x64\x6c\x64\x6e\x64\x6f\x64\x70\x64\x71\x64\x72\x64\x73\x64\x74\x64\x75\x64\x76\x64\x77\x64\x7b\x64\x7c\x64\x7d\x64\x7e\x64\x7f\x64\x80\x64\x81\x64\x83\x64\x86\x64\x88\x64\x89\x64\x8a\x64\x8b\x64\x8c\x64\x8d\x64\x8e\x64\x8f\x64\x90\x64\x93\x64\x94\x64\x97\x64\x98\x64\x9a\x64\x9b\x64\x9c\x64\x9d\x64\x9f\x64\xa0\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa2\x64\xa3\x64\xa5\x64\xa6\x64\xa7\x64\xa8\x64\xaa\x64\xab\x64\xaf\x64\xb1\x64\xb2\x64\xb3\x64\xb4\x64\xb6\x64\xb9\x64\xbb\x64\xbd\x64\xbe\x64\xbf\x64\xc1\x64\xc3\x64\xc4\x64\xc6\x64\xc7\x64\xc8\x64\xc9\x64\xca\x64\xcb\x64\xcc\x64\xcf\x64\xd1\x64\xd3\x64\xd4\x64\xd5\x64\xd6\x64\xd9\x64\xda\x64\xdb\x64\xdc\x64\xdd\x64\xdf\x64\xe0\x64\xe1\x64\xe3\x64\xe5\x64\xe7\x64\xe8\x64\xe9\x64\xea\x64\xeb\x64\xec\x64\xed\x64\xee\x64\xef\x64\xf0\x64\xf1\x64\xf2\x64\xf3\x64\xf4\x64\xf5\x64\xf6\x64\xf7", /* 9480 */ "\x00\x00\x64\xf8\x64\xf9\x64\xfa\x64\xfb\x64\xfc\x64\xfd\x64\xfe\x64\xff\x65\x01\x65\x02\x65\x03\x65\x04\x65\x05\x65\x06\x65\x07\x65\x08\x65\x0a\x65\x0b\x65\x0c\x65\x0d\x65\x0e\x65\x0f\x65\x10\x65\x11\x65\x13\x65\x14\x65\x15\x65\x16\x65\x17\x65\x19\x65\x1a\x65\x1b\x65\x1c\x65\x1d\x65\x1e\x65\x1f\x65\x20\x65\x21\x65\x22\x65\x23\x65\x24\x65\x26\x65\x27\x65\x28\x65\x29\x65\x2a\x65\x2c\x65\x2d\x65\x30\x65\x31\x65\x32\x65\x33\x65\x37\x65\x3a\x65\x3c\x65\x3d\x65\x40\x65\x41\x65\x42\x65\x43\x65\x44\x65\x46\x65\x47\x65\x4a\x65\x4b\x65\x4d\x65\x4e\x65\x50\x65\x52\x65\x53\x65\x54\x65\x57\x65\x58\x65\x5a\x65\x5c\x65\x5f\x65\x60\x65\x61\x65\x64\x65\x65\x65\x67\x65\x68\x65\x69\x65\x6a\x65\x6d\x65\x6e\x65\x6f\x65\x71\x65\x73\x65\x75\x65\x76\x65\x78\x65\x79\x65\x7a\x65\x7b\x65\x7c\x65\x7d\x65\x7e\x65\x7f\x65\x80\x65\x81\x65\x82\x65\x83\x65\x84\x65\x85\x65\x86\x65\x88\x65\x89\x65\x8a\x65\x8d\x65\x8e\x65\x8f\x65\x92\x65\x94\x65\x95\x65\x96\x65\x98\x65\x9a\x65\x9d\x65\x9e\x65\xa0\x65\xa2\x65\xa3\x65\xa6\x65\xa8\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xaa\x65\xac\x65\xae\x65\xb1\x65\xb2\x65\xb3\x65\xb4\x65\xb5\x65\xb6\x65\xb7\x65\xb8\x65\xba\x65\xbb\x65\xbe\x65\xbf\x65\xc0\x65\xc2\x65\xc7\x65\xc8\x65\xc9\x65\xca\x65\xcd\x65\xd0\x65\xd1\x65\xd3\x65\xd4\x65\xd5\x65\xd8\x65\xd9\x65\xda\x65\xdb\x65\xdc\x65\xdd\x65\xde\x65\xdf\x65\xe1\x65\xe3\x65\xe4\x65\xea\x65\xeb\x65\xf2\x65\xf3\x65\xf4\x65\xf5\x65\xf8\x65\xf9\x65\xfb\x65\xfc\x65\xfd\x65\xfe\x65\xff\x66\x01\x66\x04\x66\x05\x66\x07\x66\x08\x66\x09\x66\x0b\x66\x0d\x66\x10\x66\x11\x66\x12\x66\x16", /* 9580 */ "\x00\x00\x66\x17\x66\x18\x66\x1a\x66\x1b\x66\x1c\x66\x1e\x66\x21\x66\x22\x66\x23\x66\x24\x66\x26\x66\x29\x66\x2a\x66\x2b\x66\x2c\x66\x2e\x66\x30\x66\x32\x66\x33\x66\x37\x66\x38\x66\x39\x66\x3a\x66\x3b\x66\x3d\x66\x3f\x66\x40\x66\x42\x66\x44\x66\x45\x66\x46\x66\x47\x66\x48\x66\x49\x66\x4a\x66\x4d\x66\x4e\x66\x50\x66\x51\x66\x58\x66\x59\x66\x5b\x66\x5c\x66\x5d\x66\x5e\x66\x60\x66\x62\x66\x63\x66\x65\x66\x67\x66\x69\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x71\x66\x72\x66\x73\x66\x75\x66\x78\x66\x79\x66\x7b\x66\x7c\x66\x7d\x66\x7f\x66\x80\x66\x81\x66\x83\x66\x85\x66\x86\x66\x88\x66\x89\x66\x8a\x66\x8b\x66\x8d\x66\x8e\x66\x8f\x66\x90\x66\x92\x66\x93\x66\x94\x66\x95\x66\x98\x66\x99\x66\x9a\x66\x9b\x66\x9c\x66\x9e\x66\x9f\x66\xa0\x66\xa1\x66\xa2\x66\xa3\x66\xa4\x66\xa5\x66\xa6\x66\xa9\x66\xaa\x66\xab\x66\xac\x66\xad\x66\xaf\x66\xb0\x66\xb1\x66\xb2\x66\xb3\x66\xb5\x66\xb6\x66\xb7\x66\xb8\x66\xba\x66\xbb\x66\xbc\x66\xbd\x66\xbf\x66\xc0\x66\xc1\x66\xc2\x66\xc3\x66\xc4\x66\xc5\x66\xc6\x66\xc7\x66\xc8\x66\xc9\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xca\x66\xcb\x66\xcc\x66\xcd\x66\xce\x66\xcf\x66\xd0\x66\xd1\x66\xd2\x66\xd3\x66\xd4\x66\xd5\x66\xd6\x66\xd7\x66\xd8\x66\xda\x66\xde\x66\xdf\x66\xe0\x66\xe1\x66\xe2\x66\xe3\x66\xe4\x66\xe5\x66\xe7\x66\xe8\x66\xea\x66\xeb\x66\xec\x66\xed\x66\xee\x66\xef\x66\xf1\x66\xf5\x66\xf6\x66\xf8\x66\xfa\x66\xfb\x66\xfd\x67\x01\x67\x02\x67\x03\x67\x04\x67\x05\x67\x06\x67\x07\x67\x0c\x67\x0e\x67\x0f\x67\x11\x67\x12\x67\x13\x67\x16\x67\x18\x67\x19\x67\x1a\x67\x1c\x67\x1e\x67\x20\x67\x21\x67\x22\x67\x23\x67\x24", /* 9680 */ "\x00\x00\x67\x25\x67\x27\x67\x29\x67\x2e\x67\x30\x67\x32\x67\x33\x67\x36\x67\x37\x67\x38\x67\x39\x67\x3b\x67\x3c\x67\x3e\x67\x3f\x67\x41\x67\x44\x67\x45\x67\x47\x67\x4a\x67\x4b\x67\x4d\x67\x52\x67\x54\x67\x55\x67\x57\x67\x58\x67\x59\x67\x5a\x67\x5b\x67\x5d\x67\x62\x67\x63\x67\x64\x67\x66\x67\x67\x67\x6b\x67\x6c\x67\x6e\x67\x71\x67\x74\x67\x76\x67\x78\x67\x79\x67\x7a\x67\x7b\x67\x7d\x67\x80\x67\x82\x67\x83\x67\x85\x67\x86\x67\x88\x67\x8a\x67\x8c\x67\x8d\x67\x8e\x67\x8f\x67\x91\x67\x92\x67\x93\x67\x94\x67\x96\x67\x99\x67\x9b\x67\x9f\x67\xa0\x67\xa1\x67\xa4\x67\xa6\x67\xa9\x67\xac\x67\xae\x67\xb1\x67\xb2\x67\xb4\x67\xb9\x67\xba\x67\xbb\x67\xbc\x67\xbd\x67\xbe\x67\xbf\x67\xc0\x67\xc2\x67\xc5\x67\xc6\x67\xc7\x67\xc8\x67\xc9\x67\xca\x67\xcb\x67\xcc\x67\xcd\x67\xce\x67\xd5\x67\xd6\x67\xd7\x67\xdb\x67\xdf\x67\xe1\x67\xe3\x67\xe4\x67\xe6\x67\xe7\x67\xe8\x67\xea\x67\xeb\x67\xed\x67\xee\x67\xf2\x67\xf5\x67\xf6\x67\xf7\x67\xf8\x67\xf9\x67\xfa\x67\xfb\x67\xfc\x67\xfe\x68\x01\x68\x02\x68\x03\x68\x04\x68\x06\x00\x00\x00\x00", /* 9700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x0d\x68\x10\x68\x12\x68\x14\x68\x15\x68\x18\x68\x19\x68\x1a\x68\x1b\x68\x1c\x68\x1e\x68\x1f\x68\x20\x68\x22\x68\x23\x68\x24\x68\x25\x68\x26\x68\x27\x68\x28\x68\x2b\x68\x2c\x68\x2d\x68\x2e\x68\x2f\x68\x30\x68\x31\x68\x34\x68\x35\x68\x36\x68\x3a\x68\x3b\x68\x3f\x68\x47\x68\x4b\x68\x4d\x68\x4f\x68\x52\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x68\x5b\x68\x5c\x68\x5d\x68\x5e\x68\x5f\x68\x6a\x68\x6c\x68\x6d\x68\x6e\x68\x6f\x68\x70\x68\x71\x68\x72\x68\x73\x68\x75\x68\x78\x68\x79\x68\x7a\x68\x7b\x68\x7c", /* 9780 */ "\x00\x00\x68\x7d\x68\x7e\x68\x7f\x68\x80\x68\x82\x68\x84\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x68\x8e\x68\x90\x68\x91\x68\x92\x68\x94\x68\x95\x68\x96\x68\x98\x68\x99\x68\x9a\x68\x9b\x68\x9c\x68\x9d\x68\x9e\x68\x9f\x68\xa0\x68\xa1\x68\xa3\x68\xa4\x68\xa5\x68\xa9\x68\xaa\x68\xab\x68\xac\x68\xae\x68\xb1\x68\xb2\x68\xb4\x68\xb6\x68\xb7\x68\xb8\x68\xb9\x68\xba\x68\xbb\x68\xbc\x68\xbd\x68\xbe\x68\xbf\x68\xc1\x68\xc3\x68\xc4\x68\xc5\x68\xc6\x68\xc7\x68\xc8\x68\xca\x68\xcc\x68\xce\x68\xcf\x68\xd0\x68\xd1\x68\xd3\x68\xd4\x68\xd6\x68\xd7\x68\xd9\x68\xdb\x68\xdc\x68\xdd\x68\xde\x68\xdf\x68\xe1\x68\xe2\x68\xe4\x68\xe5\x68\xe6\x68\xe7\x68\xe8\x68\xe9\x68\xea\x68\xeb\x68\xec\x68\xed\x68\xef\x68\xf2\x68\xf3\x68\xf4\x68\xf6\x68\xf7\x68\xf8\x68\xfb\x68\xfd\x68\xfe\x68\xff\x69\x00\x69\x02\x69\x03\x69\x04\x69\x06\x69\x07\x69\x08\x69\x09\x69\x0a\x69\x0c\x69\x0f\x69\x11\x69\x13\x69\x14\x69\x15\x69\x16\x69\x17\x69\x18\x69\x19\x69\x1a\x69\x1b\x69\x1c\x69\x1d\x69\x1e\x69\x21\x69\x22\x69\x23\x69\x25\x00\x00\x00\x00", /* 9800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x26\x69\x27\x69\x28\x69\x29\x69\x2a\x69\x2b\x69\x2c\x69\x2e\x69\x2f\x69\x31\x69\x32\x69\x33\x69\x35\x69\x36\x69\x37\x69\x38\x69\x3a\x69\x3b\x69\x3c\x69\x3e\x69\x40\x69\x41\x69\x43\x69\x44\x69\x45\x69\x46\x69\x47\x69\x48\x69\x49\x69\x4a\x69\x4b\x69\x4c\x69\x4d\x69\x4e\x69\x4f\x69\x50\x69\x51\x69\x52\x69\x53\x69\x55\x69\x56\x69\x58\x69\x59\x69\x5b\x69\x5c\x69\x5f\x69\x61\x69\x62\x69\x64\x69\x65\x69\x67\x69\x68\x69\x69\x69\x6a\x69\x6c\x69\x6d\x69\x6f\x69\x70\x69\x72\x69\x73\x69\x74\x69\x75\x69\x76", /* 9880 */ "\x00\x00\x69\x7a\x69\x7b\x69\x7d\x69\x7e\x69\x7f\x69\x81\x69\x83\x69\x85\x69\x8a\x69\x8b\x69\x8c\x69\x8e\x69\x8f\x69\x90\x69\x91\x69\x92\x69\x93\x69\x96\x69\x97\x69\x99\x69\x9a\x69\x9d\x69\x9e\x69\x9f\x69\xa0\x69\xa1\x69\xa2\x69\xa3\x69\xa4\x69\xa5\x69\xa6\x69\xa9\x69\xaa\x69\xac\x69\xae\x69\xaf\x69\xb0\x69\xb2\x69\xb3\x69\xb5\x69\xb6\x69\xb8\x69\xb9\x69\xba\x69\xbc\x69\xbd\x69\xbe\x69\xbf\x69\xc0\x69\xc2\x69\xc3\x69\xc4\x69\xc5\x69\xc6\x69\xc7\x69\xc8\x69\xc9\x69\xcb\x69\xcd\x69\xcf\x69\xd1\x69\xd2\x69\xd3\x69\xd5\x69\xd6\x69\xd7\x69\xd8\x69\xd9\x69\xda\x69\xdc\x69\xdd\x69\xde\x69\xe1\x69\xe2\x69\xe3\x69\xe4\x69\xe5\x69\xe6\x69\xe7\x69\xe8\x69\xe9\x69\xea\x69\xeb\x69\xec\x69\xee\x69\xef\x69\xf0\x69\xf1\x69\xf3\x69\xf4\x69\xf5\x69\xf6\x69\xf7\x69\xf8\x69\xf9\x69\xfa\x69\xfb\x69\xfc\x69\xfe\x6a\x00\x6a\x01\x6a\x02\x6a\x03\x6a\x04\x6a\x05\x6a\x06\x6a\x07\x6a\x08\x6a\x09\x6a\x0b\x6a\x0c\x6a\x0d\x6a\x0e\x6a\x0f\x6a\x10\x6a\x11\x6a\x12\x6a\x13\x6a\x14\x6a\x15\x6a\x16\x6a\x19\x6a\x1a\x6a\x1b\x6a\x1c\x00\x00\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1d\x6a\x1e\x6a\x20\x6a\x22\x6a\x23\x6a\x24\x6a\x25\x6a\x26\x6a\x27\x6a\x29\x6a\x2b\x6a\x2c\x6a\x2d\x6a\x2e\x6a\x30\x6a\x32\x6a\x33\x6a\x34\x6a\x36\x6a\x37\x6a\x38\x6a\x39\x6a\x3a\x6a\x3b\x6a\x3c\x6a\x3f\x6a\x40\x6a\x41\x6a\x42\x6a\x43\x6a\x45\x6a\x46\x6a\x48\x6a\x49\x6a\x4a\x6a\x4b\x6a\x4c\x6a\x4d\x6a\x4e\x6a\x4f\x6a\x51\x6a\x52\x6a\x53\x6a\x54\x6a\x55\x6a\x56\x6a\x57\x6a\x5a\x6a\x5c\x6a\x5d\x6a\x5e\x6a\x5f\x6a\x60\x6a\x62\x6a\x63\x6a\x64\x6a\x66\x6a\x67\x6a\x68\x6a\x69\x6a\x6a\x6a\x6b\x6a\x6c", /* 9980 */ "\x00\x00\x6a\x6d\x6a\x6e\x6a\x6f\x6a\x70\x6a\x72\x6a\x73\x6a\x74\x6a\x75\x6a\x76\x6a\x77\x6a\x78\x6a\x7a\x6a\x7b\x6a\x7d\x6a\x7e\x6a\x7f\x6a\x81\x6a\x82\x6a\x83\x6a\x85\x6a\x86\x6a\x87\x6a\x88\x6a\x89\x6a\x8a\x6a\x8b\x6a\x8c\x6a\x8d\x6a\x8f\x6a\x92\x6a\x93\x6a\x94\x6a\x95\x6a\x96\x6a\x98\x6a\x99\x6a\x9a\x6a\x9b\x6a\x9c\x6a\x9d\x6a\x9e\x6a\x9f\x6a\xa1\x6a\xa2\x6a\xa3\x6a\xa4\x6a\xa5\x6a\xa6\x6a\xa7\x6a\xa8\x6a\xaa\x6a\xad\x6a\xae\x6a\xaf\x6a\xb0\x6a\xb1\x6a\xb2\x6a\xb3\x6a\xb4\x6a\xb5\x6a\xb6\x6a\xb7\x6a\xb8\x6a\xb9\x6a\xba\x6a\xbb\x6a\xbc\x6a\xbd\x6a\xbe\x6a\xbf\x6a\xc0\x6a\xc1\x6a\xc2\x6a\xc3\x6a\xc4\x6a\xc5\x6a\xc6\x6a\xc7\x6a\xc8\x6a\xc9\x6a\xca\x6a\xcb\x6a\xcc\x6a\xcd\x6a\xce\x6a\xcf\x6a\xd0\x6a\xd1\x6a\xd2\x6a\xd3\x6a\xd4\x6a\xd5\x6a\xd6\x6a\xd7\x6a\xd8\x6a\xd9\x6a\xda\x6a\xdb\x6a\xdc\x6a\xdd\x6a\xde\x6a\xdf\x6a\xe0\x6a\xe1\x6a\xe2\x6a\xe3\x6a\xe4\x6a\xe5\x6a\xe6\x6a\xe7\x6a\xe8\x6a\xe9\x6a\xea\x6a\xeb\x6a\xec\x6a\xed\x6a\xee\x6a\xef\x6a\xf0\x6a\xf1\x6a\xf2\x6a\xf3\x6a\xf4\x6a\xf5\x6a\xf6\x00\x00\x00\x00", /* 9a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf7\x6a\xf8\x6a\xf9\x6a\xfa\x6a\xfb\x6a\xfc\x6a\xfd\x6a\xfe\x6a\xff\x6b\x00\x6b\x01\x6b\x02\x6b\x03\x6b\x04\x6b\x05\x6b\x06\x6b\x07\x6b\x08\x6b\x09\x6b\x0a\x6b\x0b\x6b\x0c\x6b\x0d\x6b\x0e\x6b\x0f\x6b\x10\x6b\x11\x6b\x12\x6b\x13\x6b\x14\x6b\x15\x6b\x16\x6b\x17\x6b\x18\x6b\x19\x6b\x1a\x6b\x1b\x6b\x1c\x6b\x1d\x6b\x1e\x6b\x1f\x6b\x25\x6b\x26\x6b\x28\x6b\x29\x6b\x2a\x6b\x2b\x6b\x2c\x6b\x2d\x6b\x2e\x6b\x2f\x6b\x30\x6b\x31\x6b\x33\x6b\x34\x6b\x35\x6b\x36\x6b\x38\x6b\x3b\x6b\x3c\x6b\x3d\x6b\x3f\x6b\x40", /* 9a80 */ "\x00\x00\x6b\x41\x6b\x42\x6b\x44\x6b\x45\x6b\x48\x6b\x4a\x6b\x4b\x6b\x4d\x6b\x4e\x6b\x4f\x6b\x50\x6b\x51\x6b\x52\x6b\x53\x6b\x54\x6b\x55\x6b\x56\x6b\x57\x6b\x58\x6b\x5a\x6b\x5b\x6b\x5c\x6b\x5d\x6b\x5e\x6b\x5f\x6b\x60\x6b\x61\x6b\x68\x6b\x69\x6b\x6b\x6b\x6c\x6b\x6d\x6b\x6e\x6b\x6f\x6b\x70\x6b\x71\x6b\x72\x6b\x73\x6b\x74\x6b\x75\x6b\x76\x6b\x77\x6b\x78\x6b\x7a\x6b\x7d\x6b\x7e\x6b\x7f\x6b\x80\x6b\x85\x6b\x88\x6b\x8c\x6b\x8e\x6b\x8f\x6b\x90\x6b\x91\x6b\x94\x6b\x95\x6b\x97\x6b\x98\x6b\x99\x6b\x9c\x6b\x9d\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xa2\x6b\xa3\x6b\xa4\x6b\xa5\x6b\xa6\x6b\xa7\x6b\xa8\x6b\xa9\x6b\xab\x6b\xac\x6b\xad\x6b\xae\x6b\xaf\x6b\xb0\x6b\xb1\x6b\xb2\x6b\xb6\x6b\xb8\x6b\xb9\x6b\xba\x6b\xbb\x6b\xbc\x6b\xbd\x6b\xbe\x6b\xc0\x6b\xc3\x6b\xc4\x6b\xc6\x6b\xc7\x6b\xc8\x6b\xc9\x6b\xca\x6b\xcc\x6b\xce\x6b\xd0\x6b\xd1\x6b\xd8\x6b\xda\x6b\xdc\x6b\xdd\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe2\x6b\xe3\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x6b\xe9\x6b\xec\x6b\xed\x6b\xee\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf4\x6b\xf6\x6b\xf7\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xf8\x6b\xfa\x6b\xfb\x6b\xfc\x6b\xfe\x6b\xff\x6c\x00\x6c\x01\x6c\x02\x6c\x03\x6c\x04\x6c\x08\x6c\x09\x6c\x0a\x6c\x0b\x6c\x0c\x6c\x0e\x6c\x12\x6c\x17\x6c\x1c\x6c\x1d\x6c\x1e\x6c\x20\x6c\x23\x6c\x25\x6c\x2b\x6c\x2c\x6c\x2d\x6c\x31\x6c\x33\x6c\x36\x6c\x37\x6c\x39\x6c\x3a\x6c\x3b\x6c\x3c\x6c\x3e\x6c\x3f\x6c\x43\x6c\x44\x6c\x45\x6c\x48\x6c\x4b\x6c\x4c\x6c\x4d\x6c\x4e\x6c\x4f\x6c\x51\x6c\x52\x6c\x53\x6c\x56\x6c\x58\x6c\x59\x6c\x5a\x6c\x62\x6c\x63\x6c\x65\x6c\x66\x6c\x67\x6c\x6b\x6c\x6c\x6c\x6d\x6c\x6e", /* 9b80 */ "\x00\x00\x6c\x6f\x6c\x71\x6c\x73\x6c\x75\x6c\x77\x6c\x78\x6c\x7a\x6c\x7b\x6c\x7c\x6c\x7f\x6c\x80\x6c\x84\x6c\x87\x6c\x8a\x6c\x8b\x6c\x8d\x6c\x8e\x6c\x91\x6c\x92\x6c\x95\x6c\x96\x6c\x97\x6c\x98\x6c\x9a\x6c\x9c\x6c\x9d\x6c\x9e\x6c\xa0\x6c\xa2\x6c\xa8\x6c\xac\x6c\xaf\x6c\xb0\x6c\xb4\x6c\xb5\x6c\xb6\x6c\xb7\x6c\xba\x6c\xc0\x6c\xc1\x6c\xc2\x6c\xc3\x6c\xc6\x6c\xc7\x6c\xc8\x6c\xcb\x6c\xcd\x6c\xce\x6c\xcf\x6c\xd1\x6c\xd2\x6c\xd8\x6c\xd9\x6c\xda\x6c\xdc\x6c\xdd\x6c\xdf\x6c\xe4\x6c\xe6\x6c\xe7\x6c\xe9\x6c\xec\x6c\xed\x6c\xf2\x6c\xf4\x6c\xf9\x6c\xff\x6d\x00\x6d\x02\x6d\x03\x6d\x05\x6d\x06\x6d\x08\x6d\x09\x6d\x0a\x6d\x0d\x6d\x0f\x6d\x10\x6d\x11\x6d\x13\x6d\x14\x6d\x15\x6d\x16\x6d\x18\x6d\x1c\x6d\x1d\x6d\x1f\x6d\x20\x6d\x21\x6d\x22\x6d\x23\x6d\x24\x6d\x26\x6d\x28\x6d\x29\x6d\x2c\x6d\x2d\x6d\x2f\x6d\x30\x6d\x34\x6d\x36\x6d\x37\x6d\x38\x6d\x3a\x6d\x3f\x6d\x40\x6d\x42\x6d\x44\x6d\x49\x6d\x4c\x6d\x50\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x5b\x6d\x5d\x6d\x5f\x6d\x61\x6d\x62\x6d\x64\x6d\x65\x6d\x67\x6d\x68\x6d\x6b\x00\x00\x00\x00", /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x6c\x6d\x6d\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x75\x6d\x76\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x83\x6d\x84\x6d\x86\x6d\x87\x6d\x8a\x6d\x8b\x6d\x8d\x6d\x8f\x6d\x90\x6d\x92\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9c\x6d\xa2\x6d\xa5\x6d\xac\x6d\xad\x6d\xb0\x6d\xb1\x6d\xb3\x6d\xb4\x6d\xb6\x6d\xb7\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc8\x6d\xc9\x6d\xca\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd7", /* 9c80 */ "\x00\x00\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdf\x6d\xe2\x6d\xe3\x6d\xe5\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xed\x6d\xef\x6d\xf0\x6d\xf2\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf8\x6d\xfa\x6d\xfd\x6d\xfe\x6d\xff\x6e\x00\x6e\x01\x6e\x02\x6e\x03\x6e\x04\x6e\x06\x6e\x07\x6e\x08\x6e\x09\x6e\x0b\x6e\x0f\x6e\x12\x6e\x13\x6e\x15\x6e\x18\x6e\x19\x6e\x1b\x6e\x1c\x6e\x1e\x6e\x1f\x6e\x22\x6e\x26\x6e\x27\x6e\x28\x6e\x2a\x6e\x2c\x6e\x2e\x6e\x30\x6e\x31\x6e\x33\x6e\x35\x6e\x36\x6e\x37\x6e\x39\x6e\x3b\x6e\x3c\x6e\x3d\x6e\x3e\x6e\x3f\x6e\x40\x6e\x41\x6e\x42\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x55\x6e\x57\x6e\x59\x6e\x5a\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6c\x6e\x6d\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x80\x6e\x81\x6e\x82\x6e\x84\x6e\x87\x6e\x88\x6e\x8a\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x91\x6e\x92\x00\x00\x00\x00", /* 9d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9d\x6e\x9e\x6e\xa0\x6e\xa1\x6e\xa3\x6e\xa4\x6e\xa6\x6e\xa8\x6e\xa9\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xb0\x6e\xb3\x6e\xb5\x6e\xb8\x6e\xb9\x6e\xbc\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcc\x6e\xcd\x6e\xce\x6e\xd0\x6e\xd2\x6e\xd6\x6e\xd8\x6e\xd9\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xe3\x6e\xe7\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf5\x6e\xf6\x6e\xf7", /* 9d80 */ "\x00\x00\x6e\xf8\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6e\xff\x6f\x00\x6f\x01\x6f\x03\x6f\x04\x6f\x05\x6f\x07\x6f\x08\x6f\x0a\x6f\x0b\x6f\x0c\x6f\x0d\x6f\x0e\x6f\x10\x6f\x11\x6f\x12\x6f\x16\x6f\x17\x6f\x18\x6f\x19\x6f\x1a\x6f\x1b\x6f\x1c\x6f\x1d\x6f\x1e\x6f\x1f\x6f\x21\x6f\x22\x6f\x23\x6f\x25\x6f\x26\x6f\x27\x6f\x28\x6f\x2c\x6f\x2e\x6f\x30\x6f\x32\x6f\x34\x6f\x35\x6f\x37\x6f\x38\x6f\x39\x6f\x3a\x6f\x3b\x6f\x3c\x6f\x3d\x6f\x3f\x6f\x40\x6f\x41\x6f\x42\x6f\x43\x6f\x44\x6f\x45\x6f\x48\x6f\x49\x6f\x4a\x6f\x4c\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5d\x6f\x5f\x6f\x60\x6f\x61\x6f\x63\x6f\x64\x6f\x65\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6f\x6f\x70\x6f\x71\x6f\x73\x6f\x75\x6f\x76\x6f\x77\x6f\x79\x6f\x7b\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x85\x6f\x86\x6f\x87\x6f\x8a\x6f\x8b\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9d\x6f\x9e\x00\x00\x00\x00", /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x9f\x6f\xa0\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb4\x6f\xb5\x6f\xb7\x6f\xb8\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc1\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xca\x6f\xcb\x6f\xcc\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xdf\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea", /* 9e80 */ "\x00\x00\x6f\xeb\x6f\xec\x6f\xed\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x6f\xff\x70\x00\x70\x01\x70\x02\x70\x03\x70\x04\x70\x05\x70\x06\x70\x07\x70\x08\x70\x09\x70\x0a\x70\x0b\x70\x0c\x70\x0d\x70\x0e\x70\x0f\x70\x10\x70\x12\x70\x13\x70\x14\x70\x15\x70\x16\x70\x17\x70\x18\x70\x19\x70\x1c\x70\x1d\x70\x1e\x70\x1f\x70\x20\x70\x21\x70\x22\x70\x24\x70\x25\x70\x26\x70\x27\x70\x28\x70\x29\x70\x2a\x70\x2b\x70\x2c\x70\x2d\x70\x2e\x70\x2f\x70\x30\x70\x31\x70\x32\x70\x33\x70\x34\x70\x36\x70\x37\x70\x38\x70\x3a\x70\x3b\x70\x3c\x70\x3d\x70\x3e\x70\x3f\x70\x40\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4d\x70\x4e\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6e\x70\x71\x70\x72\x70\x73\x70\x74\x70\x77\x70\x79\x70\x7a\x00\x00\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x7b\x70\x7d\x70\x81\x70\x82\x70\x83\x70\x84\x70\x86\x70\x87\x70\x88\x70\x8b\x70\x8c\x70\x8d\x70\x8f\x70\x90\x70\x91\x70\x93\x70\x97\x70\x98\x70\x9a\x70\x9b\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xb0\x70\xb2\x70\xb4\x70\xb5\x70\xb6\x70\xba\x70\xbe\x70\xbf\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc9\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xda\x70\xdc\x70\xdd\x70\xde", /* 9f80 */ "\x00\x00\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe5\x70\xea\x70\xee\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf8\x70\xfa\x70\xfb\x70\xfc\x70\xfe\x70\xff\x71\x00\x71\x01\x71\x02\x71\x03\x71\x04\x71\x05\x71\x06\x71\x07\x71\x08\x71\x0b\x71\x0c\x71\x0d\x71\x0e\x71\x0f\x71\x11\x71\x12\x71\x14\x71\x17\x71\x1b\x71\x1c\x71\x1d\x71\x1e\x71\x1f\x71\x20\x71\x21\x71\x22\x71\x23\x71\x24\x71\x25\x71\x27\x71\x28\x71\x29\x71\x2a\x71\x2b\x71\x2c\x71\x2d\x71\x2e\x71\x32\x71\x33\x71\x34\x71\x35\x71\x37\x71\x38\x71\x39\x71\x3a\x71\x3b\x71\x3c\x71\x3d\x71\x3e\x71\x3f\x71\x40\x71\x41\x71\x42\x71\x43\x71\x44\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4b\x71\x4d\x71\x4f\x71\x50\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5d\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x65\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6f\x71\x70\x71\x71\x71\x74\x71\x75\x71\x76\x71\x77\x71\x79\x71\x7b\x71\x7c\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x85\x71\x86\x71\x87\x00\x00\x00\x00", /* a000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x88\x71\x89\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x90\x71\x91\x71\x92\x71\x93\x71\x95\x71\x96\x71\x97\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa9\x71\xaa\x71\xab\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb4\x71\xb6\x71\xb7\x71\xb8\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xcf\x71\xd0\x71\xd1\x71\xd2\x71\xd3\x71\xd6", /* a080 */ "\x00\x00\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe6\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x71\xff\x72\x00\x72\x01\x72\x02\x72\x03\x72\x04\x72\x05\x72\x07\x72\x08\x72\x09\x72\x0a\x72\x0b\x72\x0c\x72\x0d\x72\x0e\x72\x0f\x72\x10\x72\x11\x72\x12\x72\x13\x72\x14\x72\x15\x72\x16\x72\x17\x72\x18\x72\x19\x72\x1a\x72\x1b\x72\x1c\x72\x1e\x72\x1f\x72\x20\x72\x21\x72\x22\x72\x23\x72\x24\x72\x25\x72\x26\x72\x27\x72\x29\x72\x2b\x72\x2d\x72\x2e\x72\x2f\x72\x32\x72\x33\x72\x34\x72\x3a\x72\x3c\x72\x3e\x72\x40\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x49\x72\x4a\x72\x4b\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x53\x72\x54\x72\x55\x72\x57\x72\x58\x72\x5a\x72\x5c\x72\x5e\x72\x60\x72\x63\x72\x64\x72\x65\x72\x68\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x70\x72\x71\x72\x73\x72\x74\x72\x76\x72\x77\x72\x78\x72\x7b\x72\x7c\x00\x00\x00\x00", /* a100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x7d\x72\x82\x72\x83\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8c\x72\x8e\x72\x90\x72\x91\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xae\x72\xb1\x72\xb2\x72\xb3\x72\xb5\x72\xba\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc5\x72\xc6\x72\xc7\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcf\x72\xd1\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd8\x72\xda", /* a180 */ "\x00\x00\x72\xdb\x72\xdc\x72\xdd\x72\xdf\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xea\x72\xeb\x72\xf5\x72\xf6\x72\xf9\x72\xfd\x72\xfe\x72\xff\x73\x00\x73\x02\x73\x04\x73\x05\x73\x06\x73\x07\x73\x08\x73\x09\x73\x0b\x73\x0c\x73\x0d\x73\x0f\x73\x10\x73\x11\x73\x12\x73\x14\x73\x18\x73\x19\x73\x1a\x73\x1f\x73\x20\x73\x23\x73\x24\x73\x26\x73\x27\x73\x28\x73\x2d\x73\x2f\x73\x30\x73\x32\x73\x33\x73\x35\x73\x36\x73\x3a\x73\x3b\x73\x3c\x73\x3d\x73\x40\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4e\x73\x4f\x73\x51\x73\x53\x73\x54\x73\x55\x73\x56\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6e\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c\x73\x7d\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x85\x73\x86\x73\x88\x73\x8a\x73\x8c\x73\x8d\x73\x8f\x73\x90\x73\x92\x73\x93\x73\x94\x00\x00\x00\x00", /* a200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x95\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9c\x73\x9d\x73\x9e\x73\xa0\x73\xa1\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xaa\x73\xac\x73\xad\x73\xb1\x73\xb4\x73\xb5\x73\xb6\x73\xb8\x73\xb9\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc1\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xcb\x73\xcc\x73\xce\x73\xd2\x73\xd3\x73\xd4\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xdf\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe6\x73\xe8\x73\xea\x73\xeb\x73\xec\x73\xee\x73\xef\x73\xf0\x73\xf1", /* a280 */ "\x00\x00\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc\x73\xfd\x73\xfe\x73\xff\x74\x00\x74\x01\x74\x02\x74\x04\x74\x07\x74\x08\x74\x0b\x74\x0c\x74\x0d\x74\x0e\x74\x11\x74\x12\x74\x13\x74\x14\x74\x15\x74\x16\x74\x17\x74\x18\x74\x19\x74\x1c\x74\x1d\x74\x1e\x74\x1f\x74\x20\x74\x21\x74\x23\x74\x24\x74\x27\x74\x29\x74\x2b\x74\x2d\x74\x2f\x74\x31\x74\x32\x74\x37\x74\x38\x74\x39\x74\x3a\x74\x3b\x74\x3d\x74\x3e\x74\x3f\x74\x40\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x56\x74\x58\x74\x5d\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6e\x74\x6f\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7f\x74\x82\x74\x84\x74\x85\x74\x86\x74\x88\x74\x89\x74\x8a\x74\x8c\x74\x8d\x74\x8f\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96\x74\x97\x74\x98\x74\x99\x74\x9a\x00\x00\x00\x00", /* a300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x9b\x74\x9d\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xbb\x74\xbc\x74\xbd\x74\xbe\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdd\x74\xdf\x74\xe1\x74\xe5\x74\xe7", /* a380 */ "\x00\x00\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf5\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x00\x75\x01\x75\x02\x75\x03\x75\x05\x75\x06\x75\x07\x75\x08\x75\x09\x75\x0a\x75\x0b\x75\x0c\x75\x0e\x75\x10\x75\x12\x75\x14\x75\x15\x75\x16\x75\x17\x75\x1b\x75\x1d\x75\x1e\x75\x20\x75\x21\x75\x22\x75\x23\x75\x24\x75\x26\x75\x27\x75\x2a\x75\x2e\x75\x34\x75\x36\x75\x39\x75\x3c\x75\x3d\x75\x3f\x75\x41\x75\x42\x75\x43\x75\x44\x75\x46\x75\x47\x75\x49\x75\x4a\x75\x4d\x75\x50\x75\x51\x75\x52\x75\x53\x75\x55\x75\x56\x75\x57\x75\x58\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x67\x75\x68\x75\x69\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x73\x75\x75\x75\x76\x75\x77\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x80\x75\x81\x75\x82\x75\x84\x75\x85\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8c\x75\x8d\x75\x8e\x75\x90\x75\x93\x75\x95\x75\x98\x75\x9b\x75\x9c\x75\x9e\x75\xa2\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xad\x00\x00\x00\x00", /* a400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xb6\x75\xb7\x75\xba\x75\xbb\x75\xbf\x75\xc0\x75\xc1\x75\xc6\x75\xcb\x75\xcc\x75\xce\x75\xcf\x75\xd0\x75\xd1\x75\xd3\x75\xd7\x75\xd9\x75\xda\x75\xdc\x75\xdd\x75\xdf\x75\xe0\x75\xe1\x75\xe5\x75\xe9\x75\xec\x75\xed\x75\xee\x75\xef\x75\xf2\x75\xf3\x75\xf5\x75\xf6\x75\xf7\x75\xf8\x75\xfa\x75\xfb\x75\xfd\x75\xfe\x76\x02\x76\x04\x76\x06\x76\x07\x76\x08\x76\x09\x76\x0b\x76\x0d\x76\x0e\x76\x0f\x76\x11\x76\x12\x76\x13\x76\x14\x76\x16\x76\x1a\x76\x1c\x76\x1d\x76\x1e\x76\x21\x76\x23\x76\x27\x76\x28\x76\x2c", /* a480 */ "\x00\x00\x76\x2e\x76\x2f\x76\x31\x76\x32\x76\x36\x76\x37\x76\x39\x76\x3a\x76\x3b\x76\x3d\x76\x41\x76\x42\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x55\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5d\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6c\x76\x6d\x76\x6e\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x79\x76\x7a\x76\x7c\x76\x7f\x76\x80\x76\x81\x76\x83\x76\x85\x76\x89\x76\x8a\x76\x8c\x76\x8d\x76\x8f\x76\x90\x76\x92\x76\x94\x76\x95\x76\x97\x76\x98\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xaf\x76\xb0\x76\xb3\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xc0\x76\xc1\x76\xc3\x76\xc4\x76\xc7\x76\xc9\x76\xcb\x76\xcc\x76\xd3\x76\xd5\x76\xd9\x76\xda\x76\xdc\x76\xdd\x76\xde\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x00\x00\x00\x00", /* a500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\xe4\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xf0\x76\xf3\x76\xf5\x76\xf6\x76\xf7\x76\xfa\x76\xfb\x76\xfd\x76\xff\x77\x00\x77\x02\x77\x03\x77\x05\x77\x06\x77\x0a\x77\x0c\x77\x0e\x77\x0f\x77\x10\x77\x11\x77\x12\x77\x13\x77\x14\x77\x15\x77\x16\x77\x17\x77\x18\x77\x1b\x77\x1c\x77\x1d\x77\x1e\x77\x21\x77\x23\x77\x24\x77\x25\x77\x27\x77\x2a\x77\x2b\x77\x2c\x77\x2e\x77\x30\x77\x31\x77\x32\x77\x33\x77\x34\x77\x39\x77\x3b\x77\x3d\x77\x3e\x77\x3f\x77\x42\x77\x44\x77\x45\x77\x46", /* a580 */ "\x00\x00\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x64\x77\x67\x77\x69\x77\x6a\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x7a\x77\x7b\x77\x7c\x77\x81\x77\x82\x77\x83\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8f\x77\x90\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\xa1\x77\xa3\x77\xa4\x77\xa6\x77\xa8\x77\xab\x77\xad\x77\xae\x77\xaf\x77\xb1\x77\xb2\x77\xb4\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbc\x77\xbe\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd8\x77\xd9\x77\xda\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe4\x77\xe6\x77\xe8\x77\xea\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf4\x77\xf5\x77\xf7\x77\xf9\x77\xfa\x00\x00\x00\x00", /* a600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xfb\x77\xfc\x78\x03\x78\x04\x78\x05\x78\x06\x78\x07\x78\x08\x78\x0a\x78\x0b\x78\x0e\x78\x0f\x78\x10\x78\x13\x78\x15\x78\x19\x78\x1b\x78\x1e\x78\x20\x78\x21\x78\x22\x78\x24\x78\x28\x78\x2a\x78\x2b\x78\x2e\x78\x2f\x78\x31\x78\x32\x78\x33\x78\x35\x78\x36\x78\x3d\x78\x3f\x78\x41\x78\x42\x78\x43\x78\x44\x78\x46\x78\x48\x78\x49\x78\x4a\x78\x4b\x78\x4d\x78\x4f\x78\x51\x78\x53\x78\x54\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67", /* a680 */ "\x00\x00\x78\x68\x78\x69\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7d\x78\x7e\x78\x7f\x78\x80\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x88\x78\x8a\x78\x8b\x78\x8f\x78\x90\x78\x92\x78\x94\x78\x95\x78\x96\x78\x99\x78\x9d\x78\x9e\x78\xa0\x78\xa2\x78\xa4\x78\xa6\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbf\x78\xc0\x78\xc2\x78\xc3\x78\xc4\x78\xc6\x78\xc7\x78\xc8\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd1\x78\xd2\x78\xd3\x78\xd6\x78\xd7\x78\xd8\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe9\x78\xea\x78\xeb\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf3\x78\xf5\x78\xf6\x78\xf8\x78\xf9\x78\xfb\x78\xfc\x78\xfd\x78\xfe\x78\xff\x79\x00\x79\x02\x79\x03\x79\x04\x79\x06\x79\x07\x79\x08\x79\x09\x79\x0a\x79\x0b\x79\x0c\x79\x0d\x79\x0e\x79\x0f\x79\x10\x79\x11\x79\x12\x79\x14\x79\x15\x00\x00\x00\x00", /* a700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x16\x79\x17\x79\x18\x79\x19\x79\x1a\x79\x1b\x79\x1c\x79\x1d\x79\x1f\x79\x20\x79\x21\x79\x22\x79\x23\x79\x25\x79\x26\x79\x27\x79\x28\x79\x29\x79\x2a\x79\x2b\x79\x2c\x79\x2d\x79\x2e\x79\x2f\x79\x30\x79\x31\x79\x32\x79\x33\x79\x35\x79\x36\x79\x37\x79\x38\x79\x39\x79\x3d\x79\x3f\x79\x42\x79\x43\x79\x44\x79\x45\x79\x47\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x54\x79\x55\x79\x58\x79\x59\x79\x61\x79\x63\x79\x64\x79\x66\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6e\x79\x70", /* a780 */ "\x00\x00\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x79\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x82\x79\x83\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8b\x79\x8c\x79\x8d\x79\x8e\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xbc\x79\xbf\x79\xc2\x79\xc4\x79\xc5\x79\xc7\x79\xc8\x79\xca\x79\xcc\x79\xce\x79\xcf\x79\xd0\x79\xd3\x79\xd4\x79\xd6\x79\xd7\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xe0\x79\xe1\x79\xe2\x79\xe5\x79\xe8\x79\xea\x79\xec\x79\xee\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf9\x79\xfa\x79\xfc\x79\xfe\x79\xff\x7a\x01\x7a\x04\x7a\x05\x7a\x07\x7a\x08\x7a\x09\x7a\x0a\x7a\x0c\x7a\x0f\x7a\x10\x7a\x11\x7a\x12\x7a\x13\x7a\x15\x7a\x16\x7a\x18\x7a\x19\x7a\x1b\x7a\x1c\x7a\x1d\x7a\x1f\x7a\x21\x7a\x22\x00\x00\x00\x00", /* a800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x24\x7a\x25\x7a\x26\x7a\x27\x7a\x28\x7a\x29\x7a\x2a\x7a\x2b\x7a\x2c\x7a\x2d\x7a\x2e\x7a\x2f\x7a\x30\x7a\x31\x7a\x32\x7a\x34\x7a\x35\x7a\x36\x7a\x38\x7a\x3a\x7a\x3e\x7a\x40\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c", /* a880 */ "\x00\x00\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x71\x7a\x72\x7a\x73\x7a\x75\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x82\x7a\x85\x7a\x87\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8e\x7a\x8f\x7a\x90\x7a\x93\x7a\x94\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9e\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa7\x7a\xa9\x7a\xaa\x7a\xab\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd7\x7a\xd8\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xe1\x7a\xe2\x7a\xe4\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xee\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xfb\x7a\xfc\x7a\xfe\x7b\x00\x7b\x01\x7b\x02\x7b\x05\x7b\x07\x7b\x09\x7b\x0c\x7b\x0d\x7b\x0e\x7b\x10\x7b\x12\x7b\x13\x7b\x16\x7b\x17\x7b\x18\x7b\x1a\x7b\x1c\x7b\x1d\x7b\x1f\x7b\x21\x7b\x22\x7b\x23\x7b\x27\x7b\x29\x7b\x2d\x00\x00\x00\x00", /* a900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x2f\x7b\x30\x7b\x32\x7b\x34\x7b\x35\x7b\x36\x7b\x37\x7b\x39\x7b\x3b\x7b\x3d\x7b\x3f\x7b\x40\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x46\x7b\x48\x7b\x4a\x7b\x4d\x7b\x4e\x7b\x53\x7b\x55\x7b\x57\x7b\x59\x7b\x5c\x7b\x5e\x7b\x5f\x7b\x61\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6f\x7b\x70\x7b\x73\x7b\x74\x7b\x76\x7b\x78\x7b\x7a\x7b\x7c\x7b\x7d\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8e\x7b\x8f", /* a980 */ "\x00\x00\x7b\x91\x7b\x92\x7b\x93\x7b\x96\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb2\x7b\xb3\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd2\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xdb\x7b\xdc\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xeb\x7b\xec\x7b\xed\x7b\xef\x7b\xf0\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfd\x7b\xff\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x7c\x04\x7c\x05\x7c\x06\x7c\x08\x7c\x09\x7c\x0a\x7c\x0d\x7c\x0e\x7c\x10\x7c\x11\x7c\x12\x7c\x13\x7c\x14\x7c\x15\x7c\x17\x7c\x18\x7c\x19\x7c\x1a\x7c\x1b\x7c\x1c\x7c\x1d\x7c\x1e\x7c\x20\x7c\x21\x7c\x22\x7c\x23\x7c\x24\x7c\x25\x7c\x28\x7c\x29\x7c\x2b\x7c\x2c\x7c\x2d\x7c\x2e\x7c\x2f\x7c\x30\x7c\x31\x7c\x32\x7c\x33\x7c\x34\x7c\x35\x7c\x36\x7c\x37\x7c\x39\x7c\x3a\x7c\x3b\x00\x00\x00\x00", /* aa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x3c\x7c\x3d\x7c\x3e\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7e\x7c\x7f\x7c\x80\x7c\x81\x7c\x82\x7c\x83", /* aa80 */ "\x00\x00\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x93\x7c\x94\x7c\x96\x7c\x99\x7c\x9a\x7c\x9b\x7c\xa0\x7c\xa1\x7c\xa3\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xab\x7c\xac\x7c\xad\x7c\xaf\x7c\xb0\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xba\x7c\xbb\x7c\xbf\x7c\xc0\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc6\x7c\xc9\x7c\xcb\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd8\x7c\xda\x7c\xdb\x7c\xdd\x7c\xde\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf9\x7c\xfa\x7c\xfc\x7c\xfd\x7c\xfe\x7c\xff\x7d\x00\x7d\x01\x7d\x02\x7d\x03\x7d\x04\x7d\x05\x7d\x06\x7d\x07\x7d\x08\x7d\x09\x7d\x0b\x7d\x0c\x7d\x0d\x7d\x0e\x7d\x0f\x7d\x10\x7d\x11\x7d\x12\x7d\x13\x7d\x14\x7d\x15\x7d\x16\x7d\x17\x7d\x18\x7d\x19\x7d\x1a\x7d\x1b\x7d\x1c\x7d\x1d\x7d\x1e\x7d\x1f\x7d\x21\x7d\x23\x7d\x24\x7d\x25\x7d\x26\x7d\x28\x7d\x29\x7d\x2a\x7d\x2c\x7d\x2d\x00\x00\x00\x00", /* ab00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x2e\x7d\x30\x7d\x31\x7d\x32\x7d\x33\x7d\x34\x7d\x35\x7d\x36\x7d\x37\x7d\x38\x7d\x39\x7d\x3a\x7d\x3b\x7d\x3c\x7d\x3d\x7d\x3e\x7d\x3f\x7d\x40\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d", /* ab80 */ "\x00\x00\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x80\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x00\x00\x00\x00", /* ac00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7d\xfe\x7d\xff\x7e\x00\x7e\x01\x7e\x02\x7e\x03\x7e\x04\x7e\x05\x7e\x06\x7e\x07\x7e\x08\x7e\x09\x7e\x0a\x7e\x0b\x7e\x0c\x7e\x0d\x7e\x0e\x7e\x0f\x7e\x10\x7e\x11\x7e\x12\x7e\x13\x7e\x14\x7e\x15\x7e\x16\x7e\x17\x7e\x18\x7e\x19\x7e\x1a\x7e\x1b\x7e\x1c\x7e\x1d\x7e\x1e\x7e\x1f\x7e\x20\x7e\x21\x7e\x22\x7e\x23\x7e\x24\x7e\x25\x7e\x26\x7e\x27\x7e\x28\x7e\x29\x7e\x2a\x7e\x2b\x7e\x2c\x7e\x2d", /* ac80 */ "\x00\x00\x7e\x2e\x7e\x2f\x7e\x30\x7e\x31\x7e\x32\x7e\x33\x7e\x34\x7e\x35\x7e\x36\x7e\x37\x7e\x38\x7e\x39\x7e\x3a\x7e\x3c\x7e\x3d\x7e\x3e\x7e\x3f\x7e\x40\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x80\x7e\x81\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9c\x7e\x9d\x7e\x9e\x7e\xae\x7e\xb4\x7e\xbb\x7e\xbc\x7e\xd6\x7e\xe4\x7e\xec\x7e\xf9\x7f\x0a\x7f\x10\x7f\x1e\x7f\x37\x7f\x39\x7f\x3b\x7f\x3c\x7f\x3d\x7f\x3e\x00\x00\x00\x00", /* ad00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x3f\x7f\x40\x7f\x41\x7f\x43\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x52\x7f\x53\x7f\x56\x7f\x59\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x60\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6f\x7f\x70\x7f\x73\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7f\x7f\x80\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8b\x7f\x8d\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x95\x7f\x96\x7f\x97\x7f\x98", /* ad80 */ "\x00\x00\x7f\x99\x7f\x9b\x7f\x9c\x7f\xa0\x7f\xa2\x7f\xa3\x7f\xa5\x7f\xa6\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xb1\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xba\x7f\xbb\x7f\xbe\x7f\xc0\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xcb\x7f\xcd\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd6\x7f\xd7\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe7\x7f\xe8\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xef\x7f\xf2\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfd\x7f\xfe\x7f\xff\x80\x02\x80\x07\x80\x08\x80\x09\x80\x0a\x80\x0e\x80\x0f\x80\x11\x80\x13\x80\x1a\x80\x1b\x80\x1d\x80\x1e\x80\x1f\x80\x21\x80\x23\x80\x24\x80\x2b\x80\x2c\x80\x2d\x80\x2e\x80\x2f\x80\x30\x80\x32\x80\x34\x80\x39\x80\x3a\x80\x3c\x80\x3e\x80\x40\x80\x41\x80\x44\x80\x45\x80\x47\x80\x48\x80\x49\x80\x4e\x80\x4f\x80\x50\x80\x51\x80\x53\x80\x55\x80\x56\x80\x57\x80\x59\x80\x5b\x80\x5c\x80\x5d\x80\x5e\x80\x5f\x80\x60\x80\x61\x80\x62\x80\x63\x80\x64\x80\x65\x80\x66\x00\x00\x00\x00", /* ae00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x67\x80\x68\x80\x6b\x80\x6c\x80\x6d\x80\x6e\x80\x6f\x80\x70\x80\x72\x80\x73\x80\x74\x80\x75\x80\x76\x80\x77\x80\x78\x80\x79\x80\x7a\x80\x7b\x80\x7c\x80\x7d\x80\x7e\x80\x81\x80\x82\x80\x85\x80\x88\x80\x8a\x80\x8d\x80\x8e\x80\x8f\x80\x90\x80\x91\x80\x92\x80\x94\x80\x95\x80\x97\x80\x99\x80\x9e\x80\xa3\x80\xa6\x80\xa7\x80\xa8\x80\xac\x80\xb0\x80\xb3\x80\xb5\x80\xb6\x80\xb8\x80\xb9\x80\xbb\x80\xc5\x80\xc7\x80\xc8\x80\xc9\x80\xca\x80\xcb\x80\xcf\x80\xd0\x80\xd1\x80\xd2\x80\xd3\x80\xd4\x80\xd5\x80\xd8", /* ae80 */ "\x00\x00\x80\xdf\x80\xe0\x80\xe2\x80\xe3\x80\xe6\x80\xee\x80\xf5\x80\xf7\x80\xf9\x80\xfb\x80\xfe\x80\xff\x81\x00\x81\x01\x81\x03\x81\x04\x81\x05\x81\x07\x81\x08\x81\x0b\x81\x0c\x81\x15\x81\x17\x81\x19\x81\x1b\x81\x1c\x81\x1d\x81\x1f\x81\x20\x81\x21\x81\x22\x81\x23\x81\x24\x81\x25\x81\x26\x81\x27\x81\x28\x81\x29\x81\x2a\x81\x2b\x81\x2d\x81\x2e\x81\x30\x81\x33\x81\x34\x81\x35\x81\x37\x81\x39\x81\x3a\x81\x3b\x81\x3c\x81\x3d\x81\x3f\x81\x40\x81\x41\x81\x42\x81\x43\x81\x44\x81\x45\x81\x47\x81\x49\x81\x4d\x81\x4e\x81\x4f\x81\x52\x81\x56\x81\x57\x81\x58\x81\x5b\x81\x5c\x81\x5d\x81\x5e\x81\x5f\x81\x61\x81\x62\x81\x63\x81\x64\x81\x66\x81\x68\x81\x6a\x81\x6b\x81\x6c\x81\x6f\x81\x72\x81\x73\x81\x75\x81\x76\x81\x77\x81\x78\x81\x81\x81\x83\x81\x84\x81\x85\x81\x86\x81\x87\x81\x89\x81\x8b\x81\x8c\x81\x8d\x81\x8e\x81\x90\x81\x92\x81\x93\x81\x94\x81\x95\x81\x96\x81\x97\x81\x99\x81\x9a\x81\x9e\x81\x9f\x81\xa0\x81\xa1\x81\xa2\x81\xa4\x81\xa5\x81\xa7\x81\xa9\x81\xab\x81\xac\x81\xad\x81\xae\x81\xaf\x81\xb0\x81\xb1\x00\x00\x00\x00", /* af00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xb2\x81\xb4\x81\xb5\x81\xb6\x81\xb7\x81\xb8\x81\xb9\x81\xbc\x81\xbd\x81\xbe\x81\xbf\x81\xc4\x81\xc5\x81\xc7\x81\xc8\x81\xc9\x81\xcb\x81\xcd\x81\xce\x81\xcf\x81\xd0\x81\xd1\x81\xd2\x81\xd3\x81\xd4\x81\xd5\x81\xd6\x81\xd7\x81\xd8\x81\xd9\x81\xda\x81\xdb\x81\xdc\x81\xdd\x81\xde\x81\xdf\x81\xe0\x81\xe1\x81\xe2\x81\xe4\x81\xe5\x81\xe6\x81\xe8\x81\xe9\x81\xeb\x81\xee\x81\xef\x81\xf0\x81\xf1\x81\xf2\x81\xf5\x81\xf6\x81\xf7\x81\xf8\x81\xf9\x81\xfa\x81\xfd\x81\xff\x82\x03\x82\x07\x82\x08\x82\x09\x82\x0a", /* af80 */ "\x00\x00\x82\x0b\x82\x0e\x82\x0f\x82\x11\x82\x13\x82\x15\x82\x16\x82\x17\x82\x18\x82\x19\x82\x1a\x82\x1d\x82\x20\x82\x24\x82\x25\x82\x26\x82\x27\x82\x29\x82\x2e\x82\x32\x82\x3a\x82\x3c\x82\x3d\x82\x3f\x82\x40\x82\x41\x82\x42\x82\x43\x82\x45\x82\x46\x82\x48\x82\x4a\x82\x4c\x82\x4d\x82\x4e\x82\x50\x82\x51\x82\x52\x82\x53\x82\x54\x82\x55\x82\x56\x82\x57\x82\x59\x82\x5b\x82\x5c\x82\x5d\x82\x5e\x82\x60\x82\x61\x82\x62\x82\x63\x82\x64\x82\x65\x82\x66\x82\x67\x82\x69\x82\x6a\x82\x6b\x82\x6c\x82\x6d\x82\x71\x82\x75\x82\x76\x82\x77\x82\x78\x82\x7b\x82\x7c\x82\x80\x82\x81\x82\x83\x82\x85\x82\x86\x82\x87\x82\x89\x82\x8c\x82\x90\x82\x93\x82\x94\x82\x95\x82\x96\x82\x9a\x82\x9b\x82\x9e\x82\xa0\x82\xa2\x82\xa3\x82\xa7\x82\xb2\x82\xb5\x82\xb6\x82\xba\x82\xbb\x82\xbc\x82\xbf\x82\xc0\x82\xc2\x82\xc3\x82\xc5\x82\xc6\x82\xc9\x82\xd0\x82\xd6\x82\xd9\x82\xda\x82\xdd\x82\xe2\x82\xe7\x82\xe8\x82\xe9\x82\xea\x82\xec\x82\xed\x82\xee\x82\xf0\x82\xf2\x82\xf3\x82\xf5\x82\xf6\x82\xf8\x82\xfa\x82\xfc\x82\xfd\x82\xfe\x82\xff\x00\x00\x00\x00", /* b000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x83\x0a\x83\x0b\x83\x0d\x83\x10\x83\x12\x83\x13\x83\x16\x83\x18\x83\x19\x83\x1d\x83\x1e\x83\x1f\x83\x20\x83\x21\x83\x22\x83\x23\x83\x24\x83\x25\x83\x26\x83\x29\x83\x2a\x83\x2e\x83\x30\x83\x32\x83\x37\x83\x3b\x83\x3d\x83\x3e\x83\x3f\x83\x41\x83\x42\x83\x44\x83\x45\x83\x48\x83\x4a\x83\x4b\x83\x4c\x83\x4d\x83\x4e\x83\x53\x83\x55\x83\x56\x83\x57\x83\x58\x83\x59\x83\x5d\x83\x62\x83\x70\x83\x71\x83\x72\x83\x73\x83\x74\x83\x75\x83\x76\x83\x79\x83\x7a\x83\x7e\x83\x7f\x83\x80\x83\x81\x83\x82\x83\x83", /* b080 */ "\x00\x00\x83\x84\x83\x87\x83\x88\x83\x8a\x83\x8b\x83\x8c\x83\x8d\x83\x8f\x83\x90\x83\x91\x83\x94\x83\x95\x83\x96\x83\x97\x83\x99\x83\x9a\x83\x9d\x83\x9f\x83\xa1\x83\xa2\x83\xa3\x83\xa4\x83\xa5\x83\xa6\x83\xa7\x83\xac\x83\xad\x83\xae\x83\xaf\x83\xb5\x83\xbb\x83\xbe\x83\xbf\x83\xc2\x83\xc3\x83\xc4\x83\xc6\x83\xc8\x83\xc9\x83\xcb\x83\xcd\x83\xce\x83\xd0\x83\xd1\x83\xd2\x83\xd3\x83\xd5\x83\xd7\x83\xd9\x83\xda\x83\xdb\x83\xde\x83\xe2\x83\xe3\x83\xe4\x83\xe6\x83\xe7\x83\xe8\x83\xeb\x83\xec\x83\xed\x83\xee\x83\xef\x83\xf3\x83\xf4\x83\xf5\x83\xf6\x83\xf7\x83\xfa\x83\xfb\x83\xfc\x83\xfe\x83\xff\x84\x00\x84\x02\x84\x05\x84\x07\x84\x08\x84\x09\x84\x0a\x84\x10\x84\x12\x84\x13\x84\x14\x84\x15\x84\x16\x84\x17\x84\x19\x84\x1a\x84\x1b\x84\x1e\x84\x1f\x84\x20\x84\x21\x84\x22\x84\x23\x84\x29\x84\x2a\x84\x2b\x84\x2c\x84\x2d\x84\x2e\x84\x2f\x84\x30\x84\x32\x84\x33\x84\x34\x84\x35\x84\x36\x84\x37\x84\x39\x84\x3a\x84\x3b\x84\x3e\x84\x3f\x84\x40\x84\x41\x84\x42\x84\x43\x84\x44\x84\x45\x84\x47\x84\x48\x84\x49\x84\x4a\x00\x00\x00\x00", /* b100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x4b\x84\x4c\x84\x4d\x84\x4e\x84\x4f\x84\x50\x84\x52\x84\x53\x84\x54\x84\x55\x84\x56\x84\x58\x84\x5d\x84\x5e\x84\x5f\x84\x60\x84\x62\x84\x64\x84\x65\x84\x66\x84\x67\x84\x68\x84\x6a\x84\x6e\x84\x6f\x84\x70\x84\x72\x84\x74\x84\x77\x84\x79\x84\x7b\x84\x7c\x84\x7d\x84\x7e\x84\x7f\x84\x80\x84\x81\x84\x83\x84\x84\x84\x85\x84\x86\x84\x8a\x84\x8d\x84\x8f\x84\x90\x84\x91\x84\x92\x84\x93\x84\x94\x84\x95\x84\x96\x84\x98\x84\x9a\x84\x9b\x84\x9d\x84\x9e\x84\x9f\x84\xa0\x84\xa2\x84\xa3\x84\xa4\x84\xa5\x84\xa6", /* b180 */ "\x00\x00\x84\xa7\x84\xa8\x84\xa9\x84\xaa\x84\xab\x84\xac\x84\xad\x84\xae\x84\xb0\x84\xb1\x84\xb3\x84\xb5\x84\xb6\x84\xb7\x84\xbb\x84\xbc\x84\xbe\x84\xc0\x84\xc2\x84\xc3\x84\xc5\x84\xc6\x84\xc7\x84\xc8\x84\xcb\x84\xcc\x84\xce\x84\xcf\x84\xd2\x84\xd4\x84\xd5\x84\xd7\x84\xd8\x84\xd9\x84\xda\x84\xdb\x84\xdc\x84\xde\x84\xe1\x84\xe2\x84\xe4\x84\xe7\x84\xe8\x84\xe9\x84\xea\x84\xeb\x84\xed\x84\xee\x84\xef\x84\xf1\x84\xf2\x84\xf3\x84\xf4\x84\xf5\x84\xf6\x84\xf7\x84\xf8\x84\xf9\x84\xfa\x84\xfb\x84\xfd\x84\xfe\x85\x00\x85\x01\x85\x02\x85\x03\x85\x04\x85\x05\x85\x06\x85\x07\x85\x08\x85\x09\x85\x0a\x85\x0b\x85\x0d\x85\x0e\x85\x0f\x85\x10\x85\x12\x85\x14\x85\x15\x85\x16\x85\x18\x85\x19\x85\x1b\x85\x1c\x85\x1d\x85\x1e\x85\x20\x85\x22\x85\x23\x85\x24\x85\x25\x85\x26\x85\x27\x85\x28\x85\x29\x85\x2a\x85\x2d\x85\x2e\x85\x2f\x85\x30\x85\x31\x85\x32\x85\x33\x85\x34\x85\x35\x85\x36\x85\x3e\x85\x3f\x85\x40\x85\x41\x85\x42\x85\x44\x85\x45\x85\x46\x85\x47\x85\x4b\x85\x4c\x85\x4d\x85\x4e\x85\x4f\x85\x50\x85\x51\x85\x52\x00\x00\x00\x00", /* b200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x53\x85\x54\x85\x55\x85\x57\x85\x58\x85\x5a\x85\x5b\x85\x5c\x85\x5d\x85\x5f\x85\x60\x85\x61\x85\x62\x85\x63\x85\x65\x85\x66\x85\x67\x85\x69\x85\x6a\x85\x6b\x85\x6c\x85\x6d\x85\x6e\x85\x6f\x85\x70\x85\x71\x85\x73\x85\x75\x85\x76\x85\x77\x85\x78\x85\x7c\x85\x7d\x85\x7f\x85\x80\x85\x81\x85\x82\x85\x83\x85\x86\x85\x88\x85\x89\x85\x8a\x85\x8b\x85\x8c\x85\x8d\x85\x8e\x85\x90\x85\x91\x85\x92\x85\x93\x85\x94\x85\x95\x85\x96\x85\x97\x85\x98\x85\x99\x85\x9a\x85\x9d\x85\x9e\x85\x9f\x85\xa0\x85\xa1\x85\xa2", /* b280 */ "\x00\x00\x85\xa3\x85\xa5\x85\xa6\x85\xa7\x85\xa9\x85\xab\x85\xac\x85\xad\x85\xb1\x85\xb2\x85\xb3\x85\xb4\x85\xb5\x85\xb6\x85\xb8\x85\xba\x85\xbb\x85\xbc\x85\xbd\x85\xbe\x85\xbf\x85\xc0\x85\xc2\x85\xc3\x85\xc4\x85\xc5\x85\xc6\x85\xc7\x85\xc8\x85\xca\x85\xcb\x85\xcc\x85\xcd\x85\xce\x85\xd1\x85\xd2\x85\xd4\x85\xd6\x85\xd7\x85\xd8\x85\xd9\x85\xda\x85\xdb\x85\xdd\x85\xde\x85\xdf\x85\xe0\x85\xe1\x85\xe2\x85\xe3\x85\xe5\x85\xe6\x85\xe7\x85\xe8\x85\xea\x85\xeb\x85\xec\x85\xed\x85\xee\x85\xef\x85\xf0\x85\xf1\x85\xf2\x85\xf3\x85\xf4\x85\xf5\x85\xf6\x85\xf7\x85\xf8\x85\xf9\x85\xfa\x85\xfc\x85\xfd\x85\xfe\x86\x00\x86\x01\x86\x02\x86\x03\x86\x04\x86\x06\x86\x07\x86\x08\x86\x09\x86\x0a\x86\x0b\x86\x0c\x86\x0d\x86\x0e\x86\x0f\x86\x10\x86\x12\x86\x13\x86\x14\x86\x15\x86\x17\x86\x18\x86\x19\x86\x1a\x86\x1b\x86\x1c\x86\x1d\x86\x1e\x86\x1f\x86\x20\x86\x21\x86\x22\x86\x23\x86\x24\x86\x25\x86\x26\x86\x28\x86\x2a\x86\x2b\x86\x2c\x86\x2d\x86\x2e\x86\x2f\x86\x30\x86\x31\x86\x32\x86\x33\x86\x34\x86\x35\x86\x36\x86\x37\x00\x00\x00\x00", /* b300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x39\x86\x3a\x86\x3b\x86\x3d\x86\x3e\x86\x3f\x86\x40\x86\x41\x86\x42\x86\x43\x86\x44\x86\x45\x86\x46\x86\x47\x86\x48\x86\x49\x86\x4a\x86\x4b\x86\x4c\x86\x52\x86\x53\x86\x55\x86\x56\x86\x57\x86\x58\x86\x59\x86\x5b\x86\x5c\x86\x5d\x86\x5f\x86\x60\x86\x61\x86\x63\x86\x64\x86\x65\x86\x66\x86\x67\x86\x68\x86\x69\x86\x6a\x86\x6d\x86\x6f\x86\x70\x86\x72\x86\x73\x86\x74\x86\x75\x86\x76\x86\x77\x86\x78\x86\x83\x86\x84\x86\x85\x86\x86\x86\x87\x86\x88\x86\x89\x86\x8e\x86\x8f\x86\x90\x86\x91\x86\x92\x86\x94", /* b380 */ "\x00\x00\x86\x96\x86\x97\x86\x98\x86\x99\x86\x9a\x86\x9b\x86\x9e\x86\x9f\x86\xa0\x86\xa1\x86\xa2\x86\xa5\x86\xa6\x86\xab\x86\xad\x86\xae\x86\xb2\x86\xb3\x86\xb7\x86\xb8\x86\xb9\x86\xbb\x86\xbc\x86\xbd\x86\xbe\x86\xbf\x86\xc1\x86\xc2\x86\xc3\x86\xc5\x86\xc8\x86\xcc\x86\xcd\x86\xd2\x86\xd3\x86\xd5\x86\xd6\x86\xd7\x86\xda\x86\xdc\x86\xdd\x86\xe0\x86\xe1\x86\xe2\x86\xe3\x86\xe5\x86\xe6\x86\xe7\x86\xe8\x86\xea\x86\xeb\x86\xec\x86\xef\x86\xf5\x86\xf6\x86\xf7\x86\xfa\x86\xfb\x86\xfc\x86\xfd\x86\xff\x87\x01\x87\x04\x87\x05\x87\x06\x87\x0b\x87\x0c\x87\x0e\x87\x0f\x87\x10\x87\x11\x87\x14\x87\x16\x87\x19\x87\x1b\x87\x1d\x87\x1f\x87\x20\x87\x24\x87\x26\x87\x27\x87\x28\x87\x2a\x87\x2b\x87\x2c\x87\x2d\x87\x2f\x87\x30\x87\x32\x87\x33\x87\x35\x87\x36\x87\x38\x87\x39\x87\x3a\x87\x3c\x87\x3d\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46\x87\x4a\x87\x4b\x87\x4d\x87\x4f\x87\x50\x87\x51\x87\x52\x87\x54\x87\x55\x87\x56\x87\x58\x87\x5a\x87\x5b\x87\x5c\x87\x5d\x87\x5e\x87\x5f\x87\x61\x87\x62\x87\x66\x87\x67\x00\x00\x00\x00", /* b400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x68\x87\x69\x87\x6a\x87\x6b\x87\x6c\x87\x6d\x87\x6f\x87\x71\x87\x72\x87\x73\x87\x75\x87\x77\x87\x78\x87\x79\x87\x7a\x87\x7f\x87\x80\x87\x81\x87\x84\x87\x86\x87\x87\x87\x89\x87\x8a\x87\x8c\x87\x8e\x87\x8f\x87\x90\x87\x91\x87\x92\x87\x94\x87\x95\x87\x96\x87\x98\x87\x99\x87\x9a\x87\x9b\x87\x9c\x87\x9d\x87\x9e\x87\xa0\x87\xa1\x87\xa2\x87\xa3\x87\xa4\x87\xa5\x87\xa6\x87\xa7\x87\xa9\x87\xaa\x87\xae\x87\xb0\x87\xb1\x87\xb2\x87\xb4\x87\xb6\x87\xb7\x87\xb8\x87\xb9\x87\xbb\x87\xbc\x87\xbe\x87\xbf\x87\xc1", /* b480 */ "\x00\x00\x87\xc2\x87\xc3\x87\xc4\x87\xc5\x87\xc7\x87\xc8\x87\xc9\x87\xcc\x87\xcd\x87\xce\x87\xcf\x87\xd0\x87\xd4\x87\xd5\x87\xd6\x87\xd7\x87\xd8\x87\xd9\x87\xda\x87\xdc\x87\xdd\x87\xde\x87\xdf\x87\xe1\x87\xe2\x87\xe3\x87\xe4\x87\xe6\x87\xe7\x87\xe8\x87\xe9\x87\xeb\x87\xec\x87\xed\x87\xef\x87\xf0\x87\xf1\x87\xf2\x87\xf3\x87\xf4\x87\xf5\x87\xf6\x87\xf7\x87\xf8\x87\xfa\x87\xfb\x87\xfc\x87\xfd\x87\xff\x88\x00\x88\x01\x88\x02\x88\x04\x88\x05\x88\x06\x88\x07\x88\x08\x88\x09\x88\x0b\x88\x0c\x88\x0d\x88\x0e\x88\x0f\x88\x10\x88\x11\x88\x12\x88\x14\x88\x17\x88\x18\x88\x19\x88\x1a\x88\x1c\x88\x1d\x88\x1e\x88\x1f\x88\x20\x88\x23\x88\x24\x88\x25\x88\x26\x88\x27\x88\x28\x88\x29\x88\x2a\x88\x2b\x88\x2c\x88\x2d\x88\x2e\x88\x2f\x88\x30\x88\x31\x88\x33\x88\x34\x88\x35\x88\x36\x88\x37\x88\x38\x88\x3a\x88\x3b\x88\x3d\x88\x3e\x88\x3f\x88\x41\x88\x42\x88\x43\x88\x46\x88\x47\x88\x48\x88\x49\x88\x4a\x88\x4b\x88\x4e\x88\x4f\x88\x50\x88\x51\x88\x52\x88\x53\x88\x55\x88\x56\x88\x58\x88\x5a\x88\x5b\x88\x5c\x88\x5d\x88\x5e\x00\x00\x00\x00", /* b500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x5f\x88\x60\x88\x66\x88\x67\x88\x6a\x88\x6d\x88\x6f\x88\x71\x88\x73\x88\x74\x88\x75\x88\x76\x88\x78\x88\x79\x88\x7a\x88\x7b\x88\x7c\x88\x80\x88\x83\x88\x86\x88\x87\x88\x89\x88\x8a\x88\x8c\x88\x8e\x88\x8f\x88\x90\x88\x91\x88\x93\x88\x94\x88\x95\x88\x97\x88\x98\x88\x99\x88\x9a\x88\x9b\x88\x9d\x88\x9e\x88\x9f\x88\xa0\x88\xa1\x88\xa3\x88\xa5\x88\xa6\x88\xa7\x88\xa8\x88\xa9\x88\xaa\x88\xac\x88\xae\x88\xaf\x88\xb0\x88\xb2\x88\xb3\x88\xb4\x88\xb5\x88\xb6\x88\xb8\x88\xb9\x88\xba\x88\xbb\x88\xbd\x88\xbe", /* b580 */ "\x00\x00\x88\xbf\x88\xc0\x88\xc3\x88\xc4\x88\xc7\x88\xc8\x88\xca\x88\xcb\x88\xcc\x88\xcd\x88\xcf\x88\xd0\x88\xd1\x88\xd3\x88\xd6\x88\xd7\x88\xda\x88\xdb\x88\xdc\x88\xdd\x88\xde\x88\xe0\x88\xe1\x88\xe6\x88\xe7\x88\xe9\x88\xea\x88\xeb\x88\xec\x88\xed\x88\xee\x88\xef\x88\xf2\x88\xf5\x88\xf6\x88\xf7\x88\xfa\x88\xfb\x88\xfd\x88\xff\x89\x00\x89\x01\x89\x03\x89\x04\x89\x05\x89\x06\x89\x07\x89\x08\x89\x09\x89\x0b\x89\x0c\x89\x0d\x89\x0e\x89\x0f\x89\x11\x89\x14\x89\x15\x89\x16\x89\x17\x89\x18\x89\x1c\x89\x1d\x89\x1e\x89\x1f\x89\x20\x89\x22\x89\x23\x89\x24\x89\x26\x89\x27\x89\x28\x89\x29\x89\x2c\x89\x2d\x89\x2e\x89\x2f\x89\x31\x89\x32\x89\x33\x89\x35\x89\x37\x89\x38\x89\x39\x89\x3a\x89\x3b\x89\x3c\x89\x3d\x89\x3e\x89\x3f\x89\x40\x89\x42\x89\x43\x89\x45\x89\x46\x89\x47\x89\x48\x89\x49\x89\x4a\x89\x4b\x89\x4c\x89\x4d\x89\x4e\x89\x4f\x89\x50\x89\x51\x89\x52\x89\x53\x89\x54\x89\x55\x89\x56\x89\x57\x89\x58\x89\x59\x89\x5a\x89\x5b\x89\x5c\x89\x5d\x89\x60\x89\x61\x89\x62\x89\x63\x89\x64\x89\x65\x89\x67\x89\x68\x00\x00\x00\x00", /* b600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x69\x89\x6a\x89\x6b\x89\x6c\x89\x6d\x89\x6e\x89\x6f\x89\x70\x89\x71\x89\x72\x89\x73\x89\x74\x89\x75\x89\x76\x89\x77\x89\x78\x89\x79\x89\x7a\x89\x7c\x89\x7d\x89\x7e\x89\x80\x89\x82\x89\x84\x89\x85\x89\x87\x89\x88\x89\x89\x89\x8a\x89\x8b\x89\x8c\x89\x8d\x89\x8e\x89\x8f\x89\x90\x89\x91\x89\x92\x89\x93\x89\x94\x89\x95\x89\x96\x89\x97\x89\x98\x89\x99\x89\x9a\x89\x9b\x89\x9c\x89\x9d\x89\x9e\x89\x9f\x89\xa0\x89\xa1\x89\xa2\x89\xa3\x89\xa4\x89\xa5\x89\xa6\x89\xa7\x89\xa8\x89\xa9\x89\xaa\x89\xab\x89\xac", /* b680 */ "\x00\x00\x89\xad\x89\xae\x89\xaf\x89\xb0\x89\xb1\x89\xb2\x89\xb3\x89\xb4\x89\xb5\x89\xb6\x89\xb7\x89\xb8\x89\xb9\x89\xba\x89\xbb\x89\xbc\x89\xbd\x89\xbe\x89\xbf\x89\xc0\x89\xc3\x89\xcd\x89\xd3\x89\xd4\x89\xd5\x89\xd7\x89\xd8\x89\xd9\x89\xdb\x89\xdd\x89\xdf\x89\xe0\x89\xe1\x89\xe2\x89\xe4\x89\xe7\x89\xe8\x89\xe9\x89\xea\x89\xec\x89\xed\x89\xee\x89\xf0\x89\xf1\x89\xf2\x89\xf4\x89\xf5\x89\xf6\x89\xf7\x89\xf8\x89\xf9\x89\xfa\x89\xfb\x89\xfc\x89\xfd\x89\xfe\x89\xff\x8a\x01\x8a\x02\x8a\x03\x8a\x04\x8a\x05\x8a\x06\x8a\x08\x8a\x09\x8a\x0a\x8a\x0b\x8a\x0c\x8a\x0d\x8a\x0e\x8a\x0f\x8a\x10\x8a\x11\x8a\x12\x8a\x13\x8a\x14\x8a\x15\x8a\x16\x8a\x17\x8a\x18\x8a\x19\x8a\x1a\x8a\x1b\x8a\x1c\x8a\x1d\x8a\x1e\x8a\x1f\x8a\x20\x8a\x21\x8a\x22\x8a\x23\x8a\x24\x8a\x25\x8a\x26\x8a\x27\x8a\x28\x8a\x29\x8a\x2a\x8a\x2b\x8a\x2c\x8a\x2d\x8a\x2e\x8a\x2f\x8a\x30\x8a\x31\x8a\x32\x8a\x33\x8a\x34\x8a\x35\x8a\x36\x8a\x37\x8a\x38\x8a\x39\x8a\x3a\x8a\x3b\x8a\x3c\x8a\x3d\x8a\x3f\x8a\x40\x8a\x41\x8a\x42\x8a\x43\x8a\x44\x8a\x45\x8a\x46\x00\x00\x00\x00", /* b700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x47\x8a\x49\x8a\x4a\x8a\x4b\x8a\x4c\x8a\x4d\x8a\x4e\x8a\x4f\x8a\x50\x8a\x51\x8a\x52\x8a\x53\x8a\x54\x8a\x55\x8a\x56\x8a\x57\x8a\x58\x8a\x59\x8a\x5a\x8a\x5b\x8a\x5c\x8a\x5d\x8a\x5e\x8a\x5f\x8a\x60\x8a\x61\x8a\x62\x8a\x63\x8a\x64\x8a\x65\x8a\x66\x8a\x67\x8a\x68\x8a\x69\x8a\x6a\x8a\x6b\x8a\x6c\x8a\x6d\x8a\x6e\x8a\x6f\x8a\x70\x8a\x71\x8a\x72\x8a\x73\x8a\x74\x8a\x75\x8a\x76\x8a\x77\x8a\x78\x8a\x7a\x8a\x7b\x8a\x7c\x8a\x7d\x8a\x7e\x8a\x7f\x8a\x80\x8a\x81\x8a\x82\x8a\x83\x8a\x84\x8a\x85\x8a\x86\x8a\x87", /* b780 */ "\x00\x00\x8a\x88\x8a\x8b\x8a\x8c\x8a\x8d\x8a\x8e\x8a\x8f\x8a\x90\x8a\x91\x8a\x92\x8a\x94\x8a\x95\x8a\x96\x8a\x97\x8a\x98\x8a\x99\x8a\x9a\x8a\x9b\x8a\x9c\x8a\x9d\x8a\x9e\x8a\x9f\x8a\xa0\x8a\xa1\x8a\xa2\x8a\xa3\x8a\xa4\x8a\xa5\x8a\xa6\x8a\xa7\x8a\xa8\x8a\xa9\x8a\xaa\x8a\xab\x8a\xac\x8a\xad\x8a\xae\x8a\xaf\x8a\xb0\x8a\xb1\x8a\xb2\x8a\xb3\x8a\xb4\x8a\xb5\x8a\xb6\x8a\xb7\x8a\xb8\x8a\xb9\x8a\xba\x8a\xbb\x8a\xbc\x8a\xbd\x8a\xbe\x8a\xbf\x8a\xc0\x8a\xc1\x8a\xc2\x8a\xc3\x8a\xc4\x8a\xc5\x8a\xc6\x8a\xc7\x8a\xc8\x8a\xc9\x8a\xca\x8a\xcb\x8a\xcc\x8a\xcd\x8a\xce\x8a\xcf\x8a\xd0\x8a\xd1\x8a\xd2\x8a\xd3\x8a\xd4\x8a\xd5\x8a\xd6\x8a\xd7\x8a\xd8\x8a\xd9\x8a\xda\x8a\xdb\x8a\xdc\x8a\xdd\x8a\xde\x8a\xdf\x8a\xe0\x8a\xe1\x8a\xe2\x8a\xe3\x8a\xe4\x8a\xe5\x8a\xe6\x8a\xe7\x8a\xe8\x8a\xe9\x8a\xea\x8a\xeb\x8a\xec\x8a\xed\x8a\xee\x8a\xef\x8a\xf0\x8a\xf1\x8a\xf2\x8a\xf3\x8a\xf4\x8a\xf5\x8a\xf6\x8a\xf7\x8a\xf8\x8a\xf9\x8a\xfa\x8a\xfb\x8a\xfc\x8a\xfd\x8a\xfe\x8a\xff\x8b\x00\x8b\x01\x8b\x02\x8b\x03\x8b\x04\x8b\x05\x8b\x06\x8b\x08\x00\x00\x00\x00", /* b800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x09\x8b\x0a\x8b\x0b\x8b\x0c\x8b\x0d\x8b\x0e\x8b\x0f\x8b\x10\x8b\x11\x8b\x12\x8b\x13\x8b\x14\x8b\x15\x8b\x16\x8b\x17\x8b\x18\x8b\x19\x8b\x1a\x8b\x1b\x8b\x1c\x8b\x1d\x8b\x1e\x8b\x1f\x8b\x20\x8b\x21\x8b\x22\x8b\x23\x8b\x24\x8b\x25\x8b\x27\x8b\x28\x8b\x29\x8b\x2a\x8b\x2b\x8b\x2c\x8b\x2d\x8b\x2e\x8b\x2f\x8b\x30\x8b\x31\x8b\x32\x8b\x33\x8b\x34\x8b\x35\x8b\x36\x8b\x37\x8b\x38\x8b\x39\x8b\x3a\x8b\x3b\x8b\x3c\x8b\x3d\x8b\x3e\x8b\x3f\x8b\x40\x8b\x41\x8b\x42\x8b\x43\x8b\x44\x8b\x45\x8b\x46\x8b\x47\x8b\x48", /* b880 */ "\x00\x00\x8b\x49\x8b\x4a\x8b\x4b\x8b\x4c\x8b\x4d\x8b\x4e\x8b\x4f\x8b\x50\x8b\x51\x8b\x52\x8b\x53\x8b\x54\x8b\x55\x8b\x56\x8b\x57\x8b\x58\x8b\x59\x8b\x5a\x8b\x5b\x8b\x5c\x8b\x5d\x8b\x5e\x8b\x5f\x8b\x60\x8b\x61\x8b\x62\x8b\x63\x8b\x64\x8b\x65\x8b\x67\x8b\x68\x8b\x69\x8b\x6a\x8b\x6b\x8b\x6d\x8b\x6e\x8b\x6f\x8b\x70\x8b\x71\x8b\x72\x8b\x73\x8b\x74\x8b\x75\x8b\x76\x8b\x77\x8b\x78\x8b\x79\x8b\x7a\x8b\x7b\x8b\x7c\x8b\x7d\x8b\x7e\x8b\x7f\x8b\x80\x8b\x81\x8b\x82\x8b\x83\x8b\x84\x8b\x85\x8b\x86\x8b\x87\x8b\x88\x8b\x89\x8b\x8a\x8b\x8b\x8b\x8c\x8b\x8d\x8b\x8e\x8b\x8f\x8b\x90\x8b\x91\x8b\x92\x8b\x93\x8b\x94\x8b\x95\x8b\x96\x8b\x97\x8b\x98\x8b\x99\x8b\x9a\x8b\x9b\x8b\x9c\x8b\x9d\x8b\x9e\x8b\x9f\x8b\xac\x8b\xb1\x8b\xbb\x8b\xc7\x8b\xd0\x8b\xea\x8c\x09\x8c\x1e\x8c\x38\x8c\x39\x8c\x3a\x8c\x3b\x8c\x3c\x8c\x3d\x8c\x3e\x8c\x3f\x8c\x40\x8c\x42\x8c\x43\x8c\x44\x8c\x45\x8c\x48\x8c\x4a\x8c\x4b\x8c\x4d\x8c\x4e\x8c\x4f\x8c\x50\x8c\x51\x8c\x52\x8c\x53\x8c\x54\x8c\x56\x8c\x57\x8c\x58\x8c\x59\x8c\x5b\x8c\x5c\x8c\x5d\x8c\x5e\x00\x00\x00\x00", /* b900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x5f\x8c\x60\x8c\x63\x8c\x64\x8c\x65\x8c\x66\x8c\x67\x8c\x68\x8c\x69\x8c\x6c\x8c\x6d\x8c\x6e\x8c\x6f\x8c\x70\x8c\x71\x8c\x72\x8c\x74\x8c\x75\x8c\x76\x8c\x77\x8c\x7b\x8c\x7c\x8c\x7d\x8c\x7e\x8c\x7f\x8c\x80\x8c\x81\x8c\x83\x8c\x84\x8c\x86\x8c\x87\x8c\x88\x8c\x8b\x8c\x8d\x8c\x8e\x8c\x8f\x8c\x90\x8c\x91\x8c\x92\x8c\x93\x8c\x95\x8c\x96\x8c\x97\x8c\x99\x8c\x9a\x8c\x9b\x8c\x9c\x8c\x9d\x8c\x9e\x8c\x9f\x8c\xa0\x8c\xa1\x8c\xa2\x8c\xa3\x8c\xa4\x8c\xa5\x8c\xa6\x8c\xa7\x8c\xa8\x8c\xa9\x8c\xaa\x8c\xab\x8c\xac", /* b980 */ "\x00\x00\x8c\xad\x8c\xae\x8c\xaf\x8c\xb0\x8c\xb1\x8c\xb2\x8c\xb3\x8c\xb4\x8c\xb5\x8c\xb6\x8c\xb7\x8c\xb8\x8c\xb9\x8c\xba\x8c\xbb\x8c\xbc\x8c\xbd\x8c\xbe\x8c\xbf\x8c\xc0\x8c\xc1\x8c\xc2\x8c\xc3\x8c\xc4\x8c\xc5\x8c\xc6\x8c\xc7\x8c\xc8\x8c\xc9\x8c\xca\x8c\xcb\x8c\xcc\x8c\xcd\x8c\xce\x8c\xcf\x8c\xd0\x8c\xd1\x8c\xd2\x8c\xd3\x8c\xd4\x8c\xd5\x8c\xd6\x8c\xd7\x8c\xd8\x8c\xd9\x8c\xda\x8c\xdb\x8c\xdc\x8c\xdd\x8c\xde\x8c\xdf\x8c\xe0\x8c\xe1\x8c\xe2\x8c\xe3\x8c\xe4\x8c\xe5\x8c\xe6\x8c\xe7\x8c\xe8\x8c\xe9\x8c\xea\x8c\xeb\x8c\xec\x8c\xed\x8c\xee\x8c\xef\x8c\xf0\x8c\xf1\x8c\xf2\x8c\xf3\x8c\xf4\x8c\xf5\x8c\xf6\x8c\xf7\x8c\xf8\x8c\xf9\x8c\xfa\x8c\xfb\x8c\xfc\x8c\xfd\x8c\xfe\x8c\xff\x8d\x00\x8d\x01\x8d\x02\x8d\x03\x8d\x04\x8d\x05\x8d\x06\x8d\x07\x8d\x08\x8d\x09\x8d\x0a\x8d\x0b\x8d\x0c\x8d\x0d\x8d\x0e\x8d\x0f\x8d\x10\x8d\x11\x8d\x12\x8d\x13\x8d\x14\x8d\x15\x8d\x16\x8d\x17\x8d\x18\x8d\x19\x8d\x1a\x8d\x1b\x8d\x1c\x8d\x20\x8d\x51\x8d\x52\x8d\x57\x8d\x5f\x8d\x65\x8d\x68\x8d\x69\x8d\x6a\x8d\x6c\x8d\x6e\x8d\x6f\x8d\x71\x00\x00\x00\x00", /* ba00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x72\x8d\x78\x8d\x79\x8d\x7a\x8d\x7b\x8d\x7c\x8d\x7d\x8d\x7e\x8d\x7f\x8d\x80\x8d\x82\x8d\x83\x8d\x86\x8d\x87\x8d\x88\x8d\x89\x8d\x8c\x8d\x8d\x8d\x8e\x8d\x8f\x8d\x90\x8d\x92\x8d\x93\x8d\x95\x8d\x96\x8d\x97\x8d\x98\x8d\x99\x8d\x9a\x8d\x9b\x8d\x9c\x8d\x9d\x8d\x9e\x8d\xa0\x8d\xa1\x8d\xa2\x8d\xa4\x8d\xa5\x8d\xa6\x8d\xa7\x8d\xa8\x8d\xa9\x8d\xaa\x8d\xab\x8d\xac\x8d\xad\x8d\xae\x8d\xaf\x8d\xb0\x8d\xb2\x8d\xb6\x8d\xb7\x8d\xb9\x8d\xbb\x8d\xbd\x8d\xc0\x8d\xc1\x8d\xc2\x8d\xc5\x8d\xc7\x8d\xc8\x8d\xc9\x8d\xca", /* ba80 */ "\x00\x00\x8d\xcd\x8d\xd0\x8d\xd2\x8d\xd3\x8d\xd4\x8d\xd5\x8d\xd8\x8d\xd9\x8d\xdc\x8d\xe0\x8d\xe1\x8d\xe2\x8d\xe5\x8d\xe6\x8d\xe7\x8d\xe9\x8d\xed\x8d\xee\x8d\xf0\x8d\xf1\x8d\xf2\x8d\xf4\x8d\xf6\x8d\xfc\x8d\xfe\x8d\xff\x8e\x00\x8e\x01\x8e\x02\x8e\x03\x8e\x04\x8e\x06\x8e\x07\x8e\x08\x8e\x0b\x8e\x0d\x8e\x0e\x8e\x10\x8e\x11\x8e\x12\x8e\x13\x8e\x15\x8e\x16\x8e\x17\x8e\x18\x8e\x19\x8e\x1a\x8e\x1b\x8e\x1c\x8e\x20\x8e\x21\x8e\x24\x8e\x25\x8e\x26\x8e\x27\x8e\x28\x8e\x2b\x8e\x2d\x8e\x30\x8e\x32\x8e\x33\x8e\x34\x8e\x36\x8e\x37\x8e\x38\x8e\x3b\x8e\x3c\x8e\x3e\x8e\x3f\x8e\x43\x8e\x45\x8e\x46\x8e\x4c\x8e\x4d\x8e\x4e\x8e\x4f\x8e\x50\x8e\x53\x8e\x54\x8e\x55\x8e\x56\x8e\x57\x8e\x58\x8e\x5a\x8e\x5b\x8e\x5c\x8e\x5d\x8e\x5e\x8e\x5f\x8e\x60\x8e\x61\x8e\x62\x8e\x63\x8e\x64\x8e\x65\x8e\x67\x8e\x68\x8e\x6a\x8e\x6b\x8e\x6e\x8e\x71\x8e\x73\x8e\x75\x8e\x77\x8e\x78\x8e\x79\x8e\x7a\x8e\x7b\x8e\x7d\x8e\x7e\x8e\x80\x8e\x82\x8e\x83\x8e\x84\x8e\x86\x8e\x88\x8e\x89\x8e\x8a\x8e\x8b\x8e\x8c\x8e\x8d\x8e\x8e\x8e\x91\x8e\x92\x8e\x93\x00\x00\x00\x00", /* bb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x95\x8e\x96\x8e\x97\x8e\x98\x8e\x99\x8e\x9a\x8e\x9b\x8e\x9d\x8e\x9f\x8e\xa0\x8e\xa1\x8e\xa2\x8e\xa3\x8e\xa4\x8e\xa5\x8e\xa6\x8e\xa7\x8e\xa8\x8e\xa9\x8e\xaa\x8e\xad\x8e\xae\x8e\xb0\x8e\xb1\x8e\xb3\x8e\xb4\x8e\xb5\x8e\xb6\x8e\xb7\x8e\xb8\x8e\xb9\x8e\xbb\x8e\xbc\x8e\xbd\x8e\xbe\x8e\xbf\x8e\xc0\x8e\xc1\x8e\xc2\x8e\xc3\x8e\xc4\x8e\xc5\x8e\xc6\x8e\xc7\x8e\xc8\x8e\xc9\x8e\xca\x8e\xcb\x8e\xcc\x8e\xcd\x8e\xcf\x8e\xd0\x8e\xd1\x8e\xd2\x8e\xd3\x8e\xd4\x8e\xd5\x8e\xd6\x8e\xd7\x8e\xd8\x8e\xd9\x8e\xda\x8e\xdb", /* bb80 */ "\x00\x00\x8e\xdc\x8e\xdd\x8e\xde\x8e\xdf\x8e\xe0\x8e\xe1\x8e\xe2\x8e\xe3\x8e\xe4\x8e\xe5\x8e\xe6\x8e\xe7\x8e\xe8\x8e\xe9\x8e\xea\x8e\xeb\x8e\xec\x8e\xed\x8e\xee\x8e\xef\x8e\xf0\x8e\xf1\x8e\xf2\x8e\xf3\x8e\xf4\x8e\xf5\x8e\xf6\x8e\xf7\x8e\xf8\x8e\xf9\x8e\xfa\x8e\xfb\x8e\xfc\x8e\xfd\x8e\xfe\x8e\xff\x8f\x00\x8f\x01\x8f\x02\x8f\x03\x8f\x04\x8f\x05\x8f\x06\x8f\x07\x8f\x08\x8f\x09\x8f\x0a\x8f\x0b\x8f\x0c\x8f\x0d\x8f\x0e\x8f\x0f\x8f\x10\x8f\x11\x8f\x12\x8f\x13\x8f\x14\x8f\x15\x8f\x16\x8f\x17\x8f\x18\x8f\x19\x8f\x1a\x8f\x1b\x8f\x1c\x8f\x1d\x8f\x1e\x8f\x1f\x8f\x20\x8f\x21\x8f\x22\x8f\x23\x8f\x24\x8f\x25\x8f\x26\x8f\x27\x8f\x28\x8f\x29\x8f\x2a\x8f\x2b\x8f\x2c\x8f\x2d\x8f\x2e\x8f\x2f\x8f\x30\x8f\x31\x8f\x32\x8f\x33\x8f\x34\x8f\x35\x8f\x36\x8f\x37\x8f\x38\x8f\x39\x8f\x3a\x8f\x3b\x8f\x3c\x8f\x3d\x8f\x3e\x8f\x3f\x8f\x40\x8f\x41\x8f\x42\x8f\x43\x8f\x44\x8f\x45\x8f\x46\x8f\x47\x8f\x48\x8f\x49\x8f\x4a\x8f\x4b\x8f\x4c\x8f\x4d\x8f\x4e\x8f\x4f\x8f\x50\x8f\x51\x8f\x52\x8f\x53\x8f\x54\x8f\x55\x8f\x56\x8f\x57\x8f\x58\x00\x00\x00\x00", /* bc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x59\x8f\x5a\x8f\x5b\x8f\x5c\x8f\x5d\x8f\x5e\x8f\x5f\x8f\x60\x8f\x61\x8f\x62\x8f\x63\x8f\x64\x8f\x65\x8f\x6a\x8f\x80\x8f\x8c\x8f\x92\x8f\x9d\x8f\xa0\x8f\xa1\x8f\xa2\x8f\xa4\x8f\xa5\x8f\xa6\x8f\xa7\x8f\xaa\x8f\xac\x8f\xad\x8f\xae\x8f\xaf\x8f\xb2\x8f\xb3\x8f\xb4\x8f\xb5\x8f\xb7\x8f\xb8\x8f\xba\x8f\xbb\x8f\xbc\x8f\xbf\x8f\xc0\x8f\xc3\x8f\xc6\x8f\xc9\x8f\xca\x8f\xcb\x8f\xcc\x8f\xcd\x8f\xcf\x8f\xd2\x8f\xd6\x8f\xd7\x8f\xda\x8f\xe0\x8f\xe1\x8f\xe3\x8f\xe7\x8f\xec\x8f\xef\x8f\xf1\x8f\xf2\x8f\xf4\x8f\xf5", /* bc80 */ "\x00\x00\x8f\xf6\x8f\xfa\x8f\xfb\x8f\xfc\x8f\xfe\x8f\xff\x90\x07\x90\x08\x90\x0c\x90\x0e\x90\x13\x90\x15\x90\x18\x90\x19\x90\x1c\x90\x23\x90\x24\x90\x25\x90\x27\x90\x28\x90\x29\x90\x2a\x90\x2b\x90\x2c\x90\x30\x90\x31\x90\x32\x90\x33\x90\x34\x90\x37\x90\x39\x90\x3a\x90\x3d\x90\x3f\x90\x40\x90\x43\x90\x45\x90\x46\x90\x48\x90\x49\x90\x4a\x90\x4b\x90\x4c\x90\x4e\x90\x54\x90\x55\x90\x56\x90\x59\x90\x5a\x90\x5c\x90\x5d\x90\x5e\x90\x5f\x90\x60\x90\x61\x90\x64\x90\x66\x90\x67\x90\x69\x90\x6a\x90\x6b\x90\x6c\x90\x6f\x90\x70\x90\x71\x90\x72\x90\x73\x90\x76\x90\x77\x90\x78\x90\x79\x90\x7a\x90\x7b\x90\x7c\x90\x7e\x90\x81\x90\x84\x90\x85\x90\x86\x90\x87\x90\x89\x90\x8a\x90\x8c\x90\x8d\x90\x8e\x90\x8f\x90\x90\x90\x92\x90\x94\x90\x96\x90\x98\x90\x9a\x90\x9c\x90\x9e\x90\x9f\x90\xa0\x90\xa4\x90\xa5\x90\xa7\x90\xa8\x90\xa9\x90\xab\x90\xad\x90\xb2\x90\xb7\x90\xbc\x90\xbd\x90\xbf\x90\xc0\x90\xc2\x90\xc3\x90\xc6\x90\xc8\x90\xc9\x90\xcb\x90\xcc\x90\xcd\x90\xd2\x90\xd4\x90\xd5\x90\xd6\x90\xd8\x90\xd9\x90\xda\x90\xde\x00\x00\x00\x00", /* bd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xdf\x90\xe0\x90\xe3\x90\xe4\x90\xe5\x90\xe9\x90\xea\x90\xec\x90\xee\x90\xf0\x90\xf1\x90\xf2\x90\xf3\x90\xf5\x90\xf6\x90\xf7\x90\xf9\x90\xfa\x90\xfb\x90\xfc\x90\xff\x91\x00\x91\x01\x91\x03\x91\x05\x91\x06\x91\x07\x91\x08\x91\x09\x91\x0a\x91\x0b\x91\x0c\x91\x0d\x91\x0e\x91\x0f\x91\x10\x91\x11\x91\x12\x91\x13\x91\x14\x91\x15\x91\x16\x91\x17\x91\x18\x91\x1a\x91\x1b\x91\x1c\x91\x1d\x91\x1f\x91\x20\x91\x21\x91\x24\x91\x25\x91\x26\x91\x27\x91\x28\x91\x29\x91\x2a\x91\x2b\x91\x2c\x91\x2d\x91\x2e\x91\x30", /* bd80 */ "\x00\x00\x91\x32\x91\x33\x91\x34\x91\x35\x91\x36\x91\x37\x91\x38\x91\x3a\x91\x3b\x91\x3c\x91\x3d\x91\x3e\x91\x3f\x91\x40\x91\x41\x91\x42\x91\x44\x91\x45\x91\x47\x91\x48\x91\x51\x91\x53\x91\x54\x91\x55\x91\x56\x91\x58\x91\x59\x91\x5b\x91\x5c\x91\x5f\x91\x60\x91\x66\x91\x67\x91\x68\x91\x6b\x91\x6d\x91\x73\x91\x7a\x91\x7b\x91\x7c\x91\x80\x91\x81\x91\x82\x91\x83\x91\x84\x91\x86\x91\x88\x91\x8a\x91\x8e\x91\x8f\x91\x93\x91\x94\x91\x95\x91\x96\x91\x97\x91\x98\x91\x99\x91\x9c\x91\x9d\x91\x9e\x91\x9f\x91\xa0\x91\xa1\x91\xa4\x91\xa5\x91\xa6\x91\xa7\x91\xa8\x91\xa9\x91\xab\x91\xac\x91\xb0\x91\xb1\x91\xb2\x91\xb3\x91\xb6\x91\xb7\x91\xb8\x91\xb9\x91\xbb\x91\xbc\x91\xbd\x91\xbe\x91\xbf\x91\xc0\x91\xc1\x91\xc2\x91\xc3\x91\xc4\x91\xc5\x91\xc6\x91\xc8\x91\xcb\x91\xd0\x91\xd2\x91\xd3\x91\xd4\x91\xd5\x91\xd6\x91\xd7\x91\xd8\x91\xd9\x91\xda\x91\xdb\x91\xdd\x91\xde\x91\xdf\x91\xe0\x91\xe1\x91\xe2\x91\xe3\x91\xe4\x91\xe5\x91\xe6\x91\xe7\x91\xe8\x91\xe9\x91\xea\x91\xeb\x91\xec\x91\xed\x91\xee\x91\xef\x91\xf0\x91\xf1\x00\x00\x00\x00", /* be00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xf2\x91\xf3\x91\xf4\x91\xf5\x91\xf6\x91\xf7\x91\xf8\x91\xf9\x91\xfa\x91\xfb\x91\xfc\x91\xfd\x91\xfe\x91\xff\x92\x00\x92\x01\x92\x02\x92\x03\x92\x04\x92\x05\x92\x06\x92\x07\x92\x08\x92\x09\x92\x0a\x92\x0b\x92\x0c\x92\x0d\x92\x0e\x92\x0f\x92\x10\x92\x11\x92\x12\x92\x13\x92\x14\x92\x15\x92\x16\x92\x17\x92\x18\x92\x19\x92\x1a\x92\x1b\x92\x1c\x92\x1d\x92\x1e\x92\x1f\x92\x20\x92\x21\x92\x22\x92\x23\x92\x24\x92\x25\x92\x26\x92\x27\x92\x28\x92\x29\x92\x2a\x92\x2b\x92\x2c\x92\x2d\x92\x2e\x92\x2f\x92\x30", /* be80 */ "\x00\x00\x92\x31\x92\x32\x92\x33\x92\x34\x92\x35\x92\x36\x92\x37\x92\x38\x92\x39\x92\x3a\x92\x3b\x92\x3c\x92\x3d\x92\x3e\x92\x3f\x92\x40\x92\x41\x92\x42\x92\x43\x92\x44\x92\x45\x92\x46\x92\x47\x92\x48\x92\x49\x92\x4a\x92\x4b\x92\x4c\x92\x4d\x92\x4e\x92\x4f\x92\x50\x92\x51\x92\x52\x92\x53\x92\x54\x92\x55\x92\x56\x92\x57\x92\x58\x92\x59\x92\x5a\x92\x5b\x92\x5c\x92\x5d\x92\x5e\x92\x5f\x92\x60\x92\x61\x92\x62\x92\x63\x92\x64\x92\x65\x92\x66\x92\x67\x92\x68\x92\x69\x92\x6a\x92\x6b\x92\x6c\x92\x6d\x92\x6e\x92\x6f\x92\x70\x92\x71\x92\x72\x92\x73\x92\x75\x92\x76\x92\x77\x92\x78\x92\x79\x92\x7a\x92\x7b\x92\x7c\x92\x7d\x92\x7e\x92\x7f\x92\x80\x92\x81\x92\x82\x92\x83\x92\x84\x92\x85\x92\x86\x92\x87\x92\x88\x92\x89\x92\x8a\x92\x8b\x92\x8c\x92\x8d\x92\x8f\x92\x90\x92\x91\x92\x92\x92\x93\x92\x94\x92\x95\x92\x96\x92\x97\x92\x98\x92\x99\x92\x9a\x92\x9b\x92\x9c\x92\x9d\x92\x9e\x92\x9f\x92\xa0\x92\xa1\x92\xa2\x92\xa3\x92\xa4\x92\xa5\x92\xa6\x92\xa7\x92\xa8\x92\xa9\x92\xaa\x92\xab\x92\xac\x92\xad\x92\xaf\x92\xb0\x00\x00\x00\x00", /* bf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\xb1\x92\xb2\x92\xb3\x92\xb4\x92\xb5\x92\xb6\x92\xb7\x92\xb8\x92\xb9\x92\xba\x92\xbb\x92\xbc\x92\xbd\x92\xbe\x92\xbf\x92\xc0\x92\xc1\x92\xc2\x92\xc3\x92\xc4\x92\xc5\x92\xc6\x92\xc7\x92\xc9\x92\xca\x92\xcb\x92\xcc\x92\xcd\x92\xce\x92\xcf\x92\xd0\x92\xd1\x92\xd2\x92\xd3\x92\xd4\x92\xd5\x92\xd6\x92\xd7\x92\xd8\x92\xd9\x92\xda\x92\xdb\x92\xdc\x92\xdd\x92\xde\x92\xdf\x92\xe0\x92\xe1\x92\xe2\x92\xe3\x92\xe4\x92\xe5\x92\xe6\x92\xe7\x92\xe8\x92\xe9\x92\xea\x92\xeb\x92\xec\x92\xed\x92\xee\x92\xef\x92\xf0", /* bf80 */ "\x00\x00\x92\xf1\x92\xf2\x92\xf3\x92\xf4\x92\xf5\x92\xf6\x92\xf7\x92\xf8\x92\xf9\x92\xfa\x92\xfb\x92\xfc\x92\xfd\x92\xfe\x92\xff\x93\x00\x93\x01\x93\x02\x93\x03\x93\x04\x93\x05\x93\x06\x93\x07\x93\x08\x93\x09\x93\x0a\x93\x0b\x93\x0c\x93\x0d\x93\x0e\x93\x0f\x93\x10\x93\x11\x93\x12\x93\x13\x93\x14\x93\x15\x93\x16\x93\x17\x93\x18\x93\x19\x93\x1a\x93\x1b\x93\x1c\x93\x1d\x93\x1e\x93\x1f\x93\x20\x93\x21\x93\x22\x93\x23\x93\x24\x93\x25\x93\x26\x93\x27\x93\x28\x93\x29\x93\x2a\x93\x2b\x93\x2c\x93\x2d\x93\x2e\x93\x2f\x93\x30\x93\x31\x93\x32\x93\x33\x93\x34\x93\x35\x93\x36\x93\x37\x93\x38\x93\x39\x93\x3a\x93\x3b\x93\x3c\x93\x3d\x93\x3f\x93\x40\x93\x41\x93\x42\x93\x43\x93\x44\x93\x45\x93\x46\x93\x47\x93\x48\x93\x49\x93\x4a\x93\x4b\x93\x4c\x93\x4d\x93\x4e\x93\x4f\x93\x50\x93\x51\x93\x52\x93\x53\x93\x54\x93\x55\x93\x56\x93\x57\x93\x58\x93\x59\x93\x5a\x93\x5b\x93\x5c\x93\x5d\x93\x5e\x93\x5f\x93\x60\x93\x61\x93\x62\x93\x63\x93\x64\x93\x65\x93\x66\x93\x67\x93\x68\x93\x69\x93\x6b\x93\x6c\x93\x6d\x93\x6e\x93\x6f\x00\x00\x00\x00", /* c000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x70\x93\x71\x93\x72\x93\x73\x93\x74\x93\x75\x93\x76\x93\x77\x93\x78\x93\x79\x93\x7a\x93\x7b\x93\x7c\x93\x7d\x93\x7e\x93\x7f\x93\x80\x93\x81\x93\x82\x93\x83\x93\x84\x93\x85\x93\x86\x93\x87\x93\x88\x93\x89\x93\x8a\x93\x8b\x93\x8c\x93\x8d\x93\x8e\x93\x90\x93\x91\x93\x92\x93\x93\x93\x94\x93\x95\x93\x96\x93\x97\x93\x98\x93\x99\x93\x9a\x93\x9b\x93\x9c\x93\x9d\x93\x9e\x93\x9f\x93\xa0\x93\xa1\x93\xa2\x93\xa3\x93\xa4\x93\xa5\x93\xa6\x93\xa7\x93\xa8\x93\xa9\x93\xaa\x93\xab\x93\xac\x93\xad\x93\xae\x93\xaf", /* c080 */ "\x00\x00\x93\xb0\x93\xb1\x93\xb2\x93\xb3\x93\xb4\x93\xb5\x93\xb6\x93\xb7\x93\xb8\x93\xb9\x93\xba\x93\xbb\x93\xbc\x93\xbd\x93\xbe\x93\xbf\x93\xc0\x93\xc1\x93\xc2\x93\xc3\x93\xc4\x93\xc5\x93\xc6\x93\xc7\x93\xc8\x93\xc9\x93\xcb\x93\xcc\x93\xcd\x93\xce\x93\xcf\x93\xd0\x93\xd1\x93\xd2\x93\xd3\x93\xd4\x93\xd5\x93\xd7\x93\xd8\x93\xd9\x93\xda\x93\xdb\x93\xdc\x93\xdd\x93\xde\x93\xdf\x93\xe0\x93\xe1\x93\xe2\x93\xe3\x93\xe4\x93\xe5\x93\xe6\x93\xe7\x93\xe8\x93\xe9\x93\xea\x93\xeb\x93\xec\x93\xed\x93\xee\x93\xef\x93\xf0\x93\xf1\x93\xf2\x93\xf3\x93\xf4\x93\xf5\x93\xf6\x93\xf7\x93\xf8\x93\xf9\x93\xfa\x93\xfb\x93\xfc\x93\xfd\x93\xfe\x93\xff\x94\x00\x94\x01\x94\x02\x94\x03\x94\x04\x94\x05\x94\x06\x94\x07\x94\x08\x94\x09\x94\x0a\x94\x0b\x94\x0c\x94\x0d\x94\x0e\x94\x0f\x94\x10\x94\x11\x94\x12\x94\x13\x94\x14\x94\x15\x94\x16\x94\x17\x94\x18\x94\x19\x94\x1a\x94\x1b\x94\x1c\x94\x1d\x94\x1e\x94\x1f\x94\x20\x94\x21\x94\x22\x94\x23\x94\x24\x94\x25\x94\x26\x94\x27\x94\x28\x94\x29\x94\x2a\x94\x2b\x94\x2c\x94\x2d\x94\x2e\x00\x00\x00\x00", /* c100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x2f\x94\x30\x94\x31\x94\x32\x94\x33\x94\x34\x94\x35\x94\x36\x94\x37\x94\x38\x94\x39\x94\x3a\x94\x3b\x94\x3c\x94\x3d\x94\x3f\x94\x40\x94\x41\x94\x42\x94\x43\x94\x44\x94\x45\x94\x46\x94\x47\x94\x48\x94\x49\x94\x4a\x94\x4b\x94\x4c\x94\x4d\x94\x4e\x94\x4f\x94\x50\x94\x51\x94\x52\x94\x53\x94\x54\x94\x55\x94\x56\x94\x57\x94\x58\x94\x59\x94\x5a\x94\x5b\x94\x5c\x94\x5d\x94\x5e\x94\x5f\x94\x60\x94\x61\x94\x62\x94\x63\x94\x64\x94\x65\x94\x66\x94\x67\x94\x68\x94\x69\x94\x6a\x94\x6c\x94\x6d\x94\x6e\x94\x6f", /* c180 */ "\x00\x00\x94\x70\x94\x71\x94\x72\x94\x73\x94\x74\x94\x75\x94\x76\x94\x77\x94\x78\x94\x79\x94\x7a\x94\x7b\x94\x7c\x94\x7d\x94\x7e\x94\x7f\x94\x80\x94\x81\x94\x82\x94\x83\x94\x84\x94\x91\x94\x96\x94\x98\x94\xc7\x94\xcf\x94\xd3\x94\xd4\x94\xda\x94\xe6\x94\xfb\x95\x1c\x95\x20\x95\x27\x95\x33\x95\x3d\x95\x43\x95\x48\x95\x4b\x95\x55\x95\x5a\x95\x60\x95\x6e\x95\x74\x95\x75\x95\x77\x95\x78\x95\x79\x95\x7a\x95\x7b\x95\x7c\x95\x7d\x95\x7e\x95\x80\x95\x81\x95\x82\x95\x83\x95\x84\x95\x85\x95\x86\x95\x87\x95\x88\x95\x89\x95\x8a\x95\x8b\x95\x8c\x95\x8d\x95\x8e\x95\x8f\x95\x90\x95\x91\x95\x92\x95\x93\x95\x94\x95\x95\x95\x96\x95\x97\x95\x98\x95\x99\x95\x9a\x95\x9b\x95\x9c\x95\x9d\x95\x9e\x95\x9f\x95\xa0\x95\xa1\x95\xa2\x95\xa3\x95\xa4\x95\xa5\x95\xa6\x95\xa7\x95\xa8\x95\xa9\x95\xaa\x95\xab\x95\xac\x95\xad\x95\xae\x95\xaf\x95\xb0\x95\xb1\x95\xb2\x95\xb3\x95\xb4\x95\xb5\x95\xb6\x95\xb7\x95\xb8\x95\xb9\x95\xba\x95\xbb\x95\xbc\x95\xbd\x95\xbe\x95\xbf\x95\xc0\x95\xc1\x95\xc2\x95\xc3\x95\xc4\x95\xc5\x95\xc6\x95\xc7\x00\x00\x00\x00", /* c200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\xc8\x95\xc9\x95\xca\x95\xcb\x95\xcc\x95\xcd\x95\xce\x95\xcf\x95\xd0\x95\xd1\x95\xd2\x95\xd3\x95\xd4\x95\xd5\x95\xd6\x95\xd7\x95\xd8\x95\xd9\x95\xda\x95\xdb\x95\xdc\x95\xdd\x95\xde\x95\xdf\x95\xe0\x95\xe1\x95\xe2\x95\xe3\x95\xe4\x95\xe5\x95\xe6\x95\xe7\x95\xec\x95\xff\x96\x07\x96\x13\x96\x18\x96\x1b\x96\x1e\x96\x20\x96\x23\x96\x24\x96\x25\x96\x26\x96\x27\x96\x28\x96\x29\x96\x2b\x96\x2c\x96\x2d\x96\x2f\x96\x30\x96\x37\x96\x38\x96\x39\x96\x3a\x96\x3e\x96\x41\x96\x43\x96\x4a\x96\x4e\x96\x4f\x96\x51", /* c280 */ "\x00\x00\x96\x52\x96\x53\x96\x56\x96\x57\x96\x58\x96\x59\x96\x5a\x96\x5c\x96\x5d\x96\x5e\x96\x60\x96\x63\x96\x65\x96\x66\x96\x6b\x96\x6d\x96\x6e\x96\x6f\x96\x70\x96\x71\x96\x73\x96\x78\x96\x79\x96\x7a\x96\x7b\x96\x7c\x96\x7d\x96\x7e\x96\x7f\x96\x80\x96\x81\x96\x82\x96\x83\x96\x84\x96\x87\x96\x89\x96\x8a\x96\x8c\x96\x8e\x96\x91\x96\x92\x96\x93\x96\x95\x96\x96\x96\x9a\x96\x9b\x96\x9d\x96\x9e\x96\x9f\x96\xa0\x96\xa1\x96\xa2\x96\xa3\x96\xa4\x96\xa5\x96\xa6\x96\xa8\x96\xa9\x96\xaa\x96\xab\x96\xac\x96\xad\x96\xae\x96\xaf\x96\xb1\x96\xb2\x96\xb4\x96\xb5\x96\xb7\x96\xb8\x96\xba\x96\xbb\x96\xbf\x96\xc2\x96\xc3\x96\xc8\x96\xca\x96\xcb\x96\xd0\x96\xd1\x96\xd3\x96\xd4\x96\xd6\x96\xd7\x96\xd8\x96\xd9\x96\xda\x96\xdb\x96\xdc\x96\xdd\x96\xde\x96\xdf\x96\xe1\x96\xe2\x96\xe3\x96\xe4\x96\xe5\x96\xe6\x96\xe7\x96\xeb\x96\xec\x96\xed\x96\xee\x96\xf0\x96\xf1\x96\xf2\x96\xf4\x96\xf5\x96\xf8\x96\xfa\x96\xfb\x96\xfc\x96\xfd\x96\xff\x97\x02\x97\x03\x97\x05\x97\x0a\x97\x0b\x97\x0c\x97\x10\x97\x11\x97\x12\x97\x14\x97\x15\x00\x00\x00\x00", /* c300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x17\x97\x18\x97\x19\x97\x1a\x97\x1b\x97\x1d\x97\x1f\x97\x20\x97\x21\x97\x22\x97\x23\x97\x24\x97\x25\x97\x26\x97\x27\x97\x28\x97\x29\x97\x2b\x97\x2c\x97\x2e\x97\x2f\x97\x31\x97\x33\x97\x34\x97\x35\x97\x36\x97\x37\x97\x3a\x97\x3b\x97\x3c\x97\x3d\x97\x3f\x97\x40\x97\x41\x97\x42\x97\x43\x97\x44\x97\x45\x97\x46\x97\x47\x97\x48\x97\x49\x97\x4a\x97\x4b\x97\x4c\x97\x4d\x97\x4e\x97\x4f\x97\x50\x97\x51\x97\x54\x97\x55\x97\x57\x97\x58\x97\x5a\x97\x5c\x97\x5d\x97\x5f\x97\x63\x97\x64\x97\x66\x97\x67\x97\x68", /* c380 */ "\x00\x00\x97\x6a\x97\x6b\x97\x6c\x97\x6d\x97\x6e\x97\x6f\x97\x70\x97\x71\x97\x72\x97\x75\x97\x77\x97\x78\x97\x79\x97\x7a\x97\x7b\x97\x7d\x97\x7e\x97\x7f\x97\x80\x97\x81\x97\x82\x97\x83\x97\x84\x97\x86\x97\x87\x97\x88\x97\x89\x97\x8a\x97\x8c\x97\x8e\x97\x8f\x97\x90\x97\x93\x97\x95\x97\x96\x97\x97\x97\x99\x97\x9a\x97\x9b\x97\x9c\x97\x9d\x97\x9e\x97\x9f\x97\xa1\x97\xa2\x97\xa4\x97\xa5\x97\xa6\x97\xa7\x97\xa8\x97\xa9\x97\xaa\x97\xac\x97\xae\x97\xb0\x97\xb1\x97\xb3\x97\xb5\x97\xb6\x97\xb7\x97\xb8\x97\xb9\x97\xba\x97\xbb\x97\xbc\x97\xbd\x97\xbe\x97\xbf\x97\xc0\x97\xc1\x97\xc2\x97\xc3\x97\xc4\x97\xc5\x97\xc6\x97\xc7\x97\xc8\x97\xc9\x97\xca\x97\xcb\x97\xcc\x97\xcd\x97\xce\x97\xcf\x97\xd0\x97\xd1\x97\xd2\x97\xd3\x97\xd4\x97\xd5\x97\xd6\x97\xd7\x97\xd8\x97\xd9\x97\xda\x97\xdb\x97\xdc\x97\xdd\x97\xde\x97\xdf\x97\xe0\x97\xe1\x97\xe2\x97\xe3\x97\xe4\x97\xe5\x97\xe8\x97\xee\x97\xef\x97\xf0\x97\xf1\x97\xf2\x97\xf4\x97\xf7\x97\xf8\x97\xf9\x97\xfa\x97\xfb\x97\xfc\x97\xfd\x97\xfe\x97\xff\x98\x00\x98\x01\x98\x02\x00\x00\x00\x00", /* c400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x03\x98\x04\x98\x05\x98\x06\x98\x07\x98\x08\x98\x09\x98\x0a\x98\x0b\x98\x0c\x98\x0d\x98\x0e\x98\x0f\x98\x10\x98\x11\x98\x12\x98\x13\x98\x14\x98\x15\x98\x16\x98\x17\x98\x18\x98\x19\x98\x1a\x98\x1b\x98\x1c\x98\x1d\x98\x1e\x98\x1f\x98\x20\x98\x21\x98\x22\x98\x23\x98\x24\x98\x25\x98\x26\x98\x27\x98\x28\x98\x29\x98\x2a\x98\x2b\x98\x2c\x98\x2d\x98\x2e\x98\x2f\x98\x30\x98\x31\x98\x32\x98\x33\x98\x34\x98\x35\x98\x36\x98\x37\x98\x38\x98\x39\x98\x3a\x98\x3b\x98\x3c\x98\x3d\x98\x3e\x98\x3f\x98\x40\x98\x41", /* c480 */ "\x00\x00\x98\x42\x98\x43\x98\x44\x98\x45\x98\x46\x98\x47\x98\x48\x98\x49\x98\x4a\x98\x4b\x98\x4c\x98\x4d\x98\x4e\x98\x4f\x98\x50\x98\x51\x98\x52\x98\x53\x98\x54\x98\x55\x98\x56\x98\x57\x98\x58\x98\x59\x98\x5a\x98\x5b\x98\x5c\x98\x5d\x98\x5e\x98\x5f\x98\x60\x98\x61\x98\x62\x98\x63\x98\x64\x98\x65\x98\x66\x98\x67\x98\x68\x98\x69\x98\x6a\x98\x6b\x98\x6c\x98\x6d\x98\x6e\x98\x6f\x98\x70\x98\x71\x98\x72\x98\x73\x98\x74\x98\x8b\x98\x8e\x98\x92\x98\x95\x98\x99\x98\xa3\x98\xa8\x98\xa9\x98\xaa\x98\xab\x98\xac\x98\xad\x98\xae\x98\xaf\x98\xb0\x98\xb1\x98\xb2\x98\xb3\x98\xb4\x98\xb5\x98\xb6\x98\xb7\x98\xb8\x98\xb9\x98\xba\x98\xbb\x98\xbc\x98\xbd\x98\xbe\x98\xbf\x98\xc0\x98\xc1\x98\xc2\x98\xc3\x98\xc4\x98\xc5\x98\xc6\x98\xc7\x98\xc8\x98\xc9\x98\xca\x98\xcb\x98\xcc\x98\xcd\x98\xcf\x98\xd0\x98\xd4\x98\xd6\x98\xd7\x98\xdb\x98\xdc\x98\xdd\x98\xe0\x98\xe1\x98\xe2\x98\xe3\x98\xe4\x98\xe5\x98\xe6\x98\xe9\x98\xea\x98\xeb\x98\xec\x98\xed\x98\xee\x98\xef\x98\xf0\x98\xf1\x98\xf2\x98\xf3\x98\xf4\x98\xf5\x98\xf6\x98\xf7\x00\x00\x00\x00", /* c500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\xf8\x98\xf9\x98\xfa\x98\xfb\x98\xfc\x98\xfd\x98\xfe\x98\xff\x99\x00\x99\x01\x99\x02\x99\x03\x99\x04\x99\x05\x99\x06\x99\x07\x99\x08\x99\x09\x99\x0a\x99\x0b\x99\x0c\x99\x0e\x99\x0f\x99\x11\x99\x12\x99\x13\x99\x14\x99\x15\x99\x16\x99\x17\x99\x18\x99\x19\x99\x1a\x99\x1b\x99\x1c\x99\x1d\x99\x1e\x99\x1f\x99\x20\x99\x21\x99\x22\x99\x23\x99\x24\x99\x25\x99\x26\x99\x27\x99\x28\x99\x29\x99\x2a\x99\x2b\x99\x2c\x99\x2d\x99\x2f\x99\x30\x99\x31\x99\x32\x99\x33\x99\x34\x99\x35\x99\x36\x99\x37\x99\x38\x99\x39", /* c580 */ "\x00\x00\x99\x3a\x99\x3b\x99\x3c\x99\x3d\x99\x3e\x99\x3f\x99\x40\x99\x41\x99\x42\x99\x43\x99\x44\x99\x45\x99\x46\x99\x47\x99\x48\x99\x49\x99\x4a\x99\x4b\x99\x4c\x99\x4d\x99\x4e\x99\x4f\x99\x50\x99\x51\x99\x52\x99\x53\x99\x56\x99\x57\x99\x58\x99\x59\x99\x5a\x99\x5b\x99\x5c\x99\x5d\x99\x5e\x99\x5f\x99\x60\x99\x61\x99\x62\x99\x64\x99\x66\x99\x73\x99\x78\x99\x79\x99\x7b\x99\x7e\x99\x82\x99\x83\x99\x89\x99\x8c\x99\x8e\x99\x9a\x99\x9b\x99\x9c\x99\x9d\x99\x9e\x99\x9f\x99\xa0\x99\xa1\x99\xa2\x99\xa3\x99\xa4\x99\xa6\x99\xa7\x99\xa9\x99\xaa\x99\xab\x99\xac\x99\xad\x99\xae\x99\xaf\x99\xb0\x99\xb1\x99\xb2\x99\xb3\x99\xb4\x99\xb5\x99\xb6\x99\xb7\x99\xb8\x99\xb9\x99\xba\x99\xbb\x99\xbc\x99\xbd\x99\xbe\x99\xbf\x99\xc0\x99\xc1\x99\xc2\x99\xc3\x99\xc4\x99\xc5\x99\xc6\x99\xc7\x99\xc8\x99\xc9\x99\xca\x99\xcb\x99\xcc\x99\xcd\x99\xce\x99\xcf\x99\xd0\x99\xd1\x99\xd2\x99\xd3\x99\xd4\x99\xd5\x99\xd6\x99\xd7\x99\xd8\x99\xd9\x99\xda\x99\xdb\x99\xdc\x99\xdd\x99\xde\x99\xdf\x99\xe0\x99\xe1\x99\xe2\x99\xe3\x99\xe4\x99\xe5\x00\x00\x00\x00", /* c600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xe6\x99\xe7\x99\xe8\x99\xe9\x99\xea\x99\xeb\x99\xec\x99\xed\x99\xee\x99\xef\x99\xf0\x99\xf1\x99\xf2\x99\xf3\x99\xf4\x99\xf5\x99\xf6\x99\xf7\x99\xf8\x99\xf9\x99\xfa\x99\xfb\x99\xfc\x99\xfd\x99\xfe\x99\xff\x9a\x00\x9a\x01\x9a\x02\x9a\x03\x9a\x04\x9a\x05\x9a\x06\x9a\x07\x9a\x08\x9a\x09\x9a\x0a\x9a\x0b\x9a\x0c\x9a\x0d\x9a\x0e\x9a\x0f\x9a\x10\x9a\x11\x9a\x12\x9a\x13\x9a\x14\x9a\x15\x9a\x16\x9a\x17\x9a\x18\x9a\x19\x9a\x1a\x9a\x1b\x9a\x1c\x9a\x1d\x9a\x1e\x9a\x1f\x9a\x20\x9a\x21\x9a\x22\x9a\x23\x9a\x24", /* c680 */ "\x00\x00\x9a\x25\x9a\x26\x9a\x27\x9a\x28\x9a\x29\x9a\x2a\x9a\x2b\x9a\x2c\x9a\x2d\x9a\x2e\x9a\x2f\x9a\x30\x9a\x31\x9a\x32\x9a\x33\x9a\x34\x9a\x35\x9a\x36\x9a\x37\x9a\x38\x9a\x39\x9a\x3a\x9a\x3b\x9a\x3c\x9a\x3d\x9a\x3e\x9a\x3f\x9a\x40\x9a\x41\x9a\x42\x9a\x43\x9a\x44\x9a\x45\x9a\x46\x9a\x47\x9a\x48\x9a\x49\x9a\x4a\x9a\x4b\x9a\x4c\x9a\x4d\x9a\x4e\x9a\x4f\x9a\x50\x9a\x51\x9a\x52\x9a\x53\x9a\x54\x9a\x55\x9a\x56\x9a\x57\x9a\x58\x9a\x59\x9a\x5a\x9a\x5b\x9a\x5c\x9a\x5d\x9a\x5e\x9a\x5f\x9a\x60\x9a\x61\x9a\x62\x9a\x63\x9a\x64\x9a\x65\x9a\x66\x9a\x67\x9a\x68\x9a\x69\x9a\x6a\x9a\x6b\x9a\x72\x9a\x83\x9a\x89\x9a\x8d\x9a\x8e\x9a\x94\x9a\x95\x9a\x99\x9a\xa6\x9a\xa9\x9a\xaa\x9a\xab\x9a\xac\x9a\xad\x9a\xae\x9a\xaf\x9a\xb2\x9a\xb3\x9a\xb4\x9a\xb5\x9a\xb9\x9a\xbb\x9a\xbd\x9a\xbe\x9a\xbf\x9a\xc3\x9a\xc4\x9a\xc6\x9a\xc7\x9a\xc8\x9a\xc9\x9a\xca\x9a\xcd\x9a\xce\x9a\xcf\x9a\xd0\x9a\xd2\x9a\xd4\x9a\xd5\x9a\xd6\x9a\xd7\x9a\xd9\x9a\xda\x9a\xdb\x9a\xdc\x9a\xdd\x9a\xde\x9a\xe0\x9a\xe2\x9a\xe3\x9a\xe4\x9a\xe5\x9a\xe7\x9a\xe8\x00\x00\x00\x00", /* c700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xe9\x9a\xea\x9a\xec\x9a\xee\x9a\xf0\x9a\xf1\x9a\xf2\x9a\xf3\x9a\xf4\x9a\xf5\x9a\xf6\x9a\xf7\x9a\xf8\x9a\xfa\x9a\xfc\x9a\xfd\x9a\xfe\x9a\xff\x9b\x00\x9b\x01\x9b\x02\x9b\x04\x9b\x05\x9b\x06\x9b\x07\x9b\x09\x9b\x0a\x9b\x0b\x9b\x0c\x9b\x0d\x9b\x0e\x9b\x10\x9b\x11\x9b\x12\x9b\x14\x9b\x15\x9b\x16\x9b\x17\x9b\x18\x9b\x19\x9b\x1a\x9b\x1b\x9b\x1c\x9b\x1d\x9b\x1e\x9b\x20\x9b\x21\x9b\x22\x9b\x24\x9b\x25\x9b\x26\x9b\x27\x9b\x28\x9b\x29\x9b\x2a\x9b\x2b\x9b\x2c\x9b\x2d\x9b\x2e\x9b\x30\x9b\x31\x9b\x33\x9b\x34", /* c780 */ "\x00\x00\x9b\x35\x9b\x36\x9b\x37\x9b\x38\x9b\x39\x9b\x3a\x9b\x3d\x9b\x3e\x9b\x3f\x9b\x40\x9b\x46\x9b\x4a\x9b\x4b\x9b\x4c\x9b\x4e\x9b\x50\x9b\x52\x9b\x53\x9b\x55\x9b\x56\x9b\x57\x9b\x58\x9b\x59\x9b\x5a\x9b\x5b\x9b\x5c\x9b\x5d\x9b\x5e\x9b\x5f\x9b\x60\x9b\x61\x9b\x62\x9b\x63\x9b\x64\x9b\x65\x9b\x66\x9b\x67\x9b\x68\x9b\x69\x9b\x6a\x9b\x6b\x9b\x6c\x9b\x6d\x9b\x6e\x9b\x6f\x9b\x70\x9b\x71\x9b\x72\x9b\x73\x9b\x74\x9b\x75\x9b\x76\x9b\x77\x9b\x78\x9b\x79\x9b\x7a\x9b\x7b\x9b\x7c\x9b\x7d\x9b\x7e\x9b\x7f\x9b\x80\x9b\x81\x9b\x82\x9b\x83\x9b\x84\x9b\x85\x9b\x86\x9b\x87\x9b\x88\x9b\x89\x9b\x8a\x9b\x8b\x9b\x8c\x9b\x8d\x9b\x8e\x9b\x8f\x9b\x90\x9b\x91\x9b\x92\x9b\x93\x9b\x94\x9b\x95\x9b\x96\x9b\x97\x9b\x98\x9b\x99\x9b\x9a\x9b\x9b\x9b\x9c\x9b\x9d\x9b\x9e\x9b\x9f\x9b\xa0\x9b\xa1\x9b\xa2\x9b\xa3\x9b\xa4\x9b\xa5\x9b\xa6\x9b\xa7\x9b\xa8\x9b\xa9\x9b\xaa\x9b\xab\x9b\xac\x9b\xad\x9b\xae\x9b\xaf\x9b\xb0\x9b\xb1\x9b\xb2\x9b\xb3\x9b\xb4\x9b\xb5\x9b\xb6\x9b\xb7\x9b\xb8\x9b\xb9\x9b\xba\x9b\xbb\x9b\xbc\x9b\xbd\x9b\xbe\x9b\xbf\x00\x00\x00\x00", /* c800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xc0\x9b\xc1\x9b\xc2\x9b\xc3\x9b\xc4\x9b\xc5\x9b\xc6\x9b\xc7\x9b\xc8\x9b\xc9\x9b\xca\x9b\xcb\x9b\xcc\x9b\xcd\x9b\xce\x9b\xcf\x9b\xd0\x9b\xd1\x9b\xd2\x9b\xd3\x9b\xd4\x9b\xd5\x9b\xd6\x9b\xd7\x9b\xd8\x9b\xd9\x9b\xda\x9b\xdb\x9b\xdc\x9b\xdd\x9b\xde\x9b\xdf\x9b\xe0\x9b\xe1\x9b\xe2\x9b\xe3\x9b\xe4\x9b\xe5\x9b\xe6\x9b\xe7\x9b\xe8\x9b\xe9\x9b\xea\x9b\xeb\x9b\xec\x9b\xed\x9b\xee\x9b\xef\x9b\xf0\x9b\xf1\x9b\xf2\x9b\xf3\x9b\xf4\x9b\xf5\x9b\xf6\x9b\xf7\x9b\xf8\x9b\xf9\x9b\xfa\x9b\xfb\x9b\xfc\x9b\xfd\x9b\xfe", /* c880 */ "\x00\x00\x9b\xff\x9c\x00\x9c\x01\x9c\x02\x9c\x03\x9c\x04\x9c\x05\x9c\x06\x9c\x07\x9c\x08\x9c\x09\x9c\x0a\x9c\x0b\x9c\x0c\x9c\x0d\x9c\x0e\x9c\x0f\x9c\x10\x9c\x11\x9c\x12\x9c\x13\x9c\x14\x9c\x15\x9c\x16\x9c\x17\x9c\x18\x9c\x19\x9c\x1a\x9c\x1b\x9c\x1c\x9c\x1d\x9c\x1e\x9c\x1f\x9c\x20\x9c\x21\x9c\x22\x9c\x23\x9c\x24\x9c\x25\x9c\x26\x9c\x27\x9c\x28\x9c\x29\x9c\x2a\x9c\x2b\x9c\x2c\x9c\x2d\x9c\x2e\x9c\x2f\x9c\x30\x9c\x31\x9c\x32\x9c\x33\x9c\x34\x9c\x35\x9c\x36\x9c\x37\x9c\x38\x9c\x39\x9c\x3a\x9c\x3b\x9c\x3c\x9c\x3d\x9c\x3e\x9c\x3f\x9c\x40\x9c\x41\x9c\x42\x9c\x43\x9c\x44\x9c\x45\x9c\x46\x9c\x47\x9c\x48\x9c\x49\x9c\x4a\x9c\x4b\x9c\x4c\x9c\x4d\x9c\x4e\x9c\x4f\x9c\x50\x9c\x51\x9c\x52\x9c\x53\x9c\x54\x9c\x55\x9c\x56\x9c\x57\x9c\x58\x9c\x59\x9c\x5a\x9c\x5b\x9c\x5c\x9c\x5d\x9c\x5e\x9c\x5f\x9c\x60\x9c\x61\x9c\x62\x9c\x63\x9c\x64\x9c\x65\x9c\x66\x9c\x67\x9c\x68\x9c\x69\x9c\x6a\x9c\x6b\x9c\x6c\x9c\x6d\x9c\x6e\x9c\x6f\x9c\x70\x9c\x71\x9c\x72\x9c\x73\x9c\x74\x9c\x75\x9c\x76\x9c\x77\x9c\x78\x9c\x79\x9c\x7a\x9c\x7b\x00\x00\x00\x00", /* c900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x7d\x9c\x7e\x9c\x80\x9c\x83\x9c\x84\x9c\x89\x9c\x8a\x9c\x8c\x9c\x8f\x9c\x93\x9c\x96\x9c\x97\x9c\x98\x9c\x99\x9c\x9d\x9c\xaa\x9c\xac\x9c\xaf\x9c\xb9\x9c\xbe\x9c\xbf\x9c\xc0\x9c\xc1\x9c\xc2\x9c\xc8\x9c\xc9\x9c\xd1\x9c\xd2\x9c\xda\x9c\xdb\x9c\xe0\x9c\xe1\x9c\xe3\x9c\xe4\x9c\xe5\x9c\xe6\x9c\xe7\x9c\xe8\x9c\xe9\x9c\xea\x9c\xeb\x9c\xec\x9c\xed\x9c\xee\x9c\xef\x9c\xf0\x9c\xf1\x9c\xf2\x9c\xf3\x9c\xf4\x9c\xf5\x9c\xf6\x9c\xf7\x9c\xf8\x9c\xf9\x9c\xfa\x9c\xfb\x9c\xfc\x9c\xfd\x9c\xfe\x9c\xff\x9d\x00\x9d\x01", /* c980 */ "\x00\x00\x9d\x02\x9d\x03\x9d\x04\x9d\x05\x9d\x06\x9d\x07\x9d\x08\x9d\x09\x9d\x0a\x9d\x0b\x9d\x0c\x9d\x0d\x9d\x0e\x9d\x0f\x9d\x10\x9d\x11\x9d\x12\x9d\x13\x9d\x14\x9d\x15\x9d\x16\x9d\x17\x9d\x18\x9d\x19\x9d\x1a\x9d\x1b\x9d\x1c\x9d\x1d\x9d\x1e\x9d\x1f\x9d\x20\x9d\x21\x9d\x22\x9d\x23\x9d\x24\x9d\x25\x9d\x26\x9d\x27\x9d\x28\x9d\x29\x9d\x2a\x9d\x2b\x9d\x2c\x9d\x2d\x9d\x2e\x9d\x2f\x9d\x30\x9d\x31\x9d\x32\x9d\x33\x9d\x34\x9d\x35\x9d\x36\x9d\x37\x9d\x38\x9d\x39\x9d\x3a\x9d\x3b\x9d\x3c\x9d\x3d\x9d\x3e\x9d\x3f\x9d\x40\x9d\x41\x9d\x42\x9d\x43\x9d\x44\x9d\x45\x9d\x46\x9d\x47\x9d\x48\x9d\x49\x9d\x4a\x9d\x4b\x9d\x4c\x9d\x4d\x9d\x4e\x9d\x4f\x9d\x50\x9d\x51\x9d\x52\x9d\x53\x9d\x54\x9d\x55\x9d\x56\x9d\x57\x9d\x58\x9d\x59\x9d\x5a\x9d\x5b\x9d\x5c\x9d\x5d\x9d\x5e\x9d\x5f\x9d\x60\x9d\x61\x9d\x62\x9d\x63\x9d\x64\x9d\x65\x9d\x66\x9d\x67\x9d\x68\x9d\x69\x9d\x6a\x9d\x6b\x9d\x6c\x9d\x6d\x9d\x6e\x9d\x6f\x9d\x70\x9d\x71\x9d\x72\x9d\x73\x9d\x74\x9d\x75\x9d\x76\x9d\x77\x9d\x78\x9d\x79\x9d\x7a\x9d\x7b\x9d\x7c\x9d\x7d\x9d\x7e\x00\x00\x00\x00", /* ca00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x7f\x9d\x80\x9d\x81\x9d\x82\x9d\x83\x9d\x84\x9d\x85\x9d\x86\x9d\x87\x9d\x88\x9d\x89\x9d\x8a\x9d\x8b\x9d\x8c\x9d\x8d\x9d\x8e\x9d\x8f\x9d\x90\x9d\x91\x9d\x92\x9d\x93\x9d\x94\x9d\x95\x9d\x96\x9d\x97\x9d\x98\x9d\x99\x9d\x9a\x9d\x9b\x9d\x9c\x9d\x9d\x9d\x9e\x9d\x9f\x9d\xa0\x9d\xa1\x9d\xa2\x9d\xa3\x9d\xa4\x9d\xa5\x9d\xa6\x9d\xa7\x9d\xa8\x9d\xa9\x9d\xaa\x9d\xab\x9d\xac\x9d\xad\x9d\xae\x9d\xaf\x9d\xb0\x9d\xb1\x9d\xb2\x9d\xb3\x9d\xb4\x9d\xb5\x9d\xb6\x9d\xb7\x9d\xb8\x9d\xb9\x9d\xba\x9d\xbb\x9d\xbc\x9d\xbd", /* ca80 */ "\x00\x00\x9d\xbe\x9d\xbf\x9d\xc0\x9d\xc1\x9d\xc2\x9d\xc3\x9d\xc4\x9d\xc5\x9d\xc6\x9d\xc7\x9d\xc8\x9d\xc9\x9d\xca\x9d\xcb\x9d\xcc\x9d\xcd\x9d\xce\x9d\xcf\x9d\xd0\x9d\xd1\x9d\xd2\x9d\xd3\x9d\xd4\x9d\xd5\x9d\xd6\x9d\xd7\x9d\xd8\x9d\xd9\x9d\xda\x9d\xdb\x9d\xdc\x9d\xdd\x9d\xde\x9d\xdf\x9d\xe0\x9d\xe1\x9d\xe2\x9d\xe3\x9d\xe4\x9d\xe5\x9d\xe6\x9d\xe7\x9d\xe8\x9d\xe9\x9d\xea\x9d\xeb\x9d\xec\x9d\xed\x9d\xee\x9d\xef\x9d\xf0\x9d\xf1\x9d\xf2\x9d\xf3\x9d\xf4\x9d\xf5\x9d\xf6\x9d\xf7\x9d\xf8\x9d\xf9\x9d\xfa\x9d\xfb\x9d\xfc\x9d\xfd\x9d\xfe\x9d\xff\x9e\x00\x9e\x01\x9e\x02\x9e\x03\x9e\x04\x9e\x05\x9e\x06\x9e\x07\x9e\x08\x9e\x09\x9e\x0a\x9e\x0b\x9e\x0c\x9e\x0d\x9e\x0e\x9e\x0f\x9e\x10\x9e\x11\x9e\x12\x9e\x13\x9e\x14\x9e\x15\x9e\x16\x9e\x17\x9e\x18\x9e\x19\x9e\x1a\x9e\x1b\x9e\x1c\x9e\x1d\x9e\x1e\x9e\x24\x9e\x27\x9e\x2e\x9e\x30\x9e\x34\x9e\x3b\x9e\x3c\x9e\x40\x9e\x4d\x9e\x50\x9e\x52\x9e\x53\x9e\x54\x9e\x56\x9e\x59\x9e\x5d\x9e\x5f\x9e\x60\x9e\x61\x9e\x62\x9e\x65\x9e\x6e\x9e\x6f\x9e\x72\x9e\x74\x9e\x75\x9e\x76\x9e\x77\x00\x00\x00\x00", /* cb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x78\x9e\x79\x9e\x7a\x9e\x7b\x9e\x7c\x9e\x7d\x9e\x80\x9e\x81\x9e\x83\x9e\x84\x9e\x85\x9e\x86\x9e\x89\x9e\x8a\x9e\x8c\x9e\x8d\x9e\x8e\x9e\x8f\x9e\x90\x9e\x91\x9e\x94\x9e\x95\x9e\x96\x9e\x97\x9e\x98\x9e\x99\x9e\x9a\x9e\x9b\x9e\x9c\x9e\x9e\x9e\xa0\x9e\xa1\x9e\xa2\x9e\xa3\x9e\xa4\x9e\xa5\x9e\xa7\x9e\xa8\x9e\xa9\x9e\xaa\x9e\xab\x9e\xac\x9e\xad\x9e\xae\x9e\xaf\x9e\xb0\x9e\xb1\x9e\xb2\x9e\xb3\x9e\xb5\x9e\xb6\x9e\xb7\x9e\xb9\x9e\xba\x9e\xbc\x9e\xbf\x9e\xc0\x9e\xc1\x9e\xc2\x9e\xc3\x9e\xc5\x9e\xc6\x9e\xc7", /* cb80 */ "\x00\x00\x9e\xc8\x9e\xca\x9e\xcb\x9e\xcc\x9e\xd0\x9e\xd2\x9e\xd3\x9e\xd5\x9e\xd6\x9e\xd7\x9e\xd9\x9e\xda\x9e\xde\x9e\xe1\x9e\xe3\x9e\xe4\x9e\xe6\x9e\xe8\x9e\xeb\x9e\xec\x9e\xed\x9e\xee\x9e\xf0\x9e\xf1\x9e\xf2\x9e\xf3\x9e\xf4\x9e\xf5\x9e\xf6\x9e\xf7\x9e\xf8\x9e\xfa\x9e\xfd\x9e\xff\x9f\x00\x9f\x01\x9f\x02\x9f\x03\x9f\x04\x9f\x05\x9f\x06\x9f\x07\x9f\x08\x9f\x09\x9f\x0a\x9f\x0c\x9f\x0f\x9f\x11\x9f\x12\x9f\x14\x9f\x15\x9f\x16\x9f\x18\x9f\x1a\x9f\x1b\x9f\x1c\x9f\x1d\x9f\x1e\x9f\x1f\x9f\x21\x9f\x23\x9f\x24\x9f\x25\x9f\x26\x9f\x27\x9f\x28\x9f\x29\x9f\x2a\x9f\x2b\x9f\x2d\x9f\x2e\x9f\x30\x9f\x31\x9f\x32\x9f\x33\x9f\x34\x9f\x35\x9f\x36\x9f\x38\x9f\x3a\x9f\x3c\x9f\x3f\x9f\x40\x9f\x41\x9f\x42\x9f\x43\x9f\x45\x9f\x46\x9f\x47\x9f\x48\x9f\x49\x9f\x4a\x9f\x4b\x9f\x4c\x9f\x4d\x9f\x4e\x9f\x4f\x9f\x52\x9f\x53\x9f\x54\x9f\x55\x9f\x56\x9f\x57\x9f\x58\x9f\x59\x9f\x5a\x9f\x5b\x9f\x5c\x9f\x5d\x9f\x5e\x9f\x5f\x9f\x60\x9f\x61\x9f\x62\x9f\x63\x9f\x64\x9f\x65\x9f\x66\x9f\x67\x9f\x68\x9f\x69\x9f\x6a\x9f\x6b\x9f\x6c\x9f\x6d\x00\x00\x00\x00", /* cc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x6e\x9f\x6f\x9f\x70\x9f\x71\x9f\x72\x9f\x73\x9f\x74\x9f\x75\x9f\x76\x9f\x77\x9f\x78\x9f\x79\x9f\x7a\x9f\x7b\x9f\x7c\x9f\x7d\x9f\x7e\x9f\x81\x9f\x82\x9f\x8d\x9f\x8e\x9f\x8f\x9f\x90\x9f\x91\x9f\x92\x9f\x93\x9f\x94\x9f\x95\x9f\x96\x9f\x97\x9f\x98\x9f\x9c\x9f\x9d\x9f\x9e\x9f\xa1\x9f\xa2\x9f\xa3\x9f\xa4\x9f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* cc80 */ NULL, /* cd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xca\x02\xcb\x02\xd9\x20\x13\x20\x14\x20\x35\x21\x05\x21\x09\x21\x96\x21\x97\x21\x98\x21\x99\x22\x15\x22\x1f\x22\x23\x22\x52\x22\x66\x22\x67\x22\xbf\x25\x50\x25\x51\x25\x52\x25\x53\x25\x54\x25\x55\x25\x56\x25\x57\x25\x58\x25\x59\x25\x5a\x25\x5b\x25\x5c\x25\x5d\x25\x5e\x25\x5f\x25\x60\x25\x61\x25\x62\x25\x63\x25\x64\x25\x65\x25\x66\x25\x67\x25\x68\x25\x69\x25\x6a\x25\x6b\x25\x6c\x25\x6d\x25\x6e\x25\x6f\x25\x70\x25\x71\x25\x72\x25\x73\x25\x81\x25\x82\x25\x83\x25\x84\x25\x85\x25\x86\x25\x87\x25\x88", /* cd80 */ "\x00\x00\x25\x89\x25\x8a\x25\x8b\x25\x8c\x25\x8d\x25\x8e\x25\x8f\x25\x93\x25\x94\x25\x95\x25\xe2\x25\xe3\x25\xe4\x25\xe5\x26\x09\x22\x95\x30\x1d\x30\x1e\x30\x21\x30\x22\x30\x23\x30\x24\x30\x25\x30\x26\x30\x27\x30\x28\x30\x29\x32\xa3\x33\x8e\x33\x8f\x33\x9c\x33\x9d\x33\x9e\x33\xa1\x33\xc4\x33\xce\x33\xd1\x33\xd2\x33\xd5\xfe\x30\xfe\x49\xfe\x4a\xfe\x4b\xfe\x4c\xfe\x4d\xfe\x4e\xfe\x4f\xfe\x50\xfe\x51\xfe\x52\xfe\x54\xfe\x55\xfe\x56\xfe\x57\xfe\x59\xfe\x5a\xfe\x5b\xfe\x5c\xfe\x5d\xfe\x5e\xfe\x5f\xfe\x60\xfe\x61\xfe\x62\xfe\x63\xfe\x64\xfe\x65\xfe\x66\xfe\x68\xfe\x69\xfe\x6a\xfe\x6b\x30\x3e\x2f\xf0\x2f\xf1\x2f\xf2\x2f\xf3\x2f\xf4\x2f\xf5\x2f\xf6\x2f\xf7\x2f\xf8\x2f\xf9\x2f\xfa\x2f\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ce00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x2c\xf9\x79\xf9\x95\xf9\xe7\xf9\xf1\xfa\x0c\xfa\x0d\xfa\x0e\xfa\x0f\xfa\x11\xfa\x13\xfa\x14\xfa\x18\xfa\x1f\xfa\x20\xfa\x21\xfa\x23\xfa\x24\xfa\x27\xfa\x28\xfa\x29\x2e\x81\xe8\x16\xe8\x17\xe8\x18\x2e\x84\x34\x73\x34\x47\x2e\x88\x2e\x8b\xe8\x1e\x35\x9e\x36\x1a\x36\x0e\x2e\x8c\x2e\x97\x39\x6e\x39\x18\xe8\x26\x39\xcf\x39\xdf\x3a\x73\x39\xd0\xe8\x2b\xe8\x2c\x3b\x4e\x3c\x6e\x3c\xe0\x2e\xa7\xe8\x31\xe8\x32\x2e\xaa\x40\x56\x41\x5f\x2e\xae\x43\x37\x2e\xb3\x2e\xb6\x2e\xb7\xe8\x3b\x43\xb1\x43\xac\x2e\xbb", /* ce80 */ "\x00\x00\x43\xdd\x44\xd6\x46\x61\x46\x4c\xe8\x43\x47\x23\x47\x29\x47\x7c\x47\x8d\x2e\xca\x49\x47\x49\x7a\x49\x7d\x49\x82\x49\x83\x49\x85\x49\x86\x49\x9f\x49\x9b\x49\xb7\x49\xb6\xe8\x54\xe8\x55\x4c\xa3\x4c\x9f\x4c\xa0\x4c\xa1\x4c\x77\x4c\xa2\x4d\x13\x4d\x14\x4d\x15\x4d\x16\x4d\x17\x4d\x18\x4d\x19\x4d\xae\xe8\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* cf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x34\x01\x34\x02\x34\x03\x34\x04\x34\x05\x34\x06\x34\x07\x34\x08\x34\x09\x34\x0a\x34\x0b\x34\x0c\x34\x0d\x34\x0e\x34\x0f\x34\x10\x34\x11\x34\x12\x34\x13\x34\x14\x34\x15\x34\x16\x34\x17\x34\x18\x34\x19\x34\x1a\x34\x1b\x34\x1c\x34\x1d\x34\x1e\x34\x1f\x34\x20\x34\x21\x34\x22\x34\x23\x34\x24\x34\x25\x34\x26\x34\x27\x34\x28\x34\x29\x34\x2a\x34\x2b\x34\x2c\x34\x2d\x34\x2e\x34\x2f\x34\x30\x34\x31\x34\x32\x34\x33\x34\x34\x34\x35\x34\x36\x34\x37\x34\x38\x34\x39\x34\x3a\x34\x3b\x34\x3c\x34\x3d\x34\x3e", /* cf80 */ "\x34\x3f\x34\x40\x34\x41\x34\x42\x34\x43\x34\x44\x34\x45\x34\x46\x34\x48\x34\x49\x34\x4a\x34\x4b\x34\x4c\x34\x4d\x34\x4e\x34\x4f\x34\x50\x34\x51\x34\x52\x34\x53\x34\x54\x34\x55\x34\x56\x34\x57\x34\x58\x34\x59\x34\x5a\x34\x5b\x34\x5c\x34\x5d\x34\x5e\x34\x5f\x34\x60\x34\x61\x34\x62\x34\x63\x34\x64\x34\x65\x34\x66\x34\x67\x34\x68\x34\x69\x34\x6a\x34\x6b\x34\x6c\x34\x6d\x34\x6e\x34\x6f\x34\x70\x34\x71\x34\x72\x34\x74\x34\x75\x34\x76\x34\x77\x34\x78\x34\x79\x34\x7a\x34\x7b\x34\x7c\x34\x7d\x34\x7e\x34\x7f\x34\x80\x34\x81\x34\x82\x34\x83\x34\x84\x34\x85\x34\x86\x34\x87\x34\x88\x34\x89\x34\x8a\x34\x8b\x34\x8c\x34\x8d\x34\x8e\x34\x8f\x34\x90\x34\x91\x34\x92\x34\x93\x34\x94\x34\x95\x34\x96\x34\x97\x34\x98\x34\x99\x34\x9a\x34\x9b\x34\x9c\x34\x9d\x34\x9e\x34\x9f\x34\xa0\x34\xa1\x34\xa2\x34\xa3\x34\xa4\x34\xa5\x34\xa6\x34\xa7\x34\xa8\x34\xa9\x34\xaa\x34\xab\x34\xac\x34\xad\x34\xae\x34\xaf\x34\xb0\x34\xb1\x34\xb2\x34\xb3\x34\xb4\x34\xb5\x34\xb6\x34\xb7\x34\xb8\x34\xb9\x34\xba\x34\xbb\x34\xbc\x34\xbd\x34\xbe\x34\xbf\x00\x00", /* d000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\xc0\x34\xc1\x34\xc2\x34\xc3\x34\xc4\x34\xc5\x34\xc6\x34\xc7\x34\xc8\x34\xc9\x34\xca\x34\xcb\x34\xcc\x34\xcd\x34\xce\x34\xcf\x34\xd0\x34\xd1\x34\xd2\x34\xd3\x34\xd4\x34\xd5\x34\xd6\x34\xd7\x34\xd8\x34\xd9\x34\xda\x34\xdb\x34\xdc\x34\xdd\x34\xde\x34\xdf\x34\xe0\x34\xe1\x34\xe2\x34\xe3\x34\xe4\x34\xe5\x34\xe6\x34\xe7\x34\xe8\x34\xe9\x34\xea\x34\xeb\x34\xec\x34\xed\x34\xee\x34\xef\x34\xf0\x34\xf1\x34\xf2\x34\xf3\x34\xf4\x34\xf5\x34\xf6\x34\xf7\x34\xf8\x34\xf9\x34\xfa\x34\xfb\x34\xfc\x34\xfd\x34\xfe", /* d080 */ "\x34\xff\x35\x00\x35\x01\x35\x02\x35\x03\x35\x04\x35\x05\x35\x06\x35\x07\x35\x08\x35\x09\x35\x0a\x35\x0b\x35\x0c\x35\x0d\x35\x0e\x35\x0f\x35\x10\x35\x11\x35\x12\x35\x13\x35\x14\x35\x15\x35\x16\x35\x17\x35\x18\x35\x19\x35\x1a\x35\x1b\x35\x1c\x35\x1d\x35\x1e\x35\x1f\x35\x20\x35\x21\x35\x22\x35\x23\x35\x24\x35\x25\x35\x26\x35\x27\x35\x28\x35\x29\x35\x2a\x35\x2b\x35\x2c\x35\x2d\x35\x2e\x35\x2f\x35\x30\x35\x31\x35\x32\x35\x33\x35\x34\x35\x35\x35\x36\x35\x37\x35\x38\x35\x39\x35\x3a\x35\x3b\x35\x3c\x35\x3d\x35\x3e\x35\x3f\x35\x40\x35\x41\x35\x42\x35\x43\x35\x44\x35\x45\x35\x46\x35\x47\x35\x48\x35\x49\x35\x4a\x35\x4b\x35\x4c\x35\x4d\x35\x4e\x35\x4f\x35\x50\x35\x51\x35\x52\x35\x53\x35\x54\x35\x55\x35\x56\x35\x57\x35\x58\x35\x59\x35\x5a\x35\x5b\x35\x5c\x35\x5d\x35\x5e\x35\x5f\x35\x60\x35\x61\x35\x62\x35\x63\x35\x64\x35\x65\x35\x66\x35\x67\x35\x68\x35\x69\x35\x6a\x35\x6b\x35\x6c\x35\x6d\x35\x6e\x35\x6f\x35\x70\x35\x71\x35\x72\x35\x73\x35\x74\x35\x75\x35\x76\x35\x77\x35\x78\x35\x79\x35\x7a\x35\x7b\x35\x7c\x35\x7d\x00\x00", /* d100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x7e\x35\x7f\x35\x80\x35\x81\x35\x82\x35\x83\x35\x84\x35\x85\x35\x86\x35\x87\x35\x88\x35\x89\x35\x8a\x35\x8b\x35\x8c\x35\x8d\x35\x8e\x35\x8f\x35\x90\x35\x91\x35\x92\x35\x93\x35\x94\x35\x95\x35\x96\x35\x97\x35\x98\x35\x99\x35\x9a\x35\x9b\x35\x9c\x35\x9d\x35\x9f\x35\xa0\x35\xa1\x35\xa2\x35\xa3\x35\xa4\x35\xa5\x35\xa6\x35\xa7\x35\xa8\x35\xa9\x35\xaa\x35\xab\x35\xac\x35\xad\x35\xae\x35\xaf\x35\xb0\x35\xb1\x35\xb2\x35\xb3\x35\xb4\x35\xb5\x35\xb6\x35\xb7\x35\xb8\x35\xb9\x35\xba\x35\xbb\x35\xbc\x35\xbd", /* d180 */ "\x35\xbe\x35\xbf\x35\xc0\x35\xc1\x35\xc2\x35\xc3\x35\xc4\x35\xc5\x35\xc6\x35\xc7\x35\xc8\x35\xc9\x35\xca\x35\xcb\x35\xcc\x35\xcd\x35\xce\x35\xcf\x35\xd0\x35\xd1\x35\xd2\x35\xd3\x35\xd4\x35\xd5\x35\xd6\x35\xd7\x35\xd8\x35\xd9\x35\xda\x35\xdb\x35\xdc\x35\xdd\x35\xde\x35\xdf\x35\xe0\x35\xe1\x35\xe2\x35\xe3\x35\xe4\x35\xe5\x35\xe6\x35\xe7\x35\xe8\x35\xe9\x35\xea\x35\xeb\x35\xec\x35\xed\x35\xee\x35\xef\x35\xf0\x35\xf1\x35\xf2\x35\xf3\x35\xf4\x35\xf5\x35\xf6\x35\xf7\x35\xf8\x35\xf9\x35\xfa\x35\xfb\x35\xfc\x35\xfd\x35\xfe\x35\xff\x36\x00\x36\x01\x36\x02\x36\x03\x36\x04\x36\x05\x36\x06\x36\x07\x36\x08\x36\x09\x36\x0a\x36\x0b\x36\x0c\x36\x0d\x36\x0f\x36\x10\x36\x11\x36\x12\x36\x13\x36\x14\x36\x15\x36\x16\x36\x17\x36\x18\x36\x19\x36\x1b\x36\x1c\x36\x1d\x36\x1e\x36\x1f\x36\x20\x36\x21\x36\x22\x36\x23\x36\x24\x36\x25\x36\x26\x36\x27\x36\x28\x36\x29\x36\x2a\x36\x2b\x36\x2c\x36\x2d\x36\x2e\x36\x2f\x36\x30\x36\x31\x36\x32\x36\x33\x36\x34\x36\x35\x36\x36\x36\x37\x36\x38\x36\x39\x36\x3a\x36\x3b\x36\x3c\x36\x3d\x36\x3e\x00\x00", /* d200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x3f\x36\x40\x36\x41\x36\x42\x36\x43\x36\x44\x36\x45\x36\x46\x36\x47\x36\x48\x36\x49\x36\x4a\x36\x4b\x36\x4c\x36\x4d\x36\x4e\x36\x4f\x36\x50\x36\x51\x36\x52\x36\x53\x36\x54\x36\x55\x36\x56\x36\x57\x36\x58\x36\x59\x36\x5a\x36\x5b\x36\x5c\x36\x5d\x36\x5e\x36\x5f\x36\x60\x36\x61\x36\x62\x36\x63\x36\x64\x36\x65\x36\x66\x36\x67\x36\x68\x36\x69\x36\x6a\x36\x6b\x36\x6c\x36\x6d\x36\x6e\x36\x6f\x36\x70\x36\x71\x36\x72\x36\x73\x36\x74\x36\x75\x36\x76\x36\x77\x36\x78\x36\x79\x36\x7a\x36\x7b\x36\x7c\x36\x7d", /* d280 */ "\x36\x7e\x36\x7f\x36\x80\x36\x81\x36\x82\x36\x83\x36\x84\x36\x85\x36\x86\x36\x87\x36\x88\x36\x89\x36\x8a\x36\x8b\x36\x8c\x36\x8d\x36\x8e\x36\x8f\x36\x90\x36\x91\x36\x92\x36\x93\x36\x94\x36\x95\x36\x96\x36\x97\x36\x98\x36\x99\x36\x9a\x36\x9b\x36\x9c\x36\x9d\x36\x9e\x36\x9f\x36\xa0\x36\xa1\x36\xa2\x36\xa3\x36\xa4\x36\xa5\x36\xa6\x36\xa7\x36\xa8\x36\xa9\x36\xaa\x36\xab\x36\xac\x36\xad\x36\xae\x36\xaf\x36\xb0\x36\xb1\x36\xb2\x36\xb3\x36\xb4\x36\xb5\x36\xb6\x36\xb7\x36\xb8\x36\xb9\x36\xba\x36\xbb\x36\xbc\x36\xbd\x36\xbe\x36\xbf\x36\xc0\x36\xc1\x36\xc2\x36\xc3\x36\xc4\x36\xc5\x36\xc6\x36\xc7\x36\xc8\x36\xc9\x36\xca\x36\xcb\x36\xcc\x36\xcd\x36\xce\x36\xcf\x36\xd0\x36\xd1\x36\xd2\x36\xd3\x36\xd4\x36\xd5\x36\xd6\x36\xd7\x36\xd8\x36\xd9\x36\xda\x36\xdb\x36\xdc\x36\xdd\x36\xde\x36\xdf\x36\xe0\x36\xe1\x36\xe2\x36\xe3\x36\xe4\x36\xe5\x36\xe6\x36\xe7\x36\xe8\x36\xe9\x36\xea\x36\xeb\x36\xec\x36\xed\x36\xee\x36\xef\x36\xf0\x36\xf1\x36\xf2\x36\xf3\x36\xf4\x36\xf5\x36\xf6\x36\xf7\x36\xf8\x36\xf9\x36\xfa\x36\xfb\x36\xfc\x00\x00", /* d300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\xfd\x36\xfe\x36\xff\x37\x00\x37\x01\x37\x02\x37\x03\x37\x04\x37\x05\x37\x06\x37\x07\x37\x08\x37\x09\x37\x0a\x37\x0b\x37\x0c\x37\x0d\x37\x0e\x37\x0f\x37\x10\x37\x11\x37\x12\x37\x13\x37\x14\x37\x15\x37\x16\x37\x17\x37\x18\x37\x19\x37\x1a\x37\x1b\x37\x1c\x37\x1d\x37\x1e\x37\x1f\x37\x20\x37\x21\x37\x22\x37\x23\x37\x24\x37\x25\x37\x26\x37\x27\x37\x28\x37\x29\x37\x2a\x37\x2b\x37\x2c\x37\x2d\x37\x2e\x37\x2f\x37\x30\x37\x31\x37\x32\x37\x33\x37\x34\x37\x35\x37\x36\x37\x37\x37\x38\x37\x39\x37\x3a\x37\x3b", /* d380 */ "\x37\x3c\x37\x3d\x37\x3e\x37\x3f\x37\x40\x37\x41\x37\x42\x37\x43\x37\x44\x37\x45\x37\x46\x37\x47\x37\x48\x37\x49\x37\x4a\x37\x4b\x37\x4c\x37\x4d\x37\x4e\x37\x4f\x37\x50\x37\x51\x37\x52\x37\x53\x37\x54\x37\x55\x37\x56\x37\x57\x37\x58\x37\x59\x37\x5a\x37\x5b\x37\x5c\x37\x5d\x37\x5e\x37\x5f\x37\x60\x37\x61\x37\x62\x37\x63\x37\x64\x37\x65\x37\x66\x37\x67\x37\x68\x37\x69\x37\x6a\x37\x6b\x37\x6c\x37\x6d\x37\x6e\x37\x6f\x37\x70\x37\x71\x37\x72\x37\x73\x37\x74\x37\x75\x37\x76\x37\x77\x37\x78\x37\x79\x37\x7a\x37\x7b\x37\x7c\x37\x7d\x37\x7e\x37\x7f\x37\x80\x37\x81\x37\x82\x37\x83\x37\x84\x37\x85\x37\x86\x37\x87\x37\x88\x37\x89\x37\x8a\x37\x8b\x37\x8c\x37\x8d\x37\x8e\x37\x8f\x37\x90\x37\x91\x37\x92\x37\x93\x37\x94\x37\x95\x37\x96\x37\x97\x37\x98\x37\x99\x37\x9a\x37\x9b\x37\x9c\x37\x9d\x37\x9e\x37\x9f\x37\xa0\x37\xa1\x37\xa2\x37\xa3\x37\xa4\x37\xa5\x37\xa6\x37\xa7\x37\xa8\x37\xa9\x37\xaa\x37\xab\x37\xac\x37\xad\x37\xae\x37\xaf\x37\xb0\x37\xb1\x37\xb2\x37\xb3\x37\xb4\x37\xb5\x37\xb6\x37\xb7\x37\xb8\x37\xb9\x37\xba\x00\x00", /* d400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\xbb\x37\xbc\x37\xbd\x37\xbe\x37\xbf\x37\xc0\x37\xc1\x37\xc2\x37\xc3\x37\xc4\x37\xc5\x37\xc6\x37\xc7\x37\xc8\x37\xc9\x37\xca\x37\xcb\x37\xcc\x37\xcd\x37\xce\x37\xcf\x37\xd0\x37\xd1\x37\xd2\x37\xd3\x37\xd4\x37\xd5\x37\xd6\x37\xd7\x37\xd8\x37\xd9\x37\xda\x37\xdb\x37\xdc\x37\xdd\x37\xde\x37\xdf\x37\xe0\x37\xe1\x37\xe2\x37\xe3\x37\xe4\x37\xe5\x37\xe6\x37\xe7\x37\xe8\x37\xe9\x37\xea\x37\xeb\x37\xec\x37\xed\x37\xee\x37\xef\x37\xf0\x37\xf1\x37\xf2\x37\xf3\x37\xf4\x37\xf5\x37\xf6\x37\xf7\x37\xf8\x37\xf9", /* d480 */ "\x37\xfa\x37\xfb\x37\xfc\x37\xfd\x37\xfe\x37\xff\x38\x00\x38\x01\x38\x02\x38\x03\x38\x04\x38\x05\x38\x06\x38\x07\x38\x08\x38\x09\x38\x0a\x38\x0b\x38\x0c\x38\x0d\x38\x0e\x38\x0f\x38\x10\x38\x11\x38\x12\x38\x13\x38\x14\x38\x15\x38\x16\x38\x17\x38\x18\x38\x19\x38\x1a\x38\x1b\x38\x1c\x38\x1d\x38\x1e\x38\x1f\x38\x20\x38\x21\x38\x22\x38\x23\x38\x24\x38\x25\x38\x26\x38\x27\x38\x28\x38\x29\x38\x2a\x38\x2b\x38\x2c\x38\x2d\x38\x2e\x38\x2f\x38\x30\x38\x31\x38\x32\x38\x33\x38\x34\x38\x35\x38\x36\x38\x37\x38\x38\x38\x39\x38\x3a\x38\x3b\x38\x3c\x38\x3d\x38\x3e\x38\x3f\x38\x40\x38\x41\x38\x42\x38\x43\x38\x44\x38\x45\x38\x46\x38\x47\x38\x48\x38\x49\x38\x4a\x38\x4b\x38\x4c\x38\x4d\x38\x4e\x38\x4f\x38\x50\x38\x51\x38\x52\x38\x53\x38\x54\x38\x55\x38\x56\x38\x57\x38\x58\x38\x59\x38\x5a\x38\x5b\x38\x5c\x38\x5d\x38\x5e\x38\x5f\x38\x60\x38\x61\x38\x62\x38\x63\x38\x64\x38\x65\x38\x66\x38\x67\x38\x68\x38\x69\x38\x6a\x38\x6b\x38\x6c\x38\x6d\x38\x6e\x38\x6f\x38\x70\x38\x71\x38\x72\x38\x73\x38\x74\x38\x75\x38\x76\x38\x77\x38\x78\x00\x00", /* d500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x79\x38\x7a\x38\x7b\x38\x7c\x38\x7d\x38\x7e\x38\x7f\x38\x80\x38\x81\x38\x82\x38\x83\x38\x84\x38\x85\x38\x86\x38\x87\x38\x88\x38\x89\x38\x8a\x38\x8b\x38\x8c\x38\x8d\x38\x8e\x38\x8f\x38\x90\x38\x91\x38\x92\x38\x93\x38\x94\x38\x95\x38\x96\x38\x97\x38\x98\x38\x99\x38\x9a\x38\x9b\x38\x9c\x38\x9d\x38\x9e\x38\x9f\x38\xa0\x38\xa1\x38\xa2\x38\xa3\x38\xa4\x38\xa5\x38\xa6\x38\xa7\x38\xa8\x38\xa9\x38\xaa\x38\xab\x38\xac\x38\xad\x38\xae\x38\xaf\x38\xb0\x38\xb1\x38\xb2\x38\xb3\x38\xb4\x38\xb5\x38\xb6\x38\xb7", /* d580 */ "\x38\xb8\x38\xb9\x38\xba\x38\xbb\x38\xbc\x38\xbd\x38\xbe\x38\xbf\x38\xc0\x38\xc1\x38\xc2\x38\xc3\x38\xc4\x38\xc5\x38\xc6\x38\xc7\x38\xc8\x38\xc9\x38\xca\x38\xcb\x38\xcc\x38\xcd\x38\xce\x38\xcf\x38\xd0\x38\xd1\x38\xd2\x38\xd3\x38\xd4\x38\xd5\x38\xd6\x38\xd7\x38\xd8\x38\xd9\x38\xda\x38\xdb\x38\xdc\x38\xdd\x38\xde\x38\xdf\x38\xe0\x38\xe1\x38\xe2\x38\xe3\x38\xe4\x38\xe5\x38\xe6\x38\xe7\x38\xe8\x38\xe9\x38\xea\x38\xeb\x38\xec\x38\xed\x38\xee\x38\xef\x38\xf0\x38\xf1\x38\xf2\x38\xf3\x38\xf4\x38\xf5\x38\xf6\x38\xf7\x38\xf8\x38\xf9\x38\xfa\x38\xfb\x38\xfc\x38\xfd\x38\xfe\x38\xff\x39\x00\x39\x01\x39\x02\x39\x03\x39\x04\x39\x05\x39\x06\x39\x07\x39\x08\x39\x09\x39\x0a\x39\x0b\x39\x0c\x39\x0d\x39\x0e\x39\x0f\x39\x10\x39\x11\x39\x12\x39\x13\x39\x14\x39\x15\x39\x16\x39\x17\x39\x19\x39\x1a\x39\x1b\x39\x1c\x39\x1d\x39\x1e\x39\x1f\x39\x20\x39\x21\x39\x22\x39\x23\x39\x24\x39\x25\x39\x26\x39\x27\x39\x28\x39\x29\x39\x2a\x39\x2b\x39\x2c\x39\x2d\x39\x2e\x39\x2f\x39\x30\x39\x31\x39\x32\x39\x33\x39\x34\x39\x35\x39\x36\x39\x37\x00\x00", /* d600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x38\x39\x39\x39\x3a\x39\x3b\x39\x3c\x39\x3d\x39\x3e\x39\x3f\x39\x40\x39\x41\x39\x42\x39\x43\x39\x44\x39\x45\x39\x46\x39\x47\x39\x48\x39\x49\x39\x4a\x39\x4b\x39\x4c\x39\x4d\x39\x4e\x39\x4f\x39\x50\x39\x51\x39\x52\x39\x53\x39\x54\x39\x55\x39\x56\x39\x57\x39\x58\x39\x59\x39\x5a\x39\x5b\x39\x5c\x39\x5d\x39\x5e\x39\x5f\x39\x60\x39\x61\x39\x62\x39\x63\x39\x64\x39\x65\x39\x66\x39\x67\x39\x68\x39\x69\x39\x6a\x39\x6b\x39\x6c\x39\x6d\x39\x6f\x39\x70\x39\x71\x39\x72\x39\x73\x39\x74\x39\x75\x39\x76\x39\x77", /* d680 */ "\x39\x78\x39\x79\x39\x7a\x39\x7b\x39\x7c\x39\x7d\x39\x7e\x39\x7f\x39\x80\x39\x81\x39\x82\x39\x83\x39\x84\x39\x85\x39\x86\x39\x87\x39\x88\x39\x89\x39\x8a\x39\x8b\x39\x8c\x39\x8d\x39\x8e\x39\x8f\x39\x90\x39\x91\x39\x92\x39\x93\x39\x94\x39\x95\x39\x96\x39\x97\x39\x98\x39\x99\x39\x9a\x39\x9b\x39\x9c\x39\x9d\x39\x9e\x39\x9f\x39\xa0\x39\xa1\x39\xa2\x39\xa3\x39\xa4\x39\xa5\x39\xa6\x39\xa7\x39\xa8\x39\xa9\x39\xaa\x39\xab\x39\xac\x39\xad\x39\xae\x39\xaf\x39\xb0\x39\xb1\x39\xb2\x39\xb3\x39\xb4\x39\xb5\x39\xb6\x39\xb7\x39\xb8\x39\xb9\x39\xba\x39\xbb\x39\xbc\x39\xbd\x39\xbe\x39\xbf\x39\xc0\x39\xc1\x39\xc2\x39\xc3\x39\xc4\x39\xc5\x39\xc6\x39\xc7\x39\xc8\x39\xc9\x39\xca\x39\xcb\x39\xcc\x39\xcd\x39\xce\x39\xd1\x39\xd2\x39\xd3\x39\xd4\x39\xd5\x39\xd6\x39\xd7\x39\xd8\x39\xd9\x39\xda\x39\xdb\x39\xdc\x39\xdd\x39\xde\x39\xe0\x39\xe1\x39\xe2\x39\xe3\x39\xe4\x39\xe5\x39\xe6\x39\xe7\x39\xe8\x39\xe9\x39\xea\x39\xeb\x39\xec\x39\xed\x39\xee\x39\xef\x39\xf0\x39\xf1\x39\xf2\x39\xf3\x39\xf4\x39\xf5\x39\xf6\x39\xf7\x39\xf8\x39\xf9\x00\x00", /* d700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\xfa\x39\xfb\x39\xfc\x39\xfd\x39\xfe\x39\xff\x3a\x00\x3a\x01\x3a\x02\x3a\x03\x3a\x04\x3a\x05\x3a\x06\x3a\x07\x3a\x08\x3a\x09\x3a\x0a\x3a\x0b\x3a\x0c\x3a\x0d\x3a\x0e\x3a\x0f\x3a\x10\x3a\x11\x3a\x12\x3a\x13\x3a\x14\x3a\x15\x3a\x16\x3a\x17\x3a\x18\x3a\x19\x3a\x1a\x3a\x1b\x3a\x1c\x3a\x1d\x3a\x1e\x3a\x1f\x3a\x20\x3a\x21\x3a\x22\x3a\x23\x3a\x24\x3a\x25\x3a\x26\x3a\x27\x3a\x28\x3a\x29\x3a\x2a\x3a\x2b\x3a\x2c\x3a\x2d\x3a\x2e\x3a\x2f\x3a\x30\x3a\x31\x3a\x32\x3a\x33\x3a\x34\x3a\x35\x3a\x36\x3a\x37\x3a\x38", /* d780 */ "\x3a\x39\x3a\x3a\x3a\x3b\x3a\x3c\x3a\x3d\x3a\x3e\x3a\x3f\x3a\x40\x3a\x41\x3a\x42\x3a\x43\x3a\x44\x3a\x45\x3a\x46\x3a\x47\x3a\x48\x3a\x49\x3a\x4a\x3a\x4b\x3a\x4c\x3a\x4d\x3a\x4e\x3a\x4f\x3a\x50\x3a\x51\x3a\x52\x3a\x53\x3a\x54\x3a\x55\x3a\x56\x3a\x57\x3a\x58\x3a\x59\x3a\x5a\x3a\x5b\x3a\x5c\x3a\x5d\x3a\x5e\x3a\x5f\x3a\x60\x3a\x61\x3a\x62\x3a\x63\x3a\x64\x3a\x65\x3a\x66\x3a\x67\x3a\x68\x3a\x69\x3a\x6a\x3a\x6b\x3a\x6c\x3a\x6d\x3a\x6e\x3a\x6f\x3a\x70\x3a\x71\x3a\x72\x3a\x74\x3a\x75\x3a\x76\x3a\x77\x3a\x78\x3a\x79\x3a\x7a\x3a\x7b\x3a\x7c\x3a\x7d\x3a\x7e\x3a\x7f\x3a\x80\x3a\x81\x3a\x82\x3a\x83\x3a\x84\x3a\x85\x3a\x86\x3a\x87\x3a\x88\x3a\x89\x3a\x8a\x3a\x8b\x3a\x8c\x3a\x8d\x3a\x8e\x3a\x8f\x3a\x90\x3a\x91\x3a\x92\x3a\x93\x3a\x94\x3a\x95\x3a\x96\x3a\x97\x3a\x98\x3a\x99\x3a\x9a\x3a\x9b\x3a\x9c\x3a\x9d\x3a\x9e\x3a\x9f\x3a\xa0\x3a\xa1\x3a\xa2\x3a\xa3\x3a\xa4\x3a\xa5\x3a\xa6\x3a\xa7\x3a\xa8\x3a\xa9\x3a\xaa\x3a\xab\x3a\xac\x3a\xad\x3a\xae\x3a\xaf\x3a\xb0\x3a\xb1\x3a\xb2\x3a\xb3\x3a\xb4\x3a\xb5\x3a\xb6\x3a\xb7\x3a\xb8\x00\x00", /* d800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\xb9\x3a\xba\x3a\xbb\x3a\xbc\x3a\xbd\x3a\xbe\x3a\xbf\x3a\xc0\x3a\xc1\x3a\xc2\x3a\xc3\x3a\xc4\x3a\xc5\x3a\xc6\x3a\xc7\x3a\xc8\x3a\xc9\x3a\xca\x3a\xcb\x3a\xcc\x3a\xcd\x3a\xce\x3a\xcf\x3a\xd0\x3a\xd1\x3a\xd2\x3a\xd3\x3a\xd4\x3a\xd5\x3a\xd6\x3a\xd7\x3a\xd8\x3a\xd9\x3a\xda\x3a\xdb\x3a\xdc\x3a\xdd\x3a\xde\x3a\xdf\x3a\xe0\x3a\xe1\x3a\xe2\x3a\xe3\x3a\xe4\x3a\xe5\x3a\xe6\x3a\xe7\x3a\xe8\x3a\xe9\x3a\xea\x3a\xeb\x3a\xec\x3a\xed\x3a\xee\x3a\xef\x3a\xf0\x3a\xf1\x3a\xf2\x3a\xf3\x3a\xf4\x3a\xf5\x3a\xf6\x3a\xf7", /* d880 */ "\x3a\xf8\x3a\xf9\x3a\xfa\x3a\xfb\x3a\xfc\x3a\xfd\x3a\xfe\x3a\xff\x3b\x00\x3b\x01\x3b\x02\x3b\x03\x3b\x04\x3b\x05\x3b\x06\x3b\x07\x3b\x08\x3b\x09\x3b\x0a\x3b\x0b\x3b\x0c\x3b\x0d\x3b\x0e\x3b\x0f\x3b\x10\x3b\x11\x3b\x12\x3b\x13\x3b\x14\x3b\x15\x3b\x16\x3b\x17\x3b\x18\x3b\x19\x3b\x1a\x3b\x1b\x3b\x1c\x3b\x1d\x3b\x1e\x3b\x1f\x3b\x20\x3b\x21\x3b\x22\x3b\x23\x3b\x24\x3b\x25\x3b\x26\x3b\x27\x3b\x28\x3b\x29\x3b\x2a\x3b\x2b\x3b\x2c\x3b\x2d\x3b\x2e\x3b\x2f\x3b\x30\x3b\x31\x3b\x32\x3b\x33\x3b\x34\x3b\x35\x3b\x36\x3b\x37\x3b\x38\x3b\x39\x3b\x3a\x3b\x3b\x3b\x3c\x3b\x3d\x3b\x3e\x3b\x3f\x3b\x40\x3b\x41\x3b\x42\x3b\x43\x3b\x44\x3b\x45\x3b\x46\x3b\x47\x3b\x48\x3b\x49\x3b\x4a\x3b\x4b\x3b\x4c\x3b\x4d\x3b\x4f\x3b\x50\x3b\x51\x3b\x52\x3b\x53\x3b\x54\x3b\x55\x3b\x56\x3b\x57\x3b\x58\x3b\x59\x3b\x5a\x3b\x5b\x3b\x5c\x3b\x5d\x3b\x5e\x3b\x5f\x3b\x60\x3b\x61\x3b\x62\x3b\x63\x3b\x64\x3b\x65\x3b\x66\x3b\x67\x3b\x68\x3b\x69\x3b\x6a\x3b\x6b\x3b\x6c\x3b\x6d\x3b\x6e\x3b\x6f\x3b\x70\x3b\x71\x3b\x72\x3b\x73\x3b\x74\x3b\x75\x3b\x76\x3b\x77\x00\x00", /* d900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x78\x3b\x79\x3b\x7a\x3b\x7b\x3b\x7c\x3b\x7d\x3b\x7e\x3b\x7f\x3b\x80\x3b\x81\x3b\x82\x3b\x83\x3b\x84\x3b\x85\x3b\x86\x3b\x87\x3b\x88\x3b\x89\x3b\x8a\x3b\x8b\x3b\x8c\x3b\x8d\x3b\x8e\x3b\x8f\x3b\x90\x3b\x91\x3b\x92\x3b\x93\x3b\x94\x3b\x95\x3b\x96\x3b\x97\x3b\x98\x3b\x99\x3b\x9a\x3b\x9b\x3b\x9c\x3b\x9d\x3b\x9e\x3b\x9f\x3b\xa0\x3b\xa1\x3b\xa2\x3b\xa3\x3b\xa4\x3b\xa5\x3b\xa6\x3b\xa7\x3b\xa8\x3b\xa9\x3b\xaa\x3b\xab\x3b\xac\x3b\xad\x3b\xae\x3b\xaf\x3b\xb0\x3b\xb1\x3b\xb2\x3b\xb3\x3b\xb4\x3b\xb5\x3b\xb6", /* d980 */ "\x3b\xb7\x3b\xb8\x3b\xb9\x3b\xba\x3b\xbb\x3b\xbc\x3b\xbd\x3b\xbe\x3b\xbf\x3b\xc0\x3b\xc1\x3b\xc2\x3b\xc3\x3b\xc4\x3b\xc5\x3b\xc6\x3b\xc7\x3b\xc8\x3b\xc9\x3b\xca\x3b\xcb\x3b\xcc\x3b\xcd\x3b\xce\x3b\xcf\x3b\xd0\x3b\xd1\x3b\xd2\x3b\xd3\x3b\xd4\x3b\xd5\x3b\xd6\x3b\xd7\x3b\xd8\x3b\xd9\x3b\xda\x3b\xdb\x3b\xdc\x3b\xdd\x3b\xde\x3b\xdf\x3b\xe0\x3b\xe1\x3b\xe2\x3b\xe3\x3b\xe4\x3b\xe5\x3b\xe6\x3b\xe7\x3b\xe8\x3b\xe9\x3b\xea\x3b\xeb\x3b\xec\x3b\xed\x3b\xee\x3b\xef\x3b\xf0\x3b\xf1\x3b\xf2\x3b\xf3\x3b\xf4\x3b\xf5\x3b\xf6\x3b\xf7\x3b\xf8\x3b\xf9\x3b\xfa\x3b\xfb\x3b\xfc\x3b\xfd\x3b\xfe\x3b\xff\x3c\x00\x3c\x01\x3c\x02\x3c\x03\x3c\x04\x3c\x05\x3c\x06\x3c\x07\x3c\x08\x3c\x09\x3c\x0a\x3c\x0b\x3c\x0c\x3c\x0d\x3c\x0e\x3c\x0f\x3c\x10\x3c\x11\x3c\x12\x3c\x13\x3c\x14\x3c\x15\x3c\x16\x3c\x17\x3c\x18\x3c\x19\x3c\x1a\x3c\x1b\x3c\x1c\x3c\x1d\x3c\x1e\x3c\x1f\x3c\x20\x3c\x21\x3c\x22\x3c\x23\x3c\x24\x3c\x25\x3c\x26\x3c\x27\x3c\x28\x3c\x29\x3c\x2a\x3c\x2b\x3c\x2c\x3c\x2d\x3c\x2e\x3c\x2f\x3c\x30\x3c\x31\x3c\x32\x3c\x33\x3c\x34\x3c\x35\x00\x00", /* da00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x36\x3c\x37\x3c\x38\x3c\x39\x3c\x3a\x3c\x3b\x3c\x3c\x3c\x3d\x3c\x3e\x3c\x3f\x3c\x40\x3c\x41\x3c\x42\x3c\x43\x3c\x44\x3c\x45\x3c\x46\x3c\x47\x3c\x48\x3c\x49\x3c\x4a\x3c\x4b\x3c\x4c\x3c\x4d\x3c\x4e\x3c\x4f\x3c\x50\x3c\x51\x3c\x52\x3c\x53\x3c\x54\x3c\x55\x3c\x56\x3c\x57\x3c\x58\x3c\x59\x3c\x5a\x3c\x5b\x3c\x5c\x3c\x5d\x3c\x5e\x3c\x5f\x3c\x60\x3c\x61\x3c\x62\x3c\x63\x3c\x64\x3c\x65\x3c\x66\x3c\x67\x3c\x68\x3c\x69\x3c\x6a\x3c\x6b\x3c\x6c\x3c\x6d\x3c\x6f\x3c\x70\x3c\x71\x3c\x72\x3c\x73\x3c\x74\x3c\x75", /* da80 */ "\x3c\x76\x3c\x77\x3c\x78\x3c\x79\x3c\x7a\x3c\x7b\x3c\x7c\x3c\x7d\x3c\x7e\x3c\x7f\x3c\x80\x3c\x81\x3c\x82\x3c\x83\x3c\x84\x3c\x85\x3c\x86\x3c\x87\x3c\x88\x3c\x89\x3c\x8a\x3c\x8b\x3c\x8c\x3c\x8d\x3c\x8e\x3c\x8f\x3c\x90\x3c\x91\x3c\x92\x3c\x93\x3c\x94\x3c\x95\x3c\x96\x3c\x97\x3c\x98\x3c\x99\x3c\x9a\x3c\x9b\x3c\x9c\x3c\x9d\x3c\x9e\x3c\x9f\x3c\xa0\x3c\xa1\x3c\xa2\x3c\xa3\x3c\xa4\x3c\xa5\x3c\xa6\x3c\xa7\x3c\xa8\x3c\xa9\x3c\xaa\x3c\xab\x3c\xac\x3c\xad\x3c\xae\x3c\xaf\x3c\xb0\x3c\xb1\x3c\xb2\x3c\xb3\x3c\xb4\x3c\xb5\x3c\xb6\x3c\xb7\x3c\xb8\x3c\xb9\x3c\xba\x3c\xbb\x3c\xbc\x3c\xbd\x3c\xbe\x3c\xbf\x3c\xc0\x3c\xc1\x3c\xc2\x3c\xc3\x3c\xc4\x3c\xc5\x3c\xc6\x3c\xc7\x3c\xc8\x3c\xc9\x3c\xca\x3c\xcb\x3c\xcc\x3c\xcd\x3c\xce\x3c\xcf\x3c\xd0\x3c\xd1\x3c\xd2\x3c\xd3\x3c\xd4\x3c\xd5\x3c\xd6\x3c\xd7\x3c\xd8\x3c\xd9\x3c\xda\x3c\xdb\x3c\xdc\x3c\xdd\x3c\xde\x3c\xdf\x3c\xe1\x3c\xe2\x3c\xe3\x3c\xe4\x3c\xe5\x3c\xe6\x3c\xe7\x3c\xe8\x3c\xe9\x3c\xea\x3c\xeb\x3c\xec\x3c\xed\x3c\xee\x3c\xef\x3c\xf0\x3c\xf1\x3c\xf2\x3c\xf3\x3c\xf4\x3c\xf5\x00\x00", /* db00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\xf6\x3c\xf7\x3c\xf8\x3c\xf9\x3c\xfa\x3c\xfb\x3c\xfc\x3c\xfd\x3c\xfe\x3c\xff\x3d\x00\x3d\x01\x3d\x02\x3d\x03\x3d\x04\x3d\x05\x3d\x06\x3d\x07\x3d\x08\x3d\x09\x3d\x0a\x3d\x0b\x3d\x0c\x3d\x0d\x3d\x0e\x3d\x0f\x3d\x10\x3d\x11\x3d\x12\x3d\x13\x3d\x14\x3d\x15\x3d\x16\x3d\x17\x3d\x18\x3d\x19\x3d\x1a\x3d\x1b\x3d\x1c\x3d\x1d\x3d\x1e\x3d\x1f\x3d\x20\x3d\x21\x3d\x22\x3d\x23\x3d\x24\x3d\x25\x3d\x26\x3d\x27\x3d\x28\x3d\x29\x3d\x2a\x3d\x2b\x3d\x2c\x3d\x2d\x3d\x2e\x3d\x2f\x3d\x30\x3d\x31\x3d\x32\x3d\x33\x3d\x34", /* db80 */ "\x3d\x35\x3d\x36\x3d\x37\x3d\x38\x3d\x39\x3d\x3a\x3d\x3b\x3d\x3c\x3d\x3d\x3d\x3e\x3d\x3f\x3d\x40\x3d\x41\x3d\x42\x3d\x43\x3d\x44\x3d\x45\x3d\x46\x3d\x47\x3d\x48\x3d\x49\x3d\x4a\x3d\x4b\x3d\x4c\x3d\x4d\x3d\x4e\x3d\x4f\x3d\x50\x3d\x51\x3d\x52\x3d\x53\x3d\x54\x3d\x55\x3d\x56\x3d\x57\x3d\x58\x3d\x59\x3d\x5a\x3d\x5b\x3d\x5c\x3d\x5d\x3d\x5e\x3d\x5f\x3d\x60\x3d\x61\x3d\x62\x3d\x63\x3d\x64\x3d\x65\x3d\x66\x3d\x67\x3d\x68\x3d\x69\x3d\x6a\x3d\x6b\x3d\x6c\x3d\x6d\x3d\x6e\x3d\x6f\x3d\x70\x3d\x71\x3d\x72\x3d\x73\x3d\x74\x3d\x75\x3d\x76\x3d\x77\x3d\x78\x3d\x79\x3d\x7a\x3d\x7b\x3d\x7c\x3d\x7d\x3d\x7e\x3d\x7f\x3d\x80\x3d\x81\x3d\x82\x3d\x83\x3d\x84\x3d\x85\x3d\x86\x3d\x87\x3d\x88\x3d\x89\x3d\x8a\x3d\x8b\x3d\x8c\x3d\x8d\x3d\x8e\x3d\x8f\x3d\x90\x3d\x91\x3d\x92\x3d\x93\x3d\x94\x3d\x95\x3d\x96\x3d\x97\x3d\x98\x3d\x99\x3d\x9a\x3d\x9b\x3d\x9c\x3d\x9d\x3d\x9e\x3d\x9f\x3d\xa0\x3d\xa1\x3d\xa2\x3d\xa3\x3d\xa4\x3d\xa5\x3d\xa6\x3d\xa7\x3d\xa8\x3d\xa9\x3d\xaa\x3d\xab\x3d\xac\x3d\xad\x3d\xae\x3d\xaf\x3d\xb0\x3d\xb1\x3d\xb2\x3d\xb3\x00\x00", /* dc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\xb4\x3d\xb5\x3d\xb6\x3d\xb7\x3d\xb8\x3d\xb9\x3d\xba\x3d\xbb\x3d\xbc\x3d\xbd\x3d\xbe\x3d\xbf\x3d\xc0\x3d\xc1\x3d\xc2\x3d\xc3\x3d\xc4\x3d\xc5\x3d\xc6\x3d\xc7\x3d\xc8\x3d\xc9\x3d\xca\x3d\xcb\x3d\xcc\x3d\xcd\x3d\xce\x3d\xcf\x3d\xd0\x3d\xd1\x3d\xd2\x3d\xd3\x3d\xd4\x3d\xd5\x3d\xd6\x3d\xd7\x3d\xd8\x3d\xd9\x3d\xda\x3d\xdb\x3d\xdc\x3d\xdd\x3d\xde\x3d\xdf\x3d\xe0\x3d\xe1\x3d\xe2\x3d\xe3\x3d\xe4\x3d\xe5\x3d\xe6\x3d\xe7\x3d\xe8\x3d\xe9\x3d\xea\x3d\xeb\x3d\xec\x3d\xed\x3d\xee\x3d\xef\x3d\xf0\x3d\xf1\x3d\xf2", /* dc80 */ "\x3d\xf3\x3d\xf4\x3d\xf5\x3d\xf6\x3d\xf7\x3d\xf8\x3d\xf9\x3d\xfa\x3d\xfb\x3d\xfc\x3d\xfd\x3d\xfe\x3d\xff\x3e\x00\x3e\x01\x3e\x02\x3e\x03\x3e\x04\x3e\x05\x3e\x06\x3e\x07\x3e\x08\x3e\x09\x3e\x0a\x3e\x0b\x3e\x0c\x3e\x0d\x3e\x0e\x3e\x0f\x3e\x10\x3e\x11\x3e\x12\x3e\x13\x3e\x14\x3e\x15\x3e\x16\x3e\x17\x3e\x18\x3e\x19\x3e\x1a\x3e\x1b\x3e\x1c\x3e\x1d\x3e\x1e\x3e\x1f\x3e\x20\x3e\x21\x3e\x22\x3e\x23\x3e\x24\x3e\x25\x3e\x26\x3e\x27\x3e\x28\x3e\x29\x3e\x2a\x3e\x2b\x3e\x2c\x3e\x2d\x3e\x2e\x3e\x2f\x3e\x30\x3e\x31\x3e\x32\x3e\x33\x3e\x34\x3e\x35\x3e\x36\x3e\x37\x3e\x38\x3e\x39\x3e\x3a\x3e\x3b\x3e\x3c\x3e\x3d\x3e\x3e\x3e\x3f\x3e\x40\x3e\x41\x3e\x42\x3e\x43\x3e\x44\x3e\x45\x3e\x46\x3e\x47\x3e\x48\x3e\x49\x3e\x4a\x3e\x4b\x3e\x4c\x3e\x4d\x3e\x4e\x3e\x4f\x3e\x50\x3e\x51\x3e\x52\x3e\x53\x3e\x54\x3e\x55\x3e\x56\x3e\x57\x3e\x58\x3e\x59\x3e\x5a\x3e\x5b\x3e\x5c\x3e\x5d\x3e\x5e\x3e\x5f\x3e\x60\x3e\x61\x3e\x62\x3e\x63\x3e\x64\x3e\x65\x3e\x66\x3e\x67\x3e\x68\x3e\x69\x3e\x6a\x3e\x6b\x3e\x6c\x3e\x6d\x3e\x6e\x3e\x6f\x3e\x70\x3e\x71\x00\x00", /* dd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x72\x3e\x73\x3e\x74\x3e\x75\x3e\x76\x3e\x77\x3e\x78\x3e\x79\x3e\x7a\x3e\x7b\x3e\x7c\x3e\x7d\x3e\x7e\x3e\x7f\x3e\x80\x3e\x81\x3e\x82\x3e\x83\x3e\x84\x3e\x85\x3e\x86\x3e\x87\x3e\x88\x3e\x89\x3e\x8a\x3e\x8b\x3e\x8c\x3e\x8d\x3e\x8e\x3e\x8f\x3e\x90\x3e\x91\x3e\x92\x3e\x93\x3e\x94\x3e\x95\x3e\x96\x3e\x97\x3e\x98\x3e\x99\x3e\x9a\x3e\x9b\x3e\x9c\x3e\x9d\x3e\x9e\x3e\x9f\x3e\xa0\x3e\xa1\x3e\xa2\x3e\xa3\x3e\xa4\x3e\xa5\x3e\xa6\x3e\xa7\x3e\xa8\x3e\xa9\x3e\xaa\x3e\xab\x3e\xac\x3e\xad\x3e\xae\x3e\xaf\x3e\xb0", /* dd80 */ "\x3e\xb1\x3e\xb2\x3e\xb3\x3e\xb4\x3e\xb5\x3e\xb6\x3e\xb7\x3e\xb8\x3e\xb9\x3e\xba\x3e\xbb\x3e\xbc\x3e\xbd\x3e\xbe\x3e\xbf\x3e\xc0\x3e\xc1\x3e\xc2\x3e\xc3\x3e\xc4\x3e\xc5\x3e\xc6\x3e\xc7\x3e\xc8\x3e\xc9\x3e\xca\x3e\xcb\x3e\xcc\x3e\xcd\x3e\xce\x3e\xcf\x3e\xd0\x3e\xd1\x3e\xd2\x3e\xd3\x3e\xd4\x3e\xd5\x3e\xd6\x3e\xd7\x3e\xd8\x3e\xd9\x3e\xda\x3e\xdb\x3e\xdc\x3e\xdd\x3e\xde\x3e\xdf\x3e\xe0\x3e\xe1\x3e\xe2\x3e\xe3\x3e\xe4\x3e\xe5\x3e\xe6\x3e\xe7\x3e\xe8\x3e\xe9\x3e\xea\x3e\xeb\x3e\xec\x3e\xed\x3e\xee\x3e\xef\x3e\xf0\x3e\xf1\x3e\xf2\x3e\xf3\x3e\xf4\x3e\xf5\x3e\xf6\x3e\xf7\x3e\xf8\x3e\xf9\x3e\xfa\x3e\xfb\x3e\xfc\x3e\xfd\x3e\xfe\x3e\xff\x3f\x00\x3f\x01\x3f\x02\x3f\x03\x3f\x04\x3f\x05\x3f\x06\x3f\x07\x3f\x08\x3f\x09\x3f\x0a\x3f\x0b\x3f\x0c\x3f\x0d\x3f\x0e\x3f\x0f\x3f\x10\x3f\x11\x3f\x12\x3f\x13\x3f\x14\x3f\x15\x3f\x16\x3f\x17\x3f\x18\x3f\x19\x3f\x1a\x3f\x1b\x3f\x1c\x3f\x1d\x3f\x1e\x3f\x1f\x3f\x20\x3f\x21\x3f\x22\x3f\x23\x3f\x24\x3f\x25\x3f\x26\x3f\x27\x3f\x28\x3f\x29\x3f\x2a\x3f\x2b\x3f\x2c\x3f\x2d\x3f\x2e\x3f\x2f\x00\x00", /* de00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x30\x3f\x31\x3f\x32\x3f\x33\x3f\x34\x3f\x35\x3f\x36\x3f\x37\x3f\x38\x3f\x39\x3f\x3a\x3f\x3b\x3f\x3c\x3f\x3d\x3f\x3e\x3f\x3f\x3f\x40\x3f\x41\x3f\x42\x3f\x43\x3f\x44\x3f\x45\x3f\x46\x3f\x47\x3f\x48\x3f\x49\x3f\x4a\x3f\x4b\x3f\x4c\x3f\x4d\x3f\x4e\x3f\x4f\x3f\x50\x3f\x51\x3f\x52\x3f\x53\x3f\x54\x3f\x55\x3f\x56\x3f\x57\x3f\x58\x3f\x59\x3f\x5a\x3f\x5b\x3f\x5c\x3f\x5d\x3f\x5e\x3f\x5f\x3f\x60\x3f\x61\x3f\x62\x3f\x63\x3f\x64\x3f\x65\x3f\x66\x3f\x67\x3f\x68\x3f\x69\x3f\x6a\x3f\x6b\x3f\x6c\x3f\x6d\x3f\x6e", /* de80 */ "\x3f\x6f\x3f\x70\x3f\x71\x3f\x72\x3f\x73\x3f\x74\x3f\x75\x3f\x76\x3f\x77\x3f\x78\x3f\x79\x3f\x7a\x3f\x7b\x3f\x7c\x3f\x7d\x3f\x7e\x3f\x7f\x3f\x80\x3f\x81\x3f\x82\x3f\x83\x3f\x84\x3f\x85\x3f\x86\x3f\x87\x3f\x88\x3f\x89\x3f\x8a\x3f\x8b\x3f\x8c\x3f\x8d\x3f\x8e\x3f\x8f\x3f\x90\x3f\x91\x3f\x92\x3f\x93\x3f\x94\x3f\x95\x3f\x96\x3f\x97\x3f\x98\x3f\x99\x3f\x9a\x3f\x9b\x3f\x9c\x3f\x9d\x3f\x9e\x3f\x9f\x3f\xa0\x3f\xa1\x3f\xa2\x3f\xa3\x3f\xa4\x3f\xa5\x3f\xa6\x3f\xa7\x3f\xa8\x3f\xa9\x3f\xaa\x3f\xab\x3f\xac\x3f\xad\x3f\xae\x3f\xaf\x3f\xb0\x3f\xb1\x3f\xb2\x3f\xb3\x3f\xb4\x3f\xb5\x3f\xb6\x3f\xb7\x3f\xb8\x3f\xb9\x3f\xba\x3f\xbb\x3f\xbc\x3f\xbd\x3f\xbe\x3f\xbf\x3f\xc0\x3f\xc1\x3f\xc2\x3f\xc3\x3f\xc4\x3f\xc5\x3f\xc6\x3f\xc7\x3f\xc8\x3f\xc9\x3f\xca\x3f\xcb\x3f\xcc\x3f\xcd\x3f\xce\x3f\xcf\x3f\xd0\x3f\xd1\x3f\xd2\x3f\xd3\x3f\xd4\x3f\xd5\x3f\xd6\x3f\xd7\x3f\xd8\x3f\xd9\x3f\xda\x3f\xdb\x3f\xdc\x3f\xdd\x3f\xde\x3f\xdf\x3f\xe0\x3f\xe1\x3f\xe2\x3f\xe3\x3f\xe4\x3f\xe5\x3f\xe6\x3f\xe7\x3f\xe8\x3f\xe9\x3f\xea\x3f\xeb\x3f\xec\x3f\xed\x00\x00", /* df00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xee\x3f\xef\x3f\xf0\x3f\xf1\x3f\xf2\x3f\xf3\x3f\xf4\x3f\xf5\x3f\xf6\x3f\xf7\x3f\xf8\x3f\xf9\x3f\xfa\x3f\xfb\x3f\xfc\x3f\xfd\x3f\xfe\x3f\xff\x40\x00\x40\x01\x40\x02\x40\x03\x40\x04\x40\x05\x40\x06\x40\x07\x40\x08\x40\x09\x40\x0a\x40\x0b\x40\x0c\x40\x0d\x40\x0e\x40\x0f\x40\x10\x40\x11\x40\x12\x40\x13\x40\x14\x40\x15\x40\x16\x40\x17\x40\x18\x40\x19\x40\x1a\x40\x1b\x40\x1c\x40\x1d\x40\x1e\x40\x1f\x40\x20\x40\x21\x40\x22\x40\x23\x40\x24\x40\x25\x40\x26\x40\x27\x40\x28\x40\x29\x40\x2a\x40\x2b\x40\x2c", /* df80 */ "\x40\x2d\x40\x2e\x40\x2f\x40\x30\x40\x31\x40\x32\x40\x33\x40\x34\x40\x35\x40\x36\x40\x37\x40\x38\x40\x39\x40\x3a\x40\x3b\x40\x3c\x40\x3d\x40\x3e\x40\x3f\x40\x40\x40\x41\x40\x42\x40\x43\x40\x44\x40\x45\x40\x46\x40\x47\x40\x48\x40\x49\x40\x4a\x40\x4b\x40\x4c\x40\x4d\x40\x4e\x40\x4f\x40\x50\x40\x51\x40\x52\x40\x53\x40\x54\x40\x55\x40\x57\x40\x58\x40\x59\x40\x5a\x40\x5b\x40\x5c\x40\x5d\x40\x5e\x40\x5f\x40\x60\x40\x61\x40\x62\x40\x63\x40\x64\x40\x65\x40\x66\x40\x67\x40\x68\x40\x69\x40\x6a\x40\x6b\x40\x6c\x40\x6d\x40\x6e\x40\x6f\x40\x70\x40\x71\x40\x72\x40\x73\x40\x74\x40\x75\x40\x76\x40\x77\x40\x78\x40\x79\x40\x7a\x40\x7b\x40\x7c\x40\x7d\x40\x7e\x40\x7f\x40\x80\x40\x81\x40\x82\x40\x83\x40\x84\x40\x85\x40\x86\x40\x87\x40\x88\x40\x89\x40\x8a\x40\x8b\x40\x8c\x40\x8d\x40\x8e\x40\x8f\x40\x90\x40\x91\x40\x92\x40\x93\x40\x94\x40\x95\x40\x96\x40\x97\x40\x98\x40\x99\x40\x9a\x40\x9b\x40\x9c\x40\x9d\x40\x9e\x40\x9f\x40\xa0\x40\xa1\x40\xa2\x40\xa3\x40\xa4\x40\xa5\x40\xa6\x40\xa7\x40\xa8\x40\xa9\x40\xaa\x40\xab\x40\xac\x00\x00", /* e000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xad\x40\xae\x40\xaf\x40\xb0\x40\xb1\x40\xb2\x40\xb3\x40\xb4\x40\xb5\x40\xb6\x40\xb7\x40\xb8\x40\xb9\x40\xba\x40\xbb\x40\xbc\x40\xbd\x40\xbe\x40\xbf\x40\xc0\x40\xc1\x40\xc2\x40\xc3\x40\xc4\x40\xc5\x40\xc6\x40\xc7\x40\xc8\x40\xc9\x40\xca\x40\xcb\x40\xcc\x40\xcd\x40\xce\x40\xcf\x40\xd0\x40\xd1\x40\xd2\x40\xd3\x40\xd4\x40\xd5\x40\xd6\x40\xd7\x40\xd8\x40\xd9\x40\xda\x40\xdb\x40\xdc\x40\xdd\x40\xde\x40\xdf\x40\xe0\x40\xe1\x40\xe2\x40\xe3\x40\xe4\x40\xe5\x40\xe6\x40\xe7\x40\xe8\x40\xe9\x40\xea\x40\xeb", /* e080 */ "\x40\xec\x40\xed\x40\xee\x40\xef\x40\xf0\x40\xf1\x40\xf2\x40\xf3\x40\xf4\x40\xf5\x40\xf6\x40\xf7\x40\xf8\x40\xf9\x40\xfa\x40\xfb\x40\xfc\x40\xfd\x40\xfe\x40\xff\x41\x00\x41\x01\x41\x02\x41\x03\x41\x04\x41\x05\x41\x06\x41\x07\x41\x08\x41\x09\x41\x0a\x41\x0b\x41\x0c\x41\x0d\x41\x0e\x41\x0f\x41\x10\x41\x11\x41\x12\x41\x13\x41\x14\x41\x15\x41\x16\x41\x17\x41\x18\x41\x19\x41\x1a\x41\x1b\x41\x1c\x41\x1d\x41\x1e\x41\x1f\x41\x20\x41\x21\x41\x22\x41\x23\x41\x24\x41\x25\x41\x26\x41\x27\x41\x28\x41\x29\x41\x2a\x41\x2b\x41\x2c\x41\x2d\x41\x2e\x41\x2f\x41\x30\x41\x31\x41\x32\x41\x33\x41\x34\x41\x35\x41\x36\x41\x37\x41\x38\x41\x39\x41\x3a\x41\x3b\x41\x3c\x41\x3d\x41\x3e\x41\x3f\x41\x40\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x41\x59\x41\x5a\x41\x5b\x41\x5c\x41\x5d\x41\x5e\x41\x60\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x00\x00", /* e100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x41\x79\x41\x7a\x41\x7b\x41\x7c\x41\x7d\x41\x7e\x41\x7f\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x86\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x41\xa1\x41\xa2\x41\xa3\x41\xa4\x41\xa5\x41\xa6\x41\xa7\x41\xa8\x41\xa9\x41\xaa", /* e180 */ "\x41\xab\x41\xac\x41\xad\x41\xae\x41\xaf\x41\xb0\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x41\xbb\x41\xbc\x41\xbd\x41\xbe\x41\xbf\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc6\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\xe1\x41\xe2\x41\xe3\x41\xe4\x41\xe5\x41\xe6\x41\xe7\x41\xe8\x41\xe9\x41\xea\x41\xeb\x41\xec\x41\xed\x41\xee\x41\xef\x41\xf0\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x41\xfd\x41\xfe\x41\xff\x42\x00\x42\x01\x42\x02\x42\x03\x42\x04\x42\x05\x42\x06\x42\x07\x42\x08\x42\x09\x42\x0a\x42\x0b\x42\x0c\x42\x0d\x42\x0e\x42\x0f\x42\x10\x42\x11\x42\x12\x42\x13\x42\x14\x42\x15\x42\x16\x42\x17\x42\x18\x42\x19\x42\x1a\x42\x1b\x42\x1c\x42\x1d\x42\x1e\x42\x1f\x42\x20\x42\x21\x42\x22\x42\x23\x42\x24\x42\x25\x42\x26\x42\x27\x42\x28\x42\x29\x00\x00", /* e200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x2a\x42\x2b\x42\x2c\x42\x2d\x42\x2e\x42\x2f\x42\x30\x42\x31\x42\x32\x42\x33\x42\x34\x42\x35\x42\x36\x42\x37\x42\x38\x42\x39\x42\x3a\x42\x3b\x42\x3c\x42\x3d\x42\x3e\x42\x3f\x42\x40\x42\x41\x42\x42\x42\x43\x42\x44\x42\x45\x42\x46\x42\x47\x42\x48\x42\x49\x42\x4a\x42\x4b\x42\x4c\x42\x4d\x42\x4e\x42\x4f\x42\x50\x42\x51\x42\x52\x42\x53\x42\x54\x42\x55\x42\x56\x42\x57\x42\x58\x42\x59\x42\x5a\x42\x5b\x42\x5c\x42\x5d\x42\x5e\x42\x5f\x42\x60\x42\x61\x42\x62\x42\x63\x42\x64\x42\x65\x42\x66\x42\x67\x42\x68", /* e280 */ "\x42\x69\x42\x6a\x42\x6b\x42\x6c\x42\x6d\x42\x6e\x42\x6f\x42\x70\x42\x71\x42\x72\x42\x73\x42\x74\x42\x75\x42\x76\x42\x77\x42\x78\x42\x79\x42\x7a\x42\x7b\x42\x7c\x42\x7d\x42\x7e\x42\x7f\x42\x80\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x8a\x42\x8b\x42\x8c\x42\x8d\x42\x8e\x42\x8f\x42\x90\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\x9a\x42\x9b\x42\x9c\x42\x9d\x42\x9e\x42\x9f\x42\xa0\x42\xa1\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xaa\x42\xab\x42\xac\x42\xad\x42\xae\x42\xaf\x42\xb0\x42\xb1\x42\xb2\x42\xb3\x42\xb4\x42\xb5\x42\xb6\x42\xb7\x42\xb8\x42\xb9\x42\xba\x42\xbb\x42\xbc\x42\xbd\x42\xbe\x42\xbf\x42\xc0\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xca\x42\xcb\x42\xcc\x42\xcd\x42\xce\x42\xcf\x42\xd0\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xda\x42\xdb\x42\xdc\x42\xdd\x42\xde\x42\xdf\x42\xe0\x42\xe1\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x00\x00", /* e300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\xe8\x42\xe9\x42\xea\x42\xeb\x42\xec\x42\xed\x42\xee\x42\xef\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\xfa\x42\xfb\x42\xfc\x42\xfd\x42\xfe\x42\xff\x43\x00\x43\x01\x43\x02\x43\x03\x43\x04\x43\x05\x43\x06\x43\x07\x43\x08\x43\x09\x43\x0a\x43\x0b\x43\x0c\x43\x0d\x43\x0e\x43\x0f\x43\x10\x43\x11\x43\x12\x43\x13\x43\x14\x43\x15\x43\x16\x43\x17\x43\x18\x43\x19\x43\x1a\x43\x1b\x43\x1c\x43\x1d\x43\x1e\x43\x1f\x43\x20\x43\x21\x43\x22\x43\x23\x43\x24\x43\x25\x43\x26", /* e380 */ "\x43\x27\x43\x28\x43\x29\x43\x2a\x43\x2b\x43\x2c\x43\x2d\x43\x2e\x43\x2f\x43\x30\x43\x31\x43\x32\x43\x33\x43\x34\x43\x35\x43\x36\x43\x38\x43\x39\x43\x3a\x43\x3b\x43\x3c\x43\x3d\x43\x3e\x43\x3f\x43\x40\x43\x41\x43\x42\x43\x43\x43\x44\x43\x45\x43\x46\x43\x47\x43\x48\x43\x49\x43\x4a\x43\x4b\x43\x4c\x43\x4d\x43\x4e\x43\x4f\x43\x50\x43\x51\x43\x52\x43\x53\x43\x54\x43\x55\x43\x56\x43\x57\x43\x58\x43\x59\x43\x5a\x43\x5b\x43\x5c\x43\x5d\x43\x5e\x43\x5f\x43\x60\x43\x61\x43\x62\x43\x63\x43\x64\x43\x65\x43\x66\x43\x67\x43\x68\x43\x69\x43\x6a\x43\x6b\x43\x6c\x43\x6d\x43\x6e\x43\x6f\x43\x70\x43\x71\x43\x72\x43\x73\x43\x74\x43\x75\x43\x76\x43\x77\x43\x78\x43\x79\x43\x7a\x43\x7b\x43\x7c\x43\x7d\x43\x7e\x43\x7f\x43\x80\x43\x81\x43\x82\x43\x83\x43\x84\x43\x85\x43\x86\x43\x87\x43\x88\x43\x89\x43\x8a\x43\x8b\x43\x8c\x43\x8d\x43\x8e\x43\x8f\x43\x90\x43\x91\x43\x92\x43\x93\x43\x94\x43\x95\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9b\x43\x9c\x43\x9d\x43\x9e\x43\x9f\x43\xa0\x43\xa1\x43\xa2\x43\xa3\x43\xa4\x43\xa5\x43\xa6\x00\x00", /* e400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa7\x43\xa8\x43\xa9\x43\xaa\x43\xab\x43\xad\x43\xae\x43\xaf\x43\xb0\x43\xb2\x43\xb3\x43\xb4\x43\xb5\x43\xb6\x43\xb7\x43\xb8\x43\xb9\x43\xba\x43\xbb\x43\xbc\x43\xbd\x43\xbe\x43\xbf\x43\xc0\x43\xc1\x43\xc2\x43\xc3\x43\xc4\x43\xc5\x43\xc6\x43\xc7\x43\xc8\x43\xc9\x43\xca\x43\xcb\x43\xcc\x43\xcd\x43\xce\x43\xcf\x43\xd0\x43\xd1\x43\xd2\x43\xd3\x43\xd4\x43\xd5\x43\xd6\x43\xd7\x43\xd8\x43\xd9\x43\xda\x43\xdb\x43\xdc\x43\xde\x43\xdf\x43\xe0\x43\xe1\x43\xe2\x43\xe3\x43\xe4\x43\xe5\x43\xe6\x43\xe7\x43\xe8", /* e480 */ "\x43\xe9\x43\xea\x43\xeb\x43\xec\x43\xed\x43\xee\x43\xef\x43\xf0\x43\xf1\x43\xf2\x43\xf3\x43\xf4\x43\xf5\x43\xf6\x43\xf7\x43\xf8\x43\xf9\x43\xfa\x43\xfb\x43\xfc\x43\xfd\x43\xfe\x43\xff\x44\x00\x44\x01\x44\x02\x44\x03\x44\x04\x44\x05\x44\x06\x44\x07\x44\x08\x44\x09\x44\x0a\x44\x0b\x44\x0c\x44\x0d\x44\x0e\x44\x0f\x44\x10\x44\x11\x44\x12\x44\x13\x44\x14\x44\x15\x44\x16\x44\x17\x44\x18\x44\x19\x44\x1a\x44\x1b\x44\x1c\x44\x1d\x44\x1e\x44\x1f\x44\x20\x44\x21\x44\x22\x44\x23\x44\x24\x44\x25\x44\x26\x44\x27\x44\x28\x44\x29\x44\x2a\x44\x2b\x44\x2c\x44\x2d\x44\x2e\x44\x2f\x44\x30\x44\x31\x44\x32\x44\x33\x44\x34\x44\x35\x44\x36\x44\x37\x44\x38\x44\x39\x44\x3a\x44\x3b\x44\x3c\x44\x3d\x44\x3e\x44\x3f\x44\x40\x44\x41\x44\x42\x44\x43\x44\x44\x44\x45\x44\x46\x44\x47\x44\x48\x44\x49\x44\x4a\x44\x4b\x44\x4c\x44\x4d\x44\x4e\x44\x4f\x44\x50\x44\x51\x44\x52\x44\x53\x44\x54\x44\x55\x44\x56\x44\x57\x44\x58\x44\x59\x44\x5a\x44\x5b\x44\x5c\x44\x5d\x44\x5e\x44\x5f\x44\x60\x44\x61\x44\x62\x44\x63\x44\x64\x44\x65\x44\x66\x44\x67\x00\x00", /* e500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x69\x44\x6a\x44\x6b\x44\x6c\x44\x6d\x44\x6e\x44\x6f\x44\x70\x44\x71\x44\x72\x44\x73\x44\x74\x44\x75\x44\x76\x44\x77\x44\x78\x44\x79\x44\x7a\x44\x7b\x44\x7c\x44\x7d\x44\x7e\x44\x7f\x44\x80\x44\x81\x44\x82\x44\x83\x44\x84\x44\x85\x44\x86\x44\x87\x44\x88\x44\x89\x44\x8a\x44\x8b\x44\x8c\x44\x8d\x44\x8e\x44\x8f\x44\x90\x44\x91\x44\x92\x44\x93\x44\x94\x44\x95\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9b\x44\x9c\x44\x9d\x44\x9e\x44\x9f\x44\xa0\x44\xa1\x44\xa2\x44\xa3\x44\xa4\x44\xa5\x44\xa6", /* e580 */ "\x44\xa7\x44\xa8\x44\xa9\x44\xaa\x44\xab\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xb0\x44\xb1\x44\xb2\x44\xb3\x44\xb4\x44\xb5\x44\xb6\x44\xb7\x44\xb8\x44\xb9\x44\xba\x44\xbb\x44\xbc\x44\xbd\x44\xbe\x44\xbf\x44\xc0\x44\xc1\x44\xc2\x44\xc3\x44\xc4\x44\xc5\x44\xc6\x44\xc7\x44\xc8\x44\xc9\x44\xca\x44\xcb\x44\xcc\x44\xcd\x44\xce\x44\xcf\x44\xd0\x44\xd1\x44\xd2\x44\xd3\x44\xd4\x44\xd5\x44\xd7\x44\xd8\x44\xd9\x44\xda\x44\xdb\x44\xdc\x44\xdd\x44\xde\x44\xdf\x44\xe0\x44\xe1\x44\xe2\x44\xe3\x44\xe4\x44\xe5\x44\xe6\x44\xe7\x44\xe8\x44\xe9\x44\xea\x44\xeb\x44\xec\x44\xed\x44\xee\x44\xef\x44\xf0\x44\xf1\x44\xf2\x44\xf3\x44\xf4\x44\xf5\x44\xf6\x44\xf7\x44\xf8\x44\xf9\x44\xfa\x44\xfb\x44\xfc\x44\xfd\x44\xfe\x44\xff\x45\x00\x45\x01\x45\x02\x45\x03\x45\x04\x45\x05\x45\x06\x45\x07\x45\x08\x45\x09\x45\x0a\x45\x0b\x45\x0c\x45\x0d\x45\x0e\x45\x0f\x45\x10\x45\x11\x45\x12\x45\x13\x45\x14\x45\x15\x45\x16\x45\x17\x45\x18\x45\x19\x45\x1a\x45\x1b\x45\x1c\x45\x1d\x45\x1e\x45\x1f\x45\x20\x45\x21\x45\x22\x45\x23\x45\x24\x45\x25\x45\x26\x00\x00", /* e600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x27\x45\x28\x45\x29\x45\x2a\x45\x2b\x45\x2c\x45\x2d\x45\x2e\x45\x2f\x45\x30\x45\x31\x45\x32\x45\x33\x45\x34\x45\x35\x45\x36\x45\x37\x45\x38\x45\x39\x45\x3a\x45\x3b\x45\x3c\x45\x3d\x45\x3e\x45\x3f\x45\x40\x45\x41\x45\x42\x45\x43\x45\x44\x45\x45\x45\x46\x45\x47\x45\x48\x45\x49\x45\x4a\x45\x4b\x45\x4c\x45\x4d\x45\x4e\x45\x4f\x45\x50\x45\x51\x45\x52\x45\x53\x45\x54\x45\x55\x45\x56\x45\x57\x45\x58\x45\x59\x45\x5a\x45\x5b\x45\x5c\x45\x5d\x45\x5e\x45\x5f\x45\x60\x45\x61\x45\x62\x45\x63\x45\x64\x45\x65", /* e680 */ "\x45\x66\x45\x67\x45\x68\x45\x69\x45\x6a\x45\x6b\x45\x6c\x45\x6d\x45\x6e\x45\x6f\x45\x70\x45\x71\x45\x72\x45\x73\x45\x74\x45\x75\x45\x76\x45\x77\x45\x78\x45\x79\x45\x7a\x45\x7b\x45\x7c\x45\x7d\x45\x7e\x45\x7f\x45\x80\x45\x81\x45\x82\x45\x83\x45\x84\x45\x85\x45\x86\x45\x87\x45\x88\x45\x89\x45\x8a\x45\x8b\x45\x8c\x45\x8d\x45\x8e\x45\x8f\x45\x90\x45\x91\x45\x92\x45\x93\x45\x94\x45\x95\x45\x96\x45\x97\x45\x98\x45\x99\x45\x9a\x45\x9b\x45\x9c\x45\x9d\x45\x9e\x45\x9f\x45\xa0\x45\xa1\x45\xa2\x45\xa3\x45\xa4\x45\xa5\x45\xa6\x45\xa7\x45\xa8\x45\xa9\x45\xaa\x45\xab\x45\xac\x45\xad\x45\xae\x45\xaf\x45\xb0\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xd9\x45\xda\x45\xdb\x45\xdc\x45\xdd\x45\xde\x45\xdf\x45\xe0\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x00\x00", /* e700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x45\xeb\x45\xec\x45\xed\x45\xee\x45\xef\x45\xf0\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x45\xfb\x45\xfc\x45\xfd\x45\xfe\x45\xff\x46\x00\x46\x01\x46\x02\x46\x03\x46\x04\x46\x05\x46\x06\x46\x07\x46\x08\x46\x09\x46\x0a\x46\x0b\x46\x0c\x46\x0d\x46\x0e\x46\x0f\x46\x10\x46\x11\x46\x12\x46\x13\x46\x14\x46\x15\x46\x16\x46\x17\x46\x18\x46\x19\x46\x1a\x46\x1b\x46\x1c\x46\x1d\x46\x1e\x46\x1f\x46\x20\x46\x21\x46\x22\x46\x23", /* e780 */ "\x46\x24\x46\x25\x46\x26\x46\x27\x46\x28\x46\x29\x46\x2a\x46\x2b\x46\x2c\x46\x2d\x46\x2e\x46\x2f\x46\x30\x46\x31\x46\x32\x46\x33\x46\x34\x46\x35\x46\x36\x46\x37\x46\x38\x46\x39\x46\x3a\x46\x3b\x46\x3c\x46\x3d\x46\x3e\x46\x3f\x46\x40\x46\x41\x46\x42\x46\x43\x46\x44\x46\x45\x46\x46\x46\x47\x46\x48\x46\x49\x46\x4a\x46\x4b\x46\x4d\x46\x4e\x46\x4f\x46\x50\x46\x51\x46\x52\x46\x53\x46\x54\x46\x55\x46\x56\x46\x57\x46\x58\x46\x59\x46\x5a\x46\x5b\x46\x5c\x46\x5d\x46\x5e\x46\x5f\x46\x60\x46\x62\x46\x63\x46\x64\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x46\x8a\x46\x8b\x46\x8c\x46\x8d\x46\x8e\x46\x8f\x46\x90\x46\x91\x46\x92\x46\x93\x46\x94\x46\x95\x46\x96\x46\x97\x46\x98\x46\x99\x46\x9a\x46\x9b\x46\x9c\x46\x9d\x46\x9e\x46\x9f\x46\xa0\x46\xa1\x46\xa2\x46\xa3\x46\xa4\x00\x00", /* e800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3", /* e880 */ "\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x46\xf0\x46\xf1\x46\xf2\x46\xf3\x46\xf4\x46\xf5\x46\xf6\x46\xf7\x46\xf8\x46\xf9\x46\xfa\x46\xfb\x46\xfc\x46\xfd\x46\xfe\x46\xff\x47\x00\x47\x01\x47\x02\x47\x03\x47\x04\x47\x05\x47\x06\x47\x07\x47\x08\x47\x09\x47\x0a\x47\x0b\x47\x0c\x47\x0d\x47\x0e\x47\x0f\x47\x10\x47\x11\x47\x12\x47\x13\x47\x14\x47\x15\x47\x16\x47\x17\x47\x18\x47\x19\x47\x1a\x47\x1b\x47\x1c\x47\x1d\x47\x1e\x47\x1f\x47\x20\x47\x21\x47\x22\x47\x24\x47\x25\x47\x26\x47\x27\x47\x28\x47\x2a\x47\x2b\x47\x2c\x47\x2d\x47\x2e\x47\x2f\x47\x30\x47\x31\x47\x32\x47\x33\x47\x34\x47\x35\x47\x36\x47\x37\x47\x38\x47\x39\x47\x3a\x47\x3b\x47\x3c\x47\x3d\x47\x3e\x47\x3f\x47\x40\x47\x41\x47\x42\x47\x43\x47\x44\x47\x45\x47\x46\x47\x47\x47\x48\x47\x49\x47\x4a\x47\x4b\x47\x4c\x47\x4d\x47\x4e\x47\x4f\x47\x50\x47\x51\x47\x52\x47\x53\x47\x54\x47\x55\x47\x56\x47\x57\x47\x58\x47\x59\x47\x5a\x47\x5b\x47\x5c\x47\x5d\x47\x5e\x47\x5f\x47\x60\x47\x61\x47\x62\x47\x63\x47\x64\x00\x00", /* e900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x65\x47\x66\x47\x67\x47\x68\x47\x69\x47\x6a\x47\x6b\x47\x6c\x47\x6d\x47\x6e\x47\x6f\x47\x70\x47\x71\x47\x72\x47\x73\x47\x74\x47\x75\x47\x76\x47\x77\x47\x78\x47\x79\x47\x7a\x47\x7b\x47\x7d\x47\x7e\x47\x7f\x47\x80\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x47\xa1\x47\xa2\x47\xa3\x47\xa4\x47\xa5", /* e980 */ "\x47\xa6\x47\xa7\x47\xa8\x47\xa9\x47\xaa\x47\xab\x47\xac\x47\xad\x47\xae\x47\xaf\x47\xb0\x47\xb1\x47\xb2\x47\xb3\x47\xb4\x47\xb5\x47\xb6\x47\xb7\x47\xb8\x47\xb9\x47\xba\x47\xbb\x47\xbc\x47\xbd\x47\xbe\x47\xbf\x47\xc0\x47\xc1\x47\xc2\x47\xc3\x47\xc4\x47\xc5\x47\xc6\x47\xc7\x47\xc8\x47\xc9\x47\xca\x47\xcb\x47\xcc\x47\xcd\x47\xce\x47\xcf\x47\xd0\x47\xd1\x47\xd2\x47\xd3\x47\xd4\x47\xd5\x47\xd6\x47\xd7\x47\xd8\x47\xd9\x47\xda\x47\xdb\x47\xdc\x47\xdd\x47\xde\x47\xdf\x47\xe0\x47\xe1\x47\xe2\x47\xe3\x47\xe4\x47\xe5\x47\xe6\x47\xe7\x47\xe8\x47\xe9\x47\xea\x47\xeb\x47\xec\x47\xed\x47\xee\x47\xef\x47\xf0\x47\xf1\x47\xf2\x47\xf3\x47\xf4\x47\xf5\x47\xf6\x47\xf7\x47\xf8\x47\xf9\x47\xfa\x47\xfb\x47\xfc\x47\xfd\x47\xfe\x47\xff\x48\x00\x48\x01\x48\x02\x48\x03\x48\x04\x48\x05\x48\x06\x48\x07\x48\x08\x48\x09\x48\x0a\x48\x0b\x48\x0c\x48\x0d\x48\x0e\x48\x0f\x48\x10\x48\x11\x48\x12\x48\x13\x48\x14\x48\x15\x48\x16\x48\x17\x48\x18\x48\x19\x48\x1a\x48\x1b\x48\x1c\x48\x1d\x48\x1e\x48\x1f\x48\x20\x48\x21\x48\x22\x48\x23\x48\x24\x00\x00", /* ea00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x25\x48\x26\x48\x27\x48\x28\x48\x29\x48\x2a\x48\x2b\x48\x2c\x48\x2d\x48\x2e\x48\x2f\x48\x30\x48\x31\x48\x32\x48\x33\x48\x34\x48\x35\x48\x36\x48\x37\x48\x38\x48\x39\x48\x3a\x48\x3b\x48\x3c\x48\x3d\x48\x3e\x48\x3f\x48\x40\x48\x41\x48\x42\x48\x43\x48\x44\x48\x45\x48\x46\x48\x47\x48\x48\x48\x49\x48\x4a\x48\x4b\x48\x4c\x48\x4d\x48\x4e\x48\x4f\x48\x50\x48\x51\x48\x52\x48\x53\x48\x54\x48\x55\x48\x56\x48\x57\x48\x58\x48\x59\x48\x5a\x48\x5b\x48\x5c\x48\x5d\x48\x5e\x48\x5f\x48\x60\x48\x61\x48\x62\x48\x63", /* ea80 */ "\x48\x64\x48\x65\x48\x66\x48\x67\x48\x68\x48\x69\x48\x6a\x48\x6b\x48\x6c\x48\x6d\x48\x6e\x48\x6f\x48\x70\x48\x71\x48\x72\x48\x73\x48\x74\x48\x75\x48\x76\x48\x77\x48\x78\x48\x79\x48\x7a\x48\x7b\x48\x7c\x48\x7d\x48\x7e\x48\x7f\x48\x80\x48\x81\x48\x82\x48\x83\x48\x84\x48\x85\x48\x86\x48\x87\x48\x88\x48\x89\x48\x8a\x48\x8b\x48\x8c\x48\x8d\x48\x8e\x48\x8f\x48\x90\x48\x91\x48\x92\x48\x93\x48\x94\x48\x95\x48\x96\x48\x97\x48\x98\x48\x99\x48\x9a\x48\x9b\x48\x9c\x48\x9d\x48\x9e\x48\x9f\x48\xa0\x48\xa1\x48\xa2\x48\xa3\x48\xa4\x48\xa5\x48\xa6\x48\xa7\x48\xa8\x48\xa9\x48\xaa\x48\xab\x48\xac\x48\xad\x48\xae\x48\xaf\x48\xb0\x48\xb1\x48\xb2\x48\xb3\x48\xb4\x48\xb5\x48\xb6\x48\xb7\x48\xb8\x48\xb9\x48\xba\x48\xbb\x48\xbc\x48\xbd\x48\xbe\x48\xbf\x48\xc0\x48\xc1\x48\xc2\x48\xc3\x48\xc4\x48\xc5\x48\xc6\x48\xc7\x48\xc8\x48\xc9\x48\xca\x48\xcb\x48\xcc\x48\xcd\x48\xce\x48\xcf\x48\xd0\x48\xd1\x48\xd2\x48\xd3\x48\xd4\x48\xd5\x48\xd6\x48\xd7\x48\xd8\x48\xd9\x48\xda\x48\xdb\x48\xdc\x48\xdd\x48\xde\x48\xdf\x48\xe0\x48\xe1\x48\xe2\x00\x00", /* eb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xe3\x48\xe4\x48\xe5\x48\xe6\x48\xe7\x48\xe8\x48\xe9\x48\xea\x48\xeb\x48\xec\x48\xed\x48\xee\x48\xef\x48\xf0\x48\xf1\x48\xf2\x48\xf3\x48\xf4\x48\xf5\x48\xf6\x48\xf7\x48\xf8\x48\xf9\x48\xfa\x48\xfb\x48\xfc\x48\xfd\x48\xfe\x48\xff\x49\x00\x49\x01\x49\x02\x49\x03\x49\x04\x49\x05\x49\x06\x49\x07\x49\x08\x49\x09\x49\x0a\x49\x0b\x49\x0c\x49\x0d\x49\x0e\x49\x0f\x49\x10\x49\x11\x49\x12\x49\x13\x49\x14\x49\x15\x49\x16\x49\x17\x49\x18\x49\x19\x49\x1a\x49\x1b\x49\x1c\x49\x1d\x49\x1e\x49\x1f\x49\x20\x49\x21", /* eb80 */ "\x49\x22\x49\x23\x49\x24\x49\x25\x49\x26\x49\x27\x49\x28\x49\x29\x49\x2a\x49\x2b\x49\x2c\x49\x2d\x49\x2e\x49\x2f\x49\x30\x49\x31\x49\x32\x49\x33\x49\x34\x49\x35\x49\x36\x49\x37\x49\x38\x49\x39\x49\x3a\x49\x3b\x49\x3c\x49\x3d\x49\x3e\x49\x3f\x49\x40\x49\x41\x49\x42\x49\x43\x49\x44\x49\x45\x49\x46\x49\x48\x49\x49\x49\x4a\x49\x4b\x49\x4c\x49\x4d\x49\x4e\x49\x4f\x49\x50\x49\x51\x49\x52\x49\x53\x49\x54\x49\x55\x49\x56\x49\x57\x49\x58\x49\x59\x49\x5a\x49\x5b\x49\x5c\x49\x5d\x49\x5e\x49\x5f\x49\x60\x49\x61\x49\x62\x49\x63\x49\x64\x49\x65\x49\x66\x49\x67\x49\x68\x49\x69\x49\x6a\x49\x6b\x49\x6c\x49\x6d\x49\x6e\x49\x6f\x49\x70\x49\x71\x49\x72\x49\x73\x49\x74\x49\x75\x49\x76\x49\x77\x49\x78\x49\x79\x49\x7b\x49\x7c\x49\x7e\x49\x7f\x49\x80\x49\x81\x49\x84\x49\x87\x49\x88\x49\x89\x49\x8a\x49\x8b\x49\x8c\x49\x8d\x49\x8e\x49\x8f\x49\x90\x49\x91\x49\x92\x49\x93\x49\x94\x49\x95\x49\x96\x49\x97\x49\x98\x49\x99\x49\x9a\x49\x9c\x49\x9d\x49\x9e\x49\xa0\x49\xa1\x49\xa2\x49\xa3\x49\xa4\x49\xa5\x49\xa6\x49\xa7\x49\xa8\x49\xa9\x00\x00", /* ec00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xaa\x49\xab\x49\xac\x49\xad\x49\xae\x49\xaf\x49\xb0\x49\xb1\x49\xb2\x49\xb3\x49\xb4\x49\xb5\x49\xb8\x49\xb9\x49\xba\x49\xbb\x49\xbc\x49\xbd\x49\xbe\x49\xbf\x49\xc0\x49\xc1\x49\xc2\x49\xc3\x49\xc4\x49\xc5\x49\xc6\x49\xc7\x49\xc8\x49\xc9\x49\xca\x49\xcb\x49\xcc\x49\xcd\x49\xce\x49\xcf\x49\xd0\x49\xd1\x49\xd2\x49\xd3\x49\xd4\x49\xd5\x49\xd6\x49\xd7\x49\xd8\x49\xd9\x49\xda\x49\xdb\x49\xdc\x49\xdd\x49\xde\x49\xdf\x49\xe0\x49\xe1\x49\xe2\x49\xe3\x49\xe4\x49\xe5\x49\xe6\x49\xe7\x49\xe8\x49\xe9\x49\xea", /* ec80 */ "\x49\xeb\x49\xec\x49\xed\x49\xee\x49\xef\x49\xf0\x49\xf1\x49\xf2\x49\xf3\x49\xf4\x49\xf5\x49\xf6\x49\xf7\x49\xf8\x49\xf9\x49\xfa\x49\xfb\x49\xfc\x49\xfd\x49\xfe\x49\xff\x4a\x00\x4a\x01\x4a\x02\x4a\x03\x4a\x04\x4a\x05\x4a\x06\x4a\x07\x4a\x08\x4a\x09\x4a\x0a\x4a\x0b\x4a\x0c\x4a\x0d\x4a\x0e\x4a\x0f\x4a\x10\x4a\x11\x4a\x12\x4a\x13\x4a\x14\x4a\x15\x4a\x16\x4a\x17\x4a\x18\x4a\x19\x4a\x1a\x4a\x1b\x4a\x1c\x4a\x1d\x4a\x1e\x4a\x1f\x4a\x20\x4a\x21\x4a\x22\x4a\x23\x4a\x24\x4a\x25\x4a\x26\x4a\x27\x4a\x28\x4a\x29\x4a\x2a\x4a\x2b\x4a\x2c\x4a\x2d\x4a\x2e\x4a\x2f\x4a\x30\x4a\x31\x4a\x32\x4a\x33\x4a\x34\x4a\x35\x4a\x36\x4a\x37\x4a\x38\x4a\x39\x4a\x3a\x4a\x3b\x4a\x3c\x4a\x3d\x4a\x3e\x4a\x3f\x4a\x40\x4a\x41\x4a\x42\x4a\x43\x4a\x44\x4a\x45\x4a\x46\x4a\x47\x4a\x48\x4a\x49\x4a\x4a\x4a\x4b\x4a\x4c\x4a\x4d\x4a\x4e\x4a\x4f\x4a\x50\x4a\x51\x4a\x52\x4a\x53\x4a\x54\x4a\x55\x4a\x56\x4a\x57\x4a\x58\x4a\x59\x4a\x5a\x4a\x5b\x4a\x5c\x4a\x5d\x4a\x5e\x4a\x5f\x4a\x60\x4a\x61\x4a\x62\x4a\x63\x4a\x64\x4a\x65\x4a\x66\x4a\x67\x4a\x68\x4a\x69\x00\x00", /* ed00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6a\x4a\x6b\x4a\x6c\x4a\x6d\x4a\x6e\x4a\x6f\x4a\x70\x4a\x71\x4a\x72\x4a\x73\x4a\x74\x4a\x75\x4a\x76\x4a\x77\x4a\x78\x4a\x79\x4a\x7a\x4a\x7b\x4a\x7c\x4a\x7d\x4a\x7e\x4a\x7f\x4a\x80\x4a\x81\x4a\x82\x4a\x83\x4a\x84\x4a\x85\x4a\x86\x4a\x87\x4a\x88\x4a\x89\x4a\x8a\x4a\x8b\x4a\x8c\x4a\x8d\x4a\x8e\x4a\x8f\x4a\x90\x4a\x91\x4a\x92\x4a\x93\x4a\x94\x4a\x95\x4a\x96\x4a\x97\x4a\x98\x4a\x99\x4a\x9a\x4a\x9b\x4a\x9c\x4a\x9d\x4a\x9e\x4a\x9f\x4a\xa0\x4a\xa1\x4a\xa2\x4a\xa3\x4a\xa4\x4a\xa5\x4a\xa6\x4a\xa7\x4a\xa8", /* ed80 */ "\x4a\xa9\x4a\xaa\x4a\xab\x4a\xac\x4a\xad\x4a\xae\x4a\xaf\x4a\xb0\x4a\xb1\x4a\xb2\x4a\xb3\x4a\xb4\x4a\xb5\x4a\xb6\x4a\xb7\x4a\xb8\x4a\xb9\x4a\xba\x4a\xbb\x4a\xbc\x4a\xbd\x4a\xbe\x4a\xbf\x4a\xc0\x4a\xc1\x4a\xc2\x4a\xc3\x4a\xc4\x4a\xc5\x4a\xc6\x4a\xc7\x4a\xc8\x4a\xc9\x4a\xca\x4a\xcb\x4a\xcc\x4a\xcd\x4a\xce\x4a\xcf\x4a\xd0\x4a\xd1\x4a\xd2\x4a\xd3\x4a\xd4\x4a\xd5\x4a\xd6\x4a\xd7\x4a\xd8\x4a\xd9\x4a\xda\x4a\xdb\x4a\xdc\x4a\xdd\x4a\xde\x4a\xdf\x4a\xe0\x4a\xe1\x4a\xe2\x4a\xe3\x4a\xe4\x4a\xe5\x4a\xe6\x4a\xe7\x4a\xe8\x4a\xe9\x4a\xea\x4a\xeb\x4a\xec\x4a\xed\x4a\xee\x4a\xef\x4a\xf0\x4a\xf1\x4a\xf2\x4a\xf3\x4a\xf4\x4a\xf5\x4a\xf6\x4a\xf7\x4a\xf8\x4a\xf9\x4a\xfa\x4a\xfb\x4a\xfc\x4a\xfd\x4a\xfe\x4a\xff\x4b\x00\x4b\x01\x4b\x02\x4b\x03\x4b\x04\x4b\x05\x4b\x06\x4b\x07\x4b\x08\x4b\x09\x4b\x0a\x4b\x0b\x4b\x0c\x4b\x0d\x4b\x0e\x4b\x0f\x4b\x10\x4b\x11\x4b\x12\x4b\x13\x4b\x14\x4b\x15\x4b\x16\x4b\x17\x4b\x18\x4b\x19\x4b\x1a\x4b\x1b\x4b\x1c\x4b\x1d\x4b\x1e\x4b\x1f\x4b\x20\x4b\x21\x4b\x22\x4b\x23\x4b\x24\x4b\x25\x4b\x26\x4b\x27\x00\x00", /* ee00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x28\x4b\x29\x4b\x2a\x4b\x2b\x4b\x2c\x4b\x2d\x4b\x2e\x4b\x2f\x4b\x30\x4b\x31\x4b\x32\x4b\x33\x4b\x34\x4b\x35\x4b\x36\x4b\x37\x4b\x38\x4b\x39\x4b\x3a\x4b\x3b\x4b\x3c\x4b\x3d\x4b\x3e\x4b\x3f\x4b\x40\x4b\x41\x4b\x42\x4b\x43\x4b\x44\x4b\x45\x4b\x46\x4b\x47\x4b\x48\x4b\x49\x4b\x4a\x4b\x4b\x4b\x4c\x4b\x4d\x4b\x4e\x4b\x4f\x4b\x50\x4b\x51\x4b\x52\x4b\x53\x4b\x54\x4b\x55\x4b\x56\x4b\x57\x4b\x58\x4b\x59\x4b\x5a\x4b\x5b\x4b\x5c\x4b\x5d\x4b\x5e\x4b\x5f\x4b\x60\x4b\x61\x4b\x62\x4b\x63\x4b\x64\x4b\x65\x4b\x66", /* ee80 */ "\x4b\x67\x4b\x68\x4b\x69\x4b\x6a\x4b\x6b\x4b\x6c\x4b\x6d\x4b\x6e\x4b\x6f\x4b\x70\x4b\x71\x4b\x72\x4b\x73\x4b\x74\x4b\x75\x4b\x76\x4b\x77\x4b\x78\x4b\x79\x4b\x7a\x4b\x7b\x4b\x7c\x4b\x7d\x4b\x7e\x4b\x7f\x4b\x80\x4b\x81\x4b\x82\x4b\x83\x4b\x84\x4b\x85\x4b\x86\x4b\x87\x4b\x88\x4b\x89\x4b\x8a\x4b\x8b\x4b\x8c\x4b\x8d\x4b\x8e\x4b\x8f\x4b\x90\x4b\x91\x4b\x92\x4b\x93\x4b\x94\x4b\x95\x4b\x96\x4b\x97\x4b\x98\x4b\x99\x4b\x9a\x4b\x9b\x4b\x9c\x4b\x9d\x4b\x9e\x4b\x9f\x4b\xa0\x4b\xa1\x4b\xa2\x4b\xa3\x4b\xa4\x4b\xa5\x4b\xa6\x4b\xa7\x4b\xa8\x4b\xa9\x4b\xaa\x4b\xab\x4b\xac\x4b\xad\x4b\xae\x4b\xaf\x4b\xb0\x4b\xb1\x4b\xb2\x4b\xb3\x4b\xb4\x4b\xb5\x4b\xb6\x4b\xb7\x4b\xb8\x4b\xb9\x4b\xba\x4b\xbb\x4b\xbc\x4b\xbd\x4b\xbe\x4b\xbf\x4b\xc0\x4b\xc1\x4b\xc2\x4b\xc3\x4b\xc4\x4b\xc5\x4b\xc6\x4b\xc7\x4b\xc8\x4b\xc9\x4b\xca\x4b\xcb\x4b\xcc\x4b\xcd\x4b\xce\x4b\xcf\x4b\xd0\x4b\xd1\x4b\xd2\x4b\xd3\x4b\xd4\x4b\xd5\x4b\xd6\x4b\xd7\x4b\xd8\x4b\xd9\x4b\xda\x4b\xdb\x4b\xdc\x4b\xdd\x4b\xde\x4b\xdf\x4b\xe0\x4b\xe1\x4b\xe2\x4b\xe3\x4b\xe4\x4b\xe5\x00\x00", /* ef00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe6\x4b\xe7\x4b\xe8\x4b\xe9\x4b\xea\x4b\xeb\x4b\xec\x4b\xed\x4b\xee\x4b\xef\x4b\xf0\x4b\xf1\x4b\xf2\x4b\xf3\x4b\xf4\x4b\xf5\x4b\xf6\x4b\xf7\x4b\xf8\x4b\xf9\x4b\xfa\x4b\xfb\x4b\xfc\x4b\xfd\x4b\xfe\x4b\xff\x4c\x00\x4c\x01\x4c\x02\x4c\x03\x4c\x04\x4c\x05\x4c\x06\x4c\x07\x4c\x08\x4c\x09\x4c\x0a\x4c\x0b\x4c\x0c\x4c\x0d\x4c\x0e\x4c\x0f\x4c\x10\x4c\x11\x4c\x12\x4c\x13\x4c\x14\x4c\x15\x4c\x16\x4c\x17\x4c\x18\x4c\x19\x4c\x1a\x4c\x1b\x4c\x1c\x4c\x1d\x4c\x1e\x4c\x1f\x4c\x20\x4c\x21\x4c\x22\x4c\x23\x4c\x24", /* ef80 */ "\x4c\x25\x4c\x26\x4c\x27\x4c\x28\x4c\x29\x4c\x2a\x4c\x2b\x4c\x2c\x4c\x2d\x4c\x2e\x4c\x2f\x4c\x30\x4c\x31\x4c\x32\x4c\x33\x4c\x34\x4c\x35\x4c\x36\x4c\x37\x4c\x38\x4c\x39\x4c\x3a\x4c\x3b\x4c\x3c\x4c\x3d\x4c\x3e\x4c\x3f\x4c\x40\x4c\x41\x4c\x42\x4c\x43\x4c\x44\x4c\x45\x4c\x46\x4c\x47\x4c\x48\x4c\x49\x4c\x4a\x4c\x4b\x4c\x4c\x4c\x4d\x4c\x4e\x4c\x4f\x4c\x50\x4c\x51\x4c\x52\x4c\x53\x4c\x54\x4c\x55\x4c\x56\x4c\x57\x4c\x58\x4c\x59\x4c\x5a\x4c\x5b\x4c\x5c\x4c\x5d\x4c\x5e\x4c\x5f\x4c\x60\x4c\x61\x4c\x62\x4c\x63\x4c\x64\x4c\x65\x4c\x66\x4c\x67\x4c\x68\x4c\x69\x4c\x6a\x4c\x6b\x4c\x6c\x4c\x6d\x4c\x6e\x4c\x6f\x4c\x70\x4c\x71\x4c\x72\x4c\x73\x4c\x74\x4c\x75\x4c\x76\x4c\x78\x4c\x79\x4c\x7a\x4c\x7b\x4c\x7c\x4c\x7d\x4c\x7e\x4c\x7f\x4c\x80\x4c\x81\x4c\x82\x4c\x83\x4c\x84\x4c\x85\x4c\x86\x4c\x87\x4c\x88\x4c\x89\x4c\x8a\x4c\x8b\x4c\x8c\x4c\x8d\x4c\x8e\x4c\x8f\x4c\x90\x4c\x91\x4c\x92\x4c\x93\x4c\x94\x4c\x95\x4c\x96\x4c\x97\x4c\x98\x4c\x99\x4c\x9a\x4c\x9b\x4c\x9c\x4c\x9d\x4c\x9e\x4c\xa4\x4c\xa5\x4c\xa6\x4c\xa7\x4c\xa8\x4c\xa9\x00\x00", /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xaa\x4c\xab\x4c\xac\x4c\xad\x4c\xae\x4c\xaf\x4c\xb0\x4c\xb1\x4c\xb2\x4c\xb3\x4c\xb4\x4c\xb5\x4c\xb6\x4c\xb7\x4c\xb8\x4c\xb9\x4c\xba\x4c\xbb\x4c\xbc\x4c\xbd\x4c\xbe\x4c\xbf\x4c\xc0\x4c\xc1\x4c\xc2\x4c\xc3\x4c\xc4\x4c\xc5\x4c\xc6\x4c\xc7\x4c\xc8\x4c\xc9\x4c\xca\x4c\xcb\x4c\xcc\x4c\xcd\x4c\xce\x4c\xcf\x4c\xd0\x4c\xd1\x4c\xd2\x4c\xd3\x4c\xd4\x4c\xd5\x4c\xd6\x4c\xd7\x4c\xd8\x4c\xd9\x4c\xda\x4c\xdb\x4c\xdc\x4c\xdd\x4c\xde\x4c\xdf\x4c\xe0\x4c\xe1\x4c\xe2\x4c\xe3\x4c\xe4\x4c\xe5\x4c\xe6\x4c\xe7\x4c\xe8", /* f680 */ "\x4c\xe9\x4c\xea\x4c\xeb\x4c\xec\x4c\xed\x4c\xee\x4c\xef\x4c\xf0\x4c\xf1\x4c\xf2\x4c\xf3\x4c\xf4\x4c\xf5\x4c\xf6\x4c\xf7\x4c\xf8\x4c\xf9\x4c\xfa\x4c\xfb\x4c\xfc\x4c\xfd\x4c\xfe\x4c\xff\x4d\x00\x4d\x01\x4d\x02\x4d\x03\x4d\x04\x4d\x05\x4d\x06\x4d\x07\x4d\x08\x4d\x09\x4d\x0a\x4d\x0b\x4d\x0c\x4d\x0d\x4d\x0e\x4d\x0f\x4d\x10\x4d\x11\x4d\x12\x4d\x1a\x4d\x1b\x4d\x1c\x4d\x1d\x4d\x1e\x4d\x1f\x4d\x20\x4d\x21\x4d\x22\x4d\x23\x4d\x24\x4d\x25\x4d\x26\x4d\x27\x4d\x28\x4d\x29\x4d\x2a\x4d\x2b\x4d\x2c\x4d\x2d\x4d\x2e\x4d\x2f\x4d\x30\x4d\x31\x4d\x32\x4d\x33\x4d\x34\x4d\x35\x4d\x36\x4d\x37\x4d\x38\x4d\x39\x4d\x3a\x4d\x3b\x4d\x3c\x4d\x3d\x4d\x3e\x4d\x3f\x4d\x40\x4d\x41\x4d\x42\x4d\x43\x4d\x44\x4d\x45\x4d\x46\x4d\x47\x4d\x48\x4d\x49\x4d\x4a\x4d\x4b\x4d\x4c\x4d\x4d\x4d\x4e\x4d\x4f\x4d\x50\x4d\x51\x4d\x52\x4d\x53\x4d\x54\x4d\x55\x4d\x56\x4d\x57\x4d\x58\x4d\x59\x4d\x5a\x4d\x5b\x4d\x5c\x4d\x5d\x4d\x5e\x4d\x5f\x4d\x60\x4d\x61\x4d\x62\x4d\x63\x4d\x64\x4d\x65\x4d\x66\x4d\x67\x4d\x68\x4d\x69\x4d\x6a\x4d\x6b\x4d\x6c\x4d\x6d\x4d\x6e\x00\x00", /* f700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6f\x4d\x70\x4d\x71\x4d\x72\x4d\x73\x4d\x74\x4d\x75\x4d\x76\x4d\x77\x4d\x78\x4d\x79\x4d\x7a\x4d\x7b\x4d\x7c\x4d\x7d\x4d\x7e\x4d\x7f\x4d\x80\x4d\x81\x4d\x82\x4d\x83\x4d\x84\x4d\x85\x4d\x86\x4d\x87\x4d\x88\x4d\x89\x4d\x8a\x4d\x8b\x4d\x8c\x4d\x8d\x4d\x8e\x4d\x8f\x4d\x90\x4d\x91\x4d\x92\x4d\x93\x4d\x94\x4d\x95\x4d\x96\x4d\x97\x4d\x98\x4d\x99\x4d\x9a\x4d\x9b\x4d\x9c\x4d\x9d\x4d\x9e\x4d\x9f\x4d\xa0\x4d\xa1\x4d\xa2\x4d\xa3\x4d\xa4\x4d\xa5\x4d\xa6\x4d\xa7\x4d\xa8\x4d\xa9\x4d\xaa\x4d\xab\x4d\xac\x4d\xad", /* f780 */ "\x4d\xaf\x4d\xb0\x4d\xb1\x4d\xb2\x4d\xb3\x4d\xb4\x4d\xb5\x4d\xb6\x4d\xb7\x4d\xb8\x4d\xb9\x4d\xba\x4d\xbb\x4d\xbc\x4d\xbd\x4d\xbe\x4d\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x56\xfb\x57\xfb\x58\xfb\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x7a\xfb\x7b\xfb\x7c\xfb\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x8e", /* f880 */ "\xfb\x8f\xfb\x90\xfb\x91\xfb\x92\xfb\x93\xfb\x94\xfb\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xaa\xfb\xab\xfb\xac\xfb\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xd3\xfb\xd4\xfb\xd5\xfb\xd6\xfb\xd7\xfb\xd8\xfb\xd9\xfb\xda\xfb\xdb\xfb\xdc\xfb\xdd\xfb\xde\xfb\xdf\xfb\xe0\xfb\xe1\xfb\xe2\xfb\xe3\xfb\xe4\xfb\xe5\xfb\xe6\xfb\xe7\xfb\xe8\xfb\xe9\xfb\xea\xfb\xeb\xfb\xec\xfb\xed\xfb\xee\xfb\xef\xfb\xf0\xfb\xf1\xfb\xf2\xfb\xf3\xfb\xf4\xfb\xf5\xfb\xf6\xfb\xf7\xfb\xf8\xfb\xf9\xfb\xfa\xfb\xfb\xfb\xfc\xfb\xfd\xfb\xfe\xfb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x89\xfe\x8a\xfe\x8b\xfe\x8c\xfe\x8d\xfe\x8e\xfe\x8f\xfe\x90\xfe\x91\xfe\x92\x00\x00\x00\x00\xfe\x95\xfe\x96\xfe\x97\xfe\x98\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x9d\xfe\x9e\xfe\x9f\xfe\xa0\xfe\xa1\xfe\xa2\xfe\xa3\xfe\xa4\xfe\xa5\xfe\xa6\xfe\xa7\xfe\xa8\xfe\xa9\xfe\xaa\x00\x00\x00\x00\xfe\xad\xfe\xae\xfe\xaf\xfe\xb0\xfe\xb1\xfe\xb2\xfe\xb3\xfe\xb4\xfe\xb5\xfe\xb6\xfe\xb7\x00\x00", /* fc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xc9\xfe\xca\xfe\xcb\xfe\xcc\xfe\xcd\xfe\xce\xfe\xcf\xfe\xd0\xfe\xd1\xfe\xd2\xfe\xd3\xfe\xd4\xfe\xd5\xfe\xd6\xfe\xd7\xfe\xd8\xfe\xd9\xfe\xda\xfe\xdb\xfe\xdc\xfe\xdd\xfe\xde\xfe\xdf\xfe\xe0\xfe\xe1\xfe\xe2\xfe\xe3\xfe\xe4\xfe\xe5\xfe\xe6\xfe\xe7\xfe\xe8\xfe\xe9\xfe\xea\xfe\xeb\xfe\xec\xfe\xed\xfe\xee\xfe\xef\xfe\xf0\xfe\xf1\xfe\xf2\xfe\xf3\xfe\xf4\x00\x00\x00\x00", /* fc80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfb\xfe\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { NULL } }; /* Code page aliases. */ typedef struct { char *alias; char *canon; } cpalias_t; cpalias_t cpaliases16[] = { { "chinese-gb18030", "cp1388" }, { "cp1027", "cp930" }, /* historical error */ { "cp290", "cp930" }, /* historical error */ { "cp936", "cp935" }, /* historical error */ { "japanese-1027", "cp930" }, /* historical error */ { "japanese-290", "cp930" }, /* historical error */ { "japanese-kana", "cp930" }, { "japanese-latin", "cp930" }, /* 930 and 939 DBCS are the same */ { "simplified-chinese", "cp935" }, { "traditional-chinese", "cp937" }, { NULL, NULL } }; static uni16_t *cur_uni16 = NULL; void charset_list_dbcs(void) { int i; int j; char *sep = ""; printf("DBCS host code pages (with aliases):\n"); for (i = 0; uni16[i].name != NULL; i++) { Boolean any = False; char *asep = " ("; printf("%s%s", sep, uni16[i].name); for (j = 0; cpaliases16[j].alias != NULL; j++) { if (!strcmp(cpaliases16[j].canon, uni16[i].name)) { printf("%s%s", asep, cpaliases16[j].alias); asep = ", "; any = True; } } if (any) printf(")"); sep = ", "; } printf("\n"); } /* * Translate a single DBCS EBCDIC character to Unicode. * * If EUO_BLANK_UNDEF is set, undisplayable characters are returned as * wide spaces (U+3000); otherwise they are returned as 0. */ ucs4_t ebcdic_dbcs_to_unicode(ebc_t c, unsigned flags) { int row, col; int ix; if (cur_uni16 == NULL || c < 0x100) return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; if (c == 0x4040) return 0x3000; row = (c >> 7) & 0x1ff; if (cur_uni16->ebc2u[row] == NULL) return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; col = (c & 0x7f) * 2; ix = ((cur_uni16->ebc2u[row][col] & 0xff) << 8) | (cur_uni16->ebc2u[row][col + 1] & 0xff); if (ix) return ix; else return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; } /* * Map a UCS-4 character to a DBCS EBCDIC character. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic_dbcs(ucs4_t u) { int row, col; int ix; if (cur_uni16 == NULL || !u) return 0; if (u == 0x3000) return 0x4040; row = (u >> 7) & 0x1ff; if (cur_uni16->u2ebc[row] == NULL) return 0; col = (u & 0x7f) * 2; ix = ((cur_uni16->u2ebc[row][col] & 0xff) << 8) | (cur_uni16->u2ebc[row][col + 1] & 0xff); return ix; } /* * Set the EBCDIC-to-Unicode DBCS translation table. * Returns 0 for success, -1 for failure. */ int set_uni_dbcs(const char *csname, const char **codepage, const char **display_charsets) { int i; const char *realname = csname; int rc = -1; /* Search for an alias. */ for (i = 0; cpaliases16[i].alias != NULL; i++) { if (!strcasecmp(csname, cpaliases16[i].alias)) { realname = cpaliases16[i].canon; break; } } /* Search for a match. */ for (i = 0; uni16[i].name != NULL; i++) { if (!strcasecmp(realname, uni16[i].name)) { cur_uni16 = &uni16[i]; *codepage = uni16[i].codepage; *display_charsets = uni16[i].display_charset; rc = 0; break; } } /* * If this fails (which we sometimes do on purpose), forget any * old setting. */ if (rc == -1) cur_uni16 = NULL; return rc; } #endif /*]*/ ibm-3270-3.3.10ga4/c3270/3270ds.h0000644000175000017500000003372511254565704015032 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES AND GTRC * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, JEFF * SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * 3270ds.h * * Header file for the 3270 Data Stream Protocol. */ /* 3270 commands */ #define CMD_W 0x01 /* write */ #define CMD_RB 0x02 /* read buffer */ #define CMD_NOP 0x03 /* no-op */ #define CMD_EW 0x05 /* erase/write */ #define CMD_RM 0x06 /* read modified */ #define CMD_EWA 0x0d /* erase/write alternate */ #define CMD_RMA 0x0e /* read modified all */ #define CMD_EAU 0x0f /* erase all unprotected */ #define CMD_WSF 0x11 /* write structured field */ /* SNA 3270 commands */ #define SNA_CMD_RMA 0x6e /* read modified all */ #define SNA_CMD_EAU 0x6f /* erase all unprotected */ #define SNA_CMD_EWA 0x7e /* erase/write alternate */ #define SNA_CMD_W 0xf1 /* write */ #define SNA_CMD_RB 0xf2 /* read buffer */ #define SNA_CMD_WSF 0xf3 /* write structured field */ #define SNA_CMD_EW 0xf5 /* erase/write */ #define SNA_CMD_RM 0xf6 /* read modified */ /* 3270 orders */ #define ORDER_PT 0x05 /* program tab */ #define ORDER_GE 0x08 /* graphic escape */ #define ORDER_SBA 0x11 /* set buffer address */ #define ORDER_EUA 0x12 /* erase unprotected to address */ #define ORDER_IC 0x13 /* insert cursor */ #define ORDER_SF 0x1d /* start field */ #define ORDER_SA 0x28 /* set attribute */ #define ORDER_SFE 0x29 /* start field extended */ #define ORDER_YALE 0x2b /* Yale sub command */ #define ORDER_MF 0x2c /* modify field */ #define ORDER_RA 0x3c /* repeat to address */ #define FCORDER_NULL 0x00 /* format control: null */ #define FCORDER_FF 0x0c /* form feed */ #define FCORDER_CR 0x0d /* carriage return */ #define FCORDER_SO 0x0e /* shift out (DBCS subfield) */ #define FCORDER_SI 0x0f /* shift in (DBCS end) */ #define FCORDER_NL 0x15 /* new line */ #define FCORDER_EM 0x19 /* end of medium */ #define FCORDER_DUP 0x1c /* duplicate */ #define FCORDER_FM 0x1e /* field mark */ #define FCORDER_SUB 0x3f /* substitute */ #define FCORDER_EO 0xff /* eight ones */ /* SCS control code, some overlap orders */ #define SCS_BS 0x16 /* Back Space */ #define SCS_BEL 0x2f /* Bell Function */ #define SCS_CR 0x0d /* Carriage Return */ #define SCS_ENP 0x14 /* Enable Presentation */ #define SCS_FF 0x0c /* Forms Feed */ #define SCS_GE 0x08 /* Graphic Escape */ #define SCS_HT 0x05 /* Horizontal Tab */ #define SCS_INP 0x24 /* Inhibit Presentation */ #define SCS_IRS 0x1e /* Interchange-Record Separator */ #define SCS_LF 0x25 /* Line Feed */ #define SCS_NL 0x15 /* New Line */ #define SCS_SA 0x28 /* Set Attribute: */ #define SCS_SA_RESET 0x00 /* Reset all */ #define SCS_SA_HIGHLIGHT 0x41 /* Highlighting */ #define SCS_SA_CS 0x42 /* Character set */ #define SCS_SA_GRID 0xc2 /* Grid */ #define SCS_SET 0x2b /* Set: */ #define SCS_SHF 0xc1 /* Horizontal format */ #define SCS_SLD 0xc6 /* Line Density */ #define SCS_SVF 0xc2 /* Vertical Format */ #define SCS_SO 0x0e /* Shift out (DBCS subfield start) */ #define SCS_SI 0x0f /* Shift in (DBCS subfield end) */ #define SCS_TRN 0x35 /* Transparent */ #define SCS_VCS 0x04 /* Vertical Channel Select */ #define SCS_VT 0x0b /* Vertical Tab */ /* Structured fields */ #define SF_READ_PART 0x01 /* read partition */ #define SF_RP_QUERY 0x02 /* query */ #define SF_RP_QLIST 0x03 /* query list */ #define SF_RPQ_LIST 0x00 /* QCODE list */ #define SF_RPQ_EQUIV 0x40 /* equivalent+ QCODE list */ #define SF_RPQ_ALL 0x80 /* all */ #define SF_ERASE_RESET 0x03 /* erase/reset */ #define SF_ER_DEFAULT 0x00 /* default */ #define SF_ER_ALT 0x80 /* alternate */ #define SF_SET_REPLY_MODE 0x09 /* set reply mode */ #define SF_SRM_FIELD 0x00 /* field */ #define SF_SRM_XFIELD 0x01 /* extended field */ #define SF_SRM_CHAR 0x02 /* character */ #define SF_CREATE_PART 0x0c /* create partition */ #define CPFLAG_PROT 0x40 /* protected flag */ #define CPFLAG_COPY_PS 0x20 /* local copy to presentation space */ #define CPFLAG_BASE 0x07 /* base character set index */ #define SF_OUTBOUND_DS 0x40 /* outbound 3270 DS */ #define SF_TRANSFER_DATA 0xd0 /* file transfer open request */ /* Query replies */ #define QR_SUMMARY 0x80 /* summary */ #define QR_USABLE_AREA 0x81 /* usable area */ #define QR_IMAGE 0x82 /* image */ #define QR_TEXT_PART 0x83 /* text partitions */ #define QR_ALPHA_PART 0x84 /* alphanumeric partitions */ #define QR_CHARSETS 0x85 /* character sets */ #define QR_COLOR 0x86 /* color */ #define QR_HIGHLIGHTING 0x87 /* highlighting */ #define QR_REPLY_MODES 0x88 /* reply modes */ #define QR_FIELD_VAL 0x8a /* field validation */ #define QR_MSR_CTL 0x8b /* MSR control */ #define QR_OUTLINING 0x8c /* field outlining */ #define QR_PART_CHAR 0x8e /* partition characteristics */ #define QR_OEM_AUX 0x8f /* OEM auxiliary device */ #define QR_FMT_PRES 0x90 /* format presentation */ #define QR_DBCS_ASIA 0x91 /* DBCS-Asia */ #define QR_SAVE_RESTORE 0x92 /* save/restore format */ #define QR_PC3270 0x93 /* PC3270 */ #define QR_FMT_SAD 0x94 /* format storage auxiliary device */ #define QR_DDM 0x95 /* distributed data management */ #define QR_STG_POOLS 0x96 /* storage pools */ #define QR_DIA 0x97 /* document interchange architecture */ #define QR_DATA_CHAIN 0x98 /* data chaining */ #define QR_AUX_DEVICE 0x99 /* auxiliary device */ #define QR_3270_IPDS 0x9a /* 3270 IPDS */ #define QR_PDDS 0x9c /* product defined data stream */ #define QR_IBM_AUX 0x9e /* IBM auxiliary device */ #define QR_BEGIN_EOF 0x9f /* begin/end of file */ #define QR_DEVICE_CHAR 0xa0 /* device characteristics */ #define QR_RPQNAMES 0xa1 /* RPQ names */ #define QR_DATA_STREAMS 0xa2 /* data streams */ #define QR_IMP_PART 0xa6 /* implicit partition */ #define QR_PAPER_FEED 0xa7 /* paper feed techniques */ #define QR_TRANSPARENCY 0xa8 /* transparency */ #define QR_SPC 0xa9 /* settable printer characteristics */ #define QR_IOCA_AD 0xaa /* IOCA auxiliary device */ #define QR_CPR 0xab /* cooperative proc. requestor */ #define QR_SEGMENT 0xb0 /* segment */ #define QR_PROCEDURE 0xb1 /* procedure */ #define QR_LINE_TYPE 0xb2 /* line type */ #define QR_PORT 0xb3 /* port */ #define QR_GCOLOR 0xb4 /* graphic color */ #define QR_XDR 0xb5 /* extended drawing routine */ #define QR_GSS 0xb6 /* graphic symbol sets */ #define QR_NULL 0xff /* null */ #define BA_TO_ROW(ba) ((ba) / COLS) #define BA_TO_COL(ba) ((ba) % COLS) #define ROWCOL_TO_BA(r,c) (((r) * COLS) + c) #define INC_BA(ba) { (ba) = ((ba) + 1) % (COLS * ROWS); } #define DEC_BA(ba) { (ba) = (ba) ? (ba - 1) : ((COLS*ROWS) - 1); } /* Field attributes. */ #define FA_PRINTABLE 0xc0 /* these make the character "printable" */ #define FA_PROTECT 0x20 /* unprotected (0) / protected (1) */ #define FA_NUMERIC 0x10 /* alphanumeric (0) /numeric (1) */ #define FA_INTENSITY 0x0c /* display/selector pen detectable: */ #define FA_INT_NORM_NSEL 0x00 /* 00 normal, non-detect */ #define FA_INT_NORM_SEL 0x04 /* 01 normal, detectable */ #define FA_INT_HIGH_SEL 0x08 /* 10 intensified, detectable */ #define FA_INT_ZERO_NSEL 0x0c /* 11 nondisplay, non-detect */ #define FA_RESERVED 0x02 /* must be 0 */ #define FA_MODIFY 0x01 /* modified (1) */ /* Bits in the field attribute that are stored. */ #define FA_MASK (FA_PROTECT | FA_NUMERIC | FA_INTENSITY | FA_MODIFY) /* Tests for various attribute properties. */ #define FA_IS_MODIFIED(c) ((c) & FA_MODIFY) #define FA_IS_NUMERIC(c) ((c) & FA_NUMERIC) #define FA_IS_PROTECTED(c) ((c) & FA_PROTECT) #define FA_IS_SKIP(c) (((c) & FA_PROTECT) && ((c) & FA_NUMERIC)) #define FA_IS_ZERO(c) \ (((c) & FA_INTENSITY) == FA_INT_ZERO_NSEL) #define FA_IS_HIGH(c) \ (((c) & FA_INTENSITY) == FA_INT_HIGH_SEL) #define FA_IS_NORMAL(c) \ ( \ ((c) & FA_INTENSITY) == FA_INT_NORM_NSEL \ || \ ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \ ) #define FA_IS_SELECTABLE(c) \ ( \ ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \ || \ ((c) & FA_INTENSITY) == FA_INT_HIGH_SEL \ ) #define FA_IS_INTENSE(c) \ ((c & FA_INT_HIGH_SEL) == FA_INT_HIGH_SEL) /* Extended attributes */ #define XA_ALL 0x00 #define XA_3270 0xc0 #define XA_VALIDATION 0xc1 #define XAV_FILL 0x04 #define XAV_ENTRY 0x02 #define XAV_TRIGGER 0x01 #define XA_OUTLINING 0xc2 #define XAO_UNDERLINE 0x01 #define XAO_RIGHT 0x02 #define XAO_OVERLINE 0x04 #define XAO_LEFT 0x08 #define XA_HIGHLIGHTING 0x41 #define XAH_DEFAULT 0x00 #define XAH_NORMAL 0xf0 #define XAH_BLINK 0xf1 #define XAH_REVERSE 0xf2 #define XAH_UNDERSCORE 0xf4 #define XAH_INTENSIFY 0xf8 #define XA_FOREGROUND 0x42 #define XAC_DEFAULT 0x00 #define XA_CHARSET 0x43 #define XA_BACKGROUND 0x45 #define XA_TRANSPARENCY 0x46 #define XAT_DEFAULT 0x00 #define XAT_OR 0xf0 #define XAT_XOR 0xf1 #define XAT_OPAQUE 0xff #define XA_INPUT_CONTROL 0xfe #define XAI_DISABLED 0x00 #define XAI_ENABLED 0x01 /* WCC definitions */ #define WCC_RESET(c) ((c) & 0x40) #define WCC_START_PRINTER(c) ((c) & 0x08) #define WCC_SOUND_ALARM(c) ((c) & 0x04) #define WCC_KEYBOARD_RESTORE(c) ((c) & 0x02) #define WCC_RESET_MDT(c) ((c) & 0x01) /* AIDs */ #define AID_NO 0x60 /* no AID generated */ #define AID_QREPLY 0x61 #define AID_ENTER 0x7d #define AID_PF1 0xf1 #define AID_PF2 0xf2 #define AID_PF3 0xf3 #define AID_PF4 0xf4 #define AID_PF5 0xf5 #define AID_PF6 0xf6 #define AID_PF7 0xf7 #define AID_PF8 0xf8 #define AID_PF9 0xf9 #define AID_PF10 0x7a #define AID_PF11 0x7b #define AID_PF12 0x7c #define AID_PF13 0xc1 #define AID_PF14 0xc2 #define AID_PF15 0xc3 #define AID_PF16 0xc4 #define AID_PF17 0xc5 #define AID_PF18 0xc6 #define AID_PF19 0xc7 #define AID_PF20 0xc8 #define AID_PF21 0xc9 #define AID_PF22 0x4a #define AID_PF23 0x4b #define AID_PF24 0x4c #define AID_OICR 0xe6 #define AID_MSR_MHS 0xe7 #define AID_SELECT 0x7e #define AID_PA1 0x6c #define AID_PA2 0x6e #define AID_PA3 0x6b #define AID_CLEAR 0x6d #define AID_SYSREQ 0xf0 #define AID_SF 0x88 #define SFID_QREPLY 0x81 /* Colors */ #define HOST_COLOR_NEUTRAL_BLACK 0 #define HOST_COLOR_BLUE 1 #define HOST_COLOR_RED 2 #define HOST_COLOR_PINK 3 #define HOST_COLOR_GREEN 4 #define HOST_COLOR_TURQUOISE 5 #define HOST_COLOR_YELLOW 6 #define HOST_COLOR_NEUTRAL_WHITE 7 #define HOST_COLOR_BLACK 8 #define HOST_COLOR_DEEP_BLUE 9 #define HOST_COLOR_ORANGE 10 #define HOST_COLOR_PURPLE 11 #define HOST_COLOR_PALE_GREEN 12 #define HOST_COLOR_PALE_TURQUOISE 13 #define HOST_COLOR_GREY 14 #define HOST_COLOR_WHITE 15 /* Data stream manipulation macros. */ #define MASK32 0xff000000U #define MASK24 0x00ff0000U #define MASK16 0x0000ff00U #define MASK08 0x000000ffU #define MINUS1 0xffffffffU #define SET16(ptr, val) { \ *((ptr)++) = ((val) & MASK16) >> 8; \ *((ptr)++) = ((val) & MASK08); \ } #define GET16(val, ptr) { \ (val) = *((ptr)+1); \ (val) += *(ptr) << 8; \ } #define SET32(ptr, val) { \ *((ptr)++) = ((val) & MASK32) >> 24; \ *((ptr)++) = ((val) & MASK24) >> 16; \ *((ptr)++) = ((val) & MASK16) >> 8; \ *((ptr)++) = ((val) & MASK08); \ } #define HIGH8(s) (((s) >> 8) & 0xff) #define LOW8(s) ((s) & 0xff) /* Other EBCDIC control codes. */ #define EBC_null 0x00 #define EBC_ff 0x0c #define EBC_cr 0x0d #define EBC_so 0x0e #define EBC_si 0x0f #define EBC_nl 0x15 #define EBC_em 0x19 #define EBC_dup 0x1c #define EBC_fm 0x1e #define EBC_sub 0x3f #define EBC_space 0x40 #define EBC_nobreakspace 0x41 #define EBC_period 0x4b #define EBC_ampersand 0x50 #define EBC_underscore 0x6d #define EBC_greater 0x6e #define EBC_question 0x6f #define EBC_Yacute 0xad #define EBC_diaeresis 0xbd #define EBC_minus 0xca #define EBC_0 0xf0 #define EBC_9 0xf9 #define EBC_eo 0xff #define EBC_less 0x4c #define EBC_greaer 0x6e #define EBC_P 0xd7 #define EBC_M 0xd4 #define EBC_U 0xe4 /* Unicode private-use definitions. */ #define UPRIV_GE_00 0xf700 /* first GE */ #define UPRIV_GE_ff 0xf7ff /* last GE */ #define UPRIV_sub 0xf8fc #define UPRIV_eo 0xf8fd #define UPRIV_fm 0xf8fe #define UPRIV_dup 0xf8ff /* BIND definitions. */ #define BIND_RU 0x31 #define BIND_OFF_MAXRU_SEC 10 #define BIND_OFF_MAXRU_PRI 11 #define BIND_OFF_RD 20 #define BIND_OFF_CD 21 #define BIND_OFF_RA 22 #define BIND_OFF_CA 23 #define BIND_OFF_SSIZE 24 #define BIND_OFF_PLU_NAME_LEN 27 #define BIND_PLU_NAME_MAX 8 #define BIND_OFF_PLU_NAME 28 /* Screen sizes. */ #define MODEL_2_ROWS 24 #define MODEL_2_COLS 80 #define MODEL_3_ROWS 32 #define MODEL_3_COLS 80 #define MODEL_4_ROWS 43 #define MODEL_4_COLS 80 #define MODEL_5_ROWS 27 #define MODEL_5_COLS 132 ibm-3270-3.3.10ga4/c3270/proxy.h0000644000175000017500000000367311254565704015270 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxy.h * Common definitions for proxy. */ #define PROXY_PASSTHRU "passthru" #define PORT_PASSTHRU "3514" #define PROXY_HTTP "http" #define PORT_HTTP "3128" #define PROXY_TELNET "telnet" #define PROXY_SOCKS4 "socks4" #define PORT_SOCKS4 "1080" #define PROXY_SOCKS4A "socks4a" #define PORT_SOCKS4A "1080" #define PROXY_SOCKS5 "socks5" #define PORT_SOCKS5 "1080" #define PROXY_SOCKS5D "socks5d" #define PORT_SOCKS5D "1080" ibm-3270-3.3.10ga4/c3270/proxyc.h0000644000175000017500000000334311254565704015425 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxyc.h * Declarations for proxy.c. */ extern int proxy_setup(char **phost, char **pport); extern int proxy_negotiate(int type, int fd, char *host, unsigned short port); extern char *proxy_type_name(int type); ibm-3270-3.3.10ga4/c3270/see.c0000644000175000017500000002356011254565704014653 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * see.c * 3270 data stream decode functions. * */ #include "globals.h" #if defined(X3270_TRACE) /*[*/ #include #include #include #include #include "3270ds.h" #include "tablesc.h" #include "utf8c.h" #include "seec.h" #include "unicodec.h" const char * unknown(unsigned char value) { static char buf[64]; (void) sprintf(buf, "unknown[0x%x]", value); return buf; } const char * see_ebc(unsigned char ch) { static char buf[8]; char mb[16]; ucs4_t uc; switch (ch) { case FCORDER_NULL: return "NULL"; case FCORDER_SUB: return "SUB"; case FCORDER_DUP: return "DUP"; case FCORDER_FM: return "FM"; case FCORDER_FF: return "FF"; case FCORDER_CR: return "CR"; case FCORDER_NL: return "NL"; case FCORDER_EM: return "EM"; case FCORDER_EO: return "EO"; case FCORDER_SI: return "SI"; case FCORDER_SO: return "SO"; } if (ebcdic_to_multibyte_x(ch, CS_BASE, mb, sizeof(mb), EUO_NONE, &uc) && (mb[0] != ' ' || ch == 0x40)) strcpy(buf, mb); else (void) sprintf(buf, "X'%02X'", ch); return buf; } const char * see_aid(unsigned char code) { switch (code) { case AID_NO: return "NoAID"; case AID_ENTER: return "Enter"; case AID_PF1: return "PF1"; case AID_PF2: return "PF2"; case AID_PF3: return "PF3"; case AID_PF4: return "PF4"; case AID_PF5: return "PF5"; case AID_PF6: return "PF6"; case AID_PF7: return "PF7"; case AID_PF8: return "PF8"; case AID_PF9: return "PF9"; case AID_PF10: return "PF10"; case AID_PF11: return "PF11"; case AID_PF12: return "PF12"; case AID_PF13: return "PF13"; case AID_PF14: return "PF14"; case AID_PF15: return "PF15"; case AID_PF16: return "PF16"; case AID_PF17: return "PF17"; case AID_PF18: return "PF18"; case AID_PF19: return "PF19"; case AID_PF20: return "PF20"; case AID_PF21: return "PF21"; case AID_PF22: return "PF22"; case AID_PF23: return "PF23"; case AID_PF24: return "PF24"; case AID_OICR: return "OICR"; case AID_MSR_MHS: return "MSR_MHS"; case AID_SELECT: return "Select"; case AID_PA1: return "PA1"; case AID_PA2: return "PA2"; case AID_PA3: return "PA3"; case AID_CLEAR: return "Clear"; case AID_SYSREQ: return "SysReq"; case AID_QREPLY: return "QueryReplyAID"; default: return unknown(code); } } const char * see_attr(unsigned char fa) { static char buf[256]; const char *paren = "("; buf[0] = '\0'; if (fa & FA_PROTECT) { (void) strcat(buf, paren); (void) strcat(buf, "protected"); paren = ","; if (fa & FA_NUMERIC) { (void) strcat(buf, paren); (void) strcat(buf, "skip"); paren = ","; } } else if (fa & FA_NUMERIC) { (void) strcat(buf, paren); (void) strcat(buf, "numeric"); paren = ","; } switch (fa & FA_INTENSITY) { case FA_INT_NORM_NSEL: break; case FA_INT_NORM_SEL: (void) strcat(buf, paren); (void) strcat(buf, "detectable"); paren = ","; break; case FA_INT_HIGH_SEL: (void) strcat(buf, paren); (void) strcat(buf, "intensified"); paren = ","; break; case FA_INT_ZERO_NSEL: (void) strcat(buf, paren); (void) strcat(buf, "nondisplay"); paren = ","; break; } if (fa & FA_MODIFY) { (void) strcat(buf, paren); (void) strcat(buf, "modified"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(default)"); return buf; } static const char * see_highlight(unsigned char setting) { switch (setting) { case XAH_DEFAULT: return "default"; case XAH_NORMAL: return "normal"; case XAH_BLINK: return "blink"; case XAH_REVERSE: return "reverse"; case XAH_UNDERSCORE: return "underscore"; case XAH_INTENSIFY: return "intensify"; default: return unknown(setting); } } const char * see_color(unsigned char setting) { static const char *color_name[] = { "neutralBlack", "blue", "red", "pink", "green", "turquoise", "yellow", "neutralWhite", "black", "deepBlue", "orange", "purple", "paleGreen", "paleTurquoise", "grey", "white" }; if (setting == XAC_DEFAULT) return "default"; else if (setting < 0xf0) return unknown(setting); else return color_name[setting - 0xf0]; } static const char * see_transparency(unsigned char setting) { switch (setting) { case XAT_DEFAULT: return "default"; case XAT_OR: return "or"; case XAT_XOR: return "xor"; case XAT_OPAQUE: return "opaque"; default: return unknown(setting); } } static const char * see_validation(unsigned char setting) { static char buf[64]; const char *paren = "("; (void) strcpy(buf, ""); if (setting & XAV_FILL) { (void) strcat(buf, paren); (void) strcat(buf, "fill"); paren = ","; } if (setting & XAV_ENTRY) { (void) strcat(buf, paren); (void) strcat(buf, "entry"); paren = ","; } if (setting & XAV_TRIGGER) { (void) strcat(buf, paren); (void) strcat(buf, "trigger"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(none)"); return buf; } static const char * see_outline(unsigned char setting) { static char buf[64]; const char *paren = "("; (void) strcpy(buf, ""); if (setting & XAO_UNDERLINE) { (void) strcat(buf, paren); (void) strcat(buf, "underline"); paren = ","; } if (setting & XAO_RIGHT) { (void) strcat(buf, paren); (void) strcat(buf, "right"); paren = ","; } if (setting & XAO_OVERLINE) { (void) strcat(buf, paren); (void) strcat(buf, "overline"); paren = ","; } if (setting & XAO_LEFT) { (void) strcat(buf, paren); (void) strcat(buf, "left"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(none)"); return buf; } static const char * see_input_control(unsigned char setting) { switch (setting) { case XAI_DISABLED: return "disabled"; case XAI_ENABLED: return "enabled"; default: return unknown(setting); } } const char * see_efa(unsigned char efa, unsigned char value) { static char buf[64]; switch (efa) { case XA_ALL: (void) sprintf(buf, " all(%x)", value); break; case XA_3270: (void) sprintf(buf, " 3270%s", see_attr(value)); break; case XA_VALIDATION: (void) sprintf(buf, " validation%s", see_validation(value)); break; case XA_OUTLINING: (void) sprintf(buf, " outlining(%s)", see_outline(value)); break; case XA_HIGHLIGHTING: (void) sprintf(buf, " highlighting(%s)", see_highlight(value)); break; case XA_FOREGROUND: (void) sprintf(buf, " foreground(%s)", see_color(value)); break; case XA_CHARSET: (void) sprintf(buf, " charset(%x)", value); break; case XA_BACKGROUND: (void) sprintf(buf, " background(%s)", see_color(value)); break; case XA_TRANSPARENCY: (void) sprintf(buf, " transparency(%s)", see_transparency(value)); break; case XA_INPUT_CONTROL: (void) sprintf(buf, " input-control(%s)", see_input_control(value)); break; default: (void) sprintf(buf, " %s[0x%x]", unknown(efa), value); break; } return buf; } const char * see_efa_only(unsigned char efa) { switch (efa) { case XA_ALL: return "all"; case XA_3270: return "3270"; case XA_VALIDATION: return "validation"; case XA_OUTLINING: return "outlining"; case XA_HIGHLIGHTING: return "highlighting"; case XA_FOREGROUND: return "foreground"; case XA_CHARSET: return "charset"; case XA_BACKGROUND: return "background"; case XA_TRANSPARENCY: return "transparency"; default: return unknown(efa); } } const char * see_qcode(unsigned char id) { static char buf[64]; switch (id) { case QR_CHARSETS: return "CharacterSets"; case QR_IMP_PART: return "ImplicitPartition"; case QR_SUMMARY: return "Summary"; case QR_USABLE_AREA: return "UsableArea"; case QR_COLOR: return "Color"; case QR_HIGHLIGHTING: return "Highlighting"; case QR_REPLY_MODES: return "ReplyModes"; case QR_DBCS_ASIA: return "DbcsAsia"; case QR_ALPHA_PART: return "AlphanumericPartitions"; case QR_DDM: return "DistributedDataManagement"; case QR_RPQNAMES: return "RPQNames"; default: (void) sprintf(buf, "unknown[0x%x]", id); return buf; } } #endif /*]*/ ibm-3270-3.3.10ga4/c3270/xl.h0000644000175000017500000000325211254565704014523 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xl.h * DBCS translation table structure. */ typedef struct { unsigned n; unsigned short *data; } xl_t; #define XL_SIZE(e) ((sizeof(e)/sizeof(e[0]))/3) ibm-3270-3.3.10ga4/c3270/togglesc.h0000644000175000017500000000365611254565704015717 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * toggles.c * Global declarations for toggles.c. */ extern void do_toggle(int); extern void initialize_toggles(void); extern void shutdown_toggles(void); extern void Toggle_action(Widget, XEvent *, String *, Cardinal *); ibm-3270-3.3.10ga4/c3270/X11/0000755000175000017500000000000011261530022014255 5ustar bastianbastianibm-3270-3.3.10ga4/c3270/X11/keysym.h0000644000175000017500000002131011254565673015772 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* X11 keysyms used by c3270, s3270 and tcl3270 */ #if !defined(_x11_keysym_h) /*[*/ #define _x11_keysym_h 1 /* Latin-1 Keysyms */ #define XK_space 0x020 #define XK_exclam 0x021 #define XK_quotedbl 0x022 #define XK_numbersign 0x023 #define XK_dollar 0x024 #define XK_percent 0x025 #define XK_ampersand 0x026 #define XK_apostrophe 0x027 #define XK_quoteright 0x027 #define XK_parenleft 0x028 #define XK_parenright 0x029 #define XK_asterisk 0x02a #define XK_plus 0x02b #define XK_comma 0x02c #define XK_minus 0x02d #define XK_period 0x02e #define XK_slash 0x02f #define XK_0 0x030 #define XK_1 0x031 #define XK_2 0x032 #define XK_3 0x033 #define XK_4 0x034 #define XK_5 0x035 #define XK_6 0x036 #define XK_7 0x037 #define XK_8 0x038 #define XK_9 0x039 #define XK_colon 0x03a #define XK_semicolon 0x03b #define XK_less 0x03c #define XK_equal 0x03d #define XK_greater 0x03e #define XK_question 0x03f #define XK_at 0x040 #define XK_A 0x041 #define XK_B 0x042 #define XK_C 0x043 #define XK_D 0x044 #define XK_E 0x045 #define XK_F 0x046 #define XK_G 0x047 #define XK_H 0x048 #define XK_I 0x049 #define XK_J 0x04a #define XK_K 0x04b #define XK_L 0x04c #define XK_M 0x04d #define XK_N 0x04e #define XK_O 0x04f #define XK_P 0x050 #define XK_Q 0x051 #define XK_R 0x052 #define XK_S 0x053 #define XK_T 0x054 #define XK_U 0x055 #define XK_V 0x056 #define XK_W 0x057 #define XK_X 0x058 #define XK_Y 0x059 #define XK_Z 0x05a #define XK_bracketleft 0x05b #define XK_backslash 0x05c #define XK_bracketright 0x05d #define XK_asciicircum 0x05e #define XK_underscore 0x05f #define XK_grave 0x060 #define XK_quoteleft 0x060 #define XK_a 0x061 #define XK_b 0x062 #define XK_c 0x063 #define XK_d 0x064 #define XK_e 0x065 #define XK_f 0x066 #define XK_g 0x067 #define XK_h 0x068 #define XK_i 0x069 #define XK_j 0x06a #define XK_k 0x06b #define XK_l 0x06c #define XK_m 0x06d #define XK_n 0x06e #define XK_o 0x06f #define XK_p 0x070 #define XK_q 0x071 #define XK_r 0x072 #define XK_s 0x073 #define XK_t 0x074 #define XK_u 0x075 #define XK_v 0x076 #define XK_w 0x077 #define XK_x 0x078 #define XK_y 0x079 #define XK_z 0x07a #define XK_braceleft 0x07b #define XK_bar 0x07c #define XK_braceright 0x07d #define XK_asciitilde 0x07e #define XK_nobreakspace 0x0a0 #define XK_exclamdown 0x0a1 #define XK_cent 0x0a2 #define XK_sterling 0x0a3 #define XK_currency 0x0a4 #define XK_yen 0x0a5 #define XK_brokenbar 0x0a6 #define XK_section 0x0a7 #define XK_diaeresis 0x0a8 #define XK_copyright 0x0a9 #define XK_ordfeminine 0x0aa #define XK_guillemotleft 0x0ab #define XK_notsign 0x0ac #define XK_hyphen 0x0ad #define XK_registered 0x0ae #define XK_macron 0x0af #define XK_degree 0x0b0 #define XK_plusminus 0x0b1 #define XK_twosuperior 0x0b2 #define XK_threesuperior 0x0b3 #define XK_acute 0x0b4 #define XK_mu 0x0b5 #define XK_paragraph 0x0b6 #define XK_periodcentered 0x0b7 #define XK_cedilla 0x0b8 #define XK_onesuperior 0x0b9 #define XK_masculine 0x0ba #define XK_guillemotright 0x0bb #define XK_onequarter 0x0bc #define XK_onehalf 0x0bd #define XK_threequarters 0x0be #define XK_questiondown 0x0bf #define XK_Agrave 0x0c0 #define XK_Aacute 0x0c1 #define XK_Acircumflex 0x0c2 #define XK_Atilde 0x0c3 #define XK_Adiaeresis 0x0c4 #define XK_Aring 0x0c5 #define XK_AE 0x0c6 #define XK_Ccedilla 0x0c7 #define XK_Egrave 0x0c8 #define XK_Eacute 0x0c9 #define XK_Ecircumflex 0x0ca #define XK_Ediaeresis 0x0cb #define XK_Igrave 0x0cc #define XK_Iacute 0x0cd #define XK_Icircumflex 0x0ce #define XK_Idiaeresis 0x0cf #define XK_ETH 0x0d0 #define XK_Eth 0x0d0 #define XK_Ntilde 0x0d1 #define XK_Ograve 0x0d2 #define XK_Oacute 0x0d3 #define XK_Ocircumflex 0x0d4 #define XK_Otilde 0x0d5 #define XK_Odiaeresis 0x0d6 #define XK_multiply 0x0d7 #define XK_Ooblique 0x0d8 #define XK_Ugrave 0x0d9 #define XK_Uacute 0x0da #define XK_Ucircumflex 0x0db #define XK_Udiaeresis 0x0dc #define XK_Yacute 0x0dd #define XK_THORN 0x0de #define XK_Thorn 0x0de #define XK_ssharp 0x0df #define XK_agrave 0x0e0 #define XK_aacute 0x0e1 #define XK_acircumflex 0x0e2 #define XK_atilde 0x0e3 #define XK_adiaeresis 0x0e4 #define XK_aring 0x0e5 #define XK_ae 0x0e6 #define XK_ccedilla 0x0e7 #define XK_egrave 0x0e8 #define XK_eacute 0x0e9 #define XK_ecircumflex 0x0ea #define XK_ediaeresis 0x0eb #define XK_igrave 0x0ec #define XK_iacute 0x0ed #define XK_icircumflex 0x0ee #define XK_idiaeresis 0x0ef #define XK_eth 0x0f0 #define XK_ntilde 0x0f1 #define XK_ograve 0x0f2 #define XK_oacute 0x0f3 #define XK_ocircumflex 0x0f4 #define XK_otilde 0x0f5 #define XK_odiaeresis 0x0f6 #define XK_division 0x0f7 #define XK_oslash 0x0f8 #define XK_ugrave 0x0f9 #define XK_uacute 0x0fa #define XK_ucircumflex 0x0fb #define XK_udiaeresis 0x0fc #define XK_yacute 0x0fd #define XK_thorn 0x0fe #define XK_ydiaeresis 0x0ff #endif /*]*/ ibm-3270-3.3.10ga4/c3270/toggles.c0000644000175000017500000001326411254565704015543 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * toggles.c * This module handles toggles. */ #include "globals.h" #include "appres.h" #include "ansic.h" #include "actionsc.h" #include "ctlrc.h" #include "menubarc.h" #include "popupsc.h" #include "screenc.h" #include "trace_dsc.h" #include "togglesc.h" /* * Generic toggle stuff */ static void do_toggle_reason(int ix, enum toggle_type reason) { struct toggle *t = &appres.toggle[ix]; /* * Change the value, call the internal update routine, and reset the * menu label(s). */ toggle_toggle(t); if (t->upcall != NULL) t->upcall(t, reason); #if defined(X3270_MENUS) /*[*/ menubar_retoggle(t); #endif /*]*/ } void do_toggle(int ix) { do_toggle_reason(ix, TT_INTERACTIVE); } /* * Called from system initialization code to handle initial toggle settings. */ void initialize_toggles(void) { #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ appres.toggle[MONOCASE].upcall = toggle_monocase; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ appres.toggle[ALT_CURSOR].upcall = toggle_altCursor; appres.toggle[CURSOR_BLINK].upcall = toggle_cursorBlink; appres.toggle[SHOW_TIMING].upcall = toggle_showTiming; appres.toggle[CURSOR_POS].upcall = toggle_cursorPos; appres.toggle[MARGINED_PASTE].upcall = toggle_nop; appres.toggle[RECTANGLE_SELECT].upcall = toggle_nop; appres.toggle[SCROLL_BAR].upcall = toggle_scrollBar; appres.toggle[CROSSHAIR].upcall = toggle_crosshair; appres.toggle[VISIBLE_CONTROL].upcall = toggle_visible_control; #endif /*]*/ #if defined(X3270_TRACE) /*[*/ appres.toggle[DS_TRACE].upcall = toggle_dsTrace; appres.toggle[SCREEN_TRACE].upcall = toggle_screenTrace; appres.toggle[EVENT_TRACE].upcall = toggle_eventTrace; #endif /*]*/ #if defined(X3270_ANSI) /*[*/ appres.toggle[LINE_WRAP].upcall = toggle_lineWrap; #endif /*]*/ appres.toggle[BLANK_FILL].upcall = toggle_nop; #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ appres.toggle[AID_WAIT].upcall = toggle_nop; #endif /*]*/ #if defined(C3270) /*[*/ appres.toggle[UNDERSCORE].upcall = toggle_underscore; #endif /*]*/ #if defined(X3270_TRACE) /*[*/ if (toggled(DS_TRACE)) appres.toggle[DS_TRACE].upcall(&appres.toggle[DS_TRACE], TT_INITIAL); if (toggled(EVENT_TRACE)) appres.toggle[EVENT_TRACE].upcall(&appres.toggle[EVENT_TRACE], TT_INITIAL); if (toggled(SCREEN_TRACE)) appres.toggle[SCREEN_TRACE].upcall(&appres.toggle[SCREEN_TRACE], TT_INITIAL); #endif /*]*/ } /* * Called from system exit code to handle toggles. */ void shutdown_toggles(void) { #if defined(X3270_TRACE) /*[*/ /* Clean up the data stream trace monitor window. */ if (toggled(DS_TRACE)) { appres.toggle[DS_TRACE].value = False; toggle_dsTrace(&appres.toggle[DS_TRACE], TT_FINAL); } if (toggled(EVENT_TRACE)) { appres.toggle[EVENT_TRACE].value = False; toggle_dsTrace(&appres.toggle[EVENT_TRACE], TT_FINAL); } /* Clean up the screen trace file. */ if (toggled(SCREEN_TRACE)) { appres.toggle[SCREEN_TRACE].value = False; toggle_screenTrace(&appres.toggle[SCREEN_TRACE], TT_FINAL); } #endif /*]*/ } void Toggle_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int j; int ix; action_debug(Toggle_action, event, params, num_params); if (check_usage(Toggle_action, *num_params, 1, 2) < 0) return; for (j = 0; toggle_names[j].name != NULL; j++) { if (!strcasecmp(params[0], toggle_names[j].name)) { ix = toggle_names[j].index; break; } } if (toggle_names[j].name == NULL) { popup_an_error("%s: Unknown toggle name '%s'", action_name(Toggle_action), params[0]); return; } if (*num_params == 1) { do_toggle_reason(ix, TT_ACTION); } else if (!strcasecmp(params[1], "set")) { if (!toggled(ix)) { do_toggle_reason(ix, TT_ACTION); } } else if (!strcasecmp(params[1], "clear")) { if (toggled(ix)) { do_toggle_reason(ix, TT_ACTION); } } else { popup_an_error("%s: Unknown keyword '%s' (must be 'set' or " "'clear')", action_name(Toggle_action), params[1]); } } ibm-3270-3.3.10ga4/c3270/sf.c0000644000175000017500000005524711254565704014516 0ustar bastianbastian/* * Copyright (c) 1994-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell nor their * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * sf.c * This module handles 3270 structured fields. * */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include "3270ds.h" #include "appres.h" #include "screen.h" #include "ctlr.h" #include "resources.h" #include "charsetc.h" #include "ctlrc.h" #if defined(X3270_FT) /*[*/ #include "ft_dftc.h" #endif /*]*/ #include "kybdc.h" #include "screenc.h" #include "seec.h" #include "sfc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utilc.h" /* #define X3270_COMPAT 1 make x3270 compatible with all of the other emulators */ #define SW_3279_2 0x09 #define SH_3279_2 0x0c #define Xr_3279_2 0x000a02e5 #define Yr_3279_2 0x0002006f /* Externals: ctlr.c */ extern Boolean screen_alt; extern unsigned char reply_mode; extern int crm_nattr; extern unsigned char crm_attr[]; /* Statics */ static Boolean qr_in_progress = False; static enum pds sf_read_part(unsigned char buf[], unsigned buflen); static enum pds sf_erase_reset(unsigned char buf[], int buflen); static enum pds sf_set_reply_mode(unsigned char buf[], int buflen); static enum pds sf_create_partition(unsigned char buf[], int buflen); static enum pds sf_outbound_ds(unsigned char buf[], int buflen); static void query_reply_start(void); static void do_query_reply(unsigned char code); static void query_reply_end(void); typedef void qr_single_fn_t(void); typedef Boolean qr_multi_fn_t(unsigned *subindex, Boolean *more); static qr_single_fn_t do_qr_summary, do_qr_usable_area, do_qr_alpha_part, do_qr_charsets, do_qr_color, do_qr_highlighting, do_qr_reply_modes, do_qr_imp_part, do_qr_null; extern qr_single_fn_t do_qr_rpqnames; #if defined(X3270_DBCS) /*[*/ static qr_single_fn_t do_qr_dbcs_asia; #endif /*]*/ #if defined(X3270_FT) /*[*/ static qr_single_fn_t do_qr_ddm; #endif /*]*/ static struct reply { unsigned char code; qr_single_fn_t *single_fn; qr_multi_fn_t *multi_fn; } replies[] = { { QR_SUMMARY, do_qr_summary, NULL }, /* 0x80 */ { QR_USABLE_AREA, do_qr_usable_area, NULL }, /* 0x81 */ { QR_ALPHA_PART, do_qr_alpha_part, NULL }, /* 0x84 */ { QR_CHARSETS, do_qr_charsets, NULL }, /* 0x85 */ { QR_COLOR, do_qr_color, NULL }, /* 0x86 */ { QR_HIGHLIGHTING, do_qr_highlighting, NULL }, /* 0x87 */ { QR_REPLY_MODES, do_qr_reply_modes, NULL }, /* 0x88 */ #if defined(X3270_DBCS) /*[*/ { QR_DBCS_ASIA, do_qr_dbcs_asia, NULL }, /* 0x91 */ #endif /*]*/ #if defined(X3270_FT) /*[*/ { QR_DDM, do_qr_ddm, NULL }, /* 0x95 */ #endif /*]*/ { QR_RPQNAMES, do_qr_rpqnames, NULL }, /* 0xa1 */ { QR_IMP_PART, do_qr_imp_part, NULL }, /* 0xa6 */ /* QR_NULL must be last in the table */ { QR_NULL, do_qr_null, NULL }, /* 0xff */ }; /* * NSR_ALL is the number of query replies supported, including NULL. * NSR is the number of query replies supported, except for NULL. */ #define NSR_ALL (sizeof(replies)/sizeof(struct reply)) #define NSR (NSR_ALL - 1) /* * Process a 3270 Write Structured Field command */ enum pds write_structured_field(unsigned char buf[], int buflen) { unsigned short fieldlen; unsigned char *cp = buf; Boolean first = True; enum pds rv = PDS_OKAY_NO_OUTPUT; enum pds rv_this = PDS_OKAY_NO_OUTPUT; Boolean bad_cmd = False; /* Skip the WSF command itself. */ cp++; buflen--; /* Interpret fields. */ while (buflen > 0) { if (first) trace_ds(" "); else trace_ds("< WriteStructuredField "); first = False; /* Pick out the field length. */ if (buflen < 2) { trace_ds("error: single byte at end of message\n"); return rv ? rv : PDS_BAD_CMD; } fieldlen = (cp[0] << 8) + cp[1]; if (fieldlen == 0) fieldlen = buflen; if (fieldlen < 3) { trace_ds("error: field length %d too small\n", fieldlen); return rv ? rv : PDS_BAD_CMD; } if ((int)fieldlen > buflen) { trace_ds("error: field length %d exceeds remaining " "message length %d\n", fieldlen, buflen); return rv ? rv : PDS_BAD_CMD; } /* Dispatch on the ID. */ switch (cp[2]) { case SF_READ_PART: trace_ds("ReadPartition"); rv_this = sf_read_part(cp, (int)fieldlen); break; case SF_ERASE_RESET: trace_ds("EraseReset"); rv_this = sf_erase_reset(cp, (int)fieldlen); break; case SF_SET_REPLY_MODE: trace_ds("SetReplyMode"); rv_this = sf_set_reply_mode(cp, (int)fieldlen); break; case SF_CREATE_PART: trace_ds("CreatePartition"); rv_this = sf_create_partition(cp, (int)fieldlen); break; case SF_OUTBOUND_DS: trace_ds("OutboundDS"); rv_this = sf_outbound_ds(cp, (int)fieldlen); break; #if defined(X3270_FT) /*[*/ case SF_TRANSFER_DATA: /* File transfer data */ trace_ds("FileTransferData"); ft_dft_data(cp, (int)fieldlen); break; #endif /*]*/ default: trace_ds("unsupported ID 0x%02x\n", cp[2]); rv_this = PDS_BAD_CMD; break; } /* * Accumulate errors or output flags. * One real ugliness here is that if we have already * generated some output, then we have already positively * acknowledged the request, so if we fail here, we have no * way to return the error indication. */ if (rv_this < 0) bad_cmd = True; else rv |= rv_this; /* Skip to the next field. */ cp += fieldlen; buflen -= fieldlen; } if (first) trace_ds(" (null)\n"); if (bad_cmd && !rv) return PDS_BAD_CMD; else return rv; } static enum pds sf_read_part(unsigned char buf[], unsigned buflen) { unsigned char partition; unsigned i; int any = 0; const char *comma = ""; if (buflen < 5) { trace_ds(" error: field length %d too small\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; trace_ds("(0x%02x)", partition); switch (buf[4]) { case SF_RP_QUERY: trace_ds(" Query"); if (partition != 0xff) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); query_reply_start(); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(replies[i].code); } query_reply_end(); break; case SF_RP_QLIST: trace_ds(" QueryList "); if (partition != 0xff) { trace_ds("error: illegal partition\n"); return PDS_BAD_CMD; } if (buflen < 6) { trace_ds("error: missing request type\n"); return PDS_BAD_CMD; } query_reply_start(); switch (buf[5]) { case SF_RPQ_LIST: trace_ds("List("); if (buflen < 7) { trace_ds(")\n"); do_query_reply(QR_NULL); } else { for (i = 6; i < buflen; i++) { trace_ds("%s%s", comma, see_qcode(buf[i])); comma = ","; } trace_ds(")\n"); for (i = 0; i < NSR; i++) { if (memchr((char *)&buf[6], (char)replies[i].code, buflen-6) #if defined(X3270_DBCS) /*[*/ && (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ ) { do_query_reply(replies[i].code); any++; } } if (!any) { do_query_reply(QR_NULL); } } break; case SF_RPQ_EQUIV: trace_ds("Equivlent+List("); for (i = 6; i < buflen; i++) { trace_ds("%s%s", comma, see_qcode(buf[i])); comma = ","; } trace_ds(")\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(replies[i].code); break; case SF_RPQ_ALL: trace_ds("All\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(replies[i].code); break; default: trace_ds("unknown request type 0x%02x\n", buf[5]); return PDS_BAD_CMD; } query_reply_end(); break; case SNA_CMD_RMA: trace_ds(" ReadModifiedAll"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); ctlr_read_modified(AID_QREPLY, True); break; case SNA_CMD_RB: trace_ds(" ReadBuffer"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); ctlr_read_buffer(AID_QREPLY); break; case SNA_CMD_RM: trace_ds(" ReadModified"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); ctlr_read_modified(AID_QREPLY, False); break; default: trace_ds(" unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_OUTPUT; } static enum pds sf_erase_reset(unsigned char buf[], int buflen) { if (buflen != 4) { trace_ds(" error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } switch (buf[3]) { case SF_ER_DEFAULT: trace_ds(" Default\n"); ctlr_erase(False); break; case SF_ER_ALT: trace_ds(" Alternate\n"); ctlr_erase(True); break; default: trace_ds(" unknown type 0x%02x\n", buf[3]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static enum pds sf_set_reply_mode(unsigned char buf[], int buflen) { unsigned char partition; int i; const char *comma = "("; if (buflen < 5) { trace_ds(" error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; trace_ds("(0x%02x)", partition); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } switch (buf[4]) { case SF_SRM_FIELD: trace_ds(" Field\n"); break; case SF_SRM_XFIELD: trace_ds(" ExtendedField\n"); break; case SF_SRM_CHAR: trace_ds(" Character"); break; default: trace_ds(" unknown mode 0x%02x\n", buf[4]); return PDS_BAD_CMD; } reply_mode = buf[4]; if (buf[4] == SF_SRM_CHAR) { crm_nattr = buflen - 5; for (i = 5; i < buflen; i++) { crm_attr[i - 5] = buf[i]; trace_ds("%s%s", comma, see_efa_only(buf[i])); comma = ","; } trace_ds("%s\n", crm_nattr ? ")" : ""); } return PDS_OKAY_NO_OUTPUT; } static enum pds sf_create_partition(unsigned char buf[], int buflen) { unsigned char pid; unsigned char uom; /* unit of measure */ unsigned char am; /* addressing mode */ unsigned char flags; /* flags */ unsigned short h; /* height of presentation space */ unsigned short w; /* width of presentation space */ unsigned short rv; /* viewport origin row */ unsigned short cv; /* viewport origin column */ unsigned short hv; /* viewport height */ unsigned short wv; /* viewport width */ unsigned short rw; /* window origin row */ unsigned short cw; /* window origin column */ unsigned short rs; /* scroll rows */ /* hole */ unsigned short pw; /* character cell point width */ unsigned short ph; /* character cell point height */ #if defined(X3270_TRACE) /*[*/ static const char *bit4[16] = { "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" }; #endif /*]*/ if (buflen > 3) { trace_ds("("); /* Partition. */ pid = buf[3]; trace_ds("pid=0x%02x", pid); if (pid != 0x00) { trace_ds(") error: illegal partition\n"); return PDS_BAD_CMD; } } else pid = 0x00; if (buflen > 4) { uom = (buf[4] & 0xf0) >> 4; trace_ds(",uom=B'%s'", bit4[uom]); if (uom != 0x0 && uom != 0x02) { trace_ds(") error: illegal units\n"); return PDS_BAD_CMD; } am = buf[4] & 0x0f; trace_ds(",am=B'%s'", bit4[am]); if (am > 0x2) { trace_ds(") error: illegal a-mode\n"); return PDS_BAD_CMD; } } else { uom = 0; am = 0; } if (buflen > 5) { flags = buf[5]; trace_ds(",flags=0x%02x", flags); } else flags = 0; if (buflen > 7) { GET16(h, &buf[6]); trace_ds(",h=%d", h); } else h = maxROWS; if (buflen > 9) { GET16(w, &buf[8]); trace_ds(",w=%d", w); } else w = maxCOLS; if (buflen > 11) { GET16(rv, &buf[10]); trace_ds(",rv=%d", rv); } else rv = 0; if (buflen > 13) { GET16(cv, &buf[12]); trace_ds(",cv=%d", cv); } else cv = 0; if (buflen > 15) { GET16(hv, &buf[14]); trace_ds(",hv=%d", hv); } else hv = (h > maxROWS)? maxROWS: h; if (buflen > 17) { GET16(wv, &buf[16]); trace_ds(",wv=%d", wv); } else wv = (w > maxCOLS)? maxCOLS: w; if (buflen > 19) { GET16(rw, &buf[18]); trace_ds(",rw=%d", rw); } else rw = 0; if (buflen > 21) { GET16(cw, &buf[20]); trace_ds(",cw=%d", cw); } else cw = 0; if (buflen > 23) { GET16(rs, &buf[22]); trace_ds(",rs=%d", rs); } else rs = (h > hv)? 1: 0; if (buflen > 27) { GET16(pw, &buf[26]); trace_ds(",pw=%d", pw); } else pw = *char_width; if (buflen > 29) { GET16(ph, &buf[28]); trace_ds(",ph=%d", ph); } else ph = *char_height; trace_ds(")\n"); cursor_move(0); buffer_addr = 0; return PDS_OKAY_NO_OUTPUT; } static enum pds sf_outbound_ds(unsigned char buf[], int buflen) { enum pds rv; if (buflen < 5) { trace_ds(" error: field length %d too short\n", buflen); return PDS_BAD_CMD; } trace_ds("(0x%02x)", buf[3]); if (buf[3] != 0x00) { trace_ds(" error: illegal partition 0x%0x\n", buf[3]); return PDS_BAD_CMD; } switch (buf[4]) { case SNA_CMD_W: trace_ds(" Write"); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, False)) < 0) return rv; } else trace_ds("\n"); break; case SNA_CMD_EW: trace_ds(" EraseWrite"); ctlr_erase(screen_alt); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, True)) < 0) return rv; } else trace_ds("\n"); break; case SNA_CMD_EWA: trace_ds(" EraseWriteAlternate"); ctlr_erase(screen_alt); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, True)) < 0) return rv; } else trace_ds("\n"); break; case SNA_CMD_EAU: trace_ds(" EraseAllUnprotected\n"); ctlr_erase_all_unprotected(); break; default: trace_ds(" unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static void query_reply_start(void) { obptr = obuf; space3270out(1); *obptr++ = AID_SF; qr_in_progress = True; } static void do_query_reply(unsigned char code) { unsigned i; unsigned subindex = 0; Boolean more = False; /* Find the right entry in the reply table. */ for (i = 0; i < NSR_ALL; i++) { if (replies[i].code == code) break; } if (i >= NSR_ALL || (replies[i].single_fn == NULL && replies[i].multi_fn == NULL)) return; if (qr_in_progress) { trace_ds("> StructuredField\n"); qr_in_progress = False; } do { int obptr0 = obptr - obuf; Boolean full = True; space3270out(4); obptr += 2; /* skip length for now */ *obptr++ = SFID_QREPLY; *obptr++ = code; more = False; if (replies[i].single_fn) replies[i].single_fn(); else full = replies[i].multi_fn(&subindex, &more); if (full) { int len; unsigned char *obptr_len; /* Fill in the length. */ obptr_len = obuf + obptr0; len = (obptr - obuf) - obptr0; SET16(obptr_len, len); } else { /* Back over the header. */ obptr -= 4; } } while (more); } static void do_qr_null(void) { trace_ds("> QueryReply(Null)\n"); } static void do_qr_summary(void) { unsigned i; const char *comma = ""; trace_ds("> QueryReply(Summary("); space3270out(NSR); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) { #endif /*]*/ trace_ds("%s%s", comma, see_qcode(replies[i].code)); comma = ","; *obptr++ = replies[i].code; #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ } trace_ds("))\n"); } static void do_qr_usable_area(void) { trace_ds("> QueryReply(UsableArea)\n"); space3270out(19); *obptr++ = 0x01; /* 12/14-bit addressing */ *obptr++ = 0x00; /* no special character features */ SET16(obptr, maxCOLS); /* usable width */ SET16(obptr, maxROWS); /* usable height */ *obptr++ = 0x01; /* units (mm) */ SET32(obptr, Xr_3279_2); /* Xr, canned from 3279-2 */ SET32(obptr, Yr_3279_2); /* Yr, canned from 3279-2 */ /* * If we ever implement graphics, these will * need to change. */ *obptr++ = SW_3279_2; /* AW, canned from 3279-2 */ *obptr++ = SH_3279_2; /* AH, canned from 3279-2 */ SET16(obptr, maxCOLS*maxROWS); /* buffer, questionable */ } static void do_qr_color(void) { int i; int color_max; trace_ds("> QueryReply(Color)\n"); color_max = (appres.color8 || !appres.m3279)? 8: 16; space3270out(4 + 2*15); *obptr++ = 0x00; /* no options */ *obptr++ = color_max; /* report on 8 or 16 colors */ *obptr++ = 0x00; /* default color: */ *obptr++ = 0xf0 + HOST_COLOR_GREEN; /* green */ for (i = 0xf1; i < 0xf1 + color_max - 1; i++) { *obptr++ = i; if (appres.m3279) *obptr++ = i; else *obptr++ = 0x00; } #if defined(X3270_COMPAT) || !defined(X3270_DISPLAY) /*[*/ /* Add background color. */ if (appres.m3279) { space3270out(4); *obptr++ = 4; /* length */ *obptr++ = 0x02; /* background color */ *obptr++ = 0x00; /* attribute */ *obptr++ = 0xf0; /* default color */ } #endif /*]*/ } static void do_qr_highlighting(void) { trace_ds("> QueryReply(Highlighting)\n"); space3270out(11); *obptr++ = 5; /* report on 5 pairs */ *obptr++ = XAH_DEFAULT; /* default: */ *obptr++ = XAH_NORMAL; /* normal */ *obptr++ = XAH_BLINK; /* blink: */ *obptr++ = XAH_BLINK; /* blink */ *obptr++ = XAH_REVERSE; /* reverse: */ *obptr++ = XAH_REVERSE; /* reverse */ *obptr++ = XAH_UNDERSCORE; /* underscore: */ *obptr++ = XAH_UNDERSCORE; /* underscore */ *obptr++ = XAH_INTENSIFY; /* intensify: */ *obptr++ = XAH_INTENSIFY; /* intensify */ } static void do_qr_reply_modes(void) { trace_ds("> QueryReply(ReplyModes)\n"); space3270out(3); *obptr++ = SF_SRM_FIELD; *obptr++ = SF_SRM_XFIELD; *obptr++ = SF_SRM_CHAR; } #if defined(X3270_DBCS) /*[*/ static void do_qr_dbcs_asia(void) { /* XXX: Should we support this, even when not in DBCS mode? */ trace_ds("> QueryReply(DbcsAsia)\n"); space3270out(7); *obptr++ = 0x00; /* flags (none) */ *obptr++ = 0x03; /* field length 3 */ *obptr++ = 0x01; /* SI/SO supported */ *obptr++ = 0x80; /* character set ID 0x80 */ *obptr++ = 0x03; /* field length 3 */ *obptr++ = 0x02; /* input control */ *obptr++ = 0x01; /* creation supported */ } #endif /*]*/ static void do_qr_alpha_part(void) { trace_ds("> QueryReply(AlphanumericPartitions)\n"); space3270out(4); *obptr++ = 0; /* 1 partition */ SET16(obptr, maxROWS*maxCOLS); /* buffer space */ *obptr++ = 0; /* no special features */ } static void do_qr_charsets(void) { trace_ds("> QueryReply(CharacterSets)\n"); space3270out(64); #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x8e; /* flags: GE, CGCSGID, DBCS */ else #endif /*]*/ *obptr++ = 0x82; /* flags: GE, CGCSGID present */ *obptr++ = 0x00; /* more flags */ *obptr++ = SW_3279_2; /* SDW, canned from 3279-2 */ *obptr++ = SH_3279_2; /* SDW, canned from 3279-2 */ *obptr++ = 0x00; /* no load PS */ *obptr++ = 0x00; *obptr++ = 0x00; *obptr++ = 0x00; #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x0b; /* DL (11 bytes) */ else #endif /*]*/ *obptr++ = 0x07; /* DL (7 bytes) */ *obptr++ = 0x00; /* SET 0: */ #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x00; /* FLAGS: non-load, single- plane, single-byte */ else #endif /*]*/ *obptr++ = 0x10; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ *obptr++ = 0x00; /* LCID 0 */ #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x00; /* SW 0 */ *obptr++ = 0x00; /* SH 0 */ *obptr++ = 0x00; /* SUBSN */ *obptr++ = 0x00; /* SUBSN */ } #endif /*]*/ SET32(obptr, cgcsgid); /* CGCSGID */ /* special 3270 font, includes APL */ *obptr++ = 0x01;/* SET 1: */ if (appres.apl_mode) *obptr++ = 0x00; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ else *obptr++ = 0x10; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ *obptr++ = 0xf1; /* LCID */ #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x00; /* SW 0 */ *obptr++ = 0x00; /* SH 0 */ *obptr++ = 0x00; /* SUBSN */ *obptr++ = 0x00; /* SUBSN */ } #endif /*]*/ *obptr++ = 0x03; /* CGCSGID: 3179-style APL2 */ *obptr++ = 0xc3; *obptr++ = 0x01; *obptr++ = 0x36; #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x80; /* SET 0x80: */ *obptr++ = 0x20; /* FLAGS: DBCS */ *obptr++ = 0xf8; /* LCID: 0xf8 */ *obptr++ = SW_3279_2 * 2; /* SW, canned from 3279-2 */ *obptr++ = SH_3279_2; /* SH, canned from 3279-2 */ *obptr++ = 0x41; /* SUBSN */ *obptr++ = 0x7f; /* SUBSN */ SET32(obptr, cgcsgid_dbcs); /* CGCSGID */ } #endif /*]*/ } #if defined(X3270_FT) /*[*/ static void do_qr_ddm(void) { set_dft_buffersize(); trace_ds("> QueryReply(DistributedDataManagement)\n"); space3270out(8); SET16(obptr,0); /* set reserved field to 0 */ SET16(obptr, dft_buffersize); /* set inbound length limit INLIM */ SET16(obptr, dft_buffersize); /* set outbound length limit OUTLIM */ SET16(obptr, 0x0101); /* NSS=01, DDMSS=01 */ } #endif /*]*/ static void do_qr_imp_part(void) { trace_ds("> QueryReply(ImplicitPartition)\n"); space3270out(13); *obptr++ = 0x0; /* reserved */ *obptr++ = 0x0; *obptr++ = 0x0b; /* length of display size */ *obptr++ = 0x01; /* "implicit partition size" */ *obptr++ = 0x00; /* reserved */ SET16(obptr, 80); /* implicit partition width */ SET16(obptr, 24); /* implicit partition height */ SET16(obptr, maxCOLS); /* alternate height */ SET16(obptr, maxROWS); /* alternate width */ } static void query_reply_end(void) { net_output(); kybd_inhibit(True); } ibm-3270-3.3.10ga4/c3270/macrosc.h0000644000175000017500000001232411254565704015527 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * macrosc.h * Global declarations for macros.c. */ /* macro definition */ struct macro_def { char *name; char **parents; char *action; struct macro_def *next; }; extern struct macro_def *macro_defs; extern Boolean macro_output; extern void abort_script(void); extern void Abort_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void AnsiText_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void AsciiField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Ascii_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) /*[*/ extern void cancel_if_idle_command(void); #else /*][*/ #define cancel_if_idle_command() #endif /*]*/ extern void Bell_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CloseScript_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ContinueScript_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EbcdicField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Ebcdic_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Execute_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void execute_action_option(Widget w, XtPointer client_data, XtPointer call_data); extern void Expect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ extern void plugin_aid(unsigned char aid); #else /*][*/ #define plugin_aid(a) #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ extern void Plugin_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #endif /*]*/ extern void login_macro(char *s); extern void macros_init(void); extern void Macro_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void macro_command(struct macro_def *m); extern void PauseScript_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void peer_script_init(void); extern void ps_set(char *s, Boolean is_hex); extern void Printer_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void push_command(char *); extern void push_idle(char *); extern void push_keymap_action(char *); extern void push_macro(char *, Boolean); extern void Query_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ReadBuffer_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Script_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) /*[*/ extern void sms_accumulate_time(struct timeval *, struct timeval *); #else /*][*/ #define sms_accumulate_time(a, b) #endif /*]*/ extern Boolean sms_active(void); extern void sms_connect_wait(void); extern void sms_continue(void); extern void sms_error(const char *msg); extern void sms_host_output(void); extern void sms_info(const char *fmt, ...) printflike(1, 2); extern void sms_init(void); extern Boolean sms_in_macro(void); extern Boolean sms_redirect(void); extern void sms_store(unsigned char c); #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ extern void Snap_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #endif /*]*/ #if defined(TCL3270) /*[*/ extern void Status_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #endif /*]*/ extern void Source_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Wait_action(Widget w, XEvent *event, String *params, Cardinal *num_params); ibm-3270-3.3.10ga4/c3270/c3270.man0000644000175000017500000013375711261530006015161 0ustar bastianbastian'\" t .TH c3270 1 "02 October 2009" .SH "NAME" c3270 \- curses-based \s-1IBM\s+1 host access tool .SH "SYNOPSIS" \fBc3270\fP [\fIoptions\fP] [\fIhost\fP] .br \fBc3270\fP [\fIoptions\fP] \fIsession-file\fP.c3270 .SH "DESCRIPTION" \fBc3270\fP opens a telnet connection to an \s-1IBM\s+1 host in a console window. It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection), and supports IND$FILE file transfer. If the console is capable of displaying colors, then \fBc3270\fP emulates an \s-1IBM\s+1 3279. Otherwise, it emulates a 3278. .LP The full syntax for \fIhost\fP is: .RS [\fIprefix\fP:]...[\fILUname\fP@]\fIhostname\fP[:\fIport\fP] .RE .LP Prepending a \fBP:\fP onto \fIhostname\fP causes the connection to go through the \fItelnet-passthru\fP service rather than directly to the host. See \s-1PASSTHRU\s+1 below. .LP Prepending an \fBS:\fP onto \fIhostname\fP removes the "extended data stream" option reported to the host. See \fB\-tn\fP below for further information. .LP Prepending an \fBN:\fP onto \fIhostname\fP turns off TN3270E support for the session. .LP Prepending an \fBL:\fP onto \fIhostname\fP causes \fBc3270\fP to first create an SSL tunnel to the host, and then create a TN3270 session inside the tunnel. (This function is supported only if \fBc3270\fP was built with SSL/TLS support). Note that TLS-encrypted sessions using the TELNET START-TLS option are negotiated with the host automatically; for these sessions the \fBL:\fP prefix should not be used. .LP A specific Logical Unit (LU) name to use may be specified by prepending it to the \fIhostname\fP with an `\fB@\fP'. Multiple LU names to try can be separated by commas. An empty LU can be placed in the list with an extra comma. (Note that the LU name is used for different purposes by different kinds of hosts. For example, CICS uses the LU name as the Terminal ID.) .LP The \fIhostname\fP may optionally be placed inside square-bracket characters `\fB[\fP' and `\fB]\fP'. This will prevent any colon `\fB:\fP' characters in the hostname from being interpreted as indicating option prefixes or port numbers. This allows numeric IPv6 addresses to be used as hostnames. .LP On systems that support the \fIforkpty\fP library call, the \fIhostname\fP may be replaced with \fB\-e\fP and a command string. This will cause \fBc3270\fP to connect to a local child process, such as a shell. .LP The port to connect to defaults to \fBtelnet\fP. This can be overridden with the \fB\-port\fP option, or by appending a \fIport\fP to the \fIhostname\fP with a colon `\fB:\fP'. (For compatability with previous versions of \fBc3270\fP and with \fItn3270\fP(1), the \fIport\fP may also be specified as a second, separate argument.) .SH "OPTIONS" \fBc3270\fP understands the following options: .TP \fB\-allbold\fP Forces all characters to be displayed in bold. This helps with PC consoles which display non-bold characters in unreadably dim colors. All-bold mode is the default for color displays, but not for monochrome displays. .TP \fB\-altscreen \fIrows\fP\fBx\fP\fIcols\fP\fB=\fP\fIinit_string\fP\fP Defines the dimensions and escape sequence for the alternate (132-column) screen mode. See \s-1SCREEN SIZE SWITCHING\s+1, below. .TP \fB\-cbreak\fP Causes \fBc3270\fP to operate in \fIcbreak\fP mode, instead of \fIraw\fP mode. In \fIcbreak\fP mode, the TTY driver will properly process XOFF and XON characters, which are required by some terminals for proper operation. However, those characters (usually ^S and ^Q), as well as the characters for \fBinterrupt\fP, \fBquit\fP, and \fBlnext\fP (usually ^C, ^\\ and ^V respectively) will be seen by \fBc3270\fP only if preceded by the \fBlnext\fP character. The \fBsusp\fP character (usually ^Z) cannot be seen by \fBc3270\fP at all. .TP \fB\-charset\fP \fIname\fP Specifies an \s-1EBCDIC\s+1 host character set. .TP \fB\-clear\fP \fItoggle\fP Sets the initial value of \fItoggle\fP to \fBfalse\fP. The list of toggle names is under \s-1TOGGLES\s+1 below. .TP \fB\-defscreen \fIrows\fP\fBx\fP\fIcols\fP\fB=\fP\fIinit_string\fP\fP Defines the dimensions and escape sequence for the default (80-column) screen mode. See \s-1SCREEN SIZE SWITCHING\s+1, below. .TP \fB\-hostsfile\fP \fIfile\fP Uses \fIfile\fP as the hosts file, which allows aliases for host names and scripts to be executed at login. See \fIibm_hosts\fP(1) for details. .TP \fB\-im\fP \fImethod\fP Specifies the name of the input method to use for multi-byte input. (Supported only when c3270 is compiled with DBCS support.) .TP \fB\-keymap\fP \fIname\fP Specifies a keyboard map to be found in the resource \fBc3270.keymap.\fP\fIname\fP or the file \fIname\fP. See \s-1KEYMAPS\s+1 below for details. .TP \fB\-km\fP \fIname\fP Specifies the local encoding method for multi-byte text. \fIname\fP is an encoding name recognized by the ICU library. (Supported only when c3270 is compiled with DBCS support, and necessary only when c3270 cannot figure it out from the locale.) .TP \fB\-model\fP \fIname\fP The model of 3270 display to be emulated. The model name is in two parts, either of which may be omitted: .IP The first part is the \fBbase model\fP, which is either \fB3278\fP or \fB3279\fP. \fB3278\fP specifies a monochrome (green on black) 3270 display; \fB3279\fP specifies a color 3270 display. .IP The second part is the \fBmodel number\fP, which specifies the number of rows and columns. Model 4 is the default. .PP .TS center; c c c . T{ .na .nh Model Number T} T{ .na .nh Columns T} T{ .na .nh Rows T} _ T{ .na .nh 2 T} T{ .na .nh 80 T} T{ .na .nh 24 T} T{ .na .nh 3 T} T{ .na .nh 80 T} T{ .na .nh 32 T} T{ .na .nh 4 T} T{ .na .nh 80 T} T{ .na .nh 43 T} T{ .na .nh 5 T} T{ .na .nh 132 T} T{ .na .nh 27 T} .TE .IP Note: Technically, there is no such 3270 display as a 3279-4 or 3279-5, but most hosts seem to work with them anyway. .IP The default model for a color display is \fB3279\-4\fP. For a monochrome display, it is \fB3278\-4\fP. .TP \fB\-mono\fP Prevents \fBc3270\fP from using color, ignoring any color capabilities reported by the terminal. .TP \fB\-noprompt\fP Disables command-prompt mode. .TP \fB\-oversize\fP \fIcols\fP\fBx\fP\fIrows\fP Makes the screen larger than the default for the chosen model number. This option has effect only in combination with extended data stream support (controlled by the "c3270.extended" resource), and only if the host supports the Query Reply structured field. The number of columns multiplied by the number of rows must not exceed 16383 (3fff hex), the limit of 14-bit 3270 buffer addressing. .IP It can also be specified as \fBauto\fP, which causes \fBc3270\fP to fill the entire terminal or console window. .TP \fB\-port\fP \fIn\fP Specifies a different \s-1TCP\s+1 port to connect to. \fIn\fP can be a name from \fB/etc/services\fP like \fBtelnet\fP, or a number. This option changes the default port number used for all connections. (The positional parameter affects only the initial connection.) .TP \fB\-proxy \fItype\fP:\fIhost\fP[:\fIport\fP]\fP Causes \fBc3270\fP to connect via the specified proxy, instead of using a direct connection. The \fIhost\fP can be an IP address or hostname. The optional \fIport\fP can be a number or a service name. For a list of supported proxy \fItypes\fP, see \s-1PROXY\s+1 below. .TP \fB\-printerlu \fIluname\fP\fP Causes \fBc3270\fP to automatically start a \fIpr3287\fP printer session. If \fIluname\fP is ".", then the printer session will be associated with the interactive terminal session (this requires that the host support TN3270E). Otherwise, the value is used as the explicit LU name to associate with the printer session. .TP \fB\-reconnect\fP Causes \fBc3270\fP to automatically reconnect to the host if it ever disconnects. This option has effect only if a hostname is specified on the command line. .TP \fB\-rv\fP Switches c3270 from a white-on-black display to a black-on-white display. .TP \fB\-scriptport\fP \fIport\fP Causes c3270 to listen for scripting connections on local TCP port \fIport\fP. .TP \fB\-secure\fP Disables the interactive \fBc3270>\fP prompt. When used, a hostname must be provided on the command line. .TP \fB\-set\fP \fItoggle\fP Sets the initial value of \fItoggle\fP to \fBtrue\fP. The list of toggle names is under \s-1TOGGLES\s+1 below. .TP \fB\-socket\fP Causes the emulator to create a Unix-domain socket when it starts, for use by script processes to send commands to the emulator. The socket is named \fB/tmp/x3sck.\fP\fIprocess_id\fP. The \fB\-p\fP option of \fIx3270if\fP causes it to use this socket, instead of pipes specified by environment variables. .TP \fB\-tn\fP \fIname\fP Specifies the terminal name to be transmitted over the telnet connection. The default name is \fBIBM\-\fP\fImodel_name\fP\fB\-E\fP, for example, \fBIBM\-3279\-4\-E\fP for a color display, or \fBIBM\-3278\-4\-E\fP for a monochrome display. .IP Some hosts are confused by the \fB\-E\fP suffix on the terminal name, and will ignore the extra screen area on models 3, 4 and 5. Prepending an \fBs:\fP on the hostname, or setting the "c3270.extended" resource to "false", removes the \fB\-E\fP from the terminal name when connecting to such hosts. .IP The name can also be specified with the "c3270.termName" resource. .TP \fB\-trace\fP Turns on data stream and event tracing at startup. The default trace file name is \fB/tmp/x3trc.\fP\fIprocess_id\fP. .TP \fB\-tracefile\fP \fIfile\fP Specifies a file to save data stream and event traces into. .TP \fB\-tracefilesize\fP \fIsize\fP Places a limit on the size of a trace file. If this option is not specified, or is specified as \fB0\fP or \fBnone\fP, the trace file will be unlimited. If specified, the trace file cannot already exist, and the (silently enforced) minimum size is 64 Kbytes. The value of \fIsize\fP can have a \fBK\fP or \fBM\fP suffix, indicating kilobytes or megabytes respectively. .TP \fB\-v\fP Display the version and build options for \fBc3270\fP and exit. .TP \fB\-xrm\fP "c3270.\fIresource\fP: \fIvalue\fP" Sets the value of the named \fIresource\fP to \fIvalue\fP. Resources control less common \fBc3270\fP options, and are defined under \s-1RESOURCES\s+1 below. .TE .LP These names are also used as the first parameter to the \fBToggle\fP action. .SH "STATUS LINE" If the terminal that \fBc3270\fP is running on has at least one more row that the 3270 model requires (e.g., 25 rows for a model 2), \fBc3270\fP will display a status line. The \fBc3270\fP status line contains a variety of information. From left to right, the fields are: .TP \fBcomm status\fP The first symbol is always a \fB4\fP. If \fBc3270\fP is in TN3270E mode, the second symbol is a \fBB\fP; otherwise it is an \fBA\fP. If \fBc3270\fP is in SSCP-LU mode, the third symbol is an \fBS\fP. Otherwise it is blank. .TP \fBkeyboard lock\fP If the keyboard is locked, an "X" symbol and a message field indicate the reason for the keyboard lock. .TP \fBtypeahead\fP The letter "T" indicates that one or more keystrokes are in the typeahead buffer. .TP \fBtemporary keymap\fP The letter "K" indicates that a temporary keymap is in effect. .TP \fBreverse\fP The letter "R" indicates that the keyboard is in reverse field entry mode. .TP \fBinsert mode\fP The letter "I" indicates that the keyboard is in insert mode. .TP \fBprinter session\fP The letter "P" indicates that a \fIpr3287\fP session is active. .TP \fBsecure connection\fP A green letter "S" indicates that the connection is secured via SSL/TLS. .TP \fBLU name\fP The LU name associated with the session, if there is one. .TP \fBcursor position\fP The cursor row and column are optionally displayed, separated by a "/". .SH "ACTIONS" Here is a complete list of basic c3270 actions. Script-specific actions are described on the \fIx3270-script\fP(1) manual page. .PP Actions marked with an asterisk (*) may block, sending data to the host and possibly waiting for a response. .PP .TS center; lw(3i) lw(3i). T{ .na .nh .in +2 .ti -2 *Attn T} T{ .na .nh attention key T} T{ .na .nh .in +2 .ti -2 BackSpace T} T{ .na .nh move cursor left (or send \s-1ASCII BS\s+1) T} T{ .na .nh .in +2 .ti -2 BackTab T} T{ .na .nh tab to start of previous input field T} T{ .na .nh .in +2 .ti -2 CircumNot T} T{ .na .nh input "^" in \s-1NVT\s+1 mode, or "notsign" in 3270 mode T} T{ .na .nh .in +2 .ti -2 *Clear T} T{ .na .nh clear screen T} T{ .na .nh .in +2 .ti -2 Compose T} T{ .na .nh next two keys form a special symbol T} T{ .na .nh .in +2 .ti -2 *Connect(\fIhost\fP) T} T{ .na .nh connect to \fIhost\fP T} T{ .na .nh .in +2 .ti -2 *CursorSelect T} T{ .na .nh Cursor Select \s-1AID\s+1 T} T{ .na .nh .in +2 .ti -2 Delete T} T{ .na .nh delete character under cursor (or send \s-1ASCII DEL\s+1) T} T{ .na .nh .in +2 .ti -2 DeleteField T} T{ .na .nh delete the entire field T} T{ .na .nh .in +2 .ti -2 DeleteWord T} T{ .na .nh delete the current or previous word T} T{ .na .nh .in +2 .ti -2 *Disconnect T} T{ .na .nh disconnect from host T} T{ .na .nh .in +2 .ti -2 Down T} T{ .na .nh move cursor down T} T{ .na .nh .in +2 .ti -2 Dup T} T{ .na .nh duplicate field T} T{ .na .nh .in +2 .ti -2 *Enter T} T{ .na .nh Enter \s-1AID\s+1 (or send \s-1ASCII CR\s+1) T} T{ .na .nh .in +2 .ti -2 Erase T} T{ .na .nh erase previous character (or send \s-1ASCII BS\s+1) T} T{ .na .nh .in +2 .ti -2 EraseEOF T} T{ .na .nh erase to end of current field T} T{ .na .nh .in +2 .ti -2 EraseInput T} T{ .na .nh erase all input fields T} T{ .na .nh .in +2 .ti -2 Escape T} T{ .na .nh escape to \fBc3270>\fP prompt T} T{ .na .nh .in +2 .ti -2 Execute(\fIcmd\fP) T} T{ .na .nh execute a command in a shell T} T{ .na .nh .in +2 .ti -2 FieldEnd T} T{ .na .nh move cursor to end of field T} T{ .na .nh .in +2 .ti -2 FieldMark T} T{ .na .nh mark field T} T{ .na .nh .in +2 .ti -2 HexString(\fIhex_digits\fP) T} T{ .na .nh insert control-character string T} T{ .na .nh .in +2 .ti -2 Home T} T{ .na .nh move cursor to first input field T} T{ .na .nh .in +2 .ti -2 Insert T} T{ .na .nh set insert mode T} T{ .na .nh .in +2 .ti -2 *Interrupt T} T{ .na .nh send \s-1TELNET IP\s+1 to host T} T{ .na .nh .in +2 .ti -2 Key(\fIkeysym\fP) T} T{ .na .nh insert key \fIkeysym\fP T} T{ .na .nh .in +2 .ti -2 Key(0x\fIxx\fP) T} T{ .na .nh insert key with character code \fIxx\fP T} T{ .na .nh .in +2 .ti -2 Left T} T{ .na .nh move cursor left T} T{ .na .nh .in +2 .ti -2 Left2 T} T{ .na .nh move cursor left 2 positions T} T{ .na .nh .in +2 .ti -2 MonoCase T} T{ .na .nh toggle uppercase-only mode T} T{ .na .nh .in +2 .ti -2 MoveCursor(\fIrow\fP, \fIcol\fP) T} T{ .na .nh move cursor to (\fIrow\fP,\fIcol\fP) T} T{ .na .nh .in +2 .ti -2 Newline T} T{ .na .nh move cursor to first field on next line (or send \s-1ASCII LF\s+1) T} T{ .na .nh .in +2 .ti -2 NextWord T} T{ .na .nh move cursor to next word T} T{ .na .nh .in +2 .ti -2 *PA(\fIn\fP) T} T{ .na .nh Program Attention \s-1AID\s+1 (\fIn\fP from 1 to 3) T} T{ .na .nh .in +2 .ti -2 *PF(\fIn\fP) T} T{ .na .nh Program Function \s-1AID\s+1 (\fIn\fP from 1 to 24) T} T{ .na .nh .in +2 .ti -2 PreviousWord T} T{ .na .nh move cursor to previous word T} T{ .na .nh .in +2 .ti -2 Printer(Start[,\fIlu\fP]|Stop) T} T{ .na .nh start or stop printer session T} T{ .na .nh .in +2 .ti -2 PrintText(\fIcommand\fP) T} T{ .na .nh print screen text on printer T} T{ .na .nh .in +2 .ti -2 Quit T} T{ .na .nh exit \fBc3270\fP T} T{ .na .nh .in +2 .ti -2 Redraw T} T{ .na .nh redraw window T} T{ .na .nh .in +2 .ti -2 Reset T} T{ .na .nh reset locked keyboard T} T{ .na .nh .in +2 .ti -2 Right T} T{ .na .nh move cursor right T} T{ .na .nh .in +2 .ti -2 Right2 T} T{ .na .nh move cursor right 2 positions T} T{ .na .nh .in +2 .ti -2 *Script(\fIcommand\fP[,\fIarg\fP...]) T} T{ .na .nh run a script T} T{ .na .nh .in +2 .ti -2 *String(\fIstring\fP) T} T{ .na .nh insert string (simple macro facility) T} T{ .na .nh .in +2 .ti -2 *SysReq T} T{ .na .nh System Request \s-1AID\s+1 T} T{ .na .nh .in +2 .ti -2 Tab T} T{ .na .nh move cursor to next input field T} T{ .na .nh .in +2 .ti -2 Toggle(\fIoption\fP[,\fIset|clear\fP]) T} T{ .na .nh toggle an option T} T{ .na .nh .in +2 .ti -2 ToggleInsert T} T{ .na .nh toggle insert mode T} T{ .na .nh .in +2 .ti -2 ToggleReverse T} T{ .na .nh toggle reverse-input mode T} T{ .na .nh .in +2 .ti -2 *Transfer(\fIoption\fP=\fIvalue\fP...) T} T{ .na .nh file transfer T} T{ .na .nh .in +2 .ti -2 Up T} T{ .na .nh move cursor up T} T{ .na .nh .in +2 .ti -2 ignore T} T{ .na .nh do nothing T} .TE .LP Any of the above actions may be entered at the \fBc3270>\fP prompt; these commands are also available for use in keymaps (see \s-1KEYMAPS\s+1). Command names are case-insensitive. Parameters can be specified with parentheses and commas, e.g.: .RS PF(1) .RE or with spaces, e.g.: .RS PF 1 .RE Parameters can be quoted with double-quote characters, to allow spaces, commas, and parentheses to be used. .LP \fBc3270\fP also supports the following interactive commands: .TP \fBHelp\fP Displays a list of available commands. .TP \fBShow\fP Displays statistics and settings. .TP \fBTrace\fP Turns tracing on or off. The command \fBtrace on\fP enables data stream and keyboard event tracing; the command \fBtrace off\fP disables it. The qualifier \fBdata\fP or \fBkeyboard\fP can be specified before \fBon\fP or \fBoff\fP to enable or disable a particular trace. After \fBon\fP, a filename may be specified to override the default trace file name of \fB/tmp/x3trc.\fP\fIpid\fP. .SH "KEYMAPS" The \fB\-keymap\fP option or the \fBc3270.keymap\fP resource allow a custom keymap to be specified. If the option \fB\-keymap\fP \fIxxx\fP is given (or the \fBc3270.keymap\fP resource has the value \fIxxx\fP), \fBc3270\fP will look for a resource named \fBc3270.keymap.\fP\fIxxx\fP. If no resource definition is found, it will look for a file named \fIxxx\fP. .LP Multiple keymaps may be specified be separating their names with commas. Definitions in later keymaps supercede those in earlier keymaps. .LP In addition, separate keymaps may be defined that apply only in 3270 mode or \s-1NVT\s+1 mode. For example, the resource definition \fBc3270.keymap.\fP\fIxxx\fP\fB.nvt\fP or the file \fIxxx\fP\fB.nvt\fP will augment the definition of keymap \fIxxx\fP in \s-1NVT\s+1 mode. Similarly, the resource definition \fBc3270.keymap.\fP\fIxxx\fP\fB.3270\fP or the file \fIxxx\fP\fB.3270\fP will augment the definition of keymap \fIxxx\fP in 3270 mode. .LP Each line (rule) in a keymap specifies actions to perform when a particular key or sequence of keys is pressed. Keymap rules have the following syntax: .LP .RS [\fBMeta\fP][\fBCtrl\fP]\fB\fP\fIkey\fP...: \fIaction\fP[(\fIparam\fP[,...])] ... .RE .LP Here is a sample keymap definition from a file: .LP .RS ! Lines beginning with ! are ignored and can .br ! occur anywhere. .br ! Definition of keymap xxx .br ! \ When Alt-c is pressed, clear the screen. .br Altc: Clear() .br ! \ When PageUp is pressed, send PF7 to the host. .br PPAGE: PF(7) .br ! \ When Ctrl-a is pressed, then F1, send PF13 .br ! \ to the host. .br Ctrla F1: PF(13) .RE .LP Here is the same definition as a resource: .LP .RS ! Lines beginning with ! are ignored, but NOT .br ! within a definition. .br ! Note that the \\ is required at the end of the .br ! first line, and \\n\\ is .br ! required at the end of every other line except .br ! the last. .br ! Definition of keymap xxx .br c3270.keymap.xxx: \\ .br \ Altc: Clear() \\n\\ .br \ PPAGE: PF(7) \\n\\ .br \ CtrlA F1: PF(13) .RE .LP The optional \fBAlt\fP or \fBCtrl\fP modifiers specify that the \fBAlt\fP and \fBCtrl\fP keys are pressed along with the specified \fIkey\fP, respectively. \fIKey\fP is either an \s-1ISO\s+1 8859-1 symbol name, such as \fBequal\fP for `=' and \fBa\fP for `a', or a symbolic \fBncurses\fP key name, such as \fBUP\fP. More than one \fIkey\fP can be specified, indicating that a sequence of keys must be pressed in order for the rule to be matched. The \fIaction\fP is an action from the \s-1ACTIONS\s+1 list above. More than one \fIaction\fP may be specified; they will be executed in order. .LP Keymap entries are case-sensitive and modifier-specific. This means that a keymap for the \fBb\fP key will match only a lowercase \fBb\fP. Actions for uppercase \fBB\fP, or for \fBAlt-b\fP or \fBControl-B\fP, must be specified separately. .LP The base keymap is: .LP .TS l l. T{ .na .nh Key T} T{ .na .nh Action T} _ T{ .na .nh Ctrl] T} T{ .na .nh Escape T} T{ .na .nh Ctrla Ctrla T} T{ .na .nh Key(0x01) T} T{ .na .nh Ctrla Ctrl] T} T{ .na .nh Key(0x1d) T} T{ .na .nh Ctrla Tab T} T{ .na .nh BackTab T} T{ .na .nh Ctrla c T} T{ .na .nh Clear T} T{ .na .nh Ctrla e T} T{ .na .nh Escape T} T{ .na .nh Ctrla r T} T{ .na .nh Reset T} T{ .na .nh Ctrla l T} T{ .na .nh Redraw T} T{ .na .nh Ctrla m T} T{ .na .nh Compose T} T{ .na .nh Ctrla ^ T} T{ .na .nh Key(notsign) T} T{ .na .nh UP T} T{ .na .nh Up T} T{ .na .nh DOWN T} T{ .na .nh Down T} T{ .na .nh LEFT T} T{ .na .nh Left T} T{ .na .nh RIGHT T} T{ .na .nh Right T} T{ .na .nh F(\fIn\fP) T} T{ .na .nh PF(\fIn\fP) T} T{ .na .nh Ctrla F(\fIn\fP) T} T{ .na .nh PF(\fIn\fP+12) T} T{ .na .nh Ctrla 1 T} T{ .na .nh PA(1) T} T{ .na .nh Ctrla 2 T} T{ .na .nh PA(2) T} T{ .na .nh Ctrla 3 T} T{ .na .nh PA(3) T} .TE .LP The base 3270-mode keymap adds: .LP .TS l l. T{ .na .nh Key T} T{ .na .nh Action T} _ T{ .na .nh Ctrlc T} T{ .na .nh Clear T} T{ .na .nh Ctrld T} T{ .na .nh Dup T} T{ .na .nh Ctrlf T} T{ .na .nh FieldMark T} T{ .na .nh Ctrli T} T{ .na .nh Tab T} T{ .na .nh Ctrll T} T{ .na .nh Redraw T} T{ .na .nh Ctrlr T} T{ .na .nh Reset T} T{ .na .nh Ctrlu T} T{ .na .nh DeleteField T} T{ .na .nh BackSpace T} T{ .na .nh BackSpace T} T{ .na .nh Return T} T{ .na .nh Enter T} T{ .na .nh Tab T} T{ .na .nh Tab T} T{ .na .nh Linefeed T} T{ .na .nh Newline T} T{ .na .nh BACKSPACE T} T{ .na .nh BackSpace T} T{ .na .nh DC T} T{ .na .nh Delete T} T{ .na .nh HOME T} T{ .na .nh Home T} T{ .na .nh IC T} T{ .na .nh ToggleInsert T} .TE .SH "THE META OR ALT KEY" Some keyboards do not have a \fBMeta\fP key. Instead, they have an \fBAlt\fP key. Sometimes this key acts as a proper \fBMeta\fP key, that is, it is a modifier key that sets the high-order bit (0x80) in the code that is transmitted for each key. Other keyboards send a two-character sequence when the \fBAlt\fP key is pressed with another key: the Escape character (0x1b), followed by the code for the other key. .LP The resource \fBc3270.metaEscape\fP and the termcap \fBkm\fP attribute control how \fBc3270\fP will interpret these sequences. When \fBc3270.metaEscape\fP is set to \fBtrue\fP, or when \fBc3270.metaEscape\fP is set to \fBauto\fP and the termcap \fBkm\fP attribute is set, the keyboard is assumed to have a separate \fBMeta\fP key. The Escape key can be used as an ordinary data key and has no special meaning. .LP When \fBc3270.metaEscape\fP is set to \fBtrue\fP, or when \fBc3270.metaEscape\fP is set to \fBauto\fP and the termcap \fBkm\fP attribute is not set, the keyboard is assumed to use the Escape character as a prefix to indicate that the following character is supposed to have the high-order bit set. When \fBc3270\fP sees an Escape character from the keyboard, it sets a short timeout. If another character arrives before the timeout expires, then \fBc3270\fP will combine the two characters, setting the high-order bit of the second. In an event trace file, the combined character is listed as \fIderived\fP. In a keymap, only the combined character or the \fBMeta\fP prefix may be used. The Escape key can still be used by itself, but only if there is a short pause before pressing another key. .LP The default value for \fBc3270.metaEscape\fP is \fBauto\fP. .SH "FILE TRANSFER" The \fBTransfer\fP action implements \fBIND$FILE\fP file transfer. This action requires that the \fBIND$FILE\fP program be installed on the \s-1IBM\s+1 host, and that the 3270 cursor be located in a field that will accept a \s-1TSO\s+1 or \s-1VM/CMS\s+1 command. .LP The \fBTransfer\fP action can be entered at the command prompt with no parameters, which will cause it to prompt interactively for the file names and options. It can also be invoked with parameters to define the entire transfer. .LP Because of the complexity and number of options for file transfer, the parameters to the \fBTransfer\fP action take the unique form of \fIoption\fP=\fIvalue\fP, and can appear in any order. Note that if the \fIvalue\fP contains spaces (such as a VM/CMS file name), then the entire parameter must be quoted, e.g., "HostFile=xxx foo a". The options are: .LP .TS l c l l. T{ .na .nh Option T} T{ .na .nh Required? T} T{ .na .nh Default T} T{ .na .nh Other Values T} _ T{ .na .nh Direction T} T{ .na .nh No T} T{ .na .nh receive T} T{ .na .nh send T} T{ .na .nh HostFile T} T{ .na .nh Yes T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh LocalFile T} T{ .na .nh Yes T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Host T} T{ .na .nh No T} T{ .na .nh tso T} T{ .na .nh vm T} T{ .na .nh Mode T} T{ .na .nh No T} T{ .na .nh ascii T} T{ .na .nh binary T} T{ .na .nh Cr T} T{ .na .nh No T} T{ .na .nh remove T} T{ .na .nh add, keep T} T{ .na .nh Remap T} T{ .na .nh No T} T{ .na .nh yes T} T{ .na .nh no T} T{ .na .nh Exist T} T{ .na .nh No T} T{ .na .nh keep T} T{ .na .nh replace, append T} T{ .na .nh Recfm T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh fixed, variable, undefined T} T{ .na .nh Lrecl T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Blksize T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Allocation T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh tracks, cylinders, avblock T} T{ .na .nh PrimarySpace T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh SecondarySpace T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh BufferSize T} T{ .na .nh No T} T{ .na .nh 4096 T} T{ .na .nh \ T} .TE .LP The option details are as follows. .TP \fBDirection\fP \fBsend\fP to send a file to the host, \fBreceive\fP to receive a file from the host. .TP \fBHostFile\fP The name of the file on the host. .TP \fBLocalFile\fP The name of the file on the local workstation. .TP \fBHost\fP The type of host (which dictates the form of the \fBIND$FILE\fP command): \fBtso\fP (the default) or \fBvm\fP. .TP \fBMode\fP Use \fBascii\fP (the default) for a text file, which will be translated between \s-1EBCDIC\s+1 and \s-1ASCII\s+1 as necessary. Use \fBbinary\fP for non-text files. .TP \fBCr\fP Controls how \fBNewline\fP characters are handled when transferring \fBMode=ascii\fP files. \fBremove\fP (the default) strips \fBNewline\fP characters in local files before transferring them to the host. \fBadd\fP adds \fBNewline\fP characters to each host file record before transferring it to the local workstation. \fBkeep\fP preserves \fBNewline\fP characters when transferring a local file to the host. .TP \fBRemap\fP Controls text translation for \fBMode=ascii\fP files. The value \fByes\fP (the default) causes c3270 to remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page. The value \fBno\fP causes c3270 to pass the text to or from the host as-is, leaving all translation to the \fBIND$FILE\fP program on the host. .TP \fBExist\fP Controls what happens when the destination file already exists. \fBkeep\fP (the default) preserves the file, causing the \fBTransfer\fP action to fail. \fBreplace\fP overwrites the destination file with the source file. \fBappend\fP appends the source file to the destination file. .TP \fBRecfm\fP Controls the record format of files created on the host. \fBfixed\fP creates a file with fixed-length records. \fBvariable\fP creates a file with variable-length records. \fBundefined\fP creates a file with undefined-length records (\s-1TSO\s+1 hosts only). The \fBLrecl\fP option controls the record length or maximum record length for \fBRecfm=fixed\fP and \fBRecfm=variable\fP files, respectively. .TP \fBLrecl\fP Specifies the record length (or maximum record length) for files created on the host. .TP \fBBlksize\fP Specifies the block size for files created on the host. (\s-1TSO\s+1 hosts only.) .TP \fBAllocation\fP Specifies the units for the \s-1TSO\s+1 host \fBPrimarySpace\fP and \fBSecondarySpace\fP options: \fBtracks\fP, \fBcylinders\fP or \fBavblock\fP. .TP \fBPrimarySpace\fP Primary allocation for a file created on a \s-1TSO\s+1 host. The units are given by the \fBAllocation\fP option. .TP \fBSecondarySpace\fP Secondary allocation for a file created on a \s-1TSO\s+1 host. The units are given by the \fBAllocation\fP option. .TP \fBBufferSize\fP Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them. .SH "THE PRINTTEXT ACTION" The \fBPrintText\fP produces screen snapshots in a number of different forms. The default form wth no arguments sends a copy of the screen to the default printer. A single argument is the command to use to print, e.g., \fBlpr\fP. Multiple arguments can include keywords to control the output of \fBPrintText\fP: .TP \fBfile\fP \fIfilename\fP Save the output in a file. .TP \fBhtml\fP Save the output as HTML. This option implies \fBfile\fP. .TP \fBrtf\fP Save the output as RichText. This option implies \fBfile\fP. The font defaults to \fBCourier New\fP and the point size defaults to 8. These can be overridden by the \fBprintTextFont\fP and \fBprintTextSize\fP resources, respectively. .TP \fBstring\fP Return the output as a string. This can only be used from scripts. .TP \fBmodi\fP Render modified fields in italics. .TP \fBcaption\fP \fItext\fP Add the specified \fItext\fP as a caption above the output. Within \fItext\fP, the special sequence \fB%T%\fP will be replaced with a timestamp. .TP \fBcommand\fP \fIcommand\fP Directs the output to a command. This allows one or more of the other keywords to be specified, while still sending the output to the printer. .SH "SCRIPTS" There are several types of script functions available. .TP \fBThe String Action\fP The simplest method for scripting is provided via the \fBString\fP action. The arguments to \fBString\fP are one or more double-quoted strings which are inserted directly as if typed. The C backslash conventions are honored as follows. (Entries marked * mean that after sending the \s-1AID\s+1 code to the host, \fBc3270\fP will wait for the host to unlock the keyboard before further processing the string.) .TS l l. T{ .na .nh \eb T} T{ .na .nh Left T} T{ .na .nh \ee\fIxxxx\fP T} T{ .na .nh EBCDIC character in hex T} T{ .na .nh \ef T} T{ .na .nh Clear* T} T{ .na .nh \en T} T{ .na .nh Enter* T} T{ .na .nh \epa\fIn\fP T} T{ .na .nh PA(\fIn\fP)* T} T{ .na .nh \epf\fInn\fP T} T{ .na .nh PF(\fInn\fP)* T} T{ .na .nh \er T} T{ .na .nh Newline T} T{ .na .nh \et T} T{ .na .nh Tab T} T{ .na .nh \eT T} T{ .na .nh BackTab T} T{ .na .nh \eu\fIxxxx\fP T} T{ .na .nh Unicode character in hex T} T{ .na .nh \ex\fIxxxx\fP T} T{ .na .nh Unicode character in hex T} .TE .IP Note that the numeric values for the \ee, \eu and \ex sequences can be abbreviated to 2 digits. Note also that EBCDIC codes greater than 255 and some Unicode character codes represent DBCS characters, which will work only if c3270 is built with DBCS support and the host allows DBCS input in the current field. .IP An example keymap entry would be: .RS Metap: String("probs clearrdr\en") .RE .IP \fBNote:\fP The strings are in \s-1ASCII\s+1 and converted to \s-1EBCDIC\s+1, so beware of inserting control codes. .IP There is also an alternate form of the \fBString\fP action, \fBHexString\fP, which is used to enter non-printing data. The argument to \fBHexString\fP is a string of hexadecimal digits, two per character. A leading 0x or 0X is optional. In 3270 mode, the hexadecimal data represent \s-1EBCDIC\s+1 characters, which are entered into the current field. In \s-1NVT\s+1 mode, the hexadecimal data represent \s-1ASCII\s+1 characters, which are sent directly to the host. .TP \fBThe Script Action\fP This action causes \fBc3270\fP to start a child process which can execute \fBc3270\fP actions. Standard input and output from the child process are piped back to \fBc3270\fP. The \fBScript\fP action is fully documented in \fIx3270-script\fP(1). .SH "COMPOSITE CHARACTERS" \fBc3270\fP allows the direct entry of accented letters and special symbols. Pressing and releasing the "Compose" key, followed by two other keys, causes entry of the symbol combining those two keys. For example, "Compose" followed by the "C" key and the "," (comma) key, enters the "C-cedilla" symbol. A C on the status line indicates a pending composite character. .PP The mappings between these pairs of ordinary keys and the symbols they represent is controlled by the "c3270.composeMap" resource; it gives the name of the map to use. The maps themselves are named "c3270.composeMap.\fIname\fP". The default is "latin1", which gives mappings for most of the symbols in the \s-1ISO\s+1 8859-1 Latin-1 character set that are not in the 7-bit \s-1ASCII\s+1 character set. .PP \fBNote:\fP The default keymap defines Metam as the "Compose" key. You may set up your own "Compose" key with a keymap that maps some other keysym onto the \fBCompose\fP action. .SH "PRINTER SUPPORT" c3270 supports associated printer sessions via the \fIpr3287\fP(1) program. The \fBPrinter\fP action is used to start or stop a \fIpr3287\fP session. .LP The action \fBPrinter Start\fP starts a printer session, associated with the current LU. (This works only if the host supports TN3270E.) .LP The action \fBPrinter Start\fP \fIlu\fP starts a printer session, associated with a specific \fIlu\fP. .LP The action \fBPrinter Stop\fP stops a printer session. .LP The resource \fBc3270.printer.command\fP specifies the command used to print each job; it defaults to \fBlpr\fP. The resource \fBc3270.printer.assocCommandLine\fP specifies the command used to start an associated printer session. It defaults to: .LP .RS pr3287 -assoc %L% -command "%C%" %P% %H% .RE .LP The resource \fBc3270.printer.luCommandLine\fP specifies the command used to start a specific-LU printer session. It defaults to: .LP .RS pr3287 -command "%C%" %R% %P% %L%@%H% .RE .LP When the printer session command is run, the following substitutions are made: .LP .TS l l. T{ .na .nh Token T} T{ .na .nh Substitition T} T{ .na .nh %C% T} T{ .na .nh Command (value of \fBc3270.printer.command\fP) T} T{ .na .nh %H% T} T{ .na .nh Host IP address T} T{ .na .nh %L% T} T{ .na .nh Current or specified LU T} T{ .na .nh %P% T} T{ .na .nh Proxy specification T} T{ .na .nh %R% T} T{ .na .nh Character set T} .TE .LP See \fIpr3287\fP(1) for further details. .LP The resource \fBc3270.printerLu\fP controls automatic printer session start-up. If it is set to `\fB.\fP', then whenever a login session is started, a printer session will automatically be started, associated with the login session. If it is set an LU name, then the automatic printer session will be associated with the specified LU. .SH "PASSTHRU" \fBc3270\fP supports the Sun \fItelnet-passthru\fP service provided by the \fIin.telnet-gw\fP server. This allows outbound telnet connections through a firewall machine. When a \fBp:\fP is prepended to a hostname, \fBc3270\fP acts much like the \fIitelnet\fP(1) command. It contacts the machine named \fBinternet-gateway\fP at the port defined in \fB/etc/services\fP as \fBtelnet-passthru\fP (which defaults to 3514). It then passes the requested hostname and port to the \fBin.telnet-gw\fP server. .SH "PROXY" The \fB\-proxy\fP option or the \fBc3270.proxy\fP resource causes c3270 to use a proxy server to connect to the host. The syntax of the option or resource is: .RS \fItype\fP:\fIhost\fP[:\fIport\fP] .RE The supported values for \fItype\fP are: .TS center; c l c . T{ .na .nh Proxy Type T} T{ .na .nh Protocol T} T{ .na .nh Default Port T} _ T{ .na .nh http T} T{ .na .nh RFC 2817 HTTP tunnel (squid) T} T{ .na .nh 3128 T} T{ .na .nh passthru T} T{ .na .nh Sun in.telnet-gw T} T{ .na .nh none T} T{ .na .nh socks4 T} T{ .na .nh SOCKS version 4 T} T{ .na .nh 1080 T} T{ .na .nh socks5 T} T{ .na .nh SOCKS version 5 (RFC 1928) T} T{ .na .nh 1080 T} T{ .na .nh telnet T} T{ .na .nh No protocol (just send \fBconnect\fP \fIhost port\fP) T} T{ .na .nh none T} .TE .LP The special types \fBsocks4a\fP and \fBsocks5d\fP can also be used to force the proxy server to do the hostname resolution for the SOCKS protocol. .SH "SCREEN SIZE SWITCHING" When running as a 3270 Model 5, \fBc3270\fP can take advantage of terminals that can switch between 80 and 132 column modes. .LP Because the curses library does not support mode switching, the escape sequences and resulting screen dimensions must be specified explicitly to \fBc3270\fP. These are specified with the \fB\-altscreen\fP and \fB\-defscreen\fP command-line options, or the \fBaltScreen\fP and \fBdefScreen\fP resources. \fB\-altscreen\fP or \fBaltScreen\fP defines the alternate (132-column) mode; \fB\-defscreen\fP or \fBdefScreen\fP defines the default (80-column) mode. .LP The syntax for the options and resources is \fIrows\fP\fBx\fP\fIcols\fP\fB=\fP\fIinit_string\fP, where \fIrows\fP and \fIcols\fP give the screen dimensions, and \fIinit_string\fP is the escape sequence to transmit to the terminal to enter that mode. For \fBdefscreen\fP, the minimum dimensions are 24 rows and 80 columns. For \fBaltscreen\fP, the minimum dimensions are 27 rows and 132 columns. Within \fIinit_string\fP, the usual escape sequences are supported (\\E for escape, \\r, \\b, etc.). For example, the init string for a 132-column xterm is: .IP \\E[?40h\\E[?3h .LP Note: When \fBdefscreen\fP and \fBaltscreen\fP are specified, the model number is always set to 5. .SH "RESOURCES" Certain \fBc3270\fP options can be configured via resources. Resources are defined in the file \fB.c3270pro\fP in the user's home directory, and by \fB\-xrm\fP options. The definitions are similar to X11 resources, and use a similar syntax. The resources available in \fBc3270\fP are: .LP .TS l l l l. T{ .na .nh Resource T} T{ .na .nh Default T} T{ .na .nh Option T} T{ .na .nh Purpose T} _ T{ .na .nh allBold T} T{ .na .nh Auto T} T{ .na .nh \-allbold T} T{ .na .nh Display all characters bold T} T{ .na .nh altScreen T} T{ .na .nh \ T} T{ .na .nh \-altscreen T} T{ .na .nh 132-col screen definition T} T{ .na .nh blankFill T} T{ .na .nh False T} T{ .na .nh \-set blankFill T} T{ .na .nh Blank Fill mode T} T{ .na .nh charset T} T{ .na .nh bracket T} T{ .na .nh \-charset T} T{ .na .nh \s-1EBCDIC\s+1 character set T} T{ .na .nh composeMap T} T{ .na .nh latin1 T} T{ .na .nh \ T} T{ .na .nh Name of composed-character map T} T{ .na .nh cursesColorForHostColor\fIn\fP T} T{ .na .nh (note 6) T} T{ .na .nh \ T} T{ .na .nh Color mapping T}T{ .na .nh cursesColorForDefault T} T{ .na .nh green T} T{ .na .nh \ T} T{ .na .nh Default color mapping T}T{ .na .nh cursesColorForIntensified T} T{ .na .nh red T} T{ .na .nh \ T} T{ .na .nh Default color mapping T}T{ .na .nh cursesColorForProtected T} T{ .na .nh blue T} T{ .na .nh \ T} T{ .na .nh Default color mapping T}T{ .na .nh cursesColorForProtectedIntensified T} T{ .na .nh white T} T{ .na .nh \ T} T{ .na .nh Default color mapping T}T{ .na .nh cursesKeymap T} T{ .na .nh True T} T{ .na .nh \ T} T{ .na .nh Set curses keymap option T} T{ .na .nh defScreen T} T{ .na .nh \ T} T{ .na .nh \-defscreen T} T{ .na .nh 80-col screen definition T} T{ .na .nh dbcsCgcsgid T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Override DBCS CGCSGID T} T{ .na .nh dsTrace T} T{ .na .nh False T} T{ .na .nh \-trace T} T{ .na .nh Data stream tracing T} T{ .na .nh eof T} T{ .na .nh ^D T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode \s-1EOF\s+1 character T} T{ .na .nh erase T} T{ .na .nh ^H T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode erase character T} T{ .na .nh extended T} T{ .na .nh True T} T{ .na .nh \ T} T{ .na .nh Use 3270 extended data stream T} T{ .na .nh eventTrace T} T{ .na .nh False T} T{ .na .nh \-trace T} T{ .na .nh Event tracing T} T{ .na .nh hostsFile T} T{ .na .nh \ T} T{ .na .nh \-hostsfile T} T{ .na .nh Host alias/macro file T} T{ .na .nh icrnl T} T{ .na .nh False T} T{ .na .nh \ T} T{ .na .nh Map \s-1CR\s+1 to \s-1NL\s+1 on \s-1NVT\s+1-mode input T} T{ .na .nh inlcr T} T{ .na .nh False T} T{ .na .nh \ T} T{ .na .nh Map \s-1NL\s+1 to \s-1CR\s+1 in \s-1NVT\s+1-mode input T} T{ .na .nh intr T} T{ .na .nh ^C T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode interrupt character T} T{ .na .nh keymap T} T{ .na .nh \ T} T{ .na .nh \-keymap T} T{ .na .nh Keyboard map name T} T{ .na .nh keymap.\fIfoo\fP T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Definition of keymap \fIfoo\fP T} T{ .na .nh kill T} T{ .na .nh ^U T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode kill character T} T{ .na .nh lineWrap T} T{ .na .nh False T} T{ .na .nh \-set lineWrap T} T{ .na .nh \s-1NVT\s+1 line wrap mode T} T{ .na .nh lnext T} T{ .na .nh ^V T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode lnext character T} T{ .na .nh m3279 T} T{ .na .nh (note 1) T} T{ .na .nh \-model T} T{ .na .nh 3279 (color) emulation T} T{ .na .nh metaEscape T} T{ .na .nh Auto T} T{ .na .nh \ T} T{ .na .nh Interpret ESC-x as Meta-x T} T{ .na .nh mono T} T{ .na .nh (note 5) T} T{ .na .nh \-mono T} T{ .na .nh Ignore terminal color capabilities T} T{ .na .nh monoCase T} T{ .na .nh False T} T{ .na .nh \-set monoCase T} T{ .na .nh Mono-case mode T} T{ .na .nh noPrompt T} T{ .na .nh False T} T{ .na .nh \-noprompt T} T{ .na .nh Disable command-prompt mode T} T{ .na .nh numericLock T} T{ .na .nh False T} T{ .na .nh \ T} T{ .na .nh Lock keyboard for numeric field error T} T{ .na .nh oerrLock T} T{ .na .nh True T} T{ .na .nh \ T} T{ .na .nh Lock keyboard for input error T} T{ .na .nh oversize T} T{ .na .nh \ T} T{ .na .nh \-oversize T} T{ .na .nh Oversize screen dimensions T} T{ .na .nh port T} T{ .na .nh telnet T} T{ .na .nh \-port T} T{ .na .nh Non-default TCP port T} T{ .na .nh printer.* T} T{ .na .nh (note 4) T} T{ .na .nh \ T} T{ .na .nh Printer session config T} T{ .na .nh printerLu T} T{ .na .nh (note 4) T} T{ .na .nh \ T} T{ .na .nh Printer session config T} T{ .na .nh quit T} T{ .na .nh ^\e T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode quit character T} T{ .na .nh reconnect T} T{ .na .nh False T} T{ .na .nh \-reconnect T} T{ .na .nh Automatically reconnect to host T} T{ .na .nh rprnt T} T{ .na .nh ^R T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode reprint character T} T{ .na .nh sbcsCgcsgid T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Override SBCS CGCSGID T} T{ .na .nh secure T} T{ .na .nh False T} T{ .na .nh \ T} T{ .na .nh Disable "dangerous" options T} T{ .na .nh termName T} T{ .na .nh (note 2) T} T{ .na .nh \-tn T} T{ .na .nh \s-1TELNET\s+1 terminal type string T} T{ .na .nh traceDir T} T{ .na .nh /tmp T} T{ .na .nh \ T} T{ .na .nh Directory for trace files T} T{ .na .nh traceFile T} T{ .na .nh (note 3) T} T{ .na .nh \-tracefile T} T{ .na .nh File for trace output T} T{ .na .nh typeahead T} T{ .na .nh True T} T{ .na .nh \ T} T{ .na .nh Allow typeahead T} T{ .na .nh werase T} T{ .na .nh ^W T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode word-erase character T} .TE .LP .RS \fINote 1\fP: \fBm3279\fP defaults to \fBTrue\fP if the terminal supports color, \fBFalse\fP otherwise. It can be forced to \fBFalse\fP with the proper \fB\-model\fP option. .LP \fINote 2\fP: The default terminal type string is constructed from the model number, color emulation, and extended data stream modes. E.g., a model 2 with color emulation and the extended data stream option would be sent as \fBIBM-3279-2-E\fP. Note also that when \s-1TN3270E\s+1 mode is used, the terminal type is always sent as 3278, but this does not affect color capabilities. .LP \fINote 3\fP: The default trace file is \fBx3trc.\fP\fIpid\fP in the directory specified by the \fBtraceDir\fP resource. .LP \fINote 4\fP: See \s-1PRINTER SUPPORT\s+1 for details. .LP \fINote 5\fP: \fBmono\fP defaults to \fBfalse\fP if the terminal supports at least 8 colors and to \fBtrue\fP otherwise. .LP \fINote 6\fP: The default curses color mappings for host colors 0 through 15 are: black, blue, red, magenta, green, cyan, yellow, white, black, blue, yellow, blue, green, cyan, black and white. .REdnl .LP In \fB.c3270pro\fP, lines are continued with a backslash character. .LP \fB\-xrm\fP options override definitions found in \fB.c3270pro\fP. If more than one \fB\-xrm\fP option is given for the same resource, the last one on the command line is used. .SH "FILES" /usr/local/lib/x3270/ibm_hosts .br $HOME/.c3270pro .SH "SEE ALSO" x3270(1), s3270(1), tcl3270(1), ibm_hosts(5), x3270-script(1), telnet(1), tn3270(1) .br Data Stream Programmer's Reference, IBM GA23-0059 .br Character Set Reference, IBM GA27-3831 .br RFC 1576, TN3270 Current Practices .br RFC 1646, TN3270 Extensions for LUname and Printer Selection .br RFC 2355, TN3270 Enhancements .SH "COPYRIGHTS" Copyright 1993-2009, Paul Mattes. .br Copyright 2004-2005, Don Russell. .br Copyright 2004, Dick Altenbern. .br Copyright 1990, Jeff Sparkes. .br Copyright 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332. .br All rights reserved. .LP Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: .TP * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. .TP * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. .TP * Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. .LP THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .SH "VERSION" c3270 3.3.10ga4 ibm-3270-3.3.10ga4/c3270/Makefile.in0000644000175000017500000001035611254565707016002 0ustar bastianbastian# # Copyright (c) 1999-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the names of Paul Mattes nor the names of his contributors # may be used to endorse or promote products derived from this software # without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # Makefile for c3270 (console-based 3270 emulator) RM = rm -f CC = @CC@ all:: c3270 x3270if SRCS = actions.c ansi.c apl.c c3270.c charset.c child.c ctlr.c \ ft.c ft_cut.c ft_dft.c glue.c help.c host.c icmd.c idle.c keymap.c \ kybd.c macros.c print.c printer.c proxy.c readres.c resolver.c \ resources.c rpq.c screen.c see.c sf.c tables.c telnet.c toggles.c \ trace_ds.c unicode.c unicode_dbcs.c utf8.c util.c xio.c XtGlue.c VOBJS = actions.o ansi.o apl.o c3270.o charset.o child.o ctlr.o fallbacks.o \ ft.o ft_cut.o ft_dft.o glue.o help.o host.o icmd.o idle.o keymap.o \ kybd.o macros.o print.o printer.o proxy.o readres.o resolver.o \ resources.o rpq.o screen.o see.o sf.o tables.o telnet.o toggles.o \ trace_ds.o unicode.o unicode_dbcs.o utf8.o util.o xio.o XtGlue.o OBJS1 = $(VOBJS) version.o LIBDIR = @libdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ sysconfdir = @sysconfdir@ datarootdir = @datarootdir@ LIBX3270DIR = @LIBX3270DIR@ MANDIR = @mandir@ BINDIR = @bindir@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ #CDEBUGFLAGS = -g -Wall XCPPFLAGS = -I. -DLIBX3270DIR=\"$(LIBX3270DIR)\" @XPOSIX@ @XANSI@ @XPRECOMP@ @CPPFLAGS@ CFLAGS = @CFLAGS@ $(XCPPFLAGS) $(CDEBUGFLAGS) LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ version.o: $(VOBJS) version.txt mkversion.sh @chmod +x mkversion.sh version.txt sh ./mkversion.sh $(CC) c3270 fallbacks.c: mkfb X3270.xad $(RM) $@ ./mkfb -c X3270.xad $@ c3270: $(OBJS1) $(CC) -o $@ $(OBJS1) $(LDFLAGS) $(LIBS) x3270if: x3270if.o $(CC) -o $@ x3270if.o $(LDFLAGS) $(LIBS) @PR@all:: install:: c3270 x3270if [ -d $(DESTDIR)$(BINDIR) ] || \ mkdir -p $(DESTDIR)$(BINDIR) $(INSTALL_PROGRAM) c3270 $(DESTDIR)$(BINDIR)/c3270 $(INSTALL_PROGRAM) x3270if $(DESTDIR)$(BINDIR)/x3270if install:: [ -d $(DESTDIR)$(LIBX3270DIR) ] || \ mkdir -p $(DESTDIR)$(LIBX3270DIR) [ -r $(DESTDIR)$(LIBX3270DIR)/ibm_hosts ] || \ $(INSTALL_DATA) ibm_hosts $(DESTDIR)$(LIBX3270DIR)/ibm_hosts @PR@install:: install.man: [ -d $(DESTDIR)$(MANDIR)/man1 ] || \ mkdir -p $(DESTDIR)$(MANDIR)/man1 [ -d $(DESTDIR)$(MANDIR)/man5 ] || \ mkdir -p $(DESTDIR)$(MANDIR)/man5 $(INSTALL_DATA) c3270.man $(DESTDIR)$(MANDIR)/man1/c3270.1 $(INSTALL_DATA) x3270if.man $(DESTDIR)$(MANDIR)/man1/x3270if.1 $(INSTALL_DATA) x3270-script.man $(DESTDIR)$(MANDIR)/man1/x3270-script.1 $(INSTALL_DATA) ibm_hosts.man $(DESTDIR)$(MANDIR)/man5/ibm_hosts.5 # Cygwin standalone distribution standalone: c3270-standalone.zip c3270-standalone.zip: c3270 make-cygwin-standalone runc3270.bat ./make-cygwin-standalone clean:: $(RM) c3270 *.o mkfb fallbacks.c @PR@clean:: depend: gccmakedep $(XCPPFLAGS) -s "# DO NOT DELETE" $(SRCS) # ------------------------------------------------------------------------- # dependencies generated by makedepend # DO NOT DELETE ibm-3270-3.3.10ga4/c3270/cg.h0000644000175000017500000001735111254565704014476 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * cg.h * * Character encoding for the 3270 character generator font, * using the same suffixes as Latin-1 XK_xxx keysyms. * * Charaters that represent unique EBCDIC or status line codes * are noted with comments. */ #define CG_null 0x00 /* EBCDIC 00 */ #define CG_nobreakspace 0x01 #define CG_ff 0x02 /* EBCDIC 0C */ #define CG_cr 0x03 /* EBCDIC 0D */ #define CG_nl 0x04 /* EBCDIC 15 */ #define CG_em 0x05 /* EBCDIC 19 */ #define CG_eightones 0x06 /* EBCDIC FF */ #define CG_hyphen 0x07 #define CG_greater 0x08 #define CG_less 0x09 #define CG_bracketleft 0x0a #define CG_bracketright 0x0b #define CG_parenleft 0x0c #define CG_parenright 0x0d #define CG_braceleft 0x0e #define CG_braceright 0x0f #define CG_space 0x10 #define CG_equal 0x11 #define CG_apostrophe 0x12 #define CG_quotedbl 0x13 #define CG_slash 0x14 #define CG_backslash 0x15 #define CG_bar 0x16 #define CG_brokenbar 0x17 #define CG_question 0x18 #define CG_exclam 0x19 #define CG_dollar 0x1a #define CG_cent 0x1b #define CG_sterling 0x1c #define CG_yen 0x1d #define CG_paragraph 0x1e #define CG_currency 0x1f #define CG_0 0x20 #define CG_1 0x21 #define CG_2 0x22 #define CG_3 0x23 #define CG_4 0x24 #define CG_5 0x25 #define CG_6 0x26 #define CG_7 0x27 #define CG_8 0x28 #define CG_9 0x29 #define CG_ssharp 0x2a #define CG_section 0x2b #define CG_numbersign 0x2c #define CG_at 0x2d #define CG_percent 0x2e #define CG_underscore 0x2f #define CG_ampersand 0x30 #define CG_minus 0x31 #define CG_period 0x32 #define CG_comma 0x33 #define CG_colon 0x34 #define CG_plus 0x35 #define CG_notsign 0x36 #define CG_macron 0x37 #define CG_degree 0x38 #define CG_periodcentered 0x39 #define CG_asciicircum 0x3a #define CG_asciitilde 0x3b #define CG_diaeresis 0x3c #define CG_grave 0x3d #define CG_acute 0x3e #define CG_cedilla 0x3f #define CG_agrave 0x40 #define CG_egrave 0x41 #define CG_igrave 0x42 #define CG_ograve 0x43 #define CG_ugrave 0x44 #define CG_atilde 0x45 #define CG_otilde 0x46 #define CG_ydiaeresis 0x47 #define CG_Yacute 0x48 #define CG_yacute 0x49 #define CG_eacute 0x4a #define CG_onequarter 0x4b #define CG_onehalf 0x4c #define CG_threequarters 0x4d #define CG_udiaeresis 0x4e #define CG_udiaeresis 0x4e #define CG_ccedilla 0x4f #define CG_adiaeresis 0x50 #define CG_ediaeresis 0x51 #define CG_idiaeresis 0x52 #define CG_odiaeresis 0x53 #define CG_mu 0x54 #define CG_acircumflex 0x55 #define CG_ecircumflex 0x56 #define CG_icircumflex 0x57 #define CG_ocircumflex 0x58 #define CG_ucircumflex 0x59 #define CG_aacute 0x5a #define CG_multiply 0x5b #define CG_iacute 0x5c #define CG_oacute 0x5d #define CG_uacute 0x5e #define CG_ntilde 0x5f #define CG_Agrave 0x60 #define CG_Egrave 0x61 #define CG_Igrave 0x62 #define CG_Ograve 0x63 #define CG_Ugrave 0x64 #define CG_Atilde 0x65 #define CG_Otilde 0x66 #define CG_onesuperior 0x67 #define CG_twosuperior 0x68 #define CG_threesuperior 0x69 #define CG_ordfeminine 0x6a #define CG_masculine 0x6b #define CG_guillemotleft 0x6c #define CG_guillemotright 0x6d #define CG_exclamdown 0x6e #define CG_questiondown 0x6f #define CG_Adiaeresis 0x70 #define CG_Ediaeresis 0x71 #define CG_Idiaeresis 0x72 #define CG_Odiaeresis 0x73 #define CG_Udiaeresis 0x74 #define CG_Acircumflex 0x75 #define CG_Ecircumflex 0x76 #define CG_Icircumflex 0x77 #define CG_Ocircumflex 0x78 #define CG_Ucircumflex 0x79 #define CG_Aacute 0x7a #define CG_Eacute 0x7b #define CG_Iacute 0x7c #define CG_Oacute 0x7d #define CG_Uacute 0x7e #define CG_Ntilde 0x7f #define CG_a 0x80 #define CG_b 0x81 #define CG_c 0x82 #define CG_d 0x83 #define CG_e 0x84 #define CG_f 0x85 #define CG_g 0x86 #define CG_h 0x87 #define CG_i 0x88 #define CG_j 0x89 #define CG_k 0x8a #define CG_l 0x8b #define CG_m 0x8c #define CG_n 0x8d #define CG_o 0x8e #define CG_p 0x8f #define CG_q 0x90 #define CG_r 0x91 #define CG_s 0x92 #define CG_t 0x93 #define CG_u 0x94 #define CG_v 0x95 #define CG_w 0x96 #define CG_x 0x97 #define CG_y 0x98 #define CG_z 0x99 #define CG_ae 0x9a #define CG_oslash 0x9b #define CG_aring 0x9c #define CG_division 0x9d #define CG_fm 0x9e /* EBCDIC 1E */ #define CG_dup 0x9f /* EBCDIC 1C */ #define CG_A 0xa0 #define CG_B 0xa1 #define CG_C 0xa2 #define CG_D 0xa3 #define CG_E 0xa4 #define CG_F 0xa5 #define CG_G 0xa6 #define CG_H 0xa7 #define CG_I 0xa8 #define CG_J 0xa9 #define CG_K 0xaa #define CG_L 0xab #define CG_M 0xac #define CG_N 0xad #define CG_O 0xae #define CG_P 0xaf #define CG_Q 0xb0 #define CG_R 0xb1 #define CG_S 0xb2 #define CG_T 0xb3 #define CG_U 0xb4 #define CG_V 0xb5 #define CG_W 0xb6 #define CG_X 0xb7 #define CG_Y 0xb8 #define CG_Z 0xb9 #define CG_AE 0xba #define CG_Ooblique 0xbb #define CG_Aring 0xbc #define CG_Ccedilla 0xbd #define CG_semicolon 0xbe #define CG_asterisk 0xbf /* codes 0xc0 through 0xcf are for field attributes */ #define CG_copyright 0xd0 #define CG_registered 0xd1 #define CG_boxA 0xd2 /* status boxed A */ #define CG_insert 0xd3 /* status insert mode indicator */ #define CG_boxB 0xd4 /* status boxed B */ #define CG_box6 0xd5 /* status boxed 6 */ #define CG_plusminus 0xd6 #define CG_ETH 0xd7 #define CG_rightarrow 0xd8 #define CG_THORN 0xd9 #define CG_upshift 0xda /* status upshift indicator */ #define CG_human 0xdb /* status illegal position indicator */ #define CG_underB 0xdc /* status underlined B */ #define CG_downshift 0xdd /* status downshift indicator */ #define CG_boxquestion 0xde /* status boxed question mark */ #define CG_boxsolid 0xdf /* status solid block */ /* codes 0xe0 through 0xef are for field attributes */ #define CG_badcommhi 0xf0 /* status bad communication indicator */ #define CG_commhi 0xf1 /* status communication indicator */ #define CG_commjag 0xf2 /* status communication indicator */ #define CG_commlo 0xf3 /* status communication indicator */ #define CG_clockleft 0xf4 /* status wait symbol */ #define CG_clockright 0xf5 /* status wait symbol */ #define CG_lock 0xf6 /* status keyboard lock X symbol */ #define CG_eth 0xf7 #define CG_leftarrow 0xf8 #define CG_thorn 0xf9 #define CG_keyleft 0xfa /* status key lock indicator */ #define CG_keyright 0xfb /* status key lock indicator */ #define CG_box4 0xfc /* status boxed 4 */ #define CG_underA 0xfd /* status underlined A */ #define CG_magcard 0xfe /* status magnetic card indicator */ #define CG_boxhuman 0xff /* status boxed position indicator */ ibm-3270-3.3.10ga4/c3270/kybd.c0000644000175000017500000030143611256300017015013 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * kybd.c * This module handles the keyboard for the 3270 emulator. */ #include "globals.h" #if defined(X3270_DISPLAY) /*[*/ #include #endif #define XK_3270 #if defined(X3270_APL) /*[*/ #define XK_APL #endif /*]*/ #include #include #include "3270ds.h" #include "appres.h" #include "ctlr.h" #if defined(X3270_DISPLAY) /*[*/ #include "keysym2ucs.h" #endif /*]*/ #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "aplc.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "hostc.h" #include "idlec.h" #include "keymapc.h" #include "keypadc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "printc.h" #include "screenc.h" #if defined(X3270_DISPLAY) /*[*/ #include "selectc.h" #endif /*]*/ #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include #endif /*]*/ /*#define KYBDLOCK_TRACE 1*/ /* Statics */ static enum { NONE, COMPOSE, FIRST } composing = NONE; static unsigned char pf_xlate[] = { AID_PF1, AID_PF2, AID_PF3, AID_PF4, AID_PF5, AID_PF6, AID_PF7, AID_PF8, AID_PF9, AID_PF10, AID_PF11, AID_PF12, AID_PF13, AID_PF14, AID_PF15, AID_PF16, AID_PF17, AID_PF18, AID_PF19, AID_PF20, AID_PF21, AID_PF22, AID_PF23, AID_PF24 }; static unsigned char pa_xlate[] = { AID_PA1, AID_PA2, AID_PA3 }; #define PF_SZ (sizeof(pf_xlate)/sizeof(pf_xlate[0])) #define PA_SZ (sizeof(pa_xlate)/sizeof(pa_xlate[0])) static unsigned long unlock_id; static time_t unlock_delay_time; Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped); static Boolean flush_ta(void); static void key_AID(unsigned char aid_code); static void kybdlock_set(unsigned int bits, const char *cause); static KeySym MyStringToKeysym(char *s, enum keytype *keytypep, ucs4_t *ucs4); #if defined(X3270_DBCS) /*[*/ Boolean key_WCharacter(unsigned char code[], Boolean *skipped); #endif /*]*/ static Boolean insert = False; /* insert mode */ static Boolean reverse = False; /* reverse-input mode */ /* Globals */ unsigned int kybdlock = KL_NOT_CONNECTED; unsigned char aid = AID_NO; /* current attention ID */ /* Composite key mappings. */ struct akeysym { KeySym keysym; enum keytype keytype; }; static struct akeysym cc_first; static struct composite { struct akeysym k1, k2; struct akeysym translation; } *composites = NULL; static int n_composites = 0; #define ak_eq(k1, k2) (((k1).keysym == (k2).keysym) && \ ((k1).keytype == (k2).keytype)) static struct ta { struct ta *next; XtActionProc fn; char *parm1; char *parm2; } *ta_head = (struct ta *) NULL, *ta_tail = (struct ta *) NULL; static char dxl[] = "0123456789abcdef"; #define FROM_HEX(c) (strchr(dxl, tolower(c)) - dxl) extern Widget *screen; #define KYBDLOCK_IS_OERR (kybdlock && !(kybdlock & ~KL_OERR_MASK)) /* * Put an action on the typeahead queue. */ static void enq_ta(XtActionProc fn, char *parm1, char *parm2) { struct ta *ta; /* If no connection, forget it. */ if (!CONNECTED) { trace_event(" dropped (not connected)\n"); return; } /* If operator error, complain and drop it. */ if (kybdlock & KL_OERR_MASK) { ring_bell(); trace_event(" dropped (operator error)\n"); return; } /* If scroll lock, complain and drop it. */ if (kybdlock & KL_SCROLLED) { ring_bell(); trace_event(" dropped (scrolled)\n"); return; } /* If typeahead disabled, complain and drop it. */ if (!appres.typeahead) { trace_event(" dropped (no typeahead)\n"); return; } ta = (struct ta *) Malloc(sizeof(*ta)); ta->next = (struct ta *) NULL; ta->fn = fn; ta->parm1 = ta->parm2 = CN; if (parm1) { ta->parm1 = NewString(parm1); if (parm2) ta->parm2 = NewString(parm2); } if (ta_head) ta_tail->next = ta; else { ta_head = ta; status_typeahead(True); } ta_tail = ta; trace_event(" action queued (kybdlock 0x%x)\n", kybdlock); } /* * Execute an action from the typeahead queue. */ Boolean run_ta(void) { struct ta *ta; if (kybdlock || (ta = ta_head) == (struct ta *)NULL) return False; if ((ta_head = ta->next) == (struct ta *)NULL) { ta_tail = (struct ta *)NULL; status_typeahead(False); } action_internal(ta->fn, IA_TYPEAHEAD, ta->parm1, ta->parm2); Free(ta->parm1); Free(ta->parm2); Free(ta); return True; } /* * Flush the typeahead queue. * Returns whether or not anything was flushed. */ static Boolean flush_ta(void) { struct ta *ta, *next; Boolean any = False; for (ta = ta_head; ta != (struct ta *) NULL; ta = next) { Free(ta->parm1); Free(ta->parm2); next = ta->next; Free(ta); any = True; } ta_head = ta_tail = (struct ta *) NULL; status_typeahead(False); return any; } /* Decode keyboard lock bits. */ static char * kybdlock_decode(char *how, unsigned int bits) { static char buf[1024]; char *s = buf; char *space = ""; if (bits == (unsigned int)-1) return "all"; if (bits & KL_OERR_MASK) { s += sprintf(s, "%sOERR(", how); switch(bits & KL_OERR_MASK) { case KL_OERR_PROTECTED: s += sprintf(s, "PROTECTED"); break; case KL_OERR_NUMERIC: s += sprintf(s, "NUMERIC"); break; case KL_OERR_OVERFLOW: s += sprintf(s, "OVERFLOW"); break; case KL_OERR_DBCS: s += sprintf(s, "DBCS"); break; default: s += sprintf(s, "?%d", bits & KL_OERR_MASK); break; } s += sprintf(s, ")"); space = " "; } if (bits & KL_NOT_CONNECTED) { s += sprintf(s, "%s%sNOT_CONNECTED", space, how); space = " "; } if (bits & KL_AWAITING_FIRST) { s += sprintf(s, "%s%sAWAITING_FIRST", space, how); space = " "; } if (bits & KL_OIA_TWAIT) { s += sprintf(s, "%s%sOIA_TWAIT", space, how); space = " "; } if (bits & KL_OIA_LOCKED) { s += sprintf(s, "%s%sOIA_LOCKED", space, how); space = " "; } if (bits & KL_DEFERRED_UNLOCK) { s += sprintf(s, "%s%sDEFERRED_UNLOCK", space, how); space = " "; } if (bits & KL_ENTER_INHIBIT) { s += sprintf(s, "%s%sENTER_INHIBIT", space, how); space = " "; } if (bits & KL_SCROLLED) { s += sprintf(s, "%s%sSCROLLED", space, how); space = " "; } if (bits & KL_OIA_MINUS) { s += sprintf(s, "%s%sOIA_MINUS", space, how); space = " "; } return buf; } /* Set bits in the keyboard lock. */ static void kybdlock_set(unsigned int bits, const char *cause _is_unused) { unsigned int n; trace_event("Keyboard lock(%s) %s\n", cause, kybdlock_decode("+", bits)); n = kybdlock | bits; if (n != kybdlock) { #if defined(KYBDLOCK_TRACE) /*[*/ trace_event(" %s: kybdlock |= 0x%04x, 0x%04x -> 0x%04x\n", cause, bits, kybdlock, n); #endif /*]*/ if ((kybdlock ^ bits) & KL_DEFERRED_UNLOCK) { /* Turned on deferred unlock. */ unlock_delay_time = time(NULL); } kybdlock = n; status_kybdlock(); } } /* Clear bits in the keyboard lock. */ void kybdlock_clr(unsigned int bits, const char *cause _is_unused) { unsigned int n; if (kybdlock & bits) trace_event("Keyboard unlock(%s) %s\n", cause, kybdlock_decode("-", kybdlock & bits)); n = kybdlock & ~bits; if (n != kybdlock) { #if defined(KYBDLOCK_TRACE) /*[*/ trace_event(" %s: kybdlock &= ~0x%04x, 0x%04x -> 0x%04x\n", cause, bits, kybdlock, n); #endif /*]*/ if ((kybdlock ^ n) & KL_DEFERRED_UNLOCK) { /* Turned off deferred unlock. */ unlock_delay_time = 0; } kybdlock = n; status_kybdlock(); } } /* * Set or clear enter-inhibit mode. */ void kybd_inhibit(Boolean inhibit) { if (inhibit) { kybdlock_set(KL_ENTER_INHIBIT, "kybd_inhibit"); if (kybdlock == KL_ENTER_INHIBIT) status_reset(); } else { kybdlock_clr(KL_ENTER_INHIBIT, "kybd_inhibit"); if (!kybdlock) status_reset(); } } /* * Called when a host connects or disconnects. */ static void kybd_connect(Boolean connected) { if ((kybdlock & KL_DEFERRED_UNLOCK) && unlock_id) { RemoveTimeOut(unlock_id); unlock_id = 0; } kybdlock_clr(-1, "kybd_connect"); if (connected) { /* Wait for any output or a WCC(restore) from the host */ kybdlock_set(KL_AWAITING_FIRST, "kybd_connect"); } else { kybdlock_set(KL_NOT_CONNECTED, "kybd_connect"); (void) flush_ta(); } } /* * Called when we switch between 3270 and ANSI modes. */ static void kybd_in3270(Boolean in3270 _is_unused) { if ((kybdlock & KL_DEFERRED_UNLOCK) && unlock_id) { RemoveTimeOut(unlock_id); unlock_id = 0; } switch ((int)cstate) { case CONNECTED_INITIAL_E: /* * Either we just negotiated TN3270E, or we just processed * and UNBIND from the host. In either case, we are now * awaiting a first unlock from the host, or a transition to * 3270, NVT or SSCP-LU mode. */ kybdlock_set(KL_AWAITING_FIRST, "kybd_in3270"); break; case CONNECTED_ANSI: case CONNECTED_NVT: case CONNECTED_SSCP: /* * We just transitioned to ANSI, TN3270E NVT or TN3270E SSCP-LU * mode. Remove all lock bits. */ kybdlock_clr(-1, "kybd_in3270"); break; default: /* * We just transitioned into or out of 3270 mode. * Remove all lock bits except AWAITING_FIRST. */ kybdlock_clr(~KL_AWAITING_FIRST, "kybd_in3270"); break; } /* There might be a macro pending. */ if (CONNECTED) ps_process(); } /* * Called to initialize the keyboard logic. */ void kybd_init(void) { /* Register interest in connect and disconnect events. */ register_schange(ST_CONNECT, kybd_connect); register_schange(ST_3270_MODE, kybd_in3270); } /* * Toggle insert mode. */ static void insert_mode(Boolean on) { insert = on; status_insert_mode(on); } /* * Toggle reverse mode. */ static void reverse_mode(Boolean on) { #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif /*]*/ { reverse = on; status_reverse_mode(on); } } /* * Lock the keyboard because of an operator error. */ static void operator_error(int error_type) { if (sms_redirect()) popup_an_error("Keyboard locked"); if (appres.oerr_lock || sms_redirect()) { status_oerr(error_type); mcursor_locked(); kybdlock_set((unsigned int)error_type, "operator_error"); (void) flush_ta(); } else { ring_bell(); } } /* * Handle an AID (Attention IDentifier) key. This is the common stuff that * gets executed for all AID keys (PFs, PAs, Clear and etc). */ static void key_AID(unsigned char aid_code) { #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { register unsigned i; if (aid_code == AID_ENTER) { net_sendc('\r'); return; } for (i = 0; i < PF_SZ; i++) if (aid_code == pf_xlate[i]) { ansi_send_pf(i+1); return; } for (i = 0; i < PA_SZ; i++) if (aid_code == pa_xlate[i]) { ansi_send_pa(i+1); return; } return; } #endif /*]*/ #if defined(X3270_PLUGIN) /*[*/ plugin_aid(aid_code); #endif /*]*/ if (IN_SSCP) { if (kybdlock & KL_OIA_MINUS) return; switch (aid_code) { case AID_CLEAR: /* Handled locally. */ break; case AID_ENTER: /* * Act as if the host had written our input, and * send it as a Read Modified. */ buffer_addr = cursor_addr; aid = aid_code; ctlr_read_modified(aid, False); status_ctlr_done(); break; default: /* Everything else is invalid in SSCP-LU mode. */ status_minus(); kybdlock_set(KL_OIA_MINUS, "key_AID"); return; } return; } status_twait(); mcursor_waiting(); insert_mode(False); kybdlock_set(KL_OIA_TWAIT | KL_OIA_LOCKED, "key_AID"); aid = aid_code; ctlr_read_modified(aid, False); ticking_start(False); status_ctlr_done(); } void PF_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { unsigned k; action_debug(PF_action, event, params, num_params); if (check_usage(PF_action, *num_params, 1, 1) < 0) return; k = atoi(params[0]); if (k < 1 || k > PF_SZ) { popup_an_error("%s: Invalid argument '%s'", action_name(PF_action), params[0]); cancel_if_idle_command(); return; } reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(PF_action, params[0], CN); else key_AID(pf_xlate[k-1]); } void PA_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { unsigned k; action_debug(PA_action, event, params, num_params); if (check_usage(PA_action, *num_params, 1, 1) < 0) return; k = atoi(params[0]); if (k < 1 || k > PA_SZ) { popup_an_error("%s: Invalid argument '%s'", action_name(PA_action), params[0]); cancel_if_idle_command(); return; } reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(PA_action, params[0], CN); else key_AID(pa_xlate[k-1]); } /* * ATTN key, per RFC 2355. Sends IP, regardless. */ void Attn_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Attn_action, event, params, num_params); if (check_usage(Attn_action, *num_params, 0, 0) < 0) return; if (!IN_3270) return; reset_idle_timer(); if (IN_E) { if (net_bound()) { net_interrupt(); } else { status_minus(); kybdlock_set(KL_OIA_MINUS, "Attn_action"); } } else { net_break(); } } /* * IAC IP, which works for 5250 System Request and interrupts the program * on an AS/400, even when the keyboard is locked. * * This is now the same as the Attn action. */ void Interrupt_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Interrupt_action, event, params, num_params); if (check_usage(Interrupt_action, *num_params, 0, 0) < 0) return; if (!IN_3270) return; reset_idle_timer(); net_interrupt(); } /* * Prepare for an insert of 'count' bytes. * Returns True if the insert is legal, False otherwise. */ static Boolean ins_prep(int faddr, int baddr, int count, Boolean *no_room) { int next_faddr; int xaddr; int need; int ntb; int tb_start = -1; int copy_len; *no_room = False; /* Find the end of the field. */ if (faddr == -1) { /* Unformatted. Use the end of the line. */ next_faddr = (((baddr / COLS) + 1) * COLS) % (ROWS*COLS); } else { next_faddr = faddr; INC_BA(next_faddr); while (next_faddr != faddr && !ea_buf[next_faddr].fa) { INC_BA(next_faddr); } } /* Are there enough NULLs or trailing blanks available? */ xaddr = baddr; need = count; ntb = 0; while (need && (xaddr != next_faddr)) { if (ea_buf[xaddr].cc == EBC_null) need--; else if (toggled(BLANK_FILL) && ((ea_buf[xaddr].cc == EBC_space) || (ea_buf[xaddr].cc == EBC_underscore))) { if (tb_start == -1) tb_start = xaddr; ntb++; } else { tb_start = -1; ntb = 0; } INC_BA(xaddr); } #if defined(_ST) /*[*/ printf("need %d at %d, tb_start at %d\n", count, baddr, tb_start); #endif /*]*/ if (need - ntb > 0) { if (!reverse) { operator_error(KL_OERR_OVERFLOW); return False; } else { *no_room = True; return True; } } /* * Shift the buffer to the right until we've consumed the available * (and needed) NULLs. */ need = count; xaddr = baddr; while (need && (xaddr != next_faddr)) { int n_nulls = 0; int first_null = -1; while (need && ((ea_buf[xaddr].cc == EBC_null) || (tb_start >= 0 && xaddr >= tb_start))) { need--; n_nulls++; if (first_null == -1) first_null = xaddr; INC_BA(xaddr); } if (n_nulls) { int to; /* Shift right n_nulls worth. */ copy_len = first_null - baddr; if (copy_len < 0) copy_len += ROWS*COLS; to = (baddr + n_nulls) % (ROWS*COLS); #if defined(_ST) /*[*/ printf("found %d NULLs at %d\n", n_nulls, first_null); printf("copying %d from %d to %d\n", copy_len, to, first_null); #endif /*]*/ if (copy_len) ctlr_wrapping_memmove(to, baddr, copy_len); } INC_BA(xaddr); } return True; } #define GE_WFLAG 0x100 #define PASTE_WFLAG 0x200 static void key_Character_wrapper(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params _is_unused) { int code; Boolean with_ge = False; Boolean pasting = False; char mb[16]; ucs4_t uc; code = atoi(params[0]); if (code & GE_WFLAG) { with_ge = True; code &= ~GE_WFLAG; } if (code & PASTE_WFLAG) { pasting = True; code &= ~PASTE_WFLAG; } ebcdic_to_multibyte_x(code, with_ge? CS_GE: CS_BASE, mb, sizeof(mb), EUO_BLANK_UNDEF, &uc); trace_event(" %s -> Key(%s\"%s\")\n", ia_name[(int) ia_cause], with_ge ? "GE " : "", mb); (void) key_Character(code, with_ge, pasting, NULL); } /* * Handle an ordinary displayable character key. Lots of stuff to handle * insert-mode, protected fields and etc. */ /*static*/ Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) { register int baddr, faddr, xaddr; register unsigned char fa; enum dbcs_why why = DBCS_FIELD; Boolean no_room = False; reset_idle_timer(); if (skipped != NULL) *skipped = False; if (kybdlock) { char codename[64]; (void) sprintf(codename, "%d", code | (with_ge ? GE_WFLAG : 0) | (pasting ? PASTE_WFLAG : 0)); enq_ta(key_Character_wrapper, codename, CN); return False; } baddr = cursor_addr; faddr = find_field_attribute(baddr); fa = get_field_attribute(baddr); if (ea_buf[baddr].fa || FA_IS_PROTECTED(fa)) { operator_error(KL_OERR_PROTECTED); return False; } if (appres.numeric_lock && FA_IS_NUMERIC(fa) && !((code >= EBC_0 && code <= EBC_9) || code == EBC_minus || code == EBC_period)) { operator_error(KL_OERR_NUMERIC); return False; } /* Can't put an SBCS in a DBCS field. */ if (ea_buf[faddr].cs == CS_DBCS) { operator_error(KL_OERR_DBCS); return False; } /* If it's an SI (end of DBCS subfield), move over one position. */ if (ea_buf[baddr].cc == EBC_si) { INC_BA(baddr); if (baddr == faddr) { operator_error(KL_OERR_OVERFLOW); return False; } } /* Add the character. */ if (ea_buf[baddr].cc == EBC_so) { if (insert) { if (!ins_prep(faddr, baddr, 1, &no_room)) return False; } else { Boolean was_si = False; /* * Overwriting an SO (start of DBCS subfield). * If it's followed by an SI, replace the SO/SI * pair with x/space. If not, replace it and * the following DBCS character with * x/space/SO. */ xaddr = baddr; INC_BA(xaddr); was_si = (ea_buf[xaddr].cc == EBC_si); ctlr_add(xaddr, EBC_space, CS_BASE); ctlr_add_fg(xaddr, 0); #if defined(X3270_ANSI) /*[*/ ctlr_add_bg(xaddr, 0); #endif /*]*/ if (!was_si) { INC_BA(xaddr); ctlr_add(xaddr, EBC_so, CS_BASE); ctlr_add_fg(xaddr, 0); #if defined(X3270_ANSI) /*[*/ ctlr_add_bg(xaddr, 0); #endif /*]*/ } } } else switch (ctlr_lookleft_state(baddr, &why)) { case DBCS_RIGHT: DEC_BA(baddr); /* fall through... */ case DBCS_LEFT: if (why == DBCS_ATTRIBUTE) { if (insert) { if (!ins_prep(faddr, baddr, 1, &no_room)) return False; } else { /* * Replace single DBCS char with * x/space. */ xaddr = baddr; INC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); } } else { Boolean was_si; if (insert) { /* * Inserting SBCS into a DBCS subfield. * If this is the first position, we * can just insert one character in * front of the SO. Otherwise, we'll * need room for SI (to end subfield), * the character, and SO (to begin the * subfield again). */ xaddr = baddr; DEC_BA(xaddr); if (ea_buf[xaddr].cc == EBC_so) { DEC_BA(baddr); if (!ins_prep(faddr, baddr, 1, &no_room)) return False; } else { if (!ins_prep(faddr, baddr, 3, &no_room)) return False; xaddr = baddr; ctlr_add(xaddr, EBC_si, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); INC_BA(xaddr); INC_BA(baddr); INC_BA(xaddr); ctlr_add(xaddr, EBC_so, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); } } else { /* Overwriting part of a subfield. */ xaddr = baddr; ctlr_add(xaddr, EBC_si, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); INC_BA(xaddr); INC_BA(baddr); INC_BA(xaddr); was_si = (ea_buf[xaddr].cc == EBC_si); ctlr_add(xaddr, EBC_space, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); if (!was_si) { INC_BA(xaddr); ctlr_add(xaddr, EBC_so, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); } } } break; default: case DBCS_NONE: if ((reverse || insert) && !ins_prep(faddr, baddr, 1, &no_room)) return False; break; } if (no_room) { do { INC_BA(baddr); } while (ea_buf[baddr].fa); } else { ctlr_add(baddr, (unsigned char)code, (unsigned char)(with_ge ? CS_GE : 0)); ctlr_add_fg(baddr, 0); ctlr_add_gr(baddr, 0); if (!reverse) INC_BA(baddr); } /* Replace leading nulls with blanks, if desired. */ if (formatted && toggled(BLANK_FILL)) { register int baddr_fill = baddr; DEC_BA(baddr_fill); while (baddr_fill != faddr) { /* Check for backward line wrap. */ if ((baddr_fill % COLS) == COLS - 1) { Boolean aborted = True; register int baddr_scan = baddr_fill; /* * Check the field within the preceeding line * for NULLs. */ while (baddr_scan != faddr) { if (ea_buf[baddr_scan].cc != EBC_null) { aborted = False; break; } if (!(baddr_scan % COLS)) break; DEC_BA(baddr_scan); } if (aborted) break; } if (ea_buf[baddr_fill].cc == EBC_null) ctlr_add(baddr_fill, EBC_space, 0); DEC_BA(baddr_fill); } } mdt_set(cursor_addr); /* * Implement auto-skip, and don't land on attribute bytes. * This happens for all pasted data (even DUP), and for all * keyboard-generated data except DUP. */ if (pasting || (code != EBC_dup)) { while (ea_buf[baddr].fa) { if (skipped != NULL) *skipped = True; if (FA_IS_SKIP(ea_buf[baddr].fa)) baddr = next_unprotected(baddr); else INC_BA(baddr); } cursor_move(baddr); } (void) ctlr_dbcs_postprocess(); return True; } #if defined(X3270_DBCS) /*[*/ static void key_WCharacter_wrapper(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params _is_unused) { int code; unsigned char codebuf[2]; code = atoi(params[0]); trace_event(" %s -> Key(0x%04x)\n", ia_name[(int) ia_cause], code); codebuf[0] = (code >> 8) & 0xff; codebuf[1] = code & 0xff; (void) key_WCharacter(codebuf, NULL); } /* * Input a DBCS character. * Returns True if a character was stored in the buffer, False otherwise. */ Boolean key_WCharacter(unsigned char code[], Boolean *skipped) { int baddr; register unsigned char fa; int faddr; enum dbcs_state d; int xaddr; Boolean done = False; Boolean no_si = False; Boolean no_room = False; extern unsigned char reply_mode; /* XXX */ reset_idle_timer(); if (kybdlock) { char codename[64]; (void) sprintf(codename, "%d", (code[0] << 8) | code[1]); enq_ta(key_WCharacter_wrapper, codename, CN); return False; } if (skipped != NULL) *skipped = False; /* In DBCS mode? */ #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif /*]*/ { trace_event("DBCS character received when not in DBCS mode, " "ignoring.\n"); return True; } #if defined(X3270_ANSI) /*[*/ /* In ANSI mode? */ if (IN_ANSI) { char mb[16]; (void) ebcdic_to_multibyte((code[0] << 8) | code[1], mb, sizeof(mb)); net_sends(mb); return True; } #endif /*]*/ baddr = cursor_addr; fa = get_field_attribute(baddr); faddr = find_field_attribute(baddr); /* Protected? */ if (ea_buf[baddr].fa || FA_IS_PROTECTED(fa)) { operator_error(KL_OERR_PROTECTED); return False; } /* Numeric? */ if (appres.numeric_lock && FA_IS_NUMERIC(fa)) { operator_error(KL_OERR_NUMERIC); return False; } /* * Figure our what to do based on the DBCS state of the buffer. * Leaves baddr pointing to the next unmodified position. */ retry: switch (d = ctlr_dbcs_state(baddr)) { case DBCS_RIGHT: case DBCS_RIGHT_WRAP: /* Back up one position and process it as a LEFT. */ DEC_BA(baddr); /* fall through... */ case DBCS_LEFT: case DBCS_LEFT_WRAP: /* Overwrite the existing character. */ if (insert) { if (!ins_prep(faddr, baddr, 2, &no_room)) { return False; } } ctlr_add(baddr, code[0], ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[1], ea_buf[baddr].cs); INC_BA(baddr); done = True; break; case DBCS_SB: /* Back up one position and process it as an SI. */ DEC_BA(baddr); /* fall through... */ case DBCS_SI: /* Extend the subfield to the right. */ if (insert) { if (!ins_prep(faddr, baddr, 2, &no_room)) { return False; } } else { /* Don't overwrite a field attribute or an SO. */ xaddr = baddr; INC_BA(xaddr); /* C1 */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) no_si = True; INC_BA(xaddr); /* SI */ if (ea_buf[xaddr].fa || ea_buf[xaddr].cc == EBC_so) break; } ctlr_add(baddr, code[0], ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[1], ea_buf[baddr].cs); if (!no_si) { INC_BA(baddr); ctlr_add(baddr, EBC_si, ea_buf[baddr].cs); } done = True; break; case DBCS_DEAD: break; case DBCS_NONE: if (ea_buf[faddr].ic) { Boolean extend_left = False; /* Is there room? */ if (insert) { if (!ins_prep(faddr, baddr, 4, &no_room)) { return False; } } else { xaddr = baddr; /* baddr, SO */ if (ea_buf[xaddr].cc == EBC_so) { /* * (baddr), where we would have put the * SO, is already an SO. Move to * (baddr+1) and try again. */ #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 0\n"); #endif /*]*/ INC_BA(baddr); goto retry; } INC_BA(xaddr); /* baddr+1, C0 */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) { enum dbcs_state e; /* * (baddr+1), where we would have put * the left side of the DBCS, is a SO. * If there's room, we can extend the * subfield to the left. If not, we're * stuck. */ DEC_BA(xaddr); DEC_BA(xaddr); e = ctlr_dbcs_state(xaddr); if (e == DBCS_NONE || e == DBCS_SB) { extend_left = True; no_si = True; #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 1, " "extend left\n"); #endif /*]*/ } else { /* * Won't actually happen, * because this implies that * the buffer addr at baddr * is an SB. */ #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 1, " "no room on left, " "fail\n"); #endif /*]*/ break; } } INC_BA(xaddr); /* baddr+2, C1 */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) { /* * (baddr+2), where we want to put the * right half of the DBCS character, is * a SO. This is a natural extension * to the left -- just make sure we * don't write an SI. */ no_si = True; #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 2, no SI\n"); #endif /*]*/ } /* * Check the fourth position only if we're * not doing an extend-left. */ if (!no_si) { INC_BA(xaddr); /* baddr+3, SI */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) { /* * (baddr+3), where we want to * put an * SI, is an SO. Forget it. */ #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 3, " "retry right\n"); INC_BA(baddr); goto retry; #endif /*]*/ break; } } } /* Yes, add it. */ if (extend_left) DEC_BA(baddr); ctlr_add(baddr, EBC_so, ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[0], ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[1], ea_buf[baddr].cs); if (!no_si) { INC_BA(baddr); ctlr_add(baddr, EBC_si, ea_buf[baddr].cs); } done = True; } else if (reply_mode == SF_SRM_CHAR) { /* Use the character attribute. */ if (insert) { if (!ins_prep(faddr, baddr, 2, &no_room)) { return False; } } else { xaddr = baddr; INC_BA(xaddr); if (ea_buf[xaddr].fa) break; } ctlr_add(baddr, code[0], CS_DBCS); INC_BA(baddr); ctlr_add(baddr, code[1], CS_DBCS); INC_BA(baddr); done = True; } break; } if (done) { /* Implement blank fill mode. */ if (toggled(BLANK_FILL)) { xaddr = faddr; INC_BA(xaddr); while (xaddr != baddr) { if (ea_buf[xaddr].cc == EBC_null) ctlr_add(xaddr, EBC_space, CS_BASE); else break; INC_BA(xaddr); } } mdt_set(cursor_addr); /* Implement auto-skip. */ while (ea_buf[baddr].fa) { if (skipped != NULL) *skipped = True; if (FA_IS_SKIP(ea_buf[baddr].fa)) baddr = next_unprotected(baddr); else INC_BA(baddr); } cursor_move(baddr); (void) ctlr_dbcs_postprocess(); return True; } else { operator_error(KL_OERR_DBCS); return False; } } #endif /*]*/ /* * Handle an ordinary character key, given its Unicode value. */ static void key_UCharacter(ucs4_t ucs4, enum keytype keytype, enum iaction cause, Boolean *skipped) { register int i; struct akeysym ak; reset_idle_timer(); if (skipped != NULL) *skipped = False; ak.keysym = ucs4; ak.keytype = keytype; switch (composing) { case NONE: break; case COMPOSE: for (i = 0; i < n_composites; i++) if (ak_eq(composites[i].k1, ak) || ak_eq(composites[i].k2, ak)) break; if (i < n_composites) { cc_first.keysym = ucs4; cc_first.keytype = keytype; composing = FIRST; status_compose(True, ucs4, keytype); } else { ring_bell(); composing = NONE; status_compose(False, 0, KT_STD); } return; case FIRST: composing = NONE; status_compose(False, 0, KT_STD); for (i = 0; i < n_composites; i++) if ((ak_eq(composites[i].k1, cc_first) && ak_eq(composites[i].k2, ak)) || (ak_eq(composites[i].k1, ak) && ak_eq(composites[i].k2, cc_first))) break; if (i < n_composites) { ucs4 = composites[i].translation.keysym; keytype = composites[i].translation.keytype; } else { ring_bell(); return; } break; } trace_event(" %s -> Key(U+%04x)\n", ia_name[(int) cause], ucs4); if (IN_3270) { ebc_t ebc; Boolean ge; if (ucs4 < ' ') { trace_event(" dropped (control char)\n"); return; } ebc = unicode_to_ebcdic_ge(ucs4, &ge); if (ebc == 0) { trace_event(" dropped (no EBCDIC translation)\n"); return; } #if defined(X3270_DBCS) /*[*/ if (ebc & 0xff00) { unsigned char code[2]; code[0] = (ebc & 0xff00)>> 8; code[1] = ebc & 0xff; (void) key_WCharacter(code, skipped); } else #endif /*]*/ (void) key_Character(ebc, (keytype == KT_GE) || ge, False, skipped); } #if defined(X3270_ANSI) /*[*/ else if (IN_ANSI) { char mb[16]; unicode_to_multibyte(ucs4, mb, sizeof(mb)); net_sends(mb); } #endif /*]*/ else { trace_event(" dropped (not connected)\n"); } } #if defined(X3270_DISPLAY) /*[*/ /* * Handle an ordinary character key, given its NULL-terminated multibyte * representation. */ static void key_ACharacter(char *mb, enum keytype keytype, enum iaction cause, Boolean *skipped) { ucs4_t ucs4; int consumed; enum me_fail error; reset_idle_timer(); if (skipped != NULL) *skipped = False; /* Convert the multibyte string to UCS4. */ ucs4 = multibyte_to_unicode(mb, strlen(mb), &consumed, &error); if (ucs4 == 0) { trace_event(" %s -> Key(?)\n", ia_name[(int) cause]); trace_event(" dropped (invalid multibyte sequence)\n"); return; } key_UCharacter(ucs4, keytype, cause, skipped); } #endif /*]*/ /* * Simple toggles. */ #if defined(X3270_DISPLAY) /*[*/ void AltCursor_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(AltCursor_action, event, params, num_params); if (check_usage(AltCursor_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); do_toggle(ALT_CURSOR); } #endif /*]*/ void MonoCase_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(MonoCase_action, event, params, num_params); if (check_usage(MonoCase_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); do_toggle(MONOCASE); } /* * Flip the display left-to-right */ void Flip_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Flip_action, event, params, num_params); if (check_usage(Flip_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif /*]*/ screen_flip(); } /* * Tab forward to next field. */ void Tab_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Tab_action, event, params, num_params); if (check_usage(Tab_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Tab"); status_reset(); } else { enq_ta(Tab_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_sendc('\t'); return; } #endif /*]*/ cursor_move(next_unprotected(cursor_addr)); } /* * Tab backward to previous field. */ void BackTab_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr, nbaddr; int sbaddr; action_debug(BackTab_action, event, params, num_params); if (check_usage(BackTab_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "BackTab"); status_reset(); } else { enq_ta(BackTab_action, CN, CN); return; } } if (!IN_3270) return; baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].fa) /* at bof */ DEC_BA(baddr); sbaddr = baddr; while (True) { nbaddr = baddr; INC_BA(nbaddr); if (ea_buf[baddr].fa && !FA_IS_PROTECTED(ea_buf[baddr].fa) && !ea_buf[nbaddr].fa) break; DEC_BA(baddr); if (baddr == sbaddr) { cursor_move(0); return; } } INC_BA(baddr); cursor_move(baddr); } /* * Deferred keyboard unlock. */ static void defer_unlock(void) { kybdlock_clr(KL_DEFERRED_UNLOCK, "defer_unlock"); status_reset(); if (CONNECTED) ps_process(); } /* * Reset keyboard lock. */ void do_reset(Boolean explicit) { /* * If explicit (from the keyboard) and there is typeahead or * a half-composed key, simply flush it. */ if (explicit #if defined(X3270_FT) /*[*/ || ft_state != FT_NONE #endif /*]*/ ) { Boolean half_reset = False; if (flush_ta()) half_reset = True; if (composing != NONE) { composing = NONE; status_compose(False, 0, KT_STD); half_reset = True; } if (half_reset) return; } /* Always clear insert mode. */ insert_mode(False); /* Otherwise, if not connect, reset is a no-op. */ if (!CONNECTED) return; /* * Remove any deferred keyboard unlock. We will either unlock the * keyboard now, or want to defer further into the future. */ if ((kybdlock & KL_DEFERRED_UNLOCK) && unlock_id) { RemoveTimeOut(unlock_id); unlock_id = 0; } /* * If explicit (from the keyboard), unlock the keyboard now. * Otherwise (from the host), schedule a deferred keyboard unlock. */ if (explicit #if defined(X3270_FT) /*[*/ || ft_state != FT_NONE #endif /*]*/ || (!appres.unlock_delay && !sms_in_macro()) || (unlock_delay_time != 0 && (time(NULL) - unlock_delay_time) > 1) || !appres.unlock_delay_ms) { kybdlock_clr(-1, "do_reset"); } else if (kybdlock & (KL_DEFERRED_UNLOCK | KL_OIA_TWAIT | KL_OIA_LOCKED | KL_AWAITING_FIRST)) { kybdlock_clr(~KL_DEFERRED_UNLOCK, "do_reset"); kybdlock_set(KL_DEFERRED_UNLOCK, "do_reset"); unlock_id = AddTimeOut(appres.unlock_delay_ms, defer_unlock); trace_event("Deferring keyboard unlock %dms\n", appres.unlock_delay_ms); } /* Clean up other modes. */ status_reset(); mcursor_normal(); composing = NONE; status_compose(False, 0, KT_STD); } void Reset_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Reset_action, event, params, num_params); if (check_usage(Reset_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); do_reset(True); } /* * Move to first unprotected field on screen. */ void Home_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Home_action, event, params, num_params); if (check_usage(Home_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Home_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_home(); return; } #endif /*]*/ if (!formatted) { cursor_move(0); return; } cursor_move(next_unprotected(ROWS*COLS-1)); } /* * Cursor left 1 position. */ static void do_left(void) { register int baddr; enum dbcs_state d; baddr = cursor_addr; DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) { DEC_BA(baddr); } else if (IS_LEFT(d)) { DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) DEC_BA(baddr); } cursor_move(baddr); } void Left_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Left_action, event, params, num_params); if (check_usage(Left_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Left"); status_reset(); } else { enq_ta(Left_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_left(); return; } #endif /*]*/ if (!flipped) do_left(); else { register int baddr; baddr = cursor_addr; INC_BA(baddr); cursor_move(baddr); } } /* * Delete char key. * Returns "True" if succeeds, "False" otherwise. */ static Boolean do_delete(void) { register int baddr, end_baddr; int xaddr; register unsigned char fa; int ndel; register int i; baddr = cursor_addr; /* Can't delete a field attribute. */ fa = get_field_attribute(baddr); if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return False; } if (ea_buf[baddr].cc == EBC_so || ea_buf[baddr].cc == EBC_si) { /* * Can't delete SO or SI, unless it's adjacent to its * opposite. */ xaddr = baddr; INC_BA(xaddr); if (ea_buf[xaddr].cc == SOSI(ea_buf[baddr].cc)) { ndel = 2; } else { operator_error(KL_OERR_PROTECTED); return False; } } else if (IS_DBCS(ea_buf[baddr].db)) { if (IS_RIGHT(ea_buf[baddr].db)) DEC_BA(baddr); ndel = 2; } else ndel = 1; /* find next fa */ if (formatted) { end_baddr = baddr; do { INC_BA(end_baddr); if (ea_buf[end_baddr].fa) break; } while (end_baddr != baddr); DEC_BA(end_baddr); } else { if ((baddr % COLS) == COLS - ndel) return True; end_baddr = baddr + (COLS - (baddr % COLS)) - 1; } /* Shift the remainder of the field left. */ if (end_baddr > baddr) { ctlr_bcopy(baddr + ndel, baddr, end_baddr - (baddr + ndel) + 1, 0); } else if (end_baddr != baddr) { /* XXX: Need to verify this. */ ctlr_bcopy(baddr + ndel, baddr, ((ROWS * COLS) - 1) - (baddr + ndel) + 1, 0); ctlr_bcopy(0, (ROWS * COLS) - ndel, ndel, 0); ctlr_bcopy(ndel, 0, end_baddr - ndel + 1, 0); } /* NULL fill at the end. */ for (i = 0; i < ndel; i++) ctlr_add(end_baddr - i, EBC_null, 0); /* Set the MDT for this field. */ mdt_set(cursor_addr); /* Patch up the DBCS state for display. */ (void) ctlr_dbcs_postprocess(); return True; } void Delete_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Delete_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(Delete_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_sendc('\177'); return; } #endif /*]*/ if (!do_delete()) return; if (reverse) { int baddr = cursor_addr; DEC_BA(baddr); if (!ea_buf[baddr].fa) cursor_move(baddr); } } /* * 3270-style backspace. */ void BackSpace_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(BackSpace_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(BackSpace_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_erase(); return; } #endif /*]*/ if (reverse) (void) do_delete(); else if (!flipped) do_left(); else { register int baddr; baddr = cursor_addr; DEC_BA(baddr); cursor_move(baddr); } } /* * Destructive backspace, like Unix "erase". */ static void do_erase(void) { int baddr, faddr; enum dbcs_state d; baddr = cursor_addr; faddr = find_field_attribute(baddr); if (faddr == baddr || FA_IS_PROTECTED(ea_buf[baddr].fa)) { operator_error(KL_OERR_PROTECTED); return; } if (baddr && faddr == baddr - 1) return; do_left(); /* * If we are now on an SI, move left again. */ if (ea_buf[cursor_addr].cc == EBC_si) { baddr = cursor_addr; DEC_BA(baddr); cursor_move(baddr); } /* * If we landed on the right-hand side of a DBCS character, move to the * left-hand side. * This ensures that if this is the end of a DBCS subfield, we will * land on the SI, instead of on the character following. */ d = ctlr_dbcs_state(cursor_addr); if (IS_RIGHT(d)) { baddr = cursor_addr; DEC_BA(baddr); cursor_move(baddr); } /* * Try to delete this character. */ if (!do_delete()) return; /* * If we've just erased the last character of a DBCS subfield, erase * the SO/SI pair as well. */ baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].cc == EBC_so && ea_buf[cursor_addr].cc == EBC_si) { cursor_move(baddr); (void) do_delete(); } } void Erase_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Erase_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(Erase_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_erase(); return; } #endif /*]*/ if (reverse) do_delete(); else do_erase(); } /* * Cursor right 1 position. */ void Right_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; enum dbcs_state d; action_debug(Right_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Right"); status_reset(); } else { enq_ta(Right_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_right(); return; } #endif /*]*/ if (!flipped) { baddr = cursor_addr; INC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) INC_BA(baddr); cursor_move(baddr); } else do_left(); } /* * Cursor left 2 positions. */ void Left2_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; enum dbcs_state d; action_debug(Left2_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Left2"); status_reset(); } else { enq_ta(Left2_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ baddr = cursor_addr; DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) DEC_BA(baddr); DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) DEC_BA(baddr); cursor_move(baddr); } /* * Cursor to previous word. */ void PreviousWord_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; int baddr0; unsigned char c; Boolean prot; action_debug(PreviousWord_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(PreviousWord_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (!formatted) return; baddr = cursor_addr; prot = FA_IS_PROTECTED(get_field_attribute(baddr)); /* Skip to before this word, if in one now. */ if (!prot) { c = ea_buf[baddr].cc; while (!ea_buf[baddr].fa && c != EBC_space && c != EBC_null) { DEC_BA(baddr); if (baddr == cursor_addr) return; c = ea_buf[baddr].cc; } } baddr0 = baddr; /* Find the end of the preceding word. */ do { c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) { DEC_BA(baddr); prot = FA_IS_PROTECTED(get_field_attribute(baddr)); continue; } if (!prot && c != EBC_space && c != EBC_null) break; DEC_BA(baddr); } while (baddr != baddr0); if (baddr == baddr0) return; /* Go it its front. */ for (;;) { DEC_BA(baddr); c = ea_buf[baddr].cc; if (ea_buf[baddr].fa || c == EBC_space || c == EBC_null) { break; } } INC_BA(baddr); cursor_move(baddr); } /* * Cursor right 2 positions. */ void Right2_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; enum dbcs_state d; action_debug(Right2_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Right2"); status_reset(); } else { enq_ta(Right2_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ baddr = cursor_addr; INC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) INC_BA(baddr); INC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) INC_BA(baddr); cursor_move(baddr); } /* Find the next unprotected word, or -1 */ static int nu_word(int baddr) { int baddr0 = baddr; unsigned char c; Boolean prot; prot = FA_IS_PROTECTED(get_field_attribute(baddr)); do { c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) prot = FA_IS_PROTECTED(ea_buf[baddr].fa); else if (!prot && c != EBC_space && c != EBC_null) return baddr; INC_BA(baddr); } while (baddr != baddr0); return -1; } /* Find the next word in this field, or -1 */ static int nt_word(int baddr) { int baddr0 = baddr; unsigned char c; Boolean in_word = True; do { c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) return -1; if (in_word) { if (c == EBC_space || c == EBC_null) in_word = False; } else { if (c != EBC_space && c != EBC_null) return baddr; } INC_BA(baddr); } while (baddr != baddr0); return -1; } /* * Cursor to next unprotected word. */ void NextWord_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; unsigned char c; action_debug(NextWord_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(NextWord_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (!formatted) return; /* If not in an unprotected field, go to the next unprotected word. */ if (ea_buf[cursor_addr].fa || FA_IS_PROTECTED(get_field_attribute(cursor_addr))) { baddr = nu_word(cursor_addr); if (baddr != -1) cursor_move(baddr); return; } /* If there's another word in this field, go to it. */ baddr = nt_word(cursor_addr); if (baddr != -1) { cursor_move(baddr); return; } /* If in a word, go to just after its end. */ c = ea_buf[cursor_addr].cc; if (c != EBC_space && c != EBC_null) { baddr = cursor_addr; do { c = ea_buf[baddr].cc; if (c == EBC_space || c == EBC_null) { cursor_move(baddr); return; } else if (ea_buf[baddr].fa) { baddr = nu_word(baddr); if (baddr != -1) cursor_move(baddr); return; } INC_BA(baddr); } while (baddr != cursor_addr); } /* Otherwise, go to the next unprotected word. */ else { baddr = nu_word(cursor_addr); if (baddr != -1) cursor_move(baddr); } } /* * Cursor up 1 position. */ void Up_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; action_debug(Up_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Up"); status_reset(); } else { enq_ta(Up_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_up(); return; } #endif /*]*/ baddr = cursor_addr - COLS; if (baddr < 0) baddr = (cursor_addr + (ROWS * COLS)) - COLS; cursor_move(baddr); } /* * Cursor down 1 position. */ void Down_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; action_debug(Down_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Down"); status_reset(); } else { enq_ta(Down_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_down(); return; } #endif /*]*/ baddr = (cursor_addr + COLS) % (COLS * ROWS); cursor_move(baddr); } /* * Cursor to first field on next line or any lines after that. */ void Newline_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr, faddr; register unsigned char fa; action_debug(Newline_action, event, params, num_params); if (check_usage(Newline_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Newline_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_sendc('\n'); return; } #endif /*]*/ baddr = (cursor_addr + COLS) % (COLS * ROWS); /* down */ baddr = (baddr / COLS) * COLS; /* 1st col */ faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (faddr != baddr && !FA_IS_PROTECTED(fa)) cursor_move(baddr); else cursor_move(next_unprotected(baddr)); } /* * DUP key */ void Dup_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Dup_action, event, params, num_params); if (check_usage(Dup_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Dup_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (key_Character(EBC_dup, False, False, NULL)) cursor_move(next_unprotected(cursor_addr)); } /* * FM key */ void FieldMark_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(FieldMark_action, event, params, num_params); if (check_usage(FieldMark_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(FieldMark_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ (void) key_Character(EBC_fm, False, False, NULL); } /* * Vanilla AID keys. */ void Enter_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Enter_action, event, params, num_params); if (check_usage(Enter_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(Enter_action, CN, CN); else key_AID(AID_ENTER); } void SysReq_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(SysReq_action, event, params, num_params); if (check_usage(SysReq_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (IN_ANSI) return; #if defined(X3270_TN3270E) /*[*/ if (IN_E) { net_abort(); } else #endif /*]*/ { if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(SysReq_action, CN, CN); else key_AID(AID_SYSREQ); } } /* * Clear AID key */ void Clear_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Clear_action, event, params, num_params); if (check_usage(Clear_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; if (kybdlock && CONNECTED) { enq_ta(Clear_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_clear(); return; } #endif /*]*/ buffer_addr = 0; ctlr_clear(True); cursor_move(0); if (CONNECTED) key_AID(AID_CLEAR); } /* * Cursor Select key (light pen simulator). */ static void lightpen_select(int baddr) { int faddr; register unsigned char fa; int designator; #if defined(X3270_DBCS) /*[*/ int designator2; #endif /*]*/ faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (!FA_IS_SELECTABLE(fa)) { ring_bell(); return; } designator = faddr; INC_BA(designator); #if defined(X3270_DBCS) /*[*/ if (dbcs) { if (ea_buf[baddr].cs == CS_DBCS) { designator2 = designator; INC_BA(designator2); if ((ea_buf[designator].db != DBCS_LEFT && ea_buf[designator].db != DBCS_LEFT_WRAP) && (ea_buf[designator2].db != DBCS_RIGHT && ea_buf[designator2].db != DBCS_RIGHT_WRAP)) { ring_bell(); return; } if (ea_buf[designator].cc == 0x42 && ea_buf[designator2].cc == EBC_greater) { ctlr_add(designator2, EBC_question, CS_DBCS); mdt_clear(faddr); } else if (ea_buf[designator].cc == 0x42 && ea_buf[designator2].cc == EBC_question) { ctlr_add(designator2, EBC_greater, CS_DBCS); mdt_clear(faddr); } else if ((ea_buf[designator].cc == EBC_space && ea_buf[designator2].cc == EBC_space) || (ea_buf[designator].cc == EBC_null && ea_buf[designator2].cc == EBC_null)) { ctlr_add(designator2, EBC_greater, CS_DBCS); mdt_set(faddr); key_AID(AID_SELECT); } else if (ea_buf[designator].cc == 0x42 && ea_buf[designator2].cc == EBC_ampersand) { mdt_set(faddr); key_AID(AID_ENTER); } else { ring_bell(); } return; } } #endif /*]*/ switch (ea_buf[designator].cc) { case EBC_greater: /* > */ ctlr_add(designator, EBC_question, 0); /* change to ? */ mdt_clear(faddr); break; case EBC_question: /* ? */ ctlr_add(designator, EBC_greater, 0); /* change to > */ mdt_set(faddr); break; case EBC_space: /* space */ case EBC_null: /* null */ mdt_set(faddr); key_AID(AID_SELECT); break; case EBC_ampersand: /* & */ mdt_set(faddr); key_AID(AID_ENTER); break; default: ring_bell(); break; } } /* * Cursor Select key (light pen simulator) -- at the current cursor location. */ void CursorSelect_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(CursorSelect_action, event, params, num_params); if (check_usage(CursorSelect_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(CursorSelect_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ lightpen_select(cursor_addr); } #if defined(X3270_DISPLAY) /*[*/ /* * Cursor Select mouse action (light pen simulator). */ void MouseSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(MouseSelect_action, event, params, num_params); if (check_usage(MouseSelect_action, *num_params, 0, 0) < 0) return; if (w != *screen) return; reset_idle_timer(); if (kybdlock) return; #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ lightpen_select(mouse_baddr(w, event)); } #endif /*]*/ /* * Erase End Of Field Key. */ void EraseEOF_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; register unsigned char fa; enum dbcs_state d; enum dbcs_why why = DBCS_FIELD; action_debug(EraseEOF_action, event, params, num_params); if (check_usage(EraseEOF_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(EraseEOF_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ baddr = cursor_addr; fa = get_field_attribute(baddr); if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return; } if (formatted) { /* erase to next field attribute */ do { ctlr_add(baddr, EBC_null, 0); INC_BA(baddr); } while (!ea_buf[baddr].fa); mdt_set(cursor_addr); } else { /* erase to end of screen */ do { ctlr_add(baddr, EBC_null, 0); INC_BA(baddr); } while (baddr != 0); } /* If the cursor was in a DBCS subfield, re-create the SI. */ d = ctlr_lookleft_state(cursor_addr, &why); if (IS_DBCS(d) && why == DBCS_SUBFIELD) { if (d == DBCS_RIGHT) { baddr = cursor_addr; DEC_BA(baddr); ea_buf[baddr].cc = EBC_si; } else ea_buf[cursor_addr].cc = EBC_si; } (void) ctlr_dbcs_postprocess(); } /* * Erase all Input Key. */ void EraseInput_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr, sbaddr; unsigned char fa; Boolean f; action_debug(EraseInput_action, event, params, num_params); if (check_usage(EraseInput_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(EraseInput_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (formatted) { /* find first field attribute */ baddr = 0; do { if (ea_buf[baddr].fa) break; INC_BA(baddr); } while (baddr != 0); sbaddr = baddr; f = False; do { fa = ea_buf[baddr].fa; if (!FA_IS_PROTECTED(fa)) { mdt_clear(baddr); do { INC_BA(baddr); if (!f) { cursor_move(baddr); f = True; } if (!ea_buf[baddr].fa) { ctlr_add(baddr, EBC_null, 0); } } while (!ea_buf[baddr].fa); } else { /* skip protected */ do { INC_BA(baddr); } while (!ea_buf[baddr].fa); } } while (baddr != sbaddr); if (!f) cursor_move(0); } else { ctlr_clear(True); cursor_move(0); } } /* * Delete word key. Backspaces the cursor until it hits the front of a word, * deletes characters until it hits a blank or null, and deletes all of these * but the last. * * Which is to say, does a ^W. */ void DeleteWord_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; register unsigned char fa; action_debug(DeleteWord_action, event, params, num_params); if (check_usage(DeleteWord_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(DeleteWord_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_werase(); return; } #endif /*]*/ if (!formatted) return; baddr = cursor_addr; fa = get_field_attribute(baddr); /* Make sure we're on a modifiable field. */ if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return; } /* Backspace over any spaces to the left of the cursor. */ for (;;) { baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].fa) return; if (ea_buf[baddr].cc == EBC_null || ea_buf[baddr].cc == EBC_space) do_erase(); else break; } /* Backspace until the character to the left of the cursor is blank. */ for (;;) { baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].fa) return; if (ea_buf[baddr].cc == EBC_null || ea_buf[baddr].cc == EBC_space) break; else do_erase(); } } /* * Delete field key. Similar to EraseEOF, but it wipes out the entire field * rather than just to the right of the cursor, and it leaves the cursor at * the front of the field. * * Which is to say, does a ^U. */ void DeleteField_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; register unsigned char fa; action_debug(DeleteField_action, event, params, num_params); if (check_usage(DeleteField_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(DeleteField_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_kill(); return; } #endif /*]*/ if (!formatted) return; baddr = cursor_addr; fa = get_field_attribute(baddr); if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return; } while (!ea_buf[baddr].fa) DEC_BA(baddr); INC_BA(baddr); mdt_set(cursor_addr); cursor_move(baddr); while (!ea_buf[baddr].fa) { ctlr_add(baddr, EBC_null, 0); INC_BA(baddr); } } /* * Set insert mode key. */ void Insert_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Insert_action, event, params, num_params); if (check_usage(Insert_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Insert_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ insert_mode(True); } /* * Toggle insert mode key. */ void ToggleInsert_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(ToggleInsert_action, event, params, num_params); if (check_usage(ToggleInsert_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(ToggleInsert_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (insert) insert_mode(False); else insert_mode(True); } /* * Toggle reverse mode key. */ void ToggleReverse_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(ToggleReverse_action, event, params, num_params); if (check_usage(ToggleReverse_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(ToggleReverse_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ reverse_mode(!reverse); } /* * Move the cursor to the first blank after the last nonblank in the * field, or if the field is full, to the last character in the field. */ void FieldEnd_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int baddr, faddr; unsigned char fa, c; int last_nonblank = -1; action_debug(FieldEnd_action, event, params, num_params); if (check_usage(FieldEnd_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(FieldEnd_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (!formatted) return; baddr = cursor_addr; faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (faddr == baddr || FA_IS_PROTECTED(fa)) return; baddr = faddr; while (True) { INC_BA(baddr); c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) break; if (c != EBC_null && c != EBC_space) last_nonblank = baddr; } if (last_nonblank == -1) { baddr = faddr; INC_BA(baddr); } else { baddr = last_nonblank; INC_BA(baddr); if (ea_buf[baddr].fa) baddr = last_nonblank; } cursor_move(baddr); } /* * MoveCursor action. Depending on arguments, this is either a move to the * mouse cursor position, or to an absolute location. */ void MoveCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { register int baddr; int row, col; action_debug(MoveCursor_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (*num_params == 2) enq_ta(MoveCursor_action, params[0], params[1]); return; } switch (*num_params) { #if defined(X3270_DISPLAY) /*[*/ case 0: /* mouse click, presumably */ if (w != *screen) return; cursor_move(mouse_baddr(w, event)); break; #endif /*]*/ case 2: /* probably a macro call */ row = atoi(params[0]); col = atoi(params[1]); if (!IN_3270) { row--; col--; } if (row < 0) row = 0; if (col < 0) col = 0; baddr = ((row * COLS) + col) % (ROWS * COLS); cursor_move(baddr); break; default: /* couln't say */ popup_an_error("%s requires 0 or 2 arguments", action_name(MoveCursor_action)); cancel_if_idle_command(); break; } } #if defined(X3270_DBCS) && defined(X3270_DISPLAY) /*[*/ /* * Run a KeyPress through XIM. * Returns True if there is further processing to do, False otherwise. */ static Boolean xim_lookup(XKeyEvent *event) { static char *buf = NULL; static int buf_len = 0, rlen; KeySym k; Status status; extern XIC ic; int i; Boolean rv = False; #define BASE_BUFSIZE 50 if (ic == NULL) return True; if (buf == NULL) { buf_len = BASE_BUFSIZE; buf = Malloc(buf_len); } for (;;) { memset(buf, '\0', buf_len); rlen = XmbLookupString(ic, event, buf, buf_len - 1, &k, &status); if (status != XBufferOverflow) break; buf_len += BASE_BUFSIZE; buf = Realloc(buf, buf_len); } switch (status) { case XLookupNone: rv = False; break; case XLookupKeySym: rv = True; break; case XLookupChars: trace_event("%d XIM char%s:", rlen, (rlen != 1)? "s": ""); for (i = 0; i < rlen; i++) { trace_event(" %02x", buf[i] & 0xff); } trace_event("\n"); buf[rlen] = '\0'; key_ACharacter(buf, KT_STD, ia_cause, NULL); rv = False; break; case XLookupBoth: rv = True; break; } return rv; } #endif /*]*/ /* * Key action. */ void Key_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; KeySym k; enum keytype keytype; ucs4_t ucs4; action_debug(Key_action, event, params, num_params); reset_idle_timer(); for (i = 0; i < *num_params; i++) { char *s = params[i]; k = MyStringToKeysym(s, &keytype, &ucs4); if (k == NoSymbol && !ucs4) { popup_an_error("%s: Nonexistent or invalid KeySym: %s", action_name(Key_action), s); cancel_if_idle_command(); continue; } if (k & ~0xff) { /* * Can't pass symbolic KeySyms that aren't in the * range 0x01..0xff. */ popup_an_error("%s: Invalid KeySym: %s", action_name(Key_action), s); cancel_if_idle_command(); continue; } if (k != NoSymbol) key_UCharacter(k, keytype, IA_KEY, NULL); else key_UCharacter(ucs4, keytype, IA_KEY, NULL); } } /* * String action. */ void String_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; int len = 0; char *s; action_debug(String_action, event, params, num_params); reset_idle_timer(); /* Determine the total length of the strings. */ for (i = 0; i < *num_params; i++) len += strlen(params[i]); if (!len) return; /* Allocate a block of memory and copy them in. */ s = Malloc(len + 1); s[0] = '\0'; for (i = 0; i < *num_params; i++) { strcat(s, params[i]); } /* Set a pending string. */ ps_set(s, False); Free(s); } /* * HexString action. */ void HexString_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; int len = 0; char *s; char *t; action_debug(HexString_action, event, params, num_params); reset_idle_timer(); /* Determine the total length of the strings. */ for (i = 0; i < *num_params; i++) { t = params[i]; if (!strncmp(t, "0x", 2) || !strncmp(t, "0X", 2)) t += 2; len += strlen(t); } if (!len) return; /* Allocate a block of memory and copy them in. */ s = Malloc(len + 1); *s = '\0'; for (i = 0; i < *num_params; i++) { t = params[i]; if (!strncmp(t, "0x", 2) || !strncmp(t, "0X", 2)) t += 2; (void) strcat(s, t); } /* Set a pending string. */ ps_set(s, True); } /* * Dual-mode action for the "asciicircum" ("^") key: * If in ANSI mode, pass through untranslated. * If in 3270 mode, translate to "notsign". * This action is obsoleted by the use of 3270-mode and NVT-mode keymaps, but * is still defined here for backwards compatibility with old keymaps. */ void CircumNot_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(CircumNot_action, event, params, num_params); if (check_usage(CircumNot_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (IN_3270 && composing == NONE) key_UCharacter(0xac, KT_STD, IA_KEY, NULL); else key_UCharacter('^', KT_STD, IA_KEY, NULL); } /* PA key action for String actions */ static void do_pa(unsigned n) { if (n < 1 || n > PA_SZ) { popup_an_error("Unknown PA key %d", n); cancel_if_idle_command(); return; } if (kybdlock) { char nn[3]; (void) sprintf(nn, "%d", n); enq_ta(PA_action, nn, CN); return; } key_AID(pa_xlate[n-1]); } /* PF key action for String actions */ static void do_pf(unsigned n) { if (n < 1 || n > PF_SZ) { popup_an_error("Unknown PF key %d", n); cancel_if_idle_command(); return; } if (kybdlock) { char nn[3]; (void) sprintf(nn, "%d", n); enq_ta(PF_action, nn, CN); return; } key_AID(pf_xlate[n-1]); } /* * Set or clear the keyboard scroll lock. */ void kybd_scroll_lock(Boolean lock) { if (!IN_3270) return; if (lock) kybdlock_set(KL_SCROLLED, "kybd_scroll_lock"); else kybdlock_clr(KL_SCROLLED, "kybd_scroll_lock"); } /* * Move the cursor back within the legal paste area. * Returns a Boolean indicating success. */ static Boolean remargin(int lmargin) { Boolean ever = False; int baddr, b0 = 0; int faddr; unsigned char fa; baddr = cursor_addr; while (BA_TO_COL(baddr) < lmargin) { baddr = ROWCOL_TO_BA(BA_TO_ROW(baddr), lmargin); if (!ever) { b0 = baddr; ever = True; } faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (faddr == baddr || FA_IS_PROTECTED(fa)) { baddr = next_unprotected(baddr); if (baddr <= b0) return False; } } cursor_move(baddr); return True; } /* * Pretend that a sequence of keys was entered at the keyboard. * * "Pasting" means that the sequence came from the X clipboard. Returns are * ignored; newlines mean "move to beginning of next line"; tabs and formfeeds * become spaces. Backslashes are not special, but ASCII ESC characters are * used to signify 3270 Graphic Escapes. * * "Not pasting" means that the sequence is a login string specified in the * hosts file, or a parameter to the String action. Returns are "move to * beginning of next line"; newlines mean "Enter AID" and the termination of * processing the string. Backslashes are processed as in C. * * Returns the number of unprocessed characters. */ int emulate_uinput(ucs4_t *ws, int xlen, Boolean pasting) { enum { BASE, BACKSLASH, BACKX, BACKE, BACKP, BACKPA, BACKPF, OCTAL, HEX, EBC, XGE } state = BASE; int literal = 0; int nc = 0; enum iaction ia = pasting ? IA_PASTE : IA_STRING; int orig_addr = cursor_addr; int orig_col = BA_TO_COL(cursor_addr); Boolean skipped = False; ucs4_t c; /* * In the switch statements below, "break" generally means "consume * this character," while "continue" means "rescan this character." */ while (xlen) { /* * It isn't possible to unlock the keyboard from a string, * so if the keyboard is locked, it's fatal */ if (kybdlock) { trace_event(" keyboard locked, string dropped\n"); return 0; } if (pasting && IN_3270) { /* Check for cursor wrap to top of screen. */ if (cursor_addr < orig_addr) return xlen-1; /* wrapped */ /* Jump cursor over left margin. */ if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { if (!remargin(orig_col)) return xlen-1; skipped = True; } } c = *ws; switch (state) { case BASE: switch (c) { case '\b': action_internal(Left_action, ia, CN, CN); skipped = False; break; case '\f': if (pasting) { key_UCharacter(' ', KT_STD, ia, &skipped); } else { action_internal(Clear_action, ia, CN, CN); skipped = False; if (IN_3270) return xlen-1; } break; case '\n': if (pasting) { if (!skipped) action_internal(Newline_action, ia, CN, CN); skipped = False; } else { action_internal(Enter_action, ia, CN, CN); skipped = False; if (IN_3270) return xlen-1; } break; case '\r': if (!pasting) { action_internal(Newline_action, ia, CN, CN); skipped = False; } break; case '\t': action_internal(Tab_action, ia, CN, CN); skipped = False; break; case '\\': /* backslashes are NOT special when pasting */ if (!pasting) state = BACKSLASH; else key_UCharacter((unsigned char)c, KT_STD, ia, &skipped); break; case '\033': /* ESC is special only when pasting */ if (pasting) state = XGE; break; case '[': /* APL left bracket */ if (pasting && appres.apl_mode) key_UCharacter(XK_Yacute, KT_GE, ia, &skipped); else key_UCharacter((unsigned char)c, KT_STD, ia, &skipped); break; case ']': /* APL right bracket */ if (pasting && appres.apl_mode) key_UCharacter(XK_diaeresis, KT_GE, ia, &skipped); else key_UCharacter((unsigned char)c, KT_STD, ia, &skipped); break; case UPRIV_fm: /* private-use FM */ if (pasting) key_Character(EBC_fm, False, True, &skipped); break; case UPRIV_dup: /* private-use DUP */ if (pasting) key_Character(EBC_dup, False, True, &skipped); break; case UPRIV_eo: /* private-use EO */ if (pasting) key_Character(EBC_eo, False, True, &skipped); break; case UPRIV_sub: /* private-use SUB */ if (pasting) key_Character(EBC_sub, False, True, &skipped); break; default: if (pasting && (c >= UPRIV_GE_00 && c <= UPRIV_GE_ff)) key_Character(c - UPRIV_GE_00, KT_GE, ia, &skipped); else key_UCharacter(c, KT_STD, ia, &skipped); break; } break; case BACKSLASH: /* last character was a backslash */ switch (c) { case 'a': popup_an_error("%s: Bell not supported", action_name(String_action)); cancel_if_idle_command(); state = BASE; break; case 'b': action_internal(Left_action, ia, CN, CN); skipped = False; state = BASE; break; case 'f': action_internal(Clear_action, ia, CN, CN); skipped = False; state = BASE; if (IN_3270) return xlen-1; else break; case 'n': action_internal(Enter_action, ia, CN, CN); skipped = False; state = BASE; if (IN_3270) return xlen-1; else break; case 'p': state = BACKP; break; case 'r': action_internal(Newline_action, ia, CN, CN); skipped = False; state = BASE; break; case 't': action_internal(Tab_action, ia, CN, CN); skipped = False; state = BASE; break; case 'T': action_internal(BackTab_action, ia, CN, CN); skipped = False; state = BASE; break; case 'v': popup_an_error("%s: Vertical tab not supported", action_name(String_action)); cancel_if_idle_command(); state = BASE; break; case 'u': case 'x': state = BACKX; break; case 'e': state = BACKE; break; case '\\': key_UCharacter((unsigned char) c, KT_STD, ia, &skipped); state = BASE; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': state = OCTAL; literal = 0; nc = 0; continue; default: state = BASE; continue; } break; case BACKP: /* last two characters were "\p" */ switch (c) { case 'a': literal = 0; nc = 0; state = BACKPA; break; case 'f': literal = 0; nc = 0; state = BACKPF; break; default: popup_an_error("%s: Unknown character " "after \\p", action_name(String_action)); cancel_if_idle_command(); state = BASE; break; } break; case BACKPF: /* last three characters were "\pf" */ if (nc < 2 && isdigit(c)) { literal = (literal * 10) + (c - '0'); nc++; } else if (!nc) { popup_an_error("%s: Unknown character " "after \\pf", action_name(String_action)); cancel_if_idle_command(); state = BASE; } else { do_pf(literal); skipped = False; if (IN_3270) { return xlen; } state = BASE; continue; } break; case BACKPA: /* last three characters were "\pa" */ if (nc < 1 && isdigit(c)) { literal = (literal * 10) + (c - '0'); nc++; } else if (!nc) { popup_an_error("%s: Unknown character " "after \\pa", action_name(String_action)); cancel_if_idle_command(); state = BASE; } else { do_pa(literal); skipped = False; if (IN_3270) return xlen-1; state = BASE; continue; } break; case BACKX: /* last two characters were "\x" or "\u" */ if (isxdigit(c)) { state = HEX; literal = 0; nc = 0; continue; } else { popup_an_error("%s: Missing hex digits after \\x", action_name(String_action)); cancel_if_idle_command(); state = BASE; continue; } case BACKE: /* last two characters were "\e" */ if (isxdigit(c)) { state = EBC; literal = 0; nc = 0; continue; } else { popup_an_error("%s: Missing hex digits after \\e", action_name(String_action)); cancel_if_idle_command(); state = BASE; continue; } case OCTAL: /* have seen \ and one or more octal digits */ if (nc < 3 && isdigit(c) && c < '8') { literal = (literal * 8) + FROM_HEX(c); nc++; break; } else { key_UCharacter((unsigned char) literal, KT_STD, ia, &skipped); state = BASE; continue; } case HEX: /* have seen \x and one or more hex digits */ if (nc < 4 && isxdigit(c)) { literal = (literal * 16) + FROM_HEX(c); nc++; break; } else { key_UCharacter((unsigned char) literal, KT_STD, ia, &skipped); state = BASE; continue; } case EBC: /* have seen \e and one or more hex digits */ if (nc < 4 && isxdigit(c)) { literal = (literal * 16) + FROM_HEX(c); nc++; break; } else { trace_event(" %s -> Key(X'%02X')\n", ia_name[(int) ia], literal); if (!(literal & ~0xff)) key_Character((unsigned char) literal, False, True, &skipped); else { #if defined(X3270_DBCS) /*[*/ unsigned char code[2]; code[0] = (literal >> 8) & 0xff; code[1] = literal & 0xff; key_WCharacter(code, &skipped); #else /*][*/ popup_an_error("%s: EBCDIC code > 255", action_name(String_action)); cancel_if_idle_command(); #endif /*]*/ } state = BASE; continue; } case XGE: /* have seen ESC */ switch (c) { case ';': /* FM */ key_Character(EBC_fm, False, True, &skipped); break; case '*': /* DUP */ key_Character(EBC_dup, False, True, &skipped); break; default: key_UCharacter((unsigned char) c, KT_GE, ia, &skipped); break; } state = BASE; break; } ws++; xlen--; } switch (state) { case BASE: if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { (void) remargin(orig_col); } break; case OCTAL: case HEX: key_UCharacter((unsigned char) literal, KT_STD, ia, &skipped); state = BASE; if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { (void) remargin(orig_col); } break; case EBC: /* XXX: line below added after 3.3.7p7 */ trace_event(" %s -> Key(X'%02X')\n", ia_name[(int) ia], literal); key_Character((unsigned char) literal, False, True, &skipped); state = BASE; if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { (void) remargin(orig_col); } break; case BACKPF: if (nc > 0) { do_pf(literal); state = BASE; } break; case BACKPA: if (nc > 0) { do_pa(literal); state = BASE; } break; default: popup_an_error("%s: Missing data after \\", action_name(String_action)); cancel_if_idle_command(); break; } return xlen; } /* Multibyte version of emulate_uinput. */ int emulate_input(char *s, int len, Boolean pasting) { static ucs4_t *w_ibuf = NULL; static size_t w_ibuf_len = 0; int xlen; /* Convert from a multi-byte string to a Unicode string. */ if ((size_t)(len + 1) > w_ibuf_len) { w_ibuf_len = len + 1; w_ibuf = (ucs4_t *)Realloc(w_ibuf, w_ibuf_len * sizeof(ucs4_t)); } xlen = multibyte_to_unicode_string(s, len, w_ibuf, w_ibuf_len); if (xlen < 0) { return 0; /* failed */ } /* Process it as Unicode. */ return emulate_uinput(w_ibuf, xlen, pasting); } /* * Pretend that a sequence of hexadecimal characters was entered at the * keyboard. The input is a sequence of hexadecimal bytes, 2 characters * per byte. If connected in ANSI mode, these are treated as ASCII * characters; if in 3270 mode, they are considered EBCDIC. * * Graphic Escapes are handled as \E. */ void hex_input(char *s) { char *t; Boolean escaped; #if defined(X3270_ANSI) /*[*/ unsigned char *xbuf = (unsigned char *)NULL; unsigned char *tbuf = (unsigned char *)NULL; int nbytes = 0; #endif /*]*/ /* Validate the string. */ if (strlen(s) % 2) { popup_an_error("%s: Odd number of characters in specification", action_name(HexString_action)); cancel_if_idle_command(); return; } t = s; escaped = False; while (*t) { if (isxdigit(*t) && isxdigit(*(t + 1))) { escaped = False; #if defined(X3270_ANSI) /*[*/ nbytes++; #endif /*]*/ } else if (!strncmp(t, "\\E", 2) || !strncmp(t, "\\e", 2)) { if (escaped) { popup_an_error("%s: Double \\E", action_name(HexString_action)); cancel_if_idle_command(); return; } if (!IN_3270) { popup_an_error("%s: \\E in ANSI mode", action_name(HexString_action)); cancel_if_idle_command(); return; } escaped = True; } else { popup_an_error("%s: Illegal character in specification", action_name(HexString_action)); cancel_if_idle_command(); return; } t += 2; } if (escaped) { popup_an_error("%s: Nothing follows \\E", action_name(HexString_action)); cancel_if_idle_command(); return; } #if defined(X3270_ANSI) /*[*/ /* Allocate a temporary buffer. */ if (!IN_3270 && nbytes) tbuf = xbuf = (unsigned char *)Malloc(nbytes); #endif /*]*/ /* Pump it in. */ t = s; escaped = False; while (*t) { if (isxdigit(*t) && isxdigit(*(t + 1))) { unsigned c; c = (FROM_HEX(*t) * 16) + FROM_HEX(*(t + 1)); if (IN_3270) key_Character(c, escaped, True, NULL); #if defined(X3270_ANSI) /*[*/ else *tbuf++ = (unsigned char)c; #endif /*]*/ escaped = False; } else if (!strncmp(t, "\\E", 2) || !strncmp(t, "\\e", 2)) { escaped = True; } t += 2; } #if defined(X3270_ANSI) /*[*/ if (!IN_3270 && nbytes) { net_hexansi_out(xbuf, nbytes); Free(xbuf); } #endif /*]*/ } void ignore_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(ignore_action, event, params, num_params); reset_idle_timer(); } #if defined(X3270_FT) /*[*/ /* * Set up the cursor and input field for command input. * Returns the length of the input field, or 0 if there is no field * to set up. */ int kybd_prime(void) { int baddr; register unsigned char fa; int len = 0; /* * No point in trying if the screen isn't formatted, the keyboard * is locked, or we aren't in 3270 mode. */ if (!formatted || kybdlock || !IN_3270) return 0; fa = get_field_attribute(cursor_addr); if (ea_buf[cursor_addr].fa || FA_IS_PROTECTED(fa)) { /* * The cursor is not in an unprotected field. Find the * next one. */ baddr = next_unprotected(cursor_addr); /* If there isn't any, give up. */ if (!baddr) return 0; /* Move the cursor there. */ } else { /* Already in an unprotected field. Find its start. */ baddr = cursor_addr; while (!ea_buf[baddr].fa) { DEC_BA(baddr); } INC_BA(baddr); } /* Move the cursor to the beginning of the field. */ cursor_move(baddr); /* Erase it. */ while (!ea_buf[baddr].fa) { ctlr_add(baddr, 0, 0); len++; INC_BA(baddr); } /* Return the field length. */ return len; } #endif /*]*/ /* * Translate a keysym name to a keysym, including APL and extended * characters. */ static KeySym MyStringToKeysym(char *s, enum keytype *keytypep, ucs4_t *ucs4) { KeySym k; int consumed; enum me_fail error; /* No UCS-4 yet. */ *ucs4 = 0L; #if defined(X3270_APL) /*[*/ /* Look for my contrived APL symbols. */ if (!strncmp(s, "apl_", 4)) { int is_ge; k = APLStringToKeysym(s, &is_ge); if (is_ge) *keytypep = KT_GE; else *keytypep = KT_STD; return k; } else #endif /*]*/ { /* Look for a standard X11 keysym. */ k = StringToKeysym(s); *keytypep = KT_STD; if (k != NoSymbol) return k; } /* Look for "euro". */ if (!strcasecmp(s, "euro")) { *ucs4 = 0x20ac; return NoSymbol; } /* Look for U+nnnn of 0xXXXX. */ if (!strncasecmp(s, "U+", 2) || !strncasecmp(s, "0x", 2)) { *ucs4 = strtoul(s + 2, NULL, 16); return NoSymbol; } /* Look for a valid local multibyte character. */ *ucs4 = multibyte_to_unicode(s, strlen(s), &consumed, &error); if ((size_t)consumed != strlen(s)) *ucs4 = 0; return NoSymbol; } #if defined(X3270_DISPLAY) /*[*/ /* * X-dependent code starts here. */ /* * Translate a keymap (from an XQueryKeymap or a KeymapNotify event) into * a bitmap of Shift, Meta or Alt keys pressed. */ #define key_is_down(kc, bitmap) (kc && ((bitmap)[(kc)/8] & (1<<((kc)%8)))) int state_from_keymap(char keymap[32]) { static Boolean initted = False; static KeyCode kc_Shift_L, kc_Shift_R; static KeyCode kc_Meta_L, kc_Meta_R; static KeyCode kc_Alt_L, kc_Alt_R; int pseudo_state = 0; if (!initted) { kc_Shift_L = XKeysymToKeycode(display, XK_Shift_L); kc_Shift_R = XKeysymToKeycode(display, XK_Shift_R); kc_Meta_L = XKeysymToKeycode(display, XK_Meta_L); kc_Meta_R = XKeysymToKeycode(display, XK_Meta_R); kc_Alt_L = XKeysymToKeycode(display, XK_Alt_L); kc_Alt_R = XKeysymToKeycode(display, XK_Alt_R); initted = True; } if (key_is_down(kc_Shift_L, keymap) || key_is_down(kc_Shift_R, keymap)) pseudo_state |= ShiftKeyDown; if (key_is_down(kc_Meta_L, keymap) || key_is_down(kc_Meta_R, keymap)) pseudo_state |= MetaKeyDown; if (key_is_down(kc_Alt_L, keymap) || key_is_down(kc_Alt_R, keymap)) pseudo_state |= AltKeyDown; return pseudo_state; } #undef key_is_down /* * Process shift keyboard events. The code has to look for the raw Shift keys, * rather than using the handy "state" field in the event structure. This is * because the event state is the state _before_ the key was pressed or * released. This isn't enough information to distinguish between "left * shift released" and "left shift released, right shift still held down" * events, for example. * * This function is also called as part of Focus event processing. */ void PA_Shift_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { char keys[32]; #if defined(INTERNAL_ACTION_DEBUG) /*[*/ action_debug(PA_Shift_action, event, params, num_params); #endif /*]*/ XQueryKeymap(display, keys); shift_event(state_from_keymap(keys)); } #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ static Boolean build_composites(void) { char *c, *c0, *c1; char *ln; char ksname[3][64]; char junk[2]; KeySym k[3]; enum keytype a[3]; int i; struct composite *cp; if (appres.compose_map == CN) { popup_an_error("%s: No %s defined", action_name(Compose_action), ResComposeMap); return False; } c0 = get_fresource("%s.%s", ResComposeMap, appres.compose_map); if (c0 == CN) { popup_an_error("%s: Cannot find %s \"%s\"", action_name(Compose_action), ResComposeMap, appres.compose_map); return False; } c1 = c = NewString(c0); /* will be modified by strtok */ while ((ln = strtok(c, "\n"))) { Boolean okay = True; c = NULL; if (sscanf(ln, " %63[^+ \t] + %63[^= \t] =%63s%1s", ksname[0], ksname[1], ksname[2], junk) != 3) { popup_an_error("%s: Invalid syntax: %s", action_name(Compose_action), ln); continue; } for (i = 0; i < 3; i++) { ucs4_t ucs4; k[i] = MyStringToKeysym(ksname[i], &a[i], &ucs4); if (k[i] == NoSymbol) { /* For now, ignore UCS4. XXX: Fix this. */ popup_an_error("%s: Invalid KeySym: \"%s\"", action_name(Compose_action), ksname[i]); okay = False; break; } } if (!okay) continue; composites = (struct composite *) Realloc((char *)composites, (n_composites + 1) * sizeof(struct composite)); cp = composites + n_composites; cp->k1.keysym = k[0]; cp->k1.keytype = a[0]; cp->k2.keysym = k[1]; cp->k2.keytype = a[1]; cp->translation.keysym = k[2]; cp->translation.keytype = a[2]; n_composites++; } Free(c1); return True; } /* * Called by the toolkit when the "Compose" key is pressed. "Compose" is * implemented by pressing and releasing three keys: "Compose" and two * data keys. For example, "Compose" "s" "s" gives the German "ssharp" * character, and "Compose" "C", "," gives a capital "C" with a cedilla * (symbol Ccedilla). * * The mechanism breaks down a little when the user presses "Compose" and * then a non-data key. Oh well. */ void Compose_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Compose_action, event, params, num_params); if (check_usage(Compose_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (!composites && !build_composites()) return; if (composing == NONE) { composing = COMPOSE; status_compose(True, 0, KT_STD); } } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* * Called by the toolkit for any key without special actions. */ void Default_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { XKeyEvent *kevent = (XKeyEvent *)event; char buf[32]; KeySym ks; int ll; action_debug(Default_action, event, params, num_params); if (check_usage(Default_action, *num_params, 0, 0) < 0) return; switch (event->type) { case KeyPress: #if defined(X3270_DBCS) /*[*/ if (!xim_lookup((XKeyEvent *)event)) return; #endif /*]*/ ll = XLookupString(kevent, buf, 32, &ks, (XComposeStatus *) 0); buf[ll] = '\0'; if (ll > 1) { key_ACharacter(buf, KT_STD, IA_DEFAULT, NULL); return; } if (ll == 1) { /* Remap certain control characters. */ if (!IN_ANSI) switch (buf[0]) { case '\t': action_internal(Tab_action, IA_DEFAULT, CN, CN); break; case '\177': action_internal(Delete_action, IA_DEFAULT, CN, CN); break; case '\b': action_internal(Erase_action, IA_DEFAULT, CN, CN); break; case '\r': action_internal(Enter_action, IA_DEFAULT, CN, CN); break; case '\n': action_internal(Newline_action, IA_DEFAULT, CN, CN); break; default: key_ACharacter(buf, KT_STD, IA_DEFAULT, NULL); break; } else { key_ACharacter(buf, KT_STD, IA_DEFAULT, NULL); } return; } /* Pick some other reasonable defaults. */ switch (ks) { case XK_Up: action_internal(Up_action, IA_DEFAULT, CN, CN); break; case XK_Down: action_internal(Down_action, IA_DEFAULT, CN, CN); break; case XK_Left: action_internal(Left_action, IA_DEFAULT, CN, CN); break; case XK_Right: action_internal(Right_action, IA_DEFAULT, CN, CN); break; case XK_Insert: #if defined(XK_KP_Insert) /*[*/ case XK_KP_Insert: #endif /*]*/ action_internal(Insert_action, IA_DEFAULT, CN, CN); break; case XK_Delete: action_internal(Delete_action, IA_DEFAULT, CN, CN); break; case XK_Home: action_internal(Home_action, IA_DEFAULT, CN, CN); break; case XK_Tab: action_internal(Tab_action, IA_DEFAULT, CN, CN); break; #if defined(XK_ISO_Left_Tab) /*[*/ case XK_ISO_Left_Tab: action_internal(BackTab_action, IA_DEFAULT, CN, CN); break; #endif /*]*/ case XK_Clear: action_internal(Clear_action, IA_DEFAULT, CN, CN); break; case XK_Sys_Req: action_internal(SysReq_action, IA_DEFAULT, CN, CN); break; #if defined(XK_EuroSign) /*[*/ case XK_EuroSign: action_internal(Key_action, IA_DEFAULT, "currency", CN); break; #endif /*]*/ #if defined(XK_3270_Duplicate) /*[*/ /* Funky 3270 keysyms. */ case XK_3270_Duplicate: action_internal(Dup_action, IA_DEFAULT, CN, CN); break; case XK_3270_FieldMark: action_internal(FieldMark_action, IA_DEFAULT, CN, CN); break; case XK_3270_Right2: action_internal(Right2_action, IA_DEFAULT, CN, CN); break; case XK_3270_Left2: action_internal(Left2_action, IA_DEFAULT, CN, CN); break; case XK_3270_BackTab: action_internal(BackTab_action, IA_DEFAULT, CN, CN); break; case XK_3270_EraseEOF: action_internal(EraseEOF_action, IA_DEFAULT, CN, CN); break; case XK_3270_EraseInput: action_internal(EraseInput_action, IA_DEFAULT, CN, CN); break; case XK_3270_Reset: action_internal(Reset_action, IA_DEFAULT, CN, CN); break; case XK_3270_PA1: action_internal(PA_action, IA_DEFAULT, "1", CN); break; case XK_3270_PA2: action_internal(PA_action, IA_DEFAULT, "2", CN); break; case XK_3270_PA3: action_internal(PA_action, IA_DEFAULT, "3", CN); break; case XK_3270_Attn: action_internal(Attn_action, IA_DEFAULT, CN, CN); break; case XK_3270_AltCursor: action_internal(AltCursor_action, IA_DEFAULT, CN, CN); break; case XK_3270_CursorSelect: action_internal(CursorSelect_action, IA_DEFAULT, CN, CN); break; case XK_3270_Enter: action_internal(Enter_action, IA_DEFAULT, CN, CN); break; #endif /*]*/ #if defined(X3270_APL) /*[*/ /* Funky APL keysyms. */ case XK_downcaret: action_internal(Key_action, IA_DEFAULT, "apl_downcaret", CN); break; case XK_upcaret: action_internal(Key_action, IA_DEFAULT, "apl_upcaret", CN); break; case XK_overbar: action_internal(Key_action, IA_DEFAULT, "apl_overbar", CN); break; case XK_downtack: action_internal(Key_action, IA_DEFAULT, "apl_downtack", CN); break; case XK_upshoe: action_internal(Key_action, IA_DEFAULT, "apl_upshoe", CN); break; case XK_downstile: action_internal(Key_action, IA_DEFAULT, "apl_downstile", CN); break; case XK_underbar: action_internal(Key_action, IA_DEFAULT, "apl_underbar", CN); break; case XK_jot: action_internal(Key_action, IA_DEFAULT, "apl_jot", CN); break; case XK_quad: action_internal(Key_action, IA_DEFAULT, "apl_quad", CN); break; case XK_uptack: action_internal(Key_action, IA_DEFAULT, "apl_uptack", CN); break; case XK_circle: action_internal(Key_action, IA_DEFAULT, "apl_circle", CN); break; case XK_upstile: action_internal(Key_action, IA_DEFAULT, "apl_upstile", CN); break; case XK_downshoe: action_internal(Key_action, IA_DEFAULT, "apl_downshoe", CN); break; case XK_rightshoe: action_internal(Key_action, IA_DEFAULT, "apl_rightshoe", CN); break; case XK_leftshoe: action_internal(Key_action, IA_DEFAULT, "apl_leftshoe", CN); break; case XK_lefttack: action_internal(Key_action, IA_DEFAULT, "apl_lefttack", CN); break; case XK_righttack: action_internal(Key_action, IA_DEFAULT, "apl_righttack", CN); break; #endif /*]*/ default: if (ks >= XK_F1 && ks <= XK_F24) { (void) sprintf(buf, "%ld", ks - XK_F1 + 1); action_internal(PF_action, IA_DEFAULT, buf, CN); } else { ucs4_t ucs4; ucs4 = keysym2ucs(ks); if (ucs4 != (ucs4_t)-1) { key_UCharacter(ucs4, KT_STD, IA_KEY, NULL); } else { trace_event( " %s: dropped (unknown keysym)\n", action_name(Default_action)); } } break; } break; case ButtonPress: case ButtonRelease: trace_event(" %s: dropped (no action configured)\n", action_name(Default_action)); break; default: trace_event(" %s: dropped (unknown event type)\n", action_name(Default_action)); break; } } /* * Set or clear a temporary keymap. * * TemporaryKeymap(x) toggle keymap "x" (add "x" to the keymap, or if * "x" was already added, remove it) * TemporaryKeymap() removes the previous keymap, if any * TemporaryKeymap(None) removes the previous keymap, if any */ void TemporaryKeymap_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(TemporaryKeymap_action, event, params, num_params); reset_idle_timer(); if (check_usage(TemporaryKeymap_action, *num_params, 0, 1) < 0) return; if (*num_params == 0 || !strcmp(params[0], "None")) { (void) temporary_keymap(CN); return; } if (temporary_keymap(params[0]) < 0) { popup_an_error("%s: Can't find %s %s", action_name(TemporaryKeymap_action), ResKeymap, params[0]); cancel_if_idle_command(); } } #endif /*]*/ ibm-3270-3.3.10ga4/c3270/telnet.c0000644000175000017500000023661011254565704015374 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, * GA 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC * nor their contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES AND * GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, * DON RUSSELL, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * telnet.c * This module initializes and manages a telnet socket to * the given IBM host. */ #include "globals.h" #if defined(_WIN32) /*[*/ #include #include #else /*][*/ #include #include #include #endif /*]*/ #define TELCMDS 1 #define TELOPTS 1 #include "arpa_telnet.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #if defined(HAVE_LIBSSL) /*[*/ #include #include #endif /*]*/ #include "tn3270e.h" #include "3270ds.h" #include "appres.h" #include "ansic.h" #include "ctlrc.h" #include "hostc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "proxyc.h" #include "resolverc.h" #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include "w3miscc.h" #include "xioc.h" #if !defined(TELOPT_NAWS) /*[*/ #define TELOPT_NAWS 31 #endif /*]*/ #if !defined(TELOPT_STARTTLS) /*[*/ #define TELOPT_STARTTLS 46 #endif /*]*/ #define TLS_FOLLOWS 1 #define BUFSZ 16384 #define TRACELINE 72 #define N_OPTS 256 /* Globals */ char *hostname = CN; time_t ns_time; int ns_brcvd; int ns_rrcvd; int ns_bsent; int ns_rsent; unsigned char *obuf; /* 3270 output buffer */ unsigned char *obptr = (unsigned char *) NULL; int linemode = 1; #if defined(LOCAL_PROCESS) /*[*/ Boolean local_process = False; #endif /*]*/ char *termtype; /* Externals */ extern struct timeval ds_ts; /* Statics */ static int sock = -1; /* active socket */ #if defined(_WIN32) /*[*/ static HANDLE sock_handle = NULL; #endif /*]*/ static unsigned char myopts[N_OPTS], hisopts[N_OPTS]; /* telnet option flags */ static unsigned char *ibuf = (unsigned char *) NULL; /* 3270 input buffer */ static unsigned char *ibptr; static int ibuf_size = 0; /* size of ibuf */ static unsigned char *obuf_base = (unsigned char *)NULL; static int obuf_size = 0; static unsigned char *netrbuf = (unsigned char *)NULL; /* network input buffer */ static unsigned char *sbbuf = (unsigned char *)NULL; /* telnet sub-option buffer */ static unsigned char *sbptr; static unsigned char telnet_state; static int syncing; #if !defined(_WIN32) /*[*/ static unsigned long output_id = 0L; #endif /*]*/ static char ttype_tmpval[13]; #if defined(X3270_TN3270E) /*[*/ static unsigned long e_funcs; /* negotiated TN3270E functions */ #define E_OPT(n) (1 << (n)) static unsigned short e_xmit_seq; /* transmit sequence number */ static int response_required; #endif /*]*/ #if defined(X3270_ANSI) /*[*/ static int ansi_data = 0; static unsigned char *lbuf = (unsigned char *)NULL; /* line-mode input buffer */ static unsigned char *lbptr; static int lnext = 0; static int backslashed = 0; static int t_valid = 0; static char vintr; static char vquit; static char verase; static char vkill; static char veof; static char vwerase; static char vrprnt; static char vlnext; #endif /*]*/ static int tn3270e_negotiated = 0; static enum { E_NONE, E_3270, E_NVT, E_SSCP } tn3270e_submode = E_NONE; static int tn3270e_bound = 0; static unsigned char *bind_image = NULL; static int bind_image_len = 0; static char *plu_name = NULL; static int maxru_sec = 0; static int maxru_pri = 0; static int bind_rd = 0; static int bind_cd = 0; static int bind_ra = 0; static int bind_ca = 0; static char **lus = (char **)NULL; static char **curr_lu = (char **)NULL; static char *try_lu = CN; static int proxy_type = 0; static char *proxy_host = CN; static char *proxy_portname = CN; static unsigned short proxy_port = 0; static int telnet_fsm(unsigned char c); static void net_rawout(unsigned const char *buf, int len); static void check_in3270(void); static void store3270in(unsigned char c); static void check_linemode(Boolean init); static int non_blocking(Boolean on); static void net_connected(void); #if defined(X3270_TN3270E) /*[*/ static int tn3270e_negotiate(void); #endif /*]*/ static int process_eor(void); #if defined(X3270_TN3270E) /*[*/ #if defined(X3270_TRACE) /*[*/ static const char *tn3270e_function_names(const unsigned char *, int); #endif /*]*/ static void tn3270e_subneg_send(unsigned char, unsigned long); static unsigned long tn3270e_fdecode(const unsigned char *, int); static void tn3270e_ack(void); static void tn3270e_nak(enum pds); #endif /*]*/ #if defined(X3270_ANSI) /*[*/ static void do_data(char c); static void do_intr(char c); static void do_quit(char c); static void do_cerase(char c); static void do_werase(char c); static void do_kill(char c); static void do_rprnt(char c); static void do_eof(char c); static void do_eol(char c); static void do_lnext(char c); static char parse_ctlchar(char *s); static void cooked_init(void); #endif /*]*/ #if defined(X3270_TRACE) /*[*/ static const char *cmd(int c); static const char *opt(unsigned char c); static const char *nnn(int c); #else /*][*/ #if defined(__GNUC__) /*[*/ #else /*][*/ #endif /*]*/ #define cmd(x) 0 #define opt(x) 0 #define nnn(x) 0 #endif /*]*/ /* telnet states */ #define TNS_DATA 0 /* receiving data */ #define TNS_IAC 1 /* got an IAC */ #define TNS_WILL 2 /* got an IAC WILL */ #define TNS_WONT 3 /* got an IAC WONT */ #define TNS_DO 4 /* got an IAC DO */ #define TNS_DONT 5 /* got an IAC DONT */ #define TNS_SB 6 /* got an IAC SB */ #define TNS_SB_IAC 7 /* got an IAC after an IAC SB */ /* telnet predefined messages */ static unsigned char do_opt[] = { IAC, DO, '_' }; static unsigned char dont_opt[] = { IAC, DONT, '_' }; static unsigned char will_opt[] = { IAC, WILL, '_' }; static unsigned char wont_opt[] = { IAC, WONT, '_' }; #if defined(X3270_TN3270E) /*[*/ static unsigned char functions_req[] = { IAC, SB, TELOPT_TN3270E, TN3270E_OP_FUNCTIONS }; #endif /*]*/ #if defined(X3270_TRACE) /*[*/ static const char *telquals[2] = { "IS", "SEND" }; #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ #if defined(X3270_TRACE) /*[*/ static const char *reason_code[8] = { "CONN-PARTNER", "DEVICE-IN-USE", "INV-ASSOCIATE", "INV-NAME", "INV-DEVICE-TYPE", "TYPE-NAME-ERROR", "UNKNOWN-ERROR", "UNSUPPORTED-REQ" }; #define rsn(n) (((n) <= TN3270E_REASON_UNSUPPORTED_REQ) ? \ reason_code[(n)] : "??") #endif /*]*/ static const char *function_name[5] = { "BIND-IMAGE", "DATA-STREAM-CTL", "RESPONSES", "SCS-CTL-CODES", "SYSREQ" }; #define fnn(n) (((n) <= TN3270E_FUNC_SYSREQ) ? \ function_name[(n)] : "??") #if defined(X3270_TRACE) /*[*/ static const char *data_type[9] = { "3270-DATA", "SCS-DATA", "RESPONSE", "BIND-IMAGE", "UNBIND", "NVT-DATA", "REQUEST", "SSCP-LU-DATA", "PRINT-EOJ" }; #define e_dt(n) (((n) <= TN3270E_DT_PRINT_EOJ) ? \ data_type[(n)] : "??") static const char *req_flag[1] = { " ERR-COND-CLEARED" }; #define e_rq(fn, n) (((fn) == TN3270E_DT_REQUEST) ? \ (((n) <= TN3270E_RQF_ERR_COND_CLEARED) ? \ req_flag[(n)] : " ??") : "") static const char *hrsp_flag[3] = { "NO-RESPONSE", "ERROR-RESPONSE", "ALWAYS-RESPONSE" }; #define e_hrsp(n) (((n) <= TN3270E_RSF_ALWAYS_RESPONSE) ? \ hrsp_flag[(n)] : "??") static const char *trsp_flag[2] = { "POSITIVE-RESPONSE", "NEGATIVE-RESPONSE" }; #define e_trsp(n) (((n) <= TN3270E_RSF_NEGATIVE_RESPONSE) ? \ trsp_flag[(n)] : "??") #define e_rsp(fn, n) (((fn) == TN3270E_DT_RESPONSE) ? e_trsp(n) : e_hrsp(n)) #endif /*]*/ #endif /*]*/ #if defined(C3270) && defined(C3270_80_132) /*[*/ #define XMIT_ROWS ((appres.altscreen != CN)? MODEL_2_ROWS: maxROWS) #define XMIT_COLS ((appres.altscreen != CN)? MODEL_2_COLS: maxCOLS) #else /*][*/ #define XMIT_ROWS maxROWS #define XMIT_COLS maxCOLS #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ Boolean secure_connection = False; static SSL_CTX *ssl_ctx; static SSL *ssl_con; static Boolean need_tls_follows = False; static void ssl_init(void); #if OPENSSL_VERSION_NUMBER >= 0x00907000L /*[*/ #define INFO_CONST const #else /*][*/ #define INFO_CONST #endif /*]*/ static void client_info_callback(INFO_CONST SSL *s, int where, int ret); static void continue_tls(unsigned char *sbbuf, int len); #endif /*]*/ #if !defined(_WIN32) /*[*/ static void output_possible(void); #endif /*]*/ #if defined(_WIN32) /*[*/ #define socket_errno() WSAGetLastError() #define SE_EWOULDBLOCK WSAEWOULDBLOCK #define SE_ECONNRESET WSAECONNRESET #define SE_EINTR WSAEINTR #define SE_EAGAIN WSAEINPROGRESS #define SE_EPIPE WSAECONNABORTED #define SE_EINPROGRESS WSAEINPROGRESS #define SOCK_CLOSE(s) closesocket(s) #define SOCK_IOCTL(s, f, v) ioctlsocket(s, f, (DWORD *)v) #else /*][*/ #define socket_errno() errno #define SE_EWOULDBLOCK EWOULDBLOCK #define SE_ECONNRESET ECONNRESET #define SE_EINTR EINTR #define SE_EAGAIN EAGAIN #define SE_EPIPE EPIPE #if defined(EINPROGRESS) /*[*/ #define SE_EINPROGRESS EINPROGRESS #endif /*]*/ #define SOCK_CLOSE(s) close(s) #define SOCK_IOCTL ioctl #endif /*]*/ #define NUM_HA 4 static union { struct sockaddr sa; struct sockaddr_in sin; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sin6; #endif /*]*/ } haddr[4]; static socklen_t ha_len[NUM_HA] = { sizeof(haddr[0]), sizeof(haddr[0]), sizeof(haddr[0]), sizeof(haddr[0]) }; static int num_ha = 0; static int ha_ix = 0; #if defined(_WIN32) /*[*/ void popup_a_sockerr(char *fmt, ...) { va_list args; char buffer[4096]; va_start(args, fmt); vsprintf(buffer, fmt, args); va_end(args); popup_an_error("%s: %s", buffer, win32_strerror(socket_errno())); } #else /*][*/ void popup_a_sockerr(char *fmt, ...) { va_list args; char buffer[4096]; va_start(args, fmt); vsprintf(buffer, fmt, args); va_end(args); popup_an_errno(errno, "%s", buffer); } #endif /*]*/ /* Connect to one of the addresses in haddr[]. */ static int connect_to(int ix, Boolean noisy, Boolean *pending) { int on = 1; char hn[256]; char pn[256]; char errmsg[1024]; #if defined(OMTU) /*[*/ int mtu = OMTU; #endif /*]*/ # define close_fail { (void) SOCK_CLOSE(sock); sock = -1; return -1; } /* create the socket */ if ((sock = socket(haddr[ix].sa.sa_family, SOCK_STREAM, 0)) == -1) { popup_a_sockerr("socket"); return -1; } /* set options for inline out-of-band data and keepalives */ if (setsockopt(sock, SOL_SOCKET, SO_OOBINLINE, (char *)&on, sizeof(on)) < 0) { popup_a_sockerr("setsockopt(SO_OOBINLINE)"); close_fail; } if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (char *)&on, sizeof(on)) < 0) { popup_a_sockerr("setsockopt(SO_KEEPALIVE)"); close_fail; } #if defined(OMTU) /*[*/ if (setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (char *)&mtu, sizeof(mtu)) < 0) { popup_a_sockerr("setsockopt(SO_SNDBUF)"); close_fail; } #endif /*]*/ /* set the socket to be non-delaying */ #if defined(_WIN32) /*[*/ if (non_blocking(False) < 0) #else /*][*/ if (non_blocking(True) < 0) #endif /*]*/ close_fail; #if !defined(_WIN32) /*[*/ /* don't share the socket with our children */ (void) fcntl(sock, F_SETFD, 1); #endif /*]*/ /* init ssl */ #if defined(HAVE_LIBSSL) /*[*/ if (ssl_host) ssl_init(); #endif /*]*/ if (numeric_host_and_port(&haddr[ix].sa, ha_len[ix], hn, sizeof(hn), pn, sizeof(pn), errmsg, sizeof(errmsg)) == 0) { trace_dsn("Trying %s, port %s...\n", hn, pn); #if defined(C3270) /*[*/ printf("Trying %s, port %s...\n", hn, pn); fflush(stdout); #endif /*]*/ } /* connect */ if (connect(sock, &haddr[ix].sa, ha_len[ix]) == -1) { if (socket_errno() == SE_EWOULDBLOCK #if defined(SE_EINPROGRESS) /*[*/ || socket_errno() == SE_EINPROGRESS #endif /*]*/ ) { trace_dsn("Connection pending.\n"); *pending = True; #if !defined(_WIN32) /*[*/ output_id = AddOutput(sock, output_possible); #endif /*]*/ } else { if (noisy) popup_a_sockerr("Connect to %s, port %d", hostname, current_port); close_fail; } } else { if (non_blocking(False) < 0) close_fail; net_connected(); } /* all done */ #if defined(_WIN32) /*[*/ if (sock_handle == NULL) { char ename[256]; sprintf(ename, "wc3270-%d", getpid()); sock_handle = CreateEvent(NULL, TRUE, FALSE, ename); if (sock_handle == NULL) { fprintf(stderr, "Cannot create socket handle: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } } if (WSAEventSelect(sock, sock_handle, FD_READ | FD_CONNECT | FD_CLOSE) != 0) { fprintf(stderr, "WSAEventSelect failed: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } return (int)sock_handle; #else /*][*/ return sock; #endif /*]*/ } /* * net_connect * Establish a telnet socket to the given host passed as an argument. * Called only once and is responsible for setting up the telnet * variables. Returns the file descriptor of the connected socket. */ int net_connect(const char *host, char *portname, Boolean ls, Boolean *resolving, Boolean *pending) { struct servent *sp; struct hostent *hp; char passthru_haddr[8]; int passthru_len = 0; unsigned short passthru_port = 0; char errmsg[1024]; int s; if (netrbuf == (unsigned char *)NULL) netrbuf = (unsigned char *)Malloc(BUFSZ); #if defined(X3270_ANSI) /*[*/ if (!t_valid) { vintr = parse_ctlchar(appres.intr); vquit = parse_ctlchar(appres.quit); verase = parse_ctlchar(appres.erase); vkill = parse_ctlchar(appres.kill); veof = parse_ctlchar(appres.eof); vwerase = parse_ctlchar(appres.werase); vrprnt = parse_ctlchar(appres.rprnt); vlnext = parse_ctlchar(appres.lnext); t_valid = 1; } #endif /*]*/ *resolving = False; *pending = False; Replace(hostname, NewString(host)); /* set up temporary termtype */ if (appres.termname == CN) { if (std_ds_host) { (void) sprintf(ttype_tmpval, "IBM-327%c-%d", appres.m3279 ? '9' : '8', model_num); termtype = ttype_tmpval; } else { termtype = full_model_name; } } /* get the passthru host and port number */ if (passthru_host) { const char *hn; hn = getenv("INTERNET_HOST"); if (hn == CN) hn = "internet-gateway"; hp = gethostbyname(hn); if (hp == (struct hostent *) 0) { popup_an_error("Unknown passthru host: %s", hn); return -1; } (void) memmove(passthru_haddr, hp->h_addr, hp->h_length); passthru_len = hp->h_length; sp = getservbyname("telnet-passthru","tcp"); if (sp != (struct servent *)NULL) passthru_port = sp->s_port; else passthru_port = htons(3514); } else if (appres.proxy != CN && !proxy_type) { proxy_type = proxy_setup(&proxy_host, &proxy_portname); if (proxy_type > 0) { unsigned long lport; char *ptr; struct servent *sp; lport = strtoul(portname, &ptr, 0); if (ptr == portname || *ptr != '\0' || lport == 0L || lport & ~0xffff) { if (!(sp = getservbyname(portname, "tcp"))) { popup_an_error("Unknown port number " "or service: %s", portname); return -1; } current_port = ntohs(sp->s_port); } else current_port = (unsigned short)lport; } if (proxy_type < 0) return -1; } /* fill in the socket address of the given host */ (void) memset((char *) &haddr, 0, sizeof(haddr)); if (passthru_host) { /* * XXX: We don't try multiple addresses for the passthru * host. */ haddr[0].sin.sin_family = AF_INET; (void) memmove(&haddr[0].sin.sin_addr, passthru_haddr, passthru_len); haddr[0].sin.sin_port = passthru_port; ha_len[0] = sizeof(struct sockaddr_in); num_ha = 1; ha_ix = 0; } else if (proxy_type > 0) { /* * XXX: We don't try multiple addresses for a proxy * host. */ if (resolve_host_and_port(proxy_host, proxy_portname, 0, &proxy_port, &haddr[0].sa, &ha_len[0], errmsg, sizeof(errmsg), NULL) < 0) { popup_an_error("%s", errmsg); return -1; } num_ha = 1; ha_ix = 0; } else { #if defined(LOCAL_PROCESS) /*[*/ if (ls) { local_process = True; } else { #endif /*]*/ int i; int last = False; #if defined(LOCAL_PROCESS) /*[*/ local_process = False; #endif /*]*/ num_ha = 0; for (i = 0; i < NUM_HA && !last; i++) { if (resolve_host_and_port(host, portname, i, ¤t_port, &haddr[i].sa, &ha_len[i], errmsg, sizeof(errmsg), &last) < 0) { popup_an_error("%s", errmsg); return -1; } num_ha++; } ha_ix = 0; #if defined(LOCAL_PROCESS) /*[*/ } #endif /*]*/ } #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { int amaster; struct winsize w; w.ws_row = XMIT_ROWS; w.ws_col = XMIT_COLS; w.ws_xpixel = 0; w.ws_ypixel = 0; switch (forkpty(&amaster, NULL, NULL, &w)) { case -1: /* failed */ popup_an_errno(errno, "forkpty"); close_fail; case 0: /* child */ putenv("TERM=xterm"); if (strchr(host, ' ') != CN) { (void) execlp("/bin/sh", "sh", "-c", host, NULL); } else { char *arg1; arg1 = strrchr(host, '/'); (void) execlp(host, (arg1 == CN) ? host : arg1 + 1, NULL); } perror(host); _exit(1); break; default: /* parent */ sock = amaster; #if !defined(_WIN32) /*[*/ (void) fcntl(sock, F_SETFD, 1); #endif /*]*/ net_connected(); host_in3270(CONNECTED_ANSI); break; } return sock; } #endif /*]*/ /* Try each of the haddrs. */ while (ha_ix < num_ha) { if ((s = connect_to(ha_ix, (ha_ix == num_ha - 1), pending)) >= 0) return s; ha_ix++; } /* Ran out. */ return -1; } #undef close_fail /* Set up the LU list. */ static void setup_lus(void) { char *lu; char *comma; int n_lus = 1; int i; connected_lu = CN; connected_type = CN; if (!luname[0]) { Replace(lus, NULL); curr_lu = (char **)NULL; try_lu = CN; return; } /* * Count the commas in the LU name. That plus one is the * number of LUs to try. */ lu = luname; while ((comma = strchr(lu, ',')) != CN) { n_lus++; lu++; } /* * Allocate enough memory to construct an argv[] array for * the LUs. */ Replace(lus, (char **)Malloc((n_lus+1) * sizeof(char *) + strlen(luname) + 1)); /* Copy each LU into the array. */ lu = (char *)(lus + n_lus + 1); (void) strcpy(lu, luname); i = 0; do { lus[i++] = lu; comma = strchr(lu, ','); if (comma != CN) { *comma = '\0'; lu = comma + 1; } } while (comma != CN); lus[i] = CN; curr_lu = lus; try_lu = *curr_lu; } static void net_connected(void) { if (proxy_type > 0) { /* Negotiate with the proxy. */ trace_dsn("Connected to proxy server %s, port %u.\n", proxy_host, proxy_port); if (proxy_negotiate(proxy_type, sock, hostname, current_port) < 0) { host_disconnect(True); return; } } trace_dsn("Connected to %s, port %u%s.\n", hostname, current_port, ssl_host? " via SSL": ""); #if defined(HAVE_LIBSSL) /*[*/ /* Set up SSL. */ if (ssl_host && !secure_connection) { if (SSL_set_fd(ssl_con, sock) != 1) { trace_dsn("Can't set fd!\n"); } if (SSL_connect(ssl_con) != 1) { /* * No need to trace the error, it was already * displayed. */ host_disconnect(True); return; } secure_connection = True; trace_dsn("TLS/SSL tunneled connection complete. " "Connection is now secure.\n"); /* Tell everyone else again. */ host_connected(); } #endif /*]*/ /* set up telnet options */ (void) memset((char *) myopts, 0, sizeof(myopts)); (void) memset((char *) hisopts, 0, sizeof(hisopts)); #if defined(X3270_TN3270E) /*[*/ e_funcs = E_OPT(TN3270E_FUNC_BIND_IMAGE) | E_OPT(TN3270E_FUNC_RESPONSES) | E_OPT(TN3270E_FUNC_SYSREQ); e_xmit_seq = 0; response_required = TN3270E_RSF_NO_RESPONSE; #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ need_tls_follows = False; #endif /*]*/ telnet_state = TNS_DATA; ibptr = ibuf; /* clear statistics and flags */ (void) time(&ns_time); ns_brcvd = 0; ns_rrcvd = 0; ns_bsent = 0; ns_rsent = 0; syncing = 0; tn3270e_negotiated = 0; tn3270e_submode = E_NONE; tn3270e_bound = 0; setup_lus(); check_linemode(True); /* write out the passthru hostname and port nubmer */ if (passthru_host) { char *buf; buf = Malloc(strlen(hostname) + 32); (void) sprintf(buf, "%s %d\r\n", hostname, current_port); (void) send(sock, buf, strlen(buf), 0); Free(buf); } } /* * connection_complete * The connection appears to be complete (output is possible or input * appeared ready but recv() returned EWOULDBLOCK). Complete the * connection-completion processing. */ static void connection_complete(void) { #if !defined(_WIN32) /*[*/ if (non_blocking(False) < 0) { host_disconnect(True); return; } #endif /*]*/ host_connected(); net_connected(); } #if !defined(_WIN32) /*[*/ /* * output_possible * Output is possible on the socket. Used only when a connection is * pending, to determine that the connection is complete. */ static void output_possible(void) { if (HALF_CONNECTED) { connection_complete(); } if (output_id) { RemoveInput(output_id); output_id = 0L; } } #endif /*]*/ /* * net_disconnect * Shut down the socket. */ void net_disconnect(void) { #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { SSL_shutdown(ssl_con); SSL_free(ssl_con); ssl_con = NULL; } secure_connection = False; #endif /*]*/ if (CONNECTED) (void) shutdown(sock, 2); (void) SOCK_CLOSE(sock); sock = -1; trace_dsn("SENT disconnect\n"); /* We're not connected to an LU any more. */ status_lu(CN); #if !defined(_WIN32) /*[*/ /* We have no more interest in output buffer space. */ if (output_id != 0L) { RemoveInput(output_id); output_id = 0L; } #endif /*]*/ } /* * net_input * Called by the toolkit whenever there is input available on the * socket. Reads the data, processes the special telnet commands * and calls process_ds to process the 3270 data stream. */ void net_input(void) { register unsigned char *cp; int nr; #if defined(HAVE_LIBSSL) /*[*/ Boolean ignore_ssl = False; #endif /*]*/ #if defined(_WIN32) /*[*/ for (;;) #endif /*]*/ { if (sock < 0) return; #if defined(_WIN32) /*[*/ if (HALF_CONNECTED) { if (connect(sock, &haddr[ha_ix].sa, sizeof(haddr[0])) < 0) { int err = GetLastError(); switch (err) { case WSAEISCONN: connection_complete(); /* and go get data...? */ break; case WSAEALREADY: case WSAEWOULDBLOCK: case WSAEINVAL: return; default: fprintf(stderr, "second connect() failed: %s\n", win32_strerror(err)); x3270_exit(1); } } } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ ansi_data = 0; #endif /*]*/ #if defined(_WIN32) /*[*/ (void) ResetEvent(sock_handle); #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { /* * OpenSSL does not like getting refused connections * when it hasn't done any I/O yet. So peek ahead to * see if it's worth getting it involved at all. */ if (HALF_CONNECTED && (nr = recv(sock, (char *) netrbuf, 1, MSG_PEEK)) <= 0) ignore_ssl = True; else nr = SSL_read(ssl_con, (char *) netrbuf, BUFSZ); } else #else /*][*/ #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ if (local_process) nr = read(sock, (char *) netrbuf, BUFSZ); else #endif /*]*/ nr = recv(sock, (char *) netrbuf, BUFSZ, 0); if (nr < 0) { if (socket_errno() == SE_EWOULDBLOCK) { return; } #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL && !ignore_ssl) { unsigned long e; char err_buf[120]; e = ERR_get_error(); if (e != 0) (void) ERR_error_string(e, err_buf); else strcpy(err_buf, "unknown error"); trace_dsn("RCVD SSL_read error %ld (%s)\n", e, err_buf); popup_an_error("SSL_read:\n%s", err_buf); host_disconnect(True); return; } #endif /*]*/ if (HALF_CONNECTED && socket_errno() == SE_EAGAIN) { connection_complete(); return; } #if defined(LOCAL_PROCESS) /*[*/ if (errno == EIO && local_process) { trace_dsn("RCVD local process disconnect\n"); host_disconnect(False); return; } #endif /*]*/ trace_dsn("RCVD socket error %d (%s)\n", socket_errno(), #if !defined(_WIN32) /*[*/ strerror(errno) #else /*][*/ win32_strerror(GetLastError()) #endif /*]*/ ); if (HALF_CONNECTED) { if (ha_ix == num_ha - 1) { popup_a_sockerr("Connect to %s, " "port %d", hostname, current_port); } else { Boolean dummy; int s; net_disconnect(); #if defined(HAVE_LIBSSL) /*[*/ if (ssl_host) ssl_init(); #endif /*]*/ while (++ha_ix < num_ha) { s = connect_to(ha_ix, (ha_ix == num_ha - 1), &dummy); if (s >= 0) { host_newfd(s); return; } } } } else if (socket_errno() != SE_ECONNRESET) { popup_a_sockerr("Socket read"); } host_disconnect(True); return; } else if (nr == 0) { /* Host disconnected. */ trace_dsn("RCVD disconnect\n"); host_disconnect(False); return; } /* Process the data. */ if (HALF_CONNECTED) { if (non_blocking(False) < 0) { host_disconnect(True); return; } host_connected(); net_connected(); } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', netrbuf, nr); #endif /*]*/ ns_brcvd += nr; for (cp = netrbuf; cp < (netrbuf + nr); cp++) { #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { /* More to do here, probably. */ if (IN_NEITHER) { /* now can assume ANSI mode */ host_in3270(CONNECTED_ANSI); hisopts[TELOPT_ECHO] = 1; check_linemode(False); kybdlock_clr(KL_AWAITING_FIRST, "telnet_fsm"); status_reset(); ps_process(); } ansi_process((unsigned int) *cp); } else { #endif /*]*/ if (telnet_fsm(*cp)) { (void) ctlr_dbcs_postprocess(); host_disconnect(True); return; } #if defined(LOCAL_PROCESS) /*[*/ } #endif /*]*/ } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { (void) ctlr_dbcs_postprocess(); } if (ansi_data) { trace_dsn("\n"); ansi_data = 0; } #endif /*]*/ #if defined(X3270_TRACE) /*[*/ /* See if it's time to roll over the trace file. */ trace_rollover_check(); #endif /*]*/ } } /* * set16 * Put a 16-bit value in a buffer. * Returns the number of bytes required. */ static int set16(char *buf, int n) { char *b0 = buf; n %= 256 * 256; if ((n / 256) == IAC) *(unsigned char *)buf++ = IAC; *buf++ = (n / 256); n %= 256; if (n == IAC) *(unsigned char *)buf++ = IAC; *buf++ = n; return buf - b0; } /* * send_naws * Send a Telnet window size sub-option negotation. */ static void send_naws(void) { char naws_msg[14]; int naws_len = 0; (void) sprintf(naws_msg, "%c%c%c", IAC, SB, TELOPT_NAWS); naws_len += 3; naws_len += set16(naws_msg + naws_len, XMIT_COLS); naws_len += set16(naws_msg + naws_len, XMIT_ROWS); (void) sprintf(naws_msg + naws_len, "%c%c", IAC, SE); naws_len += 2; net_rawout((unsigned char *)naws_msg, naws_len); trace_dsn("SENT %s NAWS %d %d %s\n", cmd(SB), XMIT_COLS, XMIT_ROWS, cmd(SE)); } /* Advance 'try_lu' to the next desired LU name. */ static void next_lu(void) { if (curr_lu != (char **)NULL && (try_lu = *++curr_lu) == CN) curr_lu = (char **)NULL; } /* * telnet_fsm * Telnet finite-state machine. * Returns 0 for okay, -1 for errors. */ static int telnet_fsm(unsigned char c) { #if defined(X3270_ANSI) /*[*/ char *see_chr; int sl; #endif /*]*/ switch (telnet_state) { case TNS_DATA: /* normal data processing */ if (c == IAC) { /* got a telnet command */ telnet_state = TNS_IAC; #if defined(X3270_ANSI) /*[*/ if (ansi_data) { trace_dsn("\n"); ansi_data = 0; } #endif /*]*/ break; } if (IN_NEITHER) { /* now can assume ANSI mode */ #if defined(X3270_ANSI)/*[*/ if (linemode) cooked_init(); #endif /*]*/ host_in3270(CONNECTED_ANSI); kybdlock_clr(KL_AWAITING_FIRST, "telnet_fsm"); status_reset(); ps_process(); } if (IN_ANSI && !IN_E) { #if defined(X3270_ANSI) /*[*/ if (!ansi_data) { trace_dsn("<.. "); ansi_data = 4; } see_chr = ctl_see((int) c); ansi_data += (sl = strlen(see_chr)); if (ansi_data >= TRACELINE) { trace_dsn(" ...\n... "); ansi_data = 4 + sl; } trace_dsn("%s", see_chr); if (!syncing) { if (linemode && appres.onlcr && c == '\n') ansi_process((unsigned int) '\r'); ansi_process((unsigned int) c); sms_store(c); } #endif /*]*/ } else { store3270in(c); } break; case TNS_IAC: /* process a telnet command */ if (c != EOR && c != IAC) { trace_dsn("RCVD %s ", cmd(c)); } switch (c) { case IAC: /* escaped IAC, insert it */ if (IN_ANSI && !IN_E) { #if defined(X3270_ANSI) /*[*/ if (!ansi_data) { trace_dsn("<.. "); ansi_data = 4; } see_chr = ctl_see((int) c); ansi_data += (sl = strlen(see_chr)); if (ansi_data >= TRACELINE) { trace_dsn(" ...\n ..."); ansi_data = 4 + sl; } trace_dsn("%s", see_chr); ansi_process((unsigned int) c); sms_store(c); #endif /*]*/ } else store3270in(c); telnet_state = TNS_DATA; break; case EOR: /* eor, process accumulated input */ if (IN_3270 || (IN_E && tn3270e_negotiated)) { ns_rrcvd++; if (process_eor()) return -1; } else Warning("EOR received when not in 3270 mode, " "ignored."); trace_dsn("RCVD EOR\n"); ibptr = ibuf; telnet_state = TNS_DATA; break; case WILL: telnet_state = TNS_WILL; break; case WONT: telnet_state = TNS_WONT; break; case DO: telnet_state = TNS_DO; break; case DONT: telnet_state = TNS_DONT; break; case SB: telnet_state = TNS_SB; if (sbbuf == (unsigned char *)NULL) sbbuf = (unsigned char *)Malloc(1024); sbptr = sbbuf; break; case DM: trace_dsn("\n"); if (syncing) { syncing = 0; x_except_on(sock); } telnet_state = TNS_DATA; break; case GA: case NOP: trace_dsn("\n"); telnet_state = TNS_DATA; break; default: trace_dsn("???\n"); telnet_state = TNS_DATA; break; } break; case TNS_WILL: /* telnet WILL DO OPTION command */ trace_dsn("%s\n", opt(c)); switch (c) { case TELOPT_SGA: case TELOPT_BINARY: case TELOPT_EOR: case TELOPT_TTYPE: case TELOPT_ECHO: #if defined(X3270_TN3270E) /*[*/ case TELOPT_TN3270E: #endif /*]*/ if (c != TELOPT_TN3270E || !non_tn3270e_host) { if (!hisopts[c]) { hisopts[c] = 1; do_opt[2] = c; net_rawout(do_opt, sizeof(do_opt)); trace_dsn("SENT %s %s\n", cmd(DO), opt(c)); /* * For UTS, volunteer to do EOR when * they do. */ if (c == TELOPT_EOR && !myopts[c]) { myopts[c] = 1; will_opt[2] = c; net_rawout(will_opt, sizeof(will_opt)); trace_dsn("SENT %s %s\n", cmd(WILL), opt(c)); } check_in3270(); check_linemode(False); } break; } default: dont_opt[2] = c; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(c)); break; } telnet_state = TNS_DATA; break; case TNS_WONT: /* telnet WONT DO OPTION command */ trace_dsn("%s\n", opt(c)); if (hisopts[c]) { hisopts[c] = 0; dont_opt[2] = c; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(c)); check_in3270(); check_linemode(False); } telnet_state = TNS_DATA; break; case TNS_DO: /* telnet PLEASE DO OPTION command */ trace_dsn("%s\n", opt(c)); switch (c) { case TELOPT_BINARY: case TELOPT_EOR: case TELOPT_TTYPE: case TELOPT_SGA: case TELOPT_NAWS: case TELOPT_TM: #if defined(X3270_TN3270E) /*[*/ case TELOPT_TN3270E: #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ case TELOPT_STARTTLS: #endif /*]*/ if (c == TELOPT_TN3270E && non_tn3270e_host) goto wont; if (c == TELOPT_TM && !appres.bsd_tm) goto wont; if (!myopts[c]) { if (c != TELOPT_TM) myopts[c] = 1; will_opt[2] = c; net_rawout(will_opt, sizeof(will_opt)); trace_dsn("SENT %s %s\n", cmd(WILL), opt(c)); check_in3270(); check_linemode(False); } if (c == TELOPT_NAWS) send_naws(); #if defined(HAVE_LIBSSL) /*[*/ if (c == TELOPT_STARTTLS) { static unsigned char follows_msg[] = { IAC, SB, TELOPT_STARTTLS, TLS_FOLLOWS, IAC, SE }; /* * Send IAC SB STARTTLS FOLLOWS IAC SE * to announce that what follows is TLS. */ net_rawout(follows_msg, sizeof(follows_msg)); trace_dsn("SENT %s %s FOLLOWS %s\n", cmd(SB), opt(TELOPT_STARTTLS), cmd(SE)); need_tls_follows = True; } #endif /*]*/ break; default: wont: wont_opt[2] = c; net_rawout(wont_opt, sizeof(wont_opt)); trace_dsn("SENT %s %s\n", cmd(WONT), opt(c)); break; } telnet_state = TNS_DATA; break; case TNS_DONT: /* telnet PLEASE DON'T DO OPTION command */ trace_dsn("%s\n", opt(c)); if (myopts[c]) { myopts[c] = 0; wont_opt[2] = c; net_rawout(wont_opt, sizeof(wont_opt)); trace_dsn("SENT %s %s\n", cmd(WONT), opt(c)); check_in3270(); check_linemode(False); } telnet_state = TNS_DATA; break; case TNS_SB: /* telnet sub-option string command */ if (c == IAC) telnet_state = TNS_SB_IAC; else *sbptr++ = c; break; case TNS_SB_IAC: /* telnet sub-option string command */ *sbptr++ = c; if (c == SE) { telnet_state = TNS_DATA; if (sbbuf[0] == TELOPT_TTYPE && sbbuf[1] == TELQUAL_SEND) { int tt_len, tb_len; char *tt_out; trace_dsn("%s %s\n", opt(sbbuf[0]), telquals[sbbuf[1]]); if (lus != (char **)NULL && try_lu == CN) { /* None of the LUs worked. */ popup_an_error("Cannot connect to " "specified LU"); return -1; } tt_len = strlen(termtype); if (try_lu != CN && *try_lu) { tt_len += strlen(try_lu) + 1; connected_lu = try_lu; } else connected_lu = CN; status_lu(connected_lu); tb_len = 4 + tt_len + 2; tt_out = Malloc(tb_len + 1); (void) sprintf(tt_out, "%c%c%c%c%s%s%s%c%c", IAC, SB, TELOPT_TTYPE, TELQUAL_IS, termtype, (try_lu != CN && *try_lu) ? "@" : "", (try_lu != CN && *try_lu) ? try_lu : "", IAC, SE); net_rawout((unsigned char *)tt_out, tb_len); trace_dsn("SENT %s %s %s %.*s %s\n", cmd(SB), opt(TELOPT_TTYPE), telquals[TELQUAL_IS], tt_len, tt_out + 4, cmd(SE)); Free(tt_out); /* Advance to the next LU name. */ next_lu(); } #if defined(X3270_TN3270E) /*[*/ else if (myopts[TELOPT_TN3270E] && sbbuf[0] == TELOPT_TN3270E) { if (tn3270e_negotiate()) return -1; } #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ else if (need_tls_follows && myopts[TELOPT_STARTTLS] && sbbuf[0] == TELOPT_STARTTLS) { continue_tls(sbbuf, sbptr - sbbuf); } #endif /*]*/ } else { telnet_state = TNS_SB; } break; } return 0; } #if defined(X3270_TN3270E) /*[*/ /* Send a TN3270E terminal type request. */ static void tn3270e_request(void) { int tt_len, tb_len; char *tt_out; char *t; tt_len = strlen(termtype); if (try_lu != CN && *try_lu) tt_len += strlen(try_lu) + 1; tb_len = 5 + tt_len + 2; tt_out = Malloc(tb_len + 1); t = tt_out; t += sprintf(tt_out, "%c%c%c%c%c%s", IAC, SB, TELOPT_TN3270E, TN3270E_OP_DEVICE_TYPE, TN3270E_OP_REQUEST, termtype); /* Convert 3279 to 3278, per the RFC. */ if (tt_out[12] == '9') tt_out[12] = '8'; if (try_lu != CN && *try_lu) t += sprintf(t, "%c%s", TN3270E_OP_CONNECT, try_lu); (void) sprintf(t, "%c%c", IAC, SE); net_rawout((unsigned char *)tt_out, tb_len); trace_dsn("SENT %s %s DEVICE-TYPE REQUEST %.*s%s%s " "%s\n", cmd(SB), opt(TELOPT_TN3270E), (int)strlen(termtype), tt_out + 5, (try_lu != CN && *try_lu) ? " CONNECT " : "", (try_lu != CN && *try_lu) ? try_lu : "", cmd(SE)); Free(tt_out); } /* * Back off of TN3270E. */ static void backoff_tn3270e(const char *why) { trace_dsn("Aborting TN3270E: %s\n", why); /* Tell the host 'no'. */ wont_opt[2] = TELOPT_TN3270E; net_rawout(wont_opt, sizeof(wont_opt)); trace_dsn("SENT %s %s\n", cmd(WONT), opt(TELOPT_TN3270E)); /* Restore the LU list; we may need to run it again in TN3270 mode. */ setup_lus(); /* Reset our internal state. */ myopts[TELOPT_TN3270E] = 0; check_in3270(); } /* * Negotiation of TN3270E options. * Returns 0 if okay, -1 if we have to give up altogether. */ static int tn3270e_negotiate(void) { #define LU_MAX 32 static char reported_lu[LU_MAX+1]; static char reported_type[LU_MAX+1]; int sblen; unsigned long e_rcvd; /* Find out how long the subnegotiation buffer is. */ for (sblen = 0; ; sblen++) { if (sbbuf[sblen] == SE) break; } trace_dsn("TN3270E "); switch (sbbuf[1]) { case TN3270E_OP_SEND: if (sbbuf[2] == TN3270E_OP_DEVICE_TYPE) { /* Host wants us to send our device type. */ trace_dsn("SEND DEVICE-TYPE SE\n"); tn3270e_request(); } else { trace_dsn("SEND ??%u SE\n", sbbuf[2]); } break; case TN3270E_OP_DEVICE_TYPE: /* Device type negotiation. */ trace_dsn("DEVICE-TYPE "); switch (sbbuf[2]) { case TN3270E_OP_IS: { int tnlen, snlen; /* Device type success. */ /* Isolate the terminal type and session. */ tnlen = 0; while (sbbuf[3+tnlen] != SE && sbbuf[3+tnlen] != TN3270E_OP_CONNECT) tnlen++; snlen = 0; if (sbbuf[3+tnlen] == TN3270E_OP_CONNECT) { while(sbbuf[3+tnlen+1+snlen] != SE) snlen++; } trace_dsn("IS %.*s CONNECT %.*s SE\n", tnlen, &sbbuf[3], snlen, &sbbuf[3+tnlen+1]); /* Remember the LU. */ if (tnlen) { if (tnlen > LU_MAX) tnlen = LU_MAX; (void)strncpy(reported_type, (char *)&sbbuf[3], tnlen); reported_type[tnlen] = '\0'; connected_type = reported_type; } if (snlen) { if (snlen > LU_MAX) snlen = LU_MAX; (void)strncpy(reported_lu, (char *)&sbbuf[3+tnlen+1], snlen); reported_lu[snlen] = '\0'; connected_lu = reported_lu; status_lu(connected_lu); } /* Tell them what we can do. */ tn3270e_subneg_send(TN3270E_OP_REQUEST, e_funcs); break; } case TN3270E_OP_REJECT: /* Device type failure. */ trace_dsn("REJECT REASON %s SE\n", rsn(sbbuf[4])); if (sbbuf[4] == TN3270E_REASON_INV_DEVICE_TYPE || sbbuf[4] == TN3270E_REASON_UNSUPPORTED_REQ) { backoff_tn3270e("Host rejected device type or " "request type"); break; } next_lu(); if (try_lu != CN) { /* Try the next LU. */ tn3270e_request(); } else if (lus != (char **)NULL) { /* No more LUs to try. Give up. */ backoff_tn3270e("Host rejected resource(s)"); } else { backoff_tn3270e("Device type rejected"); } break; default: trace_dsn("??%u SE\n", sbbuf[2]); break; } break; case TN3270E_OP_FUNCTIONS: /* Functions negotiation. */ trace_dsn("FUNCTIONS "); switch (sbbuf[2]) { case TN3270E_OP_REQUEST: /* Host is telling us what functions they want. */ trace_dsn("REQUEST %s SE\n", tn3270e_function_names(sbbuf+3, sblen-3)); e_rcvd = tn3270e_fdecode(sbbuf+3, sblen-3); if ((e_rcvd == e_funcs) || (e_funcs & ~e_rcvd)) { /* They want what we want, or less. Done. */ e_funcs = e_rcvd; tn3270e_subneg_send(TN3270E_OP_IS, e_funcs); tn3270e_negotiated = 1; trace_dsn("TN3270E option negotiation " "complete.\n"); check_in3270(); } else { /* * They want us to do something we can't. * Request the common subset. */ e_funcs &= e_rcvd; tn3270e_subneg_send(TN3270E_OP_REQUEST, e_funcs); } break; case TN3270E_OP_IS: /* They accept our last request, or a subset thereof. */ trace_dsn("IS %s SE\n", tn3270e_function_names(sbbuf+3, sblen-3)); e_rcvd = tn3270e_fdecode(sbbuf+3, sblen-3); if (e_rcvd != e_funcs) { if (e_funcs & ~e_rcvd) { /* * They've removed something. This is * technically illegal, but we can * live with it. */ e_funcs = e_rcvd; } else { /* * They've added something. Abandon * TN3270E, they're brain dead. */ backoff_tn3270e("Host illegally added " "function(s)"); break; } } tn3270e_negotiated = 1; trace_dsn("TN3270E option negotiation complete.\n"); check_in3270(); break; default: trace_dsn("??%u SE\n", sbbuf[2]); break; } break; default: trace_dsn("??%u SE\n", sbbuf[1]); } /* Good enough for now. */ return 0; } #if defined(X3270_TRACE) /*[*/ /* Expand a string of TN3270E function codes into text. */ static const char * tn3270e_function_names(const unsigned char *buf, int len) { int i; static char text_buf[1024]; char *s = text_buf; if (!len) return("(null)"); for (i = 0; i < len; i++) { s += sprintf(s, "%s%s", (s == text_buf) ? "" : " ", fnn(buf[i])); } return text_buf; } #endif /*]*/ /* Expand the current TN3270E function codes into text. */ const char * tn3270e_current_opts(void) { int i; static char text_buf[1024]; char *s = text_buf; if (!e_funcs || !IN_E) return CN; for (i = 0; i < 32; i++) { if (e_funcs & E_OPT(i)) s += sprintf(s, "%s%s", (s == text_buf) ? "" : " ", fnn(i)); } return text_buf; } /* Transmit a TN3270E FUNCTIONS REQUEST or FUNCTIONS IS message. */ static void tn3270e_subneg_send(unsigned char op, unsigned long funcs) { unsigned char proto_buf[7 + 32]; int proto_len; int i; /* Construct the buffers. */ (void) memcpy(proto_buf, functions_req, 4); proto_buf[4] = op; proto_len = 5; for (i = 0; i < 32; i++) { if (funcs & E_OPT(i)) proto_buf[proto_len++] = i; } /* Complete and send out the protocol message. */ proto_buf[proto_len++] = IAC; proto_buf[proto_len++] = SE; net_rawout(proto_buf, proto_len); /* Complete and send out the trace text. */ trace_dsn("SENT %s %s FUNCTIONS %s %s %s\n", cmd(SB), opt(TELOPT_TN3270E), (op == TN3270E_OP_REQUEST)? "REQUEST": "IS", tn3270e_function_names(proto_buf + 5, proto_len - 7), cmd(SE)); } /* Translate a string of TN3270E functions into a bit-map. */ static unsigned long tn3270e_fdecode(const unsigned char *buf, int len) { unsigned long r = 0L; int i; /* Note that this code silently ignores options >= 32. */ for (i = 0; i < len; i++) { if (buf[i] < 32) r |= E_OPT(buf[i]); } return r; } #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ static int maxru(unsigned char c) { if (!(c & 0x80)) return 0; return ((c >> 4) & 0x0f) * (1 << (c & 0xf)); } static void process_bind(unsigned char *buf, int buflen) { int namelen, i; int dest_ix = 0; /* Save the raw image. */ if (bind_image != NULL) Free(bind_image); bind_image = (unsigned char *)Malloc(buflen); memcpy(bind_image, buf, buflen); bind_image_len = buflen; /* Clean up the derived state. */ if (plu_name == CN) plu_name = Malloc(mb_max_len(BIND_PLU_NAME_MAX)); (void) memset(plu_name, '\0', mb_max_len(BIND_PLU_NAME_MAX)); maxru_sec = 0; maxru_pri = 0; bind_rd = 0; bind_cd = 0; bind_ra = 0; bind_ca = 0; /* Make sure it's a BIND. */ if (buflen < 1 || buf[0] != BIND_RU) { return; } /* Extract the maximum RUs. */ if (buflen > BIND_OFF_MAXRU_SEC) maxru_sec = maxru(buf[BIND_OFF_MAXRU_SEC]); if (buflen > BIND_OFF_MAXRU_PRI) maxru_pri = maxru(buf[BIND_OFF_MAXRU_PRI]); /* Extract the screen size. */ if (buflen > BIND_OFF_SSIZE) { int bind_ss = buf[BIND_OFF_SSIZE]; switch (bind_ss) { case 0x00: case 0x02: bind_rd = MODEL_2_ROWS; bind_cd = MODEL_2_COLS; bind_ra = MODEL_2_ROWS; bind_ca = MODEL_2_COLS; break; case 0x03: bind_rd = MODEL_2_ROWS; bind_cd = MODEL_2_COLS; bind_ra = maxROWS; bind_ca = maxCOLS; break; case 0x7e: bind_rd = buf[BIND_OFF_RD]; bind_cd = buf[BIND_OFF_CD]; bind_ra = buf[BIND_OFF_RD]; bind_ca = buf[BIND_OFF_CD]; break; case 0x7f: bind_rd = buf[BIND_OFF_RD]; bind_cd = buf[BIND_OFF_CD]; bind_ra = buf[BIND_OFF_RA]; bind_ca = buf[BIND_OFF_CA]; break; default: break; } } /* Validate and implement the screen size. */ if (bind_rd > maxROWS || bind_cd > maxCOLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Default Rows-Cols %ux%u > Maximum %ux%u", bind_rd, bind_cd, maxROWS, maxCOLS); } else if (bind_rd < MODEL_2_ROWS || bind_cd < MODEL_2_COLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Default Rows-Cols %ux%u < Minimum %ux%u", bind_rd, bind_cd, MODEL_2_ROWS, MODEL_2_COLS); } else if (bind_ra > maxROWS || bind_ca > maxCOLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Alternate Rows-Cols %ux%u > Maximum %ux%u", bind_ra, bind_ca, maxROWS, maxCOLS); } else if (bind_ra < MODEL_2_ROWS || bind_ca < MODEL_2_COLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Alternate Rows-Cols %ux%u < Minimum %ux%u", bind_ra, bind_ca, MODEL_2_ROWS, MODEL_2_COLS); } else { defROWS = bind_rd; defCOLS = bind_cd; altROWS = bind_ra; altCOLS = bind_ca; } ctlr_erase(False); /* Extract the PLU name. */ if (buflen > BIND_OFF_PLU_NAME_LEN) { namelen = buf[BIND_OFF_PLU_NAME_LEN]; if (namelen > BIND_PLU_NAME_MAX) namelen = BIND_PLU_NAME_MAX; if ((namelen > 0) && (buflen > BIND_OFF_PLU_NAME + namelen)) { for (i = 0; i < namelen; i++) { int nx; nx = ebcdic_to_multibyte( buf[BIND_OFF_PLU_NAME + i], plu_name + dest_ix, mb_max_len(1)); if (nx > 1) dest_ix += nx - 1; } } } } #endif /*]*/ static int process_eor(void) { if (syncing || !(ibptr - ibuf)) return(0); #if defined(X3270_TN3270E) /*[*/ if (IN_E) { tn3270e_header *h = (tn3270e_header *)ibuf; unsigned char *s; enum pds rv; trace_dsn("RCVD TN3270E(%s%s %s %u)\n", e_dt(h->data_type), e_rq(h->data_type, h->request_flag), e_rsp(h->data_type, h->response_flag), h->seq_number[0] << 8 | h->seq_number[1]); switch (h->data_type) { case TN3270E_DT_3270_DATA: if ((e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE)) && !tn3270e_bound) return 0; tn3270e_submode = E_3270; check_in3270(); response_required = h->response_flag; rv = process_ds(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); if (rv < 0 && response_required != TN3270E_RSF_NO_RESPONSE) tn3270e_nak(rv); else if (rv == PDS_OKAY_NO_OUTPUT && response_required == TN3270E_RSF_ALWAYS_RESPONSE) tn3270e_ack(); response_required = TN3270E_RSF_NO_RESPONSE; return 0; case TN3270E_DT_BIND_IMAGE: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; process_bind(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); trace_ds("< BIND PLU-name '%s' " "MaxSec-RU %d MaxPri-RU %d " "Rows-Cols Default %dx%d Alternate %dx%d\n", plu_name, maxru_sec, maxru_pri, bind_rd, bind_cd, bind_ra, bind_ca); tn3270e_bound = 1; check_in3270(); return 0; case TN3270E_DT_UNBIND: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; tn3270e_bound = 0; /* * Undo any screen-sizing effects from a previous BIND. */ defROWS = MODEL_2_ROWS; defCOLS = MODEL_2_COLS; altROWS = maxROWS; altCOLS = maxCOLS; ctlr_erase(False); if (tn3270e_submode == E_3270) tn3270e_submode = E_NONE; check_in3270(); return 0; case TN3270E_DT_NVT_DATA: /* In tn3270e NVT mode */ tn3270e_submode = E_NVT; check_in3270(); for (s = ibuf; s < ibptr; s++) { ansi_process(*s++); } return 0; case TN3270E_DT_SSCP_LU_DATA: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; tn3270e_submode = E_SSCP; check_in3270(); ctlr_write_sscp_lu(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); return 0; default: /* Should do something more extraordinary here. */ return 0; } } else #endif /*]*/ { (void) process_ds(ibuf, ibptr - ibuf); } return 0; } /* * net_exception * Called when there is an exceptional condition on the socket. */ void net_exception(void) { #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { trace_dsn("RCVD exception\n"); } else #endif /*[*/ { trace_dsn("RCVD urgent data indication\n"); if (!syncing) { syncing = 1; x_except_off(); } } } /* * Flavors of Network Output: * * 3270 mode * net_output send a 3270 record * * ANSI mode; call each other in turn * net_sendc net_cookout for 1 byte * net_sends net_cookout for a null-terminated string * net_cookout send user data with cooked-mode processing, ANSI mode * net_cookedout send user data, ANSI mode, already cooked * net_rawout send telnet protocol data, ANSI mode * */ /* * net_rawout * Send out raw telnet data. We assume that there will always be enough * space to buffer what we want to transmit, so we don't handle EAGAIN or * EWOULDBLOCK. */ static void net_rawout(unsigned const char *buf, int len) { int nw; #if defined(X3270_TRACE) /*[*/ trace_netdata('>', buf, len); #endif /*]*/ while (len) { #if defined(OMTU) /*[*/ int n2w = len; int pause = 0; if (n2w > OMTU) { n2w = OMTU; pause = 1; } #else # define n2w len #endif #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) nw = SSL_write(ssl_con, (const char *) buf, n2w); else #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ if (local_process) nw = write(sock, (const char *) buf, n2w); else #endif /*]*/ nw = send(sock, (const char *) buf, n2w, 0); if (nw < 0) { #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { unsigned long e; char err_buf[120]; e = ERR_get_error(); (void) ERR_error_string(e, err_buf); trace_dsn("RCVD SSL_write error %ld (%s)\n", e, err_buf); popup_an_error("SSL_write:\n%s", err_buf); host_disconnect(False); return; } #endif /*]*/ trace_dsn("RCVD socket error %d (%s)\n", socket_errno(), #if !defined(_WIN32) /*[*/ strerror(errno) #else /*][*/ win32_strerror(GetLastError()) #endif /*]*/ ); if (socket_errno() == SE_EPIPE || socket_errno() == SE_ECONNRESET) { host_disconnect(False); return; } else if (socket_errno() == SE_EINTR) { goto bot; } else { popup_a_sockerr("Socket write"); host_disconnect(True); return; } } ns_bsent += nw; len -= nw; buf += nw; bot: #if defined(OMTU) /*[*/ if (pause) sleep(1); #endif /*]*/ ; } } #if defined(X3270_ANSI) /*[*/ /* * net_hexansi_out * Send uncontrolled user data to the host in ANSI mode, performing IAC * and CR quoting as necessary. */ void net_hexansi_out(unsigned char *buf, int len) { unsigned char *tbuf; unsigned char *xbuf; if (!len) return; #if defined(X3270_TRACE) /*[*/ /* Trace the data. */ if (toggled(DS_TRACE)) { int i; trace_dsn(">"); for (i = 0; i < len; i++) trace_dsn(" %s", ctl_see((int) *(buf+i))); trace_dsn("\n"); } #endif /*]*/ /* Expand it. */ tbuf = xbuf = (unsigned char *)Malloc(2*len); while (len) { unsigned char c = *buf++; *tbuf++ = c; len--; if (c == IAC) *tbuf++ = IAC; else if (c == '\r' && (!len || *buf != '\n')) *tbuf++ = '\0'; } /* Send it to the host. */ net_rawout(xbuf, tbuf - xbuf); Free(xbuf); } /* * net_cookedout * Send user data out in ANSI mode, without cooked-mode processing. */ static void net_cookedout(const char *buf, int len) { #if defined(X3270_TRACE) /*[*/ if (toggled(DS_TRACE)) { int i; trace_dsn(">"); for (i = 0; i < len; i++) trace_dsn(" %s", ctl_see((int) *(buf+i))); trace_dsn("\n"); } #endif /*]*/ net_rawout((unsigned const char *) buf, len); } /* * net_cookout * Send output in ANSI mode, including cooked-mode processing if * appropriate. */ static void net_cookout(const char *buf, int len) { if (!IN_ANSI || (kybdlock & KL_AWAITING_FIRST)) return; if (linemode) { register int i; char c; for (i = 0; i < len; i++) { c = buf[i]; /* Input conversions. */ if (!lnext && c == '\r' && appres.icrnl) c = '\n'; else if (!lnext && c == '\n' && appres.inlcr) c = '\r'; /* Backslashes. */ if (c == '\\' && !backslashed) backslashed = 1; else backslashed = 0; /* Control chars. */ if (c == '\n') do_eol(c); else if (c == vintr) do_intr(c); else if (c == vquit) do_quit(c); else if (c == verase) do_cerase(c); else if (c == vkill) do_kill(c); else if (c == vwerase) do_werase(c); else if (c == vrprnt) do_rprnt(c); else if (c == veof) do_eof(c); else if (c == vlnext) do_lnext(c); else if (c == 0x08 || c == 0x7f) /* Yes, a hack. */ do_cerase(c); else do_data(c); } return; } else net_cookedout(buf, len); } /* * Cooked mode input processing. */ static void cooked_init(void) { if (lbuf == (unsigned char *)NULL) lbuf = (unsigned char *)Malloc(BUFSZ); lbptr = lbuf; lnext = 0; backslashed = 0; } static void ansi_process_s(const char *data) { while (*data) ansi_process((unsigned int) *data++); } static void forward_data(void) { net_cookedout((char *) lbuf, lbptr - lbuf); cooked_init(); } static void do_data(char c) { if (lbptr+1 < lbuf + BUFSZ) { *lbptr++ = c; if (c == '\r') *lbptr++ = '\0'; if (c == '\t') ansi_process((unsigned int) c); else ansi_process_s(ctl_see((int) c)); } else ansi_process_s("\007"); lnext = 0; backslashed = 0; } static void do_intr(char c) { if (lnext) { do_data(c); return; } ansi_process_s(ctl_see((int) c)); cooked_init(); net_interrupt(); } static void do_quit(char c) { if (lnext) { do_data(c); return; } ansi_process_s(ctl_see((int) c)); cooked_init(); net_break(); } static void do_cerase(char c) { int len; if (backslashed) { lbptr--; ansi_process_s("\b"); do_data(c); return; } if (lnext) { do_data(c); return; } if (lbptr > lbuf) { len = strlen(ctl_see((int) *--lbptr)); while (len--) ansi_process_s("\b \b"); } } static void do_werase(char c) { int any = 0; int len; if (lnext) { do_data(c); return; } while (lbptr > lbuf) { char ch; ch = *--lbptr; if (ch == ' ' || ch == '\t') { if (any) { ++lbptr; break; } } else any = 1; len = strlen(ctl_see((int) ch)); while (len--) ansi_process_s("\b \b"); } } static void do_kill(char c) { int i, len; if (backslashed) { lbptr--; ansi_process_s("\b"); do_data(c); return; } if (lnext) { do_data(c); return; } while (lbptr > lbuf) { len = strlen(ctl_see((int) *--lbptr)); for (i = 0; i < len; i++) ansi_process_s("\b \b"); } } static void do_rprnt(char c) { unsigned char *p; if (lnext) { do_data(c); return; } ansi_process_s(ctl_see((int) c)); ansi_process_s("\r\n"); for (p = lbuf; p < lbptr; p++) ansi_process_s(ctl_see((int) *p)); } static void do_eof(char c) { if (backslashed) { lbptr--; ansi_process_s("\b"); do_data(c); return; } if (lnext) { do_data(c); return; } do_data(c); forward_data(); } static void do_eol(char c) { if (lnext) { do_data(c); return; } if (lbptr+2 >= lbuf + BUFSZ) { ansi_process_s("\007"); return; } *lbptr++ = '\r'; *lbptr++ = '\n'; ansi_process_s("\r\n"); forward_data(); } static void do_lnext(char c) { if (lnext) { do_data(c); return; } lnext = 1; ansi_process_s("^\b"); } #endif /*]*/ /* * check_in3270 * Check for switches between NVT, SSCP-LU and 3270 modes. */ static void check_in3270(void) { enum cstate new_cstate = NOT_CONNECTED; #if defined(X3270_TRACE) /*[*/ static const char *state_name[] = { "unconnected", "resolving", "pending", "initial connection", "TN3270 NVT", "TN3270 3270", "TN3270E", "TN3270E NVT", "TN3270E SSCP-LU", "TN3270E 3270" }; #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ if (myopts[TELOPT_TN3270E]) { if (!tn3270e_negotiated) new_cstate = CONNECTED_INITIAL_E; else switch (tn3270e_submode) { case E_NONE: new_cstate = CONNECTED_INITIAL_E; break; case E_NVT: new_cstate = CONNECTED_NVT; break; case E_3270: new_cstate = CONNECTED_TN3270E; break; case E_SSCP: new_cstate = CONNECTED_SSCP; break; } } else #endif /*]*/ if (myopts[TELOPT_BINARY] && myopts[TELOPT_EOR] && myopts[TELOPT_TTYPE] && hisopts[TELOPT_BINARY] && hisopts[TELOPT_EOR]) { new_cstate = CONNECTED_3270; } else if (cstate == CONNECTED_INITIAL) { /* Nothing has happened, yet. */ return; } else { new_cstate = CONNECTED_INITIAL; } if (new_cstate != cstate) { #if defined(X3270_TN3270E) /*[*/ int was_in_e = IN_E; #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ /* * If we've now switched between non-TN3270E mode and * TN3270E mode, reset the LU list so we can try again * in the new mode. */ if (lus != (char **)NULL && was_in_e != IN_E) { curr_lu = lus; try_lu = *curr_lu; } #endif /*]*/ /* Allocate the initial 3270 input buffer. */ if (new_cstate >= CONNECTED_INITIAL && !ibuf_size) { ibuf = (unsigned char *)Malloc(BUFSIZ); ibuf_size = BUFSIZ; ibptr = ibuf; } #if defined(X3270_ANSI) /*[*/ /* Reinitialize line mode. */ if ((new_cstate == CONNECTED_ANSI && linemode) || new_cstate == CONNECTED_NVT) cooked_init(); #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ /* If we fell out of TN3270E, remove the state. */ if (!myopts[TELOPT_TN3270E]) { tn3270e_negotiated = 0; tn3270e_submode = E_NONE; tn3270e_bound = 0; } #endif /*]*/ trace_dsn("Now operating in %s mode.\n", state_name[new_cstate]); host_in3270(new_cstate); } } /* * store3270in * Store a character in the 3270 input buffer, checking for buffer * overflow and reallocating ibuf if necessary. */ static void store3270in(unsigned char c) { if (ibptr - ibuf >= ibuf_size) { ibuf_size += BUFSIZ; ibuf = (unsigned char *)Realloc((char *)ibuf, ibuf_size); ibptr = ibuf + ibuf_size - BUFSIZ; } *ibptr++ = c; } /* * space3270out * Ensure that more characters will fit in the 3270 output buffer. * Allocates the buffer in BUFSIZ chunks. * Allocates hidden space at the front of the buffer for TN3270E. */ void space3270out(int n) { unsigned nc = 0; /* amount of data currently in obuf */ unsigned more = 0; if (obuf_size) nc = obptr - obuf; while ((nc + n + EH_SIZE) > (obuf_size + more)) { more += BUFSIZ; } if (more) { obuf_size += more; obuf_base = (unsigned char *)Realloc((char *)obuf_base, obuf_size); obuf = obuf_base + EH_SIZE; obptr = obuf + nc; } } /* * check_linemode * Set the global variable 'linemode', which says whether we are in * character-by-character mode or line mode. */ static void check_linemode(Boolean init) { int wasline = linemode; /* * The next line is a deliberate kluge to effectively ignore the SGA * option. If the host will echo for us, we assume * character-at-a-time; otherwise we assume fully cooked by us. * * This allows certain IBM hosts which volunteer SGA but refuse * ECHO to operate more-or-less normally, at the expense of * implementing the (hopefully useless) "character-at-a-time, local * echo" mode. * * We still implement "switch to line mode" and "switch to character * mode" properly by asking for both SGA and ECHO to be off or on, but * we basically ignore the reply for SGA. */ linemode = !hisopts[TELOPT_ECHO] /* && !hisopts[TELOPT_SGA] */; if (init || linemode != wasline) { st_changed(ST_LINE_MODE, linemode); if (!init) { trace_dsn("Operating in %s mode.\n", linemode ? "line" : "character-at-a-time"); } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI && linemode) cooked_init(); #endif /*]*/ } } #if defined(X3270_TRACE) /*[*/ /* * nnn * Expands a number to a character string, for displaying unknown telnet * commands and options. */ static const char * nnn(int c) { static char buf[64]; (void) sprintf(buf, "%d", c); return buf; } /* * cmd * Expands a TELNET command into a character string. */ static const char * cmd(int c) { if (TELCMD_OK(c)) return TELCMD(c); else return nnn(c); } /* * opt * Expands a TELNET option into a character string. */ static const char * opt(unsigned char c) { if (TELOPT_OK(c)) return TELOPT(c); else if (c == TELOPT_TN3270E) return "TN3270E"; #if defined(HAVE_LIBSSL) /*[*/ else if (c == TELOPT_STARTTLS) return "START-TLS"; #endif /*]*/ else return nnn((int)c); } #define LINEDUMP_MAX 32 void trace_netdata(char direction, unsigned const char *buf, int len) { int offset; struct timeval ts; double tdiff; if (!toggled(DS_TRACE)) return; (void) gettimeofday(&ts, (struct timezone *)NULL); if (IN_3270) { tdiff = ((1.0e6 * (double)(ts.tv_sec - ds_ts.tv_sec)) + (double)(ts.tv_usec - ds_ts.tv_usec)) / 1.0e6; trace_dsn("%c +%gs\n", direction, tdiff); } ds_ts = ts; for (offset = 0; offset < len; offset++) { if (!(offset % LINEDUMP_MAX)) trace_dsn("%s%c 0x%-3x ", (offset ? "\n" : ""), direction, offset); trace_dsn("%02x", buf[offset]); } trace_dsn("\n"); } #endif /*]*/ /* * net_output * Send 3270 output over the network: * - Prepend TN3270E header * - Expand IAC to IAC IAC * - Append IAC EOR */ void net_output(void) { static unsigned char *xobuf = NULL; static int xobuf_len = 0; int need_resize = 0; unsigned char *nxoptr, *xoptr; #if defined(X3270_TN3270E) /*[*/ #define BSTART ((IN_TN3270E || IN_SSCP) ? obuf_base : obuf) #else /*][*/ #define BSTART obuf #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ /* Set the TN3720E header. */ if (IN_TN3270E || IN_SSCP) { tn3270e_header *h = (tn3270e_header *)obuf_base; /* Check for sending a TN3270E response. */ if (response_required == TN3270E_RSF_ALWAYS_RESPONSE) { tn3270e_ack(); response_required = TN3270E_RSF_NO_RESPONSE; } /* Set the outbound TN3270E header. */ h->data_type = IN_TN3270E ? TN3270E_DT_3270_DATA : TN3270E_DT_SSCP_LU_DATA; h->request_flag = 0; h->response_flag = 0; h->seq_number[0] = (e_xmit_seq >> 8) & 0xff; h->seq_number[1] = e_xmit_seq & 0xff; trace_dsn("SENT TN3270E(%s NO-RESPONSE %u)\n", IN_TN3270E ? "3270-DATA" : "SSCP-LU-DATA", e_xmit_seq); if (e_funcs & E_OPT(TN3270E_FUNC_RESPONSES)) e_xmit_seq = (e_xmit_seq + 1) & 0x7fff; } #endif /*]*/ /* Reallocate the expanded output buffer. */ while (xobuf_len < (obptr - BSTART + 1) * 2) { xobuf_len += BUFSZ; need_resize++; } if (need_resize) { Replace(xobuf, (unsigned char *)Malloc(xobuf_len)); } /* Copy and expand IACs. */ xoptr = xobuf; nxoptr = BSTART; while (nxoptr < obptr) { if ((*xoptr++ = *nxoptr++) == IAC) { *xoptr++ = IAC; } } /* Append the IAC EOR and transmit. */ *xoptr++ = IAC; *xoptr++ = EOR; net_rawout(xobuf, xoptr - xobuf); trace_dsn("SENT EOR\n"); ns_rsent++; #undef BSTART } #if defined(X3270_TN3270E) /*[*/ /* Send a TN3270E positive response to the server. */ static void tn3270e_ack(void) { unsigned char rsp_buf[10]; tn3270e_header *h_in = (tn3270e_header *)ibuf; int rsp_len = 0; rsp_len = 0; rsp_buf[rsp_len++] = TN3270E_DT_RESPONSE; /* data_type */ rsp_buf[rsp_len++] = 0; /* request_flag */ rsp_buf[rsp_len++] = TN3270E_RSF_POSITIVE_RESPONSE; /* response_flag */ rsp_buf[rsp_len++] = h_in->seq_number[0]; /* seq_number[0] */ if (h_in->seq_number[0] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = h_in->seq_number[1]; /* seq_number[1] */ if (h_in->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = TN3270E_POS_DEVICE_END; rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; trace_dsn("SENT TN3270E(RESPONSE POSITIVE-RESPONSE " "%u) DEVICE-END\n", h_in->seq_number[0] << 8 | h_in->seq_number[1]); net_rawout(rsp_buf, rsp_len); } /* Send a TN3270E negative response to the server. */ static void tn3270e_nak(enum pds rv) { unsigned char rsp_buf[10]; tn3270e_header *h_in = (tn3270e_header *)ibuf; int rsp_len = 0; char *neg = NULL; rsp_buf[rsp_len++] = TN3270E_DT_RESPONSE; /* data_type */ rsp_buf[rsp_len++] = 0; /* request_flag */ rsp_buf[rsp_len++] = TN3270E_RSF_NEGATIVE_RESPONSE; /* response_flag */ rsp_buf[rsp_len++] = h_in->seq_number[0]; /* seq_number[0] */ if (h_in->seq_number[0] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = h_in->seq_number[1]; /* seq_number[1] */ if (h_in->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; switch (rv) { default: case PDS_BAD_CMD: rsp_buf[rsp_len++] = TN3270E_NEG_COMMAND_REJECT; neg = "COMMAND-REJECT"; break; case PDS_BAD_ADDR: rsp_buf[rsp_len++] = TN3270E_NEG_OPERATION_CHECK; neg = "OPERATION-CHECK"; break; } rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; trace_dsn("SENT TN3270E(RESPONSE NEGATIVE-RESPONSE %u) %s\n", h_in->seq_number[0] << 8 | h_in->seq_number[1], neg); net_rawout(rsp_buf, rsp_len); } #if defined(X3270_TRACE) /*[*/ /* Add a dummy TN3270E header to the output buffer. */ Boolean net_add_dummy_tn3270e(void) { tn3270e_header *h; if (!IN_E || tn3270e_submode == E_NONE) return False; space3270out(EH_SIZE); h = (tn3270e_header *)obptr; switch (tn3270e_submode) { case E_NONE: break; case E_NVT: h->data_type = TN3270E_DT_NVT_DATA; break; case E_SSCP: h->data_type = TN3270E_DT_SSCP_LU_DATA; break; case E_3270: h->data_type = TN3270E_DT_3270_DATA; break; } h->request_flag = 0; h->response_flag = TN3270E_RSF_NO_RESPONSE; h->seq_number[0] = 0; h->seq_number[1] = 0; obptr += EH_SIZE; return True; } #endif /*]*/ #endif /*]*/ #if defined(X3270_TRACE) /*[*/ /* * Add IAC EOR to a buffer. */ void net_add_eor(unsigned char *buf, int len) { buf[len++] = IAC; buf[len++] = EOR; } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ /* * net_sendc * Send a character of user data over the network in ANSI mode. */ void net_sendc(char c) { if (c == '\r' && !linemode #if defined(LOCAL_PROCESS) /*[*/ && !local_process #endif /*]*/ ) { /* CR must be quoted */ net_cookout("\r\0", 2); } else { net_cookout(&c, 1); } } /* * net_sends * Send a null-terminated string of user data in ANSI mode. */ void net_sends(const char *s) { net_cookout(s, strlen(s)); } /* * net_send_erase * Sends the KILL character in ANSI mode. */ void net_send_erase(void) { net_cookout(&verase, 1); } /* * net_send_kill * Sends the KILL character in ANSI mode. */ void net_send_kill(void) { net_cookout(&vkill, 1); } /* * net_send_werase * Sends the WERASE character in ANSI mode. */ void net_send_werase(void) { net_cookout(&vwerase, 1); } #endif /*]*/ #if defined(X3270_MENUS) /*[*/ /* * External entry points to negotiate line or character mode. */ void net_linemode(void) { if (!CONNECTED) return; if (hisopts[TELOPT_ECHO]) { dont_opt[2] = TELOPT_ECHO; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(TELOPT_ECHO)); } if (hisopts[TELOPT_SGA]) { dont_opt[2] = TELOPT_SGA; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(TELOPT_SGA)); } } void net_charmode(void) { if (!CONNECTED) return; if (!hisopts[TELOPT_ECHO]) { do_opt[2] = TELOPT_ECHO; net_rawout(do_opt, sizeof(do_opt)); trace_dsn("SENT %s %s\n", cmd(DO), opt(TELOPT_ECHO)); } if (!hisopts[TELOPT_SGA]) { do_opt[2] = TELOPT_SGA; net_rawout(do_opt, sizeof(do_opt)); trace_dsn("SENT %s %s\n", cmd(DO), opt(TELOPT_SGA)); } } #endif /*]*/ /* * net_break * Send telnet break, which is used to implement 3270 ATTN. * */ void net_break(void) { static unsigned char buf[] = { IAC, BREAK }; /* I don't know if we should first send TELNET synch ? */ net_rawout(buf, sizeof(buf)); trace_dsn("SENT BREAK\n"); } /* * net_interrupt * Send telnet IP. * */ void net_interrupt(void) { static unsigned char buf[] = { IAC, IP }; /* I don't know if we should first send TELNET synch ? */ net_rawout(buf, sizeof(buf)); trace_dsn("SENT IP\n"); } /* * net_abort * Send telnet AO. * */ #if defined(X3270_TN3270E) /*[*/ void net_abort(void) { static unsigned char buf[] = { IAC, AO }; if (e_funcs & E_OPT(TN3270E_FUNC_SYSREQ)) { /* * I'm not sure yet what to do here. Should the host respond * to the AO by sending us SSCP-LU data (and putting us into * SSCP-LU mode), or should we put ourselves in it? * Time, and testers, will tell. */ switch (tn3270e_submode) { case E_NONE: case E_NVT: break; case E_SSCP: net_rawout(buf, sizeof(buf)); trace_dsn("SENT AO\n"); if (tn3270e_bound || !(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) { tn3270e_submode = E_3270; check_in3270(); } break; case E_3270: net_rawout(buf, sizeof(buf)); trace_dsn("SENT AO\n"); tn3270e_submode = E_SSCP; check_in3270(); break; } } } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ /* * parse_ctlchar * Parse an stty control-character specification. * A cheap, non-complaining implementation. */ static char parse_ctlchar(char *s) { if (!s || !*s) return 0; if ((int) strlen(s) > 1) { if (*s != '^') return 0; else if (*(s+1) == '?') return 0177; else return *(s+1) - '@'; } else return *s; } #endif /*]*/ #if (defined(X3270_MENUS) || defined(C3270)) && defined(X3270_ANSI) /*[*/ /* * net_linemode_chars * Report line-mode characters. */ struct ctl_char * net_linemode_chars(void) { static struct ctl_char c[9]; c[0].name = "intr"; (void) strcpy(c[0].value, ctl_see(vintr)); c[1].name = "quit"; (void) strcpy(c[1].value, ctl_see(vquit)); c[2].name = "erase"; (void) strcpy(c[2].value, ctl_see(verase)); c[3].name = "kill"; (void) strcpy(c[3].value, ctl_see(vkill)); c[4].name = "eof"; (void) strcpy(c[4].value, ctl_see(veof)); c[5].name = "werase"; (void) strcpy(c[5].value, ctl_see(vwerase)); c[6].name = "rprnt"; (void) strcpy(c[6].value, ctl_see(vrprnt)); c[7].name = "lnext"; (void) strcpy(c[7].value, ctl_see(vlnext)); c[8].name = 0; return c; } #endif /*]*/ #if defined(X3270_TRACE) /*[*/ /* * Construct a string to reproduce the current TELNET options. * Returns a Boolean indicating whether it is necessary. */ Boolean net_snap_options(void) { Boolean any = False; int i; static unsigned char ttype_str[] = { IAC, DO, TELOPT_TTYPE, IAC, SB, TELOPT_TTYPE, TELQUAL_SEND, IAC, SE }; if (!CONNECTED) return False; obptr = obuf; /* Do TTYPE first. */ if (myopts[TELOPT_TTYPE]) { unsigned j; space3270out(sizeof(ttype_str)); for (j = 0; j < sizeof(ttype_str); j++) *obptr++ = ttype_str[j]; } /* Do the other options. */ for (i = 0; i < N_OPTS; i++) { space3270out(6); if (i == TELOPT_TTYPE) continue; if (hisopts[i]) { *obptr++ = IAC; *obptr++ = WILL; *obptr++ = (unsigned char)i; any = True; } if (myopts[i]) { *obptr++ = IAC; *obptr++ = DO; *obptr++ = (unsigned char)i; any = True; } } #if defined(X3270_TN3270E) /*[*/ /* If we're in TN3270E mode, snap the subnegotations as well. */ if (myopts[TELOPT_TN3270E]) { any = True; space3270out(5 + ((connected_type != CN) ? strlen(connected_type) : 0) + ((connected_lu != CN) ? + strlen(connected_lu) : 0) + 2); *obptr++ = IAC; *obptr++ = SB; *obptr++ = TELOPT_TN3270E; *obptr++ = TN3270E_OP_DEVICE_TYPE; *obptr++ = TN3270E_OP_IS; if (connected_type != CN) { (void) memcpy(obptr, connected_type, strlen(connected_type)); obptr += strlen(connected_type); } if (connected_lu != CN) { *obptr++ = TN3270E_OP_CONNECT; (void) memcpy(obptr, connected_lu, strlen(connected_lu)); obptr += strlen(connected_lu); } *obptr++ = IAC; *obptr++ = SE; space3270out(38); (void) memcpy(obptr, functions_req, 4); obptr += 4; *obptr++ = TN3270E_OP_IS; for (i = 0; i < 32; i++) { if (e_funcs & E_OPT(i)) *obptr++ = i; } *obptr++ = IAC; *obptr++ = SE; if (tn3270e_bound) { tn3270e_header *h; int i; int xlen = 0; for (i = 0; i < bind_image_len; i++) { if (bind_image[i] == 0xff) xlen++; } space3270out(EH_SIZE + bind_image_len + xlen + 3); h = (tn3270e_header *)obptr; h->data_type = TN3270E_DT_BIND_IMAGE; h->request_flag = 0; h->response_flag = 0; h->seq_number[0] = 0; h->seq_number[1] = 0; obptr += EH_SIZE; for (i = 0; i < bind_image_len; i++) { if (bind_image[i] == 0xff) *obptr++ = 0xff; *obptr++ = bind_image[i]; } *obptr++ = IAC; *obptr++ = EOR; } } #endif /*]*/ return any; } #endif /*]*/ /* * Set blocking/non-blocking mode on the socket. On error, pops up an error * message, but does not close the socket. */ static int non_blocking(Boolean on) { #if !defined(BLOCKING_CONNECT_ONLY) /*[*/ # if defined(FIONBIO) /*[*/ int i = on ? 1 : 0; if (SOCK_IOCTL(sock, FIONBIO, &i) < 0) { popup_a_sockerr("ioctl(FIONBIO)"); return -1; } # else /*][*/ int f; if ((f = fcntl(sock, F_GETFL, 0)) == -1) { popup_an_errno(errno, "fcntl(F_GETFL)"); return -1; } if (on) f |= O_NDELAY; else f &= ~O_NDELAY; if (fcntl(sock, F_SETFL, f) < 0) { popup_an_errno(errno, "fcntl(F_SETFL)"); return -1; } # endif /*]*/ #endif /*]*/ return 0; } #if defined(HAVE_LIBSSL) /*[*/ /* Initialize the OpenSSL library. */ static void ssl_init(void) { static Boolean ssl_initted = False; if (!ssl_initted) { SSL_load_error_strings(); SSL_library_init(); ssl_initted = True; ssl_ctx = SSL_CTX_new(SSLv23_method()); if (ssl_ctx == NULL) { popup_an_error("SSL_CTX_new failed"); ssl_host = False; return; } SSL_CTX_set_options(ssl_ctx, SSL_OP_ALL); } ssl_con = SSL_new(ssl_ctx); if (ssl_con == NULL) { popup_an_error("SSL_new failed"); ssl_host = False; } SSL_set_verify(ssl_con, 0/*xxx*/, NULL); SSL_CTX_set_info_callback(ssl_ctx, client_info_callback); /* XXX: May need to get key file and password. */ if (appres.cert_file) { if (!(SSL_CTX_use_certificate_chain_file(ssl_ctx, appres.cert_file))) { unsigned long e; char err_buf[120]; e = ERR_get_error(); (void) ERR_error_string(e, err_buf); popup_an_error("SSL_CTX_use_certificate_chain_file(" "\"%s\") failed:\n%s", appres.cert_file, err_buf); } } SSL_CTX_set_default_verify_paths(ssl_ctx); } /* Callback for tracing protocol negotiation. */ static void client_info_callback(INFO_CONST SSL *s, int where, int ret) { if (where == SSL_CB_CONNECT_LOOP) { trace_dsn("SSL_connect: %s %s\n", SSL_state_string(s), SSL_state_string_long(s)); } else if (where == SSL_CB_CONNECT_EXIT) { if (ret == 0) { trace_dsn("SSL_connect: failed in %s\n", SSL_state_string_long(s)); } else if (ret < 0) { unsigned long e; char err_buf[1024]; err_buf[0] = '\n'; e = ERR_get_error(); if (e != 0) (void) ERR_error_string(e, err_buf + 1); #if defined(_WIN32) /*[*/ else if (GetLastError() != 0) strcpy(err_buf + 1, win32_strerror(GetLastError())); #else /*][*/ else if (errno != 0) strcpy(err_buf + 1, strerror(errno)); #endif /*]*/ else err_buf[0] = '\0'; trace_dsn("SSL_connect: error in %s%s\n", SSL_state_string_long(s), err_buf); popup_an_error("SSL_connect: error in %s%s", SSL_state_string_long(s), err_buf); } } } /* Process a STARTTLS subnegotiation. */ static void continue_tls(unsigned char *sbbuf, int len) { int rv; /* Whatever happens, we're not expecting another SB STARTTLS. */ need_tls_follows = False; /* Make sure the option is FOLLOWS. */ if (len < 2 || sbbuf[1] != TLS_FOLLOWS) { /* Trace the junk. */ trace_dsn("%s ? %s\n", opt(TELOPT_STARTTLS), cmd(SE)); popup_an_error("TLS negotiation failure"); net_disconnect(); return; } /* Trace what we got. */ trace_dsn("%s FOLLOWS %s\n", opt(TELOPT_STARTTLS), cmd(SE)); /* Initialize the SSL library. */ ssl_init(); if (ssl_con == NULL) { /* Failed. */ net_disconnect(); return; } /* Set up the TLS/SSL connection. */ if (SSL_set_fd(ssl_con, sock) != 1) { trace_dsn("Can't set fd!\n"); } #if defined(_WIN32) /*[*/ /* Make the socket blocking for SSL. */ (void) WSAEventSelect(sock, sock_handle, 0); (void) non_blocking(False); #endif /*]*/ rv = SSL_connect(ssl_con); #if defined(_WIN32) /*[*/ /* Make the socket non-blocking again for event processing. */ (void) WSAEventSelect(sock, sock_handle, FD_READ | FD_CONNECT | FD_CLOSE); #endif /*]*/ if (rv != 1) { /* Error already displayed. */ trace_dsn("continue_tls: SSL_connect failed\n"); net_disconnect(); return; } secure_connection = True; /* Success. */ trace_dsn("TLS/SSL negotiated connection complete. " "Connection is now secure.\n"); /* Tell the world that we are (still) connected, now in secure mode. */ host_connected(); } #endif /*]*/ /* Return the current BIND application name, if any. */ const char * net_query_bind_plu_name(void) { #if defined(X3270_TN3270E) /*[*/ /* * Return the PLU name, if we're in TN3270E 3270 mode and have * negotiated the BIND-IMAGE option. */ if ((cstate == CONNECTED_TN3270E) && (e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return plu_name? plu_name: ""; else return ""; #else /*][*/ /* No TN3270E, no BIND negotiation. */ return ""; #endif /*]*/ } /* Return the current connection state. */ const char * net_query_connection_state(void) { if (CONNECTED) { #if defined(X3270_TN3270E) /*[*/ if (IN_E) { switch (tn3270e_submode) { default: case E_NONE: if (tn3270e_bound) return "tn3270e bound"; else return "tn3270e unbound"; case E_3270: return "tn3270e lu-lu"; case E_NVT: return "tn3270e nvt"; case E_SSCP: return "tn3270 sscp-lu"; } } else #endif /*]*/ { if (IN_3270) return "tn3270 3270"; else return "tn3270 nvt"; } } else if (HALF_CONNECTED) return "connecting"; else return ""; } /* Return the LU name. */ const char * net_query_lu_name(void) { if (CONNECTED && connected_lu != CN) return connected_lu; else return ""; } /* Return the hostname and port. */ const char * net_query_host(void) { static char *s = CN; if (CONNECTED) { Free(s); #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { s = xs_buffer("process %s", hostname); } else #endif /*]*/ { s = xs_buffer("host %s %u %s", hostname, current_port, #if defined(HAVE_LIBSSL) /*[*/ secure_connection? "encrypted": #endif /*]*/ "unencrypted" ); } return s; } else return ""; } /* Return the local address for the socket. */ int net_getsockname(void *buf, int *len) { if (sock < 0) return -1; return getsockname(sock, buf, (socklen_t *)(void *)len); } /* Return a text version of the current proxy type, or NULL. */ char * net_proxy_type(void) { if (proxy_type > 0) return proxy_type_name(proxy_type); else return NULL; } /* Return the current proxy host, or NULL. */ char * net_proxy_host(void) { if (proxy_type > 0) return proxy_host; else return NULL; } /* Return the current proxy port, or NULL. */ char * net_proxy_port(void) { if (proxy_type > 0) return proxy_portname; else return NULL; } /* Return the SNA binding state. */ Boolean net_bound(void) { return (IN_E && tn3270e_bound); } ibm-3270-3.3.10ga4/c3270/ft_dft.c0000644000175000017500000004317111254565704015345 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * ft_dft.c * File transfer: DFT-style data processing functions */ #include "globals.h" #if defined(X3270_FT) /*[*/ #include "appres.h" #include "3270ds.h" #include "ft_dft_ds.h" #include "actionsc.h" #include "charsetc.h" #include "kybdc.h" #include "ft_dftc.h" #include "ftc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include extern unsigned char aid; /* Macros. */ #define OPEN_MSG "FT:MSG" /* Open request for message */ #define END_TRANSFER "TRANS03" /* Message for xfer complete */ #define DFT_MIN_BUF 256 #define DFT_MAX_BUF 32768 #define DFT_MAX_UNGETC 32 /* Typedefs. */ struct data_buffer { char sf_length[2]; /* SF length = 0x0023 */ char sf_d0; /* 0xD0 */ char sf_request_type[2]; /* request type */ char compress_indic[2]; /* 0xc080 */ char begin_data; /* 0x61 */ char data_length[2]; /* Data Length in 3270 byte order+5 */ char data[256]; /* The actual data */ }; /* Globals. */ int dft_buffersize = 0; /* Buffer size (LIMIN, LIMOUT) */ /* Statics. */ static Boolean message_flag = False; /* Open Request for msg received */ static int dft_eof; static unsigned long recnum; static char *abort_string = CN; static unsigned char *dft_savebuf = NULL; static int dft_savebuf_len = 0; static int dft_savebuf_max = 0; static unsigned char dft_ungetc_cache[DFT_MAX_UNGETC]; static size_t dft_ungetc_count = 0; static void dft_abort(const char *s, unsigned short code); static void dft_close_request(void); static void dft_data_insert(struct data_buffer *data_bufr); static void dft_get_request(void); static void dft_insert_request(void); static void dft_open_request(unsigned short len, unsigned char *cp); static void dft_set_cur_req(void); /* Process a Transfer Data structured field from the host. */ void ft_dft_data(unsigned char *data, int length _is_unused) { struct data_buffer *data_bufr = (struct data_buffer *)data; unsigned short data_length, data_type; unsigned char *cp; if (ft_state == FT_NONE) { trace_ds(" (no transfer in progress)\n"); return; } /* Get the length. */ cp = (unsigned char *)(data_bufr->sf_length); GET16(data_length, cp); /* Get the function type. */ cp = (unsigned char *)(data_bufr->sf_request_type); GET16(data_type, cp); /* Handle the requests */ switch (data_type) { case TR_OPEN_REQ: dft_open_request(data_length, cp); break; case TR_INSERT_REQ: /* Insert Request */ dft_insert_request(); break; case TR_DATA_INSERT: dft_data_insert(data_bufr); break; case TR_SET_CUR_REQ: dft_set_cur_req(); break; case TR_GET_REQ: dft_get_request(); break; case TR_CLOSE_REQ: dft_close_request(); break; default: trace_ds(" Unsupported(0x%04x)\n", data_type); break; } } /* Process an Open request. */ static void dft_open_request(unsigned short len, unsigned char *cp) { char *name = "?"; char namebuf[8]; char *s; unsigned short recsz = 0; if (len == 0x23) { name = (char *)cp + 25; } else if (len == 0x29) { unsigned char *recszp; recszp = cp + 27; GET16(recsz, recszp); name = (char *)cp + 31; } else { dft_abort(get_message("ftDftUknownOpen"), TR_OPEN_REQ); return; } (void) memcpy(namebuf, name, 7); namebuf[7] = '\0'; s = &namebuf[6]; while (s >= namebuf && *s == ' ') { *s-- = '\0'; } if (recsz) { trace_ds(" Open('%s',recsz=%u)\n", namebuf, recsz); } else { trace_ds(" Open('%s')\n", namebuf); } if (!strcmp(namebuf, OPEN_MSG)) message_flag = True; else { message_flag = False; ft_running(False); } dft_eof = False; recnum = 1; dft_ungetc_count = 0; /* Acknowledge the Open. */ trace_ds("> WriteStructuredField FileTransferData OpenAck\n"); obptr = obuf; space3270out(6); *obptr++ = AID_SF; SET16(obptr, 5); *obptr++ = SF_TRANSFER_DATA; SET16(obptr, 9); net_output(); } /* Process an Insert request. */ static void dft_insert_request(void) { trace_ds(" Insert\n"); /* Doesn't currently do anything. */ } /* Process a Data Insert request. */ static void dft_data_insert(struct data_buffer *data_bufr) { /* Received a data buffer, get the length and process it */ int my_length; unsigned char *cp; if (!message_flag && ft_state == FT_ABORT_WAIT) { dft_abort(get_message("ftUserCancel"), TR_DATA_INSERT); return; } cp = (unsigned char *) (data_bufr->data_length); /* Get the data length in native format. */ GET16(my_length, cp); /* Adjust for 5 extra count */ my_length -= 5; trace_ds(" Data(rec=%lu) %d bytes\n", recnum, my_length); /* * First, check to see if we have message data or file data. * Message data will result in a popup. */ if (message_flag) { /* Data is from a message */ unsigned char *msgp; unsigned char *dollarp; /* Get storage to copy the message. */ msgp = (unsigned char *)Malloc(my_length + 1); /* Copy the message. */ memcpy(msgp, data_bufr->data, my_length); /* Null terminate the string. */ dollarp = (unsigned char *)memchr(msgp, '$', my_length); if (dollarp != NULL) *dollarp = '\0'; else *(msgp + my_length) = '\0'; /* If transfer completed ok, use our msg. */ if (memcmp(msgp, END_TRANSFER, strlen(END_TRANSFER)) == 0) { Free(msgp); ft_complete((String)NULL); } else if (ft_state == FT_ABORT_SENT && abort_string != CN) { Free(msgp); ft_complete(abort_string); Replace(abort_string, CN); } else { ft_complete((char *)msgp); Free(msgp); } } else if (my_length > 0) { int rv = 1; /* Write the data out to the file. */ if (ascii_flag && (remap_flag || cr_flag)) { size_t obuf_len = 4 * my_length; char *ob0 = Malloc(obuf_len); char *ob = ob0; unsigned char *s = (unsigned char *)data_bufr->data; unsigned len = my_length; int nx; /* Copy and convert data_bufr->data to ob0. */ while (len-- && obuf_len) { unsigned char c = *s++; /* Strip CR's and ^Z's. */ if (cr_flag && ((c == '\r' || c == 0x1a))) { continue; } if (!remap_flag) { *ob++ = c; obuf_len--; continue; } /* * Convert to local multi-byte. * We do that by inverting the host's * EBCDIC-to-ASCII map, getting back to * EBCDIC, and converting to multi-byte * from there. */ #if defined(X3270_DBCS) /*[*/ switch (ft_dbcs_state) { case FT_DBCS_NONE: if (c == EBC_so) { ft_dbcs_state = FT_DBCS_SO; continue; } /* * fall through to non-DBCS case below */ break; case FT_DBCS_SO: if (c == EBC_si) ft_dbcs_state = FT_DBCS_NONE; else { ft_dbcs_byte1 = i_asc2ft[c]; ft_dbcs_state = FT_DBCS_LEFT; } continue; case FT_DBCS_LEFT: if (c == EBC_si) { ft_dbcs_state = FT_DBCS_NONE; continue; } nx = ebcdic_to_multibyte( (ft_dbcs_byte1 << 8) | i_asc2ft[c], (char *)ob, obuf_len); if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; ft_dbcs_state = FT_DBCS_SO; continue; } #endif /*]*/ if (c < 0x20 || (c >= 0x80 && c < 0xa0 && c != 0x9f)) { /* * Control code, treat it as Unicode. * * Note that IND$FILE and the VM 'TYPE' * command think that EBCDIC X'E1' is * a control code; IND$FILE maps it * onto ASCII 0x9f. So we skip it * explicitly and treat it as printable * here. */ nx = unicode_to_multibyte(c, ob, obuf_len); } else if (c == 0xff) { /* * IND$FILE maps X'FF' to 0xff. We * want U+009F. */ nx = unicode_to_multibyte(0x9f, ob, obuf_len); } else { /* Displayable character, remap. */ c = i_asc2ft[c]; nx = ebcdic_to_multibyte(c, (char *)ob, obuf_len); } if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; } /* Write the result to the file. */ if (ob - ob0) { rv = fwrite(ob0, ob - ob0, (size_t)1, ft_local_file); ft_length += ob - ob0; } Free(ob0); } else { /* Write the buffer to the file directly. */ rv = fwrite((char *)data_bufr->data, my_length, (size_t)1, ft_local_file); ft_length += my_length; } if (!rv) { /* write failed */ char *buf; buf = xs_buffer("write(%s): %s", ft_local_filename, strerror(errno)); dft_abort(buf, TR_DATA_INSERT); Free(buf); } /* Add up amount transferred. */ ft_update_length(); } /* Send an acknowledgement frame back. */ trace_ds("> WriteStructuredField FileTransferData DataAck(rec=%lu)\n", recnum); obptr = obuf; space3270out(12); *obptr++ = AID_SF; SET16(obptr, 11); *obptr++ = SF_TRANSFER_DATA; SET16(obptr, TR_NORMAL_REPLY); SET16(obptr, TR_RECNUM_HDR); SET32(obptr, recnum); recnum++; net_output(); } /* Process a Set Cursor request. */ static void dft_set_cur_req(void) { trace_ds(" SetCursor\n"); /* Currently doesn't do anything. */ } #if defined(X3270_DBCS) /*[*/ /* Store a byte inthe input buffer or ungetc cache. */ static void store_inbyte(unsigned char c, unsigned char **bufptr, size_t *numbytes) { if (*numbytes) { *(*bufptr) = c; (*bufptr)++; (*numbytes)--; } else { dft_ungetc_cache[dft_ungetc_count++] = c; } } #endif /*]*/ /* * Read a character from a local file in ASCII mode. * Stores the data in 'bufptr' and returns the number of bytes stored. * Returns -1 for EOF. */ /*static*/ size_t dft_ascii_read(unsigned char *bufptr, size_t numbytes) { char inbuf[16]; int in_ix = 0; char c; enum me_fail error; ebc_t e; int consumed; ucs4_t u; /* Belt-n-suspenders. */ if (!numbytes) return 0; /* Return data from the ungetc cache first. */ if (dft_ungetc_count) { size_t nm = dft_ungetc_count; if (nm > numbytes) nm = numbytes; memcpy(bufptr, dft_ungetc_cache, nm); if (dft_ungetc_count > nm) memmove(dft_ungetc_cache, &dft_ungetc_cache[nm], dft_ungetc_count - nm); dft_ungetc_count -= nm; return nm; } if (remap_flag) { /* Read bytes until we have a legal multibyte sequence. */ do { int consumed; c = fgetc(ft_local_file); if (c == EOF) { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { *bufptr = EBC_si; ft_last_dbcs = False; return 1; } #endif /*]*/ return -1; } error = ME_NONE; inbuf[in_ix++] = c; (void) multibyte_to_unicode(inbuf, in_ix, &consumed, &error); if (error == ME_INVALID) { #if defined(EILSEQ) /*[*/ errno = EILSEQ; #else /*][*/ errno = EINVAL; #endif /*]*/ return -1; } } while (error == ME_SHORT); } else { /* Get a byte from the file. */ c = fgetc(ft_local_file); if (c == EOF) return -1; } /* Expand NL to CR/LF. */ if (cr_flag && !ft_last_cr && c == '\n') { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { *bufptr = EBC_si; dft_ungetc_cache[0] = '\r'; dft_ungetc_cache[1] = '\n'; dft_ungetc_count = 2; ft_last_dbcs = False; return 1; } else #endif /*]*/ { *bufptr = '\r'; dft_ungetc_cache[0] = '\n'; dft_ungetc_count = 1; } return 1; } ft_last_cr = (c == '\r'); /* The no-remap case is pretty simple. */ if (!remap_flag) { *bufptr = c; return 1; } /* * Translate, inverting the host's fixed EBCDIC-to-ASCII conversion * table and applying the host code page. * Control codes are treated as Unicode and mapped directly. * We also handle DBCS here. */ u = multibyte_to_unicode(inbuf, in_ix, &consumed, &error); if (u < 0x20 || ((u >= 0x80 && u < 0x9f))) e = i_asc2ft[u]; else if (u == 0x9f) e = 0xff; else e = unicode_to_ebcdic(u); if (e & 0xff00) { #if defined(X3270_DBCS) /*[*/ unsigned char *bp0 = bufptr; if (!ft_last_dbcs) store_inbyte(EBC_so, &bufptr, &numbytes); store_inbyte(i_ft2asc[(e >> 8) & 0xff], &bufptr, &numbytes); store_inbyte(i_ft2asc[e & 0xff], &bufptr, &numbytes); ft_last_dbcs = True; return bufptr - bp0; #else /*][*/ *bufptr = '?'; return 1; #endif /*]*/ } else { unsigned char nc = e? i_ft2asc[e]: '?'; #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { *bufptr = EBC_si; dft_ungetc_cache[0] = nc; dft_ungetc_count = 1; ft_last_dbcs = False; } else #endif /*]*/ *bufptr = nc; return 1; } } /* Process a Get request. */ static void dft_get_request(void) { size_t numbytes; size_t numread; size_t total_read = 0; unsigned char *bufptr; trace_ds(" Get\n"); if (!message_flag && ft_state == FT_ABORT_WAIT) { dft_abort(get_message("ftUserCancel"), TR_GET_REQ); return; } /* Read a buffer's worth. */ set_dft_buffersize(); space3270out(dft_buffersize); numbytes = dft_buffersize - 27; /* always read 5 bytes less than we're allowed */ bufptr = obuf + 17; while (!dft_eof && numbytes) { if (ascii_flag && (remap_flag || cr_flag)) { numread = dft_ascii_read(bufptr, numbytes); if (numread == (size_t)-1) { dft_eof = True; break; } bufptr += numread; numbytes -= numread; total_read += numread; } else { /* Binary read. */ numread = fread(bufptr, 1, numbytes, ft_local_file); if (numread <= 0) { break; } bufptr += numread; numbytes -= numread; total_read += numread; if (feof(ft_local_file)) dft_eof = True; if (feof(ft_local_file) || ferror(ft_local_file)) { break; } } } /* Check for read error. */ if (ferror(ft_local_file)) { char *buf; buf = xs_buffer("read(%s): %s", ft_local_filename, strerror(errno)); dft_abort(buf, TR_GET_REQ); Free(buf); return; } /* Set up SF header for Data or EOF. */ obptr = obuf; *obptr++ = AID_SF; obptr += 2; /* skip SF length for now */ *obptr++ = SF_TRANSFER_DATA; if (total_read) { trace_ds("> WriteStructuredField FileTransferData Data(rec=%lu) %d bytes\n", recnum, (int)total_read); SET16(obptr, TR_GET_REPLY); SET16(obptr, TR_RECNUM_HDR); SET32(obptr, recnum); recnum++; SET16(obptr, TR_NOT_COMPRESSED); *obptr++ = TR_BEGIN_DATA; SET16(obptr, total_read + 5); obptr += total_read; ft_length += total_read; } else { trace_ds("> WriteStructuredField FileTransferData EOF\n"); *obptr++ = HIGH8(TR_GET_REQ); *obptr++ = TR_ERROR_REPLY; SET16(obptr, TR_ERROR_HDR); SET16(obptr, TR_ERR_EOF); dft_eof = True; } /* Set the SF length. */ bufptr = obuf + 1; SET16(bufptr, obptr - (obuf + 1)); /* Save the data. */ dft_savebuf_len = obptr - obuf; if (dft_savebuf_len > dft_savebuf_max) { dft_savebuf_max = dft_savebuf_len; Replace(dft_savebuf, (unsigned char *)Malloc(dft_savebuf_max)); } (void) memcpy(dft_savebuf, obuf, dft_savebuf_len); aid = AID_SF; /* Write the data. */ net_output(); ft_update_length(); } /* Process a Close request. */ static void dft_close_request(void) { /* * Recieved a close request from the system. * Return a close acknowledgement. */ trace_ds(" Close\n"); trace_ds("> WriteStructuredField FileTransferData CloseAck\n"); obptr = obuf; space3270out(6); *obptr++ = AID_SF; SET16(obptr, 5); /* length */ *obptr++ = SF_TRANSFER_DATA; SET16(obptr, TR_CLOSE_REPLY); net_output(); } /* Abort a transfer. */ static void dft_abort(const char *s, unsigned short code) { Replace(abort_string, NewString(s)); trace_ds("> WriteStructuredField FileTransferData Error\n"); obptr = obuf; space3270out(10); *obptr++ = AID_SF; SET16(obptr, 9); /* length */ *obptr++ = SF_TRANSFER_DATA; *obptr++ = HIGH8(code); *obptr++ = TR_ERROR_REPLY; SET16(obptr, TR_ERROR_HDR); SET16(obptr, TR_ERR_CMDFAIL); net_output(); /* Update the pop-up and state. */ ft_aborting(); } /* Processes a Read Modified command when there is upload data pending. */ void dft_read_modified(void) { if (dft_savebuf_len) { trace_ds("> WriteStructuredField FileTransferData\n"); obptr = obuf; space3270out(dft_savebuf_len); memcpy(obptr, dft_savebuf, dft_savebuf_len); obptr += dft_savebuf_len; net_output(); } } /* Update the buffersize for generating a Query Reply. */ void set_dft_buffersize(void) { if (dft_buffersize == 0) { dft_buffersize = appres.dft_buffer_size; if (dft_buffersize == 0) dft_buffersize = DFT_BUF; } if (dft_buffersize > DFT_MAX_BUF) dft_buffersize = DFT_MAX_BUF; if (dft_buffersize < DFT_MIN_BUF) dft_buffersize = DFT_MIN_BUF; } #endif /*]*/ ibm-3270-3.3.10ga4/c3270/ansic.h0000644000175000017500000000453411254565704015201 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ansic.h * Global declarations for ansi.c. */ #if defined(X3270_ANSI) /*[*/ extern void ansi_init(void); extern void ansi_process(unsigned int c); extern void ansi_send_clear(void); extern void ansi_send_down(void); extern void ansi_send_home(void); extern void ansi_send_left(void); extern void ansi_send_pa(int nn); extern void ansi_send_pf(int nn); extern void ansi_send_right(void); extern void ansi_send_up(void); extern void ansi_snap(void); extern void ansi_snap_modes(void); extern void toggle_lineWrap(struct toggle *t, enum toggle_type type); #else /*][*/ #define ansi_init() #define ansi_process(n) #define ansi_send_clear() #define ansi_send_down() #define ansi_send_home() #define ansi_send_left() #define ansi_send_pa(n) #define ansi_send_pf(n) #define ansi_send_right() #define ansi_send_up() #define ansi_snap() #endif /*]*/ ibm-3270-3.3.10ga4/c3270/ft_cut_ds.h0000644000175000017500000000727411254565704016062 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Data Stream definitions for CUT-style file transfers. */ /* Primary Area */ #define O_FRAME_TYPE 0 /* offset to frame type */ #define FT_CONTROL_CODE 0xc3 /* frame type: control code (host->) */ #define O_CC_FRAME_SEQ 1 /* offset to frame sequence */ #define O_CC_STATUS_CODE 2 /* offset to status code */ #define SC_HOST_ACK 0x8181 /* ack of IND$FILE command */ #define SC_XFER_COMPLETE 0x8189 /* file transfer complete */ #define SC_ABORT_FILE 0x8194 /* abort, file error */ #define SC_ABORT_XMIT 0x8198 /* abort, transmission error */ #define O_CC_MESSAGE 4 /* offset of message text */ #define FT_DATA_REQUEST 0xc2 /* frame type: data request (host->) */ #define O_DR_SF 1 /* offset to start field */ #define O_DR_DATA_CODE 2 /* offset to data code */ #define O_DR_FRAME_SEQ 3 /* offset to frame sequence */ #define FT_RETRANSMIT 0x4c /* frame type: retransmit (host->) */ #define FT_DATA 0xc1 /* frame type: data (bidirectional) */ #define O_DT_FRAME_SEQ 1 /* offset to frame sequence */ #define O_DT_CSUM 2 /* offset to checksum */ #define O_DT_LEN 3 /* offset to length */ #define O_DT_DATA 5 /* offset to data */ /* Response Area */ #define O_RESPONSE 1914 /* offset to response area */ #define RO_FRAME_TYPE (O_RESPONSE+1) /* response frame type */ #define RFT_RETRANSMIT 0x4c /* response frame type: retransmit */ #define RFT_CONTROL_CODE 0xc3 /* response frame type: control code */ #define RO_FRAME_SEQ (O_RESPONSE+2) /* response frame sequence */ #define RO_REASON_CODE (O_RESPONSE+3) /* response reason code */ /* Special Data */ #define EOF_DATA1 0x5c /* special data for EOF */ #define EOF_DATA2 0xa9 /* Acknowledgement AIDs */ #define ACK_OK AID_ENTER #define ACK_RETRANSMIT AID_PF1 #define ACK_RESYNC_VM AID_CLEAR #define ACK_RESYNC_TSO AID_PA2 #define ACK_ABORT AID_PF2 /* Data area for uploads. */ #define O_UP_DATA_CODE 2 /* offset to data code */ #define O_UP_FRAME_SEQ 3 /* offset to frame sequence */ #define O_UP_CSUM 4 /* offset to checksum */ #define O_UP_LEN 5 /* offset to length */ #define O_UP_DATA 7 /* offset to start of data */ #define O_UP_MAX (1919 - O_UP_DATA) /* max upload data */ ibm-3270-3.3.10ga4/c3270/trace_dsc.h0000644000175000017500000000505511254565704016032 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * trace_dsc.h * Global declarations for trace_ds.c. */ #if defined(X3270_TRACE) /*[*/ extern Boolean trace_skipping; extern char *tracefile_name; const char *rcba(int baddr); void toggle_dsTrace(struct toggle *t, enum toggle_type tt); void toggle_eventTrace(struct toggle *t, enum toggle_type tt); void toggle_screenTrace(struct toggle *t, enum toggle_type tt); void trace_ansi_disc(void); void trace_char(char c); void trace_ds(const char *fmt, ...) printflike(1, 2); void trace_ds_nb(const char *fmt, ...) printflike(1, 2); void trace_dsn(const char *fmt, ...) printflike(1, 2); void trace_event(const char *fmt, ...) printflike(1, 2); void trace_screen(void); void trace_rollover_check(void); #else /*][*/ #define rcba 0 && #if defined(__GNUC__) /*[*/ #define trace_ds(format, args...) #define trace_dsn(format, args...) #define trace_ds_nb(format, args...) #define trace_event(format, args...) #else /*][*/ #define trace_ds 0 && #define trace_ds_nb 0 && #define trace_dsn 0 && #define trace_event 0 && #define rcba 0 && #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/c3270/actionsc.h0000644000175000017500000000465711254565704015715 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * actionsc.h * Global declarations for actions.c. */ /* types of internal actions */ enum iaction { IA_STRING, IA_PASTE, IA_REDRAW, IA_KEYPAD, IA_DEFAULT, IA_KEY, IA_MACRO, IA_SCRIPT, IA_PEEK, IA_TYPEAHEAD, IA_FT, IA_COMMAND, IA_KEYMAP, IA_IDLE }; extern enum iaction ia_cause; extern int actioncount; extern XtActionsRec *actions; extern const char *ia_name[]; #if defined(X3270_TRACE) /*[*/ extern void action_debug(XtActionProc action, XEvent *event, String *params, Cardinal *num_params); #else /*][*/ #define action_debug(a, e, p, n) #endif /*]*/ extern void action_init(void); extern void action_internal(XtActionProc action, enum iaction cause, const char *parm1, const char *parm2); extern const char *action_name(XtActionProc action); extern int check_usage(XtActionProc action, Cardinal nargs, Cardinal nargs_min, Cardinal nargs_max); extern Boolean event_is_meta(int state); ibm-3270-3.3.10ga4/c3270/objects.h0000644000175000017500000000346311254565704015535 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * objects.h * x3270 object names. */ #define ObjConfirmButton "confirmButton" #define ObjConfirm2Button "confirm2Button" #define ObjCancelButton "cancelButton" #define ObjDialog "dialog" #define ObjSmallLabel "smallLabel" #define ObjNameLabel "nameLabel" #define ObjDataLabel "dataLabel" ibm-3270-3.3.10ga4/c3270/appres.h0000644000175000017500000001527511254565704015402 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * appres.h * Application resource definitions for x3270, c3270, s3270 and * tcl3270. */ /* Toggles */ enum toggle_type { TT_INITIAL, TT_INTERACTIVE, TT_ACTION, TT_FINAL }; struct toggle { Boolean value; /* toggle value */ Boolean changed; /* has the value changed since init */ Widget w[2]; /* the menu item widgets */ const char *label[2]; /* labels */ void (*upcall)(struct toggle *, enum toggle_type); /* change value */ }; #define MONOCASE 0 #define ALT_CURSOR 1 #define CURSOR_BLINK 2 #define SHOW_TIMING 3 #define CURSOR_POS 4 #if defined(X3270_TRACE) /*[*/ #define DS_TRACE 5 #endif /*]*/ #define SCROLL_BAR 6 #if defined(X3270_ANSI) /*[*/ #define LINE_WRAP 7 #endif /*]*/ #define BLANK_FILL 8 #if defined(X3270_TRACE) /*[*/ #define SCREEN_TRACE 9 #define EVENT_TRACE 10 #endif /*]*/ #define MARGINED_PASTE 11 #define RECTANGLE_SELECT 12 #if defined(X3270_DISPLAY) /*[*/ #define CROSSHAIR 13 #define VISIBLE_CONTROL 14 #endif /*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ #define AID_WAIT 15 #endif /*]*/ #if defined(C3270) /*[*/ #define UNDERSCORE 16 #endif /*]*/ #define N_TOGGLES 17 #define toggled(ix) (appres.toggle[ix].value) #define toggle_toggle(t) \ { (t)->value = !(t)->value; (t)->changed = True; } /* Application resources */ typedef struct { /* Basic colors */ #if defined(X3270_DISPLAY) /*[*/ Pixel foreground; Pixel background; #endif /*]*/ /* Options (not toggles) */ #if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) /*[*/ Boolean mono; #endif /*]*/ Boolean extended; Boolean m3279; Boolean modified_sel; Boolean once; #if defined(X3270_DISPLAY) || (defined(C3270) && defined(_WIN32)) /*[*/ Boolean visual_bell; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ Boolean menubar; Boolean active_icon; Boolean label_icon; Boolean invert_kpshift; Boolean use_cursor_color; Boolean allow_resize; Boolean no_other; Boolean visual_select; Boolean suppress_host; Boolean suppress_font_menu; # if defined(X3270_KEYPAD) /*[*/ Boolean keypad_on; # endif /*]*/ #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ Boolean do_confirms; Boolean reconnect; #endif /*]*/ #if defined(C3270) /*[*/ Boolean all_bold_on; Boolean curses_keypad; Boolean cbreak_mode; Boolean no_prompt; #if !defined(_WIN32) /*[*/ Boolean reverse_video; #endif /*]*/ #if defined(_WIN32) /*[*/ Boolean auto_shortcut; #endif /*]*/ #endif /*]*/ Boolean apl_mode; Boolean scripted; Boolean numeric_lock; Boolean secure; Boolean oerr_lock; Boolean typeahead; Boolean debug_tracing; Boolean disconnect_clear; Boolean highlight_bold; Boolean color8; Boolean bsd_tm; Boolean unlock_delay; #if defined(X3270_SCRIPT) /*[*/ Boolean socket; int script_port; #endif /*]*/ /* Named resources */ #if defined(X3270_KEYPAD) /*[*/ char *keypad; #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ char *key_map; char *compose_map; char *printer_lu; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ char *efontname; char *fixed_size; char *icon_font; char *icon_label_font; int save_lines; char *normal_name; char *select_name; char *bold_name; char *colorbg_name; char *keypadbg_name; char *selbg_name; char *cursor_color_name; char *color_scheme; int bell_volume; char *char_class; int modified_sel_color; int visual_select_color; #if defined(X3270_DBCS) /*[*/ char *input_method; char *preedit_type; #endif /*]*/ #endif /*]*/ #if defined(X3270_DBCS) /*[*/ char *dbcs_cgcsgid; #endif /*]*/ #if defined(C3270) /*[*/ char *meta_escape; char *all_bold; char *altscreen; char *defscreen; Boolean acs; Boolean ascii_box_draw; # if !defined(_WIN32) /*[*/ Boolean mouse; # endif /*]*/ #endif /*]*/ char *conf_dir; char *model; char *hostsfile; char *port; char *charset; char *sbcs_cgcsgid; char *termname; char *login_macro; char *macros; #if defined(X3270_TRACE) /*[*/ char *trace_dir; char *trace_file; char *screentrace_file; char *trace_file_size; # if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ Boolean trace_monitor; # endif /*]*/ #endif /*]*/ char *oversize; #if defined(X3270_FT) /*[*/ char *ft_command; int dft_buffer_size; #endif /*]*/ char *connectfile_name; char *idle_command; Boolean idle_command_enabled; char *idle_timeout; #if defined(X3270_SCRIPT) /*[*/ char *plugin_command; #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ char *cert_file; #endif /*]*/ char *proxy; #if defined(TCL3270) /*[*/ int command_timeout; #endif /*]*/ int unlock_delay_ms; /* Toggles */ struct toggle toggle[N_TOGGLES]; #if defined(X3270_DISPLAY) /*[*/ /* Simple widget resources */ Cursor normal_mcursor; Cursor wait_mcursor; Cursor locked_mcursor; #endif /*]*/ #if defined(X3270_ANSI) /*[*/ /* Line-mode TTY parameters */ Boolean icrnl; Boolean inlcr; Boolean onlcr; char *erase; char *kill; char *werase; char *rprnt; char *lnext; char *intr; char *quit; char *eof; #endif /*]*/ char *hostname; #if defined(WC3270) /*[*/ char *title; #endif /*]*/ #if defined(WS3270) /*[*/ int local_cp; #endif /*]*/ #if defined(USE_APP_DEFAULTS) /*[*/ /* App-defaults version */ char *ad_version; #endif /*]*/ } AppRes, *AppResptr; extern AppRes appres; ibm-3270-3.3.10ga4/c3270/html/0000755000175000017500000000000011261530022014650 5ustar bastianbastianibm-3270-3.3.10ga4/c3270/html/Intro.html0000644000175000017500000000166211254565706016661 0ustar bastianbastian c3270 Introduction

c3270 Introduction

c3270 is a curses-based IBM 3270 terminal emulator. It can be used to communicate with any IBM host that supports 3270-style connections over TELNET. It can also communicate with hosts that use line-by-line ASCII mode to do initial login negotiation before switching to full-screen 3270 mode.

c3270 emulates one of four models of an IBM 3278 or 3279 terminal. The difference between the various models is the screen size. The emulation is not quite complete; c3270 understands extended field orders but does not implement some of the extended attributes (outlining, extended validation, etc.). ibm-3270-3.3.10ga4/c3270/html/x3270-script.html0000644000175000017500000006646311261530006017644 0ustar bastianbastian x3270-script Manual Page

x3270-script Manual Page

Contents

Name
Synopsis
Description
Status Format
Differences
Script-Specific Actions
File Transfer
See Also
Version

Name

Scripting Facilities for x3270, s3270, ws3270 and c3270

Synopsis

x3270 -script [ x3270-options ]
s3270 [ s3270-options ]
ws3270 [ ws3270-options ]
Script ( command [ ,arg... ] )

Description

The x3270 scripting facilities allow the interactive 3270 emulators x3270 and c3270 to be operated under the control of another program, and form the basis for the script-only emulators s3270 and ws3270.

There are two basic scripting methods. The first is the peer script facility, invoked by the x3270 -script switch, and the default mode for s3270 and ws3270. This runs x3270, s3270 or ws3270 as a child of another process. Typically this would be a script using expect(1), perl(1), or the co-process facility of the Korn Shell ksh(1). Inthis mode, the emulator process looks for commands on its standard input, and places the responses on standard output and standard error output.

The second method is the child script facility, invoked by the Script action in x3270, c3270, or s3270. This runs a script as a child process of the emulator. The child has access to pipes connected to the emulator; the emulator look for commands on one pipe, and places the responses on the other. (The file descriptor of the pipe for commands to the emulator is passed in the environment variable X3270INPUT; the file descriptor of the pipe for responses from the emulator is passed in the environment variable X3270OUTPUT.)

It is possible to mix the two methods. A script can invoke another script with the Script action, and may also be implicitly nested when a script invokes the Connect action, and the ibm_hosts file specifies a login script for that host name.

Commands are emulator actions; the syntax is the same as for the right-hand side of an Xt translation table entry (an x3270 or c3270 keymap). Unlike translation tables, action names are case-insensitive, can be uniquely abbreviated, and the parentheses may be omitted if there are no parameters. Any input line that begins with # or ! is treaded as a comment and will be ignored.

Any emulator action may be specified. Several specific actions have been defined for use by scripts, and the behavior of certain other actions (and of the emulators in general) is different when an action is initiated by a script.

Some actions generate output; some may delay completion until the certain external events occur, such as the host unlocking the keyboard. The completion of every command is marked by a two-line message. The first line is the current status of the emulator, documented below. If the command is successful, the second line is the string "ok"; otherwise it is the string "error".

Status Format

The status message consists of 12 blank-separated fields:
1 Keyboard State
If the keyboard is unlocked, the letter U. If the keyboard is locked waiting for a response from the host, or if not connected to a host, the letter L. If the keyboard is locked because of an operator error (field overflow, protected field, etc.), the letter E.
2 Screen Formatting
If the screen is formatted, the letter F. If unformatted or in NVT mode, the letter U.
3 Field Protection
If the field containing the cursor is protected, the letter P. If unprotected or unformatted, the letter U.
4 Connection State
If connected to a host, the string C(hostname). Otherwise, the letter N.
5 Emulator Mode
If connected in 3270 mode, the letter I. If connected in NVT line mode, the letter L. If connected in NVT character mode, the letter C. If connected in unnegotiated mode (no BIND active from the host), the letter P. If not connected, the letter N.
6 Model Number (2-5)
7 Number of Rows
The current number of rows defined on the screen. The host can request that the emulator use a 24x80 screen, so this number may be smaller than the maximum number of rows possible with the current model.
8 Number of Columns
The current number of columns defined on the screen, subject to the same difference for rows, above.
9 Cursor Row
The current cursor row (zero-origin).
10 Cursor Column
The current cursor column (zero-origin).
11 Window ID
The X window identifier for the main x3270 window, in hexadecimal preceded by 0x. For s3270, ws3270 and c3270, this is zero.
12 Command Execution Time
The time that it took for the host to respond to the previous commnd, in seconds with milliseconds after the decimal. If the previous command did not require a host response, this is a dash.

Differences

When an action is initiated by a script, the emulators behave in several different ways:

If an error occurs in processing an action, the usual pop-up window does not appear. Instead, the text is written to standard error output.

If end-of-file is detected on standard input, the emulator exits. (A script can exit without killing the emulator by using the CloseScript action, below.) Note that this applies to peer scripts only; end-of-file on the pipe connected to a child script simply causes the pipes to be closed and the Script action to complete.

The Quit action always causes the emulator to exit. (When called from the keyboard, it will exit only if not connected to a host.)

Normally, the AID actions (Clear, Enter, PF, and PA) will not complete until the host unlocks the keyboard. If the parameter to a String action includes a code for one these actions, it will also wait for the keyboard to unlock before proceeding.

The AidWait toggle controls with behavior. When this toggle is set (the default), actions block as described above. When the toggle is clear, AID actions complete immediately. The Wait(Output) action can then be used to delay a script until the host changes something on the screen, and the Wait(Unlock) action can be used to delay a script until the host unlocks the keyboard, regardless of the state of the AidWait toggle.

Note that the Script action does not complete until end-of-file is detected on the pipe or the CloseScript action is called by the child process. This behavior is not affected by the state of the AidWait toggle.

Script-Specific Actions

The following actions have been defined or modified for use with scripts. (Note that unlike the display on the status line, row and col coordinates used in these actions use [0,0] as their origin, not [1,1]).
AnsiText
Outputs whatever data that has been output by the host in NVT mode since the last time that AnsiText was called. The data is preceded by the string "data: ", and has had all control characters expanded into C backslash sequences.

This is a convenient way to capture NVT mode output in a synchronous manner without trying to decode the screen contents.

Ascii(row,col,rows,cols)
Ascii(row,col,length)
Ascii(length)
Ascii
Outputs an ASCII text representation of the screen contents. Each line is preceded by the string "data: ", and there are no control characters.

If four parameters are given, a rectangular region of the screen is output.

If three parameters are given, length characters are output, starting at the specified row and column.

If only the length parameter is given, that many characters are output, starting at the cursor position.

If no parameters are given, the entire screen is output.

The EBCDIC-to-ASCII translation and output character set depend on the both the emulator character set (the -charset option) and the locale. UTF-8 and certain DBCS locales may result in multi-byte expansions of EBCDIC characters that translate to ASCII codes greater than 0x7f.

AsciiField
Outputs an ASCII text representation of the field containing the cursor. The text is preceded by the string "data: ".
Connect(hostname)
Connects to a host. The command does not return until the emulator is successfully connected in the proper mode, or the connection fails.
CloseScript(status)
Causes the emulator to stop reading commands from the script. This is useful to allow a peer script to exit, with the emulator proceeding interactively. (Without this command, the emulator would exit when it detected end-of-file on standard input.) If the script was invoked by the Script action, the optional status is used as the return status of Script; if nonzero, Script will complete with an error, and if this script was invoked as part of login through the ibm_hosts file, the connection will be broken.
ContinueScript(param)
Allows a script that is waiting in a PauseScript action, below, to continue. The param given is output by the PauseScript action.
Disconnect
Disconnects from the host.
Ebcdic(row,col,rows,cols)
Ebcdic(row,col,length)
Ebcdic(length)
Ebcdic
The same function as Ascii above, except that rather than generating ASCII text, each character is output as a hexadecimal EBCDIC code, preceded by 0x.
EbcdicField
The same function as AsciiField above, except that it generates hexadecimal EBCDIC codes.
Info(message)
In x3270, pops up an informational message. In c3270 and wc3270, writes an informational message to the OIA (the line below the display). Not defined for s3270 or tcl3270.
Expect(text[,timeout])
Pauses the script until the specified text appears in the data stream from the host, or the specified timeout (in seconds) expires. If no timeout is specified, the default is 30 seconds. Text can contain standard C-language escape (backslash) sequences. No wild-card characters or pattern anchor characters are understood. Expect is valid only in NVT mode.
MoveCursor(row,col)
Moves the cursor to the specified coordinates.
PauseScript
Stops a script until the ContinueScript action, above, is executed. This allows a script to wait for user input and continue. Outputs the single parameter to ContinueScript.
PrintText([command,]filter)
) Pipes an ASCII representation of the current screen image through the named filter, e.g., lpr.
PrintText([html,],file,filename)
) Saves the current screen contents in a file. With the html option, saves it as HTML, otherwise saves it as plain ASCII.
PrintText(html,string)
Returns the current screen contents as HTML.
ReadBuffer(Ascii)
Dumps the contents of the screen buffer, one line at a time. Positions inside data fields are generally output as 2-digit hexadecimal codes in the current display character set. If the current locale specifies UTF-8 (or certain DBCS character sets), some positions may be output as multi-byte strings (4-, 6- or 8-digit codes). DBCS characters take two positions in the screen buffer; the first location is output as a multi-byte string in the current locale codeset, and the second location is output as a dash. Start-of-field characters (each of which takes up a display position) are output as SF(aa=nn[,...]), where aa is a field attribute type and nn is its value.

Attribute
Values
c0 basic 3270
20 protected
10 numeric
04 detectable
08 intensified
0c non-display
01 modified
41 highlighting
f1 blink
f2 reverse
f4 underscore
f8 intensify
42 foreground
f0 neutral black
f1 blue
f2 red
f3 pink
f4 green
f5 turquoise
f6 yellow
f7 neutral white
f8 black
f9 deep blue
fa orange
fb purple
fc pale green
fd pale turquoise
fe grey
ff white
43 character set
f0 default
f1 APL
f8 DBCS

Extended attributes (which do not take up display positions) are output as SA(aa=nn), with aa and nn having the same definitions as above (though the basic 3270 attribute will never appear as an extended attribute).

In addition, NULL characters in the screen buffer are reported as ASCII character 00 instead of 20, even though they should be displayed as blanks.

ReadBuffer(Ebcdic)
Equivalent to Snap(Ascii), but with the data fields output as hexadecimal EBCDIC codes instead. Additionally, if a buffer position has the Graphic Escape attribute, it is displayed as GE(xx).
Snap
Equivalent to Snap(Save) (see below).
Snap(Ascii,...)
Performs the Ascii action on the saved screen image.
Snap(Cols)
Returns the number of columns in the saved screen image.
Snap(Ebcdic,...)
Performs the Ebcdic action on the saved screen image.
Snap(ReadBuffer)
Performs the ReadBuffer action on the saved screen image.
Snap(Rows)
Returns the number of rows in the saved screen image.
Snap(Save)
Saves a copy of the screen image and status in a temporary buffer. This copy can be queried with other Snap actions to allow a script to examine a consistent screen image, even when the host may be changing the image (or even the screen dimensions) dynamically.
Snap(Status)
Returns the status line from when the screen was last saved.
Snap(Wait[,timeout],Output)
Pauses the script until the host sends further output, then updates the snap buffer with the new screen contents. Used when the host unlocks the keyboard (allowing the script to proceed after an Enter, PF or PA action), but has not finished updating the screen. This action is usually invoked in a loop that uses the Snap(Ascii) or Snap(Ebcdic) action to scan the screen for some pattern that indicates that the host has fully processed the last command.

The optional timeout parameter specifies a number of seconds to wait before failing the Snap action. The default is to wait indefinitely.

Source(file)
Read and execute commands from file. Any output from those commands will become the output from Source. If any of the commands fails, the Source command will not abort; it will continue reading commands until EOF.
Title(text)
Changes the x3270 window title to text.
Transfer(keyword=value,...)
Invokes IND$FILE file transfer. See FILE TRANSFER below.
Wait([timeout,] 3270Mode)
Used when communicating with a host that switches between NVT mode and 3270 mode. Pauses the script or macro until the host negotiates 3270 mode, then waits for a formatted screen as above.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

For backwards compatibility, Wait(3270) is equivalent to Wait(3270Mode)

Wait([timeout,] Disconnect)
Pauses the script until the host disconnects. Often used to after sending a logoff command to a VM/CMS host, to ensure that the session is not unintentionally set to disconnected state.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

Wait([timeout,] InputField)
A useful utility for use at the beginning of scripts and after the Connect action. In 3270 mode, waits until the screen is formatted, and the host has positioned the cursor on a modifiable field. In NVT mode, waits until the host sends at least one byte of data.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

For backwards compatibility, Wait is equivalent to Wait(InputField).

Wait([timeout,] NVTMode)
Used when communicating with a host that switches between 3270 mode and NVT mode. Pauses the script or macro until the host negotiates NVT mode, then waits for a byte from the host as above.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

For backwards compatibility, Wait(ansi) is equivalent to Wait(NVTMode).

Wait([timeout,] Output)
Pauses the script until the host sends further output. Often needed when the host unlocks the keyboard (allowing the script to proceed after a Clear, Enter, PF or PA action), but has not finished updating the screen. Also used in non-blocking AID mode (see DIFFERENCES for details). This action is usually invoked in a loop that uses the Ascii or Ebcdic action to scan the screen for some pattern that indicates that the host has fully processed the last command.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

Wait([timeout,] Unlock)
Pauses the script until the host unlocks the keyboard. This is useful when operating in non-blocking AID mode (toggle AidWait clear), to wait for a host command to complete. See DIFFERENCES for details).

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

Wait(timeout, Seconds)
Delays the script timeout seconds. Unlike the other forms of Wait, the timeout is not optional.
WindowState(mode)
If mode is Iconic, changes the x3270 window into an icon. If mode is Normal, changes the x3270 window from an icon to a normal window.

File Transfer

The Transfer action implements IND$FILE file transfer. This action requires that the IND$FILE program be installed on the IBM host, and that the 3270 cursor be located in a field that will accept a TSO or VM/CMS command.

The Transfer action can be entered at the command prompt with no parameters, which will cause it to prompt interactively for the file names and options. It can also be invoked with parameters to define the entire transfer.

Because of the complexity and number of options for file transfer, the parameters to the Transfer action take the unique form of option=value, and can appear in any order. Note that if the value contains spaces (such as a VM/CMS file name), then the entire parameter must be quoted, e.g., "HostFile=xxx foo a". The options are:

Option Required? Default Other Values
Direction No receive send
HostFile Yes    
LocalFile Yes    
Host No tso vm
Mode No ascii binary
Cr No remove add, keep
Remap No yes no
Exist No keep replace, append
Recfm No   fixed, variable, undefined
Lrecl No    
Blksize No    
Allocation No   tracks, cylinders, avblock
PrimarySpace No    
SecondarySpace No    
BufferSize No 4096  

The option details are as follows.

Direction
send to send a file to the host, receive to receive a file from the host.
HostFile
The name of the file on the host.
LocalFile
The name of the file on the local workstation.
Host
The type of host (which dictates the form of the IND$FILE command): tso (the default) or vm.
Mode
Use ascii (the default) for a text file, which will be translated between EBCDIC and ASCII as necessary. Use binary for non-text files.
Cr
Controls how Newline characters are handled when transferring Mode=ascii files. remove (the default) strips Newline characters in local files before transferring them to the host. add adds Newline characters to each host file record before transferring it to the local workstation. keep preserves Newline characters when transferring a local file to the host.
Remap
Controls text translation for Mode=ascii files. The value yes (the default) causes x3270-script to remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page. The value no causes x3270-script to pass the text to or from the host as-is, leaving all translation to the IND$FILE program on the host.
Exist
Controls what happens when the destination file already exists. keep (the default) preserves the file, causing the Transfer action to fail. replace overwrites the destination file with the source file. append appends the source file to the destination file.
Recfm
Controls the record format of files created on the host. fixed creates a file with fixed-length records. variable creates a file with variable-length records. undefined creates a file with undefined-length records (TSO hosts only). The Lrecl option controls the record length or maximum record length for Recfm=fixed and Recfm=variable files, respectively.
Lrecl
Specifies the record length (or maximum record length) for files created on the host.
Blksize
Specifies the block size for files created on the host. (TSO hosts only.)
Allocation
Specifies the units for the TSO host PrimarySpace and SecondarySpace options: tracks, cylinders or avblock.
PrimarySpace
Primary allocation for a file created on a TSO host. The units are given by the Allocation option.
SecondarySpace
Secondary allocation for a file created on a TSO host. The units are given by the Allocation option.
BufferSize
Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them.

See Also

expect(1)
ksh(1)
x3270(1)
c3270(1)
s3270(1)
ws3270(1)

Version

Version 3.3.10ga4
This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/c3270/html/c3270-man.html0000644000175000017500000017146411261530006017064 0ustar bastianbastian c3270 Manual Page

c3270 Manual Page

Contents

Name
Synopsis
Description
Options
Modes
Character Sets
Hosts Database
NVT (ANSI) Mode
Toggles
Status Line
Actions
Keymaps
The Meta or Alt Key
File Transfer
The PrintText Action
Scripts
Composite Characters
Printer Support
Passthru
Proxy
Screen Size Switching
Resources
Files
See Also
Copyrights
Version

Name

c3270 - curses-based IBM host access tool

Synopsis

c3270 [options] [host]
c3270 [options] session-file.c3270

Description

c3270 opens a telnet connection to an IBM host in a console window. It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection), and supports IND$FILE file transfer. If the console is capable of displaying colors, then c3270 emulates an IBM 3279. Otherwise, it emulates a 3278.

The full syntax for host is:

[prefix:]...[LUname@]hostname[:port]

Prepending a P: onto hostname causes the connection to go through the telnet-passthru service rather than directly to the host. See PASSTHRU below.

Prepending an S: onto hostname removes the "extended data stream" option reported to the host. See -tn below for further information.

Prepending an N: onto hostname turns off TN3270E support for the session.

Prepending an L: onto hostname causes c3270 to first create an SSL tunnel to the host, and then create a TN3270 session inside the tunnel. (This function is supported only if c3270 was built with SSL/TLS support). Note that TLS-encrypted sessions using the TELNET START-TLS option are negotiated with the host automatically; for these sessions the L: prefix should not be used.

A specific Logical Unit (LU) name to use may be specified by prepending it to the hostname with an `@'. Multiple LU names to try can be separated by commas. An empty LU can be placed in the list with an extra comma. (Note that the LU name is used for different purposes by different kinds of hosts. For example, CICS uses the LU name as the Terminal ID.)

The hostname may optionally be placed inside square-bracket characters `[' and `]'. This will prevent any colon `:' characters in the hostname from being interpreted as indicating option prefixes or port numbers. This allows numeric IPv6 addresses to be used as hostnames.

On systems that support the forkpty library call, the hostname may be replaced with -e and a command string. This will cause c3270 to connect to a local child process, such as a shell.

The port to connect to defaults to telnet. This can be overridden with the -port option, or by appending a port to the hostname with a colon `:'. (For compatability with previous versions of c3270 and with tn3270(1), the port may also be specified as a second, separate argument.)

Options

c3270 understands the following options:
-allbold
Forces all characters to be displayed in bold. This helps with PC consoles which display non-bold characters in unreadably dim colors. All-bold mode is the default for color displays, but not for monochrome displays.
-altscreen rowsxcols=init_string
Defines the dimensions and escape sequence for the alternate (132-column) screen mode. See SCREEN SIZE SWITCHING, below.
-cbreak
Causes c3270 to operate in cbreak mode, instead of raw mode. In cbreak mode, the TTY driver will properly process XOFF and XON characters, which are required by some terminals for proper operation. However, those characters (usually ^S and ^Q), as well as the characters for interrupt, quit, and lnext (usually ^C, ^\ and ^V respectively) will be seen by c3270 only if preceded by the lnext character. The susp character (usually ^Z) cannot be seen by c3270 at all.
-charset name
Specifies an EBCDIC host character set. See CHARACTER SETS below.
-clear toggle
Sets the initial value of toggle to false. The list of toggle names is under TOGGLES below.
-defscreen rowsxcols=init_string
Defines the dimensions and escape sequence for the default (80-column) screen mode. See SCREEN SIZE SWITCHING, below.
-hostsfile file
Uses file as the hosts file, which allows aliases for host names and scripts to be executed at login. See ibm_hosts(1) for details.
-im method
Specifies the name of the input method to use for multi-byte input. (Supported only when c3270 is compiled with DBCS support.)
-keymap name
Specifies a keyboard map to be found in the resource c3270.keymap.name or the file name. See KEYMAPS below for details.
-km name
Specifies the local encoding method for multi-byte text. name is an encoding name recognized by the ICU library. (Supported only when c3270 is compiled with DBCS support, and necessary only when c3270 cannot figure it out from the locale.)
-model name
The model of 3270 display to be emulated. The model name is in two parts, either of which may be omitted:

The first part is the base model, which is either 3278 or 3279. 3278 specifies a monochrome (green on black) 3270 display; 3279 specifies a color 3270 display.

The second part is the model number, which specifies the number of rows and columns. Model 4 is the default.

Model Number
Columns
Rows
2
80
24
3
80
32
4
80
43
5
132
27

Note: Technically, there is no such 3270 display as a 3279-4 or 3279-5, but most hosts seem to work with them anyway.

The default model for a color display is 3279-4. For a monochrome display, it is 3278-4.

-mono
Prevents c3270 from using color, ignoring any color capabilities reported by the terminal.
-noprompt
Disables command-prompt mode.
-oversize colsxrows
Makes the screen larger than the default for the chosen model number. This option has effect only in combination with extended data stream support (controlled by the "c3270.extended" resource), and only if the host supports the Query Reply structured field. The number of columns multiplied by the number of rows must not exceed 16383 (3fff hex), the limit of 14-bit 3270 buffer addressing.

It can also be specified as auto, which causes c3270 to fill the entire terminal or console window.

-port n
Specifies a different TCP port to connect to. n can be a name from /etc/services like telnet, or a number. This option changes the default port number used for all connections. (The positional parameter affects only the initial connection.)
-proxy type:host[:port]
Causes c3270 to connect via the specified proxy, instead of using a direct connection. The host can be an IP address or hostname. The optional port can be a number or a service name. For a list of supported proxy types, see PROXY below.
-printerlu luname
Causes c3270 to automatically start a pr3287 printer session. If luname is ".", then the printer session will be associated with the interactive terminal session (this requires that the host support TN3270E). Otherwise, the value is used as the explicit LU name to associate with the printer session.
-reconnect
Causes c3270 to automatically reconnect to the host if it ever disconnects. This option has effect only if a hostname is specified on the command line.
-rv
Switches c3270 from a white-on-black display to a black-on-white display.
-scriptport port
Causes c3270 to listen for scripting connections on local TCP port port.
-secure
Disables the interactive c3270> prompt. When used, a hostname must be provided on the command line.
-set toggle
Sets the initial value of toggle to true. The list of toggle names is under TOGGLES below.
-socket
Causes the emulator to create a Unix-domain socket when it starts, for use by script processes to send commands to the emulator. The socket is named /tmp/x3sck.process_id. The -p option of x3270if causes it to use this socket, instead of pipes specified by environment variables.
-tn name
Specifies the terminal name to be transmitted over the telnet connection. The default name is IBM-model_name-E, for example, IBM-3279-4-E for a color display, or IBM-3278-4-E for a monochrome display.

Some hosts are confused by the -E suffix on the terminal name, and will ignore the extra screen area on models 3, 4 and 5. Prepending an s: on the hostname, or setting the "c3270.extended" resource to "false", removes the -E from the terminal name when connecting to such hosts.

The name can also be specified with the "c3270.termName" resource.

-trace
Turns on data stream and event tracing at startup. The default trace file name is /tmp/x3trc.process_id.
-tracefile file
Specifies a file to save data stream and event traces into.
-tracefilesize size
Places a limit on the size of a trace file. If this option is not specified, or is specified as 0 or none, the trace file will be unlimited. If specified, the trace file cannot already exist, and the (silently enforced) minimum size is 64 Kbytes. The value of size can have a K or M suffix, indicating kilobytes or megabytes respectively.
-v Display the version and build options for c3270
and exit.
-xrm "c3270.resource: value"
Sets the value of the named resource to value. Resources control less common c3270 options, and are defined under RESOURCES below.

Modes

c3270 has two basic modes: command-prompt and session.

Command-prompt mode is where the c3270> prompt is displayed. Interactive commands can be entered at this prompt, to connect to a host, disconnect from a host, transfer files, display statistics, exit c3270, etc. The complete list of interactive commands is listed under ACTIONS.

Session mode is where the emulated 3270 screen is displayed; keyboard commands cause the display buffer to be modified or data to be sent to the host.

To switch from display mode to command-prompt mode, press Ctrl-]. To switch from command-prompt mode to display mode, press Enter (without entering a command) at the c3270> prompt.

Character Sets

The -charset option or the "c3270.charset" resource controls the EBCDIC host character set used by c3270. Available sets include:

Charset Name
Host Code Page
Display Character Set
belgian
500
iso8859-1
belgian-euro
1148
iso8859-15
bracket
037
iso8859-1
brazilian
275
iso8859-1
chinese-gb18030
1388
iso8859-1 + iso10646-1
cp1047
1047
iso8859-1
cp870
870
iso8859-2
finnish
278
iso8859-1
finnish-euro
1143
iso8859-15
french
297
iso8859-1
french-euro
1147
iso8859-15
german
273
iso8859-1
german-euro
1141
iso8859-15
greek
423
iso8859-7
hebrew
424
iso8859-8
icelandic
871
iso8859-1
icelandic-euro
1149
iso8859-15
italian
280
iso8859-1
italian-euro
1144
iso8859-15
japanese-kana
930
jisx0201.1976-0 + jisx0208.1983-0
japanese-latin
939
jisx0201.1976-0 + jisx0208.1983-0
norwegian
277
iso8859-1
norwegian-euro
1142
iso8859-15
russian
880
koi8-r
simplified-chinese
935
iso8859-1 + gb2312.1980-0
slovenian
870
iso8859-2
spanish
284
iso8859-1
spanish-euro
1145
iso8859-15
thai
1160
iso8859-11 tis620.2529-0
traditional-chinese
937
iso8859-1 + Big5-0
turkish
1026
iso8859-9
uk
285
iso8859-1
uk-euro
1146
iso8859-15
us-euro
1140
iso8859-15
us-intl
037
iso8859-1

The default character set is bracket, which is useful for common U.S. IBM hosts which use EBCDIC codes AD and BD for the `[' and `]' characters, respectively.

Note that any of the host code pages listed above can be specified by adding cp to the host code page, e.g., cp037 for host code page 037. Also note that the code pages available for a given version of c3270 are displayed by the -v command-line option.

Hosts Database

c3270 uses the ibm_hosts database to define aliases for host names, and to specify macros to be executed when a connection is first made. See ibm_hosts(5) for details.

You may specify a different ibm_hosts database with the "c3270.hostsFile" resource.

NVT (ANSI) Mode

Some hosts use an ASCII front-end to do initial login negotiation, then later switch to 3270 mode. c3270 will emulate an ANSI X.64 terminal until the host places it in 3270 mode (telnet BINARY and SEND EOR modes, or TN3270E mode negotiation).

If the host later negotiates to stop functioning in 3270 mode, c3270 will return to ANSI emulation.

In NVT mode, c3270 supports both character-at-a-time mode and line mode operation. You may select the mode with a menu option. When in line mode, the special characters and operational characteristics are defined by resources:

Mode/Character Resource Default
Translate CR to NL c3270.icrnl true
Translate NL to CR c3270.inlcr false
Erase previous character c3270.erase ^?
Erase entire line c3270.kill ^U
Erase previous word c3270.werase ^W
Redisplay line c3270.rprnt ^R
Ignore special meaning of next character c3270.lnext ^V
Interrupt c3270.intr ^C
Quit c3270.quit ^\
End of file c3270.eof ^D

Separate keymaps can be defined for use only when c3270 is in 3270 mode or NVT mode. See KEYMAPS for details.

Toggles

c3270 has a number of configurable modes which may be selected by the -set and -clear options.
monoCase
If set, c3270 operates in uppercase-only mode.
blankFill
If set, c3270 behaves in some un-3270-like ways. First, when a character is typed into a field, all nulls in the field to the left of that character are changed to blanks. This eliminates a common 3270 data-entry surprise. Second, in insert mode, trailing blanks in a field are treated like nulls, eliminating the annoying `lock-up' that often occurs when inserting into an field with (apparent) space at the end.
lineWrap
If set, the ANSI terminal emulator automatically assumes a NEWLINE character when it reaches the end of a line.
underscore
If set, c3270 will display underlined fields by substituting underscore `_' characters for blanks or nulls in the field. Otherwise, these fields will be displayed using the terminal's native unerlining mode, if one is defined.

The names of the toggles for use with the -set and -clear options are as follows:

Option Name
Monocase monoCase
Blank Fill blankFill
Track Cursor cursorPos
Trace Data Stream dsTrace
Trace Events eventTrace
Save Screen(s) in File screenTrace
Wraparound lineWrap
Underscore Mode underscore

These names are also used as the first parameter to the Toggle action.

Status Line

If the terminal that c3270 is running on has at least one more row that the 3270 model requires (e.g., 25 rows for a model 2), c3270 will display a status line. The c3270 status line contains a variety of information. From left to right, the fields are:
comm status
The first symbol is always a 4. If c3270 is in TN3270E mode, the second symbol is a B; otherwise it is an A. If c3270 is in SSCP-LU mode, the third symbol is an S. Otherwise it is blank.
keyboard lock
If the keyboard is locked, an "X" symbol and a message field indicate the reason for the keyboard lock.
typeahead
The letter "T" indicates that one or more keystrokes are in the typeahead buffer.
temporary keymap
The letter "K" indicates that a temporary keymap is in effect.
reverse
The letter "R" indicates that the keyboard is in reverse field entry mode.
insert mode
The letter "I" indicates that the keyboard is in insert mode.
printer session
The letter "P" indicates that a pr3287 session is active.
secure connection
A green letter "S" indicates that the connection is secured via SSL/TLS.
LU name
The LU name associated with the session, if there is one.
cursor position
The cursor row and column are optionally displayed, separated by a "/".

Actions

Here is a complete list of basic c3270 actions. Script-specific actions are described on the x3270-script(1) manual page.

Actions marked with an asterisk (*) may block, sending data to the host and possibly waiting for a response.

*Attn attention key
BackSpace move cursor left (or send ASCII BS)
BackTab tab to start of previous input field
CircumNot input "^" in NVT mode, or "¬" in 3270 mode
*Clear clear screen
Compose next two keys form a special symbol
*Connect(host) connect to host
*CursorSelect Cursor Select AID
Delete delete character under cursor (or send ASCII DEL)
DeleteField delete the entire field
DeleteWord delete the current or previous word
*Disconnect disconnect from host
Down move cursor down
Dup duplicate field
*Enter Enter AID (or send ASCII CR)
Erase erase previous character (or send ASCII BS)
EraseEOF erase to end of current field
EraseInput erase all input fields
Escape escape to c3270> prompt
Execute(cmd) execute a command in a shell
FieldEnd move cursor to end of field
FieldMark mark field
HexString(hex_digits) insert control-character string
Home move cursor to first input field
Insert set insert mode
*Interrupt send TELNET IP to host
Key(keysym) insert key keysym
Key(0xxx) insert key with character code xx
Left move cursor left
Left2 move cursor left 2 positions
MonoCase toggle uppercase-only mode
MoveCursor(row, col) move cursor to (row,col)
Newline move cursor to first field on next line (or send ASCII LF)
NextWord move cursor to next word
*PA(n) Program Attention AID (n from 1 to 3)
*PF(n) Program Function AID (n from 1 to 24)
PreviousWord move cursor to previous word
Printer(Start[,lu]|Stop) start or stop printer session
PrintText(command) print screen text on printer
Quit exit c3270
Redraw redraw window
Reset reset locked keyboard
Right move cursor right
Right2 move cursor right 2 positions
*Script(command[,arg...]) run a script
*String(string) insert string (simple macro facility)
*SysReq System Request AID
Tab move cursor to next input field
Toggle(option[,set|clear]) toggle an option
ToggleInsert toggle insert mode
ToggleReverse toggle reverse-input mode
*Transfer(option=value...) file transfer
Up move cursor up
ignore do nothing

Any of the above actions may be entered at the c3270> prompt; these commands are also available for use in keymaps (see KEYMAPS). Command names are case-insensitive. Parameters can be specified with parentheses and commas, e.g.:

PF(1)
or with spaces, e.g.:
PF 1
Parameters can be quoted with double-quote characters, to allow spaces, commas, and parentheses to be used.

c3270 also supports the following interactive commands:

Help
Displays a list of available commands.
Show
Displays statistics and settings.
Trace
Turns tracing on or off. The command trace on enables data stream and keyboard event tracing; the command trace off disables it. The qualifier data or keyboard can be specified before on or off to enable or disable a particular trace. After on, a filename may be specified to override the default trace file name of /tmp/x3trc.pid.

Keymaps

The -keymap option or the c3270.keymap resource allow a custom keymap to be specified. If the option -keymap xxx is given (or the c3270.keymap resource has the value xxx), c3270 will look for a resource named c3270.keymap.xxx. If no resource definition is found, it will look for a file named xxx.

Multiple keymaps may be specified be separating their names with commas. Definitions in later keymaps supercede those in earlier keymaps.

In addition, separate keymaps may be defined that apply only in 3270 mode or NVT mode. For example, the resource definition c3270.keymap.xxx.nvt or the file xxx.nvt will augment the definition of keymap xxx in NVT mode. Similarly, the resource definition c3270.keymap.xxx.3270 or the file xxx.3270 will augment the definition of keymap xxx in 3270 mode.

Each line (rule) in a keymap specifies actions to perform when a particular key or sequence of keys is pressed. Keymap rules have the following syntax:

[Meta][Ctrl]<Key>key...: action[(param[,...])] ...

Here is a sample keymap definition from a file:

! Lines beginning with ! are ignored and can
! occur anywhere.
! Definition of keymap xxx
!  When Alt-c is pressed, clear the screen.
Alt<Key>c: Clear()
!  When PageUp is pressed, send PF7 to the host.
<Key>PPAGE: PF(7)
!  When Ctrl-a is pressed, then F1, send PF13
!  to the host.
Ctrl<Key>a <Key>F1: PF(13)

Here is the same definition as a resource:

! Lines beginning with ! are ignored, but NOT
! within a definition.
! Note that the \ is required at the end of the
! first line, and \n\ is
! required at the end of every other line except
! the last.
! Definition of keymap xxx
c3270.keymap.xxx: \
 Alt<Key>c: Clear() \n\
 <Key>PPAGE: PF(7) \n\
 Ctrl<Key>A <Key>F1: PF(13)

The optional Alt or Ctrl modifiers specify that the Alt and Ctrl keys are pressed along with the specified key, respectively. Key is either an ISO 8859-1 symbol name, such as equal for `=' and a for `a', or a symbolic ncurses key name, such as UP. More than one key can be specified, indicating that a sequence of keys must be pressed in order for the rule to be matched. The action is an action from the ACTIONS list above. More than one action may be specified; they will be executed in order.

Keymap entries are case-sensitive and modifier-specific. This means that a keymap for the b key will match only a lowercase b. Actions for uppercase B, or for Alt-b or Control-B, must be specified separately.

The base keymap is:

Key Action
Ctrl<Key>] Escape
Ctrl<Key>a Ctrl<Key>a Key(0x01)
Ctrl<Key>a Ctrl<Key>] Key(0x1d)
Ctrl<Key>a <Key>Tab BackTab
Ctrl<Key>a <Key>c Clear
Ctrl<Key>a <Key>e Escape
Ctrl<Key>a <Key>r Reset
Ctrl<Key>a <Key>l Redraw
Ctrl<Key>a <Key>m Compose
Ctrl<Key>a <Key>^ Key(notsign)
<Key>UP Up
<Key>DOWN Down
<Key>LEFT Left
<Key>RIGHT Right
<Key>F(n) PF(n)
Ctrl<Key>a <Key>F(n) PF(n+12)
Ctrl<Key>a <Key>1 PA(1)
Ctrl<Key>a <Key>2 PA(2)
Ctrl<Key>a <Key>3 PA(3)

The base 3270-mode keymap adds:

Key Action
Ctrl<Key>c Clear
Ctrl<Key>d Dup
Ctrl<Key>f FieldMark
Ctrl<Key>i Tab
Ctrl<Key>l Redraw
Ctrl<Key>r Reset
Ctrl<Key>u DeleteField
<Key>BackSpace BackSpace
<Key>Return Enter
<Key>Tab Tab
<Key>Linefeed Newline
<Key>BACKSPACE BackSpace
<Key>DC Delete
<Key>HOME Home
<Key>IC ToggleInsert

The Meta or Alt Key

Some keyboards do not have a Meta key. Instead, they have an Alt key. Sometimes this key acts as a proper Meta key, that is, it is a modifier key that sets the high-order bit (0x80) in the code that is transmitted for each key. Other keyboards send a two-character sequence when the Alt key is pressed with another key: the Escape character (0x1b), followed by the code for the other key.

The resource c3270.metaEscape and the termcap km attribute control how c3270 will interpret these sequences. When c3270.metaEscape is set to true, or when c3270.metaEscape is set to auto and the termcap km attribute is set, the keyboard is assumed to have a separate Meta key. The Escape key can be used as an ordinary data key and has no special meaning.

When c3270.metaEscape is set to true, or when c3270.metaEscape is set to auto and the termcap km attribute is not set, the keyboard is assumed to use the Escape character as a prefix to indicate that the following character is supposed to have the high-order bit set. When c3270 sees an Escape character from the keyboard, it sets a short timeout. If another character arrives before the timeout expires, then c3270 will combine the two characters, setting the high-order bit of the second. In an event trace file, the combined character is listed as derived. In a keymap, only the combined character or the Meta prefix may be used. The Escape key can still be used by itself, but only if there is a short pause before pressing another key.

The default value for c3270.metaEscape is auto.

File Transfer

The Transfer action implements IND$FILE file transfer. This action requires that the IND$FILE program be installed on the IBM host, and that the 3270 cursor be located in a field that will accept a TSO or VM/CMS command.

The Transfer action can be entered at the command prompt with no parameters, which will cause it to prompt interactively for the file names and options. It can also be invoked with parameters to define the entire transfer.

Because of the complexity and number of options for file transfer, the parameters to the Transfer action take the unique form of option=value, and can appear in any order. Note that if the value contains spaces (such as a VM/CMS file name), then the entire parameter must be quoted, e.g., "HostFile=xxx foo a". The options are:

Option Required? Default Other Values
Direction No receive send
HostFile Yes    
LocalFile Yes    
Host No tso vm
Mode No ascii binary
Cr No remove add, keep
Remap No yes no
Exist No keep replace, append
Recfm No   fixed, variable, undefined
Lrecl No    
Blksize No    
Allocation No   tracks, cylinders, avblock
PrimarySpace No    
SecondarySpace No    
BufferSize No 4096  

The option details are as follows.

Direction
send to send a file to the host, receive to receive a file from the host.
HostFile
The name of the file on the host.
LocalFile
The name of the file on the local workstation.
Host
The type of host (which dictates the form of the IND$FILE command): tso (the default) or vm.
Mode
Use ascii (the default) for a text file, which will be translated between EBCDIC and ASCII as necessary. Use binary for non-text files.
Cr
Controls how Newline characters are handled when transferring Mode=ascii files. remove (the default) strips Newline characters in local files before transferring them to the host. add adds Newline characters to each host file record before transferring it to the local workstation. keep preserves Newline characters when transferring a local file to the host.
Remap
Controls text translation for Mode=ascii files. The value yes (the default) causes c3270 to remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page. The value no causes c3270 to pass the text to or from the host as-is, leaving all translation to the IND$FILE program on the host.
Exist
Controls what happens when the destination file already exists. keep (the default) preserves the file, causing the Transfer action to fail. replace overwrites the destination file with the source file. append appends the source file to the destination file.
Recfm
Controls the record format of files created on the host. fixed creates a file with fixed-length records. variable creates a file with variable-length records. undefined creates a file with undefined-length records (TSO hosts only). The Lrecl option controls the record length or maximum record length for Recfm=fixed and Recfm=variable files, respectively.
Lrecl
Specifies the record length (or maximum record length) for files created on the host.
Blksize
Specifies the block size for files created on the host. (TSO hosts only.)
Allocation
Specifies the units for the TSO host PrimarySpace and SecondarySpace options: tracks, cylinders or avblock.
PrimarySpace
Primary allocation for a file created on a TSO host. The units are given by the Allocation option.
SecondarySpace
Secondary allocation for a file created on a TSO host. The units are given by the Allocation option.
BufferSize
Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them.

The PrintText Action

The PrintText produces screen snapshots in a number of different forms. The default form wth no arguments sends a copy of the screen to the default printer. A single argument is the command to use to print, e.g., lpr. Multiple arguments can include keywords to control the output of PrintText:
file filename
Save the output in a file.
html
Save the output as HTML. This option implies file.
rtf
Save the output as RichText. This option implies file. The font defaults to Courier New and the point size defaults to 8. These can be overridden by the printTextFont and printTextSize resources, respectively.
string
Return the output as a string. This can only be used from scripts.
modi
Render modified fields in italics.
caption text
Add the specified text as a caption above the output. Within text, the special sequence %T% will be replaced with a timestamp.
command command
Directs the output to a command. This allows one or more of the other keywords to be specified, while still sending the output to the printer.

Scripts

There are several types of script functions available.
The String Action
The simplest method for scripting is provided via the String action. The arguments to String are one or more double-quoted strings which are inserted directly as if typed. The C backslash conventions are honored as follows. (Entries marked * mean that after sending the AID code to the host, c3270 will wait for the host to unlock the keyboard before further processing the string.)
\b Left
\exxxx EBCDIC character in hex
\f Clear*
\n Enter*
\pan PA(n)*
\pfnn PF(nn)*
\r Newline
\t Tab
\T BackTab
\uxxxx Unicode character in hex
\xxxxx Unicode character in hex

Note that the numeric values for the \e, \u and \x sequences can be abbreviated to 2 digits. Note also that EBCDIC codes greater than 255 and some Unicode character codes represent DBCS characters, which will work only if c3270 is built with DBCS support and the host allows DBCS input in the current field.

An example keymap entry would be:

Meta<Key>p: String("probs clearrdr\n")

Note: The strings are in ASCII and converted to EBCDIC, so beware of inserting control codes.

There is also an alternate form of the String action, HexString, which is used to enter non-printing data. The argument to HexString is a string of hexadecimal digits, two per character. A leading 0x or 0X is optional. In 3270 mode, the hexadecimal data represent EBCDIC characters, which are entered into the current field. In NVT mode, the hexadecimal data represent ASCII characters, which are sent directly to the host.

The Script Action
This action causes c3270 to start a child process which can execute c3270 actions. Standard input and output from the child process are piped back to c3270. The Script action is fully documented in x3270-script(1).

Composite Characters

c3270 allows the direct entry of accented letters and special symbols. Pressing and releasing the "Compose" key, followed by two other keys, causes entry of the symbol combining those two keys. For example, "Compose" followed by the "C" key and the "," (comma) key, enters the "C-cedilla" symbol. A C on the status line indicates a pending composite character.

The mappings between these pairs of ordinary keys and the symbols they represent is controlled by the "c3270.composeMap" resource; it gives the name of the map to use. The maps themselves are named "c3270.composeMap.name". The default is "latin1", which gives mappings for most of the symbols in the ISO 8859-1 Latin-1 character set that are not in the 7-bit ASCII character set.

Note: The default keymap defines Meta<Key>m as the "Compose" key. You may set up your own "Compose" key with a keymap that maps some other keysym onto the Compose action.

Printer Support

c3270 supports associated printer sessions via the pr3287(1) program. The Printer action is used to start or stop a pr3287 session.

The action Printer Start starts a printer session, associated with the current LU. (This works only if the host supports TN3270E.)

The action Printer Start lu starts a printer session, associated with a specific lu.

The action Printer Stop stops a printer session.

The resource c3270.printer.command specifies the command used to print each job; it defaults to lpr. The resource c3270.printer.assocCommandLine specifies the command used to start an associated printer session. It defaults to:

pr3287 -assoc %L% -command "%C%" %P% %H%

The resource c3270.printer.luCommandLine specifies the command used to start a specific-LU printer session. It defaults to:

pr3287 -command "%C%" %R% %P% %L%@%H%

When the printer session command is run, the following substitutions are made:

Token Substitition
%C% Command (value of c3270.printer.command)
%H% Host IP address
%L% Current or specified LU
%P% Proxy specification
%R% Character set

See pr3287(1) for further details.

The resource c3270.printerLu controls automatic printer session start-up. If it is set to `.', then whenever a login session is started, a printer session will automatically be started, associated with the login session. If it is set an LU name, then the automatic printer session will be associated with the specified LU.

Passthru

c3270 supports the Sun telnet-passthru service provided by the in.telnet-gw server. This allows outbound telnet connections through a firewall machine. When a p: is prepended to a hostname, c3270 acts much like the itelnet(1) command. It contacts the machine named internet-gateway at the port defined in /etc/services as telnet-passthru (which defaults to 3514). It then passes the requested hostname and port to the in.telnet-gw server.

Proxy

The -proxy option or the c3270.proxy resource causes c3270 to use a proxy server to connect to the host. The syntax of the option or resource is:
type:host[:port]
The supported values for type are:
Proxy Type
Protocol
Default Port
http
RFC 2817 HTTP tunnel (squid)
3128
passthru
Sun in.telnet-gw
none
socks4
SOCKS version 4
1080
socks5
SOCKS version 5 (RFC 1928)
1080
telnet
No protocol (just send connect host port)
none

The special types socks4a and socks5d can also be used to force the proxy server to do the hostname resolution for the SOCKS protocol.

Screen Size Switching

When running as a 3270 Model 5, c3270 can take advantage of terminals that can switch between 80 and 132 column modes.

Because the curses library does not support mode switching, the escape sequences and resulting screen dimensions must be specified explicitly to c3270. These are specified with the -altscreen and -defscreen command-line options, or the altScreen and defScreen resources. -altscreen or altScreen defines the alternate (132-column) mode; -defscreen or defScreen defines the default (80-column) mode.

The syntax for the options and resources is rowsxcols=init_string, where rows and cols give the screen dimensions, and init_string is the escape sequence to transmit to the terminal to enter that mode. For defscreen, the minimum dimensions are 24 rows and 80 columns. For altscreen, the minimum dimensions are 27 rows and 132 columns. Within init_string, the usual escape sequences are supported (\E for escape, \r, \b, etc.). For example, the init string for a 132-column xterm is:

\E[?40h\E[?3h

Note: When defscreen and altscreen are specified, the model number is always set to 5.

Resources

Certain c3270 options can be configured via resources. Resources are defined in the file .c3270pro in the user's home directory, and by -xrm options. The definitions are similar to X11 resources, and use a similar syntax. The resources available in c3270 are:

Resource Default Option Purpose
allBold Auto -allbold Display all characters bold
altScreen   -altscreen 132-col screen definition
blankFill False -set blankFill Blank Fill mode
charset bracket -charset EBCDIC character set
composeMap latin1   Name of composed-character map
cursesColorForHostColorn (note 6)   Color mapping
cursesColorForDefault green   Default color mapping
cursesColorForIntensified red   Default color mapping
cursesColorForProtected blue   Default color mapping
cursesColorForProtectedIntensified white   Default color mapping
cursesKeymap True   Set curses keymap option
defScreen   -defscreen 80-col screen definition
dbcsCgcsgid     Override DBCS CGCSGID
dsTrace False -trace Data stream tracing
eof ^D   NVT-mode EOF character
erase ^H   NVT-mode erase character
extended True   Use 3270 extended data stream
eventTrace False -trace Event tracing
hostsFile   -hostsfile Host alias/macro file
icrnl False   Map CR to NL on NVT-mode input
inlcr False   Map NL to CR in NVT-mode input
intr ^C   NVT-mode interrupt character
keymap   -keymap Keyboard map name
keymap.foo     Definition of keymap foo
kill ^U   NVT-mode kill character
lineWrap False -set lineWrap NVT line wrap mode
lnext ^V   NVT-mode lnext character
m3279 (note 1) -model 3279 (color) emulation
metaEscape Auto   Interpret ESC-x as Meta-x
mono (note 5) -mono Ignore terminal color capabilities
monoCase False -set monoCase Mono-case mode
noPrompt False -noprompt Disable command-prompt mode
numericLock False   Lock keyboard for numeric field error
oerrLock True   Lock keyboard for input error
oversize   -oversize Oversize screen dimensions
port telnet -port Non-default TCP port
printer.* (note 4)   Printer session config
printerLu (note 4)   Printer session config
quit ^\   NVT-mode quit character
reconnect False -reconnect Automatically reconnect to host
rprnt ^R   NVT-mode reprint character
sbcsCgcsgid     Override SBCS CGCSGID
secure False   Disable "dangerous" options
termName (note 2) -tn TELNET terminal type string
traceDir /tmp   Directory for trace files
traceFile (note 3) -tracefile File for trace output
typeahead True   Allow typeahead
werase ^W   NVT-mode word-erase character

Note 1: m3279 defaults to True if the terminal supports color, False otherwise. It can be forced to False with the proper -model option.

Note 2: The default terminal type string is constructed from the model number, color emulation, and extended data stream modes. E.g., a model 2 with color emulation and the extended data stream option would be sent as IBM-3279-2-E. Note also that when TN3270E mode is used, the terminal type is always sent as 3278, but this does not affect color capabilities.

Note 3: The default trace file is x3trc.pid in the directory specified by the traceDir resource.

Note 4: See PRINTER SUPPORT for details.

Note 5: mono defaults to false if the terminal supports at least 8 colors and to true otherwise.

Note 6: The default curses color mappings for host colors 0 through 15 are: black, blue, red, magenta, green, cyan, yellow, white, black, blue, yellow, blue, green, cyan, black and white.

In .c3270pro, lines are continued with a backslash character.

-xrm options override definitions found in .c3270pro. If more than one -xrm option is given for the same resource, the last one on the command line is used.

Files

/usr/local/lib/x3270/ibm_hosts
$HOME/.c3270pro

See Also

x3270(1), s3270(1), tcl3270(1), ibm_hosts(5), x3270-script(1), telnet(1), tn3270(1)
Data Stream Programmer's Reference, IBM GA23-0059
Character Set Reference, IBM GA27-3831
RFC 1576, TN3270 Current Practices
RFC 1646, TN3270 Extensions for LUname and Printer Selection
RFC 2355, TN3270 Enhancements

Copyrights

Copyright © 1993-2009, Paul Mattes.
Copyright © 2004-2005, Don Russell.
Copyright © 2004, Dick Altenbern.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

*
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
*
Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Version

c3270 3.3.10ga4
This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/c3270/html/Bugs.html0000644000175000017500000000075211254565706016465 0ustar bastianbastian Known Bugs in c3270 3.3

Known Bugs in c3270 3.3.6

(none)

If you discover any other problems in c3270, please contact Paul Mattes.

ibm-3270-3.3.10ga4/c3270/html/Resources.html0000644000175000017500000017326011256024437017535 0ustar bastianbastian c3270 Resources

c3270 Resources

Resources are used to configure c3270. Resources are named items with string, integer or Boolean values.

Resource definitions come from the following sources:

  • Default values are compiled into c3270.
  • If a session file foo.c3270 is specified on the command line, its contents are applied. Otherwise, if the c3270 profile (~/.c3270pro) exists, it is read and its contents are applied. These definitions override resource values defined by compiled-in defaults.
  • Command-line options override all other resource definitions. If more than one command-line option sets a resource, the last one is used.
Many resources have their own command-line switches, which are listed below. Those that do not can still be set from the command-line via the -xrm command-line option. For example the c3270.bsdTm resource can be set by the following command-line option:
     -xrm 'c3270.bsdTm: true'
 
Note that -xrm is supported on all of the 3270 emulators, not just on x3270.

Resource File Syntax

A resource file (profile or session file) has the following syntax.
  • Each definition consists of:
        c3270.resource-name: value
      
  • Comment lines begin with !.
  • Line continuation is indicated by a backshash (\) character at the end of a line.
  • Multi-line resources, such as keymap definitions, are split with newline characters, e.g.:
        c3270.keymap.foo: \
          <Key>a: String("bob") \n\
          <Key>b: String("fred") \n\
          <Key>c: String("joe")
      

Alphabetical Resource List

Name: c3270.acs
Type: Boolean
Default: true
Description:

When true, c3270 will use the curses Alternative Character Set (ACS) to display box-drawing characters. When false, c3270 will use Unicode box-drawing characters.

Name: c3270.aidWait
Type: Boolean
Default: false
Command Line: -set aidWait , -clear aidWait
Description:

When true, c3270 will not block a script after executing an AID action (Enter, Clear, PF or PA). It is then script's responsibility to poll c3270's status until it shows that the keyboard is no longer unlocked.

Name: c3270.allBold
Type: String
Default: auto
Command Line: -allbold
Description:

When true, c3270 will display all text in bold. This is needed for terminals like Linux consoles and xterms that display non-bold text in unreadably-dim colors. When false, text will be displayed in normal or bold, depending on the host-specified highlighting attribute.

When set to auto, it will be assumed true for 3279 emulation, and false for 3278 emulation.

Name: c3270.altScreen
Type: String
Command Line: -altscreen
Description:

Defines a character string that will be output to switch the terminal from 80-column mode to 132-column mode. Within the string, the sequence \E is translated to the ASCII ESC character (0x1b).

When c3270.model is 5, and this and c3270.defScreen are defined, c3270 will automatically change the terminal size when the host switches between the default (24x80) screen and the alternate (27x132) screen.

Name: c3270.asciiBoxDraw
Type: Boolean
Default: false
Description:

When true, this causes box-drawing characters (the Unicode 2500 block) to be drawn with ASCII-art characters (+, - and |). This allows a readable representation of these characters on the screen when using fonts that do not include them or have them with the wrong width.

Name: c3270.blankFill
Type: Boolean
Default: false
Command Line: -set blankFill , -clear blankFill
Description:

When true, in 3270 mode c3270 will automatically convert trailing blanks in a field to NULLs in order to insert a character, and will automatically convert leading NULLs to blanks so that input data is not squeezed to the left. This works around some of the quirkier behavior of real 3270 terminals.

Name: c3270.bsdTm
Type: Boolean
Default: false
Description:

Defines c3270's response to the TELNET DO TIMING MARK option. When set to false, c3270 will respond to DO TIMING MARK with WONT TIMING MARK, which is consistent with most modern TELNET clients. When true, c3270 will respond with WILL TIMING MARK, which is consistent with the old BSD telnet command and with previous versions of c3270. In either case, c3270 will never respond to a DONT TIMING MARK option.

Name: c3270.cbreak
Type: Boolean
Default: false
Command Line: -cbreak
Description:

If true, c3270 will set up the terminal in cbreak mode instead of the default raw mode. Cbreak mode enables flow-control processing in the TTY driver, and may be required for certain terminals that use flow control to avoid dropping characters.

Name: c3270.certFile
Type: String
Command Line: -certfile
Description:

Gives the name of a certificate file, used by the OpenSSL library.

Name: c3270.charset
Type: String
Default: bracket
Command Line: -charset
Description:

This defines the host EBCDIC character set, that is, what glyph (image) is displayed for each EBCDIC code sent by the host, and what EBCDIC code is sent to the host for each character typed on the keyboard. This is more correctly referred to as the host code page.

To display the character sets supported by c3270, use the -v command-line option.

Name: c3270.color8
Type: Boolean
Default: false
Description:

If true, c3270 will respond to a Query(Color) with a list of 8 supported colors. If false, it will send a list of 16 colors. The 8-color setting is required for some hosts which abort a session if 16 colors are reported.

This setting will also cause c3270 to assume that the terminal supports no more than 8 colors, and will use only the 8 basic curses colors to draw the screen.

Name: c3270.composeMap
Type: String
Default: latin1
Description:

Gives the name of the map used to define the pairs of characters that form composite characters with the Compose key. The definition of compose map foo is the resource c3270.composeMap.foo.

Name: c3270.composeMap.foo
Type: String
Description:

An individual compose map definition. Each line in the resource is of the form:

         keysym1 + keysym2 = keysym3

meaning "when the Compose key is pressed, followed by keysym1 and keysym2 (in either order), interpret it as keysym3." The definitions are case-sensitive.

Name: c3270.confDir
Type: String
Default: /usr/local/etc/x3270
Description:

Defines the c3270 configuration directory, where c3270 will search for the ibm_hosts file by default. (See c3270.hostsFile.)

Name: c3270.cursesColorForDefault
Name: c3270.cursesColorForIntensified
Name: c3270.cursesColorForProtected
Name: c3270.cursesColorForProtectedIntensified
Type: String
Description:

Defines the default color to use to render text based on its attributes, when the host does not specify a particular color.

The value of the resource can be either a curses color index or curses color name. These are are defined as follows:
Curses Color Index Curses Color Name
0 black
1 red
2 green
3 yellow
4 blue
5 magenta
6 cyan
7 white
8 no name -- displays as grey
9 no name -- displays as bright red
10 no name -- displays as bright green
11 no name -- displays as bright yellow
12 no name -- displays as bright blue
13 no name -- displays as bright magenta
14 no name -- displays as bright cyan
15 no name -- displays as bright white

The default values are:
c3270 Resource Default Curses Color (8-color terminal) Default Curses Color (16-color terminal)
cursesColorForDefault green 10 (bright green)
cursesColorForIntensified red red
cursesColorForProtected blue 12 (bright blue)
cursesColorForProtectedIntensified white 15 (bright white)

Name: c3270.cursesColorForHostColor0
Name: c3270.cursesColorForHostColorNeutralBlack
Name: c3270.cursesColorForHostColor1
Name: c3270.cursesColorForHostColorBlue
Name: c3270.cursesColorForHostColor2
Name: c3270.cursesColorForHostColorRed
Name: c3270.cursesColorForHostColor3
Name: c3270.cursesColorForHostColorPink
Name: c3270.cursesColorForHostColor4
Name: c3270.cursesColorForHostColorGreen
Name: c3270.cursesColorForHostColor5
Name: c3270.cursesColorForHostColorTurquoise
Name: c3270.cursesColorForHostColor6
Name: c3270.cursesColorForHostColorYellow
Name: c3270.cursesColorForHostColor7
Name: c3270.cursesColorForHostColorNeutralWhite
Name: c3270.cursesColorForHostColor8
Name: c3270.cursesColorForHostColorBlack
Name: c3270.cursesColorForHostColor9
Name: c3270.cursesColorForHostColorDeepBlue
Name: c3270.cursesColorForHostColor10
Name: c3270.cursesColorForHostColorOrange
Name: c3270.cursesColorForHostColor12
Name: c3270.cursesColorForHostColorPurple
Name: c3270.cursesColorForHostColor13
Name: c3270.cursesColorForHostColorPaleGreen
Name: c3270.cursesColorForHostColor14
Name: c3270.cursesColorForHostColorPaleTurquoise
Name: c3270.cursesColorForHostColor15
Name: c3270.cursesColorForHostColorGrey
Name: c3270.cursesColorForHostColor16
Name: c3270.cursesColorForHostColorWhite
Type: String
Description:

Defines what curses color to use to render a particular host color. Host colors can be specified by name or number. That is, to define the curses color to use when the host specifies green, which is host color 4, either the resource c3270.cursesColorForHostColorGreen or the resource c3270.cursesColorForHostColor4 can be defined.

The default definitions are as follows. Note that on an 8-color terminal, c3270 only displays 8 host colors.
Host Color Index Host Color Name Default Curses Color (8-color terminal) Default Curses Color (16-color terminal)
0 NeutralBlack black black
1 Blue blue 12 (bright blue)
2 Red red red
3 Pink red 13 (bright magenta)
4 Green green 10 (bright green)
5 Turquoise cyan 14 (bright cyan)
6 Yellow yellow 11 (bright yellow)
7 NeutralWhite white 15 (bright white)
8 Black - black
9 DeepBlue - blue
10 Orange - 9 (bright red)
11 Purple - magenta
12 PaleGreen - green
13 PaleTurquoise - cyan
14 Grey - white
15 White - 15 (bright white)

Note that "neutral black" means black on a display device and white on a printing device, and "neutral white" means white on a display device and black on a printing device.

In NVT mode, c3270 maps the ANSI-standard colors 0 through 7 to host colors, and from host colors to curses colors. The mapping from ANSI colors to host colors cannot be changed, but the mapping from host colors to curses colors can be with c3270.cursesColorForHostColor* resources. The mappings and defaults are as follows:
NVT ANSI Color Mapped Host Color (not configurable) Default Curses Color (8-color terminal) Default Curses Color (16-color terminal)
0 (black) 0 (Black) black black
1 (red) 2 (Red) red red
2 (green) 4 (Green) green 10 (bright green)
3 (yellow) 6 (Yellow) yellow 11 (bright yellow)
4 (blue) 1 (Blue) blue 12 (bright blue)
5 (magenta) 3 (Pink) red 13 (bright magenta)
6 (turquoise) 13 (PaleTurquioise) cyan cyan
7 (white) 15 (White) white 15 (bright white)

See c3270.cursesColorForDefault for the definitions of curses colors.

Name: c3270.cursesKeypad
Type: Boolean
Default: false
Description:

When true, c3270 will set up the terminal in curses keypad mode.

Name: c3270.cursorPos
Type: Boolean
Default: true
Command Line: -set cursorPos , -clear cursorPos
Description:

When true, causes c3270 to display the cursor location in the OIA (the status line).

Name: c3270.dbcsCgcsgid
Type: String
Description:

Overrides the compiled-in value of the CGCSGID for the current host character set, which will be reported to the host in response to a Query(Character Sets). The value is an integer, which can be prefixed with '0x' to be in hexadecimal. The upper 16 bits are the GCSGID (character set) and the lower 16 bits are the CPGID (code page). This value applies only to the double-byte (DBCS) character set. Use c3270.sbcsCgcsgid for the single-byte (SBCS) character set.

Name: c3270.defScreen
Type: String
Command Line: -defscreen
Description:

Defines a character string that will be output to switch the terminal from 132-column mode to 80-column mode. Within the string, the sequence \E is translated to the ASCII ESC character (0x1b).

When c3270.model is 5, and this and c3270.altScreen are defined, c3270 will automatically change the terminal size when the host switches between the default (24x80) screen and the alternate (27x132) screen.

Name: c3270.dftBufferSize
Type: Integer
Default: 4096
Description:

Specifies the default buffer size for DFT IND$FILE file transfers. This value can be overridden in the File Transfer dialog and by a parameter to the Transfer action.

Name: c3270.dsTrace
Type: Boolean
Default: false
Command Line: -trace , -set dsTrace , -clear dsTrace
Description:

When true, c3270 writes a hexadecimal representation of all network traffic (and its interpretation) into a file, which defaults to /tmp/x3trc.pid. The directory prefix is defined by c3270.traceDir. If c3270.traceFile is defined, it gives the entire pathname and c3270.traceDir is ignored.

Name: c3270.eof
Type: String
Default: ^D
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when c3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current line of input to be forwarded to the host without a trailing CR/LF sequence.

Name: c3270.erase
Type: String
Default: ^?
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (c3270 gathers a line of input before forwarding it ot the host), entering this character at the keyboard will cause c3270 to discard the last character on the input line.

When connected in character-at-a-time mode (c3270 sends each keystroke to the host as it is entered), this is the character that will be sent to the host by the Erase action.

Name: c3270.eventTrace
Type: Boolean
Default: false
Command Line: -set eventTrace , -clear eventTrace
Description:

When true, c3270 traces information about keyboard and mouse events into a file. The default file name is /tmp/x3trc.pid. The directory prefix is defined by c3270.traceDir. If c3270.traceFile is defined, it gives the entire pathname and c3270.traceDir is ignored.

Name: c3270.extended
Type: Boolean
Default: false
Command Line: -extended
Description:

Deprecated resource -- replaced by c3270.model syntax

Indicates support for the 3270 Extended Data Stream.

Name: c3270.hostname
Type: String
Description:

Gives the name of the host to connect to. The name can include the usual options (prefixes to specify special connection options, LU names, and port). A hostname specified on the command line takes precedence over c3270.hostName.

The most common use of c3270.hostName is in session files, where a file is used to pass all of the options to establish a c3270 session.

Name: c3270.hostsFile
Type: String
Default: /usr/local/etc/x3270/ibm_hosts
Description:

The pathname of a file containing hostname aliases. The file can also be used to define a set of actions to perform when connecting to a host.

The format of the file is explained on the ibm_hosts manual page. The default pathname is actually ibm_hosts in the directory defined by c3270.confDir.

Name: c3270.icrnl
Type: Boolean
Default: true
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. It controls whether input carriage returns are mapped to newlines.

Name: c3270.idleCommand
Type: String
Description:

When c3270.idleCommand is defined, it specifies a command to execute after a period of keyboard inactivity (no AID keys pressed). The c3270.idleCommand can be an arbitrary sequence of c3270 actions, but it should include an action which generates an AID (Enter, Clear, PF or PA). c3270.idleCommandEnabled must be true in order for the c3270.idleCommand to take effect. (This is so an idle command can be defined, but needs to be enabled explicitly at some point after login.) c3270.idleTimeout specifies the inactivity interval.

Name: c3270.idleCommandEnabled
Type: Boolean
Default: false
Description:

Controls whether c3270.idleCommand has effect as soon as a host session is established. (This is so an idle command can be defined, but needs to be explicitly enabled at some point after login.)

Name: c3270.idleTimeout
Type: String
Default: ~7m
Description:

The timeout value for c3270.idleCommand. If the value ends in h, it specifies hours; if it ends in m it specifies minutes; if it ends in s or does not have an alphanumeric suffix, it specifies seconds.

If the value begins with a tilde ~, the time will be randomly varied +/-10% from the value specified.

Name: c3270.inlcr
Type: Boolean
Default: false
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. It controls whether input newlines are mapped to carriage returns.

Name: c3270.intr
Type: String
Default: ^C
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When this character is typed on the keyboard, the TELNET IP (Interrupt Process) sequence is sent to the host.

Name: c3270.keymap
Type: String
Command Line: -keymap
Description:

The name of the keyboard map to use. It can be a single keymap name or a comma-separated list of keymaps, which will be applied in order.

Each keymap can optionally be defined in three separate parts: a common keymap, which is applied at all times, an NVT-mode keymap, which is applied only in NVT mode, and a 3270-mode keymap, which is only applied in 3270 mode. The NVT-mode keymap has the same name as the common keymap, with the suffix .nvt appended. The 3270-mode keymap has the suffix .3270 appended. Thus specifying a c3270.keymap value of foo implies the use of three different keymaps (if found): foo, foo.nvt and foo.3270.

c3270.keymap is only the name; the actual keymap for name foo can be defined either by the resource c3270.keymap.foo, or by a keymap file. The keymap file is not searched for in any particular location, nor does it have a special suffix, so c3270.keymap can specify the full pathname of the keymap file.

Name: c3270.keymap.foo
Type: String
Description:

The definition of keymap foo. Please refer to the How To Create a Custom Keymap document for a full description of the syntax.

Name: c3270.kill
Type: String
Default: ^U
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when c3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current input line to be erased.

When connected in character-at-a-time mode (when c3270 sends each keystroke to the host), this is the ASCII character that is sent to the host by the DeleteField action.

Name: c3270.lineWrap
Type: Boolean
Default: true
Command Line: -set lineWrap , -clear lineWrap
Description:

This setting is used only in NVT mode. When true, c3270 will automatically insert a CR/LF sequence when output reaches the end of a line. When false, output will pile up at the end of each line until the host sends a CR/LF sequence.

Name: c3270.loginMacro
Type: String
Description:

Defines a sequence of commands to run as soon as a host connection is established. Usually these would be commands used to navigate through login screens, such String, Tab and Enter.

If a c3270.hostsFile is in use and a matching entry is found, the login macro from that entry will be used in preference to the c3270.loginMacro.

Name: c3270.lnext
Type: String
Default: ^V
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when c3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard removes any special meaning from the next character entered.

Name: c3270.m3279
Type: Boolean
Default: false
Command Line: -color
Description:

Deprecated resource -- replaced by c3270.model syntax

Indicates support for color (a 3279 terminal).

Name: c3270.metaEscape
Type: Boolean
Default: true
Description:

When true, c3270 will assume that pressing a key while holding down the Alt key will cause the terminal to transmit the ASCII ESC character (0x1b) before the key. Thus c3270 will interpret ESC-x as Alt-x.

When false, ESC is treated like any other input character.

Name: c3270.model
Type: String
Default: 3279-4-E
Command Line: -model
Description:

The terminal model that c3270 is emulating. The model is in three parts, separated by dashes; each part is optional.

  • 3278 or 3279
    3278 specifies a monochrome (green) 3270 display.
    3279 specifies a color 3270 display.
  • 2, 3, 4 or 5
    The model number, which determines the size of the screen.
    Model 2 has 24 rows and 80 columns.
    Model 3 has 32 rows and 80 columns.
    Model 4 has 43 rows and 80 columns.
    Model 5 has 27 rows and 132 columns.
    The default is the largest model that will fit on the console or terminal emulator window where c3270 is running. Displaying the OIA (status line) requires one more row than what is listed above.
  • E
    An optional suffix which indicates support for the 3270 Extended Data Stream (color, extended attributes, Query Reply). 3279 implies E.

Name: c3270.mono
Type: Boolean
Default: false
Command Line: -mono
Description:

If true, c3270 will emulate a 3278, and will not use any of the terminal's color attributes.

Name: c3270.monoCase
Type: Boolean
Default: false
Command Line: -set monoCase , -clear monoCase
Description:

When true, causes c3270 to run in uppercase-only mode.

Name: c3270.mouse
Type: Boolean
Default: true
Description:

If true, enables c3270 to accept mouse-control events on terminals and emulators that support them. This allows a left mouse click to move the cursor. On terminals like xterm and gnome-terminal, this means that the usual mouse selection actions must be performed with the Shift key pressed. If false, mouse-control events will not be enabled.

Name: c3270.noPrompt
Type: Boolean
Default: false
Description:

If true, the interactive c3270> prompt will be disabled. In particular, this means that when c3270 is not connected to a host, a keymap or an external script is the only way to start a new host connection.

Name: c3270.numericLock
Type: Boolean
Default: false
Description:

When true, causes c3270 to lock the keyboard when non-numeric data is entered into fields with the Numeric attribute.

Name: c3270.onlcr
Type: Boolean
Default: true
Description:

Used only in NVT line-at-a-time mode; similar to the stty parameter of the same name. It controls whether output newlines are mapped to CR/LF sequences.

Name: c3270.oerrLock
Type: Boolean
Default: true
Description:

If true, operator errors (typing into protected fields, insert overflow, etc.) will cause the keyboard to lock with an error message in the OIA (status line). If false, these errors will simply cause the terminal bell will ring, without any keyboard lock or message.

Name: c3270.once
Type: Boolean
Default: false
Command Line: -once
Description:

When true, c3270 will exit as soon as a host disconnects. The default is false if no hostname is specified on the command line or in a session file, true otherwise.

Name: c3270.oversize
Type: String
Command Line: -oversize
Description:

Sets the screen dimensions to be larger than the default for the chosen model. Its value is a string in the format colsxrows. It can also be the string auto, which will cause c3270 to use the entire screen area of the terminal. It is used only if the c3270.model includes the "-E" (extended data stream) suffix, and only if the specified dimensions are larger than the model number defaults. Also, only hosts that support the Query Reply structured field will function properly with c3270 in this mode.

Name: c3270.port
Type: String
Default: telnet
Command Line: -port
Description:

The name of the default TCP port for c3270 to connect to. This can be either a symbolic name from /etc/services, or an integer.

Name: c3270.proxy
Type: String
Command Line: -proxy
Description:

Defines a proxy server that c3270 will use to connect to hosts. The value is of the form type:server[:port], where options for type are described on the c3270 manual page.

Name: c3270.printerLu
Type: String
Command Line: -printerlu
Description:

If a value is set, c3270 will automatically start a pr3287 printer session when a host connection is established. If the value is ".", the pr3287 session will be associated with the interactive terminal session (this requires that the host supports TN3270E). Otherwise, the value is taken as the LU name to associate with the printer session.

Name: c3270.printer.assocCommandLine
Type: String
Default: pr3287 -assoc %L% -command %C% %R% %P% %H%
Description:

The shell command to use to start a printer session, when associated with the current TN3270E session LU (when c3270.printerLU is "."). Within the string, the following substitutions are made:

  • %C% is replaced with the c3270.printer.command
  • %H% is replaced with the current host name
  • %L% is replaced with the current session's LU
  • %P% is replaced with the current session's proxy option (c3270.proxy)
  • %R% is replaced with an option to pass the current character set

Name: c3270.printer.command
Type: String
Default: lpr
Description:

The name of the command supplied to the "-command" option of the pr3287 program to print each job. This is the text which is substituted for %C in c3270.printer.assocCommandLine and c3270.printer.luCommandLine resources.

Name: c3270.printer.luCommandLine
Type: String
Default: pr3287 -command %C% %R% %p% %L%@%H%
Description:

The shell command to use to start a printer session, when associated with a specific LU. Within the string, the following substitutions are made:

  • %C% is replaced with c3270.printer.command
  • %H% is replaced with the current host name
  • %L% is replaced with the LU value entered into the dialog box
  • %P% is replaced with current session's proxy option (c3270.proxy)
  • %R% is replaced with an option to pass the current character set

Name: c3270.printTextCommand
Type: String
Default: lpr
Description:

The shell command used by the PrintText action. An ASCII image of the 3270 display becomes the standard input to this command.

Name: c3270.quit
Type: String
Default: ^\
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when c3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the TELNET BREAK sequence to be sent to the host.

Name: c3270.reconnect
Type: Boolean
Default: false
Description:

When true, c3270 will automatically reconnect to a host after it disconnects.

Name: c3270.reverseVideo
Type: Boolean
Default: false
Description:

When true, c3270 will use a white background instead of a black one.

Name: c3270.rprnt
Type: String
Default: ^R
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when c3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current input line to be redisplayed.

Name: c3270.sbcsCgcsgid
Type: String
Description:

Overrides the compiled-in value of the CGCSGID for the current host character set. The value is an integer, which can be prefixed with '0x' to be in hexadecimal. The upper 16 bits are the GCSGID (character set) and the lower 16 bits are the CPGID (code page). This value applies only to the single-byte (SBCS) character set. Use c3270.dbcsCgcsgid for the double-byte (DBCS) character set.

Name: c3270.screenTrace
Type: Boolean
Default: false
Command Line: -set screenTrace , -clear screenTrace
Description:

When true, c3270 will save an ASCII version of the screen image in a file every time it changes. The file name defaults to /tmp/x3scr.pid. The directory prefix is defined by the c3270.traceDir resource. If the c3270.screenTraceFile resource is defined, it defines the file name and c3270.traceDir is ignored.

Name: c3270.screenTraceFile
Type: String
Description:

If defined, gives the name of the file that screen traces will be written into.

Name: c3270.scriptPort
Type: Integer
Command Line: -scriptport
Description:

If defined, c3270 will accept script connections on the specified local TCP port. The rules for the commands passed over these connections are documented in the x3270-script manual page.

Name: c3270.socket
Type: Boolean
Default: false
Command Line: -socket
Description:

When true, c3270 will create a Unix-domain socket than can be used by an external script to control the session. The name of the socket is /tmp/x3sck.pid. The -p option of the x3270if command can be used to connect to this socket.

Name: c3270.suppressActions
Type: String
Description:

A list of whitespace-separated action names, with or without parentheses, which are to be ignored. The actions will be completely inaccessible, whether by keymaps, scripts, macros or the Execute an Action menu option. This resource is intended to be used as a security precaution for users who can define their own keymaps, but who do not have access to resource definitions or command-line options.

Name: c3270.termName
Type: String
Command Line: -tn
Description:

An alternate name to be sent in response to the host's TELNET DO OPTION TERMINAL-NAME request. The default is IBM-, followed by the value of c3270.model.

Name: c3270.traceDir
Type: String
Default: /tmp
Description:

Defines the directory that trace files are written into.

Name: c3270.traceFile
Type: String
Command Line: -tracefile
Description:

If defined, gives the name of the file that data stream and event traces will be written into.

Name: c3270.traceFileSize
Type: String
Command Line: -tracefilesize
Description:

If defined, gives a limit on the size of the file that data stream and event traces will be written into. If not defined, or defined as 0, there will be no limit on the size of the file. The value is a number, followed by an optional suffix. If the suffix is K (e.g., 128K), the value will be multiplied by 1024. If the suffix is M, the value will be multiplied by (1024*1024). The size limit enforced at operation boundaries, not per byte, so the actual file may grow slightly larger. When the file size exceeds the limit, the second half of the file will be written over the first, so that in steady state, the file size will vary between half the c3270.traceFileSize and the entire c3270.traceFileSize.

Name: c3270.typeahead
Type: Boolean
Default: true
Description:

When true, c3270 will store keystrokes in a buffer when the keyboard is locked. When false, these keystrokes will be dropped.

Name: c3270.underscore
Type: Boolean
Default: false
Command Line: -set underscore , -clear underscore
Description:

When true, c3270 will display fields with the underlined attribute in a special way: blank characters will be translated to underscore (_) characters. This is needed on terminals that are unable to display real underlined text.

Name: c3270.unlockDelay
Type: Boolean
Default: true
Description:

When c3270 sends the host an AID (the Enter, Clear, PF or PA actions), it locks the keyboard until the host sends a reply to unlock it. Some hosts unlock the keyboard before they are actually finished processing the command, which can cause scripts to malfunction subtly. To avoid this, c3270 implements a hack to briefly delay actually unlocking the keyboard. When c3270.unlockDelay is true, the keyboard unlock will be delayed for c3270.unlockDelayMs milliseconds. Setting it to false removes this delay, except when executing a macro.

Name: c3270.unlockDelayMs
Type: Integer
Default: 350
Description:

Overrides the default value for the unlock delay (the delay between the host unlocking the keyboard and c3270 actually performing the unlock). The value is in milliseconds; use 0 to turn off the delay completely, including for macros.

Name: c3270.werase
Type: String
Default: ^W
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when c3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard erases the last word of input.

When connected in character-at-a-time mode (when c3270 sends each keystroke to the host), this is the ASCII character that is sent to the host by the DeleteWord action.

Index of All Resources

acs aidWait allBold altScreen
asciiBoxDraw blankFill bsdTm cbreak
certFile charset color8 composeMap
composeMap.foo confDir cursesColorForDefault cursesColorForIntensified
cursesColorForProtected cursesColorForProtectedIntensified cursesColorForHostColor0 cursesColorForHostColorNeutralBlack
cursesColorForHostColor1 cursesColorForHostColorBlue cursesColorForHostColor2 cursesColorForHostColorRed
cursesColorForHostColor3 cursesColorForHostColorPink cursesColorForHostColor4 cursesColorForHostColorGreen
cursesColorForHostColor5 cursesColorForHostColorTurquoise cursesColorForHostColor6 cursesColorForHostColorYellow
cursesColorForHostColor7 cursesColorForHostColorNeutralWhite cursesColorForHostColor8 cursesColorForHostColorBlack
cursesColorForHostColor9 cursesColorForHostColorDeepBlue cursesColorForHostColor10 cursesColorForHostColorOrange
cursesColorForHostColor12 cursesColorForHostColorPurple cursesColorForHostColor13 cursesColorForHostColorPaleGreen
cursesColorForHostColor14 cursesColorForHostColorPaleTurquoise cursesColorForHostColor15 cursesColorForHostColorGrey
cursesColorForHostColor16 cursesColorForHostColorWhite cursesKeypad cursorPos
dbcsCgcsgid defScreen dftBufferSize dsTrace
eof erase eventTrace extended
hostname hostsFile icrnl idleCommand
idleCommandEnabled idleTimeout inlcr intr
keymap keymap.foo kill lineWrap
loginMacro lnext m3279 metaEscape
model mono monoCase mouse
noPrompt numericLock onlcr oerrLock
once oversize port proxy
printerLu printer.assocCommandLine printer.command printer.luCommandLine
printTextCommand quit reconnect reverseVideo
rprnt sbcsCgcsgid screenTrace screenTraceFile
scriptPort socket suppressActions termName
traceDir traceFile traceFileSize typeahead
underscore unlockDelay unlockDelayMs werase

Basic Configuration Resources

charset hostname keymap model
port proxy printerLu

Appearance Resources

allBold cursesColorForDefault cursesColorForIntensified cursesColorForProtected
cursesColorForProtectedIntensified cursesColorForHostColor0 cursesColorForHostColorNeutralBlack cursesColorForHostColor1
cursesColorForHostColorBlue cursesColorForHostColor2 cursesColorForHostColorRed cursesColorForHostColor3
cursesColorForHostColorPink cursesColorForHostColor4 cursesColorForHostColorGreen cursesColorForHostColor5
cursesColorForHostColorTurquoise cursesColorForHostColor6 cursesColorForHostColorYellow cursesColorForHostColor7
cursesColorForHostColorNeutralWhite cursesColorForHostColor8 cursesColorForHostColorBlack cursesColorForHostColor9
cursesColorForHostColorDeepBlue cursesColorForHostColor10 cursesColorForHostColorOrange cursesColorForHostColor12
cursesColorForHostColorPurple cursesColorForHostColor13 cursesColorForHostColorPaleGreen cursesColorForHostColor14
cursesColorForHostColorPaleTurquoise cursesColorForHostColor15 cursesColorForHostColorGrey cursesColorForHostColor16
cursesColorForHostColorWhite cursorPos reverseVideo underscore

NVT-Mode Resources

eof erase icrnl inlcr
intr kill lineWrap lnext
onlcr quit rprnt werase

Protocol Resources

bsdTm color8 dbcsCgcsgid dftBufferSize
sbcsCgcsgid termName

Terminal Interaction Resources

blankFill idleCommand idleCommandEnabled idleTimeout
mouse numericLock oerrLock

Security Resources

certFile noPrompt suppressActions

Tracing Resources

dsTrace eventTrace screenTrace screenTraceFile
traceDir traceFile traceFileSize

Other Resources

acs aidWait altScreen asciiBoxDraw
cbreak composeMap composeMap.foo confDir
cursesKeypad defScreen hostsFile keymap.foo
loginMacro metaEscape mono monoCase
once oversize printer.assocCommandLine printer.command
printer.luCommandLine printTextCommand reconnect scriptPort
socket typeahead unlockDelay unlockDelayMs

Deprecated Resources

extended m3279

c3270 verson 3.3.10ga3 Mon Sep 21 20:32:15 CDT 2009 ibm-3270-3.3.10ga4/c3270/html/FAQ.html0000644000175000017500000000674311254565706016202 0ustar bastianbastian c3270 Frequently Asked Questions

c3270 Frequently Asked Questions

If you have a problem building, installing, or running c3270, please browse through this file first.

General Questions

Am I allowed to use it?

Yes. Full copyright information is in the Lineage file, but the gist is that anyone is free to use the code, and anyone is free to sell copies of the code.

You are also free to modify it and to redistribute it, provided you preserve the existing copyright notices.

Why are notsign characters (and other accented characters) displayed as blanks or strings of garbage?

The most common cause of this is a problem with locales, in particular, the codeset (LC_CTYPE) in use. There could be a mismatch between the locale that the c3270 process is using and the locale supported by the terminal hardware or terminal emulation software that c3270 is running on. For example, c3270 may be running in a locale that uses UTF-8 encoding (e.g., en_US.UTF-8), while the terminal it is running on does not support UTF-8. Or it may be running on a terminal emulator (xterm, gnome-terminal that is running in a non-UTF-8 locale, such as en_US.ISO8859-1.

Use the show stats command at the c3270< prompt to display the locale codeset that the c3270 process is using.

Note that the locale conflict can easily arise when c3270 is run on a remote host, e.g., in an ssh session. The remote host (where the output is being generated) and the local host (where the output is being interpreted and displayed) can often have different default locales.

It is also possible that c3270 was built without UTF-8 support. In order to support UTF-8, c3270 must be built with an ncurses or curses library that supports wide characters. The show stats command will also indicate whether or not c3270 supports UTF-8.

Getting Help

If you are still having a problem with c3270, feel free to send e-mail to Paul Mattes, Paul.Mattes@usa.net No guarantees are made about responses to particular problems, but a patches are usually forthcoming in a few days. It will also get you on an x3270 mailing list, which also includes information on c3270, and where you can find out about new releases and bug fixes.

When you send a question about c3270, please include the following information. It makes it much easier to narrow down the problem.

  1. The version of c3270 you are using, including all patches, e.g., "3.3.6p1".
  2. What kind of machine you are running on, e.g., "Sun SPARC-10".
  3. What operating system you are running, and what version, e.g., "SunOS 4.1.3_U1" or "Irix 5.2". The "uname -a" command will usually provide this information.
Complaints, suggestions, requests for enhancements, and porting experiences are also welcome. Code changes for bug fixes and enhancements are also welcome, provided that you don't mind your code being placed (often anonymously) under the x3270 license. ibm-3270-3.3.10ga4/c3270/html/ReleaseNotes.html0000644000175000017500000016451611261530006020146 0ustar bastianbastian c3270 Release Notes

Changes in x3270, c3270, wc3270, s3270, tcl3270, pr3287 and wpr3287 3.3

3.3 is the current development line for the x3270 suite.

Changes in version 3.3.10ga4, 2. October 2009

  • [all x3270] Improved the File Transfer summary display.
  • [all x3270] Removed the keyboard lock when processing an Enter AID in SSCP-LU mode.
  • [x3270] Fixed a build problem when DBCS support is disabled.
  • [c3270] Made the special keymap key names (e.g., PRINT) case-insensitive.
  • [c3270] Fixed a problem with keyboard input in ISO 8859 locales.
  • [x3270] Increased the maximum number of fonts scanned to 50000.

Changes in version 3.3.10ga3, 15. September 2009

  • [x3270] Fixed some bugs in the xmkmf-free build.

Changes in version 3.3.10alpha2, 10. September 2009

  • [c3270] Added the ability to move the 3270 cursor with the mouse, if the terminal supports it. Add a Mouse resource, which can be set to False to disable it.
  • [all 3270] Added a Translate keyword to the Transfer action's parameters and an additional question to the interactive c3270/wc3270 Transfer dialog, to allow the automatic remapping of text (usually done to get the most accurate translation) to be disabled.
  • Restored the pop-up window that displays trace files.

Changes in version 3.3.10alpha1, 3. September 2009

  • [3270] Allow the program to be built without xmkmf.
  • [all 3270] Fixed the mapping of EBCDIC X'FF' to U+009F in ASCII-mode file transfers.
  • [all 3270] Fixed a crash in CUT-mode binary file sends, and corrected the local fopen() flags when receiving a binary file.
  • [x3270] Added the APL up- and down-arrow characters (↑ and ↓) to the 12-point fonts (thanks to Paul Scott for the fix).
  • [all 3270] Script comments are now allowed (any input line beginning with # or !).
  • [wc3270] Added support for the Enhanced keymap modifier (EnhancedReturn is the keypad Enter key. Also added Enter, PageUp and PageDown as aliases for the Windows keys RETURN, PRIOR and NEXT.
  • [wc3270] Added oversize, font size and background color support to the Session Wizard.
  • [x3270] Fixed a problem with ignored -set and -clear options.
  • [c3270 and wc3270] Added support for the -oversize auto option, which allows the emulator to use the entire area of the terminal or console window it is running in.
  • [x3270] Removed the huge delay at start-up.
  • [x3270, c3270, s3270 and wc3270] Added support for TCP-socket-based scripting via the -scriptport option. For wc3270, this is the first time that scripting has been available.
  • [all 3270 except x3270] Added support for the screenTraceFile resource.
  • [all 3270] Fixed a file descriptor leak with the -socket option.
  • [all 3270] Fixed a crash with the Toggle action and undefined toggles.
  • [wc3270] Implemented no-install mode (allowing wc3270 to run without installing the software) and auto-shortcut mode (where wc3270 automatically creates a temporary shortcut file to match a session file and runs it).
  • [all 3270] When a hostname resolves to multiple addresses, try each until one works.
  • [all 3270] Corrected an issue where the keyboard would lock on the first screen when connecting to hosts like Hercules.
  • [wc3270] Added mappings of the Page Up and Page Down keys to PF(7) and PF(8) respectively.
  • [wc3270, ws3270] Removed the .dll files from the distribution.
  • [c3270] Corrected an issue with cursor and function keys not being recognized if they are the first key pressed.
  • [all 3270] BIND image screen sizing is now observed.
  • [pr3287 and wpr3287] Corrected the -charset documentation on the manual page.
  • [all 3270] Resurrected flipped-screen mode via the Flip and ToggleReverse actions.
  • [all 3270] Added a Seconds form to the Wait action, allowing a script or macro to delay itself an arbitrary length of time.
  • [wc3270] Modified the PrintText action so that Wordpad is started minimized.

Changes in version 3.3.9ga11, 25. March 2009

  • [x3270 and c3270] Re-enable the ibm_hosts file (it was accidentally being ignored).
  • [all but wc3270] Don't crash when there is no iconv translation for the locale codeset.
  • [all but x3270] Fixed a build failure in glue.c when DBCS was disabled.
  • [wc3270] Corrected the default keymap so that the uppercase versions of the Alt mapping also work.
  • [wc3270] Corrected the documentation of the printTextFont and printTextSize resources.
  • [c3270] Corrected a number of errors in parsing CursesColorForxxx resources.
  • [c3270] Added support for -rv, which puts c3270 into black-on-white mode.
  • [c3270] Added support for 16-color terminals, with the -color8 option overriding this and forcing 8-color support only. On a 16-color terminal, -allbold is no longer the default.
  • [c3270, wc3270, s3270 and tcl3270] Ensured that command-line parameters override session files.
  • [c3270] Made session files replace profiles, rather than just overridding any common definitions. This is more intuitive and consistent with x3270.

Changes in version 3.3.9ga11, 27. February 2009

Common Changes

  • Improved hostname parsing. Now backslashes can be used to quote any character, and square brackets can be used to quote any element (LU name, host name, or port).
  • Fixed a number of compiler warnings from newer versions of gcc and a number of small memory leaks.
  • Overhauled the host code pages and CGCSGIDs for DBCS. Added sbcsCgcsgid and dbcsCgcsgid resources to override the compiled-in values.
  • Added a caption text option to the PrintText action, which will place the specified caption above the screen image. Within the text, the string %T% is interpolated to a timestamp.
  • Improved the state dump when tracing starts to include NVT and SSCP-LU state and the SNA BIND image.
  • Updated the copyright and licensing notices (now a standard BSD license).
  • Added support for carriage-return (0x0d) characters in the String action, which imply the Newline action.
  • Changed the Attn action so that it sends an IAC BREAK in TN3270 mode, and locks the keyboard in TN3270E mode when the session is not SNA bound.
  • Added Traditional Chinese (host code page 937) support.
  • Extended the String action's \e and \x sequences to accept 4-digit hex values, thus allowing EBCDIC DBCS input and arbitrary Unicode input. Also added \u as an alias for \x.

Changes to x3270

  • Fixed a crash when pasting an empty selection.
  • Made the Query Reply response for x3270 identical to the other tools.
  • Included fonts for Traditional Chinese.

Changes to x3270 and c3270

  • Removed the nested copy of pr3287. from the source. pr3287 must now be built separately from its own package.

Changes to wc3270

  • Corrected a problem with color mapping in the OIA.
  • Changed the New Session Wizard to the Session Wizard and gave it the ability to edit existing session files and re-create missing session files. Note that this ability is limited to session files created with 3.3.9beta10 or later.
  • Added a wc3270.printer.codepage resource to set the Windows code page for the associated pr3287 printer session.
  • Simplified the operation of the New Session Wizard, so it asks fewer questions.
  • Added a pager to interactive mode.
  • Made the PrintText font and point size configurable via the printTextFont and printTextSize resources.
  • Changed the default 'blue' color for created shortcuts to a somewhat lighter shade, to make it more readable.
  • Changed the Session Wizard to specify the code page and proper font when creating shortcuts for DBCS sessions. This should allow DBCS to work on Windows 2000 and Vista.
  • Included ws3270 in the wc3270 release.

Changes to c3270 and wc3270

  • Added feedback for the progress of file transfers.
  • Implemented the Info action, which writes a message to the OIA (the line below the display).
  • Added a no-prompt mode, via the -noprompt command-line option and the noPrompt resource .
  • Added automatic reconnect, via the -reconnect command-line option and the reconnect resource.

Changes to ws3270 (formerly available as a pre-release)

  • Fixed a bug which resulted in all command timings being displayed as '-'.
  • Added the -localcp option and localCP resource to change the Windows code page used for local workstation I/O.
  • Added DBCS support and support for building using Microsoft tools.

Changes to pr3287 and wpr3287

  • Fixed a serious character-mapping bug.
  • Added DBCS support.

Changes to specific versions

  • [c3270, s3270, s3270, ws3270 and x3270] Added support for session files.
  • [All except wc3270 and ws3270] Extended the rtf option of the PrintText to non-Windows platforms.
  • [All except x3270] Fixed a number of issues with -xrm option processing and keymap display when backslash sequences were used.

Changes in version 3.3.8p2, 13 December 2008

  • [wc3270] Corrected the handling of 8-bit and DBCS characters in the PrintText action.
  • [tcl3270] Extended configure to find the Tcl library version automatically.
  • [wc3270] Corrected a problem which caused mouse clicks not to be recognized (not moving the cursor) if NumLock was set.
  • [all] Corrected the configure script to recognize a separately-installed iconv library even if the iconv() function is defined in libc.
  • [wc3270] Restored the bell sound, and added a visualBell resource to disable it.

Changes in version 3.3.8p1, 20 October 2008

  • [wc3270] Restored the Ctrl-] mapping for the Escape action, which had been inadvertently removed.
  • [wc3270] wc3270 now starts successfully on Windows Vista.
  • [c3270] On platforms that require the iconv library, c3270 once again recognizes ncurses names in keymaps.
  • [x3270] The module keysym2ucs.c now builds on FreeBSD.
  • [x3270] Selections now work properly on platforms that do not support XA_UTF8_STRING.

Changes in version 3.3.8, 11 October 2008

Version 3.3.8 includes a significant internal change, using Unicode for all translations between the host and the local workstation. This change should be transparent, but users who depended on certain behaviors of the old implementation may see unexpected differences.

Common Changes

  • Many more EBCDIC characters, such as Graphics Escape line-drawing and APL characters, are now properly displayed (even without special 3270 fonts), traced, cut/pasted with other applications, and returned by scripting actions like Ascii.
  • With two exceptions, the locale's encoding is now observed consistently when reading keymaps, generating trace files, etc. The exceptions are:
    • tcl3270 always uses UTF-8, per the internal Tcl convention.
    • Because Cygwin doesn't really support locales, the Windows ANSI code page is used as the local encoding instead.
    • Stateful encodings such as ISO 2022 are untested and very likely do not work.
  • The ICU library is no longer used, and ICU .cnv files are no longer included with the code.
  • Translation to/from the local encoding requires one of two facilities: Either libc must support __STDC_ISO_10646__ (wchar_ts are defined to be unicode values, as on Linux and Windows), or there must be an iconv library that can translate between UTF-8 and all local encodings.
  • DBCS support is enabled by default, except on Windows. It can be explicitly disabled in the configure script to reduce the size of the executable (removing several large translation tables).
  • The -v/--verbose option has been added to display build and copyright information.
  • The Thai host code page has changed from 838 to 1160.

Changes Common to the 3270 Terminal Emulators

  • The Key action now accepts Unicode arguments in the form U+nnnn, removing possible ambiguity from translating from the
  • Added a Source action to read script commands from a file.
  • Added a 10 second timeout to the start of the Transfer action.
  • Added an unlockDelayMs resource to change the number of milliseconds of delay before atually unlocking the keyboard after the host requests it. The default is 350; use 0 to disable the delay altogether.
  • IND$FILE file transfer now transfers DBCS text files properly.

Changes Common to 3287 Printer Emulators

  • Added direct support for all x3270 host character sets via the -charset option.
  • Added -trnpre and -trnpost options to specify files containing transparent data to send to the printer before and after each print job, respectively.

Product-Speific Changes

  • [x3270] Commands entered into the Print Screen Text dialog are now saved by the Save Changed Options in File option.
  • [x3270] Fixed some bad interactions between the pop-up keypad and the GNOME window manager.
  • [x3270] The Euro fonts have been folded into the standard fonts.
  • [x3270] The font menu is now arranged hierarchically by foundry and family.
  • [c3270] Added an underscore toggle to allow underlined fields to be displayed even on consoles with no native underlining support, by substituting underscore '_' characters for blanks and nulls in underlined fields.
  • [c3270] Overhauled Meta and Alt key support. Removed support for the archaic Meta modifier in keymaps (it was an alias for setting bit 0x80 in each key). Replaced it with an Alt modifier, which matches the ESC sequence sent for the Alt key by many terminals, and which can be combined with full 8-bit input characters.
  • [c3270] Changed the interpretation of keymaps so that keys and symbols are matched in Unicode. That is, keymap text is converted from the current locale's encoding to Unicode before matching, and input character codes are converted to Unicode before matching. This eliminates the difficulty in creating keymaps and interpreting traces in non-Latin-1 locales -- needing to translate from the accidental interpretation of 8-bit values as Latin-1 when they are not -- but with the side-effect of rendering some carefully-crafted existing keymaps invalid. Keymaps can also be written using Unicode U+nnnn notation.
  • [c3270] Changed the metaEscape resource so that auto means on, instead of using the terminfo km resource.
  • [c3270] Added an acs resource to control the use of curses ACS codes. If c3270.acs is set to true (the default), c3270 will use curses ACS codes for line-drawing characters. If set to false, it will display line-drawing characters with Unicode.
  • [wc3270] Added an underscore toggle to control how underlined and blinking fields are displayed. If it is set (the default), underlined fields are displayed by substituting underscore (_) characters for blanks and nulls, and blinking fields actually blink. If it is clear, underlined and blinking fields are displayed with highlighted backgrounds, which is compatible with previous verions of wc3270.
  • [wc3270] Left-clicking with the mouse will now move the cursor to that location.
  • [wc3270] The PrintText action now works, and is mapped by default to the sequence Alt <Key>p. The printer.name resource defines the default printer to use.
  • [wc3270] The PrintText action can now be used to produce a RichText snapshot of the screen contents, via the rtf keyword.
  • [wc3270] The program longer attempts to set the console code page, which was error-prone and unnecessary.
  • [wc3270] The idle command feature now works, controlled by the idleCommand, idleCommandEnabled and idleTimeout resources.
  • [wc3270] The program no longer attempts to set the console code page, which could lead to hangs on Vista.
  • [wc3270] The installation now creates a program group item to explore the wc3270 Application Data directory.
  • [wc3270] Corrected a problem with console color overrides, which prevented reverse-video mode (white background) from working properly. For now, the recommended method for enabling reverse video mode is to add these lines to your session file:
          wc3270.consoleColorForHostColor0: 15
          wc3270.consoleColorForHostColor7: 0
  • [wc3270] wc3270 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.
  • [tcl3270] Added a commandTimeout resource to force any Tcl3270 command to time out after the specified number of seconds. (Thanks to Mark Young.)
  • [tcl3270] Fixed a per-command memory leak. (Thanks to Mark Young.)
  • [wpr3287] Added a -printercp option to specify a particular code page for printer output.
  • [wpr3287] wpr3287 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.

Changes in x3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in x3270 3.3.7p7, 4. July 2008

  • Bug Fixes:
    • Corrected input of 8-bit characters when x3270 is run in a UTF-8 locale.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.
  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.

Changes in x3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Fixed an issue with Idle commands, which would cause x3270 to exit with a Not Found error as soon as the idle command fired.

Changes in x3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed the annoying delay when x3270 starts with an error pop-up.
    • Shortened the manpage so that it displays on non-groff platforms. The full text is still available in the HTML version.
    • Plugged a number of memory leaks.
    • x3270 will now compile on platforms that do not support IPv6, such as Cygwin.
    • x3270 will no longer crash or spin when the -script option is used.
    • Shifted function keys should work again (they map to PF13-PF24).
    • The screen can now be resized larger, as well as smaller.
    • Removed the dependency on <bitmaps/gray>, which required installing an obscure X11 development package on some platforms.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added a SelectAll action, mapped to Ctrl-A.

Changes in c3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.
    • Allowed c3270 to build under SLES 10's unusual ncurses configuration.

Changes in c3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in c3270 3.3.7p4, 29. February 2008

  • Bug Fixes:
    • Fixed c3270's configure script again, so it will build on systems without the ncurses library.
    • Enabled idle command functionality, which had been accidentally disabled.

Changes in c3270 3.3.7p1, 28. December 2007

  • Bug Fixes:
    • c3270's configure script would not detect missing ncurses header files, and c3270 would not build if ncursesw was not installed.

Changes in c3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • c3270 will now display characters such as the notsign ¬ properly in terminal windows in UTF-8 locales. Note that this display support requires an ncurses or curses library that supports wide characters.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added display of the host code page and locale codeset to the show status command.
    • Added support for changing the color mappings. The curses color for a given host color can be specified with the resource c3270.cursesColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a curses color number (0 through 7).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      c3270.cursesColorForDefault
      c3270.cursesColorForIntensified
      c3270.cursesColorForProtected
      c3270.cursesColorForProtectedIntensified
             
      The value for each of these is a curses color number (0 through 7).

Changes in wc3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed idle command support.

Changes in wc3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Fixed a problem with transferring binary files, where 0x0d characters might be acidentally added to or removed from the data.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in wc3270 3.3.7p5, 11. April 2008

  • Bug Fixes:
    • After installation is complete, get rid of mkshort.exe, which shares its name (but not its functionality) with a computer surveillance application.
    • Corrected several issues with key event processing and the default keymap.

Changes in wc3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Changed the New Session Wizard to create the Application Data directory, so wc3270 can be run by any user, not just the one that installed it.
    • Changed the default window title from the pathname of the session to just the session name.

Changes in wc3270 3.3.7p2, 15. January 2008

  • Bug Fixes:
    • Fixed an embarassing problem that kept wpr3287 from starting.

Changes in wc3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed line-drawing characters.
    • Enabled IPv6 support for Windows XP and later.
    • Set the input code page correctly, so that keyboard input works correctly when there is a mismatch between the default Windows code page and the code page implied by the wc3270 character set option.
  • New Features:
    • Added limited support for Windows 98. wc3270 will install and run on Windows 98, but internationalization support is limited -- the only supported host code page is 37, and the only supported Windows code page is 437. This is expected to improve in the future.
    • Added a wc3270.highlightUnderline resource to control highlighting of underlined and blinking text. (Set to false to disable background highlighting.)
    • Moved session files, keymaps and trace files to the Application Data directory. (wc3270 will still look in its installation directory for session files and keymaps, after first searching the Application Data directory.) This makes wc3270 a better Windows citizen in general, and a better Vista citizen in particular.
    • Added support for changing the color mappings. The console color for a given host color can be specified with the resource wc3270.consoleColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a console color number (0 through 15).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      wc3270.hostColorForDefault
      wc3270.hostColorForIntensified
      wc3270.hostColorForProtected
      wc3270.hostColorForProtectedIntensified
             
      The value for each of these is a host color number; the actual color displayed is defined by the corresponding wc3270.consoleColorForHostColorn resource.
    • Added a new cp1153 character set. It implements host code page 1153 and uses Windows code page 1250, used primarily in Central Europe.
    • Added display of the Windows code page to the character set screen in the New Session Wizard.
    • Added display of the host and Windows code pages to the show status command.

Changes in s3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in s3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in s3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer(Ascii) actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

      NOTE: If you were were previously running s3270 in a UTF-8 locale, this is an incompatible change. To ensure the previous behavior, set your locale to C before starting s3270.

Changes in tcl3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in tcl3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in tcl3270 3.3.7p3, 22. Febuary 2008

  • Bug Fixes:
    • Fixed a problem with non-ASCII characters returned by the Ascii command.
    • Fixed a problem with the Connect command, which resulted in subsequent actions not blocking properly.

Changes in tcl3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

Changes in pr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in pr3287 3.3.7, 25. December 2007

  • Enhancements:
    • Added proxy support via the -proxy option.

Changes in wpr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in wpr3287 3.3.7, 25. December 2007

(none)

Changes in x3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Fixed the highlighted attribute for individual regions of the screen (versus the highlighted field attribute); it had been accidentally disabled.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Pseudo-Color mode is no more. This was the mode that x3270 used when a 3278 model was specified, or if the m3279 resource were set to False. Pseudo-Color assigned colors to regions of the screen based on intensity and light-pen selectability, and did not support 3279 colors. Now turning off color or selecting a 3278 results in something that looks like a 3278 (i.e., it's green). To resurrect Pseudo-Color mode, set the following resources:
        x3270.inputColor: orange
        x3270.boldColor: cyan

Changes in c3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Got local process (-e) support to work again.
    • Fixed -mono -allbold mode.
    • c3270 now paints the entire screen, not just the areas it intends to use, so there are no uninitialized regions.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for the 3270 background color attribute.
    • Added more mappings to the 3270 default keymap (IC -> ToggleInsert, Ctrl<Key>U -> DeleteField, etc.).
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Like x3270 and wc3270, -model 3278 now specifies a green-screen 3278 (if the terminal supports color), and like x3270, -mono specifies that any color capabilities reported by the terminal should be ignored.

Changes in wc3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Restored line-drawing character support.
    • Restored background color support in NVT mode.
    • Corrected some screen rendering issues.
    • Fixed screen trace (-set screenTrace).
    • Removed the -mono option and mono resource.
  • New Features:
    • Added the Spanish character set, CP 284.
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for setting the window title, either automatically, or via the -title option or wc3270.title resource.
    • Added gray background highlighting of underlined and blinking text. Windows consoles don't support these attributes, but at least they can be distinguished from other text now.
    • Added background color support in 3270 mode.
    • Added a window to monitor trace output.
    • Greatly improved key event tracing.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in s3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in tcl3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in wc3270 3.3.5p9, 10. June 2007

  • Bug Fixes:
    • The shortcut cursor size property is now obeyed.
    • The -model 3278 option now works correctly.
  • New Features:
    • Added secure connection status to the status line and the show status command.
    • Reverse video is now supported.
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added a keymap tutorial to the documentation.

Changes in wc3270 3.3.5p8, 29. April 2007

  • Bug Fixes:
    • Fixed a hang when wpr3287 exits unexpectedly.
    • Improved behavior when input comes from multiple sources, such as when pasting text.
    • Greatly improved screen update speed.
  • New Features:
    • Added wpr3287 support back to the wizard. It was in the GUI version, but was never in the text version.
    • Integrated new back-end printer support in wpr3287, including a new wc3270.printer.name resource.
    • Added a Paste() action, mapped to Ctrl-V, to do multi-line paste properly.
    • Added a .wc3270km suffix to keymap files.
    • Added keymap support to the wizard.
    • Added interactive prompting to the Transfer() action.

Changes in wpr3287 3.3.5p8, 29. April 2007

  • New Features:
    • Added direct support for Windows printers, instead of relying on the DOS PRINT command. This included changing the -command option to a -printer option, to specify the Windows printer to use as a back end.

Changes in x3270 3.3.5p6, 7. April 2007

  • Bug Fixes:
    • x3270 will now build with ICU 3.6.
    • A long-standing screen update bug is finally fixed.
    • The unused x3270hist.pl script is no longer installed.

Changes in c3270 3.3.5p4, 7. April 2007

  • Bug Fixes:
    • c3270 can now be built without File Transfer support.
    • The unused x3270hist.pl script is no longer installed.

Changes in wc3270 3.3.5p3, 2. March 2007

  • Bug Fixes:
    • Reverted the wc3270 New Session Wizard to the non-GUI version, because the GUI version, built with Microsoft Visual C++ 2005 Express Edition, had too many dependencies (latest service pack, .NET framework) on the target machine.

Changes in wc3270 3.3.5p2, 16. February 2007

  • Bug Fixes:
    • Ensured that the desktop shortcuts specify Lucida Console, so non-ASCII-7 characters are displayed properly.
  • New Features:
    • Added a file association for the .wc3270 suffix.
    • Replaced the console version of the New Session Wizard with a proper GUI version.

Changes in wc3270 3.3.5p1, 6. February 2007

  • Bug Fixes:
    • Added the working directory to the desktop links created by the setup program.
  • New Features:
    • Added printer session (wpr3287) support.

Changes in x3270 3.3.5, 1. February 2007

  • Bug Fixes:
    • Fixed a crash when the user's home directory or the ~/.x3270connect file wasn't writeable.
    • Fixed some endcases when pasting text that wraps lines and a field skip is encountered.
    • Fixed the handling of SI characters in cut/pasted text.
    • Allow the use of ICU version 3.0 or greater.
    • Fixed a scripting hang when the host disconnects during Wait(output)).
    • Turned the unlockDelay option back on by default.
    • Fixed a problem where unlockDelay could result in the keyboard never unlocking, if the host unlocked the keyboard often enough.
    • Added a workaround for very old snprintf() implementations.
    • Fixed a problem with DBCS input corrupting existing DBCS subfields.
    • Fixed a problem with the Wait action in the expect glue. (Thanks to Jason Howk for the fix.)
    • Enlarged the input buffer in x3270if. (Thanks to Igor Klingen for the fix.)
    • Fixed a SIGCHLD handler issue on AIX.
    • Fixed a problem with CR/LF translation on ASCII file transfers.
  • New Features:
    • Added a -socket option to x3270, s3270 and c3270 to allow a script to connect to a Unix-domain socket to control the emulator, and added a -p option to x3270if to connect to the socket.
    • Added optional support for plugins, with a first plugin to implement command history on VM/CMS and TSO hosts.
    • Allow arbitrary color names (#rrggbb) to be used in color schemes.
    • Added support for hierarchical macro menus.
    • Added an XkSelector resource to allow transparent support of non-English keyboards.
    • Added preliminary support the 16-bit display fonts and the Persian character set.
    • Added Title and WindowState actions to allow the x3270 window title and icon state to bw changed respectively.

Changes in x3270 3.3.4, 10. April 2005

  • Bug Fixes:
    • The code once again builds on Cygwin and other systems not supporting IPv6.
    • The -xrm option works again in x3270.
    • The -name X Toolkit option works with x3270, though not yet with app-defaults files.
    • Removed spurious 'no child' error messages from pr3287 on some systems.
    • Removed unintended blank-line suppression from the output of PrintText html string.
    • Restored some missing keymap definitions (rlx, ow) and some missing lines from other keymap definitions (apl).
    • Restored the automatic keyboard unlock delay when processing a macro or string. This allows macros and strings with embedded AID sequences to work with hosts that unlock the keyboard before they finish processing a command. Scripts are presumed to be able to figure out when the host is finished, or can set the unlockDelay resource to true get the delay all the time.
    • Fixed an apparent hang (actually just extreme slowness) when the host sends a message larger than 4 Kbytes on an SSL tunnel.
    • Removed spurious 'Wait timed out' errors in the Wait action.
  • New Features:
    • Added a newer, more flexible version of Don Russell's RPQNAMES support.
    • Added support for IPv6.
    • Added an oldclick keymap to restore the pre-3.3 mouse click behavior.

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta2, 1. February 2005

  • Bug Fixes:
    • Reduced the Resident Set Size (RSS) of x3270 from about 40 MBytes to less than 4 MBytes. This was a bug in how compiled-in app-defaults files were generated.
    • Got separate app-defaults files (configure --enable-app-defaults) to work again.
    • Fixed a crash when a login macro is used in NVT mode or when the host un-negotiates TN3270E mode.
    • Fixed the titles of the Copyright and Configuration pop-ups.
    • Temporarily disabled the RPQNAMES Query Reply. It was causing IBM QMF to crash. It can be re-enabled by adding #define X3270_RPQNAMES 1 to conf.h. Hopefully a proper fix can be found shortly.
  • New Features:

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta1, 31. December 2004

  • Bug Fixes:
    • The Transfer() action did not work at all -- it generated (null) as the name of the IND$FILE command. Also improved its behavior when invoked from a script or macro in x3270 and c3270.
    • Corrected the definition of the hebrew (code page 424) character set, removing undefined characters.
    • Corrected the display character set for the brazilian (code page 275) character set.
    • Corrected the character set definition logic so that undefined ASCII codes are truly undefined in NVT mode.
    • Corrected the ibm_hosts file (the hostsFile resource or the -hostsfile option). Variable and tilde substitution are now performed on the value, and if a non-default value is specified and the file does not exist, an error pop-up is generated.
    • Added a pause to make sure that c3270 start-up error messages will be seen.
    • Got the c3270 default field colors right, and made all-bold mode actually make all the fields bold.
    • Fixed the default primary/alternate screen size (it was alternate, it's supposed to be primary).
    • Fixed c3270 color support with ncurses and 80/132 screen-size switching. Sometimes only one of the screen sizes had color.
    • Fixed a memory leak in pr3287 when the -reconnect option is used. (Thanks to Marcelo Lemos for the fix.)
    • Fixed the output of NVT-mode ANSI line-drawing characters in the Ascii() scripting action. These were formerly all output as blanks; now they are output in the same was as x3270 3.2.
    • Fixed the display of NVT-mode ANSI line-drawing characters when x3270 is using a 3270 font.
    • Fixed the display of DBCS blanks, which sometimes displayed as 'undefined' characters.
    • Fixed DBCS character display with fonts whose maximum bounds are larger than their reported line-spacing bounds.
    • Fixed make depend.
    • Fixed x3270_glue.expect, which got confused when there was a whitespace-delimited double-quote in the emulator output.
    • Fixed crashes when the entire File or Options menus were suppressed.
    • Fixed a scripting hang when an UNBIND command arrived while an AID was pending.
    • Fixed a problem with the incomplete processing of a NULLing Program Tab order, which could leave formatting artifacts on the screen.
    • Removed <subchar1> clauses in two of the .ucm files that prevents later versions of ICU's makeconv from accepting them, and removed DOS carriage-return characters from the CP837 .ucm file.
    • Corrected some DFT-mode file upload problems: corrected the data length, and corrected an empty-buffer problem when the file size was an even multiple of the buffer size.
    • Corrected a DBCS conversion problem with ICU 3.0.
    • Added variable buffer-size support to DFT file transfers.
    • Corrected a line-drawing character bug in c3270.
    • Fixed a buffer overflow problem in the ReadBuffer action.
    • Fixed garbage characters generated for APL data by the Ascii and ReadBuffer actions.
    • Allow 0 timeouts in Wait actions.
  • New Features:
    • Added command-line options to the pr3287 trace file.
    • Added support for dead keys (acute, grave, circumflex, tilde, diaeresis) to the x3270 default keymap, and improved the Latin-1 compose map. (Thanks to Marcelo Lemos for the change.)
    • Added new actions for improved mouse interactions, and made them the default. Button 1 now moves the cursor, without the Shift key.
    • Added support for DBCS in pr3287, but only when started from an x3270 or c3270 session.
    • Added Don Russell's RPQNAMES support.
    • Removed Minolta-copyrighted 5250 code, because of licensing problems.
    • Added an aidWait toggle to allow AID script actions (Clear, Enter, PA and PF) to complete immediately without waiting for the host to unlock the keyboard, and a Wait(Unlock) action action to block a script until the keyboard is unlocked, regardless of the state of the new toggle.
    • Removed the old scripting hack that delayed actually unlocking the keyboard for 50ms after the host indicates that it should be unlocked. Added an unlockDelay resource, which can be set to true to turn the delay hack back on.
    • Added a dftBufferSize resource to set the default DFT buffer size.
    • Added an x3270 Save Screen Text menu option to save the screen image in a file, optionally in HTML.
    • Added options to the PrintText action to save to a file, to save HTML, and to return the text as script data.

Changes in x3270, c3270, s3270 and tcl3270 3.3.2, 1. December 2003

  • Bug Fixes:
    • Corrected an x3270 screen-redraw crash when using fixedSize and xim.
    • Corrected a problem in x3270_glue.expect, which caused Tcl syntax errors if a string began with a dash. Thanks to David Taylor for the fix.
    • Fixed a problem with x3270 DBCS input when using a single DBCS/SBCS character set.
    • Made DBCS encoding recognition automatic wherever possible, leaving the -km option for cases when x3270 can't figure it out from the locale.
    • Made c3270's configure more robust when it can't find one or the other of libncurses or ncurses.h.
    • Got automatic pr3287 start-up (-printerlu) working again in c3270.
    • Fixed an s3270 crash which made s3270 3.3.1alpha10 pretty much useless.
  • New Features:
    • Added support for Cyrillic keysyms to the x3270 Default() action.
    • Added an 'unlocked' icon for unencrypted connections, if x3270 is built with SSL/TLS support.
    • Error messages are now written to the trace file.
    • The response to the TELNET TIMING MARK option has been changed to make it compatible with the majority of TELNET clients. The response to DO TIMING MARK is now WONT TIMING MARK. To restore the previous behavior (responding with WILL TIMING MARK, originally derived from the BSD TELNET client), set the resource x3270.bsdTm to true.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha10, 29. August 2003

  • Bug Fixes:
    • Made nondisplay fields invisible to the Ascii() action.
    • Corrected start-field values at the beginning of data stream traces and in the 3270 Read Buffer response.
    • Corrected a tight loop in the macro error cancellation logic.
    • Corrected a crash when connecting to a host and there is no menu bar visible.
    • Corrected x3270 crashes in monochrome mode (-mono) and pseudo-color mode (-model 3278).
  • New Features:
    • Added a ReadBuffer() action to dump the entire contents of the 3270 buffer, including field attributes and extended attributes.
    • Added support for suppress resources for each menu item. If set to True, that menu item will not appear.
    • Added a suppressActions resource, a list of the names of actions to disable. This is primarily for controlled environments where the user does not have access to the x3270 command line, but can edit keymap definitions.
    • Added a Setverbose function to x3270_glue.expect to allow verbosity to be changed on the fly. (Courtesy of David Taylor.)
    • Added the ability to define resources in an environment variable, $X3270RDB. The environment variable overrides values set in the profile file, but is overridden by command-line options.
    • Added a fixedSize resource to force the x3270 main window to a particular size. fixedSize has the form widthxheight, in pixels. The 3270 display will float in the center of the window, if need be.
    • Added a new x3270 keypad position (x3270.keypad): insideRight. This positions the keypad on top of the upper right-hand corner of the x3270 window, just under the keypad button on the menu bar.

Changes in pr3287 3.3.1alpha10, 10. August 2003

  • Enhancements:
    • Added support for the -tracedir option, to specify a directory to store trace files in.
    • Added support the the -eojtimeout option, to automatically flush any pending print job after a specified period of inactivity.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha9, 24. July 2003

  • Bug Fixes:
    • DBCS character set names are displayed in the x3270 Options->Font menu only when DBCS support is built into x3270.
    • Removed the concept of 'per-host' resources. Use profiles for this.
    • Fixed idle commands. They were pretty much hopeless in 3.3.1alpha8 and 3.2.20.
    • Fixed a Unicode conversion crash.
    • Fixed a bug in processing the Modify Field order, which would cause the character set attribute for the field to be accidentally reset to the default.
  • New Features:
    • x3270 user-specified lists (character sets, hosts, fonts, color schemes) can now be organized into sub-lists. The name Bob>Fred>Tony specifies that there is a sub-list called Bob, which contains a sub-list Fred, which contains the item Tony.
    • The TELNET START-TLS option is now supported.

Changes in pr3287 3.3.1alpha9, 30. July 2003

  • Bug Fixes:
    • Ignore SIGINT in the print job process, so that killing an interactive pr3287 with ^C won't cause buffered data to be lost.
    • Fixed a problem with losing a byte of data after an SHF order.
    • Fixed the SCS HT order, which was completely broken.
  • Enhancements:
    • Added support for SIGUSR1 to flush the print job.
    • Added support for the TELNET START-TLS option.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha8, 15. April 2003

  • Bug Fixes:
    • Builds cleanly on Linux with -Wall -ansi -pedantic.
    • Builds without OpenSSL libraries being present.
    • Correctly records Field Attributes in the initial screen snapshot in a Data Stream Trace file.
    • Auto-Skip fields work properly.
    • "Dead" positions in DBCS fields are handled correctly.
    • Invalid host DBCS characters are handled better and are displayed in the Data Stream Trace file.
    • The Erase action now works properly with DBCS characters.
    • The x3270 Visible Control Characters toggle now works properly.
    • The EBCDIC notsign '¬' can now be entered in c3270 with Ctrl-A, ^ (it formerly caused an error message).
  • New Features:
    • The Erase action is now the default for the BackSpace key in x3270.
    • Ctrl-A, a is now mapped onto the Attn action in the c3270 default 3270 keymap.
    • Four more Japanese host code pages have been added: 930, 939, 1390 and 1399. This uses new support for combined SBCS/DBCS code pages.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1, 14. February 2003

  • Bug Fixes:
    • (Same as x3270 3.2.20)
  • New Features:
    • DBCS support for Simplfied Chinese and Japanese, including x3270 integration with XIM.
    • Tunneled SSL support added (entire Telnet session inside of an SSL tunnel). Uses the OpenSSL library. Toggled with an 'L:' prefix on the hostname.
    • A Visible Control Characters toggle replaces x3270's 3270d Debug Font.
    • About x3270 pop-up split into three smaller pieces.
ibm-3270-3.3.10ga4/c3270/html/Build.html0000644000175000017500000001456011254565706016626 0ustar bastianbastian c3270 Build and Install Instructions

c3270 Build and Install Instructions

To build c3270, type:
    ./configure
    make
To install c3270 in the default install directory (/usr/local), type:
    make install

Wide Curses Requirement

c3270 needs a 'wide' version of the curses or ncurses library (one that supports multi-byte character encodings). Without wide curses or ncurses, c3270 will be restricted to using the 7-bit basic ASCII character set.

On some platforms, the standard curses or ncurses library is the wide version and no extra packages need be installed. On others, a special wide ncurses package is needed. On still others (such as on Solaris, documented below) the wide curses library is installed in a special location and configure must be told where to locate it using CPPFLAGS and LDFLAGS.

Notes for Cygwin

The minimum set of Cygwin packages needed to compile c3270 are:
  • The default set (bash, etc.)
  • The make package from the Devel group
  • The gcc-core package from the Devel group
  • The libncurses-devel package from the Devel group
Optional features require some additional packages:
  • For SSL support, you need the openssl-devel package from the Devel group
  • For command-line editing and history, you need the readline package from the Devel group
  • To build a standalone ZIP file (see below), you need the zip package from the Archive group
To build a standalone version of c3270 (a ZIP file containing c3270.exe and the minimum set of Cygwin libraries and configuration files -- thus allowing c3270 to be installed and run without a full Cygwin installation), type:
    make c3270-standalone-zip

Notes for Sun's C Compiler

Do not use Sun's BSD-compatibility compiler, /usr/ucb/cc. This is good advice in general, but in particular, c3270 will not build with it. In general, you must have a directory containing gcc (preferred) or Sun's ANSI C compiler (usually in /usr/ccs/bin) in your $PATH ahead of /usr/ucb.

Notes for Solaris

c3270 prefers wide curses, which on Solaris is in the /usr/xpg4 directory. To use this version of curses, set CPPFLAGS and LDFLAGS when running configure:
    ./configure CPPFLAGS=-I/usr/xpg4/include LDFLAGS=-L/usr/xpg4/lib

Building on FreeBSD

FreeBSD's iconv library is installed in /usr/local, so the the following options must be passed to the configure script:
       ./configure LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include

Summary of configure Options

The c3270 configure script accepts the following options:
 
--help Print a help message.
--prefix=prefix Install architecture-independent files under prefix (defaults to /usr/local)
--exec-prefix=eprefix Install architecture-dependent files (executables) under eprefix (defaults to same as prefix)
--bindir=dir Install user executables (c3270, x3270if, pr3287) in dir (defaults to eprefix/bin
--sysconfdir=dir Install configuration files (ibm_hosts, character sets) in dir (defaults to prefix/etc).
--without-readline Don't use the readline command-line editing library, even if it is found on the system.
--without-pr3287 Don't build pr3287.
Useful if you don't need printer session support, or if you want to build pr3287 separately or with different configuration options.
--disable-ansi Leave out NVT (ANSI) support.
Note that NVT support is required for TN3270E support.
--disable-apl Leave out APL character support.
--enable-dbcs
Build in DBCS (Double Byte Character Set) support.
--disable-ft Leave out IND$FILE file transfer support.
--disable-local-process Leave out local process (connecting to "-e shell_command") support.
This will be automatically disabled if the local system does not support the forkpty() library call.
--disable-printer Leave out printer session (pr3287) support.
--disable-script Leave out scripting support.
--disable-ssl
Leave out SSL (Secure Sockets Layer) support.  SSL support requires the OpenSSL library.
--with-ssl=dir
Specify the directory where the OpenSSL library is installed.
--disable-tn3270e Leave out TN3270E support.
--disable-trace Leave out tracing support.

Leaving out all of the optional features will result in a smaller binary.



ibm-3270-3.3.10ga4/c3270/html/x3270if.html0000644000175000017500000001606611261530006016653 0ustar bastianbastian x3270if Manual Page

x3270if Manual Page

Contents

Name
Synopsis
Description
Options
Exit Status
Environment
See Also
Copyright

Name

x3270if - command interface to x3270, c3270 and s3270

Synopsis

x3270if [option]... [ action ]
x3270if -i

Description

x3270if provides an interface between scripts and the 3270 emulators x3270, c3270, and s3270.

x3270if operates in one of two modes. In action mode, it passes a single action and parameters to the emulator for execution. The result of the action is written to standard output, along with the (optional) status of the emulator. (The action is optional as well, so that x3270if can just reports the emulator status.) In iterative mode, it forms a continuous conduit between a script and the emulator.

The action takes the form:

action-name(param[,param]...)

The parentheses are manatory, and usually must be quoted when x3270if is called from a shell script.

If any param contains a space or comma, it must be surrounded by double quotes.

Options

-s field
Causes x3270if to write to stdout the value of one of the emulator status fields. Field is an integer in the range 0 through 11. The value 0 is a no-op and is used only to return exit status indicating the state of the emulator. The indices 1-11 and meanings of each field are documented on the x3270-script(1) manual page. If an action is specified as well, the status field is written after the output of the action, separated by a newline. The -s option is mutually exclusive with the -S and -i options.
-S
Causes x3270if to write to stdout the value of all of the emulator status fields. If an action is specified as well, the status fields are written after the output of the action, separated by a newline. The -S option is mutually exclusive with the -s and -i options.
-i
Puts x3270if in iterative mode. Data from x3270if's standard input is copied to the emulator's script input; data from the emulator's script output is copied to x3270if's standard output. The -i option is mutually exclusive with the -s and -S options. x3270if runs until it detects end-of-file on its standard input or on the output from the emulator. (This mode exists primarily to give expect(1) a process to run, on systems which do not support bidirectional pipes.)
-p process-id
Causes x3270if to use a Unix-domain socket to connect to the emulator, rather than pipe file descriptors given in environment variables. The emulator must have been started with the -socket option.
-t port
Causes x3270if to use a TCP socket to connect to the emulator, rather than pipe file descriptors given in environment variables. The emulator must have been started with the -scriptport option.
-v
Turns on verbose debug messages, showing on stderr the literal data that is passed between the emulator and x3270if.

Exit Status

In action mode, if the requested action succeeds, x3270if exits with status 0. If the action fails, x3270if exits with status 1. In iterative mode, x3270if exits with status 0 when it encounters end-of-file. If there is an operational error within x3270if itself, such as a command-line syntax error, missing environment variable, or an unexpectedly closed pipe, x3270if exits with status 2.

Environment

When a script is run as a child process of one of the emulators via the Script action, the emulator passes information about how to control it in environment variables.

On Unix, the emulator process creates a pair of pipes for communication with the child script process. The values of the file descriptors for these pipes are encoded as text in two environment variables:

X3270OUTPUT
Output from the emulator, input to the child process.
X3270INPUT
Input to the emulator, output from the child process.

On Windows, or when a Unix emulator is started with the -scriptport option, the emulator will pass the port number encoded as text in the X3270PORT environment variable. x3270if will use that value as if it had been passed to it via the -t option. X3270PORT takes precedence over X3270OUTPUT and X3270INPUT.

See Also

x3270(1), c3270(1), s3270(1), x3270-script(1)

Copyright

Copyright © 1999-2009, Paul Mattes.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

*
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
*
Neither the names of Paul Mattes nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES `AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/c3270/html/Lineage.html0000644000175000017500000000447611254565706017140 0ustar bastianbastian c3270 Lineage

c3270 Lineage

Here is the official copyright notice for c3270 3.3. It is a standard 3-element BSD license.

Copyright © 1993-2009, Paul Mattes.
Copyright © 2004-2005, Don Russell.
Copyright © 2004, Dick Altenbern.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

ibm-3270-3.3.10ga4/c3270/html/README.html0000644000175000017500000000425011254565706016517 0ustar bastianbastian c3270 3.3 General Release

c3270 3.3 General Release

c3270 is a curses-based IBM 3278/3279 terminal emulator.

Documentation is in the html directory. The files are:

Intro
What c3270 is
Lineage
Where c3270 came from (copyright stuff)
Build
How to build and install c3270
FAQ
Frequently Asked Questions (what to do when something goes wrong)
ReleaseNotes
What's new in this release
Resources
A complete list of c3270 resources (configuration items)
Bugs
What's broken in this release
Wishlist
What isn't in this release
There is also a hypertext version of the c3270 man page, and of the man pages for x3270-script and x3270if. Please read Build before going ahead and building the program. Also, if you have a problem, scan through FAQ; there are lots of interesting answers there.

Updates to c3270, as well as the current status of development and bugs, are available from the x3270 Web Page.

Feel free to send comments, criticism, suggestions, complaints, etc., to Paul Mattes, Paul.Mattes@usa.net. Requests will be addressed as time and resources permit.

There is also an x3270 mailing list, which also includes information about c3270, and which receives news about new releases. Send a message to Paul.Mattes@usa.net (a real person, with an automatic responses for certain subject lines) to get on the list. ibm-3270-3.3.10ga4/c3270/html/Wishlist.html0000644000175000017500000000122211254565706017364 0ustar bastianbastian The c3270 Wish List

The c3270 Wish List

Here is a list of some of the more interesting suggestions and requests made for c3270. You may also take this as a list of functions that are definitely not in this version of c3270.

There is no guarantee that anyone is actively working on these, but feel free to yourself...

  • (nothing yet)
ibm-3270-3.3.10ga4/c3270/config.sub0000755000175000017500000010115311254565704015711 0ustar bastianbastian#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ibm-3270-3.3.10ga4/c3270/keymap.c0000644000175000017500000005537111256431057015365 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * keymap.c * A curses-based 3270 Terminal Emulator * Keyboard mapping */ #include "globals.h" #include #include "appres.h" #include "resources.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "macrosc.h" #include "popupsc.h" #include "screenc.h" #include "statusc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #undef COLS extern int cCOLS; #if defined(HAVE_NCURSESW_NCURSES_H) /*[*/ #include #elif defined(HAVE_NCURSES_NCURSES_H) /*][*/ #include #elif defined(HAVE_NCURSES_H) /*][*/ #include #else /*][*/ #include #endif /*]*/ #define KM_3270_ONLY 0x0010 /* used in 3270 mode only */ #define KM_NVT_ONLY 0x0020 /* used in NVT mode only */ #define KM_INACTIVE 0x0040 /* wrong NVT/3270 mode, or overridden */ #define KM_KEYMAP 0x8000 #define KM_HINTS (KM_CTRL|KM_ALT) typedef struct { int key; /* KEY_XXX or 0 */ int modifiers; /* KM_ALT */ ucs4_t ucs4; /* character value */ } k_t; struct keymap { struct keymap *next; struct keymap *successor; int ncodes; /* number of key codes */ k_t *codes; /* key codes */ int *hints; /* hints (flags) */ char *file; /* file or resource name */ int line; /* keymap line number */ char *action; /* actions to perform */ }; #define IS_INACTIVE(k) ((k)->hints[0] & KM_INACTIVE) static struct keymap *master_keymap = NULL; static struct keymap **nextk = &master_keymap; static Boolean last_3270 = False; static Boolean last_nvt = False; static int lookup_ccode(const char *s); static void keymap_3270_mode(Boolean); #define codecmp(k1, k2, len) \ kvcmp((k1)->codes, (k2)->codes, len) static void read_one_keymap(const char *name, const char *fn, const char *r0, int flags); static void clear_keymap(void); static void set_inactive(void); /* * Compare two k_t's. * Returns 0 if equal, nonzero if not. */ static int kcmp(k_t *a, k_t *b) { if (a->key && b->key && (a->key == b->key)) return 0; if (a->ucs4 && b->ucs4 && (a->ucs4 == b->ucs4) && (a->modifiers == b->modifiers)) return 0; /* Special case for both a and b empty. */ if (!a->key && !b->key && !a->ucs4 && !b->ucs4) return 0; return 1; } /* * Compare a vector of k_t's. */ static int kvcmp(k_t *a, k_t *b, int len) { int i; for (i = 0; i < len; i++) { if (kcmp(&a[i], &b[i])) return 1; } return 0; } /* * Parse a key definition. * Returns <0 for error, 1 for key found and parsed, 0 for nothing found. * Returns the balance of the string and the character code. * Is destructive. */ static int parse_keydef(char **str, k_t *ccode, int *hint) { char *s = *str; char *t; char *ks; int flags = 0; KeySym Ks; Boolean matched = False; ccode->key = 0; ccode->ucs4 = 0; ccode->modifiers = 0; /* Check for nothing. */ while (isspace(*s)) s++; if (!*s) return 0; *str = s; s = strstr(s, ""); if (s == CN) return -1; ks = s + 5; *s = '\0'; s = *str; while (*s) { while (isspace(*s)) s++; if (!*s) break; if (!strncmp(s, "Alt", 3)) { ccode->modifiers |= KM_ALT; s += 3; } else if (!strncmp(s, "Ctrl", 4)) { flags |= KM_CTRL; s += 4; } else return -2; } s = ks; while (isspace(*s)) s++; if (!*s) return -3; t = s; while (*t && !isspace(*t)) t++; if (*t) *t++ = '\0'; if (!strncasecmp(s, "U+", 2) || !strncasecmp(s, "0x", 2)) { unsigned long u; char *ptr; /* Direct specification of Unicode. */ u = strtoul(s + 2, &ptr, 16); if (u == 0 || *ptr != '\0') return -7; ccode->ucs4 = (ucs4_t)u; matched = True; } if (!matched) { ucs4_t u; int consumed; enum me_fail error; /* * Convert local multibyte to Unicode. If the result is 1 * character in length, use that code. */ u = multibyte_to_unicode(s, strlen(s), &consumed, &error); if (u != 0 && (size_t)consumed == strlen(s)) { ccode->ucs4 = u; matched = True; } } if (!matched) { /* * Try an X11 keysym, for compatability with old c3270 keymaps. * Note that X11 keysyms assume ISO 8859-1 Latin-1, so if we * are running in some other 8-bit locale (e.g., Latin-2), * keysyms > 0x7f will be wrong. That's why we support * Unicode now. */ Ks = StringToKeysym(s); if (Ks != NoSymbol) { ccode->ucs4 = Ks; matched = True; } } if (!matched) { int cc; /* Try for a curses key name. */ cc = lookup_ccode(s); if (cc == -1) return -4; if (flags || ccode->modifiers) return -5; /* no Alt/Ctrl with KEY_XXX */ ccode->key = cc; matched = True; } /* Apply Ctrl. */ if (ccode->ucs4) { if (flags & KM_CTRL) { if (ccode->ucs4 > 0x20 && ccode->ucs4 < 0x80) ccode->ucs4 &= 0x1f; else return -6; /* Ctrl ASCII-7 only */ } } /* Return the remaining string, and success. */ *str = t; *hint = flags; return 1; } static char *pk_errmsg[] = { "Missing ", "Unknown modifier", "Missing keysym", "Unknown keysym", "Can't use Ctrl or Alt modifier with curses symbol", "Ctrl modifier is restricted to ASCII-7 printable characters", "Invalid Unicode syntax" }; /* * Locate a keymap resource or file. * Returns 0 for do-nothing, 1 for success, -1 for error. * On success, returns the full name of the resource or file (which must be * freed) in '*fullname'. * On success, returns a resource string (which must be closed) or NULL * (indicating a file name to open is in *fullname) in '*r'. */ static int locate_keymap(const char *name, char **fullname, char **r) { char *rs; /* resource value */ char *fnx; /* expanded file name */ int a; /* access(fnx) */ /* Return nothing, to begin with. */ *fullname = CN; *r = CN; /* See if it's a resource. */ rs = get_fresource(ResKeymap ".%s", name); /* If there's a plain version, return it. */ if (rs != CN) { *fullname = NewString(name); *r = NewString(rs); return 1; } /* See if it's a file. */ fnx = do_subst(name, True, True); a = access(fnx, R_OK); /* If there's a plain version, return it. */ if (a == 0) { *fullname = fnx; return 1; } /* No dice. */ Free(fnx); return -1; } /* Add a keymap entry. */ static void add_keymap_entry(int ncodes, k_t *codes, int *hints, const char *file, int line, const char *action) { struct keymap *k; struct keymap *j; /* Allocate a new node. */ k = Malloc(sizeof(struct keymap)); k->next = NULL; k->successor = NULL; k->ncodes = ncodes; k->codes = Malloc(ncodes * sizeof(k_t)); (void) memcpy(k->codes, codes, ncodes * sizeof(k_t)); k->hints = Malloc(ncodes * sizeof(int)); (void) memcpy(k->hints, hints, ncodes * sizeof(int)); k->file = NewString(file); k->line = line; k->action = NewString(action); /* See if it's inactive, or supercedes other entries. */ if ((!last_3270 && (k->hints[0] & KM_3270_ONLY)) || (!last_nvt && (k->hints[0] & KM_NVT_ONLY))) { k->hints[0] |= KM_INACTIVE; } else for (j = master_keymap; j != NULL; j = j->next) { /* It may supercede other entries. */ if (j->ncodes == k->ncodes && !codecmp(j, k, k->ncodes)) { j->hints[0] |= KM_INACTIVE; j->successor = k; } } /* Link it in. */ *nextk = k; nextk = &k->next; } /* * Read a keymap from a file. * Returns 0 for success, -1 for an error. * * Keymap files look suspiciously like x3270 keymaps, but aren't. */ static void read_keymap(const char *name) { char *name_3270 = xs_buffer("%s.3270", name); char *name_nvt = xs_buffer("%s.nvt", name); int rc, rc_3270, rc_nvt; char *fn, *fn_3270, *fn_nvt; char *r0, *r0_3270, *r0_nvt; rc = locate_keymap(name, &fn, &r0); rc_3270 = locate_keymap(name_3270, &fn_3270, &r0_3270); rc_nvt = locate_keymap(name_nvt, &fn_nvt, &r0_nvt); if (rc < 0 && rc_3270 < 0 && rc_nvt < 0) { xs_warning("No such keymap resource or file: %s", name); Free(name_3270); Free(name_nvt); return; } if (rc >= 0) { read_one_keymap(name, fn, r0, 0); Free(fn); Free(r0); } if (rc_3270 >= 0) { read_one_keymap(name_3270, fn_3270, r0_3270, KM_3270_ONLY); Free(fn_3270); Free(r0_3270); } if (rc_nvt >= 0) { read_one_keymap(name_nvt, fn_nvt, r0_nvt, KM_NVT_ONLY); Free(fn_nvt); Free(r0_nvt); } Free(name_3270); Free(name_nvt); } /* * Read a keymap from a file. * Returns 0 for success, -1 for an error. * * Keymap files look suspiciously like x3270 keymaps, but aren't. */ static void read_one_keymap(const char *name, const char *fn, const char *r0, int flags) { char *r = CN; /* resource value */ char *r_copy = CN; /* initial value of r */ FILE *f = NULL; /* resource file */ char buf[1024]; /* file read buffer */ int line = 0; /* line number */ char *left, *right; /* chunks of line */ static int ncodes = 0; static int maxcodes = 0; static k_t *codes = NULL; static int *hints = NULL; int rc = 0; /* Find the resource or file. */ if (r0 != CN) r = r_copy = NewString(r0); else { f = fopen(fn, "r"); if (f == NULL) { xs_warning("Cannot open file: %s", fn); return; } } while ((r != CN)? (rc = split_dresource(&r, &left, &right)): fgets(buf, sizeof(buf), f) != CN) { char *s; k_t ccode; int pkr; int hint; line++; /* Skip empty lines and comments. */ if (r == CN) { s = buf; while (isspace(*s)) s++; if (!*s || *s == '!' || *s == '#') continue; } /* Split. */ if (rc < 0 || (r == CN && split_dresource(&s, &left, &right) < 0)) { popup_an_error("Keymap %s, line %d: syntax error", fn, line); goto done; } pkr = parse_keydef(&left, &ccode, &hint); if (pkr == 0) { popup_an_error("Keymap %s, line %d: Missing ", fn, line); goto done; } if (pkr < 0) { popup_an_error("Keymap %s, line %d: %s", fn, line, pk_errmsg[-1 - pkr]); goto done; } /* Accumulate keycodes. */ ncodes = 0; do { if (++ncodes > maxcodes) { maxcodes = ncodes; codes = Realloc(codes, maxcodes * sizeof(k_t)); hints = Realloc(hints, maxcodes * sizeof(int)); } codes[ncodes - 1] = ccode; /* struct copy */ hints[ncodes - 1] = hint; pkr = parse_keydef(&left, &ccode, &hint); if (pkr < 0) { popup_an_error("Keymap %s, line %d: %s", fn, line, pk_errmsg[-1 - pkr]); goto done; } } while (pkr != 0); /* Add it to the list. */ hints[0] |= flags; add_keymap_entry(ncodes, codes, hints, fn, line, right); } done: Free(r_copy); if (f != NULL) fclose(f); } /* Multi-key keymap support. */ static struct keymap *current_match = NULL; static int consumed = 0; static char *ignore = "[ignore]"; /* Find the shortest keymap with a longer match than k. */ static struct keymap * longer_match(struct keymap *k, int nc) { struct keymap *j; struct keymap *shortest = NULL; for (j = master_keymap; j != NULL; j = j->next) { if (IS_INACTIVE(j)) continue; if (j != k && j->ncodes > nc && !codecmp(j, k, nc)) { if (j->ncodes == nc+1) return j; if (shortest == NULL || j->ncodes < shortest->ncodes) shortest = j; } } return shortest; } /* * Helper function that returns a keymap action, sets the status line, and * traces the result. * * If s is NULL, then this is a failed initial lookup. * If s is 'ignore', then this is a lookup in progress (k non-NULL) or a * failed multi-key lookup (k NULL). * Otherwise, this is a successful lookup. */ static char * status_ret(char *s, struct keymap *k) { /* Set the compose indicator based on the new value of current_match. */ if (k != NULL) status_compose(True, ' ', KT_STD); else status_compose(False, 0, KT_STD); if (s != NULL && s != ignore) trace_event(" %s:%d -> %s\n", current_match->file, current_match->line, s); if ((current_match = k) == NULL) consumed = 0; return s; } /* Timeout for ambiguous keymaps. */ static struct keymap *timeout_match = NULL; static unsigned long kto = 0L; static void key_timeout(void) { trace_event("Timeout, using shortest keymap match\n"); kto = 0L; current_match = timeout_match; push_keymap_action(status_ret(timeout_match->action, NULL)); timeout_match = NULL; } static struct keymap * ambiguous(struct keymap *k, int nc) { struct keymap *j; if ((j = longer_match(k, nc)) != NULL) { trace_event(" ambiguous keymap match, shortest is %s:%d, " "setting timeout\n", j->file, j->line); timeout_match = k; kto = AddTimeOut(500L, key_timeout); } return j; } /* * Look up an key in the keymap, return the matching action if there is one. * * This code implements the mutli-key lookup, by returning dummy actions for * partial matches. * * It also handles keyboards that generate ESC for the Alt key. */ char * lookup_key(int kcode, ucs4_t ucs4, int modifiers) { struct keymap *j, *k; int n_shortest = 0; k_t code; code.key = kcode; code.ucs4 = ucs4; code.modifiers = modifiers; /* If there's a timeout pending, cancel it. */ if (kto) { RemoveTimeOut(kto); kto = 0L; timeout_match = NULL; } /* If there's no match pending, find the shortest one. */ if (current_match == NULL) { struct keymap *shortest = NULL; for (k = master_keymap; k != NULL; k = k->next) { if (IS_INACTIVE(k)) continue; if (!kcmp(&code, &k->codes[0])) { if (k->ncodes == 1) { shortest = k; break; } if (shortest == NULL || k->ncodes < shortest->ncodes) { shortest = k; n_shortest++; } } } if (shortest != NULL) { current_match = shortest; consumed = 0; } else return NULL; } /* See if this character matches the next one we want. */ if (!kcmp(&code, ¤t_match->codes[consumed])) { consumed++; if (consumed == current_match->ncodes) { /* Final match. */ j = ambiguous(current_match, consumed); if (j == NULL) return status_ret(current_match->action, NULL); else return status_ret(ignore, j); } else { /* Keep looking. */ trace_event(" partial keymap match in %s:%d %s\n", current_match->file, current_match->line, (n_shortest > 1)? " and other(s)": ""); return status_ret(ignore, current_match); } } /* It doesn't. Try for a better candidate. */ for (k = master_keymap; k != NULL; k = k->next) { if (IS_INACTIVE(k)) continue; if (k == current_match) continue; if (k->ncodes > consumed && !codecmp(k, current_match, consumed) && !kcmp(&k->codes[consumed], &code)) { consumed++; if (k->ncodes == consumed) { j = ambiguous(k, consumed); if (j == NULL) { current_match = k; return status_ret(k->action, NULL); } else return status_ret(ignore, j); } else return status_ret(ignore, k); } } /* Complain. */ beep(); trace_event(" keymap lookup failure after partial match\n"); return status_ret(ignore, NULL); } static struct { const char *name; int code; } ncurses_key[] = { { "BREAK", KEY_BREAK }, { "DOWN", KEY_DOWN }, { "UP", KEY_UP }, { "LEFT", KEY_LEFT }, { "RIGHT", KEY_RIGHT }, { "HOME", KEY_HOME }, { "BACKSPACE", KEY_BACKSPACE }, { "F0", KEY_F0 }, { "DL", KEY_DL }, { "IL", KEY_IL }, { "DC", KEY_DC }, { "IC", KEY_IC }, { "EIC", KEY_EIC }, { "CLEAR", KEY_CLEAR }, { "EOS", KEY_EOS }, { "EOL", KEY_EOL }, { "SF", KEY_SF }, { "SR", KEY_SR }, { "NPAGE", KEY_NPAGE }, { "PPAGE", KEY_PPAGE }, { "STAB", KEY_STAB }, { "CTAB", KEY_CTAB }, { "CATAB", KEY_CATAB }, { "ENTER", KEY_ENTER }, { "SRESET", KEY_SRESET }, { "RESET", KEY_RESET }, { "PRINT", KEY_PRINT }, { "LL", KEY_LL }, { "A1", KEY_A1 }, { "A3", KEY_A3 }, { "B2", KEY_B2 }, { "C1", KEY_C1 }, { "C3", KEY_C3 }, { "BTAB", KEY_BTAB }, { "BEG", KEY_BEG }, { "CANCEL", KEY_CANCEL }, { "CLOSE", KEY_CLOSE }, { "COMMAND", KEY_COMMAND }, { "COPY", KEY_COPY }, { "CREATE", KEY_CREATE }, { "END", KEY_END }, { "EXIT", KEY_EXIT }, { "FIND", KEY_FIND }, { "HELP", KEY_HELP }, { "MARK", KEY_MARK }, { "MESSAGE", KEY_MESSAGE }, { "MOVE", KEY_MOVE }, { "NEXT", KEY_NEXT }, { "OPEN", KEY_OPEN }, { "OPTIONS", KEY_OPTIONS }, { "PREVIOUS", KEY_PREVIOUS }, { "REDO", KEY_REDO }, { "REFERENCE", KEY_REFERENCE }, { "REFRESH", KEY_REFRESH }, { "REPLACE", KEY_REPLACE }, { "RESTART", KEY_RESTART }, { "RESUME", KEY_RESUME }, { "SAVE", KEY_SAVE }, { "SBEG", KEY_SBEG }, { "SCANCEL", KEY_SCANCEL }, { "SCOMMAND", KEY_SCOMMAND }, { "SCOPY", KEY_SCOPY }, { "SCREATE", KEY_SCREATE }, { "SDC", KEY_SDC }, { "SDL", KEY_SDL }, { "SELECT", KEY_SELECT }, { "SEND", KEY_SEND }, { "SEOL", KEY_SEOL }, { "SEXIT", KEY_SEXIT }, { "SFIND", KEY_SFIND }, { "SHELP", KEY_SHELP }, { "SHOME", KEY_SHOME }, { "SIC", KEY_SIC }, { "SLEFT", KEY_SLEFT }, { "SMESSAGE", KEY_SMESSAGE }, { "SMOVE", KEY_SMOVE }, { "SNEXT", KEY_SNEXT }, { "SOPTIONS", KEY_SOPTIONS }, { "SPREVIOUS", KEY_SPREVIOUS }, { "SPRINT", KEY_SPRINT }, { "SREDO", KEY_SREDO }, { "SREPLACE", KEY_SREPLACE }, { "SRIGHT", KEY_SRIGHT }, { "SRSUME", KEY_SRSUME }, { "SSAVE", KEY_SSAVE }, { "SSUSPEND", KEY_SSUSPEND }, { "SUNDO", KEY_SUNDO }, { "SUSPEND", KEY_SUSPEND }, { "UNDO", KEY_UNDO }, { CN, 0 } }; /* Look up a curses symbolic key. */ static int lookup_ccode(const char *s) { int i; unsigned long f; char *ptr; for (i = 0; ncurses_key[i].name != CN; i++) { if (!strcasecmp(s, ncurses_key[i].name)) return ncurses_key[i].code; } if (s[0] == 'F' && (f = strtoul(s + 1, &ptr, 10)) < 64 && ptr != s + 1 && *ptr == '\0') { return KEY_F(f); } return -1; } /* Look up a curses key code. */ static const char * lookup_cname(int ccode) { int i; for (i = 0; ncurses_key[i].name != CN; i++) { if (ccode == ncurses_key[i].code) return ncurses_key[i].name; } for (i = 0; i < 64; i++) if (ccode == KEY_F(i)) { static char buf[10]; (void) sprintf(buf, "F%d", i); return buf; } return CN; } /* Read each of the keymaps specified by the keymap resource. */ void keymap_init(void) { char *s0, *s; char *comma; static Boolean initted = False; /* In case this is a subsequent call, wipe out the current keymap. */ clear_keymap(); read_keymap("base"); if (appres.key_map != CN) { s = s0 = NewString(appres.key_map); while ((comma = strchr(s, ',')) != CN) { *comma = '\0'; if (*s) read_keymap(s); s = comma + 1; } if (*s) read_keymap(s); Free(s0); } last_3270 = IN_3270; last_nvt = IN_ANSI; set_inactive(); if (!initted) { register_schange(ST_3270_MODE, keymap_3270_mode); register_schange(ST_CONNECT, keymap_3270_mode); initted = True; } } /* Erase the current keymap. */ static void clear_keymap(void) { struct keymap *k, *next; for (k = master_keymap; k != NULL; k = next) { next = k->next; Free(k->codes); Free(k->hints); Free(k->file); Free(k->action); Free(k); } master_keymap = NULL; nextk = &master_keymap; } /* Set the inactive flags for the current keymap. */ static void set_inactive(void) { struct keymap *k; /* Clear the inactive flags and successors. */ for (k = master_keymap; k != NULL; k = k->next) { k->hints[0] &= ~KM_INACTIVE; k->successor = NULL; } /* Turn off elements which have the wrong mode. */ for (k = master_keymap; k != NULL; k = k->next) { /* If the mode is wrong, turn it off. */ if ((!last_3270 && (k->hints[0] & KM_3270_ONLY)) || (!last_nvt && (k->hints[0] & KM_NVT_ONLY))) { k->hints[0] |= KM_INACTIVE; } } /* Turn off elements with successors. */ for (k = master_keymap; k != NULL; k = k->next) { struct keymap *j; struct keymap *last_j = NULL; if (IS_INACTIVE(k)) continue; /* If it now has a successor, turn it off. */ for (j = k->next; j != NULL; j = j->next) { if (!IS_INACTIVE(j) && k->ncodes == j->ncodes && !codecmp(k, j, k->ncodes)) { last_j = j; } } if (last_j != NULL) { k->successor = last_j; k->hints[0] |= KM_INACTIVE; } } } /* 3270/NVT mode change. */ static void keymap_3270_mode(Boolean ignored _is_unused) { if (last_3270 != IN_3270 || last_nvt != IN_ANSI) { last_3270 = IN_3270; last_nvt = IN_ANSI; set_inactive(); } } /* * Decode a key. * Accepts a hint as to which form was used to specify it, if it came from a * keymap definition. */ const char * decode_key(int k, ucs4_t ucs4, int hint, char *buf) { const char *n; int len; char mb[16]; char *s = buf; if (k) { /* Curses key. */ if ((n = lookup_cname(k)) != CN) (void) sprintf(buf, "%s", n); else (void) sprintf(buf, "[unknown curses key 0x%x]", k); return buf; } if (hint & KM_ALT) s += sprintf(s, "Alt"); if (ucs4 < ' ') { /* Control key. */ (void) sprintf(s, "Ctrl%c", (int)(ucs4 + '@') & 0xff); return buf; } /* Special-case ':' and ' ' because of the keymap syntax. */ if (ucs4 == ':') { strcpy(s, "colon"); return buf; } if (ucs4 == ' ') { strcpy(s, "space"); return buf; } /* Convert from Unicode to local multi-byte. */ len = unicode_to_multibyte(ucs4, mb, sizeof(mb)); if (len > 0) sprintf(s, "%s", mb); else sprintf(s, "U+%04x", k); return buf; } /* Dump the current keymap. */ void keymap_dump(void) { struct keymap *k; for (k = master_keymap; k != NULL; k = k->next) { if (k->successor != NULL) action_output("[%s:%d] (replaced by %s:%d)", k->file, k->line, k->successor->file, k->successor->line); else if (!IS_INACTIVE(k)) { int i; char buf[1024]; char *s = buf; char dbuf[128]; char *t = safe_string(k->action); for (i = 0; i < k->ncodes; i++) { s += sprintf(s, " %s", decode_key(k->codes[i].key, k->codes[i].ucs4, (k->hints[i] & KM_HINTS) | KM_KEYMAP | k->codes[i].modifiers, dbuf)); } action_output("[%s:%d]%s: %s", k->file, k->line, buf, t); Free(t); } } } ibm-3270-3.3.10ga4/c3270/unicode.c0000644000175000017500000025016111254565704015524 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * unicode.c * A Windows console-based 3270 Terminal Emulator * EBCDIC/Unicode translation functions */ #include "globals.h" #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #include "3270ds.h" #if !defined(PR3287) /*[*/ #include "appres.h" #endif /*]*/ #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" #if !defined(PR3287) /*[*/ #include "utilc.h" #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(USE_ICONV) /*[*/ iconv_t i_u2mb = (iconv_t)-1; iconv_t i_mb2u = (iconv_t)-1; #if !defined(_LIBICONV_VERSION) || _LIBICONV_VERSION < 0x0108 /*[*/ typedef char *ici_t; /* old iconv */ #else /*][*/ typedef const char *ici_t; /* new iconv */ #endif /*]*/ #endif /*]*/ #define DEFAULT_CSNAME "us" #if defined(_WIN32) /*[*/ # if defined(WS3270) /*[*/ # define LOCAL_CODEPAGE appres.local_cp # else /*[*/ # define LOCAL_CODEPAGE CP_ACP # endif /*]*/ #endif /*]*/ /* * EBCDIC-to-Unicode translation tables. * Each table maps EBCDIC codes X'41' through X'FE' to UCS-2. * Other codes are mapped programmatically. */ #define UT_SIZE 190 #define UT_OFFSET 0x41 typedef struct { char *name; unsigned short code[UT_SIZE]; const char *host_codepage; const char *cgcsgid; const char *display_charset; } uni_t; static uni_t uni[] = { { "cp037", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp273", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "273", "273", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp275", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00c9, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x00c7, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e7, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e3, 0x003a, 0x00d5, 0x00c3, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f5, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e9, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "275", "275", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp277", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "277", "277", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp278", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "278", "278", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp280", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "280", "280", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp284", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "284", "284", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp285", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "285", "285", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp297", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "297", "297", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp424", { 0x5d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x05ea, 0x0000, 0x0000, 0x00a0, 0x0000, 0x0000, 0x0000, 0x21d4, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x00b8, 0x0000, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000 }, "424", "0x03ad01a8", "3270cg-8,iso10646-1,iso8859-8" }, { "cp500", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "500", "500", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp870", { 0x00a0, 0x00e2, 0x00e4, 0x0163, 0x00e1, 0x0103, 0x010d, 0x00e7, 0x0107, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x0119, 0x00eb, 0x016f, 0x00ed, 0x00ee, 0x013e, 0x013a, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x02dd, 0x00c1, 0x0102, 0x010c, 0x00c7, 0x0106, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x02c7, 0x00c9, 0x0118, 0x00cb, 0x016e, 0x00cd, 0x00ce, 0x013d, 0x0139, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x015b, 0x0148, 0x0111, 0x00fd, 0x0159, 0x015f, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00b8, 0x02db, 0x00a4, 0x0105, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x015a, 0x0147, 0x0110, 0x00dd, 0x0158, 0x015e, 0x00b7, 0x0104, 0x017c, 0x0162, 0x017b, 0x00a7, 0x017e, 0x017a, 0x017d, 0x0179, 0x0141, 0x0143, 0x0160, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x0155, 0x00f3, 0x0151, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x011a, 0x0171, 0x00fc, 0x0165, 0x00fa, 0x011b, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x010f, 0x00d4, 0x00d6, 0x0154, 0x00d3, 0x0150, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x010e, 0x0170, 0x00dc, 0x0164, 0x00da }, "870", "0x03bf0366", "iso10646-1,iso8859-2" }, { "cp871", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00fe, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00de, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "871", "871", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp875", { 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a8, 0x0386, 0x0388, 0x0389, 0x2207, 0x038a, 0x038c, 0x038e, 0x038f, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x00b4, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x00a3, 0x03ac, 0x03ad, 0x03ae, 0x0390, 0x03af, 0x03cc, 0x03cd, 0x03b0, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x03c9, 0x03ca, 0x03cb, 0x2018, 0x2015, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b1, 0x00bd, 0x0000, 0x00b7, 0x2019, 0x00a6, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00a7, 0x0000, 0x0000, 0x00ab, 0x00ac, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00a9, 0x0000, 0x0000, 0x00bb }, "875", "0x0464036b", "3270cg-7,iso10646-1,iso8859-7" }, { "cp880", { 0x0000, 0x0452, 0x0453, 0x0451, 0x0000, 0x0455, 0x0456, 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x0000, 0x045f, 0x042a, 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0403, 0x0401, 0x0000, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x040a, 0x040b, 0x040c, 0x0000, 0x0000, 0x040f, 0x044e, 0x0430, 0x0431, 0x0000, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0000, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0000, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x0000, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x005c, 0x00a4, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427 }, "880", "0x03bf0370", "iso10646-1,koi8-r" }, #if defined(X3270_DBCS) /*[*/ { "cp930", { /* 0x40 */ 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67, /* 0x48 */ 0xff68, 0xff69, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 0x50 */ 0x0026, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, 0x0000, /* 0x58 */ 0xff70, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, /* 0x60 */ 0x002d, 0x002f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, /* 0x68 */ 0x0067, 0x0068, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 0x70 */ 0x005b, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, /* 0x78 */ 0x0070, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 0x80 */ 0x005d, 0xff67, 0xff68, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 0x88 */ 0xff78, 0xff79, 0xff7a, 0x0071, 0xff7b, 0xff7c, 0xff7d, 0xff7e, /* 0x90 */ 0xff7f, 0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, /* 0x98 */ 0xff87, 0xff88, 0xff89, 0x0072, 0x0000, 0xff8a, 0xff8b, 0xff8c, /* 0xa0 */ 0x007e, 0x00af, 0xff8d, 0xff8e, 0xff8f, 0xff90, 0xff91, 0xff92, /* 0xa8 */ 0xff93, 0xff94, 0xff95, 0x0073, 0xff96, 0xff97, 0xff98, 0xff99, /* 0xb0 */ 0x005e, 0x00a2, 0x005c, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* 0xb8 */ 0x0079, 0x007a, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f, /* 0xc0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0xc8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xd0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* 0xd8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xe0 */ 0x0024, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* 0xe8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xf0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0xf8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } , "930", "0x04940122" /* 1172, 0290 */, "iso10646-1,jisx0201.1976-0" }, { "cp935", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "935", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp937", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "937", "0x04970025" /* 1175, 037 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp939", { /* 40 */ 0x0000, 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, /* 48 */ 0xff67, 0xff68, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 50 */ 0x0026, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, /* 58 */ 0xff70, 0xff71, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, /* 60 */ 0x002d, 0x002f, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 68 */ 0xff78, 0xff79, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 70 */ 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, 0xff80, 0xff81, /* 78 */ 0xff82, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 80 */ 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 88 */ 0x0068, 0x0069, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, 0xff88, /* 90 */ 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, /* 98 */ 0x0071, 0x0072, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, /* a0 */ 0x00af, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* a8 */ 0x0079, 0x007a, 0xff8f, 0xff90, 0xff91, 0x005b, 0xff92, 0xff93, /* b0 */ 0x005e, 0x00a3, 0x00a5, 0xff94, 0xff95, 0xff96, 0xff97, 0xff98, /* b8 */ 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0x005d, 0xff9e, 0xff9f, /* c0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* c8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* d8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x005c, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* e8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* f8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "939", "0x04940403" /* 1172, 1027 */, "iso10646-1,jisx0201.1976-0" }, #endif /*]*/ { "cp1026", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x007d, 0x0060, 0x00a6, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x02db, 0x00c6, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x005d, 0x0024, 0x0040, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x2014, 0x00a8, 0x00b4, 0x00d7, 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0x00ff, 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da }, "1026", "0x04800402", "iso10646-1,iso8859-9" }, { "cp1047", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x00ac, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1047", "1047", "iso10646-1,iso8859-1" }, { "cp1140", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1140", "0x02b70474" /* 695, 1140 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1141", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "1141", "0x02b70475" /* 695, 1141 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1142", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1142", "0x02b70476" /* 695, 1142 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1143", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1143", "0x02b70477" /* 695, 1143 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1144", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1144", "0x02b70478" /* 695, 1144 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1145", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1145", "0x02b70478" /* 695, 1145 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1146", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1146", "0x02b7047a" /* 695, 1146 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1147", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1147", "0x02b7047a" /* 695, 1147 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1148", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1148", "0x02b7047c" /* 695, 1148 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1149", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00de, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x20ac, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00fe, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1149", "0x02b7047d" /* 695, 1149 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1160", { 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, 0x005b, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0e48, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x005d, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x005e, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0e3f, 0x0e4e, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0e4f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, 0x0e5a, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e5b, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, 0x0e58, 0x0e59, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0e49, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0e3a, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x005c, 0x0e4a, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4b, 0x20ac }, "1160", "0x05730488" /* 1395, 1160 */, "iso10646-1,iso8859-11" }, #if defined(X3270_DBCS) /*[*/ { "cp1388", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "1388", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, #endif /*]*/ { "apl", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,iso10646-1" }, { "bracket", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37+", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { NULL } }; /* Code page aliases. */ typedef struct { char *alias; char *canon; } cpalias_t; cpalias_t cpaliases[] = { { "belgian", "cp500" }, { "belgian-euro", "cp1148" }, { "brazilian", "cp275" }, #if defined(X3270_DBCS) /*[*/ { "chinese-gb18030","cp1388" }, { "cp1027", "cp939" }, /* historical error */ { "cp290", "cp930" }, /* historical error */ #endif /*]*/ { "cp37", "cp037" }, #if defined(X3270_DBCS) /*[*/ { "cp836", "cp935" }, /* historical error */ #endif /*]*/ { "finnish", "cp278" }, { "finnish-euro", "cp1143" }, { "french", "cp297" }, { "french-euro", "cp1147" }, { "german", "cp273" }, { "german-euro", "cp1141" }, { "greek", "cp875" }, { "hebrew", "cp424" }, { "icelandic", "cp871" }, { "icelandic-euro", "cp1149" }, { "italian", "cp280" }, { "italian-euro", "cp1144" }, #if defined(X3270_DBCS) /*[*/ { "japanese-1027", "cp939" }, /* historical error */ { "japanese-290", "cp930" }, /* historical error */ { "japanese-kana", "cp930" }, { "japanese-latin", "cp939" }, #endif /*]*/ { "norwegian", "cp277" }, { "norwegian-euro", "cp1142" }, { "oldibm", "bracket" }, { "bracket437", "bracket" }, { "polish", "cp870" }, { "russian", "cp880" }, #if defined(X3270_DBCS) /*[*/ { "simplified-chinese","cp935" }, #endif /*]*/ { "slovenian", "cp870" }, { "spanish", "cp284" }, { "spanish-euro", "cp1145" }, { "thai", "cp1160" }, #if defined(X3270_DBCS) /*[*/ { "traditional-chinese", "cp937" }, #endif /*]*/ { "turkish", "cp1026" }, { "uk", "cp285" }, { "uk-euro", "cp1146" }, { DEFAULT_CSNAME, "cp037" }, { "us-euro", "cp1140" }, { "us-intl", "cp037" }, { NULL, NULL } }; static uni_t *cur_uni = NULL; void charset_list(void) { int i; int j; char *sep = ""; printf("SBCS host code pages (with aliases):\n"); for (i = 0; uni[i].name != NULL; i++) { Boolean any = False; char *asep = " ("; printf("%s%s", sep, uni[i].name); for (j = 0; cpaliases[j].alias != NULL; j++) { if (!strcmp(cpaliases[j].canon, uni[i].name)) { printf("%s%s", asep, cpaliases[j].alias); asep = ", "; any = True; } } if (any) printf(")"); sep = ", "; } printf("\n"); #if defined(X3270_DBCS) /*[*/ charset_list_dbcs(); #endif /*]*/ } /* * Translate a single EBCDIC character in an arbitrary character set to * Unicode. Note that CS_DBCS is never used -- use CS_BASE and pass an * EBCDIC character > 0xff. * * Returns 0 for no translation. */ ucs4_t ebcdic_to_unicode(ebc_t c, unsigned char cs, unsigned flags) { int iuc; ucs4_t uc; #if 0 /* I'm not sure why this was put in, but it breaks display of DUP and FM. Hopefully I'll figure out why it was put in in the first place and I can put it back under the right conditions. */ /* Control characters become blanks. */ if (c <= 0x41 || c == 0xff) uc = 0; #endif /* * We do not pay attention to BLANK_UNDEF -- we always return 0 * for undefined characters. */ flags &= ~EUO_BLANK_UNDEF; /* Dispatch on the character set. */ if ((cs & CS_GE) || ((cs & CS_MASK) == CS_APL)) { iuc = apl_to_unicode(c, flags); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs == CS_LINEDRAW) { iuc = linedraw_to_unicode(c /* XXX: flags */); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs != CS_BASE) uc = 0; else uc = ebcdic_base_to_unicode(c, flags); return uc; } /* * Translate a single EBCDIC character in the base or DBCS character sets to * Unicode. * * EBCDIC 'FM' and 'DUP' characters are treated specially. If EUO_UPRIV * is set, they are returned as U+f8fe and U+feff (private-use) respectively * so they can be displayed with overscores in the special 3270 font; * otherwise they are returned as '*' and ';'. * EBCDIC 'EO' and 'SUB' are special-cased to U+25cf and U+25a0, respectively. * * If EUO_BLANK_UNDEF is set, other undisplayable characters are returned as * spaces; otherwise they are returned as 0. */ ucs4_t ebcdic_base_to_unicode(ebc_t c, unsigned flags) { #if defined(X3270_DBCS) /*[*/ if (c & 0xff00) return ebcdic_dbcs_to_unicode(c, flags); #endif /*]*/ if (c == 0x40) return 0x0020; if (c >= UT_OFFSET && c < 0xff) { ebc_t uc = cur_uni->code[c - UT_OFFSET]; return uc? uc: ((flags & EUO_BLANK_UNDEF)? ' ': 0); } else switch (c) { case EBC_fm: return (flags & EUO_UPRIV)? UPRIV_fm: ';'; case EBC_dup: return (flags & EUO_UPRIV)? UPRIV_dup: '*'; case EBC_eo: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_eo: 0x25cf; /* solid circle */ case EBC_sub: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_sub: 0x25a0; /* solid block */ default: if (flags & EUO_BLANK_UNDEF) return ' '; else return 0; } } /* * Map a UCS-4 character to an EBCDIC character. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic(ucs4_t u) { int i; #if defined(X3270_DBCS) /*[*/ ebc_t d; #endif /*]*/ if (!u) return 0; if (u == 0x0020) return 0x40; for (i = 0; i < UT_SIZE; i++) { if (cur_uni->code[i] == u) { return UT_OFFSET + i; } } #if defined(X3270_DBCS) /*[*/ /* See if it's DBCS. */ d = unicode_to_ebcdic_dbcs(u); if (d) return d; #endif /*]*/ return 0; } /* * Map a UCS-4 character to an EBCDIC character, possibly including APL (GE) * characters. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic_ge(ucs4_t u, Boolean *ge) { ebc_t e; *ge = False; e = unicode_to_ebcdic(u); if (e) return e; /* Handle GEs. Yes, this is slow, but I'm lazy. */ for (e = 0x70; e <= 0xfe; e++) { if ((ucs4_t)apl_to_unicode(e, EUO_NONE) == u) { *ge = True; return e; } } return 0; } /* * Set the SBCS EBCDIC-to-Unicode translation table. * Returns 0 for success, -1 for failure. */ int set_uni(const char *csname, const char **host_codepage, const char **cgcsgid, const char **display_charsets) { int i; const char *realname; int rc = -1; Boolean cannot_fail = False; /* * If the csname is NULL, this is a fallback to the default * and the iconv lookup cannot fail. */ if (csname == NULL) { csname = DEFAULT_CSNAME; cannot_fail = True; } realname = csname; /* Search for an alias. */ for (i = 0; cpaliases[i].alias != NULL; i++) { if (!strcasecmp(csname, cpaliases[i].alias)) { realname = cpaliases[i].canon; break; } } /* Search for a match. */ for (i = 0; uni[i].name != NULL; i++) { if (!strcasecmp(realname, uni[i].name)) { cur_uni = &uni[i]; *host_codepage = uni[i].host_codepage; *cgcsgid = uni[i].cgcsgid; *display_charsets = uni[i].display_charset; rc = 0; break; } } if (cannot_fail && rc == -1) Error("Cannot find default charset definition"); #if defined(USE_ICONV) /*[*/ /* * wchar_t's are not Unicode, so getting to/from Unicode is only half * the battle. We need to use iconv() to get between Unicode to the * local multi-byte representation. We'll explicitly use UTF-8, which * appears to be the most broadly-supported translation. */ if (rc == 0) { if (!is_utf8) { /* * If iconv doesn't support the locale's codeset, then * this box is hosed. */ i_u2mb = iconv_open(locale_codeset, "UTF-8"); if (i_u2mb == (iconv_t)(-1)) rc = -1; else { i_mb2u = iconv_open("UTF-8", locale_codeset); if (i_mb2u == (iconv_t)(-1)) { iconv_close(i_u2mb); rc = -1; } } } if (rc == -1 && cannot_fail) { /* Try again with plain-old ASCII. */ #if defined(PR3287) /*[*/ Warning("Cannot find iconv translation from locale " "codeset to UTF-8, using ASCII"); #else /*][*/ xs_warning("Cannot find iconv translation from locale " "codeset '%s' to UTF-8, using ASCII", locale_codeset); #endif /*]*/ i_u2mb = iconv_open("ASCII", "UTF-8"); if (i_u2mb == (iconv_t)-1) Error("No iconv UTF-8 to ASCII translation"); i_mb2u = iconv_open("UTF-8", "ASCII"); if (i_mb2u == (iconv_t)-1) Error("No iconv ASCII to UTF-8 translation"); rc = 0; } } #endif /*]*/ return rc; } /* * Translate an x3270 font line-drawing character (the first two rows of a * standard X11 fixed-width font) to Unicode. * * Returns -1 if there is no translation. */ int linedraw_to_unicode(ebc_t c) { static ebc_t ld2uc[32] = { /* 00 */ 0x2588, 0x25c6, 0x2592, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, /* 08 */ 0x00b1, 0x0000, 0x0000, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, /* 10 */ 0x002d, 0x002d, 0x2500, 0x002d, 0x005f, 0x251c, 0x2524, 0x2534, /* 18 */ 0x252c, 0x2502, 0x2264, 0x2265, 0x03c0, 0x2260, 0x00a3, 0x2022 }; if (c < 32 && ld2uc[c] != 0x0000) return ld2uc[c]; else return -1; } int apl_to_unicode(ebc_t c, unsigned flags) { static ebc_t apl2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x25c6, 0x22c0, 0x00a8, 0x223b, 0x2378, 0x2377, 0x22a2, 0x22a3, /* 78 */ 0x2228, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x23b8, 0x23b9, 0x2502, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x2191, 0x2193, 0x2264, 0x2308, 0x230a, 0x2192, /* 90 */ 0x2395, 0x258c, 0x2590, 0x2580, 0x2584, 0x25a0, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x2283, 0x2282, 0x00a4, 0x25cb, 0x00b1, 0x2190, /* a0 */ 0x00af, 0x00b0, 0x2500, 0x2022, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x22c2, 0x22c3, 0x22a5, 0x005b, 0x2265, 0x2218, /* b0 */ 0x03b1, 0x03b5, 0x03b9, 0x03c1, 0x03c9, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x2207, 0x2206, 0x22a4, 0x005d, 0x2260, 0x2502, /* c0 */ 0x007b, 0x207c, 0x002b, 0x220e, 0x2514, 0x250c, 0x251c, 0x2534, /* c8 */ 0x00a7, 0x0000, 0x2372, 0x2371, 0x2337, 0x233d, 0x2342, 0x2349, /* d0 */ 0x007d, 0x207e, 0x002d, 0x253c, 0x2518, 0x2510, 0x2524, 0x252c, /* d8 */ 0x00b6, 0x0000, 0x2336, 0x0021, 0x2352, 0x234b, 0x235e, 0x235d, /* e0 */ 0x2261, 0x2081, 0x0282, 0x0283, 0x2364, 0x2365, 0x236a, 0x20ac, /* e8 */ 0x0000, 0x0000, 0x233f, 0x2240, 0x2235, 0x2296, 0x2339, 0x2355, /* f0 */ 0x2070, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x2075, 0x2076, 0x2077, /* f8 */ 0x2078, 0x2079, 0x0000, 0x236b, 0x2359, 0x235f, 0x234e, 0x0000 }; #if defined(C3270) /*[*/ static ebc_t apla2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x0000, 0x0000, 0x00a8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x0000, 0x0000, 0x007c, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 90 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x00a4, 0x0000, 0x00b1, 0x0000, /* a0 */ 0x00af, 0x00b0, 0x002d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x0000, 0x0000, /* b0 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x0000, 0x0000, 0x0000, 0x005d, 0x0000, 0x007c, /* c0 */ 0x007b, 0x0000, 0x002b, 0x0000, 0x002b, 0x002b, 0x002b, 0x002b, /* c8 */ 0x00a7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x0000, 0x002d, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, /* d8 */ 0x00b6, 0x0000, 0x0000, 0x0021, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x0000, 0x0000, 0x0282, 0x0283, 0x0000, 0x0000, 0x0000, 0x0000, /* e8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0000, 0x00b9, 0x00b2, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000, /* f8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; #endif /*]*/ #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) { if (c < 256 && apla2uc[c] != 0x0000) { #if defined(_WIN32) /*[*/ /* Windows DBCS fonts make U+0080..U+00ff wide, too. */ if (apla2uc[c] > 0x7f) return -1; #endif /*]*/ return apla2uc[c]; } else return -1; } #endif /*]*/ if (c < 256 && apl2uc[c] != 0x0000) return apl2uc[c]; else return -1; } /* * Translate an EBCDIC character to the current locale's multi-byte * representation. * * Returns the number of bytes in the multi-byte representation, including * the terminating NULL. mb[] should be big enough to include the NULL * in the result. * * Also returns in 'ucp' the UCS-4 Unicode value of the EBCDIC character. * * Note that 'ebc' is an ebc_t (uint16_t), not an unsigned char. This is * so that DBCS values can be passed in as 16 bits (with the first byte * in the high-order bits). There is no ambiguity because all valid EBCDIC * DBCS characters have a nonzero first byte. * * Returns 0 if EUO_BLANK_UNDEF is clear and there is no printable EBCDIC * translation for 'ebc'. * * Returns '?' in mb[] if there is no local multi-byte representation of * the EBCDIC character. */ int ebcdic_to_multibyte_x(ebc_t ebc, unsigned char cs, char mb[], int mb_len, unsigned flags, ucs4_t *ucp) { ucs4_t uc; #if defined(_WIN32) /*[*/ int nc; BOOL udc; wchar_t wuc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; wchar_t wuc; #else /*][*/ char u8b[7]; size_t nu8; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; #endif /*]*/ /* Translate from EBCDIC to Unicode. */ uc = ebcdic_to_unicode(ebc, cs, flags); if (ucp != NULL) *ucp = uc; if (uc == 0) { if (flags & EUO_BLANK_UNDEF) { mb[0] = ' '; mb[1] = '\0'; return 2; } else { return 0; } } /* Translate from Unicode to local multibyte. */ #if defined(_WIN32) /*[*/ /* * wchar_t's are Unicode. */ wuc = uc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc != 0) { mb[nc++] = '\0'; return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #elif defined(UNICODE_WCHAR) /*][*/ /* * wchar_t's are Unicode. * If 'is_utf8' is set, use unicode_to_utf8(). This allows us to set * 'is_utf8' directly, ignoring the locale, for Tcl. * Otherwise, use wctomb(). */ if (is_utf8) { nc = unicode_to_utf8(uc, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } wuc = uc; nc = wctomb(mb, uc); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ /* * Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(uc, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc < 0 || inbytesleft == nu8) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc < 0) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } /* Commonest version of ebcdic_to_multibyte_x: * cs is CS_BASE * EUO_BLANK_UNDEF is set * ucp is ignored */ int ebcdic_to_multibyte(ebc_t ebc, char mb[], int mb_len) { return ebcdic_to_multibyte_x(ebc, CS_BASE, mb, mb_len, EUO_BLANK_UNDEF, NULL); } /* * Convert an EBCDIC string to a multibyte string. * Makes lots of assumptions: standard character set, EUO_BLANK_UNDEF. * Returns the length of the multibyte string. */ int ebcdic_to_multibyte_string(unsigned char *ebc, size_t ebc_len, char mb[], size_t mb_len) { int nmb = 0; while (ebc_len && mb_len) { int xlen; xlen = ebcdic_to_multibyte(*ebc, mb, mb_len); if (xlen) { mb += xlen - 1; mb_len -= (xlen - 1); nmb += xlen - 1; } ebc++; ebc_len--; } return nmb; } /* * Return the maximum buffer length needed to translate 'len' EBCDIC characters * in the current locale. */ int mb_max_len(int len) { #if defined(_WIN32) /*[*/ /* * On Windows, it's 1:1 (we don't do DBCS, and we don't support locales * like UTF-8). */ return len + 1; #elif defined(UNICODE_WCHAR) /*][*/ /* Allocate enough space for shift-state transitions. */ return (MB_CUR_MAX * (len * 2)) + 1; #else /*]*/ if (is_utf8) return (len * 6) + 1; else /* * We don't actually know. Guess that MB_CUR_MAX is 16, and compute * as for UNICODE_WCHAR. */ return (16 * (len * 2)) + 1; #endif /*]*/ } /* * Translate a multi-byte character in the current locale to UCS-4. * * Returns a UCS-4 character or 0, indicating an error in translation. * Also returns the number of characters consumed. */ ucs4_t multibyte_to_unicode(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { size_t nw; ucs4_t ucs4; #if defined(_WIN32) /*[*/ wchar_t wc[3]; int i; /* Use MultiByteToWideChar() to get from the ANSI codepage to UTF-16. */ for (i = 1; i <= mb_len; i++) { nw = MultiByteToWideChar(LOCAL_CODEPAGE, MB_ERR_INVALID_CHARS, mb, i, wc, 3); if (nw != 0) break; } if (i > mb_len) { *errorp = ME_INVALID; return 0; } *consumedp = i; ucs4 = wc[0]; #elif defined(UNICODE_WCHAR) /*][*/ wchar_t wc[3]; /* wchar_t's are Unicode. */ if (is_utf8) { int nc; /* * Use utf8_to_unicode() instead of mbtowc(), so we can set is_utf8 * directly and ignore the locale for Tcl. */ nc = utf8_to_unicode(mb, mb_len, &ucs4); if (nc > 0) { *errorp = ME_NONE; *consumedp = nc; return ucs4; } else if (nc == 0) { *errorp = ME_SHORT; return 0; } else { *errorp = ME_INVALID; return 0; } } /* mbtowc() will translate to Unicode. */ nw = mbtowc(wc, mb, mb_len); if (nw == (size_t)-1) { if (errno == EILSEQ) *errorp = ME_INVALID; else *errorp = ME_SHORT; nw = mbtowc(NULL, NULL, 0); return 0; } /* * Reset the shift state. * XXX: Doing this will ruin the shift state if this function is called * repeatedly to process a string. There should probably be a parameter * passed in to control whether or not to reset the shift state, or * perhaps there should be a function to translate a string. */ *consumedp = nw; nw = mbtowc(NULL, NULL, 0); ucs4 = wc[0]; #else /*][*/ /* wchar_t's have unknown encoding. */ if (!is_utf8) { ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; char utf8buf[16]; size_t ibl; /* Translate from local MB to UTF-8 using iconv(). */ for (ibl = 1; ibl <= mb_len; ibl++) { inbuf = (ici_t)mb; outbuf = utf8buf; inbytesleft = ibl; outbytesleft = sizeof(utf8buf); nw = iconv(i_mb2u, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nw < 0) { if (errno == EILSEQ) { *errorp = ME_INVALID; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } else { if (ibl == mb_len) { *errorp = ME_SHORT; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } } } else break; } *consumedp = ibl - inbytesleft; /* Translate from UTF-8 to UCS-4. */ (void) utf8_to_unicode(utf8buf, sizeof(utf8buf) - outbytesleft, &ucs4); } else { /* Translate from UTF-8 to UCS-4. */ nw = utf8_to_unicode(mb, mb_len, &ucs4); if (nw < 0) { *errorp = ME_INVALID; return 0; } if (nw == 0) { *errorp = ME_SHORT; return 0; } *consumedp = nw; } #endif /*]*/ /* Translate from UCS4 to EBCDIC. */ return ucs4; } /* * Convert a multi-byte string to a UCS-4 string. * Does not NULL-terminate the result. * Returns the number of UCS-4 characters stored. */ int multibyte_to_unicode_string(char *mb, size_t mb_len, ucs4_t *ucs4, size_t u_len) { int consumed; enum me_fail error; int nr = 0; error = ME_NONE; while (u_len && mb_len && (*ucs4++ = multibyte_to_unicode(mb, mb_len, &consumed, &error)) != 0) { u_len--; mb += consumed; mb_len -= consumed; nr++; } if (error != ME_NONE) return -1; else return nr; } /* * Translate a multi-byte character in the current locale to an EBCDIC * character. * * Returns an 8-bit (SBCS) or 16-bit (DBCS) EBCDIC character, or 0, indicating * an error in translation. Also returns the number of characters consumed. */ ebc_t multibyte_to_ebcdic(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { ucs4_t ucs4; ucs4 = multibyte_to_unicode(mb, mb_len, consumedp, errorp); if (ucs4 == 0) return 0; return unicode_to_ebcdic(ucs4); } /* * Convert a local multi-byte string to an EBCDIC string. * Returns the length of the resulting EBCDIC string, or -1 if there is a * conversion error. */ int multibyte_to_ebcdic_string(char *mb, size_t mb_len, unsigned char *ebc, size_t ebc_len, enum me_fail *errorp) { int ne = 0; Boolean in_dbcs = False; while (mb_len > 0 && ebc_len > 0) { ebc_t e; int consumed; e = multibyte_to_ebcdic(mb, mb_len, &consumed, errorp); if (e == 0) return -1; if (e & 0xff00) { /* DBCS. */ if (!in_dbcs) { /* Make sure there's room for SO, b1, b2, SI. */ if (ebc_len < 4) return ne; *ebc++ = EBC_so; ebc_len++; ne++; in_dbcs = True; } /* Make sure there's room for b1, b2, SI. */ if (ebc_len < 3) { *ebc++ = EBC_si; ne++; return ne; } *ebc++ = (e >> 8) & 0xff; *ebc++ = e & 0xff; ebc_len -= 2; ne += 2; } else { /* SBCS. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; if (!--ebc_len) return ne; in_dbcs = False; } *ebc++ = e & 0xff; ebc_len--; ne++; } mb += consumed; mb_len -= consumed; } /* * Terminate the DBCS string, if we end inside it. * We're guaranteed to have space for the SI; we checked before adding * the last DBCS character. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; } return ne; } /* * Translate a UCS-4 character to a local multi-byte string. */ int unicode_to_multibyte(ucs4_t ucs4, char *mb, size_t mb_len) { #if defined(_WIN32) /*[*/ wchar_t wuc = ucs4; BOOL udc; int nc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc > 0) mb[nc++] = '\0'; return nc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; if (is_utf8) { nc = unicode_to_utf8(ucs4, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } nc = wctomb(mb, ucs4); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ int nu8; char u8b[16]; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; /* Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(ucs4, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } ibm-3270-3.3.10ga4/c3270/localdefs.h0000644000175000017500000000543111254565674016043 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * localdefs.h * Local definitions for c3270. * * This file contains definitions for environment-specific * facilities, such as memory allocation, I/O registration, * and timers. */ /* Identify ourselves. */ #define C3270 1 /* Conditional 80/132 mode switch support. */ #if defined(BROKEN_NEWTERM) /*[*/ #undef C3270_80_132 #else /*][*/ #define C3270_80_132 1 #endif /*]*/ /* These first definitions were cribbed from X11 -- but no X code is used. */ #define False 0 #define True 1 typedef void *XtPointer; typedef void *Widget; typedef void *XEvent; typedef char Boolean; typedef char *String; typedef unsigned int Cardinal; typedef unsigned long KeySym; #define Bool int typedef void (*XtActionProc)( Widget /* widget */, XEvent* /* event */, String* /* params */, Cardinal* /* num_params */ ); typedef struct _XtActionsRec{ String string; XtActionProc proc; } XtActionsRec; #define XtNumber(n) (sizeof(n)/sizeof((n)[0])) #define NoSymbol 0L /* These are local functions with similar semantics to X functions. */ extern void *Malloc(size_t); extern void Free(void *); extern void *Calloc(size_t, size_t); extern void *Realloc(void *, size_t); extern char *NewString(const char *); extern void Error(const char *); extern void Warning(const char *); ibm-3270-3.3.10ga4/c3270/x3270-script.man0000644000175000017500000006011211261530006016470 0ustar bastianbastian'\" t .TH X3270-SCRIPT 1 "02 October 2009" .SH "NAME" Scripting Facilities for x3270, s3270, ws3270 and c3270 .SH "SYNOPSIS" \fBx3270\fP \fB\-script\fP [ \fIx3270-options\fP ] .br \fBs3270\fP [ \fIs3270-options\fP ] .br \fBws3270\fP [ \fIws3270-options\fP ] .br \fBScript\fP ( \fIcommand\fP [ ,\fIarg\fP... ] ) .SH "DESCRIPTION" The \fBx3270\fP scripting facilities allow the interactive 3270 emulators \fBx3270\fP and \fBc3270\fP to be operated under the control of another program, and form the basis for the script-only emulators \fBs3270\fP and \fBws3270\fP. .PP There are two basic scripting methods. The first is the \fBpeer script\fP facility, invoked by the \fBx3270\fP \fB\-script\fP switch, and the default mode for \fBs3270\fP and \fBws3270\fP. This runs \fBx3270\fP, \fBs3270\fP or \fBws3270\fP as a child of another process. Typically this would be a script using \fIexpect\fP(1), \fIperl\fP(1), or the co-process facility of the Korn Shell \fIksh\fP(1). Inthis mode, the emulator process looks for commands on its standard input, and places the responses on standard output and standard error output. .PP The second method is the \fBchild script\fP facility, invoked by the \fBScript\fP action in \fBx3270\fP, \fBc3270\fP, or \fBs3270\fP. This runs a script as a child process of the emulator. The child has access to pipes connected to the emulator; the emulator look for commands on one pipe, and places the responses on the other. (The file descriptor of the pipe for commands to the emulator is passed in the environment variable X3270INPUT; the file descriptor of the pipe for responses from the emulator is passed in the environment variable X3270OUTPUT.) .PP It is possible to mix the two methods. A script can invoke another script with the \fBScript\fP action, and may also be implicitly nested when a script invokes the \fBConnect\fP action, and the \fBibm_hosts\fP file specifies a login script for that host name. .PP Commands are emulator \fIactions\fP; the syntax is the same as for the right-hand side of an Xt translation table entry (an \fBx3270\fP or \fBc3270\fP keymap). Unlike translation tables, action names are case-insensitive, can be uniquely abbreviated, and the parentheses may be omitted if there are no parameters. Any input line that begins with \fB#\fP or \fB!\fP is treaded as a comment and will be ignored. .PP Any emulator action may be specified. Several specific actions have been defined for use by scripts, and the behavior of certain other actions (and of the emulators in general) is different when an action is initiated by a script. .PP Some actions generate output; some may delay completion until the certain external events occur, such as the host unlocking the keyboard. The completion of every command is marked by a two-line message. The first line is the current status of the emulator, documented below. If the command is successful, the second line is the string "ok"; otherwise it is the string "error". .SH "STATUS FORMAT" The status message consists of 12 blank-separated fields: .TP 1 Keyboard State If the keyboard is unlocked, the letter \fBU\fP. If the keyboard is locked waiting for a response from the host, or if not connected to a host, the letter \fBL\fP. If the keyboard is locked because of an operator error (field overflow, protected field, etc.), the letter \fBE\fP. .TP 2 Screen Formatting If the screen is formatted, the letter \fBF\fP. If unformatted or in \s-1NVT\s+1 mode, the letter \fBU\fP. .TP 3 Field Protection If the field containing the cursor is protected, the letter \fBP\fP. If unprotected or unformatted, the letter \fBU\fP. .TP 4 Connection State If connected to a host, the string \fBC(\fP\fIhostname\fP\fB)\fP. Otherwise, the letter \fBN\fP. .TP 5 Emulator Mode If connected in 3270 mode, the letter \fBI\fP. If connected in \s-1NVT\s+1 line mode, the letter \fBL\fP. If connected in \s-1NVT\s+1 character mode, the letter \fBC\fP. If connected in unnegotiated mode (no BIND active from the host), the letter \fBP\fP. If not connected, the letter \fBN\fP. .TP 6 Model Number (2-5) .TP 7 Number of Rows The current number of rows defined on the screen. The host can request that the emulator use a 24x80 screen, so this number may be smaller than the maximum number of rows possible with the current model. .TP 8 Number of Columns The current number of columns defined on the screen, subject to the same difference for rows, above. .TP 9 Cursor Row The current cursor row (zero-origin). .TP 10 Cursor Column The current cursor column (zero-origin). .TP 11 Window ID The X window identifier for the main \fBx3270\fP window, in hexadecimal preceded by \fB0x\fP. For \fBs3270\fP, \fBws3270\fP and \fBc3270\fP, this is zero. .TP 12 Command Execution Time The time that it took for the host to respond to the previous commnd, in seconds with milliseconds after the decimal. If the previous command did not require a host response, this is a dash. .SH "DIFFERENCES" When an action is initiated by a script, the emulators behave in several different ways: .PP If an error occurs in processing an action, the usual pop-up window does not appear. Instead, the text is written to standard error output. .PP If end-of-file is detected on standard input, the emulator exits. (A script can exit without killing the emulator by using the \fBCloseScript\fP action, below.) Note that this applies to peer scripts only; end-of-file on the pipe connected to a child script simply causes the pipes to be closed and the \fBScript\fP action to complete. .PP The \fBQuit\fP action always causes the emulator to exit. (When called from the keyboard, it will exit only if not connected to a host.) .PP Normally, the AID actions (\fBClear\fP, \fBEnter\fP, \fBPF\fP, and \fBPA\fP) will not complete until the host unlocks the keyboard. If the parameter to a \fBString\fP action includes a code for one these actions, it will also wait for the keyboard to unlock before proceeding. .PP The \fBAidWait\fP toggle controls with behavior. When this toggle is set (the default), actions block as described above. When the toggle is clear, AID actions complete immediately. The \fBWait(Output)\fP action can then be used to delay a script until the host changes something on the screen, and the \fBWait(Unlock)\fP action can be used to delay a script until the host unlocks the keyboard, regardless of the state of the \fBAidWait\fP toggle. .PP Note that the \fBScript\fP action does not complete until end-of-file is detected on the pipe or the \fBCloseScript\fP action is called by the child process. This behavior is not affected by the state of the \fBAidWait\fP toggle. .SH "SCRIPT-SPECIFIC ACTIONS" The following actions have been defined or modified for use with scripts. (Note that unlike the display on the status line, \fIrow\fP and \fIcol\fP coordinates used in these actions use [0,0] as their origin, not [1,1]). .TP \fBAnsiText\fP Outputs whatever data that has been output by the host in \s-1NVT\s+1 mode since the last time that \fBAnsiText\fP was called. The data is preceded by the string "data:\ ", and has had all control characters expanded into C backslash sequences. .IP This is a convenient way to capture \s-1NVT\s+1 mode output in a synchronous manner without trying to decode the screen contents. .TP \fBAscii\fP(\fIrow\fP,\fIcol\fP,\fIrows\fP,\fIcols\fP) .TP \fBAscii\fP(\fIrow\fP,\fIcol\fP,\fIlength\fP) .TP \fBAscii\fP(\fIlength\fP) .TP \fBAscii\fP Outputs an \s-1ASCII\s+1 text representation of the screen contents. Each line is preceded by the string "data:\ ", and there are no control characters. .IP If four parameters are given, a rectangular region of the screen is output. .IP If three parameters are given, \fIlength\fP characters are output, starting at the specified row and column. .IP If only the \fIlength\fP parameter is given, that many characters are output, starting at the cursor position. .IP If no parameters are given, the entire screen is output. .IP The EBCDIC-to-ASCII translation and output character set depend on the both the emulator character set (the \fB\-charset\fP option) and the locale. UTF-8 and certain DBCS locales may result in multi-byte expansions of EBCDIC characters that translate to ASCII codes greater than 0x7f. .TP \fBAsciiField\fP Outputs an \s-1ASCII\s+1 text representation of the field containing the cursor. The text is preceded by the string "data:\ ". .TP \fBConnect\fP(\fIhostname\fP) Connects to a host. The command does not return until the emulator is successfully connected in the proper mode, or the connection fails. .TP \fBCloseScript\fP(\fIstatus\fP) Causes the emulator to stop reading commands from the script. This is useful to allow a peer script to exit, with the emulator proceeding interactively. (Without this command, the emulator would exit when it detected end-of-file on standard input.) If the script was invoked by the \fBScript\fP action, the optional \fIstatus\fP is used as the return status of \fBScript\fP; if nonzero, \fBScript\fP will complete with an error, and if this script was invoked as part of login through the \fBibm_hosts\fP file, the connection will be broken. .TP \fBContinueScript\fP(\fIparam\fP) Allows a script that is waiting in a \fBPauseScript\fP action, below, to continue. The \fIparam\fP given is output by the \fBPauseScript\fP action. .TP \fBDisconnect\fP Disconnects from the host. .TP \fBEbcdic\fP(\fIrow\fP,\fIcol\fP,\fIrows\fP,\fIcols\fP) .TP \fBEbcdic\fP(\fIrow\fP,\fIcol\fP,\fIlength\fP) .TP \fBEbcdic\fP(\fIlength\fP) .TP \fBEbcdic\fP The same function as \fBAscii\fP above, except that rather than generating \s-1ASCII\s+1 text, each character is output as a hexadecimal \s-1EBCDIC\s+1 code, preceded by \fB0x\fP. .TP \fBEbcdicField\fP The same function as \fBAsciiField\fP above, except that it generates hexadecimal \s-1EBCDIC\s+1 codes. .TP \fBInfo\fP(\fImessage\fP) In x3270, pops up an informational message. In c3270 and wc3270, writes an informational message to the OIA (the line below the display). Not defined for s3270 or tcl3270. .TP \fBExpect\fP(\fItext\fP[,\fItimeout\fP]) Pauses the script until the specified \fItext\fP appears in the data stream from the host, or the specified \fItimeout\fP (in seconds) expires. If no \fItimeout\fP is specified, the default is 30 seconds. \fIText\fP can contain standard C-language escape (backslash) sequences. No wild-card characters or pattern anchor characters are understood. \fBExpect\fP is valid only in \s-1NVT\s+1 mode. .TP \fBMoveCursor\fP(\fIrow\fP,\fIcol\fP) Moves the cursor to the specified coordinates. .TP \fBPauseScript\fP Stops a script until the \fBContinueScript\fP action, above, is executed. This allows a script to wait for user input and continue. Outputs the single parameter to \fBContinueScript\fP. .TP \fBPrintText\fP([\fBcommand\fP,]\fIfilter\fP)) Pipes an ASCII representation of the current screen image through the named \fIfilter\fP, e.g., \fBlpr\fP. .TP \fBPrintText\fP([\fBhtml\fP,],\fBfile\fP,\fIfilename\fP)) Saves the current screen contents in a file. With the \fBhtml\fP option, saves it as HTML, otherwise saves it as plain ASCII. .TP \fBPrintText\fP(\fBhtml,string\fP) Returns the current screen contents as HTML. .TP \fBReadBuffer\fP(\fBAscii\fP) Dumps the contents of the screen buffer, one line at a time. Positions inside data fields are generally output as 2-digit hexadecimal codes in the current display character set. If the current locale specifies UTF-8 (or certain DBCS character sets), some positions may be output as multi-byte strings (4-, 6- or 8-digit codes). DBCS characters take two positions in the screen buffer; the first location is output as a multi-byte string in the current locale codeset, and the second location is output as a dash. Start-of-field characters (each of which takes up a display position) are output as \fBSF(aa=nn[,...])\fP, where \fIaa\fP is a field attribute type and \fInn\fP is its value. .PP .TS center; l l . T{ .na .nh Attribute T} T{ .na .nh Values T} _ T{ .na .nh c0 basic 3270 T} T{ .na .nh 20 protected T} T{ .na .nh T} T{ .na .nh 10 numeric T} T{ .na .nh T} T{ .na .nh 04 detectable T} T{ .na .nh T} T{ .na .nh 08 intensified T} T{ .na .nh T} T{ .na .nh 0c non-display T} T{ .na .nh T} T{ .na .nh 01 modified T} T{ .na .nh 41 highlighting T} T{ .na .nh f1 blink T} T{ .na .nh T} T{ .na .nh f2 reverse T} T{ .na .nh T} T{ .na .nh f4 underscore T} T{ .na .nh T} T{ .na .nh f8 intensify T} T{ .na .nh 42 foreground T} T{ .na .nh f0 neutral black T} T{ .na .nh T} T{ .na .nh f1 blue T} T{ .na .nh T} T{ .na .nh f2 red T} T{ .na .nh T} T{ .na .nh f3 pink T} T{ .na .nh T} T{ .na .nh f4 green T} T{ .na .nh T} T{ .na .nh f5 turquoise T} T{ .na .nh T} T{ .na .nh f6 yellow T} T{ .na .nh T} T{ .na .nh f7 neutral white T} T{ .na .nh T} T{ .na .nh f8 black T} T{ .na .nh T} T{ .na .nh f9 deep blue T} T{ .na .nh T} T{ .na .nh fa orange T} T{ .na .nh T} T{ .na .nh fb purple T} T{ .na .nh T} T{ .na .nh fc pale green T} T{ .na .nh T} T{ .na .nh fd pale turquoise T} T{ .na .nh T} T{ .na .nh fe grey T} T{ .na .nh T} T{ .na .nh ff white T} T{ .na .nh 43 character set T} T{ .na .nh f0 default T} T{ .na .nh T} T{ .na .nh f1 APL T} T{ .na .nh T} T{ .na .nh f8 DBCS T} .TE .IP Extended attributes (which do not take up display positions) are output as \fBSA(aa=nn)\fP, with \fIaa\fP and \fInn\fP having the same definitions as above (though the basic 3270 attribute will never appear as an extended attribute). .IP In addition, NULL characters in the screen buffer are reported as ASCII character 00 instead of 20, even though they should be displayed as blanks. .TP \fBReadBuffer\fP(\fBEbcdic\fP) Equivalent to \fBSnap\fP(\fBAscii\fP), but with the data fields output as hexadecimal EBCDIC codes instead. Additionally, if a buffer position has the Graphic Escape attribute, it is displayed as \fBGE(\fIxx\fP)\fP. .TP \fBSnap\fP Equivalent to \fBSnap\fP(\fBSave\fP) (see below). .TP \fBSnap\fP(\fBAscii\fP,...) Performs the \fBAscii\fP action on the saved screen image. .TP \fBSnap\fP(\fBCols\fP) Returns the number of columns in the saved screen image. .TP \fBSnap\fP(\fBEbcdic\fP,...) Performs the \fBEbcdic\fP action on the saved screen image. .TP \fBSnap\fP(\fBReadBuffer\fP) Performs the \fBReadBuffer\fP action on the saved screen image. .TP \fBSnap\fP(\fBRows\fP) Returns the number of rows in the saved screen image. .TP \fBSnap\fP(\fBSave\fP) Saves a copy of the screen image and status in a temporary buffer. This copy can be queried with other \fBSnap\fP actions to allow a script to examine a consistent screen image, even when the host may be changing the image (or even the screen dimensions) dynamically. .TP \fBSnap\fP(\fBStatus\fP) Returns the status line from when the screen was last saved. .TP \fBSnap\fP(\fBWait\fP[,\fItimeout\fP],\fBOutput\fP) Pauses the script until the host sends further output, then updates the snap buffer with the new screen contents. Used when the host unlocks the keyboard (allowing the script to proceed after an \fBEnter\fP, \fBPF\fP or \fBPA\fP action), but has not finished updating the screen. This action is usually invoked in a loop that uses the \fBSnap\fP(\fBAscii\fP) or \fBSnap\fP(\fBEbcdic\fP) action to scan the screen for some pattern that indicates that the host has fully processed the last command. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBSnap\fP action. The default is to wait indefinitely. .TP \fBSource\fP(\fIfile\fP) Read and execute commands from \fIfile\fP. Any output from those commands will become the output from \fBSource\fP. If any of the commands fails, the \fBSource\fP command will \fInot\fP abort; it will continue reading commands until EOF. .TP \fBTitle\fP(\fItext\fP) Changes the x3270 window title to \fItext\fP. .TP \fBTransfer\fP(\fIkeyword\fP=\fIvalue\fP,...) Invokes IND$FILE file transfer. See \s-1FILE TRANSFER\s+1 below. .TP \fBWait\fP([\fItimeout\fP,] \fB3270Mode\fP) Used when communicating with a host that switches between \s-1NVT\s+1 mode and 3270 mode. Pauses the script or macro until the host negotiates 3270 mode, then waits for a formatted screen as above. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .IP For backwards compatibility, \fBWait(3270)\fP is equivalent to \fBWait\fP(\fB3270Mode\fP) .TP \fBWait\fP([\fItimeout\fP,] \fBDisconnect\fP) Pauses the script until the host disconnects. Often used to after sending a \fIlogoff\fP command to a \s-1VM/CMS\s+1 host, to ensure that the session is not unintentionally set to \fBdisconnected\fP state. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .TP \fBWait\fP([\fItimeout\fP,] \fBInputField\fP) A useful utility for use at the beginning of scripts and after the \fBConnect\fP action. In 3270 mode, waits until the screen is formatted, and the host has positioned the cursor on a modifiable field. In \s-1NVT\s+1 mode, waits until the host sends at least one byte of data. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .IP For backwards compatibility, \fBWait\fP is equivalent to \fBWait\fP(\fBInputField\fP). .TP \fBWait\fP([\fItimeout\fP,] \fBNVTMode\fP) Used when communicating with a host that switches between 3270 mode and \s-1NVT\s+1 mode. Pauses the script or macro until the host negotiates \s-1NVT\s+1 mode, then waits for a byte from the host as above. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .IP For backwards compatibility, \fBWait\fP(\fBansi\fP) is equivalent to \fBWait\fP(\fBNVTMode\fP). .TP \fBWait\fP([\fItimeout\fP,] \fBOutput\fP) Pauses the script until the host sends further output. Often needed when the host unlocks the keyboard (allowing the script to proceed after a \fBClear\fP, \fBEnter\fP, \fBPF\fP or \fBPA\fP action), but has not finished updating the screen. Also used in non-blocking AID mode (see \s-1DIFFERENCES\s+1 for details). This action is usually invoked in a loop that uses the \fBAscii\fP or \fBEbcdic\fP action to scan the screen for some pattern that indicates that the host has fully processed the last command. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .TP \fBWait\fP([\fItimeout\fP,] \fBUnlock\fP) Pauses the script until the host unlocks the keyboard. This is useful when operating in non-blocking AID mode (\fBtoggle AidWait clear\fP), to wait for a host command to complete. See \s-1DIFFERENCES\s+1 for details). .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .TP \fBWait\fP(\fItimeout\fP, \fBSeconds\fP) Delays the script \fItimeout\fP seconds. Unlike the other forms of \fBWait\fP, the timeout is not optional. .TP \fBWindowState\fP(\fImode\fP) If \fImode\fP is \fBIconic\fP, changes the x3270 window into an icon. If \fImode\fP is \fBNormal\fP, changes the x3270 window from an icon to a normal window. .SH "FILE TRANSFER" The \fBTransfer\fP action implements \fBIND$FILE\fP file transfer. This action requires that the \fBIND$FILE\fP program be installed on the \s-1IBM\s+1 host, and that the 3270 cursor be located in a field that will accept a \s-1TSO\s+1 or \s-1VM/CMS\s+1 command. .LP The \fBTransfer\fP action can be entered at the command prompt with no parameters, which will cause it to prompt interactively for the file names and options. It can also be invoked with parameters to define the entire transfer. .LP Because of the complexity and number of options for file transfer, the parameters to the \fBTransfer\fP action take the unique form of \fIoption\fP=\fIvalue\fP, and can appear in any order. Note that if the \fIvalue\fP contains spaces (such as a VM/CMS file name), then the entire parameter must be quoted, e.g., "HostFile=xxx foo a". The options are: .LP .TS l c l l. T{ .na .nh Option T} T{ .na .nh Required? T} T{ .na .nh Default T} T{ .na .nh Other Values T} _ T{ .na .nh Direction T} T{ .na .nh No T} T{ .na .nh receive T} T{ .na .nh send T} T{ .na .nh HostFile T} T{ .na .nh Yes T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh LocalFile T} T{ .na .nh Yes T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Host T} T{ .na .nh No T} T{ .na .nh tso T} T{ .na .nh vm T} T{ .na .nh Mode T} T{ .na .nh No T} T{ .na .nh ascii T} T{ .na .nh binary T} T{ .na .nh Cr T} T{ .na .nh No T} T{ .na .nh remove T} T{ .na .nh add, keep T} T{ .na .nh Remap T} T{ .na .nh No T} T{ .na .nh yes T} T{ .na .nh no T} T{ .na .nh Exist T} T{ .na .nh No T} T{ .na .nh keep T} T{ .na .nh replace, append T} T{ .na .nh Recfm T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh fixed, variable, undefined T} T{ .na .nh Lrecl T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Blksize T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Allocation T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh tracks, cylinders, avblock T} T{ .na .nh PrimarySpace T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh SecondarySpace T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh BufferSize T} T{ .na .nh No T} T{ .na .nh 4096 T} T{ .na .nh \ T} .TE .LP The option details are as follows. .TP \fBDirection\fP \fBsend\fP to send a file to the host, \fBreceive\fP to receive a file from the host. .TP \fBHostFile\fP The name of the file on the host. .TP \fBLocalFile\fP The name of the file on the local workstation. .TP \fBHost\fP The type of host (which dictates the form of the \fBIND$FILE\fP command): \fBtso\fP (the default) or \fBvm\fP. .TP \fBMode\fP Use \fBascii\fP (the default) for a text file, which will be translated between \s-1EBCDIC\s+1 and \s-1ASCII\s+1 as necessary. Use \fBbinary\fP for non-text files. .TP \fBCr\fP Controls how \fBNewline\fP characters are handled when transferring \fBMode=ascii\fP files. \fBremove\fP (the default) strips \fBNewline\fP characters in local files before transferring them to the host. \fBadd\fP adds \fBNewline\fP characters to each host file record before transferring it to the local workstation. \fBkeep\fP preserves \fBNewline\fP characters when transferring a local file to the host. .TP \fBRemap\fP Controls text translation for \fBMode=ascii\fP files. The value \fByes\fP (the default) causes x3270-script to remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page. The value \fBno\fP causes x3270-script to pass the text to or from the host as-is, leaving all translation to the \fBIND$FILE\fP program on the host. .TP \fBExist\fP Controls what happens when the destination file already exists. \fBkeep\fP (the default) preserves the file, causing the \fBTransfer\fP action to fail. \fBreplace\fP overwrites the destination file with the source file. \fBappend\fP appends the source file to the destination file. .TP \fBRecfm\fP Controls the record format of files created on the host. \fBfixed\fP creates a file with fixed-length records. \fBvariable\fP creates a file with variable-length records. \fBundefined\fP creates a file with undefined-length records (\s-1TSO\s+1 hosts only). The \fBLrecl\fP option controls the record length or maximum record length for \fBRecfm=fixed\fP and \fBRecfm=variable\fP files, respectively. .TP \fBLrecl\fP Specifies the record length (or maximum record length) for files created on the host. .TP \fBBlksize\fP Specifies the block size for files created on the host. (\s-1TSO\s+1 hosts only.) .TP \fBAllocation\fP Specifies the units for the \s-1TSO\s+1 host \fBPrimarySpace\fP and \fBSecondarySpace\fP options: \fBtracks\fP, \fBcylinders\fP or \fBavblock\fP. .TP \fBPrimarySpace\fP Primary allocation for a file created on a \s-1TSO\s+1 host. The units are given by the \fBAllocation\fP option. .TP \fBSecondarySpace\fP Secondary allocation for a file created on a \s-1TSO\s+1 host. The units are given by the \fBAllocation\fP option. .TP \fBBufferSize\fP Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them. .SH "SEE ALSO" expect(1) .br ksh(1) .br x3270(1) .br c3270(1) .br s3270(1) .br ws3270(1) .SH "VERSION" Version 3.3.10ga4 ibm-3270-3.3.10ga4/c3270/hostc.h0000644000175000017500000000472011254565704015221 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * hostc.h * Global declarations for host.c. */ struct host { char *name; char **parents; char *hostname; enum { PRIMARY, ALIAS, RECENT } entry_type; char *loginstring; time_t connect_time; struct host *prev, *next; }; extern struct host *hosts; extern void Connect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Disconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Reconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); /* Host connect/disconnect and state change. */ extern void hostfile_init(void); extern void host_cancel_reconnect(void); extern int host_connect(const char *n); extern void host_connected(void); extern void host_disconnect(Boolean disable); extern void host_in3270(enum cstate); extern void host_newfd(int s); extern void register_schange(int tx, void (*func)(Boolean)); extern void st_changed(int tx, Boolean mode); ibm-3270-3.3.10ga4/c3270/aplc.h0000644000175000017500000000316211254565704015017 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * aplc.h * Global declarations for apl.c. */ extern KeySym APLStringToKeysym(char *s, int *is_gep); ibm-3270-3.3.10ga4/c3270/resources.h0000644000175000017500000003537711254565704016127 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resources.h * x3270/c3270/s3270/tcl3270 resource and option names. */ /* Resources. */ #define ResAcs "acs" #define ResActiveIcon "activeIcon" #define ResAdVersion "adVersion" #define ResAidWait "aidWait" #define ResAllBold "allBold" #define ResAllowResize "allowResize" #define ResAltCursor "altCursor" #define ResAltScreen "altScreen" #define ResAplMode "aplMode" #define ResAsciiBoxDraw "asciiBoxDraw" #define ResAssocCommand "printer.assocCommandLine" #define ResAutoShortcut "autoShortcut" #define ResBaselevelTranslations "baselevelTranslations" #define ResBellVolume "bellVolume" #define ResBlankFill "blankFill" #define ResBoldColor "boldColor" #define ResBsdTm "bsdTm" #define ResCbreak "cbreak" #define ResCertFile "certFile" #define ResCharClass "charClass" #define ResCharset "charset" #define ResCharsetList "charsetList" #define ResColor8 "color8" #define ResColorBackground "colorBackground" #define ResColorScheme "colorScheme" #define ResCommandTimeout "commandTimeout" #define ResComposeMap "composeMap" #define ResConfDir "confDir" #define ResConnectFileName "connectFileName" #define ResConsoleColorForHostColor "consoleColorForHostColor" #define ResCrosshair "crosshair" #define ResCursesColorFor "cursesColorFor" #define ResCursesColorForDefault ResCursesColorFor "Default" #define ResCursesColorForHostColor ResCursesColorFor "HostColor" #define ResCursesColorForIntensified ResCursesColorFor "Intensified" #define ResCursesColorForProtected ResCursesColorFor "Protected" #define ResCursesColorForProtectedIntensified ResCursesColorFor "ProtectedIntensified" #define ResCursesKeypad "cursesKeypad" #define ResCursorBlink "cursorBlink" #define ResCursorColor "cursorColor" #define ResCursorPos "cursorPos" #define ResDebugTracing "debugTracing" #define ResDefScreen "defScreen" #define ResDftBufferSize "dftBufferSize" #define ResDisconnectClear "disconnectClear" #define ResDoConfirms "doConfirms" #define ResDbcsCgcsgid "dbcsCgcsgid" #define ResDsTrace "dsTrace" #define ResEmulatorFont "emulatorFont" #define ResEof "eof" #define ResErase "erase" #define ResEventTrace "eventTrace" #define ResExtended "extended" #define ResFixedSize "fixedSize" #define ResHighlightBold "highlightBold" #define ResHostColorFor "hostColorFor" #define ResHostColorForDefault ResHostColorFor "Default" #define ResHostColorForIntensified ResHostColorFor "Intensified" #define ResHostColorForProtected ResHostColorFor "Protected" #define ResHostColorForProtectedIntensified ResHostColorFor "ProtectedIntensified" #define ResHostname "hostname" #define ResHostsFile "hostsFile" #define ResIconFont "iconFont" #define ResIconLabelFont "iconLabelFont" #define ResIcrnl "icrnl" #define ResIdleCommand "idleCommand" #define ResIdleCommandEnabled "idleCommandEnabled" #define ResIdleTimeout "idleTimeout" #define ResInlcr "inlcr" #define ResInputColor "inputColor" #define ResInputMethod "inputMethod" #define ResIntr "intr" #define ResInvertKeypadShift "invertKeypadShift" #define ResKeymap "keymap" #define ResKeypad "keypad" #define ResKeypadBackground "keypadBackground" #define ResKeypadOn "keypadOn" #define ResKill "kill" #define ResLabelIcon "labelIcon" #define ResLineWrap "lineWrap" #define ResLnext "lnext" #define ResLocalCp "localCp" #define ResLoginMacro "loginMacro" #define ResLockedCursor "lockedCursor" #define ResLuCommandLine "printer.luCommandLine" #define ResM3279 "m3279" #define ResMacros "macros" #define ResMarginedPaste "marginedPaste" #define ResMenuBar "menuBar" #define ResMetaEscape "metaEscape" #define ResModel "model" #define ResModifiedSel "modifiedSel" #define ResModifiedSelColor "modifiedSelColor" #define ResMono "mono" #define ResMonoCase "monoCase" #define ResMouse "mouse" #define ResNoOther "noOther" #define ResNoPrompt "noPrompt" #define ResNormalColor "normalColor" #define ResNormalCursor "normalCursor" #define ResNumericLock "numericLock" #define ResOerrLock "oerrLock" #define ResOnce "once" #define ResOnlcr "onlcr" #define ResOversize "oversize" #define ResPluginCommand "pluginCommand" #define ResPort "port" #define ResPreeditType "preeditType" #define ResPrinterCodepage "printer.codepage" #define ResPrinterCommand "printer.command" #define ResPrinterLu "printerLu" #define ResPrinterName "printer.name" #define ResProxy "proxy" #define ResQuit "quit" #define ResReconnect "reconnect" #define ResRectangleSelect "rectangleSelect" #define ResReverseVideo "reverseVideo" #define ResRprnt "rprnt" #define ResSaveLines "saveLines" #define ResSchemeList "schemeList" #define ResScreenTrace "screenTrace" #define ResScreenTraceFile "screenTraceFile" #define ResScripted "scripted" #define ResScriptPort "scriptPort" #define ResScrollBar "scrollBar" #define ResSecure "secure" #define ResSelectBackground "selectBackground" #define ResSbcsCgcsgid "sbcsCgcsgid" #define ResShowTiming "showTiming" #define ResSocket "socket" #define ResSuppressActions "suppressActions" #define ResSuppressHost "suppressHost" #define ResSuppressFontMenu "suppressFontMenu" #define ResSuppress "suppress" #define ResTermName "termName" #define ResTitle "title" #define ResTraceDir "traceDir" #define ResTraceFile "traceFile" #define ResTraceFileSize "traceFileSize" #define ResTraceMonitor "traceMonitor" #define ResTypeahead "typeahead" #define ResUnderscore "underscore" #define ResUnlockDelay "unlockDelay" #define ResUnlockDelayMs "unlockDelayMs" #define ResUseCursorColor "useCursorColor" #define ResV "v" #define ResVisibleControl "visibleControl" #define ResVisualBell "visualBell" #define ResVisualSelect "visualSelect" #define ResVisualSelectColor "visualSelectColor" #define ResWaitCursor "waitCursor" #define ResWerase "werase" /* Dotted resource names. */ #define DotActiveIcon "." ResActiveIcon #define DotAplMode "." ResAplMode #define DotCertFile "." ResCertFile #define DotCbreak "." ResCbreak #define DotCharClass "." ResCharClass #define DotCharset "." ResCharset #define DotColorScheme "." ResColorScheme #define DotDsTrace "." ResDsTrace #define DotEmulatorFont "." ResEmulatorFont #define DotExtended "." ResExtended #define DotInputMethod "." ResInputMethod #define DotKeymap "." ResKeymap #define DotKeypadOn "." ResKeypadOn #define DotM3279 "." ResM3279 #define DotModel "." ResModel #define DotMono "." ResMono #define DotOnce "." ResOnce #define DotOversize "." ResOversize #define DotPort "." ResPort #define DotPreeditType "." ResPreeditType #define DotPrinterLu "." ResPrinterLu #define DotProxy "." ResProxy #define DotReconnect "." ResReconnect #define DotSaveLines "." ResSaveLines #define DotScripted "." ResScripted #define DotScriptPort "." ResScriptPort #define DotScrollBar "." ResScrollBar #define DotSocket "." ResSocket #define DotTermName "." ResTermName #define DotTitle "." ResTitle #define DotTraceFile "." ResTraceFile #define DotTraceFileSize "." ResTraceFileSize #define DotV "." ResV /* Resource classes. */ #define ClsActiveIcon "ActiveIcon" #define ClsAdVersion "AdVersion" #define ClsAidWait "AidWait" #define ClsAllBold "AllBold" #define ClsAllowResize "AllowResize" #define ClsAltCursor "AltCursor" #define ClsAplMode "AplMode" #define ClsBaselevelTranslations "BaselevelTranslations" #define ClsBellVolume "BellVolume" #define ClsBlankFill "BlankFill" #define ClsBoldColor "BoldColor" #define ClsBsdTm "BsdTm" #define ClsCbreak "Cbreak" #define ClsCertFile "CertFile" #define ClsCharClass "CharClass" #define ClsCharset "Charset" #define ClsColor8 "Color8" #define ClsColorBackground "ColorBackground" #define ClsColorScheme "ColorScheme" #define ClsComposeMap "ComposeMap" #define ClsConfDir "ConfDir" #define ClsConnectFileName "ConnectFileName" #define ClsCrosshair "Crosshair" #define ClsCursorBlink "CursorBlink" #define ClsCursorColor "CursorColor" #define ClsCursorPos "CursorPos" #define ClsDbcsCgcsgid "DbcsCgcsgid" #define ClsDebugTracing "DebugTracing" #define ClsDftBufferSize "DftBufferSize" #define ClsDisconnectClear "DisconnectClear" #define ClsDoConfirms "DoConfirms" #define ClsDsTrace "DsTrace" #define ClsEmulatorFont "EmulatorFont" #define ClsEof "Eof" #define ClsErase "Erase" #define ClsEventTrace "EventTrace" #define ClsExtended "Extended" #define ClsFixedSize "FixedSize" #define ClsFtCommand "FtCommand" #define ClsHighlightBold "HighlightBold" #define ClsHostname "Hostname" #define ClsHostsFile "HostsFile" #define ClsIconFont "IconFont" #define ClsIconLabelFont "IconLabelFont" #define ClsIcrnl "Icrnl" #define ClsIdleCommand "IdleCommand" #define ClsIdleCommandEnabled "IdleCommandEnabled" #define ClsIdleTimeout "IdleTimeout" #define ClsInlcr "Inlcr" #define ClsInputColor "InputColor" #define ClsInputMethod "InputMethod" #define ClsIntr "Intr" #define ClsInvertKeypadShift "InvertKeypadShift" #define ClsKeymap "Keymap" #define ClsKeypad "Keypad" #define ClsKeypadBackground "KeypadBackground" #define ClsKeypadOn "KeypadOn" #define ClsKill "Kill" #define ClsLabelIcon "LabelIcon" #define ClsLineWrap "LineWrap" #define ClsLnext "Lnext" #define ClsLockedCursor "LockedCursor" #define ClsM3279 "M3279" #define ClsMacros "Macros" #define ClsMarginedPaste "MarginedPaste" #define ClsMenuBar "MenuBar" #define ClsMetaEscape "MetaEscape" #define ClsModel "Model" #define ClsModifiedSel "ModifiedSel" #define ClsModifiedSelColor "ModifiedSelColor" #define ClsMono "Mono" #define ClsMonoCase "MonoCase" #define ClsNoOther "NoOther" #define ClsNormalColor "NormalColor" #define ClsNormalCursor "NormalCursor" #define ClsNumericLock "NumericLock" #define ClsOerrLock "OerrLock" #define ClsOnce "Once" #define ClsOnlcr "Onlcr" #define ClsOversize "Oversize" #define ClsPluginCommand "PluginCommand" #define ClsPort "Port" #define ClsPreeditType "PreeditType" #define ClsPrinterLu "PrinterLu" #define ClsProxy "Proxy" #define ClsQuit "Quit" #define ClsReconnect "Reconnect" #define ClsRectangleSelect "RectangleSelect" #define ClsRprnt "Rprnt" #define ClsSaveLines "SaveLines" #define ClsSbcsCgcsgid "SbcsSgcsgid" #define ClsScreenTrace "ScreenTrace" #define ClsScreenTraceFile "ScreenTraceFile" #define ClsScripted "Scripted" #define ClsScriptPort "ScriptPort" #define ClsScrollBar "ScrollBar" #define ClsSecure "Secure" #define ClsSelectBackground "SelectBackground" #define ClsShowTiming "ShowTiming" #define ClsSocket "Socket" #define ClsSuppressHost "SuppressHost" #define ClsSuppressFontMenu "SuppressFontMenu" #define ClsTermName "TermName" #define ClsTraceDir "TraceDir" #define ClsTraceFile "TraceFile" #define ClsTraceFileSize "TraceFileSize" #define ClsTraceMonitor "TraceMonitor" #define ClsTypeahead "Typeahead" #define ClsUnlockDelay "UnlockDelay" #define ClsUnlockDelayMs "UnlockDelayMs" #define ClsUseCursorColor "UseCursorColor" #define ClsVisibleControl "VisibleControl" #define ClsVisualBell "VisualBell" #define ClsVisualSelect "VisualSelect" #define ClsVisualSelectColor "VisualSelectColor" #define ClsWaitCursor "WaitCursor" #define ClsWerase "Werase" /* Options. */ #define OptActiveIcon "-activeicon" #define OptAllBold "-allbold" #define OptAltScreen "-altscreen" #define OptAplMode "-apl" #define OptCbreak "-cbreak" #define OptCertFile "-certificate" #define OptCharClass "-cc" #define OptCharset "-charset" #define OptClear "-clear" #define OptColorScheme "-scheme" #define OptDefScreen "-defscreen" #define OptDsTrace "-trace" #define OptEmulatorFont "-efont" #define OptExtended "-extended" #define OptHostsFile "-hostsfile" #define OptIconName "-iconname" #define OptIconX "-iconx" #define OptIconY "-icony" #define OptInputMethod "-im" #define OptKeymap "-keymap" #define OptKeypadOn "-keypad" #define OptLocalCp "-localcp" #define OptLocalProcess "-e" #define OptM3279 "-color" #define OptModel "-model" #define OptMono "-mono" #define OptNoPrompt "-noprompt" #define OptNoScrollBar "+sb" #define OptOnce "-once" #define OptOversize "-oversize" #define OptPort "-port" #define OptPreeditType "-pt" #define OptPrinterLu "-printerlu" #define OptProxy "-proxy" #define OptReconnect "-reconnect" #define OptReverseVideo "-rv" #define OptSaveLines "-sl" #define OptSecure "-secure" #define OptScripted "-script" #define OptScriptPort "-scriptport" #define OptScrollBar "-sb" #define OptSet "-set" #define OptSocket "-socket" #define OptAutoShortcut "-S" #define OptNoAutoShortcut "+S" #define OptTermName "-tn" #define OptTitle "-title" #define OptTraceFile "-tracefile" #define OptTraceFileSize "-tracefilesize" #define OptV "-v" #define OptVersion "--version" /* Miscellaneous values. */ #define ResTrue "true" #define ResFalse "false" #define KpLeft "left" #define KpRight "right" #define KpBottom "bottom" #define KpIntegral "integral" #define KpInsideRight "insideRight" #define Apl "apl" /* Resources that are gotten explicitly. */ #define ResComposeMap "composeMap" #define ResEmulatorFontList "emulatorFontList" #define ResKeyHeight "keyHeight" #define ResKeyWidth "keyWidth" #define ResLargeKeyWidth "largeKeyWidth" #define ResMessage "message" #define ResNvt "nvt" #define ResPaWidth "paWidth" #define ResPfWidth "pfWidth" #define ResPrintTextCommand "printTextCommand" #define ResPrintTextFont "printTextFont" #define ResPrintTextSize "printTextSize" #define ResPrintWindowCommand "printWindowCommand" #define ResTraceCommand "traceCommand" #define ResUser "user" ibm-3270-3.3.10ga4/c3270/kybdc.h0000644000175000017500000001572211254565704015201 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * kybdc.h * Global declarations for kybd.c. */ /* keyboard lock states */ extern unsigned int kybdlock; #define KL_OERR_MASK 0x000f #define KL_OERR_PROTECTED 1 #define KL_OERR_NUMERIC 2 #define KL_OERR_OVERFLOW 3 #define KL_OERR_DBCS 4 #define KL_NOT_CONNECTED 0x0010 #define KL_AWAITING_FIRST 0x0020 #define KL_OIA_TWAIT 0x0040 #define KL_OIA_LOCKED 0x0080 #define KL_DEFERRED_UNLOCK 0x0100 #define KL_ENTER_INHIBIT 0x0200 #define KL_SCROLLED 0x0400 #define KL_OIA_MINUS 0x0800 /* actions */ extern void AltCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Attn_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void BackSpace_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void BackTab_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CircumNot_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Clear_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Compose_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CursorSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Default_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void DeleteField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void DeleteWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Delete_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Down_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Dup_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Enter_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EraseEOF_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EraseInput_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Erase_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void FieldEnd_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void FieldMark_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Flip_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void HexString_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Home_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ignore_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Insert_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Interrupt_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Key_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Left2_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Left_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MonoCase_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MouseSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MoveCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Newline_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void NextWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PA_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PA_Shift_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PF_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PreviousWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Reset_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Right2_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Right_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void String_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void SysReq_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Tab_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void TemporaryKeymap_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ToggleInsert_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ToggleReverse_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Up_action(Widget w, XEvent *event, String *params, Cardinal *num_params); /* other functions */ extern void do_reset(Boolean explicit); extern int emulate_input(char *s, int len, Boolean pasting); extern int emulate_uinput(ucs4_t *s, int len, Boolean pasting); extern void hex_input(char *s); extern void kybdlock_clr(unsigned int bits, const char *cause); extern void kybd_inhibit(Boolean inhibit); extern void kybd_init(void); extern int kybd_prime(void); extern void kybd_scroll_lock(Boolean lock); extern Boolean run_ta(void); extern int state_from_keymap(char keymap[32]); ibm-3270-3.3.10ga4/c3270/gluec.h0000644000175000017500000000427511254565704015205 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * gluec.h * Declarations for glue.c and XtGlue.c */ /* glue.c */ extern int parse_command_line(int argc, const char **argv, const char **cl_hostname); extern void parse_xrm(const char *arg, const char *where); extern char *safe_string(const char *s); extern Boolean process_events(Boolean block); extern void cmdline_help(Boolean as_action); struct host_color { char *name; int index; }; extern struct host_color host_color[]; /* XtGlue.c */ extern void (*Warning_redirect)(const char *); #if !defined(_WIN32) /*[*/ extern int select_setup(int *nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval **timeout, struct timeval *timebuf); #endif /*]*/ ibm-3270-3.3.10ga4/c3270/printc.h0000644000175000017500000000432611254565704015402 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * printc.h * Global declarations for print.c. */ typedef enum { P_TEXT, P_HTML, P_RTF } ptype_t; #define FPS_EVEN_IF_EMPTY 0x1 #define FPS_MODIFIED_ITALIC 0x2 extern Boolean fprint_screen(FILE *f, ptype_t ptype, unsigned opts, char *caption); extern void PrintText_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PrintWindow_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void print_text_option(Widget w, XtPointer client_data, XtPointer call_data); extern void print_window_option(Widget w, XtPointer client_data, XtPointer call_data); extern void save_text_option(Widget w, XtPointer client_data, XtPointer call_data); ibm-3270-3.3.10ga4/c3270/LICENSE0000644000175000017500000000342611254565674014745 0ustar bastianbastianCopyright (c) 1993-2009, Paul Mattes. Copyright (c) 2004-2005, Don Russell. Copyright (c) 2004, Dick Altenbern. Copyright (c) 1990, Jeff Sparkes. Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES, DICK ALTENBERN AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ibm-3270-3.3.10ga4/c3270/savec.h0000644000175000017500000000314211254565673015204 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of savec.h */ #define save_yourself() extern char *command_string; ibm-3270-3.3.10ga4/c3270/README0000644000175000017500000000237211254565674014617 0ustar bastianbastianc3270 3.3 Release c3270 is a curses-based IBM 3278/3279 terminal emulator. Documentation is in the html directory. The files are: Intro What c3270 is Lineage Where c3270 came from (copyright stuff) Build How to build and install c3270 FAQ Frequently Asked Questions (what to do when something goes wrong) New What's new in this release Bugs What's broken in this release Wishlist What isn't in this release There is also a hypertext version of the c3270 man page, and of the man pages for x3270-script and x3270if. Please read Build before going ahead and building the program. Also, if you have a problem, scan through FAQ; there are lots of interesting answers there. Updates to c3270, as well as the current status of development and bugs, are available from the x3270 Web Page, http://x3270.sourceforge.net/. Feel free to send comments, criticism, suggestions, complaints, etc., to Paul Mattes, Paul.Mattes@usa.net. Requests will be addressed as time and resources permit. There is also an x3270 mailing list, which also includes information about c3270, and which receives news about new releases. Send a message to Paul.Mattes@usa.net (a real person, with an automatic responses for certain subject lines) to get on the list. ibm-3270-3.3.10ga4/c3270/ft_dftc.h0000644000175000017500000000335411254565704015514 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ extern void ft_dft_data(unsigned char *data, int length); extern void dft_read_modified(void); extern void set_dft_buffersize(void); ibm-3270-3.3.10ga4/c3270/install-sh0000755000175000017500000001267111254565704015740 0ustar bastianbastian#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else : fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=$mkdirprog fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then : else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else : fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else : fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else : fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else : fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 ibm-3270-3.3.10ga4/c3270/utilc.h0000644000175000017500000000644711256026610015217 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utilc.h * Global declarations for util.c. */ extern void add_resource(const char *name, const char *value); extern char *ctl_see(int c); extern char *do_subst(const char *s, Boolean do_vars, Boolean do_tilde); extern void fcatv(FILE *f, char *s); extern const char *get_message(const char *key); extern char *get_fresource(const char *fmt, ...) printflike(1, 2); extern char *get_resource(const char *name); extern char *scatv(const char *s, char *buf, size_t len); extern int split_dbcs_resource(const char *value, char sep, char **part1, char **part2); extern int split_dresource(char **st, char **left, char **right); extern int split_lresource(char **st, char **value); extern char *strip_whitespace(const char *s); extern char *xs_buffer(const char *fmt, ...) printflike(1, 2); extern void xs_error(const char *fmt, ...) printflike(1, 2); extern void xs_warning(const char *fmt, ...) printflike(1, 2); extern unsigned long AddInput(int, void (*)(void)); extern unsigned long AddExcept(int, void (*)(void)); extern unsigned long AddOutput(int, void (*)(void)); extern void RemoveInput(unsigned long); extern unsigned long AddTimeOut(unsigned long msec, void (*fn)(void)); extern void RemoveTimeOut(unsigned long cookie); extern KeySym StringToKeysym(char *s); extern char *KeysymToString(KeySym k); extern int read_resource_file(const char *filename, Boolean fatal); extern Boolean split_hier(char *label, char **base, char ***parents); typedef struct { char *buf; int alloc_len; int cur_len; } rpf_t; extern void rpf_init(rpf_t *r); extern void rpf_reset(rpf_t *r); extern void rpf(rpf_t *r, char *fmt, ...) printflike(2, 3); extern void rpf_free(rpf_t *r); extern const char *build_options(void); extern void dump_version(void); extern const char *display_scale(double d, char *buf, size_t buflen); ibm-3270-3.3.10ga4/c3270/tablesc.h0000644000175000017500000000334711254565704015522 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tablesc.h * Global declarations for tables.c. */ extern const unsigned char asc2cg0[256]; extern const unsigned char ebc2cg0[256]; extern const unsigned char ebc2asc0[256]; extern const unsigned char asc2ebc0[256]; ibm-3270-3.3.10ga4/pr3287/0000755000175000017500000000000011261530021014112 5ustar bastianbastianibm-3270-3.3.10ga4/pr3287/pr3287.man0000644000175000017500000001561311261530001015560 0ustar bastianbastian'\" t .TH PR3287 1 "02 October 2009" .SH "NAME" pr3287 \- \s-1IBM\s+1 host printing tool .SH "SYNOPSIS" \fBpr3287\fP [ \fIoptions\fP ] [ L: ] [[ \fILUname\fP [, \fILUname\fP ...]@] \fIhostname\fP [: \fIport\fP ]] .SH "DESCRIPTION" \fBpr3287\fP opens a telnet connection to an \s-1IBM\s+1 host, and emulates an \s-1IBM\s+1 3287 printer. It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection). .LP If the \fIhostname\fP is prefixed with \fBL:\fP, the connection will be made through an SSL tunnel. \fBpr3287\fP also supports TELNET START-TLS option negotiation without any need for command-line options. .LP A specific LU name to use may be specified by prepending it to the \fIhostname\fP with an `\fB@\fP'. Multiple LU names to try can be separated by commas. An empty LU can be placed in the list with an extra comma. .LP The port to connect to defaults to \fBtelnet\fP. This can be overridden by appending a \fIport\fP to the \fIhostname\fP with a colon `\fB:\fP'. .SH "OPTIONS" \fBpr3287\fP understands the following options: .TP \fB\-assoc\fP \fILUname\fP Causes the session to be associated with the specified \fILUname\fP. .TP \fB\-blanklines\fP In LU3 formatted mode, print blank lines even if they are all NULLs or control characters. (This is a violation of the 3270 printer protocol, but some hosts require it.) .TP \fB\-charset\fP \fIname\fP Specifies an alternate host code page (input \s-1EBCDIC\s+1 mapping). The default maps the U.S. English (037) code page to the current locale character encoding. pr3287 generally supports the same host character sets as x3270. .TP \fB\-command\fP \fIcommand\fP Specifies the command to run for each print job. The default is \fBlpr\fP. .TP \fB\-crlf\fP Causes newline characters in the output to be expanded to carriage-return/linefeed sequences. .TP \fB\-daemon\fP Causes \fIpr3287\fP to become a daemon (background) process. .TP \fB\-eojtimeout\fP \fIseconds\fP Causes \fIpr3287\fP to flush the print job after \fIseconds\fP seconds of inactivity. .TP \fB\-ignoreeoj\fP Ignore TN3270E PRINT-EOJ commands, relying on UNBIND commands to indicate the ends of print jobs. .TP \fB\-ffskip\fP Causes \fIpr3287\fP to ignore a FF (formfeed) order if it occurs at the top of a page. .TP \fB\-ffthru\fP In SCS mode, causes \fIpr3287\fP to pass FF (formfeed) orders through to the printer as ASCII formfeed characters, rather than simulating them based on the values of the MPL (maximum presentation line) and TM (top margin) parameters. .LP The printer can be the name of a local printer, or a UNC path to a remote printer, e.g., \\server\printer1. .TP \fB\-proxy \fItype\fP:\fIhost\fP[:\fIport\fP]\fP Causes \fBpr3287\fP to connect via the specified proxy, instead of using a direct connection. The \fIhost\fP can be an IP address or hostname. The optional \fIport\fP can be a number or a service name. For a list of supported proxy \fItypes\fP, see \s-1PROXY\s+1 below. .TP \fB\-reconnect\fP Causes \fIpr3287\fP to reconnect to the host, whenever the connection is broken. There is a 5-second delay between reconnect attempts, to reduce network thrashing for down or misconfigured hosts. .TP \fB\-trace\fP Turns on data stream tracing. Trace information is usually saved in the file \fB/tmp/x3trc.\fP\fIpid\fP. .TP \fB\-tracedir\fP \fIdir\fP Specifies the directory to save trace files in, instead of \fB/tmp\fP. .TP \fB\-trnpre \fIfile\fP\fP Specifies a file containing data that will be sent to the printer before each print job. The file contents are treated as transparent data, i.e., they are not translated in any way. .TP \fB\-trnpost \fIfile\fP\fP Specifies a file containing data that will be sent to the printer after each print job. The file contents are treated as transparent data, i.e., they are not translated in any way. .TP \fB\-v\fP Display build and version information and exit. .SH "SIGNALS" SIGINT, SIGHUP and SIGTERM cause the current print job to be flushed (any pending data to be printed) and \fIpr3287\fP to exit. .LP SIGUSR1 causes the current print job to be flushed without otherwise affecting the \fIpr3287\fP process. .SH "PROXY" The \fB\-proxy\fP option causes pr3287 to use a proxy server to connect to the host. The syntax of the option is: .RS \fItype\fP:\fIhost\fP[:\fIport\fP] .RE The supported values for \fItype\fP are: .TS center; c l c . T{ .na .nh Proxy Type T} T{ .na .nh Protocol T} T{ .na .nh Default Port T} _ T{ .na .nh http T} T{ .na .nh RFC 2817 HTTP tunnel (squid) T} T{ .na .nh 3128 T} T{ .na .nh passthru T} T{ .na .nh Sun in.telnet-gw T} T{ .na .nh none T} T{ .na .nh socks4 T} T{ .na .nh SOCKS version 4 T} T{ .na .nh 1080 T} T{ .na .nh socks5 T} T{ .na .nh SOCKS version 5 (RFC 1928) T} T{ .na .nh 1080 T} T{ .na .nh telnet T} T{ .na .nh No protocol (just send \fBconnect\fP \fIhost port\fP) T} T{ .na .nh none T} .TE .LP The special types \fBsocks4a\fP and \fBsocks5d\fP can also be used to force the proxy server to do the hostname resolution for the SOCKS protocol. .SH "SEE ALSO" x3270(1), c3270(1), telnet(1), tn3270(1) .br Data Stream Programmer's Reference, IBM GA23\-0059 .br Character Set Reference, IBM GA27\-3831 .br 3174 Establishment Controller Functional Description, IBM GA23\-0218 .br RFC 1576, TN3270 Current Practices .br RFC 1646, TN3270 Extensions for LUname and Printer Selection .br RFC 2355, TN3270 Enhancements .SH "COPYRIGHTS" Copyright 1993-2009, Paul Mattes. .br Copyright 1990, Jeff Sparkes. .br Copyright 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332. .br All rights reserved. .LP Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: .TP * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. .TP * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. .TP * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. .LP THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC `AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .SH "VERSION" pr3287 3.3.10ga4 ibm-3270-3.3.10ga4/pr3287/resolverc.h0000644000175000017500000000361311254565704016314 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resolverc.h * Hostname resolution. */ extern int resolve_host_and_port(const char *host, char *portname, int ix, unsigned short *pport, struct sockaddr *sa, socklen_t *sa_len, char *errmsg, int em_size, int *lastp); extern int numeric_host_and_port(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, char *errmsg, int em_len); ibm-3270-3.3.10ga4/pr3287/utf8.c0000644000175000017500000001545611254565704015201 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utf8.c * 3270 Terminal Emulator * UTF-8 conversions */ #include "globals.h" #include "popupsc.h" #include "utf8c.h" char *locale_codeset = CN; Boolean is_utf8 = False; /* * Save the codeset from the locale, and set globals based on known values. */ void set_codeset(char *codeset_name) { #if !defined(TCL3270) /*[*/ is_utf8 = (!strcasecmp(codeset_name, "utf-8") || !strcasecmp(codeset_name, "utf8") || !strcasecmp(codeset_name, "utf_8")); #else /*][*/ /* * tcl3270 is always in UTF-8 mode, because it needs to * supply UTF-8 strings to libtcl and vice-versa. */ is_utf8 = True; #endif /*]*/ Replace(locale_codeset, NewString(codeset_name)); } /* * Convert from UCS-4 to UTF-8. * Returns: * >0: length of converted character * -1: invalid UCS-4 */ int unicode_to_utf8(ucs4_t ucs4, char *utf8) { if (ucs4 & 0x80000000) return -1; if (ucs4 <= 0x0000007f) { utf8[0] = ucs4 & 0x7f; /* 7 bits */ return 1; } else if (ucs4 <= 0x000007ff) { utf8[0] = 0xc0 | ((ucs4 >> 6) & 0x1f); /* upper 5 bits */ utf8[1] = 0x80 | (ucs4 & 0x3f); /* lower 6 bits */ return 2; } else if (ucs4 <= 0x0000ffff) { utf8[0] = 0xe0 | ((ucs4 >> 12) & 0x0f); /* upper 4 bits */ utf8[1] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 3; } else if (ucs4 <= 0x001fffff) { utf8[0] = 0xf0 | ((ucs4 >> 18) & 0x07); /* upper 3 bits */ utf8[1] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 4; } else if (ucs4 <= 0x03ffffff) { utf8[0] = 0xf8 | ((ucs4 >> 24) & 0x03); /* upper 2 bits */ utf8[1] = 0x80 | ((ucs4 >> 18) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[4] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 5; } else { utf8[0] = 0xfc | ((ucs4 >> 30) & 0x01); /* upper 1 bit */ utf8[1] = 0x80 | ((ucs4 >> 24) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 18) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[4] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[5] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 6; } } /* * Convert at most 'len' bytes from a UTF-8 string to one UCS-4 character. * Returns: * >0: Number of characters consumed. * 0: Incomplete sequence. * -1: Invalid sequence. * -2: Illegal (too-long) encoding. * -3: Invalid lead byte. * * An invalid sequence can be either improperly composed, or using the wrong * encoding length (often used to get past spam filters and such). */ int utf8_to_unicode(const char *utf8, int len, ucs4_t *ucs4) { /* No input is by definition incomplete. */ if (!len) return 0; /* See if it's ASCII-7. */ if ((utf8[0] & 0xff) < 0x80) { *ucs4 = utf8[0] & 0x7f; return 1; } /* Now check for specific UTF-8 leading bytes. */ if ((utf8[0] & 0xe0) == 0xc0) { /* 110xxxxx 10xxxxxx * 0x00000080-0x000007ff */ if (len < 2) return 0; if ((utf8[1] & 0xc0) != 0x80) return -1; *ucs4 = ((utf8[0] << 6) & 0x7c0) | (utf8[1] & 0x03f); if (*ucs4 < 0x00000080) return -1; return 2; } if ((utf8[0] & 0xf0) == 0xe0) { /* 1110xxxx 10xxxxxx 10xxxxxx * 0x00000800-0x0000ffff */ if (len < 3) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 12) & 0xf000) | ((utf8[1] << 6) & 0x0fc0) | ((utf8[2]) & 0x003f); if (*ucs4 < 0x00000800) return -2; return 3; } if ((utf8[0] & 0xf8) == 0xf0) { /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x00010000-0x001fffff */ if (len < 4) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 18) & 0x1c0000) | ((utf8[1] << 12) & 0x03f000) | ((utf8[2] << 6) & 0x000fc0) | ((utf8[3]) & 0x00003f); if (*ucs4 < 0x00010000) return -2; return 4; } if ((utf8[0] & 0xfc) == 0xf8) { /* 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x00200000-0x03ffffff */ if (len < 5) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80) || ((utf8[4] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 24) & 0x3000000) | ((utf8[1] << 18) & 0x0fc0000) | ((utf8[2] << 12) & 0x003f000) | ((utf8[3] << 6) & 0x0000fc0) | ((utf8[4]) & 0x000003f); if (*ucs4 < 0x00200000) return -2; return 5; } if ((utf8[0] & 0xfe) == 0xfc) { /* 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x04000000-0x7fffffff */ if (len < 6) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80) || ((utf8[4] & 0xc0) != 0x80) || ((utf8[5] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 30) & 0x40000000) | ((utf8[1] << 24) & 0x3f000000) | ((utf8[2] << 18) & 0x00fc0000) | ((utf8[3] << 12) & 0x0003f000) | ((utf8[4] << 6) & 0x00000fc0) | ((utf8[5]) & 0x0000003f); if (*ucs4 < 0x04000000) return -2; return 6; } return -3; } ibm-3270-3.3.10ga4/pr3287/tn3270e.h0000644000175000017500000000704311254565704015413 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tn3270e.h * * Header file for the TN3270E Protocol, RFC 2355. */ /* Negotiation operations. */ #define TN3270E_OP_ASSOCIATE 0 #define TN3270E_OP_CONNECT 1 #define TN3270E_OP_DEVICE_TYPE 2 #define TN3270E_OP_FUNCTIONS 3 #define TN3270E_OP_IS 4 #define TN3270E_OP_REASON 5 #define TN3270E_OP_REJECT 6 #define TN3270E_OP_REQUEST 7 #define TN3270E_OP_SEND 8 /* Negotiation reason-codes. */ #define TN3270E_REASON_CONN_PARTNER 0 #define TN3270E_REASON_DEVICE_IN_USE 1 #define TN3270E_REASON_INV_ASSOCIATE 2 #define TN3270E_REASON_INV_DEVICE_NAME 3 #define TN3270E_REASON_INV_DEVICE_TYPE 4 #define TN3270E_REASON_TYPE_NAME_ERROR 5 #define TN3270E_REASON_UNKNOWN_ERROR 6 #define TN3270E_REASON_UNSUPPORTED_REQ 7 /* Negotiation function Names. */ #define TN3270E_FUNC_BIND_IMAGE 0 #define TN3270E_FUNC_DATA_STREAM_CTL 1 #define TN3270E_FUNC_RESPONSES 2 #define TN3270E_FUNC_SCS_CTL_CODES 3 #define TN3270E_FUNC_SYSREQ 4 /* Header data type names. */ #define TN3270E_DT_3270_DATA 0x00 #define TN3270E_DT_SCS_DATA 0x01 #define TN3270E_DT_RESPONSE 0x02 #define TN3270E_DT_BIND_IMAGE 0x03 #define TN3270E_DT_UNBIND 0x04 #define TN3270E_DT_NVT_DATA 0x05 #define TN3270E_DT_REQUEST 0x06 #define TN3270E_DT_SSCP_LU_DATA 0x07 #define TN3270E_DT_PRINT_EOJ 0x08 /* Header request flags. */ #define TN3270E_RQF_ERR_COND_CLEARED 0x00 /* Header response flags. */ #define TN3270E_RSF_NO_RESPONSE 0x00 #define TN3270E_RSF_ERROR_RESPONSE 0x01 #define TN3270E_RSF_ALWAYS_RESPONSE 0x02 #define TN3270E_RSF_POSITIVE_RESPONSE 0x00 #define TN3270E_RSF_NEGATIVE_RESPONSE 0x01 /* Header response data. */ #define TN3270E_POS_DEVICE_END 0x00 #define TN3270E_NEG_COMMAND_REJECT 0x00 #define TN3270E_NEG_INTERVENTION_REQUIRED 0x01 #define TN3270E_NEG_OPERATION_CHECK 0x02 #define TN3270E_NEG_COMPONENT_DISCONNECTED 0x03 /* TN3270E data header. */ typedef struct { unsigned char data_type; unsigned char request_flag; unsigned char response_flag; unsigned char seq_number[2]; /* actually, 16 bits, unaligned (!) */ } tn3270e_header; #define EH_SIZE 5 ibm-3270-3.3.10ga4/pr3287/pr3287.c0000644000175000017500000005346511254565701015257 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * pr3287: A 3270 printer emulator for TELNET sessions. * * pr3287 [options] [lu[,lu...]@]host[:port] * Options are: * -dameon * become a daemon after negotiating * -assoc session * associate with a session (TN3270E only) * -command "string" * command to use to print (default "lpr", POSIX only) * -charset name * use the specified character set * -crlf * expand newlines to CR/LF (POSIX only) * -nocrlf * expand newlines to CR/LF (Windows only) * -blanklines * display blank lines even if they're empty (formatted LU3) * -eojtimeout n * time out end of job after n seconds * -ffthru * pass through SCS FF orders * -ffskip * skip FF at top of page * -printer "printer name" * printer to use (default is $PRINTER or system default, * Windows only) * -printercp n * Code page to use for output (Windows only) * -proxy "spec" * proxy specification * -reconnect * keep trying to reconnect * -trace * trace data stream to a file * -tracedir dir * directory to write trace file in (POSIX only) * -trnpre file * file of transparent data to send before jobs * -trnpost file * file of transparent data to send after jobs * -v * display version information and exit * -V * verbose output about negotiation */ #include #include #include #include #include #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #if !defined(_WIN32) /*[*/ #include #include #include #else /*][*/ #include #include #undef AF_INET6 #endif /*]*/ #include #include #include #include "globals.h" #include "charsetc.h" #include "trace_dsc.h" #include "ctlrc.h" #include "popupsc.h" #include "proxyc.h" #include "resolverc.h" #include "telnetc.h" #include "utf8c.h" #if defined(_WIN32) /*[*/ #include "w3miscc.h" #include "wsc.h" #include "windirsc.h" #endif /*]*/ #if defined(_IOLBF) /*[*/ #define SETLINEBUF(s) setvbuf(s, (char *)NULL, _IOLBF, BUFSIZ) #else /*][*/ #define SETLINEBUF(s) setlinebuf(s) #endif /*]*/ #if !defined(INADDR_NONE) /*[*/ #define INADDR_NONE 0xffffffffL #endif /*]*/ /* Externals. */ extern char *build; extern FILE *tracef; /* Globals. */ char *programname = NULL; /* program name */ int blanklines = 0; int ignoreeoj = 0; int reconnect = 0; #if defined(_WIN32) /*[*/ int crlf = 1; int printercp = 0; #else /*][*/ int crlf = 0; #endif /*]*/ int ffthru = 0; int ffskip = 0; int verbose = 0; int ssl_host = 0; unsigned long eoj_timeout = 0L; /* end of job timeout */ char *trnpre_data = NULL; size_t trnpre_size = 0; char *trnpost_data = NULL; size_t trnpost_size = 0; /* User options. */ #if !defined(_WIN32) /*[*/ static enum { NOT_DAEMON, WILL_DAEMON, AM_DAEMON } bdaemon = NOT_DAEMON; #endif /*]*/ static char *assoc = NULL; /* TN3270 session to associate with */ #if !defined(_WIN32) /*[*/ const char *command = "lpr"; /* command to run for printing */ #else /*][*/ const char *printer = NULL; /* printer to use */ #endif /*]*/ static int tracing = 0; /* are we tracing? */ #if !defined(_WIN32) /*[*/ static char *tracedir = "/tmp"; /* where we are tracing */ #endif /*]*/ char *proxy_spec; /* proxy specification */ static int proxy_type = 0; static char *proxy_host = CN; static char *proxy_portname = CN; static unsigned short proxy_port = 0; #if defined(_WIN32) /*[*/ char *appdata; #endif /* ]*/ void pr3287_exit(int); const char *build_options(void); /* Print a usage message and exit. */ static void usage(void) { (void) fprintf(stderr, "usage: %s [options] [lu[,lu...]@]host[:port]\n" "Options:\n%s%s%s%s", programname, #if !defined(_WIN32) /*[*/ " -daemon become a daemon after connecting\n" #endif /*]*/ " -assoc associate with a session (TN3270E only)\n" " -charset use built-in alternate EBCDIC-to-ASCII mappings\n", #if !defined(_WIN32) /*[*/ " -command \"\" use for printing (default \"lpr\")\n" #endif /*]*/ " -blanklines display blank lines even if empty (formatted LU3)\n" #if defined(_WIN32) /*[*/ " -nocrlf don't expand newlines to CR/LF\n" #else /*][*/ " -crlf expand newlines to CR/LF\n" #endif /*]*/ " -eojtimeout \n" " time out end of print job\n" " -ffthru pass through SCS FF orders\n" " -ffskip skip FF orders at top of page\n", " -ignoreeoj ignore PRINT-EOJ commands\n" #if defined(_WIN32) /*[*/ " -printer \"printer name\"\n" " use specific printer (default is $PRINTER or the system\n" " default printer)\n" " -printercp \n" " code page for output (default is system ANSI code page)\n" #endif /*]*/ " -proxy \"\"\n" " connect to host via specified proxy\n" " -reconnect keep trying to reconnect\n" #if defined(_WIN32) /*[*/ " -trace trace data stream to /x3trc..txt\n", #else /*][*/ " -trace trace data stream to /tmp/x3trc.\n", #endif /*]*/ #if !defined(_WIN32) /*[*/ " -tracedir directory to keep trace information in\n" #endif /*]*/ " -trnpre file of transparent data to send before each job\n" " -trnpost file of transparent data to send after each job\n" " -v display version information and exit\n" " -V log verbose information about connection negotiation\n" ); pr3287_exit(1); } /* Print an error message. */ void verrmsg(const char *fmt, va_list ap) { static char buf[2][4096] = { "", "" }; static int ix = 0; ix = !ix; (void) vsprintf(buf[ix], fmt, ap); trace_ds("Error: %s\n", buf[ix]); if (!strcmp(buf[ix], buf[!ix])) { if (verbose) (void) fprintf(stderr, "Suppressed error '%s'\n", buf[ix]); return; } #if !defined(_WIN32) /*[*/ if (bdaemon == AM_DAEMON) { /* XXX: Need to put somethig in the Application Event Log. */ syslog(LOG_ERR, "%s: %s", programname, buf[ix]); } else { #endif /*]*/ (void) fprintf(stderr, "%s: %s\n", programname, buf[ix]); #if !defined(_WIN32) /*[*/ } #endif /*]*/ } void errmsg(const char *fmt, ...) { va_list args; va_start(args, fmt); (void) verrmsg(fmt, args); va_end(args); } /* Memory allocation. */ void * Malloc(size_t len) { void *p = malloc(len); if (p == NULL) { errmsg("Out of memory"); pr3287_exit(1); } return p; } void Free(void *p) { free(p); } void * Realloc(void *p, size_t len) { void *pn; pn = realloc(p, len); if (pn == NULL) { errmsg("Out of memory"); pr3287_exit(1); } return pn; } char * NewString(const char *s) { char *p; p = Malloc(strlen(s) + 1); return strcpy(p, s); } void Error(const char *msg) { errmsg(msg); pr3287_exit(1); } /* Signal handler for SIGTERM, SIGINT and SIGHUP. */ static void fatal_signal(int sig) { /* Flush any pending data and exit. */ trace_ds("Fatal signal %d\n", sig); (void) print_eoj(); errmsg("Exiting on signal %d", sig); exit(0); } #if !defined(_WIN32) /*[*/ /* Signal handler for SIGUSR1. */ static void flush_signal(int sig) { /* Flush any pending data and exit. */ trace_ds("Flush signal %d\n", sig); (void) print_eoj(); } #endif /*]*/ void pr3287_exit(int status) { #if defined(_WIN32) && defined(NEED_PAUSE) /*[*/ char buf[2]; if (status) { printf("\n[Press ] "); fflush(stdout); (void) fgets(buf, 2, stdin); } #endif /*]*/ exit(status); } /* Read a transparent data file into memory. */ static void read_trn(char *filename, char **data, size_t *size) { int fd; char buf[1024]; int nr; if (filename == NULL) return; fd = open(filename, O_RDONLY); if (fd < 0) { perror(filename); pr3287_exit(1); } *size = 0; while ((nr = read(fd, buf, sizeof(buf))) > 0) { *size += nr; *data = realloc(*data, *size); if (*data == NULL) { fprintf(stderr, "Out of memory\n"); pr3287_exit(1); } memcpy(*data + *size - nr, buf, nr); } if (nr < 0) { perror(filename); pr3287_exit(1); } close(fd); } int main(int argc, char *argv[]) { int i; char *at, *colon; int len; char *charset = "us"; char *lu = NULL; char *host = NULL; char *port = "telnet"; unsigned short p; union { struct sockaddr sa; struct sockaddr_in sin; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sin6; #endif /*]*/ } ha; socklen_t ha_len = sizeof(ha); int s = -1; int rc = 0; int report_success = 0; #if defined(HAVE_LIBSSL) /*[*/ int any_prefixes = False; #endif /*]*/ char *trnpre = NULL, *trnpost = NULL; /* Learn our name. */ #if defined(_WIN32) /*[*/ if ((programname = strrchr(argv[0], '\\')) != NULL) #else /*][*/ if ((programname = strrchr(argv[0], '/')) != NULL) #endif /*]*/ programname++; else programname = argv[0]; #if !defined(_WIN32) /*[*/ if (!programname[0]) programname = "wpr3287"; #endif /*]*/ #if defined(_WIN32) /*[*/ /* * Get the printer name via the environment, because Windows doesn't * let us put spaces in arguments. */ if ((printer = getenv("PRINTER")) == NULL) printer = ws_default_printer(); if (get_dirs(NULL, "wc3270", NULL, NULL, &appdata, NULL) < 0) exit(1); if (sockstart() < 0) exit(1); #endif /*]*/ /* Gather the options. */ for (i = 1; i < argc && argv[i][0] == '-'; i++) { #if !defined(_WIN32) /*[*/ if (!strcmp(argv[i], "-daemon")) bdaemon = WILL_DAEMON; else #endif /*]*/ if (!strcmp(argv[i], "-assoc")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -assoc\n"); usage(); } assoc = argv[i + 1]; i++; #if !defined(_WIN32) /*[*/ } else if (!strcmp(argv[i], "-command")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -command\n"); usage(); } command = argv[i + 1]; i++; #endif /*]*/ } else if (!strcmp(argv[i], "-charset")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -charset\n"); usage(); } charset = argv[i + 1]; i++; } else if (!strcmp(argv[i], "-blanklines")) { blanklines = 1; #if defined(_WIN32) /*[*/ } else if (!strcmp(argv[i], "-nocrlf")) { crlf = 0; #else /*][*/ } else if (!strcmp(argv[i], "-crlf")) { crlf = 1; #endif /*]*/ } else if (!strcmp(argv[i], "-eojtimeout")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -charset\n"); usage(); } eoj_timeout = strtoul(argv[i + 1], NULL, 0); i++; } else if (!strcmp(argv[i], "-ignoreeoj")) { ignoreeoj = 1; } else if (!strcmp(argv[i], "-ffthru")) { ffthru = 1; } else if (!strcmp(argv[i], "-ffskip")) { ffskip = 1; #if defined(_WIN32) /*[*/ } else if (!strcmp(argv[i], "-printer")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -printer\n"); usage(); } printer = argv[i + 1]; i++; } else if (!strcmp(argv[i], "-printercp")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -printer\n"); usage(); } printercp = (int)strtoul(argv[i + 1], NULL, 0); i++; #endif /*]*/ } else if (!strcmp(argv[i], "-reconnect")) { reconnect = 1; } else if (!strcmp(argv[i], "-v")) { printf("%s\n%s\n", build, build_options()); charset_list(); printf("\n\ Copyright 1989-2009, Paul Mattes, GTRC and others.\n\ See the source code or documentation for licensing details.\n\ Distributed WITHOUT ANY WARRANTY; without even the implied warranty of\n\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); exit(0); } else if (!strcmp(argv[i], "-V")) { verbose = 1; } else if (!strcmp(argv[i], "-trace")) { tracing = 1; #if !defined(_WIN32) /*[*/ } else if (!strcmp(argv[i], "-tracedir")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -tracedir\n"); usage(); } tracedir = argv[i + 1]; i++; #endif /*]*/ } else if (!strcmp(argv[i], "-trnpre")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -trnpre\n"); usage(); } trnpre = argv[i + 1]; i++; } else if (!strcmp(argv[i], "-trnpost")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -trnpost\n"); usage(); } trnpost = argv[i + 1]; i++; } else if (!strcmp(argv[i], "-proxy")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -proxy\n"); usage(); } proxy_spec = argv[i + 1]; i++; } else if (!strcmp(argv[i], "--help")) { usage(); } else usage(); } if (argc != i + 1) usage(); /* Pick apart the hostname, LUs and port. */ #if defined(HAVE_LIBSSL) /*[*/ do { if (!strncasecmp(argv[i], "l:", 2)) { ssl_host = True; argv[i] += 2; any_prefixes = True; } else any_prefixes = False; } while (any_prefixes); #endif /*]*/ if ((at = strchr(argv[i], '@')) != NULL) { len = at - argv[i]; if (!len) usage(); lu = Malloc(len + 1); (void) strncpy(lu, argv[i], len); lu[len] = '\0'; host = at + 1; } else host = argv[i]; /* * Allow the hostname to be enclosed in '[' and ']' to quote any * IPv6 numeric-address ':' characters. */ if (host[0] == '[') { char *tmp; char *rbracket; rbracket = strchr(host+1, ']'); if (rbracket != NULL) { len = rbracket - (host+1); tmp = Malloc(len + 1); (void) strncpy(tmp, host+1, len); tmp[len] = '\0'; host = tmp; } if (*(rbracket + 1) == ':') { port = rbracket + 2; } } else { colon = strchr(host, ':'); if (colon != NULL) { char *tmp; len = colon - host; if (!len || !*(colon + 1)) usage(); port = colon + 1; tmp = Malloc(len + 1); (void) strncpy(tmp, host, len); tmp[len] = '\0'; host = tmp; } } #if defined(_WIN32) /*[*/ /* Set the printer code page. */ if (printercp == 0) printercp = GetACP(); #endif /*]*/ /* Set up the character set. */ if (charset_init(charset) < 0) pr3287_exit(1); /* Read in the transparent pre- and post- files. */ read_trn(trnpre, &trnpre_data, &trnpre_size); read_trn(trnpost, &trnpost_data, &trnpost_size); /* Try opening the trace file, if there is one. */ if (tracing) { char tracefile[256]; time_t clk; int i; #if defined(_WIN32) /*[*/ (void) sprintf(tracefile, "%sx3trc.%d.txt", appdata, getpid()); #else /*][*/ (void) sprintf(tracefile, "%s/x3trc.%d", tracedir, getpid()); #endif /*]*/ tracef = fopen(tracefile, "a"); if (tracef == NULL) { #if defined(_WIN32) /*[*/ (void) sprintf(tracefile, "x3trc.%d.txt", getpid()); tracef = fopen(tracefile, "a"); if (tracef == NULL) { #endif /*]*/ perror(tracefile); pr3287_exit(1); #if defined(_WIN32) /*[*/ } #endif /*]*/ } (void) SETLINEBUF(tracef); clk = time((time_t *)0); (void) fprintf(tracef, "Trace started %s", ctime(&clk)); (void) fprintf(tracef, " Version: %s\n %s\n", build, build_options()); #if !defined(_WIN32) /*[*/ (void) fprintf(tracef, " Locale codeset: %s\n", locale_codeset); #else /*][*/ (void) fprintf(tracef, " ANSI codepage: %d, " "printer codepage: %d\n", GetACP(), printercp); #endif /*]*/ (void) fprintf(tracef, " Host codepage: %d", (int)(cgcsgid & 0xffff)); #if defined(X3270_DBCS) /*[*/ if (dbcs) (void) fprintf(tracef, "+%d", (int)(cgcsgid_dbcs & 0xffff)); #endif /*]*/ (void) fprintf(tracef, "\n"); (void) fprintf(tracef, " Command:"); for (i = 0; i < argc; i++) { (void) fprintf(tracef, " %s", argv[i]); } (void) fprintf(tracef, "\n"); } #if !defined(_WIN32) /*[*/ /* Become a daemon. */ if (bdaemon != NOT_DAEMON) { switch (fork()) { case -1: perror("fork"); exit(1); break; case 0: /* Child: Break away from the TTY. */ if (setsid() < 0) exit(1); bdaemon = AM_DAEMON; break; default: /* Parent: We're all done. */ exit(0); break; } } #endif /*]*/ /* Handle signals. */ (void) signal(SIGTERM, fatal_signal); (void) signal(SIGINT, fatal_signal); #if !defined(_WIN32) /*[*/ (void) signal(SIGHUP, fatal_signal); (void) signal(SIGUSR1, flush_signal); (void) signal(SIGPIPE, SIG_IGN); #endif /*]*/ /* Set up the proxy. */ if (proxy_spec != CN) { proxy_type = proxy_setup(&proxy_host, &proxy_portname); if (proxy_type < 0) pr3287_exit(1); } /* * One-time initialization is now complete. * (Most) everything beyond this will now be retried, if the -reconnect * option is in effect. */ for (;;) { char errtxt[1024]; /* Resolve the host name. */ if (proxy_type > 0) { unsigned long lport; char *ptr; struct servent *sp; if (resolve_host_and_port(proxy_host, proxy_portname, 0, &proxy_port, &ha.sa, &ha_len, errtxt, sizeof(errtxt), NULL) < 0) { popup_an_error("%s/%s: %s", proxy_host, proxy_portname, errtxt); rc = 1; goto retry; } lport = strtoul(port, &ptr, 0); if (ptr == port || *ptr != '\0' || lport == 0L || lport & ~0xffff) { if (!(sp = getservbyname(port, "tcp"))) { popup_an_error("Unknown port number " "or service: %s", port); rc = 1; goto retry; } p = ntohs(sp->s_port); } else p = (unsigned short)lport; } else { if (resolve_host_and_port(host, port, 0, &p, &ha.sa, &ha_len, errtxt, sizeof(errtxt), NULL) < 0) { popup_an_error("%s/%s: %s", host, port, errtxt); rc = 1; goto retry; } } /* Connect to the host. */ s = socket(ha.sa.sa_family, SOCK_STREAM, 0); if (s < 0) { popup_a_sockerr("socket"); pr3287_exit(1); } if (connect(s, &ha.sa, ha_len) < 0) { popup_a_sockerr("%s", (proxy_type > 0)? proxy_host: host); rc = 1; goto retry; } if (proxy_type > 0) { /* Connect to the host through the proxy. */ if (verbose) { (void) fprintf(stderr, "Connected to proxy " "server %s, port %u\n", proxy_host, proxy_port); } if (proxy_negotiate(proxy_type, s, host, p) < 0) { rc = 1; goto retry; } } /* Say hello. */ if (verbose) { (void) fprintf(stderr, "Connected to %s, port %u%s\n", host, p, ssl_host? " via SSL": ""); if (assoc != NULL) (void) fprintf(stderr, "Associating with LU " "%s\n", assoc); else if (lu != NULL) (void) fprintf(stderr, "Connecting to LU %s\n", lu); #if !defined(_WIN32) /*[*/ (void) fprintf(stderr, "Command: %s\n", command); #else /*][*/ (void) fprintf(stderr, "Printer: %s\n", printer? printer: "(none)"); #endif /*]*/ } /* Negotiate. */ if (negotiate(s, lu, assoc) < 0) { rc = 1; goto retry; } /* Report sudden success. */ if (report_success) { errmsg("Connected to %s, port %u", host, p); report_success = 0; } /* Process what we're told to process. */ if (process(s) < 0) { rc = 1; if (verbose) (void) fprintf(stderr, "Disconnected (error).\n"); goto retry; } if (verbose) (void) fprintf(stderr, "Disconnected (eof).\n"); retry: /* Flush any pending data. */ (void) print_eoj(); /* Close the socket. */ if (s >= 0) { net_disconnect(); s = -1; } if (!reconnect) break; report_success = 1; /* Wait a while, to reduce thrash. */ if (rc) #if !defined(_WIN32) /*[*/ sleep(5); #else /*][*/ Sleep(5 * 1000000); #endif /*]*/ rc = 0; } pr3287_exit(rc); return rc; } /* Tracing function. */ void trace_str(const char *s) { if (tracef) fprintf(tracef, "%s", s); } /* Error pop-ups. */ void popup_an_error(const char *fmt, ...) { va_list args; va_start(args, fmt); (void) verrmsg(fmt, args); va_end(args); } void popup_an_errno(int err, const char *fmt, ...) { va_list args; va_start(args, fmt); if (err > 0) { char msgbuf[4096]; (void) vsprintf(msgbuf, fmt, args); errmsg("%s: %s", msgbuf, strerror(err)); } else { (void) verrmsg(fmt, args); } va_end(args); } const char * build_options(void) { return "Build options:" #if defined(X3270_DBCS) /*[*/ " --enable-dbcs" #else /*][*/ " --disable-dbcs" #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ " --with-ssl" #else /*][*/ " --without-ssl" #endif /*]*/ #if defined(USE_ICONV) /*[*/ " --with-iconv" #else /*][*/ " --without-iconv" #endif /*]*/ ; } ibm-3270-3.3.10ga4/pr3287/w3miscc.h0000644000175000017500000000372511254565704015664 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * w3misc.c * Miscellaneous Win32 functions. */ #if defined(_WIN32) /*[*/ #if defined(_WS2TCPIP_H) /*[*/ extern const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt); #endif /*]*/ extern int sockstart(void); extern const char *win32_strerror(int e); #if defined(_MSC_VER) /*[*/ extern int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg; extern int optind, opterr, optopt; #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/pr3287/arpa_telnet.h0000644000175000017500000001140211254565704016601 0ustar bastianbastian/* @(#)telnet.h 1.7 88/08/19 SMI; from UCB 5.1 5/30/85 */ /* * Copyright (c) 1983 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */ /* * Definitions for the TELNET protocol. */ #ifndef _arpa_telnet_h #define _arpa_telnet_h #define IAC 255 /* interpret as command: */ #define DONT 254 /* you are not to use option */ #define DO 253 /* please, you use option */ #define WONT 252 /* I won't use option */ #define WILL 251 /* I will use option */ #define SB 250 /* interpret as subnegotiation */ #define GA 249 /* you may reverse the line */ #define EL 248 /* erase the current line */ #define EC 247 /* erase the current character */ #define AYT 246 /* are you there */ #define AO 245 /* abort output--but let prog finish */ #define IP 244 /* interrupt process--permanently */ #define BREAK 243 /* break */ #define DM 242 /* data mark--for connect. cleaning */ #define NOP 241 /* nop */ #define SE 240 /* end sub negotiation */ #define EOR 239 /* end of record (transparent mode) */ #define SUSP 237 /* suspend process */ #define xEOF 236 /* end of file */ #define SYNCH 242 /* for telfunc calls */ #ifdef TELCMDS const char *telcmds[] = { "EOF", "SUSP", "ABORT", "EOR", "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0 }; #endif #define TELCMD_FIRST xEOF #define TELCMD_LAST IAC #define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \ (unsigned int)(x) >= TELCMD_FIRST) #define TELCMD(x) telcmds[(x)-TELCMD_FIRST] /* telnet options */ #define TELOPT_BINARY 0 /* 8-bit data path */ #define TELOPT_ECHO 1 /* echo */ #define TELOPT_RCP 2 /* prepare to reconnect */ #define TELOPT_SGA 3 /* suppress go ahead */ #define TELOPT_NAMS 4 /* approximate message size */ #define TELOPT_STATUS 5 /* give status */ #define TELOPT_TM 6 /* timing mark */ #define TELOPT_RCTE 7 /* remote controlled transmission and echo */ #define TELOPT_NAOL 8 /* negotiate about output line width */ #define TELOPT_NAOP 9 /* negotiate about output page size */ #define TELOPT_NAOCRD 10 /* negotiate about CR disposition */ #define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */ #define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */ #define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */ #define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */ #define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */ #define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */ #define TELOPT_XASCII 17 /* extended ascic character set */ #define TELOPT_LOGOUT 18 /* force logout */ #define TELOPT_BM 19 /* byte macro */ #define TELOPT_DET 20 /* data entry terminal */ #define TELOPT_SUPDUP 21 /* supdup protocol */ #define TELOPT_SUPDUPOUTPUT 22 /* supdup output */ #define TELOPT_SNDLOC 23 /* send location */ #define TELOPT_TTYPE 24 /* terminal type */ #define TELOPT_EOR 25 /* end or record */ #define TELOPT_TUID 26 /* TACACS user identification */ #define TELOPT_OUTMRK 27 /* output marking */ #define TELOPT_TTYLOC 28 /* terminal location number */ #define TELOPT_3270REGIME 29 /* 3270 regime */ #define TELOPT_X3PAD 30 /* X.3 PAD */ #define TELOPT_NAWS 31 /* window size */ #define TELOPT_TSPEED 32 /* terminal speed */ #define TELOPT_LFLOW 33 /* remote flow control */ #define TELOPT_LINEMODE 34 /* linemode option */ #define TELOPT_XDISPLOC 35 /* X Display Location */ #define TELOPT_OLD_ENVIRON 36 /* old - Environment variables */ #define TELOPT_AUTHENTICATION 37/* authenticate */ #define TELOPT_ENCRYPT 38 /* encryption option */ #define TELOPT_NEW_ENVIRON 39 /* new - environment variables */ #define TELOPT_TN3270E 40 /* extended 3270 regime */ #define TELOPT_EXOPL 255 /* extended-options-list */ #define NTELOPTS (1+TELOPT_TN3270E) #ifdef TELOPTS const char *telopts[NTELOPTS+1] = { "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME", "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP", "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS", "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO", "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT", "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD", "TACACS UID", "OUTPUT MARKING", "TTYLOC", "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW", "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION", "ENCRYPT", "NEW-ENVIRON", "TN3270E", 0 }; #define TELOPT_FIRST TELOPT_BINARY #define TELOPT_LAST TELOPT_TN3270E #define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST) #define TELOPT(x) telopts[(x)-TELOPT_FIRST] #endif /* sub-option qualifiers */ #define TELQUAL_IS 0 /* option is... */ #define TELQUAL_SEND 1 /* send option */ #endif /*!_arpa_telnet_h*/ ibm-3270-3.3.10ga4/pr3287/charset.c0000644000175000017500000000712211254565701015730 0ustar bastianbastian/* * Copyright (c) 2001-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * charset.c * Limited character set support. */ #include "globals.h" #include #include #include #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #if defined(__CYGWIN__) /*[*/ #include #undef _WIN32 #endif /*]*/ #include "3270ds.h" #include "charsetc.h" #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" unsigned long cgcsgid = 0x02b90025; unsigned long cgcsgid_dbcs = 0x02b90025; int dbcs = 0; char *encoding = CN; char *converters = CN; /* * Change character sets. * Returns 0 if the new character set was found, -1 otherwise. */ enum cs_result charset_init(char *csname) { #if !defined(_WIN32) /*[*/ char *codeset_name; #endif /*]*/ const char *host_codepage; const char *cgcsgid_str; const char *display_charsets; #if !defined(_WIN32) /*[*/ setlocale(LC_ALL, ""); codeset_name = nl_langinfo(CODESET); #if defined(__CYGWIN__) /*[*/ /* * Cygwin's locale support is quite limited. If the locale * indicates "US-ASCII", which appears to be the only supported * encoding, ignore it and use the Windows ANSI code page, which * observation indicates is what is actually supported. * * Hopefully at some point Cygwin will start returning something * meaningful here and this logic will stop triggering. * * If this (lack of) functionality persists, then it will probably * become necessary for pr3287 to support the wpr3287 '-printercp' * option, so that the printer code page can be configured. */ if (!strcmp(codeset_name, "US-ASCII")) { codeset_name = Malloc(64); sprintf(codeset_name, "CP%d", GetACP()); } #endif /*]*/ set_codeset(codeset_name); #endif /*]*/ if (set_uni(csname, &host_codepage, &cgcsgid_str, &display_charsets) < 0) return CS_NOTFOUND; cgcsgid = strtoul(cgcsgid_str, NULL, 0); if (!(cgcsgid & ~0xffff)) cgcsgid |= 0x02b90000; #if defined(X3270_DBCS) /*[*/ if (set_uni_dbcs(csname, &cgcsgid_str, &display_charsets) == 0) { dbcs = 1; cgcsgid_dbcs = strtoul(cgcsgid_str, NULL, 0); } #endif /*]*/ return CS_OKAY; } ibm-3270-3.3.10ga4/pr3287/version.txt0000755000175000017500000000004611261527637016366 0ustar bastianbastianversion="3.3.10ga4" adversion="3.3.4" ibm-3270-3.3.10ga4/pr3287/mkversion.sh0000755000175000017500000000372111254565701016510 0ustar bastianbastian#! /bin/sh # Copyright (c) 1995-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the names of Paul Mattes nor the names of his contributors # may be used to endorse or promote products derived from this software # without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Create version.o from version.txt #set -x # Ensure that 'date' emits 7-bit U.S. ASCII. LANG=C LC_ALL=C export LANG LC_ALL set -e . ./version.txt builddate=`date` sccsdate=`date +%Y/%m/%d` user=${LOGNAME-$USER} trap 'rm -f version.c' 0 1 2 15 cat <version.c const char *build = "${2-x3270} v$version $builddate $user"; const char *app_defaults_version = "$adversion"; static const char sccsid[] = "@(#)${2-x3270} v$version $sccsdate $user"; EOF ${1-cc} -c version.c ibm-3270-3.3.10ga4/pr3287/tables.c0000644000175000017500000002171311254565704015556 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * tables.c * Translation tables between the three character sets: * EBCDIC * ASCII (ISO Latin-1) * Character Generator ("3270" font) */ #include "globals.h" #include "tablesc.h" const unsigned char asc2cg0[256] = { /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*20*/ 0x10, 0x19, 0x13, 0x2c, 0x1a, 0x2e, 0x30, 0x12, /*28*/ 0x0d, 0x0c, 0xbf, 0x35, 0x33, 0x31, 0x32, 0x14, /*30*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /*38*/ 0x28, 0x29, 0x34, 0xbe, 0x09, 0x11, 0x08, 0x18, /*40*/ 0x2d, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*48*/ 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, /*50*/ 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, /*58*/ 0xb7, 0xb8, 0xb9, 0x0a, 0x15, 0x0b, 0x3a, 0x2f, /*60*/ 0x3d, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /*68*/ 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, /*70*/ 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*78*/ 0x97, 0x98, 0x99, 0x0f, 0x16, 0x0e, 0x3b, 0x00, /*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*a0*/ 0x01, 0x6e, 0x1b, 0x1c, 0x1f, 0x1d, 0x17, 0x2b, /*a8*/ 0x3c, 0xd0, 0x6a, 0x6c, 0x36, 0x07, 0xd1, 0x37, /*b0*/ 0x38, 0xd6, 0x68, 0x69, 0x3e, 0x54, 0x1e, 0x39, /*b8*/ 0x3f, 0x67, 0x6b, 0x6d, 0x4b, 0x4c, 0x4d, 0x6f, /*c0*/ 0x60, 0x7a, 0x75, 0x65, 0x70, 0xbc, 0xba, 0xbd, /*c8*/ 0x61, 0x7b, 0x76, 0x71, 0x62, 0x7c, 0x77, 0x72, /*d0*/ 0xd7, 0x7f, 0x63, 0x7d, 0x78, 0x66, 0x73, 0x5b, /*d8*/ 0xbb, 0x64, 0x7e, 0x79, 0x74, 0x48, 0xd9, 0x2a, /*e0*/ 0x40, 0x5a, 0x55, 0x45, 0x50, 0x9c, 0x9a, 0x4f, /*e8*/ 0x41, 0x4a, 0x56, 0x51, 0x42, 0x5c, 0x57, 0x52, /*f0*/ 0xf7, 0x5f, 0x43, 0x5d, 0x58, 0x46, 0x53, 0x9d, /*f8*/ 0x9b, 0x44, 0x5e, 0x59, 0x4e, 0x49, 0xf9, 0x47 }; const unsigned char ebc2cg0[256] = { /*00*/ 0x00, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*08*/ 0xdf, 0xdf, 0xdf, 0xdf, 0x02, 0x03, 0x00, 0x00, /*10*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0x04, 0xdf, 0xdf, /*18*/ 0xdf, 0x05, 0xdf, 0xdf, 0x9f, 0xdf, 0x9e, 0xdf, /*20*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*28*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*30*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*38*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*40*/ 0x10, 0x01, 0x55, 0x50, 0x40, 0x5a, 0x45, 0x9c, /*48*/ 0x4f, 0x5f, 0x1b, 0x32, 0x09, 0x0d, 0x35, 0x16, /*50*/ 0x30, 0x4a, 0x56, 0x51, 0x41, 0x5c, 0x57, 0x52, /*58*/ 0x42, 0x2a, 0x19, 0x1a, 0xbf, 0x0c, 0xbe, 0x36, /*60*/ 0x31, 0x14, 0x75, 0x70, 0x60, 0x7a, 0x65, 0xbc, /*68*/ 0xbd, 0x7f, 0x17, 0x33, 0x2e, 0x2f, 0x08, 0x18, /*70*/ 0x9b, 0x7b, 0x76, 0x71, 0x61, 0x7c, 0x77, 0x72, /*78*/ 0x62, 0x3d, 0x34, 0x2c, 0x2d, 0x12, 0x11, 0x13, /*80*/ 0xbb, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /*88*/ 0x87, 0x88, 0x6c, 0x6d, 0xf7, 0x49, 0xf9, 0xd6, /*90*/ 0x38, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /*98*/ 0x90, 0x91, 0x6a, 0x6b, 0x9a, 0x3f, 0xba, 0x1f, /*a0*/ 0x54, 0x3b, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /*a8*/ 0x98, 0x99, 0x6e, 0x6f, 0xd7, 0x48, 0xd9, 0xd1, /*b0*/ 0x3a, 0x1c, 0x1d, 0x39, 0xd0, 0x2b, 0x1e, 0x4b, /*b8*/ 0x4c, 0x4d, 0x0a, 0x0b, 0x37, 0x3c, 0x3e, 0x5b, /*c0*/ 0x0f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*c8*/ 0xa7, 0xa8, 0x07, 0x58, 0x53, 0x43, 0x5d, 0x46, /*d0*/ 0x0e, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /*d8*/ 0xb0, 0xb1, 0x67, 0x59, 0x4e, 0x44, 0x5e, 0x47, /*e0*/ 0x15, 0x9d, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /*e8*/ 0xb8, 0xb9, 0x68, 0x78, 0x73, 0x63, 0x7d, 0x66, /*f0*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /*f8*/ 0x28, 0x29, 0x69, 0x79, 0x74, 0x64, 0x7e, 0x06 }; const unsigned char ebc2asc0[256] = { /*00*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*08*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*10*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*18*/ 0x20, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x3b, 0x20, /*20*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*28*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*30*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*38*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*40*/ 0x20, 0x20, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, /*48*/ 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /*50*/ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, /*58*/ 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0xac, /*60*/ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, /*68*/ 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /*70*/ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, /*78*/ 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /*80*/ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /*88*/ 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /*90*/ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /*98*/ 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /*a0*/ 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /*a8*/ 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, /*b0*/ 0x5e, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, /*b8*/ 0xbd, 0xbe, 0x5b, 0x5d, 0xaf, 0xa8, 0xb4, 0xd7, /*c0*/ 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /*c8*/ 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /*d0*/ 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /*d8*/ 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, /*e0*/ 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /*e8*/ 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /*f8*/ 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x20 }; const unsigned char asc2ebc0[256] = { /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*20*/ 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /*28*/ 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /*30*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /*38*/ 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /*40*/ 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /*48*/ 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /*50*/ 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /*58*/ 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /*60*/ 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /*68*/ 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*70*/ 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*78*/ 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x00, /*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*a0*/ 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /*a8*/ 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, /*b0*/ 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /*b8*/ 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /*c0*/ 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /*c8*/ 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /*d0*/ 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /*d8*/ 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /*e0*/ 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /*e8*/ 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /*f0*/ 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /*f8*/ 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf }; ibm-3270-3.3.10ga4/pr3287/proxy.c0000644000175000017500000005361611254565704015474 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxy.c * This module implements various kinds of proxies. */ #include "globals.h" #if !defined(PR3287) /*[*/ #include "appres.h" #include "resources.h" #endif /*]*/ #if defined(_WIN32) /*[*/ #include #include #else /*][*/ #include #include #include #include #include #if defined(HAVE_SYS_SELECT_H) /*[*/ #include /* fd_set declaration */ #endif /*]*/ #endif /*]*/ #include "3270ds.h" #include "popupsc.h" #include "proxy.h" #include "proxyc.h" #include "resolverc.h" #include "telnetc.h" #include "trace_dsc.h" #include "w3miscc.h" #if defined(PR3287) /*[*/ extern char *proxy_spec; #endif /*]*/ #if defined(_WIN32) /*[*/ typedef unsigned long in_addr_t; #endif /*]*/ /* * Supported proxy types. * * At some point we will add SOCKS. */ enum { PT_NONE, PT_PASSTHRU, /* Sun telnet-passthru */ PT_HTTP, /* RFC 2817 CONNECT tunnel */ PT_TELNET, /* 'connect host port' proxy */ PT_SOCKS4, /* SOCKS version 4 (or 4A if necessary) */ PT_SOCKS4A, /* SOCKS version 4A (force remote name resolution) */ PT_SOCKS5, /* SOCKS version 5 (RFC 1928) */ PT_SOCKS5D, /* SOCKS version 5 (force remote name resolution) */ PT_MAX } proxytype_t; /* proxy type names -- keep these in sync with proxytype_t! */ char *type_name[] = { "unknown", "passthru", "HTTP", "TELNET", "SOCKS4", "SOCKS4A", "SOCKS5", "SOCKS5D" }; static int parse_host_port(char *s, char **phost, char **pport); static int proxy_passthru(int fd, char *host, unsigned short port); static int proxy_http(int fd, char *host, unsigned short port); static int proxy_telnet(int fd, char *host, unsigned short port); static int proxy_socks4(int fd, char *host, unsigned short port, int force_a); static int proxy_socks5(int fd, char *host, unsigned short port, int force_d); char * proxy_type_name(int type) { if (type < 1 || type >= PT_MAX) return "unknown"; else return type_name[type]; } /* * Resolve the type, hostname and port for a proxy. * Returns -1 for failure, 0 for no proxy, >0 (the proxy type) for success. */ int proxy_setup(char **phost, char **pport) { char *proxy; char *colon; int sl; #if defined(PR3287) /*[*/ proxy = proxy_spec; #else /*][*/ proxy = appres.proxy; #endif /*]*/ if (proxy == CN) return PT_NONE; if ((colon = strchr(proxy, ':')) == CN || (colon == proxy)) { popup_an_error("Invalid proxy syntax"); return -1; } sl = colon - proxy; if (sl == strlen(PROXY_PASSTHRU) && !strncasecmp(proxy, PROXY_PASSTHRU, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_PASSTHRU); return PT_PASSTHRU; } if (sl == strlen(PROXY_HTTP) && !strncasecmp(proxy, PROXY_HTTP, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_HTTP); return PT_HTTP; } if (sl == strlen(PROXY_TELNET) && !strncasecmp(proxy, PROXY_TELNET, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) { popup_an_error("Must specify port for telnet proxy"); return -1; } return PT_TELNET; } if (sl == strlen(PROXY_SOCKS4) && !strncasecmp(proxy, PROXY_SOCKS4, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS4); return PT_SOCKS4; } if (sl == strlen(PROXY_SOCKS4A) && !strncasecmp(proxy, PROXY_SOCKS4A, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS4A); return PT_SOCKS4A; } if (sl == strlen(PROXY_SOCKS5) && !strncasecmp(proxy, PROXY_SOCKS5, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS5); return PT_SOCKS5; } if (sl == strlen(PROXY_SOCKS5D) && !strncasecmp(proxy, PROXY_SOCKS5D, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS5D); return PT_SOCKS5D; } popup_an_error("Invalid proxy type '%.*s'", sl, proxy); return -1; } /* * Parse host[:port] from a string. * 'host' can be in square brackets to allow numeric IPv6 addresses. * Returns the host name and port name in heap memory. * Returns -1 for failure, 0 for success. */ static int parse_host_port(char *s, char **phost, char **pport) { char *colon; char *hstart; int hlen; if (*s == '[') { char *rbrack; /* Hostname in square brackets. */ hstart = s + 1; rbrack = strchr(s, ']'); if (rbrack == CN || rbrack == s + 1 || (*(rbrack + 1) != '\0' && *(rbrack + 1) != ':')) { popup_an_error("Invalid proxy hostname syntax"); return -1; } if (*(rbrack + 1) == ':') colon = rbrack + 1; else colon = NULL; hlen = rbrack - (s + 1); } else { hstart = s; colon = strchr(s, ':'); if (colon == s) { popup_an_error("Invalid proxy hostname syntax"); return -1; } if (colon == NULL) hlen = strlen(s); else hlen = colon - s; } /* Parse the port. */ if (colon == CN || !*(colon + 1)) *pport = CN; else *pport = NewString(colon + 1); /* Copy out the hostname. */ *phost = Malloc(hlen + 1); strncpy(*phost, hstart, hlen); (*phost)[hlen] = '\0'; return 0; } /* * Negotiate with the proxy server. * Returns -1 for failure, 0 for success. */ int proxy_negotiate(int type, int fd, char *host, unsigned short port) { switch (type) { case PT_NONE: return 0; case PT_PASSTHRU: return proxy_passthru(fd, host, port); case PT_HTTP: return proxy_http(fd, host, port); case PT_TELNET: return proxy_telnet(fd, host, port); case PT_SOCKS4: return proxy_socks4(fd, host, port, 0); case PT_SOCKS4A: return proxy_socks4(fd, host, port, 1); case PT_SOCKS5: return proxy_socks5(fd, host, port, 0); case PT_SOCKS5D: return proxy_socks5(fd, host, port, 1); default: return -1; } } /* Sun PASSTHRU proxy. */ static int proxy_passthru(int fd, char *host, unsigned short port) { char *buf; buf = Malloc(strlen(host) + 32); (void) sprintf(buf, "%s %u\r\n", host, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("Passthru Proxy: xmit '%.*s'", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("Passthru Proxy: send error"); Free(buf); return -1; } Free(buf); return 0; } /* HTTP (RFC 2817 CONNECT tunnel) proxy. */ static int proxy_http(int fd, char *host, unsigned short port) { char *buf; char *colon; char rbuf[1024]; int nr; int nread = 0; char *space; /* Send the CONNECT request. */ buf = Malloc(64 + strlen(host)); colon = strchr(host, ':'); sprintf(buf, "CONNECT %s%s%s:%u HTTP/1.1\r\n", (colon? "[": ""), host, (colon? "]": ""), port); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } sprintf(buf, "Host: %s%s%s:%u\r\n", (colon? "[": ""), host, (colon? "]": ""), port); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } strcpy(buf, "\r\n"); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit ''\n"); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } Free(buf); /* * Process the reply. * Read a byte at a time until \n or EOF. */ for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("HTTP Proxy: server timeout"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ return -1; } nr = recv(fd, &rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("HTTP Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ return -1; } if (nr == 0) { #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ popup_an_error("HTTP Proxy: unexpected EOF"); return -1; } if (rbuf[nread] == '\r') continue; if (rbuf[nread] == '\n') break; if ((size_t)++nread >= sizeof(rbuf)) { nread = sizeof(rbuf) - 1; break; } } rbuf[nread] = '\0'; #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)rbuf, nread); trace_dsn("HTTP Proxy: recv '%s'\n", rbuf); #endif /*]*/ if (strncmp(rbuf, "HTTP/", 5) || (space = strchr(rbuf, ' ')) == CN) { popup_an_error("HTTP Proxy: unrecognized reply"); return -1; } if (*(space + 1) != '2') { popup_an_error("HTTP Proxy: CONNECT failed:\n%s", rbuf); return -1; } return 0; } /* TELNET proxy. */ static int proxy_telnet(int fd, char *host, unsigned short port) { char *buf; buf = Malloc(strlen(host) + 32); (void) sprintf(buf, "connect %s %u\r\n", host, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("TELNET Proxy: xmit '%.*s'", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("TELNET Proxy: send error"); Free(buf); return -1; } Free(buf); return 0; } /* SOCKS version 4 proxy. */ static int proxy_socks4(int fd, char *host, unsigned short port, int force_a) { struct hostent *hp; struct in_addr ipaddr; int use_4a = 0; char *user; char *buf; char *s; char rbuf[8]; int nr; int nread = 0; unsigned short rport; /* Resolve the hostname to an IPv4 address. */ if (force_a) use_4a = 1; else { hp = gethostbyname(host); if (hp != NULL) { memcpy(&ipaddr, hp->h_addr, hp->h_length); } else { ipaddr.s_addr = inet_addr(host); if (ipaddr.s_addr == (in_addr_t)-1) use_4a = 1; } } /* Resolve the username. */ user = getenv("USER"); if (user == CN) user = "nobody"; /* Send the request to the server. */ if (use_4a) { buf = Malloc(32 + strlen(user) + strlen(host)); s = buf; *s++ = 0x04; *s++ = 0x01; SET16(s, port); SET32(s, 0x00000001); strcpy(s, user); s += strlen(user) + 1; strcpy(s, host); s += strlen(host) + 1; #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS4 Proxy: version 4 connect port %u " "address 0.0.0.1 user '%s' host '%s'\n", port, user, host); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { popup_a_sockerr("SOCKS4 Proxy: send error"); Free(buf); return -1; } Free(buf); } else { unsigned long u; buf = Malloc(32 + strlen(user)); s = buf; *s++ = 0x04; *s++ = 0x01; SET16(s, port); u = ntohl(ipaddr.s_addr); SET32(s, u); strcpy(s, user); s += strlen(user) + 1; #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS4 Proxy: xmit version 4 connect port %u " "address %s user '%s'\n", port, inet_ntoa(ipaddr), user); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { Free(buf); popup_a_sockerr("SOCKS4 Proxy: send error"); return -1; } Free(buf); } /* * Process the reply. * Read 8 bytes of response. */ for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS4 Proxy: server timeout"); return -1; } nr = recv(fd, &rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS4 Proxy: receive error"); return -1; } if (nr == 0) break; if ((size_t)++nread >= sizeof(rbuf)) break; } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)rbuf, nread); if (use_4a) { struct in_addr a; rport = (rbuf[2] << 8) | rbuf[3]; memcpy(&a, &rbuf[4], 4); trace_dsn("SOCKS4 Proxy: recv status 0x%02x port %u " "address %s\n", rbuf[1], rport, inet_ntoa(a)); } else trace_dsn("SOCKS4 Proxy: recv status 0x%02x\n", rbuf[1]); #endif /*]*/ switch (rbuf[1]) { case 0x5a: break; case 0x5b: popup_an_error("SOCKS4 Proxy: request rejected or failed"); return -1; case 0x5c: popup_an_error("SOCKS4 Proxy: client is not reachable"); return -1; case 0x5d: popup_an_error("SOCKS4 Proxy: userid error"); return -1; default: popup_an_error("SOCKS4 Proxy: unknown status 0x%02x", rbuf[1]); return -1; } return 0; } /* SOCKS version 5 (RFC 1928) proxy. */ static int proxy_socks5(int fd, char *host, unsigned short port, int force_d) { union { struct sockaddr sa; struct sockaddr_in sin; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sin6; #endif /*]*/ } ha; socklen_t ha_len = 0; int use_name = 0; char *buf; char *s; unsigned char rbuf[8]; int nr; int nread = 0; int n2read = 0; char nbuf[256]; int done = 0; #if defined(X3270_TRACE) /*[*/ char *atype_name[] = { "", "IPv4", "", "domainname", "IPv6" }; unsigned char *portp; unsigned short rport; #endif /*]*/ if (force_d) use_name = 1; else { char errmsg[1024]; int rv; /* Resolve the hostname. */ rv = resolve_host_and_port(host, CN, 0, &rport, &ha.sa, &ha_len, errmsg, sizeof(errmsg), NULL); if (rv == -2) use_name = 1; else if (rv < 0) { popup_an_error("SOCKS5 proxy: %s/%u: %s", host, port, errmsg); return -1; } } /* Send the authentication request to the server. */ strcpy((char *)rbuf, "\005\001\000"); #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: xmit version 5 nmethods 1 (no auth)\n"); trace_netdata('>', rbuf, 3); #endif /*]*/ if (send(fd, (char *)rbuf, 3, 0) < 0) { popup_a_sockerr("SOCKS5 Proxy: send error"); return -1; } /* * Wait for the server reply. * Read 2 bytes of response. */ nread = 0; for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS5 Proxy: server timeout"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } nr = recv(fd, (char *)&rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS5 Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } if (nr == 0) { popup_a_sockerr("SOCKS5 Proxy: unexpected EOF"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } if (++nread >= 2) break; } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', rbuf, nread); #endif /*]*/ if (rbuf[0] != 0x05 || (rbuf[1] != 0 && rbuf[1] != 0xff)) { popup_an_error("SOCKS5 Proxy: bad authentication response"); return -1; } #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: recv version %d method %d\n", rbuf[0], rbuf[1]); #endif /*]*/ if (rbuf[1] == 0xff) { popup_an_error("SOCKS5 Proxy: authentication failure"); return -1; } /* Send the request to the server. */ buf = Malloc(32 + strlen(host)); s = buf; *s++ = 0x05; /* protocol version 5 */ *s++ = 0x01; /* CONNECT */ *s++ = 0x00; /* reserved */ if (use_name) { *s++ = 0x03; /* domain name */ *s++ = strlen(host); strcpy(s, host); s += strlen(host); } else if (ha.sa.sa_family == AF_INET) { *s++ = 0x01; /* IPv4 */ memcpy(s, &ha.sin.sin_addr, 4); s += 4; strcpy(nbuf, inet_ntoa(ha.sin.sin_addr)); #if defined(AF_INET6) /*[*/ } else { *s++ = 0x04; /* IPv6 */ memcpy(s, &ha.sin6.sin6_addr, sizeof(struct in6_addr)); s += sizeof(struct in6_addr); (void) inet_ntop(AF_INET6, &ha.sin6.sin6_addr, nbuf, sizeof(nbuf)); #endif /*]*/ } SET16(s, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: xmit version 5 connect %s %s port %u\n", use_name? "domainname": ((ha.sa.sa_family == AF_INET)? "IPv4": "IPv6"), use_name? host: nbuf, port); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { popup_a_sockerr("SOCKS5 Proxy: send error"); Free(buf); return -1; } Free(buf); /* * Process the reply. * Only the first two bytes of the response are interesting; * skip the rest. */ nread = 0; done = 0; buf = NULL; while (!done) { fd_set rfds; struct timeval tv; unsigned char r; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS5 Proxy: server timeout"); return -1; } nr = recv(fd, (char *)&r, 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS5 Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } if (nr == 0) { popup_an_error("SOCKS5 Proxy: unexpected EOF"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } buf = Realloc(buf, nread + 1); buf[nread] = r; switch (nread++) { case 0: if (r != 0x05) { popup_an_error("SOCKS5 Proxy: incorrect " "reply version 0x%02x", r); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } break; case 1: #if defined(X3270_TRACE) /*[*/ if (r != 0x00) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ switch (r) { case 0x00: break; case 0x01: popup_an_error("SOCKS5 Proxy: server failure"); return -1; case 0x02: popup_an_error("SOCKS5 Proxy: connection not " "allowed"); return -1; case 0x03: popup_an_error("SOCKS5 Proxy: network " "unreachable"); return -1; case 0x04: popup_an_error("SOCKS5 Proxy: host " "unreachable"); return -1; case 0x05: popup_an_error("SOCKS5 Proxy: connection " "refused"); return -1; case 0x06: popup_an_error("SOCKS5 Proxy: ttl expired"); return -1; case 0x07: popup_an_error("SOCKS5 Proxy: command not " "supported"); return -1; case 0x08: popup_an_error("SOCKS5 Proxy: address type " "not supported"); return -1; default: popup_an_error("SOCKS5 Proxy: unknown server " "error 0x%02x", r); return -1; } break; case 2: break; case 3: switch (r) { case 0x01: n2read = 6; break; case 0x03: n2read = -1; break; #if defined(AF_INET6) /*[*/ case 0x04: n2read = sizeof(struct in6_addr) + 2; break; #endif /*]*/ default: popup_an_error("SOCKS5 Proxy: unknown server " "address type 0x%02x", r); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } break; default: if (n2read == -1) n2read = r + 2; else if (!--n2read) done = 1; break; } } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)buf, nread); switch (buf[3]) { case 0x01: /* IPv4 */ memcpy(&ha.sin.sin_addr, &buf[4], 4); strcpy(nbuf, inet_ntoa(ha.sin.sin_addr)); portp = (unsigned char *)&buf[4 + 4]; break; case 0x03: /* domainname */ strncpy(nbuf, &buf[5], buf[4]); nbuf[(unsigned char)buf[4]] = '\0'; portp = (unsigned char *)&buf[5 + (unsigned char)buf[4]]; break; #if defined(AF_INET6) /*[*/ case 0x04: /* IPv6 */ memcpy(&ha.sin6.sin6_addr, &buf[4], sizeof(struct in6_addr)); (void) inet_ntop(AF_INET6, &ha.sin6.sin6_addr, nbuf, sizeof(nbuf)); portp = (unsigned char *)&buf[4 + sizeof(struct in6_addr)]; break; #endif /*]*/ default: /* can't happen */ nbuf[0] = '\0'; portp = (unsigned char *)buf; break; } rport = (*portp << 8) + *(portp + 1); trace_dsn("SOCKS5 Proxy: recv version %d status 0x%02x address %s %s " "port %u\n", buf[0], buf[1], atype_name[(unsigned char)buf[3]], nbuf, rport); #endif /*]*/ Free(buf); return 0; } ibm-3270-3.3.10ga4/pr3287/popupsc.h0000644000175000017500000000015511254565701015774 0ustar bastianbastianextern void popup_an_error(const char *fmt, ...); extern void popup_an_errno(int err, const char *fmt, ...); ibm-3270-3.3.10ga4/pr3287/telnetc.h0000644000175000017500000000410611254565701015741 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * telnetc.h * Global declarations for telnet.c. */ /* Output buffer. */ extern unsigned char *obuf, *obptr; extern int negotiate(int s, char *lu, char *assoc); extern Boolean net_add_dummy_tn3270e(void); extern void net_add_eor(unsigned char *buf, int len); extern void net_disconnect(void); extern void net_exception(void); extern int net_input(int s); extern void net_output(void); extern int process(int s); extern void space3270out(int n); extern void trace_netdata(char direction, unsigned const char *buf, int len); extern void popup_a_sockerr(char *fmt, ...); ibm-3270-3.3.10ga4/pr3287/resolver.c0000644000175000017500000002254511254565704016151 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resolver.c * Hostname resolution. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #include #include #include #else /*][*/ #include #include #endif /*]*/ #include #include "resolverc.h" #include "w3miscc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #if defined(_WIN32) /*[*/ static int win32_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res); static void win32_freeaddrinfo(struct addrinfo *res); static int win32_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags); #undef getaddrinfo #define getaddrinfo win32_getaddrinfo #undef freeaddrinfo #define freeaddrinfo win32_freeaddrinfo #undef getnameinfo #define getnameinfo win32_getnameinfo #endif /*]*/ /* * Resolve a hostname and port. * Returns 0 for success, -1 for fatal error (name resolution impossible), * -2 for simple error (cannot resolve the name). */ int resolve_host_and_port(const char *host, char *portname, int ix, unsigned short *pport, struct sockaddr *sa, socklen_t *sa_len, char *errmsg, int em_len, int *lastp) { #if defined(_WIN32) /*[*/ OSVERSIONINFO info; Boolean has_getaddrinfo = False; /* Figure out if we should use gethostbyname() or getaddrinfo(). */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); exit(1); } has_getaddrinfo = (info.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS && info.dwMajorVersion >= 5 && info.dwMinorVersion >= 1); if (has_getaddrinfo) #endif /*]*/ { #if defined(AF_INET6) /*[*/ struct addrinfo hints, *res0, *res; int rc; /* * Use getaddrinfo() to resolve the hostname and port * together. */ (void) memset(&hints, '\0', sizeof(struct addrinfo)); hints.ai_flags = 0; hints.ai_family = PF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; rc = getaddrinfo(host, portname, &hints, &res0); if (rc != 0) { snprintf(errmsg, em_len, "%s/%s:\n%s", host, portname? portname: "(none)", gai_strerror(rc)); return -2; } res = res0; /* * Return the reqested element. * Hopefully the list will not change between calls. */ while (ix && res->ai_next != NULL) { res = res->ai_next; ix--; } if (res == NULL) { /* Ran off the end? The list must have changed. */ snprintf(errmsg, em_len, "%s/%s:\n%s", host, portname? portname: "(none)", gai_strerror(EAI_AGAIN)); freeaddrinfo(res); return -2; } switch (res->ai_family) { case AF_INET: *pport = ntohs(((struct sockaddr_in *) res->ai_addr)->sin_port); break; case AF_INET6: *pport = ntohs(((struct sockaddr_in6 *) res->ai_addr)->sin6_port); break; default: snprintf(errmsg, em_len, "%s:\nunknown family %d", host, res->ai_family); freeaddrinfo(res); return -1; } (void) memcpy(sa, res->ai_addr, res->ai_addrlen); *sa_len = res->ai_addrlen; if (lastp != NULL) *lastp = (res->ai_next == NULL); freeaddrinfo(res0); #endif /*]*/ } #if defined(_WIN32) /*[*/ else #endif /*]*/ #if defined(_WIN32) || !defined(AF_INET6) /*[*/ { struct hostent *hp; struct servent *sp; unsigned short port; unsigned long lport; char *ptr; struct sockaddr_in *sin = (struct sockaddr_in *)sa; /* Get the port number. */ lport = strtoul(portname, &ptr, 0); if (ptr == portname || *ptr != '\0' || lport == 0L || lport & ~0xffff) { if (!(sp = getservbyname(portname, "tcp"))) { snprintf(errmsg, em_len, "Unknown port number or service: %s", portname); return -1; } port = sp->s_port; } else port = htons((unsigned short)lport); *pport = ntohs(port); /* Use gethostbyname() to resolve the hostname. */ hp = gethostbyname(host); if (hp == (struct hostent *) 0) { sin->sin_family = AF_INET; sin->sin_addr.s_addr = inet_addr(host); if (sin->sin_addr.s_addr == (unsigned long)-1) { snprintf(errmsg, em_len, "Unknown host:\n%s", host); return -2; } if (lastp != NULL) *lastp = True; } else { int i; for (i = 0; i < ix; i++) { if (hp->h_addr_list[i] == NULL) { snprintf(errmsg, em_len, "Unknown host:\n%s", host); return -2; } } sin->sin_family = hp->h_addrtype; (void) memmove(&sin->sin_addr, hp->h_addr_list[i], hp->h_length); if (lastp != NULL) *lastp = (hp->h_addr_list[i + 1] == NULL); } sin->sin_port = port; *sa_len = sizeof(struct sockaddr_in); } #endif /*]*/ return 0; } /* * Resolve a sockaddr into a numeric hostname and port. * Returns 0 for success, -1 for failure. */ int numeric_host_and_port(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, char *errmsg, int em_len) { #if defined(_WIN32) /*[*/ OSVERSIONINFO info; Boolean has_getnameinfo = False; /* Figure out if we should use inet_ntoa() or getnameinfo(). */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); exit(1); } has_getnameinfo = (info.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS && info.dwMajorVersion >= 5 && info.dwMinorVersion >= 1); if (has_getnameinfo) #endif /*]*/ { #if defined(AF_INET6) /*[*/ int rc; /* Use getnameinfo(). */ rc = getnameinfo(sa, salen, host, hostlen, serv, servlen, NI_NUMERICHOST | NI_NUMERICSERV); if (rc != 0) { snprintf(errmsg, em_len, "%s", gai_strerror(rc)); return -1; } #endif /*]*/ } #if defined(_WIN32) /*[*/ else #endif /*]*/ #if defined(_WIN32) || !defined(AF_INET6) /*[*/ { struct sockaddr_in *sin = (struct sockaddr_in *)sa; /* Use inet_ntoa() and snprintf(). */ snprintf(host, hostlen, "%s", inet_ntoa(sin->sin_addr)); snprintf(serv, servlen, "%u", ntohs(sin->sin_port)); } #endif /*]*/ return 0; } #if defined(_WIN32) /*[*/ /* * Windows-specific versions of getaddrinfo(), freeaddrinfo() and * gai_strerror(). * The symbols are resolved from ws2_32.dll at run-time, instead of * by linking against ws2_32.lib, because they are not defined on all * versions of Windows. */ typedef int (__stdcall *gai_fn)(const char *, const char *, const struct addrinfo *, struct addrinfo **); typedef void (__stdcall *fai_fn)(struct addrinfo*); typedef int (__stdcall *gni_fn)(const struct sockaddr *, socklen_t, char *, size_t, char *, size_t, int); /* Resolve a symbol in ws2_32.dll. */ static FARPROC get_ws2_32(const char *symbol) { static HMODULE ws2_32_handle = NULL; FARPROC p; if (ws2_32_handle == NULL) { ws2_32_handle = LoadLibrary("ws2_32.dll"); if (ws2_32_handle == NULL) { fprintf(stderr, "Can't load ws2_32.dll: %s\n", win32_strerror(GetLastError())); exit(1); } } p = GetProcAddress(ws2_32_handle, symbol); if (p == NULL) { fprintf(stderr, "Can't resolve %s in ws2_32.dll: %s\n", symbol, win32_strerror(GetLastError())); exit(1); } return p; } static int win32_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res) { static FARPROC gai_p = NULL; if (gai_p == NULL) gai_p = get_ws2_32("getaddrinfo"); return ((gai_fn)gai_p)(node, service, hints, res); } static void win32_freeaddrinfo(struct addrinfo *res) { static FARPROC fai_p = NULL; if (fai_p == NULL) fai_p = get_ws2_32("freeaddrinfo"); ((fai_fn)fai_p)(res); } static int win32_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags) { static FARPROC gni_p = NULL; if (gni_p == NULL) gni_p = get_ws2_32("getnameinfo"); return ((gni_fn)gni_p)(sa, salen, host, hostlen, serv, servlen, flags); } #endif /*]*/ ibm-3270-3.3.10ga4/pr3287/configure.in0000644000175000017500000001155211254565701016446 0ustar bastianbastiandnl Copyright (c) 2000-2009, Paul Mattes. dnl All rights reserved. dnl dnl Redistribution and use in source and binary forms, with or without dnl modification, are permitted provided that the following conditions dnl are met: dnl * Redistributions of source code must retain the above copyright dnl notice, this list of conditions and the following disclaimer. dnl * Redistributions in binary form must reproduce the above copyright dnl notice, this list of conditions and the following disclaimer in the dnl documentation and/or other materials provided with the distribution. dnl * Neither the name of Paul Mattes nor his contributors may be used dnl to endorse or promote products derived from this software without dnl specific prior written permission. dnl dnl THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS dnl OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED dnl WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE dnl DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, dnl INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES dnl (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR dnl SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) dnl HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, dnl STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING dnl IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE dnl POSSIBILITY OF SUCH DAMAGE. dnl Process this file with autoconf to produce a configure script. AC_INIT(pr3287.c) AC_PREREQ(2.50) dnl Checks for programs. AC_PROG_INSTALL AC_PROG_CC dnl Figure out what sort of host this is. dnl If it's solaris, then pass the -D__EXTENSIONS__ flag to cc, so that dnl all of usual Unix functions are visible to strict ANSI compilers. AC_CANONICAL_HOST case "$host_os" in solaris2*) XANSI=-D__EXTENSIONS__ ;; darwin*) XPRECOMP=-no-cpp-precomp ;; linux*) XANSI="-D_BSD_SOURCE -D_POSIX_SOURCE -D_XOPEN_SOURCE" ;; *) XANSI="" ;; esac AC_SUBST(XANSI) AC_SUBST(XPRECOMP) # Set up the configuration directory. LIBX3270DIR='${sysconfdir}/x3270' AC_SUBST(LIBX3270DIR) dnl Check for libraries. dnl Note that the order here is important. The last libraries should appear dnl first, so that objects in them can be used by subsequent libraries. AC_SEARCH_LIBS(gethostbyname, nsl) AC_SEARCH_LIBS(socket, socket) dnl Check for SSL libraries. if test "$enable_ssl" != no then orig_LDFLAGS="$LDFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/pkg /usr /var /opt do lib_fail=0 if test -n "$dir" -a ! -d "$dir/ssl/lib" then lib_fail=1 continue fi if test -n "$any" then AC_MSG_NOTICE(retrying with -L$dir/ssl/lib) fi if test -n "$dir" then LDFLAGS="$orig_LDFLAGS -L$dir/ssl/lib" fi AC_CHECK_LIB(crypto, CRYPTO_malloc, , [lib_fail=1]) if test "$lib_fail" -eq 0 then AC_CHECK_LIB(ssl, SSL_new, , [lib_fail=1]) fi if test "$lib_fail" -eq 0 then break fi unset `echo ac_cv_lib_crypto_CRYPTO_malloc | $as_tr_sh` unset `echo ac_cv_lib_ssl_SSL_new | $as_tr_sh` LDFLAGS="$orig_LDFLAGS" any=1 done if test $lib_fail -eq 1 then AC_MSG_WARN(Disabling OpenSSL) enable_ssl="no" fi fi dnl Check for SSL header file. AC_ARG_WITH(ssl,[ --with-ssl=DIR specify OpenSSL install directory]) if test "$enable_ssl" != no then orig_CPPFLAGS="$CPPFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/local/ssl /usr/lib/ssl /usr/pkg/ssl /usr/ssl /var/ssl /opt/ssl do header_fail=0 if test -n "$dir" -a ! -d "$dir/include" then header_fail=1 continue fi if test -n "$any" then AC_MSG_NOTICE(retrying with -I$dir/include) fi if test -n "$dir" then CPPFLAGS="$orig_CPPFLAGS -I$dir/include" fi AC_CHECK_HEADERS(openssl/ssl.h, ,[header_fail=1]) if test "$header_fail" -eq 0 then break fi unset `echo ac_cv_header_openssl/ssl_h | $as_tr_sh` CPPFLAGS="$orig_CPPFLAGS" any=1 done if test $header_fail -eq 1 then AC_MSG_WARN(Disabling OpenSSL) enable_ssl="no" unset HAVE_LIBSSL fi fi dnl Check for ISO 10646 (wchar_t is Unicode) and --with-iconv AC_CHECK_DECLS(__STDC_ISO_10646__, unset unkw, unkw=1) AC_ARG_WITH(iconv,[ --with-iconv ignore __STDC_ISO_10646__ and use iconv() instead]) case "$with_iconv" in no|"") ;; yes|*) AC_DEFINE(USE_ICONV,1) unkw=1; ;; esac AC_SUBST(USE_ICONV) AC_CHECK_HEADERS(iconv.h) AC_SEARCH_LIBS(iconv, iconv, , AC_SEARCH_LIBS(libiconv, iconv, , if test "$unkw"; then AC_MSG_ERROR("No iconv library function"); fi)) AC_ARG_ENABLE(dbcs,[ --disable-dbcs leave out DBCS support]) case "$enable_dbcs" in no) ;; *) AC_DEFINE(X3270_DBCS,1) DBCS=-DX3270_DBCS=1 ;; esac AC_SUBST(DBCS) AC_ARG_ENABLE(ssl,[ --disable-ssl leave out OpenSSL support]) case "$enable_ssl" in no) ;; *) SSL=-DHAVE_LIBSSL ;; esac AC_SUBST(SSL) dnl Generate the Makefile. AC_OUTPUT(Makefile) ibm-3270-3.3.10ga4/pr3287/unicode_dbcsc.h0000644000175000017500000000345011254565704017073 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #if defined(X3270_DBCS) /*[*/ extern ucs4_t ebcdic_dbcs_to_unicode(ebc_t e, unsigned flags); extern ebc_t unicode_to_ebcdic_dbcs(ucs4_t u); extern int set_uni_dbcs(const char *csname, const char **codepage, const char **display_charsets); extern void charset_list_dbcs(void); #endif /*]*/ ibm-3270-3.3.10ga4/pr3287/trace_ds.c0000644000175000017500000000567011254565701016071 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * trace_ds.c * 3270 data stream tracing. * */ #include "globals.h" #include #include #include #include #include #include "3270ds.h" #include "ctlrc.h" #include "seec.h" #include "tablesc.h" #include "trace_dsc.h" /* Statics */ static int dscnt = 0; /* Globals */ FILE *tracef = (FILE *) 0; /* Data Stream trace print, handles line wraps */ static char *tdsbuf = CN; #define TDS_LEN 75 static void trace_ds_s(char *s) { int len = strlen(s); Boolean nl = False; if (tracef == NULL) return; if (s && s[len-1] == '\n') { len--; nl = True; } while (dscnt + len >= 75) { int plen = 75-dscnt; (void) fprintf(tracef, "%.*s ...\n... ", plen, s); dscnt = 4; s += plen; len -= plen; } if (len) { (void) fprintf(tracef, "%.*s", len, s); dscnt += len; } if (nl) { (void) fprintf(tracef, "\n"); dscnt = 0; } } void trace_ds(const char *fmt, ...) { va_list args; va_start(args, fmt); /* allocate buffer */ if (tdsbuf == CN) tdsbuf = Malloc(4096); /* print out remainder of message */ (void) vsprintf(tdsbuf, fmt, args); trace_ds_s(tdsbuf); va_end(args); } void trace_dsn(const char *fmt, ...) { va_list args; va_start(args, fmt); /* allocate buffer */ if (tdsbuf == CN) tdsbuf = Malloc(4096); /* print out remainder of message */ (void) vsprintf(tdsbuf, fmt, args); strcat(tdsbuf, "\n"); trace_ds_s(tdsbuf); va_end(args); } ibm-3270-3.3.10ga4/pr3287/ctlr.c0000644000175000017500000012363311254565701015251 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * ctlr.c * This module handles interpretation of the 3270 data stream and * maintenance of the 3270 device state. It was split out from * screen.c, which handles X operations. * */ #include #include #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include "globals.h" #include "3270ds.h" #include "charsetc.h" #include "ctlrc.h" #include "trace_dsc.h" #include "sfc.h" #include "tablesc.h" #include "unicodec.h" #if defined(_WIN32) /*[*/ #include "wsc.h" #include #endif /*]*/ #if !defined(_WIN32) /*[*/ extern char *command; #else /*][*/ extern char *printer; extern int printercp; #endif /*]*/ extern int blanklines; /* display blank lines even if empty (formatted LU3) */ extern int ignoreeoj; /* ignore PRINT-EOJ commands */ extern int crlf; /* expand newline to CR/LF */ extern int ffthru; /* pass through SCS FF orders */ extern int ffskip; /* skip FF orders at top of page */ extern char *trnpre_data; extern char *trnpost_data; extern size_t trnpre_size; extern size_t trnpost_size; #define CS_GE 0x04 /* hack */ #define WCC_LINE_LENGTH(c) ((c) & 0x30) #define WCC_132 0x00 #define WCC_40 0x10 #define WCC_64 0x20 #define WCC_80 0x30 #define MAX_LL 132 #define MAX_BUF (MAX_LL * MAX_LL) /* swag */ #define VISIBLE 0x01 /* visible field */ #define INVISIBLE 0x02 /* invisible field */ #define BUFSZ 4096 #define FCORDER_NOP 0x0001 /* dummy filler for DBCS right half */ static const char *ll_name[] = { "unformatted132", "formatted40", "formatted64", "formatted80" }; static int ll_len[] = { 132, 40, 64, 80 }; /* 3270 (formatted mode) data */ static unsigned char default_gr; static unsigned char default_cs; static int line_length = MAX_LL; static ucs4_t page_buf[MAX_BUF]; static int baddr = 0; static Boolean page_buf_initted = False; static Boolean any_3270_printable = False; static int any_3270_output = 0; #if !defined(_WIN32) /*[*/ static FILE *prfile = NULL; static int prpid = -1; #else /*][*/ static int ws_initted = 0; static int ws_needpre = 1; #endif /*]*/ static unsigned char wcc_line_length; static int ctlr_erase(void); static int dump_formatted(void); static int dump_unformatted(void); static int stash(unsigned char c); static int prflush(void); #define DECODE_BADDR(c1, c2) \ ((((c1) & 0xC0) == 0x00) ? \ (((c1) & 0x3F) << 8) | (c2) : \ (((c1) & 0x3F) << 6) | ((c2) & 0x3F)) /* SCS constants and data. */ #define MAX_MPP 132 #define MAX_MPL 108 static ucs4_t linebuf[MAX_MPP+1]; static struct { unsigned malloc_len; unsigned data_len; char *buf; } trnbuf[MAX_MPP+1]; static char htabs[MAX_MPP+1]; static char vtabs[MAX_MPL+1]; static int lm, tm, bm, mpp, mpl, scs_any; static int pp; static int line; static Boolean scs_initted = False; static Boolean any_scs_output = False; static int scs_leftover_len = 0; static int scs_leftover_buf[256]; static int scs_dbcs_subfield = 0; #if defined(X3270_DBCS) /*[*/ static unsigned char scs_dbcs_c1 = 0; #endif /*]*/ static unsigned scs_cs = 0; /* * Interpret an incoming 3270 command. */ enum pds process_ds(unsigned char *buf, int buflen) { if (!buflen) return PDS_OKAY_NO_OUTPUT; trace_ds("< "); switch (buf[0]) { /* 3270 command */ case CMD_EAU: /* erase all unprotected */ case SNA_CMD_EAU: trace_ds("EraseAllUnprotected\n"); if (ctlr_erase() < 0 || prflush() < 0) return PDS_FAILED; return PDS_OKAY_NO_OUTPUT; break; case CMD_EWA: /* erase/write alternate */ case SNA_CMD_EWA: trace_ds("EraseWriteAlternate"); if (ctlr_erase() < 0 || prflush() < 0) return PDS_FAILED; baddr = 0; ctlr_write(buf, buflen, True); return PDS_OKAY_NO_OUTPUT; break; case CMD_EW: /* erase/write */ case SNA_CMD_EW: trace_ds("EraseWrite"); if (ctlr_erase() < 0 || prflush() < 0) return PDS_FAILED; baddr = 0; ctlr_write(buf, buflen, True); return PDS_OKAY_NO_OUTPUT; break; case CMD_W: /* write */ case SNA_CMD_W: trace_ds("Write"); ctlr_write(buf, buflen, False); return PDS_OKAY_NO_OUTPUT; break; case CMD_RB: /* read buffer */ case SNA_CMD_RB: trace_ds("ReadBuffer\n"); return PDS_BAD_CMD; break; case CMD_RM: /* read modifed */ case SNA_CMD_RM: trace_ds("ReadModified\n"); return PDS_BAD_CMD; break; case CMD_RMA: /* read modifed all */ case SNA_CMD_RMA: trace_ds("ReadModifiedAll\n"); return PDS_BAD_CMD; break; case CMD_WSF: /* write structured field */ case SNA_CMD_WSF: trace_ds("WriteStructuredField"); return write_structured_field(buf, buflen); break; case CMD_NOP: /* no-op */ trace_ds("NoOp\n"); return PDS_OKAY_NO_OUTPUT; break; default: /* unknown 3270 command */ errmsg("Unknown 3270 Data Stream command: 0x%X", buf[0]); return PDS_BAD_CMD; } } /* * Process a 3270 Write command. */ void ctlr_write(unsigned char buf[], int buflen, Boolean erase) { register unsigned char *cp; Boolean last_cmd; Boolean last_zpt; Boolean wcc_keyboard_restore, wcc_sound_alarm; Boolean wcc_start_printer; Boolean ra_ge; int i; unsigned char na; int any_fa; unsigned char efa_fg; unsigned char efa_gr; unsigned char efa_cs; ucs4_t ra_xlate = 0; const char *paren = "("; int xbaddr; enum { NONE, ORDER, SBA, TEXT, NULLCH } previous = NONE; #define END_TEXT0 { if (previous == TEXT) trace_ds("'"); } #define END_TEXT(cmd) { END_TEXT0; trace_ds(" %s", cmd); } #define START_FIELD(fa) { \ ctlr_add(FA_IS_ZERO(fa)?INVISIBLE:VISIBLE, 0, default_gr); \ trace_ds(see_attr(fa)); \ } if (buflen < 2) return; if (!page_buf_initted) { (void) memset(page_buf, '\0', MAX_BUF * sizeof(ucs4_t)); page_buf_initted = True; baddr = 0; } default_gr = 0; default_cs = 0; if (WCC_RESET(buf[1])) { trace_ds("%sreset", paren); paren = ","; } wcc_line_length = WCC_LINE_LENGTH(buf[1]); if (wcc_line_length) { trace_ds("%s%s", paren, ll_name[wcc_line_length >> 4]); paren = ","; } else { trace_ds("%sunformatted", paren); paren = ","; } line_length = ll_len[wcc_line_length >> 4]; wcc_sound_alarm = WCC_SOUND_ALARM(buf[1]); if (wcc_sound_alarm) { trace_ds("%salarm", paren); paren = ","; } wcc_keyboard_restore = WCC_KEYBOARD_RESTORE(buf[1]); if (wcc_keyboard_restore) { trace_ds("%srestore", paren); paren = ","; } if (WCC_RESET_MDT(buf[1])) { trace_ds("%sresetMDT", paren); paren = ","; } wcc_start_printer = WCC_START_PRINTER(buf[1]); if (wcc_start_printer) { trace_ds("%sstartprinter", paren); paren = ","; } if (strcmp(paren, "(")) trace_ds(")"); last_cmd = True; last_zpt = False; for (cp = &buf[2]; cp < (buf + buflen); cp++) { switch (*cp) { case ORDER_SF: /* start field */ END_TEXT("StartField"); previous = ORDER; cp++; /* skip field attribute */ START_FIELD(*cp); last_cmd = True; last_zpt = False; break; case ORDER_SBA: /* set buffer address */ cp += 2; /* skip buffer address */ xbaddr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("SetBufferAddress"); if (wcc_line_length) trace_ds("(%d,%d)", 1+(xbaddr/line_length), 1+(xbaddr%line_length)); else trace_ds("(%d[%+d])", xbaddr, xbaddr-baddr); if (xbaddr >= MAX_BUF) { /* Error! */ baddr = 0; return; } if (wcc_line_length) { /* Formatted. */ baddr = xbaddr; } else if (xbaddr > baddr) { /* Unformatted. */ while (baddr < xbaddr) { ctlr_add(' ', default_cs, default_gr); } } previous = SBA; last_cmd = True; last_zpt = False; break; case ORDER_IC: /* insert cursor */ END_TEXT("InsertCursor"); previous = ORDER; last_cmd = True; last_zpt = False; break; case ORDER_PT: /* program tab */ END_TEXT("ProgramTab"); previous = ORDER; last_cmd = True; break; case ORDER_RA: /* repeat to address */ cp += 2; /* skip buffer address */ xbaddr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("RepeatToAddress"); if (wcc_line_length) trace_ds("(%d,%d)", 1+(xbaddr/line_length), 1+(xbaddr%line_length)); else trace_ds("(%d[%+d])", xbaddr, xbaddr-baddr); cp++; /* skip char to repeat */ if (*cp == ORDER_GE){ ra_ge = True; trace_ds("GraphicEscape"); cp++; } else ra_ge = False; trace_ds("'%s'", see_ebc(*cp)); previous = ORDER; if (xbaddr > MAX_BUF || xbaddr < baddr) { baddr = 0; return; } /* Translate '*cp' once. */ switch (*cp) { case FCORDER_FF: case FCORDER_CR: case FCORDER_NL: case FCORDER_EM: ra_xlate = *cp; break; default: if (*cp <= 0x3F) { ra_xlate = '\0'; } else { ra_xlate = ebcdic_to_unicode(*cp, ra_ge? CS_GE: CS_BASE, EUO_NONE); } break; } while (baddr < xbaddr) { ctlr_add(ra_xlate, ra_ge? CS_GE: default_cs, default_gr); } last_cmd = True; last_zpt = False; break; case ORDER_EUA: /* erase unprotected to address */ cp += 2; /* skip buffer address */ xbaddr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("EraseUnprotectedAll"); previous = ORDER; last_cmd = True; last_zpt = False; break; case ORDER_GE: /* graphic escape */ END_TEXT("GraphicEscape "); cp++; /* skip char */ previous = ORDER; if (*cp) trace_ds("'"); trace_ds(see_ebc(*cp)); if (*cp) trace_ds("'"); ctlr_add(ebcdic_to_unicode(*cp, CS_GE, EUO_NONE), CS_GE, default_gr); last_cmd = False; last_zpt = False; break; case ORDER_MF: /* modify field */ END_TEXT("ModifyField"); previous = ORDER; cp++; na = *cp; cp += na * 2; last_cmd = True; last_zpt = False; break; case ORDER_SFE: /* start field extended */ END_TEXT("StartFieldExtended"); previous = ORDER; cp++; /* skip order */ na = *cp; any_fa = 0; efa_fg = 0; efa_gr = 0; efa_cs = 0; for (i = 0; i < (int)na; i++) { cp++; if (*cp == XA_3270) { trace_ds(" 3270"); cp++; START_FIELD(*cp); any_fa++; } else if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; efa_fg = *cp; } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; efa_gr = *cp & 0x07; } else if (*cp == XA_CHARSET) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (*cp == 0xf1) efa_cs = 1; } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; } else { trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; } } if (!any_fa) START_FIELD(0); ctlr_add('\0', 0, default_gr); last_cmd = True; last_zpt = False; break; case ORDER_SA: /* set attribute */ END_TEXT("SetAttribtue"); previous = ORDER; cp++; if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_gr = *(cp + 1) & 0x07; } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_gr = 0; default_cs = 0; } else if (*cp == XA_CHARSET) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_cs = (*(cp + 1) == 0xf1) ? 1 : 0; } else trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; last_cmd = True; last_zpt = False; break; case FCORDER_FF: /* Form Feed */ END_TEXT("FF"); previous = ORDER; ctlr_add(FCORDER_FF, default_cs, default_gr); last_cmd = True; last_zpt = False; break; case FCORDER_CR: /* Carriage Return */ END_TEXT("CR"); previous = ORDER; ctlr_add(FCORDER_CR, default_cs, default_gr); last_cmd = True; last_zpt = False; break; case FCORDER_NL: /* New Line */ END_TEXT("NL"); previous = ORDER; ctlr_add(FCORDER_NL, default_cs, default_gr); last_cmd = True; last_zpt = False; break; case FCORDER_EM: /* End of Media */ END_TEXT("EM"); previous = ORDER; ctlr_add(FCORDER_EM, default_cs, default_gr); last_cmd = True; last_zpt = False; break; case FCORDER_DUP: /* Visible control characters */ case FCORDER_FM: END_TEXT(see_ebc(*cp)); previous = ORDER; ctlr_add(ebc2asc0[*cp], default_cs, default_gr); last_cmd = True; last_zpt = False; break; case FCORDER_SUB: /* misc format control orders */ case FCORDER_EO: END_TEXT(see_ebc(*cp)); previous = ORDER; ctlr_add('\0', default_cs, default_gr); last_cmd = True; last_zpt = False; break; case FCORDER_NULL: END_TEXT("NULL"); previous = NULLCH; ctlr_add('\0', default_cs, default_gr); last_cmd = False; last_zpt = False; break; default: /* enter character */ if (*cp <= 0x3F) { END_TEXT("ILLEGAL_ORDER"); previous = ORDER; ctlr_add('\0', default_cs, default_gr); trace_ds(see_ebc(*cp)); last_cmd = True; last_zpt = False; break; } if (previous != TEXT) trace_ds(" '"); previous = TEXT; trace_ds(see_ebc(*cp)); ctlr_add(ebcdic_to_unicode(*cp, default_cs, EUO_NONE), default_cs, default_gr); last_cmd = False; last_zpt = False; break; } } trace_ds("\n"); } #undef START_FIELDx #undef START_FIELD0 #undef START_FIELD #undef END_TEXT0 #undef END_TEXT /* * Process SCS (SNA Character Stream) data. */ /* Reinitialize the SCS virtual 3287. */ static void init_scs_horiz(void) { int i; mpp = MAX_MPP; lm = 1; htabs[1] = 1; for (i = 2; i <= MAX_MPP; i++) { htabs[i] = 0; } } static void init_scs_vert(void) { int i; mpl = 1; tm = 1; bm = mpl; vtabs[1] = 1; for (i = 0; i <= MAX_MPL; i++) { vtabs[i] = 0; } } static void init_scs(void) { int i; if (scs_initted) return; trace_ds("Initializing SCS virtual 3287.\n"); init_scs_horiz(); init_scs_vert(); pp = 1; line = 1; scs_any = 0; for (i = 0; i < MAX_MPP+1; i++) linebuf[i] = ' '; for (i = 0; i < MAX_MPP+1; i++) { if (trnbuf[i].malloc_len != 0) { Free(trnbuf[i].buf); trnbuf[i].buf = NULL; trnbuf[i].malloc_len = 0; } trnbuf[i].data_len = 0; } scs_leftover_len = 0; scs_dbcs_subfield = 0; #if defined(X3270_DBCS) /*[*/ scs_dbcs_c1 = 0; #endif /*]*/ scs_cs = 0; scs_initted = True; } #if defined(_WIN32) /*[*/ static int unicode_to_printer(ucs4_t u, char mb[], int mb_len) { int nc; wchar_t wuc = u; nc = WideCharToMultiByte(printercp, 0, &wuc, 1, mb, mb_len, NULL, NULL); if (nc > 0) mb[nc++] = '\0'; return nc; } #endif /*[*/ /* * Our philosophy for automatic newlines and formfeeds is that we generate them * only if the user attempts to put data outside the MPP/MPL-defined area. * Therefore, the user can put a byte on the last column of each line, and on * the last column of the last line of the page, and not need to worry about * suppressing their own NL or FF. */ /* * Dump and reset the current line. * This will always result in at least one byte of output to the printer (a * newline). The 'line' variable is always incremented, and may end up * pointing past the bottom margin. The 'pp' variable is set to the left * margin. */ static int dump_scs_line(Boolean reset_pp, Boolean always_nl) { int i; Boolean any_data = False; /* Find the last non-space character in the line buffer. */ for (i = mpp; i >= 1; i--) { if (trnbuf[i].data_len != 0 || linebuf[i] != ' ') break; } /* * If there is data there, print it with a trailing newline and * clear out the line buffer for next time. If not, just print the * newline. */ if (i >= 1) { int j; int n_data = 0; int n_trn = 0; int k; for (j = 1; j <= i; j++) { /* * Dump and transparent data that precedes this * character. */ if (trnbuf[j].data_len) { unsigned k; n_trn += trnbuf[j].data_len; for (k = 0; k < trnbuf[j].data_len; k++) { if (stash(trnbuf[j].buf[k]) < 0) return -1; } trnbuf[j].data_len = 0; } if (j < i || linebuf[j] != ' ') { char mb[16]; int len; if (linebuf[j] == FCORDER_NOP) continue; n_data++; any_data = True; scs_any = True; #if !defined(_WIN32) /*[*/ len = unicode_to_multibyte(linebuf[j], mb, sizeof(mb)); #else /*][*/ len = unicode_to_printer(linebuf[j], mb, sizeof(mb)); #endif /*]*/ if (len == 0) { mb[0] = ' '; len = 1; } else len--; for (k = 0; k < len; k++) if (stash(mb[k]) < 0) return -1; } } #if defined(DEBUG_FF) /*[*/ trace_ds(" [dumping %d+%dt]", n_data, n_trn); #endif /*]*/ for (k = 0; k < MAX_MPP+1; k++) linebuf[k] = ' '; } if (any_data || always_nl) { if (crlf) { if (stash('\r') < 0) return -1; } if (stash('\n') < 0) return -1; line++; } #if defined(DEBUG_FF) /*[*/ trace_ds(" [line=%d]", line); #endif /*]*/ if (reset_pp) pp = lm; any_scs_output = False; return 0; } /* SCS formfeed. */ static int scs_formfeed(Boolean explicit) { int nls = 0; /* * In ffskip mode, if it's an explicit formfeed, and we haven't * printed any non-transparent data, do nothing. */ if (ffskip && explicit && !scs_any) return 0; /* * In ffthru mode, pass through a \f, but only if it's explicit. */ if (ffthru) { if (explicit) { if (stash('\f') < 0) return -1; scs_any = 0; } line = 1; return 0; } if (explicit) scs_any = 0; if (mpl > 1) { /* Skip to the end of the physical page. */ while (line <= mpl) { if (crlf) { if (stash('\r') < 0) return -1; } if (stash('\n') < 0) return -1; nls++; line++; } line = 1; /* Skip the top margin. */ while (line < tm) { if (crlf) { if (stash('\r') < 0) return -1; } if (stash('\n') < 0) return -1; nls++; line++; } #if defined(DEBUG_FF) /*[*/ if (nls) trace_ds(" [formfeed %s %d]", explicit? "explicit": "implicit", nls); #endif /*]*/ } else { line = 1; } return 0; } /* * Add a printable character to the SCS virtual 3287. * If the line position is past the bottom margin, we will skip to the top of * the next page. If the character position is past the MPP, we will skip to * the left margin of the next line. */ static int add_scs(ucs4_t c) { /* * They're about to print something. * If the line is past the bottom margin, we need to skip to the * MPL, and then past the top margin. */ if (line > bm) { if (scs_formfeed(False) < 0) return -1; } /* * If this character would overflow the line, then dump the current * line and start over at the left margin. */ if (pp > mpp) { if (dump_scs_line(True, True) < 0) return -1; } /* * Store this character in the line buffer and advance the print * position. */ if (c != ' ') linebuf[pp++] = c; else pp++; any_scs_output = True; return 0; } /* * Add a string of transparent data to the SCS virtual 3287. * Transparent data lives between the 'counted' 3287 characters. Really. */ static void add_scs_trn(unsigned char *cp, int cnt) { int i; unsigned new_malloc_len; for (i = 0; i < cnt; i++) { trace_ds(" %02x", cp[i]); } new_malloc_len = trnbuf[pp].data_len + cnt; while (trnbuf[pp].malloc_len < new_malloc_len) { trnbuf[pp].malloc_len += BUFSZ; trnbuf[pp].buf = Realloc(trnbuf[pp].buf, trnbuf[pp].malloc_len); } (void) memcpy(trnbuf[pp].buf + trnbuf[pp].data_len, cp, cnt); trnbuf[pp].data_len += cnt; any_scs_output = True; } /* * Process a bufferful of SCS data. * * Note that unlike a 3270 Write command, even though the record is bounded * by an EOR, the SCS data are not guaranteed to be complete. * * Rather than have a full FSM for every byte of every SCS order, we resort * to the rather inefficient method of concatenating the previous, incomplete * record with a copy of the new record, processing it as a contiguous * buffer, and saving any incomplete order for next time. */ /* * 'Internal' SCS function, called by process_scs() below with the previous * leftover data plus the current buffer. * * If an incomplete order is detected, saves it in scs_leftover_buf for * next time. */ static enum pds process_scs_contig(unsigned char *buf, int buflen) { register unsigned char *cp; int i; int cnt; int tab; ucs4_t uc; enum { NONE, DATA, ORDER } last = NONE; # define END_TEXT(s) { \ if (last == DATA) \ trace_ds("'"); \ trace_ds(" " s); \ last = ORDER; \ } # define LEFTOVER { \ trace_ds(" [pending]"); \ scs_leftover_len = buflen - (cp - buf); \ (void) memcpy(scs_leftover_buf, cp, scs_leftover_len); \ cp = buf + buflen; \ } trace_ds("< "); init_scs(); for (cp = &buf[0]; cp < (buf + buflen); cp++) { switch (*cp) { case SCS_BS: /* back space */ END_TEXT("BS"); if (pp != 1) pp--; if (scs_dbcs_subfield && pp != 1) pp--; break; case SCS_CR: /* carriage return */ END_TEXT("CR"); pp = lm; break; case SCS_ENP: /* enable presentation */ END_TEXT("ENP"); /* No-op. */ break; case SCS_FF: /* form feed */ END_TEXT("FF"); /* Dump any pending data, and go to the next line. */ if (dump_scs_line(True, False) < 0) return PDS_FAILED; /* * If there is a max page length, skip to the next * page. */ if (scs_formfeed(True) < 0) return PDS_FAILED; break; case SCS_HT: /* horizontal tab */ END_TEXT("HT"); for (i = pp + 1; i <= mpp; i++) { if (htabs[i]) break; } if (i <= mpp) pp = i; else { if (add_scs(' ') < 0) return PDS_FAILED; } break; case SCS_INP: /* inhibit presentation */ END_TEXT("INP"); /* No-op. */ break; case SCS_IRS: /* inter-record separator */ END_TEXT("IRS"); case SCS_NL: /* new line */ if (*cp == SCS_NL) END_TEXT("NL"); if (dump_scs_line(True, True) < 0) return PDS_FAILED; break; case SCS_VT: /* vertical tab */ END_TEXT("VT"); for (i = line+1; i <= MAX_MPL; i++){ if (vtabs[i]) break; } if (i <= MAX_MPL) { if (dump_scs_line(False, True) < 0) return PDS_FAILED; while (line < i) { if (crlf) { if (stash('\r') < 0) return PDS_FAILED; } if (stash('\n') < 0) return PDS_FAILED; line++; } break; } else { /* fall through... */ } case SCS_VCS: /* vertical channel select */ if (*cp == SCS_VCS) END_TEXT("VCS"); case SCS_LF: /* line feed */ if (*cp == SCS_LF) END_TEXT("LF"); if (dump_scs_line(False, True) < 0) return PDS_FAILED; break; case SCS_GE: /* graphic escape */ END_TEXT("GE"); if ((cp + 1) >= buf + buflen) { LEFTOVER; break; } /* Skip over the order. */ cp++; /* No support, so all characters are spaces. */ trace_ds(" %02x", *cp); if (add_scs(' ') < 0) return PDS_FAILED; break; case SCS_SA: /* set attribute */ END_TEXT("SA"); if ((cp + 2) >= buf + buflen) { LEFTOVER; break; } switch (*(cp + 1)) { case SCS_SA_RESET: trace_ds(" Reset(%02x)", *(cp + 2)); #if defined(X3270_DBCS) /*[*/ scs_dbcs_subfield = 0; #endif /*]*/ scs_cs = 0; break; case SCS_SA_HIGHLIGHT: trace_ds(" Highlight(%02x)", *(cp + 2)); break; case SCS_SA_CS: trace_ds(" CharacterSet(%02x)", *(cp + 2)); if (scs_cs != *(cp + 2)) { #if defined(X3270_DBCS) /*[*/ if (scs_cs == 0xf8) scs_dbcs_subfield = 0; else if (*(cp + 2) == 0xf8) scs_dbcs_subfield = 1; #endif /*]*/ scs_cs = *(cp + 2); } break; case SCS_SA_GRID: trace_ds(" Grid(%02x)", *(cp + 2)); break; default: trace_ds(" Unknown(%02x %02x)", *(cp + 1), *(cp + 2)); break; } /* Skip it. */ cp += 2; break; case SCS_TRN: /* transparent */ END_TEXT("TRN"); /* Make sure a length byte is present. */ if ((cp + 1) >= buf + buflen) { LEFTOVER; break; } /* Skip over the order. */ cp++; /* * Next byte is the length of the transparent data, * not including the length byte itself. */ cnt = *cp; if (cp + cnt - 1 >= buf + buflen) { cp--; LEFTOVER; break; } trace_ds("(%d)", cnt); /* Copy out the data literally. */ add_scs_trn(cp+1, cnt); cp += cnt; #if defined(X3270_DBCS) /*[*/ scs_dbcs_subfield = 0; #endif /*]*/ break; case SCS_SET: /* set... */ /* Skip over the first byte of the order. */ if (cp + 2 >= buf + buflen || cp + *(cp + 2) - 1 >= buf + buflen) { END_TEXT("SET"); LEFTOVER; break; } switch (*++cp) { case SCS_SHF: /* set horizontal format */ END_TEXT("SHF"); /* Take defaults first. */ init_scs_horiz(); /* * The length is next. It includes the * length field itself. */ cnt = *++cp; trace_ds("(%d)", cnt); if (cnt < 2) break; /* no more data */ /* Skip over the length byte. */ if (!--cnt || cp + 1 >= buf + buflen) break; /* The MPP is next. */ mpp = *++cp; trace_ds(" mpp=%d", mpp); if (!mpp || mpp > MAX_MPP) mpp = MAX_MPP; /* Skip over the MPP. */ if (!--cnt || cp + 1 >= buf + buflen) break; /* The LM is next. */ lm = *++cp; trace_ds(" lm=%d", lm); if (lm < 1 || lm >= mpp) lm = 1; /* Skip over the LM. */ if (!--cnt || cp + 1 >= buf + buflen) break; /* Skip over the RM. */ cp++; trace_ds(" rm=%d", *cp); /* Next are the tab stops. */ while (--cnt && cp + 1 < buf + buflen) { tab = *++cp; trace_ds(" tab=%d", tab); if (tab >= 1 && tab <= mpp) htabs[tab] = 1; } break; case SCS_SLD: /* set line density */ END_TEXT("SLD"); /* * Skip over the second byte of the * order. */ cp++; /* * The length is next. It does not * include length field itself. */ if (cp >= buf + buflen) break; cnt = *cp; trace_ds("(%d)", cnt); if (cnt != 2) break; /* be gentle */ cnt--; trace_ds(" %02x", *(cp + 1)); cp += cnt; break; case SCS_SVF: /* set vertical format */ END_TEXT("SVF"); /* Take defaults first. */ init_scs_vert(); /* * Skip over the second byte of the * order. */ cp++; /* * The length is next. It includes the * length field itself. */ if (cp >= buf + buflen) break; cnt = *cp; trace_ds("(%d)", cnt); if (cnt < 2) break; /* no more data */ /* Skip over the length byte. */ cp++; cnt--; if (!cnt || cp >= buf + buflen) break; /* The MPL is next. */ mpl = *cp; trace_ds(" mpl=%d", mpl); if (!mpl || mpl > MAX_MPL) mpl = 1; if (cnt < 2) { bm = mpl; break; } /* Skip over the MPL. */ cp++; cnt--; if (!cnt || cp >= buf + buflen) break; /* The TM is next. */ tm = *cp; trace_ds(" tm=%d", tm); if (tm < 1 || tm >= mpl) tm = 1; if (cnt < 2) break; /* Skip over the TM. */ cp++; cnt--; if (!cnt || cp >= buf + buflen) break; /* The BM is next. */ bm = *cp; trace_ds(" bm=%d", bm); if (bm < tm || bm >= mpl) bm = mpl; if (cnt < 2) break; /* Skip over the BM. */ cp++; cnt--; /* Next are the tab stops. */ while (cnt > 1 && cp < buf + buflen) { tab = *cp; trace_ds(" tab=%d", tab); if (tab >= 1 && tab <= mpp) vtabs[tab] = 1; cp++; cnt--; } break; default: END_TEXT("SET(?"); trace_ds("%02x)", *cp); cp += *(cp + 1); break; } break; #if defined(X3270_DBCS) /*[*/ case SCS_SO: /* DBCS subfield start */ END_TEXT("SO"); scs_dbcs_subfield = 1; break; case SCS_SI: /* DBCS subfield end */ END_TEXT("SI"); scs_dbcs_subfield = 0; break; #endif /*]*/ default: /* * Stray control codes are spaces, all else gets * translated from EBCDIC to ASCII. */ if (*cp <= 0x3f) { END_TEXT("?"); trace_ds("%02x", *cp); if (add_scs(' ') < 0) return PDS_FAILED; break; } if (last == NONE) trace_ds("'"); else if (last == ORDER) trace_ds(" '"); #if defined(X3270_DBCS) /*[*/ if (scs_dbcs_subfield && dbcs) { if (scs_dbcs_subfield % 2) { scs_dbcs_c1 = *cp; } else { uc = ebcdic_to_unicode( (scs_dbcs_c1 << 8) | *cp, CS_BASE, EUO_NONE); if (uc == 0) { /* No translation. */ trace_ds("?DBCS(X'%02x%02x')", scs_dbcs_c1, *cp); if (add_scs(' ') < 0) return PDS_FAILED; if (add_scs(' ') < 0) return PDS_FAILED; } else { /* * Add the Unicode character * and a no-op to account for * the right-hand side. */ trace_ds("DBCS(X'%02x%02x')", scs_dbcs_c1, *cp); if (add_scs(uc) < 0) return PDS_FAILED; if (add_scs(FCORDER_NOP) < 0) return PDS_FAILED; } } scs_dbcs_subfield++; last = DATA; break; } #endif /*]*/ uc = ebcdic_to_unicode(*cp, CS_BASE, EUO_NONE); { char mb[16]; int len; len = unicode_to_multibyte(uc, mb, sizeof(mb)); trace_ds("%s", mb); } if (add_scs(uc) < 0) return PDS_FAILED; last = DATA; break; } } if (last == DATA) trace_ds("'"); trace_ds("\n"); if (prflush() < 0) return PDS_FAILED; return PDS_OKAY_NO_OUTPUT; } /* * 'External' SCS function. Handles leftover data from any previous, * incomplete SCS record. */ enum pds process_scs(unsigned char *buf, int buflen) { enum pds r; if (scs_leftover_len) { unsigned char *contig = Malloc(scs_leftover_len + buflen); int total_len; (void) memcpy(contig, scs_leftover_buf, scs_leftover_len); (void) memcpy(contig + scs_leftover_len, buf, buflen); total_len = scs_leftover_len + buflen; scs_leftover_len = 0; r = process_scs_contig(contig, total_len); Free(contig); } else { r = process_scs_contig(buf, buflen); } return r; } #if !defined(_WIN32) /*[*/ /* * SIGCHLD handler. Does nothing, but on systems that conform to the Single * Unix Specification, defining it ensures that the print command process will * become a zombie if it exits prematurely. */ static void sigchld_handler(int sig) { } /* * Special version of popen where the child ignores SIGINT. */ static FILE * popen_no_sigint(char *command) { int fds[2]; FILE *f; /* Create a pipe. */ if (pipe(fds) < 0) { return NULL; } /* Create a stdio stream from the write end. */ f = fdopen(fds[1], "w"); if (f == NULL) { close(fds[0]); close(fds[1]); return NULL; } /* Handle SIGCHLD signals. */ (void) signal(SIGCHLD, sigchld_handler); /* Fork a child process. */ switch ((prpid = fork())) { case 0: /* child */ fclose(f); dup2(fds[0], 0); signal(SIGINT, SIG_IGN); execl("/bin/sh", "sh", "-c", command, NULL); /* execv failed, return nonzero status */ exit(1); break; case -1: /* parent, error */ fclose(f); close(fds[0]); return NULL; default: /* parent, success */ close(fds[0]); break; } return f; } static int pclose_no_sigint(FILE *f) { int rc; int status; fclose(f); do { rc = waitpid(prpid, &status, 0); } while (rc < 0 && errno == EINTR); prpid = -1; if (rc < 0) return rc; else return status; } #endif /*]*/ /* * Send a character to the printer. */ static int stash(unsigned char c) { #if defined(_WIN32) /*[*/ if (!ws_initted) { if (ws_start(printer) < 0) { return -1; } ws_initted = 1; } if (ws_needpre) { if ((trnpre_data != NULL) && ws_write(trnpre_data, trnpre_size) < 0) { return -1; } ws_needpre = 0; } if (ws_putc((char)c)) { return -1; } #else /*][*/ if (prfile == NULL) { prfile = popen_no_sigint(command); if (prfile == NULL) { errmsg("%s: %s", command, strerror(errno)); return -1; } if ((trnpre_data != NULL) && fwrite(trnpre_data, 1, trnpre_size, prfile) != trnpre_size) { errmsg("Write error to '%s': %s", command, strerror(errno)); (void) pclose_no_sigint(prfile); prfile = NULL; return -1; } } if (fputc(c, prfile) == EOF) { errmsg("Write error to '%s': %s", command, strerror(errno)); (void) pclose_no_sigint(prfile); prfile = NULL; return -1; } #endif /*]*/ return 0; } /* * Flush the pipe going to the printer process, to try to flush out any * pending errors. */ static int prflush(void) { #if defined(_WIN32) /*[*/ if (ws_initted && ws_flush() < 0) return -1; #else /*][*/ if (prfile != NULL) { if (fflush(prfile) < 0) { errmsg("Flush error to '%s': %s", command, strerror(errno)); (void) pclose_no_sigint(prfile); prfile = NULL; return -1; } } #endif /*]*/ return 0; } /* * Change a character in the 3270 buffer. */ void ctlr_add(ucs4_t c, unsigned char cs, unsigned char gr) { /* Map control characters, according to the write mode. */ if (c < ' ') { if (wcc_line_length) { /* * When formatted, all control characters but FFs and * the funky VISIBLE/INVISIBLE controls are translated * to NULLs, so they don't display, and don't * contribute to empty lines. */ if (c != FCORDER_FF && c != VISIBLE && c != INVISIBLE) c = '\0'; } else { /* * Unformatted, all control characters but CR/NL/FF/EM * are displayed as spaces. */ if (c != FCORDER_CR && c != FCORDER_NL && c != FCORDER_FF && c != FCORDER_EM) c = ' '; } } /* Add the character. */ page_buf[baddr] = c; baddr = (baddr + 1) % MAX_BUF; any_3270_output = 1; } /* * Unformatted output function. Processes one character of output data. * * This function will buffer up to MAX_LL characters of output, until it is * passed a '\n' or '\f' character. * * It will process '\r' characters like a printer, i.e., it will not overwrite * a buffered non-space character with a space character. This is how * an output line can span multiple 3270 unformatted write commands. */ static int uoutput(char c) { static char buf[MAX_LL]; static int col = 0; static int maxcol = 0; int i; switch (c) { case '\r': col = 0; break; case '\n': for (i = 0; i < maxcol; i++) { if (stash(buf[i]) < 0) return -1; } if (crlf) { if (stash('\r') < 0) return -1; } if (stash(c) < 0) return -1; col = maxcol = 0; break; case '\f': if (any_3270_printable || !ffskip) { for (i = 0; i < maxcol; i++) { if (stash(buf[i]) < 0) return -1; } if (stash(c) < 0) return -1; } col = maxcol = 0; break; default: /* Don't overwrite with spaces. */ if (c == ' ') { if (col >= maxcol) buf[col++] = c; else col++; } else { buf[col++] = c; any_3270_printable = True; } if (col > maxcol) maxcol = col; break; } return 0; } /* * Dump an unformatted output buffer. * * The buffer is treated as a sequence of characters, with control characters * for new line, carriage return, form feed and end of media. * * By definition, the "print position" is 0 when this function begins and ends. */ static int dump_unformatted(void) { int i; int prcol = 0; ucs4_t c; int done = 0; char mb[16]; int len; int j; if (!any_3270_output) return 0; for (i = 0; i < MAX_BUF && !done; i++) { switch (c = page_buf[i]) { case '\0': break; case FCORDER_NOP: break; case FCORDER_CR: if (uoutput('\r') < 0) return -1; prcol = 0; break; case FCORDER_NL: if (uoutput('\n') < 0) return -1; prcol = 0; break; case FCORDER_FF: if (uoutput('\f') < 0) return -1; prcol = 0; break; case FCORDER_EM: if (prcol != 0) if (uoutput('\n') < 0) return -1; done = 1; break; default: /* printable */ #if !defined(_WIN32) /*[*/ len = unicode_to_multibyte(c, mb, sizeof(mb)); #else /*][*/ len = unicode_to_printer(c, mb, sizeof(mb)); #endif /*]*/ if (len == 0) { mb[0] = ' '; len = 1; } else { len--; } for (j = 0; j < len; j++) { if (uoutput(mb[j]) < 0) return -1; } /* Handle implied newlines. */ if (++prcol >= MAX_LL) { if (uoutput('\n') < 0) return -1; prcol = 0; } break; } } /* If the buffer didn't end with an EM, flush any pending line. */ if (!done) { if (uoutput('\n') < 0) return -1; } /* Clear out the buffer. */ (void) memset(page_buf, '\0', MAX_BUF * sizeof(ucs4_t)); /* Flush buffered data. */ #if defined(_WIN32) /*[*/ if (ws_initted) (void) ws_flush(); #else /*][*/ fflush(prfile); #endif /*]*/ any_3270_output = 0; return 0; } /* * Dump a formatted output buffer. * * The buffer is treated as a sequence of lines, with the length specified by * the write control character. * * Each line is terminated by a newline, with trailing spaces and nulls * suppressed. * Nulls are displayed as spaces, except when they constitute an entire line, * in which case the line is suppressed. * Formfeeds are passed through, and otherwise treated like nulls. */ static int dump_formatted(void) { int i; ucs4_t *cp = page_buf; int visible = 1; int newlines = 0; if (!any_3270_output) return 0; for (i = 0; i < MAX_LL; i++) { int blanks = 0; int any_data = 0; int j; for (j = 0; j < line_length && ((i * line_length) + j) < MAX_BUF; j++) { char c = *cp++; switch (c) { case VISIBLE: /* visible field */ visible = 1; blanks++; break; case INVISIBLE: /* invisible field */ visible = 0; blanks++; break; case '\f': while (newlines) { if (crlf) { if (stash('\r') < 0) return -1; } if (stash('\n') < 0) return -1; newlines--; } if (any_3270_printable || !ffskip) if (stash('\f') < 0) return -1; blanks++; break; case '\0': blanks++; break; case ' ': blanks++; any_data++; break; default: while (newlines) { if (crlf) { if (stash('\r') < 0) return -1; } if (stash('\n') < 0) return -1; newlines--; } while (blanks) { if (stash(' ') < 0) return -1; blanks--; } any_data++; if (!visible) { if (stash(' ') < 0) return -1; } else { char mb[16]; int len; int j; #if !defined(_WIN32) /*[*/ len = unicode_to_multibyte(c, mb, sizeof(mb)); #else /*][*/ len = unicode_to_printer(c, mb, sizeof(mb)); #endif /*]*/ if (len == 0) { mb[0] = ' '; len = 1; } else { len--; } for (j = 0; j < len; j++) { if (stash(mb[j]) < 0) return -1; } } if (visible) any_3270_printable = True; break; } } if (any_data || blanklines) newlines++; } (void) memset(page_buf, '\0', MAX_BUF * sizeof(ucs4_t)); #if defined(_WIN32) /*[*/ if (ws_initted) (void) ws_flush(); #else /*][*/ fflush(prfile); #endif /*]*/ any_3270_output = 0; return 0; } int print_eoj(void) { int rc = 0; /* Dump any pending 3270-mode output. */ if (wcc_line_length) { if (dump_formatted() < 0) rc = -1; } else { if (dump_unformatted() < 0) rc = -1; } /* Dump any pending SCS-mode output. */ if (any_scs_output) { if (dump_scs_line(True, False) < 0) rc = -1; } /* Close the stream to the print process. */ #if defined(_WIN32) /*[*/ if (ws_initted) { trace_ds("End of print job.\n"); if (trnpost_data != NULL && ws_write(trnpost_data, trnpost_size) < 0) { rc = -1; } if (ws_endjob() < 0) rc = -1; ws_needpre = 1; } #else /*]*/ if (prfile != NULL) { trace_ds("End of print job.\n"); if (trnpost_data != NULL && fwrite(trnpost_data, 1, trnpost_size, prfile) != trnpost_size) { rc = -1; } rc = pclose_no_sigint(prfile); if (rc) { if (rc < 0) errmsg("Close error on '%s': %s", command, strerror(errno)); else if (WIFEXITED(rc)) errmsg("'%s' exited with status %d", command, WEXITSTATUS(rc)); else if (WIFSIGNALED(rc)) errmsg("'%s' terminated by signal %d", command, WTERMSIG(rc)); else errmsg("'%s' returned status %d", command, rc); rc = -1; } prfile = NULL; } #endif /*]*/ /* Make sure the next 3270 job starts with clean conditions. */ page_buf_initted = 0; /* * Reset the FF suprpession logic. */ any_3270_printable = False; return rc; } void print_unbind(void) { /* * Make sure that the next SCS job starts with clean conditions. */ scs_initted = False; } static int ctlr_erase(void) { /* Dump whatever we've got so far. */ /* Dump any pending 3270-mode output. */ if (wcc_line_length) { if (dump_formatted() < 0) return -1; } else { if (dump_unformatted() < 0) return -1; } /* Dump any pending SCS-mode output. */ if (any_scs_output) { if (dump_scs_line(True, False) < 0) /* XXX: 1st True? */ return -1; } /* Make sure the buffer is clean. */ (void) memset(page_buf, '\0', MAX_BUF * sizeof(ucs4_t)); any_3270_output = 0; baddr = 0; return 0; } ibm-3270-3.3.10ga4/pr3287/globals.h0000644000175000017500000000563711254565701015740 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include /* Unix standard I/O library */ #include /* Other Unix library functions */ #if !defined(_MSC_VER) /*[*/ #include /* Unix system calls */ #endif /*]*/ #include /* Character classes */ #include /* String manipulations */ #include /* Basic system data types */ #if !defined(_MSC_VER) /*[*/ #include /* System time-related data types */ #endif /*]*/ #include /* C library time functions */ #include "localdefs.h" #if defined(_MSC_VER) /*[*/ #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /*]*/ #if defined(__STDC_ISO_10646__) && !defined(USE_ICONV) /*[*/ #define UNICODE_WCHAR 1 #endif /*]*/ #if !defined(_WIN32) && !defined(UNICODE_WCHAR) /*[*/ #undef USE_ICONV #define USE_ICONV 1 #include #endif /*]*/ #define CN (char *)NULL extern unsigned long cgcsgid; extern unsigned long cgcsgid_dbcs; extern int dbcs; #define Replace(var, value) { Free(var); var = (value); } typedef unsigned int ucs4_t; typedef unsigned short ebc_t; #define CS_MASK 0x03 /* mask for specific character sets */ #define CS_BASE 0x00 /* base character set (X'00') */ #define CS_APL 0x01 /* APL character set (X'01' or GE) */ #define CS_LINEDRAW 0x02 /* DEC line-drawing character set (ANSI) */ #define CS_DBCS 0x03 /* DBCS character set (X'F8') */ #define CS_GE 0x04 /* cs flag for Graphic Escape */ ibm-3270-3.3.10ga4/pr3287/unicodec.h0000644000175000017500000000640511254565704016103 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* EBCDIC-to-Unicode options */ #define EUO_NONE 0x00000000 /* no options */ #define EUO_BLANK_UNDEF 0x00000001 /* if undefined, return U+0020 */ #define EUO_UPRIV 0x00000002 /* translate FM/DUP/SUB/EO to UPRIV */ #define EUO_ASCII_BOX 0x00000004 /* use ASCII for box drawing */ extern ucs4_t ebcdic_to_unicode(ebc_t e, unsigned char cs, unsigned flags); extern ucs4_t ebcdic_base_to_unicode(ebc_t e, unsigned flags); extern ebc_t unicode_to_ebcdic(ucs4_t u); extern ebc_t unicode_to_ebcdic_ge(ucs4_t u, Boolean *ge); extern int set_uni(const char *csname, const char **host_codepage, const char **cgcsgid, const char **display_charsets); extern int linedraw_to_unicode(ebc_t e); extern int apl_to_unicode(ebc_t e, unsigned flags); #if !defined(_WIN32) && !defined(UNICODE_WCHAR) /*[*/ extern iconv_t i_u2mb; extern iconv_t i_mb2u; #endif /*]*/ extern int ebcdic_to_multibyte_x(ebc_t ebc, unsigned char cs, char mb[], int mb_len, unsigned flags, ucs4_t *uc); extern int ebcdic_to_multibyte(ebc_t ebc, char mb[], int mb_len); extern int ebcdic_to_multibyte_string(unsigned char *ebc, size_t ebc_len, char mb[], size_t mb_len); extern int mb_max_len(int len); enum me_fail { ME_NONE, /* no error */ ME_INVALID, /* invalid sequence */ ME_SHORT /* incomplete sequence */ }; extern ucs4_t multibyte_to_unicode(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp); extern int multibyte_to_unicode_string(char *mb, size_t mb_len, ucs4_t *ucs4, size_t u_len); extern ebc_t multibyte_to_ebcdic(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp); extern int multibyte_to_ebcdic_string(char *mb, size_t mb_len, unsigned char *ebc, size_t ebc_len, enum me_fail *errorp); extern int unicode_to_multibyte(ucs4_t ucs4, char *mb, size_t mb_len); ibm-3270-3.3.10ga4/pr3287/configure0000755000175000017500000046757511261530004016052 0ustar bastianbastian#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.63. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell bug-autoconf@gnu.org about your system, echo including any error possibly output before this message. echo This can help us improve future autoconf versions. echo Configuration will now proceed without shell functions. } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="pr3287.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='LTLIBOBJS LIBOBJS SSL DBCS USE_ICONV EGREP GREP CPP LIBX3270DIR XPRECOMP XANSI host_os host_vendor host_cpu host build_os build_vendor build_cpu build OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking with_ssl with_iconv enable_dbcs enable_ssl ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { $as_echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { $as_echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 { (exit 1); exit 1; }; } ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { $as_echo "$as_me: error: working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dbcs leave out DBCS support --disable-ssl leave out OpenSSL support Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-ssl=DIR specify OpenSSL install directory --with-iconv ignore __STDC_ISO_10646__ and use iconv() instead Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 $as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 $as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 $as_echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { $as_echo "$as_me:$LINENO: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } if test -z "$ac_file"; then $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 $as_echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi fi fi { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } { $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } { $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest$ac_cv_exeext { $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:$LINENO: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:$LINENO: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 $as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { $as_echo "$as_me:$LINENO: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 $as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 $as_echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:$LINENO: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 $as_echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac case "$host_os" in solaris2*) XANSI=-D__EXTENSIONS__ ;; darwin*) XPRECOMP=-no-cpp-precomp ;; linux*) XANSI="-D_BSD_SOURCE -D_POSIX_SOURCE -D_XOPEN_SOURCE" ;; *) XANSI="" ;; esac # Set up the configuration directory. LIBX3270DIR='${sysconfdir}/x3270' { $as_echo "$as_me:$LINENO: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if test "${ac_cv_search_gethostbyname+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF for ac_lib in '' nsl; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_gethostbyname=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_gethostbyname+set}" = set; then break fi done if test "${ac_cv_search_gethostbyname+set}" = set; then : else ac_cv_search_gethostbyname=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_gethostbyname" >&5 $as_echo "$ac_cv_search_gethostbyname" >&6; } ac_res=$ac_cv_search_gethostbyname if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:$LINENO: checking for library containing socket" >&5 $as_echo_n "checking for library containing socket... " >&6; } if test "${ac_cv_search_socket+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char socket (); int main () { return socket (); ; return 0; } _ACEOF for ac_lib in '' socket; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_socket=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_socket+set}" = set; then break fi done if test "${ac_cv_search_socket+set}" = set; then : else ac_cv_search_socket=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_socket" >&5 $as_echo "$ac_cv_search_socket" >&6; } ac_res=$ac_cv_search_socket if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi if test "$enable_ssl" != no then orig_LDFLAGS="$LDFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/pkg /usr /var /opt do lib_fail=0 if test -n "$dir" -a ! -d "$dir/ssl/lib" then lib_fail=1 continue fi if test -n "$any" then { $as_echo "$as_me:$LINENO: retrying with -L$dir/ssl/lib" >&5 $as_echo "$as_me: retrying with -L$dir/ssl/lib" >&6;} fi if test -n "$dir" then LDFLAGS="$orig_LDFLAGS -L$dir/ssl/lib" fi { $as_echo "$as_me:$LINENO: checking for CRYPTO_malloc in -lcrypto" >&5 $as_echo_n "checking for CRYPTO_malloc in -lcrypto... " >&6; } if test "${ac_cv_lib_crypto_CRYPTO_malloc+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char CRYPTO_malloc (); int main () { return CRYPTO_malloc (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_crypto_CRYPTO_malloc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_crypto_CRYPTO_malloc=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_CRYPTO_malloc" >&5 $as_echo "$ac_cv_lib_crypto_CRYPTO_malloc" >&6; } if test "x$ac_cv_lib_crypto_CRYPTO_malloc" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBCRYPTO 1 _ACEOF LIBS="-lcrypto $LIBS" else lib_fail=1 fi if test "$lib_fail" -eq 0 then { $as_echo "$as_me:$LINENO: checking for SSL_new in -lssl" >&5 $as_echo_n "checking for SSL_new in -lssl... " >&6; } if test "${ac_cv_lib_ssl_SSL_new+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lssl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char SSL_new (); int main () { return SSL_new (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_ssl_SSL_new=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ssl_SSL_new=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_new" >&5 $as_echo "$ac_cv_lib_ssl_SSL_new" >&6; } if test "x$ac_cv_lib_ssl_SSL_new" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBSSL 1 _ACEOF LIBS="-lssl $LIBS" else lib_fail=1 fi fi if test "$lib_fail" -eq 0 then break fi unset `echo ac_cv_lib_crypto_CRYPTO_malloc | $as_tr_sh` unset `echo ac_cv_lib_ssl_SSL_new | $as_tr_sh` LDFLAGS="$orig_LDFLAGS" any=1 done if test $lib_fail -eq 1 then { $as_echo "$as_me:$LINENO: WARNING: Disabling OpenSSL" >&5 $as_echo "$as_me: WARNING: Disabling OpenSSL" >&2;} enable_ssl="no" fi fi # Check whether --with-ssl was given. if test "${with_ssl+set}" = set; then withval=$with_ssl; fi if test "$enable_ssl" != no then orig_CPPFLAGS="$CPPFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/local/ssl /usr/lib/ssl /usr/pkg/ssl /usr/ssl /var/ssl /opt/ssl do header_fail=0 if test -n "$dir" -a ! -d "$dir/include" then header_fail=1 continue fi if test -n "$any" then { $as_echo "$as_me:$LINENO: retrying with -I$dir/include" >&5 $as_echo "$as_me: retrying with -I$dir/include" >&6;} fi if test -n "$dir" then CPPFLAGS="$orig_CPPFLAGS -I$dir/include" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:$LINENO: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 $as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:$LINENO: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in openssl/ssl.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else header_fail=1 fi done if test "$header_fail" -eq 0 then break fi unset `echo ac_cv_header_openssl/ssl_h | $as_tr_sh` CPPFLAGS="$orig_CPPFLAGS" any=1 done if test $header_fail -eq 1 then { $as_echo "$as_me:$LINENO: WARNING: Disabling OpenSSL" >&5 $as_echo "$as_me: WARNING: Disabling OpenSSL" >&2;} enable_ssl="no" unset HAVE_LIBSSL fi fi { $as_echo "$as_me:$LINENO: checking whether __STDC_ISO_10646__ is declared" >&5 $as_echo_n "checking whether __STDC_ISO_10646__ is declared... " >&6; } if test "${ac_cv_have_decl___STDC_ISO_10646__+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { #ifndef __STDC_ISO_10646__ (void) __STDC_ISO_10646__; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl___STDC_ISO_10646__=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl___STDC_ISO_10646__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl___STDC_ISO_10646__" >&5 $as_echo "$ac_cv_have_decl___STDC_ISO_10646__" >&6; } if test "x$ac_cv_have_decl___STDC_ISO_10646__" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL___STDC_ISO_10646__ 1 _ACEOF unset unkw else cat >>confdefs.h <<_ACEOF #define HAVE_DECL___STDC_ISO_10646__ 0 _ACEOF unkw=1 fi # Check whether --with-iconv was given. if test "${with_iconv+set}" = set; then withval=$with_iconv; fi case "$with_iconv" in no|"") ;; yes|*) cat >>confdefs.h <<\_ACEOF #define USE_ICONV 1 _ACEOF unkw=1; ;; esac for ac_header in iconv.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking for library containing iconv" >&5 $as_echo_n "checking for library containing iconv... " >&6; } if test "${ac_cv_search_iconv+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char iconv (); int main () { return iconv (); ; return 0; } _ACEOF for ac_lib in '' iconv; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_iconv=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_iconv+set}" = set; then break fi done if test "${ac_cv_search_iconv+set}" = set; then : else ac_cv_search_iconv=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_iconv" >&5 $as_echo "$ac_cv_search_iconv" >&6; } ac_res=$ac_cv_search_iconv if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else { $as_echo "$as_me:$LINENO: checking for library containing libiconv" >&5 $as_echo_n "checking for library containing libiconv... " >&6; } if test "${ac_cv_search_libiconv+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char libiconv (); int main () { return libiconv (); ; return 0; } _ACEOF for ac_lib in '' iconv; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_libiconv=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_libiconv+set}" = set; then break fi done if test "${ac_cv_search_libiconv+set}" = set; then : else ac_cv_search_libiconv=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_libiconv" >&5 $as_echo "$ac_cv_search_libiconv" >&6; } ac_res=$ac_cv_search_libiconv if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else if test "$unkw"; then { { $as_echo "$as_me:$LINENO: error: \"No iconv library function\"" >&5 $as_echo "$as_me: error: \"No iconv library function\"" >&2;} { (exit 1); exit 1; }; }; fi fi fi # Check whether --enable-dbcs was given. if test "${enable_dbcs+set}" = set; then enableval=$enable_dbcs; fi case "$enable_dbcs" in no) ;; *) cat >>confdefs.h <<\_ACEOF #define X3270_DBCS 1 _ACEOF DBCS=-DX3270_DBCS=1 ;; esac # Check whether --enable-ssl was given. if test "${enable_ssl+set}" = set; then enableval=$enable_ssl; fi case "$enable_ssl" in no) ;; *) SSL=-DHAVE_LIBSSL ;; esac ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { $as_echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 $as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=' ' ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\).*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\).*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 $as_echo "$as_me: error: could not setup config files machinery" >&2;} { (exit 1); exit 1; }; } _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ac_file_inputs="$ac_file_inputs '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 $as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi ibm-3270-3.3.10ga4/pr3287/charsetc.h0000644000175000017500000000406211254565704016103 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * charsetc.h * Global declarations for charset.c */ extern Boolean charset_changed; extern unsigned long cgcsgid; #if defined(X3270_DBCS) /*[*/ extern unsigned long cgcsgid_dbcs; #endif /*]*/ extern char *default_display_charset; enum cs_result { CS_OKAY, CS_NOTFOUND, CS_BAD, CS_PREREQ, CS_ILLEGAL }; extern enum cs_result charset_init(char *csname); extern char *get_charset_name(void); extern char *get_host_codepage(void); extern void charset_list(void); ibm-3270-3.3.10ga4/pr3287/ctlrc.h0000644000175000017500000000423211254565701015412 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ctlrc.h * Global declarations for ctlr.c. */ enum pds { PDS_OKAY_NO_OUTPUT = 0, /* command accepted, produced no output */ PDS_OKAY_OUTPUT = 1, /* command accepted, produced output */ PDS_BAD_CMD = -1, /* command rejected */ PDS_BAD_ADDR = -2, /* command contained a bad address */ PDS_FAILED = -3 /* command failed */ }; extern void ctlr_add(ucs4_t c, unsigned char cs, unsigned char gr); extern void ctlr_write(unsigned char buf[], int buflen, Boolean erase); extern int print_eoj(void); extern void print_unbind(void); extern enum pds process_ds(unsigned char *buf, int buflen); extern enum pds process_scs(unsigned char *buf, int buflen); ibm-3270-3.3.10ga4/pr3287/sfc.h0000644000175000017500000000320211254565704015055 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * sfc.h * Global declarations for sf.c. */ extern enum pds write_structured_field(unsigned char buf[], int buflen); ibm-3270-3.3.10ga4/pr3287/config.guess0000755000175000017500000012753411254565704016470 0ustar bastianbastian#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ibm-3270-3.3.10ga4/pr3287/utf8c.h0000644000175000017500000000344711254565704015346 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utf8c.h * 3270 Terminal Emulator * UTF-8 conversions */ extern char *locale_codeset; extern Boolean is_utf8; extern void set_codeset(char *codeset_name); extern int unicode_to_utf8(ucs4_t ucs4, char *utf8); extern int utf8_to_unicode(const char *utf8, int len, ucs4_t *ucs4); ibm-3270-3.3.10ga4/pr3287/seec.h0000644000175000017500000000430011254565704015221 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * seec.h * Declarations for see.c * */ #if defined(X3270_TRACE) /*[*/ extern const char *see_aid(unsigned char code); extern const char *see_attr(unsigned char fa); extern const char *see_color(unsigned char setting); extern const char *see_ebc(unsigned char ch); extern const char *see_efa(unsigned char efa, unsigned char value); extern const char *see_efa_only(unsigned char efa); extern const char *see_qcode(unsigned char id); extern const char *unknown(unsigned char value); #else /*][*/ #define see_aid 0 && #define see_attr 0 && #define see_color 0 && #define see_ebc 0 && #define see_efa 0 && #define see_efa_only 0 && #define see_qcode 0 && #define unknown 0 && #endif /*]*/ ibm-3270-3.3.10ga4/pr3287/unicode_dbcs.c0000644000175000017500000711141411254565704016732 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * unicode.c * A Windows console-based 3270 Terminal Emulator * DBCS EBCDIC/Unicode translation functions */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include "3270ds.h" #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" /* * DBCS EBCDIC-to-Unicode translation tables. */ #if defined(X3270_DBCS) /*[*/ typedef struct { char *name; const char *codepage; const char *display_charset; const char *u2ebc[512]; /* Unicode to EBCDIC vectors */ const char *ebc2u[512]; /* EBCDIC to Unicode vectors */ } uni16_t; static uni16_t uni16[] = { { "cp930", "0x080b012c" /* 2059, 300 */, "jisx0208.1983-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-300_P110-1997 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x6a\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x43\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x00\x00\x44\x4a\x00\x00\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x43\x77\x43\x78\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x73\x00\x00\x44\xee\x44\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6e\x00\x00\x43\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x43\x70\x00\x00\x43\x4e\x43\x71\x00\x00\x00\x00\x00\x00\x43\x4f\x43\x64\x00\x00\x00\x00\x43\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5f\x00\x00\x00\x00\x43\x61\x44\x4d\x00\x00\x43\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6c\x43\x6d\x43\x6b\x43\x6a\x43\x62\x43\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x43\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x43\x5d\x43\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x43\x68\x43\x69\x00\x00\x00\x00\x43\x66\x43\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ "\x43\x7c\x43\xb7\x43\x7d\x43\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7e\x00\x00\x00\x00\x43\xb9\x43\x7f\x00\x00\x00\x00\x43\xe1\x43\xb1\x00\x00\x00\x00\x43\xe3\x43\xb0\x00\x00\x00\x00\x43\xe2\x43\xb2\x43\xee\x00\x00\x00\x00\x43\xe9\x00\x00\x00\x00\x43\xe4\x43\xb4\x43\xf0\x00\x00\x00\x00\x43\xeb\x00\x00\x00\x00\x43\xe6\x43\xb3\x00\x00\x00\x00\x43\xea\x43\xef\x00\x00\x00\x00\x43\xe5\x43\xb5\x00\x00\x00\x00\x43\xec\x43\xf1\x00\x00\x00\x00\x43\xe7\x43\xb6\x00\x00\x00\x00\x43\xed\x00\x00\x00\x00\x43\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x76\x00\x00\x00\x00\x43\x75\x00\x00\x43\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x45\x41\x4b\xce\x00\x00\x45\x47\x00\x00\x00\x00\x00\x00\x45\x4d\x49\xd3\x45\x43\x45\x5e\x45\x5f\x00\x00\x46\xaf\x47\x89\x00\x00\x56\x42\x4d\xec\x00\x00\x00\x00\x4f\x97\x56\x43\x46\x9b\x57\x75\x4d\x56\x50\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x62\x00\x00\x00\x00\x48\x83\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7c\x00\x00\x56\x44\x00\x00\x56\x45\x00\x00\x00\x00\x45\x5c\x00\x00\x00\x00\x00\x00\x56\x46\x4c\xb8\x00\x00\x00\x00\x00\x00\x56\x47\x00\x00\x46\x7a\x48\xab\x00\x00\x47\x62\x54\xc8\x00\x00\x00\x00\x56\x48\x00\x00\x00\x00\x56\x49\x4b\x9f\x00\x00\x45\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xd8\x00\x00\x55\xa9\x54\xa5\x4f\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd0\x56\x4a\x49\x47\x56\x4b\x4b\xbd\x00\x00\x00\x00\x00\x00\x45\x49\x4e\xb5\x47\x49\x00\x00\x00\x00\x56\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbf\x00\x00\x4a\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x70\x00\x00", /* 4e80 */ "\x47\xc0\x00\x00\x56\x4d\x00\x00\x00\x00\x56\x4e\x4b\xb1\x00\x00\x47\xc2\x48\x96\x56\x4f\x45\xce\x45\x42\x00\x00\x56\x50\x00\x00\x00\x00\x49\x9d\x4b\x74\x00\x00\x45\x45\x45\x6d\x00\x00\x00\x00\x4b\xe4\x50\xe8\x00\x00\x55\xdc\x48\x67\x00\x00\x56\x52\x51\x67\x56\x53\x4c\xce\x56\x54\x00\x00\x47\x8e\x4f\x7f\x4f\xfa\x00\x00\x4b\xac\x00\x00\x00\x00\x4b\x73\x45\x75\x4e\x52\x49\x9c\x00\x00\x56\x55\x00\x00\x00\x00\x56\x56\x00\x00\x00\x00\x56\x57\x00\x00\x00\x00\x00\x00\x45\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd9\x47\x76\x56\x5c\x00\x00\x56\x5a\x00\x00\x56\x5b\x50\x85\x00\x00\x00\x00\x45\xe0\x48\x4b\x00\x00\x56\x59\x56\x58\x4b\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x54\x65\x48\xb5\x47\x55\x56\x5e\x47\x5d\x48\xa2\x00\x00\x00\x00\x00\x00\x44\x5c\x56\x5f\x56\x61\x00\x00\x56\x5d\x00\x00\x45\x9a\x49\xc3\x46\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x60\x4d\x71\x00\x00\x4d\xed\x00\x00\x48\x69\x00\x00\x00\x00\x00\x00\x48\xb2\x53\x41\x00\x00\x00\x00\x00\x00\x4a\x55\x56\x62\x00\x00\x00\x00\x00\x00", /* 4f00 */ "\x56\x65\x47\xd2\x00\x00\x56\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x63\x45\xb2\x00\x00\x00\x00\x4d\x99\x4e\x9f\x4a\x83\x50\xf6\x4a\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xbd\x00\x00\x56\x64\x48\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xa6\x56\x68\x00\x00\x00\x00\x00\x00\x49\xc9\x00\x00\x54\x4a\x00\x00\x46\xf4\x56\x6a\x50\x8a\x00\x00\x4b\xbc\x54\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xdf\x00\x00\x00\x00\x4e\xfe\x56\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xc8\x48\xa4\x46\xe0\x45\x76\x4c\xe6\x00\x00\x46\x96\x00\x00\x47\x70\x56\x6e\x56\x6b\x00\x00\x49\xc1\x56\x67\x56\x6f\x45\x94\x56\x69\x56\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7c\x56\x7a\x00\x00\x00\x00\x48\x76\x00\x00\x4b\x94\x51\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x56\x77\x54\x62\x00\x00\x00\x00\x48\xb6", /* 4f80 */ "\x00\x00\x00\x00\x00\x00\x4f\x98\x00\x00\x00\x00\x56\x7d\x00\x00\x56\x72\x00\x00\x56\x71\x4a\x46\x00\x00\x4f\xc2\x00\x00\x56\x73\x00\x00\x4f\x8d\x56\x70\x00\x00\x56\x7b\x00\x00\x56\x7e\x00\x00\x56\x76\x00\x00\x56\x74\x48\xbc\x00\x00\x4a\x9e\x00\x00\x00\x00\x52\xec\x47\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x78\x00\x00\x56\x75\x53\xb9\x53\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8c\x55\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4c\x00\x00\x00\x00\x48\x51\x4a\x6a\x54\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x52\x94\x46\x60\x00\x00\x00\x00\x56\x86\x56\x80\x00\x00\x56\x85\x56\x83\x00\x00\x00\x00\x56\x7f\x00\x00\x00\x00\x4e\x97\x56\x81\x00\x00\x56\x84\x56\x82\x00\x00\x45\xaa\x00\x00\x53\xc4\x52\xec\x45\xa5\x00\x00\x4b\x4a\x56\x87\x56\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xde\x56\x96\x00\x00\x00\x00\x00\x00\x4c\xe1\x00\x00\x4d\xb1\x51\xf8\x00\x00\x50\xf9\x00\x00\x4e\x67\x00\x00\x00\x00\x00\x00\x56\x95\x56\x94", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8f\x56\x99\x00\x00\x00\x00\x45\xd6\x00\x00\x49\xfa\x00\x00\x4a\xc4\x00\x00\x56\xa1\x00\x00\x56\x97\x4b\x6a\x00\x00\x56\x8c\x00\x00\x53\x43\x00\x00\x00\x00\x4c\xae\x56\x89\x00\x00\x00\x00\x00\x00\x56\x98\x4a\xd0\x00\x00\x56\x90\x56\x91\x55\x69\x48\x7d\x56\x8e\x52\xf1\x00\x00\x56\x8b\x56\x92\x56\x8d\x4d\x51\x56\x93\x4f\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x63\x00\x00\x00\x00\x52\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8a\x00\x00\x56\xa4\x56\x9a\x00\x00\x00\x00\x56\xa2\x56\x9b\x56\x9e\x4d\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x49\x56\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x56\x9c\x56\xa0\x00\x00\x00\x00\x00\x00\x56\x9f\x00\x00\x4e\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xa5\x00\x00\x00\x00\x00\x00\x56\xa3\x00\x00\x54\xd2\x00\x00\x49\x43\x4f\x95\x50\xc3\x00\x00\x56\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x50\x59\x00\x00\x00\x00", /* 5080 */ "\x56\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x56\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xe7\x00\x00\x00\x00\x00\x00\x4f\xc3\x00\x00\x00\x00\x56\xa8\x00\x00\x00\x00\x00\x00\x50\x9c\x46\xac\x56\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x43\x54\xda\x00\x00\x00\x00\x00\x00\x00\x00\x56\xad\x56\xb0\x56\xab\x4b\x58\x00\x00\x4c\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x43\x00\x00\x00\x00\x00\x00\x56\xb1\x00\x00\x00\x00\x4f\xc9\x00\x00\x00\x00\x00\x00\x56\xae\x56\xaf\x00\x00\x00\x00\x48\xec\x00\x00\x4b\xba\x00\x00\x55\xad\x00\x00\x00\x00\x00\x00\x4a\xbb\x52\xd4\x00\x00\x56\xb5\x00\x00\x4d\x82\x00\x00\x00\x00\x00\x00\x56\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb7\x00\x00\x56\xb4\x00\x00\x4e\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb6\x56\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb2\x56\xba\x00\x00\x00\x00\x00\x00\x56\xb9\x00\x00\x55\x78\x00\x00\x00\x00\x00\x00\x00\x00", /* 5100 */ "\x49\xca\x56\xbc\x56\xbd\x00\x00\x45\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x56\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6f\x00\x00\x56\xc0\x56\xbf\x56\xc1\x00\x00\x52\x90\x00\x00\x56\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa2\x00\x00\x56\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc4\x00\x00\x00\x00\x56\xc3\x56\xc6\x56\xc5\x00\x00\x00\x00\x56\xc7\x56\xc8\x4c\x91\x00\x00\x46\x95\x4b\xe8\x48\xc9\x4d\xf3\x55\x5a\x47\xa2\x45\x9e\x56\xc9\x47\x9e\x56\xca\x4b\x56\x50\x50\x00\x00\x46\x9f\x00\x00\x56\xcb\x00\x00\x56\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4b\x00\x00\x51\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xcd\x00\x00\x56\xce\x46\x65\x00\x00\x00\x00\x46\xb1\x56\xcf\x56\xd0\x45\x48\x46\xbb\x45\x46\x56\xd1\x00\x00\x00\x00\x47\xb3\x00\x00\x00\x00\x00\x00\x46\x49\x4f\x67\x47\xaf\x47\xc9\x00\x00\x00\x00\x00\x00\x48\xf4\x00\x00\x00\x00\x00\x00", /* 5180 */ "\x56\xd2\x00\x00\x56\xd3\x00\x00\x00\x00\x45\x8e\x46\x45\x00\x00\x00\x00\x56\xd6\x4e\xa1\x00\x00\x56\xd5\x48\xeb\x00\x00\x56\xd7\x61\x9d\x56\xd8\x4f\x8f\x56\xd9\x00\x00\x56\xda\x56\xdb\x52\x7e\x00\x00\x48\xc4\x00\x00\x00\x00\x00\x00\x56\xdc\x00\x00\x00\x00\x4e\x7b\x00\x00\x56\xdf\x00\x00\x56\xdd\x54\x67\x56\xde\x00\x00\x48\x78\x56\xe0\x56\xe1\x56\xe2\x4b\xde\x00\x00\x00\x00\x00\x00\x56\xe6\x56\xe4\x56\xe5\x56\xe3\x50\xc9\x56\xe7\x51\x46\x48\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xe9\x56\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xdc\x56\xea\x4f\x80\x00\x00\x00\x00\x56\xeb\x00\x00\x55\xf9\x53\x44\x4b\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x77\x00\x00\x00\x00\x00\x00\x00\x00\x56\xec\x68\x84\x4e\xd9\x00\x00\x00\x00\x56\xed\x4d\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x48\xe6\x55\x8a\x00\x00\x56\xee\x54\x9e\x00\x00\x56\xef\x56\xf0\x00\x00\x00\x00\x56\xf1\x51\xac\x00\x00\x00\x00\x00\x00\x56\xf2\x51\xec\x00\x00\x50\xcf\x50\xe6\x45\x9b\x00\x00\x00\x00\x4b\xb6\x56\xf3\x00\x00", /* 5200 */ "\x4c\x50\x00\x00\x00\x00\x4f\x44\x56\xf4\x00\x00\x45\xb4\x47\x65\x4b\x9b\x00\x00\x4c\xd7\x56\xf5\x00\x00\x00\x00\x54\xe3\x00\x00\x00\x00\x4c\x52\x00\x00\x00\x00\x56\xf6\x56\xf7\x00\x00\x4b\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x5c\x46\xdd\x00\x00\x56\xf8\x00\x00\x45\xbc\x56\xf9\x00\x00\x00\x00\x00\x00\x56\xfa\x00\x00\x4c\xdd\x00\x00\x00\x00\x56\xfb\x00\x00\x00\x00\x46\xc4\x48\xcf\x4b\x6b\x56\xfc\x4b\xc0\x4b\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x79\x56\xfd\x00\x00\x00\x00\x47\x4d\x00\x00\x00\x00\x4a\x90\x56\xfe\x51\xae\x45\xaf\x00\x00\x57\x41\x00\x00\x00\x00\x00\x00\x00\x00\x57\x43\x00\x00\x51\x99\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc7\x00\x00\x54\x81\x57\x42\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xd3\x47\x66\x54\x81\x00\x00\x00\x00\x00\x00\x57\x48\x57\x45\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4e\x4d\x85\x57\x44\x47\xd6\x57\x46\x57\x47\x4b\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x4a\x00\x00\x57\x49", /* 5280 */ "\x00\x00\x00\x00\x00\x00\x55\xd6\x00\x00\x00\x00\x00\x00\x49\xf0\x57\x4c\x51\x85\x00\x00\x00\x00\x00\x00\x57\x4b\x00\x00\x00\x00\x00\x00\x57\x4e\x57\x4d\x00\x00\x55\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf7\x57\x4f\x00\x00\x00\x00\x48\x70\x45\x9f\x00\x00\x00\x00\x4e\x68\x00\x00\x00\x00\x57\x50\x00\x00\x00\x00\x46\x71\x4a\x64\x54\xc6\x57\x51\x57\x52\x00\x00\x5f\xaa\x00\x00\x4d\x92\x00\x00\x00\x00\x48\xa9\x57\x54\x00\x00\x00\x00\x00\x00\x49\x78\x00\x00\x00\x00\x57\x53\x00\x00\x55\x6a\x00\x00\x57\x56\x57\x55\x00\x00\x54\xb1\x00\x00\x4e\xef\x00\x00\x46\x9c\x00\x00\x48\xce\x00\x00\x00\x00\x00\x00\x57\x57\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd6\x00\x00\x00\x00\x45\xe4\x00\x00\x53\x92\x4b\x9a\x46\xed\x00\x00\x57\x58\x00\x00\x45\xb5\x57\x59\x4a\xe1\x57\x5c\x00\x00\x47\xee\x57\x5a\x49\x9f\x00\x00\x57\x5b\x4c\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7a\x57\x5d\x00\x00\x57\x5e\x00\x00\x00\x00\x57\x5f\x57\x60\x54\x70\x00\x00\x00\x00\x00\x00\x51\xe9\x52\x97", /* 5300 */ "\x57\x61\x4f\x5b\x4e\xcb\x00\x00\x00\x00\x4a\xa8\x57\x62\x57\x63\x57\x64\x00\x00\x00\x00\x00\x00\x00\x00\x57\x66\x00\x00\x57\x68\x57\x67\x00\x00\x00\x00\x00\x00\x00\x00\x57\x69\x45\x90\x45\x5a\x00\x00\x54\x57\x57\x6a\x00\x00\x00\x00\x51\xb7\x00\x00\x00\x00\x4e\x6b\x4d\x4d\x00\x00\x57\x6c\x57\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xed\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6d\x00\x00\x57\x6e\x00\x00\x57\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x57\x70\x4f\xd1\x45\x54\x4a\x87\x00\x00\x00\x00\x00\x00\x50\xf1\x57\x71\x45\x4a\x00\x00\x45\x4c\x00\x00\x57\x72\x57\x73\x4e\x47\x45\xdf\x57\x74\x47\x90\x00\x00\x00\x00\x57\x76\x00\x00\x00\x00\x00\x00\x53\xad\x4a\xf2\x49\x96\x47\xd7\x00\x00\x00\x00\x45\x59\x48\xe3\x00\x00\x45\xf6\x00\x00\x51\xc0\x00\x00\x57\x79\x00\x00\x49\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xdb\x00\x00\x00\x00\x57\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x57\x7b\x4c\x82\x47\x99\x4b\x91\x57\x7c\x4b\x6d\x4a\xa4\x4c\xf5\x00\x00\x57\x7d\x4e\x79\x00\x00\x00\x00\x57\x7e\x00\x00\x00\x00\x00\x00\x53\xe2", /* 5380 */ "\x00\x00\x00\x00\x57\x7f\x00\x00\x53\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x80\x00\x00\x00\x00\x57\x81\x00\x00\x4f\x55\x00\x00\x49\x42\x00\x00\x00\x00\x00\x00\x00\x00\x45\x74\x57\x82\x00\x00\x00\x00\x00\x00\x00\x00\x57\x84\x57\x83\x00\x00\x51\x78\x53\x67\x00\x00\x00\x00\x00\x00\x53\xb7\x57\x85\x00\x00\x57\x86\x00\x00\x57\x87\x4c\x8e\x00\x00\x00\x00\x57\x88\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd2\x57\x89\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf5\x50\xa5\x48\x5c\x46\xd4\x4b\x71\x47\xf9\x47\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa5\x00\x00\x46\xa6\x48\x4c\x00\x00\x50\xf5\x00\x00\x55\xb2\x00\x00\x57\x8b\x00\x00\x57\x8c\x00\x00\x51\x94\x53\xf5\x45\x88\x45\xd4\x4c\x8b\x00\x00\x00\x00\x57\x91\x4f\x71\x4e\x41\x4d\xd5\x4f\x86\x57\x92\x57\x90\x47\xc6\x47\x78\x50\x42\x47\xd9\x48\x5a\x00\x00\x00\x00\x4f\x59\x48\xe2\x45\xf0\x00\x00\x57\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x57\x94\x00\x00\x55\xea\x47\xba\x00\x00\x00\x00\x00\x00\x45\xa0\x45\x7e\x53\xd3\x55\xbc\x46\x6d\x45\xf3\x51\xaf\x50\xc6\x4e\xb2\x46\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xcf\x00\x00\x57\x9d\x00\x00\x50\x7a\x53\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4f\x00\x00\x00\x00\x57\x9c\x00\x00\x49\xcb\x57\x97\x57\x98\x57\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x9b\x00\x00\x4b\x98\x49\xc4\x00\x00\x53\xe5\x57\x99\x57\x95\x47\xf6\x00\x00\x57\x96\x00\x00\x4b\x50\x00\x00\x00\x00\x00\x00\x50\x73\x00\x00\x4f\x56\x4a\xee\x49\x54\x00\x00\x00\x00\x00\x00\x57\x9e\x00\x00\x00\x00\x50\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xa1\x00\x00\x54\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa5\x57\xa3\x00\x00\x47\x7f\x00\x00\x57\xa0\x57\xaa\x57\xa4\x00\x00\x00\x00\x00\x00\x57\xa7\x4a\xf6\x49\xb0\x00\x00\x00\x00", /* 5480 */ "\x57\xa8\x00\x00\x00\x00\x00\x00\x57\xab\x00\x00\x57\xad\x00\x00\x00\x00\x00\x00\x57\xae\x4f\x50\x45\x7a\x00\x00\x57\xa1\x57\x9f\x57\xac\x00\x00\x57\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb2\x00\x00\x57\xbc\x57\xb4\x00\x00\x00\x00\x57\xb9\x57\xbd\x00\x00\x57\xba\x57\xb5\x00\x00\x00\x00\x57\xb1\x00\x00\x00\x00\x4c\xde\x53\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb3\x00\x00\x00\x00\x00\x00\x57\xb0\x52\xb1\x57\xbe\x00\x00\x4e\xf9\x45\xd0\x57\xbb\x00\x00\x57\xb6\x00\x00\x00\x00\x57\xaf\x57\xb8\x4a\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xcb\x57\xc7\x00\x00\x00\x00\x57\xbf\x57\xc1\x00\x00\x55\x68\x55\xf0\x00\x00\x00\x00\x00\x00\x57\xc6\x57\xc5\x00\x00\x00\x00\x00\x00\x47\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7c\x00\x00\x00\x00\x57\xc4\x00\x00\x57\xc0", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdb\x00\x00\x51\xb8\x4f\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x4b\xab\x00\x00\x00\x00\x00\x00\x57\xc3\x00\x00\x54\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcc\x4b\xe0\x00\x00\x4d\x43\x00\x00\x57\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x57\xd1\x57\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x54\x78\x00\x00\x57\xc9\x00\x00\x00\x00\x00\x00\x53\x83\x57\xce\x46\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcb\x00\x00\x00\x00\x46\xe4\x00\x00\x00\x00\x00\x00\x47\xe4\x00\x00\x00\x00\x57\xcf\x57\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcd\x57\xd3\x54\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x57\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xd8\x57\xdd\x00\x00\x57\xd9\x00\x00", /* 5580 */ "\x57\xd5\x00\x00\x00\x00\x57\xdf\x46\xb3\x00\x00\x57\xde\x57\xe1\x00\x00\x52\x53\x57\xd6\x55\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xda\x57\xd4\x52\xb5\x00\x00\x45\xd1\x54\x75\x57\xdb\x57\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xd3\x57\xe2\x57\xe0\x51\x68\x4d\x6d\x4c\x5f\x00\x00\x57\xdc\x00\x00\x4e\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe5\x57\xe3\x00\x00\x58\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa2\x00\x00\x57\xe6\x00\x00\x00\x00\x57\xe4\x00\x00\x00\x00\x00\x00\x4b\x5e\x57\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xeb\x00\x00\x57\xe9\x00\x00\x00\x00\x00\x00\x57\xee\x57\xed\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x63\x00\x00\x00\x00\x47\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xea\x00\x00\x57\xec\x54\xec\x50\xf3\x00\x00\x00\x00\x57\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf8\x00\x00\x50\xca\x57\xf3\x00\x00\x54\x7f\x00\x00\x57\xf2\x00\x00\x57\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x62\x00\x00\x57\xf0\x00\x00\x57\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf6\x00\x00\x00\x00\x00\x00\x45\xfc\x00\x00\x57\xfa\x57\xf5\x57\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6d\x00\x00\x00\x00\x00\x00\x55\xf1\x00\x00\x55\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5680 */ "\x57\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf7\x55\xd8\x00\x00\x00\x00\x58\x41\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x42\x00\x00\x51\x90\x00\x00\x00\x00\x58\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x46\x00\x00\x58\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x49\x00\x00\x00\x00\x00\x00\x58\x4c\x58\x4a\x58\x48\x58\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x58\x47\x00\x00\x51\x90\x00\x00\x00\x00\x00\x00\x58\x4d\x00\x00\x00\x00\x58\x4f\x00\x00\x58\x4e\x00\x00\x00\x00\x00\x00\x58\x50\x56\xd4\x00\x00\x50\x65\x45\x44\x00\x00\x00\x00\x46\xa9\x00\x00\x4a\x49\x00\x00\x00\x00\x47\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x51\x00\x00\x4b\x44\x00\x00\x4a\xfa\x47\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x52\x4a\x94\x00\x00\x00\x00\x45\x8f\x00\x00\x58\x53", /* 5700 */ "\x52\x66\x00\x00\x00\x00\x53\xcf\x58\x54\x00\x00\x00\x00\x00\x00\x58\x56\x58\x55\x00\x00\x51\xbd\x00\x00\x58\x57\x00\x00\x4f\x49\x00\x00\x00\x00\x47\xe1\x54\xe7\x00\x00\x00\x00\x58\x5a\x00\x00\x58\x59\x00\x00\x00\x00\x00\x00\x58\x5b\x00\x00\x00\x00\x46\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5c\x47\x82\x47\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x49\xe6\x00\x00\x00\x00\x45\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd1\x58\x5d\x00\x00\x00\x00\x58\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x58\x61\x00\x00\x45\xec\x00\x00\x00\x00\x00\x00\x00\x00\x49\xae\x00\x00\x00\x00\x4c\x55\x00\x00\x00\x00\x00\x00\x58\x5e\x58\x62\x4e\x8d\x4e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x65\x00\x00\x00\x00\x53\xa6\x58\x63\x51\xc4\x00\x00\x00\x00\x53\x98\x49\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x66", /* 5780 */ "\x00\x00\x00\x00\x4b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x64\x58\x67\x00\x00\x46\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x69\x00\x00\x54\x66\x47\xce\x58\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x6d\x00\x00\x58\x6c\x00\x00\x00\x00\x00\x00\x53\xcd\x00\x00\x00\x00\x58\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x71\x00\x00\x00\x00\x58\x6e\x00\x00\x00\x00\x58\x6f\x58\x73\x58\x70\x00\x00\x00\x00\x4e\xac\x00\x00\x00\x00\x45\xdb\x00\x00\x00\x00\x00\x00\x58\x74\x58\x75\x58\x72\x00\x00\x58\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf4\x00\x00\x00\x00\x48\xe9\x51\x7e\x00\x00\x00\x00\x58\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x48\x00\x00\x00\x00\x4d\x57\x00\x00\x4d\xac\x46\xf1\x00\x00\x46\xa3\x00\x00\x00\x00\x00\x00", /* 5800 */ "\x46\x9d\x00\x00\x49\x7f\x00\x00\x00\x00\x4a\xe7\x53\x71\x00\x00\x00\x00\x00\x00\x58\x78\x58\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xb0\x00\x00\x00\x00\x00\x00\x58\x7b\x00\x00\x00\x00\x00\x00\x53\xa7\x00\x00\x00\x00\x00\x00\x58\x7c\x00\x00\x00\x00\x4b\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xac\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x53\x50\xa4\x49\xb8\x00\x00\x00\x00\x45\xd9\x54\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7c\x00\x00\x00\x00\x58\x80\x00\x00\x00\x00\x53\x9f\x4b\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x53\x58\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc6\x58\x81\x00\x00\x4c\xcb\x00\x00\x00\x00\x48\x6a\x52\xf8\x4f\x6f\x46\x57\x00\x00\x00\x00\x00\x00\x53\xc1\x00\x00\x00\x00\x4f\x5e\x58\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x43\x00\x00\x4f\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x58\x83\x00\x00\x58\x86\x00\x00\x00\x00\x4d\x89\x00\x00\x00\x00\x00\x00\x58\x84\x00\x00\x00\x00\x00\x00\x00\x00\x52\x79\x00\x00", /* 5880 */ "\x00\x00\x00\x00\x00\x00\x4a\x95\x00\x00\x58\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbe\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x51\x50\x00\x00\x58\x8a\x58\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xfc\x00\x00\x00\x00\x58\x88\x00\x00\x00\x00\x58\x8b\x00\x00\x00\x00\x00\x00\x58\x8c\x52\x89\x00\x00\x00\x00\x00\x00\x00\x00\x58\x89\x58\x8d\x58\x8e\x55\x52\x00\x00\x00\x00\x54\x88\x00\x00\x00\x00\x4b\x95\x00\x00\x00\x00\x00\x00\x58\x8f\x00\x00\x4e\x8e\x00\x00\x00\x00\x4e\xc8\x00\x00\x51\x96\x00\x00\x00\x00\x00\x00\x00\x00\x58\x91\x00\x00\x58\x90\x00\x00\x55\xb9\x00\x00\x58\x92\x58\x94\x58\x93\x00\x00\x00\x00\x58\x96\x00\x00\x58\x95\x58\x97\x00\x00\x00\x00\x00\x00\x00\x00\x58\x98\x58\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x7d\x51\x4f\x00\x00\x4c\x9f\x58\x9a\x49\x6c\x4e\xb0\x47\x75\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9b\x00\x00\x58\x9c\x50\x77\x58\x9d\x58\x9e\x52\x75\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x58\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x6f\x58\xa0\x58\xa1\x00\x00\x00\x00\x00\x00\x49\x7e\x58\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc3\x46\x94\x00\x00\x52\xc8\x54\xdd\x45\xfe\x58\xa3\x48\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8b\x00\x00\x00\x00\x58\xa5\x00\x00\x45\x5b\x00\x00\x46\x8a\x45\xab\x45\x73\x58\xa6\x58\xa7\x47\x92\x00\x00\x00\x00\x49\x41\x58\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x51\x47\x58\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf2\x00\x00\x00\x00\x4d\x69\x45\xe6\x4d\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8f\x4c\x53\x58\xac\x4c\x64\x00\x00\x58\xad\x52\x84\x58\xab\x00\x00\x55\x83\x58\xaf\x00\x00\x58\xae\x58\xb0\x00\x00\x58\xb1\x00\x00\x00\x00\x58\xb4\x00\x00\x58\xb3\x58\xb2\x00\x00\x46\xe5\x00\x00\x58\xb5\x4e\xca\x58\xb7\x4e\xbb\x00\x00\x58\xb6\x00\x00\x4e\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x46\x99\x4d\x90\x00\x00\x00\x00\x00\x00\x58\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x46\x9e\x00\x00\x00\x00", /* 5980 */ "\x00\x00\x58\xb9\x4b\xf8\x51\xa2\x55\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x43\x00\x00\x00\x00\x58\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x95\x00\x00\x00\x00\x53\xd1\x00\x00\x00\x00\x4a\x66\x00\x00\x58\xbb\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xbd\x58\xbe\x4d\x9e\x00\x00\x00\x00\x50\xec\x00\x00\x00\x00\x00\x00\x53\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xdc\x58\xc0\x49\xa3\x00\x00\x00\x00\x53\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc1\x00\x00\x00\x00\x4c\xc1\x00\x00\x49\x90\x00\x00\x00\x00\x00\x00\x00\x00\x54\x9c\x53\xf2\x00\x00\x4f\xf1\x48\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc3\x58\xc4\x00\x00\x51\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x55\x55\xde\x00\x00\x58\xc2\x00\x00\x55\x8c\x4a\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x79\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb9\x00\x00\x00\x00\x00\x00\x4b\x42", /* 5a00 */ "\x00\x00\x4c\x65\x00\x00\x55\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x54\x00\x00\x58\xc9\x00\x00\x58\xc8\x00\x00\x00\x00\x58\xc6\x52\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc5\x00\x00\x00\x00\x00\x00\x54\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xce\x58\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x98\x00\x00\x00\x00\x00\x00\x58\xcb\x50\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xcc\x00\x00\x00\x00\x58\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd0\x00\x00\x00\x00\x00\x00\x49\x6f\x00\x00\x00\x00\x00\x00\x58\xd1\x00\x00\x58\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x54", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd2\x48\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd3\x58\xd8\x58\xd4\x00\x00\x00\x00\x4e\x89\x58\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe0\x00\x00\x58\xd6\x4e\xc3\x00\x00\x00\x00\x00\x00\x58\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xdd\x58\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x67\x00\x00\x58\xd9\x00\x00\x00\x00\x58\xdb\x00\x00\x00\x00\x58\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xde\x58\xdf\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8b\x00\x00\x58\xe1\x58\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe4\x00\x00\x52\xea\x00\x00\x00\x00\x00\x00\x55\xe8\x00\x00\x58\xe3\x00\x00\x00\x00\x00\x00\x58\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe6\x00\x00\x58\xe9\x00\x00\x00\x00\x58\xe7\x00\x00\x58\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x64\x58\xea\x00\x00\x00\x00\x4b\xd9\x58\xeb\x58\xec\x48\xf2\x4a\x41\x00\x00\x52\x58\x58\xee\x4f\xf2\x45\xf4\x00\x00\x4f\x83\x00\x00\x00\x00\x00\x00\x4a\xec\x4e\xaf\x58\xef\x45\xbe\x00\x00\x00\x00\x58\xf0\x00\x00\x4c\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf1\x59\x5b\x00\x00\x58\xf2\x00\x00\x58\xf3\x00\x00\x00\x00\x58\xf4\x00\x00\x58\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b80 */ "\x58\xf6\x00\x00\x00\x00\x58\xf7\x00\x00\x48\x6f\x00\x00\x46\xd5\x46\xf0\x45\xa8\x00\x00\x52\x4d\x48\xc5\x4c\x75\x00\x00\x46\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5c\x00\x00\x47\xdd\x49\xa2\x4d\x64\x45\xe7\x50\xab\x4d\x8b\x49\x4d\x00\x00\x45\xed\x00\x00\x00\x00\x4a\xde\x49\x8f\x47\xb8\x4f\x7a\x58\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x92\x00\x00\x4e\xd4\x00\x00\x00\x00\x49\x68\x50\x78\x52\xef\x46\x86\x00\x00\x58\xf9\x48\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x82\x58\xfc\x00\x00\x4f\xe9\x58\xfa\x49\xdf\x4a\x84\x4a\x56\x58\xfb\x00\x00\x58\xfd\x00\x00\x00\x00\x45\xac\x00\x00\x00\x00\x00\x00\x59\x41\x00\x00\x4b\x81\x55\xf4\x52\x44\x00\x00\x00\x00\x00\x00\x59\x42\x00\x00\x00\x00\x47\xf8\x00\x00\x4b\x59\x59\x43\x4b\x93\x00\x00\x52\xb8\x59\x46\x00\x00\x59\x45\x59\x47\x51\xfc\x4f\xa9\x5c\x7e\x49\x87\x00\x00\x59\x48\x59\x44\x00\x00\x4c\x7a\x00\x00\x59\x49\x00\x00\x00\x00\x59\x4a\x00\x00\x55\x56\x59\x4b\x00\x00\x4b\x60\x00\x00\x46\xa0\x00\x00\x00\x00\x00\x00\x46\x56\x46\xb2", /* 5c00 */ "\x00\x00\x4d\x76\x49\xfb\x00\x00\x49\x8a\x59\x4c\x49\x59\x59\x4d\x59\x4e\x51\x89\x4c\xef\x4d\x5f\x00\x00\x59\x4f\x48\xae\x45\x5d\x00\x00\x48\x4a\x00\x00\x59\x50\x00\x00\x00\x00\x53\xc0\x00\x00\x00\x00\x00\x00\x48\x71\x00\x00\x00\x00\x00\x00\x59\x51\x00\x00\x59\x52\x00\x00\x59\x53\x00\x00\x53\xae\x00\x00\x00\x00\x00\x00\x59\x54\x00\x00\x00\x00\x00\x00\x00\x00\x68\x80\x00\x00\x00\x00\x00\x00\x4b\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x55\x51\x5d\x4c\x6b\x49\xce\x4a\x86\x4f\xb9\x45\xc8\x4c\xc6\x48\x8b\x59\x56\x00\x00\x00\x00\x00\x00\x48\x5e\x59\x57\x00\x00\x4d\x94\x00\x00\x4d\xa7\x45\xe9\x00\x00\x55\xba\x59\x58\x54\x43\x59\x5a\x54\xb2\x00\x00\x59\x59\x00\x00\x48\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x43\x00\x00\x00\x00\x47\x6d\x00\x00\x53\xfb\x55\xc0\x55\xc0\x00\x00\x4a\x8e\x4c\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x5c\x00\x00\x59\x5d\x4f\xdd\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\x00\x00\x59\x5e\x00\x00\x00\x00\x59\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x60\x00\x00\x00\x00\x00\x00\x47\x4a\x52\x5a\x00\x00\x00\x00\x59\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x59\x67\x00\x00\x54\xb9\x45\xbf\x00\x00\x59\x63\x50\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x52\x62\x00\x00\x4d\x46\x00\x00\x00\x00\x59\x65\x59\x66\x47\x48\x00\x00\x59\x68\x59\x64\x59\x6a\x00\x00\x59\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x69\x00\x00\x59\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x96\x51\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9d\x59\x6d\x59\x72\x00\x00\x00\x00\x59\x71\x00\x00\x4a\xac\x48\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x59\x70\x45\x6f\x00\x00\x00\x00\x00\x00\x59\x6f\x50\x72\x00\x00\x59\x6e\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x7f\x00\x00\x00\x00\x00\x00\x59\x73\x00\x00\x00\x00\x45\x7f\x00\x00\x00\x00\x59\x77\x00\x00\x00\x00\x51\x4d\x59\x74\x50\x74\x54\xf1\x59\x7c\x59\x7b\x59\x7a\x59\x76\x00\x00\x00\x00\x00\x00\x59\x75\x00\x00\x00\x00\x59\x79\x00\x00\x00\x00\x00\x00\x00\x00\x59\x78\x00\x00\x4f\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x83\x59\x7d\x00\x00\x59\x82\x00\x00\x49\x8c\x00\x00\x59\x7e\x59\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9e\x00\x00\x00\x00\x59\x85\x59\x87\x00\x00\x4e\xd3\x00\x00\x00\x00\x00\x00\x59\x86\x00\x00\x00\x00\x59\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d80 */ "\x00\x00\x00\x00\x59\x8b\x00\x00\x59\x8a\x00\x00\x00\x00\x59\x89\x00\x00\x00\x00\x00\x00\x47\xd1\x59\x8c\x00\x00\x00\x00\x00\x00\x59\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x59\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x90\x00\x00\x59\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x92\x59\x93\x59\x95\x4c\xe8\x00\x00\x59\x94\x4f\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x96\x00\x00\x00\x00\x49\xcf\x52\x81\x00\x00\x00\x00\x59\x97\x00\x00\x59\x99\x59\x98\x00\x00\x00\x00\x51\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9a\x00\x00\x45\x67\x47\x41\x00\x00\x00\x00\x4d\x47\x00\x00\x4c\x67\x00\x00\x45\x6a\x48\x5b\x4c\xa3\x4a\x52\x00\x00\x00\x00\x59\x9b\x00\x00\x00\x00\x49\x8b\x00\x00\x00\x00\x47\xad\x4a\x4b\x4a\xe6\x4e\x7d\x59\x9c\x00\x00\x53\xcb\x00\x00\x00\x00\x00\x00\x48\x93\x00\x00\x4e\x46\x4a\x7d\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x45\x53\x47\x6b\x00\x00\x00\x00\x4f\x75\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9d\x4a\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x59\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x51\xc7\x00\x00\x00\x00\x59\x9f\x59\x9e\x59\xa1\x00\x00\x48\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x44\x00\x00\x4b\x53\x00\x00\x49\x60\x49\x82\x00\x00\x00\x00\x4d\xc5\x00\x00\x00\x00\x59\xa2\x54\xbe\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x85\x00\x00\x00\x00\x59\xa5\x00\x00\x00\x00\x59\xa4\x59\xa3\x4a\x5e\x00\x00\x59\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x49\x6b\x00\x00\x59\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xa9\x4c\xca\x00\x00\x59\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x83\x00\x00\x48\xde\x59\xaa\x4e\x7f\x59\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6f\x45\x8d\x45\x60\x59\xac\x59\xad\x00\x00\x45\xa9\x48\xda\x59\xae\x50\xa2\x4d\xaf\x52\x5f\x4b\x57\x59\xaf", /* 5e80 */ "\x00\x00\x4b\x92\x00\x00\x45\xb7\x48\x50\x00\x00\x00\x00\x55\x8d\x00\x00\x00\x00\x4a\xed\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x64\x55\x4f\x48\x54\x00\x00\x00\x00\x51\x5a\x00\x00\x45\x51\x00\x00\x00\x00\x00\x00\x59\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xde\x48\xb1\x00\x00\x00\x00\x00\x00\x45\xf8\x00\x00\x48\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xeb\x50\xc1\x46\x9a\x4c\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb1\x59\xb2\x4b\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb3\x4e\xdb\x4e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb5\x59\xb4\x00\x00\x00\x00\x54\xad\x00\x00\x00\x00\x53\x6c\x00\x00\x00\x00\x00\x00\x59\xb7\x59\xb8\x00\x00\x59\xb6\x00\x00\x55\xaf\x55\x62\x59\xba\x59\xb9\x50\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x59\xbb\x59\xbc\x00\x00\x00\x00\x59\xbd\x00\x00\x00\x00\x00\x00\x59\xbe\x59\xbf\x00\x00\x59\xc0\x59\xc1\x00\x00\x47\xd0\x50\x5b\x52\xd6\x00\x00\x46\x66\x4b\xaf\x55\x64\x00\x00\x54\x4b\x51\xd9", /* 5f00 */ "\x00\x00\x4b\x47\x00\x00\x59\xc2\x54\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x59\xc3\x50\xcd\x59\xc4\x56\x41\x56\x51\x00\x00\x46\x8f\x50\xe1\x59\xc5\x00\x00\x4b\x63\x51\xe5\x46\xda\x59\xc6\x54\xac\x45\xd3\x00\x00\x00\x00\x55\x97\x00\x00\x00\x00\x00\x00\x4c\x9b\x00\x00\x59\xc7\x00\x00\x00\x00\x00\x00\x47\xe6\x4e\x42\x53\x6b\x00\x00\x59\xc8\x00\x00\x00\x00\x00\x00\x59\xc9\x00\x00\x59\xca\x00\x00\x4b\x6e\x00\x00\x00\x00\x59\xcb\x48\xba\x00\x00\x46\xd2\x59\xcc\x00\x00\x00\x00\x00\x00\x52\xe0\x00\x00\x4a\xd4\x00\x00\x00\x00\x59\xcd\x00\x00\x00\x00\x00\x00\x53\xc7\x00\x00\x00\x00\x59\xce\x00\x00\x53\x85\x00\x00\x59\xcf\x00\x00\x59\xd0\x00\x00\x00\x00\x59\xd1\x00\x00\x46\x5f\x00\x00\x00\x00\x59\xd2\x59\xd3\x00\x00\x59\xd4\x00\x00\x00\x00\x59\xd5\x59\xd6\x00\x00\x00\x00\x00\x00\x59\xd7\x46\x90\x00\x00\x00\x00\x00\x00\x45\xe1\x59\xd8\x00\x00\x4d\xcd\x51\x59\x4e\x86\x4e\x88\x52\x9c\x00\x00\x00\x00\x49\x64\x49\x5e\x00\x00\x59\xd9\x00\x00\x00\x00\x00\x00\x59\xda\x00\x00\x49\x5d\x00\x00\x00\x00\x47\x72\x00\x00\x00\x00\x59\xdd", /* 5f80 */ "\x4c\xea\x4a\x61\x59\xdc\x59\xdb\x4e\x60\x48\xa3\x00\x00\x59\xe0\x59\xdf\x00\x00\x59\xde\x49\x91\x45\xe5\x00\x00\x00\x00\x00\x00\x50\xb3\x59\xe1\x4c\x6c\x48\xfb\x00\x00\x00\x00\x00\x00\x47\xe8\x59\xe4\x59\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x59\xe3\x00\x00\x59\xe5\x46\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xe6\x4a\x70\x4e\xf5\x00\x00\x00\x00\x59\xe7\x4b\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x46\x54\x4c\x74\x00\x00\x00\x00\x59\xe8\x00\x00\x48\xf8\x00\x00\x00\x00\x59\xe9\x55\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe7\x00\x00\x47\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x97\x4b\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xea\x46\x61\x4c\x45\x4e\xa3\x00\x00\x00\x00\x48\x95\x59\xf0\x59\xf1\x00\x00\x46\x4f\x00\x00\x00\x00\x00\x00\x59\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x60\x00\x00\x00\x00\x00\x00\x00\x00\x59\xef\x59\xee\x00\x00\x00\x00\x00\x00\x4a\xae\x00\x00\x00\x00\x59\xed\x00\x00\x00\x00\x59\xeb\x00\x00\x50\x56\x00\x00\x59\xf2", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf7\x59\xfd\x59\xf5\x00\x00\x4c\xd6\x00\x00\x00\x00\x59\xfa\x4e\xf0\x00\x00\x00\x00\x59\xf4\x00\x00\x59\xf9\x50\x9f\x46\xad\x00\x00\x00\x00\x50\x81\x59\xf3\x00\x00\x00\x00\x00\x00\x47\xcc\x59\xfc\x46\x6e\x54\xde\x59\xf6\x4e\x71\x59\xfb\x00\x00\x00\x00\x00\x00\x55\x42\x00\x00\x59\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x42\x52\x56\x5a\x4c\x00\x00\x00\x00\x5a\x49\x00\x00\x00\x00\x00\x00\x5a\x48\x4b\xca\x00\x00\x5a\x4a\x00\x00\x00\x00\x4b\xd5\x00\x00\x47\xc7\x00\x00\x00\x00\x52\x98\x00\x00\x00\x00\x00\x00\x5a\x50\x5a\x41\x00\x00\x00\x00\x5a\x44\x00\x00\x5a\x47\x5a\x43\x00\x00\x55\x94\x5a\x4b\x5a\x4d\x4e\xce\x00\x00\x00\x00\x53\xb8\x4c\x81\x5a\x45\x5a\x4f\x5a\x4e\x49\x4e\x00\x00\x4b\xb0\x53\x84\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x5a\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6080 */ "\x00\x00\x5a\x52\x00\x00\x5a\x53\x5a\x55\x5a\x51\x00\x00\x00\x00\x00\x00\x54\x69\x5a\x57\x5a\x5c\x4d\xe3\x55\x44\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x5a\x00\x00\x50\x91\x00\x00\x5a\x58\x5a\x59\x00\x00\x00\x00\x5a\x54\x5a\x56\x00\x00\x00\x00\x00\x00\x4a\xb1\x4d\xd8\x00\x00\x00\x00\x4d\xeb\x00\x00\x00\x00\x48\x73\x5a\x5b\x00\x00\x4b\xcd\x49\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x9d\x52\x76\x53\xa3\x5a\x64\x55\x54\x00\x00\x5a\x5e\x00\x00\x00\x00\x00\x00\x51\x45\x5a\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x5f\x5a\x63\x4e\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x78\x00\x00\x5a\x61\x00\x00\x5a\x65\x00\x00\x00\x00\x5a\x66\x00\x00\x54\x9d\x00\x00\x4e\xd7\x00\x00\x5a\x5f\x4f\xe0\x5a\x60\x5a\x5d\x00\x00\x4b\x68\x00\x00\x00\x00\x00\x00\x55\x4a\x50\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb8\x5a\x73\x5a\x68\x48\xb3\x5a\x6e\x00\x00\x5a\x6b\x5a\x6c\x00\x00\x54\x72\x5a\x6f\x5a\x72\x00\x00\x00\x00\x00\x00\x00\x00", /* 6100 */ "\x5a\x6d\x52\x82\x00\x00\x5a\x70\x00\x00\x00\x00\x5a\x6a\x00\x00\x53\xc8\x50\x98\x00\x00\x00\x00\x00\x00\x5a\x74\x5a\x75\x47\x63\x00\x00\x5a\x76\x00\x00\x00\x00\x00\x00\x5a\x69\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb2\x45\xc6\x00\x00\x00\x00\x00\x00\x47\xf7\x5a\x67\x5a\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7b\x5a\x7a\x00\x00\x00\x00\x00\x00\x5a\x80\x00\x00\x00\x00\x00\x00\x5a\x7e\x00\x00\x00\x00\x00\x00\x5a\x81\x00\x00\x00\x00\x5a\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7f\x5a\x84\x5a\x7c\x51\xe3\x00\x00\x00\x00\x5a\x85\x00\x00\x5a\x86\x00\x00\x00\x00\x5a\x77\x4c\xbe\x00\x00\x5a\x7d\x48\xfd\x53\x8e\x5a\x78\x4a\x76\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x92\x00\x00\x52\xe3\x00\x00\x00\x00\x5a\x8a\x5a\x8b\x5a\x8c\x00\x00\x00\x00\x5a\x83\x00\x00\x5a\x91\x00\x00\x00\x00\x4d\xdb\x4d\xd3\x00\x00\x5a\x82\x00\x00\x4e\xb6\x52\x8a\x00\x00\x00\x00\x5a\x8d\x00\x00\x00\x00\x4c\x49\x5a\x8f\x4f\xad\x5a\x90\x00\x00\x5a\x87\x5a\x8e\x5a\x93\x48\xa8\x5a\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf4\x00\x00", /* 6180 */ "\x00\x00\x00\x00\x50\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x88\x00\x00\x00\x00\x5a\x99\x00\x00\x00\x00\x00\x00\x4f\x4a\x00\x00\x55\x5b\x5a\x9a\x00\x00\x00\x00\x5a\x98\x00\x00\x5a\x96\x00\x00\x5a\x94\x5a\x95\x55\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xfc\x00\x00\x00\x00\x53\xc2\x00\x00\x51\x75\x00\x00\x5a\x9b\x5a\x97\x00\x00\x5a\x9c\x00\x00\x00\x00\x00\x00\x47\xbe\x00\x00\x00\x00\x00\x00\x4e\x6c\x00\x00\x00\x00\x00\x00\x5a\xa3\x00\x00\x00\x00\x00\x00\x51\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa1\x00\x00\x00\x00\x5a\xa2\x4e\xa4\x5a\xa0\x5a\x9f\x5a\x9e\x5a\xa4\x5a\x9d\x5a\xa6\x00\x00\x00\x00\x4e\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa8\x00\x00\x00\x00\x5a\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x53\x00\x00\x5a\xa9\x00\x00\x5a\xab\x5a\xaa\x4d\xc6\x00\x00\x5a\xad\x00\x00\x5a\xaf\x5a\xac\x5a\xb0\x5a\xae", /* 6200 */ "\x5a\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xb2\x5a\xb3\x51\x61\x00\x00\x54\x60\x5a\xb4\x51\x7f\x00\x00\x45\xba\x49\xde\x4d\xa0\x5a\xb5\x5a\xb6\x00\x00\x4d\x7f\x00\x00\x00\x00\x00\x00\x55\x95\x5a\xb7\x00\x00\x64\x6e\x5a\xb8\x54\xd9\x00\x00\x5a\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x47\x64\x00\x00\x00\x00\x00\x00\x5a\xba\x00\x00\x00\x00\x00\x00\x5a\xbb\x4f\x92\x5a\xbc\x00\x00\x5a\xbd\x5a\xbe\x50\x92\x00\x00\x00\x00\x00\x00\x45\xcf\x00\x00\x00\x00\x4c\x44\x00\x00\x00\x00\x00\x00\x47\xdc\x45\x8c\x5a\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xca\x65\x5d\x50\xad\x00\x00\x45\xcb\x00\x00\x49\xf1\x5a\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x47\xea\x00\x00\x49\x81\x00\x00\x00\x00\x55\xd5\x00\x00\x00\x00\x5a\xc3\x00\x00\x00\x00\x5a\xc1\x00\x00\x5a\xc4\x00\x00\x00\x00\x5a\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb7\x00\x00\x00\x00\x4c\x69\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7a\x00\x00\x00\x00\x4c\x76\x00\x00\x00\x00\x5a\xc6\x00\x00\x5a\xca\x4c\x48", /* 6280 */ "\x48\xf7\x00\x00\x5a\xc7\x5a\xcd\x4e\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc8\x4e\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x66\x5a\xc9\x5a\xcb\x5a\xce\x47\x51\x5a\xcc\x4a\x67\x49\x8d\x00\x00\x00\x00\x5a\xdc\x4a\x85\x00\x00\x4e\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xda\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa6\x5a\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x86\x00\x00\x00\x00\x00\x00\x4b\x90\x00\x00\x00\x00\x00\x00\x51\xe0\x00\x00\x5a\xd1\x49\xe1\x4d\x53\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd9\x00\x00\x00\x00\x4a\xa1\x5a\xd4\x5a\xdb\x5a\xd5\x5a\xdd\x5a\xd8\x00\x00\x53\x45\x4f\xba\x00\x00\x5a\xd2\x53\xa2\x5a\xd0\x4f\x61\x4b\xdb\x5a\xd7\x00\x00\x00\x00\x5a\xcf\x50\x45\x52\x5c\x00\x00\x4b\xfd\x5a\xd6\x4e\xe2\x00\x00\x00\x00\x4d\x77\x48\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc5\x4e\xe5\x5a\xdf\x5a\xe4\x00\x00\x5a\xe0\x00\x00\x50\x8d\x00\x00\x5a\xe5\x4f\x9e\x55\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd7\x5a\xe6", /* 6300 */ "\x00\x00\x46\xd8\x5a\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb6\x5a\xe3\x54\x89\x00\x00\x00\x00\x5a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe1\x4f\x81\x00\x00\x00\x00\x54\x8f\x00\x00\x00\x00\x00\x00\x48\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x87\x00\x00\x00\x00\x52\xa8\x5a\xe9\x55\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa0\x00\x00\x00\x00\x55\x7d\x5a\xe8\x00\x00\x5a\xea\x5a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x41\x00\x00\x55\x46\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x85\x4b\xb3\x5a\xf5\x00\x00\x5a\xf4\x00\x00\x00\x00\x4e\xd6\x00\x00\x00\x00\x00\x00\x54\x93\x00\x00\x00\x00\x00\x00\x5a\xef\x4d\x8f\x00\x00\x00\x00\x4f\xc0\x54\xc0\x00\x00\x00\x00\x00\x00\x00\x00", /* 6380 */ "\x5a\xed\x00\x00\x00\x00\x4d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x61\x5a\xf2\x00\x00\x00\x00\x4e\xec\x00\x00\x5a\xec\x5a\xf1\x00\x00\x00\x00\x4c\xfa\x00\x00\x00\x00\x00\x00\x5a\xeb\x00\x00\x4d\x44\x00\x00\x00\x00\x4a\xe3\x00\x00\x00\x00\x00\x00\x5a\xf3\x55\xe6\x4b\x4f\x4b\x7f\x5a\xf0\x00\x00\x47\xa8\x00\x00\x4c\xac\x48\xd5\x55\xd0\x4a\x60\x5a\xee\x55\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc1\x00\x00\x54\xcd\x5a\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa3\x00\x00\x00\x00\x5a\xf7\x00\x00\x5a\xf9\x00\x00\x00\x00\x4e\xfd\x5b\x42\x00\x00\x5a\xfa\x00\x00\x00\x00\x5a\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xcf\x49\xb9\x00\x00\x5a\xfe\x00\x00\x00\x00\x00\x00\x4c\xf2\x00\x00\x00\x00\x00\x00\x4c\x46\x49\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x60\x00\x00\x5a\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd5\x5a\xfb\x5b\x41\x00\x00\x00\x00\x00\x00\x4f\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xd8\x00\x00\x5b\x4b\x00\x00\x00\x00\x00\x00\x5b\x45\x54\xa3\x00\x00\x5b\x4c\x5b\x49\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x46\x00\x00\x5b\x4a\x00\x00\x00\x00\x00\x00\x4d\xc8\x52\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x43\x00\x00\x5b\x47\x00\x00\x00\x00\x00\x00\x4e\x49\x00\x00\x00\x00\x00\x00\x50\xa3\x00\x00\x00\x00\x00\x00\x4e\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4d\x00\x00\x00\x00\x54\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4e\x00\x00\x48\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x51\x00\x00\x55\xf5\x00\x00\x51\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6480 */ "\x00\x00\x00\x00\x00\x00\x4a\x74\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xde\x5b\x57\x00\x00\x5b\x55\x00\x00\x00\x00\x00\x00\x00\x00\x53\x48\x00\x00\x00\x00\x5b\x53\x55\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x7a\x5b\x58\x00\x00\x00\x00\x00\x00\x5b\x59\x00\x00\x51\xe1\x00\x00\x4e\x62\x4c\x77\x00\x00\x53\x72\x00\x00\x4e\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x52\x00\x00\x5b\x56\x5b\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4e\x5b\x62\x00\x00\x00\x00\x5b\x5e\x00\x00\x5b\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x9b\x5b\x54\x00\x00\x00\x00\x00\x00\x5b\x5d\x00\x00\x5b\x60\x00\x00\x00\x00\x00\x00\x5b\x61\x00\x00\x5b\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x65\x5b\x66\x55\x43\x5b\x67\x00\x00\x00\x00\x4f\xd6\x5b\x64\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcd\x00\x00\x00\x00\x5b\x68\x00\x00\x5b\x63\x5b\x6b\x00\x00\x5b\x69\x00\x00\x5b\x6a\x00\x00\x00\x00\x00\x00\x5b\x6c\x00\x00\x00\x00\x5b\x6e\x55\xf6\x00\x00", /* 6500 */ "\x5b\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x5b\x70\x5b\x71\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x72\x5b\x74\x5b\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7f\x5b\x75\x5b\x76\x00\x00\x00\x00\x47\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x77\x5b\x78\x5b\x7a\x5b\x79\x5b\x7b\x48\x8f\x00\x00\x4b\xc5\x00\x00\x00\x00\x48\xaf\x45\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf7\x00\x00\x00\x00\x5b\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x80\x5b\x7e\x46\x47\x00\x00\x4c\x5c\x00\x00\x00\x00\x00\x00\x5b\x82\x5b\x7f\x4b\x8a\x5b\x81\x47\xa5\x00\x00\x00\x00\x00\x00\x5b\x83\x51\xb1\x00\x00\x00\x00\x00\x00\x4f\xcf\x4a\xc9\x00\x00\x00\x00\x49\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb0\x00\x00\x00\x00\x00\x00\x46\xcc\x00\x00\x5b\x84\x00\x00\x47\x7c\x4b\xf3\x00\x00\x49\x51\x5b\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6580 */ "\x00\x00\x00\x00\x5b\x86\x5b\x87\x00\x00\x00\x00\x00\x00\x45\xca\x58\xed\x46\x8e\x00\x00\x00\x00\x51\x9d\x00\x00\x47\xdb\x00\x00\x4b\x80\x52\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x83\x00\x00\x46\x4e\x00\x00\x5b\x89\x4b\xd1\x00\x00\x00\x00\x5b\x8a\x00\x00\x55\x81\x00\x00\x00\x00\x54\xcf\x51\x41\x00\x00\x51\xc2\x00\x00\x00\x00\x00\x00\x5b\x8b\x4e\xfc\x49\x89\x00\x00\x4e\xa5\x45\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8c\x00\x00\x45\xcd\x00\x00\x00\x00\x4d\xa4\x48\x88\x00\x00\x00\x00\x00\x00\x5b\x8f\x00\x00\x5b\x8d\x5b\x90\x4a\xcf\x5b\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7b\x5b\x91\x00\x00\x00\x00\x4a\xdc\x00\x00\x00\x00\x5b\x92\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xab\x00\x00\x5b\x93\x00\x00\x51\x65\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x95\x5b\x94\x4b\x77\x00\x00\x00\x00\x45\x62\x4d\x9d\x4c\x7b\x4d\x6a\x46\xe9\x00\x00\x00\x00\x4d\x67\x47\xec\x00\x00\x00\x00\x00\x00\x5b\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa3\x5b\x9c\x00\x00\x00\x00\x00\x00\x00\x00", /* 6600 */ "\x5b\x97\x00\x00\x5b\x99\x5b\x9b\x00\x00\x00\x00\x4f\xe7\x46\xfe\x00\x00\x5b\x9d\x52\x8e\x00\x00\x46\xd1\x00\x00\x45\xa6\x54\xe8\x00\x00\x00\x00\x00\x00\x47\xe9\x4c\x59\x5b\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa3\x00\x00\x5b\xa1\x47\xa9\x47\xac\x00\x00\x00\x00\x00\x00\x5b\xa4\x46\x62\x00\x00\x55\x9d\x48\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x45\xb3\x5b\xa0\x4b\xbb\x00\x00\x52\xeb\x00\x00\x00\x00\x5b\xa2\x5b\x9f\x51\x93\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9f\x4c\x98\x00\x00\x00\x00\x5b\x9e\x00\x00\x52\x51\x46\x51\x48\xb0\x5b\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa6\x00\x00\x4b\xb2\x00\x00\x00\x00\x00\x00\x51\xea\x00\x00\x00\x00\x54\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa8\x00\x00\x5b\xab\x00\x00\x00\x00\x00\x00\x5b\xad\x5b\xa9\x4f\xce\x00\x00\x00\x00\x5b\xac\x00\x00\x5b\xaa\x5b\xa7\x55\x6d\x50\xa0\x51\xb2\x4c\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x49\xf8\x49\x93\x5b\xb0\x00\x00\x00\x00\x5b\xaf\x47\x95\x00\x00\x4a\xf8\x00\x00\x00\x00\x00\x00\x46\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6680 */ "\x00\x00\x4c\x83\x00\x00\x5b\xb1\x5b\xb3\x00\x00\x00\x00\x4f\x46\x5b\xb2\x4e\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xab\x00\x00\x00\x00\x4f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6c\x4b\xe2\x5b\xb5\x5b\xb4\x00\x00\x00\x00\x00\x00\x5b\xb7\x00\x00\x00\x00\x5b\xb6\x00\x00\x4c\xc7\x00\x00\x00\x00\x00\x00\x50\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x50\x93\x00\x00\x00\x00\x4a\xfe\x00\x00\x00\x00\x00\x00\x5b\xb8\x00\x00\x4c\xb2\x00\x00\x00\x00\x00\x00\x5b\xbf\x52\x43\x00\x00\x00\x00\x5b\xbe\x00\x00\x5b\xbd\x5b\xbb\x00\x00\x5b\xba\x00\x00\x00\x00\x5b\xb9\x00\x00\x00\x00\x4c\x56\x00\x00\x5b\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc0\x00\x00\x00\x00\x51\x52\x5b\xc1\x00\x00\x4b\xfe\x52\xa6\x00\x00\x00\x00\x51\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc2\x00\x00\x00\x00\x5b\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc4\x00\x00\x49\xb6\x4e\xbc\x4a\x6d\x5b\xc5\x00\x00\x5b\xc6\x47\x9d\x4e\xd2\x5b\xc7\x53\x97\x57\x8d\x49\x5f\x51\x66\x4b\xc3", /* 6700 */ "\x46\xf5\x00\x00\x00\x00\x56\xac\x00\x00\x00\x00\x00\x00\x00\x00\x45\x61\x46\x85\x00\x00\x4b\xc4\x00\x00\x47\xd4\x5b\xc8\x54\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa4\x55\xf3\x5b\xca\x48\x6e\x00\x00\x00\x00\x00\x00\x47\xbb\x00\x00\x47\x5c\x5b\xcb\x46\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcd\x5b\xce\x45\x6c\x00\x00\x49\xc6\x47\x46\x45\x66\x48\xf9\x5b\xd0\x00\x00\x00\x00\x4d\x42\x00\x00\x00\x00\x4e\xa2\x00\x00\x5b\xd2\x5b\xd3\x5b\xd4\x00\x00\x4d\x96\x00\x00\x00\x00\x50\xf0\x00\x00\x5b\xd1\x00\x00\x53\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd5\x00\x00\x00\x00\x46\x68\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x51\x50\xd0\x46\xbc\x45\x56\x00\x00\x54\xc1\x00\x00\x00\x00\x50\xf4\x00\x00\x00\x00\x5b\xd7\x00\x00\x00\x00\x52\x5d\x00\x00\x5b\xd6\x4b\x4b\x54\x80\x47\x5e\x51\xa6\x52\x91\x5b\xd9\x46\x76\x5b\xd8\x00\x00\x00\x00\x00\x00\x5b\xde\x00\x00\x00\x00\x50\x8b\x00\x00\x4c\x63\x5b\xdc\x45\x57\x5b\x9a\x5b\xe0\x00\x00\x4a\xa6\x00\x00\x52\x80\x00\x00\x00\x00\x00\x00\x00\x00\x54\xdf\x00\x00\x45\x78\x46\xb4", /* 6780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xdb\x00\x00\x52\x5e\x00\x00\x5b\xda\x00\x00\x5b\xdf\x54\xf2\x00\x00\x00\x00\x00\x00\x4a\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x78\x00\x00\x45\xa2\x00\x00\x00\x00\x49\xd9\x00\x00\x47\xb9\x46\x72\x00\x00\x00\x00\x4f\xd2\x5b\xe2\x52\xd0\x00\x00\x00\x00\x00\x00\x5b\xe1\x00\x00\x00\x00\x5b\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x61\x00\x00\x00\x00\x00\x00\x54\xc9\x5b\xe6\x00\x00\x4e\xe8\x5b\xe4\x5b\xe9\x5b\xf2\x00\x00\x5b\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf0\x55\xcd\x00\x00\x00\x00\x4a\x7f\x00\x00\x5b\xf4\x00\x00\x00\x00\x00\x00\x52\xd9\x00\x00\x00\x00\x00\x00\x5b\xf1\x49\x80\x50\x4a\x4e\xc1\x00\x00\x48\x9b\x4d\xea\x00\x00\x00\x00\x00\x00\x4f\xd8\x00\x00\x4e\xe1\x00\x00\x00\x00\x5b\xed\x54\xf3\x00\x00\x00\x00\x00\x00\x5b\xee\x00\x00\x5b\xeb\x00\x00\x00\x00\x5b\xea\x00\x00\x5b\xe8\x00\x00\x00\x00\x5b\xe7\x00\x00\x5b\xef\x5b\xe5\x00\x00\x4b\xea\x00\x00\x46\xea\x47\xa7\x51\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x73\x00\x00\x00\x00\x50\x54\x4a\xc1", /* 6800 */ "\x00\x00\x5b\xf3\x52\xd1\x47\xd3\x45\xfa\x51\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xe3\x00\x00\x00\x00\x4d\xcc\x47\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf5\x00\x00\x00\x00\x48\xbf\x52\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xde\x48\x56\x52\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfa\x00\x00\x55\xda\x00\x00\x00\x00\x00\x00\x4b\x9e\x46\x67\x00\x00\x00\x00\x47\xde\x4d\xe0\x00\x00\x00\x00\x5b\xf8\x50\xd6\x49\xab\x4a\xda\x5b\xf9\x00\x00\x5b\xf6\x00\x00\x48\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf7\x5b\xfb\x00\x00\x49\xc0\x48\x79\x5b\xec\x53\x6d\x53\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfd\x00\x00\x00\x00\x47\x71\x4d\x88\x00\x00\x51\xf3\x00\x00\x00\x00\x00\x00\x5b\xfc\x00\x00\x00\x00\x00\x00\x50\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x4b\x00\x00\x4e\x77\x5c\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x44\x5c\x42", /* 6880 */ "\x00\x00\x4e\x44\x00\x00\x5c\x48\x00\x00\x47\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfe\x5b\xfe\x5c\x45\x00\x00\x00\x00\x00\x00\x50\xda\x5c\x47\x00\x00\x00\x00\x52\xcc\x00\x00\x00\x00\x00\x00\x53\xbc\x00\x00\x4e\x92\x00\x00\x5c\x43\x52\xc6\x00\x00\x50\xac\x00\x00\x00\x00\x00\x00\x58\xa4\x52\xd3\x48\x58\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x46\x00\x00\x51\xe4\x46\x82\x53\x59\x00\x00\x53\x61\x00\x00\x5c\x4c\x49\xad\x00\x00\x00\x00\x5c\x4a\x5c\x4d\x00\x00\x5c\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb1\x00\x00\x5c\x60\x00\x00\x53\x86\x55\xca\x5c\x50\x4e\xf1\x00\x00\x5c\x56\x00\x00\x5c\x5f\x00\x00\x00\x00\x4b\x5a\x00\x00\x5c\x57\x5c\x59\x00\x00\x54\xc2\x5c\x52\x00\x00\x4b\xef\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xa9\x5c\x5e\x5c\x54\x00\x00\x5c\x5d\x00\x00\x00\x00\x00\x00\x5c\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x9d\x5c\x5b\x00\x00\x00\x00\x53\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x94\x55\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x54\x68\x5c\x4f\x00\x00\x00\x00\x5c\x5c\x4f\xf7\x00\x00\x00\x00\x5c\x51\x00\x00\x00\x00\x4d\xfd\x5c\x55\x47\xc5\x4b\xa0\x5c\x4e\x00\x00\x00\x00\x5c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xed\x53\x70\x51\x63\x48\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x63\x5c\x61\x5c\x64\x00\x00\x53\xfa\x5c\x53\x00\x00\x5c\x65\x00\x00\x5c\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x71\x00\x00\x00\x00\x00\x00\x54\xa7\x00\x00\x5c\x69\x00\x00\x00\x00\x52\xed\x00\x00\x00\x00\x00\x00\x5c\x6f\x00\x00\x4c\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x95\x5c\x6b\x55\xc5\x00\x00\x00\x00\x00\x00\x5c\x70\x53\x4c\x00\x00\x54\xe2\x5c\x73\x5c\x72\x00\x00\x4a\xdf\x52\x7c\x4d\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x6e\x00\x00\x5c\x6c\x54\xa2\x00\x00\x45\x6b\x53\xef\x4f\xae\x00\x00\x00\x00\x00\x00\x52\xb3\x5c\x6d\x49\xb7\x00\x00\x5c\x68\x5c\x6a\x5c\x67\x00\x00\x00\x00\x52\xba\x47\x61\x5c\x74\x00\x00", /* 6980 */ "\x00\x00\x5c\x75\x4c\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x52\x00\x00\x00\x00\x00\x00\x49\xeb\x00\x00\x00\x00\x54\x76\x00\x00\x00\x00\x55\xc7\x5c\x86\x00\x00\x00\x00\x5c\x79\x00\x00\x00\x00\x4d\x7e\x5c\x85\x00\x00\x00\x00\x00\x00\x5c\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4a\x00\x00\x00\x00\x5c\x80\x5c\x76\x00\x00\x53\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x82\x00\x00\x00\x00\x5c\x7c\x5c\x77\x00\x00\x5c\x7a\x00\x00\x5c\x83\x00\x00\x00\x00\x00\x00\x4d\xb9\x00\x00\x00\x00\x5c\x7f\x47\x96\x4e\xfa\x52\xdb\x5c\x7d\x00\x00\x54\x8c\x00\x00\x00\x00\x5c\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x48\x48\x68\x81\x00\x00\x00\x00\x00\x00\x5c\x81\x5c\x87\x00\x00\x00\x00\x00\x00\x5c\x90\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8f\x5c\x89\x00\x00\x00\x00\x5c\x94\x00\x00\x5c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8d\x00\x00\x4b\x5c\x00\x00\x4d\xb7\x00\x00\x5c\x8c", /* 6a00 */ "\x00\x00\x00\x00\x5c\x8a\x00\x00\x00\x00\x53\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x95\x49\x4f\x5c\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x97\x5c\x99\x5c\x93\x00\x00\x00\x00\x53\x8b\x00\x00\x49\x66\x00\x00\x5c\x8b\x00\x00\x00\x00\x5c\x91\x53\x9b\x00\x00\x48\x64\x5c\x96\x5c\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xdc\x45\xf2\x4b\x6f\x00\x00\x00\x00\x5c\x88\x00\x00\x5c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x55\x85\x5c\x9f\x00\x00\x5c\xa7\x46\xcf\x4e\x69\x00\x00\x00\x00\x4b\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x9c\x00\x00\x5c\xa6\x5c\xa1\x5c\xa5\x00\x00\x00\x00\x45\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc2\x5c\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x00\x00\x55\xd4\x5c\xa2\x00\x00\x00\x00\x00\x00\x5c\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xa8\x5c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xaf\x4f\xb2", /* 6a80 */ "\x4f\xf5\x00\x00\x00\x00\x00\x00\x5c\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xab\x55\xee\x00\x00\x5c\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x55\x00\x00\x00\x00\x00\x00\x5c\x9e\x00\x00\x5c\xad\x5c\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb2\x00\x00\x5c\xb1\x00\x00\x54\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb5\x00\x00\x00\x00\x5c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb7\x5c\xb4\x52\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xba\x00\x00\x55\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xbb\x4d\xa6\x00\x00\x00\x00\x5c\xb8\x53\x62\x00\x00\x00\x00\x5c\xb9\x00\x00\x5c\xbc\x00\x00\x00\x00\x00\x00\x51\xc5\x00\x00\x5c\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc2\x52\xee\x00\x00\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xde\x5c\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc3\x00\x00\x00\x00\x00\x00\x5c\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf7\x00\x00\x5c\xc5\x4c\xb5\x45\x97\x00\x00\x4b\x9d\x00\x00\x00\x00\x00\x00\x4a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc7\x5c\xc6\x5c\xc8\x51\x7d\x00\x00\x00\x00\x4c\xf8\x4e\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xcc\x00\x00\x00\x00\x00\x00\x5c\xcb\x00\x00\x5c\xcd\x00\x00\x00\x00\x46\xf7\x00\x00\x54\x87\x00\x00\x5c\xce\x00\x00\x00\x00\x4d\x4e\x5c\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xcf\x00\x00\x5c\xd1\x00\x00\x00\x00\x00\x00\x5c\xd2\x00\x00\x5c\xd3\x48\xd8\x45\x77\x4d\x4c\x00\x00\x45\xb1\x00\x00\x00\x00\x47\xd8\x55\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x9f\x00\x00\x00\x00\x00\x00\x48\xe4\x49\x55\x00\x00\x00\x00\x00\x00\x5c\xd4\x5c\xd5\x00\x00\x49\x99\x00\x00\x00\x00\x00\x00\x5c\xd6", /* 6b80 */ "\x5c\xd7\x00\x00\x00\x00\x5c\xd9\x5c\xd8\x00\x00\x4f\x42\x00\x00\x00\x00\x53\xa4\x48\x65\x49\x92\x00\x00\x5c\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdc\x4e\x73\x00\x00\x5c\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdf\x5c\xe0\x00\x00\x00\x00\x00\x00\x5c\xe1\x00\x00\x5c\xe2\x5c\xe3\x5c\xe4\x54\x59\x47\xed\x00\x00\x5c\xe5\x00\x00\x00\x00\x49\xe9\x50\xc0\x5c\xe6\x00\x00\x00\x00\x48\x49\x58\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5b\x5c\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe8\x00\x00\x49\x69\x49\xf5\x00\x00\x00\x00\x00\x00\x4c\x97\x5c\xe9\x47\x4e\x00\x00\x5c\xea\x00\x00\x53\xd7\x00\x00\x00\x00\x46\xe2\x00\x00\x00\x00\x00\x00\x5c\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xed\x5c\xec\x00\x00\x00\x00\x5c\xef\x00\x00\x00\x00\x00\x00\x5c\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8e\x00\x00\x47\x56\x00\x00\x5c\xf1\x5c\xf2\x00\x00\x00\x00\x45\xb9\x00\x00\x00\x00\x00\x00\x5c\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf5\x5c\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x9c\x00\x00\x00\x00\x4c\xa4\x45\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6e\x5c\xf6\x53\x4d\x4d\x84\x49\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x50\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf8\x00\x00\x4e\xc4\x00\x00\x00\x00\x4e\x82\x00\x00\x5c\xf9\x55\x5e\x5c\xf7\x45\xad\x45\xe8\x00\x00\x5c\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x45\x00\x00\x52\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xfe\x50\xd2\x00\x00\x50\xc8\x5d\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa4\x00\x00\x00\x00\x49\x4c\x5d\x44\x00\x00", /* 6c80 */ "\x00\x00\x5d\x42\x5c\xfb\x55\xd9\x00\x00\x00\x00\x5c\xfd\x00\x00\x4c\x8f\x00\x00\x00\x00\x00\x00\x55\x98\x5c\xfc\x00\x00\x00\x00\x5d\x48\x00\x00\x5d\x47\x4f\xf8\x00\x00\x00\x00\x47\xfd\x00\x00\x00\x00\x4e\xad\x5d\x41\x5d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x75\x45\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xec\x00\x00\x00\x00\x5d\x4d\x00\x00\x00\x00\x5d\x50\x00\x00\x46\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xaa\x46\x5c\x5d\x52\x45\x84\x46\xc6\x5d\x4b\x5d\x51\x4e\x6f\x00\x00\x4a\x58\x00\x00\x00\x00\x5d\x49\x5d\x4c\x00\x00\x00\x00\x00\x00\x46\xee\x4d\xb8\x00\x00\x51\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd7\x00\x00\x46\x4a\x00\x00\x55\xc6\x00\x00\x5d\x55\x5d\x4e\x5d\x53\x00\x00\x5d\x4f\x00\x00\x00\x00\x00\x00\x4e\x87\x46\xca\x4d\x4b\x00\x00\x4e\x56\x00\x00\x00\x00\x49\x44\x00\x00\x5d\x56\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x54\x46\xf3\x5d\x4a\x00\x00\x4f\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xda\x5d\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x4e\x00\x00\x52\xb6\x00\x00\x54\x50\x00\x00\x00\x00\x4d\x98\x5d\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xdc\x00\x00\x00\x00\x00\x00\x50\xb7\x4f\xd4\x5d\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x72\x5d\x5c\x00\x00\x52\xac\x5d\x59\x00\x00\x50\xbc\x00\x00\x00\x00\x47\xb4\x00\x00\x5d\x5b\x4a\x72\x00\x00\x00\x00\x46\xfc\x00\x00\x00\x00\x4c\xc9\x46\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x66\x5d\x64\x00\x00\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5f\x5d\x63\x00\x00\x46\x6b\x00\x00\x00\x00\x46\xeb\x4a\x9d\x00\x00\x55\xcc\x00\x00\x4a\x8c\x5d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x7e\x00\x00\x00\x00\x45\xa7\x4d\x41\x5d\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x6a\x00\x00\x5d\x60\x48\x6b\x00\x00\x00\x00\x00\x00\x4f\x7d\x00\x00\x5d\x67\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x61\x00\x00\x5d\x68\x5d\x6b\x00\x00\x00\x00\x4d\xda\x00\x00\x5d\x69\x55\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x72\x00\x00\x00\x00\x4f\x91\x00\x00\x00\x00\x4a\x45\x00\x00\x00\x00\x5d\x6f\x00\x00\x00\x00\x5d\x73\x00\x00\x00\x00\x00\x00\x4e\x74\x00\x00\x00\x00\x00\x00\x4a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x7c\x5d\x75\x5d\x71\x00\x00\x00\x00\x00\x00\x52\xc7\x5d\x78\x00\x00\x00\x00\x5d\x74\x00\x00\x4a\xbf\x5d\x7b\x00\x00\x00\x00\x5d\x82\x00\x00\x00\x00\x55\xe1\x5d\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x77\x00\x00\x00\x00\x4c\xa5\x00\x00\x00\x00\x5d\x81\x00\x00\x5d\x70\x00\x00\x5d\x79\x00\x00\x5d\x83\x55\x4e\x5d\x76\x00\x00\x5d\x84\x00\x00\x00\x00\x47\x77\x5d\x7f\x48\x94\x00\x00\x48\xea\x00\x00\x4b\x46\x5d\x7a\x5d\x6c\x5d\x7d\x4a\x91\x5d\x80\x00\x00\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x96\x00\x00\x54\x41\x47\x69\x4a\xc0\x5d\x6d\x48\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x98\x00\x00\x51\x64\x00\x00\x00\x00\x00\x00\x5d\x87\x50\xe4\x47\x8a\x00\x00\x5d\x99\x00\x00\x5d\x92\x52\x7a\x45\xd2\x00\x00\x5d\x8c\x5d\x98\x4e\x43\x51\xa0\x5d\x93\x00\x00\x49\x50\x00\x00\x5d\x8f\x49\x45\x5d\x85\x5d\x6e\x48\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9a\x5d\x8a\x5d\x96\x00\x00\x5d\x95\x00\x00\x5d\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x88\x00\x00\x00\x00\x5d\x91\x5d\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x52\x00\x00\x51\x55\x00\x00\x00\x00\x53\xf3\x5d\x8e\x00\x00\x00\x00\x5d\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xbd\x00\x00\x00\x00\x00\x00\x5d\x8d\x00\x00\x00\x00\x5d\x86\x48\xbd\x00\x00\x00\x00\x5d\x88\x00\x00\x00\x00\x00\x00\x5d\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6b\x4c\x90", /* 6e80 */ "\x47\x5b\x00\x00\x5d\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x5d\xa5\x47\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xce\x00\x00\x5d\x9d\x00\x00\x00\x00\x00\x00\x4d\xc4\x4a\x4d\x00\x00\x5d\xa8\x00\x00\x00\x00\x52\x71\x00\x00\x00\x00\x53\x76\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa0\x00\x00\x00\x00\x5d\xa2\x00\x00\x00\x00\x00\x00\x48\xbe\x5d\x9e\x00\x00\x00\x00\x54\x97\x00\x00\x00\x00\x5d\x9f\x00\x00\x5d\xa6\x00\x00\x00\x00\x5d\xa7\x00\x00\x5d\xa1\x4e\xe6\x00\x00\x00\x00\x00\x00\x52\xa9\x00\x00\x48\x57\x5d\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa2\x00\x00\x52\x4a\x5d\xa3\x5d\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa3\x4d\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xab\x00\x00\x00\x00\x5d\xb1\x00\x00\x00\x00\x5d\xaf\x00\x00\x4f\xb7\x00\x00\x00\x00\x5d\xb7\x5d\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xad\x5d\xb4", /* 6f00 */ "\x00\x00\x4b\x78\x4f\xbc\x00\x00\x00\x00\x00\x00\x4d\xae\x00\x00\x00\x00\x54\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xc4\x00\x00\x55\x75\x00\x00\x5d\xb6\x49\xed\x54\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8e\x00\x00\x4f\x58\x54\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x6e\x4e\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xb0\x5d\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xb5\x5d\xae\x00\x00\x5d\xa9\x00\x00\x00\x00\x00\x00\x5d\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x4a\xc2\x00\x00\x00\x00\x00\x00\x5d\xc3\x00\x00\x00\x00\x5d\xbd\x4d\xc0\x00\x00\x00\x00\x46\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd2\x00\x00\x5d\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xbe\x4c\x93\x5d\xbc\x54\x46\x00\x00\x00\x00\x00\x00\x5d\xbf\x00\x00\x00\x00\x00\x00\x5d\xba\x00\x00\x5d\xb9\x00\x00\x5d\xc2\x00\x00\x00\x00\x00\x00", /* 6f80 */ "\x5d\xbb\x55\xa0\x5d\xc0\x00\x00\x48\x87\x00\x00\x5d\xb8\x00\x00\x5d\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xc5\x00\x00\x00\x00\x5d\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xcb\x00\x00\x5d\xc9\x4e\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x89\x00\x00\x5d\xc8\x00\x00\x5d\xca\x00\x00\x00\x00\x00\x00\x5d\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xd0\x50\xbe\x5d\xcf\x4a\xce\x00\x00\x00\x00\x5d\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xd4\x5d\xd1\x00\x00\x00\x00\x5d\xd3\x00\x00\x00\x00\x5d\xcd\x00\x00\x00\x00\x00\x00\x5d\xd0\x53\x80\x50\x7e\x00\x00\x00\x00\x51\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa3\x5d\xd2\x00\x00\x5d\xd6\x4d\xd4\x00\x00\x50\x55\x00\x00\x5d\xe2\x00\x00\x5d\xd5\x66\x58\x00\x00\x00\x00\x00\x00\x5d\xdb\x00\x00\x00\x00\x00\x00\x51\x87\x00\x00", /* 7000 */ "\x00\x00\x5d\xdd\x00\x00\x00\x00\x00\x00\x5d\xd7\x55\x50\x5d\xd8\x00\x00\x5d\xd9\x00\x00\x5d\xda\x00\x00\x00\x00\x00\x00\x5d\xde\x00\x00\x5d\xdc\x00\x00\x00\x00\x00\x00\x55\xd1\x00\x00\x00\x00\x5d\xe4\x00\x00\x5d\xe0\x5d\xdf\x00\x00\x52\xb0\x53\x5c\x5d\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xde\x52\xae\x5d\xe3\x00\x00\x00\x00\x00\x00\x46\x5b\x00\x00\x00\x00\x00\x00\x5d\xe5\x00\x00\x5d\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x85\x00\x00\x00\x00\x00\x00\x4b\x65\x4a\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x73\x00\x00\x00\x00\x00\x00\x54\x6a\x4c\xbc\x00\x00\x00\x00", /* 7080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xea\x00\x00\x00\x00\x00\x00\x49\x7d\x4f\xcb\x00\x00\x00\x00\x00\x00\x4d\xad\x00\x00\x00\x00\x00\x00\x4f\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xed\x5d\xee\x48\x61\x5d\xf0\x5d\xec\x00\x00\x00\x00\x00\x00\x52\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xef\x47\x88\x49\xd7\x52\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd1\x00\x00\x00\x00\x5d\xf2\x00\x00\x00\x00\x00\x00\x50\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf3\x00\x00\x00\x00\x00\x00\x53\x8c\x00\x00\x5d\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x87\x00\x00\x00\x00\x00\x00\x5d\xf8\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x53\xee\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xfa\x54\x4f\x00\x00\x5d\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x47\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xfc\x5d\xfd\x00\x00\x4c\x6f\x00\x00\x00\x00\x5e\x42\x00\x00\x54\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x85\x5e\x43\x00\x00\x00\x00\x4b\xdd\x00\x00\x00\x00\x5d\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x41\x00\x00\x54\xea\x53\x57\x5d\xfe\x47\x42\x00\x00\x54\xa0\x00\x00\x00\x00\x5e\x44\x00\x00\x4c\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x90\x00\x00\x00\x00", /* 7180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x47\x00\x00\x00\x00\x00\x00\x5e\x45\x00\x00\x46\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x46\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9d\x5e\x48\x00\x00\x00\x00\x00\x00\x4f\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbb\x00\x00\x00\x00\x00\x00\x5e\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x47\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x4d\x00\x00\x00\x00\x5e\x4b\x00\x00\x49\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf8\x5e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x53\x00\x00\x4a\x79\x00\x00\x5e\x4e\x00\x00\x5e\x51\x50\x47\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfb\x5e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x66\x54\xce\x5e\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x56\x54\xe6\x57\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x54\x00\x00\x00\x00\x00\x00\x5e\x59\x00\x00\x5e\x57\x5e\x58\x00\x00\x5e\x5a\x5e\x5b", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x5c\x00\x00\x00\x00\x5e\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x5e\x00\x00\x4c\x87\x00\x00\x5e\x60\x5e\x5f\x00\x00\x00\x00\x5e\x61\x00\x00\x5e\x62\x00\x00\x00\x00\x53\xa9\x45\xcc\x00\x00\x00\x00\x00\x00\x50\x96\x5e\x63\x5e\x64\x52\xdd\x4c\x79\x5e\x65\x5e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x67\x47\x67\x4a\xbd\x00\x00\x00\x00\x5e\x68\x55\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x69\x53\xfc\x00\x00\x49\x73\x00\x00\x55\xb7\x00\x00\x4a\xaf\x00\x00\x50\x9a\x55\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7b\x00\x00\x46\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x58\x00\x00\x5e\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x46\xa2\x00\x00\x00\x00\x00\x00\x54\x8a\x5e\x6b\x00\x00", /* 7280 */ "\x53\x54\x5e\x6c\x5e\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6f\x00\x00\x00\x00\x00\x00\x5e\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xdc\x00\x00\x5e\x71\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x72\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc5\x00\x00\x00\x00\x4c\xa7\x00\x00\x5e\x73\x5e\x74\x00\x00\x00\x00\x00\x00\x48\x52\x00\x00\x00\x00\x5e\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x75\x00\x00\x00\x00\x00\x00\x4e\x5a\x5e\x76\x5e\x78\x00\x00\x5e\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7a\x00\x00\x51\xdb\x00\x00\x5e\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x52\x74\x00\x00\x4e\xcf\x00\x00\x50\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7d\x5e\x7e\x5e\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7b\x00\x00\x00\x00\x4a\xdb\x4c\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x80\x52\xfe\x5e\x7f\x00\x00\x00\x00\x50\x6f\x54\xd6\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x84\x5e\x81\x00\x00\x00\x00\x00\x00\x4a\x51\x5e\x83\x5e\x85\x00\x00\x4e\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x86\x5e\x8b\x00\x00\x00\x00\x00\x00\x5e\x88\x49\xc5\x4f\xd0\x00\x00\x00\x00\x4f\x45\x5e\x89\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x87\x00\x00\x50\x4f\x53\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8c\x4c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x95\x51\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8e\x5e\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x65\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x92\x00\x00\x5e\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x93\x00\x00\x4d\x61\x00\x00\x00\x00\x5e\x96\x00\x00\x5e\x94\x5e\x95\x00\x00\x51\xcb\x5e\x97\x00\x00\x00\x00\x00\x00\x00\x00", /* 7380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x6e\x00\x00\x00\x00\x47\x83\x00\x00\x45\xfd\x00\x00\x49\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf9\x5e\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9c\x00\x00\x5e\x99\x00\x00\x00\x00\x5e\x9d\x00\x00\x4c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x98\x5e\x9e\x53\x99\x00\x00\x00\x00\x4d\x5d\x5e\x9b\x00\x00\x00\x00\x00\x00\x5e\xa2\x00\x00\x00\x00\x00\x00\x5e\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa5\x00\x00\x4b\x99\x00\x00\x00\x00\x5e\xa1\x00\x00\x5e\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb9\x00\x00\x00\x00\x50\x66\x5e\xa3\x00\x00\x00\x00\x5e\xa4\x00\x00\x00\x00\x00\x00\x5e\xa8\x00\x00\x00\x00\x5e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xb7\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x48\xdb\x00\x00\x5e\xa9\x45\xeb\x5e\xa7\x00\x00\x50\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5c\x00\x00\x00\x00\x5e\xac\x5e\xaa\x00\x00\x00\x00\x5e\xad\x5e\xab\x00\x00\x00\x00\x00\x00\x5e\xae\x00\x00\x00\x00\x00\x00\x5e\xaf\x54\x53\x4c\xd8\x52\xa3\x52\x9f\x00\x00\x00\x00\x00\x00\x5e\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb2\x00\x00\x5e\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb1\x00\x00\x00\x00\x00\x00\x5e\xb4\x53\xf1\x4f\x52\x5e\xb6\x00\x00\x4b\x5b\x5e\xb3\x50\x8c\x00\x00\x5e\xbc\x5e\xb9\x5e\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb7\x5e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbe\x5e\xb8\x00\x00\x00\x00\x51\x88\x00\x00\x00\x00\x68\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbf\x00\x00", /* 7480 */ "\x00\x00\x00\x00\x00\x00\x52\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbd\x00\x00\x50\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc1\x5e\xc0\x00\x00\x00\x00\x5e\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x64\x00\x00\x00\x00\x00\x00\x5e\xc7\x00\x00\x54\x52\x5e\xc8\x00\x00\x00\x00\x49\xc2\x5e\xc9\x00\x00\x5e\xca\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xcb\x00\x00\x5e\xcc\x5e\xce\x5e\xcd\x00\x00\x00\x00\x00\x00\x4c\xd4\x5e\xcf\x5e\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7500 */ "\x00\x00\x5e\xd1\x00\x00\x5e\xd3\x5e\xd2\x5e\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xd6\x5e\xd5\x5e\xd7\x00\x00\x00\x00\x54\x95\x00\x00\x5e\xd8\x00\x00\x53\xe6\x00\x00\x00\x00\x4b\x55\x00\x00\x4b\x66\x00\x00\x52\xa7\x00\x00\x5e\xd9\x45\x99\x00\x00\x00\x00\x00\x00\x45\xc0\x00\x00\x55\xd7\x5e\xda\x00\x00\x45\xb6\x00\x00\x00\x00\x4d\x58\x5e\xdb\x00\x00\x00\x00\x58\xfe\x45\x63\x46\x7c\x48\xa0\x49\x67\x00\x00\x00\x00\x00\x00\x45\x7c\x57\x65\x00\x00\x45\x55\x46\x77\x5e\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xdd\x00\x00\x5e\xe1\x00\x00\x00\x00\x5e\xe0\x5e\xdf\x5b\x7c\x47\xae\x5e\xde\x00\x00\x55\x8f\x00\x00\x47\x8b\x00\x00\x00\x00\x4e\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x47\xab\x5e\xe3\x5e\xe2\x4d\x72\x50\x86\x00\x00\x00\x00\x49\xfe\x00\x00\x55\x9a\x00\x00\x5e\xe4\x4c\xf0\x51\xb4\x5e\xe5\x00\x00\x52\xfd\x48\xb9\x5e\xe6\x00\x00\x5e\xe9\x00\x00\x5e\xe7\x4a\xa9\x00\x00\x00\x00\x4e\x54\x5e\xe8\x00\x00\x5e\xeb\x50\xdd\x5e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xd4", /* 7580 */ "\x00\x00\x00\x00\x5e\xec\x00\x00\x00\x00\x00\x00\x5e\xed\x5e\xee\x00\x00\x5e\xf0\x5e\xef\x4e\xa0\x00\x00\x00\x00\x51\x71\x55\xb0\x00\x00\x4c\xb4\x00\x00\x00\x00\x5e\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf2\x00\x00\x00\x00\x5e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf5\x00\x00\x5e\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xfd\x4d\x97\x5e\xf7\x00\x00\x5e\xf9\x00\x00\x00\x00\x5e\xfb\x54\xe1\x00\x00\x00\x00\x5e\xfc\x5e\xfa\x51\x42\x00\x00\x00\x00\x00\x00\x5e\xf6\x5e\xf8\x00\x00\x49\xbf\x00\x00\x4e\x4a\x00\x00\x00\x00\x5f\x41\x00\x00\x00\x00\x5e\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x42\x00\x00\x51\x82\x53\xfd\x00\x00\x00\x00\x55\x49\x5f\x43\x00\x00\x4c\x47\x00\x00\x00\x00\x5f\x45\x00\x00\x00\x00\x00\x00\x51\x74\x5f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4a\x00\x00\x5f\x4c\x5f\x4d\x50\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4b\x00\x00\x5f\x48\x00\x00\x5f\x46\x5f\x47", /* 7600 */ "\x00\x00\x5f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4f\x00\x00\x5f\x4e\x00\x00\x52\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x50\x5f\x52\x5f\x53\x5f\x54\x00\x00\x5f\x55\x00\x00\x54\xa4\x5f\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x00\x00\x00\x00\x00\x00\x5f\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb7\x00\x00\x00\x00\x00\x00\x5f\x5c\x5f\x59\x5f\x5a\x00\x00\x00\x00\x00\x00\x54\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xaa\x00\x00\x00\x00\x00\x00\x53\x7e\x00\x00\x5f\x5b\x00\x00\x00\x00\x00\x00\x5f\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5e\x5f\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x62\x5f\x60\x5f\x61\x5f\x63\x00\x00\x5f\x64\x00\x00\x00\x00\x00\x00\x5f\x65\x00\x00\x5f\x66\x00\x00\x00\x00\x00\x00\x5f\x67\x00\x00\x53\x9a\x00\x00\x46\x4b\x46\xe8\x5f\x68\x46\x59\x45\x4b\x00\x00", /* 7680 */ "\x5f\x6a\x00\x00\x5f\x69\x5f\x6b\x45\xef\x00\x00\x4a\xb0\x4c\xbb\x5f\x6c\x00\x00\x00\x00\x5f\x6d\x00\x00\x00\x00\x52\x99\x00\x00\x52\xa4\x00\x00\x00\x00\x4e\x81\x00\x00\x00\x00\x53\x96\x00\x00\x00\x00\x5f\x6e\x5f\x6f\x5f\x72\x5f\x70\x00\x00\x5f\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xda\x00\x00\x5f\x74\x00\x00\x00\x00\x00\x00\x5f\x75\x00\x00\x00\x00\x68\x68\x5f\x76\x5f\x77\x5f\x78\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc7\x00\x00\x00\x00\x5f\x79\x53\xba\x00\x00\x00\x00\x50\x57\x00\x00\x51\xb5\x00\x00\x47\x74\x00\x00\x00\x00\x5f\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x7d\x00\x00\x00\x00\x00\x00\x5f\x7c\x4d\x65\x00\x00\x00\x00\x00\x00\x48\x44\x5c\xc9\x00\x00\x5f\x7e\x4b\x84\x00\x00\x5f\x7f\x00\x00\x49\xe3\x48\x90\x5f\x80\x00\x00\x53\xf7\x00\x00\x00\x00\x5f\x81\x00\x00\x00\x00\x00\x00\x46\x75\x00\x00\x00\x00\x00\x00\x50\x80\x00\x00\x46\x74\x00\x00\x00\x00\x00\x00\x46\x78\x00\x00\x00\x00\x5f\x83\x00\x00\x00\x00\x50\x82\x00\x00", /* 7700 */ "\x00\x00\x48\x47\x00\x00\x00\x00\x5f\x86\x00\x00\x00\x00\x5f\x85\x5f\x84\x52\xbc\x00\x00\x4d\xa2\x45\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8b\x00\x00\x00\x00\x51\xca\x46\x42\x4e\x6a\x00\x00\x00\x00\x00\x00\x5f\x87\x5f\x89\x5f\x8a\x00\x00\x00\x00\x5f\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8c\x5f\x8d\x00\x00\x4e\x5f\x00\x00\x49\xa5\x00\x00\x00\x00\x00\x00\x47\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8e\x5f\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x90\x5f\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6c\x00\x00\x4a\x73\x00\x00\x5f\x94\x4a\x96\x00\x00\x5f\x91\x00\x00\x00\x00\x5f\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x97\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x96\x5f\x95", /* 7780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x99\x00\x00\x00\x00\x5f\x98\x00\x00\x00\x00\x5f\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9c\x00\x00\x5f\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb0\x52\x7d\x00\x00\x00\x00\x5f\x9d\x00\x00\x00\x00\x4f\x9b\x00\x00\x00\x00\x5f\x9e\x00\x00\x00\x00\x5f\x9f\x00\x00\x5f\xa3\x5f\xa1\x5f\xa2\x00\x00\x5f\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x50\x00\x00\x00\x00\x5f\xa6\x50\xed\x5f\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc1\x5f\xa8\x00\x00\x45\xb0\x00\x00\x55\xc9\x00\x00\x4e\x4d\x00\x00\x00\x00\x00\x00\x4a\x82\x5f\xa9\x51\xbb\x00\x00\x00\x00\x00\x00\x45\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xab\x00\x00\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x49\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xad\x00\x00\x46\xd3\x4c\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb0\x5f\xae\x00\x00\x00\x00\x00\x00\x4d\x45\x54\xb4\x52\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc2\x00\x00\x4a\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x84\x4a\xef\x00\x00\x00\x00\x53\x69\x00\x00\x00\x00\x52\xbf\x00\x00\x5f\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb6\x00\x00\x5f\xb9\x00\x00\x00\x00\x00\x00", /* 7880 */ "\x00\x00\x4f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb7\x51\x95\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xba\x53\x56\x5f\xb5\x00\x00\x00\x00\x51\x7b\x00\x00\x4f\xb1\x00\x00\x52\xd2\x00\x00\x54\x5b\x00\x00\x00\x00\x5f\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbb\x00\x00\x00\x00\x00\x00\x4d\xf8\x00\x00\x50\x7d\x5f\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7a\x00\x00\x5f\xc4\x00\x00\x5f\xc3\x00\x00\x00\x00\x4a\x62\x00\x00\x00\x00\x00\x00\x5f\xc5\x5f\xc0\x00\x00\x00\x00\x00\x00\x5f\xc6\x5f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x9c\x5f\xbf\x00\x00\x00\x00\x5f\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc8\x49\xb4\x00\x00\x00\x00\x00\x00\x5f\xc7\x00\x00\x00\x00\x48\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xca\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x51\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x9c\x00\x00\x00\x00\x5f\xcd\x4d\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xb9\x00\x00\x00\x00\x00\x00\x51\x4c\x5f\xd0\x5f\xcf\x00\x00\x00\x00\x00\x00\x5f\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x53\x00\x00\x49\x58\x00\x00\x46\x63\x00\x00\x5f\xd3\x53\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x92\x4e\xd8\x4f\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8c\x00\x00\x00\x00\x55\x5c\x00\x00\x5f\xd8\x4c\xdc\x53\x65\x00\x00\x00\x00\x5f\xd7\x00\x00\x00\x00\x4c\xeb\x45\xa1\x5f\xd6\x5f\xd4\x00\x00\x4f\x89\x00\x00\x00\x00\x49\xf9\x00\x00\x00\x00\x4d\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x53\x00\x00\x00\x00\x52\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xda", /* 7980 */ "\x50\xe7\x4d\x75\x00\x00\x00\x00\x50\xae\x4f\x87\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdb\x00\x00\x00\x00\x52\x86\x4b\xa7\x45\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdf\x00\x00\x5f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xaa\x4f\xd7\x00\x00\x00\x00\x5f\xe0\x00\x00\x00\x00\x00\x00\x54\xf5\x00\x00\x50\xfa\x55\x53\x00\x00\x5f\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6a\x5f\xe2\x00\x00\x00\x00\x55\x5d\x54\x63\x53\xd0\x45\xf1\x46\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe3\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xed\x4d\xba\x00\x00\x00\x00\x5f\xe4\x00\x00\x00\x00\x4c\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x83\x00\x00\x54\xb5\x00\x00\x5f\xe7\x50\x8f\x00\x00\x4c\x8a\x5f\xe5\x00\x00\x4d\x9f\x00\x00\x00\x00\x5f\xe6\x00\x00\x00\x00\x00\x00\x4b\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x75\x00\x00\x00\x00\x00\x00\x00\x00", /* 7a00 */ "\x52\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe8\x00\x00\x00\x00\x47\xf4\x00\x00\x5f\xe9\x47\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xfa\x00\x00\x00\x00\x50\x87\x5f\xea\x5f\xeb\x4d\xcf\x00\x00\x52\x96\x00\x00\x00\x00\x5f\xec\x53\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x92\x00\x00\x00\x00\x5f\xed\x47\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xef\x00\x00\x00\x00\x00\x00\x5f\xf0\x4d\xbe\x4f\xc7\x5f\xee\x4f\xd5\x4e\x94\x00\x00\x48\xd4\x5f\xf1\x00\x00\x00\x00\x52\xbe\x00\x00\x00\x00\x5f\xf3\x00\x00\x00\x00\x00\x00\x48\x91\x52\x54\x50\xb8\x50\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf5\x5f\xf4\x4e\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf6\x00\x00\x4f\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf8\x00\x00\x00\x00\x00\x00\x4b\x86\x00\x00\x49\x86\x00\x00\x00\x00\x5f\xf9\x47\x8d\x00\x00\x00\x00\x5f\xfa\x00\x00\x4e\x91", /* 7a80 */ "\x00\x00\x4a\xfd\x00\x00\x51\x69\x54\x99\x00\x00\x00\x00\x00\x00\x5f\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb0\x4b\xe9\x00\x00\x5f\xfc\x5f\xfe\x60\x41\x5f\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x42\x4a\x65\x00\x00\x00\x00\x00\x00\x50\xaa\x49\xa7\x60\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x44\x00\x00\x00\x00\x00\x00\x55\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x47\x00\x00\x00\x00\x00\x00\x60\x46\x60\x49\x60\x48\x00\x00\x60\x4a\x52\xf0\x00\x00\x60\x4b\x45\xdd\x00\x00\x60\x4c\x00\x00\x60\x4d\x00\x00\x60\x4f\x60\x4e\x60\x51\x00\x00\x60\x50\x00\x00\x00\x00\x00\x00\x60\x52\x60\x53\x00\x00\x49\xe7\x60\x54\x00\x00\x66\xc1\x47\x6e\x60\x55\x60\x56\x54\x6b\x00\x00\x4d\x50\x60\x57\x60\x58\x00\x00\x00\x00\x51\xc8\x60\x5a\x00\x00\x60\x5b\x00\x00\x48\xef\x60\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x71\x00\x00\x60\x5d\x45\xf5\x54\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x52\x87", /* 7b00 */ "\x00\x00\x00\x00\x60\x5e\x00\x00\x54\xd5\x00\x00\x60\x62\x00\x00\x51\xcf\x00\x00\x60\x61\x60\x60\x00\x00\x00\x00\x00\x00\x60\x5f\x00\x00\x49\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe7\x60\x65\x00\x00\x4f\x41\x00\x00\x00\x00\x60\x66\x00\x00\x47\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf4\x4f\xd9\x00\x00\x60\x68\x00\x00\x00\x00\x00\x00\x46\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x63\x00\x00\x60\x67\x60\x64\x00\x00\x00\x00\x49\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6c\x4a\xc7\x00\x00\x4d\x9b\x46\xa7\x00\x00\x4b\x8f\x60\x6b\x60\x6a\x00\x00\x52\xf5\x60\x69\x4b\x45\x4b\x7c\x00\x00\x49\xd0\x00\x00\x46\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x84\x00\x00\x50\x48\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4e\x00\x00\x60\x73\x00\x00\x60\x71\x60\x72\x00\x00\x00\x00\x60\x70\x60\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7b80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9b\x4f\x51\x00\x00\x00\x00\x00\x00\x55\xa4\x00\x00\x60\x77\x00\x00\x60\x7b\x00\x00\x00\x00\x60\x7a\x00\x00\x4e\xe0\x4c\xcc\x00\x00\x48\x43\x60\x75\x60\x7c\x60\x79\x00\x00\x60\x78\x60\x74\x60\x82\x60\x76\x00\x00\x46\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x00\x00\x00\x00\x51\x8d\x00\x00\x00\x00\x00\x00\x4a\xfb\x00\x00\x00\x00\x60\x80\x00\x00\x00\x00\x00\x00\x50\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa1\x51\xe8\x00\x00\x00\x00\x49\xe8\x00\x00\x60\x81\x4f\xb6\x00\x00\x49\xa8\x00\x00\x60\x7e\x60\x7f\x00\x00\x00\x00\x60\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x83\x00\x00\x00\x00\x48\x75\x00\x00\x00\x00\x00\x00\x4a\xd8\x60\x87\x60\x85\x00\x00\x00\x00\x60\x84\x00\x00\x00\x00\x00\x00\x54\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8c\x00\x00\x00\x00\x60\x8e\x60\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7c00 */ "\x60\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8d\x00\x00\x00\x00\x00\x00\x4f\x53\x57\x8a\x60\x8a\x60\x88\x00\x00\x00\x00\x51\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x60\x92\x00\x00\x4b\xec\x00\x00\x60\x8f\x00\x00\x00\x00\x00\x00\x60\x90\x00\x00\x00\x00\x60\x91\x60\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x93\x51\xab\x00\x00\x00\x00\x00\x00\x00\x00\x60\x95\x52\x70\x4f\x4c\x60\x96\x00\x00\x00\x00\x60\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x97\x4d\xfe\x00\x00\x51\xf2\x60\x9a\x00\x00\x00\x00\x00\x00\x4f\x99\x00\x00\x60\x99\x00\x00\x60\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9c\x4c\xee\x00\x00\x00\x00\x00\x00\x52\xaa\x60\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x6f\x00\x00\x60\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf0\x00\x00", /* 7c80 */ "\x00\x00\x55\xe7\x4e\x85\x60\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x9e\x00\x00\x4f\xcc\x00\x00\x53\xc9\x00\x00\x00\x00\x60\xa1\x00\x00\x4c\xa9\x00\x00\x00\x00\x4c\x4b\x00\x00\x4d\x59\x4b\xf7\x00\x00\x00\x00\x4f\xc8\x00\x00\x00\x00\x00\x00\x4b\xfb\x00\x00\x60\xa5\x60\xa3\x00\x00\x60\xa2\x52\xab\x00\x00\x4b\xd4\x60\xa7\x00\x00\x00\x00\x60\xa4\x00\x00\x60\xa6\x60\xab\x00\x00\x00\x00\x60\xaa\x60\xa9\x60\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xac\x00\x00\x00\x00\x00\x00\x60\xae\x46\x6c\x00\x00\x51\xbc\x00\x00\x60\xb0\x00\x00\x00\x00\x60\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x54\x71\x00\x00\x00\x00\x00\x00\x51\x60\x00\x00\x00\x00\x00\x00\x60\xb1\x00\x00\x00\x00\x00\x00\x48\x84\x00\x00\x60\xb3\x00\x00\x00\x00\x00\x00\x60\xb4\x00\x00\x54\x92\x51\x8c\x51\x4b\x00\x00\x60\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xb5\x00\x00\x00\x00\x60\xb6\x00\x00\x60\xb7\x00\x00\x60\xb8\x00\x00\x46\xc7\x00\x00\x52\xc2\x48\xfa\x00\x00\x00\x00\x51\xfe\x00\x00", /* 7d00 */ "\x46\xdb\x00\x00\x60\xba\x00\x00\x47\xbd\x4b\x67\x60\xb9\x00\x00\x00\x00\x00\x00\x60\xbd\x4c\xf9\x00\x00\x49\xe2\x00\x00\x00\x00\x4f\xb5\x00\x00\x00\x00\x00\x00\x47\xa6\x60\xbc\x00\x00\x4f\x47\x4c\x78\x46\x80\x49\xf3\x4f\xf3\x60\xbb\x00\x00\x00\x00\x00\x00\x47\x9f\x48\x77\x4c\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf0\x55\x92\x00\x00\x60\xc0\x51\x48\x47\x68\x00\x00\x60\xc1\x4e\x59\x00\x00\x60\xc3\x00\x00\x00\x00\x00\x00\x4c\xe4\x4c\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc2\x00\x00\x00\x00\x49\xf4\x55\x63\x46\xb9\x60\xbe\x60\xc5\x00\x00\x60\xc4\x00\x00\x00\x00\x60\xbf\x46\x88\x00\x00\x60\xc9\x60\xcc\x46\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd0\x60\xc6\x00\x00\x50\x6d\x00\x00\x00\x00\x4c\xe7\x4e\xf7\x60\xcd\x00\x00\x00\x00\x47\x57\x00\x00\x60\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcb\x00\x00\x00\x00\x48\x81\x52\x68\x60\xc7\x00\x00\x4a\xe4\x4a\xf3\x00\x00\x00\x00\x49\xf6\x00\x00\x00\x00\x00\x00\x54\xed\x00\x00\x00\x00", /* 7d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x74\x00\x00\x00\x00\x00\x00\x60\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x4a\x47\xcb\x54\xeb\x50\x70\x00\x00\x00\x00\x60\xdc\x60\xda\x00\x00\x60\xd8\x60\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd7\x51\xa3\x48\x80\x60\xd1\x60\xd9\x60\xdd\x48\xcb\x4a\x53\x00\x00\x4d\xc9\x60\xd3\x00\x00\x60\xd4\x60\xdb\x00\x00\x54\xd3\x54\xa6\x00\x00\x60\xd6\x49\xdc\x48\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd5\x00\x00\x00\x00\x4b\x97\x53\x7d\x00\x00\x00\x00\x00\x00\x47\x93\x00\x00\x48\xa5\x4a\x9b\x00\x00\x00\x00\x60\xde\x60\xe1\x00\x00\x60\xdf\x00\x00\x46\x87\x00\x00\x60\xe8\x60\xe0\x60\xe3\x00\x00\x4a\x80\x60\xe7\x00\x00\x00\x00\x60\xe2\x00\x00\x00\x00\x00\x00\x48\x4e\x4c\xfc\x00\x00\x00\x00\x55\x6b\x00\x00\x00\x00\x4e\x9a\x00\x00\x00\x00\x60\xe6\x00\x00\x48\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe4\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x4b\xaa\x00\x00\x00\x00\x48\x59\x60\xe9\x00\x00\x00\x00\x00\x00\x60\xee\x60\xea\x60\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe6\x00\x00\x00\x00\x4f\x6b\x60\xed\x00\x00\x60\xeb\x5b\xcc\x55\xa8\x00\x00\x00\x00\x4e\x93\x00\x00\x00\x00\x00\x00\x00\x00\x49\xe4\x00\x00\x00\x00\x49\xf7\x00\x00\x00\x00\x60\xf2\x60\xf9\x00\x00\x00\x00\x60\xf4\x00\x00\x60\xf8\x00\x00\x60\xf6\x60\xef\x60\xf5\x00\x00\x60\xf3\x48\x66\x00\x00\x00\x00\x47\x59\x00\x00\x60\xf7\x00\x00\x00\x00\x60\xf0\x00\x00\x60\xf1\x00\x00\x48\x68\x53\x73\x00\x00\x52\xda\x00\x00\x00\x00\x00\x00\x00\x00\x60\xfd\x00\x00\x48\x9a\x51\xd4\x60\xfb\x00\x00\x00\x00\x60\xfe\x61\x41\x00\x00\x00\x00\x60\xfa\x60\xfc\x00\x00\x00\x00\x52\xda\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf1\x61\x42\x00\x00\x61\x45\x61\x44\x53\x73\x00\x00\x4d\x9a\x00\x00\x00\x00\x4b\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x43\x00\x00\x61\x47\x61\x46\x61\x48\x00\x00\x61\x4a", /* 7e80 */ "\x00\x00\x00\x00\x55\xeb\x61\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x52\x78\x61\x4c\x51\xbf\x00\x00\x61\x4e\x00\x00\x61\x4d\x55\xfa\x52\x73\x00\x00\x61\x4f\x61\x50\x61\x51\x00\x00\x61\x52\x00\x00\x00\x00\x00\x00\x00\x00\x61\x53\x53\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x84\x00\x00\x61\x54\x00\x00\x61\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x56\x00\x00\x61\x57\x00\x00\x00\x00\x00\x00\x00\x00\x61\x58\x54\xcb\x61\x59\x00\x00\x51\x6e\x61\x5a\x00\x00\x00\x00\x61\x5c\x61\x5b\x00\x00\x00\x00\x61\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5e\x61\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x61\x61\x60\x61\x62\x4c\x4e\x55\xef\x00\x00\x00\x00\x46\x8c\x00\x00\x4f\x82\x00\x00\x4c\x99\x00\x00\x00\x00\x55\x79\x00\x00\x55\xa5\x61\x63\x5a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f80 */ "\x00\x00\x00\x00\x61\x64\x61\x66\x00\x00\x4d\xfa\x61\x65\x61\x67\x61\x68\x00\x00\x4a\xd1\x00\x00\x61\x69\x00\x00\x45\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6d\x00\x00\x00\x00\x61\x6c\x61\x6b\x00\x00\x00\x00\x61\x6e\x00\x00\x61\x6f\x47\xb1\x00\x00\x00\x00\x00\x00\x55\x96\x45\x98\x00\x00\x00\x00\x00\x00\x00\x00\x61\x71\x61\x70\x00\x00\x00\x00\x61\x72\x00\x00\x00\x00\x00\x00\x61\x74\x00\x00\x61\x75\x61\x73\x00\x00\x00\x00\x00\x00\x47\x8f\x00\x00\x00\x00\x00\x00\x4f\xfb\x00\x00\x00\x00\x00\x00\x61\x78\x61\x79\x00\x00\x00\x00\x00\x00\x61\x7a\x00\x00\x4d\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x69\x00\x00\x54\xf9\x61\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x69\x61\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7d\x00\x00\x00\x00\x61\x7e\x00\x00\x55\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb6\x00\x00\x00\x00\x61\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x80\x00\x00\x51\xf6\x4d\xb5\x00\x00\x00\x00\x00\x00", /* 8000 */ "\x52\xa0\x49\x85\x00\x00\x47\x60\x61\x81\x46\x70\x53\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x61\x82\x51\xe6\x00\x00\x00\x00\x00\x00\x49\x8e\x00\x00\x61\x83\x00\x00\x00\x00\x49\x9a\x00\x00\x4f\xec\x54\xe4\x61\x84\x00\x00\x00\x00\x61\x85\x00\x00\x00\x00\x00\x00\x00\x00\x61\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xab\x00\x00\x00\x00\x4e\x99\x00\x00\x00\x00\x00\x00\x00\x00\x61\x89\x00\x00\x55\xb8\x00\x00\x61\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8b\x00\x00\x00\x00\x00\x00\x61\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8c\x00\x00\x00\x00\x00\x00\x4b\xb5\x00\x00\x61\x8d\x00\x00\x54\x79\x00\x00\x00\x00\x00\x00\x48\xbb\x61\x8e\x00\x00\x4b\x89\x61\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xca\x61\x93\x00\x00\x61\x92\x61\x91\x4d\xa8\x00\x00\x61\x94\x48\xd7\x00\x00\x61\x95\x00\x00\x00\x00\x00\x00\x61\x96\x53\xe4\x61\x97", /* 8080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x61\x98\x61\x99\x53\xb6\x4b\x41\x00\x00\x4a\x42\x00\x00\x55\x7f\x4e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x9a\x00\x00\x00\x00\x52\x67\x00\x00\x52\x6a\x00\x00\x61\x9b\x52\x92\x00\x00\x4c\x8c\x00\x00\x00\x00\x00\x00\x4c\xc5\x53\x82\x00\x00\x00\x00\x49\x7b\x00\x00\x00\x00\x00\x00\x4b\x79\x4c\xfb\x00\x00\x61\x9e\x61\x9c\x00\x00\x50\xeb\x00\x00\x52\xd5\x48\xac\x00\x00\x54\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf6\x61\xa3\x00\x00\x4e\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb2\x00\x00\x52\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x88\x00\x00\x00\x00\x61\xa1\x61\xa4\x61\x9f\x00\x00\x61\xa2\x50\xb6\x00\x00\x00\x00\x4d\x63\x00\x00\x00\x00\x4e\xe9\x61\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa6\x00\x00\x61\xa7\x00\x00\x00\x00\x4e\xab\x00\x00\x00\x00\x00\x00\x4b\xe3\x00\x00\x00\x00\x00\x00\x61\xb0\x47\x4f\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x48\x74\x00\x00\x00\x00\x50\x51\x55\xec\x47\xe3\x50\x79\x61\xa5\x53\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5c\x61\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xaa\x00\x00\x4a\xb4\x00\x00\x4c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x61\xad\x00\x00\x00\x00\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x61\xac\x00\x00\x00\x00\x00\x00\x00\x00\x61\xab\x00\x00\x00\x00\x52\xc4\x00\x00\x4d\x62\x61\xaf\x00\x00\x61\xae\x52\x47\x4c\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb3\x61\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x51\xce\x00\x00\x00\x00\x61\xb2\x00\x00\x4b\xa4\x61\xb1\x00\x00\x00\x00\x61\xb6\x00\x00\x00\x00\x00\x00\x4d\xb6\x4c\xa0\x52\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9a", /* 8180 */ "\x61\xba\x00\x00\x61\xbb\x61\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb8\x00\x00\x61\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd8\x00\x00\x00\x00\x00\x00\x61\xbf\x00\x00\x61\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x51\x91\x00\x00\x4d\x8a\x50\x60\x00\x00\x00\x00\x61\xbc\x00\x00\x00\x00\x61\xbe\x61\xc1\x00\x00\x00\x00\x00\x00\x4e\xf6\x61\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xc4\x00\x00\x00\x00\x50\x76\x00\x00\x61\xc0\x00\x00\x00\x00\x61\xc3\x00\x00\x61\xca\x00\x00\x00\x00\x61\xc7\x61\xc6\x53\x5f\x61\xc8\x00\x00\x61\xc9\x00\x00\x00\x00\x00\x00\x54\x74\x00\x00\x61\xc5\x61\xcb\x00\x00\x00\x00\x00\x00\x61\xcc\x00\x00\x00\x00\x00\x00\x61\xcd\x00\x00\x4d\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x61\xce\x61\xcf\x61\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd1\x61\xd2\x00\x00\x00\x00\x4a\x47\x00\x00\x53\x8a\x00\x00\x51\x73\x4c\xd0\x00\x00\x45\xc3\x00\x00\x00\x00\x4d\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x48\x4c\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd3\x61\xd4\x4a\x89\x00\x00\x61\xd5\x00\x00", /* 8200 */ "\x00\x00\x61\xd6\x61\xd7\x00\x00\x00\x00\x61\xd8\x00\x00\x53\x58\x46\x6a\x57\x78\x62\xba\x00\x00\x50\x94\x61\xd9\x4c\x58\x00\x00\x61\xda\x00\x00\x61\xdb\x00\x00\x00\x00\x00\x00\x61\xdc\x4e\x5b\x4c\xaa\x00\x00\x00\x00\x4f\xc1\x4f\xb8\x00\x00\x4a\x63\x4b\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdd\x48\x9f\x61\xde\x49\x56\x00\x00\x61\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe1\x00\x00\x54\xdb\x4b\x87\x53\xac\x61\xe0\x46\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xae\x61\xe3\x61\xe4\x00\x00\x00\x00\x61\xe5\x00\x00\x61\xe6\x00\x00\x00\x00\x61\xe8\x00\x00\x61\xe7\x00\x00\x4c\x4a\x00\x00\x61\xe9\x00\x00\x61\xea\x61\xeb\x00\x00\x00\x00\x55\xb4\x45\xc4\x00\x00\x61\xec\x47\xc3\x00\x00\x00\x00\x00\x00\x4d\x54\x61\xed\x53\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xee\x00\x00", /* 8280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9a\x00\x00\x61\xef\x00\x00\x00\x00\x00\x00\x00\x00\x61\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbd\x00\x00\x00\x00\x00\x00\x49\x72\x00\x00\x61\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7b\x4a\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x61\xf1\x61\xf4\x54\x42\x00\x00\x4f\xe5\x00\x00\x46\xd9\x00\x00\x46\x83\x00\x00\x00\x00\x00\x00\x00\x00\x49\x53\x4d\xd0\x00\x00\x61\xf3\x00\x00\x4e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4b\x61\xf9\x55\x59\x52\xd7\x00\x00\x00\x00\x4a\xb8\x00\x00\x62\x46\x00\x00\x53\x77\x62\x43\x00\x00\x62\x41\x61\xf7\x00\x00\x61\xf5\x00\x00\x61\xf6\x00\x00\x46\xd6\x4a\x5f\x54\xb0\x00\x00\x00\x00\x00\x00\x4d\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xee\x00\x00\x61\xfb\x61\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x61\xfe\x62\x44\x61\xfd\x00\x00\x00\x00\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x61\xf8\x46\x46\x61\xfc\x54\x7a\x4b\xd3\x62\x42\x00\x00\x00\x00\x62\x45\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4a\x53\xf6\x62\x52\x00\x00\x00\x00\x00\x00\x50\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x58\x00\x00\x00\x00\x00\x00\x00\x00\x47\x4c\x00\x00\x00\x00\x62\x51\x00\x00\x00\x00\x00\x00\x62\x50\x00\x00\x62\x4b\x54\x7b\x00\x00\x62\x49\x62\x47\x49\x77\x00\x00\x4d\xf7\x62\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4f\x53\xb3\x00\x00\x00\x00\x48\x42\x53\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5f\x62\x4e\x00\x00\x46\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5f\x00\x00\x62\x5a\x00\x00\x4b\xa1\x00\x00\x00\x00\x00\x00\x49\xe0\x62\x5d\x00\x00\x00\x00\x62\x5b", /* 8380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x62\x00\x00\x54\x86\x00\x00\x62\x63\x62\x5c\x00\x00\x00\x00\x00\x00\x62\x59\x00\x00\x00\x00\x00\x00\x00\x00\x62\x60\x00\x00\x00\x00\x62\x57\x00\x00\x00\x00\x00\x00\x62\x53\x00\x00\x00\x00\x00\x00\x51\xee\x62\x55\x62\x61\x00\x00\x62\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x64\x00\x00\x62\x54\x54\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc9\x00\x00\x00\x00\x00\x00\x62\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x75\x00\x00\x00\x00\x00\x00\x62\x6e\x00\x00\x00\x00\x00\x00\x47\x53\x00\x00\x62\x67\x00\x00\x00\x00\x46\xd7\x00\x00\x4c\x73\x00\x00\x62\x68\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x51\x00\x00\x00\x00\x51\x80\x00\x00\x62\x6c\x00\x00\x00\x00\x00\x00\x4b\xa8\x00\x00\x00\x00\x53\xd4\x62\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6a\x00\x00\x54\xe9\x00\x00\x00\x00\x00\x00\x4b\x6c\x51\x6d\x48\xcc\x62\x71\x00\x00\x62\x65\x00\x00\x62\x74\x62\x69\x00\x00\x00\x00\x00\x00\x62\x76\x00\x00\x62\x6a\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x62\x6b\x54\xf7\x00\x00\x00\x00\x62\x6f\x00\x00\x00\x00\x52\xc9\x62\x6d\x50\xdb\x62\x72\x54\x82\x00\x00\x00\x00\x00\x00\x00\x00\x62\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x73\x00\x00\x54\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4a\x62\x77\x00\x00\x4b\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7c\x00\x00\x00\x00\x00\x00\x62\x85\x00\x00\x00\x00\x62\x84\x00\x00\x00\x00\x00\x00\x62\x79\x47\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x82\x00\x00\x62\x7e\x45\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x59\x00\x00\x00\x00\x00\x00\x48\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x47\x62\x78\x50\x71\x00\x00\x00\x00\x4e\x72\x00\x00\x00\x00\x62\x81\x00\x00\x62\x7c\x4f\x79\x51\x6c\x62\x7f\x62\x83\x00\x00\x54\x4e\x00\x00\x00\x00\x00\x00\x50\xd9\x00\x00\x62\x7b\x00\x00\x62\x7d\x50\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x62\x80\x00\x00\x62\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x93\x00\x00\x00\x00\x00\x00\x4f\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x50\x95\x00\x00\x00\x00\x52\x59\x00\x00\x00\x00\x62\x89\x00\x00\x62\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x90\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb2\x00\x00\x62\x8a\x00\x00\x00\x00\x00\x00\x4a\xba\x62\x87\x00\x00\x62\x8c\x50\xb9\x00\x00\x00\x00\x62\x88\x00\x00\x62\x8f\x00\x00\x00\x00\x4c\x94\x00\x00\x62\x91\x00\x00\x00\x00\x50\x83\x62\x86\x4f\x6d\x00\x00\x62\x8b\x00\x00\x00\x00\x62\x8e\x4f\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x62\x92\x00\x00\x00\x00\x62\x94\x62\x8d\x00\x00\x52\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x88\x00\x00\x4b\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8b\x00\x00\x00\x00\x62\x95", /* 8500 */ "\x52\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6c\x00\x00\x55\x7b\x62\x9c\x62\x9b\x00\x00\x62\x97\x62\x98\x00\x00\x54\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9a\x00\x00\x54\xa8\x00\x00\x53\xf8\x00\x00\x00\x00\x4f\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x99\x4e\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd1\x00\x00\x00\x00\x62\xa0\x62\xa5\x00\x00\x52\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x62\xa4\x53\xa8\x62\xa6\x62\xa7\x00\x00\x00\x00\x55\x65\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9e\x00\x00\x62\xa9\x00\x00\x54\x91\x62\xa3\x62\xa1\x62\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x50\xde\x54\xf0\x51\xd3\x62\xa8\x00\x00\x62\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb7\x00\x00", /* 8580 */ "\x62\xaa\x00\x00\x00\x00\x00\x00\x4a\x92\x00\x00\x00\x00\x62\xb4\x62\xac\x00\x00\x62\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb8\x62\xad\x00\x00\x00\x00\x62\xb1\x00\x00\x00\x00\x4c\xec\x00\x00\x51\xad\x00\x00\x62\xb2\x62\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xab\x00\x00\x4f\xbf\x00\x00\x62\xaf\x4c\xf1\x54\x5a\x49\x98\x46\xe1\x00\x00\x62\xb3\x53\xf9\x62\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xbf\x62\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xbc\x00\x00\x00\x00\x00\x00\x4e\xed\x00\x00\x62\xbe\x62\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc4\x62\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x68\x62\xc3\x00\x00\x00\x00\x00\x00\x4f\xf6\x4c\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe2\x00\x00\x62\xc5\x53\xed\x50\x5f\x00\x00\x00\x00\x62\xc9\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x54\x96\x00\x00\x00\x00\x00\x00\x4e\xda\x4c\xbf\x00\x00\x00\x00\x62\xc6\x62\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc7\x00\x00\x00\x00\x5c\xbd\x5c\xbe\x00\x00\x00\x00\x62\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa6\x00\x00\x5f\x82\x62\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcf\x4a\xab\x00\x00\x52\x60\x00\x00\x00\x00\x00\x00\x52\xfb\x62\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x72\x00\x00\x52\x50\x00\x00\x55\x88\x62\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x00\x00\x00\x00\x00\x00\x4b\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xb6\x00\x00\x51\x44\x00\x00\x00\x00\x00\x00\x00\x00", /* 8680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xaa\x62\xd8\x62\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd5\x00\x00\x4f\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd6\x55\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd7\x62\xd9\x62\xe3\x00\x00\x00\x00\x00\x00\x62\xdc\x62\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xdd\x00\x00\x62\xde\x4f\xea\x00\x00\x62\xe0\x00\x00\x53\xd8\x00\x00\x4d\xf9\x62\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbb\x00\x00\x62\xe9\x00\x00\x00\x00\x62\xe5\x62\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe6\x00\x00\x00\x00\x62\xe7\x4e\x66\x53\xa5\x4f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x4e\x62\xf3\x00\x00\x62\xef\x00\x00\x00\x00\x55\x99\x00\x00", /* 8700 */ "\x62\xed\x00\x00\x4e\xcd\x62\xee\x00\x00\x00\x00\x62\xeb\x00\x00\x62\xec\x62\xf1\x62\xf4\x00\x00\x00\x00\x62\xf2\x00\x00\x00\x00\x00\x00\x62\xf0\x62\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xdc\x00\x00\x62\xfa\x00\x00\x53\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf8\x00\x00\x00\x00\x00\x00\x62\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf5\x00\x00\x00\x00\x52\x6d\x00\x00\x00\x00\x00\x00\x62\xf7\x00\x00\x00\x00\x00\x00\x62\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x52\xa1\x62\xfd\x00\x00\x62\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x63\x49\x00\x00\x53\x47\x00\x00\x63\x42\x00\x00\x63\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xfb\x63\x46\x00\x00\x00\x00\x63\x4a\x00\x00\x00\x00\x51\xc3\x00\x00\x63\x43\x00\x00\x63\x45\x00\x00\x00\x00\x00\x00\x63\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x41\x00\x00\x4e\x6e\x00\x00\x62\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4b", /* 8780 */ "\x00\x00\x00\x00\x63\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x00\x00\x63\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x00\x00\x00\x00\x63\x4f\x00\x00\x00\x00\x00\x00\x63\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd6\x63\x59\x00\x00\x63\x51\x00\x00\x00\x00\x63\x52\x00\x00\x00\x00\x00\x00\x63\x56\x00\x00\x63\x4d\x54\xf4\x00\x00\x00\x00\x00\x00\x63\x50\x00\x00\x00\x00\x00\x00\x00\x00\x63\x53\x00\x00\x63\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x00\x00\x63\x5a\x00\x00\x00\x00\x63\x5b\x00\x00\x00\x00\x00\x00\x63\x63\x63\x64\x00\x00\x50\x90\x00\x00\x51\xc6\x00\x00\x00\x00\x63\x62\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbd\x00\x00\x63\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x61\x63\x5d\x63\x5f\x00\x00\x63\x65\x00\x00\x00\x00\x00\x00\x63\x66\x63\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa1\x00\x00\x63\x68\x63\x67\x53\x51\x00\x00\x00\x00\x00\x00\x63\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x63\x6b\x00\x00\x00\x00\x63\x6c\x00\x00\x63\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x43\x00\x00\x63\x6e\x00\x00\x63\x6f\x00\x00\x4b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xa4\x63\x70\x00\x00\x00\x00\x00\x00\x00\x00\x63\x71\x48\x6c\x00\x00\x00\x00\x00\x00\x4b\xa5\x00\x00\x63\x72\x00\x00\x47\x80\x00\x00\x4d\xa5\x63\x73\x00\x00\x00\x00\x4b\xed\x63\x74\x4a\xea\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc0\x00\x00\x00\x00\x63\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x54\x00\x00\x63\x7a\x00\x00\x00\x00\x63\x78\x00\x00\x52\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x79\x63\x77\x4a\xa7", /* 8880 */ "\x00\x00\x63\x76\x63\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x6a\x00\x00\x00\x00\x4a\x54\x00\x00\x63\x82\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7e\x00\x00\x00\x00\x00\x00\x4a\x57\x63\x7d\x00\x00\x63\x80\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7c\x00\x00\x00\x00\x00\x00\x63\x81\x00\x00\x63\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8d\x00\x00\x00\x00\x63\x7f\x00\x00\x54\xc5\x63\x86\x00\x00\x00\x00\x4f\x5a\x63\x85\x00\x00\x54\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x84\x00\x00\x49\xbd\x4f\x60\x63\x87\x63\x88\x48\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x63\x89\x46\xf8\x00\x00\x00\x00\x63\x8a\x63\x8b\x00\x00\x00\x00\x49\x6a\x63\x8c\x00\x00\x4f\x8a\x00\x00\x54\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x92\x4f\xa8\x53\x49\x63\x90\x00\x00\x00\x00\x4f\x43\x63\x8d\x00\x00\x00\x00\x63\x8f\x45\x7b\x4c\x8d\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x63\x8e\x00\x00\x63\x93\x00\x00\x00\x00\x4b\x51\x00\x00\x00\x00\x63\x97\x00\x00\x63\x94\x00\x00\x00\x00\x00\x00\x54\x5e\x00\x00\x51\xba\x63\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xda\x63\x96\x63\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x63\x95\x63\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9e\x00\x00\x63\xa0\x00\x00\x00\x00\x63\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9c\x00\x00\x63\x9f\x50\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa2\x63\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa4\x54\xaf\x63\xa3\x00\x00\x00\x00\x00\x00\x63\xa7\x00\x00\x63\xa5\x00\x00\x00\x00\x00\x00\x63\xa6\x00\x00\x00\x00\x63\xa8\x00\x00\x63\xa9\x00\x00\x00\x00\x4d\xdf\x00\x00\x63\xaa\x00\x00\x00\x00\x63\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xac\x45\x58", /* 8980 */ "\x00\x00\x46\x55\x00\x00\x63\xad\x00\x00\x00\x00\x4d\xf2\x4b\xfa\x63\xae\x00\x00\x63\xaf\x45\xbb\x00\x00\x00\x00\x00\x00\x46\xfb\x00\x00\x00\x00\x00\x00\x63\xb0\x00\x00\x00\x00\x4a\x50\x53\xeb\x63\xb1\x00\x00\x4a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb4\x4e\xd0\x00\x00\x63\xb3\x48\x85\x00\x00\x63\xb5\x00\x00\x00\x00\x63\xb6\x00\x00\x00\x00\x63\xb7\x48\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb8\x00\x00\x00\x00\x63\xba\x00\x00\x63\xb9\x63\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbc\x00\x00\x53\x60\x63\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb7\x00\x00\x00\x00\x4c\xd1\x63\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbf\x00\x00\x00\x00\x00\x00\x63\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a00 */ "\x47\x9a\x00\x00\x4f\xc4\x63\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc9\x00\x00\x50\xf2\x00\x00\x63\xc4\x00\x00\x49\xd2\x00\x00\x63\xc3\x00\x00\x63\xc5\x4b\xc8\x00\x00\x00\x00\x63\xc2\x4a\xb6\x47\x94\x00\x00\x00\x00\x63\xc6\x00\x00\x63\xc7\x00\x00\x50\xef\x00\x00\x00\x00\x00\x00\x54\xcc\x00\x00\x63\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x71\x00\x00\x00\x00\x45\xe2\x00\x00\x00\x00\x00\x00\x4a\x9a\x00\x00\x4b\xad\x4c\xdf\x00\x00\x63\xc9\x63\xcb\x00\x00\x00\x00\x4d\x68\x4f\x66\x49\xba\x00\x00\x00\x00\x00\x00\x00\x00\x63\xca\x00\x00\x00\x00\x00\x00\x00\x00\x63\xce\x00\x00\x63\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x76\x55\xe3\x63\xcd\x00\x00\x4f\x88\x49\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcc\x00\x00\x00\x00\x4e\x90\x00\x00\x51\xc1\x00\x00\x63\xd3\x54\xfb\x00\x00\x00\x00\x49\x48\x00\x00\x00\x00\x4c\xb0\x00\x00\x50\xd3\x63\xd2\x63\xd1\x51\x8e\x00\x00\x4b\x5f\x47\x50\x4d\x8d\x4d\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd4\x00\x00\x00\x00\x63\xd0\x00\x00\x00\x00\x00\x00", /* 8a80 */ "\x00\x00\x00\x00\x63\xd6\x00\x00\x63\xd7\x63\xd5\x00\x00\x4e\xb4\x00\x00\x4d\x8c\x00\x00\x00\x00\x4b\x76\x4a\x7e\x00\x00\x00\x00\x00\x00\x63\xda\x00\x00\x4f\xa0\x00\x00\x4f\xa2\x00\x00\x00\x00\x4a\xcb\x00\x00\x63\xdd\x00\x00\x00\x00\x00\x00\x48\xe7\x00\x00\x46\xfd\x63\xd9\x00\x00\x63\xde\x4d\x91\x63\xdb\x63\xdc\x63\xdf\x63\xd8\x00\x00\x00\x00\x00\x00\x49\x52\x4a\x4f\x00\x00\x00\x00\x4b\x83\x00\x00\x49\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf2\x00\x00\x00\x00\x52\x65\x00\x00\x63\xe1\x46\x89\x00\x00\x00\x00\x63\xe3\x00\x00\x50\xb2\x00\x00\x00\x00\x49\x63\x00\x00\x00\x00\x00\x00\x4a\xe8\x63\xe0\x63\xe2\x00\x00\x4b\xc1\x00\x00\x00\x00\x51\x81\x00\x00\x00\x00\x00\x00\x48\xf3\x00\x00\x00\x00\x00\x00\x63\xe4\x63\xf2\x55\x70\x00\x00\x63\xf1\x63\xed\x63\xea\x63\xec\x63\xeb\x00\x00\x63\xe7\x00\x00\x52\x46\x63\xe6\x00\x00\x00\x00\x00\x00\x4e\x96\x00\x00\x4e\x9c\x4f\x9c\x00\x00\x00\x00\x63\xe8\x00\x00\x63\xe5\x00\x00\x00\x00\x63\xef\x63\xf0\x47\xe2\x00\x00\x55\xab\x00\x00\x00\x00\x00\x00\x4f\xe1\x00\x00", /* 8b00 */ "\x4f\x4d\x54\xe5\x55\x73\x00\x00\x4f\xe2\x00\x00\x00\x00\x63\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf3\x00\x00\x52\xf9\x00\x00\x63\xf7\x00\x00\x00\x00\x00\x00\x63\xe9\x00\x00\x63\xf6\x63\xf8\x00\x00\x49\x7c\x63\xf5\x4a\x6e\x00\x00\x4d\xbb\x00\x00\x00\x00\x63\xf9\x4d\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x63\xfd\x00\x00\x53\x81\x00\x00\x00\x00\x63\xfe\x55\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x87\x00\x00\x00\x00\x00\x00\x00\x00\x64\x41\x00\x00\x00\x00\x63\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x46\x00\x00\x00\x00\x64\x42\x00\x00\x64\x44\x64\x43\x00\x00\x00\x00\x00\x00\x64\x45\x00\x00\x00\x00\x64\x47\x00\x00\x4a\x75\x00\x00\x64\x49\x64\x48\x4e\x4f\x00\x00\x00\x00\x64\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x64\x4b\x64\x4d\x00\x00\x00\x00\x64\x4e\x47\x81\x61\x76\x4b\x7b\x00\x00\x64\x4a\x00\x00\x00\x00\x49\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x4f\x00\x00\x64\x50", /* 8b80 */ "\x64\x51\x00\x00\x00\x00\x51\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x88\x00\x00\x64\x52\x00\x00\x64\x53\x00\x00\x53\xfe\x00\x00\x64\x55\x64\x56\x00\x00\x00\x00\x64\x57\x00\x00\x00\x00\x64\x54\x64\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x81\x00\x00\x00\x00\x64\x59\x00\x00\x00\x00\x00\x00\x00\x00\x64\x5b\x00\x00\x64\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x99\x00\x00\x64\x5c\x00\x00\x46\x48\x00\x00\x64\x5d\x00\x00\x64\x5e\x00\x00\x64\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x60\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x94\x64\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x68\x53\x55\x64\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x63\x55\x93\x64\x64\x00\x00\x64\x65\x00\x00\x00\x00\x00\x00", /* 8c80 */ "\x00\x00\x00\x00\x64\x66\x00\x00\x00\x00\x64\x68\x00\x00\x00\x00\x00\x00\x64\x67\x64\x69\x00\x00\x50\x64\x64\x6a\x64\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x6d\x00\x00\x00\x00\x00\x00\x64\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x49\xea\x46\xb6\x00\x00\x49\xc8\x49\xaf\x4a\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa3\x4a\xeb\x4a\x5d\x64\x70\x49\xa1\x4b\xd2\x64\x6f\x64\x71\x4c\x62\x4d\xef\x00\x00\x64\x73\x64\x74\x48\x7f\x00\x00\x64\x76\x49\x74\x4a\xf4\x00\x00\x00\x00\x46\xd0\x50\x7b\x64\x72\x00\x00\x48\x72\x46\x41\x64\x75\x55\xf8\x4b\x4d\x50\x67\x00\x00\x00\x00\x46\x50\x64\x77\x00\x00\x4f\xfd\x00\x00\x00\x00\x64\x79\x64\x78\x00\x00\x00\x00\x53\x9e\x00\x00\x50\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7b\x4d\xee\x4f\x94\x00\x00\x4a\xad\x00\x00\x4f\x4f\x00\x00\x47\xe5\x64\x7a\x55\x66\x00\x00\x4f\xa7\x00\x00\x00\x00\x00\x00\x46\xec\x00\x00\x00\x00\x52\xc1\x00\x00\x00\x00\x64\x7c\x00\x00\x00\x00\x00\x00\x64\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7f\x64\x80\x4e\x8f\x64\x7e\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x53\x5a\x55\x74\x00\x00\x64\x81\x4c\x7c\x00\x00\x64\x82\x55\x84\x00\x00\x64\x84\x00\x00\x64\x83\x64\x86\x00\x00\x64\x85\x64\x87\x64\x88\x00\x00\x64\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xf9\x00\x00\x51\x51\x64\x8a\x00\x00\x00\x00\x00\x00\x53\xcc\x00\x00\x64\x8b\x00\x00\x00\x00\x4a\xaa\x64\x8c\x00\x00\x51\xc9\x50\xee\x00\x00\x64\x8d\x48\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d80 */ "\x00\x00\x64\x8f\x00\x00\x00\x00\x00\x00\x4a\x78\x00\x00\x00\x00\x00\x00\x00\x00\x46\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xed\x00\x00\x00\x00\x00\x00\x00\x00\x55\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x92\x00\x00\x00\x00\x00\x00\x64\x91\x00\x00\x00\x00\x00\x00\x64\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x98\x64\x96\x00\x00\x00\x00\x64\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x95\x00\x00\x00\x00\x00\x00\x64\x94\x64\x97\x00\x00\x4d\xc2\x00\x00\x64\x9b\x00\x00\x4c\xcd\x00\x00\x64\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x55\xcb\x00\x00\x64\x99\x64\x9a\x00\x00\x00\x00\x00\x00\x47\x84\x00\x00\x00\x00\x00\x00\x50\xb4\x00\x00\x50\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x9d\x00\x00\x00\x00\x64\x9f", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x9e\x64\xa0\x4c\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7c\x64\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa2\x64\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa7\x00\x00\x00\x00\x00\x00\x64\xa8\x64\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa5\x00\x00\x55\xa7\x00\x00\x00\x00\x64\xaa\x64\xae\x64\xab\x64\xa9\x00\x00\x64\xac\x00\x00\x00\x00\x00\x00\x64\xad\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb2\x00\x00\x00\x00\x00\x00\x64\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x68\x64\xb1\x00\x00\x00\x00\x64\xb3\x64\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb5\x00\x00\x52\xf6\x00\x00\x64\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb7\x00\x00\x00\x00\x00\x00", /* 8e80 */ "\x00\x00\x64\xb8\x00\x00\x00\x00\x64\xba\x64\xb9\x00\x00\x64\xb6\x00\x00\x00\x00\x64\xbc\x64\xbb\x00\x00\x4c\xa1\x00\x00\x00\x00\x00\x00\x64\xbe\x00\x00\x64\xbd\x64\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc2\x47\x9c\x50\x44\x00\x00\x00\x00\x53\x53\x53\x7a\x64\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc4\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc6\x64\xc5\x00\x00\x64\xc7\x00\x00\x46\x53\x64\xc8\x4d\xaa\x48\x97\x00\x00\x64\xc9\x00\x00\x00\x00\x4e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xca\x00\x00\x00\x00\x00\x00\x4c\xb1\x00\x00\x00\x00\x47\x52\x64\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa6\x00\x00\x00\x00\x64\xcd\x64\xcc\x48\xa6\x64\xcf\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x4a\x5a\x00\x00\x64\xd2\x00\x00\x00\x00\x00\x00\x4d\x6e\x64\xd0\x00\x00\x64\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xd4\x64\xd5\x4a\x68\x64\xd3\x00\x00\x00\x00\x00\x00\x64\xd7\x00\x00\x51\x5b\x64\xd6\x47\x87\x00\x00\x64\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xd9\x00\x00\x00\x00\x4e\xf4\x48\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa6\x00\x00\x00\x00\x00\x00\x64\xda\x00\x00\x00\x00\x00\x00\x00\x00\x46\x93\x64\xdc\x00\x00\x64\xdb\x00\x00\x00\x00\x64\xdf\x50\x6c\x00\x00\x00\x00\x64\xde\x00\x00\x50\xfe\x64\xdd\x64\xe1\x00\x00\x00\x00\x64\xe0\x00\x00\x00\x00\x64\xe2\x54\xee\x64\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe5\x00\x00\x00\x00\x50\xa9\x00\x00\x52\xe1\x64\xe6\x64\xe7\x64\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5e\x64\xe9\x00\x00\x4d\x74\x64\xea\x00\x00\x00\x00\x00\x00\x64\xeb\x00\x00\x00\x00\x00\x00\x64\xed\x64\xec\x00\x00\x00\x00\x00\x00\x00\x00\x64\xee\x61\x49\x64\xef\x47\xdf\x52\xe5\x48\x45\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf0\x00\x00\x00\x00\x45\xd5\x47\xf5\x48\x41\x00\x00\x00\x00\x54\x7e\x00\x00\x00\x00\x55\xdf\x00\x00\x49\xcd\x50\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa9\x00\x00\x00\x00\x46\x73\x00\x00\x00\x00\x48\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf4\x00\x00\x00\x00\x64\xf3\x53\x5d\x00\x00\x00\x00\x64\xf6\x4e\x9e\x49\xef\x00\x00\x53\xdf\x00\x00\x64\xf5\x4a\x9c\x00\x00\x00\x00\x00\x00\x64\xf7\x00\x00\x00\x00\x4e\x58\x64\xfa\x64\xf9\x54\xa9\x00\x00\x00\x00\x49\xd1\x00\x00\x00\x00", /* 9000 */ "\x4b\x49\x47\x44\x00\x00\x4c\x72\x00\x00\x64\xf8\x4b\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x65\x44\x00\x00\x65\x41\x64\xfd\x4b\xda\x50\xbb\x64\xfb\x00\x00\x51\x5e\x48\xf0\x64\xfc\x65\x43\x4f\xb3\x00\x00\x4f\xca\x45\xe3\x00\x00\x00\x00\x53\xb1\x65\x42\x48\xcd\x45\xb8\x64\xfe\x4d\xce\x47\x54\x00\x00\x00\x00\x00\x00\x65\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x77\x00\x00\x00\x00\x4a\xd3\x46\x69\x00\x00\x00\x00\x54\x85\x65\x46\x00\x00\x4a\xd6\x65\x47\x00\x00\x00\x00\x55\xac\x00\x00\x65\x4e\x00\x00\x00\x00\x54\xf8\x4c\xf7\x00\x00\x00\x00\x4c\x6d\x00\x00\x49\xec\x00\x00\x65\x4d\x4a\x8b\x46\xab\x00\x00\x50\x5d\x48\x8d\x65\x48\x65\x4a\x65\x4b\x65\x4c\x45\x50\x46\xa4\x49\xbc\x65\x4f\x00\x00\x65\x50\x52\xf3\x00\x00\x00\x00\x54\x55\x00\x00\x65\x51\x00\x00\x46\xe3\x54\x4c\x00\x00\x4e\xc2\x00\x00\x68\x82\x00\x00\x65\x53\x65\x52\x49\xcc\x00\x00\x00\x00\x00\x00\x51\x43\x54\x58\x65\x54\x00\x00\x00\x00\x65\x57\x00\x00\x00\x00\x52\x6e\x65\x55\x53\x5b\x48\x5d\x00\x00\x4c\xda\x00\x00\x52\x6b\x65\x59\x00\x00\x4c\xc4", /* 9080 */ "\x65\x5b\x53\x7b\x65\x58\x60\x45\x4d\xa9\x00\x00\x00\x00\x51\x86\x00\x00\x65\x5a\x50\xea\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5c\x00\x00\x4c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x46\x00\x00\x00\x00\x46\xc5\x00\x00\x51\xa8\x00\x00\x4e\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5e\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x65\x60\x00\x00\x00\x00\x4d\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x52\x00\x00\x00\x00\x00\x00\x45\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x63\x00\x00\x00\x00\x65\x64\x00\x00\x00\x00\x49\x9e\x65\x61\x00\x00\x65\x62\x00\x00\x00\x00\x00\x00\x45\x95\x00\x00\x00\x00\x00\x00\x00\x00\x51\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb7\x00\x00\x49\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x4f\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x65\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x68\x00\x00\x00\x00\x65\x67\x00\x00\x00\x00\x00\x00\x65\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x54\x00\x00\x00\x00\x65\x6c\x00\x00\x65\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x73\x65\x6d\x55\x48\x52\xbb\x47\xf3\x55\x91\x00\x00\x00\x00\x00\x00\x47\x58\x00\x00\x4e\x7c\x00\x00\x65\x6e\x00\x00\x65\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xae\x65\x70\x00\x00\x65\x71\x00\x00\x00\x00\x00\x00\x65\x72\x50\xbd\x00\x00\x51\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x74\x65\x73\x00\x00\x4d\x86\x00\x00\x51\xeb\x48\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9180 */ "\x00\x00\x00\x00\x65\x77\x00\x00\x00\x00\x00\x00\x00\x00\x51\xa9\x00\x00\x65\x76\x00\x00\x65\x75\x00\x00\x51\x6f\x00\x00\x00\x00\x51\x70\x00\x00\x53\x78\x00\x00\x00\x00\x00\x00\x00\x00\x51\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x78\x00\x00\x50\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7b\x65\x79\x50\x7f\x00\x00\x00\x00\x65\x7a\x00\x00\x51\xfa\x00\x00\x00\x00\x65\x7d\x65\x7c\x00\x00\x00\x00\x50\xc2\x00\x00\x65\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7f\x65\x80\x00\x00\x00\x00\x00\x00\x00\x00\x53\x46\x53\xbf\x4d\x79\x52\x52\x00\x00\x65\x81\x47\x6c\x45\xa3\x45\x69\x47\xb5\x65\x82\x45\x86\x00\x00\x00\x00\x00\x00\x00\x00\x65\x87\x65\x85\x4f\xf4\x00\x00\x65\x83\x65\x84\x4a\xcc\x49\x88\x65\x86\x65\x88\x00\x00\x65\x89\x00\x00\x4c\xe3\x65\x8d\x65\x8f\x53\x4a\x4b\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8a\x65\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8b\x65\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd0\x00\x00\x00\x00\x65\x92", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x90\x00\x00\x00\x00\x00\x00\x65\x95\x00\x00\x00\x00\x4e\x63\x53\x8f\x00\x00\x65\x93\x52\x69\x00\x00\x00\x00\x65\x94\x65\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x98\x00\x00\x00\x00\x65\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xae\x00\x00\x00\x00\x55\xbf\x00\x00\x65\xa6\x65\x9b\x00\x00\x65\x9f\x00\x00\x00\x00\x65\xa4\x65\x9e\x00\x00\x00\x00\x00\x00\x45\xd7\x65\x9a\x00\x00\x00\x00\x65\xa0\x65\x9c\x00\x00\x65\xa7\x00\x00\x00\x00\x65\xa1\x00\x00\x65\xa2\x65\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x99\x00\x00\x65\xa3\x65\xa9\x49\xd4\x00\x00\x00\x00\x53\x93\x00\x00\x00\x00\x00\x00\x4e\xa8\x00\x00\x65\x9d\x00\x00\x4f\xb4\x65\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xac\x65\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x83\x00\x00", /* 9280 */ "\x47\x8c\x00\x00\x00\x00\x4c\xe2\x00\x00\x48\xc0\x00\x00\x00\x00\x52\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xad\x00\x00\x65\xaf\x00\x00\x65\xb1\x65\xae\x00\x00\x4d\xdc\x00\x00\x4e\x80\x65\xb0\x65\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbb\x00\x00\x65\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb3\x65\xb7\x00\x00\x54\x49\x65\xbd\x00\x00\x65\xb9\x00\x00\x65\xb5\x00\x00\x65\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbc\x00\x00\x00\x00\x00\x00\x52\xc0\x00\x00\x00\x00\x65\xb4\x00\x00\x65\xb2\x53\x63\x00\x00\x00\x00\x4d\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbe\x48\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe7\x53\x94\x65\xc2\x65\xc5\x46\xa1\x00\x00\x00\x00\x65\xc9", /* 9300 */ "\x00\x00\x00\x00\x65\xce\x00\x00\x00\x00\x00\x00\x55\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc0\x53\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xef\x65\xc7\x65\xcb\x00\x00\x00\x00\x65\xcc\x65\xc8\x00\x00\x4e\x57\x65\xc3\x65\xca\x65\xcd\x00\x00\x65\xc1\x4b\x8e\x00\x00\x53\xf0\x00\x00\x00\x00\x52\x57\x4f\xe6\x00\x00\x52\x83\x50\xb1\x00\x00\x00\x00\x48\x86\x00\x00\x00\x00\x65\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbe\x65\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc4\x00\x00\x00\x00\x00\x00\x51\xf7\x00\x00\x00\x00\x4b\x48\x00\x00\x55\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xaa\x00\x00\x65\xd4\x65\xd5\x00\x00\x00\x00\x00\x00\x48\xc7\x52\xad\x00\x00\x00\x00\x00\x00\x65\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x70\x00\x00\x65\xd3\x00\x00\x65\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd2\x00\x00\x53\xbd\x00\x00", /* 9380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xda\x00\x00\x4d\x70\x51\x97\x00\x00\x00\x00\x54\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd8\x00\x00\x00\x00\x54\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6e\x65\xd9\x4c\x89\x00\x00\x65\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe2\x00\x00\x00\x00\x65\xdd\x00\x00\x65\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe5\x50\x41\x00\x00\x00\x00\x00\x00\x00\x00\x65\xdc\x65\xde\x65\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe3\x65\xe4\x00\x00\x00\x00\x4a\x8d\x00\x00\x00\x00\x65\xe6\x65\xe0\x00\x00\x00\x00\x65\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x65\xec\x00\x00\x00\x00\x00\x00\x65\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xcd\x00\x00\x00\x00\x65\xea\x65\xe9\x00\x00\x00\x00\x00\x00\x4c\xc8\x52\xcf\x65\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf0\x00\x00\x00\x00\x00\x00\x51\x56\x65\xee\x00\x00\x53\x88\x00\x00\x65\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf2\x00\x00\x00\x00\x65\xf5\x65\xf4\x00\x00\x00\x00\x65\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4e\x65\xf3\x52\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf8\x65\xf7\x00\x00\x00\x00\x65\xfb\x00\x00\x65\xf9\x00\x00\x65\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfd\x00\x00\x66\x41\x00\x00\x00\x00\x00\x00\x00\x00\x66\x44\x66\x43\x66\x45\x66\x42", /* 9480 */ "\x00\x00\x66\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9580 */ "\x46\xaa\x00\x00\x66\x47\x51\x9c\x00\x00\x00\x00\x00\x00\x66\x48\x00\x00\x4b\x7d\x66\x49\x46\xcd\x00\x00\x00\x00\x00\x00\x54\x5f\x00\x00\x4d\xd9\x66\x4a\x45\xc1\x66\x4b\x00\x00\x66\x4c\x00\x00\x66\x4d\x66\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4f\x00\x00\x45\xc5\x4a\xe9\x54\x9b\x51\x72\x00\x00\x66\x51\x66\x50\x00\x00\x00\x00\x00\x00\x00\x00\x66\x52\x00\x00\x00\x00\x00\x00\x00\x00\x51\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x55\x00\x00\x66\x54\x66\x53\x00\x00\x66\x56\x00\x00\x00\x00\x00\x00\x00\x00\x66\x59\x00\x00\x00\x00\x00\x00\x53\x64\x00\x00\x00\x00\x66\x57\x00\x00\x66\x5b\x66\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x5d\x66\x5c\x66\x5e\x00\x00\x4b\xcc\x00\x00\x00\x00\x00\x00\x66\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x66\x60\x66\x62\x00\x00\x00\x00\x66\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x86\x00\x00\x00\x00\x00\x00\x00\x00\x66\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x64\x00\x00\x45\x91\x00\x00\x00\x00\x00\x00\x66\x65\x66\x66\x00\x00\x00\x00\x47\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xef\x00\x00\x00\x00\x00\x00\x46\xae\x4f\xe8\x00\x00\x66\x67\x00\x00\x4b\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x6a\x66\x69\x49\xe5\x00\x00\x66\x68\x48\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x57\x66\x6b\x66\x6c\x52\x72\x66\x6d\x00\x00\x00\x00\x49\xd8\x4c\x84\x49\x6d\x4f\xfe\x66\x6e\x00\x00\x00\x00\x00\x00\x55\xc3\x00\x00\x66\x71\x00\x00\x00\x00\x00\x00\x4c\xd2\x00\x00\x66\x70\x4e\x61\x00\x00\x50\xc7\x4a\xb7\x66\x6f\x49\x61\x00\x00\x4a\x6c\x00\x00\x00\x00\x47\xbf\x00\x00\x00\x00", /* 9680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb9\x46\x5d\x00\x00\x4c\xe5\x00\x00\x4a\x93\x66\x73\x00\x00\x66\x72\x49\xa9\x4e\x76\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5a\x66\x76\x00\x00\x66\x77\x66\x75\x53\xc3\x00\x00\x47\x97\x4b\xf9\x66\x79\x00\x00\x00\x00\x4e\xae\x00\x00\x00\x00\x4c\xe0\x00\x00\x00\x00\x00\x00\x66\x7a\x65\x56\x00\x00\x66\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x66\x7f\x66\x7e\x66\x7c\x66\x7d\x00\x00\x66\x80\x00\x00\x66\x81\x55\x45\x66\x82\x66\x83\x00\x00\x4f\xda\x4e\xd5\x00\x00\x00\x00\x00\x00\x4f\x64\x51\xa4\x00\x00\x00\x00\x45\x70\x47\x45\x47\xa0\x4c\x4d\x00\x00\x54\x77\x00\x00\x66\x85\x52\xb7\x52\x5b\x66\x84\x00\x00\x00\x00\x4a\x8a\x00\x00\x00\x00\x00\x00\x66\x86\x63\x54\x00\x00\x00\x00\x66\x88\x00\x00\x51\xfb\x66\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x97\x49\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x49\xdd\x00\x00\x49\xbb\x52\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x90\x00\x00\x4a\xbc\x00\x00\x00\x00\x00\x00\x50\x69\x4b\xd6\x00\x00\x66\x89\x00\x00\x45\x82\x00\x00\x00\x00\x00\x00\x00\x00", /* 9700 */ "\x47\xfb\x00\x00\x00\x00\x00\x00\x66\x8a\x00\x00\x66\x8b\x4d\xde\x66\x8c\x00\x00\x4f\x4b\x00\x00\x00\x00\x66\x8e\x66\x90\x66\x92\x00\x00\x66\x91\x00\x00\x66\x8f\x00\x00\x00\x00\x66\x93\x00\x00\x00\x00\x66\x8d\x00\x00\x00\x00\x4d\xe8\x00\x00\x4e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x94\x00\x00\x00\x00\x4e\x48\x00\x00\x00\x00\x66\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x96\x00\x00\x4b\xc6\x66\x97\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcf\x66\x98\x00\x00\x66\x99\x00\x00\x66\x9a\x66\x9b\x00\x00\x00\x00\x00\x00\x66\xa0\x66\x9e\x66\x9d\x00\x00\x66\x9c\x00\x00\x66\x9f\x66\xa1\x00\x00\x00\x00\x00\x00\x66\xa2\x00\x00\x66\xa3\x00\x00\x66\xa4\x46\x4c\x00\x00\x00\x00\x66\xa5\x48\xc3\x00\x00\x00\x00\x46\x44\x00\x00\x00\x00\x66\xa6\x00\x00\x48\xe1\x00\x00\x66\xa7\x68\x52\x46\x91\x00\x00\x66\xa8\x00\x00\x66\xa9\x00\x00\x66\xaa\x4a\xa3\x00\x00\x53\xb5\x00\x00\x66\xab\x00\x00\x00\x00\x00\x00\x52\xce\x00\x00\x00\x00\x4d\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x66\xac\x66\xb0\x00\x00\x66\xae\x00\x00\x00\x00\x00\x00", /* 9780 */ "\x00\x00\x66\xaf\x00\x00\x00\x00\x54\x45\x66\xad\x52\x77\x00\x00\x00\x00\x00\x00\x00\x00\x66\xb1\x00\x00\x50\x4c\x00\x00\x66\xb2\x66\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe7\x00\x00\x00\x00\x00\x00\x66\xb4\x00\x00\x00\x00\x00\x00\x51\xed\x00\x00\x00\x00\x66\xb7\x00\x00\x00\x00\x66\xb6\x00\x00\x66\xb5\x00\x00\x00\x00\x63\xfc\x00\x00\x54\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xb8\x66\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xba\x00\x00\x00\x00\x66\xbb\x00\x00\x66\xbc\x00\x00\x00\x00\x66\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xbf\x4f\xdf\x00\x00\x00\x00\x00\x00\x66\xc0\x48\x4d\x00\x00\x66\xc2\x52\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x55\x77\x00\x00\x00\x00\x00\x00\x4a\x5c", /* 9800 */ "\x00\x00\x4c\xd9\x4d\x5b\x49\x46\x00\x00\x4a\x97\x47\xb2\x00\x00\x46\xb0\x00\x00\x00\x00\x00\x00\x54\x56\x00\x00\x00\x00\x66\xc3\x4d\x4a\x53\x9d\x55\x57\x51\x7a\x00\x00\x00\x00\x00\x00\x55\xe4\x4a\xcd\x00\x00\x66\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc6\x00\x00\x00\x00\x66\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb3\x47\xeb\x00\x00\x00\x00\x4e\xb3\x00\x00\x00\x00\x00\x00\x55\x76\x00\x00\x00\x00\x66\xc7\x50\xfb\x66\xc8\x00\x00\x53\xab\x4a\x7a\x66\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x66\xca\x47\xfe\x47\xf1\x54\x8e\x66\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x48\xb8\x4a\xe5\x00\x00\x66\xcb\x4c\x57\x00\x00\x55\xc1\x55\xc1\x00\x00\x00\x00\x46\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xcc\x00\x00\x4e\xee\x00\x00\x00\x00\x00\x00\x66\xcd\x00\x00\x00\x00\x00\x00\x66\xce\x66\xcf\x66\xd0\x00\x00\x66\xd2\x66\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xe7\x00\x00\x66\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd4\x00\x00\x66\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd8\x66\xd7\x00\x00\x66\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8a\x66\xda\x00\x00\x00\x00\x46\xb8\x00\x00\x00\x00\x53\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdc\x00\x00\x66\xde\x00\x00\x66\xdb\x5c\xca\x46\xb5\x00\x00\x00\x00\x4b\xa3\x00\x00\x52\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x8f\x4d\x49\x49\x57\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x66\xe0\x00\x00\x50\xbf\x00\x00\x00\x00\x00\x00\x54\xbc\x49\x79\x00\x00\x50\xa7\x00\x00\x00\x00\x00\x00\x55\xb3\x00\x00\x66\xe2\x55\x4b\x66\xe3\x00\x00\x00\x00\x00\x00\x66\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe1\x66\xe8\x00\x00\x66\xea\x66\xe7\x00\x00\x00\x00\x66\xe9\x00\x00\x00\x00\x66\xe5\x48\x62\x00\x00\x00\x00\x00\x00\x66\xeb\x00\x00\x66\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xed\x66\xee\x00\x00\x00\x00\x00\x00\x66\xef\x00\x00\x00\x00\x66\xf1\x00\x00\x00\x00\x00\x00\x66\xf0\x00\x00\x66\xf3\x66\xf5\x00\x00\x00\x00\x00\x00\x66\xf2\x66\xf4\x52\xe8\x00\x00\x00\x00\x66\xf6\x00\x00\x51\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xbe\x66\xf7\x66\xf8\x46\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfa\x00\x00\x00\x00\x4b\x85\x00\x00\x00\x00\x00\x00\x46\x64\x66\xfb\x66\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x52\xdf\x50\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe5\x00\x00\x00\x00\x4d\xe5\x49\xac\x4c\xfe\x00\x00\x4f\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf5\x67\x44\x49\xfc\x00\x00\x00\x00\x53\xbe\x00\x00\x00\x00\x67\x43\x00\x00\x00\x00\x67\x41\x00\x00\x67\x42\x00\x00\x66\xfe\x00\x00\x00\x00\x67\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x45\x67\x46\x00\x00\x00\x00\x67\x48\x67\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4b\x00\x00\x00\x00\x67\x4a\x00\x00\x00\x00\x00\x00\x4c\xc0", /* 9a00 */ "\x00\x00\x67\x4c\x00\x00\x00\x00\x00\x00\x67\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x58\x67\x4d\x00\x00\x00\x00\x4d\xd2\x48\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xda\x00\x00\x00\x00\x67\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x56\x00\x00\x67\x52\x00\x00\x67\x54\x67\x55\x00\x00\x67\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x58\x67\x59\x00\x00\x00\x00\x00\x00\x53\xda\x00\x00\x00\x00\x67\x57\x00\x00\x67\x5b\x00\x00\x00\x00\x4c\xd5\x67\x5a\x00\x00\x00\x00\x00\x00\x67\x5c\x00\x00\x00\x00\x67\x5d\x00\x00\x67\x60\x67\x5f\x00\x00\x00\x00\x00\x00\x67\x5e\x67\x61\x67\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x67\x63\x00\x00\x00\x00\x67\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9c\x00\x00\x00\x00\x00\x00\x67\x65\x00\x00\x00\x00\x00\x00\x67\x66\x00\x00\x00\x00\x00\x00\x52\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x67\x00\x00\x67\x6a\x00\x00\x67\x68\x67\x69\x00\x00\x00\x00\x00\x00\x45\x71\x67\x6b\x00\x00\x00\x00\x67\x6c\x00\x00\x67\x6d\x67\x6e\x00\x00\x00\x00\x67\x6f\x67\x70\x00\x00\x00\x00\x67\x71\x00\x00\x00\x00\x00\x00\x4c\xf6\x67\x73\x00\x00\x50\x9d\x67\x74\x67\x72\x00\x00\x67\x76\x00\x00\x00\x00\x67\x75\x00\x00\x00\x00\x67\x77\x00\x00\x00\x00\x00\x00\x67\x78\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7a\x00\x00\x67\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7c\x00\x00\x00\x00\x67\x7d\x67\x7e\x00\x00\x67\x7f\x00\x00\x67\x80\x67\x81\x67\x82\x67\x83\x00\x00\x00\x00\x00\x00\x67\x84\x67\x85\x00\x00\x67\x86\x67\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x88\x4a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x52\xcb\x50\xa8\x67\x8a\x67\x89\x4d\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x8b\x67\x8c\x53\x89\x00\x00\x67\x8d\x00\x00\x00\x00\x4d\xe2\x00\x00\x00\x00\x00\x00\x67\x8e\x00\x00\x48\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf4\x00\x00\x00\x00\x67\x91\x00\x00\x67\x90\x67\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b80 */ "\x00\x00\x00\x00\x00\x00\x67\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8e\x67\x93\x00\x00\x67\x95\x52\x8d\x67\x92\x00\x00\x00\x00\x67\x96\x67\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x98\x67\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9a\x00\x00\x55\xce\x4e\xb7\x00\x00\x53\x91\x4c\xe9\x00\x00\x00\x00\x67\x9b\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa0\x00\x00\x67\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa1\x00\x00\x00\x00\x4f\xc6\x67\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa2\x00\x00\x67\xa3\x67\xa4\x00\x00\x67\xa8\x00\x00\x4f\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x50\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa9\x67\xa6\x67\xa5\x67\xa7\x00\x00\x00\x00\x00\x00\x4d\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x51\x67\xab\x67\xac\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c00 */ "\x67\xb1\x00\x00\x00\x00\x00\x00\x67\xad\x00\x00\x67\xb5\x00\x00\x67\xb6\x67\xb2\x67\xb8\x00\x00\x67\xb4\x55\x71\x00\x00\x00\x00\x52\x93\x00\x00\x67\xb7\x67\xb3\x67\xb0\x67\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbc\x00\x00\x00\x00\x67\xbb\x67\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6e\x67\xb9\x55\xc8\x67\xbd\x00\x00\x67\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd5\x51\xf0\x54\xab\x00\x00\x00\x00\x67\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc0\x67\xbe\x55\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4c\x00\x00\x00\x00\x67\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc5\x00\x00\x67\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x79\x00\x00\x67\xc8\x00\x00\x4d\x95\x00\x00\x67\xc7\x67\xc9\x00\x00\x00\x00\x00\x00\x67\xca\x00\x00\x00\x00\x4e\xa6\x4b\x70\x00\x00\x54\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d00 */ "\x00\x00\x00\x00\x00\x00\x67\xcc\x00\x00\x00\x00\x67\xcd\x51\xa1\x54\xfc\x67\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x54\x64\x00\x00\x00\x00\x00\x00\x67\xd4\x00\x00\x00\x00\x67\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc3\x00\x00\x00\x00\x00\x00\x67\xd2\x00\x00\x00\x00\x00\x00\x67\xd1\x00\x00\x00\x00\x67\xcf\x00\x00\x4c\x54\x00\x00\x67\xce\x50\xba\x67\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd6\x00\x00\x00\x00\x67\xd8\x67\xd6\x00\x00\x67\xd5\x00\x00\x00\x00\x67\xd7\x00\x00\x67\xd9\x00\x00\x67\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xdf\x67\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xdd\x00\x00\x00\x00\x4b\xe7\x67\xdb\x67\xdc\x00\x00\x50\xfd\x55\x7e\x00\x00\x00\x00\x67\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe4\x51\x8a\x00\x00\x00\x00\x67\xe5\x67\xe2\x00\x00\x67\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe3\x00\x00\x53\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe9\x00\x00\x67\xea\x00\x00\x00\x00\x00\x00\x50\xe5\x00\x00\x00\x00\x67\xeb\x00\x00\x47\x7a\x00\x00\x00\x00\x00\x00\x67\xef\x00\x00\x67\xf0\x67\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xed\x67\xf3\x00\x00\x67\xec\x00\x00\x67\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf2\x00\x00\x00\x00\x00\x00\x67\xf6\x00\x00\x00\x00\x00\x00\x54\x64\x00\x00\x67\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf9\x00\x00\x67\xfa\x00\x00\x00\x00\x4b\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf7\x4b\x7a\x50\xaf\x00\x00\x00\x00\x67\xfb\x00\x00\x00\x00", /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xfe\x67\xfc\x67\xfd\x00\x00\x00\x00\x68\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x42\x00\x00\x00\x00\x4c\x7d\x68\x43\x00\x00\x00\x00\x4c\x7d\x68\x44\x00\x00\x46\x97", /* 9e80 */ "\x00\x00\x68\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x46\x00\x00\x00\x00\x68\x47\x68\x48\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4a\x51\xf9\x51\x9e\x00\x00\x68\x49\x00\x00\x4c\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4b\x00\x00\x51\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4c\x4a\xe0\x00\x00\x00\x00\x53\xb4\x68\x4e\x00\x00\x00\x00\x68\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x61\x55\x5f\x00\x00\x00\x00\x68\x4d\x52\x61\x55\x5f\x48\xa7\x68\x50\x00\x00\x68\x51\x4e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x53\x55\xae\x51\xa7\x68\x54\x68\x55\x68\x56\x46\x79\x00\x00\x68\x57\x00\x00\x00\x00\x00\x00\x5e\x90\x4d\xbc\x00\x00\x51\xdd\x68\x58\x68\x5a\x68\x59\x00\x00\x68\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5c\x00\x00\x00\x00\x68\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5f\x00\x00\x68\x60\x68\x61\x00\x00\x68\x62\x00\x00\x68\x63\x68\x64\x68\x65\x00\x00\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x66\x68\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xaf\x00\x00\x68\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xcb\x68\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xfd\x00\x00\x00\x00\x68\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x6d\x51\xf5\x00\x00\x00\x00\x68\x6e\x68\x6f\x00\x00\x00\x00\x68\x70\x00\x00\x68\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x73\x68\x74\x68\x75\x4c\x80\x68\x72\x00\x00\x00\x00\x68\x76\x68\x77\x00\x00\x00\x00\x68\x79\x00\x00\x68\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7b\x00\x00\x00\x00\x00\x00\x68\x7c\x68\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7e\x5f\xf7\x00\x00\x00\x00\x68\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x69\x41\x69\x42\x69\x43\x69\x44\x69\x45\x69\x46\x69\x47\x69\x48\x69\x49\x69\x4a\x69\x4b\x69\x4c\x69\x4d\x69\x4e\x69\x4f\x69\x50\x69\x51\x69\x52\x69\x53\x69\x54\x69\x55\x69\x56\x69\x57\x69\x58\x69\x59\x69\x5a\x69\x5b\x69\x5c\x69\x5d\x69\x5e\x69\x5f\x69\x60\x69\x61\x69\x62\x69\x63\x69\x64\x69\x65\x69\x66\x69\x67\x69\x68\x69\x69\x69\x6a\x69\x6b\x69\x6c\x69\x6d\x69\x6e\x69\x6f\x69\x70\x69\x71\x69\x72\x69\x73\x69\x74\x69\x75\x69\x76\x69\x77\x69\x78\x69\x79\x69\x7a\x69\x7b\x69\x7c\x69\x7d\x69\x7e\x69\x7f\x69\x80\x69\x81\x69\x82\x69\x83\x69\x84\x69\x85\x69\x86\x69\x87\x69\x88\x69\x89\x69\x8a\x69\x8b\x69\x8c\x69\x8d\x69\x8e\x69\x8f\x69\x90\x69\x91\x69\x92\x69\x93\x69\x94\x69\x95\x69\x96\x69\x97\x69\x98\x69\x99\x69\x9a\x69\x9b\x69\x9c\x69\x9d\x69\x9e\x69\x9f\x69\xa0\x69\xa1\x69\xa2\x69\xa3\x69\xa4\x69\xa5\x69\xa6\x69\xa7\x69\xa8\x69\xa9\x69\xaa\x69\xab\x69\xac\x69\xad\x69\xae\x69\xaf\x69\xb0\x69\xb1\x69\xb2\x69\xb3\x69\xb4\x69\xb5\x69\xb6\x69\xb7\x69\xb8\x69\xb9\x69\xba\x69\xbb\x69\xbc\x69\xbd\x69\xbe\x69\xbf\x69\xc0", /* e080 */ "\x69\xc1\x69\xc2\x69\xc3\x69\xc4\x69\xc5\x69\xc6\x69\xc7\x69\xc8\x69\xc9\x69\xca\x69\xcb\x69\xcc\x69\xcd\x69\xce\x69\xcf\x69\xd0\x69\xd1\x69\xd2\x69\xd3\x69\xd4\x69\xd5\x69\xd6\x69\xd7\x69\xd8\x69\xd9\x69\xda\x69\xdb\x69\xdc\x69\xdd\x69\xde\x69\xdf\x69\xe0\x69\xe1\x69\xe2\x69\xe3\x69\xe4\x69\xe5\x69\xe6\x69\xe7\x69\xe8\x69\xe9\x69\xea\x69\xeb\x69\xec\x69\xed\x69\xee\x69\xef\x69\xf0\x69\xf1\x69\xf2\x69\xf3\x69\xf4\x69\xf5\x69\xf6\x69\xf7\x69\xf8\x69\xf9\x69\xfa\x69\xfb\x69\xfc\x69\xfd\x69\xfe\x6a\x41\x6a\x42\x6a\x43\x6a\x44\x6a\x45\x6a\x46\x6a\x47\x6a\x48\x6a\x49\x6a\x4a\x6a\x4b\x6a\x4c\x6a\x4d\x6a\x4e\x6a\x4f\x6a\x50\x6a\x51\x6a\x52\x6a\x53\x6a\x54\x6a\x55\x6a\x56\x6a\x57\x6a\x58\x6a\x59\x6a\x5a\x6a\x5b\x6a\x5c\x6a\x5d\x6a\x5e\x6a\x5f\x6a\x60\x6a\x61\x6a\x62\x6a\x63\x6a\x64\x6a\x65\x6a\x66\x6a\x67\x6a\x68\x6a\x69\x6a\x6a\x6a\x6b\x6a\x6c\x6a\x6d\x6a\x6e\x6a\x6f\x6a\x70\x6a\x71\x6a\x72\x6a\x73\x6a\x74\x6a\x75\x6a\x76\x6a\x77\x6a\x78\x6a\x79\x6a\x7a\x6a\x7b\x6a\x7c\x6a\x7d\x6a\x7e\x6a\x7f\x6a\x80\x6a\x81\x6a\x82", /* e100 */ "\x6a\x83\x6a\x84\x6a\x85\x6a\x86\x6a\x87\x6a\x88\x6a\x89\x6a\x8a\x6a\x8b\x6a\x8c\x6a\x8d\x6a\x8e\x6a\x8f\x6a\x90\x6a\x91\x6a\x92\x6a\x93\x6a\x94\x6a\x95\x6a\x96\x6a\x97\x6a\x98\x6a\x99\x6a\x9a\x6a\x9b\x6a\x9c\x6a\x9d\x6a\x9e\x6a\x9f\x6a\xa0\x6a\xa1\x6a\xa2\x6a\xa3\x6a\xa4\x6a\xa5\x6a\xa6\x6a\xa7\x6a\xa8\x6a\xa9\x6a\xaa\x6a\xab\x6a\xac\x6a\xad\x6a\xae\x6a\xaf\x6a\xb0\x6a\xb1\x6a\xb2\x6a\xb3\x6a\xb4\x6a\xb5\x6a\xb6\x6a\xb7\x6a\xb8\x6a\xb9\x6a\xba\x6a\xbb\x6a\xbc\x6a\xbd\x6a\xbe\x6a\xbf\x6a\xc0\x6a\xc1\x6a\xc2\x6a\xc3\x6a\xc4\x6a\xc5\x6a\xc6\x6a\xc7\x6a\xc8\x6a\xc9\x6a\xca\x6a\xcb\x6a\xcc\x6a\xcd\x6a\xce\x6a\xcf\x6a\xd0\x6a\xd1\x6a\xd2\x6a\xd3\x6a\xd4\x6a\xd5\x6a\xd6\x6a\xd7\x6a\xd8\x6a\xd9\x6a\xda\x6a\xdb\x6a\xdc\x6a\xdd\x6a\xde\x6a\xdf\x6a\xe0\x6a\xe1\x6a\xe2\x6a\xe3\x6a\xe4\x6a\xe5\x6a\xe6\x6a\xe7\x6a\xe8\x6a\xe9\x6a\xea\x6a\xeb\x6a\xec\x6a\xed\x6a\xee\x6a\xef\x6a\xf0\x6a\xf1\x6a\xf2\x6a\xf3\x6a\xf4\x6a\xf5\x6a\xf6\x6a\xf7\x6a\xf8\x6a\xf9\x6a\xfa\x6a\xfb\x6a\xfc\x6a\xfd\x6a\xfe\x6b\x41\x6b\x42\x6b\x43\x6b\x44", /* e180 */ "\x6b\x45\x6b\x46\x6b\x47\x6b\x48\x6b\x49\x6b\x4a\x6b\x4b\x6b\x4c\x6b\x4d\x6b\x4e\x6b\x4f\x6b\x50\x6b\x51\x6b\x52\x6b\x53\x6b\x54\x6b\x55\x6b\x56\x6b\x57\x6b\x58\x6b\x59\x6b\x5a\x6b\x5b\x6b\x5c\x6b\x5d\x6b\x5e\x6b\x5f\x6b\x60\x6b\x61\x6b\x62\x6b\x63\x6b\x64\x6b\x65\x6b\x66\x6b\x67\x6b\x68\x6b\x69\x6b\x6a\x6b\x6b\x6b\x6c\x6b\x6d\x6b\x6e\x6b\x6f\x6b\x70\x6b\x71\x6b\x72\x6b\x73\x6b\x74\x6b\x75\x6b\x76\x6b\x77\x6b\x78\x6b\x79\x6b\x7a\x6b\x7b\x6b\x7c\x6b\x7d\x6b\x7e\x6b\x7f\x6b\x80\x6b\x81\x6b\x82\x6b\x83\x6b\x84\x6b\x85\x6b\x86\x6b\x87\x6b\x88\x6b\x89\x6b\x8a\x6b\x8b\x6b\x8c\x6b\x8d\x6b\x8e\x6b\x8f\x6b\x90\x6b\x91\x6b\x92\x6b\x93\x6b\x94\x6b\x95\x6b\x96\x6b\x97\x6b\x98\x6b\x99\x6b\x9a\x6b\x9b\x6b\x9c\x6b\x9d\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xa1\x6b\xa2\x6b\xa3\x6b\xa4\x6b\xa5\x6b\xa6\x6b\xa7\x6b\xa8\x6b\xa9\x6b\xaa\x6b\xab\x6b\xac\x6b\xad\x6b\xae\x6b\xaf\x6b\xb0\x6b\xb1\x6b\xb2\x6b\xb3\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x6b\xba\x6b\xbb\x6b\xbc\x6b\xbd\x6b\xbe\x6b\xbf\x6b\xc0\x6b\xc1\x6b\xc2\x6b\xc3\x6b\xc4", /* e200 */ "\x6b\xc5\x6b\xc6\x6b\xc7\x6b\xc8\x6b\xc9\x6b\xca\x6b\xcb\x6b\xcc\x6b\xcd\x6b\xce\x6b\xcf\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\x6b\xd4\x6b\xd5\x6b\xd6\x6b\xd7\x6b\xd8\x6b\xd9\x6b\xda\x6b\xdb\x6b\xdc\x6b\xdd\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x6b\xe9\x6b\xea\x6b\xeb\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\x6b\xfc\x6b\xfd\x6b\xfe\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\x6c\x46\x6c\x47\x6c\x48\x6c\x49\x6c\x4a\x6c\x4b\x6c\x4c\x6c\x4d\x6c\x4e\x6c\x4f\x6c\x50\x6c\x51\x6c\x52\x6c\x53\x6c\x54\x6c\x55\x6c\x56\x6c\x57\x6c\x58\x6c\x59\x6c\x5a\x6c\x5b\x6c\x5c\x6c\x5d\x6c\x5e\x6c\x5f\x6c\x60\x6c\x61\x6c\x62\x6c\x63\x6c\x64\x6c\x65\x6c\x66\x6c\x67\x6c\x68\x6c\x69\x6c\x6a\x6c\x6b\x6c\x6c\x6c\x6d\x6c\x6e\x6c\x6f\x6c\x70\x6c\x71\x6c\x72\x6c\x73\x6c\x74\x6c\x75\x6c\x76\x6c\x77\x6c\x78\x6c\x79\x6c\x7a\x6c\x7b\x6c\x7c\x6c\x7d\x6c\x7e\x6c\x7f\x6c\x80\x6c\x81\x6c\x82\x6c\x83\x6c\x84\x6c\x85\x6c\x86", /* e280 */ "\x6c\x87\x6c\x88\x6c\x89\x6c\x8a\x6c\x8b\x6c\x8c\x6c\x8d\x6c\x8e\x6c\x8f\x6c\x90\x6c\x91\x6c\x92\x6c\x93\x6c\x94\x6c\x95\x6c\x96\x6c\x97\x6c\x98\x6c\x99\x6c\x9a\x6c\x9b\x6c\x9c\x6c\x9d\x6c\x9e\x6c\x9f\x6c\xa0\x6c\xa1\x6c\xa2\x6c\xa3\x6c\xa4\x6c\xa5\x6c\xa6\x6c\xa7\x6c\xa8\x6c\xa9\x6c\xaa\x6c\xab\x6c\xac\x6c\xad\x6c\xae\x6c\xaf\x6c\xb0\x6c\xb1\x6c\xb2\x6c\xb3\x6c\xb4\x6c\xb5\x6c\xb6\x6c\xb7\x6c\xb8\x6c\xb9\x6c\xba\x6c\xbb\x6c\xbc\x6c\xbd\x6c\xbe\x6c\xbf\x6c\xc0\x6c\xc1\x6c\xc2\x6c\xc3\x6c\xc4\x6c\xc5\x6c\xc6\x6c\xc7\x6c\xc8\x6c\xc9\x6c\xca\x6c\xcb\x6c\xcc\x6c\xcd\x6c\xce\x6c\xcf\x6c\xd0\x6c\xd1\x6c\xd2\x6c\xd3\x6c\xd4\x6c\xd5\x6c\xd6\x6c\xd7\x6c\xd8\x6c\xd9\x6c\xda\x6c\xdb\x6c\xdc\x6c\xdd\x6c\xde\x6c\xdf\x6c\xe0\x6c\xe1\x6c\xe2\x6c\xe3\x6c\xe4\x6c\xe5\x6c\xe6\x6c\xe7\x6c\xe8\x6c\xe9\x6c\xea\x6c\xeb\x6c\xec\x6c\xed\x6c\xee\x6c\xef\x6c\xf0\x6c\xf1\x6c\xf2\x6c\xf3\x6c\xf4\x6c\xf5\x6c\xf6\x6c\xf7\x6c\xf8\x6c\xf9\x6c\xfa\x6c\xfb\x6c\xfc\x6c\xfd\x6c\xfe\x6d\x41\x6d\x42\x6d\x43\x6d\x44\x6d\x45\x6d\x46\x6d\x47\x6d\x48", /* e300 */ "\x6d\x49\x6d\x4a\x6d\x4b\x6d\x4c\x6d\x4d\x6d\x4e\x6d\x4f\x6d\x50\x6d\x51\x6d\x52\x6d\x53\x6d\x54\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x59\x6d\x5a\x6d\x5b\x6d\x5c\x6d\x5d\x6d\x5e\x6d\x5f\x6d\x60\x6d\x61\x6d\x62\x6d\x63\x6d\x64\x6d\x65\x6d\x66\x6d\x67\x6d\x68\x6d\x69\x6d\x6a\x6d\x6b\x6d\x6c\x6d\x6d\x6d\x6e\x6d\x6f\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x74\x6d\x75\x6d\x76\x6d\x77\x6d\x78\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7c\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x82\x6d\x83\x6d\x84\x6d\x85\x6d\x86\x6d\x87\x6d\x88\x6d\x89\x6d\x8a\x6d\x8b\x6d\x8c\x6d\x8d\x6d\x8e\x6d\x8f\x6d\x90\x6d\x91\x6d\x92\x6d\x93\x6d\x94\x6d\x95\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9b\x6d\x9c\x6d\x9d\x6d\x9e\x6d\x9f\x6d\xa0\x6d\xa1\x6d\xa2\x6d\xa3\x6d\xa4\x6d\xa5\x6d\xa6\x6d\xa7\x6d\xa8\x6d\xa9\x6d\xaa\x6d\xab\x6d\xac\x6d\xad\x6d\xae\x6d\xaf\x6d\xb0\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb4\x6d\xb5\x6d\xb6\x6d\xb7\x6d\xb8\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xbf\x6d\xc0\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc4\x6d\xc5\x6d\xc6\x6d\xc7\x6d\xc8", /* e380 */ "\x6d\xc9\x6d\xca\x6d\xcb\x6d\xcc\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd1\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd6\x6d\xd7\x6d\xd8\x6d\xd9\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdd\x6d\xde\x6d\xdf\x6d\xe0\x6d\xe1\x6d\xe2\x6d\xe3\x6d\xe4\x6d\xe5\x6d\xe6\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xeb\x6d\xec\x6d\xed\x6d\xee\x6d\xef\x6d\xf0\x6d\xf1\x6d\xf2\x6d\xf3\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf7\x6d\xf8\x6d\xf9\x6d\xfa\x6d\xfb\x6d\xfc\x6d\xfd\x6d\xfe\x6e\x41\x6e\x42\x6e\x43\x6e\x44\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4d\x6e\x4e\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x53\x6e\x54\x6e\x55\x6e\x56\x6e\x57\x6e\x58\x6e\x59\x6e\x5a\x6e\x5b\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x5f\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6b\x6e\x6c\x6e\x6d\x6e\x6e\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x7e\x6e\x7f\x6e\x80\x6e\x81\x6e\x82\x6e\x83\x6e\x84\x6e\x85\x6e\x86\x6e\x87\x6e\x88\x6e\x89\x6e\x8a", /* e400 */ "\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x8f\x6e\x90\x6e\x91\x6e\x92\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x98\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9c\x6e\x9d\x6e\x9e\x6e\x9f\x6e\xa0\x6e\xa1\x6e\xa2\x6e\xa3\x6e\xa4\x6e\xa5\x6e\xa6\x6e\xa7\x6e\xa8\x6e\xa9\x6e\xaa\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xaf\x6e\xb0\x6e\xb1\x6e\xb2\x6e\xb3\x6e\xb4\x6e\xb5\x6e\xb6\x6e\xb7\x6e\xb8\x6e\xb9\x6e\xba\x6e\xbb\x6e\xbc\x6e\xbd\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc1\x6e\xc2\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc7\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcb\x6e\xcc\x6e\xcd\x6e\xce\x6e\xcf\x6e\xd0\x6e\xd1\x6e\xd2\x6e\xd3\x6e\xd4\x6e\xd5\x6e\xd6\x6e\xd7\x6e\xd8\x6e\xd9\x6e\xda\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xde\x6e\xdf\x6e\xe0\x6e\xe1\x6e\xe2\x6e\xe3\x6e\xe4\x6e\xe5\x6e\xe6\x6e\xe7\x6e\xe8\x6e\xe9\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf4\x6e\xf5\x6e\xf6\x6e\xf7\x6e\xf8\x6e\xf9\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6f\x41\x6f\x42\x6f\x43\x6f\x44\x6f\x45\x6f\x46\x6f\x47\x6f\x48\x6f\x49\x6f\x4a\x6f\x4b\x6f\x4c", /* e480 */ "\x6f\x4d\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x58\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5c\x6f\x5d\x6f\x5e\x6f\x5f\x6f\x60\x6f\x61\x6f\x62\x6f\x63\x6f\x64\x6f\x65\x6f\x66\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6d\x6f\x6e\x6f\x6f\x6f\x70\x6f\x71\x6f\x72\x6f\x73\x6f\x74\x6f\x75\x6f\x76\x6f\x77\x6f\x78\x6f\x79\x6f\x7a\x6f\x7b\x6f\x7c\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x84\x6f\x85\x6f\x86\x6f\x87\x6f\x88\x6f\x89\x6f\x8a\x6f\x8b\x6f\x8c\x6f\x8d\x6f\x8e\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9c\x6f\x9d\x6f\x9e\x6f\x9f\x6f\xa0\x6f\xa1\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa7\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb3\x6f\xb4\x6f\xb5\x6f\xb6\x6f\xb7\x6f\xb8\x6f\xb9\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc0\x6f\xc1\x6f\xc2\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xc9\x6f\xca\x6f\xcb\x6f\xcc", /* e500 */ "\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd1\x6f\xd2\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xde\x6f\xdf\x6f\xe0\x6f\xe1\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea\x6f\xeb\x6f\xec\x6f\xed\x6f\xee\x6f\xef\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4c\x70\x4d\x70\x4e\x70\x4f\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5e\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6b\x70\x6c\x70\x6d\x70\x6e\x70\x6f\x70\x70\x70\x71\x70\x72\x70\x73\x70\x74\x70\x75\x70\x76\x70\x77\x70\x78\x70\x79\x70\x7a\x70\x7b\x70\x7c\x70\x7d\x70\x7e\x70\x7f\x70\x80\x70\x81\x70\x82\x70\x83\x70\x84\x70\x85\x70\x86\x70\x87\x70\x88\x70\x89\x70\x8a\x70\x8b\x70\x8c\x70\x8d\x70\x8e", /* e580 */ "\x70\x8f\x70\x90\x70\x91\x70\x92\x70\x93\x70\x94\x70\x95\x70\x96\x70\x97\x70\x98\x70\x99\x70\x9a\x70\x9b\x70\x9c\x70\x9d\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xab\x70\xac\x70\xad\x70\xae\x70\xaf\x70\xb0\x70\xb1\x70\xb2\x70\xb3\x70\xb4\x70\xb5\x70\xb6\x70\xb7\x70\xb8\x70\xb9\x70\xba\x70\xbb\x70\xbc\x70\xbd\x70\xbe\x70\xbf\x70\xc0\x70\xc1\x70\xc2\x70\xc3\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc8\x70\xc9\x70\xca\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xd8\x70\xd9\x70\xda\x70\xdb\x70\xdc\x70\xdd\x70\xde\x70\xdf\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe4\x70\xe5\x70\xe6\x70\xe7\x70\xe8\x70\xe9\x70\xea\x70\xeb\x70\xec\x70\xed\x70\xee\x70\xef\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf7\x70\xf8\x70\xf9\x70\xfa\x70\xfb\x70\xfc\x70\xfd\x70\xfe\x71\x41\x71\x42\x71\x43\x71\x44\x71\x45\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4a\x71\x4b\x71\x4c\x71\x4d\x71\x4e\x71\x4f\x71\x50", /* e600 */ "\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5c\x71\x5d\x71\x5e\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x64\x71\x65\x71\x66\x71\x67\x71\x68\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6e\x71\x6f\x71\x70\x71\x71\x71\x72\x71\x73\x71\x74\x71\x75\x71\x76\x71\x77\x71\x78\x71\x79\x71\x7a\x71\x7b\x71\x7c\x71\x7d\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x84\x71\x85\x71\x86\x71\x87\x71\x88\x71\x89\x71\x8a\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x8f\x71\x90\x71\x91\x71\x92\x71\x93\x71\x94\x71\x95\x71\x96\x71\x97\x71\x98\x71\x99\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\x9f\x71\xa0\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa8\x71\xa9\x71\xaa\x71\xab\x71\xac\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb3\x71\xb4\x71\xb5\x71\xb6\x71\xb7\x71\xb8\x71\xb9\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc3\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xce\x71\xcf\x71\xd0", /* e680 */ "\x71\xd1\x71\xd2\x71\xd3\x71\xd4\x71\xd5\x71\xd6\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe0\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe5\x71\xe6\x71\xe7\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xee\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8\x71\xf9\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x47\x72\x48\x72\x49\x72\x4a\x72\x4b\x72\x4c\x72\x4d\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x52\x72\x53\x72\x54\x72\x55\x72\x56\x72\x57\x72\x58\x72\x59\x72\x5a\x72\x5b\x72\x5c\x72\x5d\x72\x5e\x72\x5f\x72\x60\x72\x61\x72\x62\x72\x63\x72\x64\x72\x65\x72\x66\x72\x67\x72\x68\x72\x69\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x6e\x72\x6f\x72\x70\x72\x71\x72\x72\x72\x73\x72\x74\x72\x75\x72\x76\x72\x77\x72\x78\x72\x79\x72\x7a\x72\x7b\x72\x7c\x72\x7d\x72\x7e\x72\x7f\x72\x80\x72\x81\x72\x82\x72\x83\x72\x84\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8a\x72\x8b\x72\x8c\x72\x8d\x72\x8e\x72\x8f\x72\x90\x72\x91\x72\x92", /* e700 */ "\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\x9f\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xac\x72\xad\x72\xae\x72\xaf\x72\xb0\x72\xb1\x72\xb2\x72\xb3\x72\xb4\x72\xb5\x72\xb6\x72\xb7\x72\xb8\x72\xb9\x72\xba\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc1\x72\xc2\x72\xc3\x72\xc4\x72\xc5\x72\xc6\x72\xc7\x72\xc8\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcd\x72\xce\x72\xcf\x72\xd0\x72\xd1\x72\xd2\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd7\x72\xd8\x72\xd9\x72\xda\x72\xdb\x72\xdc\x72\xdd\x72\xde\x72\xdf\x72\xe0\x72\xe1\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xe8\x72\xe9\x72\xea\x72\xeb\x72\xec\x72\xed\x72\xee\x72\xef\x72\xf0\x72\xf1\x72\xf2\x72\xf3\x72\xf4\x72\xf5\x72\xf6\x72\xf7\x72\xf8\x72\xf9\x72\xfa\x72\xfb\x72\xfc\x72\xfd\x72\xfe\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4d\x73\x4e\x73\x4f\x73\x50\x73\x51\x73\x52\x73\x53\x73\x54", /* e780 */ "\x73\x55\x73\x56\x73\x57\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x60\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6c\x73\x6d\x73\x6e\x73\x6f\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c\x73\x7d\x73\x7e\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x84\x73\x85\x73\x86\x73\x87\x73\x88\x73\x89\x73\x8a\x73\x8b\x73\x8c\x73\x8d\x73\x8e\x73\x8f\x73\x90\x73\x91\x73\x92\x73\x93\x73\x94\x73\x95\x73\x96\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9b\x73\x9c\x73\x9d\x73\x9e\x73\x9f\x73\xa0\x73\xa1\x73\xa2\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xa9\x73\xaa\x73\xab\x73\xac\x73\xad\x73\xae\x73\xaf\x73\xb0\x73\xb1\x73\xb2\x73\xb3\x73\xb4\x73\xb5\x73\xb6\x73\xb7\x73\xb8\x73\xb9\x73\xba\x73\xbb\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc0\x73\xc1\x73\xc2\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xc8\x73\xc9\x73\xca\x73\xcb\x73\xcc\x73\xcd\x73\xce\x73\xcf\x73\xd0\x73\xd1\x73\xd2\x73\xd3\x73\xd4", /* e800 */ "\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xd9\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xde\x73\xdf\x73\xe0\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe5\x73\xe6\x73\xe7\x73\xe8\x73\xe9\x73\xea\x73\xeb\x73\xec\x73\xed\x73\xee\x73\xef\x73\xf0\x73\xf1\x73\xf2\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc\x73\xfd\x73\xfe\x74\x41\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x55\x74\x56\x74\x57\x74\x58\x74\x59\x74\x5a\x74\x5b\x74\x5c\x74\x5d\x74\x5e\x74\x5f\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6d\x74\x6e\x74\x6f\x74\x70\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x76\x74\x77\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7e\x74\x7f\x74\x80\x74\x81\x74\x82\x74\x83\x74\x84\x74\x85\x74\x86\x74\x87\x74\x88\x74\x89\x74\x8a\x74\x8b\x74\x8c\x74\x8d\x74\x8e\x74\x8f\x74\x90\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96", /* e880 */ "\x74\x97\x74\x98\x74\x99\x74\x9a\x74\x9b\x74\x9c\x74\x9d\x74\x9e\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xa7\x74\xa8\x74\xa9\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xba\x74\xbb\x74\xbc\x74\xbd\x74\xbe\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd2\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdc\x74\xdd\x74\xde\x74\xdf\x74\xe0\x74\xe1\x74\xe2\x74\xe3\x74\xe4\x74\xe5\x74\xe6\x74\xe7\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xee\x74\xef\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf4\x74\xf5\x74\xf6\x74\xf7\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x41\x75\x42\x75\x43\x75\x44\x75\x45\x75\x46\x75\x47\x75\x48\x75\x49\x75\x4a\x75\x4b\x75\x4c\x75\x4d\x75\x4e\x75\x4f\x75\x50\x75\x51\x75\x52\x75\x53\x75\x54\x75\x55\x75\x56\x75\x57\x75\x58", /* e900 */ "\x75\x59\x75\x5a\x75\x5b\x75\x5c\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x65\x75\x66\x75\x67\x75\x68\x75\x69\x75\x6a\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x72\x75\x73\x75\x74\x75\x75\x75\x76\x75\x77\x75\x78\x75\x79\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x7f\x75\x80\x75\x81\x75\x82\x75\x83\x75\x84\x75\x85\x75\x86\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8b\x75\x8c\x75\x8d\x75\x8e\x75\x8f\x75\x90\x75\x91\x75\x92\x75\x93\x75\x94\x75\x95\x75\x96\x75\x97\x75\x98\x75\x99\x75\x9a\x75\x9b\x75\x9c\x75\x9d\x75\x9e\x75\x9f\x75\xa0\x75\xa1\x75\xa2\x75\xa3\x75\xa4\x75\xa5\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xab\x75\xac\x75\xad\x75\xae\x75\xaf\x75\xb0\x75\xb1\x75\xb2\x75\xb3\x75\xb4\x75\xb5\x75\xb6\x75\xb7\x75\xb8\x75\xb9\x75\xba\x75\xbb\x75\xbc\x75\xbd\x75\xbe\x75\xbf\x75\xc0\x75\xc1\x75\xc2\x75\xc3\x75\xc4\x75\xc5\x75\xc6\x75\xc7\x75\xc8\x75\xc9\x75\xca\x75\xcb\x75\xcc\x75\xcd\x75\xce\x75\xcf\x75\xd0\x75\xd1\x75\xd2\x75\xd3\x75\xd4\x75\xd5\x75\xd6\x75\xd7\x75\xd8", /* e980 */ "\x75\xd9\x75\xda\x75\xdb\x75\xdc\x75\xdd\x75\xde\x75\xdf\x75\xe0\x75\xe1\x75\xe2\x75\xe3\x75\xe4\x75\xe5\x75\xe6\x75\xe7\x75\xe8\x75\xe9\x75\xea\x75\xeb\x75\xec\x75\xed\x75\xee\x75\xef\x75\xf0\x75\xf1\x75\xf2\x75\xf3\x75\xf4\x75\xf5\x75\xf6\x75\xf7\x75\xf8\x75\xf9\x75\xfa\x75\xfb\x75\xfc\x75\xfd\x75\xfe\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x80\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a", /* ea00 */ "\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x76\xfe\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c", /* ea80 */ "\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x80\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc", /* eb00 */ "\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x77\xfe\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x80\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e", /* eb80 */ "\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x78\xfe\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60", /* ec00 */ "\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x80\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0", /* ec80 */ "\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x79\xfe\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x80\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2", /* ed00 */ "\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7a\xfe\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64", /* ed80 */ "\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x80\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4", /* ee00 */ "\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7b\xfe\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x80\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6", /* ee80 */ "\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7c\xfe\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68", /* ef00 */ "\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x80\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8", /* ef80 */ "\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7d\xfe\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x80\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa", /* f000 */ "\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7e\xfe\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c", /* f080 */ "\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x80\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec", /* f100 */ "\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x7f\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x8e\x58\x77\x58\x82\x59\x80\x5b\xae\x5c\x66\x5c\x78\x5e\x49\x5e\x8a\x5f\x7a\x5f\xd2\x5f\xd5\x5f\xd9\x5f\xdd\x60\x59\x60\xad\x61\x77\x62\xb9\x62\xce\x62\xe2\x63\xee\x64\x8e\x64\xf1\x65\x49\x65\x66\x65\xb8\x65\xc6\x66\x78\x66\xdd\x66\xdf\x66\xe6\x67\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x00\x00\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x00\x00\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-300_P110-1997 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\x22\x12\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x22\x20\x22\xa5\x23\x12\x22\x02\x22\x07\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\x22\x61\x22\x52\x22\x6a\x22\x6b\x22\x1a\x22\x3d\x22\x1d\x22\x2b\x22\x2c\x22\x08\x22\x0b\x22\x86\x22\x87\x22\x82\x22\x83\x22\x2a\x22\x29\x22\x27\x22\x28\x21\xd2\x21\xd4\x22\x00\x22\x03\x21\x2b\x20\x30\x26\x6f\x26\x6d\x26\x6a\x20\x20\x20\x21\x00\xb6\x25\xef\x00\x00\x25\x00\x25\x02\x25\x0c\x25\x10", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\x30\x1c\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x25\x18\x25\x14\x25\x1c\x25\x2c\x25\x24\x25\x34\x25\x3c\x25\x01\x25\x03\x25\x0f\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x25\x13\x25\x1b\x25\x17\x25\x23\x25\x33\x25\x2b\x25\x3b\x25\x4b\x25\x20\x25\x2f\x25\x28\x25\x37\x25\x3f\x25\x1d\x25\x30\x25\x25\x25\x38\x25\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x14\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\x4e\xdd\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x66\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\xf8\x6f\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x67\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x8c\x4e\x09\x56\xdb\x4e\x94\x51\x6d\x4e\x03\x51\x6b\x4e\x5d\x53\x41\x76\x7e\x53\x43\x4e\x07\x51\x04\x90\xfd\x90\x53\x5e\x9c\x77\x0c\x5e\x02\x53\x3a\x75\x3a\x67\x51\x67\x71\x89\x7f\x53\x57\x53\x17\x59\x27\x4e\x2d\x5c\x0f\x4e\x0a\x4e\x0b\x5e\x74\x67\x08\x65\xe5\x75\x30\x5b\x50\x5c\x71\x67\x2c\x5d\xdd\x85\xe4\x91\xce\x5d\xe5\x69\x6d\x67\x28\x4e\x95\x90\xce\x5c\xf6\x96\xc4\x9a\xd8\x5c\xa1\x59\x2b\x53\x9f\x4e\xac\x4f\x50\x6b\x63\x67\x7e\x6a\x5f\x54\x8c\x88\xfd\x75\x37\x7f\x8e\x54\x09\x5d\x0e", /* 4580 */ "\x77\xf3\x8c\x37\x96\xfb\x95\x77\x6c\xbb\x6c\xa2\x91\xd1\x65\xb0\x53\xe3\x6a\x4b\x4e\x45\x79\x8f\x62\x40\x5e\x73\x51\x85\x56\xfd\x53\x16\x96\x2a\x5b\xae\x4e\xba\x4f\x5c\x90\xe8\x6e\x05\x6b\x21\x7f\xa9\x75\x1f\x4e\xe3\x51\xfa\x6c\x34\x68\xee\x51\x49\x52\xa0\x54\x08\x79\x5e\x67\x97\x91\xcd\x88\x4c\x4f\xe1\x66\x0e\x6d\x77\x5b\x89\x5e\x78\x4f\xdd\x59\x2a\x5b\xcc\x6c\x5f\x92\x34\x52\x4d\x77\xe5\x6b\x66\x4f\x0a\x66\x2d\x52\x06\x52\xdd\x75\x28\x5e\x83\x90\x20\x6c\x17\x62\x10\x89\x8b\x52\x29\x4f\x1a\x5b\x66\x5c\xa9\x75\x23\x95\x93\x57\x30\x81\xea\x82\x6f\x95\xa2\x61\x1b\x65\x3f\x5c\x3e\x8a\x08\x65\x87\x62\x4b\x72\x36\x65\xb9\x4e\x8b\x62\x38\x54\xc1\x55\x9c\x6e\x21\x5f\x18\x53\xe4\x8f\xba\x50\x09\x92\x44\x4e\x4b\x58\x34\x6d\x0b\x57\xce\x6d\x25\x7a\xcb\x5e\xa6\x53\x48\x4e\xca\x5f\x66\x8a\x2d\x90\x1a\x52\xd5\x5f\x8c\x59\x48\x5b\x9a\x6c\x60\x5c\x4b\x6d\x5c\x74\x06\x57\x42\x5b\x9f\x82\xf1\x76\x84\x53\xf8\x79\xc0\x6a\x2a\x54\x0d\x5b\x5d\x7a\xf9\x53\x5a\x52\x9b\x5e\xab\x84\x49\x68\x04\x6c\x38\x56\x68\x73\x89\x59\x1a\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\xc0\x77\x1f\x60\x75\x97\x59\x51\x86\x83\x02\x65\x4f\x8c\x4a\x51\x75\x6c\xd5\x76\x7a\x97\x52\x58\x97\x65\x99\x5f\xe0\x8c\xc7\x66\x42\x72\x69\x8e\xca\x5f\xb3\x89\x81\x5b\xfe\x58\x5a\x79\xcb\x76\x7d\x6c\xb3\x70\x2c\x6c\xb9\x96\x86\x85\x35\x5f\x53\x4f\xca\x5f\xd7\x66\x25\x79\x3e\x99\xac\x51\x65\x5e\xfa\x68\x39\x67\x49\x90\x32\x82\x08\x6d\x66\x7c\xbe\x54\x0c\x60\x27\x7c\x73\x80\x05\x52\xa9\x67\x9d\x8f\xd1\x76\xf4\x76\xee\x67\x65\x75\x3b\x76\xf8\x9e\xd2\x4e\x38\x82\x39\x75\x31\x58\xeb\x7b\x2c\x71\x8a", /* 4680 */ "\x7d\x19\x50\x65\x68\xb0\x82\xb3\x57\x1f\x67\x09\x5b\xb6\x7d\xda\x7d\x4c\x8a\xbf\x59\x29\x67\x1f\x7f\x6e\x6d\x45\x65\x89\x5f\x0f\x5f\x62\x97\x62\x7a\x2e\x8f\x38\x59\x16\x51\x43\x4f\x53\x9e\x7f\x5f\xa1\x59\x73\x5e\xb7\x4e\x16\x52\xc7\x58\x00\x59\x7d\x51\x50\x5b\xfa\x92\xfc\x72\x79\x57\xfc\x90\x54\x54\x11\x53\xd6\x7b\x49\x66\x7a\x56\xde\x95\x80\x90\x4b\x50\x99\x60\x1d\x96\x3f\x4e\x0d\x98\x08\x51\x68\x5b\xff\x55\x84\x67\x7f\x98\xef\x8c\x9e\x73\xfe\x98\xdf\x7d\x44\x98\x5e\x51\x6c\x67\x50\x99\x99\x55\x46\x7d\x50\x88\x68\x77\xe2\x6f\x5f\x79\xc1\x52\x36\x90\xa6\x6c\xbc\x7c\xf8\x5b\x8f\x7b\x56\x6c\xe2\x54\xe1\x65\x70\x95\x8b\x6e\x96\x6a\x39\x8c\xbb\x66\x0c\x5f\x37\x78\x14\x53\xcb\x5b\x87\x82\xe5\x83\xca\x63\x01\x82\xb1\x5f\x15\x7d\x00\x83\x52\x52\x25\x4f\xee\x8d\x8a\x4f\x4f\x85\xac\x6b\xdb\x90\x60\x55\x4f\x59\x65\x57\x8b\x5f\xc3\x76\x7b\x65\xe9\x67\xf3\x6d\x69\x8c\xea\x52\xd9\x6c\xc9\x5e\x38\x5b\x88\x57\xfa\x7b\xa1\x6c\xf0\x4f\x38\x67\x00\x4e\xe5\x6b\x4c\x88\xd5\x8d\x64\x8d\xb3\x89\x8f\x6d\x41\x8a\xa0\x66\x07\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xde\x71\x67\x58\x69\x90\x01\x96\xc5\x67\x2b\x54\xf2\x5c\xb8\x4e\x5f\x5c\x90\x52\x1d\x83\x28\x52\x47\x6b\xd4\x80\xfd\x8a\x71\x62\x95\x8e\xe2\x83\xc5\x90\x23\x4e\xd6\x6c\x11\x7d\x66\x91\x52\x7e\x41\x4f\xa1\x6e\x80\x67\x1d\x4e\xd8\x67\x61\x71\x21\x80\x03\x69\x7d\x4e\x3b\x61\x0f\x62\x26\x52\x07\x52\x64\x72\x47\x7d\x30\x6e\x08\x7a\x32\x5e\x03\x91\xcc\x5c\x5e\x7a\xe0\x59\x09\x4f\x55\x68\x5c\x5f\x7c\x67\xfb\x76\xca\x58\xf2\x4e\xc1\x6d\xf1\x53\xf0\x9c\xe5\x9d\xb4\x65\x2f\x65\x74\x89\xd2\x56\x09\x54\x73", /* 4780 */ "\x88\x5b\x8b\x70\x57\x27\x73\x87\x8d\xef\x70\x6b\x96\x1c\x8f\x1d\x70\xb9\x4e\x0e\x6e\x1b\x75\x51\x92\x80\x7a\x7a\x4e\xa4\x7f\xbd\x53\x4a\x53\xce\x59\x2e\x7d\xcf\x8a\x18\x66\x74\x69\xcb\x96\x9b\x68\x85\x53\x70\x8a\x00\x68\x17\x8e\xab\x66\xf8\x51\x4b\x7d\x20\x96\xc6\x7b\xc0\x51\x48\x6e\xdd\x6c\x7a\x65\x59\x7d\x14\x67\xf4\x63\xa5\x66\x1f\x77\x40\x75\x59\x66\x20\x5d\xf1\x75\x4c\x51\x77\x65\x6c\x7f\xa4\x98\x06\x51\x71\x6d\x3b\x91\xcf\x63\x07\x89\xe3\x5b\xa4\x67\x9c\x54\x04\x67\x1b\x96\x32\x7d\x04\x61\xb2\x96\x7d\x4e\x80\x56\xf3\x4e\x88\x82\x72\x7a\x0e\x69\x0d\x53\xef\x60\x52\x4f\x4d\x51\x78\x5f\xc5\x7d\x9a\x60\x25\x57\x28\x57\xa3\x54\x1b\x5e\xf6\x5d\x8b\x4f\x01\x68\x03\x67\x0d\x71\xb1\x52\x72\x53\x54\x6b\x69\x53\xf2\x51\x2a\x65\x8e\x62\x3f\x5b\x97\x68\x3c\x8f\xb0\x7b\x20\x57\x12\x8a\xf8\x81\x07\x55\x53\x8c\xe2\x5f\x25\x98\xa8\x5f\x97\x66\x13\x62\x53\x98\x2d\x65\xed\x6b\xb5\x52\xe2\x71\x36\x56\xe3\x98\x4d\x84\x3d\x91\x4d\x7a\x0b\x8f\xbb\x54\x3e\x61\x1f\x5b\xdb\x53\xcd\x7a\x14\x97\x00\x6e\x90\x6c\x96\x98\x4c\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xbc\x83\x49\x7b\x97\x76\xdb\x8f\xb2\x90\xa3\x77\x01\x69\xd8\x6b\xbf\x5c\x11\x4e\xcb\x53\xd7\x97\xf3\x7d\xe8\x59\xd4\x5e\x84\x4f\xc2\x72\xb6\x79\x3a\x5e\x97\x5a\x9b\x68\x2a\x6e\xcb\x68\xa8\x7e\x04\x53\xf3\x5d\xe6\x53\xca\x90\x78\x5c\x45\x60\xc5\x7d\xf4\x70\xad\x99\x28\x92\x71\x6a\x21\x6b\x8a\x7e\x3e\x4e\x9c\x7e\x4a\x4e\xf2\x58\x57\x6d\x88\x88\x53\x69\x1c\x67\x17\x5b\x85\x52\x9f\x5c\x1a\x8c\xbf\x60\xa6\x81\x02\x7b\xe0\x4f\x73\x7d\x21\x51\xa8\x68\x51\x78\xba\x72\x67\x4e\x26\x50\x24\x89\xb3\x8c\xb4", /* 4880 */ "\x7d\xad\x7d\x71\x5b\xbf\x4e\x21\x7c\xd6\x89\xaa\x93\x32\x6f\x84\x65\xbd\x5b\xb9\x98\xdb\x5c\x40\x79\x50\x90\x4e\x6c\x0f\x65\x39\x76\xe4\x7a\x4d\x6e\x0b\x5d\xfb\x6d\xf3\x5f\xdc\x4e\x89\x8e\xcd\x88\xc5\x91\x78\x7e\x54\x67\xd3\x5e\x1d\x7d\xbf\x7c\x89\x82\x2a\x75\x32\x54\x68\x4e\xd9\x5f\x85\x4f\x4e\x7d\xd1\x8e\xfd\x9e\xbb\x61\x76\x52\xb4\x78\xef\x4e\x39\x80\xb2\x96\x50\x5c\x0e\x65\x3e\x66\x43\x5e\xa7\x4e\xf6\x60\xf3\x9a\x13\x4e\xd5\x4f\x7f\x8f\x2a\x98\x54\x75\x6a\x5f\x35\x80\x5e\x4f\x9b\x6e\x6f\x6e\xb6\x68\x21\x92\x85\x92\xf3\x87\x8d\x97\x56\x51\x99\x5b\x8c\x6e\x2f\x93\x5b\x59\x1c\x51\x45\x9f\x8d\x7d\xb1\x83\xf1\x90\x1f\x52\xc9\x52\x37\x8d\x77\x64\x69\x53\xc2\x55\xb6\x7a\x42\x63\xa8\x8f\xd4\x80\x77\x6b\x62\x4f\x1d\x5e\x79\x74\x03\x6a\x29\x5c\x55\x5e\x61\x84\x5b\x5e\xad\x97\x5e\x53\xf7\x53\x58\x6b\x73\x62\xe1\x51\xe6\x8a\x9e\x66\x28\x57\xdf\x6d\xf5\x51\x8d\x50\xcd\x79\xd1\x9b\x5a\x7a\xef\x90\x14\x68\x48\x5b\x57\x8a\xd6\x51\x7c\x53\xc8\x63\x2f\x62\x80\x5f\xb9\x67\x2d\x7c\xfb\x5f\x93\x51\xb7\x61\x4b\x5c\xf0\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x31\x53\x9a\x50\x74\x6c\xe8\x6e\x2c\x98\x03\x4e\x57\x8a\x66\x57\x6a\x84\x29\x51\x5a\x6c\x7d\x5b\x9d\x60\x6d\x6a\x0b\x6e\x29\x65\x77\x8a\xac\x82\xb8\x54\x4a\x6b\x74\x82\x2c\x98\xfe\x79\x3c\x5c\x06\x96\xe3\x78\x02\x52\x24\x5f\x79\x5f\x71\x66\xfd\x5e\x2f\x96\x78\x93\x8c\x8a\xc7\x5f\x70\x60\xaa\x6a\x19\x75\x33\x5b\xb3\x6b\xcd\x88\xdc\x5e\x4c\x58\xf0\x96\x64\x7b\x39\x5a\x66\x4e\x7e\x7a\xf6\x82\x9d\x72\x5b\x8c\xb7\x79\xfb\x78\x5d\x83\x36\x52\xb9\x99\x0a\x52\xf2\x80\xa5\x8b\x19\x70\x89\x59\x0f\x58\x02", /* 4980 */ "\x67\xcf\x62\x55\x5e\x30\x71\x3c\x78\x6b\x80\x01\x7a\x76\x5b\xe9\x91\xdd\x65\xad\x5c\x04\x5d\xee\x5d\x50\x62\x98\x80\x10\x5b\xa3\x59\xcb\x5f\x8b\x6b\x8b\x66\x6f\x8c\x61\x90\xf7\x53\x53\x96\xe2\x85\xab\x6b\x7b\x80\x15\x64\xcd\x4e\xae\x4e\x91\x90\xe1\x52\xe4\x6c\x42\x8c\xab\x5b\x98\x59\xbb\x88\xcf\x77\x3c\x4f\x2f\x7a\xaf\x7b\xc9\x96\x8e\x63\xdb\x68\x42\x99\xc5\x68\xb6\x57\x47\x8c\xa1\x54\x7d\x73\x8b\x84\xb2\x90\xc1\x78\xe8\x7b\x11\x66\xf2\x69\x75\x58\x31\x63\xd0\x8a\x3c\x96\xea\x90\x55\x88\xc1\x99\x96\x75\xc5\x68\x50\x4f\x59\x74\xe6\x4e\xe4\x54\x39\x73\x2a\x67\x2a\x52\x5b\x8c\xa0\x4f\x34\x51\x00\x54\x2b\x90\x69\x8f\xc4\x5c\x3b\x5d\xcc\x7b\x54\x8f\xfd\x8a\x0e\x4e\x08\x92\x5b\x71\xc3\x8a\xb2\x70\xba\x96\x62\x67\x9a\x76\xae\x8b\x77\x7d\xbe\x96\xe8\x62\x11\x5b\xc4\x83\x7b\x62\xbc\x7d\x0d\x76\xe3\x7e\x2b\x96\x4d\x57\x2d\x7a\xdc\x7b\xc4\x6b\xba\x8c\x9d\x69\x8e\x90\x47\x6f\x14\x53\x60\x8f\xeb\x52\x87\x62\x4d\x65\x66\x7d\x1a\x7d\x42\x6b\xce\x7d\x79\x7e\x2e\x66\x6e\x79\x65\x50\x0b\x5c\x02\x99\xd2\x8a\x55\x75\x60\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x58\x80\x89\x50\xbe\x5e\x2b\x6d\xb2\x4f\x8b\x81\xe3\x81\xf3\x56\xe0\x7d\x99\x5d\xf2\x89\x9a\x6e\x9d\x6d\x17\x8a\xad\x89\x96\x73\x1b\x5d\xe8\x7d\xb2\x88\x8b\x4e\xfb\x5b\xc6\x88\x96\x6c\xc1\x84\x57\x8f\x03\x6b\xc5\x97\xff\x8c\xa9\x5e\x45\x82\xe6\x63\xaa\x5f\x81\x78\xc1\x82\x1e\x52\xaa\x7a\xaa\x59\x99\x62\x97\x8f\x14\x7f\xd2\x4f\xc3\x54\xc9\x96\x7a\x66\xf4\x8b\x1b\x5e\x72\x5f\xa9\x8a\x2a\x6d\x3e\x77\x63\x64\x83\x8b\x58\x61\x4e\x5a\x5a\x8d\x85\x71\xd0\x98\x3c\x72\xe9\x58\x3a\x5d\xfe\x8a\x8d\x67\xc4", /* 4a80 */ "\x7d\xe0\x4f\x11\x77\xed\x4f\x0f\x5b\xc5\x62\x9c\x5c\x3c\x53\x3b\x6d\xc0\x81\xfc\x96\xd1\x90\x4a\x6d\x6e\x93\xe1\x5c\x64\x98\xfc\x52\x4a\x6d\xfb\x85\x84\x96\x8a\x56\xfa\x58\x83\x77\x66\x98\x05\x4e\x73\x8c\x46\x8a\x31\x7d\xd2\x8f\xf0\x6d\x6a\x4f\x9d\x6b\x6f\x6b\x27\x62\xc5\x51\x1f\x97\x69\x53\x74\x9a\xa8\x67\x75\x88\x7f\x53\x05\x75\x70\x8d\x70\x86\x4e\x5c\xef\x8c\xde\x5f\xf5\x72\x5f\x76\x86\x60\x9f\x80\xcc\x59\xeb\x81\x31\x5e\x0c\x8a\x17\x96\x76\x82\xd7\x74\xb0\x84\xb8\x50\xd5\x96\xf2\x72\x48\x78\x34\x6d\xd1\x6e\x09\x67\xff\x6f\x54\x59\x15\x50\x0d\x72\xac\x9e\xc4\x7b\x46\x9b\x3c\x65\x63\x53\xbb\x8a\x98\x91\xdc\x98\x18\x6f\xc3\x65\xc5\x50\x1f\x7f\x8a\x6f\x64\x90\x31\x5f\x3e\x63\xf4\x90\x38\x8b\x66\x7b\xe4\x72\x06\x68\x43\x72\xec\x65\xcf\x82\xa6\x5b\xa2\x69\x60\x9e\xa6\x52\xdf\x67\x90\x63\x9b\x7d\x75\x98\x55\x5d\xf3\x58\x05\x8a\xcb\x95\xa3\x88\x63\x8c\xa8\x5b\x63\x5e\x8a\x54\x49\x78\x6c\x7d\x2b\x8c\xa2\x53\x52\x7d\x76\x8c\xb8\x70\x70\x54\x7c\x65\x45\x66\x76\x73\xb2\x56\xf2\x7b\xb1\x58\xa8\x7a\x81\x66\xae\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x87\x59\xff\x88\x40\x56\xf0\x7b\x51\x6d\xf7\x5f\x01\x93\x4b\x90\x00\x4f\xe3\x67\x5f\x4f\xbf\x8c\xc3\x52\x6f\x63\xa1\x54\x42\x89\x07\x69\x8a\x5e\x2d\x5a\x18\x75\x18\x51\x4d\x5e\x7e\x50\xb5\x5b\xdd\x68\xd2\x74\x5e\x69\xfb\x5f\xae\x55\xe3\x8a\x70\x5b\xf8\x58\x24\x83\x58\x5f\x13\x5e\x95\x70\x6f\x75\x1a\x7d\x05\x60\xe3\x7e\x70\x50\x12\x52\x38\x83\xef\x53\x73\x5f\x31\x6a\x2b\x9c\xf4\x53\xcc\x6d\x32\x4e\xab\x4e\x92\x84\x2c\x8a\x8c\x65\xe2\x6f\x01\x80\xa9\x9d\xf9\x8b\x72\x7b\x52\x95\x89\x6d\x74\x63\xa2", /* 4b80 */ "\x65\x90\x5b\xd2\x63\x19\x8a\xb0\x76\xdf\x99\xa8\x7a\x74\x82\x36\x88\x46\x80\x61\x65\x57\x59\x22\x96\x44\x88\xab\x93\x26\x7b\x4b\x62\xb5\x53\x71\x5e\x81\x5b\xdf\x4f\x75\x58\xc1\x70\x58\x7d\xca\x54\x38\x73\xe0\x52\xd8\x52\x08\x78\xd0\x6b\x23\x68\x38\x4e\x43\x69\x0e\x83\x77\x6e\xd1\x98\xf2\x81\x70\x88\x57\x8e\xf8\x79\x8e\x83\xdc\x8f\xce\x7e\x01\x55\x10\x4e\xa8\x8a\x33\x91\x62\x5e\xfb\x60\x6f\x4e\x86\x66\x4b\x63\x68\x52\x17\x80\x56\x51\xfd\x76\x42\x82\x1f\x96\x85\x50\xcf\x66\x2f\x4f\x3c\x4e\x59\x6a\x3d\x4e\x71\x52\x3a\x8a\xcf\x6a\x58\x66\xff\x67\x0b\x65\x3b\x97\x32\x5e\xc3\x8a\x13\x57\x82\x60\x4b\x86\x6b\x95\xd8\x60\xa9\x4e\x01\x63\xcf\x6f\xc0\x65\x9c\x8c\xac\x83\x05\x7c\xa7\x60\x50\x96\xf7\x5f\xcd\x64\x0d\x5b\x54\x90\x0f\x62\xd3\x59\xb9\x71\x59\x51\xac\x79\xf0\x55\x2f\x52\x75\x66\x97\x80\xf8\x4e\x98\x4e\xcf\x51\xcd\x9d\x5c\x51\x44\x7a\x93\x67\xf1\x58\x41\x7c\x21\x88\x61\x5c\x31\x68\xda\x91\xe7\x9d\xf2\x63\xee\x65\x75\x84\xee\x52\x3b\x6b\x32\x7c\x98\x59\x82\x96\x9c\x89\x87\x7c\x9f\x90\x06\x62\xdb\x66\xdc\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x55\x69\x82\x50\xac\x62\x3b\x5f\xd8\x63\xda\x75\xdb\x62\x7f\x61\x6e\x82\x66\x7c\x95\x71\x6e\x96\xc7\x7f\x6a\x54\x26\x52\x00\x83\xd3\x52\x11\x59\x4f\x9d\x28\x57\x4a\x66\xc7\x98\x58\x82\x0e\x66\x14\x73\x3f\x50\xb7\x65\x51\x5e\xb8\x5b\x6b\x55\xac\x5f\xeb\x63\x88\x8c\xaf\x67\x6f\x59\x51\x5a\x01\x71\xe5\x5d\xe3\x8c\x6a\x62\x71\x81\xf4\x5c\x3a\x5f\x92\x90\x45\x73\x84\x71\x49\x79\xd8\x79\x6d\x90\x03\x83\xcc\x5f\xb4\x5b\x8d\x62\x79\x64\xae\x7d\x18\x72\x3e\x5b\xee\x65\xe7\x8d\x08\x9e\x7c\x52\xe7\x5d\x07", /* 4c80 */ "\x9f\x62\x60\x69\x53\x6f\x66\x81\x96\x63\x5e\x3d\x62\xb1\x72\x2a\x6e\x4a\x93\xae\x79\xe6\x53\xe5\x80\x9d\x88\xfe\x53\xb3\x6c\x88\x6e\x7f\x51\x41\x90\x91\x6f\x6e\x84\xc4\x85\xea\x81\x29\x6b\xd2\x66\x3c\x7f\x72\x73\xc2\x5f\x1f\x79\x0e\x60\xb2\x72\xed\x58\xee\x81\x79\x8e\x8d\x5c\x65\x5d\xe7\x6c\x37\x6d\xe1\x86\x2d\x72\xaf\x8e\x0a\x7c\x92\x82\x18\x80\x33\x63\xa7\x92\x91\x50\x19\x81\x55\x8a\x69\x8e\xdf\x66\xb4\x81\x33\x75\x91\x6b\x20\x66\x69\x90\xf5\x4e\x32\x73\xea\x69\x3f\x76\x87\x70\x7d\x7d\x3a\x61\x48\x86\x07\x99\xff\x59\xc9\x78\x32\x78\x15\x90\x7f\x80\xa1\x5c\x3f\x66\xa2\x94\x18\x6d\x44\x5e\x55\x58\x54\x7b\x95\x8d\xe1\x4e\xa1\x8c\x5a\x81\xe8\x89\xe6\x96\x70\x52\x63\x74\xf6\x9a\x5a\x60\x12\x52\x0a\x74\x34\x98\x01\x90\x7a\x55\x04\x79\x56\x52\x30\x54\xb2\x8a\x34\x96\xa3\x4f\xf3\x92\x83\x91\xe3\x7d\x39\x96\x88\x4f\x51\x7d\x61\x5d\xba\x9b\xae\x5f\x80\x79\x5d\x85\x97\x8d\xa3\x7c\x60\x5c\x0a\x75\x65\x85\xa9\x63\xd6\x9e\x97\x7d\x22\x53\x75\x9a\xea\x90\x42\x6b\x3d\x7d\x0b\x63\x92\x80\xaa\x7d\xe9\x9f\x3b\x99\xc6\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x78\x67\x31\x55\x31\x63\x98\x78\x25\x5c\xb3\x5d\xe1\x92\xad\x98\xfd\x98\x10\x6c\xe3\x6b\x64\x53\x21\x6b\x53\x5e\x8f\x7a\xe5\x50\x2b\x6e\x56\x62\xbd\x82\x76\x6a\x9c\x4e\x18\x57\xf7\x75\x2b\x7c\x97\x82\xeb\x98\x02\x81\x1a\x73\xcd\x8f\x9b\x5c\x0b\x63\xe1\x73\x72\x81\x50\x80\xe1\x5b\x99\x76\xd7\x62\x91\x65\xec\x8a\x3a\x59\x47\x65\xe8\x6e\x7e\x66\x96\x55\xab\x8f\x09\x92\xed\x93\x96\x4e\xee\x75\x5c\x6f\x38\x8f\x9e\x79\x81\x5c\x01\x62\xe0\x9b\xe8\x91\xc8\x62\x76\x65\xcb\x8e\x0f\x8b\x21\x69\x9b\x62\x16", /* 4d80 */ "\x5a\x92\x90\xb8\x50\xda\x79\xdf\x6c\x41\x52\x70\x91\x75\x8b\x39\x68\x5d\x58\x75\x81\x9c\x5b\x9c\x8a\x89\x8a\x72\x9d\x8f\x63\x77\x59\x74\x8a\xa4\x52\xb1\x69\x62\x5c\x48\x9c\xe9\x67\x3a\x75\xb2\x6d\x1e\x4f\x0d\x7e\x6d\x7b\x48\x7f\xcc\x65\xe6\x59\xa5\x79\xe9\x62\x12\x6e\xde\x77\x0b\x8c\xa7\x65\xbc\x88\x5d\x6a\xdb\x5c\x4a\x80\x74\x90\x84\x8e\xcc\x65\xd7\x57\xf9\x70\x8e\x6f\x06\x5e\x7c\x77\xac\x4f\xf5\x59\x49\x81\xed\x9b\x45\x7f\xfc\x81\x78\x69\xfd\x6c\xca\x69\xc7\x79\xd2\x8b\x1d\x9e\xd9\x81\xd3\x7a\x3c\x79\x68\x6f\x5c\x63\xb2\x8d\xdd\x63\x83\x6e\x9c\x5e\x33\x61\xf8\x76\xbf\x64\x2c\x7d\xb4\x62\x47\x64\x58\x68\x16\x5f\x69\x90\x22\x7a\x1a\x82\xb9\x70\xc8\x9a\x12\x61\x63\x6f\xef\x53\xeb\x9d\x3b\x62\xfe\x60\xa0\x95\x91\x6d\x99\x61\x62\x92\x98\x63\x5c\x97\x07\x89\x72\x68\x3d\x51\xe1\x9b\x54\x60\x8c\x5b\x22\x99\xc4\x71\x26\x8a\x73\x97\x1c\x73\x96\x67\xd4\x60\xa3\x4e\x11\x4e\xf0\x8c\xdb\x8c\xb0\x79\x12\x97\x74\x89\x86\x51\x46\x57\xdc\x99\xd0\x80\xc3\x83\x38\x78\xa7\x86\xcd\x7f\x85\x50\x49\x82\x47\x69\x0b\x7c\x4d\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x5f\x26\x6e\x25\x68\x81\x93\x75\x5d\xfd\x53\x47\x97\x27\x64\x3a\x75\xc7\x6f\xa4\x73\xa9\x77\xe9\x94\x51\x8b\x5c\x80\x8c\x67\x4e\x4e\xad\x58\x2f\x75\x73\x8e\xd2\x6c\xe5\x93\x20\x8f\xf7\x7d\x33\x72\xc2\x82\x17\x74\x22\x82\xc5\x9a\x30\x77\x3a\x5f\x84\x96\x73\x64\xad\x92\x0d\x74\xdc\x60\xc7\x86\xed\x4f\xfa\x52\xa3\x6a\x3a\x77\x20\x53\x20\x61\xb6\x56\x74\x87\x76\x6c\xbf\x50\x5c\x60\x2a\x84\x66\x6b\x96\x6d\xbc\x97\xd3\x96\x8f\x68\x76\x60\xd1\x53\x78\x64\xa4\x51\xa0\x91\x54\x5d\xf4\x62\x9e\x5e\x63", /* 4e80 */ "\x92\x9a\x76\x93\x6c\x5a\x65\x97\x50\xe7\x7c\x82\x5f\x6b\x6c\xe1\x5f\x6c\x5a\xc1\x6f\x2c\x85\x2d\x64\x42\x57\x50\x58\xc7\x8c\xfc\x8a\x5e\x7a\x7f\x68\x9d\x7e\x26\x7a\x40\x73\x44\x8a\xeb\x4f\xd7\x7a\x63\x80\x36\x7d\xef\x80\xc6\x8a\xed\x73\x1f\x8f\xea\x4f\x0e\x75\x8b\x51\x8a\x67\x34\x5f\xd9\x61\xc7\x65\xaf\x9c\xf3\x5e\xca\x92\x62\x68\xdf\x6c\xb8\x80\xf4\x57\xcb\x6c\x99\x96\xa0\x5b\x64\x58\xf1\x68\xc4\x54\x10\x98\x30\x8a\x87\x4e\x5e\x61\x67\x9b\xab\x90\xaa\x55\xb0\x82\xbd\x59\x6a\x66\xf3\x82\x99\x58\x93\x71\x9f\x62\x84\x67\xd1\x90\x63\x5a\xcc\x6c\x57\x7c\xe7\x58\x51\x64\xb2\x58\xca\x83\x0e\x59\x68\x53\x02\x5a\x46\x87\x02\x60\x65\x72\xd9\x89\xa7\x66\x89\x66\xf9\x5d\x6f\x5b\xb0\x96\xbc\x63\x6e\x60\xdc\x79\x48\x51\xdd\x86\x06\x5e\xc9\x75\x54\x59\x6e\x6b\x04\x4f\x43\x7b\x94\x67\xda\x62\xdd\x62\x8a\x97\x1e\x62\xed\x6e\xc5\x50\x8d\x67\xb6\x80\xe4\x9e\xbf\x5e\xb5\x63\x8c\x85\xcd\x98\x67\x52\xc5\x60\x16\x68\xcb\x61\xd0\x57\x51\x8f\x29\x5f\xaa\x81\xa8\x7d\x62\x71\xc8\x54\xc0\x69\xcc\x6b\x3e\x65\xac\x63\xc3\x4f\x46\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x1b\x6b\x86\x88\xf8\x52\x03\x73\x2e\x66\x87\x7d\x17\x57\xf4\x57\x0f\x61\x8e\x97\x0a\x7c\x3f\x8b\x00\x78\x81\x8c\xe0\x54\x8b\x7b\x87\x74\x5b\x7c\x11\x88\x70\x53\x98\x54\x48\x6c\xf3\x6f\x22\x53\xf6\x88\xb4\x53\x01\x7a\x6b\x86\x95\x58\x6b\x5d\x29\x88\xc2\x62\xd2\x4e\x1e\x50\x36\x96\xc0\x73\x63\x8a\x3b\x51\x76\x71\x99\x7f\xe0\x88\x88\x7e\x1e\x4e\x4f\x84\xcb\x6f\x2b\x58\x59\x93\x6c\x53\xe9\x86\x5a\x91\x49\x86\xef\x5e\x06\x55\x07\x90\x2e\x67\x95\x84\x6c\x5b\xa5\x82\xa5\x84\x31\x6d\x8c\x63\xfa\x4e\xa5", /* 4f80 */ "\x51\xc6\x63\x28\x7f\x70\x5b\x5f\x5d\xbd\x99\xc8\x53\xec\x79\x85\x8a\x54\x79\x62\x88\xdf\x5b\x09\x4f\xb5\x4f\x91\x9b\x8e\x51\x92\x96\xf0\x6d\xaf\x62\x2f\x84\x90\x8c\xdc\x50\x75\x5c\xe0\x4e\x14\x4f\x83\x7c\x54\x84\xd1\x77\xb3\x8a\xee\x5c\xe8\x62\xf6\x66\x3b\x8a\x93\x85\x26\x8a\x95\x65\xfa\x67\x14\x53\xd4\x62\xab\x8c\xe6\x88\xf3\x5b\xe7\x86\x8a\x66\x8e\x58\x2a\x61\x70\x69\x6f\x9f\x13\x7a\x92\x78\x93\x6a\x7f\x90\x17\x92\x66\x7d\x10\x7b\xc7\x6e\xf4\x82\x1c\x5c\x3d\x62\xcd\x85\xc1\x6f\x02\x6e\x67\x66\x91\x85\xa6\x63\x7a\x82\x1b\x4f\x8d\x50\x91\x8a\x02\x62\xec\x9b\xc9\x7a\x3d\x7c\x9b\x50\xc5\x90\x19\x70\x8a\x7c\x8b\x64\xec\x66\x5f\x65\x62\x73\x2b\x53\x39\x67\xa0\x55\xa7\x6d\x2a\x7a\x3f\x64\xe6\x79\xa7\x67\xd8\x7b\x26\x96\xbb\x63\x11\x72\xa0\x5c\x6f\x70\x26\x97\xee\x60\xdf\x8a\xfe\x8b\x04\x84\x94\x9b\xd6\x82\xaf\x93\x2c\x66\x06\x96\x40\x5b\xc2\x86\xc7\x79\x49\x80\x17\x69\x19\x70\x92\x96\x3b\x7c\x7e\x59\xd3\x5b\x5c\x7d\x1b\x91\xd8\x6a\x80\x85\xe9\x69\x05\x6c\x93\x50\x2d\x4e\xa6\x7f\xc1\x61\xa4\x8c\xca\x96\x65\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\xd1\x53\xf1\x59\x8a\x8e\xac\x62\xd8\x68\x67\x71\xd5\x7b\x67\x50\x4f\x67\xd0\x82\xd1\x97\x8d\x74\x8b\x80\xba\x73\x36\x51\x4e\x81\x05\x90\xca\x58\x4a\x67\xfe\x6f\xf1\x5f\xfd\x76\xc6\x9a\x0e\x50\x7d\x96\x94\x5e\xf7\x7b\xb8\x90\x4d\x6c\x4e\x85\xfb\x81\x9d\x67\xaf\x56\x4c\x56\x06\x8c\x8c\x56\xda\x73\xed\x8c\xc4\x8f\xc5\x96\xf6\x6c\x50\x89\x44\x8f\x3f\x7d\x5e\x60\xe8\x72\xfc\x7d\x9c\x84\x63\x5c\xfb\x54\x46\x5d\x16\x6c\xa1\x81\xb3\x58\xfa\x5b\xb4\x81\x08\x54\x1f\x8c\xbc\x61\x82\x78\xa9\x6f\xe1\x91\xac", /* 5080 */ "\x76\xf2\x60\x20\x76\xfe\x84\xc9\x7f\x36\x4e\xc7\x75\x5d\x7a\x17\x84\xec\x75\xf4\x4f\x3a\x67\x6d\x74\x60\x62\xf3\x6f\x20\x79\xe4\x87\xf9\x60\x94\x62\x34\x66\xab\x82\x0c\x84\x99\x72\x3a\x5f\xcc\x61\x09\x70\xcf\x72\x61\x7a\x50\x50\x98\x9a\xed\x5d\x69\x60\x1c\x66\x67\x99\xb4\x5e\x7b\x64\x3e\x58\x30\x53\xc9\x7a\x9f\x99\x0c\x9b\x42\x8f\x5f\x7a\xae\x5b\x9b\x68\xa2\x62\x49\x79\x84\x9d\xfa\x54\x51\x93\x2f\x8a\xc4\x5f\x90\x8d\xf3\x5a\x2f\x80\xde\x6d\x29\x7a\x4f\x84\xbc\x9d\x2b\x90\x10\x6d\x38\x91\x6a\x6f\xc1\x99\x05\x6b\xbb\x5e\xb6\x91\xb8\x50\x76\x6f\x0f\x4e\x19\x54\x0f\x96\x75\x6c\x72\x51\xb4\x56\x31\x9f\x20\x66\xa6\x5f\x0a\x75\xab\x51\xf8\x67\x4f\x8d\xf5\x6c\x70\x8a\x6b\x75\x7f\x5c\xac\x68\x41\x8c\xd3\x9b\xdb\x84\x75\x68\x93\x84\x0c\x72\xdb\x75\x77\x85\x68\x78\x3a\x84\x7a\x5f\x10\x83\x1c\x68\x13\x6e\x1a\x9d\xaf\x51\xf9\x79\x80\x4e\x99\x5e\xe3\x90\x8a\x80\xaf\x59\xa8\x77\xdb\x8d\x74\x8a\x1f\x67\x3d\x53\x3f\x8a\x0a\x56\x18\x67\x56\x53\xd9\x4f\x10\x74\x09\x5a\x41\x4f\xf8\x79\xb0\x98\x38\x8e\x2a\x9d\x60\x8f\x44\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xa5\x75\xbe\x90\x6d\x86\x7b\x60\xbc\x51\xb6\x59\x37\x7d\x2f\x91\x6c\x69\xae\x7c\xe0\x79\x2a\x5d\x14\x64\xc1\x58\xec\x58\x9c\x8d\x66\x66\xd9\x61\xf2\x91\x2d\x6e\x58\x94\x35\x96\x5b\x72\x72\x5f\x6a\x5e\x9a\x8f\x1b\x5b\x95\x5c\x39\x90\x13\x83\x4f\x7c\xce\x62\x0a\x90\xed\x69\x1b\x6e\x15\x65\xdb\x66\xfe\x4e\x9f\x55\xaa\x7a\x83\x83\xe9\x8b\x83\x84\x6d\x83\xf0\x7f\x50\x91\x8d\x91\x90\x75\x8e\x95\xa5\x81\xe7\x75\xe2\x61\xa9\x8a\x50\x95\xb2\x53\xa8\x59\xf6\x98\x13\x78\x91\x7c\x17\x6b\x3a\x57\xe0\x62\x0e", /* 5180 */ "\x83\xd6\x8a\xd2\x75\xd4\x92\x7e\x59\xdc\x52\x89\x90\x87\x6f\xfe\x74\x73\x5c\x09\x9d\x6c\x84\xfc\x7c\xdf\x7b\xad\x8a\x6e\x59\x4e\x56\xca\x81\x9a\x79\x47\x66\x36\x53\xe1\x78\x87\x58\xcc\x93\x97\x6e\x13\x52\x56\x82\x8b\x9e\x9f\x95\x83\x65\x8c\x9e\x93\x73\x45\x6e\x26\x9d\x07\x59\x83\x7d\xac\x96\xc1\x61\xbe\x67\x62\x9e\xce\x90\xa8\x91\x87\x9f\x0e\x7c\x38\x51\xf1\x85\x99\x52\x4c\x54\x0e\x79\x01\x65\x5e\x66\x68\x5c\xe1\x75\x66\x76\xc8\x86\x79\x53\x1d\x55\x06\x79\x26\x89\x12\x77\xef\x7c\xc0\x57\x0b\x51\x5c\x7e\x8a\x53\x5c\x8a\x60\x65\xa7\x87\x66\x57\x66\x6a\xe8\x87\xfb\x5e\x16\x7a\xea\x8d\x73\x77\x1e\x73\x7a\x66\xe0\x94\x10\x81\x6b\x7b\x08\x91\xfc\x57\x37\x6f\xe4\x85\x6a\x7e\x55\x99\x57\x87\xba\x69\x4a\x81\x8f\x5e\xff\x89\x1c\x72\xd0\x98\x46\x9e\xdb\x8d\x99\x5d\xd6\x62\xb9\x64\xab\x4f\x76\x61\x3f\x68\xaf\x5f\x14\x80\x0c\x92\xf8\x7b\xc1\x52\xfe\x66\x4f\x91\x77\x51\xf6\x97\xa0\x83\x9e\x64\x7a\x9c\x3a\x68\x05\x7c\x4f\x68\x5f\x9b\x6f\x9f\x4b\x7f\xfb\x93\x48\x4f\xf6\x9e\x92\x91\xb1\x96\xdb\x5b\xe6\x6c\xcc\x7c\xfe\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x53\x68\x22\x66\xb9\x5b\xd4\x98\xf4\x8a\xe6\x81\x54\x78\x27\x74\xbd\x6e\xd3\x92\x88\x5a\x20\x5b\x8b\x86\xf8\x76\x0d\x86\x5c\x66\x41\x91\xc9\x55\x89\x7a\x4e\x59\xe5\x60\x42\x93\x2b\x5b\x5a\x84\x9c\x5c\x91\x96\xcd\x62\xd9\x67\x5c\x67\x87\x5e\x7d\x86\x50\x9e\xb9\x5c\xb1\x80\xce\x7a\x00\x8a\xbc\x57\x00\x80\x96\x7d\x72\x92\x11\x80\x98\x90\x7c\x77\x61\x87\x37\x90\x75\x81\x7a\x7c\x3e\x6e\xa2\x96\x5e\x7e\x90\x72\xd7\x58\xfd\x60\xb3\x97\x86\x7e\x88\x58\x7e\x6e\x20\x84\xdc\x69\x61\x77\xad\x51\x97\x65\x2a", /* 5280 */ "\x67\x77\x5d\xcd\x61\x01\x93\x2e\x59\x54\x63\x67\x79\x8d\x7a\xff\x80\xd6\x58\xb3\x61\x68\x6a\xc3\x74\x83\x9b\x92\x66\x0a\x64\x2d\x51\x18\x67\x63\x80\x9b\x9c\x10\x4f\xc9\x69\x53\x7a\x1c\x52\xff\x60\x55\x76\x8e\x81\x7f\x56\x42\x5f\x6d\x71\x94\x70\xbb\x74\x36\x80\x00\x88\x1f\x55\xda\x74\x35\x76\x90\x96\xeb\x66\xdd\x75\x1c\x63\x3d\x6e\xc9\x7c\x64\x7c\xa5\x6d\x35\x93\x5c\x70\x27\x5e\x25\x70\x1d\x54\xbd\x61\x1a\x69\x73\x6c\x6a\x55\x9a\x6d\x19\x96\xcc\x5b\xe1\x59\xfb\x69\x7c\x91\x4c\x77\x09\x85\x00\x7a\x46\x78\x72\x92\xe4\x8c\xed\x7c\xfa\x9d\x1b\x81\x4e\x9a\xc4\x68\xa0\x6d\xcb\x59\x18\x84\x0a\x56\x29\x9b\x41\x68\x97\x70\xb3\x97\x71\x94\x19\x67\xa2\x68\x02\x78\x95\x68\xa7\x50\xd6\x80\xb1\x5e\xf8\x82\xd4\x79\x7a\x67\xca\x7e\x61\x69\xcd\x51\xc4\x72\x3d\x68\x29\x99\xb3\x5f\x3c\x8f\x61\x68\x2b\x61\x55\x65\x91\x8f\xb1\x7e\x1b\x97\x98\x99\x52\x88\x77\x5b\x2c\x66\x31\x4f\xe0\x69\x39\x6a\xfb\x5b\xb5\x7a\xc8\x50\x26\x59\x44\x90\x59\x7b\x25\x7b\x4f\x8e\x74\x85\x43\x58\x58\x8b\x0e\x50\x39\x86\x54\x97\xf6\x75\x69\x72\xf8\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf7\x9d\x89\x50\x16\x51\xcc\x62\xcc\x91\xc6\x87\x55\x64\x9a\x88\xf4\x91\xe6\x68\x54\x69\x5a\x6c\x40\x7b\x6c\x67\x41\x77\xd7\x88\x23\x53\x84\x8e\xc0\x72\x80\x8c\x6b\x78\x8d\x71\x65\x82\x07\x68\xb1\x8d\x04\x90\x77\x70\x1e\x8f\xe6\x81\x0a\x81\xbf\x89\xdc\x68\xb3\x6a\xdf\x92\xea\x95\xc7\x79\x57\x7a\x20\x53\xa9\x8e\x5f\x78\x6f\x79\xb9\x5f\x27\x5e\xd6\x68\x53\x93\xac\x91\x9c\x69\x1a\x58\x06\x64\xb0\x7e\x6b\x7d\x8f\x68\xf2\x6e\xa5\x82\xdb\x91\x92\x52\x43\x8e\xb0\x90\x81\x72\x1b\x7d\xcb\x76\x56\x59\xac", /* 5380 */ "\x6f\xe0\x8b\x28\x80\xa2\x55\x44\x60\x70\x5f\x4a\x68\xc8\x63\x3a\x94\x38\x9b\x4f\x81\xe5\x6a\x17\x70\xdd\x69\xa7\x61\x4c\x92\x0e\x93\x10\x9b\xad\x52\xd7\x92\x5e\x92\xf9\x59\x93\x76\x96\x66\xfb\x57\x69\x73\xca\x76\x78\x6a\x1f\x7e\x9c\x98\x11\x8c\xd1\x58\x40\x63\x49\x87\x1c\x62\xd0\x60\xb4\x6b\x89\x86\xee\x57\x64\x58\x1d\x85\x49\x72\x35\x76\x52\x98\x3b\x82\x37\x53\x51\x5c\x24\x59\xbe\x58\x15\x90\x1d\x69\xb4\x83\x4a\x9e\xa9\x97\x6b\x80\x86\x53\xad\x60\x68\x4f\xae\x76\xc3\x6a\x05\x68\x9b\x93\x7e\x99\xd5\x91\xc7\x5c\x16\x58\x5e\x61\xa7\x96\x99\x4f\xdf\x82\x78\x9c\x52\x5f\x45\x61\x08\x7c\x8d\x80\x6f\x5d\xf7\x8d\x6b\x57\xb0\x98\xe2\x57\x03\x79\xbf\x59\x96\x79\x41\x54\x0a\x83\xdf\x9c\x39\x52\xd2\x6b\xd8\x86\xcb\x4e\xc0\x9a\x52\x53\x66\x80\x06\x73\x37\x64\x92\x8f\xed\x5a\xc9\x54\x20\x53\x7f\x4f\xaf\x80\x7e\x54\x3b\x75\x15\x7b\x18\x87\xec\x54\xb3\x70\x4c\x89\x97\x6c\xab\x85\xfa\x71\x30\x69\x6e\x93\x28\x74\x5a\x59\xd1\x6e\x5b\x61\x7e\x53\xe2\x83\x17\x76\xe7\x85\x23\x85\xaf\x69\x25\x5c\x60\x72\x59\x75\xd5\x8b\x90\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x07\x82\xad\x5c\x5b\x7b\xed\x97\x84\x6f\x70\x76\x4c\x88\xb7\x92\xd2\x4f\x36\x5e\xfe\x90\x61\x88\xe1\x84\x71\x71\x1a\x6d\x1b\x80\xb4\x74\xe2\x74\x33\x5a\x7f\x90\x5c\x98\x0c\x53\x19\x90\x6e\x6b\xb4\x85\xaa\x78\x97\x7a\xfa\x6a\xae\x89\x10\x95\x8f\x62\x0c\x4f\x3d\x4f\x7c\x79\xbe\x9d\xd7\x4e\xd4\x57\xa2\x51\xa5\x69\x00\x60\x89\x70\x7c\x7a\xe3\x89\x56\x93\xa7\x9c\x2d\x51\x12\x52\xfa\x7c\xca\x60\xf9\x70\x78\x81\xc6\x55\x9d\x69\x91\x96\xc9\x55\x3e\x80\x5a\x83\x04\x83\x32\x54\xfa\x56\x99\x8f\xbf\x56\x34", /* 5480 */ "\x67\x60\x52\x65\x84\x0e\x5e\x5f\x7b\x65\x90\x35\x83\x87\x6b\x4e\x58\xbe\x63\x09\x72\x7d\x97\xad\x69\xd0\x54\x6a\x98\x4e\x63\x2b\x71\x4e\x85\x57\x7c\xde\x63\x72\x68\xf9\x75\x11\x86\x02\x6e\xba\x5a\x3c\x7a\x84\x85\x1a\x95\xa4\x59\xd0\x60\xda\x51\xea\x5a\x29\x71\x69\x6f\x15\x69\x6b\x64\x14\x76\x26\x4e\x4e\x7d\xbb\x69\x34\x85\x21\x8f\xfa\x93\x54\x9c\x3b\x5f\x17\x5e\xd3\x82\x58\x89\x5f\x82\xe7\x52\xc3\x5c\x51\x83\xab\x78\x26\x79\xe1\x7f\xf0\x62\x6e\x60\xf0\x5c\xa8\x6f\x97\x71\xa8\x99\x09\x51\x32\x5e\x37\x5f\x04\x63\x7b\x67\x53\x68\xd7\x66\x52\x9c\xf6\x88\xb0\x52\xab\x4f\xc4\x4e\x3c\x67\xb3\x7c\x1e\x7f\x4d\x8a\x23\x64\x51\x71\xe6\x65\xa4\x6f\x09\x85\x3d\x50\x72\x7d\xba\x55\x5e\x7b\x04\x72\xfd\x6c\xd3\x84\x22\x62\x1f\x50\xad\x82\x35\x87\x18\x59\x19\x60\x28\x67\x7c\x6f\x23\x75\xb9\x69\x5c\x52\x0e\x80\x18\x8b\x01\x71\xed\x57\x13\x66\x0f\x83\xeb\x71\x64\x7d\x9b\x56\x17\x7d\x7d\x8f\x4d\x93\x18\x85\x69\x5d\x17\x67\x8c\x67\xde\x87\xc7\x79\xae\x58\x35\x84\x04\x90\x41\x7f\xd4\x6f\x51\x8a\x63\x9d\x08\x67\x0f\x93\x9a\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xac\x60\x2f\x64\xe2\x60\x8d\x96\xb7\x63\x57\x84\x61\x91\x4b\x75\xd8\x60\xe7\x99\x13\x9c\x57\x59\x84\x6d\xeb\x5e\x96\x70\x06\x9b\xf0\x58\xbb\x79\xb1\x60\xb6\x63\x3f\x5b\xf5\x98\x12\x55\x8b\x82\xd3\x51\x47\x61\x90\x79\x53\x79\xbd\x6c\x5d\x9e\xba\x9c\x48\x8d\xa8\x5e\xe0\x7d\x43\x5e\xfc\x85\x4e\x8c\xe4\x5a\xe1\x54\xe8\x50\x23\x52\xbe\x7d\xec\x85\x11\x66\x66\x6c\x3e\x72\x4c\x8a\xdc\x9c\x0d\x77\xa5\x8b\x02\x8d\x05\x6f\x11\x98\x34\x97\xfb\x50\xfb\x7f\x75\x5a\x03\x85\x13\x4f\xb6\x63\x4c\x9d\x61\x80\x8b", /* 5580 */ "\x52\x94\x65\xa1\x56\x7a\x59\x57\x8d\x0b\x6a\x35\x6a\xd3\x70\xf9\x86\x5e\x6f\xb1\x51\xe7\x7f\xeb\x59\xea\x5e\x87\x6b\x6a\x75\x4f\x71\x7d\x91\x4e\x7d\x2c\x8c\x79\x60\x62\x62\x1a\x7f\xa8\x5f\x1b\x6c\x8c\x86\xfe\x75\x62\x7b\x86\x9a\xb8\x66\x27\x7a\xba\x84\x4e\x6f\x81\x8b\x2c\x86\xa4\x6f\xeb\x7b\x8b\x7f\x77\x8f\x2f\x8e\x44\x7e\x23\x4e\x4d\x79\xa6\x8a\xfa\x90\x3c\x50\xd1\x9e\xcd\x5e\xdf\x75\x8f\x63\x1f\x53\xdb\x99\x10\x82\x6e\x62\xf7\x68\xfa\x72\x5d\x80\x3d\x58\xd5\x5c\x4d\x86\xd9\x54\x0b\x88\x05\x92\xf2\x92\x37\x5c\x62\x98\x5b\x86\xe4\x96\x6a\x72\x62\x69\x55\x6c\xd7\x69\x94\x9c\x2f\x77\xe7\x68\xc9\x8d\xe8\x6d\x6c\x67\xc1\x9b\xaa\x61\x9a\x63\xa9\x70\x15\x93\x06\x93\x4d\x6a\x61\x62\x58\x52\x83\x75\x25\x56\x87\x6c\x83\x68\x34\x64\x9e\x4e\x9b\x72\x52\x59\xe6\x8f\xc2\x5f\xbd\x6d\xd8\x85\xf7\x8a\x51\x98\x17\x99\xc1\x63\xa0\x7c\x81\x5b\x30\x81\x39\x54\x03\x7e\x82\x81\x06\x53\x2a\x6a\x8e\x7f\x6b\x54\xe9\x56\x78\x8a\xb9\x67\x15\x5b\xd3\x64\x78\x64\xfe\x6b\x1d\x8c\xc2\x51\xcb\x7e\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x0c\x4e\x10\x4e\x15\x4e\x28\x4e\x2a\x4e\x31\x4e\x36\x4e\x3f\x4e\x42\x4e\x56\x4e\x58\x4e\x62\x4e\x82\x4e\x85\x4e\x8a\x4e\x8e\x5f\x0d\x4e\x9e\x4e\xa0\x4e\xa2\x4e\xb0\x4e\xb3\x4e\xb6\x4e\xce\x4e\xcd\x4e\xc4\x4e\xc6\x4e\xc2\x4e\xe1\x4e\xd7\x4e\xde\x4e\xed\x4e\xdf\x4e\xfc\x4f\x09\x4f\x1c\x4f\x00\x4f\x03\x4f\x5a\x4f\x30\x4f\x5d\x4f\x39\x4f\x57\x4f\x47\x4f\x5e\x4f\x56\x4f\x5b\x4f\x92\x4f\x8a\x4f\x88\x4f\x8f\x4f\x9a\x4f\xad\x4f\x98\x4f\x7b\x4f\xab\x4f\x69\x4f\x70\x4f\x94\x4f\x6f\x4f\x86\x4f\x96\x4f\xd4", /* 5680 */ "\x4f\xce\x4f\xd8\x4f\xdb\x4f\xd1\x4f\xda\x4f\xd0\x4f\xcd\x4f\xe4\x4f\xe5\x50\x1a\x50\x40\x50\x28\x50\x14\x50\x2a\x50\x25\x50\x05\x50\x21\x50\x22\x50\x29\x50\x2c\x4f\xff\x4f\xfe\x4f\xef\x50\x11\x50\x1e\x50\x06\x50\x43\x50\x47\x50\x55\x50\x50\x50\x48\x50\x5a\x50\x56\x50\x0f\x50\x46\x50\x70\x50\x42\x50\x6c\x50\x78\x50\x80\x50\x94\x50\x9a\x50\x85\x50\xb4\x67\x03\x50\xb2\x50\xc9\x50\xca\x50\xb3\x50\xc2\x50\xf4\x50\xde\x50\xe5\x50\xd8\x50\xed\x50\xe3\x50\xee\x50\xf9\x50\xf5\x51\x09\x51\x01\x51\x02\x51\x1a\x51\x15\x51\x14\x51\x16\x51\x21\x51\x3a\x51\x37\x51\x3c\x51\x3b\x51\x3f\x51\x40\x51\x4a\x51\x4c\x51\x52\x51\x54\x51\x62\x51\x64\x51\x69\x51\x6a\x51\x6e\x51\x80\x51\x82\x56\xd8\x51\x8c\x51\x89\x51\x8f\x51\x91\x51\x93\x51\x95\x51\x96\x51\x9d\x51\xa4\x51\xa6\x51\xa2\x51\xa9\x51\xaa\x51\xab\x51\xb3\x51\xb1\x51\xb2\x51\xb0\x51\xb5\x51\xbe\x51\xbd\x51\xc5\x51\xc9\x51\xdb\x51\xe0\x51\xe9\x51\xec\x51\xed\x51\xf0\x51\xf5\x51\xfe\x52\x04\x52\x0b\x52\x14\x52\x15\x52\x27\x52\x2a\x52\x2e\x52\x33\x52\x39\x52\x44\x52\x4b\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x4f\x52\x5e\x52\x54\x52\x71\x52\x6a\x52\x73\x52\x74\x52\x69\x52\x7f\x52\x7d\x52\x8d\x52\x88\x52\x92\x52\x91\x52\x9c\x52\xa6\x52\xac\x52\xad\x52\xbc\x52\xb5\x52\xc1\x52\xc0\x52\xcd\x52\xdb\x52\xde\x52\xe3\x52\xe6\x52\xe0\x52\xf3\x52\xf5\x52\xf8\x52\xf9\x53\x00\x53\x06\x53\x07\x53\x08\x75\x38\x53\x0d\x53\x10\x53\x0f\x53\x15\x53\x1a\x53\x24\x53\x23\x53\x2f\x53\x31\x53\x33\x53\x38\x53\x40\x53\x45\x53\x46\x53\x49\x4e\x17\x53\x4d\x51\xd6\x82\x09\x53\x5e\x53\x69\x53\x6e\x53\x72\x53\x77\x53\x7b\x53\x82", /* 5780 */ "\x53\x93\x53\x96\x53\xa0\x53\xa6\x53\xa5\x53\xae\x53\xb0\x53\xb2\x53\xb6\x53\xc3\x7c\x12\x53\xdd\x53\xdf\x66\xfc\xfa\x0e\x71\xee\x53\xee\x53\xe8\x53\xed\x53\xfa\x54\x01\x54\x3d\x54\x40\x54\x2c\x54\x2d\x54\x3c\x54\x2e\x54\x36\x54\x29\x54\x1d\x54\x4e\x54\x8f\x54\x75\x54\x8e\x54\x5f\x54\x71\x54\x77\x54\x70\x54\x92\x54\x7b\x54\x80\x54\x9c\x54\x76\x54\x84\x54\x90\x54\x86\x54\x8a\x54\xc7\x54\xbc\x54\xaf\x54\xa2\x54\xb8\x54\xa5\x54\xac\x54\xc4\x54\xd8\x54\xc8\x54\xa8\x54\xab\x54\xc2\x54\xa4\x54\xa9\x54\xbe\x54\xe5\x54\xff\x54\xe6\x55\x0f\x55\x14\x54\xfd\x54\xee\x54\xed\x54\xe2\x55\x39\x55\x40\x55\x63\x55\x4c\x55\x2e\x55\x5c\x55\x45\x55\x56\x55\x57\x55\x38\x55\x33\x55\x5d\x55\x99\x55\x80\x55\x8a\x55\x9f\x55\x7b\x55\x7e\x55\x98\x55\x9e\x55\xae\x55\x7c\x55\x86\x55\x83\x55\xa9\x55\x87\x55\xa8\x55\xc5\x55\xdf\x55\xc4\x55\xdc\x55\xe4\x55\xd4\x55\xf9\x56\x14\x55\xf7\x56\x16\x55\xfe\x55\xfd\x56\x1b\x56\x4e\x56\x50\x56\x36\x56\x32\x56\x38\x56\x6b\x56\x64\x56\x86\x56\x2f\x56\x6c\x56\x6a\x71\xdf\x56\x94\x56\x8f\x56\x80\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8a\x56\xa0\x56\xa5\x56\xae\x56\xb6\x56\xb4\x56\xc8\x56\xc2\x56\xbc\x56\xc1\x56\xc3\x56\xc0\x56\xce\x56\xd3\x56\xd1\x56\xd7\x56\xee\x56\xf9\x56\xff\x57\x04\x57\x09\x57\x08\x57\x0d\x55\xc7\x57\x18\x57\x16\x57\x1c\x57\x26\x57\x38\x57\x4e\x57\x3b\x57\x59\x57\x40\x57\x4f\x57\x65\x57\x88\x57\x61\x57\x7f\x57\x89\x57\x93\x57\xa0\x57\xa4\x57\xb3\x57\xac\x57\xaa\x57\xc3\x57\xc6\x57\xc8\x57\xc0\x57\xd4\x57\xc7\x57\xd2\x57\xd3\x57\xd6\xfa\x0f\x58\x0a\x57\xe3\x58\x0b\x58\x19\x58\x21\x58\x4b\x58\x62\x6b\xc0", /* 5880 */ "\x58\x3d\x58\x52\xfa\x10\x58\x70\x58\x79\x58\x85\x58\x72\x58\x9f\x58\xab\x58\xb8\x58\x9e\x58\xae\x58\xb2\x58\xb9\x58\xba\x58\xc5\x58\xd3\x58\xd1\x58\xd7\x58\xd9\x58\xd8\x58\xde\x58\xdc\x58\xdf\x58\xe4\x58\xe5\x58\xef\x58\xf7\x58\xf9\x58\xfb\x58\xfc\x59\x02\x59\x0a\x59\x0b\x59\x10\x59\x1b\x68\xa6\x59\x25\x59\x2c\x59\x2d\x59\x32\x59\x38\x59\x3e\x59\x55\x59\x50\x59\x53\x59\x5a\x59\x58\x59\x5b\x59\x5d\x59\x63\x59\x62\x59\x60\x59\x67\x59\x6c\x59\x69\x59\x78\x59\x81\x59\x8d\x59\x9b\x59\x9d\x59\xa3\x59\xa4\x59\xb2\x59\xba\x59\xc6\x59\xe8\x59\xd9\x59\xda\x5a\x25\x5a\x1f\x5a\x11\x5a\x1c\x5a\x1a\x5a\x09\x5a\x40\x5a\x6c\x5a\x49\x5a\x35\x5a\x36\x5a\x62\x5a\x6a\x5a\x9a\x5a\xbc\x5a\xbe\x5a\xd0\x5a\xcb\x5a\xc2\x5a\xbd\x5a\xe3\x5a\xd7\x5a\xe6\x5a\xe9\x5a\xd6\x5a\xfa\x5a\xfb\x5b\x0c\x5b\x0b\x5b\x16\x5b\x32\x5b\x2a\x5b\x36\x5b\x3e\x5b\x43\x5b\x45\x5b\x40\x5b\x51\x5b\x55\x5b\x56\x65\x88\x5b\x5b\x5b\x65\x5b\x69\x5b\x70\x5b\x73\x5b\x75\x5b\x78\x5b\x7a\x5b\x80\x5b\x83\x5b\xa6\x5b\xb8\x5b\xc3\x5b\xc7\x5b\xc0\x5b\xc9\x75\x2f\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd0\x5b\xd8\x5b\xde\x5b\xec\x5b\xe4\x5b\xe2\x5b\xe5\x5b\xeb\x5b\xf0\x5b\xf3\x5b\xf6\x5c\x05\x5c\x07\x5c\x08\x5c\x0d\x5c\x13\x5c\x1e\x5c\x20\x5c\x22\x5c\x28\x5c\x38\x5c\x41\x5c\x46\x5c\x4e\x5c\x53\x5c\x50\x5b\x71\x5c\x6c\x5c\x6e\x5c\x76\x5c\x79\x5c\x8c\x5c\x94\x5c\xbe\x5c\xab\x5c\xbb\x5c\xb6\x5c\xb7\x5c\xa6\x5c\xba\x5c\xc5\x5c\xbc\x5c\xc7\x5c\xd9\x5c\xe9\x5c\xfd\x5c\xfa\x5c\xf5\x5c\xed\x5c\xea\x5d\x0b\x5d\x15\x5d\x1f\x5d\x1b\x5d\x11\x5d\x27\x5d\x22\x5d\x1a\x5d\x19\x5d\x18\x5d\x4c\x5d\x52\x5d\x53", /* 5980 */ "\xfa\x11\x5d\x5c\x5d\x4e\x5d\x4b\x5d\x42\x5d\x6c\x5d\x73\x5d\x6d\x5d\x76\x5d\x87\x5d\x84\x5d\x82\x5d\x8c\x5d\xa2\x5d\x9d\x5d\x90\x5d\xac\x5d\xae\x5d\xb7\x5d\xb8\x5d\xbc\x5d\xb9\x5d\xc9\x5d\xd0\x5d\xd3\x5d\xd2\x5d\xdb\x5d\xeb\x5d\xf5\x5e\x0b\x5e\x1a\x5e\x19\x5e\x11\x5e\x1b\x5e\x36\x5e\x44\x5e\x43\x5e\x40\x5e\x47\x5e\x4e\x5e\x57\x5e\x54\x5e\x62\x5e\x64\x5e\x75\x5e\x76\x5e\x7a\x5e\x7f\x5e\xa0\x5e\xc1\x5e\xc2\x5e\xc8\x5e\xd0\x5e\xcf\x5e\xdd\x5e\xda\x5e\xdb\x5e\xe2\x5e\xe1\x5e\xe8\x5e\xe9\x5e\xec\x5e\xf0\x5e\xf1\x5e\xf3\x5e\xf4\x5f\x03\x5f\x09\x5f\x0b\x5f\x11\x5f\x16\x5f\x21\x5f\x29\x5f\x2d\x5f\x2f\x5f\x34\x5f\x38\x5f\x41\x5f\x48\x5f\x4c\x5f\x4e\x5f\x51\x5f\x56\x5f\x57\x5f\x59\x5f\x5c\x5f\x5d\x5f\x61\x5f\x67\x5f\x73\x5f\x77\x5f\x83\x5f\x82\x5f\x7f\x5f\x8a\x5f\x88\x5f\x87\x5f\x91\x5f\x99\x5f\x9e\x5f\x98\x5f\xa0\x5f\xa8\x5f\xad\x5f\xb7\x5f\xbc\x5f\xd6\x5f\xfb\x5f\xe4\x5f\xf8\x5f\xf1\x5f\xf0\x5f\xdd\x5f\xde\x5f\xff\x60\x21\x60\x19\x60\x10\x60\x29\x60\x0e\x60\x31\x60\x1b\x60\x15\x60\x2b\x60\x26\x60\x0f\x60\x3a\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x5a\x60\x41\x60\x60\x60\x5d\x60\x6a\x60\x77\x60\x5f\x60\x4a\x60\x46\x60\x4d\x60\x63\x60\x43\x60\x64\x60\x6c\x60\x6b\x60\x59\x60\x85\x60\x81\x60\x83\x60\x9a\x60\x84\x60\x9b\x60\x8a\x60\x96\x60\x97\x60\x92\x60\xa7\x60\x8b\x60\xe1\x60\xb8\x60\xde\x60\xe0\x60\xd3\x60\xbd\x60\xc6\x60\xb5\x60\xd5\x60\xd8\x61\x20\x60\xf2\x61\x15\x61\x06\x60\xf6\x60\xf7\x61\x00\x60\xf4\x60\xfa\x61\x03\x61\x21\x60\xfb\x60\xf1\x61\x0d\x61\x0e\x61\x11\x61\x47\x61\x4d\x61\x37\x61\x28\x61\x27\x61\x3e\x61\x4a\x61\x30\x61\x3c", /* 5a80 */ "\x61\x2c\x61\x34\x61\x65\x61\x5d\x61\x3d\x61\x42\x61\x44\x61\x73\x61\x87\x61\x77\x61\x58\x61\x59\x61\x5a\x61\x6b\x61\x74\x61\x6f\x61\x71\x61\x5f\x61\x53\x61\x75\x61\x98\x61\x99\x61\x96\x61\xac\x61\x94\x61\x8a\x61\x91\x61\xab\x61\xae\x61\xcc\x61\xca\x61\xc9\x61\xc8\x61\xc3\x61\xc6\x61\xba\x61\xcb\x7f\x79\x61\xcd\x61\xe6\x61\xe3\x61\xf4\x61\xf7\x61\xf6\x61\xfd\x61\xfa\x61\xff\x61\xfc\x61\xfe\x62\x00\x62\x08\x62\x09\x62\x0d\x62\x13\x62\x14\x62\x1b\x62\x1e\x62\x21\x62\x2a\x62\x2e\x62\x30\x62\x32\x62\x33\x62\x41\x62\x4e\x62\x5e\x62\x63\x62\x5b\x62\x60\x62\x68\x62\x7c\x62\x82\x62\x89\x62\x92\x62\x7e\x62\x93\x62\x96\x62\x83\x62\x94\x62\xd7\x62\xd1\x62\xbb\x62\xcf\x62\xac\x62\xc6\x62\xc8\x62\xdc\x62\xd4\x62\xca\x62\xc2\x62\xa6\x62\xc7\x62\x9b\x62\xc9\x63\x0c\x62\xee\x62\xf1\x63\x27\x63\x02\x63\x08\x62\xef\x62\xf5\x62\xff\x63\x50\x63\x4d\x63\x3e\x63\x4f\x63\x96\x63\x8e\x63\x80\x63\xab\x63\x76\x63\xa3\x63\x8f\x63\x89\x63\x9f\x63\x6b\x63\x69\x63\xb5\x63\xbe\x63\xe9\x63\xc0\x63\xc6\x63\xf5\x63\xe3\x63\xc9\x63\xd2\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf6\x63\xc4\x64\x34\x64\x06\x64\x13\x64\x26\x64\x36\x64\x1c\x64\x17\x64\x28\x64\x0f\x64\x16\x64\x4e\x64\x67\x64\x6f\x64\x60\x64\x76\x64\xb9\x64\x9d\x64\xce\x64\x95\x64\xbb\x64\x93\x64\xa5\x64\xa9\x64\x88\x64\xbc\x64\xda\x64\xd2\x64\xc5\x64\xc7\x64\xd4\x64\xd8\x64\xc2\x64\xf1\x64\xe7\x64\xe0\x64\xe1\x64\xe3\x64\xef\x64\xf4\x64\xf6\x64\xf2\x64\xfa\x65\x00\x64\xfd\x65\x18\x65\x1c\x65\x1d\x65\x22\x65\x24\x65\x23\x65\x2b\x65\x2c\x65\x34\x65\x35\x65\x37\x65\x36\x65\x38\x75\x4b\x65\x48\x65\x4e\x65\x56", /* 5b80 */ "\x65\x4d\x65\x58\x65\x55\x65\x5d\x65\x72\x65\x78\x65\x82\x65\x83\x8b\x8a\x65\x9b\x65\x9f\x65\xab\x65\xb7\x65\xc3\x65\xc6\x65\xc1\x65\xc4\x65\xcc\x65\xd2\x65\xd9\x65\xe1\x65\xe0\x65\xf1\x66\x00\x66\x15\x66\x02\x67\x72\x66\x03\x65\xfb\x66\x09\x66\x3f\x66\x35\x66\x2e\x66\x1e\x66\x34\x66\x1c\x66\x24\x66\x44\x66\x49\x66\x65\x66\x57\x66\x5e\x66\x64\x66\x59\x66\x62\x66\x5d\xfa\x12\x66\x73\x66\x70\x66\x83\x66\x88\x66\x84\x66\x99\x66\x98\x66\xa0\x66\x9d\x66\xb2\x66\xc4\x66\xc1\x66\xbf\x66\xc9\x66\xbe\x66\xbc\x66\xb8\x66\xd6\x66\xda\x66\xe6\x66\xe9\x66\xf0\x66\xf5\x66\xf7\x66\xfa\x67\x0e\xf9\x29\x67\x16\x67\x1e\x7e\x22\x67\x26\x67\x27\x97\x38\x67\x2e\x67\x3f\x67\x36\x67\x37\x67\x38\x67\x46\x67\x5e\x67\x59\x67\x66\x67\x64\x67\x89\x67\x85\x67\x70\x67\xa9\x67\x6a\x67\x8b\x67\x73\x67\xa6\x67\xa1\x67\xbb\x67\xb7\x67\xef\x67\xb4\x67\xec\x67\xe9\x67\xb8\x67\xe7\x67\xe4\x68\x52\x67\xdd\x67\xe2\x67\xee\x67\xc0\x67\xce\x67\xb9\x68\x01\x67\xc6\x68\x1e\x68\x46\x68\x4d\x68\x40\x68\x44\x68\x32\x68\x4e\x68\x63\x68\x59\x68\x8e\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x77\x68\x7f\x68\x9f\x68\x7e\x68\x8f\x68\xad\x68\x94\x68\x83\x68\xbc\x68\xb9\x68\x74\x68\xb5\x68\xba\x69\x0f\x69\x01\x68\xca\x69\x08\x68\xd8\x69\x26\x68\xe1\x69\x0c\x68\xcd\x68\xd4\x68\xe7\x68\xd5\x69\x12\x68\xef\x69\x04\x68\xe3\x68\xe0\x68\xcf\x68\xc6\x69\x22\x69\x2a\x69\x21\x69\x23\x69\x28\xfa\x13\x69\x79\x69\x77\x69\x36\x69\x78\x69\x54\x69\x6a\x69\x74\x69\x68\x69\x3d\x69\x59\x69\x30\x69\x5e\x69\x5d\x69\x7e\x69\x81\x69\xb2\x69\xbf\xfa\x14\x69\x98\x69\xc1\x69\xd3\x69\xbe\x69\xce\x5b\xe8\x69\xca", /* 5c80 */ "\x69\xb1\x69\xdd\x69\xbb\x69\xc3\x69\xa0\x69\x9c\x69\x95\x69\xde\x6a\x2e\x69\xe8\x6a\x02\x6a\x1b\x69\xff\x69\xf9\x69\xf2\x69\xe7\x69\xe2\x6a\x1e\x69\xed\x6a\x14\x69\xeb\x6a\x0a\x6a\x22\x6a\x12\x6a\x23\x6a\x13\x6a\x30\x6a\x6b\x6a\x44\x6a\x0c\x6a\xa0\x6a\x36\x6a\x78\x6a\x47\x6a\x62\x6a\x59\x6a\x66\x6a\x48\x6a\x46\x6a\x38\x6a\x72\x6a\x73\x6a\x90\x6a\x8d\x6a\x84\x6a\xa2\x6a\xa3\x6a\x7e\x6a\x97\x6a\xac\x6a\xaa\x6a\xbb\x6a\xc2\x6a\xb8\x6a\xb3\x6a\xc1\x6a\xde\x6a\xe2\x6a\xd1\x6a\xda\x6a\xe4\x86\x16\x86\x17\x6a\xea\x6b\x05\x6b\x0a\x6a\xfa\x6b\x12\x6b\x16\x6b\x1f\x6b\x38\x6b\x37\x6b\x39\x76\xdc\x98\xee\x6b\x47\x6b\x43\x6b\x49\x6b\x50\x6b\x59\x6b\x54\x6b\x5b\x6b\x5f\x6b\x61\x6b\x78\x6b\x79\x6b\x7f\x6b\x80\x6b\x84\x6b\x83\x6b\x8d\x6b\x98\x6b\x95\x6b\x9e\x6b\xa4\x6b\xaa\x6b\xab\x6b\xaf\x6b\xb1\x6b\xb2\x6b\xb3\x6b\xb7\x6b\xbc\x6b\xc6\x6b\xcb\x6b\xd3\x6b\xd6\x6b\xdf\x6b\xec\x6b\xeb\x6b\xf3\x6b\xef\x6c\x08\x6c\x13\x6c\x14\x6c\x1b\x6c\x24\x6c\x23\x6c\x3f\x6c\x5e\x6c\x55\x6c\x5c\x6c\x62\x6c\x82\x6c\x8d\x6c\x86\x6c\x6f\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9a\x6c\x81\x6c\x9b\x6c\x7e\x6c\x68\x6c\x73\x6c\x92\x6c\x90\x6c\xc4\x6c\xf1\x6c\xbd\x6c\xc5\x6c\xae\x6c\xda\x6c\xdd\x6c\xb1\x6c\xbe\x6c\xba\x6c\xdb\x6c\xef\x6c\xd9\x6c\xea\x6d\x1f\x6d\x04\x6d\x36\x6d\x2b\x6d\x3d\x6d\x33\x6d\x12\x6d\x0c\x6d\x63\x6d\x87\x6d\x93\x6d\x6f\x6d\x64\x6d\x5a\x6d\x79\x6d\x59\x6d\x8e\x6d\x95\x6d\x9b\x6d\x85\x6d\x96\x6d\xf9\x6e\x0a\x6e\x2e\x6d\xb5\x6d\xe6\x6d\xc7\x6d\xac\x6d\xb8\x6d\xcf\x6d\xc6\x6d\xec\x6d\xde\x6d\xcc\x6d\xe8\x6d\xf8\x6d\xd2\x6d\xc5\x6d\xfa\x6d\xd9\x6d\xf2", /* 5d80 */ "\x6d\xfc\x6d\xe4\x6d\xd5\x6d\xea\x6d\xee\x6e\x2d\x6e\x6e\x6e\x19\x6e\x72\x6e\x5f\x6e\x39\x6e\x3e\x6e\x23\x6e\x6b\x6e\x5c\x6e\x2b\x6e\x76\x6e\x4d\x6e\x1f\x6e\x27\x6e\x43\x6e\x3c\x6e\x3a\x6e\x4e\x6e\x24\x6e\x1d\x6e\x38\x6e\x82\x6e\xaa\x6e\x98\x6e\xb7\x6e\xbd\x6e\xaf\x6e\xc4\x6e\xb2\x6e\xd4\x6e\xd5\x6e\x8f\x6e\xbf\x6e\xc2\x6e\x9f\x6f\x41\x6f\x45\x6e\xec\x6e\xf8\x6e\xfe\x6f\x3f\x6e\xf2\x6f\x31\x6e\xef\x6f\x32\x6e\xcc\x6e\xff\x6f\x3e\x6f\x13\x6e\xf7\x6f\x86\x6f\x7a\x6f\x78\x6f\x80\x6f\x6f\x6f\x5b\x6f\x6d\x6f\x74\x6f\x82\x6f\x88\x6f\x7c\x6f\x58\x6f\xc6\x6f\x8e\x6f\x91\x6f\x66\x6f\xb3\x6f\xa3\x6f\xb5\x6f\xa1\x6f\xb9\x6f\xdb\x6f\xaa\x6f\xc2\x6f\xdf\x6f\xd5\x6f\xec\x6f\xd8\x6f\xd4\x6f\xf5\x6f\xee\x70\x05\x70\x07\x70\x09\x70\x0b\x6f\xfa\x70\x11\x70\x01\x70\x0f\x70\x1b\x70\x1a\x70\x1f\x6f\xf3\x70\x28\x70\x18\x70\x30\x70\x3e\x70\x32\x70\x51\x70\x63\x70\x85\x70\x99\x70\xaf\x70\xab\x70\xac\x70\xb8\x70\xae\x70\xdf\x70\xcb\x70\xd9\x71\x09\x71\x0f\x71\x04\x70\xf1\x70\xfd\x71\x1c\x71\x19\x71\x5c\x71\x46\x71\x47\x71\x66\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x62\x71\x4c\x71\x56\x71\x6c\x71\x88\x71\x8f\x71\x84\x71\x95\xfa\x15\x71\xac\x71\xc1\x71\xb9\x71\xbe\x71\xd2\x71\xe7\x71\xc9\x71\xd4\x71\xd7\x71\xce\x71\xf5\x71\xe0\x71\xec\x71\xfb\x71\xfc\x71\xf9\x71\xfe\x71\xff\x72\x0d\x72\x10\x72\x28\x72\x2d\x72\x2c\x72\x30\x72\x32\x72\x3b\x72\x3c\x72\x3f\x72\x40\x72\x46\x72\x4b\x72\x58\x72\x74\x72\x7e\x72\x81\x72\x87\x72\x82\x72\x92\x72\x96\x72\xa2\x72\xa7\x72\xb1\x72\xb2\x72\xbe\x72\xc3\x72\xc6\x72\xc4\x72\xb9\x72\xce\x72\xd2\x72\xe2\x72\xe0\x72\xe1\x72\xf9", /* 5e80 */ "\x72\xf7\x73\x17\x73\x0a\x73\x1c\x73\x16\x73\x1d\x73\x24\x73\x34\x73\x29\x73\x2f\xfa\x16\x73\x25\x73\x3e\x73\x4f\x73\x4e\x73\x57\x9e\xd8\x73\x6a\x73\x68\x73\x70\x73\x77\x73\x78\x73\x75\x73\x7b\x73\xc8\x73\xbd\x73\xb3\x73\xce\x73\xbb\x73\xc0\x73\xc9\x73\xd6\x73\xe5\x73\xe3\x73\xd2\x73\xee\x73\xf1\x73\xde\x73\xf8\x74\x07\x73\xf5\x74\x05\x74\x26\x74\x2a\x74\x25\x74\x29\x74\x2e\x74\x32\x74\x3a\x74\x55\x74\x3f\x74\x5f\x74\x59\x74\x41\x74\x5c\x74\x69\x74\x70\x74\x63\x74\x6a\x74\x64\x74\x62\x74\x89\x74\x6f\x74\x7e\x74\x9f\x74\x9e\x74\xa2\x74\xa7\x74\xca\x74\xcf\x74\xd4\x74\xe0\x74\xe3\x74\xe7\x74\xe9\x74\xee\x74\xf0\x74\xf2\x74\xf1\x74\xf7\x74\xf8\x75\x01\x75\x04\x75\x03\x75\x05\x75\x0d\x75\x0c\x75\x0e\x75\x13\x75\x1e\x75\x26\x75\x2c\x75\x3c\x75\x44\x75\x4d\x75\x4a\x75\x49\x75\x46\x75\x5b\x75\x5a\x75\x64\x75\x67\x75\x6b\x75\x6f\x75\x74\x75\x6d\x75\x78\x75\x76\x75\x82\x75\x86\x75\x87\x75\x8a\x75\x89\x75\x94\x75\x9a\x75\x9d\x75\xa5\x75\xa3\x75\xc2\x75\xb3\x75\xc3\x75\xb5\x75\xbd\x75\xb8\x75\xbc\x75\xb1\x75\xcd\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xca\x75\xd2\x75\xd9\x75\xe3\x75\xde\x75\xfe\x75\xff\x75\xfc\x76\x01\x75\xf0\x75\xfa\x75\xf2\x75\xf3\x76\x0b\x76\x09\x76\x1f\x76\x27\x76\x20\x76\x21\x76\x22\x76\x24\x76\x34\x76\x30\x76\x3b\x76\x47\x76\x48\x76\x58\x76\x46\x76\x5c\x76\x61\x76\x62\x76\x68\x76\x69\x76\x67\x76\x6a\x76\x6c\x76\x70\x76\x72\x76\x76\x76\x7c\x76\x82\x76\x80\x76\x83\x76\x88\x76\x8b\x76\x99\x76\x9a\x76\x9c\x76\x9e\x76\x9b\x76\xa6\x76\xb0\x76\xb4\x76\xb8\x76\xb9\x76\xba\x76\xc2\xfa\x17\x76\xcd\x76\xd6\x76\xd2\x76\xde\x76\xe1", /* 5f80 */ "\x76\xe5\x76\xea\x86\x2f\x76\xfb\x77\x08\x77\x07\x77\x04\x77\x24\x77\x29\x77\x25\x77\x26\x77\x1b\x77\x37\x77\x38\x77\x46\x77\x47\x77\x5a\x77\x68\x77\x6b\x77\x5b\x77\x65\x77\x7f\x77\x7e\x77\x79\x77\x8e\x77\x8b\x77\x91\x77\xa0\x77\x9e\x77\xb0\x77\xb6\x77\xb9\x77\xbf\x77\xbc\x77\xbd\x77\xbb\x77\xc7\x77\xcd\x77\xda\x77\xdc\x77\xe3\x77\xee\x52\xaf\x77\xfc\x78\x0c\x78\x12\x78\x21\x78\x3f\x78\x20\x78\x45\x78\x4e\x78\x64\x78\x74\x78\x8e\x78\x7a\x78\x86\x78\x9a\x78\x7c\x78\x8c\x78\xa3\x78\xb5\x78\xaa\x78\xaf\x78\xd1\x78\xc6\x78\xcb\x78\xd4\x78\xbe\x78\xbc\x78\xc5\x78\xca\x78\xec\x78\xe7\x78\xda\x78\xfd\x78\xf4\x79\x07\x79\x11\x79\x19\x79\x2c\x79\x2b\x79\x30\xfa\x18\x79\x40\x79\x60\xfa\x19\x79\x5f\x79\x5a\x79\x55\xfa\x1a\x79\x7f\x79\x8a\x79\x94\xfa\x1b\x79\x9d\x79\x9b\x79\xaa\x79\xb3\x79\xba\x79\xc9\x79\xd5\x79\xe7\x79\xec\x79\xe3\x7a\x08\x7a\x0d\x7a\x18\x7a\x19\x7a\x1f\x7a\x31\x7a\x3e\x7a\x37\x7a\x3b\x7a\x43\x7a\x57\x7a\x49\x7a\x62\x7a\x61\x7a\x69\x9f\x9d\x7a\x70\x7a\x79\x7a\x7d\x7a\x88\x7a\x95\x7a\x98\x7a\x96\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x97\x7a\xa9\x7a\xb0\x7a\xb6\x90\x83\x7a\xc3\x7a\xbf\x7a\xc5\x7a\xc4\x7a\xc7\x7a\xca\x7a\xcd\x7a\xcf\x7a\xd2\x7a\xd1\x7a\xd5\x7a\xd3\x7a\xd9\x7a\xda\x7a\xdd\x7a\xe1\x7a\xe2\x7a\xe6\x7a\xe7\xfa\x1c\x7a\xeb\x7a\xed\x7a\xf0\x7a\xf8\x7b\x02\x7b\x0f\x7b\x0b\x7b\x0a\x7b\x06\x7b\x33\x7b\x36\x7b\x19\x7b\x1e\x7b\x35\x7b\x28\x7b\x50\x7b\x4d\x7b\x4c\x7b\x45\x7b\x5d\x7b\x75\x7b\x7a\x7b\x74\x7b\x70\x7b\x71\x7b\x6e\x7b\x9d\x7b\x98\x7b\x9f\x7b\x8d\x7b\x9c\x7b\x9a\x7b\x92\x7b\x8f\x7b\x99\x7b\xcf\x7b\xcb\x7b\xcc", /* 6080 */ "\x7b\xb4\x7b\xc6\x7b\x9e\x7b\xdd\x7b\xe9\x7b\xe6\x7b\xf7\x7b\xe5\x7c\x14\x7c\x00\x7c\x13\x7c\x07\x7b\xf3\x7c\x0d\x7b\xf6\x7c\x23\x7c\x27\x7c\x2a\x7c\x1f\x7c\x37\x7c\x2b\x7c\x3d\x7c\x40\x7c\x4c\x7c\x43\x7c\x56\x7c\x50\x7c\x58\x7c\x5f\x7c\x65\x7c\x6c\x7c\x75\x7c\x83\x7c\x90\x7c\xa4\x7c\xa2\x7c\xab\x7c\xa1\x7c\xad\x7c\xa8\x7c\xb3\x7c\xb2\x7c\xb1\x7c\xae\x7c\xb9\xfa\x1d\x7c\xbd\x7c\xc5\x7c\xc2\x7c\xd2\x7c\xe2\x7c\xd8\x7c\xdc\x7c\xef\x7c\xf2\x7c\xf4\x7c\xf6\x7d\x06\x7d\x02\x7d\x1c\x7d\x15\x7d\x0a\x7d\x45\x7d\x4b\x7d\x2e\x7d\x32\x7d\x3f\x7d\x35\x7d\x48\x7d\x46\x7d\x5c\x7d\x73\x7d\x56\x7d\x4e\x7d\x68\x7d\x6e\x7d\x4f\x7d\x63\x7d\x93\x7d\x89\x7d\x5b\x7d\xae\x7d\xa3\x7d\xb5\x7d\xb7\x7d\xc7\x7d\xbd\x7d\xab\x7d\xa2\x7d\xaf\x7d\xa0\x7d\xb8\x7d\x9f\x7d\xb0\x7d\xd5\x7d\xd8\x7d\xdd\x7d\xd6\x7d\xe4\x7d\xde\x7d\xfb\x7e\x0b\x7d\xf2\x7d\xe1\x7d\xdc\x7e\x05\x7e\x0a\x7e\x21\x7e\x12\x7e\x1f\x7e\x09\x7e\x3a\x7e\x46\x7e\x66\x7e\x31\x7e\x3d\x7e\x35\x7e\x3b\x7e\x39\x7e\x43\x7e\x37\x7e\x32\x7e\x5d\x7e\x56\x7e\x5e\x7e\x52\x7e\x59\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x5a\x7e\x67\x7e\x79\x7e\x6a\x7e\x69\x7e\x7c\x7e\x7b\x7e\x7d\x8f\xae\x7e\x7f\x7e\x83\x7e\x89\x7e\x8e\x7e\x8c\x7e\x92\x7e\x93\x7e\x94\x7e\x96\x7e\x9b\x7f\x38\x7f\x3a\x7f\x45\x7f\x47\x7f\x4c\x7f\x4e\x7f\x51\x7f\x55\x7f\x54\x7f\x58\x7f\x5f\x7f\x60\x7f\x68\x7f\x67\x7f\x69\x7f\x78\x7f\x82\x7f\x86\x7f\x83\x7f\x87\x7f\x88\x7f\x8c\x7f\x94\x7f\x9e\x7f\x9d\x7f\x9a\x7f\xa1\x7f\xa3\x7f\xaf\x7f\xae\x7f\xb2\x7f\xb9\x7f\xb6\x7f\xb8\x8b\x71\xfa\x1e\x7f\xc5\x7f\xc6\x7f\xca\x7f\xd5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xf3", /* 6180 */ "\x7f\xf9\x80\x04\x80\x0b\x80\x12\x80\x19\x80\x1c\x80\x21\x80\x28\x80\x3f\x80\x3b\x80\x4a\x80\x46\x80\x52\x80\x58\x80\x5f\x80\x62\x80\x68\x80\x73\x80\x72\x80\x70\x80\x76\x80\x79\x80\x7d\x80\x7f\x80\x84\x80\x85\x80\x93\x80\x9a\x80\xad\x51\x90\x80\xac\x80\xdb\x80\xe5\x80\xd9\x80\xdd\x80\xc4\x80\xda\x81\x09\x80\xef\x80\xf1\x81\x1b\x81\x23\x81\x2f\x81\x4b\x81\x46\x81\x3e\x81\x53\x81\x51\x81\x41\x81\x71\x81\x6e\x81\x65\x81\x5f\x81\x66\x81\x74\x81\x83\x81\x88\x81\x8a\x81\x80\x81\x82\x81\xa0\x81\x95\x81\xa3\x81\x93\x81\xb5\x81\xa4\x81\xa9\x81\xb8\x81\xb0\x81\xc8\x81\xbe\x81\xbd\x81\xc0\x81\xc2\x81\xba\x81\xc9\x81\xcd\x81\xd1\x81\xd8\x81\xd9\x81\xda\x81\xdf\x81\xe0\x81\xfa\x81\xfb\x81\xfe\x82\x01\x82\x02\x82\x05\x82\x0d\x82\x10\x82\x12\x82\x16\x82\x29\x82\x2b\x82\x2e\x82\x38\x82\x33\x82\x40\x82\x59\x82\x5a\x82\x5d\x82\x5f\x82\x64\x82\x62\x82\x68\x82\x6a\x82\x6b\x82\x71\x82\x77\x82\x7e\x82\x8d\x82\x92\x82\xab\x82\x9f\x82\xbb\x82\xac\x82\xe1\x82\xe3\x82\xdf\x83\x01\x82\xd2\x82\xf4\x82\xf3\x83\x03\x82\xfb\x82\xf9\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\xde\x83\x06\x82\xdc\x82\xfa\x83\x09\x82\xd9\x83\x35\x83\x62\x83\x34\x83\x16\x83\x31\x83\x40\x83\x39\x83\x50\x83\x45\x83\x2f\x83\x2b\x83\x18\x83\x9a\x83\xaa\x83\x9f\x83\xa2\x83\x96\x83\x23\x83\x8e\x83\x75\x83\x7f\x83\x8a\x83\x7c\x83\xb5\x83\x73\x83\x93\x83\xa0\x83\x85\x83\x89\x83\xa8\x83\xf4\x84\x13\x83\xc7\x83\xce\x83\xf7\x83\xfd\x84\x03\x83\xd8\x84\x0b\x83\xc1\x84\x07\x83\xe0\x83\xf2\x84\x0d\x84\x20\x83\xf6\x83\xbd\x83\xfb\x84\x2a\x84\x62\x84\x3c\x84\x84\x84\x77\x84\x6b\x84\x79\x84\x48\x84\x6e", /* 6280 */ "\x84\x82\x84\x69\x84\x46\x84\x6f\x84\x38\x84\x35\x84\xca\x84\xb9\x84\xbf\x84\x9f\x84\xb4\x84\xcd\x84\xbb\x84\xda\x84\xd0\x84\xc1\x84\xad\x84\xc6\x84\xd6\x84\xa1\x84\xd9\x84\xff\x84\xf4\x85\x17\x85\x18\x85\x2c\x85\x1f\x85\x15\x85\x14\x85\x06\x85\x53\x85\x5a\x85\x40\x85\x59\x85\x63\x85\x58\x85\x48\x85\x41\x85\x4a\x85\x4b\x85\x6b\x85\x55\x85\x80\x85\xa4\x85\x88\x85\x91\x85\x8a\x85\xa8\x85\x6d\x85\x94\x85\x9b\x85\xae\x85\x87\x85\x9c\x85\x77\x85\x7e\x85\x90\xfa\x1f\x82\x0a\x85\xb0\x85\xc9\x85\xba\x85\xcf\x85\xb9\x85\xd0\x85\xd5\x85\xdd\x85\xe5\x85\xdc\x85\xf9\x86\x0a\x86\x13\x86\x0b\x85\xfe\x86\x22\x86\x1a\x86\x30\x86\x3f\xfa\x20\x86\x4d\x4e\x55\x86\x55\x86\x5f\x86\x67\x86\x71\x86\x93\x86\xa3\x86\xa9\x86\x8b\x86\xaa\x86\x8c\x86\xb6\x86\xaf\x86\xc4\x86\xc6\x86\xb0\x86\xc9\x86\xce\xfa\x21\x86\xab\x86\xd4\x86\xde\x86\xe9\x86\xec\x86\xdf\x86\xdb\x87\x12\x87\x06\x87\x08\x87\x00\x87\x03\x86\xfb\x87\x11\x87\x09\x87\x0d\x86\xf9\x87\x0a\x87\x34\x87\x3f\x87\x3b\x87\x25\x87\x29\x87\x1a\x87\x5f\x87\x78\x87\x4c\x87\x4e\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x74\x87\x57\x87\x68\x87\x82\x87\x6a\x87\x60\x87\x6e\x87\x59\x87\x53\x87\x63\x87\x7f\x87\xa2\x87\xc6\x87\x9f\x87\xaf\x87\xcb\x87\xbd\x87\xc0\x87\xd0\x96\xd6\x87\xab\x87\xc4\x87\xb3\x87\xd2\x87\xbb\x87\xef\x87\xf2\x87\xe0\x88\x0e\x88\x07\x88\x0f\x88\x16\x88\x0d\x87\xfe\x87\xf6\x87\xf7\x88\x11\x88\x15\x88\x22\x88\x21\x88\x27\x88\x31\x88\x36\x88\x39\x88\x3b\x88\x42\x88\x44\x88\x4d\x88\x52\x88\x59\x88\x5e\x88\x62\x88\x6b\x88\x81\x88\x7e\x88\x75\x88\x7d\x88\x72\x88\x82\x88\x9e\x88\x97\x88\x92\x88\xae", /* 6380 */ "\x88\x99\x88\xa2\x88\x8d\x88\xa4\x88\xbf\x88\xb5\x88\xb1\x88\xc3\x88\xc4\x88\xd4\x88\xd8\x88\xd9\x88\xdd\x88\xf9\x89\x02\x88\xfc\x88\xf5\x88\xe8\x88\xf2\x89\x04\x89\x0c\x89\x2a\x89\x1d\x89\x0a\x89\x13\x89\x1e\x89\x25\x89\x2b\x89\x41\x89\x3b\x89\x36\x89\x43\x89\x38\x89\x4d\x89\x4c\x89\x60\x89\x5e\x89\x66\x89\x6a\x89\x64\x89\x6d\x89\x6f\x89\x74\x89\x77\x89\x7e\x89\x83\x89\x88\x89\x8a\x89\x93\x89\x98\x89\xa1\x89\xa9\x89\xa6\x89\xac\x89\xaf\x89\xb2\x89\xba\x89\xbf\x89\xbd\x89\xc0\x89\xda\x89\xdd\x89\xe7\x89\xf4\x89\xf8\x8a\x03\x8a\x16\x8a\x10\x8a\x0c\x8a\x12\x8a\x1b\x8a\x1d\x8a\x25\x8a\x36\x8a\x41\x8a\x37\x8a\x5b\x8a\x52\x8a\x46\x8a\x48\x8a\x7c\x8a\x6d\x8a\x6c\x8a\x62\x8a\x79\x8a\x85\x8a\x82\x8a\x84\x8a\xa8\x8a\xa1\x8a\x91\x8a\xa5\x8a\xa6\x8a\x9a\x8a\xa3\x8a\xa7\x8a\xcc\x8a\xbe\x8a\xcd\x8a\xc2\x8a\xda\x8a\xf3\x8a\xe7\x8a\xe4\x8a\xf1\x8b\x14\x8a\xe0\x8a\xe2\x8a\xe1\x8a\xdf\xfa\x22\x8a\xf6\x8a\xf7\x8a\xde\x8a\xdb\x8b\x0c\x8b\x07\x8b\x1a\x8b\x16\x8b\x10\x8b\x17\x8b\x20\x8b\x33\x8b\x41\x97\xab\x8b\x26\x8b\x2b\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x3e\x8b\x4c\x8b\x4f\x8b\x4e\x8b\x53\x8b\x49\x8b\x56\x8b\x5b\x8b\x5a\x8b\x74\x8b\x6b\x8b\x5f\x8b\x6c\x8b\x6f\x8b\x7d\x8b\x7f\x8b\x80\x8b\x8c\x8b\x8e\x8b\x99\x8b\x92\x8b\x93\x8b\x96\x8b\x9a\x8c\x3a\x8c\x41\x8c\x3f\x8c\x48\x8c\x4c\x8c\x4e\x8c\x50\x8c\x55\x8c\x62\x8c\x6c\x8c\x78\x8c\x7a\x8c\x7c\x8c\x82\x8c\x89\x8c\x85\x8c\x8a\x8c\x8d\x8c\x8e\x8c\x98\x8c\x94\x62\x1d\x8c\xad\x8c\xaa\x8c\xae\x8c\xbd\x8c\xb2\x8c\xb3\x8c\xc1\x8c\xb6\x8c\xc8\x8c\xce\x8c\xcd\x8c\xe3\x8c\xda\x8c\xf0\x8c\xf4\x8c\xfd\x8c\xfa", /* 6480 */ "\x8c\xfb\x8d\x07\x8d\x0a\x8d\x0f\x8d\x0d\x8d\x12\x8d\x10\x8d\x13\x8d\x14\x8d\x16\x8d\x67\x8d\x6d\x8d\x71\x8d\x76\xfa\x23\x8d\x81\x8d\xc2\x8d\xbe\x8d\xba\x8d\xcf\x8d\xda\x8d\xd6\x8d\xcc\x8d\xdb\x8d\xcb\x8d\xea\x8d\xeb\x8d\xdf\x8d\xe3\x8d\xfc\x8e\x08\x8d\xff\x8e\x09\x8e\x1d\x8e\x1e\x8e\x10\x8e\x1f\x8e\x42\x8e\x35\x8e\x30\x8e\x34\x8e\x4a\x8e\x47\x8e\x49\x8e\x4c\x8e\x50\x8e\x48\x8e\x59\x8e\x64\x8e\x60\x8e\x55\x8e\x63\x8e\x76\x8e\x72\x8e\x87\x8e\x7c\x8e\x81\x8e\x85\x8e\x84\x8e\x8b\x8e\x8a\x8e\x93\x8e\x91\x8e\x94\x8e\x99\x8e\xa1\x8e\xaa\x8e\xb1\x8e\xbe\x8e\xc6\x8e\xc5\x8e\xc8\x8e\xcb\x8e\xcf\x8e\xdb\x8e\xe3\x8e\xfc\x8e\xfb\x8e\xeb\x8e\xfe\x8f\x0a\x8f\x0c\x8f\x05\x8f\x15\x8f\x12\x8f\x13\x8f\x1c\x8f\x19\x8f\x1f\x8f\x26\x8f\x33\x8f\x3b\x8f\x39\x8f\x45\x8f\x42\x8f\x3e\x8f\x49\x8f\x46\x8f\x4c\x8f\x4e\x8f\x57\x8f\x5c\x8f\x62\x8f\x63\x8f\x64\x8f\x9c\x8f\x9f\x8f\xa3\x8f\xa8\x8f\xa7\x8f\xad\x8f\xaf\x8f\xb7\xfa\x24\x8f\xda\x8f\xe5\x8f\xe2\x8f\xef\x8f\xe9\x8f\xf4\x90\x05\x8f\xf9\x8f\xf8\x90\x11\x90\x15\x90\x0e\x90\x21\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x90\x1e\x90\x16\x90\x0b\x90\x27\x90\x36\x90\x39\x90\x4f\xfa\x25\x90\x50\x90\x51\x90\x52\x90\x49\x90\x3e\x90\x56\x90\x58\x90\x5e\x90\x68\x90\x67\x90\x6f\x90\x76\x96\xa8\x90\x72\x90\x82\x90\x7d\x90\x89\x90\x80\x90\x8f\x62\x48\x90\xaf\x90\xb1\x90\xb5\x90\xe2\x90\xe4\x90\xdb\x90\xde\x91\x02\xfa\x26\x91\x15\x91\x12\x91\x19\x91\x32\x91\x27\x91\x30\x91\x4a\x91\x56\x91\x58\x91\x63\x91\x65\x91\x69\x91\x73\x91\x72\x91\x8b\x91\x89\x91\x82\x91\xa2\x91\xab\x91\xaf\x91\xaa\x91\xb5\x91\xb4\x91\xba\x91\xc0", /* 6580 */ "\x91\xc1\x91\xcb\x91\xd0\x91\xda\x91\xdb\x91\xd7\x91\xde\x91\xd6\x91\xdf\x91\xe1\x91\xed\x91\xf5\x91\xee\x91\xe4\x91\xf6\x91\xe5\x92\x06\x92\x1e\x91\xff\x92\x10\x92\x14\x92\x0a\x92\x2c\x92\x15\x92\x29\x92\x57\x92\x45\x92\x3a\x92\x49\x92\x64\x92\x40\x92\x3c\x92\x48\x92\x4e\x92\x50\x92\x59\x92\x3f\x92\x51\x92\x39\x92\x4b\x92\x67\x92\x5a\x92\x9c\x92\xa7\x92\x77\x92\x78\x92\x96\x92\x93\x92\x9b\x92\x95\x92\xe9\x92\xcf\x92\xe7\x92\xd7\x92\xd9\x92\xd0\xfa\x27\x92\xd5\x92\xb9\x92\xb7\x92\xe0\x92\xd3\x93\x3a\x93\x35\x93\x0f\x93\x25\x92\xfa\x93\x21\x93\x44\x92\xfb\xfa\x28\x93\x19\x93\x1e\x92\xff\x93\x22\x93\x1a\x93\x1d\x93\x23\x93\x02\x93\x3b\x93\x70\x93\x60\x93\x7c\x93\x6e\x93\x56\x93\x57\x93\xb9\x93\xb0\x93\xa4\x93\xad\x93\x94\x93\xc8\x93\xd6\x93\xc6\x93\xd7\x93\xe8\x93\xe5\x93\xd8\x93\xc3\x93\xdd\x93\xde\x93\xd0\x93\xe4\x94\x1a\x93\xf8\x94\x14\x94\x13\x94\x21\x94\x03\x94\x07\x94\x36\x94\x2b\x94\x31\x94\x3a\x94\x41\x94\x52\x94\x45\x94\x44\x94\x48\x94\x5b\x94\x5a\x94\x60\x94\x62\x94\x5e\x94\x6a\x94\x75\x94\x70\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x77\x94\x7f\x94\x7d\x94\x7c\x94\x7e\x94\x81\x95\x82\x95\x87\x95\x8a\x95\x92\x95\x94\x95\x96\x95\x98\x95\x99\x95\xa0\x95\xa8\x95\xa7\x95\xad\x95\xbc\x95\xbb\x95\xb9\x95\xbe\x95\xca\x6f\xf6\x95\xc3\x95\xcd\x95\xcc\x95\xd5\x95\xd4\x95\xd6\x95\xdc\x95\xe1\x95\xe5\x95\xe2\x96\x21\x96\x28\x96\x2e\x96\x2f\x96\x42\x96\x4f\x96\x4c\x96\x4b\x96\x5c\x96\x5d\x96\x5f\x96\x66\x96\x77\x96\x72\x96\x6c\x96\x8d\x96\x8b\xf9\xdc\x96\x98\x96\x95\x96\x97\xfa\x29\x96\x9d\x96\xa7\x96\xaa\x96\xb1\x96\xb2\x96\xb0\x96\xaf", /* 6680 */ "\x96\xb4\x96\xb6\x96\xb8\x96\xb9\x96\xce\x96\xcb\x96\xd5\x96\xdc\x96\xd9\x96\xf9\x97\x04\x97\x06\x97\x08\x97\x19\x97\x0d\x97\x13\x97\x0e\x97\x11\x97\x0f\x97\x16\x97\x24\x97\x2a\x97\x30\x97\x33\x97\x39\x97\x3b\x97\x3d\x97\x3e\x97\x46\x97\x44\x97\x43\x97\x48\x97\x42\x97\x49\x97\x4d\x97\x4f\x97\x51\x97\x55\x97\x5c\x97\x60\x97\x64\x97\x66\x97\x68\x97\x6d\x97\x79\x97\x85\x97\x7c\x97\x81\x97\x7a\x97\x8b\x97\x8f\x97\x90\x97\x9c\x97\xa8\x97\xa6\x97\xa3\x97\xb3\x97\xb4\x97\xc3\x97\xc6\x97\xc8\x97\xcb\x97\xdc\x97\xed\x97\xf2\x7a\xdf\x97\xf5\x98\x0f\x98\x1a\x98\x24\x98\x21\x98\x37\x98\x3d\x98\x4f\x98\x4b\x98\x57\x98\x65\x98\x6b\x98\x6f\x98\x70\x98\x71\x98\x74\x98\x73\x98\xaa\x98\xaf\x98\xb1\x98\xb6\x98\xc4\x98\xc3\x98\xc6\x98\xdc\x98\xed\x98\xe9\xfa\x2a\x98\xeb\xfa\x2b\x99\x03\x99\x1d\x99\x12\x99\x14\x99\x18\x99\x27\xfa\x2c\x99\x21\x99\x1e\x99\x24\x99\x20\x99\x2c\x99\x2e\x99\x3d\x99\x3e\x99\x42\x99\x49\x99\x45\x99\x50\x99\x4b\x99\x51\x99\x4c\x99\x55\x99\x97\x99\x98\x99\x9e\x99\xa5\x99\xad\x99\xae\x99\xbc\x99\xdf\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xdb\x99\xdd\x99\xd8\x99\xd1\x99\xed\x99\xee\x99\xe2\x99\xf1\x99\xf2\x99\xfb\x99\xf8\x9a\x01\x9a\x0f\x9a\x05\x9a\x19\x9a\x2b\x9a\x37\x9a\x40\x9a\x45\x9a\x42\x9a\x43\x9a\x3e\x9a\x55\x9a\x4d\x9a\x4e\x9a\x5b\x9a\x57\x9a\x5f\x9a\x62\x9a\x69\x9a\x65\x9a\x64\x9a\x6a\x9a\x6b\x9a\xad\x9a\xb0\x9a\xbc\x9a\xc0\x9a\xcf\x9a\xd3\x9a\xd4\x9a\xd1\x9a\xd9\x9a\xdc\x9a\xde\x9a\xdf\x9a\xe2\x9a\xe3\x9a\xe6\x9a\xef\x9a\xeb\x9a\xee\x9a\xf4\x9a\xf1\x9a\xf7\x9a\xfb\x9b\x06\x9b\x18\x9b\x1a\x9b\x1f\x9b\x22\x9b\x23\x9b\x25", /* 6780 */ "\x9b\x27\x9b\x28\x9b\x29\x9b\x2a\x9b\x2e\x9b\x2f\x9b\x31\x9b\x32\x9b\x3b\x9b\x44\x9b\x43\x9b\x4d\x9b\x4e\x9b\x51\x9b\x58\x9b\x75\x9b\x74\x9b\x72\x9b\x93\x9b\x8f\x9b\x83\x9b\x91\x9b\x96\x9b\x97\x9b\x9f\x9b\xa0\x9b\xa8\x9b\xb1\x9b\xb4\x9b\xc0\x9b\xca\x9b\xbb\x9b\xb9\x9b\xc6\x9b\xcf\x9b\xd1\x9b\xd2\x9b\xe3\x9b\xe2\x9b\xe4\x9b\xd4\x9b\xe1\x9b\xf5\x9b\xf1\x9b\xf2\x9c\x04\x9c\x1b\x9c\x15\x9c\x14\x9c\x00\x9c\x09\x9c\x13\x9c\x0c\x9c\x06\x9c\x08\x9c\x12\x9c\x0a\x9c\x2e\x9c\x25\x9c\x24\x9c\x21\x9c\x30\x9c\x47\x9c\x32\x9c\x46\x9c\x3e\x9c\x5a\x9c\x60\x9c\x67\x9c\x76\x9c\x78\x9c\xeb\x9c\xe7\x9c\xec\x9c\xf0\x9d\x09\x9d\x03\x9d\x06\x9d\x2a\x9d\x26\x9d\x2c\x9d\x23\x9d\x1f\x9d\x15\x9d\x12\x9d\x41\x9d\x3f\x9d\x44\x9d\x3e\x9d\x46\x9d\x48\x9d\x5d\x9d\x5e\x9d\x59\x9d\x51\x9d\x50\x9d\x64\x9d\x72\x9d\x70\x9d\x87\x9d\x6b\x9d\x6f\x9d\x7a\x9d\x9a\x9d\xa4\x9d\xa9\x9d\xab\x9d\xb2\x9d\xc4\x9d\xc1\x9d\xbb\x9d\xb8\x9d\xba\x9d\xc6\x9d\xcf\x9d\xc2\xfa\x2d\x9d\xd9\x9d\xd3\x9d\xf8\x9d\xe6\x9d\xed\x9d\xef\x9d\xfd\x9e\x1a\x9e\x1b\x9e\x19\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x1e\x9e\x75\x9e\x79\x9e\x7d\x9e\x81\x9e\x88\x9e\x8b\x9e\x8c\x9e\x95\x9e\x91\x9e\x9d\x9e\xa5\x9e\xb8\x9e\xaa\x9e\xad\x9e\xbc\x9e\xbe\x97\x61\x9e\xcc\x9e\xcf\x9e\xd0\x9e\xd1\x9e\xd4\x9e\xdc\x9e\xde\x9e\xdd\x9e\xe0\x9e\xe5\x9e\xe8\x9e\xef\x9e\xf4\x9e\xf6\x9e\xf7\x9e\xf9\x9e\xfb\x9e\xfc\x9e\xfd\x9f\x07\x9f\x08\x76\xb7\x9f\x15\x9f\x21\x9f\x2c\x9f\x3e\x9f\x4a\x9f\x4e\x9f\x4f\x9f\x52\x9f\x54\x9f\x63\x9f\x5f\x9f\x60\x9f\x61\x9f\x66\x9f\x67\x9f\x6c\x9f\x6a\x9f\x77\x9f\x72\x9f\x76\x9f\x95\x9f\x9c\x9f\xa0", /* 6880 */ "\x5c\x2d\x69\xd9\x90\x65\x74\x76\x51\xdc\x71\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 6980 */ "\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc", /* 6a80 */ "\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba", /* 6b80 */ "\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78", /* 6c80 */ "\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36", /* 6d80 */ "\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4", /* 6e80 */ "\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2", /* 6f80 */ "\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70", /* 7080 */ "\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e", /* 7180 */ "\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec", /* 7280 */ "\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xe7\xa8\xe7\xa9\xe7\xaa", /* 7380 */ "\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe7\xff\xe8\x00\xe8\x01\xe8\x02\xe8\x03\xe8\x04\xe8\x05\xe8\x06\xe8\x07\xe8\x08\xe8\x09\xe8\x0a\xe8\x0b\xe8\x0c\xe8\x0d\xe8\x0e\xe8\x0f\xe8\x10\xe8\x11\xe8\x12\xe8\x13\xe8\x14\xe8\x15\xe8\x16\xe8\x17\xe8\x18\xe8\x19\xe8\x1a\xe8\x1b\xe8\x1c\xe8\x1d\xe8\x1e\xe8\x1f\xe8\x20\xe8\x21\xe8\x22\xe8\x23\xe8\x24\xe8\x25\xe8\x26\xe8\x27\xe8\x28\xe8\x29\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x2a\xe8\x2b\xe8\x2c\xe8\x2d\xe8\x2e\xe8\x2f\xe8\x30\xe8\x31\xe8\x32\xe8\x33\xe8\x34\xe8\x35\xe8\x36\xe8\x37\xe8\x38\xe8\x39\xe8\x3a\xe8\x3b\xe8\x3c\xe8\x3d\xe8\x3e\xe8\x3f\xe8\x40\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68", /* 7480 */ "\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe8\xff\xe9\x00\xe9\x01\xe9\x02\xe9\x03\xe9\x04\xe9\x05\xe9\x06\xe9\x07\xe9\x08\xe9\x09\xe9\x0a\xe9\x0b\xe9\x0c\xe9\x0d\xe9\x0e\xe9\x0f\xe9\x10\xe9\x11\xe9\x12\xe9\x13\xe9\x14\xe9\x15\xe9\x16\xe9\x17\xe9\x18\xe9\x19\xe9\x1a\xe9\x1b\xe9\x1c\xe9\x1d\xe9\x1e\xe9\x1f\xe9\x20\xe9\x21\xe9\x22\xe9\x23\xe9\x24\xe9\x25\xe9\x26", /* 7580 */ "\xe9\x27\xe9\x28\xe9\x29\xe9\x2a\xe9\x2b\xe9\x2c\xe9\x2d\xe9\x2e\xe9\x2f\xe9\x30\xe9\x31\xe9\x32\xe9\x33\xe9\x34\xe9\x35\xe9\x36\xe9\x37\xe9\x38\xe9\x39\xe9\x3a\xe9\x3b\xe9\x3c\xe9\x3d\xe9\x3e\xe9\x3f\xe9\x40\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xe9\x58\xe9\x59\xe9\x5a\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4", /* 7680 */ "\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xe9\xff\xea\x00\xea\x01\xea\x02\xea\x03\xea\x04\xea\x05\xea\x06\xea\x07\xea\x08\xea\x09\xea\x0a\xea\x0b\xea\x0c\xea\x0d\xea\x0e\xea\x0f\xea\x10\xea\x11\xea\x12\xea\x13\xea\x14\xea\x15\xea\x16\xea\x17\xea\x18\xea\x19\xea\x1a\xea\x1b\xea\x1c\xea\x1d\xea\x1e\xea\x1f\xea\x20\xea\x21\xea\x22\xea\x23\xea\x24\xea\x25\xea\x26\xea\x27\xea\x28\xea\x29\xea\x2a\xea\x2b\xea\x2c\xea\x2d\xea\x2e\xea\x2f\xea\x30\xea\x31\xea\x32\xea\x33\xea\x34\xea\x35\xea\x36\xea\x37\xea\x38\xea\x39\xea\x3a\xea\x3b\xea\x3c\xea\x3d\xea\x3e\xea\x3f\xea\x40\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2", /* 7780 */ "\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xea\xff\xeb\x00\xeb\x01\xeb\x02\xeb\x03\xeb\x04\xeb\x05\xeb\x06\xeb\x07\xeb\x08\xeb\x09\xeb\x0a\xeb\x0b\xeb\x0c\xeb\x0d\xeb\x0e\xeb\x0f\xeb\x10\xeb\x11\xeb\x12\xeb\x13\xeb\x14\xeb\x15\xeb\x16\xeb\x17\xeb\x18\xeb\x19\xeb\x1a\xeb\x1b\xeb\x1c\xeb\x1d\xeb\x1e\xeb\x1f\xeb\x20\xeb\x21\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x22\xeb\x23\xeb\x24\xeb\x25\xeb\x26\xeb\x27\xeb\x28\xeb\x29\xeb\x2a\xeb\x2b\xeb\x2c\xeb\x2d\xeb\x2e\xeb\x2f\xeb\x30\xeb\x31\xeb\x32\xeb\x33\xeb\x34\xeb\x35\xeb\x36\xeb\x37\xeb\x38\xeb\x39\xeb\x3a\xeb\x3b\xeb\x3c\xeb\x3d\xeb\x3e\xeb\x3f\xeb\x40\xeb\x41\xeb\x42\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d\xeb\x5e\xeb\x5f\xeb\x60", /* 7880 */ "\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xeb\xd7\xeb\xd8\xeb\xd9\xeb\xda\xeb\xdb\xeb\xdc\xeb\xdd\xeb\xde\xeb\xdf\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xeb\xf2\xeb\xf3\xeb\xf4\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe\xeb\xff\xec\x00\xec\x01\xec\x02\xec\x03\xec\x04\xec\x05\xec\x06\xec\x07\xec\x08\xec\x09\xec\x0a\xec\x0b\xec\x0c\xec\x0d\xec\x0e\xec\x0f\xec\x10\xec\x11\xec\x12\xec\x13\xec\x14\xec\x15\xec\x16\xec\x17\xec\x18\xec\x19\xec\x1a\xec\x1b\xec\x1c\xec\x1d\xec\x1e", /* 7980 */ "\xec\x1f\xec\x20\xec\x21\xec\x22\xec\x23\xec\x24\xec\x25\xec\x26\xec\x27\xec\x28\xec\x29\xec\x2a\xec\x2b\xec\x2c\xec\x2d\xec\x2e\xec\x2f\xec\x30\xec\x31\xec\x32\xec\x33\xec\x34\xec\x35\xec\x36\xec\x37\xec\x38\xec\x39\xec\x3a\xec\x3b\xec\x3c\xec\x3d\xec\x3e\xec\x3f\xec\x40\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc", /* 7a80 */ "\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xec\xff\xed\x00\xed\x01\xed\x02\xed\x03\xed\x04\xed\x05\xed\x06\xed\x07\xed\x08\xed\x09\xed\x0a\xed\x0b\xed\x0c\xed\x0d\xed\x0e\xed\x0f\xed\x10\xed\x11\xed\x12\xed\x13\xed\x14\xed\x15\xed\x16\xed\x17\xed\x18\xed\x19\xed\x1a\xed\x1b\xed\x1c\xed\x1d\xed\x1e\xed\x1f\xed\x20\xed\x21\xed\x22\xed\x23\xed\x24\xed\x25\xed\x26\xed\x27\xed\x28\xed\x29\xed\x2a\xed\x2b\xed\x2c\xed\x2d\xed\x2e\xed\x2f\xed\x30\xed\x31\xed\x32\xed\x33\xed\x34\xed\x35\xed\x36\xed\x37\xed\x38\xed\x39\xed\x3a\xed\x3b\xed\x3c\xed\x3d\xed\x3e\xed\x3f\xed\x40\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a", /* 7b80 */ "\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xed\xff\xee\x00\xee\x01\xee\x02\xee\x03\xee\x04\xee\x05\xee\x06\xee\x07\xee\x08\xee\x09\xee\x0a\xee\x0b\xee\x0c\xee\x0d\xee\x0e\xee\x0f\xee\x10\xee\x11\xee\x12\xee\x13\xee\x14\xee\x15\xee\x16\xee\x17\xee\x18\xee\x19\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x1a\xee\x1b\xee\x1c\xee\x1d\xee\x1e\xee\x1f\xee\x20\xee\x21\xee\x22\xee\x23\xee\x24\xee\x25\xee\x26\xee\x27\xee\x28\xee\x29\xee\x2a\xee\x2b\xee\x2c\xee\x2d\xee\x2e\xee\x2f\xee\x30\xee\x31\xee\x32\xee\x33\xee\x34\xee\x35\xee\x36\xee\x37\xee\x38\xee\x39\xee\x3a\xee\x3b\xee\x3c\xee\x3d\xee\x3e\xee\x3f\xee\x40\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58", /* 7c80 */ "\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xee\xff\xef\x00\xef\x01\xef\x02\xef\x03\xef\x04\xef\x05\xef\x06\xef\x07\xef\x08\xef\x09\xef\x0a\xef\x0b\xef\x0c\xef\x0d\xef\x0e\xef\x0f\xef\x10\xef\x11\xef\x12\xef\x13\xef\x14\xef\x15\xef\x16", /* 7d80 */ "\xef\x17\xef\x18\xef\x19\xef\x1a\xef\x1b\xef\x1c\xef\x1d\xef\x1e\xef\x1f\xef\x20\xef\x21\xef\x22\xef\x23\xef\x24\xef\x25\xef\x26\xef\x27\xef\x28\xef\x29\xef\x2a\xef\x2b\xef\x2c\xef\x2d\xef\x2e\xef\x2f\xef\x30\xef\x31\xef\x32\xef\x33\xef\x34\xef\x35\xef\x36\xef\x37\xef\x38\xef\x39\xef\x3a\xef\x3b\xef\x3c\xef\x3d\xef\x3e\xef\x3f\xef\x40\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xef\xd2\xef\xd3\xef\xd4", /* 7e80 */ "\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xef\xff\xf0\x00\xf0\x01\xf0\x02\xf0\x03\xf0\x04\xf0\x05\xf0\x06\xf0\x07\xf0\x08\xf0\x09\xf0\x0a\xf0\x0b\xf0\x0c\xf0\x0d\xf0\x0e\xf0\x0f\xf0\x10\xf0\x11\xf0\x12\xf0\x13\xf0\x14\xf0\x15\xf0\x16\xf0\x17\xf0\x18\xf0\x19\xf0\x1a\xf0\x1b\xf0\x1c\xf0\x1d\xf0\x1e\xf0\x1f\xf0\x20\xf0\x21\xf0\x22\xf0\x23\xf0\x24\xf0\x25\xf0\x26\xf0\x27\xf0\x28\xf0\x29\xf0\x2a\xf0\x2b\xf0\x2c\xf0\x2d\xf0\x2e\xf0\x2f\xf0\x30\xf0\x31\xf0\x32\xf0\x33\xf0\x34\xf0\x35\xf0\x36\xf0\x37\xf0\x38\xf0\x39\xf0\x3a\xf0\x3b\xf0\x3c\xf0\x3d\xf0\x3e\xf0\x3f\xf0\x40\xf0\x41\xf0\x42\xf0\x43\xf0\x44\xf0\x45\xf0\x46\xf0\x47\xf0\x48\xf0\x49\xf0\x4a\xf0\x4b\xf0\x4c\xf0\x4d\xf0\x4e\xf0\x4f\xf0\x50\xf0\x51\xf0\x52\xf0\x53\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x54\xf0\x55\xf0\x56\xf0\x57\xf0\x58\xf0\x59\xf0\x5a\xf0\x5b\xf0\x5c\xf0\x5d\xf0\x5e\xf0\x5f\xf0\x60\xf0\x61\xf0\x62\xf0\x63\xf0\x64\xf0\x65\xf0\x66\xf0\x67\xf0\x68\xf0\x69\xf0\x6a\xf0\x6b\xf0\x6c\xf0\x6d\xf0\x6e\xf0\x6f\xf0\x70\xf0\x71\xf0\x72\xf0\x73\xf0\x74\xf0\x75\xf0\x76\xf0\x77\xf0\x78\xf0\x79\xf0\x7a\xf0\x7b\xf0\x7c\xf0\x7d\xf0\x7e\xf0\x7f\xf0\x80\xf0\x81\xf0\x82\xf0\x83\xf0\x84\xf0\x85\xf0\x86\xf0\x87\xf0\x88\xf0\x89\xf0\x8a\xf0\x8b\xf0\x8c\xf0\x8d\xf0\x8e\xf0\x8f\xf0\x90\xf0\x91\xf0\x92", /* 7f80 */ "\xf0\x93\xf0\x94\xf0\x95\xf0\x96\xf0\x97\xf0\x98\xf0\x99\xf0\x9a\xf0\x9b\xf0\x9c\xf0\x9d\xf0\x9e\xf0\x9f\xf0\xa0\xf0\xa1\xf0\xa2\xf0\xa3\xf0\xa4\xf0\xa5\xf0\xa6\xf0\xa7\xf0\xa8\xf0\xa9\xf0\xaa\xf0\xab\xf0\xac\xf0\xad\xf0\xae\xf0\xaf\xf0\xb0\xf0\xb1\xf0\xb2\xf0\xb3\xf0\xb4\xf0\xb5\xf0\xb6\xf0\xb7\xf0\xb8\xf0\xb9\xf0\xba\xf0\xbb\xf0\xbc\xf0\xbd\xf0\xbe\xf0\xbf\xf0\xc0\xf0\xc1\xf0\xc2\xf0\xc3\xf0\xc4\xf0\xc5\xf0\xc6\xf0\xc7\xf0\xc8\xf0\xc9\xf0\xca\xf0\xcb\xf0\xcc\xf0\xcd\xf0\xce\xf0\xcf\xf0\xd0\xf0\xd1\xf0\xd2\xf0\xd3\xf0\xd4\xf0\xd5\xf0\xd6\xf0\xd7\xf0\xd8\xf0\xd9\xf0\xda\xf0\xdb\xf0\xdc\xf0\xdd\xf0\xde\xf0\xdf\xf0\xe0\xf0\xe1\xf0\xe2\xf0\xe3\xf0\xe4\xf0\xe5\xf0\xe6\xf0\xe7\xf0\xe8\xf0\xe9\xf0\xea\xf0\xeb\xf0\xec\xf0\xed\xf0\xee\xf0\xef\xf0\xf0\xf0\xf1\xf0\xf2\xf0\xf3\xf0\xf4\xf0\xf5\xf0\xf6\xf0\xf7\xf0\xf8\xf0\xf9\xf0\xfa\xf0\xfb\xf0\xfc\xf0\xfd\xf0\xfe\xf0\xff\xf1\x00\xf1\x01\xf1\x02\xf1\x03\xf1\x04\xf1\x05\xf1\x06\xf1\x07\xf1\x08\xf1\x09\xf1\x0a\xf1\x0b\xf1\x0c\xf1\x0d\xf1\x0e\xf1\x0f\xf1\x10\xf1\x11\x00\x00", /* 8000 */ NULL, /* 8080 */ NULL, /* 8100 */ NULL, /* 8180 */ NULL, /* 8200 */ NULL, /* 8280 */ NULL, /* 8300 */ NULL, /* 8380 */ NULL, /* 8400 */ NULL, /* 8480 */ NULL, /* 8500 */ NULL, /* 8580 */ NULL, /* 8600 */ NULL, /* 8680 */ NULL, /* 8700 */ NULL, /* 8780 */ NULL, /* 8800 */ NULL, /* 8880 */ NULL, /* 8900 */ NULL, /* 8980 */ NULL, /* 8a00 */ NULL, /* 8a80 */ NULL, /* 8b00 */ NULL, /* 8b80 */ NULL, /* 8c00 */ NULL, /* 8c80 */ NULL, /* 8d00 */ NULL, /* 8d80 */ NULL, /* 8e00 */ NULL, /* 8e80 */ NULL, /* 8f00 */ NULL, /* 8f80 */ NULL, /* 9000 */ NULL, /* 9080 */ NULL, /* 9100 */ NULL, /* 9180 */ NULL, /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ NULL, /* e080 */ NULL, /* e100 */ NULL, /* e180 */ NULL, /* e200 */ NULL, /* e280 */ NULL, /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp935", "0x04380345" /* 1080, 837 */, "gb2312.1980-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-837_P100-2000 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x88\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x44\x46\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x48\x46\x46\x46\x5a\x00\x00\x46\x4c\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x46\x50\x46\x4e\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x46\x54\x46\x52\x00\x00\x46\x59\x00\x00\x00\x00\x00\x00", /* 0100 */ "\x00\x00\x46\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x46\x4b\x00\x00\x46\x4f\x00\x00\x46\x53\x00\x00\x46\x55\x00\x00\x46\x56\x00\x00\x46\x57\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0200 */ NULL, /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x46\x00\x00\x45\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4a\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x8b\x00\x00\x44\xee\x44\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x66\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6b\x00\x00\x00\x00\x45\x77\x44\x4d\x00\x00\x45\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6d\x00\x00\x45\x63\x45\x64\x45\x68\x45\x67\x45\x71\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x45\x62\x45\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x75\x00\x00\x00\x00\x00\x00\x45\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x45\x73\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0", /* 2480 */ "\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2500 */ "\x46\xa4\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x45\x5b\x45\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x59\xba\x4b\xa0\x00\x00\x53\xde\x00\x00\x00\x00\x00\x00\x57\x93\x5b\x69\x54\xfc\x55\x6f\x58\x62\x5c\xa1\x49\xba\x5a\x8c\x00\x00\x5c\xa3\x4a\x94\x00\x00\x5c\x48\x54\x72\x5c\xa6\x55\xbf\x00\x00\x54\x91\x49\x9c\x59\xb4\x4a\xd3\x4b\xaa\x56\x5f\x5c\xa8\x00\x00\x00\x00\x00\x00\x4b\xa9\x00\x00\x51\x5d\x59\x6f\x00\x00\x55\x45\x5c\xac\x00\x00\x4c\xf5\x59\x5e\x62\x7c\x5b\xcf\x00\x00\x00\x00\x4c\x82\x00\x00\x4a\xad\x00\x00\x51\x79\x00\x00\x5c\xbb\x00\x00\x57\x89\x4b\x44\x57\xa9\x5b\xf6\x00\x00\x50\xf5\x4f\xd8\x5c\xae\x00\x00\x00\x00\x00\x00\x52\xca\x00\x00\x4f\xc2\x00\x00\x5c\xb0\x52\x54\x59\xe4\x00\x00\x5b\xad\x57\xd9\x5b\x47\x4d\xf4\x4c\x46\x50\xd5\x00\x00\x53\xb8\x53\x72\x54\x67\x00\x00\x4d\x74\x00\x00\x4a\x6b\x59\xd1\x00\x00\x00\x00\x5c\xbe\x4f\xc4\x53\xf1\x59\xb1\x58\x50\x58\x88\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe8\x00\x00\x00\x00\x5c\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf1\x51\xd1\x00\x00\x54\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x4c\x00\x00", /* 4e80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6b\x00\x00\x5a\x89\x5b\x9a\x00\x00\x55\xc1\x4b\xfd\x5c\xa0\x5a\x7a\x50\x98\x00\x00\x5a\xc5\x4e\x45\x5c\xc0\x57\xe4\x4f\xad\x00\x00\x00\x00\x5c\xa7\x00\x00\x59\x67\x58\xa8\x00\x00\x00\x00\x00\x00\x5c\xbc\x5d\x90\x57\x97\x50\x5a\x00\x00\x4f\x5b\x4d\xa4\x59\xdf\x49\xf9\x4d\xdf\x52\xb5\x00\x00\x58\x8e\x4f\xa8\x57\x44\x51\x61\x00\x00\x00\x00\x00\x00\x54\x77\x5d\x92\x00\x00\x5d\x95\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x5c\xe8\x00\x00\x00\x00\x00\x00\x59\xd9\x55\xb1\x54\xc9\x5c\xeb\x5c\xe9\x5c\xc5\x4f\x97\x53\xcc\x4a\x91\x00\x00\x5c\xea\x4f\x92\x4f\x8a\x00\x00\x54\xd3\x4a\xd2\x00\x00\x00\x00\x51\xd7\x00\x00\x49\xd5\x5c\x70\x55\xca\x56\x9c\x5b\x6c\x4c\xb5\x58\x69\x00\x00\x00\x00\x00\x00\x5d\x7a\x5c\xef\x54\x4a\x00\x00\x5c\xed\x00\x00\x4a\xf9\x51\x8f\x59\xd3\x00\x00\x00\x00\x5c\xec\x00\x00\x59\xc6\x5c\xee\x52\x67\x00\x00\x00\x00\x00\x00\x59\x97\x00\x00\x5b\xd8\x5c\xf1\x00\x00\x5c\xf4\x4e\xfd\x4e\xda\x00\x00\x00\x00\x00\x00\x54\xcd\x00\x00\x4c\x7d\x00\x00\x4c\x62", /* 4f00 */ "\x00\x00\x53\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf7\x59\xc0\x00\x00\x00\x00\x57\xe8\x4e\xbe\x4c\x9d\x4c\x45\x58\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd9\x5a\x65\x4e\x90\x4e\x82\x5c\xf0\x00\x00\x00\x00\x55\x41\x57\xaf\x4a\xaa\x00\x00\x5c\xf2\x00\x00\x55\x6b\x5c\xf5\x51\xd6\x5c\xf6\x00\x00\x00\x00\x57\xb0\x5c\xf8\x00\x00\x00\x00\x00\x00\x49\xad\x4d\x60\x00\x00\x5d\x43\x00\x00\x48\xe8\x00\x00\x51\x87\x00\x00\x55\x8d\x00\x00\x56\x65\x00\x00\x56\x66\x5d\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x89\x00\x00\x00\x00\x4b\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xba\x4b\x6d\x5c\x41\x5c\x95\x5a\x73\x00\x00\x56\xe4\x00\x00\x4d\xcd\x00\x00\x5d\x42\x5d\x7c\x5a\x81\x5c\xfc\x4c\x91\x5c\x98\x5c\xfd\x5c\xf9\x5d\x41\x52\xe2\x00\x00\x00\x00\x5a\x56\x5c\xf3\x5d\x7d\x00\x00\x5c\xfa\x00\x00\x53\x86\x00\x00\x00\x00\x50\xcf\x00\x00\x00\x00\x59\x91\x48\xda\x00\x00\x00\x00\x4e\xd0\x5d\x46\x00\x00\x5d\x45\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x4c\x5d\x4e\x00\x00\x5d\x4b\x55\xb8", /* 4f80 */ "\x00\x00\x00\x00\x00\x00\x5d\x49\x5b\xb5\x00\x00\x00\x00\x00\x00\x4a\x7e\x5d\x48\x00\x00\x50\xfc\x00\x00\x55\xcb\x00\x00\x5d\x4a\x00\x00\x5d\x47\x00\x00\x00\x00\x5d\x50\x00\x00\x00\x00\x4b\xb0\x00\x00\x00\x00\x00\x00\x4d\x49\x00\x00\x59\xbf\x00\x00\x00\x00\x58\x60\x00\x00\x00\x00\x51\xc1\x00\x00\x4f\x64\x5b\x8d\x49\xdf\x54\x68\x50\x8c\x5d\x4d\x00\x00\x5d\x4f\x00\x00\x57\xe9\x4d\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x84\x00\x00\x00\x00\x00\x00\x4a\xd8\x4b\xec\x5d\x54\x00\x00\x00\x00\x00\x00\x00\x00\x50\x41\x00\x00\x00\x00\x00\x00\x5d\x7e\x54\x6e\x50\xfd\x5d\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x77\x4c\x9e\x00\x00\x5d\x55\x00\x00\x5d\x57\x49\x43\x5a\x82\x5d\x59\x00\x00\x58\xc4\x00\x00\x5d\x56\x00\x00\x00\x00\x5d\x51\x00\x00\x5d\x52\x51\x49\x5d\x53\x00\x00\x00\x00\x4e\xf2\x58\xdd\x4c\xa8\x00\x00\x4f\xe2\x00\x00\x5d\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5a\x00\x00\x48\xb2\x00\x00\x00\x00\x00\x00\x5d\x62\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x64\x49\x56\x00\x00\x5d\x5f\x00\x00\x00\x00\x4b\x59\x00\x00\x4f\xf2\x00\x00\x00\x00\x00\x00\x56\xc7\x4d\xf1\x59\xcf\x00\x00\x5d\x63\x00\x00\x00\x00\x4f\x89\x00\x00\x4a\x4b\x00\x00\x00\x00\x00\x00\x5d\x65\x4f\xea\x00\x00\x5d\x66\x5d\x5b\x52\xde\x00\x00\x5d\x5e\x5d\x61\x5d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4e\x00\x00\x5b\xb4\x00\x00\x54\x84\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x68\x00\x00\x00\x00\x00\x00\x4e\xd8\x5d\x6a\x00\x00\x00\x00\x00\x00\x5d\x5c\x00\x00\x5d\x6b\x53\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x97\x00\x00\x57\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x5c\x57\x55\x00\x00\x00\x00\x00\x00\x5d\x6d\x00\x00\x00\x00\x5d\x67\x4a\x45", /* 5080 */ "\x50\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb4\x00\x00\x00\x00\x50\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf5\x00\x00\x5d\x6e\x00\x00\x5d\x6f\x4a\xa1\x5d\x70\x00\x00\x00\x00\x4a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x71\x55\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x72\x00\x00\x00\x00\x00\x00\x51\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x76\x55\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x75\x5d\x74\x5d\x77\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7b\x00\x00\x4f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa6\x00\x00\x00\x00\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x73\x5d\x78\x00\x00\x00\x00\x00\x00\x5d\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf8\x5c\xa2\x5a\xc9\x00\x00\x5a\xa9\x58\xd5\x4a\x85\x5b\x77\x00\x00\x58\x68\x4d\x83\x00\x00\x50\x6b\x00\x00\x52\x83\x00\x00\x00\x00\x00\x00\x4b\xd1\x00\x00\x00\x00\x57\x63\x5d\x8f\x5d\x91\x00\x00\x00\x00\x00\x00\x4b\x53\x00\x00\x4b\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa3\x00\x00\x00\x00\x54\xea\x00\x00\x00\x00\x54\xaa\x00\x00\x00\x00\x48\xca\x4d\x4b\x51\x9a\x5d\x83\x00\x00\x50\xbb\x4d\x52\x00\x00\x4d\x78\x58\xca\x49\x99\x53\xe3\x4f\xde\x4b\x85\x5c\x68\x00\x00\x59\x99\x4e\xe5\x55\xdd\x00\x00\x00\x00", /* 5180 */ "\x4e\xbc\x5d\x87\x5c\xe6\x00\x00\x00\x00\x52\xd9\x00\x00\x00\x00\x4c\xd3\x54\xbc\x00\x00\x00\x00\x49\xe0\x5a\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x52\x50\x00\x00\x00\x00\x52\x82\x5d\xa1\x54\xde\x00\x00\x58\xb3\x00\x00\x4f\xfb\x53\x49\x00\x00\x00\x00\x00\x00\x4d\x7a\x00\x00\x5d\xa2\x00\x00\x5a\xa8\x5d\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9c\x4b\xab\x00\x00\x00\x00\x4c\x8c\x49\x9a\x5d\x9d\x4a\x86\x4f\xf5\x00\x00\x50\x97\x59\xb0\x50\xe3\x00\x00\x00\x00\x00\x00\x4b\xb2\x5d\x9f\x5d\x9e\x00\x00\x00\x00\x4f\xba\x00\x00\x00\x00\x00\x00\x53\xdf\x00\x00\x5c\x5c\x5d\xa0\x00\x00\x51\x59\x00\x00\x4b\x93\x51\x89\x00\x00\x00\x00\x4e\xf4\x00\x00\x4a\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x7d\x00\x00\x52\xfc\x00\x00\x00\x00\x4e\xb7\x4c\x52\x00\x00\x00\x00\x4c\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8d\x00\x00\x53\xbd\x00\x00\x50\x4d\x4e\x6b\x00\x00\x00\x00\x4b\x6a\x00\x00\x5e\x69\x58\xd6\x00\x00\x57\x59\x48\xbb\x4a\x97\x4e\x98\x5e\x6a\x4d\xae\x00\x00\x5a\xe3", /* 5200 */ "\x4b\x56\x4b\x94\x5c\xd5\x54\xcf\x00\x00\x00\x00\x4c\x76\x54\x70\x5c\xd6\x00\x00\x50\x4f\x00\x00\x00\x00\x5e\x5b\x5c\xd7\x00\x00\x00\x00\x58\xcb\x4e\x4e\x00\x00\x00\x00\x00\x00\x66\x5e\x51\x70\x51\x96\x5a\xf1\x4c\xd4\x4a\xb3\x00\x00\x4a\x96\x00\x00\x00\x00\x55\x5e\x00\x00\x00\x00\x00\x00\x53\x70\x00\x00\x00\x00\x00\x00\x53\x79\x50\xfa\x00\x00\x49\x91\x00\x00\x5c\xd8\x4d\x6e\x00\x00\x4b\x5d\x00\x00\x00\x00\x5c\xd9\x00\x00\x00\x00\x5b\xc5\x56\x42\x54\xae\x55\x52\x4a\xcb\x50\x6c\x00\x00\x4d\x95\x00\x00\x5c\xda\x5c\xdb\x4b\xe6\x4e\xc0\x56\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x98\x00\x00\x5c\xdc\x54\x50\x00\x00\x00\x00\x4d\x70\x4f\x43\x00\x00\x00\x00\x56\xdd\x00\x00\x53\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdf\x00\x00\x5c\xdd\x00\x00\x00\x00\x5c\xde\x00\x00\x00\x00\x00\x00\x48\xfd\x00\x00\x4f\xe6\x00\x00\x55\xa2\x4e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb0\x00\x00\x00\x00\x4c\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe1\x00\x00\x4f\x6b", /* 5280 */ "\x00\x00\x5c\xe3\x5c\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe4\x00\x00\x00\x00\x5c\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x46\x00\x00\x54\xaf\x48\xeb\x4d\x46\x4e\xd2\x57\xf0\x5e\x5d\x51\x73\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xae\x5b\xf9\x53\x4c\x4f\x79\x5e\x5e\x5e\x5f\x00\x00\x00\x00\x00\x00\x50\xf7\x4f\xa1\x50\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x60\x55\xc5\x00\x00\x00\x00\x00\x00\x49\xa9\x00\x00\x00\x00\x00\x00\x5a\x62\x00\x00\x52\x84\x00\x00\x59\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x62\x00\x00\x50\xd4\x00\x00\x00\x00\x00\x00\x5e\x63\x00\x00\x50\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x89\x55\x77\x00\x00\x00\x00\x00\x00\x4d\x54\x57\xef", /* 5300 */ "\x5a\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x48\xfb\x4a\xd1\x00\x00\x58\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8a\x00\x00\x5f\xca\x5d\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xaf\x4e\x4f\x49\x51\x00\x00\x4a\x77\x5c\xcd\x00\x00\x00\x00\x5a\xd0\x00\x00\x00\x00\x4f\x53\x50\x90\x00\x00\x58\x5b\x00\x00\x00\x00\x5c\xcf\x00\x00\x00\x00\x00\x00\x4c\x6b\x00\x00\x00\x00\x00\x00\x5c\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa4\x54\x99\x59\xbc\x00\x00\x00\x00\x5c\xd1\x52\xe3\x00\x00\x55\xad\x00\x00\x54\x47\x00\x00\x5c\xa5\x00\x00\x55\x9e\x57\xe6\x4e\x7c\x48\xea\x00\x00\x00\x00\x00\x00\x4e\x4a\x58\xac\x00\x00\x49\x50\x5c\x85\x5c\x5f\x00\x00\x4b\x45\x51\xf3\x52\xce\x00\x00\x00\x00\x49\xa8\x00\x00\x49\xb6\x00\x00\x49\x86\x60\x52\x5b\x5c\x50\x48\x51\xab\x5c\xd4\x51\xb0\x00\x00\x5c\xd3\x57\xd3\x00\x00\x5d\xdf\x00\x00\x57\xbf\x00\x00\x00\x00\x5c\xb3\x52\x4e\x5a\x41\x57\xa2\x00\x00\x4e\xb3\x54\xb3\x51\xd0\x00\x00\x4f\xec\x58\xb5\x00\x00\x5d\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x54\x85", /* 5380 */ "\x00\x00\x00\x00\x4a\x47\x00\x00\x4b\xf1\x56\xfb\x50\xf9\x00\x00\x00\x00\x50\xf6\x00\x00\x59\x59\x59\x82\x5c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xdd\x00\x00\x00\x00\x50\xe4\x00\x00\x4d\xf0\x00\x00\x00\x00\x5c\xc7\x00\x00\x5a\xac\x00\x00\x00\x00\x58\x82\x5c\xc8\x00\x00\x5c\xc9\x58\x63\x00\x00\x4a\x99\x4f\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa4\x00\x00\x00\x00\x00\x00\x58\x78\x00\x00\x54\xfd\x49\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x76\x49\xe5\x4e\xaf\x5a\x71\x56\x4b\x4c\x54\x00\x00\x00\x00\x00\x00\x4c\x42\x00\x00\x00\x00\x55\xe4\x00\x00\x54\xa0\x55\xdb\x49\x85\x58\xef\x00\x00\x53\x71\x00\x00\x00\x00\x00\x00\x5e\x65\x4b\x9f\x00\x00\x00\x00\x50\x7a\x4d\x65\x4f\xe3\x51\x8e\x00\x00\x60\x56\x60\x55\x5b\xba\x4f\x70\x5b\x79\x48\xc7\x4b\xa2\x50\x69\x56\xa7\x60\x53\x55\xb6\x5a\x72\x00\x00\x5c\xce\x59\xb5\x4d\xc4\x56\x5e\x56\xbd\x00\x00\x60\x57\x4b\x91\x60\x54\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x5a\x96\x00\x00\x4a\x74\x4c\xf6\x00\x00\x60\x5a\x00\x00\x4d\xce\x4e\xa9\x4b\x96\x00\x00\x57\x4c\x52\x9c\x4d\xf2\x50\xf3\x57\x62\x58\x93\x60\x58\x58\x65\x00\x00\x51\xbf\x60\x59\x51\xef\x00\x00\x00\x00\x00\x00\x4f\xfc\x00\x00\x51\x7f\x57\x6c\x59\xf6\x4c\x6d\x60\x61\x00\x00\x60\x64\x00\x00\x00\x00\x4c\x92\x48\xc8\x4b\xd5\x4c\x74\x00\x00\x4d\xab\x56\xfc\x50\x74\x56\x51\x53\xf3\x00\x00\x5b\xa7\x60\x65\x00\x00\x57\xe1\x4a\x53\x00\x00\x00\x00\x57\xfb\x4a\xb4\x00\x00\x57\xc6\x4d\xef\x00\x00\x57\xe0\x00\x00\x59\x5d\x00\x00\x00\x00\x60\x60\x00\x00\x00\x00\x4a\xf3\x00\x00\x4a\x6a\x00\x00\x4c\xe5\x60\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc4\x00\x00\x60\x5c\x60\x5d\x60\x5e\x53\x5b\x60\x5f\x60\x62\x5a\xb0\x60\x63\x00\x00\x54\x5a\x57\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd7\x00\x00\x60\x6a\x00\x00\x60\x6f\x00\x00\x5b\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x69\x60\x7a\x57\xb5\x00\x00\x4d\xc6\x60\x6e\x60\x68\x53\x7e\x00\x00\x00\x00\x55\x8c\x4d\xf3\x52\x9d\x00\x00\x00\x00", /* 5480 */ "\x4f\xd6\x00\x00\x60\x66\x00\x00\x60\x6d\x00\x00\x53\x78\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x46\x4d\xcc\x00\x00\x4f\xcb\x5a\x5d\x4c\xbf\x00\x00\x5b\xe3\x00\x00\x60\x67\x4d\x5e\x50\x47\x00\x00\x00\x00\x51\x9d\x60\x6b\x60\x6c\x00\x00\x60\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x7b\x60\x86\x00\x00\x60\x77\x60\x76\x5c\x69\x60\x84\x60\x85\x63\x8c\x59\xa6\x60\x72\x00\x00\x50\x49\x00\x00\x5a\xda\x00\x00\x50\x68\x60\x74\x00\x00\x00\x00\x00\x00\x58\x6c\x00\x00\x00\x00\x60\x7d\x00\x00\x59\x6a\x00\x00\x60\x7e\x48\xa6\x53\xb6\x60\x73\x00\x00\x4d\xe4\x00\x00\x4b\xde\x57\x7b\x4d\x9f\x5a\xd4\x00\x00\x00\x00\x60\x7f\x58\x8d\x48\xa4\x60\x88\x60\x71\x59\x66\x60\x75\x60\x78\x60\x79\x60\x7c\x00\x00\x4e\x49\x00\x00\x60\x81\x60\x82\x00\x00\x60\x83\x60\x87\x60\x89\x5a\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe6\x53\x56\x60\x8b\x55\x7a\x51\x48\x52\xc3\x00\x00\x00\x00\x50\x7e\x58\x99\x00\x00\x00\x00\x00\x00\x5b\x7c\x60\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb7\x00\x00\x4d\xde\x60\x8d\x00\x00\x5e\x61", /* 5500 */ "\x00\x00\x59\x85\x00\x00\x00\x00\x00\x00\x00\x00\x56\x95\x4a\xbc\x00\x00\x48\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x92\x56\xc5\x60\x93\x00\x00\x00\x00\x60\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8c\x00\x00\x60\x90\x60\x91\x4e\x5d\x00\x00\x00\x00\x60\x94\x00\x00\x00\x00\x60\x95\x00\x00\x4e\x43\x00\x00\x55\xda\x57\xa7\x60\xa6\x4a\x4a\x00\x00\x60\xa5\x00\x00\x00\x00\x00\x00\x60\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9f\x00\x00\x57\x79\x60\x9d\x00\x00\x60\x9b\x00\x00\x50\x70\x5c\x64\x00\x00\x55\x6c\x00\x00\x00\x00\x60\x99\x48\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9c\x60\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x68\x00\x00\x00\x00\x53\xa0\x55\x56\x50\xb1\x60\x96\x00\x00\x00\x00\x53\x5e\x00\x00\x5c\xc3\x60\x9a\x52\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xa2\x60\xa3\x60\xa4\x58\xa4\x00\x00\x00\x00\x60\xb3\x56\xe3\x00\x00\x60\xb0\x00\x00", /* 5580 */ "\x50\x46\x60\xae\x57\xb8\x60\xaa\x55\x66\x00\x00\x00\x00\x50\xad\x60\xad\x4d\xec\x4d\xaf\x60\xa8\x00\x00\x00\x00\x00\x00\x60\x97\x00\x00\x60\xb2\x00\x00\x00\x00\x60\xb7\x00\x00\x00\x00\x00\x00\x4a\xac\x60\xb8\x00\x00\x00\x00\x58\x52\x4d\xc7\x00\x00\x60\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xab\x00\x00\x5a\xfa\x00\x00\x60\x98\x00\x00\x53\x88\x00\x00\x60\xac\x00\x00\x5a\x98\x00\x00\x60\xb5\x60\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc3\x58\xe0\x00\x00\x00\x00\x00\x00\x60\xbb\x00\x00\x00\x00\x60\xc8\x60\xc9\x00\x00\x00\x00\x00\x00\x60\xbd\x60\xa9\x55\x44\x60\xc0\x00\x00\x60\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc7\x60\xc2\x00\x00\x60\xb4\x00\x00\x57\xca\x00\x00\x56\x63\x60\xcc\x60\xc5\x60\xc1\x00\x00\x60\xca\x00\x00\x60\xb9\x60\xbe\x60\xbf\x00\x00\x00\x00\x60\xc4\x00\x00\x00\x00\x60\xc6\x60\xc7\x00\x00\x60\xcb\x00\x00\x60\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x74\x60\xd4\x00\x00", /* 5600 */ "\x60\xd5\x60\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcf\x4e\xcd\x00\x00\x00\x00\x60\xd0\x00\x00\x4c\xc1\x5c\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe9\x00\x00\x00\x00\x51\xee\x00\x00\x00\x00\x60\xce\x60\xbc\x00\x00\x00\x00\x00\x00\x60\xd3\x60\xd2\x00\x00\x00\x00\x60\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x60\xdb\x60\xd7\x00\x00\x00\x00\x00\x00\x5b\xf5\x4a\x50\x00\x00\x5c\x8d\x00\x00\x56\x5b\x00\x00\x00\x00\x60\xd9\x00\x00\x57\xfa\x00\x00\x00\x00\x00\x00\x4d\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe0\x60\xdc\x59\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe1\x00\x00\x00\x00\x60\xda\x60\xd8\x60\xde\x00\x00\x00\x00\x60\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xdd\x00\x00\x60\xe3\x00\x00\x00\x00\x00\x00\x53\xf6\x5c\xab\x5a\xea\x60\xe5\x55\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe6\x60\xe7\x00\x00\x00\x00\x00\x00", /* 5680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe8\x60\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xbe\x56\xe6\x00\x00\x00\x00\x00\x00\x60\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xeb\x00\x00\x00\x00\x60\xec\x00\x00\x00\x00\x54\x95\x56\x64\x00\x00\x60\xed\x4e\x78\x5c\xb5\x59\xf1\x60\xee\x57\x65\x00\x00\x4b\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf0\x00\x00\x5a\xaf\x00\x00\x00\x00\x50\xa6\x4a\xd0\x00\x00\x00\x00\x57\xa6\x60\xef\x00\x00\x00\x00\x00\x00\x60\xf1\x4d\x6c\x00\x00\x00\x00\x4d\x9b\x57\x5c\x60\xf2", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x53\xd3\x60\xf3\x00\x00\x5a\xb1\x00\x00\x54\xa5\x60\xf5\x60\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf6\x00\x00\x00\x00\x57\x61\x00\x00\x00\x00\x00\x00\x55\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd9\x5e\x77\x5e\x79\x00\x00\x5e\x78\x4d\x88\x5e\x7c\x5e\x7d\x4b\x78\x00\x00\x00\x00\x5e\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7b\x4a\x41\x5e\x7f\x00\x00\x00\x00\x4e\x99\x00\x00\x5b\xb6\x00\x00\x5e\x81\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf8\x00\x00\x00\x00\x4c\x5b\x00\x00\x5e\x70\x56\xad\x50\x52\x4e\x55\x5c\x99\x50\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8a\x00\x00\x00\x00\x4e\xe0\x56\xb2\x5e\x7e\x48\xd2\x57\xea\x4c\x78\x5c\x59\x53\xc1\x00\x00\x00\x00\x50\xa3\x00\x00\x56\xb8\x00\x00\x5e\x88\x5e\x82\x53\xb9\x5e\x84\x00\x00\x5e\x89\x00\x00\x53\x98\x00\x00\x00\x00\x00\x00\x5e\x8b\x00\x00\x00\x00\x5e\x8a\x50\x60\x00\x00\x00\x00\x00\x00\x5e\x87\x5e\x86\x00\x00\x00\x00\x00\x00", /* 5780 */ "\x00\x00\x00\x00\x4a\xb8\x50\xab\x51\xa1\x5e\x83\x5e\x85\x00\x00\x00\x00\x00\x00\x00\x00\x58\xcc\x5e\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdc\x5e\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x94\x5e\x72\x4d\x58\x5a\xaa\x5e\x8d\x00\x00\x50\x71\x5e\x91\x00\x00\x5e\x71\x00\x00\x4b\x87\x00\x00\x5e\x8c\x50\x86\x00\x00\x00\x00\x00\x00\x5e\x8f\x00\x00\x5e\x92\x00\x00\x00\x00\x00\x00\x5e\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x41\x48\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf0\x00\x00\x00\x00\x4a\x67\x5e\x90\x00\x00\x00\x00\x5e\x99\x00\x00\x53\xd1\x5e\x95\x00\x00\x00\x00\x5e\x96\x5e\x98\x5e\x97\x00\x00\x00\x00\x5e\x9f\x00\x00\x5a\x93\x49\xb9\x00\x00\x00\x00\x00\x00\x5e\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa3\x00\x00\x5e\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9b\x00\x00\x00\x00\x00\x00\x5e\x9d\x53\x81\x4e\x9a\x00\x00\x00\x00\x5e\xa2\x00\x00\x00\x00", /* 5800 */ "\x5e\xa4\x00\x00\x56\xc2\x00\x00\x00\x00\x00\x00\x4b\xd0\x5f\x60\x00\x00\x00\x00\x00\x00\x5e\xa0\x00\x00\x5e\xa1\x00\x00\x00\x00\x00\x00\x54\x55\x00\x00\x00\x00\x00\x00\x4b\xe8\x00\x00\x00\x00\x00\x00\x5e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa5\x00\x00\x5e\xa8\x49\x44\x00\x00\x00\x00\x4b\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x9b\x66\x94\x00\x00\x00\x00\x00\x00\x56\x7c\x00\x00\x00\x00\x56\x9f\x00\x00\x00\x00\x00\x00\x56\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xed\x5e\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x73\x00\x00", /* 5880 */ "\x5e\xae\x5e\xab\x00\x00\x4f\xb2\x00\x00\x55\xfa\x00\x00\x00\x00\x00\x00\x5e\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6a\x52\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x5d\x5e\xad\x00\x00\x00\x00\x00\x00\x5a\xf5\x58\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xaa\x4b\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x74\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7a\x00\x00\x00\x00\x00\x00\x5e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x76\x00\x00\x00\x00\x00\x00\x4d\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbe\x54\xc8\x00\x00\x5c\x53\x00\x00\x55\x9a\x00\x00\x00\x00\x50\x67\x00\x00\x00\x00\x4d\xf7\x00\x00\x00\x00\x59\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x61\xb9\x00\x00\x4a\xa5\x00\x00\x00\x00\x49\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb3\x00\x00\x58\x64\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x88\x58\x46\x57\x83\x00\x00\x00\x00\x5d\x8e\x4b\xdf\x00\x00\x59\xb8\x00\x00\x00\x00\x4d\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb8\x61\xb6\x00\x00\x4a\xf2\x00\x00\x56\xeb\x56\xaa\x4c\x93\x00\x00\x5c\xb1\x59\x8c\x4d\xba\x00\x00\x55\xa6\x00\x00\x00\x00\x57\x57\x00\x00\x00\x00\x59\xc3\x50\x85\x4e\xcf\x4b\xe0\x00\x00\x5f\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc5\x5e\x5c\x00\x00\x59\x79\x00\x00\x00\x00\x53\xe5\x52\xcd\x4c\x8f\x00\x00\x4c\x7c\x00\x00\x00\x00\x50\x9d\x5c\x81\x00\x00\x53\xf4\x00\x00\x00\x00\x49\x5c\x5f\xc7\x4f\x51\x56\xd6\x5f\xc9\x00\x00\x5f\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8d\x00\x00\x55\x7d\x00\x00\x00\x00\x48\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4e\x53\x4b\x00\x00\x52\xcb\x00\x00\x4e\xe8\x56\x9e\x00\x00\x00\x00\x00\x00\x4d\xc2\x00\x00\x00\x00", /* 5980 */ "\x00\x00\x63\x9a\x54\xe6\x63\x9b\x57\x9e\x00\x00\x5c\x51\x4c\xbd\x51\xe7\x00\x00\x54\xd0\x00\x00\x00\x00\x63\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc9\x4e\xca\x00\x00\x00\x00\x59\x9e\x63\xa0\x00\x00\x52\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9f\x63\xa4\x57\x77\x00\x00\x00\x00\x4c\x61\x63\x9d\x63\x9e\x63\xa2\x00\x00\x00\x00\x52\xdc\x63\xa7\x00\x00\x00\x00\x63\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x63\x00\x00\x53\xdd\x00\x00\x00\x00\x63\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb6\x00\x00\x00\x00\x00\x00\x63\xa1\x55\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x84\x4d\x63\x63\xa5\x58\xd4\x57\xae\x00\x00\x00\x00\x63\xa8\x63\xaf\x00\x00\x59\xa5\x00\x00\x4f\x4a\x63\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xae\x00\x00\x50\xd0\x00\x00\x00\x00\x59\xcb\x00\x00\x00\x00\x00\x00\x4e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb0\x00\x00\x59\xf5\x00\x00\x00\x00\x00\x00\x5c\x6b", /* 5a00 */ "\x00\x00\x57\x9f\x00\x00\x57\x7e\x51\xa5\x63\xaa\x63\xab\x4f\x5f\x63\xad\x63\xb2\x00\x00\x00\x00\x63\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb5\x00\x00\x63\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x52\xee\x00\x00\x00\x00\x00\x00\x52\xc7\x00\x00\x00\x00\x4f\xe9\x55\x90\x00\x00\x00\x00\x63\xb6\x00\x00\x4b\xef\x00\x00\x00\x00\x00\x00\x52\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8a\x63\xb3\x00\x00\x63\xb4\x00\x00\x54\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbc\x00\x00\x00\x00\x00\x00\x63\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc4\x00\x00\x00\x00\x57\x92\x63\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb9\x00\x00\x00\x00\x50\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x44\x63\xbe\x55\x95\x63\xc2\x00\x00\x00\x00\x63\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf5", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x64\x63\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc6\x58\x51\x00\x00\x66\x95\x00\x00\x00\x00\x63\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc4\x00\x00\x00\x00\x4e\xdd\x55\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb4\x00\x00\x00\x00\x58\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc7\x00\x00\x63\xc8\x00\x00\x63\xcd\x00\x00\x63\xcf\x00\x00\x00\x00\x00\x00\x63\xd0\x00\x00\x00\x00\x00\x00\x63\xca\x4b\x75\x00\x00\x63\xcb\x00\x00\x00\x00\x63\xce\x00\x00\x00\x00\x52\xda\x00\x00\x63\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd3\x63\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd4\x00\x00\x5d\x99\x00\x00\x00\x00\x63\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x73\x63\xdc\x00\x00\x63\xdd\x50\x77\x5a\xcf\x00\x00\x5c\x76\x4a\xe5\x56\x90\x63\xd9\x5c\xc2\x5c\x6e\x58\xa1\x00\x00\x52\x6f\x00\x00\x00\x00\x63\xde\x4e\xbd\x4d\x62\x63\xda\x59\x47\x00\x00\x00\x00\x4d\xa1\x51\xce\x00\x00\x5c\xaa\x00\x00\x00\x00\x00\x00\x55\xea\x63\x8f\x00\x00\x63\xdb\x00\x00\x4c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe5\x00\x00\x00\x00\x52\xf4\x00\x00\x00\x00", /* 5b80 */ "\x63\x52\x52\xfd\x00\x00\x56\x9d\x63\x53\x5b\x4c\x00\x00\x5a\x8f\x55\xd7\x48\xb1\x00\x00\x56\x6e\x57\x8b\x00\x00\x00\x00\x4d\xe9\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x63\x54\x00\x00\x5c\x7a\x4d\x79\x5b\xe5\x4b\xa7\x57\x91\x59\xca\x49\x46\x55\xb4\x00\x00\x4a\x89\x55\x94\x50\x6d\x58\xfa\x55\xd1\x63\x56\x4e\x62\x00\x00\x00\x00\x00\x00\x58\x7c\x4d\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd6\x00\x00\x00\x00\x4d\xa5\x59\x88\x58\x9d\x4e\xd1\x00\x00\x63\x57\x54\xdc\x00\x00\x00\x00\x00\x00\x50\x8e\x49\x97\x56\x7e\x00\x00\x00\x00\x4e\xc4\x00\x00\x4e\xc3\x59\xf9\x52\x7c\x50\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xba\x00\x00\x00\x00\x00\x00\x52\x62\x00\x00\x4d\xad\x5a\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7e\x52\xae\x49\xeb\x00\x00\x4d\x71\x00\x00\x00\x00\x63\x5b\x51\x68\x00\x00\x00\x00\x5b\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5c\x00\x00\x63\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xe6\x4b\xd3\x56\x62\x59\x50\x4b\x5c\x00\x00\x00\x00\x55\xd8", /* 5c00 */ "\x00\x00\x4c\x83\x00\x00\x00\x00\x55\x85\x00\x00\x4f\x4b\x00\x00\x00\x00\x57\xbd\x5c\x91\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa0\x00\x00\x55\x79\x00\x00\x00\x00\x4b\xfa\x63\xd7\x4e\xe1\x00\x00\x4a\x5e\x00\x00\x55\x70\x00\x00\x63\xd8\x4a\x42\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcb\x00\x00\x5a\x68\x5f\xcc\x00\x00\x59\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcc\x00\x00\x00\x00\x5f\xce\x00\x00\x00\x00\x00\x00\x55\xab\x59\xfb\x4a\x7f\x63\x8b\x52\xe0\x4f\xa0\x57\xb1\x52\xf1\x4f\xd5\x53\xa7\x49\xe2\x00\x00\x00\x00\x4f\xd2\x00\x00\x00\x00\x54\x9d\x56\xea\x4f\x8d\x57\xdc\x00\x00\x00\x00\x55\xb9\x53\xc0\x63\x8d\x58\xbb\x00\x00\x00\x00\x00\x00\x5b\x59\x00\x00\x00\x00\x00\x00\x63\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf3\x00\x00\x57\x60\x51\xc4\x00\x00\x63\x90\x00\x00\x51\xc3\x63\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x99\x57\x6d\x00\x00\x55\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd8\x61\x48\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8d", /* 5c80 */ "\x00\x00\x56\x8b\x53\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x4c\x00\x00\x00\x00\x00\x00\x61\x47\x61\x49\x00\x00\x00\x00\x61\x4a\x61\x4f\x00\x00\x00\x00\x49\xec\x00\x00\x61\x4b\x4c\xd9\x61\x4d\x61\x4e\x61\x50\x4b\x5a\x61\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x53\x61\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x72\x00\x00\x61\x56\x61\x55\x51\x8c\x00\x00\x00\x00\x00\x00\x61\x57\x00\x00\x5a\xbf\x00\x00\x61\x52\x00\x00\x61\x5a\x48\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x61\x54\x00\x00\x50\x9a\x00\x00\x61\x59\x00\x00\x00\x00\x61\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5f\x00\x00\x00\x00\x61\x5d\x61\x5f\x51\xcc\x00\x00\x4b\xea\x00\x00\x5a\x99\x00\x00\x00\x00\x54\x6d\x00\x00\x00\x00\x4c\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xfd\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x61\x60\x61\x61\x00\x00\x00\x00\x61\x67\x4a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xdd\x00\x00\x59\x62\x00\x00\x00\x00\x00\x00\x00\x00\x61\x68\x00\x00\x00\x00\x61\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x65\x00\x00\x61\x63\x61\x62\x00\x00\x49\x60\x00\x00\x00\x00\x00\x00\x5b\x58\x61\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6c\x61\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x9b\x00\x00\x00\x00\x61\x73\x61\x72\x54\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x69\x00\x00\x00\x00\x61\x6e\x00\x00\x61\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x74\x00\x00\x61\x71\x61\x6d\x00\x00\x00\x00\x61\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x61\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d80 */ "\x00\x00\x00\x00\x61\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x77\x00\x00\x00\x00\x00\x00\x61\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7d\x00\x00\x4a\xa7\x5b\xdc\x00\x00\x00\x00\x59\x52\x4a\x52\x00\x00\x00\x00\x4d\x44\x5c\x94\x54\x69\x4f\xdd\x4d\x4e\x00\x00\x57\xd6\x00\x00\x00\x00\x49\xed\x5e\x6f\x00\x00\x4e\xb9\x59\xd0\x56\x68\x48\xcc\x00\x00\x00\x00\x58\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x84\x4f\x8e\x00\x00", /* 5e00 */ "\x00\x00\x49\x72\x55\xcf\x49\xbb\x00\x00\x56\x47\x4c\x4b\x00\x00\x55\xa5\x00\x00\x00\x00\x00\x00\x58\x43\x00\x00\x00\x00\x60\xf7\x5b\x6a\x60\xfa\x00\x00\x00\x00\x60\xf9\x53\x61\x56\xfa\x00\x00\x51\x51\x60\xf8\x5b\xe2\x49\xae\x5b\xc3\x4b\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf7\x5b\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x4f\x48\xee\x00\x00\x00\x00\x60\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x41\x4a\x43\x00\x00\x00\x00\x60\xfc\x60\xfd\x52\x51\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7d\x00\x00\x61\x42\x4c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x43\x52\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x44\x00\x00\x00\x00\x61\x45\x00\x00\x00\x00\x61\x46\x4a\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc8\x53\xbc\x52\xe9\x00\x00\x49\xa1\x00\x00\x58\xd1\x00\x00\x64\x7b\x4e\x63\x5a\x77\x5a\x64\x00\x00\x4d\x84", /* 5e80 */ "\x61\xce\x00\x00\x00\x00\x00\x00\x5c\x4f\x00\x00\x54\x8d\x49\x73\x00\x00\x00\x00\x4a\xb1\x61\xd0\x00\x00\x00\x00\x00\x00\x58\xf1\x51\xad\x61\xcf\x00\x00\x50\x83\x5a\x46\x4b\x77\x61\xd1\x4b\x8b\x00\x00\x52\x8e\x4c\xfc\x00\x00\x4c\xad\x00\x00\x53\x73\x4c\x6f\x61\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd2\x4b\xc7\x5c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd7\x00\x00\x61\xd5\x55\xfb\x50\x55\x5a\x59\x61\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4e\x50\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xda\x61\xd9\x50\xa9\x00\x00\x00\x00\x51\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdc\x00\x00\x61\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x68\x00\x00\x59\x73\x57\x42\x00\x00\x00\x00\x4f\x48\x00\x00\x00\x00\x00\x00\x5f\xc2\x5c\xa4", /* 5f00 */ "\x50\x4a\x5e\x6d\x59\xeb\x53\xf9\x53\x4a\x00\x00\x00\x00\x00\x00\x5f\xc3\x00\x00\x49\x77\x60\x4e\x00\x00\x00\x00\x00\x00\x55\xbc\x00\x00\x60\x51\x00\x00\x4d\x4d\x00\x00\x59\xfc\x00\x00\x4c\xa4\x4d\xea\x00\x00\x00\x00\x4a\x7a\x00\x00\x00\x00\x00\x00\x4b\x7c\x5b\x65\x00\x00\x00\x00\x00\x00\x00\x00\x52\x76\x58\x72\x4e\x41\x00\x00\x63\x94\x63\x93\x00\x00\x00\x00\x63\x95\x00\x00\x57\x85\x00\x00\x54\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4f\x54\x5f\x00\x00\x63\x97\x00\x00\x00\x00\x00\x00\x66\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x87\x00\x00\x4d\x8a\x4b\x51\x00\x00\x51\xbb\x63\x89\x63\x88\x63\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x59\xcc\x00\x00\x00\x00\x00\x00\x61\x8b\x58\xcd\x00\x00\x57\x4e\x00\x00\x59\x86\x00\x00\x00\x00\x49\xc9\x49\x8c\x00\x00\x49\x93\x53\x8e\x00\x00\x00\x00\x5b\x63\x5a\x50\x00\x00\x61\x7c\x00\x00\x00\x00\x00\x00\x61\x7d\x00\x00\x59\xda\x00\x00\x4a\x59\x49\x6b\x00\x00\x00\x00\x00\x00", /* 5f80 */ "\x57\x9a\x5b\x98\x61\x7e\x00\x00\x4f\xb5\x4a\xfc\x00\x00\x61\x7f\x4d\xdb\x61\x81\x4e\x52\x51\xc8\x61\x82\x00\x00\x00\x00\x00\x00\x58\xeb\x00\x00\x57\x5d\x00\x00\x00\x00\x61\x83\x00\x00\x4b\x63\x53\x67\x61\x84\x00\x00\x00\x00\x61\x85\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x86\x00\x00\x59\x4d\x00\x00\x00\x00\x61\x87\x57\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x88\x00\x00\x4b\x62\x00\x00\x00\x00\x00\x00\x00\x00\x61\x89\x4e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc3\x61\xdf\x49\x78\x59\xe3\x00\x00\x00\x00\x61\xe0\x00\x00\x00\x00\x4e\xc8\x54\xcb\x00\x00\x61\xe2\x66\xfd\x66\xfc\x60\x4f\x00\x00\x00\x00\x00\x00\x61\xe1\x5b\xbd\x57\x9d\x52\x46\x00\x00\x00\x00\x00\x00\x62\x63\x00\x00\x00\x00\x5b\xd1\x61\xe6\x00\x00\x00\x00\x61\xe7\x00\x00\x00\x00\x5a\x67\x00\x00\x00\x00\x61\xeb\x50\x8d\x00\x00\x61\xec\x61\xe4\x00\x00\x00\x00\x4a\x60\x00\x00\x00\x00\x00\x00\x52\xed\x00\x00\x00\x00\x61\xed\x00\x00\x00\x00\x58\xc2\x00\x00\x4d\xf5\x61\xe8\x4c\x7e", /* 6000 */ "\x4e\x53\x56\xab\x56\x6b\x61\xe3\x61\xe5\x61\xe9\x61\xea\x00\x00\x00\x00\x00\x00\x61\xf6\x00\x00\x00\x00\x61\xf3\x5a\xf4\x61\xf2\x00\x00\x00\x00\x53\x4d\x00\x00\x5b\x9b\x53\x62\x49\xbf\x00\x00\x00\x00\x61\xee\x00\x00\x61\xf1\x51\x4f\x56\x5c\x00\x00\x00\x00\x4b\x41\x61\xf8\x00\x00\x00\x00\x00\x00\x4e\xb0\x61\xf0\x58\xd3\x5a\xb8\x61\xf4\x4d\x76\x61\xf5\x00\x00\x00\x00\x00\x00\x54\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x7c\x67\x41\x00\x00\x00\x00\x61\xf7\x00\x00\x67\x45\x61\xfd\x55\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x55\x00\x00\x4e\x70\x00\x00\x00\x00\x50\x76\x00\x00\x4d\xe2\x00\x00\x00\x00\x56\x41\x00\x00\x00\x00\x00\x00\x67\x46\x67\x43\x00\x00\x00\x00\x67\x42\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x76\x67\x47\x58\xf3\x00\x00\x00\x00\x67\x44\x4d\xdd\x4b\xf6\x62\x41\x4b\xb1\x56\xf0\x4d\x47\x00\x00\x58\x42\x54\x41\x00\x00\x00\x00\x50\x72\x00\x00\x00\x00\x4b\xf0\x00\x00\x61\xf9\x61\xfa\x61\xfc\x61\xfb\x52\xd4\x62\x42\x00\x00\x5a\x61", /* 6080 */ "\x00\x00\x00\x00\x00\x00\x62\x47\x54\x64\x00\x00\x00\x00\x00\x00\x00\x00\x58\x44\x00\x00\x00\x00\x62\x49\x4d\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x62\x48\x00\x00\x4e\x7a\x00\x00\x62\x43\x00\x00\x00\x00\x00\x00\x62\x44\x62\x4a\x00\x00\x62\x46\x00\x00\x57\xf1\x5a\x66\x00\x00\x00\x00\x4e\x5c\x00\x00\x00\x00\x5a\xc2\x00\x00\x52\xf9\x00\x00\x00\x00\x67\x48\x58\xfb\x62\x45\x00\x00\x52\x96\x00\x00\x62\x4d\x49\x4f\x00\x00\x62\x52\x00\x00\x00\x00\x00\x00\x4e\xc1\x00\x00\x00\x00\x62\x4c\x4b\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8a\x62\x50\x00\x00\x00\x00\x00\x00\x4f\xa9\x57\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x94\x00\x00\x00\x00\x00\x00\x56\xe7\x00\x00\x00\x00\x62\x4f\x00\x00\x62\x51\x00\x00\x58\x47\x62\x4e\x00\x00\x57\xa8\x4e\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8c\x4f\xe4\x49\xd1\x4a\x6d\x00\x00\x49\x59\x62\x4b\x49\xd0\x4b\x4c\x4d\x7f\x4b\xe7\x00\x00\x00\x00\x58\x8c\x62\x57\x00\x00\x4e\x6c\x00\x00\x00\x00\x54\xc6\x58\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6100 */ "\x62\x58\x4a\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x49\x00\x00\x5a\x9b\x5a\x85\x00\x00\x00\x00\x00\x00\x67\x4a\x62\x59\x59\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x55\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xcf\x62\x53\x00\x00\x00\x00\x62\x56\x4c\x7f\x00\x00\x62\x54\x50\xa1\x00\x00\x00\x00\x00\x00\x62\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc7\x00\x00\x62\x5b\x00\x00\x4e\x65\x00\x00\x55\x98\x00\x00\x00\x00\x55\x86\x00\x00\x00\x00\x00\x00\x52\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x51\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x7b\x50\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5c\x00\x00\x50\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x90\x00\x00\x00\x00\x5a\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5f\x4d\xa8\x67\x4c\x00\x00\x00\x00\x62\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb5\x00\x00\x00\x00\x00\x00\x4b\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb7\x00\x00\x48\xc2\x67\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4f\x50\xc0\x00\x00\x62\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb1", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x50\x00\x00\x4c\xe9\x00\x00\x57\xeb\x65\xa6\x58\xe6\x55\xf8\x54\xd5\x58\x57\x4a\x69\x57\xd1\x4f\x85\x00\x00\x00\x00\x62\x7e\x4e\x93\x65\xa7\x5b\x5d\x00\x00\x53\xdc\x65\xa8\x00\x00\x00\x00\x00\x00\x65\xa9\x00\x00\x65\xab\x65\xaa\x00\x00\x65\xad\x65\xac\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x78\x00\x00\x65\xae\x00\x00\x51\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc0\x4a\xf6\x00\x00\x00\x00\x4e\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe5\x66\xe4\x4c\x5f\x56\x9a\x49\x83\x00\x00\x66\xe6\x00\x00\x00\x00\x00\x00\x55\x68\x66\xe7\x66\xe8\x00\x00\x55\xd5\x5f\xcf\x49\xc4\x5a\xf9\x00\x00\x00\x00\x53\xca\x48\xc6\x4a\xf1\x54\xd2\x00\x00\x00\x00\x00\x00\x57\x70\x00\x00\x00\x00\x50\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x7b\x00\x00\x00\x00\x54\x44\x5b\xb3\x00\x00\x50\xa8\x5f\xd0\x55\x48\x59\x90\x53\x44\x48\xe6\x4a\x56\x54\xc4\x00\x00\x00\x00\x48\xe1\x00\x00\x00\x00\x4c\x97\x00\x00\x00\x00\x53\x9b\x00\x00\x00\x00\x4b\xf2\x00\x00\x5b\x72\x4a\x70", /* 6280 */ "\x4e\xbb\x00\x00\x00\x00\x00\x00\x4a\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf0\x48\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd5\x55\xe2\x5c\x45\x00\x00\x57\x56\x4b\xb5\x50\x59\x5b\x7b\x00\x00\x4c\xa6\x53\x77\x00\x00\x00\x00\x00\x00\x5f\xd1\x50\x79\x51\xd4\x54\x60\x00\x00\x4e\x44\x49\x48\x00\x00\x00\x00\x53\x8b\x00\x00\x00\x00\x53\x9c\x56\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x49\x47\x00\x00\x00\x00\x00\x00\x4b\x76\x00\x00\x00\x00\x00\x00\x52\xa7\x00\x00\x5f\xd2\x59\x5a\x4a\x8a\x00\x00\x52\x93\x00\x00\x00\x00\x4c\x98\x00\x00\x5b\xf3\x4b\x43\x49\xef\x52\xb3\x52\xe8\x50\xac\x5f\xd3\x00\x00\x48\xe7\x53\x64\x51\x81\x00\x00\x4d\x75\x00\x00\x4f\xdb\x57\x78\x48\xcd\x00\x00\x57\x6f\x5f\xd5\x4f\xcf\x5c\x5e\x5f\xd4\x5b\x70\x48\xdc\x00\x00\x00\x00\x52\xe1\x00\x00\x00\x00\x51\xa2\x4e\xef\x00\x00\x5a\x55\x50\xb8\x53\x41\x49\xa5\x5a\xf0\x00\x00\x00\x00\x50\xa7\x55\xc2\x5f\xd6\x5b\x9d\x00\x00\x4d\x50\x00\x00\x54\xac\x56\x49\x00\x00\x5f\xd8\x50\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x53\xb3\x5c\x47\x55\xaf\x52\xc2", /* 6300 */ "\x00\x00\x4a\x76\x4d\x72\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb7\x65\xfb\x48\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x50\x87\x00\x00\x00\x00\x56\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x57\x7a\x00\x00\x00\x00\x00\x00\x5b\xbe\x51\xcd\x00\x00\x57\xcd\x56\xa1\x58\xad\x52\xd2\x4b\x52\x5f\xd7\x5b\x96\x4e\xb6\x4e\x73\x00\x00\x00\x00\x48\xa3\x00\x00\x53\x52\x4a\xeb\x00\x00\x00\x00\x00\x00\x5b\x92\x00\x00\x00\x00\x65\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xd9\x57\x46\x00\x00\x00\x00\x57\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe5\x5f\xdb\x00\x00\x57\x51\x50\xa5\x00\x00\x00\x00\x5c\x5d\x00\x00\x5f\xda\x48\xc5\x4d\xb3\x55\x73\x52\xf2\x4f\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xcb\x56\x91\x00\x00\x4e\xf0\x4e\x5b\x4b\x57\x00\x00\x00\x00\x00\x00\x53\x96\x00\x00\x5f\xe5\x00\x00\x00\x00\x00\x00\x5f\xe2\x4f\xdc\x00\x00\x00\x00\x5f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb6\x4f\x7d\x00\x00\x00\x00\x5f\xdf\x52\xec\x00\x00\x00\x00\x00\x00\x00\x00", /* 6380 */ "\x58\x66\x00\x00\x4b\x81\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xdd\x55\xd9\x4b\x95\x5f\xe4\x00\x00\x5b\x66\x00\x00\x5f\xe0\x56\xcc\x53\xfd\x00\x00\x53\x65\x00\x00\x00\x00\x00\x00\x59\xb3\x00\x00\x4f\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd2\x00\x00\x56\xbc\x4a\x58\x00\x00\x4f\x73\x00\x00\x50\x78\x57\x66\x59\x7a\x4a\xea\x00\x00\x5f\xe3\x5f\xdc\x5f\xe6\x00\x00\x65\xfd\x00\x00\x00\x00\x51\xaf\x5f\xe1\x00\x00\x00\x00\x5b\xbf\x4b\x47\x00\x00\x49\xf3\x00\x00\x5f\xe7\x00\x00\x5f\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xec\x00\x00\x5f\xf0\x00\x00\x00\x00\x54\xdf\x00\x00\x00\x00\x00\x00\x5c\x82\x5f\xee\x52\x89\x56\xe0\x00\x00\x49\xe4\x00\x00\x00\x00\x00\x00\x59\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xed\x00\x00\x5f\xea\x57\xd4\x00\x00\x4a\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4b\x4f\xbd\x00\x00\x00\x00\x4f\x72\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe8\x00\x00\x5a\xad\x00\x00\x5f\xdd\x00\x00\x5f\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x50\xbe\x00\x00\x5f\xeb", /* 6400 */ "\x49\xf2\x4c\xe8\x51\xa6\x00\x00\x00\x00\x4f\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf4\x5f\xf7\x00\x00\x00\x00\x49\xaa\x4a\xa3\x00\x00\x00\x00\x4a\xe9\x55\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf5\x56\x71\x00\x00\x4c\xe2\x00\x00\x5f\xf6\x5f\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf8\x00\x00\x00\x00\x00\x00\x56\xc1\x00\x00\x48\xe0\x4a\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xae\x00\x00\x00\x00\x49\xea\x00\x00\x66\x41\x00\x00\x5f\xf3\x00\x00\x00\x00\x55\x84\x5f\xf2\x48\xd9\x59\xa0\x49\x98\x00\x00\x56\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xef\x00\x00\x56\x44\x00\x00\x00\x00\x00\x00\x5b\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xdc\x00\x00\x52\xa5\x00\x00\x00\x00\x00\x00\x5f\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9f\x52\xa0\x60\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6480 */ "\x00\x00\x00\x00\x51\x6c\x00\x00\x5f\xfb\x4f\xee\x00\x00\x53\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x65\x54\xf5\x00\x00\x00\x00\x56\x5a\x5f\xfd\x00\x00\x00\x00\x60\x44\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x57\x00\x00\x00\x00\x00\x00\x00\x00\x51\x63\x00\x00\x00\x00\x54\x6b\x49\xa4\x4a\xe8\x00\x00\x5c\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xeb\x00\x00\x60\x42\x60\x43\x00\x00\x60\x45\x00\x00\x4d\xb2\x00\x00\x00\x00\x00\x00\x60\x46\x00\x00\x50\xdd\x00\x00\x00\x00\x55\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xd8\x54\x87\x00\x00\x60\x47\x00\x00\x54\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x60\x48\x66\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x73\x00\x00\x00\x00\x00\x00\x60\x4a\x00\x00\x60\x49\x00\x00\x49\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6500 */ "\x53\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xef\x00\x00\x00\x00\x60\x4d\x5b\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb6\x66\x56\x55\xd4\x00\x00\x5c\xfb\x4c\xc3\x00\x00\x4d\x45\x00\x00\x00\x00\x4c\x65\x5b\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6a\x00\x00\x00\x00\x58\xa6\x6a\xcc\x00\x00\x00\x00\x4b\x70\x00\x00\x00\x00\x52\x95\x00\x00\x4f\xc7\x00\x00\x00\x00\x00\x00\x66\x57\x48\xbc\x00\x00\x00\x00\x4f\x6c\x00\x00\x51\x52\x00\x00\x49\x76\x4a\x48\x00\x00\x00\x00\x00\x00\x4c\xd1\x55\x42\x00\x00\x00\x00\x4b\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x66\x58\x4f\xb3\x00\x00\x00\x00\x00\x00\x55\xfc\x00\x00\x54\x63\x00\x00\x5b\x9c\x00\x00\x00\x00\x4c\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc3\x00\x00\x00\x00\x00\x00\x5b\x4b\x49\x94\x00\x00\x00\x00\x00\x00\x66\xb2\x48\xde\x00\x00\x66\xb4\x00\x00\x00\x00\x00\x00\x4b\xb6\x00\x00\x51\x6f\x00\x00\x6b\x9b\x58\xb0\x00\x00\x00\x00\x5b\x86\x00\x00\x57\xd2\x00\x00\x00\x00\x4f\x90\x4a\x83\x00\x00\x4c\xaa\x00\x00\x5b\x56\x00\x00\x67\x5d\x00\x00\x4b\xce\x00\x00\x56\x59\x58\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x5d\x00\x00\x00\x00\x66\xb5\x55\xa8\x00\x00\x00\x00\x00\x00\x53\x74\x00\x00\x66\xb8\x66\xb7\x51\xc2\x66\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfc\x66\xb9\x00\x00\x66\xba\x5c\x86\x00\x00\x00\x00\x66\xbb\x00\x00\x00\x00\x00\x00\x66\xbc\x53\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xdd\x00\x00\x4e\xc7\x00\x00\x00\x00\x54\xd4\x4b\x49\x4f\xc8\x5b\xbb\x5a\xe6\x00\x00\x00\x00\x59\x4e\x58\xf0\x65\xb7\x65\xb8\x65\xb9\x4d\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb0\x50\x96\x00\x00\x00\x00\x57\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6600 */ "\x65\xbf\x00\x00\x48\xb9\x65\xbd\x00\x00\x00\x00\x50\xa4\x00\x00\x00\x00\x00\x00\x65\xba\x00\x00\x49\xfc\x00\x00\x52\x98\x4e\x89\x00\x00\x00\x00\x00\x00\x59\xd6\x57\xf3\x65\xbe\x00\x00\x00\x00\x00\x00\x65\xbb\x00\x00\x00\x00\x00\x00\x65\xc2\x00\x00\x58\xc6\x5a\x53\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb9\x00\x00\x52\x61\x5c\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x71\x00\x00\x55\xc6\x00\x00\x65\xc4\x00\x00\x00\x00\x65\xc3\x65\xc6\x65\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xe6\x00\x00\x58\x74\x00\x00\x00\x00\x65\xca\x00\x00\x4e\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9b\x55\x6e\x00\x00\x00\x00\x65\xcb\x00\x00\x00\x00\x55\x59\x58\x9f\x65\xc9\x5a\xcd\x65\xcc\x65\xce\x00\x00\x00\x00\x57\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc8\x00\x00\x65\xcd\x00\x00\x00\x00\x57\xed\x00\x00\x4e\x7e\x00\x00\x4a\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd4\x4f\xaf\x57\xf9\x00\x00\x00\x00\x00\x00\x54\x88\x00\x00\x4f\xa6\x65\xcf\x00\x00\x00\x00\x5b\xc6\x00\x00\x00\x00\x00\x00\x51\x60\x00\x00", /* 6680 */ "\x00\x00\x00\x00\x5a\xdc\x00\x00\x65\xd0\x00\x00\x00\x00\x58\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x55\xed\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4f\x48\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd2\x6a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x49\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xee\x00\x00\x65\xd5\x65\xd6\x53\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd7\x00\x00\x00\x00\x65\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xba\x00\x00\x54\x9b\x59\xb6\x4c\xfb\x00\x00\x00\x00\x65\xc1\x00\x00\x49\xdb\x00\x00\x00\x00\x51\xfb\x00\x00\x5a\xf7\x56\xe5", /* 6700 */ "\x5c\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc1\x5a\x70\x66\x63\x53\x94\x00\x00\x4c\x9f\x00\x00\x00\x00\x66\x74\x00\x00\x00\x00\x00\x00\x56\x57\x66\x7e\x00\x00\x50\xc9\x00\x00\x00\x00\x00\x00\x57\x9c\x00\x00\x4a\x4f\x00\x00\x53\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x9d\x00\x00\x52\xbd\x00\x00\x57\xb3\x52\xa8\x49\x5e\x5a\xfc\x00\x00\x55\xf4\x00\x00\x5b\xeb\x00\x00\x00\x00\x53\xd2\x4b\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x9b\x00\x00\x00\x00\x58\xdf\x00\x00\x00\x00\x55\x51\x00\x00\x5a\xd2\x54\xa7\x00\x00\x00\x00\x4c\xca\x00\x00\x64\xbd\x55\x5c\x00\x00\x00\x00\x64\xba\x00\x00\x50\xed\x58\xd2\x49\xc3\x4a\xe4\x00\x00\x64\xbb\x00\x00\x00\x00\x5b\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc4\x00\x00\x64\xbc\x55\xf7\x4c\xdb\x56\xf4\x00\x00\x00\x00\x00\x00\x50\xb3\x00\x00\x00\x00\x59\x8f\x64\xbe\x64\xc1\x00\x00\x00\x00\x4d\xbb\x00\x00\x49\x4d\x4f\x7c\x00\x00\x65\xbc\x64\xc2\x00\x00\x64\xc5\x00\x00\x64\xca\x00\x00\x00\x00\x00\x00\x00\x00\x64\xcb\x00\x00\x56\x69\x48\xe4", /* 6780 */ "\x00\x00\x4e\xaa\x00\x00\x00\x00\x4d\x59\x00\x00\x00\x00\x64\xc0\x00\x00\x57\x98\x00\x00\x64\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8e\x00\x00\x51\x76\x64\xc3\x00\x00\x52\x56\x00\x00\x4d\x9c\x5b\xa5\x64\xc7\x00\x00\x00\x00\x00\x00\x55\xdf\x5a\xe5\x00\x00\x64\xbf\x00\x00\x64\xc4\x64\xc6\x00\x00\x54\x59\x4c\x84\x00\x00\x64\xc8\x00\x00\x50\x7d\x64\xd1\x00\x00\x00\x00\x64\xd6\x00\x00\x64\xd4\x4e\xdb\x4e\xce\x64\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xdd\x00\x00\x64\xd9\x49\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd7\x52\xb2\x4c\xcb\x53\xe1\x54\xbd\x54\xe0\x00\x00\x00\x00\x00\x00\x64\xce\x64\xd3\x64\xd5\x00\x00\x4d\x92\x64\xd7\x5c\x96\x00\x00\x52\xfa\x00\x00\x64\xdb\x00\x00\x00\x00\x49\xe8\x00\x00\x00\x00\x00\x00\x64\xd0\x00\x00\x00\x00\x4e\xec\x00\x00\x00\x00\x50\x62\x64\xcc\x5b\xf8\x00\x00\x51\x99\x49\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xde\x00\x00\x55\xc0", /* 6800 */ "\x64\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x44\x00\x00\x49\x8b\x5b\x5b\x64\xcd\x64\xcf\x4b\xaf\x64\xd2\x00\x00\x64\xdc\x50\xb7\x00\x00\x55\xf6\x00\x00\x56\x48\x00\x00\x00\x00\x53\xdb\x50\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe8\x00\x00\x00\x00\x00\x00\x58\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf1\x5b\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xdf\x64\xe0\x00\x00\x00\x00\x00\x00\x59\x9a\x4d\xca\x4c\xf8\x00\x00\x00\x00\x4c\xf0\x5a\xd3\x64\xee\x00\x00\x64\xed\x64\xeb\x4d\x91\x56\xd1\x64\xe5\x57\xa5\x50\x93\x00\x00\x48\xb7\x64\xf0\x64\xef\x00\x00\x5c\x60\x00\x00\x64\xe3\x00\x00\x57\x49\x55\x43\x00\x00\x4e\x58\x4f\x7b\x64\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe1\x64\xe2\x64\xe4\x4b\x55\x64\xe6\x54\x65\x64\xea\x64\xec\x4f\x50\x5c\x4e\x00\x00\x64\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf4\x00\x00\x57\x50\x64\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6880 */ "\x00\x00\x51\x5a\x00\x00\x64\xe7\x00\x00\x52\x57\x48\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf3\x00\x00\x00\x00\x00\x00\x64\xf6\x00\x00\x00\x00\x00\x00\x4d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x52\x6e\x57\xdf\x50\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x56\x94\x00\x00\x56\xdc\x58\xb4\x00\x00\x00\x00\x55\xe0\x00\x00\x64\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xeb\x00\x00\x64\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7e\x00\x00\x53\xe4\x00\x00\x4d\x98\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf3\x00\x00\x00\x00\x5c\x78\x00\x00\x00\x00\x4e\xab\x00\x00\x53\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc3\x00\x00\x00\x00\x65\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4d\x00\x00\x65\x42\x50\xe1\x00\x00\x00\x00\x00\x00\x50\x63\x00\x00\x00\x00\x00\x00\x64\xfd\x4d\x77\x00\x00\x64\xfa\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x65\x44\x00\x00\x00\x00\x00\x00\x59\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x43\x00\x00\x5b\xb1\x5c\x55\x00\x00\x65\x47\x00\x00\x4f\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfb\x64\xfc\x00\x00\x00\x00\x00\x00\x65\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x76\x00\x00\x00\x00\x59\xab\x00\x00\x00\x00\x00\x00\x65\x52\x00\x00\x00\x00\x00\x00\x00\x00\x65\x49\x00\x00\x00\x00\x00\x00\x4a\xa9\x00\x00\x4a\xba\x00\x00\x00\x00\x65\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa7\x00\x00\x00\x00\x65\x45\x00\x00\x00\x00\x4a\x9f\x00\x00\x00\x00\x65\x4c\x50\xe2\x00\x00\x65\x4a\x00\x00\x00\x00\x65\x59\x00\x00\x00\x00\x65\x58\x00\x00\x00\x00\x00\x00\x00\x00\x65\x4e\x00\x00\x00\x00\x64\xf9\x00\x00\x00\x00\x65\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4c\x65\x51\x65\x5a\x00\x00\x00\x00\x51\xa4\x00\x00\x00\x00\x00\x00", /* 6980 */ "\x65\x4f\x00\x00\x4c\xc4\x00\x00\x65\x4d\x00\x00\x5a\x7c\x65\x54\x65\x55\x65\x57\x00\x00\x00\x00\x00\x00\x65\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xc5\x65\x65\x00\x00\x00\x00\x65\x50\x00\x00\x00\x00\x65\x5b\x48\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5c\x5b\x45\x00\x00\x00\x00\x65\x5e\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x65\x61\x00\x00\x00\x00\x51\x92\x00\x00\x00\x00\x54\xb5\x00\x00\x00\x00\x00\x00\x65\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x63\x00\x00\x65\x53\x00\x00\x65\x56\x00\x00\x4e\x51\x00\x00\x00\x00\x00\x00\x65\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf6\x00\x00\x00\x00\x00\x00\x65\x64\x65\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xda\x00\x00\x65\x68", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6b\x65\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x61\x00\x00\x52\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x78\x00\x00\x4d\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x65\x69\x00\x00\x5a\x43\x00\x00\x00\x00\x00\x00\x65\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x77\x65\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6f\x00\x00\x00\x00\x54\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x79\x4a\x68\x00\x00\x65\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x91\x00\x00\x00\x00\x00\x00\x65\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x76\x00\x00\x00\x00\x65\x7a\x00\x00\x00\x00\x00\x00", /* 6a80 */ "\x56\xb3\x00\x00\x00\x00\x00\x00\x58\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x75\x00\x00\x65\x7c\x65\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7d\x00\x00\x65\x7f\x52\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x57\x4a\xcd\x4e\x56\x58\xbf\x66\xa2\x00\x00\x00\x00\x53\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa3\x00\x00\x66\xa4\x53\xda\x00\x00\x00\x00\x00\x00\x50\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa5\x00\x00\x00\x00\x66\xa6\x58\xa9\x00\x00\x54\x58\x00\x00\x00\x00\x4c\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb8\x5b\x9e\x4a\xca\x49\xbc\x57\xe3\x53\xe6\x00\x00\x00\x00\x57\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf4\x00\x00\x56\x60\x4e\xde\x00\x00\x00\x00\x00\x00", /* 6b80 */ "\x00\x00\x65\x83\x65\x84\x59\x8b\x65\x86\x00\x00\x4a\xf8\x65\x85\x00\x00\x59\x53\x55\xe1\x49\xcf\x00\x00\x65\x89\x00\x00\x00\x00\x00\x00\x00\x00\x65\x87\x65\x88\x00\x00\x00\x00\x5b\xb2\x00\x00\x00\x00\x00\x00\x65\x8a\x65\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xae\x53\x59\x4b\xcd\x00\x00\x59\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8f\x00\x00\x4e\x79\x66\xb0\x00\x00\x00\x00\x59\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe2\x00\x00\x52\xb7\x00\x00\x52\x5f\x00\x00\x00\x00\x4b\xbd\x5c\xb8\x49\x68\x49\x6f\x49\x71\x53\x9f\x00\x00\x49\x70\x00\x00\x52\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x44\x4d\xc0\x00\x00\x00\x00\x00\x00\x56\xb9\x00\x00\x00\x00\x00\x00\x66\x45\x00\x00\x66\x47\x00\x00\x00\x00\x00\x00\x66\x48\x00\x00\x00\x00\x00\x00\x66\x46\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x49\x66\x4b\x66\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4c\x00\x00\x55\xce\x5c\xb4\x52\x92\x00\x00\x52\x45\x53\xf7\x66\x4d\x52\xc9\x00\x00\x66\x4e\x66\x4f\x66\x50\x4c\x75\x00\x00\x00\x00\x00\x00\x4c\x9b\x00\x00\x66\x51\x54\x83\x00\x00\x66\x53\x00\x00\x4d\xa3\x59\x96\x48\xb0\x66\x52\x66\x54\x00\x00\x00\x00\x00\x00\x4b\x4a\x51\xc7\x54\x89\x00\x00\x66\x55\x00\x00\x56\x4e\x62\x7f\x00\x00\x00\x00\x5a\x60\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x7b\x00\x00\x00\x00\x57\x41\x5b\xac\x54\x94\x00\x00\x00\x00\x00\x00\x5d\x81\x4e\x84\x00\x00\x4d\xb9\x62\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x4b\x00\x00\x00\x00\x00\x00\x62\x81\x55\x67\x00\x00\x4d\xb8\x00\x00\x00\x00\x00\x00\x59\x54\x62\x82\x54\xe9\x4d\x4f\x4f\x4d\x4a\x78\x57\xda\x00\x00\x00\x00\x56\xbf\x00\x00\x00\x00\x00\x00\x62\x89\x62\x8a\x57\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xac\x00\x00\x4e\xb2\x00\x00\x62\x8b\x00\x00\x62\x8c\x00\x00\x00\x00\x58\xd9\x00\x00\x00\x00\x00\x00\x53\xfa\x4c\x7a\x00\x00", /* 6c80 */ "\x00\x00\x54\x7f\x59\xc9\x57\xd5\x00\x00\x62\x85\x62\x8d\x00\x00\x55\x93\x4a\x61\x00\x00\x00\x00\x62\x88\x00\x00\x00\x00\x53\xe2\x62\x86\x00\x00\x00\x00\x67\x53\x62\x87\x00\x00\x00\x00\x00\x00\x00\x00\x55\x53\x00\x00\x53\x87\x00\x00\x00\x00\x00\x00\x4d\x55\x00\x00\x52\x5b\x00\x00\x62\x84\x53\x5d\x51\x44\x51\xd8\x49\xd6\x00\x00\x62\x8e\x4e\x46\x52\xac\x00\x00\x62\x91\x4f\xd9\x00\x00\x00\x00\x62\x9c\x62\x96\x4d\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x70\x5a\x6d\x00\x00\x5b\xcd\x5b\x73\x4d\x61\x5b\x54\x59\x78\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb8\x54\x97\x00\x00\x00\x00\x00\x00\x54\xa9\x49\xb3\x00\x00\x52\x7a\x00\x00\x00\x00\x00\x00\x62\x8f\x00\x00\x00\x00\x62\x9d\x62\x90\x4c\x48\x62\x98\x62\x95\x00\x00\x00\x00\x00\x00\x4c\x5a\x00\x00\x00\x00\x53\x42\x00\x00\x62\x97\x53\x7d\x49\xa7\x53\xfb\x00\x00\x52\xdf\x00\x00\x00\x00\x5c\x42\x00\x00\x50\xe0\x62\x9a\x00\x00\x00\x00\x62\x9b\x62\x9e\x56\xa8\x62\x94\x00\x00\x5a\x5e\x00\x00\x49\x63\x67\x54\x62\x92\x62\x93\x00\x00\x62\x99\x58\xb9\x53\xc2\x5a\xf2\x62\x9f\x00\x00", /* 6d00 */ "\x00\x00\x4f\x81\x00\x00\x00\x00\x62\xa6\x00\x00\x00\x00\x62\xa5\x00\x00\x00\x00\x00\x00\x59\x94\x62\xa2\x00\x00\x62\xa8\x00\x00\x00\x00\x00\x00\x54\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x58\x54\x00\x00\x62\xa7\x62\xad\x51\xe4\x00\x00\x00\x00\x4b\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x93\x00\x00\x62\xa1\x00\x00\x00\x00\x4d\xe8\x62\xa9\x00\x00\x00\x00\x62\xab\x00\x00\x00\x00\x4b\xfc\x5b\xdd\x62\xb1\x00\x00\x62\xac\x00\x00\x00\x00\x00\x00\x62\xa0\x00\x00\x4e\x8f\x57\x7d\x54\x42\x53\x69\x00\x00\x00\x00\x51\x98\x00\x00\x62\xa3\x00\x00\x54\x53\x4f\x4c\x4f\x5d\x62\xa4\x00\x00\x5c\x67\x49\xe1\x00\x00\x62\xaa\x4e\xc2\x62\xae\x00\x00\x4e\x8c\x62\xaf\x53\x48\x62\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x84\x50\x43\x00\x00\x62\xb9\x00\x00\x62\xb6\x00\x00\x62\xba\x00\x00\x00\x00\x62\xbc\x00\x00\x00\x00\x53\xd5\x00\x00\x00\x00\x4d\xc5\x50\xca\x00\x00\x00\x00\x00\x00\x4c\xa0\x62\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa0\x00\x00\x00\x00\x4d\xa2\x4f\x9f\x00\x00\x00\x00\x00\x00\x62\xbb\x00\x00\x00\x00\x00\x00", /* 6d80 */ "\x00\x00\x00\x00\x57\x5f\x00\x00\x00\x00\x52\xf8\x00\x00\x00\x00\x58\x9c\x55\x87\x00\x00\x00\x00\x5a\x5f\x00\x00\x58\x71\x00\x00\x00\x00\x62\xb2\x00\x00\x62\xb7\x62\xb8\x56\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xcd\x00\x00\x50\xd3\x62\xb4\x51\x50\x62\xb5\x57\xcf\x00\x00\x4e\x61\x4b\x73\x00\x00\x54\xf2\x4f\x47\x5b\x67\x55\x4c\x4c\xa1\x62\xc9\x00\x00\x00\x00\x62\xcb\x59\x64\x00\x00\x00\x00\x59\xb9\x00\x00\x00\x00\x4d\xac\x00\x00\x00\x00\x4d\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc2\x4b\x8e\x00\x00\x00\x00\x00\x00\x5c\x6d\x62\xbf\x58\x9e\x62\xbe\x00\x00\x00\x00\x00\x00\x51\x7c\x56\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd6\x00\x00\x56\xd3\x62\xc7\x00\x00\x00\x00\x00\x00\x62\xc6\x62\xc0\x00\x00\x62\xc3\x4b\x4d\x00\x00\x00\x00\x5a\x79\x00\x00\x62\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf8\x4a\xe2\x00\x00\x4e\x54\x00\x00\x00\x00\x55\x8f\x00\x00\x4a\xbd\x00\x00\x00\x00\x00\x00\x4e\x8d\x00\x00\x59\x6d\x00\x00\x56\xec\x67\x55\x00\x00\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x86\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa7\x00\x00\x62\xca\x5c\x75\x62\xc1\x00\x00\x4f\x45\x62\xc4\x00\x00\x00\x00\x5a\x87\x00\x00\x62\xc8\x55\x99\x00\x00\x00\x00\x62\xbd\x00\x00\x00\x00\x5a\x86\x00\x00\x00\x00\x54\x9f\x4b\xc8\x00\x00\x5a\xfb\x49\xb2\x62\xd6\x00\x00\x00\x00\x00\x00\x57\xc1\x00\x00\x62\xcc\x00\x00\x57\xbb\x00\x00\x4c\xda\x00\x00\x00\x00\x62\xd5\x00\x00\x50\x6a\x00\x00\x00\x00\x00\x00\x5a\x6e\x00\x00\x52\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x68\x62\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x64\x62\xce\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x62\xd4\x00\x00\x4d\xfd\x00\x00\x58\x87\x00\x00\x00\x00\x5b\x5f\x00\x00\x00\x00\x00\x00\x62\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcf\x00\x00\x00\x00\x62\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x86\x55\xa9", /* 6e80 */ "\x00\x00\x00\x00\x00\x00\x50\xa2\x00\x00\x4f\x46\x62\xd2\x00\x00\x00\x00\x4c\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe6\x5a\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xda\x00\x00\x00\x00\x00\x00\x51\x90\x00\x00\x00\x00\x62\xe8\x00\x00\x00\x00\x59\xe6\x00\x00\x00\x00\x62\xde\x00\x00\x62\xdf\x00\x00\x00\x00\x58\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7d\x00\x00\x62\xd9\x62\xd0\x00\x00\x62\xe4\x00\x00\x54\xdb\x62\xe2\x00\x00\x00\x00\x52\xe6\x62\xe1\x00\x00\x62\xe0\x00\x00\x00\x00\x00\x00\x4a\x9d\x62\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x82\x00\x00\x00\x00\x00\x00\x5c\x6c\x00\x00\x00\x00\x00\x00\x62\xe5\x00\x00\x4e\x4c\x00\x00\x5c\x72\x56\xce\x66\x99\x00\x00\x62\xe3\x00\x00\x00\x00\x4d\x97\x00\x00\x00\x00\x00\x00\x5b\xcc\x62\xd8\x62\xdb\x51\xf9\x62\xdd\x00\x00\x51\xca\x50\xc3\x51\xcf\x00\x00\x49\x96\x56\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x62\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x53\xae\x00\x00\x00\x00\x00\x00\x53\xe0\x00\x00\x00\x00\x62\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xa8\x00\x00\x00\x00\x00\x00\x50\xeb\x59\x7d\x62\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xad\x00\x00\x00\x00\x00\x00\x62\xec\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf5\x62\xf3\x51\xfd\x00\x00\x62\xdc\x00\x00\x62\xef\x00\x00\x55\xfd\x00\x00\x5b\x64\x00\x00\x00\x00\x62\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xea\x62\xeb\x00\x00\x00\x00\x00\x00\x62\xf1\x00\x00\x57\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6b\x00\x00\x00\x00\x00\x00\x54\x51\x00\x00\x51\xb9\x00\x00\x00\x00\x00\x00\x62\xe9\x00\x00\x00\x00\x00\x00\x51\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb5\x4a\x51\x00\x00\x00\x00\x00\x00\x62\xfa\x00\x00\x62\xf2\x00\x00\x00\x00\x00\x00\x62\xf9\x00\x00\x62\xfc\x00\x00\x62\xfb\x00\x00\x00\x00\x00\x00", /* 6f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6e\x00\x00\x00\x00\x00\x00\x4a\x5a\x62\xf6\x00\x00\x00\x00\x62\xf8\x62\xf7\x53\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc3\x00\x00\x00\x00\x63\x44\x00\x00\x00\x00\x63\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xa3\x00\x00\x63\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xfd\x49\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x48\x00\x00\x63\x49\x63\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x47\x63\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4b\x63\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4f\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x81\x00\x00\x00\x00\x63\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x91\x66\xe0\x52\x91\x00\x00\x4b\x66\x4e\x72\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8a\x5a\xed\x00\x00\x4f\xc3\x00\x00\x00\x00\x00\x00\x5c\x66\x00\x00\x5a\xd5\x49\xd2", /* 7080 */ "\x66\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc0\x00\x00\x00\x00\x00\x00\x51\xae\x4a\xb5\x00\x00\x00\x00\x00\x00\x59\x77\x00\x00\x00\x00\x00\x00\x4a\x54\x00\x00\x54\xb1\x50\x5b\x66\xbf\x00\x00\x00\x00\x5b\xca\x00\x00\x00\x00\x66\xbe\x66\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc4\x4f\xe5\x56\xbe\x53\x7a\x4f\xbb\x00\x00\x66\xc5\x00\x00\x49\x9f\x00\x00\x00\x00\x00\x00\x66\xc3\x5b\x48\x4b\x84\x00\x00\x66\xc1\x51\x56\x4a\x84\x00\x00\x00\x00\x66\xc2\x56\x58\x50\xc2\x56\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x51\x72\x00\x00\x66\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe5\x50\xd2\x00\x00\x5b\xf1\x00\x00\x00\x00\x00\x00\x59\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x4c\x53\x55\x75\x66\xc6\x4e\x83\x00\x00\x56\xcb\x4f\x9e\x54\xc7\x00\x00\x58\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x8a\x00\x00\x53\x8c\x00\x00\x00\x00\x00\x00\x4c\x8a\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x69\x4d\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc8\x00\x00\x00\x00\x66\xc9\x00\x00\x4e\x60\x66\xca\x00\x00\x66\xe1\x49\x5a\x4c\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xcb\x59\x87\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x54\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd2\x00\x00\x4e\x6d\x00\x00\x4e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xce\x00\x00\x55\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x5a\x00\x00\x66\xe2\x5b\x75\x66\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf2\x00\x00\x00\x00\x00\x00\x66\xd1\x66\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd3\x00\x00\x66\xd4\x00\x00\x00\x00\x55\x5f\x00\x00\x00\x00", /* 7180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x58\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x59\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x54\xda\x00\x00\x00\x00\x00\x00\x66\xd5\x57\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xeb\x66\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd8\x00\x00\x00\x00\x00\x00\x48\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd6\x00\x00\x66\xd7\x00\x00\x00\x00\x00\x00\x66\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdb\x59\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xda\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xee\x00\x00\x66\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdf\x00\x00\x5c\x46\x00\x00\x53\x60\x00\x00\x00\x00\x00\x00\x66\x5c\x48\xad\x00\x00\x00\x00\x00\x00\x4f\xf3\x4c\xb7\x59\xae\x48\xd5\x4b\x9a\x00\x00\x5c\xb2\x00\x00\x56\x4c\x00\x00\x62\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xab\x48\xe5\x00\x00\x00\x00\x00\x00\x53\x66\x66\x59\x00\x00\x00\x00\x00\x00\x00\x00\x66\x5a\x00\x00\x00\x00\x00\x00\x66\x5b\x00\x00\x00\x00\x59\x60\x00\x00\x53\x43\x00\x00\x65\xf1\x00\x00\x52\xb1\x00\x00\x52\xb4\x50\xcd\x00\x00\x00\x00\x00\x00\x65\xf2\x52\xc0\x00\x00\x57\xee\x00\x00\x00\x00\x00\x00\x00\x00\x65\xef\x65\xf3\x00\x00\x00\x00\x55\x9d\x00\x00\x00\x00\x54\x43\x00\x00\x00\x00\x00\x00\x56\xd7\x57\xfd\x00\x00\x00\x00\x00\x00\x65\xf4\x65\xf5", /* 7280 */ "\x58\x4c\x50\xe6\x00\x00\x00\x00\x65\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbe\x65\xf7\x00\x00\x65\xf8\x00\x00\x65\xf9\x00\x00\x00\x00\x65\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xad\x61\x8c\x00\x00\x4c\x58\x61\x8d\x00\x00\x00\x00\x00\x00\x61\x8e\x00\x00\x5c\x54\x61\x8f\x61\x90\x5a\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x92\x50\x92\x61\x91\x4b\x72\x00\x00\x00\x00\x00\x00\x49\x57\x00\x00\x00\x00\x00\x00\x00\x00\x61\x94\x61\x93\x00\x00\x4d\xfb\x00\x00\x61\x95\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x57\x00\x00\x4f\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x52\xfb\x00\x00\x4d\xdc\x4f\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x96\x61\x98\x00\x00\x00\x00\x4b\xbf\x58\x61\x55\xa7\x61\x97\x5b\x99\x5a\x9d\x61\x99\x61\x9d\x61\x9a\x00\x00\x00\x00\x61\x9b\x50\xe9\x00\x00\x61\x9f\x61\xa0\x50\xc6\x00\x00\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x61\x9c\x00\x00\x61\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa4\x00\x00\x00\x00\x00\x00\x51\x74\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa2\x00\x00\x61\xa7\x49\xfd\x61\xa1\x00\x00\x00\x00\x00\x00\x52\x6d\x49\xc1\x61\xa6\x61\xa5\x00\x00\x00\x00\x61\xa3\x61\xa8\x00\x00\x00\x00\x61\xaa\x00\x00\x00\x00\x00\x00\x58\xc8\x5b\xec\x52\x48\x61\xab\x00\x00\x58\x77\x00\x00\x00\x00\x61\xad\x00\x00\x00\x00\x4d\xee\x00\x00\x00\x00\x65\x81\x61\xac\x61\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4b\x5a\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xaf\x00\x00\x00\x00\x61\xae\x00\x00\x65\x82\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb2\x56\xa0\x00\x00\x61\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb4\x00\x00", /* 7380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x00\x00\x00\x00\x51\xc9\x00\x00\x5a\x92\x00\x00\x57\x96\x00\x00\x00\x00\x64\x81\x00\x00\x00\x00\x64\x82\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe9\x00\x00\x00\x00\x00\x00\x64\x85\x00\x00\x00\x00\x64\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x87\x00\x00\x52\x55\x00\x00\x00\x00\x64\x83\x4e\x57\x58\x76\x00\x00\x51\x82\x64\x8a\x00\x00\x00\x00\x00\x00\x64\x89\x00\x00\x00\x00\x64\x95\x49\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8b\x00\x00\x64\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8d\x64\x8c\x55\x5a\x00\x00\x00\x00\x5b\x85\x00\x00\x64\x86\x4c\x49\x64\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x94\x00\x00\x5b\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8e\x00\x00\x64\x93\x00\x00\x64\x92\x00\x00\x00\x00\x00\x00\x48\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x64\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x54\x93\x00\x00\x50\xc4\x50\xec\x00\x00\x00\x00\x51\x91\x64\x91\x00\x00\x00\x00\x00\x00\x00\x00\x64\x97\x56\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x61\x00\x00\x00\x00\x64\x9b\x64\x9a\x00\x00\x64\x9c\x00\x00\x64\x98\x00\x00\x64\x9f\x00\x00\x64\x9e\x00\x00\x64\x9d\x00\x00\x00\x00\x51\x75\x54\x79\x53\x9e\x53\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa5\x00\x00\x64\xa4\x00\x00\x64\xa6\x4d\xf6\x64\x99\x64\xa3\x00\x00\x54\xef\x55\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa8\x00\x00\x00\x00\x4d\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9f\x64\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa9\x00\x00", /* 7480 */ "\x64\xac\x64\xad\x00\x00\x51\x47\x00\x00\x00\x00\x00\x00\x64\xae\x00\x00\x00\x00\x00\x00\x64\xaf\x00\x00\x00\x00\x64\xab\x00\x00\x64\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xaa\x00\x00\x64\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb4\x64\xb1\x64\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6f\x00\x00\x68\xab\x00\x00\x68\xac\x00\x00\x53\xaf\x48\xe9\x54\xbe\x00\x00\x57\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcc\x65\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb1\x00\x00\x53\xbe\x4a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb2", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9a\x00\x00\x65\xb3\x00\x00\x65\xb4\x00\x00\x65\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc9\x60\x50\x55\x96\x00\x00\x56\xef\x00\x00\x00\x00\x55\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9c\x00\x00\x00\x00\x5a\x63\x56\x46\x00\x00\x4c\xa5\x68\xad\x49\x62\x00\x00\x63\x58\x56\xee\x5a\x69\x4e\xd6\x55\x8b\x00\x00\x4b\x88\x00\x00\x52\xcf\x4b\x8a\x00\x00\x67\xad\x4e\x4d\x00\x00\x00\x00\x64\x7e\x00\x00\x67\xae\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x49\x00\x00\x00\x00\x67\xb1\x00\x00\x00\x00\x67\xb0\x4f\x88\x00\x00\x67\xaf\x57\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x51\x95\x5e\x6e\x67\xb2\x58\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd3\x53\xe7\x00\x00\x00\x00\x00\x00\x4c\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb3\x00\x00\x4a\x8c\x00\x00\x00\x00\x00\x00\x4e\x9c\x67\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7c", /* 7580 */ "\x00\x00\x00\x00\x00\x00\x67\xb5\x00\x00\x00\x00\x4f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x69\x83\x00\x00\x00\x00\x00\x00\x55\xe7\x00\x00\x59\xc8\x68\xd9\x00\x00\x68\xda\x00\x00\x68\xdb\x51\x66\x00\x00\x4c\xec\x4f\xcd\x00\x00\x00\x00\x68\xdd\x00\x00\x53\x51\x68\xdc\x59\x92\x00\x00\x68\xdf\x48\xcb\x4f\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xde\x68\xde\x00\x00\x4a\xae\x4c\x89\x68\xe5\x68\xe4\x53\xa2\x68\xe0\x68\xe1\x4a\xc2\x00\x00\x00\x00\x68\xe2\x5b\x8f\x00\x00\x00\x00\x56\xda\x4f\xd1\x4e\xb1\x00\x00\x00\x00\x00\x00\x68\xe7\x68\xe6\x68\xe3\x49\xa0\x00\x00\x5b\xa1\x5a\x58\x4f\xb6\x54\xab\x00\x00\x00\x00\x68\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x59\x98\x00\x00\x5b\xcb\x4d\xda\x68\xe8\x00\x00\x4b\xba\x00\x00\x00\x00\x57\x54\x00\x00\x00\x00\x53\xa5\x00\x00\x00\x00\x00\x00\x51\x41\x68\xea\x68\xed\x00\x00\x68\xec\x68\xef\x68\xeb\x00\x00\x4e\x5e\x68\xee\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb4\x68\xf1\x00\x00\x00\x00\x4a\x75\x00\x00\x00\x00\x00\x00\x00\x00\x49\x74\x00\x00\x00\x00\x68\xf2\x00\x00\x00\x00\x68\xf3", /* 7600 */ "\x68\xf5\x4a\xe0\x00\x00\x68\xf0\x00\x00\x68\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x68\xf9\x00\x00\x68\xf7\x00\x00\x00\x00\x00\x00\x68\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x68\xfc\x00\x00\x68\xf8\x68\xfb\x68\xfd\x00\x00\x69\x41\x00\x00\x00\x00\x00\x00\x57\xc0\x69\x44\x00\x00\x69\x43\x00\x00\x51\x97\x68\xfa\x55\xdc\x00\x00\x00\x00\x4a\xf0\x49\x92\x56\xb0\x00\x00\x69\x46\x00\x00\x00\x00\x69\x47\x00\x00\x00\x00\x69\x4c\x5b\x6e\x69\x49\x00\x00\x00\x00\x54\xb2\x00\x00\x00\x00\x00\x00\x69\x42\x00\x00\x69\x4b\x69\x48\x69\x45\x00\x00\x00\x00\x69\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xa8\x69\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4f\x00\x00\x69\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x50\x00\x00\x69\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x59\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x52\x00\x00\x00\x00\x00\x00\x69\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x90\x00\x00\x00\x00\x4b\x67\x00\x00\x48\xd6\x48\xd8\x00\x00", /* 7680 */ "\x00\x00\x00\x00\x5a\xec\x00\x00\x4b\x64\x00\x00\x4f\x74\x4e\x6a\x68\xa6\x00\x00\x00\x00\x4c\xdd\x00\x00\x00\x00\x68\xa7\x00\x00\x00\x00\x48\xa7\x00\x00\x68\xa8\x00\x00\x00\x00\x57\x8f\x00\x00\x00\x00\x68\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa3\x00\x00\x00\x00\x5b\xe4\x69\x85\x00\x00\x69\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x94\x00\x00\x00\x00\x5a\x7b\x00\x00\x00\x00\x5b\xd0\x53\x89\x00\x00\x5a\x4f\x00\x00\x59\xe5\x00\x00\x00\x00\x67\xc0\x48\xba\x5b\x55\x59\x6e\x4e\xdf\x4d\xcf\x00\x00\x50\x99\x00\x00\x4c\xc6\x4b\x61\x53\x6c\x00\x00\x00\x00\x55\xa1\x00\x00\x00\x00\x00\x00\x52\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xbe\x4b\xa1\x00\x00\x67\x8d\x52\x44\x00\x00\x5b\xb0\x00\x00\x00\x00\x00\x00\x58\x81\x67\x90\x00\x00\x00\x00\x53\x6e\x00\x00\x4b\xdb\x00\x00", /* 7700 */ "\x00\x00\x55\xa0\x00\x00\x00\x00\x67\x8e\x00\x00\x00\x00\x67\x91\x67\x92\x52\x5c\x00\x00\x50\x54\x00\x00\x67\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x95\x67\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x87\x52\x7f\x00\x00\x67\x94\x00\x00\x00\x00\x00\x00\x67\x97\x00\x00\x5b\x43\x59\x43\x00\x00\x00\x00\x00\x00\x67\x96\x00\x00\x52\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x98\x50\x95\x4f\xeb\x67\x99\x00\x00\x56\xf6\x00\x00\x59\x7b\x00\x00\x00\x00\x00\x00\x5c\x65\x5b\x97\x00\x00\x67\x9d\x00\x00\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9a\x67\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9e\x4f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x4f\x67\xa0\x4b\xbc\x00\x00\x67\xa1\x52\xbf\x00\x00\x67\x9f\x00\x00\x00\x00\x4f\x7e\x49\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc2\x00\x00\x00\x00\x00\x00\x67\xa4\x5c\xb9\x67\xa2", /* 7780 */ "\x67\xa5\x00\x00\x00\x00\x00\x00\x52\x8a\x4a\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa6\x67\xa3\x58\x59\x00\x00\x00\x00\x67\xa7\x51\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa8\x67\xa9\x00\x00\x5f\xaa\x00\x00\x00\x00\x53\xb2\x00\x00\x54\x66\x00\x00\x5b\xf4\x4b\x69\x00\x00\x56\x52\x00\x00\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x57\x4b\x00\x00\x67\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x50\x00\x00\x67\xac\x00\x00\x6b\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa2\x00\x00\x00\x00\x00\x00\x52\x4c\x69\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb7\x59\xd2\x00\x00\x5b\xa9\x00\x00\x68\x93\x00\x00\x4f\xd7\x00\x00\x4f\x63\x68\x94\x4b\xcb\x48\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x55\xae\x00\x00\x00\x00\x67\x56\x00\x00\x67\x57\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf8\x4c\x4f\x50\x94", /* 7800 */ "\x67\x58\x51\xea\x55\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x59\x00\x00\x00\x00\x53\xf5\x50\x53\x00\x00\x00\x00\x00\x00\x67\x5c\x53\x99\x00\x00\x59\x70\x00\x00\x5c\x49\x67\x5a\x67\x5b\x00\x00\x59\x83\x00\x00\x67\x5f\x67\x60\x00\x00\x67\x64\x00\x00\x00\x00\x00\x00\x67\x68\x00\x00\x67\x66\x67\x6e\x5b\x89\x00\x00\x67\x69\x00\x00\x00\x00\x67\x67\x67\x5e\x00\x00\x00\x00\x53\x8a\x00\x00\x00\x00\x00\x00\x53\xc5\x00\x00\x00\x00\x55\x8a\x5a\xd1\x67\x61\x67\x62\x67\x63\x67\x65\x00\x00\x50\xf8\x00\x00\x4a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x89\x00\x00\x67\x70\x00\x00\x00\x00\x00\x00\x00\x00\x67\x71\x00\x00\x67\x6a\x00\x00\x67\x6f\x00\x00\x57\xf7\x00\x00\x00\x00\x56\x56\x67\x6c\x67\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x72\x51\x93\x5a\x52\x67\x6b\x54\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xee\x00\x00\x00\x00\x00\x00\x00\x00\x53\x91\x00\x00\x00\x00\x00\x00", /* 7880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x76\x00\x00\x4b\x90\x00\x00\x00\x00\x51\xb4\x48\xac\x56\x8a\x00\x00\x00\x00\x49\x4e\x00\x00\x67\x74\x00\x00\x00\x00\x00\x00\x57\x8c\x4b\x83\x00\x00\x67\x75\x67\x73\x67\x77\x00\x00\x00\x00\x4b\x9b\x00\x00\x67\x78\x00\x00\x67\x79\x00\x00\x67\x7c\x00\x00\x49\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x97\x4e\xed\x67\x7a\x56\xbb\x49\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xea\x00\x00\x00\x00\x4a\xc4\x00\x00\x00\x00\x00\x00\x48\xf4\x00\x00\x00\x00\x00\x00\x67\x7f\x50\xd9\x4a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6d\x00\x00\x00\x00\x00\x00\x67\x7d\x50\x64\x00\x00\x00\x00\x00\x00\x67\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa4\x00\x00\x00\x00\x00\x00\x67\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x82\x00\x00\x67\x84\x00\x00\x00\x00\x51\x77\x00\x00\x00\x00\x4e\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x4f\x58\x00\x00\x00\x00\x00\x00\x67\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbd\x66\xe9\x50\xf0\x00\x00\x55\x88\x00\x00\x66\xea\x53\xed\x00\x00\x00\x00\x00\x00\x00\x00\x66\xeb\x00\x00\x53\xec\x66\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xef\x00\x00\x00\x00\x5c\x87\x66\xf2\x00\x00\x00\x00\x66\xf0\x66\xed\x66\xee\x5c\x43\x55\x92\x56\x8f\x66\xf3\x00\x00\x66\xf1\x00\x00\x00\x00\x58\x8a\x00\x00\x66\xf5\x53\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbf\x00\x00\x66\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x5b\x4e\x97\x00\x00\x66\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7980 */ "\x5d\x98\x4f\x9c\x00\x00\x00\x00\x51\xba\x66\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8e\x5c\xad\x50\xea\x00\x00\x54\x7d\x4d\xcb\x00\x00\x58\xe2\x56\x5d\x00\x00\x57\x5a\x00\x00\x00\x00\x4c\xd0\x00\x00\x00\x00\x49\x9d\x00\x00\x54\x90\x00\x00\x5b\xd5\x00\x00\x00\x00\x00\x00\x50\x66\x52\x8c\x00\x00\x00\x00\x68\x96\x00\x00\x00\x00\x52\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x83\x00\x00\x00\x00\x00\x00\x68\x98\x4a\x73\x00\x00\x54\x78\x59\x8e\x00\x00\x5b\xc7\x00\x00\x68\x99\x00\x00\x68\x97\x00\x00\x4e\x9e\x4a\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x75\x00\x00\x00\x00\x59\xc5\x00\x00\x4e\x81\x00\x00\x00\x00", /* 7a00 */ "\x58\x41\x00\x00\x68\x9d\x68\x9c\x00\x00\x00\x00\x68\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6c\x00\x00\x55\x74\x56\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x9f\x00\x00\x00\x00\x48\xdd\x00\x00\x00\x00\x5b\xc8\x00\x00\x00\x00\x00\x00\x68\x9e\x00\x00\x4a\x8e\x00\x00\x00\x00\x6b\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc7\x00\x00\x00\x00\x00\x00\x68\xa1\x00\x00\x68\xa0\x00\x00\x4b\x5e\x4e\xd9\x4e\x9d\x00\x00\x4c\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa5\x00\x00\x00\x00\x00\x00\x59\x48\x00\x00\x4f\xbe\x54\x8f\x69\x56\x69\x57\x50\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa8", /* 7a80 */ "\x69\x58\x57\x5b\x00\x00\x54\x74\x5b\x4d\x00\x00\x69\x59\x00\x00\x69\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6f\x00\x00\x00\x00\x00\x00\x59\xa3\x5b\xce\x00\x00\x00\x00\x69\x5b\x4f\x71\x4a\xaf\x4f\xbc\x00\x00\x00\x00\x00\x00\x4a\xdb\x57\xd0\x00\x00\x50\x7f\x69\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9b\x69\x5c\x00\x00\x69\x5f\x00\x00\x00\x00\x00\x00\x69\x5e\x69\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf9\x00\x00\x00\x00\x5b\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb9\x4f\xb8\x5b\x62\x00\x00\x00\x00\x50\x42\x00\x00\x57\x4f\x69\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7f\x00\x00\x4b\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf0\x6a\x63\x00\x00\x00\x00\x6a\x64\x00\x00\x4c\xcc", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x6a\x66\x6a\x67\x00\x00\x48\xc9\x00\x00\x6a\x65\x00\x00\x6a\x69\x56\x92\x00\x00\x00\x00\x00\x00\x6a\x6b\x00\x00\x58\xa5\x00\x00\x00\x00\x49\x6a\x6a\x68\x00\x00\x00\x00\x00\x00\x6a\x6f\x00\x00\x4b\x71\x00\x00\x00\x00\x6a\x77\x00\x00\x6a\x72\x00\x00\x00\x00\x00\x00\x6a\x74\x6a\x73\x4c\x9c\x00\x00\x49\x5f\x00\x00\x6a\x6e\x6a\x6a\x4b\x7a\x00\x00\x6a\x70\x00\x00\x00\x00\x6a\x71\x00\x00\x6a\x75\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x6d\x00\x00\x4e\xe2\x00\x00\x51\x9e\x00\x00\x6a\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x7a\x00\x00\x6a\x6c\x00\x00\x4b\x68\x00\x00\x4f\x8f\x6a\x7c\x00\x00\x00\x00\x4c\x44\x50\x91\x5b\xfd\x57\x52\x00\x00\x4a\xef\x00\x00\x49\xde\x00\x00\x6a\x78\x00\x00\x6a\x79\x55\x58\x00\x00\x6a\x7d\x00\x00\x00\x00\x6a\x7e\x00\x00\x6a\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x7f\x00\x00\x00\x00\x6a\x84\x6a\x83\x00\x00\x00\x00\x6a\x7b\x00\x00\x50\x8b\x00\x00\x4a\x90\x00\x00\x6a\x81\x00\x00\x00\x00\x54\x49\x00\x00", /* 7b80 */ "\x4e\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5f\x00\x00\x00\x00\x6a\x85\x00\x00\x00\x00\x00\x00\x49\xac\x4e\x9f\x00\x00\x56\x84\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8e\x6a\x8a\x00\x00\x00\x00\x00\x00\x4d\x7c\x6a\x8f\x00\x00\x00\x00\x00\x00\x6a\x86\x6a\x87\x6a\x8b\x51\xe0\x6a\x8d\x6a\x90\x6a\x89\x4e\xfc\x00\x00\x00\x00\x00\x00\x58\x85\x00\x00\x00\x00\x6a\x91\x00\x00\x00\x00\x00\x00\x6a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x4d\x53\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x94\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x92\x00\x00\x51\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdc\x6a\x96\x00\x00\x00\x00\x6a\x95\x00\x00\x00\x00\x00\x00\x4a\xda\x00\x00\x00\x00\x00\x00\x6a\x97\x6a\x98\x00\x00\x00\x00\x00\x00\x6a\x99\x00\x00\x00\x00\x00\x00\x50\xb9\x00\x00\x00\x00\x50\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x92\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x9c\x00\x00\x6a\x9b\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd7\x00\x00\x00\x00\x00\x00\x6a\x9f\x6a\x9a\x00\x00\x00\x00\x6a\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa2\x4e\x69\x00\x00\x00\x00\x6a\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xbd\x6a\xa5\x6a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x77\x5d\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdf\x6a\xcb\x5c\x71\x00\x00\x00\x00", /* 7c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xcd\x51\x43\x00\x00\x00\x00\x53\xc8\x00\x00\x4a\xd5\x5b\x53\x00\x00\x00\x00\x00\x00\x6a\xcf\x6a\xce\x6a\xd0\x56\x7a\x00\x00\x00\x00\x6a\xd1\x00\x00\x5a\xc0\x5b\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x81\x00\x00\x00\x00\x00\x00\x51\x58\x00\x00\x00\x00\x51\x5b\x6a\xd2\x4f\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xe1\x00\x00\x00\x00\x6a\xd3\x6a\xd4\x4f\xaa\x00\x00\x00\x00\x6a\xd5\x00\x00\x00\x00\x00\x00\x6a\xda\x00\x00\x6a\xd6\x6a\xd9\x00\x00\x4d\xfc\x00\x00\x6a\xd7\x6a\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe1\x56\xc6\x6a\xdb\x00\x00\x49\xd9\x00\x00\x00\x00\x52\x73\x00\x00\x00\x00\x5a\xe2\x50\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe8\x00\x00\x00\x00\x58\x55\x00\x00\x00\x00\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x78\x00\x00\x56\x98\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x95\x00\x00\x00\x00\x00\x00\x5c\x6f\x00\x00\x00\x00\x00\x00\x50\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e80 */ "\x00\x00\x00\x00\x5c\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xed\x00\x00\x00\x00\x00\x00\x63\xf8\x4f\xbf\x63\xf9\x4d\xeb\x63\xfa\x58\x6b\x63\xfb\x5a\xbb\x4e\xb5\x63\xfc\x63\xfd\x4e\xcc\x54\xd1\x57\xb2\x64\x41\x00\x00\x4a\xbe\x64\x42\x55\x54\x4c\xd8\x52\xc8\x00\x00\x5c\x7d\x51\xd9\x4c\x77\x5b\xbc\x57\xc5\x4c\x64\x00\x00\x00\x00\x53\x46\x64\x43\x58\x7f\x64\x44\x64\x45\x64\x46\x51\x57\x5c\x8a\x55\x91\x58\x58\x5b\xae\x5b\xd4\x64\x47\x48\xec\x64\x48\x64\x49\x55\x7c\x59\xee\x4f\xac\x64\x4a\x48\xf2\x54\xdd\x4f\x82\x64\x4b\x54\xc5\x00\x00\x64\x4c\x4e\x87\x4c\xf7\x59\x44\x64\x4d\x51\xe6\x4f\xf7\x4f\x6a\x57\x53\x64\x4e\x64\x4f\x4f\xed\x58\xe4\x00\x00\x56\x88\x56\xcf\x4e\xcb\x64\x50\x4e\xa7\x58\xf6\x64\x51\x00\x00\x58\xf7\x64\x52\x64\x53\x4a\xc1\x64\x54\x64\x55\x55\x9f\x57\xab\x52\x81\x64\x57\x49\x61\x4a\x92\x00\x00\x64\x58\x64\x59\x5c\x7b\x5b\x60\x64\x5a\x51\xcb", /* 7f00 */ "\x5c\x5a\x64\x5b\x64\x5c\x64\x5d\x4e\xe9\x52\x86\x50\xc1\x64\x5e\x64\x5f\x4e\xa8\x00\x00\x64\x60\x64\x61\x64\x56\x4b\xcf\x64\x62\x00\x00\x64\x63\x64\x64\x4e\x5a\x4b\x7e\x51\xc5\x49\x81\x64\x65\x5a\xb4\x64\x66\x4c\xbe\x64\x68\x64\x67\x4c\x8d\x00\x00\x64\x69\x49\xf7\x64\x6a\x64\x6b\x64\x6c\x64\x6d\x64\x6e\x64\x6f\x64\x70\x5a\x47\x56\x96\x64\x71\x64\x72\x64\x73\x64\x74\x55\x69\x64\x75\x64\x76\x64\x77\x64\x78\x64\x79\x4f\x69\x64\x7a\x6a\x5e\x00\x00\x4c\xd6\x00\x00\x54\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5f\x00\x00\x6a\x60\x6a\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7e\x57\x99\x00\x00\x00\x00\x5c\xe7\x4d\xb0\x00\x00\x51\xdd\x67\xb6\x00\x00\x4c\x43\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb8\x00\x00\x67\xb7\x48\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xba\x5b\x76\x5c\x90\x00\x00\x00\x00\x00\x00\x5b\xc2\x00\x00\x00\x00\x67\xbc\x55\xef\x00\x00\x67\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbf\x00\x00", /* 7f80 */ "\x00\x00\x67\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x93\x00\x00\x54\x5c\x00\x00\x52\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x88\x00\x00\x00\x00\x6a\xc5\x58\xde\x6a\xc6\x00\x00\x58\x7b\x00\x00\x00\x00\x54\xb9\x00\x00\x00\x00\x6a\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc8\x6a\xc9\x00\x00\x6a\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9b\x4c\xfd\x00\x00\x00\x00\x63\x92\x5a\x91\x00\x00\x6a\xdf\x00\x00\x57\xcb\x00\x00\x00\x00\x00\x00\x4a\x82\x00\x00\x00\x00\x00\x00\x00\x00\x69\x54\x00\x00\x59\xed\x00\x00\x6a\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x89\x6a\xe1\x00\x00\x00\x00\x54\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x74\x4a\xe3\x6a\xe3\x00\x00\x00\x00\x00\x00\x6a\xe2\x6a\xe4\x00\x00\x00\x00\x6a\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe6\x00\x00\x4d\xb1\x48\xbe\x00\x00\x6a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4d\x59\xec\x00\x00\x00\x00\x00\x00", /* 8000 */ "\x59\xaa\x50\xce\x00\x00\x50\x5c\x66\x43\x5b\x7f\x65\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x69\x94\x4b\xf7\x56\x43\x00\x00\x00\x00\x52\xcc\x00\x00\x69\x88\x00\x00\x69\x89\x4c\xfa\x69\x8a\x4d\xc3\x5a\xc4\x48\xd1\x00\x00\x00\x00\x69\x8b\x00\x00\x00\x00\x00\x00\x69\x8c\x00\x00\x69\x8d\x00\x00\x00\x00\x69\x8e\x69\x8f\x69\x90\x69\x92\x69\x91\x53\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x93\x00\x00\x4b\xf9\x00\x00\x69\x95\x59\xad\x5f\xc6\x56\x6a\x00\x00\x00\x00\x4a\x7c\x00\x00\x4b\x42\x00\x00\x4d\x42\x00\x00\x00\x00\x52\xf3\x69\x96\x00\x00\x00\x00\x69\x97\x00\x00\x00\x00\x00\x00\x51\x64\x51\x9c\x5b\xaf\x69\x98\x00\x00\x00\x00\x00\x00\x00\x00\x69\x99\x00\x00\x51\x4a\x00\x00\x00\x00\x00\x00\x53\xb7\x00\x00\x4f\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x9a\x4a\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x52", /* 8080 */ "\x67\x51\x00\x00\x00\x00\x56\x81\x59\xdd\x00\x00\x56\x61\x5b\x78\x00\x00\x54\xe1\x00\x00\x50\xde\x4e\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x61\x00\x00\x00\x00\x58\xa3\x00\x00\x5b\xe1\x00\x00\x4b\xc6\x4c\xd7\x66\x60\x4c\xcd\x00\x00\x66\x5f\x4a\x46\x4d\x69\x5b\xaa\x00\x00\x4c\x95\x4c\x6a\x00\x00\x00\x00\x00\x00\x4e\xe6\x4c\x5e\x66\x66\x00\x00\x66\x67\x48\xb8\x50\x6f\x00\x00\x66\x65\x5a\x9e\x00\x00\x66\x68\x00\x00\x00\x00\x66\x69\x00\x00\x00\x00\x4c\x6e\x00\x00\x66\x62\x66\x64\x55\x97\x5b\xd6\x5b\x6d\x58\xb1\x66\x6f\x57\xb7\x66\x70\x00\x00\x4b\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x53\x66\x72\x56\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x76\x66\x73\x00\x00\x66\x71\x53\x7f\x66\x6e\x55\xa3\x66\x75\x48\xfa\x00\x00\x00\x00\x4d\xf9\x00\x00\x00\x00\x5c\xb6\x69\x84\x00\x00\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x76\x63\xbf\x66\x79\x00\x00\x50\x89\x59\xc7\x66\x77\x66\x7c\x4c\xeb\x66\x78\x00\x00\x4f\x5a\x00\x00\x58\xd7\x00\x00\x48\xb6\x00\x00\x66\x7d\x52\xdb\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x5b\xab\x00\x00\x00\x00\x00\x00\x4a\xdf\x00\x00\x00\x00\x51\xf5\x4e\xb8\x00\x00\x00\x00\x66\x7a\x66\x7b\x5a\xdf\x53\xe9\x52\xd3\x66\x7f\x53\x47\x5d\x96\x00\x00\x49\xb0\x00\x00\x66\x85\x00\x00\x4f\x65\x00\x00\x00\x00\x00\x00\x66\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x84\x00\x00\x00\x00\x4c\xab\x00\x00\x57\x71\x66\x86\x00\x00\x00\x00\x00\x00\x66\x82\x00\x00\x51\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xf2\x00\x00\x66\x87\x00\x00\x50\xaf\x59\xb7\x66\x88\x00\x00\x00\x00\x00\x00\x4c\xae\x4c\xac\x00\x00\x66\x89\x54\x5b\x57\x94\x00\x00\x00\x00\x00\x00\x66\x8b\x66\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc7\x00\x00\x66\x93\x00\x00\x66\x8f\x00\x00\x00\x00\x00\x00\x66\x92\x54\xf8\x00\x00\x59\x9d\x66\x8d\x00\x00\x00\x00\x66\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb8\x58\x79\x52\xe4\x66\x90\x66\x91\x56\xd9\x57\x68", /* 8180 */ "\x48\xf1\x00\x00\x66\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x96\x00\x00\x49\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdf\x00\x00\x66\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x8d\x00\x00\x00\x00\x56\xc4\x52\xa3\x58\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x9a\x00\x00\x00\x00\x66\xa1\x00\x00\x53\x93\x00\x00\x66\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xde\x66\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6e\x66\xa0\x49\x7b\x5a\x57\x00\x00\x00\x00\x59\xdb\x00\x00\x00\x00\x00\x00\x66\x9e\x00\x00\x66\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5c\x00\x00\x00\x00\x00\x00\x65\xaf\x00\x00\x00\x00\x5c\x74\x00\x00\x6a\xaa\x4a\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc0\x5b\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8a\x4f\xc9\x00\x00\x6a\xa6\x00\x00", /* 8200 */ "\x59\xa7\x6a\xa7\x6a\xa8\x00\x00\x6a\xa9\x4f\xca\x5a\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x81\x55\x82\x00\x00\x00\x00\x6a\x62\x00\x00\x55\xe5\x00\x00\x56\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb5\x56\x54\x00\x00\x57\xe7\x5b\xda\x00\x00\x6a\xac\x6a\xad\x6a\xae\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xb1\x00\x00\x4d\xbc\x6a\xb2\x48\xe2\x6a\xaf\x00\x00\x6a\xb0\x4f\x42\x49\xd4\x00\x00\x6a\xb5\x6a\xb6\x4b\xe5\x49\xaf\x58\x6f\x6a\xb3\x4a\xab\x00\x00\x6a\xb4\x00\x00\x00\x00\x6a\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xb8\x00\x00\x00\x00\x57\x47\x00\x00\x6a\xb9\x00\x00\x6a\xba\x00\x00\x00\x00\x00\x00\x6a\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x72\x00\x00\x6a\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xdd\x51\x5c\x4e\xe7\x00\x00\x55\x4b\x59\x7e\x63\x96\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb2\x59\xd4\x00\x00\x00\x00\x5e\xb3\x48\xab\x5e\xb4", /* 8280 */ "\x00\x00\x00\x00\x4f\x7a\x00\x00\x5e\xb8\x00\x00\x00\x00\x00\x00\x5c\xc1\x00\x00\x5e\xb6\x5a\x94\x00\x00\x55\x76\x5e\xb9\x5e\xb5\x00\x00\x5e\xba\x52\x42\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbb\x5e\xc4\x5e\xbc\x00\x00\x00\x00\x57\xde\x5b\xa4\x00\x00\x5e\xce\x00\x00\x5e\xcc\x00\x00\x00\x00\x5e\xd1\x4f\x87\x51\xaa\x00\x00\x5e\xb7\x5e\xca\x5e\xcd\x5e\xbd\x4c\x72\x48\xc4\x5e\xc6\x58\xbd\x5e\xc0\x4e\x48\x00\x00\x4c\x5c\x5e\xcb\x00\x00\x00\x00\x5e\xc5\x5e\xbe\x54\x7b\x00\x00\x00\x00\x00\x00\x59\x5f\x5e\xbf\x00\x00\x00\x00\x5e\xc9\x00\x00\x00\x00\x5e\xcf\x00\x00\x00\x00\x57\xac\x5e\xc1\x00\x00\x5e\xc2\x5e\xc7\x5e\xc8\x49\xd3\x5e\xd0\x56\x75\x00\x00\x5a\xb6\x5e\xda\x5e\xde\x56\xa5\x5e\xe5\x00\x00\x52\x88\x5e\xdb\x00\x00\x00\x00\x50\x61\x5e\xd8\x00\x00\x48\xf9\x4d\x56\x5e\xe4\x5e\xd2\x00\x00\x5e\xc3\x5e\xd5\x54\xf3\x50\x81\x00\x00\x00\x00\x00\x00\x00\x00\x55\x5b\x00\x00\x00\x00\x00\x00\x49\x5d\x00\x00\x5a\x42\x00\x00\x00\x00\x5e\xd9\x00\x00\x00\x00\x5e\xd4\x00\x00\x53\xba\x00\x00\x5e\xdd\x00\x00\x00\x00\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x5c\x62\x52\x4f\x4c\x56\x54\x71\x52\x49\x5e\xe1\x5e\xd7\x5e\xea\x5e\xd3\x00\x00\x00\x00\x5e\xdc\x00\x00\x4f\xa4\x5e\xd6\x00\x00\x5e\xdf\x00\x00\x00\x00\x5e\xe2\x5e\xe3\x00\x00\x5e\xf7\x00\x00\x00\x00\x5e\xe0\x5f\x42\x5e\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xea\x4a\xc3\x00\x00\x00\x00\x52\x43\x49\xe6\x5e\xf9\x00\x00\x5e\xf1\x00\x00\x5e\xee\x00\x00\x5e\xfb\x5e\xed\x59\xef\x49\xe7\x00\x00\x54\xd6\x54\xe2\x5e\xfa\x00\x00\x5e\xec\x00\x00\x00\x00\x00\x00\x5e\xf6\x00\x00\x00\x00\x5e\xf4\x00\x00\x00\x00\x4f\xa2\x5e\xf3\x00\x00\x49\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf2\x4e\xf5\x5e\xe7\x4e\x64\x00\x00\x50\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xd3\x5e\xe8\x5e\xe9\x00\x00\x5e\xf0\x5e\xf5\x5e\xf8\x4b\x54\x00\x00\x54\xd8\x4e\x88\x5e\xfd\x5e\xfc\x5a\x4b\x5f\x41\x5f\x43\x5f\x45\x59\xf0\x5f\x44\x5f\x46\x5f\x47\x59\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc8\x5f\x49\x00\x00\x00\x00\x5f\x56\x5f\x51\x5f\x54\x00\x00\x00\x00", /* 8380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x50\x53\xcd\x00\x00\x00\x00\x50\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4f\x00\x00\x00\x00\x00\x00\x5e\xeb\x5f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x00\x00\x00\x00\x5e\xef\x5f\x4f\x00\x00\x5f\x58\x00\x00\x5f\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x59\x5f\x53\x5f\x4d\x52\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x48\x50\xb2\x51\x4b\x5f\x4a\x5f\x4b\x00\x00\x5f\x52\x4e\x92\x5f\x55\x5a\x48\x5f\x5a\x00\x00\x5f\x5b\x52\x47\x00\x00\x00\x00\x5f\x72\x5f\x5c\x00\x00\x00\x00\x00\x00\x5f\x71\x00\x00\x4d\x5d\x00\x00\x00\x00\x4f\xd4\x00\x00\x4f\xf9\x00\x00\x00\x00\x4d\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x6a\x00\x00\x5f\x65\x00\x00\x5f\x5f\x00\x00\x00\x00\x00\x00\x49\xca\x5f\x63\x00\x00\x5f\x6b\x49\xa3\x5f\x75\x00\x00\x00\x00\x00\x00\x5f\x5e\x00\x00\x00\x00\x00\x00\x53\xcf\x5f\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x74\x51\x83\x4c\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x6e\x5f\x6f\x00\x00\x00\x00\x00\x00\x5f\x64\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x5f\x5d\x00\x00\x5f\x6d\x56\xd0\x00\x00\x5f\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x62\x52\x68\x53\xbb\x57\xad\x5f\x6c\x00\x00\x5f\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x61\x00\x00\x00\x00\x00\x00\x5f\x66\x51\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x49\x5a\x4a\x5f\x73\x58\x95\x54\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x67\x00\x00\x00\x00\x00\x00\x5f\x81\x51\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf7\x00\x00\x5f\x79\x5f\x78\x4c\xef\x5f\x76\x00\x00\x00\x00\x00\x00\x00\x00\x53\xce\x00\x00\x4b\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x83\x00\x00\x4d\xf8\x5a\xe0\x5f\x88\x00\x00\x00\x00\x00\x00\x4a\xcf\x00\x00\x5f\x7a\x00\x00\x50\x9c\x5f\x84\x00\x00\x5f\x7f\x00\x00\x5f\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x4b\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x7b\x5f\x7c\x5f\x7e\x00\x00\x4f\x4f\x5f\x85\x00\x00\x5f\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x96\x00\x00\x52\x69\x00\x00\x00\x00\x56\x83\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe0\x00\x00\x00\x00\x53\xd0\x00\x00\x5f\x95\x00\x00\x00\x00\x00\x00\x5b\x95\x5f\x94\x5f\x91\x00\x00\x00\x00\x5f\x8d\x00\x00\x5f\x90\x00\x00\x5f\x89\x00\x00\x00\x00\x58\xed\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd7\x5f\x8f\x00\x00\x00\x00\x5f\x8a\x00\x00\x00\x00\x5f\x8b\x56\x93\x00\x00\x5f\x8e\x00\x00\x00\x00\x49\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb5\x00\x00\x4e\xba\x5f\x92\x00\x00\x00\x00\x5f\x98\x00\x00\x5f\x97\x5f\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x8f\x00\x00\x00\x00\x00\x00\x5f\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa3\x00\x00\x00\x00\x5f\xa2", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x99\x00\x00\x00\x00\x00\x00\x00\x00\x52\x90\x00\x00\x51\xfa\x00\x00\x00\x00\x00\x00\x5b\x82\x00\x00\x00\x00\x57\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9e\x00\x00\x49\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe7\x55\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x5e\x5f\x9b\x5f\x9d\x5f\x9f\x5f\xa1\x48\xa9\x49\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xab\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa5\x4f\x56\x54\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa0\x00\x00\x00\x00\x5f\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa7\x00\x00\x00\x00\x00\x00\x5f\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xac\x00\x00\x5a\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb2\x5f\xa9\x5f\xad\x00\x00\x00\x00\x50\xd8\x00\x00", /* 8580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x49\x41\x5f\xb5\x00\x00\x5f\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x46\x5f\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xae\x00\x00\x00\x00\x00\x00\x5f\xaf\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x5f\xb3\x55\xec\x5f\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb7\x00\x00\x5f\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xd7\x52\x8b\x00\x00\x00\x00\x5f\xb9\x00\x00\x53\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe4\x00\x00\x00\x00\x00\x00\x5f\xbc", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbd\x00\x00\x5f\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x5a\x00\x00\x00\x00\x00\x00\x5f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xad\x4e\x42\x51\xb1\x53\x50\x51\xc6\x00\x00\x00\x00\x69\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe8\x00\x00\x00\x00\x00\x00\x5a\x7d\x00\x00\x00\x00\x00\x00\x66\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x87\x69\xaf\x00\x00\x69\xb0\x00\x00\x00\x00\x55\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe6\x69\xb2\x69\xb4\x69\xb3\x56\x85\x58\x5a\x69\xb1", /* 8680 */ "\x55\xb3\x59\xce\x51\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x69\xb7\x48\xf5\x69\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xbd\x00\x00\x49\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x61\x69\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xbb\x5a\xe8\x00\x00\x00\x00\x69\xba\x69\xb5\x69\xbe\x69\xbc\x00\x00\x69\xb8\x00\x00\x00\x00\x69\xc6\x69\xc3\x69\xc5\x00\x00\x00\x00\x69\xc9\x69\xc1\x69\xbf\x00\x00\x00\x00\x00\x00\x69\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfa\x00\x00\x00\x00\x00\x00\x69\xc0\x00\x00\x54\x9a\x55\x7f\x00\x00\x69\xc7\x4d\x66\x4b\x50\x00\x00\x00\x00\x69\xc2\x69\xc8\x69\xcf\x69\xd5\x00\x00\x00\x00\x4e\x77\x00\x00\x00\x00\x00\x00\x69\xd4\x57\x7c\x00\x00\x5b\xea\x00\x00\x00\x00\x69\xd1\x69\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x69\xca\x00\x00\x00\x00\x00\x00\x69\xcd\x51\xf8\x00\x00\x5b\x7d\x69\xcb\x69\xcc\x69\xce\x69\xd2\x00\x00\x00\x00\x00\x00\x69\xd8\x5a\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe9\x00\x00", /* 8700 */ "\x55\xf0\x00\x00\x4c\x85\x69\xd6\x00\x00\x00\x00\x00\x00\x69\xd7\x69\xd9\x69\xdc\x69\xda\x00\x00\x00\x00\x69\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x59\x71\x69\xd0\x00\x00\x57\x69\x00\x00\x57\xce\x5b\xa8\x00\x00\x69\xe2\x00\x00\x52\x7b\x00\x00\x69\xdf\x00\x00\x00\x00\x50\xae\x69\xeb\x69\xdd\x00\x00\x69\xe0\x00\x00\x00\x00\x00\x00\x69\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x69\xe1\x00\x00\x00\x00\x69\xe6\x00\x00\x00\x00\x69\xe5\x00\x00\x00\x00\x69\xe8\x00\x00\x00\x00\x00\x00\x69\xde\x00\x00\x00\x00\x69\xe3\x69\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4c\x69\xe4\x49\xf4\x00\x00\x00\x00\x69\xf1\x00\x00\x58\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x69\xf4\x00\x00\x00\x00\x00\x00\x4e\x68\x00\x00\x69\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xef\x00\x00\x00\x00\x69\xf5\x69\xf7\x69\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xf2\x00\x00\x69\xf0\x00\x00\x00\x00\x00\x00\x4d\xfa\x00\x00\x4b\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x69\xee\x69\xf6\x69\xec\x69\xed\x00\x00", /* 8780 */ "\x00\x00\x00\x00\x69\xea\x6a\x46\x00\x00\x6a\x43\x00\x00\x00\x00\x6a\x42\x00\x00\x00\x00\x69\xf3\x00\x00\x54\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xfa\x00\x00\x00\x00\x00\x00\x6a\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xfc\x00\x00\x00\x00\x6a\x47\x6a\x49\x6a\x44\x00\x00\x69\xfb\x00\x00\x00\x00\x00\x00\x6a\x4b\x00\x00\x6a\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x00\x00\x6a\x4e\x00\x00\x00\x00\x6a\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x41\x00\x00\x00\x00\x00\x00\x6a\x51\x6a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x4f\x69\xfd\x6a\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x52\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x54\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x48\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x53\x00\x00\x00\x00\x00\x00\x6a\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x58\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x5d\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x57\x00\x00\x54\xe3\x6a\x56\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5b\x4a\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5c\x00\x00\x00\x00\x6a\x5d\x00\x00\x00\x00\x00\x00\x59\x4a\x00\x00\x00\x00\x00\x00\x6a\xab\x58\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xcf\x59\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x6e\x00\x00\x00\x00\x4f\x76\x00\x00\x59\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe1\x61\x8a\x59\xc1\x69\x62\x49\xb8\x00\x00\x00\x00\x49\x8e\x69\x63\x00\x00\x55\x60\x4a\x64\x00\x00\x5d\x93\x00\x00\x56\x45\x00\x00\x69\x64\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x65\x6a\xbf\x69\x66", /* 8880 */ "\x00\x00\x5a\xab\x69\x67\x00\x00\x48\xbf\x6a\xc0\x00\x00\x00\x00\x6a\xc1\x00\x00\x00\x00\x4a\xfb\x00\x00\x53\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x56\xba\x00\x00\x00\x00\x00\x00\x58\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x68\x00\x00\x5d\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x5b\x00\x00\x58\x4e\x00\x00\x00\x00\x00\x00\x4c\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc2\x51\x71\x00\x00\x00\x00\x5c\x50\x69\x69\x00\x00\x00\x00\x69\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6e\x00\x00\x00\x00\x00\x00\x5d\x97\x00\x00\x59\xe0\x5a\xa2\x00\x00\x00\x00\x6a\xc2\x54\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc3\x00\x00\x00\x00\x69\x6d\x69\x6f\x50\x84\x69\x70\x00\x00\x00\x00\x69\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x76\x69\x71\x00\x00\x55\x71\x53\x82\x00\x00\x00\x00\x00\x00\x51\xe2\x4d\x9d\x00\x00\x00\x00\x69\x73\x00\x00\x69\x75\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x4d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd5\x00\x00\x48\xfc\x69\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x78\x69\x72\x69\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x77\x00\x00\x00\x00\x00\x00\x54\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6a\x69\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5d\x00\x00\x00\x00\x00\x00\x69\x7c\x00\x00\x69\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x7f\x00\x00\x00\x00\x58\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc4\x4f\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x82\x00\x00\x00\x00\x00\x00\x57\xf6", /* 8980 */ "\x00\x00\x59\xa9\x00\x00\x69\x9c\x00\x00\x00\x00\x4c\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xfa\x4d\x7b\x00\x00\x4d\x87\x52\x79\x55\xd2\x65\xe7\x50\xbf\x4f\xf4\x65\xe8\x65\xe9\x65\xea\x00\x00\x65\xeb\x65\xec\x65\xed\x65\xee\x4f\x67\x00\x00\x00\x00\x00\x00\x6b\x9c\x00\x00\x00\x00\x00\x00\x6b\x9e\x00\x00\x6b\x9f\x00\x00\x6b\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x83\x00\x00\x6b\xa0\x4a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa1\x00\x00\x00\x00\x00\x00\x6b\xa2\x00\x00\x00\x00\x00\x00\x66\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a00 */ "\x59\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9f\x56\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8b80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa4\x4e\xc5\x4b\xa8\x4c\xbb\x54\xce\x4e\xa4\x5d\xa5\x5d\xa6\x56\xd5\x54\xc2\x5d\xa7\x53\xfc\x00\x00\x59\x55\x59\xe8\x59\x56\x4e\xc6\x00\x00\x4f\x52\x4e\x85\x5d\xa8\x5d\xa9\x59\x68\x5d\xaa\x58\xec\x4b\xee\x51\xda\x00\x00\x56\x6f\x4c\x8e\x55\x89\x4c\x63\x4f\xf6\x5b\xa3\x5d\xab\x5d\xac\x53\xbf\x5c\x88\x55\xb5\x00\x00\x5b\x49\x56\x7f\x5b\x90\x5d\xad\x5b\xde\x4a\xc9\x5d\xaf\x5d\xae\x00\x00\x59\xea\x5d\xb0\x5d\xb1\x5d\xb2\x55\xd3\x5d\xb3\x55\xaa\x5d\xb4\x5d\xb5\x4a\x6f\x5b\xee\x5d\xb6\x4e\x50\x4b\x4e\x5d\xb7\x5d\xb8\x4d\x8f\x59\x4f\x59\xe7\x5d\xb9\x4c\xc2\x58\x8b\x49\xee\x5d\xba\x5d\xbb\x00\x00\x4f\x8c\x57\xdb\x5a\x90\x5d\xbc\x57\xf2\x5d\xbd\x5a\x75\x4e\x86\x5d\xbe\x56\x55\x56\x70\x5d\xbf\x54\x8c\x5b\xed\x5d\xc0\x53\x55\x4b\xc0\x5d\xc1\x4c\x6c\x50\x6e\x5d\xc2", /* 8c00 */ "\x5d\xc3\x56\x4d\x5d\xc4\x4b\x98\x5d\xc5\x51\x62\x5c\x5b\x5d\xc6\x56\xb7\x00\x00\x59\xe9\x52\xb0\x5d\xc7\x4b\x9e\x4e\x71\x5d\xc8\x58\xb2\x5d\xc9\x5d\xca\x57\xbc\x5d\xcb\x5d\xcc\x5d\xcd\x49\xf6\x5d\xd0\x5d\xce\x59\x89\x5d\xcf\x52\x75\x5d\xd1\x00\x00\x5d\xd2\x5d\xd3\x5d\xd4\x58\xba\x59\xa4\x48\xf8\x5d\xd5\x54\x4b\x5d\xd6\x4f\x98\x52\x41\x5d\xd7\x5d\xd8\x52\x9e\x56\xb6\x5d\xd9\x5d\xda\x50\xbd\x53\xd6\x5d\xdb\x5d\xdc\x54\x54\x5d\xdd\x5d\xde\x4d\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb8\x6a\xf7\x00\x00\x6a\xf8\x00\x00\x00\x00\x57\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x59\x00\x00\x00\x00\x00\x00\x00\x00\x66\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x94\x4e\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xbf\x5a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x79\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x95\x49\x4a\x49\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c80 */ "\x00\x00\x00\x00\x6b\x96\x00\x00\x00\x00\x6b\x98\x00\x00\x00\x00\x00\x00\x4d\xd0\x6b\x97\x00\x00\x52\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x9a\x00\x00\x00\x00\x00\x00\x6b\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x54\x5b\x8b\x4c\xb9\x00\x00\x4d\x51\x49\xc5\x5a\xef\x58\x6d\x48\xdb\x5b\x6b\x4e\x96\x5b\xc9\x4c\x57\x56\xaf\x53\xb5\x49\x82\x4d\x5a\x5b\xfb\x4d\x82\x4c\x41\x4e\xf9\x65\xd9\x65\xda\x56\xf8\x4d\x94\x65\xdb\x4a\xfa\x52\x53\x4c\x71\x4d\xd7\x65\xdc\x5a\xf3\x65\xdd\x4e\xd5\x4e\x7f\x65\xde\x51\x7e\x51\xb7\x5a\xde\x5c\x6a\x65\xdf\x65\xe0\x65\xe3\x65\xe1\x65\xe2\x55\x7e\x4c\xb2\x4b\xc3\x65\xe4\x55\xe9\x55\x6d\x4a\xcc\x00\x00\x00\x00\x61\xd8\x53\x83\x65\xe5\x50\xb4\x00\x00\x5c\x58\x65\xe6\x5c\x4c\x54\xfb\x5c\xd2\x5c\xcc\x5a\xdd\x00\x00\x5a\xf8\x55\x64\x5a\x4e\x4c\xd2\x4a\x81\x00\x00\x55\x83\x6a\xf5\x00\x00\x00\x00\x00\x00\x4d\xd4\x00\x00\x6a\xf6\x00\x00\x00\x00\x5c\x7f\x00\x00\x00\x00\x6a\xf0\x4c\xaf\x5b\x74\x4c\xce\x53\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d80 */ "\x00\x00\x4a\x63\x00\x00\x00\x00\x6a\xf1\x4a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xbc\x54\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf3\x00\x00\x00\x00\x6a\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xca\x00\x00\x00\x00\x00\x00\x54\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf4\x00\x00\x5c\x84\x53\x5f\x6b\x60\x00\x00\x00\x00\x6b\x5b\x00\x00\x6b\x63\x00\x00\x6b\x62\x00\x00\x5b\xb9\x6b\x61\x00\x00\x00\x00\x00\x00\x5a\xbd\x6b\x64\x00\x00\x6b\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x48\xce\x4b\x99\x00\x00\x6b\x69\x6b\x6a\x00\x00\x53\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x65\x6b\x66\x00\x00\x00\x00\x6b\x67\x6b\x6b\x00\x00\x4f\xdf\x6b\x68\x4c\xf9\x00\x00\x00\x00\x00\x00\x6b\x70\x6b\x73\x00\x00\x00\x00\x00\x00\x50\x88\x00\x00\x4d\x93\x6b\x5c\x6b\x6d\x00\x00\x00\x00\x51\xb6\x00\x00\x00\x00\x00\x00\x56\xf7\x00\x00\x4e\xf8\x00\x00\x6b\x6e\x6b\x6f\x6b\x71\x4b\xe4\x6b\x72\x00\x00\x6b\x75\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5d\x00\x00\x00\x00\x00\x00\x6b\x74\x5a\x5b\x00\x00\x4a\x8d\x00\x00\x00\x00\x56\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x77\x4f\xe0\x6b\x78\x00\x00\x00\x00\x56\xde\x6b\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc7\x5c\x79\x00\x00\x6b\x79\x00\x00\x6b\x7a\x6b\x7c\x00\x00\x6b\x83\x00\x00\x00\x00\x00\x00\x6b\x81\x00\x00\x00\x00\x00\x00\x6b\x7f\x6b\x7d\x00\x00\x00\x00\x6b\x82\x00\x00\x00\x00\x6b\x7e\x6b\x85\x6b\x86\x00\x00\x56\xe2\x00\x00\x00\x00\x63\x5f\x4b\x58\x6b\x84\x6b\x89\x56\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x87\x6b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x64\x00\x00\x00\x00\x6b\x5f\x00\x00\x00\x00\x4b\x65\x49\xe3\x00\x00\x6b\x8d\x6b\x8a\x00\x00\x4b\xd6\x00\x00\x6b\x8e\x00\x00\x6b\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x8c\x00\x00\x00\x00\x4a\xd9", /* 8e80 */ "\x00\x00\x5a\xe9\x00\x00\x00\x00\x00\x00\x6b\x8f\x00\x00\x4a\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x90\x6b\x92\x00\x00\x00\x00\x00\x00\x6b\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x93\x00\x00\x6b\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x8e\x4d\x4a\x00\x00\x00\x00\x54\x9c\x00\x00\x00\x00\x4b\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x55\x5a\xfd\x4d\x8d\x58\xf8\x00\x00\x65\x8e\x5c\x4a\x65\x8f\x51\xd5\x54\xec\x4d\xe3\x65\x90\x65\x91\x65\x92\x5b\xe0\x65\x93\x65\x94\x65\x96\x65\x95\x65\x97\x65\x98\x54\x82\x65\x99\x5a\xd7\x65\x9a\x4f\x6e", /* 8f80 */ "\x00\x00\x65\x9b\x65\x9c\x4f\x6f\x65\x9d\x4c\xa7\x51\x5e\x65\x9e\x49\x52\x4e\x74\x4d\x96\x65\x9f\x00\x00\x65\xa0\x65\xa1\x65\xa2\x4c\x99\x4e\xac\x00\x00\x55\xe3\x60\xcd\x5a\xae\x58\x5d\x5b\x57\x65\xa3\x5b\x7e\x65\xa4\x58\xc0\x4d\x5c\x00\x00\x4a\xc6\x49\x79\x00\x00\x00\x00\x00\x00\x50\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x49\x87\x49\x88\x00\x00\x49\x89\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5d\x54\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x63\x61\x00\x00\x00\x00\x49\x7f\x00\x00\x00\x00\x00\x00\x51\x69\x4a\xee\x00\x00\x00\x00\x54\x48\x5a\x78\x00\x00\x53\xf8\x59\x58\x00\x00\x4d\x9e\x51\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4d\x00\x00\x5a\xca\x4f\x9d\x00\x00\x63\x62\x4c\x55\x63\x63\x00\x00\x00\x00\x4e\x59\x5b\x83\x00\x00\x4f\x99\x5a\xb5\x57\xa4\x51\x4c\x4a\x79\x00\x00\x00\x00\x56\xf5\x00\x00\x63\x66\x63\x64\x63\x68\x00\x00\x63\x6a\x63\x67\x4b\x6f\x53\xc7\x00\x00\x4b\x9d\x63\x65\x00\x00\x55\xf5\x00\x00\x00\x00\x63\x69\x00\x00\x00\x00\x00\x00\x52\x74\x49\x65\x4e\xa2\x00\x00\x00\x00\x00\x00\x5c\x57\x00\x00\x00\x00", /* 9000 */ "\x57\x6b\x56\x6d\x55\xc9\x56\xd2\x63\x6c\x63\x6b\x52\xe5\x00\x00\x00\x00\x59\x41\x59\x57\x63\x6d\x00\x00\x63\x70\x00\x00\x57\x58\x5b\xef\x63\x6f\x4b\x7d\x00\x00\x57\x5e\x00\x00\x63\x71\x4b\xb9\x00\x00\x00\x00\x57\x48\x4d\x85\x00\x00\x55\xc4\x4a\x71\x56\x79\x5a\xeb\x63\x72\x4c\x8b\x00\x00\x00\x00\x00\x00\x63\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x75\x4a\xfd\x63\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x73\x63\x74\x00\x00\x59\xdc\x00\x00\x00\x00\x51\xde\x49\x66\x00\x00\x5a\x83\x00\x00\x00\x00\x4b\xdc\x56\x8d\x00\x00\x63\x77\x00\x00\x00\x00\x5a\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x8a\x00\x00\x4b\xf3\x63\x7a\x63\x78\x63\x79\x4b\x60\x00\x00\x00\x00\x00\x00\x59\xc4\x63\x7c\x00\x00\x00\x00\x63\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7d\x54\x52\x00\x00\x59\xa2\x00\x00\x00\x00\x63\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe1\x5b\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x81\x5c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x82\x00\x00\x49\x7c", /* 9080 */ "\x59\x9c\x00\x00\x63\x83\x63\x85\x00\x00\x00\x00\x00\x00\x00\x00\x63\x84\x00\x00\x00\x00\x63\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd7\x00\x00\x4b\x6b\x00\x00\x64\x7f\x00\x00\x5d\xf4\x00\x00\x5d\xf7\x00\x00\x5d\xf5\x00\x00\x5d\xf6\x00\x00\x00\x00\x00\x00\x5d\xf9\x58\xce\x52\xc6\x00\x00\x00\x00\x48\xed\x00\x00\x00\x00\x00\x00\x58\xaf\x00\x00\x5d\xf8\x00\x00\x5a\x6a\x4d\xa9\x5e\x42\x54\x92\x00\x00\x5d\xfb\x5d\xfa\x55\x7b\x5d\xfc\x00\x00\x5e\x41\x5c\x7e\x5d\xfd\x51\x7a\x00\x00\x00\x00\x5e\x45\x00\x00\x00\x00\x5a\x95\x00\x00\x00\x00\x5e\x47\x5e\x44\x00\x00\x5e\x48\x00\x00\x00\x00\x4f\x5c\x00\x00\x00\x00\x00\x00\x50\xc8\x5e\x43\x5e\x46\x5b\xa2\x00\x00\x5e\x49\x00\x00\x00\x00\x00\x00\x5e\x4d\x00\x00\x00\x00\x00\x00\x5e\x4e\x5e\x4c\x4d\xc1\x00\x00\x00\x00\x00\x00\x50\x44\x5e\x4b\x00\x00\x00\x00\x00\x00\x5e\x4a\x5a\xc6\x49\xbe\x00\x00\x00\x00\x5e\x4f\x00\x00\x4d\x9a\x00\x00\x5e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5b\x00\x00\x00\x00\x00\x00\x4b\x46\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbb\x5e\x51\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x4b\xf4\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x54\x00\x00\x00\x00\x00\x00\x5e\x53\x5e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x57\x00\x00\x5e\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x59\x00\x00\x00\x00\x5e\x5a\x00\x00\x00\x00\x5a\x6f\x6a\xf9\x54\x96\x5c\x63\x53\x85\x6a\xfb\x6a\xfc\x6a\xfa\x00\x00\x4f\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x58\xee\x00\x00\x00\x00\x4c\x73\x00\x00\x00\x00\x5a\xcc\x56\xa9\x00\x00\x00\x00\x6b\x42\x6b\x41\x4d\xa7\x6a\xfd\x56\x76\x00\x00\x00\x00\x00\x00\x6b\x44\x50\xd1\x00\x00\x4a\x8b\x00\x00\x57\x4a\x6b\x45\x6b\x43\x4f\x54\x6b\x48\x00\x00\x6b\x49\x4f\x6d\x52\x58\x50\x82\x56\x82\x6b\x4a\x00\x00\x00\x00\x00\x00\x6b\x46\x6b\x47\x52\xef", /* 9180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x4c\x00\x00\x4a\xbb\x00\x00\x5c\x8e\x00\x00\x4a\xd6\x6b\x4b\x6b\x4e\x00\x00\x00\x00\x6b\x4d\x6b\x4f\x58\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x71\x54\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x50\x6b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x52\x00\x00\x00\x00\x6b\x53\x6b\x54\x6b\x55\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x57\x6b\x56\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc8\x00\x00\x5a\x74\x55\xcc\x00\x00\x50\xee\x5b\xd7\x59\xaf\x51\x5f\x00\x00\x4f\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9480 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc3\x67\xc4\x67\xc5\x5b\x8c\x4b\xa3\x67\xc7\x67\xc6\x67\xc8\x67\xc9\x54\x45\x67\xca\x67\xcb\x00\x00\x4c\x50\x4b\x97\x67\xcc\x67\xce\x00\x00\x67\xcd\x00\x00\x4c\xc5\x67\xcf\x67\xd0\x67\xd1\x4b\xda\x4a\x4e\x5b\xd2\x52\xc5\x49\x55\x4c\xd5\x67\xd2\x67\xd3\x5a\xbe\x54\x75\x4f\xfa\x57\xd8\x4d\x53\x67\xd5\x67\xd4\x67\xd7\x67\xd6\x53\x45\x67\xd8\x67\xd9\x54\x4e\x67\xda\x54\x4f\x67\xdb\x49\xa6\x67\xdc\x67\xdd\x67\xde\x67\xdf\x67\xe0\x5c\x8b\x67\xe1\x67\xe2\x4e\xd7\x67\xe3\x5a\x6b\x56\xf9\x49\xab\x51\x86\x67\xe4\x54\x46\x52\x4d\x00\x00\x67\xe5\x67\xe6\x67\xe7\x67\xe8\x67\xe9\x67\xea\x67\xeb\x00\x00\x67\xec\x67\xed\x67\xee\x00\x00\x00\x00\x67\xef\x67\xf0\x67\xf1\x67\xf3\x67\xf2\x00\x00\x67\xf4\x57\x4d\x51\xc0\x67\xf5\x67\xf6\x67\xf7\x5b\x41\x67\xf8\x58\x53\x67\xf9\x67\xfa\x00\x00\x67\xfb\x67\xfc\x68\x41\x67\xfd\x68\x42\x4c\xf4\x52\x9b\x68\x43\x68\x44\x4f\x62\x59\xbe\x49\xf8\x68\x45\x68\x46\x68\x47\x59\xf7\x68\x48\x5b\xfc\x68\x49\x53\xcb\x00\x00\x68\x4a\x68\x4b\x51\x54\x68\x4c", /* 9500 */ "\x58\x9b\x56\x99\x68\x4e\x68\x4d\x4a\x9b\x4d\x99\x68\x4f\x68\x50\x58\xe1\x68\x51\x68\x52\x4c\x87\x58\xbe\x68\x53\x68\x54\x68\x55\x54\xf0\x56\xdf\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x5b\x81\x68\x5b\x4a\xec\x52\x4a\x68\x5c\x00\x00\x68\x5d\x68\x5e\x68\x5f\x00\x00\x57\xfc\x68\x60\x51\xdf\x4a\xb7\x5c\x56\x4f\x96\x00\x00\x58\x67\x68\x63\x68\x61\x68\x62\x68\x64\x4b\xa6\x4e\xfb\x4f\xe1\x52\x6c\x68\x65\x68\x66\x00\x00\x68\x67\x68\x6f\x68\x68\x68\x69\x68\x6a\x54\x62\x68\x92\x4b\xcc\x68\x6b\x00\x00\x68\x6c\x68\x6d\x4b\xc5\x52\x5e\x68\x6e\x00\x00\x68\x70\x68\x71\x68\x72\x5b\x93\x00\x00\x68\x73\x52\xf6\x00\x00\x68\x74\x52\xf7\x68\x75\x68\x76\x4c\xe3\x48\xf6\x68\x77\x68\x78\x68\x79\x00\x00\x68\x7a\x68\x7b\x68\x7c\x68\x7d\x00\x00\x68\x7e\x4f\xb4\x68\x82\x68\x7f\x68\x81\x00\x00\x68\x83\x68\x84\x51\x6d\x68\x85\x68\x86\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x50\xd7\x00\x00\x68\x8e\x51\x4d\x68\x8f\x68\x90\x68\x91\x00\x00\x00\x00\x58\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x44", /* 9580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x65\x62\x65\x55\x61\x62\x66\x00\x00\x49\x75\x57\xc9\x4a\xb2\x54\xf1\x62\x67\x58\x70\x62\x68\x4e\xe3\x62\x69\x62\x6a\x52\x66\x5b\x42\x52\xd5\x4d\x8c\x57\xc4\x62\x6b\x52\x97\x62\x6c\x00\x00", /* 9600 */ "\x4c\x47\x4c\xf2\x4d\xd1\x62\x6d\x62\x6e\x5a\xc3\x62\x6f\x00\x00\x62\x70\x59\x6b\x62\x71\x62\x72\x62\x73\x62\x74\x59\x76\x62\x75\x49\xfa\x50\xba\x62\x76\x00\x00\x50\xaa\x62\x77\x62\x78\x62\x79\x00\x00\x62\x7a\x62\x7b\x00\x00\x4c\xb6\x5d\xe1\x00\x00\x4b\xd2\x00\x00\x5d\xe3\x5d\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe5\x00\x00\x00\x00\x00\x00\x54\xed\x00\x00\x00\x00\x5d\xe4\x4c\x60\x59\x95\x59\xf4\x5b\x94\x4f\x77\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x89\x5d\xe7\x5d\xe6\x00\x00\x48\xa1\x57\x73\x00\x00\x5d\xe8\x00\x00\x4c\xbc\x4e\xc9\x51\xbc\x51\xa3\x4a\x62\x5d\xe9\x00\x00\x51\xa9\x52\xaf\x4f\x55\x00\x00\x00\x00\x58\x7e\x00\x00\x00\x00\x00\x00\x5d\xea\x55\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7d\x00\x00\x00\x00\x00\x00\x5d\xeb\x00\x00\x4b\xb7\x5a\xb9\x00\x00\x4a\x9e\x00\x00\x00\x00\x5d\xec\x5a\xc8\x58\x75\x53\x84\x00\x00\x5d\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xee\x00\x00\x5d\xef\x51\x8b\x56\xd4\x58\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x88\x51\xa0\x00\x00\x5d\xf0\x00\x00\x00\x00\x56\x86\x00\x00\x5d\xf1\x00\x00\x56\x87\x59\xfd\x00\x00\x00\x00\x00\x00\x4c\xf3\x00\x00\x00\x00\x5d\xf2\x48\xae\x58\x56\x00\x00\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf3\x00\x00\x00\x00\x62\x64\x00\x00\x00\x00\x51\x45\x00\x00\x00\x00\x6b\xbe\x00\x00\x00\x00\x6b\xbf\x6b\xc0\x52\xd0\x00\x00\x54\xb7\x59\x84\x00\x00\x00\x00\x58\xda\x59\x65\x4e\xae\x4d\x6d\x00\x00\x68\x95\x00\x00\x00\x00\x4a\xc5\x5a\x5a\x6b\xc1\x4a\x9c\x00\x00\x00\x00\x6b\xc2\x00\x00\x00\x00\x4b\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8b\x6b\xa6\x59\x49\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa8\x00\x00\x00\x00\x00\x00\x6b\xa7\x00\x00\x00\x00\x51\x84\x50\xd6\x00\x00\x49\x42\x00\x00\x00\x00\x00\x00\x00\x00\x57\xec\x00\x00", /* 9700 */ "\x58\xe7\x6b\xaa\x00\x00\x00\x00\x58\x97\x00\x00\x6b\xa9\x5b\x91\x6b\xab\x52\x59\x00\x00\x00\x00\x00\x00\x4e\x95\x6b\xad\x6b\xac\x00\x00\x00\x00\x00\x00\x52\xdd\x00\x00\x00\x00\x51\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x4a\x00\x00\x58\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xae\x00\x00\x00\x00\x6b\xaf\x00\x00\x00\x00\x6b\xb0\x00\x00\x51\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd3\x53\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x81\x6b\xa5\x00\x00\x00\x00\x4f\xb7\x00\x00\x00\x00\x4f\xb1\x00\x00\x4b\x86\x00\x00\x00\x00\x4c\x67\x00\x00\x50\x5f\x52\x72\x52\x87\x00\x00\x00\x00\x5c\xcb\x00\x00\x00\x00\x00\x00\x4c\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9a\x59\x45\x00\x00\x48\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x50\x00\x00\x00\x00\x00\x00", /* 9780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xab\x00\x00\x48\xaf\x00\x00\x00\x00\x00\x00\x6c\x52\x6c\x53\x00\x00\x6c\x54\x00\x00\x00\x00\x00\x00\x54\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xce\x00\x00\x00\x00\x6c\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x56\x00\x00\x49\x7e\x00\x00\x6c\x55\x00\x00\x00\x00\x6c\x58\x00\x00\x6c\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa3\x54\xcc\x00\x00\x4d\xaa\x64\xb7\x64\xb8\x64\xb9\x4f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf3\x00\x00\x5a\xce\x55\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb2\x4b\xa4\x54\x8b\x69\x9d\x58\x8f\x56\x53\x58\xea\x64\x90\x57\x88\x4d\x6b\x4b\xd8", /* 9880 */ "\x69\x9e\x48\xe3\x56\x6c\x69\x9f\x5a\xa3\x51\xac\x51\x8d\x53\xc3\x4f\xb0\x69\xa0\x4e\xd4\x00\x00\x69\xa1\x69\xa2\x00\x00\x69\xa3\x59\xc2\x53\xb4\x00\x00\x57\x67\x69\xa4\x00\x00\x5a\x51\x50\x65\x56\xe1\x00\x00\x69\xa5\x69\xa6\x59\x75\x4b\xed\x69\xa7\x69\xa8\x4b\x7f\x69\xa9\x69\xaa\x00\x00\x49\xfb\x69\xab\x69\xac\x54\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x88\x00\x00\x00\x00\x66\xa8\x66\xa9\x66\xaa\x00\x00\x66\xab\x00\x00\x00\x00\x53\xad\x66\xac\x66\xad\x00\x00\x00\x00\x00\x00\x4c\x69\x55\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb7\x6c\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x70\x00\x00\x00\x00\x49\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x73\x6c\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xba\x00\x00\x4e\xa1\x00\x00\x61\xbb\x61\xbc\x61\xbd\x61\xbe\x61\xbf\x61\xc0\x4c\x59\x59\xfa\x4f\x44\x55\xcd\x49\x45\x56\x67\x00\x00\x61\xc1\x4b\xfb\x54\xc3\x61\xc2\x00\x00\x00\x00\x4f\x68\x00\x00\x49\x9e\x61\xc3\x00\x00\x4b\xf5", /* 9980 */ "\x61\xc4\x52\xd8\x00\x00\x00\x00\x61\xc5\x58\x7a\x4d\x7d\x61\xc6\x50\xa0\x00\x00\x61\xc7\x49\xf5\x00\x00\x61\xc8\x00\x00\x51\x94\x61\xc9\x61\xca\x51\xf7\x61\xcb\x61\xcc\x61\xcd\x55\xd6\x5c\xb7\x5d\x86\x58\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa4\x00\x00\x00\x00\x5e\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xec\x5a\xa5\x57\x74\x59\x51\x4a\x7b\x54\x9e\x00\x00\x49\xb4\x51\xbe\x63\xdf\x55\xba\x63\xe0\x63\xe1\x4f\xd3\x63\xe2\x5c\x44\x57\x75\x63\xe4\x4e\xdc\x63\xe3", /* 9a80 */ "\x63\xe5\x63\xe6\x51\xed\x00\x00\x4f\x5e\x63\xe7\x51\xe5\x4d\xa6\x63\xe8\x00\x00\x63\xe9\x4a\x72\x59\x8a\x00\x00\x00\x00\x50\x45\x63\xea\x53\xee\x63\xeb\x63\xec\x00\x00\x00\x00\x63\xed\x53\xac\x63\xee\x00\x00\x55\x47\x63\xef\x63\xf0\x63\xf1\x63\x59\x63\xf2\x63\xf3\x51\xe1\x63\xf4\x63\xf5\x5b\xe7\x63\xf6\x00\x00\x63\xf7\x4d\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x5b\x6c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x5e\x6c\x5c\x4d\xa0\x00\x00\x6c\x5f\x00\x00\x6c\x60\x00\x00\x00\x00\x00\x00\x6c\x62\x6c\x61\x6c\x64\x00\x00\x00\x00\x6c\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x65\x6c\x66\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x67\x00\x00\x56\x89\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x74\x00\x00\x6c\x75\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x76\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x78\x00\x00\x6c\x7a\x00\x00\x6c\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7b\x00\x00\x6c\x79\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x5c\x77\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7d\x00\x00\x00\x00\x00\x00\x6c\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7f\x00\x00\x00\x00\x00\x00\x6c\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6b\x00\x00\x00\x00\x5c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x98\x4d\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9e\x4e\x8b\x6c\x69\x53\xc6\x6c\x68\x00\x00\x6c\x6a\x6c\x6c\x6c\x6b\x00\x00\x00\x00\x00\x00\x6c\x6d\x00\x00\x57\xb9\x00\x00\x6c\x6e\x00\x00\x00\x00\x52\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b80 */ NULL, /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x84\x00\x00\x00\x00\x6b\xce", /* 9c80 */ "\x00\x00\x51\xb2\x6b\xcf\x00\x00\x00\x00\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\x00\x00\x00\x00\x6b\xd5\x00\x00\x49\x4b\x6b\xd6\x00\x00\x6b\xd7\x6b\xd8\x6b\xd9\x00\x00\x6b\xda\x6b\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xdc\x6b\xdd\x58\x6a\x00\x00\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x50\xef\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x00\x00\x6b\xe9\x00\x00\x6b\xea\x6b\xeb\x00\x00\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x4f\xa7\x00\x00\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xf9\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\x00\x00\x00\x00\x6b\xfc\x6b\xfd\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\x00\x00\x00\x00\x6c\x46\x6c\x47\x6c\x48\x49\x8f\x6c\x49\x6c\x4a\x6c\x4b\x00\x00\x00\x00\x6c\x4c\x6c\x4d\x51\x7b\x6c\x4e\x00\x00\x00\x00\x6c\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf0\x68\xae\x4e\xa5\x68\xaf\x52\x9a\x00\x00\x53\x58\x59\x5b\x00\x00\x68\xb0\x68\xb1\x68\xb2\x68\xb3\x68\xb4\x59\x5c\x00\x00\x59\x8d\x00\x00\x68\xb6\x68\xb5\x5a\xa6\x00\x00\x57\x72\x68\xb7\x68\xb9\x68\xb8\x68\xba\x68\xbb\x00\x00\x00\x00\x4c\xea\x68\xbc\x4d\xe7\x00\x00\x68\xbd\x68\xbe\x4f\xe8\x68\xbf\x4b\xeb\x68\xc0\x68\xc1\x68\xc2\x68\xc3\x54\xb4\x68\xc4\x68\xc5\x00\x00\x68\xc6\x53\x95\x00\x00\x68\xc7\x00\x00\x00\x00\x00\x00\x68\xc8\x00\x00\x68\xc9\x6c\x5d\x00\x00\x68\xca\x68\xcb\x68\xcc\x00\x00\x68\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x68\xce\x4d\xd6\x00\x00\x68\xcf\x68\xd0\x68\xd1\x68\xd2\x68\xd3\x68\xd4\x68\xd5\x68\xd7\x00\x00\x00\x00\x5a\x45\x68\xd6\x00\x00\x68\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5a\x51\xb8", /* 9e80 */ "\x00\x00\x00\x00\x6c\x85\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x86\x6c\x87\x00\x00\x00\x00\x6c\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x89\x51\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x8b\x00\x00\x6c\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xef\x00\x00\x00\x00\x00\x00\x6a\xee\x00\x00\x00\x00\x51\xe8\x00\x00\x6c\x82\x6c\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x85\x00\x00\x00\x00\x00\x00\x55\xf1\x50\xe7\x68\xa3\x00\x00\x4d\xd9\x00\x00\x00\x00\x54\x4d\x00\x00\x00\x00\x00\x00\x52\xab\x00\x00\x00\x00\x6c\x8d\x6c\x8e\x6c\x8f\x00\x00\x6c\x91\x6c\x90\x00\x00\x6c\x92\x00\x00\x00\x00\x6c\x95\x00\x00\x6c\x94\x00\x00\x6c\x93\x6c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x8a\x00\x00\x67\x8b\x67\x8c\x00\x00\x6b\xbb\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xbc\x00\x00\x6b\xbd\x4b\xa5\x00\x00\x5c\xbd\x00\x00\x00\x00\x4d\x64\x00\x00\x00\x00\x00\x00\x5c\xba\x00\x00\x5e\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf2\x00\x00\x6c\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x99\x00\x00\x00\x00\x6c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9c\x00\x00\x6c\x9b\x00\x00\x49\x67\x00\x00\x6c\x9d\x6c\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x66\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7d", /* 9f80 */ "\x6b\xb2\x00\x00\x00\x00\x6b\xb3\x51\x85\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x54\xa2\x6b\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9b\x4d\x48\x67\x89\x00\x00\x00\x00\x00\x00\x4d\x8b\x5d\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1", /* e080 */ "\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85", /* e100 */ "\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48", /* e180 */ "\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9", /* e200 */ "\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d", /* e280 */ "\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50", /* e300 */ "\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1", /* e380 */ "\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95", /* e400 */ "\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58", /* e480 */ "\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9", /* e500 */ "\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d", /* e580 */ "\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60", /* e600 */ "\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1", /* e680 */ "\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5", /* e700 */ "\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5b\x44\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-837_P100-2000 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x21\x6a\x21\x6b\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\xf8\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x15\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x64\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x65\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x16\x30\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x36\x22\x27\x22\x28\x22\x11\x22\x0f\x22\x2a\x22\x29\x22\x08\x22\x37\x22\x1a\x22\xa5\x22\x25\x22\x20\x23\x12\x22\x99\x22\x2b\x22\x2e\x22\x61\x22\x4c\x22\x48\x22\x3d\x22\x1d\x00\x00\x22\x6e\x22\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x20\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x88\x24\x89\x24\x8a\x24\x8b\x24\x8c\x24\x8d\x24\x8e\x24\x8f\x24\x90\x24\x91\x24\x92\x24\x93\x24\x94\x24\x95\x24\x96\x24\x97\x24\x98\x24\x99\x24\x9a\x24\x9b\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x24\x7e\x24\x7f\x24\x80\x24\x81\x24\x82\x24\x83\x24\x84\x24\x85\x24\x86\x24\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x20\x32\x21\x32\x22\x32\x23\x32\x24\x32\x25\x32\x26\x32\x27\x32\x28\x32\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xe1\x01\xce\x00\xe0\x01\x13\x00\xe9\x01\x1b\x00\xe8\x01\x2b\x00\xed\x01\xd0\x00\xec\x01\x4d\x00\xf3\x01\xd2\x00\xf2\x01\x6b\x00\xfa\x01\xd4\x00\xf9\x01\xd6\x01\xd8\x01\xda\x01\xdc\x00\xfc\x00\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f", /* 4680 */ "\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x25\x01\x25\x02\x25\x03\x25\x04\x25\x05\x25\x06\x25\x07\x25\x08\x25\x09\x25\x0a\x25\x0b\x25\x0c\x25\x0d\x25\x0e\x25\x0f\x25\x10\x25\x11\x25\x12\x25\x13\x25\x14\x25\x15\x25\x16\x25\x17\x25\x18\x25\x19\x25\x1a\x25\x1b\x25\x1c\x25\x1d\x25\x1e\x25\x1f\x25\x20\x25\x21\x25\x22\x25\x23\x25\x24\x25\x25\x25\x26\x25\x27\x25\x28\x25\x29\x25\x2a\x25\x2b\x25\x2c\x25\x2d\x25\x2e\x25\x2f\x25\x30\x25\x31\x25\x32\x25\x33\x25\x34\x25\x35\x25\x36\x25\x37\x25\x38\x25\x39\x25\x3a\x25\x3b\x25\x3c\x25\x3d\x25\x3e\x25\x3f\x25\x40\x25\x41\x25\x42\x25\x43\x25\x44\x25\x45\x25\x46\x25\x47\x25\x48\x25\x49\x25\x4a\x25\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4a\x96\x3f\x57\xc3\x63\x28\x54\xce\x55\x09\x54\xc0\x76\x91\x76\x4c\x85\x3c\x77\xee\x82\x7e\x78\x8d\x72\x31\x96\x98\x97\x8d\x6c\x28\x5b\x89\x4f\xfa\x63\x09\x66\x97\x5c\xb8\x80\xfa\x68\x48\x80\xae\x66\x02\x76\xce\x51\xf9\x65\x56\x71\xac\x7f\xf1\x88\x84\x50\xb2\x59\x65\x61\xca\x6f\xb3\x82\xad\x63\x4c\x62\x52\x53\xed\x54\x27\x7b\x06\x51\x6b\x75\xa4\x5d\xf4\x62\xd4\x8d\xcb\x97\x76\x62\x8a\x80\x19\x57\x5d\x97\x38\x7f\x62\x72\x38\x76\x7d\x67\xcf\x76\x7e\x64\x46\x4f\x70\x8d\x25\x62\xdc\x7a\x17\x65\x91\x73\xed\x64\x2c\x62\x73\x82\x2c\x98\x81\x67\x7f\x72\x48\x62\x6e\x62\xcc\x4f\x34\x74\xe3\x53\x4a\x52\x9e\x7e\xca\x90\xa6\x5e\x2e\x68\x86\x69\x9c\x81\x80\x7e\xd1\x68\xd2\x78\xc5\x86\x8c\x95\x51\x50\x8d\x8c\x24\x82\xde\x80\xde\x53\x05\x89\x12\x52\x65\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x84\x96\xf9\x4f\xdd\x58\x21\x99\x71\x5b\x9d\x62\xb1\x62\xa5\x66\xb4\x8c\x79\x9c\x8d\x72\x06\x67\x6f\x78\x91\x60\xb2\x53\x51\x53\x17\x8f\x88\x80\xcc\x8d\x1d\x94\xa1\x50\x0d\x72\xc8\x59\x07\x60\xeb\x71\x19\x88\xab\x59\x54\x82\xef\x67\x2c\x7b\x28\x5d\x29\x7e\xf7\x75\x2d\x6c\xf5\x8e\x66\x8f\xf8\x90\x3c\x9f\x3b\x6b\xd4\x91\x19\x7b\x14\x5f\x7c\x78\xa7\x84\xd6\x85\x3d\x6b\xd5\x6b\xd9\x6b\xd6\x5e\x01\x5e\x87\x75\xf9\x95\xed\x65\x5d\x5f\x0a\x5f\xc5\x8f\x9f\x58\xc1\x81\xc2\x90\x7f\x96\x5b\x97\xad\x8f\xb9", /* 4980 */ "\x00\x00\x7f\x16\x8d\x2c\x62\x41\x4f\xbf\x53\xd8\x53\x5e\x8f\xa8\x8f\xa9\x8f\xab\x90\x4d\x68\x07\x5f\x6a\x81\x98\x88\x68\x9c\xd6\x61\x8b\x52\x2b\x76\x2a\x5f\x6c\x65\x8c\x6f\xd2\x6e\xe8\x5b\xbe\x64\x48\x51\x75\x51\xb0\x67\xc4\x4e\x19\x79\xc9\x99\x7c\x70\xb3\x75\xc5\x5e\x76\x73\xbb\x83\xe0\x64\xad\x62\xe8\x94\xb5\x6c\xe2\x53\x5a\x52\xc3\x64\x0f\x94\xc2\x7b\x94\x4f\x2f\x5e\x1b\x82\x36\x81\x16\x81\x8a\x6e\x24\x6c\xca\x9a\x73\x63\x55\x53\x5c\x54\xfa\x88\x65\x57\xe0\x4e\x0d\x5e\x03\x6b\x65\x7c\x3f\x90\xe8\x60\x16\x64\xe6\x73\x1c\x88\xc1\x67\x50\x62\x4d\x8d\x22\x77\x6c\x8e\x29\x91\xc7\x5f\x69\x83\xdc\x85\x21\x99\x10\x53\xc2\x86\x95\x6b\x8b\x60\xed\x60\xe8\x70\x7f\x82\xcd\x82\x31\x4e\xd3\x6c\xa7\x85\xcf\x64\xcd\x7c\xd9\x69\xfd\x66\xf9\x83\x49\x53\x95\x7b\x56\x4f\xa7\x51\x8c\x6d\x4b\x5c\x42\x8e\x6d\x63\xd2\x53\xc9\x83\x2c\x83\x36\x67\xe5\x78\xb4\x64\x3d\x5b\xdf\x5c\x94\x5d\xee\x8b\xe7\x62\xc6\x67\xf4\x8c\x7a\x64\x00\x63\xba\x87\x49\x99\x8b\x8c\x17\x7f\x20\x94\xf2\x4e\xa7\x96\x10\x98\xa4\x66\x0c\x73\x16\x00\x00\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x3a\x5c\x1d\x5e\x38\x95\x7f\x50\x7f\x80\xa0\x53\x82\x65\x5e\x75\x45\x55\x31\x50\x21\x8d\x85\x62\x84\x94\x9e\x67\x1d\x56\x32\x6f\x6e\x5d\xe2\x54\x35\x70\x92\x8f\x66\x62\x6f\x64\xa4\x63\xa3\x5f\x7b\x6f\x88\x90\xf4\x81\xe3\x8f\xb0\x5c\x18\x66\x68\x5f\xf1\x6c\x89\x96\x48\x8d\x81\x88\x6c\x64\x91\x79\xf0\x57\xce\x6a\x59\x62\x10\x54\x48\x4e\x58\x7a\x0b\x60\xe9\x6f\x84\x8b\xda\x62\x7f\x90\x1e\x9a\x8b\x79\xe4\x54\x03\x75\xf4\x63\x01\x53\x19\x6c\x60\x8f\xdf\x5f\x1b\x9a\x70\x80\x3b\x9f\x7f\x4f\x88\x5c\x3a", /* 4a80 */ "\x00\x00\x8d\x64\x7f\xc5\x65\xa5\x70\xbd\x51\x45\x51\xb2\x86\x6b\x5d\x07\x5b\xa0\x62\xbd\x91\x6c\x75\x74\x8e\x0c\x7a\x20\x61\x01\x7b\x79\x4e\xc7\x7e\xf8\x77\x85\x4e\x11\x81\xed\x52\x1d\x51\xfa\x6a\x71\x53\xa8\x8e\x87\x95\x04\x96\xcf\x6e\xc1\x96\x64\x69\x5a\x78\x40\x50\xa8\x77\xd7\x64\x10\x89\xe6\x59\x04\x63\xe3\x5d\xdd\x7a\x7f\x69\x3d\x4f\x20\x82\x39\x55\x98\x4e\x32\x75\xae\x7a\x97\x5e\x62\x5e\x8a\x95\xef\x52\x1b\x54\x39\x70\x8a\x63\x76\x95\x24\x57\x82\x66\x25\x69\x3f\x91\x87\x55\x07\x6d\xf3\x7e\xaf\x88\x22\x62\x33\x7e\xf0\x75\xb5\x83\x28\x78\xc1\x96\xcc\x8f\x9e\x61\x48\x74\xf7\x8b\xcd\x6b\x64\x52\x3a\x8d\x50\x6b\x21\x80\x6a\x84\x71\x56\xf1\x53\x06\x4e\xce\x4e\x1b\x51\xd1\x7c\x97\x91\x8b\x7c\x07\x4f\xc3\x8e\x7f\x7b\xe1\x7a\x9c\x64\x67\x5d\x14\x50\xac\x81\x06\x76\x01\x7c\xb9\x6d\xec\x7f\xe0\x67\x51\x5b\x58\x5b\xf8\x78\xcb\x64\xae\x64\x13\x63\xaa\x63\x2b\x95\x19\x64\x2d\x8f\xbe\x7b\x54\x76\x29\x62\x53\x59\x27\x54\x46\x6b\x79\x50\xa3\x62\x34\x5e\x26\x6b\x86\x4e\xe3\x8d\x37\x88\x8b\x5f\x85\x90\x2e\x00\x00\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x20\x80\x3d\x62\xc5\x4e\x39\x53\x55\x90\xf8\x63\xb8\x80\xc6\x65\xe6\x6c\x2e\x4f\x46\x60\xee\x6d\xe1\x8b\xde\x5f\x39\x86\xcb\x5f\x53\x63\x21\x51\x5a\x83\x61\x68\x63\x52\x00\x63\x63\x8e\x48\x50\x12\x5c\x9b\x79\x77\x5b\xfc\x52\x30\x7a\x3b\x60\xbc\x90\x53\x76\xd7\x5f\xb7\x5f\x97\x76\x84\x8e\x6c\x70\x6f\x76\x7b\x7b\x49\x77\xaa\x51\xf3\x90\x93\x58\x24\x4f\x4e\x6e\xf4\x8f\xea\x65\x4c\x7b\x1b\x72\xc4\x6d\xa4\x7f\xdf\x5a\xe1\x62\xb5\x5e\x95\x57\x30\x84\x82\x7b\x2c\x5e\x1d\x5f\x1f\x90\x12\x7f\x14\x98\xa0", /* 4b80 */ "\x00\x00\x63\x82\x6e\xc7\x78\x98\x70\xb9\x51\x78\x97\x5b\x57\xab\x75\x35\x4f\x43\x75\x38\x5e\x97\x60\xe6\x59\x60\x6d\xc0\x6b\xbf\x78\x89\x53\xfc\x96\xd5\x51\xcb\x52\x01\x63\x89\x54\x0a\x94\x93\x8c\x03\x8d\xcc\x72\x39\x78\x9f\x87\x76\x8f\xed\x8c\x0d\x53\xe0\x4e\x01\x76\xef\x53\xee\x94\x89\x98\x76\x9f\x0e\x95\x2d\x5b\x9a\x8b\xa2\x4e\x22\x4e\x1c\x51\xac\x84\x63\x61\xc2\x52\xa8\x68\x0b\x4f\x97\x60\x6b\x51\xbb\x6d\x1e\x51\x5c\x62\x96\x65\x97\x96\x61\x8c\x46\x90\x17\x75\xd8\x90\xfd\x77\x63\x6b\xd2\x72\x8a\x72\xec\x8b\xfb\x58\x35\x77\x79\x8d\x4c\x67\x5c\x95\x40\x80\x9a\x5e\xa6\x6e\x21\x59\x92\x7a\xef\x77\xed\x95\x3b\x6b\xb5\x65\xad\x7f\x0e\x58\x06\x51\x51\x96\x1f\x5b\xf9\x58\xa9\x54\x28\x8e\x72\x65\x66\x98\x7f\x56\xe4\x94\x9d\x76\xfe\x90\x41\x63\x87\x54\xc6\x59\x1a\x59\x3a\x57\x9b\x8e\xb2\x67\x35\x8d\xfa\x82\x35\x52\x41\x60\xf0\x58\x15\x86\xfe\x5c\xe8\x9e\x45\x4f\xc4\x98\x9d\x8b\xb9\x5a\x25\x60\x76\x53\x84\x62\x7c\x90\x4f\x91\x02\x99\x7f\x60\x69\x80\x0c\x51\x3f\x80\x33\x5c\x14\x99\x75\x6d\x31\x4e\x8c\x00\x00\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x30\x53\xd1\x7f\x5a\x7b\x4f\x4f\x10\x4e\x4f\x96\x00\x6c\xd5\x73\xd0\x85\xe9\x5e\x06\x75\x6a\x7f\xfb\x6a\x0a\x77\xfe\x94\x92\x7e\x41\x51\xe1\x70\xe6\x53\xcd\x8f\xd4\x83\x03\x8d\x29\x72\xaf\x99\x6d\x6c\xdb\x57\x4a\x82\xb3\x65\xb9\x80\xaa\x62\x3f\x96\x32\x59\xa8\x4e\xff\x8b\xbf\x7e\xba\x65\x3e\x83\xf2\x97\x5e\x55\x61\x98\xde\x80\xa5\x53\x2a\x8b\xfd\x54\x20\x80\xba\x5e\x9f\x6c\xb8\x8d\x39\x82\xac\x91\x5a\x54\x29\x6c\x1b\x52\x06\x7e\xb7\x57\x5f\x71\x1a\x6c\x7e\x7c\x89\x59\x4b\x4e\xfd\x5f\xff\x61\x24", /* 4c80 */ "\x00\x00\x7c\xaa\x4e\x30\x5c\x01\x67\xab\x87\x02\x5c\xf0\x95\x0b\x98\xce\x75\xaf\x70\xfd\x90\x22\x51\xaf\x7f\x1d\x8b\xbd\x59\x49\x51\xe4\x4f\x5b\x54\x26\x59\x2b\x65\x77\x80\xa4\x5b\x75\x62\x76\x62\xc2\x8f\x90\x5e\x45\x6c\x1f\x7b\x26\x4f\x0f\x4f\xd8\x67\x0d\x6d\x6e\x6d\xaa\x79\x8f\x88\xb1\x5f\x17\x75\x2b\x62\x9a\x8f\x85\x4f\xef\x91\xdc\x65\xa7\x81\x2f\x81\x51\x5e\x9c\x81\x50\x8d\x74\x52\x6f\x89\x86\x8d\x4b\x59\x0d\x50\x85\x4e\xd8\x96\x1c\x72\x36\x81\x79\x8d\x1f\x5b\xcc\x8b\xa3\x96\x44\x59\x87\x7f\x1a\x54\x90\x56\x76\x56\x0e\x8b\xe5\x65\x39\x69\x82\x94\x99\x76\xd6\x6e\x89\x5e\x72\x75\x18\x67\x46\x67\xd1\x7a\xff\x80\x9d\x8d\x76\x61\x1f\x79\xc6\x65\x62\x8d\x63\x51\x88\x52\x1a\x94\xa2\x7f\x38\x80\x9b\x7e\xb2\x5c\x97\x6e\x2f\x67\x60\x7b\xd9\x76\x8b\x9a\xd8\x81\x8f\x7f\x94\x7c\xd5\x64\x1e\x95\x50\x7a\x3f\x54\x4a\x54\xe5\x6b\x4c\x64\x01\x62\x08\x9e\x3d\x80\xf3\x75\x99\x52\x72\x97\x69\x84\x5b\x68\x3c\x86\xe4\x96\x01\x96\x94\x94\xec\x4e\x2a\x54\x04\x7e\xd9\x68\x39\x8d\xdf\x80\x15\x66\xf4\x5e\x9a\x7f\xb9\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x80\x3f\x68\x97\x5d\xe5\x65\x3b\x52\x9f\x60\x6d\x9f\x9a\x4f\x9b\x8e\xac\x51\x6c\x5b\xab\x5f\x13\x5d\xe9\x6c\x5e\x62\xf1\x8d\x21\x51\x71\x94\xa9\x52\xfe\x6c\x9f\x82\xdf\x72\xd7\x57\xa2\x67\x84\x8d\x2d\x59\x1f\x8f\x9c\x83\xc7\x54\x95\x7b\x8d\x4f\x30\x6c\xbd\x5b\x64\x59\xd1\x9f\x13\x53\xe4\x86\xca\x9a\xa8\x8c\x37\x80\xa1\x65\x45\x98\x7e\x56\xfa\x96\xc7\x52\x2e\x74\xdc\x52\x50\x5b\xe1\x63\x02\x89\x02\x4e\x56\x62\xd0\x60\x2a\x68\xfa\x51\x73\x5b\x98\x51\xa0\x89\xc2\x7b\xa1\x99\x86\x7f\x50\x60\xef", /* 4d80 */ "\x00\x00\x70\x4c\x8d\x2f\x51\x49\x5e\x7f\x90\x1b\x74\x70\x89\xc4\x57\x2d\x78\x45\x5f\x52\x9f\x9f\x95\xfa\x8f\x68\x9b\x3c\x8b\xe1\x76\x78\x68\x42\x67\xdc\x8d\xea\x8d\x35\x52\x3d\x8f\x8a\x6e\xda\x68\xcd\x95\x05\x90\xed\x56\xfd\x67\x9c\x88\xf9\x8f\xc7\x54\xc8\x9a\xb8\x5b\x69\x6d\x77\x6c\x26\x4e\xa5\x5b\xb3\x9a\x87\x91\x63\x61\xa8\x90\xaf\x97\xe9\x54\x2b\x6d\xb5\x5b\xd2\x51\xfd\x55\x8a\x7f\x55\x7f\xf0\x64\xbc\x63\x4d\x65\xf1\x61\xbe\x60\x8d\x71\x0a\x6c\x57\x6c\x49\x59\x2f\x67\x6d\x82\x2a\x58\xd5\x56\x8e\x8c\x6a\x6b\xeb\x90\xdd\x59\x7d\x80\x17\x53\xf7\x6d\x69\x54\x75\x55\x9d\x83\x77\x83\xcf\x68\x38\x79\xbe\x54\x8c\x4f\x55\x54\x08\x76\xd2\x8c\x89\x96\x02\x6c\xb3\x6d\xb8\x8d\x6b\x89\x10\x9e\x64\x8d\x3a\x56\x3f\x9e\xd1\x75\xd5\x5f\x88\x72\xe0\x60\x68\x54\xfc\x4e\xa8\x6a\x2a\x88\x61\x60\x52\x8f\x70\x54\xc4\x70\xd8\x86\x79\x9e\x3f\x6d\x2a\x5b\x8f\x5f\x18\x7e\xa2\x55\x89\x4f\xaf\x73\x34\x54\x3c\x53\x9a\x50\x19\x54\x0e\x54\x7c\x4e\x4e\x5f\xfd\x74\x5a\x58\xf6\x84\x6b\x80\xe1\x87\x74\x72\xd0\x7c\xca\x6e\x56\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x27\x86\x4e\x55\x2c\x62\xa4\x4e\x92\x6c\xaa\x62\x37\x82\xb1\x54\xd7\x53\x4e\x73\x3e\x6e\xd1\x75\x3b\x52\x12\x53\x16\x8b\xdd\x69\xd0\x5f\x8a\x60\x00\x6d\xee\x57\x4f\x6b\x22\x73\xaf\x68\x53\x8f\xd8\x7f\x13\x63\x62\x60\xa3\x55\x24\x75\xea\x8c\x62\x71\x15\x6d\xa3\x5b\xa6\x5e\x7b\x83\x52\x61\x4c\x9e\xc4\x78\xfa\x87\x57\x7c\x27\x76\x87\x51\xf0\x60\xf6\x71\x4c\x66\x43\x5e\x4c\x60\x4d\x8c\x0e\x70\x70\x63\x25\x8f\x89\x5f\xbd\x60\x62\x86\xd4\x56\xde\x6b\xc1\x60\x94\x61\x67\x53\x49\x60\xe0\x66\x66\x8d\x3f", /* 4e80 */ "\x00\x00\x79\xfd\x4f\x1a\x70\xe9\x6c\x47\x8b\xb3\x8b\xf2\x7e\xd8\x83\x64\x66\x0f\x5a\x5a\x9b\x42\x6d\x51\x6d\xf7\x8c\x41\x6d\x3b\x4f\x19\x70\x6b\x83\xb7\x62\x16\x60\xd1\x97\x0d\x8d\x27\x79\x78\x51\xfb\x57\x3e\x57\xfa\x67\x3a\x75\x78\x7a\x3d\x79\xef\x7b\x95\x80\x8c\x99\x65\x8f\xf9\x6f\xc0\x8b\xa5\x9e\x21\x59\xec\x7e\xe9\x7f\x09\x54\x09\x67\x81\x68\xd8\x8f\x91\x7c\x4d\x96\xc6\x53\xca\x60\x25\x75\xbe\x6c\x72\x53\x73\x5a\xc9\x7e\xa7\x63\x24\x51\xe0\x81\x0a\x5d\xf1\x84\xdf\x62\x80\x51\x80\x5b\x63\x4f\x0e\x79\x6d\x52\x42\x60\xb8\x6d\x4e\x5b\xc4\x5b\xc2\x8b\xa1\x8b\xb0\x65\xe2\x5f\xcc\x96\x45\x59\x93\x7e\xe7\x7e\xaa\x56\x09\x67\xb7\x59\x39\x4f\x73\x5b\xb6\x52\xa0\x83\x5a\x98\x8a\x8d\x3e\x75\x32\x94\xbe\x50\x47\x7a\x3c\x4e\xf7\x67\xb6\x9a\x7e\x5a\xc1\x6b\x7c\x76\xd1\x57\x5a\x5c\x16\x7b\x3a\x95\xf4\x71\x4e\x51\x7c\x80\xa9\x82\x70\x59\x78\x7f\x04\x83\x27\x68\xc0\x67\xec\x78\xb1\x78\x77\x62\xe3\x63\x61\x7b\x80\x4f\xed\x52\x6a\x51\xcf\x83\x50\x69\xdb\x92\x74\x8d\xf5\x8d\x31\x89\xc1\x95\x2e\x7b\xad\x4e\xf6\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x65\x82\x30\x52\x51\x99\x6f\x6e\x10\x6e\x85\x6d\xa7\x5e\xfa\x50\xf5\x59\xdc\x5c\x06\x6d\x46\x6c\x5f\x75\x86\x84\x8b\x68\x68\x59\x56\x8b\xb2\x53\x20\x91\x71\x96\x4d\x85\x49\x69\x12\x79\x01\x71\x26\x80\xf6\x4e\xa4\x90\xca\x6d\x47\x9a\x84\x5a\x07\x56\xbc\x64\x05\x94\xf0\x77\xeb\x4f\xa5\x81\x1a\x72\xe1\x89\xd2\x99\x7a\x7f\x34\x7e\xde\x52\x7f\x65\x59\x91\x75\x8f\x7f\x8f\x83\x53\xeb\x7a\x96\x63\xed\x63\xa5\x76\x86\x79\xf8\x88\x57\x96\x36\x62\x2a\x52\xab\x82\x82\x68\x54\x67\x70\x63\x77\x77\x6b\x7a\xed", /* 4f80 */ "\x00\x00\x6d\x01\x7e\xd3\x89\xe3\x59\xd0\x62\x12\x85\xc9\x82\xa5\x75\x4c\x50\x1f\x4e\xcb\x75\xa5\x8b\xeb\x5c\x4a\x5d\xfe\x7b\x4b\x65\xa4\x91\xd1\x4e\xca\x6d\x25\x89\x5f\x7d\x27\x95\x26\x4e\xc5\x8c\x28\x8f\xdb\x97\x73\x66\x4b\x79\x81\x8f\xd1\x70\xec\x6d\x78\x5c\x3d\x52\xb2\x83\x46\x51\x62\x83\x0e\x77\x5b\x66\x76\x9c\xb8\x4e\xac\x60\xca\x7c\xbe\x7c\xb3\x7e\xcf\x4e\x95\x8b\x66\x66\x6f\x98\x88\x97\x59\x58\x83\x65\x6c\x95\x5c\x5f\x84\x75\xc9\x97\x56\x7a\xdf\x7a\xde\x51\xc0\x70\xaf\x7a\x98\x63\xea\x7a\x76\x7e\xa0\x73\x96\x97\xed\x4e\x45\x70\x78\x4e\x5d\x91\x52\x53\xa9\x65\x51\x65\xe7\x81\xfc\x82\x05\x54\x8e\x5c\x31\x75\x9a\x97\xa0\x62\xd8\x72\xd9\x75\xbd\x5c\x45\x9a\x79\x83\xca\x5c\x40\x54\x80\x77\xe9\x4e\x3e\x6c\xae\x80\x5a\x62\xd2\x63\x6e\x5d\xe8\x51\x77\x8d\xdd\x8e\x1e\x95\x2f\x4f\xf1\x53\xe5\x60\xe7\x70\xac\x52\x67\x63\x50\x9e\x43\x5a\x1f\x50\x26\x77\x37\x53\x77\x7e\xe2\x64\x85\x65\x2b\x62\x89\x63\x98\x50\x14\x72\x35\x89\xc9\x51\xb3\x8b\xc0\x7e\xdd\x57\x47\x83\xcc\x94\xa7\x51\x9b\x54\x1b\x5c\xfb\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x7a\xe3\x6d\x5a\x90\xe1\x9a\x8f\x55\x80\x54\x96\x53\x61\x54\xaf\x5f\x00\x63\xe9\x69\x77\x51\xef\x61\x68\x52\x0a\x58\x2a\x52\xd8\x57\x4e\x78\x0d\x77\x0b\x5e\xb7\x61\x77\x7c\xe0\x62\x5b\x62\x97\x4e\xa2\x70\x95\x80\x03\x62\xf7\x70\xe4\x97\x60\x57\x77\x82\xdb\x67\xef\x68\xf5\x78\xd5\x98\x97\x79\xd1\x58\xf3\x54\xb3\x53\xef\x6e\x34\x51\x4b\x52\x3b\x5b\xa2\x8b\xfe\x80\xaf\x55\x43\x57\xa6\x60\x73\x57\x51\x54\x2d\x7a\x7a\x60\x50\x5b\x54\x63\xa7\x62\xa0\x53\xe3\x62\x63\x5b\xc7\x67\xaf\x54\xed\x7a\x9f", /* 5080 */ "\x00\x00\x82\xe6\x91\x77\x5e\x93\x88\xe4\x59\x38\x57\xae\x63\x0e\x8d\xe8\x80\xef\x57\x57\x7b\x77\x4f\xa9\x5f\xeb\x5b\xbd\x6b\x3e\x53\x21\x7b\x50\x72\xc2\x68\x46\x77\xff\x77\x36\x65\xf7\x51\xb5\x4e\x8f\x76\xd4\x5c\xbf\x7a\xa5\x84\x75\x59\x4e\x9b\x41\x50\x80\x99\x88\x61\x27\x6e\x83\x57\x64\x66\x06\x63\x46\x56\xf0\x62\xec\x62\x69\x5e\xd3\x96\x14\x57\x83\x62\xc9\x55\x87\x87\x21\x81\x4a\x8f\xa3\x55\x66\x83\xb1\x67\x65\x8d\x56\x84\xdd\x5a\x6a\x68\x0f\x62\xe6\x7b\xee\x96\x11\x51\x70\x6f\x9c\x8c\x30\x63\xfd\x89\xc8\x61\xd2\x7f\x06\x70\xc2\x6e\xe5\x74\x05\x69\x94\x72\xfc\x5e\xca\x90\xce\x67\x17\x6d\x6a\x63\x5e\x52\xb3\x72\x62\x80\x01\x4f\x6c\x59\xe5\x91\x6a\x70\xd9\x6d\x9d\x52\xd2\x4e\x50\x96\xf7\x95\x6d\x85\x7e\x78\xca\x7d\x2f\x51\x21\x57\x92\x64\xc2\x80\x8b\x7c\x7b\x6c\xea\x68\xf1\x69\x5e\x51\xb7\x53\x98\x68\xa8\x72\x81\x9e\xce\x7b\xf1\x72\xf8\x79\xbb\x6f\x13\x74\x06\x67\x4e\x91\xcc\x9c\xa4\x79\x3c\x83\x89\x83\x54\x54\x0f\x68\x17\x4e\x3d\x53\x89\x52\xb1\x78\x3e\x53\x86\x52\x29\x50\x88\x4f\x8b\x4f\xd0\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe2\x7a\xcb\x7c\x92\x6c\xa5\x96\xb6\x52\x9b\x74\x83\x54\xe9\x4f\xe9\x80\x54\x83\xb2\x8f\xde\x95\x70\x5e\xc9\x60\x1c\x6d\x9f\x5e\x18\x65\x5b\x81\x38\x94\xfe\x60\x4b\x70\xbc\x7e\xc3\x7c\xae\x51\xc9\x68\x81\x7c\xb1\x82\x6f\x4e\x24\x8f\x86\x91\xcf\x66\x7e\x4e\xae\x8c\x05\x64\xa9\x80\x4a\x50\xda\x75\x97\x71\xce\x5b\xe5\x8f\xbd\x6f\x66\x4e\x86\x64\x82\x95\x63\x5e\xd6\x65\x99\x52\x17\x88\xc2\x70\xc8\x52\xa3\x73\x0e\x74\x33\x67\x97\x78\xf7\x97\x16\x4e\x34\x90\xbb\x9c\xde\x6d\xcb\x51\xdb\x8d\x41\x54\x1d", /* 5180 */ "\x00\x00\x62\xce\x73\xb2\x83\xf1\x96\xf6\x9f\x84\x94\xc3\x4f\x36\x7f\x9a\x51\xcc\x70\x75\x96\x75\x5c\xad\x98\x86\x53\xe6\x4e\xe4\x6e\x9c\x74\x09\x69\xb4\x78\x6b\x99\x8f\x75\x59\x52\x18\x76\x24\x6d\x41\x67\xf3\x51\x6d\x9f\x99\x80\x4b\x54\x99\x7b\x3c\x7a\xbf\x96\x86\x57\x84\x62\xe2\x96\x47\x69\x7c\x5a\x04\x64\x02\x7b\xd3\x6f\x0f\x96\x4b\x82\xa6\x53\x62\x98\x85\x5e\x90\x70\x89\x63\xb3\x53\x64\x86\x4f\x9c\x81\x9e\x93\x78\x8c\x97\x32\x8d\xef\x8d\x42\x9e\x7f\x6f\x5e\x79\x84\x5f\x55\x96\x46\x62\x2e\x9a\x74\x54\x15\x94\xdd\x4f\xa3\x65\xc5\x5c\x65\x5c\x61\x7f\x15\x86\x51\x6c\x2f\x5f\x8b\x73\x87\x6e\xe4\x7e\xff\x5c\xe6\x63\x1b\x5b\x6a\x6e\xe6\x53\x75\x4e\x71\x63\xa0\x75\x65\x62\xa1\x8f\x6e\x4f\x26\x4e\xd1\x6c\xa6\x7e\xb6\x8b\xba\x84\x1d\x87\xba\x7f\x57\x90\x3b\x95\x23\x7b\xa9\x9a\xa1\x88\xf8\x84\x3d\x6d\x1b\x9a\x86\x7e\xdc\x59\x88\x9e\xbb\x73\x9b\x78\x01\x86\x82\x9a\x6c\x9a\x82\x56\x1b\x54\x17\x57\xcb\x4e\x70\x9e\xa6\x53\x56\x8f\xc8\x81\x09\x77\x92\x99\x92\x86\xee\x6e\xe1\x85\x13\x66\xfc\x61\x62\x6f\x2b\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x29\x82\x92\x83\x2b\x76\xf2\x6c\x13\x5f\xd9\x83\xbd\x73\x2b\x83\x05\x95\x1a\x6b\xdb\x77\xdb\x94\xc6\x53\x6f\x83\x02\x51\x92\x5e\x3d\x8c\x8c\x8d\x38\x4e\x48\x73\xab\x67\x9a\x68\x85\x91\x76\x97\x09\x71\x64\x6c\xa1\x77\x09\x5a\x92\x95\x41\x6b\xcf\x7f\x8e\x66\x27\x5b\xd0\x59\xb9\x5a\x9a\x95\xe8\x95\xf7\x4e\xec\x84\x0c\x84\x99\x6a\xac\x76\xdf\x95\x30\x73\x1b\x68\xa6\x5b\x5f\x77\x2f\x91\x9a\x97\x61\x7c\xdc\x8f\xf7\x8c\x1c\x5f\x25\x7c\x73\x79\xd8\x89\xc5\x6c\xcc\x87\x1c\x5b\xc6\x5e\x42\x68\xc9\x77\x20", /* 5280 */ "\x00\x00\x7e\xf5\x51\x95\x51\x4d\x52\xc9\x5a\x29\x7f\x05\x97\x62\x82\xd7\x63\xcf\x77\x84\x85\xd0\x79\xd2\x6e\x3a\x5e\x99\x59\x99\x85\x11\x70\x6d\x6c\x11\x62\xbf\x76\xbf\x65\x4f\x60\xaf\x95\xfd\x66\x0e\x87\x9f\x9e\x23\x94\xed\x54\x0d\x54\x7d\x8c\x2c\x64\x78\x64\x79\x86\x11\x6a\x21\x81\x9c\x78\xe8\x64\x69\x9b\x54\x62\xb9\x67\x2b\x83\xab\x58\xa8\x9e\xd8\x6c\xab\x6f\x20\x5b\xde\x96\x4c\x8c\x0b\x72\x5f\x67\xd0\x62\xc7\x72\x61\x4e\xa9\x59\xc6\x6b\xcd\x58\x93\x66\xae\x5e\x55\x52\xdf\x61\x55\x67\x28\x76\xee\x77\x66\x72\x67\x7a\x46\x62\xff\x54\xea\x54\x50\x94\xa0\x90\xa3\x5a\x1c\x7e\xb3\x6c\x16\x4e\x43\x59\x76\x80\x10\x59\x48\x53\x57\x75\x37\x96\xbe\x56\xca\x63\x20\x81\x11\x60\x7c\x95\xf9\x6d\xd6\x54\x62\x99\x81\x51\x85\x5a\xe9\x80\xfd\x59\xae\x97\x13\x50\x2a\x6c\xe5\x5c\x3c\x62\xdf\x4f\x60\x53\x3f\x81\x7b\x90\x06\x6e\xba\x85\x2b\x62\xc8\x5e\x74\x78\xbe\x64\xb5\x63\x7b\x5f\xf5\x5a\x18\x91\x7f\x9e\x1f\x5c\x3f\x63\x4f\x80\x42\x5b\x7d\x55\x6e\x95\x4a\x95\x4d\x6d\x85\x60\xa8\x67\xe0\x72\xde\x51\xdd\x5b\x81\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe7\x6c\xde\x72\x5b\x62\x6d\x94\xae\x7e\xbd\x81\x13\x6d\x53\x51\x9c\x5f\x04\x59\x74\x52\xaa\x60\x12\x59\x73\x66\x96\x86\x50\x75\x9f\x63\x2a\x61\xe6\x7c\xef\x8b\xfa\x54\xe6\x6b\x27\x9e\x25\x6b\xb4\x85\xd5\x54\x55\x50\x76\x6c\xa4\x55\x6a\x8d\xb4\x72\x2c\x5e\x15\x60\x15\x74\x36\x62\xcd\x63\x92\x72\x4c\x5f\x98\x6e\x43\x6d\x3e\x65\x00\x6f\x58\x76\xd8\x78\xd0\x76\xfc\x75\x54\x52\x24\x53\xdb\x4e\x53\x5e\x9e\x65\xc1\x80\x2a\x80\xd6\x62\x9b\x54\x86\x52\x28\x70\xae\x88\x8d\x8d\xd1\x6c\xe1\x54\x78\x80\xda", /* 5380 */ "\x00\x00\x57\xf9\x88\xf4\x8d\x54\x96\x6a\x91\x4d\x4f\x69\x6c\x9b\x55\xb7\x76\xc6\x78\x30\x62\xa8\x70\xf9\x6f\x8e\x5f\x6d\x84\xec\x68\xda\x78\x7c\x7b\xf7\x81\xa8\x67\x0b\x9e\x4f\x63\x67\x78\xb0\x57\x6f\x78\x12\x97\x39\x62\x79\x62\xab\x52\x88\x74\x35\x6b\xd7\x55\x64\x81\x3e\x75\xb2\x76\xae\x53\x39\x75\xde\x50\xfb\x5c\x41\x8b\x6c\x7b\xc7\x50\x4f\x72\x47\x9a\x97\x98\xd8\x6f\x02\x74\xe2\x79\x68\x64\x87\x77\xa5\x62\xfc\x98\x91\x8d\x2b\x54\xc1\x80\x58\x4e\x52\x57\x6a\x82\xf9\x84\x0d\x5e\x73\x51\xed\x74\xf6\x8b\xc4\x5c\x4f\x57\x61\x6c\xfc\x98\x87\x5a\x46\x78\x34\x9b\x44\x8f\xeb\x7c\x95\x52\x56\x62\x51\x94\xfa\x4e\xc6\x83\x86\x84\x61\x83\xe9\x84\xb2\x57\xd4\x67\x34\x57\x03\x66\x6e\x6d\x66\x8c\x31\x66\xdd\x70\x11\x67\x1f\x6b\x3a\x68\x16\x62\x1a\x59\xbb\x4e\x03\x51\xc4\x6f\x06\x67\xd2\x6c\x8f\x51\x76\x68\xcb\x59\x47\x6b\x67\x75\x66\x5d\x0e\x81\x10\x9f\x50\x65\xd7\x79\x48\x79\x41\x9a\x91\x8d\x77\x5c\x82\x4e\x5e\x4f\x01\x54\x2f\x59\x51\x78\x0c\x56\x68\x6c\x14\x8f\xc4\x5f\x03\x6c\x7d\x6c\xe3\x8b\xab\x63\x90\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x70\x6d\x3d\x72\x75\x62\x66\x94\x8e\x94\xc5\x53\x43\x8f\xc1\x7b\x7e\x4e\xdf\x8c\x26\x4e\x7e\x9e\xd4\x94\xb1\x94\xb3\x52\x4d\x6f\x5c\x90\x63\x6d\x45\x8c\x34\x58\x11\x5d\x4c\x6b\x20\x6b\x49\x67\xaa\x54\x5b\x81\x54\x7f\x8c\x58\x99\x85\x37\x5f\x3a\x62\xa2\x6a\x47\x95\x39\x65\x72\x60\x84\x68\x65\x77\xa7\x4e\x54\x4f\xa8\x5d\xe7\x97\x98\x64\xac\x7f\xd8\x5c\xed\x4f\xcf\x7a\x8d\x52\x07\x83\x04\x4e\x14\x60\x2f\x7a\x83\x94\xa6\x4f\xb5\x4e\xb2\x79\xe6\x74\x34\x52\xe4\x82\xb9\x64\xd2\x79\xbd\x5b\xdd\x6c\x81", /* 5480 */ "\x00\x00\x97\x52\x8f\x7b\x6c\x22\x50\x3e\x53\x7f\x6e\x05\x64\xce\x66\x74\x6c\x30\x60\xc5\x98\x77\x8b\xf7\x5e\x86\x74\x3c\x7a\x77\x79\xcb\x4e\x18\x90\xb1\x74\x03\x6c\x42\x56\xda\x91\x4b\x6c\xc5\x8d\x8b\x53\x3a\x86\xc6\x66\xf2\x8e\xaf\x5c\x48\x9a\x71\x6e\x20\x53\xd6\x5a\x36\x9f\x8b\x8d\xa3\x53\xbb\x57\x08\x98\xa7\x67\x43\x91\x9b\x6c\xc9\x51\x68\x75\xca\x62\xf3\x72\xac\x52\x38\x52\x9d\x7f\x3a\x70\x94\x76\x38\x53\x74\x9e\x4a\x69\xb7\x78\x6e\x96\xc0\x88\xd9\x7f\xa4\x71\x36\x71\xc3\x51\x89\x67\xd3\x74\xe4\x58\xe4\x65\x18\x56\xb7\x8b\xa9\x99\x76\x62\x70\x7e\xd5\x60\xf9\x70\xed\x58\xec\x4e\xc1\x4e\xba\x5f\xcd\x97\xe7\x4e\xfb\x8b\xa4\x52\x03\x59\x8a\x7e\xab\x62\x54\x4e\xcd\x65\xe5\x62\x0e\x83\x38\x84\xc9\x83\x63\x87\x8d\x71\x94\x6e\xb6\x5b\xb9\x7e\xd2\x51\x97\x63\xc9\x67\xd4\x80\x89\x83\x39\x88\x15\x51\x12\x5b\x7a\x59\x82\x8f\xb1\x4e\x73\x6c\x5d\x51\x65\x89\x25\x8f\x6f\x96\x2e\x85\x4a\x74\x5e\x95\x10\x95\xf0\x6d\xa6\x82\xe5\x5f\x31\x64\x92\x6d\x12\x84\x28\x81\x6e\x9c\xc3\x58\x5e\x8d\x5b\x4e\x09\x53\xc1\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x1e\x65\x63\x68\x51\x55\xd3\x4e\x27\x64\x14\x9a\x9a\x62\x6b\x5a\xc2\x74\x5f\x82\x72\x6d\xa9\x68\xee\x50\xe7\x83\x8e\x78\x02\x67\x40\x52\x39\x6c\x99\x7e\xb1\x50\xbb\x55\x65\x71\x5e\x7b\x5b\x66\x52\x73\xca\x82\xeb\x67\x49\x5c\x71\x52\x20\x71\x7d\x88\x6b\x95\xea\x96\x55\x64\xc5\x8d\x61\x81\xb3\x55\x84\x6c\x55\x62\x47\x7f\x2e\x58\x92\x4f\x24\x55\x46\x8d\x4f\x66\x4c\x4e\x0a\x5c\x1a\x88\xf3\x68\xa2\x63\x4e\x7a\x0d\x70\xe7\x82\x8d\x52\xfa\x97\xf6\x5c\x11\x54\xe8\x90\xb5\x7e\xcd\x59\x62\x8d\x4a\x86\xc7", /* 5580 */ "\x00\x00\x82\x0c\x82\x0d\x8d\x66\x64\x44\x5c\x04\x61\x51\x6d\x89\x79\x3e\x8b\xbe\x78\x37\x75\x33\x54\x7b\x4f\x38\x8e\xab\x6d\xf1\x5a\x20\x7e\xc5\x79\x5e\x6c\x88\x5b\xa1\x5a\x76\x75\x1a\x80\xbe\x61\x4e\x6e\x17\x58\xf0\x75\x1f\x75\x25\x72\x72\x53\x47\x7e\xf3\x77\x01\x76\xdb\x52\x69\x80\xdc\x57\x23\x5e\x08\x59\x31\x72\xee\x65\xbd\x6e\x7f\x8b\xd7\x5c\x38\x86\x71\x53\x41\x77\xf3\x62\xfe\x65\xf6\x4e\xc0\x98\xdf\x86\x80\x5b\x9e\x8b\xc6\x53\xf2\x77\xe2\x4f\x7f\x5c\x4e\x9a\x76\x59\xcb\x5f\x0f\x79\x3a\x58\xeb\x4e\x16\x67\xff\x4e\x8b\x62\xed\x8a\x93\x90\x1d\x52\xbf\x66\x2f\x55\xdc\x56\x6c\x90\x02\x4e\xd5\x4f\x8d\x91\xca\x99\x70\x6c\x0f\x5e\x02\x60\x43\x5b\xa4\x89\xc6\x8b\xd5\x65\x36\x62\x4b\x99\x96\x5b\x88\x5b\xff\x63\x88\x55\x2e\x53\xd7\x76\x26\x51\x7d\x85\x2c\x67\xa2\x68\xb3\x6b\x8a\x62\x92\x8f\x93\x53\xd4\x82\x12\x6d\xd1\x75\x8f\x4e\x66\x8d\x4e\x5b\x70\x71\x9f\x85\xaf\x66\x91\x66\xd9\x7f\x72\x87\x00\x9e\xcd\x9f\x20\x5c\x5e\x67\x2f\x8f\xf0\x68\x11\x67\x5f\x62\x0d\x7a\xd6\x58\x85\x5e\xb6\x65\x70\x6f\x31\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x55\x52\x37\x80\x0d\x64\x54\x88\x70\x75\x29\x5e\x05\x68\x13\x62\xf4\x97\x1c\x53\xcc\x72\x3d\x8c\x01\x6c\x34\x77\x61\x7a\x0e\x54\x2e\x77\xac\x98\x7a\x82\x1c\x8b\xf4\x78\x55\x67\x14\x70\xc1\x65\xaf\x64\x95\x56\x36\x60\x1d\x79\xc1\x53\xf8\x4e\x1d\x6b\x7b\x80\x86\x5b\xfa\x55\xe3\x56\xdb\x4f\x3a\x4f\x3c\x99\x72\x5d\xf3\x67\x7e\x80\x38\x60\x02\x98\x82\x90\x01\x5b\x8b\x8b\xbc\x8b\xf5\x64\x1c\x82\x58\x64\xde\x55\xfd\x82\xcf\x91\x65\x4f\xd7\x7d\x20\x90\x1f\x7c\x9f\x50\xf3\x58\x51\x6e\xaf\x5b\xbf\x8b\xc9", /* 5680 */ "\x00\x00\x80\x83\x91\x78\x84\x9c\x7b\x97\x86\x7d\x96\x8b\x96\x8f\x7e\xe5\x9a\xd3\x78\x8e\x5c\x81\x7a\x57\x90\x42\x96\xa7\x79\x5f\x5b\x59\x63\x5f\x7b\x0b\x84\xd1\x68\xad\x55\x06\x7f\x29\x74\x10\x7d\x22\x95\x01\x62\x40\x58\x4c\x4e\xd6\x5b\x83\x59\x79\x58\x54\x73\x6d\x63\x1e\x8e\x4b\x8e\x0f\x80\xce\x82\xd4\x62\xac\x53\xf0\x6c\xf0\x91\x5e\x59\x2a\x60\x01\x6c\x70\x57\x4d\x64\x4a\x8d\x2a\x76\x2b\x6e\xe9\x57\x5b\x6a\x80\x75\xf0\x6f\x6d\x8c\x2d\x8c\x08\x57\x66\x6b\xef\x88\x92\x78\xb3\x63\xa2\x53\xf9\x70\xad\x6c\x64\x58\x58\x64\x2a\x58\x02\x68\xe0\x81\x9b\x55\x10\x7c\xd6\x50\x18\x8e\xba\x6d\xcc\x8d\x9f\x70\xeb\x63\x8f\x6d\x9b\x6e\xd4\x7e\xe6\x84\x04\x68\x43\x90\x03\x6d\xd8\x96\x76\x8b\xa8\x59\x57\x72\x79\x85\xe4\x81\x7e\x75\xbc\x8a\x8a\x68\xaf\x52\x54\x8e\x22\x95\x11\x63\xd0\x98\x98\x8e\x44\x55\x7c\x4f\x53\x66\xff\x56\x8f\x60\xd5\x6d\x95\x52\x43\x5c\x49\x59\x29\x6d\xfb\x58\x6b\x75\x30\x75\x1c\x60\x6c\x82\x14\x81\x46\x63\x11\x67\x61\x8f\xe2\x77\x3a\x8d\xf3\x8d\x34\x94\xc1\x5e\x16\x53\x85\x54\x2c\x70\xc3\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x40\x5e\xf7\x50\x5c\x4e\xad\x5e\xad\x63\x3a\x82\x47\x90\x1a\x68\x50\x91\x6e\x77\xb3\x54\x0c\x94\xdc\x5f\x64\x7a\xe5\x68\x76\x63\x45\x7b\x52\x7e\xdf\x75\xdb\x50\x77\x62\x95\x59\x34\x90\x0f\x51\xf8\x79\xc3\x7a\x81\x56\xfe\x5f\x92\x90\x14\x6d\x82\x5c\x60\x57\x1f\x54\x10\x51\x54\x6e\x4d\x56\xe2\x63\xa8\x98\x93\x81\x7f\x87\x15\x89\x2a\x90\x00\x54\x1e\x5c\x6f\x81\xc0\x62\xd6\x62\x58\x81\x31\x9e\x35\x96\x40\x9a\x6e\x9a\x7c\x69\x2d\x59\xa5\x62\xd3\x55\x3e\x63\x16\x54\xc7\x86\xd9\x6d\x3c\x5a\x03\x74\xe6", /* 5780 */ "\x00\x00\x88\x9c\x6b\x6a\x59\x16\x8c\x4c\x5f\x2f\x6e\x7e\x73\xa9\x98\x7d\x4e\x38\x70\xf7\x5b\x8c\x78\x97\x63\x3d\x66\x5a\x76\x96\x60\xcb\x5b\x9b\x5a\x49\x4e\x07\x81\x55\x6c\x6a\x73\x8b\x4e\xa1\x67\x89\x7f\x51\x5f\x80\x65\xfa\x67\x1b\x5f\xd8\x59\x84\x5a\x01\x5d\xcd\x5f\xae\x53\x71\x97\xe6\x8f\xdd\x68\x45\x56\xf4\x55\x2f\x60\xdf\x4e\x3a\x6f\x4d\x7e\xf4\x82\xc7\x84\x0e\x59\xd4\x4f\x1f\x4f\x2a\x5c\x3e\x7e\xac\x67\x2a\x85\x1a\x54\x73\x75\x4f\x80\xc3\x55\x82\x9b\x4f\x4f\x4d\x6e\x2d\x8c\x13\x5c\x09\x61\x70\x53\x6b\x76\x1f\x6e\x29\x86\x8a\x65\x87\x95\xfb\x7e\xb9\x54\x3b\x7a\x33\x7d\x0a\x95\xee\x55\xe1\x7f\xc1\x74\xee\x63\x1d\x87\x17\x6d\xa1\x7a\x9d\x62\x11\x65\xa1\x53\x67\x63\xe1\x6c\x83\x5d\xeb\x54\x5c\x94\xa8\x4e\x4c\x6c\x61\x8b\xec\x5c\x4b\x65\xe0\x82\x9c\x68\xa7\x54\x3e\x54\x34\x6b\xcb\x6b\x66\x4e\x94\x63\x42\x53\x48\x82\x1e\x4f\x0d\x4f\xae\x57\x5e\x62\x0a\x96\xfe\x66\x64\x72\x69\x52\xff\x52\xa1\x60\x9f\x8b\xef\x66\x14\x71\x99\x67\x90\x89\x7f\x78\x52\x77\xfd\x66\x70\x56\x3b\x54\x38\x95\x21\x72\x7a\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x60\x6f\x5e\x0c\x60\x89\x81\x9d\x59\x15\x60\xdc\x71\x84\x70\xef\x6e\xaa\x6c\x50\x72\x80\x6a\x84\x88\xad\x5e\x2d\x4e\x60\x5a\xb3\x55\x9c\x94\xe3\x6d\x17\x7c\xfb\x96\x99\x62\x0f\x7e\xc6\x77\x8e\x86\x7e\x53\x23\x97\x1e\x8f\x96\x66\x87\x5c\xe1\x4f\xa0\x72\xed\x4e\x0b\x53\xa6\x59\x0f\x54\x13\x63\x80\x95\x28\x51\x48\x4e\xd9\x9c\x9c\x7e\xa4\x54\xb8\x8d\x24\x88\x54\x82\x37\x95\xf2\x6d\x8e\x5f\x26\x5a\xcc\x66\x3e\x96\x69\x73\xb0\x73\x2e\x53\xbf\x81\x7a\x99\x85\x7f\xa1\x5b\xaa\x96\x77\x96\x50\x7e\xbf", /* 5880 */ "\x00\x00\x76\xf8\x53\xa2\x95\x76\x99\x99\x7b\xb1\x89\x44\x6e\x58\x4e\x61\x7f\xd4\x79\x65\x8b\xe6\x60\xf3\x54\xcd\x4e\xab\x98\x79\x5d\xf7\x6a\x61\x50\xcf\x54\x11\x8c\x61\x84\x27\x78\x5d\x97\x04\x52\x4a\x54\xee\x56\xa3\x95\x00\x6d\x88\x5b\xb5\x6d\xc6\x66\x53\x5c\x0f\x5b\x5d\x68\x21\x80\x96\x55\x78\x7b\x11\x65\x48\x69\x54\x4e\x9b\x6b\x47\x87\x4e\x97\x8b\x53\x4f\x63\x1f\x64\x3a\x90\xaa\x65\x9c\x80\xc1\x8c\x10\x51\x99\x68\xb0\x53\x78\x87\xf9\x61\xc8\x6c\xc4\x6c\xfb\x8c\x22\x5c\x51\x85\xaa\x82\xaf\x95\x0c\x6b\x23\x8f\x9b\x65\xb0\x5f\xfb\x5f\xc3\x4f\xe1\x88\x45\x66\x1f\x81\x65\x73\x29\x60\xfa\x51\x74\x52\x11\x57\x8b\x5f\x62\x90\xa2\x88\x4c\x91\x92\x5e\x78\x67\x4f\x60\x27\x59\xd3\x51\x44\x51\xf6\x80\xf8\x53\x08\x6c\x79\x96\xc4\x71\x8a\x4f\x11\x4f\xee\x7f\x9e\x67\x3d\x55\xc5\x95\x08\x79\xc0\x88\x96\x7e\xe3\x58\x9f\x62\x0c\x97\x00\x86\x5a\x56\x18\x98\x7b\x5f\x90\x8b\xb8\x84\xc4\x91\x57\x53\xd9\x65\xed\x5e\x8f\x75\x5c\x60\x64\x7d\x6e\x5a\x7f\x7e\xea\x7e\xed\x8f\x69\x55\xa7\x5b\xa3\x60\xac\x65\xcb\x73\x84\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x09\x76\x63\x77\x29\x7e\xda\x97\x74\x85\x9b\x5b\x66\x7a\x74\x96\xea\x88\x40\x52\xcb\x71\x8f\x5f\xaa\x65\xec\x8b\xe2\x5b\xfb\x9a\x6f\x5d\xe1\x6b\x89\x6c\x5b\x8b\xad\x8b\xaf\x90\x0a\x8f\xc5\x53\x8b\x62\xbc\x9e\x26\x9e\x2d\x54\x40\x4e\x2b\x82\xbd\x72\x59\x86\x9c\x5d\x16\x88\x59\x6d\xaf\x96\xc5\x54\xd1\x4e\x9a\x8b\xb6\x71\x09\x54\xbd\x96\x09\x70\xdf\x6d\xf9\x76\xd0\x4e\x25\x78\x14\x87\x12\x5c\xa9\x5e\xf6\x8a\x00\x98\x9c\x96\x0e\x70\x8e\x6c\xbf\x59\x44\x63\xa9\x77\x3c\x88\x4d\x6f\x14\x82\x73\x58\x30", /* 5980 */ "\x00\x00\x71\xd5\x53\x8c\x78\x1a\x96\xc1\x55\x01\x5f\x66\x71\x30\x5b\xb4\x8c\x1a\x9a\x8c\x6b\x83\x59\x2e\x9e\x2f\x79\xe7\x67\x68\x62\x6c\x4f\x6f\x75\xa1\x7f\x8a\x6d\x0b\x96\x33\x6c\x27\x4e\xf0\x75\xd2\x51\x7b\x68\x37\x6f\x3e\x90\x80\x81\x70\x59\x96\x74\x76\x64\x47\x5c\x27\x90\x65\x7a\x91\x8c\x23\x59\xda\x54\xac\x82\x00\x83\x6f\x89\x81\x80\x00\x69\x30\x56\x4e\x80\x36\x72\x37\x91\xce\x51\xb6\x4e\x5f\x98\x75\x63\x96\x4e\x1a\x53\xf6\x66\xf3\x81\x4b\x59\x1c\x6d\xb2\x4e\x00\x58\xf9\x53\x3b\x63\xd6\x94\xf1\x4f\x9d\x4f\x0a\x88\x63\x98\x90\x59\x37\x90\x57\x79\xfb\x4e\xea\x80\xf0\x75\x91\x6c\x82\x5b\x9c\x59\xe8\x5f\x5d\x69\x05\x86\x81\x50\x1a\x5d\xf2\x4e\x59\x77\xe3\x4e\xe5\x82\x7a\x62\x91\x66\x13\x90\x91\x5c\x79\x4e\xbf\x5f\x79\x81\xc6\x90\x38\x80\x84\x75\xab\x4e\xa6\x88\xd4\x61\x0f\x6b\xc5\x5f\xc6\x4e\x49\x76\xca\x6e\xa2\x8b\xe3\x8b\xae\x8c\x0a\x8b\xd1\x5f\x02\x7f\xfc\x7f\xcc\x7e\xce\x83\x35\x83\x6b\x56\xe0\x6b\xb7\x97\xf3\x96\x34\x59\xfb\x54\x1f\x94\xf6\x6d\xeb\x5b\xc5\x99\x6e\x5c\x39\x5f\x15\x96\x90\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x70\x82\xf1\x6a\x31\x5a\x74\x9e\x70\x5e\x94\x7f\x28\x83\xb9\x84\x24\x84\x25\x83\x67\x87\x47\x8f\xce\x8d\x62\x76\xc8\x5f\x71\x98\x96\x78\x6c\x66\x20\x54\xdf\x62\xe5\x4f\x63\x81\xc3\x75\xc8\x5e\xb8\x96\xcd\x8e\x0a\x86\xf9\x54\x8f\x6c\xf3\x6d\x8c\x6c\x38\x60\x7f\x52\xc7\x75\x28\x5e\x7d\x4f\x18\x60\xa0\x5f\xe7\x5c\x24\x75\x31\x90\xae\x94\xc0\x72\xb9\x6c\xb9\x6e\x38\x91\x49\x67\x09\x53\xcb\x53\xf3\x4f\x51\x91\xc9\x8b\xf1\x53\xc8\x5e\x7c\x8f\xc2\x6d\xe4\x4e\x8e\x76\xc2\x69\x86\x86\x5e\x61\x1a\x82\x06", /* 5a80 */ "\x00\x00\x4f\x59\x4f\xde\x90\x3e\x9c\x7c\x61\x09\x6e\x1d\x6e\x14\x96\x85\x4e\x88\x5a\x31\x96\xe8\x4e\x0e\x5c\x7f\x79\xb9\x5b\x87\x8b\xed\x7f\xbd\x73\x89\x57\xdf\x82\x8b\x90\xc1\x54\x01\x90\x47\x55\xbb\x5c\xea\x5f\xa1\x61\x08\x6b\x32\x72\xf1\x80\xb2\x8a\x89\x6d\x74\x5b\xd3\x88\xd5\x98\x84\x8c\x6b\x9a\x6d\x9e\x33\x6e\x0a\x51\xa4\x51\x43\x57\xa3\x88\x81\x53\x9f\x63\xf4\x8f\x95\x56\xed\x54\x58\x57\x06\x73\x3f\x6e\x90\x7f\x18\x8f\xdc\x82\xd1\x61\x3f\x60\x28\x96\x62\x66\xf0\x7e\xa6\x8d\x8a\x8d\xc3\x94\xa5\x5c\xb3\x7c\xa4\x67\x08\x60\xa6\x96\x05\x80\x18\x4e\x91\x90\xe7\x53\x00\x96\x68\x51\x41\x8f\xd0\x85\x74\x91\x5d\x66\x55\x97\xf5\x5b\x55\x53\x1d\x78\x38\x67\x42\x68\x3d\x54\xc9\x70\x7e\x5b\xb0\x8f\x7d\x51\x8d\x57\x28\x54\xb1\x65\x12\x66\x82\x8d\x5e\x8d\x43\x81\x0f\x84\x6c\x90\x6d\x7c\xdf\x51\xff\x85\xfb\x67\xa3\x65\xe9\x6f\xa1\x86\xa4\x8e\x81\x56\x6a\x90\x20\x76\x82\x70\x76\x71\xe5\x8d\x23\x62\xe9\x52\x19\x6c\xfd\x8d\x3c\x60\x0e\x58\x9e\x61\x8e\x66\xfe\x8d\x60\x62\x4e\x55\xb3\x6e\x23\x67\x2d\x8f\x67\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe1\x95\xf8\x77\x28\x68\x05\x69\xa8\x54\x8b\x4e\x4d\x70\xb8\x8b\xc8\x64\x58\x65\x8b\x5b\x85\x7a\x84\x50\x3a\x5b\xe8\x77\xbb\x6b\xe1\x8a\x79\x7c\x98\x6c\xbe\x76\xcf\x65\xa9\x8f\x97\x5d\x2d\x5c\x55\x86\x38\x68\x08\x53\x60\x62\x18\x7a\xd9\x6e\x5b\x7e\xfd\x6a\x1f\x7a\xe0\x5f\x70\x6f\x33\x5f\x20\x63\x8c\x6d\xa8\x67\x56\x4e\x08\x5e\x10\x8d\x26\x4e\xd7\x80\xc0\x76\x34\x96\x9c\x62\xdb\x66\x2d\x62\x7e\x6c\xbc\x8d\x75\x71\x67\x7f\x69\x51\x46\x80\x87\x53\xec\x90\x6e\x62\x98\x54\xf2\x86\xf0\x8f\x99\x80\x05", /* 5b80 */ "\x00\x00\x95\x17\x85\x17\x8f\xd9\x6d\x59\x73\xcd\x65\x9f\x77\x1f\x75\x04\x78\x27\x81\xfb\x8d\x1e\x94\x88\x4f\xa6\x67\x95\x75\xb9\x8b\xca\x97\x07\x63\x2f\x95\x47\x96\x35\x84\xb8\x63\x23\x77\x41\x5f\x81\x72\xf0\x4e\x89\x60\x14\x65\x74\x62\xef\x6b\x63\x65\x3f\x5e\x27\x75\xc7\x90\xd1\x8b\xc1\x82\x9d\x67\x9d\x65\x2f\x54\x31\x87\x18\x77\xe5\x80\xa2\x81\x02\x6c\x41\x4e\x4b\x7e\xc7\x80\x4c\x76\xf4\x69\x0d\x6b\x96\x62\x67\x50\x3c\x4f\x84\x57\x40\x63\x07\x6b\x62\x8d\xbe\x53\xea\x65\xe8\x7e\xb8\x5f\xd7\x63\x1a\x63\xb7\x81\xf3\x81\xf4\x7f\x6e\x5e\x1c\x5c\xd9\x52\x36\x66\x7a\x79\xe9\x7a\x1a\x8d\x28\x70\x99\x75\xd4\x6e\xde\x6c\xbb\x7a\x92\x4e\x2d\x76\xc5\x5f\xe0\x94\x9f\x88\x77\x7e\xc8\x79\xcd\x80\xbf\x91\xcd\x4e\xf2\x4f\x17\x82\x1f\x54\x68\x5d\xde\x6d\x32\x8b\xcc\x7c\xa5\x8f\x74\x80\x98\x5e\x1a\x54\x92\x76\xb1\x5b\x99\x66\x3c\x9a\xa4\x73\xe0\x68\x2a\x86\xdb\x67\x31\x73\x2a\x8b\xf8\x8b\xdb\x90\x10\x7a\xf9\x70\xdb\x71\x6e\x62\xc4\x77\xa9\x56\x31\x4e\x3b\x84\x57\x67\xf1\x52\xa9\x86\xc0\x8d\x2e\x94\xf8\x7b\x51\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x4f\x6c\xe8\x79\x5d\x9a\x7b\x62\x93\x72\x2a\x62\xfd\x4e\x13\x78\x16\x8f\x6c\x64\xb0\x8d\x5a\x7b\xc6\x68\x69\x5e\x84\x88\xc5\x59\x86\x64\x9e\x58\xee\x72\xb6\x69\x0e\x95\x25\x8f\xfd\x8d\x58\x57\x60\x7f\x00\x8c\x06\x51\xc6\x63\x49\x62\xd9\x53\x53\x68\x4c\x74\x22\x83\x01\x91\x4c\x55\x44\x77\x40\x70\x7c\x6d\x4a\x51\x79\x54\xa8\x8d\x44\x59\xff\x6e\xcb\x6d\xc4\x5b\x5c\x7d\x2b\x4e\xd4\x7c\x7d\x6e\xd3\x5b\x50\x81\xea\x6e\x0d\x5b\x57\x9b\x03\x68\xd5\x8e\x2a\x5b\x97\x7e\xfc\x60\x3b\x7e\xb5\x90\xb9\x8d\x70", /* 5c80 */ "\x00\x00\x59\x4f\x63\xcd\x79\xdf\x8d\xb3\x53\x52\x65\xcf\x79\x56\x8b\xc5\x96\x3b\x7e\xc4\x94\xbb\x7e\x82\x56\x34\x91\x89\x67\x00\x7f\x6a\x5c\x0a\x90\x75\x66\x28\x5d\xe6\x4f\x50\x67\xde\x50\x5a\x4f\x5c\x57\x50\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8d\x4e\x0c\x51\x40\x4e\x10\x5e\xff\x53\x45\x4e\x15\x4e\x98\x4e\x1e\x9b\x32\x5b\x6c\x56\x69\x4e\x28\x79\xba\x4e\x3f\x53\x15\x4e\x47\x59\x2d\x72\x3b\x53\x6e\x6c\x10\x56\xdf\x80\xe4\x99\x97\x6b\xd3\x77\x7e\x9f\x17\x4e\x36\x4e\x9f\x9f\x10\x4e\x5c\x4e\x69\x4e\x93\x82\x88\x5b\x5b\x55\x6c\x56\x0f\x4e\xc4\x53\x8d\x53\x9d\x53\xa3\x53\xa5\x53\xae\x97\x65\x8d\x5d\x53\x1a\x53\xf5\x53\x26\x53\x2e\x53\x3e\x8d\x5c\x53\x66\x53\x63\x52\x02\x52\x08\x52\x0e\x52\x2d\x52\x33\x52\x3f\x52\x40\x52\x4c\x52\x5e\x52\x61\x52\x5c\x84\xaf\x52\x7d\x52\x82\x52\x81\x52\x90\x52\x93\x51\x82\x7f\x54\x4e\xbb\x4e\xc3\x4e\xc9\x4e\xc2\x4e\xe8\x4e\xe1\x4e\xeb\x4e\xde\x4f\x1b\x4e\xf3\x4f\x22\x4f\x64\x4e\xf5\x4f\x25\x4f\x27\x4f\x09\x4f\x2b\x4f\x5e\x4f\x67\x65\x38\x4f\x5a\x4f\x5d\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x5f\x4f\x57\x4f\x32\x4f\x3d\x4f\x76\x4f\x74\x4f\x91\x4f\x89\x4f\x83\x4f\x8f\x4f\x7e\x4f\x7b\x4f\xaa\x4f\x7c\x4f\xac\x4f\x94\x4f\xe6\x4f\xe8\x4f\xea\x4f\xc5\x4f\xda\x4f\xe3\x4f\xdc\x4f\xd1\x4f\xdf\x4f\xf8\x50\x29\x50\x4c\x4f\xf3\x50\x2c\x50\x0f\x50\x2e\x50\x2d\x4f\xfe\x50\x1c\x50\x0c\x50\x25\x50\x28\x50\x7e\x50\x43\x50\x55\x50\x48\x50\x4e\x50\x6c\x50\x7b\x50\xa5\x50\xa7\x50\xa9\x50\xba\x50\xd6\x51\x06\x50\xed\x50\xec\x50\xe6\x50\xee\x51\x07\x51\x0b\x4e\xdd\x6c\x3d\x4f\x58\x4f\x65\x4f\xce\x9f\xa0", /* 5d80 */ "\x00\x00\x6c\x46\x7c\x74\x51\x6e\x5d\xfd\x9e\xc9\x99\x98\x51\x81\x59\x14\x52\xf9\x53\x0d\x8a\x07\x53\x10\x51\xeb\x59\x19\x51\x55\x4e\xa0\x51\x56\x4e\xb3\x88\x6e\x88\xa4\x4e\xb5\x81\x14\x88\xd2\x79\x80\x5b\x34\x88\x03\x7f\xb8\x51\xab\x51\xb1\x51\xbd\x51\xbc\x51\xc7\x51\x96\x51\xa2\x51\xa5\x8b\xa0\x8b\xa6\x8b\xa7\x8b\xaa\x8b\xb4\x8b\xb5\x8b\xb7\x8b\xc2\x8b\xc3\x8b\xcb\x8b\xcf\x8b\xce\x8b\xd2\x8b\xd3\x8b\xd4\x8b\xd6\x8b\xd8\x8b\xd9\x8b\xdc\x8b\xdf\x8b\xe0\x8b\xe4\x8b\xe8\x8b\xe9\x8b\xee\x8b\xf0\x8b\xf3\x8b\xf6\x8b\xf9\x8b\xfc\x8b\xff\x8c\x00\x8c\x02\x8c\x04\x8c\x07\x8c\x0c\x8c\x0f\x8c\x11\x8c\x12\x8c\x14\x8c\x15\x8c\x16\x8c\x19\x8c\x1b\x8c\x18\x8c\x1d\x8c\x1f\x8c\x20\x8c\x21\x8c\x25\x8c\x27\x8c\x2a\x8c\x2b\x8c\x2e\x8c\x2f\x8c\x32\x8c\x33\x8c\x35\x8c\x36\x53\x69\x53\x7a\x96\x1d\x96\x22\x96\x21\x96\x31\x96\x2a\x96\x3d\x96\x3c\x96\x42\x96\x49\x96\x54\x96\x5f\x96\x67\x96\x6c\x96\x72\x96\x74\x96\x88\x96\x8d\x96\x97\x96\xb0\x90\x97\x90\x9b\x90\x9d\x90\x99\x90\xac\x90\xa1\x90\xb4\x90\xb3\x90\xb6\x90\xba\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xb8\x90\xb0\x90\xcf\x90\xc5\x90\xbe\x90\xd0\x90\xc4\x90\xc7\x90\xd3\x90\xe6\x90\xe2\x90\xdc\x90\xd7\x90\xdb\x90\xeb\x90\xef\x90\xfe\x91\x04\x91\x22\x91\x1e\x91\x23\x91\x31\x91\x2f\x91\x39\x91\x43\x91\x46\x52\x0d\x59\x42\x52\xa2\x52\xac\x52\xad\x52\xbe\x54\xff\x52\xd0\x52\xd6\x52\xf0\x53\xdf\x71\xee\x77\xcd\x5e\xf4\x51\xf5\x51\xfc\x9b\x2f\x53\xb6\x5f\x01\x75\x5a\x5d\xef\x57\x4c\x57\xa9\x57\xa1\x58\x7e\x58\xbc\x58\xc5\x58\xd1\x57\x29\x57\x2c\x57\x2a\x57\x33\x57\x39\x57\x2e\x57\x2f\x57\x5c\x57\x3b", /* 5e80 */ "\x00\x00\x57\x42\x57\x69\x57\x85\x57\x6b\x57\x86\x57\x7c\x57\x7b\x57\x68\x57\x6d\x57\x76\x57\x73\x57\xad\x57\xa4\x57\x8c\x57\xb2\x57\xcf\x57\xa7\x57\xb4\x57\x93\x57\xa0\x57\xd5\x57\xd8\x57\xda\x57\xd9\x57\xd2\x57\xb8\x57\xf4\x57\xef\x57\xf8\x57\xe4\x57\xdd\x58\x0b\x58\x0d\x57\xfd\x57\xed\x58\x00\x58\x1e\x58\x19\x58\x44\x58\x20\x58\x65\x58\x6c\x58\x81\x58\x89\x58\x9a\x58\x80\x99\xa8\x9f\x19\x61\xff\x82\x79\x82\x7d\x82\x7f\x82\x8f\x82\x8a\x82\xa8\x82\x84\x82\x8e\x82\x91\x82\x97\x82\x99\x82\xab\x82\xb8\x82\xbe\x82\xb0\x82\xc8\x82\xca\x82\xe3\x82\x98\x82\xb7\x82\xae\x82\xcb\x82\xcc\x82\xc1\x82\xa9\x82\xb4\x82\xa1\x82\xaa\x82\x9f\x82\xc4\x82\xce\x82\xa4\x82\xe1\x83\x09\x82\xf7\x82\xe4\x83\x0f\x83\x07\x82\xdc\x82\xf4\x82\xd2\x82\xd8\x83\x0c\x82\xfb\x82\xd3\x83\x11\x83\x1a\x83\x06\x83\x14\x83\x15\x82\xe0\x82\xd5\x83\x1c\x83\x51\x83\x5b\x83\x5c\x83\x08\x83\x92\x83\x3c\x83\x34\x83\x31\x83\x9b\x83\x5e\x83\x2f\x83\x4f\x83\x47\x83\x43\x83\x5f\x83\x40\x83\x17\x83\x60\x83\x2d\x83\x3a\x83\x33\x83\x66\x83\x65\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x68\x83\x1b\x83\x69\x83\x6c\x83\x6a\x83\x6d\x83\x6e\x83\xb0\x83\x78\x83\xb3\x83\xb4\x83\xa0\x83\xaa\x83\x93\x83\x9c\x83\x85\x83\x7c\x83\xb6\x83\xa9\x83\x7d\x83\xb8\x83\x7b\x83\x98\x83\x9e\x83\xa8\x83\xba\x83\xbc\x83\xc1\x84\x01\x83\xe5\x83\xd8\x58\x07\x84\x18\x84\x0b\x83\xdd\x83\xfd\x83\xd6\x84\x1c\x84\x38\x84\x11\x84\x06\x83\xd4\x83\xdf\x84\x0f\x84\x03\x83\xf8\x83\xf9\x83\xea\x83\xc5\x83\xc0\x84\x26\x83\xf0\x83\xe1\x84\x5c\x84\x51\x84\x5a\x84\x59\x84\x73\x84\x87\x84\x88\x84\x7a\x84\x89\x84\x78", /* 5f80 */ "\x00\x00\x84\x3c\x84\x46\x84\x69\x84\x76\x84\x8c\x84\x8e\x84\x31\x84\x6d\x84\xc1\x84\xcd\x84\xd0\x84\xe6\x84\xbd\x84\xd3\x84\xca\x84\xbf\x84\xba\x84\xe0\x84\xa1\x84\xb9\x84\xb4\x84\x97\x84\xe5\x84\xe3\x85\x0c\x75\x0d\x85\x38\x84\xf0\x85\x39\x85\x1f\x85\x3a\x85\x56\x85\x3b\x84\xff\x84\xfc\x85\x59\x85\x48\x85\x68\x85\x64\x85\x5e\x85\x7a\x77\xa2\x85\x43\x85\x72\x85\x7b\x85\xa4\x85\xa8\x85\x87\x85\x8f\x85\x79\x85\xae\x85\x9c\x85\x85\x85\xb9\x85\xb7\x85\xb0\x85\xd3\x85\xc1\x85\xdc\x85\xff\x86\x27\x86\x05\x86\x29\x86\x16\x86\x3c\x5e\xfe\x5f\x08\x59\x3c\x59\x41\x80\x37\x59\x55\x59\x5a\x59\x58\x53\x0f\x5c\x22\x5c\x25\x5c\x2c\x5c\x34\x62\x4c\x62\x6a\x62\x9f\x62\xbb\x62\xca\x62\xda\x62\xd7\x62\xee\x63\x22\x62\xf6\x63\x39\x63\x4b\x63\x43\x63\xad\x63\xf6\x63\x71\x63\x7a\x63\x8e\x63\xb4\x63\x6d\x63\xac\x63\x8a\x63\x69\x63\xae\x63\xbc\x63\xf2\x63\xf8\x63\xe0\x63\xff\x63\xc4\x63\xde\x63\xce\x64\x52\x63\xc6\x63\xbe\x64\x45\x64\x41\x64\x0b\x64\x1b\x64\x20\x64\x0c\x64\x26\x64\x21\x64\x5e\x64\x84\x64\x6d\x64\x96\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7a\x64\xb7\x64\xb8\x64\x99\x64\xba\x64\xc0\x64\xd0\x64\xd7\x64\xe4\x64\xe2\x65\x09\x65\x25\x65\x2e\x5f\x0b\x5f\xd2\x75\x19\x5f\x11\x53\x5f\x53\xf1\x53\xfd\x53\xe9\x53\xe8\x53\xfb\x54\x12\x54\x16\x54\x06\x54\x4b\x54\x52\x54\x53\x54\x54\x54\x56\x54\x43\x54\x21\x54\x57\x54\x59\x54\x23\x54\x32\x54\x82\x54\x94\x54\x77\x54\x71\x54\x64\x54\x9a\x54\x9b\x54\x84\x54\x76\x54\x66\x54\x9d\x54\xd0\x54\xad\x54\xc2\x54\xb4\x54\xd2\x54\xa7\x54\xa6\x54\xd3\x54\xd4\x54\x72\x54\xa3\x54\xd5\x54\xbb\x54\xbf\x54\xcc", /* 6080 */ "\x00\x00\x54\xd9\x54\xda\x54\xdc\x54\xa9\x54\xaa\x54\xa4\x54\xdd\x54\xcf\x54\xde\x55\x1b\x54\xe7\x55\x20\x54\xfd\x55\x14\x54\xf3\x55\x22\x55\x23\x55\x0f\x55\x11\x55\x27\x55\x2a\x55\x67\x55\x8f\x55\xb5\x55\x49\x55\x6d\x55\x41\x55\x55\x55\x3f\x55\x50\x55\x3c\x55\x37\x55\x56\x55\x75\x55\x76\x55\x77\x55\x33\x55\x30\x55\x5c\x55\x8b\x55\xd2\x55\x83\x55\xb1\x55\xb9\x55\x88\x55\x81\x55\x9f\x55\x7e\x55\xd6\x55\x91\x55\x7b\x55\xdf\x55\xbd\x55\xbe\x55\x94\x55\x99\x55\xea\x55\xf7\x55\xc9\x56\x1f\x55\xd1\x55\xeb\x55\xec\x55\xd4\x55\xe6\x55\xdd\x55\xc4\x55\xef\x55\xe5\x55\xf2\x55\xf3\x55\xcc\x55\xcd\x55\xe8\x55\xf5\x55\xe4\x8f\x94\x56\x1e\x56\x08\x56\x0c\x56\x01\x56\x24\x56\x23\x55\xfe\x56\x00\x56\x27\x56\x2d\x56\x58\x56\x39\x56\x57\x56\x2c\x56\x4d\x56\x62\x56\x59\x56\x5c\x56\x4c\x56\x54\x56\x86\x56\x64\x56\x71\x56\x6b\x56\x7b\x56\x7c\x56\x85\x56\x93\x56\xaf\x56\xd4\x56\xd7\x56\xdd\x56\xe1\x56\xf5\x56\xeb\x56\xf9\x56\xff\x57\x04\x57\x0a\x57\x09\x57\x1c\x5e\x0f\x5e\x19\x5e\x14\x5e\x11\x5e\x31\x5e\x3b\x5e\x3c\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x37\x5e\x44\x5e\x54\x5e\x5b\x5e\x5e\x5e\x61\x5c\x8c\x5c\x7a\x5c\x8d\x5c\x90\x5c\x96\x5c\x88\x5c\x98\x5c\x99\x5c\x91\x5c\x9a\x5c\x9c\x5c\xb5\x5c\xa2\x5c\xbd\x5c\xac\x5c\xab\x5c\xb1\x5c\xa3\x5c\xc1\x5c\xb7\x5c\xc4\x5c\xd2\x5c\xe4\x5c\xcb\x5c\xe5\x5d\x02\x5d\x03\x5d\x27\x5d\x26\x5d\x2e\x5d\x24\x5d\x1e\x5d\x06\x5d\x1b\x5d\x58\x5d\x3e\x5d\x34\x5d\x3d\x5d\x6c\x5d\x5b\x5d\x6f\x5d\x5d\x5d\x6b\x5d\x4b\x5d\x4a\x5d\x69\x5d\x74\x5d\x82\x5d\x99\x5d\x9d\x8c\x73\x5d\xb7\x5d\xc5\x5f\x73\x5f\x77\x5f\x82\x5f\x87", /* 6180 */ "\x00\x00\x5f\x89\x5f\x8c\x5f\x95\x5f\x99\x5f\x9c\x5f\xa8\x5f\xad\x5f\xb5\x5f\xbc\x88\x62\x5f\x61\x72\xad\x72\xb0\x72\xb4\x72\xb7\x72\xb8\x72\xc3\x72\xc1\x72\xce\x72\xcd\x72\xd2\x72\xe8\x72\xef\x72\xe9\x72\xf2\x72\xf4\x72\xf7\x73\x01\x72\xf3\x73\x03\x72\xfa\x72\xfb\x73\x17\x73\x13\x73\x21\x73\x0a\x73\x1e\x73\x1d\x73\x15\x73\x22\x73\x39\x73\x25\x73\x2c\x73\x38\x73\x31\x73\x50\x73\x4d\x73\x57\x73\x60\x73\x6c\x73\x6f\x73\x7e\x82\x1b\x59\x25\x98\xe7\x59\x24\x59\x02\x99\x63\x99\x67\x99\x68\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x74\x99\x77\x99\x7d\x99\x80\x99\x84\x99\x87\x99\x8a\x99\x8d\x99\x90\x99\x91\x99\x93\x99\x94\x99\x95\x5e\x80\x5e\x91\x5e\x8b\x5e\x96\x5e\xa5\x5e\xa0\x5e\xb9\x5e\xb5\x5e\xbe\x5e\xb3\x8d\x53\x5e\xd2\x5e\xd1\x5e\xdb\x5e\xe8\x5e\xea\x81\xba\x5f\xc4\x5f\xc9\x5f\xd6\x5f\xcf\x60\x03\x5f\xee\x60\x04\x5f\xe1\x5f\xe4\x5f\xfe\x60\x05\x60\x06\x5f\xea\x5f\xed\x5f\xf8\x60\x19\x60\x35\x60\x26\x60\x1b\x60\x0f\x60\x0d\x60\x29\x60\x2b\x60\x0a\x60\x3f\x60\x21\x60\x78\x60\x79\x60\x7b\x60\x7a\x60\x42\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6a\x60\x7d\x60\x96\x60\x9a\x60\xad\x60\x9d\x60\x83\x60\x92\x60\x8c\x60\x9b\x60\xec\x60\xbb\x60\xb1\x60\xdd\x60\xd8\x60\xc6\x60\xda\x60\xb4\x61\x20\x61\x26\x61\x15\x61\x23\x60\xf4\x61\x00\x61\x0e\x61\x2b\x61\x4a\x61\x75\x61\xac\x61\x94\x61\xa7\x61\xb7\x61\xd4\x61\xf5\x5f\xdd\x96\xb3\x95\xe9\x95\xeb\x95\xf1\x95\xf3\x95\xf5\x95\xf6\x95\xfc\x95\xfe\x96\x03\x96\x04\x96\x06\x96\x08\x96\x0a\x96\x0b\x96\x0c\x96\x0d\x96\x0f\x96\x12\x96\x15\x96\x16\x96\x17\x96\x19\x96\x1a\x4e\x2c\x72\x3f\x62\x15\x6c\x35", /* 6280 */ "\x00\x00\x6c\x54\x6c\x5c\x6c\x4a\x6c\xa3\x6c\x85\x6c\x90\x6c\x94\x6c\x8c\x6c\x68\x6c\x69\x6c\x74\x6c\x76\x6c\x86\x6c\xa9\x6c\xd0\x6c\xd4\x6c\xad\x6c\xf7\x6c\xf8\x6c\xf1\x6c\xd7\x6c\xb2\x6c\xe0\x6c\xd6\x6c\xfa\x6c\xeb\x6c\xee\x6c\xb1\x6c\xd3\x6c\xef\x6c\xfe\x6d\x39\x6d\x27\x6d\x0c\x6d\x43\x6d\x48\x6d\x07\x6d\x04\x6d\x19\x6d\x0e\x6d\x2b\x6d\x4d\x6d\x2e\x6d\x35\x6d\x1a\x6d\x4f\x6d\x52\x6d\x54\x6d\x33\x6d\x91\x6d\x6f\x6d\x9e\x6d\xa0\x6d\x5e\x6d\x93\x6d\x94\x6d\x5c\x6d\x60\x6d\x7c\x6d\x63\x6e\x1a\x6d\xc7\x6d\xc5\x6d\xde\x6e\x0e\x6d\xbf\x6d\xe0\x6e\x11\x6d\xe6\x6d\xdd\x6d\xd9\x6e\x16\x6d\xab\x6e\x0c\x6d\xae\x6e\x2b\x6e\x6e\x6e\x4e\x6e\x6b\x6e\xb2\x6e\x5f\x6e\x86\x6e\x53\x6e\x54\x6e\x32\x6e\x25\x6e\x44\x6e\xdf\x6e\xb1\x6e\x98\x6e\xe0\x6f\x2d\x6e\xe2\x6e\xa5\x6e\xa7\x6e\xbd\x6e\xbb\x6e\xb7\x6e\xd7\x6e\xb4\x6e\xcf\x6e\x8f\x6e\xc2\x6e\x9f\x6f\x62\x6f\x46\x6f\x47\x6f\x24\x6f\x15\x6e\xf9\x6f\x2f\x6f\x36\x6f\x4b\x6f\x74\x6f\x2a\x6f\x09\x6f\x29\x6f\x89\x6f\x8d\x6f\x8c\x6f\x78\x6f\x72\x6f\x7c\x6f\x7a\x6f\xd1\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xc9\x6f\xa7\x6f\xb9\x6f\xb6\x6f\xc2\x6f\xe1\x6f\xee\x6f\xde\x6f\xe0\x6f\xef\x70\x1a\x70\x23\x70\x1b\x70\x39\x70\x35\x70\x4f\x70\x5e\x5b\x80\x5b\x84\x5b\x95\x5b\x93\x5b\xa5\x5b\xb8\x75\x2f\x9a\x9e\x64\x34\x5b\xe4\x5b\xee\x89\x30\x5b\xf0\x8e\x47\x8b\x07\x8f\xb6\x8f\xd3\x8f\xd5\x8f\xe5\x8f\xee\x8f\xe4\x8f\xe9\x8f\xe6\x8f\xf3\x8f\xe8\x90\x05\x90\x04\x90\x0b\x90\x26\x90\x11\x90\x0d\x90\x16\x90\x21\x90\x35\x90\x36\x90\x2d\x90\x2f\x90\x44\x90\x51\x90\x52\x90\x50\x90\x68\x90\x58\x90\x62\x90\x5b\x66\xb9", /* 6380 */ "\x00\x00\x90\x74\x90\x7d\x90\x82\x90\x88\x90\x83\x90\x8b\x5f\x50\x5f\x57\x5f\x56\x5f\x58\x5c\x3b\x54\xab\x5c\x50\x5c\x59\x5b\x71\x5c\x63\x5c\x66\x7f\xbc\x5f\x2a\x5f\x29\x5f\x2d\x82\x74\x5f\x3c\x9b\x3b\x5c\x6e\x59\x81\x59\x83\x59\x8d\x59\xa9\x59\xaa\x59\xa3\x59\x97\x59\xca\x59\xab\x59\x9e\x59\xa4\x59\xd2\x59\xb2\x59\xaf\x59\xd7\x59\xbe\x5a\x05\x5a\x06\x59\xdd\x5a\x08\x59\xe3\x59\xd8\x59\xf9\x5a\x0c\x5a\x09\x5a\x32\x5a\x34\x5a\x11\x5a\x23\x5a\x13\x5a\x40\x5a\x67\x5a\x4a\x5a\x55\x5a\x3c\x5a\x62\x5a\x75\x80\xec\x5a\xaa\x5a\x9b\x5a\x77\x5a\x7a\x5a\xbe\x5a\xeb\x5a\xb2\x5a\xd2\x5a\xd4\x5a\xb8\x5a\xe0\x5a\xe3\x5a\xf1\x5a\xd6\x5a\xe6\x5a\xd8\x5a\xdc\x5b\x09\x5b\x17\x5b\x16\x5b\x32\x5b\x37\x5b\x40\x5c\x15\x5c\x1c\x5b\x5a\x5b\x65\x5b\x73\x5b\x51\x5b\x53\x5b\x62\x9a\x75\x9a\x77\x9a\x78\x9a\x7a\x9a\x7f\x9a\x7d\x9a\x80\x9a\x81\x9a\x85\x9a\x88\x9a\x8a\x9a\x90\x9a\x92\x9a\x93\x9a\x96\x9a\x98\x9a\x9b\x9a\x9c\x9a\x9d\x9a\x9f\x9a\xa0\x9a\xa2\x9a\xa3\x9a\xa5\x9a\xa7\x7e\x9f\x7e\xa1\x7e\xa3\x7e\xa5\x7e\xa8\x7e\xa9\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xad\x7e\xb0\x7e\xbe\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc9\x7e\xcb\x7e\xcc\x7e\xd0\x7e\xd4\x7e\xd7\x7e\xdb\x7e\xe0\x7e\xe1\x7e\xe8\x7e\xeb\x7e\xee\x7e\xef\x7e\xf1\x7e\xf2\x7f\x0d\x7e\xf6\x7e\xfa\x7e\xfb\x7e\xfe\x7f\x01\x7f\x02\x7f\x03\x7f\x07\x7f\x08\x7f\x0b\x7f\x0c\x7f\x0f\x7f\x11\x7f\x12\x7f\x17\x7f\x19\x7f\x1c\x7f\x1b\x7f\x1f\x7f\x21\x7f\x22\x7f\x23\x7f\x24\x7f\x25\x7f\x26\x7f\x27\x7f\x2a\x7f\x2b\x7f\x2c\x7f\x2d\x7f\x2f\x7f\x30\x7f\x31\x7f\x32\x7f\x33\x7f\x35\x5e\x7a\x75\x7f\x5d\xdb\x75\x3e\x90\x95", /* 6480 */ "\x00\x00\x73\x8e\x73\x91\x73\xae\x73\xa2\x73\x9f\x73\xcf\x73\xc2\x73\xd1\x73\xb7\x73\xb3\x73\xc0\x73\xc9\x73\xc8\x73\xe5\x73\xd9\x98\x7c\x74\x0a\x73\xe9\x73\xe7\x73\xde\x73\xba\x73\xf2\x74\x0f\x74\x2a\x74\x5b\x74\x26\x74\x25\x74\x28\x74\x30\x74\x2e\x74\x2c\x74\x1b\x74\x1a\x74\x41\x74\x5c\x74\x57\x74\x55\x74\x59\x74\x77\x74\x6d\x74\x7e\x74\x9c\x74\x8e\x74\x80\x74\x81\x74\x87\x74\x8b\x74\x9e\x74\xa8\x74\xa9\x74\x90\x74\xa7\x74\xd2\x74\xba\x97\xea\x97\xeb\x97\xec\x67\x4c\x67\x53\x67\x5e\x67\x48\x67\x69\x67\xa5\x67\x87\x67\x6a\x67\x73\x67\x98\x67\xa7\x67\x75\x67\xa8\x67\x9e\x67\xad\x67\x8b\x67\x77\x67\x7c\x67\xf0\x68\x09\x67\xd8\x68\x0a\x67\xe9\x67\xb0\x68\x0c\x67\xd9\x67\xb5\x67\xda\x67\xb3\x67\xdd\x68\x00\x67\xc3\x67\xb8\x67\xe2\x68\x0e\x67\xc1\x67\xfd\x68\x32\x68\x33\x68\x60\x68\x61\x68\x4e\x68\x62\x68\x44\x68\x64\x68\x83\x68\x1d\x68\x55\x68\x66\x68\x41\x68\x67\x68\x40\x68\x3e\x68\x4a\x68\x49\x68\x29\x68\xb5\x68\x8f\x68\x74\x68\x77\x68\x93\x68\x6b\x68\xc2\x69\x6e\x68\xfc\x69\x1f\x69\x20\x68\xf9\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x24\x68\xf0\x69\x0b\x69\x01\x69\x57\x68\xe3\x69\x10\x69\x71\x69\x39\x69\x60\x69\x42\x69\x5d\x69\x84\x69\x6b\x69\x80\x69\x98\x69\x78\x69\x34\x69\xcc\x69\x87\x69\x88\x69\xce\x69\x89\x69\x66\x69\x63\x69\x79\x69\x9b\x69\xa7\x69\xbb\x69\xab\x69\xad\x69\xd4\x69\xb1\x69\xc1\x69\xca\x69\xdf\x69\x95\x69\xe0\x69\x8d\x69\xff\x6a\x2f\x69\xed\x6a\x17\x6a\x18\x6a\x65\x69\xf2\x6a\x44\x6a\x3e\x6a\xa0\x6a\x50\x6a\x5b\x6a\x35\x6a\x8e\x6a\x79\x6a\x3d\x6a\x28\x6a\x58\x6a\x7c\x6a\x91\x6a\x90\x6a\xa9\x6a\x97\x6a\xab", /* 6580 */ "\x00\x00\x73\x37\x73\x52\x6b\x81\x6b\x82\x6b\x87\x6b\x84\x6b\x92\x6b\x93\x6b\x8d\x6b\x9a\x6b\x9b\x6b\xa1\x6b\xaa\x8f\x6b\x8f\x6d\x8f\x71\x8f\x72\x8f\x73\x8f\x75\x8f\x76\x8f\x78\x8f\x77\x8f\x79\x8f\x7a\x8f\x7c\x8f\x7e\x8f\x81\x8f\x82\x8f\x84\x8f\x87\x8f\x8b\x8f\x8d\x8f\x8e\x8f\x8f\x8f\x98\x8f\x9a\x8e\xce\x62\x0b\x62\x17\x62\x1b\x62\x1f\x62\x22\x62\x21\x62\x25\x62\x24\x62\x2c\x81\xe7\x74\xef\x74\xf4\x74\xff\x75\x0f\x75\x11\x75\x13\x65\x34\x65\xee\x65\xef\x65\xf0\x66\x0a\x66\x19\x67\x72\x66\x03\x66\x15\x66\x00\x70\x85\x66\xf7\x66\x1d\x66\x34\x66\x31\x66\x36\x66\x35\x80\x06\x66\x5f\x66\x54\x66\x41\x66\x4f\x66\x56\x66\x61\x66\x57\x66\x77\x66\x84\x66\x8c\x66\xa7\x66\x9d\x66\xbe\x66\xdb\x66\xdc\x66\xe6\x66\xe9\x8d\x32\x8d\x33\x8d\x36\x8d\x3b\x8d\x3d\x8d\x40\x8d\x45\x8d\x46\x8d\x48\x8d\x49\x8d\x47\x8d\x4d\x8d\x55\x8d\x59\x89\xc7\x89\xca\x89\xcb\x89\xcc\x89\xce\x89\xcf\x89\xd0\x89\xd1\x72\x6e\x72\x9f\x72\x5d\x72\x66\x72\x6f\x72\x7e\x72\x7f\x72\x84\x72\x8b\x72\x8d\x72\x8f\x72\x92\x63\x08\x63\x32\x63\xb0\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x3f\x64\xd8\x80\x04\x6b\xea\x6b\xf3\x6b\xfd\x6b\xf5\x6b\xf9\x6c\x05\x6c\x07\x6c\x06\x6c\x0d\x6c\x15\x6c\x18\x6c\x19\x6c\x1a\x6c\x21\x6c\x29\x6c\x24\x6c\x2a\x6c\x32\x65\x35\x65\x55\x65\x6b\x72\x4d\x72\x52\x72\x56\x72\x30\x86\x62\x52\x16\x80\x9f\x80\x9c\x80\x93\x80\xbc\x67\x0a\x80\xbd\x80\xb1\x80\xab\x80\xad\x80\xb4\x80\xb7\x80\xe7\x80\xe8\x80\xe9\x80\xea\x80\xdb\x80\xc2\x80\xc4\x80\xd9\x80\xcd\x80\xd7\x67\x10\x80\xdd\x80\xeb\x80\xf1\x80\xf4\x80\xed\x81\x0d\x81\x0e\x80\xf2\x80\xfc\x67\x15\x81\x12", /* 6680 */ "\x00\x00\x8c\x5a\x81\x36\x81\x1e\x81\x2c\x81\x18\x81\x32\x81\x48\x81\x4c\x81\x53\x81\x74\x81\x59\x81\x5a\x81\x71\x81\x60\x81\x69\x81\x7c\x81\x7d\x81\x6d\x81\x67\x58\x4d\x5a\xb5\x81\x88\x81\x82\x81\x91\x6e\xd5\x81\xa3\x81\xaa\x81\xcc\x67\x26\x81\xca\x81\xbb\x81\xc1\x81\xa6\x6b\x24\x6b\x37\x6b\x39\x6b\x43\x6b\x46\x6b\x59\x98\xd1\x98\xd2\x98\xd3\x98\xd5\x98\xd9\x98\xda\x6b\xb3\x5f\x40\x6b\xc2\x89\xf3\x65\x90\x9f\x51\x65\x93\x65\xbc\x65\xc6\x65\xc4\x65\xc3\x65\xcc\x65\xce\x65\xd2\x65\xd6\x70\x80\x70\x9c\x70\x96\x70\x9d\x70\xbb\x70\xc0\x70\xb7\x70\xab\x70\xb1\x70\xe8\x70\xca\x71\x10\x71\x13\x71\x16\x71\x2f\x71\x31\x71\x73\x71\x5c\x71\x68\x71\x45\x71\x72\x71\x4a\x71\x78\x71\x7a\x71\x98\x71\xb3\x71\xb5\x71\xa8\x71\xa0\x71\xe0\x71\xd4\x71\xe7\x71\xf9\x72\x1d\x72\x28\x70\x6c\x71\x18\x71\x66\x71\xb9\x62\x3e\x62\x3d\x62\x43\x62\x48\x62\x49\x79\x3b\x79\x40\x79\x46\x79\x49\x79\x5b\x79\x5c\x79\x53\x79\x5a\x79\x62\x79\x57\x79\x60\x79\x6f\x79\x67\x79\x7a\x79\x85\x79\x8a\x79\x9a\x79\xa7\x79\xb3\x5f\xd1\x5f\xd0\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x3c\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\x59\x60\x63\x60\xab\x61\x06\x61\x0d\x61\x5d\x61\xa9\x61\x9d\x61\xcb\x61\xd1\x62\x06\x80\x80\x80\x7f\x6c\x93\x6c\xf6\x6d\xfc\x77\xf6\x77\xf8\x78\x00\x78\x09\x78\x17\x78\x18\x78\x11\x65\xab\x78\x2d\x78\x1c\x78\x1d\x78\x39\x78\x3a\x78\x3b\x78\x1f\x78\x3c\x78\x25\x78\x2c\x78\x23\x78\x29\x78\x4e\x78\x6d\x78\x56\x78\x57\x78\x26\x78\x50\x78\x47\x78\x4c\x78\x6a\x78\x9b\x78\x93\x78\x9a\x78\x87\x78\x9c\x78\xa1\x78\xa3\x78\xb2\x78\xb9\x78\xa5\x78\xd4\x78\xd9\x78\xc9", /* 6780 */ "\x00\x00\x78\xec\x78\xf2\x79\x05\x78\xf4\x79\x13\x79\x24\x79\x1e\x79\x34\x9f\x9b\x9e\xf9\x9e\xfb\x9e\xfc\x76\xf1\x77\x04\x77\x0d\x76\xf9\x77\x07\x77\x08\x77\x1a\x77\x22\x77\x19\x77\x2d\x77\x26\x77\x35\x77\x38\x77\x50\x77\x51\x77\x47\x77\x43\x77\x5a\x77\x68\x77\x62\x77\x65\x77\x7f\x77\x8d\x77\x7d\x77\x80\x77\x8c\x77\x91\x77\x9f\x77\xa0\x77\xb0\x77\xb5\x77\xbd\x75\x3a\x75\x40\x75\x4e\x75\x4b\x75\x48\x75\x5b\x75\x72\x75\x79\x75\x83\x7f\x58\x7f\x61\x7f\x5f\x8a\x48\x7f\x68\x7f\x74\x7f\x71\x7f\x79\x7f\x81\x7f\x7e\x76\xcd\x76\xe5\x88\x32\x94\x85\x94\x86\x94\x87\x94\x8b\x94\x8a\x94\x8c\x94\x8d\x94\x8f\x94\x90\x94\x94\x94\x97\x94\x95\x94\x9a\x94\x9b\x94\x9c\x94\xa3\x94\xa4\x94\xab\x94\xaa\x94\xad\x94\xac\x94\xaf\x94\xb0\x94\xb2\x94\xb4\x94\xb6\x94\xb7\x94\xb8\x94\xb9\x94\xba\x94\xbc\x94\xbd\x94\xbf\x94\xc4\x94\xc8\x94\xc9\x94\xca\x94\xcb\x94\xcc\x94\xcd\x94\xce\x94\xd0\x94\xd1\x94\xd2\x94\xd5\x94\xd6\x94\xd7\x94\xd9\x94\xd8\x94\xdb\x94\xde\x94\xdf\x94\xe0\x94\xe2\x94\xe4\x94\xe5\x94\xe7\x94\xe8\x94\xea\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe9\x94\xeb\x94\xee\x94\xef\x94\xf3\x94\xf4\x94\xf5\x94\xf7\x94\xf9\x94\xfc\x94\xfd\x94\xff\x95\x03\x95\x02\x95\x06\x95\x07\x95\x09\x95\x0a\x95\x0d\x95\x0e\x95\x0f\x95\x12\x95\x13\x95\x14\x95\x15\x95\x16\x95\x18\x95\x1b\x95\x1d\x95\x1e\x95\x1f\x95\x22\x95\x2a\x95\x2b\x95\x29\x95\x2c\x95\x31\x95\x32\x95\x34\x95\x36\x95\x37\x95\x38\x95\x3c\x95\x3e\x95\x3f\x95\x42\x95\x35\x95\x44\x95\x45\x95\x46\x95\x49\x95\x4c\x95\x4e\x95\x4f\x95\x52\x95\x53\x95\x54\x95\x56\x95\x57\x95\x58\x95\x59\x95\x5b\x95\x5e", /* 6880 */ "\x00\x00\x95\x5f\x95\x5d\x95\x61\x95\x62\x95\x64\x95\x65\x95\x66\x95\x67\x95\x68\x95\x69\x95\x6a\x95\x6b\x95\x6c\x95\x6f\x95\x71\x95\x72\x95\x73\x95\x3a\x77\xe7\x77\xec\x96\xc9\x79\xd5\x79\xed\x79\xe3\x79\xeb\x7a\x06\x5d\x47\x7a\x03\x7a\x02\x7a\x1e\x7a\x14\x7a\x39\x7a\x37\x7a\x51\x9e\xcf\x99\xa5\x7a\x70\x76\x88\x76\x8e\x76\x93\x76\x99\x76\xa4\x74\xde\x74\xe0\x75\x2c\x9e\x20\x9e\x22\x9e\x28\x9e\x29\x9e\x2a\x9e\x2b\x9e\x2c\x9e\x32\x9e\x31\x9e\x36\x9e\x38\x9e\x37\x9e\x39\x9e\x3a\x9e\x3e\x9e\x41\x9e\x42\x9e\x44\x9e\x46\x9e\x47\x9e\x48\x9e\x49\x9e\x4b\x9e\x4c\x9e\x4e\x9e\x51\x9e\x55\x9e\x57\x9e\x5a\x9e\x5b\x9e\x5c\x9e\x5e\x9e\x63\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x9e\x6b\x9e\x6c\x9e\x71\x9e\x6d\x9e\x73\x75\x92\x75\x94\x75\x96\x75\xa0\x75\x9d\x75\xac\x75\xa3\x75\xb3\x75\xb4\x75\xb8\x75\xc4\x75\xb1\x75\xb0\x75\xc3\x75\xc2\x75\xd6\x75\xcd\x75\xe3\x75\xe8\x75\xe6\x75\xe4\x75\xeb\x75\xe7\x76\x03\x75\xf1\x75\xfc\x75\xff\x76\x10\x76\x00\x76\x05\x76\x0c\x76\x17\x76\x0a\x76\x25\x76\x18\x76\x15\x76\x19\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x1b\x76\x3c\x76\x22\x76\x20\x76\x40\x76\x2d\x76\x30\x76\x3f\x76\x35\x76\x43\x76\x3e\x76\x33\x76\x4d\x76\x5e\x76\x54\x76\x5c\x76\x56\x76\x6b\x76\x6f\x7f\xca\x7a\xe6\x7a\x78\x7a\x79\x7a\x80\x7a\x86\x7a\x88\x7a\x95\x7a\xa6\x7a\xa0\x7a\xac\x7a\xa8\x7a\xad\x7a\xb3\x88\x64\x88\x69\x88\x72\x88\x7d\x88\x7f\x88\x82\x88\xa2\x88\xc6\x88\xb7\x88\xbc\x88\xc9\x88\xe2\x88\xce\x88\xe3\x88\xe5\x88\xf1\x89\x1a\x88\xfc\x88\xe8\x88\xfe\x88\xf0\x89\x21\x89\x19\x89\x13\x89\x1b\x89\x0a\x89\x34\x89\x2b\x89\x36\x89\x41", /* 6980 */ "\x00\x00\x89\x66\x89\x7b\x75\x8b\x80\xe5\x76\xb2\x76\xb4\x77\xdc\x80\x12\x80\x14\x80\x16\x80\x1c\x80\x20\x80\x22\x80\x25\x80\x26\x80\x27\x80\x29\x80\x28\x80\x31\x80\x0b\x80\x35\x80\x43\x80\x46\x80\x4d\x80\x52\x80\x69\x80\x71\x89\x83\x98\x78\x98\x80\x98\x83\x98\x89\x98\x8c\x98\x8d\x98\x8f\x98\x94\x98\x9a\x98\x9b\x98\x9e\x98\x9f\x98\xa1\x98\xa2\x98\xa5\x98\xa6\x86\x4d\x86\x54\x86\x6c\x86\x6e\x86\x7f\x86\x7a\x86\x7c\x86\x7b\x86\xa8\x86\x8d\x86\x8b\x86\xac\x86\x9d\x86\xa7\x86\xa3\x86\xaa\x86\x93\x86\xa9\x86\xb6\x86\xc4\x86\xb5\x86\xce\x86\xb0\x86\xba\x86\xb1\x86\xaf\x86\xc9\x86\xcf\x86\xb4\x86\xe9\x86\xf1\x86\xf2\x86\xed\x86\xf3\x86\xd0\x87\x13\x86\xde\x86\xf4\x86\xdf\x86\xd8\x86\xd1\x87\x03\x87\x07\x86\xf8\x87\x08\x87\x0a\x87\x0d\x87\x09\x87\x23\x87\x3b\x87\x1e\x87\x25\x87\x2e\x87\x1a\x87\x3e\x87\x48\x87\x34\x87\x31\x87\x29\x87\x37\x87\x3f\x87\x82\x87\x22\x87\x7d\x87\x7e\x87\x7b\x87\x60\x87\x70\x87\x4c\x87\x6e\x87\x8b\x87\x53\x87\x63\x87\x7c\x87\x64\x87\x59\x87\x65\x87\x93\x87\xaf\x87\xa8\x87\xd2\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xc6\x87\x88\x87\x85\x87\xad\x87\x97\x87\x83\x87\xab\x87\xe5\x87\xac\x87\xb5\x87\xb3\x87\xcb\x87\xd3\x87\xbd\x87\xd1\x87\xc0\x87\xca\x87\xdb\x87\xea\x87\xe0\x87\xee\x88\x16\x88\x13\x87\xfe\x88\x0a\x88\x1b\x88\x21\x88\x39\x88\x3c\x7f\x36\x7f\x42\x7f\x44\x7f\x45\x82\x10\x7a\xfa\x7a\xfd\x7b\x08\x7b\x03\x7b\x04\x7b\x15\x7b\x0a\x7b\x2b\x7b\x0f\x7b\x47\x7b\x38\x7b\x2a\x7b\x19\x7b\x2e\x7b\x31\x7b\x20\x7b\x25\x7b\x24\x7b\x33\x7b\x3e\x7b\x1e\x7b\x58\x7b\x5a\x7b\x45\x7b\x75\x7b\x4c\x7b\x5d\x7b\x60\x7b\x6e", /* 6a80 */ "\x00\x00\x7b\x7b\x7b\x62\x7b\x72\x7b\x71\x7b\x90\x7b\xa6\x7b\xa7\x7b\xb8\x7b\xac\x7b\x9d\x7b\xa8\x7b\x85\x7b\xaa\x7b\x9c\x7b\xa2\x7b\xab\x7b\xb4\x7b\xd1\x7b\xc1\x7b\xcc\x7b\xdd\x7b\xda\x7b\xe5\x7b\xe6\x7b\xea\x7c\x0c\x7b\xfe\x7b\xfc\x7c\x0f\x7c\x16\x7c\x0b\x7c\x1f\x7c\x2a\x7c\x26\x7c\x38\x7c\x41\x7c\x40\x81\xfe\x82\x01\x82\x02\x82\x04\x81\xec\x88\x44\x82\x21\x82\x22\x82\x23\x82\x2d\x82\x2f\x82\x28\x82\x2b\x82\x38\x82\x3b\x82\x33\x82\x34\x82\x3e\x82\x44\x82\x49\x82\x4b\x82\x4f\x82\x5a\x82\x5f\x82\x68\x88\x7e\x88\x85\x88\x88\x88\xd8\x88\xdf\x89\x5e\x7f\x9d\x7f\x9f\x7f\xa7\x7f\xaf\x7f\xb0\x7f\xb2\x7c\x7c\x65\x49\x7c\x91\x7c\x9d\x7c\x9c\x7c\x9e\x7c\xa2\x7c\xb2\x7c\xbc\x7c\xbd\x7c\xc1\x7c\xc7\x7c\xcc\x7c\xcd\x7c\xc8\x7c\xc5\x7c\xd7\x7c\xe8\x82\x6e\x66\xa8\x7f\xbf\x7f\xce\x7f\xd5\x7f\xe5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xee\x7f\xf3\x7c\xf8\x7d\x77\x7d\xa6\x7d\xae\x7e\x47\x7e\x9b\x9e\xb8\x9e\xb4\x8d\x73\x8d\x84\x8d\x94\x8d\x91\x8d\xb1\x8d\x67\x8d\x6d\x8c\x47\x8c\x49\x91\x4a\x91\x50\x91\x4e\x91\x4f\x91\x64\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x62\x91\x61\x91\x70\x91\x69\x91\x6f\x91\x7d\x91\x7e\x91\x72\x91\x74\x91\x79\x91\x8c\x91\x85\x91\x90\x91\x8d\x91\x91\x91\xa2\x91\xa3\x91\xaa\x91\xad\x91\xae\x91\xaf\x91\xb5\x91\xb4\x91\xba\x8c\x55\x9e\x7e\x8d\xb8\x8d\xeb\x8e\x05\x8e\x59\x8e\x69\x8d\xb5\x8d\xbf\x8d\xbc\x8d\xba\x8d\xc4\x8d\xd6\x8d\xd7\x8d\xda\x8d\xde\x8d\xce\x8d\xcf\x8d\xdb\x8d\xc6\x8d\xec\x8d\xf7\x8d\xf8\x8d\xe3\x8d\xf9\x8d\xfb\x8d\xe4\x8e\x09\x8d\xfd\x8e\x14\x8e\x1d\x8e\x1f\x8e\x2c\x8e\x2e\x8e\x23\x8e\x2f\x8e\x3a\x8e\x40\x8e\x39", /* 6b80 */ "\x00\x00\x8e\x35\x8e\x3d\x8e\x31\x8e\x49\x8e\x41\x8e\x42\x8e\x51\x8e\x52\x8e\x4a\x8e\x70\x8e\x76\x8e\x7c\x8e\x6f\x8e\x74\x8e\x85\x8e\x8f\x8e\x94\x8e\x90\x8e\x9c\x8e\x9e\x8c\x78\x8c\x82\x8c\x8a\x8c\x85\x8c\x98\x8c\x94\x65\x9b\x89\xd6\x89\xde\x89\xda\x89\xdc\x89\xe5\x89\xeb\x89\xef\x8a\x3e\x8b\x26\x97\x53\x96\xe9\x96\xf3\x96\xef\x97\x06\x97\x01\x97\x08\x97\x0f\x97\x0e\x97\x2a\x97\x2d\x97\x30\x97\x3e\x9f\x80\x9f\x83\x9f\x85\x9f\x86\x9f\x87\x9f\x88\x9f\x89\x9f\x8a\x9f\x8c\x9e\xfe\x9f\x0b\x9f\x0d\x96\xb9\x96\xbc\x96\xbd\x96\xce\x96\xd2\x77\xbf\x96\xe0\x92\x8e\x92\xae\x92\xc8\x93\x3e\x93\x6a\x93\xca\x93\x8f\x94\x3e\x94\x6b\x9c\x7f\x9c\x82\x9c\x85\x9c\x86\x9c\x87\x9c\x88\x7a\x23\x9c\x8b\x9c\x8e\x9c\x90\x9c\x91\x9c\x92\x9c\x94\x9c\x95\x9c\x9a\x9c\x9b\x9c\x9e\x9c\x9f\x9c\xa0\x9c\xa1\x9c\xa2\x9c\xa3\x9c\xa5\x9c\xa6\x9c\xa7\x9c\xa8\x9c\xa9\x9c\xab\x9c\xad\x9c\xae\x9c\xb0\x9c\xb1\x9c\xb2\x9c\xb3\x9c\xb4\x9c\xb5\x9c\xb6\x9c\xb7\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xca\x9c\xcb\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xcc\x9c\xcd\x9c\xce\x9c\xcf\x9c\xd0\x9c\xd3\x9c\xd4\x9c\xd5\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xdc\x9c\xdd\x9c\xdf\x9c\xe2\x97\x7c\x97\x85\x97\x91\x97\x92\x97\x94\x97\xaf\x97\xab\x97\xa3\x97\xb2\x97\xb4\x9a\xb1\x9a\xb0\x9a\xb7\x9e\x58\x9a\xb6\x9a\xba\x9a\xbc\x9a\xc1\x9a\xc0\x9a\xc5\x9a\xc2\x9a\xcb\x9a\xcc\x9a\xd1\x9b\x45\x9b\x43\x9b\x47\x9b\x49\x9b\x48\x9b\x4d\x9b\x51\x98\xe8\x99\x0d\x99\x2e\x99\x55\x99\x54\x9a\xdf\x9a\xe1\x9a\xe6\x9a\xef\x9a\xeb\x9a\xfb\x9a\xed\x9a\xf9\x9b\x08\x9b\x0f\x9b\x13\x9b\x1f", /* 6c80 */ "\x00\x00\x9b\x23\x9e\xbd\x9e\xbe\x7e\x3b\x9e\x82\x9e\x87\x9e\x88\x9e\x8b\x9e\x92\x93\xd6\x9e\x9d\x9e\x9f\x9e\xdb\x9e\xdc\x9e\xdd\x9e\xe0\x9e\xdf\x9e\xe2\x9e\xe9\x9e\xe7\x9e\xe5\x9e\xea\x9e\xef\x9f\x22\x9f\x2c\x9f\x2f\x9f\x39\x9f\x37\x9f\x3d\x9f\x3e\x9f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ NULL, /* 6d80 */ NULL, /* 6e00 */ NULL, /* 6e80 */ NULL, /* 6f00 */ NULL, /* 6f80 */ NULL, /* 7000 */ NULL, /* 7080 */ NULL, /* 7100 */ NULL, /* 7180 */ NULL, /* 7200 */ NULL, /* 7280 */ NULL, /* 7300 */ NULL, /* 7380 */ NULL, /* 7400 */ NULL, /* 7480 */ NULL, /* 7500 */ NULL, /* 7580 */ NULL, /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 7680 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* 7780 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* 7880 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* 7980 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* 7a80 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* 7b80 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* 7c80 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* 7d80 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* 7e80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* 7f80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* 8000 */ NULL, /* 8080 */ NULL, /* 8100 */ NULL, /* 8180 */ NULL, /* 8200 */ NULL, /* 8280 */ NULL, /* 8300 */ NULL, /* 8380 */ NULL, /* 8400 */ NULL, /* 8480 */ NULL, /* 8500 */ NULL, /* 8580 */ NULL, /* 8600 */ NULL, /* 8680 */ NULL, /* 8700 */ NULL, /* 8780 */ NULL, /* 8800 */ NULL, /* 8880 */ NULL, /* 8900 */ NULL, /* 8980 */ NULL, /* 8a00 */ NULL, /* 8a80 */ NULL, /* 8b00 */ NULL, /* 8b80 */ NULL, /* 8c00 */ NULL, /* 8c80 */ NULL, /* 8d00 */ NULL, /* 8d80 */ NULL, /* 8e00 */ NULL, /* 8e80 */ NULL, /* 8f00 */ NULL, /* 8f80 */ NULL, /* 9000 */ NULL, /* 9080 */ NULL, /* 9100 */ NULL, /* 9180 */ NULL, /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ NULL, /* e080 */ NULL, /* e100 */ NULL, /* e180 */ NULL, /* e200 */ NULL, /* e280 */ NULL, /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp937", "0x03a70343" /* 935, 835 */, "big5-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-937_P110-1999 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\xa1\x44\xed\x44\x4b\x00\x00\x00\x00\x44\xee\x00\x00\x43\x79\x46\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x53\x00\x00\x45\x51\x45\x52\x45\x54\x00\x00\x47\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x44\x4a\x44\x4a\x00\x00\x00\x00\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x43\x77\x43\x78\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x43\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x73\x00\x00\x44\x50\x44\xef\x00\x00\x42\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x42\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x46\xbb\x00\x00\x00\x00\x00\x00\x46\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x46\xd4\x46\xd5\x46\xd7\x46\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xef\x46\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6e\x00\x00\x43\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x43\x70\x00\x00\x43\x4e\x43\x71\x00\x00\x00\x00\x00\x00\x43\x4f\x43\x64\x00\x00\x00\x00\x43\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xda\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc5\x00\x00\x00\x00\x43\x61\x44\x4d\x46\xcc\x46\xcb\x00\x00\x00\x00\x42\x4f\x00\x00\x44\x7c\x00\x00\x43\x6c\x43\x6d\x46\xc8\x46\xc9\x46\xd0\x43\x63\x00\x00\x46\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa1\x43\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x46\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x43\x5d\x43\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x43\x68\x43\x69\x00\x00\x00\x00\x43\x66\x43\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xd2\x00\x00\x00\x00\x00\x00\x46\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8d\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x00\x00\x47\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x41\x46\x42\x46\x43\x46\x44\x46\x45\x46\x46\x46\x47\x46\x48\x46\x49\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x46\x52\x46\x53\x46\x54\x46\x55\x46\x56\x46\x57\x46\x58\x46\x59\x46\x5a\x00\x00\x00\x00", /* 2480 */ NULL, /* 2500 */ "\x46\x75\x43\xb7\x46\x76\x43\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x78\x00\x00\x00\x00\x43\xb9\x46\x79\x00\x00\x00\x00\x43\xe1\x46\x7a\x00\x00\x00\x00\x43\xe3\x46\x7b\x00\x00\x00\x00\x43\xe2\x46\x73\x43\xee\x00\x00\x00\x00\x43\xe9\x00\x00\x00\x00\x43\xe4\x46\x72\x43\xf0\x00\x00\x00\x00\x43\xeb\x00\x00\x00\x00\x43\xe6\x46\x71\x00\x00\x00\x00\x43\xea\x43\xef\x00\x00\x00\x00\x43\xe5\x46\x70\x00\x00\x00\x00\x43\xec\x43\xf1\x00\x00\x00\x00\x43\xe7\x46\x6f\x00\x00\x00\x00\x43\xed\x00\x00\x00\x00\x43\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x46\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x82\x00\x00\x00\x00\x46\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x83\x00\x00\x00\x00\x46\x7c\x46\x7d\x46\x7f\x46\x7e\x46\x89\x46\x8a\x46\x8b\x46\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x46\x60\x46\x61\x46\x62\x46\x63\x46\x64\x46\x65\x46\x66\x46\x67\x46\x6e\x46\x6d\x46\x6c\x46\x6b\x46\x6a\x46\x69\x46\x68\x00\x00\x00\x00\x00\x00\x00\x00\x46\x74\x46\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x85\x46\x86\x46\x88\x46\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x76\x00\x00\x00\x00\x43\x75\x00\x00\x43\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x46\xb9\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe9\x46\xea\x00\x00\x00\x00\x45\x41\x45\x42\x45\x43\x45\x44\x45\x45\x45\x46\x45\x47\x45\x48\x45\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x56\x45\x57\x45\x58\x45\x59\x45\x5a\x45\x5b\x45\x5c\x45\x5d\x45\x5e\x45\x5f\x45\x60\x45\x61\x45\x62\x45\x63\x45\x64\x45\x65\x45\x66\x45\x67\x45\x68\x45\x69\x45\x6a\x45\x6b\x45\x6c\x45\x6d\x45\x6e\x45\x6f\x45\x70\x45\x71\x45\x72\x45\x73\x45\x74\x45\x75\x45\x76\x45\x77\x45\x78\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3300 */ NULL, /* 3380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe2\x46\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xdd\x46\xde\x46\xdf\x00\x00\x00\x00\x46\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe0\x00\x00\x00\x00\x46\xcf\x46\xce\x00\x00\x00\x00\x46\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x4c\x41\x4c\x43\x00\x00\x4c\x44\x00\x00\x00\x00\x00\x00\x69\x46\x4c\x57\x4c\x55\x4c\x58\x4c\x56\x69\x47\x4c\x83\x69\x50\x69\x4e\x4c\x82\x4c\x81\x00\x00\x00\x00\x4c\xe1\x4c\xe0\x4c\xdf\x00\x00\x4c\xe2\x4c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa1\x4d\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xe3\x00\x00\x48\x42\x00\x00\x00\x00\x4c\x59\x00\x00\x4c\x84\x69\x51\x00\x00\x4c\x85\x69\x64\x4e\x8c\x6b\x52\x00\x00\x00\x00\x48\x43\x00\x00\x4c\x5a\x4c\x86\x00\x00\x4c\xe3\x69\x65\x00\x00\x00\x00\x48\x44\x00\x00\x00\x00\x69\x41\x4c\x45\x00\x00\x4c\x5c\x00\x00\x69\x48\x4c\x5d\x00\x00\x00\x00\x4c\x87\x00\x00\x4c\xe4\x4c\xe6\x4c\xe5\x00\x00\x00\x00\x4d\xa3\x4d\xa4\x00\x00\x00\x00\x4f\xe4\x00\x00\x53\xfd\x4c\x42\x00\x00\x00\x00\x69\x42\x4c\x46\x4c\x5f\x4c\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x92\x72\x6f", /* 4e80 */ "\x00\x00\x00\x00\x5b\xa9\x79\x77\x79\x78\x48\x46\x4c\x47\x00\x00\x4c\x89\x00\x00\x00\x00\x4f\xe6\x4c\x48\x69\x49\x4c\x60\x00\x00\x00\x00\x4c\x8a\x4c\x8c\x69\x52\x4c\x8d\x4c\x8b\x00\x00\x00\x00\x00\x00\x4d\xa6\x00\x00\x4f\xe7\x00\x00\x00\x00\x4f\xe8\x51\xe6\x48\x48\x4c\x61\x4c\x8e\x00\x00\x4d\xa7\x4d\xa9\x4d\xa8\x00\x00\x4e\x8d\x00\x00\x00\x00\x4f\xe9\x4f\xea\x51\xe7\x51\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x54\x41\x00\x00\x00\x00\x79\x79\x00\x00\x00\x00\x8f\x66\x4c\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x90\x4c\x8f\x69\x53\x4c\x91\x4c\x97\x00\x00\x4c\x92\x4c\x93\x69\x55\x69\x54\x4c\x95\x4c\x96\x00\x00\x4c\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe9\x4c\xea\x4c\xeb\x4c\xec\x4c\xe8\x4c\xef\x69\x6b\x00\x00\x69\x67\x69\x6a\x4c\xf0\x4d\x43\x00\x00\x69\x69\x00\x00\x4c\xed\x4c\xee\x4c\xe7\x00\x00\x00\x00\x69\x66\x69\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb6\x69\x90\x4d\xb3\x4d\xb7\x69\x9a\x69\x8e\x4d\xb4\x69\x92\x00\x00\x00\x00\x00\x00\x4d\xb5\x00\x00\x4d\xb8\x00\x00\x4d\xaa", /* 4f00 */ "\x69\x91\x4d\xb9\x69\x95\x00\x00\x69\x99\x69\x96\x00\x00\x00\x00\x69\x93\x4d\xab\x4d\xad\x4d\xba\x00\x00\x4d\xaf\x69\x8b\x4d\xb2\x4d\xb0\x4d\xb1\x69\x9b\x69\x98\x69\x8f\x4d\xae\x00\x00\x00\x00\x69\x8c\x4d\xac\x00\x00\x00\x00\x00\x00\x69\x94\x00\x00\x00\x00\x00\x00\x00\x00\x69\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x8d\x6a\x48\x00\x00\x4e\xa3\x4e\x96\x00\x00\x00\x00\x6a\x49\x4e\x93\x00\x00\x4e\xa5\x00\x00\x4e\x9b\x00\x00\x4e\x9a\x69\xfa\x4e\x9e\x4e\x99\x6a\x42\x6a\x4a\x00\x00\x6a\x46\x00\x00\x4e\x9c\x00\x00\x00\x00\x4e\x9f\x4e\x90\x4e\xa8\x69\xfc\x00\x00\x00\x00\x6b\x5e\x4e\x8e\x4e\xa4\x4e\x8f\x4e\x97\x4e\x98\x6a\x44\x69\xfd\x4e\x9d\x4e\x95\x69\xf9\x4e\x91\x6a\x47\x4e\xa6\x4e\xa9\x4e\x94\x4e\xa1\x4e\xa7\x4e\x92\x6a\x45\x4e\xa2\x6a\x4b\x69\xfb\x4e\xa0\x6a\x41\x00\x00\x00\x00\x6a\x43\x00\x00\x4f\xf8\x6b\x60\x6b\x6c\x4f\xf0\x00\x00\x6b\x6d\x4f\xeb\x4f\xf5\x00\x00\x00\x00\x4f\xee\x6b\x5a\x4f\xf6\x6b\x59\x6b\x5d\x6b\x64\x6b\x62\x50\x41\x4f\xf9\x6b\x54\x6b\x56\x4f\xfb\x4f\xef", /* 4f80 */ "\x6b\x57\x6b\x63\x6b\x6a\x4f\xf4\x6b\x5c\x6b\x55\x4f\xf3\x6b\x58\x4f\xf7\x6b\x5b\x00\x00\x4f\xf2\x00\x00\x4f\xed\x00\x00\x4f\xfc\x6b\x65\x4f\xfd\x6b\x69\x00\x00\x6b\x67\x6b\x6b\x4f\xfa\x6b\x5f\x6b\x53\x00\x00\x6b\x61\x4f\xf1\x6b\x66\x4f\xec\x6b\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf7\x51\xeb\x00\x00\x00\x00\x6d\x43\x6d\x4b\x00\x00\x51\xea\x51\xf2\x52\x41\x00\x00\x6d\x51\x6d\x4f\x6d\x4a\x00\x00\x00\x00\x00\x00\x51\xec\x6d\x50\x6d\x46\x51\xfa\x51\xf1\x51\xf9\x6d\x41\x00\x00\x6d\x4d\x00\x00\x6d\x44\x51\xf5\x6d\x45\x00\x00\x6c\xfd\x51\xfc\x51\xef\x51\xf8\x51\xee\x00\x00\x6d\x42\x6d\x47\x00\x00\x6d\x4e\x51\xf6\x51\xf3\x6d\x49\x51\xfb\x6d\x4c\x6d\x48\x51\xf0\x51\xfd\x51\xf4\x51\xed\x51\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x52\x00\x00\x54\x5b\x54\x45\x00\x00\x54\x55\x00\x00\x54\x5a\x6f\x93\x6f\x92\x6f\x97\x6f\x98\x54\x48\x00\x00\x54\x51\x00\x00\x00\x00\x00\x00\x54\x5e\x00\x00", /* 5000 */ "\x54\x52\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x8c\x54\x4b\x6f\x8d\x00\x00\x54\x60\x00\x00\x54\x57\x54\x42\x54\x43\x6f\xa0\x56\xa3\x00\x00\x54\x50\x54\x4f\x6f\x8e\x54\x53\x72\x7f\x54\x4a\x6f\x99\x54\x59\x54\x58\x54\x4e\x6f\x91\x6f\x9a\x00\x00\x6f\x8b\x54\x4d\x6f\x9b\x54\x56\x6f\x8f\x54\x44\x00\x00\x54\x47\x54\x46\x6f\x9c\x54\x54\x54\x49\x54\x5d\x54\x5f\x6f\x96\x54\x5c\x00\x00\x6f\x9e\x6f\x90\x6f\x9f\x00\x00\x6f\x94\x00\x00\x6f\x9d\x00\x00\x6f\x95\x00\x00\x00\x00\x00\x00\x00\x00\x54\x4c\x00\x00\x00\x00\x00\x00\x72\x88\x72\x7b\x00\x00\x56\x97\x00\x00\x72\x81\x72\x87\x56\x96\x72\x79\x56\x9a\x72\x7d\x72\x76\x56\x98\x72\x7a\x56\x9d\x56\xa2\x00\x00\x72\x8c\x00\x00\x72\x75\x00\x00\x56\x9e\x00\x00\x72\x8b\x00\x00\x00\x00\x56\x99\x72\x7c\x56\x95\x72\x77\x72\x73\x72\x82\x72\x74\x72\x72\x72\x7e\x72\x85\x72\x86\x56\x9b\x00\x00\x00\x00\x75\xc0\x72\x83\x72\x71\x72\x84\x00\x00\x56\xa5\x72\x89\x56\xa4\x72\x70\x00\x00\x72\x78\x72\x8a\x56\xa0\x56\x9f\x56\x9c\x56\xa1\x00\x00\x00\x00\x56\x93\x00\x00\x00\x00\x56\x94\x00\x00\x00\x00", /* 5080 */ "\x59\x4e\x00\x00\x75\xc3\x75\xbc\x00\x00\x59\x4b\x00\x00\x75\xc4\x00\x00\x00\x00\x00\x00\x75\xba\x75\xbd\x59\x4a\x75\xbe\x00\x00\x00\x00\x59\x4d\x75\xc2\x00\x00\x75\xb8\x75\xb7\x59\x4f\x00\x00\x59\x50\x59\x4c\x59\x51\x75\xb6\x75\xc1\x75\xbf\x75\xb9\x00\x00\x00\x00\x00\x00\x59\x49\x75\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb0\x5b\xaa\x79\x7d\x5b\xb3\x79\x84\x79\x87\x5b\xac\x5b\xad\x79\x81\x5b\xab\x79\x8a\x5b\xb1\x79\x8b\x00\x00\x79\x86\x5b\xb2\x00\x00\x79\x7a\x5b\xaf\x79\x7b\x00\x00\x79\x85\x79\x83\x00\x00\x79\x7e\x5b\xae\x79\x7c\x5b\xb4\x79\x82\x79\x89\x79\x7f\x79\x88\x00\x00\x00\x00\x5d\xfb\x5d\xf8\x00\x00\x5d\xf9\x00\x00\x7d\x43\x7c\xf8\x5d\xf7\x5d\xf4\x7c\xf9\x00\x00\x00\x00\x5d\xf6\x7c\xfc\x00\x00\x7d\x41\x00\x00\x00\x00\x7d\x48\x00\x00\x00\x00\x7d\x47\x7d\x42\x5d\xf3\x7c\xf7\x5d\xf1\x7c\xfa\x5d\xfc\x7c\xfd\x00\x00\x7d\x44\x5d\xf5\x5d\xf2\x7d\x46\x7d\x45\x5d\xfa\x00\x00\x7c\xfb\x00\x00\x60\x42\x80\x76\x00\x00\x80\x73\x60\x43\x00\x00\x60\x41\x00\x00\x80\x7a\x80\x77\x80\x70", /* 5100 */ "\x5f\xfd\x00\x00\x60\x44\x80\x71\x5f\xfc\x60\x47\x80\x74\x80\x75\x60\x45\x60\x46\x80\x7b\x80\x78\x80\x79\x00\x00\x00\x00\x00\x00\x62\x53\x83\xc3\x62\x50\x83\xc0\x62\x52\x62\x54\x00\x00\x83\xc1\x62\x51\x00\x00\x83\xc2\x00\x00\x83\xbf\x00\x00\x00\x00\x63\xc0\x86\xc8\x63\xc1\x86\xc6\x00\x00\x86\xc7\x86\xc5\x86\xc4\x00\x00\x00\x00\x86\xc9\x63\xbf\x00\x00\x00\x00\x89\x65\x89\x66\x00\x00\x80\x72\x89\x64\x63\xc2\x66\x4b\x8b\x5a\x8b\x5b\x00\x00\x67\x83\x67\x84\x8e\x70\x8e\x6f\x67\xd7\x67\xd6\x90\x41\x00\x00\x4c\x4a\x4c\x62\x4c\x99\x00\x00\x4c\x98\x4c\xf2\x4c\xf1\x4d\xbd\x4d\xbc\x4d\xbe\x4d\xbb\x00\x00\x4e\xab\x4e\xaa\x4e\xac\x00\x00\x00\x00\x00\x00\x00\x00\x50\x43\x00\x00\x50\x42\x50\x44\x00\x00\x52\x42\x00\x00\x46\xf1\x6f\xa1\x46\xf2\x56\xa6\x46\xf4\x46\xf3\x75\xc5\x00\x00\x46\xf5\x5d\xfd\x46\xf6\x00\x00\x4c\x4b\x00\x00\x4c\x9a\x4d\xbf\x50\x45\x00\x00\x4c\x4c\x4c\x9d\x4c\x9b\x4c\x9c\x00\x00\x00\x00\x4d\xc0\x00\x00\x00\x00\x00\x00\x4e\xad\x50\x47\x50\x46\x50\x48\x00\x00\x00\x00\x00\x00\x54\x61\x00\x00\x00\x00\x00\x00", /* 5180 */ "\x62\x55\x00\x00\x48\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4f\x00\x00\x4c\xf3\x4c\xf4\x00\x00\x00\x00\x4d\xc1\x00\x00\x6a\x4c\x00\x00\x52\x44\x52\x43\x6f\xa3\x6f\xa2\x56\xa7\x48\x4e\x4c\x9e\x69\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x6e\x00\x00\x52\x45\x00\x00\x54\x64\x00\x00\x54\x62\x54\x63\x00\x00\x00\x00\x00\x00\x00\x00\x62\x56\x48\x4f\x4c\xf5\x00\x00\x00\x00\x00\x00\x4d\xc2\x69\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xae\x4e\xaf\x00\x00\x6a\x4d\x00\x00\x00\x00\x6b\x6f\x50\x49\x6b\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xa5\x6f\xa6\x54\x67\x00\x00\x6f\xa7\x00\x00\x6f\xa4\x54\x68\x54\x66\x54\x65\x6f\xa8\x00\x00\x72\x8d\x00\x00\x00\x00\x00\x00\x75\xc6\x00\x00\x00\x00\x79\x8c\x7d\x49\x00\x00\x00\x00\x00\x00\x60\x48\x62\x57\x83\xc4\x00\x00\x4c\x4d\x4c\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xa8\x59\x53\x00\x00\x5e\x41\x00\x00\x69\x43\x4c\x9f\x00\x00\x4c\xf8\x4c\xf6\x4c\xf7\x00\x00\x00\x00\x50\x4a\x00\x00\x00\x00", /* 5200 */ "\x4c\x4e\x4c\x4f\x00\x00\x4c\x63\x00\x00\x00\x00\x4c\xa0\x4c\xa1\x4c\xa2\x69\x9e\x4c\xf9\x00\x00\x69\x6c\x00\x00\x4d\xc6\x00\x00\x69\x9f\x4d\xc4\x4d\xc5\x69\x9d\x00\x00\x00\x00\x4d\xc7\x4d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x4e\x51\xce\x6a\x4f\x00\x00\x00\x00\x6a\x50\x00\x00\x00\x00\x4e\xb1\x4e\xb0\x00\x00\x00\x00\x4e\xb4\x4e\xb2\x4e\xb3\x00\x00\x00\x00\x00\x00\x50\x50\x00\x00\x50\x4f\x6b\x75\x6b\x72\x6b\x73\x00\x00\x6b\x71\x50\x51\x50\x4d\x50\x4c\x00\x00\x50\x4e\x50\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x52\x00\x00\x52\x47\x6d\x53\x00\x00\x6b\x74\x52\x4c\x00\x00\x6d\x54\x52\x48\x52\x4b\x52\x4a\x52\x49\x52\x46\x00\x00\x00\x00\x00\x00\x6f\xab\x00\x00\x54\x6b\x6f\xae\x54\x69\x00\x00\x00\x00\x00\x00\x6f\xaa\x54\x6c\x54\x6a\x54\x6d\x6f\xac\x6f\xad\x00\x00\x6f\xa9\x6f\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x57\x56\xa9\x72\x8e\x72\x90\x72\x8f\x72\x91\x56\xaa\x00\x00\x00\x00\x59\x54\x00\x00\x59\x55\x59\x56\x00\x00\x5b\xb6\x79\x8e\x00\x00\x79\x8d\x79\x8f\x79\x90\x5b\xb7\x00\x00\x5b\xb5", /* 5280 */ "\x7d\x4a\x7d\x4b\x5e\x43\x5e\x42\x7e\xe2\x00\x00\x00\x00\x60\x49\x60\x4a\x60\x4b\x60\x4d\x80\x7c\x80\x7d\x60\x4c\x00\x00\x00\x00\x00\x00\x62\x58\x00\x00\x62\x59\x00\x00\x00\x00\x8b\x5c\x8e\x72\x8e\x71\x90\x42\x00\x00\x4c\x50\x00\x00\x00\x00\x00\x00\x4c\xfb\x4c\xfa\x00\x00\x00\x00\x4d\xc8\x00\x00\x00\x00\x69\xa0\x00\x00\x00\x00\x4e\xb6\x4e\xb7\x4e\xb5\x4e\xb8\x6a\x51\x6a\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x54\x6b\x76\x00\x00\x50\x53\x00\x00\x6d\x55\x52\x50\x6d\x56\x52\x4f\x00\x00\x00\x00\x00\x00\x52\x4d\x00\x00\x52\x4e\x00\x00\x00\x00\x00\x00\x6f\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x56\xab\x72\x93\x00\x00\x56\xae\x72\x92\x57\xaa\x56\xad\x56\xac\x00\x00\x59\x5a\x00\x00\x59\x59\x59\x58\x5b\xb8\x00\x00\x00\x00\x5b\xbb\x5b\xbc\x5b\xba\x00\x00\x5b\xb9\x00\x00\x00\x00\x7d\x4c\x00\x00\x7d\x4d\x00\x00\x00\x00\x00\x00\x80\x7f\x60\x4e\x80\x7e\x00\x00\x62\x5a\x86\xca\x63\xc3\x00\x00\x8b\x5d\x66\xdf\x48\x54\x4c\x64\x4c\xa3\x69\x57\x00\x00\x4c\xa4\x4c\xa5", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xfc\x4c\xfd\x00\x00\x4d\xc9\x6a\x53\x6b\x77\x6b\x78\x00\x00\x52\x51\x6f\xb1\x56\xb0\x56\xaf\x75\xc8\x75\xc7\x00\x00\x00\x00\x4c\x51\x4c\xa6\x4d\x41\x00\x00\x56\xb1\x69\x44\x00\x00\x69\x6d\x4d\x42\x00\x00\x69\xa2\x4d\xcb\x4d\xca\x69\xa1\x4e\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6e\x00\x00\x00\x00\x72\x94\x00\x00\x5b\xbd\x7d\x4e\x5e\x44\x00\x00\x00\x00\x83\xc5\x00\x00\x00\x00\x8c\xeb\x48\x57\x4c\xa7\x00\x00\x00\x00\x6b\x79\x6d\x57\x56\xb4\x56\xb2\x56\xb3\x4c\x52\x00\x00\x4c\x65\x45\x4b\x4c\xaa\x00\x00\x4c\xa9\x4c\xa8\x4d\x45\x4d\x44\x00\x00\x69\x6e\x69\xa3\x00\x00\x00\x00\x00\x00\x50\x58\x50\x55\x50\x57\x50\x56\x00\x00\x00\x00\x52\x52\x00\x00\x00\x00\x59\x5b\x00\x00\x4c\x53\x00\x00\x4c\xab\x00\x00\x4d\x47\x4d\x46\x00\x00\x6a\x54\x00\x00\x00\x00\x50\x59\x00\x00\x00\x00\x48\x5a\x00\x00\x00\x00\x69\x58\x00\x00\x4d\x49\x4d\x48\x4d\xcc\x4d\xcd\x6a\x55\x4e\xba\x00\x00\x4e\xbb\x00\x00\x50\x5a\x50\x5b\x50\x5c\x00\x00\x52\x53\x6d\x58\x00\x00\x00\x00\x54\x6f", /* 5380 */ "\x00\x00\x00\x00\x69\x45\x00\x00\x4c\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xa4\x00\x00\x00\x00\x00\x00\x6a\x56\x6a\x57\x00\x00\x00\x00\x6b\x7a\x00\x00\x6b\x7b\x00\x00\x6d\x5a\x6d\x59\x6d\x5c\x6d\x5b\x52\x54\x00\x00\x72\x95\x54\x71\x6f\xb2\x54\x70\x00\x00\x00\x00\x00\x00\x00\x00\x75\xc9\x59\x5c\x00\x00\x75\xca\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x4f\x5e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4f\x00\x00\x8b\x5e\x00\x00\x48\x5c\x00\x00\x00\x00\x69\x59\x00\x00\x4d\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x54\x4c\x66\x4c\xae\x4c\xad\x00\x00\x4c\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x50\x5d\x50\x5f\x00\x00\x00\x00\x00\x00\x52\x55\x00\x00\x00\x00\x00\x00\x54\x72\x00\x00\x83\xc6\x65\x5a\x4c\x67\x4d\x4c\x4d\x5b\x4d\x56\x00\x00\x4d\x51\x4d\x50\x4d\x57\x4d\x55\x4d\x4e\x4d\x5c\x4d\x4f\x4d\x4b\x4d\x5a\x4d\x59\x4d\x58\x4d\x4d\x00\x00\x4d\x54\x00\x00\x00\x00\x4d\x53\x00\x00\x00\x00\x4d\x5d\x4d\x52\x00\x00\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x4d\xd3\x00\x00\x4d\xd9\x4d\xd5\x00\x00\x4d\xdb\x69\xa5\x4d\xd8\x4d\xce\x4d\xd1\x4d\xd4\x4d\xd0\x4d\xd7\x4d\xda\x4d\xcf\x4d\xd2\x4d\xd6\x4d\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x60\x6a\x5d\x00\x00\x4e\xc8\x6a\x5e\x4e\xbc\x4e\xbe\x4e\xd6\x4e\xd1\x00\x00\x00\x00\x00\x00\x6a\x65\x6a\x5f\x4e\xc0\x4e\xc2\x6a\x64\x4e\xc9\x6a\x5a\x4e\xd5\x4e\xd7\x4e\xbd\x4e\xce\x00\x00\x6a\x58\x4e\xd4\x00\x00\x4e\xc5\x00\x00\x4e\xcf\x4e\xd0\x6a\x59\x4e\xcd\x4e\xcb\x00\x00\x4e\xcc\x4e\xd2\x6a\x61\x4e\xbf\x00\x00\x4e\xd3\x6a\x63\x4e\xc7\x4e\xc4\x00\x00\x6a\x5c\x4e\xc3\x6a\x66\x4e\xc6\x00\x00\x4e\xca\x00\x00\x00\x00\x00\x00\x4e\xc1\x6a\x62\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x8d\x6b\x8c\x50\x71\x6b\x8f\x6b\x91\x6b\x86\x6b\x89\x6b\x90\x50\x72\x00\x00\x00\x00\x6b\x83\x6b\x87\x00\x00\x00\x00\x6b\x8b\x6d\x6b\x50\x6d\x6d\x6f\x50\x60\x6b\x88\x50\x61\x50\x6e\x50\x67\x50\x63\x00\x00\x6b\x84\x50\x66\x50\x6b\x50\x74\x6b\x85\x6b\x7d", /* 5480 */ "\x50\x65\x6b\x7e\x6b\x81\x00\x00\x50\x68\x00\x00\x50\x6a\x6b\x7c\x6b\x82\x00\x00\x00\x00\x50\x73\x50\x6f\x6b\x8a\x50\x75\x00\x00\x50\x6c\x6b\x7f\x50\x69\x00\x00\x00\x00\x50\x64\x50\x62\x00\x00\x6b\x8e\x00\x00\x50\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x6a\x6d\x5e\x6d\x6d\x00\x00\x00\x00\x6d\x60\x52\x5c\x52\x6a\x52\x58\x52\x69\x52\x61\x52\x66\x52\x56\x6d\x5f\x6d\x65\x52\x65\x6d\x71\x52\x67\x00\x00\x52\x5d\x00\x00\x00\x00\x6d\x67\x6d\x64\x52\x5b\x00\x00\x6d\x5d\x52\x68\x6d\x6c\x52\x60\x6d\x6e\x52\x6b\x52\x57\x52\x62\x52\x5f\x6d\x62\x52\x63\x6d\x68\x6d\x69\x52\x5e\x52\x64\x52\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x52\x59\x6d\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x70\x00\x00\x6f\xc6\x54\x7f\x6f\xb4\x00\x00\x6f\xb9\x54\x78\x54\x84\x6f\xb7\x54\x73\x54\x7d\x54\x83\x6f\xbe\x00\x00\x54\x7e\x54\x82\x00\x00\x00\x00\x6f\xc1\x54\x79\x6f\xb8\x00\x00\x00\x00\x00\x00\x6f\xc4\x6f\xc5\x00\x00\x54\x7b\x6f\xc3\x54\x77\x54\x87\x00\x00\x6f\xbb", /* 5500 */ "\x00\x00\x54\x75\x00\x00\x6f\xc8\x6f\xbc\x6f\xc0\x54\x7a\x54\x86\x6f\xbd\x54\x81\x6f\xc2\x6f\xc9\x72\xa4\x00\x00\x6f\xc7\x54\x88\x54\x74\x6f\xbf\x6f\xb6\x00\x00\x54\x7c\x00\x00\x00\x00\x6f\xb5\x00\x00\x00\x00\x6f\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xb3\x54\x85\x00\x00\x00\x00\x72\x9c\x00\x00\x56\xc8\x72\xaa\x56\xc6\x56\xc3\x72\xa1\x56\xbf\x72\xa5\x56\xca\x72\x9b\x72\xa0\x72\x9f\x54\x76\x56\xc5\x72\xa8\x00\x00\x72\xab\x72\x98\x00\x00\x59\x6e\x00\x00\x72\xac\x56\xcb\x00\x00\x56\xbd\x56\xba\x72\xa3\x56\xb7\x00\x00\x72\xa9\x00\x00\x56\xbe\x72\xad\x00\x00\x72\x99\x72\xa7\x56\xc1\x72\x9a\x72\x9d\x72\xa2\x00\x00\x00\x00\x56\xc2\x56\xc0\x56\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc7\x00\x00\x56\xbb\x57\x97\x00\x00\x56\xbc\x72\x9e\x56\xc9\x56\xc4\x72\xa6\x56\xb9\x00\x00\x00\x00\x00\x00\x56\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x96\x72\x97\x75\xcf\x00\x00\x00\x00\x00\x00\x59\x5d\x59\x60\x75\xda\x59\x74\x75\xdd", /* 5580 */ "\x59\x5e\x75\xd6\x59\x64\x59\x6a\x5a\xc2\x00\x00\x00\x00\x59\x68\x75\xd3\x59\x75\x59\x61\x59\x69\x75\xdb\x79\x9e\x75\xe0\x75\xd4\x00\x00\x75\xcb\x75\xd8\x75\xd2\x59\x67\x75\xde\x00\x00\x00\x00\x59\x63\x59\x77\x59\x70\x00\x00\x59\x65\x59\x62\x00\x00\x59\x6d\x00\x00\x75\xdf\x75\xd1\x75\xd7\x75\xd9\x75\xcd\x75\xdc\x59\x5f\x75\xcc\x00\x00\x59\x66\x59\x76\x59\x72\x75\xce\x59\x6c\x00\x00\x00\x00\x59\x73\x59\x6f\x59\x6b\x00\x00\x75\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x71\x00\x00\x00\x00\x00\x00\x79\x9c\x79\x98\x00\x00\x79\xa7\x79\x91\x79\x9a\x5b\xcb\x5b\xcc\x5b\xc4\x79\xa3\x5b\xce\x79\x96\x79\x95\x79\x93\x79\xa5\x5b\xc2\x79\x9f\x79\x94\x5b\xc5\x79\x9d\x5b\xc0\x79\x99\x79\xa0\x79\xa2\x00\x00\x00\x00\x79\xa6\x5b\xc9\x79\x92\x5b\xc3\x79\x97\x00\x00\x5b\xbe\x00\x00\x5b\xca\x79\xa1\x5b\xc6\x5b\xc7\x5b\xcd\x5b\xc1\x46\xf7\x5b\xbf\x79\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc8\x00\x00\x00\x00\x79\xa4\x00\x00\x00\x00\x00\x00\x5e\x55\x5e\x50\x00\x00\x7d\x5e\x7d\x5a\x00\x00\x7d\x54\x5e\x4a\x5e\x46\x7d\x5d", /* 5600 */ "\x5e\x47\x7d\x57\x7d\x59\x00\x00\x7d\x5c\x00\x00\x5e\x4c\x00\x00\x5e\x53\x5e\x4d\x00\x00\x00\x00\x7d\x52\x5e\x4e\x5e\x4f\x7d\x55\x5e\x54\x00\x00\x7d\x53\x7d\x58\x5e\x4b\x7d\x51\x5e\x51\x5e\x49\x00\x00\x00\x00\x00\x00\x5e\x48\x7d\x56\x7d\x5b\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x50\x00\x00\x60\x56\x80\x91\x00\x00\x80\x8e\x00\x00\x60\x50\x60\x5c\x60\x5d\x00\x00\x60\x53\x80\x8c\x60\x55\x80\x84\x60\x5b\x00\x00\x80\x90\x60\x52\x80\x92\x60\x51\x00\x00\x80\x8d\x80\x8f\x60\x54\x80\x8b\x80\x85\x80\x82\x00\x00\x00\x00\x75\xd0\x80\x88\x00\x00\x80\x81\x80\x87\x80\x86\x00\x00\x80\x83\x00\x00\x60\x58\x00\x00\x00\x00\x00\x00\x00\x00\x60\x57\x00\x00\x00\x00\x00\x00\x60\x59\x80\x89\x62\x5b\x80\x8a\x00\x00\x00\x00\x00\x00\x83\xcf\x00\x00\x83\xc8\x00\x00\x62\x67\x83\xcc\x62\x5f\x62\x63\x83\xcb\x00\x00\x62\x62\x62\x5e\x62\x61\x62\x5c\x62\x66\x83\xcd\x83\xc9\x62\x65\x83\xc7\x62\x64\x83\xce\x83\xca\x60\x5a\x00\x00\x62\x68\x83\xd0\x62\x60\x62\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x86\xd1\x86\xd3", /* 5680 */ "\x63\xc5\x86\xd4\x86\xd2\x86\xd0\x86\xcf\x63\xc7\x86\xce\x63\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x86\xcc\x86\xcd\x63\xc4\x63\xc9\x63\xc6\x00\x00\x00\x00\x86\xcb\x00\x00\x65\x5b\x00\x00\x89\x69\x89\x67\x89\x6c\x89\x6a\x00\x00\x89\x68\x89\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4c\x8b\x61\x8b\x62\x66\xe0\x00\x00\x8b\x63\x8b\x5f\x8b\x64\x8b\x60\x65\x5c\x00\x00\x00\x00\x00\x00\x8c\xec\x8c\xee\x66\xe3\x8c\xed\x66\xe2\x66\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe4\x8e\x74\x8e\x75\x00\x00\x67\x86\x67\x85\x67\x87\x8e\x73\x00\x00\x8f\x68\x8f\x67\x00\x00\x67\xd8\x67\xda\x67\xd9\x8f\x69\x68\x54\x90\xb5\x00\x00\x00\x00\x00\x00\x68\x7d\x00\x00\x90\xb4\x90\xfd\x00\x00\x00\x00\x69\x4a\x00\x00\x00\x00\x4d\x5f\x4d\x5e\x00\x00\x4d\xdf\x4d\xde\x69\xa7\x4d\xdd\x69\xa6\x00\x00\x00\x00\x4e\xda\x6a\x69\x00\x00\x6a\x68\x00\x00\x00\x00\x4e\xd8\x4e\xdb\x00\x00\x00\x00\x6a\x67\x00\x00\x4e\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x92\x00\x00\x6b\x93\x50\x76\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6c", /* 5700 */ "\x00\x00\x6f\xca\x6f\xcb\x54\x89\x54\x8a\x00\x00\x00\x00\x72\xaf\x56\xcd\x56\xcf\x72\xae\x56\xce\x75\xe1\x59\x78\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcf\x5b\xd0\x79\xa8\x00\x00\x5e\x57\x00\x00\x5e\x56\x00\x00\x80\x93\x83\xd2\x83\xd1\x00\x00\x91\x7c\x4c\x68\x69\x5a\x00\x00\x69\x6f\x69\x70\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe2\x4d\xe6\x69\xa9\x00\x00\x4d\xe4\x4d\xe3\x69\xa8\x4d\xe5\x4d\xe1\x00\x00\x00\x00\x4d\xe0\x69\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xe5\x00\x00\x00\x00\x4e\xe2\x00\x00\x4e\xde\x6a\x6a\x00\x00\x00\x00\x00\x00\x6a\x6b\x00\x00\x4e\xe0\x00\x00\x6a\x6d\x4e\xdc\x6a\x6e\x6a\x6c\x4e\xdf\x4e\xe1\x4e\xe4\x4e\xe3\x4e\xdd\x6a\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x7b\x6b\xa0\x00\x00\x50\x7d\x00\x00\x50\x7c\x00\x00\x6b\xa1\x50\x7a\x50\x79\x6b\x97\x00\x00\x6b\x96\x00\x00\x6b\x94\x6b\x99\x6b\x98\x6b\x95\x6b\x9e\x6b\x9f\x6b\x9c\x6b\x9a\x50\x78\x00\x00\x00\x00\x00\x00\x6b\x9d\x50\x7e\x6b\xa2\x00\x00\x00\x00", /* 5780 */ "\x6b\x9b\x00\x00\x52\x6d\x50\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6e\x6d\x76\x00\x00\x00\x00\x6d\x7c\x00\x00\x00\x00\x00\x00\x52\x74\x6d\x7a\x6d\x81\x00\x00\x6d\x77\x6d\x7b\x6d\x7d\x6d\x7f\x6d\x79\x00\x00\x6d\x78\x6d\x73\x6d\x74\x52\x6f\x00\x00\x52\x71\x52\x70\x6d\x75\x6d\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x72\x6f\xd5\x00\x00\x6f\xd4\x6f\xd9\x6f\xd0\x00\x00\x6f\xd3\x6f\xd2\x00\x00\x6f\xd6\x00\x00\x6f\xda\x54\x8b\x54\x8e\x00\x00\x00\x00\x6f\xd1\x6f\xd7\x00\x00\x00\x00\x00\x00\x54\x8d\x6f\xcc\x00\x00\x52\x72\x72\xbd\x6f\xd8\x00\x00\x6f\xcf\x00\x00\x54\x8c\x6f\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\xb4\x00\x00\x00\x00\x56\xd0\x56\xd4\x72\xc4\x72\xb2\x72\xc0\x56\xd5\x72\xc2\x00\x00\x72\xc8\x00\x00\x72\xcc\x00\x00\x00\x00\x72\xc3\x72\xb7\x72\xbf\x00\x00\x72\xcd\x72\xcb\x72\xc1\x72\xbc\x72\xb5\x75\xe9\x72\xb3\x56\xd9\x72\xba\x56\xda\x56\xd6\x72\xb0\x72\xc6\x72\xb8\x00\x00\x00\x00", /* 5800 */ "\x72\xb6\x72\xc9\x56\xd7\x00\x00\x72\xcf\x56\xd1\x56\xd3\x72\xbe\x72\xb9\x54\x8f\x56\xd2\x72\xbb\x72\xca\x72\xce\x72\xc5\x00\x00\x72\xc7\x00\x00\x00\x00\x00\x00\x72\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe4\x00\x00\x75\xed\x75\xec\x59\x81\x75\xe5\x00\x00\x59\x82\x59\x7f\x00\x00\x75\xe7\x59\x7c\x75\xeb\x00\x00\x75\xe6\x75\xe8\x75\xe2\x59\x7a\x00\x00\x75\xf5\x75\xf4\x75\xf1\x59\x79\x59\x7d\x59\x7e\x6f\xcd\x75\xee\x59\x7b\x56\xd8\x75\xf0\x75\xe3\x75\xf3\x75\xf2\x00\x00\x75\xf6\x00\x00\x79\xb6\x00\x00\x75\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xea\x79\xae\x5b\xda\x5b\xdd\x5b\xd8\x79\xad\x79\xb1\x79\xac\x00\x00\x5b\xd2\x5b\xdc\x79\xa9\x5b\xd6\x79\xb0\x00\x00\x5b\xd4\x5b\xd3\x79\xb3\x5b\xd5\x79\xb5\x00\x00\x79\xb2\x5b\xd1\x00\x00\x00\x00\x00\x00\x5b\xdb\x79\xb7\x79\xab\x79\xb4\x00\x00\x00\x00\x79\xaa\x00\x00\x00\x00\x5b\xd7\x00\x00\x5b\xd9\x00\x00\x79\xaf\x00\x00\x79\xb8\x00\x00\x00\x00\x7d\x66\x5e\x58\x7d\x6c\x00\x00\x00\x00\x5e\x5d\x7d\x68\x7d\x6f\x7d\x60\x5e\x5f\x5e\x59\x7d\x65", /* 5880 */ "\x60\x5e\x7d\x64\x7d\x6d\x5e\x5a\x00\x00\x5e\x5e\x7d\x63\x7d\x69\x7d\x6e\x7d\x5f\x5e\x5c\x7d\x67\x00\x00\x00\x00\x7d\x6b\x7d\x71\x7d\x61\x7d\x6a\x00\x00\x5e\x5b\x7d\x70\x00\x00\x00\x00\x00\x00\x7d\x62\x00\x00\x00\x00\x00\x00\x60\x62\x80\x95\x60\x60\x60\x5f\x80\x97\x80\x9c\x00\x00\x80\x98\x00\x00\x80\x9b\x60\x65\x00\x00\x62\x4e\x60\x64\x00\x00\x80\x94\x80\x9a\x00\x00\x60\x63\x80\x99\x00\x00\x80\x96\x00\x00\x60\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\xd7\x00\x00\x83\xd9\x83\xd4\x62\x6a\x83\xd6\x00\x00\x62\x69\x83\xd8\x00\x00\x00\x00\x62\x6c\x83\xda\x62\x6b\x83\xd3\x83\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcd\x86\xd7\x00\x00\x63\xcc\x86\xd8\x63\xcb\x86\xd6\x63\xca\x86\xd5\x00\x00\x65\x5e\x65\x5d\x8b\x65\x8b\x67\x00\x00\x8b\x66\x66\x4d\x66\x4e\x00\x00\x00\x00\x66\x4f\x8c\xef\x66\xe5\x00\x00\x00\x00\x90\x44\x90\x43\x68\x7e\x00\x00\x4c\x69\x4c\xb0\x00\x00\x00\x00\x4e\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x82\x00\x00\x00\x00\x00\x00\x00\x00\x59\x83\x59\x84\x00\x00\x79\xb9\x5e\x60\x7d\x72\x80\x9d", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x69\x5b\x00\x00\x00\x00\x6a\x70\x00\x00\x00\x00\x00\x00\x48\x62\x00\x00\x6b\xa3\x6d\x83\x6f\xdb\x54\x90\x00\x00\x00\x00\x8b\x68\x00\x00\x67\x88\x4c\x6a\x4d\x60\x69\x71\x00\x00\x4d\xe7\x4d\xe8\x00\x00\x50\x7f\x00\x00\x00\x00\x00\x00\x56\xdb\x00\x00\x5e\x62\x00\x00\x5e\x63\x5e\x61\x00\x00\x4c\x6b\x00\x00\x4c\xb1\x4c\xb3\x4c\xb2\x69\x5c\x4c\xb4\x4d\x61\x69\x72\x00\x00\x4d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe9\x4d\xea\x00\x00\x00\x00\x00\x00\x69\xab\x00\x00\x4e\xe7\x00\x00\x6a\x71\x00\x00\x00\x00\x00\x00\x50\x84\x6b\xa4\x00\x00\x50\x82\x50\x83\x50\x81\x6f\xdc\x00\x00\x00\x00\x00\x00\x52\x78\x52\x77\x52\x79\x52\x76\x00\x00\x6d\x84\x50\x85\x52\x75\x00\x00\x54\x91\x54\x92\x00\x00\x54\x93\x00\x00\x72\xd0\x00\x00\x00\x00\x00\x00\x59\x85\x75\xf7\x56\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xde\x00\x00\x5e\x65\x5e\x64\x7d\x73\x00\x00\x60\x66\x62\x6d\x00\x00\x89\x6d\x8f\x6a\x90\x45\x4c\x6c\x4d\x63\x00\x00\x4d\x64\x69\xb1\x4d\xec\x4d\xef\x00\x00\x69\xaf\x69\xad\x4d\xee\x69\xb0\x69\xb2", /* 5980 */ "\x69\xac\x4d\xf1\x4d\xf0\x4d\xed\x4d\xeb\x69\xae\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf2\x00\x00\x00\x00\x4e\xef\x6a\x76\x6a\x79\x6a\x78\x00\x00\x4e\xe9\x4e\xf1\x00\x00\x00\x00\x4e\xee\x6a\x75\x6a\x73\x4e\xed\x00\x00\x00\x00\x00\x00\x4e\xe8\x4e\xeb\x00\x00\x6a\x74\x6a\x7b\x6a\x77\x4e\xec\x4e\xf0\x4e\xf3\x6a\x72\x6a\x7a\x4e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8a\x50\x92\x00\x00\x6b\xb0\x6b\xa9\x50\x93\x6b\xb4\x6b\xa5\x6b\xac\x00\x00\x00\x00\x50\x89\x6b\xa6\x50\x87\x6b\xad\x6b\xb1\x50\x86\x00\x00\x6b\xb2\x6b\xab\x00\x00\x6b\xae\x00\x00\x50\x95\x50\x8c\x6b\xb5\x6b\xb3\x00\x00\x50\x91\x50\x8f\x6b\xaa\x50\x8e\x6b\xa8\x6b\xa7\x50\x8d\x50\x8b\x50\x94\x50\x90\x50\x88\x00\x00\x6b\xaf\x00\x00\x52\x7b\x00\x00\x52\x83\x6d\x92\x52\x7a\x6d\x8a\x6d\x86\x00\x00\x6d\x96\x6d\x85\x00\x00\x52\x7d\x6d\x8f\x52\x81\x52\x84\x00\x00\x52\x7e\x6d\x93\x52\x82\x00\x00\x54\x9a\x6d\x99\x6d\x87\x00\x00\x00\x00\x6d\x89\x6d\x90\x6d\x94\x6d\x98\x6d\x95\x6d\x8e\x6d\x91\x00\x00\x00\x00\x6d\x8b\x52\x86\x6d\x8d\x6d\x8c\x6d\x97\x52\x7c", /* 5a00 */ "\x6d\x88\x52\x85\x00\x00\x52\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa0\x6f\xe4\x00\x00\x54\x9f\x00\x00\x00\x00\x6f\xe2\x00\x00\x54\x94\x00\x00\x54\x99\x00\x00\x6f\xe1\x6f\xde\x6f\xe3\x54\x95\x6f\xdd\x00\x00\x54\x98\x54\x96\x00\x00\x6f\xe5\x54\x97\x54\x9b\x00\x00\x00\x00\x54\x9c\x00\x00\x54\x9e\x00\x00\x00\x00\x00\x00\x54\x9d\x00\x00\x00\x00\x00\x00\x6f\xdf\x6f\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xe6\x00\x00\x72\xd7\x56\xdd\x76\x48\x72\xd6\x72\xe9\x00\x00\x00\x00\x56\xe3\x00\x00\x72\xe7\x00\x00\x56\xe2\x56\xde\x72\xf0\x72\xe0\x72\xe3\x00\x00\x56\xe6\x72\xed\x72\xe5\x56\xdf\x56\xe7\x00\x00\x72\xea\x72\xe8\x00\x00\x00\x00\x72\xd9\x72\xee\x72\xe2\x72\xdd\x00\x00\x72\xd3\x72\xef\x72\xdf\x72\xd2\x00\x00\x56\xe5\x72\xe4\x72\xf1\x72\xe1\x72\xd5\x72\xda\x72\xd1\x00\x00\x56\xe4\x00\x00\x72\xde\x72\xdb\x56\xe0\x72\xd4\x00\x00\x72\xec\x56\xe1\x00\x00\x72\xdc\x72\xd8\x00\x00\x00\x00\x72\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x86\x76\x41\x00\x00\x75\xfb\x76\x4f\x76\x43\x76\x50\x00\x00\x59\x88", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x76\x4c\x76\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x4a\x76\x4d\x76\x51\x00\x00\x72\xe6\x76\x53\x79\xcd\x00\x00\x59\x89\x76\x54\x75\xf9\x76\x46\x00\x00\x76\x4b\x00\x00\x00\x00\x59\x87\x59\x8a\x76\x52\x76\x55\x75\xfd\x75\xfa\x00\x00\x00\x00\x75\xfc\x00\x00\x00\x00\x76\x44\x76\x42\x59\x8b\x00\x00\x76\x4e\x00\x00\x00\x00\x76\x45\x00\x00\x76\x47\x75\xf8\x79\xc1\x79\xbf\x5b\xe7\x5b\xe5\x79\xc9\x79\xc0\x79\xca\x79\xc6\x79\xbe\x79\xcc\x79\xbd\x79\xc4\x5b\xe4\x5b\xe3\x5b\xe2\x79\xc2\x79\xc7\x5b\xdf\x5b\xe6\x00\x00\x79\xbb\x00\x00\x79\xc5\x79\xba\x79\xc3\x5b\xe0\x79\xc8\x79\xbc\x5b\xe1\x79\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x77\x5e\x6a\x5e\x69\x5e\x6b\x7d\x84\x7d\x79\x7d\x7f\x7d\x74\x7d\x83\x7d\x82\x7d\x86\x7d\x7e\x5e\x66\x7d\x7d\x5e\x6c\x00\x00\x7d\x76\x5e\x67\x00\x00\x7d\x85\x5e\x68\x7d\x78\x7d\x7b\x7d\x81\x7d\x7a\x7d\x75\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x7c\x80\x9f\x60\x6a\x80\xa2\x80\xa1\x80\xa4\x80\xa6\x00\x00\x60\x68\x00\x00\x80\xa0\x00\x00\x80\x9e", /* 5b00 */ "\x00\x00\x80\xa7\x80\xa5\x80\xa3\x00\x00\x80\xa9\x00\x00\x80\xa8\x60\x6c\x60\x67\x00\x00\x60\x69\x60\x6b\x00\x00\x00\x00\x80\xaa\x83\xe1\x00\x00\x00\x00\x83\xe0\x83\xdf\x00\x00\x83\xe2\x83\xdb\x00\x00\x83\xdc\x83\xe4\x83\xdd\x00\x00\x62\x6e\x83\xe6\x00\x00\x83\xe5\x83\xde\x00\x00\x86\xdc\x63\xd0\x86\xda\x86\xdf\x86\xde\x83\xe3\x00\x00\x63\xcf\x00\x00\x86\xdd\x86\xd9\x86\xe1\x86\xe0\x63\xce\x00\x00\x86\xdb\x00\x00\x62\x6f\x00\x00\x00\x00\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x89\x6e\x8b\x69\x8b\x6a\x8b\x6b\x66\xe6\x00\x00\x00\x00\x66\xe7\x00\x00\x8c\xf0\x00\x00\x8e\x77\x8e\x76\x00\x00\x00\x00\x8f\x6b\x8f\x6c\x90\x46\x90\xb6\x00\x00\x4c\x6d\x4c\x6e\x00\x00\x4c\x6f\x4c\xb5\x4d\x65\x69\xb3\x4d\xf2\x4d\xf3\x00\x00\x4e\xf6\x4e\xf7\x4e\xf5\x4e\xf4\x00\x00\x50\x96\x00\x00\x00\x00\x6b\xb6\x50\x98\x50\x97\x6b\xb7\x00\x00\x00\x00\x00\x00\x52\x87\x00\x00\x54\xa1\x6f\xe7\x00\x00\x72\xf3\x00\x00\x56\xe8\x59\x8d\x72\xf2\x59\x8c\x00\x00\x5e\x6d\x00\x00\x7d\x87\x62\x70\x00\x00\x63\xd1\x86\xe2\x00\x00\x66\xe8\x00\x00\x67\xdb", /* 5b80 */ "\x48\x67\x69\x73\x00\x00\x4d\x66\x69\x74\x4d\xf6\x00\x00\x4d\xf4\x4d\xf5\x4d\xf7\x00\x00\x4e\xf9\x4e\xf8\x00\x00\x6a\x7c\x4e\xfa\x00\x00\x00\x00\x6a\x7d\x6b\xb8\x00\x00\x6b\xb9\x00\x00\x50\x99\x50\x9b\x50\x9d\x50\x9a\x50\x9e\x50\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x8b\x52\x88\x52\x8a\x52\x8c\x52\x89\x6f\xe8\x6d\x9a\x00\x00\x00\x00\x00\x00\x6f\xea\x6f\xe9\x54\xa7\x00\x00\x54\xa3\x00\x00\x00\x00\x54\xa4\x54\xa6\x54\xa8\x54\xa5\x00\x00\x54\xaa\x54\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xed\x72\xf5\x72\xf4\x56\xec\x00\x00\x56\xeb\x56\xea\x56\xee\x56\xe9\x00\x00\x00\x00\x76\x5b\x76\x58\x59\x8f\x76\x57\x76\x5c\x00\x00\x59\x91\x76\x5a\x59\x8e\x59\x90\x76\x59\x00\x00\x79\xce\x00\x00\x79\xcf\x79\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6e\x5e\x76\x7d\x88\x5e\x70\x5e\x74\x7d\x89\x5e\x75\x5e\x71\x5e\x72\x5e\x6f\x5e\x73\x60\x6f\x76\x56\x60\x70\x60\x6e\x00\x00\x60\x6d\x83\xe7\x62\x71\x86\xe3\x86\xe4\x00\x00\x00\x00\x66\x50\x66\xe9\x00\x00\x4c\x70\x00\x00\x4d\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x52\x8d\x00\x00\x6f\xeb\x54\xab\x00\x00\x00\x00\x56\xf1\x56\xf0\x56\xef\x59\x92\x59\x93\x76\x5d\x5e\x77\x62\x72\x4c\x71\x69\x5d\x4c\xb6\x69\x75\x00\x00\x00\x00\x69\xb4\x4d\xf9\x00\x00\x00\x00\x00\x00\x50\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x79\xd1\x00\x00\x00\x00\x4c\x72\x00\x00\x4c\xb7\x69\xb5\x00\x00\x00\x00\x6a\x7e\x00\x00\x6a\x7f\x00\x00\x4e\xfb\x00\x00\x00\x00\x00\x00\x76\x5e\x59\x94\x00\x00\x79\xd2\x00\x00\x00\x00\x00\x00\x63\xd2\x4c\x73\x4c\x88\x4c\xb8\x69\x76\x4d\x67\x00\x00\x4f\x42\x4f\x41\x4e\xfc\x4e\xfd\x00\x00\x00\x00\x6b\xba\x50\xa1\x50\xa2\x6b\xbb\x50\xa0\x00\x00\x00\x00\x52\x91\x6d\x9b\x52\x90\x52\x8e\x52\x8f\x54\xae\x54\xac\x00\x00\x00\x00\x6f\xed\x54\xad\x6f\xec\x00\x00\x54\xa2\x72\xf6\x00\x00\x00\x00\x56\xf3\x56\xf4\x00\x00\x00\x00\x56\xf2\x00\x00\x5e\x78\x7d\x8a\x60\x71\x60\x72\x00\x00\x80\xab\x63\xd3\x89\x6f\x89\x70\x00\x00\x67\x89\x90\xb7\x69\x4c\x4c\xb9\x00\x00\x4c\x74\x00\x00\x69\x78\x69\x77\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfa\x69\xb7\x69\xb8\x69\xb6\x00\x00\x69\xb9\x00\x00", /* 5c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x88\x00\x00\x6a\x83\x6a\x85\x6a\x87\x6a\x84\x4f\x46\x6a\x81\x00\x00\x6a\x82\x4f\x43\x4f\x44\x6a\x86\x6a\x89\x4f\x45\x6a\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc9\x00\x00\x6b\xc3\x6b\xbe\x50\xa4\x6b\xc6\x6b\xc4\x6b\xbd\x6b\xca\x6b\xcd\x6b\xc8\x6b\xc1\x50\xa6\x6b\xc7\x50\xa7\x6b\xc2\x6b\xc5\x6b\xbc\x6b\xc0\x6b\xcc\x50\xa8\x00\x00\x50\xa9\x00\x00\x6b\xbf\x6b\xcb\x50\xa3\x50\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xac\x6d\xa5\x6d\xab\x6d\xa4\x6d\xa6\x6d\xa0\x6d\x9e\x00\x00\x6d\xad\x6d\xaa\x6d\x9c\x00\x00\x52\x93\x6d\xa8\x6d\xa9\x00\x00\x6d\xa7\x6d\x9f\x6d\x9d\x52\x92\x6d\xa3\x6d\xa1\x00\x00\x00\x00\x6d\xa2\x6d\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb3\x00\x00\x54\xb2\x00\x00\x6f\xee\x54\xaf\x6f\xf0\x00\x00\x54\xb4\x6f\xf1\x00\x00\x00\x00\x54\xb7\x00\x00\x54\xb5\x6f\xf2\x6d\xaf\x6f\xf4\x00\x00\x54\xb1\x00\x00\x54\xb0\x00\x00\x6f\xef", /* 5d00 */ "\x6f\xf3\x54\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x56\xf6\x56\xf5\x00\x00\x00\x00\x00\x00\x72\xf8\x72\xfc\x73\x41\x56\xf7\x73\x44\x00\x00\x56\xfb\x73\x46\x00\x00\x56\xfd\x00\x00\x56\xf9\x57\x44\x00\x00\x57\x41\x72\xfa\x56\xf8\x00\x00\x72\xf9\x72\xf7\x73\x48\x72\xfb\x00\x00\x56\xfa\x73\x47\x57\x42\x73\x43\x73\x42\x57\x43\x72\xfd\x56\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x73\x49\x00\x00\x73\x45\x76\x6d\x76\x74\x76\x69\x59\x97\x76\x65\x76\x75\x76\x5f\x76\x72\x76\x70\x76\x6a\x00\x00\x76\x73\x76\x6c\x00\x00\x76\x64\x76\x76\x76\x62\x76\x6f\x76\x60\x00\x00\x76\x77\x00\x00\x59\x98\x00\x00\x76\x71\x79\xd5\x76\x63\x59\x95\x00\x00\x76\x67\x00\x00\x59\x96\x76\x66\x76\x6b\x00\x00\x00\x00\x76\x68\x00\x00\x00\x00\x00\x00\x76\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x79\xd9\x00\x00\x00\x00\x00\x00\x79\xdc\x79\xd4\x00\x00\x79\xd6\x00\x00\x79\xdb\x79\xda\x5b\xe8\x00\x00\x76\x61\x79\xd8\x00\x00\x00\x00\x5b\xe9\x00\x00\x79\xd3\x79\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x91\x00\x00\x7d\x98\x7d\x8f\x00\x00\x7d\x96\x7d\x8d\x7d\x95\x7d\x99", /* 5d80 */ "\x7d\x8c\x7d\x90\x7d\x8b\x00\x00\x5e\x79\x00\x00\x7d\x8e\x5e\x7a\x7d\x94\x7d\x93\x7d\x92\x00\x00\x00\x00\x7d\x97\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaf\x80\xb1\x60\x74\x80\xb2\x00\x00\x80\xad\x00\x00\x80\xac\x80\xb6\x00\x00\x80\xb4\x60\x73\x80\xb7\x80\xae\x80\xb3\x80\xb5\x80\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x83\xeb\x83\xf0\x83\xea\x83\xef\x00\x00\x83\xe8\x83\xf2\x83\xee\x83\xf3\x83\xed\x83\xe9\x83\xf1\x00\x00\x83\xf4\x83\xec\x00\x00\x86\xe5\x63\xd7\x00\x00\x63\xd5\x00\x00\x63\xd4\x63\xd6\x00\x00\x00\x00\x89\x71\x00\x00\x8a\xc0\x8b\x6c\x00\x00\x00\x00\x8c\xf1\x8c\xf2\x00\x00\x66\xea\x00\x00\x8e\x78\x00\x00\x67\x8a\x00\x00\x8e\x79\x00\x00\x8f\x6e\x67\xdd\x00\x00\x67\xdc\x8f\x6d\x68\x55\x00\x00\x90\x47\x00\x00\x00\x00\x48\x6e\x00\x00\x4c\x75\x4d\xfb\x69\xba\x6a\x8b\x4f\xd5\x57\x45\x00\x00\x00\x00\x4c\x76\x4d\x6a\x4d\x69\x4d\x68\x00\x00\x00\x00\x4f\x47\x00\x00\x00\x00\x54\xb8\x00\x00\x79\xdd\x4c\x77\x4c\x78\x4c\x79\x4c\xba\x00\x00\x00\x00\x52\x94\x00\x00\x6d\xb0\x00\x00\x00\x00\x00\x00\x59\x99\x4c\x7a\x69\x5e", /* 5e00 */ "\x00\x00\x00\x00\x4d\x6b\x4d\x6c\x69\x79\x00\x00\x4d\xfc\x00\x00\x00\x00\x00\x00\x6a\x8c\x00\x00\x4f\x48\x00\x00\x6a\x8d\x00\x00\x00\x00\x50\xaf\x00\x00\x00\x00\x6b\xcf\x50\xad\x50\xac\x6b\xce\x50\xaa\x6b\xd0\x50\xab\x50\xae\x00\x00\x52\x95\x00\x00\x52\x97\x6d\xb4\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb5\x52\x96\x00\x00\x00\x00\x6f\xf6\x6f\xf5\x00\x00\x54\xba\x00\x00\x54\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x48\x73\x4b\x00\x00\x57\x47\x57\x49\x57\x46\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9b\x73\x4a\x00\x00\x59\x9c\x76\x79\x00\x00\x59\x9d\x76\x78\x59\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x79\xe0\x79\xe2\x5b\xea\x79\xe1\x79\xdf\x79\xde\x00\x00\x00\x00\x00\x00\x7d\x9c\x5e\x7f\x5e\x7d\x00\x00\x5e\x7e\x7d\x9a\x7d\x9b\x00\x00\x5e\x7b\x80\xbb\x80\xb9\x00\x00\x60\x76\x80\xba\x60\x77\x60\x75\x5e\x7c\x00\x00\x00\x00\x83\xf7\x83\xf5\x83\xf6\x80\xb8\x86\xe7\x63\xd8\x86\xe6\x89\x72\x89\x73\x83\xf8\x8b\x6d\x00\x00\x4c\x7b\x4d\x6d\x4e\x41\x69\xbb\x4d\xfd\x00\x00\x50\xb0\x5b\xeb\x48\x73\x4c\xbb\x4d\x6e\x52\x98\x59\x9e\x48\x74", /* 5e80 */ "\x69\x7a\x00\x00\x69\x7b\x00\x00\x69\xbc\x00\x00\x00\x00\x4f\x4a\x6a\x91\x6a\x8f\x4f\x4b\x6a\x8e\x6a\x90\x6a\x92\x00\x00\x4f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb4\x50\xb5\x50\xb2\x00\x00\x00\x00\x50\xb1\x6d\xb9\x50\xb3\x00\x00\x00\x00\x00\x00\x52\x99\x00\x00\x6d\xb8\x6d\xba\x6d\xb7\x6d\xbb\x52\x9a\x54\xbd\x6f\xf7\x00\x00\x6f\xf9\x54\xbb\x6f\xfa\x54\xbc\x6f\xf8\x00\x00\x6d\xb6\x73\x4c\x73\x4f\x73\x50\x73\x4d\x57\x4d\x57\x4c\x57\x4a\x57\x4b\x73\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x57\x4e\x00\x00\x00\x00\x59\xa0\x59\xa1\x00\x00\x59\xa2\x79\xe3\x79\xe5\x79\xe7\x5b\xed\x5b\xec\x59\x9f\x79\xe6\x79\xe4\x00\x00\x7d\xa0\x00\x00\x00\x00\x7d\x9e\x7d\xa4\x5e\x81\x7d\xa5\x7d\xa2\x5e\x82\x7d\x9f\x7d\x9d\x7d\xa3\x60\x79\x80\xbd\x7d\xa1\x60\x7b\x80\xbe\x60\x7a\x60\x7d\x80\xbf\x60\x78\x60\x7c\x00\x00\x83\xfd\x83\xfb\x83\xfa\x83\xfc\x83\xf9\x00\x00\x00\x00\x66\x52\x00\x00\x8c\xf3\x8c\xf4\x00\x00\x8e\x7a\x8f\x6f\x68\xa1\x48\x75\x00\x00\x50\xb6\x4f\x4c\x00\x00\x00\x00\x52\x9b\x00\x00\x00\x00\x00\x00\x4c\x7c\x4c\xbc", /* 5f00 */ "\x00\x00\x4d\x6f\x69\xbd\x00\x00\x4f\x4d\x6a\x93\x00\x00\x6d\xbc\x52\x9c\x00\x00\x5e\x83\x4c\x7d\x00\x00\x00\x00\x00\x00\x4e\x42\x00\x00\x00\x00\x5b\xee\x4c\x7e\x4c\xbd\x4c\xbe\x00\x00\x4d\x71\x4d\x70\x00\x00\x69\xbe\x4e\x43\x00\x00\x6a\x94\x00\x00\x4f\x4e\x00\x00\x00\x00\x6b\xd2\x6b\xd3\x6b\xd4\x00\x00\x50\xb7\x50\xb8\x6b\xd1\x50\xb9\x00\x00\x00\x00\x00\x00\x52\x9d\x6d\xbd\x00\x00\x6f\xfc\x54\xbe\x00\x00\x6f\xfb\x00\x00\x57\x4f\x73\x51\x57\x50\x73\x52\x00\x00\x00\x00\x00\x00\x59\xa3\x00\x00\x00\x00\x00\x00\x79\xe8\x00\x00\x00\x00\x7d\xa7\x7d\xa6\x00\x00\x5e\x84\x00\x00\x60\x7e\x80\xc0\x62\x73\x84\x41\x63\xd9\x00\x00\x67\xde\x90\x49\x48\x79\x00\x00\x00\x00\x00\x00\x6b\xd5\x00\x00\x6d\xbe\x57\x51\x76\x7a\x5b\xef\x00\x00\x00\x00\x00\x00\x65\x60\x65\x60\x00\x00\x00\x00\x48\x7a\x4f\x50\x00\x00\x4f\x4f\x52\x9e\x00\x00\x6f\xfd\x00\x00\x57\x53\x58\xa8\x57\x54\x57\x52\x59\xa4\x00\x00\x7d\xa8\x5e\x85\x60\x7f\x00\x00\x69\x4d\x69\xbf\x00\x00\x6a\x96\x4f\x51\x6a\x95\x4f\x52\x00\x00\x00\x00\x50\xbd\x6b\xd8\x6b\xd7\x50\xbc", /* 5f80 */ "\x50\xba\x50\xbb\x6b\xd6\x00\x00\x00\x00\x52\xa0\x6d\xbf\x52\xa3\x52\x9f\x52\xa5\x52\xa1\x52\xa2\x52\xa4\x00\x00\x00\x00\x00\x00\x54\xc1\x54\xc0\x54\xbf\x00\x00\x00\x00\x00\x00\x73\x54\x57\x55\x57\x58\x57\x56\x00\x00\x73\x53\x57\x5b\x00\x00\x57\x57\x73\x55\x57\x5a\x57\x59\x00\x00\x00\x00\x00\x00\x76\x7c\x76\x7b\x00\x00\x59\xa7\x59\xa5\x59\xa6\x76\x7d\x5b\xf0\x79\xea\x5b\xf1\x79\xe9\x00\x00\x00\x00\x80\xc1\x00\x00\x00\x00\x60\x82\x7d\xa9\x60\x81\x00\x00\x5e\x86\x00\x00\x86\xe9\x84\x42\x63\xda\x86\xe8\x8b\x6e\x8c\xf5\x8c\xf6\x00\x00\x4c\xbf\x00\x00\x4d\x72\x00\x00\x00\x00\x00\x00\x69\x7c\x00\x00\x00\x00\x4f\x54\x4f\x56\x00\x00\x69\xc2\x6a\x99\x6a\x98\x6a\x97\x00\x00\x69\xc1\x69\xc0\x4e\x45\x4f\x55\x4f\x53\x4e\x44\x00\x00\x00\x00\x00\x00\x50\xbe\x6b\xd9\x00\x00\x50\xbf\x6a\x9e\x00\x00\x6a\xa0\x6a\x9f\x6b\xda\x00\x00\x00\x00\x6a\x9b\x00\x00\x4f\x5a\x4f\x58\x00\x00\x6a\x9a\x6a\x9c\x6a\xa2\x00\x00\x4f\x57\x00\x00\x6a\x9d\x6a\xa6\x50\xc1\x00\x00\x6a\xa3\x4f\x59\x00\x00\x6a\xa1\x6a\xa4\x00\x00\x50\xc0\x00\x00\x50\xc2", /* 6000 */ "\x6a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xee\x6b\xe1\x6b\xdf\x6b\xed\x6b\xe8\x52\xaa\x50\xc3\x6b\xe9\x6b\xec\x52\xa6\x6b\xeb\x50\xc4\x50\xc9\x50\xc7\x6b\xe2\x00\x00\x6b\xdd\x6b\xe4\x50\xce\x6b\xef\x52\xa7\x6b\xe5\x00\x00\x52\xa8\x50\xca\x6b\xe7\x00\x00\x6d\xce\x52\xa9\x6b\xdc\x50\xcb\x52\xab\x50\xcc\x50\xc8\x50\xcd\x6b\xe6\x6b\xdb\x6b\xea\x50\xc5\x00\x00\x00\x00\x6b\xde\x6b\xe3\x6b\xe0\x50\xc6\x00\x00\x6d\xc0\x00\x00\x6d\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xcb\x70\x44\x6d\xcc\x52\xb1\x6d\xcf\x6d\xc5\x52\xb0\x6d\xc7\x00\x00\x6d\xc8\x00\x00\x00\x00\x6d\xca\x52\xac\x00\x00\x00\x00\x54\xc5\x00\x00\x00\x00\x6d\xc6\x6d\xc2\x54\xc6\x00\x00\x00\x00\x6d\xd0\x54\xc2\x70\x42\x6d\xc9\x00\x00\x70\x41\x6d\xc4\x6d\xcd\x00\x00\x00\x00\x52\xaf\x54\xc3\x52\xb5\x54\xc4\x6d\xd1\x70\x43\x52\xae\x54\xc8\x52\xb4\x52\xb3\x52\xb2\x54\xc7\x6d\xd2\x54\xc9\x52\xad\x00\x00\x6d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x5c", /* 6080 */ "\x70\x47\x70\x49\x00\x00\x70\x4b\x54\xca\x54\xd0\x73\x58\x70\x4f\x70\x46\x57\x5e\x73\x56\x00\x00\x54\xcf\x54\xcd\x70\x51\x00\x00\x73\x57\x00\x00\x70\x48\x00\x00\x54\xce\x70\x4c\x54\xd1\x70\x4e\x00\x00\x00\x00\x54\xcc\x70\x4d\x70\x50\x70\x4a\x00\x00\x54\xcb\x57\x5f\x00\x00\x70\x45\x57\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x57\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x5a\x73\x63\x59\xaa\x00\x00\x57\x62\x57\x67\x59\xab\x73\x65\x57\x6e\x76\x7f\x73\x5b\x57\x66\x57\x69\x57\x64\x73\x59\x73\x67\x73\x6a\x76\x8f\x00\x00\x73\x68\x76\x84\x57\x65\x57\x6c\x57\x70\x73\x62\x76\x7e\x73\x66\x57\x61\x76\x81\x73\x69\x76\x83\x73\x5e\x00\x00\x59\xa8\x00\x00\x73\x5c\x73\x5d\x57\x6b\x00\x00\x00\x00\x57\x6a\x73\x60\x57\x6f\x73\x64\x57\x68\x73\x61\x00\x00\x57\x6d\x59\xac\x59\xa9\x76\x82\x00\x00\x73\x5f\x00\x00\x57\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb1\x59\xb5\x76\x86\x5b\xf6\x59\xb3\x76\x8a\x59\xb7\x79\xeb\x76\x8c\x5b\xf8\x59\xaf\x59\xb2\x76\x8d\x00\x00\x76\x8e\x76\x94", /* 6100 */ "\x59\xb9\x5b\xf9\x00\x00\x76\x90\x76\x95\x76\x89\x5c\x46\x00\x00\x5b\xfa\x59\xb8\x76\x87\x76\x96\x00\x00\x5c\x45\x59\xb6\x5b\xf3\x76\x93\x00\x00\x59\xba\x76\x8b\x76\x85\x59\xb0\x76\x88\x00\x00\x76\x91\x00\x00\x5b\xf2\x5b\xf7\x59\xad\x76\x92\x00\x00\x5b\xf5\x00\x00\x00\x00\x00\x00\x59\xae\x00\x00\x00\x00\x00\x00\x5c\x44\x7d\xab\x79\xf6\x00\x00\x79\xee\x7d\xaa\x00\x00\x79\xf2\x79\xf4\x00\x00\x00\x00\x79\xf1\x00\x00\x5c\x43\x00\x00\x79\xf0\x5c\x47\x00\x00\x00\x00\x00\x00\x7d\xba\x00\x00\x00\x00\x5c\x42\x5e\x88\x79\xf7\x7d\xac\x00\x00\x00\x00\x5b\xfd\x79\xef\x79\xf3\x5e\x87\x5b\xf4\x79\xec\x79\xed\x5e\x89\x5b\xfc\x5c\x41\x5b\xfb\x79\xf5\x00\x00\x00\x00\x7d\xb0\x7d\xb1\x7d\xb6\x60\x87\x7d\xbd\x00\x00\x5e\x8f\x00\x00\x5e\x8e\x7d\xb8\x00\x00\x60\x86\x7d\xad\x5e\x8d\x00\x00\x7d\xbc\x5e\x8b\x5e\x8c\x00\x00\x7d\xb9\x80\xd2\x60\x84\x59\xb4\x00\x00\x7d\xbb\x60\x8b\x7d\xb3\x00\x00\x60\x85\x00\x00\x60\x8a\x7d\xae\x7d\xb2\x7d\xaf\x7d\xb5\x5e\x90\x60\x83\x5e\x8a\x00\x00\x80\xc4\x7d\xb7\x00\x00\x60\x89\x00\x00\x60\x8c\x00\x00", /* 6180 */ "\x7d\xb4\x00\x00\x60\x88\x80\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc8\x62\x77\x80\xc2\x84\x4e\x80\xd1\x60\x90\x00\x00\x60\x8e\x62\x75\x80\xce\x80\xca\x60\x94\x00\x00\x84\x45\x00\x00\x00\x00\x00\x00\x60\x92\x80\xc9\x00\x00\x84\x43\x00\x00\x80\xcd\x00\x00\x80\xd0\x80\xc7\x00\x00\x60\x93\x00\x00\x00\x00\x60\x8d\x84\x44\x62\x76\x80\xcf\x60\x8f\x60\x91\x80\xcc\x60\x95\x80\xcb\x80\xc6\x80\xc5\x62\x74\x80\xd3\x84\x47\x86\xeb\x62\x79\x00\x00\x84\x4d\x00\x00\x84\x4b\x00\x00\x86\xec\x00\x00\x62\x7a\x84\x4c\x00\x00\x84\x49\x63\xdc\x86\xea\x00\x00\x84\x46\x84\x48\x63\xdd\x62\x7c\x63\xdb\x62\x7b\x63\xdf\x84\x4a\x62\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x7c\x00\x00\x89\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xf2\x89\x75\x86\xee\x00\x00\x00\x00\x65\x61\x86\xf0\x86\xef\x63\xde\x86\xed\x86\xf1\x89\x7d\x89\x79\x89\x7b\x00\x00\x89\x76\x89\x77\x00\x00\x89\x7a\x89\x78\x66\x53\x00\x00\x00\x00\x66\x56\x66\x55\x66\x54\x66\xeb\x8c\xf7\x66\xec\x8b\x6f\x67\x8b\x8e\x7b\x67\x8c\x67\xdf", /* 6200 */ "\x68\x56\x90\x4a\x00\x00\x90\x4b\x90\x4c\x00\x00\x00\x00\x91\xaa\x4c\xc0\x69\x7d\x4d\x73\x00\x00\x4e\x47\x4e\x48\x4e\x46\x00\x00\x4e\x49\x4f\x5c\x4f\x5b\x00\x00\x6b\xf0\x50\xd0\x50\xcf\x00\x00\x00\x00\x70\x52\x57\x71\x57\x72\x00\x00\x00\x00\x00\x00\x59\xbb\x79\xf8\x5c\x48\x5c\x49\x79\xfa\x79\xfc\x79\xfb\x00\x00\x7d\xbf\x00\x00\x7d\xbe\x5e\x91\x7d\xc0\x00\x00\x80\xd4\x60\x96\x00\x00\x62\x7d\x00\x00\x63\xe0\x65\x62\x63\xe1\x00\x00\x4c\xc1\x00\x00\x00\x00\x00\x00\x6a\xa7\x00\x00\x00\x00\x6b\xf1\x50\xd2\x50\xd1\x50\xd3\x52\xb6\x6d\xd3\x6d\xd4\x00\x00\x00\x00\x70\x53\x54\xd2\x57\x73\x59\xbc\x76\x97\x4c\xc2\x00\x00\x4c\x7f\x4c\xc3\x00\x00\x69\x7e\x4d\x77\x4d\x76\x4d\x74\x4d\x75\x00\x00\x00\x00\x00\x00\x4e\x4c\x69\xca\x69\xcc\x4e\x4b\x69\xc4\x00\x00\x69\xc5\x00\x00\x69\xcb\x69\xc7\x69\xc9\x4e\x4a\x69\xc6\x69\xc3\x69\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x63\x4f\x6c\x4f\x6a\x6a\xb1\x6a\xae\x6a\xb6\x4f\x68\x6a\xb7\x00\x00\x4f\x61\x6a\xb4\x00\x00\x4f\x67\x6a\xb0\x6a\xaf\x4f\x65\x6a\xb5\x4f\x66\x50\xd4", /* 6280 */ "\x4f\x60\x6a\xb2\x00\x00\x6a\xa8\x4f\x5d\x00\x00\x4f\x70\x6a\xad\x6a\xb3\x4f\x62\x4f\x64\x00\x00\x6a\xa9\x00\x00\x6a\xaa\x6a\xab\x00\x00\x4f\x6f\x4f\x69\x4f\x6e\x6a\xac\x4f\x6d\x4f\x5f\x4f\x5e\x4f\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xe2\x6b\xfd\x6b\xf6\x50\xdd\x50\xf0\x6b\xf2\x6b\xf9\x6b\xfb\x6c\x41\x50\xeb\x00\x00\x6b\xfa\x6b\xf3\x50\xe9\x6b\xf7\x00\x00\x6c\x42\x50\xda\x00\x00\x6b\xfc\x50\xe4\x50\xe3\x6b\xf5\x50\xd8\x00\x00\x00\x00\x50\xd9\x00\x00\x50\xd7\x00\x00\x50\xef\x50\xe7\x50\xe1\x50\xd5\x6b\xf8\x50\xe0\x50\xd6\x50\xe8\x50\xf1\x6d\xd5\x50\xe5\x6b\xf4\x50\xdb\x50\xde\x50\xdf\x00\x00\x50\xed\x50\xee\x50\xec\x50\xe6\x50\xea\x50\xdc\x52\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xdb\x52\xc3\x52\xbb\x52\xbd\x52\xc2\x6d\xe7\x52\xc0\x70\x54\x54\xd3\x52\xc5\x6d\xd8\x6d\xe0\x52\xc1\x6d\xdf\x6d\xdc\x6d\xe4\x6d\xe6\x52\xba\x52\xbe\x52\xc4\x54\xd5", /* 6300 */ "\x6d\xe1\x52\xbc\x52\xc7\x6d\xda\x00\x00\x00\x00\x00\x00\x52\xbf\x54\xd4\x52\xb9\x00\x00\x6d\xd7\x6d\xde\x6d\xd6\x6d\xd9\x6d\xdd\x70\x55\x52\xc6\x00\x00\x6d\xe2\x6d\xe3\x6d\xe5\x52\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe3\x70\x61\x54\xe1\x54\xe2\x70\x57\x70\x67\x00\x00\x54\xd8\x00\x00\x00\x00\x73\x6b\x70\x69\x70\x63\x00\x00\x70\x5a\x00\x00\x70\x6c\x70\x5d\x54\xde\x73\x83\x70\x60\x54\xe0\x54\xd7\x00\x00\x70\x6e\x70\x62\x54\xda\x70\x5b\x70\x58\x70\x59\x54\xdb\x70\x68\x70\x6f\x54\xdd\x70\x5f\x70\x5e\x54\xe5\x54\xe4\x54\xd6\x54\xdc\x54\xdf\x70\x6b\x00\x00\x00\x00\x70\x65\x54\xd9\x70\x56\x70\x6d\x70\x64\x70\x66\x70\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x6c\x00\x00\x57\x7b\x57\x90\x57\x8f\x00\x00\x57\x84\x00\x00\x73\x7e\x73\x7a\x73\x77\x73\x8a\x57\x7e\x57\x76\x00\x00\x00\x00\x73\x7c\x59\xcc\x57\x7a\x73\x85\x00\x00\x57\x91\x57\x8e\x73\x81\x73\x6f\x00\x00\x00\x00", /* 6380 */ "\x57\x8d\x73\x87\x73\x6e\x57\x82\x57\x86\x73\x86\x00\x00\x73\x78\x57\x87\x57\x81\x73\x6d\x00\x00\x59\xbe\x73\x89\x73\x76\x57\x8c\x73\x79\x73\x88\x57\x8b\x00\x00\x76\x98\x00\x00\x57\x77\x73\x74\x57\x7c\x57\x88\x00\x00\x57\x83\x73\x7d\x73\x73\x73\x71\x73\x84\x57\x74\x57\x89\x57\x78\x59\xbd\x73\x82\x57\x79\x00\x00\x57\x75\x57\x85\x57\x7f\x57\x7d\x73\x75\x57\x8a\x73\x72\x73\x7f\x73\x7b\x76\x9a\x76\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x70\x76\xaa\x00\x00\x59\xc0\x00\x00\x76\xb0\x76\x9f\x76\xad\x79\xfd\x59\xc3\x76\xb1\x76\xb4\x59\xc2\x76\xa2\x76\xb3\x76\xb2\x59\xc4\x76\x9b\x59\xbf\x59\xc7\x00\x00\x59\xc5\x76\xaf\x00\x00\x76\xa5\x59\xc9\x76\xb6\x76\xae\x76\xb7\x59\xd1\x59\xcf\x76\xac\x76\xab\x00\x00\x76\xa9\x76\xa3\x59\xc8\x00\x00\x59\xc6\x70\x5c\x76\x9c\x00\x00\x7a\x5e\x76\x9d\x59\xc1\x59\xce\x7a\x42\x00\x00\x59\xca\x59\xcb\x76\x9e\x76\xb5\x7a\x41\x76\xa6\x76\xa1\x59\xcd\x76\xa7\x76\xa4\x00\x00\x00\x00\x59\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x58\x00\x00\x00\x00\x7a\x45\x7a\x58\x7a\x5d\x7a\x51\x5c\x54\x7a\x62\x5c\x51\x7a\x43\x00\x00\x7a\x44\x5c\x4a\x5c\x53\x7a\x4b\x5c\x56\x5c\x57\x7a\x4c\x00\x00\x7a\x59\x7a\x5f\x5c\x52\x00\x00\x5c\x4c\x7a\x4a\x7a\x46\x7a\x61\x7a\x4f\x7a\x50\x7a\x47\x7a\x5b\x7a\x52\x7a\x5c\x7a\x54\x00\x00\x5c\x4d\x7d\xc1\x5c\x50\x5c\x4e\x7a\x60\x7a\x57\x7a\x53\x00\x00\x00\x00\x7a\x48\x5e\x9b\x7a\x56\x5c\x55\x7a\x4e\x00\x00\x7a\x4d\x00\x00\x00\x00\x00\x00\x5c\x4f\x5c\x4b\x7d\xd6\x7a\x5a\x7a\x55\x00\x00\x7a\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xd1\x00\x00\x7d\xc2\x7d\xcd\x00\x00\x7d\xd4\x5e\x99\x59\xd0\x7d\xd2\x5e\x94\x00\x00\x00\x00\x00\x00\x5e\x93\x7d\xd9\x00\x00\x7d\xc3\x7d\xd0\x7d\xc4\x7d\xcf\x5e\x97\x7d\xd3\x76\xa8\x00\x00\x00\x00\x00\x00\x7d\xda\x7d\xcb\x5e\x9a\x80\xe2\x60\x97\x00\x00\x7d\xd8\x7d\xd7\x5e\x9c\x80\xd5\x60\x98\x80\xd6\x00\x00\x7d\xc7\x7d\xc8\x7d\xc5\x7d\xca\x7d\xc6\x7d\xdb\x5e\x96\x60\x99\x5e\x98\x5e\x9d\x00\x00\x7d\xc9\x00\x00\x7d\xd5", /* 6480 */ "\x00\x00\x00\x00\x7d\xce\x00\x00\x00\x00\x80\xd9\x00\x00\x5e\x92\x60\x9c\x84\x55\x80\xde\x80\xdd\x80\xdf\x00\x00\x00\x00\x80\xdc\x60\x9d\x68\xcb\x60\xa3\x60\xa0\x00\x00\x60\xa1\x80\xd7\x80\xda\x80\xe4\x60\xa9\x60\xa7\x00\x00\x80\xdb\x76\xa0\x60\x9a\x80\xe1\x80\xd8\x00\x00\x60\xaa\x80\xe0\x5e\x95\x60\x9f\x7d\xcc\x00\x00\x00\x00\x60\xa2\x00\x00\x60\xa6\x60\xa8\x60\xa5\x60\xa4\x00\x00\x60\x9e\x80\xe3\x60\x9b\x60\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x82\x62\x83\x84\x54\x62\x8c\x62\x89\x00\x00\x62\x7f\x62\x87\x84\x56\x62\x85\x62\x7e\x00\x00\x62\x86\x00\x00\x84\x53\x63\xe3\x62\x81\x00\x00\x62\x88\x63\xe2\x84\x52\x84\x51\x00\x00\x62\x8a\x00\x00\x62\x8b\x00\x00\x84\x50\x84\x4f\x63\xe4\x84\x59\x62\x84\x84\x57\x00\x00\x00\x00\x00\x00\x00\x00\x63\xe5\x00\x00\x63\xea\x86\xf5\x86\xf7\x00\x00\x63\xe7\x00\x00\x86\xf8\x86\xf4\x00\x00\x86\xf6\x63\xe8\x63\xeb\x00\x00\x86\xf3\x63\xe6\x63\xe9\x65\x64\x84\x58\x65\x63\x00\x00\x00\x00\x65\x69\x89\x82\x00\x00\x65\x67\x65\x68\x89\x85\x89\x81\x65\x65\x89\x7e", /* 6500 */ "\x66\x57\x89\x83\x00\x00\x89\x84\x89\x7f\x00\x00\x65\x66\x8b\x70\x00\x00\x8b\x73\x00\x00\x00\x00\x8b\x74\x8b\x72\x8b\x75\x66\x58\x8b\x71\x00\x00\x00\x00\x8c\xfb\x66\xee\x8c\xfa\x8c\xf9\x8c\xf8\x66\xed\x66\xef\x00\x00\x8e\x7c\x67\x8e\x67\x8d\x00\x00\x00\x00\x8f\x71\x8f\x70\x8f\x73\x68\x57\x67\xe0\x90\x4e\x8f\x72\x00\x00\x00\x00\x90\x4d\x68\x59\x68\x58\x68\x7f\x90\xb8\x91\x41\x4c\xc4\x00\x00\x00\x00\x76\xb8\x84\x5a\x48\x82\x00\x00\x4e\x4d\x6a\xb8\x4f\x73\x4f\x71\x00\x00\x4f\x72\x00\x00\x6c\x43\x50\xf2\x52\xc8\x00\x00\x6d\xe8\x00\x00\x6d\xe9\x00\x00\x52\xc9\x70\x71\x00\x00\x54\xe6\x54\xe7\x70\x70\x00\x00\x00\x00\x00\x00\x00\x00\x57\x98\x00\x00\x57\x94\x00\x00\x73\x8b\x57\x9b\x57\x9a\x57\x93\x57\x96\x57\x99\x57\x95\x00\x00\x00\x00\x76\xbc\x57\x92\x59\xd3\x00\x00\x00\x00\x00\x00\x59\xd5\x59\xd6\x76\xbb\x76\xbe\x59\xd4\x76\xb9\x76\xbd\x00\x00\x76\xba\x00\x00\x5c\x59\x00\x00\x00\x00\x7a\x63\x00\x00\x00\x00\x5e\x9e\x7d\xdc\x62\x8d\x60\xac\x80\xe5\x60\xad\x60\xae\x80\xe7\x80\xe6\x80\xe8\x84\x5c\x00\x00\x00\x00\x84\x5b", /* 6580 */ "\x86\xfa\x86\xf9\x63\xec\x63\xed\x8b\x76\x00\x00\x00\x00\x4c\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x76\xbf\x00\x00\x00\x00\x00\x00\x59\xd8\x59\xd7\x7a\x64\x00\x00\x89\x86\x67\x8f\x90\x4f\x4c\xc6\x00\x00\x54\xe8\x00\x00\x57\x9d\x57\x9c\x76\xc0\x76\xc1\x5c\x5a\x7d\xdd\x5e\x9f\x84\x5d\x00\x00\x4c\xc7\x4d\x78\x00\x00\x50\xf3\x6c\x44\x00\x00\x6d\xea\x52\xca\x57\x9e\x00\x00\x76\xc2\x59\xd9\x5c\x5b\x00\x00\x80\xe9\x80\xea\x00\x00\x00\x00\x86\xfb\x65\x6a\x91\x42\x4c\xc8\x00\x00\x6c\x45\x50\xf4\x52\xcb\x00\x00\x6d\xeb\x00\x00\x54\xe9\x70\x75\x70\x73\x70\x74\x54\xea\x70\x72\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa0\x57\xa1\x73\x8c\x57\xa2\x57\x9f\x76\xc3\x00\x00\x76\xc4\x7a\x65\x00\x00\x00\x00\x5e\xa1\x5e\xa0\x00\x00\x00\x00\x86\xfc\x89\x87\x00\x00\x8b\x78\x8b\x77\x8c\xfc\x48\x87\x69\x5f\x52\xcc\x00\x00\x00\x00\x4c\xc9\x4d\x79\x00\x00\x4e\x4f\x4e\x4e\x00\x00\x00\x00\x4e\x50\x4e\x51\x69\xce\x69\xcd\x6a\xb9\x4f\x74\x6a\xbc\x6a\xbb\x6a\xba\x6a\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x50\xf5\x6c\x4b\x6c\x47\x6c\x50\x00\x00\x00\x00", /* 6600 */ "\x50\xfc\x00\x00\x50\xfa\x6c\x4c\x6c\x48\x6c\x4f\x50\xf9\x51\x43\x6c\x4a\x6c\x46\x51\x42\x6c\x4d\x50\xf8\x6c\x4e\x50\xfb\x50\xfd\x6c\x52\x6c\x51\x6c\x49\x50\xf7\x50\xf6\x51\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xf0\x6d\xf6\x00\x00\x52\xd2\x52\xcf\x6d\xed\x6d\xf2\x00\x00\x52\xd5\x52\xcd\x6d\xf1\x52\xd0\x52\xd3\x00\x00\x00\x00\x6d\xf4\x00\x00\x52\xce\x6d\xf9\x52\xd1\x00\x00\x52\xd4\x6d\xee\x6d\xf3\x6d\xf7\x6d\xef\x6d\xec\x00\x00\x00\x00\x6d\xf8\x6d\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xf2\x54\xeb\x54\xee\x00\x00\x54\xf1\x00\x00\x70\x78\x00\x00\x54\xec\x70\x76\x00\x00\x54\xf0\x00\x00\x00\x00\x54\xed\x00\x00\x70\x79\x54\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x90\x57\xa4\x73\x8f\x73\x91\x57\xa3\x57\xa8\x70\x77\x00\x00\x73\x8e\x73\x92\x00\x00\x57\xa5\x73\x8d\x57\xa7\x00\x00\x57\xa6\x00\x00\x76\xcb\x00\x00\x76\xc6\x00\x00\x59\xda\x59\xde\x59\xdb\x76\xc9\x76\xcc\x00\x00\x59\xdc\x00\x00\x59\xdd\x59\xe2\x7a\x6e\x76\xca\x59\xe0\x76\xc7\x76\xc5\x00\x00\x59\xe1\x00\x00", /* 6680 */ "\x76\xc8\x00\x00\x00\x00\x00\x00\x5c\x61\x00\x00\x7a\x66\x5c\x5e\x5c\x5f\x5c\x5d\x7a\x6b\x7a\x6a\x7a\x67\x5c\x63\x00\x00\x00\x00\x7a\x69\x59\xdf\x00\x00\x00\x00\x7a\x6d\x7a\x68\x5c\x60\x5c\x5c\x5c\x62\x7a\x6c\x00\x00\x00\x00\x00\x00\x5e\xa4\x00\x00\x7d\xe0\x7d\xdf\x7d\xde\x5e\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa3\x80\xed\x80\xf0\x60\xb0\x00\x00\x00\x00\x60\xaf\x80\xf1\x80\xec\x60\xb2\x80\xee\x00\x00\x60\xb1\x80\xeb\x00\x00\x80\xef\x62\x93\x62\x90\x84\x66\x84\x65\x00\x00\x84\x64\x84\x5f\x00\x00\x84\x60\x00\x00\x00\x00\x00\x00\x62\x91\x00\x00\x62\x8e\x62\x92\x84\x5e\x62\x8f\x84\x61\x84\x62\x84\x67\x00\x00\x00\x00\x84\x63\x00\x00\x00\x00\x86\xfd\x00\x00\x00\x00\x00\x00\x63\xef\x00\x00\x89\x8a\x63\xee\x89\x88\x89\x89\x65\x6b\x66\x5a\x8b\x79\x00\x00\x66\x59\x00\x00\x00\x00\x8d\x41\x8d\x42\x00\x00\x66\xf0\x00\x00\x8c\xfd\x67\x90\x00\x00\x90\x50\x68\x5a\x90\xb9\x90\xba\x00\x00\x4c\xca\x00\x00\x4e\x52\x4e\x53\x4f\x75\x00\x00\x6c\x53\x52\xd6\x54\xf3\x57\xa9\x00\x00\x00\x00\x56\xb6\x00\x00\x59\xe3\x59\xe4", /* 6700 */ "\x59\x52\x76\xcd\x00\x00\x5c\x64\x7d\xe2\x7d\xe1\x00\x00\x00\x00\x4c\xcb\x4e\x54\x6c\x54\x51\x45\x00\x00\x51\x44\x00\x00\x6d\xfa\x6d\xfb\x00\x00\x70\x7a\x70\x7b\x54\xf4\x54\xf5\x00\x00\x54\xf6\x73\x93\x00\x00\x00\x00\x57\xab\x00\x00\x59\xe6\x00\x00\x59\xe5\x7a\x6f\x7b\xc2\x7d\xe3\x84\x68\x00\x00\x00\x00\x65\x6c\x66\xf1\x4c\xcc\x00\x00\x4d\x7c\x4d\x7d\x4d\x7b\x4d\x7e\x4d\x7a\x00\x00\x00\x00\x4e\x57\x00\x00\x69\xd6\x4e\x56\x4e\x58\x00\x00\x00\x00\x69\xd1\x69\xd0\x69\xd3\x69\xd2\x69\xd5\x4e\x55\x69\xcf\x69\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbe\x4f\x7f\x6a\xbf\x6a\xc3\x4f\x7e\x00\x00\x6a\xc7\x6a\xc2\x6a\xc5\x4f\x77\x4f\x78\x4f\x79\x4f\x7a\x00\x00\x4f\x82\x00\x00\x6a\xc1\x4f\x7c\x4f\x83\x00\x00\x6a\xc0\x6a\xc6\x00\x00\x4f\x7b\x6a\xc4\x4f\x7d\x4f\x76\x4f\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5a\x00\x00\x6c\x56\x51\x46\x00\x00\x51\x50\x51\x51\x51\x49\x51\x5b\x51\x4b\x6c\x5e\x51\x56\x6c\x59\x51\x4c\x6c\x68\x6c\x69\x6c\x61\x6c\x5a\x51\x59\x6c\x66\x51\x54\x51\x52", /* 6780 */ "\x00\x00\x6c\x67\x00\x00\x6c\x65\x6c\x5d\x6c\x55\x6c\x5c\x51\x4d\x00\x00\x51\x53\x00\x00\x51\x47\x6c\x60\x6c\x5f\x6c\x57\x00\x00\x51\x55\x6c\x63\x6c\x58\x51\x58\x6c\x6a\x51\x48\x00\x00\x51\x4f\x6c\x5b\x6c\x64\x51\x57\x00\x00\x51\x4a\x51\x4e\x00\x00\x6c\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x5e\x52\xde\x52\xeb\x00\x00\x6e\x59\x6e\x4f\x52\xe4\x6e\x4d\x52\xdd\x6e\x48\x52\xe7\x6e\x55\x6e\x42\x6e\x44\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x47\x6d\xfc\x6e\x54\x6e\x64\x52\xe2\x6e\x49\x6e\x5b\x00\x00\x6e\x41\x6e\x62\x6e\x63\x6e\x66\x6e\x5d\x6e\x4e\x6e\x56\x52\xe8\x52\xdb\x52\xe3\x52\xef\x52\xd8\x52\xda\x00\x00\x00\x00\x00\x00\x6e\x46\x52\xec\x52\xe5\x6e\x60\x6e\x43\x52\xee\x52\xe9\x6e\x4c\x00\x00\x00\x00\x52\xed\x6e\x53\x6e\x4b\x52\xe6\x6e\x5f\x6e\x57\x00\x00\x52\xe0\x6e\x65\x6e\x4a\x52\xdc\x6e\x5c\x6e\x52\x52\xe1\x6e\x58\x52\xd9\x6d\xfd\x52\xea\x55\x48\x52\xdf\x6e\x51\x6e\x50\x6e\x45\x00\x00\x6e\x61\x00\x00\x6e\x5a\x00\x00\x00\x00\x52\xd7", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x90\x55\x4f\x70\x91\x00\x00\x70\x85\x55\x44\x55\x50\x00\x00\x70\x7d\x00\x00\x70\x87\x70\x8f\x00\x00\x70\x7c\x70\x98\x54\xf7\x00\x00\x00\x00\x00\x00\x70\x97\x70\x92\x00\x00\x70\x93\x55\x42\x55\x4d\x70\x89\x00\x00\x70\x8a\x70\x94\x70\x8b\x00\x00\x70\x86\x70\x7f\x70\x81\x70\x8e\x70\x88\x00\x00\x00\x00\x54\xf8\x54\xfc\x70\x96\x70\x82\x55\x4b\x55\x47\x00\x00\x00\x00\x55\x4a\x55\x51\x54\xfd\x55\x4c\x70\x8d\x55\x4e\x54\xfa\x00\x00\x54\xf9\x70\x7e\x00\x00\x70\x83\x55\x45\x70\x95\x70\x8c\x70\x84\x55\x49\x55\x46\x00\x00\x54\xfb\x55\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\xa8\x00\x00\x73\x98\x73\x99\x73\x9d\x00\x00\x73\xac\x73\xa9\x00\x00\x73\xa2\x73\xa1\x57\xb2\x73\xa5\x73\xb4\x73\x94\x00\x00\x73\xb5\x73\xa7\x73\xb9\x73\xad\x57\xb1", /* 6880 */ "\x73\xab\x57\xac\x57\xc1\x57\xb7\x00\x00\x57\xbb\x57\xba\x73\x95\x00\x00\x73\xb2\x73\xb8\x73\xb0\x73\xb7\x00\x00\x00\x00\x73\xa4\x73\x96\x73\xb6\x73\xa6\x57\xaf\x57\xbc\x00\x00\x73\xaf\x57\xb5\x00\x00\x00\x00\x00\x00\x73\xae\x73\x97\x57\xbd\x00\x00\x57\xbf\x73\xb1\x57\xc0\x57\xae\x73\x9e\x73\xb3\x00\x00\x00\x00\x57\xb4\x57\xbe\x73\xa0\x73\xaa\x73\x9b\x73\x9f\x57\xb9\x73\x9a\x57\xad\x57\xb6\x57\xb3\x73\xa3\x55\x43\x76\xe4\x57\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb8\x00\x00\x76\xe7\x76\xfd\x76\xf2\x59\xfa\x00\x00\x59\xf5\x76\xe1\x59\xf6\x76\xf1\x00\x00\x76\xea\x76\xf7\x59\xf2\x76\xcf\x76\xf9\x59\xe8\x76\xd7\x59\xeb\x59\xea\x00\x00\x59\xfb\x00\x00\x76\xd1\x76\xf3\x76\xf4\x59\xed\x59\xe9\x76\xdf\x00\x00\x59\xf4\x76\xda\x00\x00\x76\xf5\x59\xf0\x76\xed\x76\xfa\x76\xd4\x76\xd9\x76\xd3\x00\x00\x59\xef\x76\xe6\x7a\x86\x76\xd5\x59\xf3\x76\xde\x76\xf6\x59\xee\x76\xdb\x76\xd8\x76\xe9\x59\xf1\x59\xe7\x59\xfd\x76\xec\x76\xeb\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x76\xd0\x59\xec\x76\xf8\x76\xe0\x76\xe2\x00\x00\x76\xef\x76\xee\x76\xce\x59\xf7\x59\xf9\x76\xd6\x76\xdd\x76\xe5\x59\xf8\x76\xdc\x76\xe8\x76\xfb\x00\x00\x76\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x76\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x9a\x5c\x6c\x00\x00\x7a\x98\x7a\x83\x7a\x88\x7a\x81\x00\x00\x7a\x94\x7a\x72\x7a\x79\x00\x00\x7a\x92\x7a\x9c\x7a\x84\x00\x00\x7a\x76\x7a\x8a\x7a\x8f\x7a\x7a\x00\x00\x7a\x8c\x7a\x77\x00\x00\x00\x00\x7a\x7e\x7a\x7f\x5c\x6e\x7a\x93\x7a\x91\x00\x00\x7a\x73\x7a\x96\x00\x00\x7a\x97\x7a\x99\x5c\x72\x5c\x6a\x00\x00\x73\x9c\x7a\x7b\x7a\x8e\x7a\x7c\x5c\x67\x5c\x77\x7a\x95\x5c\x75\x5c\x71\x7a\x71\x5c\x69\x00\x00\x7a\x74\x5c\x76\x00\x00\x7a\x85\x7a\x70\x00\x00\x5c\x6f\x7a\x89\x7a\x78\x5c\x70\x7a\x82\x5c\x66\x59\xfc\x7a\x8b\x76\xe3\x7a\x75\x00\x00\x00\x00\x7a\x90\x5c\x6b\x7a\x8d\x5c\x68\x7a\x87\x5c\x73\x7a\x7d\x7a\x9b\x00\x00\x00\x00\x00\x00\x00\x00", /* 6980 */ "\x00\x00\x00\x00\x5c\x6d\x7b\x4e\x00\x00\x00\x00\x5c\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xf1\x7d\xef\x00\x00\x7e\x48\x7d\xed\x00\x00\x7e\x42\x5c\x65\x5e\xa7\x7d\xe9\x7e\x47\x00\x00\x7d\xee\x7d\xfc\x5e\xac\x5e\xa5\x00\x00\x7e\x45\x00\x00\x7d\xe7\x7e\x44\x00\x00\x5e\xb7\x7d\xf8\x7e\x4b\x5e\xb5\x7d\xf0\x5e\xa6\x7d\xf2\x7e\x43\x5e\xaf\x7d\xeb\x5e\xb3\x5e\xa9\x7d\xf4\x7d\xea\x7d\xe4\x00\x00\x7e\x41\x5e\xb0\x7e\x4a\x7d\xe5\x5e\xad\x00\x00\x7d\xfa\x00\x00\x5e\xae\x7d\xec\x7d\xf7\x7d\xf3\x7d\xf5\x00\x00\x5e\xa8\x7e\x49\x5e\xb6\x7d\xf6\x00\x00\x7e\x4c\x00\x00\x00\x00\x7d\xe6\x7d\xfb\x5e\xab\x5e\xb4\x5e\xb2\x7d\xe8\x7d\xfd\x5e\xb1\x00\x00\x00\x00\x5e\xaa\x7d\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xfd\x00\x00\x80\xf9\x80\xf5\x81\x4c\x81\x49\x60\xb5\x00\x00\x00\x00\x81\x50\x80\xfc\x60\xc0\x81\x46\x00\x00\x00\x00\x80\xf8\x81\x45\x60\xbd\x81\x59\x00\x00\x81\x56\x81\x48\x80\xf6\x00\x00\x00\x00\x81\x4d\x81\x4f\x60\xb9\x81\x43\x80\xfb", /* 6a00 */ "\x80\xf2\x60\xb6\x60\xbe\x00\x00\x81\x52\x60\xbf\x80\xf3\x81\x58\x81\x4b\x81\x51\x60\xbc\x00\x00\x00\x00\x81\x4e\x00\x00\x81\x55\x00\x00\x60\xc1\x00\x00\x60\xbb\x81\x47\x80\xf7\x81\x5a\x80\xf4\x81\x53\x60\xb8\x00\x00\x81\x41\x00\x00\x81\x42\x60\xb7\x60\xb4\x80\xfa\x60\xba\x00\x00\x60\xb3\x00\x00\x81\x54\x81\x57\x81\x44\x84\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x6d\x00\x00\x84\x69\x62\xa0\x00\x00\x00\x00\x62\x95\x62\x9a\x62\x96\x84\x77\x84\x83\x62\x94\x84\x6f\x84\x78\x81\x4a\x84\x79\x00\x00\x00\x00\x62\x9b\x00\x00\x84\x89\x62\x9f\x62\xa2\x84\x6b\x00\x00\x62\x9e\x00\x00\x84\x87\x84\x88\x84\x7d\x84\x7c\x84\x74\x00\x00\x00\x00\x84\x7e\x84\x86\x84\x85\x00\x00\x62\x99\x62\x97\x84\x76\x84\x73\x00\x00\x84\x70\x84\x84\x62\xa1\x84\x82\x62\x9d\x62\x9c\x00\x00\x84\x7b\x00\x00\x84\x6a\x84\x6c\x84\x6e\x84\x81\x84\x7a\x62\x98\x00\x00\x84\x71\x00\x00\x84\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf7\x87\x52", /* 6a80 */ "\x63\xf0\x87\x43\x00\x00\x87\x4e\x63\xf2\x87\x55\x00\x00\x87\x4a\x00\x00\x87\x45\x00\x00\x00\x00\x87\x56\x87\x41\x87\x4c\x00\x00\x63\xf9\x87\x51\x87\x57\x87\x4b\x63\xf1\x87\x4d\x87\x42\x63\xf8\x00\x00\x00\x00\x87\x54\x87\x47\x63\xf4\x00\x00\x87\x49\x87\x46\x63\xfa\x87\x48\x63\xf3\x63\xf6\x87\x50\x87\x44\x87\x53\x00\x00\x87\x4f\x00\x00\x00\x00\x00\x00\x65\x6e\x89\x95\x65\x73\x65\x74\x00\x00\x00\x00\x00\x00\x65\x6d\x89\x94\x00\x00\x89\x91\x89\x92\x65\x71\x89\x8c\x89\x90\x65\x70\x00\x00\x89\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x65\x72\x65\x6f\x00\x00\x89\x8b\x89\x8f\x89\x93\x00\x00\x00\x00\x00\x00\x8b\x7f\x8b\x7c\x8b\x86\x00\x00\x8b\x85\x8b\x83\x8b\x7d\x00\x00\x66\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x7e\x66\x5d\x63\xf5\x8b\x82\x66\x5c\x8b\x87\x8b\x81\x8b\x7b\x89\x8e\x00\x00\x00\x00\x00\x00\x66\x5b\x00\x00\x8b\x7a\x8d\x46\x00\x00\x8d\x45\x8b\x84\x66\xf2\x00\x00\x8d\x49\x8d\x4a\x8d\x44\x8d\x48\x00\x00\x8d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x81\x8d\x47\x67\x93\x67\x91\x8e\x7e\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x8e\x82\x00\x00\x8e\x7d\x8e\x7f\x67\x92\x00\x00\x00\x00\x00\x00\x8f\x75\x8f\x76\x67\xe1\x8f\x74\x00\x00\x00\x00\x00\x00\x90\x53\x68\x5b\x90\x51\x90\x52\x90\xbb\x00\x00\x00\x00\x68\xa2\x91\x45\x91\x43\x91\x44\x91\x46\x00\x00\x00\x00\x00\x00\x91\xab\x00\x00\x4c\xcd\x4e\x59\x00\x00\x51\x5c\x00\x00\x6c\x6b\x00\x00\x00\x00\x6e\x67\x00\x00\x00\x00\x00\x00\x70\x99\x70\x9b\x00\x00\x70\x9a\x00\x00\x70\x9c\x57\xc2\x73\xbb\x70\x9d\x00\x00\x73\xba\x73\xbc\x73\xbd\x77\x41\x5a\x42\x77\x42\x77\x44\x5a\x43\x5a\x41\x77\x43\x00\x00\x7a\xa2\x7a\xa0\x7a\x9f\x00\x00\x7a\x9e\x7a\x9d\x5c\x78\x7a\xa1\x5e\xb8\x7e\x4d\x7e\x4f\x5e\xb9\x7e\x4e\x60\xc3\x00\x00\x60\xc2\x81\x5b\x00\x00\x00\x00\x84\x8b\x84\x8a\x84\x8c\x00\x00\x00\x00\x62\xa3\x00\x00\x87\x58\x63\xfb\x00\x00\x89\x96\x65\x75\x8b\x88\x67\xe2\x4c\xce\x4d\x7f\x4e\x5a\x4f\x84\x51\x5d\x51\x5e\x00\x00\x00\x00\x52\xf0\x00\x00\x00\x00\x70\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x79\x00\x00\x00\x00\x00\x00\x81\xda\x62\xa4\x65\x76\x4c\xcf\x00\x00\x4e\x5b\x00\x00\x00\x00\x6c\x6d\x51\x5f", /* 6b80 */ "\x6c\x6c\x00\x00\x6e\x68\x52\xf1\x6e\x69\x00\x00\x52\xf2\x00\x00\x70\xa0\x55\x53\x55\x52\x00\x00\x73\xc2\x73\xc0\x73\xc1\x73\xbf\x00\x00\x73\xbe\x00\x00\x00\x00\x77\x45\x77\x48\x5a\x45\x77\x46\x5a\x44\x77\x47\x00\x00\x7a\xa3\x00\x00\x00\x00\x7e\x50\x7e\x51\x7e\x52\x00\x00\x81\x5e\x81\x5d\x60\xc4\x81\x5c\x81\x5f\x84\x8d\x00\x00\x00\x00\x84\x8e\x84\x8f\x00\x00\x87\x59\x63\xfc\x65\x77\x8b\x89\x00\x00\x67\x94\x69\x60\x00\x00\x52\xf3\x6e\x6a\x55\x54\x00\x00\x00\x00\x57\xc3\x00\x00\x5a\x46\x77\x49\x00\x00\x5c\x7b\x5c\x7a\x00\x00\x00\x00\x7e\x53\x7e\x54\x60\xc5\x60\xc6\x84\x91\x84\x90\x89\x97\x90\x54\x4c\xd0\x69\x61\x4d\x81\x00\x00\x4f\x85\x6a\xc8\x00\x00\x52\xf4\x5c\x7c\x4c\xd1\x00\x00\x6e\x6b\x52\xf5\x6e\x6c\x00\x00\x63\xfd\x4c\xd2\x00\x00\x00\x00\x6c\x6e\x00\x00\x6e\x6d\x00\x00\x70\xa5\x70\xa4\x70\xa2\x00\x00\x70\xa1\x70\xa6\x70\xa3\x00\x00\x00\x00\x57\xc4\x57\xc5\x00\x00\x00\x00\x5a\x47\x77\x4a\x00\x00\x77\x4b\x77\x4c\x00\x00\x00\x00\x00\x00\x7a\xa8\x7a\xa9\x7a\xa7\x00\x00\x7a\xa5\x7a\xa6\x5c\x7d\x7e\x55\x81\x62", /* 6c00 */ "\x81\x61\x81\x60\x81\x63\x84\x93\x84\x92\x62\xa5\x84\x94\x00\x00\x64\x41\x87\x5a\x00\x00\x89\x98\x8b\x8a\x8f\x77\x00\x00\x4c\xd3\x4d\x83\x4d\x82\x00\x00\x51\x60\x69\x62\x69\x7f\x4e\x5c\x00\x00\x69\xd7\x6a\xc9\x6a\xca\x51\x61\x00\x00\x6c\x6f\x00\x00\x52\xf6\x6e\x6e\x6e\x6f\x00\x00\x55\x55\x55\x59\x70\xa7\x55\x58\x55\x56\x55\x57\x00\x00\x73\xc3\x57\xc6\x5a\x4a\x00\x00\x5a\x48\x5a\x49\x77\x4d\x00\x00\x00\x00\x5e\xba\x4c\xd4\x00\x00\x69\x81\x00\x00\x4d\x84\x00\x00\x00\x00\x69\x84\x00\x00\x00\x00\x4d\x87\x69\x83\x4d\x86\x4d\x85\x4f\x86\x69\x82\x00\x00\x00\x00\x69\xd8\x00\x00\x00\x00\x00\x00\x69\xdc\x69\xde\x69\xdf\x4e\x66\x4e\x67\x69\xdb\x4e\x62\x00\x00\x69\xd9\x00\x00\x69\xdd\x4e\x63\x00\x00\x4e\x5e\x00\x00\x4e\x5f\x00\x00\x4e\x65\x69\xda\x4e\x5d\x4f\x87\x4e\x60\x4e\x61\x4e\x64\x00\x00\x00\x00\x00\x00\x6a\xdb\x6a\xd9\x6a\xcc\x4f\x93\x6a\xd3\x4f\x8e\x6a\xcd\x00\x00\x6a\xd5\x00\x00\x6a\xd2\x4f\x91\x6a\xd1\x4f\x98\x6a\xda\x4f\x9a\x00\x00\x4f\x9c\x00\x00\x6a\xcb\x00\x00\x4f\x8f\x6a\xdc\x00\x00\x4f\x96\x4f\x99\x00\x00", /* 6c80 */ "\x6c\x87\x4f\x89\x4f\xa0\x4f\x97\x6a\xce\x4f\x8c\x4f\x9b\x6a\xd6\x4f\x8a\x4f\x8b\x6c\x85\x6a\xcf\x4f\x92\x4f\x9d\x6a\xdd\x6a\xd0\x4f\x90\x00\x00\x4f\x95\x6c\x70\x4f\x9e\x6a\xd7\x4f\x94\x00\x00\x4f\x9f\x4f\x88\x6a\xd4\x4f\x8d\x6a\xd8\x6c\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6d\x51\x7d\x6c\x77\x51\x74\x00\x00\x6c\x8d\x51\x65\x00\x00\x51\x68\x6c\x84\x00\x00\x6c\x75\x6c\x79\x51\x70\x51\x72\x6c\x7c\x51\x79\x51\x6b\x51\x69\x51\x6a\x51\x78\x6c\x89\x51\x73\x6c\x7b\x6c\x7d\x51\x71\x51\x76\x6c\x7e\x6c\x8c\x00\x00\x52\xf7\x51\x7c\x00\x00\x51\x66\x6c\x8b\x00\x00\x6c\x8f\x6c\x7a\x6c\x91\x6c\x82\x51\x6f\x6c\x76\x51\x6e\x51\x81\x51\x75\x00\x00\x6c\x74\x6e\x78\x51\x7b\x51\x7f\x6c\x83\x6c\x88\x00\x00\x51\x82\x51\x7a\x51\x6c\x51\x62\x00\x00\x51\x67\x00\x00\x6c\x78\x51\x63\x6c\x90\x00\x00\x6c\x72\x6c\x71\x6c\x7f\x6c\x73\x51\x7e\x55\x5a\x51\x77\x6c\x81\x51\x64\x00\x00\x53\x49\x00\x00\x00\x00\x00\x00\x6c\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x6e\x7f\x6e\x83\x00\x00\x6e\x86\x6e\x7a\x00\x00\x00\x00\x6e\x89\x6e\x8c\x6e\x8e\x6e\x77\x52\xf8\x52\xfd\x70\xac\x53\x50\x6e\x87\x6e\x8f\x6e\x7e\x6e\x76\x00\x00\x00\x00\x00\x00\x70\xc7\x53\x43\x6e\x84\x6e\x7b\x6e\x7d\x53\x48\x00\x00\x6e\x81\x53\x42\x6e\x73\x6e\x8a\x00\x00\x6e\x8d\x00\x00\x00\x00\x52\xfc\x00\x00\x53\x4b\x6e\x70\x53\x4d\x52\xfa\x53\x51\x6e\x8b\x6e\x72\x53\x4e\x70\xc1\x6c\x8a\x53\x41\x52\xf9\x6e\x79\x6e\x71\x53\x4f\x53\x47\x6e\x85\x53\x4c\x53\x4a\x6e\x7c\x53\x44\x6e\x74\x53\x45\x53\x46\x6e\x75\x6e\x88\x52\xfb\x6e\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xaf\x55\x62\x55\x67\x00\x00\x00\x00\x00\x00\x70\xb8\x70\xbe\x70\xba\x70\xad\x70\xb0\x70\xa9\x70\xaa\x55\x6e\x55\x5f\x70\xb9\x70\xc2\x55\x69\x55\x5b\x00\x00\x55\x64\x70\xb1\x55\x66\x70\xb2\x70\xbc\x00\x00\x00\x00\x00\x00\x55\x68\x70\xcb\x70\xab\x55\x61\x55\x60\x55\x6c\x70\xa8\x70\xc9\x70\xbd\x70\xca\x70\xc4\x70\xb6", /* 6d80 */ "\x70\xc5\x00\x00\x70\xbf\x70\xc8\x70\xc6\x55\x6d\x70\xb7\x55\x5e\x55\x5d\x55\x65\x55\x6b\x70\xc3\x55\x6a\x70\xb4\x57\xc7\x00\x00\x70\xcc\x70\xb3\x70\xae\x55\x63\x55\x6f\x55\x5c\x00\x00\x70\xbb\x70\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe9\x73\xc5\x73\xc9\x00\x00\x57\xd6\x57\xd4\x00\x00\x00\x00\x57\xcb\x73\xc7\x73\xc6\x57\xdf\x00\x00\x73\xcc\x57\xd9\x00\x00\x73\xde\x73\xea\x57\xc8\x73\xdb\x73\xd4\x57\xeb\x73\xc4\x00\x00\x73\xe0\x00\x00\x57\xe8\x57\xdc\x57\xe7\x57\xd2\x73\xd0\x73\xe2\x73\xda\x57\xd3\x57\xcd\x73\xe8\x00\x00\x73\xe1\x73\xe3\x57\xd5\x57\xdd\x73\xe5\x73\xce\x73\xdf\x73\xd3\x73\xe7\x57\xe2\x57\xca\x57\xe0\x73\xd8\x73\xd6\x73\xd7\x57\xd7\x73\xd2\x73\xd1\x57\xcc\x73\xcb\x73\xe9\x57\xce\x73\xd5\x57\xec\x00\x00\x57\xe6\x73\xca\x57\xe3\x57\xe1\x57\xea\x73\xdc\x57\xe5\x70\xb5\x73\xdd\x57\xe4\x73\xe4\x57\xc9\x73\xd9\x57\xdb\x73\xcd\x57\xda\x00\x00\x57\xd8\x57\xd0\x57\xcf\x77\x4e\x73\xe6\x00\x00\x00\x00", /* 6e00 */ "\x73\xcf\x00\x00\x00\x00\x77\x63\x00\x00\x57\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x67\x57\xde\x5a\x55\x77\x5d\x5a\x63\x00\x00\x77\x51\x5a\x52\x5a\x4e\x77\x6f\x5a\x54\x5a\x58\x5a\x53\x5a\x5c\x77\x73\x77\x6a\x00\x00\x00\x00\x77\x58\x5a\x61\x5a\x5b\x77\x64\x5a\x4b\x77\x70\x77\x69\x5a\x4f\x77\x5e\x5a\x5e\x77\x7b\x77\x7c\x00\x00\x5a\x4c\x77\x6e\x5a\x60\x77\x62\x77\x54\x77\x55\x5a\x64\x77\x59\x77\x60\x77\x5a\x00\x00\x5a\x62\x5a\x6a\x77\x56\x77\x4f\x77\x50\x00\x00\x77\x52\x5a\x51\x77\x5f\x00\x00\x5a\x5f\x5a\x68\x00\x00\x00\x00\x77\x61\x77\x79\x77\x71\x5a\x4d\x77\x77\x5a\x59\x00\x00\x5a\x57\x00\x00\x77\x7d\x5a\x56\x77\x67\x77\x5b\x77\x65\x5a\x6d\x77\x6b\x77\x68\x77\x57\x5a\x69\x77\x75\x77\x72\x77\x7a\x5a\x50\x77\x66\x5a\x6c\x00\x00\x77\x6d\x00\x00\x00\x00\x5a\x5a\x5a\x5d\x00\x00\x77\x6c\x5a\x6b\x77\x5c\x73\xc8\x00\x00\x00\x00\x77\x76\x77\x74\x77\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6e80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x53\x5a\x66\x00\x00\x00\x00\x00\x00\x7a\xc8\x7a\xc7\x7a\xad\x5c\x84\x00\x00\x7a\xc6\x7a\xb0\x7a\xb1\x00\x00\x5c\x8e\x7a\xcf\x5c\x89\x7a\xc5\x00\x00\x7a\xaa\x5c\x8f\x5c\x85\x7a\xb9\x7a\xaf\x7a\xb2\x7a\xca\x5c\x7e\x7a\xd1\x7a\xc9\x5c\x88\x7a\xbe\x5c\x93\x00\x00\x00\x00\x5c\x92\x5c\x8c\x00\x00\x00\x00\x7a\xd0\x5c\x7f\x7a\xbc\x7a\xb3\x7a\xc0\x7a\xcc\x5c\x94\x00\x00\x5c\x82\x7a\xbb\x91\xc7\x7a\xb4\x5c\x8b\x00\x00\x5c\x8a\x7a\xb7\x7a\xc1\x7a\xcb\x7a\xae\x7a\xb8\x5c\x83\x7a\xc2\x5c\x90\x5c\x87\x7a\xb5\x5c\x86\x7a\xac\x7a\xba\x7a\xce\x5a\x65\x5e\xd6\x7a\xbd\x7e\x56\x7a\xbf\x7a\xcd\x5c\x8d\x7a\xb6\x5c\x81\x5c\x91\x60\xd8\x7a\xab\x00\x00\x7a\xc4\x00\x00\x00\x00\x00\x00\x7a\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x72\x5e\xd3\x7e\x67\x7e\x6c\x5e\xc8\x00\x00\x7e\x58\x5e\xd5\x00\x00\x5e\xbf\x7e\x57\x7e\x78\x5e\xd7\x7e\x5b\x7e\x6b\x00\x00\x7e\x5d\x7e\x7b\x7e\x77\x5e\xbd\x5e\xc7", /* 6f00 */ "\x81\x7d\x5e\xd4\x5e\xc5\x7e\x59\x00\x00\x7e\x76\x5e\xc9\x7e\x73\x7e\x81\x7e\x5f\x7e\x68\x00\x00\x00\x00\x7e\x7e\x7e\x74\x5e\xc4\x00\x00\x00\x00\x7e\x66\x5e\xbe\x5e\xbc\x5e\xce\x00\x00\x00\x00\x7e\x64\x7e\x61\x7e\x62\x00\x00\x7e\x7a\x00\x00\x7e\x7f\x7e\x7d\x5e\xc2\x7e\x82\x5e\xc6\x5e\xcd\x00\x00\x7e\x5a\x81\x65\x7e\x63\x00\x00\x5e\xc0\x5e\xd2\x5e\xcf\x5e\xc3\x7e\x6d\x7e\x5e\x5e\xd0\x7e\x6f\x5e\xca\x5e\xcc\x5e\xbb\x00\x00\x7e\x71\x7e\x69\x7e\x5c\x5e\xcb\x7e\x79\x7e\x7c\x7e\x65\x7e\x70\x00\x00\x5e\xc1\x60\xc7\x7e\x6e\x81\x64\x00\x00\x7e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x60\x81\x6e\x81\x78\x60\xca\x81\x77\x81\x84\x60\xcc\x81\x75\x00\x00\x81\x79\x60\xd7\x00\x00\x81\x70\x60\xcf\x00\x00\x81\x7c\x84\x9c\x60\xdb\x60\xda\x81\x7e\x81\x6d\x81\x89\x60\xd5\x00\x00\x60\xcb\x81\x82\x00\x00\x81\x86\x81\x8b\x81\x7f\x81\x73\x60\xce\x60\xd1\x60\xd9\x60\xd4\x00\x00\x81\x76\x7e\x6a\x00\x00\x00\x00\x81\x72\x81\x8a\x60\xd0\x00\x00\x60\xd3\x81\x8c\x60\xc8\x81\x81\x81\x66\x81\x87", /* 6f80 */ "\x64\x4a\x00\x00\x81\x74\x00\x00\x60\xc9\x81\x6f\x60\xcd\x81\x67\x5e\xd1\x81\x6b\x00\x00\x81\x85\x81\x6c\x81\x6a\x60\xd2\x00\x00\x81\x83\x00\x00\x81\x69\x81\x7b\x81\x7a\x81\x88\x81\x71\x60\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x9f\x00\x00\x62\xb2\x62\xa8\x84\xab\x84\x97\x62\xaa\x84\xa3\x62\xb1\x62\xac\x84\xa1\x87\x5c\x84\xa7\x84\xad\x84\xa6\x84\x95\x84\xa4\x84\xaf\x84\xb1\x62\xa7\x84\xb0\x62\xad\x62\xb3\x00\x00\x62\xb0\x00\x00\x84\xaa\x62\xaf\x84\xa5\x00\x00\x84\x99\x84\x9e\x00\x00\x84\xa9\x62\xae\x62\xab\x62\xa6\x62\xa9\x84\x9d\x00\x00\x81\x68\x84\x98\x84\x9b\x84\xac\x84\xa0\x84\x96\x87\x5b\x84\xae\x84\x9a\x84\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x87\x5e\x64\x4e\x00\x00\x00\x00\x64\x42\x00\x00\x00\x00\x64\x46\x87\x60\x87\x66\x87\x64\x64\x44\x64\x45\x64\x4c\x87\x67\x87\x5f\x64\x47\x00\x00\x87\x63\x87\x62\x87\x68\x64\x4d\x00\x00\x64\x48\x64\x4b\x87\x61\x64\x4f\x64\x49\x64\x50\x64\x43\x87\x65\x00\x00\x87\x5d\x00\x00\x00\x00\x89\xa5\x00\x00\x00\x00\x65\x7c\x89\xa2\x89\xa4\x00\x00\x65\x7a\x89\xa0", /* 7000 */ "\x89\xa1\x89\x9c\x00\x00\x00\x00\x84\xa2\x89\x9d\x65\x7b\x89\x99\x00\x00\x65\x78\x89\xa6\x65\x79\x89\x9a\x89\x9b\x89\x9f\x65\x7e\x00\x00\x65\x7d\x00\x00\x00\x00\x89\x9e\x66\x64\x8b\x8e\x8b\x94\x66\x65\x8b\x8b\x66\x62\x66\x5f\x8b\x96\x66\x63\x00\x00\x66\x60\x8b\x8d\x8b\x90\x8b\x91\x8b\x92\x8b\x95\x00\x00\x89\xa3\x8b\x8c\x66\x61\x8b\x93\x8b\x97\x8b\x8f\x00\x00\x00\x00\x00\x00\x8d\x4d\x66\xf4\x8d\x50\x66\xf5\x8d\x58\x8d\x4f\x8d\x4c\x00\x00\x8d\x4e\x8d\x52\x8d\x55\x8d\x54\x8d\x57\x8d\x4b\x00\x00\x66\xf3\x8d\x53\x8d\x56\x8d\x59\x8d\x51\x8e\x83\x8e\x84\x8e\x88\x8e\x89\x00\x00\x8e\x86\x8e\x87\x8e\x85\x00\x00\x67\x95\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe3\x8f\x7b\x00\x00\x00\x00\x8f\x78\x8f\x79\x8f\x7a\x67\xe4\x00\x00\x90\x56\x90\x55\x00\x00\x90\xbe\x68\x81\x90\xbc\x90\xbf\x90\xbd\x91\x47\x68\xa3\x68\xb1\x91\x93\x91\x7d\x00\x00\x91\x92\x91\xc0\x91\xc1\x4c\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x68\x69\xe0\x00\x00\x00\x00\x6a\xde\x00\x00\x4f\xa1\x00\x00\x4f\xa4\x00\x00\x6a\xdf\x00\x00\x4f\xa2\x4f\xa3\x00\x00\x00\x00", /* 7080 */ "\x00\x00\x00\x00\x6c\x9a\x6c\x9c\x6c\x97\x6c\x94\x6c\x96\x00\x00\x00\x00\x00\x00\x51\x86\x00\x00\x00\x00\x00\x00\x51\x84\x00\x00\x00\x00\x6c\x98\x51\x85\x6c\x95\x6c\x92\x51\x83\x6c\x99\x00\x00\x6c\x93\x51\x87\x6c\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x91\x00\x00\x6e\x95\x00\x00\x00\x00\x53\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x98\x00\x00\x53\x52\x53\x55\x53\x57\x53\x59\x53\x56\x6e\x94\x6e\x93\x00\x00\x53\x54\x6e\x96\x6e\x97\x00\x00\x6e\x90\x53\x58\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x6e\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xda\x70\xdb\x70\xdc\x55\x74\x00\x00\x55\x70\x70\xd1\x00\x00\x70\xd9\x70\xde\x55\x75\x00\x00\x70\xcf\x70\xd5\x70\xce\x70\xd8\x00\x00\x00\x00\x70\xd4\x55\x71\x55\x73\x70\xdd\x00\x00\x70\xcd\x70\xd0\x70\xd6\x00\x00\x70\xd7\x70\xdf\x70\xd3\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf1\x73\xf1\x00\x00\x00\x00\x73\xf3\x73\xef\x00\x00\x73\xfb\x73\xed\x73\xfa\x57\xed\x73\xeb\x77\x82\x73\xf5\x57\xf0\x00\x00\x73\xf6", /* 7100 */ "\x73\xf9\x00\x00\x73\xfd\x00\x00\x73\xf2\x00\x00\x73\xf7\x00\x00\x00\x00\x57\xee\x57\xef\x73\xfc\x73\xf0\x73\xec\x74\x41\x00\x00\x73\xf4\x00\x00\x00\x00\x73\xf8\x00\x00\x00\x00\x00\x00\x73\xee\x00\x00\x5a\x6e\x5a\x6f\x77\x8c\x5a\x75\x00\x00\x77\x7f\x77\x89\x77\x7e\x5a\x72\x77\x87\x77\x85\x00\x00\x77\x86\x5a\x70\x00\x00\x77\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x83\x77\x81\x5a\x71\x77\x84\x77\x88\x00\x00\x00\x00\x00\x00\x5a\x73\x00\x00\x00\x00\x00\x00\x77\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xd7\x7a\xde\x7a\xe0\x7a\xe6\x00\x00\x5c\xa1\x7a\xd2\x00\x00\x5c\x99\x00\x00\x7a\xe1\x5c\x9e\x7a\xe7\x5c\x95\x00\x00\x7a\xe4\x00\x00\x7a\xd4\x7a\xe5\x7a\xd3\x00\x00\x5c\xa3\x00\x00\x7a\xdf\x5c\x96\x7a\xe8\x00\x00\x5c\x9b\x7a\xd8\x5c\xa0\x7a\xe3\x7a\xd6\x7a\xdd\x7a\xd9\x7a\xd5\x5c\x98\x5c\x9f\x5c\x9d\x5c\x9a\x5c\xa2\x5c\x97\x7a\xdc\x00\x00\x5c\x9c\x00\x00\x5a\x74\x00\x00\x7a\xe2\x00\x00\x7a\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xdb\x00\x00\x00\x00\x7e\x8a\x00\x00\x5e\xda\x00\x00\x00\x00", /* 7180 */ "\x7e\x86\x7e\x8c\x7e\x88\x00\x00\x5e\xdc\x7e\x87\x7e\x8b\x7e\x83\x00\x00\x7e\x85\x5e\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x89\x7e\x84\x00\x00\x5e\xdd\x00\x00\x5e\xd8\x00\x00\x00\x00\x7e\x8d\x00\x00\x5e\xd9\x81\x92\x81\x8f\x81\x9b\x81\x95\x81\x97\x60\xdc\x81\x91\x81\x99\x00\x00\x00\x00\x81\x98\x81\x96\x00\x00\x81\x9c\x60\xdf\x81\x93\x81\x9a\x00\x00\x60\xdd\x00\x00\x00\x00\x81\x8e\x81\x90\x60\xde\x81\x8d\x81\x9d\x00\x00\x81\x94\x00\x00\x00\x00\x84\xb5\x62\xba\x00\x00\x00\x00\x84\xc0\x84\xbe\x62\xb4\x84\xb4\x84\xb7\x84\xb8\x84\xb3\x62\xbe\x62\xbf\x84\xb2\x84\xc1\x84\xbc\x62\xb8\x62\xb5\x84\xbb\x84\xb9\x00\x00\x00\x00\x62\xbb\x84\xbd\x62\xb6\x00\x00\x62\xb7\x00\x00\x84\xba\x62\xb9\x84\xb6\x00\x00\x84\xbf\x62\xbc\x84\xc2\x84\xc3\x62\xbd\x00\x00\x00\x00\x64\x52\x64\x59\x87\x69\x87\x6f\x00\x00\x87\x6d\x64\x55\x64\x54\x64\x51\x87\x6b\x00\x00\x00\x00\x00\x00\x64\x57\x64\x56\x64\x53\x00\x00\x87\x6e\x87\x6a\x87\x6c\x00\x00\x64\x58\x00\x00\x00\x00\x00\x00\x65\x83\x89\xa9\x00\x00\x65\x7f\x65\x81\x89\xab\x65\x82\x89\xa8", /* 7200 */ "\x00\x00\x89\xa7\x8b\x9b\x89\xaa\x00\x00\x8b\x9c\x66\x66\x8b\x9a\x00\x00\x00\x00\x8b\x99\x00\x00\x8b\x98\x66\x67\x00\x00\x00\x00\x66\xf6\x00\x00\x00\x00\x8d\x5a\x8d\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x8c\x8e\x8b\x67\x96\x00\x00\x8e\x8a\x8f\x7c\x8f\x7d\x00\x00\x00\x00\x90\x57\x90\xc0\x00\x00\x00\x00\x91\x48\x91\xac\x68\xc5\x91\xb6\x4c\xd6\x00\x00\x51\x88\x51\x89\x00\x00\x00\x00\x53\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x64\x5a\x4c\xd7\x00\x00\x51\x8a\x55\x76\x5c\xa4\x4c\xd8\x00\x00\x57\xf2\x5e\xde\x69\x63\x00\x00\x6e\x99\x70\xe0\x00\x00\x7e\x8e\x00\x00\x64\x5b\x4c\xd9\x51\x8b\x6e\x9a\x6e\x9b\x77\x8d\x5a\x76\x00\x00\x00\x00\x7a\xe9\x00\x00\x00\x00\x5c\xa5\x7e\x8f\x00\x00\x00\x00\x60\xe0\x00\x00\x66\x68\x4c\xda\x77\x8e\x4c\xdb\x00\x00\x4e\x6a\x69\xe1\x4e\x69\x4f\xa7\x4f\xa6\x4f\xa5\x6a\xe0\x00\x00\x00\x00\x00\x00\x51\x8c\x00\x00\x51\x8d\x6c\x9d\x00\x00\x6e\x9c\x00\x00\x6e\x9f\x53\x5d\x6e\x9d\x00\x00\x53\x5c\x6e\x9e\x53\x5e\x00\x00\x70\xe3\x70\xe2\x70\xe1\x55\x77\x00\x00\x74\x43\x74\x44\x57\xf3\x74\x42\x74\x45", /* 7280 */ "\x5a\x78\x57\xf4\x00\x00\x00\x00\x5a\x77\x77\x92\x77\x91\x00\x00\x77\x8f\x77\x90\x00\x00\x77\x93\x7a\xeb\x7a\xea\x7a\xee\x00\x00\x7a\xed\x7a\xec\x5e\xdf\x7e\x92\x00\x00\x7e\x91\x5e\xe0\x7e\x90\x81\x9e\x00\x00\x81\x9f\x60\xe1\x00\x00\x84\xc4\x84\xc5\x00\x00\x00\x00\x8b\xa1\x66\x69\x8b\xa0\x8b\x9f\x8b\x9d\x8b\x9e\x67\x97\x8d\x5c\x8f\x7e\x91\x49\x00\x00\x4c\xdc\x00\x00\x69\x85\x4d\x88\x69\x86\x00\x00\x00\x00\x00\x00\x69\xe2\x69\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe6\x00\x00\x00\x00\x6a\xe2\x00\x00\x6a\xe1\x51\x8e\x6a\xe5\x4f\xa9\x6a\xe3\x4f\xa8\x6a\xe7\x6a\xe4\x00\x00\x00\x00\x6c\xa1\x6e\xa0\x6c\x9f\x6c\xa6\x00\x00\x51\x8f\x00\x00\x51\x92\x6c\xa7\x6c\xa3\x00\x00\x6c\xa4\x00\x00\x6c\x9e\x51\x91\x6c\xa0\x51\x90\x6c\xa5\x00\x00\x6c\xa2\x00\x00\x00\x00\x6e\xa4\x53\x60\x53\x61\x00\x00\x6e\xa7\x6e\xa1\x00\x00\x6e\xa6\x00\x00\x6e\xa2\x53\x5f\x6e\xa5\x6e\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xe9\x70\xe6\x00\x00\x70\xe8\x55\x7c\x55\x7b\x55\x79\x70\xe5\x70\xea\x55\x78\x55\x7a\x70\xe7\x74\x4d", /* 7300 */ "\x70\xe4\x70\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x48\x74\x4c\x00\x00\x74\x4b\x77\x95\x77\xa0\x00\x00\x00\x00\x74\x4e\x00\x00\x74\x49\x77\x94\x57\xf8\x00\x00\x00\x00\x57\xf7\x74\x47\x74\x4a\x57\xf9\x00\x00\x57\xf6\x57\xf5\x74\x46\x74\x4f\x00\x00\x00\x00\x00\x00\x77\x97\x77\x9e\x00\x00\x5a\x7a\x77\x9d\x77\x9a\x00\x00\x5a\x7c\x00\x00\x00\x00\x00\x00\x77\x9c\x00\x00\x00\x00\x77\x96\x77\x98\x77\x9b\x77\x99\x5a\x7b\x77\x9f\x5a\x79\x5c\xa6\x00\x00\x00\x00\x7a\xf2\x7a\xf1\x7a\xef\x00\x00\x5c\xa9\x5c\xa8\x7a\xf3\x00\x00\x7a\xf0\x7e\x93\x5e\xe1\x5c\xa7\x00\x00\x00\x00\x00\x00\x7a\xf5\x7a\xf4\x00\x00\x7e\x96\x7e\x94\x60\xe2\x00\x00\x5e\xe2\x7e\x95\x81\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe3\x81\xa0\x81\xa9\x81\xa8\x81\xa6\x00\x00\x81\xa5\x81\xa2\x81\xa3\x81\xa4\x81\xa7\x81\xaa\x00\x00\x00\x00\x84\xca\x84\xc7\x84\xc8\x62\xc0\x84\xc6\x84\xcc\x84\xcb\x84\xc9\x00\x00\x87\x71\x87\x72\x64\x5c\x00\x00\x64\x5d\x87\x70\x00\x00\x65\x85\x89\xac\x65\x84\x66\x6a\x00\x00\x66\x6b\x66\xf7\x8d\x5e\x8d\x5d\x8e\x8d\x8f\x7f", /* 7380 */ "\x67\xe5\x90\x59\x90\x58\x90\x5a\x4d\x89\x6e\xa8\x55\x7d\x57\xfa\x74\x50\x4d\x8a\x69\x87\x4c\xdd\x00\x00\x00\x00\x69\xe4\x00\x00\x00\x00\x00\x00\x6a\xec\x6a\xea\x6a\xeb\x6a\xe8\x4f\xaa\x6a\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xaf\x00\x00\x51\x95\x6c\xad\x6c\xa9\x6c\xac\x00\x00\x6c\xa8\x51\x97\x6c\xab\x00\x00\x51\x94\x51\x93\x00\x00\x51\x96\x6c\xae\x6c\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x53\x65\x53\x68\x6e\xb0\x6e\xaf\x6e\xae\x53\x62\x6e\xb7\x6e\xad\x00\x00\x53\x64\x70\xf0\x00\x00\x6e\xb4\x6e\xb2\x53\x67\x00\x00\x6e\xaa\x6e\xb5\x00\x00\x6e\xac\x6e\xb6\x6e\xb3\x6e\xab\x00\x00\x53\x63\x6e\xb8\x6e\xa9\x53\x66\x00\x00\x00\x00\x00\x00\x00\x00\x70\xf5\x70\xec\x70\xf7\x00\x00\x70\xef\x70\xfa\x70\xfb\x70\xed\x70\xf9\x70\xf6\x70\xf4\x70\xf8\x55\x84\x00\x00\x55\x82\x00\x00\x00\x00\x70\xf2\x00\x00\x70\xee\x00\x00\x70\xf1\x70\xfc\x70\xf3\x55\x83\x6e\xb1\x00\x00\x55\x7e\x55\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x5e\x74\x53\x74\x51\x00\x00\x74\x52\x00\x00\x74\x59\x00\x00\x74\x5a\x74\x56\x58\x42\x74\x5b", /* 7400 */ "\x74\x58\x74\x55\x00\x00\x57\xfd\x74\x54\x57\xfb\x58\x41\x74\x57\x74\x5f\x55\x7f\x57\xfc\x74\x5d\x74\x5c\x58\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xa5\x00\x00\x00\x00\x00\x00\x77\xa6\x5a\x87\x00\x00\x77\xac\x00\x00\x00\x00\x77\xae\x77\xa7\x5a\x81\x77\xab\x77\xaa\x5a\x82\x5a\x88\x00\x00\x5a\x89\x77\xad\x5a\x7e\x77\xa4\x77\xa2\x77\xa8\x77\xa1\x5a\x86\x77\xa3\x77\xa9\x77\xaf\x5a\x7f\x5a\x85\x5a\x83\x5a\x84\x00\x00\x00\x00\x00\x00\x5a\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb0\x7a\xfc\x5c\xaf\x7b\x43\x00\x00\x7a\xf6\x00\x00\x7b\x44\x00\x00\x00\x00\x00\x00\x7a\xf7\x7a\xf8\x00\x00\x7b\x45\x7b\x42\x7a\xfd\x7b\x41\x7a\xfa\x7a\xf9\x00\x00\x7b\x46\x5c\xac\x00\x00\x7a\xfb\x00\x00\x5c\xb1\x5c\xab\x5c\xb2\x5c\xb3\x00\x00\x5c\xae\x5c\xad\x00\x00\x00\x00\x7e\x97\x5e\xe4\x5e\xe3\x00\x00\x00\x00\x7e\x9c\x00\x00\x60\xe4\x5e\xe5\x00\x00\x00\x00\x5e\xe7\x7e\x9d\x5c\xaa\x5e\xe6\x7e\x99\x7e\x9b\x7e\x98\x00\x00\x7e\x9a\x00\x00\x00\x00\x00\x00\x81\xb4\x00\x00\x00\x00\x81\xb3\x81\xb0\x60\xe7\x84\xcd", /* 7480 */ "\x60\xe8\x81\xaf\x00\x00\x60\xe6\x00\x00\x81\xb1\x81\xae\x81\xab\x81\xb2\x81\xac\x81\xad\x60\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x87\x76\x00\x00\x84\xd1\x00\x00\x84\xd0\x84\xd2\x00\x00\x87\x73\x62\xc3\x00\x00\x84\xce\x00\x00\x62\xc1\x00\x00\x62\xc5\x62\xc4\x84\xcf\x84\xd3\x00\x00\x62\xc2\x00\x00\x87\x7a\x64\x60\x65\x86\x64\x61\x64\x5e\x87\x77\x87\x75\x00\x00\x87\x78\x00\x00\x87\x7b\x64\x5f\x87\x79\x87\x74\x00\x00\x00\x00\x89\xaf\x89\xb2\x8b\xa4\x89\xad\x00\x00\x8d\x5f\x89\xb3\x00\x00\x66\x6c\x89\xb1\x65\x87\x89\xae\x89\xb0\x89\xb4\x8b\xa5\x00\x00\x8b\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x66\x6d\x8b\xa2\x00\x00\x00\x00\x00\x00\x66\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x67\x99\x8f\x82\x67\x98\x8f\x84\x8f\x81\x8f\x83\x68\x5c\x90\xc1\x4d\x8b\x6c\xb0\x70\xfd\x71\x41\x58\x44\x7b\x47\x62\xc6\x66\x6e\x67\xe6\x90\xc2\x4d\x8c\x00\x00\x6c\xb1\x46\xf8\x00\x00\x00\x00\x6e\xb9\x00\x00\x6e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x42\x71\x43\x58\x45\x58\x46\x00\x00\x00\x00\x00\x00\x77\xb0\x00\x00\x7b\x4a\x7b\x49\x7b\x48", /* 7500 */ "\x7e\x9e\x00\x00\x7e\x9f\x7e\xa0\x5e\xe8\x00\x00\x00\x00\x81\xb6\x81\xb5\x00\x00\x00\x00\x84\xd4\x62\xc7\x62\xc8\x00\x00\x87\x7f\x87\x7c\x87\x7d\x87\x7e\x89\xb6\x89\xb5\x65\x88\x8b\xa6\x8e\x8e\x4d\x8d\x00\x00\x53\x69\x00\x00\x58\x47\x7b\x4b\x00\x00\x4d\x8e\x00\x00\x71\x44\x58\x48\x00\x00\x00\x00\x5a\x8a\x5a\x8b\x00\x00\x4d\x8f\x4d\x90\x69\xe5\x4f\xac\x4f\xab\x53\x6a\x6e\xbb\x77\xb1\x4d\x91\x4d\x92\x4d\x93\x4d\x94\x00\x00\x00\x00\x00\x00\x4f\xad\x4f\xae\x6a\xee\x6a\xed\x00\x00\x00\x00\x51\x98\x6c\xb4\x6c\xb2\x6c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xbc\x6e\xbd\x00\x00\x00\x00\x53\x6e\x53\x6c\x00\x00\x53\x6d\x53\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x55\x85\x00\x00\x00\x00\x00\x00\x00\x00\x55\x89\x55\x88\x71\x45\x55\x87\x55\x86\x00\x00\x71\x46\x00\x00\x00\x00\x58\x4b\x74\x61\x74\x60\x58\x49\x58\x4a\x00\x00\x00\x00\x00\x00\x5a\x8d\x5a\x8c\x77\xb3\x00\x00\x00\x00\x77\xb2\x58\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb4\x7b\x4d\x5c\xb5\x7b\x4c\x00\x00\x00\x00\x00\x00\x7e\xa1\x81\xb7\x60\xe9", /* 7580 */ "\x84\xd5\x00\x00\x00\x00\x00\x00\x87\x81\x00\x00\x66\x70\x66\x6f\x00\x00\x00\x00\x67\xe7\x4d\x95\x6c\xb5\x00\x00\x00\x00\x58\x4d\x7e\xa2\x5e\xe9\x48\xa8\x00\x00\x6a\xef\x6a\xf0\x00\x00\x00\x00\x6c\xb6\x51\x9a\x51\x9b\x00\x00\x00\x00\x51\x99\x00\x00\x00\x00\x00\x00\x00\x00\x53\x72\x53\x73\x53\x70\x53\x71\x00\x00\x6e\xbe\x00\x00\x00\x00\x6e\xbf\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x71\x47\x00\x00\x55\x8d\x55\x8e\x00\x00\x58\x50\x71\x4d\x00\x00\x55\x93\x55\x91\x71\x4e\x71\x49\x55\x90\x55\x8f\x55\x8a\x71\x4c\x71\x4b\x71\x48\x55\x92\x00\x00\x71\x4a\x55\x8b\x00\x00\x55\x8c\x00\x00\x00\x00\x58\x51\x74\x65\x74\x66\x58\x52\x74\x62\x74\x64\x74\x68\x74\x67\x74\x63\x00\x00\x58\x4e\x58\x4f\x00\x00\x77\xbb\x5a\x92\x5a\x91\x77\xb5\x5a\x8f\x00\x00\x77\xb8\x5a\x93\x77\xb9\x5a\x94\x77\xb6\x5a\x8e\x5a\x90\x77\xba\x00\x00\x77\xb7\x77\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x5a\x00\x00\x7b\x4f\x5c\xb7\x5c\xba\x5c\xb9\x5c\xbe\x5c\xbd\x7b\x5b\x7b\x59\x7b\x52\x7b\x56\x7b\x55\x5c\xbb\x7b\x58\x7b\x54\x7b\x5c\x7b\x53\x5c\xbc", /* 7600 */ "\x5c\xb6\x5c\xb8\x00\x00\x7b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xa4\x5e\xed\x7e\xa8\x5e\xec\x7e\xa5\x5e\xeb\x00\x00\x7b\x50\x7b\x57\x7e\xa7\x00\x00\x5e\xee\x7e\xa9\x7e\xa6\x7e\xa3\x00\x00\x00\x00\x81\xba\x81\xbe\x81\xc0\x81\xbc\x81\xbb\x81\xb9\x60\xec\x60\xea\x60\xef\x60\xf0\x81\xbd\x60\xed\x81\xb8\x60\xee\x5e\xea\x81\xbf\x60\xeb\x00\x00\x00\x00\x00\x00\x84\xd7\x00\x00\x84\xd6\x84\xde\x84\xd8\x84\xdd\x84\xda\x62\xc9\x84\xdc\x00\x00\x00\x00\x62\xca\x00\x00\x62\xcb\x00\x00\x84\xdb\x84\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x64\x63\x87\x82\x00\x00\x00\x00\x64\x62\x87\x85\x87\x83\x87\x84\x00\x00\x00\x00\x64\x64\x00\x00\x00\x00\x00\x00\x89\xba\x00\x00\x65\x8b\x89\xbb\x00\x00\x00\x00\x65\x89\x89\xbc\x65\x8a\x89\xb9\x89\xbd\x00\x00\x89\xb7\x00\x00\x00\x00\x66\x71\x8b\xa7\x66\x72\x66\xf9\x00\x00\x89\xb8\x66\xfa\x00\x00\x00\x00\x00\x00\x67\x9a\x8e\x8f\x00\x00\x67\xe9\x8f\x85\x67\xe8\x00\x00\x90\x5b\x68\x82\x68\x83\x00\x00\x00\x00\x91\xbc\x48\xa9\x00\x00\x53\x74\x6e\xc0\x00\x00\x5a\x95\x5a\x96\x4d\x96\x4e\x6b\x69\xe6", /* 7680 */ "\x00\x00\x6a\xf1\x4f\xaf\x00\x00\x51\x9c\x00\x00\x53\x75\x53\x76\x53\x77\x74\x6a\x71\x4f\x55\x94\x00\x00\x00\x00\x58\x53\x74\x69\x00\x00\x00\x00\x77\xbd\x5a\x98\x00\x00\x77\xbc\x5a\x97\x00\x00\x00\x00\x7b\x5d\x60\xf1\x81\xc4\x81\xc1\x81\xc2\x81\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x86\x00\x00\x89\xbe\x00\x00\x00\x00\x00\x00\x8d\x61\x8d\x60\x00\x00\x8f\x86\x4d\x97\x6c\xb7\x55\x95\x00\x00\x00\x00\x00\x00\x5a\x99\x7b\x5e\x00\x00\x00\x00\x7e\xaa\x00\x00\x60\xf2\x84\xdf\x00\x00\x89\xbf\x8d\x62\x4d\x98\x00\x00\x00\x00\x51\x9d\x53\x7a\x6e\xc1\x53\x7b\x53\x79\x00\x00\x53\x78\x71\x50\x55\x96\x00\x00\x00\x00\x55\x97\x55\x98\x00\x00\x00\x00\x00\x00\x58\x55\x74\x6b\x58\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xbe\x58\x56\x5a\x9a\x7b\x5f\x5c\xbf\x5c\xc0\x00\x00\x5e\xef\x00\x00\x5e\xf0\x60\xf3\x62\xcd\x84\xe0\x62\xcc\x00\x00\x87\x87\x64\x65\x00\x00\x89\xc0\x8d\x63\x4d\x99\x4f\xb0\x6c\xba\x6c\xb9\x51\x9e\x6c\xb8\x51\x9f\x6c\xbb\x00\x00\x6e\xc7\x53\x7e\x53\x7d\x6e\xc9\x6e\xc8\x53\x83\x00\x00\x53\x82\x00\x00", /* 7700 */ "\x00\x00\x53\x7c\x00\x00\x6e\xc3\x6e\xc4\x6e\xc5\x00\x00\x53\x84\x6e\xc2\x53\x7f\x6e\xc6\x53\x81\x00\x00\x00\x00\x00\x00\x00\x00\x71\x53\x71\x57\x71\x55\x71\x54\x00\x00\x71\x58\x00\x00\x00\x00\x00\x00\x71\x59\x71\x5a\x71\x52\x00\x00\x71\x51\x00\x00\x55\x9a\x55\x9b\x00\x00\x71\x5b\x71\x56\x00\x00\x74\x74\x00\x00\x71\x5c\x55\x9c\x55\x99\x00\x00\x00\x00\x00\x00\x74\x6e\x00\x00\x74\x6d\x00\x00\x74\x6f\x74\x70\x74\x72\x74\x71\x74\x76\x58\x5a\x58\x57\x58\x5b\x74\x6c\x58\x5c\x74\x75\x58\x59\x74\x73\x58\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xc1\x77\xc3\x77\xbf\x77\xc0\x00\x00\x00\x00\x77\xc4\x77\xc6\x77\xc7\x77\xc2\x77\xc5\x5a\x9b\x00\x00\x00\x00\x7b\x63\x00\x00\x7b\x68\x7b\x60\x7b\x64\x00\x00\x00\x00\x7b\x69\x7b\x65\x5c\xc1\x5c\xc9\x00\x00\x5c\xc4\x7b\x61\x7b\x62\x5e\xf4\x5c\xcc\x5c\xc5\x00\x00\x5c\xca\x5c\xc3\x7b\x67\x5c\xcb\x7b\x66\x5c\xc7\x5c\xc2\x5c\xc8\x7b\x6a\x7e\xaf\x7e\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc6\x00\x00\x00\x00\x7e\xac\x5e\xf2\x7e\xb2\x5e\xf3", /* 7780 */ "\x7e\xb0\x7e\xab\x7e\xae\x7e\xb3\x5e\xf1\x7e\xad\x00\x00\x60\xf5\x81\xc8\x81\xc7\x00\x00\x60\xf8\x60\xf6\x81\xc5\x60\xf4\x81\xc6\x00\x00\x60\xf7\x00\x00\x00\x00\x00\x00\x84\xe8\x00\x00\x84\xea\x00\x00\x84\xe9\x84\xe1\x84\xe5\x84\xe4\x84\xe2\x62\xcf\x62\xd0\x62\xce\x84\xe3\x84\xe6\x84\xe7\x00\x00\x62\xd1\x00\x00\x64\x6a\x87\x8f\x00\x00\x64\x67\x87\x89\x64\x69\x64\x6b\x00\x00\x00\x00\x64\x68\x87\x8e\x87\x8a\x64\x66\x87\x8d\x87\x88\x87\x8c\x87\x8b\x00\x00\x00\x00\x89\xc2\x65\x8e\x65\x8f\x65\x8c\x00\x00\x65\x8d\x00\x00\x00\x00\x89\xc1\x00\x00\x8b\xaa\x00\x00\x00\x00\x66\x73\x00\x00\x8b\xa8\x8b\xa9\x00\x00\x8d\x64\x8d\x67\x8d\x65\x8d\x66\x8e\x90\x00\x00\x00\x00\x67\x9b\x90\x5c\x90\xc3\x00\x00\x68\x84\x91\x4a\x91\x4b\x68\xb2\x4d\x9a\x53\x85\x00\x00\x77\xc8\x00\x00\x7b\x6b\x00\x00\x4d\x9b\x4f\xb1\x00\x00\x51\xa0\x00\x00\x6e\xca\x6e\xcb\x55\x9d\x00\x00\x00\x00\x77\xc9\x5a\x9c\x5c\xcd\x64\x6c\x87\x90\x8b\xab\x8d\x68\x4d\x9c\x00\x00\x00\x00\x00\x00\x6c\xc1\x6c\xbc\x6c\xbe\x6c\xc0\x6c\xbf\x6c\xbd\x51\xa1\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x53\x86\x6e\xd4\x00\x00\x6e\xcf\x6e\xcc\x00\x00\x00\x00\x6e\xd3\x00\x00\x00\x00\x53\x88\x53\x89\x6e\xd2\x6e\xd1\x6e\xd0\x6e\xcd\x6e\xce\x6e\xd5\x53\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa1\x00\x00\x55\xa7\x55\xa6\x71\x65\x71\x5f\x71\x5d\x00\x00\x55\xa4\x74\x7d\x55\x9f\x71\x62\x71\x66\x71\x68\x71\x64\x71\x5e\x55\xa5\x71\x63\x71\x61\x55\x9e\x71\x69\x55\xa8\x71\x67\x55\xa2\x71\x60\x00\x00\x55\xa3\x55\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5e\x00\x00\x74\x7e\x00\x00\x00\x00\x74\x77\x74\x79\x74\x7b\x00\x00\x74\x7c\x74\x7a\x58\x5f\x00\x00\x74\x7f\x00\x00\x74\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xcd\x5a\x9d\x77\xd5\x00\x00\x77\xca\x00\x00\x77\xd6\x00\x00\x77\xcb\x77\xcc\x00\x00\x00\x00\x77\xd4\x77\xd3\x77\xd0\x58\x5d\x5a\x9e\x77\xce\x77\xd1\x5a\x9f\x77\xd2\x77\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x76\x00\x00\x7b\x7a\x5c\xd4\x00\x00\x7e\xb9\x5c\xd7", /* 7880 */ "\x7b\x78\x00\x00\x00\x00\x7b\x75\x7b\x70\x7b\x72\x7b\x73\x7b\x6c\x00\x00\x5c\xd3\x00\x00\x00\x00\x5c\xd2\x00\x00\x5c\xce\x7b\x6f\x00\x00\x5c\xd5\x00\x00\x5c\xd6\x7b\x6e\x7b\x71\x7b\x79\x5c\xd0\x5c\xd1\x7b\x77\x7b\x6d\x00\x00\x00\x00\x00\x00\x7e\xbb\x5e\xf6\x7e\xbd\x7b\x74\x7e\xbf\x5e\xfa\x7e\xc0\x7e\xbc\x00\x00\x5e\xf7\x7e\xb8\x5e\xf9\x7e\xb5\x7e\xba\x7e\xbe\x7e\xb7\x00\x00\x00\x00\x5c\xcf\x00\x00\x7e\xb4\x5e\xf8\x7e\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xfb\x81\xca\x61\x42\x00\x00\x60\xfd\x00\x00\x00\x00\x5e\xf5\x00\x00\x81\xd1\x81\xd2\x60\xfa\x00\x00\x00\x00\x81\xd0\x81\xd3\x60\xfc\x60\xf9\x81\xcc\x81\xc9\x81\xce\x81\xcb\x61\x43\x81\xcd\x00\x00\x00\x00\x81\xcf\x61\x41\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x84\xf1\x00\x00\x84\xeb\x84\xef\x84\xf5\x84\xf6\x84\xf2\x84\xf3\x84\xf0\x00\x00\x84\xed\x00\x00\x62\xd5\x62\xd2\x84\xec\x84\xee\x00\x00\x62\xd4\x84\xf4\x00\x00\x64\x70\x00\x00\x00\x00\x87\x96\x87\x91\x64\x6f\x00\x00\x00\x00\x64\x6d\x00\x00\x87\x98\x64\x6e\x87\x94\x87\x95\x87\x92\x87\x99\x89\xc3", /* 7900 */ "\x00\x00\x64\x71\x87\x93\x00\x00\x87\x9a\x87\x97\x00\x00\x00\x00\x00\x00\x89\xc7\x00\x00\x00\x00\x89\xc4\x00\x00\x65\x90\x00\x00\x89\xc8\x89\xca\x89\xc9\x89\xc5\x89\xc6\x00\x00\x00\x00\x8b\xb0\x00\x00\x66\x74\x00\x00\x8b\xad\x8b\xaf\x8b\xac\x8b\xb1\x00\x00\x00\x00\x8b\xae\x00\x00\x8d\x6a\x8d\x6d\x8d\x69\x66\xfb\x8d\x6b\x8d\x6c\x8d\x6e\x66\xfc\x67\x41\x66\xfd\x8e\x91\x00\x00\x8e\x93\x00\x00\x8e\x92\x00\x00\x00\x00\x00\x00\x8f\x87\x00\x00\x00\x00\x90\xc4\x91\x4c\x4d\x9d\x00\x00\x00\x00\x6a\xf2\x51\xa2\x6c\xc3\x51\xa3\x51\xa4\x6c\xc2\x00\x00\x6e\xda\x6e\xd9\x53\x8a\x53\x8d\x53\x8c\x53\x8b\x6e\xd6\x6e\xd8\x6e\xd7\x00\x00\x00\x00\x71\x6c\x55\xaa\x71\x70\x71\x6f\x71\x6e\x71\x6a\x55\xa9\x55\xad\x55\xb0\x00\x00\x00\x00\x55\xb1\x71\x6b\x71\x6d\x55\xaf\x55\xae\x55\xac\x55\xab\x74\x87\x00\x00\x74\x85\x74\x81\x58\x60\x00\x00\x74\x82\x58\x61\x74\x83\x74\x84\x74\x86\x00\x00\x58\x62\x00\x00\x00\x00\x77\xda\x00\x00\x77\xd9\x77\xd8\x77\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x7e\x5c\xd8\x00\x00\x7b\x7b\x7b\x7d\x00\x00\x5c\xd9", /* 7980 */ "\x00\x00\x5c\xda\x7b\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xc9\x00\x00\x7e\xc2\x7e\xc3\x00\x00\x5e\xfd\x5e\xfb\x5e\xfc\x7e\xcb\x00\x00\x7e\xca\x7e\xc7\x7e\xc6\x7e\xc5\x7e\xc4\x7e\xc8\x7e\xc1\x00\x00\x81\xd4\x81\xd9\x81\xd7\x00\x00\x00\x00\x00\x00\x81\xd6\x81\xd5\x81\xd8\x00\x00\x84\xf7\x00\x00\x62\xd6\x64\x72\x87\x9c\x00\x00\x64\x73\x87\x9b\x89\xcc\x89\xcb\x65\x91\x00\x00\x8b\xb2\x66\x75\x8d\x6f\x67\xea\x8f\x88\x00\x00\x90\xc6\x90\xc5\x69\x88\x53\x8e\x53\x8f\x74\x88\x00\x00\x5c\xdc\x4d\x9e\x4f\xb4\x4f\xb3\x4f\xb2\x00\x00\x00\x00\x00\x00\x6c\xc4\x00\x00\x00\x00\x51\xa6\x51\xa5\x00\x00\x53\x92\x00\x00\x6e\xdc\x6e\xdf\x6e\xdd\x00\x00\x53\x90\x53\x91\x00\x00\x00\x00\x6e\xdb\x6e\xde\x00\x00\x55\xb8\x00\x00\x00\x00\x00\x00\x71\x77\x71\x79\x71\x78\x55\xb5\x71\x73\x00\x00\x00\x00\x55\xb3\x55\xb2\x00\x00\x55\xb6\x55\xb4\x00\x00\x55\xb7\x71\x76\x71\x71\x71\x72\x71\x75\x71\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x8b\x74\x8c\x74\x8a\x00\x00\x74\x89\x58\x63\x00\x00\x00\x00\x00\x00\x00\x00", /* 7a00 */ "\x5a\xa4\x00\x00\x77\xdb\x77\xdd\x77\xdf\x5a\xa3\x00\x00\x00\x00\x5a\xa1\x00\x00\x77\xdc\x5a\xa2\x77\xde\x5a\xa0\x00\x00\x00\x00\x7b\x89\x7b\x7f\x7b\x83\x7b\x87\x5c\xe0\x7b\x85\x00\x00\x7b\x84\x7b\x81\x7b\x82\x5c\xde\x7b\x88\x5c\xdd\x00\x00\x5c\xe2\x5c\xe1\x5c\xdf\x00\x00\x7b\x86\x00\x00\x00\x00\x00\x00\x7e\xd1\x00\x00\x7e\xd0\x00\x00\x00\x00\x7e\xcc\x00\x00\x00\x00\x5f\x41\x7e\xcf\x7e\xce\x5f\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x48\x00\x00\x81\xdb\x00\x00\x61\x49\x61\x45\x61\x47\x00\x00\x61\x44\x61\x46\x00\x00\x00\x00\x00\x00\x84\xf8\x00\x00\x62\xd9\x84\xfa\x84\xf9\x00\x00\x7e\xcd\x62\xdb\x62\xda\x62\xd7\x62\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xa1\x00\x00\x87\x9f\x64\x74\x87\xa0\x00\x00\x87\xa2\x87\x9e\x87\x9d\x00\x00\x00\x00\x89\xcd\x65\x94\x65\x92\x65\x93\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xb3\x8b\xb4\x66\x77\x00\x00\x66\x76\x8d\x71\x8d\x72\x8d\x70\x00\x00\x8f\x89\x8f\x8a\x00\x00\x00\x00\x4d\x9f\x69\xe7\x4f\xb5\x00\x00\x6c\xc5\x51\xa8\x51\xa7\x6c\xc6\x00\x00\x00\x00\x6e\xe1\x53\x93", /* 7a80 */ "\x6e\xe0\x53\x94\x00\x00\x00\x00\x55\xb9\x71\x7c\x71\x7a\x71\x81\x55\xba\x71\x7b\x71\x7f\x71\x7d\x71\x7e\x00\x00\x00\x00\x74\x8d\x74\x8f\x00\x00\x58\x64\x00\x00\x74\x8e\x58\x65\x5a\xa7\x5a\xa6\x5a\xa5\x77\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x8c\x5c\xe3\x5c\xe4\x00\x00\x7b\x8b\x7b\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xd2\x5f\x44\x5f\x43\x7e\xd3\x7e\xd4\x00\x00\x61\x4b\x61\x4a\x00\x00\x85\x41\x81\xdc\x81\xde\x81\xdd\x84\xfd\x84\xfb\x85\x42\x84\xfc\x00\x00\x62\xdc\x00\x00\x00\x00\x00\x00\x87\xa3\x64\x75\x87\xa4\x87\xa5\x00\x00\x00\x00\x65\x95\x65\x96\x00\x00\x67\x42\x00\x00\x00\x00\x68\x5d\x4d\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x82\x55\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x58\xfc\x00\x00\x00\x00\x5a\xa9\x77\xe2\x5a\xa8\x77\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x8d\x00\x00\x5f\x45\x7e\xd5\x5f\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x43\x8d\x73\x00\x00\x4e\x6c\x51\xa9\x6c\xc7\x00\x00\x53\x96\x00\x00\x53\x95", /* 7b00 */ "\x6e\xe3\x6e\xe4\x00\x00\x00\x00\x71\x84\x71\x86\x55\xbc\x00\x00\x71\x88\x71\x8b\x71\x89\x00\x00\x00\x00\x00\x00\x71\x8a\x71\x87\x71\x83\x55\xbd\x71\x8c\x71\x85\x00\x00\x00\x00\x00\x00\x00\x00\x74\x98\x58\x6b\x74\xa1\x58\x68\x00\x00\x74\x9a\x58\x6c\x00\x00\x58\x66\x00\x00\x74\x95\x74\xa2\x74\x96\x74\x93\x58\x6a\x00\x00\x58\x67\x00\x00\x74\x99\x74\x9c\x58\x69\x74\x9d\x58\x6d\x74\x9e\x74\x94\x74\x9b\x74\x9f\x74\x97\x74\x92\x74\x90\x00\x00\x00\x00\x74\xa0\x00\x00\x00\x00\x77\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x77\xe9\x00\x00\x00\x00\x00\x00\x77\xe5\x77\xeb\x5a\xac\x74\x91\x77\xe6\x5a\xaa\x77\xe3\x5a\xb1\x77\xe7\x5a\xb0\x77\xe8\x5a\xb2\x5a\xad\x5a\xb3\x5a\xae\x00\x00\x5a\xaf\x00\x00\x5a\xab\x00\x00\x77\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe7\x7b\x98\x00\x00\x7b\x9b\x7b\x8f\x7b\x94\x7b\x8e\x5c\xe9\x00\x00\x7b\x92\x00\x00\x00\x00\x00\x00\x7b\x90\x5c\xe8\x00\x00\x7b\x97\x7b\x96\x7b\x93\x7b\x95\x7b\x91\x5f\x4a\x7b\x9a\x5c\xe5\x7b\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7b80 */ "\x00\x00\x00\x00\x7e\xe5\x00\x00\x5f\x51\x7e\xe0\x00\x00\x5f\x50\x7e\xd6\x00\x00\x7e\xd8\x5f\x49\x7e\xdd\x7e\xdc\x7e\xdf\x5f\x4e\x7e\xda\x7e\xd9\x00\x00\x00\x00\x5f\x4d\x5f\x48\x7e\xdb\x5f\x4b\x7e\xe1\x7e\xe3\x00\x00\x7e\xde\x7e\xd7\x5f\x4c\x00\x00\x00\x00\x61\x53\x5f\x47\x00\x00\x00\x00\x7e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe2\x61\x4c\x00\x00\x81\xe4\x00\x00\x61\x4d\x00\x00\x00\x00\x61\x4f\x81\xe7\x00\x00\x81\xdf\x5f\x4f\x81\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe1\x00\x00\x5c\xe6\x61\x52\x00\x00\x00\x00\x61\x4e\x00\x00\x61\x50\x61\x51\x00\x00\x62\xdf\x81\xe6\x81\xe0\x61\x54\x00\x00\x81\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x4c\x85\x47\x00\x00\x00\x00\x85\x51\x62\xdd\x85\x49\x62\xe1\x85\x4f\x85\x46\x85\x43\x85\x52\x64\x7b\x62\xe2\x85\x4e\x85\x44\x62\xe0\x85\x48\x62\xe4\x85\x45\x85\x4a\x62\xe3\x85\x4d\x85\x50\x00\x00\x00\x00\x00\x00\x00\x00\x87\xb7\x87\xb8\x87\xa8\x87\xaf\x87\xad\x00\x00\x00\x00\x64\x79\x87\xb4\x85\x4b\x00\x00\x87\xab\x00\x00\x87\xb5\x64\x78\x87\xaa", /* 7c00 */ "\x87\xa9\x87\xb3\x87\xb0\x87\xb2\x00\x00\x87\xa6\x87\xb6\x64\x76\x00\x00\x87\xb1\x87\xba\x87\xae\x64\x7a\x64\x77\x87\xac\x87\xa7\x87\xb9\x62\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\xd0\x00\x00\x00\x00\x89\xce\x89\xd4\x65\x9a\x89\xd2\x89\xd1\x65\x9c\x89\xd7\x65\x9b\x00\x00\x89\xd8\x89\xd5\x65\x98\x89\xd6\x89\xcf\x65\x99\x65\x97\x8b\xb8\x89\xd3\x00\x00\x00\x00\x89\xd9\x00\x00\x00\x00\x8b\xb5\x00\x00\x00\x00\x00\x00\x66\x7c\x66\x7a\x8b\xb7\x00\x00\x8b\xb9\x8b\xb6\x66\x7b\x66\x78\x66\x79\x66\x7d\x00\x00\x00\x00\x67\x45\x00\x00\x8d\x78\x00\x00\x8d\x77\x8d\x75\x8d\x74\x8d\x76\x00\x00\x67\x44\x67\x46\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x8e\x95\x8e\x94\x00\x00\x00\x00\x8f\x8b\x00\x00\x8f\x8d\x8f\x8f\x8f\x8e\x8f\x8c\x00\x00\x00\x00\x67\xec\x67\xeb\x00\x00\x00\x00\x68\x5f\x68\x5e\x68\x60\x90\x5e\x90\x5d\x00\x00\x91\x4d\x90\xc7\x91\x4e\x68\xa4\x00\x00\x68\xa5\x91\x7e\x00\x00\x00\x00\x68\xca\x4e\x6d\x00\x00\x6c\xc8\x00\x00\x00\x00\x6e\xe6\x6e\xe7\x6e\xe5\x00\x00\x00\x00\x53\x97\x00\x00\x6e\xe8", /* 7c80 */ "\x6e\xe9\x6e\xea\x00\x00\x00\x00\x71\x8d\x71\x93\x00\x00\x00\x00\x71\x91\x55\xbe\x71\x8f\x00\x00\x71\x90\x71\x92\x00\x00\x00\x00\x00\x00\x71\x8e\x58\x6e\x00\x00\x74\xa3\x58\x70\x74\xa5\x58\x6f\x74\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xed\x5a\xb4\x00\x00\x77\xef\x77\xec\x74\xa6\x00\x00\x5a\xb5\x00\x00\x00\x00\x77\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x9e\x00\x00\x5c\xea\x7b\x9c\x5c\xeb\x7b\x9d\x5c\xec\x00\x00\x00\x00\x00\x00\x5f\x52\x7e\xe9\x7e\xe6\x7e\xe8\x5f\x53\x5f\x54\x7e\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe8\x00\x00\x00\x00\x81\xe9\x00\x00\x61\x55\x81\xeb\x81\xea\x00\x00\x46\xf9\x00\x00\x85\x56\x85\x57\x85\x53\x00\x00\x85\x54\x62\xe5\x62\xe6\x85\x55\x00\x00\x64\x82\x00\x00\x00\x00\x64\x7d\x64\x83\x64\x7e\x64\x81\x64\x7c\x00\x00\x64\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x65\x9d\x87\xbb\x00\x00\x8b\xbb\x00\x00\x8b\xba\x00\x00\x8d\x79\x67\x47\x67\x48\x8f\x91\x8e\x96\x00\x00\x8f\x90\x00\x00\x91\x4f\x91\x94\x4e\x6e\x00\x00\x00\x00\x4f\xb6\x00\x00\x6c\xc9\x51\xaa\x00\x00", /* 7d00 */ "\x53\x9a\x6e\xed\x53\x98\x6e\xeb\x53\x9d\x53\x99\x53\x9e\x53\x9c\x6e\xec\x53\x9b\x55\xc2\x55\xc1\x71\x9e\x55\xca\x71\x97\x71\x9d\x55\xc6\x71\x96\x71\x9c\x71\x9a\x55\xc5\x55\xc7\x71\x99\x55\xc0\x71\x98\x55\xcb\x55\xc8\x55\xcc\x55\xc9\x71\x95\x71\x94\x71\x9b\x55\xc3\x55\xbf\x55\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xb5\x74\xae\x00\x00\x5a\xba\x74\xad\x00\x00\x58\x74\x58\x7b\x58\x78\x58\x7e\x58\x7d\x58\x79\x00\x00\x74\xa7\x74\xaa\x00\x00\x74\xa9\x58\x75\x74\xab\x74\xb4\x58\x76\x74\xa8\x74\xb1\x74\xb2\x58\x77\x74\xaf\x58\x7c\x58\x72\x58\x7a\x74\xac\x58\x71\x74\xb0\x00\x00\x00\x00\x74\xb3\x00\x00\x00\x00\x00\x00\x78\x43\x77\xf7\x5a\xb7\x78\x41\x77\xfb\x77\xf3\x77\xfc\x5a\xb9\x77\xf4\x00\x00\x77\xf0\x00\x00\x00\x00\x5c\xf2\x77\xf9\x00\x00\x5a\xb6\x78\x42\x00\x00\x5a\xbd\x5a\xbf\x77\xf2\x00\x00\x00\x00\x5a\xbe\x77\xf5\x5a\xb8\x77\xfd\x77\xf6\x77\xfa\x00\x00\x77\xf8\x5a\xbb\x77\xf1\x5a\xc0\x58\x73\x5a\xbc\x5a\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xee\x7b\xa5\x7b\xa7\x7b\xa9\x7b\xad\x00\x00\x7b\xa3", /* 7d80 */ "\x7b\xa1\x5c\xf0\x00\x00\x7b\xa8\x7b\xac\x7b\xa4\x7b\xa0\x00\x00\x7b\x9f\x00\x00\x00\x00\x00\x00\x7b\xaa\x7b\xa2\x7b\xa6\x5c\xf1\x00\x00\x5c\xef\x7b\xae\x5c\xed\x7b\xab\x00\x00\x7e\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x7e\xf2\x61\x62\x7e\xfc\x5f\x5a\x7f\x43\x5f\x60\x7e\xed\x00\x00\x00\x00\x7e\xfd\x7e\xea\x00\x00\x7f\x42\x7e\xee\x00\x00\x5f\x67\x5f\x64\x7f\x41\x7e\xf8\x5f\x56\x5f\x5e\x5f\x5d\x00\x00\x5f\x5c\x5f\x62\x00\x00\x7e\xeb\x5f\x63\x7e\xf9\x5f\x5f\x5f\x55\x7e\xfb\x5f\x58\x5f\x59\x5f\x61\x7e\xf0\x7e\xef\x7e\xec\x00\x00\x7e\xf4\x7e\xf1\x7e\xf5\x5f\x66\x00\x00\x7f\x44\x5f\x5b\x7e\xf6\x7e\xf7\x00\x00\x7e\xf3\x00\x00\x00\x00\x00\x00\x5f\x65\x00\x00\x00\x00\x00\x00\x00\x00\x81\xf0\x61\x5a\x61\x63\x61\x5f\x81\xed\x00\x00\x61\x5c\x61\x60\x81\xf9\x61\x56\x81\xf1\x00\x00\x61\x5e\x00\x00\x00\x00\x81\xf4\x81\xef\x61\x5d\x61\x61\x81\xee\x00\x00\x61\x5b\x00\x00\x81\xf8\x61\x58\x81\xf7\x81\xf6\x61\x64\x80\xbc\x61\x57\x00\x00\x81\xf5\x81\xec\x00\x00\x61\x65\x81\xf3\x61\x59\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x81\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe9\x62\xee\x62\xe7\x85\x64\x85\x5b\x85\x67\x85\x5f\x85\x65\x62\xef\x62\xe8\x85\x58\x85\x5e\x85\x68\x85\x61\x85\x66\x85\x5a\x00\x00\x00\x00\x85\x62\x62\xea\x85\x60\x62\xed\x62\xec\x85\x5c\x85\x5d\x85\x59\x85\x63\x62\xeb\x85\x6a\x85\x69\x00\x00\x00\x00\x00\x00\x87\xc6\x87\xc2\x64\x8a\x00\x00\x87\xbc\x64\x84\x64\x94\x87\xc8\x64\x8c\x64\x88\x87\xbf\x64\x8f\x64\x92\x87\xca\x64\x87\x87\xc1\x64\x90\x87\xcc\x87\xc9\x87\xbd\x64\x8b\x64\x85\x64\x93\x87\xc4\x64\x8e\x87\xbe\x64\x89\x87\xcb\x64\x8d\x64\x86\x87\xc5\x64\x91\x87\xc3\x00\x00\x00\x00\x87\xc7\x00\x00\x00\x00\x00\x00\x89\xdb\x89\xe1\x65\xa3\x89\xe4\x65\x9e\x65\x9f\x89\xdc\x89\xe3\x89\xde\x65\xa4\x65\xa1\x00\x00\x89\xda\x00\x00\x65\xa0\x89\xe0\x89\xe2\x65\xa2\x89\xdf\x89\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xc5\x66\x82\x66\x83\x66\x7e\x00\x00\x66\x7f\x00\x00\x8b\xc1\x8b\xbf\x00\x00\x8b\xc3\x66\x85\x8b\xc4\x8b\xbd\x8b\xbc\x8b\xc0\x8b\xbe\x66\x81\x8b\xc2\x8d\x7a\x67\x4b\x67\x4a\x8d\x7b\x00\x00", /* 7e80 */ "\x8d\x7d\x8d\x7c\x67\x4c\x00\x00\x00\x00\x00\x00\x8e\x9b\x8e\x98\x8e\x99\x00\x00\x8e\x97\x8e\x9a\x67\x9e\x8e\x9c\x00\x00\x67\x9d\x00\x00\x8f\x92\x00\x00\x68\x61\x68\x63\x90\x5f\x68\x62\x90\xc8\x91\x51\x91\x53\x91\x50\x91\x52\x68\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6f\x00\x00\x53\x9f\x70\xd2\x55\xcd\x00\x00\x00\x00\x58\x7f\x78\x44\x78\x45\x00\x00\x00\x00\x00\x00\x85\x6b\x64\x95\x87\xcd\x00\x00\x00\x00\x65\xa5\x00\x00\x8b\xc7\x8b\xc6\x67\x4d\x8e\x9d\x00\x00\x8f\x93\x68\x85\x69\xe8\x00\x00\x00\x00\x51\xab\x4f\xb7\x00\x00\x00\x00\x6e\xee\x00\x00\x00\x00\x71\xa4\x71\x9f\x71\xa3\x71\xa1\x55\xce\x71\xa2\x71\xa0\x00\x00\x74\xb6\x00\x00\x78\x46\x78\x47\x7b\xb1\x7b\xb2\x5c\xf4\x5c\xf5\x7b\xb0\x7b\xb3\x7b\xaf\x5c\xf3\x00\x00\x5f\x68\x00\x00\x5c\xf6\x7f\x45\x00\x00\x61\x66\x81\xfa\x61\x67\x00\x00\x62\xf0\x85\x6e\x85\x6c\x85\x6d\x87\xd0\x87\xcf\x87\xce", /* 7f80 */ "\x00\x00\x00\x00\x00\x00\x8b\xc8\x00\x00\x66\x84\x8b\xc9\x8f\x94\x68\x86\x90\xc9\x4e\x70\x51\xad\x51\xac\x6e\xf0\x53\xa0\x00\x00\x00\x00\x6e\xef\x71\xa6\x00\x00\x55\xcf\x74\xb7\x71\xa5\x00\x00\x00\x00\x00\x00\x58\x82\x74\xba\x74\xb8\x74\xb9\x58\x81\x00\x00\x78\x49\x78\x4a\x78\x48\x00\x00\x5c\xf9\x7b\xb5\x7b\xb4\x7b\xb6\x5c\xf8\x5c\xf7\x00\x00\x00\x00\x81\xfb\x81\xfd\x00\x00\x61\x68\x81\xfc\x85\x6f\x62\xf1\x89\xe6\x00\x00\x89\xe5\x66\x86\x8b\xca\x66\x88\x66\x87\x8d\x7e\x8e\x9e\x67\x9f\x4e\x71\x6e\xf1\x53\xa1\x71\xa9\x55\xd1\x71\xa8\x71\xa7\x00\x00\x55\xd0\x00\x00\x74\xc0\x00\x00\x74\xc2\x74\xbb\x74\xbc\x58\x83\x74\xbd\x58\x84\x74\xc1\x74\xbe\x74\xbf\x58\x85\x00\x00\x5a\xc3\x5a\xc4\x00\x00\x78\x4b\x00\x00\x00\x00\x00\x00\x7b\xb7\x7b\xb8\x00\x00\x7f\x49\x5f\x6b\x5f\x69\x5f\x6a\x7f\x46\x7f\x47\x00\x00\x7f\x48\x82\x45\x00\x00\x82\x46\x61\x69\x82\x43\x82\x42\x82\x44\x82\x41\x62\xf4\x85\x70\x62\xf2\x62\xf3\x87\xd2\x64\x96\x87\xd1\x89\x55\x00\x00\x89\xe7\x89\xe8\x65\xa6\x00\x00\x65\xa7\x64\x97\x8b\xcb\x8b\xcc\x8d\x7f", /* 8000 */ "\x67\x4e\x4e\x72\x00\x00\x4e\x73\x53\xa2\x51\xae\x55\xd2\x6e\xf2\x00\x00\x00\x00\x00\x00\x5a\xc5\x4e\x74\x53\xa4\x6e\xf3\x6e\xf4\x53\xa3\x53\xa5\x4e\x75\x00\x00\x6e\xf5\x55\xd4\x71\xaa\x55\xd6\x55\xd3\x55\xd5\x00\x00\x74\xc5\x58\x86\x00\x00\x74\xc4\x74\xc3\x00\x00\x7b\xb9\x00\x00\x00\x00\x7f\x4a\x00\x00\x61\x6a\x00\x00\x62\xf5\x85\x72\x85\x71\x00\x00\x87\xd3\x00\x00\x00\x00\x00\x00\x8e\x9f\x00\x00\x00\x00\x4e\x76\x6a\xf3\x6c\xca\x53\xa6\x6e\xf6\x00\x00\x71\xac\x00\x00\x00\x00\x00\x00\x55\xd7\x71\xab\x55\xd8\x00\x00\x00\x00\x00\x00\x74\xc7\x00\x00\x00\x00\x58\x88\x74\xc6\x74\xc8\x00\x00\x58\x87\x00\x00\x00\x00\x00\x00\x00\x00\x78\x4d\x78\x4e\x78\x4c\x5a\xc6\x00\x00\x00\x00\x00\x00\x5c\xfa\x00\x00\x5c\xfb\x00\x00\x5f\x6d\x00\x00\x7f\x4c\x7f\x4b\x5f\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x47\x00\x00\x00\x00\x82\x48\x00\x00\x00\x00\x00\x00\x00\x00\x85\x73\x00\x00\x00\x00\x64\x9b\x64\x9a\x64\x98\x64\x99\x64\x9c\x00\x00\x89\xe9\x65\xa9\x65\xa8\x8b\xcd\x8d\x81\x00\x00\x00\x00\x00\x00\x67\xee\x67\xed\x4e\x77", /* 8080 */ "\x00\x00\x00\x00\x70\x9f\x00\x00\x5c\xfd\x5a\xc7\x5c\xfc\x5f\x6e\x00\x00\x4e\x78\x69\x89\x4e\x79\x4e\x7a\x00\x00\x00\x00\x6c\xcb\x6a\xf6\x00\x00\x6a\xf7\x4f\xb9\x00\x00\x6a\xf4\x4f\xb8\x00\x00\x4f\xbb\x6a\xf5\x4f\xbd\x4f\xbc\x6a\xf8\x4f\xba\x00\x00\x00\x00\x00\x00\x51\xb3\x51\xb1\x6c\xcd\x00\x00\x51\xb0\x00\x00\x00\x00\x00\x00\x51\xb5\x51\xb7\x51\xb4\x00\x00\x6c\xd0\x6c\xcc\x51\xb8\x00\x00\x51\xb2\x4f\xbe\x00\x00\x51\xb6\x6c\xcf\x00\x00\x00\x00\x6c\xce\x00\x00\x51\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xfc\x53\xaa\x53\xab\x6f\x41\x00\x00\x6e\xf8\x6e\xfb\x6f\x47\x6f\x45\x00\x00\x53\xac\x6f\x4b\x53\xaf\x6f\x48\x6e\xfd\x6e\xfa\x00\x00\x00\x00\x78\x50\x6f\x46\x53\xa7\x6f\x49\x6e\xf7\x6f\x43\x53\xa9\x53\xae\x6f\x44\x53\xb2\x53\xb0\x00\x00\x6e\xf9\x53\xad\x00\x00\x6f\x42\x53\xb1\x53\xa8\x6f\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xdd\x00\x00\x55\xe6\x55\xdb\x55\xd9\x71\xae\x55\xe1\x55\xde\x71\xb0\x00\x00\x00\x00\x55\xe0\x71\xaf\x71\xad\x71\xb2\x55\xe5\x55\xe3\x78\x4f\x00\x00", /* 8100 */ "\x71\xb3\x71\xb1\x55\xda\x00\x00\x00\x00\x55\xdc\x55\xdf\x00\x00\x55\xe2\x00\x00\x55\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xd2\x58\x8a\x00\x00\x74\xc9\x74\xcb\x00\x00\x74\xcc\x00\x00\x74\xd4\x74\xd0\x74\xce\x00\x00\x74\xd1\x74\xd5\x58\x8b\x58\x8f\x74\xca\x00\x00\x74\xd3\x00\x00\x58\x8d\x00\x00\x58\x8c\x74\xcf\x74\xcd\x00\x00\x58\x89\x58\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xcd\x78\x58\x00\x00\x00\x00\x78\x56\x5a\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x78\x51\x7b\xc7\x00\x00\x5a\xce\x78\x55\x00\x00\x00\x00\x78\x52\x5a\xca\x5a\xd0\x78\x57\x5a\xcc\x78\x54\x5f\x6f\x5a\xcb\x78\x53\x5a\xd1\x5a\xc9\x5a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xbf\x7b\xbd\x00\x00\x7b\xc3\x00\x00\x7b\xbb\x7b\xc8\x7b\xc0\x00\x00\x7b\xba\x5d\x44\x5d\x4a\x7b\xc5\x00\x00\x7b\xbe\x00\x00\x5d\x47\x00\x00\x00\x00\x5d\x45\x7b\xc6\x5d\x42\x5d\x41\x7b\xc1\x5d\x46\x5a\xd2\x00\x00\x7b\xc4\x7b\xbc\x5d\x43\x5d\x48\x5d\x49\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x74", /* 8180 */ "\x5f\x70\x00\x00\x5f\x75\x7f\x4f\x00\x00\x00\x00\x7f\x4e\x7f\x50\x5f\x72\x7f\x4d\x5f\x73\x7f\x53\x7f\x52\x7f\x51\x00\x00\x5f\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x4c\x00\x00\x82\x4f\x61\x70\x82\x4e\x61\x6f\x61\x6b\x61\x6c\x61\x6d\x82\x4b\x82\x4a\x61\x6e\x00\x00\x82\x4d\x82\x49\x00\x00\x00\x00\x85\x75\x85\x7f\x62\xf8\x62\xf7\x00\x00\x85\x79\x85\x7b\x00\x00\x85\x76\x00\x00\x85\x7a\x85\x74\x85\x7d\x62\xf6\x85\x7c\x85\x78\x00\x00\x85\x7e\x00\x00\x85\x77\x64\x9f\x87\xd4\x87\xda\x64\xa3\x64\xa5\x64\xa2\x64\xa1\x00\x00\x64\xa0\x64\x9e\x87\xd5\x87\xd8\x64\x9d\x87\xd9\x00\x00\x64\xa4\x87\xd7\x00\x00\x87\xd6\x65\xaa\x00\x00\x65\xab\x89\xec\x89\xea\x89\xeb\x00\x00\x00\x00\x8b\xcf\x00\x00\x8b\xce\x66\x89\x8d\x83\x67\x4f\x8d\x82\x00\x00\x8e\xa0\x8f\x95\x67\xef\x91\x54\x91\x55\x68\x64\x4e\x7b\x00\x00\x51\xb9\x78\x59\x5f\x76\x64\xa6\x87\xdb\x4e\x7c\x00\x00\x55\xe8\x55\xe7\x78\x5a\x00\x00\x00\x00\x00\x00\x85\x81\x4e\x7d\x53\xb3\x00\x00\x00\x00\x78\x5b\x78\x5c\x78\x5d\x5f\x77\x62\xf9\x4e\x7e\x00\x00\x51\xba\x6f\x4c", /* 8200 */ "\x55\xe9\x71\xb4\x58\x90\x00\x00\x78\x5e\x5d\x4b\x00\x00\x5f\x78\x62\xfa\x64\xa7\x65\xac\x8d\x84\x4e\x7f\x51\xbb\x00\x00\x00\x00\x55\xea\x74\xd6\x5a\xd3\x00\x00\x5f\x79\x7f\x54\x82\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x81\x5a\xd4\x7b\xc9\x5f\x7a\x4e\x82\x6c\xd1\x6f\x4d\x53\xb4\x00\x00\x00\x00\x71\xb6\x00\x00\x00\x00\x55\xed\x00\x00\x55\xeb\x55\xec\x55\xee\x00\x00\x00\x00\x71\xb5\x00\x00\x00\x00\x74\xdb\x74\xd8\x74\xda\x58\x91\x58\x93\x58\x92\x74\xd7\x58\x94\x74\xd9\x00\x00\x78\x5f\x78\x60\x00\x00\x78\x61\x7b\xcc\x00\x00\x7b\xcd\x00\x00\x7b\xcb\x7b\xce\x00\x00\x5d\x4c\x00\x00\x7b\xca\x00\x00\x5f\x7b\x00\x00\x00\x00\x82\x55\x82\x51\x82\x54\x82\x56\x82\x53\x82\x52\x00\x00\x85\x82\x85\x83\x85\x84\x62\xfb\x62\xfc\x87\xdd\x87\xdc\x87\xde\x00\x00\x89\xee\x89\xed\x00\x00\x8b\xd1\x00\x00\x8b\xd2\x8b\xd0\x00\x00\x67\x50\x00\x00\x8d\x85\x8d\x86\x00\x00\x8f\x96\x90\x60\x90\xca\x4e\x83\x4f\xbf\x00\x00\x64\xa8\x4e\x84\x00\x00\x74\xdc\x78\x62\x00\x00\x68\x8d\x69\xe9\x00\x00\x00\x00\x00\x00\x69\xea\x69\xec\x4e\x85\x69\xed", /* 8280 */ "\x69\xeb\x00\x00\x00\x00\x6b\x43\x6b\x44\x6a\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x42\x4f\xc1\x00\x00\x4f\xc2\x6a\xfc\x6a\xfa\x6a\xf9\x6a\xfd\x4f\xc0\x6b\x41\x6f\x4e\x00\x00\x00\x00\x00\x00\x6c\xd6\x51\xbe\x6c\xd5\x6c\xd7\x00\x00\x51\xbd\x6c\xdc\x51\xc1\x6c\xd2\x6c\xe0\x6c\xe6\x51\xc8\x6c\xe3\x51\xc5\x00\x00\x6c\xd9\x6c\xdf\x6c\xe1\x00\x00\x6c\xd4\x51\xc4\x51\xbf\x6c\xda\x51\xc6\x51\xc9\x51\xc3\x00\x00\x51\xbc\x6c\xde\x6c\xd8\x6c\xe5\x51\xcb\x51\xc7\x51\xc2\x6c\xdd\x55\xef\x6c\xdb\x51\xc0\x51\xca\x00\x00\x6c\xd3\x00\x00\x6c\xe2\x6c\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc5\x53\xbf\x53\xc7\x53\xc4\x6f\x55\x6f\x58\x53\xc0\x00\x00\x6f\x4f\x00\x00\x53\xb9\x53\xc3\x00\x00\x53\xc6\x53\xc8\x6f\x64\x6f\x5b\x00\x00\x53\xb8\x6f\x63\x53\xbc\x53\xba\x53\xb5\x6f\x53\x00\x00\x6f\x62\x6f\x57\x6f\x5a\x6f\x67\x00\x00\x53\xc9\x6f\x61\x53\xc1\x6f\x5c\x6f\x66\x6f\x59\x6f\x5d\x6f\x60\x00\x00\x00\x00\x6f\x51\x6f\x65\x6f\x5f\x00\x00\x00\x00\x6f\x50\x00\x00", /* 8300 */ "\x6f\x54\x53\xc2\x53\xbd\x53\xb6\x53\xbb\x53\xb7\x53\xca\x6f\x52\x71\xc7\x53\xbe\x00\x00\x00\x00\x6f\x5e\x6d\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\xca\x55\xfd\x00\x00\x71\xba\x00\x00\x71\xc5\x71\xc1\x00\x00\x71\xd4\x00\x00\x71\xcc\x00\x00\x71\xc2\x00\x00\x71\xcb\x71\xbc\x71\xc0\x71\xd7\x56\x43\x71\xcf\x71\xc6\x55\xf0\x71\xd5\x71\xb8\x00\x00\x71\xce\x00\x00\x56\x42\x55\xfa\x71\xb7\x55\xf8\x55\xf7\x55\xfc\x71\xcd\x55\xf4\x55\xfb\x6f\x56\x78\x63\x71\xc8\x00\x00\x00\x00\x71\xbe\x56\x41\x71\xbf\x71\xc3\x56\x44\x71\xb9\x71\xd1\x00\x00\x71\xd0\x71\xd8\x55\xf6\x55\xf3\x71\xd6\x71\xd2\x71\xc9\x71\xc4\x55\xf9\x55\xf5\x71\xbb\x55\xf1\x71\xd3\x55\xf2\x00\x00\x71\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xe2\x74\xe4\x74\xe9\x74\xfd\x58\xa2\x58\x98\x00\x00\x74\xe1\x58\xa3\x58\xa4\x74\xec\x74\xf3\x74\xf9", /* 8380 */ "\x00\x00\x74\xe6\x00\x00\x74\xed\x00\x00\x00\x00\x58\xa5\x74\xfb\x74\xf6\x58\xa0\x58\x9e\x74\xf2\x74\xee\x74\xe0\x58\x95\x74\xe5\x74\xdd\x00\x00\x58\x9d\x58\x9f\x74\xea\x74\xe7\x58\x9a\x74\xf7\x58\x97\x74\xe8\x75\x41\x74\xf0\x00\x00\x74\xef\x58\x96\x00\x00\x58\xa1\x00\x00\x58\x99\x74\xde\x74\xe3\x74\xf4\x74\xfa\x58\xa6\x74\xdf\x74\xeb\x74\xf1\x58\x9c\x00\x00\x00\x00\x74\xfc\x74\xf5\x74\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9b\x00\x00\x78\x73\x78\x67\x5a\xdc\x78\x85\x78\x8d\x78\x90\x5a\xda\x78\x6f\x78\x89\x78\x70\x78\x7e\x5a\xe7\x78\x7a\x5a\xe4\x00\x00\x78\x7b\x78\x64\x00\x00\x78\x8a\x00\x00\x00\x00\x5a\xed\x78\x87\x78\x7c\x78\x92\x78\x77\x7b\xee\x00\x00\x78\x95\x5a\xeb\x78\x75\x78\x82\x5a\xee\x5a\xd9\x78\x79\x78\x93\x78\x72\x78\x6b\x78\x76\x00\x00\x78\x6a\x78\x68\x5a\xd5\x78\x8b\x78\x71\x78\x8e\x00\x00\x78\x8f\x5a\xdd\x5a\xe2\x5a\xde\x5a\xe6\x78\x86\x5a\xdf\x78\x7d\x78\x6d\x00\x00\x5a\xd7\x78\x65\x78\x88\x78\x91\x78\x6c\x5a\xe5\x78\x96\x78\x78", /* 8400 */ "\x00\x00\x78\x74\x00\x00\x5a\xd6\x5a\xea\x00\x00\x78\x84\x5a\xec\x00\x00\x78\x7f\x5a\xe1\x5a\xdb\x5a\xe3\x5a\xd8\x5a\xe9\x78\x81\x78\x6e\x78\x83\x78\x69\x78\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xed\x00\x00\x7c\x46\x5c\xdb\x7b\xf2\x00\x00\x7b\xf0\x7b\xdb\x5d\x50\x7b\xeb\x7c\x42\x7b\xe7\x5d\x58\x7c\x41\x7b\xe5\x5a\xe8\x7b\xf5\x7b\xe6\x7b\xfc\x5d\x57\x5d\x4f\x00\x00\x7b\xd0\x7b\xd8\x00\x00\x7b\xf1\x7b\xe9\x7c\x45\x7b\xec\x5d\x5d\x7b\xfd\x00\x00\x5d\x54\x00\x00\x7b\xef\x7b\xf7\x7b\xdc\x7b\xf6\x00\x00\x7c\x4a\x7b\xd7\x7b\xf8\x00\x00\x7c\x48\x00\x00\x7b\xd1\x5a\xe0\x00\x00\x7b\xdf\x7b\xde\x5d\x56\x00\x00\x7b\xe2\x7b\xe4\x7b\xf3\x7c\x47\x5d\x59\x00\x00\x5d\x5a\x00\x00\x7b\xd6\x5d\x52\x7b\xda\x7c\x43\x5d\x5b\x00\x00\x5d\x53\x5d\x55\x5d\x5c\x7c\x49\x7b\xf9\x7b\xf4\x00\x00\x00\x00\x7b\xe1\x7b\xe0\x5d\x51\x7b\xd2\x5d\x4e\x7b\xea\x7b\xd3\x7b\xe8\x00\x00\x00\x00\x7b\xdd\x7c\x44\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x5d\x4d\x00\x00\x00\x00\x00\x00\x7b\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xd5\x7b\xfb\x7b\xd4\x5f\x89\x7f\x7c\x00\x00\x00\x00\x7f\x6b\x00\x00\x00\x00\x7f\x55\x7f\x73\x5f\x81\x7f\x64\x7f\x6e\x5f\x84\x7f\x67\x5f\x82\x7f\x58\x7f\x76\x7f\x57\x7f\x6a\x00\x00\x7f\x56\x00\x00\x00\x00\x7f\x68\x7f\x71\x7f\x6f\x7f\x63\x7f\x5e\x7f\x5c\x00\x00\x7f\x5d\x7f\x70\x7f\x7b\x7f\x65\x5f\x83\x00\x00\x7f\x60\x00\x00\x7f\x74\x00\x00\x5f\x86\x7f\x5f\x7f\x59\x7f\x69\x5f\x8a\x00\x00\x00\x00\x5f\x7d\x5f\x87\x7f\x61\x7f\x5b\x00\x00\x5f\x7f\x7b\xfa\x5f\x7e\x7f\x6c\x00\x00\x5f\x7c\x5f\x8c\x5f\x85\x7f\x6d\x7f\x62\x7f\x5a\x7f\x75\x7f\x66\x5f\x8b\x7f\x79\x5f\x88\x7f\x78\x00\x00\x7f\x72\x7f\x77\x00\x00\x00\x00\x00\x00\x7f\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x7e\x82\x7f\x82\x72\x82\x71\x82\x6d\x61\x7c\x00\x00\x61\x74\x82\x82\x82\x81\x7b\xcf\x82\x6a\x82\x6e\x82\x68\x00\x00\x82\x7b\x82\x6c\x00\x00\x82\x83\x82\x65\x82\x63\x82\x6f\x82\x79\x82\x74\x61\x7e", /* 8500 */ "\x82\x5a\x00\x00\x82\x78\x00\x00\x00\x00\x00\x00\x61\x7f\x7b\xe3\x82\x66\x82\x5d\x82\x60\x82\x87\x82\x67\x82\x5e\x82\x5c\x82\x59\x00\x00\x61\x78\x82\x70\x61\x77\x61\x7b\x82\x6b\x82\x73\x61\x71\x82\x84\x82\x88\x61\x73\x00\x00\x82\x62\x82\x76\x82\x7a\x82\x5f\x82\x85\x61\x7a\x00\x00\x61\x79\x82\x57\x61\x7d\x82\x7d\x82\x61\x82\x75\x82\x5b\x82\x69\x82\x64\x61\x75\x61\x76\x82\x77\x82\x89\x82\x86\x82\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x58\x00\x00\x61\x72\x85\x95\x00\x00\x85\x8c\x85\x8f\x00\x00\x63\x45\x85\x91\x85\x86\x85\x8d\x85\x93\x63\x42\x63\x46\x62\xfd\x00\x00\x00\x00\x85\x88\x85\x98\x00\x00\x00\x00\x85\x92\x00\x00\x85\x89\x85\xa1\x85\x9b\x85\x85\x87\xf1\x85\x8b\x63\x41\x00\x00\x85\x96\x00\x00\x85\xa0\x63\x49\x00\x00\x85\x9d\x85\x8a\x85\x90\x85\x94\x85\x8e\x85\xa2\x85\x9f\x85\x9c\x63\x43\x63\x44\x63\x48\x85\x87\x85\xa3\x63\x47\x85\x99\x00\x00\x00\x00\x85\x97\x00\x00\x00\x00\x00\x00\x85\x9a\x88\x41\x87\xeb\x87\xf0\x87\xfd\x87\xef\x87\xe7\x87\xec\x00\x00\x64\xab\x00\x00", /* 8580 */ "\x87\xe0\x87\xf8\x87\xfa\x87\xdf\x64\xaa\x87\xfc\x87\xf4\x64\xb1\x87\xfb\x87\xed\x64\xb3\x87\xe5\x85\x9e\x87\xf5\x87\xf2\x87\xe1\x88\x43\x64\xad\x00\x00\x00\x00\x64\xae\x87\xe3\x87\xf3\x00\x00\x88\x42\x87\xf6\x87\xe9\x64\xb0\x64\xac\x87\xf7\x87\xea\x88\x44\x87\xe4\x87\xee\x87\xf9\x87\xe6\x87\xe8\x00\x00\x65\xb5\x87\xe2\x64\xb2\x65\xae\x64\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x64\xaf\x65\xb2\x8a\x41\x00\x00\x89\xf4\x89\xef\x89\xf5\x8a\x42\x8a\x46\x8a\x45\x65\xb4\x65\xb3\x00\x00\x00\x00\x89\xf6\x8a\x47\x89\xf9\x89\xf1\x00\x00\x89\xf3\x89\xf2\x89\xf8\x89\xfd\x89\xf0\x89\xf7\x89\xfc\x65\xb1\x00\x00\x89\xfa\x00\x00\x65\xaf\x89\xfb\x65\xad\x65\xb0\x8b\xe2\x8a\x43\x00\x00\x00\x00\x66\x8d\x00\x00\x8b\xda\x8b\xde\x8b\xd6\x8b\xd9\x00\x00\x8b\xe1\x66\x8b\x8b\xe6\x8b\xdf\x00\x00\x8b\xd7\x8b\xe7\x8b\xe0\x66\x8e\x66\x8f\x8b\xe4\x00\x00\x8b\xd8\x66\x8a\x66\x8c\x8b\xd3\x8b\xdb\x8b\xd5\x00\x00\x8b\xe5\x8b\xe3\x8b\xd4\x8b\xdc\x00\x00\x00\x00\x00\x00\x8d\x8d\x66\x90\x8b\xdd\x67\x52\x67\x54\x67\x51\x00\x00\x8d\x92\x8d\x8a\x8d\x88", /* 8600 */ "\x8d\x8c\x8d\x89\x00\x00\x00\x00\x8d\x8e\x8d\x90\x67\x55\x67\x57\x00\x00\x8d\x8f\x67\x58\x67\x56\x8d\x91\x00\x00\x00\x00\x00\x00\x00\x00\x67\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa0\x8e\xa1\x8e\xa7\x67\xa2\x8d\x8b\x8e\xa6\x00\x00\x8e\xad\x8e\xa4\x8e\xab\x8e\xaa\x8d\x87\x8e\xa5\x8a\x44\x8e\xae\x8e\xa3\x8e\xa8\x00\x00\x8e\xac\x8e\xa2\x00\x00\x8f\x9a\x67\xa1\x8e\xa9\x00\x00\x00\x00\x90\x65\x8f\x9b\x8f\x99\x8f\x97\x8f\x98\x8f\x9c\x00\x00\x68\x65\x90\x63\x90\x61\x90\x66\x90\x64\x00\x00\x90\x67\x68\x66\x90\x62\x00\x00\x00\x00\x90\xcb\x00\x00\x00\x00\x91\x56\x91\x57\x91\x58\x00\x00\x00\x00\x91\xb7\x91\xad\x69\xee\x51\xcc\x00\x00\x53\xcb\x00\x00\x71\xda\x71\xd9\x56\x45\x58\xa7\x75\x43\x00\x00\x00\x00\x75\x42\x00\x00\x5a\xef\x5d\x5f\x00\x00\x5d\x5e\x5d\x60\x00\x00\x7f\x7d\x82\x8a\x85\xa4\x85\xa6\x85\xa5\x00\x00\x64\xb4\x88\x45\x8a\x48\x91\x95\x4e\x86\x00\x00\x6c\xe9\x6c\xea\x6c\xe8\x6c\xe7\x51\xcd\x00\x00\x6f\x6b\x6f\x69\x00\x00\x00\x00\x6f\x68\x00\x00\x53\xcc\x53\xce\x53\xcd\x6f\x6a\x00\x00\x00\x00\x00\x00", /* 8680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\xe6\x71\xe3\x71\xe1\x00\x00\x00\x00\x56\x46\x71\xe4\x56\x4b\x71\xde\x71\xed\x00\x00\x71\xef\x71\xdf\x00\x00\x56\x48\x71\xf0\x71\xeb\x71\xdd\x71\xe2\x71\xec\x71\xe8\x71\xe5\x00\x00\x56\x4d\x71\xee\x71\xe0\x00\x00\x00\x00\x71\xe9\x71\xdb\x56\x4c\x56\x49\x71\xe7\x00\x00\x71\xea\x71\xdc\x56\x4a\x56\x47\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb1\x75\x4a\x58\xb0\x00\x00\x75\x4d\x75\x50\x58\xad\x58\xab\x75\x45\x75\x4e\x75\x4c\x75\x49\x75\x51\x75\x52\x75\x54\x75\x55\x75\x44\x58\xaa\x75\x47\x75\x46\x75\x53\x58\xac\x75\x48\x58\xae\x58\xa9\x75\x4b\x58\xb2\x00\x00\x58\xaf\x75\x4f\x00\x00\x00\x00\x00\x00\x5a\xf6\x78\xa5\x00\x00\x78\x9a\x5a\xf3\x00\x00\x7c\x50\x78\xa3\x78\x97\x5a\xf1\x78\x9c\x5a\xf4\x78\xa0\x78\x9e\x5a\xf7\x5a\xf0\x00\x00\x00\x00\x78\x98\x78\x9b\x5a\xf5\x00\x00\x78\x99\x00\x00\x78\xa4\x78\xa2\x78\x9d\x78\x9f\x78\xa1\x5a\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x51\x7c\x57\x7c\x4d\x7c\x53\x5d\x61\x7c\x4f\x5d\x67\x00\x00\x00\x00\x5d\x66\x00\x00", /* 8700 */ "\x5d\x65\x7c\x56\x5d\x68\x5d\x69\x7c\x4c\x7c\x59\x5d\x6a\x5d\x64\x5d\x63\x7c\x55\x5d\x6b\x7c\x4b\x7c\x4e\x7c\x58\x7c\x54\x00\x00\x00\x00\x7f\x9e\x7f\x93\x5d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x93\x7f\x87\x7f\x9c\x7f\x88\x5f\x8e\x00\x00\x7f\x85\x00\x00\x7f\x8e\x7f\x86\x5f\x90\x7f\x7f\x7f\x9b\x5f\x91\x7f\x98\x7f\x99\x7f\x81\x5f\x96\x7f\x90\x00\x00\x7f\x8a\x7f\x91\x7f\x84\x00\x00\x7f\x9d\x7f\x95\x7f\x8f\x7f\x7e\x5f\x92\x7f\x96\x00\x00\x5f\x95\x7f\x9a\x00\x00\x7f\x94\x5f\x8f\x7f\x92\x00\x00\x7f\x8c\x5f\x8d\x7f\x83\x7f\x8b\x7f\x97\x7f\x89\x00\x00\x00\x00\x7f\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8a\x7c\x52\x82\x9c\x82\xa5\x82\x9b\x82\x97\x82\x94\x61\x8b\x82\x92\x5f\x94\x82\x8b\x61\x89\x82\x91\x61\x88\x82\x96\x82\x93\x82\xa3\x82\x9e\x82\x98\x82\x9d\x61\x84\x82\x95\x82\xa8\x82\x8c\x82\x8d\x82\xa4\x61\x85\x82\xa9\x61\x87\x82\xaa\x82\x9a\x7f\x82\x82\xa0\x82\x99\x82\xa2\x82\x9f\x00\x00\x00\x00\x00\x00\x82\x90\x61\x82\x82\xa7\x61\x83\x82\x8e\x61\x86\x85\xb0\x82\xa1\x82\xa6\x00\x00\x00\x00\x00\x00\x00\x00", /* 8780 */ "\x00\x00\x85\xad\x61\x81\x63\x4a\x85\xb7\x85\xb3\x00\x00\x85\xb1\x85\xac\x85\xbb\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x85\xa8\x85\xb4\x85\xb5\x85\xab\x85\xaa\x85\xb8\x00\x00\x85\xae\x85\xa9\x85\xaf\x00\x00\x85\xba\x85\xa7\x85\xb9\x85\xb6\x63\x4c\x63\x4b\x00\x00\x00\x00\x63\x4d\x85\xb2\x8a\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x47\x64\xba\x88\x4b\x88\x48\x88\x4f\x88\x55\x88\x4a\x00\x00\x88\x5e\x64\xb7\x88\x58\x88\x4d\x88\x59\x88\x54\x88\x5b\x88\x4c\x64\xbc\x64\xbb\x88\x4e\x88\x5c\x88\x46\x88\x5a\x64\xb5\x00\x00\x88\x52\x88\x51\x88\x56\x88\x49\x64\xb9\x00\x00\x64\xbd\x88\x50\x88\x57\x64\xbe\x88\x53\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb6\x64\xb8\x8a\x55\x8a\x53\x00\x00\x00\x00\x8a\x5a\x8a\x57\x8a\x5b\x00\x00\x8a\x4c\x8a\x54\x8a\x5f\x88\x5d\x8a\x50\x65\xb9\x82\x8f\x8a\x4b\x8a\x58\x8a\x52\x8a\x4f\x8a\x4a\x8a\x49\x8a\x5e\x00\x00\x8a\x4e\x8a\x4d\x65\xb7\x8a\x56\x00\x00\x65\xb6\x00\x00\x00\x00\x65\xb8\x8a\x51\x8a\x5d\x00\x00\x8b\xeb\x8b\xec\x00\x00\x66\x94\x8b\xe9\x66\x91\x8b\xf1\x00\x00\x66\x95\x8b\xf3", /* 8800 */ "\x8b\xe8\x8a\x5c\x8b\xf5\x8b\xea\x00\x00\x66\x92\x8b\xf0\x00\x00\x8b\xf2\x8b\xed\x8b\xf4\x8b\xef\x8b\xee\x66\x93\x00\x00\x00\x00\x8d\x94\x8d\x95\x00\x00\x8d\x97\x67\x59\x67\x5a\x8d\x98\x8d\x96\x00\x00\x8d\x93\x00\x00\x8e\xb1\x8e\xb4\x8e\xb0\x00\x00\x67\xa6\x8e\xb2\x67\xa5\x67\xa4\x67\xa3\x8e\xb3\x8f\xa1\x8f\x9f\x00\x00\x8f\x9e\x8e\xaf\x8f\xa0\x8e\xb5\x8f\x9d\x00\x00\x90\x6a\x90\x48\x90\x68\x68\x67\x90\x69\x90\x6b\x00\x00\x90\xce\x68\x87\x90\xcd\x90\xcc\x68\x88\x00\x00\x68\xa6\x91\x7f\x91\x97\x91\x96\x91\x98\x4e\x87\x6f\x6c\x00\x00\x71\xf1\x71\xf2\x00\x00\x00\x00\x00\x00\x78\xa6\x00\x00\x8e\xb6\x90\xcf\x4e\x88\x53\xcf\x6f\x6d\x00\x00\x00\x00\x00\x00\x75\x56\x58\xb3\x00\x00\x78\xa8\x78\xa7\x5a\xf8\x00\x00\x5d\x6c\x82\xab\x61\x8c\x00\x00\x61\x8d\x00\x00\x00\x00\x00\x00\x63\x4f\x68\x89\x4e\x89\x00\x00\x00\x00\x00\x00\x6f\x6e\x51\xcf\x6f\x70\x6f\x6f\x53\xd0\x00\x00\x71\xf3\x00\x00\x71\xfa\x56\x4e\x71\xf8\x71\xf6\x00\x00\x71\xfd\x71\xf4\x71\xf5\x56\x4f\x00\x00\x56\x53\x00\x00\x00\x00\x72\x41\x56\x52\x71\xfc\x71\xf9", /* 8880 */ "\x71\xf7\x56\x50\x56\x51\x71\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb5\x75\x57\x00\x00\x58\xba\x75\x67\x58\xb9\x75\x69\x00\x00\x00\x00\x75\x5d\x58\xb7\x75\x68\x00\x00\x75\x58\x58\xb8\x75\x64\x75\x60\x75\x62\x75\x5c\x75\x63\x00\x00\x00\x00\x58\xb4\x75\x5f\x00\x00\x75\x5e\x75\x5a\x00\x00\x75\x65\x00\x00\x00\x00\x75\x61\x75\x59\x00\x00\x75\x5b\x58\xb6\x75\x66\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xfb\x78\xb3\x00\x00\x00\x00\x00\x00\x78\xaf\x78\xb1\x78\xac\x78\xab\x78\xa9\x00\x00\x78\xb0\x78\xb2\x78\xae\x00\x00\x78\xad\x5a\xf9\x5a\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xb5\x5d\x74\x7c\x5b\x7c\x61\x7c\x5c\x7c\x5d\x00\x00\x7c\x62\x00\x00\x5d\x76\x00\x00\x5d\x6e\x5d\x75\x7c\x5a\x78\xaa\x5d\x71\x5d\x6f\x7c\x60\x7c\x5f\x5d\x70\x5d\x72\x7c\x5e\x5d\x6d\x00\x00\x5d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xa0\x5f\x9d\x00\x00\x00\x00\x7f\xab\x7f\xaa\x00\x00\x7f\xa5\x5f\x9f\x7f\xa9\x7f\xa1\x7f\xa2\x5f\x97\x5f\x99\x00\x00\x7f\xa7\x7f\x9f\x5f\x9b\x5f\x9a\x7f\xa3\x7f\xa8\x7f\xa6\x5f\x9c\x7f\xa4\x00\x00", /* 8900 */ "\x00\x00\x78\xb4\x5f\x98\x00\x00\x00\x00\x82\xac\x82\xb3\x61\x8f\x00\x00\x82\xb7\x61\x93\x82\xaf\x82\xad\x00\x00\x82\xb6\x00\x00\x61\x8e\x82\xb5\x61\x90\x61\x91\x82\xae\x61\x92\x82\xb4\x82\xb0\x82\xb1\x82\xb2\x5f\x9e\x00\x00\x00\x00\x00\x00\x85\xbc\x85\xc8\x00\x00\x63\x54\x85\xc3\x85\xc5\x00\x00\x63\x52\x85\xbd\x85\xc1\x00\x00\x85\xc4\x63\x50\x63\x53\x85\xc7\x85\xbf\x85\xc0\x85\xc6\x85\xbe\x85\xc2\x63\x51\x88\x60\x00\x00\x88\x5f\x64\xc0\x88\x65\x64\xc2\x00\x00\x00\x00\x64\xbf\x88\x61\x64\xc3\x88\x62\x00\x00\x00\x00\x88\x63\x88\x66\x00\x00\x64\xc1\x00\x00\x8a\x64\x00\x00\x00\x00\x8a\x67\x00\x00\x8a\x61\x8a\x63\x00\x00\x00\x00\x8a\x62\x8a\x65\x8a\x66\x88\x64\x8a\x60\x00\x00\x00\x00\x66\x98\x8b\xf9\x8b\xfc\x8c\x41\x8b\xf7\x8b\xf8\x8b\xfb\x8b\xfd\x66\x99\x66\x97\x66\x96\x8b\xfa\x8b\xf6\x8d\x99\x67\x5b\x00\x00\x8d\x9a\x00\x00\x00\x00\x8e\xb8\x67\xa7\x8e\xba\x67\xa8\x8e\xb7\x8e\xb9\x67\xf1\x00\x00\x8f\xa2\x67\xf0\x90\x6e\x90\x6d\x00\x00\x90\x6c\x00\x00\x00\x00\x91\x59\x91\x5a\x91\x5c\x91\x5b\x00\x00\x69\xef\x4e\x8a", /* 8980 */ "\x00\x00\x53\xd1\x75\x6a\x5a\xfc\x00\x00\x7c\x63\x65\xba\x00\x00\x8c\x42\x00\x00\x00\x00\x4f\xc3\x00\x00\x00\x00\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x58\xbb\x00\x00\x78\xb6\x5a\xfd\x78\xb8\x78\xb7\x00\x00\x00\x00\x7c\x64\x5d\x77\x7f\xac\x7f\xaf\x7f\xae\x00\x00\x7f\xad\x82\xb8\x82\xba\x82\xb9\x00\x00\x63\x56\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x64\xc4\x88\x67\x88\x69\x88\x68\x00\x00\x00\x00\x65\xbb\x00\x00\x00\x00\x00\x00\x8c\x44\x8c\x43\x00\x00\x8d\x9b\x67\x5c\x00\x00\x00\x00\x67\xa9\x8f\xa4\x8f\xa3\x68\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc4\x6f\x71\x53\xd2\x75\x6d\x75\x6b\x00\x00\x00\x00\x75\x6c\x78\xba\x78\xbb\x7c\x6b\x78\xb9\x00\x00\x7c\x65\x7c\x69\x7c\x68\x7c\x6a\x5d\x78\x7c\x67\x7c\x66\x7c\x6c\x00\x00\x7f\xb2\x7f\xb0\x00\x00\x7f\xb1\x82\xbd\x82\xbb\x00\x00\x00\x00\x82\xbc\x85\xc9\x88\x6a\x88\x6b\x65\xbc\x00\x00\x8c\x45\x8d\x9c\x67\x5d\x00\x00\x8e\xbb\x8f\xa5\x67\xf2\x00\x00\x90\x6f\x91\x5d", /* 8a00 */ "\x4f\xc5\x00\x00\x53\xd4\x53\xd5\x6f\x72\x00\x00\x00\x00\x6f\x73\x53\xd3\x00\x00\x56\x59\x00\x00\x56\x57\x00\x00\x56\x56\x56\x5d\x56\x55\x56\x5e\x72\x42\x56\x5b\x00\x00\x56\x58\x56\x5c\x56\x5a\x56\x54\x00\x00\x00\x00\x58\xc4\x00\x00\x58\xbe\x75\x71\x58\xc3\x00\x00\x00\x00\x58\xc5\x58\xbf\x00\x00\x58\xc0\x00\x00\x75\x6f\x00\x00\x00\x00\x58\xbd\x00\x00\x75\x70\x58\xc2\x00\x00\x00\x00\x75\x6e\x58\xc1\x00\x00\x00\x00\x5b\x4b\x00\x00\x5b\x4d\x00\x00\x00\x00\x78\xbe\x5b\x4c\x5b\x41\x5b\x45\x00\x00\x5d\x8c\x7c\x71\x78\xc0\x5b\x46\x00\x00\x00\x00\x78\xc3\x78\xc4\x5b\x4a\x00\x00\x78\xc6\x00\x00\x78\xc8\x00\x00\x78\xc9\x78\xbd\x78\xbc\x78\xca\x5b\x49\x78\xc7\x78\xc5\x00\x00\x5b\x47\x5b\x43\x5b\x4e\x78\xc1\x78\xc2\x78\xbf\x00\x00\x5b\x48\x00\x00\x00\x00\x5b\x44\x00\x00\x5b\x42\x7c\x70\x5d\x87\x5d\x82\x00\x00\x00\x00\x5d\x7c\x00\x00\x5d\x8d\x5d\x7d\x00\x00\x5d\x79\x5d\x89\x5d\x86\x5d\x88\x00\x00\x5d\x7e\x5d\x84\x5d\x7a\x5d\x7b\x7c\x78\x7c\x75\x7c\x6d\x7c\x72\x00\x00\x5d\x8a\x7c\x79\x5d\x8b\x5d\x81\x00\x00\x00\x00\x7c\x6f", /* 8a80 */ "\x00\x00\x7c\x77\x7c\x73\x7c\x76\x7c\x74\x5d\x85\x7c\x6e\x5d\x7f\x00\x00\x00\x00\x00\x00\x7f\xb5\x5f\xa1\x5f\xa4\x00\x00\x7f\xb7\x00\x00\x5f\xac\x7f\xb6\x5f\xa6\x00\x00\x61\x98\x7f\xb8\x00\x00\x5f\xab\x7f\xb4\x5f\xad\x00\x00\x00\x00\x00\x00\x5f\xa2\x00\x00\x5d\x83\x5f\xa5\x00\x00\x5f\xa3\x5f\xa7\x5f\xa9\x5f\xa0\x5f\xae\x5f\xaa\x00\x00\x5f\xa8\x7f\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x61\x9f\x00\x00\x61\x9b\x00\x00\x00\x00\x00\x00\x61\xa2\x00\x00\x82\xc0\x61\xa3\x82\xcc\x82\xc5\x61\x94\x82\xcd\x82\xc7\x61\x9e\x82\xc8\x00\x00\x61\x9d\x82\xcb\x61\x97\x82\xc9\x82\xbf\x61\x96\x85\xd4\x61\x9c\x00\x00\x61\x99\x00\x00\x61\xa1\x00\x00\x82\xbe\x00\x00\x82\xc2\x61\x95\x82\xc1\x82\xc3\x82\xc4\x61\xa0\x82\xc6\x82\xca\x82\xce\x00\x00\x61\xa4\x63\x5c\x85\xcf\x85\xd5\x85\xd2\x85\xca\x85\xd6\x85\xcb\x00\x00\x85\xd1\x00\x00\x63\x57\x63\x5d\x85\xd7\x00\x00\x00\x00\x63\x59\x00\x00\x63\x63\x63\x5e\x85\xd9\x85\xd3\x63\x5a\x85\xcc\x63\x64\x85\xcd\x85\xce\x63\x65\x63\x62\x61\x9a\x00\x00\x63\x58\x85\xda\x63\x66\x00\x00\x63\x5f\x85\xd8", /* 8b00 */ "\x63\x5b\x63\x60\x63\x61\x00\x00\x64\xcc\x88\x70\x88\x79\x88\x76\x88\x78\x00\x00\x64\xc9\x88\x71\x00\x00\x88\x77\x64\xc5\x88\x73\x64\xcd\x88\x6f\x88\x74\x88\x7b\x85\xd0\x88\x75\x88\x6e\x64\xc6\x88\x6d\x64\xc7\x88\x7c\x64\xc8\x88\x7a\x64\xcb\x88\x6c\x00\x00\x64\xca\x00\x00\x88\x72\x8a\x6a\x8a\x78\x8a\x73\x8a\x75\x8a\x69\x65\xbd\x00\x00\x8a\x68\x65\xc0\x65\xbf\x00\x00\x8a\x77\x8a\x6f\x8a\x6c\x8a\x72\x00\x00\x8a\x6b\x00\x00\x8a\x6d\x8a\x76\x8a\x74\x00\x00\x65\xbe\x8a\x7b\x8a\x79\x8a\x70\x8a\x7a\x8a\x71\x00\x00\x8c\x49\x66\x9a\x8c\x50\x00\x00\x00\x00\x8e\xbe\x66\xa1\x8a\x6e\x8c\x47\x66\x9d\x8c\x48\x8c\x4d\x00\x00\x00\x00\x66\x9f\x66\xa0\x8c\x46\x8c\x4f\x8c\x51\x8c\x4a\x8c\x4c\x8c\x4e\x8c\x4b\x8c\x52\x66\x9c\x66\xa2\x66\x9e\x00\x00\x66\x9b\x8d\x9f\x00\x00\x67\x62\x8d\x9d\x00\x00\x00\x00\x8d\xa1\x00\x00\x8d\xa2\x67\x60\x8d\xa3\x8d\xa0\x00\x00\x8d\x9e\x67\x63\x67\x5f\x8d\xa4\x00\x00\x67\x61\x67\x5e\x00\x00\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x67\xab\x8e\xbd\x8e\xbc\x8e\xbf\x8e\xc0\x00\x00\x67\xac\x8f\xa6\x8f\xab", /* 8b80 */ "\x67\xf3\x00\x00\x8f\xa8\x00\x00\x8f\xa7\x8f\xaa\x8f\xa9\x00\x00\x90\x73\x00\x00\x68\x68\x90\x72\x90\x70\x00\x00\x90\x71\x00\x00\x00\x00\x00\x00\x68\x8b\x68\x8a\x90\xd0\x90\xd1\x68\x8c\x00\x00\x91\x5e\x91\x5f\x68\xb3\x00\x00\x68\xb9\x00\x00\x91\x99\x91\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc6\x00\x00\x75\x72\x00\x00\x75\x73\x7c\x7a\x7f\xb9\x82\xcf\x64\xcf\x00\x00\x64\xce\x8a\x7c\x8c\x53\x00\x00\x90\x74\x4f\xc7\x72\x43\x56\x5f\x58\xc6\x7c\x7c\x7c\x7b\x61\xa5\x82\xd0\x61\xa6\x88\x7d\x65\xc1\x00\x00\x00\x00\x00\x00\x68\xc2\x4f\xc8\x6c\xeb\x72\x44\x00\x00\x00\x00\x58\xc7\x00\x00\x75\x74\x75\x75\x00\x00\x78\xcb\x00\x00\x5b\x4f\x5d\x8e\x00\x00\x7c\x7e\x7c\x7d\x7c\x7f\x00\x00\x7f\xba\x7f\xbb\x5f\xaf\x63\x67\x61\xa7\x63\x68\x00\x00\x88\x82\x88\x7e\x88\x81\x88\x7f\x64\xd0\x00\x00\x8a\x7d\x8c\x55\x8c\x54\x6b\x45\x56\x61\x56\x60\x72\x45\x00\x00\x75\x76\x00\x00\x00\x00", /* 8c80 */ "\x78\xcd\x78\xcc\x5b\x50\x00\x00\x7c\x82\x7c\x83\x7c\x81\x00\x00\x00\x00\x5d\x90\x5d\x8f\x00\x00\x5f\xb1\x5f\xb0\x00\x00\x82\xd1\x85\xdd\x85\xdb\x85\xdc\x63\x69\x88\x84\x88\x83\x00\x00\x8a\x81\x8a\x7f\x8a\x7e\x8c\x56\x00\x00\x91\x9a\x4f\xc9\x53\xd6\x00\x00\x53\xd7\x56\x62\x56\x63\x72\x47\x72\x46\x75\x77\x00\x00\x58\xcd\x58\xcb\x58\xc8\x58\xcc\x58\xca\x58\xc9\x00\x00\x00\x00\x5b\x51\x78\xd0\x00\x00\x5d\x95\x5b\x53\x5b\x58\x78\xd2\x5b\x5a\x5b\x59\x5b\x5c\x78\xd1\x78\xce\x5b\x56\x5b\x52\x5b\x54\x78\xcf\x5b\x5b\x5b\x57\x5b\x55\x5d\x97\x5d\x96\x5d\x94\x5d\x98\x00\x00\x5d\x92\x5d\x93\x00\x00\x5d\x91\x00\x00\x7c\x84\x00\x00\x00\x00\x7f\xbd\x00\x00\x5f\xb3\x5f\xb4\x5f\xb2\x00\x00\x7f\xbc\x00\x00\x7f\xbe\x00\x00\x82\xd4\x82\xd6\x00\x00\x61\xb0\x82\xd7\x61\xa9\x82\xd3\x61\xa8\x61\xb2\x61\xae\x61\xaf\x61\xab\x82\xd2\x61\xaa\x82\xd8\x82\xd5\x00\x00\x61\xb1\x00\x00\x61\xac\x61\xad\x85\xdf\x00\x00\x85\xe1\x85\xe0\x00\x00\x85\xe2\x63\x6a\x85\xde\x00\x00\x00\x00\x64\xd4\x88\x85\x64\xd1\x64\xd5\x64\xd3\x64\xd2\x8a\x82\x00\x00", /* 8d00 */ "\x8a\x85\x00\x00\x8a\x84\x00\x00\x8a\x83\x65\xc2\x8c\x57\x8c\x58\x66\xa3\x8c\x59\x66\xa4\x00\x00\x00\x00\x67\x65\x00\x00\x67\x64\x8e\xc1\x00\x00\x00\x00\x67\xad\x8e\xc2\x8f\xac\x67\xf4\x67\xf5\x00\x00\x90\x75\x00\x00\x68\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x00\x00\x58\xcf\x58\xce\x7c\x85\x7c\x86\x00\x00\x5f\xb5\x85\xe3\x61\xb3\x85\xe4\x88\x86\x4f\xcb\x00\x00\x6f\x74\x53\xd9\x53\xd8\x00\x00\x72\x48\x56\x64\x72\x49\x75\x7a\x00\x00\x75\x79\x00\x00\x75\x78\x00\x00\x00\x00", /* 8d80 */ "\x78\xd4\x5b\x5f\x00\x00\x00\x00\x78\xd3\x5b\x5e\x00\x00\x00\x00\x00\x00\x78\xd5\x5b\x5d\x00\x00\x7c\x88\x7c\x8b\x7c\x89\x7c\x8a\x7c\x8e\x7c\x87\x7c\x8f\x7c\x8c\x7c\x8d\x5f\xb7\x7f\xbf\x00\x00\x00\x00\x5f\xb6\x00\x00\x82\xdc\x82\xda\x00\x00\x00\x00\x61\xb4\x82\xd9\x82\xdb\x00\x00\x61\xb5\x00\x00\x85\xe5\x00\x00\x85\xe6\x64\xd6\x00\x00\x8c\x5b\x8c\x5d\x8c\x5a\x8c\x5c\x8d\xa5\x8e\xc3\x00\x00\x00\x00\x91\x81\x4f\xcc\x53\xda\x72\x4a\x72\x4c\x72\x4b\x00\x00\x75\x7d\x58\xd1\x00\x00\x75\x7b\x00\x00\x58\xd0\x75\x7e\x00\x00\x75\x7f\x75\x7c\x00\x00\x00\x00\x78\xe1\x5b\x67\x78\xd9\x78\xdf\x00\x00\x00\x00\x5b\x62\x5b\x65\x78\xd8\x5b\x60\x78\xdc\x7c\x95\x5b\x64\x00\x00\x78\xd7\x00\x00\x78\xdd\x78\xda\x78\xe0\x78\xd6\x78\xde\x5b\x63\x5b\x66\x78\xdb\x5b\x61\x00\x00\x5d\x9a\x7c\x91\x5d\x99\x7c\x98\x7c\x97\x5d\xa0\x00\x00\x5d\xa1\x7c\x99\x5d\x9b\x7c\x96\x5d\x9f\x7c\x9b\x7c\x92\x00\x00\x7c\x94\x5d\x9c\x7c\x90\x7c\x93\x7c\x9a\x5d\x9d\x7c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9e\x00\x00\x5f\xb8\x7f\xc4\x7f\xca\x7f\xc2", /* 8e00 */ "\x7f\xcb\x00\x00\x7f\xc1\x7f\xc6\x7f\xcc\x7f\xc9\x7f\xc8\x7f\xc7\x00\x00\x7f\xc0\x7f\xc5\x00\x00\x00\x00\x7f\xc3\x00\x00\x61\xba\x61\xb7\x82\xe5\x82\xea\x82\xec\x82\xe9\x82\xe2\x82\xe4\x82\xee\x82\xeb\x82\xe6\x82\xef\x82\xe3\x82\xed\x61\xb8\x61\xbe\x61\xbc\x82\xdd\x61\xbd\x61\xb9\x82\xde\x82\xe0\x82\xdf\x82\xe7\x82\xe8\x00\x00\x61\xbb\x00\x00\x61\xb6\x00\x00\x00\x00\x82\xe1\x00\x00\x85\xf0\x63\x6c\x00\x00\x85\xe7\x63\x6d\x63\x70\x85\xec\x00\x00\x85\xe9\x63\x6f\x00\x00\x00\x00\x85\xed\x85\xee\x85\xe8\x85\xf1\x85\xea\x85\xef\x63\x6e\x00\x00\x63\x6b\x85\xeb\x00\x00\x88\x8c\x64\xd9\x64\xd7\x64\xda\x64\xd8\x88\x8b\x88\x88\x88\x87\x00\x00\x88\x8a\x00\x00\x00\x00\x88\x89\x8a\x93\x65\xc8\x8a\x8a\x8a\x89\x00\x00\x65\xc3\x8a\x8f\x8a\x8e\x8a\x86\x8a\x91\x8a\x8b\x65\xc7\x8a\x88\x8a\x90\x8a\x87\x65\xc4\x65\xc6\x8a\x8c\x65\xc5\x8a\x8d\x00\x00\x8a\x92\x8c\x61\x00\x00\x66\xa9\x8c\x5e\x00\x00\x8c\x62\x00\x00\x00\x00\x66\xa6\x8c\x60\x66\xab\x00\x00\x66\xa8\x00\x00\x8c\x5f\x00\x00\x66\xaa\x8c\x63\x66\xa5\x00\x00\x00\x00\x00\x00", /* 8e80 */ "\x00\x00\x67\x67\x67\x69\x00\x00\x8d\xa8\x67\x68\x8d\xa6\x66\xa7\x8d\xa7\x67\x66\x67\xae\x67\xb0\x8e\xc5\x67\xaf\x8e\xc4\x00\x00\x8f\xb1\x67\xf6\x8f\xb0\x67\xf7\x8f\xae\x8f\xad\x8f\xb2\x8f\xb3\x90\x76\x00\x00\x8f\xaf\x00\x00\x00\x00\x90\xd5\x90\xd2\x90\xd3\x90\xd4\x68\xa8\x00\x00\x91\x62\x91\x61\x91\x60\x91\x82\x00\x00\x91\xae\x91\x9b\x68\xba\x4f\xcd\x56\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xbf\x00\x00\x00\x00\x85\xf2\x00\x00\x00\x00\x65\xc9\x00\x00\x8c\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x9c\x4f\xce\x51\xd0\x53\xdc\x53\xdb\x00\x00\x56\x68\x00\x00\x72\x4d\x56\x66\x72\x4e\x56\x67\x00\x00\x00\x00\x75\x85\x75\x81\x00\x00\x00\x00\x58\xd2\x75\x84\x75\x83\x75\x82\x58\xd3\x75\x86\x75\x87\x00\x00\x00\x00\x00\x00\x78\xe8\x78\xe6\x78\xea\x78\xeb\x78\xf1\x00\x00\x78\xed\x78\xef\x00\x00\x78\xe7\x78\xe2\x00\x00\x78\xee\x00\x00\x00\x00\x78\xf0\x78\xe9\x78\xec\x78\xe3\x5b\x69\x78\xe5\x78\xe4\x5b\x68\x5b\x6a\x00\x00\x5d\xa5\x7c\x9e", /* 8f00 */ "\x7c\xa0\x7c\x9f\x7c\xa4\x5d\xa3\x00\x00\x7c\xa1\x7c\x9d\x7c\xa2\x7c\xa3\x5d\xa4\x5d\xa6\x7c\xa5\x00\x00\x7f\xd0\x7f\xcf\x00\x00\x7f\xcd\x7f\xce\x5f\xba\x5f\xbc\x5f\xb9\x5f\xbb\x82\xf6\x82\xf7\x82\xf2\x00\x00\x82\xf3\x61\xc1\x61\xc6\x61\xc0\x61\xc7\x61\xc2\x82\xf4\x00\x00\x00\x00\x82\xf5\x82\xf1\x61\xc8\x61\xc4\x00\x00\x00\x00\x61\xc3\x61\xc5\x00\x00\x82\xf0\x00\x00\x85\xf4\x63\x72\x00\x00\x00\x00\x85\xf6\x63\x74\x85\xf9\x85\xf5\x85\xf3\x85\xf8\x63\x73\x85\xf7\x00\x00\x63\x71\x00\x00\x00\x00\x64\xdc\x64\xdf\x88\x8e\x00\x00\x64\xdd\x88\x8d\x64\xdb\x64\xde\x8a\x94\x8a\x95\x8a\x96\x65\xca\x00\x00\x8a\x97\x00\x00\x65\xcb\x66\xad\x8c\x67\x8c\x68\x8c\x66\x8c\x65\x8c\x69\x66\xac\x8d\xac\x8d\xaa\x8d\xab\x8d\xad\x8d\xa9\x8d\xae\x8e\xc7\x00\x00\x8e\xc8\x8e\xc6\x67\xb1\x8f\xb4\x67\xf8\x8f\xb5\x90\x78\x90\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcf\x5b\x6b\x00\x00\x00\x00\x5d\xa7\x00\x00\x00\x00\x00\x00\x5f\xbd\x00\x00\x00\x00\x63\x76\x00\x00\x63\x75\x00\x00\x00\x00\x00\x00\x00\x00\x66\xae\x67\x49\x67\xb2\x4f\xd0\x56\x69\x5d\xa8\x00\x00\x8c\x6a\x48\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x47\x00\x00\x00\x00\x4f\xd1\x00\x00\x4f\xd4\x4f\xd3\x4f\xd2\x00\x00\x00\x00\x6b\x46\x00\x00\x6c\xed\x00\x00\x6c\xef\x51\xd1\x00\x00\x00\x00\x51\xd3\x6c\xec\x6c\xee\x51\xd2\x6c\xf1\x6c\xf0\x6c\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x78\x6f\x76\x53\xdf\x6f\x75\x53\xe4\x53\xe1\x53\xde\x00\x00\x53\xe5\x00\x00\x53\xe0\x53\xe3\x00\x00\x53\xe2\x6f\x77\x00\x00\x53\xdd\x00\x00\x00\x00\x00\x00\x56\x6f\x72\x50\x72\x56\x56\x6c\x56\x73\x00\x00\x56\x6e\x72\x53\x72\x55\x56\x71\x72\x4f\x72\x52", /* 9000 */ "\x56\x6d\x56\x6a\x72\x51\x56\x70\x72\x54\x56\x72\x56\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x75\x89\x75\x8c\x58\xd5\x00\x00\x58\xdf\x58\xdb\x75\x8a\x00\x00\x00\x00\x58\xe3\x58\xdc\x58\xe1\x58\xd7\x00\x00\x58\xd4\x58\xd6\x58\xe2\x75\x8b\x58\xda\x58\xdd\x58\xd9\x58\xde\x75\x8d\x58\xe0\x58\xd8\x75\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xf2\x5b\x6c\x78\xf4\x00\x00\x5b\x6e\x5b\x70\x00\x00\x78\xf3\x5b\x6d\x5b\x71\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x5d\xae\x7c\xaa\x5d\xb6\x7c\xa7\x00\x00\x5d\xb7\x5d\xac\x00\x00\x7c\xa8\x00\x00\x00\x00\x5d\xb1\x00\x00\x7c\xa9\x5d\xaa\x5d\xa9\x00\x00\x5d\xb4\x5d\xb3\x5d\xb2\x5d\xb0\x5d\xb5\x7c\xa6\x5d\xab\x5d\xad\x5d\xaf\x00\x00\x00\x00\x5f\xbf\x5f\xc2\x00\x00\x5f\xc6\x5f\xc0\x5f\xc5\x5f\xc3\x00\x00\x5f\xbe\x00\x00\x5f\xc4\x5f\xc1\x00\x00\x00\x00\x00\x00\x82\xfb\x61\xcb\x61\xc9\x00\x00\x82\xfc\x00\x00\x61\xcc\x61\xca\x82\xfa\x82\xf9\x00\x00\x63\x7a\x82\xf8\x63\x78\x63\x77\x85\xfa\x61\xcd\x63\x79\x85\xfb\x63\x7c\x85\xfc\x63\x7b\x64\xe1\x88\x90\x64\xe0", /* 9080 */ "\x64\xe5\x64\xe3\x64\xe4\x65\xcd\x64\xe2\x88\x8f\x85\xfd\x65\xcc\x65\xce\x00\x00\x66\xaf\x66\xb0\x00\x00\x8d\xaf\x00\x00\x68\x6a\x68\x69\x4f\xd6\x00\x00\x00\x00\x69\xf4\x56\x74\x00\x00\x69\xf1\x69\xf2\x69\xf0\x00\x00\x69\xf3\x00\x00\x00\x00\x6b\x4b\x6b\x48\x6b\x4d\x6b\x49\x4f\xd7\x4f\xda\x00\x00\x6b\x4a\x4f\xd9\x6b\x4c\x00\x00\x00\x00\x4f\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xf5\x6c\xf7\x51\xd6\x6c\xf3\x6c\xf6\x6c\xf4\x51\xd4\x51\xd7\x00\x00\x51\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x7a\x6f\x7e\x6f\x7b\x00\x00\x53\xe8\x00\x00\x53\xe9\x00\x00\x6f\x7d\x00\x00\x6f\x7f\x6f\x82\x00\x00\x53\xe6\x6f\x81\x00\x00\x00\x00\x53\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x94\x6f\x7c\x72\x57\x72\x60\x72\x5e\x72\x59\x72\x5a\x72\x5f\x72\x61\x56\x76\x00\x00\x72\x5c\x72\x58\x56\x75\x56\x77\x72\x5b\x72\x62\x72\x5d\x00\x00\x00\x00\x58\xe4\x75\x97\x75\x8f\x75\x95\x75\x96\x58\xe5\x00\x00\x75\x8e\x75\x90\x6f\x79\x75\x92\x75\x93\x75\x91\x5b\x73\x00\x00\x00\x00\x00\x00\x78\xfb\x86\x41\x78\xfc\x78\xf9\x58\xe6\x5b\x75\x78\xf8", /* 9100 */ "\x79\x41\x78\xfd\x5b\x72\x79\x44\x78\xf7\x79\x43\x78\xf5\x79\x42\x78\xfa\x5b\x74\x00\x00\x7c\xb1\x00\x00\x7c\xac\x7c\xb2\x7c\xad\x7c\xab\x7c\xae\x5d\xb8\x00\x00\x7c\xb0\x00\x00\x7c\xaf\x5d\xb9\x5f\xc8\x5f\xc7\x7f\xd7\x7f\xda\x7f\xd2\x7f\xd6\x5f\xc9\x7f\xd5\x7f\xd3\x7f\xd9\x7f\xd4\x7f\xd1\x7f\xd8\x00\x00\x83\x45\x61\xd0\x8a\x98\x83\x42\x83\x43\x83\x41\x78\xf6\x61\xcf\x83\x46\x82\xfd\x61\xce\x61\xd1\x83\x44\x86\x42\x63\x7d\x86\x43\x86\x44\x00\x00\x88\x91\x64\xe6\x8a\x99\x8a\x9a\x00\x00\x00\x00\x8a\x9b\x8c\x6c\x8c\x6b\x8d\xb1\x00\x00\x8d\xb0\x8e\xca\x8e\xcb\x8e\xc9\x8f\xb6\x67\xf9\x4f\xdb\x53\xeb\x53\xea\x56\x7a\x56\x79\x72\x64\x72\x65\x72\x63\x00\x00\x56\x78\x75\x9b\x00\x00\x75\x9c\x75\x98\x58\xe7\x75\x99\x00\x00\x75\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x79\x47\x79\x49\x79\x45\x79\x48\x5b\x76\x79\x46\x5b\x77\x00\x00\x00\x00\x79\xf9\x5d\xbc\x5d\xbb\x00\x00\x5d\xba\x00\x00\x7c\xb3\x7c\xb4\x00\x00\x00\x00\x7f\xdc\x7f\xde\x5f\xcd\x5f\xca\x00\x00\x5f\xcc\x5f\xcb\x7f\xdd\x7f\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9180 */ "\x83\x4d\x83\x4a\x83\x4b\x61\xd5\x83\x4c\x83\x47\x83\x48\x61\xd2\x00\x00\x61\xd3\x83\x49\x61\xd4\x00\x00\x86\x48\x00\x00\x86\x49\x86\x46\x86\x47\x63\x7e\x86\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x95\x88\x92\x88\x94\x64\xe9\x88\x98\x64\xe8\x88\x96\x88\x99\x88\x97\x88\x93\x64\xe7\x00\x00\x8a\x9d\x00\x00\x8a\x9e\x8a\x9c\x00\x00\x8a\xa0\x65\xcf\x65\xd0\x8c\x6e\x66\xb2\x8a\x9f\x8c\x6d\x66\xb1\x8d\xb4\x8d\xb5\x67\x6a\x8d\xb3\x00\x00\x8d\xb2\x00\x00\x8e\xcc\x67\xb3\x00\x00\x90\x79\x90\xd7\x90\xd6\x00\x00\x68\x8f\x68\xa9\x90\xd8\x91\x83\x00\x00\x68\xbb\x4f\xdc\x51\xd8\x00\x00\x5d\xbd\x00\x00\x67\x6b\x4f\xdd\x53\xec\x58\xe8\x5b\x78\x65\xd1\x51\xd9\x00\x00\x6f\x84\x6f\x83\x72\x66\x00\x00\x56\x7d\x56\x7b\x56\x7f\x72\x68\x00\x00\x56\x7e\x56\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x72\x67\x58\xeb\x75\xa2\x00\x00\x58\xea\x58\xec\x75\xa7\x58\xee\x75\xa4\x75\xa5\x75\x9d\x58\xed\x75\xa8\x00\x00\x00\x00\x75\x9f\x00\x00\x75\xa0\x75\x9e\x58\xe9\x00\x00\x75\xa6\x75\xa1\x75\xa3\x00\x00\x00\x00\x00\x00\x79\x55\x00\x00\x79\x54", /* 9200 */ "\x79\x52\x79\x4a\x79\x59\x79\x4d\x79\x57\x79\x5e\x79\x56\x5b\x81\x00\x00\x5b\x7c\x79\x4b\x00\x00\x79\x51\x5b\x7e\x00\x00\x79\x50\x5b\x7f\x5b\x82\x79\x53\x00\x00\x5b\x79\x5b\x7a\x79\x5f\x79\x5d\x00\x00\x79\x5c\x79\x4e\x00\x00\x79\x5a\x00\x00\x5b\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x7b\x79\x5b\x79\x4c\x79\x4f\x79\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x44\x7c\xbe\x00\x00\x7c\xb7\x7c\xca\x7c\xd3\x7c\xba\x5d\xc8\x00\x00\x7c\xc7\x5d\xbe\x5d\xc0\x5d\xcc\x7c\xb8\x00\x00\x00\x00\x5d\xc1\x5d\xc3\x5d\xcd\x5d\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xcb\x7c\xc0\x00\x00\x7c\xb5\x5d\xc9\x7c\xbf\x5d\xc5\x7c\xd1\x5d\xca\x7c\xcf\x7c\xc3\x7c\xcd\x5d\xc7\x7c\xb6\x7c\xd0\x7c\xcb\x00\x00\x7c\xd2\x5d\xbf\x00\x00\x00\x00\x5d\xce\x5d\xc4\x00\x00\x00\x00\x7c\xbc\x00\x00\x7c\xc4\x7c\xc8\x00\x00\x7c\xcc\x5d\xc6\x7c\xbb\x7c\xb9\x7c\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x7c\xc2\x7c\xc1\x00\x00\x7c\xc6\x7c\xc9\x00\x00\x7c\xce\x00\x00\x00\x00\x00\x00\x7f\xe1\x00\x00\x5f\xce\x7f\xeb\x7f\xe3\x5f\xd3\x5f\xd7\x7f\xf4\x7f\xfc\x7f\xed", /* 9280 */ "\x5f\xcf\x00\x00\x7f\xf1\x7c\xbd\x00\x00\x5f\xd0\x7f\xf8\x7f\xfd\x7f\xf5\x00\x00\x7f\xf7\x80\x43\x7f\xf9\x7f\xe7\x7f\xf0\x00\x00\x00\x00\x5f\xd8\x00\x00\x5f\xd4\x7f\xe5\x7f\xf2\x5f\xd2\x7f\xec\x5f\xd1\x7f\xfa\x7f\xe9\x7f\xe2\x5f\xd5\x80\x42\x00\x00\x00\x00\x7f\xe4\x7f\xf6\x7f\xf3\x7f\xee\x7f\xe0\x7f\xdf\x7f\xe8\x7f\xfb\x5f\xd6\x80\x41\x7f\xe6\x7f\xea\x61\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe2\x61\xdd\x83\x6e\x83\x6b\x83\x53\x61\xd8\x00\x00\x00\x00\x00\x00\x61\xd7\x61\xde\x00\x00\x00\x00\x00\x00\x83\x51\x61\xdc\x83\x5d\x83\x4f\x83\x50\x61\xd6\x83\x6d\x61\xe0\x83\x60\x83\x65\x83\x5f\x86\x5b\x83\x5b\x83\x63\x83\x61\x83\x54\x83\x4e\x83\x69\x61\xdf\x83\x6a\x00\x00\x83\x64\x00\x00\x83\x59\x83\x57\x83\x52\x00\x00\x00\x00\x00\x00\x83\x5a\x83\x67\x83\x56\x83\x66\x83\x6c\x00\x00\x00\x00\x61\xdb\x00\x00\x83\x62\x83\x68\x83\x5e\x83\x58\x61\xd9\x00\x00\x00\x00\x00\x00\x7f\xef\x83\x5c\x61\xe1\x83\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x61\x63\x82\x86\x60\x86\x5d\x86\x70\x63\x86\x00\x00\x86\x6d\x86\x65", /* 9300 */ "\x86\x6f\x86\x56\x86\x63\x00\x00\x63\x88\x00\x00\x86\x4e\x00\x00\x86\x4c\x86\x6e\x00\x00\x86\x6c\x86\x6b\x86\x5a\x86\x59\x86\x4f\x63\x8a\x00\x00\x86\x55\x86\x5f\x86\x6a\x63\x8d\x86\x71\x00\x00\x64\xf1\x63\x8f\x63\x89\x86\x53\x00\x00\x86\x5c\x86\x4b\x86\x4d\x63\x7f\x63\x8c\x63\x85\x86\x54\x86\x64\x86\x5e\x63\x8b\x86\x4a\x64\xec\x86\x66\x86\x69\x63\x87\x00\x00\x86\x58\x63\x8e\x63\x84\x00\x00\x00\x00\x00\x00\x63\x83\x86\x62\x86\x68\x63\x81\x00\x00\x86\x51\x86\x67\x00\x00\x00\x00\x86\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x57\x88\x9f\x00\x00\x88\xa4\x64\xee\x64\xf0\x88\xaa\x64\xea\x88\xb9\x88\xb0\x88\xa5\x88\xa6\x88\xaf\x00\x00\x64\xf7\x88\xae\x88\x9e\x88\xad\x88\xa1\x88\xba\x64\xf6\x64\xf4\x88\xa2\x00\x00\x88\xb5\x00\x00\x88\xa7\x88\xb4\x00\x00\x88\xb6\x88\x9d\x64\xef\x00\x00\x88\xb7\x00\x00\x00\x00\x88\xab\x00\x00\x64\xf3\x88\xa8\x00\x00\x00\x00\x64\xf5\x88\xb1\x00\x00\x00\x00\x00\x00\x64\xed\x88\xa3\x88\xb2\x00\x00\x88\xac\x86\x50\x88\xb3\x88\xa0\x00\x00\x64\xf2\x00\x00", /* 9380 */ "\x88\xb8\x00\x00\x64\xeb\x88\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xae\x8a\xa7\x65\xd3\x00\x00\x8a\xa2\x8a\xb1\x8a\xa9\x88\xa9\x00\x00\x8a\xb3\x8a\xa3\x00\x00\x65\xd2\x8a\xad\x65\xd4\x65\xdc\x65\xda\x8a\xaf\x65\xdb\x8a\xa5\x00\x00\x8a\xa6\x8a\xab\x8a\xb0\x00\x00\x88\x9a\x65\xd5\x8a\xb8\x8a\xb5\x8a\xb9\x8a\xac\x8a\xa8\x8a\xb6\x8c\x79\x8a\xaa\x00\x00\x65\xd8\x00\x00\x65\xd7\x88\x9c\x65\xd9\x8a\xb2\x8a\xb4\x65\xd6\x8a\xb7\x8a\xa1\x00\x00\x8a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x83\x00\x00\x8c\x72\x66\xb6\x8c\x81\x00\x00\x00\x00\x8c\x70\x66\xb7\x00\x00\x8c\x7b\x00\x00\x8c\x77\x66\xbc\x8c\x82\x8c\x71\x8c\x74\x66\xb4\x8c\x84\x00\x00\x8c\x7c\x8c\x7f\x66\xba\x66\xbf\x66\xbd\x8c\x78\x8c\x73\x00\x00\x66\xb8\x66\xb9\x8c\x6f\x66\xb5\x00\x00\x66\xb3\x66\xbb\x8c\x7e\x66\xbe\x00\x00\x8c\x7a\x8c\x85\x66\xc0\x00\x00\x00\x00\x00\x00\x8c\x76\x00\x00\x8c\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xc2\x8d\xd0\x8d\xc4\x8d\xcb\x8c\x75\x8d\xc9\x8d\xb8\x8d\xce\x67\x6e\x8d\xbc\x8d\xcd", /* 9400 */ "\x8d\xc3\x00\x00\x00\x00\x67\x6d\x00\x00\x00\x00\x8d\xd2\x8d\xc5\x00\x00\x8d\xca\x8d\xcc\x8d\xb6\x8d\xcf\x8d\xc1\x8d\xc6\x8d\xba\x8d\xbe\x8d\xd1\x8d\xc8\x8d\xb7\x8d\xbb\x8d\xbd\x8d\xc7\x00\x00\x67\x6c\x8d\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbf\x8e\xd0\x8e\xd5\x67\xba\x8e\xd7\x00\x00\x67\xb4\x00\x00\x8e\xd3\x8e\xd9\x67\xb9\x67\xb5\x00\x00\x67\xb6\x8e\xcf\x8e\xd6\x67\xb8\x8e\xd4\x67\xb7\x8e\xce\x8e\xd2\x8e\xd1\x00\x00\x8e\xcd\x8e\xd8\x00\x00\x00\x00\x00\x00\x67\xfa\x8f\xbd\x8f\xc0\x8f\xbc\x8f\xbe\x8f\xbf\x8f\xb9\x8f\xba\x8f\xb7\x00\x00\x00\x00\x8f\xbb\x8f\xb8\x67\xfb\x67\xfc\x00\x00\x00\x00\x90\x7b\x00\x00\x90\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x7c\x90\x7e\x00\x00\x68\x6c\x00\x00\x90\x7a\x68\x6b\x68\x6d\x00\x00\x00\x00\x00\x00\x90\xda\x90\xdb\x68\x90\x90\xd9\x00\x00\x91\x64\x91\x63\x91\x65\x68\xab\x91\x66\x68\xaa\x91\x67\x91\x84\x91\x87\x91\x86\x68\xb4\x91\x85\x00\x00\x00\x00\x00\x00\x68\xbe\x68\xbc\x68\xbd\x68\xc3", /* 9480 */ "\x91\xb0\x91\xb1\x91\xaf\x91\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xda\x00\x00\x00\x00\x75\xa9\x79\x60\x83\x6f\x8c\x86\x00\x00\x00\x00", /* 9580 */ "\x51\xdb\x00\x00\x53\xed\x56\x81\x00\x00\x00\x00\x75\xaa\x00\x00\x75\xab\x58\xef\x00\x00\x5b\x85\x79\x62\x79\x61\x5b\x89\x5b\x84\x79\x63\x5b\x86\x5b\x88\x5b\x87\x5b\x83\x00\x00\x00\x00\x00\x00\x5d\xcf\x00\x00\x00\x00\x7c\xd7\x7c\xd5\x00\x00\x7c\xd6\x7c\xd4\x00\x00\x5f\xd9\x00\x00\x5f\xdc\x5f\xde\x5f\xdd\x00\x00\x00\x00\x5f\xda\x5f\xdb\x00\x00\x83\x71\x83\x70\x61\xe3\x83\x72\x00\x00\x83\x73\x61\xe4\x00\x00\x00\x00\x00\x00\x86\x79\x86\x77\x88\xc0\x00\x00\x86\x75\x86\x76\x63\x90\x86\x72\x86\x7a\x86\x74\x86\x78\x88\xbc\x00\x00\x00\x00\x88\xbe\x00\x00\x88\xbf\x64\xfc\x88\xbb\x64\xfb\x88\xbd\x64\xf8\x64\xf9\x64\xfa\x86\x73\x00\x00\x00\x00\x65\xdf\x8a\xbc\x8a\xba\x8a\xbb\x65\xdd\x65\xe0\x65\xde\x00\x00\x00\x00\x00\x00\x8c\x87\x8c\x88\x66\xc1\x00\x00\x8d\xd3\x8d\xd5\x8d\xd4\x67\x6f\x67\xbb\x8e\xdc\x8e\xdb\x8e\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x69\x8a\x00\x00\x69\xf7\x4e\x8b\x69\xf5\x69\xf8\x69\xf6\x00\x00\x00\x00\x00\x00\x6b\x4f\x00\x00\x4f\xe1\x00\x00\x4f\xe2\x6b\x51\x4f\xdf\x6b\x50\x6b\x4e\x4f\xe0\x4f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xf8\x6c\xfb\x51\xdf\x6c\xfa\x6c\xf9\x00\x00\x51\xde\x51\xdd\x00\x00\x51\xe1\x6c\xfc\x51\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x89\x53\xef\x53\xf0\x53\xf1\x6f\x8a\x6f\x86\x53\xee\x6f\x87\x00\x00\x6f\x88\x6f\x85\x00\x00\x00\x00\x00\x00\x56\x88\x00\x00\x00\x00\x56\x85\x72\x69\x56\x86\x56\x89\x72\x6a\x00\x00\x56\x84\x56\x82\x56\x83\x56\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf0\x75\xae\x58\xf8\x75\xad\x00\x00\x75\xb0\x58\xf4\x75\xaf\x5b\x91\x58\xf2\x58\xf5\x58\xf1\x58\xf6\x58\xf7\x58\xf3\x00\x00\x00\x00\x00\x00\x75\xac\x5b\x8d\x79\x65\x00\x00", /* 9680 */ "\x79\x69\x00\x00\x00\x00\x79\x68\x5b\x92\x5b\x8e\x5b\x8f\x79\x64\x79\x66\x79\x67\x5b\x8a\x5b\x8c\x00\x00\x5b\x90\x5b\x8b\x00\x00\x00\x00\x7c\xda\x7c\xd8\x7c\xd9\x5d\xd1\x5d\xd2\x00\x00\x7c\xdb\x5d\xd0\x5f\xdf\x00\x00\x5f\xe1\x5f\xe0\x00\x00\x80\x45\x00\x00\x00\x00\x80\x46\x83\x75\x00\x00\x83\x74\x00\x00\x00\x00\x63\x91\x63\x92\x86\x7b\x63\x93\x00\x00\x88\xc3\x00\x00\x88\xc1\x00\x00\x88\xc2\x64\xfd\x00\x00\x8a\xbd\x66\xc2\x00\x00\x48\xeb\x00\x00\x65\x41\x51\xe2\x00\x00\x56\x8a\x72\x6b\x00\x00\x00\x00\x75\xb1\x58\xf9\x5b\x93\x79\x6a\x79\x6c\x5b\x95\x5b\x94\x5b\x96\x5b\x97\x79\x6b\x5d\xd5\x5d\xd6\x5d\xd4\x5f\xe2\x5d\xd3\x7c\xdc\x00\x00\x00\x00\x00\x00\x5f\xe3\x83\x76\x86\x7c\x63\x94\x65\x42\x8a\xbe\x8a\xc2\x65\xe3\x8a\xbf\x65\xe4\x65\xe2\x8a\xc3\x65\xe5\x8a\xc1\x00\x00\x8c\x89\x65\xe1\x66\xc3\x00\x00\x90\xdc\x00\x00\x00\x00\x51\xe3\x58\xfb\x58\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x98\x79\x6e\x79\x6d\x5b\x99\x00\x00\x00\x00\x7c\xe0\x5d\xda\x5d\xd7\x7c\xdf\x5d\xd9\x7c\xdd\x5d\xd8\x00\x00\x7c\xde\x00\x00\x80\x47", /* 9700 */ "\x5f\xe4\x00\x00\x83\x79\x00\x00\x61\xe5\x83\x77\x61\xe6\x61\xe7\x83\x78\x61\xe8\x00\x00\x86\x7d\x00\x00\x63\x98\x63\x95\x63\x9a\x86\x7f\x63\x96\x86\x7e\x63\x99\x00\x00\x00\x00\x63\x97\x00\x00\x88\xc6\x88\xc8\x00\x00\x00\x00\x65\x43\x88\xc7\x65\x44\x88\xc5\x88\xc4\x00\x00\x8a\xc5\x8a\xc4\x65\xe6\x8a\xc6\x8c\x8e\x66\xc5\x8c\x8d\x8c\x8a\x66\xc4\x8c\x8b\x8c\x8c\x00\x00\x8d\xd6\x8d\xd7\x67\x70\x00\x00\x67\xbe\x00\x00\x00\x00\x8e\xdd\x00\x00\x00\x00\x67\xbc\x67\xbd\x8e\xde\x00\x00\x00\x00\x67\xfd\x68\x41\x8f\xc1\x00\x00\x00\x00\x68\x91\x90\xde\x68\x93\x00\x00\x90\xdd\x90\xdf\x68\x92\x91\x68\x00\x00\x91\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe4\x00\x00\x00\x00\x00\x00\x5d\xdb\x00\x00\x80\x48\x00\x00\x83\x7a\x63\x9b\x63\x9c\x00\x00\x51\xe5\x00\x00\x61\xe9\x66\xc6\x53\xf2\x00\x00\x00\x00\x00\x00\x63\x9d\x00\x00\x68\x6e\x53\xf3\x75\xb2\x00\x00\x79\x6f\x00\x00\x79\x71\x00\x00\x79\x70\x00\x00\x7c\xe4\x7c\xe1\x5d\xdc\x00\x00\x5d\xdd\x7c\xe2\x7c\xe3\x00\x00\x80\x4a\x80\x4f\x5f\xe5\x80\x49\x80\x4b\x80\x52", /* 9780 */ "\x80\x4d\x80\x51\x80\x4e\x80\x4c\x80\x50\x5f\xe6\x00\x00\x00\x00\x83\x7d\x00\x00\x83\x7b\x61\xeb\x00\x00\x61\xea\x83\x7c\x61\xec\x00\x00\x00\x00\x00\x00\x00\x00\x86\x83\x00\x00\x00\x00\x86\x82\x63\x9e\x86\x81\x88\xc9\x00\x00\x88\xcb\x88\xcd\x88\xcc\x00\x00\x65\x45\x88\xca\x8a\xcd\x65\xe7\x8a\xcb\x8a\xce\x65\xe8\x00\x00\x8a\xc9\x00\x00\x8a\xcc\x8a\xca\x8a\xc7\x65\xe9\x8a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x8f\x00\x00\x00\x00\x8c\x91\x8c\x90\x00\x00\x8d\xd8\x00\x00\x8d\xd9\x00\x00\x00\x00\x00\x00\x8e\xdf\x00\x00\x68\x43\x00\x00\x68\x42\x90\x7f\x90\x81\x68\x94\x90\xe0\x00\x00\x68\xb5\x00\x00\x53\xf4\x5b\x9a\x80\x54\x80\x53\x83\x7f\x83\x7e\x00\x00\x00\x00\x65\x46\x88\xcf\x88\xce\x8a\xd1\x8a\xcf\x8a\xd2\x8a\xd0\x00\x00\x00\x00\x66\xc7\x8c\x92\x8c\x93\x8c\x94\x00\x00\x8e\xe0\x00\x00\x8f\xc2\x00\x00\x90\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf5\x00\x00\x00\x00\x86\x84\x88\xd0\x00\x00\x53\xf6\x00\x00\x00\x00\x5f\xe7\x00\x00\x86\x85\x65\xea\x8a\xd3\x66\xc8\x00\x00\x8d\xda\x8d\xdb\x67\xbf", /* 9800 */ "\x90\x82\x53\xf7\x59\x41\x59\x42\x75\xb3\x5b\x9b\x5b\x9c\x79\x72\x5b\x9d\x00\x00\x5d\xe1\x00\x00\x5d\xe3\x7c\xe6\x7c\xe7\x7c\xe5\x5d\xde\x5d\xdf\x5d\xe2\x5d\xe0\x00\x00\x00\x00\x80\x55\x5f\xe8\x5f\xe9\x00\x00\x00\x00\x83\x87\x61\xef\x83\x82\x83\x81\x00\x00\x83\x86\x61\xed\x00\x00\x00\x00\x63\xa5\x00\x00\x83\x83\x83\x88\x83\x85\x83\x84\x00\x00\x61\xee\x00\x00\x63\xa3\x00\x00\x86\x87\x63\x9f\x00\x00\x86\x88\x00\x00\x00\x00\x86\x86\x00\x00\x63\xa2\x63\xa0\x63\xa4\x00\x00\x63\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\xd1\x00\x00\x88\xd6\x88\xd2\x88\xd5\x65\x47\x00\x00\x87\xc0\x88\xd4\x88\xd3\x00\x00\x65\xed\x65\xeb\x65\xee\x65\xec\x8a\xd4\x8a\xd5\x8a\xd6\x65\xef\x00\x00\x00\x00\x00\x00\x8c\x98\x66\xca\x8c\x96\x00\x00\x66\xcb\x8c\x95\x8c\x97\x66\xc9\x8d\xdf\x8d\xdc\x00\x00\x8d\xdd\x8d\xde\x8e\xe1\x67\xc1\x00\x00\x67\xc0\x00\x00\x8f\xc4\x8f\xc3\x68\x44\x00\x00\x00\x00\x00\x00\x68\x6f\x68\x95\x68\xac\x91\x69\x91\x9e\x91\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf8\x79\x73\x00\x00\x00\x00\x7c\xe8\x80\x56\x80\x57\x5f\xea\x00\x00\x5f\xeb\x83\x89\x61\xf0\x00\x00\x00\x00\x65\x48\x00\x00\x8a\xd7\x00\x00\x65\xf0\x8c\x9b\x66\xcc\x8c\x9a\x8c\x9c\x8c\x99\x8e\xe4\x8d\xe0\x8d\xe1\x00\x00\x67\x71\x00\x00\x8e\xe3\x00\x00\x00\x00\x8e\xe2\x00\x00\x8f\xc5\x91\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf9\x00\x00\x00\x00\x00\x00\x53\xfa\x00\x00\x00\x00\x56\x8b\x72\x6c\x00\x00\x75\xb4\x00\x00\x5b\x9e\x00\x00\x5b\xa1\x5b\x9f\x79\x74\x00\x00\x5b\xa3\x00\x00\x5b\xa0\x00\x00\x00\x00\x5b\xa2\x00\x00\x5d\xe5\x00\x00\x7c\xe9\x00\x00\x00\x00\x7c\xea\x83\x8b\x00\x00\x5d\xe4\x5d\xe6\x5d\xe7\x00\x00", /* 9900 */ "\x80\x59\x00\x00\x80\x58\x5f\xec\x00\x00\x5f\xed\x00\x00\x80\x5a\x83\x8a\x5f\xef\x61\xf1\x00\x00\x5f\xee\x00\x00\x00\x00\x00\x00\x63\xa6\x83\x8c\x61\xf3\x61\xf2\x83\x8d\x83\x90\x83\x8e\x83\x8f\x61\xf4\x00\x00\x63\xab\x63\xa9\x00\x00\x00\x00\x63\xa8\x86\x8a\x00\x00\x63\xaa\x00\x00\x00\x00\x86\x89\x88\xd7\x00\x00\x86\x8b\x63\xa7\x86\x8c\x88\xda\x88\xd8\x88\xd9\x88\xde\x65\xf4\x88\xdd\x88\xe0\x88\xdf\x88\xdc\x88\xdb\x00\x00\x65\x49\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xda\x00\x00\x8a\xd9\x65\xf3\x65\xf1\x65\xf2\x00\x00\x8a\xd8\x00\x00\x8c\x9f\x00\x00\x66\xcd\x00\x00\x8c\x9e\x8c\x9d\x66\xce\x00\x00\x8d\xe6\x8d\xe5\x00\x00\x8d\xe3\x00\x00\x8d\xe2\x67\x73\x67\x72\x8d\xe7\x8f\xc6\x68\x45\x8e\xe6\x67\xc2\x8e\xe5\x8d\xe4\x00\x00\x8f\xc7\x68\x70\x00\x00\x68\xad\x91\x6a\x00\x00\x91\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xfb\x75\xb5\x88\xe1\x53\xfc\x00\x00\x00\x00\x80\x5c\x80\x5b\x86\x8d\x00\x00\x00\x00\x88\xe3\x00\x00\x88\xe2\x00\x00\x65\xf5\x8c\xa0\x8c\xa1\x67\x74\x00\x00\x00\x00\x91\xa2\x56\x8c\x5b\xa5\x5b\xa4\x7c\xeb\x7c\xed\x5d\xe9\x7c\xec\x5d\xe8\x5d\xea\x7c\xee\x00\x00\x00\x00\x00\x00\x80\x5e\x80\x60\x80\x5f\x00\x00\x80\x62\x00\x00\x00\x00\x00\x00\x5f\xf0\x80\x61\x80\x5d\x00\x00\x00\x00\x00\x00\x80\x63\x00\x00\x83\x97\x00\x00\x83\x9a\x83\x9c\x83\x92\x83\x96\x83\x93\x61\xf6\x61\xf9\x61\xfb\x83\x94\x83\x95\x61\xfa\x83\x98\x83\x9b\x83\x99\x61\xfc\x00\x00\x61\xf8\x83\x91\x61\xf5\x00\x00\x61\xf7\x00\x00\x00\x00\x63\xad\x86\x93\x86\x91\x86\x90\x00\x00\x86\x96\x00\x00\x86\x95\x86\x94\x00\x00\x86\x8f\x63\xac\x86\x8e\x00\x00\x86\x92\x63\xae\x00\x00\x00\x00\x88\xe6\x00\x00\x88\xea\x88\xe7\x88\xe9\x88\xe8\x88\xe5\x88\xeb\x88\xee\x88\xec\x88\xed\x65\x4b", /* 9a00 */ "\x00\x00\x65\x4a\x88\xe4\x88\xef\x8a\xdf\x8a\xe2\x8a\xe4\x8a\xe3\x00\x00\x8a\xdd\x8a\xe1\x8a\xdc\x00\x00\x8a\xde\x65\xf6\x8a\xdb\x00\x00\x8a\xe0\x00\x00\x00\x00\x8c\xae\x8c\xa3\x66\xcf\x00\x00\x00\x00\x66\xd0\x8c\xa2\x8c\xa7\x8c\xad\x8c\xa5\x8c\xac\x00\x00\x8c\xa9\x00\x00\x8c\xa8\x8c\xab\x8c\xa6\x8c\xa4\x00\x00\x8c\xaa\x00\x00\x8d\xee\x8d\xec\x67\x75\x8d\xeb\x8d\xf1\x8d\xef\x00\x00\x67\x76\x8d\xea\x8d\xe8\x00\x00\x8d\xe9\x67\x78\x8d\xed\x67\x77\x8d\xf0\x8e\xe7\x8e\xed\x00\x00\x00\x00\x8e\xe8\x67\xc6\x8e\xee\x67\xc5\x8e\xec\x8e\xeb\x67\xc4\x8e\xea\x67\xc3\x8e\xe9\x00\x00\x8f\xcd\x8f\xcf\x8f\xce\x00\x00\x8f\xcb\x68\x47\x8f\xc8\x8f\xcc\x8f\xd1\x00\x00\x8f\xd0\x8f\xc9\x8f\xca\x68\x46\x90\x83\x68\x73\x00\x00\x90\x84\x68\x71\x68\x72\x00\x00\x00\x00\x90\xe2\x68\x96\x91\x88\x00\x00\x68\xb6\x00\x00\x91\xa3\x68\xb7\x91\xa4\x91\xa5\x91\xb3\x91\xb2\x68\xc6\x91\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8d\x00\x00\x00\x00\x7c\xf0\x00\x00\x7c\xef\x00\x00\x5f\xf1\x5f\xf2\x80\x64\x00\x00\x83\x9d\x86\x99\x00\x00\x00\x00\x61\xfd\x63\xaf\x86\x97\x00\x00\x86\x9a\x63\xb0\x00\x00\x88\xf0\x86\x98\x8a\xe5\x65\xf7\x8c\xaf\x00\x00\x00\x00\x00\x00\x8d\xf4\x8d\xf2\x00\x00\x00\x00\x8d\xf3\x00\x00\x00\x00\x8e\xef\x00\x00\x67\xc7\x8f\xd2\x68\x76\x68\x48\x68\x74\x68\x75\x90\xe3\x68\xae\x00\x00\x56\x8e\x00\x00\x00\x00\x00\x00\x8a\xe6\x00\x00\x00\x00\x72\x6d\x00\x00\x5d\xeb\x00\x00\x80\x65\x00\x00\x00\x00\x5f\xf3\x80\x66\x00\x00\x00\x00\x00\x00\x83\x9f\x83\x9e\x63\xb2\x62\x41\x62\x42\x00\x00\x83\xa2\x83\xa1\x83\xa0\x00\x00\x00\x00\x86\x9b\x86\x9e\x00\x00\x86\x9d\x86\x9c\x63\xb1\x88\xf4\x88\xf2\x88\xf1\x00\x00", /* 9b00 */ "\x00\x00\x88\xf3\x00\x00\x65\xf8\x8a\xe8\x8a\xe9\x65\xf9\x00\x00\x8a\xe7\x00\x00\x8c\xb1\x8c\xb0\x8c\xb3\x66\xd1\x8c\xb2\x00\x00\x8d\xf5\x8d\xf7\x8d\xf6\x00\x00\x00\x00\x8e\xf0\x8e\xf3\x8e\xf1\x8e\xf2\x8f\xd3\x68\x49\x00\x00\x00\x00\x00\x00\x90\x85\x90\x86\x90\x87\x00\x00\x68\x97\x68\xaf\x91\xa6\x56\x8f\x00\x00\x62\x43\x63\xb3\x8a\xea\x00\x00\x8f\xd4\x00\x00\x00\x00\x91\xb4\x72\x6e\x00\x00\x68\xc7\x56\x90\x86\x9f\x00\x00\x8a\xeb\x00\x00\x8c\xb4\x00\x00\x00\x00\x8e\xf4\x8f\xd5\x56\x91\x00\x00\x80\x67\x80\x68\x00\x00\x5f\xf4\x5f\xf5\x83\xa4\x62\x45\x62\x44\x83\xa3\x00\x00\x88\xf5\x00\x00\x8a\xec\x8a\xee\x8a\xed\x65\xfc\x65\xfb\x65\xfa\x00\x00\x67\xc9\x8e\xf5\x00\x00\x67\xc8\x8f\xd7\x8f\xd6\x00\x00\x68\x98\x90\xe4\x59\x43\x7c\xf1\x00\x00\x00\x00\x00\x00\x80\x6b\x80\x69\x80\x6a\x00\x00\x00\x00\x83\xad\x00\x00\x83\xa8\x83\xa5\x83\xac\x00\x00\x00\x00\x00\x00\x83\xae\x00\x00\x00\x00\x62\x47\x83\xab\x83\xa7\x00\x00\x00\x00\x83\xa6\x83\xaa\x83\xa9\x62\x46\x00\x00\x00\x00\x86\xaa\x86\xa5\x86\xa3\x86\xac\x86\xa4\x00\x00", /* 9b80 */ "\x86\xa0\x00\x00\x86\xa6\x00\x00\x00\x00\x86\xa1\x89\x41\x86\xa2\x86\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xa9\x63\xb4\x86\xa8\x86\xa7\x00\x00\x86\xab\x00\x00\x00\x00\x00\x00\x00\x00\x88\xf6\x88\xf9\x00\x00\x00\x00\x88\xf8\x00\x00\x89\x43\x88\xfb\x89\x42\x00\x00\x88\xfd\x88\xfc\x88\xfa\x00\x00\x88\xf7\x00\x00\x65\x4e\x65\x4d\x00\x00\x65\x4f\x65\x4c\x89\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xf4\x8a\xf7\x00\x00\x8a\xf5\x8a\xf9\x00\x00\x00\x00\x00\x00\x8a\xfa\x00\x00\x8a\xf2\x66\x44\x8a\xf3\x00\x00\x8a\xf1\x8a\xf8\x00\x00\x8a\xf0\x8a\xef\x66\x43\x66\x41\x65\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xf6\x8c\xbd\x8c\xc3\x66\xd4\x8c\xbe\x00\x00\x8c\xc1\x8c\xc5\x66\xd5\x8c\xc0\x00\x00\x8c\xb8\x00\x00\x8c\xb7\x8c\xc4\x8c\xbb\x00\x00\x8c\xb9\x8c\xc2\x8c\xba\x66\xd3\x66\xd2\x00\x00\x8c\xb5\x8c\xb6\x8c\xbf\x00\x00\x00\x00\x00\x00\x8c\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xfa\x8d\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x66\x42\x00\x00\x00\x00", /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xfb\x8e\x44\x8e\x42\x8d\xf9\x8e\x47\x00\x00\x8d\xf8\x00\x00\x67\x7a\x8e\x43\x00\x00\x00\x00\x00\x00\x8d\xfc\x67\x79\x8e\x46\x00\x00\x00\x00\x8e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x8e\xf8\x8e\xf7\x00\x00\x00\x00\x00\x00\x8f\x41\x00\x00\x8e\xfa\x8e\xfd\x67\xcb\x00\x00\x00\x00\x8e\xfb\x8e\xfc\x00\x00\x8e\xf6\x8e\xf9\x67\xca\x00\x00\x00\x00\x00\x00\x68\x4b\x8f\xe2\x8f\xdd\x8f\xe1\x00\x00\x8f\xe4\x8f\xe0\x00\x00\x8f\xdc\x00\x00\x68\x4d\x8f\xdf\x8f\xe3\x68\x4c\x8f\xda\x8e\x41\x8f\xde\x00\x00\x00\x00\x8f\xdb\x00\x00\x8f\xd8\x00\x00\x8f\xd9\x68\x4a\x90\x8b\x90\x8d\x90\x90\x90\x8c\x90\x91\x00\x00\x90\x8a\x00\x00\x90\x88\x00\x00\x68\x77\x90\x8e\x68\x79\x68\x78\x90\x89\x90\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x90\xe9\x68\x99\x90\xea\x00\x00\x90\xe8\x90\xe5\x00\x00\x00\x00\x90\xe7\x90\xe6\x91\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x91\x6d\x91\x6c\x00\x00\x00\x00\x91\x8b\x00\x00\x91\x8a\x91\x89\x91\x8c\x00\x00\x68\xbf\x68\xc0\x91\xba\x91\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x44\x79\x75\x7c\xf4\x00\x00\x5d\xec\x7c\xf2\x00\x00\x00\x00\x7c\xf3\x00\x00\x00\x00\x00\x00\x80\x6c\x80\x6d\x5f\xf8\x5f\xf6\x80\x6e\x5f\xf7\x83\xb3\x00\x00\x83\xb6\x83\xb0\x83\xb7\x83\xaf\x83\xb1\x00\x00\x83\xb2", /* 9d00 */ "\x83\xb5\x00\x00\x00\x00\x62\x4a\x83\xba\x83\xb9\x62\x48\x83\xb4\x83\xb8\x62\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xb7\x00\x00\x63\xb9\x00\x00\x86\xb2\x63\xb5\x00\x00\x86\xaf\x86\xb5\x86\xb8\x00\x00\x63\xba\x00\x00\x86\xb4\x86\xb1\x86\xb9\x86\xb0\x00\x00\x86\xb6\x63\xb6\x00\x00\x86\xae\x63\xb7\x00\x00\x63\xb8\x86\xb3\x00\x00\x00\x00\x00\x00\x89\x56\x89\x49\x89\x4a\x89\x4d\x89\x4b\x00\x00\x89\x45\x00\x00\x00\x00\x89\x48\x89\x52\x89\x4c\x00\x00\x00\x00\x65\x50\x00\x00\x89\x54\x89\x51\x65\x51\x89\x53\x89\x46\x89\x4f\x89\x50\x00\x00\x89\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x41\x8b\x43\x8b\x46\x00\x00\x00\x00\x8a\xfd\x00\x00\x66\x45\x8b\x48\x8a\xfc\x8b\x49\x00\x00\x8b\x45\x8b\x47\x8b\x4b\x8b\x44\x8b\x4c\x8b\x42\x8a\xfb\x66\x46\x00\x00\x8b\x4a\x66\x47\x66\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\x8c\xdf\x8c\xd6\x66\xd9\x8c\xd2\x66\xda\x00\x00\x00\x00\x8c\xdb\x8c\xd5\x8c\xcb\x66\xd8\x8c\xd8\x8c\xd3\x8c\xd4\x00\x00\x8c\xc6\x8c\xcd\x8c\xdc\x00\x00\x8c\xd9\x00\x00\x8c\xd1\x00\x00\x8c\xdd", /* 9d80 */ "\x8c\xcc\x8c\xc7\x8c\xda\x00\x00\x8c\xc9\x8c\xd7\x8c\xce\x8c\xde\x8c\xca\x66\xd6\x8c\xc8\x8c\xcf\x8c\xd0\x00\x00\x00\x00\x00\x00\x8e\x4e\x00\x00\x8e\x4c\x00\x00\x8e\x51\x00\x00\x8e\x5d\x8e\x54\x8e\x4d\x8e\x49\x8e\x56\x8e\x4f\x8e\x52\x8e\x4b\x8e\x59\x8e\x48\x8e\x50\x8e\x55\x8e\x57\x8e\x5a\x8e\x4a\x00\x00\x8e\x5e\x8e\x5f\x8e\x58\x8e\x5c\x8e\x53\x00\x00\x8f\x51\x8f\x54\x00\x00\x67\xcc\x00\x00\x8f\x53\x8f\x58\x8f\x56\x67\xcd\x8f\x4d\x8f\x43\x8f\x42\x67\xcf\x8f\x4f\x8f\x50\x8f\x4c\x8f\x44\x00\x00\x8f\x49\x8e\x5b\x00\x00\x8f\x45\x67\xce\x8f\x4b\x00\x00\x8f\x4a\x00\x00\x8f\x46\x8f\x52\x00\x00\x8f\x47\x8f\xe9\x8f\x55\x8f\x57\x8f\x4e\x8f\x48\x8f\xea\x8f\xec\x8f\xe6\x68\x4e\x00\x00\x8f\xf3\x8f\xf1\x68\x4f\x8f\xf0\x8f\xef\x8f\xe8\x8f\xe5\x8f\xeb\x8f\xf4\x8f\xe7\x8f\xed\x00\x00\x90\x9a\x90\x9f\x90\x95\x90\x98\x68\x7a\x90\x9c\x00\x00\x90\xa3\x8f\xee\x00\x00\x90\x96\x90\xa0\x90\xa4\x90\x9b\x90\x94\x90\x9e\x00\x00\x90\x9d\x90\xa2\x90\xa1\x8f\xf2\x90\x99\x90\x93\x90\x97\x68\x9a\x68\x9b\x90\x92\x00\x00\x90\xf5\x90\xec\x90\xf4", /* 9e00 */ "\x90\xf1\x90\xf2\x90\xeb\x90\xee\x90\xf6\x90\xf0\x90\xef\x90\xed\x00\x00\x90\xf3\x00\x00\x91\x6e\x00\x00\x91\x6f\x00\x00\x91\x71\x91\x70\x91\x73\x91\x72\x91\x8e\x91\x8d\x91\xa7\x00\x00\x91\xa8\x00\x00\x91\xb5\x68\xc4\x68\xc8\x00\x00\x91\xbf\x68\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x45\x00\x00\x00\x00\x00\x00\x67\x7b\x8f\x59\x00\x00\x68\x9c\x68\x9d\x00\x00\x59\x46", /* 9e80 */ "\x7c\xf5\x00\x00\x5d\xed\x83\xbb\x00\x00\x00\x00\x86\xbb\x86\xbc\x86\xba\x89\x58\x89\x57\x65\x52\x8b\x4e\x89\x59\x8b\x4d\x00\x00\x00\x00\x8c\xe1\x66\xdb\x66\xdd\x8c\xe0\x00\x00\x00\x00\x66\xdc\x00\x00\x8e\x60\x8e\x62\x8e\x61\x8f\x5a\x67\xd0\x00\x00\x68\x7b\x90\xf7\x91\x74\x00\x00\x00\x00\x91\xc2\x59\x47\x00\x00\x80\x6f\x00\x00\x62\x4b\x00\x00\x00\x00\x00\x00\x86\xbe\x86\xbd\x00\x00\x89\x5a\x00\x00\x00\x00\x00\x00\x66\xde\x67\x7c\x8f\xf5\x91\xbb\x00\x00\x00\x00\x00\x00\x59\x48\x5f\xf9\x00\x00\x62\x4c\x00\x00\x8c\xe2\x00\x00\x90\xa5\x5b\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x89\x5b\x00\x00\x00\x00\x00\x00\x68\xb0\x5b\xa7\x62\x4d\x65\x53\x90\xa6\x5b\xa8\x00\x00\x83\xbc\x63\xbc\x86\xbf\x86\xc0\x00\x00\x63\xbb\x00\x00\x89\x5c\x65\x57\x65\x55\x65\x56\x65\x54\x8b\x4f\x66\x48\x00\x00\x00\x00\x00\x00\x8e\x64\x8e\x63\x8e\x66\x8e\x65\x67\x7d\x00\x00\x00\x00\x8f\x5b\x00\x00\x8f\x5d\x8f\x5c\x67\xd1\x8f\xf6\x00\x00\x90\xa7\x90\xa8\x68\x7c\x91\x75\x91\x8f\x68\xc1\x00\x00\x79\x76\x86\xc1\x89\x5d\x8c\xe3\x7c\xf6\x00\x00\x89\x5e", /* 9f00 */ "\x8b\x51\x8b\x50\x00\x00\x00\x00\x00\x00\x00\x00\x90\xa9\x68\x9e\x00\x00\x91\x76\x91\x90\x00\x00\x00\x00\x00\x00\x5d\xee\x83\xbd\x83\xbe\x00\x00\x86\xc2\x5d\xef\x00\x00\x66\x49\x8b\x52\x00\x00\x8f\x5f\x67\xd2\x8f\x60\x8f\x5e\x90\xaa\x00\x00\x90\xf8\x00\x00\x5d\xf0\x00\x00\x89\x61\x89\x60\x89\x5f\x8b\x53\x00\x00\x00\x00\x8b\x57\x8b\x56\x8b\x55\x8b\x54\x66\x4a\x8c\xe4\x8e\x68\x67\x7e\x8e\x67\x8f\x61\x8f\xf9\x8f\xf8\x68\x50\x8f\xf7\x90\xad\x90\xac\x90\xab\x00\x00\x00\x00\x5f\xfa\x00\x00\x86\xc3\x65\x58\x00\x00\x8c\xe5\x8c\xe6\x8f\xfa\x90\xae\x00\x00\x00\x00\x90\xf9\x91\x77\x91\xa9\x91\xc4\x5f\xfb\x65\x59\x8b\x58\x8c\xe7\x8f\x62\x90\xaf\x00\x00\x00\x00\x62\x4f\x00\x00\x89\x62\x8b\x59\x8c\xe8\x8c\xe9\x8c\xea\x8e\x6d\x00\x00\x8e\x69\x67\xd3\x8e\x6c\x8e\x6b\x67\x7f\x8e\x6a\x67\x82\x00\x00\x67\x81\x8f\x64\x8f\x63\x67\xd4\x67\xd5\x00\x00\x00\x00\x68\x52\x8f\xfb\x68\x51\x00\x00\x90\xb2\x90\xb3\x90\xb1\x90\xb0\x68\xa0\x00\x00\x90\xfa\x90\xfb\x90\xfc\x68\x9f\x91\x78\x91\x7b\x91\x7a\x91\x79\x00\x00\x00\x00\x91\xc3\x00\x00", /* 9f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbd\x00\x00\x00\x00\x66\x51\x8e\x6e\x8f\x65\x00\x00\x68\x53\x8f\xfc\x00\x00\x00\x00\x91\xc5\x00\x00\x00\x00\x00\x00\x63\xbe\x00\x00\x00\x00\x00\x00\x89\x63\x00\x00\x8f\xfd\x00\x00\x91\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\xc2\x41\xc2\x42\xc2\x43\xc2\x44\xc2\x45\xc2\x46\xc2\x47\xc2\x48\xc2\x49\xc2\x4a\xc2\x4b\xc2\x4c\xc2\x4d\xc2\x4e\xc2\x4f\xc2\x50\xc2\x51\xc2\x52\xc2\x53\xc2\x54\xc2\x55\xc2\x56\xc2\x57\xc2\x58\xc2\x59\xc2\x5a\xc2\x5b\xc2\x5c\xc2\x5d\xc2\x5e\xc2\x5f\xc2\x60\xc2\x61\xc2\x62\xc2\x63\xc2\x64\xc2\x65\xc2\x66\xc2\x67\xc2\x68\xc2\x69\xc2\x6a\xc2\x6b\xc2\x6c\xc2\x6d\xc2\x6e\xc2\x6f\xc2\x70\xc2\x71\xc2\x72\xc2\x73\xc2\x74\xc2\x75\xc2\x76\xc2\x77\xc2\x78\xc2\x79\xc2\x7a\xc2\x7b\xc2\x7c\xc2\x7d\xc2\x7e\xc2\x7f\xc2\x81\xc2\x82\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\xc2\x88\xc2\x89\xc2\x8a\xc2\x8b\xc2\x8c\xc2\x8d\xc2\x8e\xc2\x8f\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\xc2\x95\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\xc2\xa3\xc2\xa4\xc2\xa5\xc2\xa6\xc2\xa7\xc2\xa8\xc2\xa9\xc2\xaa\xc2\xab\xc2\xac\xc2\xad\xc2\xae\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc2\xc0\xc2\xc1", /* e080 */ "\xc2\xc2\xc2\xc3\xc2\xc4\xc2\xc5\xc2\xc6\xc2\xc7\xc2\xc8\xc2\xc9\xc2\xca\xc2\xcb\xc2\xcc\xc2\xcd\xc2\xce\xc2\xcf\xc2\xd0\xc2\xd1\xc2\xd2\xc2\xd3\xc2\xd4\xc2\xd5\xc2\xd6\xc2\xd7\xc2\xd8\xc2\xd9\xc2\xda\xc2\xdb\xc2\xdc\xc2\xdd\xc2\xde\xc2\xdf\xc2\xe0\xc2\xe1\xc2\xe2\xc2\xe3\xc2\xe4\xc2\xe5\xc2\xe6\xc2\xe7\xc2\xe8\xc2\xe9\xc2\xea\xc2\xeb\xc2\xec\xc2\xed\xc2\xee\xc2\xef\xc2\xf0\xc2\xf1\xc2\xf2\xc2\xf3\xc2\xf4\xc2\xf5\xc2\xf6\xc2\xf7\xc2\xf8\xc2\xf9\xc2\xfa\xc2\xfb\xc2\xfc\xc2\xfd\xc3\x41\xc3\x42\xc3\x43\xc3\x44\xc3\x45\xc3\x46\xc3\x47\xc3\x48\xc3\x49\xc3\x4a\xc3\x4b\xc3\x4c\xc3\x4d\xc3\x4e\xc3\x4f\xc3\x50\xc3\x51\xc3\x52\xc3\x53\xc3\x54\xc3\x55\xc3\x56\xc3\x57\xc3\x58\xc3\x59\xc3\x5a\xc3\x5b\xc3\x5c\xc3\x5d\xc3\x5e\xc3\x5f\xc3\x60\xc3\x61\xc3\x62\xc3\x63\xc3\x64\xc3\x65\xc3\x66\xc3\x67\xc3\x68\xc3\x69\xc3\x6a\xc3\x6b\xc3\x6c\xc3\x6d\xc3\x6e\xc3\x6f\xc3\x70\xc3\x71\xc3\x72\xc3\x73\xc3\x74\xc3\x75\xc3\x76\xc3\x77\xc3\x78\xc3\x79\xc3\x7a\xc3\x7b\xc3\x7c\xc3\x7d\xc3\x7e\xc3\x7f\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85", /* e100 */ "\xc3\x86\xc3\x87\xc3\x88\xc3\x89\xc3\x8a\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\xc3\x90\xc3\x91\xc3\x92\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\xc3\x9d\xc3\x9e\xc3\x9f\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xb7\xc3\xb8\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf\xc3\xc0\xc3\xc1\xc3\xc2\xc3\xc3\xc3\xc4\xc3\xc5\xc3\xc6\xc3\xc7\xc3\xc8\xc3\xc9\xc3\xca\xc3\xcb\xc3\xcc\xc3\xcd\xc3\xce\xc3\xcf\xc3\xd0\xc3\xd1\xc3\xd2\xc3\xd3\xc3\xd4\xc3\xd5\xc3\xd6\xc3\xd7\xc3\xd8\xc3\xd9\xc3\xda\xc3\xdb\xc3\xdc\xc3\xdd\xc3\xde\xc3\xdf\xc3\xe0\xc3\xe1\xc3\xe2\xc3\xe3\xc3\xe4\xc3\xe5\xc3\xe6\xc3\xe7\xc3\xe8\xc3\xe9\xc3\xea\xc3\xeb\xc3\xec\xc3\xed\xc3\xee\xc3\xef\xc3\xf0\xc3\xf1\xc3\xf2\xc3\xf3\xc3\xf4\xc3\xf5\xc3\xf6\xc3\xf7\xc3\xf8\xc3\xf9\xc3\xfa\xc3\xfb\xc3\xfc\xc3\xfd\xc4\x41\xc4\x42\xc4\x43\xc4\x44\xc4\x45\xc4\x46\xc4\x47\xc4\x48", /* e180 */ "\xc4\x49\xc4\x4a\xc4\x4b\xc4\x4c\xc4\x4d\xc4\x4e\xc4\x4f\xc4\x50\xc4\x51\xc4\x52\xc4\x53\xc4\x54\xc4\x55\xc4\x56\xc4\x57\xc4\x58\xc4\x59\xc4\x5a\xc4\x5b\xc4\x5c\xc4\x5d\xc4\x5e\xc4\x5f\xc4\x60\xc4\x61\xc4\x62\xc4\x63\xc4\x64\xc4\x65\xc4\x66\xc4\x67\xc4\x68\xc4\x69\xc4\x6a\xc4\x6b\xc4\x6c\xc4\x6d\xc4\x6e\xc4\x6f\xc4\x70\xc4\x71\xc4\x72\xc4\x73\xc4\x74\xc4\x75\xc4\x76\xc4\x77\xc4\x78\xc4\x79\xc4\x7a\xc4\x7b\xc4\x7c\xc4\x7d\xc4\x7e\xc4\x7f\xc4\x81\xc4\x82\xc4\x83\xc4\x84\xc4\x85\xc4\x86\xc4\x87\xc4\x88\xc4\x89\xc4\x8a\xc4\x8b\xc4\x8c\xc4\x8d\xc4\x8e\xc4\x8f\xc4\x90\xc4\x91\xc4\x92\xc4\x93\xc4\x94\xc4\x95\xc4\x96\xc4\x97\xc4\x98\xc4\x99\xc4\x9a\xc4\x9b\xc4\x9c\xc4\x9d\xc4\x9e\xc4\x9f\xc4\xa0\xc4\xa1\xc4\xa2\xc4\xa3\xc4\xa4\xc4\xa5\xc4\xa6\xc4\xa7\xc4\xa8\xc4\xa9\xc4\xaa\xc4\xab\xc4\xac\xc4\xad\xc4\xae\xc4\xaf\xc4\xb0\xc4\xb1\xc4\xb2\xc4\xb3\xc4\xb4\xc4\xb5\xc4\xb6\xc4\xb7\xc4\xb8\xc4\xb9\xc4\xba\xc4\xbb\xc4\xbc\xc4\xbd\xc4\xbe\xc4\xbf\xc4\xc0\xc4\xc1\xc4\xc2\xc4\xc3\xc4\xc4\xc4\xc5\xc4\xc6\xc4\xc7\xc4\xc8\xc4\xc9", /* e200 */ "\xc4\xca\xc4\xcb\xc4\xcc\xc4\xcd\xc4\xce\xc4\xcf\xc4\xd0\xc4\xd1\xc4\xd2\xc4\xd3\xc4\xd4\xc4\xd5\xc4\xd6\xc4\xd7\xc4\xd8\xc4\xd9\xc4\xda\xc4\xdb\xc4\xdc\xc4\xdd\xc4\xde\xc4\xdf\xc4\xe0\xc4\xe1\xc4\xe2\xc4\xe3\xc4\xe4\xc4\xe5\xc4\xe6\xc4\xe7\xc4\xe8\xc4\xe9\xc4\xea\xc4\xeb\xc4\xec\xc4\xed\xc4\xee\xc4\xef\xc4\xf0\xc4\xf1\xc4\xf2\xc4\xf3\xc4\xf4\xc4\xf5\xc4\xf6\xc4\xf7\xc4\xf8\xc4\xf9\xc4\xfa\xc4\xfb\xc4\xfc\xc4\xfd\xc5\x41\xc5\x42\xc5\x43\xc5\x44\xc5\x45\xc5\x46\xc5\x47\xc5\x48\xc5\x49\xc5\x4a\xc5\x4b\xc5\x4c\xc5\x4d\xc5\x4e\xc5\x4f\xc5\x50\xc5\x51\xc5\x52\xc5\x53\xc5\x54\xc5\x55\xc5\x56\xc5\x57\xc5\x58\xc5\x59\xc5\x5a\xc5\x5b\xc5\x5c\xc5\x5d\xc5\x5e\xc5\x5f\xc5\x60\xc5\x61\xc5\x62\xc5\x63\xc5\x64\xc5\x65\xc5\x66\xc5\x67\xc5\x68\xc5\x69\xc5\x6a\xc5\x6b\xc5\x6c\xc5\x6d\xc5\x6e\xc5\x6f\xc5\x70\xc5\x71\xc5\x72\xc5\x73\xc5\x74\xc5\x75\xc5\x76\xc5\x77\xc5\x78\xc5\x79\xc5\x7a\xc5\x7b\xc5\x7c\xc5\x7d\xc5\x7e\xc5\x7f\xc5\x81\xc5\x82\xc5\x83\xc5\x84\xc5\x85\xc5\x86\xc5\x87\xc5\x88\xc5\x89\xc5\x8a\xc5\x8b\xc5\x8c\xc5\x8d", /* e280 */ "\xc5\x8e\xc5\x8f\xc5\x90\xc5\x91\xc5\x92\xc5\x93\xc5\x94\xc5\x95\xc5\x96\xc5\x97\xc5\x98\xc5\x99\xc5\x9a\xc5\x9b\xc5\x9c\xc5\x9d\xc5\x9e\xc5\x9f\xc5\xa0\xc5\xa1\xc5\xa2\xc5\xa3\xc5\xa4\xc5\xa5\xc5\xa6\xc5\xa7\xc5\xa8\xc5\xa9\xc5\xaa\xc5\xab\xc5\xac\xc5\xad\xc5\xae\xc5\xaf\xc5\xb0\xc5\xb1\xc5\xb2\xc5\xb3\xc5\xb4\xc5\xb5\xc5\xb6\xc5\xb7\xc5\xb8\xc5\xb9\xc5\xba\xc5\xbb\xc5\xbc\xc5\xbd\xc5\xbe\xc5\xbf\xc5\xc0\xc5\xc1\xc5\xc2\xc5\xc3\xc5\xc4\xc5\xc5\xc5\xc6\xc5\xc7\xc5\xc8\xc5\xc9\xc5\xca\xc5\xcb\xc5\xcc\xc5\xcd\xc5\xce\xc5\xcf\xc5\xd0\xc5\xd1\xc5\xd2\xc5\xd3\xc5\xd4\xc5\xd5\xc5\xd6\xc5\xd7\xc5\xd8\xc5\xd9\xc5\xda\xc5\xdb\xc5\xdc\xc5\xdd\xc5\xde\xc5\xdf\xc5\xe0\xc5\xe1\xc5\xe2\xc5\xe3\xc5\xe4\xc5\xe5\xc5\xe6\xc5\xe7\xc5\xe8\xc5\xe9\xc5\xea\xc5\xeb\xc5\xec\xc5\xed\xc5\xee\xc5\xef\xc5\xf0\xc5\xf1\xc5\xf2\xc5\xf3\xc5\xf4\xc5\xf5\xc5\xf6\xc5\xf7\xc5\xf8\xc5\xf9\xc5\xfa\xc5\xfb\xc5\xfc\xc5\xfd\xc6\x41\xc6\x42\xc6\x43\xc6\x44\xc6\x45\xc6\x46\xc6\x47\xc6\x48\xc6\x49\xc6\x4a\xc6\x4b\xc6\x4c\xc6\x4d\xc6\x4e\xc6\x4f\xc6\x50", /* e300 */ "\xc6\x51\xc6\x52\xc6\x53\xc6\x54\xc6\x55\xc6\x56\xc6\x57\xc6\x58\xc6\x59\xc6\x5a\xc6\x5b\xc6\x5c\xc6\x5d\xc6\x5e\xc6\x5f\xc6\x60\xc6\x61\xc6\x62\xc6\x63\xc6\x64\xc6\x65\xc6\x66\xc6\x67\xc6\x68\xc6\x69\xc6\x6a\xc6\x6b\xc6\x6c\xc6\x6d\xc6\x6e\xc6\x6f\xc6\x70\xc6\x71\xc6\x72\xc6\x73\xc6\x74\xc6\x75\xc6\x76\xc6\x77\xc6\x78\xc6\x79\xc6\x7a\xc6\x7b\xc6\x7c\xc6\x7d\xc6\x7e\xc6\x7f\xc6\x81\xc6\x82\xc6\x83\xc6\x84\xc6\x85\xc6\x86\xc6\x87\xc6\x88\xc6\x89\xc6\x8a\xc6\x8b\xc6\x8c\xc6\x8d\xc6\x8e\xc6\x8f\xc6\x90\xc6\x91\xc6\x92\xc6\x93\xc6\x94\xc6\x95\xc6\x96\xc6\x97\xc6\x98\xc6\x99\xc6\x9a\xc6\x9b\xc6\x9c\xc6\x9d\xc6\x9e\xc6\x9f\xc6\xa0\xc6\xa1\xc6\xa2\xc6\xa3\xc6\xa4\xc6\xa5\xc6\xa6\xc6\xa7\xc6\xa8\xc6\xa9\xc6\xaa\xc6\xab\xc6\xac\xc6\xad\xc6\xae\xc6\xaf\xc6\xb0\xc6\xb1\xc6\xb2\xc6\xb3\xc6\xb4\xc6\xb5\xc6\xb6\xc6\xb7\xc6\xb8\xc6\xb9\xc6\xba\xc6\xbb\xc6\xbc\xc6\xbd\xc6\xbe\xc6\xbf\xc6\xc0\xc6\xc1\xc6\xc2\xc6\xc3\xc6\xc4\xc6\xc5\xc6\xc6\xc6\xc7\xc6\xc8\xc6\xc9\xc6\xca\xc6\xcb\xc6\xcc\xc6\xcd\xc6\xce\xc6\xcf\xc6\xd0\xc6\xd1", /* e380 */ "\xc6\xd2\xc6\xd3\xc6\xd4\xc6\xd5\xc6\xd6\xc6\xd7\xc6\xd8\xc6\xd9\xc6\xda\xc6\xdb\xc6\xdc\xc6\xdd\xc6\xde\xc6\xdf\xc6\xe0\xc6\xe1\xc6\xe2\xc6\xe3\xc6\xe4\xc6\xe5\xc6\xe6\xc6\xe7\xc6\xe8\xc6\xe9\xc6\xea\xc6\xeb\xc6\xec\xc6\xed\xc6\xee\xc6\xef\xc6\xf0\xc6\xf1\xc6\xf2\xc6\xf3\xc6\xf4\xc6\xf5\xc6\xf6\xc6\xf7\xc6\xf8\xc6\xf9\xc6\xfa\xc6\xfb\xc6\xfc\xc6\xfd\xc7\x41\xc7\x42\xc7\x43\xc7\x44\xc7\x45\xc7\x46\xc7\x47\xc7\x48\xc7\x49\xc7\x4a\xc7\x4b\xc7\x4c\xc7\x4d\xc7\x4e\xc7\x4f\xc7\x50\xc7\x51\xc7\x52\xc7\x53\xc7\x54\xc7\x55\xc7\x56\xc7\x57\xc7\x58\xc7\x59\xc7\x5a\xc7\x5b\xc7\x5c\xc7\x5d\xc7\x5e\xc7\x5f\xc7\x60\xc7\x61\xc7\x62\xc7\x63\xc7\x64\xc7\x65\xc7\x66\xc7\x67\xc7\x68\xc7\x69\xc7\x6a\xc7\x6b\xc7\x6c\xc7\x6d\xc7\x6e\xc7\x6f\xc7\x70\xc7\x71\xc7\x72\xc7\x73\xc7\x74\xc7\x75\xc7\x76\xc7\x77\xc7\x78\xc7\x79\xc7\x7a\xc7\x7b\xc7\x7c\xc7\x7d\xc7\x7e\xc7\x7f\xc7\x81\xc7\x82\xc7\x83\xc7\x84\xc7\x85\xc7\x86\xc7\x87\xc7\x88\xc7\x89\xc7\x8a\xc7\x8b\xc7\x8c\xc7\x8d\xc7\x8e\xc7\x8f\xc7\x90\xc7\x91\xc7\x92\xc7\x93\xc7\x94\xc7\x95", /* e400 */ "\xc7\x96\xc7\x97\xc7\x98\xc7\x99\xc7\x9a\xc7\x9b\xc7\x9c\xc7\x9d\xc7\x9e\xc7\x9f\xc7\xa0\xc7\xa1\xc7\xa2\xc7\xa3\xc7\xa4\xc7\xa5\xc7\xa6\xc7\xa7\xc7\xa8\xc7\xa9\xc7\xaa\xc7\xab\xc7\xac\xc7\xad\xc7\xae\xc7\xaf\xc7\xb0\xc7\xb1\xc7\xb2\xc7\xb3\xc7\xb4\xc7\xb5\xc7\xb6\xc7\xb7\xc7\xb8\xc7\xb9\xc7\xba\xc7\xbb\xc7\xbc\xc7\xbd\xc7\xbe\xc7\xbf\xc7\xc0\xc7\xc1\xc7\xc2\xc7\xc3\xc7\xc4\xc7\xc5\xc7\xc6\xc7\xc7\xc7\xc8\xc7\xc9\xc7\xca\xc7\xcb\xc7\xcc\xc7\xcd\xc7\xce\xc7\xcf\xc7\xd0\xc7\xd1\xc7\xd2\xc7\xd3\xc7\xd4\xc7\xd5\xc7\xd6\xc7\xd7\xc7\xd8\xc7\xd9\xc7\xda\xc7\xdb\xc7\xdc\xc7\xdd\xc7\xde\xc7\xdf\xc7\xe0\xc7\xe1\xc7\xe2\xc7\xe3\xc7\xe4\xc7\xe5\xc7\xe6\xc7\xe7\xc7\xe8\xc7\xe9\xc7\xea\xc7\xeb\xc7\xec\xc7\xed\xc7\xee\xc7\xef\xc7\xf0\xc7\xf1\xc7\xf2\xc7\xf3\xc7\xf4\xc7\xf5\xc7\xf6\xc7\xf7\xc7\xf8\xc7\xf9\xc7\xfa\xc7\xfb\xc7\xfc\xc7\xfd\xc8\x41\xc8\x42\xc8\x43\xc8\x44\xc8\x45\xc8\x46\xc8\x47\xc8\x48\xc8\x49\xc8\x4a\xc8\x4b\xc8\x4c\xc8\x4d\xc8\x4e\xc8\x4f\xc8\x50\xc8\x51\xc8\x52\xc8\x53\xc8\x54\xc8\x55\xc8\x56\xc8\x57\xc8\x58", /* e480 */ "\xc8\x59\xc8\x5a\xc8\x5b\xc8\x5c\xc8\x5d\xc8\x5e\xc8\x5f\xc8\x60\xc8\x61\xc8\x62\xc8\x63\xc8\x64\xc8\x65\xc8\x66\xc8\x67\xc8\x68\xc8\x69\xc8\x6a\xc8\x6b\xc8\x6c\xc8\x6d\xc8\x6e\xc8\x6f\xc8\x70\xc8\x71\xc8\x72\xc8\x73\xc8\x74\xc8\x75\xc8\x76\xc8\x77\xc8\x78\xc8\x79\xc8\x7a\xc8\x7b\xc8\x7c\xc8\x7d\xc8\x7e\xc8\x7f\xc8\x81\xc8\x82\xc8\x83\xc8\x84\xc8\x85\xc8\x86\xc8\x87\xc8\x88\xc8\x89\xc8\x8a\xc8\x8b\xc8\x8c\xc8\x8d\xc8\x8e\xc8\x8f\xc8\x90\xc8\x91\xc8\x92\xc8\x93\xc8\x94\xc8\x95\xc8\x96\xc8\x97\xc8\x98\xc8\x99\xc8\x9a\xc8\x9b\xc8\x9c\xc8\x9d\xc8\x9e\xc8\x9f\xc8\xa0\xc8\xa1\xc8\xa2\xc8\xa3\xc8\xa4\xc8\xa5\xc8\xa6\xc8\xa7\xc8\xa8\xc8\xa9\xc8\xaa\xc8\xab\xc8\xac\xc8\xad\xc8\xae\xc8\xaf\xc8\xb0\xc8\xb1\xc8\xb2\xc8\xb3\xc8\xb4\xc8\xb5\xc8\xb6\xc8\xb7\xc8\xb8\xc8\xb9\xc8\xba\xc8\xbb\xc8\xbc\xc8\xbd\xc8\xbe\xc8\xbf\xc8\xc0\xc8\xc1\xc8\xc2\xc8\xc3\xc8\xc4\xc8\xc5\xc8\xc6\xc8\xc7\xc8\xc8\xc8\xc9\xc8\xca\xc8\xcb\xc8\xcc\xc8\xcd\xc8\xce\xc8\xcf\xc8\xd0\xc8\xd1\xc8\xd2\xc8\xd3\xc8\xd4\xc8\xd5\xc8\xd6\xc8\xd7\xc8\xd8\xc8\xd9", /* e500 */ "\xc8\xda\xc8\xdb\xc8\xdc\xc8\xdd\xc8\xde\xc8\xdf\xc8\xe0\xc8\xe1\xc8\xe2\xc8\xe3\xc8\xe4\xc8\xe5\xc8\xe6\xc8\xe7\xc8\xe8\xc8\xe9\xc8\xea\xc8\xeb\xc8\xec\xc8\xed\xc8\xee\xc8\xef\xc8\xf0\xc8\xf1\xc8\xf2\xc8\xf3\xc8\xf4\xc8\xf5\xc8\xf6\xc8\xf7\xc8\xf8\xc8\xf9\xc8\xfa\xc8\xfb\xc8\xfc\xc8\xfd\xc9\x41\xc9\x42\xc9\x43\xc9\x44\xc9\x45\xc9\x46\xc9\x47\xc9\x48\xc9\x49\xc9\x4a\xc9\x4b\xc9\x4c\xc9\x4d\xc9\x4e\xc9\x4f\xc9\x50\xc9\x51\xc9\x52\xc9\x53\xc9\x54\xc9\x55\xc9\x56\xc9\x57\xc9\x58\xc9\x59\xc9\x5a\xc9\x5b\xc9\x5c\xc9\x5d\xc9\x5e\xc9\x5f\xc9\x60\xc9\x61\xc9\x62\xc9\x63\xc9\x64\xc9\x65\xc9\x66\xc9\x67\xc9\x68\xc9\x69\xc9\x6a\xc9\x6b\xc9\x6c\xc9\x6d\xc9\x6e\xc9\x6f\xc9\x70\xc9\x71\xc9\x72\xc9\x73\xc9\x74\xc9\x75\xc9\x76\xc9\x77\xc9\x78\xc9\x79\xc9\x7a\xc9\x7b\xc9\x7c\xc9\x7d\xc9\x7e\xc9\x7f\xc9\x81\xc9\x82\xc9\x83\xc9\x84\xc9\x85\xc9\x86\xc9\x87\xc9\x88\xc9\x89\xc9\x8a\xc9\x8b\xc9\x8c\xc9\x8d\xc9\x8e\xc9\x8f\xc9\x90\xc9\x91\xc9\x92\xc9\x93\xc9\x94\xc9\x95\xc9\x96\xc9\x97\xc9\x98\xc9\x99\xc9\x9a\xc9\x9b\xc9\x9c\xc9\x9d", /* e580 */ "\xc9\x9e\xc9\x9f\xc9\xa0\xc9\xa1\xc9\xa2\xc9\xa3\xc9\xa4\xc9\xa5\xc9\xa6\xc9\xa7\xc9\xa8\xc9\xa9\xc9\xaa\xc9\xab\xc9\xac\xc9\xad\xc9\xae\xc9\xaf\xc9\xb0\xc9\xb1\xc9\xb2\xc9\xb3\xc9\xb4\xc9\xb5\xc9\xb6\xc9\xb7\xc9\xb8\xc9\xb9\xc9\xba\xc9\xbb\xc9\xbc\xc9\xbd\xc9\xbe\xc9\xbf\xc9\xc0\xc9\xc1\xc9\xc2\xc9\xc3\xc9\xc4\xc9\xc5\xc9\xc6\xc9\xc7\xc9\xc8\xc9\xc9\xc9\xca\xc9\xcb\xc9\xcc\xc9\xcd\xc9\xce\xc9\xcf\xc9\xd0\xc9\xd1\xc9\xd2\xc9\xd3\xc9\xd4\xc9\xd5\xc9\xd6\xc9\xd7\xc9\xd8\xc9\xd9\xc9\xda\xc9\xdb\xc9\xdc\xc9\xdd\xc9\xde\xc9\xdf\xc9\xe0\xc9\xe1\xc9\xe2\xc9\xe3\xc9\xe4\xc9\xe5\xc9\xe6\xc9\xe7\xc9\xe8\xc9\xe9\xc9\xea\xc9\xeb\xc9\xec\xc9\xed\xc9\xee\xc9\xef\xc9\xf0\xc9\xf1\xc9\xf2\xc9\xf3\xc9\xf4\xc9\xf5\xc9\xf6\xc9\xf7\xc9\xf8\xc9\xf9\xc9\xfa\xc9\xfb\xc9\xfc\xc9\xfd\xca\x41\xca\x42\xca\x43\xca\x44\xca\x45\xca\x46\xca\x47\xca\x48\xca\x49\xca\x4a\xca\x4b\xca\x4c\xca\x4d\xca\x4e\xca\x4f\xca\x50\xca\x51\xca\x52\xca\x53\xca\x54\xca\x55\xca\x56\xca\x57\xca\x58\xca\x59\xca\x5a\xca\x5b\xca\x5c\xca\x5d\xca\x5e\xca\x5f\xca\x60", /* e600 */ "\xca\x61\xca\x62\xca\x63\xca\x64\xca\x65\xca\x66\xca\x67\xca\x68\xca\x69\xca\x6a\xca\x6b\xca\x6c\xca\x6d\xca\x6e\xca\x6f\xca\x70\xca\x71\xca\x72\xca\x73\xca\x74\xca\x75\xca\x76\xca\x77\xca\x78\xca\x79\xca\x7a\xca\x7b\xca\x7c\xca\x7d\xca\x7e\xca\x7f\xca\x81\xca\x82\xca\x83\xca\x84\xca\x85\xca\x86\xca\x87\xca\x88\xca\x89\xca\x8a\xca\x8b\xca\x8c\xca\x8d\xca\x8e\xca\x8f\xca\x90\xca\x91\xca\x92\xca\x93\xca\x94\xca\x95\xca\x96\xca\x97\xca\x98\xca\x99\xca\x9a\xca\x9b\xca\x9c\xca\x9d\xca\x9e\xca\x9f\xca\xa0\xca\xa1\xca\xa2\xca\xa3\xca\xa4\xca\xa5\xca\xa6\xca\xa7\xca\xa8\xca\xa9\xca\xaa\xca\xab\xca\xac\xca\xad\xca\xae\xca\xaf\xca\xb0\xca\xb1\xca\xb2\xca\xb3\xca\xb4\xca\xb5\xca\xb6\xca\xb7\xca\xb8\xca\xb9\xca\xba\xca\xbb\xca\xbc\xca\xbd\xca\xbe\xca\xbf\xca\xc0\xca\xc1\xca\xc2\xca\xc3\xca\xc4\xca\xc5\xca\xc6\xca\xc7\xca\xc8\xca\xc9\xca\xca\xca\xcb\xca\xcc\xca\xcd\xca\xce\xca\xcf\xca\xd0\xca\xd1\xca\xd2\xca\xd3\xca\xd4\xca\xd5\xca\xd6\xca\xd7\xca\xd8\xca\xd9\xca\xda\xca\xdb\xca\xdc\xca\xdd\xca\xde\xca\xdf\xca\xe0\xca\xe1", /* e680 */ "\xca\xe2\xca\xe3\xca\xe4\xca\xe5\xca\xe6\xca\xe7\xca\xe8\xca\xe9\xca\xea\xca\xeb\xca\xec\xca\xed\xca\xee\xca\xef\xca\xf0\xca\xf1\xca\xf2\xca\xf3\xca\xf4\xca\xf5\xca\xf6\xca\xf7\xca\xf8\xca\xf9\xca\xfa\xca\xfb\xca\xfc\xca\xfd\xcb\x41\xcb\x42\xcb\x43\xcb\x44\xcb\x45\xcb\x46\xcb\x47\xcb\x48\xcb\x49\xcb\x4a\xcb\x4b\xcb\x4c\xcb\x4d\xcb\x4e\xcb\x4f\xcb\x50\xcb\x51\xcb\x52\xcb\x53\xcb\x54\xcb\x55\xcb\x56\xcb\x57\xcb\x58\xcb\x59\xcb\x5a\xcb\x5b\xcb\x5c\xcb\x5d\xcb\x5e\xcb\x5f\xcb\x60\xcb\x61\xcb\x62\xcb\x63\xcb\x64\xcb\x65\xcb\x66\xcb\x67\xcb\x68\xcb\x69\xcb\x6a\xcb\x6b\xcb\x6c\xcb\x6d\xcb\x6e\xcb\x6f\xcb\x70\xcb\x71\xcb\x72\xcb\x73\xcb\x74\xcb\x75\xcb\x76\xcb\x77\xcb\x78\xcb\x79\xcb\x7a\xcb\x7b\xcb\x7c\xcb\x7d\xcb\x7e\xcb\x7f\xcb\x81\xcb\x82\xcb\x83\xcb\x84\xcb\x85\xcb\x86\xcb\x87\xcb\x88\xcb\x89\xcb\x8a\xcb\x8b\xcb\x8c\xcb\x8d\xcb\x8e\xcb\x8f\xcb\x90\xcb\x91\xcb\x92\xcb\x93\xcb\x94\xcb\x95\xcb\x96\xcb\x97\xcb\x98\xcb\x99\xcb\x9a\xcb\x9b\xcb\x9c\xcb\x9d\xcb\x9e\xcb\x9f\xcb\xa0\xcb\xa1\xcb\xa2\xcb\xa3\xcb\xa4\xcb\xa5", /* e700 */ "\xcb\xa6\xcb\xa7\xcb\xa8\xcb\xa9\xcb\xaa\xcb\xab\xcb\xac\xcb\xad\xcb\xae\xcb\xaf\xcb\xb0\xcb\xb1\xcb\xb2\xcb\xb3\xcb\xb4\xcb\xb5\xcb\xb6\xcb\xb7\xcb\xb8\xcb\xb9\xcb\xba\xcb\xbb\xcb\xbc\xcb\xbd\xcb\xbe\xcb\xbf\xcb\xc0\xcb\xc1\xcb\xc2\xcb\xc3\xcb\xc4\xcb\xc5\xcb\xc6\xcb\xc7\xcb\xc8\xcb\xc9\xcb\xca\xcb\xcb\xcb\xcc\xcb\xcd\xcb\xce\xcb\xcf\xcb\xd0\xcb\xd1\xcb\xd2\xcb\xd3\xcb\xd4\xcb\xd5\xcb\xd6\xcb\xd7\xcb\xd8\xcb\xd9\xcb\xda\xcb\xdb\xcb\xdc\xcb\xdd\xcb\xde\xcb\xdf\xcb\xe0\xcb\xe1\xcb\xe2\xcb\xe3\xcb\xe4\xcb\xe5\xcb\xe6\xcb\xe7\xcb\xe8\xcb\xe9\xcb\xea\xcb\xeb\xcb\xec\xcb\xed\xcb\xee\xcb\xef\xcb\xf0\xcb\xf1\xcb\xf2\xcb\xf3\xcb\xf4\xcb\xf5\xcb\xf6\xcb\xf7\xcb\xf8\xcb\xf9\xcb\xfa\xcb\xfb\xcb\xfc\xcb\xfd\xcc\x41\xcc\x42\xcc\x43\xcc\x44\xcc\x45\xcc\x46\xcc\x47\xcc\x48\xcc\x49\xcc\x4a\xcc\x4b\xcc\x4c\xcc\x4d\xcc\x4e\xcc\x4f\xcc\x50\xcc\x51\xcc\x52\xcc\x53\xcc\x54\xcc\x55\xcc\x56\xcc\x57\xcc\x58\xcc\x59\xcc\x5a\xcc\x5b\xcc\x5c\xcc\x5d\xcc\x5e\xcc\x5f\xcc\x60\xcc\x61\xcc\x62\xcc\x63\xcc\x64\xcc\x65\xcc\x66\xcc\x67\xcc\x68", /* e780 */ "\xcc\x69\xcc\x6a\xcc\x6b\xcc\x6c\xcc\x6d\xcc\x6e\xcc\x6f\xcc\x70\xcc\x71\xcc\x72\xcc\x73\xcc\x74\xcc\x75\xcc\x76\xcc\x77\xcc\x78\xcc\x79\xcc\x7a\xcc\x7b\xcc\x7c\xcc\x7d\xcc\x7e\xcc\x7f\xcc\x81\xcc\x82\xcc\x83\xcc\x84\xcc\x85\xcc\x86\xcc\x87\xcc\x88\xcc\x89\xcc\x8a\xcc\x8b\xcc\x8c\xcc\x8d\xcc\x8e\xcc\x8f\xcc\x90\xcc\x91\xcc\x92\xcc\x93\xcc\x94\xcc\x95\xcc\x96\xcc\x97\xcc\x98\xcc\x99\xcc\x9a\xcc\x9b\xcc\x9c\xcc\x9d\xcc\x9e\xcc\x9f\xcc\xa0\xcc\xa1\xcc\xa2\xcc\xa3\xcc\xa4\xcc\xa5\xcc\xa6\xcc\xa7\xcc\xa8\xcc\xa9\xcc\xaa\xcc\xab\xcc\xac\xcc\xad\xcc\xae\xcc\xaf\xcc\xb0\xcc\xb1\xcc\xb2\xcc\xb3\xcc\xb4\xcc\xb5\xcc\xb6\xcc\xb7\xcc\xb8\xcc\xb9\xcc\xba\xcc\xbb\xcc\xbc\xcc\xbd\xcc\xbe\xcc\xbf\xcc\xc0\xcc\xc1\xcc\xc2\xcc\xc3\xcc\xc4\xcc\xc5\xcc\xc6\xcc\xc7\xcc\xc8\xcc\xc9\xcc\xca\xcc\xcb\xcc\xcc\xcc\xcd\xcc\xce\xcc\xcf\xcc\xd0\xcc\xd1\xcc\xd2\xcc\xd3\xcc\xd4\xcc\xd5\xcc\xd6\xcc\xd7\xcc\xd8\xcc\xd9\xcc\xda\xcc\xdb\xcc\xdc\xcc\xdd\xcc\xde\xcc\xdf\xcc\xe0\xcc\xe1\xcc\xe2\xcc\xe3\xcc\xe4\xcc\xe5\xcc\xe6\xcc\xe7\xcc\xe8\xcc\xe9", /* e800 */ "\xcc\xea\xcc\xeb\xcc\xec\xcc\xed\xcc\xee\xcc\xef\xcc\xf0\xcc\xf1\xcc\xf2\xcc\xf3\xcc\xf4\xcc\xf5\xcc\xf6\xcc\xf7\xcc\xf8\xcc\xf9\xcc\xfa\xcc\xfb\xcc\xfc\xcc\xfd\xcd\x41\xcd\x42\xcd\x43\xcd\x44\xcd\x45\xcd\x46\xcd\x47\xcd\x48\xcd\x49\xcd\x4a\xcd\x4b\xcd\x4c\xcd\x4d\xcd\x4e\xcd\x4f\xcd\x50\xcd\x51\xcd\x52\xcd\x53\xcd\x54\xcd\x55\xcd\x56\xcd\x57\xcd\x58\xcd\x59\xcd\x5a\xcd\x5b\xcd\x5c\xcd\x5d\xcd\x5e\xcd\x5f\xcd\x60\xcd\x61\xcd\x62\xcd\x63\xcd\x64\xcd\x65\xcd\x66\xcd\x67\xcd\x68\xcd\x69\xcd\x6a\xcd\x6b\xcd\x6c\xcd\x6d\xcd\x6e\xcd\x6f\xcd\x70\xcd\x71\xcd\x72\xcd\x73\xcd\x74\xcd\x75\xcd\x76\xcd\x77\xcd\x78\xcd\x79\xcd\x7a\xcd\x7b\xcd\x7c\xcd\x7d\xcd\x7e\xcd\x7f\xcd\x81\xcd\x82\xcd\x83\xcd\x84\xcd\x85\xcd\x86\xcd\x87\xcd\x88\xcd\x89\xcd\x8a\xcd\x8b\xcd\x8c\xcd\x8d\xcd\x8e\xcd\x8f\xcd\x90\xcd\x91\xcd\x92\xcd\x93\xcd\x94\xcd\x95\xcd\x96\xcd\x97\xcd\x98\xcd\x99\xcd\x9a\xcd\x9b\xcd\x9c\xcd\x9d\xcd\x9e\xcd\x9f\xcd\xa0\xcd\xa1\xcd\xa2\xcd\xa3\xcd\xa4\xcd\xa5\xcd\xa6\xcd\xa7\xcd\xa8\xcd\xa9\xcd\xaa\xcd\xab\xcd\xac\xcd\xad", /* e880 */ "\xcd\xae\xcd\xaf\xcd\xb0\xcd\xb1\xcd\xb2\xcd\xb3\xcd\xb4\xcd\xb5\xcd\xb6\xcd\xb7\xcd\xb8\xcd\xb9\xcd\xba\xcd\xbb\xcd\xbc\xcd\xbd\xcd\xbe\xcd\xbf\xcd\xc0\xcd\xc1\xcd\xc2\xcd\xc3\xcd\xc4\xcd\xc5\xcd\xc6\xcd\xc7\xcd\xc8\xcd\xc9\xcd\xca\xcd\xcb\xcd\xcc\xcd\xcd\xcd\xce\xcd\xcf\xcd\xd0\xcd\xd1\xcd\xd2\xcd\xd3\xcd\xd4\xcd\xd5\xcd\xd6\xcd\xd7\xcd\xd8\xcd\xd9\xcd\xda\xcd\xdb\xcd\xdc\xcd\xdd\xcd\xde\xcd\xdf\xcd\xe0\xcd\xe1\xcd\xe2\xcd\xe3\xcd\xe4\xcd\xe5\xcd\xe6\xcd\xe7\xcd\xe8\xcd\xe9\xcd\xea\xcd\xeb\xcd\xec\xcd\xed\xcd\xee\xcd\xef\xcd\xf0\xcd\xf1\xcd\xf2\xcd\xf3\xcd\xf4\xcd\xf5\xcd\xf6\xcd\xf7\xcd\xf8\xcd\xf9\xcd\xfa\xcd\xfb\xcd\xfc\xcd\xfd\xce\x41\xce\x42\xce\x43\xce\x44\xce\x45\xce\x46\xce\x47\xce\x48\xce\x49\xce\x4a\xce\x4b\xce\x4c\xce\x4d\xce\x4e\xce\x4f\xce\x50\xce\x51\xce\x52\xce\x53\xce\x54\xce\x55\xce\x56\xce\x57\xce\x58\xce\x59\xce\x5a\xce\x5b\xce\x5c\xce\x5d\xce\x5e\xce\x5f\xce\x60\xce\x61\xce\x62\xce\x63\xce\x64\xce\x65\xce\x66\xce\x67\xce\x68\xce\x69\xce\x6a\xce\x6b\xce\x6c\xce\x6d\xce\x6e\xce\x6f\xce\x70", /* e900 */ "\xce\x71\xce\x72\xce\x73\xce\x74\xce\x75\xce\x76\xce\x77\xce\x78\xce\x79\xce\x7a\xce\x7b\xce\x7c\xce\x7d\xce\x7e\xce\x7f\xce\x81\xce\x82\xce\x83\xce\x84\xce\x85\xce\x86\xce\x87\xce\x88\xce\x89\xce\x8a\xce\x8b\xce\x8c\xce\x8d\xce\x8e\xce\x8f\xce\x90\xce\x91\xce\x92\xce\x93\xce\x94\xce\x95\xce\x96\xce\x97\xce\x98\xce\x99\xce\x9a\xce\x9b\xce\x9c\xce\x9d\xce\x9e\xce\x9f\xce\xa0\xce\xa1\xce\xa2\xce\xa3\xce\xa4\xce\xa5\xce\xa6\xce\xa7\xce\xa8\xce\xa9\xce\xaa\xce\xab\xce\xac\xce\xad\xce\xae\xce\xaf\xce\xb0\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xce\xb5\xce\xb6\xce\xb7\xce\xb8\xce\xb9\xce\xba\xce\xbb\xce\xbc\xce\xbd\xce\xbe\xce\xbf\xce\xc0\xce\xc1\xce\xc2\xce\xc3\xce\xc4\xce\xc5\xce\xc6\xce\xc7\xce\xc8\xce\xc9\xce\xca\xce\xcb\xce\xcc\xce\xcd\xce\xce\xce\xcf\xce\xd0\xce\xd1\xce\xd2\xce\xd3\xce\xd4\xce\xd5\xce\xd6\xce\xd7\xce\xd8\xce\xd9\xce\xda\xce\xdb\xce\xdc\xce\xdd\xce\xde\xce\xdf\xce\xe0\xce\xe1\xce\xe2\xce\xe3\xce\xe4\xce\xe5\xce\xe6\xce\xe7\xce\xe8\xce\xe9\xce\xea\xce\xeb\xce\xec\xce\xed\xce\xee\xce\xef\xce\xf0\xce\xf1", /* e980 */ "\xce\xf2\xce\xf3\xce\xf4\xce\xf5\xce\xf6\xce\xf7\xce\xf8\xce\xf9\xce\xfa\xce\xfb\xce\xfc\xce\xfd\xcf\x41\xcf\x42\xcf\x43\xcf\x44\xcf\x45\xcf\x46\xcf\x47\xcf\x48\xcf\x49\xcf\x4a\xcf\x4b\xcf\x4c\xcf\x4d\xcf\x4e\xcf\x4f\xcf\x50\xcf\x51\xcf\x52\xcf\x53\xcf\x54\xcf\x55\xcf\x56\xcf\x57\xcf\x58\xcf\x59\xcf\x5a\xcf\x5b\xcf\x5c\xcf\x5d\xcf\x5e\xcf\x5f\xcf\x60\xcf\x61\xcf\x62\xcf\x63\xcf\x64\xcf\x65\xcf\x66\xcf\x67\xcf\x68\xcf\x69\xcf\x6a\xcf\x6b\xcf\x6c\xcf\x6d\xcf\x6e\xcf\x6f\xcf\x70\xcf\x71\xcf\x72\xcf\x73\xcf\x74\xcf\x75\xcf\x76\xcf\x77\xcf\x78\xcf\x79\xcf\x7a\xcf\x7b\xcf\x7c\xcf\x7d\xcf\x7e\xcf\x7f\xcf\x81\xcf\x82\xcf\x83\xcf\x84\xcf\x85\xcf\x86\xcf\x87\xcf\x88\xcf\x89\xcf\x8a\xcf\x8b\xcf\x8c\xcf\x8d\xcf\x8e\xcf\x8f\xcf\x90\xcf\x91\xcf\x92\xcf\x93\xcf\x94\xcf\x95\xcf\x96\xcf\x97\xcf\x98\xcf\x99\xcf\x9a\xcf\x9b\xcf\x9c\xcf\x9d\xcf\x9e\xcf\x9f\xcf\xa0\xcf\xa1\xcf\xa2\xcf\xa3\xcf\xa4\xcf\xa5\xcf\xa6\xcf\xa7\xcf\xa8\xcf\xa9\xcf\xaa\xcf\xab\xcf\xac\xcf\xad\xcf\xae\xcf\xaf\xcf\xb0\xcf\xb1\xcf\xb2\xcf\xb3\xcf\xb4\xcf\xb5", /* ea00 */ "\xcf\xb6\xcf\xb7\xcf\xb8\xcf\xb9\xcf\xba\xcf\xbb\xcf\xbc\xcf\xbd\xcf\xbe\xcf\xbf\xcf\xc0\xcf\xc1\xcf\xc2\xcf\xc3\xcf\xc4\xcf\xc5\xcf\xc6\xcf\xc7\xcf\xc8\xcf\xc9\xcf\xca\xcf\xcb\xcf\xcc\xcf\xcd\xcf\xce\xcf\xcf\xcf\xd0\xcf\xd1\xcf\xd2\xcf\xd3\xcf\xd4\xcf\xd5\xcf\xd6\xcf\xd7\xcf\xd8\xcf\xd9\xcf\xda\xcf\xdb\xcf\xdc\xcf\xdd\xcf\xde\xcf\xdf\xcf\xe0\xcf\xe1\xcf\xe2\xcf\xe3\xcf\xe4\xcf\xe5\xcf\xe6\xcf\xe7\xcf\xe8\xcf\xe9\xcf\xea\xcf\xeb\xcf\xec\xcf\xed\xcf\xee\xcf\xef\xcf\xf0\xcf\xf1\xcf\xf2\xcf\xf3\xcf\xf4\xcf\xf5\xcf\xf6\xcf\xf7\xcf\xf8\xcf\xf9\xcf\xfa\xcf\xfb\xcf\xfc\xcf\xfd\xd0\x41\xd0\x42\xd0\x43\xd0\x44\xd0\x45\xd0\x46\xd0\x47\xd0\x48\xd0\x49\xd0\x4a\xd0\x4b\xd0\x4c\xd0\x4d\xd0\x4e\xd0\x4f\xd0\x50\xd0\x51\xd0\x52\xd0\x53\xd0\x54\xd0\x55\xd0\x56\xd0\x57\xd0\x58\xd0\x59\xd0\x5a\xd0\x5b\xd0\x5c\xd0\x5d\xd0\x5e\xd0\x5f\xd0\x60\xd0\x61\xd0\x62\xd0\x63\xd0\x64\xd0\x65\xd0\x66\xd0\x67\xd0\x68\xd0\x69\xd0\x6a\xd0\x6b\xd0\x6c\xd0\x6d\xd0\x6e\xd0\x6f\xd0\x70\xd0\x71\xd0\x72\xd0\x73\xd0\x74\xd0\x75\xd0\x76\xd0\x77\xd0\x78", /* ea80 */ "\xd0\x79\xd0\x7a\xd0\x7b\xd0\x7c\xd0\x7d\xd0\x7e\xd0\x7f\xd0\x81\xd0\x82\xd0\x83\xd0\x84\xd0\x85\xd0\x86\xd0\x87\xd0\x88\xd0\x89\xd0\x8a\xd0\x8b\xd0\x8c\xd0\x8d\xd0\x8e\xd0\x8f\xd0\x90\xd0\x91\xd0\x92\xd0\x93\xd0\x94\xd0\x95\xd0\x96\xd0\x97\xd0\x98\xd0\x99\xd0\x9a\xd0\x9b\xd0\x9c\xd0\x9d\xd0\x9e\xd0\x9f\xd0\xa0\xd0\xa1\xd0\xa2\xd0\xa3\xd0\xa4\xd0\xa5\xd0\xa6\xd0\xa7\xd0\xa8\xd0\xa9\xd0\xaa\xd0\xab\xd0\xac\xd0\xad\xd0\xae\xd0\xaf\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5\xd0\xb6\xd0\xb7\xd0\xb8\xd0\xb9\xd0\xba\xd0\xbb\xd0\xbc\xd0\xbd\xd0\xbe\xd0\xbf\xd0\xc0\xd0\xc1\xd0\xc2\xd0\xc3\xd0\xc4\xd0\xc5\xd0\xc6\xd0\xc7\xd0\xc8\xd0\xc9\xd0\xca\xd0\xcb\xd0\xcc\xd0\xcd\xd0\xce\xd0\xcf\xd0\xd0\xd0\xd1\xd0\xd2\xd0\xd3\xd0\xd4\xd0\xd5\xd0\xd6\xd0\xd7\xd0\xd8\xd0\xd9\xd0\xda\xd0\xdb\xd0\xdc\xd0\xdd\xd0\xde\xd0\xdf\xd0\xe0\xd0\xe1\xd0\xe2\xd0\xe3\xd0\xe4\xd0\xe5\xd0\xe6\xd0\xe7\xd0\xe8\xd0\xe9\xd0\xea\xd0\xeb\xd0\xec\xd0\xed\xd0\xee\xd0\xef\xd0\xf0\xd0\xf1\xd0\xf2\xd0\xf3\xd0\xf4\xd0\xf5\xd0\xf6\xd0\xf7\xd0\xf8\xd0\xf9", /* eb00 */ "\xd0\xfa\xd0\xfb\xd0\xfc\xd0\xfd\xd1\x41\xd1\x42\xd1\x43\xd1\x44\xd1\x45\xd1\x46\xd1\x47\xd1\x48\xd1\x49\xd1\x4a\xd1\x4b\xd1\x4c\xd1\x4d\xd1\x4e\xd1\x4f\xd1\x50\xd1\x51\xd1\x52\xd1\x53\xd1\x54\xd1\x55\xd1\x56\xd1\x57\xd1\x58\xd1\x59\xd1\x5a\xd1\x5b\xd1\x5c\xd1\x5d\xd1\x5e\xd1\x5f\xd1\x60\xd1\x61\xd1\x62\xd1\x63\xd1\x64\xd1\x65\xd1\x66\xd1\x67\xd1\x68\xd1\x69\xd1\x6a\xd1\x6b\xd1\x6c\xd1\x6d\xd1\x6e\xd1\x6f\xd1\x70\xd1\x71\xd1\x72\xd1\x73\xd1\x74\xd1\x75\xd1\x76\xd1\x77\xd1\x78\xd1\x79\xd1\x7a\xd1\x7b\xd1\x7c\xd1\x7d\xd1\x7e\xd1\x7f\xd1\x81\xd1\x82\xd1\x83\xd1\x84\xd1\x85\xd1\x86\xd1\x87\xd1\x88\xd1\x89\xd1\x8a\xd1\x8b\xd1\x8c\xd1\x8d\xd1\x8e\xd1\x8f\xd1\x90\xd1\x91\xd1\x92\xd1\x93\xd1\x94\xd1\x95\xd1\x96\xd1\x97\xd1\x98\xd1\x99\xd1\x9a\xd1\x9b\xd1\x9c\xd1\x9d\xd1\x9e\xd1\x9f\xd1\xa0\xd1\xa1\xd1\xa2\xd1\xa3\xd1\xa4\xd1\xa5\xd1\xa6\xd1\xa7\xd1\xa8\xd1\xa9\xd1\xaa\xd1\xab\xd1\xac\xd1\xad\xd1\xae\xd1\xaf\xd1\xb0\xd1\xb1\xd1\xb2\xd1\xb3\xd1\xb4\xd1\xb5\xd1\xb6\xd1\xb7\xd1\xb8\xd1\xb9\xd1\xba\xd1\xbb\xd1\xbc\xd1\xbd", /* eb80 */ "\xd1\xbe\xd1\xbf\xd1\xc0\xd1\xc1\xd1\xc2\xd1\xc3\xd1\xc4\xd1\xc5\xd1\xc6\xd1\xc7\xd1\xc8\xd1\xc9\xd1\xca\xd1\xcb\xd1\xcc\xd1\xcd\xd1\xce\xd1\xcf\xd1\xd0\xd1\xd1\xd1\xd2\xd1\xd3\xd1\xd4\xd1\xd5\xd1\xd6\xd1\xd7\xd1\xd8\xd1\xd9\xd1\xda\xd1\xdb\xd1\xdc\xd1\xdd\xd1\xde\xd1\xdf\xd1\xe0\xd1\xe1\xd1\xe2\xd1\xe3\xd1\xe4\xd1\xe5\xd1\xe6\xd1\xe7\xd1\xe8\xd1\xe9\xd1\xea\xd1\xeb\xd1\xec\xd1\xed\xd1\xee\xd1\xef\xd1\xf0\xd1\xf1\xd1\xf2\xd1\xf3\xd1\xf4\xd1\xf5\xd1\xf6\xd1\xf7\xd1\xf8\xd1\xf9\xd1\xfa\xd1\xfb\xd1\xfc\xd1\xfd\xd2\x41\xd2\x42\xd2\x43\xd2\x44\xd2\x45\xd2\x46\xd2\x47\xd2\x48\xd2\x49\xd2\x4a\xd2\x4b\xd2\x4c\xd2\x4d\xd2\x4e\xd2\x4f\xd2\x50\xd2\x51\xd2\x52\xd2\x53\xd2\x54\xd2\x55\xd2\x56\xd2\x57\xd2\x58\xd2\x59\xd2\x5a\xd2\x5b\xd2\x5c\xd2\x5d\xd2\x5e\xd2\x5f\xd2\x60\xd2\x61\xd2\x62\xd2\x63\xd2\x64\xd2\x65\xd2\x66\xd2\x67\xd2\x68\xd2\x69\xd2\x6a\xd2\x6b\xd2\x6c\xd2\x6d\xd2\x6e\xd2\x6f\xd2\x70\xd2\x71\xd2\x72\xd2\x73\xd2\x74\xd2\x75\xd2\x76\xd2\x77\xd2\x78\xd2\x79\xd2\x7a\xd2\x7b\xd2\x7c\xd2\x7d\xd2\x7e\xd2\x7f\xd2\x81", /* ec00 */ "\xd2\x82\xd2\x83\xd2\x84\xd2\x85\xd2\x86\xd2\x87\xd2\x88\xd2\x89\xd2\x8a\xd2\x8b\xd2\x8c\xd2\x8d\xd2\x8e\xd2\x8f\xd2\x90\xd2\x91\xd2\x92\xd2\x93\xd2\x94\xd2\x95\xd2\x96\xd2\x97\xd2\x98\xd2\x99\xd2\x9a\xd2\x9b\xd2\x9c\xd2\x9d\xd2\x9e\xd2\x9f\xd2\xa0\xd2\xa1\xd2\xa2\xd2\xa3\xd2\xa4\xd2\xa5\xd2\xa6\xd2\xa7\xd2\xa8\xd2\xa9\xd2\xaa\xd2\xab\xd2\xac\xd2\xad\xd2\xae\xd2\xaf\xd2\xb0\xd2\xb1\xd2\xb2\xd2\xb3\xd2\xb4\xd2\xb5\xd2\xb6\xd2\xb7\xd2\xb8\xd2\xb9\xd2\xba\xd2\xbb\xd2\xbc\xd2\xbd\xd2\xbe\xd2\xbf\xd2\xc0\xd2\xc1\xd2\xc2\xd2\xc3\xd2\xc4\xd2\xc5\xd2\xc6\xd2\xc7\xd2\xc8\xd2\xc9\xd2\xca\xd2\xcb\xd2\xcc\xd2\xcd\xd2\xce\xd2\xcf\xd2\xd0\xd2\xd1\xd2\xd2\xd2\xd3\xd2\xd4\xd2\xd5\xd2\xd6\xd2\xd7\xd2\xd8\xd2\xd9\xd2\xda\xd2\xdb\xd2\xdc\xd2\xdd\xd2\xde\xd2\xdf\xd2\xe0\xd2\xe1\xd2\xe2\xd2\xe3\xd2\xe4\xd2\xe5\xd2\xe6\xd2\xe7\xd2\xe8\xd2\xe9\xd2\xea\xd2\xeb\xd2\xec\xd2\xed\xd2\xee\xd2\xef\xd2\xf0\xd2\xf1\xd2\xf2\xd2\xf3\xd2\xf4\xd2\xf5\xd2\xf6\xd2\xf7\xd2\xf8\xd2\xf9\xd2\xfa\xd2\xfb\xd2\xfc\xd2\xfd\xd3\x41\xd3\x42\xd3\x43\xd3\x44", /* ec80 */ "\xd3\x45\xd3\x46\xd3\x47\xd3\x48\xd3\x49\xd3\x4a\xd3\x4b\xd3\x4c\xd3\x4d\xd3\x4e\xd3\x4f\xd3\x50\xd3\x51\xd3\x52\xd3\x53\xd3\x54\xd3\x55\xd3\x56\xd3\x57\xd3\x58\xd3\x59\xd3\x5a\xd3\x5b\xd3\x5c\xd3\x5d\xd3\x5e\xd3\x5f\xd3\x60\xd3\x61\xd3\x62\xd3\x63\xd3\x64\xd3\x65\xd3\x66\xd3\x67\xd3\x68\xd3\x69\xd3\x6a\xd3\x6b\xd3\x6c\xd3\x6d\xd3\x6e\xd3\x6f\xd3\x70\xd3\x71\xd3\x72\xd3\x73\xd3\x74\xd3\x75\xd3\x76\xd3\x77\xd3\x78\xd3\x79\xd3\x7a\xd3\x7b\xd3\x7c\xd3\x7d\xd3\x7e\xd3\x7f\xd3\x81\xd3\x82\xd3\x83\xd3\x84\xd3\x85\xd3\x86\xd3\x87\xd3\x88\xd3\x89\xd3\x8a\xd3\x8b\xd3\x8c\xd3\x8d\xd3\x8e\xd3\x8f\xd3\x90\xd3\x91\xd3\x92\xd3\x93\xd3\x94\xd3\x95\xd3\x96\xd3\x97\xd3\x98\xd3\x99\xd3\x9a\xd3\x9b\xd3\x9c\xd3\x9d\xd3\x9e\xd3\x9f\xd3\xa0\xd3\xa1\xd3\xa2\xd3\xa3\xd3\xa4\xd3\xa5\xd3\xa6\xd3\xa7\xd3\xa8\xd3\xa9\xd3\xaa\xd3\xab\xd3\xac\xd3\xad\xd3\xae\xd3\xaf\xd3\xb0\xd3\xb1\xd3\xb2\xd3\xb3\xd3\xb4\xd3\xb5\xd3\xb6\xd3\xb7\xd3\xb8\xd3\xb9\xd3\xba\xd3\xbb\xd3\xbc\xd3\xbd\xd3\xbe\xd3\xbf\xd3\xc0\xd3\xc1\xd3\xc2\xd3\xc3\xd3\xc4\xd3\xc5", /* ed00 */ "\xd3\xc6\xd3\xc7\xd3\xc8\xd3\xc9\xd3\xca\xd3\xcb\xd3\xcc\xd3\xcd\xd3\xce\xd3\xcf\xd3\xd0\xd3\xd1\xd3\xd2\xd3\xd3\xd3\xd4\xd3\xd5\xd3\xd6\xd3\xd7\xd3\xd8\xd3\xd9\xd3\xda\xd3\xdb\xd3\xdc\xd3\xdd\xd3\xde\xd3\xdf\xd3\xe0\xd3\xe1\xd3\xe2\xd3\xe3\xd3\xe4\xd3\xe5\xd3\xe6\xd3\xe7\xd3\xe8\xd3\xe9\xd3\xea\xd3\xeb\xd3\xec\xd3\xed\xd3\xee\xd3\xef\xd3\xf0\xd3\xf1\xd3\xf2\xd3\xf3\xd3\xf4\xd3\xf5\xd3\xf6\xd3\xf7\xd3\xf8\xd3\xf9\xd3\xfa\xd3\xfb\xd3\xfc\xd3\xfd\xd4\x41\xd4\x42\xd4\x43\xd4\x44\xd4\x45\xd4\x46\xd4\x47\xd4\x48\xd4\x49\xd4\x4a\xd4\x4b\xd4\x4c\xd4\x4d\xd4\x4e\xd4\x4f\xd4\x50\xd4\x51\xd4\x52\xd4\x53\xd4\x54\xd4\x55\xd4\x56\xd4\x57\xd4\x58\xd4\x59\xd4\x5a\xd4\x5b\xd4\x5c\xd4\x5d\xd4\x5e\xd4\x5f\xd4\x60\xd4\x61\xd4\x62\xd4\x63\xd4\x64\xd4\x65\xd4\x66\xd4\x67\xd4\x68\xd4\x69\xd4\x6a\xd4\x6b\xd4\x6c\xd4\x6d\xd4\x6e\xd4\x6f\xd4\x70\xd4\x71\xd4\x72\xd4\x73\xd4\x74\xd4\x75\xd4\x76\xd4\x77\xd4\x78\xd4\x79\xd4\x7a\xd4\x7b\xd4\x7c\xd4\x7d\xd4\x7e\xd4\x7f\xd4\x81\xd4\x82\xd4\x83\xd4\x84\xd4\x85\xd4\x86\xd4\x87\xd4\x88\xd4\x89", /* ed80 */ "\xd4\x8a\xd4\x8b\xd4\x8c\xd4\x8d\xd4\x8e\xd4\x8f\xd4\x90\xd4\x91\xd4\x92\xd4\x93\xd4\x94\xd4\x95\xd4\x96\xd4\x97\xd4\x98\xd4\x99\xd4\x9a\xd4\x9b\xd4\x9c\xd4\x9d\xd4\x9e\xd4\x9f\xd4\xa0\xd4\xa1\xd4\xa2\xd4\xa3\xd4\xa4\xd4\xa5\xd4\xa6\xd4\xa7\xd4\xa8\xd4\xa9\xd4\xaa\xd4\xab\xd4\xac\xd4\xad\xd4\xae\xd4\xaf\xd4\xb0\xd4\xb1\xd4\xb2\xd4\xb3\xd4\xb4\xd4\xb5\xd4\xb6\xd4\xb7\xd4\xb8\xd4\xb9\xd4\xba\xd4\xbb\xd4\xbc\xd4\xbd\xd4\xbe\xd4\xbf\xd4\xc0\xd4\xc1\xd4\xc2\xd4\xc3\xd4\xc4\xd4\xc5\xd4\xc6\xd4\xc7\xd4\xc8\xd4\xc9\xd4\xca\xd4\xcb\xd4\xcc\xd4\xcd\xd4\xce\xd4\xcf\xd4\xd0\xd4\xd1\xd4\xd2\xd4\xd3\xd4\xd4\xd4\xd5\xd4\xd6\xd4\xd7\xd4\xd8\xd4\xd9\xd4\xda\xd4\xdb\xd4\xdc\xd4\xdd\xd4\xde\xd4\xdf\xd4\xe0\xd4\xe1\xd4\xe2\xd4\xe3\xd4\xe4\xd4\xe5\xd4\xe6\xd4\xe7\xd4\xe8\xd4\xe9\xd4\xea\xd4\xeb\xd4\xec\xd4\xed\xd4\xee\xd4\xef\xd4\xf0\xd4\xf1\xd4\xf2\xd4\xf3\xd4\xf4\xd4\xf5\xd4\xf6\xd4\xf7\xd4\xf8\xd4\xf9\xd4\xfa\xd4\xfb\xd4\xfc\xd4\xfd\xd5\x41\xd5\x42\xd5\x43\xd5\x44\xd5\x45\xd5\x46\xd5\x47\xd5\x48\xd5\x49\xd5\x4a\xd5\x4b\xd5\x4c", /* ee00 */ "\xd5\x4d\xd5\x4e\xd5\x4f\xd5\x50\xd5\x51\xd5\x52\xd5\x53\xd5\x54\xd5\x55\xd5\x56\xd5\x57\xd5\x58\xd5\x59\xd5\x5a\xd5\x5b\xd5\x5c\xd5\x5d\xd5\x5e\xd5\x5f\xd5\x60\xd5\x61\xd5\x62\xd5\x63\xd5\x64\xd5\x65\xd5\x66\xd5\x67\xd5\x68\xd5\x69\xd5\x6a\xd5\x6b\xd5\x6c\xd5\x6d\xd5\x6e\xd5\x6f\xd5\x70\xd5\x71\xd5\x72\xd5\x73\xd5\x74\xd5\x75\xd5\x76\xd5\x77\xd5\x78\xd5\x79\xd5\x7a\xd5\x7b\xd5\x7c\xd5\x7d\xd5\x7e\xd5\x7f\xd5\x81\xd5\x82\xd5\x83\xd5\x84\xd5\x85\xd5\x86\xd5\x87\xd5\x88\xd5\x89\xd5\x8a\xd5\x8b\xd5\x8c\xd5\x8d\xd5\x8e\xd5\x8f\xd5\x90\xd5\x91\xd5\x92\xd5\x93\xd5\x94\xd5\x95\xd5\x96\xd5\x97\xd5\x98\xd5\x99\xd5\x9a\xd5\x9b\xd5\x9c\xd5\x9d\xd5\x9e\xd5\x9f\xd5\xa0\xd5\xa1\xd5\xa2\xd5\xa3\xd5\xa4\xd5\xa5\xd5\xa6\xd5\xa7\xd5\xa8\xd5\xa9\xd5\xaa\xd5\xab\xd5\xac\xd5\xad\xd5\xae\xd5\xaf\xd5\xb0\xd5\xb1\xd5\xb2\xd5\xb3\xd5\xb4\xd5\xb5\xd5\xb6\xd5\xb7\xd5\xb8\xd5\xb9\xd5\xba\xd5\xbb\xd5\xbc\xd5\xbd\xd5\xbe\xd5\xbf\xd5\xc0\xd5\xc1\xd5\xc2\xd5\xc3\xd5\xc4\xd5\xc5\xd5\xc6\xd5\xc7\xd5\xc8\xd5\xc9\xd5\xca\xd5\xcb\xd5\xcc\xd5\xcd", /* ee80 */ "\xd5\xce\xd5\xcf\xd5\xd0\xd5\xd1\xd5\xd2\xd5\xd3\xd5\xd4\xd5\xd5\xd5\xd6\xd5\xd7\xd5\xd8\xd5\xd9\xd5\xda\xd5\xdb\xd5\xdc\xd5\xdd\xd5\xde\xd5\xdf\xd5\xe0\xd5\xe1\xd5\xe2\xd5\xe3\xd5\xe4\xd5\xe5\xd5\xe6\xd5\xe7\xd5\xe8\xd5\xe9\xd5\xea\xd5\xeb\xd5\xec\xd5\xed\xd5\xee\xd5\xef\xd5\xf0\xd5\xf1\xd5\xf2\xd5\xf3\xd5\xf4\xd5\xf5\xd5\xf6\xd5\xf7\xd5\xf8\xd5\xf9\xd5\xfa\xd5\xfb\xd5\xfc\xd5\xfd\xd6\x41\xd6\x42\xd6\x43\xd6\x44\xd6\x45\xd6\x46\xd6\x47\xd6\x48\xd6\x49\xd6\x4a\xd6\x4b\xd6\x4c\xd6\x4d\xd6\x4e\xd6\x4f\xd6\x50\xd6\x51\xd6\x52\xd6\x53\xd6\x54\xd6\x55\xd6\x56\xd6\x57\xd6\x58\xd6\x59\xd6\x5a\xd6\x5b\xd6\x5c\xd6\x5d\xd6\x5e\xd6\x5f\xd6\x60\xd6\x61\xd6\x62\xd6\x63\xd6\x64\xd6\x65\xd6\x66\xd6\x67\xd6\x68\xd6\x69\xd6\x6a\xd6\x6b\xd6\x6c\xd6\x6d\xd6\x6e\xd6\x6f\xd6\x70\xd6\x71\xd6\x72\xd6\x73\xd6\x74\xd6\x75\xd6\x76\xd6\x77\xd6\x78\xd6\x79\xd6\x7a\xd6\x7b\xd6\x7c\xd6\x7d\xd6\x7e\xd6\x7f\xd6\x81\xd6\x82\xd6\x83\xd6\x84\xd6\x85\xd6\x86\xd6\x87\xd6\x88\xd6\x89\xd6\x8a\xd6\x8b\xd6\x8c\xd6\x8d\xd6\x8e\xd6\x8f\xd6\x90\xd6\x91", /* ef00 */ "\xd6\x92\xd6\x93\xd6\x94\xd6\x95\xd6\x96\xd6\x97\xd6\x98\xd6\x99\xd6\x9a\xd6\x9b\xd6\x9c\xd6\x9d\xd6\x9e\xd6\x9f\xd6\xa0\xd6\xa1\xd6\xa2\xd6\xa3\xd6\xa4\xd6\xa5\xd6\xa6\xd6\xa7\xd6\xa8\xd6\xa9\xd6\xaa\xd6\xab\xd6\xac\xd6\xad\xd6\xae\xd6\xaf\xd6\xb0\xd6\xb1\xd6\xb2\xd6\xb3\xd6\xb4\xd6\xb5\xd6\xb6\xd6\xb7\xd6\xb8\xd6\xb9\xd6\xba\xd6\xbb\xd6\xbc\xd6\xbd\xd6\xbe\xd6\xbf\xd6\xc0\xd6\xc1\xd6\xc2\xd6\xc3\xd6\xc4\xd6\xc5\xd6\xc6\xd6\xc7\xd6\xc8\xd6\xc9\xd6\xca\xd6\xcb\xd6\xcc\xd6\xcd\xd6\xce\xd6\xcf\xd6\xd0\xd6\xd1\xd6\xd2\xd6\xd3\xd6\xd4\xd6\xd5\xd6\xd6\xd6\xd7\xd6\xd8\xd6\xd9\xd6\xda\xd6\xdb\xd6\xdc\xd6\xdd\xd6\xde\xd6\xdf\xd6\xe0\xd6\xe1\xd6\xe2\xd6\xe3\xd6\xe4\xd6\xe5\xd6\xe6\xd6\xe7\xd6\xe8\xd6\xe9\xd6\xea\xd6\xeb\xd6\xec\xd6\xed\xd6\xee\xd6\xef\xd6\xf0\xd6\xf1\xd6\xf2\xd6\xf3\xd6\xf4\xd6\xf5\xd6\xf6\xd6\xf7\xd6\xf8\xd6\xf9\xd6\xfa\xd6\xfb\xd6\xfc\xd6\xfd\xd7\x41\xd7\x42\xd7\x43\xd7\x44\xd7\x45\xd7\x46\xd7\x47\xd7\x48\xd7\x49\xd7\x4a\xd7\x4b\xd7\x4c\xd7\x4d\xd7\x4e\xd7\x4f\xd7\x50\xd7\x51\xd7\x52\xd7\x53\xd7\x54", /* ef80 */ "\xd7\x55\xd7\x56\xd7\x57\xd7\x58\xd7\x59\xd7\x5a\xd7\x5b\xd7\x5c\xd7\x5d\xd7\x5e\xd7\x5f\xd7\x60\xd7\x61\xd7\x62\xd7\x63\xd7\x64\xd7\x65\xd7\x66\xd7\x67\xd7\x68\xd7\x69\xd7\x6a\xd7\x6b\xd7\x6c\xd7\x6d\xd7\x6e\xd7\x6f\xd7\x70\xd7\x71\xd7\x72\xd7\x73\xd7\x74\xd7\x75\xd7\x76\xd7\x77\xd7\x78\xd7\x79\xd7\x7a\xd7\x7b\xd7\x7c\xd7\x7d\xd7\x7e\xd7\x7f\xd7\x81\xd7\x82\xd7\x83\xd7\x84\xd7\x85\xd7\x86\xd7\x87\xd7\x88\xd7\x89\xd7\x8a\xd7\x8b\xd7\x8c\xd7\x8d\xd7\x8e\xd7\x8f\xd7\x90\xd7\x91\xd7\x92\xd7\x93\xd7\x94\xd7\x95\xd7\x96\xd7\x97\xd7\x98\xd7\x99\xd7\x9a\xd7\x9b\xd7\x9c\xd7\x9d\xd7\x9e\xd7\x9f\xd7\xa0\xd7\xa1\xd7\xa2\xd7\xa3\xd7\xa4\xd7\xa5\xd7\xa6\xd7\xa7\xd7\xa8\xd7\xa9\xd7\xaa\xd7\xab\xd7\xac\xd7\xad\xd7\xae\xd7\xaf\xd7\xb0\xd7\xb1\xd7\xb2\xd7\xb3\xd7\xb4\xd7\xb5\xd7\xb6\xd7\xb7\xd7\xb8\xd7\xb9\xd7\xba\xd7\xbb\xd7\xbc\xd7\xbd\xd7\xbe\xd7\xbf\xd7\xc0\xd7\xc1\xd7\xc2\xd7\xc3\xd7\xc4\xd7\xc5\xd7\xc6\xd7\xc7\xd7\xc8\xd7\xc9\xd7\xca\xd7\xcb\xd7\xcc\xd7\xcd\xd7\xce\xd7\xcf\xd7\xd0\xd7\xd1\xd7\xd2\xd7\xd3\xd7\xd4\xd7\xd5", /* f000 */ "\xd7\xd6\xd7\xd7\xd7\xd8\xd7\xd9\xd7\xda\xd7\xdb\xd7\xdc\xd7\xdd\xd7\xde\xd7\xdf\xd7\xe0\xd7\xe1\xd7\xe2\xd7\xe3\xd7\xe4\xd7\xe5\xd7\xe6\xd7\xe7\xd7\xe8\xd7\xe9\xd7\xea\xd7\xeb\xd7\xec\xd7\xed\xd7\xee\xd7\xef\xd7\xf0\xd7\xf1\xd7\xf2\xd7\xf3\xd7\xf4\xd7\xf5\xd7\xf6\xd7\xf7\xd7\xf8\xd7\xf9\xd7\xfa\xd7\xfb\xd7\xfc\xd7\xfd\xd8\x41\xd8\x42\xd8\x43\xd8\x44\xd8\x45\xd8\x46\xd8\x47\xd8\x48\xd8\x49\xd8\x4a\xd8\x4b\xd8\x4c\xd8\x4d\xd8\x4e\xd8\x4f\xd8\x50\xd8\x51\xd8\x52\xd8\x53\xd8\x54\xd8\x55\xd8\x56\xd8\x57\xd8\x58\xd8\x59\xd8\x5a\xd8\x5b\xd8\x5c\xd8\x5d\xd8\x5e\xd8\x5f\xd8\x60\xd8\x61\xd8\x62\xd8\x63\xd8\x64\xd8\x65\xd8\x66\xd8\x67\xd8\x68\xd8\x69\xd8\x6a\xd8\x6b\xd8\x6c\xd8\x6d\xd8\x6e\xd8\x6f\xd8\x70\xd8\x71\xd8\x72\xd8\x73\xd8\x74\xd8\x75\xd8\x76\xd8\x77\xd8\x78\xd8\x79\xd8\x7a\xd8\x7b\xd8\x7c\xd8\x7d\xd8\x7e\xd8\x7f\xd8\x81\xd8\x82\xd8\x83\xd8\x84\xd8\x85\xd8\x86\xd8\x87\xd8\x88\xd8\x89\xd8\x8a\xd8\x8b\xd8\x8c\xd8\x8d\xd8\x8e\xd8\x8f\xd8\x90\xd8\x91\xd8\x92\xd8\x93\xd8\x94\xd8\x95\xd8\x96\xd8\x97\xd8\x98\xd8\x99", /* f080 */ "\xd8\x9a\xd8\x9b\xd8\x9c\xd8\x9d\xd8\x9e\xd8\x9f\xd8\xa0\xd8\xa1\xd8\xa2\xd8\xa3\xd8\xa4\xd8\xa5\xd8\xa6\xd8\xa7\xd8\xa8\xd8\xa9\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae\xd8\xaf\xd8\xb0\xd8\xb1\xd8\xb2\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba\xd8\xbb\xd8\xbc\xd8\xbd\xd8\xbe\xd8\xbf\xd8\xc0\xd8\xc1\xd8\xc2\xd8\xc3\xd8\xc4\xd8\xc5\xd8\xc6\xd8\xc7\xd8\xc8\xd8\xc9\xd8\xca\xd8\xcb\xd8\xcc\xd8\xcd\xd8\xce\xd8\xcf\xd8\xd0\xd8\xd1\xd8\xd2\xd8\xd3\xd8\xd4\xd8\xd5\xd8\xd6\xd8\xd7\xd8\xd8\xd8\xd9\xd8\xda\xd8\xdb\xd8\xdc\xd8\xdd\xd8\xde\xd8\xdf\xd8\xe0\xd8\xe1\xd8\xe2\xd8\xe3\xd8\xe4\xd8\xe5\xd8\xe6\xd8\xe7\xd8\xe8\xd8\xe9\xd8\xea\xd8\xeb\xd8\xec\xd8\xed\xd8\xee\xd8\xef\xd8\xf0\xd8\xf1\xd8\xf2\xd8\xf3\xd8\xf4\xd8\xf5\xd8\xf6\xd8\xf7\xd8\xf8\xd8\xf9\xd8\xfa\xd8\xfb\xd8\xfc\xd8\xfd\xd9\x41\xd9\x42\xd9\x43\xd9\x44\xd9\x45\xd9\x46\xd9\x47\xd9\x48\xd9\x49\xd9\x4a\xd9\x4b\xd9\x4c\xd9\x4d\xd9\x4e\xd9\x4f\xd9\x50\xd9\x51\xd9\x52\xd9\x53\xd9\x54\xd9\x55\xd9\x56\xd9\x57\xd9\x58\xd9\x59\xd9\x5a\xd9\x5b\xd9\x5c", /* f100 */ "\xd9\x5d\xd9\x5e\xd9\x5f\xd9\x60\xd9\x61\xd9\x62\xd9\x63\xd9\x64\xd9\x65\xd9\x66\xd9\x67\xd9\x68\xd9\x69\xd9\x6a\xd9\x6b\xd9\x6c\xd9\x6d\xd9\x6e\xd9\x6f\xd9\x70\xd9\x71\xd9\x72\xd9\x73\xd9\x74\xd9\x75\xd9\x76\xd9\x77\xd9\x78\xd9\x79\xd9\x7a\xd9\x7b\xd9\x7c\xd9\x7d\xd9\x7e\xd9\x7f\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x88\xd9\x89\xd9\x8a\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f\xd9\x90\xd9\x91\xd9\x92\xd9\x93\xd9\x94\xd9\x95\xd9\x96\xd9\x97\xd9\x98\xd9\x99\xd9\x9a\xd9\x9b\xd9\x9c\xd9\x9d\xd9\x9e\xd9\x9f\xd9\xa0\xd9\xa1\xd9\xa2\xd9\xa3\xd9\xa4\xd9\xa5\xd9\xa6\xd9\xa7\xd9\xa8\xd9\xa9\xd9\xaa\xd9\xab\xd9\xac\xd9\xad\xd9\xae\xd9\xaf\xd9\xb0\xd9\xb1\xd9\xb2\xd9\xb3\xd9\xb4\xd9\xb5\xd9\xb6\xd9\xb7\xd9\xb8\xd9\xb9\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf\xd9\xc0\xd9\xc1\xd9\xc2\xd9\xc3\xd9\xc4\xd9\xc5\xd9\xc6\xd9\xc7\xd9\xc8\xd9\xc9\xd9\xca\xd9\xcb\xd9\xcc\xd9\xcd\xd9\xce\xd9\xcf\xd9\xd0\xd9\xd1\xd9\xd2\xd9\xd3\xd9\xd4\xd9\xd5\xd9\xd6\xd9\xd7\xd9\xd8\xd9\xd9\xd9\xda\xd9\xdb\xd9\xdc\xd9\xdd", /* f180 */ "\xd9\xde\xd9\xdf\xd9\xe0\xd9\xe1\xd9\xe2\xd9\xe3\xd9\xe4\xd9\xe5\xd9\xe6\xd9\xe7\xd9\xe8\xd9\xe9\xd9\xea\xd9\xeb\xd9\xec\xd9\xed\xd9\xee\xd9\xef\xd9\xf0\xd9\xf1\xd9\xf2\xd9\xf3\xd9\xf4\xd9\xf5\xd9\xf6\xd9\xf7\xd9\xf8\xd9\xf9\xd9\xfa\xd9\xfb\xd9\xfc\xd9\xfd\xda\x41\xda\x42\xda\x43\xda\x44\xda\x45\xda\x46\xda\x47\xda\x48\xda\x49\xda\x4a\xda\x4b\xda\x4c\xda\x4d\xda\x4e\xda\x4f\xda\x50\xda\x51\xda\x52\xda\x53\xda\x54\xda\x55\xda\x56\xda\x57\xda\x58\xda\x59\xda\x5a\xda\x5b\xda\x5c\xda\x5d\xda\x5e\xda\x5f\xda\x60\xda\x61\xda\x62\xda\x63\xda\x64\xda\x65\xda\x66\xda\x67\xda\x68\xda\x69\xda\x6a\xda\x6b\xda\x6c\xda\x6d\xda\x6e\xda\x6f\xda\x70\xda\x71\xda\x72\xda\x73\xda\x74\xda\x75\xda\x76\xda\x77\xda\x78\xda\x79\xda\x7a\xda\x7b\xda\x7c\xda\x7d\xda\x7e\xda\x7f\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87\xda\x88\xda\x89\xda\x8a\xda\x8b\xda\x8c\xda\x8d\xda\x8e\xda\x8f\xda\x90\xda\x91\xda\x92\xda\x93\xda\x94\xda\x95\xda\x96\xda\x97\xda\x98\xda\x99\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f\xda\xa0\xda\xa1", /* f200 */ "\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8\xda\xa9\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9\xda\xba\xda\xbb\xda\xbc\xda\xbd\xda\xbe\xda\xbf\xda\xc0\xda\xc1\xda\xc2\xda\xc3\xda\xc4\xda\xc5\xda\xc6\xda\xc7\xda\xc8\xda\xc9\xda\xca\xda\xcb\xda\xcc\xda\xcd\xda\xce\xda\xcf\xda\xd0\xda\xd1\xda\xd2\xda\xd3\xda\xd4\xda\xd5\xda\xd6\xda\xd7\xda\xd8\xda\xd9\xda\xda\xda\xdb\xda\xdc\xda\xdd\xda\xde\xda\xdf\xda\xe0\xda\xe1\xda\xe2\xda\xe3\xda\xe4\xda\xe5\xda\xe6\xda\xe7\xda\xe8\xda\xe9\xda\xea\xda\xeb\xda\xec\xda\xed\xda\xee\xda\xef\xda\xf0\xda\xf1\xda\xf2\xda\xf3\xda\xf4\xda\xf5\xda\xf6\xda\xf7\xda\xf8\xda\xf9\xda\xfa\xda\xfb\xda\xfc\xda\xfd\xdb\x41\xdb\x42\xdb\x43\xdb\x44\xdb\x45\xdb\x46\xdb\x47\xdb\x48\xdb\x49\xdb\x4a\xdb\x4b\xdb\x4c\xdb\x4d\xdb\x4e\xdb\x4f\xdb\x50\xdb\x51\xdb\x52\xdb\x53\xdb\x54\xdb\x55\xdb\x56\xdb\x57\xdb\x58\xdb\x59\xdb\x5a\xdb\x5b\xdb\x5c\xdb\x5d\xdb\x5e\xdb\x5f\xdb\x60\xdb\x61\xdb\x62\xdb\x63\xdb\x64", /* f280 */ "\xdb\x65\xdb\x66\xdb\x67\xdb\x68\xdb\x69\xdb\x6a\xdb\x6b\xdb\x6c\xdb\x6d\xdb\x6e\xdb\x6f\xdb\x70\xdb\x71\xdb\x72\xdb\x73\xdb\x74\xdb\x75\xdb\x76\xdb\x77\xdb\x78\xdb\x79\xdb\x7a\xdb\x7b\xdb\x7c\xdb\x7d\xdb\x7e\xdb\x7f\xdb\x81\xdb\x82\xdb\x83\xdb\x84\xdb\x85\xdb\x86\xdb\x87\xdb\x88\xdb\x89\xdb\x8a\xdb\x8b\xdb\x8c\xdb\x8d\xdb\x8e\xdb\x8f\xdb\x90\xdb\x91\xdb\x92\xdb\x93\xdb\x94\xdb\x95\xdb\x96\xdb\x97\xdb\x98\xdb\x99\xdb\x9a\xdb\x9b\xdb\x9c\xdb\x9d\xdb\x9e\xdb\x9f\xdb\xa0\xdb\xa1\xdb\xa2\xdb\xa3\xdb\xa4\xdb\xa5\xdb\xa6\xdb\xa7\xdb\xa8\xdb\xa9\xdb\xaa\xdb\xab\xdb\xac\xdb\xad\xdb\xae\xdb\xaf\xdb\xb0\xdb\xb1\xdb\xb2\xdb\xb3\xdb\xb4\xdb\xb5\xdb\xb6\xdb\xb7\xdb\xb8\xdb\xb9\xdb\xba\xdb\xbb\xdb\xbc\xdb\xbd\xdb\xbe\xdb\xbf\xdb\xc0\xdb\xc1\xdb\xc2\xdb\xc3\xdb\xc4\xdb\xc5\xdb\xc6\xdb\xc7\xdb\xc8\xdb\xc9\xdb\xca\xdb\xcb\xdb\xcc\xdb\xcd\xdb\xce\xdb\xcf\xdb\xd0\xdb\xd1\xdb\xd2\xdb\xd3\xdb\xd4\xdb\xd5\xdb\xd6\xdb\xd7\xdb\xd8\xdb\xd9\xdb\xda\xdb\xdb\xdb\xdc\xdb\xdd\xdb\xde\xdb\xdf\xdb\xe0\xdb\xe1\xdb\xe2\xdb\xe3\xdb\xe4\xdb\xe5", /* f300 */ "\xdb\xe6\xdb\xe7\xdb\xe8\xdb\xe9\xdb\xea\xdb\xeb\xdb\xec\xdb\xed\xdb\xee\xdb\xef\xdb\xf0\xdb\xf1\xdb\xf2\xdb\xf3\xdb\xf4\xdb\xf5\xdb\xf6\xdb\xf7\xdb\xf8\xdb\xf9\xdb\xfa\xdb\xfb\xdb\xfc\xdb\xfd\xdc\x41\xdc\x42\xdc\x43\xdc\x44\xdc\x45\xdc\x46\xdc\x47\xdc\x48\xdc\x49\xdc\x4a\xdc\x4b\xdc\x4c\xdc\x4d\xdc\x4e\xdc\x4f\xdc\x50\xdc\x51\xdc\x52\xdc\x53\xdc\x54\xdc\x55\xdc\x56\xdc\x57\xdc\x58\xdc\x59\xdc\x5a\xdc\x5b\xdc\x5c\xdc\x5d\xdc\x5e\xdc\x5f\xdc\x60\xdc\x61\xdc\x62\xdc\x63\xdc\x64\xdc\x65\xdc\x66\xdc\x67\xdc\x68\xdc\x69\xdc\x6a\xdc\x6b\xdc\x6c\xdc\x6d\xdc\x6e\xdc\x6f\xdc\x70\xdc\x71\xdc\x72\xdc\x73\xdc\x74\xdc\x75\xdc\x76\xdc\x77\xdc\x78\xdc\x79\xdc\x7a\xdc\x7b\xdc\x7c\xdc\x7d\xdc\x7e\xdc\x7f\xdc\x81\xdc\x82\xdc\x83\xdc\x84\xdc\x85\xdc\x86\xdc\x87\xdc\x88\xdc\x89\xdc\x8a\xdc\x8b\xdc\x8c\xdc\x8d\xdc\x8e\xdc\x8f\xdc\x90\xdc\x91\xdc\x92\xdc\x93\xdc\x94\xdc\x95\xdc\x96\xdc\x97\xdc\x98\xdc\x99\xdc\x9a\xdc\x9b\xdc\x9c\xdc\x9d\xdc\x9e\xdc\x9f\xdc\xa0\xdc\xa1\xdc\xa2\xdc\xa3\xdc\xa4\xdc\xa5\xdc\xa6\xdc\xa7\xdc\xa8\xdc\xa9", /* f380 */ "\xdc\xaa\xdc\xab\xdc\xac\xdc\xad\xdc\xae\xdc\xaf\xdc\xb0\xdc\xb1\xdc\xb2\xdc\xb3\xdc\xb4\xdc\xb5\xdc\xb6\xdc\xb7\xdc\xb8\xdc\xb9\xdc\xba\xdc\xbb\xdc\xbc\xdc\xbd\xdc\xbe\xdc\xbf\xdc\xc0\xdc\xc1\xdc\xc2\xdc\xc3\xdc\xc4\xdc\xc5\xdc\xc6\xdc\xc7\xdc\xc8\xdc\xc9\xdc\xca\xdc\xcb\xdc\xcc\xdc\xcd\xdc\xce\xdc\xcf\xdc\xd0\xdc\xd1\xdc\xd2\xdc\xd3\xdc\xd4\xdc\xd5\xdc\xd6\xdc\xd7\xdc\xd8\xdc\xd9\xdc\xda\xdc\xdb\xdc\xdc\xdc\xdd\xdc\xde\xdc\xdf\xdc\xe0\xdc\xe1\xdc\xe2\xdc\xe3\xdc\xe4\xdc\xe5\xdc\xe6\xdc\xe7\xdc\xe8\xdc\xe9\xdc\xea\xdc\xeb\xdc\xec\xdc\xed\xdc\xee\xdc\xef\xdc\xf0\xdc\xf1\xdc\xf2\xdc\xf3\xdc\xf4\xdc\xf5\xdc\xf6\xdc\xf7\xdc\xf8\xdc\xf9\xdc\xfa\xdc\xfb\xdc\xfc\xdc\xfd\xdd\x41\xdd\x42\xdd\x43\xdd\x44\xdd\x45\xdd\x46\xdd\x47\xdd\x48\xdd\x49\xdd\x4a\xdd\x4b\xdd\x4c\xdd\x4d\xdd\x4e\xdd\x4f\xdd\x50\xdd\x51\xdd\x52\xdd\x53\xdd\x54\xdd\x55\xdd\x56\xdd\x57\xdd\x58\xdd\x59\xdd\x5a\xdd\x5b\xdd\x5c\xdd\x5d\xdd\x5e\xdd\x5f\xdd\x60\xdd\x61\xdd\x62\xdd\x63\xdd\x64\xdd\x65\xdd\x66\xdd\x67\xdd\x68\xdd\x69\xdd\x6a\xdd\x6b\xdd\x6c", /* f400 */ "\xdd\x6d\xdd\x6e\xdd\x6f\xdd\x70\xdd\x71\xdd\x72\xdd\x73\xdd\x74\xdd\x75\xdd\x76\xdd\x77\xdd\x78\xdd\x79\xdd\x7a\xdd\x7b\xdd\x7c\xdd\x7d\xdd\x7e\xdd\x7f\xdd\x81\xdd\x82\xdd\x83\xdd\x84\xdd\x85\xdd\x86\xdd\x87\xdd\x88\xdd\x89\xdd\x8a\xdd\x8b\xdd\x8c\xdd\x8d\xdd\x8e\xdd\x8f\xdd\x90\xdd\x91\xdd\x92\xdd\x93\xdd\x94\xdd\x95\xdd\x96\xdd\x97\xdd\x98\xdd\x99\xdd\x9a\xdd\x9b\xdd\x9c\xdd\x9d\xdd\x9e\xdd\x9f\xdd\xa0\xdd\xa1\xdd\xa2\xdd\xa3\xdd\xa4\xdd\xa5\xdd\xa6\xdd\xa7\xdd\xa8\xdd\xa9\xdd\xaa\xdd\xab\xdd\xac\xdd\xad\xdd\xae\xdd\xaf\xdd\xb0\xdd\xb1\xdd\xb2\xdd\xb3\xdd\xb4\xdd\xb5\xdd\xb6\xdd\xb7\xdd\xb8\xdd\xb9\xdd\xba\xdd\xbb\xdd\xbc\xdd\xbd\xdd\xbe\xdd\xbf\xdd\xc0\xdd\xc1\xdd\xc2\xdd\xc3\xdd\xc4\xdd\xc5\xdd\xc6\xdd\xc7\xdd\xc8\xdd\xc9\xdd\xca\xdd\xcb\xdd\xcc\xdd\xcd\xdd\xce\xdd\xcf\xdd\xd0\xdd\xd1\xdd\xd2\xdd\xd3\xdd\xd4\xdd\xd5\xdd\xd6\xdd\xd7\xdd\xd8\xdd\xd9\xdd\xda\xdd\xdb\xdd\xdc\xdd\xdd\xdd\xde\xdd\xdf\xdd\xe0\xdd\xe1\xdd\xe2\xdd\xe3\xdd\xe4\xdd\xe5\xdd\xe6\xdd\xe7\xdd\xe8\xdd\xe9\xdd\xea\xdd\xeb\xdd\xec\xdd\xed", /* f480 */ "\xdd\xee\xdd\xef\xdd\xf0\xdd\xf1\xdd\xf2\xdd\xf3\xdd\xf4\xdd\xf5\xdd\xf6\xdd\xf7\xdd\xf8\xdd\xf9\xdd\xfa\xdd\xfb\xdd\xfc\xdd\xfd\xde\x41\xde\x42\xde\x43\xde\x44\xde\x45\xde\x46\xde\x47\xde\x48\xde\x49\xde\x4a\xde\x4b\xde\x4c\xde\x4d\xde\x4e\xde\x4f\xde\x50\xde\x51\xde\x52\xde\x53\xde\x54\xde\x55\xde\x56\xde\x57\xde\x58\xde\x59\xde\x5a\xde\x5b\xde\x5c\xde\x5d\xde\x5e\xde\x5f\xde\x60\xde\x61\xde\x62\xde\x63\xde\x64\xde\x65\xde\x66\xde\x67\xde\x68\xde\x69\xde\x6a\xde\x6b\xde\x6c\xde\x6d\xde\x6e\xde\x6f\xde\x70\xde\x71\xde\x72\xde\x73\xde\x74\xde\x75\xde\x76\xde\x77\xde\x78\xde\x79\xde\x7a\xde\x7b\xde\x7c\xde\x7d\xde\x7e\xde\x7f\xde\x81\xde\x82\xde\x83\xde\x84\xde\x85\xde\x86\xde\x87\xde\x88\xde\x89\xde\x8a\xde\x8b\xde\x8c\xde\x8d\xde\x8e\xde\x8f\xde\x90\xde\x91\xde\x92\xde\x93\xde\x94\xde\x95\xde\x96\xde\x97\xde\x98\xde\x99\xde\x9a\xde\x9b\xde\x9c\xde\x9d\xde\x9e\xde\x9f\xde\xa0\xde\xa1\xde\xa2\xde\xa3\xde\xa4\xde\xa5\xde\xa6\xde\xa7\xde\xa8\xde\xa9\xde\xaa\xde\xab\xde\xac\xde\xad\xde\xae\xde\xaf\xde\xb0\xde\xb1", /* f500 */ "\xde\xb2\xde\xb3\xde\xb4\xde\xb5\xde\xb6\xde\xb7\xde\xb8\xde\xb9\xde\xba\xde\xbb\xde\xbc\xde\xbd\xde\xbe\xde\xbf\xde\xc0\xde\xc1\xde\xc2\xde\xc3\xde\xc4\xde\xc5\xde\xc6\xde\xc7\xde\xc8\xde\xc9\xde\xca\xde\xcb\xde\xcc\xde\xcd\xde\xce\xde\xcf\xde\xd0\xde\xd1\xde\xd2\xde\xd3\xde\xd4\xde\xd5\xde\xd6\xde\xd7\xde\xd8\xde\xd9\xde\xda\xde\xdb\xde\xdc\xde\xdd\xde\xde\xde\xdf\xde\xe0\xde\xe1\xde\xe2\xde\xe3\xde\xe4\xde\xe5\xde\xe6\xde\xe7\xde\xe8\xde\xe9\xde\xea\xde\xeb\xde\xec\xde\xed\xde\xee\xde\xef\xde\xf0\xde\xf1\xde\xf2\xde\xf3\xde\xf4\xde\xf5\xde\xf6\xde\xf7\xde\xf8\xde\xf9\xde\xfa\xde\xfb\xde\xfc\xde\xfd\xdf\x41\xdf\x42\xdf\x43\xdf\x44\xdf\x45\xdf\x46\xdf\x47\xdf\x48\xdf\x49\xdf\x4a\xdf\x4b\xdf\x4c\xdf\x4d\xdf\x4e\xdf\x4f\xdf\x50\xdf\x51\xdf\x52\xdf\x53\xdf\x54\xdf\x55\xdf\x56\xdf\x57\xdf\x58\xdf\x59\xdf\x5a\xdf\x5b\xdf\x5c\xdf\x5d\xdf\x5e\xdf\x5f\xdf\x60\xdf\x61\xdf\x62\xdf\x63\xdf\x64\xdf\x65\xdf\x66\xdf\x67\xdf\x68\xdf\x69\xdf\x6a\xdf\x6b\xdf\x6c\xdf\x6d\xdf\x6e\xdf\x6f\xdf\x70\xdf\x71\xdf\x72\xdf\x73\xdf\x74", /* f580 */ "\xdf\x75\xdf\x76\xdf\x77\xdf\x78\xdf\x79\xdf\x7a\xdf\x7b\xdf\x7c\xdf\x7d\xdf\x7e\xdf\x7f\xdf\x81\xdf\x82\xdf\x83\xdf\x84\xdf\x85\xdf\x86\xdf\x87\xdf\x88\xdf\x89\xdf\x8a\xdf\x8b\xdf\x8c\xdf\x8d\xdf\x8e\xdf\x8f\xdf\x90\xdf\x91\xdf\x92\xdf\x93\xdf\x94\xdf\x95\xdf\x96\xdf\x97\xdf\x98\xdf\x99\xdf\x9a\xdf\x9b\xdf\x9c\xdf\x9d\xdf\x9e\xdf\x9f\xdf\xa0\xdf\xa1\xdf\xa2\xdf\xa3\xdf\xa4\xdf\xa5\xdf\xa6\xdf\xa7\xdf\xa8\xdf\xa9\xdf\xaa\xdf\xab\xdf\xac\xdf\xad\xdf\xae\xdf\xaf\xdf\xb0\xdf\xb1\xdf\xb2\xdf\xb3\xdf\xb4\xdf\xb5\xdf\xb6\xdf\xb7\xdf\xb8\xdf\xb9\xdf\xba\xdf\xbb\xdf\xbc\xdf\xbd\xdf\xbe\xdf\xbf\xdf\xc0\xdf\xc1\xdf\xc2\xdf\xc3\xdf\xc4\xdf\xc5\xdf\xc6\xdf\xc7\xdf\xc8\xdf\xc9\xdf\xca\xdf\xcb\xdf\xcc\xdf\xcd\xdf\xce\xdf\xcf\xdf\xd0\xdf\xd1\xdf\xd2\xdf\xd3\xdf\xd4\xdf\xd5\xdf\xd6\xdf\xd7\xdf\xd8\xdf\xd9\xdf\xda\xdf\xdb\xdf\xdc\xdf\xdd\xdf\xde\xdf\xdf\xdf\xe0\xdf\xe1\xdf\xe2\xdf\xe3\xdf\xe4\xdf\xe5\xdf\xe6\xdf\xe7\xdf\xe8\xdf\xe9\xdf\xea\xdf\xeb\xdf\xec\xdf\xed\xdf\xee\xdf\xef\xdf\xf0\xdf\xf1\xdf\xf2\xdf\xf3\xdf\xf4\xdf\xf5", /* f600 */ "\xdf\xf6\xdf\xf7\xdf\xf8\xdf\xf9\xdf\xfa\xdf\xfb\xdf\xfc\xdf\xfd\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9", /* f680 */ "\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc\xe0\xfd\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c", /* f700 */ "\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd", /* f780 */ "\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1", /* f800 */ "\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\x00\x00\x00\x00\x44\x5c\x46\xa8\x46\xa9\x46\xaa\x46\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4b\x7a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x41\x46\xa7\x47\x49\x46\xb6\x46\xbc\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xa4\x46\xa5\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xa0\x46\xa1\x46\xa2\x46\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x46\xbe\x46\xbf\x46\xc2\x46\xc3\x46\xc0\x46\xc1\x46\xbd\x47\x42\x47\x43\x47\x44\x00\x00\x47\x45\x47\x46\x47\x47\x47\x48\x47\x4a\x47\x4b\x47\x4c\x47\x4d\x47\x4e\x47\x4f\x47\x50\x47\x53\x47\x54\x46\xc4\x47\x55\x47\x56\x47\x57\x47\x58\x47\x59\x00\x00\x47\x5a\x47\x5b\x47\x5c\x47\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x46\xb8\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x00\x00\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x47\x51\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-937_P110-1999 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\x27\x3d\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x35\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x3e\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x20\x27\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x23\x12\x22\x02\x22\x07\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\x00\x00\x00\x00\x22\x6a\x22\x6b\x00\x00\x22\x3d\x22\x1d\x00\x00\x22\x2c\x22\x08\x22\x0b\x22\x86\x22\x87\x22\x82\x22\x83\x00\x00\x00\x00\x22\x27\x22\x28\x21\xd2\x21\xd4\x22\x00\x22\x03\x21\x2b\x20\x30\x26\x6f\x26\x6d\x26\x6a\x20\x20\x20\x21\x00\xb6\x25\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x01\x25\x03\x25\x0f\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x25\x13\x25\x1b\x25\x17\x25\x23\x25\x33\x25\x2b\x25\x3b\x25\x4b\x25\x20\x25\x2f\x25\x28\x25\x37\x25\x3f\x25\x1d\x25\x30\x25\x25\x25\x38\x25\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x14\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x20\x32\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x02\xba\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x66\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x67\x22\x35\x26\x40\x00\xd7\x00\xf7\x22\x25\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x00\xb4\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x21\x30\x22\x30\x23\x30\x24\x30\x25\x30\x26\x30\x27\x30\x28\x30\x29\x53\x41\x53\x44\x53\x45\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xca\x02\xc7\x02\xcb\x02\xd9\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ NULL, /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x81\x25\x82\x25\x83\x25\x84\x25\x85\x25\x86\x25\x87\x25\x88\x25\x8f\x25\x8e\x25\x8d\x25\x8c\x25\x8b\x25\x8a\x25\x89\x25\x3c\x25\x34\x25\x2c\x25\x24\x25\x1c\x25\x94\x25\x00\x25\x02\x25\x95\x25\x0c\x25\x10\x25\x14\x25\x18\x25\x6d\x25\x6e\x25\x70\x25\x6f", /* 4680 */ "\x00\x00\x25\x50\x25\x5e\x25\x6a\x25\x61\x25\xe2\x25\xe3\x25\xe5\x25\xe4\x25\x71\x25\x72\x25\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x41\xfe\x42\xfe\x43\xfe\x44\xfe\x3b\xfe\x3c\x00\x00\xfe\x31\xf8\x3f\xf8\x40\xf8\x41\xf8\x42\xfe\x35\xfe\x36\xfe\x37\xfe\x38\xfe\x39\xfe\x3a\xfe\x3d\xfe\x3e\xfe\x3f\xfe\x40\xfe\x33\x25\x74\xff\x0a\x30\x03\x32\xa3\x21\x05\xfe\x34\xfe\x4f\xfe\x49\xfe\x4a\xfe\x4d\xfe\x4e\xfe\x4b\xfe\x4c\xfe\x61\x22\x1a\x22\x52\x22\x61\x22\x29\x22\x2a\x22\xa5\x22\x20\x22\x1f\x22\xbf\x33\xd2\x33\xd1\x22\x2b\x22\x2e\x22\x95\x22\x99\x21\x96\x21\x97\x21\x99\x21\x98\x00\x00\x00\x00\x22\x15\x21\x09\x33\xd5\x33\x9c\x33\x9d\x33\x9e\x33\xce\x33\xa1\x33\x8e\x33\x8f\x33\xc4\x00\xb7\x00\x00\x00\x00\x00\x00\x30\x1d\x30\x1e\x00\x00\x00\x00\x00\x00\x21\xe7\x21\xb8\x21\xb9\x51\x59\x51\x5b\x51\x5e\x51\x5d\x51\x61\x51\x63\x55\xe7\x74\xe9\x7c\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x30\xfe\x50\xfe\x51\xfe\x52\xfe\x54\xfe\x55\xfe\x56\xfe\x57\xfe\x32\xfe\x58\xfe\x59\xfe\x5a\xfe\x5b\xfe\x5c\xfe\x5d\xfe\x5e\xff\xe3\x02\xcd\xfe\x5f\xfe\x60\xfe\x62\xfe\x63\xfe\x64\xfe\x65\xfe\x66\xfe\x68\xfe\x69\xfe\x6a\xfe\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4780 */ "\x00\x00\x24\x00\x24\x01\x24\x02\x24\x03\x24\x04\x24\x05\x24\x06\x24\x07\x24\x08\x24\x09\x24\x0a\x24\x0b\x24\x0c\x24\x0d\x24\x0e\x24\x0f\x24\x10\x24\x11\x24\x12\x24\x13\x24\x14\x24\x15\x24\x16\x24\x17\x24\x18\x24\x19\x24\x1a\x24\x1b\x24\x1c\x24\x1d\x24\x1e\x24\x1f\x24\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x28\x4e\x36\x4e\x3f\x4e\x59\x4e\x85\x4e\x8c\x4e\xa0\x4e\xba\x51\x3f\x51\x65\x51\x6b\x51\x82\x51\x96\x51\xab\x51\xe0\x51\xf5\x52\x00\x52\x9b\x52\xf9\x53\x15\x53\x1a\x53\x38\x53\x41\x53\x5c\x53\x69\x53\x82\x53\xb6\x53\xc8\x53\xe3\x56\xd7\x57\x1f\x58\xeb\x59\x0a\x59\x15\x59\x27\x59\x73\x5b\x50\x5b\x80\x5b\xf8\x5c\x0f\x5c\x22\x5c\x38\x5c\x6e\x5c\x71\x5d\xdb\x5d\xe5\x5d\xf1\x5d\xfe\x5e\x72\x5e\x7a\x5e\x7f\x5e\xf4\x5e\xfe\x5f\x0b\x5f\x13\x5f\x50\x5f\x61\x5f\x73\x5f\xc3\x62\x08\x62\x36\x62\x4b", /* 4880 */ "\x00\x00\x65\x2f\x65\x34\x65\x87\x65\x97\x65\xa4\x65\xb9\x65\xe0\x65\xe5\x66\xf0\x67\x08\x67\x28\x6b\x20\x6b\x62\x6b\x79\x6b\xb3\x6b\xcb\x6b\xd4\x6b\xdb\x6c\x0f\x6c\x14\x6c\x34\x70\x6b\x72\x2a\x72\x36\x72\x3b\x72\x3f\x72\x47\x72\x59\x72\x5b\x72\xac\x73\x84\x73\x89\x74\xdc\x74\xe6\x75\x18\x75\x1f\x75\x28\x75\x30\x75\x8b\x75\x92\x76\x76\x76\x7d\x76\xae\x76\xbf\x76\xee\x77\xdb\x77\xe2\x77\xf3\x79\x3a\x79\xb8\x79\xbe\x7a\x74\x7a\xcb\x7a\xf9\x7c\x73\x7c\xf8\x7f\x36\x7f\x51\x7f\x8a\x7f\xbd\x80\x01\x80\x0c\x80\x12\x80\x33\x80\x7f\x80\x89\x81\xe3\x81\xea\x81\xf3\x81\xfc\x82\x0c\x82\x1b\x82\x1f\x82\x6e\x82\x72\x82\x78\x86\x4d\x86\x6b\x88\x40\x88\x4c\x88\x63\x89\x7e\x89\x8b\x89\xd2\x8a\x00\x8c\x37\x8c\x46\x8c\x55\x8c\x78\x8c\x9d\x8d\x64\x8d\x70\x8d\xb3\x8e\xab\x8e\xca\x8f\x9b\x8f\xb0\x8f\xb5\x90\x91\x91\x49\x91\xc6\x91\xcc\x91\xd1\x95\x77\x95\x80\x96\x1c\x96\xb6\x96\xb9\x96\xe8\x97\x52\x97\x5e\x97\x62\x97\x69\x97\xcb\x97\xed\x97\xf3\x98\x01\x98\xa8\x98\xdb\x98\xdf\x99\x96\x99\x99\x99\xac\x9a\xa8\x9a\xd8\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xdf\x9b\x25\x9b\x2f\x9b\x32\x9b\x3c\x9b\x5a\x9c\xe5\x9e\x75\x9e\x7f\x9e\xa5\x9e\xbb\x9e\xc3\x9e\xcd\x9e\xd1\x9e\xf9\x9e\xfd\x9f\x0e\x9f\x13\x9f\x20\x9f\x3b\x9f\x4a\x9f\x52\x9f\x8d\x9f\x9c\x9f\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x59\x4e\x01\x4e\x03\x4e\x43\x4e\x5d\x4e\x86\x4e\x8c\x4e\xba\x51\x3f\x51\x65\x51\x6b\x51\xe0\x52\x00\x52\x01\x52\x9b\x53\x15\x53\x41\x53\x5c\x53\xc8\x4e\x09\x4e\x0b\x4e\x08\x4e\x0a\x4e\x2b\x4e\x38\x51\xe1\x4e\x45\x4e\x48\x4e\x5f\x4e\x5e\x4e\x8e\x4e\xa1\x51\x40\x52\x03\x52\xfa\x53\x43\x53\xc9\x53\xe3\x57\x1f\x58\xeb\x59\x15\x59\x27\x59\x73\x5b\x50\x5b\x51\x5b\x53\x5b\xf8\x5c\x0f\x5c\x22\x5c\x38\x5c\x71\x5d\xdd\x5d\xe5\x5d\xf1\x5d\xf2\x5d\xf3\x5d\xfe\x5e\x72\x5e\xfe\x5f\x0b\x5f\x13\x62\x4d", /* 4c80 */ "\x00\x00\x4e\x11\x4e\x10\x4e\x0d\x4e\x2d\x4e\x30\x4e\x39\x4e\x4b\x5c\x39\x4e\x88\x4e\x91\x4e\x95\x4e\x92\x4e\x94\x4e\xa2\x4e\xc1\x4e\xc0\x4e\xc3\x4e\xc6\x4e\xc7\x4e\xcd\x4e\xca\x4e\xcb\x4e\xc4\x51\x43\x51\x41\x51\x67\x51\x6d\x51\x6e\x51\x6c\x51\x97\x51\xf6\x52\x06\x52\x07\x52\x08\x52\xfb\x52\xfe\x52\xff\x53\x16\x53\x39\x53\x48\x53\x47\x53\x45\x53\x5e\x53\x84\x53\xcb\x53\xca\x53\xcd\x58\xec\x59\x29\x59\x2b\x59\x2a\x59\x2d\x5b\x54\x5c\x11\x5c\x24\x5c\x3a\x5c\x6f\x5d\xf4\x5e\x7b\x5e\xff\x5f\x14\x5f\x15\x5f\xc3\x62\x08\x62\x36\x62\x4b\x62\x4e\x65\x2f\x65\x87\x65\x97\x65\xa4\x65\xb9\x65\xe5\x66\xf0\x67\x08\x67\x28\x6b\x20\x6b\x62\x6b\x79\x6b\xcb\x6b\xd4\x6b\xdb\x6c\x0f\x6c\x34\x70\x6b\x72\x2a\x72\x36\x72\x3b\x72\x47\x72\x59\x72\x5b\x72\xac\x73\x8b\x4e\x19\x4e\x16\x4e\x15\x4e\x14\x4e\x18\x4e\x3b\x4e\x4d\x4e\x4f\x4e\x4e\x4e\xe5\x4e\xd8\x4e\xd4\x4e\xd5\x4e\xd6\x4e\xd7\x4e\xe3\x4e\xe4\x4e\xd9\x4e\xde\x51\x45\x51\x44\x51\x89\x51\x8a\x51\xac\x51\xf9\x51\xfa\x51\xf8\x52\x0a\x52\xa0\x52\x9f\x53\x05\x53\x06\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x17\x53\x1d\x4e\xdf\x53\x4a\x53\x49\x53\x61\x53\x60\x53\x6f\x53\x6e\x53\xbb\x53\xef\x53\xe4\x53\xf3\x53\xec\x53\xee\x53\xe9\x53\xe8\x53\xfc\x53\xf8\x53\xf5\x53\xeb\x53\xe6\x53\xea\x53\xf2\x53\xf1\x53\xf0\x53\xe5\x53\xed\x53\xfb\x56\xdb\x56\xda\x59\x16\x59\x2e\x59\x31\x59\x74\x59\x76\x5b\x55\x5b\x83\x5c\x3c\x5d\xe8\x5d\xe7\x5d\xe6\x5e\x02\x5e\x03\x5e\x73\x5e\x7c\x5f\x01\x5f\x18\x5f\x17\x5f\xc5\x62\x0a\x62\x53\x62\x54\x62\x52\x62\x51\x65\xa5\x65\xe6\x67\x2e\x67\x2c\x67\x2a\x67\x2b\x67\x2d\x6b\x63", /* 4d80 */ "\x00\x00\x6b\xcd\x6c\x11\x6c\x10\x6c\x38\x6c\x41\x6c\x40\x6c\x3e\x72\xaf\x73\x84\x73\x89\x74\xdc\x74\xe6\x75\x18\x75\x1f\x75\x28\x75\x29\x75\x30\x75\x31\x75\x32\x75\x33\x75\x8b\x76\x7d\x76\xae\x76\xbf\x76\xee\x77\xdb\x77\xe2\x77\xf3\x79\x3a\x79\xbe\x7a\x74\x7a\xcb\x4e\x1e\x4e\x1f\x4e\x52\x4e\x53\x4e\x69\x4e\x99\x4e\xa4\x4e\xa6\x4e\xa5\x4e\xff\x4f\x09\x4f\x19\x4f\x0a\x4f\x15\x4f\x0d\x4f\x10\x4f\x11\x4f\x0f\x4e\xf2\x4e\xf6\x4e\xfb\x4e\xf0\x4e\xf3\x4e\xfd\x4f\x01\x4f\x0b\x51\x49\x51\x47\x51\x46\x51\x48\x51\x68\x51\x71\x51\x8d\x51\xb0\x52\x17\x52\x11\x52\x12\x52\x0e\x52\x16\x52\xa3\x53\x08\x53\x21\x53\x20\x53\x70\x53\x71\x54\x09\x54\x0f\x54\x0c\x54\x0a\x54\x10\x54\x01\x54\x0b\x54\x04\x54\x11\x54\x0d\x54\x08\x54\x03\x54\x0e\x54\x06\x54\x12\x56\xe0\x56\xde\x56\xdd\x57\x33\x57\x30\x57\x28\x57\x2d\x57\x2c\x57\x2f\x57\x29\x59\x19\x59\x1a\x59\x37\x59\x38\x59\x84\x59\x78\x59\x83\x59\x7d\x59\x79\x59\x82\x59\x81\x5b\x57\x5b\x58\x5b\x87\x5b\x88\x5b\x85\x5b\x89\x5b\xfa\x5c\x16\x5c\x79\x5d\xde\x5e\x06\x5e\x76\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x74\x5f\x0f\x5f\x1b\x5f\xd9\x5f\xd6\x62\x0e\x62\x0c\x62\x0d\x62\x10\x62\x63\x62\x5b\x62\x58\x65\x36\x65\xe9\x65\xe8\x65\xec\x65\xed\x66\xf2\x66\xf3\x67\x09\x67\x3d\x67\x34\x67\x31\x67\x35\x6b\x21\x6b\x64\x6b\x7b\x6c\x16\x6c\x5d\x6c\x57\x6c\x59\x6c\x5f\x6c\x60\x6c\x50\x6c\x55\x6c\x61\x6c\x5b\x6c\x4d\x6c\x4e\x70\x70\x72\x5f\x72\x5d\x76\x7e\x7a\xf9\x7c\x73\x7c\xf8\x7f\x36\x7f\x8a\x7f\xbd\x80\x01\x80\x03\x80\x0c\x80\x12\x80\x33\x80\x7f\x80\x89\x80\x8b\x80\x8c\x81\xe3\x81\xea\x81\xf3\x81\xfc\x82\x0c", /* 4e80 */ "\x00\x00\x82\x1b\x82\x1f\x82\x6e\x82\x72\x82\x7e\x86\x6b\x88\x40\x88\x4c\x88\x63\x89\x7f\x96\x21\x4e\x32\x4e\xa8\x4f\x4d\x4f\x4f\x4f\x47\x4f\x57\x4f\x5e\x4f\x34\x4f\x5b\x4f\x55\x4f\x30\x4f\x50\x4f\x51\x4f\x3d\x4f\x3a\x4f\x38\x4f\x43\x4f\x54\x4f\x3c\x4f\x46\x4f\x63\x4f\x5c\x4f\x60\x4f\x2f\x4f\x4e\x4f\x36\x4f\x59\x4f\x5d\x4f\x48\x4f\x5a\x51\x4c\x51\x4b\x51\x4d\x51\x75\x51\xb6\x51\xb7\x52\x25\x52\x24\x52\x29\x52\x2a\x52\x28\x52\xab\x52\xa9\x52\xaa\x52\xac\x53\x23\x53\x73\x53\x75\x54\x1d\x54\x2d\x54\x1e\x54\x3e\x54\x26\x54\x4e\x54\x27\x54\x46\x54\x43\x54\x33\x54\x48\x54\x42\x54\x1b\x54\x29\x54\x4a\x54\x39\x54\x3b\x54\x38\x54\x2e\x54\x35\x54\x36\x54\x20\x54\x3c\x54\x40\x54\x31\x54\x2b\x54\x1f\x54\x2c\x56\xea\x56\xf0\x56\xe4\x56\xeb\x57\x4a\x57\x51\x57\x40\x57\x4d\x57\x47\x57\x4e\x57\x3e\x57\x50\x57\x4f\x57\x3b\x58\xef\x59\x3e\x59\x9d\x59\x92\x59\xa8\x59\x9e\x59\xa3\x59\x99\x59\x96\x59\x8d\x59\xa4\x59\x93\x59\x8a\x59\xa5\x5b\x5d\x5b\x5c\x5b\x5a\x5b\x5b\x5b\x8c\x5b\x8b\x5b\x8f\x5c\x2c\x5c\x40\x5c\x41\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x3f\x5c\x3e\x5c\x90\x5c\x91\x5c\x94\x5c\x8c\x5d\xeb\x5e\x0c\x5e\x8f\x5e\x87\x5e\x8a\x5e\xf7\x5f\x04\x5f\x1f\x5f\x64\x5f\x62\x5f\x77\x5f\x79\x5f\xd8\x5f\xcc\x5f\xd7\x5f\xcd\x5f\xf1\x5f\xeb\x5f\xf8\x5f\xea\x62\x12\x62\x11\x62\x84\x62\x97\x62\x96\x62\x80\x62\x76\x62\x89\x62\x6d\x62\x8a\x62\x7c\x62\x7e\x62\x79\x62\x73\x62\x92\x62\x6f\x62\x98\x62\x6e\x62\x95\x62\x93\x62\x91\x62\x86\x65\x39\x65\x3b\x65\x38\x65\xf1\x66\xf4\x67\x5f\x67\x4e\x67\x4f\x67\x50\x67\x51\x67\x5c\x67\x56\x67\x5e\x67\x49\x67\x46", /* 4f80 */ "\x00\x00\x67\x60\x67\x53\x67\x57\x6b\x65\x6b\xcf\x6c\x42\x6c\x5e\x6c\x99\x6c\x81\x6c\x88\x6c\x89\x6c\x85\x6c\x9b\x6c\x6a\x6c\x7a\x6c\x90\x6c\x70\x6c\x8c\x6c\x68\x6c\x96\x6c\x92\x6c\x7d\x6c\x83\x6c\x72\x6c\x7e\x6c\x74\x6c\x86\x6c\x76\x6c\x8d\x6c\x94\x6c\x98\x6c\x82\x70\x76\x70\x7c\x70\x7d\x70\x78\x72\x62\x72\x61\x72\x60\x72\xc4\x72\xc2\x73\x96\x75\x2c\x75\x2b\x75\x37\x75\x38\x76\x82\x76\xef\x77\xe3\x79\xc1\x79\xc0\x79\xbf\x7a\x76\x7c\xfb\x7f\x55\x80\x96\x80\x93\x80\x9d\x80\x98\x80\x9b\x80\x9a\x80\xb2\x82\x6f\x82\x92\x82\x8b\x82\x8d\x89\x8b\x89\xd2\x8a\x00\x8c\x37\x8c\x46\x8c\x55\x8c\x9d\x8d\x64\x8d\x70\x8d\xb3\x8e\xab\x8e\xca\x8f\x9b\x8f\xb0\x8f\xc2\x8f\xc6\x8f\xc5\x8f\xc4\x5d\xe1\x90\x91\x90\xa2\x90\xaa\x90\xa6\x90\xa3\x91\x49\x91\xc6\x91\xcc\x96\x32\x96\x2e\x96\x31\x96\x2a\x96\x2c\x4e\x26\x4e\x56\x4e\x73\x4e\x8b\x4e\x9b\x4e\x9e\x4e\xab\x4e\xac\x4f\x6f\x4f\x9d\x4f\x8d\x4f\x73\x4f\x7f\x4f\x6c\x4f\x9b\x4f\x8b\x4f\x86\x4f\x83\x4f\x70\x4f\x75\x4f\x88\x4f\x69\x4f\x7b\x4f\x96\x4f\x7e\x4f\x8f\x4f\x91\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7a\x51\x54\x51\x52\x51\x55\x51\x69\x51\x77\x51\x76\x51\x78\x51\xbd\x51\xfd\x52\x3b\x52\x38\x52\x37\x52\x3a\x52\x30\x52\x2e\x52\x36\x52\x41\x52\xbe\x52\xbb\x53\x52\x53\x54\x53\x53\x53\x51\x53\x66\x53\x77\x53\x78\x53\x79\x53\xd6\x53\xd4\x53\xd7\x54\x73\x54\x75\x54\x96\x54\x78\x54\x95\x54\x80\x54\x7b\x54\x77\x54\x84\x54\x92\x54\x86\x54\x7c\x54\x90\x54\x71\x54\x76\x54\x8c\x54\x9a\x54\x62\x54\x68\x54\x8b\x54\x7d\x54\x8e\x56\xfa\x57\x83\x57\x77\x57\x6a\x57\x69\x57\x61\x57\x66\x57\x64\x57\x7c\x59\x1c", /* 5080 */ "\x00\x00\x59\x49\x59\x47\x59\x48\x59\x44\x59\x54\x59\xbe\x59\xbb\x59\xd4\x59\xb9\x59\xae\x59\xd1\x59\xc6\x59\xd0\x59\xcd\x59\xcb\x59\xd3\x59\xca\x59\xaf\x59\xb3\x59\xd2\x59\xc5\x5b\x5f\x5b\x64\x5b\x63\x5b\x97\x5b\x9a\x5b\x98\x5b\x9c\x5b\x99\x5b\x9b\x5c\x1a\x5c\x48\x5c\x45\x5c\x46\x5c\xb7\x5c\xa1\x5c\xb8\x5c\xa9\x5c\xab\x5c\xb1\x5c\xb3\x5e\x18\x5e\x1a\x5e\x16\x5e\x15\x5e\x1b\x5e\x11\x5e\x78\x5e\x9a\x5e\x97\x5e\x9c\x5e\x95\x5e\x96\x5e\xf6\x5f\x26\x5f\x27\x5f\x29\x5f\x80\x5f\x81\x5f\x7f\x5f\x7c\x5f\xdd\x5f\xe0\x5f\xfd\x5f\xf5\x5f\xff\x60\x0f\x60\x14\x60\x2f\x60\x35\x60\x16\x60\x2a\x60\x15\x60\x21\x60\x27\x60\x29\x60\x2b\x60\x1b\x62\x16\x62\x15\x62\x3f\x62\x3e\x62\x40\x62\x7f\x62\xc9\x62\xcc\x62\xc4\x62\xbf\x62\xc2\x62\xb9\x62\xd2\x62\xdb\x62\xab\x62\xd3\x62\xd4\x62\xcb\x62\xc8\x62\xa8\x62\xbd\x62\xbc\x62\xd0\x62\xd9\x62\xc7\x62\xcd\x62\xb5\x62\xda\x62\xb1\x62\xd8\x62\xd6\x62\xd7\x62\xc6\x62\xac\x62\xce\x65\x3e\x65\xa7\x65\xbc\x65\xfa\x66\x14\x66\x13\x66\x0c\x66\x06\x66\x02\x66\x0e\x66\x00\x66\x0f\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x15\x66\x0a\x66\x07\x67\x0d\x67\x0b\x67\x6d\x67\x8b\x67\x95\x67\x71\x67\x9c\x67\x73\x67\x77\x67\x87\x67\x9d\x67\x97\x67\x6f\x67\x70\x67\x7f\x67\x89\x67\x7e\x67\x90\x67\x75\x67\x9a\x67\x93\x67\x7c\x67\x6a\x67\x72\x6b\x23\x6b\x66\x6b\x67\x6b\x7f\x6c\x13\x6c\x1b\x6c\xe3\x6c\xe8\x6c\xf3\x6c\xb1\x6c\xcc\x6c\xe5\x6c\xb3\x6c\xbd\x6c\xbe\x6c\xbc\x6c\xe2\x6c\xab\x6c\xd5\x6c\xd3\x6c\xb8\x6c\xc4\x6c\xb9\x6c\xc1\x6c\xae\x6c\xd7\x6c\xc5\x6c\xf1\x6c\xbf\x6c\xbb\x6c\xe1\x6c\xdb\x6c\xca\x6c\xac\x6c\xef\x6c\xdc", /* 5180 */ "\x00\x00\x6c\xd6\x6c\xe0\x70\x95\x70\x8e\x70\x92\x70\x8a\x70\x99\x72\x2c\x72\x2d\x72\x38\x72\x48\x72\x67\x72\x69\x72\xc0\x72\xce\x72\xd9\x72\xd7\x72\xd0\x73\xa9\x73\xa8\x73\x9f\x73\xab\x73\xa5\x75\x3d\x75\x9d\x75\x99\x75\x9a\x76\x84\x76\xc2\x76\xf2\x76\xf4\x77\xe5\x77\xfd\x79\x3e\x79\x40\x79\x41\x79\xc9\x79\xc8\x7a\x7a\x7a\x79\x7a\xfa\x7c\xfe\x7f\x54\x7f\x8c\x7f\x8b\x80\x05\x80\xba\x80\xa5\x80\xa2\x80\xb1\x80\xa1\x80\xab\x80\xa9\x80\xb4\x80\xaa\x80\xaf\x81\xe5\x81\xfe\x82\x0d\x82\xb3\x82\x9d\x82\x99\x82\xad\x82\xbd\x82\x9f\x82\xb9\x82\xb1\x82\xac\x82\xa5\x82\xaf\x82\xb8\x82\xa3\x82\xb0\x82\xbe\x82\xb7\x86\x4e\x86\x71\x52\x1d\x88\x68\x8e\xcb\x8f\xce\x8f\xd4\x8f\xd1\x90\xb5\x90\xb8\x90\xb1\x90\xb6\x91\xc7\x91\xd1\x95\x77\x95\x80\x96\x1c\x96\x40\x96\x3f\x96\x3b\x96\x44\x96\x42\x96\xb9\x96\xe8\x97\x52\x97\x5e\x4e\x9f\x4e\xad\x4e\xae\x4f\xe1\x4f\xb5\x4f\xaf\x4f\xbf\x4f\xe0\x4f\xd1\x4f\xcf\x4f\xdd\x4f\xc3\x4f\xb6\x4f\xd8\x4f\xdf\x4f\xca\x4f\xd7\x4f\xae\x4f\xd0\x4f\xc4\x4f\xc2\x4f\xda\x4f\xce\x4f\xde\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb7\x51\x57\x51\x92\x51\x91\x51\xa0\x52\x4e\x52\x43\x52\x4a\x52\x4d\x52\x4c\x52\x4b\x52\x47\x52\xc7\x52\xc9\x52\xc3\x52\xc1\x53\x0d\x53\x57\x53\x7b\x53\x9a\x53\xdb\x54\xac\x54\xc0\x54\xa8\x54\xce\x54\xc9\x54\xb8\x54\xa6\x54\xb3\x54\xc7\x54\xc2\x54\xbd\x54\xaa\x54\xc1\x54\xc4\x54\xc8\x54\xaf\x54\xab\x54\xb1\x54\xbb\x54\xa9\x54\xa7\x54\xbf\x56\xff\x57\x82\x57\x8b\x57\xa0\x57\xa3\x57\xa2\x57\xce\x57\xae\x57\x93\x59\x55\x59\x51\x59\x4f\x59\x4e\x59\x50\x59\xdc\x59\xd8\x59\xff\x59\xe3\x59\xe8\x5a\x03", /* 5280 */ "\x00\x00\x59\xe5\x59\xea\x59\xda\x59\xe6\x5a\x01\x59\xfb\x5b\x69\x5b\xa3\x5b\xa6\x5b\xa4\x5b\xa2\x5b\xa5\x5c\x01\x5c\x4e\x5c\x4f\x5c\x4d\x5c\x4b\x5c\xd9\x5c\xd2\x5d\xf7\x5e\x1d\x5e\x25\x5e\x1f\x5e\x7d\x5e\xa0\x5e\xa6\x5e\xfa\x5f\x08\x5f\x2d\x5f\x65\x5f\x88\x5f\x85\x5f\x8a\x5f\x8b\x5f\x87\x5f\x8c\x5f\x89\x60\x12\x60\x1d\x60\x20\x60\x25\x60\x0e\x60\x28\x60\x4d\x60\x70\x60\x68\x60\x62\x60\x46\x60\x43\x60\x6c\x60\x6b\x60\x6a\x60\x64\x62\x41\x62\xdc\x63\x16\x63\x09\x62\xfc\x62\xed\x63\x01\x62\xee\x62\xfd\x63\x07\x62\xf1\x62\xf7\x62\xef\x62\xec\x62\xfe\x62\xf4\x63\x11\x63\x02\x65\x3f\x65\x45\x65\xab\x65\xbd\x65\xe2\x66\x25\x66\x2d\x66\x20\x66\x27\x66\x2f\x66\x1f\x66\x28\x66\x31\x66\x24\x66\xf7\x67\xff\x67\xd3\x67\xf1\x67\xd4\x67\xd0\x67\xec\x67\xb6\x67\xaf\x67\xf5\x67\xe9\x67\xef\x67\xc4\x67\xd1\x67\xb4\x67\xda\x67\xe5\x67\xb8\x67\xcf\x67\xde\x67\xf3\x67\xb0\x67\xd9\x67\xe2\x67\xdd\x67\xd2\x6b\x6a\x6b\x83\x6b\x86\x6b\xb5\x6b\xd2\x6b\xd7\x6c\x1f\x6c\xc9\x6d\x0b\x6d\x32\x6d\x2a\x6d\x41\x6d\x25\x6d\x0c\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x31\x6d\x1e\x6d\x17\x6d\x3b\x6d\x3d\x6d\x3e\x6d\x36\x6d\x1b\x6c\xf5\x6d\x39\x6d\x27\x6d\x38\x6d\x29\x6d\x2e\x6d\x35\x6d\x0e\x6d\x2b\x70\xab\x70\xba\x70\xb3\x70\xac\x70\xaf\x70\xad\x70\xb8\x70\xae\x70\xa4\x72\x30\x72\x72\x72\x6f\x72\x74\x72\xe9\x72\xe0\x72\xe1\x73\xb7\x73\xca\x73\xbb\x73\xb2\x73\xcd\x73\xc0\x73\xb3\x75\x1a\x75\x2d\x75\x4f\x75\x4c\x75\x4e\x75\x4b\x75\xab\x75\xa4\x75\xa5\x75\xa2\x75\xa3\x76\x78\x76\x86\x76\x87\x76\x88\x76\xc8\x76\xc6\x76\xc3\x76\xc5\x77\x01\x76\xf9\x76\xf8\x77\x09", /* 5380 */ "\x00\x00\x77\x0b\x76\xfe\x76\xfc\x77\x07\x77\xdc\x78\x02\x78\x14\x78\x0c\x78\x0d\x79\x46\x79\x49\x79\x48\x79\x47\x79\xb9\x79\xba\x79\xd1\x79\xd2\x79\xcb\x7a\x7f\x7a\x81\x7a\xff\x7a\xfd\x7c\x7d\x7d\x02\x7d\x05\x7d\x00\x7d\x09\x7d\x07\x7d\x04\x7d\x06\x7f\x38\x7f\x8e\x7f\xbf\x80\x04\x80\x10\x80\x0d\x80\x11\x80\x36\x80\xd6\x80\xe5\x80\xda\x80\xc3\x80\xc4\x80\xcc\x80\xe1\x80\xdb\x80\xce\x80\xde\x80\xe4\x80\xdd\x81\xf4\x82\x22\x82\xe7\x83\x03\x83\x05\x82\xe3\x82\xdb\x82\xe6\x83\x04\x82\xe5\x83\x02\x83\x09\x82\xd2\x82\xd7\x82\xf1\x83\x01\x82\xdc\x82\xd4\x82\xd1\x82\xde\x82\xd3\x82\xdf\x82\xef\x83\x06\x86\x50\x86\x79\x86\x7b\x86\x7a\x88\x4d\x88\x6b\x89\x81\x89\xd4\x8a\x08\x8a\x02\x8a\x03\x8c\x9e\x8c\xa0\x8d\x74\x8d\x73\x8d\xb4\x8e\xcd\x8e\xcc\x8f\xf0\x8f\xe6\x8f\xe2\x8f\xea\x8f\xe5\x8f\xed\x8f\xeb\x8f\xe4\x8f\xe8\x90\xca\x90\xce\x90\xc1\x90\xc3\x91\x4b\x91\x4a\x91\xcd\x95\x82\x96\x50\x96\x4b\x96\x4c\x96\x4d\x97\x62\x97\x69\x97\xcb\x97\xed\x97\xf3\x98\x01\x98\xa8\x98\xdb\x98\xdf\x99\x96\x99\x99\x4e\x58\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb3\x50\x0c\x50\x0d\x50\x23\x4f\xef\x50\x26\x50\x25\x4f\xf8\x50\x29\x50\x16\x50\x06\x50\x3c\x50\x1f\x50\x1a\x50\x12\x50\x11\x4f\xfa\x50\x00\x50\x14\x50\x28\x4f\xf1\x50\x21\x50\x0b\x50\x19\x50\x18\x4f\xf3\x4f\xee\x50\x2d\x50\x2a\x4f\xfe\x50\x2b\x50\x09\x51\x7c\x51\xa4\x51\xa5\x51\xa2\x51\xcd\x51\xcc\x51\xc6\x51\xcb\x52\x56\x52\x5c\x52\x54\x52\x5b\x52\x5d\x53\x2a\x53\x7f\x53\x9f\x53\x9d\x53\xdf\x54\xe8\x55\x10\x55\x01\x55\x37\x54\xfc\x54\xe5\x54\xf2\x55\x06\x54\xfa\x55\x14\x54\xe9\x54\xed\x54\xe1", /* 5480 */ "\x00\x00\x55\x09\x54\xee\x54\xea\x54\xe6\x55\x27\x55\x07\x54\xfd\x55\x0f\x57\x03\x57\x04\x57\xc2\x57\xd4\x57\xcb\x57\xc3\x58\x09\x59\x0f\x59\x57\x59\x58\x59\x5a\x5a\x11\x5a\x18\x5a\x1c\x5a\x1f\x5a\x1b\x5a\x13\x59\xec\x5a\x20\x5a\x23\x5a\x29\x5a\x25\x5a\x0c\x5a\x09\x5b\x6b\x5c\x58\x5b\xb0\x5b\xb3\x5b\xb6\x5b\xb4\x5b\xae\x5b\xb5\x5b\xb9\x5b\xb8\x5c\x04\x5c\x51\x5c\x55\x5c\x50\x5c\xed\x5c\xfd\x5c\xfb\x5c\xea\x5c\xe8\x5c\xf0\x5c\xf6\x5d\x01\x5c\xf4\x5d\xee\x5e\x2d\x5e\x2b\x5e\xab\x5e\xad\x5e\xa7\x5f\x31\x5f\x92\x5f\x91\x5f\x90\x60\x59\x60\x63\x60\x65\x60\x50\x60\x55\x60\x6d\x60\x69\x60\x6f\x60\x84\x60\x9f\x60\x9a\x60\x8d\x60\x94\x60\x8c\x60\x85\x60\x96\x62\x47\x62\xf3\x63\x08\x62\xff\x63\x4e\x63\x3e\x63\x2f\x63\x55\x63\x42\x63\x46\x63\x4f\x63\x49\x63\x3a\x63\x50\x63\x3d\x63\x2a\x63\x2b\x63\x28\x63\x4d\x63\x4c\x65\x48\x65\x49\x65\x99\x65\xc1\x65\xc5\x66\x42\x66\x49\x66\x4f\x66\x43\x66\x52\x66\x4c\x66\x45\x66\x41\x66\xf8\x67\x14\x67\x15\x67\x17\x68\x21\x68\x38\x68\x48\x68\x46\x68\x53\x68\x39\x68\x42\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x54\x68\x29\x68\xb3\x68\x17\x68\x4c\x68\x51\x68\x3d\x67\xf4\x68\x50\x68\x40\x68\x3c\x68\x43\x68\x2a\x68\x45\x68\x13\x68\x18\x68\x41\x6b\x8a\x6b\x89\x6b\xb7\x6c\x23\x6c\x27\x6c\x28\x6c\x26\x6c\x24\x6c\xf0\x6d\x6a\x6d\x95\x6d\x88\x6d\x87\x6d\x66\x6d\x78\x6d\x77\x6d\x59\x6d\x93\x6d\x6c\x6d\x89\x6d\x6e\x6d\x5a\x6d\x74\x6d\x69\x6d\x8c\x6d\x8a\x6d\x79\x6d\x85\x6d\x65\x6d\x94\x70\xca\x70\xd8\x70\xe4\x70\xd9\x70\xc8\x70\xcf\x72\x39\x72\x79\x72\xfc\x72\xf9\x72\xfd\x72\xf8\x72\xf7\x73\x86\x73\xed\x74\x09", /* 5580 */ "\x00\x00\x73\xee\x73\xe0\x73\xea\x73\xde\x75\x54\x75\x5d\x75\x5c\x75\x5a\x75\x59\x75\xbe\x75\xc5\x75\xc7\x75\xb2\x75\xb3\x75\xbd\x75\xbc\x75\xb9\x75\xc2\x75\xb8\x76\x8b\x76\xb0\x76\xca\x76\xcd\x76\xce\x77\x29\x77\x1f\x77\x20\x77\x28\x77\xe9\x78\x30\x78\x27\x78\x38\x78\x1d\x78\x34\x78\x37\x78\x25\x78\x2d\x78\x20\x78\x1f\x78\x32\x79\x55\x79\x50\x79\x60\x79\x5f\x79\x56\x79\x5e\x79\x5d\x79\x57\x79\x5a\x79\xe4\x79\xe3\x79\xe7\x79\xdf\x79\xe6\x79\xe9\x79\xd8\x7a\x84\x7a\x88\x7a\xd9\x7b\x06\x7b\x11\x7c\x89\x7d\x21\x7d\x17\x7d\x0b\x7d\x0a\x7d\x20\x7d\x22\x7d\x14\x7d\x10\x7d\x15\x7d\x1a\x7d\x1c\x7d\x0d\x7d\x19\x7d\x1b\x7f\x3a\x7f\x5f\x7f\x94\x7f\xc5\x7f\xc1\x80\x06\x80\x18\x80\x15\x80\x19\x80\x17\x80\x3d\x80\x3f\x80\xf1\x81\x02\x80\xf0\x81\x05\x80\xed\x80\xf4\x81\x06\x80\xf8\x80\xf3\x81\x08\x80\xfd\x81\x0a\x80\xfc\x80\xef\x81\xed\x81\xec\x82\x00\x82\x10\x82\x2a\x82\x2b\x82\x28\x82\x2c\x82\xbb\x83\x2b\x83\x52\x83\x54\x83\x4a\x83\x38\x83\x50\x83\x49\x83\x35\x83\x34\x83\x4f\x83\x32\x83\x39\x83\x36\x83\x17\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x40\x83\x31\x83\x28\x83\x43\x86\x54\x86\x8a\x86\xaa\x86\x93\x86\xa4\x86\xa9\x86\x8c\x86\xa3\x86\x9c\x88\x70\x88\x77\x88\x81\x88\x82\x88\x7d\x88\x79\x8a\x18\x8a\x10\x8a\x0e\x8a\x0c\x8a\x15\x8a\x0a\x8a\x17\x8a\x13\x8a\x16\x8a\x0f\x8a\x11\x8c\x48\x8c\x7a\x8c\x79\x8c\xa1\x8c\xa2\x8d\x77\x8e\xac\x8e\xd2\x8e\xd4\x8e\xcf\x8f\xb1\x90\x01\x90\x06\x8f\xf7\x90\x00\x8f\xfa\x8f\xf4\x90\x03\x8f\xfd\x90\x05\x8f\xf8\x90\x95\x90\xe1\x90\xdd\x90\xe2\x91\x52\x91\x4d\x91\x4c\x91\xd8\x91\xdd\x91\xd7\x91\xdc\x91\xd9", /* 5680 */ "\x00\x00\x95\x83\x96\x62\x96\x63\x96\x61\x96\x5b\x96\x5d\x96\x64\x96\x58\x96\x5e\x96\xbb\x98\xe2\x99\xac\x9a\xa8\x9a\xd8\x9b\x25\x9b\x32\x9b\x3c\x4e\x7e\x50\x7a\x50\x7d\x50\x5c\x50\x47\x50\x43\x50\x4c\x50\x5a\x50\x49\x50\x65\x50\x76\x50\x4e\x50\x55\x50\x75\x50\x74\x50\x77\x50\x4f\x50\x0f\x50\x6f\x50\x6d\x51\x5c\x51\x95\x51\xf0\x52\x6a\x52\x6f\x52\xd2\x52\xd9\x52\xd8\x52\xd5\x53\x10\x53\x0f\x53\x19\x53\x3f\x53\x40\x53\x3e\x53\xc3\x66\xfc\x55\x46\x55\x6a\x55\x66\x55\x44\x55\x5e\x55\x61\x55\x43\x55\x4a\x55\x31\x55\x56\x55\x4f\x55\x55\x55\x2f\x55\x64\x55\x38\x55\x2e\x55\x5c\x55\x2c\x55\x63\x55\x33\x55\x41\x55\x57\x57\x08\x57\x0b\x57\x09\x57\xdf\x58\x05\x58\x0a\x58\x06\x57\xe0\x57\xe4\x57\xfa\x58\x02\x58\x35\x57\xf7\x57\xf9\x59\x20\x59\x62\x5a\x36\x5a\x41\x5a\x49\x5a\x66\x5a\x6a\x5a\x40\x5a\x3c\x5a\x62\x5a\x5a\x5a\x46\x5a\x4a\x5b\x70\x5b\xc7\x5b\xc5\x5b\xc4\x5b\xc2\x5b\xbf\x5b\xc6\x5c\x09\x5c\x08\x5c\x07\x5c\x60\x5c\x5c\x5c\x5d\x5d\x07\x5d\x06\x5d\x0e\x5d\x1b\x5d\x16\x5d\x22\x5d\x11\x5d\x29\x5d\x14\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x19\x5d\x24\x5d\x27\x5d\x17\x5d\xe2\x5e\x38\x5e\x36\x5e\x33\x5e\x37\x5e\xb7\x5e\xb8\x5e\xb6\x5e\xb5\x5e\xbe\x5f\x35\x5f\x37\x5f\x57\x5f\x6c\x5f\x69\x5f\x6b\x5f\x97\x5f\x99\x5f\x9e\x5f\x98\x5f\xa1\x5f\xa0\x5f\x9c\x60\x7f\x60\xa3\x60\x89\x60\xa0\x60\xa8\x60\xcb\x60\xb4\x60\xe6\x60\xbd\x60\xc5\x60\xbb\x60\xb5\x60\xdc\x60\xbc\x60\xd8\x60\xd5\x60\xc6\x60\xdf\x60\xb8\x60\xda\x60\xc7\x62\x1a\x62\x1b\x62\x48\x63\xa0\x63\xa7\x63\x72\x63\x96\x63\xa2\x63\xa5\x63\x77\x63\x67\x63\x98\x63\xaa\x63\x71\x63\xa9", /* 5780 */ "\x00\x00\x63\x89\x63\x83\x63\x9b\x63\x6b\x63\xa8\x63\x84\x63\x88\x63\x99\x63\xa1\x63\xac\x63\x92\x63\x8f\x63\x80\x63\x7b\x63\x69\x63\x68\x63\x7a\x65\x5d\x65\x56\x65\x51\x65\x59\x65\x57\x55\x5f\x65\x4f\x65\x58\x65\x55\x65\x54\x65\x9c\x65\x9b\x65\xac\x65\xcf\x65\xcb\x65\xcc\x65\xce\x66\x5d\x66\x5a\x66\x64\x66\x68\x66\x66\x66\x5e\x66\xf9\x52\xd7\x67\x1b\x68\x81\x68\xaf\x68\xa2\x68\x93\x68\xb5\x68\x7f\x68\x76\x68\xb1\x68\xa7\x68\x97\x68\xb0\x68\x83\x68\xc4\x68\xad\x68\x86\x68\x85\x68\x94\x68\x9d\x68\xa8\x68\x9f\x68\xa1\x68\x82\x6b\x32\x6b\xba\x6b\xeb\x6b\xec\x6c\x2b\x6d\x8e\x6d\xbc\x6d\xf3\x6d\xd9\x6d\xb2\x6d\xe1\x6d\xcc\x6d\xe4\x6d\xfb\x6d\xfa\x6e\x05\x6d\xc7\x6d\xcb\x6d\xaf\x6d\xd1\x6d\xae\x6d\xde\x6d\xf9\x6d\xb8\x6d\xf7\x6d\xf5\x6d\xc5\x6d\xd2\x6e\x1a\x6d\xb5\x6d\xda\x6d\xeb\x6d\xd8\x6d\xea\x6d\xf1\x6d\xee\x6d\xe8\x6d\xc6\x6d\xc4\x6d\xaa\x6d\xec\x6d\xbf\x6d\xe6\x70\xf9\x71\x09\x71\x0a\x70\xfd\x70\xef\x72\x3d\x72\x7d\x72\x81\x73\x1c\x73\x1b\x73\x16\x73\x13\x73\x19\x73\x87\x74\x05\x74\x0a\x74\x03\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x73\xfe\x74\x0d\x74\xe0\x74\xf6\x74\xf7\x75\x1c\x75\x22\x75\x65\x75\x66\x75\x62\x75\x70\x75\x8f\x75\xd4\x75\xd5\x75\xb5\x75\xca\x75\xcd\x76\x8e\x76\xd4\x76\xd2\x76\xdb\x77\x37\x77\x3e\x77\x3c\x77\x36\x77\x38\x77\x3a\x78\x6b\x78\x43\x78\x4e\x79\x65\x79\x68\x79\x6d\x79\xfb\x7a\x92\x7a\x95\x7b\x20\x7b\x28\x7b\x1b\x7b\x2c\x7b\x26\x7b\x19\x7b\x1e\x7b\x2e\x7c\x92\x7c\x97\x7c\x95\x7d\x46\x7d\x43\x7d\x71\x7d\x2e\x7d\x39\x7d\x3c\x7d\x40\x7d\x30\x7d\x33\x7d\x44\x7d\x2f\x7d\x42\x7d\x32\x7d\x31\x7f\x3d", /* 5880 */ "\x00\x00\x7f\x9e\x7f\x9a\x7f\xcc\x7f\xce\x7f\xd2\x80\x1c\x80\x4a\x80\x46\x81\x2f\x81\x16\x81\x23\x81\x2b\x81\x29\x81\x30\x81\x24\x82\x02\x82\x35\x82\x37\x82\x36\x82\x39\x83\x8e\x83\x9e\x83\x98\x83\x78\x83\xa2\x83\x96\x83\xbd\x83\xab\x83\x92\x83\x8a\x83\x93\x83\x89\x83\xa0\x83\x77\x83\x7b\x83\x7c\x83\x86\x83\xa7\x86\x55\x5f\x6a\x86\xc7\x86\xc0\x86\xb6\x86\xc4\x86\xb5\x86\xc6\x86\xcb\x86\xb1\x86\xaf\x86\xc9\x88\x53\x88\x9e\x88\x88\x88\xab\x88\x92\x88\x96\x88\x8d\x88\x8b\x89\x93\x89\x8f\x8a\x2a\x8a\x1d\x8a\x23\x8a\x25\x8a\x31\x8a\x2d\x8a\x1f\x8a\x1b\x8a\x22\x8c\x49\x8c\x5a\x8c\xa9\x8c\xac\x8c\xab\x8c\xa8\x8c\xaa\x8c\xa7\x8d\x67\x8d\x66\x8d\xbe\x8d\xba\x8e\xdb\x8e\xdf\x90\x19\x90\x0d\x90\x1a\x90\x17\x90\x23\x90\x1f\x90\x1d\x90\x10\x90\x15\x90\x1e\x90\x20\x90\x0f\x90\x22\x90\x16\x90\x1b\x90\x14\x90\xe8\x90\xed\x90\xfd\x91\x57\x91\xce\x91\xf5\x91\xe6\x91\xe3\x91\xe7\x91\xed\x91\xe9\x95\x89\x96\x6a\x96\x75\x96\x73\x96\x78\x96\x70\x96\x74\x96\x76\x96\x77\x96\x6c\x96\xc0\x96\xea\x96\xe9\x7a\xe0\x7a\xdf\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x02\x98\x03\x9b\x5a\x9c\xe5\x9e\x75\x9e\x7f\x9e\xa5\x9e\xbb\x50\xa2\x50\x8d\x50\x85\x50\x99\x50\x91\x50\x80\x50\x96\x50\x98\x50\x9a\x67\x00\x51\xf1\x52\x72\x52\x74\x52\x75\x52\x69\x52\xde\x52\xdd\x52\xdb\x53\x5a\x53\xa5\x55\x7b\x55\x80\x55\xa7\x55\x7c\x55\x8a\x55\x9d\x55\x98\x55\x82\x55\x9c\x55\xaa\x55\x94\x55\x87\x55\x8b\x55\x83\x55\xb3\x55\xae\x55\x9f\x55\x3e\x55\xb2\x55\x9a\x55\xbb\x55\xac\x55\xb1\x55\x7e\x55\x89\x55\xab\x55\x99\x57\x0d\x58\x2f\x58\x2a\x58\x34\x58\x24\x58\x30\x58\x31\x58\x21", /* 5980 */ "\x00\x00\x58\x1d\x58\x20\x58\xf9\x58\xfa\x59\x60\x5a\x77\x5a\x9a\x5a\x7f\x5a\x92\x5a\x9b\x5a\xa7\x5b\x73\x5b\x71\x5b\xd2\x5b\xcc\x5b\xd3\x5b\xd0\x5c\x0a\x5c\x0b\x5c\x31\x5d\x4c\x5d\x50\x5d\x34\x5d\x47\x5d\xfd\x5e\x45\x5e\x3d\x5e\x40\x5e\x43\x5e\x7e\x5e\xca\x5e\xc1\x5e\xc2\x5e\xc4\x5f\x3c\x5f\x6d\x5f\xa9\x5f\xaa\x5f\xa8\x60\xd1\x60\xe1\x60\xb2\x60\xb6\x60\xe0\x61\x1c\x61\x23\x60\xfa\x61\x15\x60\xf0\x60\xfb\x60\xf4\x61\x68\x60\xf1\x61\x0e\x60\xf6\x61\x09\x61\x00\x61\x12\x62\x1f\x62\x49\x63\xa3\x63\x8c\x63\xcf\x63\xc0\x63\xe9\x63\xc9\x63\xc6\x63\xcd\x63\xd2\x63\xe3\x63\xd0\x63\xe1\x63\xd6\x63\xed\x63\xee\x63\x76\x63\xf4\x63\xea\x63\xdb\x64\x52\x63\xda\x63\xf9\x65\x5e\x65\x66\x65\x62\x65\x63\x65\x91\x65\x90\x65\xaf\x66\x6e\x66\x70\x66\x74\x66\x76\x66\x6f\x66\x91\x66\x7a\x66\x7e\x66\x77\x66\xfe\x66\xff\x67\x1f\x67\x1d\x68\xfa\x68\xd5\x68\xe0\x68\xd8\x68\xd7\x69\x05\x68\xdf\x68\xf5\x68\xee\x68\xe7\x68\xf9\x68\xd2\x68\xf2\x68\xe3\x68\xcb\x68\xcd\x69\x0d\x69\x12\x69\x0e\x68\xc9\x68\xda\x69\x6e\x68\xfb\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x3e\x6b\x3a\x6b\x3d\x6b\x98\x6b\x96\x6b\xbc\x6b\xef\x6c\x2e\x6c\x2f\x6c\x2c\x6e\x2f\x6e\x38\x6e\x54\x6e\x21\x6e\x32\x6e\x67\x6e\x4a\x6e\x20\x6e\x25\x6e\x23\x6e\x1b\x6e\x5b\x6e\x58\x6e\x24\x6e\x56\x6e\x6e\x6e\x2d\x6e\x26\x6e\x6f\x6e\x34\x6e\x4d\x6e\x3a\x6e\x2c\x6e\x43\x6e\x1d\x6e\x3e\x6e\xcb\x6e\x89\x6e\x19\x6e\x4e\x6e\x63\x6e\x44\x6e\x72\x6e\x69\x6e\x5f\x71\x19\x71\x1a\x71\x26\x71\x30\x71\x21\x71\x36\x71\x6e\x71\x1c\x72\x4c\x72\x84\x72\x80\x73\x36\x73\x25\x73\x34\x73\x29\x74\x3a\x74\x2a\x74\x33", /* 5a80 */ "\x00\x00\x74\x22\x74\x25\x74\x35\x74\x36\x74\x34\x74\x2f\x74\x1b\x74\x26\x74\x28\x75\x25\x75\x26\x75\x6b\x75\x6a\x75\xe2\x75\xdb\x75\xe3\x75\xd9\x75\xd8\x75\xde\x75\xe0\x76\x7b\x76\x7c\x76\x96\x76\x93\x76\xb4\x76\xdc\x77\x4f\x77\xed\x78\x5d\x78\x6c\x78\x6f\x7a\x0d\x7a\x08\x7a\x0b\x7a\x05\x7a\x00\x7a\x98\x7a\x97\x7a\x96\x7a\xe5\x7a\xe3\x7b\x49\x7b\x56\x7b\x46\x7b\x50\x7b\x52\x7b\x54\x7b\x4d\x7b\x4b\x7b\x4f\x7b\x51\x7c\x9f\x7c\xa5\x7d\x5e\x7d\x50\x7d\x68\x7d\x55\x7d\x2b\x7d\x6e\x7d\x72\x7d\x61\x7d\x66\x7d\x62\x7d\x70\x7d\x73\x55\x84\x7f\xd4\x7f\xd5\x80\x0b\x80\x52\x80\x85\x81\x55\x81\x54\x81\x4b\x81\x51\x81\x4e\x81\x39\x81\x46\x81\x3e\x81\x4c\x81\x53\x81\x74\x82\x12\x82\x1c\x83\xe9\x84\x03\x83\xf8\x84\x0d\x83\xe0\x83\xc5\x84\x0b\x83\xc1\x83\xef\x83\xf1\x83\xf4\x84\x57\x84\x0a\x83\xf0\x84\x0c\x83\xcc\x83\xfd\x83\xf2\x83\xca\x84\x38\x84\x0e\x84\x04\x83\xdc\x84\x07\x83\xd4\x83\xdf\x86\x5b\x86\xdf\x86\xd9\x86\xed\x86\xd4\x86\xdb\x86\xe4\x86\xd0\x86\xde\x88\x57\x88\xc1\x88\xc2\x88\xb1\x89\x83\x89\x96\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x3b\x8a\x60\x8a\x55\x8a\x5e\x8a\x3c\x8a\x41\x8a\x54\x8a\x5b\x8a\x50\x8a\x46\x8a\x34\x8a\x3a\x8a\x36\x8a\x56\x8c\x61\x8c\x82\x8c\xaf\x8c\xbc\x8c\xb3\x8c\xbd\x8c\xc1\x8c\xbb\x8c\xc0\x8c\xb4\x8c\xb7\x8c\xb6\x8c\xbf\x8c\xb8\x8d\x8a\x8d\x85\x8d\x81\x8d\xce\x8d\xdd\x8d\xcb\x8d\xda\x8d\xd1\x8d\xcc\x8d\xdb\x8d\xc6\x8e\xfb\x8e\xf8\x8e\xfc\x8f\x9c\x90\x2e\x90\x35\x90\x31\x90\x38\x90\x32\x90\x36\x91\x02\x90\xf5\x91\x09\x90\xfe\x91\x63\x91\x65\x91\xcf\x92\x14\x92\x15\x92\x23\x92\x09\x92\x1e\x92\x0d\x92\x10", /* 5b80 */ "\x00\x00\x92\x07\x92\x11\x95\x94\x95\x8f\x95\x8b\x95\x91\x95\x93\x95\x92\x95\x8e\x96\x8a\x96\x8e\x96\x8b\x96\x7d\x96\x85\x96\x86\x96\x8d\x96\x72\x96\x84\x96\xc1\x96\xc5\x96\xc4\x96\xc6\x96\xc7\x96\xef\x96\xf2\x97\xcc\x98\x05\x98\x06\x98\x08\x98\xe7\x98\xea\x98\xef\x98\xe9\x98\xf2\x98\xed\x99\xae\x99\xad\x9e\xc3\x9e\xcd\x9e\xd1\x4e\x82\x50\xad\x50\xb5\x50\xb2\x50\xb3\x50\xc5\x50\xbe\x50\xac\x50\xb7\x50\xbb\x50\xaf\x50\xc7\x52\x7f\x52\x77\x52\x7d\x52\xdf\x52\xe6\x52\xe4\x52\xe2\x52\xe3\x53\x2f\x55\xdf\x55\xe8\x55\xd3\x55\xe6\x55\xce\x55\xdc\x55\xc7\x55\xd1\x55\xe3\x55\xe4\x55\xef\x55\xda\x55\xe1\x55\xc5\x55\xc6\x55\xe5\x55\xc9\x57\x12\x57\x13\x58\x5e\x58\x51\x58\x58\x58\x57\x58\x5a\x58\x54\x58\x6b\x58\x4c\x58\x6d\x58\x4a\x58\x62\x58\x52\x58\x4b\x59\x67\x5a\xc1\x5a\xc9\x5a\xcc\x5a\xbe\x5a\xbd\x5a\xbc\x5a\xb3\x5a\xc2\x5a\xb2\x5d\x69\x5d\x6f\x5e\x4c\x5e\x79\x5e\xc9\x5e\xc8\x5f\x12\x5f\x59\x5f\xac\x5f\xae\x61\x1a\x61\x0f\x61\x48\x61\x1f\x60\xf3\x61\x1b\x60\xf9\x61\x01\x61\x08\x61\x4e\x61\x4c\x61\x44\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x4d\x61\x3e\x61\x34\x61\x27\x61\x0d\x61\x06\x61\x37\x62\x21\x62\x22\x64\x13\x64\x3e\x64\x1e\x64\x2a\x64\x2d\x64\x3d\x64\x2c\x64\x0f\x64\x1c\x64\x14\x64\x0d\x64\x36\x64\x16\x64\x17\x64\x06\x65\x6c\x65\x9f\x65\xb0\x66\x97\x66\x89\x66\x87\x66\x88\x66\x96\x66\x84\x66\x98\x66\x8d\x67\x03\x69\x94\x69\x6d\x69\x5a\x69\x77\x69\x60\x69\x54\x69\x75\x69\x30\x69\x82\x69\x4a\x69\x68\x69\x6b\x69\x5e\x69\x53\x69\x79\x69\x86\x69\x5d\x69\x63\x69\x5b\x6b\x47\x6b\x72\x6b\xc0\x6b\xbf\x6b\xd3\x6b\xfd\x6e\xa2\x6e\xaf", /* 5c80 */ "\x00\x00\x6e\xd3\x6e\xb6\x6e\xc2\x6e\x90\x6e\x9d\x6e\xc7\x6e\xc5\x6e\xa5\x6e\x98\x6e\xbc\x6e\xba\x6e\xab\x6e\xd1\x6e\x96\x6e\x9c\x6e\xc4\x6e\xd4\x6e\xaa\x6e\xa7\x6e\xb4\x71\x4e\x71\x59\x71\x69\x71\x64\x71\x49\x71\x67\x71\x5c\x71\x6c\x71\x66\x71\x4c\x71\x65\x71\x5e\x71\x46\x71\x68\x71\x56\x72\x3a\x72\x52\x73\x37\x73\x45\x73\x3f\x73\x3e\x74\x6f\x74\x5a\x74\x55\x74\x5f\x74\x5e\x74\x41\x74\x3f\x74\x59\x74\x5b\x74\x5c\x75\x76\x75\x78\x76\x00\x75\xf0\x76\x01\x75\xf2\x75\xf1\x75\xfa\x75\xff\x75\xf4\x75\xf3\x76\xde\x76\xdf\x77\x5b\x77\x6b\x77\x66\x77\x5e\x77\x63\x77\x79\x77\x6a\x77\x6c\x77\x5c\x77\x65\x77\x68\x77\x62\x77\xee\x78\x8e\x78\xb0\x78\x97\x78\x98\x78\x8c\x78\x89\x78\x7c\x78\x91\x78\x93\x78\x7f\x79\x7a\x79\x7f\x79\x81\x84\x2c\x79\xbd\x7a\x1c\x7a\x1a\x7a\x20\x7a\x14\x7a\x1f\x7a\x1e\x7a\x9f\x7a\xa0\x7b\x77\x7b\xc0\x7b\x60\x7b\x6e\x7b\x67\x7c\xb1\x7c\xb3\x7c\xb5\x7d\x93\x7d\x79\x7d\x91\x7d\x81\x7d\x8f\x7d\x5b\x7f\x6e\x7f\x69\x7f\x6a\x7f\x72\x7f\xa9\x7f\xa8\x7f\xa4\x80\x56\x80\x58\x80\x86\x80\x84\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x71\x81\x70\x81\x78\x81\x65\x81\x6e\x81\x73\x81\x6b\x81\x79\x81\x7a\x81\x66\x82\x05\x82\x47\x84\x82\x84\x77\x84\x3d\x84\x31\x84\x75\x84\x66\x84\x6b\x84\x49\x84\x6c\x84\x5b\x84\x3c\x84\x35\x84\x61\x84\x63\x84\x69\x84\x6d\x84\x46\x86\x5e\x86\x5c\x86\x5f\x86\xf9\x87\x13\x87\x08\x87\x07\x87\x00\x86\xfe\x86\xfb\x87\x02\x87\x03\x87\x06\x87\x0a\x88\x59\x88\xdf\x88\xd4\x88\xd9\x88\xdc\x88\xd8\x88\xdd\x88\xe1\x88\xca\x88\xd5\x88\xd2\x89\x9c\x89\xe3\x8a\x6b\x8a\x72\x8a\x73\x8a\x66\x8a\x69\x8a\x70\x8a\x87", /* 5d80 */ "\x00\x00\x8a\x7c\x8a\x63\x8a\xa0\x8a\x71\x8a\x85\x8a\x6d\x8a\x62\x8a\x6e\x8a\x6c\x8a\x79\x8a\x7b\x8a\x3e\x8a\x68\x8c\x62\x8c\x8a\x8c\x89\x8c\xca\x8c\xc7\x8c\xc8\x8c\xc4\x8c\xb2\x8c\xc3\x8c\xc2\x8c\xc5\x8d\xe1\x8d\xdf\x8d\xe8\x8d\xef\x8d\xf3\x8d\xfa\x8d\xea\x8d\xe4\x8d\xe6\x8e\xb2\x8f\x03\x8f\x09\x8e\xfe\x8f\x0a\x8f\x9f\x8f\xb2\x90\x4b\x90\x4a\x90\x53\x90\x42\x90\x54\x90\x3c\x90\x55\x90\x50\x90\x47\x90\x4f\x90\x4e\x90\x4d\x90\x51\x90\x3e\x90\x41\x91\x12\x91\x17\x91\x6c\x91\x6a\x91\x69\x91\xc9\x92\x37\x92\x57\x92\x38\x92\x3d\x92\x40\x92\x3e\x92\x5b\x92\x4b\x92\x64\x92\x51\x92\x34\x92\x49\x92\x4d\x92\x45\x92\x39\x92\x3f\x92\x5a\x95\x98\x96\x98\x96\x94\x96\x95\x96\xcd\x96\xcb\x96\xc9\x96\xca\x96\xf7\x96\xfb\x96\xf9\x96\xf6\x97\x56\x97\x74\x97\x76\x98\x10\x98\x11\x98\x13\x98\x0a\x98\x12\x98\x0c\x98\xfc\x98\xf4\x98\xfd\x98\xfe\x99\xb3\x99\xb1\x99\xb4\x9a\xe1\x9c\xe9\x9e\x82\x9f\x0e\x9f\x13\x9f\x20\x50\xe7\x50\xee\x50\xe5\x50\xd6\x50\xed\x50\xda\x50\xd5\x50\xcf\x50\xd1\x50\xf1\x50\xce\x50\xe9\x51\x62\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf3\x52\x83\x52\x82\x53\x31\x53\xad\x55\xfe\x56\x00\x56\x1b\x56\x17\x55\xfd\x56\x14\x56\x06\x56\x09\x56\x0d\x56\x0e\x55\xf7\x56\x16\x56\x1f\x56\x08\x56\x10\x55\xf6\x57\x18\x57\x16\x58\x75\x58\x7e\x58\x83\x58\x93\x58\x8a\x58\x79\x58\x85\x58\x7d\x58\xfd\x59\x25\x59\x22\x59\x24\x59\x6a\x59\x69\x5a\xe1\x5a\xe6\x5a\xe9\x5a\xd7\x5a\xd6\x5a\xd8\x5a\xe3\x5b\x75\x5b\xde\x5b\xe7\x5b\xe1\x5b\xe5\x5b\xe6\x5b\xe8\x5b\xe2\x5b\xe4\x5b\xdf\x5c\x0d\x5c\x62\x5d\x84\x5d\x87\x5e\x5b\x5e\x63\x5e\x55\x5e\x57\x5e\x54", /* 5e80 */ "\x00\x00\x5e\xd3\x5e\xd6\x5f\x0a\x5f\x46\x5f\x70\x5f\xb9\x61\x47\x61\x3f\x61\x4b\x61\x77\x61\x62\x61\x63\x61\x5f\x61\x5a\x61\x58\x61\x75\x62\x2a\x64\x87\x64\x58\x64\x54\x64\xa4\x64\x78\x64\x5f\x64\x7a\x64\x51\x64\x67\x64\x34\x64\x6d\x64\x7b\x65\x72\x65\xa1\x65\xd7\x65\xd6\x66\xa2\x66\xa8\x66\x9d\x69\x9c\x69\xa8\x69\x95\x69\xc1\x69\xae\x69\xd3\x69\xcb\x69\x9b\x69\xb7\x69\xbb\x69\xab\x69\xb4\x69\xd0\x69\xcd\x69\xad\x69\xcc\x69\xa6\x69\xc3\x69\xa3\x6b\x49\x6b\x4c\x6c\x33\x6f\x33\x6f\x14\x6e\xfe\x6f\x13\x6e\xf4\x6f\x29\x6f\x3e\x6f\x20\x6f\x2c\x6f\x0f\x6f\x02\x6f\x22\x6e\xff\x6e\xef\x6f\x06\x6f\x31\x6f\x38\x6f\x32\x6f\x23\x6f\x15\x6f\x2b\x6f\x2f\x6f\x88\x6f\x2a\x6e\xec\x6f\x01\x6e\xf2\x6e\xcc\x6e\xf7\x71\x94\x71\x99\x71\x7d\x71\x8a\x71\x84\x71\x92\x72\x3e\x72\x92\x72\x96\x73\x44\x73\x50\x74\x64\x74\x63\x74\x6a\x74\x70\x74\x6d\x75\x04\x75\x91\x76\x27\x76\x0d\x76\x0b\x76\x09\x76\x13\x76\xe1\x76\xe3\x77\x84\x77\x7d\x77\x7f\x77\x61\x78\xc1\x78\x9f\x78\xa7\x78\xb3\x78\xa9\x78\xa3\x79\x8e\x79\x8f\x79\x8d\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x2e\x7a\x31\x7a\xaa\x7a\xa9\x7a\xed\x7a\xef\x7b\xa1\x7b\x95\x7b\x8b\x7b\x75\x7b\x97\x7b\x9d\x7b\x94\x7b\x8f\x7b\xb8\x7b\x87\x7b\x84\x7c\xb9\x7c\xbd\x7c\xbe\x7d\xbb\x7d\xb0\x7d\x9c\x7d\xbd\x7d\xbe\x7d\xa0\x7d\xca\x7d\xb4\x7d\xb2\x7d\xb1\x7d\xba\x7d\xa2\x7d\xbf\x7d\xb5\x7d\xb8\x7d\xad\x7d\xd2\x7d\xc7\x7d\xac\x7f\x70\x7f\xe0\x7f\xe1\x7f\xdf\x80\x5e\x80\x5a\x80\x87\x81\x50\x81\x80\x81\x8f\x81\x88\x81\x8a\x81\x7f\x81\x82\x81\xe7\x81\xfa\x82\x07\x82\x14\x82\x1e\x82\x4b\x84\xc9\x84\xbf\x84\xc6\x84\xc4", /* 5f80 */ "\x00\x00\x84\x99\x84\x9e\x84\xb2\x84\x9c\x84\xcb\x84\xb8\x84\xc0\x84\xd3\x84\x90\x84\xbc\x84\xd1\x84\xca\x87\x3f\x87\x1c\x87\x3b\x87\x22\x87\x25\x87\x34\x87\x18\x87\x55\x87\x37\x87\x29\x88\xf3\x89\x02\x88\xf4\x88\xf9\x88\xf8\x88\xfd\x88\xe8\x89\x1a\x88\xef\x8a\xa6\x8a\x8c\x8a\x9e\x8a\xa3\x8a\x8d\x8a\xa1\x8a\x93\x8a\xa4\x8a\xaa\x8a\xa5\x8a\xa8\x8a\x98\x8a\x91\x8a\x9a\x8a\xa7\x8c\x6a\x8c\x8d\x8c\x8c\x8c\xd3\x8c\xd1\x8c\xd2\x8d\x6b\x8d\x99\x8d\x95\x8d\xfc\x8f\x14\x8f\x12\x8f\x15\x8f\x13\x8f\xa3\x90\x60\x90\x58\x90\x5c\x90\x63\x90\x59\x90\x5e\x90\x62\x90\x5d\x90\x5b\x91\x19\x91\x18\x91\x1e\x91\x75\x91\x78\x91\x77\x91\x74\x92\x78\x92\x80\x92\x85\x92\x98\x92\x96\x92\x7b\x92\x93\x92\x9c\x92\xa8\x92\x7c\x92\x91\x95\xa1\x95\xa8\x95\xa9\x95\xa3\x95\xa5\x95\xa4\x96\x99\x96\x9c\x96\x9b\x96\xcc\x96\xd2\x97\x00\x97\x7c\x97\x85\x97\xf6\x98\x17\x98\x18\x98\xaf\x98\xb1\x99\x03\x99\x05\x99\x0c\x99\x09\x99\xc1\x9a\xaf\x9a\xb0\x9a\xe6\x9b\x41\x9b\x42\x9c\xf4\x9c\xf6\x9c\xf3\x9e\xbc\x9f\x3b\x9f\x4a\x51\x04\x51\x00\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xfb\x50\xf5\x50\xf9\x51\x02\x51\x08\x51\x09\x51\x05\x51\xdc\x52\x87\x52\x88\x52\x89\x52\x8d\x52\x8a\x52\xf0\x53\xb2\x56\x2e\x56\x3b\x56\x39\x56\x32\x56\x3f\x56\x34\x56\x29\x56\x53\x56\x4e\x56\x57\x56\x74\x56\x36\x56\x2f\x56\x30\x58\x80\x58\x9f\x58\x9e\x58\xb3\x58\x9c\x58\xae\x58\xa9\x58\xa6\x59\x6d\x5b\x09\x5a\xfb\x5b\x0b\x5a\xf5\x5b\x0c\x5b\x08\x5b\xee\x5b\xec\x5b\xe9\x5b\xeb\x5c\x64\x5c\x65\x5d\x9d\x5d\x94\x5e\x62\x5e\x5f\x5e\x61\x5e\xe2\x5e\xda\x5e\xdf\x5e\xdd\x5e\xe3\x5e\xe0\x5f\x48\x5f\x71", /* 6080 */ "\x00\x00\x5f\xb7\x5f\xb5\x61\x76\x61\x67\x61\x6e\x61\x5d\x61\x55\x61\x82\x61\x7c\x61\x70\x61\x6b\x61\x7e\x61\xa7\x61\x90\x61\xab\x61\x8e\x61\xac\x61\x9a\x61\xa4\x61\x94\x61\xae\x62\x2e\x64\x69\x64\x6f\x64\x79\x64\x9e\x64\xb2\x64\x88\x64\x90\x64\xb0\x64\xa5\x64\x93\x64\x95\x64\xa9\x64\x92\x64\xae\x64\xad\x64\xab\x64\x9a\x64\xac\x64\x99\x64\xa2\x64\xb3\x65\x75\x65\x77\x65\x78\x66\xae\x66\xab\x66\xb4\x66\xb1\x6a\x23\x6a\x1f\x69\xe8\x6a\x01\x6a\x1e\x6a\x19\x69\xfd\x6a\x21\x6a\x13\x6a\x0a\x69\xf3\x6a\x02\x6a\x05\x69\xed\x6a\x11\x6b\x50\x6b\x4e\x6b\xa4\x6b\xc5\x6b\xc6\x6f\x3f\x6f\x7c\x6f\x84\x6f\x51\x6f\x66\x6f\x54\x6f\x86\x6f\x6d\x6f\x5b\x6f\x78\x6f\x6e\x6f\x8e\x6f\x7a\x6f\x70\x6f\x64\x6f\x97\x6f\x58\x6e\xd5\x6f\x6f\x6f\x60\x6f\x5f\x71\x9f\x71\xac\x71\xb1\x71\xa8\x72\x56\x72\x9b\x73\x4e\x73\x57\x74\x69\x74\x8b\x74\x83\x74\x7e\x74\x80\x75\x7f\x76\x20\x76\x29\x76\x1f\x76\x24\x76\x26\x76\x21\x76\x22\x76\x9a\x76\xba\x76\xe4\x77\x8e\x77\x87\x77\x8c\x77\x91\x77\x8b\x78\xcb\x78\xc5\x78\xba\x78\xca\x78\xbe\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xd5\x78\xbc\x78\xd0\x7a\x3f\x7a\x3c\x7a\x40\x7a\x3d\x7a\x37\x7a\x3b\x7a\xaf\x7a\xae\x7b\xad\x7b\xb1\x7b\xc4\x7b\xb4\x7b\xc6\x7b\xc7\x7b\xc1\x7b\xa0\x7b\xcc\x7c\xca\x7d\xe0\x7d\xf4\x7d\xef\x7d\xfb\x7d\xd8\x7d\xec\x7d\xdd\x7d\xe8\x7d\xe3\x7d\xda\x7d\xde\x7d\xe9\x7d\x9e\x7d\xd9\x7d\xf2\x7d\xf9\x7f\x75\x7f\x77\x7f\xaf\x7f\xe9\x80\x26\x81\x9b\x81\x9c\x81\x9d\x81\xa0\x81\x9a\x81\x98\x85\x17\x85\x3d\x85\x1a\x84\xee\x85\x2c\x85\x2d\x85\x13\x85\x11\x85\x23\x85\x21\x85\x14\x84\xec\x85\x25\x84\xff\x85\x06", /* 6180 */ "\x00\x00\x87\x82\x87\x74\x87\x76\x87\x60\x87\x66\x87\x78\x87\x68\x87\x59\x87\x57\x87\x4c\x87\x53\x88\x5b\x88\x5d\x89\x10\x89\x07\x89\x12\x89\x13\x89\x15\x89\x0a\x8a\xbc\x8a\xd2\x8a\xc7\x8a\xc4\x8a\x95\x8a\xcb\x8a\xf8\x8a\xb2\x8a\xc9\x8a\xc2\x8a\xbf\x8a\xb0\x8a\xd6\x8a\xcd\x8a\xb6\x8a\xb9\x8a\xdb\x8c\x4c\x8c\x4e\x8c\x6c\x8c\xe0\x8c\xde\x8c\xe6\x8c\xe4\x8c\xec\x8c\xed\x8c\xe2\x8c\xe3\x8c\xdc\x8c\xea\x8c\xe1\x8d\x6d\x8d\x9f\x8d\xa3\x8e\x2b\x8e\x10\x8e\x1d\x8e\x22\x8e\x0f\x8e\x29\x8e\x1f\x8e\x21\x8e\x1e\x8e\xba\x8f\x1d\x8f\x1b\x8f\x1f\x8f\x29\x8f\x26\x8f\x2a\x8f\x1c\x8f\x1e\x8f\x25\x90\x69\x90\x6e\x90\x68\x90\x6d\x90\x77\x91\x30\x91\x2d\x91\x27\x91\x31\x91\x87\x91\x89\x91\x8b\x91\x83\x92\xc5\x92\xbb\x92\xb7\x92\xea\x92\xac\x92\xe4\x92\xc1\x92\xb3\x92\xbc\x92\xd2\x92\xc7\x92\xf0\x92\xb2\x95\xad\x95\xb1\x97\x04\x97\x06\x97\x07\x97\x09\x97\x60\x97\x8d\x97\x8b\x97\x8f\x98\x21\x98\x2b\x98\x1c\x98\xb3\x99\x0a\x99\x13\x99\x12\x99\x18\x99\xdd\x99\xd0\x99\xdf\x99\xdb\x99\xd1\x99\xd5\x99\xd2\x99\xd9\x9a\xb7\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xee\x9a\xef\x9b\x27\x9b\x45\x9b\x44\x9b\x77\x9b\x6f\x9d\x06\x9d\x09\x9d\x03\x9e\xa9\x9e\xbe\x9e\xce\x58\xa8\x9f\x52\x51\x12\x51\x18\x51\x14\x51\x10\x51\x15\x51\x80\x51\xaa\x51\xdd\x52\x91\x52\x93\x52\xf3\x56\x59\x56\x6b\x56\x79\x56\x69\x56\x64\x56\x78\x56\x6a\x56\x68\x56\x65\x56\x71\x56\x6f\x56\x6c\x56\x62\x56\x76\x58\xc1\x58\xbe\x58\xc7\x58\xc5\x59\x6e\x5b\x1d\x5b\x34\x5b\x78\x5b\xf0\x5c\x0e\x5f\x4a\x61\xb2\x61\x91\x61\xa9\x61\x8a\x61\xcd\x61\xb6\x61\xbe\x61\xca\x61\xc8\x62\x30\x64\xc5\x64\xc1", /* 6280 */ "\x00\x00\x64\xcb\x64\xbb\x64\xbc\x64\xda\x64\xc4\x64\xc7\x64\xc2\x64\xcd\x64\xbf\x64\xd2\x64\xd4\x64\xbe\x65\x74\x66\xc6\x66\xc9\x66\xb9\x66\xc4\x66\xc7\x66\xb8\x6a\x3d\x6a\x38\x6a\x3a\x6a\x59\x6a\x6b\x6a\x58\x6a\x39\x6a\x44\x6a\x62\x6a\x61\x6a\x4b\x6a\x47\x6a\x35\x6a\x5f\x6a\x48\x6b\x59\x6b\x77\x6c\x05\x6f\xc2\x6f\xb1\x6f\xa1\x6f\xc3\x6f\xa4\x6f\xc1\x6f\xa7\x6f\xb3\x6f\xc0\x6f\xb9\x6f\xb6\x6f\xa6\x6f\xa0\x6f\xb4\x71\xbe\x71\xc9\x71\xd0\x71\xd2\x71\xc8\x71\xd5\x71\xb9\x71\xce\x71\xd9\x71\xdc\x71\xc3\x71\xc4\x73\x68\x74\x9c\x74\xa3\x74\x98\x74\x9f\x74\x9e\x74\xe2\x75\x0c\x75\x0d\x76\x34\x76\x38\x76\x3a\x76\xe7\x76\xe5\x77\xa0\x77\x9e\x77\x9f\x77\xa5\x78\xe8\x78\xda\x78\xec\x78\xe7\x79\xa6\x7a\x4d\x7a\x4e\x7a\x46\x7a\x4c\x7a\x4b\x7a\xba\x7b\xd9\x7c\x11\x7b\xc9\x7b\xe4\x7b\xdb\x7b\xe1\x7b\xe9\x7b\xe6\x7c\xd5\x7c\xd6\x7e\x0a\x7e\x11\x7e\x08\x7e\x1b\x7e\x23\x7e\x1e\x7e\x1d\x7e\x09\x7e\x10\x7f\x79\x7f\xb2\x7f\xf0\x7f\xf1\x7f\xee\x80\x28\x81\xb3\x81\xa9\x81\xa8\x81\xfb\x82\x08\x82\x58\x82\x59\x85\x4a\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x59\x85\x48\x85\x68\x85\x69\x85\x43\x85\x49\x85\x6d\x85\x6a\x85\x5e\x87\x83\x87\x9f\x87\x9e\x87\xa2\x87\x8d\x88\x61\x89\x2a\x89\x32\x89\x25\x89\x2b\x89\x21\x89\xaa\x89\xa6\x8a\xe6\x8a\xfa\x8a\xeb\x8a\xf1\x8b\x00\x8a\xdc\x8a\xe7\x8a\xee\x8a\xfe\x8b\x01\x8b\x02\x8a\xf7\x8a\xed\x8a\xf3\x8a\xf6\x8a\xfc\x8c\x6b\x8c\x6d\x8c\x93\x8c\xf4\x8e\x44\x8e\x31\x8e\x34\x8e\x42\x8e\x39\x8e\x35\x8f\x3b\x8f\x2f\x8f\x38\x8f\x33\x8f\xa8\x8f\xa6\x90\x75\x90\x74\x90\x78\x90\x72\x90\x7c\x90\x7a\x91\x34\x91\x92\x93\x20", /* 6380 */ "\x00\x00\x93\x36\x92\xf8\x93\x33\x93\x2f\x93\x22\x92\xfc\x93\x2b\x93\x04\x93\x1a\x93\x10\x93\x26\x93\x21\x93\x15\x93\x2e\x93\x19\x95\xbb\x96\xa7\x96\xa8\x96\xaa\x96\xd5\x97\x0e\x97\x11\x97\x16\x97\x0d\x97\x13\x97\x0f\x97\x5b\x97\x5c\x97\x66\x97\x98\x98\x30\x98\x38\x98\x3b\x98\x37\x98\x2d\x98\x39\x98\x24\x99\x10\x99\x28\x99\x1e\x99\x1b\x99\x21\x99\x1a\x99\xed\x99\xe2\x99\xf1\x9a\xb8\x9a\xbc\x9a\xfb\x9a\xed\x9b\x28\x9b\x91\x9d\x15\x9d\x23\x9d\x26\x9d\x28\x9d\x12\x9d\x1b\x9e\xd8\x9e\xd4\x9f\x8d\x9f\x9c\x51\x2a\x51\x1f\x51\x21\x51\x32\x52\xf5\x56\x8e\x56\x80\x56\x90\x56\x85\x56\x87\x56\x8f\x58\xd5\x58\xd3\x58\xd1\x58\xce\x5b\x30\x5b\x2a\x5b\x24\x5b\x7a\x5c\x37\x5c\x68\x5d\xbc\x5d\xba\x5d\xbd\x5d\xb8\x5e\x6b\x5f\x4c\x5f\xbd\x61\xc9\x61\xc2\x61\xc7\x61\xe6\x61\xcb\x62\x32\x62\x34\x64\xce\x64\xca\x64\xd8\x64\xe0\x64\xf0\x64\xe6\x64\xec\x64\xf1\x64\xe2\x64\xed\x65\x82\x65\x83\x66\xd9\x66\xd6\x6a\x80\x6a\x94\x6a\x84\x6a\xa2\x6a\x9c\x6a\xdb\x6a\xa3\x6a\x7e\x6a\x97\x6a\x90\x6a\xa0\x6b\x5c\x6b\xae\x6b\xda\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x08\x6f\xd8\x6f\xf1\x6f\xdf\x6f\xe0\x6f\xdb\x6f\xe4\x6f\xeb\x6f\xef\x6f\x80\x6f\xec\x6f\xe1\x6f\xe9\x6f\xd5\x6f\xee\x6f\xf0\x71\xe7\x71\xdf\x71\xee\x71\xe6\x71\xe5\x71\xed\x71\xec\x71\xf4\x71\xe0\x72\x35\x72\x46\x73\x70\x73\x72\x74\xa9\x74\xb0\x74\xa6\x74\xa8\x76\x46\x76\x42\x76\x4c\x76\xea\x77\xb3\x77\xaa\x77\xb0\x77\xac\x77\xa7\x77\xad\x77\xef\x78\xf7\x78\xfa\x78\xf4\x78\xef\x79\x01\x79\xa7\x79\xaa\x7a\x57\x7a\xbf\x7c\x07\x7c\x0d\x7b\xfe\x7b\xf7\x7c\x0c\x7b\xe0\x7c\xe0\x7c\xdc\x7c\xde\x7c\xe2", /* 6480 */ "\x00\x00\x7c\xdf\x7c\xd9\x7c\xdd\x7e\x2e\x7e\x3e\x7e\x46\x7e\x37\x7e\x32\x7e\x43\x7e\x2b\x7e\x3d\x7e\x31\x7e\x45\x7e\x41\x7e\x34\x7e\x39\x7e\x48\x7e\x35\x7e\x3f\x7e\x2f\x7f\x44\x7f\xf3\x7f\xfc\x80\x71\x80\x72\x80\x70\x80\x6f\x80\x73\x81\xc6\x81\xc3\x81\xba\x81\xc2\x81\xc0\x81\xbf\x81\xbd\x81\xc9\x81\xbe\x81\xe8\x82\x09\x82\x71\x85\xaa\x85\x84\x85\x7e\x85\x9c\x85\x91\x85\x94\x85\xaf\x85\x9b\x85\x87\x85\xa8\x85\x8a\x86\x67\x87\xc0\x87\xd1\x87\xb3\x87\xd2\x87\xc6\x87\xab\x87\xbb\x87\xba\x87\xc8\x87\xcb\x89\x3b\x89\x36\x89\x44\x89\x38\x89\x3d\x89\xac\x8b\x0e\x8b\x17\x8b\x19\x8b\x1b\x8b\x0a\x8b\x20\x8b\x1d\x8b\x04\x8b\x10\x8c\x41\x8c\x3f\x8c\x73\x8c\xfa\x8c\xfd\x8c\xfc\x8c\xf8\x8c\xfb\x8d\xa8\x8e\x49\x8e\x4b\x8e\x48\x8e\x4a\x8f\x44\x8f\x3e\x8f\x42\x8f\x45\x8f\x3f\x90\x7f\x90\x7d\x90\x84\x90\x81\x90\x82\x90\x80\x91\x39\x91\xa3\x91\x9e\x91\x9c\x93\x4d\x93\x82\x93\x28\x93\x75\x93\x4a\x93\x65\x93\x4b\x93\x18\x93\x7e\x93\x6c\x93\x5b\x93\x70\x93\x5a\x93\x54\x95\xca\x95\xcb\x95\xcc\x95\xc8\x95\xc6\x96\xb1\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xb8\x96\xd6\x97\x1c\x97\x1e\x97\xa0\x97\xd3\x98\x46\x98\xb6\x99\x35\x9a\x01\x99\xff\x9b\xae\x9b\xab\x9b\xaa\x9b\xad\x9d\x3b\x9d\x3f\x9e\x8b\x9e\xcf\x9e\xde\x9e\xdc\x9e\xdd\x9e\xdb\x9f\x3e\x9f\x4b\x53\xe2\x56\x95\x56\xae\x58\xd9\x58\xd8\x5b\x38\x5f\x5e\x61\xe3\x62\x33\x64\xf4\x64\xf2\x64\xfe\x65\x06\x64\xfa\x64\xfb\x64\xf7\x65\xb7\x66\xdc\x67\x26\x6a\xb3\x6a\xac\x6a\xc3\x6a\xbb\x6a\xb8\x6a\xc2\x6a\xae\x6a\xaf\x6b\x5f\x6b\x78\x6b\xaf\x70\x09\x70\x0b\x6f\xfe\x70\x06\x6f\xfa\x70\x11\x70\x0f\x71\xfb", /* 6580 */ "\x00\x00\x71\xfc\x71\xfe\x71\xf8\x73\x77\x73\x75\x74\xa7\x74\xbf\x75\x15\x76\x56\x76\x58\x76\x52\x77\xbd\x77\xbf\x77\xbb\x77\xbc\x79\x0e\x79\xae\x7a\x61\x7a\x62\x7a\x60\x7a\xc4\x7a\xc5\x7c\x2b\x7c\x27\x7c\x2a\x7c\x1e\x7c\x23\x7c\x21\x7c\xe7\x7e\x54\x7e\x55\x7e\x5e\x7e\x5a\x7e\x61\x7e\x52\x7e\x59\x7f\x48\x7f\xf9\x7f\xfb\x80\x77\x80\x76\x81\xcd\x81\xcf\x82\x0a\x85\xcf\x85\xa9\x85\xcd\x85\xd0\x85\xc9\x85\xb0\x85\xba\x85\xb9\x85\xa6\x87\xef\x87\xec\x87\xf2\x87\xe0\x89\x86\x89\xb2\x89\xf4\x8b\x28\x8b\x39\x8b\x2c\x8b\x2b\x8c\x50\x8d\x05\x8e\x59\x8e\x63\x8e\x66\x8e\x64\x8e\x5f\x8e\x55\x8e\xc0\x8f\x49\x8f\x4d\x90\x87\x90\x83\x90\x88\x91\xab\x91\xac\x91\xd0\x93\x94\x93\x8a\x93\x96\x93\xa2\x93\xb3\x93\xae\x93\xac\x93\xb0\x93\x98\x93\x9a\x93\x97\x95\xd4\x95\xd6\x95\xd0\x95\xd5\x96\xe2\x96\xdc\x96\xd9\x96\xdb\x96\xde\x97\x24\x97\xa3\x97\xa6\x97\xad\x97\xf9\x98\x4d\x98\x4f\x98\x4c\x98\x4e\x98\x53\x98\xba\x99\x3e\x99\x3f\x99\x3d\x99\x2e\x99\xa5\x9a\x0e\x9a\xc1\x9b\x03\x9b\x06\x9b\x4f\x9b\x4e\x9b\x4d\x9b\xca\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xc9\x9b\xfd\x9b\xc8\x9b\xc0\x9d\x51\x9d\x5d\x9d\x60\x9e\xe0\x9f\x15\x9f\x2c\x51\x33\x56\xa5\x58\xde\x58\xdf\x58\xe2\x5b\xf5\x9f\x90\x5e\xec\x61\xf2\x61\xf7\x61\xf6\x61\xf5\x65\x00\x65\x0f\x66\xe0\x66\xdd\x6a\xe5\x6a\xdd\x6a\xda\x6a\xd3\x70\x1b\x70\x1f\x70\x28\x70\x1a\x70\x1d\x70\x15\x70\x18\x72\x06\x72\x0d\x72\x58\x72\xa2\x73\x78\x73\x7a\x74\xbd\x74\xca\x74\xe3\x75\x87\x75\x86\x76\x5f\x76\x61\x77\xc7\x79\x19\x79\xb1\x7a\x6b\x7a\x69\x7c\x3e\x7c\x3f\x7c\x38\x7c\x3d\x7c\x37\x7c\x40\x7e\x6b\x7e\x6d", /* 6680 */ "\x00\x00\x7e\x79\x7e\x69\x7e\x6a\x7f\x85\x7e\x73\x7f\xb6\x7f\xb9\x7f\xb8\x81\xd8\x85\xe9\x85\xdd\x85\xea\x85\xd5\x85\xe4\x85\xe5\x85\xf7\x87\xfb\x88\x05\x88\x0d\x87\xf9\x87\xfe\x89\x60\x89\x5f\x89\x56\x89\x5e\x8b\x41\x8b\x5c\x8b\x58\x8b\x49\x8b\x5a\x8b\x4e\x8b\x4f\x8b\x46\x8b\x59\x8d\x08\x8d\x0a\x8e\x7c\x8e\x72\x8e\x87\x8e\x76\x8e\x6c\x8e\x7a\x8e\x74\x8f\x54\x8f\x4e\x8f\xad\x90\x8a\x90\x8b\x91\xb1\x91\xae\x93\xe1\x93\xd1\x93\xdf\x93\xc3\x93\xc8\x93\xdc\x93\xdd\x93\xd6\x93\xe2\x93\xcd\x93\xd8\x93\xe4\x93\xd7\x93\xe8\x95\xdc\x96\xb4\x96\xe3\x97\x2a\x97\x27\x97\x61\x97\xdc\x97\xfb\x98\x5e\x98\x58\x98\x5b\x98\xbc\x99\x45\x99\x49\x9a\x16\x9a\x19\x9b\x0d\x9b\xe8\x9b\xe7\x9b\xd6\x9b\xdb\x9d\x89\x9d\x61\x9d\x72\x9d\x6a\x9d\x6c\x9e\x92\x9e\x97\x9e\x93\x9e\xb4\x52\xf8\x56\xa8\x56\xb7\x56\xb6\x56\xb4\x56\xbc\x58\xe4\x5b\x40\x5b\x43\x5b\x7d\x5b\xf6\x5d\xc9\x61\xf8\x61\xfa\x65\x18\x65\x14\x65\x19\x66\xe6\x67\x27\x6a\xec\x70\x3e\x70\x30\x70\x32\x72\x10\x73\x7b\x74\xcf\x76\x62\x76\x65\x79\x26\x79\x2a\x79\x2c\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x2b\x7a\xc7\x7a\xf6\x7c\x4c\x7c\x43\x7c\x4d\x7c\xef\x7c\xf0\x8f\xae\x7e\x7d\x7e\x7c\x7e\x82\x7f\x4c\x80\x00\x81\xda\x82\x66\x85\xfb\x85\xf9\x86\x11\x85\xfa\x86\x06\x86\x0b\x86\x07\x86\x0a\x88\x14\x88\x15\x89\x64\x89\xba\x89\xf8\x8b\x70\x8b\x6c\x8b\x66\x8b\x6f\x8b\x5f\x8b\x6b\x8d\x0f\x8d\x0d\x8e\x89\x8e\x81\x8e\x85\x8e\x82\x91\xb4\x91\xcb\x94\x18\x94\x03\x93\xfd\x95\xe1\x97\x30\x98\xc4\x99\x52\x99\x51\x99\xa8\x9a\x2b\x9a\x30\x9a\x37\x9a\x35\x9c\x13\x9c\x0d\x9e\x79\x9e\xb5\x9e\xe8\x9f\x2f\x9f\x5f", /* 6780 */ "\x00\x00\x9f\x63\x9f\x61\x51\x37\x51\x38\x56\xc1\x56\xc0\x56\xc2\x59\x14\x5c\x6c\x5d\xcd\x61\xfc\x61\xfe\x65\x1d\x65\x1c\x65\x95\x66\xe9\x6a\xfb\x6b\x04\x6a\xfa\x6b\xb2\x70\x4c\x72\x1b\x72\xa7\x74\xd6\x74\xd4\x76\x69\x77\xd3\x7c\x50\x7e\x8f\x7e\x8c\x7f\xbc\x86\x17\x86\x2d\x86\x1a\x88\x23\x88\x22\x88\x21\x88\x1f\x89\x6a\x89\x6c\x89\xbd\x8b\x74\x8b\x77\x8b\x7d\x8d\x13\x8e\x8a\x8e\x8d\x8e\x8b\x8f\x5f\x8f\xaf\x91\xba\x94\x2e\x94\x33\x94\x35\x94\x3a\x94\x38\x94\x32\x94\x2b\x95\xe2\x97\x38\x97\x39\x97\x32\x97\xff\x98\x67\x98\x65\x99\x57\x9a\x45\x9a\x43\x9a\x40\x9a\x3e\x9a\xcf\x9b\x54\x9b\x51\x9c\x2d\x9c\x25\x9d\xaf\x9d\xb4\x9d\xc2\x9d\xb8\x9e\x9d\x9e\xef\x9f\x19\x9f\x5c\x9f\x66\x9f\x67\x51\x3c\x51\x3b\x56\xc8\x56\xca\x56\xc9\x5b\x7f\x5d\xd4\x5d\xd2\x5f\x4e\x61\xff\x65\x24\x6b\x0a\x6b\x61\x70\x51\x70\x58\x73\x80\x74\xe4\x75\x8a\x76\x6e\x76\x6c\x79\xb3\x7c\x60\x7c\x5f\x80\x7e\x80\x7d\x81\xdf\x89\x72\x89\x6f\x89\xfc\x8b\x80\x8d\x16\x8d\x17\x8e\x91\x8e\x93\x8f\x61\x91\x48\x94\x44\x94\x51\x94\x52\x97\x3d\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x3e\x97\xc3\x97\xc1\x98\x6b\x99\x55\x9a\x55\x9a\x4d\x9a\xd2\x9b\x1a\x9c\x49\x9c\x31\x9c\x3e\x9c\x3b\x9d\xd3\x9d\xd7\x9f\x34\x9f\x6c\x9f\x6a\x9f\x94\x56\xcc\x5d\xd6\x62\x00\x65\x23\x65\x2b\x65\x2a\x66\xec\x6b\x10\x74\xda\x7a\xca\x7c\x64\x7c\x63\x7c\x65\x7e\x93\x7e\x96\x7e\x94\x81\xe2\x86\x38\x86\x3f\x88\x31\x8b\x8a\x90\x90\x90\x8f\x94\x63\x94\x60\x94\x64\x97\x68\x98\x6f\x99\x5c\x9a\x5a\x9a\x5b\x9a\x57\x9a\xd3\x9a\xd4\x9a\xd1\x9c\x54\x9c\x57\x9c\x56\x9d\xe5\x9e\x9f\x9e\xf4\x56\xd1\x58\xe9\x65\x2c", /* 6880 */ "\x00\x00\x70\x5e\x76\x71\x76\x72\x77\xd7\x7f\x50\x7f\x88\x88\x36\x88\x39\x88\x62\x8b\x93\x8b\x92\x8b\x96\x82\x77\x8d\x1b\x91\xc0\x94\x6a\x97\x42\x97\x48\x97\x44\x97\xc6\x98\x70\x9a\x5f\x9b\x22\x9b\x58\x9c\x5f\x9d\xf9\x9d\xfa\x9e\x7c\x9e\x7d\x9f\x07\x9f\x77\x9f\x72\x5e\xf3\x6b\x16\x70\x63\x7c\x6c\x7c\x6e\x88\x3b\x89\xc0\x8e\xa1\x91\xc1\x94\x72\x94\x70\x98\x71\x99\x5e\x9a\xd6\x9b\x23\x9e\xcc\x70\x64\x77\xda\x8b\x9a\x94\x77\x97\xc9\x9a\x62\x9a\x65\x7e\x9c\x8b\x9c\x8e\xaa\x91\xc5\x94\x7d\x94\x7e\x94\x7c\x9c\x77\x9c\x78\x9e\xf7\x8c\x54\x94\x7f\x9e\x1a\x72\x28\x9a\x6a\x9b\x31\x9e\x1b\x9e\x1e\x7c\x72\x64\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x42\x4e\x5c\x51\xf5\x53\x1a\x53\x82\x4e\x07\x4e\x0c\x4e\x47\x4e\x8d\x56\xd7\xfa\x0c\x5c\x6e\x5f\x73\x4e\x0f\x51\x87\x4e\x0e\x4e\x2e\x4e\x93\x4e\xc2\x4e\xc9\x4e\xc8\x51\x98\x52\xfc\x53\x6c\x53\xb9\x57\x20\x59\x03\x59\x2c\x5c\x10\x5d\xff\x65\xe1\x6b\xb3\x6b\xcc\x6c\x14\x72\x3f\x4e\x31\x4e\x3c\x4e\xe8\x4e\xdc\x4e\xe9\x4e\xe1\x4e\xdd\x4e\xda\x52\x0c\x53\x1c\x53\x4c\x57\x22\x57\x23\x59\x17\x59\x2f\x5b\x81\x5b\x84\x5c\x12\x5c\x3b\x5c\x74\x5c\x73\x5e\x04\x5e\x80\x5e\x82\x5f\xc9\x62\x09\x62\x50\x6c\x15", /* 6980 */ "\x00\x00\x6c\x36\x6c\x43\x6c\x3f\x6c\x3b\x72\xae\x72\xb0\x73\x8a\x79\xb8\x80\x8a\x96\x1e\x4f\x0e\x4f\x18\x4f\x2c\x4e\xf5\x4f\x14\x4e\xf1\x4f\x00\x4e\xf7\x4f\x08\x4f\x1d\x4f\x02\x4f\x05\x4f\x22\x4f\x13\x4f\x04\x4e\xf4\x4f\x12\x51\xb1\x52\x13\x52\x09\x52\x10\x52\xa6\x53\x22\x53\x1f\x53\x4d\x53\x8a\x54\x07\x56\xe1\x56\xdf\x57\x2e\x57\x2a\x57\x34\x59\x3c\x59\x80\x59\x7c\x59\x85\x59\x7b\x59\x7e\x59\x77\x59\x7f\x5b\x56\x5c\x15\x5c\x25\x5c\x7c\x5c\x7a\x5c\x7b\x5c\x7e\x5d\xdf\x5e\x75\x5e\x84\x5f\x02\x5f\x1a\x5f\x74\x5f\xd5\x5f\xd4\x5f\xcf\x62\x65\x62\x5c\x62\x5e\x62\x64\x62\x61\x62\x66\x62\x62\x62\x59\x62\x60\x62\x5a\x65\xef\x65\xee\x67\x3e\x67\x39\x67\x38\x67\x3b\x67\x3a\x67\x3f\x67\x3c\x67\x33\x6c\x18\x6c\x46\x6c\x52\x6c\x5c\x6c\x4f\x6c\x4a\x6c\x54\x6c\x4b\x6c\x4c\x70\x71\x72\x5e\x72\xb4\x72\xb5\x73\x8e\x75\x2a\x76\x7f\x7a\x75\x7f\x51\x82\x78\x82\x7c\x82\x80\x82\x7d\x82\x7f\x86\x4d\x89\x7e\x90\x99\x90\x97\x90\x98\x90\x9b\x90\x94\x96\x22\x96\x24\x96\x20\x96\x23\x4f\x56\x4f\x3b\x4f\x62\x4f\x49\x4f\x53\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x64\x4f\x3e\x4f\x67\x4f\x52\x4f\x5f\x4f\x41\x4f\x58\x4f\x2d\x4f\x33\x4f\x3f\x4f\x61\x51\x8f\x51\xb9\x52\x1c\x52\x1e\x52\x21\x52\xad\x52\xae\x53\x09\x53\x63\x53\x72\x53\x8e\x53\x8f\x54\x30\x54\x37\x54\x2a\x54\x54\x54\x45\x54\x19\x54\x1c\x54\x25\x54\x18\x54\x3d\x54\x4f\x54\x41\x54\x28\x54\x24\x54\x47\x56\xee\x56\xe7\x56\xe5\x57\x41\x57\x45\x57\x4c\x57\x49\x57\x4b\x57\x52\x59\x06\x59\x40\x59\xa6\x59\x98\x59\xa0\x59\x97\x59\x8e\x59\xa2\x59\x90\x59\x8f\x59\xa7\x59\xa1\x5b\x8e\x5b\x92\x5c\x28\x5c\x2a", /* 6a80 */ "\x00\x00\x5c\x8d\x5c\x8f\x5c\x88\x5c\x8b\x5c\x89\x5c\x92\x5c\x8a\x5c\x86\x5c\x93\x5c\x95\x5d\xe0\x5e\x0a\x5e\x0e\x5e\x8b\x5e\x89\x5e\x8c\x5e\x88\x5e\x8d\x5f\x05\x5f\x1d\x5f\x78\x5f\x76\x5f\xd2\x5f\xd1\x5f\xd0\x5f\xed\x5f\xe8\x5f\xee\x5f\xf3\x5f\xe1\x5f\xe4\x5f\xe3\x5f\xfa\x5f\xef\x5f\xf7\x5f\xfb\x60\x00\x5f\xf4\x62\x3a\x62\x83\x62\x8c\x62\x8e\x62\x8f\x62\x94\x62\x87\x62\x71\x62\x7b\x62\x7a\x62\x70\x62\x81\x62\x88\x62\x77\x62\x7d\x62\x72\x62\x74\x65\x37\x65\xf0\x65\xf4\x65\xf3\x65\xf2\x65\xf5\x67\x45\x67\x47\x67\x59\x67\x55\x67\x4c\x67\x48\x67\x5d\x67\x4d\x67\x5a\x67\x4b\x6b\xd0\x6c\x19\x6c\x1a\x6c\x78\x6c\x67\x6c\x6b\x6c\x84\x6c\x8b\x6c\x8f\x6c\x71\x6c\x6f\x6c\x69\x6c\x9a\x6c\x6d\x6c\x87\x6c\x95\x6c\x9c\x6c\x66\x6c\x73\x6c\x65\x6c\x7b\x6c\x8e\x70\x74\x70\x7a\x72\x63\x72\xbf\x72\xbd\x72\xc3\x72\xc6\x72\xc1\x72\xba\x72\xc5\x73\x95\x73\x97\x73\x93\x73\x94\x73\x92\x75\x3a\x75\x39\x75\x94\x75\x95\x76\x81\x79\x3d\x80\x34\x80\x95\x80\x99\x80\x90\x80\x92\x80\x9c\x82\x90\x82\x8f\x82\x85\x82\x8e\x82\x91\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x93\x82\x8a\x82\x83\x82\x84\x8c\x78\x8f\xc9\x8f\xbf\x90\x9f\x90\xa1\x90\xa5\x90\x9e\x90\xa7\x90\xa0\x96\x30\x96\x28\x96\x2f\x96\x2d\x4e\x33\x4f\x98\x4f\x7c\x4f\x85\x4f\x7d\x4f\x80\x4f\x87\x4f\x76\x4f\x74\x4f\x89\x4f\x84\x4f\x77\x4f\x4c\x4f\x97\x4f\x6a\x4f\x9a\x4f\x79\x4f\x81\x4f\x78\x4f\x90\x4f\x9c\x4f\x94\x4f\x9e\x4f\x92\x4f\x82\x4f\x95\x4f\x6b\x4f\x6e\x51\x9e\x51\xbc\x51\xbe\x52\x35\x52\x32\x52\x33\x52\x46\x52\x31\x52\xbc\x53\x0a\x53\x0b\x53\x3c\x53\x92\x53\x94\x54\x87\x54\x7f\x54\x81\x54\x91", /* 6b80 */ "\x00\x00\x54\x82\x54\x88\x54\x6b\x54\x7a\x54\x7e\x54\x65\x54\x6c\x54\x74\x54\x66\x54\x8d\x54\x6f\x54\x61\x54\x60\x54\x98\x54\x63\x54\x67\x54\x64\x56\xf7\x56\xf9\x57\x6f\x57\x72\x57\x6d\x57\x6b\x57\x71\x57\x70\x57\x76\x57\x80\x57\x75\x57\x7b\x57\x73\x57\x74\x57\x62\x57\x68\x57\x7d\x59\x0c\x59\x45\x59\xb5\x59\xba\x59\xcf\x59\xce\x59\xb2\x59\xcc\x59\xc1\x59\xb6\x59\xbc\x59\xc3\x59\xd6\x59\xb1\x59\xbd\x59\xc0\x59\xc8\x59\xb4\x59\xc7\x5b\x62\x5b\x65\x5b\x93\x5b\x95\x5c\x44\x5c\x47\x5c\xae\x5c\xa4\x5c\xa0\x5c\xb5\x5c\xaf\x5c\xa8\x5c\xac\x5c\x9f\x5c\xa3\x5c\xad\x5c\xa2\x5c\xaa\x5c\xa7\x5c\x9d\x5c\xa5\x5c\xb6\x5c\xb0\x5c\xa6\x5e\x17\x5e\x14\x5e\x19\x5f\x28\x5f\x22\x5f\x23\x5f\x24\x5f\x54\x5f\x82\x5f\x7e\x5f\x7d\x5f\xde\x5f\xe5\x60\x2d\x60\x26\x60\x19\x60\x32\x60\x0b\x60\x34\x60\x0a\x60\x17\x60\x33\x60\x1a\x60\x1e\x60\x2c\x60\x22\x60\x0d\x60\x10\x60\x2e\x60\x13\x60\x11\x60\x0c\x60\x09\x60\x1c\x62\x14\x62\x3d\x62\xad\x62\xb4\x62\xd1\x62\xbe\x62\xaa\x62\xb6\x62\xca\x62\xae\x62\xb3\x62\xaf\x62\xbb\x62\xa9\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb0\x62\xb8\x65\x3d\x65\xa8\x65\xbb\x66\x09\x65\xfc\x66\x04\x66\x12\x66\x08\x65\xfb\x66\x03\x66\x0b\x66\x0d\x66\x05\x65\xfd\x66\x11\x66\x10\x66\xf6\x67\x0a\x67\x85\x67\x6c\x67\x8e\x67\x92\x67\x76\x67\x7b\x67\x98\x67\x86\x67\x84\x67\x74\x67\x8d\x67\x8c\x67\x7a\x67\x9f\x67\x91\x67\x99\x67\x83\x67\x7d\x67\x81\x67\x78\x67\x79\x67\x94\x6b\x25\x6b\x80\x6b\x7e\x6b\xde\x6c\x1d\x6c\x93\x6c\xec\x6c\xeb\x6c\xee\x6c\xd9\x6c\xb6\x6c\xd4\x6c\xad\x6c\xe7\x6c\xb7\x6c\xd0\x6c\xc2\x6c\xba\x6c\xc3\x6c\xc6\x6c\xed", /* 6c80 */ "\x00\x00\x6c\xf2\x6c\xd2\x6c\xdd\x6c\xb4\x6c\x8a\x6c\x9d\x6c\x80\x6c\xde\x6c\xc0\x6d\x30\x6c\xcd\x6c\xc7\x6c\xb0\x6c\xf9\x6c\xcf\x6c\xe9\x6c\xd1\x70\x94\x70\x98\x70\x85\x70\x93\x70\x86\x70\x84\x70\x91\x70\x96\x70\x82\x70\x9a\x70\x83\x72\x6a\x72\xd6\x72\xcb\x72\xd8\x72\xc9\x72\xdc\x72\xd2\x72\xd4\x72\xda\x72\xcc\x72\xd1\x73\xa4\x73\xa1\x73\xad\x73\xa6\x73\xa2\x73\xa0\x73\xac\x73\x9d\x74\xdd\x74\xe8\x75\x3f\x75\x40\x75\x3e\x75\x8c\x75\x98\x76\xaf\x76\xf3\x76\xf1\x76\xf0\x76\xf5\x77\xf8\x77\xfc\x77\xf9\x77\xfb\x77\xfa\x77\xf7\x79\x42\x79\x3f\x79\xc5\x7a\x78\x7a\x7b\x7a\xfb\x7c\x75\x7c\xfd\x80\x35\x80\x8f\x80\xae\x80\xa3\x80\xb8\x80\xb5\x80\xad\x82\x20\x82\xa0\x82\xc0\x82\xab\x82\x9a\x82\x98\x82\x9b\x82\xb5\x82\xa7\x82\xae\x82\xbc\x82\x9e\x82\xba\x82\xb4\x82\xa8\x82\xa1\x82\xa9\x82\xc2\x82\xa4\x82\xc3\x82\xb6\x82\xa2\x86\x70\x86\x6f\x86\x6d\x86\x6e\x8c\x56\x8f\xd2\x8f\xcb\x8f\xd3\x8f\xcd\x8f\xd6\x8f\xd5\x8f\xd7\x90\xb2\x90\xb4\x90\xaf\x90\xb3\x90\xb0\x96\x39\x96\x3d\x96\x3c\x96\x3a\x96\x43\x4f\xcd\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc5\x4f\xd3\x4f\xb2\x4f\xc9\x4f\xcb\x4f\xc1\x4f\xd4\x4f\xdc\x4f\xd9\x4f\xbb\x4f\xb3\x4f\xdb\x4f\xc7\x4f\xd6\x4f\xba\x4f\xc0\x4f\xb9\x4f\xec\x52\x44\x52\x49\x52\xc0\x52\xc2\x53\x3d\x53\x7c\x53\x97\x53\x96\x53\x99\x53\x98\x54\xba\x54\xa1\x54\xad\x54\xa5\x54\xcf\x54\xc3\x83\x0d\x54\xb7\x54\xae\x54\xd6\x54\xb6\x54\xc5\x54\xc6\x54\xa0\x54\x70\x54\xbc\x54\xa2\x54\xbe\x54\x72\x54\xde\x54\xb0\x57\xb5\x57\x9e\x57\x9f\x57\xa4\x57\x8c\x57\x97\x57\x9d\x57\x9b\x57\x94\x57\x98\x57\x8f\x57\x99\x57\xa5\x57\x9a", /* 6d80 */ "\x00\x00\x57\x95\x58\xf4\x59\x0d\x59\x53\x59\xe1\x59\xde\x59\xee\x5a\x00\x59\xf1\x59\xdd\x59\xfa\x59\xfd\x59\xfc\x59\xf6\x59\xe4\x59\xf2\x59\xf7\x59\xdb\x59\xe9\x59\xf3\x59\xf5\x59\xe0\x59\xfe\x59\xf4\x59\xed\x5b\xa8\x5c\x4c\x5c\xd0\x5c\xd8\x5c\xcc\x5c\xd7\x5c\xcb\x5c\xdb\x5c\xde\x5c\xda\x5c\xc9\x5c\xc7\x5c\xca\x5c\xd6\x5c\xd3\x5c\xd4\x5c\xcf\x5c\xc8\x5c\xc6\x5c\xce\x5c\xdf\x5c\xf8\x5d\xf9\x5e\x21\x5e\x22\x5e\x23\x5e\x20\x5e\x24\x5e\xb0\x5e\xa4\x5e\xa2\x5e\x9b\x5e\xa3\x5e\xa5\x5f\x07\x5f\x2e\x5f\x56\x5f\x86\x60\x37\x60\x39\x60\x54\x60\x72\x60\x5e\x60\x45\x60\x53\x60\x47\x60\x49\x60\x5b\x60\x4c\x60\x40\x60\x42\x60\x5f\x60\x24\x60\x44\x60\x58\x60\x66\x60\x6e\x62\x42\x62\x43\x62\xcf\x63\x0d\x63\x0b\x62\xf5\x63\x0e\x63\x03\x62\xeb\x62\xf9\x63\x0f\x63\x0c\x62\xf8\x62\xf6\x63\x00\x63\x13\x63\x14\x62\xfa\x63\x15\x62\xfb\x62\xf0\x65\x41\x65\x43\x65\xaa\x65\xbf\x66\x36\x66\x21\x66\x32\x66\x35\x66\x1c\x66\x26\x66\x22\x66\x33\x66\x2b\x66\x3a\x66\x1d\x66\x34\x66\x39\x66\x2e\x67\x0f\x67\x10\x67\xc1\x67\xf2\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc8\x67\xba\x67\xdc\x67\xbb\x67\xf8\x67\xd8\x67\xc0\x67\xb7\x67\xc5\x67\xeb\x67\xe4\x67\xdf\x67\xb5\x67\xcd\x67\xb3\x67\xf7\x67\xf6\x67\xee\x67\xe3\x67\xc2\x67\xb9\x67\xce\x67\xe7\x67\xf0\x67\xb2\x67\xfc\x67\xc6\x67\xed\x67\xcc\x67\xae\x67\xe6\x67\xdb\x67\xfa\x67\xc9\x67\xca\x67\xc3\x67\xea\x67\xcb\x6b\x28\x6b\x82\x6b\x84\x6b\xb6\x6b\xd6\x6b\xd8\x6b\xe0\x6c\x20\x6c\x21\x6d\x28\x6d\x34\x6d\x2d\x6d\x1f\x6d\x3c\x6d\x3f\x6d\x12\x6d\x0a\x6c\xda\x6d\x33\x6d\x04\x6d\x19\x6d\x3a\x6d\x1a\x6d\x11\x6d\x00", /* 6e80 */ "\x00\x00\x6d\x1d\x6d\x42\x6d\x01\x6d\x18\x6d\x37\x6d\x03\x6d\x0f\x6d\x40\x6d\x07\x6d\x20\x6d\x2c\x6d\x08\x6d\x22\x6d\x09\x6d\x10\x70\xb7\x70\x9f\x70\xbe\x70\xb1\x70\xb0\x70\xa1\x70\xb4\x70\xb5\x70\xa9\x72\x41\x72\x49\x72\x4a\x72\x6c\x72\x70\x72\x73\x72\x6e\x72\xca\x72\xe4\x72\xe8\x72\xeb\x72\xdf\x72\xea\x72\xe6\x72\xe3\x73\x85\x73\xcc\x73\xc2\x73\xc8\x73\xc5\x73\xb9\x73\xb6\x73\xb5\x73\xb4\x73\xeb\x73\xbf\x73\xc7\x73\xbe\x73\xc3\x73\xc6\x73\xb8\x73\xcb\x74\xec\x74\xee\x75\x2e\x75\x47\x75\x48\x75\xa7\x75\xaa\x76\x79\x76\xc4\x77\x08\x77\x03\x77\x04\x77\x05\x77\x0a\x76\xf7\x76\xfb\x76\xfa\x77\xe7\x77\xe8\x78\x06\x78\x11\x78\x12\x78\x05\x78\x10\x78\x0f\x78\x0e\x78\x09\x78\x03\x78\x13\x79\x4a\x79\x4c\x79\x4b\x79\x45\x79\x44\x79\xd5\x79\xcd\x79\xcf\x79\xd6\x79\xce\x7a\x80\x7a\x7e\x7a\xd1\x7b\x00\x7b\x01\x7c\x7a\x7c\x78\x7c\x79\x7c\x7f\x7c\x80\x7c\x81\x7d\x03\x7d\x08\x7d\x01\x7f\x58\x7f\x91\x7f\x8d\x7f\xbe\x80\x07\x80\x0e\x80\x0f\x80\x14\x80\x37\x80\xd8\x80\xc7\x80\xe0\x80\xd1\x80\xc8\x80\xc2\x80\xd0\x00\x00\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc5\x80\xe3\x80\xd9\x80\xdc\x80\xca\x80\xd5\x80\xc9\x80\xcf\x80\xd7\x80\xe6\x80\xcd\x81\xff\x82\x21\x82\x94\x82\xd9\x82\xfe\x82\xf9\x83\x07\x82\xe8\x83\x00\x82\xd5\x83\x3a\x82\xeb\x82\xd6\x82\xf4\x82\xec\x82\xe1\x82\xf2\x82\xf5\x83\x0c\x82\xfb\x82\xf6\x82\xf0\x82\xea\x82\xe4\x82\xe0\x82\xfa\x82\xf3\x82\xed\x86\x77\x86\x74\x86\x7c\x86\x73\x88\x41\x88\x4e\x88\x67\x88\x6a\x88\x69\x89\xd3\x8a\x04\x8a\x07\x8d\x72\x8f\xe3\x8f\xe1\x8f\xee\x8f\xe0\x90\xf1\x90\xbd\x90\xbf\x90\xd5\x90\xc5\x90\xbe\x90\xc7", /* 6f80 */ "\x00\x00\x90\xcb\x90\xc8\x91\xd4\x91\xd3\x96\x54\x96\x4f\x96\x51\x96\x53\x96\x4a\x96\x4e\x50\x1e\x50\x05\x50\x07\x50\x13\x50\x22\x50\x30\x50\x1b\x4f\xf5\x4f\xf4\x50\x33\x50\x37\x50\x2c\x4f\xf6\x4f\xf7\x50\x17\x50\x1c\x50\x20\x50\x27\x50\x35\x50\x2f\x50\x31\x50\x0e\x51\x5a\x51\x94\x51\x93\x51\xca\x51\xc4\x51\xc5\x51\xc8\x51\xce\x52\x61\x52\x5a\x52\x52\x52\x5e\x52\x5f\x52\x55\x52\x62\x52\xcd\x53\x0e\x53\x9e\x55\x26\x54\xe2\x55\x17\x55\x12\x54\xe7\x54\xf3\x54\xe4\x55\x1a\x54\xff\x55\x04\x55\x08\x54\xeb\x55\x11\x55\x05\x54\xf1\x55\x0a\x54\xfb\x54\xf7\x54\xf8\x54\xe0\x55\x0e\x55\x03\x55\x0b\x57\x01\x57\x02\x57\xcc\x58\x32\x57\xd5\x57\xd2\x57\xba\x57\xc6\x57\xbd\x57\xbc\x57\xb8\x57\xb6\x57\xbf\x57\xc7\x57\xd0\x57\xb9\x57\xc1\x59\x0e\x59\x4a\x5a\x19\x5a\x16\x5a\x2d\x5a\x2e\x5a\x15\x5a\x0f\x5a\x17\x5a\x0a\x5a\x1e\x5a\x33\x5b\x6c\x5b\xa7\x5b\xad\x5b\xac\x5c\x03\x5c\x56\x5c\x54\x5c\xec\x5c\xff\x5c\xee\x5c\xf1\x5c\xf7\x5d\x00\x5c\xf9\x5e\x29\x5e\x28\x5e\xa8\x5e\xae\x5e\xaa\x5e\xac\x5f\x33\x5f\x30\x5f\x67\x00\x00\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\xa2\x60\x88\x60\x80\x60\x92\x60\x81\x60\x9d\x60\x83\x60\x95\x60\x9b\x60\x97\x60\x87\x60\x9c\x60\x8e\x62\x19\x62\x46\x62\xf2\x63\x10\x63\x56\x63\x2c\x63\x44\x63\x45\x63\x36\x63\x43\x63\xe4\x63\x39\x63\x4b\x63\x4a\x63\x3c\x63\x29\x63\x41\x63\x34\x63\x58\x63\x54\x63\x59\x63\x2d\x63\x47\x63\x33\x63\x5a\x63\x51\x63\x38\x63\x57\x63\x40\x63\x48\x65\x4a\x65\x46\x65\xc6\x65\xc3\x65\xc4\x65\xc2\x66\x4a\x66\x5f\x66\x47\x66\x51\x67\x12\x67\x13\x68\x1f\x68\x1a\x68\x49\x68\x32", /* 7080 */ "\x00\x00\x68\x33\x68\x3b\x68\x4b\x68\x4f\x68\x16\x68\x31\x68\x1c\x68\x35\x68\x2b\x68\x2d\x68\x2f\x68\x4e\x68\x44\x68\x34\x68\x1d\x68\x12\x68\x14\x68\x26\x68\x28\x68\x2e\x68\x4d\x68\x3a\x68\x25\x68\x20\x6b\x2c\x6b\x2f\x6b\x2d\x6b\x31\x6b\x34\x6b\x6d\x80\x82\x6b\x88\x6b\xe6\x6b\xe4\x6b\xe8\x6b\xe3\x6b\xe2\x6b\xe7\x6c\x25\x6d\x7a\x6d\x63\x6d\x64\x6d\x76\x6d\x0d\x6d\x61\x6d\x92\x6d\x58\x6d\x62\x6d\x6d\x6d\x6f\x6d\x91\x6d\x8d\x6d\xef\x6d\x7f\x6d\x86\x6d\x5e\x6d\x67\x6d\x60\x6d\x97\x6d\x70\x6d\x7c\x6d\x5f\x6d\x82\x6d\x98\x6d\x2f\x6d\x68\x6d\x8b\x6d\x7e\x6d\x80\x6d\x84\x6d\x16\x6d\x83\x6d\x7b\x6d\x7d\x6d\x75\x6d\x90\x70\xdc\x70\xd3\x70\xd1\x70\xdd\x70\xcb\x7f\x39\x70\xe2\x70\xd7\x70\xd2\x70\xde\x70\xe0\x70\xd4\x70\xcd\x70\xc5\x70\xc6\x70\xc7\x70\xda\x70\xce\x70\xe1\x72\x42\x72\x78\x72\x77\x72\x76\x73\x00\x72\xfa\x72\xf4\x72\xfe\x72\xf6\x72\xf3\x72\xfb\x73\x01\x73\xd3\x73\xd9\x73\xe5\x73\xd6\x73\xbc\x73\xe7\x73\xe3\x73\xe9\x73\xdc\x73\xd2\x73\xdb\x73\xd4\x73\xdd\x73\xda\x73\xd7\x73\xd8\x73\xe8\x74\xde\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xdf\x74\xf4\x74\xf5\x75\x21\x75\x5b\x75\x5f\x75\xb0\x75\xc1\x75\xbb\x75\xc4\x75\xc0\x75\xbf\x75\xb6\x75\xba\x76\x8a\x76\xc9\x77\x1d\x77\x1b\x77\x10\x77\x13\x77\x12\x77\x23\x77\x11\x77\x15\x77\x19\x77\x1a\x77\x22\x77\x27\x78\x23\x78\x2c\x78\x22\x78\x35\x78\x2f\x78\x28\x78\x2e\x78\x2b\x78\x21\x78\x29\x78\x33\x78\x2a\x78\x31\x79\x54\x79\x5b\x79\x4f\x79\x5c\x79\x53\x79\x52\x79\x51\x79\xeb\x79\xec\x79\xe0\x79\xee\x79\xed\x79\xea\x79\xdc\x79\xde\x79\xdd\x7a\x86\x7a\x89\x7a\x85\x7a\x8b\x7a\x8c\x7a\x8a", /* 7180 */ "\x00\x00\x7a\x87\x7a\xd8\x7b\x10\x7b\x04\x7b\x13\x7b\x05\x7b\x0f\x7b\x08\x7b\x0a\x7b\x0e\x7b\x09\x7b\x12\x7c\x84\x7c\x91\x7c\x8a\x7c\x8c\x7c\x88\x7c\x8d\x7c\x85\x7d\x1e\x7d\x1d\x7d\x11\x7d\x0e\x7d\x18\x7d\x16\x7d\x13\x7d\x1f\x7d\x12\x7d\x0f\x7d\x0c\x7f\x5c\x7f\x61\x7f\x5e\x7f\x60\x7f\x5d\x7f\x5b\x7f\x96\x7f\x92\x7f\xc3\x7f\xc2\x7f\xc0\x80\x16\x80\x3e\x80\x39\x80\xfa\x80\xf2\x80\xf9\x80\xf5\x81\x01\x80\xfb\x81\x00\x82\x01\x82\x2f\x82\x25\x83\x33\x83\x2d\x83\x44\x83\x19\x83\x51\x83\x25\x83\x56\x83\x3f\x83\x41\x83\x26\x83\x1c\x83\x22\x83\x42\x83\x4e\x83\x1b\x83\x2a\x83\x08\x83\x3c\x83\x4d\x83\x16\x83\x24\x83\x20\x83\x37\x83\x2f\x83\x29\x83\x47\x83\x45\x83\x4c\x83\x53\x83\x1e\x83\x2c\x83\x4b\x83\x27\x83\x48\x86\x53\x86\x52\x86\xa2\x86\xa8\x86\x96\x86\x8d\x86\x91\x86\x9e\x86\x87\x86\x97\x86\x86\x86\x8b\x86\x9a\x86\x85\x86\xa5\x86\x99\x86\xa1\x86\xa7\x86\x95\x86\x98\x86\x8e\x86\x9d\x86\x90\x86\x94\x88\x43\x88\x44\x88\x6d\x88\x75\x88\x76\x88\x72\x88\x80\x88\x71\x88\x7f\x88\x6f\x88\x83\x88\x7e\x88\x74\x00\x00\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x7c\x8a\x12\x8c\x47\x8c\x57\x8c\x7b\x8c\xa4\x8c\xa3\x8d\x76\x8d\x78\x8d\xb5\x8d\xb7\x8d\xb6\x8e\xd1\x8e\xd3\x8f\xfe\x8f\xf5\x90\x02\x8f\xff\x8f\xfb\x90\x04\x8f\xfc\x8f\xf6\x90\xd6\x90\xe0\x90\xd9\x90\xda\x90\xe3\x90\xdf\x90\xe5\x90\xd8\x90\xdb\x90\xd7\x90\xdc\x90\xe4\x91\x50\x91\x4e\x91\x4f\x91\xd5\x91\xe2\x91\xda\x96\x5c\x96\x5f\x96\xbc\x98\xe3\x9a\xdf\x9b\x2f\x4e\x7f\x50\x70\x50\x6a\x50\x61\x50\x5e\x50\x60\x50\x53\x50\x4b\x50\x5d\x50\x72\x50\x48\x50\x4d\x50\x41\x50\x5b\x50\x4a\x50\x62\x50\x15", /* 7280 */ "\x00\x00\x50\x45\x50\x5f\x50\x69\x50\x6b\x50\x63\x50\x64\x50\x46\x50\x40\x50\x6e\x50\x73\x50\x57\x50\x51\x51\xd0\x52\x6b\x52\x6d\x52\x6c\x52\x6e\x52\xd6\x52\xd3\x53\x2d\x53\x9c\x55\x75\x55\x76\x55\x3c\x55\x4d\x55\x50\x55\x34\x55\x2a\x55\x51\x55\x62\x55\x36\x55\x35\x55\x30\x55\x52\x55\x45\x55\x0c\x55\x32\x55\x65\x55\x4e\x55\x39\x55\x48\x55\x2d\x55\x3b\x55\x40\x55\x4b\x57\x0a\x57\x07\x57\xfb\x58\x14\x57\xe2\x57\xf6\x57\xdc\x57\xf4\x58\x00\x57\xed\x57\xfd\x58\x08\x57\xf8\x58\x0b\x57\xf3\x57\xcf\x58\x07\x57\xee\x57\xe3\x57\xf2\x57\xe5\x57\xec\x57\xe1\x58\x0e\x57\xfc\x58\x10\x57\xe7\x58\x01\x58\x0c\x57\xf1\x57\xe9\x57\xf0\x58\x0d\x58\x04\x59\x5c\x5a\x60\x5a\x58\x5a\x55\x5a\x67\x5a\x5e\x5a\x38\x5a\x35\x5a\x6d\x5a\x50\x5a\x5f\x5a\x65\x5a\x6c\x5a\x53\x5a\x64\x5a\x57\x5a\x43\x5a\x5d\x5a\x52\x5a\x44\x5a\x5b\x5a\x48\x5a\x8e\x5a\x3e\x5a\x4d\x5a\x39\x5a\x4c\x5a\x70\x5a\x69\x5a\x47\x5a\x51\x5a\x56\x5a\x42\x5a\x5c\x5b\x72\x5b\x6e\x5b\xc1\x5b\xc0\x5c\x59\x5d\x1e\x5d\x0b\x5d\x1d\x5d\x1a\x5d\x20\x5d\x0c\x5d\x28\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x0d\x5d\x26\x5d\x25\x5d\x0f\x5d\x30\x5d\x12\x5d\x23\x5d\x1f\x5d\x2e\x5e\x3e\x5e\x34\x5e\xb1\x5e\xb4\x5e\xb9\x5e\xb2\x5e\xb3\x5f\x36\x5f\x38\x5f\x9b\x5f\x96\x5f\x9f\x60\x8a\x60\x90\x60\x86\x60\xbe\x60\xb0\x60\xba\x60\xd3\x60\xd4\x60\xcf\x60\xe4\x60\xd9\x60\xdd\x60\xc8\x60\xb1\x60\xdb\x60\xb7\x60\xca\x60\xbf\x60\xc3\x60\xcd\x60\xc0\x63\x32\x63\x65\x63\x8a\x63\x82\x63\x7d\x63\xbd\x63\x9e\x63\xad\x63\x9d\x63\x97\x63\xab\x63\x8e\x63\x6f\x63\x87\x63\x90\x63\x6e\x63\xaf\x63\x75\x63\x9c\x63\x6d\x63\xae", /* 7380 */ "\x00\x00\x63\x7c\x63\xa4\x63\x3b\x63\x9f\x63\x78\x63\x85\x63\x81\x63\x91\x63\x8d\x63\x70\x65\x53\x65\xcd\x66\x65\x66\x61\x66\x5b\x66\x59\x66\x5c\x66\x62\x67\x18\x68\x79\x68\x87\x68\x90\x68\x9c\x68\x6d\x68\x6e\x68\xae\x68\xab\x69\x56\x68\x6f\x68\xa3\x68\xac\x68\xa9\x68\x75\x68\x74\x68\xb2\x68\x8f\x68\x77\x68\x92\x68\x7c\x68\x6b\x68\x72\x68\xaa\x68\x80\x68\x71\x68\x7e\x68\x9b\x68\x96\x68\x8b\x68\xa0\x68\x89\x68\xa4\x68\x78\x68\x7b\x68\x91\x68\x8c\x68\x8a\x68\x7d\x6b\x36\x6b\x33\x6b\x37\x6b\x38\x6b\x91\x6b\x8f\x6b\x8d\x6b\x8e\x6b\x8c\x6c\x2a\x6d\xc0\x6d\xab\x6d\xb4\x6d\xb3\x6e\x74\x6d\xac\x6d\xe9\x6d\xe2\x6d\xb7\x6d\xf6\x6d\xd4\x6e\x00\x6d\xc8\x6d\xe0\x6d\xdf\x6d\xd6\x6d\xbe\x6d\xe5\x6d\xdc\x6d\xdd\x6d\xdb\x6d\xf4\x6d\xca\x6d\xbd\x6d\xed\x6d\xf0\x6d\xba\x6d\xd5\x6d\xc2\x6d\xcf\x6d\xc9\x6d\xd0\x6d\xf2\x6d\xd3\x6d\xfd\x6d\xd7\x6d\xcd\x6d\xe3\x6d\xbb\x70\xfa\x71\x0d\x70\xf7\x71\x17\x70\xf4\x71\x0c\x70\xf0\x71\x04\x70\xf3\x71\x10\x70\xfc\x70\xff\x71\x06\x71\x13\x71\x00\x70\xf8\x70\xf6\x71\x0b\x71\x02\x00\x00\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x0e\x72\x7e\x72\x7b\x72\x7c\x72\x7f\x73\x1d\x73\x17\x73\x07\x73\x11\x73\x18\x73\x0a\x73\x08\x72\xff\x73\x0f\x73\x1e\x73\x88\x73\xf6\x73\xf8\x73\xf5\x74\x04\x74\x01\x73\xfd\x74\x07\x74\x00\x73\xfa\x73\xfc\x73\xff\x74\x0c\x74\x0b\x73\xf4\x74\x08\x75\x64\x75\x63\x75\xce\x75\xd2\x75\xcf\x75\xcb\x75\xcc\x75\xd1\x75\xd0\x76\x8f\x76\x89\x76\xd3\x77\x39\x77\x2f\x77\x2d\x77\x31\x77\x32\x77\x34\x77\x33\x77\x3d\x77\x25\x77\x3b\x77\x35\x78\x48\x78\x52\x78\x49\x78\x4d\x78\x4a\x78\x4c\x78\x26\x78\x45\x78\x50", /* 7480 */ "\x00\x00\x79\x64\x79\x67\x79\x69\x79\x6a\x79\x63\x79\x6b\x79\x61\x79\xbb\x79\xfa\x79\xf8\x79\xf6\x79\xf7\x7a\x8f\x7a\x94\x7a\x90\x7b\x35\x7b\x47\x7b\x34\x7b\x25\x7b\x30\x7b\x22\x7b\x24\x7b\x33\x7b\x18\x7b\x2a\x7b\x1d\x7b\x31\x7b\x2b\x7b\x2d\x7b\x2f\x7b\x32\x7b\x38\x7b\x1a\x7b\x23\x7c\x94\x7c\x98\x7c\x96\x7c\xa3\x7d\x35\x7d\x3d\x7d\x38\x7d\x36\x7d\x3a\x7d\x45\x7d\x2c\x7d\x29\x7d\x41\x7d\x47\x7d\x3e\x7d\x3f\x7d\x4a\x7d\x3b\x7d\x28\x7f\x63\x7f\x95\x7f\x9c\x7f\x9d\x7f\x9b\x7f\xca\x7f\xcb\x7f\xcd\x7f\xd0\x7f\xd1\x7f\xc7\x7f\xcf\x7f\xc9\x80\x1f\x80\x1e\x80\x1b\x80\x47\x80\x43\x80\x48\x81\x18\x81\x25\x81\x19\x81\x1b\x81\x2d\x81\x1f\x81\x2c\x81\x1e\x81\x21\x81\x15\x81\x27\x81\x1d\x81\x22\x82\x11\x82\x38\x82\x33\x82\x3a\x82\x34\x82\x32\x82\x74\x83\x90\x83\xa3\x83\xa8\x83\x8d\x83\x7a\x83\x73\x83\xa4\x83\x74\x83\x8f\x83\x81\x83\x95\x83\x99\x83\x75\x83\x94\x83\xa9\x83\x7d\x83\x83\x83\x8c\x83\x9d\x83\x9b\x83\xaa\x83\x8b\x83\x7e\x83\xa5\x83\xaf\x83\x88\x83\x97\x83\xb0\x83\x7f\x83\xa6\x83\x87\x83\xae\x83\x76\x00\x00\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x9a\x86\x59\x86\x56\x86\xbf\x86\xb7\x86\xc2\x86\xc1\x86\xc5\x86\xba\x86\xb0\x86\xc8\x86\xb9\x86\xb3\x86\xb8\x86\xcc\x86\xb4\x86\xbb\x86\xbc\x86\xc3\x86\xbd\x86\xbe\x88\x52\x88\x89\x88\x95\x88\xa8\x88\xa2\x88\xaa\x88\x9a\x88\x91\x88\xa1\x88\x9f\x88\x98\x88\xa7\x88\x99\x88\x9b\x88\x97\x88\xa4\x88\xac\x88\x8c\x88\x93\x88\x8e\x89\x82\x89\xd6\x89\xd9\x89\xd5\x8a\x30\x8a\x27\x8a\x2c\x8a\x1e\x8c\x39\x8c\x3b\x8c\x5c\x8c\x5d\x8c\x7d\x8c\xa5\x8d\x7d\x8d\x7b\x8d\x79\x8d\xbc\x8d\xc2\x8d\xb9\x8d\xbf\x8d\xc1", /* 7580 */ "\x00\x00\x8e\xd8\x8e\xde\x8e\xdd\x8e\xdc\x8e\xd7\x8e\xe0\x8e\xe1\x90\x24\x90\x0b\x90\x11\x90\x1c\x90\x0c\x90\x21\x90\xef\x90\xea\x90\xf0\x90\xf4\x90\xf2\x90\xf3\x90\xd4\x90\xeb\x90\xec\x90\xe9\x91\x56\x91\x58\x91\x5a\x91\x53\x91\x55\x91\xec\x91\xf4\x91\xf1\x91\xf3\x91\xf8\x91\xe4\x91\xf9\x91\xea\x91\xeb\x91\xf7\x91\xe8\x91\xee\x95\x7a\x95\x86\x95\x88\x96\x7c\x96\x6d\x96\x6b\x96\x71\x96\x6f\x96\xbf\x97\x6a\x98\x04\x98\xe5\x99\x97\x50\x9b\x50\x95\x50\x94\x50\x9e\x50\x8b\x50\xa3\x50\x83\x50\x8c\x50\x8e\x50\x9d\x50\x68\x50\x9c\x50\x92\x50\x82\x50\x87\x51\x5f\x51\xd4\x53\x12\x53\x11\x53\xa4\x53\xa7\x55\x91\x55\xa8\x55\xa5\x55\xad\x55\x77\x56\x45\x55\xa2\x55\x93\x55\x88\x55\x8f\x55\xb5\x55\x81\x55\xa3\x55\x92\x55\xa4\x55\x7d\x55\x8c\x55\xa6\x55\x7f\x55\x95\x55\xa1\x55\x8e\x57\x0c\x58\x29\x58\x37\x58\x19\x58\x1e\x58\x27\x58\x23\x58\x28\x57\xf5\x58\x48\x58\x25\x58\x1c\x58\x1b\x58\x33\x58\x3f\x58\x36\x58\x2e\x58\x39\x58\x38\x58\x2d\x58\x2c\x58\x3b\x59\x61\x5a\xaf\x5a\x94\x5a\x9f\x5a\x7a\x5a\xa2\x5a\x9e\x00\x00\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x78\x5a\xa6\x5a\x7c\x5a\xa5\x5a\xac\x5a\x95\x5a\xae\x5a\x37\x5a\x84\x5a\x8a\x5a\x97\x5a\x83\x5a\x8b\x5a\xa9\x5a\x7b\x5a\x7d\x5a\x8c\x5a\x9c\x5a\x8f\x5a\x93\x5a\x9d\x5b\xea\x5b\xcd\x5b\xcb\x5b\xd4\x5b\xd1\x5b\xca\x5b\xce\x5c\x0c\x5c\x30\x5d\x37\x5d\x43\x5d\x6b\x5d\x41\x5d\x4b\x5d\x3f\x5d\x35\x5d\x51\x5d\x4e\x5d\x55\x5d\x33\x5d\x3a\x5d\x52\x5d\x3d\x5d\x31\x5d\x59\x5d\x42\x5d\x39\x5d\x49\x5d\x38\x5d\x3c\x5d\x32\x5d\x36\x5d\x40\x5d\x45\x5e\x44\x5e\x41\x5f\x58\x5f\xa6\x5f\xa5\x5f\xab\x60\xc9\x60\xb9", /* 7680 */ "\x00\x00\x60\xcc\x60\xe2\x60\xce\x60\xc4\x61\x14\x60\xf2\x61\x0a\x61\x16\x61\x05\x60\xf5\x61\x13\x60\xf8\x60\xfc\x60\xfe\x60\xc1\x61\x03\x61\x18\x61\x1d\x61\x10\x60\xff\x61\x04\x61\x0b\x62\x4a\x63\x94\x63\xb1\x63\xb0\x63\xce\x63\xe5\x63\xe8\x63\xef\x63\xc3\x64\x9d\x63\xf3\x63\xca\x63\xe0\x63\xf6\x63\xd5\x63\xf2\x63\xf5\x64\x61\x63\xdf\x63\xbe\x63\xdd\x63\xdc\x63\xc4\x63\xd8\x63\xd3\x63\xc2\x63\xc7\x63\xcc\x63\xcb\x63\xc8\x63\xf0\x63\xd7\x63\xd9\x65\x32\x65\x67\x65\x6a\x65\x64\x65\x5c\x65\x68\x65\x65\x65\x8c\x65\x9d\x65\x9e\x65\xae\x65\xd0\x65\xd2\x66\x7c\x66\x6c\x66\x7b\x66\x80\x66\x71\x66\x79\x66\x6a\x66\x72\x67\x01\x69\x0c\x68\xd3\x69\x04\x68\xdc\x69\x2a\x68\xec\x68\xea\x68\xf1\x69\x0f\x68\xd6\x68\xf7\x68\xeb\x68\xe4\x68\xf6\x69\x13\x69\x10\x68\xf3\x68\xe1\x69\x07\x68\xcc\x69\x08\x69\x70\x68\xb4\x69\x11\x68\xef\x68\xc6\x69\x14\x68\xf8\x68\xd0\x68\xfd\x68\xfc\x68\xe8\x69\x0b\x69\x0a\x69\x17\x68\xce\x68\xc8\x68\xdd\x68\xde\x68\xe6\x68\xf4\x68\xd1\x69\x06\x68\xd4\x68\xe9\x69\x15\x69\x25\x68\xc7\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x39\x6b\x3b\x6b\x3f\x6b\x3c\x6b\x94\x6b\x97\x6b\x99\x6b\x95\x6b\xbd\x6b\xf0\x6b\xf2\x6b\xf3\x6c\x30\x6d\xfc\x6e\x46\x6e\x47\x6e\x1f\x6e\x49\x6e\x88\x6e\x3c\x6e\x3d\x6e\x45\x6e\x62\x6e\x2b\x6e\x3f\x6e\x41\x6e\x5d\x6e\x73\x6e\x1c\x6e\x33\x6e\x4b\x6e\x40\x6e\x51\x6e\x3b\x6e\x03\x6e\x2e\x6e\x5e\x6e\x68\x6e\x5c\x6e\x61\x6e\x31\x6e\x28\x6e\x60\x6e\x71\x6e\x6b\x6e\x39\x6e\x22\x6e\x30\x6e\x53\x6e\x65\x6e\x27\x6e\x78\x6e\x64\x6e\x77\x6e\x55\x6e\x79\x6e\x52\x6e\x66\x6e\x35\x6e\x36\x6e\x5a\x71\x20\x71\x1e", /* 7780 */ "\x00\x00\x71\x2f\x70\xfb\x71\x2e\x71\x31\x71\x23\x71\x25\x71\x22\x71\x32\x71\x1f\x71\x28\x71\x3a\x71\x1b\x72\x4b\x72\x5a\x72\x88\x72\x89\x72\x86\x72\x85\x72\x8b\x73\x12\x73\x0b\x73\x30\x73\x22\x73\x31\x73\x33\x73\x27\x73\x32\x73\x2d\x73\x26\x73\x23\x73\x35\x73\x0c\x74\x2e\x74\x2c\x74\x30\x74\x2b\x74\x16\x74\x1a\x74\x21\x74\x2d\x74\x31\x74\x24\x74\x23\x74\x1d\x74\x29\x74\x20\x74\x32\x74\xfb\x75\x2f\x75\x6f\x75\x6c\x75\xe7\x75\xda\x75\xe1\x75\xe6\x75\xdd\x75\xdf\x75\xe4\x75\xd7\x76\x95\x76\x92\x76\xda\x77\x46\x77\x47\x77\x44\x77\x4d\x77\x45\x77\x4a\x77\x4e\x77\x4b\x77\x4c\x77\xde\x77\xec\x78\x60\x78\x64\x78\x65\x78\x5c\x78\x6d\x78\x71\x78\x6a\x78\x6e\x78\x70\x78\x69\x78\x68\x78\x5e\x78\x62\x79\x74\x79\x73\x79\x72\x79\x70\x7a\x02\x7a\x0a\x7a\x03\x7a\x0c\x7a\x04\x7a\x99\x7a\xe6\x7a\xe4\x7b\x4a\x7b\x3b\x7b\x44\x7b\x48\x7b\x4c\x7b\x4e\x7b\x40\x7b\x58\x7b\x45\x7c\xa2\x7c\x9e\x7c\xa8\x7c\xa1\x7d\x58\x7d\x6f\x7d\x63\x7d\x53\x7d\x56\x7d\x67\x7d\x6a\x7d\x4f\x7d\x6d\x7d\x5c\x7d\x6b\x7d\x52\x7d\x54\x7d\x69\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x51\x7d\x5f\x7d\x4e\x7f\x3e\x7f\x3f\x7f\x65\x7f\x66\x7f\xa2\x7f\xa0\x7f\xa1\x7f\xd7\x80\x51\x80\x4f\x80\x50\x80\xfe\x80\xd4\x81\x43\x81\x4a\x81\x52\x81\x4f\x81\x47\x81\x3d\x81\x4d\x81\x3a\x81\xe6\x81\xee\x81\xf7\x81\xf8\x81\xf9\x82\x04\x82\x3c\x82\x3d\x82\x3f\x82\x75\x83\x3b\x83\xcf\x83\xf9\x84\x23\x83\xc0\x83\xe8\x84\x12\x83\xe7\x83\xe4\x83\xfc\x83\xf6\x84\x10\x83\xc6\x83\xc8\x83\xeb\x83\xe3\x83\xbf\x84\x01\x83\xdd\x83\xe5\x83\xd8\x83\xff\x83\xe1\x83\xcb\x83\xce\x83\xd6\x83\xf5\x83\xc9\x84\x09", /* 7880 */ "\x00\x00\x84\x0f\x83\xde\x84\x11\x84\x06\x83\xc2\x83\xf3\x83\xd5\x83\xfa\x83\xc7\x83\xd1\x83\xea\x84\x13\x83\xc3\x83\xec\x83\xee\x83\xc4\x83\xfb\x83\xd7\x83\xe2\x84\x1b\x83\xdb\x83\xfe\x86\xd8\x86\xe2\x86\xe6\x86\xd3\x86\xe3\x86\xda\x86\xea\x86\xdd\x86\xeb\x86\xdc\x86\xec\x86\xe9\x86\xd7\x86\xe8\x86\xd1\x88\x48\x88\x56\x88\x55\x88\xba\x88\xd7\x88\xb9\x88\xb8\x88\xc0\x88\xbe\x88\xb6\x88\xbc\x88\xb7\x88\xbd\x88\xb2\x89\x01\x88\xc9\x89\x95\x89\x98\x89\x97\x89\xdd\x89\xda\x89\xdb\x8a\x4e\x8a\x4d\x8a\x39\x8a\x59\x8a\x40\x8a\x57\x8a\x58\x8a\x44\x8a\x45\x8a\x52\x8a\x48\x8a\x51\x8a\x4a\x8a\x4c\x8a\x4f\x8c\x5f\x8c\x81\x8c\x80\x8c\xba\x8c\xbe\x8c\xb0\x8c\xb9\x8c\xb5\x8d\x84\x8d\x80\x8d\x89\x8d\xd8\x8d\xd3\x8d\xcd\x8d\xc7\x8d\xd6\x8d\xdc\x8d\xcf\x8d\xd5\x8d\xd9\x8d\xc8\x8d\xd7\x8d\xc5\x8e\xef\x8e\xf7\x8e\xfa\x8e\xf9\x8e\xe6\x8e\xee\x8e\xe5\x8e\xf5\x8e\xe7\x8e\xe8\x8e\xf6\x8e\xeb\x8e\xf1\x8e\xec\x8e\xf4\x8e\xe9\x90\x2d\x90\x34\x90\x2f\x91\x06\x91\x2c\x91\x04\x90\xff\x90\xfc\x91\x08\x90\xf9\x90\xfb\x91\x01\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x00\x91\x07\x91\x05\x91\x03\x91\x61\x91\x64\x91\x5f\x91\x62\x91\x60\x92\x01\x92\x0a\x92\x25\x92\x03\x92\x1a\x92\x26\x92\x0f\x92\x0c\x92\x00\x92\x12\x91\xff\x91\xfd\x92\x06\x92\x04\x92\x27\x92\x02\x92\x1c\x92\x24\x92\x19\x92\x17\x92\x05\x92\x16\x95\x7b\x95\x8d\x95\x8c\x95\x90\x96\x87\x96\x7e\x96\x88\x96\x89\x96\x83\x96\x80\x96\xc2\x96\xc8\x96\xc3\x96\xf1\x96\xf0\x97\x6c\x97\x70\x97\x6e\x98\x07\x98\xa9\x98\xeb\x9c\xe6\x9e\xf9\x4e\x83\x4e\x84\x4e\xb6\x50\xbd\x50\xbf\x50\xc6\x50\xae\x50\xc4\x50\xca", /* 7980 */ "\x00\x00\x50\xb4\x50\xc8\x50\xc2\x50\xb0\x50\xc1\x50\xba\x50\xb1\x50\xcb\x50\xc9\x50\xb6\x50\xb8\x51\xd7\x52\x7a\x52\x78\x52\x7b\x52\x7c\x55\xc3\x55\xdb\x55\xcc\x55\xd0\x55\xcb\x55\xca\x55\xdd\x55\xc0\x55\xd4\x55\xc4\x55\xe9\x55\xbf\x55\xd2\x55\x8d\x55\xcf\x55\xd5\x55\xe2\x55\xd6\x55\xc8\x55\xf2\x55\xcd\x55\xd9\x55\xc2\x57\x14\x58\x53\x58\x68\x58\x64\x58\x4f\x58\x4d\x58\x49\x58\x6f\x58\x55\x58\x4e\x58\x5d\x58\x59\x58\x65\x58\x5b\x58\x3d\x58\x63\x58\x71\x58\xfc\x5a\xc7\x5a\xc4\x5a\xcb\x5a\xba\x5a\xb8\x5a\xb1\x5a\xb5\x5a\xb0\x5a\xbf\x5a\xc8\x5a\xbb\x5a\xc6\x5a\xb7\x5a\xc0\x5a\xca\x5a\xb4\x5a\xb6\x5a\xcd\x5a\xb9\x5a\x90\x5b\xd6\x5b\xd8\x5b\xd9\x5c\x1f\x5c\x33\x5d\x71\x5d\x63\x5d\x4a\x5d\x65\x5d\x72\x5d\x6c\x5d\x5e\x5d\x68\x5d\x67\x5d\x62\x5d\xf0\x5e\x4f\x5e\x4e\x5e\x4a\x5e\x4d\x5e\x4b\x5e\xc5\x5e\xcc\x5e\xc6\x5e\xcb\x5e\xc7\x5f\x40\x5f\xaf\x5f\xad\x60\xf7\x61\x49\x61\x4a\x61\x2b\x61\x45\x61\x36\x61\x32\x61\x2e\x61\x46\x61\x2f\x61\x4f\x61\x29\x61\x40\x62\x20\x91\x68\x62\x23\x62\x25\x62\x24\x63\xc5\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf1\x63\xeb\x64\x10\x64\x12\x64\x09\x64\x20\x64\x24\x64\x33\x64\x43\x64\x1f\x64\x15\x64\x18\x64\x39\x64\x37\x64\x22\x64\x23\x64\x0c\x64\x26\x64\x30\x64\x28\x64\x41\x64\x35\x64\x2f\x64\x0a\x64\x1a\x64\x40\x64\x25\x64\x27\x64\x0b\x63\xe7\x64\x1b\x64\x2e\x64\x21\x64\x0e\x65\x6f\x65\x92\x65\xd3\x66\x86\x66\x8c\x66\x95\x66\x90\x66\x8b\x66\x8a\x66\x99\x66\x94\x66\x78\x67\x20\x69\x66\x69\x5f\x69\x38\x69\x4e\x69\x62\x69\x71\x69\x3f\x69\x45\x69\x6a\x69\x39\x69\x42\x69\x57\x69\x59\x69\x7a\x69\x48\x69\x49", /* 7a80 */ "\x00\x00\x69\x35\x69\x6c\x69\x33\x69\x3d\x69\x65\x68\xf0\x69\x78\x69\x34\x69\x69\x69\x40\x69\x6f\x69\x44\x69\x76\x69\x58\x69\x41\x69\x74\x69\x4c\x69\x3b\x69\x4b\x69\x37\x69\x5c\x69\x4f\x69\x51\x69\x32\x69\x52\x69\x2f\x69\x7b\x69\x3c\x6b\x46\x6b\x45\x6b\x43\x6b\x42\x6b\x48\x6b\x41\x6b\x9b\xfa\x0d\x6b\xfb\x6b\xfc\x6b\xf9\x6b\xf7\x6b\xf8\x6e\x9b\x6e\xd6\x6e\xc8\x6e\x8f\x6e\xc0\x6e\x9f\x6e\x93\x6e\x94\x6e\xa0\x6e\xb1\x6e\xb9\x6e\xc6\x6e\xd2\x6e\xbd\x6e\xc1\x6e\x9e\x6e\xc9\x6e\xb7\x6e\xb0\x6e\xcd\x6e\xa6\x6e\xcf\x6e\xb2\x6e\xbe\x6e\xc3\x6e\xdc\x6e\xd8\x6e\x99\x6e\x92\x6e\x8e\x6e\x8d\x6e\xa4\x6e\xa1\x6e\xbf\x6e\xb3\x6e\xd0\x6e\xca\x6e\x97\x6e\xae\x6e\xa3\x71\x47\x71\x54\x71\x52\x71\x63\x71\x60\x71\x41\x71\x5d\x71\x62\x71\x72\x71\x78\x71\x6a\x71\x61\x71\x42\x71\x58\x71\x43\x71\x4b\x71\x70\x71\x5f\x71\x50\x71\x53\x71\x44\x71\x4d\x71\x5a\x72\x4f\x72\x8d\x72\x8c\x72\x91\x72\x90\x72\x8e\x73\x3c\x73\x42\x73\x3b\x73\x3a\x73\x40\x73\x4a\x73\x49\x74\x44\x74\x4a\x74\x4b\x74\x52\x74\x51\x74\x57\x74\x40\x74\x4f\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x50\x74\x4e\x74\x42\x74\x46\x74\x4d\x74\x54\x74\xe1\x74\xff\x74\xfe\x74\xfd\x75\x1d\x75\x79\x75\x77\x69\x83\x75\xef\x76\x0f\x76\x03\x75\xf7\x75\xfe\x75\xfc\x75\xf9\x75\xf8\x76\x10\x75\xfb\x75\xf6\x75\xed\x75\xf5\x75\xfd\x76\x99\x76\xb5\x76\xdd\x77\x55\x77\x5f\x77\x60\x77\x52\x77\x56\x77\x5a\x77\x69\x77\x67\x77\x54\x77\x59\x77\x6d\x77\xe0\x78\x87\x78\x9a\x78\x94\x78\x8f\x78\x84\x78\x95\x78\x85\x78\x86\x78\xa1\x78\x83\x78\x79\x78\x99\x78\x80\x78\x96\x78\x7b\x79\x7c\x79\x82\x79\x7d\x79\x79\x7a\x11", /* 7b80 */ "\x00\x00\x7a\x18\x7a\x19\x7a\x12\x7a\x17\x7a\x15\x7a\x22\x7a\x13\x7a\x1b\x7a\x10\x7a\xa3\x7a\xa2\x7a\x9e\x7a\xeb\x7b\x66\x7b\x64\x7b\x6d\x7b\x74\x7b\x69\x7b\x72\x7b\x65\x7b\x73\x7b\x71\x7b\x70\x7b\x61\x7b\x78\x7b\x76\x7b\x63\x7c\xb2\x7c\xb4\x7c\xaf\x7d\x88\x7d\x86\x7d\x80\x7d\x8d\x7d\x7f\x7d\x85\x7d\x7a\x7d\x8e\x7d\x7b\x7d\x83\x7d\x7c\x7d\x8c\x7d\x94\x7d\x84\x7d\x7d\x7d\x92\x7f\x6d\x7f\x6b\x7f\x67\x7f\x68\x7f\x6c\x7f\xa6\x7f\xa5\x7f\xa7\x7f\xdb\x7f\xdc\x80\x21\x81\x64\x81\x60\x81\x77\x81\x5c\x81\x69\x81\x5b\x81\x62\x81\x72\x67\x21\x81\x5e\x81\x76\x81\x67\x81\x6f\x81\x44\x81\x61\x82\x1d\x82\x49\x82\x44\x82\x40\x82\x42\x82\x45\x84\xf1\x84\x3f\x84\x56\x84\x76\x84\x79\x84\x8f\x84\x8d\x84\x65\x84\x51\x84\x40\x84\x86\x84\x67\x84\x30\x84\x4d\x84\x7d\x84\x5a\x84\x59\x84\x74\x84\x73\x84\x5d\x85\x07\x84\x5e\x84\x37\x84\x3a\x84\x34\x84\x7a\x84\x43\x84\x78\x84\x32\x84\x45\x84\x29\x83\xd9\x84\x4b\x84\x2f\x84\x42\x84\x2d\x84\x5f\x84\x70\x84\x39\x84\x4e\x84\x4c\x84\x52\x84\x6f\x84\xc5\x84\x8e\x84\x3b\x84\x47\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x36\x84\x33\x84\x68\x84\x7e\x84\x44\x84\x2b\x84\x60\x84\x54\x84\x6e\x84\x50\x87\x0b\x87\x04\x86\xf7\x87\x0c\x86\xfa\x86\xd6\x86\xf5\x87\x4d\x86\xf8\x87\x0e\x87\x09\x87\x01\x86\xf6\x87\x0d\x87\x05\x88\xd6\x88\xcb\x88\xcd\x88\xce\x88\xde\x88\xdb\x88\xda\x88\xcc\x88\xd0\x89\x85\x89\x9b\x89\xdf\x89\xe5\x89\xe4\x89\xe1\x89\xe0\x89\xe2\x89\xdc\x89\xe6\x8a\x76\x8a\x86\x8a\x7f\x8a\x61\x8a\x3f\x8a\x77\x8a\x82\x8a\x84\x8a\x75\x8a\x83\x8a\x81\x8a\x74\x8a\x7a\x8c\x3c\x8c\x4b\x8c\x4a\x8c\x65\x8c\x64\x8c\x66", /* 7c80 */ "\x00\x00\x8c\x86\x8c\x84\x8c\x85\x8c\xcc\x8d\x68\x8d\x69\x8d\x91\x8d\x8c\x8d\x8e\x8d\x8f\x8d\x8d\x8d\x93\x8d\x94\x8d\x90\x8d\x92\x8d\xf0\x8d\xe0\x8d\xec\x8d\xf1\x8d\xee\x8d\xd0\x8d\xe9\x8d\xe3\x8d\xe2\x8d\xe7\x8d\xf2\x8d\xeb\x8d\xf4\x8f\x06\x8e\xff\x8f\x01\x8f\x00\x8f\x05\x8f\x07\x8f\x08\x8f\x02\x8f\x0b\x90\x52\x90\x3f\x90\x44\x90\x49\x90\x3d\x91\x10\x91\x0d\x91\x0f\x91\x11\x91\x16\x91\x14\x91\x0b\x91\x0e\x91\x6e\x91\x6f\x92\x48\x92\x52\x92\x30\x92\x3a\x92\x66\x92\x33\x92\x65\x92\x5e\x92\x83\x92\x2e\x92\x4a\x92\x46\x92\x6d\x92\x6c\x92\x4f\x92\x60\x92\x67\x92\x6f\x92\x36\x92\x61\x92\x70\x92\x31\x92\x54\x92\x63\x92\x50\x92\x72\x92\x4e\x92\x53\x92\x4c\x92\x56\x92\x32\x95\x9f\x95\x9c\x95\x9e\x95\x9b\x96\x92\x96\x93\x96\x91\x96\x97\x96\xce\x96\xfa\x96\xfd\x96\xf8\x96\xf5\x97\x73\x97\x77\x97\x78\x97\x72\x98\x0f\x98\x0d\x98\x0e\x98\xac\x98\xf6\x98\xf9\x99\xaf\x99\xb2\x99\xb0\x99\xb5\x9a\xad\x9a\xab\x9b\x5b\x9c\xea\x9c\xed\x9c\xe7\x9e\x80\x9e\xfd\x50\xe6\x50\xd4\x50\xd7\x50\xe8\x50\xf3\x50\xdb\x50\xea\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdd\x50\xe4\x50\xd3\x50\xec\x50\xf0\x50\xef\x50\xe3\x50\xe0\x51\xd8\x52\x80\x52\x81\x52\xe9\x52\xeb\x53\x30\x53\xac\x56\x27\x56\x15\x56\x0c\x56\x12\x55\xfc\x56\x0f\x56\x1c\x56\x01\x56\x13\x56\x02\x55\xfa\x56\x1d\x56\x04\x55\xff\x55\xf9\x58\x89\x58\x7c\x58\x90\x58\x98\x58\x86\x58\x81\x58\x7f\x58\x74\x58\x8b\x58\x7a\x58\x87\x58\x91\x58\x8e\x58\x76\x58\x82\x58\x88\x58\x7b\x58\x94\x58\x8f\x58\xfe\x59\x6b\x5a\xdc\x5a\xee\x5a\xe5\x5a\xd5\x5a\xea\x5a\xda\x5a\xed\x5a\xeb\x5a\xf3\x5a\xe2\x5a\xe0\x5a\xdb", /* 7d80 */ "\x00\x00\x5a\xec\x5a\xde\x5a\xdd\x5a\xd9\x5a\xe8\x5a\xdf\x5b\x77\x5b\xe0\x5b\xe3\x5c\x63\x5d\x82\x5d\x80\x5d\x7d\x5d\x86\x5d\x7a\x5d\x81\x5d\x77\x5d\x8a\x5d\x89\x5d\x88\x5d\x7e\x5d\x7c\x5d\x8d\x5d\x79\x5d\x7f\x5e\x58\x5e\x59\x5e\x53\x5e\xd8\x5e\xd1\x5e\xd7\x5e\xce\x5e\xdc\x5e\xd5\x5e\xd9\x5e\xd2\x5e\xd4\x5f\x44\x5f\x43\x5f\x6f\x5f\xb6\x61\x2c\x61\x28\x61\x41\x61\x5e\x61\x71\x61\x73\x61\x52\x61\x53\x61\x72\x61\x6c\x61\x80\x61\x74\x61\x54\x61\x7a\x61\x5b\x61\x65\x61\x3b\x61\x6a\x61\x61\x61\x56\x62\x29\x62\x27\x62\x2b\x64\x2b\x64\x4d\x64\x5b\x64\x5d\x64\x74\x64\x76\x64\x72\x64\x73\x64\x7d\x64\x75\x64\x66\x64\xa6\x64\x4e\x64\x82\x64\x5e\x64\x5c\x64\x4b\x64\x53\x64\x60\x64\x50\x64\x7f\x64\x3f\x64\x6c\x64\x6b\x64\x59\x64\x65\x64\x77\x65\x73\x65\xa0\x66\xa1\x66\xa0\x66\x9f\x67\x05\x67\x04\x67\x22\x69\xb1\x69\xb6\x69\xc9\x69\xa0\x69\xce\x69\x96\x69\xb0\x69\xac\x69\xbc\x69\x91\x69\x99\x69\x8e\x69\xa7\x69\x8d\x69\xa9\x69\xbe\x69\xaf\x69\xbf\x69\xc4\x69\xbd\x69\xa4\x69\xd4\x69\xb9\x69\xca\x69\x9a\x69\xcf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xb3\x69\x93\x69\xaa\x69\xa1\x69\x9e\x69\xd9\x69\x97\x69\x90\x69\xc2\x69\xb5\x69\xa5\x69\xc6\x6b\x4a\x6b\x4d\x6b\x4b\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xc3\x6b\xc4\x6b\xfe\x6e\xce\x6e\xf5\x6e\xf1\x6f\x03\x6f\x25\x6e\xf8\x6f\x37\x6e\xfb\x6f\x2e\x6f\x09\x6f\x4e\x6f\x19\x6f\x1a\x6f\x27\x6f\x18\x6f\x3b\x6f\x12\x6e\xed\x6f\x0a\x6f\x36\x6f\x73\x6e\xf9\x6e\xee\x6f\x2d\x6f\x40\x6f\x30\x6f\x3c\x6f\x35\x6e\xeb\x6f\x07\x6f\x0e\x6f\x43\x6f\x05\x6e\xfd\x6e\xf6\x6f\x39\x6f\x1c\x6e\xfc\x6f\x3a\x6f\x1f\x6f\x0d\x6f\x1e", /* 7e80 */ "\x00\x00\x6f\x08\x6f\x21\x71\x87\x71\x90\x71\x89\x71\x80\x71\x85\x71\x82\x71\x8f\x71\x7b\x71\x86\x71\x81\x71\x97\x72\x44\x72\x53\x72\x97\x72\x95\x72\x93\x73\x43\x73\x4d\x73\x51\x73\x4c\x74\x62\x74\x73\x74\x71\x74\x75\x74\x72\x74\x67\x74\x6e\x75\x00\x75\x02\x75\x03\x75\x7d\x75\x90\x76\x16\x76\x08\x76\x0c\x76\x15\x76\x11\x76\x0a\x76\x14\x76\xb8\x77\x81\x77\x7c\x77\x85\x77\x82\x77\x6e\x77\x80\x77\x6f\x77\x7e\x77\x83\x78\xb2\x78\xaa\x78\xb4\x78\xad\x78\xa8\x78\x7e\x78\xab\x78\x9e\x78\xa5\x78\xa0\x78\xac\x78\xa2\x78\xa4\x79\x98\x79\x8a\x79\x8b\x79\x96\x79\x95\x79\x94\x79\x93\x79\x97\x79\x88\x79\x92\x79\x90\x7a\x2b\x7a\x4a\x7a\x30\x7a\x2f\x7a\x28\x7a\x26\x7a\xa8\x7a\xab\x7a\xac\x7a\xee\x7b\x88\x7b\x9c\x7b\x8a\x7b\x91\x7b\x90\x7b\x96\x7b\x8d\x7b\x8c\x7b\x9b\x7b\x8e\x7b\x85\x7b\x98\x52\x84\x7b\x99\x7b\xa4\x7b\x82\x7c\xbb\x7c\xbf\x7c\xbc\x7c\xba\x7d\xa7\x7d\xb7\x7d\xc2\x7d\xa3\x7d\xaa\x7d\xc1\x7d\xc0\x7d\xc5\x7d\x9d\x7d\xce\x7d\xc4\x7d\xc6\x7d\xcb\x7d\xcc\x7d\xaf\x7d\xb9\x7d\x96\x7d\xbc\x7d\x9f\x7d\xa6\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xae\x7d\xa9\x7d\xa1\x7d\xc9\x7f\x73\x7f\xe2\x7f\xe3\x7f\xe5\x7f\xde\x80\x24\x80\x5d\x80\x5c\x81\x89\x81\x86\x81\x83\x81\x87\x81\x8d\x81\x8c\x81\x8b\x82\x15\x84\x97\x84\xa4\x84\xa1\x84\x9f\x84\xba\x84\xce\x84\xc2\x84\xac\x84\xae\x84\xab\x84\xb9\x84\xb4\x84\xc1\x84\xcd\x84\xaa\x84\x9a\x84\xb1\x84\xd0\x84\x9d\x84\xa7\x84\xbb\x84\xa2\x84\x94\x84\xc7\x84\xcc\x84\x9b\x84\xa9\x84\xaf\x84\xa8\x84\xd6\x84\x98\x84\xb6\x84\xcf\x84\xa0\x84\xd7\x84\xd4\x84\xd2\x84\xdb\x84\xb0\x84\x91\x86\x61\x87\x33\x87\x23", /* 7f80 */ "\x00\x00\x87\x28\x87\x6b\x87\x40\x87\x2e\x87\x1e\x87\x21\x87\x19\x87\x1b\x87\x43\x87\x2c\x87\x41\x87\x3e\x87\x46\x87\x20\x87\x32\x87\x2a\x87\x2d\x87\x3c\x87\x12\x87\x3a\x87\x31\x87\x35\x87\x42\x87\x26\x87\x27\x87\x38\x87\x24\x87\x1a\x87\x30\x87\x11\x88\xf7\x88\xe7\x88\xf1\x88\xf2\x88\xfa\x88\xfe\x88\xee\x88\xfc\x88\xf6\x88\xfb\x88\xf0\x88\xec\x88\xeb\x89\x9d\x89\xa1\x89\x9f\x89\x9e\x89\xe9\x89\xeb\x89\xe8\x8a\xab\x8a\x99\x8a\x8b\x8a\x92\x8a\x8f\x8a\x96\x8c\x3d\x8c\x68\x8c\x69\x8c\xd5\x8c\xcf\x8c\xd7\x8d\x96\x8e\x09\x8e\x02\x8d\xff\x8e\x0d\x8d\xfd\x8e\x0a\x8e\x03\x8e\x07\x8e\x06\x8e\x05\x8d\xfe\x8e\x00\x8e\x04\x8f\x10\x8f\x11\x8f\x0e\x8f\x0d\x91\x23\x91\x1c\x91\x20\x91\x22\x91\x1f\x91\x1d\x91\x1a\x91\x24\x91\x21\x91\x1b\x91\x7a\x91\x72\x91\x79\x91\x73\x92\xa5\x92\xa4\x92\x76\x92\x9b\x92\x7a\x92\xa0\x92\x94\x92\xaa\x92\x8d\x92\xa6\x92\x9a\x92\xab\x92\x79\x92\x97\x92\x7f\x92\xa3\x92\xee\x92\x8e\x92\x82\x92\x95\x92\xa2\x92\x7d\x92\x88\x92\xa1\x92\x8a\x92\x86\x92\x8c\x92\x99\x92\xa7\x92\x7e\x92\x87\x00\x00\x00\x00", /* 8000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\xa9\x92\x9d\x92\x8b\x92\x2d\x96\x9e\x96\xa1\x96\xff\x97\x58\x97\x7d\x97\x7a\x97\x7e\x97\x83\x97\x80\x97\x82\x97\x7b\x97\x84\x97\x81\x97\x7f\x97\xce\x97\xcd\x98\x16\x98\xad\x98\xae\x99\x02\x99\x00\x99\x07\x99\x9d\x99\x9c\x99\xc3\x99\xb9\x99\xbb\x99\xba\x99\xc2\x99\xbd\x99\xc7\x9a\xb1\x9a\xe3\x9a\xe7\x9b\x3e\x9b\x3f\x9b\x60\x9b\x61\x9b\x5f\x9c\xf1\x9c\xf2\x9c\xf5\x9e\xa7\x50\xff\x51\x03\x51\x30\x50\xf8\x51\x06\x51\x07\x50\xf6\x50\xfe\x51\x0b\x51\x0c\x50\xfd\x51\x0a\x52\x8b\x52\x8c\x52\xf1\x52\xef", /* 8080 */ "\x00\x00\x56\x48\x56\x42\x56\x4c\x56\x35\x56\x41\x56\x4a\x56\x49\x56\x46\x56\x58\x56\x5a\x56\x40\x56\x33\x56\x3d\x56\x2c\x56\x3e\x56\x38\x56\x2a\x56\x3a\x57\x1a\x58\xab\x58\x9d\x58\xb1\x58\xa0\x58\xa3\x58\xaf\x58\xac\x58\xa5\x58\xa1\x58\xff\x5a\xff\x5a\xf4\x5a\xfd\x5a\xf7\x5a\xf6\x5b\x03\x5a\xf8\x5b\x02\x5a\xf9\x5b\x01\x5b\x07\x5b\x05\x5b\x0f\x5c\x67\x5d\x99\x5d\x97\x5d\x9f\x5d\x92\x5d\xa2\x5d\x93\x5d\x95\x5d\xa0\x5d\x9c\x5d\xa1\x5d\x9a\x5d\x9e\x5e\x69\x5e\x5d\x5e\x60\x5e\x5c\x7d\xf3\x5e\xdb\x5e\xde\x5e\xe1\x5f\x49\x5f\xb2\x61\x8b\x61\x83\x61\x79\x61\xb1\x61\xb0\x61\xa2\x61\x89\x61\x9b\x61\x93\x61\xaf\x61\xad\x61\x9f\x61\x92\x61\xaa\x61\xa1\x61\x8d\x61\x66\x61\xb3\x62\x2d\x64\x6e\x64\x70\x64\x96\x64\xa0\x64\x85\x64\x97\x64\x9c\x64\x8f\x64\x8b\x64\x8a\x64\x8c\x64\xa3\x64\x9f\x64\x68\x64\xb1\x64\x98\x65\x76\x65\x7a\x65\x79\x65\x7b\x65\xb2\x65\xb3\x66\xb5\x66\xb0\x66\xa9\x66\xb2\x66\xb7\x66\xaa\x66\xaf\x6a\x00\x6a\x06\x6a\x17\x69\xe5\x69\xf8\x6a\x15\x69\xf1\x69\xe4\x6a\x20\x69\xff\x69\xec\x69\xe2\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1b\x6a\x1d\x69\xfe\x6a\x27\x69\xf2\x69\xee\x6a\x14\x69\xf7\x69\xe7\x6a\x40\x6a\x08\x69\xe6\x69\xfb\x6a\x0d\x69\xfc\x69\xeb\x6a\x09\x6a\x04\x6a\x18\x6a\x25\x6a\x0f\x69\xf6\x6a\x26\x6a\x07\x69\xf4\x6a\x16\x6b\x51\x6b\xa5\x6b\xa3\x6b\xa2\x6b\xa6\x6c\x01\x6c\x00\x6b\xff\x6c\x02\x6f\x41\x6f\x26\x6f\x7e\x6f\x87\x6f\xc6\x6f\x92\x6f\x8d\x6f\x89\x6f\x8c\x6f\x62\x6f\x4f\x6f\x85\x6f\x5a\x6f\x96\x6f\x76\x6f\x6c\x6f\x82\x6f\x55\x6f\x72\x6f\x52\x6f\x50\x6f\x57\x6f\x94\x6f\x93\x6f\x5d\x6f\x00\x6f\x61\x6f\x6b", /* 8180 */ "\x00\x00\x6f\x7d\x6f\x67\x6f\x90\x6f\x53\x6f\x8b\x6f\x69\x6f\x7f\x6f\x95\x6f\x63\x6f\x77\x6f\x6a\x6f\x7b\x71\xb2\x71\xaf\x71\x9b\x71\xb0\x71\xa0\x71\x9a\x71\xa9\x71\xb5\x71\x9d\x71\xa5\x71\x9e\x71\xa4\x71\xa1\x71\xaa\x71\x9c\x71\xa7\x71\xb3\x72\x98\x72\x9a\x73\x58\x73\x52\x73\x5e\x73\x5f\x73\x60\x73\x5d\x73\x5b\x73\x61\x73\x5a\x73\x59\x73\x62\x74\x87\x74\x89\x74\x8a\x74\x86\x74\x81\x74\x7d\x74\x85\x74\x88\x74\x7c\x74\x79\x75\x08\x75\x07\x75\x7e\x76\x25\x76\x1e\x76\x19\x76\x1d\x76\x1c\x76\x23\x76\x1a\x76\x28\x76\x1b\x76\x9c\x76\x9d\x76\x9e\x76\x9b\x77\x8d\x77\x8f\x77\x89\x77\x88\x78\xcd\x78\xbb\x78\xcf\x78\xcc\x78\xd1\x78\xce\x78\xd4\x78\xc8\x78\xc3\x78\xc4\x78\xc9\x79\x9a\x79\xa1\x79\xa0\x79\x9c\x79\xa2\x79\x9b\x6b\x76\x7a\x39\x7a\xb2\x7a\xb4\x7a\xb3\x7b\xb7\x7b\xcb\x7b\xbe\x7b\xac\x7b\xce\x7b\xaf\x7b\xb9\x7b\xca\x7b\xb5\x7c\xc5\x7c\xc8\x7c\xcc\x7c\xcb\x7d\xf7\x7d\xdb\x7d\xea\x7d\xe7\x7d\xd7\x7d\xe1\x7e\x03\x7d\xfa\x7d\xe6\x7d\xf6\x7d\xf1\x7d\xf0\x7d\xee\x7d\xdf\x7f\x76\x7f\xac\x7f\xb0\x7f\xad\x00\x00\x00\x00", /* 8200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xed\x7f\xeb\x7f\xea\x7f\xec\x7f\xe6\x7f\xe8\x80\x64\x80\x67\x81\xa3\x81\x9f\x81\x9e\x81\x95\x81\xa2\x81\x99\x81\x97\x82\x16\x82\x4f\x82\x53\x82\x52\x82\x50\x82\x4e\x82\x51\x85\x24\x85\x3b\x85\x0f\x85\x00\x85\x29\x85\x0e\x85\x09\x85\x0d\x85\x1f\x85\x0a\x85\x27\x85\x1c\x84\xfb\x85\x2b\x84\xfa\x85\x08\x85\x0c\x84\xf4\x85\x2a\x84\xf2\x85\x15\x84\xf7\x84\xeb\x84\xf3\x84\xfc\x85\x12\x84\xea\x84\xe9\x85\x16\x84\xfe\x85\x28\x85\x1d\x85\x2e\x85\x02\x84\xfd\x85\x1e\x84\xf6\x85\x31\x85\x26\x84\xe7\x84\xe8", /* 8280 */ "\x00\x00\x84\xf0\x84\xef\x84\xf9\x85\x18\x85\x20\x85\x30\x85\x0b\x85\x19\x85\x2f\x86\x62\x87\x56\x87\x63\x87\x64\x87\x77\x87\xe1\x87\x73\x87\x58\x87\x54\x87\x5b\x87\x52\x87\x61\x87\x5a\x87\x51\x87\x5e\x87\x6d\x87\x6a\x87\x50\x87\x4e\x87\x5f\x87\x5d\x87\x6f\x87\x6c\x87\x7a\x87\x6e\x87\x5c\x87\x65\x87\x4f\x87\x7b\x87\x75\x87\x62\x87\x67\x87\x69\x88\x5a\x89\x05\x89\x0c\x89\x14\x89\x0b\x89\x17\x89\x18\x89\x19\x89\x06\x89\x16\x89\x11\x89\x0e\x89\x09\x89\xa2\x89\xa4\x89\xa3\x89\xed\x89\xf0\x89\xec\x8a\xcf\x8a\xc6\x8a\xb8\x8a\xd3\x8a\xd1\x8a\xd4\x8a\xd5\x8a\xbb\x8a\xd7\x8a\xbe\x8a\xc0\x8a\xc5\x8a\xd8\x8a\xc3\x8a\xba\x8a\xbd\x8a\xd9\x8c\x3e\x8c\x4d\x8c\x8f\x8c\xe5\x8c\xdf\x8c\xd9\x8c\xe8\x8c\xda\x8c\xdd\x8c\xe7\x8d\xa0\x8d\x9c\x8d\xa1\x8d\x9b\x8e\x20\x8e\x23\x8e\x25\x8e\x24\x8e\x2e\x8e\x15\x8e\x1b\x8e\x16\x8e\x11\x8e\x19\x8e\x26\x8e\x27\x8e\x14\x8e\x12\x8e\x18\x8e\x13\x8e\x1c\x8e\x17\x8e\x1a\x8f\x2c\x8f\x24\x8f\x18\x8f\x1a\x8f\x20\x8f\x23\x8f\x16\x8f\x17\x90\x73\x90\x70\x90\x6f\x90\x67\x90\x6b\x91\x2f\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x2b\x91\x29\x91\x2a\x91\x32\x91\x26\x91\x2e\x91\x85\x91\x86\x91\x8a\x91\x81\x91\x82\x91\x84\x91\x80\x92\xd0\x92\xc3\x92\xc4\x92\xc0\x92\xd9\x92\xb6\x92\xcf\x92\xf1\x92\xdf\x92\xd8\x92\xe9\x92\xd7\x92\xdd\x92\xcc\x92\xef\x92\xc2\x92\xe8\x92\xca\x92\xc8\x92\xce\x92\xe6\x92\xcd\x92\xd5\x92\xc9\x92\xe0\x92\xde\x92\xe7\x92\xd1\x92\xd3\x92\xb5\x92\xe1\x92\xc6\x92\xb4\x95\x7c\x95\xac\x95\xab\x95\xae\x95\xb0\x96\xa4\x96\xa2\x96\xd3\x97\x05\x97\x08\x97\x02\x97\x5a\x97\x8a\x97\x8e\x97\x88\x97\xd0\x97\xcf", /* 8380 */ "\x00\x00\x98\x1e\x98\x1d\x98\x26\x98\x29\x98\x28\x98\x20\x98\x1b\x98\x27\x98\xb2\x99\x08\x98\xfa\x99\x11\x99\x14\x99\x16\x99\x17\x99\x15\x99\xdc\x99\xcd\x99\xcf\x99\xd3\x99\xd4\x99\xce\x99\xc9\x99\xd6\x99\xd8\x99\xcb\x99\xd7\x99\xcc\x9a\xb3\x9a\xec\x9a\xeb\x9a\xf3\x9a\xf2\x9a\xf1\x9b\x46\x9b\x43\x9b\x67\x9b\x74\x9b\x71\x9b\x66\x9b\x76\x9b\x75\x9b\x70\x9b\x68\x9b\x64\x9b\x6c\x9c\xfc\x9c\xfa\x9c\xfd\x9c\xff\x9c\xf7\x9d\x07\x9d\x00\x9c\xf9\x9c\xfb\x9d\x08\x9d\x05\x9d\x04\x9e\x83\x9e\xd3\x9f\x0f\x9f\x10\x51\x1c\x51\x13\x51\x17\x51\x1a\x51\x11\x51\xde\x53\x34\x53\xe1\x56\x70\x56\x60\x56\x6e\x56\x73\x56\x66\x56\x63\x56\x6d\x56\x72\x56\x5e\x56\x77\x57\x1c\x57\x1b\x58\xc8\x58\xbd\x58\xc9\x58\xbf\x58\xba\x58\xc2\x58\xbc\x58\xc6\x5b\x17\x5b\x19\x5b\x1b\x5b\x21\x5b\x14\x5b\x13\x5b\x10\x5b\x16\x5b\x28\x5b\x1a\x5b\x20\x5b\x1e\x5b\xef\x5d\xac\x5d\xb1\x5d\xa9\x5d\xa7\x5d\xb5\x5d\xb0\x5d\xae\x5d\xaa\x5d\xa8\x5d\xb2\x5d\xad\x5d\xaf\x5d\xb4\x5e\x67\x5e\x68\x5e\x66\x5e\x6f\x5e\xe9\x5e\xe7\x5e\xe6\x5e\xe8\x5e\xe5\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4b\x5f\xbc\x61\x9d\x61\xa8\x61\x96\x61\xc5\x61\xb4\x61\xc6\x61\xc1\x61\xcc\x61\xba\x61\xbf\x61\xb8\x61\x8c\x64\xd7\x64\xd6\x64\xd0\x64\xcf\x64\xc9\x64\xbd\x64\x89\x64\xc3\x64\xdb\x64\xf3\x64\xd9\x65\x33\x65\x7f\x65\x7c\x65\xa2\x66\xc8\x66\xbe\x66\xc0\x66\xca\x66\xcb\x66\xcf\x66\xbd\x66\xbb\x66\xba\x66\xcc\x67\x23\x6a\x34\x6a\x66\x6a\x49\x6a\x67\x6a\x32\x6a\x68\x6a\x3e\x6a\x5d\x6a\x6d\x6a\x76\x6a\x5b\x6a\x51\x6a\x28\x6a\x5a\x6a\x3b\x6a\x3f\x6a\x41\x6a\x6a\x6a\x64\x6a\x50\x6a\x4f\x6a\x54\x6a\x6f", /* 8480 */ "\x00\x00\x6a\x69\x6a\x60\x6a\x3c\x6a\x5e\x6a\x56\x6a\x55\x6a\x4d\x6a\x4e\x6a\x46\x6b\x55\x6b\x54\x6b\x56\x6b\xa7\x6b\xaa\x6b\xab\x6b\xc8\x6b\xc7\x6c\x04\x6c\x03\x6c\x06\x6f\xad\x6f\xcb\x6f\xa3\x6f\xc7\x6f\xbc\x6f\xce\x6f\xc8\x6f\x5e\x6f\xc4\x6f\xbd\x6f\x9e\x6f\xca\x6f\xa8\x70\x04\x6f\xa5\x6f\xae\x6f\xba\x6f\xac\x6f\xaa\x6f\xcf\x6f\xbf\x6f\xb8\x6f\xa2\x6f\xc9\x6f\xab\x6f\xcd\x6f\xaf\x6f\xb2\x6f\xb0\x71\xc5\x71\xc2\x71\xbf\x71\xb8\x71\xd6\x71\xc0\x71\xc1\x71\xcb\x71\xd4\x71\xca\x71\xc7\x71\xcf\x71\xbd\x71\xd8\x71\xbc\x71\xc6\x71\xda\x71\xdb\x72\x9d\x72\x9e\x73\x69\x73\x66\x73\x67\x73\x6c\x73\x65\x73\x6b\x73\x6a\x74\x7f\x74\x9a\x74\xa0\x74\x94\x74\x92\x74\x95\x74\xa1\x75\x0b\x75\x80\x76\x2f\x76\x2d\x76\x31\x76\x3d\x76\x33\x76\x3c\x76\x35\x76\x32\x76\x30\x76\xbb\x76\xe6\x77\x9a\x77\x9d\x77\xa1\x77\x9c\x77\x9b\x77\xa2\x77\xa3\x77\x95\x77\x99\x77\x97\x78\xdd\x78\xe9\x78\xe5\x78\xea\x78\xde\x78\xe3\x78\xdb\x78\xe1\x78\xe2\x78\xed\x78\xdf\x78\xe0\x79\xa4\x7a\x44\x7a\x48\x7a\x47\x7a\xb6\x7a\xb8\x7a\xb5\x00\x00\x00\x00", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xb1\x7a\xb7\x7b\xde\x7b\xe3\x7b\xe7\x7b\xdd\x7b\xd5\x7b\xe5\x7b\xda\x7b\xe8\x7b\xf9\x7b\xd4\x7b\xea\x7b\xe2\x7b\xdc\x7b\xeb\x7b\xd8\x7b\xdf\x7c\xd2\x7c\xd4\x7c\xd7\x7c\xd0\x7c\xd1\x7e\x12\x7e\x21\x7e\x17\x7e\x0c\x7e\x1f\x7e\x20\x7e\x13\x7e\x0e\x7e\x1c\x7e\x15\x7e\x1a\x7e\x22\x7e\x0b\x7e\x0f\x7e\x16\x7e\x0d\x7e\x14\x7e\x25\x7e\x24\x7f\x43\x7f\x7b\x7f\x7c\x7f\x7a\x7f\xb1\x7f\xef\x80\x2a\x80\x29\x80\x6c\x81\xb1\x81\xa6\x81\xae\x81\xb9\x81\xb5\x81\xab\x81\xb0\x81\xac\x81\xb4\x81\xb2\x81\xb7\x81\xa7", /* 8580 */ "\x00\x00\x81\xf2\x82\x55\x82\x56\x82\x57\x85\x56\x85\x45\x85\x6b\x85\x4d\x85\x53\x85\x61\x85\x58\x85\x40\x85\x46\x85\x64\x85\x41\x85\x62\x85\x44\x85\x51\x85\x47\x85\x63\x85\x3e\x85\x5b\x85\x71\x85\x4e\x85\x6e\x85\x75\x85\x55\x85\x67\x85\x60\x85\x8c\x85\x66\x85\x5d\x85\x54\x85\x65\x85\x6c\x86\x63\x86\x65\x86\x64\x87\x9b\x87\x8f\x87\x97\x87\x93\x87\x92\x87\x88\x87\x81\x87\x96\x87\x98\x87\x79\x87\x87\x87\xa3\x87\x85\x87\x90\x87\x91\x87\x9d\x87\x84\x87\x94\x87\x9c\x87\x9a\x87\x89\x89\x1e\x89\x26\x89\x30\x89\x2d\x89\x2e\x89\x27\x89\x31\x89\x22\x89\x29\x89\x23\x89\x2f\x89\x2c\x89\x1f\x89\xf1\x8a\xe0\x8a\xe2\x8a\xf2\x8a\xf4\x8a\xf5\x8a\xdd\x8b\x14\x8a\xe4\x8a\xdf\x8a\xf0\x8a\xc8\x8a\xde\x8a\xe1\x8a\xe8\x8a\xff\x8a\xef\x8a\xfb\x8c\x91\x8c\x92\x8c\x90\x8c\xf5\x8c\xee\x8c\xf1\x8c\xf0\x8c\xf3\x8d\x6c\x8d\x6e\x8d\xa5\x8d\xa7\x8e\x33\x8e\x3e\x8e\x38\x8e\x40\x8e\x45\x8e\x36\x8e\x3c\x8e\x3d\x8e\x41\x8e\x30\x8e\x3f\x8e\xbd\x8f\x36\x8f\x2e\x8f\x35\x8f\x32\x8f\x39\x8f\x37\x8f\x34\x90\x76\x90\x79\x90\x7b\x90\x86\x00\x00\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xfa\x91\x33\x91\x35\x91\x36\x91\x93\x91\x90\x91\x91\x91\x8d\x91\x8f\x93\x27\x93\x1e\x93\x08\x93\x1f\x93\x06\x93\x0f\x93\x7a\x93\x38\x93\x3c\x93\x1b\x93\x23\x93\x12\x93\x01\x93\x46\x93\x2d\x93\x0e\x93\x0d\x92\xcb\x93\x1d\x92\xfa\x93\x25\x93\x13\x92\xf9\x92\xf7\x93\x34\x93\x02\x93\x24\x92\xff\x93\x29\x93\x39\x93\x35\x93\x2a\x93\x14\x93\x0c\x93\x0b\x92\xfe\x93\x09\x93\x00\x92\xfb\x93\x16\x95\xbc\x95\xcd\x95\xbe\x95\xb9\x95\xba\x95\xb6\x95\xbf\x95\xb5\x95\xbd\x96\xa9\x96\xd4\x97\x0b\x97\x12\x97\x10", /* 8680 */ "\x00\x00\x97\x99\x97\x97\x97\x94\x97\xf0\x97\xf8\x98\x35\x98\x2f\x98\x32\x99\x24\x99\x1f\x99\x27\x99\x29\x99\x9e\x99\xee\x99\xec\x99\xe5\x99\xe4\x99\xf0\x99\xe3\x99\xea\x99\xe9\x99\xe7\x9a\xb9\x9a\xbf\x9a\xb4\x9a\xbb\x9a\xf6\x9a\xfa\x9a\xf9\x9a\xf7\x9b\x33\x9b\x80\x9b\x85\x9b\x87\x9b\x7c\x9b\x7e\x9b\x7b\x9b\x82\x9b\x93\x9b\x92\x9b\x90\x9b\x7a\x9b\x95\x9b\x7d\x9b\x88\x9d\x25\x9d\x17\x9d\x20\x9d\x1e\x9d\x14\x9d\x29\x9d\x1d\x9d\x18\x9d\x22\x9d\x10\x9d\x19\x9d\x1f\x9e\x88\x9e\x86\x9e\x87\x9e\xae\x9e\xad\x9e\xd5\x9e\xd6\x9e\xfa\x9f\x12\x9f\x3d\x51\x26\x51\x25\x51\x22\x51\x24\x51\x20\x51\x29\x52\xf4\x56\x93\x56\x8c\x56\x8d\x56\x86\x56\x84\x56\x83\x56\x7e\x56\x82\x56\x7f\x56\x81\x58\xd6\x58\xd4\x58\xcf\x58\xd2\x5b\x2d\x5b\x25\x5b\x32\x5b\x23\x5b\x2c\x5b\x27\x5b\x26\x5b\x2f\x5b\x2e\x5b\x7b\x5b\xf1\x5b\xf2\x5d\xb7\x5e\x6c\x5e\x6a\x5f\xbe\x5f\xbb\x61\xc3\x61\xb5\x61\xbc\x61\xe7\x61\xe0\x61\xe5\x61\xe4\x61\xe8\x61\xde\x64\xef\x64\xe9\x64\xe3\x64\xeb\x64\xe4\x64\xe8\x65\x81\x65\x80\x65\xb6\x65\xda\x66\xd2\x00\x00\x00\x00", /* 8700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8d\x6a\x96\x6a\x81\x6a\xa5\x6a\x89\x6a\x9f\x6a\x9b\x6a\xa1\x6a\x9e\x6a\x87\x6a\x93\x6a\x8e\x6a\x95\x6a\x83\x6a\xa8\x6a\xa4\x6a\x91\x6a\x7f\x6a\xa6\x6a\x9a\x6a\x85\x6a\x8c\x6a\x92\x6b\x5b\x6b\xad\x6c\x09\x6f\xcc\x6f\xa9\x6f\xf4\x6f\xd4\x6f\xe3\x6f\xdc\x6f\xed\x6f\xe7\x6f\xe6\x6f\xde\x6f\xf2\x6f\xdd\x6f\xe2\x6f\xe8\x71\xe1\x71\xf1\x71\xe8\x71\xf2\x71\xe4\x71\xf0\x71\xe2\x73\x73\x73\x6e\x73\x6f\x74\x97\x74\xb2\x74\xab\x74\x90\x74\xaa\x74\xad\x74\xb1\x74\xa5\x74\xaf\x75\x10\x75\x11\x75\x12\x75\x0f", /* 8780 */ "\x00\x00\x75\x84\x76\x43\x76\x48\x76\x49\x76\x47\x76\xa4\x76\xe9\x77\xb5\x77\xab\x77\xb2\x77\xb7\x77\xb6\x77\xb4\x77\xb1\x77\xa8\x77\xf0\x78\xf3\x78\xfd\x79\x02\x78\xfb\x78\xfc\x78\xf2\x79\x05\x78\xf9\x78\xfe\x79\x04\x79\xab\x79\xa8\x7a\x5c\x7a\x5b\x7a\x56\x7a\x58\x7a\x54\x7a\x5a\x7a\xbe\x7a\xc0\x7a\xc1\x7c\x05\x7c\x0f\x7b\xf2\x7c\x00\x7b\xff\x7b\xfb\x7c\x0e\x7b\xf4\x7c\x0b\x7b\xf3\x7c\x02\x7c\x09\x7c\x03\x7c\x01\x7b\xf8\x7b\xfd\x7c\x06\x7b\xf0\x7b\xf1\x7c\x10\x7c\x0a\x7c\xe8\x7e\x2d\x7e\x3c\x7e\x42\x7e\x33\x98\x48\x7e\x38\x7e\x2a\x7e\x49\x7e\x40\x7e\x47\x7e\x29\x7e\x4c\x7e\x30\x7e\x3b\x7e\x36\x7e\x44\x7e\x3a\x7f\x45\x7f\x7f\x7f\x7e\x7f\x7d\x7f\xf4\x7f\xf2\x80\x2c\x81\xbb\x81\xc4\x81\xcc\x81\xca\x81\xc5\x81\xc7\x81\xbc\x81\xe9\x82\x5b\x82\x5a\x82\x5c\x85\x83\x85\x80\x85\x8f\x85\xa7\x85\x95\x85\xa0\x85\x8b\x85\xa3\x85\x7b\x85\xa4\x85\x9a\x85\x9e\x85\x77\x85\x7c\x85\x89\x85\xa1\x85\x7a\x85\x78\x85\x57\x85\x8e\x85\x96\x85\x86\x85\x8d\x85\x99\x85\x9d\x85\x81\x85\xa2\x85\x82\x85\x88\x85\x85\x85\x79\x00\x00\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x76\x85\x98\x85\x90\x85\x9f\x86\x68\x87\xbe\x87\xaa\x87\xad\x87\xc5\x87\xb0\x87\xac\x87\xb9\x87\xb5\x87\xbc\x87\xae\x87\xc9\x87\xc3\x87\xc2\x87\xcc\x87\xb7\x87\xaf\x87\xc4\x87\xca\x87\xb4\x87\xb6\x87\xbf\x87\xb8\x87\xbd\x87\xde\x87\xb2\x89\x35\x89\x33\x89\x3c\x89\x3e\x89\x41\x89\x52\x89\x37\x89\x42\x89\xad\x89\xaf\x89\xae\x89\xf2\x89\xf3\x8b\x1e\x8b\x18\x8b\x16\x8b\x11\x8b\x05\x8b\x0b\x8b\x22\x8b\x0f\x8b\x12\x8b\x15\x8b\x07\x8b\x0d\x8b\x08\x8b\x06\x8b\x1c\x8b\x13\x8b\x1a\x8c\x4f\x8c\x70\x8c\x72", /* 8880 */ "\x00\x00\x8c\x71\x8c\x6f\x8c\x95\x8c\x94\x8c\xf9\x8d\x6f\x8e\x4e\x8e\x4d\x8e\x53\x8e\x50\x8e\x4c\x8e\x47\x8f\x43\x8f\x40\x90\x85\x90\x7e\x91\x38\x91\x9a\x91\xa2\x91\x9b\x91\x99\x91\x9f\x91\xa1\x91\x9d\x91\xa0\x93\xa1\x93\x83\x93\xaf\x93\x64\x93\x56\x93\x47\x93\x7c\x93\x58\x93\x5c\x93\x76\x93\x49\x93\x50\x93\x51\x93\x60\x93\x6d\x93\x8f\x93\x4c\x93\x6a\x93\x79\x93\x57\x93\x55\x93\x52\x93\x4f\x93\x71\x93\x77\x93\x7b\x93\x61\x93\x5e\x93\x63\x93\x67\x93\x80\x93\x4e\x93\x59\x95\xc7\x95\xc0\x95\xc9\x95\xc3\x95\xc5\x95\xb7\x96\xae\x96\xb0\x96\xac\x97\x20\x97\x1f\x97\x18\x97\x1d\x97\x19\x97\x9a\x97\xa1\x97\x9c\x97\x9e\x97\x9d\x97\xd5\x97\xd4\x97\xf1\x98\x41\x98\x44\x98\x4a\x98\x49\x98\x45\x98\x43\x99\x25\x99\x2b\x99\x2c\x99\x2a\x99\x33\x99\x32\x99\x2f\x99\x2d\x99\x31\x99\x30\x99\x98\x99\xa3\x99\xa1\x9a\x02\x99\xfa\x99\xf4\x99\xf7\x99\xf9\x99\xf8\x99\xf6\x99\xfb\x99\xfd\x99\xfe\x99\xfc\x9a\x03\x9a\xbe\x9a\xfe\x9a\xfd\x9b\x01\x9a\xfc\x9b\x48\x9b\x9a\x9b\xa8\x9b\x9e\x9b\x9b\x9b\xa6\x9b\xa1\x9b\xa5\x9b\xa4\x00\x00\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x86\x9b\xa2\x9b\xa0\x9b\xaf\x9d\x33\x9d\x41\x9d\x67\x9d\x36\x9d\x2e\x9d\x2f\x9d\x31\x9d\x38\x9d\x30\x9d\x45\x9d\x42\x9d\x43\x9d\x3e\x9d\x37\x9d\x40\x9d\x3d\x7f\xf5\x9d\x2d\x9e\x8a\x9e\x89\x9e\x8d\x9e\xb0\x9e\xc8\x9e\xda\x9e\xfb\x9e\xff\x9f\x24\x9f\x23\x9f\x22\x9f\x54\x9f\xa0\x51\x31\x51\x2d\x51\x2e\x56\x98\x56\x9c\x56\x97\x56\x9a\x56\x9d\x56\x99\x59\x70\x5b\x3c\x5c\x69\x5c\x6a\x5d\xc0\x5e\x6d\x5e\x6e\x61\xd8\x61\xdf\x61\xed\x61\xee\x61\xf1\x61\xea\x61\xf0\x61\xeb\x61\xd6\x61\xe9\x64\xff\x65\x04", /* 8980 */ "\x00\x00\x64\xfd\x64\xf8\x65\x01\x65\x03\x64\xfc\x65\x94\x65\xdb\x66\xda\x66\xdb\x66\xd8\x6a\xc5\x6a\xb9\x6a\xbd\x6a\xe1\x6a\xc6\x6a\xba\x6a\xb6\x6a\xb7\x6a\xc7\x6a\xb4\x6a\xad\x6b\x5e\x6b\xc9\x6c\x0b\x70\x07\x70\x0c\x70\x0d\x70\x01\x70\x05\x70\x14\x70\x0e\x6f\xff\x70\x00\x6f\xfb\x70\x26\x6f\xfc\x6f\xf7\x70\x0a\x72\x01\x71\xff\x71\xf9\x72\x03\x71\xfd\x73\x76\x74\xb8\x74\xc0\x74\xb5\x74\xc1\x74\xbe\x74\xb6\x74\xbb\x74\xc2\x75\x14\x75\x13\x76\x5c\x76\x64\x76\x59\x76\x50\x76\x53\x76\x57\x76\x5a\x76\xa6\x76\xbd\x76\xec\x77\xc2\x77\xba\x78\xff\x79\x0c\x79\x13\x79\x14\x79\x09\x79\x10\x79\x12\x79\x11\x79\xad\x79\xac\x7a\x5f\x7c\x1c\x7c\x29\x7c\x19\x7c\x20\x7c\x1f\x7c\x2d\x7c\x1d\x7c\x26\x7c\x28\x7c\x22\x7c\x25\x7c\x30\x7e\x5c\x7e\x50\x7e\x56\x7e\x63\x7e\x58\x7e\x62\x7e\x5f\x7e\x51\x7e\x60\x7e\x57\x7e\x53\x7f\xb5\x7f\xb3\x7f\xf7\x7f\xf8\x80\x75\x81\xd1\x81\xd2\x81\xd0\x82\x5f\x82\x5e\x85\xb4\x85\xc6\x85\xc0\x85\xc3\x85\xc2\x85\xb3\x85\xb5\x85\xbd\x85\xc7\x85\xc4\x85\xbf\x85\xcb\x85\xce\x85\xc8\x85\xc5\x00\x00\x00\x00", /* 8a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\xb1\x85\xb6\x85\xd2\x86\x24\x85\xb8\x85\xb7\x85\xbe\x86\x69\x87\xe7\x87\xe6\x87\xe2\x87\xdb\x87\xeb\x87\xea\x87\xe5\x87\xdf\x87\xf3\x87\xe4\x87\xd4\x87\xdc\x87\xd3\x87\xed\x87\xd8\x87\xe3\x87\xa4\x87\xd7\x87\xd9\x88\x01\x87\xf4\x87\xe8\x87\xdd\x89\x53\x89\x4b\x89\x4f\x89\x4c\x89\x46\x89\x50\x89\x51\x89\x49\x8b\x2a\x8b\x27\x8b\x23\x8b\x33\x8b\x30\x8b\x35\x8b\x47\x8b\x2f\x8b\x3c\x8b\x3e\x8b\x31\x8b\x25\x8b\x37\x8b\x26\x8b\x36\x8b\x2e\x8b\x24\x8b\x3b\x8b\x3d\x8b\x3a\x8c\x42\x8c\x75\x8c\x99\x8c\x98", /* 8a80 */ "\x00\x00\x8c\x97\x8c\xfe\x8d\x04\x8d\x02\x8d\x00\x8e\x5c\x8e\x62\x8e\x60\x8e\x57\x8e\x56\x8e\x5e\x8e\x65\x8e\x67\x8e\x5b\x8e\x5a\x8e\x61\x8e\x5d\x8e\x69\x8e\x54\x8f\x46\x8f\x47\x8f\x48\x8f\x4b\x91\x28\x91\x3a\x91\x3b\x91\x3e\x91\xa8\x91\xa5\x91\xa7\x91\xaf\x91\xaa\x93\xb5\x93\x8c\x93\x92\x93\xb7\x93\x9b\x93\x9d\x93\x89\x93\xa7\x93\x8e\x93\xaa\x93\x9e\x93\xa6\x93\x95\x93\x88\x93\x99\x93\x9f\x93\x8d\x93\xb1\x93\x91\x93\xb2\x93\xa4\x93\xa8\x93\xb4\x93\xa3\x93\xa5\x95\xd2\x95\xd3\x95\xd1\x96\xb3\x96\xd7\x96\xda\x5d\xc2\x96\xdf\x96\xd8\x96\xdd\x97\x23\x97\x22\x97\x25\x97\xac\x97\xae\x97\xa8\x97\xab\x97\xa4\x97\xaa\x97\xa2\x97\xa5\x97\xd7\x97\xd9\x97\xd6\x97\xd8\x97\xfa\x98\x50\x98\x51\x98\x52\x98\xb8\x99\x41\x99\x3c\x99\x3a\x9a\x0f\x9a\x0b\x9a\x09\x9a\x0d\x9a\x04\x9a\x11\x9a\x0a\x9a\x05\x9a\x07\x9a\x06\x9a\xc0\x9a\xdc\x9b\x08\x9b\x04\x9b\x05\x9b\x29\x9b\x35\x9b\x4a\x9b\x4c\x9b\x4b\x9b\xc7\x9b\xc6\x9b\xc3\x9b\xbf\x9b\xc1\x9b\xb5\x9b\xb8\x9b\xd3\x9b\xb6\x9b\xc4\x9b\xb9\x9b\xbd\x9d\x5c\x9d\x53\x9d\x4f\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x4a\x9d\x5b\x9d\x4b\x9d\x59\x9d\x56\x9d\x4c\x9d\x57\x9d\x52\x9d\x54\x9d\x5f\x9d\x58\x9d\x5a\x9e\x8e\x9e\x8c\x9e\xdf\x9f\x01\x9f\x00\x9f\x16\x9f\x25\x9f\x2b\x9f\x2a\x9f\x29\x9f\x28\x9f\x4c\x9f\x55\x51\x34\x51\x35\x52\x96\x52\xf7\x53\xb4\x56\xab\x56\xad\x56\xa6\x56\xa7\x56\xaa\x56\xac\x58\xda\x58\xdd\x58\xdb\x59\x12\x5b\x3d\x5b\x3e\x5b\x3f\x5d\xc3\x5e\x70\x5f\xbf\x61\xfb\x65\x07\x65\x10\x65\x0d\x65\x09\x65\x0c\x65\x0e\x65\x84\x65\xde\x65\xdd\x66\xde\x6a\xe7\x6a\xe0\x6a\xcc\x6a\xd1\x6a\xd9\x6a\xcb", /* 8b80 */ "\x00\x00\x6a\xdf\x6a\xdc\x6a\xd0\x6a\xeb\x6a\xcf\x6a\xcd\x6a\xde\x6b\x60\x6b\xb0\x6c\x0c\x70\x19\x70\x27\x70\x20\x70\x16\x70\x2b\x70\x21\x70\x22\x70\x23\x70\x29\x70\x17\x70\x24\x70\x1c\x70\x2a\x72\x0c\x72\x0a\x72\x07\x72\x02\x72\x05\x72\xa5\x72\xa6\x72\xa4\x72\xa3\x72\xa1\x74\xcb\x74\xc5\x74\xb7\x74\xc3\x75\x16\x76\x60\x77\xc9\x77\xca\x77\xc4\x77\xf1\x79\x1d\x79\x1b\x79\x21\x79\x1c\x79\x17\x79\x1e\x79\xb0\x7a\x67\x7a\x68\x7c\x33\x7c\x3c\x7c\x39\x7c\x2c\x7c\x3b\x7c\xec\x7c\xea\x7e\x76\x7e\x75\x7e\x78\x7e\x70\x7e\x77\x7e\x6f\x7e\x7a\x7e\x72\x7e\x74\x7e\x68\x7f\x4b\x7f\x4a\x7f\x83\x7f\x86\x7f\xb7\x7f\xfd\x7f\xfe\x80\x78\x81\xd7\x81\xd5\x82\x64\x82\x61\x82\x63\x85\xeb\x85\xf1\x85\xed\x85\xd9\x85\xe1\x85\xe8\x85\xda\x85\xd7\x85\xec\x85\xf2\x85\xf8\x85\xd8\x85\xdf\x85\xe3\x85\xdc\x85\xd1\x85\xf0\x85\xe6\x85\xef\x85\xde\x85\xe2\x88\x00\x87\xfa\x88\x03\x87\xf6\x87\xf7\x88\x09\x88\x0c\x88\x0b\x88\x06\x87\xfc\x88\x08\x87\xff\x88\x0a\x88\x02\x89\x62\x89\x5a\x89\x5b\x89\x57\x89\x61\x89\x5c\x89\x58\x89\x5d\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x59\x89\x88\x89\xb7\x89\xb6\x89\xf6\x8b\x50\x8b\x48\x8b\x4a\x8b\x40\x8b\x53\x8b\x56\x8b\x54\x8b\x4b\x8b\x55\x8b\x51\x8b\x42\x8b\x52\x8b\x57\x8c\x43\x8c\x77\x8c\x76\x8c\x9a\x8d\x06\x8d\x07\x8d\x09\x8d\xac\x8d\xaa\x8d\xad\x8d\xab\x8e\x6d\x8e\x78\x8e\x73\x8e\x6a\x8e\x6f\x8e\x7b\x8e\xc2\x8f\x52\x8f\x51\x8f\x4f\x8f\x50\x8f\x53\x8f\xb4\x91\x40\x91\x3f\x91\xb0\x91\xad\x93\xde\x93\xc7\x93\xcf\x93\xc2\x93\xda\x93\xd0\x93\xf9\x93\xec\x93\xcc\x93\xd9\x93\xa9\x93\xe6\x93\xca\x93\xd4\x93\xee\x93\xe3\x93\xd5", /* 8c80 */ "\x00\x00\x93\xc4\x93\xce\x93\xc0\x93\xd2\x93\xe7\x95\x7d\x95\xda\x95\xdb\x96\xe1\x97\x29\x97\x2b\x97\x2c\x97\x28\x97\x26\x97\xb3\x97\xb7\x97\xb6\x97\xdd\x97\xde\x97\xdf\x98\x5c\x98\x59\x98\x5d\x98\x57\x98\xbf\x98\xbd\x98\xbb\x98\xbe\x99\x48\x99\x47\x99\x43\x99\xa6\x99\xa7\x9a\x1a\x9a\x15\x9a\x25\x9a\x1d\x9a\x24\x9a\x1b\x9a\x22\x9a\x20\x9a\x27\x9a\x23\x9a\x1e\x9a\x1c\x9a\x14\x9a\xc2\x9b\x0b\x9b\x0a\x9b\x0e\x9b\x0c\x9b\x37\x9b\xea\x9b\xeb\x9b\xe0\x9b\xde\x9b\xe4\x9b\xe6\x9b\xe2\x9b\xf0\x9b\xd4\x9b\xd7\x9b\xec\x9b\xdc\x9b\xd9\x9b\xe5\x9b\xd5\x9b\xe1\x9b\xda\x9d\x77\x9d\x81\x9d\x8a\x9d\x84\x9d\x88\x9d\x71\x9d\x80\x9d\x78\x9d\x86\x9d\x8b\x9d\x8c\x9d\x7d\x9d\x6b\x9d\x74\x9d\x75\x9d\x70\x9d\x69\x9d\x85\x9d\x73\x9d\x7b\x9d\x82\x9d\x6f\x9d\x79\x9d\x7f\x9d\x87\x9d\x68\x9e\x94\x9e\x91\x9e\xc0\x9e\xfc\x9f\x2d\x9f\x40\x9f\x41\x9f\x4d\x9f\x56\x9f\x57\x9f\x58\x53\x37\x56\xb2\x56\xb5\x56\xb3\x58\xe3\x5b\x45\x5d\xc6\x5d\xc7\x5e\xee\x5e\xef\x5f\xc0\x5f\xc1\x61\xf9\x65\x17\x65\x16\x65\x15\x65\x13\x65\xdf\x66\xe8\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe3\x66\xe4\x6a\xf3\x6a\xf0\x6a\xea\x6a\xe8\x6a\xf9\x6a\xf1\x6a\xee\x6a\xef\x70\x3c\x70\x35\x70\x2f\x70\x37\x70\x34\x70\x31\x70\x42\x70\x38\x70\x3f\x70\x3a\x70\x39\x70\x40\x70\x3b\x70\x33\x70\x41\x72\x13\x72\x14\x72\xa8\x73\x7d\x73\x7c\x74\xba\x76\xab\x76\xaa\x76\xbe\x76\xed\x77\xcc\x77\xce\x77\xcf\x77\xcd\x77\xf2\x79\x25\x79\x23\x79\x27\x79\x28\x79\x24\x79\x29\x79\xb2\x7a\x6e\x7a\x6c\x7a\x6d\x7a\xf7\x7c\x49\x7c\x48\x7c\x4a\x7c\x47\x7c\x45\x7c\xee\x7e\x7b\x7e\x7e\x7e\x81\x7e\x80\x7f\xba\x7f\xff", /* 8d80 */ "\x00\x00\x80\x79\x81\xdb\x81\xd9\x82\x0b\x82\x68\x82\x69\x86\x22\x85\xff\x86\x01\x85\xfe\x86\x1b\x86\x00\x85\xf6\x86\x04\x86\x09\x86\x05\x86\x0c\x85\xfd\x88\x19\x88\x10\x88\x11\x88\x17\x88\x13\x88\x16\x89\x63\x89\x66\x89\xb9\x89\xf7\x8b\x60\x8b\x6a\x8b\x5d\x8b\x68\x8b\x63\x8b\x65\x8b\x67\x8b\x6d\x8d\xae\x8e\x86\x8e\x88\x8e\x84\x8f\x59\x8f\x56\x8f\x57\x8f\x55\x8f\x58\x8f\x5a\x90\x8d\x91\x43\x91\x41\x91\xb7\x91\xb5\x91\xb2\x91\xb3\x94\x0b\x94\x13\x93\xfb\x94\x20\x94\x0f\x94\x14\x93\xfe\x94\x15\x94\x10\x94\x28\x94\x19\x94\x0d\x93\xf5\x94\x00\x93\xf7\x94\x07\x94\x0e\x94\x16\x94\x12\x93\xfa\x94\x09\x93\xf8\x94\x0a\x93\xff\x93\xfc\x94\x0c\x93\xf6\x94\x11\x94\x06\x95\xde\x95\xe0\x95\xdf\x97\x2e\x97\x2f\x97\xb9\x97\xbb\x97\xfd\x97\xfe\x98\x60\x98\x62\x98\x63\x98\x5f\x98\xc1\x98\xc2\x99\x50\x99\x4e\x99\x59\x99\x4c\x99\x4b\x99\x53\x9a\x32\x9a\x34\x9a\x31\x9a\x2c\x9a\x2a\x9a\x36\x9a\x29\x9a\x2e\x9a\x38\x9a\x2d\x9a\xc7\x9a\xca\x9a\xc6\x9b\x10\x9b\x12\x9b\x11\x9c\x0b\x9c\x08\x9b\xf7\x9c\x05\x9c\x12\x9b\xf8\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x40\x9c\x07\x9c\x0e\x9c\x06\x9c\x17\x9c\x14\x9c\x09\x9d\x9f\x9d\x99\x9d\xa4\x9d\x9d\x9d\x92\x9d\x98\x9d\x90\x9d\x9b\x9d\xa0\x9d\x94\x9d\x9c\x9d\xaa\x9d\x97\x9d\xa1\x9d\x9a\x9d\xa2\x9d\xa8\x9d\x9e\x9d\xa3\x9d\xbf\x9d\xa9\x9d\x96\x9d\xa6\x9d\xa7\x9e\x99\x9e\x9b\x9e\x9a\x9e\xe5\x9e\xe4\x9e\xe7\x9e\xe6\x9f\x30\x9f\x2e\x9f\x5b\x9f\x60\x9f\x5e\x9f\x5d\x9f\x59\x9f\x91\x51\x3a\x51\x39\x52\x98\x52\x97\x56\xc3\x56\xbd\x56\xbe\x5b\x48\x5b\x47\x5d\xcb\x5d\xcf\x5e\xf1\x61\xfd\x65\x1b\x6b\x02\x6a\xfc\x6b\x03", /* 8e80 */ "\x00\x00\x6a\xf8\x6b\x00\x70\x43\x70\x44\x70\x4a\x70\x48\x70\x49\x70\x45\x70\x46\x72\x1d\x72\x1a\x72\x19\x73\x7e\x75\x17\x76\x6a\x77\xd0\x79\x2d\x79\x31\x79\x2f\x7c\x54\x7c\x53\x7c\xf2\x7e\x8a\x7e\x87\x7e\x88\x7e\x8b\x7e\x86\x7e\x8d\x7f\x4d\x7f\xbb\x80\x30\x81\xdd\x86\x18\x86\x2a\x86\x26\x86\x1f\x86\x23\x86\x1c\x86\x19\x86\x27\x86\x2e\x86\x21\x86\x20\x86\x29\x86\x1e\x86\x25\x88\x29\x88\x1d\x88\x1b\x88\x20\x88\x24\x88\x1c\x88\x2b\x88\x4a\x89\x6d\x89\x69\x89\x6e\x89\x6b\x89\xfa\x8b\x79\x8b\x78\x8b\x45\x8b\x7a\x8b\x7b\x8d\x10\x8d\x14\x8d\xaf\x8e\x8e\x8e\x8c\x8f\x5e\x8f\x5b\x8f\x5d\x91\x46\x91\x44\x91\x45\x91\xb9\x94\x3f\x94\x3b\x94\x36\x94\x29\x94\x3d\x94\x3c\x94\x30\x94\x39\x94\x2a\x94\x37\x94\x2c\x94\x40\x94\x31\x95\xe5\x95\xe4\x95\xe3\x97\x35\x97\x3a\x97\xbf\x97\xe1\x98\x64\x98\xc9\x98\xc6\x98\xc0\x99\x58\x99\x56\x9a\x39\x9a\x3d\x9a\x46\x9a\x44\x9a\x42\x9a\x41\x9a\x3a\x9a\x3f\x9a\xcd\x9b\x15\x9b\x17\x9b\x18\x9b\x16\x9b\x3a\x9b\x52\x9c\x2b\x9c\x1d\x9c\x1c\x9c\x2c\x9c\x23\x9c\x28\x9c\x29\x9c\x24\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x21\x9d\xb7\x9d\xb6\x9d\xbc\x9d\xc1\x9d\xc7\x9d\xca\x9d\xcf\x9d\xbe\x9d\xc5\x9d\xc3\x9d\xbb\x9d\xb5\x9d\xce\x9d\xb9\x9d\xba\x9d\xac\x9d\xc8\x9d\xb1\x9d\xad\x9d\xcc\x9d\xb3\x9d\xcd\x9d\xb2\x9e\x7a\x9e\x9c\x9e\xeb\x9e\xee\x9e\xed\x9f\x1b\x9f\x18\x9f\x1a\x9f\x31\x9f\x4e\x9f\x65\x9f\x64\x9f\x92\x4e\xb9\x56\xc6\x56\xc5\x56\xcb\x59\x71\x5b\x4b\x5b\x4c\x5d\xd5\x5d\xd1\x5e\xf2\x65\x21\x65\x20\x65\x26\x65\x22\x6b\x0b\x6b\x08\x6b\x09\x6c\x0d\x70\x55\x70\x56\x70\x57\x70\x52\x72\x1e\x72\x1f\x72\xa9\x73\x7f", /* 8f80 */ "\x00\x00\x74\xd8\x74\xd5\x74\xd9\x74\xd7\x76\x6d\x76\xad\x79\x35\x79\xb4\x7a\x70\x7a\x71\x7c\x57\x7c\x5c\x7c\x59\x7c\x5b\x7c\x5a\x7c\xf4\x7c\xf1\x7e\x91\x7f\x4f\x7f\x87\x81\xde\x82\x6b\x86\x34\x86\x35\x86\x33\x86\x2c\x86\x32\x86\x36\x88\x2c\x88\x28\x88\x26\x88\x2a\x88\x25\x89\x71\x89\xbf\x89\xbe\x89\xfb\x8b\x7e\x8b\x84\x8b\x82\x8b\x86\x8b\x85\x8b\x7f\x8d\x15\x8e\x95\x8e\x94\x8e\x9a\x8e\x92\x8e\x90\x8e\x96\x8e\x97\x8f\x60\x8f\x62\x91\x47\x94\x4c\x94\x50\x94\x4a\x94\x4b\x94\x4f\x94\x47\x94\x45\x94\x48\x94\x49\x94\x46\x97\x3f\x97\xe3\x98\x6a\x98\x69\x98\xcb\x99\x54\x99\x5b\x9a\x4e\x9a\x53\x9a\x54\x9a\x4c\x9a\x4f\x9a\x48\x9a\x4a\x9a\x49\x9a\x52\x9a\x50\x9a\xd0\x9b\x19\x9b\x2b\x9b\x3b\x9b\x56\x9b\x55\x9c\x46\x9c\x48\x9c\x3f\x9c\x44\x9c\x39\x9c\x33\x9c\x41\x9c\x3c\x9c\x37\x9c\x34\x9c\x32\x9c\x3d\x9c\x36\x9d\xdb\x9d\xd2\x9d\xde\x9d\xda\x9d\xcb\x9d\xd0\x9d\xdc\x9d\xd1\x9d\xdf\x9d\xe9\x9d\xd9\x9d\xd8\x9d\xd6\x9d\xf5\x9d\xd5\x9d\xdd\x9e\xb6\x9e\xf0\x9f\x35\x9f\x33\x9f\x32\x9f\x42\x9f\x6b\x9f\x95\x9f\xa2\x00\x00\x00\x00", /* 9000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x3d\x52\x99\x58\xe8\x58\xe7\x59\x72\x5b\x4d\x5d\xd8\x88\x2f\x5f\x4f\x62\x01\x62\x03\x62\x04\x65\x29\x65\x25\x65\x96\x66\xeb\x6b\x11\x6b\x12\x6b\x0f\x6b\xca\x70\x5b\x70\x5a\x72\x22\x73\x82\x73\x81\x73\x83\x76\x70\x77\xd4\x7c\x67\x7c\x66\x7e\x95\x82\x6c\x86\x3a\x86\x40\x86\x39\x86\x3c\x86\x31\x86\x3b\x86\x3e\x88\x30\x88\x32\x88\x2e\x88\x33\x89\x76\x89\x74\x89\x73\x89\xfe\x8b\x8c\x8b\x8e\x8b\x8b\x8b\x88\x8c\x45\x8d\x19\x8e\x98\x8f\x64\x8f\x63\x91\xbc\x94\x62\x94\x55\x94\x5d\x94\x57\x94\x5e\x97\xc4", /* 9080 */ "\x00\x00\x97\xc5\x98\x00\x9a\x56\x9a\x59\x9b\x1e\x9b\x1f\x9b\x20\x9c\x52\x9c\x58\x9c\x50\x9c\x4a\x9c\x4d\x9c\x4b\x9c\x55\x9c\x59\x9c\x4c\x9c\x4e\x9d\xfb\x9d\xf7\x9d\xef\x9d\xe3\x9d\xeb\x9d\xf8\x9d\xe4\x9d\xf6\x9d\xe1\x9d\xee\x9d\xe6\x9d\xf2\x9d\xf0\x9d\xe2\x9d\xec\x9d\xf4\x9d\xf3\x9d\xe8\x9d\xed\x9e\xc2\x9e\xd0\x9e\xf2\x9e\xf3\x9f\x06\x9f\x1c\x9f\x38\x9f\x37\x9f\x36\x9f\x43\x9f\x4f\x9f\x71\x9f\x70\x9f\x6e\x9f\x6f\x56\xd3\x56\xcd\x5b\x4e\x5c\x6d\x65\x2d\x66\xed\x66\xee\x6b\x13\x70\x5f\x70\x61\x70\x5d\x70\x60\x72\x23\x74\xdb\x74\xe5\x77\xd5\x79\x38\x79\xb7\x79\xb6\x7c\x6a\x7e\x97\x7f\x89\x82\x6d\x86\x43\x88\x38\x88\x37\x88\x35\x88\x4b\x8b\x94\x8b\x95\x8e\x9e\x8e\x9f\x8e\xa0\x8e\x9d\x91\xbe\x91\xbd\x91\xc2\x94\x6b\x94\x68\x94\x69\x96\xe5\x97\x46\x97\x43\x97\x47\x97\xc7\x97\xe5\x9a\x5e\x9a\xd5\x9b\x59\x9c\x63\x9c\x67\x9c\x66\x9c\x62\x9c\x5e\x9c\x60\x9e\x02\x9d\xfe\x9e\x07\x9e\x03\x9e\x06\x9e\x05\x9e\x00\x9e\x01\x9e\x09\x9d\xff\x9d\xfd\x9e\x04\x9e\xa0\x9f\x1e\x9f\x46\x9f\x74\x9f\x75\x9f\x76\x56\xd4\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x2e\x65\xb8\x6b\x18\x6b\x19\x6b\x17\x6b\x1a\x70\x62\x72\x26\x72\xaa\x77\xd8\x77\xd9\x79\x39\x7c\x69\x7c\x6b\x7c\xf6\x7e\x9a\x7e\x98\x7e\x9b\x7e\x99\x81\xe0\x81\xe1\x86\x46\x86\x47\x86\x48\x89\x79\x89\x7a\x89\x7c\x89\x7b\x89\xff\x8b\x98\x8b\x99\x8e\xa5\x8e\xa4\x8e\xa3\x94\x6e\x94\x6d\x94\x6f\x94\x71\x94\x73\x97\x49\x98\x72\x99\x5f\x9c\x68\x9c\x6e\x9c\x6d\x9e\x0b\x9e\x0d\x9e\x10\x9e\x0f\x9e\x12\x9e\x11\x9e\xa1\x9e\xf5\x9f\x09\x9f\x47\x9f\x78\x9f\x7b\x9f\x7a\x9f\x79\x57\x1e\x70\x66\x7c\x6f\x88\x3c", /* 9180 */ "\x00\x00\x8d\xb2\x8e\xa6\x91\xc3\x94\x74\x94\x78\x94\x76\x94\x75\x9a\x60\x9c\x74\x9c\x73\x9c\x71\x9c\x75\x9e\x14\x9e\x13\x9e\xf6\x9f\x0a\x9f\xa4\x70\x68\x70\x65\x7c\xf7\x86\x6a\x88\x3e\x88\x3d\x88\x3f\x8b\x9e\x8c\x9c\x8e\xa9\x8e\xc9\x97\x4b\x98\x73\x98\x74\x98\xcc\x99\x61\x99\xab\x9a\x64\x9a\x66\x9a\x67\x9b\x24\x9e\x15\x9e\x17\x9f\x48\x62\x07\x6b\x1e\x72\x27\x86\x4c\x8e\xa8\x94\x82\x94\x80\x94\x81\x9a\x69\x9a\x68\x9b\x2e\x9e\x19\x72\x29\x86\x4b\x8b\x9f\x94\x83\x9c\x79\x9e\xb7\x76\x75\x9a\x6b\x9c\x7a\x9e\x1d\x70\x69\x70\x6a\x9e\xa4\x9f\x7e\x9f\x49\x9f\x98\x69\x1e\x6e\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* c280 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* c300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* c380 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* c400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* c480 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* c500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* c580 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* c600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* c680 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* c700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* c780 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* c800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* c880 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* c900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* c980 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* ca00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* ca80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* cb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* cb80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* cc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96", /* cc80 */ "\x00\x00\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xe7\xa8\xe7\xa9\xe7\xaa\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe7\xff\xe8\x00\xe8\x01\xe8\x02\xe8\x03\xe8\x04\xe8\x05\xe8\x06\xe8\x07\xe8\x08\xe8\x09\xe8\x0a\xe8\x0b\xe8\x0c\xe8\x0d\xe8\x0e\xe8\x0f\xe8\x10\xe8\x11\xe8\x12\xe8\x13\x00\x00\x00\x00", /* cd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x14\xe8\x15\xe8\x16\xe8\x17\xe8\x18\xe8\x19\xe8\x1a\xe8\x1b\xe8\x1c\xe8\x1d\xe8\x1e\xe8\x1f\xe8\x20\xe8\x21\xe8\x22\xe8\x23\xe8\x24\xe8\x25\xe8\x26\xe8\x27\xe8\x28\xe8\x29\xe8\x2a\xe8\x2b\xe8\x2c\xe8\x2d\xe8\x2e\xe8\x2f\xe8\x30\xe8\x31\xe8\x32\xe8\x33\xe8\x34\xe8\x35\xe8\x36\xe8\x37\xe8\x38\xe8\x39\xe8\x3a\xe8\x3b\xe8\x3c\xe8\x3d\xe8\x3e\xe8\x3f\xe8\x40\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52", /* cd80 */ "\x00\x00\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\x00\x00\x00\x00", /* ce00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe8\xff\xe9\x00\xe9\x01\xe9\x02\xe9\x03\xe9\x04\xe9\x05\xe9\x06\xe9\x07\xe9\x08\xe9\x09\xe9\x0a\xe9\x0b\xe9\x0c\xe9\x0d\xe9\x0e", /* ce80 */ "\x00\x00\xe9\x0f\xe9\x10\xe9\x11\xe9\x12\xe9\x13\xe9\x14\xe9\x15\xe9\x16\xe9\x17\xe9\x18\xe9\x19\xe9\x1a\xe9\x1b\xe9\x1c\xe9\x1d\xe9\x1e\xe9\x1f\xe9\x20\xe9\x21\xe9\x22\xe9\x23\xe9\x24\xe9\x25\xe9\x26\xe9\x27\xe9\x28\xe9\x29\xe9\x2a\xe9\x2b\xe9\x2c\xe9\x2d\xe9\x2e\xe9\x2f\xe9\x30\xe9\x31\xe9\x32\xe9\x33\xe9\x34\xe9\x35\xe9\x36\xe9\x37\xe9\x38\xe9\x39\xe9\x3a\xe9\x3b\xe9\x3c\xe9\x3d\xe9\x3e\xe9\x3f\xe9\x40\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xe9\x58\xe9\x59\xe9\x5a\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\x00\x00\x00\x00", /* cf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca", /* cf80 */ "\x00\x00\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xe9\xff\xea\x00\xea\x01\xea\x02\xea\x03\xea\x04\xea\x05\xea\x06\xea\x07\xea\x08\xea\x09\xea\x0a\xea\x0b\xea\x0c\xea\x0d\xea\x0e\xea\x0f\xea\x10\xea\x11\xea\x12\xea\x13\xea\x14\xea\x15\xea\x16\xea\x17\xea\x18\xea\x19\xea\x1a\xea\x1b\xea\x1c\xea\x1d\xea\x1e\xea\x1f\xea\x20\xea\x21\xea\x22\xea\x23\xea\x24\xea\x25\xea\x26\xea\x27\xea\x28\xea\x29\xea\x2a\xea\x2b\xea\x2c\xea\x2d\xea\x2e\xea\x2f\xea\x30\xea\x31\xea\x32\xea\x33\xea\x34\xea\x35\xea\x36\xea\x37\xea\x38\xea\x39\xea\x3a\xea\x3b\xea\x3c\xea\x3d\xea\x3e\xea\x3f\xea\x40\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\x00\x00\x00\x00", /* d000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86", /* d080 */ "\x00\x00\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xea\xff\xeb\x00\xeb\x01\xeb\x02\xeb\x03\x00\x00\x00\x00", /* d100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x04\xeb\x05\xeb\x06\xeb\x07\xeb\x08\xeb\x09\xeb\x0a\xeb\x0b\xeb\x0c\xeb\x0d\xeb\x0e\xeb\x0f\xeb\x10\xeb\x11\xeb\x12\xeb\x13\xeb\x14\xeb\x15\xeb\x16\xeb\x17\xeb\x18\xeb\x19\xeb\x1a\xeb\x1b\xeb\x1c\xeb\x1d\xeb\x1e\xeb\x1f\xeb\x20\xeb\x21\xeb\x22\xeb\x23\xeb\x24\xeb\x25\xeb\x26\xeb\x27\xeb\x28\xeb\x29\xeb\x2a\xeb\x2b\xeb\x2c\xeb\x2d\xeb\x2e\xeb\x2f\xeb\x30\xeb\x31\xeb\x32\xeb\x33\xeb\x34\xeb\x35\xeb\x36\xeb\x37\xeb\x38\xeb\x39\xeb\x3a\xeb\x3b\xeb\x3c\xeb\x3d\xeb\x3e\xeb\x3f\xeb\x40\xeb\x41\xeb\x42", /* d180 */ "\x00\x00\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d\xeb\x5e\xeb\x5f\xeb\x60\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\x00\x00\x00\x00", /* d200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xeb\xd7\xeb\xd8\xeb\xd9\xeb\xda\xeb\xdb\xeb\xdc\xeb\xdd\xeb\xde\xeb\xdf\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xeb\xf2\xeb\xf3\xeb\xf4\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe", /* d280 */ "\x00\x00\xeb\xff\xec\x00\xec\x01\xec\x02\xec\x03\xec\x04\xec\x05\xec\x06\xec\x07\xec\x08\xec\x09\xec\x0a\xec\x0b\xec\x0c\xec\x0d\xec\x0e\xec\x0f\xec\x10\xec\x11\xec\x12\xec\x13\xec\x14\xec\x15\xec\x16\xec\x17\xec\x18\xec\x19\xec\x1a\xec\x1b\xec\x1c\xec\x1d\xec\x1e\xec\x1f\xec\x20\xec\x21\xec\x22\xec\x23\xec\x24\xec\x25\xec\x26\xec\x27\xec\x28\xec\x29\xec\x2a\xec\x2b\xec\x2c\xec\x2d\xec\x2e\xec\x2f\xec\x30\xec\x31\xec\x32\xec\x33\xec\x34\xec\x35\xec\x36\xec\x37\xec\x38\xec\x39\xec\x3a\xec\x3b\xec\x3c\xec\x3d\xec\x3e\xec\x3f\xec\x40\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\x00\x00\x00\x00", /* d300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba", /* d380 */ "\x00\x00\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xec\xff\xed\x00\xed\x01\xed\x02\xed\x03\xed\x04\xed\x05\xed\x06\xed\x07\xed\x08\xed\x09\xed\x0a\xed\x0b\xed\x0c\xed\x0d\xed\x0e\xed\x0f\xed\x10\xed\x11\xed\x12\xed\x13\xed\x14\xed\x15\xed\x16\xed\x17\xed\x18\xed\x19\xed\x1a\xed\x1b\xed\x1c\xed\x1d\xed\x1e\xed\x1f\xed\x20\xed\x21\xed\x22\xed\x23\xed\x24\xed\x25\xed\x26\xed\x27\xed\x28\xed\x29\xed\x2a\xed\x2b\xed\x2c\xed\x2d\xed\x2e\xed\x2f\xed\x30\xed\x31\xed\x32\xed\x33\xed\x34\xed\x35\xed\x36\xed\x37\x00\x00\x00\x00", /* d400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x38\xed\x39\xed\x3a\xed\x3b\xed\x3c\xed\x3d\xed\x3e\xed\x3f\xed\x40\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76", /* d480 */ "\x00\x00\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\x00\x00\x00\x00", /* d500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xed\xff\xee\x00\xee\x01\xee\x02\xee\x03\xee\x04\xee\x05\xee\x06\xee\x07\xee\x08\xee\x09\xee\x0a\xee\x0b\xee\x0c\xee\x0d\xee\x0e\xee\x0f\xee\x10\xee\x11\xee\x12\xee\x13\xee\x14\xee\x15\xee\x16\xee\x17\xee\x18\xee\x19\xee\x1a\xee\x1b\xee\x1c\xee\x1d\xee\x1e\xee\x1f\xee\x20\xee\x21\xee\x22\xee\x23\xee\x24\xee\x25\xee\x26\xee\x27\xee\x28\xee\x29\xee\x2a\xee\x2b\xee\x2c\xee\x2d\xee\x2e\xee\x2f\xee\x30\xee\x31\xee\x32", /* d580 */ "\x00\x00\xee\x33\xee\x34\xee\x35\xee\x36\xee\x37\xee\x38\xee\x39\xee\x3a\xee\x3b\xee\x3c\xee\x3d\xee\x3e\xee\x3f\xee\x40\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\x00\x00\x00\x00", /* d600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee", /* d680 */ "\x00\x00\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xee\xff\xef\x00\xef\x01\xef\x02\xef\x03\xef\x04\xef\x05\xef\x06\xef\x07\xef\x08\xef\x09\xef\x0a\xef\x0b\xef\x0c\xef\x0d\xef\x0e\xef\x0f\xef\x10\xef\x11\xef\x12\xef\x13\xef\x14\xef\x15\xef\x16\xef\x17\xef\x18\xef\x19\xef\x1a\xef\x1b\xef\x1c\xef\x1d\xef\x1e\xef\x1f\xef\x20\xef\x21\xef\x22\xef\x23\xef\x24\xef\x25\xef\x26\xef\x27\xef\x28\xef\x29\xef\x2a\xef\x2b\xef\x2c\xef\x2d\xef\x2e\xef\x2f\xef\x30\xef\x31\xef\x32\xef\x33\xef\x34\xef\x35\xef\x36\xef\x37\xef\x38\xef\x39\xef\x3a\xef\x3b\xef\x3c\xef\x3d\xef\x3e\xef\x3f\xef\x40\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\x00\x00\x00\x00", /* d700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa", /* d780 */ "\x00\x00\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xef\xd2\xef\xd3\xef\xd4\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xef\xff\xf0\x00\xf0\x01\xf0\x02\xf0\x03\xf0\x04\xf0\x05\xf0\x06\xf0\x07\xf0\x08\xf0\x09\xf0\x0a\xf0\x0b\xf0\x0c\xf0\x0d\xf0\x0e\xf0\x0f\xf0\x10\xf0\x11\xf0\x12\xf0\x13\xf0\x14\xf0\x15\xf0\x16\xf0\x17\xf0\x18\xf0\x19\xf0\x1a\xf0\x1b\xf0\x1c\xf0\x1d\xf0\x1e\xf0\x1f\xf0\x20\xf0\x21\xf0\x22\xf0\x23\xf0\x24\xf0\x25\xf0\x26\xf0\x27\x00\x00\x00\x00", /* d800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x28\xf0\x29\xf0\x2a\xf0\x2b\xf0\x2c\xf0\x2d\xf0\x2e\xf0\x2f\xf0\x30\xf0\x31\xf0\x32\xf0\x33\xf0\x34\xf0\x35\xf0\x36\xf0\x37\xf0\x38\xf0\x39\xf0\x3a\xf0\x3b\xf0\x3c\xf0\x3d\xf0\x3e\xf0\x3f\xf0\x40\xf0\x41\xf0\x42\xf0\x43\xf0\x44\xf0\x45\xf0\x46\xf0\x47\xf0\x48\xf0\x49\xf0\x4a\xf0\x4b\xf0\x4c\xf0\x4d\xf0\x4e\xf0\x4f\xf0\x50\xf0\x51\xf0\x52\xf0\x53\xf0\x54\xf0\x55\xf0\x56\xf0\x57\xf0\x58\xf0\x59\xf0\x5a\xf0\x5b\xf0\x5c\xf0\x5d\xf0\x5e\xf0\x5f\xf0\x60\xf0\x61\xf0\x62\xf0\x63\xf0\x64\xf0\x65\xf0\x66", /* d880 */ "\x00\x00\xf0\x67\xf0\x68\xf0\x69\xf0\x6a\xf0\x6b\xf0\x6c\xf0\x6d\xf0\x6e\xf0\x6f\xf0\x70\xf0\x71\xf0\x72\xf0\x73\xf0\x74\xf0\x75\xf0\x76\xf0\x77\xf0\x78\xf0\x79\xf0\x7a\xf0\x7b\xf0\x7c\xf0\x7d\xf0\x7e\xf0\x7f\xf0\x80\xf0\x81\xf0\x82\xf0\x83\xf0\x84\xf0\x85\xf0\x86\xf0\x87\xf0\x88\xf0\x89\xf0\x8a\xf0\x8b\xf0\x8c\xf0\x8d\xf0\x8e\xf0\x8f\xf0\x90\xf0\x91\xf0\x92\xf0\x93\xf0\x94\xf0\x95\xf0\x96\xf0\x97\xf0\x98\xf0\x99\xf0\x9a\xf0\x9b\xf0\x9c\xf0\x9d\xf0\x9e\xf0\x9f\xf0\xa0\xf0\xa1\xf0\xa2\xf0\xa3\xf0\xa4\xf0\xa5\xf0\xa6\xf0\xa7\xf0\xa8\xf0\xa9\xf0\xaa\xf0\xab\xf0\xac\xf0\xad\xf0\xae\xf0\xaf\xf0\xb0\xf0\xb1\xf0\xb2\xf0\xb3\xf0\xb4\xf0\xb5\xf0\xb6\xf0\xb7\xf0\xb8\xf0\xb9\xf0\xba\xf0\xbb\xf0\xbc\xf0\xbd\xf0\xbe\xf0\xbf\xf0\xc0\xf0\xc1\xf0\xc2\xf0\xc3\xf0\xc4\xf0\xc5\xf0\xc6\xf0\xc7\xf0\xc8\xf0\xc9\xf0\xca\xf0\xcb\xf0\xcc\xf0\xcd\xf0\xce\xf0\xcf\xf0\xd0\xf0\xd1\xf0\xd2\xf0\xd3\xf0\xd4\xf0\xd5\xf0\xd6\xf0\xd7\xf0\xd8\xf0\xd9\xf0\xda\xf0\xdb\xf0\xdc\xf0\xdd\xf0\xde\xf0\xdf\xf0\xe0\xf0\xe1\xf0\xe2\xf0\xe3\x00\x00\x00\x00", /* d900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xe4\xf0\xe5\xf0\xe6\xf0\xe7\xf0\xe8\xf0\xe9\xf0\xea\xf0\xeb\xf0\xec\xf0\xed\xf0\xee\xf0\xef\xf0\xf0\xf0\xf1\xf0\xf2\xf0\xf3\xf0\xf4\xf0\xf5\xf0\xf6\xf0\xf7\xf0\xf8\xf0\xf9\xf0\xfa\xf0\xfb\xf0\xfc\xf0\xfd\xf0\xfe\xf0\xff\xf1\x00\xf1\x01\xf1\x02\xf1\x03\xf1\x04\xf1\x05\xf1\x06\xf1\x07\xf1\x08\xf1\x09\xf1\x0a\xf1\x0b\xf1\x0c\xf1\x0d\xf1\x0e\xf1\x0f\xf1\x10\xf1\x11\xf1\x12\xf1\x13\xf1\x14\xf1\x15\xf1\x16\xf1\x17\xf1\x18\xf1\x19\xf1\x1a\xf1\x1b\xf1\x1c\xf1\x1d\xf1\x1e\xf1\x1f\xf1\x20\xf1\x21\xf1\x22", /* d980 */ "\x00\x00\xf1\x23\xf1\x24\xf1\x25\xf1\x26\xf1\x27\xf1\x28\xf1\x29\xf1\x2a\xf1\x2b\xf1\x2c\xf1\x2d\xf1\x2e\xf1\x2f\xf1\x30\xf1\x31\xf1\x32\xf1\x33\xf1\x34\xf1\x35\xf1\x36\xf1\x37\xf1\x38\xf1\x39\xf1\x3a\xf1\x3b\xf1\x3c\xf1\x3d\xf1\x3e\xf1\x3f\xf1\x40\xf1\x41\xf1\x42\xf1\x43\xf1\x44\xf1\x45\xf1\x46\xf1\x47\xf1\x48\xf1\x49\xf1\x4a\xf1\x4b\xf1\x4c\xf1\x4d\xf1\x4e\xf1\x4f\xf1\x50\xf1\x51\xf1\x52\xf1\x53\xf1\x54\xf1\x55\xf1\x56\xf1\x57\xf1\x58\xf1\x59\xf1\x5a\xf1\x5b\xf1\x5c\xf1\x5d\xf1\x5e\xf1\x5f\xf1\x60\xf1\x61\xf1\x62\xf1\x63\xf1\x64\xf1\x65\xf1\x66\xf1\x67\xf1\x68\xf1\x69\xf1\x6a\xf1\x6b\xf1\x6c\xf1\x6d\xf1\x6e\xf1\x6f\xf1\x70\xf1\x71\xf1\x72\xf1\x73\xf1\x74\xf1\x75\xf1\x76\xf1\x77\xf1\x78\xf1\x79\xf1\x7a\xf1\x7b\xf1\x7c\xf1\x7d\xf1\x7e\xf1\x7f\xf1\x80\xf1\x81\xf1\x82\xf1\x83\xf1\x84\xf1\x85\xf1\x86\xf1\x87\xf1\x88\xf1\x89\xf1\x8a\xf1\x8b\xf1\x8c\xf1\x8d\xf1\x8e\xf1\x8f\xf1\x90\xf1\x91\xf1\x92\xf1\x93\xf1\x94\xf1\x95\xf1\x96\xf1\x97\xf1\x98\xf1\x99\xf1\x9a\xf1\x9b\xf1\x9c\xf1\x9d\xf1\x9e\xf1\x9f\x00\x00\x00\x00", /* da00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\xa0\xf1\xa1\xf1\xa2\xf1\xa3\xf1\xa4\xf1\xa5\xf1\xa6\xf1\xa7\xf1\xa8\xf1\xa9\xf1\xaa\xf1\xab\xf1\xac\xf1\xad\xf1\xae\xf1\xaf\xf1\xb0\xf1\xb1\xf1\xb2\xf1\xb3\xf1\xb4\xf1\xb5\xf1\xb6\xf1\xb7\xf1\xb8\xf1\xb9\xf1\xba\xf1\xbb\xf1\xbc\xf1\xbd\xf1\xbe\xf1\xbf\xf1\xc0\xf1\xc1\xf1\xc2\xf1\xc3\xf1\xc4\xf1\xc5\xf1\xc6\xf1\xc7\xf1\xc8\xf1\xc9\xf1\xca\xf1\xcb\xf1\xcc\xf1\xcd\xf1\xce\xf1\xcf\xf1\xd0\xf1\xd1\xf1\xd2\xf1\xd3\xf1\xd4\xf1\xd5\xf1\xd6\xf1\xd7\xf1\xd8\xf1\xd9\xf1\xda\xf1\xdb\xf1\xdc\xf1\xdd\xf1\xde", /* da80 */ "\x00\x00\xf1\xdf\xf1\xe0\xf1\xe1\xf1\xe2\xf1\xe3\xf1\xe4\xf1\xe5\xf1\xe6\xf1\xe7\xf1\xe8\xf1\xe9\xf1\xea\xf1\xeb\xf1\xec\xf1\xed\xf1\xee\xf1\xef\xf1\xf0\xf1\xf1\xf1\xf2\xf1\xf3\xf1\xf4\xf1\xf5\xf1\xf6\xf1\xf7\xf1\xf8\xf1\xf9\xf1\xfa\xf1\xfb\xf1\xfc\xf1\xfd\xf1\xfe\xf1\xff\xf2\x00\xf2\x01\xf2\x02\xf2\x03\xf2\x04\xf2\x05\xf2\x06\xf2\x07\xf2\x08\xf2\x09\xf2\x0a\xf2\x0b\xf2\x0c\xf2\x0d\xf2\x0e\xf2\x0f\xf2\x10\xf2\x11\xf2\x12\xf2\x13\xf2\x14\xf2\x15\xf2\x16\xf2\x17\xf2\x18\xf2\x19\xf2\x1a\xf2\x1b\xf2\x1c\xf2\x1d\xf2\x1e\xf2\x1f\xf2\x20\xf2\x21\xf2\x22\xf2\x23\xf2\x24\xf2\x25\xf2\x26\xf2\x27\xf2\x28\xf2\x29\xf2\x2a\xf2\x2b\xf2\x2c\xf2\x2d\xf2\x2e\xf2\x2f\xf2\x30\xf2\x31\xf2\x32\xf2\x33\xf2\x34\xf2\x35\xf2\x36\xf2\x37\xf2\x38\xf2\x39\xf2\x3a\xf2\x3b\xf2\x3c\xf2\x3d\xf2\x3e\xf2\x3f\xf2\x40\xf2\x41\xf2\x42\xf2\x43\xf2\x44\xf2\x45\xf2\x46\xf2\x47\xf2\x48\xf2\x49\xf2\x4a\xf2\x4b\xf2\x4c\xf2\x4d\xf2\x4e\xf2\x4f\xf2\x50\xf2\x51\xf2\x52\xf2\x53\xf2\x54\xf2\x55\xf2\x56\xf2\x57\xf2\x58\xf2\x59\xf2\x5a\xf2\x5b\x00\x00\x00\x00", /* db00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x5c\xf2\x5d\xf2\x5e\xf2\x5f\xf2\x60\xf2\x61\xf2\x62\xf2\x63\xf2\x64\xf2\x65\xf2\x66\xf2\x67\xf2\x68\xf2\x69\xf2\x6a\xf2\x6b\xf2\x6c\xf2\x6d\xf2\x6e\xf2\x6f\xf2\x70\xf2\x71\xf2\x72\xf2\x73\xf2\x74\xf2\x75\xf2\x76\xf2\x77\xf2\x78\xf2\x79\xf2\x7a\xf2\x7b\xf2\x7c\xf2\x7d\xf2\x7e\xf2\x7f\xf2\x80\xf2\x81\xf2\x82\xf2\x83\xf2\x84\xf2\x85\xf2\x86\xf2\x87\xf2\x88\xf2\x89\xf2\x8a\xf2\x8b\xf2\x8c\xf2\x8d\xf2\x8e\xf2\x8f\xf2\x90\xf2\x91\xf2\x92\xf2\x93\xf2\x94\xf2\x95\xf2\x96\xf2\x97\xf2\x98\xf2\x99\xf2\x9a", /* db80 */ "\x00\x00\xf2\x9b\xf2\x9c\xf2\x9d\xf2\x9e\xf2\x9f\xf2\xa0\xf2\xa1\xf2\xa2\xf2\xa3\xf2\xa4\xf2\xa5\xf2\xa6\xf2\xa7\xf2\xa8\xf2\xa9\xf2\xaa\xf2\xab\xf2\xac\xf2\xad\xf2\xae\xf2\xaf\xf2\xb0\xf2\xb1\xf2\xb2\xf2\xb3\xf2\xb4\xf2\xb5\xf2\xb6\xf2\xb7\xf2\xb8\xf2\xb9\xf2\xba\xf2\xbb\xf2\xbc\xf2\xbd\xf2\xbe\xf2\xbf\xf2\xc0\xf2\xc1\xf2\xc2\xf2\xc3\xf2\xc4\xf2\xc5\xf2\xc6\xf2\xc7\xf2\xc8\xf2\xc9\xf2\xca\xf2\xcb\xf2\xcc\xf2\xcd\xf2\xce\xf2\xcf\xf2\xd0\xf2\xd1\xf2\xd2\xf2\xd3\xf2\xd4\xf2\xd5\xf2\xd6\xf2\xd7\xf2\xd8\xf2\xd9\xf2\xda\xf2\xdb\xf2\xdc\xf2\xdd\xf2\xde\xf2\xdf\xf2\xe0\xf2\xe1\xf2\xe2\xf2\xe3\xf2\xe4\xf2\xe5\xf2\xe6\xf2\xe7\xf2\xe8\xf2\xe9\xf2\xea\xf2\xeb\xf2\xec\xf2\xed\xf2\xee\xf2\xef\xf2\xf0\xf2\xf1\xf2\xf2\xf2\xf3\xf2\xf4\xf2\xf5\xf2\xf6\xf2\xf7\xf2\xf8\xf2\xf9\xf2\xfa\xf2\xfb\xf2\xfc\xf2\xfd\xf2\xfe\xf2\xff\xf3\x00\xf3\x01\xf3\x02\xf3\x03\xf3\x04\xf3\x05\xf3\x06\xf3\x07\xf3\x08\xf3\x09\xf3\x0a\xf3\x0b\xf3\x0c\xf3\x0d\xf3\x0e\xf3\x0f\xf3\x10\xf3\x11\xf3\x12\xf3\x13\xf3\x14\xf3\x15\xf3\x16\xf3\x17\x00\x00\x00\x00", /* dc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x18\xf3\x19\xf3\x1a\xf3\x1b\xf3\x1c\xf3\x1d\xf3\x1e\xf3\x1f\xf3\x20\xf3\x21\xf3\x22\xf3\x23\xf3\x24\xf3\x25\xf3\x26\xf3\x27\xf3\x28\xf3\x29\xf3\x2a\xf3\x2b\xf3\x2c\xf3\x2d\xf3\x2e\xf3\x2f\xf3\x30\xf3\x31\xf3\x32\xf3\x33\xf3\x34\xf3\x35\xf3\x36\xf3\x37\xf3\x38\xf3\x39\xf3\x3a\xf3\x3b\xf3\x3c\xf3\x3d\xf3\x3e\xf3\x3f\xf3\x40\xf3\x41\xf3\x42\xf3\x43\xf3\x44\xf3\x45\xf3\x46\xf3\x47\xf3\x48\xf3\x49\xf3\x4a\xf3\x4b\xf3\x4c\xf3\x4d\xf3\x4e\xf3\x4f\xf3\x50\xf3\x51\xf3\x52\xf3\x53\xf3\x54\xf3\x55\xf3\x56", /* dc80 */ "\x00\x00\xf3\x57\xf3\x58\xf3\x59\xf3\x5a\xf3\x5b\xf3\x5c\xf3\x5d\xf3\x5e\xf3\x5f\xf3\x60\xf3\x61\xf3\x62\xf3\x63\xf3\x64\xf3\x65\xf3\x66\xf3\x67\xf3\x68\xf3\x69\xf3\x6a\xf3\x6b\xf3\x6c\xf3\x6d\xf3\x6e\xf3\x6f\xf3\x70\xf3\x71\xf3\x72\xf3\x73\xf3\x74\xf3\x75\xf3\x76\xf3\x77\xf3\x78\xf3\x79\xf3\x7a\xf3\x7b\xf3\x7c\xf3\x7d\xf3\x7e\xf3\x7f\xf3\x80\xf3\x81\xf3\x82\xf3\x83\xf3\x84\xf3\x85\xf3\x86\xf3\x87\xf3\x88\xf3\x89\xf3\x8a\xf3\x8b\xf3\x8c\xf3\x8d\xf3\x8e\xf3\x8f\xf3\x90\xf3\x91\xf3\x92\xf3\x93\xf3\x94\xf3\x95\xf3\x96\xf3\x97\xf3\x98\xf3\x99\xf3\x9a\xf3\x9b\xf3\x9c\xf3\x9d\xf3\x9e\xf3\x9f\xf3\xa0\xf3\xa1\xf3\xa2\xf3\xa3\xf3\xa4\xf3\xa5\xf3\xa6\xf3\xa7\xf3\xa8\xf3\xa9\xf3\xaa\xf3\xab\xf3\xac\xf3\xad\xf3\xae\xf3\xaf\xf3\xb0\xf3\xb1\xf3\xb2\xf3\xb3\xf3\xb4\xf3\xb5\xf3\xb6\xf3\xb7\xf3\xb8\xf3\xb9\xf3\xba\xf3\xbb\xf3\xbc\xf3\xbd\xf3\xbe\xf3\xbf\xf3\xc0\xf3\xc1\xf3\xc2\xf3\xc3\xf3\xc4\xf3\xc5\xf3\xc6\xf3\xc7\xf3\xc8\xf3\xc9\xf3\xca\xf3\xcb\xf3\xcc\xf3\xcd\xf3\xce\xf3\xcf\xf3\xd0\xf3\xd1\xf3\xd2\xf3\xd3\x00\x00\x00\x00", /* dd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xd4\xf3\xd5\xf3\xd6\xf3\xd7\xf3\xd8\xf3\xd9\xf3\xda\xf3\xdb\xf3\xdc\xf3\xdd\xf3\xde\xf3\xdf\xf3\xe0\xf3\xe1\xf3\xe2\xf3\xe3\xf3\xe4\xf3\xe5\xf3\xe6\xf3\xe7\xf3\xe8\xf3\xe9\xf3\xea\xf3\xeb\xf3\xec\xf3\xed\xf3\xee\xf3\xef\xf3\xf0\xf3\xf1\xf3\xf2\xf3\xf3\xf3\xf4\xf3\xf5\xf3\xf6\xf3\xf7\xf3\xf8\xf3\xf9\xf3\xfa\xf3\xfb\xf3\xfc\xf3\xfd\xf3\xfe\xf3\xff\xf4\x00\xf4\x01\xf4\x02\xf4\x03\xf4\x04\xf4\x05\xf4\x06\xf4\x07\xf4\x08\xf4\x09\xf4\x0a\xf4\x0b\xf4\x0c\xf4\x0d\xf4\x0e\xf4\x0f\xf4\x10\xf4\x11\xf4\x12", /* dd80 */ "\x00\x00\xf4\x13\xf4\x14\xf4\x15\xf4\x16\xf4\x17\xf4\x18\xf4\x19\xf4\x1a\xf4\x1b\xf4\x1c\xf4\x1d\xf4\x1e\xf4\x1f\xf4\x20\xf4\x21\xf4\x22\xf4\x23\xf4\x24\xf4\x25\xf4\x26\xf4\x27\xf4\x28\xf4\x29\xf4\x2a\xf4\x2b\xf4\x2c\xf4\x2d\xf4\x2e\xf4\x2f\xf4\x30\xf4\x31\xf4\x32\xf4\x33\xf4\x34\xf4\x35\xf4\x36\xf4\x37\xf4\x38\xf4\x39\xf4\x3a\xf4\x3b\xf4\x3c\xf4\x3d\xf4\x3e\xf4\x3f\xf4\x40\xf4\x41\xf4\x42\xf4\x43\xf4\x44\xf4\x45\xf4\x46\xf4\x47\xf4\x48\xf4\x49\xf4\x4a\xf4\x4b\xf4\x4c\xf4\x4d\xf4\x4e\xf4\x4f\xf4\x50\xf4\x51\xf4\x52\xf4\x53\xf4\x54\xf4\x55\xf4\x56\xf4\x57\xf4\x58\xf4\x59\xf4\x5a\xf4\x5b\xf4\x5c\xf4\x5d\xf4\x5e\xf4\x5f\xf4\x60\xf4\x61\xf4\x62\xf4\x63\xf4\x64\xf4\x65\xf4\x66\xf4\x67\xf4\x68\xf4\x69\xf4\x6a\xf4\x6b\xf4\x6c\xf4\x6d\xf4\x6e\xf4\x6f\xf4\x70\xf4\x71\xf4\x72\xf4\x73\xf4\x74\xf4\x75\xf4\x76\xf4\x77\xf4\x78\xf4\x79\xf4\x7a\xf4\x7b\xf4\x7c\xf4\x7d\xf4\x7e\xf4\x7f\xf4\x80\xf4\x81\xf4\x82\xf4\x83\xf4\x84\xf4\x85\xf4\x86\xf4\x87\xf4\x88\xf4\x89\xf4\x8a\xf4\x8b\xf4\x8c\xf4\x8d\xf4\x8e\xf4\x8f\x00\x00\x00\x00", /* de00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x90\xf4\x91\xf4\x92\xf4\x93\xf4\x94\xf4\x95\xf4\x96\xf4\x97\xf4\x98\xf4\x99\xf4\x9a\xf4\x9b\xf4\x9c\xf4\x9d\xf4\x9e\xf4\x9f\xf4\xa0\xf4\xa1\xf4\xa2\xf4\xa3\xf4\xa4\xf4\xa5\xf4\xa6\xf4\xa7\xf4\xa8\xf4\xa9\xf4\xaa\xf4\xab\xf4\xac\xf4\xad\xf4\xae\xf4\xaf\xf4\xb0\xf4\xb1\xf4\xb2\xf4\xb3\xf4\xb4\xf4\xb5\xf4\xb6\xf4\xb7\xf4\xb8\xf4\xb9\xf4\xba\xf4\xbb\xf4\xbc\xf4\xbd\xf4\xbe\xf4\xbf\xf4\xc0\xf4\xc1\xf4\xc2\xf4\xc3\xf4\xc4\xf4\xc5\xf4\xc6\xf4\xc7\xf4\xc8\xf4\xc9\xf4\xca\xf4\xcb\xf4\xcc\xf4\xcd\xf4\xce", /* de80 */ "\x00\x00\xf4\xcf\xf4\xd0\xf4\xd1\xf4\xd2\xf4\xd3\xf4\xd4\xf4\xd5\xf4\xd6\xf4\xd7\xf4\xd8\xf4\xd9\xf4\xda\xf4\xdb\xf4\xdc\xf4\xdd\xf4\xde\xf4\xdf\xf4\xe0\xf4\xe1\xf4\xe2\xf4\xe3\xf4\xe4\xf4\xe5\xf4\xe6\xf4\xe7\xf4\xe8\xf4\xe9\xf4\xea\xf4\xeb\xf4\xec\xf4\xed\xf4\xee\xf4\xef\xf4\xf0\xf4\xf1\xf4\xf2\xf4\xf3\xf4\xf4\xf4\xf5\xf4\xf6\xf4\xf7\xf4\xf8\xf4\xf9\xf4\xfa\xf4\xfb\xf4\xfc\xf4\xfd\xf4\xfe\xf4\xff\xf5\x00\xf5\x01\xf5\x02\xf5\x03\xf5\x04\xf5\x05\xf5\x06\xf5\x07\xf5\x08\xf5\x09\xf5\x0a\xf5\x0b\xf5\x0c\xf5\x0d\xf5\x0e\xf5\x0f\xf5\x10\xf5\x11\xf5\x12\xf5\x13\xf5\x14\xf5\x15\xf5\x16\xf5\x17\xf5\x18\xf5\x19\xf5\x1a\xf5\x1b\xf5\x1c\xf5\x1d\xf5\x1e\xf5\x1f\xf5\x20\xf5\x21\xf5\x22\xf5\x23\xf5\x24\xf5\x25\xf5\x26\xf5\x27\xf5\x28\xf5\x29\xf5\x2a\xf5\x2b\xf5\x2c\xf5\x2d\xf5\x2e\xf5\x2f\xf5\x30\xf5\x31\xf5\x32\xf5\x33\xf5\x34\xf5\x35\xf5\x36\xf5\x37\xf5\x38\xf5\x39\xf5\x3a\xf5\x3b\xf5\x3c\xf5\x3d\xf5\x3e\xf5\x3f\xf5\x40\xf5\x41\xf5\x42\xf5\x43\xf5\x44\xf5\x45\xf5\x46\xf5\x47\xf5\x48\xf5\x49\xf5\x4a\xf5\x4b\x00\x00\x00\x00", /* df00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x4c\xf5\x4d\xf5\x4e\xf5\x4f\xf5\x50\xf5\x51\xf5\x52\xf5\x53\xf5\x54\xf5\x55\xf5\x56\xf5\x57\xf5\x58\xf5\x59\xf5\x5a\xf5\x5b\xf5\x5c\xf5\x5d\xf5\x5e\xf5\x5f\xf5\x60\xf5\x61\xf5\x62\xf5\x63\xf5\x64\xf5\x65\xf5\x66\xf5\x67\xf5\x68\xf5\x69\xf5\x6a\xf5\x6b\xf5\x6c\xf5\x6d\xf5\x6e\xf5\x6f\xf5\x70\xf5\x71\xf5\x72\xf5\x73\xf5\x74\xf5\x75\xf5\x76\xf5\x77\xf5\x78\xf5\x79\xf5\x7a\xf5\x7b\xf5\x7c\xf5\x7d\xf5\x7e\xf5\x7f\xf5\x80\xf5\x81\xf5\x82\xf5\x83\xf5\x84\xf5\x85\xf5\x86\xf5\x87\xf5\x88\xf5\x89\xf5\x8a", /* df80 */ "\x00\x00\xf5\x8b\xf5\x8c\xf5\x8d\xf5\x8e\xf5\x8f\xf5\x90\xf5\x91\xf5\x92\xf5\x93\xf5\x94\xf5\x95\xf5\x96\xf5\x97\xf5\x98\xf5\x99\xf5\x9a\xf5\x9b\xf5\x9c\xf5\x9d\xf5\x9e\xf5\x9f\xf5\xa0\xf5\xa1\xf5\xa2\xf5\xa3\xf5\xa4\xf5\xa5\xf5\xa6\xf5\xa7\xf5\xa8\xf5\xa9\xf5\xaa\xf5\xab\xf5\xac\xf5\xad\xf5\xae\xf5\xaf\xf5\xb0\xf5\xb1\xf5\xb2\xf5\xb3\xf5\xb4\xf5\xb5\xf5\xb6\xf5\xb7\xf5\xb8\xf5\xb9\xf5\xba\xf5\xbb\xf5\xbc\xf5\xbd\xf5\xbe\xf5\xbf\xf5\xc0\xf5\xc1\xf5\xc2\xf5\xc3\xf5\xc4\xf5\xc5\xf5\xc6\xf5\xc7\xf5\xc8\xf5\xc9\xf5\xca\xf5\xcb\xf5\xcc\xf5\xcd\xf5\xce\xf5\xcf\xf5\xd0\xf5\xd1\xf5\xd2\xf5\xd3\xf5\xd4\xf5\xd5\xf5\xd6\xf5\xd7\xf5\xd8\xf5\xd9\xf5\xda\xf5\xdb\xf5\xdc\xf5\xdd\xf5\xde\xf5\xdf\xf5\xe0\xf5\xe1\xf5\xe2\xf5\xe3\xf5\xe4\xf5\xe5\xf5\xe6\xf5\xe7\xf5\xe8\xf5\xe9\xf5\xea\xf5\xeb\xf5\xec\xf5\xed\xf5\xee\xf5\xef\xf5\xf0\xf5\xf1\xf5\xf2\xf5\xf3\xf5\xf4\xf5\xf5\xf5\xf6\xf5\xf7\xf5\xf8\xf5\xf9\xf5\xfa\xf5\xfb\xf5\xfc\xf5\xfd\xf5\xfe\xf5\xff\xf6\x00\xf6\x01\xf6\x02\xf6\x03\xf6\x04\xf6\x05\xf6\x06\xf6\x07\x00\x00\x00\x00", /* e000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x08\xf6\x09\xf6\x0a\xf6\x0b\xf6\x0c\xf6\x0d\xf6\x0e\xf6\x0f\xf6\x10\xf6\x11\xf6\x12\xf6\x13\xf6\x14\xf6\x15\xf6\x16\xf6\x17\xf6\x18\xf6\x19\xf6\x1a\xf6\x1b\xf6\x1c\xf6\x1d\xf6\x1e\xf6\x1f\xf6\x20\xf6\x21\xf6\x22\xf6\x23\xf6\x24\xf6\x25\xf6\x26\xf6\x27\xf6\x28\xf6\x29\xf6\x2a\xf6\x2b\xf6\x2c\xf6\x2d\xf6\x2e\xf6\x2f\xf6\x30\xf6\x31\xf6\x32\xf6\x33\xf6\x34\xf6\x35\xf6\x36\xf6\x37\xf6\x38\xf6\x39\xf6\x3a\xf6\x3b\xf6\x3c\xf6\x3d\xf6\x3e\xf6\x3f\xf6\x40\xf6\x41\xf6\x42\xf6\x43\xf6\x44\xf6\x45\xf6\x46", /* e080 */ "\x00\x00\xf6\x47\xf6\x48\xf6\x49\xf6\x4a\xf6\x4b\xf6\x4c\xf6\x4d\xf6\x4e\xf6\x4f\xf6\x50\xf6\x51\xf6\x52\xf6\x53\xf6\x54\xf6\x55\xf6\x56\xf6\x57\xf6\x58\xf6\x59\xf6\x5a\xf6\x5b\xf6\x5c\xf6\x5d\xf6\x5e\xf6\x5f\xf6\x60\xf6\x61\xf6\x62\xf6\x63\xf6\x64\xf6\x65\xf6\x66\xf6\x67\xf6\x68\xf6\x69\xf6\x6a\xf6\x6b\xf6\x6c\xf6\x6d\xf6\x6e\xf6\x6f\xf6\x70\xf6\x71\xf6\x72\xf6\x73\xf6\x74\xf6\x75\xf6\x76\xf6\x77\xf6\x78\xf6\x79\xf6\x7a\xf6\x7b\xf6\x7c\xf6\x7d\xf6\x7e\xf6\x7f\xf6\x80\xf6\x81\xf6\x82\xf6\x83\xf6\x84\xf6\x85\xf6\x86\xf6\x87\xf6\x88\xf6\x89\xf6\x8a\xf6\x8b\xf6\x8c\xf6\x8d\xf6\x8e\xf6\x8f\xf6\x90\xf6\x91\xf6\x92\xf6\x93\xf6\x94\xf6\x95\xf6\x96\xf6\x97\xf6\x98\xf6\x99\xf6\x9a\xf6\x9b\xf6\x9c\xf6\x9d\xf6\x9e\xf6\x9f\xf6\xa0\xf6\xa1\xf6\xa2\xf6\xa3\xf6\xa4\xf6\xa5\xf6\xa6\xf6\xa7\xf6\xa8\xf6\xa9\xf6\xaa\xf6\xab\xf6\xac\xf6\xad\xf6\xae\xf6\xaf\xf6\xb0\xf6\xb1\xf6\xb2\xf6\xb3\xf6\xb4\xf6\xb5\xf6\xb6\xf6\xb7\xf6\xb8\xf6\xb9\xf6\xba\xf6\xbb\xf6\xbc\xf6\xbd\xf6\xbe\xf6\xbf\xf6\xc0\xf6\xc1\xf6\xc2\xf6\xc3\x00\x00\x00\x00", /* e100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xc4\xf6\xc5\xf6\xc6\xf6\xc7\xf6\xc8\xf6\xc9\xf6\xca\xf6\xcb\xf6\xcc\xf6\xcd\xf6\xce\xf6\xcf\xf6\xd0\xf6\xd1\xf6\xd2\xf6\xd3\xf6\xd4\xf6\xd5\xf6\xd6\xf6\xd7\xf6\xd8\xf6\xd9\xf6\xda\xf6\xdb\xf6\xdc\xf6\xdd\xf6\xde\xf6\xdf\xf6\xe0\xf6\xe1\xf6\xe2\xf6\xe3\xf6\xe4\xf6\xe5\xf6\xe6\xf6\xe7\xf6\xe8\xf6\xe9\xf6\xea\xf6\xeb\xf6\xec\xf6\xed\xf6\xee\xf6\xef\xf6\xf0\xf6\xf1\xf6\xf2\xf6\xf3\xf6\xf4\xf6\xf5\xf6\xf6\xf6\xf7\xf6\xf8\xf6\xf9\xf6\xfa\xf6\xfb\xf6\xfc\xf6\xfd\xf6\xfe\xf6\xff\xf7\x00\xf7\x01\xf7\x02", /* e180 */ "\x00\x00\xf7\x03\xf7\x04\xf7\x05\xf7\x06\xf7\x07\xf7\x08\xf7\x09\xf7\x0a\xf7\x0b\xf7\x0c\xf7\x0d\xf7\x0e\xf7\x0f\xf7\x10\xf7\x11\xf7\x12\xf7\x13\xf7\x14\xf7\x15\xf7\x16\xf7\x17\xf7\x18\xf7\x19\xf7\x1a\xf7\x1b\xf7\x1c\xf7\x1d\xf7\x1e\xf7\x1f\xf7\x20\xf7\x21\xf7\x22\xf7\x23\xf7\x24\xf7\x25\xf7\x26\xf7\x27\xf7\x28\xf7\x29\xf7\x2a\xf7\x2b\xf7\x2c\xf7\x2d\xf7\x2e\xf7\x2f\xf7\x30\xf7\x31\xf7\x32\xf7\x33\xf7\x34\xf7\x35\xf7\x36\xf7\x37\xf7\x38\xf7\x39\xf7\x3a\xf7\x3b\xf7\x3c\xf7\x3d\xf7\x3e\xf7\x3f\xf7\x40\xf7\x41\xf7\x42\xf7\x43\xf7\x44\xf7\x45\xf7\x46\xf7\x47\xf7\x48\xf7\x49\xf7\x4a\xf7\x4b\xf7\x4c\xf7\x4d\xf7\x4e\xf7\x4f\xf7\x50\xf7\x51\xf7\x52\xf7\x53\xf7\x54\xf7\x55\xf7\x56\xf7\x57\xf7\x58\xf7\x59\xf7\x5a\xf7\x5b\xf7\x5c\xf7\x5d\xf7\x5e\xf7\x5f\xf7\x60\xf7\x61\xf7\x62\xf7\x63\xf7\x64\xf7\x65\xf7\x66\xf7\x67\xf7\x68\xf7\x69\xf7\x6a\xf7\x6b\xf7\x6c\xf7\x6d\xf7\x6e\xf7\x6f\xf7\x70\xf7\x71\xf7\x72\xf7\x73\xf7\x74\xf7\x75\xf7\x76\xf7\x77\xf7\x78\xf7\x79\xf7\x7a\xf7\x7b\xf7\x7c\xf7\x7d\xf7\x7e\xf7\x7f\x00\x00\x00\x00", /* e200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x80\xf7\x81\xf7\x82\xf7\x83\xf7\x84\xf7\x85\xf7\x86\xf7\x87\xf7\x88\xf7\x89\xf7\x8a\xf7\x8b\xf7\x8c\xf7\x8d\xf7\x8e\xf7\x8f\xf7\x90\xf7\x91\xf7\x92\xf7\x93\xf7\x94\xf7\x95\xf7\x96\xf7\x97\xf7\x98\xf7\x99\xf7\x9a\xf7\x9b\xf7\x9c\xf7\x9d\xf7\x9e\xf7\x9f\xf7\xa0\xf7\xa1\xf7\xa2\xf7\xa3\xf7\xa4\xf7\xa5\xf7\xa6\xf7\xa7\xf7\xa8\xf7\xa9\xf7\xaa\xf7\xab\xf7\xac\xf7\xad\xf7\xae\xf7\xaf\xf7\xb0\xf7\xb1\xf7\xb2\xf7\xb3\xf7\xb4\xf7\xb5\xf7\xb6\xf7\xb7\xf7\xb8\xf7\xb9\xf7\xba\xf7\xbb\xf7\xbc\xf7\xbd\xf7\xbe", /* e280 */ "\x00\x00\xf7\xbf\xf7\xc0\xf7\xc1\xf7\xc2\xf7\xc3\xf7\xc4\xf7\xc5\xf7\xc6\xf7\xc7\xf7\xc8\xf7\xc9\xf7\xca\xf7\xcb\xf7\xcc\xf7\xcd\xf7\xce\xf7\xcf\xf7\xd0\xf7\xd1\xf7\xd2\xf7\xd3\xf7\xd4\xf7\xd5\xf7\xd6\xf7\xd7\xf7\xd8\xf7\xd9\xf7\xda\xf7\xdb\xf7\xdc\xf7\xdd\xf7\xde\xf7\xdf\xf7\xe0\xf7\xe1\xf7\xe2\xf7\xe3\xf7\xe4\xf7\xe5\xf7\xe6\xf7\xe7\xf7\xe8\xf7\xe9\xf7\xea\xf7\xeb\xf7\xec\xf7\xed\xf7\xee\xf7\xef\xf7\xf0\xf7\xf1\xf7\xf2\xf7\xf3\xf7\xf4\xf7\xf5\xf7\xf6\xf7\xf7\xf7\xf8\xf7\xf9\xf7\xfa\xf7\xfb\xf7\xfc\xf7\xfd\xf7\xfe\xf7\xff\xf8\x00\xf8\x01\xf8\x02\xf8\x03\xf8\x04\xf8\x05\xf8\x06\xf8\x07\xf8\x08\xf8\x09\xf8\x0a\xf8\x0b\xf8\x0c\xf8\x0d\xf8\x0e\xf8\x0f\xf8\x10\xf8\x11\xf8\x12\xf8\x13\xf8\x14\xf8\x15\xf8\x16\xf8\x17\xf8\x18\xf8\x19\xf8\x1a\xf8\x1b\xf8\x1c\xf8\x1d\xf8\x1e\xf8\x1f\xf8\x20\xf8\x21\xf8\x22\xf8\x23\xf8\x24\xf8\x25\xf8\x26\xf8\x27\xf8\x28\xf8\x29\xf8\x2a\xf8\x2b\xf8\x2c\xf8\x2d\xf8\x2e\xf8\x2f\xf8\x30\xf8\x31\xf8\x32\xf8\x33\xf8\x34\xf8\x35\xf8\x36\xf8\x37\xf8\x38\xf8\x39\xf8\x3a\xf8\x3b\x00\x00\x00\x00", /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp1388", "0x03a90345" /* 937, 837 */, "gb18030.2000-1,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-1388_P103-2001 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x88\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x00\x00\x43\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x44\x46\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x48\x46\x46\x46\x5a\x00\x00\x46\x4c\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x46\x50\x46\x4e\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x46\x54\x46\x52\x00\x00\x46\x59\x00\x00\x00\x00\x00\x00", /* 0100 */ "\x00\x00\x46\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5d\x00\x00\x00\x00\x00\x00\x46\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x46\x4b\x00\x00\x46\x4f\x00\x00\x46\x53\x00\x00\x46\x55\x00\x00\x46\x56\x00\x00\x46\x57\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x46\x00\x00\x45\x45\xcd\x41\xcd\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ "\x47\x5d\x47\x5e\x47\x5f\x47\x60\x47\x61\x47\x62\x47\x63\x47\x64\x47\x65\x47\x66\x47\x67\x47\x68\x47\x69\x47\x6a\x47\x6b\x47\x6c\x47\x6d\x47\x6e\x47\x6f\x47\x70\x47\x71\x47\x72\x47\x73\x47\x74\x47\x75\x47\x76\x47\x77\x47\x78\x47\x79\x47\x7a\x47\x7b\x47\x7c\x47\x7d\x47\x7e\x47\x7f\x47\x80\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8d\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x47\xa1\x47\xa2\x47\xa3\x47\xa4\x47\xa5\x47\xa6\x47\xa7\x47\xa8\x47\xa9\x47\xaa\x47\xab\x47\xac\x47\xad\x47\xae\x47\xaf\x47\xb0\x47\xb1\x47\xb2\x47\xb3\x47\xb4\x47\xb5\x47\xb6\x47\xb7\x47\xb8\x47\xb9\x47\xba\x47\xbb\x47\xbc\x47\xbd\x47\xbe\x47\xbf\x47\xc0\x47\xc1\x47\xc2\x47\xc3\x47\xc4\x47\xc5\x47\xc6\x47\xc7\x47\xc8\x47\xc9\x47\xca\x47\xcb\x47\xcc\x47\xcd\x47\xce\x47\xcf\x47\xd0\x47\xd1\x47\xd2\x47\xd3\x47\xd4\x47\xd5\x47\xd6\x47\xd7\x47\xd8\x47\xd9\x47\xda\x47\xdb\x47\xdc", /* 0680 */ "\x47\xdd\x47\xde\x47\xdf\x47\xe0\x47\xe1\x47\xe2\x47\xe3\x47\xe4\x47\xe5\x47\xe6\x47\xe7\x47\xe8\x47\xe9\x47\xea\x47\xeb\x47\xec\x47\xed\x47\xee\x47\xef\x47\xf0\x47\xf1\x47\xf2\x47\xf3\x47\xf4\x47\xf5\x47\xf6\x47\xf7\x47\xf8\x47\xf9\x47\xfa\x47\xfb\x47\xfc\x47\xfd\x47\xfe\x48\x41\x48\x42\x48\x43\x48\x44\x48\x45\x48\x46\x48\x47\x48\x48\x48\x49\x48\x4a\x48\x4b\x48\x4c\x48\x4d\x48\x4e\x48\x4f\x48\x50\x48\x51\x48\x52\x48\x53\x48\x54\x48\x55\x48\x56\x48\x57\x48\x58\x48\x59\x48\x5a\x48\x5b\x48\x5c\x48\x5d\x48\x5e\x48\x5f\x48\x60\x48\x61\x48\x62\x48\x63\x48\x64\x48\x65\x48\x66\x48\x67\x48\x68\x48\x69\x48\x6a\x48\x6b\x48\x6c\x48\x6d\x48\x6e\x48\x6f\x48\x70\x48\x71\x48\x72\x48\x73\x48\x74\x48\x75\x48\x76\x48\x77\x48\x78\x48\x79\x48\x7a\x48\x7b\x48\x7c\x48\x7d\x48\x7e\x48\x7f\x48\x80\x48\x81\x48\x82\x48\x83\x48\x84\x48\x85\x48\x86\x48\x87\x48\x88\x48\x89\x48\x8a\x48\x8b\x48\x8c\x48\x8d\x48\x8e\x48\x8f\x48\x90\x48\x91\x48\x92\x48\x93\x48\x94\x48\x95\x48\x96\x48\x97\x48\x98\x48\x99\x48\x9a\x48\x9b\x48\x9c\x48\x9d\x48\x9e", /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ "\x6d\x41\x6d\x42\x6d\x43\x6d\x44\x6d\x45\x6d\x46\x6d\x47\x6d\x48\x6d\x49\x6d\x4a\x6d\x4b\x6d\x4c\x6d\x4d\x6d\x4e\x6d\x4f\x6d\x50\x6d\x51\x6d\x52\x6d\x53\x6d\x54\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x59\x6d\x5a\x6d\x5b\x6d\x5c\x6d\x5d\x6d\x5e\x6d\x5f\x6d\x60\x6d\x61\x6d\x62\x6d\x63\x6d\x64\x6d\x65\x6d\x66\x6d\x67\x6d\x68\x6d\x69\x6d\x6a\x6d\x6b\x6d\x6c\x6d\x6d\x6d\x6e\x6d\x6f\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x74\x6d\x75\x6d\x76\x6d\x77\x6d\x78\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7c\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x82\x6d\x83\x6d\x84\x6d\x85\x6d\x86\x6d\x87\x6d\x88\x6d\x89\x6d\x8a\x6d\x8b\x6d\x8c\x6d\x8d\x6d\x8e\x6d\x8f\x6d\x90\x6d\x91\x6d\x92\x6d\x93\x6d\x94\x6d\x95\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9b\x6d\x9c\x6d\x9d\x6d\x9e\x6d\x9f\x6d\xa0\x6d\xa1\x6d\xa2\x6d\xa3\x6d\xa4\x6d\xa5\x6d\xa6\x6d\xa7\x6d\xa8\x6d\xa9\x6d\xaa\x6d\xab\x6d\xac\x6d\xad\x6d\xae\x6d\xaf\x6d\xb0\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb4\x6d\xb5\x6d\xb6\x6d\xb7\x6d\xb8\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xbf\x6d\xc0", /* 0f80 */ "\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc4\x6d\xc5\x6d\xc6\x6d\xc7\x6d\xc8\x6d\xc9\x6d\xca\x6d\xcb\x6d\xcc\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd1\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd6\x6d\xd7\x6d\xd8\x6d\xd9\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdd\x6d\xde\x6d\xdf\x6d\xe0\x6d\xe1\x6d\xe2\x6d\xe3\x6d\xe4\x6d\xe5\x6d\xe6\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xeb\x6d\xec\x6d\xed\x6d\xee\x6d\xef\x6d\xf0\x6d\xf1\x6d\xf2\x6d\xf3\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf7\x6d\xf8\x6d\xf9\x6d\xfa\x6d\xfb\x6d\xfc\x6d\xfd\x6d\xfe\x6e\x41\x6e\x42\x6e\x43\x6e\x44\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4d\x6e\x4e\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x53\x6e\x54\x6e\x55\x6e\x56\x6e\x57\x6e\x58\x6e\x59\x6e\x5a\x6e\x5b\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x5f\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6b\x6e\x6c\x6e\x6d\x6e\x6e\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x7e\x6e\x7f\x6e\x80\x6e\x81\x6e\x82", /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ "\x6e\x83\x6e\x84\x6e\x85\x6e\x86\x6e\x87\x6e\x88\x6e\x89\x6e\x8a\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x8f\x6e\x90\x6e\x91\x6e\x92\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x98\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9c\x6e\x9d\x6e\x9e\x6e\x9f\x6e\xa0\x6e\xa1\x6e\xa2\x6e\xa3\x6e\xa4\x6e\xa5\x6e\xa6\x6e\xa7\x6e\xa8\x6e\xa9\x6e\xaa\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xaf\x6e\xb0\x6e\xb1\x6e\xb2\x6e\xb3\x6e\xb4\x6e\xb5\x6e\xb6\x6e\xb7\x6e\xb8\x6e\xb9\x6e\xba\x6e\xbb\x6e\xbc\x6e\xbd\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc1\x6e\xc2\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc7\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcb\x6e\xcc\x6e\xcd\x6e\xce\x6e\xcf\x6e\xd0\x6e\xd1\x6e\xd2\x6e\xd3\x6e\xd4\x6e\xd5\x6e\xd6\x6e\xd7\x6e\xd8\x6e\xd9\x6e\xda\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xde\x6e\xdf\x6e\xe0\x6e\xe1\x6e\xe2\x6e\xe3\x6e\xe4\x6e\xe5\x6e\xe6\x6e\xe7\x6e\xe8\x6e\xe9\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf4\x6e\xf5\x6e\xf6\x6e\xf7\x6e\xf8\x6e\xf9\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6f\x41\x6f\x42\x6f\x43\x6f\x44", /* 1880 */ "\x6f\x45\x6f\x46\x6f\x47\x6f\x48\x6f\x49\x6f\x4a\x6f\x4b\x6f\x4c\x6f\x4d\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x58\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5c\x6f\x5d\x6f\x5e\x6f\x5f\x6f\x60\x6f\x61\x6f\x62\x6f\x63\x6f\x64\x6f\x65\x6f\x66\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6d\x6f\x6e\x6f\x6f\x6f\x70\x6f\x71\x6f\x72\x6f\x73\x6f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\xcd\x44\xcd\x45\x44\x4a\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x8b\x00\x00\x44\xee\x44\xef\x00\x00\xcd\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\xcd\x47\x00\x00\x00\x00\x00\x00\xcd\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\xcd\x49\xcd\x4a\xcd\x4b\xcd\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x66\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\xcd\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6b\x00\x00\x00\x00\x45\x77\x44\x4d\xcd\x4e\x45\x6e\x00\x00\x00\x00\xcd\x4f\x00\x00\x45\x6d\x00\x00\x45\x63\x45\x64\x45\x68\x45\x67\x45\x71\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x45\x62\x45\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x75\x00\x00\x00\x00\x00\x00\x45\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x45\x73\x00\x00\x00\x00\x44\x67\x44\x77\xcd\x51\xcd\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x90\x00\x00\x00\x00\x00\x00\x45\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0", /* 2480 */ "\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2500 */ "\x46\xa4\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x54\xcd\x55\xcd\x56\xcd\x57\xcd\x58\xcd\x59\xcd\x5a\xcd\x5b\xcd\x5c\xcd\x5d\xcd\x5e\xcd\x5f\xcd\x60\xcd\x61\xcd\x62\xcd\x63\xcd\x64\xcd\x65\xcd\x66\xcd\x67\xcd\x68\xcd\x69\xcd\x6a\xcd\x6b\xcd\x6c\xcd\x6d\xcd\x6e\xcd\x6f\xcd\x70\xcd\x71\xcd\x72\xcd\x73\xcd\x74\xcd\x75\xcd\x76\xcd\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\xcd\x78\xcd\x79\xcd\x7a\xcd\x7b\xcd\x7c\xcd\x7d\xcd\x7e\xcd\x7f\xcd\x81\xcd\x82\xcd\x83\xcd\x84\xcd\x85\xcd\x86\xcd\x87\x00\x00\x00\x00\x00\x00\xcd\x88\xcd\x89\xcd\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x8b\xcd\x8c\xcd\x8d\xcd\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\xcd\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ "\x00\x00\xce\x56\x00\x00\x00\x00\xce\x5a\x00\x00\x00\x00\x00\x00\xce\x5d\x00\x00\x00\x00\xce\x5e\xce\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x71\x00\x00\x00\x00\xce\x74\x00\x00\x00\x00\x00\x00\xce\x77\x00\x00\x00\x00\x00\x00\x00\x00\xce\x79\x00\x00\x00\x00\xce\x7a\xce\x7b\x00\x00\x00\x00\x00\x00\xce\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2f00 */ NULL, /* 2f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xca\xcd\xcb\xcd\xcc\xcd\xcd\xcd\xce\xcd\xcf\xcd\xd0\xcd\xd1\xcd\xd2\xcd\xd3\xcd\xd4\xcd\xd5\x00\x00\x00\x00\x00\x00\x00\x00", /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x45\x5b\x45\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x91\xcd\x92\x00\x00\x00\x00\xcd\x93\xcd\x94\xcd\x95\xcd\x96\xcd\x97\xcd\x98\xcd\x99\xcd\x9a\xcd\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xc9\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3300 */ NULL, /* 3380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9d\xcd\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9f\xcd\xa0\xcd\xa1\x00\x00\x00\x00\xcd\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa4\x00\x00\x00\x00\xcd\xa5\xcd\xa6\x00\x00\x00\x00\xcd\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3400 */ "\xcf\x41\xcf\x42\xcf\x43\xcf\x44\xcf\x45\xcf\x46\xcf\x47\xcf\x48\xcf\x49\xcf\x4a\xcf\x4b\xcf\x4c\xcf\x4d\xcf\x4e\xcf\x4f\xcf\x50\xcf\x51\xcf\x52\xcf\x53\xcf\x54\xcf\x55\xcf\x56\xcf\x57\xcf\x58\xcf\x59\xcf\x5a\xcf\x5b\xcf\x5c\xcf\x5d\xcf\x5e\xcf\x5f\xcf\x60\xcf\x61\xcf\x62\xcf\x63\xcf\x64\xcf\x65\xcf\x66\xcf\x67\xcf\x68\xcf\x69\xcf\x6a\xcf\x6b\xcf\x6c\xcf\x6d\xcf\x6e\xcf\x6f\xcf\x70\xcf\x71\xcf\x72\xcf\x73\xcf\x74\xcf\x75\xcf\x76\xcf\x77\xcf\x78\xcf\x79\xcf\x7a\xcf\x7b\xcf\x7c\xcf\x7d\xcf\x7e\xcf\x7f\xcf\x80\xcf\x81\xcf\x82\xcf\x83\xcf\x84\xcf\x85\xcf\x86\xcf\x87\xce\x5c\xcf\x88\xcf\x89\xcf\x8a\xcf\x8b\xcf\x8c\xcf\x8d\xcf\x8e\xcf\x8f\xcf\x90\xcf\x91\xcf\x92\xcf\x93\xcf\x94\xcf\x95\xcf\x96\xcf\x97\xcf\x98\xcf\x99\xcf\x9a\xcf\x9b\xcf\x9c\xcf\x9d\xcf\x9e\xcf\x9f\xcf\xa0\xcf\xa1\xcf\xa2\xcf\xa3\xcf\xa4\xcf\xa5\xcf\xa6\xcf\xa7\xcf\xa8\xcf\xa9\xcf\xaa\xcf\xab\xcf\xac\xcf\xad\xcf\xae\xcf\xaf\xcf\xb0\xcf\xb1\xcf\xb2\xce\x5b\xcf\xb3\xcf\xb4\xcf\xb5\xcf\xb6\xcf\xb7\xcf\xb8\xcf\xb9\xcf\xba\xcf\xbb\xcf\xbc\xcf\xbd\xcf\xbe", /* 3480 */ "\xcf\xbf\xcf\xc0\xcf\xc1\xcf\xc2\xcf\xc3\xcf\xc4\xcf\xc5\xcf\xc6\xcf\xc7\xcf\xc8\xcf\xc9\xcf\xca\xcf\xcb\xcf\xcc\xcf\xcd\xcf\xce\xcf\xcf\xcf\xd0\xcf\xd1\xcf\xd2\xcf\xd3\xcf\xd4\xcf\xd5\xcf\xd6\xcf\xd7\xcf\xd8\xcf\xd9\xcf\xda\xcf\xdb\xcf\xdc\xcf\xdd\xcf\xde\xcf\xdf\xcf\xe0\xcf\xe1\xcf\xe2\xcf\xe3\xcf\xe4\xcf\xe5\xcf\xe6\xcf\xe7\xcf\xe8\xcf\xe9\xcf\xea\xcf\xeb\xcf\xec\xcf\xed\xcf\xee\xcf\xef\xcf\xf0\xcf\xf1\xcf\xf2\xcf\xf3\xcf\xf4\xcf\xf5\xcf\xf6\xcf\xf7\xcf\xf8\xcf\xf9\xcf\xfa\xcf\xfb\xcf\xfc\xcf\xfd\xcf\xfe\xd0\x41\xd0\x42\xd0\x43\xd0\x44\xd0\x45\xd0\x46\xd0\x47\xd0\x48\xd0\x49\xd0\x4a\xd0\x4b\xd0\x4c\xd0\x4d\xd0\x4e\xd0\x4f\xd0\x50\xd0\x51\xd0\x52\xd0\x53\xd0\x54\xd0\x55\xd0\x56\xd0\x57\xd0\x58\xd0\x59\xd0\x5a\xd0\x5b\xd0\x5c\xd0\x5d\xd0\x5e\xd0\x5f\xd0\x60\xd0\x61\xd0\x62\xd0\x63\xd0\x64\xd0\x65\xd0\x66\xd0\x67\xd0\x68\xd0\x69\xd0\x6a\xd0\x6b\xd0\x6c\xd0\x6d\xd0\x6e\xd0\x6f\xd0\x70\xd0\x71\xd0\x72\xd0\x73\xd0\x74\xd0\x75\xd0\x76\xd0\x77\xd0\x78\xd0\x79\xd0\x7a\xd0\x7b\xd0\x7c\xd0\x7d\xd0\x7e\xd0\x7f\xd0\x80", /* 3500 */ "\xd0\x81\xd0\x82\xd0\x83\xd0\x84\xd0\x85\xd0\x86\xd0\x87\xd0\x88\xd0\x89\xd0\x8a\xd0\x8b\xd0\x8c\xd0\x8d\xd0\x8e\xd0\x8f\xd0\x90\xd0\x91\xd0\x92\xd0\x93\xd0\x94\xd0\x95\xd0\x96\xd0\x97\xd0\x98\xd0\x99\xd0\x9a\xd0\x9b\xd0\x9c\xd0\x9d\xd0\x9e\xd0\x9f\xd0\xa0\xd0\xa1\xd0\xa2\xd0\xa3\xd0\xa4\xd0\xa5\xd0\xa6\xd0\xa7\xd0\xa8\xd0\xa9\xd0\xaa\xd0\xab\xd0\xac\xd0\xad\xd0\xae\xd0\xaf\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5\xd0\xb6\xd0\xb7\xd0\xb8\xd0\xb9\xd0\xba\xd0\xbb\xd0\xbc\xd0\xbd\xd0\xbe\xd0\xbf\xd0\xc0\xd0\xc1\xd0\xc2\xd0\xc3\xd0\xc4\xd0\xc5\xd0\xc6\xd0\xc7\xd0\xc8\xd0\xc9\xd0\xca\xd0\xcb\xd0\xcc\xd0\xcd\xd0\xce\xd0\xcf\xd0\xd0\xd0\xd1\xd0\xd2\xd0\xd3\xd0\xd4\xd0\xd5\xd0\xd6\xd0\xd7\xd0\xd8\xd0\xd9\xd0\xda\xd0\xdb\xd0\xdc\xd0\xdd\xd0\xde\xd0\xdf\xd0\xe0\xd0\xe1\xd0\xe2\xd0\xe3\xd0\xe4\xd0\xe5\xd0\xe6\xd0\xe7\xd0\xe8\xd0\xe9\xd0\xea\xd0\xeb\xd0\xec\xd0\xed\xd0\xee\xd0\xef\xd0\xf0\xd0\xf1\xd0\xf2\xd0\xf3\xd0\xf4\xd0\xf5\xd0\xf6\xd0\xf7\xd0\xf8\xd0\xf9\xd0\xfa\xd0\xfb\xd0\xfc\xd0\xfd\xd0\xfe\xd1\x41\xd1\x42", /* 3580 */ "\xd1\x43\xd1\x44\xd1\x45\xd1\x46\xd1\x47\xd1\x48\xd1\x49\xd1\x4a\xd1\x4b\xd1\x4c\xd1\x4d\xd1\x4e\xd1\x4f\xd1\x50\xd1\x51\xd1\x52\xd1\x53\xd1\x54\xd1\x55\xd1\x56\xd1\x57\xd1\x58\xd1\x59\xd1\x5a\xd1\x5b\xd1\x5c\xd1\x5d\xd1\x5e\xd1\x5f\xd1\x60\xce\x60\xd1\x61\xd1\x62\xd1\x63\xd1\x64\xd1\x65\xd1\x66\xd1\x67\xd1\x68\xd1\x69\xd1\x6a\xd1\x6b\xd1\x6c\xd1\x6d\xd1\x6e\xd1\x6f\xd1\x70\xd1\x71\xd1\x72\xd1\x73\xd1\x74\xd1\x75\xd1\x76\xd1\x77\xd1\x78\xd1\x79\xd1\x7a\xd1\x7b\xd1\x7c\xd1\x7d\xd1\x7e\xd1\x7f\xd1\x80\xd1\x81\xd1\x82\xd1\x83\xd1\x84\xd1\x85\xd1\x86\xd1\x87\xd1\x88\xd1\x89\xd1\x8a\xd1\x8b\xd1\x8c\xd1\x8d\xd1\x8e\xd1\x8f\xd1\x90\xd1\x91\xd1\x92\xd1\x93\xd1\x94\xd1\x95\xd1\x96\xd1\x97\xd1\x98\xd1\x99\xd1\x9a\xd1\x9b\xd1\x9c\xd1\x9d\xd1\x9e\xd1\x9f\xd1\xa0\xd1\xa1\xd1\xa2\xd1\xa3\xd1\xa4\xd1\xa5\xd1\xa6\xd1\xa7\xd1\xa8\xd1\xa9\xd1\xaa\xd1\xab\xd1\xac\xd1\xad\xd1\xae\xd1\xaf\xd1\xb0\xd1\xb1\xd1\xb2\xd1\xb3\xd1\xb4\xd1\xb5\xd1\xb6\xd1\xb7\xd1\xb8\xd1\xb9\xd1\xba\xd1\xbb\xd1\xbc\xd1\xbd\xd1\xbe\xd1\xbf\xd1\xc0\xd1\xc1", /* 3600 */ "\xd1\xc2\xd1\xc3\xd1\xc4\xd1\xc5\xd1\xc6\xd1\xc7\xd1\xc8\xd1\xc9\xd1\xca\xd1\xcb\xd1\xcc\xd1\xcd\xd1\xce\xd1\xcf\xce\x62\xd1\xd0\xd1\xd1\xd1\xd2\xd1\xd3\xd1\xd4\xd1\xd5\xd1\xd6\xd1\xd7\xd1\xd8\xd1\xd9\xd1\xda\xce\x61\xd1\xdb\xd1\xdc\xd1\xdd\xd1\xde\xd1\xdf\xd1\xe0\xd1\xe1\xd1\xe2\xd1\xe3\xd1\xe4\xd1\xe5\xd1\xe6\xd1\xe7\xd1\xe8\xd1\xe9\xd1\xea\xd1\xeb\xd1\xec\xd1\xed\xd1\xee\xd1\xef\xd1\xf0\xd1\xf1\xd1\xf2\xd1\xf3\xd1\xf4\xd1\xf5\xd1\xf6\xd1\xf7\xd1\xf8\xd1\xf9\xd1\xfa\xd1\xfb\xd1\xfc\xd1\xfd\xd1\xfe\xd2\x41\xd2\x42\xd2\x43\xd2\x44\xd2\x45\xd2\x46\xd2\x47\xd2\x48\xd2\x49\xd2\x4a\xd2\x4b\xd2\x4c\xd2\x4d\xd2\x4e\xd2\x4f\xd2\x50\xd2\x51\xd2\x52\xd2\x53\xd2\x54\xd2\x55\xd2\x56\xd2\x57\xd2\x58\xd2\x59\xd2\x5a\xd2\x5b\xd2\x5c\xd2\x5d\xd2\x5e\xd2\x5f\xd2\x60\xd2\x61\xd2\x62\xd2\x63\xd2\x64\xd2\x65\xd2\x66\xd2\x67\xd2\x68\xd2\x69\xd2\x6a\xd2\x6b\xd2\x6c\xd2\x6d\xd2\x6e\xd2\x6f\xd2\x70\xd2\x71\xd2\x72\xd2\x73\xd2\x74\xd2\x75\xd2\x76\xd2\x77\xd2\x78\xd2\x79\xd2\x7a\xd2\x7b\xd2\x7c\xd2\x7d\xd2\x7e\xd2\x7f\xd2\x80\xd2\x81", /* 3680 */ "\xd2\x82\xd2\x83\xd2\x84\xd2\x85\xd2\x86\xd2\x87\xd2\x88\xd2\x89\xd2\x8a\xd2\x8b\xd2\x8c\xd2\x8d\xd2\x8e\xd2\x8f\xd2\x90\xd2\x91\xd2\x92\xd2\x93\xd2\x94\xd2\x95\xd2\x96\xd2\x97\xd2\x98\xd2\x99\xd2\x9a\xd2\x9b\xd2\x9c\xd2\x9d\xd2\x9e\xd2\x9f\xd2\xa0\xd2\xa1\xd2\xa2\xd2\xa3\xd2\xa4\xd2\xa5\xd2\xa6\xd2\xa7\xd2\xa8\xd2\xa9\xd2\xaa\xd2\xab\xd2\xac\xd2\xad\xd2\xae\xd2\xaf\xd2\xb0\xd2\xb1\xd2\xb2\xd2\xb3\xd2\xb4\xd2\xb5\xd2\xb6\xd2\xb7\xd2\xb8\xd2\xb9\xd2\xba\xd2\xbb\xd2\xbc\xd2\xbd\xd2\xbe\xd2\xbf\xd2\xc0\xd2\xc1\xd2\xc2\xd2\xc3\xd2\xc4\xd2\xc5\xd2\xc6\xd2\xc7\xd2\xc8\xd2\xc9\xd2\xca\xd2\xcb\xd2\xcc\xd2\xcd\xd2\xce\xd2\xcf\xd2\xd0\xd2\xd1\xd2\xd2\xd2\xd3\xd2\xd4\xd2\xd5\xd2\xd6\xd2\xd7\xd2\xd8\xd2\xd9\xd2\xda\xd2\xdb\xd2\xdc\xd2\xdd\xd2\xde\xd2\xdf\xd2\xe0\xd2\xe1\xd2\xe2\xd2\xe3\xd2\xe4\xd2\xe5\xd2\xe6\xd2\xe7\xd2\xe8\xd2\xe9\xd2\xea\xd2\xeb\xd2\xec\xd2\xed\xd2\xee\xd2\xef\xd2\xf0\xd2\xf1\xd2\xf2\xd2\xf3\xd2\xf4\xd2\xf5\xd2\xf6\xd2\xf7\xd2\xf8\xd2\xf9\xd2\xfa\xd2\xfb\xd2\xfc\xd2\xfd\xd2\xfe\xd3\x41\xd3\x42\xd3\x43", /* 3700 */ "\xd3\x44\xd3\x45\xd3\x46\xd3\x47\xd3\x48\xd3\x49\xd3\x4a\xd3\x4b\xd3\x4c\xd3\x4d\xd3\x4e\xd3\x4f\xd3\x50\xd3\x51\xd3\x52\xd3\x53\xd3\x54\xd3\x55\xd3\x56\xd3\x57\xd3\x58\xd3\x59\xd3\x5a\xd3\x5b\xd3\x5c\xd3\x5d\xd3\x5e\xd3\x5f\xd3\x60\xd3\x61\xd3\x62\xd3\x63\xd3\x64\xd3\x65\xd3\x66\xd3\x67\xd3\x68\xd3\x69\xd3\x6a\xd3\x6b\xd3\x6c\xd3\x6d\xd3\x6e\xd3\x6f\xd3\x70\xd3\x71\xd3\x72\xd3\x73\xd3\x74\xd3\x75\xd3\x76\xd3\x77\xd3\x78\xd3\x79\xd3\x7a\xd3\x7b\xd3\x7c\xd3\x7d\xd3\x7e\xd3\x7f\xd3\x80\xd3\x81\xd3\x82\xd3\x83\xd3\x84\xd3\x85\xd3\x86\xd3\x87\xd3\x88\xd3\x89\xd3\x8a\xd3\x8b\xd3\x8c\xd3\x8d\xd3\x8e\xd3\x8f\xd3\x90\xd3\x91\xd3\x92\xd3\x93\xd3\x94\xd3\x95\xd3\x96\xd3\x97\xd3\x98\xd3\x99\xd3\x9a\xd3\x9b\xd3\x9c\xd3\x9d\xd3\x9e\xd3\x9f\xd3\xa0\xd3\xa1\xd3\xa2\xd3\xa3\xd3\xa4\xd3\xa5\xd3\xa6\xd3\xa7\xd3\xa8\xd3\xa9\xd3\xaa\xd3\xab\xd3\xac\xd3\xad\xd3\xae\xd3\xaf\xd3\xb0\xd3\xb1\xd3\xb2\xd3\xb3\xd3\xb4\xd3\xb5\xd3\xb6\xd3\xb7\xd3\xb8\xd3\xb9\xd3\xba\xd3\xbb\xd3\xbc\xd3\xbd\xd3\xbe\xd3\xbf\xd3\xc0\xd3\xc1\xd3\xc2\xd3\xc3", /* 3780 */ "\xd3\xc4\xd3\xc5\xd3\xc6\xd3\xc7\xd3\xc8\xd3\xc9\xd3\xca\xd3\xcb\xd3\xcc\xd3\xcd\xd3\xce\xd3\xcf\xd3\xd0\xd3\xd1\xd3\xd2\xd3\xd3\xd3\xd4\xd3\xd5\xd3\xd6\xd3\xd7\xd3\xd8\xd3\xd9\xd3\xda\xd3\xdb\xd3\xdc\xd3\xdd\xd3\xde\xd3\xdf\xd3\xe0\xd3\xe1\xd3\xe2\xd3\xe3\xd3\xe4\xd3\xe5\xd3\xe6\xd3\xe7\xd3\xe8\xd3\xe9\xd3\xea\xd3\xeb\xd3\xec\xd3\xed\xd3\xee\xd3\xef\xd3\xf0\xd3\xf1\xd3\xf2\xd3\xf3\xd3\xf4\xd3\xf5\xd3\xf6\xd3\xf7\xd3\xf8\xd3\xf9\xd3\xfa\xd3\xfb\xd3\xfc\xd3\xfd\xd3\xfe\xd4\x41\xd4\x42\xd4\x43\xd4\x44\xd4\x45\xd4\x46\xd4\x47\xd4\x48\xd4\x49\xd4\x4a\xd4\x4b\xd4\x4c\xd4\x4d\xd4\x4e\xd4\x4f\xd4\x50\xd4\x51\xd4\x52\xd4\x53\xd4\x54\xd4\x55\xd4\x56\xd4\x57\xd4\x58\xd4\x59\xd4\x5a\xd4\x5b\xd4\x5c\xd4\x5d\xd4\x5e\xd4\x5f\xd4\x60\xd4\x61\xd4\x62\xd4\x63\xd4\x64\xd4\x65\xd4\x66\xd4\x67\xd4\x68\xd4\x69\xd4\x6a\xd4\x6b\xd4\x6c\xd4\x6d\xd4\x6e\xd4\x6f\xd4\x70\xd4\x71\xd4\x72\xd4\x73\xd4\x74\xd4\x75\xd4\x76\xd4\x77\xd4\x78\xd4\x79\xd4\x7a\xd4\x7b\xd4\x7c\xd4\x7d\xd4\x7e\xd4\x7f\xd4\x80\xd4\x81\xd4\x82\xd4\x83\xd4\x84\xd4\x85", /* 3800 */ "\xd4\x86\xd4\x87\xd4\x88\xd4\x89\xd4\x8a\xd4\x8b\xd4\x8c\xd4\x8d\xd4\x8e\xd4\x8f\xd4\x90\xd4\x91\xd4\x92\xd4\x93\xd4\x94\xd4\x95\xd4\x96\xd4\x97\xd4\x98\xd4\x99\xd4\x9a\xd4\x9b\xd4\x9c\xd4\x9d\xd4\x9e\xd4\x9f\xd4\xa0\xd4\xa1\xd4\xa2\xd4\xa3\xd4\xa4\xd4\xa5\xd4\xa6\xd4\xa7\xd4\xa8\xd4\xa9\xd4\xaa\xd4\xab\xd4\xac\xd4\xad\xd4\xae\xd4\xaf\xd4\xb0\xd4\xb1\xd4\xb2\xd4\xb3\xd4\xb4\xd4\xb5\xd4\xb6\xd4\xb7\xd4\xb8\xd4\xb9\xd4\xba\xd4\xbb\xd4\xbc\xd4\xbd\xd4\xbe\xd4\xbf\xd4\xc0\xd4\xc1\xd4\xc2\xd4\xc3\xd4\xc4\xd4\xc5\xd4\xc6\xd4\xc7\xd4\xc8\xd4\xc9\xd4\xca\xd4\xcb\xd4\xcc\xd4\xcd\xd4\xce\xd4\xcf\xd4\xd0\xd4\xd1\xd4\xd2\xd4\xd3\xd4\xd4\xd4\xd5\xd4\xd6\xd4\xd7\xd4\xd8\xd4\xd9\xd4\xda\xd4\xdb\xd4\xdc\xd4\xdd\xd4\xde\xd4\xdf\xd4\xe0\xd4\xe1\xd4\xe2\xd4\xe3\xd4\xe4\xd4\xe5\xd4\xe6\xd4\xe7\xd4\xe8\xd4\xe9\xd4\xea\xd4\xeb\xd4\xec\xd4\xed\xd4\xee\xd4\xef\xd4\xf0\xd4\xf1\xd4\xf2\xd4\xf3\xd4\xf4\xd4\xf5\xd4\xf6\xd4\xf7\xd4\xf8\xd4\xf9\xd4\xfa\xd4\xfb\xd4\xfc\xd4\xfd\xd4\xfe\xd5\x41\xd5\x42\xd5\x43\xd5\x44\xd5\x45\xd5\x46\xd5\x47", /* 3880 */ "\xd5\x48\xd5\x49\xd5\x4a\xd5\x4b\xd5\x4c\xd5\x4d\xd5\x4e\xd5\x4f\xd5\x50\xd5\x51\xd5\x52\xd5\x53\xd5\x54\xd5\x55\xd5\x56\xd5\x57\xd5\x58\xd5\x59\xd5\x5a\xd5\x5b\xd5\x5c\xd5\x5d\xd5\x5e\xd5\x5f\xd5\x60\xd5\x61\xd5\x62\xd5\x63\xd5\x64\xd5\x65\xd5\x66\xd5\x67\xd5\x68\xd5\x69\xd5\x6a\xd5\x6b\xd5\x6c\xd5\x6d\xd5\x6e\xd5\x6f\xd5\x70\xd5\x71\xd5\x72\xd5\x73\xd5\x74\xd5\x75\xd5\x76\xd5\x77\xd5\x78\xd5\x79\xd5\x7a\xd5\x7b\xd5\x7c\xd5\x7d\xd5\x7e\xd5\x7f\xd5\x80\xd5\x81\xd5\x82\xd5\x83\xd5\x84\xd5\x85\xd5\x86\xd5\x87\xd5\x88\xd5\x89\xd5\x8a\xd5\x8b\xd5\x8c\xd5\x8d\xd5\x8e\xd5\x8f\xd5\x90\xd5\x91\xd5\x92\xd5\x93\xd5\x94\xd5\x95\xd5\x96\xd5\x97\xd5\x98\xd5\x99\xd5\x9a\xd5\x9b\xd5\x9c\xd5\x9d\xd5\x9e\xd5\x9f\xd5\xa0\xd5\xa1\xd5\xa2\xd5\xa3\xd5\xa4\xd5\xa5\xd5\xa6\xd5\xa7\xd5\xa8\xd5\xa9\xd5\xaa\xd5\xab\xd5\xac\xd5\xad\xd5\xae\xd5\xaf\xd5\xb0\xd5\xb1\xd5\xb2\xd5\xb3\xd5\xb4\xd5\xb5\xd5\xb6\xd5\xb7\xd5\xb8\xd5\xb9\xd5\xba\xd5\xbb\xd5\xbc\xd5\xbd\xd5\xbe\xd5\xbf\xd5\xc0\xd5\xc1\xd5\xc2\xd5\xc3\xd5\xc4\xd5\xc5\xd5\xc6\xd5\xc7", /* 3900 */ "\xd5\xc8\xd5\xc9\xd5\xca\xd5\xcb\xd5\xcc\xd5\xcd\xd5\xce\xd5\xcf\xd5\xd0\xd5\xd1\xd5\xd2\xd5\xd3\xd5\xd4\xd5\xd5\xd5\xd6\xd5\xd7\xd5\xd8\xd5\xd9\xd5\xda\xd5\xdb\xd5\xdc\xd5\xdd\xd5\xde\xd5\xdf\xce\x66\xd5\xe0\xd5\xe1\xd5\xe2\xd5\xe3\xd5\xe4\xd5\xe5\xd5\xe6\xd5\xe7\xd5\xe8\xd5\xe9\xd5\xea\xd5\xeb\xd5\xec\xd5\xed\xd5\xee\xd5\xef\xd5\xf0\xd5\xf1\xd5\xf2\xd5\xf3\xd5\xf4\xd5\xf5\xd5\xf6\xd5\xf7\xd5\xf8\xd5\xf9\xd5\xfa\xd5\xfb\xd5\xfc\xd5\xfd\xd5\xfe\xd6\x41\xd6\x42\xd6\x43\xd6\x44\xd6\x45\xd6\x46\xd6\x47\xd6\x48\xd6\x49\xd6\x4a\xd6\x4b\xd6\x4c\xd6\x4d\xd6\x4e\xd6\x4f\xd6\x50\xd6\x51\xd6\x52\xd6\x53\xd6\x54\xd6\x55\xd6\x56\xd6\x57\xd6\x58\xd6\x59\xd6\x5a\xd6\x5b\xd6\x5c\xd6\x5d\xd6\x5e\xd6\x5f\xd6\x60\xd6\x61\xd6\x62\xd6\x63\xd6\x64\xd6\x65\xd6\x66\xd6\x67\xd6\x68\xd6\x69\xd6\x6a\xd6\x6b\xd6\x6c\xd6\x6d\xd6\x6e\xd6\x6f\xd6\x70\xd6\x71\xd6\x72\xd6\x73\xd6\x74\xd6\x75\xd6\x76\xce\x65\xd6\x77\xd6\x78\xd6\x79\xd6\x7a\xd6\x7b\xd6\x7c\xd6\x7d\xd6\x7e\xd6\x7f\xd6\x80\xd6\x81\xd6\x82\xd6\x83\xd6\x84\xd6\x85\xd6\x86\xd6\x87", /* 3980 */ "\xd6\x88\xd6\x89\xd6\x8a\xd6\x8b\xd6\x8c\xd6\x8d\xd6\x8e\xd6\x8f\xd6\x90\xd6\x91\xd6\x92\xd6\x93\xd6\x94\xd6\x95\xd6\x96\xd6\x97\xd6\x98\xd6\x99\xd6\x9a\xd6\x9b\xd6\x9c\xd6\x9d\xd6\x9e\xd6\x9f\xd6\xa0\xd6\xa1\xd6\xa2\xd6\xa3\xd6\xa4\xd6\xa5\xd6\xa6\xd6\xa7\xd6\xa8\xd6\xa9\xd6\xaa\xd6\xab\xd6\xac\xd6\xad\xd6\xae\xd6\xaf\xd6\xb0\xd6\xb1\xd6\xb2\xd6\xb3\xd6\xb4\xd6\xb5\xd6\xb6\xd6\xb7\xd6\xb8\xd6\xb9\xd6\xba\xd6\xbb\xd6\xbc\xd6\xbd\xd6\xbe\xd6\xbf\xd6\xc0\xd6\xc1\xd6\xc2\xd6\xc3\xd6\xc4\xd6\xc5\xd6\xc6\xd6\xc7\xd6\xc8\xd6\xc9\xd6\xca\xd6\xcb\xd6\xcc\xd6\xcd\xd6\xce\xd6\xcf\xd6\xd0\xd6\xd1\xd6\xd2\xd6\xd3\xd6\xd4\xd6\xd5\xd6\xd6\xce\x68\xce\x6b\xd6\xd7\xd6\xd8\xd6\xd9\xd6\xda\xd6\xdb\xd6\xdc\xd6\xdd\xd6\xde\xd6\xdf\xd6\xe0\xd6\xe1\xd6\xe2\xd6\xe3\xd6\xe4\xce\x69\xd6\xe5\xd6\xe6\xd6\xe7\xd6\xe8\xd6\xe9\xd6\xea\xd6\xeb\xd6\xec\xd6\xed\xd6\xee\xd6\xef\xd6\xf0\xd6\xf1\xd6\xf2\xd6\xf3\xd6\xf4\xd6\xf5\xd6\xf6\xd6\xf7\xd6\xf8\xd6\xf9\xd6\xfa\xd6\xfb\xd6\xfc\xd6\xfd\xd6\xfe\xd7\x41\xd7\x42\xd7\x43\xd7\x44\xd7\x45\xd7\x46", /* 3a00 */ "\xd7\x47\xd7\x48\xd7\x49\xd7\x4a\xd7\x4b\xd7\x4c\xd7\x4d\xd7\x4e\xd7\x4f\xd7\x50\xd7\x51\xd7\x52\xd7\x53\xd7\x54\xd7\x55\xd7\x56\xd7\x57\xd7\x58\xd7\x59\xd7\x5a\xd7\x5b\xd7\x5c\xd7\x5d\xd7\x5e\xd7\x5f\xd7\x60\xd7\x61\xd7\x62\xd7\x63\xd7\x64\xd7\x65\xd7\x66\xd7\x67\xd7\x68\xd7\x69\xd7\x6a\xd7\x6b\xd7\x6c\xd7\x6d\xd7\x6e\xd7\x6f\xd7\x70\xd7\x71\xd7\x72\xd7\x73\xd7\x74\xd7\x75\xd7\x76\xd7\x77\xd7\x78\xd7\x79\xd7\x7a\xd7\x7b\xd7\x7c\xd7\x7d\xd7\x7e\xd7\x7f\xd7\x80\xd7\x81\xd7\x82\xd7\x83\xd7\x84\xd7\x85\xd7\x86\xd7\x87\xd7\x88\xd7\x89\xd7\x8a\xd7\x8b\xd7\x8c\xd7\x8d\xd7\x8e\xd7\x8f\xd7\x90\xd7\x91\xd7\x92\xd7\x93\xd7\x94\xd7\x95\xd7\x96\xd7\x97\xd7\x98\xd7\x99\xd7\x9a\xd7\x9b\xd7\x9c\xd7\x9d\xd7\x9e\xd7\x9f\xd7\xa0\xd7\xa1\xd7\xa2\xd7\xa3\xd7\xa4\xd7\xa5\xd7\xa6\xd7\xa7\xd7\xa8\xd7\xa9\xd7\xaa\xd7\xab\xd7\xac\xd7\xad\xd7\xae\xd7\xaf\xd7\xb0\xd7\xb1\xd7\xb2\xd7\xb3\xd7\xb4\xd7\xb5\xd7\xb6\xd7\xb7\xd7\xb8\xd7\xb9\xce\x6a\xd7\xba\xd7\xbb\xd7\xbc\xd7\xbd\xd7\xbe\xd7\xbf\xd7\xc0\xd7\xc1\xd7\xc2\xd7\xc3\xd7\xc4\xd7\xc5", /* 3a80 */ "\xd7\xc6\xd7\xc7\xd7\xc8\xd7\xc9\xd7\xca\xd7\xcb\xd7\xcc\xd7\xcd\xd7\xce\xd7\xcf\xd7\xd0\xd7\xd1\xd7\xd2\xd7\xd3\xd7\xd4\xd7\xd5\xd7\xd6\xd7\xd7\xd7\xd8\xd7\xd9\xd7\xda\xd7\xdb\xd7\xdc\xd7\xdd\xd7\xde\xd7\xdf\xd7\xe0\xd7\xe1\xd7\xe2\xd7\xe3\xd7\xe4\xd7\xe5\xd7\xe6\xd7\xe7\xd7\xe8\xd7\xe9\xd7\xea\xd7\xeb\xd7\xec\xd7\xed\xd7\xee\xd7\xef\xd7\xf0\xd7\xf1\xd7\xf2\xd7\xf3\xd7\xf4\xd7\xf5\xd7\xf6\xd7\xf7\xd7\xf8\xd7\xf9\xd7\xfa\xd7\xfb\xd7\xfc\xd7\xfd\xd7\xfe\xd8\x41\xd8\x42\xd8\x43\xd8\x44\xd8\x45\xd8\x46\xd8\x47\xd8\x48\xd8\x49\xd8\x4a\xd8\x4b\xd8\x4c\xd8\x4d\xd8\x4e\xd8\x4f\xd8\x50\xd8\x51\xd8\x52\xd8\x53\xd8\x54\xd8\x55\xd8\x56\xd8\x57\xd8\x58\xd8\x59\xd8\x5a\xd8\x5b\xd8\x5c\xd8\x5d\xd8\x5e\xd8\x5f\xd8\x60\xd8\x61\xd8\x62\xd8\x63\xd8\x64\xd8\x65\xd8\x66\xd8\x67\xd8\x68\xd8\x69\xd8\x6a\xd8\x6b\xd8\x6c\xd8\x6d\xd8\x6e\xd8\x6f\xd8\x70\xd8\x71\xd8\x72\xd8\x73\xd8\x74\xd8\x75\xd8\x76\xd8\x77\xd8\x78\xd8\x79\xd8\x7a\xd8\x7b\xd8\x7c\xd8\x7d\xd8\x7e\xd8\x7f\xd8\x80\xd8\x81\xd8\x82\xd8\x83\xd8\x84\xd8\x85\xd8\x86\xd8\x87", /* 3b00 */ "\xd8\x88\xd8\x89\xd8\x8a\xd8\x8b\xd8\x8c\xd8\x8d\xd8\x8e\xd8\x8f\xd8\x90\xd8\x91\xd8\x92\xd8\x93\xd8\x94\xd8\x95\xd8\x96\xd8\x97\xd8\x98\xd8\x99\xd8\x9a\xd8\x9b\xd8\x9c\xd8\x9d\xd8\x9e\xd8\x9f\xd8\xa0\xd8\xa1\xd8\xa2\xd8\xa3\xd8\xa4\xd8\xa5\xd8\xa6\xd8\xa7\xd8\xa8\xd8\xa9\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae\xd8\xaf\xd8\xb0\xd8\xb1\xd8\xb2\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba\xd8\xbb\xd8\xbc\xd8\xbd\xd8\xbe\xd8\xbf\xd8\xc0\xd8\xc1\xd8\xc2\xd8\xc3\xd8\xc4\xd8\xc5\xd8\xc6\xd8\xc7\xd8\xc8\xd8\xc9\xd8\xca\xd8\xcb\xd8\xcc\xd8\xcd\xd8\xce\xd8\xcf\xd8\xd0\xd8\xd1\xd8\xd2\xd8\xd3\xd8\xd4\xd8\xd5\xce\x6e\xd8\xd6\xd8\xd7\xd8\xd8\xd8\xd9\xd8\xda\xd8\xdb\xd8\xdc\xd8\xdd\xd8\xde\xd8\xdf\xd8\xe0\xd8\xe1\xd8\xe2\xd8\xe3\xd8\xe4\xd8\xe5\xd8\xe6\xd8\xe7\xd8\xe8\xd8\xe9\xd8\xea\xd8\xeb\xd8\xec\xd8\xed\xd8\xee\xd8\xef\xd8\xf0\xd8\xf1\xd8\xf2\xd8\xf3\xd8\xf4\xd8\xf5\xd8\xf6\xd8\xf7\xd8\xf8\xd8\xf9\xd8\xfa\xd8\xfb\xd8\xfc\xd8\xfd\xd8\xfe\xd9\x41\xd9\x42\xd9\x43\xd9\x44\xd9\x45\xd9\x46\xd9\x47\xd9\x48", /* 3b80 */ "\xd9\x49\xd9\x4a\xd9\x4b\xd9\x4c\xd9\x4d\xd9\x4e\xd9\x4f\xd9\x50\xd9\x51\xd9\x52\xd9\x53\xd9\x54\xd9\x55\xd9\x56\xd9\x57\xd9\x58\xd9\x59\xd9\x5a\xd9\x5b\xd9\x5c\xd9\x5d\xd9\x5e\xd9\x5f\xd9\x60\xd9\x61\xd9\x62\xd9\x63\xd9\x64\xd9\x65\xd9\x66\xd9\x67\xd9\x68\xd9\x69\xd9\x6a\xd9\x6b\xd9\x6c\xd9\x6d\xd9\x6e\xd9\x6f\xd9\x70\xd9\x71\xd9\x72\xd9\x73\xd9\x74\xd9\x75\xd9\x76\xd9\x77\xd9\x78\xd9\x79\xd9\x7a\xd9\x7b\xd9\x7c\xd9\x7d\xd9\x7e\xd9\x7f\xd9\x80\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x88\xd9\x89\xd9\x8a\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f\xd9\x90\xd9\x91\xd9\x92\xd9\x93\xd9\x94\xd9\x95\xd9\x96\xd9\x97\xd9\x98\xd9\x99\xd9\x9a\xd9\x9b\xd9\x9c\xd9\x9d\xd9\x9e\xd9\x9f\xd9\xa0\xd9\xa1\xd9\xa2\xd9\xa3\xd9\xa4\xd9\xa5\xd9\xa6\xd9\xa7\xd9\xa8\xd9\xa9\xd9\xaa\xd9\xab\xd9\xac\xd9\xad\xd9\xae\xd9\xaf\xd9\xb0\xd9\xb1\xd9\xb2\xd9\xb3\xd9\xb4\xd9\xb5\xd9\xb6\xd9\xb7\xd9\xb8\xd9\xb9\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf\xd9\xc0\xd9\xc1\xd9\xc2\xd9\xc3\xd9\xc4\xd9\xc5\xd9\xc6\xd9\xc7\xd9\xc8", /* 3c00 */ "\xd9\xc9\xd9\xca\xd9\xcb\xd9\xcc\xd9\xcd\xd9\xce\xd9\xcf\xd9\xd0\xd9\xd1\xd9\xd2\xd9\xd3\xd9\xd4\xd9\xd5\xd9\xd6\xd9\xd7\xd9\xd8\xd9\xd9\xd9\xda\xd9\xdb\xd9\xdc\xd9\xdd\xd9\xde\xd9\xdf\xd9\xe0\xd9\xe1\xd9\xe2\xd9\xe3\xd9\xe4\xd9\xe5\xd9\xe6\xd9\xe7\xd9\xe8\xd9\xe9\xd9\xea\xd9\xeb\xd9\xec\xd9\xed\xd9\xee\xd9\xef\xd9\xf0\xd9\xf1\xd9\xf2\xd9\xf3\xd9\xf4\xd9\xf5\xd9\xf6\xd9\xf7\xd9\xf8\xd9\xf9\xd9\xfa\xd9\xfb\xd9\xfc\xd9\xfd\xd9\xfe\xda\x41\xda\x42\xda\x43\xda\x44\xda\x45\xda\x46\xda\x47\xda\x48\xda\x49\xda\x4a\xda\x4b\xda\x4c\xda\x4d\xda\x4e\xda\x4f\xda\x50\xda\x51\xda\x52\xda\x53\xda\x54\xda\x55\xda\x56\xda\x57\xda\x58\xda\x59\xda\x5a\xda\x5b\xda\x5c\xda\x5d\xda\x5e\xda\x5f\xda\x60\xda\x61\xda\x62\xda\x63\xda\x64\xda\x65\xda\x66\xda\x67\xda\x68\xda\x69\xda\x6a\xda\x6b\xda\x6c\xda\x6d\xda\x6e\xda\x6f\xda\x70\xda\x71\xda\x72\xda\x73\xda\x74\xda\x75\xda\x76\xda\x77\xda\x78\xce\x6f\xda\x79\xda\x7a\xda\x7b\xda\x7c\xda\x7d\xda\x7e\xda\x7f\xda\x80\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87\xda\x88\xda\x89", /* 3c80 */ "\xda\x8a\xda\x8b\xda\x8c\xda\x8d\xda\x8e\xda\x8f\xda\x90\xda\x91\xda\x92\xda\x93\xda\x94\xda\x95\xda\x96\xda\x97\xda\x98\xda\x99\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f\xda\xa0\xda\xa1\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8\xda\xa9\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9\xda\xba\xda\xbb\xda\xbc\xda\xbd\xda\xbe\xda\xbf\xda\xc0\xda\xc1\xda\xc2\xda\xc3\xda\xc4\xda\xc5\xda\xc6\xda\xc7\xda\xc8\xda\xc9\xda\xca\xda\xcb\xda\xcc\xda\xcd\xda\xce\xda\xcf\xda\xd0\xda\xd1\xda\xd2\xda\xd3\xda\xd4\xda\xd5\xda\xd6\xda\xd7\xda\xd8\xda\xd9\xda\xda\xda\xdb\xda\xdc\xda\xdd\xda\xde\xda\xdf\xda\xe0\xda\xe1\xda\xe2\xda\xe3\xda\xe4\xda\xe5\xda\xe6\xda\xe7\xda\xe8\xda\xe9\xce\x70\xda\xea\xda\xeb\xda\xec\xda\xed\xda\xee\xda\xef\xda\xf0\xda\xf1\xda\xf2\xda\xf3\xda\xf4\xda\xf5\xda\xf6\xda\xf7\xda\xf8\xda\xf9\xda\xfa\xda\xfb\xda\xfc\xda\xfd\xda\xfe\xdb\x41\xdb\x42\xdb\x43\xdb\x44\xdb\x45\xdb\x46\xdb\x47\xdb\x48\xdb\x49\xdb\x4a", /* 3d00 */ "\xdb\x4b\xdb\x4c\xdb\x4d\xdb\x4e\xdb\x4f\xdb\x50\xdb\x51\xdb\x52\xdb\x53\xdb\x54\xdb\x55\xdb\x56\xdb\x57\xdb\x58\xdb\x59\xdb\x5a\xdb\x5b\xdb\x5c\xdb\x5d\xdb\x5e\xdb\x5f\xdb\x60\xdb\x61\xdb\x62\xdb\x63\xdb\x64\xdb\x65\xdb\x66\xdb\x67\xdb\x68\xdb\x69\xdb\x6a\xdb\x6b\xdb\x6c\xdb\x6d\xdb\x6e\xdb\x6f\xdb\x70\xdb\x71\xdb\x72\xdb\x73\xdb\x74\xdb\x75\xdb\x76\xdb\x77\xdb\x78\xdb\x79\xdb\x7a\xdb\x7b\xdb\x7c\xdb\x7d\xdb\x7e\xdb\x7f\xdb\x80\xdb\x81\xdb\x82\xdb\x83\xdb\x84\xdb\x85\xdb\x86\xdb\x87\xdb\x88\xdb\x89\xdb\x8a\xdb\x8b\xdb\x8c\xdb\x8d\xdb\x8e\xdb\x8f\xdb\x90\xdb\x91\xdb\x92\xdb\x93\xdb\x94\xdb\x95\xdb\x96\xdb\x97\xdb\x98\xdb\x99\xdb\x9a\xdb\x9b\xdb\x9c\xdb\x9d\xdb\x9e\xdb\x9f\xdb\xa0\xdb\xa1\xdb\xa2\xdb\xa3\xdb\xa4\xdb\xa5\xdb\xa6\xdb\xa7\xdb\xa8\xdb\xa9\xdb\xaa\xdb\xab\xdb\xac\xdb\xad\xdb\xae\xdb\xaf\xdb\xb0\xdb\xb1\xdb\xb2\xdb\xb3\xdb\xb4\xdb\xb5\xdb\xb6\xdb\xb7\xdb\xb8\xdb\xb9\xdb\xba\xdb\xbb\xdb\xbc\xdb\xbd\xdb\xbe\xdb\xbf\xdb\xc0\xdb\xc1\xdb\xc2\xdb\xc3\xdb\xc4\xdb\xc5\xdb\xc6\xdb\xc7\xdb\xc8\xdb\xc9\xdb\xca", /* 3d80 */ "\xdb\xcb\xdb\xcc\xdb\xcd\xdb\xce\xdb\xcf\xdb\xd0\xdb\xd1\xdb\xd2\xdb\xd3\xdb\xd4\xdb\xd5\xdb\xd6\xdb\xd7\xdb\xd8\xdb\xd9\xdb\xda\xdb\xdb\xdb\xdc\xdb\xdd\xdb\xde\xdb\xdf\xdb\xe0\xdb\xe1\xdb\xe2\xdb\xe3\xdb\xe4\xdb\xe5\xdb\xe6\xdb\xe7\xdb\xe8\xdb\xe9\xdb\xea\xdb\xeb\xdb\xec\xdb\xed\xdb\xee\xdb\xef\xdb\xf0\xdb\xf1\xdb\xf2\xdb\xf3\xdb\xf4\xdb\xf5\xdb\xf6\xdb\xf7\xdb\xf8\xdb\xf9\xdb\xfa\xdb\xfb\xdb\xfc\xdb\xfd\xdb\xfe\xdc\x41\xdc\x42\xdc\x43\xdc\x44\xdc\x45\xdc\x46\xdc\x47\xdc\x48\xdc\x49\xdc\x4a\xdc\x4b\xdc\x4c\xdc\x4d\xdc\x4e\xdc\x4f\xdc\x50\xdc\x51\xdc\x52\xdc\x53\xdc\x54\xdc\x55\xdc\x56\xdc\x57\xdc\x58\xdc\x59\xdc\x5a\xdc\x5b\xdc\x5c\xdc\x5d\xdc\x5e\xdc\x5f\xdc\x60\xdc\x61\xdc\x62\xdc\x63\xdc\x64\xdc\x65\xdc\x66\xdc\x67\xdc\x68\xdc\x69\xdc\x6a\xdc\x6b\xdc\x6c\xdc\x6d\xdc\x6e\xdc\x6f\xdc\x70\xdc\x71\xdc\x72\xdc\x73\xdc\x74\xdc\x75\xdc\x76\xdc\x77\xdc\x78\xdc\x79\xdc\x7a\xdc\x7b\xdc\x7c\xdc\x7d\xdc\x7e\xdc\x7f\xdc\x80\xdc\x81\xdc\x82\xdc\x83\xdc\x84\xdc\x85\xdc\x86\xdc\x87\xdc\x88\xdc\x89\xdc\x8a\xdc\x8b\xdc\x8c", /* 3e00 */ "\xdc\x8d\xdc\x8e\xdc\x8f\xdc\x90\xdc\x91\xdc\x92\xdc\x93\xdc\x94\xdc\x95\xdc\x96\xdc\x97\xdc\x98\xdc\x99\xdc\x9a\xdc\x9b\xdc\x9c\xdc\x9d\xdc\x9e\xdc\x9f\xdc\xa0\xdc\xa1\xdc\xa2\xdc\xa3\xdc\xa4\xdc\xa5\xdc\xa6\xdc\xa7\xdc\xa8\xdc\xa9\xdc\xaa\xdc\xab\xdc\xac\xdc\xad\xdc\xae\xdc\xaf\xdc\xb0\xdc\xb1\xdc\xb2\xdc\xb3\xdc\xb4\xdc\xb5\xdc\xb6\xdc\xb7\xdc\xb8\xdc\xb9\xdc\xba\xdc\xbb\xdc\xbc\xdc\xbd\xdc\xbe\xdc\xbf\xdc\xc0\xdc\xc1\xdc\xc2\xdc\xc3\xdc\xc4\xdc\xc5\xdc\xc6\xdc\xc7\xdc\xc8\xdc\xc9\xdc\xca\xdc\xcb\xdc\xcc\xdc\xcd\xdc\xce\xdc\xcf\xdc\xd0\xdc\xd1\xdc\xd2\xdc\xd3\xdc\xd4\xdc\xd5\xdc\xd6\xdc\xd7\xdc\xd8\xdc\xd9\xdc\xda\xdc\xdb\xdc\xdc\xdc\xdd\xdc\xde\xdc\xdf\xdc\xe0\xdc\xe1\xdc\xe2\xdc\xe3\xdc\xe4\xdc\xe5\xdc\xe6\xdc\xe7\xdc\xe8\xdc\xe9\xdc\xea\xdc\xeb\xdc\xec\xdc\xed\xdc\xee\xdc\xef\xdc\xf0\xdc\xf1\xdc\xf2\xdc\xf3\xdc\xf4\xdc\xf5\xdc\xf6\xdc\xf7\xdc\xf8\xdc\xf9\xdc\xfa\xdc\xfb\xdc\xfc\xdc\xfd\xdc\xfe\xdd\x41\xdd\x42\xdd\x43\xdd\x44\xdd\x45\xdd\x46\xdd\x47\xdd\x48\xdd\x49\xdd\x4a\xdd\x4b\xdd\x4c\xdd\x4d\xdd\x4e", /* 3e80 */ "\xdd\x4f\xdd\x50\xdd\x51\xdd\x52\xdd\x53\xdd\x54\xdd\x55\xdd\x56\xdd\x57\xdd\x58\xdd\x59\xdd\x5a\xdd\x5b\xdd\x5c\xdd\x5d\xdd\x5e\xdd\x5f\xdd\x60\xdd\x61\xdd\x62\xdd\x63\xdd\x64\xdd\x65\xdd\x66\xdd\x67\xdd\x68\xdd\x69\xdd\x6a\xdd\x6b\xdd\x6c\xdd\x6d\xdd\x6e\xdd\x6f\xdd\x70\xdd\x71\xdd\x72\xdd\x73\xdd\x74\xdd\x75\xdd\x76\xdd\x77\xdd\x78\xdd\x79\xdd\x7a\xdd\x7b\xdd\x7c\xdd\x7d\xdd\x7e\xdd\x7f\xdd\x80\xdd\x81\xdd\x82\xdd\x83\xdd\x84\xdd\x85\xdd\x86\xdd\x87\xdd\x88\xdd\x89\xdd\x8a\xdd\x8b\xdd\x8c\xdd\x8d\xdd\x8e\xdd\x8f\xdd\x90\xdd\x91\xdd\x92\xdd\x93\xdd\x94\xdd\x95\xdd\x96\xdd\x97\xdd\x98\xdd\x99\xdd\x9a\xdd\x9b\xdd\x9c\xdd\x9d\xdd\x9e\xdd\x9f\xdd\xa0\xdd\xa1\xdd\xa2\xdd\xa3\xdd\xa4\xdd\xa5\xdd\xa6\xdd\xa7\xdd\xa8\xdd\xa9\xdd\xaa\xdd\xab\xdd\xac\xdd\xad\xdd\xae\xdd\xaf\xdd\xb0\xdd\xb1\xdd\xb2\xdd\xb3\xdd\xb4\xdd\xb5\xdd\xb6\xdd\xb7\xdd\xb8\xdd\xb9\xdd\xba\xdd\xbb\xdd\xbc\xdd\xbd\xdd\xbe\xdd\xbf\xdd\xc0\xdd\xc1\xdd\xc2\xdd\xc3\xdd\xc4\xdd\xc5\xdd\xc6\xdd\xc7\xdd\xc8\xdd\xc9\xdd\xca\xdd\xcb\xdd\xcc\xdd\xcd\xdd\xce", /* 3f00 */ "\xdd\xcf\xdd\xd0\xdd\xd1\xdd\xd2\xdd\xd3\xdd\xd4\xdd\xd5\xdd\xd6\xdd\xd7\xdd\xd8\xdd\xd9\xdd\xda\xdd\xdb\xdd\xdc\xdd\xdd\xdd\xde\xdd\xdf\xdd\xe0\xdd\xe1\xdd\xe2\xdd\xe3\xdd\xe4\xdd\xe5\xdd\xe6\xdd\xe7\xdd\xe8\xdd\xe9\xdd\xea\xdd\xeb\xdd\xec\xdd\xed\xdd\xee\xdd\xef\xdd\xf0\xdd\xf1\xdd\xf2\xdd\xf3\xdd\xf4\xdd\xf5\xdd\xf6\xdd\xf7\xdd\xf8\xdd\xf9\xdd\xfa\xdd\xfb\xdd\xfc\xdd\xfd\xdd\xfe\xde\x41\xde\x42\xde\x43\xde\x44\xde\x45\xde\x46\xde\x47\xde\x48\xde\x49\xde\x4a\xde\x4b\xde\x4c\xde\x4d\xde\x4e\xde\x4f\xde\x50\xde\x51\xde\x52\xde\x53\xde\x54\xde\x55\xde\x56\xde\x57\xde\x58\xde\x59\xde\x5a\xde\x5b\xde\x5c\xde\x5d\xde\x5e\xde\x5f\xde\x60\xde\x61\xde\x62\xde\x63\xde\x64\xde\x65\xde\x66\xde\x67\xde\x68\xde\x69\xde\x6a\xde\x6b\xde\x6c\xde\x6d\xde\x6e\xde\x6f\xde\x70\xde\x71\xde\x72\xde\x73\xde\x74\xde\x75\xde\x76\xde\x77\xde\x78\xde\x79\xde\x7a\xde\x7b\xde\x7c\xde\x7d\xde\x7e\xde\x7f\xde\x80\xde\x81\xde\x82\xde\x83\xde\x84\xde\x85\xde\x86\xde\x87\xde\x88\xde\x89\xde\x8a\xde\x8b\xde\x8c\xde\x8d\xde\x8e\xde\x8f\xde\x90", /* 3f80 */ "\xde\x91\xde\x92\xde\x93\xde\x94\xde\x95\xde\x96\xde\x97\xde\x98\xde\x99\xde\x9a\xde\x9b\xde\x9c\xde\x9d\xde\x9e\xde\x9f\xde\xa0\xde\xa1\xde\xa2\xde\xa3\xde\xa4\xde\xa5\xde\xa6\xde\xa7\xde\xa8\xde\xa9\xde\xaa\xde\xab\xde\xac\xde\xad\xde\xae\xde\xaf\xde\xb0\xde\xb1\xde\xb2\xde\xb3\xde\xb4\xde\xb5\xde\xb6\xde\xb7\xde\xb8\xde\xb9\xde\xba\xde\xbb\xde\xbc\xde\xbd\xde\xbe\xde\xbf\xde\xc0\xde\xc1\xde\xc2\xde\xc3\xde\xc4\xde\xc5\xde\xc6\xde\xc7\xde\xc8\xde\xc9\xde\xca\xde\xcb\xde\xcc\xde\xcd\xde\xce\xde\xcf\xde\xd0\xde\xd1\xde\xd2\xde\xd3\xde\xd4\xde\xd5\xde\xd6\xde\xd7\xde\xd8\xde\xd9\xde\xda\xde\xdb\xde\xdc\xde\xdd\xde\xde\xde\xdf\xde\xe0\xde\xe1\xde\xe2\xde\xe3\xde\xe4\xde\xe5\xde\xe6\xde\xe7\xde\xe8\xde\xe9\xde\xea\xde\xeb\xde\xec\xde\xed\xde\xee\xde\xef\xde\xf0\xde\xf1\xde\xf2\xde\xf3\xde\xf4\xde\xf5\xde\xf6\xde\xf7\xde\xf8\xde\xf9\xde\xfa\xde\xfb\xde\xfc\xde\xfd\xde\xfe\xdf\x41\xdf\x42\xdf\x43\xdf\x44\xdf\x45\xdf\x46\xdf\x47\xdf\x48\xdf\x49\xdf\x4a\xdf\x4b\xdf\x4c\xdf\x4d\xdf\x4e\xdf\x4f\xdf\x50\xdf\x51\xdf\x52", /* 4000 */ "\xdf\x53\xdf\x54\xdf\x55\xdf\x56\xdf\x57\xdf\x58\xdf\x59\xdf\x5a\xdf\x5b\xdf\x5c\xdf\x5d\xdf\x5e\xdf\x5f\xdf\x60\xdf\x61\xdf\x62\xdf\x63\xdf\x64\xdf\x65\xdf\x66\xdf\x67\xdf\x68\xdf\x69\xdf\x6a\xdf\x6b\xdf\x6c\xdf\x6d\xdf\x6e\xdf\x6f\xdf\x70\xdf\x71\xdf\x72\xdf\x73\xdf\x74\xdf\x75\xdf\x76\xdf\x77\xdf\x78\xdf\x79\xdf\x7a\xdf\x7b\xdf\x7c\xdf\x7d\xdf\x7e\xdf\x7f\xdf\x80\xdf\x81\xdf\x82\xdf\x83\xdf\x84\xdf\x85\xdf\x86\xdf\x87\xdf\x88\xdf\x89\xdf\x8a\xdf\x8b\xdf\x8c\xdf\x8d\xdf\x8e\xdf\x8f\xdf\x90\xdf\x91\xdf\x92\xdf\x93\xdf\x94\xdf\x95\xdf\x96\xdf\x97\xdf\x98\xdf\x99\xdf\x9a\xdf\x9b\xdf\x9c\xdf\x9d\xdf\x9e\xdf\x9f\xdf\xa0\xdf\xa1\xdf\xa2\xdf\xa3\xdf\xa4\xdf\xa5\xdf\xa6\xdf\xa7\xdf\xa8\xce\x75\xdf\xa9\xdf\xaa\xdf\xab\xdf\xac\xdf\xad\xdf\xae\xdf\xaf\xdf\xb0\xdf\xb1\xdf\xb2\xdf\xb3\xdf\xb4\xdf\xb5\xdf\xb6\xdf\xb7\xdf\xb8\xdf\xb9\xdf\xba\xdf\xbb\xdf\xbc\xdf\xbd\xdf\xbe\xdf\xbf\xdf\xc0\xdf\xc1\xdf\xc2\xdf\xc3\xdf\xc4\xdf\xc5\xdf\xc6\xdf\xc7\xdf\xc8\xdf\xc9\xdf\xca\xdf\xcb\xdf\xcc\xdf\xcd\xdf\xce\xdf\xcf\xdf\xd0\xdf\xd1", /* 4080 */ "\xdf\xd2\xdf\xd3\xdf\xd4\xdf\xd5\xdf\xd6\xdf\xd7\xdf\xd8\xdf\xd9\xdf\xda\xdf\xdb\xdf\xdc\xdf\xdd\xdf\xde\xdf\xdf\xdf\xe0\xdf\xe1\xdf\xe2\xdf\xe3\xdf\xe4\xdf\xe5\xdf\xe6\xdf\xe7\xdf\xe8\xdf\xe9\xdf\xea\xdf\xeb\xdf\xec\xdf\xed\xdf\xee\xdf\xef\xdf\xf0\xdf\xf1\xdf\xf2\xdf\xf3\xdf\xf4\xdf\xf5\xdf\xf6\xdf\xf7\xdf\xf8\xdf\xf9\xdf\xfa\xdf\xfb\xdf\xfc\xdf\xfd\xdf\xfe\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93", /* 4100 */ "\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xce\x76\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54", /* 4180 */ "\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4", /* 4200 */ "\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96", /* 4280 */ "\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58", /* 4300 */ "\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xce\x78\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7", /* 4380 */ "\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xce\x7e\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xce\x7d\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xce\x81\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96", /* 4400 */ "\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58", /* 4480 */ "\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xce\x82\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7", /* 4500 */ "\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99", /* 4580 */ "\xe6\x9a\xe6\x9b\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b", /* 4600 */ "\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xce\x84\xe7\xa8\xe7\xa9\xe7\xaa\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xce\x83\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9", /* 4680 */ "\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b", /* 4700 */ "\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xce\x86\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xce\x87\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xce\x88\xe9\x58\xe9\x59\xe9\x5a", /* 4780 */ "\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xce\x89\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9", /* 4800 */ "\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b", /* 4880 */ "\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xeb\x41\xeb\x42\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d", /* 4900 */ "\xeb\x5e\xeb\x5f\xeb\x60\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xce\x8b\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xce\x8c\xeb\xd7\xeb\xd8\xce\x8d\xeb\xd9\xeb\xda", /* 4980 */ "\xeb\xdb\xeb\xdc\xce\x8e\xce\x8f\xeb\xdd\xce\x90\xce\x91\xeb\xde\xeb\xdf\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xce\x93\xeb\xf2\xeb\xf3\xeb\xf4\xce\x92\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xce\x95\xce\x94\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94", /* 4a00 */ "\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56", /* 4a80 */ "\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6", /* 4b00 */ "\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98", /* 4b80 */ "\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a", /* 4c00 */ "\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xce\x9c\xef\xd2\xef\xd3\xef\xd4\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9", /* 4c80 */ "\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xce\x99\xce\x9a\xce\x9b\xce\x9d\xce\x98\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xf6\x41\xf6\x42\xf6\x43\xf6\x44\xf6\x45\xf6\x46\xf6\x47\xf6\x48\xf6\x49\xf6\x4a\xf6\x4b\xf6\x4c\xf6\x4d\xf6\x4e\xf6\x4f\xf6\x50\xf6\x51\xf6\x52\xf6\x53\xf6\x54\xf6\x55\xf6\x56\xf6\x57\xf6\x58\xf6\x59\xf6\x5a\xf6\x5b\xf6\x5c\xf6\x5d\xf6\x5e\xf6\x5f\xf6\x60\xf6\x61\xf6\x62\xf6\x63\xf6\x64\xf6\x65\xf6\x66\xf6\x67\xf6\x68\xf6\x69\xf6\x6a\xf6\x6b\xf6\x6c\xf6\x6d\xf6\x6e\xf6\x6f\xf6\x70\xf6\x71\xf6\x72\xf6\x73\xf6\x74\xf6\x75\xf6\x76\xf6\x77\xf6\x78\xf6\x79\xf6\x7a\xf6\x7b\xf6\x7c\xf6\x7d\xf6\x7e\xf6\x7f\xf6\x80\xf6\x81\xf6\x82\xf6\x83\xf6\x84\xf6\x85\xf6\x86\xf6\x87\xf6\x88\xf6\x89\xf6\x8a\xf6\x8b\xf6\x8c\xf6\x8d\xf6\x8e\xf6\x8f\xf6\x90\xf6\x91\xf6\x92\xf6\x93\xf6\x94\xf6\x95\xf6\x96", /* 4d00 */ "\xf6\x97\xf6\x98\xf6\x99\xf6\x9a\xf6\x9b\xf6\x9c\xf6\x9d\xf6\x9e\xf6\x9f\xf6\xa0\xf6\xa1\xf6\xa2\xf6\xa3\xf6\xa4\xf6\xa5\xf6\xa6\xf6\xa7\xf6\xa8\xf6\xa9\xce\x9e\xce\x9f\xce\xa0\xce\xa1\xce\xa2\xce\xa3\xce\xa4\xf6\xaa\xf6\xab\xf6\xac\xf6\xad\xf6\xae\xf6\xaf\xf6\xb0\xf6\xb1\xf6\xb2\xf6\xb3\xf6\xb4\xf6\xb5\xf6\xb6\xf6\xb7\xf6\xb8\xf6\xb9\xf6\xba\xf6\xbb\xf6\xbc\xf6\xbd\xf6\xbe\xf6\xbf\xf6\xc0\xf6\xc1\xf6\xc2\xf6\xc3\xf6\xc4\xf6\xc5\xf6\xc6\xf6\xc7\xf6\xc8\xf6\xc9\xf6\xca\xf6\xcb\xf6\xcc\xf6\xcd\xf6\xce\xf6\xcf\xf6\xd0\xf6\xd1\xf6\xd2\xf6\xd3\xf6\xd4\xf6\xd5\xf6\xd6\xf6\xd7\xf6\xd8\xf6\xd9\xf6\xda\xf6\xdb\xf6\xdc\xf6\xdd\xf6\xde\xf6\xdf\xf6\xe0\xf6\xe1\xf6\xe2\xf6\xe3\xf6\xe4\xf6\xe5\xf6\xe6\xf6\xe7\xf6\xe8\xf6\xe9\xf6\xea\xf6\xeb\xf6\xec\xf6\xed\xf6\xee\xf6\xef\xf6\xf0\xf6\xf1\xf6\xf2\xf6\xf3\xf6\xf4\xf6\xf5\xf6\xf6\xf6\xf7\xf6\xf8\xf6\xf9\xf6\xfa\xf6\xfb\xf6\xfc\xf6\xfd\xf6\xfe\xf7\x41\xf7\x42\xf7\x43\xf7\x44\xf7\x45\xf7\x46\xf7\x47\xf7\x48\xf7\x49\xf7\x4a\xf7\x4b\xf7\x4c\xf7\x4d\xf7\x4e\xf7\x4f\xf7\x50\xf7\x51", /* 4d80 */ "\xf7\x52\xf7\x53\xf7\x54\xf7\x55\xf7\x56\xf7\x57\xf7\x58\xf7\x59\xf7\x5a\xf7\x5b\xf7\x5c\xf7\x5d\xf7\x5e\xf7\x5f\xf7\x60\xf7\x61\xf7\x62\xf7\x63\xf7\x64\xf7\x65\xf7\x66\xf7\x67\xf7\x68\xf7\x69\xf7\x6a\xf7\x6b\xf7\x6c\xf7\x6d\xf7\x6e\xf7\x6f\xf7\x70\xf7\x71\xf7\x72\xf7\x73\xf7\x74\xf7\x75\xf7\x76\xf7\x77\xf7\x78\xf7\x79\xf7\x7a\xf7\x7b\xf7\x7c\xf7\x7d\xf7\x7e\xf7\x7f\xce\xa5\xf7\x80\xf7\x81\xf7\x82\xf7\x83\xf7\x84\xf7\x85\xf7\x86\xf7\x87\xf7\x88\xf7\x89\xf7\x8a\xf7\x8b\xf7\x8c\xf7\x8d\xf7\x8e\xf7\x8f\xf7\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4e00 */ "\x59\xba\x4b\xa0\x81\x41\x53\xde\x81\x42\x81\x43\x81\x44\x57\x93\x5b\x69\x54\xfc\x55\x6f\x58\x62\x5c\xa1\x49\xba\x5a\x8c\x81\x45\x5c\xa3\x4a\x94\x81\x46\x5c\x48\x54\x72\x5c\xa6\x55\xbf\x81\x47\x54\x91\x49\x9c\x59\xb4\x4a\xd3\x4b\xaa\x56\x5f\x5c\xa8\x81\x48\x81\x49\x81\x4a\x4b\xa9\x81\x4b\x51\x5d\x59\x6f\x81\x4c\x55\x45\x5c\xac\x81\x4d\x4c\xf5\x59\x5e\x62\x7c\x5b\xcf\x81\x4e\x81\x4f\x4c\x82\x81\x50\x4a\xad\x81\x51\x51\x79\x81\x52\x5c\xbb\x81\x53\x57\x89\x4b\x44\x57\xa9\x5b\xf6\x81\x54\x50\xf5\x4f\xd8\x5c\xae\x81\x55\x81\x56\x81\x57\x52\xca\x81\x58\x4f\xc2\x81\x59\x5c\xb0\x52\x54\x59\xe4\x81\x5a\x5b\xad\x57\xd9\x5b\x47\x4d\xf4\x4c\x46\x50\xd5\x81\x5b\x53\xb8\x53\x72\x54\x67\x81\x5c\x4d\x74\x81\x5d\x4a\x6b\x59\xd1\x81\x5e\x81\x5f\x5c\xbe\x4f\xc4\x53\xf1\x59\xb1\x58\x50\x58\x88\x81\x60\x81\x61\x81\x62\x81\x63\x55\xe8\x81\x64\x81\x65\x5c\xbf\x81\x66\x81\x67\x81\x68\x81\x69\x81\x6a\x81\x6b\x51\xf1\x51\xd1\x81\x6c\x54\xe8\x81\x6d\x81\x6e\x81\x6f\x81\x70\x81\x71\x81\x72\x81\x73\x81\x74\x81\x75\x81\x76\x54\x4c\x81\x77", /* 4e80 */ "\x81\x78\x81\x79\x81\x7a\x81\x7b\x81\x7c\x81\x7d\x51\x6b\x81\x7e\x5a\x89\x5b\x9a\x81\x7f\x55\xc1\x4b\xfd\x5c\xa0\x5a\x7a\x50\x98\x81\x81\x5a\xc5\x4e\x45\x5c\xc0\x57\xe4\x4f\xad\x81\x82\x81\x83\x5c\xa7\x81\x84\x59\x67\x58\xa8\x81\x85\x81\x86\x81\x87\x5c\xbc\x5d\x90\x57\x97\x50\x5a\x81\x88\x4f\x5b\x4d\xa4\x59\xdf\x49\xf9\x4d\xdf\x52\xb5\x81\x89\x58\x8e\x4f\xa8\x57\x44\x51\x61\x81\x8a\x81\x8b\x81\x8c\x54\x77\x5d\x92\x81\x8d\x5d\x95\x81\x8e\x81\x8f\x81\x90\x81\x91\x54\xca\x5c\xe8\x81\x92\x81\x93\x81\x94\x59\xd9\x55\xb1\x54\xc9\x5c\xeb\x5c\xe9\x5c\xc5\x4f\x97\x53\xcc\x4a\x91\x81\x95\x5c\xea\x4f\x92\x4f\x8a\x81\x96\x54\xd3\x4a\xd2\x81\x97\x81\x98\x51\xd7\x81\x99\x49\xd5\x5c\x70\x55\xca\x56\x9c\x5b\x6c\x4c\xb5\x58\x69\x81\x9a\x81\x9b\x81\x9c\x5d\x7a\x5c\xef\x54\x4a\x81\x9d\x5c\xed\x81\x9e\x4a\xf9\x51\x8f\x59\xd3\x81\x9f\x81\xa0\x5c\xec\x81\xa1\x59\xc6\x5c\xee\x52\x67\x81\xa2\x81\xa3\x81\xa4\x59\x97\x81\xa5\x5b\xd8\x5c\xf1\x81\xa6\x5c\xf4\x4e\xfd\x4e\xda\x81\xa7\x81\xa8\x81\xa9\x54\xcd\x81\xaa\x4c\x7d\x81\xab\x4c\x62", /* 4f00 */ "\x81\xac\x53\xf2\x81\xad\x81\xae\x81\xaf\x81\xb0\x81\xb1\x81\xb2\x81\xb3\x5c\xf7\x59\xc0\x81\xb4\x81\xb5\x57\xe8\x4e\xbe\x4c\x9d\x4c\x45\x58\xdc\x81\xb6\x81\xb7\x81\xb8\x81\xb9\x81\xba\x5b\xd9\x5a\x65\x4e\x90\x4e\x82\x5c\xf0\x81\xbb\x81\xbc\x55\x41\x57\xaf\x4a\xaa\x81\xbd\x5c\xf2\x81\xbe\x55\x6b\x5c\xf5\x51\xd6\x5c\xf6\x81\xbf\x81\xc0\x57\xb0\x5c\xf8\x81\xc1\x81\xc2\x81\xc3\x49\xad\x4d\x60\x81\xc4\x5d\x43\x81\xc5\x48\xe8\x81\xc6\x51\x87\x81\xc7\x55\x8d\x81\xc8\x56\x65\x81\xc9\x56\x66\x5d\x44\x81\xca\x81\xcb\x81\xcc\x81\xcd\x81\xce\x4b\x89\x81\xcf\x81\xd0\x4b\x4b\x81\xd1\x81\xd2\x81\xd3\x81\xd4\x81\xd5\x81\xd6\x57\xba\x4b\x6d\x5c\x41\x5c\x95\x5a\x73\x81\xd7\x56\xe4\x81\xd8\x4d\xcd\x81\xd9\x5d\x42\x5d\x7c\x5a\x81\x5c\xfc\x4c\x91\x5c\x98\x5c\xfd\x5c\xf9\x5d\x41\x52\xe2\x81\xda\x81\xdb\x5a\x56\x5c\xf3\x5d\x7d\x81\xdc\x5c\xfa\x81\xdd\x53\x86\x81\xde\x81\xdf\x50\xcf\x81\xe0\x81\xe1\x59\x91\x48\xda\x81\xe2\x81\xe3\x4e\xd0\x5d\x46\x81\xe4\x5d\x45\x81\xe5\x81\xe6\x81\xe7\x81\xe8\x5d\x4c\x5d\x4e\x81\xe9\x5d\x4b\x55\xb8", /* 4f80 */ "\x81\xea\x81\xeb\x81\xec\x5d\x49\x5b\xb5\x81\xed\x81\xee\x81\xef\x4a\x7e\x5d\x48\x81\xf0\x50\xfc\x81\xf1\x55\xcb\x81\xf2\x5d\x4a\x81\xf3\x5d\x47\x81\xf4\x81\xf5\x5d\x50\x81\xf6\x81\xf7\x4b\xb0\x81\xf8\x81\xf9\x81\xfa\x4d\x49\x81\xfb\x59\xbf\x81\xfc\x81\xfd\x58\x60\x82\x41\x82\x42\x51\xc1\x82\x43\x4f\x64\x5b\x8d\x49\xdf\x54\x68\x50\x8c\x5d\x4d\x82\x44\x5d\x4f\x82\x45\x57\xe9\x4d\xed\x82\x46\x82\x47\x82\x48\x82\x49\x82\x4a\x54\x76\x82\x4b\x82\x4c\x82\x4d\x82\x4e\x82\x4f\x82\x50\x82\x51\x82\x52\x82\x53\x49\x84\x82\x54\x82\x55\x82\x56\x4a\xd8\x4b\xec\x5d\x54\x82\x57\x82\x58\x82\x59\x82\x5a\x50\x41\x82\x5b\x82\x5c\x82\x5d\x5d\x7e\x54\x6e\x50\xfd\x5d\x58\x82\x5e\x82\x5f\x82\x60\x82\x61\x82\x62\x56\x77\x4c\x9e\x82\x63\x5d\x55\x82\x64\x5d\x57\x49\x43\x5a\x82\x5d\x59\x82\x65\x58\xc4\x82\x66\x5d\x56\x82\x67\x82\x68\x5d\x51\x82\x69\x5d\x52\x51\x49\x5d\x53\x82\x6a\x82\x6b\x4e\xf2\x58\xdd\x4c\xa8\x82\x6c\x4f\xe2\x82\x6d\x5d\x5d\x82\x6e\x82\x6f\x82\x70\x82\x71\x5d\x5a\x82\x72\x48\xb2\x82\x73\x82\x74\x82\x75\x5d\x62\x82\x76", /* 5000 */ "\x82\x77\x82\x78\x82\x79\x82\x7a\x82\x7b\x82\x7c\x82\x7d\x82\x7e\x82\x7f\x82\x81\x82\x82\x82\x83\x5d\x64\x49\x56\x82\x84\x5d\x5f\x82\x85\x82\x86\x4b\x59\x82\x87\x4f\xf2\x82\x88\x82\x89\x82\x8a\x56\xc7\x4d\xf1\x59\xcf\x82\x8b\x5d\x63\x82\x8c\x82\x8d\x4f\x89\x82\x8e\x4a\x4b\x82\x8f\x82\x90\x82\x91\x5d\x65\x4f\xea\x82\x92\x5d\x66\x5d\x5b\x52\xde\x82\x93\x5d\x5e\x5d\x61\x5d\x60\x82\x94\x82\x95\x82\x96\x82\x97\x82\x98\x82\x99\x82\x9a\x82\x9b\x82\x9c\x82\x9d\x82\x9e\x5b\x4e\x82\x9f\x5b\xb4\x82\xa0\x54\x84\x82\xa1\x82\xa2\x82\xa3\x82\xa4\x5d\x68\x82\xa5\x82\xa6\x82\xa7\x4e\xd8\x5d\x6a\x82\xa8\x82\xa9\x82\xaa\x5d\x5c\x82\xab\x5d\x6b\x53\xaa\x82\xac\x82\xad\x82\xae\x82\xaf\x82\xb0\x5d\x69\x82\xb1\x82\xb2\x82\xb3\x82\xb4\x5c\x97\x82\xb5\x57\x43\x82\xb6\x82\xb7\x82\xb8\x82\xb9\x82\xba\x82\xbb\x82\xbc\x82\xbd\x4f\x41\x82\xbe\x82\xbf\x82\xc0\x82\xc1\x82\xc2\x82\xc3\x5d\x6c\x82\xc4\x82\xc5\x82\xc6\x82\xc7\x82\xc8\x82\xc9\x82\xca\x82\xcb\x82\xcc\x53\x5c\x57\x55\x82\xcd\x82\xce\x82\xcf\x5d\x6d\x82\xd0\x82\xd1\x5d\x67\x4a\x45", /* 5080 */ "\x50\x9f\x82\xd2\x82\xd3\x82\xd4\x82\xd5\x4c\xb4\x82\xd6\x82\xd7\x50\xfb\x82\xd8\x82\xd9\x82\xda\x82\xdb\x48\xf7\x82\xdc\x82\xdd\x82\xde\x82\xdf\x82\xe0\x82\xe1\x82\xe2\x82\xe3\x82\xe4\x82\xe5\x82\xe6\x82\xe7\x82\xe8\x82\xe9\x82\xea\x82\xeb\x82\xec\x82\xed\x82\xee\x82\xef\x82\xf0\x4a\xf5\x82\xf1\x5d\x6e\x82\xf2\x5d\x6f\x4a\xa1\x5d\x70\x82\xf3\x82\xf4\x4a\xde\x82\xf5\x82\xf6\x82\xf7\x82\xf8\x82\xf9\x48\xc0\x82\xfa\x82\xfb\x82\xfc\x82\xfd\x83\x41\x83\x42\x83\x43\x5d\x71\x55\x55\x83\x44\x83\x45\x83\x46\x83\x47\x83\x48\x83\x49\x83\x4a\x83\x4b\x83\x4c\x83\x4d\x83\x4e\x83\x4f\x83\x50\x83\x51\x83\x52\x83\x53\x83\x54\x83\x55\x83\x56\x58\x92\x83\x57\x83\x58\x83\x59\x83\x5a\x83\x5b\x83\x5c\x5d\x72\x83\x5d\x83\x5e\x83\x5f\x51\x65\x83\x60\x83\x61\x83\x62\x83\x63\x83\x64\x83\x65\x83\x66\x83\x67\x83\x68\x83\x69\x83\x6a\x5d\x76\x55\x4e\x83\x6b\x83\x6c\x83\x6d\x83\x6e\x5d\x75\x5d\x74\x5d\x77\x83\x6f\x83\x70\x83\x71\x83\x72\x56\x7b\x83\x73\x4f\x49\x83\x74\x83\x75\x83\x76\x83\x77\x83\x78\x53\xa6\x83\x79\x83\x7a\x83\x7b\x83\x7c", /* 5100 */ "\x83\x7d\x83\x7e\x83\x7f\x83\x81\x83\x82\x83\x83\x5d\x73\x5d\x78\x83\x84\x83\x85\x83\x86\x5d\x79\x83\x87\x83\x88\x83\x89\x83\x8a\x83\x8b\x83\x8c\x54\xe4\x83\x8d\x83\x8e\x83\x8f\x83\x90\x83\x91\x83\x92\x83\x93\x83\x94\x83\x95\x83\x96\x83\x97\x83\x98\x83\x99\x83\x9a\x50\xdb\x83\x9b\x83\x9c\x83\x9d\x83\x9e\x83\x9f\x83\xa0\x83\xa1\x83\xa2\x83\xa3\x83\xa4\x83\xa5\x83\xa6\x83\xa7\x83\xa8\x83\xa9\x83\xaa\x83\xab\x83\xac\x83\xad\x83\xae\x83\xaf\x83\xb0\x83\xb1\x83\xb2\x83\xb3\x83\xb4\x83\xb5\x83\xb6\x83\xb7\x4b\xf8\x5c\xa2\x5a\xc9\x83\xb8\x5a\xa9\x58\xd5\x4a\x85\x5b\x77\x83\xb9\x58\x68\x4d\x83\x83\xba\x50\x6b\x83\xbb\x52\x83\x83\xbc\x83\xbd\x83\xbe\x4b\xd1\x83\xbf\x83\xc0\x57\x63\x5d\x8f\x5d\x91\x83\xc1\x83\xc2\x83\xc3\x4b\x53\x83\xc4\x4b\xb4\x83\xc5\x83\xc6\x83\xc7\x83\xc8\x83\xc9\x4f\xa3\x83\xca\x83\xcb\x54\xea\x83\xcc\x83\xcd\x54\xaa\x83\xce\x83\xcf\x48\xca\x4d\x4b\x51\x9a\x5d\x83\x83\xd0\x50\xbb\x4d\x52\x83\xd1\x4d\x78\x58\xca\x49\x99\x53\xe3\x4f\xde\x4b\x85\x5c\x68\x83\xd2\x59\x99\x4e\xe5\x55\xdd\x83\xd3\x83\xd4", /* 5180 */ "\x4e\xbc\x5d\x87\x5c\xe6\x83\xd5\x83\xd6\x52\xd9\x83\xd7\x83\xd8\x4c\xd3\x54\xbc\x83\xd9\x83\xda\x49\xe0\x5a\xd8\x83\xdb\x83\xdc\x83\xdd\x83\xde\x52\x50\x83\xdf\x83\xe0\x52\x82\x5d\xa1\x54\xde\x83\xe1\x58\xb3\x83\xe2\x4f\xfb\x53\x49\x83\xe3\x83\xe4\x83\xe5\x4d\x7a\x83\xe6\x5d\xa2\x83\xe7\x5a\xa8\x5d\xa3\x83\xe8\x83\xe9\x83\xea\x83\xeb\x83\xec\x5d\x9c\x4b\xab\x83\xed\x83\xee\x4c\x8c\x49\x9a\x5d\x9d\x4a\x86\x4f\xf5\x83\xef\x50\x97\x59\xb0\x50\xe3\x83\xf0\x83\xf1\x83\xf2\x4b\xb2\x5d\x9f\x5d\x9e\x83\xf3\x83\xf4\x4f\xba\x83\xf5\x83\xf6\x83\xf7\x53\xdf\x83\xf8\x5c\x5c\x5d\xa0\x83\xf9\x51\x59\x83\xfa\x4b\x93\x51\x89\x83\xfb\x83\xfc\x4e\xf4\x83\xfd\x4a\xd4\x84\x41\x84\x42\x84\x43\x84\x44\x84\x45\x84\x46\x84\x47\x84\x48\x84\x49\x51\x7d\x84\x4a\x52\xfc\x84\x4b\x84\x4c\x4e\xb7\x4c\x52\x84\x4d\x84\x4e\x4c\x90\x84\x4f\x84\x50\x84\x51\x84\x52\x84\x53\x84\x54\x5d\x8d\x84\x55\x53\xbd\x84\x56\x50\x4d\x4e\x6b\x84\x57\x84\x58\x4b\x6a\x84\x59\x5e\x69\x58\xd6\x84\x5a\x57\x59\x48\xbb\x4a\x97\x4e\x98\x5e\x6a\x4d\xae\x84\x5b\x5a\xe3", /* 5200 */ "\x4b\x56\x4b\x94\x5c\xd5\x54\xcf\x84\x5c\x84\x5d\x4c\x76\x54\x70\x5c\xd6\x84\x5e\x50\x4f\x84\x5f\x84\x60\x5e\x5b\x5c\xd7\x84\x61\x84\x62\x58\xcb\x4e\x4e\x84\x63\x84\x64\x84\x65\x66\x5e\x51\x70\x51\x96\x5a\xf1\x4c\xd4\x4a\xb3\x84\x66\x4a\x96\x84\x67\x84\x68\x55\x5e\x84\x69\x84\x6a\x84\x6b\x53\x70\x84\x6c\x84\x6d\x84\x6e\x53\x79\x50\xfa\x84\x6f\x49\x91\x84\x70\x5c\xd8\x4d\x6e\x84\x71\x4b\x5d\x84\x72\x84\x73\x5c\xd9\x84\x74\x84\x75\x5b\xc5\x56\x42\x54\xae\x55\x52\x4a\xcb\x50\x6c\x84\x76\x4d\x95\x84\x77\x5c\xda\x5c\xdb\x4b\xe6\x4e\xc0\x56\xe9\x84\x78\x84\x79\x84\x7a\x84\x7b\x84\x7c\x84\x7d\x58\x98\x84\x7e\x5c\xdc\x54\x50\x84\x7f\x84\x81\x4d\x70\x4f\x43\x84\x82\x84\x83\x56\xdd\x84\x84\x53\xc9\x84\x85\x84\x86\x84\x87\x84\x88\x84\x89\x5c\xdf\x84\x8a\x5c\xdd\x84\x8b\x84\x8c\x5c\xde\x84\x8d\x84\x8e\x84\x8f\x48\xfd\x84\x90\x4f\xe6\x84\x91\x55\xa2\x4e\xf3\x84\x92\x84\x93\x84\x94\x84\x95\x4c\xb0\x84\x96\x84\x97\x4c\xed\x84\x98\x84\x99\x84\x9a\x84\x9b\x84\x9c\x84\x9d\x84\x9e\x84\x9f\x84\xa0\x84\xa1\x5c\xe1\x84\xa2\x4f\x6b", /* 5280 */ "\x84\xa3\x5c\xe3\x5c\xe2\x84\xa4\x84\xa5\x84\xa6\x84\xa7\x84\xa8\x53\x9d\x84\xa9\x84\xaa\x84\xab\x84\xac\x84\xad\x84\xae\x84\xaf\x5c\xe4\x84\xb0\x84\xb1\x5c\xe5\x84\xb2\x84\xb3\x84\xb4\x84\xb5\x84\xb6\x84\xb7\x84\xb8\x51\x46\x84\xb9\x54\xaf\x48\xeb\x4d\x46\x4e\xd2\x57\xf0\x5e\x5d\x51\x73\x84\xba\x84\xbb\x84\xbc\x84\xbd\x4b\xae\x5b\xf9\x53\x4c\x4f\x79\x5e\x5e\x5e\x5f\x84\xbe\x84\xbf\x84\xc0\x50\xf7\x4f\xa1\x50\xcc\x84\xc1\x84\xc2\x84\xc3\x84\xc4\x84\xc5\x84\xc6\x84\xc7\x84\xc8\x84\xc9\x84\xca\x5e\x60\x55\xc5\x84\xcb\x84\xcc\x84\xcd\x49\xa9\x84\xce\x84\xcf\x84\xd0\x5a\x62\x84\xd1\x52\x84\x84\xd2\x59\x4b\x84\xd3\x84\xd4\x84\xd5\x84\xd6\x5e\x62\x84\xd7\x50\xd4\x84\xd8\x84\xd9\x84\xda\x5e\x63\x84\xdb\x50\x51\x84\xdc\x84\xdd\x84\xde\x84\xdf\x84\xe0\x84\xe1\x52\xbb\x84\xe2\x84\xe3\x84\xe4\x84\xe5\x54\x7a\x84\xe6\x84\xe7\x84\xe8\x84\xe9\x84\xea\x84\xeb\x84\xec\x84\xed\x84\xee\x84\xef\x84\xf0\x5e\x64\x84\xf1\x84\xf2\x84\xf3\x84\xf4\x84\xf5\x84\xf6\x84\xf7\x84\xf8\x5d\x89\x55\x77\x84\xf9\x84\xfa\x84\xfb\x4d\x54\x57\xef", /* 5300 */ "\x5a\xc7\x84\xfc\x84\xfd\x85\x41\x85\x42\x48\xfb\x4a\xd1\x85\x43\x58\xd8\x85\x44\x85\x45\x85\x46\x85\x47\x5d\x8a\x85\x48\x5f\xca\x5d\x8c\x85\x49\x85\x4a\x85\x4b\x85\x4c\x5c\xaf\x4e\x4f\x49\x51\x85\x4d\x4a\x77\x5c\xcd\x85\x4e\x85\x4f\x5a\xd0\x85\x50\x85\x51\x4f\x53\x50\x90\x85\x52\x58\x5b\x85\x53\x85\x54\x5c\xcf\x85\x55\x85\x56\x85\x57\x4c\x6b\x85\x58\x85\x59\x85\x5a\x5c\xd0\x85\x5b\x85\x5c\x85\x5d\x85\x5e\x85\x5f\x85\x60\x85\x61\x85\x62\x85\x63\x85\x64\x53\xa4\x54\x99\x59\xbc\x85\x65\x85\x66\x5c\xd1\x52\xe3\x85\x67\x55\xad\x85\x68\x54\x47\x85\x69\x5c\xa5\x85\x6a\x55\x9e\x57\xe6\x4e\x7c\x48\xea\x85\x6b\x85\x6c\x85\x6d\x4e\x4a\x58\xac\x85\x6e\x49\x50\x5c\x85\x5c\x5f\x85\x6f\x4b\x45\x51\xf3\x52\xce\x85\x70\x85\x71\x49\xa8\x85\x72\x49\xb6\x85\x73\x49\x86\x60\x52\x5b\x5c\x50\x48\x51\xab\x5c\xd4\x51\xb0\x85\x74\x5c\xd3\x57\xd3\x85\x75\x5d\xdf\x85\x76\x57\xbf\x85\x77\x85\x78\x5c\xb3\x52\x4e\x5a\x41\x57\xa2\x85\x79\x4e\xb3\x54\xb3\x51\xd0\x85\x7a\x4f\xec\x58\xb5\x85\x7b\x5d\xe0\x85\x7c\x85\x7d\x85\x7e\x85\x7f\x54\x85", /* 5380 */ "\x85\x81\x85\x82\x4a\x47\x85\x83\x4b\xf1\x56\xfb\x50\xf9\x85\x84\x85\x85\x50\xf6\x85\x86\x59\x59\x59\x82\x5c\xc6\x85\x87\x85\x88\x85\x89\x85\x8a\x85\x8b\x85\x8c\x85\x8d\x49\xdd\x85\x8e\x85\x8f\x50\xe4\x85\x90\x4d\xf0\x85\x91\x85\x92\x5c\xc7\x85\x93\x5a\xac\x85\x94\x85\x95\x58\x82\x5c\xc8\x85\x96\x5c\xc9\x58\x63\x85\x97\x4a\x99\x4f\xc6\x85\x98\x85\x99\x85\x9a\x85\x9b\x5c\xca\x85\x9c\x85\x9d\x85\x9e\x85\x9f\x85\xa0\x85\xa1\x85\xa2\x5e\x6c\x85\xa3\x85\xa4\x85\xa5\x85\xa6\x54\xa4\x85\xa7\x85\xa8\x85\xa9\x58\x78\x85\xaa\x54\xfd\x49\xcd\x85\xab\x85\xac\x85\xad\x85\xae\x85\xaf\x5a\x76\x49\xe5\x4e\xaf\x5a\x71\x56\x4b\x4c\x54\x85\xb0\x85\xb1\x85\xb2\x4c\x42\x85\xb3\x85\xb4\x55\xe4\x85\xb5\x54\xa0\x55\xdb\x49\x85\x58\xef\x85\xb6\x53\x71\x85\xb7\x85\xb8\x85\xb9\x5e\x65\x4b\x9f\x85\xba\x85\xbb\x50\x7a\x4d\x65\x4f\xe3\x51\x8e\x85\xbc\x60\x56\x60\x55\x5b\xba\x4f\x70\x5b\x79\x48\xc7\x4b\xa2\x50\x69\x56\xa7\x60\x53\x55\xb6\x5a\x72\x85\xbd\x5c\xce\x59\xb5\x4d\xc4\x56\x5e\x56\xbd\x85\xbe\x60\x57\x4b\x91\x60\x54\x85\xbf\x85\xc0", /* 5400 */ "\x85\xc1\x5a\x96\x85\xc2\x4a\x74\x4c\xf6\x85\xc3\x60\x5a\x85\xc4\x4d\xce\x4e\xa9\x4b\x96\x85\xc5\x57\x4c\x52\x9c\x4d\xf2\x50\xf3\x57\x62\x58\x93\x60\x58\x58\x65\x85\xc6\x51\xbf\x60\x59\x51\xef\x85\xc7\x85\xc8\x85\xc9\x4f\xfc\x85\xca\x51\x7f\x57\x6c\x59\xf6\x4c\x6d\x60\x61\x85\xcb\x60\x64\x85\xcc\x85\xcd\x4c\x92\x48\xc8\x4b\xd5\x4c\x74\x85\xce\x4d\xab\x56\xfc\x50\x74\x56\x51\x53\xf3\x85\xcf\x5b\xa7\x60\x65\x85\xd0\x57\xe1\x4a\x53\x85\xd1\x85\xd2\x57\xfb\x4a\xb4\x85\xd3\x57\xc6\x4d\xef\x85\xd4\x57\xe0\x85\xd5\x59\x5d\x85\xd6\x85\xd7\x60\x60\x85\xd8\x85\xd9\x4a\xf3\x85\xda\x4a\x6a\x85\xdb\x4c\xe5\x60\x5b\x85\xdc\x85\xdd\x85\xde\x85\xdf\x52\xc4\x85\xe0\x60\x5c\x60\x5d\x60\x5e\x53\x5b\x60\x5f\x60\x62\x5a\xb0\x60\x63\x85\xe1\x54\x5a\x57\xd7\x85\xe2\x85\xe3\x85\xe4\x85\xe5\x85\xe6\x52\xd7\x85\xe7\x60\x6a\x85\xe8\x60\x6f\x85\xe9\x5b\xdb\x85\xea\x85\xeb\x85\xec\x85\xed\x85\xee\x85\xef\x85\xf0\x85\xf1\x60\x69\x60\x7a\x57\xb5\x85\xf2\x4d\xc6\x60\x6e\x60\x68\x53\x7e\x85\xf3\x85\xf4\x55\x8c\x4d\xf3\x52\x9d\x85\xf5\x85\xf6", /* 5480 */ "\x4f\xd6\x85\xf7\x60\x66\x85\xf8\x60\x6d\x85\xf9\x53\x78\x85\xfa\x85\xfb\x85\xfc\x85\xfd\x5b\x46\x4d\xcc\x86\x41\x4f\xcb\x5a\x5d\x4c\xbf\x86\x42\x5b\xe3\x86\x43\x60\x67\x4d\x5e\x50\x47\x86\x44\x86\x45\x51\x9d\x60\x6b\x60\x6c\x86\x46\x60\x70\x86\x47\x86\x48\x86\x49\x86\x4a\x86\x4b\x60\x7b\x60\x86\x86\x4c\x60\x77\x60\x76\x5c\x69\x60\x84\x60\x85\x63\x8c\x59\xa6\x60\x72\x86\x4d\x50\x49\x86\x4e\x5a\xda\x86\x4f\x50\x68\x60\x74\x86\x50\x86\x51\x86\x52\x58\x6c\x86\x53\x86\x54\x60\x7d\x86\x55\x59\x6a\x86\x56\x60\x7e\x48\xa6\x53\xb6\x60\x73\x86\x57\x4d\xe4\x86\x58\x4b\xde\x57\x7b\x4d\x9f\x5a\xd4\x86\x59\x86\x5a\x60\x7f\x58\x8d\x48\xa4\x60\x88\x60\x71\x59\x66\x60\x75\x60\x78\x60\x79\x60\x7c\x86\x5b\x4e\x49\x86\x5c\x60\x81\x60\x82\x86\x5d\x60\x83\x60\x87\x60\x89\x5a\x54\x86\x5e\x86\x5f\x86\x60\x86\x61\x86\x62\x4c\xe6\x53\x56\x60\x8b\x55\x7a\x51\x48\x52\xc3\x86\x63\x86\x64\x50\x7e\x58\x99\x86\x65\x86\x66\x86\x67\x5b\x7c\x60\x8f\x86\x68\x86\x69\x86\x6a\x86\x6b\x86\x6c\x86\x6d\x49\xb7\x86\x6e\x4d\xde\x60\x8d\x86\x6f\x5e\x61", /* 5500 */ "\x86\x70\x59\x85\x86\x71\x86\x72\x86\x73\x86\x74\x56\x95\x4a\xbc\x86\x75\x48\xa5\x86\x76\x86\x77\x86\x78\x86\x79\x86\x7a\x60\x92\x56\xc5\x60\x93\x86\x7b\x86\x7c\x60\x8e\x86\x7d\x86\x7e\x86\x7f\x86\x81\x86\x82\x86\x83\x60\x8a\x86\x84\x86\x85\x86\x86\x86\x87\x60\x8c\x86\x88\x60\x90\x60\x91\x4e\x5d\x86\x89\x86\x8a\x60\x94\x86\x8b\x86\x8c\x60\x95\x86\x8d\x4e\x43\x86\x8e\x55\xda\x57\xa7\x60\xa6\x4a\x4a\x86\x8f\x60\xa5\x86\x90\x86\x91\x86\x92\x60\xa0\x86\x93\x86\x94\x86\x95\x86\x96\x60\x9f\x86\x97\x57\x79\x60\x9d\x86\x98\x60\x9b\x86\x99\x50\x70\x5c\x64\x86\x9a\x55\x6c\x86\x9b\x86\x9c\x60\x99\x48\xa0\x86\x9d\x86\x9e\x86\x9f\x86\xa0\x86\xa1\x60\x9e\x86\xa2\x86\xa3\x86\xa4\x86\xa5\x60\x9c\x60\xa1\x86\xa6\x86\xa7\x86\xa8\x86\xa9\x86\xaa\x60\xa7\x86\xab\x86\xac\x86\xad\x86\xae\x4c\x68\x86\xaf\x86\xb0\x53\xa0\x55\x56\x50\xb1\x60\x96\x86\xb1\x86\xb2\x53\x5e\x86\xb3\x5c\xc3\x60\x9a\x52\xf5\x86\xb4\x86\xb5\x86\xb6\x86\xb7\x86\xb8\x86\xb9\x60\xa2\x60\xa3\x60\xa4\x58\xa4\x86\xba\x86\xbb\x60\xb3\x56\xe3\x86\xbc\x60\xb0\x86\xbd", /* 5580 */ "\x50\x46\x60\xae\x57\xb8\x60\xaa\x55\x66\x86\xbe\x86\xbf\x50\xad\x60\xad\x4d\xec\x4d\xaf\x60\xa8\x86\xc0\x86\xc1\x86\xc2\x60\x97\x86\xc3\x60\xb2\x86\xc4\x86\xc5\x60\xb7\x86\xc6\x86\xc7\x86\xc8\x4a\xac\x60\xb8\x86\xc9\x86\xca\x58\x52\x4d\xc7\x86\xcb\x60\xaf\x86\xcc\x86\xcd\x86\xce\x86\xcf\x86\xd0\x86\xd1\x86\xd2\x58\xf9\x86\xd3\x86\xd4\x86\xd5\x86\xd6\x86\xd7\x86\xd8\x86\xd9\x86\xda\x86\xdb\x60\xab\x86\xdc\x5a\xfa\x86\xdd\x60\x98\x86\xde\x53\x88\x86\xdf\x60\xac\x86\xe0\x5a\x98\x86\xe1\x60\xb5\x60\xb6\x86\xe2\x86\xe3\x86\xe4\x86\xe5\x86\xe6\x60\xc3\x58\xe0\x86\xe7\x86\xe8\x86\xe9\x60\xbb\x86\xea\x86\xeb\x60\xc8\x60\xc9\x86\xec\x86\xed\x86\xee\x60\xbd\x60\xa9\x55\x44\x60\xc0\x86\xef\x60\xb1\x86\xf0\x86\xf1\x86\xf2\x86\xf3\x86\xf4\x55\xc7\x60\xc2\x86\xf5\x60\xb4\x86\xf6\x57\xca\x86\xf7\x56\x63\x60\xcc\x60\xc5\x60\xc1\x86\xf8\x60\xca\x86\xf9\x60\xb9\x60\xbe\x60\xbf\x86\xfa\x86\xfb\x60\xc4\x86\xfc\x86\xfd\x60\xc6\x60\xc7\x87\x41\x60\xcb\x87\x42\x60\xba\x87\x43\x87\x44\x87\x45\x87\x46\x87\x47\x56\x74\x60\xd4\x87\x48", /* 5600 */ "\x60\xd5\x60\xd1\x87\x49\x87\x4a\x87\x4b\x87\x4c\x87\x4d\x87\x4e\x60\xcf\x4e\xcd\x87\x4f\x87\x50\x60\xd0\x87\x51\x4c\xc1\x5c\xc4\x87\x52\x87\x53\x87\x54\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x58\xe9\x87\x5a\x87\x5b\x51\xee\x87\x5c\x87\x5d\x60\xce\x60\xbc\x87\x5e\x87\x5f\x87\x60\x60\xd3\x60\xd2\x87\x61\x87\x62\x60\xd6\x87\x63\x87\x64\x87\x65\x87\x66\x60\xdb\x60\xd7\x87\x67\x87\x68\x87\x69\x5b\xf5\x4a\x50\x87\x6a\x5c\x8d\x87\x6b\x56\x5b\x87\x6c\x87\x6d\x60\xd9\x87\x6e\x57\xfa\x87\x6f\x87\x70\x87\x71\x4d\xd8\x87\x72\x87\x73\x87\x74\x87\x75\x87\x76\x87\x77\x87\x78\x87\x79\x87\x7a\x87\x7b\x87\x7c\x87\x7d\x60\xe0\x60\xdc\x59\xac\x87\x7e\x87\x7f\x87\x81\x87\x82\x87\x83\x60\xe1\x87\x84\x87\x85\x60\xda\x60\xd8\x60\xde\x87\x86\x87\x87\x60\xdf\x87\x88\x87\x89\x87\x8a\x87\x8b\x87\x8c\x60\xdd\x87\x8d\x60\xe3\x87\x8e\x87\x8f\x87\x90\x53\xf6\x5c\xab\x5a\xea\x60\xe5\x55\xc8\x87\x91\x87\x92\x87\x93\x87\x94\x60\xe4\x87\x95\x87\x96\x87\x97\x87\x98\x4c\xc0\x87\x99\x87\x9a\x87\x9b\x87\x9c\x60\xe6\x60\xe7\x87\x9d\x87\x9e\x87\x9f", /* 5680 */ "\x87\xa0\x87\xa1\x87\xa2\x87\xa3\x87\xa4\x60\xe8\x60\xe2\x87\xa5\x87\xa6\x87\xa7\x87\xa8\x87\xa9\x87\xaa\x87\xab\x4d\xbe\x56\xe6\x87\xac\x87\xad\x87\xae\x60\xe9\x87\xaf\x87\xb0\x87\xb1\x87\xb2\x87\xb3\x87\xb4\x87\xb5\x87\xb6\x87\xb7\x87\xb8\x87\xb9\x87\xba\x87\xbb\x87\xbc\x87\xbd\x58\x9a\x87\xbe\x87\xbf\x87\xc0\x87\xc1\x87\xc2\x87\xc3\x87\xc4\x87\xc5\x87\xc6\x87\xc7\x87\xc8\x60\xea\x87\xc9\x87\xca\x87\xcb\x87\xcc\x87\xcd\x87\xce\x87\xcf\x54\xc1\x87\xd0\x87\xd1\x87\xd2\x87\xd3\x4f\x60\x87\xd4\x87\xd5\x87\xd6\x87\xd7\x87\xd8\x87\xd9\x87\xda\x87\xdb\x87\xdc\x87\xdd\x87\xde\x87\xdf\x87\xe0\x52\xd1\x87\xe1\x87\xe2\x87\xe3\x87\xe4\x87\xe5\x87\xe6\x87\xe7\x87\xe8\x87\xe9\x60\xeb\x87\xea\x87\xeb\x60\xec\x87\xec\x87\xed\x54\x95\x56\x64\x87\xee\x60\xed\x4e\x78\x5c\xb5\x59\xf1\x60\xee\x57\x65\x87\xef\x4b\xd9\x87\xf0\x87\xf1\x87\xf2\x87\xf3\x87\xf4\x87\xf5\x60\xf0\x87\xf6\x5a\xaf\x87\xf7\x87\xf8\x50\xa6\x4a\xd0\x87\xf9\x87\xfa\x57\xa6\x60\xef\x87\xfb\x87\xfc\x87\xfd\x60\xf1\x4d\x6c\x88\x41\x88\x42\x4d\x9b\x57\x5c\x60\xf2", /* 5700 */ "\x88\x43\x88\x44\x88\x45\x53\xd3\x60\xf3\x88\x46\x5a\xb1\x88\x47\x54\xa5\x60\xf5\x60\xf4\x88\x48\x88\x49\x88\x4a\x88\x4b\x88\x4c\x88\x4d\x88\x4e\x88\x4f\x88\x50\x88\x51\x88\x52\x88\x53\x88\x54\x88\x55\x88\x56\x88\x57\x88\x58\x60\xf6\x88\x59\x88\x5a\x57\x61\x88\x5b\x88\x5c\x88\x5d\x55\xa4\x88\x5e\x88\x5f\x88\x60\x88\x61\x5a\xd9\x5e\x77\x5e\x79\x88\x62\x5e\x78\x4d\x88\x5e\x7c\x5e\x7d\x4b\x78\x88\x63\x88\x64\x5e\x7a\x88\x65\x88\x66\x88\x67\x88\x68\x88\x69\x5e\x7b\x4a\x41\x5e\x7f\x88\x6a\x88\x6b\x4e\x99\x88\x6c\x5b\xb6\x88\x6d\x5e\x81\x88\x6e\x88\x6f\x88\x70\x88\x71\x4f\xf8\x88\x72\x88\x73\x4c\x5b\x88\x74\x5e\x70\x56\xad\x50\x52\x4e\x55\x5c\x99\x50\x73\x88\x75\x88\x76\x88\x77\x88\x78\x88\x79\x50\x8a\x88\x7a\x88\x7b\x4e\xe0\x56\xb2\x5e\x7e\x48\xd2\x57\xea\x4c\x78\x5c\x59\x53\xc1\x88\x7c\x88\x7d\x50\xa3\x88\x7e\x56\xb8\x88\x7f\x5e\x88\x5e\x82\x53\xb9\x5e\x84\x88\x81\x5e\x89\x88\x82\x53\x98\x88\x83\x88\x84\x88\x85\x5e\x8b\x88\x86\x88\x87\x5e\x8a\x50\x60\x88\x88\x88\x89\x88\x8a\x5e\x87\x5e\x86\x88\x8b\x88\x8c\x88\x8d", /* 5780 */ "\x88\x8e\x88\x8f\x4a\xb8\x50\xab\x51\xa1\x5e\x83\x5e\x85\x88\x90\x88\x91\x88\x92\x88\x93\x58\xcc\x5e\x8e\x88\x94\x88\x95\x88\x96\x88\x97\x88\x98\x50\xdc\x5e\x93\x88\x99\x88\x9a\x88\x9b\x88\x9c\x88\x9d\x88\x9e\x88\x9f\x4b\xe1\x88\xa0\x88\xa1\x88\xa2\x88\xa3\x5e\x94\x5e\x72\x4d\x58\x5a\xaa\x5e\x8d\x88\xa4\x50\x71\x5e\x91\x88\xa5\x5e\x71\x88\xa6\x4b\x87\x88\xa7\x5e\x8c\x50\x86\x88\xa8\x88\xa9\x88\xaa\x5e\x8f\x88\xab\x5e\x92\x88\xac\x88\xad\x88\xae\x5e\x9a\x88\xaf\x88\xb0\x88\xb1\x88\xb2\x88\xb3\x88\xb4\x88\xb5\x88\xb6\x88\xb7\x4d\x41\x48\xa2\x88\xb8\x88\xb9\x88\xba\x88\xbb\x88\xbc\x88\xbd\x88\xbe\x51\xf0\x88\xbf\x88\xc0\x4a\x67\x5e\x90\x88\xc1\x88\xc2\x5e\x99\x88\xc3\x53\xd1\x5e\x95\x88\xc4\x88\xc5\x5e\x96\x5e\x98\x5e\x97\x88\xc6\x88\xc7\x5e\x9f\x88\xc8\x5a\x93\x49\xb9\x88\xc9\x88\xca\x88\xcb\x5e\x9e\x88\xcc\x88\xcd\x88\xce\x88\xcf\x88\xd0\x88\xd1\x88\xd2\x88\xd3\x5e\xa3\x88\xd4\x5e\x9c\x88\xd5\x88\xd6\x88\xd7\x88\xd8\x5e\x9b\x88\xd9\x88\xda\x88\xdb\x5e\x9d\x53\x81\x4e\x9a\x88\xdc\x88\xdd\x5e\xa2\x88\xde\x88\xdf", /* 5800 */ "\x5e\xa4\x88\xe0\x56\xc2\x88\xe1\x88\xe2\x88\xe3\x4b\xd0\x5f\x60\x88\xe4\x88\xe5\x88\xe6\x5e\xa0\x88\xe7\x5e\xa1\x88\xe8\x88\xe9\x88\xea\x54\x55\x88\xeb\x88\xec\x88\xed\x4b\xe8\x88\xee\x88\xef\x88\xf0\x5e\xa6\x88\xf1\x88\xf2\x88\xf3\x88\xf4\x5e\xa5\x88\xf5\x5e\xa8\x49\x44\x88\xf6\x88\xf7\x4b\x6c\x88\xf8\x88\xf9\x88\xfa\x88\xfb\x88\xfc\x50\x50\x88\xfd\x89\x41\x89\x42\x89\x43\x89\x44\x59\x7f\x89\x45\x89\x46\x89\x47\x89\x48\x4b\xc1\x89\x49\x89\x4a\x89\x4b\x89\x4c\x89\x4d\x89\x4e\x89\x4f\x89\x50\x89\x51\x89\x52\x89\x53\x89\x54\x89\x55\x89\x56\x5e\xa7\x89\x57\x89\x58\x89\x59\x89\x5a\x89\x5b\x89\x5c\x89\x5d\x56\x9b\x66\x94\x89\x5e\x89\x5f\x89\x60\x56\x7c\x89\x61\x89\x62\x56\x9f\x89\x63\x89\x64\x89\x65\x56\xc0\x89\x66\x89\x67\x89\x68\x89\x69\x89\x6a\x54\xfa\x89\x6b\x89\x6c\x89\x6d\x89\x6e\x89\x6f\x89\x70\x5e\xa9\x89\x71\x89\x72\x89\x73\x89\x74\x89\x75\x56\xed\x5e\xaa\x89\x76\x89\x77\x89\x78\x89\x79\x89\x7a\x89\x7b\x89\x7c\x89\x7d\x89\x7e\x89\x7f\x89\x81\x89\x82\x89\x83\x89\x84\x89\x85\x89\x86\x89\x87\x5e\x73\x89\x88", /* 5880 */ "\x5e\xae\x5e\xab\x89\x89\x4f\xb2\x89\x8a\x55\xfa\x89\x8b\x89\x8c\x89\x8d\x5e\xac\x89\x8e\x89\x8f\x89\x90\x89\x91\x89\x92\x89\x93\x89\x94\x89\x95\x55\x6a\x52\xb8\x89\x96\x89\x97\x89\x98\x89\x99\x89\x9a\x54\x5d\x5e\xad\x89\x9b\x89\x9c\x89\x9d\x5a\xf5\x58\xe5\x89\x9e\x89\x9f\x89\xa0\x89\xa1\x89\xa2\x89\xa3\x89\xa4\x89\xa5\x52\xaa\x4b\xd4\x89\xa6\x89\xa7\x89\xa8\x89\xa9\x89\xaa\x89\xab\x89\xac\x89\xad\x89\xae\x89\xaf\x89\xb0\x89\xb1\x89\xb2\x89\xb3\x89\xb4\x89\xb5\x89\xb6\x89\xb7\x5e\x74\x89\xb8\x89\xb9\x89\xba\x89\xbb\x49\x7a\x89\xbc\x89\xbd\x89\xbe\x5e\x75\x89\xbf\x89\xc0\x89\xc1\x89\xc2\x89\xc3\x89\xc4\x89\xc5\x89\xc6\x89\xc7\x89\xc8\x89\xc9\x5e\x76\x89\xca\x89\xcb\x89\xcc\x4d\xbd\x89\xcd\x89\xce\x89\xcf\x89\xd0\x89\xd1\x89\xd2\x89\xd3\x89\xd4\x89\xd5\x89\xd6\x89\xd7\x89\xd8\x89\xd9\x89\xda\x54\xbf\x89\xdb\x89\xdc\x89\xdd\x89\xde\x89\xdf\x89\xe0\x55\xbe\x54\xc8\x89\xe1\x5c\x53\x89\xe2\x55\x9a\x89\xe3\x89\xe4\x50\x67\x89\xe5\x89\xe6\x4d\xf7\x89\xe7\x89\xe8\x59\xbb\x89\xe9\x89\xea\x89\xeb\x89\xec\x89\xed\x89\xee", /* 5900 */ "\x89\xef\x89\xf0\x61\xb9\x89\xf1\x4a\xa5\x89\xf2\x89\xf3\x49\x58\x89\xf4\x89\xf5\x89\xf6\x89\xf7\x89\xf8\x4c\xb3\x89\xf9\x58\x64\x89\xfa\x89\xfb\x89\xfc\x89\xfd\x5d\x88\x58\x46\x57\x83\x8a\x41\x8a\x42\x5d\x8e\x4b\xdf\x8a\x43\x59\xb8\x8a\x44\x8a\x45\x4d\x5b\x8a\x46\x8a\x47\x8a\x48\x8a\x49\x61\xb8\x61\xb6\x8a\x4a\x4a\xf2\x8a\x4b\x56\xeb\x56\xaa\x4c\x93\x8a\x4c\x5c\xb1\x59\x8c\x4d\xba\x8a\x4d\x55\xa6\x8a\x4e\x8a\x4f\x57\x57\x8a\x50\x8a\x51\x59\xc3\x50\x85\x4e\xcf\x4b\xe0\x8a\x52\x5f\xc4\x8a\x53\x8a\x54\x8a\x55\x8a\x56\x5f\xc5\x5e\x5c\x8a\x57\x59\x79\x8a\x58\x8a\x59\x53\xe5\x52\xcd\x4c\x8f\x8a\x5a\x4c\x7c\x8a\x5b\x8a\x5c\x50\x9d\x5c\x81\x8a\x5d\x53\xf4\x8a\x5e\x8a\x5f\x49\x5c\x5f\xc7\x4f\x51\x56\xd6\x5f\xc9\x8a\x60\x5f\xc8\x8a\x61\x8a\x62\x8a\x63\x8a\x64\x8a\x65\x4b\x8d\x8a\x66\x55\x7d\x8a\x67\x8a\x68\x48\xc1\x8a\x69\x8a\x6a\x8a\x6b\x8a\x6c\x8a\x6d\x8a\x6e\x8a\x6f\x8a\x70\x8a\x71\x8a\x72\x8a\x73\x8a\x74\x8a\x75\x53\x4e\x53\x4b\x8a\x76\x52\xcb\x8a\x77\x4e\xe8\x56\x9e\x8a\x78\x8a\x79\x8a\x7a\x4d\xc2\x8a\x7b\x8a\x7c", /* 5980 */ "\x8a\x7d\x63\x9a\x54\xe6\x63\x9b\x57\x9e\x8a\x7e\x5c\x51\x4c\xbd\x51\xe7\x8a\x7f\x54\xd0\x8a\x81\x8a\x82\x63\x9c\x8a\x83\x8a\x84\x8a\x85\x8a\x86\x4b\xc9\x4e\xca\x8a\x87\x8a\x88\x59\x9e\x63\xa0\x8a\x89\x52\x8f\x8a\x8a\x8a\x8b\x8a\x8c\x8a\x8d\x63\xa3\x8a\x8e\x8a\x8f\x8a\x90\x8a\x91\x63\x9f\x63\xa4\x57\x77\x8a\x92\x8a\x93\x4c\x61\x63\x9d\x63\x9e\x63\xa2\x8a\x94\x8a\x95\x52\xdc\x63\xa7\x8a\x96\x8a\x97\x63\xa6\x8a\x98\x8a\x99\x8a\x9a\x8a\x9b\x8a\x9c\x8a\x9d\x52\x63\x8a\x9e\x53\xdd\x8a\x9f\x8a\xa0\x63\xa9\x8a\xa1\x8a\xa2\x8a\xa3\x8a\xa4\x8a\xa5\x8a\xa6\x8a\xa7\x52\xb6\x8a\xa8\x8a\xa9\x8a\xaa\x63\xa1\x55\xbb\x8a\xab\x8a\xac\x8a\xad\x8a\xae\x4f\x84\x4d\x63\x63\xa5\x58\xd4\x57\xae\x8a\xaf\x8a\xb0\x63\xa8\x63\xaf\x8a\xb1\x59\xa5\x8a\xb2\x4f\x4a\x63\xac\x8a\xb3\x8a\xb4\x8a\xb5\x8a\xb6\x8a\xb7\x63\xae\x8a\xb8\x50\xd0\x8a\xb9\x8a\xba\x59\xcb\x8a\xbb\x8a\xbc\x8a\xbd\x4e\xa6\x8a\xbe\x8a\xbf\x8a\xc0\x8a\xc1\x8a\xc2\x8a\xc3\x8a\xc4\x8a\xc5\x8a\xc6\x8a\xc7\x8a\xc8\x8a\xc9\x63\xb0\x8a\xca\x59\xf5\x8a\xcb\x8a\xcc\x8a\xcd\x5c\x6b", /* 5a00 */ "\x8a\xce\x57\x9f\x8a\xcf\x57\x7e\x51\xa5\x63\xaa\x63\xab\x4f\x5f\x63\xad\x63\xb2\x8a\xd0\x8a\xd1\x63\xb1\x8a\xd2\x8a\xd3\x8a\xd4\x8a\xd5\x63\xb5\x8a\xd6\x63\xb7\x8a\xd7\x8a\xd8\x8a\xd9\x8a\xda\x52\xee\x8a\xdb\x8a\xdc\x8a\xdd\x52\xc7\x8a\xde\x8a\xdf\x4f\xe9\x55\x90\x8a\xe0\x8a\xe1\x63\xb6\x8a\xe2\x4b\xef\x8a\xe3\x8a\xe4\x8a\xe5\x52\x85\x8a\xe6\x8a\xe7\x8a\xe8\x8a\xe9\x8a\xea\x8a\xeb\x8a\xec\x5a\x8a\x63\xb3\x8a\xed\x63\xb4\x8a\xee\x54\xa1\x8a\xef\x8a\xf0\x8a\xf1\x8a\xf2\x8a\xf3\x63\xbc\x8a\xf4\x8a\xf5\x8a\xf6\x63\xb8\x8a\xf7\x8a\xf8\x8a\xf9\x8a\xfa\x8a\xfb\x53\xc4\x8a\xfc\x8a\xfd\x57\x92\x63\xba\x8b\x41\x8b\x42\x8b\x43\x8b\x44\x8b\x45\x8b\x46\x8b\x47\x8b\x48\x8b\x49\x8b\x4a\x63\xbb\x8b\x4b\x8b\x4c\x8b\x4d\x8b\x4e\x4e\x8a\x8b\x4f\x8b\x50\x8b\x51\x8b\x52\x8b\x53\x8b\x54\x8b\x55\x63\xbd\x8b\x56\x8b\x57\x8b\x58\x8b\x59\x63\xb9\x8b\x5a\x8b\x5b\x50\xb6\x8b\x5c\x8b\x5d\x8b\x5e\x8b\x5f\x8b\x60\x8b\x61\x8b\x62\x8b\x63\x8b\x64\x5a\x44\x63\xbe\x55\x95\x63\xc2\x8b\x65\x8b\x66\x63\xc3\x8b\x67\x8b\x68\x8b\x69\x8b\x6a\x58\xf5", /* 5a80 */ "\x8b\x6b\x8b\x6c\x8b\x6d\x8b\x6e\x8b\x6f\x8b\x70\x8b\x71\x8b\x72\x8b\x73\x8b\x74\x8b\x75\x8b\x76\x8b\x77\x8b\x78\x8b\x79\x8b\x7a\x8b\x7b\x8b\x7c\x52\x5d\x8b\x7d\x8b\x7e\x8b\x7f\x8b\x81\x8b\x82\x8b\x83\x8b\x84\x52\x64\x63\xc1\x8b\x85\x8b\x86\x8b\x87\x8b\x88\x8b\x89\x8b\x8a\x8b\x8b\x8b\x8c\x8b\x8d\x8b\x8e\x8b\x8f\x8b\x90\x8b\x91\x8b\x92\x63\xc0\x8b\x93\x8b\x94\x8b\x95\x8b\x96\x8b\x97\x8b\x98\x8b\x99\x63\xc6\x58\x51\x8b\x9a\x66\x95\x8b\x9b\x8b\x9c\x63\xc9\x8b\x9d\x8b\x9e\x8b\x9f\x8b\xa0\x8b\xa1\x63\xc4\x8b\xa2\x8b\xa3\x4e\xdd\x55\x49\x8b\xa4\x8b\xa5\x8b\xa6\x8b\xa7\x8b\xa8\x8b\xa9\x4e\xb4\x8b\xaa\x8b\xab\x58\x73\x8b\xac\x8b\xad\x8b\xae\x8b\xaf\x8b\xb0\x63\xc7\x8b\xb1\x63\xc8\x8b\xb2\x63\xcd\x8b\xb3\x63\xcf\x8b\xb4\x8b\xb5\x8b\xb6\x63\xd0\x8b\xb7\x8b\xb8\x8b\xb9\x63\xca\x4b\x75\x8b\xba\x63\xcb\x8b\xbb\x8b\xbc\x63\xce\x8b\xbd\x8b\xbe\x52\xda\x8b\xbf\x63\xc5\x8b\xc0\x8b\xc1\x8b\xc2\x8b\xc3\x8b\xc4\x63\xcc\x8b\xc5\x8b\xc6\x8b\xc7\x8b\xc8\x8b\xc9\x8b\xca\x8b\xcb\x8b\xcc\x8b\xcd\x8b\xce\x8b\xcf\x8b\xd0\x8b\xd1\x8b\xd2", /* 5b00 */ "\x8b\xd3\x8b\xd4\x8b\xd5\x8b\xd6\x8b\xd7\x8b\xd8\x8b\xd9\x8b\xda\x8b\xdb\x63\xd1\x8b\xdc\x8b\xdd\x8b\xde\x8b\xdf\x8b\xe0\x8b\xe1\x8b\xe2\x8b\xe3\x8b\xe4\x8b\xe5\x8b\xe6\x8b\xe7\x63\xd3\x63\xd2\x8b\xe8\x8b\xe9\x8b\xea\x8b\xeb\x8b\xec\x8b\xed\x8b\xee\x8b\xef\x8b\xf0\x8b\xf1\x8b\xf2\x8b\xf3\x8b\xf4\x8b\xf5\x8b\xf6\x8b\xf7\x8b\xf8\x8b\xf9\x8b\xfa\x8b\xfb\x8b\xfc\x8b\xfd\x8c\x41\x8c\x42\x8c\x43\x8c\x44\x63\xd4\x8c\x45\x5d\x99\x8c\x46\x8c\x47\x63\xd5\x8c\x48\x8c\x49\x8c\x4a\x8c\x4b\x8c\x4c\x8c\x4d\x8c\x4e\x8c\x4f\x63\xd6\x8c\x50\x8c\x51\x8c\x52\x8c\x53\x8c\x54\x8c\x55\x8c\x56\x8c\x57\x8c\x58\x8c\x59\x8c\x5a\x8c\x5b\x8c\x5c\x8c\x5d\x8c\x5e\x5c\x73\x63\xdc\x8c\x5f\x63\xdd\x50\x77\x5a\xcf\x8c\x60\x5c\x76\x4a\xe5\x56\x90\x63\xd9\x5c\xc2\x5c\x6e\x58\xa1\x8c\x61\x52\x6f\x8c\x62\x8c\x63\x63\xde\x4e\xbd\x4d\x62\x63\xda\x59\x47\x8c\x64\x8c\x65\x4d\xa1\x51\xce\x8c\x66\x5c\xaa\x8c\x67\x8c\x68\x8c\x69\x55\xea\x63\x8f\x8c\x6a\x63\xdb\x8c\x6b\x4c\x96\x8c\x6c\x8c\x6d\x8c\x6e\x8c\x6f\x54\xe5\x8c\x70\x8c\x71\x52\xf4\x8c\x72\x8c\x73", /* 5b80 */ "\x63\x52\x52\xfd\x8c\x74\x56\x9d\x63\x53\x5b\x4c\x8c\x75\x5a\x8f\x55\xd7\x48\xb1\x8c\x76\x56\x6e\x57\x8b\x8c\x77\x8c\x78\x4d\xe9\x8c\x79\x8c\x7a\x8c\x7b\x63\x55\x8c\x7c\x63\x54\x8c\x7d\x5c\x7a\x4d\x79\x5b\xe5\x4b\xa7\x57\x91\x59\xca\x49\x46\x55\xb4\x8c\x7e\x4a\x89\x55\x94\x50\x6d\x58\xfa\x55\xd1\x63\x56\x4e\x62\x8c\x7f\x8c\x81\x8c\x82\x58\x7c\x4d\x4c\x8c\x83\x8c\x84\x8c\x85\x8c\x86\x5a\xd6\x8c\x87\x8c\x88\x4d\xa5\x59\x88\x58\x9d\x4e\xd1\x8c\x89\x63\x57\x54\xdc\x8c\x8a\x8c\x8b\x8c\x8c\x50\x8e\x49\x97\x56\x7e\x8c\x8d\x8c\x8e\x4e\xc4\x8c\x8f\x4e\xc3\x59\xf9\x52\x7c\x50\x7c\x8c\x90\x8c\x91\x8c\x92\x8c\x93\x4c\xba\x8c\x94\x8c\x95\x8c\x96\x52\x62\x8c\x97\x4d\xad\x5a\xa1\x8c\x98\x8c\x99\x8c\x9a\x8c\x9b\x8c\x9c\x8c\x9d\x8c\x9e\x8c\x9f\x8c\xa0\x54\x7e\x52\xae\x49\xeb\x8c\xa1\x4d\x71\x8c\xa2\x8c\xa3\x63\x5b\x51\x68\x8c\xa4\x8c\xa5\x5b\x4f\x8c\xa6\x8c\xa7\x8c\xa8\x8c\xa9\x8c\xaa\x63\x5c\x8c\xab\x63\x5e\x8c\xac\x8c\xad\x8c\xae\x8c\xaf\x8c\xb0\x8c\xb1\x8c\xb2\x4a\xe6\x4b\xd3\x56\x62\x59\x50\x4b\x5c\x8c\xb3\x8c\xb4\x55\xd8", /* 5c00 */ "\x8c\xb5\x4c\x83\x8c\xb6\x8c\xb7\x55\x85\x8c\xb8\x4f\x4b\x8c\xb9\x8c\xba\x57\xbd\x5c\x91\x8c\xbb\x8c\xbc\x8c\xbd\x8c\xbe\x58\xa0\x8c\xbf\x55\x79\x8c\xc0\x8c\xc1\x4b\xfa\x63\xd7\x4e\xe1\x8c\xc2\x4a\x5e\x8c\xc3\x55\x70\x8c\xc4\x63\xd8\x4a\x42\x8c\xc5\x8c\xc6\x8c\xc7\x8c\xc8\x5f\xcb\x8c\xc9\x5a\x68\x5f\xcc\x8c\xca\x59\xa1\x8c\xcb\x8c\xcc\x8c\xcd\x8c\xce\x5f\xcd\x8c\xcf\x8c\xd0\x8c\xd1\x8c\xd2\x4f\xcc\x8c\xd3\x8c\xd4\x5f\xce\x8c\xd5\x8c\xd6\x8c\xd7\x55\xab\x59\xfb\x4a\x7f\x63\x8b\x52\xe0\x4f\xa0\x57\xb1\x52\xf1\x4f\xd5\x53\xa7\x49\xe2\x8c\xd8\x8c\xd9\x4f\xd2\x8c\xda\x8c\xdb\x54\x9d\x56\xea\x4f\x8d\x57\xdc\x8c\xdc\x8c\xdd\x55\xb9\x53\xc0\x63\x8d\x58\xbb\x8c\xde\x8c\xdf\x8c\xe0\x5b\x59\x8c\xe1\x8c\xe2\x8c\xe3\x63\x8e\x8c\xe4\x8c\xe5\x8c\xe6\x8c\xe7\x55\xf3\x8c\xe8\x57\x60\x51\xc4\x8c\xe9\x63\x90\x8c\xea\x51\xc3\x63\x91\x8c\xeb\x8c\xec\x8c\xed\x8c\xee\x8c\xef\x8c\xf0\x8c\xf1\x63\x99\x57\x6d\x8c\xf2\x55\x5d\x8c\xf3\x8c\xf4\x8c\xf5\x8c\xf6\x8c\xf7\x8c\xf8\x8c\xf9\x59\xd8\x61\x48\x8c\xfa\x8c\xfb\x8c\xfc\x8c\xfd\x5a\x8d", /* 5c80 */ "\x8d\x41\x56\x8b\x53\xf0\x8d\x42\x8d\x43\x8d\x44\x8d\x45\x8d\x46\x61\x4c\x8d\x47\x8d\x48\x8d\x49\x61\x47\x61\x49\x8d\x4a\x8d\x4b\x61\x4a\x61\x4f\x8d\x4c\x8d\x4d\x49\xec\x8d\x4e\x61\x4b\x4c\xd9\x61\x4d\x61\x4e\x61\x50\x4b\x5a\x61\x51\x8d\x4f\x8d\x50\x8d\x51\x8d\x52\x8d\x53\x61\x53\x61\x58\x8d\x54\x8d\x55\x8d\x56\x8d\x57\x8d\x58\x59\x72\x8d\x59\x61\x56\x61\x55\x51\x8c\x8d\x5a\x8d\x5b\x8d\x5c\x61\x57\x8d\x5d\x5a\xbf\x8d\x5e\x61\x52\x8d\x5f\x61\x5a\x48\xb5\x8d\x60\x8d\x61\x8d\x62\x8d\x63\x61\x54\x8d\x64\x50\x9a\x8d\x65\x61\x59\x8d\x66\x8d\x67\x61\x5b\x8d\x68\x8d\x69\x8d\x6a\x8d\x6b\x8d\x6c\x8d\x6d\x61\x5e\x8d\x6e\x8d\x6f\x8d\x70\x8d\x71\x8d\x72\x8d\x73\x61\x5c\x8d\x74\x8d\x75\x8d\x76\x8d\x77\x8d\x78\x8d\x79\x5b\xc4\x8d\x7a\x8d\x7b\x8d\x7c\x8d\x7d\x8d\x7e\x8d\x7f\x8d\x81\x58\x5f\x8d\x82\x8d\x83\x61\x5d\x61\x5f\x51\xcc\x8d\x84\x4b\xea\x8d\x85\x5a\x99\x8d\x86\x8d\x87\x54\x6d\x8d\x88\x8d\x89\x4c\x86\x8d\x8a\x8d\x8b\x8d\x8c\x8d\x8d\x8d\x8e\x8d\x8f\x8d\x90\x8d\x91\x8d\x92\x8d\x93\x4f\xfd\x8d\x94\x8d\x95\x8d\x96\x8d\x97", /* 5d00 */ "\x8d\x98\x8d\x99\x61\x60\x61\x61\x8d\x9a\x8d\x9b\x61\x67\x4a\x88\x8d\x9c\x8d\x9d\x8d\x9e\x8d\x9f\x8d\xa0\x8d\xa1\x53\xe8\x8d\xa2\x8d\xa3\x8d\xa4\x8d\xa5\x8d\xa6\x4a\xdd\x8d\xa7\x59\x62\x8d\xa8\x8d\xa9\x8d\xaa\x8d\xab\x61\x68\x8d\xac\x8d\xad\x61\x66\x8d\xae\x8d\xaf\x8d\xb0\x8d\xb1\x8d\xb2\x61\x65\x8d\xb3\x61\x63\x61\x62\x8d\xb4\x49\x60\x8d\xb5\x8d\xb6\x8d\xb7\x5b\x58\x61\x64\x8d\xb8\x8d\xb9\x8d\xba\x8d\xbb\x8d\xbc\x61\x6b\x8d\xbd\x8d\xbe\x8d\xbf\x8d\xc0\x8d\xc1\x8d\xc2\x8d\xc3\x8d\xc4\x61\x6c\x61\x6a\x8d\xc5\x8d\xc6\x8d\xc7\x8d\xc8\x8d\xc9\x8d\xca\x8d\xcb\x8d\xcc\x68\x9b\x8d\xcd\x8d\xce\x61\x73\x61\x72\x54\x56\x8d\xcf\x8d\xd0\x8d\xd1\x8d\xd2\x8d\xd3\x8d\xd4\x8d\xd5\x8d\xd6\x8d\xd7\x8d\xd8\x8d\xd9\x61\x69\x8d\xda\x8d\xdb\x61\x6e\x8d\xdc\x61\x70\x8d\xdd\x8d\xde\x8d\xdf\x8d\xe0\x8d\xe1\x8d\xe2\x8d\xe3\x8d\xe4\x8d\xe5\x8d\xe6\x8d\xe7\x61\x74\x8d\xe8\x61\x71\x61\x6d\x8d\xe9\x8d\xea\x61\x6f\x8d\xeb\x8d\xec\x8d\xed\x8d\xee\x61\x75\x8d\xef\x8d\xf0\x8d\xf1\x8d\xf2\x8d\xf3\x8d\xf4\x8d\xf5\x8d\xf6\x8d\xf7\x8d\xf8\x8d\xf9", /* 5d80 */ "\x8d\xfa\x8d\xfb\x61\x76\x8d\xfc\x8d\xfd\x8e\x41\x8e\x42\x8e\x43\x8e\x44\x8e\x45\x8e\x46\x8e\x47\x8e\x48\x8e\x49\x8e\x4a\x8e\x4b\x8e\x4c\x8e\x4d\x8e\x4e\x8e\x4f\x8e\x50\x8e\x51\x8e\x52\x8e\x53\x8e\x54\x61\x77\x8e\x55\x8e\x56\x8e\x57\x61\x78\x8e\x58\x8e\x59\x8e\x5a\x8e\x5b\x8e\x5c\x8e\x5d\x8e\x5e\x8e\x5f\x8e\x60\x8e\x61\x8e\x62\x8e\x63\x8e\x64\x8e\x65\x8e\x66\x8e\x67\x8e\x68\x8e\x69\x8e\x6a\x8e\x6b\x8e\x6c\x8e\x6d\x8e\x6e\x8e\x6f\x8e\x70\x61\x7a\x8e\x71\x8e\x72\x8e\x73\x8e\x74\x8e\x75\x8e\x76\x8e\x77\x8e\x78\x8e\x79\x8e\x7a\x8e\x7b\x8e\x7c\x8e\x7d\x61\x7b\x8e\x7e\x8e\x7f\x8e\x81\x8e\x82\x8e\x83\x8e\x84\x8e\x85\x57\xa0\x8e\x86\x8e\x87\x8e\x88\x8e\x89\x8e\x8a\x8e\x8b\x8e\x8c\x8e\x8d\x8e\x8e\x8e\x8f\x8e\x90\x8e\x91\x8e\x92\x64\x7d\x8e\x93\x4a\xa7\x5b\xdc\x8e\x94\x8e\x95\x59\x52\x4a\x52\x8e\x96\x8e\x97\x4d\x44\x5c\x94\x54\x69\x4f\xdd\x4d\x4e\x8e\x98\x57\xd6\x8e\x99\x8e\x9a\x49\xed\x5e\x6f\x8e\x9b\x4e\xb9\x59\xd0\x56\x68\x48\xcc\x8e\x9c\x8e\x9d\x58\x90\x8e\x9e\x8e\x9f\x8e\xa0\x8e\xa1\x8e\xa2\x5d\x84\x4f\x8e\x8e\xa3", /* 5e00 */ "\x8e\xa4\x49\x72\x55\xcf\x49\xbb\x8e\xa5\x56\x47\x4c\x4b\x8e\xa6\x55\xa5\x8e\xa7\x8e\xa8\x8e\xa9\x58\x43\x8e\xaa\x8e\xab\x60\xf7\x5b\x6a\x60\xfa\x8e\xac\x8e\xad\x60\xf9\x53\x61\x56\xfa\x8e\xae\x51\x51\x60\xf8\x5b\xe2\x49\xae\x5b\xc3\x4b\x7b\x8e\xaf\x8e\xb0\x8e\xb1\x8e\xb2\x8e\xb3\x8e\xb4\x8e\xb5\x8e\xb6\x4a\xf7\x5b\xa0\x8e\xb7\x8e\xb8\x8e\xb9\x8e\xba\x8e\xbb\x58\x4f\x48\xee\x8e\xbc\x8e\xbd\x60\xfb\x8e\xbe\x8e\xbf\x8e\xc0\x8e\xc1\x8e\xc2\x61\x41\x4a\x43\x8e\xc3\x8e\xc4\x60\xfc\x60\xfd\x52\x51\x8e\xc5\x8e\xc6\x8e\xc7\x8e\xc8\x52\x7d\x8e\xc9\x61\x42\x4c\x9a\x8e\xca\x8e\xcb\x8e\xcc\x8e\xcd\x8e\xce\x8e\xcf\x4e\x6f\x8e\xd0\x8e\xd1\x8e\xd2\x8e\xd3\x8e\xd4\x8e\xd5\x8e\xd6\x61\x43\x52\xba\x8e\xd7\x8e\xd8\x8e\xd9\x8e\xda\x8e\xdb\x61\x44\x8e\xdc\x8e\xdd\x61\x45\x8e\xde\x8e\xdf\x61\x46\x4a\xb0\x8e\xe0\x8e\xe1\x8e\xe2\x8e\xe3\x8e\xe4\x8e\xe5\x8e\xe6\x8e\xe7\x8e\xe8\x8e\xe9\x8e\xea\x8e\xeb\x8e\xec\x8e\xed\x8e\xee\x4c\xc8\x53\xbc\x52\xe9\x8e\xef\x49\xa1\x8e\xf0\x58\xd1\x8e\xf1\x64\x7b\x4e\x63\x5a\x77\x5a\x64\x8e\xf2\x4d\x84", /* 5e80 */ "\x61\xce\x8e\xf3\x8e\xf4\x8e\xf5\x5c\x4f\x8e\xf6\x54\x8d\x49\x73\x8e\xf7\x8e\xf8\x4a\xb1\x61\xd0\x8e\xf9\x8e\xfa\x8e\xfb\x58\xf1\x51\xad\x61\xcf\x8e\xfc\x50\x83\x5a\x46\x4b\x77\x61\xd1\x4b\x8b\x8e\xfd\x52\x8e\x4c\xfc\x8f\x41\x4c\xad\x8f\x42\x53\x73\x4c\x6f\x61\xd3\x8f\x43\x8f\x44\x8f\x45\x8f\x46\x61\xd2\x4b\xc7\x5c\x9a\x8f\x47\x8f\x48\x8f\x49\x8f\x4a\x8f\x4b\x57\x45\x8f\x4c\x8f\x4d\x8f\x4e\x8f\x4f\x8f\x50\x61\xd7\x8f\x51\x61\xd5\x55\xfb\x50\x55\x5a\x59\x61\xd4\x8f\x52\x8f\x53\x8f\x54\x8f\x55\x61\xd6\x8f\x56\x8f\x57\x8f\x58\x8f\x59\x8f\x5a\x8f\x5b\x8f\x5c\x8f\x5d\x8f\x5e\x8f\x5f\x51\x4e\x50\xc7\x8f\x60\x8f\x61\x8f\x62\x8f\x63\x8f\x64\x8f\x65\x61\xda\x61\xd9\x50\xa9\x8f\x66\x8f\x67\x51\x6e\x8f\x68\x8f\x69\x8f\x6a\x8f\x6b\x61\xdb\x8f\x6c\x8f\x6d\x8f\x6e\x8f\x6f\x8f\x70\x8f\x71\x8f\x72\x8f\x73\x8f\x74\x8f\x75\x8f\x76\x8f\x77\x61\xdc\x8f\x78\x61\xdd\x8f\x79\x8f\x7a\x8f\x7b\x8f\x7c\x8f\x7d\x8f\x7e\x8f\x7f\x8f\x81\x8f\x82\x5e\x68\x8f\x83\x59\x73\x57\x42\x8f\x84\x8f\x85\x4f\x48\x8f\x86\x8f\x87\x8f\x88\x5f\xc2\x5c\xa4", /* 5f00 */ "\x50\x4a\x5e\x6d\x59\xeb\x53\xf9\x53\x4a\x8f\x89\x8f\x8a\x8f\x8b\x5f\xc3\x8f\x8c\x49\x77\x60\x4e\x8f\x8d\x8f\x8e\x8f\x8f\x55\xbc\x8f\x90\x60\x51\x8f\x91\x4d\x4d\x8f\x92\x59\xfc\x8f\x93\x4c\xa4\x4d\xea\x8f\x94\x8f\x95\x4a\x7a\x8f\x96\x8f\x97\x8f\x98\x4b\x7c\x5b\x65\x8f\x99\x8f\x9a\x8f\x9b\x8f\x9c\x52\x76\x58\x72\x4e\x41\x8f\x9d\x63\x94\x63\x93\x8f\x9e\x8f\x9f\x63\x95\x8f\xa0\x57\x85\x8f\xa1\x54\xf4\x8f\xa2\x8f\xa3\x8f\xa4\x8f\xa5\x8f\xa6\x8f\xa7\x8f\xa8\x4b\x4f\x54\x5f\x8f\xa9\x63\x97\x8f\xaa\x8f\xab\x8f\xac\x66\xaf\x8f\xad\x8f\xae\x8f\xaf\x8f\xb0\x8f\xb1\x8f\xb2\x8f\xb3\x8f\xb4\x8f\xb5\x8f\xb6\x8f\xb7\x8f\xb8\x8f\xb9\x8f\xba\x8f\xbb\x63\x87\x8f\xbc\x4d\x8a\x4b\x51\x8f\xbd\x51\xbb\x63\x89\x63\x88\x63\x8a\x8f\xbe\x8f\xbf\x8f\xc0\x8f\xc1\x59\xcc\x8f\xc2\x8f\xc3\x8f\xc4\x61\x8b\x58\xcd\x8f\xc5\x57\x4e\x8f\xc6\x59\x86\x8f\xc7\x8f\xc8\x49\xc9\x49\x8c\x8f\xc9\x49\x93\x53\x8e\x8f\xca\x8f\xcb\x5b\x63\x5a\x50\x8f\xcc\x61\x7c\x8f\xcd\x8f\xce\x8f\xcf\x61\x7d\x8f\xd0\x59\xda\x8f\xd1\x4a\x59\x49\x6b\x8f\xd2\x8f\xd3\x8f\xd4", /* 5f80 */ "\x57\x9a\x5b\x98\x61\x7e\x8f\xd5\x4f\xb5\x4a\xfc\x8f\xd6\x61\x7f\x4d\xdb\x61\x81\x4e\x52\x51\xc8\x61\x82\x8f\xd7\x8f\xd8\x8f\xd9\x58\xeb\x8f\xda\x57\x5d\x8f\xdb\x8f\xdc\x61\x83\x8f\xdd\x4b\x63\x53\x67\x61\x84\x8f\xde\x8f\xdf\x61\x85\x8f\xe0\x8f\xe1\x8f\xe2\x8f\xe3\x5a\x9a\x8f\xe4\x8f\xe5\x8f\xe6\x8f\xe7\x8f\xe8\x8f\xe9\x61\x86\x8f\xea\x59\x4d\x8f\xeb\x8f\xec\x61\x87\x57\xa1\x8f\xed\x8f\xee\x8f\xef\x8f\xf0\x8f\xf1\x8f\xf2\x61\x88\x8f\xf3\x4b\x62\x8f\xf4\x8f\xf5\x8f\xf6\x8f\xf7\x61\x89\x4e\x75\x8f\xf8\x8f\xf9\x8f\xfa\x8f\xfb\x8f\xfc\x58\xc3\x61\xdf\x49\x78\x59\xe3\x8f\xfd\x90\x41\x61\xe0\x90\x42\x90\x43\x4e\xc8\x54\xcb\x90\x44\x61\xe2\x66\xfd\x66\xfc\x60\x4f\x90\x45\x90\x46\x90\x47\x61\xe1\x5b\xbd\x57\x9d\x52\x46\x90\x48\x90\x49\x90\x4a\x62\x63\x90\x4b\x90\x4c\x5b\xd1\x61\xe6\x90\x4d\x90\x4e\x61\xe7\x90\x4f\x90\x50\x5a\x67\x90\x51\x90\x52\x61\xeb\x50\x8d\x90\x53\x61\xec\x61\xe4\x90\x54\x90\x55\x4a\x60\x90\x56\x90\x57\x90\x58\x52\xed\x90\x59\x90\x5a\x61\xed\x90\x5b\x90\x5c\x58\xc2\x90\x5d\x4d\xf5\x61\xe8\x4c\x7e", /* 6000 */ "\x4e\x53\x56\xab\x56\x6b\x61\xe3\x61\xe5\x61\xe9\x61\xea\x90\x5e\x90\x5f\x90\x60\x61\xf6\x90\x61\x90\x62\x61\xf3\x5a\xf4\x61\xf2\x90\x63\x90\x64\x53\x4d\x90\x65\x5b\x9b\x53\x62\x49\xbf\x90\x66\x90\x67\x61\xee\x90\x68\x61\xf1\x51\x4f\x56\x5c\x90\x69\x90\x6a\x4b\x41\x61\xf8\x90\x6b\x90\x6c\x90\x6d\x4e\xb0\x61\xf0\x58\xd3\x5a\xb8\x61\xf4\x4d\x76\x61\xf5\x90\x6e\x90\x6f\x90\x70\x54\x73\x90\x71\x90\x72\x90\x73\x90\x74\x90\x75\x61\xef\x90\x76\x90\x77\x90\x78\x90\x79\x90\x7a\x5c\x7c\x67\x41\x90\x7b\x90\x7c\x61\xf7\x90\x7d\x67\x45\x61\xfd\x55\xd0\x90\x7e\x90\x7f\x90\x81\x90\x82\x90\x83\x90\x84\x90\x85\x51\x55\x90\x86\x4e\x70\x90\x87\x90\x88\x50\x76\x90\x89\x4d\xe2\x90\x8a\x90\x8b\x56\x41\x90\x8c\x90\x8d\x90\x8e\x67\x46\x67\x43\x90\x8f\x90\x90\x67\x42\x90\x91\x90\x92\x90\x93\x90\x94\x4e\x76\x67\x47\x58\xf3\x90\x95\x90\x96\x67\x44\x4d\xdd\x4b\xf6\x62\x41\x4b\xb1\x56\xf0\x4d\x47\x90\x97\x58\x42\x54\x41\x90\x98\x90\x99\x50\x72\x90\x9a\x90\x9b\x4b\xf0\x90\x9c\x61\xf9\x61\xfa\x61\xfc\x61\xfb\x52\xd4\x62\x42\x90\x9d\x5a\x61", /* 6080 */ "\x90\x9e\x90\x9f\x90\xa0\x62\x47\x54\x64\x90\xa1\x90\xa2\x90\xa3\x90\xa4\x58\x44\x90\xa5\x90\xa6\x62\x49\x4d\xb6\x90\xa7\x90\xa8\x90\xa9\x90\xaa\x62\x48\x90\xab\x4e\x7a\x90\xac\x62\x43\x90\xad\x90\xae\x90\xaf\x62\x44\x62\x4a\x90\xb0\x62\x46\x90\xb1\x57\xf1\x5a\x66\x90\xb2\x90\xb3\x4e\x5c\x90\xb4\x90\xb5\x5a\xc2\x90\xb6\x52\xf9\x90\xb7\x90\xb8\x67\x48\x58\xfb\x62\x45\x90\xb9\x52\x96\x90\xba\x62\x4d\x49\x4f\x90\xbb\x62\x52\x90\xbc\x90\xbd\x90\xbe\x4e\xc1\x90\xbf\x90\xc0\x62\x4c\x4b\x5f\x90\xc1\x90\xc2\x90\xc3\x90\xc4\x90\xc5\x90\xc6\x90\xc7\x90\xc8\x54\x8a\x62\x50\x90\xc9\x90\xca\x90\xcb\x4f\xa9\x57\x90\x90\xcc\x90\xcd\x90\xce\x90\xcf\x90\xd0\x4e\x94\x90\xd1\x90\xd2\x90\xd3\x56\xe7\x90\xd4\x90\xd5\x62\x4f\x90\xd6\x62\x51\x90\xd7\x58\x47\x62\x4e\x90\xd8\x57\xa8\x4e\x7d\x90\xd9\x90\xda\x90\xdb\x90\xdc\x90\xdd\x4b\x8c\x4f\xe4\x49\xd1\x4a\x6d\x90\xde\x49\x59\x62\x4b\x49\xd0\x4b\x4c\x4d\x7f\x4b\xe7\x90\xdf\x90\xe0\x58\x8c\x62\x57\x90\xe1\x4e\x6c\x90\xe2\x90\xe3\x54\xc6\x58\xc9\x90\xe4\x90\xe5\x90\xe6\x90\xe7\x90\xe8", /* 6100 */ "\x62\x58\x4a\x8f\x90\xe9\x90\xea\x90\xeb\x90\xec\x67\x49\x90\xed\x5a\x9b\x5a\x85\x90\xee\x90\xef\x90\xf0\x67\x4a\x62\x59\x59\xe1\x90\xf1\x90\xf2\x90\xf3\x90\xf4\x90\xf5\x62\x55\x90\xf6\x90\xf7\x90\xf8\x90\xf9\x5a\x7e\x90\xfa\x90\xfb\x90\xfc\x90\xfd\x4c\xcf\x62\x53\x91\x41\x91\x42\x62\x56\x4c\x7f\x91\x43\x62\x54\x50\xa1\x91\x44\x91\x45\x91\x46\x62\x5a\x91\x47\x91\x48\x91\x49\x91\x4a\x91\x4b\x91\x4c\x91\x4d\x91\x4e\x91\x4f\x91\x50\x91\x51\x91\x52\x91\x53\x91\x54\x91\x55\x91\x56\x91\x57\x91\x58\x91\x59\x5a\xb7\x91\x5a\x91\x5b\x91\x5c\x91\x5d\x91\x5e\x91\x5f\x91\x60\x91\x61\x4a\xc7\x91\x62\x62\x5b\x91\x63\x4e\x65\x91\x64\x55\x98\x91\x65\x91\x66\x55\x86\x91\x67\x91\x68\x91\x69\x52\xbc\x91\x6a\x91\x6b\x91\x6c\x91\x6d\x91\x6e\x91\x6f\x91\x70\x67\x4b\x91\x71\x91\x72\x91\x73\x91\x74\x51\xfc\x91\x75\x91\x76\x91\x77\x91\x78\x4e\x7b\x50\x4e\x91\x79\x91\x7a\x91\x7b\x91\x7c\x91\x7d\x91\x7e\x91\x7f\x57\xbe\x91\x81\x91\x82\x91\x83\x91\x84\x62\x5c\x91\x85\x50\x56\x91\x86\x91\x87\x91\x88\x91\x89\x91\x8a\x91\x8b\x91\x8c\x91\x8d", /* 6180 */ "\x91\x8e\x91\x8f\x91\x90\x91\x91\x91\x92\x91\x93\x91\x94\x91\x95\x91\x96\x91\x97\x91\x98\x49\x90\x91\x99\x91\x9a\x5a\xf6\x91\x9b\x91\x9c\x91\x9d\x91\x9e\x91\x9f\x62\x5e\x91\xa0\x91\xa1\x91\xa2\x91\xa3\x91\xa4\x91\xa5\x91\xa6\x91\xa7\x67\x4d\x91\xa8\x91\xa9\x91\xaa\x91\xab\x91\xac\x91\xad\x91\xae\x91\xaf\x91\xb0\x62\x5f\x4d\xa8\x67\x4c\x91\xb1\x91\xb2\x62\x5d\x91\xb3\x91\xb4\x91\xb5\x91\xb6\x91\xb7\x91\xb8\x91\xb9\x91\xba\x91\xbb\x91\xbc\x62\x60\x91\xbd\x91\xbe\x91\xbf\x91\xc0\x91\xc1\x91\xc2\x4d\xb5\x91\xc3\x91\xc4\x91\xc5\x4b\xad\x91\xc6\x91\xc7\x91\xc8\x91\xc9\x91\xca\x58\xb7\x91\xcb\x48\xc2\x67\x4e\x91\xcc\x91\xcd\x91\xce\x91\xcf\x91\xd0\x67\x4f\x50\xc0\x91\xd1\x62\x61\x91\xd2\x91\xd3\x91\xd4\x91\xd5\x91\xd6\x91\xd7\x91\xd8\x91\xd9\x91\xda\x91\xdb\x91\xdc\x91\xdd\x91\xde\x91\xdf\x91\xe0\x91\xe1\x91\xe2\x53\x53\x91\xe3\x91\xe4\x91\xe5\x91\xe6\x91\xe7\x91\xe8\x91\xe9\x91\xea\x91\xeb\x91\xec\x91\xed\x91\xee\x91\xef\x91\xf0\x62\x62\x91\xf1\x91\xf2\x91\xf3\x91\xf4\x91\xf5\x91\xf6\x91\xf7\x91\xf8\x91\xf9\x5e\xb1", /* 6200 */ "\x91\xfa\x91\xfb\x91\xfc\x91\xfd\x92\x41\x92\x42\x67\x50\x92\x43\x4c\xe9\x92\x44\x57\xeb\x65\xa6\x58\xe6\x55\xf8\x54\xd5\x58\x57\x4a\x69\x57\xd1\x4f\x85\x92\x45\x92\x46\x62\x7e\x4e\x93\x65\xa7\x5b\x5d\x92\x47\x53\xdc\x65\xa8\x92\x48\x92\x49\x92\x4a\x65\xa9\x92\x4b\x65\xab\x65\xaa\x92\x4c\x65\xad\x65\xac\x92\x4d\x92\x4e\x92\x4f\x92\x50\x4f\x78\x92\x51\x65\xae\x92\x52\x51\xbd\x92\x53\x92\x54\x92\x55\x92\x56\x4a\xc0\x4a\xf6\x92\x57\x92\x58\x4e\x47\x92\x59\x92\x5a\x92\x5b\x92\x5c\x92\x5d\x66\xe5\x66\xe4\x4c\x5f\x56\x9a\x49\x83\x92\x5e\x66\xe6\x92\x5f\x92\x60\x92\x61\x55\x68\x66\xe7\x66\xe8\x92\x62\x55\xd5\x5f\xcf\x49\xc4\x5a\xf9\x92\x63\x92\x64\x53\xca\x48\xc6\x4a\xf1\x54\xd2\x92\x65\x92\x66\x92\x67\x57\x70\x92\x68\x92\x69\x50\x58\x92\x6a\x92\x6b\x92\x6c\x92\x6d\x92\x6e\x92\x6f\x92\x70\x50\x7b\x92\x71\x92\x72\x54\x44\x5b\xb3\x92\x73\x50\xa8\x5f\xd0\x55\x48\x59\x90\x53\x44\x48\xe6\x4a\x56\x54\xc4\x92\x74\x92\x75\x48\xe1\x92\x76\x92\x77\x4c\x97\x92\x78\x92\x79\x53\x9b\x92\x7a\x92\x7b\x4b\xf2\x92\x7c\x5b\x72\x4a\x70", /* 6280 */ "\x4e\xbb\x92\x7d\x92\x7e\x92\x7f\x4a\x4d\x92\x81\x92\x82\x92\x83\x92\x84\x4f\xf0\x48\xd0\x92\x85\x92\x86\x92\x87\x92\x88\x92\x89\x92\x8a\x59\xd5\x55\xe2\x5c\x45\x92\x8b\x57\x56\x4b\xb5\x50\x59\x5b\x7b\x92\x8c\x4c\xa6\x53\x77\x92\x8d\x92\x8e\x92\x8f\x5f\xd1\x50\x79\x51\xd4\x54\x60\x92\x90\x4e\x44\x49\x48\x92\x91\x92\x92\x53\x8b\x92\x93\x92\x94\x53\x9c\x56\xa6\x92\x95\x92\x96\x92\x97\x92\x98\x49\x47\x92\x99\x92\x9a\x92\x9b\x4b\x76\x92\x9c\x92\x9d\x92\x9e\x52\xa7\x92\x9f\x5f\xd2\x59\x5a\x4a\x8a\x92\xa0\x52\x93\x92\xa1\x92\xa2\x4c\x98\x92\xa3\x5b\xf3\x4b\x43\x49\xef\x52\xb3\x52\xe8\x50\xac\x5f\xd3\x92\xa4\x48\xe7\x53\x64\x51\x81\x92\xa5\x4d\x75\x92\xa6\x4f\xdb\x57\x78\x48\xcd\x92\xa7\x57\x6f\x5f\xd5\x4f\xcf\x5c\x5e\x5f\xd4\x5b\x70\x48\xdc\x92\xa8\x92\xa9\x52\xe1\x92\xaa\x92\xab\x51\xa2\x4e\xef\x92\xac\x5a\x55\x50\xb8\x53\x41\x49\xa5\x5a\xf0\x92\xad\x92\xae\x50\xa7\x55\xc2\x5f\xd6\x5b\x9d\x92\xaf\x4d\x50\x92\xb0\x54\xac\x56\x49\x92\xb1\x5f\xd8\x50\x5d\x92\xb2\x92\xb3\x92\xb4\x92\xb5\x53\xb3\x5c\x47\x55\xaf\x52\xc2", /* 6300 */ "\x92\xb6\x4a\x76\x4d\x72\x92\xb7\x92\xb8\x92\xb9\x92\xba\x5b\xb7\x65\xfb\x48\xb3\x92\xbb\x92\xbc\x92\xbd\x92\xbe\x50\x87\x92\xbf\x92\xc0\x56\xf3\x92\xc1\x92\xc2\x92\xc3\x92\xc4\x57\x7a\x92\xc5\x92\xc6\x92\xc7\x5b\xbe\x51\xcd\x92\xc8\x57\xcd\x56\xa1\x58\xad\x52\xd2\x4b\x52\x5f\xd7\x5b\x96\x4e\xb6\x4e\x73\x92\xc9\x92\xca\x48\xa3\x92\xcb\x53\x52\x4a\xeb\x92\xcc\x92\xcd\x92\xce\x5b\x92\x92\xcf\x92\xd0\x65\xfc\x92\xd1\x92\xd2\x92\xd3\x92\xd4\x92\xd5\x92\xd6\x5f\xd9\x57\x46\x92\xd7\x92\xd8\x57\x8d\x92\xd9\x92\xda\x92\xdb\x92\xdc\x57\xe5\x5f\xdb\x92\xdd\x57\x51\x50\xa5\x92\xde\x92\xdf\x5c\x5d\x92\xe0\x5f\xda\x48\xc5\x4d\xb3\x55\x73\x52\xf2\x4f\xe7\x92\xe1\x92\xe2\x92\xe3\x92\xe4\x49\xb5\x92\xe5\x92\xe6\x92\xe7\x92\xe8\x92\xe9\x92\xea\x92\xeb\x92\xec\x50\xcb\x56\x91\x92\xed\x4e\xf0\x4e\x5b\x4b\x57\x92\xee\x92\xef\x92\xf0\x53\x96\x92\xf1\x5f\xe5\x92\xf2\x92\xf3\x92\xf4\x5f\xe2\x4f\xdc\x92\xf5\x92\xf6\x5f\xde\x92\xf7\x92\xf8\x92\xf9\x92\xfa\x4a\xb6\x4f\x7d\x92\xfb\x92\xfc\x5f\xdf\x52\xec\x92\xfd\x93\x41\x93\x42\x93\x43", /* 6380 */ "\x58\x66\x93\x44\x4b\x81\x93\x45\x93\x46\x93\x47\x93\x48\x4b\xdd\x55\xd9\x4b\x95\x5f\xe4\x93\x49\x5b\x66\x93\x4a\x5f\xe0\x56\xcc\x53\xfd\x93\x4b\x53\x65\x93\x4c\x93\x4d\x93\x4e\x59\xb3\x93\x4f\x4f\xf1\x93\x50\x93\x51\x93\x52\x93\x53\x93\x54\x93\x55\x93\x56\x51\xd2\x93\x57\x56\xbc\x4a\x58\x93\x58\x4f\x73\x93\x59\x50\x78\x57\x66\x59\x7a\x4a\xea\x93\x5a\x5f\xe3\x5f\xdc\x5f\xe6\x93\x5b\x65\xfd\x93\x5c\x93\x5d\x51\xaf\x5f\xe1\x93\x5e\x93\x5f\x5b\xbf\x4b\x47\x93\x60\x49\xf3\x93\x61\x5f\xe7\x93\x62\x5f\xf1\x93\x63\x93\x64\x93\x65\x93\x66\x93\x67\x5f\xec\x93\x68\x5f\xf0\x93\x69\x93\x6a\x54\xdf\x93\x6b\x93\x6c\x93\x6d\x5c\x82\x5f\xee\x52\x89\x56\xe0\x93\x6e\x49\xe4\x93\x6f\x93\x70\x93\x71\x59\xbd\x93\x72\x93\x73\x93\x74\x93\x75\x93\x76\x93\x77\x93\x78\x5f\xed\x93\x79\x5f\xea\x57\xd4\x93\x7a\x4a\xa6\x93\x7b\x93\x7c\x93\x7d\x93\x7e\x93\x7f\x50\x4b\x4f\xbd\x93\x81\x93\x82\x4f\x72\x93\x83\x93\x84\x93\x85\x93\x86\x5f\xe8\x93\x87\x5a\xad\x93\x88\x5f\xdd\x93\x89\x5f\xe9\x93\x8a\x93\x8b\x93\x8c\x93\x8d\x50\xbe\x93\x8e\x5f\xeb", /* 6400 */ "\x49\xf2\x4c\xe8\x51\xa6\x93\x8f\x93\x90\x4f\x61\x93\x91\x93\x92\x93\x93\x93\x94\x93\x95\x5f\xf4\x5f\xf7\x93\x96\x93\x97\x49\xaa\x4a\xa3\x93\x98\x93\x99\x4a\xe9\x55\x46\x93\x9a\x93\x9b\x93\x9c\x93\x9d\x93\x9e\x93\x9f\x5f\xf5\x56\x71\x93\xa0\x4c\xe2\x93\xa1\x5f\xf6\x5f\xf9\x93\xa2\x93\xa3\x93\xa4\x93\xa5\x5f\xf8\x93\xa6\x93\xa7\x93\xa8\x56\xc1\x93\xa9\x48\xe0\x4a\xed\x93\xaa\x93\xab\x93\xac\x93\xad\x93\xae\x93\xaf\x63\x5a\x93\xb0\x93\xb1\x93\xb2\x93\xb3\x93\xb4\x58\xae\x93\xb5\x93\xb6\x49\xea\x93\xb7\x66\x41\x93\xb8\x5f\xf3\x93\xb9\x93\xba\x55\x84\x5f\xf2\x48\xd9\x59\xa0\x49\x98\x93\xbb\x56\xae\x93\xbc\x93\xbd\x93\xbe\x93\xbf\x93\xc0\x93\xc1\x93\xc2\x5f\xef\x93\xc3\x56\x44\x93\xc4\x93\xc5\x93\xc6\x5b\x4a\x93\xc7\x93\xc8\x93\xc9\x93\xca\x93\xcb\x5f\xfa\x93\xcc\x93\xcd\x93\xce\x93\xcf\x93\xd0\x93\xd1\x93\xd2\x93\xd3\x4a\xdc\x93\xd4\x52\xa5\x93\xd5\x93\xd6\x93\xd7\x5f\xfc\x93\xd8\x93\xd9\x93\xda\x93\xdb\x93\xdc\x93\xdd\x93\xde\x93\xdf\x93\xe0\x93\xe1\x52\x9f\x52\xa0\x60\x41\x93\xe2\x93\xe3\x93\xe4\x93\xe5\x93\xe6", /* 6480 */ "\x93\xe7\x93\xe8\x51\x6c\x93\xe9\x5f\xfb\x4f\xee\x93\xea\x53\xb1\x93\xeb\x93\xec\x93\xed\x93\xee\x93\xef\x93\xf0\x93\xf1\x93\xf2\x93\xf3\x4a\x65\x54\xf5\x93\xf4\x93\xf5\x56\x5a\x5f\xfd\x93\xf6\x93\xf7\x60\x44\x93\xf8\x93\xf9\x93\xfa\x93\xfb\x5c\x52\x93\xfc\x93\xfd\x94\x41\x94\x42\x94\x43\x4a\x57\x94\x44\x94\x45\x94\x46\x94\x47\x51\x63\x94\x48\x94\x49\x54\x6b\x49\xa4\x4a\xe8\x94\x4a\x5c\x4b\x94\x4b\x94\x4c\x94\x4d\x94\x4e\x52\xeb\x94\x4f\x60\x42\x60\x43\x94\x50\x60\x45\x94\x51\x4d\xb2\x94\x52\x94\x53\x94\x54\x60\x46\x94\x55\x50\xdd\x94\x56\x94\x57\x55\x63\x94\x58\x94\x59\x94\x5a\x94\x5b\x94\x5c\x94\x5d\x94\x5e\x49\xd8\x54\x87\x94\x5f\x60\x47\x94\x60\x54\x7c\x94\x61\x94\x62\x94\x63\x94\x64\x60\x48\x66\x42\x94\x65\x94\x66\x94\x67\x94\x68\x94\x69\x56\x73\x94\x6a\x94\x6b\x94\x6c\x60\x4a\x94\x6d\x60\x49\x94\x6e\x49\xc0\x94\x6f\x94\x70\x94\x71\x94\x72\x94\x73\x94\x74\x94\x75\x94\x76\x94\x77\x94\x78\x94\x79\x94\x7a\x94\x7b\x94\x7c\x94\x7d\x94\x7e\x94\x7f\x94\x81\x94\x82\x94\x83\x94\x84\x94\x85\x94\x86\x94\x87\x94\x88", /* 6500 */ "\x53\x6a\x94\x89\x94\x8a\x94\x8b\x94\x8c\x94\x8d\x94\x8e\x94\x8f\x94\x90\x60\x4b\x94\x91\x94\x92\x94\x93\x94\x94\x94\x95\x94\x96\x94\x97\x94\x98\x5a\xdb\x94\x99\x94\x9a\x94\x9b\x94\x9c\x94\x9d\x54\xc0\x94\x9e\x94\x9f\x94\xa0\x94\xa1\x94\xa2\x94\xa3\x94\xa4\x94\xa5\x94\xa6\x94\xa7\x94\xa8\x94\xa9\x60\x4c\x94\xaa\x94\xab\x94\xac\x94\xad\x94\xae\x4f\xef\x94\xaf\x94\xb0\x60\x4d\x5b\xa6\x94\xb1\x94\xb2\x94\xb3\x94\xb4\x65\xb6\x66\x56\x55\xd4\x94\xb5\x5c\xfb\x4c\xc3\x94\xb6\x4d\x45\x94\xb7\x94\xb8\x4c\x65\x5b\x9f\x94\xb9\x94\xba\x94\xbb\x94\xbc\x94\xbd\x4d\x6a\x94\xbe\x94\xbf\x58\xa6\x6a\xcc\x94\xc0\x94\xc1\x4b\x70\x94\xc2\x94\xc3\x52\x95\x94\xc4\x4f\xc7\x94\xc5\x94\xc6\x94\xc7\x66\x57\x48\xbc\x94\xc8\x94\xc9\x4f\x6c\x94\xca\x51\x52\x94\xcb\x49\x76\x4a\x48\x94\xcc\x94\xcd\x94\xce\x4c\xd1\x55\x42\x94\xcf\x94\xd0\x4b\xd7\x94\xd1\x94\xd2\x94\xd3\x94\xd4\x66\x58\x4f\xb3\x94\xd5\x94\xd6\x94\xd7\x55\xfc\x94\xd8\x54\x63\x94\xd9\x5b\x9c\x94\xda\x94\xdb\x4c\x94\x94\xdc\x94\xdd\x94\xde\x94\xdf\x94\xe0\x94\xe1\x94\xe2\x94\xe3", /* 6580 */ "\x94\xe4\x94\xe5\x94\xe6\x94\xe7\x94\xe8\x94\xe9\x94\xea\x57\xc3\x94\xeb\x94\xec\x94\xed\x5b\x4b\x49\x94\x94\xee\x94\xef\x94\xf0\x66\xb2\x48\xde\x94\xf1\x66\xb4\x94\xf2\x94\xf3\x94\xf4\x4b\xb6\x94\xf5\x51\x6f\x94\xf6\x6b\x9b\x58\xb0\x94\xf7\x94\xf8\x5b\x86\x94\xf9\x57\xd2\x94\xfa\x94\xfb\x4f\x90\x4a\x83\x94\xfc\x4c\xaa\x94\xfd\x5b\x56\x95\x41\x67\x5d\x95\x42\x4b\xce\x95\x43\x56\x59\x58\xc1\x95\x44\x95\x45\x95\x46\x95\x47\x95\x48\x95\x49\x95\x4a\x95\x4b\x4c\x5d\x95\x4c\x95\x4d\x66\xb5\x55\xa8\x95\x4e\x95\x4f\x95\x50\x53\x74\x95\x51\x66\xb8\x66\xb7\x51\xc2\x66\xb6\x95\x52\x95\x53\x95\x54\x95\x55\x58\xfc\x66\xb9\x95\x56\x66\xba\x5c\x86\x95\x57\x95\x58\x66\xbb\x95\x59\x95\x5a\x95\x5b\x66\xbc\x53\xeb\x95\x5c\x95\x5d\x95\x5e\x95\x5f\x95\x60\x95\x61\x95\x62\x95\x63\x57\xdd\x95\x64\x4e\xc7\x95\x65\x95\x66\x54\xd4\x4b\x49\x4f\xc8\x5b\xbb\x5a\xe6\x95\x67\x95\x68\x59\x4e\x58\xf0\x65\xb7\x65\xb8\x65\xb9\x4d\xb4\x95\x69\x95\x6a\x95\x6b\x95\x6c\x55\xb0\x50\x96\x95\x6d\x95\x6e\x57\x9b\x95\x6f\x95\x70\x95\x71\x95\x72\x95\x73", /* 6600 */ "\x65\xbf\x95\x74\x48\xb9\x65\xbd\x95\x75\x95\x76\x50\xa4\x95\x77\x95\x78\x95\x79\x65\xba\x95\x7a\x49\xfc\x95\x7b\x52\x98\x4e\x89\x95\x7c\x95\x7d\x95\x7e\x59\xd6\x57\xf3\x65\xbe\x95\x7f\x95\x81\x95\x82\x65\xbb\x95\x83\x95\x84\x95\x85\x65\xc2\x95\x86\x58\xc6\x5a\x53\x95\x87\x95\x88\x95\x89\x95\x8a\x4a\xb9\x95\x8b\x52\x61\x5c\x93\x95\x8c\x95\x8d\x95\x8e\x95\x8f\x5b\x71\x95\x90\x55\xc6\x95\x91\x65\xc4\x95\x92\x95\x93\x65\xc3\x65\xc6\x65\xc5\x95\x94\x95\x95\x95\x96\x95\x97\x95\x98\x5b\xe6\x95\x99\x58\x74\x95\x9a\x95\x9b\x65\xca\x95\x9c\x4e\x6e\x95\x9d\x95\x9e\x95\x9f\x95\xa0\x95\xa1\x95\xa2\x95\xa3\x4f\x9b\x55\x6e\x95\xa4\x95\xa5\x65\xcb\x95\xa6\x95\xa7\x55\x59\x58\x9f\x65\xc9\x5a\xcd\x65\xcc\x65\xce\x95\xa8\x95\xa9\x57\x8e\x95\xaa\x95\xab\x95\xac\x95\xad\x65\xc8\x95\xae\x65\xcd\x95\xaf\x95\xb0\x57\xed\x95\xb1\x4e\x7e\x95\xb2\x4a\x5f\x95\xb3\x95\xb4\x95\xb5\x95\xb6\x95\xb7\x53\xd4\x4f\xaf\x57\xf9\x95\xb8\x95\xb9\x95\xba\x54\x88\x95\xbb\x4f\xa6\x65\xcf\x95\xbc\x95\xbd\x5b\xc6\x95\xbe\x95\xbf\x95\xc0\x51\x60\x95\xc1", /* 6680 */ "\x95\xc2\x95\xc3\x5a\xdc\x95\xc4\x65\xd0\x95\xc5\x95\xc6\x58\x5e\x95\xc7\x95\xc8\x95\xc9\x95\xca\x65\xd1\x95\xcb\x95\xcc\x95\xcd\x95\xce\x55\xed\x95\xcf\x95\xd0\x95\xd1\x95\xd2\x53\x4f\x48\xb4\x95\xd3\x95\xd4\x95\xd5\x95\xd6\x95\xd7\x65\xd3\x95\xd8\x95\xd9\x95\xda\x95\xdb\x95\xdc\x95\xdd\x95\xde\x95\xdf\x95\xe0\x65\xd2\x6a\xde\x95\xe1\x95\xe2\x95\xe3\x95\xe4\x95\xe5\x52\xb9\x95\xe6\x95\xe7\x95\xe8\x95\xe9\x95\xea\x49\x49\x95\xeb\x95\xec\x95\xed\x95\xee\x63\x7f\x95\xef\x95\xf0\x95\xf1\x95\xf2\x65\xd4\x95\xf3\x95\xf4\x95\xf5\x95\xf6\x95\xf7\x95\xf8\x95\xf9\x95\xfa\x95\xfb\x95\xfc\x95\xfd\x96\x41\x96\x42\x96\x43\x96\x44\x96\x45\x96\x46\x96\x47\x96\x48\x96\x49\x96\x4a\x96\x4b\x96\x4c\x96\x4d\x96\x4e\x96\x4f\x55\xee\x96\x50\x65\xd5\x65\xd6\x53\xd7\x96\x51\x96\x52\x96\x53\x96\x54\x96\x55\x96\x56\x96\x57\x96\x58\x65\xd7\x96\x59\x96\x5a\x65\xd8\x96\x5b\x96\x5c\x96\x5d\x96\x5e\x96\x5f\x96\x60\x5a\xba\x96\x61\x54\x9b\x59\xb6\x4c\xfb\x96\x62\x96\x63\x65\xc1\x96\x64\x49\xdb\x96\x65\x96\x66\x51\xfb\x96\x67\x5a\xf7\x56\xe5", /* 6700 */ "\x5c\x8f\x96\x68\x96\x69\x96\x6a\x96\x6b\x96\x6c\x96\x6d\x96\x6e\x5a\xc1\x5a\x70\x66\x63\x53\x94\x96\x6f\x4c\x9f\x96\x70\x96\x71\x66\x74\x96\x72\x96\x73\x96\x74\x56\x57\x66\x7e\x96\x75\x50\xc9\x96\x76\x96\x77\x96\x78\x57\x9c\x96\x79\x4a\x4f\x96\x7a\x53\xd9\x96\x7b\x96\x7c\x96\x7d\x96\x7e\x96\x7f\x96\x81\x66\x9d\x96\x82\x52\xbd\x96\x83\x57\xb3\x52\xa8\x49\x5e\x5a\xfc\x96\x84\x55\xf4\x96\x85\x5b\xeb\x96\x86\x96\x87\x53\xd2\x4b\xe3\x96\x88\x96\x89\x96\x8a\x96\x8b\x4e\x9b\x96\x8c\x96\x8d\x58\xdf\x96\x8e\x96\x8f\x55\x51\x96\x90\x5a\xd2\x54\xa7\x96\x91\x96\x92\x4c\xca\x96\x93\x64\xbd\x55\x5c\x96\x94\x96\x95\x64\xba\x96\x96\x50\xed\x58\xd2\x49\xc3\x4a\xe4\x96\x97\x64\xbb\x96\x98\x96\x99\x5b\x68\x96\x9a\x96\x9b\x96\x9c\x96\x9d\x96\x9e\x4b\xc4\x96\x9f\x64\xbc\x55\xf7\x4c\xdb\x56\xf4\x96\xa0\x96\xa1\x96\xa2\x50\xb3\x96\xa3\x96\xa4\x59\x8f\x64\xbe\x64\xc1\x96\xa5\x96\xa6\x4d\xbb\x96\xa7\x49\x4d\x4f\x7c\x96\xa8\x65\xbc\x64\xc2\x96\xa9\x64\xc5\x96\xaa\x64\xca\x96\xab\x96\xac\x96\xad\x96\xae\x64\xcb\x96\xaf\x56\x69\x48\xe4", /* 6780 */ "\x96\xb0\x4e\xaa\x96\xb1\x96\xb2\x4d\x59\x96\xb3\x96\xb4\x64\xc0\x96\xb5\x57\x98\x96\xb6\x64\xc9\x96\xb7\x96\xb8\x96\xb9\x96\xba\x57\xf5\x96\xbb\x96\xbc\x96\xbd\x96\xbe\x5b\x8e\x96\xbf\x51\x76\x64\xc3\x96\xc0\x52\x56\x96\xc1\x4d\x9c\x5b\xa5\x64\xc7\x96\xc2\x96\xc3\x96\xc4\x55\xdf\x5a\xe5\x96\xc5\x64\xbf\x96\xc6\x64\xc4\x64\xc6\x96\xc7\x54\x59\x4c\x84\x96\xc8\x64\xc8\x96\xc9\x50\x7d\x64\xd1\x96\xca\x96\xcb\x64\xd6\x96\xcc\x64\xd4\x4e\xdb\x4e\xce\x64\xda\x96\xcd\x96\xce\x96\xcf\x96\xd0\x96\xd1\x96\xd2\x96\xd3\x96\xd4\x64\xdd\x96\xd5\x64\xd9\x49\x9b\x96\xd6\x96\xd7\x96\xd8\x96\xd9\x96\xda\x96\xdb\x96\xdc\x96\xdd\x96\xde\x96\xdf\x48\xd7\x52\xb2\x4c\xcb\x53\xe1\x54\xbd\x54\xe0\x96\xe0\x96\xe1\x96\xe2\x64\xce\x64\xd3\x64\xd5\x96\xe3\x4d\x92\x64\xd7\x5c\x96\x96\xe4\x52\xfa\x96\xe5\x64\xdb\x96\xe6\x96\xe7\x49\xe8\x96\xe8\x96\xe9\x96\xea\x64\xd0\x96\xeb\x96\xec\x4e\xec\x96\xed\x96\xee\x50\x62\x64\xcc\x5b\xf8\x96\xef\x51\x99\x49\xf0\x96\xf0\x96\xf1\x96\xf2\x96\xf3\x96\xf4\x96\xf5\x96\xf6\x96\xf7\x64\xde\x96\xf8\x55\xc0", /* 6800 */ "\x64\xd8\x96\xf9\x96\xfa\x96\xfb\x96\xfc\x5b\x44\x96\xfd\x49\x8b\x5b\x5b\x64\xcd\x64\xcf\x4b\xaf\x64\xd2\x97\x41\x64\xdc\x50\xb7\x97\x42\x55\xf6\x97\x43\x56\x48\x97\x44\x97\x45\x53\xdb\x50\xf4\x97\x46\x97\x47\x97\x48\x97\x49\x97\x4a\x64\xe8\x97\x4b\x97\x4c\x97\x4d\x58\xa2\x97\x4e\x97\x4f\x97\x50\x97\x51\x97\x52\x97\x53\x97\x54\x64\xf1\x5b\xe9\x97\x55\x97\x56\x97\x57\x97\x58\x97\x59\x97\x5a\x97\x5b\x64\xdf\x64\xe0\x97\x5c\x97\x5d\x97\x5e\x59\x9a\x4d\xca\x4c\xf8\x97\x5f\x97\x60\x4c\xf0\x5a\xd3\x64\xee\x97\x61\x64\xed\x64\xeb\x4d\x91\x56\xd1\x64\xe5\x57\xa5\x50\x93\x97\x62\x48\xb7\x64\xf0\x64\xef\x97\x63\x5c\x60\x97\x64\x64\xe3\x97\x65\x57\x49\x55\x43\x97\x66\x4e\x58\x4f\x7b\x64\xe9\x97\x67\x97\x68\x97\x69\x97\x6a\x97\x6b\x97\x6c\x97\x6d\x97\x6e\x97\x6f\x97\x70\x64\xe1\x64\xe2\x64\xe4\x4b\x55\x64\xe6\x54\x65\x64\xea\x64\xec\x4f\x50\x5c\x4e\x97\x71\x64\xf7\x97\x72\x97\x73\x97\x74\x97\x75\x97\x76\x97\x77\x97\x78\x97\x79\x64\xf4\x97\x7a\x57\x50\x64\xf5\x97\x7b\x97\x7c\x97\x7d\x97\x7e\x97\x7f\x97\x81\x97\x82\x97\x83", /* 6880 */ "\x97\x84\x51\x5a\x97\x85\x64\xe7\x97\x86\x52\x57\x48\xef\x97\x87\x97\x88\x97\x89\x97\x8a\x97\x8b\x97\x8c\x97\x8d\x97\x8e\x64\xf3\x97\x8f\x97\x90\x97\x91\x64\xf6\x97\x92\x97\x93\x97\x94\x4d\x43\x97\x95\x97\x96\x97\x97\x97\x98\x97\x99\x97\x9a\x97\x9b\x97\x9c\x97\x9d\x97\x9e\x55\x72\x97\x9f\x97\xa0\x97\xa1\x52\x6e\x57\xdf\x50\xe5\x97\xa2\x97\xa3\x97\xa4\x97\xa5\x56\x94\x97\xa6\x56\xdc\x58\xb4\x97\xa7\x97\xa8\x55\xe0\x97\xa9\x64\xf2\x97\xaa\x97\xab\x97\xac\x97\xad\x97\xae\x97\xaf\x97\xb0\x97\xb1\x97\xb2\x97\xb3\x4e\xeb\x97\xb4\x64\xf8\x97\xb5\x97\xb6\x97\xb7\x97\xb8\x97\xb9\x97\xba\x52\x7e\x97\xbb\x53\xe4\x97\xbc\x4d\x98\x97\xbd\x97\xbe\x97\xbf\x97\xc0\x48\xf3\x97\xc1\x97\xc2\x5c\x78\x97\xc3\x97\xc4\x4e\xab\x97\xc5\x53\x90\x97\xc6\x97\xc7\x97\xc8\x97\xc9\x97\xca\x56\xc3\x97\xcb\x97\xcc\x65\x46\x97\xcd\x97\xce\x97\xcf\x97\xd0\x97\xd1\x97\xd2\x97\xd3\x97\xd4\x97\xd5\x97\xd6\x55\x4d\x97\xd7\x65\x42\x50\xe1\x97\xd8\x97\xd9\x97\xda\x50\x63\x97\xdb\x97\xdc\x97\xdd\x64\xfd\x4d\x77\x97\xde\x64\xfa\x97\xdf\x97\xe0\x97\xe1", /* 6900 */ "\x97\xe2\x65\x44\x97\xe3\x97\xe4\x97\xe5\x59\xcd\x97\xe6\x97\xe7\x97\xe8\x97\xe9\x97\xea\x65\x43\x97\xeb\x5b\xb1\x5c\x55\x97\xec\x65\x47\x97\xed\x4f\x57\x97\xee\x97\xef\x97\xf0\x97\xf1\x97\xf2\x97\xf3\x97\xf4\x97\xf5\x97\xf6\x97\xf7\x97\xf8\x97\xf9\x64\xfb\x64\xfc\x97\xfa\x97\xfb\x97\xfc\x65\x41\x97\xfd\x98\x41\x98\x42\x98\x43\x98\x44\x98\x45\x98\x46\x98\x47\x57\x76\x98\x48\x98\x49\x59\xab\x98\x4a\x98\x4b\x98\x4c\x65\x52\x98\x4d\x98\x4e\x98\x4f\x98\x50\x65\x49\x98\x51\x98\x52\x98\x53\x4a\xa9\x98\x54\x4a\xba\x98\x55\x98\x56\x65\x4b\x98\x57\x98\x58\x98\x59\x98\x5a\x98\x5b\x98\x5c\x98\x5d\x98\x5e\x98\x5f\x98\x60\x98\x61\x98\x62\x98\x63\x98\x64\x98\x65\x98\x66\x98\x67\x58\xa7\x98\x68\x98\x69\x65\x45\x98\x6a\x98\x6b\x4a\x9f\x98\x6c\x98\x6d\x65\x4c\x50\xe2\x98\x6e\x65\x4a\x98\x6f\x98\x70\x65\x59\x98\x71\x98\x72\x65\x58\x98\x73\x98\x74\x98\x75\x98\x76\x65\x4e\x98\x77\x98\x78\x64\xf9\x98\x79\x98\x7a\x65\x48\x98\x7b\x98\x7c\x98\x7d\x98\x7e\x98\x7f\x50\x4c\x65\x51\x65\x5a\x98\x81\x98\x82\x51\xa4\x98\x83\x98\x84\x98\x85", /* 6980 */ "\x65\x4f\x98\x86\x4c\xc4\x98\x87\x65\x4d\x98\x88\x5a\x7c\x65\x54\x65\x55\x65\x57\x98\x89\x98\x8a\x98\x8b\x65\x67\x98\x8c\x98\x8d\x98\x8e\x98\x8f\x98\x90\x98\x91\x50\xc5\x65\x65\x98\x92\x98\x93\x65\x50\x98\x94\x98\x95\x65\x5b\x48\xf0\x98\x96\x98\x97\x98\x98\x98\x99\x98\x9a\x98\x9b\x98\x9c\x98\x9d\x98\x9e\x98\x9f\x65\x5c\x5b\x45\x98\xa0\x98\xa1\x65\x5e\x98\xa2\x65\x5f\x98\xa3\x98\xa4\x98\xa5\x65\x61\x98\xa6\x98\xa7\x51\x92\x98\xa8\x98\xa9\x54\xb5\x98\xaa\x98\xab\x98\xac\x65\x5d\x98\xad\x98\xae\x98\xaf\x98\xb0\x98\xb1\x65\x62\x98\xb2\x98\xb3\x98\xb4\x98\xb5\x98\xb6\x98\xb7\x98\xb8\x98\xb9\x65\x63\x98\xba\x65\x53\x98\xbb\x65\x56\x98\xbc\x4e\x51\x98\xbd\x98\xbe\x98\xbf\x65\x60\x98\xc0\x98\xc1\x98\xc2\x98\xc3\x98\xc4\x98\xc5\x4e\xf6\x98\xc6\x98\xc7\x98\xc8\x65\x64\x65\x66\x98\xc9\x98\xca\x98\xcb\x98\xcc\x98\xcd\x98\xce\x98\xcf\x98\xd0\x98\xd1\x98\xd2\x98\xd3\x98\xd4\x65\x6a\x98\xd5\x98\xd6\x98\xd7\x98\xd8\x65\x6e\x98\xd9\x98\xda\x98\xdb\x98\xdc\x98\xdd\x98\xde\x98\xdf\x98\xe0\x98\xe1\x98\xe2\x49\xda\x98\xe3\x65\x68", /* 6a00 */ "\x98\xe4\x98\xe5\x98\xe6\x98\xe7\x98\xe8\x98\xe9\x98\xea\x98\xeb\x98\xec\x98\xed\x4c\x4e\x98\xee\x98\xef\x98\xf0\x98\xf1\x98\xf2\x98\xf3\x98\xf4\x98\xf5\x98\xf6\x98\xf7\x98\xf8\x98\xf9\x65\x6b\x65\x6c\x98\xfa\x98\xfb\x98\xfc\x98\xfd\x99\x41\x99\x42\x5b\x61\x99\x43\x52\xa2\x99\x44\x99\x45\x99\x46\x99\x47\x99\x48\x99\x49\x65\x78\x99\x4a\x4d\xe0\x99\x4b\x99\x4c\x99\x4d\x99\x4e\x65\x69\x99\x4f\x5a\x43\x99\x50\x99\x51\x99\x52\x65\x74\x99\x53\x99\x54\x99\x55\x99\x56\x99\x57\x99\x58\x99\x59\x65\x77\x65\x70\x99\x5a\x99\x5b\x99\x5c\x99\x5d\x99\x5e\x65\x6f\x99\x5f\x99\x60\x54\x61\x99\x61\x99\x62\x99\x63\x99\x64\x99\x65\x99\x66\x99\x67\x99\x68\x65\x72\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x6d\x99\x6e\x99\x6f\x65\x79\x4a\x68\x99\x70\x65\x73\x99\x71\x99\x72\x99\x73\x99\x74\x99\x75\x58\x91\x99\x76\x99\x77\x99\x78\x65\x6d\x99\x79\x99\x7a\x99\x7b\x99\x7c\x99\x7d\x99\x7e\x99\x7f\x99\x81\x99\x82\x99\x83\x99\x84\x4a\x98\x99\x85\x99\x86\x99\x87\x99\x88\x99\x89\x99\x8a\x99\x8b\x65\x76\x99\x8c\x99\x8d\x65\x7a\x99\x8e\x99\x8f\x99\x90", /* 6a80 */ "\x56\xb3\x99\x91\x99\x92\x99\x93\x58\x4d\x99\x94\x99\x95\x99\x96\x99\x97\x99\x98\x99\x99\x99\x9a\x99\x9b\x99\x9c\x65\x75\x99\x9d\x65\x7c\x65\x7b\x99\x9e\x99\x9f\x99\xa0\x99\xa1\x99\xa2\x65\x7e\x99\xa3\x99\xa4\x99\xa5\x99\xa6\x99\xa7\x99\xa8\x99\xa9\x99\xaa\x65\x71\x99\xab\x99\xac\x99\xad\x99\xae\x99\xaf\x99\xb0\x99\xb1\x99\xb2\x65\x7d\x99\xb3\x65\x7f\x52\x6a\x99\xb4\x99\xb5\x99\xb6\x99\xb7\x99\xb8\x99\xb9\x99\xba\x99\xbb\x99\xbc\x99\xbd\x99\xbe\x99\xbf\x99\xc0\x99\xc1\x99\xc2\x99\xc3\x99\xc4\x99\xc5\x99\xc6\x99\xc7\x99\xc8\x99\xc9\x99\xca\x99\xcb\x99\xcc\x99\xcd\x99\xce\x99\xcf\x99\xd0\x99\xd1\x99\xd2\x99\xd3\x99\xd4\x99\xd5\x99\xd6\x99\xd7\x99\xd8\x99\xd9\x99\xda\x99\xdb\x99\xdc\x99\xdd\x99\xde\x99\xdf\x99\xe0\x99\xe1\x99\xe2\x99\xe3\x99\xe4\x99\xe5\x99\xe6\x99\xe7\x99\xe8\x99\xe9\x99\xea\x99\xeb\x99\xec\x99\xed\x99\xee\x99\xef\x99\xf0\x99\xf1\x99\xf2\x99\xf3\x99\xf4\x99\xf5\x99\xf6\x99\xf7\x99\xf8\x99\xf9\x99\xfa\x99\xfb\x99\xfc\x99\xfd\x9a\x41\x9a\x42\x9a\x43\x9a\x44\x9a\x45\x9a\x46\x9a\x47\x9a\x48\x9a\x49", /* 6b00 */ "\x9a\x4a\x9a\x4b\x9a\x4c\x9a\x4d\x9a\x4e\x9a\x4f\x9a\x50\x9a\x51\x9a\x52\x9a\x53\x9a\x54\x9a\x55\x9a\x56\x9a\x57\x9a\x58\x9a\x59\x9a\x5a\x9a\x5b\x9a\x5c\x9a\x5d\x9a\x5e\x9a\x5f\x9a\x60\x9a\x61\x9a\x62\x9a\x63\x9a\x64\x9a\x65\x9a\x66\x9a\x67\x9a\x68\x9a\x69\x54\x57\x4a\xcd\x4e\x56\x58\xbf\x66\xa2\x9a\x6a\x9a\x6b\x53\x57\x9a\x6c\x9a\x6d\x9a\x6e\x9a\x6f\x9a\x70\x9a\x71\x9a\x72\x9a\x73\x9a\x74\x9a\x75\x5a\x9c\x9a\x76\x9a\x77\x9a\x78\x9a\x79\x66\xa3\x9a\x7a\x66\xa4\x53\xda\x9a\x7b\x9a\x7c\x9a\x7d\x50\x8f\x9a\x7e\x9a\x7f\x9a\x81\x9a\x82\x66\xa5\x9a\x83\x9a\x84\x66\xa6\x58\xa9\x9a\x85\x54\x58\x9a\x86\x9a\x87\x4c\xe7\x9a\x88\x9a\x89\x9a\x8a\x9a\x8b\x9a\x8c\x9a\x8d\x9a\x8e\x9a\x8f\x9a\x90\x9a\x91\x9a\x92\x9a\x93\x66\xa7\x9a\x94\x9a\x95\x9a\x96\x9a\x97\x9a\x98\x9a\x99\x9a\x9a\x9a\x9b\x5b\xb8\x5b\x9e\x4a\xca\x49\xbc\x57\xe3\x53\xe6\x9a\x9c\x9a\x9d\x57\x82\x9a\x9e\x9a\x9f\x9a\xa0\x9a\xa1\x9a\xa2\x9a\xa3\x9a\xa4\x9a\xa5\x9a\xa6\x9a\xa7\x9a\xa8\x9a\xa9\x9a\xaa\x9a\xab\x4a\xf4\x9a\xac\x56\x60\x4e\xde\x9a\xad\x9a\xae\x9a\xaf", /* 6b80 */ "\x9a\xb0\x65\x83\x65\x84\x59\x8b\x65\x86\x9a\xb1\x4a\xf8\x65\x85\x9a\xb2\x59\x53\x55\xe1\x49\xcf\x9a\xb3\x65\x89\x9a\xb4\x9a\xb5\x9a\xb6\x9a\xb7\x65\x87\x65\x88\x9a\xb8\x9a\xb9\x5b\xb2\x9a\xba\x9a\xbb\x9a\xbc\x65\x8a\x65\x8b\x9a\xbd\x9a\xbe\x9a\xbf\x9a\xc0\x9a\xc1\x65\x8c\x9a\xc2\x9a\xc3\x9a\xc4\x9a\xc5\x9a\xc6\x9a\xc7\x9a\xc8\x9a\xc9\x65\x8d\x9a\xca\x9a\xcb\x9a\xcc\x9a\xcd\x9a\xce\x9a\xcf\x9a\xd0\x9a\xd1\x66\xae\x53\x59\x4b\xcd\x9a\xd2\x59\xf2\x9a\xd3\x9a\xd4\x9a\xd5\x9a\xd6\x9a\xd7\x9a\xd8\x9a\xd9\x4b\x8f\x9a\xda\x4e\x79\x66\xb0\x9a\xdb\x9a\xdc\x59\xe2\x9a\xdd\x9a\xde\x9a\xdf\x9a\xe0\x9a\xe1\x57\xe2\x9a\xe2\x52\xb7\x9a\xe3\x52\x5f\x9a\xe4\x9a\xe5\x4b\xbd\x5c\xb8\x49\x68\x49\x6f\x49\x71\x53\x9f\x9a\xe6\x49\x70\x9a\xe7\x52\x4b\x9a\xe8\x9a\xe9\x9a\xea\x9a\xeb\x9a\xec\x5b\x51\x9a\xed\x9a\xee\x9a\xef\x9a\xf0\x9a\xf1\x9a\xf2\x9a\xf3\x9a\xf4\x66\x44\x4d\xc0\x9a\xf5\x9a\xf6\x9a\xf7\x56\xb9\x9a\xf8\x9a\xf9\x9a\xfa\x66\x45\x9a\xfb\x66\x47\x9a\xfc\x9a\xfd\x9b\x41\x66\x48\x9b\x42\x9b\x43\x9b\x44\x66\x46\x9b\x45\x9b\x46", /* 6c00 */ "\x9b\x47\x9b\x48\x9b\x49\x9b\x4a\x9b\x4b\x66\x49\x66\x4b\x66\x4a\x9b\x4c\x9b\x4d\x9b\x4e\x9b\x4f\x9b\x50\x66\x4c\x9b\x51\x55\xce\x5c\xb4\x52\x92\x9b\x52\x52\x45\x53\xf7\x66\x4d\x52\xc9\x9b\x53\x66\x4e\x66\x4f\x66\x50\x4c\x75\x9b\x54\x9b\x55\x9b\x56\x4c\x9b\x9b\x57\x66\x51\x54\x83\x9b\x58\x66\x53\x9b\x59\x4d\xa3\x59\x96\x48\xb0\x66\x52\x66\x54\x9b\x5a\x9b\x5b\x9b\x5c\x4b\x4a\x51\xc7\x54\x89\x9b\x5d\x66\x55\x9b\x5e\x56\x4e\x62\x7f\x9b\x5f\x9b\x60\x5a\x60\x9b\x61\x9b\x62\x9b\x63\x9b\x64\x5d\x7b\x9b\x65\x9b\x66\x57\x41\x5b\xac\x54\x94\x9b\x67\x9b\x68\x9b\x69\x5d\x81\x4e\x84\x9b\x6a\x4d\xb9\x62\x83\x9b\x6b\x9b\x6c\x9b\x6d\x9b\x6e\x9b\x6f\x58\x4b\x9b\x70\x9b\x71\x9b\x72\x62\x81\x55\x67\x9b\x73\x4d\xb8\x9b\x74\x9b\x75\x9b\x76\x59\x54\x62\x82\x54\xe9\x4d\x4f\x4f\x4d\x4a\x78\x57\xda\x9b\x77\x9b\x78\x56\xbf\x9b\x79\x9b\x7a\x9b\x7b\x62\x89\x62\x8a\x57\x95\x9b\x7c\x9b\x7d\x9b\x7e\x9b\x7f\x9b\x81\x56\xac\x9b\x82\x4e\xb2\x9b\x83\x62\x8b\x9b\x84\x62\x8c\x9b\x85\x9b\x86\x58\xd9\x9b\x87\x9b\x88\x9b\x89\x53\xfa\x4c\x7a\x9b\x8a", /* 6c80 */ "\x9b\x8b\x54\x7f\x59\xc9\x57\xd5\x9b\x8c\x62\x85\x62\x8d\x9b\x8d\x55\x93\x4a\x61\x9b\x8e\x9b\x8f\x62\x88\x9b\x90\x9b\x91\x53\xe2\x62\x86\x9b\x92\x9b\x93\x67\x53\x62\x87\x9b\x94\x9b\x95\x9b\x96\x9b\x97\x55\x53\x9b\x98\x53\x87\x9b\x99\x9b\x9a\x9b\x9b\x4d\x55\x9b\x9c\x52\x5b\x9b\x9d\x62\x84\x53\x5d\x51\x44\x51\xd8\x49\xd6\x9b\x9e\x62\x8e\x4e\x46\x52\xac\x9b\x9f\x62\x91\x4f\xd9\x9b\xa0\x9b\xa1\x62\x9c\x62\x96\x4d\xd2\x9b\xa2\x9b\xa3\x9b\xa4\x9b\xa5\x4c\x70\x5a\x6d\x9b\xa6\x5b\xcd\x5b\x73\x4d\x61\x5b\x54\x59\x78\x9b\xa7\x9b\xa8\x9b\xa9\x9b\xaa\x58\xb8\x54\x97\x9b\xab\x9b\xac\x9b\xad\x54\xa9\x49\xb3\x9b\xae\x52\x7a\x9b\xaf\x9b\xb0\x9b\xb1\x62\x8f\x9b\xb2\x9b\xb3\x62\x9d\x62\x90\x4c\x48\x62\x98\x62\x95\x9b\xb4\x9b\xb5\x9b\xb6\x4c\x5a\x9b\xb7\x9b\xb8\x53\x42\x9b\xb9\x62\x97\x53\x7d\x49\xa7\x53\xfb\x9b\xba\x52\xdf\x9b\xbb\x9b\xbc\x5c\x42\x9b\xbd\x50\xe0\x62\x9a\x9b\xbe\x9b\xbf\x62\x9b\x62\x9e\x56\xa8\x62\x94\x9b\xc0\x5a\x5e\x9b\xc1\x49\x63\x67\x54\x62\x92\x62\x93\x9b\xc2\x62\x99\x58\xb9\x53\xc2\x5a\xf2\x62\x9f\x9b\xc3", /* 6d00 */ "\x9b\xc4\x4f\x81\x9b\xc5\x9b\xc6\x62\xa6\x9b\xc7\x9b\xc8\x62\xa5\x9b\xc9\x9b\xca\x9b\xcb\x59\x94\x62\xa2\x9b\xcc\x62\xa8\x9b\xcd\x9b\xce\x9b\xcf\x54\xf6\x9b\xd0\x9b\xd1\x9b\xd2\x9b\xd3\x58\x54\x9b\xd4\x62\xa7\x62\xad\x51\xe4\x9b\xd5\x9b\xd6\x4b\xb3\x9b\xd7\x9b\xd8\x9b\xd9\x9b\xda\x9b\xdb\x9b\xdc\x4f\x93\x9b\xdd\x62\xa1\x9b\xde\x9b\xdf\x4d\xe8\x62\xa9\x9b\xe0\x9b\xe1\x62\xab\x9b\xe2\x9b\xe3\x4b\xfc\x5b\xdd\x62\xb1\x9b\xe4\x62\xac\x9b\xe5\x9b\xe6\x9b\xe7\x62\xa0\x9b\xe8\x4e\x8f\x57\x7d\x54\x42\x53\x69\x9b\xe9\x9b\xea\x51\x98\x9b\xeb\x62\xa3\x9b\xec\x54\x53\x4f\x4c\x4f\x5d\x62\xa4\x9b\xed\x5c\x67\x49\xe1\x9b\xee\x62\xaa\x4e\xc2\x62\xae\x9b\xef\x4e\x8c\x62\xaf\x53\x48\x62\xb0\x9b\xf0\x9b\xf1\x9b\xf2\x9b\xf3\x5b\x84\x50\x43\x9b\xf4\x62\xb9\x9b\xf5\x62\xb6\x9b\xf6\x62\xba\x9b\xf7\x9b\xf8\x62\xbc\x9b\xf9\x9b\xfa\x53\xd5\x9b\xfb\x9b\xfc\x4d\xc5\x50\xca\x9b\xfd\x9c\x41\x9c\x42\x4c\xa0\x62\xb3\x9c\x43\x9c\x44\x9c\x45\x9c\x46\x5a\xa0\x9c\x47\x9c\x48\x4d\xa2\x4f\x9f\x9c\x49\x9c\x4a\x9c\x4b\x62\xbb\x9c\x4c\x9c\x4d\x9c\x4e", /* 6d80 */ "\x9c\x4f\x9c\x50\x57\x5f\x9c\x51\x9c\x52\x52\xf8\x9c\x53\x9c\x54\x58\x9c\x55\x87\x9c\x55\x9c\x56\x5a\x5f\x9c\x57\x58\x71\x9c\x58\x9c\x59\x62\xb2\x9c\x5a\x62\xb7\x62\xb8\x56\xe8\x9c\x5b\x9c\x5c\x9c\x5d\x9c\x5e\x9c\x5f\x56\xcd\x9c\x60\x50\xd3\x62\xb4\x51\x50\x62\xb5\x57\xcf\x9c\x61\x4e\x61\x4b\x73\x9c\x62\x54\xf2\x4f\x47\x5b\x67\x55\x4c\x4c\xa1\x62\xc9\x9c\x63\x9c\x64\x62\xcb\x59\x64\x9c\x65\x9c\x66\x59\xb9\x9c\x67\x9c\x68\x4d\xac\x9c\x69\x9c\x6a\x4d\xd3\x9c\x6b\x9c\x6c\x9c\x6d\x9c\x6e\x9c\x6f\x9c\x70\x62\xc2\x4b\x8e\x9c\x71\x9c\x72\x9c\x73\x5c\x6d\x62\xbf\x58\x9e\x62\xbe\x9c\x74\x9c\x75\x9c\x76\x51\x7c\x56\xc9\x9c\x77\x9c\x78\x9c\x79\x9c\x7a\x55\xe6\x9c\x7b\x9c\x7c\x9c\x7d\x9c\x7e\x52\xd6\x9c\x7f\x56\xd3\x62\xc7\x9c\x81\x9c\x82\x9c\x83\x62\xc6\x62\xc0\x9c\x84\x62\xc3\x4b\x4d\x9c\x85\x9c\x86\x5a\x79\x9c\x87\x62\xc5\x9c\x88\x9c\x89\x9c\x8a\x9c\x8b\x59\xf8\x4a\xe2\x9c\x8c\x4e\x54\x9c\x8d\x9c\x8e\x55\x8f\x9c\x8f\x4a\xbd\x9c\x90\x9c\x91\x9c\x92\x4e\x8d\x9c\x93\x59\x6d\x9c\x94\x56\xec\x67\x55\x9c\x95\x9c\x96\x9c\x97", /* 6e00 */ "\x9c\x98\x9c\x99\x9c\x9a\x9c\x9b\x9c\x9c\x54\x86\x9c\x9d\x9c\x9e\x9c\x9f\x9c\xa0\x5a\xa7\x9c\xa1\x62\xca\x5c\x75\x62\xc1\x9c\xa2\x4f\x45\x62\xc4\x9c\xa3\x9c\xa4\x5a\x87\x9c\xa5\x62\xc8\x55\x99\x9c\xa6\x9c\xa7\x62\xbd\x9c\xa8\x9c\xa9\x5a\x86\x9c\xaa\x9c\xab\x54\x9f\x4b\xc8\x9c\xac\x5a\xfb\x49\xb2\x62\xd6\x9c\xad\x9c\xae\x9c\xaf\x57\xc1\x9c\xb0\x62\xcc\x9c\xb1\x57\xbb\x9c\xb2\x4c\xda\x9c\xb3\x9c\xb4\x62\xd5\x9c\xb5\x50\x6a\x9c\xb6\x9c\xb7\x9c\xb8\x5a\x6e\x9c\xb9\x52\x8d\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xbe\x9c\xbf\x9c\xc0\x9c\xc1\x53\x68\x62\xd7\x9c\xc2\x9c\xc3\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xc8\x9c\xc9\x57\x64\x62\xce\x9c\xca\x9c\xcb\x9c\xcc\x9c\xcd\x62\xd3\x62\xd4\x9c\xce\x4d\xfd\x9c\xcf\x58\x87\x9c\xd0\x9c\xd1\x5b\x5f\x9c\xd2\x9c\xd3\x9c\xd4\x62\xd1\x9c\xd5\x9c\xd6\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xda\x9c\xdb\x9c\xdc\x9c\xdd\x9c\xde\x9c\xdf\x62\xcf\x9c\xe0\x9c\xe1\x62\xcd\x9c\xe2\x9c\xe3\x9c\xe4\x9c\xe5\x9c\xe6\x9c\xe7\x9c\xe8\x9c\xe9\x9c\xea\x9c\xeb\x9c\xec\x9c\xed\x9c\xee\x9c\xef\x9c\xf0\x57\x86\x55\xa9", /* 6e80 */ "\x9c\xf1\x9c\xf2\x9c\xf3\x50\xa2\x9c\xf4\x4f\x46\x62\xd2\x9c\xf5\x9c\xf6\x4c\xc7\x9c\xf7\x9c\xf8\x9c\xf9\x9c\xfa\x9c\xfb\x62\xe6\x5a\xb3\x9c\xfc\x9c\xfd\x9d\x41\x9d\x42\x9d\x43\x9d\x44\x9d\x45\x62\xda\x9d\x46\x9d\x47\x9d\x48\x51\x90\x9d\x49\x9d\x4a\x62\xe8\x9d\x4b\x9d\x4c\x59\xe6\x9d\x4d\x9d\x4e\x62\xde\x9d\x4f\x62\xdf\x9d\x50\x9d\x51\x58\x4a\x9d\x52\x9d\x53\x9d\x54\x9d\x55\x56\x7d\x9d\x56\x62\xd9\x62\xd0\x9d\x57\x62\xe4\x9d\x58\x54\xdb\x62\xe2\x9d\x59\x9d\x5a\x52\xe6\x62\xe1\x9d\x5b\x62\xe0\x9d\x5c\x9d\x5d\x9d\x5e\x4a\x9d\x62\xe7\x9d\x5f\x9d\x60\x9d\x61\x9d\x62\x4b\x82\x9d\x63\x9d\x64\x9d\x65\x5c\x6c\x9d\x66\x9d\x67\x9d\x68\x62\xe5\x9d\x69\x4e\x4c\x9d\x6a\x5c\x72\x56\xce\x66\x99\x9d\x6b\x62\xe3\x9d\x6c\x9d\x6d\x4d\x97\x9d\x6e\x9d\x6f\x9d\x70\x5b\xcc\x62\xd8\x62\xdb\x51\xf9\x62\xdd\x9d\x71\x51\xca\x50\xc3\x51\xcf\x9d\x72\x49\x96\x56\xb1\x9d\x73\x9d\x74\x9d\x75\x9d\x76\x9d\x77\x9d\x78\x9d\x79\x9d\x7a\x9d\x7b\x9d\x7c\x4b\x6e\x9d\x7d\x9d\x7e\x9d\x7f\x9d\x81\x62\xee\x9d\x82\x9d\x83\x9d\x84\x9d\x85\x9d\x86\x9d\x87", /* 6f00 */ "\x9d\x88\x9d\x89\x53\xae\x9d\x8a\x9d\x8b\x9d\x8c\x53\xe0\x9d\x8d\x9d\x8e\x62\xf4\x9d\x8f\x9d\x90\x9d\x91\x9d\x92\x9d\x93\x51\xa8\x9d\x94\x9d\x95\x9d\x96\x50\xeb\x59\x7d\x62\xed\x9d\x97\x9d\x98\x9d\x99\x9d\x9a\x9d\x9b\x9d\x9c\x9d\x9d\x9d\x9e\x9d\x9f\x9d\xa0\x52\xad\x9d\xa1\x9d\xa2\x9d\xa3\x62\xec\x9d\xa4\x9d\xa5\x9d\xa6\x9d\xa7\x62\xf5\x62\xf3\x51\xfd\x9d\xa8\x62\xdc\x9d\xa9\x62\xef\x9d\xaa\x55\xfd\x9d\xab\x5b\x64\x9d\xac\x9d\xad\x62\xf0\x9d\xae\x9d\xaf\x9d\xb0\x9d\xb1\x9d\xb2\x9d\xb3\x9d\xb4\x59\x9b\x9d\xb5\x9d\xb6\x9d\xb7\x9d\xb8\x9d\xb9\x9d\xba\x9d\xbb\x62\xea\x62\xeb\x9d\xbc\x9d\xbd\x9d\xbe\x62\xf1\x9d\xbf\x57\xaa\x9d\xc0\x9d\xc1\x9d\xc2\x9d\xc3\x9d\xc4\x9d\xc5\x9d\xc6\x9d\xc7\x9d\xc8\x9d\xc9\x53\x6b\x9d\xca\x9d\xcb\x9d\xcc\x54\x51\x9d\xcd\x51\xb9\x9d\xce\x9d\xcf\x9d\xd0\x62\xe9\x9d\xd1\x9d\xd2\x9d\xd3\x51\x6a\x9d\xd4\x9d\xd5\x9d\xd6\x9d\xd7\x9d\xd8\x9d\xd9\x56\xb5\x4a\x51\x9d\xda\x9d\xdb\x9d\xdc\x62\xfa\x9d\xdd\x62\xf2\x9d\xde\x9d\xdf\x9d\xe0\x62\xf9\x9d\xe1\x62\xfc\x9d\xe2\x62\xfb\x9d\xe3\x9d\xe4\x9d\xe5", /* 6f80 */ "\x9d\xe6\x9d\xe7\x9d\xe8\x9d\xe9\x4a\x6e\x9d\xea\x9d\xeb\x9d\xec\x4a\x5a\x62\xf6\x9d\xed\x9d\xee\x62\xf8\x62\xf7\x53\x8d\x9d\xef\x9d\xf0\x9d\xf1\x9d\xf2\x9d\xf3\x9d\xf4\x9d\xf5\x9d\xf6\x9d\xf7\x9d\xf8\x9d\xf9\x9d\xfa\x9d\xfb\x50\xbc\x9d\xfc\x9d\xfd\x9e\x41\x9e\x42\x5a\xe7\x9e\x43\x9e\x44\x9e\x45\x9e\x46\x9e\x47\x63\x42\x9e\x48\x9e\x49\x9e\x4a\x9e\x4b\x9e\x4c\x9e\x4d\x9e\x4e\x9e\x4f\x9e\x50\x9e\x51\x9e\x52\x48\xc3\x9e\x53\x9e\x54\x63\x44\x9e\x55\x9e\x56\x63\x43\x9e\x57\x9e\x58\x9e\x59\x9e\x5a\x9e\x5b\x9e\x5c\x4e\xa3\x9e\x5d\x63\x45\x9e\x5e\x9e\x5f\x9e\x60\x9e\x61\x9e\x62\x9e\x63\x63\x41\x9e\x64\x9e\x65\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x62\xfd\x49\x95\x9e\x6b\x9e\x6c\x9e\x6d\x9e\x6e\x9e\x6f\x9e\x70\x9e\x71\x9e\x72\x9e\x73\x9e\x74\x9e\x75\x63\x48\x9e\x76\x63\x49\x63\x46\x9e\x77\x9e\x78\x9e\x79\x9e\x7a\x9e\x7b\x9e\x7c\x9e\x7d\x9e\x7e\x9e\x7f\x9e\x81\x9e\x82\x9e\x83\x63\x47\x63\x4a\x9e\x84\x9e\x85\x9e\x86\x9e\x87\x9e\x88\x9e\x89\x9e\x8a\x9e\x8b\x9e\x8c\x9e\x8d\x9e\x8e\x9e\x8f\x9e\x90\x9e\x91\x9e\x92\x9e\x93", /* 7000 */ "\x9e\x94\x9e\x95\x9e\x96\x9e\x97\x9e\x98\x9e\x99\x9e\x9a\x9e\x9b\x9e\x9c\x9e\x9d\x9e\x9e\x9e\x9f\x9e\xa0\x9e\xa1\x9e\xa2\x9e\xa3\x9e\xa4\x53\xd8\x9e\xa5\x9e\xa6\x9e\xa7\x9e\xa8\x9e\xa9\x9e\xaa\x9e\xab\x9e\xac\x63\x4b\x63\x4d\x9e\xad\x9e\xae\x9e\xaf\x9e\xb0\x9e\xb1\x9e\xb2\x9e\xb3\x63\x4c\x9e\xb4\x9e\xb5\x9e\xb6\x9e\xb7\x9e\xb8\x9e\xb9\x9e\xba\x9e\xbb\x9e\xbc\x9e\xbd\x9e\xbe\x9e\xbf\x9e\xc0\x9e\xc1\x9e\xc2\x9e\xc3\x9e\xc4\x63\x4f\x9e\xc5\x9e\xc6\x9e\xc7\x63\x4e\x9e\xc8\x9e\xc9\x9e\xca\x9e\xcb\x9e\xcc\x9e\xcd\x9e\xce\x9e\xcf\x9e\xd0\x9e\xd1\x9e\xd2\x9e\xd3\x9e\xd4\x9e\xd5\x9e\xd6\x9e\xd7\x9e\xd8\x9e\xd9\x4d\x81\x9e\xda\x9e\xdb\x63\x50\x9e\xdc\x9e\xdd\x9e\xde\x9e\xdf\x9e\xe0\x9e\xe1\x9e\xe2\x9e\xe3\x9e\xe4\x9e\xe5\x9e\xe6\x9e\xe7\x9e\xe8\x9e\xe9\x63\x51\x9e\xea\x9e\xeb\x9e\xec\x9e\xed\x9e\xee\x9e\xef\x9e\xf0\x9e\xf1\x9e\xf2\x9e\xf3\x9e\xf4\x9e\xf5\x4e\x91\x66\xe0\x52\x91\x9e\xf6\x4b\x66\x4e\x72\x9e\xf7\x9e\xf8\x9e\xf9\x9e\xfa\x51\x8a\x5a\xed\x9e\xfb\x4f\xc3\x9e\xfc\x9e\xfd\x9f\x41\x5c\x66\x9f\x42\x5a\xd5\x49\xd2", /* 7080 */ "\x66\xbd\x9f\x43\x9f\x44\x9f\x45\x9f\x46\x65\xc0\x9f\x47\x9f\x48\x9f\x49\x51\xae\x4a\xb5\x9f\x4a\x9f\x4b\x9f\x4c\x59\x77\x9f\x4d\x9f\x4e\x9f\x4f\x4a\x54\x9f\x50\x54\xb1\x50\x5b\x66\xbf\x9f\x51\x9f\x52\x5b\xca\x9f\x53\x9f\x54\x66\xbe\x66\xc0\x9f\x55\x9f\x56\x9f\x57\x9f\x58\x9f\x59\x9f\x5a\x9f\x5b\x9f\x5c\x9f\x5d\x9f\x5e\x9f\x5f\x9f\x60\x9f\x61\x66\xc4\x4f\xe5\x56\xbe\x53\x7a\x4f\xbb\x9f\x62\x66\xc5\x9f\x63\x49\x9f\x9f\x64\x9f\x65\x9f\x66\x66\xc3\x5b\x48\x4b\x84\x9f\x67\x66\xc1\x51\x56\x4a\x84\x9f\x68\x9f\x69\x66\xc2\x56\x58\x50\xc2\x56\xfd\x9f\x6a\x9f\x6b\x9f\x6c\x9f\x6d\x51\x72\x9f\x6e\x66\xc7\x9f\x6f\x9f\x70\x9f\x71\x9f\x72\x9f\x73\x9f\x74\x9f\x75\x9f\x76\x9f\x77\x9f\x78\x9f\x79\x9f\x7a\x9f\x7b\x4d\xe5\x50\xd2\x9f\x7c\x5b\xf1\x9f\x7d\x9f\x7e\x9f\x7f\x59\x6c\x9f\x81\x9f\x82\x9f\x83\x9f\x84\x50\x5e\x9f\x85\x4c\x53\x55\x75\x66\xc6\x4e\x83\x9f\x86\x56\xcb\x4f\x9e\x54\xc7\x9f\x87\x58\x49\x9f\x88\x9f\x89\x9f\x8a\x9f\x8b\x9f\x8c\x9f\x8d\x9f\x8e\x57\x8a\x9f\x8f\x53\x8c\x9f\x90\x9f\x91\x9f\x92\x4c\x8a\x9f\x93\x9f\x94", /* 7100 */ "\x9f\x95\x9f\x96\x9f\x97\x9f\x98\x9f\x99\x9f\x9a\x9f\x9b\x9f\x9c\x9f\x9d\x59\x69\x4d\xb7\x9f\x9e\x9f\x9f\x9f\xa0\x9f\xa1\x9f\xa2\x66\xc8\x9f\xa3\x9f\xa4\x66\xc9\x9f\xa5\x4e\x60\x66\xca\x9f\xa6\x66\xe1\x49\x5a\x4c\x79\x9f\xa7\x9f\xa8\x9f\xa9\x9f\xaa\x9f\xab\x9f\xac\x9f\xad\x9f\xae\x9f\xaf\x9f\xb0\x9f\xb1\x4f\x59\x9f\xb2\x9f\xb3\x9f\xb4\x9f\xb5\x9f\xb6\x9f\xb7\x9f\xb8\x9f\xb9\x66\xcb\x59\x87\x66\xcc\x9f\xba\x9f\xbb\x9f\xbc\x9f\xbd\x54\xba\x9f\xbe\x9f\xbf\x9f\xc0\x9f\xc1\x9f\xc2\x9f\xc3\x9f\xc4\x9f\xc5\x9f\xc6\x9f\xc7\x9f\xc8\x9f\xc9\x9f\xca\x9f\xcb\x66\xd0\x9f\xcc\x9f\xcd\x9f\xce\x9f\xcf\x66\xd2\x9f\xd0\x4e\x6d\x9f\xd1\x4e\xe4\x9f\xd2\x9f\xd3\x9f\xd4\x9f\xd5\x9f\xd6\x9f\xd7\x9f\xd8\x9f\xd9\x9f\xda\x9f\xdb\x9f\xdc\x9f\xdd\x9f\xde\x66\xce\x9f\xdf\x55\x57\x9f\xe0\x9f\xe1\x9f\xe2\x9f\xe3\x9f\xe4\x52\x5a\x9f\xe5\x66\xe2\x5b\x75\x66\xcf\x9f\xe6\x9f\xe7\x9f\xe8\x9f\xe9\x9f\xea\x5b\xf2\x9f\xeb\x9f\xec\x9f\xed\x66\xd1\x66\xcd\x9f\xee\x9f\xef\x9f\xf0\x9f\xf1\x66\xd3\x9f\xf2\x66\xd4\x9f\xf3\x9f\xf4\x55\x5f\x9f\xf5\x9f\xf6", /* 7180 */ "\x9f\xf7\x9f\xf8\x9f\xf9\x9f\xfa\x58\x48\x9f\xfb\x9f\xfc\x9f\xfd\xa0\x41\xa0\x42\x58\xdb\xa0\x43\xa0\x44\xa0\x45\xa0\x46\x59\x4c\xa0\x47\xa0\x48\xa0\x49\xa0\x4a\x54\xda\xa0\x4b\xa0\x4c\xa0\x4d\x66\xd5\x57\xf4\xa0\x4e\xa0\x4f\xa0\x50\xa0\x51\xa0\x52\x55\xeb\x66\xd9\xa0\x53\xa0\x54\xa0\x55\xa0\x56\xa0\x57\xa0\x58\xa0\x59\x66\xd8\xa0\x5a\xa0\x5b\xa0\x5c\x48\xbd\xa0\x5d\xa0\x5e\xa0\x5f\xa0\x60\xa0\x61\xa0\x62\x66\xd6\xa0\x63\x66\xd7\xa0\x64\xa0\x65\xa0\x66\x66\xe3\xa0\x67\xa0\x68\xa0\x69\xa0\x6a\xa0\x6b\xa0\x6c\xa0\x6d\xa0\x6e\xa0\x6f\x54\xbb\xa0\x70\xa0\x71\xa0\x72\xa0\x73\xa0\x74\xa0\x75\xa0\x76\xa0\x77\xa0\x78\xa0\x79\x51\x67\xa0\x7a\xa0\x7b\xa0\x7c\xa0\x7d\xa0\x7e\x66\xdb\x59\x81\xa0\x7f\xa0\x81\xa0\x82\xa0\x83\xa0\x84\xa0\x85\xa0\x86\xa0\x87\xa0\x88\xa0\x89\x66\xda\xa0\x8a\xa0\x8b\xa0\x8c\xa0\x8d\x5a\xee\xa0\x8e\x66\xdc\xa0\x8f\xa0\x90\xa0\x91\xa0\x92\xa0\x93\xa0\x94\x5e\x66\xa0\x95\xa0\x96\xa0\x97\xa0\x98\xa0\x99\xa0\x9a\xa0\x9b\xa0\x9c\xa0\x9d\xa0\x9e\x66\xdd\xa0\x9f\xa0\xa0\xa0\xa1\xa0\xa2\xa0\xa3\xa0\xa4", /* 7200 */ "\xa0\xa5\xa0\xa6\xa0\xa7\xa0\xa8\xa0\xa9\xa0\xaa\x49\x4c\xa0\xab\xa0\xac\xa0\xad\xa0\xae\xa0\xaf\xa0\xb0\xa0\xb1\xa0\xb2\xa0\xb3\xa0\xb4\xa0\xb5\xa0\xb6\xa0\xb7\xa0\xb8\xa0\xb9\xa0\xba\xa0\xbb\xa0\xbc\xa0\xbd\xa0\xbe\xa0\xbf\xa0\xc0\x66\xde\xa0\xc1\xa0\xc2\xa0\xc3\xa0\xc4\xa0\xc5\xa0\xc6\xa0\xc7\xa0\xc8\xa0\xc9\xa0\xca\x66\xdf\xa0\xcb\x5c\x46\xa0\xcc\x53\x60\xa0\xcd\xa0\xce\xa0\xcf\x66\x5c\x48\xad\xa0\xd0\xa0\xd1\xa0\xd2\x4f\xf3\x4c\xb7\x59\xae\x48\xd5\x4b\x9a\xa0\xd3\x5c\xb2\xa0\xd4\x56\x4c\xa0\xd5\x62\x7d\xa0\xd6\xa0\xd7\xa0\xd8\xa0\xd9\xa0\xda\xa0\xdb\xa0\xdc\x53\xab\x48\xe5\xa0\xdd\xa0\xde\xa0\xdf\x53\x66\x66\x59\xa0\xe0\xa0\xe1\xa0\xe2\xa0\xe3\x66\x5a\xa0\xe4\xa0\xe5\xa0\xe6\x66\x5b\xa0\xe7\xa0\xe8\x59\x60\xa0\xe9\x53\x43\xa0\xea\x65\xf1\xa0\xeb\x52\xb1\xa0\xec\x52\xb4\x50\xcd\xa0\xed\xa0\xee\xa0\xef\x65\xf2\x52\xc0\xa0\xf0\x57\xee\xa0\xf1\xa0\xf2\xa0\xf3\xa0\xf4\x65\xef\x65\xf3\xa0\xf5\xa0\xf6\x55\x9d\xa0\xf7\xa0\xf8\x54\x43\xa0\xf9\xa0\xfa\xa0\xfb\x56\xd7\x57\xfd\xa0\xfc\xa0\xfd\xa1\x41\x65\xf4\x65\xf5", /* 7280 */ "\x58\x4c\x50\xe6\xa1\x42\xa1\x43\x65\xf6\xa1\x44\xa1\x45\xa1\x46\xa1\x47\xa1\x48\x4b\xbe\x65\xf7\xa1\x49\x65\xf8\xa1\x4a\x65\xf9\xa1\x4b\xa1\x4c\x65\xfa\xa1\x4d\xa1\x4e\xa1\x4f\xa1\x50\xa1\x51\xa1\x52\xa1\x53\xa1\x54\xa1\x55\xa1\x56\xa1\x57\xa1\x58\x65\xf0\xa1\x59\xa1\x5a\xa1\x5b\xa1\x5c\xa1\x5d\xa1\x5e\xa1\x5f\xa1\x60\xa1\x61\xa1\x62\xa1\x63\xa1\x64\x54\xad\x61\x8c\xa1\x65\x4c\x58\x61\x8d\xa1\x66\xa1\x67\xa1\x68\x61\x8e\xa1\x69\x5c\x54\x61\x8f\x61\x90\x5a\x6c\xa1\x6a\xa1\x6b\xa1\x6c\xa1\x6d\xa1\x6e\xa1\x6f\xa1\x70\x61\x92\x50\x92\x61\x91\x4b\x72\xa1\x71\xa1\x72\xa1\x73\x49\x57\xa1\x74\xa1\x75\xa1\x76\xa1\x77\x61\x94\x61\x93\xa1\x78\x4d\xfb\xa1\x79\x61\x95\xa1\x7a\xa1\x7b\xa1\x7c\xa1\x7d\x4d\x57\xa1\x7e\x4f\xd0\xa1\x7f\xa1\x81\xa1\x82\xa1\x83\x52\xfb\xa1\x84\x4d\xdc\x4f\x66\xa1\x85\xa1\x86\xa1\x87\xa1\x88\xa1\x89\xa1\x8a\x61\x96\x61\x98\xa1\x8b\xa1\x8c\x4b\xbf\x58\x61\x55\xa7\x61\x97\x5b\x99\x5a\x9d\x61\x99\x61\x9d\x61\x9a\xa1\x8d\xa1\x8e\x61\x9b\x50\xe9\xa1\x8f\x61\x9f\x61\xa0\x50\xc6\xa1\x90\xa1\x91\xa1\x92", /* 7300 */ "\xa1\x93\x61\x9c\xa1\x94\x61\x9e\xa1\x95\xa1\x96\xa1\x97\xa1\x98\xa1\x99\xa1\x9a\x61\xa4\xa1\x9b\xa1\x9c\xa1\x9d\x51\x74\xa1\x9e\xa1\x9f\xa1\xa0\xa1\xa1\x61\xa2\xa1\xa2\x61\xa7\x49\xfd\x61\xa1\xa1\xa3\xa1\xa4\xa1\xa5\x52\x6d\x49\xc1\x61\xa6\x61\xa5\xa1\xa6\xa1\xa7\x61\xa3\x61\xa8\xa1\xa8\xa1\xa9\x61\xaa\xa1\xaa\xa1\xab\xa1\xac\x58\xc8\x5b\xec\x52\x48\x61\xab\xa1\xad\x58\x77\xa1\xae\xa1\xaf\x61\xad\xa1\xb0\xa1\xb1\x4d\xee\xa1\xb2\xa1\xb3\x65\x81\x61\xac\x61\xa9\xa1\xb4\xa1\xb5\xa1\xb6\xa1\xb7\x4e\x4b\x5a\xb2\xa1\xb8\xa1\xb9\xa1\xba\xa1\xbb\xa1\xbc\xa1\xbd\xa1\xbe\xa1\xbf\xa1\xc0\xa1\xc1\xa1\xc2\xa1\xc3\xa1\xc4\x61\xaf\xa1\xc5\xa1\xc6\x61\xae\xa1\xc7\x65\x82\xa1\xc8\xa1\xc9\xa1\xca\xa1\xcb\x61\xb0\xa1\xcc\xa1\xcd\xa1\xce\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xd2\xa1\xd3\x61\xb1\xa1\xd4\xa1\xd5\xa1\xd6\xa1\xd7\xa1\xd8\xa1\xd9\xa1\xda\xa1\xdb\xa1\xdc\xa1\xdd\xa1\xde\x61\xb2\x56\xa0\xa1\xdf\x61\xb3\xa1\xe0\xa1\xe1\xa1\xe2\xa1\xe3\xa1\xe4\xa1\xe5\xa1\xe6\xa1\xe7\xa1\xe8\xa1\xe9\xa1\xea\xa1\xeb\xa1\xec\xa1\xed\x61\xb4\xa1\xee", /* 7380 */ "\xa1\xef\xa1\xf0\xa1\xf1\xa1\xf2\x58\xfd\xa1\xf3\xa1\xf4\x51\xc9\xa1\xf5\x5a\x92\xa1\xf6\x57\x96\xa1\xf7\xa1\xf8\x64\x81\xa1\xf9\xa1\xfa\x64\x82\xa1\xfb\xa1\xfc\xa1\xfd\xa2\x41\x4f\xc0\xa2\x42\xa2\x43\xa2\x44\xa2\x45\x51\xe9\xa2\x46\xa2\x47\xa2\x48\x64\x85\xa2\x49\xa2\x4a\x64\x84\xa2\x4b\xa2\x4c\xa2\x4d\xa2\x4e\xa2\x4f\xa2\x50\x57\x87\xa2\x51\x52\x55\xa2\x52\xa2\x53\x64\x83\x4e\x57\x58\x76\xa2\x54\x51\x82\x64\x8a\xa2\x55\xa2\x56\xa2\x57\x64\x89\xa2\x58\xa2\x59\x64\x95\x49\xa2\xa2\x5a\xa2\x5b\xa2\x5c\xa2\x5d\x64\x8b\xa2\x5e\x64\x87\xa2\x5f\xa2\x60\xa2\x61\xa2\x62\xa2\x63\x64\x8d\x64\x8c\x55\x5a\xa2\x64\xa2\x65\x5b\x85\xa2\x66\x64\x86\x4c\x49\x64\x88\xa2\x67\xa2\x68\xa2\x69\xa2\x6a\xa2\x6b\xa2\x6c\xa2\x6d\x64\x8f\xa2\x6e\xa2\x6f\xa2\x70\xa2\x71\x64\x94\xa2\x72\x5b\xe8\xa2\x73\xa2\x74\xa2\x75\xa2\x76\x64\x8e\xa2\x77\x64\x93\xa2\x78\x64\x92\xa2\x79\xa2\x7a\xa2\x7b\x48\xdf\xa2\x7c\xa2\x7d\xa2\x7e\xa2\x7f\x64\x96\xa2\x81\xa2\x82\xa2\x83\xa2\x84\xa2\x85\xa2\x86\xa2\x87\xa2\x88\xa2\x89\xa2\x8a\xa2\x8b\xa2\x8c\xa2\x8d", /* 7400 */ "\xa2\x8e\xa2\x8f\xa2\x90\x54\x93\xa2\x91\x50\xc4\x50\xec\xa2\x92\xa2\x93\x51\x91\x64\x91\xa2\x94\xa2\x95\xa2\x96\xa2\x97\x64\x97\x56\x97\xa2\x98\xa2\x99\xa2\x9a\xa2\x9b\xa2\x9c\xa2\x9d\xa2\x9e\xa2\x9f\xa2\xa0\x64\xa1\x64\xa0\xa2\xa1\xa2\xa2\xa2\xa3\xa2\xa4\xa2\xa5\xa2\xa6\x5c\x61\xa2\xa7\xa2\xa8\x64\x9b\x64\x9a\xa2\xa9\x64\x9c\xa2\xaa\x64\x98\xa2\xab\x64\x9f\xa2\xac\x64\x9e\xa2\xad\x64\x9d\xa2\xae\xa2\xaf\x51\x75\x54\x79\x53\x9e\x53\x63\xa2\xb0\xa2\xb1\xa2\xb2\xa2\xb3\xa2\xb4\x54\x8e\xa2\xb5\xa2\xb6\xa2\xb7\xa2\xb8\x64\xa2\xa2\xb9\xa2\xba\xa2\xbb\xa2\xbc\xa2\xbd\xa2\xbe\xa2\xbf\xa2\xc0\xa2\xc1\xa2\xc2\xa2\xc3\xa2\xc4\xa2\xc5\xa2\xc6\xa2\xc7\xa2\xc8\xa2\xc9\xa2\xca\xa2\xcb\x64\xa5\xa2\xcc\x64\xa4\xa2\xcd\x64\xa6\x4d\xf6\x64\x99\x64\xa3\xa2\xce\x54\xef\x55\x4a\xa2\xcf\xa2\xd0\xa2\xd1\xa2\xd2\xa2\xd3\xa2\xd4\xa2\xd5\xa2\xd6\xa2\xd7\xa2\xd8\xa2\xd9\xa2\xda\xa2\xdb\x64\xa8\xa2\xdc\xa2\xdd\x4d\x86\xa2\xde\xa2\xdf\xa2\xe0\xa2\xe1\xa2\xe2\x59\x9f\x64\xa7\xa2\xe3\xa2\xe4\xa2\xe5\xa2\xe6\xa2\xe7\xa2\xe8\x64\xa9\xa2\xe9", /* 7480 */ "\x64\xac\x64\xad\xa2\xea\x51\x47\xa2\xeb\xa2\xec\xa2\xed\x64\xae\xa2\xee\xa2\xef\xa2\xf0\x64\xaf\xa2\xf1\xa2\xf2\x64\xab\xa2\xf3\x64\xb3\xa2\xf4\xa2\xf5\xa2\xf6\xa2\xf7\xa2\xf8\xa2\xf9\xa2\xfa\xa2\xfb\xa2\xfc\xa2\xfd\xa3\x41\x64\xaa\xa3\x42\x64\xb0\xa3\x43\xa3\x44\xa3\x45\xa3\x46\xa3\x47\xa3\x48\xa3\x49\xa3\x4a\x64\xb4\x64\xb1\x64\xb2\xa3\x4b\xa3\x4c\xa3\x4d\xa3\x4e\xa3\x4f\xa3\x50\xa3\x51\xa3\x52\xa3\x53\xa3\x54\xa3\x55\xa3\x56\xa3\x57\xa3\x58\xa3\x59\xa3\x5a\x64\xb6\xa3\x5b\xa3\x5c\xa3\x5d\xa3\x5e\xa3\x5f\xa3\x60\xa3\x61\xa3\x62\xa3\x63\xa3\x64\xa3\x65\xa3\x66\xa3\x67\xa3\x68\xa3\x69\xa3\x6a\xa3\x6b\xa3\x6c\xa3\x6d\xa3\x6e\xa3\x6f\xa3\x70\xa3\x71\x64\xb5\xa3\x72\xa3\x73\xa3\x74\xa3\x75\xa3\x76\xa3\x77\xa3\x78\xa3\x79\xa3\x7a\x4d\x6f\xa3\x7b\x68\xab\xa3\x7c\x68\xac\xa3\x7d\x53\xaf\x48\xe9\x54\xbe\xa3\x7e\x57\x7f\xa3\x7f\xa3\x81\xa3\x82\xa3\x83\xa3\x84\xa3\x85\xa3\x86\x57\xcc\x65\xb0\xa3\x87\xa3\x88\xa3\x89\xa3\x8a\x65\xb1\xa3\x8b\x53\xbe\x4a\xc8\xa3\x8c\xa3\x8d\xa3\x8e\xa3\x8f\xa3\x90\xa3\x91\xa3\x92\x65\xb2", /* 7500 */ "\xa3\x93\xa3\x94\xa3\x95\xa3\x96\x5b\x88\xa3\x97\xa3\x98\xa3\x99\xa3\x9a\xa3\x9b\xa3\x9c\xa3\x9d\xa3\x9e\x5f\x9a\xa3\x9f\x65\xb3\xa3\xa0\x65\xb4\xa3\xa1\x65\xb5\xa3\xa2\xa3\xa3\xa3\xa4\xa3\xa5\x4c\xc9\x60\x50\x55\x96\xa3\xa6\x56\xef\xa3\xa7\xa3\xa8\x55\x9b\xa3\xa9\xa3\xaa\xa3\xab\xa3\xac\xa3\xad\x55\x9c\xa3\xae\xa3\xaf\x5a\x63\x56\x46\xa3\xb0\x4c\xa5\x68\xad\x49\x62\xa3\xb1\x63\x58\x56\xee\x5a\x69\x4e\xd6\x55\x8b\xa3\xb2\x4b\x88\xa3\xb3\x52\xcf\x4b\x8a\xa3\xb4\x67\xad\x4e\x4d\xa3\xb5\xa3\xb6\x64\x7e\xa3\xb7\x67\xae\xa3\xb8\xa3\xb9\xa3\xba\xa3\xbb\x4a\x49\xa3\xbc\xa3\xbd\x67\xb1\xa3\xbe\xa3\xbf\x67\xb0\x4f\x88\xa3\xc0\x67\xaf\x57\xb6\xa3\xc1\xa3\xc2\xa3\xc3\xa3\xc4\x53\x6f\xa3\xc5\xa3\xc6\xa3\xc7\xa3\xc8\x51\x95\x5e\x6e\x67\xb2\x58\xf2\xa3\xc9\xa3\xca\xa3\xcb\xa3\xcc\xa3\xcd\xa3\xce\xa3\xcf\xa3\xd0\x51\xd3\x53\xe7\xa3\xd1\xa3\xd2\xa3\xd3\x4c\x4c\xa3\xd4\xa3\xd5\xa3\xd6\xa3\xd7\xa3\xd8\xa3\xd9\xa3\xda\x67\xb3\xa3\xdb\x4a\x8c\xa3\xdc\xa3\xdd\xa3\xde\x4e\x9c\x67\xb4\xa3\xdf\xa3\xe0\xa3\xe1\xa3\xe2\xa3\xe3\x64\x7c", /* 7580 */ "\xa3\xe4\xa3\xe5\xa3\xe6\x67\xb5\xa3\xe7\xa3\xe8\x4f\x4e\xa3\xe9\xa3\xea\xa3\xeb\xa3\xec\x69\x83\xa3\xed\xa3\xee\xa3\xef\x55\xe7\xa3\xf0\x59\xc8\x68\xd9\xa3\xf1\x68\xda\xa3\xf2\x68\xdb\x51\x66\xa3\xf3\x4c\xec\x4f\xcd\xa3\xf4\xa3\xf5\x68\xdd\xa3\xf6\x53\x51\x68\xdc\x59\x92\xa3\xf7\x68\xdf\x48\xcb\x4f\x8b\xa3\xf8\xa3\xf9\xa3\xfa\xa3\xfb\xa3\xfc\x59\xde\x68\xde\xa3\xfd\x4a\xae\x4c\x89\x68\xe5\x68\xe4\x53\xa2\x68\xe0\x68\xe1\x4a\xc2\xa4\x41\xa4\x42\x68\xe2\x5b\x8f\xa4\x43\xa4\x44\x56\xda\x4f\xd1\x4e\xb1\xa4\x45\xa4\x46\xa4\x47\x68\xe7\x68\xe6\x68\xe3\x49\xa0\xa4\x48\x5b\xa1\x5a\x58\x4f\xb6\x54\xab\xa4\x49\xa4\x4a\x68\xe9\xa4\x4b\xa4\x4c\xa4\x4d\xa4\x4e\x59\x98\xa4\x4f\x5b\xcb\x4d\xda\x68\xe8\xa4\x50\x4b\xba\xa4\x51\xa4\x52\x57\x54\xa4\x53\xa4\x54\x53\xa5\xa4\x55\xa4\x56\xa4\x57\x51\x41\x68\xea\x68\xed\xa4\x58\x68\xec\x68\xef\x68\xeb\xa4\x59\x4e\x5e\x68\xee\xa4\x5a\xa4\x5b\xa4\x5c\xa4\x5d\x56\xb4\x68\xf1\xa4\x5e\xa4\x5f\x4a\x75\xa4\x60\xa4\x61\xa4\x62\xa4\x63\x49\x74\xa4\x64\xa4\x65\x68\xf2\xa4\x66\xa4\x67\x68\xf3", /* 7600 */ "\x68\xf5\x4a\xe0\xa4\x68\x68\xf0\xa4\x69\x68\xf6\xa4\x6a\xa4\x6b\xa4\x6c\xa4\x6d\x68\xf9\xa4\x6e\x68\xf7\xa4\x6f\xa4\x70\xa4\x71\x68\xf4\xa4\x72\xa4\x73\xa4\x74\xa4\x75\x68\xfc\xa4\x76\x68\xf8\x68\xfb\x68\xfd\xa4\x77\x69\x41\xa4\x78\xa4\x79\xa4\x7a\x57\xc0\x69\x44\xa4\x7b\x69\x43\xa4\x7c\x51\x97\x68\xfa\x55\xdc\xa4\x7d\xa4\x7e\x4a\xf0\x49\x92\x56\xb0\xa4\x7f\x69\x46\xa4\x81\xa4\x82\x69\x47\xa4\x83\xa4\x84\x69\x4c\x5b\x6e\x69\x49\xa4\x85\xa4\x86\x54\xb2\xa4\x87\xa4\x88\xa4\x89\x69\x42\xa4\x8a\x69\x4b\x69\x48\x69\x45\xa4\x8b\xa4\x8c\x69\x4a\xa4\x8d\xa4\x8e\xa4\x8f\xa4\x90\xa4\x91\xa4\x92\xa4\x93\xa4\x94\x48\xa8\x69\x4d\xa4\x95\xa4\x96\xa4\x97\xa4\x98\xa4\x99\xa4\x9a\x69\x4f\xa4\x9b\x69\x51\xa4\x9c\xa4\x9d\xa4\x9e\xa4\x9f\xa4\xa0\x69\x50\xa4\xa1\x69\x4e\xa4\xa2\xa4\xa3\xa4\xa4\xa4\xa5\x59\x42\xa4\xa6\xa4\xa7\xa4\xa8\xa4\xa9\xa4\xaa\xa4\xab\xa4\xac\x69\x52\xa4\xad\xa4\xae\xa4\xaf\x69\x53\xa4\xb0\xa4\xb1\xa4\xb2\xa4\xb3\xa4\xb4\xa4\xb5\xa4\xb6\xa4\xb7\x4d\x90\xa4\xb8\xa4\xb9\x4b\x67\xa4\xba\x48\xd6\x48\xd8\xa4\xbb", /* 7680 */ "\xa4\xbc\xa4\xbd\x5a\xec\xa4\xbe\x4b\x64\xa4\xbf\x4f\x74\x4e\x6a\x68\xa6\xa4\xc0\xa4\xc1\x4c\xdd\xa4\xc2\xa4\xc3\x68\xa7\xa4\xc4\xa4\xc5\x48\xa7\xa4\xc6\x68\xa8\xa4\xc7\xa4\xc8\x57\x8f\xa4\xc9\xa4\xca\x68\xa9\xa4\xcb\xa4\xcc\xa4\xcd\xa4\xce\xa4\xcf\xa4\xd0\xa4\xd1\xa4\xd2\xa4\xd3\xa4\xd4\x68\xaa\xa4\xd5\xa4\xd6\xa4\xd7\xa4\xd8\xa4\xd9\xa4\xda\xa4\xdb\xa4\xdc\xa4\xdd\x53\xa3\xa4\xde\xa4\xdf\x5b\xe4\x69\x85\xa4\xe0\x69\x86\xa4\xe1\xa4\xe2\xa4\xe3\xa4\xe4\xa4\xe5\xa4\xe6\xa4\xe7\xa4\xe8\xa4\xe9\xa4\xea\x52\x94\xa4\xeb\xa4\xec\x5a\x7b\xa4\xed\xa4\xee\x5b\xd0\x53\x89\xa4\xef\x5a\x4f\xa4\xf0\x59\xe5\xa4\xf1\xa4\xf2\x67\xc0\x48\xba\x5b\x55\x59\x6e\x4e\xdf\x4d\xcf\xa4\xf3\x50\x99\xa4\xf4\x4c\xc6\x4b\x61\x53\x6c\xa4\xf5\xa4\xf6\x55\xa1\xa4\xf7\xa4\xf8\xa4\xf9\x52\x6b\xa4\xfa\xa4\xfb\xa4\xfc\xa4\xfd\xa5\x41\x67\xc1\xa5\x42\xa5\x43\xa5\x44\xa5\x45\xa5\x46\xa5\x47\xa5\x48\xa5\x49\x52\xbe\x4b\xa1\xa5\x4a\x67\x8d\x52\x44\xa5\x4b\x5b\xb0\xa5\x4c\xa5\x4d\xa5\x4e\x58\x81\x67\x90\xa5\x4f\xa5\x50\x53\x6e\xa5\x51\x4b\xdb\xa5\x52", /* 7700 */ "\xa5\x53\x55\xa0\xa5\x54\xa5\x55\x67\x8e\xa5\x56\xa5\x57\x67\x91\x67\x92\x52\x5c\xa5\x58\x50\x54\xa5\x59\x67\x8f\xa5\x5a\xa5\x5b\xa5\x5c\xa5\x5d\xa5\x5e\xa5\x5f\xa5\x60\xa5\x61\xa5\x62\xa5\x63\xa5\x64\x67\x95\x67\x93\xa5\x65\xa5\x66\xa5\x67\xa5\x68\x5b\x87\x52\x7f\xa5\x69\x67\x94\xa5\x6a\xa5\x6b\xa5\x6c\x67\x97\xa5\x6d\x5b\x43\x59\x43\xa5\x6e\xa5\x6f\xa5\x70\x67\x96\xa5\x71\x52\x70\xa5\x72\xa5\x73\xa5\x74\xa5\x75\xa5\x76\x67\x98\x50\x95\x4f\xeb\x67\x99\xa5\x77\x56\xf6\xa5\x78\x59\x7b\xa5\x79\xa5\x7a\xa5\x7b\x5c\x65\x5b\x97\xa5\x7c\x67\x9d\xa5\x7d\xa5\x7e\xa5\x7f\x67\x9c\xa5\x81\xa5\x82\xa5\x83\xa5\x84\xa5\x85\xa5\x86\xa5\x87\xa5\x88\x67\x9a\x67\x9b\xa5\x89\xa5\x8a\xa5\x8b\xa5\x8c\xa5\x8d\xa5\x8e\xa5\x8f\xa5\x90\x67\x9e\x4f\xa5\xa5\x91\xa5\x92\xa5\x93\xa5\x94\xa5\x95\x56\x4f\x67\xa0\x4b\xbc\xa5\x96\x67\xa1\x52\xbf\xa5\x97\x67\x9f\xa5\x98\xa5\x99\x4f\x7e\x49\xc6\xa5\x9a\xa5\x9b\xa5\x9c\xa5\x9d\xa5\x9e\xa5\x9f\xa5\xa0\xa5\xa1\xa5\xa2\xa5\xa3\xa5\xa4\xa5\xa5\x4b\xc2\xa5\xa6\xa5\xa7\xa5\xa8\x67\xa4\x5c\xb9\x67\xa2", /* 7780 */ "\x67\xa5\xa5\xa9\xa5\xaa\xa5\xab\x52\x8a\x4a\x93\xa5\xac\xa5\xad\xa5\xae\xa5\xaf\xa5\xb0\xa5\xb1\x67\xa6\x67\xa3\x58\x59\xa5\xb2\xa5\xb3\x67\xa7\x51\xf6\xa5\xb4\xa5\xb5\xa5\xb6\xa5\xb7\xa5\xb8\xa5\xb9\xa5\xba\xa5\xbb\xa5\xbc\xa5\xbd\xa5\xbe\xa5\xbf\x67\xa8\x67\xa9\xa5\xc0\x5f\xaa\xa5\xc1\xa5\xc2\x53\xb2\xa5\xc3\x54\x66\xa5\xc4\x5b\xf4\x4b\x69\xa5\xc5\x56\x52\xa5\xc6\xa5\xc7\xa5\xc8\x67\xaa\xa5\xc9\xa5\xca\x57\x4b\xa5\xcb\x67\xab\xa5\xcc\xa5\xcd\xa5\xce\xa5\xcf\xa5\xd0\x5b\x50\xa5\xd1\x67\xac\xa5\xd2\x6b\xc3\xa5\xd3\xa5\xd4\xa5\xd5\xa5\xd6\xa5\xd7\xa5\xd8\xa5\xd9\xa5\xda\xa5\xdb\xa5\xdc\xa5\xdd\xa5\xde\xa5\xdf\x5e\x67\xa5\xe0\xa5\xe1\xa5\xe2\xa5\xe3\xa5\xe4\xa5\xe5\xa5\xe6\xa5\xe7\xa5\xe8\x4a\xa2\xa5\xe9\xa5\xea\xa5\xeb\x52\x4c\x69\x87\xa5\xec\xa5\xed\xa5\xee\xa5\xef\xa5\xf0\x55\xb7\x59\xd2\xa5\xf1\x5b\xa9\xa5\xf2\x68\x93\xa5\xf3\x4f\xd7\xa5\xf4\x4f\x63\x68\x94\x4b\xcb\x48\xaa\xa5\xf5\xa5\xf6\xa5\xf7\xa5\xf8\x55\xae\xa5\xf9\xa5\xfa\x67\x56\xa5\xfb\x67\x57\xa5\xfc\xa5\xfd\xa6\x41\xa6\x42\x57\xf8\x4c\x4f\x50\x94", /* 7800 */ "\x67\x58\x51\xea\x55\x50\xa6\x43\xa6\x44\xa6\x45\xa6\x46\xa6\x47\xa6\x48\x67\x59\xa6\x49\xa6\x4a\x53\xf5\x50\x53\xa6\x4b\xa6\x4c\xa6\x4d\x67\x5c\x53\x99\xa6\x4e\x59\x70\xa6\x4f\x5c\x49\x67\x5a\x67\x5b\xa6\x50\x59\x83\xa6\x51\x67\x5f\x67\x60\xa6\x52\x67\x64\xa6\x53\xa6\x54\xa6\x55\x67\x68\xa6\x56\x67\x66\x67\x6e\x5b\x89\xa6\x57\x67\x69\xa6\x58\xa6\x59\x67\x67\x67\x5e\xa6\x5a\xa6\x5b\x53\x8a\xa6\x5c\xa6\x5d\xa6\x5e\x53\xc5\xa6\x5f\xa6\x60\x55\x8a\x5a\xd1\x67\x61\x67\x62\x67\x63\x67\x65\xa6\x61\x50\xf8\xa6\x62\x4a\xa0\xa6\x63\xa6\x64\xa6\x65\xa6\x66\x4d\x89\xa6\x67\x67\x70\xa6\x68\xa6\x69\xa6\x6a\xa6\x6b\x67\x71\xa6\x6c\x67\x6a\xa6\x6d\x67\x6f\xa6\x6e\x57\xf7\xa6\x6f\xa6\x70\x56\x56\x67\x6c\x67\x6d\xa6\x71\xa6\x72\xa6\x73\xa6\x74\xa6\x75\x58\x96\xa6\x76\xa6\x77\xa6\x78\xa6\x79\xa6\x7a\xa6\x7b\xa6\x7c\xa6\x7d\xa6\x7e\xa6\x7f\xa6\x81\xa6\x82\x67\x72\x51\x93\x5a\x52\x67\x6b\x54\xb6\xa6\x83\xa6\x84\xa6\x85\xa6\x86\xa6\x87\xa6\x88\xa6\x89\xa6\x8a\x4e\xee\xa6\x8b\xa6\x8c\xa6\x8d\xa6\x8e\x53\x91\xa6\x8f\xa6\x90\xa6\x91", /* 7880 */ "\xa6\x92\xa6\x93\xa6\x94\xa6\x95\xa6\x96\xa6\x97\xa6\x98\x67\x76\xa6\x99\x4b\x90\xa6\x9a\xa6\x9b\x51\xb4\x48\xac\x56\x8a\xa6\x9c\xa6\x9d\x49\x4e\xa6\x9e\x67\x74\xa6\x9f\xa6\xa0\xa6\xa1\x57\x8c\x4b\x83\xa6\xa2\x67\x75\x67\x73\x67\x77\xa6\xa3\xa6\xa4\x4b\x9b\xa6\xa5\x67\x78\xa6\xa6\x67\x79\xa6\xa7\x67\x7c\xa6\xa8\x49\x6c\xa6\xa9\xa6\xaa\xa6\xab\xa6\xac\xa6\xad\xa6\xae\xa6\xaf\xa6\xb0\x53\x97\x4e\xed\x67\x7a\x56\xbb\x49\xe9\xa6\xb1\xa6\xb2\xa6\xb3\xa6\xb4\x67\x7b\xa6\xb5\xa6\xb6\xa6\xb7\xa6\xb8\x52\xea\xa6\xb9\xa6\xba\x4a\xc4\xa6\xbb\xa6\xbc\xa6\xbd\x48\xf4\xa6\xbe\xa6\xbf\xa6\xc0\x67\x7f\x50\xd9\x4a\xe7\xa6\xc1\xa6\xc2\xa6\xc3\xa6\xc4\x53\x6d\xa6\xc5\xa6\xc6\xa6\xc7\x67\x7d\x50\x64\xa6\xc8\xa6\xc9\xa6\xca\x67\x7e\xa6\xcb\xa6\xcc\xa6\xcd\xa6\xce\xa6\xcf\xa6\xd0\xa6\xd1\xa6\xd2\xa6\xd3\xa6\xd4\xa6\xd5\xa6\xd6\xa6\xd7\xa6\xd8\x52\xa4\xa6\xd9\xa6\xda\xa6\xdb\x67\x81\xa6\xdc\xa6\xdd\xa6\xde\xa6\xdf\xa6\xe0\x67\x82\xa6\xe1\x67\x84\xa6\xe2\xa6\xe3\x51\x77\xa6\xe4\xa6\xe5\x4e\x67\xa6\xe6\xa6\xe7\xa6\xe8\xa6\xe9\xa6\xea", /* 7900 */ "\xa6\xeb\x4f\x58\xa6\xec\xa6\xed\xa6\xee\x67\x83\xa6\xef\xa6\xf0\xa6\xf1\xa6\xf2\xa6\xf3\xa6\xf4\xa6\xf5\xa6\xf6\xa6\xf7\xa6\xf8\xa6\xf9\xa6\xfa\xa6\xfb\x67\x85\xa6\xfc\xa6\xfd\xa7\x41\xa7\x42\xa7\x43\xa7\x44\xa7\x45\xa7\x46\xa7\x47\xa7\x48\x67\x87\xa7\x49\xa7\x4a\xa7\x4b\xa7\x4c\xa7\x4d\x67\x86\xa7\x4e\xa7\x4f\xa7\x50\xa7\x51\xa7\x52\xa7\x53\xa7\x54\xa7\x55\xa7\x56\xa7\x57\xa7\x58\xa7\x59\xa7\x5a\xa7\x5b\xa7\x5c\x67\x88\xa7\x5d\xa7\x5e\xa7\x5f\xa7\x60\xa7\x61\x55\xbd\x66\xe9\x50\xf0\xa7\x62\x55\x88\xa7\x63\x66\xea\x53\xed\xa7\x64\xa7\x65\xa7\x66\xa7\x67\x66\xeb\xa7\x68\x53\xec\x66\xec\xa7\x69\xa7\x6a\xa7\x6b\xa7\x6c\xa7\x6d\xa7\x6e\xa7\x6f\xa7\x70\xa7\x71\x66\xef\xa7\x72\xa7\x73\x5c\x87\x66\xf2\xa7\x74\xa7\x75\x66\xf0\x66\xed\x66\xee\x5c\x43\x55\x92\x56\x8f\x66\xf3\xa7\x76\x66\xf1\xa7\x77\xa7\x78\x58\x8a\xa7\x79\x66\xf5\x53\xb0\xa7\x7a\xa7\x7b\xa7\x7c\xa7\x7d\x4e\xbf\xa7\x7e\x66\xf4\xa7\x7f\xa7\x81\xa7\x82\xa7\x83\xa7\x84\xa7\x85\xa7\x86\x4b\x5b\x4e\x97\xa7\x87\x66\xf6\xa7\x88\xa7\x89\xa7\x8a\xa7\x8b\xa7\x8c", /* 7980 */ "\x5d\x98\x4f\x9c\xa7\x8d\xa7\x8e\x51\xba\x66\xf7\xa7\x8f\xa7\x90\xa7\x91\xa7\x92\x66\xf8\xa7\x93\xa7\x94\xa7\x95\xa7\x96\x4c\xa2\xa7\x97\xa7\x98\xa7\x99\xa7\x9a\xa7\x9b\xa7\x9c\xa7\x9d\xa7\x9e\xa7\x9f\xa7\xa0\x66\xf9\xa7\xa1\xa7\xa2\xa7\xa3\xa7\xa4\xa7\xa5\xa7\xa6\xa7\xa7\xa7\xa8\xa7\xa9\xa7\xaa\xa7\xab\xa7\xac\x66\xfa\xa7\xad\xa7\xae\xa7\xaf\xa7\xb0\xa7\xb1\xa7\xb2\xa7\xb3\xa7\xb4\xa7\xb5\xa7\xb6\xa7\xb7\x66\xfb\xa7\xb8\xa7\xb9\xa7\xba\xa7\xbb\xa7\xbc\x5a\x8e\x5c\xad\x50\xea\xa7\xbd\x54\x7d\x4d\xcb\xa7\xbe\x58\xe2\x56\x5d\xa7\xbf\x57\x5a\xa7\xc0\xa7\xc1\x4c\xd0\xa7\xc2\xa7\xc3\x49\x9d\xa7\xc4\x54\x90\xa7\xc5\x5b\xd5\xa7\xc6\xa7\xc7\xa7\xc8\x50\x66\x52\x8c\xa7\xc9\xa7\xca\x68\x96\xa7\xcb\xa7\xcc\x52\x78\xa7\xcd\xa7\xce\xa7\xcf\xa7\xd0\xa7\xd1\xa7\xd2\x5c\x83\xa7\xd3\xa7\xd4\xa7\xd5\x68\x98\x4a\x73\xa7\xd6\x54\x78\x59\x8e\xa7\xd7\x5b\xc7\xa7\xd8\x68\x99\xa7\xd9\x68\x97\xa7\xda\x4e\x9e\x4a\x66\xa7\xdb\xa7\xdc\xa7\xdd\xa7\xde\xa7\xdf\xa7\xe0\xa7\xe1\x4f\x75\xa7\xe2\xa7\xe3\x59\xc5\xa7\xe4\x4e\x81\xa7\xe5\xa7\xe6", /* 7a00 */ "\x58\x41\xa7\xe7\x68\x9d\x68\x9c\xa7\xe8\xa7\xe9\x68\x9a\xa7\xea\xa7\xeb\xa7\xec\xa7\xed\x4a\x6c\xa7\xee\x55\x74\x56\x50\xa7\xef\xa7\xf0\xa7\xf1\xa7\xf2\xa7\xf3\x68\x9f\xa7\xf4\xa7\xf5\x48\xdd\xa7\xf6\xa7\xf7\x5b\xc8\xa7\xf8\xa7\xf9\xa7\xfa\x68\x9e\xa7\xfb\x4a\x8e\xa7\xfc\xa7\xfd\x6b\xd4\xa8\x41\xa8\x42\xa8\x43\xa8\x44\xa8\x45\xa8\x46\xa8\x47\xa8\x48\xa8\x49\xa8\x4a\xa8\x4b\xa8\x4c\xa8\x4d\xa8\x4e\xa8\x4f\x57\xc7\xa8\x50\xa8\x51\xa8\x52\x68\xa1\xa8\x53\x68\xa0\xa8\x54\x4b\x5e\x4e\xd9\x4e\x9d\xa8\x55\x4c\xe4\xa8\x56\xa8\x57\xa8\x58\xa8\x59\xa8\x5a\xa8\x5b\x52\xc1\xa8\x5c\xa8\x5d\xa8\x5e\xa8\x5f\xa8\x60\xa8\x61\xa8\x62\xa8\x63\xa8\x64\xa8\x65\x68\xa2\xa8\x66\xa8\x67\xa8\x68\xa8\x69\xa8\x6a\x56\x8c\xa8\x6b\xa8\x6c\xa8\x6d\xa8\x6e\xa8\x6f\xa8\x70\xa8\x71\xa8\x72\xa8\x73\xa8\x74\xa8\x75\xa8\x76\xa8\x77\xa8\x78\xa8\x79\xa8\x7a\xa8\x7b\xa8\x7c\xa8\x7d\xa8\x7e\xa8\x7f\xa8\x81\xa8\x82\xa8\x83\x68\xa5\xa8\x84\xa8\x85\xa8\x86\x59\x48\xa8\x87\x4f\xbe\x54\x8f\x69\x56\x69\x57\x50\x75\xa8\x88\xa8\x89\xa8\x8a\xa8\x8b\x4a\xa8", /* 7a80 */ "\x69\x58\x57\x5b\xa8\x8c\x54\x74\x5b\x4d\xa8\x8d\x69\x59\xa8\x8e\x69\x5a\xa8\x8f\xa8\x90\xa8\x91\xa8\x92\x54\x6f\xa8\x93\xa8\x94\xa8\x95\x59\xa3\x5b\xce\xa8\x96\xa8\x97\x69\x5b\x4f\x71\x4a\xaf\x4f\xbc\xa8\x98\xa8\x99\xa8\x9a\x4a\xdb\x57\xd0\xa8\x9b\x50\x7f\x69\x5d\xa8\x9c\xa8\x9d\xa8\x9e\xa8\x9f\x50\x9b\x69\x5c\xa8\xa0\x69\x5f\xa8\xa1\xa8\xa2\xa8\xa3\x69\x5e\x69\x60\xa8\xa4\xa8\xa5\xa8\xa6\xa8\xa7\xa8\xa8\x69\x61\xa8\xa9\xa8\xaa\xa8\xab\xa8\xac\xa8\xad\xa8\xae\xa8\xaf\xa8\xb0\xa8\xb1\xa8\xb2\xa8\xb3\x51\x9f\xa8\xb4\xa8\xb5\xa8\xb6\xa8\xb7\xa8\xb8\xa8\xb9\xa8\xba\xa8\xbb\xa8\xbc\xa8\xbd\xa8\xbe\x51\x42\xa8\xbf\xa8\xc0\xa8\xc1\xa8\xc2\xa8\xc3\xa8\xc4\xa8\xc5\xa8\xc6\xa8\xc7\xa8\xc8\x55\xf9\xa8\xc9\xa8\xca\x5b\x5e\xa8\xcb\xa8\xcc\xa8\xcd\xa8\xce\x4f\xb9\x4f\xb8\x5b\x62\xa8\xcf\xa8\xd0\x50\x42\xa8\xd1\x57\x4f\x69\x55\xa8\xd2\xa8\xd3\xa8\xd4\xa8\xd5\xa8\xd6\xa8\xd7\x4f\x7f\xa8\xd8\x4b\xca\xa8\xd9\xa8\xda\xa8\xdb\xa8\xdc\xa8\xdd\xa8\xde\xa8\xdf\xa8\xe0\xa8\xe1\x5b\xf0\x6a\x63\xa8\xe2\xa8\xe3\x6a\x64\xa8\xe4\x4c\xcc", /* 7b00 */ "\xa8\xe5\xa8\xe6\xa8\xe7\x6a\x66\x6a\x67\xa8\xe8\x48\xc9\xa8\xe9\x6a\x65\xa8\xea\x6a\x69\x56\x92\xa8\xeb\xa8\xec\xa8\xed\x6a\x6b\xa8\xee\x58\xa5\xa8\xef\xa8\xf0\x49\x6a\x6a\x68\xa8\xf1\xa8\xf2\xa8\xf3\x6a\x6f\xa8\xf4\x4b\x71\xa8\xf5\xa8\xf6\x6a\x77\xa8\xf7\x6a\x72\xa8\xf8\xa8\xf9\xa8\xfa\x6a\x74\x6a\x73\x4c\x9c\xa8\xfb\x49\x5f\xa8\xfc\x6a\x6e\x6a\x6a\x4b\x7a\xa8\xfd\x6a\x70\xa9\x41\xa9\x42\x6a\x71\xa9\x43\x6a\x75\xa9\x44\xa9\x45\xa9\x46\xa9\x47\x6a\x6d\xa9\x48\x4e\xe2\xa9\x49\x51\x9e\xa9\x4a\x6a\x76\xa9\x4b\xa9\x4c\xa9\x4d\xa9\x4e\xa9\x4f\xa9\x50\x6a\x7a\xa9\x51\x6a\x6c\xa9\x52\x4b\x68\xa9\x53\x4f\x8f\x6a\x7c\xa9\x54\xa9\x55\x4c\x44\x50\x91\x5b\xfd\x57\x52\xa9\x56\x4a\xef\xa9\x57\x49\xde\xa9\x58\x6a\x78\xa9\x59\x6a\x79\x55\x58\xa9\x5a\x6a\x7d\xa9\x5b\xa9\x5c\x6a\x7e\xa9\x5d\x6a\x82\xa9\x5e\xa9\x5f\xa9\x60\xa9\x61\xa9\x62\xa9\x63\xa9\x64\xa9\x65\xa9\x66\xa9\x67\xa9\x68\x6a\x7f\xa9\x69\xa9\x6a\x6a\x84\x6a\x83\xa9\x6b\xa9\x6c\x6a\x7b\xa9\x6d\x50\x8b\xa9\x6e\x4a\x90\xa9\x6f\x6a\x81\xa9\x70\xa9\x71\x54\x49\xa9\x72", /* 7b80 */ "\x4e\xf1\xa9\x73\xa9\x74\xa9\x75\xa9\x76\x6a\x8c\xa9\x77\xa9\x78\xa9\x79\xa9\x7a\xa9\x7b\xa9\x7c\xa9\x7d\x4d\x5f\xa9\x7e\xa9\x7f\x6a\x85\xa9\x81\xa9\x82\xa9\x83\x49\xac\x4e\x9f\xa9\x84\x56\x84\xa9\x85\xa9\x86\xa9\x87\xa9\x88\x6a\x8e\x6a\x8a\xa9\x89\xa9\x8a\xa9\x8b\x4d\x7c\x6a\x8f\xa9\x8c\xa9\x8d\xa9\x8e\x6a\x86\x6a\x87\x6a\x8b\x51\xe0\x6a\x8d\x6a\x90\x6a\x89\x4e\xfc\xa9\x8f\xa9\x90\xa9\x91\x58\x85\xa9\x92\xa9\x93\x6a\x91\xa9\x94\xa9\x95\xa9\x96\x6a\x88\xa9\x97\xa9\x98\xa9\x99\xa9\x9a\xa9\x9b\xa9\x9c\xa9\x9d\xa9\x9e\x6a\x93\xa9\x9f\xa9\xa0\xa9\xa1\xa9\xa2\x5c\x4d\x53\xa9\xa9\xa3\xa9\xa4\xa9\xa5\xa9\xa6\x6a\x94\xa9\xa7\xa9\xa8\xa9\xa9\xa9\xaa\x6a\x92\xa9\xab\x51\xa7\xa9\xac\xa9\xad\xa9\xae\xa9\xaf\xa9\xb0\x4c\xdc\x6a\x96\xa9\xb1\xa9\xb2\x6a\x95\xa9\xb3\xa9\xb4\xa9\xb5\x4a\xda\xa9\xb6\xa9\xb7\xa9\xb8\x6a\x97\x6a\x98\xa9\xb9\xa9\xba\xa9\xbb\x6a\x99\xa9\xbc\xa9\xbd\xa9\xbe\x50\xb9\xa9\xbf\xa9\xc0\x50\xe8\xa9\xc1\xa9\xc2\xa9\xc3\xa9\xc4\xa9\xc5\x53\x92\xa9\xc6\xa9\xc7\xa9\xc8\xa9\xc9\x6a\x9c\xa9\xca\x6a\x9b\xa9\xcb", /* 7c00 */ "\xa9\xcc\xa9\xcd\xa9\xce\xa9\xcf\xa9\xd0\xa9\xd1\xa9\xd2\x4a\xd7\xa9\xd3\xa9\xd4\xa9\xd5\x6a\x9f\x6a\x9a\xa9\xd6\xa9\xd7\x6a\x9d\xa9\xd8\xa9\xd9\xa9\xda\xa9\xdb\xa9\xdc\xa9\xdd\x6a\x9e\xa9\xde\xa9\xdf\xa9\xe0\xa9\xe1\xa9\xe2\xa9\xe3\xa9\xe4\xa9\xe5\x6a\xa0\xa9\xe6\xa9\xe7\xa9\xe8\xa9\xe9\xa9\xea\xa9\xeb\x6a\xa2\x4e\x69\xa9\xec\xa9\xed\x6a\xa1\xa9\xee\xa9\xef\xa9\xf0\xa9\xf1\xa9\xf2\xa9\xf3\xa9\xf4\xa9\xf5\xa9\xf6\xa9\xf7\xa9\xf8\xa9\xf9\xa9\xfa\x6a\xa3\xa9\xfb\xa9\xfc\xa9\xfd\xaa\x41\xaa\x42\xaa\x43\x49\xbd\x6a\xa5\x6a\xa4\xaa\x44\xaa\x45\xaa\x46\xaa\x47\xaa\x48\xaa\x49\xaa\x4a\xaa\x4b\xaa\x4c\xaa\x4d\xaa\x4e\x4e\xad\xaa\x4f\xaa\x50\xaa\x51\xaa\x52\xaa\x53\xaa\x54\xaa\x55\xaa\x56\xaa\x57\xaa\x58\xaa\x59\xaa\x5a\xaa\x5b\xaa\x5c\xaa\x5d\xaa\x5e\xaa\x5f\xaa\x60\xaa\x61\xaa\x62\xaa\x63\xaa\x64\xaa\x65\xaa\x66\xaa\x67\xaa\x68\xaa\x69\xaa\x6a\xaa\x6b\xaa\x6c\xaa\x6d\xaa\x6e\xaa\x6f\xaa\x70\xaa\x71\xaa\x72\xaa\x73\x52\x77\x5d\x82\xaa\x74\xaa\x75\xaa\x76\xaa\x77\xaa\x78\xaa\x79\x50\xdf\x6a\xcb\x5c\x71\xaa\x7a\xaa\x7b", /* 7c80 */ "\xaa\x7c\xaa\x7d\xaa\x7e\xaa\x7f\xaa\x81\xaa\x82\xaa\x83\xaa\x84\xaa\x85\x4c\x7b\xaa\x86\xaa\x87\xaa\x88\xaa\x89\xaa\x8a\xaa\x8b\xaa\x8c\x6a\xcd\x51\x43\xaa\x8d\xaa\x8e\x53\xc8\xaa\x8f\x4a\xd5\x5b\x53\xaa\x90\xaa\x91\xaa\x92\x6a\xcf\x6a\xce\x6a\xd0\x56\x7a\xaa\x93\xaa\x94\x6a\xd1\xaa\x95\x5a\xc0\x5b\xdf\xaa\x96\xaa\x97\xaa\x98\xaa\x99\x4c\x81\xaa\x9a\xaa\x9b\xaa\x9c\x51\x58\xaa\x9d\xaa\x9e\x51\x5b\x6a\xd2\x4f\xab\xaa\x9f\xaa\xa0\xaa\xa1\xaa\xa2\xaa\xa3\x4a\xe1\xaa\xa4\xaa\xa5\x6a\xd3\x6a\xd4\x4f\xaa\xaa\xa6\xaa\xa7\x6a\xd5\xaa\xa8\xaa\xa9\xaa\xaa\x6a\xda\xaa\xab\x6a\xd6\x6a\xd9\xaa\xac\x4d\xfc\xaa\xad\x6a\xd7\x6a\xd8\xaa\xae\xaa\xaf\xaa\xb0\xaa\xb1\xaa\xb2\xaa\xb3\xaa\xb4\x4c\xe1\x56\xc6\x6a\xdb\xaa\xb5\x49\xd9\xaa\xb6\xaa\xb7\x52\x73\xaa\xb8\xaa\xb9\x5a\xe2\x50\x57\xaa\xba\xaa\xbb\xaa\xbc\xaa\xbd\xaa\xbe\xaa\xbf\xaa\xc0\x6a\xdc\xaa\xc1\xaa\xc2\xaa\xc3\xaa\xc4\xaa\xc5\xaa\xc6\x53\x54\xaa\xc7\xaa\xc8\xaa\xc9\xaa\xca\xaa\xcb\xaa\xcc\xaa\xcd\xaa\xce\x6a\xe8\xaa\xcf\xaa\xd0\x58\x55\xaa\xd1\xaa\xd2\xaa\xd3\xaa\xd4", /* 7d00 */ "\xaa\xd5\xaa\xd6\xaa\xd7\xaa\xd8\xaa\xd9\xaa\xda\xaa\xdb\xaa\xdc\xaa\xdd\xaa\xde\x57\xc8\xaa\xdf\xaa\xe0\xaa\xe1\xaa\xe2\xaa\xe3\xaa\xe4\xaa\xe5\xaa\xe6\xaa\xe7\xaa\xe8\xaa\xe9\xaa\xea\xaa\xeb\xaa\xec\xaa\xed\xaa\xee\xaa\xef\xaa\xf0\xaa\xf1\xaa\xf2\xaa\xf3\x56\x78\xaa\xf4\x56\x98\xaa\xf5\xaa\xf6\xaa\xf7\xaa\xf8\x4f\x95\xaa\xf9\xaa\xfa\xaa\xfb\x5c\x6f\xaa\xfc\xaa\xfd\xab\x41\x50\xda\xab\x42\xab\x43\xab\x44\xab\x45\xab\x46\xab\x47\xab\x48\xab\x49\xab\x4a\xab\x4b\xab\x4c\xab\x4d\xab\x4e\xab\x4f\xab\x50\xab\x51\xab\x52\xab\x53\xab\x54\xab\x55\xab\x56\xab\x57\xab\x58\xab\x59\xab\x5a\xab\x5b\xab\x5c\xab\x5d\xab\x5e\xab\x5f\xab\x60\xab\x61\xab\x62\xab\x63\xab\x64\xab\x65\xab\x66\xab\x67\xab\x68\xab\x69\xab\x6a\xab\x6b\xab\x6c\xab\x6d\xab\x6e\xab\x6f\xab\x70\xab\x71\xab\x72\xab\x73\xab\x74\xab\x75\xab\x76\xab\x77\xab\x78\xab\x79\xab\x7a\xab\x7b\xab\x7c\xab\x7d\xab\x7e\xab\x7f\x58\xf4\xab\x81\xab\x82\xab\x83\xab\x84\xab\x85\xab\x86\xab\x87\xab\x88\x6a\xe9\xab\x89\xab\x8a\xab\x8b\xab\x8c\xab\x8d\xab\x8e\xab\x8f\xab\x90", /* 7d80 */ "\xab\x91\xab\x92\xab\x93\xab\x94\xab\x95\xab\x96\xab\x97\xab\x98\xab\x99\xab\x9a\xab\x9b\xab\x9c\xab\x9d\xab\x9e\xab\x9f\xab\xa0\xab\xa1\xab\xa2\xab\xa3\xab\xa4\xab\xa5\xab\xa6\xab\xa7\xab\xa8\xab\xa9\xab\xaa\xab\xab\xab\xac\xab\xad\xab\xae\xab\xaf\xab\xb0\xab\xb1\xab\xb2\xab\xb3\xab\xb4\xab\xb5\xab\xb6\x6a\xea\xab\xb7\xab\xb8\xab\xb9\xab\xba\xab\xbb\xab\xbc\xab\xbd\x6a\xeb\xab\xbe\xab\xbf\xab\xc0\xab\xc1\xab\xc2\xab\xc3\xab\xc4\xab\xc5\xab\xc6\xab\xc7\xab\xc8\xab\xc9\xab\xca\xab\xcb\xab\xcc\xab\xcd\xab\xce\xab\xcf\xab\xd0\xab\xd1\xab\xd2\xab\xd3\xab\xd4\xab\xd5\xab\xd6\xab\xd7\xab\xd8\xab\xd9\xab\xda\xab\xdb\xab\xdc\xab\xdd\xab\xde\xab\xdf\xab\xe0\xab\xe1\xab\xe2\xab\xe3\xab\xe4\xab\xe5\xab\xe6\xab\xe7\xab\xe8\xab\xe9\xab\xea\xab\xeb\xab\xec\xab\xed\xab\xee\xab\xef\xab\xf0\xab\xf1\xab\xf2\xab\xf3\xab\xf4\xab\xf5\xab\xf6\xab\xf7\xab\xf8\xab\xf9\xab\xfa\xab\xfb\xab\xfc\xab\xfd\xac\x41\xac\x42\xac\x43\xac\x44\xac\x45\xac\x46\xac\x47\xac\x48\xac\x49\xac\x4a\xac\x4b\xac\x4c\xac\x4d\xac\x4e\xac\x4f\xac\x50\xac\x51", /* 7e00 */ "\xac\x52\xac\x53\xac\x54\xac\x55\xac\x56\xac\x57\xac\x58\xac\x59\xac\x5a\xac\x5b\xac\x5c\xac\x5d\xac\x5e\xac\x5f\xac\x60\xac\x61\xac\x62\xac\x63\xac\x64\xac\x65\xac\x66\xac\x67\xac\x68\xac\x69\xac\x6a\xac\x6b\xac\x6c\xac\x6d\xac\x6e\xac\x6f\xac\x70\xac\x71\xac\x72\xac\x73\xac\x74\xac\x75\xac\x76\xac\x77\xac\x78\xac\x79\xac\x7a\xac\x7b\xac\x7c\xac\x7d\xac\x7e\xac\x7f\xac\x81\xac\x82\xac\x83\xac\x84\xac\x85\xac\x86\xac\x87\xac\x88\xac\x89\xac\x8a\xac\x8b\xac\x8c\xac\x8d\x6c\x84\xac\x8e\xac\x8f\xac\x90\xac\x91\xac\x92\x4c\x51\xac\x93\xac\x94\xac\x95\xac\x96\xac\x97\x6a\xec\xac\x98\xac\x99\xac\x9a\xac\x9b\xac\x9c\xac\x9d\xac\x9e\xac\x9f\xac\xa0\xac\xa1\xac\xa2\xac\xa3\xac\xa4\xac\xa5\xac\xa6\xac\xa7\xac\xa8\xac\xa9\xac\xaa\xac\xab\xac\xac\xac\xad\xac\xae\xac\xaf\xac\xb0\xac\xb1\xac\xb2\xac\xb3\xac\xb4\xac\xb5\xac\xb6\xac\xb7\xac\xb8\xac\xb9\xac\xba\xac\xbb\xac\xbc\xac\xbd\xac\xbe\xac\xbf\xac\xc0\xac\xc1\xac\xc2\xac\xc3\xac\xc4\xac\xc5\xac\xc6\xac\xc7\xac\xc8\xac\xc9\xac\xca\xac\xcb\xac\xcc\xac\xcd\xac\xce\xac\xcf", /* 7e80 */ "\xac\xd0\xac\xd1\x5c\x8c\xac\xd2\xac\xd3\xac\xd4\xac\xd5\xac\xd6\xac\xd7\xac\xd8\xac\xd9\xac\xda\xac\xdb\xac\xdc\xac\xdd\xac\xde\xac\xdf\xac\xe0\xac\xe1\xac\xe2\xac\xe3\xac\xe4\xac\xe5\xac\xe6\xac\xe7\xac\xe8\xac\xe9\x6a\xed\xac\xea\xac\xeb\xac\xec\x63\xf8\x4f\xbf\x63\xf9\x4d\xeb\x63\xfa\x58\x6b\x63\xfb\x5a\xbb\x4e\xb5\x63\xfc\x63\xfd\x4e\xcc\x54\xd1\x57\xb2\x64\x41\xac\xed\x4a\xbe\x64\x42\x55\x54\x4c\xd8\x52\xc8\xac\xee\x5c\x7d\x51\xd9\x4c\x77\x5b\xbc\x57\xc5\x4c\x64\xac\xef\xac\xf0\x53\x46\x64\x43\x58\x7f\x64\x44\x64\x45\x64\x46\x51\x57\x5c\x8a\x55\x91\x58\x58\x5b\xae\x5b\xd4\x64\x47\x48\xec\x64\x48\x64\x49\x55\x7c\x59\xee\x4f\xac\x64\x4a\x48\xf2\x54\xdd\x4f\x82\x64\x4b\x54\xc5\xac\xf1\x64\x4c\x4e\x87\x4c\xf7\x59\x44\x64\x4d\x51\xe6\x4f\xf7\x4f\x6a\x57\x53\x64\x4e\x64\x4f\x4f\xed\x58\xe4\xac\xf2\x56\x88\x56\xcf\x4e\xcb\x64\x50\x4e\xa7\x58\xf6\x64\x51\xac\xf3\x58\xf7\x64\x52\x64\x53\x4a\xc1\x64\x54\x64\x55\x55\x9f\x57\xab\x52\x81\x64\x57\x49\x61\x4a\x92\xac\xf4\x64\x58\x64\x59\x5c\x7b\x5b\x60\x64\x5a\x51\xcb", /* 7f00 */ "\x5c\x5a\x64\x5b\x64\x5c\x64\x5d\x4e\xe9\x52\x86\x50\xc1\x64\x5e\x64\x5f\x4e\xa8\xac\xf5\x64\x60\x64\x61\x64\x56\x4b\xcf\x64\x62\xac\xf6\x64\x63\x64\x64\x4e\x5a\x4b\x7e\x51\xc5\x49\x81\x64\x65\x5a\xb4\x64\x66\x4c\xbe\x64\x68\x64\x67\x4c\x8d\xac\xf7\x64\x69\x49\xf7\x64\x6a\x64\x6b\x64\x6c\x64\x6d\x64\x6e\x64\x6f\x64\x70\x5a\x47\x56\x96\x64\x71\x64\x72\x64\x73\x64\x74\x55\x69\x64\x75\x64\x76\x64\x77\x64\x78\x64\x79\x4f\x69\x64\x7a\x6a\x5e\xac\xf8\x4c\xd6\xac\xf9\x54\xb0\xac\xfa\xac\xfb\xac\xfc\xac\xfd\xad\x41\xad\x42\xad\x43\x6a\x5f\xad\x44\x6a\x60\x6a\x61\xad\x45\xad\x46\xad\x47\xad\x48\xad\x49\xad\x4a\xad\x4b\xad\x4c\xad\x4d\xad\x4e\x4d\x7e\x57\x99\xad\x4f\xad\x50\x5c\xe7\x4d\xb0\xad\x51\x51\xdd\x67\xb6\xad\x52\x4c\x43\xad\x53\xad\x54\xad\x55\xad\x56\x67\xb8\xad\x57\x67\xb7\x48\xd4\xad\x58\xad\x59\xad\x5a\xad\x5b\xad\x5c\x67\xba\x5b\x76\x5c\x90\xad\x5d\xad\x5e\xad\x5f\x5b\xc2\xad\x60\xad\x61\x67\xbc\x55\xef\xad\x62\x67\xbb\xad\x63\xad\x64\xad\x65\xad\x66\x67\xbd\xad\x67\xad\x68\xad\x69\xad\x6a\x67\xbf\xad\x6b", /* 7f80 */ "\xad\x6c\x67\xbe\xad\x6d\xad\x6e\xad\x6f\xad\x70\xad\x71\xad\x72\xad\x73\xad\x74\x59\x93\xad\x75\x54\x5c\xad\x76\x52\x60\xad\x77\xad\x78\xad\x79\xad\x7a\xad\x7b\x4c\xe0\xad\x7c\xad\x7d\xad\x7e\xad\x7f\xad\x81\x51\x88\xad\x82\xad\x83\x6a\xc5\x58\xde\x6a\xc6\xad\x84\x58\x7b\xad\x85\xad\x86\x54\xb9\xad\x87\xad\x88\x6a\xc7\xad\x89\xad\x8a\xad\x8b\xad\x8c\xad\x8d\xad\x8e\xad\x8f\x6a\xc8\x6a\xc9\xad\x90\x6a\xca\xad\x91\xad\x92\xad\x93\xad\x94\xad\x95\x5d\x9b\x4c\xfd\xad\x96\xad\x97\x63\x92\x5a\x91\xad\x98\x6a\xdf\xad\x99\x57\xcb\xad\x9a\xad\x9b\xad\x9c\x4a\x82\xad\x9d\xad\x9e\xad\x9f\xad\xa0\x69\x54\xad\xa1\x59\xed\xad\xa2\x6a\xe0\xad\xa3\xad\xa4\xad\xa5\xad\xa6\xad\xa7\x58\x89\x6a\xe1\xad\xa8\xad\xa9\x54\x6c\xad\xaa\xad\xab\xad\xac\xad\xad\xad\xae\xad\xaf\x4b\x74\x4a\xe3\x6a\xe3\xad\xb0\xad\xb1\xad\xb2\x6a\xe2\x6a\xe4\xad\xb3\xad\xb4\x6a\xe5\xad\xb5\xad\xb6\xad\xb7\xad\xb8\x6a\xe6\xad\xb9\x4d\xb1\x48\xbe\xad\xba\x6a\xe7\xad\xbb\xad\xbc\xad\xbd\xad\xbe\xad\xbf\xad\xc0\xad\xc1\x4c\x4d\x59\xec\xad\xc2\xad\xc3\xad\xc4", /* 8000 */ "\x59\xaa\x50\xce\xad\xc5\x50\x5c\x66\x43\x5b\x7f\x65\xc7\xad\xc6\xad\xc7\xad\xc8\xad\xc9\x69\x94\x4b\xf7\x56\x43\xad\xca\xad\xcb\x52\xcc\xad\xcc\x69\x88\xad\xcd\x69\x89\x4c\xfa\x69\x8a\x4d\xc3\x5a\xc4\x48\xd1\xad\xce\xad\xcf\x69\x8b\xad\xd0\xad\xd1\xad\xd2\x69\x8c\xad\xd3\x69\x8d\xad\xd4\xad\xd5\x69\x8e\x69\x8f\x69\x90\x69\x92\x69\x91\x53\x75\xad\xd6\xad\xd7\xad\xd8\xad\xd9\xad\xda\xad\xdb\x69\x93\xad\xdc\x4b\xf9\xad\xdd\x69\x95\x59\xad\x5f\xc6\x56\x6a\xad\xde\xad\xdf\x4a\x7c\xad\xe0\x4b\x42\xad\xe1\x4d\x42\xad\xe2\xad\xe3\x52\xf3\x69\x96\xad\xe4\xad\xe5\x69\x97\xad\xe6\xad\xe7\xad\xe8\x51\x64\x51\x9c\x5b\xaf\x69\x98\xad\xe9\xad\xea\xad\xeb\xad\xec\x69\x99\xad\xed\x51\x4a\xad\xee\xad\xef\xad\xf0\x53\xb7\xad\xf1\x4f\xda\xad\xf2\xad\xf3\xad\xf4\xad\xf5\xad\xf6\xad\xf7\xad\xf8\xad\xf9\xad\xfa\xad\xfb\xad\xfc\xad\xfd\xae\x41\xae\x42\x69\x9a\x4a\xce\xae\x43\xae\x44\xae\x45\xae\x46\xae\x47\xae\x48\x69\x9b\xae\x49\xae\x4a\xae\x4b\xae\x4c\xae\x4d\xae\x4e\xae\x4f\xae\x50\xae\x51\xae\x52\xae\x53\xae\x54\xae\x55\x67\x52", /* 8080 */ "\x67\x51\xae\x56\xae\x57\x56\x81\x59\xdd\xae\x58\x56\x61\x5b\x78\xae\x59\x54\xe1\xae\x5a\x50\xde\x4e\xa0\xae\x5b\xae\x5c\xae\x5d\xae\x5e\xae\x5f\xae\x60\x66\x61\xae\x61\xae\x62\x58\xa3\xae\x63\x5b\xe1\xae\x64\x4b\xc6\x4c\xd7\x66\x60\x4c\xcd\xae\x65\x66\x5f\x4a\x46\x4d\x69\x5b\xaa\xae\x66\x4c\x95\x4c\x6a\xae\x67\xae\x68\xae\x69\x4e\xe6\x4c\x5e\x66\x66\xae\x6a\x66\x67\x48\xb8\x50\x6f\xae\x6b\x66\x65\x5a\x9e\xae\x6c\x66\x68\xae\x6d\xae\x6e\x66\x69\xae\x6f\xae\x70\x4c\x6e\xae\x71\x66\x62\x66\x64\x55\x97\x5b\xd6\x5b\x6d\x58\xb1\x66\x6f\x57\xb7\x66\x70\xae\x72\x4b\x48\xae\x73\xae\x74\xae\x75\xae\x76\xae\x77\x49\x53\x66\x72\x56\xa4\xae\x78\xae\x79\xae\x7a\xae\x7b\xae\x7c\xae\x7d\xae\x7e\x53\x76\x66\x73\xae\x7f\x66\x71\x53\x7f\x66\x6e\x55\xa3\x66\x75\x48\xfa\xae\x81\xae\x82\x4d\xf9\xae\x83\xae\x84\x5c\xb6\x69\x84\xae\x85\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x76\x63\xbf\x66\x79\xae\x86\x50\x89\x59\xc7\x66\x77\x66\x7c\x4c\xeb\x66\x78\xae\x87\x4f\x5a\xae\x88\x58\xd7\xae\x89\x48\xb6\xae\x8a\x66\x7d\x52\xdb\xae\x8b\xae\x8c", /* 8100 */ "\xae\x8d\xae\x8e\x5b\xab\xae\x8f\xae\x90\xae\x91\x4a\xdf\xae\x92\xae\x93\x51\xf5\x4e\xb8\xae\x94\xae\x95\x66\x7a\x66\x7b\x5a\xdf\x53\xe9\x52\xd3\x66\x7f\x53\x47\x5d\x96\xae\x96\x49\xb0\xae\x97\x66\x85\xae\x98\x4f\x65\xae\x99\xae\x9a\xae\x9b\x66\x83\xae\x9c\xae\x9d\xae\x9e\xae\x9f\xae\xa0\xae\xa1\xae\xa2\xae\xa3\xae\xa4\xae\xa5\xae\xa6\xae\xa7\xae\xa8\x66\x84\xae\xa9\xae\xaa\x4c\xab\xae\xab\x57\x71\x66\x86\xae\xac\xae\xad\xae\xae\x66\x82\xae\xaf\x51\x53\xae\xb0\xae\xb1\xae\xb2\xae\xb3\xae\xb4\x53\xa1\xae\xb5\xae\xb6\xae\xb7\xae\xb8\xae\xb9\xae\xba\xae\xbb\x56\xf2\xae\xbc\x66\x87\xae\xbd\x50\xaf\x59\xb7\x66\x88\xae\xbe\xae\xbf\xae\xc0\x4c\xae\x4c\xac\xae\xc1\x66\x89\x54\x5b\x57\x94\xae\xc2\xae\xc3\xae\xc4\x66\x8b\x66\x8c\xae\xc5\xae\xc6\xae\xc7\xae\xc8\xae\xc9\x66\x8e\xae\xca\xae\xcb\xae\xcc\xae\xcd\x58\xc7\xae\xce\x66\x93\xae\xcf\x66\x8f\xae\xd0\xae\xd1\xae\xd2\x66\x92\x54\xf8\xae\xd3\x59\x9d\x66\x8d\xae\xd4\xae\xd5\x66\x8a\xae\xd6\xae\xd7\xae\xd8\xae\xd9\x4c\xb8\x58\x79\x52\xe4\x66\x90\x66\x91\x56\xd9\x57\x68", /* 8180 */ "\x48\xf1\xae\xda\x66\x97\xae\xdb\xae\xdc\xae\xdd\xae\xde\xae\xdf\x66\x96\xae\xe0\x49\xb1\xae\xe1\xae\xe2\xae\xe3\xae\xe4\x4c\xdf\xae\xe5\x66\x98\xae\xe6\xae\xe7\xae\xe8\xae\xe9\xae\xea\xae\xeb\x49\x8d\xae\xec\xae\xed\x56\xc4\x52\xa3\x58\x45\xae\xee\xae\xef\xae\xf0\xae\xf1\xae\xf2\x66\x9a\xae\xf3\xae\xf4\x66\xa1\xae\xf5\x53\x93\xae\xf6\x66\x9b\xae\xf7\xae\xf8\xae\xf9\xae\xfa\xae\xfb\xae\xfc\xae\xfd\xaf\x41\x55\x65\xaf\x42\xaf\x43\xaf\x44\xaf\x45\xaf\x46\xaf\x47\x61\xde\x66\x9f\xaf\x48\xaf\x49\xaf\x4a\xaf\x4b\x57\x6e\x66\xa0\x49\x7b\x5a\x57\xaf\x4c\xaf\x4d\x59\xdb\xaf\x4e\xaf\x4f\xaf\x50\x66\x9e\xaf\x51\x66\x9c\xaf\x52\xaf\x53\xaf\x54\xaf\x55\xaf\x56\xaf\x57\xaf\x58\xaf\x59\xaf\x5a\xaf\x5b\xaf\x5c\xaf\x5d\xaf\x5e\xaf\x5f\xaf\x60\xaf\x61\xaf\x62\xaf\x63\xaf\x64\xaf\x65\xaf\x66\xaf\x67\x4a\x5c\xaf\x68\xaf\x69\xaf\x6a\x65\xaf\xaf\x6b\xaf\x6c\x5c\x74\xaf\x6d\x6a\xaa\x4a\x95\xaf\x6e\xaf\x6f\xaf\x70\xaf\x71\xaf\x72\x5b\xc0\x5b\xc1\xaf\x73\xaf\x74\xaf\x75\xaf\x76\xaf\x77\xaf\x78\x5b\x8a\x4f\xc9\xaf\x79\x6a\xa6\xaf\x7a", /* 8200 */ "\x59\xa7\x6a\xa7\x6a\xa8\xaf\x7b\x6a\xa9\x4f\xca\x5a\x7f\xaf\x7c\xaf\x7d\xaf\x7e\xaf\x7f\xaf\x81\x55\x81\x55\x82\xaf\x82\xaf\x83\x6a\x62\xaf\x84\x55\xe5\xaf\x85\x56\xf1\xaf\x86\xaf\x87\xaf\x88\xaf\x89\xaf\x8a\xaf\x8b\x61\xb5\x56\x54\xaf\x8c\x57\xe7\x5b\xda\xaf\x8d\x6a\xac\x6a\xad\x6a\xae\xaf\x8e\xaf\x8f\xaf\x90\xaf\x91\x6a\xb1\xaf\x92\x4d\xbc\x6a\xb2\x48\xe2\x6a\xaf\xaf\x93\x6a\xb0\x4f\x42\x49\xd4\xaf\x94\x6a\xb5\x6a\xb6\x4b\xe5\x49\xaf\x58\x6f\x6a\xb3\x4a\xab\xaf\x95\x6a\xb4\xaf\x96\xaf\x97\x6a\xb7\xaf\x98\xaf\x99\xaf\x9a\xaf\x9b\xaf\x9c\x6a\xb8\xaf\x9d\xaf\x9e\x57\x47\xaf\x9f\x6a\xb9\xaf\xa0\x6a\xba\xaf\xa1\xaf\xa2\xaf\xa3\x6a\xbb\xaf\xa4\xaf\xa5\xaf\xa6\xaf\xa7\xaf\xa8\xaf\xa9\xaf\xaa\xaf\xab\x56\x72\xaf\xac\x6a\xbc\xaf\xad\xaf\xae\xaf\xaf\xaf\xb0\x6a\xbd\xaf\xb1\xaf\xb2\xaf\xb3\xaf\xb4\xaf\xb5\xaf\xb6\xaf\xb7\xaf\xb8\x6a\xbe\xaf\xb9\xaf\xba\xaf\xbb\xaf\xbc\xaf\xbd\x6a\xdd\x51\x5c\x4e\xe7\xaf\xbe\x55\x4b\x59\x7e\x63\x96\xaf\xbf\xaf\xc0\xaf\xc1\xaf\xc2\x5e\xb2\x59\xd4\xaf\xc3\xaf\xc4\x5e\xb3\x48\xab\x5e\xb4", /* 8280 */ "\xaf\xc5\xaf\xc6\x4f\x7a\xaf\xc7\x5e\xb8\xaf\xc8\xaf\xc9\xaf\xca\x5c\xc1\xaf\xcb\x5e\xb6\x5a\x94\xaf\xcc\x55\x76\x5e\xb9\x5e\xb5\xaf\xcd\x5e\xba\x52\x42\xaf\xce\xaf\xcf\xaf\xd0\xaf\xd1\x5e\xbb\x5e\xc4\x5e\xbc\xaf\xd2\xaf\xd3\x57\xde\x5b\xa4\xaf\xd4\x5e\xce\xaf\xd5\x5e\xcc\xaf\xd6\xaf\xd7\x5e\xd1\x4f\x87\x51\xaa\xaf\xd8\x5e\xb7\x5e\xca\x5e\xcd\x5e\xbd\x4c\x72\x48\xc4\x5e\xc6\x58\xbd\x5e\xc0\x4e\x48\xaf\xd9\x4c\x5c\x5e\xcb\xaf\xda\xaf\xdb\x5e\xc5\x5e\xbe\x54\x7b\xaf\xdc\xaf\xdd\xaf\xde\x59\x5f\x5e\xbf\xaf\xdf\xaf\xe0\x5e\xc9\xaf\xe1\xaf\xe2\x5e\xcf\xaf\xe3\xaf\xe4\x57\xac\x5e\xc1\xaf\xe5\x5e\xc2\x5e\xc7\x5e\xc8\x49\xd3\x5e\xd0\x56\x75\xaf\xe6\x5a\xb6\x5e\xda\x5e\xde\x56\xa5\x5e\xe5\xaf\xe7\x52\x88\x5e\xdb\xaf\xe8\xaf\xe9\x50\x61\x5e\xd8\xaf\xea\x48\xf9\x4d\x56\x5e\xe4\x5e\xd2\xaf\xeb\x5e\xc3\x5e\xd5\x54\xf3\x50\x81\xaf\xec\xaf\xed\xaf\xee\xaf\xef\x55\x5b\xaf\xf0\xaf\xf1\xaf\xf2\x49\x5d\xaf\xf3\x5a\x42\xaf\xf4\xaf\xf5\x5e\xd9\xaf\xf6\xaf\xf7\x5e\xd4\xaf\xf8\x53\xba\xaf\xf9\x5e\xdd\xaf\xfa\xaf\xfb\xaf\xfc\xaf\xfd", /* 8300 */ "\xb0\x41\x5c\x62\x52\x4f\x4c\x56\x54\x71\x52\x49\x5e\xe1\x5e\xd7\x5e\xea\x5e\xd3\xb0\x42\xb0\x43\x5e\xdc\xb0\x44\x4f\xa4\x5e\xd6\xb0\x45\x5e\xdf\xb0\x46\xb0\x47\x5e\xe2\x5e\xe3\xb0\x48\x5e\xf7\xb0\x49\xb0\x4a\x5e\xe0\x5f\x42\x5e\xe6\xb0\x4b\xb0\x4c\xb0\x4d\xb0\x4e\xb0\x4f\xb0\x50\xb0\x51\xb0\x52\xb0\x53\xb0\x54\x4e\xea\x4a\xc3\xb0\x55\xb0\x56\x52\x43\x49\xe6\x5e\xf9\xb0\x57\x5e\xf1\xb0\x58\x5e\xee\xb0\x59\x5e\xfb\x5e\xed\x59\xef\x49\xe7\xb0\x5a\x54\xd6\x54\xe2\x5e\xfa\xb0\x5b\x5e\xec\xb0\x5c\xb0\x5d\xb0\x5e\x5e\xf6\xb0\x5f\xb0\x60\x5e\xf4\xb0\x61\xb0\x62\x4f\xa2\x5e\xf3\xb0\x63\x49\xdc\xb0\x64\xb0\x65\xb0\x66\xb0\x67\xb0\x68\x5e\xf2\x4e\xf5\x5e\xe7\x4e\x64\xb0\x69\x50\xf2\xb0\x6a\xb0\x6b\xb0\x6c\xb0\x6d\xb0\x6e\x4e\xd3\x5e\xe8\x5e\xe9\xb0\x6f\x5e\xf0\x5e\xf5\x5e\xf8\x4b\x54\xb0\x70\x54\xd8\x4e\x88\x5e\xfd\x5e\xfc\x5a\x4b\x5f\x41\x5f\x43\x5f\x45\x59\xf0\x5f\x44\x5f\x46\x5f\x47\x59\xa8\xb0\x71\xb0\x72\xb0\x73\xb0\x74\xb0\x75\xb0\x76\xb0\x77\x4d\xc8\x5f\x49\xb0\x78\xb0\x79\x5f\x56\x5f\x51\x5f\x54\xb0\x7a\xb0\x7b", /* 8380 */ "\xb0\x7c\xb0\x7d\xb0\x7e\xb0\x7f\xb0\x81\x5f\x50\x53\xcd\xb0\x82\xb0\x83\x50\xf1\xb0\x84\xb0\x85\xb0\x86\xb0\x87\x55\x4f\xb0\x88\xb0\x89\xb0\x8a\x5e\xeb\x5f\x4e\xb0\x8b\xb0\x8c\xb0\x8d\xb0\x8e\x5f\x57\xb0\x8f\xb0\x90\x5e\xef\x5f\x4f\xb0\x91\x5f\x58\xb0\x92\x5f\x4c\xb0\x93\xb0\x94\xb0\x95\xb0\x96\xb0\x97\xb0\x98\xb0\x99\x5f\x59\x5f\x53\x5f\x4d\x52\xa9\xb0\x9a\xb0\x9b\xb0\x9c\xb0\x9d\x5f\x48\x50\xb2\x51\x4b\x5f\x4a\x5f\x4b\xb0\x9e\x5f\x52\x4e\x92\x5f\x55\x5a\x48\x5f\x5a\xb0\x9f\x5f\x5b\x52\x47\xb0\xa0\xb0\xa1\x5f\x72\x5f\x5c\xb0\xa2\xb0\xa3\xb0\xa4\x5f\x71\xb0\xa5\x4d\x5d\xb0\xa6\xb0\xa7\x4f\xd4\xb0\xa8\x4f\xf9\xb0\xa9\xb0\xaa\x4d\xc9\xb0\xab\xb0\xac\xb0\xad\xb0\xae\x5f\x6a\xb0\xaf\x5f\x65\xb0\xb0\x5f\x5f\xb0\xb1\xb0\xb2\xb0\xb3\x49\xca\x5f\x63\xb0\xb4\x5f\x6b\x49\xa3\x5f\x75\xb0\xb5\xb0\xb6\xb0\xb7\x5f\x5e\xb0\xb8\xb0\xb9\xb0\xba\x53\xcf\x5f\x70\xb0\xbb\xb0\xbc\xb0\xbd\xb0\xbe\xb0\xbf\x5f\x74\x51\x83\x4c\x66\xb0\xc0\xb0\xc1\xb0\xc2\xb0\xc3\xb0\xc4\x5f\x6e\x5f\x6f\xb0\xc5\xb0\xc6\xb0\xc7\x5f\x64\xb0\xc8\xb0\xc9", /* 8400 */ "\xb0\xca\x5f\x5d\xb0\xcb\x5f\x6d\x56\xd0\xb0\xcc\x5f\x69\xb0\xcd\xb0\xce\xb0\xcf\xb0\xd0\x5f\x62\x52\x68\x53\xbb\x57\xad\x5f\x6c\xb0\xd1\x5f\x68\xb0\xd2\xb0\xd3\xb0\xd4\xb0\xd5\xb0\xd6\xb0\xd7\x5f\x61\xb0\xd8\xb0\xd9\xb0\xda\x5f\x66\x51\xdb\xb0\xdb\xb0\xdc\xb0\xdd\xb0\xde\xb0\xdf\xb0\xe0\x5a\x49\x5a\x4a\x5f\x73\x58\x95\x54\xf7\xb0\xe1\xb0\xe2\xb0\xe3\xb0\xe4\xb0\xe5\xb0\xe6\xb0\xe7\xb0\xe8\x5f\x87\xb0\xe9\xb0\xea\xb0\xeb\xb0\xec\xb0\xed\xb0\xee\x5f\x67\xb0\xef\xb0\xf0\xb0\xf1\x5f\x81\x51\xe3\xb0\xf2\xb0\xf3\xb0\xf4\xb0\xf5\xb0\xf6\xb0\xf7\xb0\xf8\xb0\xf9\x5f\x82\xb0\xfa\xb0\xfb\xb0\xfc\xb0\xfd\xb1\x41\xb1\x42\xb1\x43\xb1\x44\xb1\x45\xb1\x46\x5f\x77\xb1\x47\xb1\x48\xb1\x49\xb1\x4a\xb1\x4b\x5b\xf7\xb1\x4c\x5f\x79\x5f\x78\x4c\xef\x5f\x76\xb1\x4d\xb1\x4e\xb1\x4f\xb1\x50\x53\xce\xb1\x51\x4b\xac\xb1\x52\xb1\x53\xb1\x54\xb1\x55\xb1\x56\x5f\x83\xb1\x57\x4d\xf8\x5a\xe0\x5f\x88\xb1\x58\xb1\x59\xb1\x5a\x4a\xcf\xb1\x5b\x5f\x7a\xb1\x5c\x50\x9c\x5f\x84\xb1\x5d\x5f\x7f\xb1\x5e\x5f\x7d\xb1\x5f\xb1\x60\xb1\x61\xb1\x62\xb1\x63", /* 8480 */ "\xb1\x64\xb1\x65\x4b\x79\xb1\x66\xb1\x67\xb1\x68\xb1\x69\x5f\x7b\x5f\x7c\x5f\x7e\xb1\x6a\x4f\x4f\x5f\x85\xb1\x6b\x5f\x86\xb1\x6c\xb1\x6d\xb1\x6e\xb1\x6f\xb1\x70\xb1\x71\xb1\x72\xb1\x73\x5f\x96\xb1\x74\x52\x69\xb1\x75\xb1\x76\x56\x83\xb1\x77\xb1\x78\xb1\x79\xb1\x7a\x5f\x93\xb1\x7b\xb1\x7c\xb1\x7d\xb1\x7e\xb1\x7f\xb1\x81\xb1\x82\xb1\x83\xb1\x84\xb1\x85\xb1\x86\xb1\x87\xb1\x88\x5c\xe0\xb1\x89\xb1\x8a\x53\xd0\xb1\x8b\x5f\x95\xb1\x8c\xb1\x8d\xb1\x8e\x5b\x95\x5f\x94\x5f\x91\xb1\x8f\xb1\x90\x5f\x8d\xb1\x91\x5f\x90\xb1\x92\x5f\x89\xb1\x93\xb1\x94\x58\xed\xb1\x95\xb1\x96\xb1\x97\xb1\x98\x54\xd7\x5f\x8f\xb1\x99\xb1\x9a\x5f\x8a\xb1\x9b\xb1\x9c\x5f\x8b\x56\x93\xb1\x9d\x5f\x8e\xb1\x9e\xb1\x9f\x49\x6d\xb1\xa0\xb1\xa1\xb1\xa2\xb1\xa3\xb1\xa4\xb1\xa5\x50\xb5\xb1\xa6\x4e\xba\x5f\x92\xb1\xa7\xb1\xa8\x5f\x98\xb1\xa9\x5f\x97\x5f\x8c\xb1\xaa\xb1\xab\xb1\xac\xb1\xad\xb1\xae\x53\x8f\xb1\xaf\xb1\xb0\xb1\xb1\x5f\x9c\xb1\xb2\xb1\xb3\xb1\xb4\xb1\xb5\xb1\xb6\xb1\xb7\xb1\xb8\xb1\xb9\xb1\xba\xb1\xbb\xb1\xbc\x5f\xa3\xb1\xbd\xb1\xbe\x5f\xa2", /* 8500 */ "\xb1\xbf\xb1\xc0\xb1\xc1\xb1\xc2\xb1\xc3\xb1\xc4\xb1\xc5\xb1\xc6\xb1\xc7\xb1\xc8\xb1\xc9\xb1\xca\x5f\x99\xb1\xcb\xb1\xcc\xb1\xcd\xb1\xce\x52\x90\xb1\xcf\x51\xfa\xb1\xd0\xb1\xd1\xb1\xd2\x5b\x82\xb1\xd3\xb1\xd4\x57\xb4\xb1\xd5\xb1\xd6\xb1\xd7\xb1\xd8\x5f\x9e\xb1\xd9\x49\xcb\xb1\xda\xb1\xdb\xb1\xdc\xb1\xdd\xb1\xde\xb1\xdf\xb1\xe0\xb1\xe1\xb1\xe2\x52\xe7\x55\xde\xb1\xe3\xb1\xe4\xb1\xe5\xb1\xe6\xb1\xe7\xb1\xe8\xb1\xe9\xb1\xea\xb1\xeb\xb1\xec\x54\x5e\x5f\x9b\x5f\x9d\x5f\x9f\x5f\xa1\x48\xa9\x49\x6e\xb1\xed\xb1\xee\xb1\xef\xb1\xf0\xb1\xf1\x5f\xab\xb1\xf2\xb1\xf3\xb1\xf4\xb1\xf5\x5f\xa5\x4f\x56\x54\xee\xb1\xf6\xb1\xf7\xb1\xf8\xb1\xf9\xb1\xfa\xb1\xfb\xb1\xfc\xb1\xfd\xb2\x41\xb2\x42\xb2\x43\x5f\xa0\xb2\x44\xb2\x45\x5f\xa4\xb2\x46\xb2\x47\xb2\x48\xb2\x49\x5f\xa8\xb2\x4a\xb2\x4b\xb2\x4c\xb2\x4d\xb2\x4e\x5f\xa7\xb2\x4f\xb2\x50\xb2\x51\x5f\xa6\xb2\x52\xb2\x53\xb2\x54\xb2\x55\xb2\x56\xb2\x57\xb2\x58\xb2\x59\xb2\x5a\x5f\xac\xb2\x5b\x5a\xcb\xb2\x5c\xb2\x5d\xb2\x5e\xb2\x5f\x5f\xb2\x5f\xa9\x5f\xad\xb2\x60\xb2\x61\x50\xd8\xb2\x62", /* 8580 */ "\xb2\x63\xb2\x64\xb2\x65\xb2\x66\x49\x41\x5f\xb5\xb2\x67\x5f\xb0\xb2\x68\xb2\x69\xb2\x6a\xb2\x6b\xb2\x6c\xb2\x6d\xb2\x6e\x5f\xb1\xb2\x6f\xb2\x70\xb2\x71\xb2\x72\xb2\x73\xb2\x74\xb2\x75\xb2\x76\xb2\x77\xb2\x78\xb2\x79\x59\x46\x5f\xb4\xb2\x7a\xb2\x7b\xb2\x7c\xb2\x7d\xb2\x7e\xb2\x7f\xb2\x81\x5f\xae\xb2\x82\xb2\x83\xb2\x84\x5f\xaf\xb2\x85\x58\xbc\xb2\x86\xb2\x87\xb2\x88\x5f\xb3\x55\xec\x5f\xb8\xb2\x89\xb2\x8a\xb2\x8b\xb2\x8c\xb2\x8d\xb2\x8e\x5f\xb7\xb2\x8f\x5f\xb6\xb2\x90\xb2\x91\xb2\x92\xb2\x93\xb2\x94\xb2\x95\xb2\x96\x5f\xba\xb2\x97\xb2\x98\xb2\x99\xb2\x9a\xb2\x9b\xb2\x9c\xb2\x9d\x4f\x86\xb2\x9e\xb2\x9f\xb2\xa0\xb2\xa1\xb2\xa2\x49\xd7\x52\x8b\xb2\xa3\xb2\xa4\x5f\xb9\xb2\xa5\x53\x5a\xb2\xa6\xb2\xa7\xb2\xa8\xb2\xa9\xb2\xaa\xb2\xab\x5f\xbb\xb2\xac\xb2\xad\xb2\xae\xb2\xaf\xb2\xb0\xb2\xb1\xb2\xb2\x56\xd8\xb2\xb3\xb2\xb4\xb2\xb5\xb2\xb6\x4c\x4a\xb2\xb7\xb2\xb8\xb2\xb9\xb2\xba\xb2\xbb\xb2\xbc\xb2\xbd\xb2\xbe\xb2\xbf\xb2\xc0\xb2\xc1\xb2\xc2\xb2\xc3\xb2\xc4\xb2\xc5\xb2\xc6\xb2\xc7\x5a\xe4\xb2\xc8\xb2\xc9\xb2\xca\x5f\xbc", /* 8600 */ "\xb2\xcb\xb2\xcc\xb2\xcd\xb2\xce\xb2\xcf\x5f\xbe\xb2\xd0\xb2\xd1\xb2\xd2\xb2\xd3\xb2\xd4\xb2\xd5\xb2\xd6\xb2\xd7\xb2\xd8\xb2\xd9\xb2\xda\x52\xa1\xb2\xdb\xb2\xdc\xb2\xdd\xb2\xde\x5f\xc0\xb2\xdf\xb2\xe0\xb2\xe1\xb2\xe2\xb2\xe3\xb2\xe4\xb2\xe5\xb2\xe6\xb2\xe7\xb2\xe8\xb2\xe9\xb2\xea\xb2\xeb\xb2\xec\xb2\xed\xb2\xee\x5f\xbd\xb2\xef\x5f\xbf\xb2\xf0\xb2\xf1\xb2\xf2\xb2\xf3\xb2\xf4\xb2\xf5\xb2\xf6\xb2\xf7\xb2\xf8\xb2\xf9\xb2\xfa\xb2\xfb\xb2\xfc\xb2\xfd\x5b\x5a\xb3\x41\xb3\x42\xb3\x43\x5f\xc1\xb3\x44\xb3\x45\xb3\x46\xb3\x47\xb3\x48\xb3\x49\xb3\x4a\xb3\x4b\xb3\x4c\xb3\x4d\xb3\x4e\xb3\x4f\xb3\x50\xb3\x51\xb3\x52\xb3\x53\x69\xad\x4e\x42\x51\xb1\x53\x50\x51\xc6\xb3\x54\xb3\x55\x69\xae\xb3\x56\xb3\x57\xb3\x58\xb3\x59\xb3\x5a\x58\xe8\xb3\x5b\xb3\x5c\xb3\x5d\x5a\x7d\xb3\x5e\xb3\x5f\xb3\x60\x66\x5d\xb3\x61\xb3\x62\xb3\x63\xb3\x64\xb3\x65\xb3\x66\xb3\x67\xb3\x68\x4a\x87\x69\xaf\xb3\x69\x69\xb0\xb3\x6a\xb3\x6b\x55\xac\xb3\x6c\xb3\x6d\xb3\x6e\xb3\x6f\xb3\x70\xb3\x71\xb3\x72\x4d\xe6\x69\xb2\x69\xb4\x69\xb3\x56\x85\x58\x5a\x69\xb1", /* 8680 */ "\x55\xb3\x59\xce\x51\xeb\xb3\x73\xb3\x74\xb3\x75\xb3\x76\xb3\x77\xb3\x78\xb3\x79\x57\xc2\x69\xb7\x48\xf5\x69\xb6\xb3\x7a\xb3\x7b\xb3\x7c\xb3\x7d\xb3\x7e\x69\xbd\xb3\x7f\x49\xce\xb3\x81\xb3\x82\xb3\x83\xb3\x84\xb3\x85\xb3\x86\x59\x61\x69\xb9\xb3\x87\xb3\x88\xb3\x89\xb3\x8a\xb3\x8b\x69\xbb\x5a\xe8\xb3\x8c\xb3\x8d\x69\xba\x69\xb5\x69\xbe\x69\xbc\xb3\x8e\x69\xb8\xb3\x8f\xb3\x90\x69\xc6\x69\xc3\x69\xc5\xb3\x91\xb3\x92\x69\xc9\x69\xc1\x69\xbf\xb3\x93\xb3\x94\xb3\x95\x69\xc4\xb3\x96\xb3\x97\xb3\x98\xb3\x99\xb3\x9a\x5b\xfa\xb3\x9b\xb3\x9c\xb3\x9d\x69\xc0\xb3\x9e\x54\x9a\x55\x7f\xb3\x9f\x69\xc7\x4d\x66\x4b\x50\xb3\xa0\xb3\xa1\x69\xc2\x69\xc8\x69\xcf\x69\xd5\xb3\xa2\xb3\xa3\x4e\x77\xb3\xa4\xb3\xa5\xb3\xa6\x69\xd4\x57\x7c\xb3\xa7\x5b\xea\xb3\xa8\xb3\xa9\x69\xd1\x69\xd3\xb3\xaa\xb3\xab\xb3\xac\xb3\xad\x4c\xf1\xb3\xae\xb3\xaf\xb3\xb0\xb3\xb1\x69\xca\xb3\xb2\xb3\xb3\xb3\xb4\x69\xcd\x51\xf8\xb3\xb5\x5b\x7d\x69\xcb\x69\xcc\x69\xce\x69\xd2\xb3\xb6\xb3\xb7\xb3\xb8\x69\xd8\x5a\x5c\xb3\xb9\xb3\xba\xb3\xbb\xb3\xbc\x4b\xe9\xb3\xbd", /* 8700 */ "\x55\xf0\xb3\xbe\x4c\x85\x69\xd6\xb3\xbf\xb3\xc0\xb3\xc1\x69\xd7\x69\xd9\x69\xdc\x69\xda\xb3\xc2\xb3\xc3\x69\xdb\xb3\xc4\xb3\xc5\xb3\xc6\xb3\xc7\x59\x71\x69\xd0\xb3\xc8\x57\x69\xb3\xc9\x57\xce\x5b\xa8\xb3\xca\x69\xe2\xb3\xcb\x52\x7b\xb3\xcc\x69\xdf\xb3\xcd\xb3\xce\x50\xae\x69\xeb\x69\xdd\xb3\xcf\x69\xe0\xb3\xd0\xb3\xd1\xb3\xd2\x69\xe7\xb3\xd3\xb3\xd4\xb3\xd5\xb3\xd6\x69\xe1\xb3\xd7\xb3\xd8\x69\xe6\xb3\xd9\xb3\xda\x69\xe5\xb3\xdb\xb3\xdc\x69\xe8\xb3\xdd\xb3\xde\xb3\xdf\x69\xde\xb3\xe0\xb3\xe1\x69\xe3\x69\xe9\xb3\xe2\xb3\xe3\xb3\xe4\xb3\xe5\xb3\xe6\xb3\xe7\xb3\xe8\x5a\x4c\x69\xe4\x49\xf4\xb3\xe9\xb3\xea\x69\xf1\xb3\xeb\x58\xaa\xb3\xec\xb3\xed\xb3\xee\xb3\xef\x69\xf4\xb3\xf0\xb3\xf1\xb3\xf2\x4e\x68\xb3\xf3\x69\xf8\xb3\xf4\xb3\xf5\xb3\xf6\xb3\xf7\xb3\xf8\xb3\xf9\x69\xef\xb3\xfa\xb3\xfb\x69\xf5\x69\xf7\x69\xf9\xb3\xfc\xb3\xfd\xb4\x41\xb4\x42\xb4\x43\xb4\x44\xb4\x45\xb4\x46\x69\xf2\xb4\x47\x69\xf0\xb4\x48\xb4\x49\xb4\x4a\x4d\xfa\xb4\x4b\x4b\x9c\xb4\x4c\xb4\x4d\xb4\x4e\xb4\x4f\x69\xee\x69\xf6\x69\xec\x69\xed\xb4\x50", /* 8780 */ "\xb4\x51\xb4\x52\x69\xea\x6a\x46\xb4\x53\x6a\x43\xb4\x54\xb4\x55\x6a\x42\xb4\x56\xb4\x57\x69\xf3\xb4\x58\x54\xd9\xb4\x59\xb4\x5a\xb4\x5b\xb4\x5c\xb4\x5d\x69\xfa\xb4\x5e\xb4\x5f\xb4\x60\x6a\x45\xb4\x61\xb4\x62\xb4\x63\xb4\x64\xb4\x65\xb4\x66\xb4\x67\x52\x99\xb4\x68\xb4\x69\xb4\x6a\xb4\x6b\xb4\x6c\xb4\x6d\xb4\x6e\xb4\x6f\x69\xfc\xb4\x70\xb4\x71\x6a\x47\x6a\x49\x6a\x44\xb4\x72\x69\xfb\xb4\x73\xb4\x74\xb4\x75\x6a\x4b\xb4\x76\x6a\x4a\xb4\x77\xb4\x78\xb4\x79\xb4\x7a\x51\xdc\xb4\x7b\xb4\x7c\x6a\x4e\xb4\x7d\xb4\x7e\x6a\x50\xb4\x7f\xb4\x81\xb4\x82\xb4\x83\xb4\x84\x6a\x41\xb4\x85\xb4\x86\xb4\x87\x6a\x51\x6a\x4c\xb4\x88\xb4\x89\xb4\x8a\xb4\x8b\xb4\x8c\x6a\x4f\x69\xfd\x6a\x4d\xb4\x8d\xb4\x8e\xb4\x8f\xb4\x90\xb4\x91\xb4\x92\xb4\x93\x6a\x52\xb4\x94\xb4\x95\xb4\x96\xb4\x97\x6a\x54\xb4\x98\xb4\x99\xb4\x9a\xb4\x9b\x6a\x48\xb4\x9c\xb4\x9d\xb4\x9e\xb4\x9f\x6a\x53\xb4\xa0\xb4\xa1\xb4\xa2\x6a\x55\xb4\xa3\xb4\xa4\xb4\xa5\xb4\xa6\xb4\xa7\xb4\xa8\xb4\xa9\xb4\xaa\xb4\xab\xb4\xac\x58\xb6\xb4\xad\xb4\xae\xb4\xaf\xb4\xb0\x6a\x58\xb4\xb1", /* 8800 */ "\xb4\xb2\xb4\xb3\xb4\xb4\x5d\x9a\xb4\xb5\xb4\xb6\xb4\xb7\xb4\xb8\xb4\xb9\xb4\xba\x6a\x59\xb4\xbb\xb4\xbc\xb4\xbd\xb4\xbe\xb4\xbf\xb4\xc0\xb4\xc1\xb4\xc2\x6a\x57\xb4\xc3\x54\xe3\x6a\x56\xb4\xc4\xb4\xc5\xb4\xc6\xb4\xc7\x6a\x5a\xb4\xc8\xb4\xc9\xb4\xca\xb4\xcb\xb4\xcc\x6a\x5b\x4a\xbf\xb4\xcd\xb4\xce\xb4\xcf\xb4\xd0\xb4\xd1\xb4\xd2\xb4\xd3\xb4\xd4\xb4\xd5\xb4\xd6\xb4\xd7\xb4\xd8\xb4\xd9\xb4\xda\xb4\xdb\x67\xc2\xb4\xdc\xb4\xdd\xb4\xde\xb4\xdf\xb4\xe0\xb4\xe1\x6a\x5c\xb4\xe2\xb4\xe3\x6a\x5d\xb4\xe4\xb4\xe5\xb4\xe6\x59\x4a\xb4\xe7\xb4\xe8\xb4\xe9\x6a\xab\x58\xc5\xb4\xea\xb4\xeb\xb4\xec\xb4\xed\xb4\xee\xb4\xef\x58\xcf\x59\x7c\xb4\xf0\xb4\xf1\xb4\xf2\xb4\xf3\xb4\xf4\xb4\xf5\x58\x6e\xb4\xf6\xb4\xf7\x4f\x76\xb4\xf8\x59\x63\xb4\xf9\xb4\xfa\xb4\xfb\xb4\xfc\xb4\xfd\xb5\x41\xb5\x42\x4d\xe1\x61\x8a\x59\xc1\x69\x62\x49\xb8\xb5\x43\xb5\x44\x49\x8e\x69\x63\xb5\x45\x55\x60\x4a\x64\xb5\x46\x5d\x93\xb5\x47\x56\x45\xb5\x48\x69\x64\xb5\x49\xb5\x4a\xb5\x4b\xb5\x4c\x5b\xd3\xb5\x4d\xb5\x4e\xb5\x4f\xb5\x50\xb5\x51\x69\x65\x6a\xbf\x69\x66", /* 8880 */ "\xb5\x52\x5a\xab\x69\x67\xb5\x53\x48\xbf\x6a\xc0\xb5\x54\xb5\x55\x6a\xc1\xb5\x56\xb5\x57\x4a\xfb\xb5\x58\x53\x7b\xb5\x59\xb5\x5a\xb5\x5b\xb5\x5c\x56\xba\xb5\x5d\xb5\x5e\xb5\x5f\x58\xe3\xb5\x60\xb5\x61\xb5\x62\xb5\x63\xb5\x64\x57\x81\xb5\x65\xb5\x66\xb5\x67\xb5\x68\xb5\x69\x69\x68\xb5\x6a\x5d\x94\xb5\x6b\xb5\x6c\xb5\x6d\xb5\x6e\xb5\x6f\xb5\x70\x49\x5b\xb5\x71\x58\x4e\xb5\x72\xb5\x73\xb5\x74\x4c\xa3\xb5\x75\xb5\x76\xb5\x77\xb5\x78\xb5\x79\x69\x6a\xb5\x7a\xb5\x7b\xb5\x7c\xb5\x7d\x69\x6b\xb5\x7e\xb5\x7f\xb5\x81\xb5\x82\x49\xc2\x51\x71\xb5\x83\xb5\x84\x5c\x50\x69\x69\xb5\x85\xb5\x86\x69\x6c\xb5\x87\xb5\x88\xb5\x89\xb5\x8a\x69\x6e\xb5\x8b\xb5\x8c\xb5\x8d\x5d\x97\xb5\x8e\x59\xe0\x5a\xa2\xb5\x8f\xb5\x90\x6a\xc2\x54\xb8\xb5\x91\xb5\x92\xb5\x93\xb5\x94\xb5\x95\x6a\xc3\xb5\x96\xb5\x97\x69\x6d\x69\x6f\x50\x84\x69\x70\xb5\x98\xb5\x99\x69\x74\xb5\x9a\xb5\x9b\xb5\x9c\xb5\x9d\xb5\x9e\xb5\x9f\xb5\xa0\x69\x76\x69\x71\xb5\xa1\x55\x71\x53\x82\xb5\xa2\xb5\xa3\xb5\xa4\x51\xe2\x4d\x9d\xb5\xa5\xb5\xa6\x69\x73\xb5\xa7\x69\x75\xb5\xa8", /* 8900 */ "\xb5\xa9\xb5\xaa\x4d\x73\xb5\xab\xb5\xac\xb5\xad\xb5\xae\xb5\xaf\xb5\xb0\xb5\xb1\x69\x7b\xb5\xb2\xb5\xb3\xb5\xb4\xb5\xb5\xb5\xb6\x4d\xd5\xb5\xb7\x48\xfc\x69\x79\xb5\xb8\xb5\xb9\xb5\xba\xb5\xbb\xb5\xbc\x69\x78\x69\x72\x69\x7a\xb5\xbd\xb5\xbe\xb5\xbf\xb5\xc0\xb5\xc1\x69\x77\xb5\xc2\xb5\xc3\xb5\xc4\x54\xeb\xb5\xc5\xb5\xc6\xb5\xc7\xb5\xc8\x57\x6a\x69\x7d\xb5\xc9\xb5\xca\xb5\xcb\xb5\xcc\x63\x5d\xb5\xcd\xb5\xce\xb5\xcf\x69\x7c\xb5\xd0\x69\x7e\xb5\xd1\xb5\xd2\xb5\xd3\xb5\xd4\xb5\xd5\xb5\xd6\xb5\xd7\xb5\xd8\xb5\xd9\xb5\xda\x69\x7f\xb5\xdb\xb5\xdc\x58\x86\xb5\xdd\xb5\xde\xb5\xdf\xb5\xe0\xb5\xe1\xb5\xe2\xb5\xe3\xb5\xe4\xb5\xe5\xb5\xe6\xb5\xe7\xb5\xe8\xb5\xe9\xb5\xea\xb5\xeb\xb5\xec\xb5\xed\xb5\xee\xb5\xef\xb5\xf0\xb5\xf1\xb5\xf2\xb5\xf3\xb5\xf4\xb5\xf5\x6a\xc4\x4f\x94\xb5\xf6\xb5\xf7\xb5\xf8\xb5\xf9\xb5\xfa\xb5\xfb\x69\x81\xb5\xfc\xb5\xfd\xb6\x41\xb6\x42\xb6\x43\xb6\x44\xb6\x45\xb6\x46\xb6\x47\xb6\x48\xb6\x49\xb6\x4a\xb6\x4b\xb6\x4c\xb6\x4d\xb6\x4e\xb6\x4f\xb6\x50\xb6\x51\xb6\x52\x69\x82\xb6\x53\xb6\x54\xb6\x55\x57\xf6", /* 8980 */ "\xb6\x56\x59\xa9\xb6\x57\x69\x9c\xb6\x58\xb6\x59\x4c\xb1\xb6\x5a\xb6\x5b\xb6\x5c\xb6\x5d\xb6\x5e\xb6\x5f\xb6\x60\xb6\x61\xb6\x62\xb6\x63\xb6\x64\xb6\x65\xb6\x66\xb6\x67\xb6\x68\xb6\x69\xb6\x6a\xb6\x6b\xb6\x6c\xb6\x6d\xb6\x6e\xb6\x6f\xb6\x70\xb6\x71\xb6\x72\xb6\x73\xb6\x74\xb6\x75\xb6\x76\xb6\x77\xb6\x78\xb6\x79\xb6\x7a\xb6\x7b\xb6\x7c\xb6\x7d\xb6\x7e\xb6\x7f\xb6\x81\xb6\x82\xb6\x83\xb6\x84\xb6\x85\xb6\x86\xb6\x87\xb6\x88\xb6\x89\xb6\x8a\xb6\x8b\xb6\x8c\xb6\x8d\xb6\x8e\xb6\x8f\xb6\x90\xb6\x91\xb6\x92\xb6\x93\xb6\x94\x4e\xfa\x4d\x7b\xb6\x95\x4d\x87\x52\x79\x55\xd2\x65\xe7\x50\xbf\x4f\xf4\x65\xe8\x65\xe9\x65\xea\xb6\x96\x65\xeb\x65\xec\x65\xed\x65\xee\x4f\x67\xb6\x97\xb6\x98\xb6\x99\x6b\x9c\xb6\x9a\xb6\x9b\xb6\x9c\x6b\x9e\xb6\x9d\x6b\x9f\xb6\x9e\x6b\x9d\xb6\x9f\xb6\xa0\xb6\xa1\xb6\xa2\x4f\x83\xb6\xa3\x6b\xa0\x4a\xa4\xb6\xa4\xb6\xa5\xb6\xa6\xb6\xa7\x6b\xa1\xb6\xa8\xb6\xa9\xb6\xaa\x6b\xa2\xb6\xab\xb6\xac\xb6\xad\x66\xb1\xb6\xae\xb6\xaf\xb6\xb0\xb6\xb1\xb6\xb2\xb6\xb3\xb6\xb4\xb6\xb5\xb6\xb6\xb6\xb7\xb6\xb8\xb6\xb9", /* 8a00 */ "\x59\x74\xb6\xba\xb6\xbb\xb6\xbc\xb6\xbd\xb6\xbe\xb6\xbf\x5d\x8b\xb6\xc0\xb6\xc1\xb6\xc2\xb6\xc3\xb6\xc4\xb6\xc5\xb6\xc6\xb6\xc7\xb6\xc8\xb6\xc9\xb6\xca\xb6\xcb\xb6\xcc\xb6\xcd\xb6\xce\xb6\xcf\xb6\xd0\xb6\xd1\xb6\xd2\xb6\xd3\xb6\xd4\xb6\xd5\xb6\xd6\xb6\xd7\xb6\xd8\xb6\xd9\xb6\xda\xb6\xdb\xb6\xdc\xb6\xdd\xb6\xde\xb6\xdf\xb6\xe0\xb6\xe1\xb6\xe2\xb6\xe3\xb6\xe4\xb6\xe5\xb6\xe6\xb6\xe7\xb6\xe8\xb6\xe9\xb6\xea\xb6\xeb\xb6\xec\xb6\xed\xb6\xee\xb6\xef\xb6\xf0\xb6\xf1\xb6\xf2\xb6\xf3\xb6\xf4\xb6\xf5\x6b\xa3\xb6\xf6\xb6\xf7\xb6\xf8\xb6\xf9\xb6\xfa\xb6\xfb\xb6\xfc\xb6\xfd\xb7\x41\x67\xb9\xb7\x42\xb7\x43\xb7\x44\xb7\x45\xb7\x46\xb7\x47\xb7\x48\xb7\x49\xb7\x4a\xb7\x4b\xb7\x4c\xb7\x4d\xb7\x4e\xb7\x4f\xb7\x50\xb7\x51\xb7\x52\xb7\x53\xb7\x54\xb7\x55\xb7\x56\xb7\x57\xb7\x58\xb7\x59\xb7\x5a\xb7\x5b\xb7\x5c\xb7\x5d\xb7\x5e\xb7\x5f\xb7\x60\xb7\x61\xb7\x62\xb7\x63\xb7\x64\xb7\x65\xb7\x66\xb7\x67\xb7\x68\xb7\x69\xb7\x6a\xb7\x6b\xb7\x6c\xb7\x6d\xb7\x6e\xb7\x6f\xb7\x70\xb7\x71\x5b\x52\xb7\x72\xb7\x73\xb7\x74\xb7\x75\xb7\x76\xb7\x77", /* 8a80 */ "\xb7\x78\xb7\x79\xb7\x7a\xb7\x7b\xb7\x7c\xb7\x7d\xb7\x7e\xb7\x7f\xb7\x81\x5a\x9f\x56\xdb\xb7\x82\xb7\x83\xb7\x84\xb7\x85\xb7\x86\xb7\x87\xb7\x88\xb7\x89\x55\xc3\xb7\x8a\xb7\x8b\xb7\x8c\xb7\x8d\xb7\x8e\xb7\x8f\xb7\x90\xb7\x91\xb7\x92\xb7\x93\xb7\x94\xb7\x95\xb7\x96\xb7\x97\xb7\x98\xb7\x99\xb7\x9a\xb7\x9b\xb7\x9c\xb7\x9d\xb7\x9e\xb7\x9f\xb7\xa0\xb7\xa1\xb7\xa2\xb7\xa3\xb7\xa4\xb7\xa5\xb7\xa6\xb7\xa7\xb7\xa8\xb7\xa9\xb7\xaa\xb7\xab\xb7\xac\xb7\xad\xb7\xae\xb7\xaf\xb7\xb0\xb7\xb1\xb7\xb2\xb7\xb3\xb7\xb4\xb7\xb5\xb7\xb6\xb7\xb7\xb7\xb8\xb7\xb9\xb7\xba\xb7\xbb\xb7\xbc\xb7\xbd\xb7\xbe\xb7\xbf\xb7\xc0\xb7\xc1\xb7\xc2\xb7\xc3\xb7\xc4\xb7\xc5\xb7\xc6\xb7\xc7\xb7\xc8\xb7\xc9\xb7\xca\xb7\xcb\xb7\xcc\xb7\xcd\xb7\xce\xb7\xcf\xb7\xd0\xb7\xd1\xb7\xd2\xb7\xd3\xb7\xd4\xb7\xd5\xb7\xd6\xb7\xd7\xb7\xd8\xb7\xd9\xb7\xda\xb7\xdb\xb7\xdc\xb7\xdd\xb7\xde\xb7\xdf\xb7\xe0\xb7\xe1\xb7\xe2\xb7\xe3\xb7\xe4\xb7\xe5\xb7\xe6\xb7\xe7\xb7\xe8\xb7\xe9\xb7\xea\xb7\xeb\xb7\xec\xb7\xed\xb7\xee\xb7\xef\xb7\xf0\xb7\xf1\xb7\xf2\xb7\xf3\xb7\xf4\xb7\xf5", /* 8b00 */ "\xb7\xf6\xb7\xf7\xb7\xf8\xb7\xf9\xb7\xfa\xb7\xfb\xb7\xfc\x63\x60\xb7\xfd\xb8\x41\xb8\x42\xb8\x43\xb8\x44\xb8\x45\xb8\x46\xb8\x47\xb8\x48\xb8\x49\xb8\x4a\xb8\x4b\xb8\x4c\xb8\x4d\xb8\x4e\xb8\x4f\xb8\x50\xb8\x51\xb8\x52\xb8\x53\xb8\x54\xb8\x55\xb8\x56\xb8\x57\xb8\x58\xb8\x59\xb8\x5a\xb8\x5b\xb8\x5c\xb8\x5d\x6b\xa4\xb8\x5e\xb8\x5f\xb8\x60\xb8\x61\xb8\x62\xb8\x63\xb8\x64\xb8\x65\xb8\x66\xb8\x67\xb8\x68\xb8\x69\xb8\x6a\xb8\x6b\xb8\x6c\xb8\x6d\xb8\x6e\xb8\x6f\xb8\x70\xb8\x71\xb8\x72\xb8\x73\xb8\x74\xb8\x75\xb8\x76\xb8\x77\xb8\x78\xb8\x79\xb8\x7a\xb8\x7b\xb8\x7c\xb8\x7d\xb8\x7e\xb8\x7f\xb8\x81\xb8\x82\xb8\x83\xb8\x84\xb8\x85\xb8\x86\xb8\x87\xb8\x88\xb8\x89\xb8\x8a\xb8\x8b\xb8\x8c\xb8\x8d\xb8\x8e\xb8\x8f\xb8\x90\xb8\x91\xb8\x92\xb8\x93\xb8\x94\xb8\x95\xb8\x96\xb8\x97\xb8\x98\xb8\x99\xb8\x9a\xb8\x9b\xb8\x9c\xb8\x9d\x4f\xae\xb8\x9e\xb8\x9f\xb8\xa0\xb8\xa1\xb8\xa2\x53\xa8\xb8\xa3\xb8\xa4\xb8\xa5\xb8\xa6\xb8\xa7\xb8\xa8\xb8\xa9\xb8\xaa\xb8\xab\xb8\xac\xb8\xad\xb8\xae\xb8\xaf\xb8\xb0\xb8\xb1\xb8\xb2\xb8\xb3\xb8\xb4\xb8\xb5", /* 8b80 */ "\xb8\xb6\xb8\xb7\xb8\xb8\xb8\xb9\xb8\xba\xb8\xbb\xb8\xbc\xb8\xbd\xb8\xbe\xb8\xbf\xb8\xc0\xb8\xc1\xb8\xc2\xb8\xc3\xb8\xc4\xb8\xc5\xb8\xc6\xb8\xc7\xb8\xc8\xb8\xc9\xb8\xca\xb8\xcb\xb8\xcc\xb8\xcd\xb8\xce\xb8\xcf\xb8\xd0\xb8\xd1\xb8\xd2\xb8\xd3\xb8\xd4\xb8\xd5\x5d\xa4\x4e\xc5\x4b\xa8\x4c\xbb\x54\xce\x4e\xa4\x5d\xa5\x5d\xa6\x56\xd5\x54\xc2\x5d\xa7\x53\xfc\xb8\xd6\x59\x55\x59\xe8\x59\x56\x4e\xc6\xb8\xd7\x4f\x52\x4e\x85\x5d\xa8\x5d\xa9\x59\x68\x5d\xaa\x58\xec\x4b\xee\x51\xda\xb8\xd8\x56\x6f\x4c\x8e\x55\x89\x4c\x63\x4f\xf6\x5b\xa3\x5d\xab\x5d\xac\x53\xbf\x5c\x88\x55\xb5\xb8\xd9\x5b\x49\x56\x7f\x5b\x90\x5d\xad\x5b\xde\x4a\xc9\x5d\xaf\x5d\xae\xb8\xda\x59\xea\x5d\xb0\x5d\xb1\x5d\xb2\x55\xd3\x5d\xb3\x55\xaa\x5d\xb4\x5d\xb5\x4a\x6f\x5b\xee\x5d\xb6\x4e\x50\x4b\x4e\x5d\xb7\x5d\xb8\x4d\x8f\x59\x4f\x59\xe7\x5d\xb9\x4c\xc2\x58\x8b\x49\xee\x5d\xba\x5d\xbb\xb8\xdb\x4f\x8c\x57\xdb\x5a\x90\x5d\xbc\x57\xf2\x5d\xbd\x5a\x75\x4e\x86\x5d\xbe\x56\x55\x56\x70\x5d\xbf\x54\x8c\x5b\xed\x5d\xc0\x53\x55\x4b\xc0\x5d\xc1\x4c\x6c\x50\x6e\x5d\xc2", /* 8c00 */ "\x5d\xc3\x56\x4d\x5d\xc4\x4b\x98\x5d\xc5\x51\x62\x5c\x5b\x5d\xc6\x56\xb7\xb8\xdc\x59\xe9\x52\xb0\x5d\xc7\x4b\x9e\x4e\x71\x5d\xc8\x58\xb2\x5d\xc9\x5d\xca\x57\xbc\x5d\xcb\x5d\xcc\x5d\xcd\x49\xf6\x5d\xd0\x5d\xce\x59\x89\x5d\xcf\x52\x75\x5d\xd1\xb8\xdd\x5d\xd2\x5d\xd3\x5d\xd4\x58\xba\x59\xa4\x48\xf8\x5d\xd5\x54\x4b\x5d\xd6\x4f\x98\x52\x41\x5d\xd7\x5d\xd8\x52\x9e\x56\xb6\x5d\xd9\x5d\xda\x50\xbd\x53\xd6\x5d\xdb\x5d\xdc\x54\x54\x5d\xdd\x5d\xde\x4d\x68\xb8\xde\xb8\xdf\xb8\xe0\xb8\xe1\xb8\xe2\xb8\xe3\xb8\xe4\xb8\xe5\xb8\xe6\x4e\x8e\xb8\xe7\xb8\xe8\xb8\xe9\xb8\xea\x4b\xb8\x6a\xf7\xb8\xeb\x6a\xf8\xb8\xec\xb8\xed\x57\x84\xb8\xee\xb8\xef\xb8\xf0\xb8\xf1\xb8\xf2\xb8\xf3\xb8\xf4\xb8\xf5\x6b\x59\xb8\xf6\xb8\xf7\xb8\xf8\xb8\xf9\x66\x81\xb8\xfa\xb8\xfb\xb8\xfc\xb8\xfd\xb9\x41\xb9\x42\x58\x94\x4e\x5f\xb9\x43\xb9\x44\xb9\x45\xb9\x46\xb9\x47\xb9\x48\xb9\x49\x4d\xbf\x5a\xa4\xb9\x4a\xb9\x4b\xb9\x4c\xb9\x4d\xb9\x4e\xb9\x4f\xb9\x50\x61\x79\xb9\x51\xb9\x52\xb9\x53\xb9\x54\x6b\x95\x49\x4a\x49\xf1\xb9\x55\xb9\x56\xb9\x57\xb9\x58\xb9\x59", /* 8c80 */ "\xb9\x5a\xb9\x5b\x6b\x96\xb9\x5c\xb9\x5d\x6b\x98\xb9\x5e\xb9\x5f\xb9\x60\x4d\xd0\x6b\x97\xb9\x61\x52\x52\xb9\x62\xb9\x63\xb9\x64\xb9\x65\xb9\x66\xb9\x67\xb9\x68\x6b\x9a\xb9\x69\xb9\x6a\xb9\x6b\x6b\x99\xb9\x6c\xb9\x6d\xb9\x6e\xb9\x6f\xb9\x70\xb9\x71\xb9\x72\xb9\x73\xb9\x74\xb9\x75\xb9\x76\xb9\x77\xb9\x78\xb9\x79\xb9\x7a\xb9\x7b\xb9\x7c\xb9\x7d\xb9\x7e\xb9\x7f\xb9\x81\xb9\x82\xb9\x83\xb9\x84\xb9\x85\xb9\x86\xb9\x87\xb9\x88\xb9\x89\xb9\x8a\xb9\x8b\xb9\x8c\xb9\x8d\xb9\x8e\xb9\x8f\xb9\x90\xb9\x91\xb9\x92\xb9\x93\xb9\x94\xb9\x95\xb9\x96\xb9\x97\xb9\x98\xb9\x99\xb9\x9a\xb9\x9b\xb9\x9c\xb9\x9d\xb9\x9e\xb9\x9f\xb9\xa0\xb9\xa1\xb9\xa2\xb9\xa3\xb9\xa4\xb9\xa5\xb9\xa6\xb9\xa7\xb9\xa8\xb9\xa9\xb9\xaa\xb9\xab\xb9\xac\xb9\xad\xb9\xae\xb9\xaf\xb9\xb0\xb9\xb1\xb9\xb2\xb9\xb3\xb9\xb4\xb9\xb5\xb9\xb6\xb9\xb7\xb9\xb8\xb9\xb9\xb9\xba\xb9\xbb\xb9\xbc\xb9\xbd\xb9\xbe\xb9\xbf\xb9\xc0\xb9\xc1\xb9\xc2\xb9\xc3\xb9\xc4\xb9\xc5\xb9\xc6\xb9\xc7\xb9\xc8\xb9\xc9\xb9\xca\xb9\xcb\xb9\xcc\xb9\xcd\xb9\xce\xb9\xcf\xb9\xd0\xb9\xd1\xb9\xd2\xb9\xd3", /* 8d00 */ "\xb9\xd4\xb9\xd5\xb9\xd6\xb9\xd7\xb9\xd8\xb9\xd9\xb9\xda\xb9\xdb\xb9\xdc\xb9\xdd\xb9\xde\xb9\xdf\xb9\xe0\xb9\xe1\xb9\xe2\xb9\xe3\xb9\xe4\xb9\xe5\xb9\xe6\xb9\xe7\xb9\xe8\xb9\xe9\xb9\xea\xb9\xeb\xb9\xec\xb9\xed\xb9\xee\xb9\xef\xb9\xf0\x49\x54\x5b\x8b\x4c\xb9\xb9\xf1\x4d\x51\x49\xc5\x5a\xef\x58\x6d\x48\xdb\x5b\x6b\x4e\x96\x5b\xc9\x4c\x57\x56\xaf\x53\xb5\x49\x82\x4d\x5a\x5b\xfb\x4d\x82\x4c\x41\x4e\xf9\x65\xd9\x65\xda\x56\xf8\x4d\x94\x65\xdb\x4a\xfa\x52\x53\x4c\x71\x4d\xd7\x65\xdc\x5a\xf3\x65\xdd\x4e\xd5\x4e\x7f\x65\xde\x51\x7e\x51\xb7\x5a\xde\x5c\x6a\x65\xdf\x65\xe0\x65\xe3\x65\xe1\x65\xe2\x55\x7e\x4c\xb2\x4b\xc3\x65\xe4\x55\xe9\x55\x6d\x4a\xcc\xb9\xf2\xb9\xf3\x61\xd8\x53\x83\x65\xe5\x50\xb4\xb9\xf4\x5c\x58\x65\xe6\x5c\x4c\x54\xfb\x5c\xd2\x5c\xcc\x5a\xdd\xb9\xf5\x5a\xf8\x55\x64\x5a\x4e\x4c\xd2\x4a\x81\xb9\xf6\x55\x83\x6a\xf5\xb9\xf7\xb9\xf8\xb9\xf9\x4d\xd4\xb9\xfa\x6a\xf6\xb9\xfb\xb9\xfc\x5c\x7f\xb9\xfd\xba\x41\x6a\xf0\x4c\xaf\x5b\x74\x4c\xce\x53\xef\xba\x42\xba\x43\xba\x44\xba\x45\xba\x46\xba\x47\xba\x48\xba\x49", /* 8d80 */ "\xba\x4a\x4a\x63\xba\x4b\xba\x4c\x6a\xf1\x4a\x4c\xba\x4d\xba\x4e\xba\x4f\xba\x50\x5a\xbc\x54\x98\xba\x51\xba\x52\xba\x53\xba\x54\xba\x55\x6a\xf3\xba\x56\xba\x57\x6a\xf2\xba\x58\xba\x59\xba\x5a\xba\x5b\xba\x5c\xba\x5d\xba\x5e\xba\x5f\xba\x60\xba\x61\x56\xca\xba\x62\xba\x63\xba\x64\x54\xa3\xba\x65\xba\x66\xba\x67\xba\x68\xba\x69\xba\x6a\xba\x6b\xba\x6c\xba\x6d\xba\x6e\xba\x6f\xba\x70\xba\x71\x6a\xf4\xba\x72\x5c\x84\x53\x5f\x6b\x60\xba\x73\xba\x74\x6b\x5b\xba\x75\x6b\x63\xba\x76\x6b\x62\xba\x77\x5b\xb9\x6b\x61\xba\x78\xba\x79\xba\x7a\x5a\xbd\x6b\x64\xba\x7b\x6b\x6c\xba\x7c\xba\x7d\xba\x7e\xba\x7f\x48\xce\x4b\x99\xba\x81\x6b\x69\x6b\x6a\xba\x82\x53\x7c\xba\x83\xba\x84\xba\x85\xba\x86\x6b\x65\x6b\x66\xba\x87\xba\x88\x6b\x67\x6b\x6b\xba\x89\x4f\xdf\x6b\x68\x4c\xf9\xba\x8a\xba\x8b\xba\x8c\x6b\x70\x6b\x73\xba\x8d\xba\x8e\xba\x8f\x50\x88\xba\x90\x4d\x93\x6b\x5c\x6b\x6d\xba\x91\xba\x92\x51\xb6\xba\x93\xba\x94\xba\x95\x56\xf7\xba\x96\x4e\xf8\xba\x97\x6b\x6e\x6b\x6f\x6b\x71\x4b\xe4\x6b\x72\xba\x98\x6b\x75\xba\x99\xba\x9a", /* 8e00 */ "\xba\x9b\xba\x9c\xba\x9d\xba\x9e\xba\x9f\x6b\x5d\xba\xa0\xba\xa1\xba\xa2\x6b\x74\x5a\x5b\xba\xa3\x4a\x8d\xba\xa4\xba\xa5\x56\xa3\xba\xa6\xba\xa7\xba\xa8\xba\xa9\x6b\x76\xba\xaa\xba\xab\xba\xac\xba\xad\xba\xae\xba\xaf\xba\xb0\xba\xb1\x6b\x77\x4f\xe0\x6b\x78\xba\xb2\xba\xb3\x56\xde\x6b\x7b\xba\xb4\xba\xb5\xba\xb6\xba\xb7\xba\xb8\x49\xc7\x5c\x79\xba\xb9\x6b\x79\xba\xba\x6b\x7a\x6b\x7c\xba\xbb\x6b\x83\xba\xbc\xba\xbd\xba\xbe\x6b\x81\xba\xbf\xba\xc0\xba\xc1\x6b\x7f\x6b\x7d\xba\xc2\xba\xc3\x6b\x82\xba\xc4\xba\xc5\x6b\x7e\x6b\x85\x6b\x86\xba\xc6\x56\xe2\xba\xc7\xba\xc8\x63\x5f\x4b\x58\x6b\x84\x6b\x89\x56\xa2\xba\xc9\xba\xca\xba\xcb\xba\xcc\xba\xcd\x6b\x87\x6b\x88\xba\xce\xba\xcf\xba\xd0\xba\xd1\xba\xd2\xba\xd3\x6b\x5e\xba\xd4\xba\xd5\xba\xd6\xba\xd7\xba\xd8\xba\xd9\xba\xda\xba\xdb\xba\xdc\xba\xdd\xba\xde\xba\xdf\x49\x64\xba\xe0\xba\xe1\x6b\x5f\xba\xe2\xba\xe3\x4b\x65\x49\xe3\xba\xe4\x6b\x8d\x6b\x8a\xba\xe5\x4b\xd6\xba\xe6\x6b\x8e\xba\xe7\x6b\x8b\xba\xe8\xba\xe9\xba\xea\xba\xeb\xba\xec\x6b\x8c\xba\xed\xba\xee\x4a\xd9", /* 8e80 */ "\xba\xef\x5a\xe9\xba\xf0\xba\xf1\xba\xf2\x6b\x8f\xba\xf3\x4a\x9a\xba\xf4\xba\xf5\xba\xf6\xba\xf7\xba\xf8\xba\xf9\xba\xfa\x6b\x90\x6b\x92\xba\xfb\xba\xfc\xba\xfd\x6b\x91\xbb\x41\xbb\x42\xbb\x43\xbb\x44\xbb\x45\xbb\x46\xbb\x47\x6b\x93\xbb\x48\x6b\x94\xbb\x49\xbb\x4a\xbb\x4b\xbb\x4c\xbb\x4d\xbb\x4e\xbb\x4f\xbb\x50\xbb\x51\xbb\x52\xbb\x53\xbb\x54\x55\x8e\x4d\x4a\xbb\x55\xbb\x56\x54\x9c\xbb\x57\xbb\x58\x4b\xe2\xbb\x59\xbb\x5a\xbb\x5b\xbb\x5c\xbb\x5d\xbb\x5e\xbb\x5f\x56\xc8\xbb\x60\xbb\x61\xbb\x62\xbb\x63\xbb\x64\xbb\x65\xbb\x66\xbb\x67\xbb\x68\xbb\x69\xbb\x6a\xbb\x6b\xbb\x6c\xbb\x6d\xbb\x6e\xbb\x6f\xbb\x70\xbb\x71\xbb\x72\x65\xa5\xbb\x73\xbb\x74\xbb\x75\xbb\x76\xbb\x77\xbb\x78\xbb\x79\xbb\x7a\xbb\x7b\xbb\x7c\xbb\x7d\xbb\x7e\xbb\x7f\xbb\x81\xbb\x82\xbb\x83\xbb\x84\xbb\x85\xbb\x86\xbb\x87\xbb\x88\xbb\x89\xbb\x8a\xbb\x8b\xbb\x8c\xbb\x8d\xbb\x8e\xbb\x8f\xbb\x90\xbb\x91\xbb\x92\xbb\x93\xbb\x94\xbb\x95\xbb\x96\xbb\x97\xbb\x98\xbb\x99\xbb\x9a\xbb\x9b\xbb\x9c\xbb\x9d\xbb\x9e\xbb\x9f\xbb\xa0\xbb\xa1\xbb\xa2\xbb\xa3\xbb\xa4", /* 8f00 */ "\xbb\xa5\xbb\xa6\xbb\xa7\xbb\xa8\xbb\xa9\xbb\xaa\xbb\xab\xbb\xac\xbb\xad\xbb\xae\xbb\xaf\xbb\xb0\xbb\xb1\xbb\xb2\xbb\xb3\xbb\xb4\xbb\xb5\xbb\xb6\xbb\xb7\xbb\xb8\xbb\xb9\xbb\xba\xbb\xbb\xbb\xbc\xbb\xbd\xbb\xbe\xbb\xbf\xbb\xc0\xbb\xc1\xbb\xc2\xbb\xc3\xbb\xc4\xbb\xc5\xbb\xc6\xbb\xc7\xbb\xc8\xbb\xc9\xbb\xca\xbb\xcb\xbb\xcc\xbb\xcd\xbb\xce\xbb\xcf\xbb\xd0\xbb\xd1\xbb\xd2\xbb\xd3\xbb\xd4\xbb\xd5\xbb\xd6\xbb\xd7\xbb\xd8\xbb\xd9\xbb\xda\xbb\xdb\xbb\xdc\xbb\xdd\xbb\xde\xbb\xdf\xbb\xe0\xbb\xe1\xbb\xe2\xbb\xe3\xbb\xe4\xbb\xe5\xbb\xe6\xbb\xe7\xbb\xe8\xbb\xe9\xbb\xea\xbb\xeb\xbb\xec\xbb\xed\xbb\xee\xbb\xef\xbb\xf0\xbb\xf1\xbb\xf2\xbb\xf3\xbb\xf4\xbb\xf5\xbb\xf6\xbb\xf7\xbb\xf8\xbb\xf9\xbb\xfa\xbb\xfb\xbb\xfc\xbb\xfd\xbc\x41\xbc\x42\xbc\x43\xbc\x44\xbc\x45\xbc\x46\xbc\x47\xbc\x48\xbc\x49\xbc\x4a\xbc\x4b\xbc\x4c\xbc\x4d\x4a\x55\x5a\xfd\x4d\x8d\x58\xf8\xbc\x4e\x65\x8e\x5c\x4a\x65\x8f\x51\xd5\x54\xec\x4d\xe3\x65\x90\x65\x91\x65\x92\x5b\xe0\x65\x93\x65\x94\x65\x96\x65\x95\x65\x97\x65\x98\x54\x82\x65\x99\x5a\xd7\x65\x9a\x4f\x6e", /* 8f80 */ "\xbc\x4f\x65\x9b\x65\x9c\x4f\x6f\x65\x9d\x4c\xa7\x51\x5e\x65\x9e\x49\x52\x4e\x74\x4d\x96\x65\x9f\xbc\x50\x65\xa0\x65\xa1\x65\xa2\x4c\x99\x4e\xac\xbc\x51\x55\xe3\x60\xcd\x5a\xae\x58\x5d\x5b\x57\x65\xa3\x5b\x7e\x65\xa4\x58\xc0\x4d\x5c\xbc\x52\x4a\xc6\x49\x79\xbc\x53\xbc\x54\xbc\x55\x50\xb0\xbc\x56\xbc\x57\xbc\x58\xbc\x59\x49\x87\x49\x88\xbc\x5a\x49\x89\xbc\x5b\xbc\x5c\xbc\x5d\xbc\x5e\x4a\x5d\x54\xe7\xbc\x5f\xbc\x60\xbc\x61\xbc\x62\x63\x61\xbc\x63\xbc\x64\x49\x7f\xbc\x65\xbc\x66\xbc\x67\x51\x69\x4a\xee\xbc\x68\xbc\x69\x54\x48\x5a\x78\xbc\x6a\x53\xf8\x59\x58\xbc\x6b\x4d\x9e\x51\xf4\xbc\x6c\xbc\x6d\xbc\x6e\xbc\x6f\xbc\x70\x5a\x4d\xbc\x71\x5a\xca\x4f\x9d\xbc\x72\x63\x62\x4c\x55\x63\x63\xbc\x73\xbc\x74\x4e\x59\x5b\x83\xbc\x75\x4f\x99\x5a\xb5\x57\xa4\x51\x4c\x4a\x79\xbc\x76\xbc\x77\x56\xf5\xbc\x78\x63\x66\x63\x64\x63\x68\xbc\x79\x63\x6a\x63\x67\x4b\x6f\x53\xc7\xbc\x7a\x4b\x9d\x63\x65\xbc\x7b\x55\xf5\xbc\x7c\xbc\x7d\x63\x69\xbc\x7e\xbc\x7f\xbc\x81\x52\x74\x49\x65\x4e\xa2\xbc\x82\xbc\x83\xbc\x84\x5c\x57\xbc\x85\xbc\x86", /* 9000 */ "\x57\x6b\x56\x6d\x55\xc9\x56\xd2\x63\x6c\x63\x6b\x52\xe5\xbc\x87\xbc\x88\x59\x41\x59\x57\x63\x6d\xbc\x89\x63\x70\xbc\x8a\x57\x58\x5b\xef\x63\x6f\x4b\x7d\xbc\x8b\x57\x5e\xbc\x8c\x63\x71\x4b\xb9\xbc\x8d\xbc\x8e\x57\x48\x4d\x85\xbc\x8f\x55\xc4\x4a\x71\x56\x79\x5a\xeb\x63\x72\x4c\x8b\xbc\x90\xbc\x91\xbc\x92\x63\x6e\xbc\x93\xbc\x94\xbc\x95\xbc\x96\xbc\x97\xbc\x98\x63\x75\x4a\xfd\x63\x76\xbc\x99\xbc\x9a\xbc\x9b\xbc\x9c\xbc\x9d\x63\x73\x63\x74\xbc\x9e\x59\xdc\xbc\x9f\xbc\xa0\x51\xde\x49\x66\xbc\xa1\x5a\x83\xbc\xa2\xbc\xa3\x4b\xdc\x56\x8d\xbc\xa4\x63\x77\xbc\xa5\xbc\xa6\x5a\x97\xbc\xa7\xbc\xa8\xbc\xa9\xbc\xaa\xbc\xab\x49\x8a\xbc\xac\x4b\xf3\x63\x7a\x63\x78\x63\x79\x4b\x60\xbc\xad\xbc\xae\xbc\xaf\x59\xc4\x63\x7c\xbc\xb0\xbc\xb1\x63\x7e\xbc\xb2\xbc\xb3\xbc\xb4\xbc\xb5\xbc\xb6\xbc\xb7\x63\x7d\x54\x52\xbc\xb8\x59\xa2\xbc\xb9\xbc\xba\x63\x7b\xbc\xbb\xbc\xbc\xbc\xbd\xbc\xbe\x5a\xe1\x5b\x7a\xbc\xbf\xbc\xc0\xbc\xc1\xbc\xc2\xbc\xc3\x63\x81\x5c\x92\xbc\xc4\xbc\xc5\xbc\xc6\xbc\xc7\xbc\xc8\xbc\xc9\xbc\xca\x63\x82\xbc\xcb\x49\x7c", /* 9080 */ "\x59\x9c\xbc\xcc\x63\x83\x63\x85\xbc\xcd\xbc\xce\xbc\xcf\xbc\xd0\x63\x84\xbc\xd1\xbc\xd2\x63\x86\xbc\xd3\xbc\xd4\xbc\xd5\xbc\xd6\xbc\xd7\x59\xd7\xbc\xd8\x4b\x6b\xbc\xd9\x64\x7f\xbc\xda\x5d\xf4\xbc\xdb\x5d\xf7\xbc\xdc\x5d\xf5\xbc\xdd\x5d\xf6\xbc\xde\xbc\xdf\xbc\xe0\x5d\xf9\x58\xce\x52\xc6\xbc\xe1\xbc\xe2\x48\xed\xbc\xe3\xbc\xe4\xbc\xe5\x58\xaf\xbc\xe6\x5d\xf8\xbc\xe7\x5a\x6a\x4d\xa9\x5e\x42\x54\x92\xbc\xe8\x5d\xfb\x5d\xfa\x55\x7b\x5d\xfc\xbc\xe9\x5e\x41\x5c\x7e\x5d\xfd\x51\x7a\xbc\xea\xbc\xeb\x5e\x45\xbc\xec\xbc\xed\x5a\x95\xbc\xee\xbc\xef\x5e\x47\x5e\x44\xbc\xf0\x5e\x48\xbc\xf1\xbc\xf2\x4f\x5c\xbc\xf3\xbc\xf4\xbc\xf5\x50\xc8\x5e\x43\x5e\x46\x5b\xa2\xbc\xf6\x5e\x49\xbc\xf7\xbc\xf8\xbc\xf9\x5e\x4d\xbc\xfa\xbc\xfb\xbc\xfc\x5e\x4e\x5e\x4c\x4d\xc1\xbc\xfd\xbd\x41\xbd\x42\x50\x44\x5e\x4b\xbd\x43\xbd\x44\xbd\x45\x5e\x4a\x5a\xc6\x49\xbe\xbd\x46\xbd\x47\x5e\x4f\xbd\x48\x4d\x9a\xbd\x49\x5e\x50\xbd\x4a\xbd\x4b\xbd\x4c\xbd\x4d\x4a\x5b\xbd\x4e\xbd\x4f\xbd\x50\x4b\x46\xbd\x51\xbd\x52\xbd\x53\xbd\x54\x4b\xbb\x5e\x51\xbd\x55", /* 9100 */ "\xbd\x56\xbd\x57\x4b\xf4\xbd\x58\x5e\x52\xbd\x59\xbd\x5a\xbd\x5b\xbd\x5c\xbd\x5d\xbd\x5e\xbd\x5f\xbd\x60\xbd\x61\xbd\x62\xbd\x63\xbd\x64\xbd\x65\xbd\x66\xbd\x67\xbd\x68\xbd\x69\xbd\x6a\xbd\x6b\xbd\x6c\x49\x69\xbd\x6d\xbd\x6e\xbd\x6f\xbd\x70\x5e\x54\xbd\x71\xbd\x72\xbd\x73\x5e\x53\x5e\x55\xbd\x74\xbd\x75\xbd\x76\xbd\x77\xbd\x78\xbd\x79\xbd\x7a\xbd\x7b\xbd\x7c\xbd\x7d\xbd\x7e\x5e\x57\xbd\x7f\x5e\x56\xbd\x81\xbd\x82\xbd\x83\xbd\x84\xbd\x85\xbd\x86\xbd\x87\x5e\x58\xbd\x88\xbd\x89\xbd\x8a\xbd\x8b\xbd\x8c\xbd\x8d\xbd\x8e\xbd\x8f\xbd\x90\x5e\x59\xbd\x91\xbd\x92\x5e\x5a\xbd\x93\xbd\x94\x5a\x6f\x6a\xf9\x54\x96\x5c\x63\x53\x85\x6a\xfb\x6a\xfc\x6a\xfa\xbd\x95\x4f\xc5\xbd\x96\xbd\x97\xbd\x98\xbd\x99\x58\xee\xbd\x9a\xbd\x9b\x4c\x73\xbd\x9c\xbd\x9d\x5a\xcc\x56\xa9\xbd\x9e\xbd\x9f\x6b\x42\x6b\x41\x4d\xa7\x6a\xfd\x56\x76\xbd\xa0\xbd\xa1\xbd\xa2\x6b\x44\x50\xd1\xbd\xa3\x4a\x8b\xbd\xa4\x57\x4a\x6b\x45\x6b\x43\x4f\x54\x6b\x48\xbd\xa5\x6b\x49\x4f\x6d\x52\x58\x50\x82\x56\x82\x6b\x4a\xbd\xa6\xbd\xa7\xbd\xa8\x6b\x46\x6b\x47\x52\xef", /* 9180 */ "\xbd\xa9\xbd\xaa\xbd\xab\xbd\xac\xbd\xad\x6b\x4c\xbd\xae\x4a\xbb\xbd\xaf\x5c\x8e\xbd\xb0\x4a\xd6\x6b\x4b\x6b\x4e\xbd\xb1\xbd\xb2\x6b\x4d\x6b\x4f\x58\xd0\xbd\xb3\xbd\xb4\xbd\xb5\xbd\xb6\xbd\xb7\xbd\xb8\xbd\xb9\x52\x71\x54\xa8\xbd\xba\xbd\xbb\xbd\xbc\xbd\xbd\xbd\xbe\xbd\xbf\x6b\x50\x6b\x51\xbd\xc0\xbd\xc1\xbd\xc2\xbd\xc3\xbd\xc4\xbd\xc5\x6b\x52\xbd\xc6\xbd\xc7\x6b\x53\x6b\x54\x6b\x55\xbd\xc8\xbd\xc9\xbd\xca\xbd\xcb\x6b\x57\x6b\x56\xbd\xcc\xbd\xcd\xbd\xce\xbd\xcf\x6b\x58\xbd\xd0\xbd\xd1\xbd\xd2\xbd\xd3\xbd\xd4\xbd\xd5\xbd\xd6\xbd\xd7\xbd\xd8\xbd\xd9\xbd\xda\xbd\xdb\x49\xc8\xbd\xdc\x5a\x74\x55\xcc\xbd\xdd\x50\xee\x5b\xd7\x59\xaf\x51\x5f\xbd\xde\x4f\x91\xbd\xdf\xbd\xe0\xbd\xe1\xbd\xe2\xbd\xe3\xbd\xe4\xbd\xe5\xbd\xe6\xbd\xe7\xbd\xe8\x4c\xa9\xbd\xe9\xbd\xea\xbd\xeb\xbd\xec\xbd\xed\xbd\xee\xbd\xef\xbd\xf0\xbd\xf1\xbd\xf2\xbd\xf3\xbd\xf4\xbd\xf5\xbd\xf6\xbd\xf7\xbd\xf8\xbd\xf9\xbd\xfa\xbd\xfb\xbd\xfc\xbd\xfd\xbe\x41\xbe\x42\xbe\x43\xbe\x44\xbe\x45\xbe\x46\xbe\x47\xbe\x48\xbe\x49\xbe\x4a\xbe\x4b\xbe\x4c\xbe\x4d\xbe\x4e", /* 9200 */ "\xbe\x4f\xbe\x50\xbe\x51\xbe\x52\xbe\x53\xbe\x54\xbe\x55\xbe\x56\xbe\x57\xbe\x58\xbe\x59\xbe\x5a\xbe\x5b\xbe\x5c\xbe\x5d\xbe\x5e\xbe\x5f\xbe\x60\xbe\x61\xbe\x62\xbe\x63\xbe\x64\xbe\x65\xbe\x66\xbe\x67\xbe\x68\xbe\x69\xbe\x6a\xbe\x6b\xbe\x6c\xbe\x6d\xbe\x6e\xbe\x6f\xbe\x70\xbe\x71\xbe\x72\xbe\x73\xbe\x74\xbe\x75\xbe\x76\xbe\x77\xbe\x78\xbe\x79\xbe\x7a\xbe\x7b\xbe\x7c\xbe\x7d\xbe\x7e\xbe\x7f\xbe\x81\xbe\x82\xbe\x83\xbe\x84\xbe\x85\xbe\x86\xbe\x87\xbe\x88\xbe\x89\xbe\x8a\xbe\x8b\xbe\x8c\xbe\x8d\xbe\x8e\xbe\x8f\xbe\x90\xbe\x91\xbe\x92\xbe\x93\xbe\x94\xbe\x95\xbe\x96\xbe\x97\xbe\x98\xbe\x99\xbe\x9a\xbe\x9b\xbe\x9c\xbe\x9d\xbe\x9e\xbe\x9f\xbe\xa0\xbe\xa1\xbe\xa2\xbe\xa3\xbe\xa4\xbe\xa5\xbe\xa6\xbe\xa7\xbe\xa8\xbe\xa9\xbe\xaa\xbe\xab\xbe\xac\xbe\xad\xbe\xae\xbe\xaf\xbe\xb0\xbe\xb1\xbe\xb2\xbe\xb3\xbe\xb4\xbe\xb5\xbe\xb6\xbe\xb7\xbe\xb8\xbe\xb9\xbe\xba\xbe\xbb\xbe\xbc\xbe\xbd\xbe\xbe\xbe\xbf\xbe\xc0\xbe\xc1\xbe\xc2\xbe\xc3\x4e\xf7\xbe\xc4\xbe\xc5\xbe\xc6\xbe\xc7\xbe\xc8\xbe\xc9\xbe\xca\xbe\xcb\xbe\xcc\xbe\xcd\xbe\xce", /* 9280 */ "\xbe\xcf\xbe\xd0\xbe\xd1\xbe\xd2\xbe\xd3\xbe\xd4\xbe\xd5\xbe\xd6\xbe\xd7\xbe\xd8\xbe\xd9\xbe\xda\xbe\xdb\xbe\xdc\x6b\xc5\xbe\xdd\xbe\xde\xbe\xdf\xbe\xe0\xbe\xe1\xbe\xe2\xbe\xe3\xbe\xe4\xbe\xe5\xbe\xe6\xbe\xe7\xbe\xe8\xbe\xe9\xbe\xea\xbe\xeb\xbe\xec\xbe\xed\xbe\xee\xbe\xef\xbe\xf0\xbe\xf1\xbe\xf2\xbe\xf3\xbe\xf4\xbe\xf5\xbe\xf6\xbe\xf7\xbe\xf8\xbe\xf9\xbe\xfa\xbe\xfb\x6b\xc6\xbe\xfc\xbe\xfd\xbf\x41\xbf\x42\xbf\x43\xbf\x44\xbf\x45\xbf\x46\xbf\x47\xbf\x48\xbf\x49\xbf\x4a\xbf\x4b\xbf\x4c\xbf\x4d\xbf\x4e\xbf\x4f\xbf\x50\xbf\x51\xbf\x52\xbf\x53\xbf\x54\xbf\x55\xbf\x56\xbf\x57\x6b\xc7\xbf\x58\xbf\x59\xbf\x5a\xbf\x5b\xbf\x5c\xbf\x5d\xbf\x5e\xbf\x5f\xbf\x60\xbf\x61\xbf\x62\xbf\x63\xbf\x64\xbf\x65\xbf\x66\xbf\x67\xbf\x68\xbf\x69\xbf\x6a\xbf\x6b\xbf\x6c\xbf\x6d\xbf\x6e\xbf\x6f\xbf\x70\xbf\x71\xbf\x72\xbf\x73\xbf\x74\xbf\x75\xbf\x76\xbf\x77\xbf\x78\xbf\x79\xbf\x7a\xbf\x7b\xbf\x7c\xbf\x7d\xbf\x7e\xbf\x7f\xbf\x81\xbf\x82\xbf\x83\xbf\x84\xbf\x85\xbf\x86\xbf\x87\xbf\x88\xbf\x89\xbf\x8a\xbf\x8b\xbf\x8c\xbf\x8d\xbf\x8e\xbf\x8f", /* 9300 */ "\xbf\x90\xbf\x91\xbf\x92\xbf\x93\xbf\x94\xbf\x95\xbf\x96\xbf\x97\xbf\x98\xbf\x99\xbf\x9a\xbf\x9b\xbf\x9c\xbf\x9d\xbf\x9e\xbf\x9f\xbf\xa0\xbf\xa1\xbf\xa2\xbf\xa3\xbf\xa4\xbf\xa5\xbf\xa6\xbf\xa7\xbf\xa8\xbf\xa9\xbf\xaa\xbf\xab\xbf\xac\xbf\xad\xbf\xae\xbf\xaf\xbf\xb0\xbf\xb1\xbf\xb2\xbf\xb3\xbf\xb4\xbf\xb5\xbf\xb6\xbf\xb7\xbf\xb8\xbf\xb9\xbf\xba\xbf\xbb\xbf\xbc\xbf\xbd\xbf\xbe\xbf\xbf\xbf\xc0\xbf\xc1\xbf\xc2\xbf\xc3\xbf\xc4\xbf\xc5\xbf\xc6\xbf\xc7\xbf\xc8\xbf\xc9\xbf\xca\xbf\xcb\xbf\xcc\xbf\xcd\x6b\xc8\xbf\xce\xbf\xcf\xbf\xd0\xbf\xd1\xbf\xd2\xbf\xd3\xbf\xd4\xbf\xd5\xbf\xd6\xbf\xd7\xbf\xd8\xbf\xd9\xbf\xda\xbf\xdb\xbf\xdc\xbf\xdd\xbf\xde\xbf\xdf\xbf\xe0\xbf\xe1\xbf\xe2\xbf\xe3\xbf\xe4\xbf\xe5\xbf\xe6\xbf\xe7\xbf\xe8\xbf\xe9\xbf\xea\xbf\xeb\xbf\xec\xbf\xed\xbf\xee\xbf\xef\xbf\xf0\xbf\xf1\xbf\xf2\xbf\xf3\xbf\xf4\xbf\xf5\xbf\xf6\xbf\xf7\xbf\xf8\x6b\xc9\xbf\xf9\xbf\xfa\xbf\xfb\xbf\xfc\xbf\xfd\xc0\x41\xc0\x42\xc0\x43\xc0\x44\xc0\x45\xc0\x46\xc0\x47\xc0\x48\xc0\x49\xc0\x4a\xc0\x4b\xc0\x4c\xc0\x4d\xc0\x4e\xc0\x4f\xc0\x50", /* 9380 */ "\xc0\x51\xc0\x52\xc0\x53\xc0\x54\xc0\x55\xc0\x56\xc0\x57\xc0\x58\xc0\x59\xc0\x5a\xc0\x5b\xc0\x5c\xc0\x5d\xc0\x5e\xc0\x5f\x6b\xcb\xc0\x60\xc0\x61\xc0\x62\xc0\x63\xc0\x64\xc0\x65\xc0\x66\xc0\x67\xc0\x68\xc0\x69\xc0\x6a\xc0\x6b\xc0\x6c\xc0\x6d\xc0\x6e\xc0\x6f\xc0\x70\xc0\x71\xc0\x72\xc0\x73\xc0\x74\xc0\x75\xc0\x76\xc0\x77\xc0\x78\xc0\x79\xc0\x7a\xc0\x7b\xc0\x7c\xc0\x7d\xc0\x7e\xc0\x7f\xc0\x81\xc0\x82\xc0\x83\xc0\x84\xc0\x85\xc0\x86\xc0\x87\xc0\x88\xc0\x89\xc0\x8a\xc0\x8b\xc0\x8c\xc0\x8d\xc0\x8e\xc0\x8f\xc0\x90\xc0\x91\xc0\x92\xc0\x93\xc0\x94\xc0\x95\xc0\x96\xc0\x97\xc0\x98\xc0\x99\xc0\x9a\x6b\xca\xc0\x9b\xc0\x9c\xc0\x9d\xc0\x9e\xc0\x9f\xc0\xa0\xc0\xa1\xc0\xa2\xc0\xa3\xc0\xa4\xc0\xa5\x6c\x8a\xc0\xa6\xc0\xa7\xc0\xa8\xc0\xa9\xc0\xaa\xc0\xab\xc0\xac\xc0\xad\xc0\xae\xc0\xaf\xc0\xb0\xc0\xb1\xc0\xb2\xc0\xb3\xc0\xb4\xc0\xb5\xc0\xb6\xc0\xb7\xc0\xb8\xc0\xb9\xc0\xba\xc0\xbb\xc0\xbc\xc0\xbd\xc0\xbe\xc0\xbf\xc0\xc0\xc0\xc1\xc0\xc2\xc0\xc3\xc0\xc4\xc0\xc5\xc0\xc6\xc0\xc7\xc0\xc8\xc0\xc9\xc0\xca\xc0\xcb\xc0\xcc\xc0\xcd\xc0\xce", /* 9400 */ "\xc0\xcf\xc0\xd0\xc0\xd1\xc0\xd2\xc0\xd3\xc0\xd4\xc0\xd5\xc0\xd6\xc0\xd7\xc0\xd8\xc0\xd9\xc0\xda\xc0\xdb\xc0\xdc\xc0\xdd\xc0\xde\xc0\xdf\xc0\xe0\xc0\xe1\xc0\xe2\xc0\xe3\xc0\xe4\xc0\xe5\xc0\xe6\xc0\xe7\xc0\xe8\xc0\xe9\xc0\xea\xc0\xeb\xc0\xec\xc0\xed\xc0\xee\xc0\xef\xc0\xf0\xc0\xf1\xc0\xf2\xc0\xf3\xc0\xf4\xc0\xf5\xc0\xf6\xc0\xf7\xc0\xf8\xc0\xf9\xc0\xfa\xc0\xfb\xc0\xfc\xc0\xfd\xc1\x41\xc1\x42\xc1\x43\xc1\x44\xc1\x45\xc1\x46\xc1\x47\xc1\x48\xc1\x49\xc1\x4a\xc1\x4b\xc1\x4c\xc1\x4d\xc1\x4e\xc1\x4f\x6b\xcc\xc1\x50\xc1\x51\xc1\x52\xc1\x53\xc1\x54\xc1\x55\xc1\x56\xc1\x57\xc1\x58\xc1\x59\xc1\x5a\xc1\x5b\xc1\x5c\xc1\x5d\xc1\x5e\xc1\x5f\xc1\x60\xc1\x61\xc1\x62\xc1\x63\xc1\x64\xc1\x65\xc1\x66\xc1\x67\xc1\x68\xc1\x69\xc1\x6a\xc1\x6b\xc1\x6c\xc1\x6d\xc1\x6e\xc1\x6f\xc1\x70\xc1\x71\xc1\x72\xc1\x73\xc1\x74\xc1\x75\xc1\x76\xc1\x77\xc1\x78\xc1\x79\xc1\x7a\xc1\x7b\x6b\xcd\xc1\x7c\xc1\x7d\xc1\x7e\xc1\x7f\xc1\x81\xc1\x82\xc1\x83\xc1\x84\xc1\x85\xc1\x86\xc1\x87\xc1\x88\xc1\x89\xc1\x8a\xc1\x8b\xc1\x8c\xc1\x8d\xc1\x8e\xc1\x8f\xc1\x90", /* 9480 */ "\xc1\x91\xc1\x92\xc1\x93\xc1\x94\xc1\x95\x67\xc3\x67\xc4\x67\xc5\x5b\x8c\x4b\xa3\x67\xc7\x67\xc6\x67\xc8\x67\xc9\x54\x45\x67\xca\x67\xcb\xc1\x96\x4c\x50\x4b\x97\x67\xcc\x67\xce\xc1\x97\x67\xcd\xc1\x98\x4c\xc5\x67\xcf\x67\xd0\x67\xd1\x4b\xda\x4a\x4e\x5b\xd2\x52\xc5\x49\x55\x4c\xd5\x67\xd2\x67\xd3\x5a\xbe\x54\x75\x4f\xfa\x57\xd8\x4d\x53\x67\xd5\x67\xd4\x67\xd7\x67\xd6\x53\x45\x67\xd8\x67\xd9\x54\x4e\x67\xda\x54\x4f\x67\xdb\x49\xa6\x67\xdc\x67\xdd\x67\xde\x67\xdf\x67\xe0\x5c\x8b\x67\xe1\x67\xe2\x4e\xd7\x67\xe3\x5a\x6b\x56\xf9\x49\xab\x51\x86\x67\xe4\x54\x46\x52\x4d\xc1\x99\x67\xe5\x67\xe6\x67\xe7\x67\xe8\x67\xe9\x67\xea\x67\xeb\xc1\x9a\x67\xec\x67\xed\x67\xee\xc1\x9b\xc1\x9c\x67\xef\x67\xf0\x67\xf1\x67\xf3\x67\xf2\xc1\x9d\x67\xf4\x57\x4d\x51\xc0\x67\xf5\x67\xf6\x67\xf7\x5b\x41\x67\xf8\x58\x53\x67\xf9\x67\xfa\xc1\x9e\x67\xfb\x67\xfc\x68\x41\x67\xfd\x68\x42\x4c\xf4\x52\x9b\x68\x43\x68\x44\x4f\x62\x59\xbe\x49\xf8\x68\x45\x68\x46\x68\x47\x59\xf7\x68\x48\x5b\xfc\x68\x49\x53\xcb\xc1\x9f\x68\x4a\x68\x4b\x51\x54\x68\x4c", /* 9500 */ "\x58\x9b\x56\x99\x68\x4e\x68\x4d\x4a\x9b\x4d\x99\x68\x4f\x68\x50\x58\xe1\x68\x51\x68\x52\x4c\x87\x58\xbe\x68\x53\x68\x54\x68\x55\x54\xf0\x56\xdf\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x5b\x81\x68\x5b\x4a\xec\x52\x4a\x68\x5c\xc1\xa0\x68\x5d\x68\x5e\x68\x5f\xc1\xa1\x57\xfc\x68\x60\x51\xdf\x4a\xb7\x5c\x56\x4f\x96\xc1\xa2\x58\x67\x68\x63\x68\x61\x68\x62\x68\x64\x4b\xa6\x4e\xfb\x4f\xe1\x52\x6c\x68\x65\x68\x66\xc1\xa3\x68\x67\x68\x6f\x68\x68\x68\x69\x68\x6a\x54\x62\x68\x92\x4b\xcc\x68\x6b\xc1\xa4\x68\x6c\x68\x6d\x4b\xc5\x52\x5e\x68\x6e\xc1\xa5\x68\x70\x68\x71\x68\x72\x5b\x93\xc1\xa6\x68\x73\x52\xf6\xc1\xa7\x68\x74\x52\xf7\x68\x75\x68\x76\x4c\xe3\x48\xf6\x68\x77\x68\x78\x68\x79\xc1\xa8\x68\x7a\x68\x7b\x68\x7c\x68\x7d\xc1\xa9\x68\x7e\x4f\xb4\x68\x82\x68\x7f\x68\x81\xc1\xaa\x68\x83\x68\x84\x51\x6d\x68\x85\x68\x86\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x50\xd7\xc1\xab\x68\x8e\x51\x4d\x68\x8f\x68\x90\x68\x91\xc1\xac\xc1\xad\x58\x83\xc1\xae\xc1\xaf\xc1\xb0\xc1\xb1\xc1\xb2\xc1\xb3\xc1\xb4\xc1\xb5\x4a\x44", /* 9580 */ "\xc1\xb6\xc1\xb7\xc1\xb8\xc1\xb9\xc1\xba\xc1\xbb\xc1\xbc\xc1\xbd\xc1\xbe\xc1\xbf\xc1\xc0\xc1\xc1\xc1\xc2\xc1\xc3\xc1\xc4\xc1\xc5\xc1\xc6\xc1\xc7\xc1\xc8\xc1\xc9\xc1\xca\xc1\xcb\xc1\xcc\xc1\xcd\xc1\xce\xc1\xcf\xc1\xd0\xc1\xd1\xc1\xd2\xc1\xd3\xc1\xd4\xc1\xd5\xc1\xd6\xc1\xd7\xc1\xd8\xc1\xd9\xc1\xda\xc1\xdb\xc1\xdc\xc1\xdd\xc1\xde\xc1\xdf\xc1\xe0\xc1\xe1\xc1\xe2\xc1\xe3\xc1\xe4\xc1\xe5\xc1\xe6\xc1\xe7\xc1\xe8\xc1\xe9\xc1\xea\xc1\xeb\xc1\xec\xc1\xed\xc1\xee\xc1\xef\xc1\xf0\xc1\xf1\xc1\xf2\xc1\xf3\xc1\xf4\xc1\xf5\xc1\xf6\xc1\xf7\xc1\xf8\xc1\xf9\xc1\xfa\xc1\xfb\xc1\xfc\xc1\xfd\xc2\x41\xc2\x42\xc2\x43\xc2\x44\xc2\x45\xc2\x46\xc2\x47\xc2\x48\xc2\x49\xc2\x4a\xc2\x4b\xc2\x4c\xc2\x4d\xc2\x4e\xc2\x4f\xc2\x50\xc2\x51\xc2\x52\xc2\x53\xc2\x54\xc2\x55\xc2\x56\xc2\x57\xc2\x58\xc2\x59\xc2\x5a\xc2\x5b\xc2\x5c\xc2\x5d\xc2\x5e\xc2\x5f\xc2\x60\x52\x65\x62\x65\x55\x61\x62\x66\xc2\x61\x49\x75\x57\xc9\x4a\xb2\x54\xf1\x62\x67\x58\x70\x62\x68\x4e\xe3\x62\x69\x62\x6a\x52\x66\x5b\x42\x52\xd5\x4d\x8c\x57\xc4\x62\x6b\x52\x97\x62\x6c\xc2\x62", /* 9600 */ "\x4c\x47\x4c\xf2\x4d\xd1\x62\x6d\x62\x6e\x5a\xc3\x62\x6f\xc2\x63\x62\x70\x59\x6b\x62\x71\x62\x72\x62\x73\x62\x74\x59\x76\x62\x75\x49\xfa\x50\xba\x62\x76\xc2\x64\x50\xaa\x62\x77\x62\x78\x62\x79\xc2\x65\x62\x7a\x62\x7b\xc2\x66\x4c\xb6\x5d\xe1\xc2\x67\x4b\xd2\xc2\x68\x5d\xe3\x5d\xe2\xc2\x69\xc2\x6a\xc2\x6b\xc2\x6c\xc2\x6d\xc2\x6e\xc2\x6f\x5d\xe5\xc2\x70\xc2\x71\xc2\x72\x54\xed\xc2\x73\xc2\x74\x5d\xe4\x4c\x60\x59\x95\x59\xf4\x5b\x94\x4f\x77\xc2\x75\xc2\x76\xc2\x77\xc2\x78\x5c\x89\x5d\xe7\x5d\xe6\xc2\x79\x48\xa1\x57\x73\xc2\x7a\x5d\xe8\xc2\x7b\x4c\xbc\x4e\xc9\x51\xbc\x51\xa3\x4a\x62\x5d\xe9\xc2\x7c\x51\xa9\x52\xaf\x4f\x55\xc2\x7d\xc2\x7e\x58\x7e\xc2\x7f\xc2\x81\xc2\x82\x5d\xea\x55\x62\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\x49\x7d\xc2\x88\xc2\x89\xc2\x8a\x5d\xeb\xc2\x8b\x4b\xb7\x5a\xb9\xc2\x8c\x4a\x9e\xc2\x8d\xc2\x8e\x5d\xec\x5a\xc8\x58\x75\x53\x84\xc2\x8f\x5d\xed\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\x5d\xee\xc2\x95\x5d\xef\x51\x8b\x56\xd4\x58\x7d\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d", /* 9680 */ "\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\x5a\x88\x51\xa0\xc2\xa3\x5d\xf0\xc2\xa4\xc2\xa5\x56\x86\xc2\xa6\x5d\xf1\xc2\xa7\x56\x87\x59\xfd\xc2\xa8\xc2\xa9\xc2\xaa\x4c\xf3\xc2\xab\xc2\xac\x5d\xf2\x48\xae\x58\x56\xc2\xad\xc2\xae\x5b\x6f\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\x56\x8e\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc2\xc0\x5d\xf3\xc2\xc1\xc2\xc2\x62\x64\xc2\xc3\xc2\xc4\x51\x45\xc2\xc5\xc2\xc6\x6b\xbe\xc2\xc7\xc2\xc8\x6b\xbf\x6b\xc0\x52\xd0\xc2\xc9\x54\xb7\x59\x84\xc2\xca\xc2\xcb\x58\xda\x59\x65\x4e\xae\x4d\x6d\xc2\xcc\x68\x95\xc2\xcd\xc2\xce\x4a\xc5\x5a\x5a\x6b\xc1\x4a\x9c\xc2\xcf\xc2\xd0\x6b\xc2\xc2\xd1\xc2\xd2\x4b\x92\xc2\xd3\xc2\xd4\xc2\xd5\xc2\xd6\xc2\xd7\xc2\xd8\xc2\xd9\xc2\xda\xc2\xdb\xc2\xdc\x6b\xc4\xc2\xdd\xc2\xde\xc2\xdf\xc2\xe0\xc2\xe1\xc2\xe2\xc2\xe3\x5a\x8b\x6b\xa6\x59\x49\xc2\xe4\xc2\xe5\xc2\xe6\xc2\xe7\x6b\xa8\xc2\xe8\xc2\xe9\xc2\xea\x6b\xa7\xc2\xeb\xc2\xec\x51\x84\x50\xd6\xc2\xed\x49\x42\xc2\xee\xc2\xef\xc2\xf0\xc2\xf1\x57\xec\xc2\xf2", /* 9700 */ "\x58\xe7\x6b\xaa\xc2\xf3\xc2\xf4\x58\x97\xc2\xf5\x6b\xa9\x5b\x91\x6b\xab\x52\x59\xc2\xf6\xc2\xf7\xc2\xf8\x4e\x95\x6b\xad\x6b\xac\xc2\xf9\xc2\xfa\xc2\xfb\x52\xdd\xc2\xfc\xc2\xfd\x51\x78\xc3\x41\xc3\x42\xc3\x43\xc3\x44\xc3\x45\x56\x4a\xc3\x46\x58\x5c\xc3\x47\xc3\x48\xc3\x49\xc3\x4a\xc3\x4b\xc3\x4c\xc3\x4d\xc3\x4e\xc3\x4f\xc3\x50\xc3\x51\x6b\xae\xc3\x52\xc3\x53\x6b\xaf\xc3\x54\xc3\x55\x6b\xb0\xc3\x56\x51\xb5\xc3\x57\xc3\x58\xc3\x59\xc3\x5a\xc3\x5b\x48\xd3\x53\x9a\xc3\x5c\xc3\x5d\xc3\x5e\xc3\x5f\x6b\xb1\xc3\x60\xc3\x61\xc3\x62\xc3\x63\xc3\x64\xc3\x65\xc3\x66\xc3\x67\xc3\x68\xc3\x69\xc3\x6a\xc3\x6b\xc3\x6c\xc3\x6d\xc3\x6e\xc3\x6f\xc3\x70\xc3\x71\xc3\x72\x54\x81\x6b\xa5\xc3\x73\xc3\x74\x4f\xb7\xc3\x75\xc3\x76\x4f\xb1\xc3\x77\x4b\x86\xc3\x78\xc3\x79\x4c\x67\xc3\x7a\x50\x5f\x52\x72\x52\x87\xc3\x7b\xc3\x7c\x5c\xcb\xc3\x7d\xc3\x7e\xc3\x7f\x4c\xee\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85\xc3\x86\xc3\x87\xc3\x88\xc3\x89\x4f\x9a\x59\x45\xc3\x8a\x48\xcf\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\x6c\x50\xc3\x90\xc3\x91\xc3\x92", /* 9780 */ "\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\x6c\x51\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\x58\xab\xc3\x9d\x48\xaf\xc3\x9e\xc3\x9f\xc3\xa0\x6c\x52\x6c\x53\xc3\xa1\x6c\x54\xc3\xa2\xc3\xa3\xc3\xa4\x54\x6a\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\x4f\xce\xc3\xac\xc3\xad\x6c\x57\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\x6c\x56\xc3\xb5\x49\x7e\xc3\xb6\x6c\x55\xc3\xb7\xc3\xb8\x6c\x58\xc3\xb9\x6c\x59\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf\xc3\xc0\xc3\xc1\xc3\xc2\xc3\xc3\xc3\xc4\xc3\xc5\xc3\xc6\xc3\xc7\xc3\xc8\xc3\xc9\xc3\xca\xc3\xcb\xc3\xcc\xc3\xcd\xc3\xce\xc3\xcf\xc3\xd0\xc3\xd1\xc3\xd2\xc3\xd3\xc3\xd4\xc3\xd5\xc3\xd6\xc3\xd7\xc3\xd8\xc3\xd9\xc3\xda\xc3\xdb\xc3\xdc\xc3\xdd\xc3\xde\xc3\xdf\xc3\xe0\xc3\xe1\xc3\xe2\xc3\xe3\xc3\xe4\xc3\xe5\xc3\xe6\xc3\xe7\xc3\xe8\xc3\xe9\xc3\xea\x57\xa3\x54\xcc\xc3\xeb\x4d\xaa\x64\xb7\x64\xb8\x64\xb9\x4f\xc1\xc3\xec\xc3\xed\xc3\xee\xc3\xef\xc3\xf0\x59\xf3\xc3\xf1\x5a\xce\x55\x78\xc3\xf2\xc3\xf3\xc3\xf4\xc3\xf5\xc3\xf6\xc3\xf7\xc3\xf8\xc3\xf9\xc3\xfa", /* 9800 */ "\xc3\xfb\xc3\xfc\xc3\xfd\xc4\x41\xc4\x42\xc4\x43\xc4\x44\xc4\x45\xc4\x46\xc4\x47\xc4\x48\xc4\x49\xc4\x4a\xc4\x4b\xc4\x4c\xc4\x4d\xc4\x4e\xc4\x4f\xc4\x50\xc4\x51\xc4\x52\xc4\x53\xc4\x54\xc4\x55\xc4\x56\xc4\x57\xc4\x58\xc4\x59\xc4\x5a\xc4\x5b\xc4\x5c\xc4\x5d\xc4\x5e\xc4\x5f\xc4\x60\xc4\x61\xc4\x62\xc4\x63\xc4\x64\xc4\x65\xc4\x66\xc4\x67\xc4\x68\xc4\x69\xc4\x6a\xc4\x6b\xc4\x6c\xc4\x6d\xc4\x6e\xc4\x6f\xc4\x70\xc4\x71\xc4\x72\xc4\x73\xc4\x74\xc4\x75\xc4\x76\xc4\x77\xc4\x78\xc4\x79\xc4\x7a\xc4\x7b\xc4\x7c\xc4\x7d\xc4\x7e\xc4\x7f\xc4\x81\xc4\x82\xc4\x83\xc4\x84\xc4\x85\xc4\x86\xc4\x87\xc4\x88\xc4\x89\xc4\x8a\xc4\x8b\xc4\x8c\xc4\x8d\xc4\x8e\xc4\x8f\xc4\x90\xc4\x91\xc4\x92\xc4\x93\xc4\x94\xc4\x95\xc4\x96\xc4\x97\xc4\x98\xc4\x99\xc4\x9a\xc4\x9b\xc4\x9c\xc4\x9d\xc4\x9e\xc4\x9f\xc4\xa0\xc4\xa1\xc4\xa2\xc4\xa3\xc4\xa4\xc4\xa5\xc4\xa6\xc4\xa7\xc4\xa8\xc4\xa9\xc4\xaa\xc4\xab\xc4\xac\xc4\xad\xc4\xae\xc4\xaf\xc4\xb0\xc4\xb1\xc4\xb2\xc4\xb3\x59\xb2\x4b\xa4\x54\x8b\x69\x9d\x58\x8f\x56\x53\x58\xea\x64\x90\x57\x88\x4d\x6b\x4b\xd8", /* 9880 */ "\x69\x9e\x48\xe3\x56\x6c\x69\x9f\x5a\xa3\x51\xac\x51\x8d\x53\xc3\x4f\xb0\x69\xa0\x4e\xd4\xc4\xb4\x69\xa1\x69\xa2\xc4\xb5\x69\xa3\x59\xc2\x53\xb4\xc4\xb6\x57\x67\x69\xa4\xc4\xb7\x5a\x51\x50\x65\x56\xe1\xc4\xb8\x69\xa5\x69\xa6\x59\x75\x4b\xed\x69\xa7\x69\xa8\x4b\x7f\x69\xa9\x69\xaa\xc4\xb9\x49\xfb\x69\xab\x69\xac\x54\xa6\xc4\xba\xc4\xbb\xc4\xbc\xc4\xbd\xc4\xbe\xc4\xbf\xc4\xc0\xc4\xc1\xc4\xc2\xc4\xc3\xc4\xc4\xc4\xc5\xc4\xc6\xc4\xc7\xc4\xc8\xc4\xc9\xc4\xca\xc4\xcb\xc4\xcc\xc4\xcd\xc4\xce\xc4\xcf\xc4\xd0\xc4\xd1\xc4\xd2\xc4\xd3\xc4\xd4\xc4\xd5\xc4\xd6\xc4\xd7\xc4\xd8\xc4\xd9\xc4\xda\xc4\xdb\xc4\xdc\xc4\xdd\xc4\xde\xc4\xdf\x4c\x88\xc4\xe0\xc4\xe1\x66\xa8\x66\xa9\x66\xaa\xc4\xe2\x66\xab\xc4\xe3\xc4\xe4\x53\xad\x66\xac\x66\xad\xc4\xe5\xc4\xe6\xc4\xe7\x4c\x69\x55\xb2\xc4\xe8\xc4\xe9\xc4\xea\xc4\xeb\xc4\xec\xc4\xed\xc4\xee\x61\xb7\x6c\x6f\xc4\xef\xc4\xf0\xc4\xf1\xc4\xf2\xc4\xf3\xc4\xf4\xc4\xf5\xc4\xf6\xc4\xf7\xc4\xf8\xc4\xf9\xc4\xfa\xc4\xfb\xc4\xfc\xc4\xfd\xc5\x41\xc5\x42\xc5\x43\xc5\x44\xc5\x45\xc5\x46\xc5\x47\xc5\x48", /* 9900 */ "\xc5\x49\xc5\x4a\xc5\x4b\xc5\x4c\xc5\x4d\xc5\x4e\xc5\x4f\xc5\x50\xc5\x51\xc5\x52\xc5\x53\xc5\x54\xc5\x55\x6c\x70\xc5\x56\xc5\x57\x49\xcc\xc5\x58\xc5\x59\xc5\x5a\xc5\x5b\xc5\x5c\xc5\x5d\xc5\x5e\xc5\x5f\xc5\x60\xc5\x61\xc5\x62\xc5\x63\xc5\x64\xc5\x65\xc5\x66\xc5\x67\xc5\x68\xc5\x69\xc5\x6a\xc5\x6b\xc5\x6c\xc5\x6d\xc5\x6e\xc5\x6f\xc5\x70\xc5\x71\xc5\x72\xc5\x73\xc5\x74\x6c\x71\xc5\x75\xc5\x76\xc5\x77\xc5\x78\xc5\x79\xc5\x7a\xc5\x7b\xc5\x7c\xc5\x7d\xc5\x7e\xc5\x7f\xc5\x81\xc5\x82\xc5\x83\xc5\x84\xc5\x85\xc5\x86\xc5\x87\xc5\x88\xc5\x89\xc5\x8a\xc5\x8b\xc5\x8c\xc5\x8d\xc5\x8e\xc5\x8f\xc5\x90\xc5\x91\xc5\x92\xc5\x93\xc5\x94\xc5\x95\xc5\x96\xc5\x97\xc5\x98\xc5\x99\xc5\x9a\x6c\x73\x6c\x72\xc5\x9b\xc5\x9c\xc5\x9d\xc5\x9e\xc5\x9f\xc5\xa0\xc5\xa1\xc5\xa2\xc5\xa3\xc5\xa4\xc5\xa5\xc5\xa6\xc5\xa7\x61\xba\xc5\xa8\x4e\xa1\xc5\xa9\x61\xbb\x61\xbc\x61\xbd\x61\xbe\x61\xbf\x61\xc0\x4c\x59\x59\xfa\x4f\x44\x55\xcd\x49\x45\x56\x67\xc5\xaa\x61\xc1\x4b\xfb\x54\xc3\x61\xc2\xc5\xab\xc5\xac\x4f\x68\xc5\xad\x49\x9e\x61\xc3\xc5\xae\x4b\xf5", /* 9980 */ "\x61\xc4\x52\xd8\xc5\xaf\xc5\xb0\x61\xc5\x58\x7a\x4d\x7d\x61\xc6\x50\xa0\xc5\xb1\x61\xc7\x49\xf5\xc5\xb2\x61\xc8\xc5\xb3\x51\x94\x61\xc9\x61\xca\x51\xf7\x61\xcb\x61\xcc\x61\xcd\x55\xd6\x5c\xb7\x5d\x86\x58\x84\xc5\xb4\xc5\xb5\xc5\xb6\xc5\xb7\xc5\xb8\xc5\xb9\xc5\xba\xc5\xbb\xc5\xbc\xc5\xbd\xc5\xbe\x68\xa4\xc5\xbf\xc5\xc0\x5e\xaf\xc5\xc1\xc5\xc2\xc5\xc3\xc5\xc4\xc5\xc5\xc5\xc6\xc5\xc7\xc5\xc8\xc5\xc9\xc5\xca\xc5\xcb\xc5\xcc\xc5\xcd\xc5\xce\xc5\xcf\xc5\xd0\xc5\xd1\xc5\xd2\xc5\xd3\xc5\xd4\xc5\xd5\xc5\xd6\xc5\xd7\xc5\xd8\xc5\xd9\xc5\xda\xc5\xdb\xc5\xdc\xc5\xdd\xc5\xde\xc5\xdf\xc5\xe0\xc5\xe1\xc5\xe2\xc5\xe3\xc5\xe4\xc5\xe5\xc5\xe6\xc5\xe7\xc5\xe8\xc5\xe9\xc5\xea\xc5\xeb\xc5\xec\xc5\xed\xc5\xee\xc5\xef\xc5\xf0\xc5\xf1\xc5\xf2\xc5\xf3\xc5\xf4\xc5\xf5\xc5\xf6\xc5\xf7\xc5\xf8\xc5\xf9\xc5\xfa\xc5\xfb\xc5\xfc\xc5\xfd\xc6\x41\xc6\x42\xc6\x43\xc6\x44\xc6\x45\xc6\x46\xc6\x47\xc6\x48\xc6\x49\xc6\x4a\xc6\x4b\xc6\x4c\xc6\x4d\xc6\x4e\xc6\x4f\xc6\x50\xc6\x51\xc6\x52\xc6\x53\xc6\x54\xc6\x55\xc6\x56\xc6\x57\xc6\x58\xc6\x59\xc6\x5a", /* 9a00 */ "\xc6\x5b\xc6\x5c\xc6\x5d\xc6\x5e\xc6\x5f\xc6\x60\xc6\x61\xc6\x62\xc6\x63\xc6\x64\xc6\x65\xc6\x66\xc6\x67\xc6\x68\xc6\x69\xc6\x6a\xc6\x6b\xc6\x6c\xc6\x6d\xc6\x6e\xc6\x6f\xc6\x70\xc6\x71\xc6\x72\xc6\x73\xc6\x74\xc6\x75\xc6\x76\xc6\x77\xc6\x78\xc6\x79\xc6\x7a\xc6\x7b\xc6\x7c\xc6\x7d\xc6\x7e\xc6\x7f\xc6\x81\xc6\x82\xc6\x83\xc6\x84\xc6\x85\xc6\x86\xc6\x87\xc6\x88\xc6\x89\xc6\x8a\xc6\x8b\xc6\x8c\xc6\x8d\xc6\x8e\xc6\x8f\xc6\x90\xc6\x91\xc6\x92\xc6\x93\xc6\x94\xc6\x95\xc6\x96\xc6\x97\xc6\x98\xc6\x99\xc6\x9a\xc6\x9b\xc6\x9c\xc6\x9d\xc6\x9e\xc6\x9f\xc6\xa0\xc6\xa1\xc6\xa2\xc6\xa3\xc6\xa4\xc6\xa5\xc6\xa6\xc6\xa7\xc6\xa8\xc6\xa9\xc6\xaa\xc6\xab\xc6\xac\xc6\xad\xc6\xae\xc6\xaf\xc6\xb0\xc6\xb1\xc6\xb2\xc6\xb3\xc6\xb4\xc6\xb5\xc6\xb6\xc6\xb7\xc6\xb8\xc6\xb9\xc6\xba\xc6\xbb\xc6\xbc\xc6\xbd\xc6\xbe\xc6\xbf\xc6\xc0\xc6\xc1\xc6\xc2\xc6\xc3\xc6\xc4\xc6\xc5\xc6\xc6\xc6\xc7\x51\xec\x5a\xa5\x57\x74\x59\x51\x4a\x7b\x54\x9e\xc6\xc8\x49\xb4\x51\xbe\x63\xdf\x55\xba\x63\xe0\x63\xe1\x4f\xd3\x63\xe2\x5c\x44\x57\x75\x63\xe4\x4e\xdc\x63\xe3", /* 9a80 */ "\x63\xe5\x63\xe6\x51\xed\xc6\xc9\x4f\x5e\x63\xe7\x51\xe5\x4d\xa6\x63\xe8\xc6\xca\x63\xe9\x4a\x72\x59\x8a\xc6\xcb\xc6\xcc\x50\x45\x63\xea\x53\xee\x63\xeb\x63\xec\xc6\xcd\xc6\xce\x63\xed\x53\xac\x63\xee\xc6\xcf\x55\x47\x63\xef\x63\xf0\x63\xf1\x63\x59\x63\xf2\x63\xf3\x51\xe1\x63\xf4\x63\xf5\x5b\xe7\x63\xf6\xc6\xd0\x63\xf7\x4d\x67\xc6\xd1\xc6\xd2\xc6\xd3\xc6\xd4\xc6\xd5\xc6\xd6\xc6\xd7\x6c\x5b\x6c\x5a\xc6\xd8\xc6\xd9\xc6\xda\xc6\xdb\x6c\x5e\x6c\x5c\x4d\xa0\xc6\xdc\x6c\x5f\xc6\xdd\x6c\x60\xc6\xde\xc6\xdf\xc6\xe0\x6c\x62\x6c\x61\x6c\x64\xc6\xe1\xc6\xe2\x6c\x63\xc6\xe3\xc6\xe4\xc6\xe5\xc6\xe6\xc6\xe7\x6c\x65\x6c\x66\xc6\xe8\xc6\xe9\xc6\xea\xc6\xeb\x6c\x67\xc6\xec\x56\x89\xc6\xed\xc6\xee\xc6\xef\xc6\xf0\x4c\xde\xc6\xf1\xc6\xf2\xc6\xf3\xc6\xf4\xc6\xf5\xc6\xf6\x6c\x74\xc6\xf7\x6c\x75\xc6\xf8\xc6\xf9\xc6\xfa\xc6\xfb\x6c\x76\xc6\xfc\xc6\xfd\xc7\x41\xc7\x42\x6c\x78\xc7\x43\x6c\x7a\xc7\x44\x6c\x77\xc7\x45\xc7\x46\xc7\x47\xc7\x48\xc7\x49\xc7\x4a\xc7\x4b\xc7\x4c\xc7\x4d\x6c\x7b\xc7\x4e\x6c\x79\xc7\x4f\xc7\x50\xc7\x51\xc7\x52", /* 9b00 */ "\xc7\x53\xc7\x54\xc7\x55\x5c\x77\xc7\x56\xc7\x57\xc7\x58\xc7\x59\x6c\x7c\xc7\x5a\xc7\x5b\xc7\x5c\xc7\x5d\xc7\x5e\xc7\x5f\x6c\x7d\xc7\x60\xc7\x61\xc7\x62\x6c\x7e\xc7\x63\xc7\x64\xc7\x65\xc7\x66\xc7\x67\xc7\x68\xc7\x69\xc7\x6a\xc7\x6b\xc7\x6c\xc7\x6d\x6c\x7f\xc7\x6e\xc7\x6f\xc7\x70\x6c\x81\xc7\x71\xc7\x72\xc7\x73\xc7\x74\xc7\x75\xc7\x76\xc7\x77\xc7\x78\xc7\x79\xc7\x7a\xc7\x7b\x5e\x6b\xc7\x7c\xc7\x7d\x5c\xa9\xc7\x7e\xc7\x7f\xc7\x81\xc7\x82\xc7\x83\xc7\x84\xc7\x85\xc7\x86\x63\x98\x4d\x8e\xc7\x87\xc7\x88\xc7\x89\xc7\x8a\x50\x9e\x4e\x8b\x6c\x69\x53\xc6\x6c\x68\xc7\x8b\x6c\x6a\x6c\x6c\x6c\x6b\xc7\x8c\xc7\x8d\xc7\x8e\x6c\x6d\xc7\x8f\x57\xb9\xc7\x90\x6c\x6e\xc7\x91\xc7\x92\x52\xa6\xc7\x93\xc7\x94\xc7\x95\xc7\x96\xc7\x97\xc7\x98\xc7\x99\xc7\x9a\xc7\x9b\xc7\x9c\xc7\x9d\xc7\x9e\xc7\x9f\xc7\xa0\xc7\xa1\xc7\xa2\xc7\xa3\xc7\xa4\xc7\xa5\xc7\xa6\xc7\xa7\xc7\xa8\xc7\xa9\xc7\xaa\xc7\xab\xc7\xac\xc7\xad\xc7\xae\xc7\xaf\xc7\xb0\xc7\xb1\xc7\xb2\xc7\xb3\xc7\xb4\xc7\xb5\xc7\xb6\xc7\xb7\xc7\xb8\xc7\xb9\xc7\xba\xc7\xbb\xc7\xbc\xc7\xbd", /* 9b80 */ "\xc7\xbe\xc7\xbf\xc7\xc0\xc7\xc1\xc7\xc2\xc7\xc3\xc7\xc4\xc7\xc5\xc7\xc6\xc7\xc7\xc7\xc8\xc7\xc9\xc7\xca\xc7\xcb\xc7\xcc\xc7\xcd\xc7\xce\xc7\xcf\xc7\xd0\xc7\xd1\xc7\xd2\xc7\xd3\xc7\xd4\xc7\xd5\xc7\xd6\xc7\xd7\xc7\xd8\xc7\xd9\xc7\xda\xc7\xdb\xc7\xdc\xc7\xdd\xc7\xde\xc7\xdf\xc7\xe0\xc7\xe1\xc7\xe2\xc7\xe3\xc7\xe4\xc7\xe5\xc7\xe6\xc7\xe7\xc7\xe8\xc7\xe9\xc7\xea\xc7\xeb\xc7\xec\xc7\xed\xc7\xee\xc7\xef\xc7\xf0\xc7\xf1\xc7\xf2\xc7\xf3\xc7\xf4\xc7\xf5\xc7\xf6\xc7\xf7\xc7\xf8\xc7\xf9\xc7\xfa\xc7\xfb\xc7\xfc\xc7\xfd\xc8\x41\xc8\x42\xc8\x43\xc8\x44\xc8\x45\xc8\x46\xc8\x47\xc8\x48\xc8\x49\xc8\x4a\xc8\x4b\xc8\x4c\xc8\x4d\xc8\x4e\xc8\x4f\xc8\x50\xc8\x51\xc8\x52\xc8\x53\xc8\x54\xc8\x55\xc8\x56\xc8\x57\xc8\x58\xc8\x59\xc8\x5a\xc8\x5b\xc8\x5c\xc8\x5d\xc8\x5e\xc8\x5f\xc8\x60\xc8\x61\xc8\x62\xc8\x63\xc8\x64\xc8\x65\xc8\x66\xc8\x67\xc8\x68\xc8\x69\xc8\x6a\xc8\x6b\xc8\x6c\xc8\x6d\xc8\x6e\xc8\x6f\xc8\x70\xc8\x71\xc8\x72\xc8\x73\xc8\x74\xc8\x75\xc8\x76\xc8\x77\xc8\x78\xc8\x79\xc8\x7a\xc8\x7b\xc8\x7c\xc8\x7d\xc8\x7e\xc8\x7f\xc8\x81", /* 9c00 */ "\xc8\x82\xc8\x83\xc8\x84\xc8\x85\xc8\x86\xc8\x87\xc8\x88\xc8\x89\xc8\x8a\xc8\x8b\xc8\x8c\xc8\x8d\xc8\x8e\xc8\x8f\xc8\x90\xc8\x91\xc8\x92\xc8\x93\xc8\x94\xc8\x95\xc8\x96\xc8\x97\xc8\x98\xc8\x99\xc8\x9a\xc8\x9b\xc8\x9c\xc8\x9d\xc8\x9e\xc8\x9f\xc8\xa0\xc8\xa1\xc8\xa2\xc8\xa3\xc8\xa4\xc8\xa5\xc8\xa6\xc8\xa7\xc8\xa8\xc8\xa9\xc8\xaa\xc8\xab\xc8\xac\xc8\xad\xc8\xae\xc8\xaf\xc8\xb0\xc8\xb1\xc8\xb2\xc8\xb3\xc8\xb4\xc8\xb5\xc8\xb6\xc8\xb7\xc8\xb8\xc8\xb9\xc8\xba\xc8\xbb\xc8\xbc\xc8\xbd\xc8\xbe\xc8\xbf\xc8\xc0\xc8\xc1\xc8\xc2\xc8\xc3\xc8\xc4\xc8\xc5\xc8\xc6\xc8\xc7\xc8\xc8\xc8\xc9\xc8\xca\xc8\xcb\xc8\xcc\xc8\xcd\xc8\xce\xc8\xcf\xc8\xd0\xc8\xd1\xc8\xd2\xc8\xd3\xc8\xd4\xc8\xd5\xc8\xd6\xc8\xd7\xc8\xd8\xc8\xd9\xc8\xda\xc8\xdb\xc8\xdc\xc8\xdd\xc8\xde\xc8\xdf\xc8\xe0\xc8\xe1\xc8\xe2\xc8\xe3\xc8\xe4\xc8\xe5\xc8\xe6\xc8\xe7\xc8\xe8\xc8\xe9\xc8\xea\xc8\xeb\xc8\xec\xc8\xed\xc8\xee\xc8\xef\xc8\xf0\xc8\xf1\xc8\xf2\xc8\xf3\xc8\xf4\xc8\xf5\xc8\xf6\xc8\xf7\xc8\xf8\xc8\xf9\xc8\xfa\xc8\xfb\xc8\xfc\xc8\xfd\x5a\x84\xc9\x41\xc9\x42\x6b\xce", /* 9c80 */ "\xc9\x43\x51\xb2\x6b\xcf\xc9\x44\xc9\x45\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\xc9\x46\xc9\x47\x6b\xd5\xc9\x48\x49\x4b\x6b\xd6\xc9\x49\x6b\xd7\x6b\xd8\x6b\xd9\xc9\x4a\x6b\xda\x6b\xdb\xc9\x4b\xc9\x4c\xc9\x4d\xc9\x4e\x6b\xdc\x6b\xdd\x58\x6a\xc9\x4f\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x50\xef\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\xc9\x50\x6b\xe9\xc9\x51\x6b\xea\x6b\xeb\xc9\x52\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x4f\xa7\xc9\x53\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\xc9\x54\xc9\x55\xc9\x56\xc9\x57\xc9\x58\x54\xf9\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\xc9\x59\xc9\x5a\x6b\xfc\x6b\xfd\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\xc9\x5b\xc9\x5c\x6c\x46\x6c\x47\x6c\x48\x49\x8f\x6c\x49\x6c\x4a\x6c\x4b\xc9\x5d\xc9\x5e\x6c\x4c\x6c\x4d\x51\x7b\x6c\x4e\xc9\x5f\xc9\x60\x6c\x4f\xc9\x61\xc9\x62\xc9\x63\xc9\x64\xc9\x65\xc9\x66\xc9\x67\xc9\x68\xc9\x69\xc9\x6a\xc9\x6b\xc9\x6c\xc9\x6d\xc9\x6e\xc9\x6f\xc9\x70\xc9\x71\xc9\x72\xc9\x73\xc9\x74\xc9\x75\xc9\x76\xc9\x77\xc9\x78\xc9\x79\xc9\x7a\xc9\x7b\xc9\x7c\xc9\x7d", /* 9d00 */ "\xc9\x7e\xc9\x7f\xc9\x81\xc9\x82\xc9\x83\xc9\x84\xc9\x85\xc9\x86\xc9\x87\xc9\x88\xc9\x89\xc9\x8a\xc9\x8b\xc9\x8c\xc9\x8d\xc9\x8e\xc9\x8f\xc9\x90\xc9\x91\xc9\x92\xc9\x93\xc9\x94\xc9\x95\xc9\x96\xc9\x97\xc9\x98\xc9\x99\xc9\x9a\xc9\x9b\xc9\x9c\xc9\x9d\xc9\x9e\xc9\x9f\xc9\xa0\xc9\xa1\xc9\xa2\xc9\xa3\xc9\xa4\xc9\xa5\xc9\xa6\xc9\xa7\xc9\xa8\xc9\xa9\xc9\xaa\xc9\xab\xc9\xac\xc9\xad\xc9\xae\xc9\xaf\xc9\xb0\xc9\xb1\xc9\xb2\xc9\xb3\xc9\xb4\xc9\xb5\xc9\xb6\xc9\xb7\xc9\xb8\xc9\xb9\xc9\xba\xc9\xbb\xc9\xbc\xc9\xbd\xc9\xbe\xc9\xbf\xc9\xc0\xc9\xc1\xc9\xc2\xc9\xc3\xc9\xc4\xc9\xc5\xc9\xc6\xc9\xc7\xc9\xc8\xc9\xc9\xc9\xca\xc9\xcb\xc9\xcc\xc9\xcd\xc9\xce\xc9\xcf\xc9\xd0\xc9\xd1\xc9\xd2\xc9\xd3\xc9\xd4\xc9\xd5\xc9\xd6\xc9\xd7\xc9\xd8\xc9\xd9\xc9\xda\xc9\xdb\xc9\xdc\xc9\xdd\xc9\xde\xc9\xdf\xc9\xe0\xc9\xe1\xc9\xe2\xc9\xe3\xc9\xe4\xc9\xe5\xc9\xe6\xc9\xe7\xc9\xe8\xc9\xe9\xc9\xea\xc9\xeb\xc9\xec\xc9\xed\xc9\xee\xc9\xef\xc9\xf0\xc9\xf1\xc9\xf2\xc9\xf3\xc9\xf4\xc9\xf5\xc9\xf6\xc9\xf7\xc9\xf8\xc9\xf9\xc9\xfa\xc9\xfb\xc9\xfc\xc9\xfd\xca\x41", /* 9d80 */ "\xca\x42\xca\x43\xca\x44\xca\x45\xca\x46\xca\x47\xca\x48\xca\x49\xca\x4a\xca\x4b\xca\x4c\xca\x4d\xca\x4e\xca\x4f\xca\x50\xca\x51\xca\x52\xca\x53\xca\x54\xca\x55\xca\x56\xca\x57\xca\x58\xca\x59\xca\x5a\xca\x5b\xca\x5c\xca\x5d\xca\x5e\xca\x5f\xca\x60\xca\x61\xca\x62\xca\x63\xca\x64\xca\x65\xca\x66\xca\x67\xca\x68\xca\x69\xca\x6a\xca\x6b\xca\x6c\xca\x6d\xca\x6e\xca\x6f\xca\x70\xca\x71\xca\x72\xca\x73\xca\x74\xca\x75\xca\x76\xca\x77\xca\x78\xca\x79\xca\x7a\xca\x7b\xca\x7c\xca\x7d\xca\x7e\xca\x7f\xca\x81\xca\x82\xca\x83\xca\x84\xca\x85\xca\x86\xca\x87\xca\x88\xca\x89\xca\x8a\xca\x8b\xca\x8c\xca\x8d\xca\x8e\xca\x8f\xca\x90\xca\x91\xca\x92\xca\x93\xca\x94\xca\x95\xca\x96\xca\x97\xca\x98\xca\x99\xca\x9a\xca\x9b\xca\x9c\xca\x9d\xca\x9e\xca\x9f\xca\xa0\xca\xa1\xca\xa2\xca\xa3\xca\xa4\xca\xa5\xca\xa6\xca\xa7\xca\xa8\xca\xa9\xca\xaa\xca\xab\xca\xac\xca\xad\xca\xae\xca\xaf\xca\xb0\xca\xb1\xca\xb2\xca\xb3\xca\xb4\xca\xb5\xca\xb6\xca\xb7\xca\xb8\xca\xb9\xca\xba\xca\xbb\xca\xbc\xca\xbd\xca\xbe\xca\xbf\xca\xc0\xca\xc1\xca\xc2", /* 9e00 */ "\xca\xc3\xca\xc4\xca\xc5\xca\xc6\xca\xc7\xca\xc8\xca\xc9\xca\xca\xca\xcb\xca\xcc\xca\xcd\xca\xce\xca\xcf\xca\xd0\xca\xd1\xca\xd2\xca\xd3\xca\xd4\xca\xd5\xca\xd6\xca\xd7\xca\xd8\xca\xd9\xca\xda\xca\xdb\xca\xdc\xca\xdd\xca\xde\xca\xdf\xca\xe0\xca\xe1\x52\xf0\x68\xae\x4e\xa5\x68\xaf\x52\x9a\xca\xe2\x53\x58\x59\x5b\xca\xe3\x68\xb0\x68\xb1\x68\xb2\x68\xb3\x68\xb4\x59\x5c\xca\xe4\x59\x8d\xca\xe5\x68\xb6\x68\xb5\x5a\xa6\xca\xe6\x57\x72\x68\xb7\x68\xb9\x68\xb8\x68\xba\x68\xbb\xca\xe7\xca\xe8\x4c\xea\x68\xbc\x4d\xe7\xca\xe9\x68\xbd\x68\xbe\x4f\xe8\x68\xbf\x4b\xeb\x68\xc0\x68\xc1\x68\xc2\x68\xc3\x54\xb4\x68\xc4\x68\xc5\xca\xea\x68\xc6\x53\x95\xca\xeb\x68\xc7\xca\xec\xca\xed\xca\xee\x68\xc8\xca\xef\x68\xc9\x6c\x5d\xca\xf0\x68\xca\x68\xcb\x68\xcc\xca\xf1\x68\xcd\xca\xf2\xca\xf3\xca\xf4\xca\xf5\x68\xce\x4d\xd6\xca\xf6\x68\xcf\x68\xd0\x68\xd1\x68\xd2\x68\xd3\x68\xd4\x68\xd5\x68\xd7\xca\xf7\xca\xf8\x5a\x45\x68\xd6\xca\xf9\x68\xd8\xca\xfa\xca\xfb\xca\xfc\xca\xfd\xcb\x41\xcb\x42\xcb\x43\xcb\x44\xcb\x45\xcb\x46\x6b\x5a\x51\xb8", /* 9e80 */ "\xcb\x47\xcb\x48\x6c\x85\xcb\x49\xcb\x4a\xcb\x4b\xcb\x4c\x6c\x86\x6c\x87\xcb\x4d\xcb\x4e\x6c\x88\xcb\x4f\xcb\x50\xcb\x51\xcb\x52\xcb\x53\xcb\x54\x6c\x89\x51\xb3\xcb\x55\xcb\x56\xcb\x57\xcb\x58\xcb\x59\xcb\x5a\xcb\x5b\xcb\x5c\xcb\x5d\x6c\x8b\xcb\x5e\x6c\x8c\xcb\x5f\xcb\x60\xcb\x61\xcb\x62\xcb\x63\xcb\x64\x51\xf2\xcb\x65\xcb\x66\xcb\x67\xcb\x68\xcb\x69\xcb\x6a\xcb\x6b\xcb\x6c\xcb\x6d\xcb\x6e\xcb\x6f\xcb\x70\xcb\x71\x6a\xef\xcb\x72\xcb\x73\xcb\x74\x6a\xee\xcb\x75\xcb\x76\x51\xe8\xcb\x77\x6c\x82\x6c\x83\xcb\x78\xcb\x79\xcb\x7a\xcb\x7b\xcb\x7c\x4e\x66\xcb\x7d\xcb\x7e\xcb\x7f\xcb\x81\x5d\x85\xcb\x82\xcb\x83\xcb\x84\x55\xf1\x50\xe7\x68\xa3\xcb\x85\x4d\xd9\xcb\x86\xcb\x87\x54\x4d\xcb\x88\xcb\x89\xcb\x8a\x52\xab\xcb\x8b\xcb\x8c\x6c\x8d\x6c\x8e\x6c\x8f\xcb\x8d\x6c\x91\x6c\x90\xcb\x8e\x6c\x92\xcb\x8f\xcb\x90\x6c\x95\xcb\x91\x6c\x94\xcb\x92\x6c\x93\x6c\x96\xcb\x93\xcb\x94\xcb\x95\xcb\x96\x6c\x97\xcb\x97\xcb\x98\xcb\x99\xcb\x9a\xcb\x9b\xcb\x9c\xcb\x9d\xcb\x9e\xcb\x9f\x67\x8a\xcb\xa0\x67\x8b\x67\x8c\xcb\xa1\x6b\xbb\xcb\xa2", /* 9f00 */ "\xcb\xa3\xcb\xa4\xcb\xa5\xcb\xa6\xcb\xa7\xcb\xa8\xcb\xa9\xcb\xaa\xcb\xab\xcb\xac\xcb\xad\x6b\xbc\xcb\xae\x6b\xbd\x4b\xa5\xcb\xaf\x5c\xbd\xcb\xb0\xcb\xb1\x4d\x64\xcb\xb2\xcb\xb3\xcb\xb4\x5c\xba\xcb\xb5\x5e\xb0\xcb\xb6\xcb\xb7\xcb\xb8\xcb\xb9\xcb\xba\xcb\xbb\x55\xf2\xcb\xbc\x6c\x98\xcb\xbd\xcb\xbe\xcb\xbf\xcb\xc0\xcb\xc1\xcb\xc2\xcb\xc3\xcb\xc4\xcb\xc5\x6c\x99\xcb\xc6\xcb\xc7\x6c\x9a\xcb\xc8\xcb\xc9\xcb\xca\xcb\xcb\xcb\xcc\xcb\xcd\xcb\xce\x6c\x9c\xcb\xcf\x6c\x9b\xcb\xd0\x49\x67\xcb\xd1\x6c\x9d\x6c\x9e\xcb\xd2\xcb\xd3\xcb\xd4\xcb\xd5\xcb\xd6\x6c\x9f\xcb\xd7\xcb\xd8\xcb\xd9\xcb\xda\xcb\xdb\xcb\xdc\xcb\xdd\xcb\xde\xcb\xdf\xcb\xe0\xcb\xe1\x53\xea\x66\xb3\xcb\xe2\xcb\xe3\xcb\xe4\xcb\xe5\xcb\xe6\xcb\xe7\xcb\xe8\xcb\xe9\xcb\xea\xcb\xeb\xcb\xec\xcb\xed\xcb\xee\xcb\xef\xcb\xf0\xcb\xf1\xcb\xf2\xcb\xf3\xcb\xf4\xcb\xf5\xcb\xf6\xcb\xf7\xcb\xf8\xcb\xf9\xcb\xfa\xcb\xfb\xcb\xfc\xcb\xfd\xcc\x41\xcc\x42\xcc\x43\xcc\x44\xcc\x45\xcc\x46\xcc\x47\xcc\x48\xcc\x49\xcc\x4a\xcc\x4b\xcc\x4c\xcc\x4d\xcc\x4e\xcc\x4f\xcc\x50\xcc\x51\x4a\x7d", /* 9f80 */ "\x6b\xb2\xcc\x52\xcc\x53\x6b\xb3\x51\x85\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x54\xa2\x6b\xba\xcc\x54\xcc\x55\xcc\x56\xcc\x57\xcc\x58\xcc\x59\xcc\x5a\xcc\x5b\xcc\x5c\xcc\x5d\xcc\x5e\xcc\x5f\x51\x9b\x4d\x48\x67\x89\xcc\x60\xcc\x61\xcc\x62\x4d\x8b\x5d\x7f\xcc\x63\xcc\x64\xcc\x65\xcc\x66\xcc\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ "\x6f\x75\x6f\x76\x6f\x77\x6f\x78\x6f\x79\x6f\x7a\x6f\x7b\x6f\x7c\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x84\x6f\x85\x6f\x86\x6f\x87\x6f\x88\x6f\x89\x6f\x8a\x6f\x8b\x6f\x8c\x6f\x8d\x6f\x8e\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9c\x6f\x9d\x6f\x9e\x6f\x9f\x6f\xa0\x6f\xa1\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa7\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb3\x6f\xb4\x6f\xb5\x6f\xb6\x6f\xb7\x6f\xb8\x6f\xb9\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc0\x6f\xc1\x6f\xc2\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xc9\x6f\xca\x6f\xcb\x6f\xcc\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd1\x6f\xd2\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xde\x6f\xdf\x6f\xe0\x6f\xe1\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea\x6f\xeb\x6f\xec\x6f\xed\x6f\xee\x6f\xef\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4", /* a080 */ "\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4c\x70\x4d\x70\x4e\x70\x4f\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5e\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6b\x70\x6c\x70\x6d\x70\x6e\x70\x6f\x70\x70\x70\x71\x70\x72\x70\x73\x70\x74\x70\x75\x70\x76\x70\x77\x70\x78\x70\x79\x70\x7a\x70\x7b\x70\x7c\x70\x7d\x70\x7e\x70\x7f\x70\x80\x70\x81\x70\x82\x70\x83\x70\x84\x70\x85\x70\x86\x70\x87\x70\x88\x70\x89\x70\x8a\x70\x8b\x70\x8c\x70\x8d\x70\x8e\x70\x8f\x70\x90\x70\x91\x70\x92\x70\x93\x70\x94\x70\x95\x70\x96\x70\x97\x70\x98\x70\x99\x70\x9a\x70\x9b\x70\x9c\x70\x9d\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xab\x70\xac\x70\xad\x70\xae\x70\xaf\x70\xb0\x70\xb1\x70\xb2\x70\xb3\x70\xb4\x70\xb5\x70\xb6", /* a100 */ "\x70\xb7\x70\xb8\x70\xb9\x70\xba\x70\xbb\x70\xbc\x70\xbd\x70\xbe\x70\xbf\x70\xc0\x70\xc1\x70\xc2\x70\xc3\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc8\x70\xc9\x70\xca\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xd8\x70\xd9\x70\xda\x70\xdb\x70\xdc\x70\xdd\x70\xde\x70\xdf\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe4\x70\xe5\x70\xe6\x70\xe7\x70\xe8\x70\xe9\x70\xea\x70\xeb\x70\xec\x70\xed\x70\xee\x70\xef\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf7\x70\xf8\x70\xf9\x70\xfa\x70\xfb\x70\xfc\x70\xfd\x70\xfe\x71\x41\x71\x42\x71\x43\x71\x44\x71\x45\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4a\x71\x4b\x71\x4c\x71\x4d\x71\x4e\x71\x4f\x71\x50\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5c\x71\x5d\x71\x5e\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x64\x71\x65\x71\x66\x71\x67\x71\x68\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6e\x71\x6f\x71\x70\x71\x71\x71\x72\x71\x73\x71\x74\x71\x75\x71\x76\x71\x77\x71\x78", /* a180 */ "\x71\x79\x71\x7a\x71\x7b\x71\x7c\x71\x7d\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x84\x71\x85\x71\x86\x71\x87\x71\x88\x71\x89\x71\x8a\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x8f\x71\x90\x71\x91\x71\x92\x71\x93\x71\x94\x71\x95\x71\x96\x71\x97\x71\x98\x71\x99\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\x9f\x71\xa0\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa8\x71\xa9\x71\xaa\x71\xab\x71\xac\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb3\x71\xb4\x71\xb5\x71\xb6\x71\xb7\x71\xb8\x71\xb9\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc3\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xce\x71\xcf\x71\xd0\x71\xd1\x71\xd2\x71\xd3\x71\xd4\x71\xd5\x71\xd6\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe0\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe5\x71\xe6\x71\xe7\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xee\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8", /* a200 */ "\x71\xf9\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x47\x72\x48\x72\x49\x72\x4a\x72\x4b\x72\x4c\x72\x4d\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x52\x72\x53\x72\x54\x72\x55\x72\x56\x72\x57\x72\x58\x72\x59\x72\x5a\x72\x5b\x72\x5c\x72\x5d\x72\x5e\x72\x5f\x72\x60\x72\x61\x72\x62\x72\x63\x72\x64\x72\x65\x72\x66\x72\x67\x72\x68\x72\x69\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x6e\x72\x6f\x72\x70\x72\x71\x72\x72\x72\x73\x72\x74\x72\x75\x72\x76\x72\x77\x72\x78\x72\x79\x72\x7a\x72\x7b\x72\x7c\x72\x7d\x72\x7e\x72\x7f\x72\x80\x72\x81\x72\x82\x72\x83\x72\x84\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8a\x72\x8b\x72\x8c\x72\x8d\x72\x8e\x72\x8f\x72\x90\x72\x91\x72\x92\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\x9f\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xac\x72\xad\x72\xae\x72\xaf\x72\xb0\x72\xb1\x72\xb2\x72\xb3\x72\xb4\x72\xb5\x72\xb6\x72\xb7\x72\xb8\x72\xb9\x72\xba", /* a280 */ "\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc1\x72\xc2\x72\xc3\x72\xc4\x72\xc5\x72\xc6\x72\xc7\x72\xc8\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcd\x72\xce\x72\xcf\x72\xd0\x72\xd1\x72\xd2\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd7\x72\xd8\x72\xd9\x72\xda\x72\xdb\x72\xdc\x72\xdd\x72\xde\x72\xdf\x72\xe0\x72\xe1\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xe8\x72\xe9\x72\xea\x72\xeb\x72\xec\x72\xed\x72\xee\x72\xef\x72\xf0\x72\xf1\x72\xf2\x72\xf3\x72\xf4\x72\xf5\x72\xf6\x72\xf7\x72\xf8\x72\xf9\x72\xfa\x72\xfb\x72\xfc\x72\xfd\x72\xfe\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4d\x73\x4e\x73\x4f\x73\x50\x73\x51\x73\x52\x73\x53\x73\x54\x73\x55\x73\x56\x73\x57\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x60\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6c\x73\x6d\x73\x6e\x73\x6f\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c", /* a300 */ "\x73\x7d\x73\x7e\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x84\x73\x85\x73\x86\x73\x87\x73\x88\x73\x89\x73\x8a\x73\x8b\x73\x8c\x73\x8d\x73\x8e\x73\x8f\x73\x90\x73\x91\x73\x92\x73\x93\x73\x94\x73\x95\x73\x96\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9b\x73\x9c\x73\x9d\x73\x9e\x73\x9f\x73\xa0\x73\xa1\x73\xa2\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xa9\x73\xaa\x73\xab\x73\xac\x73\xad\x73\xae\x73\xaf\x73\xb0\x73\xb1\x73\xb2\x73\xb3\x73\xb4\x73\xb5\x73\xb6\x73\xb7\x73\xb8\x73\xb9\x73\xba\x73\xbb\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc0\x73\xc1\x73\xc2\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xc8\x73\xc9\x73\xca\x73\xcb\x73\xcc\x73\xcd\x73\xce\x73\xcf\x73\xd0\x73\xd1\x73\xd2\x73\xd3\x73\xd4\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xd9\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xde\x73\xdf\x73\xe0\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe5\x73\xe6\x73\xe7\x73\xe8\x73\xe9\x73\xea\x73\xeb\x73\xec\x73\xed\x73\xee\x73\xef\x73\xf0\x73\xf1\x73\xf2\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc", /* a380 */ "\x73\xfd\x73\xfe\x74\x41\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x55\x74\x56\x74\x57\x74\x58\x74\x59\x74\x5a\x74\x5b\x74\x5c\x74\x5d\x74\x5e\x74\x5f\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6d\x74\x6e\x74\x6f\x74\x70\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x76\x74\x77\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7e\x74\x7f\x74\x80\x74\x81\x74\x82\x74\x83\x74\x84\x74\x85\x74\x86\x74\x87\x74\x88\x74\x89\x74\x8a\x74\x8b\x74\x8c\x74\x8d\x74\x8e\x74\x8f\x74\x90\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96\x74\x97\x74\x98\x74\x99\x74\x9a\x74\x9b\x74\x9c\x74\x9d\x74\x9e\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xa7\x74\xa8\x74\xa9\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xba\x74\xbb\x74\xbc\x74\xbd\x74\xbe", /* a400 */ "\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd2\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdc\x74\xdd\x74\xde\x74\xdf\x74\xe0\x74\xe1\x74\xe2\x74\xe3\x74\xe4\x74\xe5\x74\xe6\x74\xe7\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xee\x74\xef\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf4\x74\xf5\x74\xf6\x74\xf7\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x41\x75\x42\x75\x43\x75\x44\x75\x45\x75\x46\x75\x47\x75\x48\x75\x49\x75\x4a\x75\x4b\x75\x4c\x75\x4d\x75\x4e\x75\x4f\x75\x50\x75\x51\x75\x52\x75\x53\x75\x54\x75\x55\x75\x56\x75\x57\x75\x58\x75\x59\x75\x5a\x75\x5b\x75\x5c\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x65\x75\x66\x75\x67\x75\x68\x75\x69\x75\x6a\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x72\x75\x73\x75\x74\x75\x75\x75\x76\x75\x77\x75\x78\x75\x79\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x7f\x75\x80", /* a480 */ "\x75\x81\x75\x82\x75\x83\x75\x84\x75\x85\x75\x86\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8b\x75\x8c\x75\x8d\x75\x8e\x75\x8f\x75\x90\x75\x91\x75\x92\x75\x93\x75\x94\x75\x95\x75\x96\x75\x97\x75\x98\x75\x99\x75\x9a\x75\x9b\x75\x9c\x75\x9d\x75\x9e\x75\x9f\x75\xa0\x75\xa1\x75\xa2\x75\xa3\x75\xa4\x75\xa5\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xab\x75\xac\x75\xad\x75\xae\x75\xaf\x75\xb0\x75\xb1\x75\xb2\x75\xb3\x75\xb4\x75\xb5\x75\xb6\x75\xb7\x75\xb8\x75\xb9\x75\xba\x75\xbb\x75\xbc\x75\xbd\x75\xbe\x75\xbf\x75\xc0\x75\xc1\x75\xc2\x75\xc3\x75\xc4\x75\xc5\x75\xc6\x75\xc7\x75\xc8\x75\xc9\x75\xca\x75\xcb\x75\xcc\x75\xcd\x75\xce\x75\xcf\x75\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1", /* e080 */ "\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85", /* e100 */ "\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48", /* e180 */ "\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9", /* e200 */ "\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d", /* e280 */ "\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50", /* e300 */ "\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1", /* e380 */ "\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95", /* e400 */ "\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58", /* e480 */ "\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9", /* e500 */ "\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d", /* e580 */ "\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60", /* e600 */ "\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1", /* e680 */ "\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5", /* e700 */ "\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x80\x41\x80\x42\x80\x43\x80\x44\x80\x45\x80\x46\x80\x47\x80\x48\x80\x49\x80\x4a\x80\x4b\x80\x4c\x80\x4d\x80\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x90\xfc\x91\xfc\x92\xfc\x93\xfc\x94\xfc\x95\xfc\x96\xfc\x97\xfc\x98\xfc\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x57\xce\x58\xce\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x67\x00\x00\x00\x00\x00\x00\x00\x00\xce\x6c\xce\x6d\x00\x00\x00\x00\x00\x00\x00\x00\xce\x72\xce\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x96\xce\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5b\x44\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x46\xce\x47\xce\x48\xce\x49\x00\x00\xce\x4a\x00\x00\xce\x4b\xce\x4c\x00\x00\x00\x00\x00\x00\xce\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x4e\xce\x4f\xce\x50\x00\x00\xce\x51\xce\x52\x00\x00\x00\x00\xce\x53\xce\x54\xce\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x47\xf8\x48\xf8\x49\xf8\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x6b\xf8\x6c\xf8\x6d\xf8\x6e\x00\x00\x00\x00", /* fb80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x7f\xf8\x80\xf8\x81\xf8\x82\xf8\x83\xf8\x84\xf8\x85\xf8\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x9b\xf8\x9c\xf8\x9d\xf8\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xc4\xf8\xc5\xf8\xc6\xf8\xc7\xf8\xc8\xf8\xc9\xf8\xca\xf8\xcb\xf8\xcc\xf8\xcd\xf8\xce\xf8\xcf\xf8\xd0\xf8\xd1\xf8\xd2\xf8\xd3\xf8\xd4\xf8\xd5\xf8\xd6\xf8\xd7\xf8\xd8\xf8\xd9\xf8\xda\xf8\xdb\xf8\xdc\xf8\xdd\xf8\xde\xf8\xdf\xf8\xe0\xf8\xe1\xf8\xe2\xf8\xe3\xf8\xe4\xf8\xe5\xf8\xe6\xf8\xe7\xf8\xe8\xf8\xe9\xf8\xea\xf8\xeb\xf8\xec\xf8\xed\xf8\xee\xf8\xef\xf8\xf0", /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa8\x47\x51\x00\x00\x47\x52\x47\x53\x47\x41\x47\x42\x47\x4f\x47\x50\x47\x43\x47\x44\x47\x4d\x47\x4e\x47\x47\x47\x48\x47\x45\x47\x46\x47\x49\x47\x4a\x47\x4b\x47\x4c\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa9\xcd\xaa\xcd\xab\xcd\xac\xcd\xad\xcd\xae\xcd\xaf\xcd\xb0\xcd\xb1\xcd\xb2\x00\x00\xcd\xb3\xcd\xb4\xcd\xb5\xcd\xb6\x00\x00\xcd\xb7\xcd\xb8\xcd\xb9\xcd\xba\xcd\xbb\xcd\xbc\xcd\xbd\xcd\xbe\xcd\xbf\xcd\xc0\xcd\xc1\xcd\xc2\xcd\xc3\xcd\xc4\x00\x00\xcd\xc5\xcd\xc6\xcd\xc7\xcd\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fe80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xd0\xfb\xd1\xfb\xd2\xfb\xd3\xfb\xd4\xfb\xd5\xfb\xd6\xfb\xd7\xfb\xd8\xfb\xd9\x00\x00\x00\x00\xfb\xdc\xfb\xdd\xfb\xde\xfb\xdf\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xe4\xfb\xe5\xfb\xe6\xfb\xe7\xfb\xe8\xfb\xe9\xfb\xea\xfb\xeb\xfb\xec\xfb\xed\xfb\xee\xfb\xef\xfb\xf0\xfb\xf1\x00\x00\x00\x00\xfb\xf4\xfb\xf5\xfb\xf6\xfb\xf7\xfb\xf8\xfb\xf9\xfb\xfa\xfb\xfb\xfb\xfc\xfb\xfd\xfb\xfe\xfc\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x52\xfc\x53\xfc\x54\xfc\x55\xfc\x56\xfc\x57\xfc\x58\xfc\x59\xfc\x5a\xfc\x5b\xfc\x5c\xfc\x5d\xfc\x5e\xfc\x5f\xfc\x60\xfc\x61\xfc\x62\xfc\x63\xfc\x64\xfc\x65\xfc\x66\xfc\x67\xfc\x68\xfc\x69\xfc\x6a\xfc\x6b\xfc\x6c\xfc\x6d\xfc\x6e\xfc\x6f\xfc\x70\xfc\x71\xfc\x72\xfc\x73\xfc\x74\xfc\x75\xfc\x76\xfc\x77\xfc\x78\xfc\x79\xfc\x7a\xfc\x7b\xfc\x7c\xfc\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x84\xfc\x85\x00\x00\x00\x00\x00\x00", /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-1388_P103-2001 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x21\x6a\x21\x6b\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\xf8\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x15\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x64\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x65\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x16\x30\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x36\x22\x27\x22\x28\x22\x11\x22\x0f\x22\x2a\x22\x29\x22\x08\x22\x37\x22\x1a\x22\xa5\x22\x25\x22\x20\x23\x12\x22\x99\x22\x2b\x22\x2e\x22\x61\x22\x4c\x22\x48\x22\x3d\x22\x1d\x00\x00\x22\x6e\x22\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x20\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x88\x24\x89\x24\x8a\x24\x8b\x24\x8c\x24\x8d\x24\x8e\x24\x8f\x24\x90\x24\x91\x24\x92\x24\x93\x24\x94\x24\x95\x24\x96\x24\x97\x24\x98\x24\x99\x24\x9a\x24\x9b\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x24\x7e\x24\x7f\x24\x80\x24\x81\x24\x82\x24\x83\x24\x84\x24\x85\x24\x86\x24\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x20\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x20\x32\x21\x32\x22\x32\x23\x32\x24\x32\x25\x32\x26\x32\x27\x32\x28\x32\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xe1\x01\xce\x00\xe0\x01\x13\x00\xe9\x01\x1b\x00\xe8\x01\x2b\x00\xed\x01\xd0\x00\xec\x01\x4d\x00\xf3\x01\xd2\x00\xf2\x01\x6b\x00\xfa\x01\xd4\x00\xf9\x01\xd6\x01\xd8\x01\xda\x01\xdc\x00\xfc\x00\xea\x02\x51\xe7\xc7\x01\x44\x01\x48\x01\xf9\x02\x61\x00\x00\x00\x00\x00\x00\x00\x00\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f", /* 4680 */ "\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x25\x01\x25\x02\x25\x03\x25\x04\x25\x05\x25\x06\x25\x07\x25\x08\x25\x09\x25\x0a\x25\x0b\x25\x0c\x25\x0d\x25\x0e\x25\x0f\x25\x10\x25\x11\x25\x12\x25\x13\x25\x14\x25\x15\x25\x16\x25\x17\x25\x18\x25\x19\x25\x1a\x25\x1b\x25\x1c\x25\x1d\x25\x1e\x25\x1f\x25\x20\x25\x21\x25\x22\x25\x23\x25\x24\x25\x25\x25\x26\x25\x27\x25\x28\x25\x29\x25\x2a\x25\x2b\x25\x2c\x25\x2d\x25\x2e\x25\x2f\x25\x30\x25\x31\x25\x32\x25\x33\x25\x34\x25\x35\x25\x36\x25\x37\x25\x38\x25\x39\x25\x3a\x25\x3b\x25\x3c\x25\x3d\x25\x3e\x25\x3f\x25\x40\x25\x41\x25\x42\x25\x43\x25\x44\x25\x45\x25\x46\x25\x47\x25\x48\x25\x49\x25\x4a\x25\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x35\xfe\x36\xfe\x39\xfe\x3a\xfe\x3f\xfe\x40\xfe\x3d\xfe\x3e\xfe\x41\xfe\x42\xfe\x43\xfe\x44\xfe\x3b\xfe\x3c\xfe\x37\xfe\x38\xfe\x31\xfe\x33\xfe\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x06\x01\x06\x02\x06\x03\x06\x04\x06\x05\x06\x06\x06\x07\x06\x08\x06\x09\x06\x0a\x06\x0b\x06\x0c\x06\x0d\x06\x0e\x06\x0f\x06\x10\x06\x11\x06\x12\x06\x13\x06\x14\x06\x15\x06\x16\x06\x17\x06\x18\x06\x19\x06\x1a\x06\x1b\x06\x1c\x06\x1d\x06\x1e\x06\x1f\x06\x20\x06\x21\x06\x22", /* 4780 */ "\x06\x23\x06\x24\x06\x25\x06\x26\x06\x27\x06\x28\x06\x29\x06\x2a\x06\x2b\x06\x2c\x06\x2d\x06\x2e\x06\x2f\x06\x30\x06\x31\x06\x32\x06\x33\x06\x34\x06\x35\x06\x36\x06\x37\x06\x38\x06\x39\x06\x3a\x06\x3b\x06\x3c\x06\x3d\x06\x3e\x06\x3f\x06\x40\x06\x41\x06\x42\x06\x43\x06\x44\x06\x45\x06\x46\x06\x47\x06\x48\x06\x49\x06\x4a\x06\x4b\x06\x4c\x06\x4d\x06\x4e\x06\x4f\x06\x50\x06\x51\x06\x52\x06\x53\x06\x54\x06\x55\x06\x56\x06\x57\x06\x58\x06\x59\x06\x5a\x06\x5b\x06\x5c\x06\x5d\x06\x5e\x06\x5f\x06\x60\x06\x61\x06\x62\x06\x63\x06\x64\x06\x65\x06\x66\x06\x67\x06\x68\x06\x69\x06\x6a\x06\x6b\x06\x6c\x06\x6d\x06\x6e\x06\x6f\x06\x70\x06\x71\x06\x72\x06\x73\x06\x74\x06\x75\x06\x76\x06\x77\x06\x78\x06\x79\x06\x7a\x06\x7b\x06\x7c\x06\x7d\x06\x7e\x06\x7f\x06\x80\x06\x81\x06\x82\x06\x83\x06\x84\x06\x85\x06\x86\x06\x87\x06\x88\x06\x89\x06\x8a\x06\x8b\x06\x8c\x06\x8d\x06\x8e\x06\x8f\x06\x90\x06\x91\x06\x92\x06\x93\x06\x94\x06\x95\x06\x96\x06\x97\x06\x98\x06\x99\x06\x9a\x06\x9b\x06\x9c\x06\x9d\x06\x9e\x06\x9f\x06\xa0\x06\xa1\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\xa2\x06\xa3\x06\xa4\x06\xa5\x06\xa6\x06\xa7\x06\xa8\x06\xa9\x06\xaa\x06\xab\x06\xac\x06\xad\x06\xae\x06\xaf\x06\xb0\x06\xb1\x06\xb2\x06\xb3\x06\xb4\x06\xb5\x06\xb6\x06\xb7\x06\xb8\x06\xb9\x06\xba\x06\xbb\x06\xbc\x06\xbd\x06\xbe\x06\xbf\x06\xc0\x06\xc1\x06\xc2\x06\xc3\x06\xc4\x06\xc5\x06\xc6\x06\xc7\x06\xc8\x06\xc9\x06\xca\x06\xcb\x06\xcc\x06\xcd\x06\xce\x06\xcf\x06\xd0\x06\xd1\x06\xd2\x06\xd3\x06\xd4\x06\xd5\x06\xd6\x06\xd7\x06\xd8\x06\xd9\x06\xda\x06\xdb\x06\xdc\x06\xdd\x06\xde\x06\xdf\x06\xe0", /* 4880 */ "\x06\xe1\x06\xe2\x06\xe3\x06\xe4\x06\xe5\x06\xe6\x06\xe7\x06\xe8\x06\xe9\x06\xea\x06\xeb\x06\xec\x06\xed\x06\xee\x06\xef\x06\xf0\x06\xf1\x06\xf2\x06\xf3\x06\xf4\x06\xf5\x06\xf6\x06\xf7\x06\xf8\x06\xf9\x06\xfa\x06\xfb\x06\xfc\x06\xfd\x06\xfe\x06\xff\x00\x00\x55\x4a\x96\x3f\x57\xc3\x63\x28\x54\xce\x55\x09\x54\xc0\x76\x91\x76\x4c\x85\x3c\x77\xee\x82\x7e\x78\x8d\x72\x31\x96\x98\x97\x8d\x6c\x28\x5b\x89\x4f\xfa\x63\x09\x66\x97\x5c\xb8\x80\xfa\x68\x48\x80\xae\x66\x02\x76\xce\x51\xf9\x65\x56\x71\xac\x7f\xf1\x88\x84\x50\xb2\x59\x65\x61\xca\x6f\xb3\x82\xad\x63\x4c\x62\x52\x53\xed\x54\x27\x7b\x06\x51\x6b\x75\xa4\x5d\xf4\x62\xd4\x8d\xcb\x97\x76\x62\x8a\x80\x19\x57\x5d\x97\x38\x7f\x62\x72\x38\x76\x7d\x67\xcf\x76\x7e\x64\x46\x4f\x70\x8d\x25\x62\xdc\x7a\x17\x65\x91\x73\xed\x64\x2c\x62\x73\x82\x2c\x98\x81\x67\x7f\x72\x48\x62\x6e\x62\xcc\x4f\x34\x74\xe3\x53\x4a\x52\x9e\x7e\xca\x90\xa6\x5e\x2e\x68\x86\x69\x9c\x81\x80\x7e\xd1\x68\xd2\x78\xc5\x86\x8c\x95\x51\x50\x8d\x8c\x24\x82\xde\x80\xde\x53\x05\x89\x12\x52\x65\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x84\x96\xf9\x4f\xdd\x58\x21\x99\x71\x5b\x9d\x62\xb1\x62\xa5\x66\xb4\x8c\x79\x9c\x8d\x72\x06\x67\x6f\x78\x91\x60\xb2\x53\x51\x53\x17\x8f\x88\x80\xcc\x8d\x1d\x94\xa1\x50\x0d\x72\xc8\x59\x07\x60\xeb\x71\x19\x88\xab\x59\x54\x82\xef\x67\x2c\x7b\x28\x5d\x29\x7e\xf7\x75\x2d\x6c\xf5\x8e\x66\x8f\xf8\x90\x3c\x9f\x3b\x6b\xd4\x91\x19\x7b\x14\x5f\x7c\x78\xa7\x84\xd6\x85\x3d\x6b\xd5\x6b\xd9\x6b\xd6\x5e\x01\x5e\x87\x75\xf9\x95\xed\x65\x5d\x5f\x0a\x5f\xc5\x8f\x9f\x58\xc1\x81\xc2\x90\x7f\x96\x5b\x97\xad\x8f\xb9", /* 4980 */ "\x00\x00\x7f\x16\x8d\x2c\x62\x41\x4f\xbf\x53\xd8\x53\x5e\x8f\xa8\x8f\xa9\x8f\xab\x90\x4d\x68\x07\x5f\x6a\x81\x98\x88\x68\x9c\xd6\x61\x8b\x52\x2b\x76\x2a\x5f\x6c\x65\x8c\x6f\xd2\x6e\xe8\x5b\xbe\x64\x48\x51\x75\x51\xb0\x67\xc4\x4e\x19\x79\xc9\x99\x7c\x70\xb3\x75\xc5\x5e\x76\x73\xbb\x83\xe0\x64\xad\x62\xe8\x94\xb5\x6c\xe2\x53\x5a\x52\xc3\x64\x0f\x94\xc2\x7b\x94\x4f\x2f\x5e\x1b\x82\x36\x81\x16\x81\x8a\x6e\x24\x6c\xca\x9a\x73\x63\x55\x53\x5c\x54\xfa\x88\x65\x57\xe0\x4e\x0d\x5e\x03\x6b\x65\x7c\x3f\x90\xe8\x60\x16\x64\xe6\x73\x1c\x88\xc1\x67\x50\x62\x4d\x8d\x22\x77\x6c\x8e\x29\x91\xc7\x5f\x69\x83\xdc\x85\x21\x99\x10\x53\xc2\x86\x95\x6b\x8b\x60\xed\x60\xe8\x70\x7f\x82\xcd\x82\x31\x4e\xd3\x6c\xa7\x85\xcf\x64\xcd\x7c\xd9\x69\xfd\x66\xf9\x83\x49\x53\x95\x7b\x56\x4f\xa7\x51\x8c\x6d\x4b\x5c\x42\x8e\x6d\x63\xd2\x53\xc9\x83\x2c\x83\x36\x67\xe5\x78\xb4\x64\x3d\x5b\xdf\x5c\x94\x5d\xee\x8b\xe7\x62\xc6\x67\xf4\x8c\x7a\x64\x00\x63\xba\x87\x49\x99\x8b\x8c\x17\x7f\x20\x94\xf2\x4e\xa7\x96\x10\x98\xa4\x66\x0c\x73\x16\x00\x00\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x3a\x5c\x1d\x5e\x38\x95\x7f\x50\x7f\x80\xa0\x53\x82\x65\x5e\x75\x45\x55\x31\x50\x21\x8d\x85\x62\x84\x94\x9e\x67\x1d\x56\x32\x6f\x6e\x5d\xe2\x54\x35\x70\x92\x8f\x66\x62\x6f\x64\xa4\x63\xa3\x5f\x7b\x6f\x88\x90\xf4\x81\xe3\x8f\xb0\x5c\x18\x66\x68\x5f\xf1\x6c\x89\x96\x48\x8d\x81\x88\x6c\x64\x91\x79\xf0\x57\xce\x6a\x59\x62\x10\x54\x48\x4e\x58\x7a\x0b\x60\xe9\x6f\x84\x8b\xda\x62\x7f\x90\x1e\x9a\x8b\x79\xe4\x54\x03\x75\xf4\x63\x01\x53\x19\x6c\x60\x8f\xdf\x5f\x1b\x9a\x70\x80\x3b\x9f\x7f\x4f\x88\x5c\x3a", /* 4a80 */ "\x00\x00\x8d\x64\x7f\xc5\x65\xa5\x70\xbd\x51\x45\x51\xb2\x86\x6b\x5d\x07\x5b\xa0\x62\xbd\x91\x6c\x75\x74\x8e\x0c\x7a\x20\x61\x01\x7b\x79\x4e\xc7\x7e\xf8\x77\x85\x4e\x11\x81\xed\x52\x1d\x51\xfa\x6a\x71\x53\xa8\x8e\x87\x95\x04\x96\xcf\x6e\xc1\x96\x64\x69\x5a\x78\x40\x50\xa8\x77\xd7\x64\x10\x89\xe6\x59\x04\x63\xe3\x5d\xdd\x7a\x7f\x69\x3d\x4f\x20\x82\x39\x55\x98\x4e\x32\x75\xae\x7a\x97\x5e\x62\x5e\x8a\x95\xef\x52\x1b\x54\x39\x70\x8a\x63\x76\x95\x24\x57\x82\x66\x25\x69\x3f\x91\x87\x55\x07\x6d\xf3\x7e\xaf\x88\x22\x62\x33\x7e\xf0\x75\xb5\x83\x28\x78\xc1\x96\xcc\x8f\x9e\x61\x48\x74\xf7\x8b\xcd\x6b\x64\x52\x3a\x8d\x50\x6b\x21\x80\x6a\x84\x71\x56\xf1\x53\x06\x4e\xce\x4e\x1b\x51\xd1\x7c\x97\x91\x8b\x7c\x07\x4f\xc3\x8e\x7f\x7b\xe1\x7a\x9c\x64\x67\x5d\x14\x50\xac\x81\x06\x76\x01\x7c\xb9\x6d\xec\x7f\xe0\x67\x51\x5b\x58\x5b\xf8\x78\xcb\x64\xae\x64\x13\x63\xaa\x63\x2b\x95\x19\x64\x2d\x8f\xbe\x7b\x54\x76\x29\x62\x53\x59\x27\x54\x46\x6b\x79\x50\xa3\x62\x34\x5e\x26\x6b\x86\x4e\xe3\x8d\x37\x88\x8b\x5f\x85\x90\x2e\x00\x00\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x20\x80\x3d\x62\xc5\x4e\x39\x53\x55\x90\xf8\x63\xb8\x80\xc6\x65\xe6\x6c\x2e\x4f\x46\x60\xee\x6d\xe1\x8b\xde\x5f\x39\x86\xcb\x5f\x53\x63\x21\x51\x5a\x83\x61\x68\x63\x52\x00\x63\x63\x8e\x48\x50\x12\x5c\x9b\x79\x77\x5b\xfc\x52\x30\x7a\x3b\x60\xbc\x90\x53\x76\xd7\x5f\xb7\x5f\x97\x76\x84\x8e\x6c\x70\x6f\x76\x7b\x7b\x49\x77\xaa\x51\xf3\x90\x93\x58\x24\x4f\x4e\x6e\xf4\x8f\xea\x65\x4c\x7b\x1b\x72\xc4\x6d\xa4\x7f\xdf\x5a\xe1\x62\xb5\x5e\x95\x57\x30\x84\x82\x7b\x2c\x5e\x1d\x5f\x1f\x90\x12\x7f\x14\x98\xa0", /* 4b80 */ "\x00\x00\x63\x82\x6e\xc7\x78\x98\x70\xb9\x51\x78\x97\x5b\x57\xab\x75\x35\x4f\x43\x75\x38\x5e\x97\x60\xe6\x59\x60\x6d\xc0\x6b\xbf\x78\x89\x53\xfc\x96\xd5\x51\xcb\x52\x01\x63\x89\x54\x0a\x94\x93\x8c\x03\x8d\xcc\x72\x39\x78\x9f\x87\x76\x8f\xed\x8c\x0d\x53\xe0\x4e\x01\x76\xef\x53\xee\x94\x89\x98\x76\x9f\x0e\x95\x2d\x5b\x9a\x8b\xa2\x4e\x22\x4e\x1c\x51\xac\x84\x63\x61\xc2\x52\xa8\x68\x0b\x4f\x97\x60\x6b\x51\xbb\x6d\x1e\x51\x5c\x62\x96\x65\x97\x96\x61\x8c\x46\x90\x17\x75\xd8\x90\xfd\x77\x63\x6b\xd2\x72\x8a\x72\xec\x8b\xfb\x58\x35\x77\x79\x8d\x4c\x67\x5c\x95\x40\x80\x9a\x5e\xa6\x6e\x21\x59\x92\x7a\xef\x77\xed\x95\x3b\x6b\xb5\x65\xad\x7f\x0e\x58\x06\x51\x51\x96\x1f\x5b\xf9\x58\xa9\x54\x28\x8e\x72\x65\x66\x98\x7f\x56\xe4\x94\x9d\x76\xfe\x90\x41\x63\x87\x54\xc6\x59\x1a\x59\x3a\x57\x9b\x8e\xb2\x67\x35\x8d\xfa\x82\x35\x52\x41\x60\xf0\x58\x15\x86\xfe\x5c\xe8\x9e\x45\x4f\xc4\x98\x9d\x8b\xb9\x5a\x25\x60\x76\x53\x84\x62\x7c\x90\x4f\x91\x02\x99\x7f\x60\x69\x80\x0c\x51\x3f\x80\x33\x5c\x14\x99\x75\x6d\x31\x4e\x8c\x00\x00\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x30\x53\xd1\x7f\x5a\x7b\x4f\x4f\x10\x4e\x4f\x96\x00\x6c\xd5\x73\xd0\x85\xe9\x5e\x06\x75\x6a\x7f\xfb\x6a\x0a\x77\xfe\x94\x92\x7e\x41\x51\xe1\x70\xe6\x53\xcd\x8f\xd4\x83\x03\x8d\x29\x72\xaf\x99\x6d\x6c\xdb\x57\x4a\x82\xb3\x65\xb9\x80\xaa\x62\x3f\x96\x32\x59\xa8\x4e\xff\x8b\xbf\x7e\xba\x65\x3e\x83\xf2\x97\x5e\x55\x61\x98\xde\x80\xa5\x53\x2a\x8b\xfd\x54\x20\x80\xba\x5e\x9f\x6c\xb8\x8d\x39\x82\xac\x91\x5a\x54\x29\x6c\x1b\x52\x06\x7e\xb7\x57\x5f\x71\x1a\x6c\x7e\x7c\x89\x59\x4b\x4e\xfd\x5f\xff\x61\x24", /* 4c80 */ "\x00\x00\x7c\xaa\x4e\x30\x5c\x01\x67\xab\x87\x02\x5c\xf0\x95\x0b\x98\xce\x75\xaf\x70\xfd\x90\x22\x51\xaf\x7f\x1d\x8b\xbd\x59\x49\x51\xe4\x4f\x5b\x54\x26\x59\x2b\x65\x77\x80\xa4\x5b\x75\x62\x76\x62\xc2\x8f\x90\x5e\x45\x6c\x1f\x7b\x26\x4f\x0f\x4f\xd8\x67\x0d\x6d\x6e\x6d\xaa\x79\x8f\x88\xb1\x5f\x17\x75\x2b\x62\x9a\x8f\x85\x4f\xef\x91\xdc\x65\xa7\x81\x2f\x81\x51\x5e\x9c\x81\x50\x8d\x74\x52\x6f\x89\x86\x8d\x4b\x59\x0d\x50\x85\x4e\xd8\x96\x1c\x72\x36\x81\x79\x8d\x1f\x5b\xcc\x8b\xa3\x96\x44\x59\x87\x7f\x1a\x54\x90\x56\x76\x56\x0e\x8b\xe5\x65\x39\x69\x82\x94\x99\x76\xd6\x6e\x89\x5e\x72\x75\x18\x67\x46\x67\xd1\x7a\xff\x80\x9d\x8d\x76\x61\x1f\x79\xc6\x65\x62\x8d\x63\x51\x88\x52\x1a\x94\xa2\x7f\x38\x80\x9b\x7e\xb2\x5c\x97\x6e\x2f\x67\x60\x7b\xd9\x76\x8b\x9a\xd8\x81\x8f\x7f\x94\x7c\xd5\x64\x1e\x95\x50\x7a\x3f\x54\x4a\x54\xe5\x6b\x4c\x64\x01\x62\x08\x9e\x3d\x80\xf3\x75\x99\x52\x72\x97\x69\x84\x5b\x68\x3c\x86\xe4\x96\x01\x96\x94\x94\xec\x4e\x2a\x54\x04\x7e\xd9\x68\x39\x8d\xdf\x80\x15\x66\xf4\x5e\x9a\x7f\xb9\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x80\x3f\x68\x97\x5d\xe5\x65\x3b\x52\x9f\x60\x6d\x9f\x9a\x4f\x9b\x8e\xac\x51\x6c\x5b\xab\x5f\x13\x5d\xe9\x6c\x5e\x62\xf1\x8d\x21\x51\x71\x94\xa9\x52\xfe\x6c\x9f\x82\xdf\x72\xd7\x57\xa2\x67\x84\x8d\x2d\x59\x1f\x8f\x9c\x83\xc7\x54\x95\x7b\x8d\x4f\x30\x6c\xbd\x5b\x64\x59\xd1\x9f\x13\x53\xe4\x86\xca\x9a\xa8\x8c\x37\x80\xa1\x65\x45\x98\x7e\x56\xfa\x96\xc7\x52\x2e\x74\xdc\x52\x50\x5b\xe1\x63\x02\x89\x02\x4e\x56\x62\xd0\x60\x2a\x68\xfa\x51\x73\x5b\x98\x51\xa0\x89\xc2\x7b\xa1\x99\x86\x7f\x50\x60\xef", /* 4d80 */ "\x00\x00\x70\x4c\x8d\x2f\x51\x49\x5e\x7f\x90\x1b\x74\x70\x89\xc4\x57\x2d\x78\x45\x5f\x52\x9f\x9f\x95\xfa\x8f\x68\x9b\x3c\x8b\xe1\x76\x78\x68\x42\x67\xdc\x8d\xea\x8d\x35\x52\x3d\x8f\x8a\x6e\xda\x68\xcd\x95\x05\x90\xed\x56\xfd\x67\x9c\x88\xf9\x8f\xc7\x54\xc8\x9a\xb8\x5b\x69\x6d\x77\x6c\x26\x4e\xa5\x5b\xb3\x9a\x87\x91\x63\x61\xa8\x90\xaf\x97\xe9\x54\x2b\x6d\xb5\x5b\xd2\x51\xfd\x55\x8a\x7f\x55\x7f\xf0\x64\xbc\x63\x4d\x65\xf1\x61\xbe\x60\x8d\x71\x0a\x6c\x57\x6c\x49\x59\x2f\x67\x6d\x82\x2a\x58\xd5\x56\x8e\x8c\x6a\x6b\xeb\x90\xdd\x59\x7d\x80\x17\x53\xf7\x6d\x69\x54\x75\x55\x9d\x83\x77\x83\xcf\x68\x38\x79\xbe\x54\x8c\x4f\x55\x54\x08\x76\xd2\x8c\x89\x96\x02\x6c\xb3\x6d\xb8\x8d\x6b\x89\x10\x9e\x64\x8d\x3a\x56\x3f\x9e\xd1\x75\xd5\x5f\x88\x72\xe0\x60\x68\x54\xfc\x4e\xa8\x6a\x2a\x88\x61\x60\x52\x8f\x70\x54\xc4\x70\xd8\x86\x79\x9e\x3f\x6d\x2a\x5b\x8f\x5f\x18\x7e\xa2\x55\x89\x4f\xaf\x73\x34\x54\x3c\x53\x9a\x50\x19\x54\x0e\x54\x7c\x4e\x4e\x5f\xfd\x74\x5a\x58\xf6\x84\x6b\x80\xe1\x87\x74\x72\xd0\x7c\xca\x6e\x56\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x27\x86\x4e\x55\x2c\x62\xa4\x4e\x92\x6c\xaa\x62\x37\x82\xb1\x54\xd7\x53\x4e\x73\x3e\x6e\xd1\x75\x3b\x52\x12\x53\x16\x8b\xdd\x69\xd0\x5f\x8a\x60\x00\x6d\xee\x57\x4f\x6b\x22\x73\xaf\x68\x53\x8f\xd8\x7f\x13\x63\x62\x60\xa3\x55\x24\x75\xea\x8c\x62\x71\x15\x6d\xa3\x5b\xa6\x5e\x7b\x83\x52\x61\x4c\x9e\xc4\x78\xfa\x87\x57\x7c\x27\x76\x87\x51\xf0\x60\xf6\x71\x4c\x66\x43\x5e\x4c\x60\x4d\x8c\x0e\x70\x70\x63\x25\x8f\x89\x5f\xbd\x60\x62\x86\xd4\x56\xde\x6b\xc1\x60\x94\x61\x67\x53\x49\x60\xe0\x66\x66\x8d\x3f", /* 4e80 */ "\x00\x00\x79\xfd\x4f\x1a\x70\xe9\x6c\x47\x8b\xb3\x8b\xf2\x7e\xd8\x83\x64\x66\x0f\x5a\x5a\x9b\x42\x6d\x51\x6d\xf7\x8c\x41\x6d\x3b\x4f\x19\x70\x6b\x83\xb7\x62\x16\x60\xd1\x97\x0d\x8d\x27\x79\x78\x51\xfb\x57\x3e\x57\xfa\x67\x3a\x75\x78\x7a\x3d\x79\xef\x7b\x95\x80\x8c\x99\x65\x8f\xf9\x6f\xc0\x8b\xa5\x9e\x21\x59\xec\x7e\xe9\x7f\x09\x54\x09\x67\x81\x68\xd8\x8f\x91\x7c\x4d\x96\xc6\x53\xca\x60\x25\x75\xbe\x6c\x72\x53\x73\x5a\xc9\x7e\xa7\x63\x24\x51\xe0\x81\x0a\x5d\xf1\x84\xdf\x62\x80\x51\x80\x5b\x63\x4f\x0e\x79\x6d\x52\x42\x60\xb8\x6d\x4e\x5b\xc4\x5b\xc2\x8b\xa1\x8b\xb0\x65\xe2\x5f\xcc\x96\x45\x59\x93\x7e\xe7\x7e\xaa\x56\x09\x67\xb7\x59\x39\x4f\x73\x5b\xb6\x52\xa0\x83\x5a\x98\x8a\x8d\x3e\x75\x32\x94\xbe\x50\x47\x7a\x3c\x4e\xf7\x67\xb6\x9a\x7e\x5a\xc1\x6b\x7c\x76\xd1\x57\x5a\x5c\x16\x7b\x3a\x95\xf4\x71\x4e\x51\x7c\x80\xa9\x82\x70\x59\x78\x7f\x04\x83\x27\x68\xc0\x67\xec\x78\xb1\x78\x77\x62\xe3\x63\x61\x7b\x80\x4f\xed\x52\x6a\x51\xcf\x83\x50\x69\xdb\x92\x74\x8d\xf5\x8d\x31\x89\xc1\x95\x2e\x7b\xad\x4e\xf6\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x65\x82\x30\x52\x51\x99\x6f\x6e\x10\x6e\x85\x6d\xa7\x5e\xfa\x50\xf5\x59\xdc\x5c\x06\x6d\x46\x6c\x5f\x75\x86\x84\x8b\x68\x68\x59\x56\x8b\xb2\x53\x20\x91\x71\x96\x4d\x85\x49\x69\x12\x79\x01\x71\x26\x80\xf6\x4e\xa4\x90\xca\x6d\x47\x9a\x84\x5a\x07\x56\xbc\x64\x05\x94\xf0\x77\xeb\x4f\xa5\x81\x1a\x72\xe1\x89\xd2\x99\x7a\x7f\x34\x7e\xde\x52\x7f\x65\x59\x91\x75\x8f\x7f\x8f\x83\x53\xeb\x7a\x96\x63\xed\x63\xa5\x76\x86\x79\xf8\x88\x57\x96\x36\x62\x2a\x52\xab\x82\x82\x68\x54\x67\x70\x63\x77\x77\x6b\x7a\xed", /* 4f80 */ "\x00\x00\x6d\x01\x7e\xd3\x89\xe3\x59\xd0\x62\x12\x85\xc9\x82\xa5\x75\x4c\x50\x1f\x4e\xcb\x75\xa5\x8b\xeb\x5c\x4a\x5d\xfe\x7b\x4b\x65\xa4\x91\xd1\x4e\xca\x6d\x25\x89\x5f\x7d\x27\x95\x26\x4e\xc5\x8c\x28\x8f\xdb\x97\x73\x66\x4b\x79\x81\x8f\xd1\x70\xec\x6d\x78\x5c\x3d\x52\xb2\x83\x46\x51\x62\x83\x0e\x77\x5b\x66\x76\x9c\xb8\x4e\xac\x60\xca\x7c\xbe\x7c\xb3\x7e\xcf\x4e\x95\x8b\x66\x66\x6f\x98\x88\x97\x59\x58\x83\x65\x6c\x95\x5c\x5f\x84\x75\xc9\x97\x56\x7a\xdf\x7a\xde\x51\xc0\x70\xaf\x7a\x98\x63\xea\x7a\x76\x7e\xa0\x73\x96\x97\xed\x4e\x45\x70\x78\x4e\x5d\x91\x52\x53\xa9\x65\x51\x65\xe7\x81\xfc\x82\x05\x54\x8e\x5c\x31\x75\x9a\x97\xa0\x62\xd8\x72\xd9\x75\xbd\x5c\x45\x9a\x79\x83\xca\x5c\x40\x54\x80\x77\xe9\x4e\x3e\x6c\xae\x80\x5a\x62\xd2\x63\x6e\x5d\xe8\x51\x77\x8d\xdd\x8e\x1e\x95\x2f\x4f\xf1\x53\xe5\x60\xe7\x70\xac\x52\x67\x63\x50\x9e\x43\x5a\x1f\x50\x26\x77\x37\x53\x77\x7e\xe2\x64\x85\x65\x2b\x62\x89\x63\x98\x50\x14\x72\x35\x89\xc9\x51\xb3\x8b\xc0\x7e\xdd\x57\x47\x83\xcc\x94\xa7\x51\x9b\x54\x1b\x5c\xfb\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x7a\xe3\x6d\x5a\x90\xe1\x9a\x8f\x55\x80\x54\x96\x53\x61\x54\xaf\x5f\x00\x63\xe9\x69\x77\x51\xef\x61\x68\x52\x0a\x58\x2a\x52\xd8\x57\x4e\x78\x0d\x77\x0b\x5e\xb7\x61\x77\x7c\xe0\x62\x5b\x62\x97\x4e\xa2\x70\x95\x80\x03\x62\xf7\x70\xe4\x97\x60\x57\x77\x82\xdb\x67\xef\x68\xf5\x78\xd5\x98\x97\x79\xd1\x58\xf3\x54\xb3\x53\xef\x6e\x34\x51\x4b\x52\x3b\x5b\xa2\x8b\xfe\x80\xaf\x55\x43\x57\xa6\x60\x73\x57\x51\x54\x2d\x7a\x7a\x60\x50\x5b\x54\x63\xa7\x62\xa0\x53\xe3\x62\x63\x5b\xc7\x67\xaf\x54\xed\x7a\x9f", /* 5080 */ "\x00\x00\x82\xe6\x91\x77\x5e\x93\x88\xe4\x59\x38\x57\xae\x63\x0e\x8d\xe8\x80\xef\x57\x57\x7b\x77\x4f\xa9\x5f\xeb\x5b\xbd\x6b\x3e\x53\x21\x7b\x50\x72\xc2\x68\x46\x77\xff\x77\x36\x65\xf7\x51\xb5\x4e\x8f\x76\xd4\x5c\xbf\x7a\xa5\x84\x75\x59\x4e\x9b\x41\x50\x80\x99\x88\x61\x27\x6e\x83\x57\x64\x66\x06\x63\x46\x56\xf0\x62\xec\x62\x69\x5e\xd3\x96\x14\x57\x83\x62\xc9\x55\x87\x87\x21\x81\x4a\x8f\xa3\x55\x66\x83\xb1\x67\x65\x8d\x56\x84\xdd\x5a\x6a\x68\x0f\x62\xe6\x7b\xee\x96\x11\x51\x70\x6f\x9c\x8c\x30\x63\xfd\x89\xc8\x61\xd2\x7f\x06\x70\xc2\x6e\xe5\x74\x05\x69\x94\x72\xfc\x5e\xca\x90\xce\x67\x17\x6d\x6a\x63\x5e\x52\xb3\x72\x62\x80\x01\x4f\x6c\x59\xe5\x91\x6a\x70\xd9\x6d\x9d\x52\xd2\x4e\x50\x96\xf7\x95\x6d\x85\x7e\x78\xca\x7d\x2f\x51\x21\x57\x92\x64\xc2\x80\x8b\x7c\x7b\x6c\xea\x68\xf1\x69\x5e\x51\xb7\x53\x98\x68\xa8\x72\x81\x9e\xce\x7b\xf1\x72\xf8\x79\xbb\x6f\x13\x74\x06\x67\x4e\x91\xcc\x9c\xa4\x79\x3c\x83\x89\x83\x54\x54\x0f\x68\x17\x4e\x3d\x53\x89\x52\xb1\x78\x3e\x53\x86\x52\x29\x50\x88\x4f\x8b\x4f\xd0\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe2\x7a\xcb\x7c\x92\x6c\xa5\x96\xb6\x52\x9b\x74\x83\x54\xe9\x4f\xe9\x80\x54\x83\xb2\x8f\xde\x95\x70\x5e\xc9\x60\x1c\x6d\x9f\x5e\x18\x65\x5b\x81\x38\x94\xfe\x60\x4b\x70\xbc\x7e\xc3\x7c\xae\x51\xc9\x68\x81\x7c\xb1\x82\x6f\x4e\x24\x8f\x86\x91\xcf\x66\x7e\x4e\xae\x8c\x05\x64\xa9\x80\x4a\x50\xda\x75\x97\x71\xce\x5b\xe5\x8f\xbd\x6f\x66\x4e\x86\x64\x82\x95\x63\x5e\xd6\x65\x99\x52\x17\x88\xc2\x70\xc8\x52\xa3\x73\x0e\x74\x33\x67\x97\x78\xf7\x97\x16\x4e\x34\x90\xbb\x9c\xde\x6d\xcb\x51\xdb\x8d\x41\x54\x1d", /* 5180 */ "\x00\x00\x62\xce\x73\xb2\x83\xf1\x96\xf6\x9f\x84\x94\xc3\x4f\x36\x7f\x9a\x51\xcc\x70\x75\x96\x75\x5c\xad\x98\x86\x53\xe6\x4e\xe4\x6e\x9c\x74\x09\x69\xb4\x78\x6b\x99\x8f\x75\x59\x52\x18\x76\x24\x6d\x41\x67\xf3\x51\x6d\x9f\x99\x80\x4b\x54\x99\x7b\x3c\x7a\xbf\x96\x86\x57\x84\x62\xe2\x96\x47\x69\x7c\x5a\x04\x64\x02\x7b\xd3\x6f\x0f\x96\x4b\x82\xa6\x53\x62\x98\x85\x5e\x90\x70\x89\x63\xb3\x53\x64\x86\x4f\x9c\x81\x9e\x93\x78\x8c\x97\x32\x8d\xef\x8d\x42\x9e\x7f\x6f\x5e\x79\x84\x5f\x55\x96\x46\x62\x2e\x9a\x74\x54\x15\x94\xdd\x4f\xa3\x65\xc5\x5c\x65\x5c\x61\x7f\x15\x86\x51\x6c\x2f\x5f\x8b\x73\x87\x6e\xe4\x7e\xff\x5c\xe6\x63\x1b\x5b\x6a\x6e\xe6\x53\x75\x4e\x71\x63\xa0\x75\x65\x62\xa1\x8f\x6e\x4f\x26\x4e\xd1\x6c\xa6\x7e\xb6\x8b\xba\x84\x1d\x87\xba\x7f\x57\x90\x3b\x95\x23\x7b\xa9\x9a\xa1\x88\xf8\x84\x3d\x6d\x1b\x9a\x86\x7e\xdc\x59\x88\x9e\xbb\x73\x9b\x78\x01\x86\x82\x9a\x6c\x9a\x82\x56\x1b\x54\x17\x57\xcb\x4e\x70\x9e\xa6\x53\x56\x8f\xc8\x81\x09\x77\x92\x99\x92\x86\xee\x6e\xe1\x85\x13\x66\xfc\x61\x62\x6f\x2b\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x29\x82\x92\x83\x2b\x76\xf2\x6c\x13\x5f\xd9\x83\xbd\x73\x2b\x83\x05\x95\x1a\x6b\xdb\x77\xdb\x94\xc6\x53\x6f\x83\x02\x51\x92\x5e\x3d\x8c\x8c\x8d\x38\x4e\x48\x73\xab\x67\x9a\x68\x85\x91\x76\x97\x09\x71\x64\x6c\xa1\x77\x09\x5a\x92\x95\x41\x6b\xcf\x7f\x8e\x66\x27\x5b\xd0\x59\xb9\x5a\x9a\x95\xe8\x95\xf7\x4e\xec\x84\x0c\x84\x99\x6a\xac\x76\xdf\x95\x30\x73\x1b\x68\xa6\x5b\x5f\x77\x2f\x91\x9a\x97\x61\x7c\xdc\x8f\xf7\x8c\x1c\x5f\x25\x7c\x73\x79\xd8\x89\xc5\x6c\xcc\x87\x1c\x5b\xc6\x5e\x42\x68\xc9\x77\x20", /* 5280 */ "\x00\x00\x7e\xf5\x51\x95\x51\x4d\x52\xc9\x5a\x29\x7f\x05\x97\x62\x82\xd7\x63\xcf\x77\x84\x85\xd0\x79\xd2\x6e\x3a\x5e\x99\x59\x99\x85\x11\x70\x6d\x6c\x11\x62\xbf\x76\xbf\x65\x4f\x60\xaf\x95\xfd\x66\x0e\x87\x9f\x9e\x23\x94\xed\x54\x0d\x54\x7d\x8c\x2c\x64\x78\x64\x79\x86\x11\x6a\x21\x81\x9c\x78\xe8\x64\x69\x9b\x54\x62\xb9\x67\x2b\x83\xab\x58\xa8\x9e\xd8\x6c\xab\x6f\x20\x5b\xde\x96\x4c\x8c\x0b\x72\x5f\x67\xd0\x62\xc7\x72\x61\x4e\xa9\x59\xc6\x6b\xcd\x58\x93\x66\xae\x5e\x55\x52\xdf\x61\x55\x67\x28\x76\xee\x77\x66\x72\x67\x7a\x46\x62\xff\x54\xea\x54\x50\x94\xa0\x90\xa3\x5a\x1c\x7e\xb3\x6c\x16\x4e\x43\x59\x76\x80\x10\x59\x48\x53\x57\x75\x37\x96\xbe\x56\xca\x63\x20\x81\x11\x60\x7c\x95\xf9\x6d\xd6\x54\x62\x99\x81\x51\x85\x5a\xe9\x80\xfd\x59\xae\x97\x13\x50\x2a\x6c\xe5\x5c\x3c\x62\xdf\x4f\x60\x53\x3f\x81\x7b\x90\x06\x6e\xba\x85\x2b\x62\xc8\x5e\x74\x78\xbe\x64\xb5\x63\x7b\x5f\xf5\x5a\x18\x91\x7f\x9e\x1f\x5c\x3f\x63\x4f\x80\x42\x5b\x7d\x55\x6e\x95\x4a\x95\x4d\x6d\x85\x60\xa8\x67\xe0\x72\xde\x51\xdd\x5b\x81\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe7\x6c\xde\x72\x5b\x62\x6d\x94\xae\x7e\xbd\x81\x13\x6d\x53\x51\x9c\x5f\x04\x59\x74\x52\xaa\x60\x12\x59\x73\x66\x96\x86\x50\x75\x9f\x63\x2a\x61\xe6\x7c\xef\x8b\xfa\x54\xe6\x6b\x27\x9e\x25\x6b\xb4\x85\xd5\x54\x55\x50\x76\x6c\xa4\x55\x6a\x8d\xb4\x72\x2c\x5e\x15\x60\x15\x74\x36\x62\xcd\x63\x92\x72\x4c\x5f\x98\x6e\x43\x6d\x3e\x65\x00\x6f\x58\x76\xd8\x78\xd0\x76\xfc\x75\x54\x52\x24\x53\xdb\x4e\x53\x5e\x9e\x65\xc1\x80\x2a\x80\xd6\x62\x9b\x54\x86\x52\x28\x70\xae\x88\x8d\x8d\xd1\x6c\xe1\x54\x78\x80\xda", /* 5380 */ "\x00\x00\x57\xf9\x88\xf4\x8d\x54\x96\x6a\x91\x4d\x4f\x69\x6c\x9b\x55\xb7\x76\xc6\x78\x30\x62\xa8\x70\xf9\x6f\x8e\x5f\x6d\x84\xec\x68\xda\x78\x7c\x7b\xf7\x81\xa8\x67\x0b\x9e\x4f\x63\x67\x78\xb0\x57\x6f\x78\x12\x97\x39\x62\x79\x62\xab\x52\x88\x74\x35\x6b\xd7\x55\x64\x81\x3e\x75\xb2\x76\xae\x53\x39\x75\xde\x50\xfb\x5c\x41\x8b\x6c\x7b\xc7\x50\x4f\x72\x47\x9a\x97\x98\xd8\x6f\x02\x74\xe2\x79\x68\x64\x87\x77\xa5\x62\xfc\x98\x91\x8d\x2b\x54\xc1\x80\x58\x4e\x52\x57\x6a\x82\xf9\x84\x0d\x5e\x73\x51\xed\x74\xf6\x8b\xc4\x5c\x4f\x57\x61\x6c\xfc\x98\x87\x5a\x46\x78\x34\x9b\x44\x8f\xeb\x7c\x95\x52\x56\x62\x51\x94\xfa\x4e\xc6\x83\x86\x84\x61\x83\xe9\x84\xb2\x57\xd4\x67\x34\x57\x03\x66\x6e\x6d\x66\x8c\x31\x66\xdd\x70\x11\x67\x1f\x6b\x3a\x68\x16\x62\x1a\x59\xbb\x4e\x03\x51\xc4\x6f\x06\x67\xd2\x6c\x8f\x51\x76\x68\xcb\x59\x47\x6b\x67\x75\x66\x5d\x0e\x81\x10\x9f\x50\x65\xd7\x79\x48\x79\x41\x9a\x91\x8d\x77\x5c\x82\x4e\x5e\x4f\x01\x54\x2f\x59\x51\x78\x0c\x56\x68\x6c\x14\x8f\xc4\x5f\x03\x6c\x7d\x6c\xe3\x8b\xab\x63\x90\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x70\x6d\x3d\x72\x75\x62\x66\x94\x8e\x94\xc5\x53\x43\x8f\xc1\x7b\x7e\x4e\xdf\x8c\x26\x4e\x7e\x9e\xd4\x94\xb1\x94\xb3\x52\x4d\x6f\x5c\x90\x63\x6d\x45\x8c\x34\x58\x11\x5d\x4c\x6b\x20\x6b\x49\x67\xaa\x54\x5b\x81\x54\x7f\x8c\x58\x99\x85\x37\x5f\x3a\x62\xa2\x6a\x47\x95\x39\x65\x72\x60\x84\x68\x65\x77\xa7\x4e\x54\x4f\xa8\x5d\xe7\x97\x98\x64\xac\x7f\xd8\x5c\xed\x4f\xcf\x7a\x8d\x52\x07\x83\x04\x4e\x14\x60\x2f\x7a\x83\x94\xa6\x4f\xb5\x4e\xb2\x79\xe6\x74\x34\x52\xe4\x82\xb9\x64\xd2\x79\xbd\x5b\xdd\x6c\x81", /* 5480 */ "\x00\x00\x97\x52\x8f\x7b\x6c\x22\x50\x3e\x53\x7f\x6e\x05\x64\xce\x66\x74\x6c\x30\x60\xc5\x98\x77\x8b\xf7\x5e\x86\x74\x3c\x7a\x77\x79\xcb\x4e\x18\x90\xb1\x74\x03\x6c\x42\x56\xda\x91\x4b\x6c\xc5\x8d\x8b\x53\x3a\x86\xc6\x66\xf2\x8e\xaf\x5c\x48\x9a\x71\x6e\x20\x53\xd6\x5a\x36\x9f\x8b\x8d\xa3\x53\xbb\x57\x08\x98\xa7\x67\x43\x91\x9b\x6c\xc9\x51\x68\x75\xca\x62\xf3\x72\xac\x52\x38\x52\x9d\x7f\x3a\x70\x94\x76\x38\x53\x74\x9e\x4a\x69\xb7\x78\x6e\x96\xc0\x88\xd9\x7f\xa4\x71\x36\x71\xc3\x51\x89\x67\xd3\x74\xe4\x58\xe4\x65\x18\x56\xb7\x8b\xa9\x99\x76\x62\x70\x7e\xd5\x60\xf9\x70\xed\x58\xec\x4e\xc1\x4e\xba\x5f\xcd\x97\xe7\x4e\xfb\x8b\xa4\x52\x03\x59\x8a\x7e\xab\x62\x54\x4e\xcd\x65\xe5\x62\x0e\x83\x38\x84\xc9\x83\x63\x87\x8d\x71\x94\x6e\xb6\x5b\xb9\x7e\xd2\x51\x97\x63\xc9\x67\xd4\x80\x89\x83\x39\x88\x15\x51\x12\x5b\x7a\x59\x82\x8f\xb1\x4e\x73\x6c\x5d\x51\x65\x89\x25\x8f\x6f\x96\x2e\x85\x4a\x74\x5e\x95\x10\x95\xf0\x6d\xa6\x82\xe5\x5f\x31\x64\x92\x6d\x12\x84\x28\x81\x6e\x9c\xc3\x58\x5e\x8d\x5b\x4e\x09\x53\xc1\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x1e\x65\x63\x68\x51\x55\xd3\x4e\x27\x64\x14\x9a\x9a\x62\x6b\x5a\xc2\x74\x5f\x82\x72\x6d\xa9\x68\xee\x50\xe7\x83\x8e\x78\x02\x67\x40\x52\x39\x6c\x99\x7e\xb1\x50\xbb\x55\x65\x71\x5e\x7b\x5b\x66\x52\x73\xca\x82\xeb\x67\x49\x5c\x71\x52\x20\x71\x7d\x88\x6b\x95\xea\x96\x55\x64\xc5\x8d\x61\x81\xb3\x55\x84\x6c\x55\x62\x47\x7f\x2e\x58\x92\x4f\x24\x55\x46\x8d\x4f\x66\x4c\x4e\x0a\x5c\x1a\x88\xf3\x68\xa2\x63\x4e\x7a\x0d\x70\xe7\x82\x8d\x52\xfa\x97\xf6\x5c\x11\x54\xe8\x90\xb5\x7e\xcd\x59\x62\x8d\x4a\x86\xc7", /* 5580 */ "\x00\x00\x82\x0c\x82\x0d\x8d\x66\x64\x44\x5c\x04\x61\x51\x6d\x89\x79\x3e\x8b\xbe\x78\x37\x75\x33\x54\x7b\x4f\x38\x8e\xab\x6d\xf1\x5a\x20\x7e\xc5\x79\x5e\x6c\x88\x5b\xa1\x5a\x76\x75\x1a\x80\xbe\x61\x4e\x6e\x17\x58\xf0\x75\x1f\x75\x25\x72\x72\x53\x47\x7e\xf3\x77\x01\x76\xdb\x52\x69\x80\xdc\x57\x23\x5e\x08\x59\x31\x72\xee\x65\xbd\x6e\x7f\x8b\xd7\x5c\x38\x86\x71\x53\x41\x77\xf3\x62\xfe\x65\xf6\x4e\xc0\x98\xdf\x86\x80\x5b\x9e\x8b\xc6\x53\xf2\x77\xe2\x4f\x7f\x5c\x4e\x9a\x76\x59\xcb\x5f\x0f\x79\x3a\x58\xeb\x4e\x16\x67\xff\x4e\x8b\x62\xed\x8a\x93\x90\x1d\x52\xbf\x66\x2f\x55\xdc\x56\x6c\x90\x02\x4e\xd5\x4f\x8d\x91\xca\x99\x70\x6c\x0f\x5e\x02\x60\x43\x5b\xa4\x89\xc6\x8b\xd5\x65\x36\x62\x4b\x99\x96\x5b\x88\x5b\xff\x63\x88\x55\x2e\x53\xd7\x76\x26\x51\x7d\x85\x2c\x67\xa2\x68\xb3\x6b\x8a\x62\x92\x8f\x93\x53\xd4\x82\x12\x6d\xd1\x75\x8f\x4e\x66\x8d\x4e\x5b\x70\x71\x9f\x85\xaf\x66\x91\x66\xd9\x7f\x72\x87\x00\x9e\xcd\x9f\x20\x5c\x5e\x67\x2f\x8f\xf0\x68\x11\x67\x5f\x62\x0d\x7a\xd6\x58\x85\x5e\xb6\x65\x70\x6f\x31\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x55\x52\x37\x80\x0d\x64\x54\x88\x70\x75\x29\x5e\x05\x68\x13\x62\xf4\x97\x1c\x53\xcc\x72\x3d\x8c\x01\x6c\x34\x77\x61\x7a\x0e\x54\x2e\x77\xac\x98\x7a\x82\x1c\x8b\xf4\x78\x55\x67\x14\x70\xc1\x65\xaf\x64\x95\x56\x36\x60\x1d\x79\xc1\x53\xf8\x4e\x1d\x6b\x7b\x80\x86\x5b\xfa\x55\xe3\x56\xdb\x4f\x3a\x4f\x3c\x99\x72\x5d\xf3\x67\x7e\x80\x38\x60\x02\x98\x82\x90\x01\x5b\x8b\x8b\xbc\x8b\xf5\x64\x1c\x82\x58\x64\xde\x55\xfd\x82\xcf\x91\x65\x4f\xd7\x7d\x20\x90\x1f\x7c\x9f\x50\xf3\x58\x51\x6e\xaf\x5b\xbf\x8b\xc9", /* 5680 */ "\x00\x00\x80\x83\x91\x78\x84\x9c\x7b\x97\x86\x7d\x96\x8b\x96\x8f\x7e\xe5\x9a\xd3\x78\x8e\x5c\x81\x7a\x57\x90\x42\x96\xa7\x79\x5f\x5b\x59\x63\x5f\x7b\x0b\x84\xd1\x68\xad\x55\x06\x7f\x29\x74\x10\x7d\x22\x95\x01\x62\x40\x58\x4c\x4e\xd6\x5b\x83\x59\x79\x58\x54\x73\x6d\x63\x1e\x8e\x4b\x8e\x0f\x80\xce\x82\xd4\x62\xac\x53\xf0\x6c\xf0\x91\x5e\x59\x2a\x60\x01\x6c\x70\x57\x4d\x64\x4a\x8d\x2a\x76\x2b\x6e\xe9\x57\x5b\x6a\x80\x75\xf0\x6f\x6d\x8c\x2d\x8c\x08\x57\x66\x6b\xef\x88\x92\x78\xb3\x63\xa2\x53\xf9\x70\xad\x6c\x64\x58\x58\x64\x2a\x58\x02\x68\xe0\x81\x9b\x55\x10\x7c\xd6\x50\x18\x8e\xba\x6d\xcc\x8d\x9f\x70\xeb\x63\x8f\x6d\x9b\x6e\xd4\x7e\xe6\x84\x04\x68\x43\x90\x03\x6d\xd8\x96\x76\x8b\xa8\x59\x57\x72\x79\x85\xe4\x81\x7e\x75\xbc\x8a\x8a\x68\xaf\x52\x54\x8e\x22\x95\x11\x63\xd0\x98\x98\x8e\x44\x55\x7c\x4f\x53\x66\xff\x56\x8f\x60\xd5\x6d\x95\x52\x43\x5c\x49\x59\x29\x6d\xfb\x58\x6b\x75\x30\x75\x1c\x60\x6c\x82\x14\x81\x46\x63\x11\x67\x61\x8f\xe2\x77\x3a\x8d\xf3\x8d\x34\x94\xc1\x5e\x16\x53\x85\x54\x2c\x70\xc3\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x40\x5e\xf7\x50\x5c\x4e\xad\x5e\xad\x63\x3a\x82\x47\x90\x1a\x68\x50\x91\x6e\x77\xb3\x54\x0c\x94\xdc\x5f\x64\x7a\xe5\x68\x76\x63\x45\x7b\x52\x7e\xdf\x75\xdb\x50\x77\x62\x95\x59\x34\x90\x0f\x51\xf8\x79\xc3\x7a\x81\x56\xfe\x5f\x92\x90\x14\x6d\x82\x5c\x60\x57\x1f\x54\x10\x51\x54\x6e\x4d\x56\xe2\x63\xa8\x98\x93\x81\x7f\x87\x15\x89\x2a\x90\x00\x54\x1e\x5c\x6f\x81\xc0\x62\xd6\x62\x58\x81\x31\x9e\x35\x96\x40\x9a\x6e\x9a\x7c\x69\x2d\x59\xa5\x62\xd3\x55\x3e\x63\x16\x54\xc7\x86\xd9\x6d\x3c\x5a\x03\x74\xe6", /* 5780 */ "\x00\x00\x88\x9c\x6b\x6a\x59\x16\x8c\x4c\x5f\x2f\x6e\x7e\x73\xa9\x98\x7d\x4e\x38\x70\xf7\x5b\x8c\x78\x97\x63\x3d\x66\x5a\x76\x96\x60\xcb\x5b\x9b\x5a\x49\x4e\x07\x81\x55\x6c\x6a\x73\x8b\x4e\xa1\x67\x89\x7f\x51\x5f\x80\x65\xfa\x67\x1b\x5f\xd8\x59\x84\x5a\x01\x5d\xcd\x5f\xae\x53\x71\x97\xe6\x8f\xdd\x68\x45\x56\xf4\x55\x2f\x60\xdf\x4e\x3a\x6f\x4d\x7e\xf4\x82\xc7\x84\x0e\x59\xd4\x4f\x1f\x4f\x2a\x5c\x3e\x7e\xac\x67\x2a\x85\x1a\x54\x73\x75\x4f\x80\xc3\x55\x82\x9b\x4f\x4f\x4d\x6e\x2d\x8c\x13\x5c\x09\x61\x70\x53\x6b\x76\x1f\x6e\x29\x86\x8a\x65\x87\x95\xfb\x7e\xb9\x54\x3b\x7a\x33\x7d\x0a\x95\xee\x55\xe1\x7f\xc1\x74\xee\x63\x1d\x87\x17\x6d\xa1\x7a\x9d\x62\x11\x65\xa1\x53\x67\x63\xe1\x6c\x83\x5d\xeb\x54\x5c\x94\xa8\x4e\x4c\x6c\x61\x8b\xec\x5c\x4b\x65\xe0\x82\x9c\x68\xa7\x54\x3e\x54\x34\x6b\xcb\x6b\x66\x4e\x94\x63\x42\x53\x48\x82\x1e\x4f\x0d\x4f\xae\x57\x5e\x62\x0a\x96\xfe\x66\x64\x72\x69\x52\xff\x52\xa1\x60\x9f\x8b\xef\x66\x14\x71\x99\x67\x90\x89\x7f\x78\x52\x77\xfd\x66\x70\x56\x3b\x54\x38\x95\x21\x72\x7a\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x60\x6f\x5e\x0c\x60\x89\x81\x9d\x59\x15\x60\xdc\x71\x84\x70\xef\x6e\xaa\x6c\x50\x72\x80\x6a\x84\x88\xad\x5e\x2d\x4e\x60\x5a\xb3\x55\x9c\x94\xe3\x6d\x17\x7c\xfb\x96\x99\x62\x0f\x7e\xc6\x77\x8e\x86\x7e\x53\x23\x97\x1e\x8f\x96\x66\x87\x5c\xe1\x4f\xa0\x72\xed\x4e\x0b\x53\xa6\x59\x0f\x54\x13\x63\x80\x95\x28\x51\x48\x4e\xd9\x9c\x9c\x7e\xa4\x54\xb8\x8d\x24\x88\x54\x82\x37\x95\xf2\x6d\x8e\x5f\x26\x5a\xcc\x66\x3e\x96\x69\x73\xb0\x73\x2e\x53\xbf\x81\x7a\x99\x85\x7f\xa1\x5b\xaa\x96\x77\x96\x50\x7e\xbf", /* 5880 */ "\x00\x00\x76\xf8\x53\xa2\x95\x76\x99\x99\x7b\xb1\x89\x44\x6e\x58\x4e\x61\x7f\xd4\x79\x65\x8b\xe6\x60\xf3\x54\xcd\x4e\xab\x98\x79\x5d\xf7\x6a\x61\x50\xcf\x54\x11\x8c\x61\x84\x27\x78\x5d\x97\x04\x52\x4a\x54\xee\x56\xa3\x95\x00\x6d\x88\x5b\xb5\x6d\xc6\x66\x53\x5c\x0f\x5b\x5d\x68\x21\x80\x96\x55\x78\x7b\x11\x65\x48\x69\x54\x4e\x9b\x6b\x47\x87\x4e\x97\x8b\x53\x4f\x63\x1f\x64\x3a\x90\xaa\x65\x9c\x80\xc1\x8c\x10\x51\x99\x68\xb0\x53\x78\x87\xf9\x61\xc8\x6c\xc4\x6c\xfb\x8c\x22\x5c\x51\x85\xaa\x82\xaf\x95\x0c\x6b\x23\x8f\x9b\x65\xb0\x5f\xfb\x5f\xc3\x4f\xe1\x88\x45\x66\x1f\x81\x65\x73\x29\x60\xfa\x51\x74\x52\x11\x57\x8b\x5f\x62\x90\xa2\x88\x4c\x91\x92\x5e\x78\x67\x4f\x60\x27\x59\xd3\x51\x44\x51\xf6\x80\xf8\x53\x08\x6c\x79\x96\xc4\x71\x8a\x4f\x11\x4f\xee\x7f\x9e\x67\x3d\x55\xc5\x95\x08\x79\xc0\x88\x96\x7e\xe3\x58\x9f\x62\x0c\x97\x00\x86\x5a\x56\x18\x98\x7b\x5f\x90\x8b\xb8\x84\xc4\x91\x57\x53\xd9\x65\xed\x5e\x8f\x75\x5c\x60\x64\x7d\x6e\x5a\x7f\x7e\xea\x7e\xed\x8f\x69\x55\xa7\x5b\xa3\x60\xac\x65\xcb\x73\x84\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x09\x76\x63\x77\x29\x7e\xda\x97\x74\x85\x9b\x5b\x66\x7a\x74\x96\xea\x88\x40\x52\xcb\x71\x8f\x5f\xaa\x65\xec\x8b\xe2\x5b\xfb\x9a\x6f\x5d\xe1\x6b\x89\x6c\x5b\x8b\xad\x8b\xaf\x90\x0a\x8f\xc5\x53\x8b\x62\xbc\x9e\x26\x9e\x2d\x54\x40\x4e\x2b\x82\xbd\x72\x59\x86\x9c\x5d\x16\x88\x59\x6d\xaf\x96\xc5\x54\xd1\x4e\x9a\x8b\xb6\x71\x09\x54\xbd\x96\x09\x70\xdf\x6d\xf9\x76\xd0\x4e\x25\x78\x14\x87\x12\x5c\xa9\x5e\xf6\x8a\x00\x98\x9c\x96\x0e\x70\x8e\x6c\xbf\x59\x44\x63\xa9\x77\x3c\x88\x4d\x6f\x14\x82\x73\x58\x30", /* 5980 */ "\x00\x00\x71\xd5\x53\x8c\x78\x1a\x96\xc1\x55\x01\x5f\x66\x71\x30\x5b\xb4\x8c\x1a\x9a\x8c\x6b\x83\x59\x2e\x9e\x2f\x79\xe7\x67\x68\x62\x6c\x4f\x6f\x75\xa1\x7f\x8a\x6d\x0b\x96\x33\x6c\x27\x4e\xf0\x75\xd2\x51\x7b\x68\x37\x6f\x3e\x90\x80\x81\x70\x59\x96\x74\x76\x64\x47\x5c\x27\x90\x65\x7a\x91\x8c\x23\x59\xda\x54\xac\x82\x00\x83\x6f\x89\x81\x80\x00\x69\x30\x56\x4e\x80\x36\x72\x37\x91\xce\x51\xb6\x4e\x5f\x98\x75\x63\x96\x4e\x1a\x53\xf6\x66\xf3\x81\x4b\x59\x1c\x6d\xb2\x4e\x00\x58\xf9\x53\x3b\x63\xd6\x94\xf1\x4f\x9d\x4f\x0a\x88\x63\x98\x90\x59\x37\x90\x57\x79\xfb\x4e\xea\x80\xf0\x75\x91\x6c\x82\x5b\x9c\x59\xe8\x5f\x5d\x69\x05\x86\x81\x50\x1a\x5d\xf2\x4e\x59\x77\xe3\x4e\xe5\x82\x7a\x62\x91\x66\x13\x90\x91\x5c\x79\x4e\xbf\x5f\x79\x81\xc6\x90\x38\x80\x84\x75\xab\x4e\xa6\x88\xd4\x61\x0f\x6b\xc5\x5f\xc6\x4e\x49\x76\xca\x6e\xa2\x8b\xe3\x8b\xae\x8c\x0a\x8b\xd1\x5f\x02\x7f\xfc\x7f\xcc\x7e\xce\x83\x35\x83\x6b\x56\xe0\x6b\xb7\x97\xf3\x96\x34\x59\xfb\x54\x1f\x94\xf6\x6d\xeb\x5b\xc5\x99\x6e\x5c\x39\x5f\x15\x96\x90\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x70\x82\xf1\x6a\x31\x5a\x74\x9e\x70\x5e\x94\x7f\x28\x83\xb9\x84\x24\x84\x25\x83\x67\x87\x47\x8f\xce\x8d\x62\x76\xc8\x5f\x71\x98\x96\x78\x6c\x66\x20\x54\xdf\x62\xe5\x4f\x63\x81\xc3\x75\xc8\x5e\xb8\x96\xcd\x8e\x0a\x86\xf9\x54\x8f\x6c\xf3\x6d\x8c\x6c\x38\x60\x7f\x52\xc7\x75\x28\x5e\x7d\x4f\x18\x60\xa0\x5f\xe7\x5c\x24\x75\x31\x90\xae\x94\xc0\x72\xb9\x6c\xb9\x6e\x38\x91\x49\x67\x09\x53\xcb\x53\xf3\x4f\x51\x91\xc9\x8b\xf1\x53\xc8\x5e\x7c\x8f\xc2\x6d\xe4\x4e\x8e\x76\xc2\x69\x86\x86\x5e\x61\x1a\x82\x06", /* 5a80 */ "\x00\x00\x4f\x59\x4f\xde\x90\x3e\x9c\x7c\x61\x09\x6e\x1d\x6e\x14\x96\x85\x4e\x88\x5a\x31\x96\xe8\x4e\x0e\x5c\x7f\x79\xb9\x5b\x87\x8b\xed\x7f\xbd\x73\x89\x57\xdf\x82\x8b\x90\xc1\x54\x01\x90\x47\x55\xbb\x5c\xea\x5f\xa1\x61\x08\x6b\x32\x72\xf1\x80\xb2\x8a\x89\x6d\x74\x5b\xd3\x88\xd5\x98\x84\x8c\x6b\x9a\x6d\x9e\x33\x6e\x0a\x51\xa4\x51\x43\x57\xa3\x88\x81\x53\x9f\x63\xf4\x8f\x95\x56\xed\x54\x58\x57\x06\x73\x3f\x6e\x90\x7f\x18\x8f\xdc\x82\xd1\x61\x3f\x60\x28\x96\x62\x66\xf0\x7e\xa6\x8d\x8a\x8d\xc3\x94\xa5\x5c\xb3\x7c\xa4\x67\x08\x60\xa6\x96\x05\x80\x18\x4e\x91\x90\xe7\x53\x00\x96\x68\x51\x41\x8f\xd0\x85\x74\x91\x5d\x66\x55\x97\xf5\x5b\x55\x53\x1d\x78\x38\x67\x42\x68\x3d\x54\xc9\x70\x7e\x5b\xb0\x8f\x7d\x51\x8d\x57\x28\x54\xb1\x65\x12\x66\x82\x8d\x5e\x8d\x43\x81\x0f\x84\x6c\x90\x6d\x7c\xdf\x51\xff\x85\xfb\x67\xa3\x65\xe9\x6f\xa1\x86\xa4\x8e\x81\x56\x6a\x90\x20\x76\x82\x70\x76\x71\xe5\x8d\x23\x62\xe9\x52\x19\x6c\xfd\x8d\x3c\x60\x0e\x58\x9e\x61\x8e\x66\xfe\x8d\x60\x62\x4e\x55\xb3\x6e\x23\x67\x2d\x8f\x67\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe1\x95\xf8\x77\x28\x68\x05\x69\xa8\x54\x8b\x4e\x4d\x70\xb8\x8b\xc8\x64\x58\x65\x8b\x5b\x85\x7a\x84\x50\x3a\x5b\xe8\x77\xbb\x6b\xe1\x8a\x79\x7c\x98\x6c\xbe\x76\xcf\x65\xa9\x8f\x97\x5d\x2d\x5c\x55\x86\x38\x68\x08\x53\x60\x62\x18\x7a\xd9\x6e\x5b\x7e\xfd\x6a\x1f\x7a\xe0\x5f\x70\x6f\x33\x5f\x20\x63\x8c\x6d\xa8\x67\x56\x4e\x08\x5e\x10\x8d\x26\x4e\xd7\x80\xc0\x76\x34\x96\x9c\x62\xdb\x66\x2d\x62\x7e\x6c\xbc\x8d\x75\x71\x67\x7f\x69\x51\x46\x80\x87\x53\xec\x90\x6e\x62\x98\x54\xf2\x86\xf0\x8f\x99\x80\x05", /* 5b80 */ "\x00\x00\x95\x17\x85\x17\x8f\xd9\x6d\x59\x73\xcd\x65\x9f\x77\x1f\x75\x04\x78\x27\x81\xfb\x8d\x1e\x94\x88\x4f\xa6\x67\x95\x75\xb9\x8b\xca\x97\x07\x63\x2f\x95\x47\x96\x35\x84\xb8\x63\x23\x77\x41\x5f\x81\x72\xf0\x4e\x89\x60\x14\x65\x74\x62\xef\x6b\x63\x65\x3f\x5e\x27\x75\xc7\x90\xd1\x8b\xc1\x82\x9d\x67\x9d\x65\x2f\x54\x31\x87\x18\x77\xe5\x80\xa2\x81\x02\x6c\x41\x4e\x4b\x7e\xc7\x80\x4c\x76\xf4\x69\x0d\x6b\x96\x62\x67\x50\x3c\x4f\x84\x57\x40\x63\x07\x6b\x62\x8d\xbe\x53\xea\x65\xe8\x7e\xb8\x5f\xd7\x63\x1a\x63\xb7\x81\xf3\x81\xf4\x7f\x6e\x5e\x1c\x5c\xd9\x52\x36\x66\x7a\x79\xe9\x7a\x1a\x8d\x28\x70\x99\x75\xd4\x6e\xde\x6c\xbb\x7a\x92\x4e\x2d\x76\xc5\x5f\xe0\x94\x9f\x88\x77\x7e\xc8\x79\xcd\x80\xbf\x91\xcd\x4e\xf2\x4f\x17\x82\x1f\x54\x68\x5d\xde\x6d\x32\x8b\xcc\x7c\xa5\x8f\x74\x80\x98\x5e\x1a\x54\x92\x76\xb1\x5b\x99\x66\x3c\x9a\xa4\x73\xe0\x68\x2a\x86\xdb\x67\x31\x73\x2a\x8b\xf8\x8b\xdb\x90\x10\x7a\xf9\x70\xdb\x71\x6e\x62\xc4\x77\xa9\x56\x31\x4e\x3b\x84\x57\x67\xf1\x52\xa9\x86\xc0\x8d\x2e\x94\xf8\x7b\x51\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x4f\x6c\xe8\x79\x5d\x9a\x7b\x62\x93\x72\x2a\x62\xfd\x4e\x13\x78\x16\x8f\x6c\x64\xb0\x8d\x5a\x7b\xc6\x68\x69\x5e\x84\x88\xc5\x59\x86\x64\x9e\x58\xee\x72\xb6\x69\x0e\x95\x25\x8f\xfd\x8d\x58\x57\x60\x7f\x00\x8c\x06\x51\xc6\x63\x49\x62\xd9\x53\x53\x68\x4c\x74\x22\x83\x01\x91\x4c\x55\x44\x77\x40\x70\x7c\x6d\x4a\x51\x79\x54\xa8\x8d\x44\x59\xff\x6e\xcb\x6d\xc4\x5b\x5c\x7d\x2b\x4e\xd4\x7c\x7d\x6e\xd3\x5b\x50\x81\xea\x6e\x0d\x5b\x57\x9b\x03\x68\xd5\x8e\x2a\x5b\x97\x7e\xfc\x60\x3b\x7e\xb5\x90\xb9\x8d\x70", /* 5c80 */ "\x00\x00\x59\x4f\x63\xcd\x79\xdf\x8d\xb3\x53\x52\x65\xcf\x79\x56\x8b\xc5\x96\x3b\x7e\xc4\x94\xbb\x7e\x82\x56\x34\x91\x89\x67\x00\x7f\x6a\x5c\x0a\x90\x75\x66\x28\x5d\xe6\x4f\x50\x67\xde\x50\x5a\x4f\x5c\x57\x50\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8d\x4e\x0c\x51\x40\x4e\x10\x5e\xff\x53\x45\x4e\x15\x4e\x98\x4e\x1e\x9b\x32\x5b\x6c\x56\x69\x4e\x28\x79\xba\x4e\x3f\x53\x15\x4e\x47\x59\x2d\x72\x3b\x53\x6e\x6c\x10\x56\xdf\x80\xe4\x99\x97\x6b\xd3\x77\x7e\x9f\x17\x4e\x36\x4e\x9f\x9f\x10\x4e\x5c\x4e\x69\x4e\x93\x82\x88\x5b\x5b\x55\x6c\x56\x0f\x4e\xc4\x53\x8d\x53\x9d\x53\xa3\x53\xa5\x53\xae\x97\x65\x8d\x5d\x53\x1a\x53\xf5\x53\x26\x53\x2e\x53\x3e\x8d\x5c\x53\x66\x53\x63\x52\x02\x52\x08\x52\x0e\x52\x2d\x52\x33\x52\x3f\x52\x40\x52\x4c\x52\x5e\x52\x61\x52\x5c\x84\xaf\x52\x7d\x52\x82\x52\x81\x52\x90\x52\x93\x51\x82\x7f\x54\x4e\xbb\x4e\xc3\x4e\xc9\x4e\xc2\x4e\xe8\x4e\xe1\x4e\xeb\x4e\xde\x4f\x1b\x4e\xf3\x4f\x22\x4f\x64\x4e\xf5\x4f\x25\x4f\x27\x4f\x09\x4f\x2b\x4f\x5e\x4f\x67\x65\x38\x4f\x5a\x4f\x5d\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x5f\x4f\x57\x4f\x32\x4f\x3d\x4f\x76\x4f\x74\x4f\x91\x4f\x89\x4f\x83\x4f\x8f\x4f\x7e\x4f\x7b\x4f\xaa\x4f\x7c\x4f\xac\x4f\x94\x4f\xe6\x4f\xe8\x4f\xea\x4f\xc5\x4f\xda\x4f\xe3\x4f\xdc\x4f\xd1\x4f\xdf\x4f\xf8\x50\x29\x50\x4c\x4f\xf3\x50\x2c\x50\x0f\x50\x2e\x50\x2d\x4f\xfe\x50\x1c\x50\x0c\x50\x25\x50\x28\x50\x7e\x50\x43\x50\x55\x50\x48\x50\x4e\x50\x6c\x50\x7b\x50\xa5\x50\xa7\x50\xa9\x50\xba\x50\xd6\x51\x06\x50\xed\x50\xec\x50\xe6\x50\xee\x51\x07\x51\x0b\x4e\xdd\x6c\x3d\x4f\x58\x4f\x65\x4f\xce\x9f\xa0", /* 5d80 */ "\x00\x00\x6c\x46\x7c\x74\x51\x6e\x5d\xfd\x9e\xc9\x99\x98\x51\x81\x59\x14\x52\xf9\x53\x0d\x8a\x07\x53\x10\x51\xeb\x59\x19\x51\x55\x4e\xa0\x51\x56\x4e\xb3\x88\x6e\x88\xa4\x4e\xb5\x81\x14\x88\xd2\x79\x80\x5b\x34\x88\x03\x7f\xb8\x51\xab\x51\xb1\x51\xbd\x51\xbc\x51\xc7\x51\x96\x51\xa2\x51\xa5\x8b\xa0\x8b\xa6\x8b\xa7\x8b\xaa\x8b\xb4\x8b\xb5\x8b\xb7\x8b\xc2\x8b\xc3\x8b\xcb\x8b\xcf\x8b\xce\x8b\xd2\x8b\xd3\x8b\xd4\x8b\xd6\x8b\xd8\x8b\xd9\x8b\xdc\x8b\xdf\x8b\xe0\x8b\xe4\x8b\xe8\x8b\xe9\x8b\xee\x8b\xf0\x8b\xf3\x8b\xf6\x8b\xf9\x8b\xfc\x8b\xff\x8c\x00\x8c\x02\x8c\x04\x8c\x07\x8c\x0c\x8c\x0f\x8c\x11\x8c\x12\x8c\x14\x8c\x15\x8c\x16\x8c\x19\x8c\x1b\x8c\x18\x8c\x1d\x8c\x1f\x8c\x20\x8c\x21\x8c\x25\x8c\x27\x8c\x2a\x8c\x2b\x8c\x2e\x8c\x2f\x8c\x32\x8c\x33\x8c\x35\x8c\x36\x53\x69\x53\x7a\x96\x1d\x96\x22\x96\x21\x96\x31\x96\x2a\x96\x3d\x96\x3c\x96\x42\x96\x49\x96\x54\x96\x5f\x96\x67\x96\x6c\x96\x72\x96\x74\x96\x88\x96\x8d\x96\x97\x96\xb0\x90\x97\x90\x9b\x90\x9d\x90\x99\x90\xac\x90\xa1\x90\xb4\x90\xb3\x90\xb6\x90\xba\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xb8\x90\xb0\x90\xcf\x90\xc5\x90\xbe\x90\xd0\x90\xc4\x90\xc7\x90\xd3\x90\xe6\x90\xe2\x90\xdc\x90\xd7\x90\xdb\x90\xeb\x90\xef\x90\xfe\x91\x04\x91\x22\x91\x1e\x91\x23\x91\x31\x91\x2f\x91\x39\x91\x43\x91\x46\x52\x0d\x59\x42\x52\xa2\x52\xac\x52\xad\x52\xbe\x54\xff\x52\xd0\x52\xd6\x52\xf0\x53\xdf\x71\xee\x77\xcd\x5e\xf4\x51\xf5\x51\xfc\x9b\x2f\x53\xb6\x5f\x01\x75\x5a\x5d\xef\x57\x4c\x57\xa9\x57\xa1\x58\x7e\x58\xbc\x58\xc5\x58\xd1\x57\x29\x57\x2c\x57\x2a\x57\x33\x57\x39\x57\x2e\x57\x2f\x57\x5c\x57\x3b", /* 5e80 */ "\x00\x00\x57\x42\x57\x69\x57\x85\x57\x6b\x57\x86\x57\x7c\x57\x7b\x57\x68\x57\x6d\x57\x76\x57\x73\x57\xad\x57\xa4\x57\x8c\x57\xb2\x57\xcf\x57\xa7\x57\xb4\x57\x93\x57\xa0\x57\xd5\x57\xd8\x57\xda\x57\xd9\x57\xd2\x57\xb8\x57\xf4\x57\xef\x57\xf8\x57\xe4\x57\xdd\x58\x0b\x58\x0d\x57\xfd\x57\xed\x58\x00\x58\x1e\x58\x19\x58\x44\x58\x20\x58\x65\x58\x6c\x58\x81\x58\x89\x58\x9a\x58\x80\x99\xa8\x9f\x19\x61\xff\x82\x79\x82\x7d\x82\x7f\x82\x8f\x82\x8a\x82\xa8\x82\x84\x82\x8e\x82\x91\x82\x97\x82\x99\x82\xab\x82\xb8\x82\xbe\x82\xb0\x82\xc8\x82\xca\x82\xe3\x82\x98\x82\xb7\x82\xae\x82\xcb\x82\xcc\x82\xc1\x82\xa9\x82\xb4\x82\xa1\x82\xaa\x82\x9f\x82\xc4\x82\xce\x82\xa4\x82\xe1\x83\x09\x82\xf7\x82\xe4\x83\x0f\x83\x07\x82\xdc\x82\xf4\x82\xd2\x82\xd8\x83\x0c\x82\xfb\x82\xd3\x83\x11\x83\x1a\x83\x06\x83\x14\x83\x15\x82\xe0\x82\xd5\x83\x1c\x83\x51\x83\x5b\x83\x5c\x83\x08\x83\x92\x83\x3c\x83\x34\x83\x31\x83\x9b\x83\x5e\x83\x2f\x83\x4f\x83\x47\x83\x43\x83\x5f\x83\x40\x83\x17\x83\x60\x83\x2d\x83\x3a\x83\x33\x83\x66\x83\x65\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x68\x83\x1b\x83\x69\x83\x6c\x83\x6a\x83\x6d\x83\x6e\x83\xb0\x83\x78\x83\xb3\x83\xb4\x83\xa0\x83\xaa\x83\x93\x83\x9c\x83\x85\x83\x7c\x83\xb6\x83\xa9\x83\x7d\x83\xb8\x83\x7b\x83\x98\x83\x9e\x83\xa8\x83\xba\x83\xbc\x83\xc1\x84\x01\x83\xe5\x83\xd8\x58\x07\x84\x18\x84\x0b\x83\xdd\x83\xfd\x83\xd6\x84\x1c\x84\x38\x84\x11\x84\x06\x83\xd4\x83\xdf\x84\x0f\x84\x03\x83\xf8\x83\xf9\x83\xea\x83\xc5\x83\xc0\x84\x26\x83\xf0\x83\xe1\x84\x5c\x84\x51\x84\x5a\x84\x59\x84\x73\x84\x87\x84\x88\x84\x7a\x84\x89\x84\x78", /* 5f80 */ "\x00\x00\x84\x3c\x84\x46\x84\x69\x84\x76\x84\x8c\x84\x8e\x84\x31\x84\x6d\x84\xc1\x84\xcd\x84\xd0\x84\xe6\x84\xbd\x84\xd3\x84\xca\x84\xbf\x84\xba\x84\xe0\x84\xa1\x84\xb9\x84\xb4\x84\x97\x84\xe5\x84\xe3\x85\x0c\x75\x0d\x85\x38\x84\xf0\x85\x39\x85\x1f\x85\x3a\x85\x56\x85\x3b\x84\xff\x84\xfc\x85\x59\x85\x48\x85\x68\x85\x64\x85\x5e\x85\x7a\x77\xa2\x85\x43\x85\x72\x85\x7b\x85\xa4\x85\xa8\x85\x87\x85\x8f\x85\x79\x85\xae\x85\x9c\x85\x85\x85\xb9\x85\xb7\x85\xb0\x85\xd3\x85\xc1\x85\xdc\x85\xff\x86\x27\x86\x05\x86\x29\x86\x16\x86\x3c\x5e\xfe\x5f\x08\x59\x3c\x59\x41\x80\x37\x59\x55\x59\x5a\x59\x58\x53\x0f\x5c\x22\x5c\x25\x5c\x2c\x5c\x34\x62\x4c\x62\x6a\x62\x9f\x62\xbb\x62\xca\x62\xda\x62\xd7\x62\xee\x63\x22\x62\xf6\x63\x39\x63\x4b\x63\x43\x63\xad\x63\xf6\x63\x71\x63\x7a\x63\x8e\x63\xb4\x63\x6d\x63\xac\x63\x8a\x63\x69\x63\xae\x63\xbc\x63\xf2\x63\xf8\x63\xe0\x63\xff\x63\xc4\x63\xde\x63\xce\x64\x52\x63\xc6\x63\xbe\x64\x45\x64\x41\x64\x0b\x64\x1b\x64\x20\x64\x0c\x64\x26\x64\x21\x64\x5e\x64\x84\x64\x6d\x64\x96\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7a\x64\xb7\x64\xb8\x64\x99\x64\xba\x64\xc0\x64\xd0\x64\xd7\x64\xe4\x64\xe2\x65\x09\x65\x25\x65\x2e\x5f\x0b\x5f\xd2\x75\x19\x5f\x11\x53\x5f\x53\xf1\x53\xfd\x53\xe9\x53\xe8\x53\xfb\x54\x12\x54\x16\x54\x06\x54\x4b\x54\x52\x54\x53\x54\x54\x54\x56\x54\x43\x54\x21\x54\x57\x54\x59\x54\x23\x54\x32\x54\x82\x54\x94\x54\x77\x54\x71\x54\x64\x54\x9a\x54\x9b\x54\x84\x54\x76\x54\x66\x54\x9d\x54\xd0\x54\xad\x54\xc2\x54\xb4\x54\xd2\x54\xa7\x54\xa6\x54\xd3\x54\xd4\x54\x72\x54\xa3\x54\xd5\x54\xbb\x54\xbf\x54\xcc", /* 6080 */ "\x00\x00\x54\xd9\x54\xda\x54\xdc\x54\xa9\x54\xaa\x54\xa4\x54\xdd\x54\xcf\x54\xde\x55\x1b\x54\xe7\x55\x20\x54\xfd\x55\x14\x54\xf3\x55\x22\x55\x23\x55\x0f\x55\x11\x55\x27\x55\x2a\x55\x67\x55\x8f\x55\xb5\x55\x49\x55\x6d\x55\x41\x55\x55\x55\x3f\x55\x50\x55\x3c\x55\x37\x55\x56\x55\x75\x55\x76\x55\x77\x55\x33\x55\x30\x55\x5c\x55\x8b\x55\xd2\x55\x83\x55\xb1\x55\xb9\x55\x88\x55\x81\x55\x9f\x55\x7e\x55\xd6\x55\x91\x55\x7b\x55\xdf\x55\xbd\x55\xbe\x55\x94\x55\x99\x55\xea\x55\xf7\x55\xc9\x56\x1f\x55\xd1\x55\xeb\x55\xec\x55\xd4\x55\xe6\x55\xdd\x55\xc4\x55\xef\x55\xe5\x55\xf2\x55\xf3\x55\xcc\x55\xcd\x55\xe8\x55\xf5\x55\xe4\x8f\x94\x56\x1e\x56\x08\x56\x0c\x56\x01\x56\x24\x56\x23\x55\xfe\x56\x00\x56\x27\x56\x2d\x56\x58\x56\x39\x56\x57\x56\x2c\x56\x4d\x56\x62\x56\x59\x56\x5c\x56\x4c\x56\x54\x56\x86\x56\x64\x56\x71\x56\x6b\x56\x7b\x56\x7c\x56\x85\x56\x93\x56\xaf\x56\xd4\x56\xd7\x56\xdd\x56\xe1\x56\xf5\x56\xeb\x56\xf9\x56\xff\x57\x04\x57\x0a\x57\x09\x57\x1c\x5e\x0f\x5e\x19\x5e\x14\x5e\x11\x5e\x31\x5e\x3b\x5e\x3c\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x37\x5e\x44\x5e\x54\x5e\x5b\x5e\x5e\x5e\x61\x5c\x8c\x5c\x7a\x5c\x8d\x5c\x90\x5c\x96\x5c\x88\x5c\x98\x5c\x99\x5c\x91\x5c\x9a\x5c\x9c\x5c\xb5\x5c\xa2\x5c\xbd\x5c\xac\x5c\xab\x5c\xb1\x5c\xa3\x5c\xc1\x5c\xb7\x5c\xc4\x5c\xd2\x5c\xe4\x5c\xcb\x5c\xe5\x5d\x02\x5d\x03\x5d\x27\x5d\x26\x5d\x2e\x5d\x24\x5d\x1e\x5d\x06\x5d\x1b\x5d\x58\x5d\x3e\x5d\x34\x5d\x3d\x5d\x6c\x5d\x5b\x5d\x6f\x5d\x5d\x5d\x6b\x5d\x4b\x5d\x4a\x5d\x69\x5d\x74\x5d\x82\x5d\x99\x5d\x9d\x8c\x73\x5d\xb7\x5d\xc5\x5f\x73\x5f\x77\x5f\x82\x5f\x87", /* 6180 */ "\x00\x00\x5f\x89\x5f\x8c\x5f\x95\x5f\x99\x5f\x9c\x5f\xa8\x5f\xad\x5f\xb5\x5f\xbc\x88\x62\x5f\x61\x72\xad\x72\xb0\x72\xb4\x72\xb7\x72\xb8\x72\xc3\x72\xc1\x72\xce\x72\xcd\x72\xd2\x72\xe8\x72\xef\x72\xe9\x72\xf2\x72\xf4\x72\xf7\x73\x01\x72\xf3\x73\x03\x72\xfa\x72\xfb\x73\x17\x73\x13\x73\x21\x73\x0a\x73\x1e\x73\x1d\x73\x15\x73\x22\x73\x39\x73\x25\x73\x2c\x73\x38\x73\x31\x73\x50\x73\x4d\x73\x57\x73\x60\x73\x6c\x73\x6f\x73\x7e\x82\x1b\x59\x25\x98\xe7\x59\x24\x59\x02\x99\x63\x99\x67\x99\x68\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x74\x99\x77\x99\x7d\x99\x80\x99\x84\x99\x87\x99\x8a\x99\x8d\x99\x90\x99\x91\x99\x93\x99\x94\x99\x95\x5e\x80\x5e\x91\x5e\x8b\x5e\x96\x5e\xa5\x5e\xa0\x5e\xb9\x5e\xb5\x5e\xbe\x5e\xb3\x8d\x53\x5e\xd2\x5e\xd1\x5e\xdb\x5e\xe8\x5e\xea\x81\xba\x5f\xc4\x5f\xc9\x5f\xd6\x5f\xcf\x60\x03\x5f\xee\x60\x04\x5f\xe1\x5f\xe4\x5f\xfe\x60\x05\x60\x06\x5f\xea\x5f\xed\x5f\xf8\x60\x19\x60\x35\x60\x26\x60\x1b\x60\x0f\x60\x0d\x60\x29\x60\x2b\x60\x0a\x60\x3f\x60\x21\x60\x78\x60\x79\x60\x7b\x60\x7a\x60\x42\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6a\x60\x7d\x60\x96\x60\x9a\x60\xad\x60\x9d\x60\x83\x60\x92\x60\x8c\x60\x9b\x60\xec\x60\xbb\x60\xb1\x60\xdd\x60\xd8\x60\xc6\x60\xda\x60\xb4\x61\x20\x61\x26\x61\x15\x61\x23\x60\xf4\x61\x00\x61\x0e\x61\x2b\x61\x4a\x61\x75\x61\xac\x61\x94\x61\xa7\x61\xb7\x61\xd4\x61\xf5\x5f\xdd\x96\xb3\x95\xe9\x95\xeb\x95\xf1\x95\xf3\x95\xf5\x95\xf6\x95\xfc\x95\xfe\x96\x03\x96\x04\x96\x06\x96\x08\x96\x0a\x96\x0b\x96\x0c\x96\x0d\x96\x0f\x96\x12\x96\x15\x96\x16\x96\x17\x96\x19\x96\x1a\x4e\x2c\x72\x3f\x62\x15\x6c\x35", /* 6280 */ "\x00\x00\x6c\x54\x6c\x5c\x6c\x4a\x6c\xa3\x6c\x85\x6c\x90\x6c\x94\x6c\x8c\x6c\x68\x6c\x69\x6c\x74\x6c\x76\x6c\x86\x6c\xa9\x6c\xd0\x6c\xd4\x6c\xad\x6c\xf7\x6c\xf8\x6c\xf1\x6c\xd7\x6c\xb2\x6c\xe0\x6c\xd6\x6c\xfa\x6c\xeb\x6c\xee\x6c\xb1\x6c\xd3\x6c\xef\x6c\xfe\x6d\x39\x6d\x27\x6d\x0c\x6d\x43\x6d\x48\x6d\x07\x6d\x04\x6d\x19\x6d\x0e\x6d\x2b\x6d\x4d\x6d\x2e\x6d\x35\x6d\x1a\x6d\x4f\x6d\x52\x6d\x54\x6d\x33\x6d\x91\x6d\x6f\x6d\x9e\x6d\xa0\x6d\x5e\x6d\x93\x6d\x94\x6d\x5c\x6d\x60\x6d\x7c\x6d\x63\x6e\x1a\x6d\xc7\x6d\xc5\x6d\xde\x6e\x0e\x6d\xbf\x6d\xe0\x6e\x11\x6d\xe6\x6d\xdd\x6d\xd9\x6e\x16\x6d\xab\x6e\x0c\x6d\xae\x6e\x2b\x6e\x6e\x6e\x4e\x6e\x6b\x6e\xb2\x6e\x5f\x6e\x86\x6e\x53\x6e\x54\x6e\x32\x6e\x25\x6e\x44\x6e\xdf\x6e\xb1\x6e\x98\x6e\xe0\x6f\x2d\x6e\xe2\x6e\xa5\x6e\xa7\x6e\xbd\x6e\xbb\x6e\xb7\x6e\xd7\x6e\xb4\x6e\xcf\x6e\x8f\x6e\xc2\x6e\x9f\x6f\x62\x6f\x46\x6f\x47\x6f\x24\x6f\x15\x6e\xf9\x6f\x2f\x6f\x36\x6f\x4b\x6f\x74\x6f\x2a\x6f\x09\x6f\x29\x6f\x89\x6f\x8d\x6f\x8c\x6f\x78\x6f\x72\x6f\x7c\x6f\x7a\x6f\xd1\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xc9\x6f\xa7\x6f\xb9\x6f\xb6\x6f\xc2\x6f\xe1\x6f\xee\x6f\xde\x6f\xe0\x6f\xef\x70\x1a\x70\x23\x70\x1b\x70\x39\x70\x35\x70\x4f\x70\x5e\x5b\x80\x5b\x84\x5b\x95\x5b\x93\x5b\xa5\x5b\xb8\x75\x2f\x9a\x9e\x64\x34\x5b\xe4\x5b\xee\x89\x30\x5b\xf0\x8e\x47\x8b\x07\x8f\xb6\x8f\xd3\x8f\xd5\x8f\xe5\x8f\xee\x8f\xe4\x8f\xe9\x8f\xe6\x8f\xf3\x8f\xe8\x90\x05\x90\x04\x90\x0b\x90\x26\x90\x11\x90\x0d\x90\x16\x90\x21\x90\x35\x90\x36\x90\x2d\x90\x2f\x90\x44\x90\x51\x90\x52\x90\x50\x90\x68\x90\x58\x90\x62\x90\x5b\x66\xb9", /* 6380 */ "\x00\x00\x90\x74\x90\x7d\x90\x82\x90\x88\x90\x83\x90\x8b\x5f\x50\x5f\x57\x5f\x56\x5f\x58\x5c\x3b\x54\xab\x5c\x50\x5c\x59\x5b\x71\x5c\x63\x5c\x66\x7f\xbc\x5f\x2a\x5f\x29\x5f\x2d\x82\x74\x5f\x3c\x9b\x3b\x5c\x6e\x59\x81\x59\x83\x59\x8d\x59\xa9\x59\xaa\x59\xa3\x59\x97\x59\xca\x59\xab\x59\x9e\x59\xa4\x59\xd2\x59\xb2\x59\xaf\x59\xd7\x59\xbe\x5a\x05\x5a\x06\x59\xdd\x5a\x08\x59\xe3\x59\xd8\x59\xf9\x5a\x0c\x5a\x09\x5a\x32\x5a\x34\x5a\x11\x5a\x23\x5a\x13\x5a\x40\x5a\x67\x5a\x4a\x5a\x55\x5a\x3c\x5a\x62\x5a\x75\x80\xec\x5a\xaa\x5a\x9b\x5a\x77\x5a\x7a\x5a\xbe\x5a\xeb\x5a\xb2\x5a\xd2\x5a\xd4\x5a\xb8\x5a\xe0\x5a\xe3\x5a\xf1\x5a\xd6\x5a\xe6\x5a\xd8\x5a\xdc\x5b\x09\x5b\x17\x5b\x16\x5b\x32\x5b\x37\x5b\x40\x5c\x15\x5c\x1c\x5b\x5a\x5b\x65\x5b\x73\x5b\x51\x5b\x53\x5b\x62\x9a\x75\x9a\x77\x9a\x78\x9a\x7a\x9a\x7f\x9a\x7d\x9a\x80\x9a\x81\x9a\x85\x9a\x88\x9a\x8a\x9a\x90\x9a\x92\x9a\x93\x9a\x96\x9a\x98\x9a\x9b\x9a\x9c\x9a\x9d\x9a\x9f\x9a\xa0\x9a\xa2\x9a\xa3\x9a\xa5\x9a\xa7\x7e\x9f\x7e\xa1\x7e\xa3\x7e\xa5\x7e\xa8\x7e\xa9\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xad\x7e\xb0\x7e\xbe\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc9\x7e\xcb\x7e\xcc\x7e\xd0\x7e\xd4\x7e\xd7\x7e\xdb\x7e\xe0\x7e\xe1\x7e\xe8\x7e\xeb\x7e\xee\x7e\xef\x7e\xf1\x7e\xf2\x7f\x0d\x7e\xf6\x7e\xfa\x7e\xfb\x7e\xfe\x7f\x01\x7f\x02\x7f\x03\x7f\x07\x7f\x08\x7f\x0b\x7f\x0c\x7f\x0f\x7f\x11\x7f\x12\x7f\x17\x7f\x19\x7f\x1c\x7f\x1b\x7f\x1f\x7f\x21\x7f\x22\x7f\x23\x7f\x24\x7f\x25\x7f\x26\x7f\x27\x7f\x2a\x7f\x2b\x7f\x2c\x7f\x2d\x7f\x2f\x7f\x30\x7f\x31\x7f\x32\x7f\x33\x7f\x35\x5e\x7a\x75\x7f\x5d\xdb\x75\x3e\x90\x95", /* 6480 */ "\x00\x00\x73\x8e\x73\x91\x73\xae\x73\xa2\x73\x9f\x73\xcf\x73\xc2\x73\xd1\x73\xb7\x73\xb3\x73\xc0\x73\xc9\x73\xc8\x73\xe5\x73\xd9\x98\x7c\x74\x0a\x73\xe9\x73\xe7\x73\xde\x73\xba\x73\xf2\x74\x0f\x74\x2a\x74\x5b\x74\x26\x74\x25\x74\x28\x74\x30\x74\x2e\x74\x2c\x74\x1b\x74\x1a\x74\x41\x74\x5c\x74\x57\x74\x55\x74\x59\x74\x77\x74\x6d\x74\x7e\x74\x9c\x74\x8e\x74\x80\x74\x81\x74\x87\x74\x8b\x74\x9e\x74\xa8\x74\xa9\x74\x90\x74\xa7\x74\xd2\x74\xba\x97\xea\x97\xeb\x97\xec\x67\x4c\x67\x53\x67\x5e\x67\x48\x67\x69\x67\xa5\x67\x87\x67\x6a\x67\x73\x67\x98\x67\xa7\x67\x75\x67\xa8\x67\x9e\x67\xad\x67\x8b\x67\x77\x67\x7c\x67\xf0\x68\x09\x67\xd8\x68\x0a\x67\xe9\x67\xb0\x68\x0c\x67\xd9\x67\xb5\x67\xda\x67\xb3\x67\xdd\x68\x00\x67\xc3\x67\xb8\x67\xe2\x68\x0e\x67\xc1\x67\xfd\x68\x32\x68\x33\x68\x60\x68\x61\x68\x4e\x68\x62\x68\x44\x68\x64\x68\x83\x68\x1d\x68\x55\x68\x66\x68\x41\x68\x67\x68\x40\x68\x3e\x68\x4a\x68\x49\x68\x29\x68\xb5\x68\x8f\x68\x74\x68\x77\x68\x93\x68\x6b\x68\xc2\x69\x6e\x68\xfc\x69\x1f\x69\x20\x68\xf9\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x24\x68\xf0\x69\x0b\x69\x01\x69\x57\x68\xe3\x69\x10\x69\x71\x69\x39\x69\x60\x69\x42\x69\x5d\x69\x84\x69\x6b\x69\x80\x69\x98\x69\x78\x69\x34\x69\xcc\x69\x87\x69\x88\x69\xce\x69\x89\x69\x66\x69\x63\x69\x79\x69\x9b\x69\xa7\x69\xbb\x69\xab\x69\xad\x69\xd4\x69\xb1\x69\xc1\x69\xca\x69\xdf\x69\x95\x69\xe0\x69\x8d\x69\xff\x6a\x2f\x69\xed\x6a\x17\x6a\x18\x6a\x65\x69\xf2\x6a\x44\x6a\x3e\x6a\xa0\x6a\x50\x6a\x5b\x6a\x35\x6a\x8e\x6a\x79\x6a\x3d\x6a\x28\x6a\x58\x6a\x7c\x6a\x91\x6a\x90\x6a\xa9\x6a\x97\x6a\xab", /* 6580 */ "\x00\x00\x73\x37\x73\x52\x6b\x81\x6b\x82\x6b\x87\x6b\x84\x6b\x92\x6b\x93\x6b\x8d\x6b\x9a\x6b\x9b\x6b\xa1\x6b\xaa\x8f\x6b\x8f\x6d\x8f\x71\x8f\x72\x8f\x73\x8f\x75\x8f\x76\x8f\x78\x8f\x77\x8f\x79\x8f\x7a\x8f\x7c\x8f\x7e\x8f\x81\x8f\x82\x8f\x84\x8f\x87\x8f\x8b\x8f\x8d\x8f\x8e\x8f\x8f\x8f\x98\x8f\x9a\x8e\xce\x62\x0b\x62\x17\x62\x1b\x62\x1f\x62\x22\x62\x21\x62\x25\x62\x24\x62\x2c\x81\xe7\x74\xef\x74\xf4\x74\xff\x75\x0f\x75\x11\x75\x13\x65\x34\x65\xee\x65\xef\x65\xf0\x66\x0a\x66\x19\x67\x72\x66\x03\x66\x15\x66\x00\x70\x85\x66\xf7\x66\x1d\x66\x34\x66\x31\x66\x36\x66\x35\x80\x06\x66\x5f\x66\x54\x66\x41\x66\x4f\x66\x56\x66\x61\x66\x57\x66\x77\x66\x84\x66\x8c\x66\xa7\x66\x9d\x66\xbe\x66\xdb\x66\xdc\x66\xe6\x66\xe9\x8d\x32\x8d\x33\x8d\x36\x8d\x3b\x8d\x3d\x8d\x40\x8d\x45\x8d\x46\x8d\x48\x8d\x49\x8d\x47\x8d\x4d\x8d\x55\x8d\x59\x89\xc7\x89\xca\x89\xcb\x89\xcc\x89\xce\x89\xcf\x89\xd0\x89\xd1\x72\x6e\x72\x9f\x72\x5d\x72\x66\x72\x6f\x72\x7e\x72\x7f\x72\x84\x72\x8b\x72\x8d\x72\x8f\x72\x92\x63\x08\x63\x32\x63\xb0\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x3f\x64\xd8\x80\x04\x6b\xea\x6b\xf3\x6b\xfd\x6b\xf5\x6b\xf9\x6c\x05\x6c\x07\x6c\x06\x6c\x0d\x6c\x15\x6c\x18\x6c\x19\x6c\x1a\x6c\x21\x6c\x29\x6c\x24\x6c\x2a\x6c\x32\x65\x35\x65\x55\x65\x6b\x72\x4d\x72\x52\x72\x56\x72\x30\x86\x62\x52\x16\x80\x9f\x80\x9c\x80\x93\x80\xbc\x67\x0a\x80\xbd\x80\xb1\x80\xab\x80\xad\x80\xb4\x80\xb7\x80\xe7\x80\xe8\x80\xe9\x80\xea\x80\xdb\x80\xc2\x80\xc4\x80\xd9\x80\xcd\x80\xd7\x67\x10\x80\xdd\x80\xeb\x80\xf1\x80\xf4\x80\xed\x81\x0d\x81\x0e\x80\xf2\x80\xfc\x67\x15\x81\x12", /* 6680 */ "\x00\x00\x8c\x5a\x81\x36\x81\x1e\x81\x2c\x81\x18\x81\x32\x81\x48\x81\x4c\x81\x53\x81\x74\x81\x59\x81\x5a\x81\x71\x81\x60\x81\x69\x81\x7c\x81\x7d\x81\x6d\x81\x67\x58\x4d\x5a\xb5\x81\x88\x81\x82\x81\x91\x6e\xd5\x81\xa3\x81\xaa\x81\xcc\x67\x26\x81\xca\x81\xbb\x81\xc1\x81\xa6\x6b\x24\x6b\x37\x6b\x39\x6b\x43\x6b\x46\x6b\x59\x98\xd1\x98\xd2\x98\xd3\x98\xd5\x98\xd9\x98\xda\x6b\xb3\x5f\x40\x6b\xc2\x89\xf3\x65\x90\x9f\x51\x65\x93\x65\xbc\x65\xc6\x65\xc4\x65\xc3\x65\xcc\x65\xce\x65\xd2\x65\xd6\x70\x80\x70\x9c\x70\x96\x70\x9d\x70\xbb\x70\xc0\x70\xb7\x70\xab\x70\xb1\x70\xe8\x70\xca\x71\x10\x71\x13\x71\x16\x71\x2f\x71\x31\x71\x73\x71\x5c\x71\x68\x71\x45\x71\x72\x71\x4a\x71\x78\x71\x7a\x71\x98\x71\xb3\x71\xb5\x71\xa8\x71\xa0\x71\xe0\x71\xd4\x71\xe7\x71\xf9\x72\x1d\x72\x28\x70\x6c\x71\x18\x71\x66\x71\xb9\x62\x3e\x62\x3d\x62\x43\x62\x48\x62\x49\x79\x3b\x79\x40\x79\x46\x79\x49\x79\x5b\x79\x5c\x79\x53\x79\x5a\x79\x62\x79\x57\x79\x60\x79\x6f\x79\x67\x79\x7a\x79\x85\x79\x8a\x79\x9a\x79\xa7\x79\xb3\x5f\xd1\x5f\xd0\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x3c\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\x59\x60\x63\x60\xab\x61\x06\x61\x0d\x61\x5d\x61\xa9\x61\x9d\x61\xcb\x61\xd1\x62\x06\x80\x80\x80\x7f\x6c\x93\x6c\xf6\x6d\xfc\x77\xf6\x77\xf8\x78\x00\x78\x09\x78\x17\x78\x18\x78\x11\x65\xab\x78\x2d\x78\x1c\x78\x1d\x78\x39\x78\x3a\x78\x3b\x78\x1f\x78\x3c\x78\x25\x78\x2c\x78\x23\x78\x29\x78\x4e\x78\x6d\x78\x56\x78\x57\x78\x26\x78\x50\x78\x47\x78\x4c\x78\x6a\x78\x9b\x78\x93\x78\x9a\x78\x87\x78\x9c\x78\xa1\x78\xa3\x78\xb2\x78\xb9\x78\xa5\x78\xd4\x78\xd9\x78\xc9", /* 6780 */ "\x00\x00\x78\xec\x78\xf2\x79\x05\x78\xf4\x79\x13\x79\x24\x79\x1e\x79\x34\x9f\x9b\x9e\xf9\x9e\xfb\x9e\xfc\x76\xf1\x77\x04\x77\x0d\x76\xf9\x77\x07\x77\x08\x77\x1a\x77\x22\x77\x19\x77\x2d\x77\x26\x77\x35\x77\x38\x77\x50\x77\x51\x77\x47\x77\x43\x77\x5a\x77\x68\x77\x62\x77\x65\x77\x7f\x77\x8d\x77\x7d\x77\x80\x77\x8c\x77\x91\x77\x9f\x77\xa0\x77\xb0\x77\xb5\x77\xbd\x75\x3a\x75\x40\x75\x4e\x75\x4b\x75\x48\x75\x5b\x75\x72\x75\x79\x75\x83\x7f\x58\x7f\x61\x7f\x5f\x8a\x48\x7f\x68\x7f\x74\x7f\x71\x7f\x79\x7f\x81\x7f\x7e\x76\xcd\x76\xe5\x88\x32\x94\x85\x94\x86\x94\x87\x94\x8b\x94\x8a\x94\x8c\x94\x8d\x94\x8f\x94\x90\x94\x94\x94\x97\x94\x95\x94\x9a\x94\x9b\x94\x9c\x94\xa3\x94\xa4\x94\xab\x94\xaa\x94\xad\x94\xac\x94\xaf\x94\xb0\x94\xb2\x94\xb4\x94\xb6\x94\xb7\x94\xb8\x94\xb9\x94\xba\x94\xbc\x94\xbd\x94\xbf\x94\xc4\x94\xc8\x94\xc9\x94\xca\x94\xcb\x94\xcc\x94\xcd\x94\xce\x94\xd0\x94\xd1\x94\xd2\x94\xd5\x94\xd6\x94\xd7\x94\xd9\x94\xd8\x94\xdb\x94\xde\x94\xdf\x94\xe0\x94\xe2\x94\xe4\x94\xe5\x94\xe7\x94\xe8\x94\xea\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe9\x94\xeb\x94\xee\x94\xef\x94\xf3\x94\xf4\x94\xf5\x94\xf7\x94\xf9\x94\xfc\x94\xfd\x94\xff\x95\x03\x95\x02\x95\x06\x95\x07\x95\x09\x95\x0a\x95\x0d\x95\x0e\x95\x0f\x95\x12\x95\x13\x95\x14\x95\x15\x95\x16\x95\x18\x95\x1b\x95\x1d\x95\x1e\x95\x1f\x95\x22\x95\x2a\x95\x2b\x95\x29\x95\x2c\x95\x31\x95\x32\x95\x34\x95\x36\x95\x37\x95\x38\x95\x3c\x95\x3e\x95\x3f\x95\x42\x95\x35\x95\x44\x95\x45\x95\x46\x95\x49\x95\x4c\x95\x4e\x95\x4f\x95\x52\x95\x53\x95\x54\x95\x56\x95\x57\x95\x58\x95\x59\x95\x5b\x95\x5e", /* 6880 */ "\x00\x00\x95\x5f\x95\x5d\x95\x61\x95\x62\x95\x64\x95\x65\x95\x66\x95\x67\x95\x68\x95\x69\x95\x6a\x95\x6b\x95\x6c\x95\x6f\x95\x71\x95\x72\x95\x73\x95\x3a\x77\xe7\x77\xec\x96\xc9\x79\xd5\x79\xed\x79\xe3\x79\xeb\x7a\x06\x5d\x47\x7a\x03\x7a\x02\x7a\x1e\x7a\x14\x7a\x39\x7a\x37\x7a\x51\x9e\xcf\x99\xa5\x7a\x70\x76\x88\x76\x8e\x76\x93\x76\x99\x76\xa4\x74\xde\x74\xe0\x75\x2c\x9e\x20\x9e\x22\x9e\x28\x9e\x29\x9e\x2a\x9e\x2b\x9e\x2c\x9e\x32\x9e\x31\x9e\x36\x9e\x38\x9e\x37\x9e\x39\x9e\x3a\x9e\x3e\x9e\x41\x9e\x42\x9e\x44\x9e\x46\x9e\x47\x9e\x48\x9e\x49\x9e\x4b\x9e\x4c\x9e\x4e\x9e\x51\x9e\x55\x9e\x57\x9e\x5a\x9e\x5b\x9e\x5c\x9e\x5e\x9e\x63\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x9e\x6b\x9e\x6c\x9e\x71\x9e\x6d\x9e\x73\x75\x92\x75\x94\x75\x96\x75\xa0\x75\x9d\x75\xac\x75\xa3\x75\xb3\x75\xb4\x75\xb8\x75\xc4\x75\xb1\x75\xb0\x75\xc3\x75\xc2\x75\xd6\x75\xcd\x75\xe3\x75\xe8\x75\xe6\x75\xe4\x75\xeb\x75\xe7\x76\x03\x75\xf1\x75\xfc\x75\xff\x76\x10\x76\x00\x76\x05\x76\x0c\x76\x17\x76\x0a\x76\x25\x76\x18\x76\x15\x76\x19\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x1b\x76\x3c\x76\x22\x76\x20\x76\x40\x76\x2d\x76\x30\x76\x3f\x76\x35\x76\x43\x76\x3e\x76\x33\x76\x4d\x76\x5e\x76\x54\x76\x5c\x76\x56\x76\x6b\x76\x6f\x7f\xca\x7a\xe6\x7a\x78\x7a\x79\x7a\x80\x7a\x86\x7a\x88\x7a\x95\x7a\xa6\x7a\xa0\x7a\xac\x7a\xa8\x7a\xad\x7a\xb3\x88\x64\x88\x69\x88\x72\x88\x7d\x88\x7f\x88\x82\x88\xa2\x88\xc6\x88\xb7\x88\xbc\x88\xc9\x88\xe2\x88\xce\x88\xe3\x88\xe5\x88\xf1\x89\x1a\x88\xfc\x88\xe8\x88\xfe\x88\xf0\x89\x21\x89\x19\x89\x13\x89\x1b\x89\x0a\x89\x34\x89\x2b\x89\x36\x89\x41", /* 6980 */ "\x00\x00\x89\x66\x89\x7b\x75\x8b\x80\xe5\x76\xb2\x76\xb4\x77\xdc\x80\x12\x80\x14\x80\x16\x80\x1c\x80\x20\x80\x22\x80\x25\x80\x26\x80\x27\x80\x29\x80\x28\x80\x31\x80\x0b\x80\x35\x80\x43\x80\x46\x80\x4d\x80\x52\x80\x69\x80\x71\x89\x83\x98\x78\x98\x80\x98\x83\x98\x89\x98\x8c\x98\x8d\x98\x8f\x98\x94\x98\x9a\x98\x9b\x98\x9e\x98\x9f\x98\xa1\x98\xa2\x98\xa5\x98\xa6\x86\x4d\x86\x54\x86\x6c\x86\x6e\x86\x7f\x86\x7a\x86\x7c\x86\x7b\x86\xa8\x86\x8d\x86\x8b\x86\xac\x86\x9d\x86\xa7\x86\xa3\x86\xaa\x86\x93\x86\xa9\x86\xb6\x86\xc4\x86\xb5\x86\xce\x86\xb0\x86\xba\x86\xb1\x86\xaf\x86\xc9\x86\xcf\x86\xb4\x86\xe9\x86\xf1\x86\xf2\x86\xed\x86\xf3\x86\xd0\x87\x13\x86\xde\x86\xf4\x86\xdf\x86\xd8\x86\xd1\x87\x03\x87\x07\x86\xf8\x87\x08\x87\x0a\x87\x0d\x87\x09\x87\x23\x87\x3b\x87\x1e\x87\x25\x87\x2e\x87\x1a\x87\x3e\x87\x48\x87\x34\x87\x31\x87\x29\x87\x37\x87\x3f\x87\x82\x87\x22\x87\x7d\x87\x7e\x87\x7b\x87\x60\x87\x70\x87\x4c\x87\x6e\x87\x8b\x87\x53\x87\x63\x87\x7c\x87\x64\x87\x59\x87\x65\x87\x93\x87\xaf\x87\xa8\x87\xd2\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xc6\x87\x88\x87\x85\x87\xad\x87\x97\x87\x83\x87\xab\x87\xe5\x87\xac\x87\xb5\x87\xb3\x87\xcb\x87\xd3\x87\xbd\x87\xd1\x87\xc0\x87\xca\x87\xdb\x87\xea\x87\xe0\x87\xee\x88\x16\x88\x13\x87\xfe\x88\x0a\x88\x1b\x88\x21\x88\x39\x88\x3c\x7f\x36\x7f\x42\x7f\x44\x7f\x45\x82\x10\x7a\xfa\x7a\xfd\x7b\x08\x7b\x03\x7b\x04\x7b\x15\x7b\x0a\x7b\x2b\x7b\x0f\x7b\x47\x7b\x38\x7b\x2a\x7b\x19\x7b\x2e\x7b\x31\x7b\x20\x7b\x25\x7b\x24\x7b\x33\x7b\x3e\x7b\x1e\x7b\x58\x7b\x5a\x7b\x45\x7b\x75\x7b\x4c\x7b\x5d\x7b\x60\x7b\x6e", /* 6a80 */ "\x00\x00\x7b\x7b\x7b\x62\x7b\x72\x7b\x71\x7b\x90\x7b\xa6\x7b\xa7\x7b\xb8\x7b\xac\x7b\x9d\x7b\xa8\x7b\x85\x7b\xaa\x7b\x9c\x7b\xa2\x7b\xab\x7b\xb4\x7b\xd1\x7b\xc1\x7b\xcc\x7b\xdd\x7b\xda\x7b\xe5\x7b\xe6\x7b\xea\x7c\x0c\x7b\xfe\x7b\xfc\x7c\x0f\x7c\x16\x7c\x0b\x7c\x1f\x7c\x2a\x7c\x26\x7c\x38\x7c\x41\x7c\x40\x81\xfe\x82\x01\x82\x02\x82\x04\x81\xec\x88\x44\x82\x21\x82\x22\x82\x23\x82\x2d\x82\x2f\x82\x28\x82\x2b\x82\x38\x82\x3b\x82\x33\x82\x34\x82\x3e\x82\x44\x82\x49\x82\x4b\x82\x4f\x82\x5a\x82\x5f\x82\x68\x88\x7e\x88\x85\x88\x88\x88\xd8\x88\xdf\x89\x5e\x7f\x9d\x7f\x9f\x7f\xa7\x7f\xaf\x7f\xb0\x7f\xb2\x7c\x7c\x65\x49\x7c\x91\x7c\x9d\x7c\x9c\x7c\x9e\x7c\xa2\x7c\xb2\x7c\xbc\x7c\xbd\x7c\xc1\x7c\xc7\x7c\xcc\x7c\xcd\x7c\xc8\x7c\xc5\x7c\xd7\x7c\xe8\x82\x6e\x66\xa8\x7f\xbf\x7f\xce\x7f\xd5\x7f\xe5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xee\x7f\xf3\x7c\xf8\x7d\x77\x7d\xa6\x7d\xae\x7e\x47\x7e\x9b\x9e\xb8\x9e\xb4\x8d\x73\x8d\x84\x8d\x94\x8d\x91\x8d\xb1\x8d\x67\x8d\x6d\x8c\x47\x8c\x49\x91\x4a\x91\x50\x91\x4e\x91\x4f\x91\x64\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x62\x91\x61\x91\x70\x91\x69\x91\x6f\x91\x7d\x91\x7e\x91\x72\x91\x74\x91\x79\x91\x8c\x91\x85\x91\x90\x91\x8d\x91\x91\x91\xa2\x91\xa3\x91\xaa\x91\xad\x91\xae\x91\xaf\x91\xb5\x91\xb4\x91\xba\x8c\x55\x9e\x7e\x8d\xb8\x8d\xeb\x8e\x05\x8e\x59\x8e\x69\x8d\xb5\x8d\xbf\x8d\xbc\x8d\xba\x8d\xc4\x8d\xd6\x8d\xd7\x8d\xda\x8d\xde\x8d\xce\x8d\xcf\x8d\xdb\x8d\xc6\x8d\xec\x8d\xf7\x8d\xf8\x8d\xe3\x8d\xf9\x8d\xfb\x8d\xe4\x8e\x09\x8d\xfd\x8e\x14\x8e\x1d\x8e\x1f\x8e\x2c\x8e\x2e\x8e\x23\x8e\x2f\x8e\x3a\x8e\x40\x8e\x39", /* 6b80 */ "\x00\x00\x8e\x35\x8e\x3d\x8e\x31\x8e\x49\x8e\x41\x8e\x42\x8e\x51\x8e\x52\x8e\x4a\x8e\x70\x8e\x76\x8e\x7c\x8e\x6f\x8e\x74\x8e\x85\x8e\x8f\x8e\x94\x8e\x90\x8e\x9c\x8e\x9e\x8c\x78\x8c\x82\x8c\x8a\x8c\x85\x8c\x98\x8c\x94\x65\x9b\x89\xd6\x89\xde\x89\xda\x89\xdc\x89\xe5\x89\xeb\x89\xef\x8a\x3e\x8b\x26\x97\x53\x96\xe9\x96\xf3\x96\xef\x97\x06\x97\x01\x97\x08\x97\x0f\x97\x0e\x97\x2a\x97\x2d\x97\x30\x97\x3e\x9f\x80\x9f\x83\x9f\x85\x9f\x86\x9f\x87\x9f\x88\x9f\x89\x9f\x8a\x9f\x8c\x9e\xfe\x9f\x0b\x9f\x0d\x96\xb9\x96\xbc\x96\xbd\x96\xce\x96\xd2\x77\xbf\x96\xe0\x92\x8e\x92\xae\x92\xc8\x93\x3e\x93\x6a\x93\xca\x93\x8f\x94\x3e\x94\x6b\x9c\x7f\x9c\x82\x9c\x85\x9c\x86\x9c\x87\x9c\x88\x7a\x23\x9c\x8b\x9c\x8e\x9c\x90\x9c\x91\x9c\x92\x9c\x94\x9c\x95\x9c\x9a\x9c\x9b\x9c\x9e\x9c\x9f\x9c\xa0\x9c\xa1\x9c\xa2\x9c\xa3\x9c\xa5\x9c\xa6\x9c\xa7\x9c\xa8\x9c\xa9\x9c\xab\x9c\xad\x9c\xae\x9c\xb0\x9c\xb1\x9c\xb2\x9c\xb3\x9c\xb4\x9c\xb5\x9c\xb6\x9c\xb7\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xca\x9c\xcb\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xcc\x9c\xcd\x9c\xce\x9c\xcf\x9c\xd0\x9c\xd3\x9c\xd4\x9c\xd5\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xdc\x9c\xdd\x9c\xdf\x9c\xe2\x97\x7c\x97\x85\x97\x91\x97\x92\x97\x94\x97\xaf\x97\xab\x97\xa3\x97\xb2\x97\xb4\x9a\xb1\x9a\xb0\x9a\xb7\x9e\x58\x9a\xb6\x9a\xba\x9a\xbc\x9a\xc1\x9a\xc0\x9a\xc5\x9a\xc2\x9a\xcb\x9a\xcc\x9a\xd1\x9b\x45\x9b\x43\x9b\x47\x9b\x49\x9b\x48\x9b\x4d\x9b\x51\x98\xe8\x99\x0d\x99\x2e\x99\x55\x99\x54\x9a\xdf\x9a\xe1\x9a\xe6\x9a\xef\x9a\xeb\x9a\xfb\x9a\xed\x9a\xf9\x9b\x08\x9b\x0f\x9b\x13\x9b\x1f", /* 6c80 */ "\x00\x00\x9b\x23\x9e\xbd\x9e\xbe\x7e\x3b\x9e\x82\x9e\x87\x9e\x88\x9e\x8b\x9e\x92\x93\xd6\x9e\x9d\x9e\x9f\x9e\xdb\x9e\xdc\x9e\xdd\x9e\xe0\x9e\xdf\x9e\xe2\x9e\xe9\x9e\xe7\x9e\xe5\x9e\xea\x9e\xef\x9f\x22\x9f\x2c\x9f\x2f\x9f\x39\x9f\x37\x9f\x3d\x9f\x3e\x9f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x0f\x01\x0f\x02\x0f\x03\x0f\x04\x0f\x05\x0f\x06\x0f\x07\x0f\x08\x0f\x09\x0f\x0a\x0f\x0b\x0f\x0c\x0f\x0d\x0f\x0e\x0f\x0f\x0f\x10\x0f\x11\x0f\x12\x0f\x13\x0f\x14\x0f\x15\x0f\x16\x0f\x17\x0f\x18\x0f\x19\x0f\x1a\x0f\x1b\x0f\x1c\x0f\x1d\x0f\x1e\x0f\x1f\x0f\x20\x0f\x21\x0f\x22\x0f\x23\x0f\x24\x0f\x25\x0f\x26\x0f\x27\x0f\x28\x0f\x29\x0f\x2a\x0f\x2b\x0f\x2c\x0f\x2d\x0f\x2e\x0f\x2f\x0f\x30\x0f\x31\x0f\x32\x0f\x33\x0f\x34\x0f\x35\x0f\x36\x0f\x37\x0f\x38\x0f\x39\x0f\x3a\x0f\x3b\x0f\x3c\x0f\x3d\x0f\x3e", /* 6d80 */ "\x0f\x3f\x0f\x40\x0f\x41\x0f\x42\x0f\x43\x0f\x44\x0f\x45\x0f\x46\x0f\x47\x0f\x48\x0f\x49\x0f\x4a\x0f\x4b\x0f\x4c\x0f\x4d\x0f\x4e\x0f\x4f\x0f\x50\x0f\x51\x0f\x52\x0f\x53\x0f\x54\x0f\x55\x0f\x56\x0f\x57\x0f\x58\x0f\x59\x0f\x5a\x0f\x5b\x0f\x5c\x0f\x5d\x0f\x5e\x0f\x5f\x0f\x60\x0f\x61\x0f\x62\x0f\x63\x0f\x64\x0f\x65\x0f\x66\x0f\x67\x0f\x68\x0f\x69\x0f\x6a\x0f\x6b\x0f\x6c\x0f\x6d\x0f\x6e\x0f\x6f\x0f\x70\x0f\x71\x0f\x72\x0f\x73\x0f\x74\x0f\x75\x0f\x76\x0f\x77\x0f\x78\x0f\x79\x0f\x7a\x0f\x7b\x0f\x7c\x0f\x7d\x0f\x7e\x0f\x7f\x0f\x80\x0f\x81\x0f\x82\x0f\x83\x0f\x84\x0f\x85\x0f\x86\x0f\x87\x0f\x88\x0f\x89\x0f\x8a\x0f\x8b\x0f\x8c\x0f\x8d\x0f\x8e\x0f\x8f\x0f\x90\x0f\x91\x0f\x92\x0f\x93\x0f\x94\x0f\x95\x0f\x96\x0f\x97\x0f\x98\x0f\x99\x0f\x9a\x0f\x9b\x0f\x9c\x0f\x9d\x0f\x9e\x0f\x9f\x0f\xa0\x0f\xa1\x0f\xa2\x0f\xa3\x0f\xa4\x0f\xa5\x0f\xa6\x0f\xa7\x0f\xa8\x0f\xa9\x0f\xaa\x0f\xab\x0f\xac\x0f\xad\x0f\xae\x0f\xaf\x0f\xb0\x0f\xb1\x0f\xb2\x0f\xb3\x0f\xb4\x0f\xb5\x0f\xb6\x0f\xb7\x0f\xb8\x0f\xb9\x0f\xba\x0f\xbb\x0f\xbc\x0f\xbd\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\xbe\x0f\xbf\x0f\xc0\x0f\xc1\x0f\xc2\x0f\xc3\x0f\xc4\x0f\xc5\x0f\xc6\x0f\xc7\x0f\xc8\x0f\xc9\x0f\xca\x0f\xcb\x0f\xcc\x0f\xcd\x0f\xce\x0f\xcf\x0f\xd0\x0f\xd1\x0f\xd2\x0f\xd3\x0f\xd4\x0f\xd5\x0f\xd6\x0f\xd7\x0f\xd8\x0f\xd9\x0f\xda\x0f\xdb\x0f\xdc\x0f\xdd\x0f\xde\x0f\xdf\x0f\xe0\x0f\xe1\x0f\xe2\x0f\xe3\x0f\xe4\x0f\xe5\x0f\xe6\x0f\xe7\x0f\xe8\x0f\xe9\x0f\xea\x0f\xeb\x0f\xec\x0f\xed\x0f\xee\x0f\xef\x0f\xf0\x0f\xf1\x0f\xf2\x0f\xf3\x0f\xf4\x0f\xf5\x0f\xf6\x0f\xf7\x0f\xf8\x0f\xf9\x0f\xfa\x0f\xfb\x0f\xfc", /* 6e80 */ "\x0f\xfd\x0f\xfe\x0f\xff\x18\x00\x18\x01\x18\x02\x18\x03\x18\x04\x18\x05\x18\x06\x18\x07\x18\x08\x18\x09\x18\x0a\x18\x0b\x18\x0c\x18\x0d\x18\x0e\x18\x0f\x18\x10\x18\x11\x18\x12\x18\x13\x18\x14\x18\x15\x18\x16\x18\x17\x18\x18\x18\x19\x18\x1a\x18\x1b\x18\x1c\x18\x1d\x18\x1e\x18\x1f\x18\x20\x18\x21\x18\x22\x18\x23\x18\x24\x18\x25\x18\x26\x18\x27\x18\x28\x18\x29\x18\x2a\x18\x2b\x18\x2c\x18\x2d\x18\x2e\x18\x2f\x18\x30\x18\x31\x18\x32\x18\x33\x18\x34\x18\x35\x18\x36\x18\x37\x18\x38\x18\x39\x18\x3a\x18\x3b\x18\x3c\x18\x3d\x18\x3e\x18\x3f\x18\x40\x18\x41\x18\x42\x18\x43\x18\x44\x18\x45\x18\x46\x18\x47\x18\x48\x18\x49\x18\x4a\x18\x4b\x18\x4c\x18\x4d\x18\x4e\x18\x4f\x18\x50\x18\x51\x18\x52\x18\x53\x18\x54\x18\x55\x18\x56\x18\x57\x18\x58\x18\x59\x18\x5a\x18\x5b\x18\x5c\x18\x5d\x18\x5e\x18\x5f\x18\x60\x18\x61\x18\x62\x18\x63\x18\x64\x18\x65\x18\x66\x18\x67\x18\x68\x18\x69\x18\x6a\x18\x6b\x18\x6c\x18\x6d\x18\x6e\x18\x6f\x18\x70\x18\x71\x18\x72\x18\x73\x18\x74\x18\x75\x18\x76\x18\x77\x18\x78\x18\x79\x18\x7a\x18\x7b\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x7c\x18\x7d\x18\x7e\x18\x7f\x18\x80\x18\x81\x18\x82\x18\x83\x18\x84\x18\x85\x18\x86\x18\x87\x18\x88\x18\x89\x18\x8a\x18\x8b\x18\x8c\x18\x8d\x18\x8e\x18\x8f\x18\x90\x18\x91\x18\x92\x18\x93\x18\x94\x18\x95\x18\x96\x18\x97\x18\x98\x18\x99\x18\x9a\x18\x9b\x18\x9c\x18\x9d\x18\x9e\x18\x9f\x18\xa0\x18\xa1\x18\xa2\x18\xa3\x18\xa4\x18\xa5\x18\xa6\x18\xa7\x18\xa8\x18\xa9\x18\xaa\x18\xab\x18\xac\x18\xad\x18\xae\x18\xaf\xa0\x00\xa0\x01\xa0\x02\xa0\x03\xa0\x04\xa0\x05\xa0\x06\xa0\x07\xa0\x08\xa0\x09\xa0\x0a", /* 6f80 */ "\xa0\x0b\xa0\x0c\xa0\x0d\xa0\x0e\xa0\x0f\xa0\x10\xa0\x11\xa0\x12\xa0\x13\xa0\x14\xa0\x15\xa0\x16\xa0\x17\xa0\x18\xa0\x19\xa0\x1a\xa0\x1b\xa0\x1c\xa0\x1d\xa0\x1e\xa0\x1f\xa0\x20\xa0\x21\xa0\x22\xa0\x23\xa0\x24\xa0\x25\xa0\x26\xa0\x27\xa0\x28\xa0\x29\xa0\x2a\xa0\x2b\xa0\x2c\xa0\x2d\xa0\x2e\xa0\x2f\xa0\x30\xa0\x31\xa0\x32\xa0\x33\xa0\x34\xa0\x35\xa0\x36\xa0\x37\xa0\x38\xa0\x39\xa0\x3a\xa0\x3b\xa0\x3c\xa0\x3d\xa0\x3e\xa0\x3f\xa0\x40\xa0\x41\xa0\x42\xa0\x43\xa0\x44\xa0\x45\xa0\x46\xa0\x47\xa0\x48\xa0\x49\xa0\x4a\xa0\x4b\xa0\x4c\xa0\x4d\xa0\x4e\xa0\x4f\xa0\x50\xa0\x51\xa0\x52\xa0\x53\xa0\x54\xa0\x55\xa0\x56\xa0\x57\xa0\x58\xa0\x59\xa0\x5a\xa0\x5b\xa0\x5c\xa0\x5d\xa0\x5e\xa0\x5f\xa0\x60\xa0\x61\xa0\x62\xa0\x63\xa0\x64\xa0\x65\xa0\x66\xa0\x67\xa0\x68\xa0\x69\xa0\x6a\xa0\x6b\xa0\x6c\xa0\x6d\xa0\x6e\xa0\x6f\xa0\x70\xa0\x71\xa0\x72\xa0\x73\xa0\x74\xa0\x75\xa0\x76\xa0\x77\xa0\x78\xa0\x79\xa0\x7a\xa0\x7b\xa0\x7c\xa0\x7d\xa0\x7e\xa0\x7f\xa0\x80\xa0\x81\xa0\x82\xa0\x83\xa0\x84\xa0\x85\xa0\x86\xa0\x87\xa0\x88\xa0\x89\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x8a\xa0\x8b\xa0\x8c\xa0\x8d\xa0\x8e\xa0\x8f\xa0\x90\xa0\x91\xa0\x92\xa0\x93\xa0\x94\xa0\x95\xa0\x96\xa0\x97\xa0\x98\xa0\x99\xa0\x9a\xa0\x9b\xa0\x9c\xa0\x9d\xa0\x9e\xa0\x9f\xa0\xa0\xa0\xa1\xa0\xa2\xa0\xa3\xa0\xa4\xa0\xa5\xa0\xa6\xa0\xa7\xa0\xa8\xa0\xa9\xa0\xaa\xa0\xab\xa0\xac\xa0\xad\xa0\xae\xa0\xaf\xa0\xb0\xa0\xb1\xa0\xb2\xa0\xb3\xa0\xb4\xa0\xb5\xa0\xb6\xa0\xb7\xa0\xb8\xa0\xb9\xa0\xba\xa0\xbb\xa0\xbc\xa0\xbd\xa0\xbe\xa0\xbf\xa0\xc0\xa0\xc1\xa0\xc2\xa0\xc3\xa0\xc4\xa0\xc5\xa0\xc6\xa0\xc7\xa0\xc8", /* 7080 */ "\xa0\xc9\xa0\xca\xa0\xcb\xa0\xcc\xa0\xcd\xa0\xce\xa0\xcf\xa0\xd0\xa0\xd1\xa0\xd2\xa0\xd3\xa0\xd4\xa0\xd5\xa0\xd6\xa0\xd7\xa0\xd8\xa0\xd9\xa0\xda\xa0\xdb\xa0\xdc\xa0\xdd\xa0\xde\xa0\xdf\xa0\xe0\xa0\xe1\xa0\xe2\xa0\xe3\xa0\xe4\xa0\xe5\xa0\xe6\xa0\xe7\xa0\xe8\xa0\xe9\xa0\xea\xa0\xeb\xa0\xec\xa0\xed\xa0\xee\xa0\xef\xa0\xf0\xa0\xf1\xa0\xf2\xa0\xf3\xa0\xf4\xa0\xf5\xa0\xf6\xa0\xf7\xa0\xf8\xa0\xf9\xa0\xfa\xa0\xfb\xa0\xfc\xa0\xfd\xa0\xfe\xa0\xff\xa1\x00\xa1\x01\xa1\x02\xa1\x03\xa1\x04\xa1\x05\xa1\x06\xa1\x07\xa1\x08\xa1\x09\xa1\x0a\xa1\x0b\xa1\x0c\xa1\x0d\xa1\x0e\xa1\x0f\xa1\x10\xa1\x11\xa1\x12\xa1\x13\xa1\x14\xa1\x15\xa1\x16\xa1\x17\xa1\x18\xa1\x19\xa1\x1a\xa1\x1b\xa1\x1c\xa1\x1d\xa1\x1e\xa1\x1f\xa1\x20\xa1\x21\xa1\x22\xa1\x23\xa1\x24\xa1\x25\xa1\x26\xa1\x27\xa1\x28\xa1\x29\xa1\x2a\xa1\x2b\xa1\x2c\xa1\x2d\xa1\x2e\xa1\x2f\xa1\x30\xa1\x31\xa1\x32\xa1\x33\xa1\x34\xa1\x35\xa1\x36\xa1\x37\xa1\x38\xa1\x39\xa1\x3a\xa1\x3b\xa1\x3c\xa1\x3d\xa1\x3e\xa1\x3f\xa1\x40\xa1\x41\xa1\x42\xa1\x43\xa1\x44\xa1\x45\xa1\x46\xa1\x47\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x48\xa1\x49\xa1\x4a\xa1\x4b\xa1\x4c\xa1\x4d\xa1\x4e\xa1\x4f\xa1\x50\xa1\x51\xa1\x52\xa1\x53\xa1\x54\xa1\x55\xa1\x56\xa1\x57\xa1\x58\xa1\x59\xa1\x5a\xa1\x5b\xa1\x5c\xa1\x5d\xa1\x5e\xa1\x5f\xa1\x60\xa1\x61\xa1\x62\xa1\x63\xa1\x64\xa1\x65\xa1\x66\xa1\x67\xa1\x68\xa1\x69\xa1\x6a\xa1\x6b\xa1\x6c\xa1\x6d\xa1\x6e\xa1\x6f\xa1\x70\xa1\x71\xa1\x72\xa1\x73\xa1\x74\xa1\x75\xa1\x76\xa1\x77\xa1\x78\xa1\x79\xa1\x7a\xa1\x7b\xa1\x7c\xa1\x7d\xa1\x7e\xa1\x7f\xa1\x80\xa1\x81\xa1\x82\xa1\x83\xa1\x84\xa1\x85\xa1\x86", /* 7180 */ "\xa1\x87\xa1\x88\xa1\x89\xa1\x8a\xa1\x8b\xa1\x8c\xa1\x8d\xa1\x8e\xa1\x8f\xa1\x90\xa1\x91\xa1\x92\xa1\x93\xa1\x94\xa1\x95\xa1\x96\xa1\x97\xa1\x98\xa1\x99\xa1\x9a\xa1\x9b\xa1\x9c\xa1\x9d\xa1\x9e\xa1\x9f\xa1\xa0\xa1\xa1\xa1\xa2\xa1\xa3\xa1\xa4\xa1\xa5\xa1\xa6\xa1\xa7\xa1\xa8\xa1\xa9\xa1\xaa\xa1\xab\xa1\xac\xa1\xad\xa1\xae\xa1\xaf\xa1\xb0\xa1\xb1\xa1\xb2\xa1\xb3\xa1\xb4\xa1\xb5\xa1\xb6\xa1\xb7\xa1\xb8\xa1\xb9\xa1\xba\xa1\xbb\xa1\xbc\xa1\xbd\xa1\xbe\xa1\xbf\xa1\xc0\xa1\xc1\xa1\xc2\xa1\xc3\xa1\xc4\xa1\xc5\xa1\xc6\xa1\xc7\xa1\xc8\xa1\xc9\xa1\xca\xa1\xcb\xa1\xcc\xa1\xcd\xa1\xce\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xd2\xa1\xd3\xa1\xd4\xa1\xd5\xa1\xd6\xa1\xd7\xa1\xd8\xa1\xd9\xa1\xda\xa1\xdb\xa1\xdc\xa1\xdd\xa1\xde\xa1\xdf\xa1\xe0\xa1\xe1\xa1\xe2\xa1\xe3\xa1\xe4\xa1\xe5\xa1\xe6\xa1\xe7\xa1\xe8\xa1\xe9\xa1\xea\xa1\xeb\xa1\xec\xa1\xed\xa1\xee\xa1\xef\xa1\xf0\xa1\xf1\xa1\xf2\xa1\xf3\xa1\xf4\xa1\xf5\xa1\xf6\xa1\xf7\xa1\xf8\xa1\xf9\xa1\xfa\xa1\xfb\xa1\xfc\xa1\xfd\xa1\xfe\xa1\xff\xa2\x00\xa2\x01\xa2\x02\xa2\x03\xa2\x04\xa2\x05\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x06\xa2\x07\xa2\x08\xa2\x09\xa2\x0a\xa2\x0b\xa2\x0c\xa2\x0d\xa2\x0e\xa2\x0f\xa2\x10\xa2\x11\xa2\x12\xa2\x13\xa2\x14\xa2\x15\xa2\x16\xa2\x17\xa2\x18\xa2\x19\xa2\x1a\xa2\x1b\xa2\x1c\xa2\x1d\xa2\x1e\xa2\x1f\xa2\x20\xa2\x21\xa2\x22\xa2\x23\xa2\x24\xa2\x25\xa2\x26\xa2\x27\xa2\x28\xa2\x29\xa2\x2a\xa2\x2b\xa2\x2c\xa2\x2d\xa2\x2e\xa2\x2f\xa2\x30\xa2\x31\xa2\x32\xa2\x33\xa2\x34\xa2\x35\xa2\x36\xa2\x37\xa2\x38\xa2\x39\xa2\x3a\xa2\x3b\xa2\x3c\xa2\x3d\xa2\x3e\xa2\x3f\xa2\x40\xa2\x41\xa2\x42\xa2\x43\xa2\x44", /* 7280 */ "\xa2\x45\xa2\x46\xa2\x47\xa2\x48\xa2\x49\xa2\x4a\xa2\x4b\xa2\x4c\xa2\x4d\xa2\x4e\xa2\x4f\xa2\x50\xa2\x51\xa2\x52\xa2\x53\xa2\x54\xa2\x55\xa2\x56\xa2\x57\xa2\x58\xa2\x59\xa2\x5a\xa2\x5b\xa2\x5c\xa2\x5d\xa2\x5e\xa2\x5f\xa2\x60\xa2\x61\xa2\x62\xa2\x63\xa2\x64\xa2\x65\xa2\x66\xa2\x67\xa2\x68\xa2\x69\xa2\x6a\xa2\x6b\xa2\x6c\xa2\x6d\xa2\x6e\xa2\x6f\xa2\x70\xa2\x71\xa2\x72\xa2\x73\xa2\x74\xa2\x75\xa2\x76\xa2\x77\xa2\x78\xa2\x79\xa2\x7a\xa2\x7b\xa2\x7c\xa2\x7d\xa2\x7e\xa2\x7f\xa2\x80\xa2\x81\xa2\x82\xa2\x83\xa2\x84\xa2\x85\xa2\x86\xa2\x87\xa2\x88\xa2\x89\xa2\x8a\xa2\x8b\xa2\x8c\xa2\x8d\xa2\x8e\xa2\x8f\xa2\x90\xa2\x91\xa2\x92\xa2\x93\xa2\x94\xa2\x95\xa2\x96\xa2\x97\xa2\x98\xa2\x99\xa2\x9a\xa2\x9b\xa2\x9c\xa2\x9d\xa2\x9e\xa2\x9f\xa2\xa0\xa2\xa1\xa2\xa2\xa2\xa3\xa2\xa4\xa2\xa5\xa2\xa6\xa2\xa7\xa2\xa8\xa2\xa9\xa2\xaa\xa2\xab\xa2\xac\xa2\xad\xa2\xae\xa2\xaf\xa2\xb0\xa2\xb1\xa2\xb2\xa2\xb3\xa2\xb4\xa2\xb5\xa2\xb6\xa2\xb7\xa2\xb8\xa2\xb9\xa2\xba\xa2\xbb\xa2\xbc\xa2\xbd\xa2\xbe\xa2\xbf\xa2\xc0\xa2\xc1\xa2\xc2\xa2\xc3\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\xc4\xa2\xc5\xa2\xc6\xa2\xc7\xa2\xc8\xa2\xc9\xa2\xca\xa2\xcb\xa2\xcc\xa2\xcd\xa2\xce\xa2\xcf\xa2\xd0\xa2\xd1\xa2\xd2\xa2\xd3\xa2\xd4\xa2\xd5\xa2\xd6\xa2\xd7\xa2\xd8\xa2\xd9\xa2\xda\xa2\xdb\xa2\xdc\xa2\xdd\xa2\xde\xa2\xdf\xa2\xe0\xa2\xe1\xa2\xe2\xa2\xe3\xa2\xe4\xa2\xe5\xa2\xe6\xa2\xe7\xa2\xe8\xa2\xe9\xa2\xea\xa2\xeb\xa2\xec\xa2\xed\xa2\xee\xa2\xef\xa2\xf0\xa2\xf1\xa2\xf2\xa2\xf3\xa2\xf4\xa2\xf5\xa2\xf6\xa2\xf7\xa2\xf8\xa2\xf9\xa2\xfa\xa2\xfb\xa2\xfc\xa2\xfd\xa2\xfe\xa2\xff\xa3\x00\xa3\x01\xa3\x02", /* 7380 */ "\xa3\x03\xa3\x04\xa3\x05\xa3\x06\xa3\x07\xa3\x08\xa3\x09\xa3\x0a\xa3\x0b\xa3\x0c\xa3\x0d\xa3\x0e\xa3\x0f\xa3\x10\xa3\x11\xa3\x12\xa3\x13\xa3\x14\xa3\x15\xa3\x16\xa3\x17\xa3\x18\xa3\x19\xa3\x1a\xa3\x1b\xa3\x1c\xa3\x1d\xa3\x1e\xa3\x1f\xa3\x20\xa3\x21\xa3\x22\xa3\x23\xa3\x24\xa3\x25\xa3\x26\xa3\x27\xa3\x28\xa3\x29\xa3\x2a\xa3\x2b\xa3\x2c\xa3\x2d\xa3\x2e\xa3\x2f\xa3\x30\xa3\x31\xa3\x32\xa3\x33\xa3\x34\xa3\x35\xa3\x36\xa3\x37\xa3\x38\xa3\x39\xa3\x3a\xa3\x3b\xa3\x3c\xa3\x3d\xa3\x3e\xa3\x3f\xa3\x40\xa3\x41\xa3\x42\xa3\x43\xa3\x44\xa3\x45\xa3\x46\xa3\x47\xa3\x48\xa3\x49\xa3\x4a\xa3\x4b\xa3\x4c\xa3\x4d\xa3\x4e\xa3\x4f\xa3\x50\xa3\x51\xa3\x52\xa3\x53\xa3\x54\xa3\x55\xa3\x56\xa3\x57\xa3\x58\xa3\x59\xa3\x5a\xa3\x5b\xa3\x5c\xa3\x5d\xa3\x5e\xa3\x5f\xa3\x60\xa3\x61\xa3\x62\xa3\x63\xa3\x64\xa3\x65\xa3\x66\xa3\x67\xa3\x68\xa3\x69\xa3\x6a\xa3\x6b\xa3\x6c\xa3\x6d\xa3\x6e\xa3\x6f\xa3\x70\xa3\x71\xa3\x72\xa3\x73\xa3\x74\xa3\x75\xa3\x76\xa3\x77\xa3\x78\xa3\x79\xa3\x7a\xa3\x7b\xa3\x7c\xa3\x7d\xa3\x7e\xa3\x7f\xa3\x80\xa3\x81\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x82\xa3\x83\xa3\x84\xa3\x85\xa3\x86\xa3\x87\xa3\x88\xa3\x89\xa3\x8a\xa3\x8b\xa3\x8c\xa3\x8d\xa3\x8e\xa3\x8f\xa3\x90\xa3\x91\xa3\x92\xa3\x93\xa3\x94\xa3\x95\xa3\x96\xa3\x97\xa3\x98\xa3\x99\xa3\x9a\xa3\x9b\xa3\x9c\xa3\x9d\xa3\x9e\xa3\x9f\xa3\xa0\xa3\xa1\xa3\xa2\xa3\xa3\xa3\xa4\xa3\xa5\xa3\xa6\xa3\xa7\xa3\xa8\xa3\xa9\xa3\xaa\xa3\xab\xa3\xac\xa3\xad\xa3\xae\xa3\xaf\xa3\xb0\xa3\xb1\xa3\xb2\xa3\xb3\xa3\xb4\xa3\xb5\xa3\xb6\xa3\xb7\xa3\xb8\xa3\xb9\xa3\xba\xa3\xbb\xa3\xbc\xa3\xbd\xa3\xbe\xa3\xbf\xa3\xc0", /* 7480 */ "\xa3\xc1\xa3\xc2\xa3\xc3\xa3\xc4\xa3\xc5\xa3\xc6\xa3\xc7\xa3\xc8\xa3\xc9\xa3\xca\xa3\xcb\xa3\xcc\xa3\xcd\xa3\xce\xa3\xcf\xa3\xd0\xa3\xd1\xa3\xd2\xa3\xd3\xa3\xd4\xa3\xd5\xa3\xd6\xa3\xd7\xa3\xd8\xa3\xd9\xa3\xda\xa3\xdb\xa3\xdc\xa3\xdd\xa3\xde\xa3\xdf\xa3\xe0\xa3\xe1\xa3\xe2\xa3\xe3\xa3\xe4\xa3\xe5\xa3\xe6\xa3\xe7\xa3\xe8\xa3\xe9\xa3\xea\xa3\xeb\xa3\xec\xa3\xed\xa3\xee\xa3\xef\xa3\xf0\xa3\xf1\xa3\xf2\xa3\xf3\xa3\xf4\xa3\xf5\xa3\xf6\xa3\xf7\xa3\xf8\xa3\xf9\xa3\xfa\xa3\xfb\xa3\xfc\xa3\xfd\xa3\xfe\xa3\xff\xa4\x00\xa4\x01\xa4\x02\xa4\x03\xa4\x04\xa4\x05\xa4\x06\xa4\x07\xa4\x08\xa4\x09\xa4\x0a\xa4\x0b\xa4\x0c\xa4\x0d\xa4\x0e\xa4\x0f\xa4\x10\xa4\x11\xa4\x12\xa4\x13\xa4\x14\xa4\x15\xa4\x16\xa4\x17\xa4\x18\xa4\x19\xa4\x1a\xa4\x1b\xa4\x1c\xa4\x1d\xa4\x1e\xa4\x1f\xa4\x20\xa4\x21\xa4\x22\xa4\x23\xa4\x24\xa4\x25\xa4\x26\xa4\x27\xa4\x28\xa4\x29\xa4\x2a\xa4\x2b\xa4\x2c\xa4\x2d\xa4\x2e\xa4\x2f\xa4\x30\xa4\x31\xa4\x32\xa4\x33\xa4\x34\xa4\x35\xa4\x36\xa4\x37\xa4\x38\xa4\x39\xa4\x3a\xa4\x3b\xa4\x3c\xa4\x3d\xa4\x3e\xa4\x3f\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x40\xa4\x41\xa4\x42\xa4\x43\xa4\x44\xa4\x45\xa4\x46\xa4\x47\xa4\x48\xa4\x49\xa4\x4a\xa4\x4b\xa4\x4c\xa4\x4d\xa4\x4e\xa4\x4f\xa4\x50\xa4\x51\xa4\x52\xa4\x53\xa4\x54\xa4\x55\xa4\x56\xa4\x57\xa4\x58\xa4\x59\xa4\x5a\xa4\x5b\xa4\x5c\xa4\x5d\xa4\x5e\xa4\x5f\xa4\x60\xa4\x61\xa4\x62\xa4\x63\xa4\x64\xa4\x65\xa4\x66\xa4\x67\xa4\x68\xa4\x69\xa4\x6a\xa4\x6b\xa4\x6c\xa4\x6d\xa4\x6e\xa4\x6f\xa4\x70\xa4\x71\xa4\x72\xa4\x73\xa4\x74\xa4\x75\xa4\x76\xa4\x77\xa4\x78\xa4\x79\xa4\x7a\xa4\x7b\xa4\x7c\xa4\x7d\xa4\x7e", /* 7580 */ "\xa4\x7f\xa4\x80\xa4\x81\xa4\x82\xa4\x83\xa4\x84\xa4\x85\xa4\x86\xa4\x87\xa4\x88\xa4\x89\xa4\x8a\xa4\x8b\xa4\x8c\xa4\x8d\xa4\x8e\xa4\x8f\xa4\x90\xa4\x91\xa4\x92\xa4\x93\xa4\x94\xa4\x95\xa4\x96\xa4\x97\xa4\x98\xa4\x99\xa4\x9a\xa4\x9b\xa4\x9c\xa4\x9d\xa4\x9e\xa4\x9f\xa4\xa0\xa4\xa1\xa4\xa2\xa4\xa3\xa4\xa4\xa4\xa5\xa4\xa6\xa4\xa7\xa4\xa8\xa4\xa9\xa4\xaa\xa4\xab\xa4\xac\xa4\xad\xa4\xae\xa4\xaf\xa4\xb0\xa4\xb1\xa4\xb2\xa4\xb3\xa4\xb4\xa4\xb5\xa4\xb6\xa4\xb7\xa4\xb8\xa4\xb9\xa4\xba\xa4\xbb\xa4\xbc\xa4\xbd\xa4\xbe\xa4\xbf\xa4\xc0\xa4\xc1\xa4\xc2\xa4\xc3\xa4\xc4\xa4\xc5\xa4\xc6\xa4\xc7\xa4\xc8\xa4\xc9\xa4\xca\xa4\xcb\xa4\xcc\xa4\xcd\xa4\xce\xa4\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 7680 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* 7780 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* 7880 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* 7980 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* 7a80 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* 7b80 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* 7c80 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* 7d80 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* 7e80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* 7f80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* 8000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8080 */ NULL, /* 8100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x02\x4e\x04\x4e\x05\x4e\x06\x4e\x0f\x4e\x12\x4e\x17\x4e\x1f\x4e\x20\x4e\x21\x4e\x23\x4e\x26\x4e\x29\x4e\x2e\x4e\x2f\x4e\x31\x4e\x33\x4e\x35\x4e\x37\x4e\x3c\x4e\x40\x4e\x41\x4e\x42\x4e\x44\x4e\x46\x4e\x4a\x4e\x51\x4e\x55\x4e\x57\x4e\x5a\x4e\x5b\x4e\x62\x4e\x63\x4e\x64\x4e\x65\x4e\x67\x4e\x68\x4e\x6a\x4e\x6b\x4e\x6c\x4e\x6d\x4e\x6e\x4e\x6f\x4e\x72\x4e\x74\x4e\x75\x4e\x76\x4e\x77\x4e\x78\x4e\x79\x4e\x7a\x4e\x7b\x4e\x7c\x4e\x7d\x4e\x7f\x4e\x80\x4e\x81\x4e\x82\x4e\x83\x4e\x84\x4e\x85\x4e\x87\x4e\x8a", /* 8180 */ "\x00\x00\x4e\x90\x4e\x96\x4e\x97\x4e\x99\x4e\x9c\x4e\x9d\x4e\x9e\x4e\xa3\x4e\xaa\x4e\xaf\x4e\xb0\x4e\xb1\x4e\xb4\x4e\xb6\x4e\xb7\x4e\xb8\x4e\xb9\x4e\xbc\x4e\xbd\x4e\xbe\x4e\xc8\x4e\xcc\x4e\xcf\x4e\xd0\x4e\xd2\x4e\xda\x4e\xdb\x4e\xdc\x4e\xe0\x4e\xe2\x4e\xe6\x4e\xe7\x4e\xe9\x4e\xed\x4e\xee\x4e\xef\x4e\xf1\x4e\xf4\x4e\xf8\x4e\xf9\x4e\xfa\x4e\xfc\x4e\xfe\x4f\x00\x4f\x02\x4f\x03\x4f\x04\x4f\x05\x4f\x06\x4f\x07\x4f\x08\x4f\x0b\x4f\x0c\x4f\x12\x4f\x13\x4f\x14\x4f\x15\x4f\x16\x4f\x1c\x4f\x1d\x4f\x21\x4f\x23\x4f\x28\x4f\x29\x4f\x2c\x4f\x2d\x4f\x2e\x4f\x31\x4f\x33\x4f\x35\x4f\x37\x4f\x39\x4f\x3b\x4f\x3e\x4f\x3f\x4f\x40\x4f\x41\x4f\x42\x4f\x44\x4f\x45\x4f\x47\x4f\x48\x4f\x49\x4f\x4a\x4f\x4b\x4f\x4c\x4f\x52\x4f\x54\x4f\x56\x4f\x61\x4f\x62\x4f\x66\x4f\x68\x4f\x6a\x4f\x6b\x4f\x6d\x4f\x6e\x4f\x71\x4f\x72\x4f\x75\x4f\x77\x4f\x78\x4f\x79\x4f\x7a\x4f\x7d\x4f\x80\x4f\x81\x4f\x82\x4f\x85\x4f\x86\x4f\x87\x4f\x8a\x4f\x8c\x4f\x8e\x4f\x90\x4f\x92\x4f\x93\x4f\x95\x4f\x96\x4f\x98\x4f\x99\x4f\x9a\x4f\x9c\x4f\x9e\x4f\x9f\x00\x00\x00\x00", /* 8200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa1\x4f\xa2\x4f\xa4\x4f\xab\x4f\xad\x4f\xb0\x4f\xb1\x4f\xb2\x4f\xb3\x4f\xb4\x4f\xb6\x4f\xb7\x4f\xb8\x4f\xb9\x4f\xba\x4f\xbb\x4f\xbc\x4f\xbd\x4f\xbe\x4f\xc0\x4f\xc1\x4f\xc2\x4f\xc6\x4f\xc7\x4f\xc8\x4f\xc9\x4f\xcb\x4f\xcc\x4f\xcd\x4f\xd2\x4f\xd3\x4f\xd4\x4f\xd5\x4f\xd6\x4f\xd9\x4f\xdb\x4f\xe0\x4f\xe2\x4f\xe4\x4f\xe5\x4f\xe7\x4f\xeb\x4f\xec\x4f\xf0\x4f\xf2\x4f\xf4\x4f\xf5\x4f\xf6\x4f\xf7\x4f\xf9\x4f\xfb\x4f\xfc\x4f\xfd\x4f\xff\x50\x00\x50\x01\x50\x02\x50\x03\x50\x04\x50\x05\x50\x06\x50\x07\x50\x08", /* 8280 */ "\x00\x00\x50\x09\x50\x0a\x50\x0b\x50\x0e\x50\x10\x50\x11\x50\x13\x50\x15\x50\x16\x50\x17\x50\x1b\x50\x1d\x50\x1e\x50\x20\x50\x22\x50\x23\x50\x24\x50\x27\x50\x2b\x50\x2f\x50\x30\x50\x31\x50\x32\x50\x33\x50\x34\x50\x35\x50\x36\x50\x37\x50\x38\x50\x39\x50\x3b\x50\x3d\x50\x3f\x50\x40\x50\x41\x50\x42\x50\x44\x50\x45\x50\x46\x50\x49\x50\x4a\x50\x4b\x50\x4d\x50\x50\x50\x51\x50\x52\x50\x53\x50\x54\x50\x56\x50\x57\x50\x58\x50\x59\x50\x5b\x50\x5d\x50\x5e\x50\x5f\x50\x60\x50\x61\x50\x62\x50\x63\x50\x64\x50\x66\x50\x67\x50\x68\x50\x69\x50\x6a\x50\x6b\x50\x6d\x50\x6e\x50\x6f\x50\x70\x50\x71\x50\x72\x50\x73\x50\x74\x50\x75\x50\x78\x50\x79\x50\x7a\x50\x7c\x50\x7d\x50\x81\x50\x82\x50\x83\x50\x84\x50\x86\x50\x87\x50\x89\x50\x8a\x50\x8b\x50\x8c\x50\x8e\x50\x8f\x50\x90\x50\x91\x50\x92\x50\x93\x50\x94\x50\x95\x50\x96\x50\x97\x50\x98\x50\x99\x50\x9a\x50\x9b\x50\x9c\x50\x9d\x50\x9e\x50\x9f\x50\xa0\x50\xa1\x50\xa2\x50\xa4\x50\xa6\x50\xaa\x50\xab\x50\xad\x50\xae\x50\xaf\x50\xb0\x50\xb1\x50\xb3\x50\xb4\x50\xb5\x50\xb6\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb7\x50\xb8\x50\xb9\x50\xbc\x50\xbd\x50\xbe\x50\xbf\x50\xc0\x50\xc1\x50\xc2\x50\xc3\x50\xc4\x50\xc5\x50\xc6\x50\xc7\x50\xc8\x50\xc9\x50\xca\x50\xcb\x50\xcc\x50\xcd\x50\xce\x50\xd0\x50\xd1\x50\xd2\x50\xd3\x50\xd4\x50\xd5\x50\xd7\x50\xd8\x50\xd9\x50\xdb\x50\xdc\x50\xdd\x50\xde\x50\xdf\x50\xe0\x50\xe1\x50\xe2\x50\xe3\x50\xe4\x50\xe5\x50\xe8\x50\xe9\x50\xea\x50\xeb\x50\xef\x50\xf0\x50\xf1\x50\xf2\x50\xf4\x50\xf6\x50\xf7\x50\xf8\x50\xf9\x50\xfa\x50\xfc\x50\xfd\x50\xfe\x50\xff\x51\x00\x51\x01\x51\x02", /* 8380 */ "\x00\x00\x51\x03\x51\x04\x51\x05\x51\x08\x51\x09\x51\x0a\x51\x0c\x51\x0d\x51\x0e\x51\x0f\x51\x10\x51\x11\x51\x13\x51\x14\x51\x15\x51\x16\x51\x17\x51\x18\x51\x19\x51\x1a\x51\x1b\x51\x1c\x51\x1d\x51\x1e\x51\x1f\x51\x20\x51\x22\x51\x23\x51\x24\x51\x25\x51\x26\x51\x27\x51\x28\x51\x29\x51\x2a\x51\x2b\x51\x2c\x51\x2d\x51\x2e\x51\x2f\x51\x30\x51\x31\x51\x32\x51\x33\x51\x34\x51\x35\x51\x36\x51\x37\x51\x38\x51\x39\x51\x3a\x51\x3b\x51\x3c\x51\x3d\x51\x3e\x51\x42\x51\x47\x51\x4a\x51\x4c\x51\x4e\x51\x4f\x51\x50\x51\x52\x51\x53\x51\x57\x51\x58\x51\x59\x51\x5b\x51\x5d\x51\x5e\x51\x5f\x51\x60\x51\x61\x51\x63\x51\x64\x51\x66\x51\x67\x51\x69\x51\x6a\x51\x6f\x51\x72\x51\x7a\x51\x7e\x51\x7f\x51\x83\x51\x84\x51\x86\x51\x87\x51\x8a\x51\x8b\x51\x8e\x51\x8f\x51\x90\x51\x91\x51\x93\x51\x94\x51\x98\x51\x9a\x51\x9d\x51\x9e\x51\x9f\x51\xa1\x51\xa3\x51\xa6\x51\xa7\x51\xa8\x51\xa9\x51\xaa\x51\xad\x51\xae\x51\xb4\x51\xb8\x51\xb9\x51\xba\x51\xbe\x51\xbf\x51\xc1\x51\xc2\x51\xc3\x51\xc5\x51\xc8\x51\xca\x51\xcd\x51\xce\x51\xd0\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd2\x51\xd3\x51\xd4\x51\xd5\x51\xd6\x51\xd7\x51\xd8\x51\xd9\x51\xda\x51\xdc\x51\xde\x51\xdf\x51\xe2\x51\xe3\x51\xe5\x51\xe6\x51\xe7\x51\xe8\x51\xe9\x51\xea\x51\xec\x51\xee\x51\xf1\x51\xf2\x51\xf4\x51\xf7\x51\xfe\x52\x04\x52\x05\x52\x09\x52\x0b\x52\x0c\x52\x0f\x52\x10\x52\x13\x52\x14\x52\x15\x52\x1c\x52\x1e\x52\x1f\x52\x21\x52\x22\x52\x23\x52\x25\x52\x26\x52\x27\x52\x2a\x52\x2c\x52\x2f\x52\x31\x52\x32\x52\x34\x52\x35\x52\x3c\x52\x3e\x52\x44\x52\x45\x52\x46\x52\x47\x52\x48\x52\x49\x52\x4b\x52\x4e", /* 8480 */ "\x00\x00\x52\x4f\x52\x52\x52\x53\x52\x55\x52\x57\x52\x58\x52\x59\x52\x5a\x52\x5b\x52\x5d\x52\x5f\x52\x60\x52\x62\x52\x63\x52\x64\x52\x66\x52\x68\x52\x6b\x52\x6c\x52\x6d\x52\x6e\x52\x70\x52\x71\x52\x73\x52\x74\x52\x75\x52\x76\x52\x77\x52\x78\x52\x79\x52\x7a\x52\x7b\x52\x7c\x52\x7e\x52\x80\x52\x83\x52\x84\x52\x85\x52\x86\x52\x87\x52\x89\x52\x8a\x52\x8b\x52\x8c\x52\x8d\x52\x8e\x52\x8f\x52\x91\x52\x92\x52\x94\x52\x95\x52\x96\x52\x97\x52\x98\x52\x99\x52\x9a\x52\x9c\x52\xa4\x52\xa5\x52\xa6\x52\xa7\x52\xae\x52\xaf\x52\xb0\x52\xb4\x52\xb5\x52\xb6\x52\xb7\x52\xb8\x52\xb9\x52\xba\x52\xbb\x52\xbc\x52\xbd\x52\xc0\x52\xc1\x52\xc2\x52\xc4\x52\xc5\x52\xc6\x52\xc8\x52\xca\x52\xcc\x52\xcd\x52\xce\x52\xcf\x52\xd1\x52\xd3\x52\xd4\x52\xd5\x52\xd7\x52\xd9\x52\xda\x52\xdb\x52\xdc\x52\xdd\x52\xde\x52\xe0\x52\xe1\x52\xe2\x52\xe3\x52\xe5\x52\xe6\x52\xe7\x52\xe8\x52\xe9\x52\xea\x52\xeb\x52\xec\x52\xed\x52\xee\x52\xef\x52\xf1\x52\xf2\x52\xf3\x52\xf4\x52\xf5\x52\xf6\x52\xf7\x52\xf8\x52\xfb\x52\xfc\x52\xfd\x53\x01\x53\x02\x00\x00\x00\x00", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x03\x53\x04\x53\x07\x53\x09\x53\x0a\x53\x0b\x53\x0c\x53\x0e\x53\x11\x53\x12\x53\x13\x53\x14\x53\x18\x53\x1b\x53\x1c\x53\x1e\x53\x1f\x53\x22\x53\x24\x53\x25\x53\x27\x53\x28\x53\x29\x53\x2b\x53\x2c\x53\x2d\x53\x2f\x53\x30\x53\x31\x53\x32\x53\x33\x53\x34\x53\x35\x53\x36\x53\x37\x53\x38\x53\x3c\x53\x3d\x53\x40\x53\x42\x53\x44\x53\x46\x53\x4b\x53\x4c\x53\x4d\x53\x50\x53\x54\x53\x58\x53\x59\x53\x5b\x53\x5d\x53\x65\x53\x68\x53\x6a\x53\x6c\x53\x6d\x53\x72\x53\x76\x53\x79\x53\x7b\x53\x7c\x53\x7d\x53\x7e", /* 8580 */ "\x00\x00\x53\x80\x53\x81\x53\x83\x53\x87\x53\x88\x53\x8a\x53\x8e\x53\x8f\x53\x90\x53\x91\x53\x92\x53\x93\x53\x94\x53\x96\x53\x97\x53\x99\x53\x9b\x53\x9c\x53\x9e\x53\xa0\x53\xa1\x53\xa4\x53\xa7\x53\xaa\x53\xab\x53\xac\x53\xad\x53\xaf\x53\xb0\x53\xb1\x53\xb2\x53\xb3\x53\xb4\x53\xb5\x53\xb7\x53\xb8\x53\xb9\x53\xba\x53\xbc\x53\xbd\x53\xbe\x53\xc0\x53\xc3\x53\xc4\x53\xc5\x53\xc6\x53\xc7\x53\xce\x53\xcf\x53\xd0\x53\xd2\x53\xd3\x53\xd5\x53\xda\x53\xdc\x53\xdd\x53\xde\x53\xe1\x53\xe2\x53\xe7\x53\xf4\x53\xfa\x53\xfe\x53\xff\x54\x00\x54\x02\x54\x05\x54\x07\x54\x0b\x54\x14\x54\x18\x54\x19\x54\x1a\x54\x1c\x54\x22\x54\x24\x54\x25\x54\x2a\x54\x30\x54\x33\x54\x36\x54\x37\x54\x3a\x54\x3d\x54\x3f\x54\x41\x54\x42\x54\x44\x54\x45\x54\x47\x54\x49\x54\x4c\x54\x4d\x54\x4e\x54\x4f\x54\x51\x54\x5a\x54\x5d\x54\x5e\x54\x5f\x54\x60\x54\x61\x54\x63\x54\x65\x54\x67\x54\x69\x54\x6a\x54\x6b\x54\x6c\x54\x6d\x54\x6e\x54\x6f\x54\x70\x54\x74\x54\x79\x54\x7a\x54\x7e\x54\x7f\x54\x81\x54\x83\x54\x85\x54\x87\x54\x88\x54\x89\x54\x8a\x00\x00\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8d\x54\x91\x54\x93\x54\x97\x54\x98\x54\x9c\x54\x9e\x54\x9f\x54\xa0\x54\xa1\x54\xa2\x54\xa5\x54\xae\x54\xb0\x54\xb2\x54\xb5\x54\xb6\x54\xb7\x54\xb9\x54\xba\x54\xbc\x54\xbe\x54\xc3\x54\xc5\x54\xca\x54\xcb\x54\xd6\x54\xd8\x54\xdb\x54\xe0\x54\xe1\x54\xe2\x54\xe3\x54\xe4\x54\xeb\x54\xec\x54\xef\x54\xf0\x54\xf1\x54\xf4\x54\xf5\x54\xf6\x54\xf7\x54\xf8\x54\xf9\x54\xfb\x54\xfe\x55\x00\x55\x02\x55\x03\x55\x04\x55\x05\x55\x08\x55\x0a\x55\x0b\x55\x0c\x55\x0d\x55\x0e\x55\x12\x55\x13\x55\x15\x55\x16\x55\x17", /* 8680 */ "\x00\x00\x55\x18\x55\x19\x55\x1a\x55\x1c\x55\x1d\x55\x1e\x55\x1f\x55\x21\x55\x25\x55\x26\x55\x28\x55\x29\x55\x2b\x55\x2d\x55\x32\x55\x34\x55\x35\x55\x36\x55\x38\x55\x39\x55\x3a\x55\x3b\x55\x3d\x55\x40\x55\x42\x55\x45\x55\x47\x55\x48\x55\x4b\x55\x4c\x55\x4d\x55\x4e\x55\x4f\x55\x51\x55\x52\x55\x53\x55\x54\x55\x57\x55\x58\x55\x59\x55\x5a\x55\x5b\x55\x5d\x55\x5e\x55\x5f\x55\x60\x55\x62\x55\x63\x55\x68\x55\x69\x55\x6b\x55\x6f\x55\x70\x55\x71\x55\x72\x55\x73\x55\x74\x55\x79\x55\x7a\x55\x7d\x55\x7f\x55\x85\x55\x86\x55\x8c\x55\x8d\x55\x8e\x55\x90\x55\x92\x55\x93\x55\x95\x55\x96\x55\x97\x55\x9a\x55\x9b\x55\x9e\x55\xa0\x55\xa1\x55\xa2\x55\xa3\x55\xa4\x55\xa5\x55\xa6\x55\xa8\x55\xa9\x55\xaa\x55\xab\x55\xac\x55\xad\x55\xae\x55\xaf\x55\xb0\x55\xb2\x55\xb4\x55\xb6\x55\xb8\x55\xba\x55\xbc\x55\xbf\x55\xc0\x55\xc1\x55\xc2\x55\xc3\x55\xc6\x55\xc7\x55\xc8\x55\xca\x55\xcb\x55\xce\x55\xcf\x55\xd0\x55\xd5\x55\xd7\x55\xd8\x55\xd9\x55\xda\x55\xdb\x55\xde\x55\xe0\x55\xe2\x55\xe7\x55\xe9\x55\xed\x55\xee\x55\xf0\x55\xf1\x00\x00\x00\x00", /* 8700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf4\x55\xf6\x55\xf8\x55\xf9\x55\xfa\x55\xfb\x55\xfc\x55\xff\x56\x02\x56\x03\x56\x04\x56\x05\x56\x06\x56\x07\x56\x0a\x56\x0b\x56\x0d\x56\x10\x56\x11\x56\x12\x56\x13\x56\x14\x56\x15\x56\x16\x56\x17\x56\x19\x56\x1a\x56\x1c\x56\x1d\x56\x20\x56\x21\x56\x22\x56\x25\x56\x26\x56\x28\x56\x29\x56\x2a\x56\x2b\x56\x2e\x56\x2f\x56\x30\x56\x33\x56\x35\x56\x37\x56\x38\x56\x3a\x56\x3c\x56\x3d\x56\x3e\x56\x40\x56\x41\x56\x42\x56\x43\x56\x44\x56\x45\x56\x46\x56\x47\x56\x48\x56\x49\x56\x4a\x56\x4b\x56\x4f\x56\x50", /* 8780 */ "\x00\x00\x56\x51\x56\x52\x56\x53\x56\x55\x56\x56\x56\x5a\x56\x5b\x56\x5d\x56\x5e\x56\x5f\x56\x60\x56\x61\x56\x63\x56\x65\x56\x66\x56\x67\x56\x6d\x56\x6e\x56\x6f\x56\x70\x56\x72\x56\x73\x56\x74\x56\x75\x56\x77\x56\x78\x56\x79\x56\x7a\x56\x7d\x56\x7e\x56\x7f\x56\x80\x56\x81\x56\x82\x56\x83\x56\x84\x56\x87\x56\x88\x56\x89\x56\x8a\x56\x8b\x56\x8c\x56\x8d\x56\x90\x56\x91\x56\x92\x56\x94\x56\x95\x56\x96\x56\x97\x56\x98\x56\x99\x56\x9a\x56\x9b\x56\x9c\x56\x9d\x56\x9e\x56\x9f\x56\xa0\x56\xa1\x56\xa2\x56\xa4\x56\xa5\x56\xa6\x56\xa7\x56\xa8\x56\xa9\x56\xaa\x56\xab\x56\xac\x56\xad\x56\xae\x56\xb0\x56\xb1\x56\xb2\x56\xb3\x56\xb4\x56\xb5\x56\xb6\x56\xb8\x56\xb9\x56\xba\x56\xbb\x56\xbd\x56\xbe\x56\xbf\x56\xc0\x56\xc1\x56\xc2\x56\xc3\x56\xc4\x56\xc5\x56\xc6\x56\xc7\x56\xc8\x56\xc9\x56\xcb\x56\xcc\x56\xcd\x56\xce\x56\xcf\x56\xd0\x56\xd1\x56\xd2\x56\xd3\x56\xd5\x56\xd6\x56\xd8\x56\xd9\x56\xdc\x56\xe3\x56\xe5\x56\xe6\x56\xe7\x56\xe8\x56\xe9\x56\xea\x56\xec\x56\xee\x56\xef\x56\xf2\x56\xf3\x56\xf6\x56\xf7\x56\xf8\x00\x00\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xfb\x56\xfc\x57\x00\x57\x01\x57\x02\x57\x05\x57\x07\x57\x0b\x57\x0c\x57\x0d\x57\x0e\x57\x0f\x57\x10\x57\x11\x57\x12\x57\x13\x57\x14\x57\x15\x57\x16\x57\x17\x57\x18\x57\x19\x57\x1a\x57\x1b\x57\x1d\x57\x1e\x57\x20\x57\x21\x57\x22\x57\x24\x57\x25\x57\x26\x57\x27\x57\x2b\x57\x31\x57\x32\x57\x34\x57\x35\x57\x36\x57\x37\x57\x38\x57\x3c\x57\x3d\x57\x3f\x57\x41\x57\x43\x57\x44\x57\x45\x57\x46\x57\x48\x57\x49\x57\x4b\x57\x52\x57\x53\x57\x54\x57\x55\x57\x56\x57\x58\x57\x59\x57\x62\x57\x63\x57\x65\x57\x67", /* 8880 */ "\x00\x00\x57\x6c\x57\x6e\x57\x70\x57\x71\x57\x72\x57\x74\x57\x75\x57\x78\x57\x79\x57\x7a\x57\x7d\x57\x7e\x57\x7f\x57\x80\x57\x81\x57\x87\x57\x88\x57\x89\x57\x8a\x57\x8d\x57\x8e\x57\x8f\x57\x90\x57\x91\x57\x94\x57\x95\x57\x96\x57\x97\x57\x98\x57\x99\x57\x9a\x57\x9c\x57\x9d\x57\x9e\x57\x9f\x57\xa5\x57\xa8\x57\xaa\x57\xac\x57\xaf\x57\xb0\x57\xb1\x57\xb3\x57\xb5\x57\xb6\x57\xb7\x57\xb9\x57\xba\x57\xbb\x57\xbc\x57\xbd\x57\xbe\x57\xbf\x57\xc0\x57\xc1\x57\xc4\x57\xc5\x57\xc6\x57\xc7\x57\xc8\x57\xc9\x57\xca\x57\xcc\x57\xcd\x57\xd0\x57\xd1\x57\xd3\x57\xd6\x57\xd7\x57\xdb\x57\xdc\x57\xde\x57\xe1\x57\xe2\x57\xe3\x57\xe5\x57\xe6\x57\xe7\x57\xe8\x57\xe9\x57\xea\x57\xeb\x57\xec\x57\xee\x57\xf0\x57\xf1\x57\xf2\x57\xf3\x57\xf5\x57\xf6\x57\xf7\x57\xfb\x57\xfc\x57\xfe\x57\xff\x58\x01\x58\x03\x58\x04\x58\x05\x58\x08\x58\x09\x58\x0a\x58\x0c\x58\x0e\x58\x0f\x58\x10\x58\x12\x58\x13\x58\x14\x58\x16\x58\x17\x58\x18\x58\x1a\x58\x1b\x58\x1c\x58\x1d\x58\x1f\x58\x22\x58\x23\x58\x25\x58\x26\x58\x27\x58\x28\x58\x29\x58\x2b\x00\x00\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x2c\x58\x2d\x58\x2e\x58\x2f\x58\x31\x58\x32\x58\x33\x58\x34\x58\x36\x58\x37\x58\x38\x58\x39\x58\x3a\x58\x3b\x58\x3c\x58\x3d\x58\x3e\x58\x3f\x58\x40\x58\x41\x58\x42\x58\x43\x58\x45\x58\x46\x58\x47\x58\x48\x58\x49\x58\x4a\x58\x4b\x58\x4e\x58\x4f\x58\x50\x58\x52\x58\x53\x58\x55\x58\x56\x58\x57\x58\x59\x58\x5a\x58\x5b\x58\x5c\x58\x5d\x58\x5f\x58\x60\x58\x61\x58\x62\x58\x63\x58\x64\x58\x66\x58\x67\x58\x68\x58\x69\x58\x6a\x58\x6d\x58\x6e\x58\x6f\x58\x70\x58\x71\x58\x72\x58\x73\x58\x74\x58\x75\x58\x76", /* 8980 */ "\x00\x00\x58\x77\x58\x78\x58\x79\x58\x7a\x58\x7b\x58\x7c\x58\x7d\x58\x7f\x58\x82\x58\x84\x58\x86\x58\x87\x58\x88\x58\x8a\x58\x8b\x58\x8c\x58\x8d\x58\x8e\x58\x8f\x58\x90\x58\x91\x58\x94\x58\x95\x58\x96\x58\x97\x58\x98\x58\x9b\x58\x9c\x58\x9d\x58\xa0\x58\xa1\x58\xa2\x58\xa3\x58\xa4\x58\xa5\x58\xa6\x58\xa7\x58\xaa\x58\xab\x58\xac\x58\xad\x58\xae\x58\xaf\x58\xb0\x58\xb1\x58\xb2\x58\xb3\x58\xb4\x58\xb5\x58\xb6\x58\xb7\x58\xb8\x58\xb9\x58\xba\x58\xbb\x58\xbd\x58\xbe\x58\xbf\x58\xc0\x58\xc2\x58\xc3\x58\xc4\x58\xc6\x58\xc7\x58\xc8\x58\xc9\x58\xca\x58\xcb\x58\xcc\x58\xcd\x58\xce\x58\xcf\x58\xd0\x58\xd2\x58\xd3\x58\xd4\x58\xd6\x58\xd7\x58\xd8\x58\xd9\x58\xda\x58\xdb\x58\xdc\x58\xdd\x58\xde\x58\xdf\x58\xe0\x58\xe1\x58\xe2\x58\xe3\x58\xe5\x58\xe6\x58\xe7\x58\xe8\x58\xe9\x58\xea\x58\xed\x58\xef\x58\xf1\x58\xf2\x58\xf4\x58\xf5\x58\xf7\x58\xf8\x58\xfa\x58\xfb\x58\xfc\x58\xfd\x58\xfe\x58\xff\x59\x00\x59\x01\x59\x03\x59\x05\x59\x06\x59\x08\x59\x09\x59\x0a\x59\x0b\x59\x0c\x59\x0e\x59\x10\x59\x11\x59\x12\x59\x13\x00\x00\x00\x00", /* 8a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x17\x59\x18\x59\x1b\x59\x1d\x59\x1e\x59\x20\x59\x21\x59\x22\x59\x23\x59\x26\x59\x28\x59\x2c\x59\x30\x59\x32\x59\x33\x59\x35\x59\x36\x59\x3b\x59\x3d\x59\x3e\x59\x3f\x59\x40\x59\x43\x59\x45\x59\x46\x59\x4a\x59\x4c\x59\x4d\x59\x50\x59\x52\x59\x53\x59\x59\x59\x5b\x59\x5c\x59\x5d\x59\x5e\x59\x5f\x59\x61\x59\x63\x59\x64\x59\x66\x59\x67\x59\x68\x59\x69\x59\x6a\x59\x6b\x59\x6c\x59\x6d\x59\x6e\x59\x6f\x59\x70\x59\x71\x59\x72\x59\x75\x59\x77\x59\x7a\x59\x7b\x59\x7c\x59\x7e\x59\x7f\x59\x80\x59\x85\x59\x89", /* 8a80 */ "\x00\x00\x59\x8b\x59\x8c\x59\x8e\x59\x8f\x59\x90\x59\x91\x59\x94\x59\x95\x59\x98\x59\x9a\x59\x9b\x59\x9c\x59\x9d\x59\x9f\x59\xa0\x59\xa1\x59\xa2\x59\xa6\x59\xa7\x59\xac\x59\xad\x59\xb0\x59\xb1\x59\xb3\x59\xb4\x59\xb5\x59\xb6\x59\xb7\x59\xb8\x59\xba\x59\xbc\x59\xbd\x59\xbf\x59\xc0\x59\xc1\x59\xc2\x59\xc3\x59\xc4\x59\xc5\x59\xc7\x59\xc8\x59\xc9\x59\xcc\x59\xcd\x59\xce\x59\xcf\x59\xd5\x59\xd6\x59\xd9\x59\xdb\x59\xde\x59\xdf\x59\xe0\x59\xe1\x59\xe2\x59\xe4\x59\xe6\x59\xe7\x59\xe9\x59\xea\x59\xeb\x59\xed\x59\xee\x59\xef\x59\xf0\x59\xf1\x59\xf2\x59\xf3\x59\xf4\x59\xf5\x59\xf6\x59\xf7\x59\xf8\x59\xfa\x59\xfc\x59\xfd\x59\xfe\x5a\x00\x5a\x02\x5a\x0a\x5a\x0b\x5a\x0d\x5a\x0e\x5a\x0f\x5a\x10\x5a\x12\x5a\x14\x5a\x15\x5a\x16\x5a\x17\x5a\x19\x5a\x1a\x5a\x1b\x5a\x1d\x5a\x1e\x5a\x21\x5a\x22\x5a\x24\x5a\x26\x5a\x27\x5a\x28\x5a\x2a\x5a\x2b\x5a\x2c\x5a\x2d\x5a\x2e\x5a\x2f\x5a\x30\x5a\x33\x5a\x35\x5a\x37\x5a\x38\x5a\x39\x5a\x3a\x5a\x3b\x5a\x3d\x5a\x3e\x5a\x3f\x5a\x41\x5a\x42\x5a\x43\x5a\x44\x5a\x45\x5a\x47\x5a\x48\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4b\x5a\x4c\x5a\x4d\x5a\x4e\x5a\x4f\x5a\x50\x5a\x51\x5a\x52\x5a\x53\x5a\x54\x5a\x56\x5a\x57\x5a\x58\x5a\x59\x5a\x5b\x5a\x5c\x5a\x5d\x5a\x5e\x5a\x5f\x5a\x60\x5a\x61\x5a\x63\x5a\x64\x5a\x65\x5a\x66\x5a\x68\x5a\x69\x5a\x6b\x5a\x6c\x5a\x6d\x5a\x6e\x5a\x6f\x5a\x70\x5a\x71\x5a\x72\x5a\x73\x5a\x78\x5a\x79\x5a\x7b\x5a\x7c\x5a\x7d\x5a\x7e\x5a\x80\x5a\x81\x5a\x82\x5a\x83\x5a\x84\x5a\x85\x5a\x86\x5a\x87\x5a\x88\x5a\x89\x5a\x8a\x5a\x8b\x5a\x8c\x5a\x8d\x5a\x8e\x5a\x8f\x5a\x90\x5a\x91\x5a\x93\x5a\x94\x5a\x95", /* 8b80 */ "\x00\x00\x5a\x96\x5a\x97\x5a\x98\x5a\x99\x5a\x9c\x5a\x9d\x5a\x9e\x5a\x9f\x5a\xa0\x5a\xa1\x5a\xa2\x5a\xa3\x5a\xa4\x5a\xa5\x5a\xa6\x5a\xa7\x5a\xa8\x5a\xa9\x5a\xab\x5a\xac\x5a\xad\x5a\xae\x5a\xaf\x5a\xb0\x5a\xb1\x5a\xb4\x5a\xb6\x5a\xb7\x5a\xb9\x5a\xba\x5a\xbb\x5a\xbc\x5a\xbd\x5a\xbf\x5a\xc0\x5a\xc3\x5a\xc4\x5a\xc5\x5a\xc6\x5a\xc7\x5a\xc8\x5a\xca\x5a\xcb\x5a\xcd\x5a\xce\x5a\xcf\x5a\xd0\x5a\xd1\x5a\xd3\x5a\xd5\x5a\xd7\x5a\xd9\x5a\xda\x5a\xdb\x5a\xdd\x5a\xde\x5a\xdf\x5a\xe2\x5a\xe4\x5a\xe5\x5a\xe7\x5a\xe8\x5a\xea\x5a\xec\x5a\xed\x5a\xee\x5a\xef\x5a\xf0\x5a\xf2\x5a\xf3\x5a\xf4\x5a\xf5\x5a\xf6\x5a\xf7\x5a\xf8\x5a\xf9\x5a\xfa\x5a\xfb\x5a\xfc\x5a\xfd\x5a\xfe\x5a\xff\x5b\x00\x5b\x01\x5b\x02\x5b\x03\x5b\x04\x5b\x05\x5b\x06\x5b\x07\x5b\x08\x5b\x0a\x5b\x0b\x5b\x0c\x5b\x0d\x5b\x0e\x5b\x0f\x5b\x10\x5b\x11\x5b\x12\x5b\x13\x5b\x14\x5b\x15\x5b\x18\x5b\x19\x5b\x1a\x5b\x1b\x5b\x1c\x5b\x1d\x5b\x1e\x5b\x1f\x5b\x20\x5b\x21\x5b\x22\x5b\x23\x5b\x24\x5b\x25\x5b\x26\x5b\x27\x5b\x28\x5b\x29\x5b\x2a\x5b\x2b\x5b\x2c\x5b\x2d\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x2e\x5b\x2f\x5b\x30\x5b\x31\x5b\x33\x5b\x35\x5b\x36\x5b\x38\x5b\x39\x5b\x3a\x5b\x3b\x5b\x3c\x5b\x3d\x5b\x3e\x5b\x3f\x5b\x41\x5b\x42\x5b\x43\x5b\x44\x5b\x45\x5b\x46\x5b\x47\x5b\x48\x5b\x49\x5b\x4a\x5b\x4b\x5b\x4c\x5b\x4d\x5b\x4e\x5b\x4f\x5b\x52\x5b\x56\x5b\x5e\x5b\x60\x5b\x61\x5b\x67\x5b\x68\x5b\x6b\x5b\x6d\x5b\x6e\x5b\x6f\x5b\x72\x5b\x74\x5b\x76\x5b\x77\x5b\x78\x5b\x79\x5b\x7b\x5b\x7c\x5b\x7e\x5b\x7f\x5b\x82\x5b\x86\x5b\x8a\x5b\x8d\x5b\x8e\x5b\x90\x5b\x91\x5b\x92\x5b\x94\x5b\x96\x5b\x9f\x5b\xa7", /* 8c80 */ "\x00\x00\x5b\xa8\x5b\xa9\x5b\xac\x5b\xad\x5b\xae\x5b\xaf\x5b\xb1\x5b\xb2\x5b\xb7\x5b\xba\x5b\xbb\x5b\xbc\x5b\xc0\x5b\xc1\x5b\xc3\x5b\xc8\x5b\xc9\x5b\xca\x5b\xcb\x5b\xcd\x5b\xce\x5b\xcf\x5b\xd1\x5b\xd4\x5b\xd5\x5b\xd6\x5b\xd7\x5b\xd8\x5b\xd9\x5b\xda\x5b\xdb\x5b\xdc\x5b\xe0\x5b\xe2\x5b\xe3\x5b\xe6\x5b\xe7\x5b\xe9\x5b\xea\x5b\xeb\x5b\xec\x5b\xed\x5b\xef\x5b\xf1\x5b\xf2\x5b\xf3\x5b\xf4\x5b\xf5\x5b\xf6\x5b\xf7\x5b\xfd\x5b\xfe\x5c\x00\x5c\x02\x5c\x03\x5c\x05\x5c\x07\x5c\x08\x5c\x0b\x5c\x0c\x5c\x0d\x5c\x0e\x5c\x10\x5c\x12\x5c\x13\x5c\x17\x5c\x19\x5c\x1b\x5c\x1e\x5c\x1f\x5c\x20\x5c\x21\x5c\x23\x5c\x26\x5c\x28\x5c\x29\x5c\x2a\x5c\x2b\x5c\x2d\x5c\x2e\x5c\x2f\x5c\x30\x5c\x32\x5c\x33\x5c\x35\x5c\x36\x5c\x37\x5c\x43\x5c\x44\x5c\x46\x5c\x47\x5c\x4c\x5c\x4d\x5c\x52\x5c\x53\x5c\x54\x5c\x56\x5c\x57\x5c\x58\x5c\x5a\x5c\x5b\x5c\x5c\x5c\x5d\x5c\x5f\x5c\x62\x5c\x64\x5c\x67\x5c\x68\x5c\x69\x5c\x6a\x5c\x6b\x5c\x6c\x5c\x6d\x5c\x70\x5c\x72\x5c\x73\x5c\x74\x5c\x75\x5c\x76\x5c\x77\x5c\x78\x5c\x7b\x5c\x7c\x5c\x7d\x5c\x7e\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x80\x5c\x83\x5c\x84\x5c\x85\x5c\x86\x5c\x87\x5c\x89\x5c\x8a\x5c\x8b\x5c\x8e\x5c\x8f\x5c\x92\x5c\x93\x5c\x95\x5c\x9d\x5c\x9e\x5c\x9f\x5c\xa0\x5c\xa1\x5c\xa4\x5c\xa5\x5c\xa6\x5c\xa7\x5c\xa8\x5c\xaa\x5c\xae\x5c\xaf\x5c\xb0\x5c\xb2\x5c\xb4\x5c\xb6\x5c\xb9\x5c\xba\x5c\xbb\x5c\xbc\x5c\xbe\x5c\xc0\x5c\xc2\x5c\xc3\x5c\xc5\x5c\xc6\x5c\xc7\x5c\xc8\x5c\xc9\x5c\xca\x5c\xcc\x5c\xcd\x5c\xce\x5c\xcf\x5c\xd0\x5c\xd1\x5c\xd3\x5c\xd4\x5c\xd5\x5c\xd6\x5c\xd7\x5c\xd8\x5c\xda\x5c\xdb\x5c\xdc\x5c\xdd\x5c\xde\x5c\xdf", /* 8d80 */ "\x00\x00\x5c\xe0\x5c\xe2\x5c\xe3\x5c\xe7\x5c\xe9\x5c\xeb\x5c\xec\x5c\xee\x5c\xef\x5c\xf1\x5c\xf2\x5c\xf3\x5c\xf4\x5c\xf5\x5c\xf6\x5c\xf7\x5c\xf8\x5c\xf9\x5c\xfa\x5c\xfc\x5c\xfd\x5c\xfe\x5c\xff\x5d\x00\x5d\x01\x5d\x04\x5d\x05\x5d\x08\x5d\x09\x5d\x0a\x5d\x0b\x5d\x0c\x5d\x0d\x5d\x0f\x5d\x10\x5d\x11\x5d\x12\x5d\x13\x5d\x15\x5d\x17\x5d\x18\x5d\x19\x5d\x1a\x5d\x1c\x5d\x1d\x5d\x1f\x5d\x20\x5d\x21\x5d\x22\x5d\x23\x5d\x25\x5d\x28\x5d\x2a\x5d\x2b\x5d\x2c\x5d\x2f\x5d\x30\x5d\x31\x5d\x32\x5d\x33\x5d\x35\x5d\x36\x5d\x37\x5d\x38\x5d\x39\x5d\x3a\x5d\x3b\x5d\x3c\x5d\x3f\x5d\x40\x5d\x41\x5d\x42\x5d\x43\x5d\x44\x5d\x45\x5d\x46\x5d\x48\x5d\x49\x5d\x4d\x5d\x4e\x5d\x4f\x5d\x50\x5d\x51\x5d\x52\x5d\x53\x5d\x54\x5d\x55\x5d\x56\x5d\x57\x5d\x59\x5d\x5a\x5d\x5c\x5d\x5e\x5d\x5f\x5d\x60\x5d\x61\x5d\x62\x5d\x63\x5d\x64\x5d\x65\x5d\x66\x5d\x67\x5d\x68\x5d\x6a\x5d\x6d\x5d\x6e\x5d\x70\x5d\x71\x5d\x72\x5d\x73\x5d\x75\x5d\x76\x5d\x77\x5d\x78\x5d\x79\x5d\x7a\x5d\x7b\x5d\x7c\x5d\x7d\x5d\x7e\x5d\x7f\x5d\x80\x5d\x81\x5d\x83\x5d\x84\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x85\x5d\x86\x5d\x87\x5d\x88\x5d\x89\x5d\x8a\x5d\x8b\x5d\x8c\x5d\x8d\x5d\x8e\x5d\x8f\x5d\x90\x5d\x91\x5d\x92\x5d\x93\x5d\x94\x5d\x95\x5d\x96\x5d\x97\x5d\x98\x5d\x9a\x5d\x9b\x5d\x9c\x5d\x9e\x5d\x9f\x5d\xa0\x5d\xa1\x5d\xa2\x5d\xa3\x5d\xa4\x5d\xa5\x5d\xa6\x5d\xa7\x5d\xa8\x5d\xa9\x5d\xaa\x5d\xab\x5d\xac\x5d\xad\x5d\xae\x5d\xaf\x5d\xb0\x5d\xb1\x5d\xb2\x5d\xb3\x5d\xb4\x5d\xb5\x5d\xb6\x5d\xb8\x5d\xb9\x5d\xba\x5d\xbb\x5d\xbc\x5d\xbd\x5d\xbe\x5d\xbf\x5d\xc0\x5d\xc1\x5d\xc2\x5d\xc3\x5d\xc4\x5d\xc6\x5d\xc7", /* 8e80 */ "\x00\x00\x5d\xc8\x5d\xc9\x5d\xca\x5d\xcb\x5d\xcc\x5d\xce\x5d\xcf\x5d\xd0\x5d\xd1\x5d\xd2\x5d\xd3\x5d\xd4\x5d\xd5\x5d\xd6\x5d\xd7\x5d\xd8\x5d\xd9\x5d\xda\x5d\xdc\x5d\xdf\x5d\xe0\x5d\xe3\x5d\xe4\x5d\xea\x5d\xec\x5d\xed\x5d\xf0\x5d\xf5\x5d\xf6\x5d\xf8\x5d\xf9\x5d\xfa\x5d\xfb\x5d\xfc\x5d\xff\x5e\x00\x5e\x04\x5e\x07\x5e\x09\x5e\x0a\x5e\x0b\x5e\x0d\x5e\x0e\x5e\x12\x5e\x13\x5e\x17\x5e\x1e\x5e\x1f\x5e\x20\x5e\x21\x5e\x22\x5e\x23\x5e\x24\x5e\x25\x5e\x28\x5e\x29\x5e\x2a\x5e\x2b\x5e\x2c\x5e\x2f\x5e\x30\x5e\x32\x5e\x33\x5e\x34\x5e\x35\x5e\x36\x5e\x39\x5e\x3a\x5e\x3e\x5e\x3f\x5e\x40\x5e\x41\x5e\x43\x5e\x46\x5e\x47\x5e\x48\x5e\x49\x5e\x4a\x5e\x4b\x5e\x4d\x5e\x4e\x5e\x4f\x5e\x50\x5e\x51\x5e\x52\x5e\x53\x5e\x56\x5e\x57\x5e\x58\x5e\x59\x5e\x5a\x5e\x5c\x5e\x5d\x5e\x5f\x5e\x60\x5e\x63\x5e\x64\x5e\x65\x5e\x66\x5e\x67\x5e\x68\x5e\x69\x5e\x6a\x5e\x6b\x5e\x6c\x5e\x6d\x5e\x6e\x5e\x6f\x5e\x70\x5e\x71\x5e\x75\x5e\x77\x5e\x79\x5e\x7e\x5e\x81\x5e\x82\x5e\x83\x5e\x85\x5e\x88\x5e\x89\x5e\x8c\x5e\x8d\x5e\x8e\x5e\x92\x5e\x98\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9b\x5e\x9d\x5e\xa1\x5e\xa2\x5e\xa3\x5e\xa4\x5e\xa8\x5e\xa9\x5e\xaa\x5e\xab\x5e\xac\x5e\xae\x5e\xaf\x5e\xb0\x5e\xb1\x5e\xb2\x5e\xb4\x5e\xba\x5e\xbb\x5e\xbc\x5e\xbd\x5e\xbf\x5e\xc0\x5e\xc1\x5e\xc2\x5e\xc3\x5e\xc4\x5e\xc5\x5e\xc6\x5e\xc7\x5e\xc8\x5e\xcb\x5e\xcc\x5e\xcd\x5e\xce\x5e\xcf\x5e\xd0\x5e\xd4\x5e\xd5\x5e\xd7\x5e\xd8\x5e\xd9\x5e\xda\x5e\xdc\x5e\xdd\x5e\xde\x5e\xdf\x5e\xe0\x5e\xe1\x5e\xe2\x5e\xe3\x5e\xe4\x5e\xe5\x5e\xe6\x5e\xe7\x5e\xe9\x5e\xeb\x5e\xec\x5e\xed\x5e\xee\x5e\xef\x5e\xf0\x5e\xf1", /* 8f80 */ "\x00\x00\x5e\xf2\x5e\xf3\x5e\xf5\x5e\xf8\x5e\xf9\x5e\xfb\x5e\xfc\x5e\xfd\x5f\x05\x5f\x06\x5f\x07\x5f\x09\x5f\x0c\x5f\x0d\x5f\x0e\x5f\x10\x5f\x12\x5f\x14\x5f\x16\x5f\x19\x5f\x1a\x5f\x1c\x5f\x1d\x5f\x1e\x5f\x21\x5f\x22\x5f\x23\x5f\x24\x5f\x28\x5f\x2b\x5f\x2c\x5f\x2e\x5f\x30\x5f\x32\x5f\x33\x5f\x34\x5f\x35\x5f\x36\x5f\x37\x5f\x38\x5f\x3b\x5f\x3d\x5f\x3e\x5f\x3f\x5f\x41\x5f\x42\x5f\x43\x5f\x44\x5f\x45\x5f\x46\x5f\x47\x5f\x48\x5f\x49\x5f\x4a\x5f\x4b\x5f\x4c\x5f\x4d\x5f\x4e\x5f\x4f\x5f\x51\x5f\x54\x5f\x59\x5f\x5a\x5f\x5b\x5f\x5c\x5f\x5e\x5f\x5f\x5f\x60\x5f\x63\x5f\x65\x5f\x67\x5f\x68\x5f\x6b\x5f\x6e\x5f\x6f\x5f\x72\x5f\x74\x5f\x75\x5f\x76\x5f\x78\x5f\x7a\x5f\x7d\x5f\x7e\x5f\x7f\x5f\x83\x5f\x86\x5f\x8d\x5f\x8e\x5f\x8f\x5f\x91\x5f\x93\x5f\x94\x5f\x96\x5f\x9a\x5f\x9b\x5f\x9d\x5f\x9e\x5f\x9f\x5f\xa0\x5f\xa2\x5f\xa3\x5f\xa4\x5f\xa5\x5f\xa6\x5f\xa7\x5f\xa9\x5f\xab\x5f\xac\x5f\xaf\x5f\xb0\x5f\xb1\x5f\xb2\x5f\xb3\x5f\xb4\x5f\xb6\x5f\xb8\x5f\xb9\x5f\xba\x5f\xbb\x5f\xbe\x5f\xbf\x5f\xc0\x5f\xc1\x5f\xc2\x5f\xc7\x00\x00\x00\x00", /* 9000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc8\x5f\xca\x5f\xcb\x5f\xce\x5f\xd3\x5f\xd4\x5f\xd5\x5f\xda\x5f\xdb\x5f\xdc\x5f\xde\x5f\xdf\x5f\xe2\x5f\xe3\x5f\xe5\x5f\xe6\x5f\xe8\x5f\xe9\x5f\xec\x5f\xef\x5f\xf0\x5f\xf2\x5f\xf3\x5f\xf4\x5f\xf6\x5f\xf7\x5f\xf9\x5f\xfa\x5f\xfc\x60\x07\x60\x08\x60\x09\x60\x0b\x60\x0c\x60\x10\x60\x11\x60\x13\x60\x17\x60\x18\x60\x1a\x60\x1e\x60\x1f\x60\x22\x60\x23\x60\x24\x60\x2c\x60\x2d\x60\x2e\x60\x30\x60\x31\x60\x32\x60\x33\x60\x34\x60\x36\x60\x37\x60\x38\x60\x39\x60\x3a\x60\x3d\x60\x3e\x60\x40\x60\x44\x60\x45", /* 9080 */ "\x00\x00\x60\x46\x60\x47\x60\x48\x60\x49\x60\x4a\x60\x4c\x60\x4e\x60\x4f\x60\x51\x60\x53\x60\x54\x60\x56\x60\x57\x60\x58\x60\x5b\x60\x5c\x60\x5e\x60\x5f\x60\x60\x60\x61\x60\x65\x60\x66\x60\x6e\x60\x71\x60\x72\x60\x74\x60\x75\x60\x77\x60\x7e\x60\x80\x60\x81\x60\x82\x60\x85\x60\x86\x60\x87\x60\x88\x60\x8a\x60\x8b\x60\x8e\x60\x8f\x60\x90\x60\x91\x60\x93\x60\x95\x60\x97\x60\x98\x60\x99\x60\x9c\x60\x9e\x60\xa1\x60\xa2\x60\xa4\x60\xa5\x60\xa7\x60\xa9\x60\xaa\x60\xae\x60\xb0\x60\xb3\x60\xb5\x60\xb6\x60\xb7\x60\xb9\x60\xba\x60\xbd\x60\xbe\x60\xbf\x60\xc0\x60\xc1\x60\xc2\x60\xc3\x60\xc4\x60\xc7\x60\xc8\x60\xc9\x60\xcc\x60\xcd\x60\xce\x60\xcf\x60\xd0\x60\xd2\x60\xd3\x60\xd4\x60\xd6\x60\xd7\x60\xd9\x60\xdb\x60\xde\x60\xe1\x60\xe2\x60\xe3\x60\xe4\x60\xe5\x60\xea\x60\xf1\x60\xf2\x60\xf5\x60\xf7\x60\xf8\x60\xfb\x60\xfc\x60\xfd\x60\xfe\x60\xff\x61\x02\x61\x03\x61\x04\x61\x05\x61\x07\x61\x0a\x61\x0b\x61\x0c\x61\x10\x61\x11\x61\x12\x61\x13\x61\x14\x61\x16\x61\x17\x61\x18\x61\x19\x61\x1b\x61\x1c\x61\x1d\x61\x1e\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x21\x61\x22\x61\x25\x61\x28\x61\x29\x61\x2a\x61\x2c\x61\x2d\x61\x2e\x61\x2f\x61\x30\x61\x31\x61\x32\x61\x33\x61\x34\x61\x35\x61\x36\x61\x37\x61\x38\x61\x39\x61\x3a\x61\x3b\x61\x3c\x61\x3d\x61\x3e\x61\x40\x61\x41\x61\x42\x61\x43\x61\x44\x61\x45\x61\x46\x61\x47\x61\x49\x61\x4b\x61\x4d\x61\x4f\x61\x50\x61\x52\x61\x53\x61\x54\x61\x56\x61\x57\x61\x58\x61\x59\x61\x5a\x61\x5b\x61\x5c\x61\x5e\x61\x5f\x61\x60\x61\x61\x61\x63\x61\x64\x61\x65\x61\x66\x61\x69\x61\x6a\x61\x6b\x61\x6c\x61\x6d\x61\x6e\x61\x6f", /* 9180 */ "\x00\x00\x61\x71\x61\x72\x61\x73\x61\x74\x61\x76\x61\x78\x61\x79\x61\x7a\x61\x7b\x61\x7c\x61\x7d\x61\x7e\x61\x7f\x61\x80\x61\x81\x61\x82\x61\x83\x61\x84\x61\x85\x61\x86\x61\x87\x61\x88\x61\x89\x61\x8a\x61\x8c\x61\x8d\x61\x8f\x61\x90\x61\x91\x61\x92\x61\x93\x61\x95\x61\x96\x61\x97\x61\x98\x61\x99\x61\x9a\x61\x9b\x61\x9c\x61\x9e\x61\x9f\x61\xa0\x61\xa1\x61\xa2\x61\xa3\x61\xa4\x61\xa5\x61\xa6\x61\xaa\x61\xab\x61\xad\x61\xae\x61\xaf\x61\xb0\x61\xb1\x61\xb2\x61\xb3\x61\xb4\x61\xb5\x61\xb6\x61\xb8\x61\xb9\x61\xba\x61\xbb\x61\xbc\x61\xbd\x61\xbf\x61\xc0\x61\xc1\x61\xc3\x61\xc4\x61\xc5\x61\xc6\x61\xc7\x61\xc9\x61\xcc\x61\xcd\x61\xce\x61\xcf\x61\xd0\x61\xd3\x61\xd5\x61\xd6\x61\xd7\x61\xd8\x61\xd9\x61\xda\x61\xdb\x61\xdc\x61\xdd\x61\xde\x61\xdf\x61\xe0\x61\xe1\x61\xe2\x61\xe3\x61\xe4\x61\xe5\x61\xe7\x61\xe8\x61\xe9\x61\xea\x61\xeb\x61\xec\x61\xed\x61\xee\x61\xef\x61\xf0\x61\xf1\x61\xf2\x61\xf3\x61\xf4\x61\xf6\x61\xf7\x61\xf8\x61\xf9\x61\xfa\x61\xfb\x61\xfc\x61\xfd\x61\xfe\x62\x00\x62\x01\x62\x02\x62\x03\x00\x00\x00\x00", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x04\x62\x05\x62\x07\x62\x09\x62\x13\x62\x14\x62\x19\x62\x1c\x62\x1d\x62\x1e\x62\x20\x62\x23\x62\x26\x62\x27\x62\x28\x62\x29\x62\x2b\x62\x2d\x62\x2f\x62\x30\x62\x31\x62\x32\x62\x35\x62\x36\x62\x38\x62\x39\x62\x3a\x62\x3b\x62\x3c\x62\x42\x62\x44\x62\x45\x62\x46\x62\x4a\x62\x4f\x62\x50\x62\x55\x62\x56\x62\x57\x62\x59\x62\x5a\x62\x5c\x62\x5d\x62\x5e\x62\x5f\x62\x60\x62\x61\x62\x62\x62\x64\x62\x65\x62\x68\x62\x71\x62\x72\x62\x74\x62\x75\x62\x77\x62\x78\x62\x7a\x62\x7b\x62\x7d\x62\x81\x62\x82\x62\x83", /* 9280 */ "\x00\x00\x62\x85\x62\x86\x62\x87\x62\x88\x62\x8b\x62\x8c\x62\x8d\x62\x8e\x62\x8f\x62\x90\x62\x94\x62\x99\x62\x9c\x62\x9d\x62\x9e\x62\xa3\x62\xa6\x62\xa7\x62\xa9\x62\xaa\x62\xad\x62\xae\x62\xaf\x62\xb0\x62\xb2\x62\xb3\x62\xb4\x62\xb6\x62\xb7\x62\xb8\x62\xba\x62\xbe\x62\xc0\x62\xc1\x62\xc3\x62\xcb\x62\xcf\x62\xd1\x62\xd5\x62\xdd\x62\xde\x62\xe0\x62\xe1\x62\xe4\x62\xea\x62\xeb\x62\xf0\x62\xf2\x62\xf5\x62\xf8\x62\xf9\x62\xfa\x62\xfb\x63\x00\x63\x03\x63\x04\x63\x05\x63\x06\x63\x0a\x63\x0b\x63\x0c\x63\x0d\x63\x0f\x63\x10\x63\x12\x63\x13\x63\x14\x63\x15\x63\x17\x63\x18\x63\x19\x63\x1c\x63\x26\x63\x27\x63\x29\x63\x2c\x63\x2d\x63\x2e\x63\x30\x63\x31\x63\x33\x63\x34\x63\x35\x63\x36\x63\x37\x63\x38\x63\x3b\x63\x3c\x63\x3e\x63\x3f\x63\x40\x63\x41\x63\x44\x63\x47\x63\x48\x63\x4a\x63\x51\x63\x52\x63\x53\x63\x54\x63\x56\x63\x57\x63\x58\x63\x59\x63\x5a\x63\x5b\x63\x5c\x63\x5d\x63\x60\x63\x64\x63\x65\x63\x66\x63\x68\x63\x6a\x63\x6b\x63\x6c\x63\x6f\x63\x70\x63\x72\x63\x73\x63\x74\x63\x75\x63\x78\x63\x79\x63\x7c\x00\x00\x00\x00", /* 9300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7d\x63\x7e\x63\x7f\x63\x81\x63\x83\x63\x84\x63\x85\x63\x86\x63\x8b\x63\x8d\x63\x91\x63\x93\x63\x94\x63\x95\x63\x97\x63\x99\x63\x9a\x63\x9b\x63\x9c\x63\x9d\x63\x9e\x63\x9f\x63\xa1\x63\xa4\x63\xa6\x63\xab\x63\xaf\x63\xb1\x63\xb2\x63\xb5\x63\xb6\x63\xb9\x63\xbb\x63\xbd\x63\xbf\x63\xc0\x63\xc1\x63\xc2\x63\xc3\x63\xc5\x63\xc7\x63\xc8\x63\xca\x63\xcb\x63\xcc\x63\xd1\x63\xd3\x63\xd4\x63\xd5\x63\xd7\x63\xd8\x63\xd9\x63\xda\x63\xdb\x63\xdc\x63\xdd\x63\xdf\x63\xe2\x63\xe4\x63\xe5\x63\xe6\x63\xe7\x63\xe8", /* 9380 */ "\x00\x00\x63\xeb\x63\xec\x63\xee\x63\xef\x63\xf0\x63\xf1\x63\xf3\x63\xf5\x63\xf7\x63\xf9\x63\xfa\x63\xfb\x63\xfc\x63\xfe\x64\x03\x64\x04\x64\x06\x64\x07\x64\x08\x64\x09\x64\x0a\x64\x0d\x64\x0e\x64\x11\x64\x12\x64\x15\x64\x16\x64\x17\x64\x18\x64\x19\x64\x1a\x64\x1d\x64\x1f\x64\x22\x64\x23\x64\x24\x64\x25\x64\x27\x64\x28\x64\x29\x64\x2b\x64\x2e\x64\x2f\x64\x30\x64\x31\x64\x32\x64\x33\x64\x35\x64\x36\x64\x37\x64\x38\x64\x39\x64\x3b\x64\x3c\x64\x3e\x64\x40\x64\x42\x64\x43\x64\x49\x64\x4b\x64\x4c\x64\x4d\x64\x4e\x64\x4f\x64\x50\x64\x51\x64\x53\x64\x55\x64\x56\x64\x57\x64\x59\x64\x5a\x64\x5b\x64\x5c\x64\x5d\x64\x5f\x64\x60\x64\x61\x64\x62\x64\x63\x64\x64\x64\x65\x64\x66\x64\x68\x64\x6a\x64\x6b\x64\x6c\x64\x6e\x64\x6f\x64\x70\x64\x71\x64\x72\x64\x73\x64\x74\x64\x75\x64\x76\x64\x77\x64\x7b\x64\x7c\x64\x7d\x64\x7e\x64\x7f\x64\x80\x64\x81\x64\x83\x64\x86\x64\x88\x64\x89\x64\x8a\x64\x8b\x64\x8c\x64\x8d\x64\x8e\x64\x8f\x64\x90\x64\x93\x64\x94\x64\x97\x64\x98\x64\x9a\x64\x9b\x64\x9c\x64\x9d\x64\x9f\x64\xa0\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa2\x64\xa3\x64\xa5\x64\xa6\x64\xa7\x64\xa8\x64\xaa\x64\xab\x64\xaf\x64\xb1\x64\xb2\x64\xb3\x64\xb4\x64\xb6\x64\xb9\x64\xbb\x64\xbd\x64\xbe\x64\xbf\x64\xc1\x64\xc3\x64\xc4\x64\xc6\x64\xc7\x64\xc8\x64\xc9\x64\xca\x64\xcb\x64\xcc\x64\xcf\x64\xd1\x64\xd3\x64\xd4\x64\xd5\x64\xd6\x64\xd9\x64\xda\x64\xdb\x64\xdc\x64\xdd\x64\xdf\x64\xe0\x64\xe1\x64\xe3\x64\xe5\x64\xe7\x64\xe8\x64\xe9\x64\xea\x64\xeb\x64\xec\x64\xed\x64\xee\x64\xef\x64\xf0\x64\xf1\x64\xf2\x64\xf3\x64\xf4\x64\xf5\x64\xf6\x64\xf7", /* 9480 */ "\x00\x00\x64\xf8\x64\xf9\x64\xfa\x64\xfb\x64\xfc\x64\xfd\x64\xfe\x64\xff\x65\x01\x65\x02\x65\x03\x65\x04\x65\x05\x65\x06\x65\x07\x65\x08\x65\x0a\x65\x0b\x65\x0c\x65\x0d\x65\x0e\x65\x0f\x65\x10\x65\x11\x65\x13\x65\x14\x65\x15\x65\x16\x65\x17\x65\x19\x65\x1a\x65\x1b\x65\x1c\x65\x1d\x65\x1e\x65\x1f\x65\x20\x65\x21\x65\x22\x65\x23\x65\x24\x65\x26\x65\x27\x65\x28\x65\x29\x65\x2a\x65\x2c\x65\x2d\x65\x30\x65\x31\x65\x32\x65\x33\x65\x37\x65\x3a\x65\x3c\x65\x3d\x65\x40\x65\x41\x65\x42\x65\x43\x65\x44\x65\x46\x65\x47\x65\x4a\x65\x4b\x65\x4d\x65\x4e\x65\x50\x65\x52\x65\x53\x65\x54\x65\x57\x65\x58\x65\x5a\x65\x5c\x65\x5f\x65\x60\x65\x61\x65\x64\x65\x65\x65\x67\x65\x68\x65\x69\x65\x6a\x65\x6d\x65\x6e\x65\x6f\x65\x71\x65\x73\x65\x75\x65\x76\x65\x78\x65\x79\x65\x7a\x65\x7b\x65\x7c\x65\x7d\x65\x7e\x65\x7f\x65\x80\x65\x81\x65\x82\x65\x83\x65\x84\x65\x85\x65\x86\x65\x88\x65\x89\x65\x8a\x65\x8d\x65\x8e\x65\x8f\x65\x92\x65\x94\x65\x95\x65\x96\x65\x98\x65\x9a\x65\x9d\x65\x9e\x65\xa0\x65\xa2\x65\xa3\x65\xa6\x65\xa8\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xaa\x65\xac\x65\xae\x65\xb1\x65\xb2\x65\xb3\x65\xb4\x65\xb5\x65\xb6\x65\xb7\x65\xb8\x65\xba\x65\xbb\x65\xbe\x65\xbf\x65\xc0\x65\xc2\x65\xc7\x65\xc8\x65\xc9\x65\xca\x65\xcd\x65\xd0\x65\xd1\x65\xd3\x65\xd4\x65\xd5\x65\xd8\x65\xd9\x65\xda\x65\xdb\x65\xdc\x65\xdd\x65\xde\x65\xdf\x65\xe1\x65\xe3\x65\xe4\x65\xea\x65\xeb\x65\xf2\x65\xf3\x65\xf4\x65\xf5\x65\xf8\x65\xf9\x65\xfb\x65\xfc\x65\xfd\x65\xfe\x65\xff\x66\x01\x66\x04\x66\x05\x66\x07\x66\x08\x66\x09\x66\x0b\x66\x0d\x66\x10\x66\x11\x66\x12\x66\x16", /* 9580 */ "\x00\x00\x66\x17\x66\x18\x66\x1a\x66\x1b\x66\x1c\x66\x1e\x66\x21\x66\x22\x66\x23\x66\x24\x66\x26\x66\x29\x66\x2a\x66\x2b\x66\x2c\x66\x2e\x66\x30\x66\x32\x66\x33\x66\x37\x66\x38\x66\x39\x66\x3a\x66\x3b\x66\x3d\x66\x3f\x66\x40\x66\x42\x66\x44\x66\x45\x66\x46\x66\x47\x66\x48\x66\x49\x66\x4a\x66\x4d\x66\x4e\x66\x50\x66\x51\x66\x58\x66\x59\x66\x5b\x66\x5c\x66\x5d\x66\x5e\x66\x60\x66\x62\x66\x63\x66\x65\x66\x67\x66\x69\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x71\x66\x72\x66\x73\x66\x75\x66\x78\x66\x79\x66\x7b\x66\x7c\x66\x7d\x66\x7f\x66\x80\x66\x81\x66\x83\x66\x85\x66\x86\x66\x88\x66\x89\x66\x8a\x66\x8b\x66\x8d\x66\x8e\x66\x8f\x66\x90\x66\x92\x66\x93\x66\x94\x66\x95\x66\x98\x66\x99\x66\x9a\x66\x9b\x66\x9c\x66\x9e\x66\x9f\x66\xa0\x66\xa1\x66\xa2\x66\xa3\x66\xa4\x66\xa5\x66\xa6\x66\xa9\x66\xaa\x66\xab\x66\xac\x66\xad\x66\xaf\x66\xb0\x66\xb1\x66\xb2\x66\xb3\x66\xb5\x66\xb6\x66\xb7\x66\xb8\x66\xba\x66\xbb\x66\xbc\x66\xbd\x66\xbf\x66\xc0\x66\xc1\x66\xc2\x66\xc3\x66\xc4\x66\xc5\x66\xc6\x66\xc7\x66\xc8\x66\xc9\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xca\x66\xcb\x66\xcc\x66\xcd\x66\xce\x66\xcf\x66\xd0\x66\xd1\x66\xd2\x66\xd3\x66\xd4\x66\xd5\x66\xd6\x66\xd7\x66\xd8\x66\xda\x66\xde\x66\xdf\x66\xe0\x66\xe1\x66\xe2\x66\xe3\x66\xe4\x66\xe5\x66\xe7\x66\xe8\x66\xea\x66\xeb\x66\xec\x66\xed\x66\xee\x66\xef\x66\xf1\x66\xf5\x66\xf6\x66\xf8\x66\xfa\x66\xfb\x66\xfd\x67\x01\x67\x02\x67\x03\x67\x04\x67\x05\x67\x06\x67\x07\x67\x0c\x67\x0e\x67\x0f\x67\x11\x67\x12\x67\x13\x67\x16\x67\x18\x67\x19\x67\x1a\x67\x1c\x67\x1e\x67\x20\x67\x21\x67\x22\x67\x23\x67\x24", /* 9680 */ "\x00\x00\x67\x25\x67\x27\x67\x29\x67\x2e\x67\x30\x67\x32\x67\x33\x67\x36\x67\x37\x67\x38\x67\x39\x67\x3b\x67\x3c\x67\x3e\x67\x3f\x67\x41\x67\x44\x67\x45\x67\x47\x67\x4a\x67\x4b\x67\x4d\x67\x52\x67\x54\x67\x55\x67\x57\x67\x58\x67\x59\x67\x5a\x67\x5b\x67\x5d\x67\x62\x67\x63\x67\x64\x67\x66\x67\x67\x67\x6b\x67\x6c\x67\x6e\x67\x71\x67\x74\x67\x76\x67\x78\x67\x79\x67\x7a\x67\x7b\x67\x7d\x67\x80\x67\x82\x67\x83\x67\x85\x67\x86\x67\x88\x67\x8a\x67\x8c\x67\x8d\x67\x8e\x67\x8f\x67\x91\x67\x92\x67\x93\x67\x94\x67\x96\x67\x99\x67\x9b\x67\x9f\x67\xa0\x67\xa1\x67\xa4\x67\xa6\x67\xa9\x67\xac\x67\xae\x67\xb1\x67\xb2\x67\xb4\x67\xb9\x67\xba\x67\xbb\x67\xbc\x67\xbd\x67\xbe\x67\xbf\x67\xc0\x67\xc2\x67\xc5\x67\xc6\x67\xc7\x67\xc8\x67\xc9\x67\xca\x67\xcb\x67\xcc\x67\xcd\x67\xce\x67\xd5\x67\xd6\x67\xd7\x67\xdb\x67\xdf\x67\xe1\x67\xe3\x67\xe4\x67\xe6\x67\xe7\x67\xe8\x67\xea\x67\xeb\x67\xed\x67\xee\x67\xf2\x67\xf5\x67\xf6\x67\xf7\x67\xf8\x67\xf9\x67\xfa\x67\xfb\x67\xfc\x67\xfe\x68\x01\x68\x02\x68\x03\x68\x04\x68\x06\x00\x00\x00\x00", /* 9700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x0d\x68\x10\x68\x12\x68\x14\x68\x15\x68\x18\x68\x19\x68\x1a\x68\x1b\x68\x1c\x68\x1e\x68\x1f\x68\x20\x68\x22\x68\x23\x68\x24\x68\x25\x68\x26\x68\x27\x68\x28\x68\x2b\x68\x2c\x68\x2d\x68\x2e\x68\x2f\x68\x30\x68\x31\x68\x34\x68\x35\x68\x36\x68\x3a\x68\x3b\x68\x3f\x68\x47\x68\x4b\x68\x4d\x68\x4f\x68\x52\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x68\x5b\x68\x5c\x68\x5d\x68\x5e\x68\x5f\x68\x6a\x68\x6c\x68\x6d\x68\x6e\x68\x6f\x68\x70\x68\x71\x68\x72\x68\x73\x68\x75\x68\x78\x68\x79\x68\x7a\x68\x7b\x68\x7c", /* 9780 */ "\x00\x00\x68\x7d\x68\x7e\x68\x7f\x68\x80\x68\x82\x68\x84\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x68\x8e\x68\x90\x68\x91\x68\x92\x68\x94\x68\x95\x68\x96\x68\x98\x68\x99\x68\x9a\x68\x9b\x68\x9c\x68\x9d\x68\x9e\x68\x9f\x68\xa0\x68\xa1\x68\xa3\x68\xa4\x68\xa5\x68\xa9\x68\xaa\x68\xab\x68\xac\x68\xae\x68\xb1\x68\xb2\x68\xb4\x68\xb6\x68\xb7\x68\xb8\x68\xb9\x68\xba\x68\xbb\x68\xbc\x68\xbd\x68\xbe\x68\xbf\x68\xc1\x68\xc3\x68\xc4\x68\xc5\x68\xc6\x68\xc7\x68\xc8\x68\xca\x68\xcc\x68\xce\x68\xcf\x68\xd0\x68\xd1\x68\xd3\x68\xd4\x68\xd6\x68\xd7\x68\xd9\x68\xdb\x68\xdc\x68\xdd\x68\xde\x68\xdf\x68\xe1\x68\xe2\x68\xe4\x68\xe5\x68\xe6\x68\xe7\x68\xe8\x68\xe9\x68\xea\x68\xeb\x68\xec\x68\xed\x68\xef\x68\xf2\x68\xf3\x68\xf4\x68\xf6\x68\xf7\x68\xf8\x68\xfb\x68\xfd\x68\xfe\x68\xff\x69\x00\x69\x02\x69\x03\x69\x04\x69\x06\x69\x07\x69\x08\x69\x09\x69\x0a\x69\x0c\x69\x0f\x69\x11\x69\x13\x69\x14\x69\x15\x69\x16\x69\x17\x69\x18\x69\x19\x69\x1a\x69\x1b\x69\x1c\x69\x1d\x69\x1e\x69\x21\x69\x22\x69\x23\x69\x25\x00\x00\x00\x00", /* 9800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x26\x69\x27\x69\x28\x69\x29\x69\x2a\x69\x2b\x69\x2c\x69\x2e\x69\x2f\x69\x31\x69\x32\x69\x33\x69\x35\x69\x36\x69\x37\x69\x38\x69\x3a\x69\x3b\x69\x3c\x69\x3e\x69\x40\x69\x41\x69\x43\x69\x44\x69\x45\x69\x46\x69\x47\x69\x48\x69\x49\x69\x4a\x69\x4b\x69\x4c\x69\x4d\x69\x4e\x69\x4f\x69\x50\x69\x51\x69\x52\x69\x53\x69\x55\x69\x56\x69\x58\x69\x59\x69\x5b\x69\x5c\x69\x5f\x69\x61\x69\x62\x69\x64\x69\x65\x69\x67\x69\x68\x69\x69\x69\x6a\x69\x6c\x69\x6d\x69\x6f\x69\x70\x69\x72\x69\x73\x69\x74\x69\x75\x69\x76", /* 9880 */ "\x00\x00\x69\x7a\x69\x7b\x69\x7d\x69\x7e\x69\x7f\x69\x81\x69\x83\x69\x85\x69\x8a\x69\x8b\x69\x8c\x69\x8e\x69\x8f\x69\x90\x69\x91\x69\x92\x69\x93\x69\x96\x69\x97\x69\x99\x69\x9a\x69\x9d\x69\x9e\x69\x9f\x69\xa0\x69\xa1\x69\xa2\x69\xa3\x69\xa4\x69\xa5\x69\xa6\x69\xa9\x69\xaa\x69\xac\x69\xae\x69\xaf\x69\xb0\x69\xb2\x69\xb3\x69\xb5\x69\xb6\x69\xb8\x69\xb9\x69\xba\x69\xbc\x69\xbd\x69\xbe\x69\xbf\x69\xc0\x69\xc2\x69\xc3\x69\xc4\x69\xc5\x69\xc6\x69\xc7\x69\xc8\x69\xc9\x69\xcb\x69\xcd\x69\xcf\x69\xd1\x69\xd2\x69\xd3\x69\xd5\x69\xd6\x69\xd7\x69\xd8\x69\xd9\x69\xda\x69\xdc\x69\xdd\x69\xde\x69\xe1\x69\xe2\x69\xe3\x69\xe4\x69\xe5\x69\xe6\x69\xe7\x69\xe8\x69\xe9\x69\xea\x69\xeb\x69\xec\x69\xee\x69\xef\x69\xf0\x69\xf1\x69\xf3\x69\xf4\x69\xf5\x69\xf6\x69\xf7\x69\xf8\x69\xf9\x69\xfa\x69\xfb\x69\xfc\x69\xfe\x6a\x00\x6a\x01\x6a\x02\x6a\x03\x6a\x04\x6a\x05\x6a\x06\x6a\x07\x6a\x08\x6a\x09\x6a\x0b\x6a\x0c\x6a\x0d\x6a\x0e\x6a\x0f\x6a\x10\x6a\x11\x6a\x12\x6a\x13\x6a\x14\x6a\x15\x6a\x16\x6a\x19\x6a\x1a\x6a\x1b\x6a\x1c\x00\x00\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1d\x6a\x1e\x6a\x20\x6a\x22\x6a\x23\x6a\x24\x6a\x25\x6a\x26\x6a\x27\x6a\x29\x6a\x2b\x6a\x2c\x6a\x2d\x6a\x2e\x6a\x30\x6a\x32\x6a\x33\x6a\x34\x6a\x36\x6a\x37\x6a\x38\x6a\x39\x6a\x3a\x6a\x3b\x6a\x3c\x6a\x3f\x6a\x40\x6a\x41\x6a\x42\x6a\x43\x6a\x45\x6a\x46\x6a\x48\x6a\x49\x6a\x4a\x6a\x4b\x6a\x4c\x6a\x4d\x6a\x4e\x6a\x4f\x6a\x51\x6a\x52\x6a\x53\x6a\x54\x6a\x55\x6a\x56\x6a\x57\x6a\x5a\x6a\x5c\x6a\x5d\x6a\x5e\x6a\x5f\x6a\x60\x6a\x62\x6a\x63\x6a\x64\x6a\x66\x6a\x67\x6a\x68\x6a\x69\x6a\x6a\x6a\x6b\x6a\x6c", /* 9980 */ "\x00\x00\x6a\x6d\x6a\x6e\x6a\x6f\x6a\x70\x6a\x72\x6a\x73\x6a\x74\x6a\x75\x6a\x76\x6a\x77\x6a\x78\x6a\x7a\x6a\x7b\x6a\x7d\x6a\x7e\x6a\x7f\x6a\x81\x6a\x82\x6a\x83\x6a\x85\x6a\x86\x6a\x87\x6a\x88\x6a\x89\x6a\x8a\x6a\x8b\x6a\x8c\x6a\x8d\x6a\x8f\x6a\x92\x6a\x93\x6a\x94\x6a\x95\x6a\x96\x6a\x98\x6a\x99\x6a\x9a\x6a\x9b\x6a\x9c\x6a\x9d\x6a\x9e\x6a\x9f\x6a\xa1\x6a\xa2\x6a\xa3\x6a\xa4\x6a\xa5\x6a\xa6\x6a\xa7\x6a\xa8\x6a\xaa\x6a\xad\x6a\xae\x6a\xaf\x6a\xb0\x6a\xb1\x6a\xb2\x6a\xb3\x6a\xb4\x6a\xb5\x6a\xb6\x6a\xb7\x6a\xb8\x6a\xb9\x6a\xba\x6a\xbb\x6a\xbc\x6a\xbd\x6a\xbe\x6a\xbf\x6a\xc0\x6a\xc1\x6a\xc2\x6a\xc3\x6a\xc4\x6a\xc5\x6a\xc6\x6a\xc7\x6a\xc8\x6a\xc9\x6a\xca\x6a\xcb\x6a\xcc\x6a\xcd\x6a\xce\x6a\xcf\x6a\xd0\x6a\xd1\x6a\xd2\x6a\xd3\x6a\xd4\x6a\xd5\x6a\xd6\x6a\xd7\x6a\xd8\x6a\xd9\x6a\xda\x6a\xdb\x6a\xdc\x6a\xdd\x6a\xde\x6a\xdf\x6a\xe0\x6a\xe1\x6a\xe2\x6a\xe3\x6a\xe4\x6a\xe5\x6a\xe6\x6a\xe7\x6a\xe8\x6a\xe9\x6a\xea\x6a\xeb\x6a\xec\x6a\xed\x6a\xee\x6a\xef\x6a\xf0\x6a\xf1\x6a\xf2\x6a\xf3\x6a\xf4\x6a\xf5\x6a\xf6\x00\x00\x00\x00", /* 9a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf7\x6a\xf8\x6a\xf9\x6a\xfa\x6a\xfb\x6a\xfc\x6a\xfd\x6a\xfe\x6a\xff\x6b\x00\x6b\x01\x6b\x02\x6b\x03\x6b\x04\x6b\x05\x6b\x06\x6b\x07\x6b\x08\x6b\x09\x6b\x0a\x6b\x0b\x6b\x0c\x6b\x0d\x6b\x0e\x6b\x0f\x6b\x10\x6b\x11\x6b\x12\x6b\x13\x6b\x14\x6b\x15\x6b\x16\x6b\x17\x6b\x18\x6b\x19\x6b\x1a\x6b\x1b\x6b\x1c\x6b\x1d\x6b\x1e\x6b\x1f\x6b\x25\x6b\x26\x6b\x28\x6b\x29\x6b\x2a\x6b\x2b\x6b\x2c\x6b\x2d\x6b\x2e\x6b\x2f\x6b\x30\x6b\x31\x6b\x33\x6b\x34\x6b\x35\x6b\x36\x6b\x38\x6b\x3b\x6b\x3c\x6b\x3d\x6b\x3f\x6b\x40", /* 9a80 */ "\x00\x00\x6b\x41\x6b\x42\x6b\x44\x6b\x45\x6b\x48\x6b\x4a\x6b\x4b\x6b\x4d\x6b\x4e\x6b\x4f\x6b\x50\x6b\x51\x6b\x52\x6b\x53\x6b\x54\x6b\x55\x6b\x56\x6b\x57\x6b\x58\x6b\x5a\x6b\x5b\x6b\x5c\x6b\x5d\x6b\x5e\x6b\x5f\x6b\x60\x6b\x61\x6b\x68\x6b\x69\x6b\x6b\x6b\x6c\x6b\x6d\x6b\x6e\x6b\x6f\x6b\x70\x6b\x71\x6b\x72\x6b\x73\x6b\x74\x6b\x75\x6b\x76\x6b\x77\x6b\x78\x6b\x7a\x6b\x7d\x6b\x7e\x6b\x7f\x6b\x80\x6b\x85\x6b\x88\x6b\x8c\x6b\x8e\x6b\x8f\x6b\x90\x6b\x91\x6b\x94\x6b\x95\x6b\x97\x6b\x98\x6b\x99\x6b\x9c\x6b\x9d\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xa2\x6b\xa3\x6b\xa4\x6b\xa5\x6b\xa6\x6b\xa7\x6b\xa8\x6b\xa9\x6b\xab\x6b\xac\x6b\xad\x6b\xae\x6b\xaf\x6b\xb0\x6b\xb1\x6b\xb2\x6b\xb6\x6b\xb8\x6b\xb9\x6b\xba\x6b\xbb\x6b\xbc\x6b\xbd\x6b\xbe\x6b\xc0\x6b\xc3\x6b\xc4\x6b\xc6\x6b\xc7\x6b\xc8\x6b\xc9\x6b\xca\x6b\xcc\x6b\xce\x6b\xd0\x6b\xd1\x6b\xd8\x6b\xda\x6b\xdc\x6b\xdd\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe2\x6b\xe3\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x6b\xe9\x6b\xec\x6b\xed\x6b\xee\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf4\x6b\xf6\x6b\xf7\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xf8\x6b\xfa\x6b\xfb\x6b\xfc\x6b\xfe\x6b\xff\x6c\x00\x6c\x01\x6c\x02\x6c\x03\x6c\x04\x6c\x08\x6c\x09\x6c\x0a\x6c\x0b\x6c\x0c\x6c\x0e\x6c\x12\x6c\x17\x6c\x1c\x6c\x1d\x6c\x1e\x6c\x20\x6c\x23\x6c\x25\x6c\x2b\x6c\x2c\x6c\x2d\x6c\x31\x6c\x33\x6c\x36\x6c\x37\x6c\x39\x6c\x3a\x6c\x3b\x6c\x3c\x6c\x3e\x6c\x3f\x6c\x43\x6c\x44\x6c\x45\x6c\x48\x6c\x4b\x6c\x4c\x6c\x4d\x6c\x4e\x6c\x4f\x6c\x51\x6c\x52\x6c\x53\x6c\x56\x6c\x58\x6c\x59\x6c\x5a\x6c\x62\x6c\x63\x6c\x65\x6c\x66\x6c\x67\x6c\x6b\x6c\x6c\x6c\x6d\x6c\x6e", /* 9b80 */ "\x00\x00\x6c\x6f\x6c\x71\x6c\x73\x6c\x75\x6c\x77\x6c\x78\x6c\x7a\x6c\x7b\x6c\x7c\x6c\x7f\x6c\x80\x6c\x84\x6c\x87\x6c\x8a\x6c\x8b\x6c\x8d\x6c\x8e\x6c\x91\x6c\x92\x6c\x95\x6c\x96\x6c\x97\x6c\x98\x6c\x9a\x6c\x9c\x6c\x9d\x6c\x9e\x6c\xa0\x6c\xa2\x6c\xa8\x6c\xac\x6c\xaf\x6c\xb0\x6c\xb4\x6c\xb5\x6c\xb6\x6c\xb7\x6c\xba\x6c\xc0\x6c\xc1\x6c\xc2\x6c\xc3\x6c\xc6\x6c\xc7\x6c\xc8\x6c\xcb\x6c\xcd\x6c\xce\x6c\xcf\x6c\xd1\x6c\xd2\x6c\xd8\x6c\xd9\x6c\xda\x6c\xdc\x6c\xdd\x6c\xdf\x6c\xe4\x6c\xe6\x6c\xe7\x6c\xe9\x6c\xec\x6c\xed\x6c\xf2\x6c\xf4\x6c\xf9\x6c\xff\x6d\x00\x6d\x02\x6d\x03\x6d\x05\x6d\x06\x6d\x08\x6d\x09\x6d\x0a\x6d\x0d\x6d\x0f\x6d\x10\x6d\x11\x6d\x13\x6d\x14\x6d\x15\x6d\x16\x6d\x18\x6d\x1c\x6d\x1d\x6d\x1f\x6d\x20\x6d\x21\x6d\x22\x6d\x23\x6d\x24\x6d\x26\x6d\x28\x6d\x29\x6d\x2c\x6d\x2d\x6d\x2f\x6d\x30\x6d\x34\x6d\x36\x6d\x37\x6d\x38\x6d\x3a\x6d\x3f\x6d\x40\x6d\x42\x6d\x44\x6d\x49\x6d\x4c\x6d\x50\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x5b\x6d\x5d\x6d\x5f\x6d\x61\x6d\x62\x6d\x64\x6d\x65\x6d\x67\x6d\x68\x6d\x6b\x00\x00\x00\x00", /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x6c\x6d\x6d\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x75\x6d\x76\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x83\x6d\x84\x6d\x86\x6d\x87\x6d\x8a\x6d\x8b\x6d\x8d\x6d\x8f\x6d\x90\x6d\x92\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9c\x6d\xa2\x6d\xa5\x6d\xac\x6d\xad\x6d\xb0\x6d\xb1\x6d\xb3\x6d\xb4\x6d\xb6\x6d\xb7\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc8\x6d\xc9\x6d\xca\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd7", /* 9c80 */ "\x00\x00\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdf\x6d\xe2\x6d\xe3\x6d\xe5\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xed\x6d\xef\x6d\xf0\x6d\xf2\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf8\x6d\xfa\x6d\xfd\x6d\xfe\x6d\xff\x6e\x00\x6e\x01\x6e\x02\x6e\x03\x6e\x04\x6e\x06\x6e\x07\x6e\x08\x6e\x09\x6e\x0b\x6e\x0f\x6e\x12\x6e\x13\x6e\x15\x6e\x18\x6e\x19\x6e\x1b\x6e\x1c\x6e\x1e\x6e\x1f\x6e\x22\x6e\x26\x6e\x27\x6e\x28\x6e\x2a\x6e\x2c\x6e\x2e\x6e\x30\x6e\x31\x6e\x33\x6e\x35\x6e\x36\x6e\x37\x6e\x39\x6e\x3b\x6e\x3c\x6e\x3d\x6e\x3e\x6e\x3f\x6e\x40\x6e\x41\x6e\x42\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x55\x6e\x57\x6e\x59\x6e\x5a\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6c\x6e\x6d\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x80\x6e\x81\x6e\x82\x6e\x84\x6e\x87\x6e\x88\x6e\x8a\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x91\x6e\x92\x00\x00\x00\x00", /* 9d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9d\x6e\x9e\x6e\xa0\x6e\xa1\x6e\xa3\x6e\xa4\x6e\xa6\x6e\xa8\x6e\xa9\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xb0\x6e\xb3\x6e\xb5\x6e\xb8\x6e\xb9\x6e\xbc\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcc\x6e\xcd\x6e\xce\x6e\xd0\x6e\xd2\x6e\xd6\x6e\xd8\x6e\xd9\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xe3\x6e\xe7\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf5\x6e\xf6\x6e\xf7", /* 9d80 */ "\x00\x00\x6e\xf8\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6e\xff\x6f\x00\x6f\x01\x6f\x03\x6f\x04\x6f\x05\x6f\x07\x6f\x08\x6f\x0a\x6f\x0b\x6f\x0c\x6f\x0d\x6f\x0e\x6f\x10\x6f\x11\x6f\x12\x6f\x16\x6f\x17\x6f\x18\x6f\x19\x6f\x1a\x6f\x1b\x6f\x1c\x6f\x1d\x6f\x1e\x6f\x1f\x6f\x21\x6f\x22\x6f\x23\x6f\x25\x6f\x26\x6f\x27\x6f\x28\x6f\x2c\x6f\x2e\x6f\x30\x6f\x32\x6f\x34\x6f\x35\x6f\x37\x6f\x38\x6f\x39\x6f\x3a\x6f\x3b\x6f\x3c\x6f\x3d\x6f\x3f\x6f\x40\x6f\x41\x6f\x42\x6f\x43\x6f\x44\x6f\x45\x6f\x48\x6f\x49\x6f\x4a\x6f\x4c\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5d\x6f\x5f\x6f\x60\x6f\x61\x6f\x63\x6f\x64\x6f\x65\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6f\x6f\x70\x6f\x71\x6f\x73\x6f\x75\x6f\x76\x6f\x77\x6f\x79\x6f\x7b\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x85\x6f\x86\x6f\x87\x6f\x8a\x6f\x8b\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9d\x6f\x9e\x00\x00\x00\x00", /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x9f\x6f\xa0\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb4\x6f\xb5\x6f\xb7\x6f\xb8\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc1\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xca\x6f\xcb\x6f\xcc\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xdf\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea", /* 9e80 */ "\x00\x00\x6f\xeb\x6f\xec\x6f\xed\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x6f\xff\x70\x00\x70\x01\x70\x02\x70\x03\x70\x04\x70\x05\x70\x06\x70\x07\x70\x08\x70\x09\x70\x0a\x70\x0b\x70\x0c\x70\x0d\x70\x0e\x70\x0f\x70\x10\x70\x12\x70\x13\x70\x14\x70\x15\x70\x16\x70\x17\x70\x18\x70\x19\x70\x1c\x70\x1d\x70\x1e\x70\x1f\x70\x20\x70\x21\x70\x22\x70\x24\x70\x25\x70\x26\x70\x27\x70\x28\x70\x29\x70\x2a\x70\x2b\x70\x2c\x70\x2d\x70\x2e\x70\x2f\x70\x30\x70\x31\x70\x32\x70\x33\x70\x34\x70\x36\x70\x37\x70\x38\x70\x3a\x70\x3b\x70\x3c\x70\x3d\x70\x3e\x70\x3f\x70\x40\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4d\x70\x4e\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6e\x70\x71\x70\x72\x70\x73\x70\x74\x70\x77\x70\x79\x70\x7a\x00\x00\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x7b\x70\x7d\x70\x81\x70\x82\x70\x83\x70\x84\x70\x86\x70\x87\x70\x88\x70\x8b\x70\x8c\x70\x8d\x70\x8f\x70\x90\x70\x91\x70\x93\x70\x97\x70\x98\x70\x9a\x70\x9b\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xb0\x70\xb2\x70\xb4\x70\xb5\x70\xb6\x70\xba\x70\xbe\x70\xbf\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc9\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xda\x70\xdc\x70\xdd\x70\xde", /* 9f80 */ "\x00\x00\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe5\x70\xea\x70\xee\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf8\x70\xfa\x70\xfb\x70\xfc\x70\xfe\x70\xff\x71\x00\x71\x01\x71\x02\x71\x03\x71\x04\x71\x05\x71\x06\x71\x07\x71\x08\x71\x0b\x71\x0c\x71\x0d\x71\x0e\x71\x0f\x71\x11\x71\x12\x71\x14\x71\x17\x71\x1b\x71\x1c\x71\x1d\x71\x1e\x71\x1f\x71\x20\x71\x21\x71\x22\x71\x23\x71\x24\x71\x25\x71\x27\x71\x28\x71\x29\x71\x2a\x71\x2b\x71\x2c\x71\x2d\x71\x2e\x71\x32\x71\x33\x71\x34\x71\x35\x71\x37\x71\x38\x71\x39\x71\x3a\x71\x3b\x71\x3c\x71\x3d\x71\x3e\x71\x3f\x71\x40\x71\x41\x71\x42\x71\x43\x71\x44\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4b\x71\x4d\x71\x4f\x71\x50\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5d\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x65\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6f\x71\x70\x71\x71\x71\x74\x71\x75\x71\x76\x71\x77\x71\x79\x71\x7b\x71\x7c\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x85\x71\x86\x71\x87\x00\x00\x00\x00", /* a000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x88\x71\x89\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x90\x71\x91\x71\x92\x71\x93\x71\x95\x71\x96\x71\x97\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa9\x71\xaa\x71\xab\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb4\x71\xb6\x71\xb7\x71\xb8\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xcf\x71\xd0\x71\xd1\x71\xd2\x71\xd3\x71\xd6", /* a080 */ "\x00\x00\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe6\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x71\xff\x72\x00\x72\x01\x72\x02\x72\x03\x72\x04\x72\x05\x72\x07\x72\x08\x72\x09\x72\x0a\x72\x0b\x72\x0c\x72\x0d\x72\x0e\x72\x0f\x72\x10\x72\x11\x72\x12\x72\x13\x72\x14\x72\x15\x72\x16\x72\x17\x72\x18\x72\x19\x72\x1a\x72\x1b\x72\x1c\x72\x1e\x72\x1f\x72\x20\x72\x21\x72\x22\x72\x23\x72\x24\x72\x25\x72\x26\x72\x27\x72\x29\x72\x2b\x72\x2d\x72\x2e\x72\x2f\x72\x32\x72\x33\x72\x34\x72\x3a\x72\x3c\x72\x3e\x72\x40\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x49\x72\x4a\x72\x4b\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x53\x72\x54\x72\x55\x72\x57\x72\x58\x72\x5a\x72\x5c\x72\x5e\x72\x60\x72\x63\x72\x64\x72\x65\x72\x68\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x70\x72\x71\x72\x73\x72\x74\x72\x76\x72\x77\x72\x78\x72\x7b\x72\x7c\x00\x00\x00\x00", /* a100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x7d\x72\x82\x72\x83\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8c\x72\x8e\x72\x90\x72\x91\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xae\x72\xb1\x72\xb2\x72\xb3\x72\xb5\x72\xba\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc5\x72\xc6\x72\xc7\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcf\x72\xd1\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd8\x72\xda", /* a180 */ "\x00\x00\x72\xdb\x72\xdc\x72\xdd\x72\xdf\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xea\x72\xeb\x72\xf5\x72\xf6\x72\xf9\x72\xfd\x72\xfe\x72\xff\x73\x00\x73\x02\x73\x04\x73\x05\x73\x06\x73\x07\x73\x08\x73\x09\x73\x0b\x73\x0c\x73\x0d\x73\x0f\x73\x10\x73\x11\x73\x12\x73\x14\x73\x18\x73\x19\x73\x1a\x73\x1f\x73\x20\x73\x23\x73\x24\x73\x26\x73\x27\x73\x28\x73\x2d\x73\x2f\x73\x30\x73\x32\x73\x33\x73\x35\x73\x36\x73\x3a\x73\x3b\x73\x3c\x73\x3d\x73\x40\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4e\x73\x4f\x73\x51\x73\x53\x73\x54\x73\x55\x73\x56\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6e\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c\x73\x7d\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x85\x73\x86\x73\x88\x73\x8a\x73\x8c\x73\x8d\x73\x8f\x73\x90\x73\x92\x73\x93\x73\x94\x00\x00\x00\x00", /* a200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x95\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9c\x73\x9d\x73\x9e\x73\xa0\x73\xa1\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xaa\x73\xac\x73\xad\x73\xb1\x73\xb4\x73\xb5\x73\xb6\x73\xb8\x73\xb9\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc1\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xcb\x73\xcc\x73\xce\x73\xd2\x73\xd3\x73\xd4\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xdf\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe6\x73\xe8\x73\xea\x73\xeb\x73\xec\x73\xee\x73\xef\x73\xf0\x73\xf1", /* a280 */ "\x00\x00\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc\x73\xfd\x73\xfe\x73\xff\x74\x00\x74\x01\x74\x02\x74\x04\x74\x07\x74\x08\x74\x0b\x74\x0c\x74\x0d\x74\x0e\x74\x11\x74\x12\x74\x13\x74\x14\x74\x15\x74\x16\x74\x17\x74\x18\x74\x19\x74\x1c\x74\x1d\x74\x1e\x74\x1f\x74\x20\x74\x21\x74\x23\x74\x24\x74\x27\x74\x29\x74\x2b\x74\x2d\x74\x2f\x74\x31\x74\x32\x74\x37\x74\x38\x74\x39\x74\x3a\x74\x3b\x74\x3d\x74\x3e\x74\x3f\x74\x40\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x56\x74\x58\x74\x5d\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6e\x74\x6f\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7f\x74\x82\x74\x84\x74\x85\x74\x86\x74\x88\x74\x89\x74\x8a\x74\x8c\x74\x8d\x74\x8f\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96\x74\x97\x74\x98\x74\x99\x74\x9a\x00\x00\x00\x00", /* a300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x9b\x74\x9d\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xbb\x74\xbc\x74\xbd\x74\xbe\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdd\x74\xdf\x74\xe1\x74\xe5\x74\xe7", /* a380 */ "\x00\x00\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf5\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x00\x75\x01\x75\x02\x75\x03\x75\x05\x75\x06\x75\x07\x75\x08\x75\x09\x75\x0a\x75\x0b\x75\x0c\x75\x0e\x75\x10\x75\x12\x75\x14\x75\x15\x75\x16\x75\x17\x75\x1b\x75\x1d\x75\x1e\x75\x20\x75\x21\x75\x22\x75\x23\x75\x24\x75\x26\x75\x27\x75\x2a\x75\x2e\x75\x34\x75\x36\x75\x39\x75\x3c\x75\x3d\x75\x3f\x75\x41\x75\x42\x75\x43\x75\x44\x75\x46\x75\x47\x75\x49\x75\x4a\x75\x4d\x75\x50\x75\x51\x75\x52\x75\x53\x75\x55\x75\x56\x75\x57\x75\x58\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x67\x75\x68\x75\x69\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x73\x75\x75\x75\x76\x75\x77\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x80\x75\x81\x75\x82\x75\x84\x75\x85\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8c\x75\x8d\x75\x8e\x75\x90\x75\x93\x75\x95\x75\x98\x75\x9b\x75\x9c\x75\x9e\x75\xa2\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xad\x00\x00\x00\x00", /* a400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xb6\x75\xb7\x75\xba\x75\xbb\x75\xbf\x75\xc0\x75\xc1\x75\xc6\x75\xcb\x75\xcc\x75\xce\x75\xcf\x75\xd0\x75\xd1\x75\xd3\x75\xd7\x75\xd9\x75\xda\x75\xdc\x75\xdd\x75\xdf\x75\xe0\x75\xe1\x75\xe5\x75\xe9\x75\xec\x75\xed\x75\xee\x75\xef\x75\xf2\x75\xf3\x75\xf5\x75\xf6\x75\xf7\x75\xf8\x75\xfa\x75\xfb\x75\xfd\x75\xfe\x76\x02\x76\x04\x76\x06\x76\x07\x76\x08\x76\x09\x76\x0b\x76\x0d\x76\x0e\x76\x0f\x76\x11\x76\x12\x76\x13\x76\x14\x76\x16\x76\x1a\x76\x1c\x76\x1d\x76\x1e\x76\x21\x76\x23\x76\x27\x76\x28\x76\x2c", /* a480 */ "\x00\x00\x76\x2e\x76\x2f\x76\x31\x76\x32\x76\x36\x76\x37\x76\x39\x76\x3a\x76\x3b\x76\x3d\x76\x41\x76\x42\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x55\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5d\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6c\x76\x6d\x76\x6e\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x79\x76\x7a\x76\x7c\x76\x7f\x76\x80\x76\x81\x76\x83\x76\x85\x76\x89\x76\x8a\x76\x8c\x76\x8d\x76\x8f\x76\x90\x76\x92\x76\x94\x76\x95\x76\x97\x76\x98\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xaf\x76\xb0\x76\xb3\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xc0\x76\xc1\x76\xc3\x76\xc4\x76\xc7\x76\xc9\x76\xcb\x76\xcc\x76\xd3\x76\xd5\x76\xd9\x76\xda\x76\xdc\x76\xdd\x76\xde\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x00\x00\x00\x00", /* a500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\xe4\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xf0\x76\xf3\x76\xf5\x76\xf6\x76\xf7\x76\xfa\x76\xfb\x76\xfd\x76\xff\x77\x00\x77\x02\x77\x03\x77\x05\x77\x06\x77\x0a\x77\x0c\x77\x0e\x77\x0f\x77\x10\x77\x11\x77\x12\x77\x13\x77\x14\x77\x15\x77\x16\x77\x17\x77\x18\x77\x1b\x77\x1c\x77\x1d\x77\x1e\x77\x21\x77\x23\x77\x24\x77\x25\x77\x27\x77\x2a\x77\x2b\x77\x2c\x77\x2e\x77\x30\x77\x31\x77\x32\x77\x33\x77\x34\x77\x39\x77\x3b\x77\x3d\x77\x3e\x77\x3f\x77\x42\x77\x44\x77\x45\x77\x46", /* a580 */ "\x00\x00\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x64\x77\x67\x77\x69\x77\x6a\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x7a\x77\x7b\x77\x7c\x77\x81\x77\x82\x77\x83\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8f\x77\x90\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\xa1\x77\xa3\x77\xa4\x77\xa6\x77\xa8\x77\xab\x77\xad\x77\xae\x77\xaf\x77\xb1\x77\xb2\x77\xb4\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbc\x77\xbe\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd8\x77\xd9\x77\xda\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe4\x77\xe6\x77\xe8\x77\xea\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf4\x77\xf5\x77\xf7\x77\xf9\x77\xfa\x00\x00\x00\x00", /* a600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xfb\x77\xfc\x78\x03\x78\x04\x78\x05\x78\x06\x78\x07\x78\x08\x78\x0a\x78\x0b\x78\x0e\x78\x0f\x78\x10\x78\x13\x78\x15\x78\x19\x78\x1b\x78\x1e\x78\x20\x78\x21\x78\x22\x78\x24\x78\x28\x78\x2a\x78\x2b\x78\x2e\x78\x2f\x78\x31\x78\x32\x78\x33\x78\x35\x78\x36\x78\x3d\x78\x3f\x78\x41\x78\x42\x78\x43\x78\x44\x78\x46\x78\x48\x78\x49\x78\x4a\x78\x4b\x78\x4d\x78\x4f\x78\x51\x78\x53\x78\x54\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67", /* a680 */ "\x00\x00\x78\x68\x78\x69\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7d\x78\x7e\x78\x7f\x78\x80\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x88\x78\x8a\x78\x8b\x78\x8f\x78\x90\x78\x92\x78\x94\x78\x95\x78\x96\x78\x99\x78\x9d\x78\x9e\x78\xa0\x78\xa2\x78\xa4\x78\xa6\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbf\x78\xc0\x78\xc2\x78\xc3\x78\xc4\x78\xc6\x78\xc7\x78\xc8\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd1\x78\xd2\x78\xd3\x78\xd6\x78\xd7\x78\xd8\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe9\x78\xea\x78\xeb\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf3\x78\xf5\x78\xf6\x78\xf8\x78\xf9\x78\xfb\x78\xfc\x78\xfd\x78\xfe\x78\xff\x79\x00\x79\x02\x79\x03\x79\x04\x79\x06\x79\x07\x79\x08\x79\x09\x79\x0a\x79\x0b\x79\x0c\x79\x0d\x79\x0e\x79\x0f\x79\x10\x79\x11\x79\x12\x79\x14\x79\x15\x00\x00\x00\x00", /* a700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x16\x79\x17\x79\x18\x79\x19\x79\x1a\x79\x1b\x79\x1c\x79\x1d\x79\x1f\x79\x20\x79\x21\x79\x22\x79\x23\x79\x25\x79\x26\x79\x27\x79\x28\x79\x29\x79\x2a\x79\x2b\x79\x2c\x79\x2d\x79\x2e\x79\x2f\x79\x30\x79\x31\x79\x32\x79\x33\x79\x35\x79\x36\x79\x37\x79\x38\x79\x39\x79\x3d\x79\x3f\x79\x42\x79\x43\x79\x44\x79\x45\x79\x47\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x54\x79\x55\x79\x58\x79\x59\x79\x61\x79\x63\x79\x64\x79\x66\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6e\x79\x70", /* a780 */ "\x00\x00\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x79\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x82\x79\x83\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8b\x79\x8c\x79\x8d\x79\x8e\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xbc\x79\xbf\x79\xc2\x79\xc4\x79\xc5\x79\xc7\x79\xc8\x79\xca\x79\xcc\x79\xce\x79\xcf\x79\xd0\x79\xd3\x79\xd4\x79\xd6\x79\xd7\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xe0\x79\xe1\x79\xe2\x79\xe5\x79\xe8\x79\xea\x79\xec\x79\xee\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf9\x79\xfa\x79\xfc\x79\xfe\x79\xff\x7a\x01\x7a\x04\x7a\x05\x7a\x07\x7a\x08\x7a\x09\x7a\x0a\x7a\x0c\x7a\x0f\x7a\x10\x7a\x11\x7a\x12\x7a\x13\x7a\x15\x7a\x16\x7a\x18\x7a\x19\x7a\x1b\x7a\x1c\x7a\x1d\x7a\x1f\x7a\x21\x7a\x22\x00\x00\x00\x00", /* a800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x24\x7a\x25\x7a\x26\x7a\x27\x7a\x28\x7a\x29\x7a\x2a\x7a\x2b\x7a\x2c\x7a\x2d\x7a\x2e\x7a\x2f\x7a\x30\x7a\x31\x7a\x32\x7a\x34\x7a\x35\x7a\x36\x7a\x38\x7a\x3a\x7a\x3e\x7a\x40\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c", /* a880 */ "\x00\x00\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x71\x7a\x72\x7a\x73\x7a\x75\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x82\x7a\x85\x7a\x87\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8e\x7a\x8f\x7a\x90\x7a\x93\x7a\x94\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9e\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa7\x7a\xa9\x7a\xaa\x7a\xab\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd7\x7a\xd8\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xe1\x7a\xe2\x7a\xe4\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xee\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xfb\x7a\xfc\x7a\xfe\x7b\x00\x7b\x01\x7b\x02\x7b\x05\x7b\x07\x7b\x09\x7b\x0c\x7b\x0d\x7b\x0e\x7b\x10\x7b\x12\x7b\x13\x7b\x16\x7b\x17\x7b\x18\x7b\x1a\x7b\x1c\x7b\x1d\x7b\x1f\x7b\x21\x7b\x22\x7b\x23\x7b\x27\x7b\x29\x7b\x2d\x00\x00\x00\x00", /* a900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x2f\x7b\x30\x7b\x32\x7b\x34\x7b\x35\x7b\x36\x7b\x37\x7b\x39\x7b\x3b\x7b\x3d\x7b\x3f\x7b\x40\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x46\x7b\x48\x7b\x4a\x7b\x4d\x7b\x4e\x7b\x53\x7b\x55\x7b\x57\x7b\x59\x7b\x5c\x7b\x5e\x7b\x5f\x7b\x61\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6f\x7b\x70\x7b\x73\x7b\x74\x7b\x76\x7b\x78\x7b\x7a\x7b\x7c\x7b\x7d\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8e\x7b\x8f", /* a980 */ "\x00\x00\x7b\x91\x7b\x92\x7b\x93\x7b\x96\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb2\x7b\xb3\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd2\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xdb\x7b\xdc\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xeb\x7b\xec\x7b\xed\x7b\xef\x7b\xf0\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfd\x7b\xff\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x7c\x04\x7c\x05\x7c\x06\x7c\x08\x7c\x09\x7c\x0a\x7c\x0d\x7c\x0e\x7c\x10\x7c\x11\x7c\x12\x7c\x13\x7c\x14\x7c\x15\x7c\x17\x7c\x18\x7c\x19\x7c\x1a\x7c\x1b\x7c\x1c\x7c\x1d\x7c\x1e\x7c\x20\x7c\x21\x7c\x22\x7c\x23\x7c\x24\x7c\x25\x7c\x28\x7c\x29\x7c\x2b\x7c\x2c\x7c\x2d\x7c\x2e\x7c\x2f\x7c\x30\x7c\x31\x7c\x32\x7c\x33\x7c\x34\x7c\x35\x7c\x36\x7c\x37\x7c\x39\x7c\x3a\x7c\x3b\x00\x00\x00\x00", /* aa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x3c\x7c\x3d\x7c\x3e\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7e\x7c\x7f\x7c\x80\x7c\x81\x7c\x82\x7c\x83", /* aa80 */ "\x00\x00\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x93\x7c\x94\x7c\x96\x7c\x99\x7c\x9a\x7c\x9b\x7c\xa0\x7c\xa1\x7c\xa3\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xab\x7c\xac\x7c\xad\x7c\xaf\x7c\xb0\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xba\x7c\xbb\x7c\xbf\x7c\xc0\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc6\x7c\xc9\x7c\xcb\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd8\x7c\xda\x7c\xdb\x7c\xdd\x7c\xde\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf9\x7c\xfa\x7c\xfc\x7c\xfd\x7c\xfe\x7c\xff\x7d\x00\x7d\x01\x7d\x02\x7d\x03\x7d\x04\x7d\x05\x7d\x06\x7d\x07\x7d\x08\x7d\x09\x7d\x0b\x7d\x0c\x7d\x0d\x7d\x0e\x7d\x0f\x7d\x10\x7d\x11\x7d\x12\x7d\x13\x7d\x14\x7d\x15\x7d\x16\x7d\x17\x7d\x18\x7d\x19\x7d\x1a\x7d\x1b\x7d\x1c\x7d\x1d\x7d\x1e\x7d\x1f\x7d\x21\x7d\x23\x7d\x24\x7d\x25\x7d\x26\x7d\x28\x7d\x29\x7d\x2a\x7d\x2c\x7d\x2d\x00\x00\x00\x00", /* ab00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x2e\x7d\x30\x7d\x31\x7d\x32\x7d\x33\x7d\x34\x7d\x35\x7d\x36\x7d\x37\x7d\x38\x7d\x39\x7d\x3a\x7d\x3b\x7d\x3c\x7d\x3d\x7d\x3e\x7d\x3f\x7d\x40\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d", /* ab80 */ "\x00\x00\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x80\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x00\x00\x00\x00", /* ac00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7d\xfe\x7d\xff\x7e\x00\x7e\x01\x7e\x02\x7e\x03\x7e\x04\x7e\x05\x7e\x06\x7e\x07\x7e\x08\x7e\x09\x7e\x0a\x7e\x0b\x7e\x0c\x7e\x0d\x7e\x0e\x7e\x0f\x7e\x10\x7e\x11\x7e\x12\x7e\x13\x7e\x14\x7e\x15\x7e\x16\x7e\x17\x7e\x18\x7e\x19\x7e\x1a\x7e\x1b\x7e\x1c\x7e\x1d\x7e\x1e\x7e\x1f\x7e\x20\x7e\x21\x7e\x22\x7e\x23\x7e\x24\x7e\x25\x7e\x26\x7e\x27\x7e\x28\x7e\x29\x7e\x2a\x7e\x2b\x7e\x2c\x7e\x2d", /* ac80 */ "\x00\x00\x7e\x2e\x7e\x2f\x7e\x30\x7e\x31\x7e\x32\x7e\x33\x7e\x34\x7e\x35\x7e\x36\x7e\x37\x7e\x38\x7e\x39\x7e\x3a\x7e\x3c\x7e\x3d\x7e\x3e\x7e\x3f\x7e\x40\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x80\x7e\x81\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9c\x7e\x9d\x7e\x9e\x7e\xae\x7e\xb4\x7e\xbb\x7e\xbc\x7e\xd6\x7e\xe4\x7e\xec\x7e\xf9\x7f\x0a\x7f\x10\x7f\x1e\x7f\x37\x7f\x39\x7f\x3b\x7f\x3c\x7f\x3d\x7f\x3e\x00\x00\x00\x00", /* ad00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x3f\x7f\x40\x7f\x41\x7f\x43\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x52\x7f\x53\x7f\x56\x7f\x59\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x60\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6f\x7f\x70\x7f\x73\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7f\x7f\x80\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8b\x7f\x8d\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x95\x7f\x96\x7f\x97\x7f\x98", /* ad80 */ "\x00\x00\x7f\x99\x7f\x9b\x7f\x9c\x7f\xa0\x7f\xa2\x7f\xa3\x7f\xa5\x7f\xa6\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xb1\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xba\x7f\xbb\x7f\xbe\x7f\xc0\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xcb\x7f\xcd\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd6\x7f\xd7\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe7\x7f\xe8\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xef\x7f\xf2\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfd\x7f\xfe\x7f\xff\x80\x02\x80\x07\x80\x08\x80\x09\x80\x0a\x80\x0e\x80\x0f\x80\x11\x80\x13\x80\x1a\x80\x1b\x80\x1d\x80\x1e\x80\x1f\x80\x21\x80\x23\x80\x24\x80\x2b\x80\x2c\x80\x2d\x80\x2e\x80\x2f\x80\x30\x80\x32\x80\x34\x80\x39\x80\x3a\x80\x3c\x80\x3e\x80\x40\x80\x41\x80\x44\x80\x45\x80\x47\x80\x48\x80\x49\x80\x4e\x80\x4f\x80\x50\x80\x51\x80\x53\x80\x55\x80\x56\x80\x57\x80\x59\x80\x5b\x80\x5c\x80\x5d\x80\x5e\x80\x5f\x80\x60\x80\x61\x80\x62\x80\x63\x80\x64\x80\x65\x80\x66\x00\x00\x00\x00", /* ae00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x67\x80\x68\x80\x6b\x80\x6c\x80\x6d\x80\x6e\x80\x6f\x80\x70\x80\x72\x80\x73\x80\x74\x80\x75\x80\x76\x80\x77\x80\x78\x80\x79\x80\x7a\x80\x7b\x80\x7c\x80\x7d\x80\x7e\x80\x81\x80\x82\x80\x85\x80\x88\x80\x8a\x80\x8d\x80\x8e\x80\x8f\x80\x90\x80\x91\x80\x92\x80\x94\x80\x95\x80\x97\x80\x99\x80\x9e\x80\xa3\x80\xa6\x80\xa7\x80\xa8\x80\xac\x80\xb0\x80\xb3\x80\xb5\x80\xb6\x80\xb8\x80\xb9\x80\xbb\x80\xc5\x80\xc7\x80\xc8\x80\xc9\x80\xca\x80\xcb\x80\xcf\x80\xd0\x80\xd1\x80\xd2\x80\xd3\x80\xd4\x80\xd5\x80\xd8", /* ae80 */ "\x00\x00\x80\xdf\x80\xe0\x80\xe2\x80\xe3\x80\xe6\x80\xee\x80\xf5\x80\xf7\x80\xf9\x80\xfb\x80\xfe\x80\xff\x81\x00\x81\x01\x81\x03\x81\x04\x81\x05\x81\x07\x81\x08\x81\x0b\x81\x0c\x81\x15\x81\x17\x81\x19\x81\x1b\x81\x1c\x81\x1d\x81\x1f\x81\x20\x81\x21\x81\x22\x81\x23\x81\x24\x81\x25\x81\x26\x81\x27\x81\x28\x81\x29\x81\x2a\x81\x2b\x81\x2d\x81\x2e\x81\x30\x81\x33\x81\x34\x81\x35\x81\x37\x81\x39\x81\x3a\x81\x3b\x81\x3c\x81\x3d\x81\x3f\x81\x40\x81\x41\x81\x42\x81\x43\x81\x44\x81\x45\x81\x47\x81\x49\x81\x4d\x81\x4e\x81\x4f\x81\x52\x81\x56\x81\x57\x81\x58\x81\x5b\x81\x5c\x81\x5d\x81\x5e\x81\x5f\x81\x61\x81\x62\x81\x63\x81\x64\x81\x66\x81\x68\x81\x6a\x81\x6b\x81\x6c\x81\x6f\x81\x72\x81\x73\x81\x75\x81\x76\x81\x77\x81\x78\x81\x81\x81\x83\x81\x84\x81\x85\x81\x86\x81\x87\x81\x89\x81\x8b\x81\x8c\x81\x8d\x81\x8e\x81\x90\x81\x92\x81\x93\x81\x94\x81\x95\x81\x96\x81\x97\x81\x99\x81\x9a\x81\x9e\x81\x9f\x81\xa0\x81\xa1\x81\xa2\x81\xa4\x81\xa5\x81\xa7\x81\xa9\x81\xab\x81\xac\x81\xad\x81\xae\x81\xaf\x81\xb0\x81\xb1\x00\x00\x00\x00", /* af00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xb2\x81\xb4\x81\xb5\x81\xb6\x81\xb7\x81\xb8\x81\xb9\x81\xbc\x81\xbd\x81\xbe\x81\xbf\x81\xc4\x81\xc5\x81\xc7\x81\xc8\x81\xc9\x81\xcb\x81\xcd\x81\xce\x81\xcf\x81\xd0\x81\xd1\x81\xd2\x81\xd3\x81\xd4\x81\xd5\x81\xd6\x81\xd7\x81\xd8\x81\xd9\x81\xda\x81\xdb\x81\xdc\x81\xdd\x81\xde\x81\xdf\x81\xe0\x81\xe1\x81\xe2\x81\xe4\x81\xe5\x81\xe6\x81\xe8\x81\xe9\x81\xeb\x81\xee\x81\xef\x81\xf0\x81\xf1\x81\xf2\x81\xf5\x81\xf6\x81\xf7\x81\xf8\x81\xf9\x81\xfa\x81\xfd\x81\xff\x82\x03\x82\x07\x82\x08\x82\x09\x82\x0a", /* af80 */ "\x00\x00\x82\x0b\x82\x0e\x82\x0f\x82\x11\x82\x13\x82\x15\x82\x16\x82\x17\x82\x18\x82\x19\x82\x1a\x82\x1d\x82\x20\x82\x24\x82\x25\x82\x26\x82\x27\x82\x29\x82\x2e\x82\x32\x82\x3a\x82\x3c\x82\x3d\x82\x3f\x82\x40\x82\x41\x82\x42\x82\x43\x82\x45\x82\x46\x82\x48\x82\x4a\x82\x4c\x82\x4d\x82\x4e\x82\x50\x82\x51\x82\x52\x82\x53\x82\x54\x82\x55\x82\x56\x82\x57\x82\x59\x82\x5b\x82\x5c\x82\x5d\x82\x5e\x82\x60\x82\x61\x82\x62\x82\x63\x82\x64\x82\x65\x82\x66\x82\x67\x82\x69\x82\x6a\x82\x6b\x82\x6c\x82\x6d\x82\x71\x82\x75\x82\x76\x82\x77\x82\x78\x82\x7b\x82\x7c\x82\x80\x82\x81\x82\x83\x82\x85\x82\x86\x82\x87\x82\x89\x82\x8c\x82\x90\x82\x93\x82\x94\x82\x95\x82\x96\x82\x9a\x82\x9b\x82\x9e\x82\xa0\x82\xa2\x82\xa3\x82\xa7\x82\xb2\x82\xb5\x82\xb6\x82\xba\x82\xbb\x82\xbc\x82\xbf\x82\xc0\x82\xc2\x82\xc3\x82\xc5\x82\xc6\x82\xc9\x82\xd0\x82\xd6\x82\xd9\x82\xda\x82\xdd\x82\xe2\x82\xe7\x82\xe8\x82\xe9\x82\xea\x82\xec\x82\xed\x82\xee\x82\xf0\x82\xf2\x82\xf3\x82\xf5\x82\xf6\x82\xf8\x82\xfa\x82\xfc\x82\xfd\x82\xfe\x82\xff\x00\x00\x00\x00", /* b000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x83\x0a\x83\x0b\x83\x0d\x83\x10\x83\x12\x83\x13\x83\x16\x83\x18\x83\x19\x83\x1d\x83\x1e\x83\x1f\x83\x20\x83\x21\x83\x22\x83\x23\x83\x24\x83\x25\x83\x26\x83\x29\x83\x2a\x83\x2e\x83\x30\x83\x32\x83\x37\x83\x3b\x83\x3d\x83\x3e\x83\x3f\x83\x41\x83\x42\x83\x44\x83\x45\x83\x48\x83\x4a\x83\x4b\x83\x4c\x83\x4d\x83\x4e\x83\x53\x83\x55\x83\x56\x83\x57\x83\x58\x83\x59\x83\x5d\x83\x62\x83\x70\x83\x71\x83\x72\x83\x73\x83\x74\x83\x75\x83\x76\x83\x79\x83\x7a\x83\x7e\x83\x7f\x83\x80\x83\x81\x83\x82\x83\x83", /* b080 */ "\x00\x00\x83\x84\x83\x87\x83\x88\x83\x8a\x83\x8b\x83\x8c\x83\x8d\x83\x8f\x83\x90\x83\x91\x83\x94\x83\x95\x83\x96\x83\x97\x83\x99\x83\x9a\x83\x9d\x83\x9f\x83\xa1\x83\xa2\x83\xa3\x83\xa4\x83\xa5\x83\xa6\x83\xa7\x83\xac\x83\xad\x83\xae\x83\xaf\x83\xb5\x83\xbb\x83\xbe\x83\xbf\x83\xc2\x83\xc3\x83\xc4\x83\xc6\x83\xc8\x83\xc9\x83\xcb\x83\xcd\x83\xce\x83\xd0\x83\xd1\x83\xd2\x83\xd3\x83\xd5\x83\xd7\x83\xd9\x83\xda\x83\xdb\x83\xde\x83\xe2\x83\xe3\x83\xe4\x83\xe6\x83\xe7\x83\xe8\x83\xeb\x83\xec\x83\xed\x83\xee\x83\xef\x83\xf3\x83\xf4\x83\xf5\x83\xf6\x83\xf7\x83\xfa\x83\xfb\x83\xfc\x83\xfe\x83\xff\x84\x00\x84\x02\x84\x05\x84\x07\x84\x08\x84\x09\x84\x0a\x84\x10\x84\x12\x84\x13\x84\x14\x84\x15\x84\x16\x84\x17\x84\x19\x84\x1a\x84\x1b\x84\x1e\x84\x1f\x84\x20\x84\x21\x84\x22\x84\x23\x84\x29\x84\x2a\x84\x2b\x84\x2c\x84\x2d\x84\x2e\x84\x2f\x84\x30\x84\x32\x84\x33\x84\x34\x84\x35\x84\x36\x84\x37\x84\x39\x84\x3a\x84\x3b\x84\x3e\x84\x3f\x84\x40\x84\x41\x84\x42\x84\x43\x84\x44\x84\x45\x84\x47\x84\x48\x84\x49\x84\x4a\x00\x00\x00\x00", /* b100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x4b\x84\x4c\x84\x4d\x84\x4e\x84\x4f\x84\x50\x84\x52\x84\x53\x84\x54\x84\x55\x84\x56\x84\x58\x84\x5d\x84\x5e\x84\x5f\x84\x60\x84\x62\x84\x64\x84\x65\x84\x66\x84\x67\x84\x68\x84\x6a\x84\x6e\x84\x6f\x84\x70\x84\x72\x84\x74\x84\x77\x84\x79\x84\x7b\x84\x7c\x84\x7d\x84\x7e\x84\x7f\x84\x80\x84\x81\x84\x83\x84\x84\x84\x85\x84\x86\x84\x8a\x84\x8d\x84\x8f\x84\x90\x84\x91\x84\x92\x84\x93\x84\x94\x84\x95\x84\x96\x84\x98\x84\x9a\x84\x9b\x84\x9d\x84\x9e\x84\x9f\x84\xa0\x84\xa2\x84\xa3\x84\xa4\x84\xa5\x84\xa6", /* b180 */ "\x00\x00\x84\xa7\x84\xa8\x84\xa9\x84\xaa\x84\xab\x84\xac\x84\xad\x84\xae\x84\xb0\x84\xb1\x84\xb3\x84\xb5\x84\xb6\x84\xb7\x84\xbb\x84\xbc\x84\xbe\x84\xc0\x84\xc2\x84\xc3\x84\xc5\x84\xc6\x84\xc7\x84\xc8\x84\xcb\x84\xcc\x84\xce\x84\xcf\x84\xd2\x84\xd4\x84\xd5\x84\xd7\x84\xd8\x84\xd9\x84\xda\x84\xdb\x84\xdc\x84\xde\x84\xe1\x84\xe2\x84\xe4\x84\xe7\x84\xe8\x84\xe9\x84\xea\x84\xeb\x84\xed\x84\xee\x84\xef\x84\xf1\x84\xf2\x84\xf3\x84\xf4\x84\xf5\x84\xf6\x84\xf7\x84\xf8\x84\xf9\x84\xfa\x84\xfb\x84\xfd\x84\xfe\x85\x00\x85\x01\x85\x02\x85\x03\x85\x04\x85\x05\x85\x06\x85\x07\x85\x08\x85\x09\x85\x0a\x85\x0b\x85\x0d\x85\x0e\x85\x0f\x85\x10\x85\x12\x85\x14\x85\x15\x85\x16\x85\x18\x85\x19\x85\x1b\x85\x1c\x85\x1d\x85\x1e\x85\x20\x85\x22\x85\x23\x85\x24\x85\x25\x85\x26\x85\x27\x85\x28\x85\x29\x85\x2a\x85\x2d\x85\x2e\x85\x2f\x85\x30\x85\x31\x85\x32\x85\x33\x85\x34\x85\x35\x85\x36\x85\x3e\x85\x3f\x85\x40\x85\x41\x85\x42\x85\x44\x85\x45\x85\x46\x85\x47\x85\x4b\x85\x4c\x85\x4d\x85\x4e\x85\x4f\x85\x50\x85\x51\x85\x52\x00\x00\x00\x00", /* b200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x53\x85\x54\x85\x55\x85\x57\x85\x58\x85\x5a\x85\x5b\x85\x5c\x85\x5d\x85\x5f\x85\x60\x85\x61\x85\x62\x85\x63\x85\x65\x85\x66\x85\x67\x85\x69\x85\x6a\x85\x6b\x85\x6c\x85\x6d\x85\x6e\x85\x6f\x85\x70\x85\x71\x85\x73\x85\x75\x85\x76\x85\x77\x85\x78\x85\x7c\x85\x7d\x85\x7f\x85\x80\x85\x81\x85\x82\x85\x83\x85\x86\x85\x88\x85\x89\x85\x8a\x85\x8b\x85\x8c\x85\x8d\x85\x8e\x85\x90\x85\x91\x85\x92\x85\x93\x85\x94\x85\x95\x85\x96\x85\x97\x85\x98\x85\x99\x85\x9a\x85\x9d\x85\x9e\x85\x9f\x85\xa0\x85\xa1\x85\xa2", /* b280 */ "\x00\x00\x85\xa3\x85\xa5\x85\xa6\x85\xa7\x85\xa9\x85\xab\x85\xac\x85\xad\x85\xb1\x85\xb2\x85\xb3\x85\xb4\x85\xb5\x85\xb6\x85\xb8\x85\xba\x85\xbb\x85\xbc\x85\xbd\x85\xbe\x85\xbf\x85\xc0\x85\xc2\x85\xc3\x85\xc4\x85\xc5\x85\xc6\x85\xc7\x85\xc8\x85\xca\x85\xcb\x85\xcc\x85\xcd\x85\xce\x85\xd1\x85\xd2\x85\xd4\x85\xd6\x85\xd7\x85\xd8\x85\xd9\x85\xda\x85\xdb\x85\xdd\x85\xde\x85\xdf\x85\xe0\x85\xe1\x85\xe2\x85\xe3\x85\xe5\x85\xe6\x85\xe7\x85\xe8\x85\xea\x85\xeb\x85\xec\x85\xed\x85\xee\x85\xef\x85\xf0\x85\xf1\x85\xf2\x85\xf3\x85\xf4\x85\xf5\x85\xf6\x85\xf7\x85\xf8\x85\xf9\x85\xfa\x85\xfc\x85\xfd\x85\xfe\x86\x00\x86\x01\x86\x02\x86\x03\x86\x04\x86\x06\x86\x07\x86\x08\x86\x09\x86\x0a\x86\x0b\x86\x0c\x86\x0d\x86\x0e\x86\x0f\x86\x10\x86\x12\x86\x13\x86\x14\x86\x15\x86\x17\x86\x18\x86\x19\x86\x1a\x86\x1b\x86\x1c\x86\x1d\x86\x1e\x86\x1f\x86\x20\x86\x21\x86\x22\x86\x23\x86\x24\x86\x25\x86\x26\x86\x28\x86\x2a\x86\x2b\x86\x2c\x86\x2d\x86\x2e\x86\x2f\x86\x30\x86\x31\x86\x32\x86\x33\x86\x34\x86\x35\x86\x36\x86\x37\x00\x00\x00\x00", /* b300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x39\x86\x3a\x86\x3b\x86\x3d\x86\x3e\x86\x3f\x86\x40\x86\x41\x86\x42\x86\x43\x86\x44\x86\x45\x86\x46\x86\x47\x86\x48\x86\x49\x86\x4a\x86\x4b\x86\x4c\x86\x52\x86\x53\x86\x55\x86\x56\x86\x57\x86\x58\x86\x59\x86\x5b\x86\x5c\x86\x5d\x86\x5f\x86\x60\x86\x61\x86\x63\x86\x64\x86\x65\x86\x66\x86\x67\x86\x68\x86\x69\x86\x6a\x86\x6d\x86\x6f\x86\x70\x86\x72\x86\x73\x86\x74\x86\x75\x86\x76\x86\x77\x86\x78\x86\x83\x86\x84\x86\x85\x86\x86\x86\x87\x86\x88\x86\x89\x86\x8e\x86\x8f\x86\x90\x86\x91\x86\x92\x86\x94", /* b380 */ "\x00\x00\x86\x96\x86\x97\x86\x98\x86\x99\x86\x9a\x86\x9b\x86\x9e\x86\x9f\x86\xa0\x86\xa1\x86\xa2\x86\xa5\x86\xa6\x86\xab\x86\xad\x86\xae\x86\xb2\x86\xb3\x86\xb7\x86\xb8\x86\xb9\x86\xbb\x86\xbc\x86\xbd\x86\xbe\x86\xbf\x86\xc1\x86\xc2\x86\xc3\x86\xc5\x86\xc8\x86\xcc\x86\xcd\x86\xd2\x86\xd3\x86\xd5\x86\xd6\x86\xd7\x86\xda\x86\xdc\x86\xdd\x86\xe0\x86\xe1\x86\xe2\x86\xe3\x86\xe5\x86\xe6\x86\xe7\x86\xe8\x86\xea\x86\xeb\x86\xec\x86\xef\x86\xf5\x86\xf6\x86\xf7\x86\xfa\x86\xfb\x86\xfc\x86\xfd\x86\xff\x87\x01\x87\x04\x87\x05\x87\x06\x87\x0b\x87\x0c\x87\x0e\x87\x0f\x87\x10\x87\x11\x87\x14\x87\x16\x87\x19\x87\x1b\x87\x1d\x87\x1f\x87\x20\x87\x24\x87\x26\x87\x27\x87\x28\x87\x2a\x87\x2b\x87\x2c\x87\x2d\x87\x2f\x87\x30\x87\x32\x87\x33\x87\x35\x87\x36\x87\x38\x87\x39\x87\x3a\x87\x3c\x87\x3d\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46\x87\x4a\x87\x4b\x87\x4d\x87\x4f\x87\x50\x87\x51\x87\x52\x87\x54\x87\x55\x87\x56\x87\x58\x87\x5a\x87\x5b\x87\x5c\x87\x5d\x87\x5e\x87\x5f\x87\x61\x87\x62\x87\x66\x87\x67\x00\x00\x00\x00", /* b400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x68\x87\x69\x87\x6a\x87\x6b\x87\x6c\x87\x6d\x87\x6f\x87\x71\x87\x72\x87\x73\x87\x75\x87\x77\x87\x78\x87\x79\x87\x7a\x87\x7f\x87\x80\x87\x81\x87\x84\x87\x86\x87\x87\x87\x89\x87\x8a\x87\x8c\x87\x8e\x87\x8f\x87\x90\x87\x91\x87\x92\x87\x94\x87\x95\x87\x96\x87\x98\x87\x99\x87\x9a\x87\x9b\x87\x9c\x87\x9d\x87\x9e\x87\xa0\x87\xa1\x87\xa2\x87\xa3\x87\xa4\x87\xa5\x87\xa6\x87\xa7\x87\xa9\x87\xaa\x87\xae\x87\xb0\x87\xb1\x87\xb2\x87\xb4\x87\xb6\x87\xb7\x87\xb8\x87\xb9\x87\xbb\x87\xbc\x87\xbe\x87\xbf\x87\xc1", /* b480 */ "\x00\x00\x87\xc2\x87\xc3\x87\xc4\x87\xc5\x87\xc7\x87\xc8\x87\xc9\x87\xcc\x87\xcd\x87\xce\x87\xcf\x87\xd0\x87\xd4\x87\xd5\x87\xd6\x87\xd7\x87\xd8\x87\xd9\x87\xda\x87\xdc\x87\xdd\x87\xde\x87\xdf\x87\xe1\x87\xe2\x87\xe3\x87\xe4\x87\xe6\x87\xe7\x87\xe8\x87\xe9\x87\xeb\x87\xec\x87\xed\x87\xef\x87\xf0\x87\xf1\x87\xf2\x87\xf3\x87\xf4\x87\xf5\x87\xf6\x87\xf7\x87\xf8\x87\xfa\x87\xfb\x87\xfc\x87\xfd\x87\xff\x88\x00\x88\x01\x88\x02\x88\x04\x88\x05\x88\x06\x88\x07\x88\x08\x88\x09\x88\x0b\x88\x0c\x88\x0d\x88\x0e\x88\x0f\x88\x10\x88\x11\x88\x12\x88\x14\x88\x17\x88\x18\x88\x19\x88\x1a\x88\x1c\x88\x1d\x88\x1e\x88\x1f\x88\x20\x88\x23\x88\x24\x88\x25\x88\x26\x88\x27\x88\x28\x88\x29\x88\x2a\x88\x2b\x88\x2c\x88\x2d\x88\x2e\x88\x2f\x88\x30\x88\x31\x88\x33\x88\x34\x88\x35\x88\x36\x88\x37\x88\x38\x88\x3a\x88\x3b\x88\x3d\x88\x3e\x88\x3f\x88\x41\x88\x42\x88\x43\x88\x46\x88\x47\x88\x48\x88\x49\x88\x4a\x88\x4b\x88\x4e\x88\x4f\x88\x50\x88\x51\x88\x52\x88\x53\x88\x55\x88\x56\x88\x58\x88\x5a\x88\x5b\x88\x5c\x88\x5d\x88\x5e\x00\x00\x00\x00", /* b500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x5f\x88\x60\x88\x66\x88\x67\x88\x6a\x88\x6d\x88\x6f\x88\x71\x88\x73\x88\x74\x88\x75\x88\x76\x88\x78\x88\x79\x88\x7a\x88\x7b\x88\x7c\x88\x80\x88\x83\x88\x86\x88\x87\x88\x89\x88\x8a\x88\x8c\x88\x8e\x88\x8f\x88\x90\x88\x91\x88\x93\x88\x94\x88\x95\x88\x97\x88\x98\x88\x99\x88\x9a\x88\x9b\x88\x9d\x88\x9e\x88\x9f\x88\xa0\x88\xa1\x88\xa3\x88\xa5\x88\xa6\x88\xa7\x88\xa8\x88\xa9\x88\xaa\x88\xac\x88\xae\x88\xaf\x88\xb0\x88\xb2\x88\xb3\x88\xb4\x88\xb5\x88\xb6\x88\xb8\x88\xb9\x88\xba\x88\xbb\x88\xbd\x88\xbe", /* b580 */ "\x00\x00\x88\xbf\x88\xc0\x88\xc3\x88\xc4\x88\xc7\x88\xc8\x88\xca\x88\xcb\x88\xcc\x88\xcd\x88\xcf\x88\xd0\x88\xd1\x88\xd3\x88\xd6\x88\xd7\x88\xda\x88\xdb\x88\xdc\x88\xdd\x88\xde\x88\xe0\x88\xe1\x88\xe6\x88\xe7\x88\xe9\x88\xea\x88\xeb\x88\xec\x88\xed\x88\xee\x88\xef\x88\xf2\x88\xf5\x88\xf6\x88\xf7\x88\xfa\x88\xfb\x88\xfd\x88\xff\x89\x00\x89\x01\x89\x03\x89\x04\x89\x05\x89\x06\x89\x07\x89\x08\x89\x09\x89\x0b\x89\x0c\x89\x0d\x89\x0e\x89\x0f\x89\x11\x89\x14\x89\x15\x89\x16\x89\x17\x89\x18\x89\x1c\x89\x1d\x89\x1e\x89\x1f\x89\x20\x89\x22\x89\x23\x89\x24\x89\x26\x89\x27\x89\x28\x89\x29\x89\x2c\x89\x2d\x89\x2e\x89\x2f\x89\x31\x89\x32\x89\x33\x89\x35\x89\x37\x89\x38\x89\x39\x89\x3a\x89\x3b\x89\x3c\x89\x3d\x89\x3e\x89\x3f\x89\x40\x89\x42\x89\x43\x89\x45\x89\x46\x89\x47\x89\x48\x89\x49\x89\x4a\x89\x4b\x89\x4c\x89\x4d\x89\x4e\x89\x4f\x89\x50\x89\x51\x89\x52\x89\x53\x89\x54\x89\x55\x89\x56\x89\x57\x89\x58\x89\x59\x89\x5a\x89\x5b\x89\x5c\x89\x5d\x89\x60\x89\x61\x89\x62\x89\x63\x89\x64\x89\x65\x89\x67\x89\x68\x00\x00\x00\x00", /* b600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x69\x89\x6a\x89\x6b\x89\x6c\x89\x6d\x89\x6e\x89\x6f\x89\x70\x89\x71\x89\x72\x89\x73\x89\x74\x89\x75\x89\x76\x89\x77\x89\x78\x89\x79\x89\x7a\x89\x7c\x89\x7d\x89\x7e\x89\x80\x89\x82\x89\x84\x89\x85\x89\x87\x89\x88\x89\x89\x89\x8a\x89\x8b\x89\x8c\x89\x8d\x89\x8e\x89\x8f\x89\x90\x89\x91\x89\x92\x89\x93\x89\x94\x89\x95\x89\x96\x89\x97\x89\x98\x89\x99\x89\x9a\x89\x9b\x89\x9c\x89\x9d\x89\x9e\x89\x9f\x89\xa0\x89\xa1\x89\xa2\x89\xa3\x89\xa4\x89\xa5\x89\xa6\x89\xa7\x89\xa8\x89\xa9\x89\xaa\x89\xab\x89\xac", /* b680 */ "\x00\x00\x89\xad\x89\xae\x89\xaf\x89\xb0\x89\xb1\x89\xb2\x89\xb3\x89\xb4\x89\xb5\x89\xb6\x89\xb7\x89\xb8\x89\xb9\x89\xba\x89\xbb\x89\xbc\x89\xbd\x89\xbe\x89\xbf\x89\xc0\x89\xc3\x89\xcd\x89\xd3\x89\xd4\x89\xd5\x89\xd7\x89\xd8\x89\xd9\x89\xdb\x89\xdd\x89\xdf\x89\xe0\x89\xe1\x89\xe2\x89\xe4\x89\xe7\x89\xe8\x89\xe9\x89\xea\x89\xec\x89\xed\x89\xee\x89\xf0\x89\xf1\x89\xf2\x89\xf4\x89\xf5\x89\xf6\x89\xf7\x89\xf8\x89\xf9\x89\xfa\x89\xfb\x89\xfc\x89\xfd\x89\xfe\x89\xff\x8a\x01\x8a\x02\x8a\x03\x8a\x04\x8a\x05\x8a\x06\x8a\x08\x8a\x09\x8a\x0a\x8a\x0b\x8a\x0c\x8a\x0d\x8a\x0e\x8a\x0f\x8a\x10\x8a\x11\x8a\x12\x8a\x13\x8a\x14\x8a\x15\x8a\x16\x8a\x17\x8a\x18\x8a\x19\x8a\x1a\x8a\x1b\x8a\x1c\x8a\x1d\x8a\x1e\x8a\x1f\x8a\x20\x8a\x21\x8a\x22\x8a\x23\x8a\x24\x8a\x25\x8a\x26\x8a\x27\x8a\x28\x8a\x29\x8a\x2a\x8a\x2b\x8a\x2c\x8a\x2d\x8a\x2e\x8a\x2f\x8a\x30\x8a\x31\x8a\x32\x8a\x33\x8a\x34\x8a\x35\x8a\x36\x8a\x37\x8a\x38\x8a\x39\x8a\x3a\x8a\x3b\x8a\x3c\x8a\x3d\x8a\x3f\x8a\x40\x8a\x41\x8a\x42\x8a\x43\x8a\x44\x8a\x45\x8a\x46\x00\x00\x00\x00", /* b700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x47\x8a\x49\x8a\x4a\x8a\x4b\x8a\x4c\x8a\x4d\x8a\x4e\x8a\x4f\x8a\x50\x8a\x51\x8a\x52\x8a\x53\x8a\x54\x8a\x55\x8a\x56\x8a\x57\x8a\x58\x8a\x59\x8a\x5a\x8a\x5b\x8a\x5c\x8a\x5d\x8a\x5e\x8a\x5f\x8a\x60\x8a\x61\x8a\x62\x8a\x63\x8a\x64\x8a\x65\x8a\x66\x8a\x67\x8a\x68\x8a\x69\x8a\x6a\x8a\x6b\x8a\x6c\x8a\x6d\x8a\x6e\x8a\x6f\x8a\x70\x8a\x71\x8a\x72\x8a\x73\x8a\x74\x8a\x75\x8a\x76\x8a\x77\x8a\x78\x8a\x7a\x8a\x7b\x8a\x7c\x8a\x7d\x8a\x7e\x8a\x7f\x8a\x80\x8a\x81\x8a\x82\x8a\x83\x8a\x84\x8a\x85\x8a\x86\x8a\x87", /* b780 */ "\x00\x00\x8a\x88\x8a\x8b\x8a\x8c\x8a\x8d\x8a\x8e\x8a\x8f\x8a\x90\x8a\x91\x8a\x92\x8a\x94\x8a\x95\x8a\x96\x8a\x97\x8a\x98\x8a\x99\x8a\x9a\x8a\x9b\x8a\x9c\x8a\x9d\x8a\x9e\x8a\x9f\x8a\xa0\x8a\xa1\x8a\xa2\x8a\xa3\x8a\xa4\x8a\xa5\x8a\xa6\x8a\xa7\x8a\xa8\x8a\xa9\x8a\xaa\x8a\xab\x8a\xac\x8a\xad\x8a\xae\x8a\xaf\x8a\xb0\x8a\xb1\x8a\xb2\x8a\xb3\x8a\xb4\x8a\xb5\x8a\xb6\x8a\xb7\x8a\xb8\x8a\xb9\x8a\xba\x8a\xbb\x8a\xbc\x8a\xbd\x8a\xbe\x8a\xbf\x8a\xc0\x8a\xc1\x8a\xc2\x8a\xc3\x8a\xc4\x8a\xc5\x8a\xc6\x8a\xc7\x8a\xc8\x8a\xc9\x8a\xca\x8a\xcb\x8a\xcc\x8a\xcd\x8a\xce\x8a\xcf\x8a\xd0\x8a\xd1\x8a\xd2\x8a\xd3\x8a\xd4\x8a\xd5\x8a\xd6\x8a\xd7\x8a\xd8\x8a\xd9\x8a\xda\x8a\xdb\x8a\xdc\x8a\xdd\x8a\xde\x8a\xdf\x8a\xe0\x8a\xe1\x8a\xe2\x8a\xe3\x8a\xe4\x8a\xe5\x8a\xe6\x8a\xe7\x8a\xe8\x8a\xe9\x8a\xea\x8a\xeb\x8a\xec\x8a\xed\x8a\xee\x8a\xef\x8a\xf0\x8a\xf1\x8a\xf2\x8a\xf3\x8a\xf4\x8a\xf5\x8a\xf6\x8a\xf7\x8a\xf8\x8a\xf9\x8a\xfa\x8a\xfb\x8a\xfc\x8a\xfd\x8a\xfe\x8a\xff\x8b\x00\x8b\x01\x8b\x02\x8b\x03\x8b\x04\x8b\x05\x8b\x06\x8b\x08\x00\x00\x00\x00", /* b800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x09\x8b\x0a\x8b\x0b\x8b\x0c\x8b\x0d\x8b\x0e\x8b\x0f\x8b\x10\x8b\x11\x8b\x12\x8b\x13\x8b\x14\x8b\x15\x8b\x16\x8b\x17\x8b\x18\x8b\x19\x8b\x1a\x8b\x1b\x8b\x1c\x8b\x1d\x8b\x1e\x8b\x1f\x8b\x20\x8b\x21\x8b\x22\x8b\x23\x8b\x24\x8b\x25\x8b\x27\x8b\x28\x8b\x29\x8b\x2a\x8b\x2b\x8b\x2c\x8b\x2d\x8b\x2e\x8b\x2f\x8b\x30\x8b\x31\x8b\x32\x8b\x33\x8b\x34\x8b\x35\x8b\x36\x8b\x37\x8b\x38\x8b\x39\x8b\x3a\x8b\x3b\x8b\x3c\x8b\x3d\x8b\x3e\x8b\x3f\x8b\x40\x8b\x41\x8b\x42\x8b\x43\x8b\x44\x8b\x45\x8b\x46\x8b\x47\x8b\x48", /* b880 */ "\x00\x00\x8b\x49\x8b\x4a\x8b\x4b\x8b\x4c\x8b\x4d\x8b\x4e\x8b\x4f\x8b\x50\x8b\x51\x8b\x52\x8b\x53\x8b\x54\x8b\x55\x8b\x56\x8b\x57\x8b\x58\x8b\x59\x8b\x5a\x8b\x5b\x8b\x5c\x8b\x5d\x8b\x5e\x8b\x5f\x8b\x60\x8b\x61\x8b\x62\x8b\x63\x8b\x64\x8b\x65\x8b\x67\x8b\x68\x8b\x69\x8b\x6a\x8b\x6b\x8b\x6d\x8b\x6e\x8b\x6f\x8b\x70\x8b\x71\x8b\x72\x8b\x73\x8b\x74\x8b\x75\x8b\x76\x8b\x77\x8b\x78\x8b\x79\x8b\x7a\x8b\x7b\x8b\x7c\x8b\x7d\x8b\x7e\x8b\x7f\x8b\x80\x8b\x81\x8b\x82\x8b\x83\x8b\x84\x8b\x85\x8b\x86\x8b\x87\x8b\x88\x8b\x89\x8b\x8a\x8b\x8b\x8b\x8c\x8b\x8d\x8b\x8e\x8b\x8f\x8b\x90\x8b\x91\x8b\x92\x8b\x93\x8b\x94\x8b\x95\x8b\x96\x8b\x97\x8b\x98\x8b\x99\x8b\x9a\x8b\x9b\x8b\x9c\x8b\x9d\x8b\x9e\x8b\x9f\x8b\xac\x8b\xb1\x8b\xbb\x8b\xc7\x8b\xd0\x8b\xea\x8c\x09\x8c\x1e\x8c\x38\x8c\x39\x8c\x3a\x8c\x3b\x8c\x3c\x8c\x3d\x8c\x3e\x8c\x3f\x8c\x40\x8c\x42\x8c\x43\x8c\x44\x8c\x45\x8c\x48\x8c\x4a\x8c\x4b\x8c\x4d\x8c\x4e\x8c\x4f\x8c\x50\x8c\x51\x8c\x52\x8c\x53\x8c\x54\x8c\x56\x8c\x57\x8c\x58\x8c\x59\x8c\x5b\x8c\x5c\x8c\x5d\x8c\x5e\x00\x00\x00\x00", /* b900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x5f\x8c\x60\x8c\x63\x8c\x64\x8c\x65\x8c\x66\x8c\x67\x8c\x68\x8c\x69\x8c\x6c\x8c\x6d\x8c\x6e\x8c\x6f\x8c\x70\x8c\x71\x8c\x72\x8c\x74\x8c\x75\x8c\x76\x8c\x77\x8c\x7b\x8c\x7c\x8c\x7d\x8c\x7e\x8c\x7f\x8c\x80\x8c\x81\x8c\x83\x8c\x84\x8c\x86\x8c\x87\x8c\x88\x8c\x8b\x8c\x8d\x8c\x8e\x8c\x8f\x8c\x90\x8c\x91\x8c\x92\x8c\x93\x8c\x95\x8c\x96\x8c\x97\x8c\x99\x8c\x9a\x8c\x9b\x8c\x9c\x8c\x9d\x8c\x9e\x8c\x9f\x8c\xa0\x8c\xa1\x8c\xa2\x8c\xa3\x8c\xa4\x8c\xa5\x8c\xa6\x8c\xa7\x8c\xa8\x8c\xa9\x8c\xaa\x8c\xab\x8c\xac", /* b980 */ "\x00\x00\x8c\xad\x8c\xae\x8c\xaf\x8c\xb0\x8c\xb1\x8c\xb2\x8c\xb3\x8c\xb4\x8c\xb5\x8c\xb6\x8c\xb7\x8c\xb8\x8c\xb9\x8c\xba\x8c\xbb\x8c\xbc\x8c\xbd\x8c\xbe\x8c\xbf\x8c\xc0\x8c\xc1\x8c\xc2\x8c\xc3\x8c\xc4\x8c\xc5\x8c\xc6\x8c\xc7\x8c\xc8\x8c\xc9\x8c\xca\x8c\xcb\x8c\xcc\x8c\xcd\x8c\xce\x8c\xcf\x8c\xd0\x8c\xd1\x8c\xd2\x8c\xd3\x8c\xd4\x8c\xd5\x8c\xd6\x8c\xd7\x8c\xd8\x8c\xd9\x8c\xda\x8c\xdb\x8c\xdc\x8c\xdd\x8c\xde\x8c\xdf\x8c\xe0\x8c\xe1\x8c\xe2\x8c\xe3\x8c\xe4\x8c\xe5\x8c\xe6\x8c\xe7\x8c\xe8\x8c\xe9\x8c\xea\x8c\xeb\x8c\xec\x8c\xed\x8c\xee\x8c\xef\x8c\xf0\x8c\xf1\x8c\xf2\x8c\xf3\x8c\xf4\x8c\xf5\x8c\xf6\x8c\xf7\x8c\xf8\x8c\xf9\x8c\xfa\x8c\xfb\x8c\xfc\x8c\xfd\x8c\xfe\x8c\xff\x8d\x00\x8d\x01\x8d\x02\x8d\x03\x8d\x04\x8d\x05\x8d\x06\x8d\x07\x8d\x08\x8d\x09\x8d\x0a\x8d\x0b\x8d\x0c\x8d\x0d\x8d\x0e\x8d\x0f\x8d\x10\x8d\x11\x8d\x12\x8d\x13\x8d\x14\x8d\x15\x8d\x16\x8d\x17\x8d\x18\x8d\x19\x8d\x1a\x8d\x1b\x8d\x1c\x8d\x20\x8d\x51\x8d\x52\x8d\x57\x8d\x5f\x8d\x65\x8d\x68\x8d\x69\x8d\x6a\x8d\x6c\x8d\x6e\x8d\x6f\x8d\x71\x00\x00\x00\x00", /* ba00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x72\x8d\x78\x8d\x79\x8d\x7a\x8d\x7b\x8d\x7c\x8d\x7d\x8d\x7e\x8d\x7f\x8d\x80\x8d\x82\x8d\x83\x8d\x86\x8d\x87\x8d\x88\x8d\x89\x8d\x8c\x8d\x8d\x8d\x8e\x8d\x8f\x8d\x90\x8d\x92\x8d\x93\x8d\x95\x8d\x96\x8d\x97\x8d\x98\x8d\x99\x8d\x9a\x8d\x9b\x8d\x9c\x8d\x9d\x8d\x9e\x8d\xa0\x8d\xa1\x8d\xa2\x8d\xa4\x8d\xa5\x8d\xa6\x8d\xa7\x8d\xa8\x8d\xa9\x8d\xaa\x8d\xab\x8d\xac\x8d\xad\x8d\xae\x8d\xaf\x8d\xb0\x8d\xb2\x8d\xb6\x8d\xb7\x8d\xb9\x8d\xbb\x8d\xbd\x8d\xc0\x8d\xc1\x8d\xc2\x8d\xc5\x8d\xc7\x8d\xc8\x8d\xc9\x8d\xca", /* ba80 */ "\x00\x00\x8d\xcd\x8d\xd0\x8d\xd2\x8d\xd3\x8d\xd4\x8d\xd5\x8d\xd8\x8d\xd9\x8d\xdc\x8d\xe0\x8d\xe1\x8d\xe2\x8d\xe5\x8d\xe6\x8d\xe7\x8d\xe9\x8d\xed\x8d\xee\x8d\xf0\x8d\xf1\x8d\xf2\x8d\xf4\x8d\xf6\x8d\xfc\x8d\xfe\x8d\xff\x8e\x00\x8e\x01\x8e\x02\x8e\x03\x8e\x04\x8e\x06\x8e\x07\x8e\x08\x8e\x0b\x8e\x0d\x8e\x0e\x8e\x10\x8e\x11\x8e\x12\x8e\x13\x8e\x15\x8e\x16\x8e\x17\x8e\x18\x8e\x19\x8e\x1a\x8e\x1b\x8e\x1c\x8e\x20\x8e\x21\x8e\x24\x8e\x25\x8e\x26\x8e\x27\x8e\x28\x8e\x2b\x8e\x2d\x8e\x30\x8e\x32\x8e\x33\x8e\x34\x8e\x36\x8e\x37\x8e\x38\x8e\x3b\x8e\x3c\x8e\x3e\x8e\x3f\x8e\x43\x8e\x45\x8e\x46\x8e\x4c\x8e\x4d\x8e\x4e\x8e\x4f\x8e\x50\x8e\x53\x8e\x54\x8e\x55\x8e\x56\x8e\x57\x8e\x58\x8e\x5a\x8e\x5b\x8e\x5c\x8e\x5d\x8e\x5e\x8e\x5f\x8e\x60\x8e\x61\x8e\x62\x8e\x63\x8e\x64\x8e\x65\x8e\x67\x8e\x68\x8e\x6a\x8e\x6b\x8e\x6e\x8e\x71\x8e\x73\x8e\x75\x8e\x77\x8e\x78\x8e\x79\x8e\x7a\x8e\x7b\x8e\x7d\x8e\x7e\x8e\x80\x8e\x82\x8e\x83\x8e\x84\x8e\x86\x8e\x88\x8e\x89\x8e\x8a\x8e\x8b\x8e\x8c\x8e\x8d\x8e\x8e\x8e\x91\x8e\x92\x8e\x93\x00\x00\x00\x00", /* bb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x95\x8e\x96\x8e\x97\x8e\x98\x8e\x99\x8e\x9a\x8e\x9b\x8e\x9d\x8e\x9f\x8e\xa0\x8e\xa1\x8e\xa2\x8e\xa3\x8e\xa4\x8e\xa5\x8e\xa6\x8e\xa7\x8e\xa8\x8e\xa9\x8e\xaa\x8e\xad\x8e\xae\x8e\xb0\x8e\xb1\x8e\xb3\x8e\xb4\x8e\xb5\x8e\xb6\x8e\xb7\x8e\xb8\x8e\xb9\x8e\xbb\x8e\xbc\x8e\xbd\x8e\xbe\x8e\xbf\x8e\xc0\x8e\xc1\x8e\xc2\x8e\xc3\x8e\xc4\x8e\xc5\x8e\xc6\x8e\xc7\x8e\xc8\x8e\xc9\x8e\xca\x8e\xcb\x8e\xcc\x8e\xcd\x8e\xcf\x8e\xd0\x8e\xd1\x8e\xd2\x8e\xd3\x8e\xd4\x8e\xd5\x8e\xd6\x8e\xd7\x8e\xd8\x8e\xd9\x8e\xda\x8e\xdb", /* bb80 */ "\x00\x00\x8e\xdc\x8e\xdd\x8e\xde\x8e\xdf\x8e\xe0\x8e\xe1\x8e\xe2\x8e\xe3\x8e\xe4\x8e\xe5\x8e\xe6\x8e\xe7\x8e\xe8\x8e\xe9\x8e\xea\x8e\xeb\x8e\xec\x8e\xed\x8e\xee\x8e\xef\x8e\xf0\x8e\xf1\x8e\xf2\x8e\xf3\x8e\xf4\x8e\xf5\x8e\xf6\x8e\xf7\x8e\xf8\x8e\xf9\x8e\xfa\x8e\xfb\x8e\xfc\x8e\xfd\x8e\xfe\x8e\xff\x8f\x00\x8f\x01\x8f\x02\x8f\x03\x8f\x04\x8f\x05\x8f\x06\x8f\x07\x8f\x08\x8f\x09\x8f\x0a\x8f\x0b\x8f\x0c\x8f\x0d\x8f\x0e\x8f\x0f\x8f\x10\x8f\x11\x8f\x12\x8f\x13\x8f\x14\x8f\x15\x8f\x16\x8f\x17\x8f\x18\x8f\x19\x8f\x1a\x8f\x1b\x8f\x1c\x8f\x1d\x8f\x1e\x8f\x1f\x8f\x20\x8f\x21\x8f\x22\x8f\x23\x8f\x24\x8f\x25\x8f\x26\x8f\x27\x8f\x28\x8f\x29\x8f\x2a\x8f\x2b\x8f\x2c\x8f\x2d\x8f\x2e\x8f\x2f\x8f\x30\x8f\x31\x8f\x32\x8f\x33\x8f\x34\x8f\x35\x8f\x36\x8f\x37\x8f\x38\x8f\x39\x8f\x3a\x8f\x3b\x8f\x3c\x8f\x3d\x8f\x3e\x8f\x3f\x8f\x40\x8f\x41\x8f\x42\x8f\x43\x8f\x44\x8f\x45\x8f\x46\x8f\x47\x8f\x48\x8f\x49\x8f\x4a\x8f\x4b\x8f\x4c\x8f\x4d\x8f\x4e\x8f\x4f\x8f\x50\x8f\x51\x8f\x52\x8f\x53\x8f\x54\x8f\x55\x8f\x56\x8f\x57\x8f\x58\x00\x00\x00\x00", /* bc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x59\x8f\x5a\x8f\x5b\x8f\x5c\x8f\x5d\x8f\x5e\x8f\x5f\x8f\x60\x8f\x61\x8f\x62\x8f\x63\x8f\x64\x8f\x65\x8f\x6a\x8f\x80\x8f\x8c\x8f\x92\x8f\x9d\x8f\xa0\x8f\xa1\x8f\xa2\x8f\xa4\x8f\xa5\x8f\xa6\x8f\xa7\x8f\xaa\x8f\xac\x8f\xad\x8f\xae\x8f\xaf\x8f\xb2\x8f\xb3\x8f\xb4\x8f\xb5\x8f\xb7\x8f\xb8\x8f\xba\x8f\xbb\x8f\xbc\x8f\xbf\x8f\xc0\x8f\xc3\x8f\xc6\x8f\xc9\x8f\xca\x8f\xcb\x8f\xcc\x8f\xcd\x8f\xcf\x8f\xd2\x8f\xd6\x8f\xd7\x8f\xda\x8f\xe0\x8f\xe1\x8f\xe3\x8f\xe7\x8f\xec\x8f\xef\x8f\xf1\x8f\xf2\x8f\xf4\x8f\xf5", /* bc80 */ "\x00\x00\x8f\xf6\x8f\xfa\x8f\xfb\x8f\xfc\x8f\xfe\x8f\xff\x90\x07\x90\x08\x90\x0c\x90\x0e\x90\x13\x90\x15\x90\x18\x90\x19\x90\x1c\x90\x23\x90\x24\x90\x25\x90\x27\x90\x28\x90\x29\x90\x2a\x90\x2b\x90\x2c\x90\x30\x90\x31\x90\x32\x90\x33\x90\x34\x90\x37\x90\x39\x90\x3a\x90\x3d\x90\x3f\x90\x40\x90\x43\x90\x45\x90\x46\x90\x48\x90\x49\x90\x4a\x90\x4b\x90\x4c\x90\x4e\x90\x54\x90\x55\x90\x56\x90\x59\x90\x5a\x90\x5c\x90\x5d\x90\x5e\x90\x5f\x90\x60\x90\x61\x90\x64\x90\x66\x90\x67\x90\x69\x90\x6a\x90\x6b\x90\x6c\x90\x6f\x90\x70\x90\x71\x90\x72\x90\x73\x90\x76\x90\x77\x90\x78\x90\x79\x90\x7a\x90\x7b\x90\x7c\x90\x7e\x90\x81\x90\x84\x90\x85\x90\x86\x90\x87\x90\x89\x90\x8a\x90\x8c\x90\x8d\x90\x8e\x90\x8f\x90\x90\x90\x92\x90\x94\x90\x96\x90\x98\x90\x9a\x90\x9c\x90\x9e\x90\x9f\x90\xa0\x90\xa4\x90\xa5\x90\xa7\x90\xa8\x90\xa9\x90\xab\x90\xad\x90\xb2\x90\xb7\x90\xbc\x90\xbd\x90\xbf\x90\xc0\x90\xc2\x90\xc3\x90\xc6\x90\xc8\x90\xc9\x90\xcb\x90\xcc\x90\xcd\x90\xd2\x90\xd4\x90\xd5\x90\xd6\x90\xd8\x90\xd9\x90\xda\x90\xde\x00\x00\x00\x00", /* bd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xdf\x90\xe0\x90\xe3\x90\xe4\x90\xe5\x90\xe9\x90\xea\x90\xec\x90\xee\x90\xf0\x90\xf1\x90\xf2\x90\xf3\x90\xf5\x90\xf6\x90\xf7\x90\xf9\x90\xfa\x90\xfb\x90\xfc\x90\xff\x91\x00\x91\x01\x91\x03\x91\x05\x91\x06\x91\x07\x91\x08\x91\x09\x91\x0a\x91\x0b\x91\x0c\x91\x0d\x91\x0e\x91\x0f\x91\x10\x91\x11\x91\x12\x91\x13\x91\x14\x91\x15\x91\x16\x91\x17\x91\x18\x91\x1a\x91\x1b\x91\x1c\x91\x1d\x91\x1f\x91\x20\x91\x21\x91\x24\x91\x25\x91\x26\x91\x27\x91\x28\x91\x29\x91\x2a\x91\x2b\x91\x2c\x91\x2d\x91\x2e\x91\x30", /* bd80 */ "\x00\x00\x91\x32\x91\x33\x91\x34\x91\x35\x91\x36\x91\x37\x91\x38\x91\x3a\x91\x3b\x91\x3c\x91\x3d\x91\x3e\x91\x3f\x91\x40\x91\x41\x91\x42\x91\x44\x91\x45\x91\x47\x91\x48\x91\x51\x91\x53\x91\x54\x91\x55\x91\x56\x91\x58\x91\x59\x91\x5b\x91\x5c\x91\x5f\x91\x60\x91\x66\x91\x67\x91\x68\x91\x6b\x91\x6d\x91\x73\x91\x7a\x91\x7b\x91\x7c\x91\x80\x91\x81\x91\x82\x91\x83\x91\x84\x91\x86\x91\x88\x91\x8a\x91\x8e\x91\x8f\x91\x93\x91\x94\x91\x95\x91\x96\x91\x97\x91\x98\x91\x99\x91\x9c\x91\x9d\x91\x9e\x91\x9f\x91\xa0\x91\xa1\x91\xa4\x91\xa5\x91\xa6\x91\xa7\x91\xa8\x91\xa9\x91\xab\x91\xac\x91\xb0\x91\xb1\x91\xb2\x91\xb3\x91\xb6\x91\xb7\x91\xb8\x91\xb9\x91\xbb\x91\xbc\x91\xbd\x91\xbe\x91\xbf\x91\xc0\x91\xc1\x91\xc2\x91\xc3\x91\xc4\x91\xc5\x91\xc6\x91\xc8\x91\xcb\x91\xd0\x91\xd2\x91\xd3\x91\xd4\x91\xd5\x91\xd6\x91\xd7\x91\xd8\x91\xd9\x91\xda\x91\xdb\x91\xdd\x91\xde\x91\xdf\x91\xe0\x91\xe1\x91\xe2\x91\xe3\x91\xe4\x91\xe5\x91\xe6\x91\xe7\x91\xe8\x91\xe9\x91\xea\x91\xeb\x91\xec\x91\xed\x91\xee\x91\xef\x91\xf0\x91\xf1\x00\x00\x00\x00", /* be00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xf2\x91\xf3\x91\xf4\x91\xf5\x91\xf6\x91\xf7\x91\xf8\x91\xf9\x91\xfa\x91\xfb\x91\xfc\x91\xfd\x91\xfe\x91\xff\x92\x00\x92\x01\x92\x02\x92\x03\x92\x04\x92\x05\x92\x06\x92\x07\x92\x08\x92\x09\x92\x0a\x92\x0b\x92\x0c\x92\x0d\x92\x0e\x92\x0f\x92\x10\x92\x11\x92\x12\x92\x13\x92\x14\x92\x15\x92\x16\x92\x17\x92\x18\x92\x19\x92\x1a\x92\x1b\x92\x1c\x92\x1d\x92\x1e\x92\x1f\x92\x20\x92\x21\x92\x22\x92\x23\x92\x24\x92\x25\x92\x26\x92\x27\x92\x28\x92\x29\x92\x2a\x92\x2b\x92\x2c\x92\x2d\x92\x2e\x92\x2f\x92\x30", /* be80 */ "\x00\x00\x92\x31\x92\x32\x92\x33\x92\x34\x92\x35\x92\x36\x92\x37\x92\x38\x92\x39\x92\x3a\x92\x3b\x92\x3c\x92\x3d\x92\x3e\x92\x3f\x92\x40\x92\x41\x92\x42\x92\x43\x92\x44\x92\x45\x92\x46\x92\x47\x92\x48\x92\x49\x92\x4a\x92\x4b\x92\x4c\x92\x4d\x92\x4e\x92\x4f\x92\x50\x92\x51\x92\x52\x92\x53\x92\x54\x92\x55\x92\x56\x92\x57\x92\x58\x92\x59\x92\x5a\x92\x5b\x92\x5c\x92\x5d\x92\x5e\x92\x5f\x92\x60\x92\x61\x92\x62\x92\x63\x92\x64\x92\x65\x92\x66\x92\x67\x92\x68\x92\x69\x92\x6a\x92\x6b\x92\x6c\x92\x6d\x92\x6e\x92\x6f\x92\x70\x92\x71\x92\x72\x92\x73\x92\x75\x92\x76\x92\x77\x92\x78\x92\x79\x92\x7a\x92\x7b\x92\x7c\x92\x7d\x92\x7e\x92\x7f\x92\x80\x92\x81\x92\x82\x92\x83\x92\x84\x92\x85\x92\x86\x92\x87\x92\x88\x92\x89\x92\x8a\x92\x8b\x92\x8c\x92\x8d\x92\x8f\x92\x90\x92\x91\x92\x92\x92\x93\x92\x94\x92\x95\x92\x96\x92\x97\x92\x98\x92\x99\x92\x9a\x92\x9b\x92\x9c\x92\x9d\x92\x9e\x92\x9f\x92\xa0\x92\xa1\x92\xa2\x92\xa3\x92\xa4\x92\xa5\x92\xa6\x92\xa7\x92\xa8\x92\xa9\x92\xaa\x92\xab\x92\xac\x92\xad\x92\xaf\x92\xb0\x00\x00\x00\x00", /* bf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\xb1\x92\xb2\x92\xb3\x92\xb4\x92\xb5\x92\xb6\x92\xb7\x92\xb8\x92\xb9\x92\xba\x92\xbb\x92\xbc\x92\xbd\x92\xbe\x92\xbf\x92\xc0\x92\xc1\x92\xc2\x92\xc3\x92\xc4\x92\xc5\x92\xc6\x92\xc7\x92\xc9\x92\xca\x92\xcb\x92\xcc\x92\xcd\x92\xce\x92\xcf\x92\xd0\x92\xd1\x92\xd2\x92\xd3\x92\xd4\x92\xd5\x92\xd6\x92\xd7\x92\xd8\x92\xd9\x92\xda\x92\xdb\x92\xdc\x92\xdd\x92\xde\x92\xdf\x92\xe0\x92\xe1\x92\xe2\x92\xe3\x92\xe4\x92\xe5\x92\xe6\x92\xe7\x92\xe8\x92\xe9\x92\xea\x92\xeb\x92\xec\x92\xed\x92\xee\x92\xef\x92\xf0", /* bf80 */ "\x00\x00\x92\xf1\x92\xf2\x92\xf3\x92\xf4\x92\xf5\x92\xf6\x92\xf7\x92\xf8\x92\xf9\x92\xfa\x92\xfb\x92\xfc\x92\xfd\x92\xfe\x92\xff\x93\x00\x93\x01\x93\x02\x93\x03\x93\x04\x93\x05\x93\x06\x93\x07\x93\x08\x93\x09\x93\x0a\x93\x0b\x93\x0c\x93\x0d\x93\x0e\x93\x0f\x93\x10\x93\x11\x93\x12\x93\x13\x93\x14\x93\x15\x93\x16\x93\x17\x93\x18\x93\x19\x93\x1a\x93\x1b\x93\x1c\x93\x1d\x93\x1e\x93\x1f\x93\x20\x93\x21\x93\x22\x93\x23\x93\x24\x93\x25\x93\x26\x93\x27\x93\x28\x93\x29\x93\x2a\x93\x2b\x93\x2c\x93\x2d\x93\x2e\x93\x2f\x93\x30\x93\x31\x93\x32\x93\x33\x93\x34\x93\x35\x93\x36\x93\x37\x93\x38\x93\x39\x93\x3a\x93\x3b\x93\x3c\x93\x3d\x93\x3f\x93\x40\x93\x41\x93\x42\x93\x43\x93\x44\x93\x45\x93\x46\x93\x47\x93\x48\x93\x49\x93\x4a\x93\x4b\x93\x4c\x93\x4d\x93\x4e\x93\x4f\x93\x50\x93\x51\x93\x52\x93\x53\x93\x54\x93\x55\x93\x56\x93\x57\x93\x58\x93\x59\x93\x5a\x93\x5b\x93\x5c\x93\x5d\x93\x5e\x93\x5f\x93\x60\x93\x61\x93\x62\x93\x63\x93\x64\x93\x65\x93\x66\x93\x67\x93\x68\x93\x69\x93\x6b\x93\x6c\x93\x6d\x93\x6e\x93\x6f\x00\x00\x00\x00", /* c000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x70\x93\x71\x93\x72\x93\x73\x93\x74\x93\x75\x93\x76\x93\x77\x93\x78\x93\x79\x93\x7a\x93\x7b\x93\x7c\x93\x7d\x93\x7e\x93\x7f\x93\x80\x93\x81\x93\x82\x93\x83\x93\x84\x93\x85\x93\x86\x93\x87\x93\x88\x93\x89\x93\x8a\x93\x8b\x93\x8c\x93\x8d\x93\x8e\x93\x90\x93\x91\x93\x92\x93\x93\x93\x94\x93\x95\x93\x96\x93\x97\x93\x98\x93\x99\x93\x9a\x93\x9b\x93\x9c\x93\x9d\x93\x9e\x93\x9f\x93\xa0\x93\xa1\x93\xa2\x93\xa3\x93\xa4\x93\xa5\x93\xa6\x93\xa7\x93\xa8\x93\xa9\x93\xaa\x93\xab\x93\xac\x93\xad\x93\xae\x93\xaf", /* c080 */ "\x00\x00\x93\xb0\x93\xb1\x93\xb2\x93\xb3\x93\xb4\x93\xb5\x93\xb6\x93\xb7\x93\xb8\x93\xb9\x93\xba\x93\xbb\x93\xbc\x93\xbd\x93\xbe\x93\xbf\x93\xc0\x93\xc1\x93\xc2\x93\xc3\x93\xc4\x93\xc5\x93\xc6\x93\xc7\x93\xc8\x93\xc9\x93\xcb\x93\xcc\x93\xcd\x93\xce\x93\xcf\x93\xd0\x93\xd1\x93\xd2\x93\xd3\x93\xd4\x93\xd5\x93\xd7\x93\xd8\x93\xd9\x93\xda\x93\xdb\x93\xdc\x93\xdd\x93\xde\x93\xdf\x93\xe0\x93\xe1\x93\xe2\x93\xe3\x93\xe4\x93\xe5\x93\xe6\x93\xe7\x93\xe8\x93\xe9\x93\xea\x93\xeb\x93\xec\x93\xed\x93\xee\x93\xef\x93\xf0\x93\xf1\x93\xf2\x93\xf3\x93\xf4\x93\xf5\x93\xf6\x93\xf7\x93\xf8\x93\xf9\x93\xfa\x93\xfb\x93\xfc\x93\xfd\x93\xfe\x93\xff\x94\x00\x94\x01\x94\x02\x94\x03\x94\x04\x94\x05\x94\x06\x94\x07\x94\x08\x94\x09\x94\x0a\x94\x0b\x94\x0c\x94\x0d\x94\x0e\x94\x0f\x94\x10\x94\x11\x94\x12\x94\x13\x94\x14\x94\x15\x94\x16\x94\x17\x94\x18\x94\x19\x94\x1a\x94\x1b\x94\x1c\x94\x1d\x94\x1e\x94\x1f\x94\x20\x94\x21\x94\x22\x94\x23\x94\x24\x94\x25\x94\x26\x94\x27\x94\x28\x94\x29\x94\x2a\x94\x2b\x94\x2c\x94\x2d\x94\x2e\x00\x00\x00\x00", /* c100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x2f\x94\x30\x94\x31\x94\x32\x94\x33\x94\x34\x94\x35\x94\x36\x94\x37\x94\x38\x94\x39\x94\x3a\x94\x3b\x94\x3c\x94\x3d\x94\x3f\x94\x40\x94\x41\x94\x42\x94\x43\x94\x44\x94\x45\x94\x46\x94\x47\x94\x48\x94\x49\x94\x4a\x94\x4b\x94\x4c\x94\x4d\x94\x4e\x94\x4f\x94\x50\x94\x51\x94\x52\x94\x53\x94\x54\x94\x55\x94\x56\x94\x57\x94\x58\x94\x59\x94\x5a\x94\x5b\x94\x5c\x94\x5d\x94\x5e\x94\x5f\x94\x60\x94\x61\x94\x62\x94\x63\x94\x64\x94\x65\x94\x66\x94\x67\x94\x68\x94\x69\x94\x6a\x94\x6c\x94\x6d\x94\x6e\x94\x6f", /* c180 */ "\x00\x00\x94\x70\x94\x71\x94\x72\x94\x73\x94\x74\x94\x75\x94\x76\x94\x77\x94\x78\x94\x79\x94\x7a\x94\x7b\x94\x7c\x94\x7d\x94\x7e\x94\x7f\x94\x80\x94\x81\x94\x82\x94\x83\x94\x84\x94\x91\x94\x96\x94\x98\x94\xc7\x94\xcf\x94\xd3\x94\xd4\x94\xda\x94\xe6\x94\xfb\x95\x1c\x95\x20\x95\x27\x95\x33\x95\x3d\x95\x43\x95\x48\x95\x4b\x95\x55\x95\x5a\x95\x60\x95\x6e\x95\x74\x95\x75\x95\x77\x95\x78\x95\x79\x95\x7a\x95\x7b\x95\x7c\x95\x7d\x95\x7e\x95\x80\x95\x81\x95\x82\x95\x83\x95\x84\x95\x85\x95\x86\x95\x87\x95\x88\x95\x89\x95\x8a\x95\x8b\x95\x8c\x95\x8d\x95\x8e\x95\x8f\x95\x90\x95\x91\x95\x92\x95\x93\x95\x94\x95\x95\x95\x96\x95\x97\x95\x98\x95\x99\x95\x9a\x95\x9b\x95\x9c\x95\x9d\x95\x9e\x95\x9f\x95\xa0\x95\xa1\x95\xa2\x95\xa3\x95\xa4\x95\xa5\x95\xa6\x95\xa7\x95\xa8\x95\xa9\x95\xaa\x95\xab\x95\xac\x95\xad\x95\xae\x95\xaf\x95\xb0\x95\xb1\x95\xb2\x95\xb3\x95\xb4\x95\xb5\x95\xb6\x95\xb7\x95\xb8\x95\xb9\x95\xba\x95\xbb\x95\xbc\x95\xbd\x95\xbe\x95\xbf\x95\xc0\x95\xc1\x95\xc2\x95\xc3\x95\xc4\x95\xc5\x95\xc6\x95\xc7\x00\x00\x00\x00", /* c200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\xc8\x95\xc9\x95\xca\x95\xcb\x95\xcc\x95\xcd\x95\xce\x95\xcf\x95\xd0\x95\xd1\x95\xd2\x95\xd3\x95\xd4\x95\xd5\x95\xd6\x95\xd7\x95\xd8\x95\xd9\x95\xda\x95\xdb\x95\xdc\x95\xdd\x95\xde\x95\xdf\x95\xe0\x95\xe1\x95\xe2\x95\xe3\x95\xe4\x95\xe5\x95\xe6\x95\xe7\x95\xec\x95\xff\x96\x07\x96\x13\x96\x18\x96\x1b\x96\x1e\x96\x20\x96\x23\x96\x24\x96\x25\x96\x26\x96\x27\x96\x28\x96\x29\x96\x2b\x96\x2c\x96\x2d\x96\x2f\x96\x30\x96\x37\x96\x38\x96\x39\x96\x3a\x96\x3e\x96\x41\x96\x43\x96\x4a\x96\x4e\x96\x4f\x96\x51", /* c280 */ "\x00\x00\x96\x52\x96\x53\x96\x56\x96\x57\x96\x58\x96\x59\x96\x5a\x96\x5c\x96\x5d\x96\x5e\x96\x60\x96\x63\x96\x65\x96\x66\x96\x6b\x96\x6d\x96\x6e\x96\x6f\x96\x70\x96\x71\x96\x73\x96\x78\x96\x79\x96\x7a\x96\x7b\x96\x7c\x96\x7d\x96\x7e\x96\x7f\x96\x80\x96\x81\x96\x82\x96\x83\x96\x84\x96\x87\x96\x89\x96\x8a\x96\x8c\x96\x8e\x96\x91\x96\x92\x96\x93\x96\x95\x96\x96\x96\x9a\x96\x9b\x96\x9d\x96\x9e\x96\x9f\x96\xa0\x96\xa1\x96\xa2\x96\xa3\x96\xa4\x96\xa5\x96\xa6\x96\xa8\x96\xa9\x96\xaa\x96\xab\x96\xac\x96\xad\x96\xae\x96\xaf\x96\xb1\x96\xb2\x96\xb4\x96\xb5\x96\xb7\x96\xb8\x96\xba\x96\xbb\x96\xbf\x96\xc2\x96\xc3\x96\xc8\x96\xca\x96\xcb\x96\xd0\x96\xd1\x96\xd3\x96\xd4\x96\xd6\x96\xd7\x96\xd8\x96\xd9\x96\xda\x96\xdb\x96\xdc\x96\xdd\x96\xde\x96\xdf\x96\xe1\x96\xe2\x96\xe3\x96\xe4\x96\xe5\x96\xe6\x96\xe7\x96\xeb\x96\xec\x96\xed\x96\xee\x96\xf0\x96\xf1\x96\xf2\x96\xf4\x96\xf5\x96\xf8\x96\xfa\x96\xfb\x96\xfc\x96\xfd\x96\xff\x97\x02\x97\x03\x97\x05\x97\x0a\x97\x0b\x97\x0c\x97\x10\x97\x11\x97\x12\x97\x14\x97\x15\x00\x00\x00\x00", /* c300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x17\x97\x18\x97\x19\x97\x1a\x97\x1b\x97\x1d\x97\x1f\x97\x20\x97\x21\x97\x22\x97\x23\x97\x24\x97\x25\x97\x26\x97\x27\x97\x28\x97\x29\x97\x2b\x97\x2c\x97\x2e\x97\x2f\x97\x31\x97\x33\x97\x34\x97\x35\x97\x36\x97\x37\x97\x3a\x97\x3b\x97\x3c\x97\x3d\x97\x3f\x97\x40\x97\x41\x97\x42\x97\x43\x97\x44\x97\x45\x97\x46\x97\x47\x97\x48\x97\x49\x97\x4a\x97\x4b\x97\x4c\x97\x4d\x97\x4e\x97\x4f\x97\x50\x97\x51\x97\x54\x97\x55\x97\x57\x97\x58\x97\x5a\x97\x5c\x97\x5d\x97\x5f\x97\x63\x97\x64\x97\x66\x97\x67\x97\x68", /* c380 */ "\x00\x00\x97\x6a\x97\x6b\x97\x6c\x97\x6d\x97\x6e\x97\x6f\x97\x70\x97\x71\x97\x72\x97\x75\x97\x77\x97\x78\x97\x79\x97\x7a\x97\x7b\x97\x7d\x97\x7e\x97\x7f\x97\x80\x97\x81\x97\x82\x97\x83\x97\x84\x97\x86\x97\x87\x97\x88\x97\x89\x97\x8a\x97\x8c\x97\x8e\x97\x8f\x97\x90\x97\x93\x97\x95\x97\x96\x97\x97\x97\x99\x97\x9a\x97\x9b\x97\x9c\x97\x9d\x97\x9e\x97\x9f\x97\xa1\x97\xa2\x97\xa4\x97\xa5\x97\xa6\x97\xa7\x97\xa8\x97\xa9\x97\xaa\x97\xac\x97\xae\x97\xb0\x97\xb1\x97\xb3\x97\xb5\x97\xb6\x97\xb7\x97\xb8\x97\xb9\x97\xba\x97\xbb\x97\xbc\x97\xbd\x97\xbe\x97\xbf\x97\xc0\x97\xc1\x97\xc2\x97\xc3\x97\xc4\x97\xc5\x97\xc6\x97\xc7\x97\xc8\x97\xc9\x97\xca\x97\xcb\x97\xcc\x97\xcd\x97\xce\x97\xcf\x97\xd0\x97\xd1\x97\xd2\x97\xd3\x97\xd4\x97\xd5\x97\xd6\x97\xd7\x97\xd8\x97\xd9\x97\xda\x97\xdb\x97\xdc\x97\xdd\x97\xde\x97\xdf\x97\xe0\x97\xe1\x97\xe2\x97\xe3\x97\xe4\x97\xe5\x97\xe8\x97\xee\x97\xef\x97\xf0\x97\xf1\x97\xf2\x97\xf4\x97\xf7\x97\xf8\x97\xf9\x97\xfa\x97\xfb\x97\xfc\x97\xfd\x97\xfe\x97\xff\x98\x00\x98\x01\x98\x02\x00\x00\x00\x00", /* c400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x03\x98\x04\x98\x05\x98\x06\x98\x07\x98\x08\x98\x09\x98\x0a\x98\x0b\x98\x0c\x98\x0d\x98\x0e\x98\x0f\x98\x10\x98\x11\x98\x12\x98\x13\x98\x14\x98\x15\x98\x16\x98\x17\x98\x18\x98\x19\x98\x1a\x98\x1b\x98\x1c\x98\x1d\x98\x1e\x98\x1f\x98\x20\x98\x21\x98\x22\x98\x23\x98\x24\x98\x25\x98\x26\x98\x27\x98\x28\x98\x29\x98\x2a\x98\x2b\x98\x2c\x98\x2d\x98\x2e\x98\x2f\x98\x30\x98\x31\x98\x32\x98\x33\x98\x34\x98\x35\x98\x36\x98\x37\x98\x38\x98\x39\x98\x3a\x98\x3b\x98\x3c\x98\x3d\x98\x3e\x98\x3f\x98\x40\x98\x41", /* c480 */ "\x00\x00\x98\x42\x98\x43\x98\x44\x98\x45\x98\x46\x98\x47\x98\x48\x98\x49\x98\x4a\x98\x4b\x98\x4c\x98\x4d\x98\x4e\x98\x4f\x98\x50\x98\x51\x98\x52\x98\x53\x98\x54\x98\x55\x98\x56\x98\x57\x98\x58\x98\x59\x98\x5a\x98\x5b\x98\x5c\x98\x5d\x98\x5e\x98\x5f\x98\x60\x98\x61\x98\x62\x98\x63\x98\x64\x98\x65\x98\x66\x98\x67\x98\x68\x98\x69\x98\x6a\x98\x6b\x98\x6c\x98\x6d\x98\x6e\x98\x6f\x98\x70\x98\x71\x98\x72\x98\x73\x98\x74\x98\x8b\x98\x8e\x98\x92\x98\x95\x98\x99\x98\xa3\x98\xa8\x98\xa9\x98\xaa\x98\xab\x98\xac\x98\xad\x98\xae\x98\xaf\x98\xb0\x98\xb1\x98\xb2\x98\xb3\x98\xb4\x98\xb5\x98\xb6\x98\xb7\x98\xb8\x98\xb9\x98\xba\x98\xbb\x98\xbc\x98\xbd\x98\xbe\x98\xbf\x98\xc0\x98\xc1\x98\xc2\x98\xc3\x98\xc4\x98\xc5\x98\xc6\x98\xc7\x98\xc8\x98\xc9\x98\xca\x98\xcb\x98\xcc\x98\xcd\x98\xcf\x98\xd0\x98\xd4\x98\xd6\x98\xd7\x98\xdb\x98\xdc\x98\xdd\x98\xe0\x98\xe1\x98\xe2\x98\xe3\x98\xe4\x98\xe5\x98\xe6\x98\xe9\x98\xea\x98\xeb\x98\xec\x98\xed\x98\xee\x98\xef\x98\xf0\x98\xf1\x98\xf2\x98\xf3\x98\xf4\x98\xf5\x98\xf6\x98\xf7\x00\x00\x00\x00", /* c500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\xf8\x98\xf9\x98\xfa\x98\xfb\x98\xfc\x98\xfd\x98\xfe\x98\xff\x99\x00\x99\x01\x99\x02\x99\x03\x99\x04\x99\x05\x99\x06\x99\x07\x99\x08\x99\x09\x99\x0a\x99\x0b\x99\x0c\x99\x0e\x99\x0f\x99\x11\x99\x12\x99\x13\x99\x14\x99\x15\x99\x16\x99\x17\x99\x18\x99\x19\x99\x1a\x99\x1b\x99\x1c\x99\x1d\x99\x1e\x99\x1f\x99\x20\x99\x21\x99\x22\x99\x23\x99\x24\x99\x25\x99\x26\x99\x27\x99\x28\x99\x29\x99\x2a\x99\x2b\x99\x2c\x99\x2d\x99\x2f\x99\x30\x99\x31\x99\x32\x99\x33\x99\x34\x99\x35\x99\x36\x99\x37\x99\x38\x99\x39", /* c580 */ "\x00\x00\x99\x3a\x99\x3b\x99\x3c\x99\x3d\x99\x3e\x99\x3f\x99\x40\x99\x41\x99\x42\x99\x43\x99\x44\x99\x45\x99\x46\x99\x47\x99\x48\x99\x49\x99\x4a\x99\x4b\x99\x4c\x99\x4d\x99\x4e\x99\x4f\x99\x50\x99\x51\x99\x52\x99\x53\x99\x56\x99\x57\x99\x58\x99\x59\x99\x5a\x99\x5b\x99\x5c\x99\x5d\x99\x5e\x99\x5f\x99\x60\x99\x61\x99\x62\x99\x64\x99\x66\x99\x73\x99\x78\x99\x79\x99\x7b\x99\x7e\x99\x82\x99\x83\x99\x89\x99\x8c\x99\x8e\x99\x9a\x99\x9b\x99\x9c\x99\x9d\x99\x9e\x99\x9f\x99\xa0\x99\xa1\x99\xa2\x99\xa3\x99\xa4\x99\xa6\x99\xa7\x99\xa9\x99\xaa\x99\xab\x99\xac\x99\xad\x99\xae\x99\xaf\x99\xb0\x99\xb1\x99\xb2\x99\xb3\x99\xb4\x99\xb5\x99\xb6\x99\xb7\x99\xb8\x99\xb9\x99\xba\x99\xbb\x99\xbc\x99\xbd\x99\xbe\x99\xbf\x99\xc0\x99\xc1\x99\xc2\x99\xc3\x99\xc4\x99\xc5\x99\xc6\x99\xc7\x99\xc8\x99\xc9\x99\xca\x99\xcb\x99\xcc\x99\xcd\x99\xce\x99\xcf\x99\xd0\x99\xd1\x99\xd2\x99\xd3\x99\xd4\x99\xd5\x99\xd6\x99\xd7\x99\xd8\x99\xd9\x99\xda\x99\xdb\x99\xdc\x99\xdd\x99\xde\x99\xdf\x99\xe0\x99\xe1\x99\xe2\x99\xe3\x99\xe4\x99\xe5\x00\x00\x00\x00", /* c600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xe6\x99\xe7\x99\xe8\x99\xe9\x99\xea\x99\xeb\x99\xec\x99\xed\x99\xee\x99\xef\x99\xf0\x99\xf1\x99\xf2\x99\xf3\x99\xf4\x99\xf5\x99\xf6\x99\xf7\x99\xf8\x99\xf9\x99\xfa\x99\xfb\x99\xfc\x99\xfd\x99\xfe\x99\xff\x9a\x00\x9a\x01\x9a\x02\x9a\x03\x9a\x04\x9a\x05\x9a\x06\x9a\x07\x9a\x08\x9a\x09\x9a\x0a\x9a\x0b\x9a\x0c\x9a\x0d\x9a\x0e\x9a\x0f\x9a\x10\x9a\x11\x9a\x12\x9a\x13\x9a\x14\x9a\x15\x9a\x16\x9a\x17\x9a\x18\x9a\x19\x9a\x1a\x9a\x1b\x9a\x1c\x9a\x1d\x9a\x1e\x9a\x1f\x9a\x20\x9a\x21\x9a\x22\x9a\x23\x9a\x24", /* c680 */ "\x00\x00\x9a\x25\x9a\x26\x9a\x27\x9a\x28\x9a\x29\x9a\x2a\x9a\x2b\x9a\x2c\x9a\x2d\x9a\x2e\x9a\x2f\x9a\x30\x9a\x31\x9a\x32\x9a\x33\x9a\x34\x9a\x35\x9a\x36\x9a\x37\x9a\x38\x9a\x39\x9a\x3a\x9a\x3b\x9a\x3c\x9a\x3d\x9a\x3e\x9a\x3f\x9a\x40\x9a\x41\x9a\x42\x9a\x43\x9a\x44\x9a\x45\x9a\x46\x9a\x47\x9a\x48\x9a\x49\x9a\x4a\x9a\x4b\x9a\x4c\x9a\x4d\x9a\x4e\x9a\x4f\x9a\x50\x9a\x51\x9a\x52\x9a\x53\x9a\x54\x9a\x55\x9a\x56\x9a\x57\x9a\x58\x9a\x59\x9a\x5a\x9a\x5b\x9a\x5c\x9a\x5d\x9a\x5e\x9a\x5f\x9a\x60\x9a\x61\x9a\x62\x9a\x63\x9a\x64\x9a\x65\x9a\x66\x9a\x67\x9a\x68\x9a\x69\x9a\x6a\x9a\x6b\x9a\x72\x9a\x83\x9a\x89\x9a\x8d\x9a\x8e\x9a\x94\x9a\x95\x9a\x99\x9a\xa6\x9a\xa9\x9a\xaa\x9a\xab\x9a\xac\x9a\xad\x9a\xae\x9a\xaf\x9a\xb2\x9a\xb3\x9a\xb4\x9a\xb5\x9a\xb9\x9a\xbb\x9a\xbd\x9a\xbe\x9a\xbf\x9a\xc3\x9a\xc4\x9a\xc6\x9a\xc7\x9a\xc8\x9a\xc9\x9a\xca\x9a\xcd\x9a\xce\x9a\xcf\x9a\xd0\x9a\xd2\x9a\xd4\x9a\xd5\x9a\xd6\x9a\xd7\x9a\xd9\x9a\xda\x9a\xdb\x9a\xdc\x9a\xdd\x9a\xde\x9a\xe0\x9a\xe2\x9a\xe3\x9a\xe4\x9a\xe5\x9a\xe7\x9a\xe8\x00\x00\x00\x00", /* c700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xe9\x9a\xea\x9a\xec\x9a\xee\x9a\xf0\x9a\xf1\x9a\xf2\x9a\xf3\x9a\xf4\x9a\xf5\x9a\xf6\x9a\xf7\x9a\xf8\x9a\xfa\x9a\xfc\x9a\xfd\x9a\xfe\x9a\xff\x9b\x00\x9b\x01\x9b\x02\x9b\x04\x9b\x05\x9b\x06\x9b\x07\x9b\x09\x9b\x0a\x9b\x0b\x9b\x0c\x9b\x0d\x9b\x0e\x9b\x10\x9b\x11\x9b\x12\x9b\x14\x9b\x15\x9b\x16\x9b\x17\x9b\x18\x9b\x19\x9b\x1a\x9b\x1b\x9b\x1c\x9b\x1d\x9b\x1e\x9b\x20\x9b\x21\x9b\x22\x9b\x24\x9b\x25\x9b\x26\x9b\x27\x9b\x28\x9b\x29\x9b\x2a\x9b\x2b\x9b\x2c\x9b\x2d\x9b\x2e\x9b\x30\x9b\x31\x9b\x33\x9b\x34", /* c780 */ "\x00\x00\x9b\x35\x9b\x36\x9b\x37\x9b\x38\x9b\x39\x9b\x3a\x9b\x3d\x9b\x3e\x9b\x3f\x9b\x40\x9b\x46\x9b\x4a\x9b\x4b\x9b\x4c\x9b\x4e\x9b\x50\x9b\x52\x9b\x53\x9b\x55\x9b\x56\x9b\x57\x9b\x58\x9b\x59\x9b\x5a\x9b\x5b\x9b\x5c\x9b\x5d\x9b\x5e\x9b\x5f\x9b\x60\x9b\x61\x9b\x62\x9b\x63\x9b\x64\x9b\x65\x9b\x66\x9b\x67\x9b\x68\x9b\x69\x9b\x6a\x9b\x6b\x9b\x6c\x9b\x6d\x9b\x6e\x9b\x6f\x9b\x70\x9b\x71\x9b\x72\x9b\x73\x9b\x74\x9b\x75\x9b\x76\x9b\x77\x9b\x78\x9b\x79\x9b\x7a\x9b\x7b\x9b\x7c\x9b\x7d\x9b\x7e\x9b\x7f\x9b\x80\x9b\x81\x9b\x82\x9b\x83\x9b\x84\x9b\x85\x9b\x86\x9b\x87\x9b\x88\x9b\x89\x9b\x8a\x9b\x8b\x9b\x8c\x9b\x8d\x9b\x8e\x9b\x8f\x9b\x90\x9b\x91\x9b\x92\x9b\x93\x9b\x94\x9b\x95\x9b\x96\x9b\x97\x9b\x98\x9b\x99\x9b\x9a\x9b\x9b\x9b\x9c\x9b\x9d\x9b\x9e\x9b\x9f\x9b\xa0\x9b\xa1\x9b\xa2\x9b\xa3\x9b\xa4\x9b\xa5\x9b\xa6\x9b\xa7\x9b\xa8\x9b\xa9\x9b\xaa\x9b\xab\x9b\xac\x9b\xad\x9b\xae\x9b\xaf\x9b\xb0\x9b\xb1\x9b\xb2\x9b\xb3\x9b\xb4\x9b\xb5\x9b\xb6\x9b\xb7\x9b\xb8\x9b\xb9\x9b\xba\x9b\xbb\x9b\xbc\x9b\xbd\x9b\xbe\x9b\xbf\x00\x00\x00\x00", /* c800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xc0\x9b\xc1\x9b\xc2\x9b\xc3\x9b\xc4\x9b\xc5\x9b\xc6\x9b\xc7\x9b\xc8\x9b\xc9\x9b\xca\x9b\xcb\x9b\xcc\x9b\xcd\x9b\xce\x9b\xcf\x9b\xd0\x9b\xd1\x9b\xd2\x9b\xd3\x9b\xd4\x9b\xd5\x9b\xd6\x9b\xd7\x9b\xd8\x9b\xd9\x9b\xda\x9b\xdb\x9b\xdc\x9b\xdd\x9b\xde\x9b\xdf\x9b\xe0\x9b\xe1\x9b\xe2\x9b\xe3\x9b\xe4\x9b\xe5\x9b\xe6\x9b\xe7\x9b\xe8\x9b\xe9\x9b\xea\x9b\xeb\x9b\xec\x9b\xed\x9b\xee\x9b\xef\x9b\xf0\x9b\xf1\x9b\xf2\x9b\xf3\x9b\xf4\x9b\xf5\x9b\xf6\x9b\xf7\x9b\xf8\x9b\xf9\x9b\xfa\x9b\xfb\x9b\xfc\x9b\xfd\x9b\xfe", /* c880 */ "\x00\x00\x9b\xff\x9c\x00\x9c\x01\x9c\x02\x9c\x03\x9c\x04\x9c\x05\x9c\x06\x9c\x07\x9c\x08\x9c\x09\x9c\x0a\x9c\x0b\x9c\x0c\x9c\x0d\x9c\x0e\x9c\x0f\x9c\x10\x9c\x11\x9c\x12\x9c\x13\x9c\x14\x9c\x15\x9c\x16\x9c\x17\x9c\x18\x9c\x19\x9c\x1a\x9c\x1b\x9c\x1c\x9c\x1d\x9c\x1e\x9c\x1f\x9c\x20\x9c\x21\x9c\x22\x9c\x23\x9c\x24\x9c\x25\x9c\x26\x9c\x27\x9c\x28\x9c\x29\x9c\x2a\x9c\x2b\x9c\x2c\x9c\x2d\x9c\x2e\x9c\x2f\x9c\x30\x9c\x31\x9c\x32\x9c\x33\x9c\x34\x9c\x35\x9c\x36\x9c\x37\x9c\x38\x9c\x39\x9c\x3a\x9c\x3b\x9c\x3c\x9c\x3d\x9c\x3e\x9c\x3f\x9c\x40\x9c\x41\x9c\x42\x9c\x43\x9c\x44\x9c\x45\x9c\x46\x9c\x47\x9c\x48\x9c\x49\x9c\x4a\x9c\x4b\x9c\x4c\x9c\x4d\x9c\x4e\x9c\x4f\x9c\x50\x9c\x51\x9c\x52\x9c\x53\x9c\x54\x9c\x55\x9c\x56\x9c\x57\x9c\x58\x9c\x59\x9c\x5a\x9c\x5b\x9c\x5c\x9c\x5d\x9c\x5e\x9c\x5f\x9c\x60\x9c\x61\x9c\x62\x9c\x63\x9c\x64\x9c\x65\x9c\x66\x9c\x67\x9c\x68\x9c\x69\x9c\x6a\x9c\x6b\x9c\x6c\x9c\x6d\x9c\x6e\x9c\x6f\x9c\x70\x9c\x71\x9c\x72\x9c\x73\x9c\x74\x9c\x75\x9c\x76\x9c\x77\x9c\x78\x9c\x79\x9c\x7a\x9c\x7b\x00\x00\x00\x00", /* c900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x7d\x9c\x7e\x9c\x80\x9c\x83\x9c\x84\x9c\x89\x9c\x8a\x9c\x8c\x9c\x8f\x9c\x93\x9c\x96\x9c\x97\x9c\x98\x9c\x99\x9c\x9d\x9c\xaa\x9c\xac\x9c\xaf\x9c\xb9\x9c\xbe\x9c\xbf\x9c\xc0\x9c\xc1\x9c\xc2\x9c\xc8\x9c\xc9\x9c\xd1\x9c\xd2\x9c\xda\x9c\xdb\x9c\xe0\x9c\xe1\x9c\xe3\x9c\xe4\x9c\xe5\x9c\xe6\x9c\xe7\x9c\xe8\x9c\xe9\x9c\xea\x9c\xeb\x9c\xec\x9c\xed\x9c\xee\x9c\xef\x9c\xf0\x9c\xf1\x9c\xf2\x9c\xf3\x9c\xf4\x9c\xf5\x9c\xf6\x9c\xf7\x9c\xf8\x9c\xf9\x9c\xfa\x9c\xfb\x9c\xfc\x9c\xfd\x9c\xfe\x9c\xff\x9d\x00\x9d\x01", /* c980 */ "\x00\x00\x9d\x02\x9d\x03\x9d\x04\x9d\x05\x9d\x06\x9d\x07\x9d\x08\x9d\x09\x9d\x0a\x9d\x0b\x9d\x0c\x9d\x0d\x9d\x0e\x9d\x0f\x9d\x10\x9d\x11\x9d\x12\x9d\x13\x9d\x14\x9d\x15\x9d\x16\x9d\x17\x9d\x18\x9d\x19\x9d\x1a\x9d\x1b\x9d\x1c\x9d\x1d\x9d\x1e\x9d\x1f\x9d\x20\x9d\x21\x9d\x22\x9d\x23\x9d\x24\x9d\x25\x9d\x26\x9d\x27\x9d\x28\x9d\x29\x9d\x2a\x9d\x2b\x9d\x2c\x9d\x2d\x9d\x2e\x9d\x2f\x9d\x30\x9d\x31\x9d\x32\x9d\x33\x9d\x34\x9d\x35\x9d\x36\x9d\x37\x9d\x38\x9d\x39\x9d\x3a\x9d\x3b\x9d\x3c\x9d\x3d\x9d\x3e\x9d\x3f\x9d\x40\x9d\x41\x9d\x42\x9d\x43\x9d\x44\x9d\x45\x9d\x46\x9d\x47\x9d\x48\x9d\x49\x9d\x4a\x9d\x4b\x9d\x4c\x9d\x4d\x9d\x4e\x9d\x4f\x9d\x50\x9d\x51\x9d\x52\x9d\x53\x9d\x54\x9d\x55\x9d\x56\x9d\x57\x9d\x58\x9d\x59\x9d\x5a\x9d\x5b\x9d\x5c\x9d\x5d\x9d\x5e\x9d\x5f\x9d\x60\x9d\x61\x9d\x62\x9d\x63\x9d\x64\x9d\x65\x9d\x66\x9d\x67\x9d\x68\x9d\x69\x9d\x6a\x9d\x6b\x9d\x6c\x9d\x6d\x9d\x6e\x9d\x6f\x9d\x70\x9d\x71\x9d\x72\x9d\x73\x9d\x74\x9d\x75\x9d\x76\x9d\x77\x9d\x78\x9d\x79\x9d\x7a\x9d\x7b\x9d\x7c\x9d\x7d\x9d\x7e\x00\x00\x00\x00", /* ca00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x7f\x9d\x80\x9d\x81\x9d\x82\x9d\x83\x9d\x84\x9d\x85\x9d\x86\x9d\x87\x9d\x88\x9d\x89\x9d\x8a\x9d\x8b\x9d\x8c\x9d\x8d\x9d\x8e\x9d\x8f\x9d\x90\x9d\x91\x9d\x92\x9d\x93\x9d\x94\x9d\x95\x9d\x96\x9d\x97\x9d\x98\x9d\x99\x9d\x9a\x9d\x9b\x9d\x9c\x9d\x9d\x9d\x9e\x9d\x9f\x9d\xa0\x9d\xa1\x9d\xa2\x9d\xa3\x9d\xa4\x9d\xa5\x9d\xa6\x9d\xa7\x9d\xa8\x9d\xa9\x9d\xaa\x9d\xab\x9d\xac\x9d\xad\x9d\xae\x9d\xaf\x9d\xb0\x9d\xb1\x9d\xb2\x9d\xb3\x9d\xb4\x9d\xb5\x9d\xb6\x9d\xb7\x9d\xb8\x9d\xb9\x9d\xba\x9d\xbb\x9d\xbc\x9d\xbd", /* ca80 */ "\x00\x00\x9d\xbe\x9d\xbf\x9d\xc0\x9d\xc1\x9d\xc2\x9d\xc3\x9d\xc4\x9d\xc5\x9d\xc6\x9d\xc7\x9d\xc8\x9d\xc9\x9d\xca\x9d\xcb\x9d\xcc\x9d\xcd\x9d\xce\x9d\xcf\x9d\xd0\x9d\xd1\x9d\xd2\x9d\xd3\x9d\xd4\x9d\xd5\x9d\xd6\x9d\xd7\x9d\xd8\x9d\xd9\x9d\xda\x9d\xdb\x9d\xdc\x9d\xdd\x9d\xde\x9d\xdf\x9d\xe0\x9d\xe1\x9d\xe2\x9d\xe3\x9d\xe4\x9d\xe5\x9d\xe6\x9d\xe7\x9d\xe8\x9d\xe9\x9d\xea\x9d\xeb\x9d\xec\x9d\xed\x9d\xee\x9d\xef\x9d\xf0\x9d\xf1\x9d\xf2\x9d\xf3\x9d\xf4\x9d\xf5\x9d\xf6\x9d\xf7\x9d\xf8\x9d\xf9\x9d\xfa\x9d\xfb\x9d\xfc\x9d\xfd\x9d\xfe\x9d\xff\x9e\x00\x9e\x01\x9e\x02\x9e\x03\x9e\x04\x9e\x05\x9e\x06\x9e\x07\x9e\x08\x9e\x09\x9e\x0a\x9e\x0b\x9e\x0c\x9e\x0d\x9e\x0e\x9e\x0f\x9e\x10\x9e\x11\x9e\x12\x9e\x13\x9e\x14\x9e\x15\x9e\x16\x9e\x17\x9e\x18\x9e\x19\x9e\x1a\x9e\x1b\x9e\x1c\x9e\x1d\x9e\x1e\x9e\x24\x9e\x27\x9e\x2e\x9e\x30\x9e\x34\x9e\x3b\x9e\x3c\x9e\x40\x9e\x4d\x9e\x50\x9e\x52\x9e\x53\x9e\x54\x9e\x56\x9e\x59\x9e\x5d\x9e\x5f\x9e\x60\x9e\x61\x9e\x62\x9e\x65\x9e\x6e\x9e\x6f\x9e\x72\x9e\x74\x9e\x75\x9e\x76\x9e\x77\x00\x00\x00\x00", /* cb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x78\x9e\x79\x9e\x7a\x9e\x7b\x9e\x7c\x9e\x7d\x9e\x80\x9e\x81\x9e\x83\x9e\x84\x9e\x85\x9e\x86\x9e\x89\x9e\x8a\x9e\x8c\x9e\x8d\x9e\x8e\x9e\x8f\x9e\x90\x9e\x91\x9e\x94\x9e\x95\x9e\x96\x9e\x97\x9e\x98\x9e\x99\x9e\x9a\x9e\x9b\x9e\x9c\x9e\x9e\x9e\xa0\x9e\xa1\x9e\xa2\x9e\xa3\x9e\xa4\x9e\xa5\x9e\xa7\x9e\xa8\x9e\xa9\x9e\xaa\x9e\xab\x9e\xac\x9e\xad\x9e\xae\x9e\xaf\x9e\xb0\x9e\xb1\x9e\xb2\x9e\xb3\x9e\xb5\x9e\xb6\x9e\xb7\x9e\xb9\x9e\xba\x9e\xbc\x9e\xbf\x9e\xc0\x9e\xc1\x9e\xc2\x9e\xc3\x9e\xc5\x9e\xc6\x9e\xc7", /* cb80 */ "\x00\x00\x9e\xc8\x9e\xca\x9e\xcb\x9e\xcc\x9e\xd0\x9e\xd2\x9e\xd3\x9e\xd5\x9e\xd6\x9e\xd7\x9e\xd9\x9e\xda\x9e\xde\x9e\xe1\x9e\xe3\x9e\xe4\x9e\xe6\x9e\xe8\x9e\xeb\x9e\xec\x9e\xed\x9e\xee\x9e\xf0\x9e\xf1\x9e\xf2\x9e\xf3\x9e\xf4\x9e\xf5\x9e\xf6\x9e\xf7\x9e\xf8\x9e\xfa\x9e\xfd\x9e\xff\x9f\x00\x9f\x01\x9f\x02\x9f\x03\x9f\x04\x9f\x05\x9f\x06\x9f\x07\x9f\x08\x9f\x09\x9f\x0a\x9f\x0c\x9f\x0f\x9f\x11\x9f\x12\x9f\x14\x9f\x15\x9f\x16\x9f\x18\x9f\x1a\x9f\x1b\x9f\x1c\x9f\x1d\x9f\x1e\x9f\x1f\x9f\x21\x9f\x23\x9f\x24\x9f\x25\x9f\x26\x9f\x27\x9f\x28\x9f\x29\x9f\x2a\x9f\x2b\x9f\x2d\x9f\x2e\x9f\x30\x9f\x31\x9f\x32\x9f\x33\x9f\x34\x9f\x35\x9f\x36\x9f\x38\x9f\x3a\x9f\x3c\x9f\x3f\x9f\x40\x9f\x41\x9f\x42\x9f\x43\x9f\x45\x9f\x46\x9f\x47\x9f\x48\x9f\x49\x9f\x4a\x9f\x4b\x9f\x4c\x9f\x4d\x9f\x4e\x9f\x4f\x9f\x52\x9f\x53\x9f\x54\x9f\x55\x9f\x56\x9f\x57\x9f\x58\x9f\x59\x9f\x5a\x9f\x5b\x9f\x5c\x9f\x5d\x9f\x5e\x9f\x5f\x9f\x60\x9f\x61\x9f\x62\x9f\x63\x9f\x64\x9f\x65\x9f\x66\x9f\x67\x9f\x68\x9f\x69\x9f\x6a\x9f\x6b\x9f\x6c\x9f\x6d\x00\x00\x00\x00", /* cc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x6e\x9f\x6f\x9f\x70\x9f\x71\x9f\x72\x9f\x73\x9f\x74\x9f\x75\x9f\x76\x9f\x77\x9f\x78\x9f\x79\x9f\x7a\x9f\x7b\x9f\x7c\x9f\x7d\x9f\x7e\x9f\x81\x9f\x82\x9f\x8d\x9f\x8e\x9f\x8f\x9f\x90\x9f\x91\x9f\x92\x9f\x93\x9f\x94\x9f\x95\x9f\x96\x9f\x97\x9f\x98\x9f\x9c\x9f\x9d\x9f\x9e\x9f\xa1\x9f\xa2\x9f\xa3\x9f\xa4\x9f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* cc80 */ NULL, /* cd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xca\x02\xcb\x02\xd9\x20\x13\x20\x14\x20\x35\x21\x05\x21\x09\x21\x96\x21\x97\x21\x98\x21\x99\x22\x15\x22\x1f\x22\x23\x22\x52\x22\x66\x22\x67\x22\xbf\x25\x50\x25\x51\x25\x52\x25\x53\x25\x54\x25\x55\x25\x56\x25\x57\x25\x58\x25\x59\x25\x5a\x25\x5b\x25\x5c\x25\x5d\x25\x5e\x25\x5f\x25\x60\x25\x61\x25\x62\x25\x63\x25\x64\x25\x65\x25\x66\x25\x67\x25\x68\x25\x69\x25\x6a\x25\x6b\x25\x6c\x25\x6d\x25\x6e\x25\x6f\x25\x70\x25\x71\x25\x72\x25\x73\x25\x81\x25\x82\x25\x83\x25\x84\x25\x85\x25\x86\x25\x87\x25\x88", /* cd80 */ "\x00\x00\x25\x89\x25\x8a\x25\x8b\x25\x8c\x25\x8d\x25\x8e\x25\x8f\x25\x93\x25\x94\x25\x95\x25\xe2\x25\xe3\x25\xe4\x25\xe5\x26\x09\x22\x95\x30\x1d\x30\x1e\x30\x21\x30\x22\x30\x23\x30\x24\x30\x25\x30\x26\x30\x27\x30\x28\x30\x29\x32\xa3\x33\x8e\x33\x8f\x33\x9c\x33\x9d\x33\x9e\x33\xa1\x33\xc4\x33\xce\x33\xd1\x33\xd2\x33\xd5\xfe\x30\xfe\x49\xfe\x4a\xfe\x4b\xfe\x4c\xfe\x4d\xfe\x4e\xfe\x4f\xfe\x50\xfe\x51\xfe\x52\xfe\x54\xfe\x55\xfe\x56\xfe\x57\xfe\x59\xfe\x5a\xfe\x5b\xfe\x5c\xfe\x5d\xfe\x5e\xfe\x5f\xfe\x60\xfe\x61\xfe\x62\xfe\x63\xfe\x64\xfe\x65\xfe\x66\xfe\x68\xfe\x69\xfe\x6a\xfe\x6b\x30\x3e\x2f\xf0\x2f\xf1\x2f\xf2\x2f\xf3\x2f\xf4\x2f\xf5\x2f\xf6\x2f\xf7\x2f\xf8\x2f\xf9\x2f\xfa\x2f\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ce00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x2c\xf9\x79\xf9\x95\xf9\xe7\xf9\xf1\xfa\x0c\xfa\x0d\xfa\x0e\xfa\x0f\xfa\x11\xfa\x13\xfa\x14\xfa\x18\xfa\x1f\xfa\x20\xfa\x21\xfa\x23\xfa\x24\xfa\x27\xfa\x28\xfa\x29\x2e\x81\xe8\x16\xe8\x17\xe8\x18\x2e\x84\x34\x73\x34\x47\x2e\x88\x2e\x8b\xe8\x1e\x35\x9e\x36\x1a\x36\x0e\x2e\x8c\x2e\x97\x39\x6e\x39\x18\xe8\x26\x39\xcf\x39\xdf\x3a\x73\x39\xd0\xe8\x2b\xe8\x2c\x3b\x4e\x3c\x6e\x3c\xe0\x2e\xa7\xe8\x31\xe8\x32\x2e\xaa\x40\x56\x41\x5f\x2e\xae\x43\x37\x2e\xb3\x2e\xb6\x2e\xb7\xe8\x3b\x43\xb1\x43\xac\x2e\xbb", /* ce80 */ "\x00\x00\x43\xdd\x44\xd6\x46\x61\x46\x4c\xe8\x43\x47\x23\x47\x29\x47\x7c\x47\x8d\x2e\xca\x49\x47\x49\x7a\x49\x7d\x49\x82\x49\x83\x49\x85\x49\x86\x49\x9f\x49\x9b\x49\xb7\x49\xb6\xe8\x54\xe8\x55\x4c\xa3\x4c\x9f\x4c\xa0\x4c\xa1\x4c\x77\x4c\xa2\x4d\x13\x4d\x14\x4d\x15\x4d\x16\x4d\x17\x4d\x18\x4d\x19\x4d\xae\xe8\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* cf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x34\x01\x34\x02\x34\x03\x34\x04\x34\x05\x34\x06\x34\x07\x34\x08\x34\x09\x34\x0a\x34\x0b\x34\x0c\x34\x0d\x34\x0e\x34\x0f\x34\x10\x34\x11\x34\x12\x34\x13\x34\x14\x34\x15\x34\x16\x34\x17\x34\x18\x34\x19\x34\x1a\x34\x1b\x34\x1c\x34\x1d\x34\x1e\x34\x1f\x34\x20\x34\x21\x34\x22\x34\x23\x34\x24\x34\x25\x34\x26\x34\x27\x34\x28\x34\x29\x34\x2a\x34\x2b\x34\x2c\x34\x2d\x34\x2e\x34\x2f\x34\x30\x34\x31\x34\x32\x34\x33\x34\x34\x34\x35\x34\x36\x34\x37\x34\x38\x34\x39\x34\x3a\x34\x3b\x34\x3c\x34\x3d\x34\x3e", /* cf80 */ "\x34\x3f\x34\x40\x34\x41\x34\x42\x34\x43\x34\x44\x34\x45\x34\x46\x34\x48\x34\x49\x34\x4a\x34\x4b\x34\x4c\x34\x4d\x34\x4e\x34\x4f\x34\x50\x34\x51\x34\x52\x34\x53\x34\x54\x34\x55\x34\x56\x34\x57\x34\x58\x34\x59\x34\x5a\x34\x5b\x34\x5c\x34\x5d\x34\x5e\x34\x5f\x34\x60\x34\x61\x34\x62\x34\x63\x34\x64\x34\x65\x34\x66\x34\x67\x34\x68\x34\x69\x34\x6a\x34\x6b\x34\x6c\x34\x6d\x34\x6e\x34\x6f\x34\x70\x34\x71\x34\x72\x34\x74\x34\x75\x34\x76\x34\x77\x34\x78\x34\x79\x34\x7a\x34\x7b\x34\x7c\x34\x7d\x34\x7e\x34\x7f\x34\x80\x34\x81\x34\x82\x34\x83\x34\x84\x34\x85\x34\x86\x34\x87\x34\x88\x34\x89\x34\x8a\x34\x8b\x34\x8c\x34\x8d\x34\x8e\x34\x8f\x34\x90\x34\x91\x34\x92\x34\x93\x34\x94\x34\x95\x34\x96\x34\x97\x34\x98\x34\x99\x34\x9a\x34\x9b\x34\x9c\x34\x9d\x34\x9e\x34\x9f\x34\xa0\x34\xa1\x34\xa2\x34\xa3\x34\xa4\x34\xa5\x34\xa6\x34\xa7\x34\xa8\x34\xa9\x34\xaa\x34\xab\x34\xac\x34\xad\x34\xae\x34\xaf\x34\xb0\x34\xb1\x34\xb2\x34\xb3\x34\xb4\x34\xb5\x34\xb6\x34\xb7\x34\xb8\x34\xb9\x34\xba\x34\xbb\x34\xbc\x34\xbd\x34\xbe\x34\xbf\x00\x00", /* d000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\xc0\x34\xc1\x34\xc2\x34\xc3\x34\xc4\x34\xc5\x34\xc6\x34\xc7\x34\xc8\x34\xc9\x34\xca\x34\xcb\x34\xcc\x34\xcd\x34\xce\x34\xcf\x34\xd0\x34\xd1\x34\xd2\x34\xd3\x34\xd4\x34\xd5\x34\xd6\x34\xd7\x34\xd8\x34\xd9\x34\xda\x34\xdb\x34\xdc\x34\xdd\x34\xde\x34\xdf\x34\xe0\x34\xe1\x34\xe2\x34\xe3\x34\xe4\x34\xe5\x34\xe6\x34\xe7\x34\xe8\x34\xe9\x34\xea\x34\xeb\x34\xec\x34\xed\x34\xee\x34\xef\x34\xf0\x34\xf1\x34\xf2\x34\xf3\x34\xf4\x34\xf5\x34\xf6\x34\xf7\x34\xf8\x34\xf9\x34\xfa\x34\xfb\x34\xfc\x34\xfd\x34\xfe", /* d080 */ "\x34\xff\x35\x00\x35\x01\x35\x02\x35\x03\x35\x04\x35\x05\x35\x06\x35\x07\x35\x08\x35\x09\x35\x0a\x35\x0b\x35\x0c\x35\x0d\x35\x0e\x35\x0f\x35\x10\x35\x11\x35\x12\x35\x13\x35\x14\x35\x15\x35\x16\x35\x17\x35\x18\x35\x19\x35\x1a\x35\x1b\x35\x1c\x35\x1d\x35\x1e\x35\x1f\x35\x20\x35\x21\x35\x22\x35\x23\x35\x24\x35\x25\x35\x26\x35\x27\x35\x28\x35\x29\x35\x2a\x35\x2b\x35\x2c\x35\x2d\x35\x2e\x35\x2f\x35\x30\x35\x31\x35\x32\x35\x33\x35\x34\x35\x35\x35\x36\x35\x37\x35\x38\x35\x39\x35\x3a\x35\x3b\x35\x3c\x35\x3d\x35\x3e\x35\x3f\x35\x40\x35\x41\x35\x42\x35\x43\x35\x44\x35\x45\x35\x46\x35\x47\x35\x48\x35\x49\x35\x4a\x35\x4b\x35\x4c\x35\x4d\x35\x4e\x35\x4f\x35\x50\x35\x51\x35\x52\x35\x53\x35\x54\x35\x55\x35\x56\x35\x57\x35\x58\x35\x59\x35\x5a\x35\x5b\x35\x5c\x35\x5d\x35\x5e\x35\x5f\x35\x60\x35\x61\x35\x62\x35\x63\x35\x64\x35\x65\x35\x66\x35\x67\x35\x68\x35\x69\x35\x6a\x35\x6b\x35\x6c\x35\x6d\x35\x6e\x35\x6f\x35\x70\x35\x71\x35\x72\x35\x73\x35\x74\x35\x75\x35\x76\x35\x77\x35\x78\x35\x79\x35\x7a\x35\x7b\x35\x7c\x35\x7d\x00\x00", /* d100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x7e\x35\x7f\x35\x80\x35\x81\x35\x82\x35\x83\x35\x84\x35\x85\x35\x86\x35\x87\x35\x88\x35\x89\x35\x8a\x35\x8b\x35\x8c\x35\x8d\x35\x8e\x35\x8f\x35\x90\x35\x91\x35\x92\x35\x93\x35\x94\x35\x95\x35\x96\x35\x97\x35\x98\x35\x99\x35\x9a\x35\x9b\x35\x9c\x35\x9d\x35\x9f\x35\xa0\x35\xa1\x35\xa2\x35\xa3\x35\xa4\x35\xa5\x35\xa6\x35\xa7\x35\xa8\x35\xa9\x35\xaa\x35\xab\x35\xac\x35\xad\x35\xae\x35\xaf\x35\xb0\x35\xb1\x35\xb2\x35\xb3\x35\xb4\x35\xb5\x35\xb6\x35\xb7\x35\xb8\x35\xb9\x35\xba\x35\xbb\x35\xbc\x35\xbd", /* d180 */ "\x35\xbe\x35\xbf\x35\xc0\x35\xc1\x35\xc2\x35\xc3\x35\xc4\x35\xc5\x35\xc6\x35\xc7\x35\xc8\x35\xc9\x35\xca\x35\xcb\x35\xcc\x35\xcd\x35\xce\x35\xcf\x35\xd0\x35\xd1\x35\xd2\x35\xd3\x35\xd4\x35\xd5\x35\xd6\x35\xd7\x35\xd8\x35\xd9\x35\xda\x35\xdb\x35\xdc\x35\xdd\x35\xde\x35\xdf\x35\xe0\x35\xe1\x35\xe2\x35\xe3\x35\xe4\x35\xe5\x35\xe6\x35\xe7\x35\xe8\x35\xe9\x35\xea\x35\xeb\x35\xec\x35\xed\x35\xee\x35\xef\x35\xf0\x35\xf1\x35\xf2\x35\xf3\x35\xf4\x35\xf5\x35\xf6\x35\xf7\x35\xf8\x35\xf9\x35\xfa\x35\xfb\x35\xfc\x35\xfd\x35\xfe\x35\xff\x36\x00\x36\x01\x36\x02\x36\x03\x36\x04\x36\x05\x36\x06\x36\x07\x36\x08\x36\x09\x36\x0a\x36\x0b\x36\x0c\x36\x0d\x36\x0f\x36\x10\x36\x11\x36\x12\x36\x13\x36\x14\x36\x15\x36\x16\x36\x17\x36\x18\x36\x19\x36\x1b\x36\x1c\x36\x1d\x36\x1e\x36\x1f\x36\x20\x36\x21\x36\x22\x36\x23\x36\x24\x36\x25\x36\x26\x36\x27\x36\x28\x36\x29\x36\x2a\x36\x2b\x36\x2c\x36\x2d\x36\x2e\x36\x2f\x36\x30\x36\x31\x36\x32\x36\x33\x36\x34\x36\x35\x36\x36\x36\x37\x36\x38\x36\x39\x36\x3a\x36\x3b\x36\x3c\x36\x3d\x36\x3e\x00\x00", /* d200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x3f\x36\x40\x36\x41\x36\x42\x36\x43\x36\x44\x36\x45\x36\x46\x36\x47\x36\x48\x36\x49\x36\x4a\x36\x4b\x36\x4c\x36\x4d\x36\x4e\x36\x4f\x36\x50\x36\x51\x36\x52\x36\x53\x36\x54\x36\x55\x36\x56\x36\x57\x36\x58\x36\x59\x36\x5a\x36\x5b\x36\x5c\x36\x5d\x36\x5e\x36\x5f\x36\x60\x36\x61\x36\x62\x36\x63\x36\x64\x36\x65\x36\x66\x36\x67\x36\x68\x36\x69\x36\x6a\x36\x6b\x36\x6c\x36\x6d\x36\x6e\x36\x6f\x36\x70\x36\x71\x36\x72\x36\x73\x36\x74\x36\x75\x36\x76\x36\x77\x36\x78\x36\x79\x36\x7a\x36\x7b\x36\x7c\x36\x7d", /* d280 */ "\x36\x7e\x36\x7f\x36\x80\x36\x81\x36\x82\x36\x83\x36\x84\x36\x85\x36\x86\x36\x87\x36\x88\x36\x89\x36\x8a\x36\x8b\x36\x8c\x36\x8d\x36\x8e\x36\x8f\x36\x90\x36\x91\x36\x92\x36\x93\x36\x94\x36\x95\x36\x96\x36\x97\x36\x98\x36\x99\x36\x9a\x36\x9b\x36\x9c\x36\x9d\x36\x9e\x36\x9f\x36\xa0\x36\xa1\x36\xa2\x36\xa3\x36\xa4\x36\xa5\x36\xa6\x36\xa7\x36\xa8\x36\xa9\x36\xaa\x36\xab\x36\xac\x36\xad\x36\xae\x36\xaf\x36\xb0\x36\xb1\x36\xb2\x36\xb3\x36\xb4\x36\xb5\x36\xb6\x36\xb7\x36\xb8\x36\xb9\x36\xba\x36\xbb\x36\xbc\x36\xbd\x36\xbe\x36\xbf\x36\xc0\x36\xc1\x36\xc2\x36\xc3\x36\xc4\x36\xc5\x36\xc6\x36\xc7\x36\xc8\x36\xc9\x36\xca\x36\xcb\x36\xcc\x36\xcd\x36\xce\x36\xcf\x36\xd0\x36\xd1\x36\xd2\x36\xd3\x36\xd4\x36\xd5\x36\xd6\x36\xd7\x36\xd8\x36\xd9\x36\xda\x36\xdb\x36\xdc\x36\xdd\x36\xde\x36\xdf\x36\xe0\x36\xe1\x36\xe2\x36\xe3\x36\xe4\x36\xe5\x36\xe6\x36\xe7\x36\xe8\x36\xe9\x36\xea\x36\xeb\x36\xec\x36\xed\x36\xee\x36\xef\x36\xf0\x36\xf1\x36\xf2\x36\xf3\x36\xf4\x36\xf5\x36\xf6\x36\xf7\x36\xf8\x36\xf9\x36\xfa\x36\xfb\x36\xfc\x00\x00", /* d300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\xfd\x36\xfe\x36\xff\x37\x00\x37\x01\x37\x02\x37\x03\x37\x04\x37\x05\x37\x06\x37\x07\x37\x08\x37\x09\x37\x0a\x37\x0b\x37\x0c\x37\x0d\x37\x0e\x37\x0f\x37\x10\x37\x11\x37\x12\x37\x13\x37\x14\x37\x15\x37\x16\x37\x17\x37\x18\x37\x19\x37\x1a\x37\x1b\x37\x1c\x37\x1d\x37\x1e\x37\x1f\x37\x20\x37\x21\x37\x22\x37\x23\x37\x24\x37\x25\x37\x26\x37\x27\x37\x28\x37\x29\x37\x2a\x37\x2b\x37\x2c\x37\x2d\x37\x2e\x37\x2f\x37\x30\x37\x31\x37\x32\x37\x33\x37\x34\x37\x35\x37\x36\x37\x37\x37\x38\x37\x39\x37\x3a\x37\x3b", /* d380 */ "\x37\x3c\x37\x3d\x37\x3e\x37\x3f\x37\x40\x37\x41\x37\x42\x37\x43\x37\x44\x37\x45\x37\x46\x37\x47\x37\x48\x37\x49\x37\x4a\x37\x4b\x37\x4c\x37\x4d\x37\x4e\x37\x4f\x37\x50\x37\x51\x37\x52\x37\x53\x37\x54\x37\x55\x37\x56\x37\x57\x37\x58\x37\x59\x37\x5a\x37\x5b\x37\x5c\x37\x5d\x37\x5e\x37\x5f\x37\x60\x37\x61\x37\x62\x37\x63\x37\x64\x37\x65\x37\x66\x37\x67\x37\x68\x37\x69\x37\x6a\x37\x6b\x37\x6c\x37\x6d\x37\x6e\x37\x6f\x37\x70\x37\x71\x37\x72\x37\x73\x37\x74\x37\x75\x37\x76\x37\x77\x37\x78\x37\x79\x37\x7a\x37\x7b\x37\x7c\x37\x7d\x37\x7e\x37\x7f\x37\x80\x37\x81\x37\x82\x37\x83\x37\x84\x37\x85\x37\x86\x37\x87\x37\x88\x37\x89\x37\x8a\x37\x8b\x37\x8c\x37\x8d\x37\x8e\x37\x8f\x37\x90\x37\x91\x37\x92\x37\x93\x37\x94\x37\x95\x37\x96\x37\x97\x37\x98\x37\x99\x37\x9a\x37\x9b\x37\x9c\x37\x9d\x37\x9e\x37\x9f\x37\xa0\x37\xa1\x37\xa2\x37\xa3\x37\xa4\x37\xa5\x37\xa6\x37\xa7\x37\xa8\x37\xa9\x37\xaa\x37\xab\x37\xac\x37\xad\x37\xae\x37\xaf\x37\xb0\x37\xb1\x37\xb2\x37\xb3\x37\xb4\x37\xb5\x37\xb6\x37\xb7\x37\xb8\x37\xb9\x37\xba\x00\x00", /* d400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\xbb\x37\xbc\x37\xbd\x37\xbe\x37\xbf\x37\xc0\x37\xc1\x37\xc2\x37\xc3\x37\xc4\x37\xc5\x37\xc6\x37\xc7\x37\xc8\x37\xc9\x37\xca\x37\xcb\x37\xcc\x37\xcd\x37\xce\x37\xcf\x37\xd0\x37\xd1\x37\xd2\x37\xd3\x37\xd4\x37\xd5\x37\xd6\x37\xd7\x37\xd8\x37\xd9\x37\xda\x37\xdb\x37\xdc\x37\xdd\x37\xde\x37\xdf\x37\xe0\x37\xe1\x37\xe2\x37\xe3\x37\xe4\x37\xe5\x37\xe6\x37\xe7\x37\xe8\x37\xe9\x37\xea\x37\xeb\x37\xec\x37\xed\x37\xee\x37\xef\x37\xf0\x37\xf1\x37\xf2\x37\xf3\x37\xf4\x37\xf5\x37\xf6\x37\xf7\x37\xf8\x37\xf9", /* d480 */ "\x37\xfa\x37\xfb\x37\xfc\x37\xfd\x37\xfe\x37\xff\x38\x00\x38\x01\x38\x02\x38\x03\x38\x04\x38\x05\x38\x06\x38\x07\x38\x08\x38\x09\x38\x0a\x38\x0b\x38\x0c\x38\x0d\x38\x0e\x38\x0f\x38\x10\x38\x11\x38\x12\x38\x13\x38\x14\x38\x15\x38\x16\x38\x17\x38\x18\x38\x19\x38\x1a\x38\x1b\x38\x1c\x38\x1d\x38\x1e\x38\x1f\x38\x20\x38\x21\x38\x22\x38\x23\x38\x24\x38\x25\x38\x26\x38\x27\x38\x28\x38\x29\x38\x2a\x38\x2b\x38\x2c\x38\x2d\x38\x2e\x38\x2f\x38\x30\x38\x31\x38\x32\x38\x33\x38\x34\x38\x35\x38\x36\x38\x37\x38\x38\x38\x39\x38\x3a\x38\x3b\x38\x3c\x38\x3d\x38\x3e\x38\x3f\x38\x40\x38\x41\x38\x42\x38\x43\x38\x44\x38\x45\x38\x46\x38\x47\x38\x48\x38\x49\x38\x4a\x38\x4b\x38\x4c\x38\x4d\x38\x4e\x38\x4f\x38\x50\x38\x51\x38\x52\x38\x53\x38\x54\x38\x55\x38\x56\x38\x57\x38\x58\x38\x59\x38\x5a\x38\x5b\x38\x5c\x38\x5d\x38\x5e\x38\x5f\x38\x60\x38\x61\x38\x62\x38\x63\x38\x64\x38\x65\x38\x66\x38\x67\x38\x68\x38\x69\x38\x6a\x38\x6b\x38\x6c\x38\x6d\x38\x6e\x38\x6f\x38\x70\x38\x71\x38\x72\x38\x73\x38\x74\x38\x75\x38\x76\x38\x77\x38\x78\x00\x00", /* d500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x79\x38\x7a\x38\x7b\x38\x7c\x38\x7d\x38\x7e\x38\x7f\x38\x80\x38\x81\x38\x82\x38\x83\x38\x84\x38\x85\x38\x86\x38\x87\x38\x88\x38\x89\x38\x8a\x38\x8b\x38\x8c\x38\x8d\x38\x8e\x38\x8f\x38\x90\x38\x91\x38\x92\x38\x93\x38\x94\x38\x95\x38\x96\x38\x97\x38\x98\x38\x99\x38\x9a\x38\x9b\x38\x9c\x38\x9d\x38\x9e\x38\x9f\x38\xa0\x38\xa1\x38\xa2\x38\xa3\x38\xa4\x38\xa5\x38\xa6\x38\xa7\x38\xa8\x38\xa9\x38\xaa\x38\xab\x38\xac\x38\xad\x38\xae\x38\xaf\x38\xb0\x38\xb1\x38\xb2\x38\xb3\x38\xb4\x38\xb5\x38\xb6\x38\xb7", /* d580 */ "\x38\xb8\x38\xb9\x38\xba\x38\xbb\x38\xbc\x38\xbd\x38\xbe\x38\xbf\x38\xc0\x38\xc1\x38\xc2\x38\xc3\x38\xc4\x38\xc5\x38\xc6\x38\xc7\x38\xc8\x38\xc9\x38\xca\x38\xcb\x38\xcc\x38\xcd\x38\xce\x38\xcf\x38\xd0\x38\xd1\x38\xd2\x38\xd3\x38\xd4\x38\xd5\x38\xd6\x38\xd7\x38\xd8\x38\xd9\x38\xda\x38\xdb\x38\xdc\x38\xdd\x38\xde\x38\xdf\x38\xe0\x38\xe1\x38\xe2\x38\xe3\x38\xe4\x38\xe5\x38\xe6\x38\xe7\x38\xe8\x38\xe9\x38\xea\x38\xeb\x38\xec\x38\xed\x38\xee\x38\xef\x38\xf0\x38\xf1\x38\xf2\x38\xf3\x38\xf4\x38\xf5\x38\xf6\x38\xf7\x38\xf8\x38\xf9\x38\xfa\x38\xfb\x38\xfc\x38\xfd\x38\xfe\x38\xff\x39\x00\x39\x01\x39\x02\x39\x03\x39\x04\x39\x05\x39\x06\x39\x07\x39\x08\x39\x09\x39\x0a\x39\x0b\x39\x0c\x39\x0d\x39\x0e\x39\x0f\x39\x10\x39\x11\x39\x12\x39\x13\x39\x14\x39\x15\x39\x16\x39\x17\x39\x19\x39\x1a\x39\x1b\x39\x1c\x39\x1d\x39\x1e\x39\x1f\x39\x20\x39\x21\x39\x22\x39\x23\x39\x24\x39\x25\x39\x26\x39\x27\x39\x28\x39\x29\x39\x2a\x39\x2b\x39\x2c\x39\x2d\x39\x2e\x39\x2f\x39\x30\x39\x31\x39\x32\x39\x33\x39\x34\x39\x35\x39\x36\x39\x37\x00\x00", /* d600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x38\x39\x39\x39\x3a\x39\x3b\x39\x3c\x39\x3d\x39\x3e\x39\x3f\x39\x40\x39\x41\x39\x42\x39\x43\x39\x44\x39\x45\x39\x46\x39\x47\x39\x48\x39\x49\x39\x4a\x39\x4b\x39\x4c\x39\x4d\x39\x4e\x39\x4f\x39\x50\x39\x51\x39\x52\x39\x53\x39\x54\x39\x55\x39\x56\x39\x57\x39\x58\x39\x59\x39\x5a\x39\x5b\x39\x5c\x39\x5d\x39\x5e\x39\x5f\x39\x60\x39\x61\x39\x62\x39\x63\x39\x64\x39\x65\x39\x66\x39\x67\x39\x68\x39\x69\x39\x6a\x39\x6b\x39\x6c\x39\x6d\x39\x6f\x39\x70\x39\x71\x39\x72\x39\x73\x39\x74\x39\x75\x39\x76\x39\x77", /* d680 */ "\x39\x78\x39\x79\x39\x7a\x39\x7b\x39\x7c\x39\x7d\x39\x7e\x39\x7f\x39\x80\x39\x81\x39\x82\x39\x83\x39\x84\x39\x85\x39\x86\x39\x87\x39\x88\x39\x89\x39\x8a\x39\x8b\x39\x8c\x39\x8d\x39\x8e\x39\x8f\x39\x90\x39\x91\x39\x92\x39\x93\x39\x94\x39\x95\x39\x96\x39\x97\x39\x98\x39\x99\x39\x9a\x39\x9b\x39\x9c\x39\x9d\x39\x9e\x39\x9f\x39\xa0\x39\xa1\x39\xa2\x39\xa3\x39\xa4\x39\xa5\x39\xa6\x39\xa7\x39\xa8\x39\xa9\x39\xaa\x39\xab\x39\xac\x39\xad\x39\xae\x39\xaf\x39\xb0\x39\xb1\x39\xb2\x39\xb3\x39\xb4\x39\xb5\x39\xb6\x39\xb7\x39\xb8\x39\xb9\x39\xba\x39\xbb\x39\xbc\x39\xbd\x39\xbe\x39\xbf\x39\xc0\x39\xc1\x39\xc2\x39\xc3\x39\xc4\x39\xc5\x39\xc6\x39\xc7\x39\xc8\x39\xc9\x39\xca\x39\xcb\x39\xcc\x39\xcd\x39\xce\x39\xd1\x39\xd2\x39\xd3\x39\xd4\x39\xd5\x39\xd6\x39\xd7\x39\xd8\x39\xd9\x39\xda\x39\xdb\x39\xdc\x39\xdd\x39\xde\x39\xe0\x39\xe1\x39\xe2\x39\xe3\x39\xe4\x39\xe5\x39\xe6\x39\xe7\x39\xe8\x39\xe9\x39\xea\x39\xeb\x39\xec\x39\xed\x39\xee\x39\xef\x39\xf0\x39\xf1\x39\xf2\x39\xf3\x39\xf4\x39\xf5\x39\xf6\x39\xf7\x39\xf8\x39\xf9\x00\x00", /* d700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\xfa\x39\xfb\x39\xfc\x39\xfd\x39\xfe\x39\xff\x3a\x00\x3a\x01\x3a\x02\x3a\x03\x3a\x04\x3a\x05\x3a\x06\x3a\x07\x3a\x08\x3a\x09\x3a\x0a\x3a\x0b\x3a\x0c\x3a\x0d\x3a\x0e\x3a\x0f\x3a\x10\x3a\x11\x3a\x12\x3a\x13\x3a\x14\x3a\x15\x3a\x16\x3a\x17\x3a\x18\x3a\x19\x3a\x1a\x3a\x1b\x3a\x1c\x3a\x1d\x3a\x1e\x3a\x1f\x3a\x20\x3a\x21\x3a\x22\x3a\x23\x3a\x24\x3a\x25\x3a\x26\x3a\x27\x3a\x28\x3a\x29\x3a\x2a\x3a\x2b\x3a\x2c\x3a\x2d\x3a\x2e\x3a\x2f\x3a\x30\x3a\x31\x3a\x32\x3a\x33\x3a\x34\x3a\x35\x3a\x36\x3a\x37\x3a\x38", /* d780 */ "\x3a\x39\x3a\x3a\x3a\x3b\x3a\x3c\x3a\x3d\x3a\x3e\x3a\x3f\x3a\x40\x3a\x41\x3a\x42\x3a\x43\x3a\x44\x3a\x45\x3a\x46\x3a\x47\x3a\x48\x3a\x49\x3a\x4a\x3a\x4b\x3a\x4c\x3a\x4d\x3a\x4e\x3a\x4f\x3a\x50\x3a\x51\x3a\x52\x3a\x53\x3a\x54\x3a\x55\x3a\x56\x3a\x57\x3a\x58\x3a\x59\x3a\x5a\x3a\x5b\x3a\x5c\x3a\x5d\x3a\x5e\x3a\x5f\x3a\x60\x3a\x61\x3a\x62\x3a\x63\x3a\x64\x3a\x65\x3a\x66\x3a\x67\x3a\x68\x3a\x69\x3a\x6a\x3a\x6b\x3a\x6c\x3a\x6d\x3a\x6e\x3a\x6f\x3a\x70\x3a\x71\x3a\x72\x3a\x74\x3a\x75\x3a\x76\x3a\x77\x3a\x78\x3a\x79\x3a\x7a\x3a\x7b\x3a\x7c\x3a\x7d\x3a\x7e\x3a\x7f\x3a\x80\x3a\x81\x3a\x82\x3a\x83\x3a\x84\x3a\x85\x3a\x86\x3a\x87\x3a\x88\x3a\x89\x3a\x8a\x3a\x8b\x3a\x8c\x3a\x8d\x3a\x8e\x3a\x8f\x3a\x90\x3a\x91\x3a\x92\x3a\x93\x3a\x94\x3a\x95\x3a\x96\x3a\x97\x3a\x98\x3a\x99\x3a\x9a\x3a\x9b\x3a\x9c\x3a\x9d\x3a\x9e\x3a\x9f\x3a\xa0\x3a\xa1\x3a\xa2\x3a\xa3\x3a\xa4\x3a\xa5\x3a\xa6\x3a\xa7\x3a\xa8\x3a\xa9\x3a\xaa\x3a\xab\x3a\xac\x3a\xad\x3a\xae\x3a\xaf\x3a\xb0\x3a\xb1\x3a\xb2\x3a\xb3\x3a\xb4\x3a\xb5\x3a\xb6\x3a\xb7\x3a\xb8\x00\x00", /* d800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\xb9\x3a\xba\x3a\xbb\x3a\xbc\x3a\xbd\x3a\xbe\x3a\xbf\x3a\xc0\x3a\xc1\x3a\xc2\x3a\xc3\x3a\xc4\x3a\xc5\x3a\xc6\x3a\xc7\x3a\xc8\x3a\xc9\x3a\xca\x3a\xcb\x3a\xcc\x3a\xcd\x3a\xce\x3a\xcf\x3a\xd0\x3a\xd1\x3a\xd2\x3a\xd3\x3a\xd4\x3a\xd5\x3a\xd6\x3a\xd7\x3a\xd8\x3a\xd9\x3a\xda\x3a\xdb\x3a\xdc\x3a\xdd\x3a\xde\x3a\xdf\x3a\xe0\x3a\xe1\x3a\xe2\x3a\xe3\x3a\xe4\x3a\xe5\x3a\xe6\x3a\xe7\x3a\xe8\x3a\xe9\x3a\xea\x3a\xeb\x3a\xec\x3a\xed\x3a\xee\x3a\xef\x3a\xf0\x3a\xf1\x3a\xf2\x3a\xf3\x3a\xf4\x3a\xf5\x3a\xf6\x3a\xf7", /* d880 */ "\x3a\xf8\x3a\xf9\x3a\xfa\x3a\xfb\x3a\xfc\x3a\xfd\x3a\xfe\x3a\xff\x3b\x00\x3b\x01\x3b\x02\x3b\x03\x3b\x04\x3b\x05\x3b\x06\x3b\x07\x3b\x08\x3b\x09\x3b\x0a\x3b\x0b\x3b\x0c\x3b\x0d\x3b\x0e\x3b\x0f\x3b\x10\x3b\x11\x3b\x12\x3b\x13\x3b\x14\x3b\x15\x3b\x16\x3b\x17\x3b\x18\x3b\x19\x3b\x1a\x3b\x1b\x3b\x1c\x3b\x1d\x3b\x1e\x3b\x1f\x3b\x20\x3b\x21\x3b\x22\x3b\x23\x3b\x24\x3b\x25\x3b\x26\x3b\x27\x3b\x28\x3b\x29\x3b\x2a\x3b\x2b\x3b\x2c\x3b\x2d\x3b\x2e\x3b\x2f\x3b\x30\x3b\x31\x3b\x32\x3b\x33\x3b\x34\x3b\x35\x3b\x36\x3b\x37\x3b\x38\x3b\x39\x3b\x3a\x3b\x3b\x3b\x3c\x3b\x3d\x3b\x3e\x3b\x3f\x3b\x40\x3b\x41\x3b\x42\x3b\x43\x3b\x44\x3b\x45\x3b\x46\x3b\x47\x3b\x48\x3b\x49\x3b\x4a\x3b\x4b\x3b\x4c\x3b\x4d\x3b\x4f\x3b\x50\x3b\x51\x3b\x52\x3b\x53\x3b\x54\x3b\x55\x3b\x56\x3b\x57\x3b\x58\x3b\x59\x3b\x5a\x3b\x5b\x3b\x5c\x3b\x5d\x3b\x5e\x3b\x5f\x3b\x60\x3b\x61\x3b\x62\x3b\x63\x3b\x64\x3b\x65\x3b\x66\x3b\x67\x3b\x68\x3b\x69\x3b\x6a\x3b\x6b\x3b\x6c\x3b\x6d\x3b\x6e\x3b\x6f\x3b\x70\x3b\x71\x3b\x72\x3b\x73\x3b\x74\x3b\x75\x3b\x76\x3b\x77\x00\x00", /* d900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x78\x3b\x79\x3b\x7a\x3b\x7b\x3b\x7c\x3b\x7d\x3b\x7e\x3b\x7f\x3b\x80\x3b\x81\x3b\x82\x3b\x83\x3b\x84\x3b\x85\x3b\x86\x3b\x87\x3b\x88\x3b\x89\x3b\x8a\x3b\x8b\x3b\x8c\x3b\x8d\x3b\x8e\x3b\x8f\x3b\x90\x3b\x91\x3b\x92\x3b\x93\x3b\x94\x3b\x95\x3b\x96\x3b\x97\x3b\x98\x3b\x99\x3b\x9a\x3b\x9b\x3b\x9c\x3b\x9d\x3b\x9e\x3b\x9f\x3b\xa0\x3b\xa1\x3b\xa2\x3b\xa3\x3b\xa4\x3b\xa5\x3b\xa6\x3b\xa7\x3b\xa8\x3b\xa9\x3b\xaa\x3b\xab\x3b\xac\x3b\xad\x3b\xae\x3b\xaf\x3b\xb0\x3b\xb1\x3b\xb2\x3b\xb3\x3b\xb4\x3b\xb5\x3b\xb6", /* d980 */ "\x3b\xb7\x3b\xb8\x3b\xb9\x3b\xba\x3b\xbb\x3b\xbc\x3b\xbd\x3b\xbe\x3b\xbf\x3b\xc0\x3b\xc1\x3b\xc2\x3b\xc3\x3b\xc4\x3b\xc5\x3b\xc6\x3b\xc7\x3b\xc8\x3b\xc9\x3b\xca\x3b\xcb\x3b\xcc\x3b\xcd\x3b\xce\x3b\xcf\x3b\xd0\x3b\xd1\x3b\xd2\x3b\xd3\x3b\xd4\x3b\xd5\x3b\xd6\x3b\xd7\x3b\xd8\x3b\xd9\x3b\xda\x3b\xdb\x3b\xdc\x3b\xdd\x3b\xde\x3b\xdf\x3b\xe0\x3b\xe1\x3b\xe2\x3b\xe3\x3b\xe4\x3b\xe5\x3b\xe6\x3b\xe7\x3b\xe8\x3b\xe9\x3b\xea\x3b\xeb\x3b\xec\x3b\xed\x3b\xee\x3b\xef\x3b\xf0\x3b\xf1\x3b\xf2\x3b\xf3\x3b\xf4\x3b\xf5\x3b\xf6\x3b\xf7\x3b\xf8\x3b\xf9\x3b\xfa\x3b\xfb\x3b\xfc\x3b\xfd\x3b\xfe\x3b\xff\x3c\x00\x3c\x01\x3c\x02\x3c\x03\x3c\x04\x3c\x05\x3c\x06\x3c\x07\x3c\x08\x3c\x09\x3c\x0a\x3c\x0b\x3c\x0c\x3c\x0d\x3c\x0e\x3c\x0f\x3c\x10\x3c\x11\x3c\x12\x3c\x13\x3c\x14\x3c\x15\x3c\x16\x3c\x17\x3c\x18\x3c\x19\x3c\x1a\x3c\x1b\x3c\x1c\x3c\x1d\x3c\x1e\x3c\x1f\x3c\x20\x3c\x21\x3c\x22\x3c\x23\x3c\x24\x3c\x25\x3c\x26\x3c\x27\x3c\x28\x3c\x29\x3c\x2a\x3c\x2b\x3c\x2c\x3c\x2d\x3c\x2e\x3c\x2f\x3c\x30\x3c\x31\x3c\x32\x3c\x33\x3c\x34\x3c\x35\x00\x00", /* da00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x36\x3c\x37\x3c\x38\x3c\x39\x3c\x3a\x3c\x3b\x3c\x3c\x3c\x3d\x3c\x3e\x3c\x3f\x3c\x40\x3c\x41\x3c\x42\x3c\x43\x3c\x44\x3c\x45\x3c\x46\x3c\x47\x3c\x48\x3c\x49\x3c\x4a\x3c\x4b\x3c\x4c\x3c\x4d\x3c\x4e\x3c\x4f\x3c\x50\x3c\x51\x3c\x52\x3c\x53\x3c\x54\x3c\x55\x3c\x56\x3c\x57\x3c\x58\x3c\x59\x3c\x5a\x3c\x5b\x3c\x5c\x3c\x5d\x3c\x5e\x3c\x5f\x3c\x60\x3c\x61\x3c\x62\x3c\x63\x3c\x64\x3c\x65\x3c\x66\x3c\x67\x3c\x68\x3c\x69\x3c\x6a\x3c\x6b\x3c\x6c\x3c\x6d\x3c\x6f\x3c\x70\x3c\x71\x3c\x72\x3c\x73\x3c\x74\x3c\x75", /* da80 */ "\x3c\x76\x3c\x77\x3c\x78\x3c\x79\x3c\x7a\x3c\x7b\x3c\x7c\x3c\x7d\x3c\x7e\x3c\x7f\x3c\x80\x3c\x81\x3c\x82\x3c\x83\x3c\x84\x3c\x85\x3c\x86\x3c\x87\x3c\x88\x3c\x89\x3c\x8a\x3c\x8b\x3c\x8c\x3c\x8d\x3c\x8e\x3c\x8f\x3c\x90\x3c\x91\x3c\x92\x3c\x93\x3c\x94\x3c\x95\x3c\x96\x3c\x97\x3c\x98\x3c\x99\x3c\x9a\x3c\x9b\x3c\x9c\x3c\x9d\x3c\x9e\x3c\x9f\x3c\xa0\x3c\xa1\x3c\xa2\x3c\xa3\x3c\xa4\x3c\xa5\x3c\xa6\x3c\xa7\x3c\xa8\x3c\xa9\x3c\xaa\x3c\xab\x3c\xac\x3c\xad\x3c\xae\x3c\xaf\x3c\xb0\x3c\xb1\x3c\xb2\x3c\xb3\x3c\xb4\x3c\xb5\x3c\xb6\x3c\xb7\x3c\xb8\x3c\xb9\x3c\xba\x3c\xbb\x3c\xbc\x3c\xbd\x3c\xbe\x3c\xbf\x3c\xc0\x3c\xc1\x3c\xc2\x3c\xc3\x3c\xc4\x3c\xc5\x3c\xc6\x3c\xc7\x3c\xc8\x3c\xc9\x3c\xca\x3c\xcb\x3c\xcc\x3c\xcd\x3c\xce\x3c\xcf\x3c\xd0\x3c\xd1\x3c\xd2\x3c\xd3\x3c\xd4\x3c\xd5\x3c\xd6\x3c\xd7\x3c\xd8\x3c\xd9\x3c\xda\x3c\xdb\x3c\xdc\x3c\xdd\x3c\xde\x3c\xdf\x3c\xe1\x3c\xe2\x3c\xe3\x3c\xe4\x3c\xe5\x3c\xe6\x3c\xe7\x3c\xe8\x3c\xe9\x3c\xea\x3c\xeb\x3c\xec\x3c\xed\x3c\xee\x3c\xef\x3c\xf0\x3c\xf1\x3c\xf2\x3c\xf3\x3c\xf4\x3c\xf5\x00\x00", /* db00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\xf6\x3c\xf7\x3c\xf8\x3c\xf9\x3c\xfa\x3c\xfb\x3c\xfc\x3c\xfd\x3c\xfe\x3c\xff\x3d\x00\x3d\x01\x3d\x02\x3d\x03\x3d\x04\x3d\x05\x3d\x06\x3d\x07\x3d\x08\x3d\x09\x3d\x0a\x3d\x0b\x3d\x0c\x3d\x0d\x3d\x0e\x3d\x0f\x3d\x10\x3d\x11\x3d\x12\x3d\x13\x3d\x14\x3d\x15\x3d\x16\x3d\x17\x3d\x18\x3d\x19\x3d\x1a\x3d\x1b\x3d\x1c\x3d\x1d\x3d\x1e\x3d\x1f\x3d\x20\x3d\x21\x3d\x22\x3d\x23\x3d\x24\x3d\x25\x3d\x26\x3d\x27\x3d\x28\x3d\x29\x3d\x2a\x3d\x2b\x3d\x2c\x3d\x2d\x3d\x2e\x3d\x2f\x3d\x30\x3d\x31\x3d\x32\x3d\x33\x3d\x34", /* db80 */ "\x3d\x35\x3d\x36\x3d\x37\x3d\x38\x3d\x39\x3d\x3a\x3d\x3b\x3d\x3c\x3d\x3d\x3d\x3e\x3d\x3f\x3d\x40\x3d\x41\x3d\x42\x3d\x43\x3d\x44\x3d\x45\x3d\x46\x3d\x47\x3d\x48\x3d\x49\x3d\x4a\x3d\x4b\x3d\x4c\x3d\x4d\x3d\x4e\x3d\x4f\x3d\x50\x3d\x51\x3d\x52\x3d\x53\x3d\x54\x3d\x55\x3d\x56\x3d\x57\x3d\x58\x3d\x59\x3d\x5a\x3d\x5b\x3d\x5c\x3d\x5d\x3d\x5e\x3d\x5f\x3d\x60\x3d\x61\x3d\x62\x3d\x63\x3d\x64\x3d\x65\x3d\x66\x3d\x67\x3d\x68\x3d\x69\x3d\x6a\x3d\x6b\x3d\x6c\x3d\x6d\x3d\x6e\x3d\x6f\x3d\x70\x3d\x71\x3d\x72\x3d\x73\x3d\x74\x3d\x75\x3d\x76\x3d\x77\x3d\x78\x3d\x79\x3d\x7a\x3d\x7b\x3d\x7c\x3d\x7d\x3d\x7e\x3d\x7f\x3d\x80\x3d\x81\x3d\x82\x3d\x83\x3d\x84\x3d\x85\x3d\x86\x3d\x87\x3d\x88\x3d\x89\x3d\x8a\x3d\x8b\x3d\x8c\x3d\x8d\x3d\x8e\x3d\x8f\x3d\x90\x3d\x91\x3d\x92\x3d\x93\x3d\x94\x3d\x95\x3d\x96\x3d\x97\x3d\x98\x3d\x99\x3d\x9a\x3d\x9b\x3d\x9c\x3d\x9d\x3d\x9e\x3d\x9f\x3d\xa0\x3d\xa1\x3d\xa2\x3d\xa3\x3d\xa4\x3d\xa5\x3d\xa6\x3d\xa7\x3d\xa8\x3d\xa9\x3d\xaa\x3d\xab\x3d\xac\x3d\xad\x3d\xae\x3d\xaf\x3d\xb0\x3d\xb1\x3d\xb2\x3d\xb3\x00\x00", /* dc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\xb4\x3d\xb5\x3d\xb6\x3d\xb7\x3d\xb8\x3d\xb9\x3d\xba\x3d\xbb\x3d\xbc\x3d\xbd\x3d\xbe\x3d\xbf\x3d\xc0\x3d\xc1\x3d\xc2\x3d\xc3\x3d\xc4\x3d\xc5\x3d\xc6\x3d\xc7\x3d\xc8\x3d\xc9\x3d\xca\x3d\xcb\x3d\xcc\x3d\xcd\x3d\xce\x3d\xcf\x3d\xd0\x3d\xd1\x3d\xd2\x3d\xd3\x3d\xd4\x3d\xd5\x3d\xd6\x3d\xd7\x3d\xd8\x3d\xd9\x3d\xda\x3d\xdb\x3d\xdc\x3d\xdd\x3d\xde\x3d\xdf\x3d\xe0\x3d\xe1\x3d\xe2\x3d\xe3\x3d\xe4\x3d\xe5\x3d\xe6\x3d\xe7\x3d\xe8\x3d\xe9\x3d\xea\x3d\xeb\x3d\xec\x3d\xed\x3d\xee\x3d\xef\x3d\xf0\x3d\xf1\x3d\xf2", /* dc80 */ "\x3d\xf3\x3d\xf4\x3d\xf5\x3d\xf6\x3d\xf7\x3d\xf8\x3d\xf9\x3d\xfa\x3d\xfb\x3d\xfc\x3d\xfd\x3d\xfe\x3d\xff\x3e\x00\x3e\x01\x3e\x02\x3e\x03\x3e\x04\x3e\x05\x3e\x06\x3e\x07\x3e\x08\x3e\x09\x3e\x0a\x3e\x0b\x3e\x0c\x3e\x0d\x3e\x0e\x3e\x0f\x3e\x10\x3e\x11\x3e\x12\x3e\x13\x3e\x14\x3e\x15\x3e\x16\x3e\x17\x3e\x18\x3e\x19\x3e\x1a\x3e\x1b\x3e\x1c\x3e\x1d\x3e\x1e\x3e\x1f\x3e\x20\x3e\x21\x3e\x22\x3e\x23\x3e\x24\x3e\x25\x3e\x26\x3e\x27\x3e\x28\x3e\x29\x3e\x2a\x3e\x2b\x3e\x2c\x3e\x2d\x3e\x2e\x3e\x2f\x3e\x30\x3e\x31\x3e\x32\x3e\x33\x3e\x34\x3e\x35\x3e\x36\x3e\x37\x3e\x38\x3e\x39\x3e\x3a\x3e\x3b\x3e\x3c\x3e\x3d\x3e\x3e\x3e\x3f\x3e\x40\x3e\x41\x3e\x42\x3e\x43\x3e\x44\x3e\x45\x3e\x46\x3e\x47\x3e\x48\x3e\x49\x3e\x4a\x3e\x4b\x3e\x4c\x3e\x4d\x3e\x4e\x3e\x4f\x3e\x50\x3e\x51\x3e\x52\x3e\x53\x3e\x54\x3e\x55\x3e\x56\x3e\x57\x3e\x58\x3e\x59\x3e\x5a\x3e\x5b\x3e\x5c\x3e\x5d\x3e\x5e\x3e\x5f\x3e\x60\x3e\x61\x3e\x62\x3e\x63\x3e\x64\x3e\x65\x3e\x66\x3e\x67\x3e\x68\x3e\x69\x3e\x6a\x3e\x6b\x3e\x6c\x3e\x6d\x3e\x6e\x3e\x6f\x3e\x70\x3e\x71\x00\x00", /* dd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x72\x3e\x73\x3e\x74\x3e\x75\x3e\x76\x3e\x77\x3e\x78\x3e\x79\x3e\x7a\x3e\x7b\x3e\x7c\x3e\x7d\x3e\x7e\x3e\x7f\x3e\x80\x3e\x81\x3e\x82\x3e\x83\x3e\x84\x3e\x85\x3e\x86\x3e\x87\x3e\x88\x3e\x89\x3e\x8a\x3e\x8b\x3e\x8c\x3e\x8d\x3e\x8e\x3e\x8f\x3e\x90\x3e\x91\x3e\x92\x3e\x93\x3e\x94\x3e\x95\x3e\x96\x3e\x97\x3e\x98\x3e\x99\x3e\x9a\x3e\x9b\x3e\x9c\x3e\x9d\x3e\x9e\x3e\x9f\x3e\xa0\x3e\xa1\x3e\xa2\x3e\xa3\x3e\xa4\x3e\xa5\x3e\xa6\x3e\xa7\x3e\xa8\x3e\xa9\x3e\xaa\x3e\xab\x3e\xac\x3e\xad\x3e\xae\x3e\xaf\x3e\xb0", /* dd80 */ "\x3e\xb1\x3e\xb2\x3e\xb3\x3e\xb4\x3e\xb5\x3e\xb6\x3e\xb7\x3e\xb8\x3e\xb9\x3e\xba\x3e\xbb\x3e\xbc\x3e\xbd\x3e\xbe\x3e\xbf\x3e\xc0\x3e\xc1\x3e\xc2\x3e\xc3\x3e\xc4\x3e\xc5\x3e\xc6\x3e\xc7\x3e\xc8\x3e\xc9\x3e\xca\x3e\xcb\x3e\xcc\x3e\xcd\x3e\xce\x3e\xcf\x3e\xd0\x3e\xd1\x3e\xd2\x3e\xd3\x3e\xd4\x3e\xd5\x3e\xd6\x3e\xd7\x3e\xd8\x3e\xd9\x3e\xda\x3e\xdb\x3e\xdc\x3e\xdd\x3e\xde\x3e\xdf\x3e\xe0\x3e\xe1\x3e\xe2\x3e\xe3\x3e\xe4\x3e\xe5\x3e\xe6\x3e\xe7\x3e\xe8\x3e\xe9\x3e\xea\x3e\xeb\x3e\xec\x3e\xed\x3e\xee\x3e\xef\x3e\xf0\x3e\xf1\x3e\xf2\x3e\xf3\x3e\xf4\x3e\xf5\x3e\xf6\x3e\xf7\x3e\xf8\x3e\xf9\x3e\xfa\x3e\xfb\x3e\xfc\x3e\xfd\x3e\xfe\x3e\xff\x3f\x00\x3f\x01\x3f\x02\x3f\x03\x3f\x04\x3f\x05\x3f\x06\x3f\x07\x3f\x08\x3f\x09\x3f\x0a\x3f\x0b\x3f\x0c\x3f\x0d\x3f\x0e\x3f\x0f\x3f\x10\x3f\x11\x3f\x12\x3f\x13\x3f\x14\x3f\x15\x3f\x16\x3f\x17\x3f\x18\x3f\x19\x3f\x1a\x3f\x1b\x3f\x1c\x3f\x1d\x3f\x1e\x3f\x1f\x3f\x20\x3f\x21\x3f\x22\x3f\x23\x3f\x24\x3f\x25\x3f\x26\x3f\x27\x3f\x28\x3f\x29\x3f\x2a\x3f\x2b\x3f\x2c\x3f\x2d\x3f\x2e\x3f\x2f\x00\x00", /* de00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x30\x3f\x31\x3f\x32\x3f\x33\x3f\x34\x3f\x35\x3f\x36\x3f\x37\x3f\x38\x3f\x39\x3f\x3a\x3f\x3b\x3f\x3c\x3f\x3d\x3f\x3e\x3f\x3f\x3f\x40\x3f\x41\x3f\x42\x3f\x43\x3f\x44\x3f\x45\x3f\x46\x3f\x47\x3f\x48\x3f\x49\x3f\x4a\x3f\x4b\x3f\x4c\x3f\x4d\x3f\x4e\x3f\x4f\x3f\x50\x3f\x51\x3f\x52\x3f\x53\x3f\x54\x3f\x55\x3f\x56\x3f\x57\x3f\x58\x3f\x59\x3f\x5a\x3f\x5b\x3f\x5c\x3f\x5d\x3f\x5e\x3f\x5f\x3f\x60\x3f\x61\x3f\x62\x3f\x63\x3f\x64\x3f\x65\x3f\x66\x3f\x67\x3f\x68\x3f\x69\x3f\x6a\x3f\x6b\x3f\x6c\x3f\x6d\x3f\x6e", /* de80 */ "\x3f\x6f\x3f\x70\x3f\x71\x3f\x72\x3f\x73\x3f\x74\x3f\x75\x3f\x76\x3f\x77\x3f\x78\x3f\x79\x3f\x7a\x3f\x7b\x3f\x7c\x3f\x7d\x3f\x7e\x3f\x7f\x3f\x80\x3f\x81\x3f\x82\x3f\x83\x3f\x84\x3f\x85\x3f\x86\x3f\x87\x3f\x88\x3f\x89\x3f\x8a\x3f\x8b\x3f\x8c\x3f\x8d\x3f\x8e\x3f\x8f\x3f\x90\x3f\x91\x3f\x92\x3f\x93\x3f\x94\x3f\x95\x3f\x96\x3f\x97\x3f\x98\x3f\x99\x3f\x9a\x3f\x9b\x3f\x9c\x3f\x9d\x3f\x9e\x3f\x9f\x3f\xa0\x3f\xa1\x3f\xa2\x3f\xa3\x3f\xa4\x3f\xa5\x3f\xa6\x3f\xa7\x3f\xa8\x3f\xa9\x3f\xaa\x3f\xab\x3f\xac\x3f\xad\x3f\xae\x3f\xaf\x3f\xb0\x3f\xb1\x3f\xb2\x3f\xb3\x3f\xb4\x3f\xb5\x3f\xb6\x3f\xb7\x3f\xb8\x3f\xb9\x3f\xba\x3f\xbb\x3f\xbc\x3f\xbd\x3f\xbe\x3f\xbf\x3f\xc0\x3f\xc1\x3f\xc2\x3f\xc3\x3f\xc4\x3f\xc5\x3f\xc6\x3f\xc7\x3f\xc8\x3f\xc9\x3f\xca\x3f\xcb\x3f\xcc\x3f\xcd\x3f\xce\x3f\xcf\x3f\xd0\x3f\xd1\x3f\xd2\x3f\xd3\x3f\xd4\x3f\xd5\x3f\xd6\x3f\xd7\x3f\xd8\x3f\xd9\x3f\xda\x3f\xdb\x3f\xdc\x3f\xdd\x3f\xde\x3f\xdf\x3f\xe0\x3f\xe1\x3f\xe2\x3f\xe3\x3f\xe4\x3f\xe5\x3f\xe6\x3f\xe7\x3f\xe8\x3f\xe9\x3f\xea\x3f\xeb\x3f\xec\x3f\xed\x00\x00", /* df00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xee\x3f\xef\x3f\xf0\x3f\xf1\x3f\xf2\x3f\xf3\x3f\xf4\x3f\xf5\x3f\xf6\x3f\xf7\x3f\xf8\x3f\xf9\x3f\xfa\x3f\xfb\x3f\xfc\x3f\xfd\x3f\xfe\x3f\xff\x40\x00\x40\x01\x40\x02\x40\x03\x40\x04\x40\x05\x40\x06\x40\x07\x40\x08\x40\x09\x40\x0a\x40\x0b\x40\x0c\x40\x0d\x40\x0e\x40\x0f\x40\x10\x40\x11\x40\x12\x40\x13\x40\x14\x40\x15\x40\x16\x40\x17\x40\x18\x40\x19\x40\x1a\x40\x1b\x40\x1c\x40\x1d\x40\x1e\x40\x1f\x40\x20\x40\x21\x40\x22\x40\x23\x40\x24\x40\x25\x40\x26\x40\x27\x40\x28\x40\x29\x40\x2a\x40\x2b\x40\x2c", /* df80 */ "\x40\x2d\x40\x2e\x40\x2f\x40\x30\x40\x31\x40\x32\x40\x33\x40\x34\x40\x35\x40\x36\x40\x37\x40\x38\x40\x39\x40\x3a\x40\x3b\x40\x3c\x40\x3d\x40\x3e\x40\x3f\x40\x40\x40\x41\x40\x42\x40\x43\x40\x44\x40\x45\x40\x46\x40\x47\x40\x48\x40\x49\x40\x4a\x40\x4b\x40\x4c\x40\x4d\x40\x4e\x40\x4f\x40\x50\x40\x51\x40\x52\x40\x53\x40\x54\x40\x55\x40\x57\x40\x58\x40\x59\x40\x5a\x40\x5b\x40\x5c\x40\x5d\x40\x5e\x40\x5f\x40\x60\x40\x61\x40\x62\x40\x63\x40\x64\x40\x65\x40\x66\x40\x67\x40\x68\x40\x69\x40\x6a\x40\x6b\x40\x6c\x40\x6d\x40\x6e\x40\x6f\x40\x70\x40\x71\x40\x72\x40\x73\x40\x74\x40\x75\x40\x76\x40\x77\x40\x78\x40\x79\x40\x7a\x40\x7b\x40\x7c\x40\x7d\x40\x7e\x40\x7f\x40\x80\x40\x81\x40\x82\x40\x83\x40\x84\x40\x85\x40\x86\x40\x87\x40\x88\x40\x89\x40\x8a\x40\x8b\x40\x8c\x40\x8d\x40\x8e\x40\x8f\x40\x90\x40\x91\x40\x92\x40\x93\x40\x94\x40\x95\x40\x96\x40\x97\x40\x98\x40\x99\x40\x9a\x40\x9b\x40\x9c\x40\x9d\x40\x9e\x40\x9f\x40\xa0\x40\xa1\x40\xa2\x40\xa3\x40\xa4\x40\xa5\x40\xa6\x40\xa7\x40\xa8\x40\xa9\x40\xaa\x40\xab\x40\xac\x00\x00", /* e000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xad\x40\xae\x40\xaf\x40\xb0\x40\xb1\x40\xb2\x40\xb3\x40\xb4\x40\xb5\x40\xb6\x40\xb7\x40\xb8\x40\xb9\x40\xba\x40\xbb\x40\xbc\x40\xbd\x40\xbe\x40\xbf\x40\xc0\x40\xc1\x40\xc2\x40\xc3\x40\xc4\x40\xc5\x40\xc6\x40\xc7\x40\xc8\x40\xc9\x40\xca\x40\xcb\x40\xcc\x40\xcd\x40\xce\x40\xcf\x40\xd0\x40\xd1\x40\xd2\x40\xd3\x40\xd4\x40\xd5\x40\xd6\x40\xd7\x40\xd8\x40\xd9\x40\xda\x40\xdb\x40\xdc\x40\xdd\x40\xde\x40\xdf\x40\xe0\x40\xe1\x40\xe2\x40\xe3\x40\xe4\x40\xe5\x40\xe6\x40\xe7\x40\xe8\x40\xe9\x40\xea\x40\xeb", /* e080 */ "\x40\xec\x40\xed\x40\xee\x40\xef\x40\xf0\x40\xf1\x40\xf2\x40\xf3\x40\xf4\x40\xf5\x40\xf6\x40\xf7\x40\xf8\x40\xf9\x40\xfa\x40\xfb\x40\xfc\x40\xfd\x40\xfe\x40\xff\x41\x00\x41\x01\x41\x02\x41\x03\x41\x04\x41\x05\x41\x06\x41\x07\x41\x08\x41\x09\x41\x0a\x41\x0b\x41\x0c\x41\x0d\x41\x0e\x41\x0f\x41\x10\x41\x11\x41\x12\x41\x13\x41\x14\x41\x15\x41\x16\x41\x17\x41\x18\x41\x19\x41\x1a\x41\x1b\x41\x1c\x41\x1d\x41\x1e\x41\x1f\x41\x20\x41\x21\x41\x22\x41\x23\x41\x24\x41\x25\x41\x26\x41\x27\x41\x28\x41\x29\x41\x2a\x41\x2b\x41\x2c\x41\x2d\x41\x2e\x41\x2f\x41\x30\x41\x31\x41\x32\x41\x33\x41\x34\x41\x35\x41\x36\x41\x37\x41\x38\x41\x39\x41\x3a\x41\x3b\x41\x3c\x41\x3d\x41\x3e\x41\x3f\x41\x40\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x41\x59\x41\x5a\x41\x5b\x41\x5c\x41\x5d\x41\x5e\x41\x60\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x00\x00", /* e100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x41\x79\x41\x7a\x41\x7b\x41\x7c\x41\x7d\x41\x7e\x41\x7f\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x86\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x41\xa1\x41\xa2\x41\xa3\x41\xa4\x41\xa5\x41\xa6\x41\xa7\x41\xa8\x41\xa9\x41\xaa", /* e180 */ "\x41\xab\x41\xac\x41\xad\x41\xae\x41\xaf\x41\xb0\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x41\xbb\x41\xbc\x41\xbd\x41\xbe\x41\xbf\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc6\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\xe1\x41\xe2\x41\xe3\x41\xe4\x41\xe5\x41\xe6\x41\xe7\x41\xe8\x41\xe9\x41\xea\x41\xeb\x41\xec\x41\xed\x41\xee\x41\xef\x41\xf0\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x41\xfd\x41\xfe\x41\xff\x42\x00\x42\x01\x42\x02\x42\x03\x42\x04\x42\x05\x42\x06\x42\x07\x42\x08\x42\x09\x42\x0a\x42\x0b\x42\x0c\x42\x0d\x42\x0e\x42\x0f\x42\x10\x42\x11\x42\x12\x42\x13\x42\x14\x42\x15\x42\x16\x42\x17\x42\x18\x42\x19\x42\x1a\x42\x1b\x42\x1c\x42\x1d\x42\x1e\x42\x1f\x42\x20\x42\x21\x42\x22\x42\x23\x42\x24\x42\x25\x42\x26\x42\x27\x42\x28\x42\x29\x00\x00", /* e200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x2a\x42\x2b\x42\x2c\x42\x2d\x42\x2e\x42\x2f\x42\x30\x42\x31\x42\x32\x42\x33\x42\x34\x42\x35\x42\x36\x42\x37\x42\x38\x42\x39\x42\x3a\x42\x3b\x42\x3c\x42\x3d\x42\x3e\x42\x3f\x42\x40\x42\x41\x42\x42\x42\x43\x42\x44\x42\x45\x42\x46\x42\x47\x42\x48\x42\x49\x42\x4a\x42\x4b\x42\x4c\x42\x4d\x42\x4e\x42\x4f\x42\x50\x42\x51\x42\x52\x42\x53\x42\x54\x42\x55\x42\x56\x42\x57\x42\x58\x42\x59\x42\x5a\x42\x5b\x42\x5c\x42\x5d\x42\x5e\x42\x5f\x42\x60\x42\x61\x42\x62\x42\x63\x42\x64\x42\x65\x42\x66\x42\x67\x42\x68", /* e280 */ "\x42\x69\x42\x6a\x42\x6b\x42\x6c\x42\x6d\x42\x6e\x42\x6f\x42\x70\x42\x71\x42\x72\x42\x73\x42\x74\x42\x75\x42\x76\x42\x77\x42\x78\x42\x79\x42\x7a\x42\x7b\x42\x7c\x42\x7d\x42\x7e\x42\x7f\x42\x80\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x8a\x42\x8b\x42\x8c\x42\x8d\x42\x8e\x42\x8f\x42\x90\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\x9a\x42\x9b\x42\x9c\x42\x9d\x42\x9e\x42\x9f\x42\xa0\x42\xa1\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xaa\x42\xab\x42\xac\x42\xad\x42\xae\x42\xaf\x42\xb0\x42\xb1\x42\xb2\x42\xb3\x42\xb4\x42\xb5\x42\xb6\x42\xb7\x42\xb8\x42\xb9\x42\xba\x42\xbb\x42\xbc\x42\xbd\x42\xbe\x42\xbf\x42\xc0\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xca\x42\xcb\x42\xcc\x42\xcd\x42\xce\x42\xcf\x42\xd0\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xda\x42\xdb\x42\xdc\x42\xdd\x42\xde\x42\xdf\x42\xe0\x42\xe1\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x00\x00", /* e300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\xe8\x42\xe9\x42\xea\x42\xeb\x42\xec\x42\xed\x42\xee\x42\xef\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\xfa\x42\xfb\x42\xfc\x42\xfd\x42\xfe\x42\xff\x43\x00\x43\x01\x43\x02\x43\x03\x43\x04\x43\x05\x43\x06\x43\x07\x43\x08\x43\x09\x43\x0a\x43\x0b\x43\x0c\x43\x0d\x43\x0e\x43\x0f\x43\x10\x43\x11\x43\x12\x43\x13\x43\x14\x43\x15\x43\x16\x43\x17\x43\x18\x43\x19\x43\x1a\x43\x1b\x43\x1c\x43\x1d\x43\x1e\x43\x1f\x43\x20\x43\x21\x43\x22\x43\x23\x43\x24\x43\x25\x43\x26", /* e380 */ "\x43\x27\x43\x28\x43\x29\x43\x2a\x43\x2b\x43\x2c\x43\x2d\x43\x2e\x43\x2f\x43\x30\x43\x31\x43\x32\x43\x33\x43\x34\x43\x35\x43\x36\x43\x38\x43\x39\x43\x3a\x43\x3b\x43\x3c\x43\x3d\x43\x3e\x43\x3f\x43\x40\x43\x41\x43\x42\x43\x43\x43\x44\x43\x45\x43\x46\x43\x47\x43\x48\x43\x49\x43\x4a\x43\x4b\x43\x4c\x43\x4d\x43\x4e\x43\x4f\x43\x50\x43\x51\x43\x52\x43\x53\x43\x54\x43\x55\x43\x56\x43\x57\x43\x58\x43\x59\x43\x5a\x43\x5b\x43\x5c\x43\x5d\x43\x5e\x43\x5f\x43\x60\x43\x61\x43\x62\x43\x63\x43\x64\x43\x65\x43\x66\x43\x67\x43\x68\x43\x69\x43\x6a\x43\x6b\x43\x6c\x43\x6d\x43\x6e\x43\x6f\x43\x70\x43\x71\x43\x72\x43\x73\x43\x74\x43\x75\x43\x76\x43\x77\x43\x78\x43\x79\x43\x7a\x43\x7b\x43\x7c\x43\x7d\x43\x7e\x43\x7f\x43\x80\x43\x81\x43\x82\x43\x83\x43\x84\x43\x85\x43\x86\x43\x87\x43\x88\x43\x89\x43\x8a\x43\x8b\x43\x8c\x43\x8d\x43\x8e\x43\x8f\x43\x90\x43\x91\x43\x92\x43\x93\x43\x94\x43\x95\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9b\x43\x9c\x43\x9d\x43\x9e\x43\x9f\x43\xa0\x43\xa1\x43\xa2\x43\xa3\x43\xa4\x43\xa5\x43\xa6\x00\x00", /* e400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa7\x43\xa8\x43\xa9\x43\xaa\x43\xab\x43\xad\x43\xae\x43\xaf\x43\xb0\x43\xb2\x43\xb3\x43\xb4\x43\xb5\x43\xb6\x43\xb7\x43\xb8\x43\xb9\x43\xba\x43\xbb\x43\xbc\x43\xbd\x43\xbe\x43\xbf\x43\xc0\x43\xc1\x43\xc2\x43\xc3\x43\xc4\x43\xc5\x43\xc6\x43\xc7\x43\xc8\x43\xc9\x43\xca\x43\xcb\x43\xcc\x43\xcd\x43\xce\x43\xcf\x43\xd0\x43\xd1\x43\xd2\x43\xd3\x43\xd4\x43\xd5\x43\xd6\x43\xd7\x43\xd8\x43\xd9\x43\xda\x43\xdb\x43\xdc\x43\xde\x43\xdf\x43\xe0\x43\xe1\x43\xe2\x43\xe3\x43\xe4\x43\xe5\x43\xe6\x43\xe7\x43\xe8", /* e480 */ "\x43\xe9\x43\xea\x43\xeb\x43\xec\x43\xed\x43\xee\x43\xef\x43\xf0\x43\xf1\x43\xf2\x43\xf3\x43\xf4\x43\xf5\x43\xf6\x43\xf7\x43\xf8\x43\xf9\x43\xfa\x43\xfb\x43\xfc\x43\xfd\x43\xfe\x43\xff\x44\x00\x44\x01\x44\x02\x44\x03\x44\x04\x44\x05\x44\x06\x44\x07\x44\x08\x44\x09\x44\x0a\x44\x0b\x44\x0c\x44\x0d\x44\x0e\x44\x0f\x44\x10\x44\x11\x44\x12\x44\x13\x44\x14\x44\x15\x44\x16\x44\x17\x44\x18\x44\x19\x44\x1a\x44\x1b\x44\x1c\x44\x1d\x44\x1e\x44\x1f\x44\x20\x44\x21\x44\x22\x44\x23\x44\x24\x44\x25\x44\x26\x44\x27\x44\x28\x44\x29\x44\x2a\x44\x2b\x44\x2c\x44\x2d\x44\x2e\x44\x2f\x44\x30\x44\x31\x44\x32\x44\x33\x44\x34\x44\x35\x44\x36\x44\x37\x44\x38\x44\x39\x44\x3a\x44\x3b\x44\x3c\x44\x3d\x44\x3e\x44\x3f\x44\x40\x44\x41\x44\x42\x44\x43\x44\x44\x44\x45\x44\x46\x44\x47\x44\x48\x44\x49\x44\x4a\x44\x4b\x44\x4c\x44\x4d\x44\x4e\x44\x4f\x44\x50\x44\x51\x44\x52\x44\x53\x44\x54\x44\x55\x44\x56\x44\x57\x44\x58\x44\x59\x44\x5a\x44\x5b\x44\x5c\x44\x5d\x44\x5e\x44\x5f\x44\x60\x44\x61\x44\x62\x44\x63\x44\x64\x44\x65\x44\x66\x44\x67\x00\x00", /* e500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x69\x44\x6a\x44\x6b\x44\x6c\x44\x6d\x44\x6e\x44\x6f\x44\x70\x44\x71\x44\x72\x44\x73\x44\x74\x44\x75\x44\x76\x44\x77\x44\x78\x44\x79\x44\x7a\x44\x7b\x44\x7c\x44\x7d\x44\x7e\x44\x7f\x44\x80\x44\x81\x44\x82\x44\x83\x44\x84\x44\x85\x44\x86\x44\x87\x44\x88\x44\x89\x44\x8a\x44\x8b\x44\x8c\x44\x8d\x44\x8e\x44\x8f\x44\x90\x44\x91\x44\x92\x44\x93\x44\x94\x44\x95\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9b\x44\x9c\x44\x9d\x44\x9e\x44\x9f\x44\xa0\x44\xa1\x44\xa2\x44\xa3\x44\xa4\x44\xa5\x44\xa6", /* e580 */ "\x44\xa7\x44\xa8\x44\xa9\x44\xaa\x44\xab\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xb0\x44\xb1\x44\xb2\x44\xb3\x44\xb4\x44\xb5\x44\xb6\x44\xb7\x44\xb8\x44\xb9\x44\xba\x44\xbb\x44\xbc\x44\xbd\x44\xbe\x44\xbf\x44\xc0\x44\xc1\x44\xc2\x44\xc3\x44\xc4\x44\xc5\x44\xc6\x44\xc7\x44\xc8\x44\xc9\x44\xca\x44\xcb\x44\xcc\x44\xcd\x44\xce\x44\xcf\x44\xd0\x44\xd1\x44\xd2\x44\xd3\x44\xd4\x44\xd5\x44\xd7\x44\xd8\x44\xd9\x44\xda\x44\xdb\x44\xdc\x44\xdd\x44\xde\x44\xdf\x44\xe0\x44\xe1\x44\xe2\x44\xe3\x44\xe4\x44\xe5\x44\xe6\x44\xe7\x44\xe8\x44\xe9\x44\xea\x44\xeb\x44\xec\x44\xed\x44\xee\x44\xef\x44\xf0\x44\xf1\x44\xf2\x44\xf3\x44\xf4\x44\xf5\x44\xf6\x44\xf7\x44\xf8\x44\xf9\x44\xfa\x44\xfb\x44\xfc\x44\xfd\x44\xfe\x44\xff\x45\x00\x45\x01\x45\x02\x45\x03\x45\x04\x45\x05\x45\x06\x45\x07\x45\x08\x45\x09\x45\x0a\x45\x0b\x45\x0c\x45\x0d\x45\x0e\x45\x0f\x45\x10\x45\x11\x45\x12\x45\x13\x45\x14\x45\x15\x45\x16\x45\x17\x45\x18\x45\x19\x45\x1a\x45\x1b\x45\x1c\x45\x1d\x45\x1e\x45\x1f\x45\x20\x45\x21\x45\x22\x45\x23\x45\x24\x45\x25\x45\x26\x00\x00", /* e600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x27\x45\x28\x45\x29\x45\x2a\x45\x2b\x45\x2c\x45\x2d\x45\x2e\x45\x2f\x45\x30\x45\x31\x45\x32\x45\x33\x45\x34\x45\x35\x45\x36\x45\x37\x45\x38\x45\x39\x45\x3a\x45\x3b\x45\x3c\x45\x3d\x45\x3e\x45\x3f\x45\x40\x45\x41\x45\x42\x45\x43\x45\x44\x45\x45\x45\x46\x45\x47\x45\x48\x45\x49\x45\x4a\x45\x4b\x45\x4c\x45\x4d\x45\x4e\x45\x4f\x45\x50\x45\x51\x45\x52\x45\x53\x45\x54\x45\x55\x45\x56\x45\x57\x45\x58\x45\x59\x45\x5a\x45\x5b\x45\x5c\x45\x5d\x45\x5e\x45\x5f\x45\x60\x45\x61\x45\x62\x45\x63\x45\x64\x45\x65", /* e680 */ "\x45\x66\x45\x67\x45\x68\x45\x69\x45\x6a\x45\x6b\x45\x6c\x45\x6d\x45\x6e\x45\x6f\x45\x70\x45\x71\x45\x72\x45\x73\x45\x74\x45\x75\x45\x76\x45\x77\x45\x78\x45\x79\x45\x7a\x45\x7b\x45\x7c\x45\x7d\x45\x7e\x45\x7f\x45\x80\x45\x81\x45\x82\x45\x83\x45\x84\x45\x85\x45\x86\x45\x87\x45\x88\x45\x89\x45\x8a\x45\x8b\x45\x8c\x45\x8d\x45\x8e\x45\x8f\x45\x90\x45\x91\x45\x92\x45\x93\x45\x94\x45\x95\x45\x96\x45\x97\x45\x98\x45\x99\x45\x9a\x45\x9b\x45\x9c\x45\x9d\x45\x9e\x45\x9f\x45\xa0\x45\xa1\x45\xa2\x45\xa3\x45\xa4\x45\xa5\x45\xa6\x45\xa7\x45\xa8\x45\xa9\x45\xaa\x45\xab\x45\xac\x45\xad\x45\xae\x45\xaf\x45\xb0\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xd9\x45\xda\x45\xdb\x45\xdc\x45\xdd\x45\xde\x45\xdf\x45\xe0\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x00\x00", /* e700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x45\xeb\x45\xec\x45\xed\x45\xee\x45\xef\x45\xf0\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x45\xfb\x45\xfc\x45\xfd\x45\xfe\x45\xff\x46\x00\x46\x01\x46\x02\x46\x03\x46\x04\x46\x05\x46\x06\x46\x07\x46\x08\x46\x09\x46\x0a\x46\x0b\x46\x0c\x46\x0d\x46\x0e\x46\x0f\x46\x10\x46\x11\x46\x12\x46\x13\x46\x14\x46\x15\x46\x16\x46\x17\x46\x18\x46\x19\x46\x1a\x46\x1b\x46\x1c\x46\x1d\x46\x1e\x46\x1f\x46\x20\x46\x21\x46\x22\x46\x23", /* e780 */ "\x46\x24\x46\x25\x46\x26\x46\x27\x46\x28\x46\x29\x46\x2a\x46\x2b\x46\x2c\x46\x2d\x46\x2e\x46\x2f\x46\x30\x46\x31\x46\x32\x46\x33\x46\x34\x46\x35\x46\x36\x46\x37\x46\x38\x46\x39\x46\x3a\x46\x3b\x46\x3c\x46\x3d\x46\x3e\x46\x3f\x46\x40\x46\x41\x46\x42\x46\x43\x46\x44\x46\x45\x46\x46\x46\x47\x46\x48\x46\x49\x46\x4a\x46\x4b\x46\x4d\x46\x4e\x46\x4f\x46\x50\x46\x51\x46\x52\x46\x53\x46\x54\x46\x55\x46\x56\x46\x57\x46\x58\x46\x59\x46\x5a\x46\x5b\x46\x5c\x46\x5d\x46\x5e\x46\x5f\x46\x60\x46\x62\x46\x63\x46\x64\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x46\x8a\x46\x8b\x46\x8c\x46\x8d\x46\x8e\x46\x8f\x46\x90\x46\x91\x46\x92\x46\x93\x46\x94\x46\x95\x46\x96\x46\x97\x46\x98\x46\x99\x46\x9a\x46\x9b\x46\x9c\x46\x9d\x46\x9e\x46\x9f\x46\xa0\x46\xa1\x46\xa2\x46\xa3\x46\xa4\x00\x00", /* e800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3", /* e880 */ "\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x46\xf0\x46\xf1\x46\xf2\x46\xf3\x46\xf4\x46\xf5\x46\xf6\x46\xf7\x46\xf8\x46\xf9\x46\xfa\x46\xfb\x46\xfc\x46\xfd\x46\xfe\x46\xff\x47\x00\x47\x01\x47\x02\x47\x03\x47\x04\x47\x05\x47\x06\x47\x07\x47\x08\x47\x09\x47\x0a\x47\x0b\x47\x0c\x47\x0d\x47\x0e\x47\x0f\x47\x10\x47\x11\x47\x12\x47\x13\x47\x14\x47\x15\x47\x16\x47\x17\x47\x18\x47\x19\x47\x1a\x47\x1b\x47\x1c\x47\x1d\x47\x1e\x47\x1f\x47\x20\x47\x21\x47\x22\x47\x24\x47\x25\x47\x26\x47\x27\x47\x28\x47\x2a\x47\x2b\x47\x2c\x47\x2d\x47\x2e\x47\x2f\x47\x30\x47\x31\x47\x32\x47\x33\x47\x34\x47\x35\x47\x36\x47\x37\x47\x38\x47\x39\x47\x3a\x47\x3b\x47\x3c\x47\x3d\x47\x3e\x47\x3f\x47\x40\x47\x41\x47\x42\x47\x43\x47\x44\x47\x45\x47\x46\x47\x47\x47\x48\x47\x49\x47\x4a\x47\x4b\x47\x4c\x47\x4d\x47\x4e\x47\x4f\x47\x50\x47\x51\x47\x52\x47\x53\x47\x54\x47\x55\x47\x56\x47\x57\x47\x58\x47\x59\x47\x5a\x47\x5b\x47\x5c\x47\x5d\x47\x5e\x47\x5f\x47\x60\x47\x61\x47\x62\x47\x63\x47\x64\x00\x00", /* e900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x65\x47\x66\x47\x67\x47\x68\x47\x69\x47\x6a\x47\x6b\x47\x6c\x47\x6d\x47\x6e\x47\x6f\x47\x70\x47\x71\x47\x72\x47\x73\x47\x74\x47\x75\x47\x76\x47\x77\x47\x78\x47\x79\x47\x7a\x47\x7b\x47\x7d\x47\x7e\x47\x7f\x47\x80\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x47\xa1\x47\xa2\x47\xa3\x47\xa4\x47\xa5", /* e980 */ "\x47\xa6\x47\xa7\x47\xa8\x47\xa9\x47\xaa\x47\xab\x47\xac\x47\xad\x47\xae\x47\xaf\x47\xb0\x47\xb1\x47\xb2\x47\xb3\x47\xb4\x47\xb5\x47\xb6\x47\xb7\x47\xb8\x47\xb9\x47\xba\x47\xbb\x47\xbc\x47\xbd\x47\xbe\x47\xbf\x47\xc0\x47\xc1\x47\xc2\x47\xc3\x47\xc4\x47\xc5\x47\xc6\x47\xc7\x47\xc8\x47\xc9\x47\xca\x47\xcb\x47\xcc\x47\xcd\x47\xce\x47\xcf\x47\xd0\x47\xd1\x47\xd2\x47\xd3\x47\xd4\x47\xd5\x47\xd6\x47\xd7\x47\xd8\x47\xd9\x47\xda\x47\xdb\x47\xdc\x47\xdd\x47\xde\x47\xdf\x47\xe0\x47\xe1\x47\xe2\x47\xe3\x47\xe4\x47\xe5\x47\xe6\x47\xe7\x47\xe8\x47\xe9\x47\xea\x47\xeb\x47\xec\x47\xed\x47\xee\x47\xef\x47\xf0\x47\xf1\x47\xf2\x47\xf3\x47\xf4\x47\xf5\x47\xf6\x47\xf7\x47\xf8\x47\xf9\x47\xfa\x47\xfb\x47\xfc\x47\xfd\x47\xfe\x47\xff\x48\x00\x48\x01\x48\x02\x48\x03\x48\x04\x48\x05\x48\x06\x48\x07\x48\x08\x48\x09\x48\x0a\x48\x0b\x48\x0c\x48\x0d\x48\x0e\x48\x0f\x48\x10\x48\x11\x48\x12\x48\x13\x48\x14\x48\x15\x48\x16\x48\x17\x48\x18\x48\x19\x48\x1a\x48\x1b\x48\x1c\x48\x1d\x48\x1e\x48\x1f\x48\x20\x48\x21\x48\x22\x48\x23\x48\x24\x00\x00", /* ea00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x25\x48\x26\x48\x27\x48\x28\x48\x29\x48\x2a\x48\x2b\x48\x2c\x48\x2d\x48\x2e\x48\x2f\x48\x30\x48\x31\x48\x32\x48\x33\x48\x34\x48\x35\x48\x36\x48\x37\x48\x38\x48\x39\x48\x3a\x48\x3b\x48\x3c\x48\x3d\x48\x3e\x48\x3f\x48\x40\x48\x41\x48\x42\x48\x43\x48\x44\x48\x45\x48\x46\x48\x47\x48\x48\x48\x49\x48\x4a\x48\x4b\x48\x4c\x48\x4d\x48\x4e\x48\x4f\x48\x50\x48\x51\x48\x52\x48\x53\x48\x54\x48\x55\x48\x56\x48\x57\x48\x58\x48\x59\x48\x5a\x48\x5b\x48\x5c\x48\x5d\x48\x5e\x48\x5f\x48\x60\x48\x61\x48\x62\x48\x63", /* ea80 */ "\x48\x64\x48\x65\x48\x66\x48\x67\x48\x68\x48\x69\x48\x6a\x48\x6b\x48\x6c\x48\x6d\x48\x6e\x48\x6f\x48\x70\x48\x71\x48\x72\x48\x73\x48\x74\x48\x75\x48\x76\x48\x77\x48\x78\x48\x79\x48\x7a\x48\x7b\x48\x7c\x48\x7d\x48\x7e\x48\x7f\x48\x80\x48\x81\x48\x82\x48\x83\x48\x84\x48\x85\x48\x86\x48\x87\x48\x88\x48\x89\x48\x8a\x48\x8b\x48\x8c\x48\x8d\x48\x8e\x48\x8f\x48\x90\x48\x91\x48\x92\x48\x93\x48\x94\x48\x95\x48\x96\x48\x97\x48\x98\x48\x99\x48\x9a\x48\x9b\x48\x9c\x48\x9d\x48\x9e\x48\x9f\x48\xa0\x48\xa1\x48\xa2\x48\xa3\x48\xa4\x48\xa5\x48\xa6\x48\xa7\x48\xa8\x48\xa9\x48\xaa\x48\xab\x48\xac\x48\xad\x48\xae\x48\xaf\x48\xb0\x48\xb1\x48\xb2\x48\xb3\x48\xb4\x48\xb5\x48\xb6\x48\xb7\x48\xb8\x48\xb9\x48\xba\x48\xbb\x48\xbc\x48\xbd\x48\xbe\x48\xbf\x48\xc0\x48\xc1\x48\xc2\x48\xc3\x48\xc4\x48\xc5\x48\xc6\x48\xc7\x48\xc8\x48\xc9\x48\xca\x48\xcb\x48\xcc\x48\xcd\x48\xce\x48\xcf\x48\xd0\x48\xd1\x48\xd2\x48\xd3\x48\xd4\x48\xd5\x48\xd6\x48\xd7\x48\xd8\x48\xd9\x48\xda\x48\xdb\x48\xdc\x48\xdd\x48\xde\x48\xdf\x48\xe0\x48\xe1\x48\xe2\x00\x00", /* eb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xe3\x48\xe4\x48\xe5\x48\xe6\x48\xe7\x48\xe8\x48\xe9\x48\xea\x48\xeb\x48\xec\x48\xed\x48\xee\x48\xef\x48\xf0\x48\xf1\x48\xf2\x48\xf3\x48\xf4\x48\xf5\x48\xf6\x48\xf7\x48\xf8\x48\xf9\x48\xfa\x48\xfb\x48\xfc\x48\xfd\x48\xfe\x48\xff\x49\x00\x49\x01\x49\x02\x49\x03\x49\x04\x49\x05\x49\x06\x49\x07\x49\x08\x49\x09\x49\x0a\x49\x0b\x49\x0c\x49\x0d\x49\x0e\x49\x0f\x49\x10\x49\x11\x49\x12\x49\x13\x49\x14\x49\x15\x49\x16\x49\x17\x49\x18\x49\x19\x49\x1a\x49\x1b\x49\x1c\x49\x1d\x49\x1e\x49\x1f\x49\x20\x49\x21", /* eb80 */ "\x49\x22\x49\x23\x49\x24\x49\x25\x49\x26\x49\x27\x49\x28\x49\x29\x49\x2a\x49\x2b\x49\x2c\x49\x2d\x49\x2e\x49\x2f\x49\x30\x49\x31\x49\x32\x49\x33\x49\x34\x49\x35\x49\x36\x49\x37\x49\x38\x49\x39\x49\x3a\x49\x3b\x49\x3c\x49\x3d\x49\x3e\x49\x3f\x49\x40\x49\x41\x49\x42\x49\x43\x49\x44\x49\x45\x49\x46\x49\x48\x49\x49\x49\x4a\x49\x4b\x49\x4c\x49\x4d\x49\x4e\x49\x4f\x49\x50\x49\x51\x49\x52\x49\x53\x49\x54\x49\x55\x49\x56\x49\x57\x49\x58\x49\x59\x49\x5a\x49\x5b\x49\x5c\x49\x5d\x49\x5e\x49\x5f\x49\x60\x49\x61\x49\x62\x49\x63\x49\x64\x49\x65\x49\x66\x49\x67\x49\x68\x49\x69\x49\x6a\x49\x6b\x49\x6c\x49\x6d\x49\x6e\x49\x6f\x49\x70\x49\x71\x49\x72\x49\x73\x49\x74\x49\x75\x49\x76\x49\x77\x49\x78\x49\x79\x49\x7b\x49\x7c\x49\x7e\x49\x7f\x49\x80\x49\x81\x49\x84\x49\x87\x49\x88\x49\x89\x49\x8a\x49\x8b\x49\x8c\x49\x8d\x49\x8e\x49\x8f\x49\x90\x49\x91\x49\x92\x49\x93\x49\x94\x49\x95\x49\x96\x49\x97\x49\x98\x49\x99\x49\x9a\x49\x9c\x49\x9d\x49\x9e\x49\xa0\x49\xa1\x49\xa2\x49\xa3\x49\xa4\x49\xa5\x49\xa6\x49\xa7\x49\xa8\x49\xa9\x00\x00", /* ec00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xaa\x49\xab\x49\xac\x49\xad\x49\xae\x49\xaf\x49\xb0\x49\xb1\x49\xb2\x49\xb3\x49\xb4\x49\xb5\x49\xb8\x49\xb9\x49\xba\x49\xbb\x49\xbc\x49\xbd\x49\xbe\x49\xbf\x49\xc0\x49\xc1\x49\xc2\x49\xc3\x49\xc4\x49\xc5\x49\xc6\x49\xc7\x49\xc8\x49\xc9\x49\xca\x49\xcb\x49\xcc\x49\xcd\x49\xce\x49\xcf\x49\xd0\x49\xd1\x49\xd2\x49\xd3\x49\xd4\x49\xd5\x49\xd6\x49\xd7\x49\xd8\x49\xd9\x49\xda\x49\xdb\x49\xdc\x49\xdd\x49\xde\x49\xdf\x49\xe0\x49\xe1\x49\xe2\x49\xe3\x49\xe4\x49\xe5\x49\xe6\x49\xe7\x49\xe8\x49\xe9\x49\xea", /* ec80 */ "\x49\xeb\x49\xec\x49\xed\x49\xee\x49\xef\x49\xf0\x49\xf1\x49\xf2\x49\xf3\x49\xf4\x49\xf5\x49\xf6\x49\xf7\x49\xf8\x49\xf9\x49\xfa\x49\xfb\x49\xfc\x49\xfd\x49\xfe\x49\xff\x4a\x00\x4a\x01\x4a\x02\x4a\x03\x4a\x04\x4a\x05\x4a\x06\x4a\x07\x4a\x08\x4a\x09\x4a\x0a\x4a\x0b\x4a\x0c\x4a\x0d\x4a\x0e\x4a\x0f\x4a\x10\x4a\x11\x4a\x12\x4a\x13\x4a\x14\x4a\x15\x4a\x16\x4a\x17\x4a\x18\x4a\x19\x4a\x1a\x4a\x1b\x4a\x1c\x4a\x1d\x4a\x1e\x4a\x1f\x4a\x20\x4a\x21\x4a\x22\x4a\x23\x4a\x24\x4a\x25\x4a\x26\x4a\x27\x4a\x28\x4a\x29\x4a\x2a\x4a\x2b\x4a\x2c\x4a\x2d\x4a\x2e\x4a\x2f\x4a\x30\x4a\x31\x4a\x32\x4a\x33\x4a\x34\x4a\x35\x4a\x36\x4a\x37\x4a\x38\x4a\x39\x4a\x3a\x4a\x3b\x4a\x3c\x4a\x3d\x4a\x3e\x4a\x3f\x4a\x40\x4a\x41\x4a\x42\x4a\x43\x4a\x44\x4a\x45\x4a\x46\x4a\x47\x4a\x48\x4a\x49\x4a\x4a\x4a\x4b\x4a\x4c\x4a\x4d\x4a\x4e\x4a\x4f\x4a\x50\x4a\x51\x4a\x52\x4a\x53\x4a\x54\x4a\x55\x4a\x56\x4a\x57\x4a\x58\x4a\x59\x4a\x5a\x4a\x5b\x4a\x5c\x4a\x5d\x4a\x5e\x4a\x5f\x4a\x60\x4a\x61\x4a\x62\x4a\x63\x4a\x64\x4a\x65\x4a\x66\x4a\x67\x4a\x68\x4a\x69\x00\x00", /* ed00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6a\x4a\x6b\x4a\x6c\x4a\x6d\x4a\x6e\x4a\x6f\x4a\x70\x4a\x71\x4a\x72\x4a\x73\x4a\x74\x4a\x75\x4a\x76\x4a\x77\x4a\x78\x4a\x79\x4a\x7a\x4a\x7b\x4a\x7c\x4a\x7d\x4a\x7e\x4a\x7f\x4a\x80\x4a\x81\x4a\x82\x4a\x83\x4a\x84\x4a\x85\x4a\x86\x4a\x87\x4a\x88\x4a\x89\x4a\x8a\x4a\x8b\x4a\x8c\x4a\x8d\x4a\x8e\x4a\x8f\x4a\x90\x4a\x91\x4a\x92\x4a\x93\x4a\x94\x4a\x95\x4a\x96\x4a\x97\x4a\x98\x4a\x99\x4a\x9a\x4a\x9b\x4a\x9c\x4a\x9d\x4a\x9e\x4a\x9f\x4a\xa0\x4a\xa1\x4a\xa2\x4a\xa3\x4a\xa4\x4a\xa5\x4a\xa6\x4a\xa7\x4a\xa8", /* ed80 */ "\x4a\xa9\x4a\xaa\x4a\xab\x4a\xac\x4a\xad\x4a\xae\x4a\xaf\x4a\xb0\x4a\xb1\x4a\xb2\x4a\xb3\x4a\xb4\x4a\xb5\x4a\xb6\x4a\xb7\x4a\xb8\x4a\xb9\x4a\xba\x4a\xbb\x4a\xbc\x4a\xbd\x4a\xbe\x4a\xbf\x4a\xc0\x4a\xc1\x4a\xc2\x4a\xc3\x4a\xc4\x4a\xc5\x4a\xc6\x4a\xc7\x4a\xc8\x4a\xc9\x4a\xca\x4a\xcb\x4a\xcc\x4a\xcd\x4a\xce\x4a\xcf\x4a\xd0\x4a\xd1\x4a\xd2\x4a\xd3\x4a\xd4\x4a\xd5\x4a\xd6\x4a\xd7\x4a\xd8\x4a\xd9\x4a\xda\x4a\xdb\x4a\xdc\x4a\xdd\x4a\xde\x4a\xdf\x4a\xe0\x4a\xe1\x4a\xe2\x4a\xe3\x4a\xe4\x4a\xe5\x4a\xe6\x4a\xe7\x4a\xe8\x4a\xe9\x4a\xea\x4a\xeb\x4a\xec\x4a\xed\x4a\xee\x4a\xef\x4a\xf0\x4a\xf1\x4a\xf2\x4a\xf3\x4a\xf4\x4a\xf5\x4a\xf6\x4a\xf7\x4a\xf8\x4a\xf9\x4a\xfa\x4a\xfb\x4a\xfc\x4a\xfd\x4a\xfe\x4a\xff\x4b\x00\x4b\x01\x4b\x02\x4b\x03\x4b\x04\x4b\x05\x4b\x06\x4b\x07\x4b\x08\x4b\x09\x4b\x0a\x4b\x0b\x4b\x0c\x4b\x0d\x4b\x0e\x4b\x0f\x4b\x10\x4b\x11\x4b\x12\x4b\x13\x4b\x14\x4b\x15\x4b\x16\x4b\x17\x4b\x18\x4b\x19\x4b\x1a\x4b\x1b\x4b\x1c\x4b\x1d\x4b\x1e\x4b\x1f\x4b\x20\x4b\x21\x4b\x22\x4b\x23\x4b\x24\x4b\x25\x4b\x26\x4b\x27\x00\x00", /* ee00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x28\x4b\x29\x4b\x2a\x4b\x2b\x4b\x2c\x4b\x2d\x4b\x2e\x4b\x2f\x4b\x30\x4b\x31\x4b\x32\x4b\x33\x4b\x34\x4b\x35\x4b\x36\x4b\x37\x4b\x38\x4b\x39\x4b\x3a\x4b\x3b\x4b\x3c\x4b\x3d\x4b\x3e\x4b\x3f\x4b\x40\x4b\x41\x4b\x42\x4b\x43\x4b\x44\x4b\x45\x4b\x46\x4b\x47\x4b\x48\x4b\x49\x4b\x4a\x4b\x4b\x4b\x4c\x4b\x4d\x4b\x4e\x4b\x4f\x4b\x50\x4b\x51\x4b\x52\x4b\x53\x4b\x54\x4b\x55\x4b\x56\x4b\x57\x4b\x58\x4b\x59\x4b\x5a\x4b\x5b\x4b\x5c\x4b\x5d\x4b\x5e\x4b\x5f\x4b\x60\x4b\x61\x4b\x62\x4b\x63\x4b\x64\x4b\x65\x4b\x66", /* ee80 */ "\x4b\x67\x4b\x68\x4b\x69\x4b\x6a\x4b\x6b\x4b\x6c\x4b\x6d\x4b\x6e\x4b\x6f\x4b\x70\x4b\x71\x4b\x72\x4b\x73\x4b\x74\x4b\x75\x4b\x76\x4b\x77\x4b\x78\x4b\x79\x4b\x7a\x4b\x7b\x4b\x7c\x4b\x7d\x4b\x7e\x4b\x7f\x4b\x80\x4b\x81\x4b\x82\x4b\x83\x4b\x84\x4b\x85\x4b\x86\x4b\x87\x4b\x88\x4b\x89\x4b\x8a\x4b\x8b\x4b\x8c\x4b\x8d\x4b\x8e\x4b\x8f\x4b\x90\x4b\x91\x4b\x92\x4b\x93\x4b\x94\x4b\x95\x4b\x96\x4b\x97\x4b\x98\x4b\x99\x4b\x9a\x4b\x9b\x4b\x9c\x4b\x9d\x4b\x9e\x4b\x9f\x4b\xa0\x4b\xa1\x4b\xa2\x4b\xa3\x4b\xa4\x4b\xa5\x4b\xa6\x4b\xa7\x4b\xa8\x4b\xa9\x4b\xaa\x4b\xab\x4b\xac\x4b\xad\x4b\xae\x4b\xaf\x4b\xb0\x4b\xb1\x4b\xb2\x4b\xb3\x4b\xb4\x4b\xb5\x4b\xb6\x4b\xb7\x4b\xb8\x4b\xb9\x4b\xba\x4b\xbb\x4b\xbc\x4b\xbd\x4b\xbe\x4b\xbf\x4b\xc0\x4b\xc1\x4b\xc2\x4b\xc3\x4b\xc4\x4b\xc5\x4b\xc6\x4b\xc7\x4b\xc8\x4b\xc9\x4b\xca\x4b\xcb\x4b\xcc\x4b\xcd\x4b\xce\x4b\xcf\x4b\xd0\x4b\xd1\x4b\xd2\x4b\xd3\x4b\xd4\x4b\xd5\x4b\xd6\x4b\xd7\x4b\xd8\x4b\xd9\x4b\xda\x4b\xdb\x4b\xdc\x4b\xdd\x4b\xde\x4b\xdf\x4b\xe0\x4b\xe1\x4b\xe2\x4b\xe3\x4b\xe4\x4b\xe5\x00\x00", /* ef00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe6\x4b\xe7\x4b\xe8\x4b\xe9\x4b\xea\x4b\xeb\x4b\xec\x4b\xed\x4b\xee\x4b\xef\x4b\xf0\x4b\xf1\x4b\xf2\x4b\xf3\x4b\xf4\x4b\xf5\x4b\xf6\x4b\xf7\x4b\xf8\x4b\xf9\x4b\xfa\x4b\xfb\x4b\xfc\x4b\xfd\x4b\xfe\x4b\xff\x4c\x00\x4c\x01\x4c\x02\x4c\x03\x4c\x04\x4c\x05\x4c\x06\x4c\x07\x4c\x08\x4c\x09\x4c\x0a\x4c\x0b\x4c\x0c\x4c\x0d\x4c\x0e\x4c\x0f\x4c\x10\x4c\x11\x4c\x12\x4c\x13\x4c\x14\x4c\x15\x4c\x16\x4c\x17\x4c\x18\x4c\x19\x4c\x1a\x4c\x1b\x4c\x1c\x4c\x1d\x4c\x1e\x4c\x1f\x4c\x20\x4c\x21\x4c\x22\x4c\x23\x4c\x24", /* ef80 */ "\x4c\x25\x4c\x26\x4c\x27\x4c\x28\x4c\x29\x4c\x2a\x4c\x2b\x4c\x2c\x4c\x2d\x4c\x2e\x4c\x2f\x4c\x30\x4c\x31\x4c\x32\x4c\x33\x4c\x34\x4c\x35\x4c\x36\x4c\x37\x4c\x38\x4c\x39\x4c\x3a\x4c\x3b\x4c\x3c\x4c\x3d\x4c\x3e\x4c\x3f\x4c\x40\x4c\x41\x4c\x42\x4c\x43\x4c\x44\x4c\x45\x4c\x46\x4c\x47\x4c\x48\x4c\x49\x4c\x4a\x4c\x4b\x4c\x4c\x4c\x4d\x4c\x4e\x4c\x4f\x4c\x50\x4c\x51\x4c\x52\x4c\x53\x4c\x54\x4c\x55\x4c\x56\x4c\x57\x4c\x58\x4c\x59\x4c\x5a\x4c\x5b\x4c\x5c\x4c\x5d\x4c\x5e\x4c\x5f\x4c\x60\x4c\x61\x4c\x62\x4c\x63\x4c\x64\x4c\x65\x4c\x66\x4c\x67\x4c\x68\x4c\x69\x4c\x6a\x4c\x6b\x4c\x6c\x4c\x6d\x4c\x6e\x4c\x6f\x4c\x70\x4c\x71\x4c\x72\x4c\x73\x4c\x74\x4c\x75\x4c\x76\x4c\x78\x4c\x79\x4c\x7a\x4c\x7b\x4c\x7c\x4c\x7d\x4c\x7e\x4c\x7f\x4c\x80\x4c\x81\x4c\x82\x4c\x83\x4c\x84\x4c\x85\x4c\x86\x4c\x87\x4c\x88\x4c\x89\x4c\x8a\x4c\x8b\x4c\x8c\x4c\x8d\x4c\x8e\x4c\x8f\x4c\x90\x4c\x91\x4c\x92\x4c\x93\x4c\x94\x4c\x95\x4c\x96\x4c\x97\x4c\x98\x4c\x99\x4c\x9a\x4c\x9b\x4c\x9c\x4c\x9d\x4c\x9e\x4c\xa4\x4c\xa5\x4c\xa6\x4c\xa7\x4c\xa8\x4c\xa9\x00\x00", /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xaa\x4c\xab\x4c\xac\x4c\xad\x4c\xae\x4c\xaf\x4c\xb0\x4c\xb1\x4c\xb2\x4c\xb3\x4c\xb4\x4c\xb5\x4c\xb6\x4c\xb7\x4c\xb8\x4c\xb9\x4c\xba\x4c\xbb\x4c\xbc\x4c\xbd\x4c\xbe\x4c\xbf\x4c\xc0\x4c\xc1\x4c\xc2\x4c\xc3\x4c\xc4\x4c\xc5\x4c\xc6\x4c\xc7\x4c\xc8\x4c\xc9\x4c\xca\x4c\xcb\x4c\xcc\x4c\xcd\x4c\xce\x4c\xcf\x4c\xd0\x4c\xd1\x4c\xd2\x4c\xd3\x4c\xd4\x4c\xd5\x4c\xd6\x4c\xd7\x4c\xd8\x4c\xd9\x4c\xda\x4c\xdb\x4c\xdc\x4c\xdd\x4c\xde\x4c\xdf\x4c\xe0\x4c\xe1\x4c\xe2\x4c\xe3\x4c\xe4\x4c\xe5\x4c\xe6\x4c\xe7\x4c\xe8", /* f680 */ "\x4c\xe9\x4c\xea\x4c\xeb\x4c\xec\x4c\xed\x4c\xee\x4c\xef\x4c\xf0\x4c\xf1\x4c\xf2\x4c\xf3\x4c\xf4\x4c\xf5\x4c\xf6\x4c\xf7\x4c\xf8\x4c\xf9\x4c\xfa\x4c\xfb\x4c\xfc\x4c\xfd\x4c\xfe\x4c\xff\x4d\x00\x4d\x01\x4d\x02\x4d\x03\x4d\x04\x4d\x05\x4d\x06\x4d\x07\x4d\x08\x4d\x09\x4d\x0a\x4d\x0b\x4d\x0c\x4d\x0d\x4d\x0e\x4d\x0f\x4d\x10\x4d\x11\x4d\x12\x4d\x1a\x4d\x1b\x4d\x1c\x4d\x1d\x4d\x1e\x4d\x1f\x4d\x20\x4d\x21\x4d\x22\x4d\x23\x4d\x24\x4d\x25\x4d\x26\x4d\x27\x4d\x28\x4d\x29\x4d\x2a\x4d\x2b\x4d\x2c\x4d\x2d\x4d\x2e\x4d\x2f\x4d\x30\x4d\x31\x4d\x32\x4d\x33\x4d\x34\x4d\x35\x4d\x36\x4d\x37\x4d\x38\x4d\x39\x4d\x3a\x4d\x3b\x4d\x3c\x4d\x3d\x4d\x3e\x4d\x3f\x4d\x40\x4d\x41\x4d\x42\x4d\x43\x4d\x44\x4d\x45\x4d\x46\x4d\x47\x4d\x48\x4d\x49\x4d\x4a\x4d\x4b\x4d\x4c\x4d\x4d\x4d\x4e\x4d\x4f\x4d\x50\x4d\x51\x4d\x52\x4d\x53\x4d\x54\x4d\x55\x4d\x56\x4d\x57\x4d\x58\x4d\x59\x4d\x5a\x4d\x5b\x4d\x5c\x4d\x5d\x4d\x5e\x4d\x5f\x4d\x60\x4d\x61\x4d\x62\x4d\x63\x4d\x64\x4d\x65\x4d\x66\x4d\x67\x4d\x68\x4d\x69\x4d\x6a\x4d\x6b\x4d\x6c\x4d\x6d\x4d\x6e\x00\x00", /* f700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6f\x4d\x70\x4d\x71\x4d\x72\x4d\x73\x4d\x74\x4d\x75\x4d\x76\x4d\x77\x4d\x78\x4d\x79\x4d\x7a\x4d\x7b\x4d\x7c\x4d\x7d\x4d\x7e\x4d\x7f\x4d\x80\x4d\x81\x4d\x82\x4d\x83\x4d\x84\x4d\x85\x4d\x86\x4d\x87\x4d\x88\x4d\x89\x4d\x8a\x4d\x8b\x4d\x8c\x4d\x8d\x4d\x8e\x4d\x8f\x4d\x90\x4d\x91\x4d\x92\x4d\x93\x4d\x94\x4d\x95\x4d\x96\x4d\x97\x4d\x98\x4d\x99\x4d\x9a\x4d\x9b\x4d\x9c\x4d\x9d\x4d\x9e\x4d\x9f\x4d\xa0\x4d\xa1\x4d\xa2\x4d\xa3\x4d\xa4\x4d\xa5\x4d\xa6\x4d\xa7\x4d\xa8\x4d\xa9\x4d\xaa\x4d\xab\x4d\xac\x4d\xad", /* f780 */ "\x4d\xaf\x4d\xb0\x4d\xb1\x4d\xb2\x4d\xb3\x4d\xb4\x4d\xb5\x4d\xb6\x4d\xb7\x4d\xb8\x4d\xb9\x4d\xba\x4d\xbb\x4d\xbc\x4d\xbd\x4d\xbe\x4d\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x56\xfb\x57\xfb\x58\xfb\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x7a\xfb\x7b\xfb\x7c\xfb\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x8e", /* f880 */ "\xfb\x8f\xfb\x90\xfb\x91\xfb\x92\xfb\x93\xfb\x94\xfb\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xaa\xfb\xab\xfb\xac\xfb\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xd3\xfb\xd4\xfb\xd5\xfb\xd6\xfb\xd7\xfb\xd8\xfb\xd9\xfb\xda\xfb\xdb\xfb\xdc\xfb\xdd\xfb\xde\xfb\xdf\xfb\xe0\xfb\xe1\xfb\xe2\xfb\xe3\xfb\xe4\xfb\xe5\xfb\xe6\xfb\xe7\xfb\xe8\xfb\xe9\xfb\xea\xfb\xeb\xfb\xec\xfb\xed\xfb\xee\xfb\xef\xfb\xf0\xfb\xf1\xfb\xf2\xfb\xf3\xfb\xf4\xfb\xf5\xfb\xf6\xfb\xf7\xfb\xf8\xfb\xf9\xfb\xfa\xfb\xfb\xfb\xfc\xfb\xfd\xfb\xfe\xfb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x89\xfe\x8a\xfe\x8b\xfe\x8c\xfe\x8d\xfe\x8e\xfe\x8f\xfe\x90\xfe\x91\xfe\x92\x00\x00\x00\x00\xfe\x95\xfe\x96\xfe\x97\xfe\x98\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x9d\xfe\x9e\xfe\x9f\xfe\xa0\xfe\xa1\xfe\xa2\xfe\xa3\xfe\xa4\xfe\xa5\xfe\xa6\xfe\xa7\xfe\xa8\xfe\xa9\xfe\xaa\x00\x00\x00\x00\xfe\xad\xfe\xae\xfe\xaf\xfe\xb0\xfe\xb1\xfe\xb2\xfe\xb3\xfe\xb4\xfe\xb5\xfe\xb6\xfe\xb7\x00\x00", /* fc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xc9\xfe\xca\xfe\xcb\xfe\xcc\xfe\xcd\xfe\xce\xfe\xcf\xfe\xd0\xfe\xd1\xfe\xd2\xfe\xd3\xfe\xd4\xfe\xd5\xfe\xd6\xfe\xd7\xfe\xd8\xfe\xd9\xfe\xda\xfe\xdb\xfe\xdc\xfe\xdd\xfe\xde\xfe\xdf\xfe\xe0\xfe\xe1\xfe\xe2\xfe\xe3\xfe\xe4\xfe\xe5\xfe\xe6\xfe\xe7\xfe\xe8\xfe\xe9\xfe\xea\xfe\xeb\xfe\xec\xfe\xed\xfe\xee\xfe\xef\xfe\xf0\xfe\xf1\xfe\xf2\xfe\xf3\xfe\xf4\x00\x00\x00\x00", /* fc80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfb\xfe\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { NULL } }; /* Code page aliases. */ typedef struct { char *alias; char *canon; } cpalias_t; cpalias_t cpaliases16[] = { { "chinese-gb18030", "cp1388" }, { "cp1027", "cp930" }, /* historical error */ { "cp290", "cp930" }, /* historical error */ { "cp936", "cp935" }, /* historical error */ { "japanese-1027", "cp930" }, /* historical error */ { "japanese-290", "cp930" }, /* historical error */ { "japanese-kana", "cp930" }, { "japanese-latin", "cp930" }, /* 930 and 939 DBCS are the same */ { "simplified-chinese", "cp935" }, { "traditional-chinese", "cp937" }, { NULL, NULL } }; static uni16_t *cur_uni16 = NULL; void charset_list_dbcs(void) { int i; int j; char *sep = ""; printf("DBCS host code pages (with aliases):\n"); for (i = 0; uni16[i].name != NULL; i++) { Boolean any = False; char *asep = " ("; printf("%s%s", sep, uni16[i].name); for (j = 0; cpaliases16[j].alias != NULL; j++) { if (!strcmp(cpaliases16[j].canon, uni16[i].name)) { printf("%s%s", asep, cpaliases16[j].alias); asep = ", "; any = True; } } if (any) printf(")"); sep = ", "; } printf("\n"); } /* * Translate a single DBCS EBCDIC character to Unicode. * * If EUO_BLANK_UNDEF is set, undisplayable characters are returned as * wide spaces (U+3000); otherwise they are returned as 0. */ ucs4_t ebcdic_dbcs_to_unicode(ebc_t c, unsigned flags) { int row, col; int ix; if (cur_uni16 == NULL || c < 0x100) return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; if (c == 0x4040) return 0x3000; row = (c >> 7) & 0x1ff; if (cur_uni16->ebc2u[row] == NULL) return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; col = (c & 0x7f) * 2; ix = ((cur_uni16->ebc2u[row][col] & 0xff) << 8) | (cur_uni16->ebc2u[row][col + 1] & 0xff); if (ix) return ix; else return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; } /* * Map a UCS-4 character to a DBCS EBCDIC character. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic_dbcs(ucs4_t u) { int row, col; int ix; if (cur_uni16 == NULL || !u) return 0; if (u == 0x3000) return 0x4040; row = (u >> 7) & 0x1ff; if (cur_uni16->u2ebc[row] == NULL) return 0; col = (u & 0x7f) * 2; ix = ((cur_uni16->u2ebc[row][col] & 0xff) << 8) | (cur_uni16->u2ebc[row][col + 1] & 0xff); return ix; } /* * Set the EBCDIC-to-Unicode DBCS translation table. * Returns 0 for success, -1 for failure. */ int set_uni_dbcs(const char *csname, const char **codepage, const char **display_charsets) { int i; const char *realname = csname; int rc = -1; /* Search for an alias. */ for (i = 0; cpaliases16[i].alias != NULL; i++) { if (!strcasecmp(csname, cpaliases16[i].alias)) { realname = cpaliases16[i].canon; break; } } /* Search for a match. */ for (i = 0; uni16[i].name != NULL; i++) { if (!strcasecmp(realname, uni16[i].name)) { cur_uni16 = &uni16[i]; *codepage = uni16[i].codepage; *display_charsets = uni16[i].display_charset; rc = 0; break; } } /* * If this fails (which we sometimes do on purpose), forget any * old setting. */ if (rc == -1) cur_uni16 = NULL; return rc; } #endif /*]*/ ibm-3270-3.3.10ga4/pr3287/3270ds.h0000644000175000017500000003372511254565704015241 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES AND GTRC * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, JEFF * SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * 3270ds.h * * Header file for the 3270 Data Stream Protocol. */ /* 3270 commands */ #define CMD_W 0x01 /* write */ #define CMD_RB 0x02 /* read buffer */ #define CMD_NOP 0x03 /* no-op */ #define CMD_EW 0x05 /* erase/write */ #define CMD_RM 0x06 /* read modified */ #define CMD_EWA 0x0d /* erase/write alternate */ #define CMD_RMA 0x0e /* read modified all */ #define CMD_EAU 0x0f /* erase all unprotected */ #define CMD_WSF 0x11 /* write structured field */ /* SNA 3270 commands */ #define SNA_CMD_RMA 0x6e /* read modified all */ #define SNA_CMD_EAU 0x6f /* erase all unprotected */ #define SNA_CMD_EWA 0x7e /* erase/write alternate */ #define SNA_CMD_W 0xf1 /* write */ #define SNA_CMD_RB 0xf2 /* read buffer */ #define SNA_CMD_WSF 0xf3 /* write structured field */ #define SNA_CMD_EW 0xf5 /* erase/write */ #define SNA_CMD_RM 0xf6 /* read modified */ /* 3270 orders */ #define ORDER_PT 0x05 /* program tab */ #define ORDER_GE 0x08 /* graphic escape */ #define ORDER_SBA 0x11 /* set buffer address */ #define ORDER_EUA 0x12 /* erase unprotected to address */ #define ORDER_IC 0x13 /* insert cursor */ #define ORDER_SF 0x1d /* start field */ #define ORDER_SA 0x28 /* set attribute */ #define ORDER_SFE 0x29 /* start field extended */ #define ORDER_YALE 0x2b /* Yale sub command */ #define ORDER_MF 0x2c /* modify field */ #define ORDER_RA 0x3c /* repeat to address */ #define FCORDER_NULL 0x00 /* format control: null */ #define FCORDER_FF 0x0c /* form feed */ #define FCORDER_CR 0x0d /* carriage return */ #define FCORDER_SO 0x0e /* shift out (DBCS subfield) */ #define FCORDER_SI 0x0f /* shift in (DBCS end) */ #define FCORDER_NL 0x15 /* new line */ #define FCORDER_EM 0x19 /* end of medium */ #define FCORDER_DUP 0x1c /* duplicate */ #define FCORDER_FM 0x1e /* field mark */ #define FCORDER_SUB 0x3f /* substitute */ #define FCORDER_EO 0xff /* eight ones */ /* SCS control code, some overlap orders */ #define SCS_BS 0x16 /* Back Space */ #define SCS_BEL 0x2f /* Bell Function */ #define SCS_CR 0x0d /* Carriage Return */ #define SCS_ENP 0x14 /* Enable Presentation */ #define SCS_FF 0x0c /* Forms Feed */ #define SCS_GE 0x08 /* Graphic Escape */ #define SCS_HT 0x05 /* Horizontal Tab */ #define SCS_INP 0x24 /* Inhibit Presentation */ #define SCS_IRS 0x1e /* Interchange-Record Separator */ #define SCS_LF 0x25 /* Line Feed */ #define SCS_NL 0x15 /* New Line */ #define SCS_SA 0x28 /* Set Attribute: */ #define SCS_SA_RESET 0x00 /* Reset all */ #define SCS_SA_HIGHLIGHT 0x41 /* Highlighting */ #define SCS_SA_CS 0x42 /* Character set */ #define SCS_SA_GRID 0xc2 /* Grid */ #define SCS_SET 0x2b /* Set: */ #define SCS_SHF 0xc1 /* Horizontal format */ #define SCS_SLD 0xc6 /* Line Density */ #define SCS_SVF 0xc2 /* Vertical Format */ #define SCS_SO 0x0e /* Shift out (DBCS subfield start) */ #define SCS_SI 0x0f /* Shift in (DBCS subfield end) */ #define SCS_TRN 0x35 /* Transparent */ #define SCS_VCS 0x04 /* Vertical Channel Select */ #define SCS_VT 0x0b /* Vertical Tab */ /* Structured fields */ #define SF_READ_PART 0x01 /* read partition */ #define SF_RP_QUERY 0x02 /* query */ #define SF_RP_QLIST 0x03 /* query list */ #define SF_RPQ_LIST 0x00 /* QCODE list */ #define SF_RPQ_EQUIV 0x40 /* equivalent+ QCODE list */ #define SF_RPQ_ALL 0x80 /* all */ #define SF_ERASE_RESET 0x03 /* erase/reset */ #define SF_ER_DEFAULT 0x00 /* default */ #define SF_ER_ALT 0x80 /* alternate */ #define SF_SET_REPLY_MODE 0x09 /* set reply mode */ #define SF_SRM_FIELD 0x00 /* field */ #define SF_SRM_XFIELD 0x01 /* extended field */ #define SF_SRM_CHAR 0x02 /* character */ #define SF_CREATE_PART 0x0c /* create partition */ #define CPFLAG_PROT 0x40 /* protected flag */ #define CPFLAG_COPY_PS 0x20 /* local copy to presentation space */ #define CPFLAG_BASE 0x07 /* base character set index */ #define SF_OUTBOUND_DS 0x40 /* outbound 3270 DS */ #define SF_TRANSFER_DATA 0xd0 /* file transfer open request */ /* Query replies */ #define QR_SUMMARY 0x80 /* summary */ #define QR_USABLE_AREA 0x81 /* usable area */ #define QR_IMAGE 0x82 /* image */ #define QR_TEXT_PART 0x83 /* text partitions */ #define QR_ALPHA_PART 0x84 /* alphanumeric partitions */ #define QR_CHARSETS 0x85 /* character sets */ #define QR_COLOR 0x86 /* color */ #define QR_HIGHLIGHTING 0x87 /* highlighting */ #define QR_REPLY_MODES 0x88 /* reply modes */ #define QR_FIELD_VAL 0x8a /* field validation */ #define QR_MSR_CTL 0x8b /* MSR control */ #define QR_OUTLINING 0x8c /* field outlining */ #define QR_PART_CHAR 0x8e /* partition characteristics */ #define QR_OEM_AUX 0x8f /* OEM auxiliary device */ #define QR_FMT_PRES 0x90 /* format presentation */ #define QR_DBCS_ASIA 0x91 /* DBCS-Asia */ #define QR_SAVE_RESTORE 0x92 /* save/restore format */ #define QR_PC3270 0x93 /* PC3270 */ #define QR_FMT_SAD 0x94 /* format storage auxiliary device */ #define QR_DDM 0x95 /* distributed data management */ #define QR_STG_POOLS 0x96 /* storage pools */ #define QR_DIA 0x97 /* document interchange architecture */ #define QR_DATA_CHAIN 0x98 /* data chaining */ #define QR_AUX_DEVICE 0x99 /* auxiliary device */ #define QR_3270_IPDS 0x9a /* 3270 IPDS */ #define QR_PDDS 0x9c /* product defined data stream */ #define QR_IBM_AUX 0x9e /* IBM auxiliary device */ #define QR_BEGIN_EOF 0x9f /* begin/end of file */ #define QR_DEVICE_CHAR 0xa0 /* device characteristics */ #define QR_RPQNAMES 0xa1 /* RPQ names */ #define QR_DATA_STREAMS 0xa2 /* data streams */ #define QR_IMP_PART 0xa6 /* implicit partition */ #define QR_PAPER_FEED 0xa7 /* paper feed techniques */ #define QR_TRANSPARENCY 0xa8 /* transparency */ #define QR_SPC 0xa9 /* settable printer characteristics */ #define QR_IOCA_AD 0xaa /* IOCA auxiliary device */ #define QR_CPR 0xab /* cooperative proc. requestor */ #define QR_SEGMENT 0xb0 /* segment */ #define QR_PROCEDURE 0xb1 /* procedure */ #define QR_LINE_TYPE 0xb2 /* line type */ #define QR_PORT 0xb3 /* port */ #define QR_GCOLOR 0xb4 /* graphic color */ #define QR_XDR 0xb5 /* extended drawing routine */ #define QR_GSS 0xb6 /* graphic symbol sets */ #define QR_NULL 0xff /* null */ #define BA_TO_ROW(ba) ((ba) / COLS) #define BA_TO_COL(ba) ((ba) % COLS) #define ROWCOL_TO_BA(r,c) (((r) * COLS) + c) #define INC_BA(ba) { (ba) = ((ba) + 1) % (COLS * ROWS); } #define DEC_BA(ba) { (ba) = (ba) ? (ba - 1) : ((COLS*ROWS) - 1); } /* Field attributes. */ #define FA_PRINTABLE 0xc0 /* these make the character "printable" */ #define FA_PROTECT 0x20 /* unprotected (0) / protected (1) */ #define FA_NUMERIC 0x10 /* alphanumeric (0) /numeric (1) */ #define FA_INTENSITY 0x0c /* display/selector pen detectable: */ #define FA_INT_NORM_NSEL 0x00 /* 00 normal, non-detect */ #define FA_INT_NORM_SEL 0x04 /* 01 normal, detectable */ #define FA_INT_HIGH_SEL 0x08 /* 10 intensified, detectable */ #define FA_INT_ZERO_NSEL 0x0c /* 11 nondisplay, non-detect */ #define FA_RESERVED 0x02 /* must be 0 */ #define FA_MODIFY 0x01 /* modified (1) */ /* Bits in the field attribute that are stored. */ #define FA_MASK (FA_PROTECT | FA_NUMERIC | FA_INTENSITY | FA_MODIFY) /* Tests for various attribute properties. */ #define FA_IS_MODIFIED(c) ((c) & FA_MODIFY) #define FA_IS_NUMERIC(c) ((c) & FA_NUMERIC) #define FA_IS_PROTECTED(c) ((c) & FA_PROTECT) #define FA_IS_SKIP(c) (((c) & FA_PROTECT) && ((c) & FA_NUMERIC)) #define FA_IS_ZERO(c) \ (((c) & FA_INTENSITY) == FA_INT_ZERO_NSEL) #define FA_IS_HIGH(c) \ (((c) & FA_INTENSITY) == FA_INT_HIGH_SEL) #define FA_IS_NORMAL(c) \ ( \ ((c) & FA_INTENSITY) == FA_INT_NORM_NSEL \ || \ ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \ ) #define FA_IS_SELECTABLE(c) \ ( \ ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \ || \ ((c) & FA_INTENSITY) == FA_INT_HIGH_SEL \ ) #define FA_IS_INTENSE(c) \ ((c & FA_INT_HIGH_SEL) == FA_INT_HIGH_SEL) /* Extended attributes */ #define XA_ALL 0x00 #define XA_3270 0xc0 #define XA_VALIDATION 0xc1 #define XAV_FILL 0x04 #define XAV_ENTRY 0x02 #define XAV_TRIGGER 0x01 #define XA_OUTLINING 0xc2 #define XAO_UNDERLINE 0x01 #define XAO_RIGHT 0x02 #define XAO_OVERLINE 0x04 #define XAO_LEFT 0x08 #define XA_HIGHLIGHTING 0x41 #define XAH_DEFAULT 0x00 #define XAH_NORMAL 0xf0 #define XAH_BLINK 0xf1 #define XAH_REVERSE 0xf2 #define XAH_UNDERSCORE 0xf4 #define XAH_INTENSIFY 0xf8 #define XA_FOREGROUND 0x42 #define XAC_DEFAULT 0x00 #define XA_CHARSET 0x43 #define XA_BACKGROUND 0x45 #define XA_TRANSPARENCY 0x46 #define XAT_DEFAULT 0x00 #define XAT_OR 0xf0 #define XAT_XOR 0xf1 #define XAT_OPAQUE 0xff #define XA_INPUT_CONTROL 0xfe #define XAI_DISABLED 0x00 #define XAI_ENABLED 0x01 /* WCC definitions */ #define WCC_RESET(c) ((c) & 0x40) #define WCC_START_PRINTER(c) ((c) & 0x08) #define WCC_SOUND_ALARM(c) ((c) & 0x04) #define WCC_KEYBOARD_RESTORE(c) ((c) & 0x02) #define WCC_RESET_MDT(c) ((c) & 0x01) /* AIDs */ #define AID_NO 0x60 /* no AID generated */ #define AID_QREPLY 0x61 #define AID_ENTER 0x7d #define AID_PF1 0xf1 #define AID_PF2 0xf2 #define AID_PF3 0xf3 #define AID_PF4 0xf4 #define AID_PF5 0xf5 #define AID_PF6 0xf6 #define AID_PF7 0xf7 #define AID_PF8 0xf8 #define AID_PF9 0xf9 #define AID_PF10 0x7a #define AID_PF11 0x7b #define AID_PF12 0x7c #define AID_PF13 0xc1 #define AID_PF14 0xc2 #define AID_PF15 0xc3 #define AID_PF16 0xc4 #define AID_PF17 0xc5 #define AID_PF18 0xc6 #define AID_PF19 0xc7 #define AID_PF20 0xc8 #define AID_PF21 0xc9 #define AID_PF22 0x4a #define AID_PF23 0x4b #define AID_PF24 0x4c #define AID_OICR 0xe6 #define AID_MSR_MHS 0xe7 #define AID_SELECT 0x7e #define AID_PA1 0x6c #define AID_PA2 0x6e #define AID_PA3 0x6b #define AID_CLEAR 0x6d #define AID_SYSREQ 0xf0 #define AID_SF 0x88 #define SFID_QREPLY 0x81 /* Colors */ #define HOST_COLOR_NEUTRAL_BLACK 0 #define HOST_COLOR_BLUE 1 #define HOST_COLOR_RED 2 #define HOST_COLOR_PINK 3 #define HOST_COLOR_GREEN 4 #define HOST_COLOR_TURQUOISE 5 #define HOST_COLOR_YELLOW 6 #define HOST_COLOR_NEUTRAL_WHITE 7 #define HOST_COLOR_BLACK 8 #define HOST_COLOR_DEEP_BLUE 9 #define HOST_COLOR_ORANGE 10 #define HOST_COLOR_PURPLE 11 #define HOST_COLOR_PALE_GREEN 12 #define HOST_COLOR_PALE_TURQUOISE 13 #define HOST_COLOR_GREY 14 #define HOST_COLOR_WHITE 15 /* Data stream manipulation macros. */ #define MASK32 0xff000000U #define MASK24 0x00ff0000U #define MASK16 0x0000ff00U #define MASK08 0x000000ffU #define MINUS1 0xffffffffU #define SET16(ptr, val) { \ *((ptr)++) = ((val) & MASK16) >> 8; \ *((ptr)++) = ((val) & MASK08); \ } #define GET16(val, ptr) { \ (val) = *((ptr)+1); \ (val) += *(ptr) << 8; \ } #define SET32(ptr, val) { \ *((ptr)++) = ((val) & MASK32) >> 24; \ *((ptr)++) = ((val) & MASK24) >> 16; \ *((ptr)++) = ((val) & MASK16) >> 8; \ *((ptr)++) = ((val) & MASK08); \ } #define HIGH8(s) (((s) >> 8) & 0xff) #define LOW8(s) ((s) & 0xff) /* Other EBCDIC control codes. */ #define EBC_null 0x00 #define EBC_ff 0x0c #define EBC_cr 0x0d #define EBC_so 0x0e #define EBC_si 0x0f #define EBC_nl 0x15 #define EBC_em 0x19 #define EBC_dup 0x1c #define EBC_fm 0x1e #define EBC_sub 0x3f #define EBC_space 0x40 #define EBC_nobreakspace 0x41 #define EBC_period 0x4b #define EBC_ampersand 0x50 #define EBC_underscore 0x6d #define EBC_greater 0x6e #define EBC_question 0x6f #define EBC_Yacute 0xad #define EBC_diaeresis 0xbd #define EBC_minus 0xca #define EBC_0 0xf0 #define EBC_9 0xf9 #define EBC_eo 0xff #define EBC_less 0x4c #define EBC_greaer 0x6e #define EBC_P 0xd7 #define EBC_M 0xd4 #define EBC_U 0xe4 /* Unicode private-use definitions. */ #define UPRIV_GE_00 0xf700 /* first GE */ #define UPRIV_GE_ff 0xf7ff /* last GE */ #define UPRIV_sub 0xf8fc #define UPRIV_eo 0xf8fd #define UPRIV_fm 0xf8fe #define UPRIV_dup 0xf8ff /* BIND definitions. */ #define BIND_RU 0x31 #define BIND_OFF_MAXRU_SEC 10 #define BIND_OFF_MAXRU_PRI 11 #define BIND_OFF_RD 20 #define BIND_OFF_CD 21 #define BIND_OFF_RA 22 #define BIND_OFF_CA 23 #define BIND_OFF_SSIZE 24 #define BIND_OFF_PLU_NAME_LEN 27 #define BIND_PLU_NAME_MAX 8 #define BIND_OFF_PLU_NAME 28 /* Screen sizes. */ #define MODEL_2_ROWS 24 #define MODEL_2_COLS 80 #define MODEL_3_ROWS 32 #define MODEL_3_COLS 80 #define MODEL_4_ROWS 43 #define MODEL_4_COLS 80 #define MODEL_5_ROWS 27 #define MODEL_5_COLS 132 ibm-3270-3.3.10ga4/pr3287/proxy.h0000644000175000017500000000367311254565704015477 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxy.h * Common definitions for proxy. */ #define PROXY_PASSTHRU "passthru" #define PORT_PASSTHRU "3514" #define PROXY_HTTP "http" #define PORT_HTTP "3128" #define PROXY_TELNET "telnet" #define PROXY_SOCKS4 "socks4" #define PORT_SOCKS4 "1080" #define PROXY_SOCKS4A "socks4a" #define PORT_SOCKS4A "1080" #define PROXY_SOCKS5 "socks5" #define PORT_SOCKS5 "1080" #define PROXY_SOCKS5D "socks5d" #define PORT_SOCKS5D "1080" ibm-3270-3.3.10ga4/pr3287/proxyc.h0000644000175000017500000000334311254565704015634 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxyc.h * Declarations for proxy.c. */ extern int proxy_setup(char **phost, char **pport); extern int proxy_negotiate(int type, int fd, char *host, unsigned short port); extern char *proxy_type_name(int type); ibm-3270-3.3.10ga4/pr3287/see.c0000644000175000017500000002356011254565704015062 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * see.c * 3270 data stream decode functions. * */ #include "globals.h" #if defined(X3270_TRACE) /*[*/ #include #include #include #include #include "3270ds.h" #include "tablesc.h" #include "utf8c.h" #include "seec.h" #include "unicodec.h" const char * unknown(unsigned char value) { static char buf[64]; (void) sprintf(buf, "unknown[0x%x]", value); return buf; } const char * see_ebc(unsigned char ch) { static char buf[8]; char mb[16]; ucs4_t uc; switch (ch) { case FCORDER_NULL: return "NULL"; case FCORDER_SUB: return "SUB"; case FCORDER_DUP: return "DUP"; case FCORDER_FM: return "FM"; case FCORDER_FF: return "FF"; case FCORDER_CR: return "CR"; case FCORDER_NL: return "NL"; case FCORDER_EM: return "EM"; case FCORDER_EO: return "EO"; case FCORDER_SI: return "SI"; case FCORDER_SO: return "SO"; } if (ebcdic_to_multibyte_x(ch, CS_BASE, mb, sizeof(mb), EUO_NONE, &uc) && (mb[0] != ' ' || ch == 0x40)) strcpy(buf, mb); else (void) sprintf(buf, "X'%02X'", ch); return buf; } const char * see_aid(unsigned char code) { switch (code) { case AID_NO: return "NoAID"; case AID_ENTER: return "Enter"; case AID_PF1: return "PF1"; case AID_PF2: return "PF2"; case AID_PF3: return "PF3"; case AID_PF4: return "PF4"; case AID_PF5: return "PF5"; case AID_PF6: return "PF6"; case AID_PF7: return "PF7"; case AID_PF8: return "PF8"; case AID_PF9: return "PF9"; case AID_PF10: return "PF10"; case AID_PF11: return "PF11"; case AID_PF12: return "PF12"; case AID_PF13: return "PF13"; case AID_PF14: return "PF14"; case AID_PF15: return "PF15"; case AID_PF16: return "PF16"; case AID_PF17: return "PF17"; case AID_PF18: return "PF18"; case AID_PF19: return "PF19"; case AID_PF20: return "PF20"; case AID_PF21: return "PF21"; case AID_PF22: return "PF22"; case AID_PF23: return "PF23"; case AID_PF24: return "PF24"; case AID_OICR: return "OICR"; case AID_MSR_MHS: return "MSR_MHS"; case AID_SELECT: return "Select"; case AID_PA1: return "PA1"; case AID_PA2: return "PA2"; case AID_PA3: return "PA3"; case AID_CLEAR: return "Clear"; case AID_SYSREQ: return "SysReq"; case AID_QREPLY: return "QueryReplyAID"; default: return unknown(code); } } const char * see_attr(unsigned char fa) { static char buf[256]; const char *paren = "("; buf[0] = '\0'; if (fa & FA_PROTECT) { (void) strcat(buf, paren); (void) strcat(buf, "protected"); paren = ","; if (fa & FA_NUMERIC) { (void) strcat(buf, paren); (void) strcat(buf, "skip"); paren = ","; } } else if (fa & FA_NUMERIC) { (void) strcat(buf, paren); (void) strcat(buf, "numeric"); paren = ","; } switch (fa & FA_INTENSITY) { case FA_INT_NORM_NSEL: break; case FA_INT_NORM_SEL: (void) strcat(buf, paren); (void) strcat(buf, "detectable"); paren = ","; break; case FA_INT_HIGH_SEL: (void) strcat(buf, paren); (void) strcat(buf, "intensified"); paren = ","; break; case FA_INT_ZERO_NSEL: (void) strcat(buf, paren); (void) strcat(buf, "nondisplay"); paren = ","; break; } if (fa & FA_MODIFY) { (void) strcat(buf, paren); (void) strcat(buf, "modified"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(default)"); return buf; } static const char * see_highlight(unsigned char setting) { switch (setting) { case XAH_DEFAULT: return "default"; case XAH_NORMAL: return "normal"; case XAH_BLINK: return "blink"; case XAH_REVERSE: return "reverse"; case XAH_UNDERSCORE: return "underscore"; case XAH_INTENSIFY: return "intensify"; default: return unknown(setting); } } const char * see_color(unsigned char setting) { static const char *color_name[] = { "neutralBlack", "blue", "red", "pink", "green", "turquoise", "yellow", "neutralWhite", "black", "deepBlue", "orange", "purple", "paleGreen", "paleTurquoise", "grey", "white" }; if (setting == XAC_DEFAULT) return "default"; else if (setting < 0xf0) return unknown(setting); else return color_name[setting - 0xf0]; } static const char * see_transparency(unsigned char setting) { switch (setting) { case XAT_DEFAULT: return "default"; case XAT_OR: return "or"; case XAT_XOR: return "xor"; case XAT_OPAQUE: return "opaque"; default: return unknown(setting); } } static const char * see_validation(unsigned char setting) { static char buf[64]; const char *paren = "("; (void) strcpy(buf, ""); if (setting & XAV_FILL) { (void) strcat(buf, paren); (void) strcat(buf, "fill"); paren = ","; } if (setting & XAV_ENTRY) { (void) strcat(buf, paren); (void) strcat(buf, "entry"); paren = ","; } if (setting & XAV_TRIGGER) { (void) strcat(buf, paren); (void) strcat(buf, "trigger"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(none)"); return buf; } static const char * see_outline(unsigned char setting) { static char buf[64]; const char *paren = "("; (void) strcpy(buf, ""); if (setting & XAO_UNDERLINE) { (void) strcat(buf, paren); (void) strcat(buf, "underline"); paren = ","; } if (setting & XAO_RIGHT) { (void) strcat(buf, paren); (void) strcat(buf, "right"); paren = ","; } if (setting & XAO_OVERLINE) { (void) strcat(buf, paren); (void) strcat(buf, "overline"); paren = ","; } if (setting & XAO_LEFT) { (void) strcat(buf, paren); (void) strcat(buf, "left"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(none)"); return buf; } static const char * see_input_control(unsigned char setting) { switch (setting) { case XAI_DISABLED: return "disabled"; case XAI_ENABLED: return "enabled"; default: return unknown(setting); } } const char * see_efa(unsigned char efa, unsigned char value) { static char buf[64]; switch (efa) { case XA_ALL: (void) sprintf(buf, " all(%x)", value); break; case XA_3270: (void) sprintf(buf, " 3270%s", see_attr(value)); break; case XA_VALIDATION: (void) sprintf(buf, " validation%s", see_validation(value)); break; case XA_OUTLINING: (void) sprintf(buf, " outlining(%s)", see_outline(value)); break; case XA_HIGHLIGHTING: (void) sprintf(buf, " highlighting(%s)", see_highlight(value)); break; case XA_FOREGROUND: (void) sprintf(buf, " foreground(%s)", see_color(value)); break; case XA_CHARSET: (void) sprintf(buf, " charset(%x)", value); break; case XA_BACKGROUND: (void) sprintf(buf, " background(%s)", see_color(value)); break; case XA_TRANSPARENCY: (void) sprintf(buf, " transparency(%s)", see_transparency(value)); break; case XA_INPUT_CONTROL: (void) sprintf(buf, " input-control(%s)", see_input_control(value)); break; default: (void) sprintf(buf, " %s[0x%x]", unknown(efa), value); break; } return buf; } const char * see_efa_only(unsigned char efa) { switch (efa) { case XA_ALL: return "all"; case XA_3270: return "3270"; case XA_VALIDATION: return "validation"; case XA_OUTLINING: return "outlining"; case XA_HIGHLIGHTING: return "highlighting"; case XA_FOREGROUND: return "foreground"; case XA_CHARSET: return "charset"; case XA_BACKGROUND: return "background"; case XA_TRANSPARENCY: return "transparency"; default: return unknown(efa); } } const char * see_qcode(unsigned char id) { static char buf[64]; switch (id) { case QR_CHARSETS: return "CharacterSets"; case QR_IMP_PART: return "ImplicitPartition"; case QR_SUMMARY: return "Summary"; case QR_USABLE_AREA: return "UsableArea"; case QR_COLOR: return "Color"; case QR_HIGHLIGHTING: return "Highlighting"; case QR_REPLY_MODES: return "ReplyModes"; case QR_DBCS_ASIA: return "DbcsAsia"; case QR_ALPHA_PART: return "AlphanumericPartitions"; case QR_DDM: return "DistributedDataManagement"; case QR_RPQNAMES: return "RPQNames"; default: (void) sprintf(buf, "unknown[0x%x]", id); return buf; } } #endif /*]*/ ibm-3270-3.3.10ga4/pr3287/sf.c0000644000175000017500000004154611254565701014717 0ustar bastianbastian/* * Copyright (c) 1994-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * sf.c * This module handles 3270 structured fields. * */ #include #include #include #include "globals.h" #include "3270ds.h" #include #include "ctlrc.h" #if defined(X3270_FT) /*[*/ #include "ft_dftc.h" #endif /*]*/ #include "sfc.h" #include "telnetc.h" #include "trace_dsc.h" /* Externals: ctlr.c */ extern Boolean screen_alt; extern unsigned char reply_mode; extern int crm_nattr; extern unsigned char crm_attr[]; /* Statics */ static Boolean qr_in_progress = False; static enum pds sf_read_part(unsigned char buf[], unsigned buflen); static enum pds sf_erase_reset(unsigned char buf[], int buflen); static enum pds sf_set_reply_mode(unsigned char buf[], int buflen); static enum pds sf_outbound_ds(unsigned char buf[], int buflen); static void query_reply_start(void); static void do_query_reply(unsigned char code); static void query_reply_end(void); /* Some permanent substitutions. */ #define maxROWS 72 #define maxCOLS 66 #define char_width 10 #define char_height 20 #define standard_font 0 static unsigned char supported_replies[] = { QR_SUMMARY, /* 0x80 */ QR_USABLE_AREA, /* 0x81 */ QR_ALPHA_PART, /* 0x84 */ QR_CHARSETS, /* 0x85 */ QR_COLOR, /* 0x86 */ QR_HIGHLIGHTING, /* 0x87 */ QR_REPLY_MODES, /* 0x88 */ #if defined(X3270_DBCS) /*[*/ QR_DBCS_ASIA, /* 0x91 */ #endif /*]*/ QR_IMP_PART, /* 0xa6 */ #if defined(X3270_FT) /*[*/ QR_DDM, /* 0x95 */ #endif /*]*/ }; #define NSR (sizeof(supported_replies)/sizeof(unsigned char)) /* * Process a 3270 Write Structured Field command */ enum pds write_structured_field(unsigned char buf[], int buflen) { unsigned short fieldlen; unsigned char *cp = buf; Boolean first = True; enum pds rv = PDS_OKAY_NO_OUTPUT; enum pds rv_this = PDS_OKAY_NO_OUTPUT; Boolean bad_cmd = False; /* Skip the WSF command itself. */ cp++; buflen--; /* Interpret fields. */ while (buflen > 0) { if (first) trace_ds(" "); else trace_ds("< WriteStructuredField "); first = False; /* Pick out the field length. */ if (buflen < 2) { trace_ds("error: single byte at end of message\n"); return rv ? rv : PDS_BAD_CMD; } fieldlen = (cp[0] << 8) + cp[1]; if (fieldlen == 0) fieldlen = buflen; if (fieldlen < 3) { trace_ds("error: field length %d too small\n", fieldlen); return rv ? rv : PDS_BAD_CMD; } if ((int)fieldlen > buflen) { trace_ds("error: field length %d exceeds remaining " "message length %d\n", fieldlen, buflen); return rv ? rv : PDS_BAD_CMD; } /* Dispatch on the ID. */ switch (cp[2]) { case SF_READ_PART: trace_ds("ReadPartition"); rv_this = sf_read_part(cp, (int)fieldlen); break; case SF_ERASE_RESET: trace_ds("EraseReset"); rv_this = sf_erase_reset(cp, (int)fieldlen); break; case SF_SET_REPLY_MODE: trace_ds("SetReplyMode"); rv_this = sf_set_reply_mode(cp, (int)fieldlen); break; case SF_OUTBOUND_DS: trace_ds("OutboundDS"); rv_this = sf_outbound_ds(cp, (int)fieldlen); break; #if defined(X3270_FT) /*[*/ case SF_TRANSFER_DATA: /* File transfer data */ trace_ds("FileTransferData"); ft_dft_data(cp, (int)fieldlen); break; #endif /*]*/ default: trace_ds("unsupported ID 0x%02x\n", cp[2]); rv_this = PDS_BAD_CMD; break; } /* * Accumulate errors or output flags. * One real ugliness here is that if we have already * generated some output, then we have already positively * acknowledged the request, so if we fail here, we have no * way to return the error indication. */ if (rv_this < 0) bad_cmd = True; else rv |= rv_this; /* Skip to the next field. */ cp += fieldlen; buflen -= fieldlen; } if (first) trace_ds(" (null)\n"); if (bad_cmd && !rv) return PDS_BAD_CMD; else return rv; } static enum pds sf_read_part(unsigned char buf[], unsigned buflen) { unsigned char partition; unsigned i; int any = 0; const char *comma = ""; if (buflen < 5) { trace_ds(" error: field length %d too small\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; trace_ds("(0x%02x)", partition); switch (buf[4]) { case SF_RP_QUERY: trace_ds(" Query"); if (partition != 0xff) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); query_reply_start(); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ if (dbcs || supported_replies[i] != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(supported_replies[i]); } query_reply_end(); break; case SF_RP_QLIST: trace_ds(" QueryList "); if (partition != 0xff) { trace_ds("error: illegal partition\n"); return PDS_BAD_CMD; } if (buflen < 6) { trace_ds("error: missing request type\n"); return PDS_BAD_CMD; } query_reply_start(); switch (buf[5]) { case SF_RPQ_LIST: trace_ds("List("); if (buflen < 7) { trace_ds(")\n"); do_query_reply(QR_NULL); } else { for (i = 6; i < buflen; i++) { trace_ds("%s%s", comma, see_qcode(buf[i])); comma = ","; } trace_ds(")\n"); for (i = 0; i < NSR; i++) { if (memchr((char *)&buf[6], (char)supported_replies[i], buflen-6) #if defined(X3270_DBCS) /*[*/ && (dbcs || supported_replies[i] != QR_DBCS_ASIA) #endif /*]*/ ) { do_query_reply(supported_replies[i]); any++; } } if (!any) { do_query_reply(QR_NULL); } } break; case SF_RPQ_EQUIV: trace_ds("Equivlent+List("); for (i = 6; i < buflen; i++) { trace_ds("%s%s", comma, see_qcode(buf[i])); comma = ","; } trace_ds(")\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || supported_replies[i] != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(supported_replies[i]); break; case SF_RPQ_ALL: trace_ds("All\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || supported_replies[i] != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(supported_replies[i]); break; default: trace_ds("unknown request type 0x%02x\n", buf[5]); return PDS_BAD_CMD; } query_reply_end(); break; case SNA_CMD_RMA: trace_ds(" ReadModifiedAll"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); return PDS_BAD_CMD; break; case SNA_CMD_RB: trace_ds(" ReadBuffer"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); return PDS_BAD_CMD; break; case SNA_CMD_RM: trace_ds(" ReadModified"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); return PDS_BAD_CMD; break; default: trace_ds(" unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_OUTPUT; } static enum pds sf_erase_reset(unsigned char buf[], int buflen) { if (buflen != 4) { trace_ds(" error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } switch (buf[3]) { case SF_ER_DEFAULT: trace_ds(" Default\n"); break; case SF_ER_ALT: trace_ds(" Alternate\n"); break; default: trace_ds(" unknown type 0x%02x\n", buf[3]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static enum pds sf_set_reply_mode(unsigned char buf[], int buflen) { unsigned char partition; if (buflen < 5) { trace_ds(" error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; trace_ds("(0x%02x)", partition); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } switch (buf[4]) { case SF_SRM_FIELD: trace_ds(" Field\n"); break; case SF_SRM_XFIELD: trace_ds(" ExtendedField\n"); break; case SF_SRM_CHAR: trace_ds(" Character"); break; default: trace_ds(" unknown mode 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static enum pds sf_outbound_ds(unsigned char buf[], int buflen) { if (buflen < 5) { trace_ds(" error: field length %d too short\n", buflen); return PDS_BAD_CMD; } trace_ds("(0x%02x)", buf[3]); if (buf[3] != 0x00) { trace_ds(" error: illegal partition 0x%0x\n", buf[3]); return PDS_BAD_CMD; } switch (buf[4]) { case SNA_CMD_W: trace_ds(" Write"); if (buflen > 5) ctlr_write(&buf[4], buflen-4, False); else trace_ds("\n"); break; case SNA_CMD_EW: trace_ds(" EraseWrite"); if (buflen > 5) ctlr_write(&buf[4], buflen-4, True); else trace_ds("\n"); break; case SNA_CMD_EWA: trace_ds(" EraseWriteAlternate"); if (buflen > 5) ctlr_write(&buf[4], buflen-4, True); else trace_ds("\n"); break; case SNA_CMD_EAU: trace_ds(" EraseAllUnprotected\n"); break; default: trace_ds(" unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static void query_reply_start(void) { obptr = obuf; space3270out(1); *obptr++ = AID_SF; qr_in_progress = True; } static void do_query_reply(unsigned char code) { int len; unsigned i; const char *comma = ""; int obptr0 = obptr - obuf; unsigned char *obptr_len; unsigned short num, denom; if (qr_in_progress) { trace_ds("> StructuredField\n"); qr_in_progress = False; } space3270out(4); obptr += 2; /* skip length for now */ *obptr++ = SFID_QREPLY; *obptr++ = code; switch (code) { case QR_CHARSETS: trace_ds("> QueryReply(CharacterSets)\n"); space3270out(64); #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x8e; /* flags: GE, CGCSGID, DBCS */ else #endif /*]*/ *obptr++ = 0x82; /* flags: GE, CGCSGID present */ *obptr++ = 0x00; /* more flags */ *obptr++ = char_width; /* SDW */ *obptr++ = char_height; /* SDW */ *obptr++ = 0x00; /* no load PS */ *obptr++ = 0x00; *obptr++ = 0x00; *obptr++ = 0x00; #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x0b; /* DL (11 bytes) */ else #endif /*]*/ *obptr++ = 0x07; /* DL (7 bytes) */ *obptr++ = 0x00; /* SET 0: */ #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x00; /* FLAGS: non-load, single- plane, single-bute */ else #endif /*]*/ *obptr++ = 0x10; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ *obptr++ = 0x00; /* LCID 0 */ #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x00; /* SW 0 */ *obptr++ = 0x00; /* SH 0 */ *obptr++ = 0x00; /* SUBSN */ *obptr++ = 0x00; /* SUBSN */ } #endif /*]*/ SET32(obptr, cgcsgid); /* CGCSGID */ if (!standard_font) { /* special 3270 font, includes APL */ *obptr++ = 0x01;/* SET 1: */ *obptr++ = 0x10;/* FLAGS: non-loadable, single-plane, single-byte, no compare */ *obptr++ = 0xf1;/* LCID */ #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x00;/* SW 0 */ *obptr++ = 0x00;/* SH 0 */ *obptr++ = 0x00;/* SUBSN */ *obptr++ = 0x00;/* SUBSN */ } #endif /*]*/ *obptr++ = 0x03;/* CGCSGID: 3179-style APL2 */ *obptr++ = 0xc3; *obptr++ = 0x01; *obptr++ = 0x36; } #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x80; /* SET 0x80: */ *obptr++ = 0x20; /* FLAGS: DBCS */ *obptr++ = 0xf8; /* LCID: 0xf8 */ *obptr++ = char_width * 2; /* SW */ *obptr++ = char_height; /* SH */ *obptr++ = 0x41; /* SUBSN */ *obptr++ = 0x7f; /* SUBSN */ SET32(obptr, cgcsgid_dbcs); /* CGCSGID */ } #endif /*]*/ break; case QR_IMP_PART: trace_ds("> QueryReply(ImplicitPartition)\n"); space3270out(13); *obptr++ = 0x0; /* reserved */ *obptr++ = 0x0; *obptr++ = 0x0b; /* length of display size */ *obptr++ = 0x01; /* "implicit partition size" */ *obptr++ = 0x00; /* reserved */ SET16(obptr, 72); /* implicit partition width */ SET16(obptr, 66); /* implicit partition height */ SET16(obptr, maxCOLS); /* alternate height */ SET16(obptr, maxROWS); /* alternate width */ break; case QR_NULL: trace_ds("> QueryReply(Null)\n"); break; case QR_SUMMARY: trace_ds("> QueryReply(Summary("); space3270out(NSR); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ if (dbcs || supported_replies[i] != QR_DBCS_ASIA) { #endif /*]*/ trace_ds("%s%s", comma, see_qcode(supported_replies[i])); comma = ","; *obptr++ = supported_replies[i]; #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ } trace_ds("))\n"); break; case QR_USABLE_AREA: trace_ds("> QueryReply(UsableArea)\n"); space3270out(19); *obptr++ = 0x01; /* 12/14-bit addressing */ *obptr++ = 0x00; /* no special character features */ SET16(obptr, maxCOLS); /* usable width */ SET16(obptr, maxROWS); /* usable height */ *obptr++ = 0x01; /* units (mm) */ num = /*display_widthMM()*/ 8*5/4; denom = /*display_width()*/ 7 * 72; while (!(num %2) && !(denom % 2)) { num /= 2; denom /= 2; } SET16(obptr, (int)num); /* Xr numerator */ SET16(obptr, (int)denom); /* Xr denominator */ num = /*display_heightMM()*/ 11*5/4; denom = /*display_height()*/ 9*66; while (!(num %2) && !(denom % 2)) { num /= 2; denom /= 2; } SET16(obptr, (int)num); /* Yr numerator */ SET16(obptr, (int)denom); /* Yr denominator */ *obptr++ = char_width; /* AW */ *obptr++ = char_height; /* AH */ SET16(obptr, 0); /* buffer */ break; case QR_COLOR: trace_ds("> QueryReply(Color)\n"); space3270out(4 + 2*15); *obptr++ = 0x00; /* no options */ *obptr++ = 16; /* report on 16 colors */ *obptr++ = 0x00; /* default color: */ *obptr++ = 0xf0 + HOST_COLOR_GREEN; /* green */ for (i = 0xf1; i <= 0xff; i++) { *obptr++ = i; *obptr++ = i; } break; case QR_HIGHLIGHTING: trace_ds("> QueryReply(Highlighting)\n"); space3270out(11); *obptr++ = 5; /* report on 5 pairs */ *obptr++ = XAH_DEFAULT; /* default: */ *obptr++ = XAH_NORMAL; /* normal */ *obptr++ = XAH_BLINK; /* blink: */ *obptr++ = XAH_BLINK; /* blink */ *obptr++ = XAH_REVERSE; /* reverse: */ *obptr++ = XAH_REVERSE; /* reverse */ *obptr++ = XAH_UNDERSCORE; /* underscore: */ *obptr++ = XAH_UNDERSCORE; /* underscore */ *obptr++ = XAH_INTENSIFY; /* intensify: */ *obptr++ = XAH_INTENSIFY; /* intensify */ break; case QR_REPLY_MODES: trace_ds("> QueryReply(ReplyModes)\n"); space3270out(3); *obptr++ = SF_SRM_FIELD; *obptr++ = SF_SRM_XFIELD; *obptr++ = SF_SRM_CHAR; break; #if defined(X3270_DBCS) /*[*/ case QR_DBCS_ASIA: /* XXX: Should we support this, even when not in DBCS mode? */ trace_ds("> QueryReply(DbcsAsia)\n"); space3270out(7); *obptr++ = 0x00; /* flags (none) */ *obptr++ = 0x03; /* field length 3 */ *obptr++ = 0x01; /* SI/SO supported */ *obptr++ = 0x80; /* character set ID 0x80 */ *obptr++ = 0x03; /* field length 3 */ *obptr++ = 0x02; /* input control */ *obptr++ = 0x01; /* creation supported */ break; #endif /*]*/ case QR_ALPHA_PART: trace_ds("> QueryReply(AlphanumericPartitions)\n"); space3270out(4); *obptr++ = 0; /* 1 partition */ SET16(obptr, maxROWS*maxCOLS); /* buffer space */ *obptr++ = 0; /* no special features */ break; #if defined(X3270_FT) /*[*/ case QR_DDM: trace_ds("> QueryReply(DistributedDataManagement)\n"); space3270out(8); SET16(obptr,0); /* set reserved field to 0 */ SET16(obptr,2048); /* set inbound length limit */ SET16(obptr,2048); /* set outbound length limit */ SET16(obptr,0x0101); /* NSS=01, DDMSS=01 */ break; #endif /*]*/ default: return; /* internal error */ } obptr_len = obuf + obptr0; len = (obptr - obuf) - obptr0; SET16(obptr_len, len); } static void query_reply_end(void) { net_output(); } ibm-3270-3.3.10ga4/pr3287/Makefile.in0000644000175000017500000000547011254565701016204 0ustar bastianbastian# Copyright (c) 1999-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the names of Paul Mattes nor the names of his contributors # may be used to endorse or promote products derived from this software # without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Makefile for pr3287 RM = rm -f CC = @CC@ all: pr3287 prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ MANDIR = @mandir@ BINDIR = @bindir@ sysconfdir = @sysconfdir@ #CDEBUGFLAGS = -g -Wall XCPPFLAGS = @CPPFLAGS@ @XANSI@ @XPRECOMP@ CFLAGS = @CFLAGS@ -DPR3287=1 $(XCPPFLAGS) $(CDEBUGFLAGS) @SSL@ @DBCS@ \ -DLIBX3270DIR=\"@LIBX3270DIR@\" LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ INSTALL = @INSTALL@ SRCS = pr3287.c ctlr.c trace_ds.c tables.c telnet.c sf.c charset.c resolver.c \ see.c proxy.c unicode.c unicode_dbcs.c utf8.c OBJECTS = pr3287.o ctlr.o trace_ds.o tables.o telnet.o sf.o charset.o \ resolver.o see.o proxy.o unicode.o unicode_dbcs.o utf8.o version.o: version.txt mkversion.sh @chmod +x mkversion.sh version.txt sh ./mkversion.sh $(CC) pr3287 pr3287: $(OBJECTS) version.o $(CC) -o $@ $(OBJECTS) version.o $(LDFLAGS) $(LIBS) install: pr3287 [ -d $(DESTDIR)$(BINDIR) ] || \ mkdir -p $(DESTDIR)$(BINDIR) $(INSTALL) pr3287 $(DESTDIR)$(BINDIR)/pr3287 install.man: [ -d $(DESTDIR)$(MANDIR)/man1 ] || \ mkdir -p $(DESTDIR)$(MANDIR)/man1 $(INSTALL) pr3287.man $(DESTDIR)$(MANDIR)/man1/pr3287.1 clean: $(RM) pr3287 *.o depend: gccmakedep $(XCPPFLAGS) -s "# DO NOT DELETE" $(SRCS) # ------------------------------------------------------------------------- # dependencies generated by makedepend # DO NOT DELETE ibm-3270-3.3.10ga4/pr3287/telnet.c0000644000175000017500000013302611254565701015575 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * telnet.c * This module initializes and manages a telnet socket to * the given IBM host. */ #include "globals.h" #if defined(_WIN32) /*[*/ #include #include #undef AF_INET6 #else /*][*/ #include #include #include #include #endif /*]*/ #define TELCMDS 1 #define TELOPTS 1 #include "arpa_telnet.h" #include #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #include #if defined(HAVE_LIBSSL) /*[*/ #include #include #endif /*]*/ #include "tn3270e.h" #include "ctlrc.h" #include "telnetc.h" #if !defined(TELOPT_STARTTLS) /*[*/ #define TELOPT_STARTTLS 46 #endif /*]*/ #define TLS_FOLLOWS 1 extern FILE *tracef; extern int ignoreeoj; extern int ssl_host; extern unsigned long eoj_timeout; extern void pr3287_exit(int); /* connection state */ enum cstate { NOT_CONNECTED, /* no socket, unknown mode */ PENDING, /* connection pending */ CONNECTED_INITIAL, /* connected, no mode yet */ CONNECTED_ANSI, /* connected in NVT ANSI mode */ CONNECTED_3270, /* connected in old-style 3270 mode */ CONNECTED_INITIAL_E, /* connected in TN3270E mode, unnegotiated */ CONNECTED_NVT, /* connected in TN3270E mode, NVT mode */ CONNECTED_SSCP, /* connected in TN3270E mode, SSCP-LU mode */ CONNECTED_TN3270E /* connected in TN3270E mode, 3270 mode */ }; enum cstate cstate = NOT_CONNECTED; #define PCONNECTED ((int)cstate >= (int)PENDING) #define HALF_CONNECTED (cstate == PENDING) #define CONNECTED ((int)cstate >= (int)CONNECTED_INITIAL) #define IN_NEITHER (cstate == CONNECTED_INITIAL) #define IN_ANSI (cstate == CONNECTED_ANSI || cstate == CONNECTED_NVT) #define IN_3270 (cstate == CONNECTED_3270 || cstate == CONNECTED_TN3270E || cstate == CONNECTED_SSCP) #define IN_SSCP (cstate == CONNECTED_SSCP) #define IN_TN3270E (cstate == CONNECTED_TN3270E) #define IN_E (cstate >= CONNECTED_INITIAL_E) static char *connected_lu = NULL; static char *connected_type = NULL; #define BUFSZ 4096 #define N_OPTS 256 static int on = 1; /* Globals */ time_t ns_time; int ns_brcvd; int ns_rrcvd; int ns_bsent; int ns_rsent; unsigned char *obuf; /* 3270 output buffer */ int obuf_size = 0; unsigned char *obptr = (unsigned char *) NULL; int linemode = 1; const char *termtype = "IBM-3287-1"; /* Externals */ #if !defined(_WIN32) /*[*/ extern unsigned long inet_addr(const char *); #endif /*]*/ static struct timeval ds_ts; /* Statics */ static int sock = -1; /* active socket */ static unsigned char myopts[N_OPTS], hisopts[N_OPTS]; /* telnet option flags */ static unsigned char *ibuf = (unsigned char *) NULL; /* 3270 input buffer */ static unsigned char *ibptr; static int ibuf_size = 0; /* size of ibuf */ static unsigned char *obuf_base = (unsigned char *)NULL; static unsigned char *netrbuf = (unsigned char *)NULL; /* network input buffer */ static unsigned char *sbbuf = (unsigned char *)NULL; /* telnet sub-option buffer */ static unsigned char *sbptr; static unsigned char telnet_state; static int syncing; static unsigned long e_funcs; /* negotiated TN3270E functions */ #define E_OPT(n) (1 << (n)) static unsigned short e_xmit_seq; /* transmit sequence number */ static int response_required; static int tn3270e_negotiated = 0; static enum { E_NONE, E_3270, E_NVT, E_SSCP } tn3270e_submode = E_NONE; static int tn3270e_bound = 0; static char **lus = (char **)NULL; static char **curr_lu = (char **)NULL; static char *try_lu = NULL; static char *try_assoc = NULL; static void setup_lus(char *luname, const char *assoc); static int telnet_fsm(unsigned char c); static void net_rawout(unsigned const char *buf, int len); static void check_in3270(void); static void store3270in(unsigned char c); static int tn3270e_negotiate(void); static int process_eor(void); static const char *tn3270e_function_names(const unsigned char *, int); static void tn3270e_subneg_send(unsigned char, unsigned long); static unsigned long tn3270e_fdecode(const unsigned char *, int); static void tn3270_ack(void); static void tn3270_nak(enum pds); static void tn3270e_ack(void); static void tn3270e_nak(enum pds); static void tn3270e_cleared(void); extern void trace_str(const char *s); static void vtrace_str(const char *fmt, ...); static const char *cmd(int c); static const char *opt(unsigned char c); static const char *nnn(int c); /* telnet states */ #define TNS_DATA 0 /* receiving data */ #define TNS_IAC 1 /* got an IAC */ #define TNS_WILL 2 /* got an IAC WILL */ #define TNS_WONT 3 /* got an IAC WONT */ #define TNS_DO 4 /* got an IAC DO */ #define TNS_DONT 5 /* got an IAC DONT */ #define TNS_SB 6 /* got an IAC SB */ #define TNS_SB_IAC 7 /* got an IAC after an IAC SB */ /* telnet predefined messages */ static unsigned char do_opt[] = { IAC, DO, '_' }; static unsigned char dont_opt[] = { IAC, DONT, '_' }; static unsigned char will_opt[] = { IAC, WILL, '_' }; static unsigned char wont_opt[] = { IAC, WONT, '_' }; static unsigned char functions_req[] = { IAC, SB, TELOPT_TN3270E, TN3270E_OP_FUNCTIONS }; const char *telquals[2] = { "IS", "SEND" }; const char *reason_code[8] = { "CONN-PARTNER", "DEVICE-IN-USE", "INV-ASSOCIATE", "INV-NAME", "INV-DEVICE-TYPE", "TYPE-NAME-ERROR", "UNKNOWN-ERROR", "UNSUPPORTED-REQ" }; #define rsn(n) (((n) <= TN3270E_REASON_UNSUPPORTED_REQ) ? \ reason_code[(n)] : "??") const char *function_name[5] = { "BIND-IMAGE", "DATA-STREAM-CTL", "RESPONSES", "SCS-CTL-CODES", "SYSREQ" }; #define fnn(n) (((n) <= TN3270E_FUNC_SYSREQ) ? \ function_name[(n)] : "??") const char *data_type[9] = { "3270-DATA", "SCS-DATA", "RESPONSE", "BIND-IMAGE", "UNBIND", "NVT-DATA", "REQUEST", "SSCP-LU-DATA", "PRINT-EOJ" }; #define e_dt(n) (((n) <= TN3270E_DT_PRINT_EOJ) ? \ data_type[(n)] : "??") const char *req_flag[1] = { " ERR-COND-CLEARED" }; #define e_rq(fn, n) (((fn) == TN3270E_DT_REQUEST) ? \ (((n) <= TN3270E_RQF_ERR_COND_CLEARED) ? \ req_flag[(n)] : " ??") : "") const char *hrsp_flag[3] = { "NO-RESPONSE", "ERROR-RESPONSE", "ALWAYS-RESPONSE" }; #define e_hrsp(n) (((n) <= TN3270E_RSF_ALWAYS_RESPONSE) ? \ hrsp_flag[(n)] : "??") const char *trsp_flag[2] = { "POSITIVE-RESPONSE", "NEGATIVE-RESPONSE" }; #define e_trsp(n) (((n) <= TN3270E_RSF_NEGATIVE_RESPONSE) ? \ trsp_flag[(n)] : "??") #define e_rsp(fn, n) (((fn) == TN3270E_DT_RESPONSE) ? e_trsp(n) : e_hrsp(n)) const char *neg_type[4] = { "COMMAND-REJECT", "INTERVENTION-REQUIRED", "OPERATION-CHECK", "COMPONENT-DISCONNECTED" }; #define e_neg_type(n) (((n) <= TN3270E_NEG_COMPONENT_DISCONNECTED) ? \ neg_type[n]: "??") #if defined(HAVE_LIBSSL) /*[*/ Boolean secure_connection = False; static SSL_CTX *ssl_ctx; static SSL *ssl_con; static Boolean need_tls_follows = False; static void ssl_init(void); #if OPENSSL_VERSION_NUMBER >= 0x00907000L /*[*/ #define INFO_CONST const #else /*][*/ #define INFO_CONST #endif /*]*/ static void client_info_callback(INFO_CONST SSL *s, int where, int ret); static int continue_tls(unsigned char *sbbuf, int len); #endif /*]*/ #if defined(_WIN32) /*[*/ #define socket_errno() WSAGetLastError() #define SE_EWOULDBLOCK WSAEWOULDBLOCK #define SE_ECONNRESET WSAECONNRESET #define SE_EINTR WSAEINTR #define SE_EAGAIN WSAEINPROGRESS #define SE_EPIPE WSAECONNABORTED #define SE_EINPROGRESS WSAEINPROGRESS #define SOCK_CLOSE(s) closesocket(s) #define SOCK_IOCTL(s, f, v) ioctlsocket(s, f, (DWORD *)v) #else /*][*/ #define socket_errno() errno #define SE_EWOULDBLOCK EWOULDBLOCK #define SE_ECONNRESET ECONNRESET #define SE_EINTR EINTR #define SE_EAGAIN EAGAIN #define SE_EPIPE EPIPE #if defined(EINPROGRESS) /*[*/ #define SE_EINPROGRESS EINPROGRESS #endif /*]*/ #define SOCK_CLOSE(s) close(s) #define SOCK_IOCTL ioctl #endif /*]*/ char * sockerrmsg(void) { static char buf[1024]; #if defined(_WIN32) /*[*/ if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, WSAGetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), buf, sizeof(buf), NULL) == 0) { sprintf(buf, "Windows error %d", WSAGetLastError()); } #else /*][*/ strcpy(buf, strerror(errno)); #endif /*]*/ return buf; } void popup_a_sockerr(char *fmt, ...) { va_list args; char buf[1024]; va_start(args, fmt); (void) vsprintf(buf, fmt, args); va_end(args); sprintf(buf + strlen(buf), ": %s", sockerrmsg()); errmsg("%s", buf); } /* * negotiate * Initialize the connection, and negotiate TN3270 options with the host. */ int negotiate(int s, char *lu, char *assoc) { /* Set options for inline out-of-band data and keepalives. */ if (setsockopt(s, SOL_SOCKET, SO_OOBINLINE, (char *)&on, sizeof(on)) < 0) { popup_a_sockerr("setsockopt(SO_OOBINLINE)"); return -1; } if (setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, (char *)&on, sizeof(on)) < 0) { popup_a_sockerr("setsockopt(SO_KEEPALIVE)"); return -1; } #if !defined(_WIN32) /*[*/ /* Don't share the socket with our children. */ (void) fcntl(s, F_SETFD, 1); #endif /*]*/ /* init ssl */ #if defined(HAVE_LIBSSL) /*[*/ if (ssl_host && !secure_connection) { ssl_init(); if (ssl_con == NULL) return -1; SSL_set_fd(ssl_con, s); if (!SSL_connect(ssl_con)) { popup_a_sockerr("SSL_connect failed"); return -1; } secure_connection = True; vtrace_str("TLS/DDL tunneled connection complete. " "Connection is now secure.\n"); } #endif /*]*/ /* Allocate the receive buffers. */ if (netrbuf == NULL) netrbuf = (unsigned char *)Malloc(BUFSZ); if (ibuf == NULL) ibuf = (unsigned char *)Malloc(BUFSIZ); ibuf_size = BUFSIZ; ibptr = ibuf; /* Set up the LU list. */ setup_lus(lu, assoc); /* Set up telnet options. */ (void) memset((char *) myopts, 0, sizeof(myopts)); (void) memset((char *) hisopts, 0, sizeof(hisopts)); e_funcs = E_OPT(TN3270E_FUNC_BIND_IMAGE) | E_OPT(TN3270E_FUNC_DATA_STREAM_CTL) | E_OPT(TN3270E_FUNC_RESPONSES) | E_OPT(TN3270E_FUNC_SCS_CTL_CODES) | E_OPT(TN3270E_FUNC_SYSREQ); e_xmit_seq = 0; response_required = TN3270E_RSF_NO_RESPONSE; #if defined(HAVE_LIBSSL) /*[*/ need_tls_follows = False; #endif /*]*/ telnet_state = TNS_DATA; /* Clear statistics and flags. */ (void) time(&ns_time); ns_brcvd = 0; ns_rrcvd = 0; ns_bsent = 0; ns_rsent = 0; syncing = 0; tn3270e_negotiated = 0; tn3270e_submode = E_NONE; tn3270e_bound = 0; /* Speak with the host until we suceed or give up. */ cstate = CONNECTED_INITIAL; sock = s; /* hack! */ while (!tn3270e_negotiated && /* TN3270E */ cstate != CONNECTED_3270 && /* TN3270 */ cstate != NOT_CONNECTED) { /* gave up */ if (net_input(s) < 0) return -1; } /* Success. */ return 0; } int process(int s) { while (cstate != NOT_CONNECTED) { fd_set rfds; struct timeval t; struct timeval *tp; int nr; FD_ZERO(&rfds); FD_SET(s, &rfds); if (eoj_timeout) { t.tv_sec = eoj_timeout; t.tv_usec = 0; tp = &t; } else tp = NULL; nr = select(s + 1, &rfds, NULL, NULL, tp); if (nr == 0 && eoj_timeout) print_eoj(); if (nr > 0 && FD_ISSET(s, &rfds)) { if (net_input(s) < 0) return -1; } } return 0; } /* Disconnect from the host. */ void net_disconnect(void) { if (sock != -1) { vtrace_str("SENT disconnect\n"); SOCK_CLOSE(sock); sock = -1; #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { SSL_shutdown(ssl_con); SSL_free(ssl_con); ssl_con = NULL; } secure_connection = False; #endif /*]*/ } } /* Set up the LU list. */ static void setup_lus(char *luname, const char *assoc) { char *lu; char *comma; int n_lus = 1; int i; connected_lu = NULL; connected_type = NULL; curr_lu = (char **)NULL; try_lu = NULL; if (lus) { Free(lus); lus = (char **)NULL; } if (assoc != NULL) { try_assoc = NewString(assoc); return; } if (luname == NULL || !luname[0]) { return; } /* * Count the commas in the LU name. That plus one is the * number of LUs to try. */ lu = luname; while ((comma = strchr(lu, ',')) != NULL) { n_lus++; lu++; } /* * Allocate enough memory to construct an argv[] array for * the LUs. */ lus = (char **)Malloc((n_lus+1) * sizeof(char *) + strlen(luname) + 1); /* Copy each LU into the array. */ lu = (char *)(lus + n_lus + 1); (void) strcpy(lu, luname); i = 0; do { lus[i++] = lu; comma = strchr(lu, ','); if (comma != NULL) { *comma = '\0'; lu = comma + 1; } } while (comma != NULL); lus[i] = NULL; curr_lu = lus; try_lu = *curr_lu; } /* * net_input * Called by the toolkit whenever there is input available on the * socket. Reads the data, processes the special telnet commands * and calls process_ds to process the 3270 data stream. */ int net_input(int s) { register unsigned char *cp; int nr; #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) nr = SSL_read(ssl_con, (char *) netrbuf, BUFSZ); else #endif /*]*/ nr = recv(s, (char *)netrbuf, BUFSZ, 0); if (nr < 0) { #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { unsigned long e; char err_buf[1024]; e = ERR_get_error(); (void) ERR_error_string(e, err_buf); vtrace_str("RCVD socket error %ld (%s)\n", e, err_buf); errmsg("SSL_read:\n%s", err_buf); cstate = NOT_CONNECTED; return -1; } #endif /*]*/ vtrace_str("RCVD socket error %s\n", sockerrmsg()); popup_a_sockerr("Socket read"); cstate = NOT_CONNECTED; return -1; } else if (nr == 0) { /* Host disconnected. */ trace_str("RCVD disconnect\n"); cstate = NOT_CONNECTED; return 0; } /* Process the data. */ trace_netdata('<', netrbuf, nr); ns_brcvd += nr; for (cp = netrbuf; cp < (netrbuf + nr); cp++) { if (telnet_fsm(*cp)) { cstate = NOT_CONNECTED; return -1; } } return 0; } /* Advance 'try_lu' to the next desired LU name. */ static void next_lu(void) { if (curr_lu != (char **)NULL && (try_lu = *++curr_lu) == NULL) curr_lu = (char **)NULL; } /* * telnet_fsm * Telnet finite-state machine. * Returns 0 for okay, -1 for errors. */ static int telnet_fsm(unsigned char c) { switch (telnet_state) { case TNS_DATA: /* normal data processing */ if (c == IAC) { /* got a telnet command */ telnet_state = TNS_IAC; break; } if (IN_ANSI && !IN_E) { /* NVT data? */ ; } else { store3270in(c); } break; case TNS_IAC: /* process a telnet command */ if (c != EOR && c != IAC) { vtrace_str("RCVD %s ", cmd(c)); } switch (c) { case IAC: /* escaped IAC, insert it */ if (IN_ANSI && !IN_E) { ; } else store3270in(c); telnet_state = TNS_DATA; break; case EOR: /* eor, process accumulated input */ trace_str("RCVD EOR"); if (IN_3270 || (IN_E && tn3270e_negotiated)) { trace_str("\n"); ns_rrcvd++; if (process_eor()) return -1; } else trace_str(" (ignored -- not in 3270 mode)\n"); ibptr = ibuf; telnet_state = TNS_DATA; break; case WILL: telnet_state = TNS_WILL; break; case WONT: telnet_state = TNS_WONT; break; case DO: telnet_state = TNS_DO; break; case DONT: telnet_state = TNS_DONT; break; case SB: telnet_state = TNS_SB; if (sbbuf == (unsigned char *)NULL) sbbuf = (unsigned char *)Malloc(1024); sbptr = sbbuf; break; case DM: trace_str("\n"); if (syncing) { syncing = 0; /* x_except_on(s); */ } telnet_state = TNS_DATA; break; case AO: if (IN_3270 && !IN_E) { trace_str("\n"); if (print_eoj() < 0) tn3270_nak(PDS_FAILED); } else { trace_str(" (ignored -- not in TN3270 mode)\n"); } ibptr = ibuf; telnet_state = TNS_DATA; break; case GA: case NOP: trace_str("\n"); telnet_state = TNS_DATA; break; default: trace_str(" (ignored -- unsupported)\n"); telnet_state = TNS_DATA; break; } break; case TNS_WILL: /* telnet WILL DO OPTION command */ vtrace_str("%s\n", opt(c)); switch (c) { case TELOPT_SGA: case TELOPT_BINARY: case TELOPT_EOR: case TELOPT_TTYPE: case TELOPT_ECHO: case TELOPT_TN3270E: if (!hisopts[c]) { hisopts[c] = 1; do_opt[2] = c; net_rawout(do_opt, sizeof(do_opt)); vtrace_str("SENT %s %s\n", cmd(DO), opt(c)); /* For UTS, volunteer to do EOR when they do. */ if (c == TELOPT_EOR && !myopts[c]) { myopts[c] = 1; will_opt[2] = c; net_rawout(will_opt, sizeof(will_opt)); vtrace_str("SENT %s %s\n", cmd(WILL), opt(c)); } check_in3270(); } break; default: dont_opt[2] = c; net_rawout(dont_opt, sizeof(dont_opt)); vtrace_str("SENT %s %s\n", cmd(DONT), opt(c)); break; } telnet_state = TNS_DATA; break; case TNS_WONT: /* telnet WONT DO OPTION command */ vtrace_str("%s\n", opt(c)); if (hisopts[c]) { hisopts[c] = 0; dont_opt[2] = c; net_rawout(dont_opt, sizeof(dont_opt)); vtrace_str("SENT %s %s\n", cmd(DONT), opt(c)); check_in3270(); } telnet_state = TNS_DATA; break; case TNS_DO: /* telnet PLEASE DO OPTION command */ vtrace_str("%s\n", opt(c)); switch (c) { case TELOPT_BINARY: case TELOPT_EOR: case TELOPT_TTYPE: case TELOPT_SGA: case TELOPT_TM: case TELOPT_TN3270E: #if defined(HAVE_LIBSSL) /*[*/ case TELOPT_STARTTLS: #endif /*]*/ if (!myopts[c]) { if (c != TELOPT_TM) myopts[c] = 1; will_opt[2] = c; net_rawout(will_opt, sizeof(will_opt)); vtrace_str("SENT %s %s\n", cmd(WILL), opt(c)); check_in3270(); } #if defined(HAVE_LIBSSL) /*[*/ if (c == TELOPT_STARTTLS) { static unsigned char follows_msg[] = { IAC, SB, TELOPT_STARTTLS, TLS_FOLLOWS, IAC, SE }; /* * Send IAC SB STARTTLS FOLLOWS IAC SE * to announce that what follows is TLS. */ net_rawout(follows_msg, sizeof(follows_msg)); vtrace_str("SENT %s %s FOLLOWS %s\n", cmd(SB), opt(TELOPT_STARTTLS), cmd(SE)); need_tls_follows = True; } #endif /*]*/ break; default: wont_opt[2] = c; net_rawout(wont_opt, sizeof(wont_opt)); vtrace_str("SENT %s %s\n", cmd(WONT), opt(c)); break; } telnet_state = TNS_DATA; break; case TNS_DONT: /* telnet PLEASE DON'T DO OPTION command */ vtrace_str("%s\n", opt(c)); if (myopts[c]) { myopts[c] = 0; wont_opt[2] = c; net_rawout(wont_opt, sizeof(wont_opt)); vtrace_str("SENT %s %s\n", cmd(WONT), opt(c)); check_in3270(); } telnet_state = TNS_DATA; break; case TNS_SB: /* telnet sub-option string command */ if (c == IAC) telnet_state = TNS_SB_IAC; else *sbptr++ = c; break; case TNS_SB_IAC: /* telnet sub-option string command */ *sbptr++ = c; if (c == SE) { telnet_state = TNS_DATA; if (sbbuf[0] == TELOPT_TTYPE && sbbuf[1] == TELQUAL_SEND) { int tt_len, tb_len; char *tt_out; vtrace_str("%s %s\n", opt(sbbuf[0]), telquals[sbbuf[1]]); if (lus != (char **)NULL && try_assoc == NULL && try_lu == NULL) { /* None of the LUs worked. */ errmsg("Cannot connect to specified " "LU"); return -1; } tt_len = strlen(termtype); if (try_lu != NULL && *try_lu) { tt_len += strlen(try_lu) + 1; connected_lu = try_lu; } else connected_lu = NULL; tb_len = 4 + tt_len + 2; tt_out = Malloc(tb_len + 1); (void) sprintf(tt_out, "%c%c%c%c%s%s%s%c%c", IAC, SB, TELOPT_TTYPE, TELQUAL_IS, termtype, (try_lu != NULL && *try_lu) ? "@" : "", (try_lu != NULL && *try_lu) ? try_lu : "", IAC, SE); net_rawout((unsigned char *)tt_out, tb_len); vtrace_str("SENT %s %s %s %.*s %s\n", cmd(SB), opt(TELOPT_TTYPE), telquals[TELQUAL_IS], tt_len, tt_out + 4, cmd(SE)); Free(tt_out); /* Advance to the next LU name. */ next_lu(); } else if (myopts[TELOPT_TN3270E] && sbbuf[0] == TELOPT_TN3270E) { if (tn3270e_negotiate()) return -1; } #if defined(HAVE_LIBSSL) /*[*/ else if (need_tls_follows && myopts[TELOPT_STARTTLS] && sbbuf[0] == TELOPT_STARTTLS) { if (continue_tls(sbbuf, sbptr - sbbuf) < 0) return -1; } #endif /*]*/ } else { telnet_state = TNS_SB; } break; } return 0; } /* Send a TN3270E terminal type request. */ static void tn3270e_request(void) { int tt_len, tb_len; char *tt_out; char *t; tt_len = strlen(termtype); if (try_assoc != NULL) tt_len += strlen(try_assoc) + 1; else if (try_lu != NULL && *try_lu) tt_len += strlen(try_lu) + 1; tb_len = 5 + tt_len + 2; tt_out = Malloc(tb_len + 1); t = tt_out; t += sprintf(tt_out, "%c%c%c%c%c%s", IAC, SB, TELOPT_TN3270E, TN3270E_OP_DEVICE_TYPE, TN3270E_OP_REQUEST, termtype); if (try_assoc != NULL) t += sprintf(t, "%c%s", TN3270E_OP_ASSOCIATE, try_assoc); else if (try_lu != NULL && *try_lu) t += sprintf(t, "%c%s", TN3270E_OP_CONNECT, try_lu); (void) sprintf(t, "%c%c", IAC, SE); net_rawout((unsigned char *)tt_out, tb_len); vtrace_str("SENT %s %s DEVICE-TYPE REQUEST %.*s%s%s%s%s " "%s\n", cmd(SB), opt(TELOPT_TN3270E), strlen(termtype), tt_out + 5, (try_assoc != NULL) ? " ASSOCIATE " : "", (try_assoc != NULL) ? try_assoc : "", (try_lu != NULL && *try_lu) ? " CONNECT " : "", (try_lu != NULL && *try_lu) ? try_lu : "", cmd(SE)); Free(tt_out); } /* * Negotiation of TN3270E options. * Returns 0 if okay, -1 if we have to give up altogether. */ static int tn3270e_negotiate(void) { #define LU_MAX 32 static char reported_lu[LU_MAX+1]; static char reported_type[LU_MAX+1]; int sblen; unsigned long e_rcvd; /* Find out how long the subnegotiation buffer is. */ for (sblen = 0; ; sblen++) { if (sbbuf[sblen] == SE) break; } vtrace_str("TN3270E "); switch (sbbuf[1]) { case TN3270E_OP_SEND: if (sbbuf[2] == TN3270E_OP_DEVICE_TYPE) { /* Host wants us to send our device type. */ vtrace_str("SEND DEVICE-TYPE SE\n"); tn3270e_request(); } else { vtrace_str("SEND ??%u SE\n", sbbuf[2]); } break; case TN3270E_OP_DEVICE_TYPE: /* Device type negotiation. */ vtrace_str("DEVICE-TYPE "); switch (sbbuf[2]) { case TN3270E_OP_IS: { int tnlen, snlen; /* Device type success. */ /* Isolate the terminal type and session. */ tnlen = 0; while (sbbuf[3+tnlen] != SE && sbbuf[3+tnlen] != TN3270E_OP_CONNECT) tnlen++; snlen = 0; if (sbbuf[3+tnlen] == TN3270E_OP_CONNECT) { while(sbbuf[3+tnlen+1+snlen] != SE) snlen++; } vtrace_str("IS %.*s CONNECT %.*s SE\n", tnlen, &sbbuf[3], snlen, &sbbuf[3+tnlen+1]); /* Remember the LU. */ if (tnlen) { if (tnlen > LU_MAX) tnlen = LU_MAX; (void)strncpy(reported_type, (char *)&sbbuf[3], tnlen); reported_type[tnlen] = '\0'; connected_type = reported_type; } if (snlen) { if (snlen > LU_MAX) snlen = LU_MAX; (void)strncpy(reported_lu, (char *)&sbbuf[3+tnlen+1], snlen); reported_lu[snlen] = '\0'; connected_lu = reported_lu; } /* Tell them what we can do. */ tn3270e_subneg_send(TN3270E_OP_REQUEST, e_funcs); break; } case TN3270E_OP_REJECT: /* Device type failure. */ vtrace_str("REJECT REASON %s SE\n", rsn(sbbuf[4])); if (try_assoc != NULL) { errmsg("Cannot associate with specified LU: %s", rsn(sbbuf[4])); return -1; } next_lu(); if (try_lu != NULL) { /* Try the next LU. */ tn3270e_request(); } else if (lus != NULL) { /* No more LUs to try. Give up. */ errmsg("Cannot connect to specified LU: %s", rsn(sbbuf[4])); return -1; } else { errmsg("Device type rejected, cannot connect: " "%s", rsn(sbbuf[4])); return -1; } break; default: vtrace_str("??%u SE\n", sbbuf[2]); break; } break; case TN3270E_OP_FUNCTIONS: /* Functions negotiation. */ vtrace_str("FUNCTIONS "); switch (sbbuf[2]) { case TN3270E_OP_REQUEST: /* Host is telling us what functions they want. */ vtrace_str("REQUEST %s SE\n", tn3270e_function_names(sbbuf+3, sblen-3)); e_rcvd = tn3270e_fdecode(sbbuf+3, sblen-3); if ((e_rcvd == e_funcs) || (e_funcs & ~e_rcvd)) { /* They want what we want, or less. Done. */ e_funcs = e_rcvd; tn3270e_subneg_send(TN3270E_OP_IS, e_funcs); tn3270e_negotiated = 1; vtrace_str("TN3270E option negotiation " "complete.\n"); check_in3270(); } else { /* * They want us to do something we can't. * Request the common subset. */ e_funcs &= e_rcvd; tn3270e_subneg_send(TN3270E_OP_REQUEST, e_funcs); } break; case TN3270E_OP_IS: /* They accept our last request. */ vtrace_str("IS %s SE\n", tn3270e_function_names(sbbuf+3, sblen-3)); e_rcvd = tn3270e_fdecode(sbbuf+3, sblen-3); if (e_rcvd != e_funcs) { if (e_funcs & ~e_rcvd) { /* They've removed something. Fine. */ e_funcs &= e_rcvd; } else { /* * They've added something. Abandon * TN3270E, they're brain dead. */ vtrace_str("Host illegally added " "function(s), aborting " "TN3270E\n"); wont_opt[2] = TELOPT_TN3270E; net_rawout(wont_opt, sizeof(wont_opt)); vtrace_str("SENT %s %s\n", cmd(WONT), opt(TELOPT_TN3270E)); myopts[TELOPT_TN3270E] = 0; check_in3270(); break; } } tn3270e_negotiated = 1; vtrace_str("TN3270E option negotiation complete.\n"); check_in3270(); break; default: vtrace_str("??%u SE\n", sbbuf[2]); break; } break; default: vtrace_str("??%u SE\n", sbbuf[1]); } /* Good enough for now. */ return 0; } /* Expand a string of TN3270E function codes into text. */ static const char * tn3270e_function_names(const unsigned char *buf, int len) { int i; static char text_buf[1024]; char *s = text_buf; if (!len) return("(null)"); for (i = 0; i < len; i++) { s += sprintf(s, "%s%s", (s == text_buf) ? "" : " ", fnn(buf[i])); } return text_buf; } /* Transmit a TN3270E FUNCTIONS REQUEST or FUNCTIONS IS message. */ static void tn3270e_subneg_send(unsigned char op, unsigned long funcs) { unsigned char proto_buf[7 + 32]; int proto_len; int i; /* Construct the buffers. */ (void) memcpy(proto_buf, functions_req, 4); proto_buf[4] = op; proto_len = 5; for (i = 0; i < 32; i++) { if (funcs & E_OPT(i)) proto_buf[proto_len++] = i; } /* Complete and send out the protocol message. */ proto_buf[proto_len++] = IAC; proto_buf[proto_len++] = SE; net_rawout(proto_buf, proto_len); /* Complete and send out the trace text. */ vtrace_str("SENT %s %s FUNCTIONS %s %s %s\n", cmd(SB), opt(TELOPT_TN3270E), (op == TN3270E_OP_REQUEST)? "REQUEST": "IS", tn3270e_function_names(proto_buf + 5, proto_len - 7), cmd(SE)); } /* Translate a string of TN3270E functions into a bit-map. */ static unsigned long tn3270e_fdecode(const unsigned char *buf, int len) { unsigned long r = 0L; int i; /* Note that this code silently ignores options >= 32. */ for (i = 0; i < len; i++) { if (buf[i] < 32) r |= E_OPT(buf[i]); } return r; } static int process_eor(void) { enum pds rv; if (syncing || !(ibptr - ibuf)) return(0); if (IN_E) { tn3270e_header *h = (tn3270e_header *)ibuf; vtrace_str("RCVD TN3270E(%s%s %s %u)\n", e_dt(h->data_type), e_rq(h->data_type, h->request_flag), e_rsp(h->data_type, h->response_flag), h->seq_number[0] << 8 | h->seq_number[1]); switch (h->data_type) { case TN3270E_DT_3270_DATA: case TN3270E_DT_SCS_DATA: if ((e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE)) && !tn3270e_bound) return 0; tn3270e_submode = E_3270; check_in3270(); response_required = h->response_flag; if (h->data_type == TN3270E_DT_3270_DATA) rv = process_ds(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); else rv = process_scs(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); if (rv < 0 && response_required != TN3270E_RSF_NO_RESPONSE) tn3270e_nak(rv); else if (rv == PDS_OKAY_NO_OUTPUT && response_required == TN3270E_RSF_ALWAYS_RESPONSE) tn3270e_ack(); response_required = TN3270E_RSF_NO_RESPONSE; return 0; case TN3270E_DT_BIND_IMAGE: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; tn3270e_bound = 1; check_in3270(); if (h->response_flag) tn3270e_ack(); return 0; case TN3270E_DT_UNBIND: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; tn3270e_bound = 0; if (tn3270e_submode == E_3270) tn3270e_submode = E_NONE; check_in3270(); if (print_eoj() == 0) rv = PDS_OKAY_NO_OUTPUT; else rv = PDS_FAILED; if (h->response_flag) { if (rv >= 0) tn3270e_ack(); else tn3270e_nak(rv); } print_unbind(); return 0; case TN3270E_DT_SSCP_LU_DATA: case TN3270E_DT_NVT_DATA: if (h->response_flag) tn3270e_nak(PDS_BAD_CMD); return 0; case TN3270E_DT_PRINT_EOJ: rv = PDS_OKAY_NO_OUTPUT; if (ignoreeoj) vtrace_str("(ignored)\n"); else if (print_eoj() < 0) rv = PDS_FAILED; if (h->response_flag) { if (rv >= 0) tn3270e_ack(); else tn3270e_nak(rv); } return 0; default: return 0; } } else { /* Plain old 3270 mode. */ rv = process_ds(ibuf, ibptr - ibuf); if (rv < 0) tn3270_nak(rv); else tn3270_ack(); return 0; } } /* * net_exception * Called when there is an exceptional condition on the socket. */ void net_exception(void) { trace_str("RCVD urgent data indication\n"); if (!syncing) { syncing = 1; /* x_except_off(); */ } } /* * Flavors of Network Output: * * net_output send a 3270 record * net_rawout send telnet protocol data */ /* * net_rawout * Send out raw telnet data. We assume that there will always be enough * space to buffer what we want to transmit, so we don't handle EAGAIN or * EWOULDBLOCK. */ static void net_rawout(unsigned const char *buf, int len) { int nw; trace_netdata('>', buf, len); while (len) { #if defined(OMTU) /*[*/ int n2w = len; int pause = 0; if (n2w > OMTU) { n2w = OMTU; pause = 1; } #else # define n2w len #endif #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) nw = SSL_write(ssl_con, (const char *) buf, n2w); else #endif /*]*/ nw = send(sock, (const char *) buf, n2w, 0); if (nw < 0) { #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { unsigned long e; char err_buf[1024]; e = ERR_get_error(); (void) ERR_error_string(e, err_buf); vtrace_str("RCVD socket error %ld (%s)\n", e, err_buf); errmsg("SSL_write:\n%s", err_buf); cstate = NOT_CONNECTED; return; } #endif /*]*/ vtrace_str("RCVD socket error %s\n", sockerrmsg()); if (socket_errno() == SE_EPIPE || socket_errno() == SE_ECONNRESET) { cstate = NOT_CONNECTED; return; } else if (socket_errno() == SE_EINTR) { goto bot; } else { popup_a_sockerr("Socket write"); cstate = NOT_CONNECTED; return; } } ns_bsent += nw; len -= nw; buf += nw; bot: #if defined(OMTU) /*[*/ if (pause) sleep(1); #endif /*]*/ ; } } /* * check_in3270 * Check for switches between NVT, SSCP-LU and 3270 modes. */ static void check_in3270(void) { enum cstate new_cstate = NOT_CONNECTED; static const char *state_name[] = { "unconnected", "pending", "connected initial", "TN3270 NVT", "TN3270 3270", "TN3270E", "TN3270E NVT", "TN3270E SSCP-LU", "TN3270E 3270" }; if (myopts[TELOPT_TN3270E]) { if (!tn3270e_negotiated) new_cstate = CONNECTED_INITIAL_E; else switch (tn3270e_submode) { case E_NONE: new_cstate = CONNECTED_INITIAL_E; break; case E_NVT: new_cstate = CONNECTED_NVT; break; case E_3270: new_cstate = CONNECTED_TN3270E; break; case E_SSCP: new_cstate = CONNECTED_SSCP; break; } } else if (myopts[TELOPT_BINARY] && myopts[TELOPT_EOR] && myopts[TELOPT_TTYPE] && hisopts[TELOPT_BINARY] && hisopts[TELOPT_EOR]) { new_cstate = CONNECTED_3270; } else if (cstate == CONNECTED_INITIAL) { /* Nothing has happened, yet. */ return; } else { new_cstate = CONNECTED_ANSI; } if (new_cstate != cstate) { int was_in_e = IN_E; vtrace_str("Now operating in %s mode.\n", state_name[new_cstate]); cstate = new_cstate; /* * If the user specified an association, and the host has * entered TELNET NVT mode or TN3270 (non-TN3270E) mode, * give up. */ if (try_assoc != NULL && !IN_E) { errmsg("Host does not support TN3270E, cannot " "associate with specified LU"); /* No return value, gotta abort here. */ pr3287_exit(1); } /* * If we've now switched between non-TN3270E mode and * TN3270E state, reset the LU list so we can try again * in the new mode. */ if (lus != (char **)NULL && was_in_e != IN_E) { curr_lu = lus; try_lu = *curr_lu; } /* Allocate the initial 3270 input buffer. */ if (new_cstate >= CONNECTED_INITIAL && !ibuf_size) { ibuf = (unsigned char *)Malloc(BUFSIZ); ibuf_size = BUFSIZ; ibptr = ibuf; } /* If we fell out of TN3270E, remove the state. */ if (!myopts[TELOPT_TN3270E]) { tn3270e_negotiated = 0; tn3270e_submode = E_NONE; tn3270e_bound = 0; } } } /* * store3270in * Store a character in the 3270 input buffer, checking for buffer * overflow and reallocating ibuf if necessary. */ static void store3270in(unsigned char c) { if (ibptr - ibuf >= ibuf_size) { ibuf_size += BUFSIZ; ibuf = (unsigned char *)Realloc((char *)ibuf, ibuf_size); ibptr = ibuf + ibuf_size - BUFSIZ; } *ibptr++ = c; } /* * space3270out * Ensure that more characters will fit in the 3270 output buffer. * Allocates the buffer in BUFSIZ chunks. * Allocates hidden space at the front of the buffer for TN3270E. */ void space3270out(int n) { unsigned nc = 0; /* amount of data currently in obuf */ unsigned more = 0; if (obuf_size) nc = obptr - obuf; while ((nc + n + EH_SIZE) > (obuf_size + more)) { more += BUFSIZ; } if (more) { obuf_size += more; obuf_base = (unsigned char *)Realloc((char *)obuf_base, obuf_size); obuf = obuf_base + EH_SIZE; obptr = obuf + nc; } } /* * nnn * Expands a number to a character string, for displaying unknown telnet * commands and options. */ static const char * nnn(int c) { static char buf[64]; (void) sprintf(buf, "%d", c); return buf; } /* * cmd * Expands a TELNET command into a character string. */ static const char * cmd(int c) { if (TELCMD_OK(c)) return TELCMD(c); else return nnn((int)c); } /* * opt * Expands a TELNET option into a character string. */ static const char * opt(unsigned char c) { if (TELOPT_OK(c)) return TELOPT(c); else if (c == TELOPT_TN3270E) return "TN3270E"; #if defined(HAVE_LIBSSL) /*[*/ else if (c == TELOPT_STARTTLS) return "START-TLS"; #endif /*]*/ else return nnn((int)c); } #define LINEDUMP_MAX 32 void trace_netdata(char direction, unsigned const char *buf, int len) { int offset; struct timeval ts; double tdiff; if (tracef == NULL) return; (void) gettimeofday(&ts, (struct timezone *)NULL); if (IN_3270) { tdiff = ((1.0e6 * (double)(ts.tv_sec - ds_ts.tv_sec)) + (double)(ts.tv_usec - ds_ts.tv_usec)) / 1.0e6; (void) fprintf(tracef, "%c +%gs\n", direction, tdiff); } ds_ts = ts; for (offset = 0; offset < len; offset++) { if (!(offset % LINEDUMP_MAX)) (void) fprintf(tracef, "%s%c 0x%-3x ", (offset ? "\n" : ""), direction, offset); (void) fprintf(tracef, "%02x", buf[offset]); } (void) fprintf(tracef, "\n"); } /* * net_output * Send 3270 output over the network, prepending TN3270E headers and * tacking on the necessary telnet end-of-record command. */ void net_output(void) { #define BSTART ((IN_TN3270E || IN_SSCP) ? obuf_base : obuf) /* Set the TN3720E header. */ if (IN_TN3270E || IN_SSCP) { tn3270e_header *h = (tn3270e_header *)obuf_base; /* Check for sending a TN3270E response. */ if (response_required == TN3270E_RSF_ALWAYS_RESPONSE) { tn3270e_ack(); response_required = TN3270E_RSF_NO_RESPONSE; } /* Set the outbound TN3270E header. */ h->data_type = IN_TN3270E ? TN3270E_DT_3270_DATA : TN3270E_DT_SSCP_LU_DATA; h->request_flag = 0; h->response_flag = 0; h->seq_number[0] = (e_xmit_seq >> 8) & 0xff; h->seq_number[1] = e_xmit_seq & 0xff; } /* Count the number of IACs in the message. */ { char *buf = (char *)BSTART; int len = obptr - BSTART; char *iac; int cnt = 0; while (len && (iac = memchr(buf, IAC, len)) != NULL) { cnt++; len -= iac - buf + 1; buf = iac + 1; } if (cnt) { space3270out(cnt); len = obptr - BSTART; buf = (char *)BSTART; /* Now quote them. */ while (len && (iac = memchr(buf, IAC, len)) != NULL) { int ml = len - (iac - buf); memmove(iac + 1, iac, ml); len -= iac - buf + 1; buf = iac + 2; obptr++; } } } /* Add IAC EOR to the end and send it. */ space3270out(2); *obptr++ = IAC; *obptr++ = EOR; if (IN_TN3270E || IN_SSCP) { vtrace_str("SENT TN3270E(%s NO-RESPONSE %u)\n", IN_TN3270E ? "3270-DATA" : "SSCP-LU-DATA", e_xmit_seq); if (e_funcs & E_OPT(TN3270E_FUNC_RESPONSES)) e_xmit_seq = (e_xmit_seq + 1) & 0x7fff; } net_rawout(BSTART, obptr - BSTART); trace_str("SENT EOR\n"); ns_rsent++; #undef BSTART } /* Send a TN3270 positive response to the server. */ static void tn3270_ack(void) { unsigned char rsp_buf[7]; int rsp_len = sizeof(rsp_buf); rsp_buf[0] = 0x01; /* SOH */ rsp_buf[1] = 0x6c; /* % */ rsp_buf[2] = 0xd9; /* R */ rsp_buf[3] = 0x02; /* Device End - No Error */ rsp_buf[4] = 0x00; /* No error */ rsp_buf[5] = IAC; rsp_buf[6] = EOR; vtrace_str("SENT TN3270 PRINTER STATUS(OKAY)\n"); net_rawout(rsp_buf, rsp_len); } /* Send a TN3270 negative response to the server. */ static void tn3270_nak(enum pds rv) { unsigned char rsp_buf[7]; int rsp_len = sizeof(rsp_buf); rsp_buf[0] = 0x01; /* SOH */ rsp_buf[1] = 0x6c; /* % */ rsp_buf[2] = 0xd9; /* R */ rsp_buf[3] = 0x04; /* Error */ switch (rv) { case PDS_BAD_CMD: rsp_buf[4] = 0x20; /* Command Rejected (CR) */ break; case PDS_BAD_ADDR: rsp_buf[4] = 0x04; /* Data check - invalid print data */ break; case PDS_FAILED: rsp_buf[4] = 0x10; /* Printer not ready */ break; default: rsp_buf[4] = 0x20; /* Command Rejected - shouldn't happen */ break; } rsp_buf[5] = IAC; rsp_buf[6] = EOR; vtrace_str("SENT TN3270 PRINTER STATUS(ERROR)\n"); net_rawout(rsp_buf, rsp_len); /* * If we just told the host 'intervention required', tell it * everything's okay now. */ if (rv == PDS_FAILED) tn3270_ack(); } /* Send a TN3270E positive response to the server. */ static void tn3270e_ack(void) { unsigned char rsp_buf[9]; tn3270e_header *h, *h_in; int rsp_len = EH_SIZE; h = (tn3270e_header *)rsp_buf; h_in = (tn3270e_header *)ibuf; h->data_type = TN3270E_DT_RESPONSE; h->request_flag = 0; h->response_flag = TN3270E_RSF_POSITIVE_RESPONSE; h->seq_number[0] = h_in->seq_number[0]; h->seq_number[1] = h_in->seq_number[1]; if (h->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = TN3270E_POS_DEVICE_END; rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; vtrace_str("SENT TN3270E(RESPONSE POSITIVE-RESPONSE " "%u) DEVICE-END\n", h_in->seq_number[0] << 8 | h_in->seq_number[1]); net_rawout(rsp_buf, rsp_len); } /* Send a TN3270E negative response to the server. */ static void tn3270e_nak(enum pds rv) { unsigned char rsp_buf[9], r; tn3270e_header *h, *h_in; int rsp_len = EH_SIZE; h = (tn3270e_header *)rsp_buf; h_in = (tn3270e_header *)ibuf; h->data_type = TN3270E_DT_RESPONSE; h->request_flag = 0; h->response_flag = TN3270E_RSF_NEGATIVE_RESPONSE; h->seq_number[0] = h_in->seq_number[0]; h->seq_number[1] = h_in->seq_number[1]; if (h->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; switch (rv) { default: case PDS_BAD_CMD: rsp_buf[rsp_len++] = r = TN3270E_NEG_COMMAND_REJECT; break; case PDS_BAD_ADDR: rsp_buf[rsp_len++] = r = TN3270E_NEG_OPERATION_CHECK; break; case PDS_FAILED: rsp_buf[rsp_len++] = r = TN3270E_NEG_INTERVENTION_REQUIRED; break; } rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; vtrace_str("SENT TN3270E(RESPONSE NEGATIVE-RESPONSE %u) %s\n", h_in->seq_number[0] << 8 | h_in->seq_number[1], e_neg_type(r)); net_rawout(rsp_buf, rsp_len); /* * If we just told the host 'intervention required', tell it * everything's okay now. */ if (r == TN3270E_NEG_INTERVENTION_REQUIRED) tn3270e_cleared(); } /* Send a TN3270E error cleared indication to the host. */ static void tn3270e_cleared(void) { unsigned char rsp_buf[9]; tn3270e_header *h; int rsp_len = EH_SIZE; h = (tn3270e_header *)rsp_buf; h->data_type = TN3270E_OP_REQUEST; h->request_flag = TN3270E_RQF_ERR_COND_CLEARED; h->response_flag = 0; h->seq_number[0] = (e_xmit_seq >> 8) & 0xff; h->seq_number[1] = e_xmit_seq & 0xff; if (h->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; vtrace_str("SENT TN3270E(REQUEST ERR-COND-CLEARED %u)\n", e_xmit_seq); net_rawout(rsp_buf, rsp_len); e_xmit_seq = (e_xmit_seq + 1) & 0x7fff; } /* Add a dummy TN3270E header to the output buffer. */ Boolean net_add_dummy_tn3270e(void) { tn3270e_header *h; if (!IN_E || tn3270e_submode == E_NONE) return False; space3270out(EH_SIZE); h = (tn3270e_header *)obptr; switch (tn3270e_submode) { case E_NONE: break; case E_NVT: h->data_type = TN3270E_DT_NVT_DATA; break; case E_SSCP: h->data_type = TN3270E_DT_SSCP_LU_DATA; break; case E_3270: h->data_type = TN3270E_DT_3270_DATA; break; } h->request_flag = 0; h->response_flag = TN3270E_RSF_NO_RESPONSE; h->seq_number[0] = 0; h->seq_number[1] = 0; obptr += EH_SIZE; return True; } /* * Add IAC EOR to a buffer. */ void net_add_eor(unsigned char *buf, int len) { buf[len++] = IAC; buf[len++] = EOR; } static void vtrace_str(const char *fmt, ...) { static char trace_msg[256]; va_list args; va_start(args, fmt); (void) vsprintf(trace_msg, fmt, args); trace_str(trace_msg); } #if defined(HAVE_LIBSSL) /*[*/ /* Initialize the OpenSSL library. */ static void ssl_init(void) { static Boolean ssl_initted = False; if (!ssl_initted) { SSL_load_error_strings(); SSL_library_init(); ssl_initted = True; ssl_ctx = SSL_CTX_new(SSLv23_method()); if (ssl_ctx == NULL) { errmsg("SSL_CTX_new failed"); ssl_host = False; return; } SSL_CTX_set_options(ssl_ctx, SSL_OP_ALL); } ssl_con = SSL_new(ssl_ctx); if (ssl_con == NULL) { errmsg("SSL_new failed"); return; } /* XXX: Get verify flags from a per-host resource. */ SSL_set_verify(ssl_con, 0/*xxx*/, NULL); SSL_CTX_set_info_callback(ssl_ctx, client_info_callback); /* XXX: Get cert_file and key_file from a per-host resource. */ SSL_CTX_set_default_verify_paths(ssl_ctx); } /* Callback for tracing protocol negotiation. */ static void client_info_callback(INFO_CONST SSL *s, int where, int ret) { if (where == SSL_CB_CONNECT_LOOP) { vtrace_str("SSL_connect: %s %s\n", SSL_state_string(s), SSL_state_string_long(s)); } else if (where == SSL_CB_CONNECT_EXIT) { if (ret == 0) { vtrace_str("SSL_connect: failed in %s %s\n", SSL_state_string(s), SSL_state_string_long(s)); } else if (ret < 0) { vtrace_str("SSL_connect: error in %s %s\n", SSL_state_string(s), SSL_state_string_long(s)); } } } /* Process a STARTTLS subnegotiation. */ static int continue_tls(unsigned char *sbbuf, int len) { /* Whatever happens, we're not expecting another SB STARTTLS. */ need_tls_follows = False; /* Make sure the option is FOLLOWS. */ if (len < 2 || sbbuf[1] != TLS_FOLLOWS) { /* Trace the junk. */ vtrace_str("%s ? %s\n", opt(TELOPT_STARTTLS), cmd(SE)); errmsg("TLS negotiation failure"); return -1; } /* Trace what we got. */ vtrace_str("%s FOLLOWS %s\n", opt(TELOPT_STARTTLS), cmd(SE)); /* Initialize the SSL library. */ ssl_init(); if (ssl_con == NULL) { /* Failed. */ return -1; } /* Set up the TLS/SSL connection. */ SSL_set_fd(ssl_con, sock); if (!SSL_connect(ssl_con)) { popup_a_sockerr("SSL_connect failed"); return -1; } secure_connection = True; /* Success. */ vtrace_str("TLS/SSL negotiated connection complete. " "Connection is now secure.\n"); return 0; } #endif /*]*/ ibm-3270-3.3.10ga4/pr3287/trace_dsc.h0000644000175000017500000000477611254565701016247 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * trace_dsc.h * Global declarations for trace_ds.c. */ #if defined(X3270_TRACE) /*[*/ extern FILE *tracef; extern Boolean trace_skipping; const char *rcba(int baddr); const char *see_aid(unsigned char code); const char *see_attr(unsigned char fa); const char *see_color(unsigned char setting); const char *see_ebc(unsigned char ch); const char *see_efa(unsigned char efa, unsigned char value); const char *see_efa_only(unsigned char efa); const char *see_qcode(unsigned char id); void trace_ansi_disc(void); void trace_char(char c); void trace_ds(const char *fmt, ...); void trace_dsn(const char *fmt, ...); void trace_event(const char *fmt, ...); void trace_screen(void); const char *unknown(unsigned char value); #else /*][*/ #define tracef 0 #define trace_ds 0 && #define trace_dsn 0 && #define trace_event 0 && #define rcba 0 && #define see_aid 0 && #define see_attr 0 && #define see_color 0 && #define see_ebc 0 && #define see_efa 0 && #define see_efa_only 0 && #define see_qcode 0 && #endif /*]*/ ibm-3270-3.3.10ga4/pr3287/html/0000755000175000017500000000000011261530021015056 5ustar bastianbastianibm-3270-3.3.10ga4/pr3287/html/pr3287-man.html0000644000175000017500000002075411261530004017473 0ustar bastianbastian pr3287 Manual Page

pr3287 Manual Page

Contents

Name
Synopsis
Description
Options
Signals
Proxy
See Also
Copyrights
Version

Name

pr3287 - IBM host printing tool

Synopsis

pr3287 [ options ] [ L: ] [[ LUname [, LUname ...]@] hostname [: port ]]

Description

pr3287 opens a telnet connection to an IBM host, and emulates an IBM 3287 printer. It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection).

If the hostname is prefixed with L:, the connection will be made through an SSL tunnel. pr3287 also supports TELNET START-TLS option negotiation without any need for command-line options.

A specific LU name to use may be specified by prepending it to the hostname with an `@'. Multiple LU names to try can be separated by commas. An empty LU can be placed in the list with an extra comma.

The port to connect to defaults to telnet. This can be overridden by appending a port to the hostname with a colon `:'.

Options

pr3287 understands the following options:
-assoc LUname
Causes the session to be associated with the specified LUname.
-blanklines
In LU3 formatted mode, print blank lines even if they are all NULLs or control characters. (This is a violation of the 3270 printer protocol, but some hosts require it.)
-charset name
Specifies an alternate host code page (input EBCDIC mapping). The default maps the U.S. English (037) code page to the current locale character encoding. pr3287 generally supports the same host character sets as x3270.
-command command
Specifies the command to run for each print job. The default is lpr.
-crlf
Causes newline characters in the output to be expanded to carriage-return/linefeed sequences.
-daemon
Causes pr3287 to become a daemon (background) process.
-eojtimeout seconds
Causes pr3287 to flush the print job after seconds seconds of inactivity.
-ignoreeoj
Ignore TN3270E PRINT-EOJ commands, relying on UNBIND commands to indicate the ends of print jobs.
-ffskip
Causes pr3287 to ignore a FF (formfeed) order if it occurs at the top of a page.
-ffthru
In SCS mode, causes pr3287 to pass FF (formfeed) orders through to the printer as ASCII formfeed characters, rather than simulating them based on the values of the MPL (maximum presentation line) and TM (top margin) parameters.

The printer can be the name of a local printer, or a UNC path to a remote printer, e.g., \\server\printer1.

-proxy type:host[:port]
Causes pr3287 to connect via the specified proxy, instead of using a direct connection. The host can be an IP address or hostname. The optional port can be a number or a service name. For a list of supported proxy types, see PROXY below.
-reconnect
Causes pr3287 to reconnect to the host, whenever the connection is broken. There is a 5-second delay between reconnect attempts, to reduce network thrashing for down or misconfigured hosts.
-trace
Turns on data stream tracing. Trace information is usually saved in the file /tmp/x3trc.pid.
-tracedir dir
Specifies the directory to save trace files in, instead of /tmp.
-trnpre file
Specifies a file containing data that will be sent to the printer before each print job. The file contents are treated as transparent data, i.e., they are not translated in any way.
-trnpost file
Specifies a file containing data that will be sent to the printer after each print job. The file contents are treated as transparent data, i.e., they are not translated in any way.
-v
Display build and version information and exit.

Signals

SIGINT, SIGHUP and SIGTERM cause the current print job to be flushed (any pending data to be printed) and pr3287 to exit.

SIGUSR1 causes the current print job to be flushed without otherwise affecting the pr3287 process.

Proxy

The -proxy option causes pr3287 to use a proxy server to connect to the host. The syntax of the option is:
type:host[:port]
The supported values for type are:
Proxy Type
Protocol
Default Port
http
RFC 2817 HTTP tunnel (squid)
3128
passthru
Sun in.telnet-gw
none
socks4
SOCKS version 4
1080
socks5
SOCKS version 5 (RFC 1928)
1080
telnet
No protocol (just send connect host port)
none

The special types socks4a and socks5d can also be used to force the proxy server to do the hostname resolution for the SOCKS protocol.

See Also

x3270(1), c3270(1), telnet(1), tn3270(1)
Data Stream Programmer's Reference, IBM GA23-0059
Character Set Reference, IBM GA27-3831
3174 Establishment Controller Functional Description, IBM GA23-0218
RFC 1576, TN3270 Current Practices
RFC 1646, TN3270 Extensions for LUname and Printer Selection
RFC 2355, TN3270 Enhancements

Copyrights

Copyright © 1993-2009, Paul Mattes.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

*
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
*
Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC `AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Version

pr3287 3.3.10ga4
This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/pr3287/html/ReleaseNotes.html0000644000175000017500000016451711261530004020354 0ustar bastianbastian pr3287 Release Notes

Changes in x3270, c3270, wc3270, s3270, tcl3270, pr3287 and wpr3287 3.3

3.3 is the current development line for the x3270 suite.

Changes in version 3.3.10ga4, 2. October 2009

  • [all x3270] Improved the File Transfer summary display.
  • [all x3270] Removed the keyboard lock when processing an Enter AID in SSCP-LU mode.
  • [x3270] Fixed a build problem when DBCS support is disabled.
  • [c3270] Made the special keymap key names (e.g., PRINT) case-insensitive.
  • [c3270] Fixed a problem with keyboard input in ISO 8859 locales.
  • [x3270] Increased the maximum number of fonts scanned to 50000.

Changes in version 3.3.10ga3, 15. September 2009

  • [x3270] Fixed some bugs in the xmkmf-free build.

Changes in version 3.3.10alpha2, 10. September 2009

  • [c3270] Added the ability to move the 3270 cursor with the mouse, if the terminal supports it. Add a Mouse resource, which can be set to False to disable it.
  • [all 3270] Added a Translate keyword to the Transfer action's parameters and an additional question to the interactive c3270/wc3270 Transfer dialog, to allow the automatic remapping of text (usually done to get the most accurate translation) to be disabled.
  • Restored the pop-up window that displays trace files.

Changes in version 3.3.10alpha1, 3. September 2009

  • [3270] Allow the program to be built without xmkmf.
  • [all 3270] Fixed the mapping of EBCDIC X'FF' to U+009F in ASCII-mode file transfers.
  • [all 3270] Fixed a crash in CUT-mode binary file sends, and corrected the local fopen() flags when receiving a binary file.
  • [x3270] Added the APL up- and down-arrow characters (↑ and ↓) to the 12-point fonts (thanks to Paul Scott for the fix).
  • [all 3270] Script comments are now allowed (any input line beginning with # or !).
  • [wc3270] Added support for the Enhanced keymap modifier (EnhancedReturn is the keypad Enter key. Also added Enter, PageUp and PageDown as aliases for the Windows keys RETURN, PRIOR and NEXT.
  • [wc3270] Added oversize, font size and background color support to the Session Wizard.
  • [x3270] Fixed a problem with ignored -set and -clear options.
  • [c3270 and wc3270] Added support for the -oversize auto option, which allows the emulator to use the entire area of the terminal or console window it is running in.
  • [x3270] Removed the huge delay at start-up.
  • [x3270, c3270, s3270 and wc3270] Added support for TCP-socket-based scripting via the -scriptport option. For wc3270, this is the first time that scripting has been available.
  • [all 3270 except x3270] Added support for the screenTraceFile resource.
  • [all 3270] Fixed a file descriptor leak with the -socket option.
  • [all 3270] Fixed a crash with the Toggle action and undefined toggles.
  • [wc3270] Implemented no-install mode (allowing wc3270 to run without installing the software) and auto-shortcut mode (where wc3270 automatically creates a temporary shortcut file to match a session file and runs it).
  • [all 3270] When a hostname resolves to multiple addresses, try each until one works.
  • [all 3270] Corrected an issue where the keyboard would lock on the first screen when connecting to hosts like Hercules.
  • [wc3270] Added mappings of the Page Up and Page Down keys to PF(7) and PF(8) respectively.
  • [wc3270, ws3270] Removed the .dll files from the distribution.
  • [c3270] Corrected an issue with cursor and function keys not being recognized if they are the first key pressed.
  • [all 3270] BIND image screen sizing is now observed.
  • [pr3287 and wpr3287] Corrected the -charset documentation on the manual page.
  • [all 3270] Resurrected flipped-screen mode via the Flip and ToggleReverse actions.
  • [all 3270] Added a Seconds form to the Wait action, allowing a script or macro to delay itself an arbitrary length of time.
  • [wc3270] Modified the PrintText action so that Wordpad is started minimized.

Changes in version 3.3.9ga11, 25. March 2009

  • [x3270 and c3270] Re-enable the ibm_hosts file (it was accidentally being ignored).
  • [all but wc3270] Don't crash when there is no iconv translation for the locale codeset.
  • [all but x3270] Fixed a build failure in glue.c when DBCS was disabled.
  • [wc3270] Corrected the default keymap so that the uppercase versions of the Alt mapping also work.
  • [wc3270] Corrected the documentation of the printTextFont and printTextSize resources.
  • [c3270] Corrected a number of errors in parsing CursesColorForxxx resources.
  • [c3270] Added support for -rv, which puts c3270 into black-on-white mode.
  • [c3270] Added support for 16-color terminals, with the -color8 option overriding this and forcing 8-color support only. On a 16-color terminal, -allbold is no longer the default.
  • [c3270, wc3270, s3270 and tcl3270] Ensured that command-line parameters override session files.
  • [c3270] Made session files replace profiles, rather than just overridding any common definitions. This is more intuitive and consistent with x3270.

Changes in version 3.3.9ga11, 27. February 2009

Common Changes

  • Improved hostname parsing. Now backslashes can be used to quote any character, and square brackets can be used to quote any element (LU name, host name, or port).
  • Fixed a number of compiler warnings from newer versions of gcc and a number of small memory leaks.
  • Overhauled the host code pages and CGCSGIDs for DBCS. Added sbcsCgcsgid and dbcsCgcsgid resources to override the compiled-in values.
  • Added a caption text option to the PrintText action, which will place the specified caption above the screen image. Within the text, the string %T% is interpolated to a timestamp.
  • Improved the state dump when tracing starts to include NVT and SSCP-LU state and the SNA BIND image.
  • Updated the copyright and licensing notices (now a standard BSD license).
  • Added support for carriage-return (0x0d) characters in the String action, which imply the Newline action.
  • Changed the Attn action so that it sends an IAC BREAK in TN3270 mode, and locks the keyboard in TN3270E mode when the session is not SNA bound.
  • Added Traditional Chinese (host code page 937) support.
  • Extended the String action's \e and \x sequences to accept 4-digit hex values, thus allowing EBCDIC DBCS input and arbitrary Unicode input. Also added \u as an alias for \x.

Changes to x3270

  • Fixed a crash when pasting an empty selection.
  • Made the Query Reply response for x3270 identical to the other tools.
  • Included fonts for Traditional Chinese.

Changes to x3270 and c3270

  • Removed the nested copy of pr3287. from the source. pr3287 must now be built separately from its own package.

Changes to wc3270

  • Corrected a problem with color mapping in the OIA.
  • Changed the New Session Wizard to the Session Wizard and gave it the ability to edit existing session files and re-create missing session files. Note that this ability is limited to session files created with 3.3.9beta10 or later.
  • Added a wc3270.printer.codepage resource to set the Windows code page for the associated pr3287 printer session.
  • Simplified the operation of the New Session Wizard, so it asks fewer questions.
  • Added a pager to interactive mode.
  • Made the PrintText font and point size configurable via the printTextFont and printTextSize resources.
  • Changed the default 'blue' color for created shortcuts to a somewhat lighter shade, to make it more readable.
  • Changed the Session Wizard to specify the code page and proper font when creating shortcuts for DBCS sessions. This should allow DBCS to work on Windows 2000 and Vista.
  • Included ws3270 in the wc3270 release.

Changes to c3270 and wc3270

  • Added feedback for the progress of file transfers.
  • Implemented the Info action, which writes a message to the OIA (the line below the display).
  • Added a no-prompt mode, via the -noprompt command-line option and the noPrompt resource .
  • Added automatic reconnect, via the -reconnect command-line option and the reconnect resource.

Changes to ws3270 (formerly available as a pre-release)

  • Fixed a bug which resulted in all command timings being displayed as '-'.
  • Added the -localcp option and localCP resource to change the Windows code page used for local workstation I/O.
  • Added DBCS support and support for building using Microsoft tools.

Changes to pr3287 and wpr3287

  • Fixed a serious character-mapping bug.
  • Added DBCS support.

Changes to specific versions

  • [c3270, s3270, s3270, ws3270 and x3270] Added support for session files.
  • [All except wc3270 and ws3270] Extended the rtf option of the PrintText to non-Windows platforms.
  • [All except x3270] Fixed a number of issues with -xrm option processing and keymap display when backslash sequences were used.

Changes in version 3.3.8p2, 13 December 2008

  • [wc3270] Corrected the handling of 8-bit and DBCS characters in the PrintText action.
  • [tcl3270] Extended configure to find the Tcl library version automatically.
  • [wc3270] Corrected a problem which caused mouse clicks not to be recognized (not moving the cursor) if NumLock was set.
  • [all] Corrected the configure script to recognize a separately-installed iconv library even if the iconv() function is defined in libc.
  • [wc3270] Restored the bell sound, and added a visualBell resource to disable it.

Changes in version 3.3.8p1, 20 October 2008

  • [wc3270] Restored the Ctrl-] mapping for the Escape action, which had been inadvertently removed.
  • [wc3270] wc3270 now starts successfully on Windows Vista.
  • [c3270] On platforms that require the iconv library, c3270 once again recognizes ncurses names in keymaps.
  • [x3270] The module keysym2ucs.c now builds on FreeBSD.
  • [x3270] Selections now work properly on platforms that do not support XA_UTF8_STRING.

Changes in version 3.3.8, 11 October 2008

Version 3.3.8 includes a significant internal change, using Unicode for all translations between the host and the local workstation. This change should be transparent, but users who depended on certain behaviors of the old implementation may see unexpected differences.

Common Changes

  • Many more EBCDIC characters, such as Graphics Escape line-drawing and APL characters, are now properly displayed (even without special 3270 fonts), traced, cut/pasted with other applications, and returned by scripting actions like Ascii.
  • With two exceptions, the locale's encoding is now observed consistently when reading keymaps, generating trace files, etc. The exceptions are:
    • tcl3270 always uses UTF-8, per the internal Tcl convention.
    • Because Cygwin doesn't really support locales, the Windows ANSI code page is used as the local encoding instead.
    • Stateful encodings such as ISO 2022 are untested and very likely do not work.
  • The ICU library is no longer used, and ICU .cnv files are no longer included with the code.
  • Translation to/from the local encoding requires one of two facilities: Either libc must support __STDC_ISO_10646__ (wchar_ts are defined to be unicode values, as on Linux and Windows), or there must be an iconv library that can translate between UTF-8 and all local encodings.
  • DBCS support is enabled by default, except on Windows. It can be explicitly disabled in the configure script to reduce the size of the executable (removing several large translation tables).
  • The -v/--verbose option has been added to display build and copyright information.
  • The Thai host code page has changed from 838 to 1160.

Changes Common to the 3270 Terminal Emulators

  • The Key action now accepts Unicode arguments in the form U+nnnn, removing possible ambiguity from translating from the
  • Added a Source action to read script commands from a file.
  • Added a 10 second timeout to the start of the Transfer action.
  • Added an unlockDelayMs resource to change the number of milliseconds of delay before atually unlocking the keyboard after the host requests it. The default is 350; use 0 to disable the delay altogether.
  • IND$FILE file transfer now transfers DBCS text files properly.

Changes Common to 3287 Printer Emulators

  • Added direct support for all x3270 host character sets via the -charset option.
  • Added -trnpre and -trnpost options to specify files containing transparent data to send to the printer before and after each print job, respectively.

Product-Speific Changes

  • [x3270] Commands entered into the Print Screen Text dialog are now saved by the Save Changed Options in File option.
  • [x3270] Fixed some bad interactions between the pop-up keypad and the GNOME window manager.
  • [x3270] The Euro fonts have been folded into the standard fonts.
  • [x3270] The font menu is now arranged hierarchically by foundry and family.
  • [c3270] Added an underscore toggle to allow underlined fields to be displayed even on consoles with no native underlining support, by substituting underscore '_' characters for blanks and nulls in underlined fields.
  • [c3270] Overhauled Meta and Alt key support. Removed support for the archaic Meta modifier in keymaps (it was an alias for setting bit 0x80 in each key). Replaced it with an Alt modifier, which matches the ESC sequence sent for the Alt key by many terminals, and which can be combined with full 8-bit input characters.
  • [c3270] Changed the interpretation of keymaps so that keys and symbols are matched in Unicode. That is, keymap text is converted from the current locale's encoding to Unicode before matching, and input character codes are converted to Unicode before matching. This eliminates the difficulty in creating keymaps and interpreting traces in non-Latin-1 locales -- needing to translate from the accidental interpretation of 8-bit values as Latin-1 when they are not -- but with the side-effect of rendering some carefully-crafted existing keymaps invalid. Keymaps can also be written using Unicode U+nnnn notation.
  • [c3270] Changed the metaEscape resource so that auto means on, instead of using the terminfo km resource.
  • [c3270] Added an acs resource to control the use of curses ACS codes. If c3270.acs is set to true (the default), c3270 will use curses ACS codes for line-drawing characters. If set to false, it will display line-drawing characters with Unicode.
  • [wc3270] Added an underscore toggle to control how underlined and blinking fields are displayed. If it is set (the default), underlined fields are displayed by substituting underscore (_) characters for blanks and nulls, and blinking fields actually blink. If it is clear, underlined and blinking fields are displayed with highlighted backgrounds, which is compatible with previous verions of wc3270.
  • [wc3270] Left-clicking with the mouse will now move the cursor to that location.
  • [wc3270] The PrintText action now works, and is mapped by default to the sequence Alt <Key>p. The printer.name resource defines the default printer to use.
  • [wc3270] The PrintText action can now be used to produce a RichText snapshot of the screen contents, via the rtf keyword.
  • [wc3270] The program longer attempts to set the console code page, which was error-prone and unnecessary.
  • [wc3270] The idle command feature now works, controlled by the idleCommand, idleCommandEnabled and idleTimeout resources.
  • [wc3270] The program no longer attempts to set the console code page, which could lead to hangs on Vista.
  • [wc3270] The installation now creates a program group item to explore the wc3270 Application Data directory.
  • [wc3270] Corrected a problem with console color overrides, which prevented reverse-video mode (white background) from working properly. For now, the recommended method for enabling reverse video mode is to add these lines to your session file:
          wc3270.consoleColorForHostColor0: 15
          wc3270.consoleColorForHostColor7: 0
  • [wc3270] wc3270 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.
  • [tcl3270] Added a commandTimeout resource to force any Tcl3270 command to time out after the specified number of seconds. (Thanks to Mark Young.)
  • [tcl3270] Fixed a per-command memory leak. (Thanks to Mark Young.)
  • [wpr3287] Added a -printercp option to specify a particular code page for printer output.
  • [wpr3287] wpr3287 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.

Changes in x3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in x3270 3.3.7p7, 4. July 2008

  • Bug Fixes:
    • Corrected input of 8-bit characters when x3270 is run in a UTF-8 locale.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.
  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.

Changes in x3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Fixed an issue with Idle commands, which would cause x3270 to exit with a Not Found error as soon as the idle command fired.

Changes in x3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed the annoying delay when x3270 starts with an error pop-up.
    • Shortened the manpage so that it displays on non-groff platforms. The full text is still available in the HTML version.
    • Plugged a number of memory leaks.
    • x3270 will now compile on platforms that do not support IPv6, such as Cygwin.
    • x3270 will no longer crash or spin when the -script option is used.
    • Shifted function keys should work again (they map to PF13-PF24).
    • The screen can now be resized larger, as well as smaller.
    • Removed the dependency on <bitmaps/gray>, which required installing an obscure X11 development package on some platforms.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added a SelectAll action, mapped to Ctrl-A.

Changes in c3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.
    • Allowed c3270 to build under SLES 10's unusual ncurses configuration.

Changes in c3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in c3270 3.3.7p4, 29. February 2008

  • Bug Fixes:
    • Fixed c3270's configure script again, so it will build on systems without the ncurses library.
    • Enabled idle command functionality, which had been accidentally disabled.

Changes in c3270 3.3.7p1, 28. December 2007

  • Bug Fixes:
    • c3270's configure script would not detect missing ncurses header files, and c3270 would not build if ncursesw was not installed.

Changes in c3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • c3270 will now display characters such as the notsign ¬ properly in terminal windows in UTF-8 locales. Note that this display support requires an ncurses or curses library that supports wide characters.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added display of the host code page and locale codeset to the show status command.
    • Added support for changing the color mappings. The curses color for a given host color can be specified with the resource c3270.cursesColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a curses color number (0 through 7).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      c3270.cursesColorForDefault
      c3270.cursesColorForIntensified
      c3270.cursesColorForProtected
      c3270.cursesColorForProtectedIntensified
             
      The value for each of these is a curses color number (0 through 7).

Changes in wc3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed idle command support.

Changes in wc3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Fixed a problem with transferring binary files, where 0x0d characters might be acidentally added to or removed from the data.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in wc3270 3.3.7p5, 11. April 2008

  • Bug Fixes:
    • After installation is complete, get rid of mkshort.exe, which shares its name (but not its functionality) with a computer surveillance application.
    • Corrected several issues with key event processing and the default keymap.

Changes in wc3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Changed the New Session Wizard to create the Application Data directory, so wc3270 can be run by any user, not just the one that installed it.
    • Changed the default window title from the pathname of the session to just the session name.

Changes in wc3270 3.3.7p2, 15. January 2008

  • Bug Fixes:
    • Fixed an embarassing problem that kept wpr3287 from starting.

Changes in wc3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed line-drawing characters.
    • Enabled IPv6 support for Windows XP and later.
    • Set the input code page correctly, so that keyboard input works correctly when there is a mismatch between the default Windows code page and the code page implied by the wc3270 character set option.
  • New Features:
    • Added limited support for Windows 98. wc3270 will install and run on Windows 98, but internationalization support is limited -- the only supported host code page is 37, and the only supported Windows code page is 437. This is expected to improve in the future.
    • Added a wc3270.highlightUnderline resource to control highlighting of underlined and blinking text. (Set to false to disable background highlighting.)
    • Moved session files, keymaps and trace files to the Application Data directory. (wc3270 will still look in its installation directory for session files and keymaps, after first searching the Application Data directory.) This makes wc3270 a better Windows citizen in general, and a better Vista citizen in particular.
    • Added support for changing the color mappings. The console color for a given host color can be specified with the resource wc3270.consoleColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a console color number (0 through 15).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      wc3270.hostColorForDefault
      wc3270.hostColorForIntensified
      wc3270.hostColorForProtected
      wc3270.hostColorForProtectedIntensified
             
      The value for each of these is a host color number; the actual color displayed is defined by the corresponding wc3270.consoleColorForHostColorn resource.
    • Added a new cp1153 character set. It implements host code page 1153 and uses Windows code page 1250, used primarily in Central Europe.
    • Added display of the Windows code page to the character set screen in the New Session Wizard.
    • Added display of the host and Windows code pages to the show status command.

Changes in s3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in s3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in s3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer(Ascii) actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

      NOTE: If you were were previously running s3270 in a UTF-8 locale, this is an incompatible change. To ensure the previous behavior, set your locale to C before starting s3270.

Changes in tcl3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in tcl3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in tcl3270 3.3.7p3, 22. Febuary 2008

  • Bug Fixes:
    • Fixed a problem with non-ASCII characters returned by the Ascii command.
    • Fixed a problem with the Connect command, which resulted in subsequent actions not blocking properly.

Changes in tcl3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

Changes in pr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in pr3287 3.3.7, 25. December 2007

  • Enhancements:
    • Added proxy support via the -proxy option.

Changes in wpr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in wpr3287 3.3.7, 25. December 2007

(none)

Changes in x3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Fixed the highlighted attribute for individual regions of the screen (versus the highlighted field attribute); it had been accidentally disabled.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Pseudo-Color mode is no more. This was the mode that x3270 used when a 3278 model was specified, or if the m3279 resource were set to False. Pseudo-Color assigned colors to regions of the screen based on intensity and light-pen selectability, and did not support 3279 colors. Now turning off color or selecting a 3278 results in something that looks like a 3278 (i.e., it's green). To resurrect Pseudo-Color mode, set the following resources:
        x3270.inputColor: orange
        x3270.boldColor: cyan

Changes in c3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Got local process (-e) support to work again.
    • Fixed -mono -allbold mode.
    • c3270 now paints the entire screen, not just the areas it intends to use, so there are no uninitialized regions.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for the 3270 background color attribute.
    • Added more mappings to the 3270 default keymap (IC -> ToggleInsert, Ctrl<Key>U -> DeleteField, etc.).
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Like x3270 and wc3270, -model 3278 now specifies a green-screen 3278 (if the terminal supports color), and like x3270, -mono specifies that any color capabilities reported by the terminal should be ignored.

Changes in wc3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Restored line-drawing character support.
    • Restored background color support in NVT mode.
    • Corrected some screen rendering issues.
    • Fixed screen trace (-set screenTrace).
    • Removed the -mono option and mono resource.
  • New Features:
    • Added the Spanish character set, CP 284.
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for setting the window title, either automatically, or via the -title option or wc3270.title resource.
    • Added gray background highlighting of underlined and blinking text. Windows consoles don't support these attributes, but at least they can be distinguished from other text now.
    • Added background color support in 3270 mode.
    • Added a window to monitor trace output.
    • Greatly improved key event tracing.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in s3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in tcl3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in wc3270 3.3.5p9, 10. June 2007

  • Bug Fixes:
    • The shortcut cursor size property is now obeyed.
    • The -model 3278 option now works correctly.
  • New Features:
    • Added secure connection status to the status line and the show status command.
    • Reverse video is now supported.
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added a keymap tutorial to the documentation.

Changes in wc3270 3.3.5p8, 29. April 2007

  • Bug Fixes:
    • Fixed a hang when wpr3287 exits unexpectedly.
    • Improved behavior when input comes from multiple sources, such as when pasting text.
    • Greatly improved screen update speed.
  • New Features:
    • Added wpr3287 support back to the wizard. It was in the GUI version, but was never in the text version.
    • Integrated new back-end printer support in wpr3287, including a new wc3270.printer.name resource.
    • Added a Paste() action, mapped to Ctrl-V, to do multi-line paste properly.
    • Added a .wc3270km suffix to keymap files.
    • Added keymap support to the wizard.
    • Added interactive prompting to the Transfer() action.

Changes in wpr3287 3.3.5p8, 29. April 2007

  • New Features:
    • Added direct support for Windows printers, instead of relying on the DOS PRINT command. This included changing the -command option to a -printer option, to specify the Windows printer to use as a back end.

Changes in x3270 3.3.5p6, 7. April 2007

  • Bug Fixes:
    • x3270 will now build with ICU 3.6.
    • A long-standing screen update bug is finally fixed.
    • The unused x3270hist.pl script is no longer installed.

Changes in c3270 3.3.5p4, 7. April 2007

  • Bug Fixes:
    • c3270 can now be built without File Transfer support.
    • The unused x3270hist.pl script is no longer installed.

Changes in wc3270 3.3.5p3, 2. March 2007

  • Bug Fixes:
    • Reverted the wc3270 New Session Wizard to the non-GUI version, because the GUI version, built with Microsoft Visual C++ 2005 Express Edition, had too many dependencies (latest service pack, .NET framework) on the target machine.

Changes in wc3270 3.3.5p2, 16. February 2007

  • Bug Fixes:
    • Ensured that the desktop shortcuts specify Lucida Console, so non-ASCII-7 characters are displayed properly.
  • New Features:
    • Added a file association for the .wc3270 suffix.
    • Replaced the console version of the New Session Wizard with a proper GUI version.

Changes in wc3270 3.3.5p1, 6. February 2007

  • Bug Fixes:
    • Added the working directory to the desktop links created by the setup program.
  • New Features:
    • Added printer session (wpr3287) support.

Changes in x3270 3.3.5, 1. February 2007

  • Bug Fixes:
    • Fixed a crash when the user's home directory or the ~/.x3270connect file wasn't writeable.
    • Fixed some endcases when pasting text that wraps lines and a field skip is encountered.
    • Fixed the handling of SI characters in cut/pasted text.
    • Allow the use of ICU version 3.0 or greater.
    • Fixed a scripting hang when the host disconnects during Wait(output)).
    • Turned the unlockDelay option back on by default.
    • Fixed a problem where unlockDelay could result in the keyboard never unlocking, if the host unlocked the keyboard often enough.
    • Added a workaround for very old snprintf() implementations.
    • Fixed a problem with DBCS input corrupting existing DBCS subfields.
    • Fixed a problem with the Wait action in the expect glue. (Thanks to Jason Howk for the fix.)
    • Enlarged the input buffer in x3270if. (Thanks to Igor Klingen for the fix.)
    • Fixed a SIGCHLD handler issue on AIX.
    • Fixed a problem with CR/LF translation on ASCII file transfers.
  • New Features:
    • Added a -socket option to x3270, s3270 and c3270 to allow a script to connect to a Unix-domain socket to control the emulator, and added a -p option to x3270if to connect to the socket.
    • Added optional support for plugins, with a first plugin to implement command history on VM/CMS and TSO hosts.
    • Allow arbitrary color names (#rrggbb) to be used in color schemes.
    • Added support for hierarchical macro menus.
    • Added an XkSelector resource to allow transparent support of non-English keyboards.
    • Added preliminary support the 16-bit display fonts and the Persian character set.
    • Added Title and WindowState actions to allow the x3270 window title and icon state to bw changed respectively.

Changes in x3270 3.3.4, 10. April 2005

  • Bug Fixes:
    • The code once again builds on Cygwin and other systems not supporting IPv6.
    • The -xrm option works again in x3270.
    • The -name X Toolkit option works with x3270, though not yet with app-defaults files.
    • Removed spurious 'no child' error messages from pr3287 on some systems.
    • Removed unintended blank-line suppression from the output of PrintText html string.
    • Restored some missing keymap definitions (rlx, ow) and some missing lines from other keymap definitions (apl).
    • Restored the automatic keyboard unlock delay when processing a macro or string. This allows macros and strings with embedded AID sequences to work with hosts that unlock the keyboard before they finish processing a command. Scripts are presumed to be able to figure out when the host is finished, or can set the unlockDelay resource to true get the delay all the time.
    • Fixed an apparent hang (actually just extreme slowness) when the host sends a message larger than 4 Kbytes on an SSL tunnel.
    • Removed spurious 'Wait timed out' errors in the Wait action.
  • New Features:
    • Added a newer, more flexible version of Don Russell's RPQNAMES support.
    • Added support for IPv6.
    • Added an oldclick keymap to restore the pre-3.3 mouse click behavior.

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta2, 1. February 2005

  • Bug Fixes:
    • Reduced the Resident Set Size (RSS) of x3270 from about 40 MBytes to less than 4 MBytes. This was a bug in how compiled-in app-defaults files were generated.
    • Got separate app-defaults files (configure --enable-app-defaults) to work again.
    • Fixed a crash when a login macro is used in NVT mode or when the host un-negotiates TN3270E mode.
    • Fixed the titles of the Copyright and Configuration pop-ups.
    • Temporarily disabled the RPQNAMES Query Reply. It was causing IBM QMF to crash. It can be re-enabled by adding #define X3270_RPQNAMES 1 to conf.h. Hopefully a proper fix can be found shortly.
  • New Features:

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta1, 31. December 2004

  • Bug Fixes:
    • The Transfer() action did not work at all -- it generated (null) as the name of the IND$FILE command. Also improved its behavior when invoked from a script or macro in x3270 and c3270.
    • Corrected the definition of the hebrew (code page 424) character set, removing undefined characters.
    • Corrected the display character set for the brazilian (code page 275) character set.
    • Corrected the character set definition logic so that undefined ASCII codes are truly undefined in NVT mode.
    • Corrected the ibm_hosts file (the hostsFile resource or the -hostsfile option). Variable and tilde substitution are now performed on the value, and if a non-default value is specified and the file does not exist, an error pop-up is generated.
    • Added a pause to make sure that c3270 start-up error messages will be seen.
    • Got the c3270 default field colors right, and made all-bold mode actually make all the fields bold.
    • Fixed the default primary/alternate screen size (it was alternate, it's supposed to be primary).
    • Fixed c3270 color support with ncurses and 80/132 screen-size switching. Sometimes only one of the screen sizes had color.
    • Fixed a memory leak in pr3287 when the -reconnect option is used. (Thanks to Marcelo Lemos for the fix.)
    • Fixed the output of NVT-mode ANSI line-drawing characters in the Ascii() scripting action. These were formerly all output as blanks; now they are output in the same was as x3270 3.2.
    • Fixed the display of NVT-mode ANSI line-drawing characters when x3270 is using a 3270 font.
    • Fixed the display of DBCS blanks, which sometimes displayed as 'undefined' characters.
    • Fixed DBCS character display with fonts whose maximum bounds are larger than their reported line-spacing bounds.
    • Fixed make depend.
    • Fixed x3270_glue.expect, which got confused when there was a whitespace-delimited double-quote in the emulator output.
    • Fixed crashes when the entire File or Options menus were suppressed.
    • Fixed a scripting hang when an UNBIND command arrived while an AID was pending.
    • Fixed a problem with the incomplete processing of a NULLing Program Tab order, which could leave formatting artifacts on the screen.
    • Removed <subchar1> clauses in two of the .ucm files that prevents later versions of ICU's makeconv from accepting them, and removed DOS carriage-return characters from the CP837 .ucm file.
    • Corrected some DFT-mode file upload problems: corrected the data length, and corrected an empty-buffer problem when the file size was an even multiple of the buffer size.
    • Corrected a DBCS conversion problem with ICU 3.0.
    • Added variable buffer-size support to DFT file transfers.
    • Corrected a line-drawing character bug in c3270.
    • Fixed a buffer overflow problem in the ReadBuffer action.
    • Fixed garbage characters generated for APL data by the Ascii and ReadBuffer actions.
    • Allow 0 timeouts in Wait actions.
  • New Features:
    • Added command-line options to the pr3287 trace file.
    • Added support for dead keys (acute, grave, circumflex, tilde, diaeresis) to the x3270 default keymap, and improved the Latin-1 compose map. (Thanks to Marcelo Lemos for the change.)
    • Added new actions for improved mouse interactions, and made them the default. Button 1 now moves the cursor, without the Shift key.
    • Added support for DBCS in pr3287, but only when started from an x3270 or c3270 session.
    • Added Don Russell's RPQNAMES support.
    • Removed Minolta-copyrighted 5250 code, because of licensing problems.
    • Added an aidWait toggle to allow AID script actions (Clear, Enter, PA and PF) to complete immediately without waiting for the host to unlock the keyboard, and a Wait(Unlock) action action to block a script until the keyboard is unlocked, regardless of the state of the new toggle.
    • Removed the old scripting hack that delayed actually unlocking the keyboard for 50ms after the host indicates that it should be unlocked. Added an unlockDelay resource, which can be set to true to turn the delay hack back on.
    • Added a dftBufferSize resource to set the default DFT buffer size.
    • Added an x3270 Save Screen Text menu option to save the screen image in a file, optionally in HTML.
    • Added options to the PrintText action to save to a file, to save HTML, and to return the text as script data.

Changes in x3270, c3270, s3270 and tcl3270 3.3.2, 1. December 2003

  • Bug Fixes:
    • Corrected an x3270 screen-redraw crash when using fixedSize and xim.
    • Corrected a problem in x3270_glue.expect, which caused Tcl syntax errors if a string began with a dash. Thanks to David Taylor for the fix.
    • Fixed a problem with x3270 DBCS input when using a single DBCS/SBCS character set.
    • Made DBCS encoding recognition automatic wherever possible, leaving the -km option for cases when x3270 can't figure it out from the locale.
    • Made c3270's configure more robust when it can't find one or the other of libncurses or ncurses.h.
    • Got automatic pr3287 start-up (-printerlu) working again in c3270.
    • Fixed an s3270 crash which made s3270 3.3.1alpha10 pretty much useless.
  • New Features:
    • Added support for Cyrillic keysyms to the x3270 Default() action.
    • Added an 'unlocked' icon for unencrypted connections, if x3270 is built with SSL/TLS support.
    • Error messages are now written to the trace file.
    • The response to the TELNET TIMING MARK option has been changed to make it compatible with the majority of TELNET clients. The response to DO TIMING MARK is now WONT TIMING MARK. To restore the previous behavior (responding with WILL TIMING MARK, originally derived from the BSD TELNET client), set the resource x3270.bsdTm to true.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha10, 29. August 2003

  • Bug Fixes:
    • Made nondisplay fields invisible to the Ascii() action.
    • Corrected start-field values at the beginning of data stream traces and in the 3270 Read Buffer response.
    • Corrected a tight loop in the macro error cancellation logic.
    • Corrected a crash when connecting to a host and there is no menu bar visible.
    • Corrected x3270 crashes in monochrome mode (-mono) and pseudo-color mode (-model 3278).
  • New Features:
    • Added a ReadBuffer() action to dump the entire contents of the 3270 buffer, including field attributes and extended attributes.
    • Added support for suppress resources for each menu item. If set to True, that menu item will not appear.
    • Added a suppressActions resource, a list of the names of actions to disable. This is primarily for controlled environments where the user does not have access to the x3270 command line, but can edit keymap definitions.
    • Added a Setverbose function to x3270_glue.expect to allow verbosity to be changed on the fly. (Courtesy of David Taylor.)
    • Added the ability to define resources in an environment variable, $X3270RDB. The environment variable overrides values set in the profile file, but is overridden by command-line options.
    • Added a fixedSize resource to force the x3270 main window to a particular size. fixedSize has the form widthxheight, in pixels. The 3270 display will float in the center of the window, if need be.
    • Added a new x3270 keypad position (x3270.keypad): insideRight. This positions the keypad on top of the upper right-hand corner of the x3270 window, just under the keypad button on the menu bar.

Changes in pr3287 3.3.1alpha10, 10. August 2003

  • Enhancements:
    • Added support for the -tracedir option, to specify a directory to store trace files in.
    • Added support the the -eojtimeout option, to automatically flush any pending print job after a specified period of inactivity.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha9, 24. July 2003

  • Bug Fixes:
    • DBCS character set names are displayed in the x3270 Options->Font menu only when DBCS support is built into x3270.
    • Removed the concept of 'per-host' resources. Use profiles for this.
    • Fixed idle commands. They were pretty much hopeless in 3.3.1alpha8 and 3.2.20.
    • Fixed a Unicode conversion crash.
    • Fixed a bug in processing the Modify Field order, which would cause the character set attribute for the field to be accidentally reset to the default.
  • New Features:
    • x3270 user-specified lists (character sets, hosts, fonts, color schemes) can now be organized into sub-lists. The name Bob>Fred>Tony specifies that there is a sub-list called Bob, which contains a sub-list Fred, which contains the item Tony.
    • The TELNET START-TLS option is now supported.

Changes in pr3287 3.3.1alpha9, 30. July 2003

  • Bug Fixes:
    • Ignore SIGINT in the print job process, so that killing an interactive pr3287 with ^C won't cause buffered data to be lost.
    • Fixed a problem with losing a byte of data after an SHF order.
    • Fixed the SCS HT order, which was completely broken.
  • Enhancements:
    • Added support for SIGUSR1 to flush the print job.
    • Added support for the TELNET START-TLS option.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha8, 15. April 2003

  • Bug Fixes:
    • Builds cleanly on Linux with -Wall -ansi -pedantic.
    • Builds without OpenSSL libraries being present.
    • Correctly records Field Attributes in the initial screen snapshot in a Data Stream Trace file.
    • Auto-Skip fields work properly.
    • "Dead" positions in DBCS fields are handled correctly.
    • Invalid host DBCS characters are handled better and are displayed in the Data Stream Trace file.
    • The Erase action now works properly with DBCS characters.
    • The x3270 Visible Control Characters toggle now works properly.
    • The EBCDIC notsign '¬' can now be entered in c3270 with Ctrl-A, ^ (it formerly caused an error message).
  • New Features:
    • The Erase action is now the default for the BackSpace key in x3270.
    • Ctrl-A, a is now mapped onto the Attn action in the c3270 default 3270 keymap.
    • Four more Japanese host code pages have been added: 930, 939, 1390 and 1399. This uses new support for combined SBCS/DBCS code pages.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1, 14. February 2003

  • Bug Fixes:
    • (Same as x3270 3.2.20)
  • New Features:
    • DBCS support for Simplfied Chinese and Japanese, including x3270 integration with XIM.
    • Tunneled SSL support added (entire Telnet session inside of an SSL tunnel). Uses the OpenSSL library. Toggled with an 'L:' prefix on the hostname.
    • A Visible Control Characters toggle replaces x3270's 3270d Debug Font.
    • About x3270 pop-up split into three smaller pieces.
ibm-3270-3.3.10ga4/pr3287/html/Build.html0000644000175000017500000000501011254565667017031 0ustar bastianbastian pr3287 Build and Install Instructions

pr3287 Build and Install Instructions

To build pr3287, type:
    ./configure
    make
To install pr3287 in the default install directory (/usr/local/bin), type:
    make install

Notes for Solaris 2.x and Sun's C Compiler

Do not use Sun's BSD-compatibility compiler, /usr/ucb/cc. This is good advice in general, but in particular, pr3287 will not build with it. You should have a directory containing gcc (recommended) or Sun's standard compiler in your $PATH ahead of /usr/ucb.

Building on FreeBSD

FreeBSD's iconv library is installed in /usr/local, so the the following options must be passed to the configure script:
       ./configure LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include

Summary of configure Options

The pr3287 configure script accepts the following options:
 
--help Print a help message.
--prefix=prefix Install architecture-independent files (man pages) under prefix (defaults to /usr/local)
--exec-prefix=eprefix Install architecture-dependent files (executables) under eprefix (defaults to same as prefix)
--bindir=dir Install user executables (pr3287) in dir (defaults to eprefix/bin)
--disable-ssl
Leave out SSL (Secure Sockets Layer) support.  SSL support requires the OpenSSL library.
--with-ssl=dir
Specify the directory where the OpenSSL library is installed.

ibm-3270-3.3.10ga4/pr3287/config.sub0000755000175000017500000010115311254565704016120 0ustar bastianbastian#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ibm-3270-3.3.10ga4/pr3287/unicode.c0000644000175000017500000025016111254565704015733 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * unicode.c * A Windows console-based 3270 Terminal Emulator * EBCDIC/Unicode translation functions */ #include "globals.h" #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #include "3270ds.h" #if !defined(PR3287) /*[*/ #include "appres.h" #endif /*]*/ #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" #if !defined(PR3287) /*[*/ #include "utilc.h" #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(USE_ICONV) /*[*/ iconv_t i_u2mb = (iconv_t)-1; iconv_t i_mb2u = (iconv_t)-1; #if !defined(_LIBICONV_VERSION) || _LIBICONV_VERSION < 0x0108 /*[*/ typedef char *ici_t; /* old iconv */ #else /*][*/ typedef const char *ici_t; /* new iconv */ #endif /*]*/ #endif /*]*/ #define DEFAULT_CSNAME "us" #if defined(_WIN32) /*[*/ # if defined(WS3270) /*[*/ # define LOCAL_CODEPAGE appres.local_cp # else /*[*/ # define LOCAL_CODEPAGE CP_ACP # endif /*]*/ #endif /*]*/ /* * EBCDIC-to-Unicode translation tables. * Each table maps EBCDIC codes X'41' through X'FE' to UCS-2. * Other codes are mapped programmatically. */ #define UT_SIZE 190 #define UT_OFFSET 0x41 typedef struct { char *name; unsigned short code[UT_SIZE]; const char *host_codepage; const char *cgcsgid; const char *display_charset; } uni_t; static uni_t uni[] = { { "cp037", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp273", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "273", "273", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp275", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00c9, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x00c7, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e7, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e3, 0x003a, 0x00d5, 0x00c3, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f5, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e9, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "275", "275", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp277", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "277", "277", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp278", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "278", "278", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp280", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "280", "280", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp284", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "284", "284", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp285", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "285", "285", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp297", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "297", "297", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp424", { 0x5d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x05ea, 0x0000, 0x0000, 0x00a0, 0x0000, 0x0000, 0x0000, 0x21d4, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x00b8, 0x0000, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000 }, "424", "0x03ad01a8", "3270cg-8,iso10646-1,iso8859-8" }, { "cp500", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "500", "500", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp870", { 0x00a0, 0x00e2, 0x00e4, 0x0163, 0x00e1, 0x0103, 0x010d, 0x00e7, 0x0107, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x0119, 0x00eb, 0x016f, 0x00ed, 0x00ee, 0x013e, 0x013a, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x02dd, 0x00c1, 0x0102, 0x010c, 0x00c7, 0x0106, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x02c7, 0x00c9, 0x0118, 0x00cb, 0x016e, 0x00cd, 0x00ce, 0x013d, 0x0139, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x015b, 0x0148, 0x0111, 0x00fd, 0x0159, 0x015f, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00b8, 0x02db, 0x00a4, 0x0105, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x015a, 0x0147, 0x0110, 0x00dd, 0x0158, 0x015e, 0x00b7, 0x0104, 0x017c, 0x0162, 0x017b, 0x00a7, 0x017e, 0x017a, 0x017d, 0x0179, 0x0141, 0x0143, 0x0160, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x0155, 0x00f3, 0x0151, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x011a, 0x0171, 0x00fc, 0x0165, 0x00fa, 0x011b, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x010f, 0x00d4, 0x00d6, 0x0154, 0x00d3, 0x0150, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x010e, 0x0170, 0x00dc, 0x0164, 0x00da }, "870", "0x03bf0366", "iso10646-1,iso8859-2" }, { "cp871", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00fe, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00de, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "871", "871", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp875", { 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a8, 0x0386, 0x0388, 0x0389, 0x2207, 0x038a, 0x038c, 0x038e, 0x038f, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x00b4, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x00a3, 0x03ac, 0x03ad, 0x03ae, 0x0390, 0x03af, 0x03cc, 0x03cd, 0x03b0, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x03c9, 0x03ca, 0x03cb, 0x2018, 0x2015, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b1, 0x00bd, 0x0000, 0x00b7, 0x2019, 0x00a6, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00a7, 0x0000, 0x0000, 0x00ab, 0x00ac, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00a9, 0x0000, 0x0000, 0x00bb }, "875", "0x0464036b", "3270cg-7,iso10646-1,iso8859-7" }, { "cp880", { 0x0000, 0x0452, 0x0453, 0x0451, 0x0000, 0x0455, 0x0456, 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x0000, 0x045f, 0x042a, 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0403, 0x0401, 0x0000, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x040a, 0x040b, 0x040c, 0x0000, 0x0000, 0x040f, 0x044e, 0x0430, 0x0431, 0x0000, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0000, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0000, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x0000, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x005c, 0x00a4, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427 }, "880", "0x03bf0370", "iso10646-1,koi8-r" }, #if defined(X3270_DBCS) /*[*/ { "cp930", { /* 0x40 */ 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67, /* 0x48 */ 0xff68, 0xff69, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 0x50 */ 0x0026, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, 0x0000, /* 0x58 */ 0xff70, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, /* 0x60 */ 0x002d, 0x002f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, /* 0x68 */ 0x0067, 0x0068, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 0x70 */ 0x005b, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, /* 0x78 */ 0x0070, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 0x80 */ 0x005d, 0xff67, 0xff68, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 0x88 */ 0xff78, 0xff79, 0xff7a, 0x0071, 0xff7b, 0xff7c, 0xff7d, 0xff7e, /* 0x90 */ 0xff7f, 0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, /* 0x98 */ 0xff87, 0xff88, 0xff89, 0x0072, 0x0000, 0xff8a, 0xff8b, 0xff8c, /* 0xa0 */ 0x007e, 0x00af, 0xff8d, 0xff8e, 0xff8f, 0xff90, 0xff91, 0xff92, /* 0xa8 */ 0xff93, 0xff94, 0xff95, 0x0073, 0xff96, 0xff97, 0xff98, 0xff99, /* 0xb0 */ 0x005e, 0x00a2, 0x005c, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* 0xb8 */ 0x0079, 0x007a, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f, /* 0xc0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0xc8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xd0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* 0xd8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xe0 */ 0x0024, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* 0xe8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xf0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0xf8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } , "930", "0x04940122" /* 1172, 0290 */, "iso10646-1,jisx0201.1976-0" }, { "cp935", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "935", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp937", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "937", "0x04970025" /* 1175, 037 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp939", { /* 40 */ 0x0000, 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, /* 48 */ 0xff67, 0xff68, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 50 */ 0x0026, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, /* 58 */ 0xff70, 0xff71, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, /* 60 */ 0x002d, 0x002f, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 68 */ 0xff78, 0xff79, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 70 */ 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, 0xff80, 0xff81, /* 78 */ 0xff82, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 80 */ 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 88 */ 0x0068, 0x0069, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, 0xff88, /* 90 */ 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, /* 98 */ 0x0071, 0x0072, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, /* a0 */ 0x00af, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* a8 */ 0x0079, 0x007a, 0xff8f, 0xff90, 0xff91, 0x005b, 0xff92, 0xff93, /* b0 */ 0x005e, 0x00a3, 0x00a5, 0xff94, 0xff95, 0xff96, 0xff97, 0xff98, /* b8 */ 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0x005d, 0xff9e, 0xff9f, /* c0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* c8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* d8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x005c, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* e8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* f8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "939", "0x04940403" /* 1172, 1027 */, "iso10646-1,jisx0201.1976-0" }, #endif /*]*/ { "cp1026", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x007d, 0x0060, 0x00a6, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x02db, 0x00c6, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x005d, 0x0024, 0x0040, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x2014, 0x00a8, 0x00b4, 0x00d7, 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0x00ff, 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da }, "1026", "0x04800402", "iso10646-1,iso8859-9" }, { "cp1047", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x00ac, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1047", "1047", "iso10646-1,iso8859-1" }, { "cp1140", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1140", "0x02b70474" /* 695, 1140 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1141", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "1141", "0x02b70475" /* 695, 1141 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1142", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1142", "0x02b70476" /* 695, 1142 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1143", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1143", "0x02b70477" /* 695, 1143 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1144", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1144", "0x02b70478" /* 695, 1144 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1145", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1145", "0x02b70478" /* 695, 1145 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1146", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1146", "0x02b7047a" /* 695, 1146 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1147", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1147", "0x02b7047a" /* 695, 1147 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1148", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1148", "0x02b7047c" /* 695, 1148 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1149", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00de, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x20ac, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00fe, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1149", "0x02b7047d" /* 695, 1149 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1160", { 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, 0x005b, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0e48, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x005d, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x005e, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0e3f, 0x0e4e, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0e4f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, 0x0e5a, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e5b, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, 0x0e58, 0x0e59, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0e49, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0e3a, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x005c, 0x0e4a, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4b, 0x20ac }, "1160", "0x05730488" /* 1395, 1160 */, "iso10646-1,iso8859-11" }, #if defined(X3270_DBCS) /*[*/ { "cp1388", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "1388", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, #endif /*]*/ { "apl", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,iso10646-1" }, { "bracket", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37+", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { NULL } }; /* Code page aliases. */ typedef struct { char *alias; char *canon; } cpalias_t; cpalias_t cpaliases[] = { { "belgian", "cp500" }, { "belgian-euro", "cp1148" }, { "brazilian", "cp275" }, #if defined(X3270_DBCS) /*[*/ { "chinese-gb18030","cp1388" }, { "cp1027", "cp939" }, /* historical error */ { "cp290", "cp930" }, /* historical error */ #endif /*]*/ { "cp37", "cp037" }, #if defined(X3270_DBCS) /*[*/ { "cp836", "cp935" }, /* historical error */ #endif /*]*/ { "finnish", "cp278" }, { "finnish-euro", "cp1143" }, { "french", "cp297" }, { "french-euro", "cp1147" }, { "german", "cp273" }, { "german-euro", "cp1141" }, { "greek", "cp875" }, { "hebrew", "cp424" }, { "icelandic", "cp871" }, { "icelandic-euro", "cp1149" }, { "italian", "cp280" }, { "italian-euro", "cp1144" }, #if defined(X3270_DBCS) /*[*/ { "japanese-1027", "cp939" }, /* historical error */ { "japanese-290", "cp930" }, /* historical error */ { "japanese-kana", "cp930" }, { "japanese-latin", "cp939" }, #endif /*]*/ { "norwegian", "cp277" }, { "norwegian-euro", "cp1142" }, { "oldibm", "bracket" }, { "bracket437", "bracket" }, { "polish", "cp870" }, { "russian", "cp880" }, #if defined(X3270_DBCS) /*[*/ { "simplified-chinese","cp935" }, #endif /*]*/ { "slovenian", "cp870" }, { "spanish", "cp284" }, { "spanish-euro", "cp1145" }, { "thai", "cp1160" }, #if defined(X3270_DBCS) /*[*/ { "traditional-chinese", "cp937" }, #endif /*]*/ { "turkish", "cp1026" }, { "uk", "cp285" }, { "uk-euro", "cp1146" }, { DEFAULT_CSNAME, "cp037" }, { "us-euro", "cp1140" }, { "us-intl", "cp037" }, { NULL, NULL } }; static uni_t *cur_uni = NULL; void charset_list(void) { int i; int j; char *sep = ""; printf("SBCS host code pages (with aliases):\n"); for (i = 0; uni[i].name != NULL; i++) { Boolean any = False; char *asep = " ("; printf("%s%s", sep, uni[i].name); for (j = 0; cpaliases[j].alias != NULL; j++) { if (!strcmp(cpaliases[j].canon, uni[i].name)) { printf("%s%s", asep, cpaliases[j].alias); asep = ", "; any = True; } } if (any) printf(")"); sep = ", "; } printf("\n"); #if defined(X3270_DBCS) /*[*/ charset_list_dbcs(); #endif /*]*/ } /* * Translate a single EBCDIC character in an arbitrary character set to * Unicode. Note that CS_DBCS is never used -- use CS_BASE and pass an * EBCDIC character > 0xff. * * Returns 0 for no translation. */ ucs4_t ebcdic_to_unicode(ebc_t c, unsigned char cs, unsigned flags) { int iuc; ucs4_t uc; #if 0 /* I'm not sure why this was put in, but it breaks display of DUP and FM. Hopefully I'll figure out why it was put in in the first place and I can put it back under the right conditions. */ /* Control characters become blanks. */ if (c <= 0x41 || c == 0xff) uc = 0; #endif /* * We do not pay attention to BLANK_UNDEF -- we always return 0 * for undefined characters. */ flags &= ~EUO_BLANK_UNDEF; /* Dispatch on the character set. */ if ((cs & CS_GE) || ((cs & CS_MASK) == CS_APL)) { iuc = apl_to_unicode(c, flags); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs == CS_LINEDRAW) { iuc = linedraw_to_unicode(c /* XXX: flags */); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs != CS_BASE) uc = 0; else uc = ebcdic_base_to_unicode(c, flags); return uc; } /* * Translate a single EBCDIC character in the base or DBCS character sets to * Unicode. * * EBCDIC 'FM' and 'DUP' characters are treated specially. If EUO_UPRIV * is set, they are returned as U+f8fe and U+feff (private-use) respectively * so they can be displayed with overscores in the special 3270 font; * otherwise they are returned as '*' and ';'. * EBCDIC 'EO' and 'SUB' are special-cased to U+25cf and U+25a0, respectively. * * If EUO_BLANK_UNDEF is set, other undisplayable characters are returned as * spaces; otherwise they are returned as 0. */ ucs4_t ebcdic_base_to_unicode(ebc_t c, unsigned flags) { #if defined(X3270_DBCS) /*[*/ if (c & 0xff00) return ebcdic_dbcs_to_unicode(c, flags); #endif /*]*/ if (c == 0x40) return 0x0020; if (c >= UT_OFFSET && c < 0xff) { ebc_t uc = cur_uni->code[c - UT_OFFSET]; return uc? uc: ((flags & EUO_BLANK_UNDEF)? ' ': 0); } else switch (c) { case EBC_fm: return (flags & EUO_UPRIV)? UPRIV_fm: ';'; case EBC_dup: return (flags & EUO_UPRIV)? UPRIV_dup: '*'; case EBC_eo: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_eo: 0x25cf; /* solid circle */ case EBC_sub: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_sub: 0x25a0; /* solid block */ default: if (flags & EUO_BLANK_UNDEF) return ' '; else return 0; } } /* * Map a UCS-4 character to an EBCDIC character. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic(ucs4_t u) { int i; #if defined(X3270_DBCS) /*[*/ ebc_t d; #endif /*]*/ if (!u) return 0; if (u == 0x0020) return 0x40; for (i = 0; i < UT_SIZE; i++) { if (cur_uni->code[i] == u) { return UT_OFFSET + i; } } #if defined(X3270_DBCS) /*[*/ /* See if it's DBCS. */ d = unicode_to_ebcdic_dbcs(u); if (d) return d; #endif /*]*/ return 0; } /* * Map a UCS-4 character to an EBCDIC character, possibly including APL (GE) * characters. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic_ge(ucs4_t u, Boolean *ge) { ebc_t e; *ge = False; e = unicode_to_ebcdic(u); if (e) return e; /* Handle GEs. Yes, this is slow, but I'm lazy. */ for (e = 0x70; e <= 0xfe; e++) { if ((ucs4_t)apl_to_unicode(e, EUO_NONE) == u) { *ge = True; return e; } } return 0; } /* * Set the SBCS EBCDIC-to-Unicode translation table. * Returns 0 for success, -1 for failure. */ int set_uni(const char *csname, const char **host_codepage, const char **cgcsgid, const char **display_charsets) { int i; const char *realname; int rc = -1; Boolean cannot_fail = False; /* * If the csname is NULL, this is a fallback to the default * and the iconv lookup cannot fail. */ if (csname == NULL) { csname = DEFAULT_CSNAME; cannot_fail = True; } realname = csname; /* Search for an alias. */ for (i = 0; cpaliases[i].alias != NULL; i++) { if (!strcasecmp(csname, cpaliases[i].alias)) { realname = cpaliases[i].canon; break; } } /* Search for a match. */ for (i = 0; uni[i].name != NULL; i++) { if (!strcasecmp(realname, uni[i].name)) { cur_uni = &uni[i]; *host_codepage = uni[i].host_codepage; *cgcsgid = uni[i].cgcsgid; *display_charsets = uni[i].display_charset; rc = 0; break; } } if (cannot_fail && rc == -1) Error("Cannot find default charset definition"); #if defined(USE_ICONV) /*[*/ /* * wchar_t's are not Unicode, so getting to/from Unicode is only half * the battle. We need to use iconv() to get between Unicode to the * local multi-byte representation. We'll explicitly use UTF-8, which * appears to be the most broadly-supported translation. */ if (rc == 0) { if (!is_utf8) { /* * If iconv doesn't support the locale's codeset, then * this box is hosed. */ i_u2mb = iconv_open(locale_codeset, "UTF-8"); if (i_u2mb == (iconv_t)(-1)) rc = -1; else { i_mb2u = iconv_open("UTF-8", locale_codeset); if (i_mb2u == (iconv_t)(-1)) { iconv_close(i_u2mb); rc = -1; } } } if (rc == -1 && cannot_fail) { /* Try again with plain-old ASCII. */ #if defined(PR3287) /*[*/ Warning("Cannot find iconv translation from locale " "codeset to UTF-8, using ASCII"); #else /*][*/ xs_warning("Cannot find iconv translation from locale " "codeset '%s' to UTF-8, using ASCII", locale_codeset); #endif /*]*/ i_u2mb = iconv_open("ASCII", "UTF-8"); if (i_u2mb == (iconv_t)-1) Error("No iconv UTF-8 to ASCII translation"); i_mb2u = iconv_open("UTF-8", "ASCII"); if (i_mb2u == (iconv_t)-1) Error("No iconv ASCII to UTF-8 translation"); rc = 0; } } #endif /*]*/ return rc; } /* * Translate an x3270 font line-drawing character (the first two rows of a * standard X11 fixed-width font) to Unicode. * * Returns -1 if there is no translation. */ int linedraw_to_unicode(ebc_t c) { static ebc_t ld2uc[32] = { /* 00 */ 0x2588, 0x25c6, 0x2592, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, /* 08 */ 0x00b1, 0x0000, 0x0000, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, /* 10 */ 0x002d, 0x002d, 0x2500, 0x002d, 0x005f, 0x251c, 0x2524, 0x2534, /* 18 */ 0x252c, 0x2502, 0x2264, 0x2265, 0x03c0, 0x2260, 0x00a3, 0x2022 }; if (c < 32 && ld2uc[c] != 0x0000) return ld2uc[c]; else return -1; } int apl_to_unicode(ebc_t c, unsigned flags) { static ebc_t apl2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x25c6, 0x22c0, 0x00a8, 0x223b, 0x2378, 0x2377, 0x22a2, 0x22a3, /* 78 */ 0x2228, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x23b8, 0x23b9, 0x2502, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x2191, 0x2193, 0x2264, 0x2308, 0x230a, 0x2192, /* 90 */ 0x2395, 0x258c, 0x2590, 0x2580, 0x2584, 0x25a0, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x2283, 0x2282, 0x00a4, 0x25cb, 0x00b1, 0x2190, /* a0 */ 0x00af, 0x00b0, 0x2500, 0x2022, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x22c2, 0x22c3, 0x22a5, 0x005b, 0x2265, 0x2218, /* b0 */ 0x03b1, 0x03b5, 0x03b9, 0x03c1, 0x03c9, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x2207, 0x2206, 0x22a4, 0x005d, 0x2260, 0x2502, /* c0 */ 0x007b, 0x207c, 0x002b, 0x220e, 0x2514, 0x250c, 0x251c, 0x2534, /* c8 */ 0x00a7, 0x0000, 0x2372, 0x2371, 0x2337, 0x233d, 0x2342, 0x2349, /* d0 */ 0x007d, 0x207e, 0x002d, 0x253c, 0x2518, 0x2510, 0x2524, 0x252c, /* d8 */ 0x00b6, 0x0000, 0x2336, 0x0021, 0x2352, 0x234b, 0x235e, 0x235d, /* e0 */ 0x2261, 0x2081, 0x0282, 0x0283, 0x2364, 0x2365, 0x236a, 0x20ac, /* e8 */ 0x0000, 0x0000, 0x233f, 0x2240, 0x2235, 0x2296, 0x2339, 0x2355, /* f0 */ 0x2070, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x2075, 0x2076, 0x2077, /* f8 */ 0x2078, 0x2079, 0x0000, 0x236b, 0x2359, 0x235f, 0x234e, 0x0000 }; #if defined(C3270) /*[*/ static ebc_t apla2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x0000, 0x0000, 0x00a8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x0000, 0x0000, 0x007c, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 90 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x00a4, 0x0000, 0x00b1, 0x0000, /* a0 */ 0x00af, 0x00b0, 0x002d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x0000, 0x0000, /* b0 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x0000, 0x0000, 0x0000, 0x005d, 0x0000, 0x007c, /* c0 */ 0x007b, 0x0000, 0x002b, 0x0000, 0x002b, 0x002b, 0x002b, 0x002b, /* c8 */ 0x00a7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x0000, 0x002d, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, /* d8 */ 0x00b6, 0x0000, 0x0000, 0x0021, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x0000, 0x0000, 0x0282, 0x0283, 0x0000, 0x0000, 0x0000, 0x0000, /* e8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0000, 0x00b9, 0x00b2, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000, /* f8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; #endif /*]*/ #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) { if (c < 256 && apla2uc[c] != 0x0000) { #if defined(_WIN32) /*[*/ /* Windows DBCS fonts make U+0080..U+00ff wide, too. */ if (apla2uc[c] > 0x7f) return -1; #endif /*]*/ return apla2uc[c]; } else return -1; } #endif /*]*/ if (c < 256 && apl2uc[c] != 0x0000) return apl2uc[c]; else return -1; } /* * Translate an EBCDIC character to the current locale's multi-byte * representation. * * Returns the number of bytes in the multi-byte representation, including * the terminating NULL. mb[] should be big enough to include the NULL * in the result. * * Also returns in 'ucp' the UCS-4 Unicode value of the EBCDIC character. * * Note that 'ebc' is an ebc_t (uint16_t), not an unsigned char. This is * so that DBCS values can be passed in as 16 bits (with the first byte * in the high-order bits). There is no ambiguity because all valid EBCDIC * DBCS characters have a nonzero first byte. * * Returns 0 if EUO_BLANK_UNDEF is clear and there is no printable EBCDIC * translation for 'ebc'. * * Returns '?' in mb[] if there is no local multi-byte representation of * the EBCDIC character. */ int ebcdic_to_multibyte_x(ebc_t ebc, unsigned char cs, char mb[], int mb_len, unsigned flags, ucs4_t *ucp) { ucs4_t uc; #if defined(_WIN32) /*[*/ int nc; BOOL udc; wchar_t wuc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; wchar_t wuc; #else /*][*/ char u8b[7]; size_t nu8; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; #endif /*]*/ /* Translate from EBCDIC to Unicode. */ uc = ebcdic_to_unicode(ebc, cs, flags); if (ucp != NULL) *ucp = uc; if (uc == 0) { if (flags & EUO_BLANK_UNDEF) { mb[0] = ' '; mb[1] = '\0'; return 2; } else { return 0; } } /* Translate from Unicode to local multibyte. */ #if defined(_WIN32) /*[*/ /* * wchar_t's are Unicode. */ wuc = uc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc != 0) { mb[nc++] = '\0'; return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #elif defined(UNICODE_WCHAR) /*][*/ /* * wchar_t's are Unicode. * If 'is_utf8' is set, use unicode_to_utf8(). This allows us to set * 'is_utf8' directly, ignoring the locale, for Tcl. * Otherwise, use wctomb(). */ if (is_utf8) { nc = unicode_to_utf8(uc, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } wuc = uc; nc = wctomb(mb, uc); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ /* * Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(uc, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc < 0 || inbytesleft == nu8) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc < 0) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } /* Commonest version of ebcdic_to_multibyte_x: * cs is CS_BASE * EUO_BLANK_UNDEF is set * ucp is ignored */ int ebcdic_to_multibyte(ebc_t ebc, char mb[], int mb_len) { return ebcdic_to_multibyte_x(ebc, CS_BASE, mb, mb_len, EUO_BLANK_UNDEF, NULL); } /* * Convert an EBCDIC string to a multibyte string. * Makes lots of assumptions: standard character set, EUO_BLANK_UNDEF. * Returns the length of the multibyte string. */ int ebcdic_to_multibyte_string(unsigned char *ebc, size_t ebc_len, char mb[], size_t mb_len) { int nmb = 0; while (ebc_len && mb_len) { int xlen; xlen = ebcdic_to_multibyte(*ebc, mb, mb_len); if (xlen) { mb += xlen - 1; mb_len -= (xlen - 1); nmb += xlen - 1; } ebc++; ebc_len--; } return nmb; } /* * Return the maximum buffer length needed to translate 'len' EBCDIC characters * in the current locale. */ int mb_max_len(int len) { #if defined(_WIN32) /*[*/ /* * On Windows, it's 1:1 (we don't do DBCS, and we don't support locales * like UTF-8). */ return len + 1; #elif defined(UNICODE_WCHAR) /*][*/ /* Allocate enough space for shift-state transitions. */ return (MB_CUR_MAX * (len * 2)) + 1; #else /*]*/ if (is_utf8) return (len * 6) + 1; else /* * We don't actually know. Guess that MB_CUR_MAX is 16, and compute * as for UNICODE_WCHAR. */ return (16 * (len * 2)) + 1; #endif /*]*/ } /* * Translate a multi-byte character in the current locale to UCS-4. * * Returns a UCS-4 character or 0, indicating an error in translation. * Also returns the number of characters consumed. */ ucs4_t multibyte_to_unicode(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { size_t nw; ucs4_t ucs4; #if defined(_WIN32) /*[*/ wchar_t wc[3]; int i; /* Use MultiByteToWideChar() to get from the ANSI codepage to UTF-16. */ for (i = 1; i <= mb_len; i++) { nw = MultiByteToWideChar(LOCAL_CODEPAGE, MB_ERR_INVALID_CHARS, mb, i, wc, 3); if (nw != 0) break; } if (i > mb_len) { *errorp = ME_INVALID; return 0; } *consumedp = i; ucs4 = wc[0]; #elif defined(UNICODE_WCHAR) /*][*/ wchar_t wc[3]; /* wchar_t's are Unicode. */ if (is_utf8) { int nc; /* * Use utf8_to_unicode() instead of mbtowc(), so we can set is_utf8 * directly and ignore the locale for Tcl. */ nc = utf8_to_unicode(mb, mb_len, &ucs4); if (nc > 0) { *errorp = ME_NONE; *consumedp = nc; return ucs4; } else if (nc == 0) { *errorp = ME_SHORT; return 0; } else { *errorp = ME_INVALID; return 0; } } /* mbtowc() will translate to Unicode. */ nw = mbtowc(wc, mb, mb_len); if (nw == (size_t)-1) { if (errno == EILSEQ) *errorp = ME_INVALID; else *errorp = ME_SHORT; nw = mbtowc(NULL, NULL, 0); return 0; } /* * Reset the shift state. * XXX: Doing this will ruin the shift state if this function is called * repeatedly to process a string. There should probably be a parameter * passed in to control whether or not to reset the shift state, or * perhaps there should be a function to translate a string. */ *consumedp = nw; nw = mbtowc(NULL, NULL, 0); ucs4 = wc[0]; #else /*][*/ /* wchar_t's have unknown encoding. */ if (!is_utf8) { ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; char utf8buf[16]; size_t ibl; /* Translate from local MB to UTF-8 using iconv(). */ for (ibl = 1; ibl <= mb_len; ibl++) { inbuf = (ici_t)mb; outbuf = utf8buf; inbytesleft = ibl; outbytesleft = sizeof(utf8buf); nw = iconv(i_mb2u, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nw < 0) { if (errno == EILSEQ) { *errorp = ME_INVALID; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } else { if (ibl == mb_len) { *errorp = ME_SHORT; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } } } else break; } *consumedp = ibl - inbytesleft; /* Translate from UTF-8 to UCS-4. */ (void) utf8_to_unicode(utf8buf, sizeof(utf8buf) - outbytesleft, &ucs4); } else { /* Translate from UTF-8 to UCS-4. */ nw = utf8_to_unicode(mb, mb_len, &ucs4); if (nw < 0) { *errorp = ME_INVALID; return 0; } if (nw == 0) { *errorp = ME_SHORT; return 0; } *consumedp = nw; } #endif /*]*/ /* Translate from UCS4 to EBCDIC. */ return ucs4; } /* * Convert a multi-byte string to a UCS-4 string. * Does not NULL-terminate the result. * Returns the number of UCS-4 characters stored. */ int multibyte_to_unicode_string(char *mb, size_t mb_len, ucs4_t *ucs4, size_t u_len) { int consumed; enum me_fail error; int nr = 0; error = ME_NONE; while (u_len && mb_len && (*ucs4++ = multibyte_to_unicode(mb, mb_len, &consumed, &error)) != 0) { u_len--; mb += consumed; mb_len -= consumed; nr++; } if (error != ME_NONE) return -1; else return nr; } /* * Translate a multi-byte character in the current locale to an EBCDIC * character. * * Returns an 8-bit (SBCS) or 16-bit (DBCS) EBCDIC character, or 0, indicating * an error in translation. Also returns the number of characters consumed. */ ebc_t multibyte_to_ebcdic(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { ucs4_t ucs4; ucs4 = multibyte_to_unicode(mb, mb_len, consumedp, errorp); if (ucs4 == 0) return 0; return unicode_to_ebcdic(ucs4); } /* * Convert a local multi-byte string to an EBCDIC string. * Returns the length of the resulting EBCDIC string, or -1 if there is a * conversion error. */ int multibyte_to_ebcdic_string(char *mb, size_t mb_len, unsigned char *ebc, size_t ebc_len, enum me_fail *errorp) { int ne = 0; Boolean in_dbcs = False; while (mb_len > 0 && ebc_len > 0) { ebc_t e; int consumed; e = multibyte_to_ebcdic(mb, mb_len, &consumed, errorp); if (e == 0) return -1; if (e & 0xff00) { /* DBCS. */ if (!in_dbcs) { /* Make sure there's room for SO, b1, b2, SI. */ if (ebc_len < 4) return ne; *ebc++ = EBC_so; ebc_len++; ne++; in_dbcs = True; } /* Make sure there's room for b1, b2, SI. */ if (ebc_len < 3) { *ebc++ = EBC_si; ne++; return ne; } *ebc++ = (e >> 8) & 0xff; *ebc++ = e & 0xff; ebc_len -= 2; ne += 2; } else { /* SBCS. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; if (!--ebc_len) return ne; in_dbcs = False; } *ebc++ = e & 0xff; ebc_len--; ne++; } mb += consumed; mb_len -= consumed; } /* * Terminate the DBCS string, if we end inside it. * We're guaranteed to have space for the SI; we checked before adding * the last DBCS character. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; } return ne; } /* * Translate a UCS-4 character to a local multi-byte string. */ int unicode_to_multibyte(ucs4_t ucs4, char *mb, size_t mb_len) { #if defined(_WIN32) /*[*/ wchar_t wuc = ucs4; BOOL udc; int nc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc > 0) mb[nc++] = '\0'; return nc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; if (is_utf8) { nc = unicode_to_utf8(ucs4, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } nc = wctomb(mb, ucs4); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ int nu8; char u8b[16]; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; /* Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(ucs4, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } ibm-3270-3.3.10ga4/pr3287/localdefs.h0000644000175000017500000000523111254565701016237 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * localdefs.h * Local definitions for pr3287. * * This file contains definitions for environment-specific * facilities, such as memory allocation, I/O registration, * and timers. */ /* These first definitions were cribbed from X11 -- but no X code is used. */ #define False 0 #define True 1 typedef void *XtPointer; typedef void *Widget; typedef void *XEvent; typedef char Boolean; typedef char *String; typedef unsigned int Cardinal; typedef unsigned long KeySym; #define Bool int typedef void (*XtActionProc)( Widget /* widget */, XEvent* /* event */, String* /* params */, Cardinal* /* num_params */ ); typedef struct _XtActionsRec{ String string; XtActionProc proc; } XtActionsRec; #define XtNumber(n) (sizeof(n)/sizeof((n)[0])) #define NoSymbol 0L /* These are local functions with similar semantics to X functions. */ extern void *Malloc(size_t); extern void Free(void *); extern void *Calloc(size_t, size_t); extern void *Realloc(void *, size_t); extern char *NewString(const char *); extern void Warning(const char *s); extern void Error(const char *s); #define X3270_TRACE 1 extern void errmsg(const char *, ...); ibm-3270-3.3.10ga4/pr3287/LICENSE0000644000175000017500000000315711254565701015144 0ustar bastianbastianCopyright (c) 1993-2009, Paul Mattes. Copyright (c) 1990, Jeff Sparkes. Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ibm-3270-3.3.10ga4/pr3287/README0000644000175000017500000000077711254565701015024 0ustar bastianbastianpr3287 is an IBM 3287 printer emulator. It connects to an IBM host via TELNET, using TN3270 or TN3270E. It supports SCS (SNA Character Stream). To build pr3287, type: ./configure make To install pr3287 in /usr/local/bin, type (as root): make install If you are running Sun Solaris and have Sun's unbundled C compiler installed, _do_not_ use it to build pr3287. Instead, type: make CC=/usr/ccs/bin/cc If you have any questions or comments on pr3287, please contact Paul.Mattes@usa.net. ibm-3270-3.3.10ga4/pr3287/install-sh0000755000175000017500000001267111254565704016147 0ustar bastianbastian#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else : fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=$mkdirprog fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then : else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else : fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else : fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else : fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else : fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 ibm-3270-3.3.10ga4/pr3287/tablesc.h0000644000175000017500000000334711254565704015731 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tablesc.h * Global declarations for tables.c. */ extern const unsigned char asc2cg0[256]; extern const unsigned char ebc2cg0[256]; extern const unsigned char ebc2asc0[256]; extern const unsigned char asc2ebc0[256]; ibm-3270-3.3.10ga4/s3270/0000755000175000017500000000000011261530021013723 5ustar bastianbastianibm-3270-3.3.10ga4/s3270/selectc.h0000644000175000017500000000316611254565673015553 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of selectc.h */ #define unselect(baddr, len) #define area_is_selected(baddr, len) False ibm-3270-3.3.10ga4/s3270/x3270_glue.expect0000644000175000017500000002102711254565704016760 0ustar bastianbastian# Copyright (c) 2000-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the names of Paul Mattes nor the names of his contributors # may be used to endorse or promote products derived from this software # without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Glue functions between 'expect' and x3270 # Usage: source x3270_glue.expect namespace eval x3270 { variable verbose 0 variable pid 0 # Start function: Start ?-nohup? ?program? ?options? # # Sets up the 'expect' environment correctly and spawns a 3270 # interface process. # # The 'program' and 'options' can be: # "x3270 -script" to drive an x3270 session # "s3270" to drive a displayless 3270 session # "x3270if -i" to run as a child script of x3270 (via the Script() # action) # # If "args" is empty, or starts with an option besides '-nohup', # guesses which process to start. # It will only guess "x3270if -i" or "s3270"; if you want to start # x3270, you need to specify it explicitly. # # Returns the process ID of the spawned process. proc Start {args} { global stty_init timeout spawn_id env variable verbose variable pid if {$pid != 0} {return -code error "Already started."} # If the first argument is "-nohup", remember that as an # argument to 'spawn'. if {[lindex $args 0] == "-nohup"} { set nohup {-ignore HUP} set args [lrange $args 1 end] } { set nohup {} } # If there are no arguments, or the first argument is an # option, guess what to start. # If X3270INPUT is defined in the environment, this must be a # child script; start x3270if. Otherwise, this must be a peer # script; start s3270. if {$args == {} || [string index [lindex $args 0] 0] == "-"} { if {[info exists env(X3270INPUT)]} { set args [concat x3270if -i $args] } { if {$::tcl_platform(platform) == "windows"} { set args [concat ws3270 $args] } { set args [concat s3270 $args] } } } # Set up the pty initialization default. set stty_init -echo # Spawn the process. if {$verbose} { set pid [eval [concat spawn $nohup $args]] } { set pid [eval [concat spawn -noecho $nohup $args]] log_user 0 } # Set the 'expect' timeout. set timeout -1 return $pid } # Basic interface command. Used internally by the action functions # below. proc cmd {cmd} { variable verbose variable pid if {$pid==0} { return -code error "Not started yet." } if {$verbose} {puts "+$cmd"} send "$cmd\r" expect { -re "data: (.*)\r?\n.*\r?\nok\r?\n$" { set r $expect_out(buffer) } -re ".*ok\r?\n" { return {} } -re "(.*)\r?\n.*?\r?\nerror\r?\n" { return -code error "$expect_out(1,string)" } -re ".*error\r?\n" { return -code error \ "$cmd failed: $expect_out(buffer)" } eof { set pid 0; error "process died" } } # Convert result to a list. set ret {} set iter 0 while {1} { if {! [regexp "data: (.*?)\r?\n" $r dummy elt]} {break} if {$iter==1} {set ret [list $ret]} set r [string range $r [expr [string length $elt]+7] \ end] if {$iter > 0} { set ret [linsert $ret end $elt] } { set ret $elt } set iter [expr $iter + 1] } if {$verbose} {puts "ret $iter"} return $ret } # Convert an argument list to a comma-separated list that x3270 will # accept. proc commafy {alist} { set i 0 set a "" while {$i < [llength $alist]} { if {$i > 0} { set a "$a,[lindex $alist $i]" } { set a [lindex $alist $i] } incr i } return $a } # Quote a text string into x3270-acceptable format. proc stringify {text} { set a "\"" set i 0 while {$i < [string len $text]} { set c [string range $text $i $i] switch -- $c { "\n" { set a "$a\\n" } "\r" { set a "$a\\r" } " " { set a "$a\\ " } "\"" { set a "$a\\\"" } default { set a "$a$c" } } incr i } set a "$a\"" return $a } # User-accessible actions. # Some of these apply only to x3270 and x3270if, and not to s3270. proc AltCursor {} { return [cmd "AltCursor"] } proc Ascii {args} { return [cmd "Ascii([commafy $args])"] } proc AsciiField {} { return [cmd "AsciiField"] } proc Attn {} { return [cmd "Attn"] } proc BackSpace {} { return [cmd "BackSpace"] } proc BackTab {} { return [cmd "BackTab"] } proc CircumNot {} { return [cmd "CircumNot"] } proc Clear {} { return [cmd "Clear"] } proc CloseScript {} { return [cmd "CloseScript"] } proc Cols {} { return [lindex [Status] 7] } proc Compose {} { return [cmd "Compose"] } proc Connect {host} { return [cmd "Connect($host)"] } proc CursorSelect {} { return [cmd "CursorSelect"] } proc Delete {} { return [cmd "Delete"] } proc DeleteField {} { return [cmd "DeleteField"] } proc DeleteWord {} { return [cmd "DeleteWord"] } proc Disconnect {} { return [cmd "Disconnect"] } proc Down {} { return [cmd "Down"] } proc Dup {} { return [cmd "Dup"] } proc Ebcdic {args} { return [cmd "Ebcdic([commafy $args])"] } proc EbcdicField {} { return [cmd "EbcdicField"] } proc Enter {} { return [cmd "Enter"] } proc Erase {} { return [cmd "Erase"] } proc EraseEOF {} { return [cmd "EraseEOF"] } proc EraseInput {} { return [cmd "EraseInput"] } proc FieldEnd {} { return [cmd "FieldEnd"] } proc FieldMark {} { return [cmd "FieldMark"] } proc FieldExit {} { return [cmd "FieldExit"] } proc Flip {} { return [cmd "Flip"] } proc HexString {x} { return [cmd "HexString($x)"] } proc Home {} { return [cmd "Home"] } proc Info {text} { return [cmd "Info([stringify $text])"] } proc Insert {} { return [cmd "Insert"] } proc Interrupt {} { return [cmd "Interrupt"] } proc Key {k} { return [cmd "Key($k)"] } proc Keymap {k} { return [cmd "Keymap($k)"] } proc Left {} { return [cmd "Left"] } proc Left2 {} { return [cmd "Left2"] } proc MonoCase {} { return [cmd "MonoCase"] } proc MoveCursor {r c} { return [cmd "MoveCursor($r,$c)"] } proc Newline {} { return [cmd "Newline"] } proc NextWord {} { return [cmd "NextWord"] } proc PA {n} { return [cmd "PA($n)"] } proc PF {n} { return [cmd "PF($n)"] } proc PreviousWord {} { return [cmd "PreviousWord"] } proc Quit {} { exit } proc Reset {} { return [cmd "Reset"] } proc Right {} { return [cmd "Right"] } proc Right2 {} { return [cmd "Right2"] } proc Rows {} { return [lindex [Status] 6] } proc SetFont {font} { return [cmd "SetFont($font)"] } proc Snap {args} { return [cmd "Snap([commafy $args])"] } proc Status {} { variable verbose variable pid if {$pid==0} { return -code error "Not started yet." } if {$verbose} {puts "+(nothing)"} send "\r" expect { -re ".*ok\r?\n" { set r $expect_out(buffer) } eof { set pid 0; error "process died" } } return [string range $r 0 [expr [string length $r]-7]] } proc String {text} { return [cmd "String([stringify $text])"] } proc SysReq {} { return [cmd "SysReq"] } proc Tab {} { return [cmd "Tab"] } proc ToggleInsert {} { return [cmd "ToggleInsert"] } proc ToggleReverse {} { return [cmd "ToggleReverse"] } proc TemporaryKeymap {args} { return [cmd "TemporaryKeymap($args)"] } proc Transfer {args} { return [cmd "Transfer([commafy $args])"] } proc Up {} { return [cmd "Up"] } proc Wait {args} { return [cmd "Wait([commafy $args])"] } # Extra function to toggle verbosity on the fly. proc Setverbose {level} { variable verbose set verbose $level return } # Export all the user-visible functions. namespace export \[A-Z\]* } # Import all of the exported functions. namespace import x3270::* ibm-3270-3.3.10ga4/s3270/smain.c0000644000175000017500000001064011254565704015221 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, * GA 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor their * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR * GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * smain.c * A displayless 3270 Terminal Emulator * Main proceudre. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "screenc.h" #include "selectc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include "w3miscc.h" #include "windirsc.h" #include "winversc.h" #endif /*]*/ #if defined(_WIN32) /*[*/ char *instdir = NULL; char *myappdata = NULL; #endif /*]*/ void usage(char *msg) { if (msg != CN) fprintf(stderr, "%s\n", msg); fprintf(stderr, "Usage: %s [options] [ps:][LUname@]hostname[:port]\n", programname); fprintf(stderr, "Options:\n"); cmdline_help(False); exit(1); } static void main_connect(Boolean ignored) { if (CONNECTED || appres.disconnect_clear) ctlr_erase(True); } int main(int argc, char *argv[]) { const char *cl_hostname = CN; #if defined(_WIN32) /*[*/ (void) get_version_info(); if (get_dirs(argv[0], "ws3270", &instdir, NULL, &myappdata, NULL) < 0) exit(1); if (sockstart() < 0) exit(1); #endif /*]*/ argc = parse_command_line(argc, (const char **)argv, &cl_hostname); if (charset_init(appres.charset) != CS_OKAY) { xs_warning("Cannot find charset \"%s\"", appres.charset); (void) charset_init(NULL); } action_init(); ctlr_init(-1); ctlr_reinit(-1); kybd_init(); ansi_init(); sms_init(); register_schange(ST_CONNECT, main_connect); register_schange(ST_3270_MODE, main_connect); #if defined(X3270_FT) /*[*/ ft_init(); #endif /*]*/ #if !defined(_WIN32) /*[*/ /* Make sure we don't fall over any SIGPIPEs. */ (void) signal(SIGPIPE, SIG_IGN); #endif /*]*/ /* Handle initial toggle settings. */ #if defined(X3270_TRACE) /*[*/ if (!appres.debug_tracing) { appres.toggle[DS_TRACE].value = False; appres.toggle[EVENT_TRACE].value = False; } #endif /*]*/ initialize_toggles(); /* Connect to the host. */ if (cl_hostname != CN) { if (host_connect(cl_hostname) < 0) exit(1); /* Wait for negotiations to complete or fail. */ while (!IN_ANSI && !IN_3270) { (void) process_events(True); if (!PCONNECTED) exit(1); } } /* Prepare to run a peer script. */ peer_script_init(); /* Process events forever. */ while (1) { (void) process_events(True); #if !defined(_WIN32) /*[*/ if (children && waitpid(0, (int *)0, WNOHANG) > 0) --children; #endif /*]*/ } } ibm-3270-3.3.10ga4/s3270/xio.c0000644000175000017500000000752211254565704014716 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, * GA 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor their * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR * GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xio.c * Low-level I/O setup functions and exit code. */ #include "globals.h" #include "actionsc.h" #include "hostc.h" #include "telnetc.h" #include "togglesc.h" #include "utilc.h" #include "xioc.h" /* Statics. */ static unsigned long ns_read_id; static unsigned long ns_exception_id; static Boolean reading = False; static Boolean excepting = False; /* * Called to set up input on a new network connection. */ void x_add_input(int net_sock) { ns_exception_id = AddExcept(net_sock, net_exception); excepting = True; ns_read_id = AddInput(net_sock, net_input); reading = True; } /* * Called when an exception is received to disable further exceptions. */ void x_except_off(void) { if (excepting) { RemoveInput(ns_exception_id); excepting = False; } } /* * Called when exception processing is complete to re-enable exceptions. * This includes removing and restoring reading, so the exceptions are always * processed first. */ void x_except_on(int net_sock) { if (excepting) return; if (reading) RemoveInput(ns_read_id); ns_exception_id = AddExcept(net_sock, net_exception); excepting = True; if (reading) ns_read_id = AddInput(net_sock, net_input); } /* * Called to disable input on a closing network connection. */ void x_remove_input(void) { if (reading) { RemoveInput(ns_read_id); reading = False; } if (excepting) { RemoveInput(ns_exception_id); excepting = False; } } /* * Application exit, with cleanup. */ void x3270_exit(int n) { static Boolean already_exiting = 0; /* Handle unintentional recursion. */ if (already_exiting) return; already_exiting = True; /* Turn off toggle-related activity. */ shutdown_toggles(); /* Shut down the socket gracefully. */ host_disconnect(False); /* Tell anyone else who's interested. */ st_changed(ST_EXITING, True); #if defined(WC3270) /*[*/ if (n) { char buf[2]; printf("\n[Press ] "); fflush(stdout); (void) fgets(buf, sizeof(buf), stdin); } #endif /*]*/ exit(n); } void Quit_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Quit_action, event, params, num_params); if (!w || !CONNECTED) { x3270_exit(0); } } ibm-3270-3.3.10ga4/s3270/resolverc.h0000644000175000017500000000361311254565704016125 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resolverc.h * Hostname resolution. */ extern int resolve_host_and_port(const char *host, char *portname, int ix, unsigned short *pport, struct sockaddr *sa, socklen_t *sa_len, char *errmsg, int em_size, int *lastp); extern int numeric_host_and_port(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, char *errmsg, int em_len); ibm-3270-3.3.10ga4/s3270/resources.c0000644000175000017500000001175711254565673016143 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include #include "localdefs.h" extern String fallbacks[]; /* s3270 substitute Xt resource database. */ #if defined(C3270) /*[*/ /* * These should be properly #ifdef'd in X3270.xad, but it would turn it into * spaghetti. */ static struct { char *name; char *value; } rdb[] = { { "message.hour", "hour" }, { "message.hours", "hours" }, { "message.minute", "minute" }, { "message.bindPluName", "BIND PLU name:" }, { "message.buildDisabled", "disabled" }, { "message.buildEnabled", "enabled" }, { "message.buildOpts", "Build options:" }, { "message.byte", "byte" }, { "message.bytes", "bytes" }, { "message.characterSet", "EBCDIC character set:" }, { "message.charMode", "NVT character mode" }, { "message.columns", "columns" }, { "message.connectedTo", "Connected to:" }, { "message.connectionPending", "Connection pending to:" }, { "message.dbcsCgcsgid", "Host DBCS CGCSGID:" }, { "message.defaultCharacterSet", "Default (us) EBCDIC character set" }, { "message.dsMode", "3270 mode" }, { "message.extendedDs", "extended data stream" }, { "message.fullColor", "color" }, { "message.hostCodePage", "Host code page:" }, { "message.keyboardMap", "Keyboard map:" }, { "message.lineMode", "NVT line mode" }, { "message.localeCodeset", "Locale codeset:" }, { "message.luName", "LU name:" }, { "message.minute", "minute" }, { "message.minutes", "minutes" }, { "message.model", "Model" }, { "message.mono", "monochrome" }, { "message.notConnected", "Not connected" }, { "message.port", "Port:" }, { "message.proxyType", "Proxy type:" }, { "message.Received", "Received" }, { "message.received", "received" }, { "message.record", "record" }, { "message.records", "records" }, { "message.rows", "rows" }, { "message.sbcsCgcsgid", "Host SBCS CGCSGID:" }, { "message.second", "second" }, { "message.seconds", "seconds" }, { "message.secure", "via TLS/SSL" }, { "message.sent", "Sent" }, { "message.server", "Server:" }, { "message.specialCharacters", "Special characters:" }, { "message.sscpMode", "SSCP-LU mode" }, { "message.standardDs", "standard data stream" }, { "message.terminalName", "Terminal name:" }, { "message.tn3270eNoOpts", "No TN3270E options" }, { "message.tn3270eOpts", "TN3270E options:" }, #if defined(_WIN32) /*[*/ { "message.windowsCodePage", "Windows code page:" }, #endif /*][*/ { NULL, NULL } }; #endif /*]*/ static struct dresource { struct dresource *next; const char *name; char *value; } *drdb = NULL, **drdb_next = &drdb; void add_resource(const char *name, char *value) { struct dresource *d; for (d = drdb; d != NULL; d = d->next) { if (!strcmp(d->name, name)) { d->value = value; return; } } d = Malloc(sizeof(struct dresource)); d->next = NULL; d->name = name; d->value = value; *drdb_next = d; drdb_next = &d->next; } char * get_resource(const char *name) { struct dresource *d; int i; for (d = drdb; d != NULL; d = d->next) { if (!strcmp(d->name, name)) { return d->value; } } for (i = 0; fallbacks[i] != NULL; i++) { if (!strncmp(fallbacks[i], name, strlen(name)) && *(fallbacks[i] + strlen(name)) == ':') { return fallbacks[i] + strlen(name) + 2; } } #if defined(C3270) /*[*/ for (i = 0; rdb[i].name != (char *)NULL; i++) { if (!strcmp(rdb[i].name, name)) { return rdb[i].value; } } #endif /*]*/ return NULL; } ibm-3270-3.3.10ga4/s3270/XtGlue.c0000644000175000017500000004265611254565704015336 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* glue for missing Xt code */ #include "globals.h" #if defined(_WIN32) /*[*/ #include "appres.h" #include "trace_dsc.h" #include "xioc.h" #endif /*]*/ #include #include #include #include #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #if defined(_WIN32) /*[*/ #include #else /*][*/ #if defined(SEPARATE_SELECT_H) /*[*/ #include #endif /*]*/ #endif /*]*/ #define InputReadMask 0x1 #define InputExceptMask 0x2 #define InputWriteMask 0x4 #define MILLION 1000000L void (*Warning_redirect)(const char *) = NULL; void Error(const char *s) { fprintf(stderr, "Error: %s\n", s); #if defined(WC3270) /*[*/ x3270_exit(1); #else /*][*/ exit(1); #endif /*]*/ } void Warning(const char *s) { #if defined(C3270) /*[*/ extern Boolean any_error_output; #endif /*]*/ if (Warning_redirect != NULL) (*Warning_redirect)(s); else fprintf(stderr, "Warning: %s\n", s); #if defined(C3270) /*[*/ any_error_output = True; #endif /*]*/ } void * Malloc(size_t len) { char *r; r = malloc(len); if (r == (char *)NULL) Error("Out of memory"); return r; } void * Calloc(size_t nelem, size_t elsize) { char *r; r = malloc(nelem * elsize); if (r == (char *)NULL) Error("Out of memory"); return memset(r, '\0', nelem * elsize); } void * Realloc(void *p, size_t len) { p = realloc(p, len); if (p == NULL) Error("Out of memory"); return p; } void Free(void *p) { if (p != NULL) free(p); } char * NewString(const char *s) { return strcpy(Malloc(strlen(s) + 1), s); } static struct { /*const*/ char *name; /* not const because of ancient X11 API */ KeySym keysym; } latin1[] = { { "space", XK_space }, { "exclam", XK_exclam }, { "quotedbl", XK_quotedbl }, { "numbersign", XK_numbersign }, { "dollar", XK_dollar }, { "percent", XK_percent }, { "ampersand", XK_ampersand }, { "apostrophe", XK_apostrophe }, { "quoteright", XK_quoteright }, { "parenleft", XK_parenleft }, { "parenright", XK_parenright }, { "asterisk", XK_asterisk }, { "plus", XK_plus }, { "comma", XK_comma }, { "minus", XK_minus }, { "period", XK_period }, { "slash", XK_slash }, { "0", XK_0 }, { "1", XK_1 }, { "2", XK_2 }, { "3", XK_3 }, { "4", XK_4 }, { "5", XK_5 }, { "6", XK_6 }, { "7", XK_7 }, { "8", XK_8 }, { "9", XK_9 }, { "colon", XK_colon }, { "semicolon", XK_semicolon }, { "less", XK_less }, { "equal", XK_equal }, { "greater", XK_greater }, { "question", XK_question }, { "at", XK_at }, { "A", XK_A }, { "B", XK_B }, { "C", XK_C }, { "D", XK_D }, { "E", XK_E }, { "F", XK_F }, { "G", XK_G }, { "H", XK_H }, { "I", XK_I }, { "J", XK_J }, { "K", XK_K }, { "L", XK_L }, { "M", XK_M }, { "N", XK_N }, { "O", XK_O }, { "P", XK_P }, { "Q", XK_Q }, { "R", XK_R }, { "S", XK_S }, { "T", XK_T }, { "U", XK_U }, { "V", XK_V }, { "W", XK_W }, { "X", XK_X }, { "Y", XK_Y }, { "Z", XK_Z }, { "bracketleft", XK_bracketleft }, { "backslash", XK_backslash }, { "bracketright", XK_bracketright }, { "asciicircum", XK_asciicircum }, { "underscore", XK_underscore }, { "grave", XK_grave }, { "quoteleft", XK_quoteleft }, { "a", XK_a }, { "b", XK_b }, { "c", XK_c }, { "d", XK_d }, { "e", XK_e }, { "f", XK_f }, { "g", XK_g }, { "h", XK_h }, { "i", XK_i }, { "j", XK_j }, { "k", XK_k }, { "l", XK_l }, { "m", XK_m }, { "n", XK_n }, { "o", XK_o }, { "p", XK_p }, { "q", XK_q }, { "r", XK_r }, { "s", XK_s }, { "t", XK_t }, { "u", XK_u }, { "v", XK_v }, { "w", XK_w }, { "x", XK_x }, { "y", XK_y }, { "z", XK_z }, { "braceleft", XK_braceleft }, { "bar", XK_bar }, { "braceright", XK_braceright }, { "asciitilde", XK_asciitilde }, { "nobreakspace", XK_nobreakspace }, { "exclamdown", XK_exclamdown }, { "cent", XK_cent }, { "sterling", XK_sterling }, { "currency", XK_currency }, { "yen", XK_yen }, { "brokenbar", XK_brokenbar }, { "section", XK_section }, { "diaeresis", XK_diaeresis }, { "copyright", XK_copyright }, { "ordfeminine", XK_ordfeminine }, { "guillemotleft", XK_guillemotleft }, { "notsign", XK_notsign }, { "hyphen", XK_hyphen }, { "registered", XK_registered }, { "macron", XK_macron }, { "degree", XK_degree }, { "plusminus", XK_plusminus }, { "twosuperior", XK_twosuperior }, { "threesuperior", XK_threesuperior }, { "acute", XK_acute }, { "mu", XK_mu }, { "paragraph", XK_paragraph }, { "periodcentered", XK_periodcentered }, { "cedilla", XK_cedilla }, { "onesuperior", XK_onesuperior }, { "masculine", XK_masculine }, { "guillemotright", XK_guillemotright }, { "onequarter", XK_onequarter }, { "onehalf", XK_onehalf }, { "threequarters", XK_threequarters }, { "questiondown", XK_questiondown }, { "Agrave", XK_Agrave }, { "Aacute", XK_Aacute }, { "Acircumflex", XK_Acircumflex }, { "Atilde", XK_Atilde }, { "Adiaeresis", XK_Adiaeresis }, { "Aring", XK_Aring }, { "AE", XK_AE }, { "Ccedilla", XK_Ccedilla }, { "Egrave", XK_Egrave }, { "Eacute", XK_Eacute }, { "Ecircumflex", XK_Ecircumflex }, { "Ediaeresis", XK_Ediaeresis }, { "Igrave", XK_Igrave }, { "Iacute", XK_Iacute }, { "Icircumflex", XK_Icircumflex }, { "Idiaeresis", XK_Idiaeresis }, { "ETH", XK_ETH }, { "Eth", XK_Eth }, { "Ntilde", XK_Ntilde }, { "Ograve", XK_Ograve }, { "Oacute", XK_Oacute }, { "Ocircumflex", XK_Ocircumflex }, { "Otilde", XK_Otilde }, { "Odiaeresis", XK_Odiaeresis }, { "multiply", XK_multiply }, { "Ooblique", XK_Ooblique }, { "Ugrave", XK_Ugrave }, { "Uacute", XK_Uacute }, { "Ucircumflex", XK_Ucircumflex }, { "Udiaeresis", XK_Udiaeresis }, { "Yacute", XK_Yacute }, { "THORN", XK_THORN }, { "Thorn", XK_Thorn }, { "ssharp", XK_ssharp }, { "agrave", XK_agrave }, { "aacute", XK_aacute }, { "acircumflex", XK_acircumflex }, { "atilde", XK_atilde }, { "adiaeresis", XK_adiaeresis }, { "aring", XK_aring }, { "ae", XK_ae }, { "ccedilla", XK_ccedilla }, { "egrave", XK_egrave }, { "eacute", XK_eacute }, { "ecircumflex", XK_ecircumflex }, { "ediaeresis", XK_ediaeresis }, { "igrave", XK_igrave }, { "iacute", XK_iacute }, { "icircumflex", XK_icircumflex }, { "idiaeresis", XK_idiaeresis }, { "eth", XK_eth }, { "ntilde", XK_ntilde }, { "ograve", XK_ograve }, { "oacute", XK_oacute }, { "ocircumflex", XK_ocircumflex }, { "otilde", XK_otilde }, { "odiaeresis", XK_odiaeresis }, { "division", XK_division }, { "oslash", XK_oslash }, { "ugrave", XK_ugrave }, { "uacute", XK_uacute }, { "ucircumflex", XK_ucircumflex }, { "udiaeresis", XK_udiaeresis }, { "yacute", XK_yacute }, { "thorn", XK_thorn }, { "ydiaeresis", XK_ydiaeresis }, /* * The following are, umm, hacks to allow symbolic names for * control codes. */ #if !defined(_WIN32) /*[*/ { "BackSpace", 0x08 }, { "Tab", 0x09 }, { "Linefeed", 0x0a }, { "Return", 0x0d }, { "Escape", 0x1b }, { "Delete", 0x7f }, #endif /*]*/ { (char *)NULL, NoSymbol } }; KeySym StringToKeysym(char *s) { int i; if (strlen(s) == 1 && (*(unsigned char *)s & 0x7f) > ' ') return (KeySym)*(unsigned char *)s; for (i = 0; latin1[i].name != (char *)NULL; i++) { if (!strcmp(s, latin1[i].name)) return latin1[i].keysym; } return NoSymbol; } char * KeysymToString(KeySym k) { int i; for (i = 0; latin1[i].name != (char *)NULL; i++) { if (latin1[i].keysym == k) return latin1[i].name; } return (char *)NULL; } /* Timeouts. */ #if defined(_WIN32) /*[*/ static void ms_ts(unsigned long long *u) { FILETIME t; /* Get the system time, in 100ns units. */ GetSystemTimeAsFileTime(&t); memcpy(u, &t, sizeof(unsigned long long)); /* Divide by 10,000 to get ms. */ *u /= 10000ULL; } #endif /*]*/ typedef struct timeout { struct timeout *next; #if defined(_WIN32) /*[*/ unsigned long long ts; #else /*][*/ struct timeval tv; #endif /*]*/ void (*proc)(void); Boolean in_play; } timeout_t; #define TN (timeout_t *)NULL static timeout_t *timeouts = TN; unsigned long AddTimeOut(unsigned long interval_ms, void (*proc)(void)) { timeout_t *t_new; timeout_t *t; timeout_t *prev = TN; t_new = (timeout_t *)Malloc(sizeof(timeout_t)); t_new->proc = proc; t_new->in_play = False; #if defined(_WIN32) /*[*/ ms_ts(&t_new->ts); t_new->ts += interval_ms; #else /*][*/ (void) gettimeofday(&t_new->tv, NULL); t_new->tv.tv_sec += interval_ms / 1000L; t_new->tv.tv_usec += (interval_ms % 1000L) * 1000L; if (t_new->tv.tv_usec > MILLION) { t_new->tv.tv_sec += t_new->tv.tv_usec / MILLION; t_new->tv.tv_usec %= MILLION; } #endif /*]*/ /* Find where to insert this item. */ for (t = timeouts; t != TN; t = t->next) { #if defined(_WIN32) /*[*/ if (t->ts > t_new->ts) #else /*][*/ if (t->tv.tv_sec > t_new->tv.tv_sec || (t->tv.tv_sec == t_new->tv.tv_sec && t->tv.tv_usec > t_new->tv.tv_usec)) #endif /*]*/ break; prev = t; } /* Insert it. */ if (prev == TN) { /* Front. */ t_new->next = timeouts; timeouts = t_new; } else if (t == TN) { /* Rear. */ t_new->next = TN; prev->next = t_new; } else { /* Middle. */ t_new->next = t; prev->next = t_new; } return (unsigned long)t_new; } void RemoveTimeOut(unsigned long timer) { timeout_t *st = (timeout_t *)timer; timeout_t *t; timeout_t *prev = TN; if (st->in_play) return; for (t = timeouts; t != TN; t = t->next) { if (t == st) { if (prev != TN) prev->next = t->next; else timeouts = t->next; Free(t); return; } prev = t; } } /* Input events. */ typedef struct input { struct input *next; int source; int condition; void (*proc)(void); } input_t; static input_t *inputs = (input_t *)NULL; static Boolean inputs_changed = False; unsigned long AddInput(int source, void (*fn)(void)) { input_t *ip; ip = (input_t *)Malloc(sizeof(input_t)); ip->source = source; ip->condition = InputReadMask; ip->proc = fn; ip->next = inputs; inputs = ip; inputs_changed = True; return (unsigned long)ip; } unsigned long AddExcept(int source, void (*fn)(void)) { #if defined(_WIN32) /*[*/ return 0; #else /*][*/ input_t *ip; ip = (input_t *)Malloc(sizeof(input_t)); ip->source = source; ip->condition = InputExceptMask; ip->proc = fn; ip->next = inputs; inputs = ip; inputs_changed = True; return (unsigned long)ip; #endif /*]*/ } #if !defined(_WIN32) /*[*/ unsigned long AddOutput(int source, void (*fn)(void)) { input_t *ip; ip = (input_t *)Malloc(sizeof(input_t)); ip->source = source; ip->condition = InputWriteMask; ip->proc = fn; ip->next = inputs; inputs = ip; inputs_changed = True; return (unsigned long)ip; } #endif /*]*/ void RemoveInput(unsigned long id) { input_t *ip; input_t *prev = (input_t *)NULL; for (ip = inputs; ip != (input_t *)NULL; ip = ip->next) { if (ip == (input_t *)id) break; prev = ip; } if (ip == (input_t *)NULL) return; if (prev != (input_t *)NULL) prev->next = ip->next; else inputs = ip->next; Free(ip); inputs_changed = True; } #if !defined(_WIN32) /*[*/ /* * Modify the passed-in parameters so they reflect the values needed for * select(). */ int select_setup(int *nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval **timeout, struct timeval *timebuf) { input_t *ip; int r = 0; for (ip = inputs; ip != (input_t *)NULL; ip = ip->next) { if ((unsigned long)ip->condition & InputReadMask) { FD_SET(ip->source, readfds); if (ip->source >= *nfds) *nfds = ip->source + 1; r = 1; } if ((unsigned long)ip->condition & InputWriteMask) { FD_SET(ip->source, writefds); if (ip->source >= *nfds) *nfds = ip->source + 1; r = 1; } if ((unsigned long)ip->condition & InputExceptMask) { FD_SET(ip->source, exceptfds); if (ip->source >= *nfds) *nfds = ip->source + 1; r = 1; } } if (timeouts != TN) { struct timeval now, twait; (void) gettimeofday(&now, (void *)NULL); twait.tv_sec = timeouts->tv.tv_sec - now.tv_sec; twait.tv_usec = timeouts->tv.tv_usec - now.tv_usec; if (twait.tv_usec < 0L) { twait.tv_sec--; twait.tv_usec += MILLION; } if (twait.tv_sec < 0L) twait.tv_sec = twait.tv_usec = 0L; if (*timeout == NULL) { /* No timeout yet -- we're it. */ *timebuf = twait; *timeout = timebuf; r = 1; } else if (twait.tv_sec < (*timeout)->tv_sec || (twait.tv_sec == (*timeout)->tv_sec && twait.tv_usec < (*timeout)->tv_usec)) { /* We're sooner than what they're waiting for. */ **timeout = twait; r = 1; } } return r; } #endif /*]*/ #if defined(_WIN32) /*[*/ #define MAX_HA 256 #endif /*]*/ /* Event dispatcher. */ Boolean process_events(Boolean block) { #if defined(_WIN32) /*[*/ HANDLE ha[MAX_HA]; DWORD nha; DWORD tmo; DWORD ret; unsigned long long now; int i; #else /*][*/ fd_set rfds, wfds, xfds; int ns; struct timeval now, twait, *tp; #endif /*]*/ input_t *ip, *ip_next; struct timeout *t; Boolean any_events; Boolean processed_any = False; processed_any = False; retry: /* If we've processed any input, then don't block again. */ if (processed_any) block = False; any_events = False; #if defined(_WIN32) /*[*/ nha = 0; #else /*][*/ FD_ZERO(&rfds); FD_ZERO(&wfds); FD_ZERO(&xfds); #endif /*]*/ for (ip = inputs; ip != (input_t *)NULL; ip = ip->next) { if ((unsigned long)ip->condition & InputReadMask) { #if defined(_WIN32) /*[*/ ha[nha++] = (HANDLE)ip->source; #else /*][*/ FD_SET(ip->source, &rfds); #endif /*]*/ any_events = True; } #if !defined(_WIN32) /*[*/ if ((unsigned long)ip->condition & InputWriteMask) { FD_SET(ip->source, &wfds); any_events = True; } if ((unsigned long)ip->condition & InputExceptMask) { FD_SET(ip->source, &xfds); any_events = True; } #endif /*]*/ } if (block) { if (timeouts != TN) { #if defined(_WIN32) /*[*/ ms_ts(&now); if (now > timeouts->ts) tmo = 0; else tmo = timeouts->ts - now; #else /*][*/ (void) gettimeofday(&now, (void *)NULL); twait.tv_sec = timeouts->tv.tv_sec - now.tv_sec; twait.tv_usec = timeouts->tv.tv_usec - now.tv_usec; if (twait.tv_usec < 0L) { twait.tv_sec--; twait.tv_usec += MILLION; } if (twait.tv_sec < 0L) twait.tv_sec = twait.tv_usec = 0L; tp = &twait; #endif /*]*/ any_events = True; } else { #if defined(_WIN32) /*[*/ tmo = INFINITE; #else /*][*/ tp = (struct timeval *)NULL; #endif /*]*/ } } else { #if defined(_WIN32) /*[*/ tmo = 1; #else /*][*/ twait.tv_sec = twait.tv_usec = 0L; tp = &twait; #endif /*]*/ } if (!any_events) return processed_any; #if defined(_WIN32) /*[*/ ret = WaitForMultipleObjects(nha, ha, FALSE, tmo); if (ret == WAIT_FAILED) { #else /*][*/ ns = select(FD_SETSIZE, &rfds, &wfds, &xfds, tp); if (ns < 0) { if (errno != EINTR) Warning("process_events: select() failed"); #endif /*]*/ return processed_any; } inputs_changed = False; #if defined(_WIN32) /*[*/ for (i = 0, ip = inputs; ip != (input_t *)NULL; ip = ip_next, i++) { #else /*][*/ for (ip = inputs; ip != (input_t *)NULL; ip = ip_next) { #endif /*]*/ ip_next = ip->next; if (((unsigned long)ip->condition & InputReadMask) && #if defined(_WIN32) /*[*/ ret == WAIT_OBJECT_0 + i) { #else /*][*/ FD_ISSET(ip->source, &rfds)) { #endif /*]*/ (*ip->proc)(); processed_any = True; if (inputs_changed) goto retry; } #if !defined(_WIN32) /*[*/ if (((unsigned long)ip->condition & InputWriteMask) && FD_ISSET(ip->source, &wfds)) { (*ip->proc)(); processed_any = True; if (inputs_changed) goto retry; } if (((unsigned long)ip->condition & InputExceptMask) && FD_ISSET(ip->source, &xfds)) { (*ip->proc)(); processed_any = True; if (inputs_changed) goto retry; } #endif /*]*/ } /* See what's expired. */ if (timeouts != TN) { #if defined(_WIN32) /*[*/ ms_ts(&now); #else /*][*/ (void) gettimeofday(&now, (void *)NULL); #endif /*]*/ while ((t = timeouts) != TN) { #if defined(_WIN32) /*[*/ if (t->ts <= now) { #else /*][*/ if (t->tv.tv_sec < now.tv_sec || (t->tv.tv_sec == now.tv_sec && t->tv.tv_usec < now.tv_usec)) { #endif /*]*/ timeouts = t->next; t->in_play = True; (*t->proc)(); processed_any = True; Free(t); } else break; } } if (inputs_changed) goto retry; return processed_any; } ibm-3270-3.3.10ga4/s3270/screen.h0000644000175000017500000000316111254565673015403 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of screen.h */ #define SELECTED(baddr) False extern int *char_width, *char_height; ibm-3270-3.3.10ga4/s3270/utf8.c0000644000175000017500000001545611254565704015012 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utf8.c * 3270 Terminal Emulator * UTF-8 conversions */ #include "globals.h" #include "popupsc.h" #include "utf8c.h" char *locale_codeset = CN; Boolean is_utf8 = False; /* * Save the codeset from the locale, and set globals based on known values. */ void set_codeset(char *codeset_name) { #if !defined(TCL3270) /*[*/ is_utf8 = (!strcasecmp(codeset_name, "utf-8") || !strcasecmp(codeset_name, "utf8") || !strcasecmp(codeset_name, "utf_8")); #else /*][*/ /* * tcl3270 is always in UTF-8 mode, because it needs to * supply UTF-8 strings to libtcl and vice-versa. */ is_utf8 = True; #endif /*]*/ Replace(locale_codeset, NewString(codeset_name)); } /* * Convert from UCS-4 to UTF-8. * Returns: * >0: length of converted character * -1: invalid UCS-4 */ int unicode_to_utf8(ucs4_t ucs4, char *utf8) { if (ucs4 & 0x80000000) return -1; if (ucs4 <= 0x0000007f) { utf8[0] = ucs4 & 0x7f; /* 7 bits */ return 1; } else if (ucs4 <= 0x000007ff) { utf8[0] = 0xc0 | ((ucs4 >> 6) & 0x1f); /* upper 5 bits */ utf8[1] = 0x80 | (ucs4 & 0x3f); /* lower 6 bits */ return 2; } else if (ucs4 <= 0x0000ffff) { utf8[0] = 0xe0 | ((ucs4 >> 12) & 0x0f); /* upper 4 bits */ utf8[1] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 3; } else if (ucs4 <= 0x001fffff) { utf8[0] = 0xf0 | ((ucs4 >> 18) & 0x07); /* upper 3 bits */ utf8[1] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 4; } else if (ucs4 <= 0x03ffffff) { utf8[0] = 0xf8 | ((ucs4 >> 24) & 0x03); /* upper 2 bits */ utf8[1] = 0x80 | ((ucs4 >> 18) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[4] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 5; } else { utf8[0] = 0xfc | ((ucs4 >> 30) & 0x01); /* upper 1 bit */ utf8[1] = 0x80 | ((ucs4 >> 24) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 18) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[4] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[5] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 6; } } /* * Convert at most 'len' bytes from a UTF-8 string to one UCS-4 character. * Returns: * >0: Number of characters consumed. * 0: Incomplete sequence. * -1: Invalid sequence. * -2: Illegal (too-long) encoding. * -3: Invalid lead byte. * * An invalid sequence can be either improperly composed, or using the wrong * encoding length (often used to get past spam filters and such). */ int utf8_to_unicode(const char *utf8, int len, ucs4_t *ucs4) { /* No input is by definition incomplete. */ if (!len) return 0; /* See if it's ASCII-7. */ if ((utf8[0] & 0xff) < 0x80) { *ucs4 = utf8[0] & 0x7f; return 1; } /* Now check for specific UTF-8 leading bytes. */ if ((utf8[0] & 0xe0) == 0xc0) { /* 110xxxxx 10xxxxxx * 0x00000080-0x000007ff */ if (len < 2) return 0; if ((utf8[1] & 0xc0) != 0x80) return -1; *ucs4 = ((utf8[0] << 6) & 0x7c0) | (utf8[1] & 0x03f); if (*ucs4 < 0x00000080) return -1; return 2; } if ((utf8[0] & 0xf0) == 0xe0) { /* 1110xxxx 10xxxxxx 10xxxxxx * 0x00000800-0x0000ffff */ if (len < 3) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 12) & 0xf000) | ((utf8[1] << 6) & 0x0fc0) | ((utf8[2]) & 0x003f); if (*ucs4 < 0x00000800) return -2; return 3; } if ((utf8[0] & 0xf8) == 0xf0) { /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x00010000-0x001fffff */ if (len < 4) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 18) & 0x1c0000) | ((utf8[1] << 12) & 0x03f000) | ((utf8[2] << 6) & 0x000fc0) | ((utf8[3]) & 0x00003f); if (*ucs4 < 0x00010000) return -2; return 4; } if ((utf8[0] & 0xfc) == 0xf8) { /* 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x00200000-0x03ffffff */ if (len < 5) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80) || ((utf8[4] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 24) & 0x3000000) | ((utf8[1] << 18) & 0x0fc0000) | ((utf8[2] << 12) & 0x003f000) | ((utf8[3] << 6) & 0x0000fc0) | ((utf8[4]) & 0x000003f); if (*ucs4 < 0x00200000) return -2; return 5; } if ((utf8[0] & 0xfe) == 0xfc) { /* 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x04000000-0x7fffffff */ if (len < 6) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80) || ((utf8[4] & 0xc0) != 0x80) || ((utf8[5] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 30) & 0x40000000) | ((utf8[1] << 24) & 0x3f000000) | ((utf8[2] << 18) & 0x00fc0000) | ((utf8[3] << 12) & 0x0003f000) | ((utf8[4] << 6) & 0x00000fc0) | ((utf8[5]) & 0x0000003f); if (*ucs4 < 0x04000000) return -2; return 6; } return -3; } ibm-3270-3.3.10ga4/s3270/screenc.h0000644000175000017500000000373411254565673015554 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of screenc.h */ #define blink_start() #define cursor_move(baddr) cursor_addr = (baddr) #define display_heightMM() 100 #define display_height() 1 #define display_widthMM() 100 #define display_width() 1 #define mcursor_locked() #define mcursor_normal() #define mcursor_waiting() #define ring_bell() #define screen_disp(erasing) #define screen_flip() #define screen_obscured() False #define screen_scroll() #define screen_80() #define screen_132() ibm-3270-3.3.10ga4/s3270/x3270if.man0000644000175000017500000001351711261527771015553 0ustar bastianbastian'\" t .TH X3270IF 1 "02 October 2009" .SH "NAME" x3270if \- command interface to x3270, c3270 and s3270 .SH "SYNOPSIS" \fBx3270if\fP [option]... [ \fIaction\fP ] .br \fBx3270if \-i\fP .SH "DESCRIPTION" \fBx3270if\fP provides an interface between scripts and the 3270 emulators \fIx3270\fP, \fIc3270\fP, and \fIs3270\fP. .LP \fBx3270if\fP operates in one of two modes. In \fBaction mode\fP, it passes a single action and parameters to the emulator for execution. The result of the action is written to standard output, along with the (optional) status of the emulator. (The action is optional as well, so that \fBx3270if\fP can just reports the emulator status.) In \fBiterative mode\fP, it forms a continuous conduit between a script and the emulator. .LP The \fIaction\fP takes the form: .IP \fIaction-name\fP(\fIparam\fP[,\fIparam\fP]...) .LP The parentheses are manatory, and usually must be quoted when \fBx3270if\fP is called from a shell script. .LP If any \fIparam\fP contains a space or comma, it must be surrounded by double quotes. .SH "OPTIONS" .TP \fB\-s\fP \fIfield\fP Causes \fBx3270if\fP to write to stdout the value of one of the emulator status fields. \fIField\fP is an integer in the range 0 through 11. The value 0 is a no-op and is used only to return exit status indicating the state of the emulator. The indices 1-11 and meanings of each field are documented on the \fIx3270-script\fP(1) manual page. If an \fIaction\fP is specified as well, the status field is written after the output of the action, separated by a newline. The \fB\-s\fP option is mutually exclusive with the \fB\-S\fP and \fB\-i\fP options. .TP \fB\-S\fP Causes \fBx3270if\fP to write to stdout the value of all of the emulator status fields. If an \fIaction\fP is specified as well, the status fields are written after the output of the action, separated by a newline. The \fB\-S\fP option is mutually exclusive with the \fB\-s\fP and \fB\-i\fP options. .TP \fB\-i\fP Puts \fBx3270if\fP in iterative mode. Data from \fBx3270if\fP's standard input is copied to the emulator's script input; data from the emulator's script output is copied to \fBx3270if\fP's standard output. The \fB\-i\fP option is mutually exclusive with the \fB\-s\fP and \fB\-S\fP options. \fBx3270if\fP runs until it detects end-of-file on its standard input or on the output from the emulator. (This mode exists primarily to give \fIexpect\fP(1) a process to run, on systems which do not support bidirectional pipes.) .TP \fB\-p\fP \fIprocess-id\fP Causes \fIx3270if\fP to use a Unix-domain socket to connect to the emulator, rather than pipe file descriptors given in environment variables. The emulator must have been started with the \fB\-socket\fP option. .TP \fB\-t\fP \fIport\fP Causes \fIx3270if\fP to use a TCP socket to connect to the emulator, rather than pipe file descriptors given in environment variables. The emulator must have been started with the \fB\-scriptport\fP option. .TP \fB\-v\fP Turns on verbose debug messages, showing on stderr the literal data that is passed between the emulator and \fBx3270if\fP. .SH "EXIT STATUS" In action mode, if the requested \fIaction\fP succeeds, \fBx3270if\fP exits with status 0. If the action fails, \fBx3270if\fP exits with status 1. In iterative mode, \fBx3270if\fP exits with status 0 when it encounters end-of-file. If there is an operational error within \fBx3270if\fP itself, such as a command-line syntax error, missing environment variable, or an unexpectedly closed pipe, \fBx3270if\fP exits with status 2. .SH "ENVIRONMENT" When a script is run as a child process of one of the emulators via the \fBScript\fP action, the emulator passes information about how to control it in environment variables. .LP On Unix, the emulator process creates a pair of pipes for communication with the child script process. The values of the file descriptors for these pipes are encoded as text in two environment variables: .TP \fBX3270OUTPUT\fP Output from the emulator, input to the child process. .TP \fBX3270INPUT\fP Input to the emulator, output from the child process. .LP On Windows, or when a Unix emulator is started with the \fB\-scriptport\fP option, the emulator will pass the port number encoded as text in the \fBX3270PORT\fP environment variable. \fIx3270if\fP will use that value as if it had been passed to it via the \fB\-t\fP option. \fBX3270PORT\fP takes precedence over \fBX3270OUTPUT\fP and \fBX3270INPUT\fP. .SH "SEE ALSO" x3270(1), c3270(1), s3270(1), x3270-script(1) .SH "COPYRIGHT" Copyright 1999-2009, Paul Mattes. .br All rights reserved. .LP Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: .TP * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. .TP * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. .TP * Neither the names of Paul Mattes nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. .LP THIS SOFTWARE IS PROVIDED BY PAUL MATTES `AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ibm-3270-3.3.10ga4/s3270/s3270.man0000644000175000017500000006641011261527771015227 0ustar bastianbastian'\" t .TH s3270 1 "02 October 2009" .SH "NAME" s3270 \- \s-1IBM\s+1 host access tool .SH "SYNOPSIS" \fBs3270\fP [\fIoptions\fP] [\fIhost\fP] .br \fBs3270\fP [\fIoptions\fP] \fIsession-file\fP.s3270 .SH "DESCRIPTION" \fBs3270\fP opens a telnet connection to an \s-1IBM\s+1 host, then allows a script to control the host login session. It is derived from \fIx3270\fP(1), an X-windows IBM 3270 emulator. It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection), and supports IND$FILE file transfer. .LP The full syntax for \fIhost\fP is: .RS [\fIprefix\fP:]...[\fILUname\fP@]\fIhostname\fP[:\fIport\fP] .RE .LP Prepending a \fBP:\fP onto \fIhostname\fP causes the connection to go through the \fItelnet-passthru\fP service rather than directly to the host. See \s-1PASSTHRU\s+1 below. .LP Prepending an \fBS:\fP onto \fIhostname\fP removes the "extended data stream" option reported to the host. See \fB\-tn\fP below for further information. .LP Prepending an \fBN:\fP onto \fIhostname\fP turns off TN3270E support for the session. .LP Prepending an \fBL:\fP onto \fIhostname\fP causes \fBs3270\fP to first create an SSL tunnel to the host, and then create a TN3270 session inside the tunnel. (This function is supported only if \fBs3270\fP was built with SSL/TLS support). Note that TLS-encrypted sessions using the TELNET START-TLS option are negotiated with the host automatically; for these sessions the \fBL:\fP prefix should not be used. .LP A specific Logical Unit (LU) name to use may be specified by prepending it to the \fIhostname\fP with an `\fB@\fP'. Multiple LU names to try can be separated by commas. An empty LU can be placed in the list with an extra comma. (Note that the LU name is used for different purposes by different kinds of hosts. For example, CICS uses the LU name as the Terminal ID.) .LP The \fIhostname\fP may optionally be placed inside square-bracket characters `\fB[\fP' and `\fB]\fP'. This will prevent any colon `\fB:\fP' characters in the hostname from being interpreted as indicating option prefixes or port numbers. This allows numeric IPv6 addresses to be used as hostnames. .LP On systems that support the \fIforkpty\fP library call, the \fIhostname\fP may be replaced with \fB\-e\fP and a command string. This will cause \fBs3270\fP to connect to a local child process, such as a shell. .LP The port to connect to defaults to \fBtelnet\fP. This can be overridden with the \fB\-port\fP option, or by appending a \fIport\fP to the \fIhostname\fP with a colon `\fB:\fP'. (For compatability with previous versions of \fBs3270\fP and with \fItn3270\fP(1), the \fIport\fP may also be specified as a second, separate argument.) .SH "OPTIONS" \fBs3270\fP understands the following options: .TP \fB\-charset\fP \fIname\fP Specifies an \s-1EBCDIC\s+1 host character set. .TP \fB\-clear\fP \fItoggle\fP Sets the initial value of \fItoggle\fP to \fBfalse\fP. The list of toggle names is under \s-1TOGGLES\s+1 below. .TP \fB\-im\fP \fImethod\fP Specifies the name of the input method to use for multi-byte input. (Supported only when s3270 is compiled with DBCS support.) .TP \fB\-km\fP \fIname\fP Specifies the local encoding method for multi-byte text. \fIname\fP is an encoding name recognized by the ICU library. (Supported only when s3270 is compiled with DBCS support, and necessary only when s3270 cannot figure it out from the locale.) .TP \fB\-model\fP \fIname\fP The model of 3270 display to be emulated. The model name is in two parts, either of which may be omitted: .IP The first part is the \fBbase model\fP, which is either \fB3278\fP or \fB3279\fP. \fB3278\fP specifies a monochrome (green on black) 3270 display; \fB3279\fP specifies a color 3270 display. .IP The second part is the \fBmodel number\fP, which specifies the number of rows and columns. Model 4 is the default. .PP .TS center; c c c . T{ .na .nh Model Number T} T{ .na .nh Columns T} T{ .na .nh Rows T} _ T{ .na .nh 2 T} T{ .na .nh 80 T} T{ .na .nh 24 T} T{ .na .nh 3 T} T{ .na .nh 80 T} T{ .na .nh 32 T} T{ .na .nh 4 T} T{ .na .nh 80 T} T{ .na .nh 43 T} T{ .na .nh 5 T} T{ .na .nh 132 T} T{ .na .nh 27 T} .TE .IP Note: Technically, there is no such 3270 display as a 3279-4 or 3279-5, but most hosts seem to work with them anyway. .IP The default model is \fB3278\-4\fP. .TP \fB\-oversize\fP \fIcols\fP\fBx\fP\fIrows\fP Makes the screen larger than the default for the chosen model number. This option has effect only in combination with extended data stream support (controlled by the "s3270.extended" resource), and only if the host supports the Query Reply structured field. The number of columns multiplied by the number of rows must not exceed 16383 (3fff hex), the limit of 14-bit 3270 buffer addressing. .TP \fB\-port\fP \fIn\fP Specifies a different \s-1TCP\s+1 port to connect to. \fIn\fP can be a name from \fB/etc/services\fP like \fBtelnet\fP, or a number. This option changes the default port number used for all connections. (The positional parameter affects only the initial connection.) .TP \fB\-proxy \fItype\fP:\fIhost\fP[:\fIport\fP]\fP Causes \fBs3270\fP to connect via the specified proxy, instead of using a direct connection. The \fIhost\fP can be an IP address or hostname. The optional \fIport\fP can be a number or a service name. For a list of supported proxy \fItypes\fP, see \s-1PROXY\s+1 below. .TP \fB\-scriptport\fP \fIport\fP Causes s3270 to listen for scripting connections on local TCP port \fIport\fP. .TP \fB\-set\fP \fItoggle\fP Sets the initial value of \fItoggle\fP to \fBtrue\fP. The list of toggle names is under \s-1TOGGLES\s+1 below. .TP \fB\-socket\fP Causes the emulator to create a Unix-domain socket when it starts, for use by script processes to send commands to the emulator. The socket is named \fB/tmp/x3sck.\fP\fIprocess_id\fP. The \fB\-p\fP option of \fIx3270if\fP causes it to use this socket, instead of pipes specified by environment variables. .TP \fB\-tn\fP \fIname\fP Specifies the terminal name to be transmitted over the telnet connection. The default name is \fBIBM\-\fP\fImodel_name\fP\fB\-E\fP, for example, \fBIBM\-3278\-4\-E\fP. .IP Some hosts are confused by the \fB\-E\fP suffix on the terminal name, and will ignore the extra screen area on models 3, 4 and 5. Prepending an \fBs:\fP on the hostname, or setting the "s3270.extended" resource to "false", removes the \fB\-E\fP from the terminal name when connecting to such hosts. .IP The name can also be specified with the "s3270.termName" resource. .TP \fB\-trace\fP Turns on data stream and event tracing at startup. The default trace file name is \fB/tmp/x3trc.\fP\fIprocess_id\fP. .TP \fB\-tracefile\fP \fIfile\fP Specifies a file to save data stream and event traces into. .TP \fB\-tracefilesize\fP \fIsize\fP Places a limit on the size of a trace file. If this option is not specified, or is specified as \fB0\fP or \fBnone\fP, the trace file will be unlimited. If specified, the trace file cannot already exist, and the (silently enforced) minimum size is 64 Kbytes. The value of \fIsize\fP can have a \fBK\fP or \fBM\fP suffix, indicating kilobytes or megabytes respectively. .TP \fB\-v\fP Display the version and build options for \fBs3270\fP and exit. .TP \fB\-xrm\fP "s3270.\fIresource\fP: \fIvalue\fP" Sets the value of the named \fIresource\fP to \fIvalue\fP. Resources control less common \fBs3270\fP options, and are defined under \s-1RESOURCES\s+1 below. .TE .LP These names are also used as the first parameter to the \fBToggle\fP action. .SH "ACTIONS" Here is a complete list of basic s3270 actions. Script-specific actions are described on the \fIx3270-script\fP(1) manual page. .PP Actions marked with an asterisk (*) may block, sending data to the host and possibly waiting for a response. .PP .TS center; lw(3i) lw(3i). T{ .na .nh .in +2 .ti -2 *Attn T} T{ .na .nh attention key T} T{ .na .nh .in +2 .ti -2 BackSpace T} T{ .na .nh move cursor left (or send \s-1ASCII BS\s+1) T} T{ .na .nh .in +2 .ti -2 BackTab T} T{ .na .nh tab to start of previous input field T} T{ .na .nh .in +2 .ti -2 CircumNot T} T{ .na .nh input "^" in \s-1NVT\s+1 mode, or "notsign" in 3270 mode T} T{ .na .nh .in +2 .ti -2 *Clear T} T{ .na .nh clear screen T} T{ .na .nh .in +2 .ti -2 *Connect(\fIhost\fP) T} T{ .na .nh connect to \fIhost\fP T} T{ .na .nh .in +2 .ti -2 *CursorSelect T} T{ .na .nh Cursor Select \s-1AID\s+1 T} T{ .na .nh .in +2 .ti -2 Delete T} T{ .na .nh delete character under cursor (or send \s-1ASCII DEL\s+1) T} T{ .na .nh .in +2 .ti -2 DeleteField T} T{ .na .nh delete the entire field T} T{ .na .nh .in +2 .ti -2 DeleteWord T} T{ .na .nh delete the current or previous word T} T{ .na .nh .in +2 .ti -2 *Disconnect T} T{ .na .nh disconnect from host T} T{ .na .nh .in +2 .ti -2 Down T} T{ .na .nh move cursor down T} T{ .na .nh .in +2 .ti -2 Dup T} T{ .na .nh duplicate field T} T{ .na .nh .in +2 .ti -2 *Enter T} T{ .na .nh Enter \s-1AID\s+1 (or send \s-1ASCII CR\s+1) T} T{ .na .nh .in +2 .ti -2 Erase T} T{ .na .nh erase previous character (or send \s-1ASCII BS\s+1) T} T{ .na .nh .in +2 .ti -2 EraseEOF T} T{ .na .nh erase to end of current field T} T{ .na .nh .in +2 .ti -2 EraseInput T} T{ .na .nh erase all input fields T} T{ .na .nh .in +2 .ti -2 Execute(\fIcmd\fP) T} T{ .na .nh execute a command in a shell T} T{ .na .nh .in +2 .ti -2 FieldEnd T} T{ .na .nh move cursor to end of field T} T{ .na .nh .in +2 .ti -2 FieldMark T} T{ .na .nh mark field T} T{ .na .nh .in +2 .ti -2 HexString(\fIhex_digits\fP) T} T{ .na .nh insert control-character string T} T{ .na .nh .in +2 .ti -2 Home T} T{ .na .nh move cursor to first input field T} T{ .na .nh .in +2 .ti -2 Insert T} T{ .na .nh set insert mode T} T{ .na .nh .in +2 .ti -2 *Interrupt T} T{ .na .nh send \s-1TELNET IP\s+1 to host T} T{ .na .nh .in +2 .ti -2 Key(\fIkeysym\fP) T} T{ .na .nh insert key \fIkeysym\fP T} T{ .na .nh .in +2 .ti -2 Key(0x\fIxx\fP) T} T{ .na .nh insert key with character code \fIxx\fP T} T{ .na .nh .in +2 .ti -2 Left T} T{ .na .nh move cursor left T} T{ .na .nh .in +2 .ti -2 Left2 T} T{ .na .nh move cursor left 2 positions T} T{ .na .nh .in +2 .ti -2 MonoCase T} T{ .na .nh toggle uppercase-only mode T} T{ .na .nh .in +2 .ti -2 MoveCursor(\fIrow\fP, \fIcol\fP) T} T{ .na .nh move cursor to (\fIrow\fP,\fIcol\fP) T} T{ .na .nh .in +2 .ti -2 Newline T} T{ .na .nh move cursor to first field on next line (or send \s-1ASCII LF\s+1) T} T{ .na .nh .in +2 .ti -2 NextWord T} T{ .na .nh move cursor to next word T} T{ .na .nh .in +2 .ti -2 *PA(\fIn\fP) T} T{ .na .nh Program Attention \s-1AID\s+1 (\fIn\fP from 1 to 3) T} T{ .na .nh .in +2 .ti -2 *PF(\fIn\fP) T} T{ .na .nh Program Function \s-1AID\s+1 (\fIn\fP from 1 to 24) T} T{ .na .nh .in +2 .ti -2 PreviousWord T} T{ .na .nh move cursor to previous word T} T{ .na .nh .in +2 .ti -2 Quit T} T{ .na .nh exit \fBs3270\fP T} T{ .na .nh .in +2 .ti -2 Redraw T} T{ .na .nh redraw window T} T{ .na .nh .in +2 .ti -2 Reset T} T{ .na .nh reset locked keyboard T} T{ .na .nh .in +2 .ti -2 Right T} T{ .na .nh move cursor right T} T{ .na .nh .in +2 .ti -2 Right2 T} T{ .na .nh move cursor right 2 positions T} T{ .na .nh .in +2 .ti -2 *Script(\fIcommand\fP[,\fIarg\fP...]) T} T{ .na .nh run a script T} T{ .na .nh .in +2 .ti -2 *String(\fIstring\fP) T} T{ .na .nh insert string (simple macro facility) T} T{ .na .nh .in +2 .ti -2 *SysReq T} T{ .na .nh System Request \s-1AID\s+1 T} T{ .na .nh .in +2 .ti -2 Tab T} T{ .na .nh move cursor to next input field T} T{ .na .nh .in +2 .ti -2 Toggle(\fIoption\fP[,\fIset|clear\fP]) T} T{ .na .nh toggle an option T} T{ .na .nh .in +2 .ti -2 ToggleInsert T} T{ .na .nh toggle insert mode T} T{ .na .nh .in +2 .ti -2 ToggleReverse T} T{ .na .nh toggle reverse-input mode T} T{ .na .nh .in +2 .ti -2 *Transfer(\fIoption\fP=\fIvalue\fP...) T} T{ .na .nh file transfer T} T{ .na .nh .in +2 .ti -2 Up T} T{ .na .nh move cursor up T} .TE .SH "FILE TRANSFER" The \fBTransfer\fP action implements \fBIND$FILE\fP file transfer. This action requires that the \fBIND$FILE\fP program be installed on the \s-1IBM\s+1 host, and that the 3270 cursor be located in a field that will accept a \s-1TSO\s+1 or \s-1VM/CMS\s+1 command. .LP .LP Because of the complexity and number of options for file transfer, the parameters to the \fBTransfer\fP action take the unique form of \fIoption\fP=\fIvalue\fP, and can appear in any order. Note that if the \fIvalue\fP contains spaces (such as a VM/CMS file name), then the entire parameter must be quoted, e.g., "HostFile=xxx foo a". The options are: .LP .TS l c l l. T{ .na .nh Option T} T{ .na .nh Required? T} T{ .na .nh Default T} T{ .na .nh Other Values T} _ T{ .na .nh Direction T} T{ .na .nh No T} T{ .na .nh receive T} T{ .na .nh send T} T{ .na .nh HostFile T} T{ .na .nh Yes T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh LocalFile T} T{ .na .nh Yes T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Host T} T{ .na .nh No T} T{ .na .nh tso T} T{ .na .nh vm T} T{ .na .nh Mode T} T{ .na .nh No T} T{ .na .nh ascii T} T{ .na .nh binary T} T{ .na .nh Cr T} T{ .na .nh No T} T{ .na .nh remove T} T{ .na .nh add, keep T} T{ .na .nh Remap T} T{ .na .nh No T} T{ .na .nh yes T} T{ .na .nh no T} T{ .na .nh Exist T} T{ .na .nh No T} T{ .na .nh keep T} T{ .na .nh replace, append T} T{ .na .nh Recfm T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh fixed, variable, undefined T} T{ .na .nh Lrecl T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Blksize T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Allocation T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh tracks, cylinders, avblock T} T{ .na .nh PrimarySpace T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh SecondarySpace T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh BufferSize T} T{ .na .nh No T} T{ .na .nh 4096 T} T{ .na .nh \ T} .TE .LP The option details are as follows. .TP \fBDirection\fP \fBsend\fP to send a file to the host, \fBreceive\fP to receive a file from the host. .TP \fBHostFile\fP The name of the file on the host. .TP \fBLocalFile\fP The name of the file on the local workstation. .TP \fBHost\fP The type of host (which dictates the form of the \fBIND$FILE\fP command): \fBtso\fP (the default) or \fBvm\fP. .TP \fBMode\fP Use \fBascii\fP (the default) for a text file, which will be translated between \s-1EBCDIC\s+1 and \s-1ASCII\s+1 as necessary. Use \fBbinary\fP for non-text files. .TP \fBCr\fP Controls how \fBNewline\fP characters are handled when transferring \fBMode=ascii\fP files. \fBremove\fP (the default) strips \fBNewline\fP characters in local files before transferring them to the host. \fBadd\fP adds \fBNewline\fP characters to each host file record before transferring it to the local workstation. \fBkeep\fP preserves \fBNewline\fP characters when transferring a local file to the host. .TP \fBRemap\fP Controls text translation for \fBMode=ascii\fP files. The value \fByes\fP (the default) causes s3270 to remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page. The value \fBno\fP causes s3270 to pass the text to or from the host as-is, leaving all translation to the \fBIND$FILE\fP program on the host. .TP \fBExist\fP Controls what happens when the destination file already exists. \fBkeep\fP (the default) preserves the file, causing the \fBTransfer\fP action to fail. \fBreplace\fP overwrites the destination file with the source file. \fBappend\fP appends the source file to the destination file. .TP \fBRecfm\fP Controls the record format of files created on the host. \fBfixed\fP creates a file with fixed-length records. \fBvariable\fP creates a file with variable-length records. \fBundefined\fP creates a file with undefined-length records (\s-1TSO\s+1 hosts only). The \fBLrecl\fP option controls the record length or maximum record length for \fBRecfm=fixed\fP and \fBRecfm=variable\fP files, respectively. .TP \fBLrecl\fP Specifies the record length (or maximum record length) for files created on the host. .TP \fBBlksize\fP Specifies the block size for files created on the host. (\s-1TSO\s+1 hosts only.) .TP \fBAllocation\fP Specifies the units for the \s-1TSO\s+1 host \fBPrimarySpace\fP and \fBSecondarySpace\fP options: \fBtracks\fP, \fBcylinders\fP or \fBavblock\fP. .TP \fBPrimarySpace\fP Primary allocation for a file created on a \s-1TSO\s+1 host. The units are given by the \fBAllocation\fP option. .TP \fBSecondarySpace\fP Secondary allocation for a file created on a \s-1TSO\s+1 host. The units are given by the \fBAllocation\fP option. .TP \fBBufferSize\fP Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them. .SH "THE PRINTTEXT ACTION" The \fBPrintText\fP produces screen snapshots in a number of different forms. The default form wth no arguments sends a copy of the screen to the default printer. A single argument is the command to use to print, e.g., \fBlpr\fP. Multiple arguments can include keywords to control the output of \fBPrintText\fP: .TP \fBfile\fP \fIfilename\fP Save the output in a file. .TP \fBhtml\fP Save the output as HTML. This option implies \fBfile\fP. .TP \fBrtf\fP Save the output as RichText. This option implies \fBfile\fP. The font defaults to \fBCourier New\fP and the point size defaults to 8. These can be overridden by the \fBprintTextFont\fP and \fBprintTextSize\fP resources, respectively. .TP \fBstring\fP Return the output as a string. This can only be used from scripts. .TP \fBmodi\fP Render modified fields in italics. .TP \fBcaption\fP \fItext\fP Add the specified \fItext\fP as a caption above the output. Within \fItext\fP, the special sequence \fB%T%\fP will be replaced with a timestamp. .TP \fBcommand\fP \fIcommand\fP Directs the output to a command. This allows one or more of the other keywords to be specified, while still sending the output to the printer. .SH "NESTED SCRIPTS" There are several types of nested script functions available. .TP \fBThe String Action\fP The simplest method for nested scripts is provided via the \fBString\fP action. The arguments to \fBString\fP are one or more double-quoted strings which are inserted directly as if typed. The C backslash conventions are honored as follows. (Entries marked * mean that after sending the \s-1AID\s+1 code to the host, \fBs3270\fP will wait for the host to unlock the keyboard before further processing the string.) .TS l l. T{ .na .nh \eb T} T{ .na .nh Left T} T{ .na .nh \ee\fIxxxx\fP T} T{ .na .nh EBCDIC character in hex T} T{ .na .nh \ef T} T{ .na .nh Clear* T} T{ .na .nh \en T} T{ .na .nh Enter* T} T{ .na .nh \epa\fIn\fP T} T{ .na .nh PA(\fIn\fP)* T} T{ .na .nh \epf\fInn\fP T} T{ .na .nh PF(\fInn\fP)* T} T{ .na .nh \er T} T{ .na .nh Newline T} T{ .na .nh \et T} T{ .na .nh Tab T} T{ .na .nh \eT T} T{ .na .nh BackTab T} T{ .na .nh \eu\fIxxxx\fP T} T{ .na .nh Unicode character in hex T} T{ .na .nh \ex\fIxxxx\fP T} T{ .na .nh Unicode character in hex T} .TE .IP Note that the numeric values for the \ee, \eu and \ex sequences can be abbreviated to 2 digits. Note also that EBCDIC codes greater than 255 and some Unicode character codes represent DBCS characters, which will work only if s3270 is built with DBCS support and the host allows DBCS input in the current field. .IP \fBNote:\fP The strings are in \s-1ASCII\s+1 and converted to \s-1EBCDIC\s+1, so beware of inserting control codes. .IP There is also an alternate form of the \fBString\fP action, \fBHexString\fP, which is used to enter non-printing data. The argument to \fBHexString\fP is a string of hexadecimal digits, two per character. A leading 0x or 0X is optional. In 3270 mode, the hexadecimal data represent \s-1EBCDIC\s+1 characters, which are entered into the current field. In \s-1NVT\s+1 mode, the hexadecimal data represent \s-1ASCII\s+1 characters, which are sent directly to the host. .TP \fBThe Script Action\fP This action causes \fBs3270\fP to start a child process which can execute \fBs3270\fP actions. Standard input and output from the child process are piped back to \fBs3270\fP. The \fBScript\fP action is fully documented in \fIx3270-script\fP(1). .SH "PASSTHRU" \fBs3270\fP supports the Sun \fItelnet-passthru\fP service provided by the \fIin.telnet-gw\fP server. This allows outbound telnet connections through a firewall machine. When a \fBp:\fP is prepended to a hostname, \fBs3270\fP acts much like the \fIitelnet\fP(1) command. It contacts the machine named \fBinternet-gateway\fP at the port defined in \fB/etc/services\fP as \fBtelnet-passthru\fP (which defaults to 3514). It then passes the requested hostname and port to the \fBin.telnet-gw\fP server. .SH "PROXY" The \fB\-proxy\fP option or the \fBs3270.proxy\fP resource causes s3270 to use a proxy server to connect to the host. The syntax of the option or resource is: .RS \fItype\fP:\fIhost\fP[:\fIport\fP] .RE The supported values for \fItype\fP are: .TS center; c l c . T{ .na .nh Proxy Type T} T{ .na .nh Protocol T} T{ .na .nh Default Port T} _ T{ .na .nh http T} T{ .na .nh RFC 2817 HTTP tunnel (squid) T} T{ .na .nh 3128 T} T{ .na .nh passthru T} T{ .na .nh Sun in.telnet-gw T} T{ .na .nh none T} T{ .na .nh socks4 T} T{ .na .nh SOCKS version 4 T} T{ .na .nh 1080 T} T{ .na .nh socks5 T} T{ .na .nh SOCKS version 5 (RFC 1928) T} T{ .na .nh 1080 T} T{ .na .nh telnet T} T{ .na .nh No protocol (just send \fBconnect\fP \fIhost port\fP) T} T{ .na .nh none T} .TE .LP The special types \fBsocks4a\fP and \fBsocks5d\fP can also be used to force the proxy server to do the hostname resolution for the SOCKS protocol. .SH "RESOURCES" Certain \fBs3270\fP options can be configured via resources. Resources are defined by \fB\-xrm\fP options. The definitions are similar to X11 resources, and use a similar syntax. The resources available in \fBs3270\fP are: .LP .TS l l l l. T{ .na .nh Resource T} T{ .na .nh Default T} T{ .na .nh Option T} T{ .na .nh Purpose T} _ T{ .na .nh blankFill T} T{ .na .nh False T} T{ .na .nh \-set blankFill T} T{ .na .nh Blank Fill mode T} T{ .na .nh charset T} T{ .na .nh bracket T} T{ .na .nh \-charset T} T{ .na .nh \s-1EBCDIC\s+1 character set T} T{ .na .nh dbcsCgcsgid T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Override DBCS CGCSGID T} T{ .na .nh dsTrace T} T{ .na .nh False T} T{ .na .nh \-trace T} T{ .na .nh Data stream tracing T} T{ .na .nh eof T} T{ .na .nh ^D T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode \s-1EOF\s+1 character T} T{ .na .nh erase T} T{ .na .nh ^H T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode erase character T} T{ .na .nh extended T} T{ .na .nh True T} T{ .na .nh \ T} T{ .na .nh Use 3270 extended data stream T} T{ .na .nh eventTrace T} T{ .na .nh False T} T{ .na .nh \-trace T} T{ .na .nh Event tracing T} T{ .na .nh icrnl T} T{ .na .nh False T} T{ .na .nh \ T} T{ .na .nh Map \s-1CR\s+1 to \s-1NL\s+1 on \s-1NVT\s+1-mode input T} T{ .na .nh inlcr T} T{ .na .nh False T} T{ .na .nh \ T} T{ .na .nh Map \s-1NL\s+1 to \s-1CR\s+1 in \s-1NVT\s+1-mode input T} T{ .na .nh intr T} T{ .na .nh ^C T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode interrupt character T} T{ .na .nh kill T} T{ .na .nh ^U T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode kill character T} T{ .na .nh lineWrap T} T{ .na .nh False T} T{ .na .nh \-set lineWrap T} T{ .na .nh \s-1NVT\s+1 line wrap mode T} T{ .na .nh lnext T} T{ .na .nh ^V T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode lnext character T} T{ .na .nh m3279 T} T{ .na .nh (note 1) T} T{ .na .nh \-model T} T{ .na .nh 3279 (color) emulation T} T{ .na .nh monoCase T} T{ .na .nh False T} T{ .na .nh \-set monoCase T} T{ .na .nh Mono-case mode T} T{ .na .nh numericLock T} T{ .na .nh False T} T{ .na .nh \ T} T{ .na .nh Lock keyboard for numeric field error T} T{ .na .nh oerrLock T} T{ .na .nh False T} T{ .na .nh \ T} T{ .na .nh Lock keyboard for input error T} T{ .na .nh oversize T} T{ .na .nh \ T} T{ .na .nh \-oversize T} T{ .na .nh Oversize screen dimensions T} T{ .na .nh port T} T{ .na .nh telnet T} T{ .na .nh \-port T} T{ .na .nh Non-default TCP port T} T{ .na .nh quit T} T{ .na .nh ^\e T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode quit character T} T{ .na .nh rprnt T} T{ .na .nh ^R T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode reprint character T} T{ .na .nh sbcsCgcsgid T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Override SBCS CGCSGID T} T{ .na .nh secure T} T{ .na .nh False T} T{ .na .nh \ T} T{ .na .nh Disable "dangerous" options T} T{ .na .nh termName T} T{ .na .nh (note 2) T} T{ .na .nh \-tn T} T{ .na .nh \s-1TELNET\s+1 terminal type string T} T{ .na .nh traceDir T} T{ .na .nh /tmp T} T{ .na .nh \ T} T{ .na .nh Directory for trace files T} T{ .na .nh traceFile T} T{ .na .nh (note 3) T} T{ .na .nh \-tracefile T} T{ .na .nh File for trace output T} T{ .na .nh werase T} T{ .na .nh ^W T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode word-erase character T} .TE .LP .RS \fINote 1\fP: \fBm3279\fP defaults to \fBFalse\fP. It can be forced to \fBTrue\fP with the proper \fB\-model\fP option. .LP \fINote 2\fP: The default terminal type string is constructed from the model number, color emulation, and extended data stream modes. E.g., a model 2 with color emulation and the extended data stream option would be sent as \fBIBM-3279-2-E\fP. Note also that when \s-1TN3270E\s+1 mode is used, the terminal type is always sent as 3278, but this does not affect color capabilities. .LP \fINote 3\fP: The default trace file is \fBx3trc.\fP\fIpid\fP in the directory specified by the \fBtraceDir\fP resource. .REdnl .LP If more than one \fB\-xrm\fP option is given for the same resource, the last one on the command line is used. .SH "FILES" /usr/local/lib/x3270/ibm_hosts .br .SH "SEE ALSO" x3270(1), c3270(1), tcl3270(1), ibm_hosts(5), x3270-script(1), telnet(1), tn3270(1) .br Data Stream Programmer's Reference, IBM GA23-0059 .br Character Set Reference, IBM GA27-3831 .br RFC 1576, TN3270 Current Practices .br RFC 1646, TN3270 Extensions for LUname and Printer Selection .br RFC 2355, TN3270 Enhancements .SH "COPYRIGHTS" Copyright 1993-2009, Paul Mattes. .br Copyright 2004-2005, Don Russell. .br Copyright 2004, Dick Altenbern. .br Copyright 1990, Jeff Sparkes. .br Copyright 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332. .br All rights reserved. .LP Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: .TP * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. .TP * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. .TP * Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. .LP THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .SH "VERSION" s3270 3.3.10ga4 ibm-3270-3.3.10ga4/s3270/tn3270e.h0000644000175000017500000000704311254565704015224 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tn3270e.h * * Header file for the TN3270E Protocol, RFC 2355. */ /* Negotiation operations. */ #define TN3270E_OP_ASSOCIATE 0 #define TN3270E_OP_CONNECT 1 #define TN3270E_OP_DEVICE_TYPE 2 #define TN3270E_OP_FUNCTIONS 3 #define TN3270E_OP_IS 4 #define TN3270E_OP_REASON 5 #define TN3270E_OP_REJECT 6 #define TN3270E_OP_REQUEST 7 #define TN3270E_OP_SEND 8 /* Negotiation reason-codes. */ #define TN3270E_REASON_CONN_PARTNER 0 #define TN3270E_REASON_DEVICE_IN_USE 1 #define TN3270E_REASON_INV_ASSOCIATE 2 #define TN3270E_REASON_INV_DEVICE_NAME 3 #define TN3270E_REASON_INV_DEVICE_TYPE 4 #define TN3270E_REASON_TYPE_NAME_ERROR 5 #define TN3270E_REASON_UNKNOWN_ERROR 6 #define TN3270E_REASON_UNSUPPORTED_REQ 7 /* Negotiation function Names. */ #define TN3270E_FUNC_BIND_IMAGE 0 #define TN3270E_FUNC_DATA_STREAM_CTL 1 #define TN3270E_FUNC_RESPONSES 2 #define TN3270E_FUNC_SCS_CTL_CODES 3 #define TN3270E_FUNC_SYSREQ 4 /* Header data type names. */ #define TN3270E_DT_3270_DATA 0x00 #define TN3270E_DT_SCS_DATA 0x01 #define TN3270E_DT_RESPONSE 0x02 #define TN3270E_DT_BIND_IMAGE 0x03 #define TN3270E_DT_UNBIND 0x04 #define TN3270E_DT_NVT_DATA 0x05 #define TN3270E_DT_REQUEST 0x06 #define TN3270E_DT_SSCP_LU_DATA 0x07 #define TN3270E_DT_PRINT_EOJ 0x08 /* Header request flags. */ #define TN3270E_RQF_ERR_COND_CLEARED 0x00 /* Header response flags. */ #define TN3270E_RSF_NO_RESPONSE 0x00 #define TN3270E_RSF_ERROR_RESPONSE 0x01 #define TN3270E_RSF_ALWAYS_RESPONSE 0x02 #define TN3270E_RSF_POSITIVE_RESPONSE 0x00 #define TN3270E_RSF_NEGATIVE_RESPONSE 0x01 /* Header response data. */ #define TN3270E_POS_DEVICE_END 0x00 #define TN3270E_NEG_COMMAND_REJECT 0x00 #define TN3270E_NEG_INTERVENTION_REQUIRED 0x01 #define TN3270E_NEG_OPERATION_CHECK 0x02 #define TN3270E_NEG_COMPONENT_DISCONNECTED 0x03 /* TN3270E data header. */ typedef struct { unsigned char data_type; unsigned char request_flag; unsigned char response_flag; unsigned char seq_number[2]; /* actually, 16 bits, unaligned (!) */ } tn3270e_header; #define EH_SIZE 5 ibm-3270-3.3.10ga4/s3270/readres.c0000644000175000017500000001320211254565704015534 0ustar bastianbastian/* * Copyright (c) 2009, Paul Mattes. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * readres.c * A displayless 3270 Terminal Emulator * Resource file reader. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "readresc.h" #include "screenc.h" #include "selectc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include #include "winversc.h" #endif /*]*/ #if !defined(ME) /*[*/ # if defined(C3270) /*[*/ # if defined(WC3270) /*[*/ # define ME "wc3270" # else /*][*/ # define ME "c3270" # endif /*]*/ # elif defined(S3270) /*[*/ # if defined(WS3270) /*[*/ # define ME "ws3270" # else /*][*/ # define ME "s3270" # endif /*]*/ # elif defined(TCL3270) /*][*/ # define ME "tcl3270" # endif /*]*/ #endif /*]*/ /* * Make sure a resource definition begins with the application name, then * split it into the name and the value. */ int validate_and_split_resource(const char *where, const char *arg, const char **left, unsigned *rnlenp, const char **right) { unsigned match_len; unsigned rnlen; const char *s = arg; static char me_dot[] = ME "."; static char me_star[] = ME "*"; /* Enforce "-3270." or "-3270*" or "*". */ if (!strncmp(s, me_dot, sizeof(me_dot)-1)) match_len = sizeof(me_dot)-1; else if (!strncmp(arg, me_star, sizeof(me_star)-1)) match_len = sizeof(me_star)-1; else if (arg[0] == '*') match_len = 1; else { xs_warning("%s: Invalid resource syntax '%.*s', name must " "begin with '%s'", where, (int)(sizeof(me_dot)-1), arg, me_dot); return -1; } /* Separate the parts. */ s = arg + match_len; while (*s && *s != ':' && !isspace(*s)) s++; rnlen = s - (arg + match_len); if (!rnlen) { xs_warning("%s: Invalid resource syntax, missing resource " "name", where); return -1; } while (isspace(*s)) s++; if (*s != ':') { xs_warning("%s: Invalid resource syntax, missing ':'", where); return -1; } s++; while (isspace(*s)) s++; /* Return what we got. */ *left = arg + match_len; *rnlenp = rnlen; *right = s; return 0; } /* Read resources from a file. */ int read_resource_filex(const char *filename, Boolean fatal, rrf_t *rrf) { FILE *f; int ilen; char buf[4096]; char *where; int lno = 0; f = fopen(filename, "r"); if (f == NULL) { if (fatal) xs_warning("Cannot open '%s': %s", filename, strerror(errno)); return -1; } /* Merge in what's in the file into the resource database. */ where = Malloc(strlen(filename) + 64); ilen = 0; while (fgets(buf + ilen, sizeof(buf) - ilen, f) != CN || ilen) { char *s; unsigned sl; Boolean bsl = False; lno++; /* Stip any trailing newline. */ sl = strlen(buf + ilen); if (sl && (buf + ilen)[sl-1] == '\n') (buf + ilen)[--sl] = '\0'; /* Check for a trailing backslash. */ s = buf + ilen; if ((sl > 0) && (s[sl - 1] == '\\')) { s[sl - 1] = '\0'; bsl = True; } /* Skip leading whitespace. */ s = buf; while (isspace(*s)) s++; /* If this line is a continuation, try again. */ if (bsl) { ilen += strlen(buf + ilen); if ((unsigned)ilen >= sizeof(buf) - 1) { (void) sprintf(where, "%s:%d: Line too long\n", filename, lno); Warning(where); break; } continue; } /* Skip comments. */ if (*s == '!') { ilen = 0; continue; } if (*s == '#') { (void) sprintf(where, "%s:%d: Invalid profile " "syntax ('#' ignored)", filename, lno); Warning(where); ilen = 0; continue; } /* Strip trailing whitespace and check for empty lines. */ sl = strlen(s); while (sl && isspace(s[sl-1])) s[--sl] = '\0'; if (!sl) { ilen = 0; continue; } /* Digest it. */ (void) sprintf(where, "%s:%d", filename, lno); parse_xrm(s, where); /* Get ready for the next iteration. */ ilen = 0; } Free(where); fclose(f); return 0; } ibm-3270-3.3.10ga4/s3270/w3miscc.h0000644000175000017500000000372511254565704015475 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * w3misc.c * Miscellaneous Win32 functions. */ #if defined(_WIN32) /*[*/ #if defined(_WS2TCPIP_H) /*[*/ extern const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt); #endif /*]*/ extern int sockstart(void); extern const char *win32_strerror(int e); #if defined(_MSC_VER) /*[*/ extern int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg; extern int optind, opterr, optopt; #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/s3270/arpa_telnet.h0000644000175000017500000001140211254565704016412 0ustar bastianbastian/* @(#)telnet.h 1.7 88/08/19 SMI; from UCB 5.1 5/30/85 */ /* * Copyright (c) 1983 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */ /* * Definitions for the TELNET protocol. */ #ifndef _arpa_telnet_h #define _arpa_telnet_h #define IAC 255 /* interpret as command: */ #define DONT 254 /* you are not to use option */ #define DO 253 /* please, you use option */ #define WONT 252 /* I won't use option */ #define WILL 251 /* I will use option */ #define SB 250 /* interpret as subnegotiation */ #define GA 249 /* you may reverse the line */ #define EL 248 /* erase the current line */ #define EC 247 /* erase the current character */ #define AYT 246 /* are you there */ #define AO 245 /* abort output--but let prog finish */ #define IP 244 /* interrupt process--permanently */ #define BREAK 243 /* break */ #define DM 242 /* data mark--for connect. cleaning */ #define NOP 241 /* nop */ #define SE 240 /* end sub negotiation */ #define EOR 239 /* end of record (transparent mode) */ #define SUSP 237 /* suspend process */ #define xEOF 236 /* end of file */ #define SYNCH 242 /* for telfunc calls */ #ifdef TELCMDS const char *telcmds[] = { "EOF", "SUSP", "ABORT", "EOR", "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0 }; #endif #define TELCMD_FIRST xEOF #define TELCMD_LAST IAC #define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \ (unsigned int)(x) >= TELCMD_FIRST) #define TELCMD(x) telcmds[(x)-TELCMD_FIRST] /* telnet options */ #define TELOPT_BINARY 0 /* 8-bit data path */ #define TELOPT_ECHO 1 /* echo */ #define TELOPT_RCP 2 /* prepare to reconnect */ #define TELOPT_SGA 3 /* suppress go ahead */ #define TELOPT_NAMS 4 /* approximate message size */ #define TELOPT_STATUS 5 /* give status */ #define TELOPT_TM 6 /* timing mark */ #define TELOPT_RCTE 7 /* remote controlled transmission and echo */ #define TELOPT_NAOL 8 /* negotiate about output line width */ #define TELOPT_NAOP 9 /* negotiate about output page size */ #define TELOPT_NAOCRD 10 /* negotiate about CR disposition */ #define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */ #define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */ #define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */ #define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */ #define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */ #define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */ #define TELOPT_XASCII 17 /* extended ascic character set */ #define TELOPT_LOGOUT 18 /* force logout */ #define TELOPT_BM 19 /* byte macro */ #define TELOPT_DET 20 /* data entry terminal */ #define TELOPT_SUPDUP 21 /* supdup protocol */ #define TELOPT_SUPDUPOUTPUT 22 /* supdup output */ #define TELOPT_SNDLOC 23 /* send location */ #define TELOPT_TTYPE 24 /* terminal type */ #define TELOPT_EOR 25 /* end or record */ #define TELOPT_TUID 26 /* TACACS user identification */ #define TELOPT_OUTMRK 27 /* output marking */ #define TELOPT_TTYLOC 28 /* terminal location number */ #define TELOPT_3270REGIME 29 /* 3270 regime */ #define TELOPT_X3PAD 30 /* X.3 PAD */ #define TELOPT_NAWS 31 /* window size */ #define TELOPT_TSPEED 32 /* terminal speed */ #define TELOPT_LFLOW 33 /* remote flow control */ #define TELOPT_LINEMODE 34 /* linemode option */ #define TELOPT_XDISPLOC 35 /* X Display Location */ #define TELOPT_OLD_ENVIRON 36 /* old - Environment variables */ #define TELOPT_AUTHENTICATION 37/* authenticate */ #define TELOPT_ENCRYPT 38 /* encryption option */ #define TELOPT_NEW_ENVIRON 39 /* new - environment variables */ #define TELOPT_TN3270E 40 /* extended 3270 regime */ #define TELOPT_EXOPL 255 /* extended-options-list */ #define NTELOPTS (1+TELOPT_TN3270E) #ifdef TELOPTS const char *telopts[NTELOPTS+1] = { "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME", "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP", "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS", "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO", "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT", "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD", "TACACS UID", "OUTPUT MARKING", "TTYLOC", "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW", "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION", "ENCRYPT", "NEW-ENVIRON", "TN3270E", 0 }; #define TELOPT_FIRST TELOPT_BINARY #define TELOPT_LAST TELOPT_TN3270E #define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST) #define TELOPT(x) telopts[(x)-TELOPT_FIRST] #endif /* sub-option qualifiers */ #define TELQUAL_IS 0 /* option is... */ #define TELQUAL_SEND 1 /* send option */ #endif /*!_arpa_telnet_h*/ ibm-3270-3.3.10ga4/s3270/util.c0000644000175000017500000005021611256027015015060 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * util.c * Utility functions for x3270/c3270/s3270/tcl3270 */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include "resources.h" #include "charsetc.h" #include "utilc.h" #define my_isspace(c) isspace((unsigned char)c) /* * Cheesy internal version of sprintf that allocates its own memory. */ static char * xs_vsprintf(const char *fmt, va_list args) { char *r = CN; #if defined(HAVE_VASPRINTF) /*[*/ int nw; nw = vasprintf(&r, fmt, args); if (nw < 0 || r == CN) Error("Out of memory"); return r; #else /*][*/ char buf[16384]; int nc; nc = vsprintf(buf, fmt, args); if (nc > sizeof(buf)) Error("Internal buffer overflow"); r = Malloc(nc + 1); return strcpy(r, buf); #endif /*]*/ } /* * Common helper functions to insert strings, through a template, into a new * buffer. * 'format' is assumed to be a printf format string with '%s's in it. */ char * xs_buffer(const char *fmt, ...) { va_list args; char *r; va_start(args, fmt); r = xs_vsprintf(fmt, args); va_end(args); return r; } /* Common uses of xs_buffer. */ void xs_warning(const char *fmt, ...) { va_list args; char *r; va_start(args, fmt); r = xs_vsprintf(fmt, args); va_end(args); Warning(r); Free(r); } void xs_error(const char *fmt, ...) { va_list args; char *r; va_start(args, fmt); r = xs_vsprintf(fmt, args); va_end(args); Error(r); Free(r); } /* Prettyprinter for strings with unprintable data. */ void fcatv(FILE *f, char *s) { char c; while ((c = *s++)) { switch (c) { case '\n': (void) fprintf(f, "\\n"); break; case '\t': (void) fprintf(f, "\\t"); break; case '\b': (void) fprintf(f, "\\b"); break; default: if ((c & 0x7f) < ' ') (void) fprintf(f, "\\%03o", c & 0xff); else fputc(c, f); break; } } } /* String version of fcatv. */ char * scatv(const char *s, char *buf, size_t len) { char c; char *dst = buf; while ((c = *s++) && len > 0) { char cbuf[5]; char *t = cbuf; /* Expand this character. */ switch (c) { case '\n': (void) strcpy(cbuf, "\\n"); break; case '\t': (void) strcpy(cbuf, "\\t"); break; case '\b': (void) strcpy(cbuf, "\\b"); break; default: if ((c & 0x7f) < ' ') (void) sprintf(cbuf, "\\%03o", c & 0xff); else { cbuf[0] = c; cbuf[1] = '\0'; } break; } /* Copy as much as will fit. */ while ((c = *t++) && len > 0) { *dst++ = c; len--; } } if (len > 0) *dst = '\0'; return buf; } /* * Definition resource splitter, for resources of the repeating form: * left: right\n * * Can be called iteratively to parse a list. * Returns 1 for success, 0 for EOF, -1 for error. * * Note: Modifies the input string. */ int split_dresource(char **st, char **left, char **right) { char *s = *st; char *t; Boolean quote; /* Skip leading white space. */ while (my_isspace(*s)) s++; /* If nothing left, EOF. */ if (!*s) return 0; /* There must be a left-hand side. */ if (*s == ':') return -1; /* Scan until an unquoted colon is found. */ *left = s; for (; *s && *s != ':' && *s != '\n'; s++) if (*s == '\\' && *(s+1) == ':') s++; if (*s != ':') return -1; /* Stip white space before the colon. */ for (t = s-1; my_isspace(*t); t--) *t = '\0'; /* Terminate the left-hand side. */ *(s++) = '\0'; /* Skip white space after the colon. */ while (*s != '\n' && my_isspace(*s)) s++; /* There must be a right-hand side. */ if (!*s || *s == '\n') return -1; /* Scan until an unquoted newline is found. */ *right = s; quote = False; for (; *s; s++) { if (*s == '\\' && *(s+1) == '"') s++; else if (*s == '"') quote = !quote; else if (!quote && *s == '\n') break; } /* Strip white space before the newline. */ if (*s) { t = s; *st = s+1; } else { t = s-1; *st = s; } while (my_isspace(*t)) *t-- = '\0'; /* Done. */ return 1; } /* * Split a DBCS resource into its parts. * Returns the number of parts found: * -1 error (empty sub-field) * 0 nothing found * 1 one and just one thing found * 2 two things found * 3 more than two things found */ int split_dbcs_resource(const char *value, char sep, char **part1, char **part2) { int n_parts = 0; const char *s = value; const char *f_start = CN; /* start of sub-field */ const char *f_end = CN; /* end of sub-field */ char c; char **rp; *part1 = CN; *part2 = CN; for( ; ; ) { c = *s; if (c == sep || c == '\0') { if (f_start == CN) return -1; if (f_end == CN) f_end = s; if (f_end == f_start) { if (c == sep) { if (*part1) { Free(*part1); *part1 = NULL; } if (*part2) { Free(*part2); *part2 = NULL; } return -1; } else return n_parts; } switch (n_parts) { case 0: rp = part1; break; case 1: rp = part2; break; default: return 3; } *rp = Malloc(f_end - f_start + 1); strncpy(*rp, f_start, f_end - f_start); (*rp)[f_end - f_start] = '\0'; f_end = CN; f_start = CN; n_parts++; if (c == '\0') return n_parts; } else if (isspace(c)) { if (f_end == CN) f_end = s; } else { if (f_start == CN) f_start = s; f_end = CN; } s++; } } #if defined(X3270_DISPLAY) /*[*/ /* * List resource splitter, for lists of elements speparated by newlines. * * Can be called iteratively. * Returns 1 for success, 0 for EOF, -1 for error. */ int split_lresource(char **st, char **value) { char *s = *st; char *t; Boolean quote; /* Skip leading white space. */ while (my_isspace(*s)) s++; /* If nothing left, EOF. */ if (!*s) return 0; /* Save starting point. */ *value = s; /* Scan until an unquoted newline is found. */ quote = False; for (; *s; s++) { if (*s == '\\' && *(s+1) == '"') s++; else if (*s == '"') quote = !quote; else if (!quote && *s == '\n') break; } /* Strip white space before the newline. */ if (*s) { t = s; *st = s+1; } else { t = s-1; *st = s; } while (my_isspace(*t)) *t-- = '\0'; /* Done. */ return 1; } #endif /*]*/ const char * get_message(const char *key) { static char namebuf[128]; char *r; (void) sprintf(namebuf, "%s.%s", ResMessage, key); if ((r = get_resource(namebuf)) != CN) return r; else { (void) sprintf(namebuf, "[missing \"%s\" message]", key); return namebuf; } } #define ex_getenv getenv /* Variable and tilde substitution functions. */ static char * var_subst(const char *s) { enum { VS_BASE, VS_QUOTE, VS_DOLLAR, VS_BRACE, VS_VN, VS_VNB, VS_EOF } state = VS_BASE; char c; int o_len = strlen(s) + 1; char *ob; char *o; const char *vn_start = CN; if (strchr(s, '$') == CN) return NewString(s); o_len = strlen(s) + 1; ob = Malloc(o_len); o = ob; # define LBR '{' # define RBR '}' while (state != VS_EOF) { c = *s; switch (state) { case VS_BASE: if (c == '\\') state = VS_QUOTE; else if (c == '$') state = VS_DOLLAR; else *o++ = c; break; case VS_QUOTE: if (c == '$') { *o++ = c; o_len--; } else { *o++ = '\\'; *o++ = c; } state = VS_BASE; break; case VS_DOLLAR: if (c == LBR) state = VS_BRACE; else if (isalpha(c) || c == '_') { vn_start = s; state = VS_VN; } else { *o++ = '$'; *o++ = c; state = VS_BASE; } break; case VS_BRACE: if (isalpha(c) || c == '_') { vn_start = s; state = VS_VNB; } else { *o++ = '$'; *o++ = LBR; *o++ = c; state = VS_BASE; } break; case VS_VN: case VS_VNB: if (!(isalnum(c) || c == '_')) { int vn_len; char *vn; char *vv; vn_len = s - vn_start; if (state == VS_VNB && c != RBR) { *o++ = '$'; *o++ = LBR; (void) strncpy(o, vn_start, vn_len); o += vn_len; state = VS_BASE; continue; /* rescan */ } vn = Malloc(vn_len + 1); (void) strncpy(vn, vn_start, vn_len); vn[vn_len] = '\0'; if ((vv = ex_getenv(vn))) { *o = '\0'; o_len = o_len - 1 /* '$' */ - (state == VS_VNB) /* { */ - vn_len /* name */ - (state == VS_VNB) /* } */ + strlen(vv); ob = Realloc(ob, o_len); o = strchr(ob, '\0'); (void) strcpy(o, vv); o += strlen(vv); } Free(vn); if (state == VS_VNB) { state = VS_BASE; break; } else { /* Rescan this character */ state = VS_BASE; continue; } } break; case VS_EOF: break; } s++; if (c == '\0') state = VS_EOF; } return ob; } #if !defined(_WIN32) /*[*/ /* * Do tilde (home directory) substitution on a string. Returns a malloc'd * result. */ static char * tilde_subst(const char *s) { char *slash; const char *name; const char *rest; struct passwd *p; char *r; char *mname = CN; /* Does it start with a "~"? */ if (*s != '~') return NewString(s); /* Terminate with "/". */ slash = strchr(s, '/'); if (slash) { int len = slash - s; mname = Malloc(len + 1); (void) strncpy(mname, s, len); mname[len] = '\0'; name = mname; rest = slash; } else { name = s; rest = strchr(name, '\0'); } /* Look it up. */ if (!strcmp(name, "~")) /* this user */ p = getpwuid(getuid()); else /* somebody else */ p = getpwnam(name + 1); /* Free any temporary copy. */ Free(mname); /* Substitute and return. */ if (p == (struct passwd *)NULL) r = NewString(s); else { r = Malloc(strlen(p->pw_dir) + strlen(rest) + 1); (void) strcpy(r, p->pw_dir); (void) strcat(r, rest); } return r; } #endif /*]*/ char * do_subst(const char *s, Boolean do_vars, Boolean do_tilde) { if (!do_vars && !do_tilde) return NewString(s); if (do_vars) { char *t; t = var_subst(s); #if !defined(_WIN32) /*[*/ if (do_tilde) { char *u; u = tilde_subst(t); Free(t); return u; } #endif /*]*/ return t; } #if !defined(_WIN32) /*[*/ return tilde_subst(s); #else /*][*/ return NewString(s); #endif /*]*/ } /* * ctl_see * Expands a character in the manner of "cat -v". */ char * ctl_see(int c) { static char buf[64]; char *p = buf; c &= 0xff; if ((c & 0x80) && (c <= 0xa0)) { *p++ = 'M'; *p++ = '-'; c &= 0x7f; } if (c >= ' ' && c != 0x7f) { *p++ = c; } else { *p++ = '^'; if (c == 0x7f) { *p++ = '?'; } else { *p++ = c + '@'; } } *p = '\0'; return buf; } /* A version of get_resource that accepts sprintf arguments. */ char * get_fresource(const char *fmt, ...) { va_list args; char *name; char *r; va_start(args, fmt); name = xs_vsprintf(fmt, args); va_end(args); r = get_resource(name); Free(name); return r; } /* * Whitespace stripper. */ char * strip_whitespace(const char *s) { char *t = NewString(s); while (*t && my_isspace(*t)) t++; if (*t) { char *u = t + strlen(t) - 1; while (my_isspace(*u)) { *u-- = '\0'; } } return t; } /* * Hierarchy (a>b>c) splitter. */ Boolean split_hier(char *label, char **base, char ***parents) { int n_parents = 0; char *gt; char *lp; label = NewString(label); for (lp = label; (gt = strchr(lp, '>')) != CN; lp = gt + 1) { if (gt == lp) return False; n_parents++; } if (!*lp) return False; if (n_parents) { *parents = (char **)Calloc(n_parents + 1, sizeof(char *)); for (n_parents = 0, lp = label; (gt = strchr(lp, '>')) != CN; lp = gt + 1) { (*parents)[n_parents++] = lp; *gt = '\0'; } *base = lp; } else { (*parents) = NULL; (*base) = label; } return True; } /* * Incremental, reallocing version of snprintf. */ #define RPF_BLKSIZE 4096 #define SP_TMP_LEN 16384 /* Initialize an RPF structure. */ void rpf_init(rpf_t *r) { r->buf = NULL; r->alloc_len = 0; r->cur_len = 0; } /* Reset an initialized RPF structure (re-use with length 0). */ void rpf_reset(rpf_t *r) { r->cur_len = 0; } /* Append a string to a dynamically-allocated buffer. */ void rpf(rpf_t *r, char *fmt, ...) { va_list a; Boolean need_realloc = False; int ns; char tbuf[SP_TMP_LEN]; /* Figure out how much space would be needed. */ va_start(a, fmt); ns = vsprintf(tbuf, fmt, a); /* XXX: dangerous, but so is vsnprintf */ va_end(a); if (ns >= SP_TMP_LEN) Error("rpf overrun"); /* Make sure we have that. */ while (r->alloc_len - r->cur_len < ns + 1) { r->alloc_len += RPF_BLKSIZE; need_realloc = True; } if (need_realloc) { r->buf = Realloc(r->buf, r->alloc_len); } /* Scribble onto the end of that. */ (void) strcpy(r->buf + r->cur_len, tbuf); r->cur_len += ns; } /* Free resources associated with an RPF. */ void rpf_free(rpf_t *r) { Free(r->buf); r->buf = NULL; r->alloc_len = 0; r->cur_len = 0; } #if defined(X3270_DISPLAY) /*[*/ /* Glue between x3270 and the X libraries. */ /* * A way to work around problems with Xt resources. It seems to be impossible * to get arbitrarily named resources. Someday this should be hacked to * add classes too. */ char * get_resource(const char *name) { XrmValue value; char *type; char *str; char *r = CN; str = xs_buffer("%s.%s", XtName(toplevel), name); if ((XrmGetResource(rdb, str, 0, &type, &value) == True) && *value.addr) r = value.addr; XtFree(str); return r; } /* * Input callbacks. */ typedef void voidfn(void); typedef struct iorec { voidfn *fn; XtInputId id; struct iorec *next; } iorec_t; static iorec_t *iorecs = NULL; static void io_fn(XtPointer closure, int *source _is_unused, XtInputId *id) { iorec_t *iorec; for (iorec = iorecs; iorec != NULL; iorec = iorec->next) { if (iorec->id == *id) { (*iorec->fn)(); break; } } } unsigned long AddInput(int sock, voidfn *fn) { iorec_t *iorec; iorec = (iorec_t *)XtMalloc(sizeof(iorec_t)); iorec->fn = fn; iorec->id = XtAppAddInput(appcontext, sock, (XtPointer) XtInputReadMask, io_fn, NULL); iorec->next = iorecs; iorecs = iorec; return iorec->id; } unsigned long AddExcept(int sock, voidfn *fn) { iorec_t *iorec; iorec = (iorec_t *)XtMalloc(sizeof(iorec_t)); iorec->fn = fn; iorec->id = XtAppAddInput(appcontext, sock, (XtPointer) XtInputExceptMask, io_fn, NULL); iorec->next = iorecs; iorecs = iorec; return iorec->id; } unsigned long AddOutput(int sock, voidfn *fn) { iorec_t *iorec; iorec = (iorec_t *)XtMalloc(sizeof(iorec_t)); iorec->fn = fn; iorec->id = XtAppAddInput(appcontext, sock, (XtPointer) XtInputWriteMask, io_fn, NULL); iorec->next = iorecs; iorecs = iorec; return iorec->id; } void RemoveInput(unsigned long cookie) { iorec_t *iorec; iorec_t *prev = NULL; for (iorec = iorecs; iorec != NULL; iorec = iorec->next) { if (iorec->id == (XtInputId)cookie) { break; } prev = iorec; } if (iorec != NULL) { XtRemoveInput((XtInputId)cookie); if (prev != NULL) prev->next = iorec->next; else iorecs = iorec->next; XtFree((XtPointer)iorec); } } /* * Timer callbacks. */ typedef struct torec { voidfn *fn; XtIntervalId id; struct torec *next; } torec_t; static torec_t *torecs = NULL; static void to_fn(XtPointer closure, XtIntervalId *id) { torec_t *torec; torec_t *prev = NULL; voidfn *fn = NULL; for (torec = torecs; torec != NULL; torec = torec->next) { if (torec->id == *id) { break; } prev = torec; } if (torec != NULL) { /* Remember the record. */ fn = torec->fn; /* Free the record. */ if (prev != NULL) prev->next = torec->next; else torecs = torec->next; XtFree((XtPointer)torec); /* Call the function. */ (*fn)(); } } unsigned long AddTimeOut(unsigned long msec, voidfn *fn) { torec_t *torec; torec = (torec_t *)XtMalloc(sizeof(torec_t)); torec->fn = fn; torec->id = XtAppAddTimeOut(appcontext, msec, to_fn, NULL); torec->next = torecs; torecs = torec; return (unsigned long)torec->id; } void RemoveTimeOut(unsigned long cookie) { torec_t *torec; torec_t *prev = NULL; for (torec = torecs; torec != NULL; torec = torec->next) { if (torec->id == (XtIntervalId)cookie) { break; } prev = torec; } if (torec != NULL) { XtRemoveTimeOut((XtIntervalId)cookie); if (prev != NULL) prev->next = torec->next; else torecs = torec->next; XtFree((XtPointer)torec); } else { Error("RemoveTimeOut: Can't find"); } } KeySym StringToKeysym(char *s) { return XStringToKeysym(s); } #endif /*]*/ /* Return configuration options. */ const char * build_options(void) { return "Build options:" #if defined(X3270_ANSI) /*[*/ " --enable-ansi" #else /*][*/ " --disable-ansi" #endif /*]*/ #if defined(X3270_APL) /*[*/ " --enable-apl" #else /*][*/ " --disable-apl" #endif /*]*/ #if defined(X3270_DBCS) /*[*/ " --enable-dbcs" #else /*][*/ " --disable-dbcs" #endif /*]*/ #if defined(X3270_FT) /*[*/ " --enable-ft" #else /*][*/ " --disable-ft" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ # if defined(X3270_KEYPAD) /*[*/ " --enable-keypad" # else /*][*/ " --disable-keypad" # endif /*]*/ #endif /*]*/ #if defined(X3270_LOCAL_PROCESS) /*[*/ " --enable-local-process" #else /*][*/ " --disable-local-process" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ # if defined(X3270_MENUS) /*[*/ " --enable-menus" # else /*][*/ " --disable-menus" # endif /*]*/ #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_PRINTER) /*[*/ " --enable-printer" # else /*][*/ " --disable-printer" # endif /*]*/ #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_SCRIPT) /*[*/ " --enable-script" # else /*][*/ " --disable-script" # endif /*]*/ #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ " --enable-tn3270e" #else /*][*/ " --disable-tn3270e" #endif /*]*/ #if defined(X3270_TRACE) /*[*/ " --enable-trace" #else /*][*/ " --disable-trace" #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ " --with-ssl" #else /*][*/ " --without-ssl" #endif /*]*/ #if defined(C3270) /*[*/ # if defined(HAVE_LIBREADLINE) /*[*/ " --with-readline" # else /*][*/ " --without-readline" # endif /*]*/ # if !defined(_WIN32) /*[*/ # if defined(CURSES_WIDE) /*[*/ " --with-curses-wide" # else /*][*/ " --without-curses-wide" # endif /*]*/ # endif /*]*/ #endif /*]*/ #if defined(USE_ICONV) /*[*/ " --with-iconv" #endif /*]*/ ; } void dump_version(void) { printf("%s\n%s\n", build, build_options()); charset_list(); printf("\n" "Copyright 1989-2009, Paul Mattes, GTRC and others.\n" "See the source code or documentation for licensing details.\n" "Distributed WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); exit(0); } /* Scale a number for display. */ const char * display_scale(double d, char *buf, size_t buflen) { if (d >= 1000000.0) snprintf(buf, buflen, "%.3g M", d / 1000000.0); else if (d >= 1000.0) snprintf(buf, buflen, "%.3g K", d / 1000.0); else snprintf(buf, buflen, "%.3g ", d); /* Don't trust snprintf. */ buf[buflen - 1] = '\0'; return buf; } ibm-3270-3.3.10ga4/s3270/ft_cutc.h0000644000175000017500000000304511254565704015547 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ extern void ft_cut_data(void); ibm-3270-3.3.10ga4/s3270/apl.c0000644000175000017500000001647611254565704014703 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * apl.c * This module handles APL-specific actions. */ #include "globals.h" #if defined(X3270_APL) /*[*/ #include #include "aplc.h" /* * APL keysym translation. * * This code looks a little odd because of how an APL font is implemented. * An APL font has APL graphics in place of the various accented letters and * special symbols in a regular font. APL keysym translation consists of * taking the keysym name for an APL symbol (these names are meaningful only to * x3270) and translating it into the keysym for the regular symbol that the * desired APL symbol _replaces_. * * For example, an APL font has the APL "jot" symbol where a regular font has * the "registered" symbol. So we take the keysym name "jot" and translate it * into the keysym XK_registered. When the XK_registered symbol is displayed * with an APL font, it appears as a "jot". * * The specification of which APL symbols replace which regular symbols is in * IBM GA27-3831, 3174 Establishment Controller Character Set Reference. * * In addition, several standard characters have different names for APL, * for example, "period" becomes "dot". These are included in the table as * well. */ static struct { const char *name; KeySym keysym; int is_ge; } axl[] = { { "Aunderbar", XK_nobreakspace, 1 }, { "Bunderbar", XK_acircumflex, 1 }, { "Cunderbar", XK_adiaeresis, 1 }, { "Dunderbar", XK_agrave, 1 }, { "Eunderbar", XK_aacute, 1 }, { "Funderbar", XK_atilde, 1 }, { "Gunderbar", XK_aring, 1 }, { "Hunderbar", XK_ccedilla, 1 }, { "Iunderbar", XK_ntilde, 1 }, { "Junderbar", XK_eacute, 1 }, { "Kunderbar", XK_ecircumflex, 1 }, { "Lunderbar", XK_ediaeresis, 1 }, { "Munderbar", XK_egrave, 1 }, { "Nunderbar", XK_iacute, 1 }, { "Ounderbar", XK_icircumflex, 1 }, { "Punderbar", XK_idiaeresis, 1 }, { "Qunderbar", XK_igrave, 1 }, { "Runderbar", XK_ssharp, 1 }, { "Sunderbar", XK_Acircumflex, 1 }, { "Tunderbar", XK_Adiaeresis, 1 }, { "Uunderbar", XK_Agrave, 1 }, { "Vunderbar", XK_Aacute, 1 }, { "Wunderbar", XK_Atilde, 1 }, { "Xunderbar", XK_Aring, 1 }, { "Yunderbar", XK_Ccedilla, 1 }, { "Zunderbar", XK_Ntilde, 1 }, { "alpha", XK_asciicircum, 1 }, { "bar", XK_minus, 0 }, { "braceleft", XK_braceleft, 1 }, { "braceright", XK_braceright, 1 }, { "bracketleft", XK_Yacute, 1 }, { "bracketright", XK_diaeresis, 1 }, { "circle", XK_cedilla, 1 }, { "circlebar", XK_Ograve, 1 }, { "circleslope", XK_otilde, 1 }, { "circlestar", XK_Ugrave, 1 }, { "circlestile", XK_ograve, 1 }, { "colon", XK_colon, 0 }, { "comma", XK_comma, 0 }, { "commabar", XK_W, 1 }, /* soliton */ { "del", XK_bracketleft, 1 }, { "delstile", XK_udiaeresis, 1 }, { "delta", XK_bracketright, 1 }, { "deltastile", XK_ugrave, 1 }, { "deltaunderbar", XK_Udiaeresis, 1 }, { "deltilde", XK_Ucircumflex, 1 }, { "diaeresis", XK_Ecircumflex, 1 }, { "diaeresiscircle", XK_V, 1 }, /* soliton */ { "diaeresisdot", XK_Odiaeresis, 1 }, { "diaeresisjot", XK_U, 1 }, /* soliton */ { "diamond", XK_oslash, 1 }, { "dieresis", XK_Ecircumflex, 1 }, { "dieresisdot", XK_Odiaeresis, 1 }, { "divide", XK_onehalf, 1 }, { "dot", XK_period, 0 }, { "downarrow", XK_guillemotright, 1 }, { "downcaret", XK_Igrave, 1 }, { "downcarettilde", XK_ocircumflex, 1 }, { "downshoe", XK_questiondown, 1 }, { "downstile", XK_thorn, 1 }, { "downtack", XK_ETH, 1 }, { "downtackjot", XK_Uacute, 1 }, { "downtackup", XK_onesuperior, 1 }, { "downtackuptack", XK_onesuperior, 1 }, { "epsilon", XK_sterling, 1 }, { "epsilonunderbar", XK_Iacute, 1 }, { "equal", XK_equal, 0 }, { "equalunderbar", XK_backslash, 1 }, { "euro", XK_X, 1 }, /* soliton */ { "greater", XK_greater, 0 }, { "iota", XK_yen, 1 }, { "iotaunderbar", XK_Egrave, 1 }, { "jot", XK_registered, 1 }, { "leftarrow", XK_currency, 1 }, { "leftbracket", XK_Yacute, 1 }, { "leftparen", XK_parenleft, 0 }, { "leftshoe", XK_masculine, 1 }, { "lefttack", XK_Icircumflex, 1 }, { "less", XK_less, 0 }, { "multiply", XK_paragraph, 1 }, { "notequal", XK_acute, 1 }, { "notgreater", XK_eth, 1 }, { "notless", XK_THORN, 1 }, { "omega", XK_copyright, 1 }, { "overbar", XK_mu, 1 }, { "plus", XK_plus, 0 }, { "plusminus", XK_AE, 1 }, { "quad", XK_degree, 1 }, { "quaddivide", XK_Oacute, 1 }, { "quadjot", XK_Ediaeresis, 1 }, { "quadquote", XK_uacute, 1 }, { "quadslope", XK_oacute, 1 }, { "query", XK_question, 0 }, { "quote", XK_apostrophe, 0 }, { "quotedot", XK_ucircumflex, 1 }, { "rho", XK_periodcentered, 1 }, { "rightarrow", XK_plusminus, 1 }, { "rightbracket", XK_diaeresis, 1 }, { "rightparen", XK_parenright, 0 }, { "rightshoe", XK_ordfeminine, 1 }, { "righttack", XK_Idiaeresis, 1 }, { "semicolon", XK_semicolon, 0 }, { "slash", XK_slash, 0 }, { "slashbar", XK_twosuperior, 1 }, { "slope", XK_onequarter, 1 }, { "slopebar", XK_Ocircumflex, 1 }, { "slopequad", XK_oacute, 1 }, { "splat", XK_ae, 1 }, { "squad", XK_odiaeresis, 1 }, { "star", XK_asterisk, 0 }, { "stile", XK_multiply, 1 }, { "tilde", XK_Ooblique, 1 }, { "times", XK_paragraph, 1 }, { "underbar", XK_underscore, 0 }, { "uparrow", XK_guillemotleft, 1 }, { "upcaret", XK_Eacute, 1 }, { "upcarettilde", XK_hyphen, 1 }, { "upshoe", XK_exclamdown, 1 }, { "upshoejot", XK_ydiaeresis, 1 }, { "upstile", XK_yacute, 1 }, { "uptack", XK_macron, 1 }, { "uptackjot", XK_Otilde, 1 }, { 0, 0 } }; /* * Translation from APL ksysym names to indirect APL keysyms. */ KeySym APLStringToKeysym(char *s, int *is_gep) { register int i; if (strncmp(s, "apl_", 4)) return NoSymbol; s += 4; for (i = 0; axl[i].name; i++) if (!strcmp(axl[i].name, s)) { *is_gep = axl[i].is_ge; return axl[i].keysym; } return NoSymbol; } #endif /*]*/ ibm-3270-3.3.10ga4/s3270/statusc.h0000644000175000017500000000371311254565673015615 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display verson of statusc.h */ #define status_compose(on, c, keytype) #define status_typeahead(on) #define status_script(on) #define status_reverse_mode(on) #define status_insert_mode(on) #define status_syswait() #define status_reset() #define status_twait() #define status_oerr(error_type) #define status_timing(t0, t1) #define status_ctlr_done() #define status_untiming() #define status_kybdlock() #define status_minus() #define status_lu(lu) ibm-3270-3.3.10ga4/s3270/childc.h0000644000175000017500000000341211254565704015344 0ustar bastianbastian/* * Copyright (c) 2001-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * childc.h * Global declarations for child.c. */ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ extern int fork_child(void); extern void child_ignore_output(void); #else /*][*/ #define fork_child() fork() #define child_ignore_output() #endif /*]*/ ibm-3270-3.3.10ga4/s3270/charset.c0000644000175000017500000002167211254565704015552 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * charset.c * This module handles character sets. */ #include "globals.h" #include "3270ds.h" #include "resources.h" #include "appres.h" #include "cg.h" #include "charsetc.h" #include "kybdc.h" #include "popupsc.h" #if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) /*[*/ #include "screenc.h" #endif /*]*/ #include "tablesc.h" #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" #include "utilc.h" #include #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(__CYGWIN__) /*[*/ #include #undef _WIN32 #endif /*]*/ /* Globals. */ Boolean charset_changed = False; #define DEFAULT_CGEN 0x02b90000 #define DEFAULT_CSET 0x00000025 unsigned long cgcsgid = DEFAULT_CGEN | DEFAULT_CSET; unsigned long cgcsgid_dbcs = 0L; char *default_display_charset = "3270cg-1a,3270cg-1,iso8859-1"; /* Statics. */ static enum cs_result charset_init2(char *csname, const char *codepage, const char *cgcsgid, const char *display_charsets); static void set_cgcsgids(const char *spec); static int set_cgcsgid(char *spec, unsigned long *idp); static void set_host_codepage(char *codepage); static void set_charset_name(char *csname); static char *host_codepage = CN; static char *charset_name = CN; /* * Change character sets. */ enum cs_result charset_init(char *csname) { enum cs_result rc; #if !defined(_WIN32) /*[*/ char *codeset_name; #endif /*]*/ const char *codepage; const char *cgcsgid; const char *display_charsets; #if defined(X3270_DBCS) /*[*/ const char *dbcs_cgcsgid = NULL; const char *dbcs_display_charsets = NULL; Boolean need_free = False; #endif /*]*/ #if !defined(_WIN32) /*[*/ /* Get all of the locale stuff right. */ setlocale(LC_ALL, ""); /* Figure out the locale code set (character set encoding). */ codeset_name = nl_langinfo(CODESET); #if defined(__CYGWIN__) /*[*/ /* * Cygwin's locale support is quite limited. If the locale * indicates "US-ASCII", which appears to be the only supported * encoding, ignore it and use the Windows ANSI code page, which * observation indicates is what is actually supported. * * Hopefully at some point Cygwin will start returning something * meaningful here and this logic will stop triggering. */ if (!strcmp(codeset_name, "US-ASCII")) codeset_name = xs_buffer("CP%d", GetACP()); #endif /*]*/ set_codeset(codeset_name); #endif /*]*/ /* Do nothing, successfully. */ if (csname == CN || !strcasecmp(csname, "us")) { set_cgcsgids(CN); set_host_codepage(CN); set_charset_name(CN); #if defined(X3270_DISPLAY) /*[*/ (void) screen_new_display_charsets(default_display_charset, "us"); #endif /*]*/ (void) set_uni(CN, &codepage, &cgcsgid, &display_charsets); #if defined(X3270_DBCS) /*[*/ (void) set_uni_dbcs("", NULL, NULL); #endif /*]*/ return CS_OKAY; } if (set_uni(csname, &codepage, &cgcsgid, &display_charsets) < 0) return CS_NOTFOUND; if (appres.sbcs_cgcsgid != CN) cgcsgid = appres.sbcs_cgcsgid; /* override */ #if defined(X3270_DBCS) /*[*/ if (set_uni_dbcs(csname, &dbcs_cgcsgid, &dbcs_display_charsets) == 0) { if (appres.dbcs_cgcsgid != CN) dbcs_cgcsgid = appres.dbcs_cgcsgid; /* override */ cgcsgid = xs_buffer("%s+%s", cgcsgid, dbcs_cgcsgid); display_charsets = xs_buffer("%s+%s", display_charsets, dbcs_display_charsets); need_free = True; } #endif /*]*/ rc = charset_init2(csname, codepage, cgcsgid, display_charsets); #if defined(X3270_DBCS) /*[*/ if (need_free) { Free((char *)cgcsgid); Free((char *)display_charsets); } #endif /*]*/ if (rc != CS_OKAY) { return rc; } return CS_OKAY; } /* Set a CGCSGID. Return 0 for success, -1 for failure. */ static int set_cgcsgid(char *spec, unsigned long *r) { unsigned long cp; char *ptr; if (spec != CN && (cp = strtoul(spec, &ptr, 0)) && ptr != spec && *ptr == '\0') { if (!(cp & ~0xffffL)) *r = DEFAULT_CGEN | cp; else *r = cp; return 0; } else return -1; } /* Set the CGCSGIDs. */ static void set_cgcsgids(const char *spec) { int n_ids = 0; char *spec_copy; char *buf; char *token; if (spec != CN) { buf = spec_copy = NewString(spec); while (n_ids >= 0 && (token = strtok(buf, "+")) != CN) { unsigned long *idp = NULL; buf = CN; switch (n_ids) { case 0: idp = &cgcsgid; break; #if defined(X3270_DBCS) /*[*/ case 1: idp = &cgcsgid_dbcs; break; #endif /*]*/ default: popup_an_error("Extra CGCSGID(s), ignoring"); break; } if (idp == NULL) break; if (set_cgcsgid(token, idp) < 0) { popup_an_error("Invalid CGCSGID '%s', ignoring", token); n_ids = -1; break; } n_ids++; } Free(spec_copy); if (n_ids > 0) return; } if (appres.sbcs_cgcsgid != CN) cgcsgid = strtoul(appres.sbcs_cgcsgid, NULL, 0); else cgcsgid = DEFAULT_CGEN | DEFAULT_CSET; #if defined(X3270_DBCS) /*[*/ if (appres.dbcs_cgcsgid != CN) cgcsgid_dbcs = strtoul(appres.dbcs_cgcsgid, NULL, 0); else cgcsgid_dbcs = 0L; #endif /*]*/ } /* Set the host codepage. */ static void set_host_codepage(char *codepage) { if (codepage == CN) { Replace(host_codepage, NewString("037")); return; } if (host_codepage == CN || strcmp(host_codepage, codepage)) { Replace(host_codepage, NewString(codepage)); } } /* Set the global charset name. */ static void set_charset_name(char *csname) { if (csname == CN) { Replace(charset_name, NewString("us")); charset_changed = False; return; } if ((charset_name != CN && strcmp(charset_name, csname)) || (appres.charset != CN && strcmp(appres.charset, csname))) { Replace(charset_name, NewString(csname)); charset_changed = True; } } /* Character set init, part 2. */ static enum cs_result charset_init2(char *csname, const char *codepage, const char *cgcsgid, const char *display_charsets) { const char *rcs = display_charsets; int n_rcs = 0; char *rcs_copy, *buf, *token; /* Isolate the pieces. */ buf = rcs_copy = NewString(rcs); while ((token = strtok(buf, "+")) != CN) { buf = CN; switch (n_rcs) { case 0: #if defined(X3270_DBCS) /*[*/ case 1: #endif /*]*/ break; default: popup_an_error("Extra charset value(s), ignoring"); break; } n_rcs++; } Free(rcs_copy); #if defined(X3270_DBCS) /*[*/ /* Can't swap DBCS modes while connected. */ if (IN_3270 && (n_rcs == 2) != dbcs) { popup_an_error("Can't change DBCS modes while connected"); return CS_ILLEGAL; } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ if (!screen_new_display_charsets( rcs? rcs: default_display_charset, csname)) { return CS_PREREQ; } #else /*][*/ #if defined(X3270_DBCS) /*[*/ if (n_rcs > 1) dbcs = True; else dbcs = False; #endif /*]*/ #endif /*]*/ /* Set up the cgcsgids. */ set_cgcsgids(cgcsgid); /* Set up the host code page. */ set_host_codepage((char *)codepage); /* Set up the character set name. */ set_charset_name(csname); return CS_OKAY; } /* Return the current host codepage. */ char * get_host_codepage(void) { return (host_codepage != CN)? host_codepage: "037"; } /* Return the current character set name. */ char * get_charset_name(void) { return (charset_name != CN)? charset_name: ((appres.charset != CN)? appres.charset: "us"); } ibm-3270-3.3.10ga4/s3270/ft_cut.c0000644000175000017500000004436311254565704015407 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ft_cut.c * File transfer, data movement logic, CUT version */ #include #include "globals.h" #if defined(X3270_FT) /*[*/ #include "appres.h" #include "ctlr.h" #include "3270ds.h" #include "actionsc.h" #include "charsetc.h" #include "ctlrc.h" #include "ft_cutc.h" #include "ft_cut_ds.h" #include "ftc.h" #include "kybdc.h" #include "popupsc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" static Boolean cut_xfer_in_progress = False; /* Data stream conversion tables. */ #define NQ 4 /* number of quadrants */ #define NE 77 /* number of elements per quadrant */ #define OTHER_2 2 /* "OTHER 2" quadrant (includes NULL) */ #define XLATE_NULL 0xc1 /* translation of NULL */ static char alphas[NE + 1] = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%&_()<+,-./:>?"; static struct { unsigned char selector; unsigned char xlate[NE]; } conv[NQ] = { { 0x5e, /* ';' */ { 0x40,0xc1,0xc2,0xc3, 0xc4,0xc5,0xc6,0xc7, 0xc8,0xc9,0xd1,0xd2, 0xd3,0xd4,0xd5,0xd6, 0xd7,0xd8,0xd9,0xe2, 0xe3,0xe4,0xe5,0xe6, 0xe7,0xe8,0xe9,0x81, 0x82,0x83,0x84,0x85, 0x86,0x87,0x88,0x89, 0x91,0x92,0x93,0x94, 0x95,0x96,0x97,0x98, 0x99,0xa2,0xa3,0xa4, 0xa5,0xa6,0xa7,0xa8, 0xa9,0xf0,0xf1,0xf2, 0xf3,0xf4,0xf5,0xf6, 0xf7,0xf8,0xf9,0x6c, 0x50,0x6d,0x4d,0x5d, 0x4c,0x4e,0x6b,0x60, 0x4b,0x61,0x7a,0x6e, 0x6f } }, { 0x7e, /* '=' */ { 0x20,0x41,0x42,0x43, 0x44,0x45,0x46,0x47, 0x48,0x49,0x4a,0x4b, 0x4c,0x4d,0x4e,0x4f, 0x50,0x51,0x52,0x53, 0x54,0x55,0x56,0x57, 0x58,0x59,0x5a,0x61, 0x62,0x63,0x64,0x65, 0x66,0x67,0x68,0x69, 0x6a,0x6b,0x6c,0x6d, 0x6e,0x6f,0x70,0x71, 0x72,0x73,0x74,0x75, 0x76,0x77,0x78,0x79, 0x7a,0x30,0x31,0x32, 0x33,0x34,0x35,0x36, 0x37,0x38,0x39,0x25, 0x26,0x27,0x28,0x29, 0x2a,0x2b,0x2c,0x2d, 0x2e,0x2f,0x3a,0x3b, 0x3f } }, { 0x5c, /* '*' */ { 0x00,0x00,0x01,0x02, 0x03,0x04,0x05,0x06, 0x07,0x08,0x09,0x0a, 0x0b,0x0c,0x0d,0x0e, 0x0f,0x10,0x11,0x12, 0x13,0x14,0x15,0x16, 0x17,0x18,0x19,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x3c,0x3d,0x3e, 0x00,0xfa,0xfb,0xfc, 0xfd,0xfe,0xff,0x7b, 0x7c,0x7d,0x7e,0x7f, 0x1a,0x1b,0x1c,0x1d, 0x1e,0x1f,0x00,0x00, 0x00 } }, { 0x7d, /* '\'' */ { 0x00,0xa0,0xa1,0xea, 0xeb,0xec,0xed,0xee, 0xef,0xe0,0xe1,0xaa, 0xab,0xac,0xad,0xae, 0xaf,0xb0,0xb1,0xb2, 0xb3,0xb4,0xb5,0xb6, 0xb7,0xb8,0xb9,0x80, 0x00,0xca,0xcb,0xcc, 0xcd,0xce,0xcf,0xc0, 0x00,0x8a,0x8b,0x8c, 0x8d,0x8e,0x8f,0x90, 0x00,0xda,0xdb,0xdc, 0xdd,0xde,0xdf,0xd0, 0x00,0x00,0x21,0x22, 0x23,0x24,0x5b,0x5c, 0x00,0x5e,0x5f,0x00, 0x9c,0x9d,0x9e,0x9f, 0xba,0xbb,0xbc,0xbd, 0xbe,0xbf,0x9a,0x9b, 0x00 } } }; static char table6[] = "abcdefghijklmnopqrstuvwxyz&-.,:+ABCDEFGHIJKLMNOPQRSTUVWXYZ012345"; static int quadrant = -1; static unsigned long expanded_length; static char *saved_errmsg = CN; #define XLATE_NBUF 32 static int xlate_buffered = 0; /* buffer count */ static int xlate_buf_ix = 0; /* buffer index */ static unsigned char xlate_buf[XLATE_NBUF]; /* buffer */ static void cut_control_code(void); static void cut_data_request(void); static void cut_retransmit(void); static void cut_data(void); static void cut_ack(void); static void cut_abort(const char *s, unsigned short reason); static unsigned from6(unsigned char c); /*static*/ int xlate_getc(void); /* * Convert a buffer for uploading (host->local). * Returns the length of the converted data. * If there is a conversion error, calls cut_abort() and returns -1. */ static int upload_convert(unsigned char *buf, int len, unsigned char *obuf, int obuf_len) { unsigned char *ob0 = obuf; unsigned char *ob = ob0; int nx; while (len-- && obuf_len) { unsigned char c = *buf++; char *ixp; int ix; int oq = -1; retry: if (quadrant < 0) { /* Find the quadrant. */ for (quadrant = 0; quadrant < NQ; quadrant++) { if (c == conv[quadrant].selector) break; } if (quadrant >= NQ) { cut_abort(get_message("ftCutConversionError"), SC_ABORT_XMIT); return -1; } continue; } /* Make sure it's in a valid range. */ if (c < 0x40 || c > 0xf9) { cut_abort(get_message("ftCutConversionError"), SC_ABORT_XMIT); return -1; } /* Translate to a quadrant index. */ ixp = strchr(alphas, ebc2asc0[c]); if (ixp == (char *)NULL) { /* Try a different quadrant. */ oq = quadrant; quadrant = -1; goto retry; } ix = ixp - alphas; /* * See if it's mapped by that quadrant, handling NULLs * specially. */ if (quadrant != OTHER_2 && c != XLATE_NULL && !conv[quadrant].xlate[ix]) { /* Try a different quadrant. */ oq = quadrant; quadrant = -1; goto retry; } /* Map it. */ c = conv[quadrant].xlate[ix]; if (ascii_flag && cr_flag && (c == '\r' || c == 0x1a)) continue; if (!(ascii_flag && remap_flag)) { /* No further translation necessary. */ *ob++ = c; obuf_len--; continue; } /* * Convert to local multi-byte. * We do that by inverting the host's EBCDIC-to-ASCII map, * getting back to EBCDIC, and converting to multi-byte from * there. */ #if defined(X3270_DBCS) /*[*/ switch (ft_dbcs_state) { case FT_DBCS_NONE: if (c == EBC_so) { ft_dbcs_state = FT_DBCS_SO; continue; } /* fall through to non-DBCS case below */ break; case FT_DBCS_SO: if (c == EBC_si) ft_dbcs_state = FT_DBCS_NONE; else { ft_dbcs_byte1 = i_asc2ft[c]; ft_dbcs_state = FT_DBCS_LEFT; } continue; case FT_DBCS_LEFT: if (c == EBC_si) { ft_dbcs_state = FT_DBCS_NONE; continue; } nx = ebcdic_to_multibyte((ft_dbcs_byte1 << 8) | i_asc2ft[c], (char *)ob, obuf_len); if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; ft_dbcs_state = FT_DBCS_SO; continue; } #endif /*]*/ if (c < 0x20 || ((c >= 0x80 && c < 0xa0 && c != 0x9f))) { /* * Control code, treat it as Unicode. * * Note that IND$FILE and the VM 'TYPE' command think * that EBCDIC X'E1' is a control code; IND$FILE maps * it onto ASCII 0x9f. So we skip it explicitly and * treat it as printable here. */ nx = unicode_to_multibyte(c, (char *)ob, obuf_len); } else if (c == 0xff) { nx = unicode_to_multibyte(0x9f, (char *)ob, obuf_len); } else { /* Displayable character, remap. */ c = i_asc2ft[c]; nx = ebcdic_to_multibyte(c, (char *)ob, obuf_len); } if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; } return ob - ob0; } /* * Store a download (local->host) character. * Returns the number of bytes stored. */ static int store_download(unsigned char c, unsigned char *ob) { unsigned char *ixp; unsigned ix; int oq; /* Quadrant already defined. */ if (quadrant >= 0) { ixp = (unsigned char *)memchr(conv[quadrant].xlate, c, NE); if (ixp != (unsigned char *)NULL) { ix = ixp - conv[quadrant].xlate; *ob++ = asc2ebc0[(int)alphas[ix]]; return 1; } } /* Locate a quadrant. */ oq = quadrant; for (quadrant = 0; quadrant < NQ; quadrant++) { if (quadrant == oq) continue; ixp = (unsigned char *)memchr(conv[quadrant].xlate, c, NE); if (ixp == (unsigned char *)NULL) continue; ix = ixp - conv[quadrant].xlate; *ob++ = conv[quadrant].selector; *ob++ = asc2ebc0[(int)alphas[ix]]; return 2; } quadrant = -1; fprintf(stderr, "Oops\n"); return 0; } /* Convert a buffer for downloading (local->host). */ /*static*/ int download_convert(unsigned const char *buf, unsigned len, unsigned char *xobuf) { unsigned char *ob0 = xobuf; unsigned char *ob = ob0; while (len) { unsigned char c = *buf; int consumed; enum me_fail error; ebc_t e; ucs4_t u; /* Handle nulls separately. */ if (!c) { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { ob += store_download(EBC_si, ob); ft_last_dbcs = False; } #endif /*]*/ if (quadrant != OTHER_2) { quadrant = OTHER_2; *ob++ = conv[quadrant].selector; } *ob++ = XLATE_NULL; buf++; len--; continue; } if (!(ascii_flag && remap_flag)) { ob += store_download(c, ob); buf++; len--; continue; } /* * Translate. * * The host uses a fixed EBCDIC-to-ASCII translation table, * which was derived empirically into i_ft2asc/i_asc2ft. * Invert that so that when the host applies its conversion, * it gets the right EBCDIC code. * * DBCS is a guess at this point, assuming that SO and SI * are unmodified by IND$FILE. */ u = multibyte_to_unicode((const char *)buf, len, &consumed, &error); if (u < 0x20 || ((u >= 0x80 && u < 0x9f))) e = i_asc2ft[u]; else if (u == 0x9f) e = 0xff; else e = unicode_to_ebcdic(u); if (e & 0xff00) { #if defined(X3270_DBCS) /*[*/ if (!ft_last_dbcs) ob += store_download(EBC_so, ob); ob += store_download(i_ft2asc[(e >> 8) & 0xff], ob); ob += store_download(i_ft2asc[e & 0xff], ob); ft_last_dbcs = True; #else /*][*/ ob += store_download('?', ob); #endif /*]*/ } else { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { ob += store_download(EBC_si, ob); ft_last_dbcs = False; } #endif /*]*/ if (e == 0) { ob += store_download('?', ob); } else { ob += store_download(i_ft2asc[e], ob); } } buf += consumed; len -= consumed; } return ob - ob0; } /* * Main entry point from ctlr.c. * We have received what looks like an appropriate message from the host. */ void ft_cut_data(void) { switch (ea_buf[O_FRAME_TYPE].cc) { case FT_CONTROL_CODE: cut_control_code(); break; case FT_DATA_REQUEST: cut_data_request(); break; case FT_RETRANSMIT: cut_retransmit(); break; case FT_DATA: cut_data(); break; default: trace_ds("< FT unknown 0x%02x\n", ea_buf[O_FRAME_TYPE].cc); cut_abort(get_message("ftCutUnknownFrame"), SC_ABORT_XMIT); break; } } /* * Process a control code from the host. */ static void cut_control_code(void) { unsigned short code; char *buf; char *bp; int i; trace_ds("< FT CONTROL_CODE "); code = (ea_buf[O_CC_STATUS_CODE].cc << 8) | ea_buf[O_CC_STATUS_CODE + 1].cc; switch (code) { case SC_HOST_ACK: trace_ds("HOST_ACK\n"); cut_xfer_in_progress = True; expanded_length = 0; quadrant = -1; xlate_buffered = 0; cut_ack(); ft_running(True); break; case SC_XFER_COMPLETE: trace_ds("XFER_COMPLETE\n"); cut_ack(); cut_xfer_in_progress = False; ft_complete((String)NULL); break; case SC_ABORT_FILE: case SC_ABORT_XMIT: trace_ds("ABORT\n"); cut_xfer_in_progress = False; cut_ack(); if (ft_state == FT_ABORT_SENT && saved_errmsg != CN) { buf = saved_errmsg; saved_errmsg = CN; } else { int mb_len = 161; bp = buf = Malloc(mb_len); for (i = 0; i < 80; i++) { int xlen; xlen = ebcdic_to_multibyte( ea_buf[O_CC_MESSAGE + i].cc, bp, mb_len); if (xlen) { bp += xlen - 1; mb_len -= xlen - 1; } } *bp-- = '\0'; while (bp >= buf && *bp == ' ') *bp-- = '\0'; if (bp >= buf && *bp == '$') *bp-- = '\0'; while (bp >= buf && *bp == ' ') *bp-- = '\0'; if (!*buf) strcpy(buf, get_message("ftHostCancel")); } ft_complete(buf); Free(buf); break; default: trace_ds("unknown 0x%04x\n", code); cut_abort(get_message("ftCutUnknownControl"), SC_ABORT_XMIT); break; } } /* * Process a data request from the host. */ static void cut_data_request(void) { unsigned char seq = ea_buf[O_DR_FRAME_SEQ].cc; int count; unsigned char cs; int c; int i; unsigned char attr; trace_ds("< FT DATA_REQUEST %u\n", from6(seq)); if (ft_state == FT_ABORT_WAIT) { cut_abort(get_message("ftUserCancel"), SC_ABORT_FILE); return; } /* Copy data into the screen buffer. */ count = 0; while (count < O_UP_MAX && (c = xlate_getc()) != EOF) { ctlr_add(O_UP_DATA + count, c, 0); count++; } /* Check for errors. */ if (ferror(ft_local_file)) { int j; char *msg; /* Clean out any data we may have written. */ for (j = 0; j < count; j++) ctlr_add(O_UP_DATA + j, 0, 0); /* Abort the transfer. */ msg = xs_buffer("read(%s): %s", ft_local_filename, strerror(errno)); cut_abort(msg, SC_ABORT_FILE); Free(msg); return; } /* Send special data for EOF. */ if (!count && feof(ft_local_file)) { ctlr_add(O_UP_DATA, EOF_DATA1, 0); ctlr_add(O_UP_DATA+1, EOF_DATA2, 0); count = 2; } /* Compute the other fields. */ ctlr_add(O_UP_FRAME_SEQ, seq, 0); cs = 0; for (i = 0; i < count; i++) cs ^= ea_buf[O_UP_DATA + i].cc; ctlr_add(O_UP_CSUM, asc2ebc0[(int)table6[cs & 0x3f]], 0); ctlr_add(O_UP_LEN, asc2ebc0[(int)table6[(count >> 6) & 0x3f]], 0); ctlr_add(O_UP_LEN+1, asc2ebc0[(int)table6[count & 0x3f]], 0); /* XXX: Change the data field attribute so it doesn't display. */ attr = ea_buf[O_DR_SF].fa; attr = (attr & ~FA_INTENSITY) | FA_INT_ZERO_NSEL; ctlr_add_fa(O_DR_SF, attr, 0); /* Send it up to the host. */ trace_ds("> FT DATA %u\n", from6(seq)); ft_update_length(); expanded_length += count; action_internal(Enter_action, IA_FT, CN, CN); } /* * (Improperly) process a retransmit from the host. */ static void cut_retransmit(void) { trace_ds("< FT RETRANSMIT\n"); cut_abort(get_message("ftCutRetransmit"), SC_ABORT_XMIT); } /* * Convert an encoded integer. */ static unsigned from6(unsigned char c) { char *p; c = ebc2asc0[c]; p = strchr(table6, c); if (p == CN) return 0; return p - table6; } /* * Process data from the host. */ static void cut_data(void) { static unsigned char cvbuf[O_RESPONSE - O_DT_DATA]; static unsigned char cvobuf[4 * (O_RESPONSE - O_DT_DATA)]; unsigned short raw_length; int conv_length; register int i; trace_ds("< FT DATA\n"); if (ft_state == FT_ABORT_WAIT) { cut_abort(get_message("ftUserCancel"), SC_ABORT_FILE); return; } /* Copy and convert the data. */ raw_length = from6(ea_buf[O_DT_LEN].cc) << 6 | from6(ea_buf[O_DT_LEN + 1].cc); if ((int)raw_length > O_RESPONSE - O_DT_DATA) { cut_abort(get_message("ftCutOversize"), SC_ABORT_XMIT); return; } for (i = 0; i < (int)raw_length; i++) cvbuf[i] = ea_buf[O_DT_DATA + i].cc; if (raw_length == 2 && cvbuf[0] == EOF_DATA1 && cvbuf[1] == EOF_DATA2) { trace_ds("< FT EOF\n"); cut_ack(); return; } conv_length = upload_convert(cvbuf, raw_length, cvobuf, sizeof(cvobuf)); if (conv_length < 0) return; /* Write it to the file. */ if (fwrite((char *)cvobuf, conv_length, 1, ft_local_file) == 0) { char *msg; msg = xs_buffer("write(%s): %s", ft_local_filename, strerror(errno)); cut_abort(msg, SC_ABORT_FILE); Free(msg); } else { ft_length += conv_length; ft_update_length(); cut_ack(); } } /* * Acknowledge a host command. */ static void cut_ack(void) { trace_ds("> FT ACK\n"); action_internal(Enter_action, IA_FT, CN, CN); } /* * Abort a transfer in progress. */ static void cut_abort(const char *s, unsigned short reason) { /* Save the error message. */ Replace(saved_errmsg, NewString(s)); /* Send the abort sequence. */ ctlr_add(RO_FRAME_TYPE, RFT_CONTROL_CODE, 0); ctlr_add(RO_FRAME_SEQ, ea_buf[O_DT_FRAME_SEQ].cc, 0); ctlr_add(RO_REASON_CODE, HIGH8(reason), 0); ctlr_add(RO_REASON_CODE+1, LOW8(reason), 0); trace_ds("> FT CONTROL_CODE ABORT\n"); action_internal(PF_action, IA_FT, "2", CN); /* Update the in-progress pop-up. */ ft_aborting(); } /* * Get the next translated character from the local file. * Returns the character (in EBCDIC), or EOF. */ /*static*/ int xlate_getc(void) { int r; int c; unsigned char cbuf[32]; int nc; int consumed; enum me_fail error; char mb[16]; int mb_len = 0; /* If there is a data buffered, return it. */ if (xlate_buffered) { r = xlate_buf[xlate_buf_ix]; xlate_buf_ix++; xlate_buffered--; return r; } if (ascii_flag) { /* * Get the next (possibly multi-byte) character from the file. */ do { c = fgetc(ft_local_file); if (c == EOF) { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { ft_last_dbcs = False; return EBC_si; } #endif /*]*/ return c; } ft_length++; mb[mb_len++] = c; error = ME_NONE; (void) multibyte_to_unicode(mb, mb_len, &consumed, &error); if (error == ME_INVALID) return -1; } while (error == ME_SHORT); /* Expand it. */ if (ascii_flag && cr_flag && !ft_last_cr && c == '\n') { nc = download_convert((unsigned const char *)"\r", 1, cbuf); } else { nc = 0; ft_last_cr = (c == '\r'); } } else { /* Binary, just read it. */ c = fgetc(ft_local_file); if (c == EOF) return c; mb[0] = c; mb_len = 1; nc = 0; ft_length++; } /* Convert it. */ nc += download_convert((unsigned char *)mb, mb_len, &cbuf[nc]); /* Return it and buffer what's left. */ r = cbuf[0]; if (nc > 1) { int i; for (i = 1; i < nc; i++) xlate_buf[xlate_buffered++] = cbuf[i]; xlate_buf_ix = 0; } return r; } #endif /*]*/ ibm-3270-3.3.10ga4/s3270/version.txt0000755000175000017500000000004611261527637016177 0ustar bastianbastianversion="3.3.10ga4" adversion="3.3.4" ibm-3270-3.3.10ga4/s3270/readresc.h0000644000175000017500000000355611254565704015717 0ustar bastianbastian/* * Copyright (c) 2009, Paul Mattes. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * readresc.h * A displayless 3270 Terminal Emulator * Header for resource file reader. */ typedef void (rrf_t)(const char *, const char *); extern int validate_and_split_resource(const char *where, const char *arg, const char **left, unsigned *rnlenp, const char **right); extern int read_resource_filex(const char *filename, Boolean fatal, rrf_t *rrf); ibm-3270-3.3.10ga4/s3270/actions.c0000644000175000017500000005370511254565704015563 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * actions.c * The X actions table and action debugging code. */ #include "globals.h" #include "appres.h" #include "actionsc.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "printc.h" #include "resources.h" #include "selectc.h" #include "togglesc.h" #include "trace_dsc.h" #include "utilc.h" #include "xioc.h" #if defined(X3270_FT) /*[*/ #include "ftc.h" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ #include "keypadc.h" #include "menubarc.h" #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) || defined(WC3270) /*[*/ #include "screenc.h" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ #include #define MODMAP_SIZE 8 #define MAP_SIZE 13 #define MAX_MODS_PER 4 static struct { const char *name[MAX_MODS_PER]; unsigned int mask; Boolean is_meta; } skeymask[MAP_SIZE] = { { { "Shift" }, ShiftMask, False }, { { (char *)NULL } /* Lock */, LockMask, False }, { { "Ctrl" }, ControlMask, False }, { { CN }, Mod1Mask, False }, { { CN }, Mod2Mask, False }, { { CN }, Mod3Mask, False }, { { CN }, Mod4Mask, False }, { { CN }, Mod5Mask, False }, { { "Button1" }, Button1Mask, False }, { { "Button2" }, Button2Mask, False }, { { "Button3" }, Button3Mask, False }, { { "Button4" }, Button4Mask, False }, { { "Button5" }, Button5Mask, False } }; static Boolean know_mods = False; #endif /*]*/ XtActionsRec all_actions[] = { #if defined(C3270) && defined(X3270_SCRIPT) /*[*/ { "Abort", Abort_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "AltCursor", AltCursor_action }, #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ { "Compose", Compose_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "Cut", Cut_action }, { "Default", Default_action }, { "HandleMenu", HandleMenu_action }, { "HardPrint", PrintText_action }, { "HexString", HexString_action }, #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ { "Info", Info_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "Keymap", TemporaryKeymap_action }, { PA_PFX "ConfigureNotify", PA_ConfigureNotify_action }, { PA_END, PA_End_action }, #endif /*]*/ #if defined(C3270) /*[*/ { "Escape", Escape_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { PA_PFX "EnterLeave", PA_EnterLeave_action }, { PA_PFX "Expose", PA_Expose_action }, { PA_PFX "Focus", PA_Focus_action }, { PA_PFX "GraphicsExpose", PA_GraphicsExpose_action }, { PA_PFX "KeymapNotify", PA_KeymapNotify_action }, # if defined(X3270_TRACE) /*[*/ { PA_KEYMAP_TRACE, PA_KeymapTrace_action }, # endif /*]*/ { PA_PFX "Shift", PA_Shift_action }, { PA_PFX "StateChanged", PA_StateChanged_action }, { PA_PFX "VisibilityNotify",PA_VisibilityNotify_action }, { PA_PFX "WMProtocols", PA_WMProtocols_action }, { PA_PFX "confirm", PA_confirm_action }, { "PrintWindow", PrintWindow_action }, #endif /*]*/ { "PrintText", PrintText_action }, #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ { "Flip", Flip_action }, { "Redraw", Redraw_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "SetFont", SetFont_action }, { "TemporaryKeymap", TemporaryKeymap_action }, # if defined(X3270_FT) && defined(X3270_MENUS) /*[*/ { PA_PFX "dialog-next", PA_dialog_next_action }, { PA_PFX "dialog-focus", PA_dialog_focus_action }, # endif /*]*/ { "insert-selection", insert_selection_action }, { "move-select", move_select_action }, { "select-end", select_end_action }, { "select-extend", select_extend_action }, { "select-start", select_start_action }, { "set-select", set_select_action }, { "start-extend", start_extend_action }, #endif /*]*/ #if defined(X3270_SCRIPT) || defined(S3270) /*[*/ { "AnsiText", AnsiText_action }, #endif /*]*/ { "Ascii", Ascii_action }, { "AsciiField", AsciiField_action }, { "Attn", Attn_action }, { "BackSpace", BackSpace_action }, { "BackTab", BackTab_action }, #if defined(X3270_SCRIPT) && (defined(X3270_DISPLAY) || defined(C3270)) /*[*/ { "Bell", Bell_action }, #endif /*]*/ { "CircumNot", CircumNot_action }, { "Clear", Clear_action }, #if defined(C3270) /*[*/ { "Close", Disconnect_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "CloseScript", CloseScript_action }, #endif /*]*/ { "Connect", Connect_action }, #if defined(X3270_SCRIPT) /*[*/ { "ContinueScript", ContinueScript_action }, #endif /*]*/ { "CursorSelect", CursorSelect_action }, { "Delete", Delete_action }, { "DeleteField", DeleteField_action }, { "DeleteWord", DeleteWord_action }, { "Disconnect", Disconnect_action }, { "Down", Down_action }, { "Dup", Dup_action }, { "Ebcdic", Ebcdic_action }, { "EbcdicField", EbcdicField_action }, { "Enter", Enter_action }, { "Erase", Erase_action }, { "EraseEOF", EraseEOF_action }, { "EraseInput", EraseInput_action }, #if defined(X3270_SCRIPT) /*[*/ { "Execute", Execute_action }, #endif /*]*/ #if defined(C3270) || defined(WC3270) /*[*/ { "Exit", Quit_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "Expect", Expect_action }, #endif /*]*/ { "FieldEnd", FieldEnd_action }, { "FieldMark", FieldMark_action }, { "HexString", HexString_action}, #if defined(C3270) || defined(WC3270) /*[*/ { "Help", Help_action}, #endif/*]*/ #if defined(X3270_SCRIPT) /*[*/ { "Plugin", Plugin_action}, #endif/*]*/ { "Home", Home_action }, { "Insert", Insert_action }, { "Interrupt", Interrupt_action }, { "Key", Key_action }, #if defined(X3270_DISPLAY) /*[*/ { "KybdSelect", KybdSelect_action }, #endif /*]*/ { "Left", Left_action }, { "Left2", Left2_action }, #if defined(X3270_SCRIPT) || defined(S3270) /*[*/ { "Macro", Macro_action }, #endif /*]*/ { "MonoCase", MonoCase_action }, #if defined(X3270_DISPLAY) /*[*/ { "MouseSelect", MouseSelect_action }, #endif /*]*/ { "MoveCursor", MoveCursor_action }, { "Newline", Newline_action }, { "NextWord", NextWord_action }, #if defined(C3270) || defined(WC3270) /*[*/ { "Open", Connect_action }, #endif /*]*/ { "PA", PA_action }, { "PF", PF_action }, #if defined(WC3270) /*[*/ { "Paste", Paste_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "PauseScript", PauseScript_action }, #endif /*]*/ { "PreviousWord", PreviousWord_action }, #if defined(X3270_PRINTER) /*[*/ { "Printer", Printer_action }, #endif /*]*/ #if defined(X3270_SCRIPT) || defined(S3270) /*[*/ { "Query", Query_action }, #endif /*]*/ { "Quit", Quit_action }, #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ { "ReadBuffer", ReadBuffer_action }, #endif /*]*/ #if defined(X3270_MENUS) /*[*/ { "Reconnect", Reconnect_action }, #endif /*]*/ { "Reset", Reset_action }, { "Right", Right_action }, { "Right2", Right2_action }, #if defined(X3270_DISPLAY) /*[*/ { "SelectAll", SelectAll_action }, { "SelectDown", SelectDown_action }, { "SelectMotion", SelectMotion_action }, { "SelectUp", SelectUp_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "Script", Script_action }, #endif /*]*/ #if defined(C3270) /*[*/ { "Show", Show_action }, #endif/*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ { "Snap", Snap_action }, #endif /*]*/ #if !defined(TCL3270) /*[*/ { "Source", Source_action }, #endif /*]*/ #if defined(TCL3270) /*[*/ { "Status", Status_action }, #endif /*]*/ { "String", String_action }, { "SysReq", SysReq_action }, { "Tab", Tab_action }, #if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ { "Title", Title_action }, #endif /*]*/ { "Toggle", Toggle_action }, { "ToggleInsert", ToggleInsert_action }, { "ToggleReverse", ToggleReverse_action }, #if defined(C3270) && defined(X3270_TRACE) /*[*/ { "Trace", Trace_action }, #endif/*]*/ #if defined(X3270_FT) /*[*/ { "Transfer", Transfer_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "Unselect", Unselect_action }, #endif /*]*/ { "Up", Up_action }, #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ { "Wait", Wait_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "WindowState", WindowState_action }, #endif /*]*/ { "ignore", ignore_action } }; int actioncount = XtNumber(all_actions); XtActionsRec *actions = NULL; /* Actions that are aliases for other actions. */ static char *aliased_actions[] = { "Close", "HardPrint", "Open", NULL }; enum iaction ia_cause; const char *ia_name[] = { "String", "Paste", "Screen redraw", "Keypad", "Default", "Key", "Macro", "Script", "Peek", "Typeahead", "File transfer", "Command", "Keymap", "Idle" }; /* No-op action for suppressed actions. */ static void suppressed_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(suppressed_action, event, params, num_params); } /* Look up an action name in the suppressed actions resource. */ static Boolean action_suppressed(String name, char *suppress) { char *s = suppress; char *t; while ((t = strstr(s, name)) != CN) { char b; char e = s[strlen(name)]; if (t == suppress) b = '\0'; else b = *(t - 1); if ((b == '\0' || b == ')' || isspace(b)) && (e == '\0' || e == '(' || isspace(e))) return True; s += strlen(name); } return False; } /* * Action table initialization. * Uses the suppressActions resource to prune the actions table. */ void action_init(void) { char *suppress; int i; /* See if there are any filters at all. */ suppress = get_resource(ResSuppressActions); if (suppress == CN) { actions = all_actions; return; } /* Yes, we'll need to copy the table and prune it. */ actions = (XtActionsRec *)Malloc(sizeof(all_actions)); memcpy(actions, all_actions, sizeof(all_actions)); for (i = 0; i < actioncount; i++) { if (action_suppressed(actions[i].string, suppress)) actions[i].proc = suppressed_action; } } /* * Return a name for an action. */ const char * action_name(XtActionProc action) { register int i; /* * XXX: It would be better if the real name could be displayed, with a * message indicating it is suppressed. */ if (action == suppressed_action) return "(suppressed)"; for (i = 0; i < actioncount; i++) if (actions[i].proc == action) { int j; Boolean aliased = False; for (j = 0; aliased_actions[j] != CN; j++) { if (!strcmp(aliased_actions[j], actions[i].string)) { aliased = True; break; } } if (!aliased) return actions[i].string; } return "(unknown)"; } #if defined(X3270_DISPLAY) /*[*/ /* * Search the modifier map to learn the modifier bits for Meta, Alt, Hyper and * Super. */ static void learn_modifiers(void) { XModifierKeymap *mm; int i, j, k; static char *default_modname[] = { CN, CN, "Ctrl", "Mod1", "Mod2", "Mod3", "Mod4", "Mod5", "Button1", "Button2", "Button3", "Button4", "Button5" }; mm = XGetModifierMapping(display); for (i = 0; i < MODMAP_SIZE; i++) { for (j = 0; j < mm->max_keypermod; j++) { KeyCode kc; const char *name = CN; Boolean is_meta = False; kc = mm->modifiermap[(i * mm->max_keypermod) + j]; if (!kc) continue; switch(XKeycodeToKeysym(display, kc, 0)) { case XK_Meta_L: case XK_Meta_R: name = "Meta"; is_meta = True; break; case XK_Alt_L: case XK_Alt_R: name = "Alt"; break; case XK_Super_L: case XK_Super_R: name = "Super"; break; case XK_Hyper_L: case XK_Hyper_R: name = "Hyper"; break; default: break; } if (name == CN) continue; if (is_meta) skeymask[i].is_meta = True; for (k = 0; k < MAX_MODS_PER; k++) { if (skeymask[i].name[k] == CN) break; else if (!strcmp(skeymask[i].name[k], name)) k = MAX_MODS_PER; } if (k >= MAX_MODS_PER) continue; skeymask[i].name[k] = name; } } for (i = 0; i < MODMAP_SIZE; i++) { if (skeymask[i].name[0] == CN) { skeymask[i].name[0] = default_modname[i]; } } XFreeModifiermap(mm); } #if defined(X3270_TRACE) /*[*/ /* * Return the symbolic name for the modifier combination (i.e., "Meta" instead * of "Mod2". Note that because it is possible to map multiple keysyms to the * same modifier bit, the answer may be ambiguous; we return the combinations * iteratively. */ static char * key_symbolic_state(unsigned int state, int *iteration) { static char rs[64]; static int ix[MAP_SIZE]; static int ix_ix[MAP_SIZE]; static int n_ix = 0; static int leftover = 0; const char *comma = ""; int i; if (!know_mods) { learn_modifiers(); know_mods = True; } if (*iteration == 0) { /* First time, build the table. */ n_ix = 0; for (i = 0; i < MAP_SIZE; i++) { if (skeymask[i].name[0] != CN && (state & skeymask[i].mask)) { ix[i] = 0; state &= ~skeymask[i].mask; ix_ix[n_ix++] = i; } else ix[i] = MAX_MODS_PER; } leftover = state; } /* Construct this result. */ rs[0] = '\0'; for (i = 0; i < n_ix; i++) { (void) strcat(rs, comma); (void) strcat(rs, skeymask[ix_ix[i]].name[ix[ix_ix[i]]]); comma = " "; } #if defined(VERBOSE_EVENTS) /*[*/ if (leftover) (void) sprintf(strchr(rs, '\0'), "%s?%d", comma, state); #endif /*]*/ /* * Iterate to the next. * This involves treating each slot like an n-ary number, where n is * the number of elements in the slot, iterating until the highest- * ordered slot rolls back over to 0. */ if (n_ix) { i = n_ix - 1; ix[ix_ix[i]]++; while (i >= 0 && (ix[ix_ix[i]] >= MAX_MODS_PER || skeymask[ix_ix[i]].name[ix[ix_ix[i]]] == CN)) { ix[ix_ix[i]] = 0; i = i - 1; if (i >= 0) ix[ix_ix[i]]++; } *iteration = i >= 0; } else *iteration = 0; return rs; } #endif /*]*/ /* Return whether or not an KeyPress event state includes the Meta key. */ Boolean event_is_meta(int state) { int i; /* Learn the modifier map. */ if (!know_mods) { learn_modifiers(); know_mods = True; } for (i = 0; i < MAP_SIZE; i++) { if (skeymask[i].name[0] != CN && skeymask[i].is_meta && (state & skeymask[i].mask)) { return True; } } return False; } #if defined(VERBOSE_EVENTS) /*[*/ static char * key_state(unsigned int state) { static char rs[64]; const char *comma = ""; static struct { const char *name; unsigned int mask; } keymask[] = { { "Shift", ShiftMask }, { "Lock", LockMask }, { "Control", ControlMask }, { "Mod1", Mod1Mask }, { "Mod2", Mod2Mask }, { "Mod3", Mod3Mask }, { "Mod4", Mod4Mask }, { "Mod5", Mod5Mask }, { "Button1", Button1Mask }, { "Button2", Button2Mask }, { "Button3", Button3Mask }, { "Button4", Button4Mask }, { "Button5", Button5Mask }, { CN, 0 }, }; int i; rs[0] = '\0'; for (i = 0; keymask[i].name; i++) { if (state & keymask[i].mask) { (void) strcat(rs, comma); (void) strcat(rs, keymask[i].name); comma = "|"; state &= ~keymask[i].mask; } } if (!rs[0]) (void) sprintf(rs, "%d", state); else if (state) (void) sprintf(strchr(rs, '\0'), "%s?%d", comma, state); return rs; } #endif /*]*/ #endif /*]*/ /* * Check the number of argument to an action, and possibly pop up a usage * message. * * Returns 0 if the argument count is correct, -1 otherwise. */ int check_usage(XtActionProc action, Cardinal nargs, Cardinal nargs_min, Cardinal nargs_max) { if (nargs >= nargs_min && nargs <= nargs_max) return 0; if (nargs_min == nargs_max) popup_an_error("%s requires %d argument%s", action_name(action), nargs_min, nargs_min == 1 ? "" : "s"); else popup_an_error("%s requires %d or %d arguments", action_name(action), nargs_min, nargs_max); cancel_if_idle_command(); return -1; } /* * Display an action debug message */ #if defined(X3270_TRACE) /*[*/ #define KSBUF 256 void action_debug(XtActionProc action, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; char pbuf[1024]; #if defined(X3270_DISPLAY) /*[*/ XKeyEvent *kevent; KeySym ks; XButtonEvent *bevent; XMotionEvent *mevent; XConfigureEvent *cevent; XClientMessageEvent *cmevent; XExposeEvent *exevent; const char *press = "Press"; const char *direction = "Down"; char dummystr[KSBUF+1]; char *atom_name; int ambiguous = 0; int state; const char *symname = ""; char snbuf[11]; #endif /*]*/ if (!toggled(EVENT_TRACE)) return; if (event == (XEvent *)NULL) { trace_event(" %s", ia_name[(int)ia_cause]); } #if defined(X3270_DISPLAY) /*[*/ else switch (event->type) { case KeyRelease: press = "Release"; case KeyPress: kevent = (XKeyEvent *)event; (void) XLookupString(kevent, dummystr, KSBUF, &ks, NULL); state = kevent->state; /* * If the keysym is a printable ASCII character, ignore the * Shift key. */ if (ks != ' ' && !(ks & ~0xff) && isprint(ks)) state &= ~ShiftMask; if (ks == NoSymbol) symname = "NoSymbol"; else if ((symname = XKeysymToString(ks)) == CN) { (void) sprintf(snbuf, "0x%lx", (unsigned long)ks); symname = snbuf; } do { int was_ambiguous = ambiguous; trace_event("%s ':%s%s'", was_ambiguous? " or": "Event", key_symbolic_state(state, &ambiguous), press, symname); } while (ambiguous); /* * If the keysym is an alphanumeric ASCII character, show the * case-insensitive alternative, sans the colon. */ if (!(ks & ~0xff) && isalpha(ks)) { ambiguous = 0; do { int was_ambiguous = ambiguous; trace_event(" %s '%s%s'", was_ambiguous? "or": "(case-insensitive:", key_symbolic_state(state, &ambiguous), press, symname); } while (ambiguous); trace_event(")"); } #if defined(VERBOSE_EVENTS) /*[*/ trace_event("\nKey%s [state %s, keycode %d, keysym " "0x%lx \"%s\"]", press, key_state(kevent->state), kevent->keycode, ks, symname); #endif /*]*/ break; case ButtonRelease: press = "Release"; direction = "Up"; case ButtonPress: bevent = (XButtonEvent *)event; do { int was_ambiguous = ambiguous; trace_event("%s '%s'", was_ambiguous? " or": "Event", key_symbolic_state(bevent->state, &ambiguous), bevent->button, direction); } while (ambiguous); #if defined(VERBOSE_EVENTS) /*[*/ trace_event("\nButton%s [state %s, button %d]", press, key_state(bevent->state), bevent->button); #endif /*]*/ break; case MotionNotify: mevent = (XMotionEvent *)event; do { int was_ambiguous = ambiguous; trace_event("%s '%s'", was_ambiguous? " or": "Event", key_symbolic_state(mevent->state, &ambiguous)); } while (ambiguous); #if defined(VERBOSE_EVENTS) /*[*/ trace_event("\nMotionNotify [state %s]", key_state(mevent->state)); #endif /*]*/ break; case EnterNotify: trace_event("EnterNotify"); break; case LeaveNotify: trace_event("LeaveNotify"); break; case FocusIn: trace_event("FocusIn"); break; case FocusOut: trace_event("FocusOut"); break; case KeymapNotify: trace_event("KeymapNotify"); break; case Expose: exevent = (XExposeEvent *)event; trace_event("Expose [%dx%d+%d+%d]", exevent->width, exevent->height, exevent->x, exevent->y); break; case PropertyNotify: trace_event("PropertyNotify"); break; case ClientMessage: cmevent = (XClientMessageEvent *)event; atom_name = XGetAtomName(display, (Atom)cmevent->data.l[0]); trace_event("ClientMessage [%s]", (atom_name == CN) ? "(unknown)" : atom_name); break; case ConfigureNotify: cevent = (XConfigureEvent *)event; trace_event("ConfigureNotify [%dx%d+%d+%d]", cevent->width, cevent->height, cevent->x, cevent->y); break; default: trace_event("Event %d", event->type); break; } if (keymap_trace != CN) trace_event(" via %s -> %s(", keymap_trace, action_name(action)); else #endif /*]*/ trace_event(" -> %s(", action_name(action)); for (i = 0; i < *num_params; i++) { trace_event("%s\"%s\"", i ? ", " : "", scatv(params[i], pbuf, sizeof(pbuf))); } trace_event(")\n"); trace_rollover_check(); } #endif /*]*/ /* * Wrapper for calling an action internally. */ void action_internal(XtActionProc action, enum iaction cause, const char *parm1, const char *parm2) { Cardinal count = 0; String parms[2]; /* Duplicate the parms, because XtActionProc doesn't grok 'const'. */ if (parm1 != CN) { parms[0] = NewString(parm1); count++; if (parm2 != CN) { parms[1] = NewString(parm2); count++; } } ia_cause = cause; (*action)((Widget) NULL, (XEvent *) NULL, count ? parms : (String *) NULL, &count); /* Free the parm copies. */ switch (count) { case 2: Free(parms[1]); /* fall through... */ case 1: Free(parms[0]); break; default: break; } } ibm-3270-3.3.10ga4/s3270/mkversion.sh0000755000175000017500000000462111254565673016331 0ustar bastianbastian#! /bin/sh # # Copyright (c) 1999-2009, Paul Mattes. # Copyright (c) 2005, Don Russell. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor # the names of their contributors may be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Create version.o from version.txt #set -x # Ensure that 'date' emits 7-bit U.S. ASCII. LANG=C LC_ALL=C export LANG LC_ALL set -e . ./version.txt builddate=`date` sccsdate=`date +%Y/%m/%d` user=${LOGNAME-$USER} # Create an all numeric timestamp for rpqnames. # rpq.c will return this string of numbers in bcd format # It is OK to change the length (+ or -), but use # decimal (0-9) digits only. Length must be even number of digits. rpq_timestamp=`date +%Y%m%d%H%M%S` trap 'rm -f version.c' 0 1 2 15 cat <version.c char *build = "${2-x3270} v$version $builddate $user"; char *app_defaults_version = "$adversion"; static char sccsid[] = "@(#)${2-x3270} v$version $sccsdate $user"; const char *build_rpq_timestamp = "$rpq_timestamp"; const char *build_rpq_version = "$version"; EOF ${1-cc} -c version.c ibm-3270-3.3.10ga4/s3270/host.c0000644000175000017500000006224611254565704015100 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * host.c * This module handles the ibm_hosts file, connecting to and * disconnecting from hosts, and state changes on the host * connection. */ #include "globals.h" #include "appres.h" #include "resources.h" #include "actionsc.h" #include "hostc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utilc.h" #include "xioc.h" #include #define RECONNECT_MS 2000 /* 2 sec before reconnecting to host */ #define RECONNECT_ERR_MS 5000 /* 5 sec before reconnecting to host */ #define MAX_RECENT 5 enum cstate cstate = NOT_CONNECTED; Boolean std_ds_host = False; Boolean no_login_host = False; Boolean non_tn3270e_host = False; Boolean passthru_host = False; Boolean ssl_host = False; #define LUNAME_SIZE 16 char luname[LUNAME_SIZE+1]; char *connected_lu = CN; char *connected_type = CN; Boolean ever_3270 = False; char *current_host = CN; char *full_current_host = CN; unsigned short current_port; char *reconnect_host = CN; char *qualified_host = CN; struct host *hosts = (struct host *)NULL; static struct host *last_host = (struct host *)NULL; static Boolean auto_reconnect_inprogress = False; static int net_sock = -1; #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ static unsigned long reconnect_id = 0; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ static void save_recent(const char *); #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ static void try_reconnect(void); #endif /*]*/ static char * stoken(char **s) { char *r; char *ss = *s; if (!*ss) return NULL; r = ss; while (*ss && *ss != ' ' && *ss != '\t') ss++; if (*ss) { *ss++ = '\0'; while (*ss == ' ' || *ss == '\t') ss++; } *s = ss; return r; } /* * Read the host file */ void hostfile_init(void) { FILE *hf; char buf[1024]; static Boolean hostfile_initted = False; struct host *h; char *hostfile_name; if (hostfile_initted) return; hostfile_initted = True; hostfile_name = appres.hostsfile; if (hostfile_name == CN) hostfile_name = xs_buffer("%s/ibm_hosts", appres.conf_dir); else hostfile_name = do_subst(appres.hostsfile, True, True); hf = fopen(hostfile_name, "r"); if (hf != (FILE *)NULL) { while (fgets(buf, sizeof(buf), hf)) { char *s = buf; char *name, *entry_type, *hostname; char *slash; if (strlen(buf) > (unsigned)1 && buf[strlen(buf) - 1] == '\n') { buf[strlen(buf) - 1] = '\0'; } while (isspace(*s)) s++; if (!*s || *s == '#') continue; name = stoken(&s); entry_type = stoken(&s); hostname = stoken(&s); if (!name || !entry_type || !hostname) { popup_an_error("Bad %s syntax, entry skipped", ResHostsFile); continue; } h = (struct host *)Malloc(sizeof(*h)); if (!split_hier(NewString(name), &h->name, &h->parents)) { Free(h); continue; } h->hostname = NewString(hostname); /* * Quick syntax extension to allow the hosts file to * specify a port as host/port. */ if ((slash = strchr(h->hostname, '/'))) *slash = ':'; if (!strcmp(entry_type, "primary")) h->entry_type = PRIMARY; else h->entry_type = ALIAS; if (*s) h->loginstring = NewString(s); else h->loginstring = CN; h->prev = last_host; h->next = (struct host *)NULL; if (last_host) last_host->next = h; else hosts = h; last_host = h; } (void) fclose(hf); } else if (appres.hostsfile != CN) { popup_an_errno(errno, "Cannot open " ResHostsFile " '%s'", appres.hostsfile); } Free(hostfile_name); #if defined(X3270_DISPLAY) /*[*/ /* * Read the recent-connection file, and prepend it to the hosts list. */ save_recent(CN); #endif /*]*/ } /* * Look up a host in the list. Turns aliases into real hostnames, and * finds loginstrings. */ static int hostfile_lookup(const char *name, char **hostname, char **loginstring) { struct host *h; hostfile_init(); for (h = hosts; h != (struct host *)NULL; h = h->next) { if (h->entry_type == RECENT) continue; if (!strcmp(name, h->name)) { *hostname = h->hostname; if (h->loginstring != CN) { *loginstring = h->loginstring; } else { *loginstring = appres.login_macro; } return 1; } } return 0; } #if defined(LOCAL_PROCESS) /*[*/ /* Recognize and translate "-e" options. */ static const char * parse_localprocess(const char *s) { int sl = strlen(OptLocalProcess); if (!strncmp(s, OptLocalProcess, sl)) { if (s[sl] == ' ') return(s + sl + 1); else if (s[sl] == '\0') { char *r; r = getenv("SHELL"); if (r != CN) return r; else return "/bin/sh"; } } return CN; } #endif /*]*/ static char *pfxstr = "AaCcLlNnPpSs"; /* * A new hostname parser. A bit more general. * Allows backslashes to quote anything. * Allows [ ] to quote : and @ inside any name (LU, host or port). * * Because the syntax is so awful, it needs to be picked apart explicitly. * Returns 0 for success, -1 for syntax error. */ static int new_split_host(char *raw, char **lu, char **host, char **port, unsigned *prefixes) { char *start = raw; int sl = strlen(raw); char *s; char *uq = NULL; int uq_len = 0; char *qmap = NULL; char *rqmap; char *errmsg = "nonspecific"; int rc = -1; Boolean quoted = False; int bracketed = 0; int n_ch = 0; int n_at = 0; int n_colon = 0; char *part[3] = { NULL, NULL, NULL }; int part_ix = 0; char *pfx; *lu = NULL; *host = NULL; *port = NULL; *prefixes = 0; /* Trim leading and trailing blanks. */ while (sl && isspace(*start)) { start++; sl--; } while (sl && isspace(start[sl - 1])) sl--; if (!sl) { errmsg = "empty string"; goto done; } /* * 'start' now points to the start of the string, and sl is its length. */ /* * Create a bit-map of quoted characters. * This includes and character preceded by \, and any : or @ inside * unquoted [ and ]. * This can fail if an unquoted [ is found inside a [ ], or if an * unquoted [ is not terminated, or if whitespace is found. * Backslashes and unquoted square brackets are deleted at this point. * Leaves a filtered copy of the string in uq[]. */ uq = Malloc(sl + 1); qmap = Malloc(sl + 1); memset(qmap, ' ', sl); qmap[sl] = '\0'; rqmap = qmap; for (s = start; s - start < sl; s++) { if (isspace(*s)) { errmsg = "contains whitespace"; goto done; } if (quoted) { qmap[uq_len] = '+'; quoted = False; uq[uq_len++] = *s; continue; } else if (*s == '\\') { quoted = True; continue; } if (bracketed) { if (*s == ':' || *s == '@') qmap[uq_len] = '+'; /* add the character below */ else if (*s == '[') { errmsg = "nested '['"; goto done; } else if (*s == ']') { /* * What follows has to be the end of the * string, or an unquoted ':' or a '@'. */ if ((s - start) == sl - 1 || *(s + 1) == '@' || *(s + 1) == ':') bracketed = 0; else { errmsg = "text following ']'"; goto done; } continue; } } else if (*s == '[') { /* * Make sure that what came before is the beginning of * the string or an unquoted : or @. */ if (uq_len == 0 || (qmap[uq_len - 1] == ' ' && (uq[uq_len - 1] == ':' || uq[uq_len - 1] == '@'))) bracketed = 1; else { errmsg = "text preceding '['"; goto done; } continue; } uq[uq_len++] = *s; } if (quoted) { errmsg = "dangling '\\'"; goto done; } if (bracketed) { errmsg = "missing ']'"; goto done; } if (!uq_len) { errmsg = "empty hostname"; goto done; } uq[uq_len] = '\0'; /* Trim off prefixes. */ s = uq; while ((pfx = strchr(pfxstr, *s)) != NULL && qmap[(s + 1) - uq] == ' ' && *(s + 1) == ':') { *prefixes |= 1 << ((pfx - pfxstr) / 2); s += 2; rqmap += 2; } start = s; /* * Now check for syntax: [LUname@]hostname[:port] * So more than one @, more than one :, : before @, or no text before @ * or :, or no text after : are all syntax errors. * This also lets us figure out which elements are there. */ while (*s) { if (rqmap[s - start] == ' ') { if (*s == '@') { if (n_ch == 0) { errmsg = "empty LU name"; goto done; } if (n_colon > 0) { errmsg = "'@' after ':'"; goto done; } if (n_at > 0) { errmsg = "double '@'"; goto done; } n_at++; n_ch = 0; } else if (*s == ':') { if (n_ch == 0) { errmsg = "empty hostname"; goto done; } if (n_colon > 0) { errmsg = "double ':'"; goto done; } n_colon++; n_ch = 0; } else n_ch++; } else n_ch++; s++; } if (!n_ch) { if (n_colon) errmsg = "empty port"; else errmsg = "empty hostname"; goto done; } /* * The syntax is clean, and we know what parts there are. * Split them out. */ if (n_at) { *lu = Malloc(uq_len + 1); part[0] = *lu; } *host = Malloc(uq_len + 1); part[1] = *host; if (n_colon) { *port = Malloc(uq_len + 1); part[2] = *port; } s = start; n_ch = 0; while (*s) { if (rqmap[s - start] == ' ' && (*s == '@' || *s == ':')) { part[part_ix][n_ch] = '\0'; part_ix++; n_ch = 0; } else { while (part[part_ix] == NULL) part_ix++; part[part_ix][n_ch++] = *s; } s++; } part[part_ix][n_ch] = '\0'; /* Success! */ rc = 0; done: if (uq != NULL) Free(uq); if (qmap != NULL) Free(qmap); if (rc < 0) popup_an_error("Hostname syntax error: %s", errmsg); return rc; } /* * Strip qualifiers from a hostname. * Returns the hostname part in a newly-malloc'd string. * 'needed' is returned True if anything was actually stripped. * Returns NULL if there is a syntax error. */ static char * split_host(char *s, Boolean *ansi, Boolean *std_ds, Boolean *passthru, Boolean *non_e, Boolean *secure, Boolean *no_login, char *xluname, char **port, Boolean *needed) { char *lu; char *host; unsigned prefixes; Boolean *pfxptr[6]; int i; *needed = False; /* Call the sane, new version. */ if (new_split_host(s, &lu, &host, port, &prefixes) < 0) return NULL; else { if (lu) { strncpy(xluname, lu, LUNAME_SIZE); xluname[LUNAME_SIZE] = '\0'; } else *xluname = '\0'; pfxptr[0] = ansi; /* A: */ pfxptr[1] = no_login; /* C: */ pfxptr[2] = secure; /* L: */ pfxptr[3] = non_e; /* N: */ pfxptr[4] = passthru; /* P: */ pfxptr[5] = std_ds; /* S: */ for (i = 0; i < 6; i++) if (prefixes & (1 << i)) *pfxptr[i] = True; *needed = (strcmp(s, host) != 0); return host; } } /* * Network connect/disconnect operations, combined with X input operations. * * Returns 0 for success, -1 for error. * Sets 'reconnect_host', 'current_host' and 'full_current_host' as * side-effects. */ int host_connect(const char *n) { char nb[2048]; /* name buffer */ char *s; /* temporary */ const char *chost; /* to whom we will connect */ char *target_name; char *ps = CN; char *port = CN; Boolean resolving; Boolean pending; static Boolean ansi_host; const char *localprocess_cmd = NULL; Boolean has_colons = False; if (CONNECTED || auto_reconnect_inprogress) return 0; /* Skip leading blanks. */ while (*n == ' ') n++; if (!*n) { popup_an_error("Invalid (empty) hostname"); return -1; } /* Save in a modifiable buffer. */ (void) strcpy(nb, n); /* Strip trailing blanks. */ s = nb + strlen(nb) - 1; while (*s == ' ') *s-- = '\0'; /* Remember this hostname, as the last hostname we connected to. */ Replace(reconnect_host, NewString(nb)); #if defined(X3270_DISPLAY) /*[*/ /* Remember this hostname in the recent connection list and file. */ save_recent(nb); #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ if ((localprocess_cmd = parse_localprocess(nb)) != CN) { chost = localprocess_cmd; port = appres.port; } else #endif /*]*/ { Boolean needed; /* Strip off and remember leading qualifiers. */ if ((s = split_host(nb, &ansi_host, &std_ds_host, &passthru_host, &non_tn3270e_host, &ssl_host, &no_login_host, luname, &port, &needed)) == CN) return -1; /* Look up the name in the hosts file. */ if (!needed && hostfile_lookup(s, &target_name, &ps)) { /* * Rescan for qualifiers. * Qualifiers, LU names, and ports are all overridden * by the hosts file. */ Free(s); if (!(s = split_host(target_name, &ansi_host, &std_ds_host, &passthru_host, &non_tn3270e_host, &ssl_host, &no_login_host, luname, &port, &needed))) return -1; } chost = s; /* Default the port. */ if (port == CN) port = appres.port; } /* * Store the original name in globals, even if we fail the connect * later: * current_host is the hostname part, stripped of qualifiers, luname * and port number * full_current_host is the entire string, for use in reconnecting */ if (n != full_current_host) { Replace(full_current_host, NewString(n)); } Replace(current_host, CN); if (localprocess_cmd != CN) { if (full_current_host[strlen(OptLocalProcess)] != '\0') current_host = NewString(full_current_host + strlen(OptLocalProcess) + 1); else current_host = NewString("default shell"); } else { current_host = s; } has_colons = (strchr(chost, ':') != NULL); Replace(qualified_host, xs_buffer("%s%s%s%s:%s", ssl_host? "L:": "", has_colons? "[": "", chost, has_colons? "]": "", port)); /* Attempt contact. */ ever_3270 = False; net_sock = net_connect(chost, port, localprocess_cmd != CN, &resolving, &pending); if (net_sock < 0 && !resolving) { #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_DISPLAY) /*[*/ if (appres.once) { /* Exit when the error pop-up pops down. */ exiting = True; } else # endif /*]*/ if (appres.reconnect) { auto_reconnect_inprogress = True; reconnect_id = AddTimeOut(RECONNECT_ERR_MS, try_reconnect); } #endif /*]*/ /* Redundantly signal a disconnect. */ st_changed(ST_CONNECT, False); return -1; } /* Still thinking about it? */ if (resolving) { cstate = RESOLVING; st_changed(ST_RESOLVING, True); return 0; } /* Success. */ /* Set pending string. */ if (ps == CN) ps = appres.login_macro; if (ps != CN) login_macro(ps); /* Prepare Xt for I/O. */ x_add_input(net_sock); /* Set state and tell the world. */ if (pending) { cstate = PENDING; st_changed(ST_HALF_CONNECT, True); } else { cstate = CONNECTED_INITIAL; st_changed(ST_CONNECT, True); #if defined(X3270_DISPLAY) /*[*/ if (appres.reconnect && error_popup_visible()) popdown_an_error(); #endif /*]*/ } return 0; } #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ /* * Reconnect to the last host. */ static void host_reconnect(void) { if (auto_reconnect_inprogress || current_host == CN || CONNECTED || HALF_CONNECTED) return; if (host_connect(reconnect_host) >= 0) auto_reconnect_inprogress = False; } /* * Called from timer to attempt an automatic reconnection. */ static void try_reconnect(void) { auto_reconnect_inprogress = False; host_reconnect(); } /* * Cancel any pending reconnect attempt. */ void host_cancel_reconnect(void) { if (auto_reconnect_inprogress) { RemoveTimeOut(reconnect_id); auto_reconnect_inprogress = False; } } #endif /*]*/ void host_disconnect(Boolean failed) { if (CONNECTED || HALF_CONNECTED) { x_remove_input(); net_disconnect(); net_sock = -1; #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_DISPLAY) /*[*/ if (appres.once) { if (error_popup_visible()) { /* * If there is an error pop-up, exit when it * pops down. */ exiting = True; } else { /* Exit now. */ x3270_exit(0); return; } } else # endif /*]*/ if (appres.reconnect && !auto_reconnect_inprogress) { /* Schedule an automatic reconnection. */ auto_reconnect_inprogress = True; reconnect_id = AddTimeOut(failed? RECONNECT_ERR_MS: RECONNECT_MS, try_reconnect); } #endif /*]*/ /* * Remember a disconnect from ANSI mode, to keep screen tracing * in sync. */ #if defined(X3270_TRACE) /*[*/ if (IN_ANSI && toggled(SCREEN_TRACE)) trace_ansi_disc(); #endif /*]*/ cstate = NOT_CONNECTED; /* Propagate the news to everyone else. */ st_changed(ST_CONNECT, False); } } /* The host has entered 3270 or ANSI mode, or switched between them. */ void host_in3270(enum cstate new_cstate) { Boolean now3270 = (new_cstate == CONNECTED_3270 || new_cstate == CONNECTED_SSCP || new_cstate == CONNECTED_TN3270E); cstate = new_cstate; ever_3270 = now3270; st_changed(ST_3270_MODE, now3270); } void host_connected(void) { cstate = CONNECTED_INITIAL; st_changed(ST_CONNECT, True); #if defined(X3270_DISPLAY) /*[*/ if (appres.reconnect && error_popup_visible()) popdown_an_error(); #endif /*]*/ } /* Swap out net_sock. */ void host_newfd(int s) { /* Shut off the old. */ x_remove_input(); /* Turn on the new. */ net_sock = s; x_add_input(net_sock); } #if defined(X3270_DISPLAY) /*[*/ /* Comparison function for the qsort. */ static int host_compare(const void *e1, const void *e2) { const struct host *h1 = *(const struct host **)e1; const struct host *h2 = *(const struct host **)e2; int r; if (h1->connect_time > h2->connect_time) r = -1; else if (h1->connect_time < h2->connect_time) r = 1; else r = 0; #if defined(CFDEBUG) /*[*/ printf("%s %ld %d %s %ld\n", h1->name, h1->connect_time, r, h2->name, h2->connect_time); #endif /*]*/ return r; } #endif /*]*/ #if defined(CFDEBUG) /*[*/ static void dump_array(const char *when, struct host **array, int nh) { int i; printf("%s\n", when); for (i = 0; i < nh; i++) { printf(" %15s %ld\n", array[i]->name, array[i]->connect_time); } } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* Save the most recent host in the recent host list. */ static void save_recent(const char *hn) { char *lcf_name = CN; FILE *lcf = (FILE *)NULL; struct host *h; struct host *rest = (struct host *)NULL; int n_ent = 0; struct host *h_array[(MAX_RECENT * 2) + 1]; int nh = 0; int i, j; time_t t = time((time_t *)NULL); /* Allocate a new entry. */ if (hn != CN) { h = (struct host *)Malloc(sizeof(*h)); h->name = NewString(hn); h->parents = NULL; h->hostname = NewString(hn); h->entry_type = RECENT; h->loginstring = CN; h->connect_time = t; h_array[nh++] = h; } /* Put the existing entries into the array. */ for (h = hosts; h != (struct host *)NULL; h = h->next) { if (h->entry_type != RECENT) break; h_array[nh++] = h; } /* Save the ibm_hosts entries for later. */ rest = h; if (rest != (struct host *)NULL) rest->prev = (struct host *)NULL; /* * Read the last-connection file, to capture the any changes made by * other instances of x3270. */ if (appres.connectfile_name != CN && strcasecmp(appres.connectfile_name, "none")) { lcf_name = do_subst(appres.connectfile_name, True, True); lcf = fopen(lcf_name, "r"); } if (lcf != (FILE *)NULL) { char buf[1024]; while (fgets(buf, sizeof(buf), lcf) != CN) { int sl; time_t connect_time; char *ptr; /* Pick apart the entry. */ sl = strlen(buf); if (buf[sl - 1] == '\n') buf[sl-- - 1] = '\0'; if (!sl || buf[0] == '#' || (connect_time = strtoul(buf, &ptr, 10)) == 0L || ptr == buf || *ptr != ' ' || !*(ptr + 1)) continue; h = (struct host *)Malloc(sizeof(*h)); h->name = NewString(ptr + 1); h->parents = NULL; h->hostname = NewString(ptr + 1); h->entry_type = RECENT; h->loginstring = CN; h->connect_time = connect_time; h_array[nh++] = h; if (nh > (MAX_RECENT * 2) + 1) break; } fclose(lcf); } /* Sort the array, in reverse order by connect time. */ #if defined(CFDEBUG) /*[*/ dump_array("before", h_array, nh); #endif /*]*/ qsort(h_array, nh, sizeof(struct host *), host_compare); #if defined(CFDEBUG) /*[*/ dump_array("after", h_array, nh); #endif /*]*/ /* * Filter out duplicate host names, and limit the array to * MAX_RECENT entries total. */ hosts = (struct host *)NULL; last_host = (struct host *)NULL; for (i = 0; i < nh; i++) { h = h_array[i]; if (h == (struct host *)NULL) continue; h->next = (struct host *)NULL; if (last_host != (struct host *)NULL) last_host->next = h; h->prev = last_host; last_host = h; if (hosts == (struct host *)NULL) hosts = h; n_ent++; /* Zap the duplicates. */ for (j = i+1; j < nh; j++) { if (h_array[j] && (n_ent >= MAX_RECENT || !strcmp(h_array[i]->name, h_array[j]->name))) { #if defined(CFDEBUG) /*[*/ printf("%s is a dup of %s\n", h_array[j]->name, h_array[i]->name); #endif /*]*/ Free(h_array[j]->name); Free(h_array[j]->hostname); Free(h_array[j]); h_array[j] = (struct host *)NULL; } } } /* Re-attach the ibm_hosts entries to the end. */ if (rest != (struct host *)NULL) { if (last_host != (struct host *)NULL) { last_host->next = rest; } else { hosts = rest; } rest->prev = last_host; } /* If there's been a change, rewrite the file. */ if (hn != CN && appres.connectfile_name != CN && strcasecmp(appres.connectfile_name, "none")) { lcf = fopen(lcf_name, "w"); if (lcf != (FILE *)NULL) { fprintf(lcf, "# Created %s# by %s\n", ctime(&t), build); for (h = hosts; h != (struct host *)NULL; h = h->next) { if (h->entry_type != RECENT) break; (void) fprintf(lcf, "%lu %s\n", h->connect_time, h->name); } fclose(lcf); } } if (lcf_name != CN) Free(lcf_name); } #endif /*]*/ /* Support for state change callbacks. */ struct st_callback { struct st_callback *next; void (*func)(Boolean); }; static struct st_callback *st_callbacks[N_ST]; static struct st_callback *st_last[N_ST]; /* Register a function interested in a state change. */ void register_schange(int tx, void (*func)(Boolean)) { struct st_callback *st; st = (struct st_callback *)Malloc(sizeof(*st)); st->func = func; st->next = (struct st_callback *)NULL; if (st_last[tx] != (struct st_callback *)NULL) st_last[tx]->next = st; else st_callbacks[tx] = st; st_last[tx] = st; } /* Signal a state change. */ void st_changed(int tx, Boolean mode) { struct st_callback *st; for (st = st_callbacks[tx]; st != (struct st_callback *)NULL; st = st->next) { (*st->func)(mode); } } /* Explicit connect/disconnect actions. */ void Connect_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Connect_action, event, params, num_params); if (check_usage(Connect_action, *num_params, 1, 1) < 0) return; if (CONNECTED || HALF_CONNECTED) { popup_an_error("Already connected"); return; } (void) host_connect(params[0]); /* * If called from a script and the connection was successful (or * half-successful), pause the script until we are connected and * we have identified the host type. */ if (!w && (CONNECTED || HALF_CONNECTED)) sms_connect_wait(); } #if defined(X3270_MENUS) /*[*/ void Reconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Reconnect_action, event, params, num_params); if (check_usage(Reconnect_action, *num_params, 0, 0) < 0) return; if (CONNECTED || HALF_CONNECTED) { popup_an_error("Already connected"); return; } if (current_host == CN) { popup_an_error("No previous host to connect to"); return; } host_reconnect(); /* * If called from a script and the connection was successful (or * half-successful), pause the script until we are connected and * we have identified the host type. */ if (!w && (CONNECTED || HALF_CONNECTED)) sms_connect_wait(); } #endif /*]*/ void Disconnect_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Disconnect_action, event, params, num_params); if (check_usage(Disconnect_action, *num_params, 0, 0) < 0) return; host_disconnect(False); } ibm-3270-3.3.10ga4/s3270/glue.c0000644000175000017500000011252011254565704015046 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * glue.c * A displayless 3270 Terminal Emulator * Glue for missing parts. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "readresc.h" #include "screenc.h" #include "selectc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include "xioc.h" #if defined(_WIN32) /*[*/ #include #include "winversc.h" #endif /*]*/ extern void usage(char *); #define LAST_ARG "--" #if defined(C3270) /*[*/ # if defined(WC3270) /*[*/ # define SESSION_SFX ".wc3270" # define SESSION_SSFX ".wc3" # else /*][*/ # define SESSION_SFX ".c3270" # endif /*]*/ #elif defined(S3270) /*[*/ # if defined(WS3270) /*[*/ # define SESSION_SFX ".ws3270" # define SESSION_SSFX ".ws3" # else /*][*/ # define SESSION_SFX ".s3270" # endif /*]*/ #elif defined(TCL3270) /*[*/ # define SESSION_SFX ".tcl3270" #endif /*]*/ #define SESSION_SFX_LEN (int)(sizeof(SESSION_SFX) - 1) #if defined(_WIN32) /*[*/ # define SESSION_SSFX_LEN (int)(sizeof(SESSION_SSFX) - 1) #endif /*]*/ #if defined(C3270) /*[*/ extern Boolean merge_profile(void); extern Boolean any_error_output; #endif /*]*/ /* Statics */ static void no_minus(const char *arg); #if defined(LOCAL_PROCESS) /*[*/ static void parse_local_process(int *argcp, const char **argv, const char **cmds); #endif /*]*/ static void set_appres_defaults(void); static void parse_options(int *argcp, const char **argv); static void parse_set_clear(int *argcp, const char **argv); static int parse_model_number(char *m); /* Globals */ const char *programname; char full_model_name[13] = "IBM-"; char *model_name = &full_model_name[4]; AppRes appres; int children = 0; Boolean exiting = False; char *command_string = CN; static Boolean sfont = False; Boolean *standard_font = &sfont; char *profile_name = CN; char *profile_path = CN; struct toggle_name toggle_names[] = { #if defined(C3270) /*[*/ { ResMonoCase, MONOCASE }, #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { ResDsTrace, DS_TRACE }, #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResLineWrap, LINE_WRAP }, #endif /*]*/ { ResBlankFill, BLANK_FILL }, #if defined(X3270_TRACE) /*[*/ { ResScreenTrace, SCREEN_TRACE }, { ResEventTrace, EVENT_TRACE }, #endif /*]*/ #if defined(C3270) /*[*/ { ResMarginedPaste, MARGINED_PASTE }, #endif /*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ { ResAidWait, AID_WAIT }, #endif /*]*/ #if defined(C3270) /*[*/ { ResUnderscore, UNDERSCORE }, #endif /*]*/ { NULL, 0 } }; int parse_command_line(int argc, const char **argv, const char **cl_hostname) { int cl, i; int ovc, ovr; int hn_argc; int model_number; int sl; int xcmd_len = 0; char *xcmd; int xargc; const char **xargv; Boolean read_session_or_profile = False; /* Figure out who we are */ #if defined(_WIN32) /*[*/ programname = strrchr(argv[0], '\\'); #else /*][*/ programname = strrchr(argv[0], '/'); #endif /*]*/ if (programname) ++programname; else programname = argv[0]; /* Save the command string for tracing purposes. */ cl = strlen(programname); for (i = 0; i < argc; i++) { cl += 1 + strlen(argv[i]); } cl++; command_string = Malloc(cl); (void) strcpy(command_string, programname); for (i = 0; i < argc; i++) { (void) strcat(strcat(command_string, " "), argv[i]); } /* * Save the command-line options so they can be reapplied after * the session file or profile has been read in. */ xcmd_len = 0; for (i = 0; i < argc; i++) xcmd_len += strlen(argv[i]) + 1; xcmd = Malloc(xcmd_len + 1); xargv = (const char **)Malloc((argc + 1) * sizeof(char *)); xcmd_len = 0; for (i = 0; i < argc; i++) { xargv[i] = xcmd + xcmd_len; (void) strcpy(xcmd + xcmd_len, argv[i]); xcmd_len += strlen(argv[i]) + 1; } xargv[i] = CN; *(xcmd + xcmd_len) = '\0'; xargc = argc; #if defined(LOCAL_PROCESS) /*[*/ /* Pick out the -e option. */ parse_local_process(&argc, argv, cl_hostname); #endif /*]*/ /* Set the defaults. */ set_appres_defaults(); /* Parse command-line options. */ parse_options(&argc, argv); /* Pick out the remaining -set and -clear toggle options. */ parse_set_clear(&argc, argv); /* Now figure out if there's a hostname. */ for (hn_argc = 1; hn_argc < argc; hn_argc++) { if (!strcmp(argv[hn_argc], LAST_ARG)) break; } /* Verify command-line syntax. */ switch (hn_argc) { case 1: break; case 2: no_minus(argv[1]); *cl_hostname = argv[1]; break; case 3: no_minus(argv[1]); no_minus(argv[2]); *cl_hostname = xs_buffer("%s:%s", argv[1], argv[2]); break; default: usage("Too many command-line arguments"); break; } /* Delete the host name and any "--". */ if (argv[hn_argc] != CN && !strcmp(argv[hn_argc], LAST_ARG)) hn_argc++; if (hn_argc > 1) { for (i = 1; i < argc - hn_argc + 2; i++) { argv[i] = argv[i + hn_argc - 1]; } } /* Merge in the session. */ if (*cl_hostname != CN && (((sl = strlen(*cl_hostname)) > SESSION_SFX_LEN && !strcasecmp(*cl_hostname + sl - SESSION_SFX_LEN, SESSION_SFX)) #if defined(_WIN32) /*[*/ || ((sl = strlen(*cl_hostname)) > SESSION_SSFX_LEN && !strcasecmp(*cl_hostname + sl - SESSION_SSFX_LEN, SESSION_SSFX)) #endif /*]*/ )) { const char *pname; if (read_resource_file(*cl_hostname, True) < 0) x3270_exit(1); read_session_or_profile = True; pname = strrchr(*cl_hostname, '\\'); if (pname != CN) pname++; else pname = *cl_hostname; profile_name = NewString(pname); Replace(profile_path, NewString(profile_name)); sl = strlen(profile_name); if (sl > SESSION_SFX_LEN && !strcasecmp(profile_name + sl - SESSION_SFX_LEN, SESSION_SFX)) { profile_name[sl - SESSION_SFX_LEN] = '\0'; #if defined(_WIN32) /*[*/ } else if (sl > SESSION_SSFX_LEN && !strcasecmp(profile_name + sl - SESSION_SSFX_LEN, SESSION_SSFX)) { profile_name[sl - SESSION_SSFX_LEN] = '\0'; #endif /*]*/ } *cl_hostname = appres.hostname; /* might be NULL */ #if defined(C3270) && !defined(_WIN32) /*[*/ } else { /* Read in the profile only if there's no sesson file. */ read_session_or_profile = merge_profile(); #endif /*]*/ } /* * Now parse the command-line arguments again, so they take * precedence over the session file or profile. */ if (read_session_or_profile) { parse_options(&xargc, xargv); parse_set_clear(&xargc, xargv); } /* Can't free xcmd, parts of it are still in use. */ Free((char *)xargv); /* * All right, we have all of the resources defined. * Sort out the contradictory and implicit settings. */ /* * Sort out model and color modes, based on the model number resource. */ model_number = parse_model_number(appres.model); if (model_number < 0) { popup_an_error("Invalid model number: %s", appres.model); model_number = 0; } if (!model_number) { #if defined(RESTRICT_3279) /*[*/ model_number = 3; #else /*][*/ model_number = 4; #endif /*]*/ } #if defined(C3270) && !defined(_WIN32) /*[*/ if (appres.mono) appres.m3279 = False; #endif /*]*/ if (!appres.extended) appres.oversize = CN; #if defined(RESTRICT_3279) /*[*/ if (appres.m3279 && model_number == 4) model_number = 3; #endif /*]*/ ovc = 0; ovr = 0; if (appres.extended && appres.oversize != CN) { #if defined(C3270) /*[*/ if (!strcasecmp(appres.oversize, "auto")) { ovc = -1; ovr = -1; } else #endif /*]*/ { int x_ovc, x_ovr; char junk; if (sscanf(appres.oversize, "%dx%d%c", &x_ovc, &x_ovr, &junk) == 2) { ovc = x_ovc; ovr = x_ovr; } } } set_rows_cols(model_number, ovc, ovr); if (appres.termname != CN) termtype = appres.termname; else termtype = full_model_name; if (appres.apl_mode) appres.charset = Apl; if (*cl_hostname == CN) appres.once = False; if (appres.conf_dir == CN) appres.conf_dir = LIBX3270DIR; return argc; } static void no_minus(const char *arg) { if (arg[0] == '-') usage(xs_buffer("Unknown or incomplete option: %s", arg)); } #if defined(LOCAL_PROCESS) /*[*/ /* * Pick out the -e option. */ static void parse_local_process(int *argcp, const char **argv, const char **cmds) { int i, j; int e_len = -1; char *cmds_buf = NULL; for (i = 1; i < *argcp; i++) { if (strcmp(argv[i], OptLocalProcess)) continue; /* Matched. Copy 'em. */ e_len = strlen(OptLocalProcess) + 1; for (j = i+1; j < *argcp; j++) { e_len += 1 + strlen(argv[j]); } e_len++; cmds_buf = Malloc(e_len); (void) strcpy(cmds_buf, OptLocalProcess); for (j = i+1; j < *argcp; j++) { (void) strcat(strcat(cmds_buf, " "), argv[j]); } /* Stamp out the remaining args. */ *argcp = i; argv[i] = CN; break; } *cmds = cmds_buf; } #endif /*]*/ static void set_appres_defaults(void) { /* Set the defaults. */ #if defined(C3270) && !defined(_WIN32) /*[*/ appres.mono = False; #endif /*]*/ appres.extended = True; #if defined(C3270) /*[*/ appres.m3279 = True; #else /*][*/ appres.m3279 = False; #endif /*]*/ appres.modified_sel = False; appres.apl_mode = False; #if defined(C3270) || defined(TCL3270) /*[*/ appres.scripted = False; #else /*][*/ appres.scripted = True; #endif /*]*/ appres.numeric_lock = False; appres.secure = False; #if defined(C3270) /*[*/ appres.oerr_lock = True; #else /*][*/ appres.oerr_lock = False; #endif /*]*/ appres.typeahead = True; appres.debug_tracing = True; #if defined(C3270) /*[*/ appres.compose_map = "latin1"; appres.do_confirms = True; appres.reconnect = False; #endif /*]*/ appres.model = "4"; appres.hostsfile = CN; appres.port = "telnet"; #if !defined(_WIN32) /*[*/ appres.charset = "bracket"; #else /*][*/ if (is_nt) appres.charset = "bracket"; else appres.charset = "bracket437"; #endif /*]*/ appres.termname = CN; appres.macros = CN; #if defined(X3270_TRACE) && !defined(_WIN32) /*[*/ appres.trace_dir = "/tmp"; #endif /*]*/ #if defined(WC3270) /*[*/ appres.trace_monitor = True; #endif /*]*/ appres.oversize = CN; #if defined(C3270) /*[*/ appres.meta_escape = "auto"; appres.curses_keypad = True; appres.cbreak_mode = False; appres.ascii_box_draw = False; # if defined(C3270) && !defined(_WIN32) /*[*/ appres.mouse = True; # endif /*]*/ #if defined(CURSES_WIDE) /*[*/ appres.acs = True; #endif /*]*/ #endif /*]*/ #if defined(X3270_ANSI) /*[*/ appres.icrnl = True; appres.inlcr = False; appres.onlcr = True; appres.erase = "^H"; appres.kill = "^U"; appres.werase = "^W"; appres.rprnt = "^R"; appres.lnext = "^V"; appres.intr = "^C"; appres.quit = "^\\"; appres.eof = "^D"; #endif /*]*/ appres.unlock_delay = True; appres.unlock_delay_ms = 350; #if defined(X3270_FT) /*[*/ appres.dft_buffer_size = DFT_BUF; #endif /*]*/ #if defined(C3270) /*[*/ appres.toggle[CURSOR_POS].value = True; #endif /*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ appres.toggle[AID_WAIT].value = True; #endif /*]*/ #if defined(C3270) && defined(_WIN32) /*[*/ appres.toggle[UNDERSCORE].value = True; #endif /*]*/ #if defined(C3270) && defined(X3270_SCRIPT) /*[*/ appres.plugin_command = "x3270hist.pl"; #endif /*]*/ #if defined(WS3270) /*[*/ appres.local_cp = GetACP(); #endif /*]*/ } #if defined (C3270) /*[*/ # if defined(WIN32) /*[*/ # define APPNAME "wc3270" # else /*][*/ # define APPNAME "c3270" # endif /*]*/ #elif defined(S3270) /*[*/ # if defined(WIN32) /*[*/ # define APPNAME "ws3270" # else /*][*/ # define APPNAME "s3270" # endif /*]*/ #elif defined(TCL3270) /*[*/ # define APPNAME "tcl3270" #else # error "Unknwon application" #endif /*]*/ #if defined(_WIN32) /*[*/ # define PR3287_NAME "wpr3287" #else /*][*/ # define PR3287_NAME "pr3287" #endif /*]*/ #define offset(n) (void *)&appres.n #define toggle_offset(index) offset(toggle[index].value) static struct { const char *name; enum { OPT_BOOLEAN, OPT_STRING, OPT_XRM, OPT_SKIP2, OPT_NOP, OPT_INT, OPT_V, OPT_DONE } type; Boolean flag; const char *res_name; void *aoff; char *help_opts; char *help_text; } opts[] = { #if defined(C3270) /*[*/ { OptAllBold, OPT_BOOLEAN, True, ResAllBold, offset(all_bold_on), CN, "Display all text in bold" }, #endif /*]*/ #if defined(C3270) && !defined(_WIN32) /*[*/ { OptAltScreen,OPT_STRING, False, ResAltScreen, offset(altscreen), "", "Specify string to switch terminal from 80-column mode to 132-column mode" }, #endif /*]*/ #if defined(WC3270) /*[*/ { OptAutoShortcut,OPT_BOOLEAN, True, ResAutoShortcut,offset(auto_shortcut), CN, "Run in auto-shortcut mode" }, #endif /*]*/ { OptAplMode, OPT_BOOLEAN, True, ResAplMode, offset(apl_mode), CN, "Turn on APL mode" }, #if defined(C3270) && !defined(_WIN32) /*[*/ { OptCbreak, OPT_BOOLEAN, True, ResCbreak, offset(cbreak_mode), CN, "Force terminal CBREAK mode" }, #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ { OptCertFile, OPT_STRING, False, ResCertFile, offset(cert_file), "", "Specify OpenSSL certificate file" }, #endif /*]*/ { OptCharset, OPT_STRING, False, ResCharset, offset(charset), "", "Use host ECBDIC character set (code page) "}, { OptClear, OPT_SKIP2, False, NULL, NULL, "", "Turn on " }, #if defined(C3270) && !defined(_WIN32) /*[*/ { OptDefScreen,OPT_STRING, False, ResDefScreen, offset(defscreen), "", "Specify string to switch terminal from 80-column mode to 132-column mode" }, #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ { OptLocalProcess,OPT_SKIP2,False, NULL, NULL, " [...]", "Run instead of making TELNET conection" }, #endif /*]*/ { OptHostsFile,OPT_STRING, False, ResHostsFile, offset(hostsfile), "", "Use as the ibm_hosts file" }, #if defined(C3270) /*[*/ { OptKeymap, OPT_STRING, False, ResKeymap, offset(key_map), "[,...]", "Keyboard map name(s)" }, #endif /*]*/ #if defined(WS3270) /*[*/ { OptLocalCp, OPT_INT, False, ResLocalCp, offset(local_cp), "", "Use instead of ANSI codepage for local I/O" }, #endif /*]*/ { OptModel, OPT_STRING, False, ResModel, offset(model), "[327{8,9}-]", "Emulate a 3278 or 3279 model " }, #if defined(C3270) /*[*/ # if !defined(_WIN32) /*[*/ { OptMono, OPT_BOOLEAN, True, ResMono, offset(mono), CN, "Do not use terminal color capabilities" }, # endif /*]*/ #if defined(WC3270) /*[*/ { OptNoAutoShortcut,OPT_BOOLEAN,False,ResAutoShortcut,offset(auto_shortcut), CN, "Do not run in auto-shortcut mode" }, #endif /*]*/ { OptNoPrompt, OPT_BOOLEAN, True, ResNoPrompt, offset(no_prompt), CN, "Suppress interactive mode (" APPNAME "> prompt)" }, #endif /*]*/ { OptOnce, OPT_BOOLEAN, True, ResOnce, offset(once), CN, "Exit as soon as the host disconnects" }, { OptOversize, OPT_STRING, False, ResOversize, offset(oversize), "x", "Specify larger screen" }, { OptPort, OPT_STRING, False, ResPort, offset(port), "", "Specify default TELNET port" }, #if defined(C3270) /*[*/ { OptPrinterLu,OPT_STRING, False, ResPrinterLu, offset(printer_lu), "", "Automatically start a "PR3287_NAME" printer session to " }, { OptReconnect,OPT_BOOLEAN, True, ResReconnect, offset(reconnect), CN, "Reconnect to host as soon as it disconnects" }, #if !defined(_WIN32) /*[*/ { OptReverseVideo,OPT_BOOLEAN,True,ResReverseVideo,offset(reverse_video), CN, "Switch to black-on-white mode" }, #endif /*]*/ #endif /*]*/ { OptProxy, OPT_STRING, False, ResProxy, offset(proxy), ":[:]", "Secify proxy type and server" }, #if defined(S3270) /*[*/ { OptScripted, OPT_NOP, False, ResScripted, NULL, CN, "Turn on scripting" }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { OptScriptPort,OPT_INT, True, ResScriptPort, offset(script_port), "", "TCP port to listen on for script commands" }, #endif /*]*/ #if defined(C3270) /*[*/ { OptSecure, OPT_BOOLEAN, True, ResSecure, offset(secure), CN, "Restrict potentially-destructive user actions" }, #endif /*]*/ { OptSet, OPT_SKIP2, False, NULL, NULL, "", "Turn on " }, #if defined(X3270_SCRIPT) /*[*/ { OptSocket, OPT_BOOLEAN, True, ResSocket, offset(socket), CN, "Create socket for script control" }, #endif /*]*/ { OptTermName, OPT_STRING, False, ResTermName, offset(termname), "", "Send as TELNET terminal name" }, #if defined(WC3270) /*[*/ { OptTitle, OPT_STRING, False, ResTitle, offset(title), "", "Set window title to " }, #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { OptDsTrace, OPT_BOOLEAN, True, ResDsTrace, toggle_offset(DS_TRACE), CN, "Enable tracing" }, { OptTraceFile,OPT_STRING, False, ResTraceFile, offset(trace_file), "", "Write traces to " }, { OptTraceFileSize,OPT_STRING,False,ResTraceFileSize,offset(trace_file_size), "[KM]", "Limit trace file to bytes" }, #endif /*]*/ { OptV, OPT_V, False, NULL, NULL, CN, "Display build options and character sets" }, { OptVersion, OPT_V, False, NULL, NULL, CN, "Display build options and character sets" }, { "-xrm", OPT_XRM, False, NULL, NULL, "'" APPNAME ".: '", "Set to " }, { LAST_ARG, OPT_DONE, False, NULL, NULL, CN, "Terminate argument list" }, { CN, OPT_SKIP2, False, NULL, NULL, CN, CN } }; /* * Pick out command-line options and set up appres. */ static void parse_options(int *argcp, const char **argv) { int i, j; int argc_out = 0; const char **argv_out = (const char **) Malloc((*argcp + 1) * sizeof(char *)); /* Parse the command-line options. */ argv_out[argc_out++] = argv[0]; for (i = 1; i < *argcp; i++) { for (j = 0; opts[j].name != CN; j++) { if (!strcmp(argv[i], opts[j].name)) break; } if (opts[j].name == CN) { argv_out[argc_out++] = argv[i]; continue; } switch (opts[j].type) { case OPT_BOOLEAN: *(Boolean *)opts[j].aoff = opts[j].flag; if (opts[j].res_name != CN) add_resource(NewString(opts[j].name), opts[j].flag? "True": "False"); break; case OPT_STRING: if (i == *argcp - 1) /* missing arg */ continue; *(const char **)opts[j].aoff = argv[++i]; if (opts[j].res_name != CN) add_resource(NewString(opts[j].res_name), NewString(argv[i])); break; case OPT_XRM: if (i == *argcp - 1) /* missing arg */ continue; parse_xrm(argv[++i], "-xrm"); break; case OPT_SKIP2: argv_out[argc_out++] = argv[i++]; if (i < *argcp) argv_out[argc_out++] = argv[i]; break; case OPT_NOP: break; case OPT_INT: if (i == *argcp - 1) /* missing arg */ continue; *(int *)opts[j].aoff = atoi(argv[++i]); if (opts[j].res_name != CN) add_resource(NewString(opts[j].name), NewString(argv[i])); break; case OPT_V: dump_version(); break; case OPT_DONE: while (i < *argcp) argv_out[argc_out++] = argv[i++]; break; } } *argcp = argc_out; argv_out[argc_out] = CN; (void) memcpy((char *)argv, (char *)argv_out, (argc_out + 1) * sizeof(char *)); Free((char *)argv_out); #if defined(X3270_TRACE) /*[*/ /* One isn't very useful without the other. */ if (appres.toggle[DS_TRACE].value) appres.toggle[EVENT_TRACE].value = True; #endif /*]*/ } /* Disply command-line help. */ void cmdline_help (Boolean as_action) { int i; for (i = 0; opts[i].name != CN; i++) { if (as_action) { action_output(" %s%s%s", opts[i].name, opts[i].help_opts? " ": "", opts[i].help_opts? opts[i].help_opts: ""); action_output(" %s", opts[i].help_text); } else fprintf(stderr, " %s%s%s\n %s\n", opts[i].name, opts[i].help_opts? " ": "", opts[i].help_opts? opts[i].help_opts: "", opts[i].help_text); } } /* * Pick out -set and -clear toggle options. */ static void parse_set_clear(int *argcp, const char **argv) { int i, j; int argc_out = 0; const char **argv_out = (const char **) Malloc((*argcp + 1) * sizeof(char *)); argv_out[argc_out++] = argv[0]; for (i = 1; i < *argcp; i++) { Boolean is_set = False; if (!strcmp(argv[i], OptSet)) is_set = True; else if (strcmp(argv[i], OptClear)) { argv_out[argc_out++] = argv[i]; continue; } if (i == *argcp - 1) /* missing arg */ continue; /* Delete the argument. */ i++; for (j = 0; toggle_names[j].name != NULL; j++) if (!strcmp(argv[i], toggle_names[j].name)) { appres.toggle[toggle_names[j].index].value = is_set; break; } if (toggle_names[j].name == NULL) usage("Unknown toggle name"); } *argcp = argc_out; argv_out[argc_out] = CN; (void) memcpy((char *)argv, (char *)argv_out, (argc_out + 1) * sizeof(char *)); Free((char *)argv_out); } /* * Parse the model number. * Returns -1 (error), 0 (default), or the specified number. */ static int parse_model_number(char *m) { int sl; int n; sl = strlen(m); /* An empty model number is no good. */ if (!sl) { return 0; } if (sl > 1) { /* * If it's longer than one character, it needs to start with * '327[89]', and it sets the m3279 resource. */ if (!strncmp(m, "3278", 4)) { appres.m3279 = False; } else if (!strncmp(m, "3279", 4)) { appres.m3279 = True; } else { return -1; } m += 4; sl -= 4; /* Check more syntax. -E is allowed, but ignored. */ switch (m[0]) { case '\0': /* Use default model number. */ return 0; case '-': /* Model number specified. */ m++; sl--; break; default: return -1; } switch (sl) { case 1: /* n */ break; case 3: /* n-E */ if (strcasecmp(m + 1, "-E")) { return -1; } break; default: return -1; } } /* Check the numeric model number. */ n = atoi(m); if (n >= 2 && n <= 5) { return n; } else { return -1; } } /* * Parse '-xrm' options. * Understands only: * {c,s,tcl}3270.: value * Asterisks and class names need not apply. */ static struct { const char *name; void *address; enum resource_type { XRM_STRING, XRM_BOOLEAN, XRM_INT } type; } resources[] = { #if defined(C3270) /*[*/ { ResAllBold, offset(all_bold), XRM_STRING }, { ResAltScreen, offset(altscreen), XRM_STRING }, #endif /*]*/ #if defined(WC3270) /*[*/ { ResAutoShortcut,offset(auto_shortcut),XRM_BOOLEAN }, #endif /*]*/ { ResBsdTm, offset(bsd_tm), XRM_BOOLEAN }, #if defined(HAVE_LIBSSL) /*[*/ { ResCertFile, offset(cert_file), XRM_STRING }, #endif /*]*/ { ResCharset, offset(charset), XRM_STRING }, { ResColor8, offset(color8), XRM_BOOLEAN }, #if defined(TCL3270) /*[*/ { ResCommandTimeout, offset(command_timeout), XRM_INT }, #endif /*]*/ { ResConfDir, offset(conf_dir), XRM_STRING }, #if defined(X3270_DBCS) /*[*/ { ResDbcsCgcsgid, offset(dbcs_cgcsgid), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResDefScreen, offset(defscreen), XRM_STRING }, #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResEof, offset(eof), XRM_STRING }, { ResErase, offset(erase), XRM_STRING }, #endif /*]*/ { ResExtended, offset(extended), XRM_BOOLEAN }, #if defined(X3270_FT) /*[*/ { ResDftBufferSize,offset(dft_buffer_size),XRM_INT }, #endif /*]*/ { ResHostname, offset(hostname), XRM_STRING }, { ResHostsFile, offset(hostsfile), XRM_STRING }, #if defined(X3270_ANSI) /*[*/ { ResIcrnl, offset(icrnl), XRM_BOOLEAN }, { ResInlcr, offset(inlcr), XRM_BOOLEAN }, { ResOnlcr, offset(onlcr), XRM_BOOLEAN }, { ResIntr, offset(intr), XRM_STRING }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { ResPluginCommand, offset(plugin_command), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResIdleCommand,offset(idle_command), XRM_STRING }, { ResIdleCommandEnabled,offset(idle_command_enabled), XRM_BOOLEAN }, { ResIdleTimeout,offset(idle_timeout), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResKeymap, offset(key_map), XRM_STRING }, { ResMetaEscape,offset(meta_escape), XRM_STRING }, { ResCursesKeypad,offset(curses_keypad),XRM_BOOLEAN }, { ResCbreak, offset(cbreak_mode), XRM_BOOLEAN }, { ResAsciiBoxDraw,offset(ascii_box_draw), XRM_BOOLEAN }, #if defined(CURSES_WIDE) /*[*/ { ResAcs, offset(acs), XRM_BOOLEAN }, #endif /*]*/ #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResKill, offset(kill), XRM_STRING }, { ResLnext, offset(lnext), XRM_STRING }, #endif /*]*/ #if defined(WS3270) /*[*/ { ResLocalCp, offset(local_cp), XRM_INT }, #endif /*]*/ { ResLoginMacro,offset(login_macro), XRM_STRING }, { ResM3279, offset(m3279), XRM_BOOLEAN }, { ResModel, offset(model), XRM_STRING }, { ResModifiedSel, offset(modified_sel), XRM_BOOLEAN }, #if defined(C3270) /*[*/ # if !defined(_WIN32) /*[*/ { ResMono, offset(mono), XRM_BOOLEAN }, { ResMouse, offset(mouse), XRM_BOOLEAN }, # endif /*]*/ { ResNoPrompt, offset(no_prompt), XRM_BOOLEAN }, #endif /*]*/ { ResNumericLock, offset(numeric_lock), XRM_BOOLEAN }, { ResOerrLock, offset(oerr_lock), XRM_BOOLEAN }, { ResOversize, offset(oversize), XRM_STRING }, { ResPort, offset(port), XRM_STRING }, #if defined(C3270) /*[*/ { ResPrinterLu, offset(printer_lu), XRM_STRING }, #endif /*]*/ { ResProxy, offset(proxy), XRM_STRING }, #if defined(X3270_ANSI) /*[*/ { ResQuit, offset(quit), XRM_STRING }, { ResRprnt, offset(rprnt), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResReconnect, offset(reconnect), XRM_BOOLEAN }, #if !defined(_WIN32) /*[*/ { ResReverseVideo,offset(reverse_video),XRM_BOOLEAN }, #endif /*]*/ #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { ResScreenTraceFile,offset(screentrace_file),XRM_STRING }, #endif /*]*/ { ResSecure, offset(secure), XRM_BOOLEAN }, { ResSbcsCgcsgid, offset(sbcs_cgcsgid), XRM_STRING }, #if defined(X3270_SCRIPT) /*[*/ { ResScriptPort,offset(script_port), XRM_INT }, #endif /*]*/ { ResTermName, offset(termname), XRM_STRING }, #if defined(WC3270) /*[*/ { ResTitle, offset(title), XRM_STRING }, #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { ResTraceDir, offset(trace_dir), XRM_STRING }, { ResTraceFile, offset(trace_file), XRM_STRING }, { ResTraceFileSize,offset(trace_file_size),XRM_STRING }, #if defined(WC3270) /*[*/ { ResTraceMonitor,offset(trace_monitor),XRM_BOOLEAN }, #endif /*]*/ #endif /*]*/ { ResTypeahead, offset(typeahead), XRM_BOOLEAN }, { ResUnlockDelay,offset(unlock_delay), XRM_BOOLEAN }, { ResUnlockDelayMs,offset(unlock_delay_ms),XRM_INT }, #if defined(WC3270) /*[*/ { ResVisualBell,offset(visual_bell), XRM_BOOLEAN }, #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResWerase, offset(werase), XRM_STRING }, #endif /*]*/ { CN, 0, XRM_STRING } }; /* * Compare two strings, allowing the second to differ by uppercasing the * first character of the second. */ static int strncapcmp(const char *known, const char *unknown, unsigned unk_len) { if (unk_len != strlen(known)) return -1; if (!strncmp(known, unknown, unk_len)) return 0; if (unk_len > 1 && unknown[0] == toupper(known[0]) && !strncmp(known + 1, unknown + 1, unk_len - 1)) return 0; return -1; } #if defined(C3270) /*[*/ struct host_color host_color[] = { { "NeutralBlack", HOST_COLOR_NEUTRAL_BLACK }, { "Blue", HOST_COLOR_BLUE }, { "Red", HOST_COLOR_RED }, { "Pink", HOST_COLOR_PINK }, { "Green", HOST_COLOR_GREEN }, { "Turquoise", HOST_COLOR_TURQUOISE }, { "Yellow", HOST_COLOR_YELLOW }, { "NeutralWhite", HOST_COLOR_NEUTRAL_WHITE }, { "Black", HOST_COLOR_BLACK }, { "DeepBlue", HOST_COLOR_DEEP_BLUE }, { "Orange", HOST_COLOR_ORANGE }, { "Purple", HOST_COLOR_PURPLE }, { "PaleGreen", HOST_COLOR_PALE_GREEN }, { "PaleTurquoise", HOST_COLOR_PALE_TURQUOISE }, { "Grey", HOST_COLOR_GREY }, { "Gray", HOST_COLOR_GREY }, /* alias */ { "White", HOST_COLOR_WHITE }, { CN, 0 } }; /* * Validate a resource that is fetched explicitly, rather than via appres. */ static int valid_explicit(const char *resname, unsigned len) { static struct { char *name; enum { V_FLAT, V_WILD, V_COLOR } type; } explicit_resources[] = { { ResKeymap, V_WILD }, { ResAssocCommand, V_FLAT }, { ResLuCommandLine, V_FLAT }, #if defined(_WIN32) /*[*/ { ResPrinterCodepage, V_FLAT }, { ResPrinterCommand, V_FLAT }, { ResPrinterName, V_FLAT }, { ResPrintTextFont, V_FLAT }, { ResPrintTextSize, V_FLAT }, { ResHostColorForDefault, V_FLAT }, { ResHostColorForIntensified, V_FLAT }, { ResHostColorForProtected, V_FLAT }, { ResHostColorForProtectedIntensified,V_FLAT }, { ResConsoleColorForHostColor, V_COLOR }, #else /*][*/ { ResPrintTextCommand, V_FLAT }, { ResCursesColorForDefault, V_FLAT }, { ResCursesColorForIntensified, V_FLAT }, { ResCursesColorForProtected, V_FLAT }, { ResCursesColorForProtectedIntensified,V_FLAT }, { ResCursesColorForHostColor, V_COLOR }, #endif /*]*/ { NULL, V_WILD } }; int i; int j; for (i = 0; explicit_resources[i].name != CN; i++) { unsigned sl = strlen(explicit_resources[i].name); switch (explicit_resources[i].type) { case V_FLAT: /* Exact match. */ if (len == sl && !strncmp(explicit_resources[i].name, resname, sl)) return 0; break; case V_WILD: /* xxx.* match. */ if (len > sl + 1 && resname[sl] == '.' && !strncmp(explicit_resources[i].name, resname, sl)) return 0; break; case V_COLOR: /* xxx or xxx match. */ for (j = 0; host_color[j].name != CN; j++) { char *x; x = xs_buffer("%s%s", explicit_resources[i].name, host_color[j].name); if (strlen(x) == len && !strncmp(x, resname, len)) { Free(x); return 0; } Free(x); x = xs_buffer("%s%d", explicit_resources[i].name, host_color[j].index); if (strlen(x) == len && !strncmp(x, resname, len)) { Free(x); return 0; } Free(x); } break; } } return -1; } #endif /*]*/ void parse_xrm(const char *arg, const char *where) { const char *name; unsigned rnlen; const char *s; int i; char *t; void *address = NULL; enum resource_type type = XRM_STRING; Boolean quoted; char c; #if defined(C3270) /*[*/ char *hide; Boolean arbitrary = False; #endif /*]*/ /* Validate and split. */ if (validate_and_split_resource(where, arg, &name, &rnlen, &s) < 0) return; /* Look up the name. */ for (i = 0; resources[i].name != CN; i++) { if (!strncapcmp(resources[i].name, name, rnlen)) { address = resources[i].address; type = resources[i].type; break; } } if (address == NULL) { for (i = 0; toggle_names[i].name != NULL; i++) { if (!strncapcmp(toggle_names[i].name, name, rnlen)) { address = &appres.toggle[toggle_names[i].index].value; type = XRM_BOOLEAN; break; } } } #if defined(C3270) /*[*/ if (address == NULL && valid_explicit(name, rnlen) == 0) { /* * Handle resources that are accessed only via get_resource(). */ address = &hide; type = XRM_STRING; arbitrary = True; } #endif /*]*/ if (address == NULL) { xs_warning("%s: Unknown resource name: %.*s", where, (int)rnlen, name); return; } switch (type) { case XRM_BOOLEAN: if (!strcasecmp(s, "true") || !strcasecmp(s, "t") || !strcmp(s, "1")) { *(Boolean *)address = True; } else if (!strcasecmp(s, "false") || !strcasecmp(s, "f") || !strcmp(s, "0")) { *(Boolean *)address = False; } else { xs_warning("%s: Invalid Boolean value: %s", where, s); } break; case XRM_STRING: t = Malloc(strlen(s) + 1); *(char **)address = t; quoted = False; while ((c = *s++) != '\0') { if (quoted) { switch (c) { case 'b': *t++ = '\b'; break; case 'f': *t++ = '\f'; break; case 'n': *t++ = '\n'; break; case 'r': *t++ = '\r'; break; case 't': *t++ = '\t'; break; default: /* Leave other backslashes intact. */ *t++ = '\\'; *t++ = c; break; } quoted = False; } else if (c == '\\') { quoted = True; } else { *t++ = c; } } *t = '\0'; break; case XRM_INT: { long n; char *ptr; n = strtol(s, &ptr, 0); if (*ptr != '\0') { xs_warning("%s: Invalid Integer value: %s", where, s); } else { *(int *)address = (int)n; } break; } } #if defined(C3270) /*[*/ /* Add a new, arbitrarily-named resource. */ if (arbitrary) { char *rsname; rsname = Malloc(rnlen + 1); (void) strncpy(rsname, name, rnlen); rsname[rnlen] = '\0'; add_resource(rsname, hide); } #endif /*]*/ } /* * Clean up a string for display (undo what parse_xrm does). */ char * safe_string(const char *s) { char *t = Malloc(1); int tlen = 1; *t = '\0'; /* * Translate the string to UCS4 a character at a time. * If the result is a control code or backslash, expand it. * Otherwise, translate it back to the local encoding and * append it to the output. */ while (*s) { ucs4_t u; int consumed; enum me_fail error; u = multibyte_to_unicode(s, strlen(s), &consumed, &error); if (u == 0) break; if (u < ' ') { char c = 0; int inc = 0; switch (u) { case '\b': c = 'b'; inc = 2; break; case '\f': c = 'f'; inc = 2; break; case '\n': c = 'n'; inc = 2; break; case '\r': c = 'r'; inc = 2; break; case '\t': c = 't'; inc = 2; break; default: inc = 6; break; } t = Realloc(t, tlen + inc); if (inc == 2) { *(t + tlen - 1) = '\\'; *(t + tlen) = c; } else { sprintf(t, "\\u%04x", u); } tlen += inc; } else { t = Realloc(t, tlen + consumed); memcpy(t + tlen - 1, s, consumed); tlen += consumed; } s += consumed; } *(t + tlen - 1) = '\0'; return t; } /* Read resources from a file. */ int read_resource_file(const char *filename, Boolean fatal) { return read_resource_filex(filename, fatal, parse_xrm); } /* Screen globals. */ static int cw = 7; int *char_width = &cw; static int ch = 7; int *char_height = &ch; Boolean visible_control = False; Boolean flipped = False; /* Replacements for functions in popups.c. */ #include Boolean error_popup_visible = False; static char vmsgbuf[4096]; /* Pop up an error dialog. */ void popup_an_error(const char *fmt, ...) { va_list args; char *s; int sl; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); /* * Multi-line messages are fine for X pop-ups, but they're no fun for * text applications. */ s = vmsgbuf; while ((s = strchr(s, '\n')) != NULL) { *s++ = ' '; } while ((sl = strlen(vmsgbuf)) > 0 && vmsgbuf[sl-1] == ' ') { vmsgbuf[--sl] = '\0'; } if (sms_redirect()) { sms_error(vmsgbuf); return; } else { #if defined(C3270) || defined(WC3270) /*[*/ screen_suspend(); any_error_output = True; #endif /*]*/ (void) fprintf(stderr, "%s\n", vmsgbuf); macro_output = True; } } /* Pop up an error dialog, based on an error number. */ void popup_an_errno(int errn, const char *fmt, ...) { va_list args; char *s; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); s = NewString(vmsgbuf); if (errn > 0) popup_an_error("%s:\n%s", s, strerror(errn)); else popup_an_error("%s", s); Free(s); } void action_output(const char *fmt, ...) { va_list args; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); if (sms_redirect()) { sms_info("%s", vmsgbuf); return; } else { FILE *aout; #if defined(C3270) /*[*/ screen_suspend(); aout = start_pager(); any_error_output = True; #else /*][*/ aout = stdout; #endif /*]*/ #if defined(WC3270) /*[*/ pager_output(vmsgbuf); #else /*][*/ (void) fprintf(aout, "%s\n", vmsgbuf); #endif /*]*/ macro_output = True; } } ibm-3270-3.3.10ga4/s3270/tables.c0000644000175000017500000002171311254565704015367 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * tables.c * Translation tables between the three character sets: * EBCDIC * ASCII (ISO Latin-1) * Character Generator ("3270" font) */ #include "globals.h" #include "tablesc.h" const unsigned char asc2cg0[256] = { /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*20*/ 0x10, 0x19, 0x13, 0x2c, 0x1a, 0x2e, 0x30, 0x12, /*28*/ 0x0d, 0x0c, 0xbf, 0x35, 0x33, 0x31, 0x32, 0x14, /*30*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /*38*/ 0x28, 0x29, 0x34, 0xbe, 0x09, 0x11, 0x08, 0x18, /*40*/ 0x2d, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*48*/ 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, /*50*/ 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, /*58*/ 0xb7, 0xb8, 0xb9, 0x0a, 0x15, 0x0b, 0x3a, 0x2f, /*60*/ 0x3d, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /*68*/ 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, /*70*/ 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*78*/ 0x97, 0x98, 0x99, 0x0f, 0x16, 0x0e, 0x3b, 0x00, /*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*a0*/ 0x01, 0x6e, 0x1b, 0x1c, 0x1f, 0x1d, 0x17, 0x2b, /*a8*/ 0x3c, 0xd0, 0x6a, 0x6c, 0x36, 0x07, 0xd1, 0x37, /*b0*/ 0x38, 0xd6, 0x68, 0x69, 0x3e, 0x54, 0x1e, 0x39, /*b8*/ 0x3f, 0x67, 0x6b, 0x6d, 0x4b, 0x4c, 0x4d, 0x6f, /*c0*/ 0x60, 0x7a, 0x75, 0x65, 0x70, 0xbc, 0xba, 0xbd, /*c8*/ 0x61, 0x7b, 0x76, 0x71, 0x62, 0x7c, 0x77, 0x72, /*d0*/ 0xd7, 0x7f, 0x63, 0x7d, 0x78, 0x66, 0x73, 0x5b, /*d8*/ 0xbb, 0x64, 0x7e, 0x79, 0x74, 0x48, 0xd9, 0x2a, /*e0*/ 0x40, 0x5a, 0x55, 0x45, 0x50, 0x9c, 0x9a, 0x4f, /*e8*/ 0x41, 0x4a, 0x56, 0x51, 0x42, 0x5c, 0x57, 0x52, /*f0*/ 0xf7, 0x5f, 0x43, 0x5d, 0x58, 0x46, 0x53, 0x9d, /*f8*/ 0x9b, 0x44, 0x5e, 0x59, 0x4e, 0x49, 0xf9, 0x47 }; const unsigned char ebc2cg0[256] = { /*00*/ 0x00, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*08*/ 0xdf, 0xdf, 0xdf, 0xdf, 0x02, 0x03, 0x00, 0x00, /*10*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0x04, 0xdf, 0xdf, /*18*/ 0xdf, 0x05, 0xdf, 0xdf, 0x9f, 0xdf, 0x9e, 0xdf, /*20*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*28*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*30*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*38*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*40*/ 0x10, 0x01, 0x55, 0x50, 0x40, 0x5a, 0x45, 0x9c, /*48*/ 0x4f, 0x5f, 0x1b, 0x32, 0x09, 0x0d, 0x35, 0x16, /*50*/ 0x30, 0x4a, 0x56, 0x51, 0x41, 0x5c, 0x57, 0x52, /*58*/ 0x42, 0x2a, 0x19, 0x1a, 0xbf, 0x0c, 0xbe, 0x36, /*60*/ 0x31, 0x14, 0x75, 0x70, 0x60, 0x7a, 0x65, 0xbc, /*68*/ 0xbd, 0x7f, 0x17, 0x33, 0x2e, 0x2f, 0x08, 0x18, /*70*/ 0x9b, 0x7b, 0x76, 0x71, 0x61, 0x7c, 0x77, 0x72, /*78*/ 0x62, 0x3d, 0x34, 0x2c, 0x2d, 0x12, 0x11, 0x13, /*80*/ 0xbb, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /*88*/ 0x87, 0x88, 0x6c, 0x6d, 0xf7, 0x49, 0xf9, 0xd6, /*90*/ 0x38, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /*98*/ 0x90, 0x91, 0x6a, 0x6b, 0x9a, 0x3f, 0xba, 0x1f, /*a0*/ 0x54, 0x3b, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /*a8*/ 0x98, 0x99, 0x6e, 0x6f, 0xd7, 0x48, 0xd9, 0xd1, /*b0*/ 0x3a, 0x1c, 0x1d, 0x39, 0xd0, 0x2b, 0x1e, 0x4b, /*b8*/ 0x4c, 0x4d, 0x0a, 0x0b, 0x37, 0x3c, 0x3e, 0x5b, /*c0*/ 0x0f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*c8*/ 0xa7, 0xa8, 0x07, 0x58, 0x53, 0x43, 0x5d, 0x46, /*d0*/ 0x0e, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /*d8*/ 0xb0, 0xb1, 0x67, 0x59, 0x4e, 0x44, 0x5e, 0x47, /*e0*/ 0x15, 0x9d, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /*e8*/ 0xb8, 0xb9, 0x68, 0x78, 0x73, 0x63, 0x7d, 0x66, /*f0*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /*f8*/ 0x28, 0x29, 0x69, 0x79, 0x74, 0x64, 0x7e, 0x06 }; const unsigned char ebc2asc0[256] = { /*00*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*08*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*10*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*18*/ 0x20, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x3b, 0x20, /*20*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*28*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*30*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*38*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*40*/ 0x20, 0x20, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, /*48*/ 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /*50*/ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, /*58*/ 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0xac, /*60*/ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, /*68*/ 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /*70*/ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, /*78*/ 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /*80*/ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /*88*/ 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /*90*/ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /*98*/ 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /*a0*/ 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /*a8*/ 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, /*b0*/ 0x5e, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, /*b8*/ 0xbd, 0xbe, 0x5b, 0x5d, 0xaf, 0xa8, 0xb4, 0xd7, /*c0*/ 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /*c8*/ 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /*d0*/ 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /*d8*/ 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, /*e0*/ 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /*e8*/ 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /*f8*/ 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x20 }; const unsigned char asc2ebc0[256] = { /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*20*/ 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /*28*/ 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /*30*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /*38*/ 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /*40*/ 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /*48*/ 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /*50*/ 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /*58*/ 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /*60*/ 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /*68*/ 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*70*/ 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*78*/ 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x00, /*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*a0*/ 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /*a8*/ 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, /*b0*/ 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /*b8*/ 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /*c0*/ 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /*c8*/ 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /*d0*/ 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /*d8*/ 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /*e0*/ 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /*e8*/ 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /*f0*/ 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /*f8*/ 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf }; ibm-3270-3.3.10ga4/s3270/ctlr.h0000644000175000017500000000362711254565704015072 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ctlr.h * External declarations for ctlr.c data structures. */ extern int buffer_addr; /* buffer address */ extern int cursor_addr; /* cursor address */ extern struct ea *ea_buf; /* 3270 device buffer */ extern struct ea *aea_buf; /* alternate 3270 device buffer */ extern Boolean formatted; /* contains at least one field? */ extern Boolean is_altbuffer; /* in alternate-buffer mode? */ ibm-3270-3.3.10ga4/s3270/xioc.h0000644000175000017500000000350711254565704015065 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xioc.h * Global declarations for xio.c. */ extern void Quit_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void x3270_exit(int n); extern void x_add_input(int net_sock); extern void x_except_off(void); extern void x_except_on(int net_sock); extern void x_remove_input(void); ibm-3270-3.3.10ga4/s3270/ansi.c0000644000175000017500000016035711254565704015057 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ansi.c * ANSI terminal emulation. */ #include "globals.h" #if defined(X3270_ANSI) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #endif /*]*/ #include "appres.h" #include "ctlr.h" #include "3270ds.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "hostc.h" #include "screenc.h" #include "scrollc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #define MB_MAX 16 #define PE_MAX 1024 #define SC 1 /* save cursor position */ #define RC 2 /* restore cursor position */ #define NL 3 /* new line */ #define UP 4 /* cursor up */ #define E2 5 /* second level of ESC processing */ #define rS 6 /* reset */ #define IC 7 /* insert chars */ #define DN 8 /* cursor down */ #define RT 9 /* cursor right */ #define LT 10 /* cursor left */ #define CM 11 /* cursor motion */ #define ED 12 /* erase in display */ #define EL 13 /* erase in line */ #define IL 14 /* insert lines */ #define DL 15 /* delete lines */ #define DC 16 /* delete characters */ #define SG 17 /* set graphic rendition */ #define BL 18 /* ring bell */ #define NP 19 /* new page */ #define BS 20 /* backspace */ #define CR 21 /* carriage return */ #define LF 22 /* line feed */ #define HT 23 /* horizontal tab */ #define E1 24 /* first level of ESC processing */ #define Xx 25 /* undefined control character (nop) */ #define Pc 26 /* printing character */ #define Sc 27 /* semicolon (after ESC [) */ #define Dg 28 /* digit (after ESC [ or ESC [ ?) */ #define RI 29 /* reverse index */ #define DA 30 /* send device attributes */ #define SM 31 /* set mode */ #define RM 32 /* reset mode */ #define DO 33 /* return terminal ID (obsolete) */ #define SR 34 /* device status report */ #define CS 35 /* character set designate */ #define E3 36 /* third level of ESC processing */ #define DS 37 /* DEC private set */ #define DR 38 /* DEC private reset */ #define DV 39 /* DEC private save */ #define DT 40 /* DEC private restore */ #define SS 41 /* set scrolling region */ #define TM 42 /* text mode (ESC ]) */ #define T2 43 /* semicolon (after ESC ]) */ #define TX 44 /* text parameter (after ESC ] n ;) */ #define TB 45 /* text parameter done (ESC ] n ; xxx BEL) */ #define TS 46 /* tab set */ #define TC 47 /* tab clear */ #define C2 48 /* character set designate (finish) */ #define G0 49 /* select G0 character set */ #define G1 50 /* select G1 character set */ #define G2 51 /* select G2 character set */ #define G3 52 /* select G3 character set */ #define S2 53 /* select G2 for next character */ #define S3 54 /* select G3 for next character */ #define MB 55 /* process multi-byte character */ static enum state { DATA = 0, ESC = 1, CSDES = 2, N1 = 3, DECP = 4, TEXT = 5, TEXT2 = 6, MBPEND = 7 } state = DATA; static enum state ansi_data_mode(int, int); static enum state dec_save_cursor(int, int); static enum state dec_restore_cursor(int, int); static enum state ansi_newline(int, int); static enum state ansi_cursor_up(int, int); static enum state ansi_esc2(int, int); static enum state ansi_reset(int, int); static enum state ansi_insert_chars(int, int); static enum state ansi_cursor_down(int, int); static enum state ansi_cursor_right(int, int); static enum state ansi_cursor_left(int, int); static enum state ansi_cursor_motion(int, int); static enum state ansi_erase_in_display(int, int); static enum state ansi_erase_in_line(int, int); static enum state ansi_insert_lines(int, int); static enum state ansi_delete_lines(int, int); static enum state ansi_delete_chars(int, int); static enum state ansi_sgr(int, int); static enum state ansi_bell(int, int); static enum state ansi_newpage(int, int); static enum state ansi_backspace(int, int); static enum state ansi_cr(int, int); static enum state ansi_lf(int, int); static enum state ansi_htab(int, int); static enum state ansi_escape(int, int); static enum state ansi_nop(int, int); static enum state ansi_printing(int, int); static enum state ansi_semicolon(int, int); static enum state ansi_digit(int, int); static enum state ansi_reverse_index(int, int); static enum state ansi_send_attributes(int, int); static enum state ansi_set_mode(int, int); static enum state ansi_reset_mode(int, int); static enum state dec_return_terminal_id(int, int); static enum state ansi_status_report(int, int); static enum state ansi_cs_designate(int, int); static enum state ansi_esc3(int, int); static enum state dec_set(int, int); static enum state dec_reset(int, int); static enum state dec_save(int, int); static enum state dec_restore(int, int); static enum state dec_scrolling_region(int, int); static enum state xterm_text_mode(int, int); static enum state xterm_text_semicolon(int, int); static enum state xterm_text(int, int); static enum state xterm_text_do(int, int); static enum state ansi_htab_set(int, int); static enum state ansi_htab_clear(int, int); static enum state ansi_cs_designate2(int, int); static enum state ansi_select_g0(int, int); static enum state ansi_select_g1(int, int); static enum state ansi_select_g2(int, int); static enum state ansi_select_g3(int, int); static enum state ansi_one_g2(int, int); static enum state ansi_one_g3(int, int); static enum state ansi_multibyte(int, int); typedef enum state (*afn_t)(int, int); static afn_t ansi_fn[] = { /* 0 */ &ansi_data_mode, /* 1 */ &dec_save_cursor, /* 2 */ &dec_restore_cursor, /* 3 */ &ansi_newline, /* 4 */ &ansi_cursor_up, /* 5 */ &ansi_esc2, /* 6 */ &ansi_reset, /* 7 */ &ansi_insert_chars, /* 8 */ &ansi_cursor_down, /* 9 */ &ansi_cursor_right, /* 10 */ &ansi_cursor_left, /* 11 */ &ansi_cursor_motion, /* 12 */ &ansi_erase_in_display, /* 13 */ &ansi_erase_in_line, /* 14 */ &ansi_insert_lines, /* 15 */ &ansi_delete_lines, /* 16 */ &ansi_delete_chars, /* 17 */ &ansi_sgr, /* 18 */ &ansi_bell, /* 19 */ &ansi_newpage, /* 20 */ &ansi_backspace, /* 21 */ &ansi_cr, /* 22 */ &ansi_lf, /* 23 */ &ansi_htab, /* 24 */ &ansi_escape, /* 25 */ &ansi_nop, /* 26 */ &ansi_printing, /* 27 */ &ansi_semicolon, /* 28 */ &ansi_digit, /* 29 */ &ansi_reverse_index, /* 30 */ &ansi_send_attributes, /* 31 */ &ansi_set_mode, /* 32 */ &ansi_reset_mode, /* 33 */ &dec_return_terminal_id, /* 34 */ &ansi_status_report, /* 35 */ &ansi_cs_designate, /* 36 */ &ansi_esc3, /* 37 */ &dec_set, /* 38 */ &dec_reset, /* 39 */ &dec_save, /* 40 */ &dec_restore, /* 41 */ &dec_scrolling_region, /* 42 */ &xterm_text_mode, /* 43 */ &xterm_text_semicolon, /* 44 */ &xterm_text, /* 45 */ &xterm_text_do, /* 46 */ &ansi_htab_set, /* 47 */ &ansi_htab_clear, /* 48 */ &ansi_cs_designate2, /* 49 */ &ansi_select_g0, /* 50 */ &ansi_select_g1, /* 51 */ &ansi_select_g2, /* 52 */ &ansi_select_g3, /* 53 */ &ansi_one_g2, /* 54 */ &ansi_one_g3, /* 55 */ &ansi_multibyte, }; static unsigned char st[8][256] = { /* * State table for base processing (state == DATA) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,BL,BS,HT,LF,LF,NP,CR,G1,G0, /* 10 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,E1,Xx,Xx,Xx,Xx, /* 20 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 30 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 40 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 50 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 60 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 70 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Xx, /* 80 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx, /* 90 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx, /* a0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* b0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* c0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* d0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* e0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* f0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc }, /* * State table for ESC processing (state == ESC) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0,CS,CS,CS,CS, 0, 0, 0, 0, /* 30 */ 0, 0, 0, 0, 0, 0, 0,SC,RC, 0, 0, 0, 0, 0, 0, 0, /* 40 */ 0, 0, 0, 0, 0,NL, 0, 0,TS, 0, 0, 0, 0,RI,S2,S3, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,E2, 0,TM, 0, 0, /* 60 */ 0, 0, 0,rS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,G2,G3, /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC ()*+ C processing (state == CSDES) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ C2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 40 */ 0,C2,C2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC [ processing (state == N1) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg, 0,Sc, 0, 0, 0,E3, /* 40 */ IC,UP,DN,RT,LT, 0, 0, 0,CM, 0,ED,EL,IL,DL, 0, 0, /* 50 */ DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0,DA, 0, 0,CM,TC,SM, 0, 0, 0,RM,SG,SR, 0, /* 70 */ 0, 0,SS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC [ ? processing (state == DECP) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg, 0, 0, 0, 0, 0, 0, /* 40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0, 0, 0, 0, 0, 0,DS, 0, 0, 0,DR, 0, 0, 0, /* 70 */ 0, 0,DT,DV, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC ] processing (state == TEXT) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg, 0,T2, 0, 0, 0, 0, /* 40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC ] n ; processing (state == TEXT2) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0,TB, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 30 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 40 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 50 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 60 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 70 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,Xx, /* 80 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 90 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* a0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* b0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* c0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* d0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* e0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* f0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX }, /* * State table for multi-byte characters (state == MBPEND) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 10 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 20 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 30 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 40 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 50 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 60 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 70 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 80 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 90 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* a0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* b0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* c0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* d0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* e0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* f0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB }, }; /* Character sets. */ #define CS_G0 0 #define CS_G1 1 #define CS_G2 2 #define CS_G3 3 /* Character set designations. */ #define CSD_LD 0 #define CSD_UK 1 #define CSD_US 2 static int saved_cursor = 0; #define NN 20 static int n[NN], nx = 0; #define NT 256 static char text[NT + 1]; static int tx = 0; static int ansi_ch; static unsigned char gr = 0; static unsigned char saved_gr = 0; static unsigned char fg = 0; static unsigned char saved_fg = 0; static unsigned char bg = 0; static unsigned char saved_bg = 0; static int cset = CS_G0; static int saved_cset = CS_G0; static int csd[4] = { CSD_US, CSD_US, CSD_US, CSD_US }; static int saved_csd[4] = { CSD_US, CSD_US, CSD_US, CSD_US }; static int once_cset = -1; static int insert_mode = 0; static int auto_newline_mode = 0; static int appl_cursor = 0; static int saved_appl_cursor = 0; static int wraparound_mode = 1; static int saved_wraparound_mode = 1; static int rev_wraparound_mode = 0; static int saved_rev_wraparound_mode = 0; static int allow_wide_mode = 0; static int saved_allow_wide_mode = 0; static int wide_mode = 0; static int saved_wide_mode = 0; static Boolean saved_altbuffer = False; static int scroll_top = -1; static int scroll_bottom = -1; static unsigned char *tabs = (unsigned char *) NULL; static char gnnames[] = "()*+"; static char csnames[] = "0AB"; static int cs_to_change; static int pmi = 0; static char pending_mbs[MB_MAX]; static int pe = 0; static unsigned char ped[PE_MAX]; static Boolean held_wrap = False; static void ansi_scroll(void); static enum state ansi_data_mode(int ig1 _is_unused, int ig2 _is_unused) { return DATA; } static enum state dec_save_cursor(int ig1 _is_unused, int ig2 _is_unused) { int i; saved_cursor = cursor_addr; saved_cset = cset; for (i = 0; i < 4; i++) saved_csd[i] = csd[i]; saved_fg = fg; saved_bg = bg; saved_gr = gr; return DATA; } static enum state dec_restore_cursor(int ig1 _is_unused, int ig2 _is_unused) { int i; cset = saved_cset; for (i = 0; i < 4; i++) csd[i] = saved_csd[i]; fg = saved_fg; bg = saved_bg; gr = saved_gr; cursor_move(saved_cursor); held_wrap = False; return DATA; } static enum state ansi_newline(int ig1 _is_unused, int ig2 _is_unused) { int nc; cursor_move(cursor_addr - (cursor_addr % COLS)); nc = cursor_addr + COLS; if (nc < scroll_bottom * COLS) cursor_move(nc); else ansi_scroll(); held_wrap = False; return DATA; } static enum state ansi_cursor_up(int nn, int ig2 _is_unused) { int rr; if (nn < 1) nn = 1; rr = cursor_addr / COLS; if (rr - nn < 0) cursor_move(cursor_addr % COLS); else cursor_move(cursor_addr - (nn * COLS)); held_wrap = False; return DATA; } static enum state ansi_esc2(int ig1 _is_unused, int ig2 _is_unused) { register int i; for (i = 0; i < NN; i++) n[i] = 0; nx = 0; return N1; } static enum state ansi_reset(int ig1 _is_unused, int ig2 _is_unused) { int i; static Boolean first = True; gr = 0; saved_gr = 0; fg = 0; saved_fg = 0; bg = 0; saved_bg = 0; cset = CS_G0; saved_cset = CS_G0; csd[0] = csd[1] = csd[2] = csd[3] = CSD_US; saved_csd[0] = saved_csd[1] = saved_csd[2] = saved_csd[3] = CSD_US; once_cset = -1; saved_cursor = 0; insert_mode = 0; auto_newline_mode = 0; appl_cursor = 0; saved_appl_cursor = 0; wraparound_mode = 1; saved_wraparound_mode = 1; rev_wraparound_mode = 0; saved_rev_wraparound_mode = 0; allow_wide_mode = 0; saved_allow_wide_mode = 0; wide_mode = 0; allow_wide_mode = 0; saved_altbuffer = False; scroll_top = 1; scroll_bottom = ROWS; Replace(tabs, (unsigned char *)Malloc((COLS+7)/8)); for (i = 0; i < (COLS+7)/8; i++) tabs[i] = 0x01; held_wrap = False; if (!first) { ctlr_altbuffer(True); ctlr_aclear(0, ROWS * COLS, 1); ctlr_altbuffer(False); ctlr_clear(False); screen_80(); } first = False; pmi = 0; return DATA; } static enum state ansi_insert_chars(int nn, int ig2 _is_unused) { int cc = cursor_addr % COLS; /* current col */ int mc = COLS - cc; /* max chars that can be inserted */ int ns; /* chars that are shifting */ if (nn < 1) nn = 1; if (nn > mc) nn = mc; /* Move the surviving chars right */ ns = mc - nn; if (ns) ctlr_bcopy(cursor_addr, cursor_addr + nn, ns, 1); /* Clear the middle of the line */ ctlr_aclear(cursor_addr, nn, 1); return DATA; } static enum state ansi_cursor_down(int nn, int ig2 _is_unused) { int rr; if (nn < 1) nn = 1; rr = cursor_addr / COLS; if (rr + nn >= ROWS) cursor_move((ROWS-1)*COLS + (cursor_addr%COLS)); else cursor_move(cursor_addr + (nn * COLS)); held_wrap = False; return DATA; } static enum state ansi_cursor_right(int nn, int ig2 _is_unused) { int cc; if (nn < 1) nn = 1; cc = cursor_addr % COLS; if (cc == COLS-1) return DATA; if (cc + nn >= COLS) nn = COLS - 1 - cc; cursor_move(cursor_addr + nn); held_wrap = False; return DATA; } static enum state ansi_cursor_left(int nn, int ig2 _is_unused) { int cc; if (held_wrap) { held_wrap = False; return DATA; } if (nn < 1) nn = 1; cc = cursor_addr % COLS; if (!cc) return DATA; if (nn > cc) nn = cc; cursor_move(cursor_addr - nn); return DATA; } static enum state ansi_cursor_motion(int n1, int n2) { if (n1 < 1) n1 = 1; if (n1 > ROWS) n1 = ROWS; if (n2 < 1) n2 = 1; if (n2 > COLS) n2 = COLS; cursor_move((n1 - 1) * COLS + (n2 - 1)); held_wrap = False; return DATA; } static enum state ansi_erase_in_display(int nn, int ig2 _is_unused) { switch (nn) { case 0: /* below */ ctlr_aclear(cursor_addr, (ROWS * COLS) - cursor_addr, 1); break; case 1: /* above */ ctlr_aclear(0, cursor_addr + 1, 1); break; case 2: /* all (without moving cursor) */ if (cursor_addr == 0 && !is_altbuffer) scroll_save(ROWS, True); ctlr_aclear(0, ROWS * COLS, 1); break; } return DATA; } static enum state ansi_erase_in_line(int nn, int ig2 _is_unused) { int nc = cursor_addr % COLS; switch (nn) { case 0: /* to right */ ctlr_aclear(cursor_addr, COLS - nc, 1); break; case 1: /* to left */ ctlr_aclear(cursor_addr - nc, nc+1, 1); break; case 2: /* all */ ctlr_aclear(cursor_addr - nc, COLS, 1); break; } return DATA; } static enum state ansi_insert_lines(int nn, int ig2 _is_unused) { int rr = cursor_addr / COLS; /* current row */ int mr = scroll_bottom - rr; /* rows left at and below this one */ int ns; /* rows that are shifting */ /* If outside of the scrolling region, do nothing */ if (rr < scroll_top - 1 || rr >= scroll_bottom) return DATA; if (nn < 1) nn = 1; if (nn > mr) nn = mr; /* Move the victims down */ ns = mr - nn; if (ns) ctlr_bcopy(rr * COLS, (rr + nn) * COLS, ns * COLS, 1); /* Clear the middle of the screen */ ctlr_aclear(rr * COLS, nn * COLS, 1); return DATA; } static enum state ansi_delete_lines(int nn, int ig2 _is_unused) { int rr = cursor_addr / COLS; /* current row */ int mr = scroll_bottom - rr; /* max rows that can be deleted */ int ns; /* rows that are shifting */ /* If outside of the scrolling region, do nothing */ if (rr < scroll_top - 1 || rr >= scroll_bottom) return DATA; if (nn < 1) nn = 1; if (nn > mr) nn = mr; /* Move the surviving rows up */ ns = mr - nn; if (ns) ctlr_bcopy((rr + nn) * COLS, rr * COLS, ns * COLS, 1); /* Clear the rest of the screen */ ctlr_aclear((rr + ns) * COLS, nn * COLS, 1); return DATA; } static enum state ansi_delete_chars(int nn, int ig2 _is_unused) { int cc = cursor_addr % COLS; /* current col */ int mc = COLS - cc; /* max chars that can be deleted */ int ns; /* chars that are shifting */ if (nn < 1) nn = 1; if (nn > mc) nn = mc; /* Move the surviving chars left */ ns = mc - nn; if (ns) ctlr_bcopy(cursor_addr + nn, cursor_addr, ns, 1); /* Clear the end of the line */ ctlr_aclear(cursor_addr + ns, nn, 1); return DATA; } static enum state ansi_sgr(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 0: gr = 0; fg = 0; bg = 0; break; case 1: gr |= GR_INTENSIFY; break; case 4: gr |= GR_UNDERLINE; break; case 5: gr |= GR_BLINK; break; case 7: gr |= GR_REVERSE; break; case 30: fg = 0xf0; /* black */ break; case 31: fg = 0xf2; /* red */ break; case 32: fg = 0xf4; /* green */ break; case 33: fg = 0xf6; /* yellow */ break; case 34: fg = 0xf1; /* blue */ break; case 35: fg = 0xf3; /* magenta */ break; case 36: #if defined(WC3270) /*[*/ fg = 0xf6; /* turquoise */ #else /*][*/ fg = 0xfd; /* cyan */ #endif /*]*/ break; case 37: #if defined(WC3270) /*[*/ fg = 0xf7; /* white */ #else /*][*/ fg = 0xff; /* white */ #endif /*]*/ break; case 39: fg = 0; /* default */ break; case 40: bg = 0xf0; /* black */ break; case 41: bg = 0xf2; /* red */ break; case 42: bg = 0xf4; /* green */ break; case 43: bg = 0xf6; /* yellow */ break; case 44: bg = 0xf1; /* blue */ break; case 45: bg = 0xf3; /* magenta */ break; case 46: #if defined(WC3270) /*[*/ bg = 0xf6; /* turquoise */ #else /*][*/ bg = 0xfd; /* cyan */ #endif /*]*/ break; case 47: #if defined(WC3270) /*[*/ bg = 0xf7; /* white */ #else /*][*/ bg = 0xff; /* white */ #endif /*]*/ break; case 49: bg = 0; /* default */ break; } return DATA; } static enum state ansi_bell(int ig1 _is_unused, int ig2 _is_unused) { ring_bell(); return DATA; } static enum state ansi_newpage(int ig1 _is_unused, int ig2 _is_unused) { ctlr_clear(False); return DATA; } static enum state ansi_backspace(int ig1 _is_unused, int ig2 _is_unused) { if (held_wrap) { held_wrap = False; return DATA; } if (rev_wraparound_mode) { if (cursor_addr > (scroll_top - 1) * COLS) cursor_move(cursor_addr - 1); } else { if (cursor_addr % COLS) cursor_move(cursor_addr - 1); } return DATA; } static enum state ansi_cr(int ig1 _is_unused, int ig2 _is_unused) { if (cursor_addr % COLS) cursor_move(cursor_addr - (cursor_addr % COLS)); if (auto_newline_mode) (void) ansi_lf(0, 0); held_wrap = False; return DATA; } static enum state ansi_lf(int ig1 _is_unused, int ig2 _is_unused) { int nc = cursor_addr + COLS; held_wrap = False; /* If we're below the scrolling region, don't scroll. */ if ((cursor_addr / COLS) >= scroll_bottom) { if (nc < ROWS * COLS) cursor_move(nc); return DATA; } if (nc < scroll_bottom * COLS) cursor_move(nc); else ansi_scroll(); return DATA; } static enum state ansi_htab(int ig1 _is_unused, int ig2 _is_unused) { int col = cursor_addr % COLS; int i; held_wrap = False; if (col == COLS-1) return DATA; for (i = col+1; i < COLS-1; i++) if (tabs[i/8] & 1<<(i%8)) break; cursor_move(cursor_addr - col + i); return DATA; } static enum state ansi_escape(int ig1 _is_unused, int ig2 _is_unused) { return ESC; } static enum state ansi_nop(int ig1 _is_unused, int ig2 _is_unused) { return DATA; } #define PWRAP { \ nc = cursor_addr + 1; \ if (nc < scroll_bottom * COLS) \ cursor_move(nc); \ else { \ if (cursor_addr / COLS >= scroll_bottom) \ cursor_move(cursor_addr / COLS * COLS); \ else { \ ansi_scroll(); \ cursor_move(nc - COLS); \ } \ } \ } static enum state ansi_printing(int ig1 _is_unused, int ig2 _is_unused) { int nc; unsigned short ebc_ch; #if defined(X3270_DBCS) /*[*/ enum dbcs_state d; #endif /*]*/ if ((pmi == 0) && (ansi_ch & 0x80)) { char mbs[2]; int consumed; enum me_fail fail; unsigned long ucs4; mbs[0] = (char)ansi_ch; mbs[1] = '\0'; ucs4 = multibyte_to_unicode(mbs, 1, &consumed, &fail); if (ucs4 == 0) { switch (fail) { case ME_SHORT: /* Start munching multi-byte. */ pmi = 0; pending_mbs[pmi++] = (char)ansi_ch; return MBPEND; case ME_INVALID: default: /* Invalid multi-byte -> '?' */ ansi_ch = '?'; break; } } else { ansi_ch = ucs4; } } pmi = 0; /* Translate to EBCDIC to see if it's DBCS. */ ebc_ch = unicode_to_ebcdic(ansi_ch); if (ebc_ch & ~0xff) { #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif { ansi_ch = '?'; ebc_ch = asc2ebc0['?']; } } if (held_wrap) { PWRAP; held_wrap = False; } if (insert_mode) (void) ansi_insert_chars(1, 0); #if defined(X3270_DBCS) /*[*/ d = ctlr_dbcs_state(cursor_addr); #endif /*]*/ switch (csd[(once_cset != -1) ? once_cset : cset]) { case CSD_LD: /* line drawing "0" */ if (ansi_ch >= 0x5f && ansi_ch <= 0x7e) ctlr_add(cursor_addr, (unsigned char)(ansi_ch - 0x5f), CS_LINEDRAW); else if (ebc_ch & ~0xff) ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); else ctlr_add(cursor_addr, ebc_ch, CS_BASE); break; case CSD_UK: /* UK "A" */ if (ansi_ch == '#') ctlr_add(cursor_addr, 0x1e, CS_LINEDRAW); else if (ebc_ch & ~0xff) ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); else ctlr_add(cursor_addr, ebc_ch, CS_BASE); break; case CSD_US: /* US "B" */ #if !defined(X3270_DBCS) /*[*/ if (ebc_ch & ~0xff) ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); else ctlr_add(cursor_addr, ebc_ch, CS_BASE); #else /*][*/ if (ebc_ch & ~0xff) { /* Add a DBCS character to the buffer. */ if (!dbcs) { /* Not currently using a DBCS character set. */ ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); break; } /* Get past the last column. */ if ((cursor_addr % COLS) == (COLS-1)) { if (!wraparound_mode) return DATA; ctlr_add(cursor_addr, EBC_space, CS_BASE); ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); cursor_addr = cursor_addr + 1; d = ctlr_dbcs_state(cursor_addr); } /* Add the left half. */ ctlr_add(cursor_addr, (ebc_ch >> 8) & 0xff, CS_DBCS); ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); /* Handle unaligned DBCS overwrite. */ if (d == DBCS_RIGHT || d == DBCS_RIGHT_WRAP) { int xaddr; xaddr = cursor_addr; DEC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ea_buf[xaddr].db = DBCS_NONE; } /* Add the right half. */ INC_BA(cursor_addr); ctlr_add(cursor_addr, ebc_ch & 0xff, CS_DBCS); ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); /* Handle cursor wrap. */ if (wraparound_mode) { if (!((cursor_addr + 1) % COLS)) { held_wrap = True; } else { PWRAP; } } else { if ((cursor_addr % COLS) != (COLS - 1)) cursor_move(cursor_addr + 1); } (void) ctlr_dbcs_postprocess(); return DATA; } /* Add an SBCS character to the buffer. */ ctlr_add(cursor_addr, ebc_ch, CS_BASE); #endif /*]*/ break; } #if defined(X3270_DBCS) /*[*/ /* Handle conflicts with existing DBCS characters. */ if (d == DBCS_RIGHT || d == DBCS_RIGHT_WRAP) { int xaddr; xaddr = cursor_addr; DEC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ea_buf[xaddr].db = DBCS_NONE; ea_buf[cursor_addr].db = DBCS_NONE; (void) ctlr_dbcs_postprocess(); } if (d == DBCS_LEFT || d == DBCS_LEFT_WRAP) { int xaddr; xaddr = cursor_addr; INC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ea_buf[xaddr].db = DBCS_NONE; ea_buf[cursor_addr].db = DBCS_NONE; (void) ctlr_dbcs_postprocess(); } #endif /*]*/ once_cset = -1; ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); if (wraparound_mode) { /* * There is a fascinating behavior of xterm which we will * attempt to emulate here. When a character is printed in the * last column, the cursor sticks there, rather than wrapping * to the next line. Another printing character will put the * cursor in column 2 of the next line. One cursor-left * sequence won't budge it; two will. Saving and restoring * the cursor won't move the cursor, but will cancel all of * the above behaviors... * * In my opinion, very strange, but among other things, 'vi' * depends on it! */ if (!((cursor_addr + 1) % COLS)) { held_wrap = True; } else { PWRAP; } } else { if ((cursor_addr % COLS) != (COLS - 1)) cursor_move(cursor_addr + 1); } return DATA; } static enum state ansi_multibyte(int ig1, int ig2) { unsigned long ucs4; int consumed; enum me_fail fail; afn_t fn; if (pmi >= MB_MAX - 2) { /* String too long. */ pmi = 0; ansi_ch = '?'; return ansi_printing(ig1, ig2); } pending_mbs[pmi++] = (char)ansi_ch; pending_mbs[pmi] = '\0'; ucs4 = multibyte_to_unicode(pending_mbs, pmi, &consumed, &fail); if (ucs4 != 0) { /* Success! */ ansi_ch = ucs4; return ansi_printing(ig1, ig2); } if (fail == ME_SHORT) { /* Go get more. */ return MBPEND; } /* Failure. */ /* Replace the sequence with '?'. */ ucs4 = ansi_ch; /* save for later */ pmi = 0; ansi_ch = '?'; (void) ansi_printing(ig1, ig2); /* * Reprocess whatever we choked on (especially if it's a control * character). */ ansi_ch = ucs4; state = DATA; fn = ansi_fn[st[(int)DATA][ansi_ch]]; return (*fn)(n[0], n[1]); } static enum state ansi_semicolon(int ig1 _is_unused, int ig2 _is_unused) { if (nx >= NN) return DATA; nx++; return state; } static enum state ansi_digit(int ig1 _is_unused, int ig2 _is_unused) { n[nx] = (n[nx] * 10) + (ansi_ch - '0'); return state; } static enum state ansi_reverse_index(int ig1 _is_unused, int ig2 _is_unused) { int rr = cursor_addr / COLS; /* current row */ int np = (scroll_top - 1) - rr; /* number of rows in the scrolling region, above this line */ int ns; /* number of rows to scroll */ int nn = 1; /* number of rows to index */ held_wrap = False; /* If the cursor is above the scrolling region, do a simple margined cursor up. */ if (np < 0) { (void) ansi_cursor_up(nn, 0); return DATA; } /* Split the number of lines to scroll into ns */ if (nn > np) { ns = nn - np; nn = np; } else ns = 0; /* Move the cursor up without scrolling */ if (nn) (void) ansi_cursor_up(nn, 0); /* Insert lines at the top for backward scroll */ if (ns) (void) ansi_insert_lines(ns, 0); return DATA; } static enum state ansi_send_attributes(int nn, int ig2 _is_unused) { if (!nn) net_sends("\033[?1;2c"); return DATA; } static enum state dec_return_terminal_id(int ig1 _is_unused, int ig2 _is_unused) { return ansi_send_attributes(0, 0); } static enum state ansi_set_mode(int nn, int ig2 _is_unused) { switch (nn) { case 4: insert_mode = 1; break; case 20: auto_newline_mode = 1; break; } return DATA; } static enum state ansi_reset_mode(int nn, int ig2 _is_unused) { switch (nn) { case 4: insert_mode = 0; break; case 20: auto_newline_mode = 0; break; } return DATA; } static enum state ansi_status_report(int nn, int ig2 _is_unused) { static char cpr[11]; switch (nn) { case 5: net_sends("\033[0n"); break; case 6: (void) sprintf(cpr, "\033[%d;%dR", (cursor_addr/COLS) + 1, (cursor_addr%COLS) + 1); net_sends(cpr); break; } return DATA; } static enum state ansi_cs_designate(int ig1 _is_unused, int ig2 _is_unused) { cs_to_change = strchr(gnnames, ansi_ch) - gnnames; return CSDES; } static enum state ansi_cs_designate2(int ig1 _is_unused, int ig2 _is_unused) { csd[cs_to_change] = strchr(csnames, ansi_ch) - csnames; return DATA; } static enum state ansi_select_g0(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G0; return DATA; } static enum state ansi_select_g1(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G1; return DATA; } static enum state ansi_select_g2(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G2; return DATA; } static enum state ansi_select_g3(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G3; return DATA; } static enum state ansi_one_g2(int ig1 _is_unused, int ig2 _is_unused) { once_cset = CS_G2; return DATA; } static enum state ansi_one_g3(int ig1 _is_unused, int ig2 _is_unused) { once_cset = CS_G3; return DATA; } static enum state ansi_esc3(int ig1 _is_unused, int ig2 _is_unused) { return DECP; } static enum state dec_set(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* application cursor keys */ appl_cursor = 1; break; case 2: /* set G0-G3 */ csd[0] = csd[1] = csd[2] = csd[3] = CSD_US; break; case 3: /* 132-column mode */ if (allow_wide_mode) { wide_mode = 1; screen_132(); } break; case 7: /* wraparound mode */ wraparound_mode = 1; break; case 40: /* allow 80/132 switching */ allow_wide_mode = 1; break; case 45: /* reverse-wraparound mode */ rev_wraparound_mode = 1; break; case 47: /* alt buffer */ case 1049: ctlr_altbuffer(True); break; } return DATA; } static enum state dec_reset(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* normal cursor keys */ appl_cursor = 0; break; case 3: /* 132-column mode */ if (allow_wide_mode) { wide_mode = 0; screen_80(); } break; case 7: /* no wraparound mode */ wraparound_mode = 0; break; case 40: /* allow 80/132 switching */ allow_wide_mode = 0; break; case 45: /* no reverse-wraparound mode */ rev_wraparound_mode = 0; break; case 47: /* alt buffer */ case 1049: ctlr_altbuffer(False); break; } return DATA; } static enum state dec_save(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* application cursor keys */ saved_appl_cursor = appl_cursor; break; case 3: /* 132-column mode */ saved_wide_mode = wide_mode; break; case 7: /* wraparound mode */ saved_wraparound_mode = wraparound_mode; break; case 40: /* allow 80/132 switching */ saved_allow_wide_mode = allow_wide_mode; break; case 45: /* reverse-wraparound mode */ saved_rev_wraparound_mode = rev_wraparound_mode; break; case 47: /* alt buffer */ case 1049: saved_altbuffer = is_altbuffer; break; } return DATA; } static enum state dec_restore(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* application cursor keys */ appl_cursor = saved_appl_cursor; break; case 3: /* 132-column mode */ if (allow_wide_mode) { wide_mode = saved_wide_mode; if (wide_mode) screen_132(); else screen_80(); } break; case 7: /* wraparound mode */ wraparound_mode = saved_wraparound_mode; break; case 40: /* allow 80/132 switching */ allow_wide_mode = saved_allow_wide_mode; break; case 45: /* reverse-wraparound mode */ rev_wraparound_mode = saved_rev_wraparound_mode; break; case 47: /* alt buffer */ case 1049: /* alt buffer */ ctlr_altbuffer(saved_altbuffer); break; } return DATA; } static enum state dec_scrolling_region(int top, int bottom) { if (top < 1) top = 1; if (bottom > ROWS) bottom = ROWS; if (top <= bottom && (top > 1 || bottom < ROWS)) { scroll_top = top; scroll_bottom = bottom; cursor_move(0); } else { scroll_top = 1; scroll_bottom = ROWS; } return DATA; } static enum state xterm_text_mode(int ig1 _is_unused, int ig2 _is_unused) { nx = 0; n[0] = 0; return TEXT; } static enum state xterm_text_semicolon(int ig1 _is_unused, int ig2 _is_unused) { tx = 0; return TEXT2; } static enum state xterm_text(int ig1 _is_unused, int ig2 _is_unused) { if (tx < NT) text[tx++] = ansi_ch; return state; } static enum state xterm_text_do(int ig1 _is_unused, int ig2 _is_unused) { #if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ text[tx] = '\0'; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ switch (n[0]) { case 0: /* icon name and window title */ XtVaSetValues(toplevel, XtNiconName, text, NULL); XtVaSetValues(toplevel, XtNtitle, text, NULL); break; case 1: /* icon name */ XtVaSetValues(toplevel, XtNiconName, text, NULL); break; case 2: /* window_title */ XtVaSetValues(toplevel, XtNtitle, text, NULL); break; case 50: /* font */ screen_newfont(text, False, False); break; default: break; } #endif /*]*/ #if defined(WC3270) /*[*/ switch (n[0]) { case 0: /* icon name and window title */ case 2: /* window_title */ screen_title(text); break; default: break; } #endif /*]*/ return DATA; } static enum state ansi_htab_set(int ig1 _is_unused, int ig2 _is_unused) { register int col = cursor_addr % COLS; tabs[col/8] |= 1<<(col%8); return DATA; } static enum state ansi_htab_clear(int nn, int ig2 _is_unused) { register int col, i; switch (nn) { case 0: col = cursor_addr % COLS; tabs[col/8] &= ~(1<<(col%8)); break; case 3: for (i = 0; i < (COLS+7)/8; i++) tabs[i] = 0; break; } return DATA; } /* * Scroll the screen or the scrolling region. */ static void ansi_scroll(void) { held_wrap = False; /* Save the top line */ if (scroll_top == 1 && scroll_bottom == ROWS) { if (!is_altbuffer) scroll_save(1, False); ctlr_scroll(); return; } /* Scroll all but the last line up */ if (scroll_bottom > scroll_top) ctlr_bcopy(scroll_top * COLS, (scroll_top - 1) * COLS, (scroll_bottom - scroll_top) * COLS, 1); /* Clear the last line */ ctlr_aclear((scroll_bottom - 1) * COLS, COLS, 1); } /* Callback for when we enter ANSI mode. */ static void ansi_in3270(Boolean in3270) { if (!in3270) (void) ansi_reset(0, 0); } /* * External entry points */ void ansi_init(void) { register_schange(ST_3270_MODE, ansi_in3270); } void ansi_process(unsigned int c) { afn_t fn; c &= 0xff; ansi_ch = c; scroll_to_bottom(); #if defined(X3270_TRACE) /*[*/ if (toggled(SCREEN_TRACE)) trace_char((char)c); #endif /*]*/ fn = ansi_fn[st[(int)state][c]]; state = (*fn)(n[0], n[1]); /* Saving pending escape data. */ if (state == DATA) pe = 0; else if (pe < PE_MAX) ped[pe++] = c; } void ansi_send_up(void) { if (appl_cursor) net_sends("\033OA"); else net_sends("\033[A"); } void ansi_send_down(void) { if (appl_cursor) net_sends("\033OB"); else net_sends("\033[B"); } void ansi_send_right(void) { if (appl_cursor) net_sends("\033OC"); else net_sends("\033[C"); } void ansi_send_left(void) { if (appl_cursor) net_sends("\033OD"); else net_sends("\033[D"); } void ansi_send_home(void) { net_sends("\033[H"); } void ansi_send_clear(void) { net_sends("\033[2K"); } void ansi_send_pf(int nn) { static char fn_buf[6]; static int code[] = { /* * F1 through F12 are VT220 codes. (Note the discontinuity -- * \E[16~ is missing) */ 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 23, 24, /* * F13 through F20 are defined for xterm. */ 25, 26, 28, 29, 31, 32, 33, 34, /* * F21 through F24 are x3270 extensions. */ 35, 36, 37, 38 }; if (nn < 1 || (unsigned)nn > sizeof(code)/sizeof(code[0])) return; (void) sprintf(fn_buf, "\033[%d~", code[nn-1]); net_sends(fn_buf); } void ansi_send_pa(int nn) { static char fn_buf[4]; static char code[4] = { 'P', 'Q', 'R', 'S' }; if (nn < 1 || nn > 4) return; (void) sprintf(fn_buf, "\033O%c", code[nn-1]); net_sends(fn_buf); } void toggle_lineWrap(struct toggle *t _is_unused, enum toggle_type type _is_unused) { if (toggled(LINE_WRAP)) wraparound_mode = 1; else wraparound_mode = 0; } #if defined(X3270_TRACE) /*[*/ /* Emit an SGR command. */ static void emit_sgr(int mode) { space3270out((mode < 10)? 4: 5); *obptr++ = 0x1b; *obptr++ = '['; if (mode > 9) *obptr++ = '0' + (mode / 10); *obptr++ = '0' + (mode % 10); *obptr++ = 'm'; } /* Emit a DEC Private Mode command. */ static void emit_decpriv(int mode, char op) { space3270out((mode < 10)? 5: 6); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '?'; if (mode > 9) *obptr++ = '0' + (mode / 10); *obptr++ = '0' + (mode % 10); *obptr++ = op; } /* Emit a CUP (cursor position) command. */ static void emit_cup(int baddr) { if (baddr) { char cup_buf[11]; int sl; sl = sprintf(cup_buf, "\033[%d;%dH", (baddr / COLS) + 1, (baddr % COLS) + 1); space3270out(sl); strcpy((char *)obptr, cup_buf); obptr += sl; } else { space3270out(3); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = 'H'; } } /* Emit spaces or a CUP, whichever is shorter. */ static int ansi_dump_spaces(int spaces, int baddr) { if (spaces) { char cup_buf[11]; int sl; /* * Move the cursor, if it takes less space than * expanding the spaces. * It is possible to optimize this further with clever * CU[UDFB] sequences, but not (yet) worth the effort. */ sl = sprintf(cup_buf, "\033[%d;%dH", (baddr / COLS) + 1, (baddr % COLS) + 1); if (sl < spaces) { space3270out(sl); strcpy((char *)obptr, cup_buf); obptr += sl; } else { space3270out(spaces); while (spaces--) *obptr++ = ' '; } } return 0; } /* * Snap the provided screen buffer (primary or alternate). * This is (mostly) optimized to draw the minimum necessary, assuming a * blank screen. */ static void ansi_snap_one(struct ea *buf) { int baddr; int cur_gr = 0; int cur_fg = 0; int cur_bg = 0; int spaces = 0; static int uncolor_table[16] = { /* 0xf0 */ 0, /* 0xf1 */ 4, /* 0xf2 */ 1, /* 0xf3 */ 5, /* 0xf4 */ 2, /* 0xf5 */ 0, /* can't happen */ #if defined(WC3270) /*[*/ /* 0xf6 */ 6, #else /*][*/ /* 0xf6 */ 3, #endif /*]*/ #if defined(WC3270) /*[*/ /* 0xf7 */ 7, #else /*][*/ /* 0xf7 */ 0, /* can't happen */ #endif /*]*/ /* 0xf8 */ 0, /* can't happen */ /* 0xf9 */ 0, /* can't happen */ /* 0xfa */ 0, /* can't happen */ /* 0xfb */ 0, /* can't happen */ /* 0xfc */ 0, /* can't happen */ #if defined(WC3270) /*[*/ /* 0xfd */ 0, /* can't happen */ #else /*][*/ /* 0xfd */ 6, /* can't happen */ #endif /*]*/ /* 0xfe */ 0, /* can't happen */ #if defined(WC3270) /*[*/ /* 0xff */ 0, /* can't happen */ #else /*][*/ /* 0xff */ 7, /* can't happen */ #endif /*]*/ }; char mb[16]; int len; int xlen; int i; enum dbcs_state d; int c; int last_sgr = 0; #define EMIT_SGR(n) { emit_sgr(n); last_sgr = (n); } /* Draw what's on the screen. */ baddr = 0; do { int xgr = buf[baddr].gr; /* Set the attributes. */ if (xgr != cur_gr) { spaces = ansi_dump_spaces(spaces, baddr); if ((xgr ^ cur_gr) & cur_gr) { /* * Something turned off. Turn everything off, * then turn the remaining modes on below. */ EMIT_SGR(0); xgr = 0; } else { /* * Clear the bits in xgr that are already set * in cur_gr. Turn on the new modes. */ xgr &= ~cur_gr; } /* Turn on the attributes remaining in xgr. */ if (xgr & GR_INTENSIFY) EMIT_SGR(1); if (xgr & GR_UNDERLINE) EMIT_SGR(4); if (xgr & GR_BLINK) EMIT_SGR(5); if (xgr & GR_REVERSE) EMIT_SGR(7); cur_gr = buf[baddr].gr; } /* Set the colors. */ if (buf[baddr].fg != cur_fg) { spaces = ansi_dump_spaces(spaces, baddr); if (buf[baddr].fg) c = uncolor_table[buf[baddr].fg & 0x0f]; else c = 9; EMIT_SGR(30 + c); cur_fg = buf[baddr].fg; } if (buf[baddr].bg != cur_bg) { spaces = ansi_dump_spaces(spaces, baddr); if (buf[baddr].bg) c = uncolor_table[buf[baddr].bg & 0x0f]; else c = 9; EMIT_SGR(40 + c); cur_bg = buf[baddr].bg; } /* Expand the current character to multibyte. */ d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) { int xaddr = baddr; INC_BA(xaddr); len = ebcdic_to_multibyte(buf[baddr].cc << 8 | buf[xaddr].cc, mb, sizeof(mb)); } else if (IS_RIGHT(d)) { len = 0; } else { len = ebcdic_to_multibyte(buf[baddr].cc, mb, sizeof(mb)); } if (len > 0) len--; /* terminating NUL */ xlen = 0; for (i = 0; i < len; i++) { if ((mb[i] & 0xff) == 0xff) xlen++; } /* Optimize for white space. */ if (!cur_fg && !cur_bg && !cur_gr && ((len + xlen) == 1) && (mb[0] == ' ')) { spaces++; } else { if (spaces) spaces = ansi_dump_spaces(spaces, baddr); /* Emit the current character. */ space3270out(len + xlen); for (i = 0; i < len; i++) { if ((mb[i] & 0xff) == 0xff) *obptr++ = 0xff; *obptr++ = mb[i]; } } INC_BA(baddr); } while (baddr != 0); /* Remove any attributes we set above. */ if (last_sgr != 0) emit_sgr(0); } /* Snap the contents of the screen buffers in NVT mode. */ void ansi_snap(void) { /* * Note that ea_buf is the live buffer, and aea_buf is the other * buffer. So the task here is to draw the other buffer first, * then switch modes and draw the live one. */ if (is_altbuffer) { /* Draw the primary screen first. */ ansi_snap_one(aea_buf); emit_cup(0); /* Switch to the alternate. */ emit_decpriv(47, 'h'); /* Draw the secondary, and stay in alternate mode. */ ansi_snap_one(ea_buf); } else { int i; int any = 0; static struct ea zea = { 0, 0, 0, 0, 0, 0, 0, 0 }; /* See if aea_buf has anything in it. */ for (i = 0; i < ROWS * COLS; i++) { if (memcmp(&aea_buf[i], &zea, sizeof(struct ea))) { any = 1; break; } } if (any) { /* Switch to the alternate. */ emit_decpriv(47, 'h'); /* Draw the alternate screen. */ ansi_snap_one(aea_buf); emit_cup(0); /* Switch to the primary. */ emit_decpriv(47, 'l'); } /* Draw the primary, and stay in primary mode. */ ansi_snap_one(ea_buf); } } /* * Snap the non-default terminal modes. * This is a subtle piece of logic, and may harbor a few bugs yet. */ void ansi_snap_modes(void) { int i; static char csdsel[4] = "()*+"; /* Set up the saved cursor (cursor, fg, bg, gr, cset, csd). */ if (saved_cursor != 0 || saved_fg != 0 || saved_bg != 0 || saved_gr != 0 || saved_cset != CS_G0 || saved_csd[0] != CSD_US || saved_csd[1] != CSD_US || saved_csd[2] != CSD_US || saved_csd[3] != CSD_US) { if (saved_cursor != 0) emit_cup(saved_cursor); if (saved_fg != 0) emit_sgr(30 + saved_fg); if (saved_bg != 0) emit_sgr(40 + saved_bg); if (saved_gr != 0) { if (saved_gr & GR_INTENSIFY) emit_sgr(1); if (saved_gr & GR_UNDERLINE) emit_sgr(4); if (saved_gr & GR_BLINK) emit_sgr(5); if (saved_gr & GR_REVERSE) emit_sgr(7); } if (saved_cset != CS_G0) { switch (saved_cset) { case CS_G1: space3270out(1); *obptr++ = 0x0e; break; case CS_G2: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'N'; break; case CS_G3: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'O'; break; default: break; } } for (i = 0; i < 4; i++) { if (saved_csd[i] != CSD_US) { space3270out(3); *obptr++ = 0x1b; *obptr++ = csdsel[i]; *obptr++ = gnnames[saved_csd[i]]; } } /* Emit a SAVE CURSOR to stash these away. */ space3270out(2); *obptr++ = 0x1b; *obptr++ = '7'; } /* Now set the above to their current values, except for the cursor. */ if (fg != saved_fg) emit_sgr(30 + fg); if (bg != saved_bg) emit_sgr(40 + bg); if (gr != saved_gr) { emit_sgr(0); if (gr & GR_INTENSIFY) emit_sgr(1); if (gr & GR_UNDERLINE) emit_sgr(4); if (gr & GR_BLINK) emit_sgr(5); if (gr & GR_REVERSE) emit_sgr(7); } if (cset != saved_cset) { switch (cset) { case CS_G0: space3270out(1); *obptr++ = 0x0f; break; case CS_G1: space3270out(1); *obptr++ = 0x0e; break; case CS_G2: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'n'; break; case CS_G3: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'o'; break; default: break; } } for (i = 0; i < 4; i++) { if (csd[i] != saved_csd[i]) { space3270out(3); *obptr++ = 0x1b; *obptr++ = csdsel[i]; *obptr++ = gnnames[csd[i]]; } } /* * Handle appl_cursor, wrapaparound_mode, rev_wraparound_mode, * allow_wide_mode, wide_mode and altbuffer, both the saved values and * the current ones. */ if (saved_appl_cursor) { emit_decpriv(1, 'h'); /* set */ emit_decpriv(1, 's'); /* save */ if (!appl_cursor) emit_decpriv(1, 'l'); /* reset */ } else if (appl_cursor) { emit_decpriv(1, 'h'); /* set */ } if (saved_wide_mode) { emit_decpriv(3, 'h'); /* set */ emit_decpriv(3, 's'); /* save */ if (!wide_mode) emit_decpriv(3, 'l'); /* reset */ } else if (wide_mode) { emit_decpriv(3, 'h'); /* set */ } if (saved_wraparound_mode == 0) { emit_decpriv(7, 'h'); /* set (no-wraparound mode) */ emit_decpriv(7, 's'); /* save */ if (wraparound_mode) emit_decpriv(7, 'l'); /* reset */ } else if (!wraparound_mode) { emit_decpriv(7, 'h'); /* set (no-wraparound mode) */ } if (saved_allow_wide_mode) { emit_decpriv(40, 'h'); /* set */ emit_decpriv(40, 's'); /* save */ if (!allow_wide_mode) emit_decpriv(40, 'l'); /* reset */ } else if (allow_wide_mode) { emit_decpriv(40, 'h'); /* set */ } if (saved_rev_wraparound_mode) { emit_decpriv(45, 'h'); /* set (rev--wraparound mode) */ emit_decpriv(45, 's'); /* save */ if (!rev_wraparound_mode) emit_decpriv(45, 'l'); /* reset */ } else if (rev_wraparound_mode) { emit_decpriv(45, 'h'); /* set (rev-wraparound mode) */ } if (saved_altbuffer) { emit_decpriv(47, 'h'); /* set */ emit_decpriv(47, 's'); /* save */ if (!is_altbuffer) emit_decpriv(47, 'l'); /* reset */ } /* else not necessary to set it now -- it was already set when the screen was drawn */ /* * Now take care of auto_newline, insert mode, the scroll region * and tabs. */ if (auto_newline_mode) { space3270out(4); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '4'; *obptr++ = 'h'; } if (insert_mode) { space3270out(5); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '2'; *obptr++ = '0'; *obptr++ = 'h'; } if (scroll_top != 1 || scroll_bottom != ROWS) { space3270out(10); obptr += sprintf((char *)obptr, "\033[%d;%dr", scroll_top, scroll_bottom); } if (tabs) { unsigned char *deftabs; deftabs = (unsigned char *)Malloc((COLS+7)/8); for (i = 0; i < (COLS+7)/8; i++) deftabs[i] = 0x01; for (i = 0; i < COLS; i++) { if (tabs[i/8] & 1<<(i%8)) { if (!(deftabs[i/8] & 1<<(i%8))) { /* Tab was cleared. */ space3270out(15); obptr += sprintf((char *)obptr, "\033[%d;%dH", (cursor_addr / COLS) + 1, ((cursor_addr + i) % COLS) + 1); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '0'; *obptr++ = 'g'; } } else { if (deftabs[i/8] & 1<<(i%8)) { /* Tab was set. */ space3270out(13); obptr += sprintf((char *)obptr, "\033[%d;%dH", (cursor_addr / COLS) + 1, ((cursor_addr + i) % COLS) + 1); *obptr++ = 0x1b; *obptr++ = 'H'; } } } } /* * We're done moving the cursor for other purposes (saving it, * messing with tabs). Put it where it should be now. */ emit_cup(cursor_addr); /* Now add any pending single-character CS change. */ switch (once_cset) { case CS_G2: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'N'; break; case CS_G3: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'O'; break; default: break; } /* Now add any incomplete escape sequence. */ if (pe) { int xlen = 0; for (i = 0; i < pe; i++) if (ped[i] == 0xff) xlen++; space3270out(pe + xlen); for (i = 0; i < pe; i++) { if (ped[i] == 0xff) *obptr++ = 0xff; *obptr++ = ped[i]; } } /* Last, emit any incomplete multi-byte data. */ if (pmi) { space3270out(pmi); for (i = 0; i < pmi; i++) { *obptr++ = pending_mbs[i]; } } } #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/s3270/proxy.c0000644000175000017500000005361611254565704015305 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxy.c * This module implements various kinds of proxies. */ #include "globals.h" #if !defined(PR3287) /*[*/ #include "appres.h" #include "resources.h" #endif /*]*/ #if defined(_WIN32) /*[*/ #include #include #else /*][*/ #include #include #include #include #include #if defined(HAVE_SYS_SELECT_H) /*[*/ #include /* fd_set declaration */ #endif /*]*/ #endif /*]*/ #include "3270ds.h" #include "popupsc.h" #include "proxy.h" #include "proxyc.h" #include "resolverc.h" #include "telnetc.h" #include "trace_dsc.h" #include "w3miscc.h" #if defined(PR3287) /*[*/ extern char *proxy_spec; #endif /*]*/ #if defined(_WIN32) /*[*/ typedef unsigned long in_addr_t; #endif /*]*/ /* * Supported proxy types. * * At some point we will add SOCKS. */ enum { PT_NONE, PT_PASSTHRU, /* Sun telnet-passthru */ PT_HTTP, /* RFC 2817 CONNECT tunnel */ PT_TELNET, /* 'connect host port' proxy */ PT_SOCKS4, /* SOCKS version 4 (or 4A if necessary) */ PT_SOCKS4A, /* SOCKS version 4A (force remote name resolution) */ PT_SOCKS5, /* SOCKS version 5 (RFC 1928) */ PT_SOCKS5D, /* SOCKS version 5 (force remote name resolution) */ PT_MAX } proxytype_t; /* proxy type names -- keep these in sync with proxytype_t! */ char *type_name[] = { "unknown", "passthru", "HTTP", "TELNET", "SOCKS4", "SOCKS4A", "SOCKS5", "SOCKS5D" }; static int parse_host_port(char *s, char **phost, char **pport); static int proxy_passthru(int fd, char *host, unsigned short port); static int proxy_http(int fd, char *host, unsigned short port); static int proxy_telnet(int fd, char *host, unsigned short port); static int proxy_socks4(int fd, char *host, unsigned short port, int force_a); static int proxy_socks5(int fd, char *host, unsigned short port, int force_d); char * proxy_type_name(int type) { if (type < 1 || type >= PT_MAX) return "unknown"; else return type_name[type]; } /* * Resolve the type, hostname and port for a proxy. * Returns -1 for failure, 0 for no proxy, >0 (the proxy type) for success. */ int proxy_setup(char **phost, char **pport) { char *proxy; char *colon; int sl; #if defined(PR3287) /*[*/ proxy = proxy_spec; #else /*][*/ proxy = appres.proxy; #endif /*]*/ if (proxy == CN) return PT_NONE; if ((colon = strchr(proxy, ':')) == CN || (colon == proxy)) { popup_an_error("Invalid proxy syntax"); return -1; } sl = colon - proxy; if (sl == strlen(PROXY_PASSTHRU) && !strncasecmp(proxy, PROXY_PASSTHRU, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_PASSTHRU); return PT_PASSTHRU; } if (sl == strlen(PROXY_HTTP) && !strncasecmp(proxy, PROXY_HTTP, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_HTTP); return PT_HTTP; } if (sl == strlen(PROXY_TELNET) && !strncasecmp(proxy, PROXY_TELNET, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) { popup_an_error("Must specify port for telnet proxy"); return -1; } return PT_TELNET; } if (sl == strlen(PROXY_SOCKS4) && !strncasecmp(proxy, PROXY_SOCKS4, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS4); return PT_SOCKS4; } if (sl == strlen(PROXY_SOCKS4A) && !strncasecmp(proxy, PROXY_SOCKS4A, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS4A); return PT_SOCKS4A; } if (sl == strlen(PROXY_SOCKS5) && !strncasecmp(proxy, PROXY_SOCKS5, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS5); return PT_SOCKS5; } if (sl == strlen(PROXY_SOCKS5D) && !strncasecmp(proxy, PROXY_SOCKS5D, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS5D); return PT_SOCKS5D; } popup_an_error("Invalid proxy type '%.*s'", sl, proxy); return -1; } /* * Parse host[:port] from a string. * 'host' can be in square brackets to allow numeric IPv6 addresses. * Returns the host name and port name in heap memory. * Returns -1 for failure, 0 for success. */ static int parse_host_port(char *s, char **phost, char **pport) { char *colon; char *hstart; int hlen; if (*s == '[') { char *rbrack; /* Hostname in square brackets. */ hstart = s + 1; rbrack = strchr(s, ']'); if (rbrack == CN || rbrack == s + 1 || (*(rbrack + 1) != '\0' && *(rbrack + 1) != ':')) { popup_an_error("Invalid proxy hostname syntax"); return -1; } if (*(rbrack + 1) == ':') colon = rbrack + 1; else colon = NULL; hlen = rbrack - (s + 1); } else { hstart = s; colon = strchr(s, ':'); if (colon == s) { popup_an_error("Invalid proxy hostname syntax"); return -1; } if (colon == NULL) hlen = strlen(s); else hlen = colon - s; } /* Parse the port. */ if (colon == CN || !*(colon + 1)) *pport = CN; else *pport = NewString(colon + 1); /* Copy out the hostname. */ *phost = Malloc(hlen + 1); strncpy(*phost, hstart, hlen); (*phost)[hlen] = '\0'; return 0; } /* * Negotiate with the proxy server. * Returns -1 for failure, 0 for success. */ int proxy_negotiate(int type, int fd, char *host, unsigned short port) { switch (type) { case PT_NONE: return 0; case PT_PASSTHRU: return proxy_passthru(fd, host, port); case PT_HTTP: return proxy_http(fd, host, port); case PT_TELNET: return proxy_telnet(fd, host, port); case PT_SOCKS4: return proxy_socks4(fd, host, port, 0); case PT_SOCKS4A: return proxy_socks4(fd, host, port, 1); case PT_SOCKS5: return proxy_socks5(fd, host, port, 0); case PT_SOCKS5D: return proxy_socks5(fd, host, port, 1); default: return -1; } } /* Sun PASSTHRU proxy. */ static int proxy_passthru(int fd, char *host, unsigned short port) { char *buf; buf = Malloc(strlen(host) + 32); (void) sprintf(buf, "%s %u\r\n", host, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("Passthru Proxy: xmit '%.*s'", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("Passthru Proxy: send error"); Free(buf); return -1; } Free(buf); return 0; } /* HTTP (RFC 2817 CONNECT tunnel) proxy. */ static int proxy_http(int fd, char *host, unsigned short port) { char *buf; char *colon; char rbuf[1024]; int nr; int nread = 0; char *space; /* Send the CONNECT request. */ buf = Malloc(64 + strlen(host)); colon = strchr(host, ':'); sprintf(buf, "CONNECT %s%s%s:%u HTTP/1.1\r\n", (colon? "[": ""), host, (colon? "]": ""), port); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } sprintf(buf, "Host: %s%s%s:%u\r\n", (colon? "[": ""), host, (colon? "]": ""), port); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } strcpy(buf, "\r\n"); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit ''\n"); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } Free(buf); /* * Process the reply. * Read a byte at a time until \n or EOF. */ for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("HTTP Proxy: server timeout"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ return -1; } nr = recv(fd, &rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("HTTP Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ return -1; } if (nr == 0) { #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ popup_an_error("HTTP Proxy: unexpected EOF"); return -1; } if (rbuf[nread] == '\r') continue; if (rbuf[nread] == '\n') break; if ((size_t)++nread >= sizeof(rbuf)) { nread = sizeof(rbuf) - 1; break; } } rbuf[nread] = '\0'; #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)rbuf, nread); trace_dsn("HTTP Proxy: recv '%s'\n", rbuf); #endif /*]*/ if (strncmp(rbuf, "HTTP/", 5) || (space = strchr(rbuf, ' ')) == CN) { popup_an_error("HTTP Proxy: unrecognized reply"); return -1; } if (*(space + 1) != '2') { popup_an_error("HTTP Proxy: CONNECT failed:\n%s", rbuf); return -1; } return 0; } /* TELNET proxy. */ static int proxy_telnet(int fd, char *host, unsigned short port) { char *buf; buf = Malloc(strlen(host) + 32); (void) sprintf(buf, "connect %s %u\r\n", host, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("TELNET Proxy: xmit '%.*s'", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("TELNET Proxy: send error"); Free(buf); return -1; } Free(buf); return 0; } /* SOCKS version 4 proxy. */ static int proxy_socks4(int fd, char *host, unsigned short port, int force_a) { struct hostent *hp; struct in_addr ipaddr; int use_4a = 0; char *user; char *buf; char *s; char rbuf[8]; int nr; int nread = 0; unsigned short rport; /* Resolve the hostname to an IPv4 address. */ if (force_a) use_4a = 1; else { hp = gethostbyname(host); if (hp != NULL) { memcpy(&ipaddr, hp->h_addr, hp->h_length); } else { ipaddr.s_addr = inet_addr(host); if (ipaddr.s_addr == (in_addr_t)-1) use_4a = 1; } } /* Resolve the username. */ user = getenv("USER"); if (user == CN) user = "nobody"; /* Send the request to the server. */ if (use_4a) { buf = Malloc(32 + strlen(user) + strlen(host)); s = buf; *s++ = 0x04; *s++ = 0x01; SET16(s, port); SET32(s, 0x00000001); strcpy(s, user); s += strlen(user) + 1; strcpy(s, host); s += strlen(host) + 1; #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS4 Proxy: version 4 connect port %u " "address 0.0.0.1 user '%s' host '%s'\n", port, user, host); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { popup_a_sockerr("SOCKS4 Proxy: send error"); Free(buf); return -1; } Free(buf); } else { unsigned long u; buf = Malloc(32 + strlen(user)); s = buf; *s++ = 0x04; *s++ = 0x01; SET16(s, port); u = ntohl(ipaddr.s_addr); SET32(s, u); strcpy(s, user); s += strlen(user) + 1; #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS4 Proxy: xmit version 4 connect port %u " "address %s user '%s'\n", port, inet_ntoa(ipaddr), user); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { Free(buf); popup_a_sockerr("SOCKS4 Proxy: send error"); return -1; } Free(buf); } /* * Process the reply. * Read 8 bytes of response. */ for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS4 Proxy: server timeout"); return -1; } nr = recv(fd, &rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS4 Proxy: receive error"); return -1; } if (nr == 0) break; if ((size_t)++nread >= sizeof(rbuf)) break; } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)rbuf, nread); if (use_4a) { struct in_addr a; rport = (rbuf[2] << 8) | rbuf[3]; memcpy(&a, &rbuf[4], 4); trace_dsn("SOCKS4 Proxy: recv status 0x%02x port %u " "address %s\n", rbuf[1], rport, inet_ntoa(a)); } else trace_dsn("SOCKS4 Proxy: recv status 0x%02x\n", rbuf[1]); #endif /*]*/ switch (rbuf[1]) { case 0x5a: break; case 0x5b: popup_an_error("SOCKS4 Proxy: request rejected or failed"); return -1; case 0x5c: popup_an_error("SOCKS4 Proxy: client is not reachable"); return -1; case 0x5d: popup_an_error("SOCKS4 Proxy: userid error"); return -1; default: popup_an_error("SOCKS4 Proxy: unknown status 0x%02x", rbuf[1]); return -1; } return 0; } /* SOCKS version 5 (RFC 1928) proxy. */ static int proxy_socks5(int fd, char *host, unsigned short port, int force_d) { union { struct sockaddr sa; struct sockaddr_in sin; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sin6; #endif /*]*/ } ha; socklen_t ha_len = 0; int use_name = 0; char *buf; char *s; unsigned char rbuf[8]; int nr; int nread = 0; int n2read = 0; char nbuf[256]; int done = 0; #if defined(X3270_TRACE) /*[*/ char *atype_name[] = { "", "IPv4", "", "domainname", "IPv6" }; unsigned char *portp; unsigned short rport; #endif /*]*/ if (force_d) use_name = 1; else { char errmsg[1024]; int rv; /* Resolve the hostname. */ rv = resolve_host_and_port(host, CN, 0, &rport, &ha.sa, &ha_len, errmsg, sizeof(errmsg), NULL); if (rv == -2) use_name = 1; else if (rv < 0) { popup_an_error("SOCKS5 proxy: %s/%u: %s", host, port, errmsg); return -1; } } /* Send the authentication request to the server. */ strcpy((char *)rbuf, "\005\001\000"); #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: xmit version 5 nmethods 1 (no auth)\n"); trace_netdata('>', rbuf, 3); #endif /*]*/ if (send(fd, (char *)rbuf, 3, 0) < 0) { popup_a_sockerr("SOCKS5 Proxy: send error"); return -1; } /* * Wait for the server reply. * Read 2 bytes of response. */ nread = 0; for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS5 Proxy: server timeout"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } nr = recv(fd, (char *)&rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS5 Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } if (nr == 0) { popup_a_sockerr("SOCKS5 Proxy: unexpected EOF"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } if (++nread >= 2) break; } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', rbuf, nread); #endif /*]*/ if (rbuf[0] != 0x05 || (rbuf[1] != 0 && rbuf[1] != 0xff)) { popup_an_error("SOCKS5 Proxy: bad authentication response"); return -1; } #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: recv version %d method %d\n", rbuf[0], rbuf[1]); #endif /*]*/ if (rbuf[1] == 0xff) { popup_an_error("SOCKS5 Proxy: authentication failure"); return -1; } /* Send the request to the server. */ buf = Malloc(32 + strlen(host)); s = buf; *s++ = 0x05; /* protocol version 5 */ *s++ = 0x01; /* CONNECT */ *s++ = 0x00; /* reserved */ if (use_name) { *s++ = 0x03; /* domain name */ *s++ = strlen(host); strcpy(s, host); s += strlen(host); } else if (ha.sa.sa_family == AF_INET) { *s++ = 0x01; /* IPv4 */ memcpy(s, &ha.sin.sin_addr, 4); s += 4; strcpy(nbuf, inet_ntoa(ha.sin.sin_addr)); #if defined(AF_INET6) /*[*/ } else { *s++ = 0x04; /* IPv6 */ memcpy(s, &ha.sin6.sin6_addr, sizeof(struct in6_addr)); s += sizeof(struct in6_addr); (void) inet_ntop(AF_INET6, &ha.sin6.sin6_addr, nbuf, sizeof(nbuf)); #endif /*]*/ } SET16(s, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: xmit version 5 connect %s %s port %u\n", use_name? "domainname": ((ha.sa.sa_family == AF_INET)? "IPv4": "IPv6"), use_name? host: nbuf, port); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { popup_a_sockerr("SOCKS5 Proxy: send error"); Free(buf); return -1; } Free(buf); /* * Process the reply. * Only the first two bytes of the response are interesting; * skip the rest. */ nread = 0; done = 0; buf = NULL; while (!done) { fd_set rfds; struct timeval tv; unsigned char r; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS5 Proxy: server timeout"); return -1; } nr = recv(fd, (char *)&r, 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS5 Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } if (nr == 0) { popup_an_error("SOCKS5 Proxy: unexpected EOF"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } buf = Realloc(buf, nread + 1); buf[nread] = r; switch (nread++) { case 0: if (r != 0x05) { popup_an_error("SOCKS5 Proxy: incorrect " "reply version 0x%02x", r); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } break; case 1: #if defined(X3270_TRACE) /*[*/ if (r != 0x00) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ switch (r) { case 0x00: break; case 0x01: popup_an_error("SOCKS5 Proxy: server failure"); return -1; case 0x02: popup_an_error("SOCKS5 Proxy: connection not " "allowed"); return -1; case 0x03: popup_an_error("SOCKS5 Proxy: network " "unreachable"); return -1; case 0x04: popup_an_error("SOCKS5 Proxy: host " "unreachable"); return -1; case 0x05: popup_an_error("SOCKS5 Proxy: connection " "refused"); return -1; case 0x06: popup_an_error("SOCKS5 Proxy: ttl expired"); return -1; case 0x07: popup_an_error("SOCKS5 Proxy: command not " "supported"); return -1; case 0x08: popup_an_error("SOCKS5 Proxy: address type " "not supported"); return -1; default: popup_an_error("SOCKS5 Proxy: unknown server " "error 0x%02x", r); return -1; } break; case 2: break; case 3: switch (r) { case 0x01: n2read = 6; break; case 0x03: n2read = -1; break; #if defined(AF_INET6) /*[*/ case 0x04: n2read = sizeof(struct in6_addr) + 2; break; #endif /*]*/ default: popup_an_error("SOCKS5 Proxy: unknown server " "address type 0x%02x", r); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } break; default: if (n2read == -1) n2read = r + 2; else if (!--n2read) done = 1; break; } } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)buf, nread); switch (buf[3]) { case 0x01: /* IPv4 */ memcpy(&ha.sin.sin_addr, &buf[4], 4); strcpy(nbuf, inet_ntoa(ha.sin.sin_addr)); portp = (unsigned char *)&buf[4 + 4]; break; case 0x03: /* domainname */ strncpy(nbuf, &buf[5], buf[4]); nbuf[(unsigned char)buf[4]] = '\0'; portp = (unsigned char *)&buf[5 + (unsigned char)buf[4]]; break; #if defined(AF_INET6) /*[*/ case 0x04: /* IPv6 */ memcpy(&ha.sin6.sin6_addr, &buf[4], sizeof(struct in6_addr)); (void) inet_ntop(AF_INET6, &ha.sin6.sin6_addr, nbuf, sizeof(nbuf)); portp = (unsigned char *)&buf[4 + sizeof(struct in6_addr)]; break; #endif /*]*/ default: /* can't happen */ nbuf[0] = '\0'; portp = (unsigned char *)buf; break; } rport = (*portp << 8) + *(portp + 1); trace_dsn("SOCKS5 Proxy: recv version %d status 0x%02x address %s %s " "port %u\n", buf[0], buf[1], atype_name[(unsigned char)buf[3]], nbuf, rport); #endif /*]*/ Free(buf); return 0; } ibm-3270-3.3.10ga4/s3270/popupsc.h0000644000175000017500000000331511254565673015616 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of popupsc.h */ extern void popup_an_errno(int errn, const char *fmt, ...); extern void popup_an_error(const char *fmt, ...); extern void action_output(const char *fmt, ...); ibm-3270-3.3.10ga4/s3270/telnetc.h0000644000175000017500000000624411254565704015562 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * telnetc.h * Global declarations for telnet.c. */ /* Output buffer. */ extern unsigned char *obuf, *obptr; /* Spelled-out tty control character. */ struct ctl_char { const char *name; char value[3]; }; extern void net_abort(void); extern Boolean net_add_dummy_tn3270e(void); extern void net_add_eor(unsigned char *buf, int len); extern void net_break(void); extern void net_charmode(void); extern int net_connect(const char *, char *, Boolean, Boolean *, Boolean *); extern void net_disconnect(void); extern void net_exception(void); extern int net_getsockname(void *buf, int *len); extern void net_hexansi_out(unsigned char *buf, int len); extern void net_input(void); extern void net_interrupt(void); extern void net_linemode(void); extern struct ctl_char *net_linemode_chars(void); extern void net_output(void); extern const char *net_query_bind_plu_name(void); extern const char *net_query_connection_state(void); extern const char *net_query_host(void); extern const char *net_query_lu_name(void); extern void net_sendc(char c); extern void net_sends(const char *s); extern void net_send_erase(void); extern void net_send_kill(void); extern void net_send_werase(void); extern Boolean net_snap_options(void); extern void space3270out(int n); extern const char *tn3270e_current_opts(void); extern void trace_netdata(char direction, unsigned const char *buf, int len); extern void popup_a_sockerr(char *fmt, ...) printflike(1, 2); extern char *net_proxy_type(void); extern char *net_proxy_host(void); extern char *net_proxy_port(void); extern Boolean net_bound(void); ibm-3270-3.3.10ga4/s3270/dialogc.h0000644000175000017500000000307611254565673015533 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * dialogc.h * Empty definitions for dialog.c. */ ibm-3270-3.3.10ga4/s3270/X3270.xad0000644000175000017500000017653011256027001015163 0ustar bastianbastian! ! Copyright (c) 1995-2009, Paul Mattes. ! All rights reserved. ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions are met: ! * Redistributions of source code must retain the above copyright ! notice, this list of conditions and the following disclaimer. ! * Redistributions in binary form must reproduce the above copyright ! notice, this list of conditions and the following disclaimer in the ! documentation and/or other materials provided with the distribution. ! * Neither the names of Paul Mattes nor the names of his contributors ! may be used to endorse or promote products derived from this software ! without specific prior written permission. ! ! THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED ! WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ! MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO ! EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ! OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ! WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ! ! x3270 app-defaults file. This file is generally compiled into x3270, rather ! than installed. ! ! This file is in three sections: ! ! (1) User-Modifiable Resources ! Resources that are likeliest to be modified by an end user. ! ! (2) Labels and Messages ! Resources that are likely to be modified for translation into another ! language. ! ! (3) Base-Level Resources ! Resources required for the basic operation of x3270, not for the ! faint-hearted to modify. ! !============================================================================= ! Section 1: User-Modifiable Resources ! ! Resources that are likeliest to be modified by an end user. !============================================================================= ! ! Many of the resource definitions are commented out, because they are ! the defaults defined in x3270 itself. They are listed here so you can ! easily uncomment and change them. #ifndef STANDALONE ! ! Fonts ! *.emulatorFont: 3270 ! ! Color schemes for full-color (3279) mode ! Each scheme is a list of 23 items: ! 0 X color to use for IBM "neutral/black" (also used as ANSI color 0) ! 1 X color to use for IBM "blue" (also used for ANSI color 4) ! 2 X color to use for IBM "red" (also used for ANSI color 1) ! 3 X color to use for IBM "pink" (also used for ANSI color 5) ! 4 X color to use for IBM "green" (also used for ANSI color 2) ! 5 X color to use for IBM "turquoise" ! 6 X color to use for IBM "yellow" (also used for ANSI color 3) ! 7 X color to use for IBM "neutral/white" ! 8 X color to use for IBM "black" ! 9 X color to use for IBM "deep blue" ! 10 X color to use for IBM "orange" ! 11 X color to use for IBM "purple" ! 12 X color to use for IBM "pale green" ! 13 X color to use for IBM "pale turquoise" (also used for ANSI color 6) ! 14 X color to use for IBM "grey" ! 15 X color to use for IBM "white" (also used for ANSI color 7) ! 16 X color to use if one of 0..15 cannot be allocated (white or black) ! 17 X color to use as the default screen background ! 18 X color to use as the select background ! 19 IBM color index (0..15) to use for unprotected, unhighlighted fields ! 20 IBM color index (0..15) to use for unprotected, highlighted fields ! 21 IBM color index (0..15) to use for protected, unhighlighted fields ! 22 IBM color index (0..15) to use for protected, highlighted fields ! ! x3270.colorScheme: default x3270.colorScheme.default: \ black deepSkyBlue red pink \ green turquoise yellow white \ black blue3 orange purple \ paleGreen paleTurquoise2 grey white \ white black dimGrey \ 4 2 1 15 x3270.colorScheme.reverse: \ black blue firebrick pink \ green4 cadetBlue goldenrod black \ black blue3 orange purple \ paleGreen darkTurquoise grey black \ black white dimGrey \ 4 2 1 0 x3270.colorScheme.bright: \ black blue red magenta \ green turquoise yellow white \ black blue3 orange purple \ paleGreen cyan grey white \ white black dimGrey \ 4 2 1 15 x3270.colorScheme.cpe: \ black LightBlue1 PaleVioletRed1 \ pink green turquoise yellow white \ black LightBlue3 orange MediumPurple1 \ paleGreen paleTurquoise2 grey80 white \ white black dimGrey \ 4 2 1 15 x3270.colorScheme.greenScreen: \ green green green green \ green green green green \ green green green green \ green green green green \ white black dimGrey \ 4 15 4 15 #ifdef X3270_MENUS ! Color schemes listed on the Options color menu x3270.schemeList: Default 3279: default\n\ Bright: bright\n\ Reverse: reverse\n\ Green Screen: greenScreen ! Character sets listed on the Options menu x3270.charsetList: U.S. English (CP 037): us-intl\n\ Bracket (CP 037, modified): bracket\n\ APL (CP 037): apl\n\ Euro>U.S. English (CP 1140): us-euro\n\ Euro>Belgian (CP 1148): belgian-euro\n\ Euro>Finnish (CP 1143): finnish-euro\n\ Euro>French (CP 1147): french-euro\n\ Euro>German (CP 1141): german-euro\n\ Euro>Icelandic (CP 1149): icelandic-euro\n\ Euro>Italian (CP 1144): italian-euro\n\ Euro>Norwegian (CP 1142): norwegian-euro\n\ Euro>Spanish (CP 1145): spanish-euro\n\ Euro>United Kingdom (CP 1146): uk-euro\n\ Belgian (CP 500): belgian\n\ Brazilian (CP 275): brazilian\n\ #ifdef X3270_DBCS Chinese Simplified (CP 935): simplified-chinese\n\ Chinese GB 18030 (CP 1388): chinese-gb18030\n\ Chinese Traditional (CP 937): traditional-chinese\n\ #endif Finnish (CP 278): finnish\n\ French (CP 297): french\n\ German (CP 273): german\n\ Greek (CP 875): greek\n\ Hebrew (CP 424): hebrew\n\ Icelandic (CP 871): icelandic\n\ Italian (CP 280): italian\n\ #ifdef X3270_DBCS Japanese w/Kana (CP 930): japanese-kana\n\ Japanese w/Latin (CP 939): japanese-latin\n\ #endif Norwegian (CP 277): norwegian\n\ Open Systems (CP 1047): cp1047\n\ Polish (CP 870): cp870\n\ Russian (CP 880): russian\n\ Slovenian (CP 870): cp870\n\ Spanish (CP 284): spanish\n\ Thai (CP 1160): thai\n\ Turkish (CP 1026): turkish\n\ United Kingdom (CP 285): uk\n #endif ! ! Pseudo-colors for 3278 mode ! x3270.colorBackground: black ! x3270.selectBackground: dimGrey ! x3270.normalColor: green ! Note: the following values are the new defaults, which cause 3278's ! to display everything in green. ! x3270.inputColor: green ! x3270.boldColor: green ! To resurrect x3270's Pseudo-Color mode, which was how 3278's were ! displayed up through x3270 3.3.5, set the following resource values: ! x3270.inputColor: orange ! x3270.boldColor: cyan ! ! Cursors ! x3270.normalCursor: top_left_arrow ! x3270.waitCursor: watch ! x3270.lockedCursor: X_cursor ! ! Line-mode Telnet parameters ! x3270.icrnl: true ! x3270.inlcr: false ! x3270.erase: ^? ! x3270.kill: ^U ! x3270.werase: ^W ! x3270.rprnt: ^R ! x3270.lnext: ^V ! x3270.intr: ^C ! x3270.quit: ^\\ ! x3270.eof: ^D ! ! Toggles, using the same names as the "-set" and "-clear" options ! x3270.altCursor: false ! x3270.blankFill: false ! x3270.crosshair: false ! x3270.cursorBlink: false ! x3270.cursorPos: true ! x3270.dsTrace: false ! x3270.eventTrace: false ! x3270.lineWrap: true ! x3270.marginedPaste: false ! x3270.monoCase: false ! x3270.rectangleSelect: false ! x3270.screenTrace: false ! x3270.scrollBar: false ! x3270.showTiming: false ! ! Miscellaneous configuration parameters ! x3270.activeIcon: false ! x3270.allowResize: true ! x3270.bellVolume: 0 ! x3270.charset: bracket ! x3270.composeMap: latin1 ! x3270.connectFileName: ~/.x3270connect ! x3270.doConfirms: true ! x3270.debugTracing: true ! x3270.disconnectClear: false ! x3270.hostsFile: /usr/lib/X11/x3270/ibm_hosts ! x3270.highlightSelect: true ! x3270.idleCommand: ! x3270.idleTimeout: ~7m ! x3270.inputMethod: ! x3270.invertKeypadShift: false ! x3270.keymap: ! x3270.keypad: right ! x3270.keypadOn: false ! x3270.labelIcon: false ! x3270.m3279: false ! x3270.macros: ! x3270.menuBar: true ! x3270.modifiedSel: false ! x3270.modifiedSelColor: 10 ! x3270.model: 4 ! x3270.mono: false ! x3270.numericLock: false ! x3270.once: false ! x3270.pluginCommand: x3270hist.pl ! x3270.port: telnet ! x3270.preeditType: OverTheSpot+1 ! x3270.saveLines: 64 ! x3270.scripted: false ! x3270.suppressHost: false ! x3270.suppressFontMenu: false ! x3270.termName: ! x3270.traceDir: /tmp ! x3270.cursorColor: red ! (note: cursorColor is not used unless useCursorColor is true, below) ! x3270.useCursorColor: false ! x3270.visualBell: false ! x3270.visualSelect: false ! x3270.visualSelectColor: 6 ! ! Fonts listed on the Options menu and for screen resizing x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-1: \ 3270 Font (14 point): #resize 3270\n\ 8-point Font: #resize 3270gt8\n\ 12-point Font: #resize 3270-12\n\ 16-point Font: #resize 3270gt16\n\ 20-point Font: #resize 3270-20\n\ 24-point Font: #resize 3270gt24\n\ 32-point Font: #resize 3270gt32 x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-15: \ 3270 Font (14 point): #resize 3270\n\ 8-point Font: #resize 3270gt8\n\ 12-point Font: #resize 3270-12\n\ 16-point Font: #resize 3270gt16\n\ 20-point Font: #resize 3270-20\n\ 24-point Font: #resize 3270gt24\n\ 32-point Font: #resize 3270gt32 x3270.emulatorFontList.3270cg-1a,iso10646-1: 3270 x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-1+gb2312.1980-0,iso10646-1: \ 14-point 3270: 3270+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\ 20-point 3270: 3270-20+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\ 8x16: 8x16+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\ 12x24: 12x24+-isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0 x3270.emulatorFontList.iso10646-1,jisx0201.1976-0+jisx0208.1983-0,iso10646-1: \ 14-point: -misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0+-misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-0\n\ 16-point: -sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0+-jis-fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1983-0\n\ 18-point: -sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0+-misc-fixed-medium-r-normal-ja-18-120-100-100-c-180-iso10646-1\n\ 24-point: -sony-fixed-medium-r-normal--24-230-75-75-c-120-jisx0201.1976-0+-jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1983-0 x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-1+big5-0,iso10646-1: fixed+-wenquanyi-wenquanyi bitmap song-bold-r-normal--13-130-75-75-p-80-iso10646-1 #endif ! ! Print commands x3270.printTextCommand: lpr #ifndef STANDALONE x3270.printWindowCommand: xwd -id %d | xpr | lpr ! ! System V versions of print commands ! x3270.printTextCommand: lp ! x3270.printWindowCommand: xwd -id %d | xpr | lp ! ! Trace window command x3270.traceCommand: tail -f ! ! File transfer command ! x3270.ftCommand: ind$file ! ! Printer session options #endif #ifdef _WIN32 x3270.printer.assocCommandLine: wpr3287.exe -assoc %L% %R% %P% %I% %H% x3270.printer.luCommandLine: wpr3287.exe %R% %P% %I% %L%@%H% ! x3270.printer.name: #else x3270.printer.command: lpr x3270.printer.assocCommandLine: pr3287 -assoc %L% -command "%C%" %R% %P% "%H%" x3270.printer.luCommandLine: pr3287 -command "%C%" %R% %P% "%L%@%H%" #endif #ifndef STANDALONE ! ! Translation table for the '@server' pseudo-keymap, which is the keymap ! you get by default (in addition to the 'base' keymap, below). Maps server ! vendor strings to keymap names. x3270.serverKeymapList: \ Sun Microsystems, Inc.: sun_k5\n\ Hewlett-Packard Company: hp-k1\n ! ! Keymaps (keyboard and mouse mappings) ! ! Base keymap: What you get by default, in both 3270 and NVT modes. Any other ! user-specified keymap is logically added to this keymap. x3270.keymap.base: \ :Multi_key: Compose()\n\ Ctrl: HandleMenu(fileMenu)\n\ Ctrl: HandleMenu(optionsMenu)\n\ Ctrl: HandleMenu(hostMenu,macrosMenu)\n\ : SelectDown()\n\ ~Shift: SelectMotion()\n\ : ignore()\n\ : ignore()\n\ : insert-selection(PRIMARY)\n\ : start-extend()\n\ : select-extend()\n\ ~Shift: SelectUp(PRIMARY)\n\ ShiftInsert: insert-selection(PRIMARY)\n\ ShiftUp: KybdSelect(Up,PRIMARY)\n\ ShiftDown: KybdSelect(Down,PRIMARY)\n\ ShiftLeft: KybdSelect(Left,PRIMARY)\n\ ShiftRight: KybdSelect(Right,PRIMARY)\n\ ShiftF1: PF(13)\n\ ShiftF2: PF(14)\n\ ShiftF3: PF(15)\n\ ShiftF4: PF(16)\n\ ShiftF5: PF(17)\n\ ShiftF6: PF(18)\n\ ShiftF7: PF(19)\n\ ShiftF8: PF(20)\n\ ShiftF9: PF(21)\n\ ShiftF10: PF(22)\n\ ShiftF11: PF(23)\n\ ShiftF12: PF(24)\n\ MetaF1: PF(13)\n\ AltF1: PF(13)\n\ MetaF2: PF(14)\n\ AltF2: PF(14)\n\ MetaF3: PF(15)\n\ AltF3: PF(15)\n\ MetaF4: PF(16)\n\ AltF4: PF(16)\n\ MetaF5: PF(17)\n\ AltF5: PF(17)\n\ MetaF6: PF(18)\n\ AltF6: PF(18)\n\ MetaF7: PF(19)\n\ AltF7: PF(19)\n\ MetaF8: PF(20)\n\ AltF8: PF(20)\n\ MetaF9: PF(21)\n\ AltF9: PF(21)\n\ MetaF10: PF(22)\n\ AltF10: PF(22)\n\ MetaF11: PF(23)\n\ AltF11: PF(23)\n\ MetaF12: PF(24)\n\ AltF12: PF(24)\n\ :F1: PF(1)\n\ :F2: PF(2)\n\ :F3: PF(3)\n\ :F4: PF(4)\n\ :F5: PF(5)\n\ :F6: PF(6)\n\ :F7: PF(7)\n\ :F8: PF(8)\n\ :F9: PF(9)\n\ :F10: PF(10)\n\ :F11: PF(11)\n\ :F12: PF(12)\n\ :Print: PrintText()\n\ Altq: Quit()\n\ :dead_acute: Compose() Key(apostrophe)\n\ :dead_grave: Compose() Key(grave)\n\ :dead_circumflex: Compose() Key(asciicircum)\n\ :dead_tilde: Compose() Key(asciitilde)\n\ :dead_diaeresis: Compose() Key(quotedbl)\n ! ! Base keymap for 3270 mode. These mappings are added to the base keymap, ! but only when in 3270 mode. ! These were originally part of the base keymap, but were moved here, because ! they were no-ops in NVT mode, or interfered with NVT-mode data entry. ! ! Note that as yet, there is no x3270.keymap.base.nvt, which would define the ! base keymap extensions for NVT mode. ! x3270.keymap.base.3270: #override \ :Ctrl Shift: MouseSelect()\n\ Shift: MoveCursor()\n\ ShiftReturn: Newline()\n\ :Return: Enter()\n\ :Linefeed: Newline()\n\ :BackSpace: Erase()\n\ ShiftTab: BackTab()\n\ :MetaLeft: PreviousWord()\n\ :AltLeft: PreviousWord()\n\ :MetaRight: NextWord()\n\ :AltRight: NextWord()\n\ :Meta1: PA(1)\n\ :Alt1: PA(1)\n\ :Meta2: PA(2)\n\ :Alt2: PA(2)\n\ :Meta3: PA(3)\n\ :Alt3: PA(3)\n\ Metaa: Attn()\n\ Alta: Attn()\n\ Metab: PrintWindow()\n\ Altb: PrintWindow()\n\ Metac: Clear()\n\ Altc: Clear()\n\ Metad: Delete()\n\ Altd: Delete()\n\ Metae: EraseEOF()\n\ Alte: EraseEOF()\n\ Metaf: Flip()\n\ Altf: Flip()\n\ Metah: Home()\n\ Alth: Home()\n\ Metai: Insert()\n\ Alti: Insert()\n\ Metal: Redraw()\n\ Altl: Redraw()\n\ Metap: PrintText()\n\ Altp: PrintText()\n\ Metar: Reset()\n\ Altr: Reset()\n\ Metau: Unselect()\n\ Altu: Unselect()\n\ Ctrla: SelectAll(PRIMARY)\n\ Ctrlc: set-select(CLIPBOARD)\n\ Ctrlu: DeleteField()\n\ Ctrlw: DeleteWord()\n\ Ctrlv: insert-selection(CLIPBOARD)\n\ Altv: ToggleReverse()\n\ Metav: ToggleReverse() ! Keymap that exercises the optional history plugin. x3270.keymap.hist: ShiftPrior: Plugin(command,prev)\n\ ShiftNext: Plugin(command,next) ! Keymap that restores the old (pre 3.3) mouse-click behavior. x3270.keymap.oldclick: #override\n\ Ctrl: HandleMenu(fileMenu)\n\ Ctrl: HandleMenu(optionsMenu)\n\ Ctrl: HandleMenu(hostMenu,macrosMenu)\n\ : select-start()\n\ ~Shift: select-extend()\n\ : ignore()\n\ : ignore()\n\ : insert-selection(PRIMARY)\n\ : start-extend()\n\ : select-extend()\n\ ~Shift: select-end(PRIMARY) x3270.keymap.oldclick.3270: #override\n\ :Ctrl Shift: MouseSelect()\n\ Shift: MoveCursor() ! ! Start of keyboard-specific mappings. ! ! Sun Type 5 keyboard map. Not compatible with earlier Type 3 and Type 4 ! keymaps, but does a better job of mapping intuitive functions to the ! existing key labels, and has fewer surprises. x3270.keymap.sun_k5: \ Shift0x1005ff10: PF(23)\n\ Shift0x1005ff11: PF(24)\n\ :0x1005ff10: PF(11)\n\ :0x1005ff11: PF(12)\n\ ~@Num_LockF27: Home()\n\ ~@Num_LockF33: FieldEnd()\n\ :F18: insert-selection(PRIMARY)\n\ ShiftF22: SysReq()\n\ :F22: PrintText()\n\ KP_Enter: Newline()\n ! Sun Type 4 keyboard map, backwards-compatible with earlier versions of x3270. x3270.keymap.sun_k4: \ Shift0x1005ff10: PF(23)\n\ Shift0x1005ff11: PF(24)\n\ :0x1005ff10: PF(11)\n\ :0x1005ff11: PF(12)\n\ :KP_1: Key(1)\n\ :KP_2: Key(2)\n\ :KP_3: Key(3)\n\ :KP_4: Key(4)\n\ :KP_5: Key(5)\n\ :KP_6: Key(6)\n\ :KP_7: Key(7)\n\ :KP_8: Key(8)\n\ :KP_9: Key(9)\n\ :KP_0: Key(0)\n\ :KP_Decimal: Key(.)\n\ :F18: insert-selection(PRIMARY)\n\ :F19: SysReq()\n\ :F20: FieldMark()\n\ :F21: PA(1)\n\ :F22: PA(2)\n\ :F23: Dup()\n\ :F24: Reset()\n\ :F25: EraseEOF()\n\ :F26: EraseInput()\n\ :F27: Clear()\n\ :F29: Redraw()\n\ :F31: Home()\n\ :KP_Enter: Newline()\n\ :F35: Delete()\n ! Sun Type 3 keyboard. x3270.keymap.sun_k3: \ ShiftF21: PF(22)\n\ ShiftF22: PF(23)\n\ ShiftF23: PF(24)\n\ :MetaF21: PA(1)\n\ :MetaF22: PA(2)\n\ :MetaF23: Dup()\n\ :F19: SysReq()\n\ :0x0: FieldMark()\n\ :F21: PF(10)\n\ :F22: PF(11)\n\ :F23: PF(12)\n\ :F24: Reset()\n\ :F25: EraseEOF()\n\ :F26: EraseInput()\n\ :F27: Clear()\n\ :F31: Home()\n\ :F29: Redraw()\n\ :KP_Enter: Newline()\n\ :F35: Delete()\n x3270.keymap.ncd: \ :F13: Dup()\n\ :Linefeed: Dup()\n\ :F14: FieldMark()\n\ :Break: FieldMark()\n\ :Home: Home()\n\ :F17: Home()\n\ :End: EraseEOF()\n\ :F15: Reset()\n\ :Prior: Reset()\n\ :F16: Newline()\n\ :Next: Newline()\n\ :KP_Add: EraseInput()\n\ :Num_Lock: PF(13)\n\ :KP_Space: PF(13)\n\ :KP_Divide: PF(14)\n\ :KP_Multiply: PF(15)\n\ :KP_7: PF(16)\n\ :KP_8: PF(17)\n\ :KP_9: PF(18)\n\ :KP_4: PF(19)\n\ :KP_5: PF(20)\n\ :KP_6: PF(21)\n\ :KP_1: PF(22)\n\ :KP_2: PF(23)\n\ :KP_3: PF(24)\n\ :KP_Subtract: SysReq()\n\ :KP_0: PA(2)\n\ :KP_Decimal: PA(1)\n\ :KP_Enter: Clear()\n x3270.keymap.hp-k1: \ :KP_Tab: BackTab()\n\ :KP_Enter: Home()\n\ :KP_Separator: Delete()\n\ ShiftDelete: Delete()\n\ :Menu: EraseEOF()\n\ :KP_Multiply: PF(13)\n\ :KP_Divide: PF(14)\n\ :KP_Add: PF(15)\n\ :KP_7: PF(16)\n\ :KP_8: PF(17)\n\ :KP_9: PF(18)\n\ :KP_4: PF(19)\n\ :KP_5: PF(20)\n\ :KP_6: PF(21)\n\ :KP_1: PF(22)\n\ :KP_2: PF(23)\n\ :KP_3: PF(24)\n\ :KP_0: PA(2)\n\ :KP_Decimal: PA(1)\n ! Keymap for HP-PC101 workstation keyboard, Chris P-E x3270.keymap.hp-pc: \ :KP_Subtract: Compose()\n\ :KP_Enter: Enter()\n\ :Return: Newline()\n\ !F1: PF(1)\n\ !F2: PF(2)\n\ !F3: PF(3)\n\ !F4: PF(4)\n\ !F5: PF(5)\n\ !F6: PF(6)\n\ !F7: PF(7)\n\ !F8: PF(8)\n\ !F9: PF(9)\n\ !F10: PF(10)\n\ !F11: PF(11)\n\ !F12: PF(12)\n\ !ShifthpSystem: PF(13)\n\ !ShiftKP_Divide: PF(14)\n\ !ShiftKP_Multiply: PF(15)\n\ !ShiftKP_7: PF(16)\n\ !ShiftKP_8: PF(17)\n\ !ShiftKP_9: PF(18)\n\ !ShiftKP_4: PF(19)\n\ !ShiftKP_5: PF(20)\n\ !ShiftKP_6: PF(21)\n\ !ShiftKP_1: PF(22)\n\ !ShiftKP_2: PF(23)\n\ !ShiftKP_3: PF(24)\n\ !hpSystem: PF(1)\n\ !KP_Divide: PF(2)\n\ !KP_Multiply: PF(3)\n\ !KP_7: PF(4)\n\ !KP_8: PF(5)\n\ !KP_9: PF(6)\n\ !KP_4: PF(7)\n\ !KP_5: PF(8)\n\ !KP_6: PF(9)\n\ !KP_1: PF(10)\n\ !KP_2: PF(11)\n\ !KP_3: PF(12)\n\ !Break: Reset()\n\ !ShiftBreak: Attn()\n\ !MetaBreak: SysReq()\n\ !Prior: Dup()\n\ !Next: FieldMark()\n\ !Select: EraseEOF()\n\ !MetahpInsertChar: PA(1)\n\ !MetaHome: PA(2)\n\ !MetaPrior: PA(3)\n\ !hpInsertChar: Insert()\n\ !hpDeleteChar: Delete()\n\ !ShiftMenu: PrintWindow()\n\ !Menu: PrintText()\n ! Keymap for IBM X Terminal, Allan L. Bazinet x3270.keymap.ibm-xterm: \ :Execute: Enter()\n\ !Pause: Clear()\n\ !BackSpace: BackSpace()\Delete()\n\ !End: FieldEnd()\n\ !Altc: Clear()\n\ !AltPrint: SysReq()\n\ !CtrlHome: EraseInput()\n\ !CtrlEnd: EraseEOF()\n\ !ShiftTab: BackTab()\n\ :KP_Subtract: PA(1)\n\ :KP_Add: PA(2)\n\ :KP_Enter: Enter()\n\ :Prior: PA(1)\n\ :Next: PA(2)\n\ :Escape: Reset()\n\ :Control_L: Reset()\n\ :Insert: Insert()\n\ !ShiftRight: Right2()\n\ !ShiftLeft: Left2()\n ! Keymap for common 3270 functions on a PC keyboard, from Richard Lennox. x3270.keymap.rlx: #override \ Prior: PF(7)\n\ Next: PF(8)\n\ Control_R: Enter()\n\ Return: Newline()\n\ Pause: Clear()\n\ ShiftEscape: Attn()\n\ ShiftLeft: PreviousWord()\n\ ShiftRight: NextWord()\n\ CtrlLeft: PreviousWord()\n\ CtrlRight: NextWord()\n\ ShiftEnd: EraseEOF()\n\ End: FieldEnd() ! Keymap modifier for OpenWindows (makes button 2 the extend key; defines the ! Paste and Cut keys; uses CLIPBOARD). x3270.keymap.ow: #override \ ~Shift: select-start()\n\ ~Shift: select-extend()\n\ : start-extend()\n\ : select-extend()\n\ : ignore()\n\ : ignore()\n\ : insert-selection(CLIPBOARD,PRIMARY)\n\ : select-end(PRIMARY)\n\ :F16: set-select(CLIPBOARD)\n\ ShiftF18: insert-selection(PRIMARY)\n\ :F18: insert-selection(CLIPBOARD,PRIMARY)\n\ :F20: set-select(CLIPBOARD) Cut()\n ! APL keymap modifier. x3270.keymap.apl: #override \ !:Altbracketleft: Key(apl_leftarrow)\n\ !:Altbracketright: Key(apl_rightarrow)\n\ :bracketleft: Key(apl_bracketleft)\n\ :bracketright: Key(apl_bracketright)\n\ !:Alt1: Key(apl_diaeresis)\n\ !:Alt2: Key(apl_overbar)\n\ !:Alt3: Key(less)\n\ !:Alt4: Key(apl_notgreater)\n\ !:Alt5: Key(equal)\n\ !:Alt6: Key(apl_notless)\n\ !:Alt7: Key(greater)\n\ !:Alt8: Key(apl_notequal)\n\ !:Alt9: Key(apl_downcaret)\n\ !:Alt0: Key(apl_upcaret)\n\ !:Altminus: Key(apl_overbar)\n\ !:Altunderscore: Key(underscore)\n\ !:Alt=: Key(apl_multiply)\n\ !:Alt+: Key(apl_divide)\n\ !:Altasciitilde: Key(apl_tilde)\n\ !:Altbackslash: Key(apl_slope)\n\ !:Altbar: Key(apl_stile)\n\ :Alta: Key(apl_alpha)\n\ :Altb: Key(apl_downtack)\n\ :Altc: Key(apl_upshoe)\n\ :Altd: Key(apl_downstile)\n\ :Alte: Key(apl_epsilon)\n\ :Altf: Key(underscore)\n\ :Altg: Key(apl_del)\n\ :Alth: Key(apl_delta)\n\ :Alti: Key(apl_iota)\n\ :Altj: Key(apl_jot)\n\ :Altk: Key(apostrophe)\n\ :Altl: Key(apl_quad)\n\ :Altm: Key(apl_stile)\n\ :Altn: Key(apl_uptack)\n\ :Alto: Key(apl_circle)\n\ :Altp: Key(asterisk)\n\ :Altq: Key(question)\n\ :Altr: Key(apl_rho)\n\ :Alts: Key(apl_upstile)\n\ :Altt: Key(apl_tilde)\n\ :Altu: Key(apl_downarrow)\n\ :Altv: Key(apl_downshoe)\n\ :Altw: Key(apl_omega)\n\ :Altx: Key(apl_rightshoe)\n\ :Alty: Key(apl_uparrow)\n\ :Altz: Key(apl_leftshoe)\n\ :AltA: Key(apl_Aunderbar)\n\ :AltB: Key(apl_Bunderbar)\n\ :AltC: Key(apl_Cunderbar)\n\ :AltD: Key(apl_Dunderbar)\n\ :AltE: Key(apl_Eunderbar)\n\ :AltF: Key(apl_Funderbar)\n\ :AltG: Key(apl_Gunderbar)\n\ :AltH: Key(apl_Hunderbar)\n\ :AltI: Key(apl_Iunderbar)\n\ :AltJ: Key(apl_Junderbar)\n\ :AltK: Key(apl_Kunderbar)\n\ :AltL: Key(apl_Lunderbar)\n\ :AltM: Key(apl_Munderbar)\n\ :AltN: Key(apl_Nunderbar)\n\ :AltO: Key(apl_Ounderbar)\n\ :AltP: Key(apl_Punderbar)\n\ :AltQ: Key(apl_Qunderbar)\n\ :AltR: Key(apl_Runderbar)\n\ :AltS: Key(apl_Sunderbar)\n\ :AltT: Key(apl_Tunderbar)\n\ :AltU: Key(apl_Uunderbar)\n\ :AltV: Key(apl_Vunderbar)\n\ :AltW: Key(apl_Wunderbar)\n\ :AltX: Key(apl_Xunderbar)\n\ :AltY: Key(apl_Yunderbar)\n\ :AltZ: Key(apl_Zunderbar)\n ! ! Keymap for the "not" key, assumed to be above the "6" key on U.S. ! keyboards. This used to be part of the 3270 base keymap, but does not ! work properly on non-U.S. keyboards. x3270.keymap.not.3270: \ :asciicircum: Key(notsign) ! Helpful modifier to disply the translation table. x3270.keymap.t: \ Metat: XtDisplayTranslations()\n\ Altt: XtDisplayTranslations()\n ! International keymap modifiers. x3270.keymap.finnish7: \ :bracketleft: Key("adiaeresis")\n\ :bracketright: Key("aring")\n\ :backslash: Key("odiaeresis")\n\ :braceleft: Key("Adiaeresis")\n\ :braceright: Key("Aring")\n\ :bar: Key("Odiaeresis")\n x3270.keymap.norwegian7: \ :bracketleft: Key("ae")\n\ :backslash: Key("oslash")\n\ :bracketright: Key("aring")\n\ :braceleft: Key("AE")\n\ :bar: Key("Ooblique")\n\ :braceright: Key("Aring")\n\ :!Metau: Key("udiaeresis")\n\ :dollar: Key("currency")\n\ :at: Key("backslash")\n ! "Old" Norwegian keymap, compatible with older versions of x3270. x3270.keymap.oldnorwegian7: \ :bracketleft: Key("AE")\n\ :bracketright: Key("Aring")\n\ :backslash: Key("Ooblique")\n\ :braceleft: Key("ae")\n\ :braceright: Key("aring")\n\ :bar: Key("oslash")\n ! German keymap courtesy of Karlheinz Kandler x3270.keymap.german7: \ :bracketleft: Key("adiaeresis")\n\ :bracketright: Key("udiaeresis")\n\ :backslash: Key("odiaeresis")\n\ :braceleft: Key("Adiaeresis")\n\ :braceright: Key("Udiaeresis")\n\ :bar: Key("Odiaeresis")\n\ :asciicircum: Key("^")\n\ :asciitilde: Key("ssharp")\n\ :at: Key("section")\n ! Keymap modifier for RS/6000s with French AZERTY keyboards, which allows ! the diaeresis and circumflex keys to work intuitively (press diaereses, ! press "a", get "adiaeresis, etc.) x3270.keymap.fr6k: \ Shiftdead_diaeresis: Compose() Key(quotedbl)\n\ :dead_circumflex: Compose() Key(asciicircum)\n ! Icelandic keymap, courtesy of Rikhardur Egilsson x3270.keymap.icelandic: \ :dead_acute: Compose() Key(apostrophe)\n ! !============================================================================= ! Section 2: Labels and Messages ! ! These are resources that are likely to be modified for translation ! into another language. !============================================================================= ! x3270.errorPopup.title: x3270 Error x3270.errorPopup*cancelButton.label: Exit x3270.printerErrorPopup.title: x3270 Printer Error x3270.childErrorPopup.title: x3270 Child Process Error #ifdef X3270_MENUS x3270.infoPopup.title: x3270 Information x3270.printerInfoPopup.title: x3270 Printer Information x3270.childInfoPopup.title: x3270 Child Process Information x3270.connectPopup.title: x3270 Connect x3270.connectPopup.dialog.label: Enter Hostname x3270.fontPopup.title: x3270 Font x3270.fontPopup.dialog.label: Enter Font Name x3270.keymapPopup.title: x3270 Keymap x3270.keymapPopup.dialog.label: Enter Keymap Name x3270.oversizePopup.title: x3270 Oversize x3270.oversizePopup.dialog.label: Enter Dimensions (cols x rows) x3270.oversizePopup*confirmButton.label: Resize #endif #ifdef X3270_KEYPAD x3270.keypadPopup.title: x3270 Keypad #endif #ifdef X3270_MENUS x3270.printTextPopup.title: x3270 Screen Print x3270.printTextPopup.dialog.label: Enter Print Command x3270.printTextPopup*confirmButton.label: Print x3270.saveTextPopup.title: x3270 Screen Save x3270.saveTextPopup.dialog.label: Enter File Name x3270.saveTextPopup*confirmButton.label: Save as Text x3270.saveTextPopup*confirm2Button.label: Save as HTML x3270.printWindowPopup.title: x3270 Window Print x3270.printWindowPopup.dialog.label: Enter Print Command x3270.printWindowPopup*confirmButton.label: Print #endif #ifdef X3270_TRACE x3270.tracePopup.title: x3270 Tracing x3270.tracePopup.dialog.label: Enter Trace File Name x3270.tracePopup*confirmButton.label: Trace x3270.tracePopup*confirm2Button.label: No File x3270.screentracePopup.title: x3270 Screen Image Tracing x3270.screentracePopup.dialog.label: Enter File Name x3270.screentracePopup*confirmButton.label: Continuously x3270.screentracePopup*confirm2Button.label: Once #endif #ifdef X3270_MENUS x3270.executeActionPopup.title: x3270 Execute Action x3270.executeActionPopup.dialog.label: Enter Action and Parameters x3270.executeActionPopup*confirmButton.label: Execute x3270.saveOptionsPopup.title: x3270 Save Changed Options x3270.saveOptionsPopup.dialog.label: Enter Profile/Session File Name x3270.saveOptionsPopup*confirmButton.label: Save x3270.aboutCopyrightPopup.title: x3270 Copyright x3270.aboutConfigPopup.title: x3270 Configuration x3270.aboutStatusPopup.title: x3270 Connection Status x3270.connectPopup*confirmButton.label: Connect x3270.fontPopup*confirmButton.label: Select Font x3270.keymapPopup*confirmButton.label: Select Keymap #endif #ifdef X3270_FT x3270.ftPopup.title: x3270 File Transfer x3270.ftProgressPopup.title: x3270 File Transfer x3270.ftOverwritePopup.title: x3270 File Transfer #endif #ifdef X3270_SCRIPT x3270.idlePopup.title: x3270 Idle Command #endif x3270.kmPopup.title: x3270 Keymap x3270*confirmButton.label: OK x3270.printerErrorPopup*cancelButton.label: Abort Printer x3270.printerInfoPopup*cancelButton.label: Abort Printer x3270.childErrorPopup*cancelButton.label: Discard Output x3270.childInfoPopup*cancelButton.label: Discard Output x3270*cancelButton.label: Cancel #ifdef X3270_MENUS x3270*aboutOption.label: About x3270... x3270*aboutCopyright.label: Copyright x3270*aboutConfig.label: Configuration x3270*aboutStatus.label: Connection Status #ifdef X3270_FT x3270*ftOption.label: File Transfer... #endif #ifdef X3270_PRINTER x3270*printerOption.label: Printer Session x3270*assocButton.label: Start, associate with current LU x3270*luButton.label: Start, specific LU... x3270*printerOffButton.label: Stop Printer #endif x3270*abortScriptOption.label: Abort Scripts/Macros/Strings x3270*disconnectOption.label: Disconnect x3270*exitOption.label: Exit x3270 x3270*exitReallyOption.label: Disconnect and Exit x3270*printTextOption.label: Print Screen Text x3270*saveTextOption.label: Save Screen Text in File x3270*printWindowOption.label: Print Window Bitmap x3270*executeActionOption.label: Execute an Action x3270*fileMenuButton.label: File x3270*fileMenu.label: File #endif #ifdef X3270_FT x3270.ftPopup*justify: left x3270.ftPopup*send.label: Send to host x3270.ftPopup*receive.label: Receive from host x3270.ftPopup*ascii.label: Transfer ASCII file x3270.ftPopup*cr.label: Add/remove CR at end of line x3270.ftPopup*binary.label: Transfer binary file x3270.ftPopup*local.label: Local File Name x3270.ftPopup*host.label: Host File Name x3270.ftPopup*append.label: Append to file x3270.ftPopup*remap.label: Remap ASCII Characters x3270.ftPopup*vm.label: Host is VM/CMS x3270.ftPopup*tso.label: Host is TSO x3270.ftPopup*confirmButton.label: Transfer File x3270.ftPopup*file.label: Record Format x3270.ftPopup*recfmDefault.label: Default x3270.ftPopup*fixed.label: Fixed x3270.ftPopup*variable.label: Variable x3270.ftPopup*undefined.label: Undefined x3270.ftPopup*units.label: Space Allocation Units x3270.ftPopup*spaceDefault.label: Default x3270.ftPopup*tracks.label: Tracks x3270.ftPopup*cylinders.label: Cylinders x3270.ftPopup*avblock.label: Avblock x3270.ftPopup*lrecl.label: LRECL x3270.ftPopup*blksize.label: BLKSIZE x3270.ftPopup*primspace.label: Primary Space x3270.ftPopup*secspace.label: Secondary Space x3270.ftPopup*buffersize.label: DFT Buffer Size x3270.ftProgressPopup*fromLabel.label: Source: x3270.ftProgressPopup*fromLabel.justify: right x3270.ftProgressPopup*toLabel.label: Destination: x3270.ftProgressPopup*toLabel.justify: right x3270.ftProgressPopup*filename.justify: left x3270.ftOverwritePopup*overwriteName.label: Overwrite existing file %s? x3270.ftProgressPopup*waiting.label: Waiting for host acknowledgment... x3270.ftProgressPopup*status.label: %lu bytes transferred x3270.ftProgressPopup*aborting.label: Aborting transfer... #endif #ifdef X3270_SCRIPT x3270.idlePopup*justify: left x3270.idlePopup*command.label: Command(s) x3270.idlePopup*timeout.label: Timeout Value x3270.idlePopup*enable.label: Enable for this session x3270.idlePopup*enablePerm.label: Enable whenever connected x3270.idlePopup*disable.label: Disable x3270.idlePopup*hours.label: Hours x3270.idlePopup*minutes.label: Minutes x3270.idlePopup*seconds.label: Seconds x3270.idlePopup*fuzz.label: Vary time 0..10% #endif #ifdef X3270_PRINTER x3270.printerLuPopup.title: x3270 Printer Session x3270.printerLuPopup.dialog.label: Enter LU Name x3270.printerLuPopup*confirmButton.label: Start Session #endif #ifdef X3270_MENUS x3270*optionsMenuButton.label: Options x3270*optionsMenu.label: Options x3270*connectMenuButton.label: Connect x3270*macrosMenuButton.label: Macros x3270*macrosMenu.label: Macros x3270*hostMenu.label: Connect x3270*helpButton.label: Help x3270*otherHostOption.label: Other... x3270*togglesOption.label: Toggles x3270*fontsOption.label: Font x3270*modelsOption.label: Screen Size x3270*colorsOption.label: Color Scheme x3270*charsetOption.label: Character Set x3270*keymapOption.label: Change Keymap... x3270*idleCommandOption.label: Configure Idle Command x3270*keypadOption.label: Keypad x3270*monocaseOption.label: Monocase x3270*cursorBlinkOption.label: Blinking Cursor x3270*showTimingOption.label: Show Timing x3270*cursorPosOption.label: Track Cursor x3270*dsTraceOption.label: Trace Data Stream x3270*eventTraceOption.label: Trace Keyboard/Mouse Events x3270*screenTraceOption.label: Save Screen(s) in File x3270*scrollBarOption.label: Scrollbar x3270*lineWrapOption.label: Wraparound x3270*marginedPasteOption.label: Paste with Left Margin x3270*rectangleSelectOption.label: Select by Rectangles x3270*blankFillOption.label: Blank Fill x3270*crosshairOption.label: Crosshair Cursor x3270*visibleControlOption.label: Visible Control Chars x3270*underlineCursorOption.label: Underline Cursor x3270*blockCursorOption.label: Block Cursor x3270*otherFontOption.label: Other... x3270*lineModeOption.label: Line Mode x3270*characterModeOption.label: Character Mode x3270*extendedDsOption.label: Extended 3270 Data Stream x3270*m3278Option.label: Monochrome (3278) Emulation x3270*m3279Option.label: Color (3279) Emulation x3270*model2Option.label: Model 2 (80x24) x3270*model3Option.label: Model 3 (80x32) x3270*model4Option.label: Model 4 (80x43) x3270*model5Option.label: Model 5 (132x27) x3270*oversizeOption.label: Oversize... x3270*saveOption.label: Save Changed Options #endif ! ! Messages #ifdef X3270_MENUS x3270.message.processId: Process ID: x3270.message.windowId: Main window ID: x3270.message.model: Model x3270.message.rows: rows x3270.message.columns: columns x3270.message.mono: monochrome x3270.message.fullColor: color x3270.message.pseudoColor: pseudo-color x3270.message.extendedDs: extended data stream x3270.message.standardDs: standard data stream x3270.message.terminalName: Terminal name: x3270.message.luName: LU name: x3270.message.bindPluName: BIND PLU name: x3270.message.emulatorFont: Emulator font: x3270.message.emulatorFontDbcs: DBCS emulator font: x3270.message.xFont: standard X11 font x3270.message.cgFont: special 3270 CG font x3270.message.charset: Host EBCDIC character set: x3270.message.sbcsCgcsgid: Host SBCS CGCSGID: x3270.message.dbcsCgcsgid: Host DBCS CGCSGID: x3270.message.defaultCharacterSet: Default (us) EBCDIC character set x3270.message.displayCharacterSet: Display character set: x3270.message.displayCharacterSetDbcs: DBCS display character set: x3270.message.localeCodeset: Locale codeset: x3270.message.require: require x3270.message.have: have x3270.message.keyboardMap: Keyboard map: x3270.message.defaultKeyboardMap: Default keyboard map x3270.message.composeMap: Compose-key map: x3270.message.noComposeMap: No compose-key map x3270.message.activeIcon: Active icon x3270.message.iconFont: Icon font: x3270.message.iconLabelFont: Icon label font: x3270.message.staticIcon: Static bitmap icon x3270.message.connectedTo: Connected to: x3270.message.port: Port: x3270.message.secure: via TLS/SSL x3270.message.proxyType: Proxy type: x3270.message.server: Server: x3270.message.charMode: NVT character mode x3270.message.lineMode: NVT line mode x3270.message.dsMode: 3270 mode x3270.message.sscpMode: SSCP-LU mode x3270.message.tn3270eOpts: TN3270E options: x3270.message.tn3270eNoOpts: No TN3270E options x3270.message.connectionPending: Connection pending to: x3270.message.notConnected: Not connected x3270.message.specialCharacters: Special characters: x3270.message.hour: hour x3270.message.hours: hours x3270.message.minute: minute x3270.message.minutes: minutes x3270.message.second: second x3270.message.seconds: seconds x3270.message.sent: Sent x3270.message.Received: Received x3270.message.received: received x3270.message.byte: byte x3270.message.bytes: bytes x3270.message.record: record x3270.message.records: records x3270.message.statusDbcs: DBCS x3270.message.statusNotConnected: Not Connected x3270.message.statusTwait: Wait x3270.message.statusSyswait: System x3270.message.statusProtected: Protected x3270.message.statusNumeric: Numeric x3270.message.statusOverflow: Overflow x3270.message.statusInhibit: Inhibit x3270.message.statusScrolled: Scrolled x3270.message.statusMinus: No Function #endif x3270.message.statusConnecting: Connecting #endif #ifdef X3270_FT x3270.message.ftComplete: Transfer complete, %i bytes transferred\n\ %sbytes/sec in %s mode x3270.message.ftUnable: Cannot begin transfer x3270.message.ftStartTimeout: Transfer did not start within 10s x3270.message.ftUserCancel: Transfer cancelled by user x3270.message.ftHostCancel: Transfer cancelled by host x3270.message.ftCutUnknownFrame: Unknown frame type from host x3270.message.ftCutUnknownControl: Unknown FT control code from host x3270.message.ftCutRetransmit: Transmission error x3270.message.ftCutConversionError: Data conversion error x3270.message.ftCutOversize: Illegal frame length x3270.message.ftDisconnected: Host disconnected, transfer cancelled x3270.message.ftNot3270: Not in 3270 mode, transfer cancelled x3270.message.ftDftUnknownOpen: Uknown DFT Open type from host #endif x3270.message.inputMethod: X11 Input Method (XIM): x3270.message.ximState: state: x3270.message.ximDisabled: failed x3270.message.ximNotFound: not found x3270.message.ximActive: active x3270.message.ximLocale: locale: x3270.message.ximEncoding: encoding: #ifndef STANDALONE x3270.message.kmEvent: Event x3270.message.kmKeymapLine: Keymap:Line x3270.message.kmActions: Actions x3270.message.kmOverridden: \ -- overridden -- x3270.message.kmKeymap: Keymap x3270.message.kmTemporaryKeymap: Temporary keymap x3270.message.kmFile: from file x3270.message.kmResource: from resource x3270.message.kmFromServer: \ (expanded from '@server') ! !============================================================================= ! Section 3: Base-Level Resources ! ! Resources required for the basic operation of x3270, not for the ! faint-hearted to modify. !============================================================================= ! ! App-defaults file version x3270.adVersion: 3.3.4 ! ! Fonts #ifdef X3270_APL x3270.aplFont: 3270 #endif x3270.debugFont: 3270d x3270.iconFont: nil2 x3270.iconLabelFont: 8x13 #ifdef X3270_KEYPAD x3270*keyPad*large*font: fixed x3270*keyPad*small*font: -*-fixed-medium-r-semicondensed-*-12-*-* #endif x3270*value*font: fixed x3270*dataLabel.font: -*-courier-medium-r-normal--14-*-100-100-m-*-iso8859-1 !x3270*smallLabel.font: 5x7 x3270*smallLabel.font: 6x13 x3270*filename*font: fixed x3270*kmPopup*text*font: fixed x3270*font: -*-helvetica-bold-r-normal--14-*-100-100-p-*-iso8859-1 ! ! Menu configuration #ifdef X3270_MENUS x3270*menuBarContainer.borderWidth: 2 #endif #ifdef COLOR #ifdef X3270_KEYPAD x3270.keypadBackground: grey #endif #ifdef X3270_MENUS x3270*menuBarContainer.background: grey x3270*menuBarContainer.borderColor: grey40 x3270*fileMenuButton*background: grey x3270*optionsMenuButton*background: grey x3270*connectMenuButton*background: grey x3270*macrosMenuButton*background: grey x3270*helpButton*background: grey x3270*keypadButton*background: grey x3270*lockedIcon*background: grey x3270*lockedIcon*foreground: yellow4 x3270*lockedIcon*borderColor: grey x3270*unlockedIcon*background: grey x3270*unlockedIcon*borderColor: grey x3270*fileMenuButton*borderColor: grey x3270*optionsMenuButton*borderColor: grey x3270*connectMenuButton*borderColor: grey x3270*macrosMenuButton*borderColor: grey x3270*helpButton*borderColor: grey #endif #else #ifdef X3270_MENUS x3270*fileMenuButton*borderColor: XtDefaultBackground x3270*optionsMenuButton*borderColor: XtDefaultBackground x3270*connectMenuButton*borderColor: XtDefaultBackground x3270*macrosMenuButton*borderColor: XtDefaultBackground x3270*helpButton*borderColor: XtDefaultBackground #endif #endif #ifdef X3270_MENUS x3270*fileMenuButton*highlightThickness: 1 x3270*optionsMenuButton*highlightThickness: 1 x3270*connectMenuButton*highlightThickness: 1 x3270*macrosMenuButton*highlightThickness: 1 x3270*helpButton*highlightThickness: 1 x3270*keypadButton*highlightThickness: 1 #ifdef COLOR x3270*fileMenu*background: grey x3270*exitMenu*background: grey x3270*optionsMenu*background: grey x3270*hostMenu*background: grey x3270*macrosMenu*background: grey x3270*togglesMenu*background: grey x3270*fontsMenu*background: grey x3270*modelsMenu*background: grey x3270*colorsMenu*background: grey x3270*charsetMenu*background: grey x3270*printerMenu*background: grey #endif x3270*fileMenu.borderWidth: 2 x3270*exitMenu.borderWidth: 2 x3270*optionsMenu.borderWidth: 2 x3270*hostMenu.borderWidth: 2 x3270*macrosMenu.borderWidth: 2 x3270*togglesMenu.borderWidth: 2 x3270*fontsMenu.borderWidth: 2 x3270*modelsMenu.borderWidth: 2 x3270*colorsMenu.borderWidth: 2 x3270*charsetMenu.borderWidth: 2 #ifdef COLOR x3270*fileMenu.borderColor: grey40 x3270*exitMenu.borderColor: grey40 x3270*optionsMenu.borderColor: grey40 x3270*hostMenu.borderColor: grey40 x3270*macrosMenu.borderColor: grey40 x3270*togglesMenu.borderColor: grey40 x3270*fontsMenu.borderColor: grey40 x3270*modelsMenu.borderColor: grey40 x3270*colorsMenu.borderColor: grey40 x3270*charsetMenu.borderColor: grey40 #endif x3270*fileMenu*leftMargin: 20 x3270*fileMenu*rightMargin: 20 x3270*optionsMenu*rightMargin: 20 x3270*togglesMenu*leftMargin: 20 x3270*fontsMenu*leftMargin: 20 x3270*fontsMenu*rightMargin: 20 x3270*modelsMenu*leftMargin: 20 x3270*colorsMenu*leftMargin: 20 x3270*colorsMenu*rightMargin: 20 x3270*charsetMenu*leftMargin: 20 x3270*charsetMenu*rightMargin: 20 x3270*hostMenu*rightMargin: 20 x3270*macrosMenu*rightMargin: 20 #endif ! ! Confirm and cancel buttons ! borderWidth and borderColor are never specified anywhere else, so these ! always apply x3270*confirmButton.borderWidth: 2 x3270*confirm2Button*borderWidth: 2 x3270*cancelButton*borderWidth: 2 #ifdef COLOR x3270**confirmButton.borderColor: grey40 x3270**confirmButton.borderColor: grey40 x3270**confirm2Button.borderColor: grey40 x3270**cancelButton.borderColor: grey40 #endif ! foreground and background are often overridden by other resources, so they ! must be specified explicitly for each instance #ifdef COLOR x3270*dialog*confirmButton.foreground: black x3270*dialog*confirmButton.background: grey80 x3270*dialog*confirm2Button.background: grey80 x3270*dialog*cancelButton.foreground: firebrick x3270*dialog*cancelButton.background: grey80 #endif ! ! Values ! borderWidth and borderColor are never specified anywhere else, so these ! always apply #ifdef COLOR x3270*value.borderWidth: 2 x3270*value.borderColor: grey40 #endif ! background is overridden by dialog*background, so it must be specified ! explicitly #ifdef COLOR x3270*dialog*value*background: lavender #endif ! ! Overall defaults for dialog boxes #ifdef COLOR x3270*dialog*background: grey x3270*dialog*foreground: black #endif ! ! Fixed popup sizes x3270.errorPopup.width: 500 x3270.printerErrorPopup.width: 500 x3270.childErrorPopup.width: 500 x3270.infoPopup.width: 500 x3270.printerInfoPopup.width: 500 x3270.childInfoPopup.width: 500 x3270.printerLuPopup.width: 300 x3270.connectPopup.width: 300 x3270.fontPopup.width: 300 x3270.keymapPopup.width: 300 x3270.oversizePopup.width: 300 x3270.printTextPopup.width: 300 x3270.saveTextPopup.width: 300 x3270.printWindowPopup.width: 300 x3270.tracePopup.width: 300 x3270.screentracePopup.width: 300 x3270.executeActionPopup.width: 300 x3270.saveOptionsPopup.width: 300 ! ! Nondefault definitions for complex pop-ups #ifdef COLOR x3270.aboutCopyrightPopup*icon.foreground: darkslateblue x3270.aboutConfigPopup*icon.foreground: darkslateblue x3270.aboutStatusPopup*icon.foreground: darkslateblue x3270.errorPopup*label.foreground: firebrick x3270.printerErrorPopup*label.foreground: firebrick x3270.childErrorPopup*label.foreground: firebrick #ifdef X3270_FT x3270.ftProgressPopup*filename.borderWidth: 2 x3270.ftProgressPopup*filename.borderColor: grey40 x3270.ftProgressPopup*filename.background: lavender #endif #endif ! #ifdef X3270_KEYPAD ! Keypad key dimensions, in pixels x3270.keypad.keyHeight: 24 x3270.keypad.keyWidth: 48 x3270.keypad.pfWidth: 32 x3270.keypad.paWidth: 36 x3270.keypad.largeKeyWidth: 56 #endif ! ! Keymap display pop-up ! x3270*keymapDisplayOption.label: Display Current Keymap x3270.kmPopup*label.label: Current Keyboard Map x3270.kmPopup*sortActionOption.label: Sort by Action x3270.kmPopup*sortKeymapOption.label: Sort by Keymap x3270.kmPopup*sortEventOption.label: Sort by Event x3270.kmPopup*text*background: lavender x3270.kmPopup*text*foreground: black x3270.kmPopup*text.height: 250 x3270.kmPopup*text.width: 500 ! ! Basic event translations -- these should NEVER be changed without significant ! code changes x3270.translations: #override \n\ WM_PROTOCOLS: PA-WMProtocols()\n\ : PA-KeymapNotify()\n\ WM_STATE: PA-StateChanged()\n\ : PA-Focus()\n\ : PA-Focus()\n\ : PA-ConfigureNotify() x3270.container.translations: #override \n\ Shift_L: PA-Shift()\n\ Shift_L: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_R: PA-Shift()\n\ Alt_R: PA-Shift()\n\ :: Default()\n\ :: Default()\n\ :: Default() x3270*screen.translations: #override \n\ : PA-Expose()\n\ : PA-VisibilityNotify()\n\ : PA-GraphicsExpose()\n\ Shift_L: PA-Shift()\n\ Shift_L: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_R: PA-Shift()\n\ Alt_R: PA-Shift()\n\ :: Default()\n\ :: Default()\n\ :: Default() x3270icon.translations: #override \n\ : PA-Expose() #ifdef X3270_KEYPAD x3270.keypadPopup.translations: #override \n\ WM_PROTOCOLS: PA-WMProtocols()\n\ : PA-KeymapNotify()\n\ : PA-EnterLeave()\n\ : PA-EnterLeave() x3270.keypadPopup.container.translations: #override \n\ Shift_L: PA-Shift()\n\ Shift_L: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_R: PA-Shift()\n\ Alt_R: PA-Shift()\n\ :: Default() #endif x3270.errorPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printerErrorPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.childErrorPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.errorPopup*translations: #override \n\ Return: PA-confirm() x3270.printerErrorPopup*translations: #override \n\ Return: PA-confirm() x3270.childErrorPopup*translations: #override \n\ Return: PA-confirm() x3270.infoPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printerInfoPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.childInfoPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.infoPopup*translations: #override \n\ Return: PA-confirm() x3270.printerInfoPopup*translations: #override \n\ Return: PA-confirm() x3270.childInfoPopup*translations: #override \n\ Return: PA-confirm() #ifdef X3270_MENUS x3270.connectPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.fontPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.keymapPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printTextPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.saveTextPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printWindowPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.tracePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.screentracePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.executeActionPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.saveOptionsPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutCopyrightPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutCopyrightPopup*translations: #override \n\ Return: PA-confirm() x3270.aboutConfigPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutConfigPopup*translations: #override \n\ Return: PA-confirm() x3270.aboutStatusPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutStatusPopup*translations: #override \n\ Return: PA-confirm() x3270.kmPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.kmPopup*translations: #override \n\ Return: PA-confirm() x3270.luPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() #endif #ifdef X3270_FT x3270.ftPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() ! Note: WM_PROTOCOLS is explicitly not defined for ftPopup, so that the user ! can clear error conditions while a transfer is in progress. x3270.ftOverwritePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.ftPopup*value.translations: #override \n\ Return: PA-dialog-next()\n\ Tab: PA-dialog-next()\n\ : PA-dialog-focus() select-start()\n\ CtrlU: select-all(DUMMY) delete-selection() #endif #ifdef X3270_SCRIPT x3270.idlePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.idlePopup*value.translations: #override \n\ Return: PA-dialog-next()\n\ Tab: PA-dialog-next()\n\ : PA-dialog-focus() select-start()\n\ CtrlU: select-all(DUMMY) delete-selection() #endif x3270*value.translations: #override \n\ Return: PA-confirm()\n\ CtrlU: select-all(DUMMY) delete-selection() x3270*value.width: 200 ! Workaround for Xaw MenuButton bug that keeps menu items from highlighting ! when CapsLock or NumLock are down. Technically, this would require ! translations for all permutations of all 8 modifiers: shift, lock, control, ! mod1, mod2, mod3, mod4 and mod5. However, we will leave out shift and ! control, since they are "voluntary" key presses and would quadruple the ! size of this resource. x3270*MenuButton.translations: #override \n\ Lock: reset() PopupMenu()\n\ Mod1: reset() PopupMenu()\n\ Lock Mod1: reset() PopupMenu()\n\ Mod2: reset() PopupMenu()\n\ Lock Mod2: reset() PopupMenu()\n\ Mod1 Mod2: reset() PopupMenu()\n\ Lock Mod1 Mod2: reset() PopupMenu()\n\ Mod3: reset() PopupMenu()\n\ Lock Mod3: reset() PopupMenu()\n\ Mod1 Mod3: reset() PopupMenu()\n\ Lock Mod1 Mod3: reset() PopupMenu()\n\ Mod2 Mod3: reset() PopupMenu()\n\ Lock Mod2 Mod3: reset() PopupMenu()\n\ Mod1 Mod2 Mod3: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3: reset() PopupMenu()\n\ Mod4: reset() PopupMenu()\n\ Lock Mod4: reset() PopupMenu()\n\ Mod1 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod4: reset() PopupMenu()\n\ Mod2 Mod4: reset() PopupMenu()\n\ Lock Mod2 Mod4: reset() PopupMenu()\n\ Mod1 Mod2 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod4: reset() PopupMenu()\n\ Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod3 Mod4: reset() PopupMenu()\n\ Mod1 Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod3 Mod4: reset() PopupMenu()\n\ Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Mod1 Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Mod5: reset() PopupMenu()\n\ Lock Mod5: reset() PopupMenu()\n\ Mod1 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod5: reset() PopupMenu()\n\ Mod2 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod5: reset() PopupMenu()\n\ Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod3 Mod5: reset() PopupMenu()\n\ Mod1 Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod3 Mod5: reset() PopupMenu()\n\ Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod4 Mod5: reset() PopupMenu()\n\ Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Mod2 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3 Mod4 Mod5: reset() PopupMenu() #endif ! Default compose-key map. ! Each line is of the form "keysym1 + keysym2 = keysym3", meaning "when the ! Compose key is pressed, followed by keysym1 and keysym2 (in either order), ! interpret it as keysym3." The definitions are case-sensitive. x3270.composeMap.latin1: \ c + bar = cent \n\ c + slash = cent \n\ L + minus = sterling \n\ Y + equal = yen \n\ S + S = section \n\ C + O = copyright \n\ a + underscore = ordfeminine \n\ less + less = guillemotleft \n\ R + O = registered \n\ plus + minus = plusminus \n\ o + underscore = masculine \n\ greater + greater = guillemotright \n\ 1 + 4 = onequarter \n\ 1 + 2 = onehalf \n\ 3 + 4 = threequarters \n\ bar + bar = brokenbar \n\ A + grave = Agrave \n\ A + apostrophe = Aacute \n\ A + asciicircum = Acircumflex \n\ A + asciitilde = Atilde \n\ A + quotedbl = Adiaeresis \n\ A + asterisk = Aring \n\ A + E = AE \n\ C + comma = Ccedilla \n\ C + apostrophe = Ccedilla \n\ E + grave = Egrave \n\ E + apostrophe = Eacute \n\ E + asciicircum = Ecircumflex \n\ E + quotedbl = Ediaeresis \n\ I + grave = Igrave \n\ I + apostrophe = Iacute \n\ I + asciicircum = Icircumflex \n\ I + quotedbl = Idiaeresis \n\ N + asciitilde = Ntilde \n\ O + grave = Ograve \n\ O + apostrophe = Oacute \n\ O + asciicircum = Ocircumflex \n\ O + asciitilde = Otilde \n\ O + quotedbl = Odiaeresis \n\ O + slash = Ooblique \n\ U + grave = Ugrave \n\ U + apostrophe = Uacute \n\ U + asciicircum = Ucircumflex \n\ U + quotedbl = Udiaeresis \n\ Y + apostrophe = Yacute \n\ s + s = ssharp \n\ a + grave = agrave \n\ a + apostrophe = aacute \n\ a + asciicircum = acircumflex \n\ a + asciitilde = atilde \n\ a + quotedbl = adiaeresis \n\ a + asterisk = aring \n\ a + e = ae \n\ c + comma = ccedilla \n\ c + apostrophe = ccedilla \n\ e + grave = egrave \n\ e + apostrophe = eacute \n\ e + asciicircum = ecircumflex \n\ e + quotedbl = ediaeresis \n\ i + grave = igrave \n\ i + apostrophe = iacute \n\ i + asciicircum = icircumflex \n\ i + quotedbl = idiaeresis \n\ n + asciitilde = ntilde \n\ o + grave = ograve \n\ o + apostrophe = oacute \n\ o + asciicircum = ocircumflex \n\ o + asciitilde = otilde \n\ o + quotedbl = odiaeresis \n\ o + slash = oslash \n\ u + grave = ugrave \n\ u + apostrophe = uacute \n\ u + asciicircum = ucircumflex \n\ u + quotedbl = udiaeresis \n\ y + apostrophe = yacute \n\ y + quotedbl = ydiaeresis \n\ apostrophe + apostrophe = apostrophe \n\ apostrophe + space = apostrophe \n\ asciicircum + asciicircum = asciicircum \n\ asciicircum + space = asciicircum \n\ asciitilde + asciitilde = asciitilde \n\ asciitilde + space = asciitilde \n\ grave + grave = grave \n\ grave + space = grave \n\ quotedbl + quotedbl = quotedbl \n\ quotedbl + space = quotedbl \n #ifndef STANDALONE #ifdef X3270_APL ! ! Compose-key map for APL. x3270.composeMap.apl: \ A + underscore = apl_Aunderbar \n\ B + underscore = apl_Bunderbar \n\ C + underscore = apl_Cunderbar \n\ D + underscore = apl_Dunderbar \n\ E + underscore = apl_Eunderbar \n\ F + underscore = apl_Funderbar \n\ G + underscore = apl_Gunderbar \n\ H + underscore = apl_Hunderbar \n\ I + underscore = apl_Iunderbar \n\ J + underscore = apl_Junderbar \n\ K + underscore = apl_Kunderbar \n\ L + underscore = apl_Lunderbar \n\ M + underscore = apl_Munderbar \n\ N + underscore = apl_Nunderbar \n\ O + underscore = apl_Ounderbar \n\ P + underscore = apl_Punderbar \n\ Q + underscore = apl_Qunderbar \n\ R + underscore = apl_Runderbar \n\ S + underscore = apl_Sunderbar \n\ T + underscore = apl_Tunderbar \n\ U + underscore = apl_Uunderbar \n\ V + underscore = apl_Vunderbar \n\ W + underscore = apl_Wunderbar \n\ X + underscore = apl_Xunderbar \n\ Y + underscore = apl_Yunderbar \n\ Z + underscore = apl_Zunderbar \n\ apl_upcaret + apl_downcaret = apl_diamond \n\ apl_quad + apl_jot = apl_quadjot \n\ apl_iota + underscore = apl_iotaunderbar \n\ apl_epsilon + underscore = apl_epsilonunderbar \n\ less + equal = apl_notgreater \n\ plus + minus = apl_plusminus \n\ greater + equal = apl_notless \n\ equal + slash = apl_notequal \n\ apl_upcaret + apl_tilde = apl_upcarettilde \n\ apl_upcaret + asciitilde = apl_upcarettilde \n\ apl_downcaret + apl_tilde = apl_downcarettilde \n\ apl_downcaret + asciitilde = apl_downcarettilde \n\ apl_circle + apl_stile = apl_circlestile \n\ apl_circle + bar = apl_circlestile \n\ apl_quad + apl_slope = apl_slopequad \n\ apl_quad + backslash = apl_slopequad \n\ apl_circle + apl_slope = apl_circleslope \n\ apl_circle + backslash = apl_circleslope \n\ apl_downtack + apl_uptack = apl_downtackup \n\ apostrophe + period = apl_quotedot \n\ apl_del + apl_stile = apl_delstile \n\ apl_del + bar = apl_delstile \n\ apl_delta + apl_stile = apl_deltastile \n\ apl_delta + bar = apl_deltastile \n\ apl_quad + apostrophe = apl_quadquote \n\ apl_upshoe + apl_jot = apl_upshoejot \n\ slash + minus = apl_slashbar \n\ apl_slope + minus = apl_slopebar \n\ backslash + minus = apl_slopebar \n\ apl_diaeresis + period = apl_diaeresisdot \n\ apl_circle + minus = apl_circlebar \n\ apl_quad + apl_divide = apl_quaddivide \n\ apl_uptack + apl_jot = apl_uptackjot \n\ apl_del + apl_tilde = apl_deltilde \n\ apl_del + asciitilde = apl_deltilde \n\ apl_delta + underscore = apl_deltaunderbar \n\ apl_circle + asterisk = apl_circlestar \n\ apl_downtack + apl_jot = apl_downtackjot \n\ equal + underscore = apl_equalunderbar \n\ apl_quad + apl_quad = apl_squad \n\ apl_diaeresis + apl_jot = apl_diaeresisjot \n\ apl_diaeresis + apl_circle = apl_diaeresiscircle \n\ comma + minus = apl_commabar \n\ c + equal = apl_euro \n\ C + equal = apl_euro \n\ minus + parenleft = apl_lefttack \n\ minus + parenright = apl_righttack \n #endif #endif #ifdef STANDALONE #ifdef _WIN32 ! wc3270 keymap for more 3270-ish behavior: The Enter key is Newline and the ! Right-Ctrl key is Enter. x3270.keymap.rctrl.3270: \ RightCtrlCTRL: Enter()\n\ Return: Newline() #endif #endif ibm-3270-3.3.10ga4/s3270/macros.c0000644000175000017500000026252511254565704015411 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * macros.c * This module handles string, macro and script (sms) processing. */ #include "globals.h" #if defined(X3270_MENUS) /*[*/ #include #include #endif /*]*/ #if !defined(_WIN32) /*[*/ #include #include #include #include #include #include #endif /*]*/ #include #include #include #include #include "3270ds.h" #include "appres.h" #include "ctlr.h" #include "screen.h" #include "resources.h" #include "actionsc.h" #include "childc.h" #include "ctlrc.h" #include "ftc.h" #include "hostc.h" #include "idlec.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #if defined(X3270_PRINTER) /*[*/ #include "printerc.h" #endif /*]*/ #include "screenc.h" #include "seec.h" #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" #include "xioc.h" #if defined(_WIN32) /*[*/ #include "windows.h" #include #include "w3miscc.h" #endif /*]*/ #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #define ANSI_SAVE_SIZE 4096 #if defined(_WIN32) /*[*/ #define SOCK_CLOSE(s) closesocket(s) #else /*][*/ #define SOCK_CLOSE(s) close(s) #endif /*[*/ /* Externals */ extern int linemode; /* Globals */ struct macro_def *macro_defs = (struct macro_def *)NULL; Boolean macro_output = False; /* Statics */ typedef struct sms { struct sms *next; /* next sms on the stack */ char msc[1024]; /* input buffer */ int msc_len; /* length of input buffer */ char *dptr; /* data pointer (macros only) */ enum sms_state { SS_IDLE, /* no command active (scripts only) */ SS_INCOMPLETE, /* command(s) buffered and ready to run */ SS_RUNNING, /* command executing */ SS_KBWAIT, /* command awaiting keyboard unlock */ SS_CONNECT_WAIT,/* command awaiting connection to complete */ #if defined(X3270_FT) /*[*/ SS_FT_WAIT, /* command awaiting file transfer to complete */ #endif /*]*/ SS_TIME_WAIT, /* command awaiting simple timeout */ SS_PAUSED, /* stopped in PauseScript action */ SS_WAIT_NVT, /* awaiting completion of Wait(NVTMode) */ SS_WAIT_3270, /* awaiting completion of Wait(3270Mode) */ SS_WAIT_OUTPUT, /* awaiting completion of Wait(Output) */ SS_SWAIT_OUTPUT,/* awaiting completion of Snap(Wait) */ SS_WAIT_DISC, /* awaiting completion of Wait(Disconnect) */ SS_WAIT_IFIELD, /* awaiting completion of Wait(InputField) */ SS_WAIT_UNLOCK, /* awaiting completion of Wait(Unlock) */ SS_EXPECTING, /* awaiting completion of Expect() */ SS_CLOSING /* awaiting completion of Close() */ } state; enum sms_type { ST_STRING, /* string */ ST_MACRO, /* macro */ ST_COMMAND, /* interactive command */ ST_KEYMAP, /* keyboard map */ ST_IDLE, /* idle command */ ST_CHILD, /* child process */ ST_PEER, /* peer (external) process */ ST_FILE /* read commands from file */ } type; Boolean success; Boolean need_prompt; Boolean is_login; Boolean is_hex; /* flag for ST_STRING only */ Boolean output_wait_needed; Boolean executing; /* recursion avoidance */ Boolean accumulated; /* accumulated time flag */ Boolean idle_error; /* idle command caused an error */ Boolean is_socket; /* I/O is via a socket */ Boolean is_transient; /* I/O is via a transient socket */ Boolean is_external; /* I/O is via a transient socket to -socket */ unsigned long msec; /* total accumulated time */ FILE *outfile; int infd; #if defined(_WIN32) /*[*/ HANDLE inhandle; HANDLE child_handle; unsigned long exit_id; unsigned long listen_id; #endif /*]*/ int pid; unsigned long expect_id; unsigned long wait_id; } sms_t; #define SN ((sms_t *)NULL) static sms_t *sms = SN; static int sms_depth = 0; #if defined(X3270_SCRIPT) /*[*/ static int socketfd = -1; static unsigned long socket_id = 0L; # if defined(_WIN32) /*[*/ static HANDLE socket_event = NULL; # endif /*]*/ #endif /*]*/ #if defined(X3270_TRACE) /*[*/ static const char *sms_state_name[] = { "IDLE", "INCOMPLETE", "RUNNING", "KBWAIT", "CONNECT_WAIT", #if defined(X3270_FT) /*[*/ "FT_WAIT", #endif /*]*/ "TIME_WAIT", "PAUSED", "WAIT_NVT", "WAIT_3270", "WAIT_OUTPUT", "SWAIT_OUTPUT", "WAIT_DISC", "WAIT_IFIELD", "WAIT_UNLOCK", "EXPECTING", "CLOSING" }; #endif /*]*/ #if defined(X3270_MENUS) /*[*/ static struct macro_def *macro_last = (struct macro_def *) NULL; #endif /*]*/ static unsigned long stdin_id = 0L; static unsigned char *ansi_save_buf; static int ansi_save_cnt = 0; static int ansi_save_ix = 0; static char *expect_text = CN; static int expect_len = 0; static const char *st_name[] = { "String", "Macro", "Command", "KeymapAction", "IdleCommand", "ChildScript", "PeerScript", "File" }; static enum iaction st_cause[] = { IA_MACRO, IA_MACRO, IA_COMMAND, IA_KEYMAP, IA_IDLE, IA_MACRO, IA_MACRO }; #define ST_sNAME(s) st_name[(int)(s)->type] #define ST_NAME ST_sNAME(sms) #if defined(X3270_SCRIPT) /*[*/ static void cleanup_socket(Boolean b); #endif /*]*/ static void script_prompt(Boolean success); static void script_input(void); static void sms_pop(Boolean can_exit); #if defined(X3270_SCRIPT) /*[*/ static void socket_connection(void); # if defined(_WIN32) /*[*/ static void child_socket_connection(void); static void child_exited(void); # endif /*]*/ #endif /*]*/ static void wait_timed_out(void); static void read_from_file(void); static sms_t *sms_redirect_to(void); /* Macro that defines that the keyboard is locked due to user input. */ #define KBWAIT (kybdlock & (KL_OIA_LOCKED|KL_OIA_TWAIT|KL_DEFERRED_UNLOCK)) #if defined(X3270_SCRIPT) /*[*/ #define CKBWAIT (appres.toggle[AID_WAIT].value && KBWAIT) #else /*][*/ #define CKBWAIT (KBWAIT) #endif /*]*/ /* Macro that defines when it's safe to continue a Wait()ing sms. */ #define CAN_PROCEED ( \ IN_SSCP || \ (IN_3270 && (no_login_host || (formatted && cursor_addr)) && !CKBWAIT) || \ (IN_ANSI && !(kybdlock & KL_AWAITING_FIRST)) \ ) #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ static int plugin_pid = 0; /* process ID if running, or 0 */ static int plugin_outpipe = -1; /* from emulator, to plugin */ static int plugin_inpipe = -1; /* from plugin, to emulator */ static Bool plugin_started = False; /* True after INIT ack'ed */ static unsigned long plugin_input_id = 0L; /* input event */ static unsigned long plugin_timeout_id = 0L; /* timeout event */ #define PRB_MAX 1024 /* maximum reply size */ static char plugin_buf[PRB_MAX]; /* reply buffer */ static int prb_cnt = 0; /* pending reply size */ #define PLUGINSTART_SECS 5 /* timeout for init reply */ #define PLUGINWAIT_SECS 2 /* timeout for cmd or AID reply */ #define MAX_START_ARGS 10 /* max args for plugin command */ #define PLUGIN_QMAX 256 /* max pending INITs/AIDs/cmds */ static char plugin_tq[PLUGIN_QMAX]; /* FIFO of pending INITs/AIDs/cmds */ static int ptq_first = 0; /* FIFO index of first pending cmd */ static int ptq_last = 0; /* FIFO index of last pending cmd */ #define PLUGIN_BACKLOG (((ptq_last + PLUGIN_QMAX) - ptq_first) % PLUGIN_QMAX) #define PLUGIN_INIT 0 /* commands: initialize */ #define PLUGIN_AID 1 /* process AID */ #define PLUGIN_CMD 2 /* process command */ static Boolean plugin_complain = False; static Boolean plugin_start_failed = False; static char plugin_start_error[PRB_MAX]; static void plugin_start(char *command, char *argv[], Boolean complain); static void no_plugin(void); #endif /*]*/ #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ static void plugin_start_appres(Boolean complain) { int i = 0; char *args[MAX_START_ARGS]; char *ccopy = NewString(appres.plugin_command); char *command; char *s; command = strtok(ccopy, " \t"); if (command == NULL) { Free(ccopy); return; } args[i++] = command; while (i < MAX_START_ARGS - 1 && (s = strtok(NULL, " \t")) != NULL) { args[i++] = s; } args[i] = NULL; plugin_start(command, args, complain); Free(ccopy); } #endif /*]*/ /* Callbacks for state changes. */ static void sms_connect(Boolean connected) { #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ if (connected) { if (appres.plugin_command && !plugin_pid) { plugin_start_appres(False); } } else no_plugin(); #endif /*]*/ /* Hack to ensure that disconnects don't cause infinite recursion. */ if (sms != SN && sms->executing) return; if (!connected) { while (sms != SN && sms->is_login) { #if !defined(_WIN32) /*[*/ if (sms->type == ST_CHILD && sms->pid > 0) (void) kill(sms->pid, SIGTERM); #endif /*]*/ sms_pop(False); } } sms_continue(); } static void sms_in3270(Boolean in3270) { if (in3270 || IN_SSCP) sms_continue(); } /* One-time initialization. */ void sms_init(void) { register_schange(ST_CONNECT, sms_connect); register_schange(ST_3270_MODE, sms_in3270); } #if defined(X3270_MENUS) /*[*/ /* Parse the macros resource into the macro list */ void macros_init(void) { char *s = CN; char *name, *action; struct macro_def *m; int ns; int ix = 1; static char *last_s = CN; /* Free the previous macro definitions. */ while (macro_defs) { m = macro_defs->next; Free(macro_defs); macro_defs = m; } macro_defs = (struct macro_def *)NULL; macro_last = (struct macro_def *)NULL; if (last_s) { Free(last_s); last_s = CN; } /* Search for new ones. */ if (PCONNECTED) { char *rname; char *space; rname = NewString(current_host); if ((space = strchr(rname, ' '))) *space = '\0'; s = get_fresource("%s.%s", ResMacros, rname); Free(rname); } if (s == CN) { if (appres.macros == CN) return; s = NewString(appres.macros); } else s = NewString(s); last_s = s; while ((ns = split_dresource(&s, &name, &action)) == 1) { m = (struct macro_def *)Malloc(sizeof(*m)); if (!split_hier(name, &m->name, &m->parents)) { Free(m); continue; } m->action = action; if (macro_last) macro_last->next = m; else macro_defs = m; m->next = (struct macro_def *)NULL; macro_last = m; ix++; } if (ns < 0) { char buf[256]; (void) sprintf(buf, "Error in macro %d", ix); Warning(buf); } } #endif /*]*/ /* * Enable input from a script. */ static void script_enable(void) { #if defined(_WIN32) /*[*/ /* Windows child scripts are listening sockets. */ if (sms->type == ST_CHILD && sms->inhandle != INVALID_HANDLE_VALUE) { sms->listen_id = AddInput((int)sms->inhandle, child_socket_connection); return; } #endif /*]*/ if (sms->infd >= 0 && stdin_id == 0) { trace_dsn("Enabling input for %s[%d]\n", ST_NAME, sms_depth); #if defined(_WIN32) /*[*/ stdin_id = AddInput((int)sms->inhandle, script_input); #else /*][*/ stdin_id = AddInput(sms->infd, script_input); #endif /*]*/ } } /* * Disable input from a script. */ static void script_disable(void) { if (stdin_id != 0) { trace_dsn("Disabling input for %s[%d]\n", ST_NAME, sms_depth); RemoveInput(stdin_id); stdin_id = 0L; } } /* Allocate a new sms. */ static sms_t * new_sms(enum sms_type type) { sms_t *s; s = (sms_t *)Calloc(1, sizeof(sms_t)); s->state = SS_IDLE; s->type = type; s->dptr = s->msc; s->success = True; s->need_prompt = False; s->is_login = False; s->outfile = (FILE *)NULL; s->infd = -1; #if defined(_WIN32) /*[*/ s->inhandle = INVALID_HANDLE_VALUE; s->child_handle = INVALID_HANDLE_VALUE; #endif /*]*/ s->pid = -1; s->expect_id = 0L; s->wait_id = 0L; s->output_wait_needed = False; s->executing = False; s->accumulated = False; s->idle_error = False; s->msec = 0L; return s; } /* * Push an sms definition on the stack. * Returns whether or not that is legal. */ static Boolean sms_push(enum sms_type type) { sms_t *s; /* Preempt any running sms. */ if (sms != SN) { /* Remove the running sms's input. */ script_disable(); } s = new_sms(type); if (sms != SN) s->is_login = sms->is_login; /* propagate from parent */ s->next = sms; sms = s; /* Enable the abort button on the menu and the status indication. */ if (++sms_depth == 1) { menubar_as_set(True); status_script(True); } if (ansi_save_buf == (unsigned char *)NULL) ansi_save_buf = (unsigned char *)Malloc(ANSI_SAVE_SIZE); return True; } /* * Add an sms definition to the _bottom_ of the stack. */ static sms_t * sms_enqueue(enum sms_type type) { sms_t *s, *t, *t_prev = SN; /* Allocate and initialize a new structure. */ s = new_sms(type); /* Find the bottom of the stack. */ for (t = sms; t != SN; t = t->next) t_prev = t; if (t_prev == SN) { /* Empty stack. */ s->next = sms; sms = s; /* * Enable the abort button on the menu and the status * line indication. */ menubar_as_set(True); status_script(True); } else { /* Add to bottom. */ s->next = SN; t_prev->next = s; } sms_depth++; if (ansi_save_buf == (unsigned char *)NULL) ansi_save_buf = (unsigned char *)Malloc(ANSI_SAVE_SIZE); return s; } /* Pop an sms definition off the stack. */ static void sms_pop(Boolean can_exit) { sms_t *s; trace_dsn("%s[%d] complete\n", ST_NAME, sms_depth); /* When you pop the peer script, that's the end of x3270. */ if (sms->type == ST_PEER && !sms->is_transient && can_exit) x3270_exit(0); /* Remove the input event. */ script_disable(); /* Close the files. */ if (sms->outfile != NULL) fclose(sms->outfile); if (sms->infd >= 0) { if (sms->is_socket) SOCK_CLOSE(sms->infd); else close(sms->infd); } /* Cancel any pending timeouts. */ if (sms->expect_id != 0L) RemoveTimeOut(sms->expect_id); if (sms->wait_id != 0L) RemoveTimeOut(sms->wait_id); /* * If this was an idle command that generated an error, now is the * time to announce that. (If we announced it when the error first * occurred, we might be telling the wrong party, such as a script.) */ if (sms->idle_error) popup_an_error("Idle command disabled due to error"); #if defined(X3270_SCRIPT) /*[*/ /* If this was a -socket peer, get ready for another connection. */ if (sms->type == ST_PEER && sms->is_external) { #if defined(_WIN32) /*[*/ socket_id = AddInput((int)socket_event, socket_connection); #else /*][*/ socket_id = AddInput(socketfd, socket_connection); #endif /*]*/ } #endif /*]*/ /* Release the memory. */ s = sms; sms = s->next; Free(s); sms_depth--; if (sms == SN) { /* Turn off the menu option. */ menubar_as_set(False); status_script(False); } else if (CKBWAIT && (int)sms->state < (int)SS_KBWAIT) { /* The child implicitly blocked the parent. */ sms->state = SS_KBWAIT; trace_dsn("%s[%d] implicitly paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } else if (sms->state == SS_IDLE && sms->type != ST_FILE) { /* The parent needs to be restarted. */ script_enable(); } else if (sms->type == ST_FILE) { read_from_file(); } #if defined(_WIN32) /*[*/ /* If the new top sms is an exited script, pop it, too. */ if (sms != SN && sms->type == ST_CHILD && sms->child_handle == INVALID_HANDLE_VALUE) sms_pop(False); #endif /*]*/ } /* * Peer script initialization. * * Must be called after the initial call to connect to the host from the * command line, so that the initial state can be set properly. */ void peer_script_init(void) { sms_t *s; Boolean on_top; #if defined(X3270_SCRIPT) /*[*/ if (appres.script_port) { struct sockaddr_in sin; #if !defined(_WIN32) /*[*/ if (appres.socket) xs_warning("-scriptport overrides -socket"); #endif /*]*/ /* -scriptport overrides -script */ appres.scripted = False; /* Create the listening socket. */ socketfd = socket(AF_INET, SOCK_STREAM, 0); if (socketfd < 0) { #if !defined(_WIN32) /*[*/ popup_an_errno(errno, "socket()"); #else /*][*/ popup_an_error("socket(): %s", win32_strerror(GetLastError())); #endif /*]*/ return; } (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; sin.sin_port = htons(appres.script_port); sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); if (bind(socketfd, (struct sockaddr *)&sin, sizeof(sin)) < 0) { #if !defined(_WIN32) /*[*/ popup_an_errno(errno, "socket bind"); #else /*][*/ popup_an_error("socket bind: %s", win32_strerror(GetLastError())); #endif /*]*/ SOCK_CLOSE(socketfd); socketfd = -1; return; } if (listen(socketfd, 1) < 0) { #if !defined(_WIN32) /*[*/ popup_an_errno(errno, "socket listen"); #else /*][*/ popup_an_error("socket listen: %s", win32_strerror(GetLastError())); #endif /*]*/ SOCK_CLOSE(socketfd); socketfd = -1; return; } #if defined(_WIN32) /*[*/ socket_event = CreateEvent(NULL, FALSE, FALSE, NULL); if (socket_event == NULL) { popup_an_error("CreateEvent: %s", win32_strerror(GetLastError())); SOCK_CLOSE(socketfd); socketfd = -1; return; } if (WSAEventSelect(socketfd, socket_event, FD_ACCEPT) != 0) { popup_an_error("WSAEventSelect: %s", win32_strerror(GetLastError())); SOCK_CLOSE(socketfd); socketfd = -1; return; } socket_id = AddInput((int)socket_event, socket_connection); #else /*][*/ socket_id = AddInput(socketfd, socket_connection); #endif/*]*/ register_schange(ST_EXITING, cleanup_socket); return; } #endif /*]*/ #if defined(X3270_SCRIPT) && !defined(_WIN32) /*[*/ if (appres.socket && !appres.script_port) { struct sockaddr_un ssun; /* -socket overrides -script */ appres.scripted = False; /* Create the listening socket. */ socketfd = socket(AF_UNIX, SOCK_STREAM, 0); if (socketfd < 0) { popup_an_errno(errno, "Unix-domain socket"); return; } (void) memset(&ssun, '\0', sizeof(ssun)); ssun.sun_family = AF_UNIX; (void) sprintf(ssun.sun_path, "/tmp/x3sck.%u", getpid()); (void) unlink(ssun.sun_path); if (bind(socketfd, (struct sockaddr *)&ssun, sizeof(ssun)) < 0) { popup_an_errno(errno, "Unix-domain socket bind"); close(socketfd); socketfd = -1; return; } if (listen(socketfd, 1) < 0) { popup_an_errno(errno, "Unix-domain socket listen"); close(socketfd); socketfd = -1; (void) unlink(ssun.sun_path); return; } socket_id = AddInput(socketfd, socket_connection); register_schange(ST_EXITING, cleanup_socket); return; } #endif /*]*/ if (!appres.scripted) return; if (sms == SN) { /* No login script running, simply push a new sms. */ (void) sms_push(ST_PEER); s = sms; on_top = True; } else { /* Login script already running, pretend we started it. */ s = sms_enqueue(ST_PEER); s->state = SS_RUNNING; on_top = False; } s->infd = fileno(stdin); #if defined(_WIN32) /*[*/ s->inhandle = GetStdHandle(STD_INPUT_HANDLE); #endif /*]*/ s->outfile = stdout; (void) SETLINEBUF(s->outfile); /* even if it's a pipe */ if (on_top) { if (HALF_CONNECTED || (CONNECTED && (kybdlock & KL_AWAITING_FIRST))) s->state = SS_CONNECT_WAIT; else script_enable(); } } #if defined(X3270_SCRIPT) /*[*/ /* Accept a new socket connection. */ static void socket_connection(void) { int fd; sms_t *s; /* Accept the connection. */ #if !defined(_WIN32) /*[*/ if (appres.script_port) #endif /*]*/ { struct sockaddr_in sin; socklen_t len = sizeof(sin); (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; fd = accept(socketfd, (struct sockaddr *)&sin, &len); } #if !defined(_WIN32) /*[*/ else { struct sockaddr_un ssun; socklen_t len = sizeof(ssun); (void) memset(&ssun, '\0', sizeof(ssun)); ssun.sun_family = AF_UNIX; fd = accept(socketfd, (struct sockaddr *)&ssun, &len); } #endif /*]*/ if (fd < 0) { popup_an_errno(errno, "socket accept"); return; } trace_dsn("New script socket connection\n"); /* Push on a peer script. */ (void) sms_push(ST_PEER); s = sms; s->is_transient = True; s->is_external = True; s->infd = fd; #if !defined(_WIN32) /*[*/ s->outfile = fdopen(dup(fd), "w"); #endif /*]*/ #if defined(_WIN32) /*[*/ s->inhandle = CreateEvent(NULL, FALSE, FALSE, NULL); if (s->inhandle == NULL) { fprintf(stderr, "Can't create socket handle\n"); exit(1); } if (WSAEventSelect(s->infd, s->inhandle, FD_READ | FD_CLOSE) != 0) { fprintf(stderr, "Can't set socket handle events\n"); exit(1); } #endif /*]*/ s->is_socket = True; script_enable(); /* Don't accept any more connections. */ RemoveInput(socket_id); socket_id = 0L; } # if defined(_WIN32) /*[*/ /* Accept a new socket connection from a child process. */ static void child_socket_connection(void) { int fd; sms_t *old_sms; sms_t *s; struct sockaddr_in sin; socklen_t len = sizeof(sin); /* Accept the connection. */ (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; fd = accept(sms->infd, (struct sockaddr *)&sin, &len); if (fd < 0) { popup_an_error("socket accept: %s", win32_strerror(GetLastError())); return; } trace_dsn("New child script socket connection\n"); /* Push on a peer script. */ old_sms = sms; (void) sms_push(ST_PEER); s = sms; s->is_transient = True; s->infd = fd; s->inhandle = CreateEvent(NULL, FALSE, FALSE, NULL); if (s->inhandle == NULL) { fprintf(stderr, "Can't create socket handle\n"); exit(1); } if (WSAEventSelect(s->infd, s->inhandle, FD_READ | FD_CLOSE) != 0) { fprintf(stderr, "Can't set socket handle events\n"); exit(1); } s->is_socket = True; script_enable(); /* Don't accept any more connections on the global listen socket. */ RemoveInput(old_sms->listen_id); old_sms->listen_id = 0L; } #endif /*]*/ /* Clean up the Unix-domain socket. */ static void cleanup_socket(Boolean b _is_unused) { #if !defined(_WIN32) /*[*/ char buf[1024]; (void) sprintf(buf, "/tmp/x3sck.%u", getpid()); (void) unlink(buf); #endif /*]*/ } #endif /*]*/ #if defined(_WIN32) /*[*/ /* Process an event on a child script handle (presumably a process exit). */ static void child_exited(void) { sms_t *s; DWORD status; for (s = sms; s != NULL; s = s->next) { if (s->type == ST_CHILD) { status = 0; if (GetExitCodeProcess(s->child_handle, &status) == 0) { popup_an_error("GetExitCodeProcess failed: %s", win32_strerror(GetLastError())); } else if (status != STILL_ACTIVE) { trace_dsn("Child script exited with status " "0x%x\n", (unsigned)status); CloseHandle(s->child_handle); s->child_handle = INVALID_HANDLE_VALUE; RemoveInput(s->exit_id); s->exit_id = 0; if (s == sms) { sms_pop(False); sms_continue(); } break; } } } } #endif /*]*/ /* * Interpret and execute a script or macro command. */ enum em_stat { EM_CONTINUE, EM_PAUSE, EM_ERROR }; static enum em_stat execute_command(enum iaction cause, char *s, char **np) { enum { ME_GND, /* before action name */ ME_COMMENT, /* within a comment */ ME_FUNCTION, /* within action name */ ME_FUNCTIONx, /* saw whitespace after action name */ ME_LPAREN, /* saw left paren */ ME_P_PARM, /* paren: within unquoted parameter */ ME_P_QPARM, /* paren: within quoted parameter */ ME_P_BSL, /* paren: after backslash in quoted parameter */ ME_P_PARMx, /* paren: saw whitespace after parameter */ ME_S_PARM, /* space: within unquoted parameter */ ME_S_QPARM, /* space: within quoted parameter */ ME_S_BSL, /* space: after backslash in quoted parameter */ ME_S_PARMx /* space: saw whitespace after parameter */ } state = ME_GND; char c; char aname[64+1]; char parm[1024+1]; int nx = 0; Cardinal count = 0; String params[64]; int i, any, exact; int failreason = 0; Boolean saw_paren = False; static const char *fail_text[] = { /*1*/ "Action name must begin with an alphanumeric character", /*2*/ "Syntax error in action name", /*3*/ "Syntax error: \")\" or \",\" expected", /*4*/ "Extra data after parameters", /*5*/ "Syntax error: \")\" expected" }; #define fail(n) { failreason = n; goto failure; } #define free_params() { \ if (cause == IA_MACRO || cause == IA_KEYMAP || \ cause == IA_COMMAND || cause == IA_IDLE) { \ Cardinal j; \ for (j = 0; j < count; j++) \ Free(params[j]); \ } \ } parm[0] = '\0'; params[count] = parm; while ((c = *s++)) switch (state) { case ME_GND: if (isspace(c)) continue; else if (isalnum(c)) { state = ME_FUNCTION; nx = 0; aname[nx++] = c; } else if (c == '!' || c == '#') state = ME_COMMENT; else fail(1); break; case ME_COMMENT: break; case ME_FUNCTION: /* within function name */ if (c == '(' || isspace(c)) { aname[nx] = '\0'; if (c == '(') { nx = 0; state = ME_LPAREN; saw_paren = True; } else state = ME_FUNCTIONx; } else if (isalnum(c) || c == '_' || c == '-') { if (nx < 64) aname[nx++] = c; } else { fail(2); } break; case ME_FUNCTIONx: /* space after function name */ if (isspace(c)) continue; else if (c == '(') { nx = 0; state = ME_LPAREN; } else if (c == '"') { nx = 0; state = ME_S_QPARM; } else { state = ME_S_PARM; nx = 0; parm[nx++] = c; } break; case ME_LPAREN: if (isspace(c)) continue; else if (c == '"') state = ME_P_QPARM; else if (c == ',') { parm[nx++] = '\0'; params[++count] = &parm[nx]; } else if (c == ')') goto success; else { state = ME_P_PARM; parm[nx++] = c; } break; case ME_P_PARM: if (isspace(c)) { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_P_PARMx; } else if (c == ')') { parm[nx] = '\0'; ++count; goto success; } else if (c == ',') { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_LPAREN; } else { if (nx < 1024) parm[nx++] = c; } break; case ME_P_BSL: if (c == 'n' && nx < 1024) parm[nx++] = '\n'; else { if (c != '"' && nx < 1024) parm[nx++] = '\\'; if (nx < 1024) parm[nx++] = c; } state = ME_P_QPARM; break; case ME_P_QPARM: if (c == '"') { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_P_PARMx; } else if (c == '\\') { state = ME_P_BSL; } else if (nx < 1024) parm[nx++] = c; break; case ME_P_PARMx: if (isspace(c)) continue; else if (c == ',') state = ME_LPAREN; else if (c == ')') goto success; else fail(3); break; case ME_S_PARM: if (isspace(c)) { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_S_PARMx; } else { if (nx < 1024) parm[nx++] = c; } break; case ME_S_BSL: if (c == 'n' && nx < 1024) parm[nx++] = '\n'; else { if (c != '"' && nx < 1024) parm[nx++] = '\\'; if (nx < 1024) parm[nx++] = c; } state = ME_S_QPARM; break; case ME_S_QPARM: if (c == '"') { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_S_PARMx; } else if (c == '\\') { state = ME_S_BSL; } else if (nx < 1024) parm[nx++] = c; break; case ME_S_PARMx: if (isspace(c)) continue; else if (c == '"') state = ME_S_QPARM; else { parm[nx++] = c; state = ME_S_PARM; } break; } /* Terminal state. */ switch (state) { case ME_FUNCTION: /* mid-function-name */ aname[nx] = '\0'; break; case ME_FUNCTIONx: /* space after function */ break; case ME_GND: /* nothing */ case ME_COMMENT: if (np) *np = s - 1; return EM_CONTINUE; case ME_S_PARMx: /* space after space-style parameter */ break; case ME_S_PARM: /* mid space-style parameter */ parm[nx++] = '\0'; params[++count] = &parm[nx]; break; default: fail(5); } success: if (c) { while (*s && isspace(*s)) s++; if (*s) { if (np) *np = s; else fail(4); } else if (np) *np = s; } else if (np) *np = s-1; /* If it's a macro, do variable substitutions. */ if (cause == IA_MACRO || cause == IA_KEYMAP || cause == IA_COMMAND || cause == IA_IDLE) { Cardinal j; for (j = 0; j < count; j++) params[j] = do_subst(params[j], True, False); } /* Search the action list. */ if (!strncasecmp(aname, PA_PFX, strlen(PA_PFX))) { popup_an_error("Invalid action: %s", aname); free_params(); return EM_ERROR; } any = -1; exact = -1; for (i = 0; i < actioncount; i++) { if (!strcasecmp(aname, actions[i].string)) { exact = any = i; break; } } if (exact < 0) { for (i = 0; i < actioncount; i++) { if (!strncasecmp(aname, actions[i].string, strlen(aname))) { if (any >= 0) { popup_an_error("Ambiguous action name: " "%s", aname); free_params(); return EM_ERROR; } any = i; } } } if (any >= 0) { sms->accumulated = False; sms->msec = 0L; ia_cause = cause; (*actions[any].proc)((Widget)NULL, (XEvent *)NULL, count? params: (String *)NULL, &count); free_params(); screen_disp(False); } else { popup_an_error("Unknown action: %s", aname); free_params(); return EM_ERROR; } #if defined(X3270_FT) /*[*/ if (ft_state != FT_NONE) sms->state = SS_FT_WAIT; #endif /*]*/ if (CKBWAIT) return EM_PAUSE; else return EM_CONTINUE; failure: popup_an_error("%s", fail_text[failreason-1]); return EM_ERROR; #undef fail #undef free_params } /* Run the string at the top of the stack. */ static void run_string(void) { int len; int len_left; trace_dsn("%s[%d] running\n", ST_NAME, sms_depth); sms->state = SS_RUNNING; len = strlen(sms->dptr); trace_dsn("%sString[%d]: '%s'\n", sms->is_hex ? "Hex" : "", sms_depth, sms->dptr); if (sms->is_hex) { if (CKBWAIT) { sms->state = SS_KBWAIT; trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } else { hex_input(sms->dptr); sms_pop(False); } } else { if ((len_left = emulate_input(sms->dptr, len, False))) { sms->dptr += len - len_left; if (CKBWAIT) { sms->state = SS_KBWAIT; trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } } else { sms_pop(False); } } } /* Run the macro at the top of the stack. */ static void run_macro(void) { char *a = sms->dptr; char *nextm; enum em_stat es; sms_t *s; trace_dsn("%s[%d] running\n", ST_NAME, sms_depth); /* * Keep executing commands off the line until one pauses or * we run out of commands. */ while (*a) { /* * Check for command failure. */ if (!sms->success) { trace_dsn("%s[%d] failed\n", ST_NAME, sms_depth); /* Propogate it. */ if (sms->next != SN) sms->next->success = False; break; } sms->state = SS_RUNNING; trace_dsn("%s[%d]: '%s'\n", ST_NAME, sms_depth, a); s = sms; s->success = True; s->executing = True; es = execute_command(st_cause[s->type], a, &nextm); s->executing = False; s->dptr = nextm; /* * If a new sms was started, we will be resumed * when it completes. */ if (sms != s) { return; } /* Macro could not execute. Abort it. */ if (es == EM_ERROR) { trace_dsn("%s[%d] error\n", ST_NAME, sms_depth); /* Propogate it. */ if (sms->next != SN) sms->next->success = False; /* If it was an idle command, cancel it. */ cancel_if_idle_command(); break; } /* Macro paused, implicitly or explicitly. Suspend it. */ if (es == EM_PAUSE || (int)sms->state >= (int)SS_KBWAIT) { if (sms->state == SS_RUNNING) sms->state = SS_KBWAIT; trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); sms->dptr = nextm; return; } /* Macro ran. */ a = nextm; } /* Finished with this macro. */ sms_pop(False); } /* Push a macro (macro, command or keymap action) on the stack. */ static void push_xmacro(enum sms_type type, char *s, Boolean is_login) { macro_output = False; if (!sms_push(type)) return; (void) strncpy(sms->msc, s, 1023); sms->msc[1023] = '\0'; sms->msc_len = strlen(s); if (sms->msc_len > 1023) sms->msc_len = 1023; if (is_login) { sms->state = SS_WAIT_IFIELD; sms->is_login = True; } else sms->state = SS_INCOMPLETE; sms_continue(); } /* Push a macro on the stack. */ void push_macro(char *s, Boolean is_login) { push_xmacro(ST_MACRO, s, is_login); } /* Push an interactive command on the stack. */ void push_command(char *s) { push_xmacro(ST_COMMAND, s, False); } /* Push an keymap action on the stack. */ void push_keymap_action(char *s) { push_xmacro(ST_KEYMAP, s, False); } /* Push an keymap action on the stack. */ void push_idle(char *s) { push_xmacro(ST_IDLE, s, False); } /* Push a string on the stack. */ static void push_string(char *s, Boolean is_login, Boolean is_hex) { if (!sms_push(ST_STRING)) return; (void) strncpy(sms->msc, s, 1023); sms->msc[1023] = '\0'; sms->msc_len = strlen(s); if (sms->msc_len > 1023) sms->msc_len = 1023; if (is_login) { sms->state = SS_WAIT_IFIELD; sms->is_login = True; } else sms->state = SS_INCOMPLETE; sms->is_hex = is_hex; if (sms_depth == 1) sms_continue(); } /* Push a Source'd file on the stack. */ static void push_file(int fd) { if (!sms_push(ST_FILE)) return; sms->infd = fd; read_from_file(); } /* Set a pending string. */ void ps_set(char *s, Boolean is_hex) { push_string(s, False, is_hex); } #if defined(X3270_MENUS) /*[*/ /* Callback for macros menu. */ void macro_command(struct macro_def *m) { push_macro(m->action, False); } #endif /*]*/ /* * If the string looks like an action, e.g., starts with "Xxx(", run a login * macro. Otherwise, set a simple pending login string. */ void login_macro(char *s) { char *t = s; Boolean looks_right = False; while (isspace(*t)) t++; if (isalnum(*t)) { while (isalnum(*t)) t++; while (isspace(*t)) t++; if (*t == '(') looks_right = True; } if (looks_right) push_macro(s, True); else push_string(s, True, False); } /* Run the first command in the msc[] buffer. */ static void run_script(void) { trace_dsn("%s[%d] running\n", ST_NAME, sms_depth); for (;;) { char *ptr; int cmd_len; char *cmd; sms_t *s; enum em_stat es; /* If the script isn't idle, we're done. */ if (sms->state != SS_IDLE) break; /* If a prompt is required, send one. */ if (sms->need_prompt) { script_prompt(sms->success); sms->need_prompt = False; } /* If there isn't a pending command, we're done. */ if (!sms->msc_len) break; /* Isolate the command. */ ptr = memchr(sms->msc, '\n', sms->msc_len); if (!ptr) break; *ptr++ = '\0'; cmd_len = ptr - sms->msc; cmd = sms->msc; /* Execute it. */ sms->state = SS_RUNNING; sms->success = True; trace_dsn("%s[%d]: '%s'\n", ST_NAME, sms_depth, cmd); s = sms; s->executing = True; es = execute_command(IA_SCRIPT, cmd, (char **)NULL); s->executing = False; /* Move the rest of the buffer over. */ if (cmd_len < s->msc_len) { s->msc_len -= cmd_len; (void) memmove(s->msc, ptr, s->msc_len); } else s->msc_len = 0; /* * If a new sms was started, we will be resumed * when it completes. */ if (sms != s) { s->need_prompt = True; return; } /* Handle what it did. */ if (es == EM_PAUSE || (int)sms->state >= (int)SS_KBWAIT) { if (sms->state == SS_RUNNING) sms->state = SS_KBWAIT; script_disable(); if (sms->state == SS_CLOSING) { sms_pop(False); return; } sms->need_prompt = True; } else if (es == EM_ERROR) { trace_dsn("%s[%d] error\n", ST_NAME, sms_depth); script_prompt(False); /* If it was an idle command, cancel it. */ cancel_if_idle_command(); } else script_prompt(sms->success); if (sms->state == SS_RUNNING) sms->state = SS_IDLE; else { trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } } } /* Read the next command from a file. */ static void read_from_file(void) { char *dptr; int len_left = sizeof(sms->msc); sms->msc_len = 0; dptr = sms->msc; while (len_left) { int nr; nr = read(sms->infd, dptr, 1); if (nr < 0) { sms_pop(False); return; } if (nr == 0) { if (sms->msc_len == 0) { sms_pop(False); return; } else { *++dptr = '\0'; break; } } if (*dptr == '\n') { if (sms->msc_len) { *dptr = '\0'; break; } } dptr++; sms->msc_len++; len_left--; } /* Run the command as a macro. */ trace_dsn("%s[%d] read '%s'\n", ST_NAME, sms_depth, sms->msc); sms->state = SS_INCOMPLETE; push_macro(sms->dptr, False); } /* Handle an error generated during the execution of a script or macro. */ void sms_error(const char *msg) { sms_t *s; Boolean is_script = False; /* Print the error message. */ s = sms_redirect_to(); is_script = (s != NULL); if (is_script) { char *text = Malloc(strlen("data: ") + strlen(msg) + 2); char *newline; char *last_space; sprintf(text, "data: %s", msg); newline = text; while ((newline = strchr(newline, '\n')) != NULL) *newline++ = ' '; last_space = strrchr(text, ' '); if (last_space != NULL && last_space == text + strlen(text) - 1) *last_space = '\n'; else strcat(text, "\n"); if (s->is_socket) send(s->infd, text, strlen(text), 0); else fprintf(s->outfile, "%s", text); Free(text); } else (void) fprintf(stderr, "%s\n", msg); /* Fail the current command. */ sms->success = False; /* Cancel any login. */ if (s != NULL && s->is_login) host_disconnect(True); } /* * Generate a response to a script command. * Makes sure that each line of output is prefixed with 'data:', if * appropriate, and makes sure that the output is newline terminated. * * If the parameter is an empty string, generates nothing, but if it is a * newline, generates an empty line. */ void sms_info(const char *fmt, ...) { char *nl; char msgbuf[4096]; char *msg = msgbuf; va_list args; sms_t *s; va_start(args, fmt); vsprintf(msgbuf, fmt, args); va_end(args); do { int nc; nl = strchr(msg, '\n'); if (nl != CN) nc = nl - msg; else nc = strlen(msg); if (nc || (nl != CN)) { if ((s = sms_redirect_to()) != NULL) { char *text = Malloc(strlen("data: ") + nc + 2); sprintf(text, "data: %.*s\n", nc, msg); if (s->is_socket) send(s->infd, text, strlen(text), 0); else (void) fprintf(s->outfile, "%s", text); Free(text); } else (void) printf("%.*s\n", nc, msg); } msg = nl + 1; } while (nl); macro_output = True; } /* Process available input from a script. */ static void script_input(void) { char buf[128]; int nr; char *ptr; char c; trace_dsn("Input for %s[%d] %d\n", ST_NAME, sms_depth, sms->state); /* Read in what you can. */ if (sms->is_socket) nr = recv(sms->infd, buf, sizeof(buf), 0); else nr = read(sms->infd, buf, sizeof(buf)); if (nr < 0) { #if defined(_WIN32) /*[*/ if (sms->is_socket) popup_an_error("%s[%d] recv: %s", ST_NAME, sms_depth, win32_strerror(GetLastError())); else #endif popup_an_errno(errno, "%s[%d] read", ST_NAME, sms_depth); return; } if (nr == 0) { /* end of file */ trace_dsn("EOF %s[%d]\n", ST_NAME, sms_depth); sms_pop(True); sms_continue(); return; } /* Append to the pending command, ignoring returns. */ ptr = buf; while (nr--) if ((c = *ptr++) != '\r') sms->msc[sms->msc_len++] = c; /* Run the command(s). */ sms->state = SS_INCOMPLETE; sms_continue(); } /* Resume a paused sms, if conditions are now ripe. */ void sms_continue(void) { static Boolean continuing = False; if (continuing) return; continuing = True; while (True) { if (sms == SN) { continuing = False; return; } switch (sms->state) { case SS_IDLE: continuing = False; return; /* nothing to do */ case SS_INCOMPLETE: case SS_RUNNING: break; /* let it proceed */ case SS_KBWAIT: if (CKBWAIT) { continuing = False; return; } break; case SS_WAIT_NVT: if (IN_ANSI) { sms->state = SS_WAIT_IFIELD; continue; } continuing = False; return; case SS_WAIT_3270: if (IN_3270 | IN_SSCP) { sms->state = SS_WAIT_IFIELD; continue; } continuing = False; return; case SS_WAIT_UNLOCK: if (KBWAIT) { continuing = False; return; } break; case SS_WAIT_IFIELD: if (!CAN_PROCEED) { continuing = False; return; } /* fall through... */ case SS_CONNECT_WAIT: if (HALF_CONNECTED || (CONNECTED && (kybdlock & KL_AWAITING_FIRST))) { continuing = False; return; } if (!CONNECTED) { /* connection failed */ if (sms->need_prompt) { script_prompt(False); sms->need_prompt = False; } break; } break; #if defined(X3270_FT) /*[*/ case SS_FT_WAIT: if (ft_state == FT_NONE) break; else { continuing = False; return; } #endif /*]*/ case SS_TIME_WAIT: continuing = False; return; case SS_WAIT_OUTPUT: case SS_SWAIT_OUTPUT: if (!CONNECTED) { popup_an_error("Host disconnected"); break; } continuing = False; return; case SS_WAIT_DISC: if (!CONNECTED) break; else { continuing = False; return; } case SS_PAUSED: continuing = False; return; case SS_EXPECTING: continuing = False; return; case SS_CLOSING: continuing = False; return; /* can't happen, I hope */ } /* Restart the sms. */ sms->state = SS_IDLE; if (sms->wait_id != 0L) { RemoveTimeOut(sms->wait_id); sms->wait_id = 0L; } switch (sms->type) { case ST_STRING: run_string(); break; case ST_MACRO: case ST_COMMAND: case ST_KEYMAP: case ST_IDLE: run_macro(); break; case ST_PEER: case ST_CHILD: script_enable(); run_script(); break; case ST_FILE: read_from_file(); break; } } continuing = False; } /* * Return True if there is a pending macro. */ Boolean sms_in_macro(void) { sms_t *s; for (s = sms; s != NULL; s = s->next) { if (s->type == ST_MACRO || s->type == ST_STRING) return True; } return False; } /* * Macro- and script-specific actions. */ static void dump_range(int first, int len, Boolean in_ascii, struct ea *buf, int rel_rows _is_unused, int rel_cols) { register int i; Boolean any = False; Boolean is_zero = False; char *linebuf; char *s; linebuf = Malloc(maxCOLS * 4 + 1); s = linebuf; /* * If the client has looked at the live screen, then if they later * execute 'Wait(output)', they will need to wait for output from the * host. output_wait_needed is cleared by sms_host_output, * which is called from the write logic in ctlr.c. */ if (sms != SN && buf == ea_buf) sms->output_wait_needed = True; is_zero = FA_IS_ZERO(get_field_attribute(first)); for (i = 0; i < len; i++) { if (i && !((first + i) % rel_cols)) { *s = '\0'; action_output("%s", linebuf); s = linebuf; any = False; } if (in_ascii) { char mb[16]; ucs4_t uc; int j; int xlen; if (buf[first + i].fa) { is_zero = FA_IS_ZERO(buf[first + i].fa); s += sprintf(s, " "); } else if (is_zero) s += sprintf(s, " "); else #if defined(X3270_DBCS) /*[*/ if (IS_LEFT(ctlr_dbcs_state(first + i))) { xlen = ebcdic_to_multibyte( (buf[first + i].cc << 8) | buf[first + i + 1].cc, mb, sizeof(mb)); for (j = 0; j < xlen - 1; j++) { s += sprintf(s, "%c", mb[j]); } } else if (IS_RIGHT(ctlr_dbcs_state(first + i))) { continue; } else #endif /*]*/ { xlen = ebcdic_to_multibyte_x( buf[first + i].cc, buf[first + i].cs, mb, sizeof(mb), EUO_BLANK_UNDEF, &uc); for (j = 0; j < xlen - 1; j++) { s += sprintf(s, "%c", mb[j]); } } } else { s += sprintf(s, "%s%02x", i ? " " : "", buf[first + i].cc); } any = True; } if (any) { *s = '\0'; action_output("%s", linebuf); } Free(linebuf); } static void dump_fixed(String params[], Cardinal count, const char *name, Boolean in_ascii, struct ea *buf, int rel_rows, int rel_cols, int caddr) { int row, col, len, rows = 0, cols = 0; switch (count) { case 0: /* everything */ row = 0; col = 0; len = rel_rows*rel_cols; break; case 1: /* from cursor, for n */ row = caddr / rel_cols; col = caddr % rel_cols; len = atoi(params[0]); break; case 3: /* from (row,col), for n */ row = atoi(params[0]); col = atoi(params[1]); len = atoi(params[2]); break; case 4: /* from (row,col), for rows x cols */ row = atoi(params[0]); col = atoi(params[1]); rows = atoi(params[2]); cols = atoi(params[3]); len = 0; break; default: popup_an_error("%s requires 0, 1, 3 or 4 arguments", name); return; } if ( (row < 0 || row > rel_rows || col < 0 || col > rel_cols || len < 0) || ((count < 4) && ((row * rel_cols) + col + len > rel_rows * rel_cols)) || ((count == 4) && (cols < 0 || rows < 0 || col + cols > rel_cols || row + rows > rel_rows)) ) { popup_an_error("%s: Invalid argument", name); return; } if (count < 4) dump_range((row * rel_cols) + col, len, in_ascii, buf, rel_rows, rel_cols); else { int i; for (i = 0; i < rows; i++) dump_range(((row+i) * rel_cols) + col, cols, in_ascii, buf, rel_rows, rel_cols); } } static void dump_field(Cardinal count, const char *name, Boolean in_ascii) { int faddr; unsigned char fa; int start, baddr; int len = 0; if (count != 0) { popup_an_error("%s requires 0 arguments", name); return; } if (!formatted) { popup_an_error("%s: Screen is not formatted", name); return; } faddr = find_field_attribute(cursor_addr); fa = get_field_attribute(cursor_addr); start = faddr; INC_BA(start); baddr = start; do { if (ea_buf[baddr].fa) break; len++; INC_BA(baddr); } while (baddr != start); dump_range(start, len, in_ascii, ea_buf, ROWS, COLS); } void Ascii_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { dump_fixed(params, *num_params, action_name(Ascii_action), True, ea_buf, ROWS, COLS, cursor_addr); } void AsciiField_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params) { dump_field(*num_params, action_name(AsciiField_action), True); } void Ebcdic_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { dump_fixed(params, *num_params, action_name(Ebcdic_action), False, ea_buf, ROWS, COLS, cursor_addr); } void EbcdicField_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params) { dump_field(*num_params, action_name(EbcdicField_action), False); } static unsigned char calc_cs(unsigned char cs) { switch (cs & CS_MASK) { case CS_APL: return 0xf1; case CS_LINEDRAW: return 0xf2; case CS_DBCS: return 0xf8; default: return 0x00; } } /* * Internals of the ReadBuffer action. * Operates on the supplied 'buf' parameter, which might be the live * screen buffer 'ea_buf' or a copy saved with 'Snap'. */ static void do_read_buffer(String *params, Cardinal num_params, struct ea *buf, int fd) { register int baddr; unsigned char current_fg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; Boolean in_ebcdic = False; rpf_t r; if (num_params > 0) { if (num_params > 1) { popup_an_error("%s: extra agruments", action_name(ReadBuffer_action)); return; } if (!strncasecmp(params[0], "Ascii", strlen(params[0]))) in_ebcdic = False; else if (!strncasecmp(params[0], "Ebcdic", strlen(params[0]))) in_ebcdic = True; else { popup_an_error("%s: first parameter must be " "Ascii or Ebcdic", action_name(ReadBuffer_action)); return; } } if (fd >= 0) { char *s; int nw; s = xs_buffer("rows %d cols %d cursor %d\n", ROWS, COLS, cursor_addr); nw = write(fd, s, strlen(s)); Free(s); if (nw < 0) return; } rpf_init(&r); baddr = 0; do { if (!(baddr % COLS)) { if (baddr) { if (fd >= 0) { if (write(fd, r.buf + 1, strlen(r.buf + 1)) < 0) goto done; if (write(fd, "\n", 1) < 0) goto done; } else action_output("%s", r.buf + 1); } rpf_reset(&r); } if (buf[baddr].fa) { rpf(&r, " SF(%02x=%02x", XA_3270, buf[baddr].fa); if (buf[baddr].fg) rpf(&r, ",%02x=%02x", XA_FOREGROUND, buf[baddr].fg); if (buf[baddr].gr) rpf(&r, ",%02x=%02x", XA_HIGHLIGHTING, buf[baddr].gr | 0xf0); if (buf[baddr].cs & CS_MASK) rpf(&r, ",%02x=%02x", XA_CHARSET, calc_cs(buf[baddr].cs)); rpf(&r, ")"); } else { if (buf[baddr].fg != current_fg) { rpf(&r, " SA(%02x=%02x)", XA_FOREGROUND, buf[baddr].fg); current_fg = buf[baddr].fg; } if (buf[baddr].gr != current_gr) { rpf(&r, " SA(%02x=%02x)", XA_HIGHLIGHTING, buf[baddr].gr | 0xf0); current_gr = buf[baddr].gr; } if ((buf[baddr].cs & ~CS_GE) != (current_cs & ~CS_GE)) { rpf(&r, " SA(%02x=%02x)", XA_CHARSET, calc_cs(buf[baddr].cs)); current_cs = buf[baddr].cs; } if (in_ebcdic) { if (buf[baddr].cs & CS_GE) rpf(&r, " GE(%02x)", buf[baddr].cc); else rpf(&r, " %02x", buf[baddr].cc); } else { Boolean done = False; char mb[16]; int j; ucs4_t uc; #if defined(X3270_DBCS) /*[*/ int len; if (IS_LEFT(ctlr_dbcs_state(baddr))) { len = ebcdic_to_multibyte( (buf[baddr].cc << 8) | buf[baddr + 1].cc, mb, sizeof(mb)); rpf(&r, " "); for (j = 0; j < len-1; j++) rpf(&r, "%02x", mb[j] & 0xff); done = True; } else if (IS_RIGHT(ctlr_dbcs_state(baddr))) { rpf(&r, " -"); done = True; } #endif /*]*/ switch (buf[baddr].cc) { case EBC_null: mb[0] = '\0'; break; case EBC_so: mb[0] = 0x0e; mb[1] = '\0'; break; case EBC_si: mb[0] = 0x0f; mb[1] = '\0'; break; default: (void) ebcdic_to_multibyte_x( buf[baddr].cc, buf[baddr].cs, mb, sizeof(mb), EUO_NONE, &uc); break; } if (!done) { rpf(&r, " "); if (mb[0] == '\0') rpf(&r, "00"); else { for (j = 0; mb[j]; j++) { rpf(&r, "%02x", mb[j] & 0xff); } } } } } INC_BA(baddr); } while (baddr != 0); if (fd >= 0) { if (write(fd, r.buf + 1, strlen(r.buf + 1)) < 0) goto done; if (write(fd, "\n", 1) < 0) goto done; } else action_output("%s", r.buf + 1); done: rpf_free(&r); } /* * ReadBuffer action. */ void ReadBuffer_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { do_read_buffer(params, *num_params, ea_buf, -1); } /* * The sms prompt is preceeded by a status line with 11 fields: * * 1 keyboard status * U unlocked * L locked, waiting for host response * E locked, keying error * 2 formatting status of screen * F formatted * U unformatted * 3 protection status of current field * U unprotected (modifiable) * P protected * 4 connect status * N not connected * C(host) connected * 5 emulator mode * N not connected * C connected in ANSI character mode * L connected in ANSI line mode * P 3270 negotiation pending * I connected in 3270 mode * 6 model number * 7 rows * 8 cols * 9 cursor row * 10 cursor col * 11 main window id */ static char * status_string(void) { char kb_stat; char fmt_stat; char prot_stat; char *connect_stat = CN; char em_mode; char s[1024]; char *r; if (!kybdlock) kb_stat = 'U'; else if (!CONNECTED || KBWAIT) kb_stat = 'L'; else kb_stat = 'E'; if (formatted) fmt_stat = 'F'; else fmt_stat = 'U'; if (!formatted) prot_stat = 'U'; else { unsigned char fa; fa = get_field_attribute(cursor_addr); if (FA_IS_PROTECTED(fa)) prot_stat = 'P'; else prot_stat = 'U'; } if (CONNECTED) connect_stat = xs_buffer("C(%s)", current_host); else connect_stat = NewString("N"); if (CONNECTED) { if (IN_ANSI) { if (linemode) em_mode = 'L'; else em_mode = 'C'; } else if (IN_3270) em_mode = 'I'; else em_mode = 'P'; } else em_mode = 'N'; (void) sprintf(s, "%c %c %c %s %c %d %d %d %d %d 0x%lx", kb_stat, fmt_stat, prot_stat, connect_stat, em_mode, model_num, ROWS, COLS, cursor_addr / COLS, cursor_addr % COLS, #if defined(X3270_DISPLAY) /*[*/ XtWindow(toplevel) #else /*][*/ 0L #endif /*]*/ ); r = NewString(s); Free(connect_stat); return r; } static void script_prompt(Boolean success) { char *s; char timing[64]; char *t; s = status_string(); if (sms != SN && sms->accumulated) (void) sprintf(timing, "%ld.%03ld", sms->msec / 1000L, sms->msec % 1000L); else (void) strcpy(timing, "-"); t = Malloc(strlen(s) + 1 + strlen(timing) + 1 + 6 + 1); sprintf(t, "%s %s\n%s\n", s, timing, success ? "ok" : "error"); Free(s); if (sms->is_socket) { send(sms->infd, t, strlen(t), 0); } else { (void) fprintf(sms->outfile, "%s", t); (void) fflush(sms->outfile); } free(t); } /* Save the state of the screen for Snap queries. */ static char *snap_status = NULL; static struct ea *snap_buf = NULL; static int snap_rows = 0; static int snap_cols = 0; static int snap_field_start = -1; static int snap_field_length = -1; static int snap_caddr = 0; static void snap_save(void) { sms->output_wait_needed = True; Replace(snap_status, status_string()); Replace(snap_buf, (struct ea *)Malloc(ROWS*COLS*sizeof(struct ea))); (void) memcpy(snap_buf, ea_buf, ROWS*COLS*sizeof(struct ea)); snap_rows = ROWS; snap_cols = COLS; if (!formatted) { snap_field_start = -1; snap_field_length = -1; } else { int baddr; snap_field_length = 0; snap_field_start = find_field_attribute(cursor_addr); INC_BA(snap_field_start); baddr = snap_field_start; do { if (ea_buf[baddr].fa) break; snap_field_length++; INC_BA(baddr); } while (baddr != snap_field_start); } snap_caddr = cursor_addr; } /* * "Snap" action, maintains a snapshot for consistent multi-field comparisons: * * Snap [Save] * updates the saved image from the live image * Snap Rows * returns the number of rows * Snap Cols * returns the number of columns * Snap Staus * Snap Ascii ... * Snap AsciiField (not yet) * Snap Ebcdic ... * Snap EbcdicField (not yet) * Snap ReadBuffer * runs the named command * Snap Wait [tmo] Output * wait for the screen to change, then do a Snap Save */ void Snap_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (sms == SN || sms->state != SS_RUNNING) { popup_an_error("%s can only be called from scripts or macros", action_name(Snap_action)); return; } if (*num_params == 0) { snap_save(); return; } /* Handle 'Snap Wait' separately. */ if (!strcasecmp(params[0], action_name(Wait_action))) { long tmo = -1; char *ptr; Cardinal maxp = 0; if (*num_params > 1 && (tmo = strtol(params[1], &ptr, 10)) >= 0 && ptr != params[0] && *ptr == '\0') { maxp = 3; } else { tmo = -1; maxp = 2; } if (*num_params > maxp) { popup_an_error("Too many arguments to %s %s", action_name(Snap_action), action_name(Wait_action)); return; } if (*num_params < maxp) { popup_an_error("Too few arguments to %s %s", action_name(Snap_action), action_name(Wait_action)); return; } if (strcasecmp(params[*num_params - 1], "Output")) { popup_an_error("Unknown parameter to %s %s", action_name(Snap_action), action_name(Wait_action)); return; } /* Must be connected. */ if (!(CONNECTED || HALF_CONNECTED)) { popup_an_error("%s: Not connected", action_name(Snap_action)); return; } /* * Make sure we need to wait. * If we don't, then Snap(Wait) is equivalent to Snap(). */ if (!sms->output_wait_needed) { snap_save(); return; } /* Set the new state. */ sms->state = SS_SWAIT_OUTPUT; /* Set up a timeout, if they want one. */ if (tmo >= 0) sms->wait_id = AddTimeOut(tmo? (tmo * 1000): 1, wait_timed_out); return; } if (!strcasecmp(params[0], "Save")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } snap_save(); } else if (!strcasecmp(params[0], "Status")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } if (snap_status == NULL) { popup_an_error("No saved state"); return; } action_output("%s", snap_status); } else if (!strcasecmp(params[0], "Rows")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } if (snap_status == NULL) { popup_an_error("No saved state"); return; } action_output("%d", snap_rows); } else if (!strcasecmp(params[0], "Cols")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } if (snap_status == NULL) { popup_an_error("No saved state"); return; } action_output("%d", snap_cols); } else if (!strcasecmp(params[0], action_name(Ascii_action))) { if (snap_status == NULL) { popup_an_error("No saved state"); return; } dump_fixed(params + 1, *num_params - 1, action_name(Ascii_action), True, snap_buf, snap_rows, snap_cols, snap_caddr); } else if (!strcasecmp(params[0], action_name(Ebcdic_action))) { if (snap_status == NULL) { popup_an_error("No saved state"); return; } dump_fixed(params + 1, *num_params - 1, action_name(Ebcdic_action), False, snap_buf, snap_rows, snap_cols, snap_caddr); } else if (!strcasecmp(params[0], action_name(ReadBuffer_action))) { if (snap_status == NULL) { popup_an_error("No saved state"); return; } do_read_buffer(params + 1, *num_params - 1, snap_buf, -1); } else { popup_an_error("%s: Argument must be Save, Status, Rows, Cols, " "%s, %s %s, or %s", action_name(Snap_action), action_name(Wait_action), action_name(Ascii_action), action_name(Ebcdic_action), action_name(ReadBuffer_action)); } } /* * Wait for various conditions. */ void Wait_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { enum sms_state next_state = SS_WAIT_IFIELD; long tmo = -1; char *ptr; Cardinal np; String *pr; /* Pick off the timeout parameter first. */ if (*num_params > 0 && (tmo = strtol(params[0], &ptr, 10)) >= 0 && ptr != params[0] && *ptr == '\0') { np = *num_params - 1; pr = params + 1; } else { tmo = -1; np = *num_params; pr = params; } if (np > 1) { popup_an_error("Too many arguments to %s or invalid timeout " "value", action_name(Wait_action)); return; } if (sms == SN || sms->state != SS_RUNNING) { popup_an_error("%s can only be called from scripts or macros", action_name(Wait_action)); return; } if (np == 1) { if (!strcasecmp(pr[0], "NVTMode") || !strcasecmp(pr[0], "ansi")) { if (!IN_ANSI) next_state = SS_WAIT_NVT; } else if (!strcasecmp(pr[0], "3270Mode") || !strcasecmp(pr[0], "3270")) { if (!IN_3270) next_state = SS_WAIT_3270; } else if (!strcasecmp(pr[0], "Output")) { if (sms->output_wait_needed) next_state = SS_WAIT_OUTPUT; else return; } else if (!strcasecmp(pr[0], "Disconnect")) { if (CONNECTED) next_state = SS_WAIT_DISC; else return; } else if (!strcasecmp(pr[0], "Unlock")) { if (KBWAIT) next_state = SS_WAIT_UNLOCK; else return; } else if (tmo > 0 && !strcasecmp(pr[0], "Seconds")) { next_state = SS_TIME_WAIT; } else if (strcasecmp(pr[0], "InputField")) { popup_an_error("%s argument must be InputField, " "NVTmode, 3270Mode, Output, Seconds, Disconnect " "or Unlock", action_name(Wait_action)); return; } } if (!(CONNECTED || HALF_CONNECTED)) { popup_an_error("%s: Not connected", action_name(Wait_action)); return; } /* Is it already okay? */ if (next_state == SS_WAIT_IFIELD && CAN_PROCEED) return; /* No, wait for it to happen. */ sms->state = next_state; /* Set up a timeout, if they want one. */ if (tmo >= 0) sms->wait_id = AddTimeOut(tmo? (tmo * 1000): 1, wait_timed_out); } /* * Callback from Connect() and Reconnect() actions, to minimally pause a * running sms. */ void sms_connect_wait(void) { if (sms != SN && (int)sms->state >= (int)SS_RUNNING && sms->state != SS_WAIT_IFIELD) { if (HALF_CONNECTED || (CONNECTED && (kybdlock & KL_AWAITING_FIRST))) sms->state = SS_CONNECT_WAIT; } } /* * Callback from ctlr.c, to indicate that the host has changed the screen. */ void sms_host_output(void) { if (sms != SN) { sms->output_wait_needed = False; switch (sms->state) { case SS_SWAIT_OUTPUT: snap_save(); /* fall through... */ case SS_WAIT_OUTPUT: sms->state = SS_RUNNING; sms_continue(); break; default: break; } } } /* Return whether error pop-ups and acition output should be short-circuited. */ static sms_t * sms_redirect_to(void) { sms_t *s; for (s = sms; s != SN; s = s->next) { if ((s->type == ST_CHILD || s->type == ST_PEER) && (s->state == SS_RUNNING || s->state == SS_CONNECT_WAIT || s->state == SS_WAIT_OUTPUT || s->state == SS_SWAIT_OUTPUT || s->wait_id != 0L)) return s; } return NULL; } /* Return whether error pop-ups and acition output should be short-circuited. */ Boolean sms_redirect(void) { return sms_redirect_to() != NULL; } #if defined(X3270_MENUS) || defined(C3270) /*[*/ /* Return whether any scripts are active. */ Boolean sms_active(void) { return sms != SN; } #endif /*]*/ /* Translate an expect string (uses C escape syntax). */ static void expand_expect(char *s) { char *t = Malloc(strlen(s) + 1); char c; enum { XS_BASE, XS_BS, XS_O, XS_X } state = XS_BASE; int n = 0; int nd = 0; static char hexes[] = "0123456789abcdef"; expect_text = t; while ((c = *s++)) { switch (state) { case XS_BASE: if (c == '\\') state = XS_BS; else *t++ = c; break; case XS_BS: switch (c) { case 'x': nd = 0; n = 0; state = XS_X; break; case 'r': *t++ = '\r'; state = XS_BASE; break; case 'n': *t++ = '\n'; state = XS_BASE; break; case 'b': *t++ = '\b'; state = XS_BASE; break; default: if (c >= '0' && c <= '7') { nd = 1; n = c - '0'; state = XS_O; } else { *t++ = c; state = XS_BASE; } break; } break; case XS_O: if (nd < 3 && c >= '0' && c <= '7') { n = (n * 8) + (c - '0'); nd++; } else { *t++ = n; *t++ = c; state = XS_BASE; } break; case XS_X: if (isxdigit(c)) { n = (n * 16) + strchr(hexes, tolower(c)) - hexes; nd++; } else { if (nd) *t++ = n; else *t++ = 'x'; *t++ = c; state = XS_BASE; } break; } } expect_len = t - expect_text; } /* 'mem' version of strstr */ static char * memstr(char *s1, char *s2, int n1, int n2) { int i; for (i = 0; i <= n1 - n2; i++, s1++) if (*s1 == *s2 && !memcmp(s1, s2, n2)) return s1; return CN; } /* Check for a match against an expect string. */ static Boolean expect_matches(void) { int ix, i; unsigned char buf[ANSI_SAVE_SIZE]; char *t; ix = (ansi_save_ix + ANSI_SAVE_SIZE - ansi_save_cnt) % ANSI_SAVE_SIZE; for (i = 0; i < ansi_save_cnt; i++) { buf[i] = ansi_save_buf[(ix + i) % ANSI_SAVE_SIZE]; } t = memstr((char *)buf, expect_text, ansi_save_cnt, expect_len); if (t != CN) { ansi_save_cnt -= ((unsigned char *)t - buf) + expect_len; Free(expect_text); expect_text = CN; return True; } else return False; } /* Store an ANSI character for use by the Ansi action. */ void sms_store(unsigned char c) { if (sms == SN) return; /* Save the character in the buffer. */ ansi_save_buf[ansi_save_ix++] = c; ansi_save_ix %= ANSI_SAVE_SIZE; if (ansi_save_cnt < ANSI_SAVE_SIZE) ansi_save_cnt++; /* If a script or macro is waiting to match a string, check now. */ if (sms->state == SS_EXPECTING && expect_matches()) { RemoveTimeOut(sms->expect_id); sms->expect_id = 0L; sms->state = SS_INCOMPLETE; sms_continue(); } } /* Dump whatever ANSI data has been sent by the host since last called. */ void AnsiText_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { register int i; int ix; unsigned char c; char linebuf[ANSI_SAVE_SIZE * 4 + 1]; char *s = linebuf; if (!ansi_save_cnt) return; ix = (ansi_save_ix + ANSI_SAVE_SIZE - ansi_save_cnt) % ANSI_SAVE_SIZE; for (i = 0; i < ansi_save_cnt; i++) { c = ansi_save_buf[(ix + i) % ANSI_SAVE_SIZE]; if (!(c & ~0x1f)) switch (c) { case '\n': s += sprintf(s, "\\n"); break; case '\r': s += sprintf(s, "\\r"); break; case '\b': s += sprintf(s, "\\b"); break; default: s += sprintf(s, "\\%03o", c); break; } else if (c == '\\') s += sprintf(s, "\\\\"); else *s++ = (char)c; } *s = '\0'; action_output("%s", linebuf); ansi_save_cnt = 0; ansi_save_ix = 0; } /* Pause a script. */ void PauseScript_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { if (sms == SN || (sms->type != ST_PEER && sms->type != ST_CHILD)) { popup_an_error("%s can only be called from a script", action_name(PauseScript_action)); return; } sms->state = SS_PAUSED; } /* Continue a script. */ void ContinueScript_action(Widget w, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (check_usage(ContinueScript_action, *num_params, 1, 1) < 0) return; /* * If this is a nested script, this action aborts the current script, * then applies to the previous one. */ if (w == (Widget)NULL && sms_depth > 1) sms_pop(False); /* Continue the previous script. */ if (sms == SN || sms->state != SS_PAUSED) { popup_an_error("%s: No script waiting", action_name(ContinueScript_action)); sms_continue(); return; } action_output("%s", params[0]); sms->state = SS_RUNNING; sms_continue(); } /* Stop listening to stdin. */ void CloseScript_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (sms != SN && (sms->type == ST_PEER || sms->type == ST_CHILD)) { /* Close this script. */ sms->state = SS_CLOSING; script_prompt(True); /* If nonzero status passed, fail the calling script. */ if (*num_params > 0 && atoi(params[0]) != 0 && sms->next != SN) { sms->next->success = False; if (sms->is_login) host_disconnect(True); } } else popup_an_error("%s can only be called from a script", action_name(CloseScript_action)); } /* Execute an arbitrary shell command. */ void Execute_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int status; if (check_usage(Execute_action, *num_params, 1, 1) < 0) return; status = system(params[0]); if (status < 0) { popup_an_errno(errno, "system(\"%s\") failed", params[0]); } else if (status != 0) { #if defined(_WIN32) /*[*/ popup_an_error("system(\"%s\") exited with status %d\n", params[0], status); #else /*][*/ if (WIFEXITED(status)) { popup_an_error("system(\"%s\") exited with status %d\n", params[0], WEXITSTATUS(status)); } else if (WIFSIGNALED(status)) { popup_an_error("system(\"%s\") killed by signal %d\n", params[0], WTERMSIG(status)); } else if (WIFSTOPPED(status)) { popup_an_error("system(\"%s\") stopped by signal %d\n", params[0], WSTOPSIG(status)); } #endif /*]*/ } } /* Timeout for Expect action. */ static void expect_timed_out(void) { if (sms == SN || sms->state != SS_EXPECTING) return; Free(expect_text); expect_text = CN; popup_an_error("%s: Timed out", action_name(Expect_action)); sms->expect_id = 0L; sms->state = SS_INCOMPLETE; sms->success = False; if (sms->is_login) host_disconnect(True); sms_continue(); } /* Timeout for Wait action. */ static void wait_timed_out(void) { /* If they just wanted a delay, succeed. */ if (sms->state == SS_TIME_WAIT) { sms->success = True; sms->state = SS_INCOMPLETE; sms_continue(); return; } /* Pop up the error message. */ popup_an_error("%s: Timed out", action_name(Wait_action)); /* Forget the ID. */ sms->wait_id = 0L; /* If this is a login macro, it has failed. */ if (sms->is_login) host_disconnect(True); sms->success = False; sms->state = SS_INCOMPLETE; /* Let the script proceed. */ sms_continue(); } /* Wait for a string from the host (ANSI mode only). */ void Expect_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int tmo; /* Verify the environment and parameters. */ if (sms == SN || sms->state != SS_RUNNING) { popup_an_error("%s can only be called from a script or macro", action_name(Expect_action)); return; } if (check_usage(Expect_action, *num_params, 1, 2) < 0) return; if (!IN_ANSI) { popup_an_error("%s is valid only when connected in ANSI mode", action_name(Expect_action)); } if (*num_params == 2) { tmo = atoi(params[1]); if (tmo < 1 || tmo > 600) { popup_an_error("%s: Invalid timeout: %s", action_name(Expect_action), params[1]); return; } } else tmo = 30; /* See if the text is there already; if not, wait for it. */ expand_expect(params[0]); if (!expect_matches()) { sms->expect_id = AddTimeOut(tmo * 1000, expect_timed_out); sms->state = SS_EXPECTING; } /* else allow sms to proceed */ } #if defined(X3270_MENUS) /*[*/ /* "Execute an Action" menu option */ static Widget execute_action_shell = (Widget)NULL; /* Callback for "OK" button on execute action popup */ static void execute_action_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *text; text = XawDialogGetValueString((Widget)client_data); XtPopdown(execute_action_shell); if (!text) return; push_macro(text, False); } void execute_action_option(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { if (execute_action_shell == NULL) execute_action_shell = create_form_popup("ExecuteAction", execute_action_callback, (XtCallbackProc)NULL, FORM_NO_CC); popup_popup(execute_action_shell, XtGrabExclusive); } #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ # if defined(_WIN32) /*[*/ /* Let the system pick a TCP port to bind to, and listen on it. */ static unsigned short pick_port(int *sp) { int s; struct sockaddr_in sin; socklen_t len; s = socket(PF_INET, SOCK_STREAM, 0); if (s < 0) { popup_an_error("socket: %s\n", win32_strerror(GetLastError())); return 0; } (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) { popup_an_error("bind: %s\n", win32_strerror(GetLastError())); closesocket(s); return 0; } len = sizeof(sin); if (getsockname(s, (struct sockaddr *)&sin, &len) < 0) { popup_an_error("getsockaddr: %s\n", win32_strerror(GetLastError())); closesocket(s); return 0; } if (listen(s, 10) < 0) { popup_an_error("listen: %s\n", win32_strerror(GetLastError())); closesocket(s); return 0; } *sp = s; return ntohs(sin.sin_port); } # endif /*]*/ /* "Script" action, runs a script as a child process. */ # if !defined(_WIN32) /*[*/ void Script_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int inpipe[2]; int outpipe[2]; if (*num_params < 1) { popup_an_error("%s requires at least one argument", action_name(Script_action)); return; } /* Create a new script description. */ if (!sms_push(ST_CHILD)) return; /* * Create pipes and stdout stream for the script process. * inpipe[] is read by x3270, written by the script * outpipe[] is written by x3270, read by the script */ if (pipe(inpipe) < 0) { sms_pop(False); popup_an_error("pipe() failed"); return; } if (pipe(outpipe) < 0) { (void) close(inpipe[0]); (void) close(inpipe[1]); sms_pop(False); popup_an_error("pipe() failed"); return; } if ((sms->outfile = fdopen(outpipe[1], "w")) == (FILE *)NULL) { (void) close(inpipe[0]); (void) close(inpipe[1]); (void) close(outpipe[0]); (void) close(outpipe[1]); sms_pop(False); popup_an_error("fdopen() failed"); return; } (void) SETLINEBUF(sms->outfile); /* Fork and exec the script process. */ if ((sms->pid = fork_child()) < 0) { (void) close(inpipe[0]); (void) close(inpipe[1]); (void) close(outpipe[0]); sms_pop(False); popup_an_error("fork() failed"); return; } /* Child processing. */ if (sms->pid == 0) { char **argv; Cardinal i; char env_buf[2][32]; /* Clean up the pipes. */ (void) close(outpipe[1]); (void) close(inpipe[0]); /* Export the names of the pipes into the environment. */ (void) sprintf(env_buf[0], "X3270OUTPUT=%d", outpipe[0]); (void) putenv(env_buf[0]); (void) sprintf(env_buf[1], "X3270INPUT=%d", inpipe[1]); (void) putenv(env_buf[1]); /* Set up arguments. */ argv = (char **)Malloc((*num_params + 1) * sizeof(char *)); for (i = 0; i < *num_params; i++) argv[i] = params[i]; argv[i] = CN; /* Exec. */ (void) execvp(params[0], argv); (void) fprintf(stderr, "exec(%s) failed\n", params[0]); (void) _exit(1); } /* Clean up our ends of the pipes. */ sms->infd = inpipe[0]; (void) close(inpipe[1]); (void) close(outpipe[0]); /* Enable input. */ script_enable(); /* Set up to reap the child's exit status. */ ++children; } # endif /*]*/ # if defined(_WIN32) /*[*/ /* "Script" action, runs a script as a child process. */ void Script_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int s = -1; unsigned short port = 0; HANDLE hevent; char *pe; STARTUPINFO startupinfo; PROCESS_INFORMATION process_information; char *args; Cardinal i; if (*num_params < 1) { popup_an_error("%s requires at least one argument", action_name(Script_action)); return; } /* Set up X3270PORT for the child process. */ port = pick_port(&s); if (port == 0) return; hevent = CreateEvent(NULL, FALSE, FALSE, NULL); if (hevent == NULL) { popup_an_error("CreateEvent: %s", win32_strerror(GetLastError())); closesocket(s); return; } if (WSAEventSelect(s, hevent, FD_ACCEPT) != 0) { popup_an_error("WSAEventSelect: %s", win32_strerror(GetLastError())); closesocket(s); return; } pe = xs_buffer("X3270PORT=%d", port); putenv(pe); Free(pe); /* Start the child process. */ (void) memset(&startupinfo, '\0', sizeof(STARTUPINFO)); startupinfo.cb = sizeof(STARTUPINFO); (void) memset(&process_information, '\0', sizeof(PROCESS_INFORMATION)); args = NewString(params[0]); for (i = 1; i < *num_params; i++) { char *t; if (strchr(params[i], ' ') != NULL && params[i][0] != '"' && params[i][strlen(params[i]) - 1] != '"') t = xs_buffer("%s \"%s\"", args, params[i]); else t = xs_buffer("%s %s", args, params[i]); Free(args); args = t; } if (CreateProcess( NULL, args, NULL, NULL, FALSE, 0, NULL, NULL, &startupinfo, &process_information) == 0) { popup_an_error("CreateProcess(%s) failed: %s", params[0], win32_strerror(GetLastError())); Free(args); return; } else { Free(args); CloseHandle(process_information.hThread); } /* Create a new script description. */ if (!sms_push(ST_CHILD)) return; sms->child_handle = process_information.hProcess; sms->inhandle = hevent; sms->infd = s; /* * Wait for the child process to exit. * Note that this is an asynchronous event -- exits for multiple * children can happen in any order. */ sms->exit_id = AddInput((int)process_information.hProcess, child_exited); /* Allow the child script to connect back to us. */ sms->listen_id = AddInput((int)hevent, child_socket_connection); /* Enable input. */ script_enable(); } # endif /*]*/ #endif /*]*/ /* "Macro" action, explicitly invokes a named macro. */ void Macro_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { struct macro_def *m; if (check_usage(Macro_action, *num_params, 1, 1) < 0) return; for (m = macro_defs; m != (struct macro_def *)NULL; m = m->next) { if (!strcmp(m->name, params[0])) { push_macro(m->action, False); return; } } popup_an_error("no such macro: '%s'", params[0]); } #if defined(X3270_SCRIPT) /*[*/ /* * Idle cancellation: cancels the idle command if the current sms or any sms * that called it caused an error. */ void cancel_if_idle_command(void) { sms_t *s; for (s = sms; s != NULL; s = s->next) { if (s->type == ST_IDLE) { cancel_idle_timer(); s->idle_error = True; trace_dsn("Cancelling idle command"); break; } } } #endif /*]*/ #if defined(X3270_PRINTER) /*[*/ /* "Printer" action, starts or stops a printer session. */ void Printer_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (check_usage(Printer_action, *num_params, 1, 2) < 0) return; if (!strcasecmp(params[0], "Start")) { printer_start((*num_params > 1)? params[1] : CN); } else if (!strcasecmp(params[0], "Stop")) { if (*num_params != 1) { popup_an_error("%s: Extra argument(s)", action_name(Printer_action)); return; } printer_stop(); } else { popup_an_error("%s: Argument must Start or Stop", action_name(Printer_action)); } } #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ /* Abort all running scripts. */ void abort_script(void) { while (sms != SN) { #if !defined(_WIN32) /*[*/ if (sms->type == ST_CHILD && sms->pid > 0) (void) kill(sms->pid, SIGTERM); #endif /*]*/ sms_pop(True); } } /* "Abort" action, stops pending scripts. */ void Abort_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { #if !defined(_WIN32) /*[*/ child_ignore_output(); #endif /*]*/ abort_script(); } #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ /* Accumulate command execution time. */ void sms_accumulate_time(struct timeval *t0, struct timeval *t1) { if (sms != SN) { sms->accumulated = True; sms->msec += (t1->tv_sec - t0->tv_sec) * 1000 + (t1->tv_usec - t0->tv_usec + 500) / 1000; #if defined(DEBUG_ACCUMULATE) /*[*/ printf("%s: accumulated %lu msec\n", ST_NAME, sms->msec); #endif /*]*/ } } #endif /*]*/ void Query_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { static struct { char *name; const char *(*fn)(void); } queries[] = { { "BindPluName", net_query_bind_plu_name }, { "ConnectionState", net_query_connection_state }, { "Host", net_query_host }, { "LuName", net_query_lu_name }, { CN, NULL } }; int i; switch (*num_params) { case 0: for (i = 0; queries[i].name != CN; i++) { action_output("%s: %s", queries[i].name, (*queries[i].fn)()); } break; case 1: for (i = 0; queries[i].name != CN; i++) { if (!strcasecmp(params[0], queries[i].name)) { const char *s; s = (*queries[i].fn)(); action_output("%s\n", *s? s: " "); return; } } popup_an_error("%s: Unknown parameter", action_name(Query_action)); break; default: popup_an_error("%s: Requires 0 or 1 arguments", action_name(Query_action)); break; } } #if defined(X3270_SCRIPT) /*[*/ #if defined(X3270_PLUGIN) /*[*/ /* Plugin facility. */ static void no_plugin(void) { if (plugin_timeout_id != 0L) { RemoveTimeOut(plugin_timeout_id); plugin_timeout_id = 0L; } if (plugin_input_id != 0L) { RemoveInput(plugin_input_id); plugin_input_id = 0L; } if (plugin_inpipe != -1) { close(plugin_inpipe); plugin_inpipe = -1; } if (plugin_outpipe != -1) { close(plugin_outpipe); plugin_outpipe = -1; } plugin_pid = 0; plugin_started = False; prb_cnt = 0; ptq_first = ptq_last = 0; } /* Read a response from the plugin process. */ static void plugin_input(void) { int nr; char *nl; nr = read(plugin_inpipe, plugin_buf + prb_cnt, PRB_MAX - prb_cnt); if (nr < 0) { if (plugin_complain) popup_an_errno(errno, "Read from plugin command"); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Read from plugin command: %s", strerror(errno)); } no_plugin(); return; } if (nr == 0) { if (plugin_complain) popup_an_error("Plugin command exited"); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin command exited"); } no_plugin(); return; } nl = memchr(plugin_buf + prb_cnt, '\n', nr); if (nl != NULL) { int xtra; *nl = '\0'; trace_dsn("From plugin: %s\n", plugin_buf); switch (plugin_tq[ptq_first]) { case PLUGIN_INIT: if (strcasecmp(plugin_buf, "ok")) { if (plugin_complain) popup_an_error("Plugin start-up " "failed:\n%s", plugin_buf); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin start-up " "failed:\n%s", plugin_buf); } no_plugin(); } plugin_started = True; plugin_complain = True; break; case PLUGIN_AID: /* feedback is just for trace/debug purposes */ break; case PLUGIN_CMD: default: push_macro(plugin_buf, False); break; } ptq_first = (ptq_first + 1) % PLUGIN_QMAX; if (ptq_first == ptq_last) { RemoveInput(plugin_input_id); plugin_input_id = 0L; RemoveTimeOut(plugin_timeout_id); plugin_timeout_id = 0L; } xtra = (plugin_buf + prb_cnt + nr - 1) - nl; if (xtra > 0) (void) memmove(plugin_buf, nl + 1, xtra); prb_cnt = xtra; return; } prb_cnt += nr; if (prb_cnt >= PRB_MAX) { if (plugin_complain) popup_an_error("Plugin command buffer overflow"); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin command buffer overflow"); } no_plugin(); } } /* Plugin process took too long to answer. Kill it. */ static void plugin_timeout(void) { char *s; switch (plugin_tq[ptq_first]) { case PLUGIN_INIT: s = "init"; break; case PLUGIN_AID: s = "AID"; break; case PLUGIN_CMD: default: s = "command"; break; } if (plugin_complain) popup_an_error("Plugin %s timed out", s); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin %s timed out", s); } plugin_timeout_id = 0L; no_plugin(); } static void plugin_start(char *command, char *argv[], Boolean complain) { int inpipe[2]; int outpipe[2]; char *s; plugin_complain = complain; if (pipe(inpipe) < 0) { if (complain) popup_an_errno(errno, "pipe"); else { (void) snprintf(plugin_start_error, PRB_MAX, "pipe: %s", strerror(errno)); plugin_start_failed = True; } return; } if (pipe(outpipe) < 0) { if (complain) popup_an_errno(errno, "pipe"); else { (void) snprintf(plugin_start_error, PRB_MAX, "pipe: %s", strerror(errno)); plugin_start_failed = True; } close(inpipe[0]); close(inpipe[1]); return; } switch ((plugin_pid = fork())) { case -1: if (complain) popup_an_errno(errno, "fork"); else { (void) snprintf(plugin_start_error, PRB_MAX, "fork: %s", strerror(errno)); plugin_start_failed = True; } plugin_pid = 0; return; case 0: /* child */ (void) dup2(outpipe[0], 0); close(outpipe[0]); close(outpipe[1]); (void) dup2(inpipe[1], 1); close(inpipe[1]); (void) dup2(1, 2); close(inpipe[0]); if (execvp(command, argv) < 0) { char *buf = xs_buffer("%s: %s\n", command, strerror(errno)); write(2, buf, strlen(buf)); exit(1); } break; default: /* parent */ break; } /* Parent. */ plugin_inpipe = inpipe[0]; (void) fcntl(plugin_inpipe, F_SETFD, FD_CLOEXEC); close(inpipe[1]); plugin_outpipe = outpipe[1]; (void) fcntl(plugin_outpipe, F_SETFD, FD_CLOEXEC); close(outpipe[0]); prb_cnt = 0; /* Tell the plug-in what we're about. */ s = xs_buffer("x3270 host %s\n", current_host); (void) write(plugin_outpipe, s, strlen(s)); Free(s); /* Wait for the 'ok' from the child. */ ptq_first = ptq_last = 0; plugin_tq[ptq_last] = PLUGIN_INIT; ptq_last = (ptq_last + 1) % PLUGIN_QMAX; plugin_input_id = AddInput(plugin_inpipe, plugin_input); plugin_timeout_id = AddTimeOut(PLUGINSTART_SECS * 1000, plugin_timeout); plugin_started = False; } void Plugin_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (*num_params == 0) { popup_an_error("%s: Requires 1 or more arguments", action_name(Plugin_action)); return; } if (!strcasecmp(params[0], "Start")) { char *args[MAX_START_ARGS]; int i; if (*num_params < 2 && !appres.plugin_command) { popup_an_error("%s Start: Command name required", action_name(Plugin_action)); return; } if (plugin_pid) { popup_an_error("%s: Already running", action_name(Plugin_action)); return; } if (!CONNECTED) { popup_an_error("%s: Not connected", action_name(Plugin_action)); return; } if (*num_params >= 2) { for (i = 1; i < *num_params && i < MAX_START_ARGS; i++) args[i - 1] = params[i]; args[i - 1] = NULL; plugin_start(params[1], args, True); } else { plugin_start_appres(True); } } else if (!strcasecmp(params[0], "Stop")) { if (*num_params != 1) { popup_an_error("%s Stop: Extra argument(s)", action_name(Plugin_action)); return; } if (plugin_pid) { close(plugin_outpipe); plugin_outpipe = -1; close(plugin_inpipe); plugin_inpipe = -1; plugin_pid = 0; } } else if (!strcasecmp(params[0], "Command")) { int i; int s; if (*num_params < 2) { popup_an_error("%s Command: additional argument(s) " "required", action_name(Plugin_action)); return; } if (!plugin_pid) { if (plugin_start_failed) { popup_an_error("%s Command: Start failed:\n%s", action_name(Plugin_action), plugin_start_error); plugin_start_failed = False; } else { popup_an_error("%s Command: Not running", action_name(Plugin_action)); } return; } if (PLUGIN_BACKLOG >= PLUGIN_QMAX) { popup_an_error("%s Command: Plugin queue overflow", action_name(Plugin_action)); return; } if (write(plugin_outpipe, "command ", 8) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } for (i = 1; i < *num_params; i++) { if (i > 1) { if (write(plugin_outpipe, " ", 1) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } } if (write(plugin_outpipe, params[i], strlen(params[i])) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } } if (write(plugin_outpipe, "\n", 1) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } do_read_buffer(NULL, 0, ea_buf, plugin_outpipe); plugin_tq[ptq_last] = PLUGIN_CMD; ptq_last = (ptq_last + 1) % PLUGIN_QMAX; if (plugin_timeout_id != 0L) RemoveTimeOut(plugin_timeout_id); if (plugin_input_id == 0L) plugin_input_id = AddInput(plugin_inpipe, plugin_input); s = PLUGIN_BACKLOG * PLUGINWAIT_SECS; if (!plugin_started && s < PLUGINSTART_SECS) s = PLUGINSTART_SECS; plugin_timeout_id = AddTimeOut(s * 1000, plugin_timeout); } else { popup_an_error("%s: First argument must be Start, Stop or " "Command", action_name(Plugin_action)); return; } } /* Send an AID event to the plugin process. */ void plugin_aid(unsigned char aid) { char buf[64]; int s; /* No plugin, nothing to do. */ if (!plugin_pid) return; /* Make sure we don't overrun the response queue. */ if (PLUGIN_BACKLOG >= PLUGIN_QMAX) { trace_dsn("Plugin queue overflow\n"); return; } /* Write the AID and cursor position. */ snprintf(buf, sizeof(buf), "aid %s\n", see_aid(aid)); write(plugin_outpipe, buf, strlen(buf)); /* Write the screen buffer. */ do_read_buffer(NULL, 0, ea_buf, plugin_outpipe); /* * Wait for the response. * If we were already waiting for a response, wait a bit longer. */ plugin_tq[ptq_last] = PLUGIN_AID; ptq_last = (ptq_last + 1) % PLUGIN_QMAX; if (plugin_timeout_id != 0L) RemoveTimeOut(plugin_timeout_id); if (plugin_input_id == 0L) plugin_input_id = AddInput(plugin_inpipe, plugin_input); s = PLUGIN_BACKLOG * PLUGINWAIT_SECS; if (!plugin_started && s < PLUGINSTART_SECS) s = PLUGINSTART_SECS; plugin_timeout_id = AddTimeOut(s * 1000, plugin_timeout); } #else /*][*/ void Plugin_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { /* Do nothing. */ } #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ /* * Bell action, used by scripts to ring the console bell and enter a comment * into the trace log. */ void Bell_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { ring_bell(); } #endif /*]*/ #endif /*]*/ void Source_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int fd; action_debug(Source_action, event, params, num_params); if (check_usage(Source_action, *num_params, 1, 1) < 0) return; fd = open(params[0], O_RDONLY); if (fd < 0) { popup_an_errno(errno, "%s", params[0]); return; } push_file(fd); } ibm-3270-3.3.10ga4/s3270/resolver.c0000644000175000017500000002254511254565704015762 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resolver.c * Hostname resolution. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #include #include #include #else /*][*/ #include #include #endif /*]*/ #include #include "resolverc.h" #include "w3miscc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #if defined(_WIN32) /*[*/ static int win32_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res); static void win32_freeaddrinfo(struct addrinfo *res); static int win32_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags); #undef getaddrinfo #define getaddrinfo win32_getaddrinfo #undef freeaddrinfo #define freeaddrinfo win32_freeaddrinfo #undef getnameinfo #define getnameinfo win32_getnameinfo #endif /*]*/ /* * Resolve a hostname and port. * Returns 0 for success, -1 for fatal error (name resolution impossible), * -2 for simple error (cannot resolve the name). */ int resolve_host_and_port(const char *host, char *portname, int ix, unsigned short *pport, struct sockaddr *sa, socklen_t *sa_len, char *errmsg, int em_len, int *lastp) { #if defined(_WIN32) /*[*/ OSVERSIONINFO info; Boolean has_getaddrinfo = False; /* Figure out if we should use gethostbyname() or getaddrinfo(). */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); exit(1); } has_getaddrinfo = (info.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS && info.dwMajorVersion >= 5 && info.dwMinorVersion >= 1); if (has_getaddrinfo) #endif /*]*/ { #if defined(AF_INET6) /*[*/ struct addrinfo hints, *res0, *res; int rc; /* * Use getaddrinfo() to resolve the hostname and port * together. */ (void) memset(&hints, '\0', sizeof(struct addrinfo)); hints.ai_flags = 0; hints.ai_family = PF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; rc = getaddrinfo(host, portname, &hints, &res0); if (rc != 0) { snprintf(errmsg, em_len, "%s/%s:\n%s", host, portname? portname: "(none)", gai_strerror(rc)); return -2; } res = res0; /* * Return the reqested element. * Hopefully the list will not change between calls. */ while (ix && res->ai_next != NULL) { res = res->ai_next; ix--; } if (res == NULL) { /* Ran off the end? The list must have changed. */ snprintf(errmsg, em_len, "%s/%s:\n%s", host, portname? portname: "(none)", gai_strerror(EAI_AGAIN)); freeaddrinfo(res); return -2; } switch (res->ai_family) { case AF_INET: *pport = ntohs(((struct sockaddr_in *) res->ai_addr)->sin_port); break; case AF_INET6: *pport = ntohs(((struct sockaddr_in6 *) res->ai_addr)->sin6_port); break; default: snprintf(errmsg, em_len, "%s:\nunknown family %d", host, res->ai_family); freeaddrinfo(res); return -1; } (void) memcpy(sa, res->ai_addr, res->ai_addrlen); *sa_len = res->ai_addrlen; if (lastp != NULL) *lastp = (res->ai_next == NULL); freeaddrinfo(res0); #endif /*]*/ } #if defined(_WIN32) /*[*/ else #endif /*]*/ #if defined(_WIN32) || !defined(AF_INET6) /*[*/ { struct hostent *hp; struct servent *sp; unsigned short port; unsigned long lport; char *ptr; struct sockaddr_in *sin = (struct sockaddr_in *)sa; /* Get the port number. */ lport = strtoul(portname, &ptr, 0); if (ptr == portname || *ptr != '\0' || lport == 0L || lport & ~0xffff) { if (!(sp = getservbyname(portname, "tcp"))) { snprintf(errmsg, em_len, "Unknown port number or service: %s", portname); return -1; } port = sp->s_port; } else port = htons((unsigned short)lport); *pport = ntohs(port); /* Use gethostbyname() to resolve the hostname. */ hp = gethostbyname(host); if (hp == (struct hostent *) 0) { sin->sin_family = AF_INET; sin->sin_addr.s_addr = inet_addr(host); if (sin->sin_addr.s_addr == (unsigned long)-1) { snprintf(errmsg, em_len, "Unknown host:\n%s", host); return -2; } if (lastp != NULL) *lastp = True; } else { int i; for (i = 0; i < ix; i++) { if (hp->h_addr_list[i] == NULL) { snprintf(errmsg, em_len, "Unknown host:\n%s", host); return -2; } } sin->sin_family = hp->h_addrtype; (void) memmove(&sin->sin_addr, hp->h_addr_list[i], hp->h_length); if (lastp != NULL) *lastp = (hp->h_addr_list[i + 1] == NULL); } sin->sin_port = port; *sa_len = sizeof(struct sockaddr_in); } #endif /*]*/ return 0; } /* * Resolve a sockaddr into a numeric hostname and port. * Returns 0 for success, -1 for failure. */ int numeric_host_and_port(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, char *errmsg, int em_len) { #if defined(_WIN32) /*[*/ OSVERSIONINFO info; Boolean has_getnameinfo = False; /* Figure out if we should use inet_ntoa() or getnameinfo(). */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); exit(1); } has_getnameinfo = (info.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS && info.dwMajorVersion >= 5 && info.dwMinorVersion >= 1); if (has_getnameinfo) #endif /*]*/ { #if defined(AF_INET6) /*[*/ int rc; /* Use getnameinfo(). */ rc = getnameinfo(sa, salen, host, hostlen, serv, servlen, NI_NUMERICHOST | NI_NUMERICSERV); if (rc != 0) { snprintf(errmsg, em_len, "%s", gai_strerror(rc)); return -1; } #endif /*]*/ } #if defined(_WIN32) /*[*/ else #endif /*]*/ #if defined(_WIN32) || !defined(AF_INET6) /*[*/ { struct sockaddr_in *sin = (struct sockaddr_in *)sa; /* Use inet_ntoa() and snprintf(). */ snprintf(host, hostlen, "%s", inet_ntoa(sin->sin_addr)); snprintf(serv, servlen, "%u", ntohs(sin->sin_port)); } #endif /*]*/ return 0; } #if defined(_WIN32) /*[*/ /* * Windows-specific versions of getaddrinfo(), freeaddrinfo() and * gai_strerror(). * The symbols are resolved from ws2_32.dll at run-time, instead of * by linking against ws2_32.lib, because they are not defined on all * versions of Windows. */ typedef int (__stdcall *gai_fn)(const char *, const char *, const struct addrinfo *, struct addrinfo **); typedef void (__stdcall *fai_fn)(struct addrinfo*); typedef int (__stdcall *gni_fn)(const struct sockaddr *, socklen_t, char *, size_t, char *, size_t, int); /* Resolve a symbol in ws2_32.dll. */ static FARPROC get_ws2_32(const char *symbol) { static HMODULE ws2_32_handle = NULL; FARPROC p; if (ws2_32_handle == NULL) { ws2_32_handle = LoadLibrary("ws2_32.dll"); if (ws2_32_handle == NULL) { fprintf(stderr, "Can't load ws2_32.dll: %s\n", win32_strerror(GetLastError())); exit(1); } } p = GetProcAddress(ws2_32_handle, symbol); if (p == NULL) { fprintf(stderr, "Can't resolve %s in ws2_32.dll: %s\n", symbol, win32_strerror(GetLastError())); exit(1); } return p; } static int win32_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res) { static FARPROC gai_p = NULL; if (gai_p == NULL) gai_p = get_ws2_32("getaddrinfo"); return ((gai_fn)gai_p)(node, service, hints, res); } static void win32_freeaddrinfo(struct addrinfo *res) { static FARPROC fai_p = NULL; if (fai_p == NULL) fai_p = get_ws2_32("freeaddrinfo"); ((fai_fn)fai_p)(res); } static int win32_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags) { static FARPROC gni_p = NULL; if (gni_p == NULL) gni_p = get_ws2_32("getnameinfo"); return ((gni_fn)gni_p)(sa, salen, host, hostlen, serv, servlen, flags); } #endif /*]*/ ibm-3270-3.3.10ga4/s3270/menubarc.h0000644000175000017500000000453711254565704015723 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * menubarc.h * Global declarations for menubar.c. */ #if defined(X3270_MENUS) /*[*/ extern void HandleMenu_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) /*[*/ extern void menubar_as_set(Boolean sensitive); #else /*][*/ #define menubar_as_set(n) #endif /*]*/ extern void menubar_init(Widget container, Dimension overall_width, Dimension current_width); extern void menubar_keypad_changed(void); extern Dimension menubar_qheight(Dimension container_width); extern void menubar_resize(Dimension width); extern void menubar_retoggle(struct toggle *t); #else /*][*/ #define menubar_as_set(n) #define menubar_init(a, b, c) #define menubar_keypad_changed() #define menubar_qheight(n) 0 #define menubar_resize(n) #define menubar_retoggle(t) #define HandleMenu_action ignore_action #endif /*]*/ ibm-3270-3.3.10ga4/s3270/configure.in0000644000175000017500000001476611254565710016271 0ustar bastianbastiandnl Copyright (c) 2000-2009, Paul Mattes. dnl All rights reserved. dnl dnl Redistribution and use in source and binary forms, with or without dnl modification, are permitted provided that the following conditions dnl are met: dnl * Redistributions of source code must retain the above copyright dnl notice, this list of conditions and the following disclaimer. dnl * Redistributions in binary form must reproduce the above copyright dnl notice, this list of conditions and the following disclaimer in the dnl documentation and/or other materials provided with the distribution. dnl * Neither the name of Paul Mattes nor his contributors may be used dnl to endorse or promote products derived from this software without dnl specific prior written permission. dnl dnl THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS dnl OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED dnl WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE dnl DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, dnl INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES dnl (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR dnl SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) dnl HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, dnl STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING dnl IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE dnl POSSIBILITY OF SUCH DAMAGE. dnl Process this file with autoconf to produce a configure script. AC_INIT(smain.c) AC_PREREQ(2.50) dnl Checks for programs. AC_PROG_INSTALL AC_PROG_CC dnl Figure out what sort of host this is. dnl If it's solaris, then pass the -D__EXTENSIONS__ flag to cc, so that dnl all of usual Unix functions are visible to strict ANSI compilers. AC_CANONICAL_HOST case "$host_os" in solaris2*) XANSI=-D__EXTENSIONS__ ;; darwin*) XPRECOMP=-no-cpp-precomp ;; linux*) XANSI="-D_POSIX_SOURCE" ;; *) XANSI="" ;; esac AC_SUBST(XANSI) AC_SUBST(XPRECOMP) dnl Check for libraries. dnl Note that the order here is important. The last libraries should appear dnl first, so that objects in them can be used by subsequent libraries. AC_SEARCH_LIBS(forkpty, util) AC_CHECK_FUNCS(forkpty) AC_SEARCH_LIBS(gethostbyname, nsl) AC_SEARCH_LIBS(socket, socket) dnl Check for the iconv function. dnl Checks for header files. dnl AC_HEADER_STDC dnl AC_HEADER_SYS_WAIT dnl AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h unistd.h) AC_CONFIG_HEADER(conf.h) AC_CHECK_HEADERS(sys/select.h) AC_CHECK_HEADERS(pty.h) AC_CHECK_HEADERS(libutil.h) AC_CHECK_HEADERS(util.h) AC_CHECK_HEADERS(getopt.h) AC_CHECK_HEADERS(iconv.h) dnl Check for SSL header file. AC_ARG_WITH(ssl,[ --with-ssl=DIR specify OpenSSL install directory]) if test "$enable_ssl" != no then orig_CPPFLAGS="$CPPFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/local/ssl /usr/lib/ssl /usr/pkg/ssl /usr/ssl /var/ssl /opt/ssl do header_fail=0 if test -n "$dir" -a ! -d "$dir/include" then header_fail=1 continue fi if test -n "$any" then AC_MSG_NOTICE(retrying with -I$dir/include) fi if test -n "$dir" then CPPFLAGS="$orig_CPPFLAGS -I$dir/include" fi AC_CHECK_HEADERS(openssl/ssl.h, ,[header_fail=1]) if test "$header_fail" -eq 0 then break fi unset `echo ac_cv_header_openssl/ssl_h | $as_tr_sh` CPPFLAGS="$orig_CPPFLAGS" any=1 done if test $header_fail -eq 1 then AC_MSG_WARN(Disabling OpenSSL) enable_ssl="no" unset HAVE_LIBSSL fi fi dnl Checks for typedefs, structures, and compiler characteristics. dnl AC_C_CONST dnl AC_TYPE_PID_T dnl AC_TYPE_SIZE_T dnl AC_HEADER_TIME dnl Checks for library functions. dnl AC_PROG_GCC_TRADITIONAL dnl AC_FUNC_MEMCMP dnl AC_TYPE_SIGNAL dnl AC_FUNC_VPRINTF dnl AC_CHECK_FUNCS(gettimeofday putenv select socket strerror strstr strtol strtoul) AC_CHECK_FUNCS(vasprintf) AC_FUNC_FSEEKO dnl Check for SSL libraries. if test "$enable_ssl" != no then orig_LDFLAGS="$LDFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/pkg /usr /var /opt do lib_fail=0 if test -n "$dir" -a ! -d "$dir/ssl/lib" then lib_fail=1 continue fi if test -n "$any" then AC_MSG_NOTICE(retrying with -L$dir/ssl/lib) fi if test -n "$dir" then LDFLAGS="$orig_LDFLAGS -L$dir/ssl/lib" fi AC_CHECK_LIB(crypto, CRYPTO_malloc, , [lib_fail=1]) if test "$lib_fail" -eq 0 then AC_CHECK_LIB(ssl, SSL_new, , [lib_fail=1]) fi if test "$lib_fail" -eq 0 then break fi unset `echo ac_cv_lib_crypto_CRYPTO_malloc | $as_tr_sh` unset `echo ac_cv_lib_ssl_SSL_new | $as_tr_sh` LDFLAGS="$orig_LDFLAGS" any=1 done if test $lib_fail -eq 1 then AC_MSG_WARN(Disabling OpenSSL) enable_ssl="no" fi fi dnl Check for ISO 10646 (wchar_t is Unicode) and --with-iconv AC_CHECK_DECLS(__STDC_ISO_10646__, unset unkw, unkw=1) AC_ARG_WITH(iconv,[ --with-iconv ignore __STDC_ISO_10646__ and use iconv() instead]) case "$with_iconv" in no|"") ;; yes|*) AC_DEFINE(USE_ICONV,1) unkw=1 ;; esac AC_SUBST(USE_ICONV) AC_SEARCH_LIBS(libiconv, iconv, , AC_SEARCH_LIBS(iconv, iconv, , if test "$unkw"; then AC_MSG_ERROR("No iconv library function"); fi)) dnl Set up the configuration directory. LIBX3270DIR='${sysconfdir}/x3270' AC_SUBST(LIBX3270DIR) dnl Check for unwanted parts. AC_ARG_ENABLE(ansi,[ --disable-ansi leave out NVT (ANSI) support]) case "$enable_ansi" in ""|yes) AC_DEFINE(X3270_ANSI,1) ;; esac AC_ARG_ENABLE(apl,[ --disable-apl leave out APL character support]) case "$enable_apl" in ""|yes) AC_DEFINE(X3270_APL,1) ;; esac AC_ARG_ENABLE(dbcs,[ --disable-dbcs leave out DBCS support]) case "$enable_dbcs" in no) ;; *) AC_DEFINE(X3270_DBCS,1) ;; esac AC_ARG_ENABLE(ft,[ --disable-ft leave out file transfer support]) case "$enable_ft" in ""|yes) AC_DEFINE(X3270_FT,1) ;; esac AC_ARG_ENABLE(local_process,[ --disable-local-process leave out local process support]) case "$enable_local_process" in ""|yes) AC_DEFINE(X3270_LOCAL_PROCESS,1) ;; esac AC_ARG_ENABLE(menus,[ --disable-menus leave out menu support]) case "$enable_menus" in ""|yes) AC_DEFINE(X3270_MENUS,1) ;; esac AC_ARG_ENABLE(ssl,[ --disable-ssl leave out OpenSSL support]) AC_ARG_ENABLE(tn3270e,[ --disable-tn3270e leave out TN3270E support]) case "$enable_tn3270e" in ""|yes) AC_DEFINE(X3270_TN3270E,1) ;; esac AC_ARG_ENABLE(trace,[ --disable-trace leave out tracing support]) case "$enable_trace" in ""|yes) AC_DEFINE(X3270_TRACE,1) ;; esac dnl Generate the Makefile. AC_OUTPUT(Makefile) ibm-3270-3.3.10ga4/s3270/keypadc.h0000644000175000017500000000517611254565704015547 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * keypadc.h * Global declarations for keypad.c. */ extern Boolean keypad_changed; #if defined(X3270_KEYPAD) /*[*/ extern enum kp_placement { kp_right, kp_left, kp_bottom, kp_integral, kp_inside_right } kp_placement; extern void keypad_first_up(void); extern Widget keypad_init(Widget container, Dimension voffset, Dimension screen_width, Boolean floating, Boolean vert); extern void keypad_move(void); extern void keypad_placement_init(void); extern void keypad_popup_init(void); extern Dimension keypad_qheight(void); extern void keypad_set_keymap(void); extern void keypad_set_temp_keymap(XtTranslations trans); extern void keypad_shift(void); extern Dimension min_keypad_width(void); extern void keypad_popdown(Boolean *was_up); extern void keypad_popup(void); #else /*][*/ #define keypad_qheight() 0 #define min_keypad_width() 0 #define keypad_first_up() #define keypad_init(a, b, c, d, e) 0 #define keypad_move() #define keypad_placement_init() #define keypad_popup_init() #define keypad_set_keymap() #define keypad_set_temp_keymap(n) #define keypad_shift() #define keypad_popdown(w) #define keypad_popup() #endif /*]*/ ibm-3270-3.3.10ga4/s3270/ftc.h0000644000175000017500000000605311254565704014676 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * ftc.h * Global declarations for ft.c. */ #if defined(X3270_FT) /*[*/ extern Boolean ascii_flag; extern Boolean cr_flag; extern unsigned long ft_length; extern FILE *ft_local_file; extern char *ft_local_filename; enum ft_state { FT_NONE, /* No transfer in progress */ FT_AWAIT_ACK, /* IND$FILE sent, awaiting acknowledgement message */ FT_RUNNING, /* Ack received, data flowing */ FT_ABORT_WAIT, /* Awaiting chance to send an abort */ FT_ABORT_SENT /* Abort sent; awaiting response */ }; extern Boolean ft_last_cr; extern enum ft_state ft_state; extern Boolean remap_flag; extern unsigned char i_ft2asc[], i_asc2ft[]; #if defined(X3270_DBCS) /*[*/ enum ftd { FT_DBCS_NONE, FT_DBCS_SO, FT_DBCS_LEFT }; extern enum ftd ft_dbcs_state; extern unsigned char ft_dbcs_byte1; extern Boolean ft_last_dbcs; #endif /*]*/ extern void ft_aborting(void); extern void ft_complete(const char *errmsg); extern void ft_init(void); extern void ft_running(Boolean is_cut); extern void ft_update_length(void); extern void PA_dialog_focus_action(Widget w, XEvent *event, String *parms, Cardinal *num_parms); extern void PA_dialog_next_action(Widget w, XEvent *event, String *parms, Cardinal *num_parms); extern void popup_ft(Widget w, XtPointer call_parms, XtPointer call_data); extern void Transfer_action(Widget w, XEvent *event, String *parms, Cardinal *num_parms); #if !defined(X3270_MENUS) /*[*/ extern void ft_init(void); #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/s3270/unicode_dbcsc.h0000644000175000017500000000345011254565704016704 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #if defined(X3270_DBCS) /*[*/ extern ucs4_t ebcdic_dbcs_to_unicode(ebc_t e, unsigned flags); extern ebc_t unicode_to_ebcdic_dbcs(ucs4_t u); extern int set_uni_dbcs(const char *csname, const char **codepage, const char **display_charsets); extern void charset_list_dbcs(void); #endif /*]*/ ibm-3270-3.3.10ga4/s3270/trace_ds.c0000644000175000017500000006714311254565704015710 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * trace_ds.c * 3270 data stream tracing. * */ #include "globals.h" #if defined(X3270_TRACE) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include #include #include "3270ds.h" #include "appres.h" #include "objects.h" #include "resources.h" #include "ctlr.h" #include "ansic.h" #include "charsetc.h" #include "childc.h" #include "ctlrc.h" #include "menubarc.h" #include "popupsc.h" #include "printc.h" #include "savec.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utf8c.h" #include "utilc.h" #include "w3miscc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ /* Maximum size of a tracefile header. */ #define MAX_HEADER_SIZE (10*1024) /* Minimum size of a trace file. */ #define MIN_TRACEFILE_SIZE (64*1024) #define MIN_TRACEFILE_SIZE_NAME "64K" /* System calls which may not be there. */ #if !defined(HAVE_FSEEKO) /*[*/ #define fseeko(s, o, w) fseek(s, (long)o, w) #define ftello(s) (off_t)ftell(s) #endif /*]*/ /* Statics */ static int dscnt = 0; #if !defined(_WIN32) /*[*/ static int tracewindow_pid = -1; #else /*][*/ static HANDLE tracewindow_handle = NULL; #endif /*]*/ static FILE *tracef = NULL; static FILE *tracef_pipe = NULL; static char *tracef_bufptr = CN; static off_t tracef_size = 0; static off_t tracef_max = 0; static char *tracef_midpoint_header = CN; static off_t tracef_midpoint = 0; static void vwtrace(const char *fmt, va_list args); static void wtrace(const char *fmt, ...); static char *create_tracefile_header(const char *mode); static void stop_tracing(void); /* Globals */ struct timeval ds_ts; Boolean trace_skipping = False; char *tracefile_name = NULL; /* display a (row,col) */ const char * rcba(int baddr) { static char buf[16]; (void) sprintf(buf, "(%d,%d)", baddr/COLS + 1, baddr%COLS + 1); return buf; } /* Data Stream trace print, handles line wraps */ static char *tdsbuf = CN; #define TDS_LEN 75 /* * This function is careful to do line breaks based on wchar_t's, not * bytes, so multi-byte characters are traced properly. * However, it doesn't know that DBCS characters are two columns wide, so it * will get those wrong and break too late. To get that right, it needs some * sort of function to tell it that a wchar_t is double-width, which we lack at * the moment. * * If wchar_t's are Unicode, it could perhaps use some sort of heuristic based * on which plane the character is in. */ static void trace_ds_s(char *s, Boolean can_break) { int len = strlen(s); int len0 = len + 1; int wlen; Boolean nl = False; wchar_t *w_buf; /* wchar_t translation of s */ wchar_t *w_cur; /* current wchar_t pointer */ wchar_t *w_chunk; /* transient wchar_t buffer */ char *mb_chunk; /* transient multibyte buffer */ if (!toggled(DS_TRACE) || tracef == NULL || !len) return; /* Allocate buffers for chunks of output data. */ mb_chunk = Malloc(len0); w_chunk = (wchar_t *)Malloc(len0 * sizeof(wchar_t)); /* Convert the input string to wchar_t's. */ w_buf = (wchar_t *)Malloc(len0 * sizeof(wchar_t)); wlen = mbstowcs(w_buf, s, len); if (wlen < 0) Error("trace_ds_s: mbstowcs failed"); w_cur = w_buf; /* Check for a trailing newline. */ if (len && s[len-1] == '\n') { wlen--; nl = True; } if (!can_break && dscnt + wlen >= 75) { wtrace("...\n... "); dscnt = 0; } while (dscnt + wlen >= 75) { int plen = 75-dscnt; int mblen; if (plen) { memcpy(w_chunk, w_cur, plen * sizeof(wchar_t)); w_chunk[plen] = 0; mblen = wcstombs(mb_chunk, w_chunk, len0); if (mblen <= 0) Error("trace_ds_s: wcstombs 1 failed"); } else { mb_chunk[0] = '\0'; mblen = 0; } wtrace("%.*s ...\n... ", mblen, mb_chunk); dscnt = 4; w_cur += plen; wlen -= plen; } if (wlen) { int mblen; memcpy(w_chunk, w_cur, wlen * sizeof(wchar_t)); w_chunk[wlen] = 0; mblen = wcstombs(mb_chunk, w_chunk, len0); if (mblen <= 0) Error("trace_ds_s: wcstombs 2 failed"); wtrace("%.*s", mblen, mb_chunk); dscnt += wlen; } if (nl) { wtrace("\n"); dscnt = 0; } Free(mb_chunk); Free(w_buf); Free(w_chunk); } void trace_ds(const char *fmt, ...) { va_list args; if (!toggled(DS_TRACE) || tracef == NULL) return; va_start(args, fmt); /* allocate buffer */ if (tdsbuf == CN) tdsbuf = Malloc(4096); /* print out remainder of message */ (void) vsprintf(tdsbuf, fmt, args); trace_ds_s(tdsbuf, True); va_end(args); } void trace_ds_nb(const char *fmt, ...) { va_list args; if (!toggled(DS_TRACE) || tracef == NULL) return; va_start(args, fmt); /* allocate buffer */ if (tdsbuf == CN) tdsbuf = Malloc(4096); /* print out remainder of message */ (void) vsprintf(tdsbuf, fmt, args); trace_ds_s(tdsbuf, False); va_end(args); } /* Conditional event trace. */ void trace_event(const char *fmt, ...) { va_list args; if (!toggled(EVENT_TRACE) || tracef == NULL) return; /* print out message */ va_start(args, fmt); vwtrace(fmt, args); va_end(args); } /* Conditional data stream trace, without line splitting. */ void trace_dsn(const char *fmt, ...) { va_list args; if (!toggled(DS_TRACE) || tracef == NULL) return; /* print out message */ va_start(args, fmt); vwtrace(fmt, args); va_end(args); } /* * Write to the trace file, varargs style. * This is the only function that actually does output to the trace file -- * all others are wrappers around this function. */ static void vwtrace(const char *fmt, va_list args) { if (tracef_bufptr != CN) { tracef_bufptr += vsprintf(tracef_bufptr, fmt, args); } else if (tracef != NULL) { int n2w, nw; char buf[16384]; buf[0] = 0; (void) vsnprintf(buf, sizeof(buf), fmt, args); buf[sizeof(buf) - 1] = '\0'; n2w = strlen(buf); nw = fwrite(buf, n2w, 1, tracef); if (nw == 1) { tracef_size += nw; fflush(tracef); } else { if (errno != EPIPE #if defined(EILSEQ) /*[*/ && errno != EILSEQ #endif /*]*/ ) popup_an_errno(errno, "Write to trace file failed"); #if defined(EILSEQ) /*[*/ if (errno != EILSEQ) #endif /*]*/ stop_tracing(); } if (tracef_pipe != NULL) { nw = fwrite(buf, n2w, 1, tracef_pipe); if (nw != 1) { (void) fclose(tracef_pipe); tracef_pipe = NULL; } else { fflush(tracef_pipe); } } } } /* Write to the trace file. */ static void wtrace(const char *fmt, ...) { if (tracef != NULL) { va_list args; va_start(args, fmt); vwtrace(fmt, args); va_end(args); } } static void stop_tracing(void) { if (tracef != NULL && tracef != stdout) (void) fclose(tracef); tracef = NULL; if (tracef_pipe != NULL) { (void) fclose(tracef_pipe); tracef_pipe = NULL; } if (toggled(DS_TRACE)) { toggle_toggle(&appres.toggle[DS_TRACE]); menubar_retoggle(&appres.toggle[DS_TRACE]); } if (toggled(EVENT_TRACE)) { toggle_toggle(&appres.toggle[EVENT_TRACE]); menubar_retoggle(&appres.toggle[EVENT_TRACE]); } } /* Check for a trace file rollover event. */ void trace_rollover_check(void) { if (tracef == NULL || tracef_max == 0) return; /* See if we've reached the midpoint. */ if (!tracef_midpoint) { if (tracef_size >= tracef_max / 2) { tracef_midpoint = ftello(tracef); #if defined(ROLLOVER_DEBUG) /*[*/ printf("midpoint is %lld\n", tracef_midpoint); #endif /*]*/ tracef_midpoint_header = create_tracefile_header("rolled over"); } return; } /* See if we've reached a rollover point. */ if (tracef_size >= tracef_max) { char buf[8*1024]; int nr; off_t rpos = tracef_midpoint, wpos = 0; if (!tracef_midpoint) Error("Tracefile rollover logic error"); #if defined(ROLLOVER_DEBUG) /*[*/ printf("rolling over at %lld\n", tracef_size); #endif /*]*/ /* * Overwrite the file with the midpoint header, and the data * which follows the midpoint. */ if (fseeko(tracef, 0, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(0) failed"); stop_tracing(); return; } wtrace("%s", tracef_midpoint_header); wpos = ftello(tracef); if (wpos < 0) { popup_an_errno(errno, "trace file ftello() failed"); stop_tracing(); return; } if (fseeko(tracef, rpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld) failed", (long)rpos); stop_tracing(); return; } #if defined(ROLLOVER_DEBUG) /*[*/ printf("rpos = %lld, wpos = %lld\n", rpos, wpos); #endif /*]*/ while ((nr = fread(buf, 1, sizeof(buf), tracef)) > 0) { rpos = ftello(tracef); if (fseeko(tracef, wpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld) " "failed", (long)wpos); stop_tracing(); return; } if (fwrite(buf, nr, 1, tracef) < 1) break; wpos = ftello(tracef); if (wpos < 0) { popup_an_errno(errno, "trace file ftello() " "failed"); stop_tracing(); return; } if (fseeko(tracef, rpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld)" "failed", (long)rpos); stop_tracing(); return; } } if (ferror(tracef)) { popup_an_errno(errno, "trace file rollover copy " "failed"); stop_tracing(); return; } #if defined(ROLLOVER_DEBUG) /*[*/ printf("final wpos = %lld\n", wpos); #endif /*]*/ #if !defined(_MSC_VER) /*[*/ if (ftruncate(fileno(tracef), wpos) < 0) { popup_an_errno(errno, "trace file ftruncate(%ld) " "failed", (long)wpos); stop_tracing(); return; } #endif /*]*/ if (fseeko(tracef, wpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld) failed", (long)wpos); stop_tracing(); return; } #if defined(_MSC_VER) /*[*/ SetEndOfFile((HANDLE)_get_osfhandle(fileno(tracef))); #endif /*]*/ tracef_size = wpos; tracef_midpoint = wpos; Replace(tracef_midpoint_header, create_tracefile_header("rolled over")); } } #if defined(X3270_DISPLAY) /*[*/ static Widget trace_shell = (Widget)NULL; #endif /*]*/ static int trace_reason; /* Create a trace file header. */ static char * create_tracefile_header(const char *mode) { char *buf; time_t clk; /* Create a buffer and redirect output. */ buf = Malloc(MAX_HEADER_SIZE); tracef_bufptr = buf; /* Display current status */ clk = time((time_t *)0); wtrace("Trace %s %s", mode, ctime(&clk)); wtrace(" Version: %s\n", build); wtrace(" %s\n", build_options()); save_yourself(); wtrace(" Command: %s\n", command_string); wtrace(" Model %s, %d rows x %d cols", model_name, maxROWS, maxCOLS); #if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) /*[*/ wtrace(", %s display", appres.mono ? "monochrome" : "color"); #endif /*]*/ if (appres.extended) wtrace(", extended data stream"); wtrace(", %s emulation", appres.m3279 ? "color" : "monochrome"); wtrace(", %s charset", get_charset_name()); if (appres.apl_mode) wtrace(", APL mode"); wtrace("\n"); #if !defined(_WIN32) /*[*/ wtrace(" Locale codeset: %s\n", locale_codeset); #else /*][*/ wtrace(" ANSI codepage: %d\n", GetACP()); # if defined(WS3270) /*[*/ wtrace(" Local codepage: %d\n", appres.local_cp); # endif /*]*/ #endif /*]*/ wtrace(" Host codepage: %d", (int)(cgcsgid & 0xffff)); #if defined(X3270_DBCS) /*[*/ if (dbcs) wtrace("+%d", (int)(cgcsgid_dbcs & 0xffff)); #endif /*]*/ wtrace("\n"); if (CONNECTED) wtrace(" Connected to %s, port %u\n", current_host, current_port); /* Snap the current TELNET options. */ if (net_snap_options()) { wtrace(" TELNET state:\n"); trace_netdata('<', obuf, obptr - obuf); } /* Dump the screen contents and modes into the trace file. */ if (CONNECTED) { /* * Note that if the screen is not formatted, we do not * attempt to save what's on it. However, if we're in * 3270 SSCP-LU or NVT mode, we'll do a dummy, empty * write to ensure that the display is in the right * mode. */ if (formatted) { wtrace(" Screen contents (3270):\n"); obptr = obuf; #if defined(X3270_TN3270E) /*[*/ (void) net_add_dummy_tn3270e(); #endif /*]*/ ctlr_snap_buffer(); space3270out(2); net_add_eor(obuf, obptr - obuf); obptr += 2; trace_netdata('<', obuf, obptr - obuf); obptr = obuf; #if defined(X3270_TN3270E) /*[*/ (void) net_add_dummy_tn3270e(); #endif /*]*/ if (ctlr_snap_modes()) { wtrace(" 3270 modes:\n"); space3270out(2); net_add_eor(obuf, obptr - obuf); obptr += 2; trace_netdata('<', obuf, obptr - obuf); } } #if defined(X3270_TN3270E) /*[*/ else if (IN_E) { obptr = obuf; (void) net_add_dummy_tn3270e(); wtrace(" Screen contents (%s):\n", IN_SSCP? "SSCP-LU": "TN3270E-NVT"); if (IN_SSCP) ctlr_snap_buffer_sscp_lu(); else if (IN_ANSI) ansi_snap(); space3270out(2); net_add_eor(obuf, obptr - obuf); obptr += 2; trace_netdata('<', obuf, obptr - obuf); if (IN_ANSI) { wtrace(" NVT modes:\n"); obptr = obuf; ansi_snap_modes(); trace_netdata('<', obuf, obptr - obuf); } } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ else if (IN_ANSI) { obptr = obuf; wtrace(" Screen contents (NVT):\n"); ansi_snap(); trace_netdata('<', obuf, obptr - obuf); wtrace(" NVT modes:\n"); obptr = obuf; ansi_snap_modes(); trace_netdata('<', obuf, obptr - obuf); } #endif /*]*/ } wtrace(" Data stream:\n"); /* Return the buffer. */ tracef_bufptr = CN; return buf; } /* Calculate the tracefile maximum size. */ static void get_tracef_max(void) { static Boolean calculated = False; char *ptr; Boolean bad = False; if (calculated) return; calculated = True; if (appres.trace_file_size == CN || !strcmp(appres.trace_file_size, "0") || !strncasecmp(appres.trace_file_size, "none", strlen(appres.trace_file_size))) { tracef_max = 0; return; } tracef_max = strtoul(appres.trace_file_size, &ptr, 0); if (tracef_max == 0 || ptr == appres.trace_file_size || *(ptr + 1)) { bad = True; } else switch (*ptr) { case 'k': case 'K': tracef_max *= 1024; break; case 'm': case 'M': tracef_max *= 1024 * 1024; break; case '\0': break; default: bad = True; break; } if (bad) { tracef_max = MIN_TRACEFILE_SIZE; #if defined(X3270_DISPLAY) /*[*/ popup_an_info("Invalid %s '%s', assuming " MIN_TRACEFILE_SIZE_NAME, ResTraceFileSize, appres.trace_file_size); #endif /*]*/ } else if (tracef_max < MIN_TRACEFILE_SIZE) { tracef_max = MIN_TRACEFILE_SIZE; } } /* Parse the name '/dev/fd', so we can simulate it. */ static int get_devfd(const char *pathname) { unsigned long fd; char *ptr; if (strncmp(pathname, "/dev/fd/", 8)) return -1; fd = strtoul(pathname + 8, &ptr, 10); if (ptr == pathname + 8 || *ptr != '\0' || fd < 0) return -1; return fd; } /* Callback for "OK" button on trace popup */ static void tracefile_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { char *tfn = CN; int devfd = -1; #if defined(X3270_DISPLAY) /*[*/ int pipefd[2]; Boolean just_piped = False; #endif /*]*/ char *buf; #if defined(X3270_DISPLAY) /*[*/ if (w) tfn = XawDialogGetValueString((Widget)client_data); else #endif /*]*/ tfn = (char *)client_data; tfn = do_subst(tfn, True, True); if (strchr(tfn, '\'') || ((int)strlen(tfn) > 0 && tfn[strlen(tfn)-1] == '\\')) { popup_an_error("Illegal file name: %s", tfn); Free(tfn); return; } tracef_max = 0; tracef_midpoint = 0; Replace(tracef_midpoint_header, CN); if (!strcmp(tfn, "stdout")) { tracef = stdout; } else { #if defined(X3270_DISPLAY) /*[*/ FILE *pipefile = NULL; if (!strcmp(tfn, "none") || !tfn[0]) { just_piped = True; if (!appres.trace_monitor) { popup_an_error("Must specify a trace file " "name"); free(tfn); return; } } if (appres.trace_monitor) { if (pipe(pipefd) < 0) { popup_an_errno(errno, "pipe() failed"); Free(tfn); return; } pipefile = fdopen(pipefd[1], "w"); if (pipefile == NULL) { popup_an_errno(errno, "fdopen() failed"); (void) close(pipefd[0]); (void) close(pipefd[1]); Free(tfn); return; } (void) SETLINEBUF(pipefile); (void) fcntl(pipefd[1], F_SETFD, 1); } if (just_piped) { tracef = pipefile; } else #endif /*]*/ { #if defined(X3270_DISPLAY) /*[*/ tracef_pipe = pipefile; #endif /*]*/ /* Get the trace file maximum. */ get_tracef_max(); /* If there's a limit, the file can't exist. */ if (tracef_max && !access(tfn, R_OK)) { popup_an_error("Trace file '%s' already exists", tfn); #if defined(X3270_DISPLAY) /*[*/ fclose(tracef_pipe); (void) close(pipefd[0]); (void) close(pipefd[1]); #endif /*]*/ Free(tfn); return; } /* Open and configure the file. */ if ((devfd = get_devfd(tfn)) >= 0) tracef = fdopen(dup(devfd), "a"); else tracef = fopen(tfn, tracef_max? "w+": "a"); if (tracef == (FILE *)NULL) { popup_an_errno(errno, "%s", tfn); #if defined(X3270_DISPLAY) /*[*/ fclose(tracef_pipe); (void) close(pipefd[0]); (void) close(pipefd[1]); #endif /*]*/ Free(tfn); return; } Replace(tracefile_name, NewString(tfn)); (void) SETLINEBUF(tracef); #if !defined(_WIN32) /*[*/ (void) fcntl(fileno(tracef), F_SETFD, 1); #endif /*]*/ } } #if defined(X3270_DISPLAY) /*[*/ /* Start the monitor window */ if (tracef != stdout && appres.trace_monitor) { switch (tracewindow_pid = fork_child()) { case 0: /* child process */ { char cmd[64]; (void) sprintf(cmd, "cat <&%d", pipefd[0]); (void) execlp("xterm", "xterm", "-title", just_piped? "trace": tfn, "-sb", "-e", "/bin/sh", "-c", cmd, CN); } (void) perror("exec(xterm) failed"); _exit(1); default: /* parent */ (void) close(pipefd[0]); ++children; break; case -1: /* error */ popup_an_errno(errno, "fork() failed"); break; } } #endif /*]*/ #if defined(_WIN32) && defined(C3270) /*[*/ /* Start the monitor window. */ if (tracef != stdout && appres.trace_monitor && is_installed) { STARTUPINFO startupinfo; PROCESS_INFORMATION process_information; char *path; char *args; (void) memset(&startupinfo, '\0', sizeof(STARTUPINFO)); startupinfo.cb = sizeof(STARTUPINFO); startupinfo.lpTitle = tfn; (void) memset(&process_information, '\0', sizeof(PROCESS_INFORMATION)); path = xs_buffer("%scatf.exe", instdir); args = xs_buffer("\"%scatf.exe\" \"%s\"", instdir, tfn); if (CreateProcess( path, args, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &startupinfo, &process_information) == 0) { popup_an_error("CreateProcess(%s) failed: %s", path, win32_strerror(GetLastError())); Free(path); Free(args); } else { Free(path); Free(args); tracewindow_handle = process_information.hProcess; CloseHandle(process_information.hThread); } } #endif /*]*/ Free(tfn); /* We're really tracing, turn the flag on. */ appres.toggle[trace_reason].value = True; appres.toggle[trace_reason].changed = True; menubar_retoggle(&appres.toggle[trace_reason]); /* Display current status. */ buf = create_tracefile_header("started"); wtrace("%s", buf); Free(buf); #if defined(X3270_DISPLAY) /*[*/ if (w) XtPopdown(trace_shell); #endif /*]*/ } #if defined(X3270_DISPLAY) /*[*/ /* Callback for "No File" button on trace popup */ static void no_tracefile_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { tracefile_callback((Widget)NULL, "", PN); XtPopdown(trace_shell); } #endif /*]*/ /* Open the trace file. */ static void tracefile_on(int reason, enum toggle_type tt) { char *tracefile_buf = NULL; char *tracefile; if (tracef != (FILE *)NULL) return; trace_reason = reason; if (appres.secure && tt != TT_INITIAL) { tracefile_callback((Widget)NULL, "none", PN); return; } if (appres.trace_file) tracefile = appres.trace_file; else { #if defined(_WIN32) /*[*/ tracefile_buf = xs_buffer("%s%sx3trc.%u.txt", (appres.trace_dir != CN)? appres.trace_dir: myappdata, (appres.trace_dir != CN)? "\\": "", getpid()); #else /*][*/ tracefile_buf = xs_buffer("%s/x3trc.%u", appres.trace_dir, getpid()); #endif /*]*/ tracefile = tracefile_buf; } #if defined(X3270_DISPLAY) /*[*/ if (tt == TT_INITIAL || tt == TT_ACTION) #endif /*]*/ { tracefile_callback((Widget)NULL, tracefile, PN); if (tracefile_buf != NULL) Free(tracefile_buf); return; } #if defined(X3270_DISPLAY) /*[*/ if (trace_shell == NULL) { trace_shell = create_form_popup("trace", tracefile_callback, appres.trace_monitor? no_tracefile_callback: NULL, FORM_NO_WHITE); XtVaSetValues(XtNameToWidget(trace_shell, ObjDialog), XtNvalue, tracefile, NULL); } /* Turn the toggle _off_ until the popup succeeds. */ appres.toggle[reason].value = False; appres.toggle[reason].changed = True; popup_popup(trace_shell, XtGrabExclusive); #endif /*]*/ if (tracefile_buf != NULL) Free(tracefile_buf); } /* Close the trace file. */ static void tracefile_off(void) { time_t clk; clk = time((time_t *)0); wtrace("Trace stopped %s", ctime(&clk)); #if !defined(_WIN32) /*[*/ if (tracewindow_pid != -1) (void) kill(tracewindow_pid, SIGKILL); tracewindow_pid = -1; #else /*][*/ if (tracewindow_handle != NULL) { TerminateProcess(tracewindow_handle, 0); CloseHandle(tracewindow_handle); tracewindow_handle = NULL; } #endif /*]*/ stop_tracing(); } void toggle_dsTrace(struct toggle *t _is_unused, enum toggle_type tt) { /* If turning on trace and no trace file, open one. */ if (toggled(DS_TRACE) && tracef == NULL) tracefile_on(DS_TRACE, tt); /* If turning off trace and not still tracing events, close the trace file. */ else if (!toggled(DS_TRACE) && !toggled(EVENT_TRACE)) tracefile_off(); if (toggled(DS_TRACE)) (void) gettimeofday(&ds_ts, (struct timezone *)NULL); } void toggle_eventTrace(struct toggle *t _is_unused, enum toggle_type tt) { /* If turning on event debug, and no trace file, open one. */ if (toggled(EVENT_TRACE) && tracef == NULL) tracefile_on(EVENT_TRACE, tt); /* If turning off event debug, and not tracing the data stream, close the trace file. */ else if (!toggled(EVENT_TRACE) && !toggled(DS_TRACE)) tracefile_off(); } /* Screen trace file support. */ #if defined(X3270_DISPLAY) /*[*/ static Widget screentrace_shell = (Widget)NULL; #endif /*]*/ static FILE *screentracef = (FILE *)0; /* * Screen trace function, called when the host clears the screen. */ static void do_screentrace(void) { register int i; if (fprint_screen(screentracef, P_TEXT, 0, NULL)) { for (i = 0; i < COLS; i++) (void) fputc('=', screentracef); (void) fputc('\n', screentracef); } } void trace_screen(void) { trace_skipping = False; if (!toggled(SCREEN_TRACE) || !screentracef) return; do_screentrace(); } /* Called from ANSI emulation code to log a single character. */ void trace_char(char c) { if (!toggled(SCREEN_TRACE) || !screentracef) return; (void) fputc(c, screentracef); } /* * Called when disconnecting in ANSI mode, to finish off the trace file * and keep the next screen clear from re-recording the screen image. * (In a gross violation of data hiding and modularity, trace_skipping is * manipulated directly in ctlr_clear()). */ void trace_ansi_disc(void) { int i; (void) fputc('\n', screentracef); for (i = 0; i < COLS; i++) (void) fputc('=', screentracef); (void) fputc('\n', screentracef); trace_skipping = True; } /* * Screen tracing callback. * Returns True for success, False for failure. */ static Boolean screentrace_cb(char *tfn) { tfn = do_subst(tfn, True, True); screentracef = fopen(tfn, "a"); if (screentracef == (FILE *)NULL) { popup_an_errno(errno, "%s", tfn); Free(tfn); return False; } Free(tfn); (void) SETLINEBUF(screentracef); #if !defined(_WIN32) /*[*/ (void) fcntl(fileno(screentracef), F_SETFD, 1); #endif /*]*/ /* We're really tracing, turn the flag on. */ appres.toggle[SCREEN_TRACE].value = True; appres.toggle[SCREEN_TRACE].changed = True; menubar_retoggle(&appres.toggle[SCREEN_TRACE]); return True; } #if defined(X3270_DISPLAY) /*[*/ /* Callback for "OK" button on screentrace popup */ static void screentrace_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { if (screentrace_cb(XawDialogGetValueString((Widget)client_data))) XtPopdown(screentrace_shell); } /* Callback for second "OK" button on screentrace popup */ static void onescreen_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { char *tfn; if (w) tfn = XawDialogGetValueString((Widget)client_data); else tfn = (char *)client_data; tfn = do_subst(tfn, True, True); screentracef = fopen(tfn, "a"); if (screentracef == (FILE *)NULL) { popup_an_errno(errno, "%s", tfn); XtFree(tfn); return; } (void) fcntl(fileno(screentracef), F_SETFD, 1); XtFree(tfn); /* Save the current image, once. */ do_screentrace(); /* Close the file, we're done. */ (void) fclose(screentracef); screentracef = (FILE *)NULL; if (w) XtPopdown(screentrace_shell); } #endif /*]*/ void toggle_screenTrace(struct toggle *t _is_unused, enum toggle_type tt) { char *tracefile_buf = NULL; char *tracefile; if (toggled(SCREEN_TRACE)) { if (appres.screentrace_file) tracefile = appres.screentrace_file; else { #if defined(_WIN32) /*[*/ tracefile_buf = xs_buffer("%s%sx3scr.%u.txt", (appres.trace_dir != CN)? appres.trace_dir: myappdata, (appres.trace_dir != CN)? "\\": "", getpid()); #else /*][*/ tracefile_buf = xs_buffer("%s/x3scr.%u", appres.trace_dir, getpid()); #endif /*]*/ tracefile = tracefile_buf; } if (tt == TT_INITIAL || tt == TT_ACTION) { (void) screentrace_cb(NewString(tracefile)); if (tracefile_buf != NULL) Free(tracefile_buf); return; } #if defined(X3270_DISPLAY) /*[*/ if (screentrace_shell == NULL) { screentrace_shell = create_form_popup("screentrace", screentrace_callback, onescreen_callback, FORM_NO_WHITE); XtVaSetValues(XtNameToWidget(screentrace_shell, ObjDialog), XtNvalue, tracefile, NULL); } appres.toggle[SCREEN_TRACE].value = False; appres.toggle[SCREEN_TRACE].changed = True; popup_popup(screentrace_shell, XtGrabExclusive); #endif /*]*/ } else { if (ctlr_any_data() && !trace_skipping) do_screentrace(); (void) fclose(screentracef); } if (tracefile_buf != NULL) Free(tracefile_buf); } #endif /*]*/ ibm-3270-3.3.10ga4/s3270/Examples/0000755000175000017500000000000011261530021015501 5ustar bastianbastianibm-3270-3.3.10ga4/s3270/Examples/cms_cmd.expect0000755000175000017500000001110611254565707020347 0ustar bastianbastian#!/usr/bin/expect # Copyright (c) 2000-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Read in the glue functions. source x3270_glue.expect # Pluck the username, password and command from the command line. if {$argc != 4} { puts stderr "Usage: $argv0 hostname username password command" exit 1 } set hostname [lindex $argv 0] set username [lindex $argv 1] set password [lindex $argv 2] set command [lindex $argv 3] # Procedure to wait for a READ prompt from CMS or CP. proc waitread {} { Snap Save while {[Snap Ascii [expr [Snap Rows]-1] [expr [Snap Cols]-17] 4] != "READ"} { Snap Wait Output } } # Procedure to check for the CMS "Ready" prompt. # Returns its row number, or -1 for "MORE..." state, and leaves a screen with # data to read in the Snap buffer. proc cmd_done {} { global verbose Snap Save while {1} { if {[Snap Ascii [expr [Snap Rows]-1] [expr [Snap Cols]-20] 7] == "MORE..."} { if {$verbose} {puts "MORE..."} return -1 } set i [expr [Snap Rows]-2] while {$i >= 0} { set text [Snap Ascii $i 0 [Snap Cols]] switch -regexp $text { "Ready; T=.*" {return $i} "Ready\(.*\); T=.*" { error [Snap Ascii [expr $i-1] 0 \ [Snap Cols]] } "^ *\$" {} default { if {$verbose} {puts "Incomplete $i '[string trimright $text]'"} set i 0 } } incr i -1 } Snap Wait Output } } # Execute a command, return the output. proc cms_cmd {text} { global verbose # Clear the screen. Clear # Send the command. String "$text\n" # 'first' is the row where the first line of output will appear. For # the first screenful it's 1; after that it's 0. set first 1 # r is the result. set r {} while {1} { # Wait for a screenful. set d [cmd_done] # Dump out what's there. set i $first set first 0 if {$d < 0} {set last [expr [Snap Rows]-2]} {set last $d} while {$i < $last} { set r [linsert $r end [string trimright \ [Snap Ascii $i 0 [Snap Cols]]]] incr i } if {$d >= 0} {break} # Clear the screen and go around again. Clear } return $r } # Start of main procedure. # Set 'verbose' to 1 to get debug output from the glue functions. set verbose 0 # Start s3270 Start # Setverbose 1 # Connect to the host and wait for an input field. Connect $hostname Wait InputField # Log in and wait for CP READ or VM READ mode. String "$username\t$password\n" waitread # If we can't log on, we're hosed. if {[Ascii 1 11 7] == "Already"} { puts stderr "Can't run -- already logged in." exit 1 } # If we're in CP mode, which means we disconnected last time, boot CMS. if {[Ascii [expr [Rows]-1] [expr [Cols]-20] 2] == "CP"} { Clear String "i cms\n" waitread } # Enter an empty command to get a CMS prompt. If we don't do this, there will # be a Ready prompt as the first line of output below. Clear Enter cmd_done # Get the output of the user's command and display it. if {[catch {cms_cmd $command} result]} { puts stderr $result set rc 1 } { for {set i 0} {$i < [llength $result]} {incr i} { puts [lindex $result $i] } set rc 0 } # Log off, and wait for the host to hang up on us, so we don't unintentionally # create a disconnected session. Clear if {! [catch {String "logoff\n"}]} {Wait Disconnect} exit $rc ibm-3270-3.3.10ga4/s3270/ctlr.c0000644000175000017500000020560611254565704015066 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * ctlr.c * This module handles interpretation of the 3270 data stream and * maintenance of the 3270 device state. It was split out from * screen.c, which handles X operations. * */ #include "globals.h" #include #include "3270ds.h" #include "appres.h" #include "ctlr.h" #include "screen.h" #include "resources.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "ft_cutc.h" #include "ft_dftc.h" #include "hostc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "screenc.h" #include "scrollc.h" #include "seec.h" #include "selectc.h" #include "sfc.h" #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" /* Externals: kybd.c */ extern unsigned char aid; /* Globals */ int ROWS, COLS; int maxROWS, maxCOLS; int defROWS, defCOLS; int altROWS, altCOLS; int ov_rows, ov_cols; Boolean ov_auto; int model_num; int cursor_addr, buffer_addr; Boolean screen_alt = False; /* alternate screen? */ Boolean is_altbuffer = False; struct ea *ea_buf; /* 3270 device buffer */ /* ea_buf[-1] is the dummy default field attribute */ struct ea *aea_buf; /* alternate 3270 extended attribute buffer */ Boolean formatted = False; /* set in screen_disp */ Boolean screen_changed = False; int first_changed = -1; int last_changed = -1; unsigned char reply_mode = SF_SRM_FIELD; int crm_nattr = 0; unsigned char crm_attr[16]; Boolean dbcs = False; /* Statics */ static unsigned char *zero_buf; /* empty buffer, for area clears */ static void set_formatted(void); static void ctlr_blanks(void); static Boolean trace_primed = False; static unsigned char default_fg; static unsigned char default_bg; static unsigned char default_gr; static unsigned char default_cs; static unsigned char default_ic; static void ctlr_half_connect(Boolean ignored); static void ctlr_connect(Boolean ignored); static int sscp_start; static void ticking_stop(void); static void ctlr_add_ic(int baddr, unsigned char ic); /* * code_table is used to translate buffer addresses and attributes to the 3270 * datastream representation */ static unsigned char code_table[64] = { 0x40, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, }; #define IsBlank(c) ((c == EBC_null) || (c == EBC_space)) #define ALL_CHANGED { \ screen_changed = True; \ if (IN_ANSI) { first_changed = 0; last_changed = ROWS*COLS; } } #define REGION_CHANGED(f, l) { \ screen_changed = True; \ if (IN_ANSI) { \ if (first_changed == -1 || f < first_changed) first_changed = f; \ if (last_changed == -1 || l > last_changed) last_changed = l; } } #define ONE_CHANGED(n) REGION_CHANGED(n, n+1) #define DECODE_BADDR(c1, c2) \ ((((c1) & 0xC0) == 0x00) ? \ (((c1) & 0x3F) << 8) | (c2) : \ (((c1) & 0x3F) << 6) | ((c2) & 0x3F)) #define ENCODE_BADDR(ptr, addr) { \ if ((ROWS * COLS) > 0x1000) { \ *(ptr)++ = ((addr) >> 8) & 0x3F; \ *(ptr)++ = (addr) & 0xFF; \ } else { \ *(ptr)++ = code_table[((addr) >> 6) & 0x3F]; \ *(ptr)++ = code_table[(addr) & 0x3F]; \ } \ } /* * Initialize the emulated 3270 hardware. */ void ctlr_init(unsigned cmask _is_unused) { /* Register callback routines. */ register_schange(ST_HALF_CONNECT, ctlr_half_connect); register_schange(ST_CONNECT, ctlr_connect); register_schange(ST_3270_MODE, ctlr_connect); } /* * Reinitialize the emulated 3270 hardware. */ void ctlr_reinit(unsigned cmask) { static struct ea *real_ea_buf = NULL; static struct ea *real_aea_buf = NULL; if (cmask & MODEL_CHANGE) { /* Allocate buffers */ if (real_ea_buf) Free((char *)real_ea_buf); real_ea_buf = (struct ea *)Calloc(sizeof(struct ea), (maxROWS * maxCOLS) + 1); ea_buf = real_ea_buf + 1; if (real_aea_buf) Free((char *)real_aea_buf); real_aea_buf = (struct ea *)Calloc(sizeof(struct ea), (maxROWS * maxCOLS) + 1); aea_buf = real_aea_buf + 1; Replace(zero_buf, (unsigned char *)Calloc(sizeof(struct ea), maxROWS * maxCOLS)); cursor_addr = 0; buffer_addr = 0; } } /* * Deal with the relationships between model numbers and rows/cols. */ void set_rows_cols(int mn, int ovc, int ovr) { int defmod; if (ovc < 0 || ovr < 0) { ov_auto = True; ovc = 0; ovr = 0; } switch (mn) { case 2: maxCOLS = MODEL_2_COLS; maxROWS = MODEL_2_ROWS; model_num = 2; break; case 3: maxCOLS = MODEL_3_COLS; maxROWS = MODEL_3_ROWS; model_num = 3; break; case 4: #if defined(RESTRICT_3279) /*[*/ if (appres.m3279) { popup_an_error("No 3279 Model 4\nDefaulting to model 3"); set_rows_cols("3", ovc, ovr); return; } #endif /*]*/ maxCOLS = MODEL_4_COLS; maxROWS = MODEL_4_ROWS; model_num = 4; break; case 5: #if defined(RESTRICT_3279) /*[*/ if (appres.m3279) { popup_an_error("No 3279 Model 5\nDefaulting to model 3"); set_rows_cols(3, ovc, ovr); return; } #endif /*]*/ maxCOLS = MODEL_5_COLS; maxROWS = MODEL_5_ROWS; model_num = 5; break; default: #if defined(RESTRICT_3279) /*[*/ defmod = appres.m3279 ? 3 : 4; #else /*][*/ defmod = 4; #endif popup_an_error("Unknown model: %d\nDefaulting to %d", mn, defmod); set_rows_cols(defmod, ovc, ovr); return; } /* Apply oversize. */ ov_cols = 0; ov_rows = 0; if (ovc != 0 || ovr != 0) { if (ovc <= 0 || ovr <= 0) popup_an_error("Invalid %s %dx%d:\nNegative or zero", ResOversize, ovc, ovr); else if (ovc * ovr >= 0x4000) popup_an_error("Invalid %s %dx%d:\nToo big", ResOversize, ovc, ovr); else if (ovc > 0 && ovc < maxCOLS) popup_an_error("Invalid %s cols (%d):\nLess than model %d cols (%d)", ResOversize, ovc, model_num, maxCOLS); else if (ovr > 0 && ovr < maxROWS) popup_an_error("Invalid %s rows (%d):\nLess than model %d rows (%d)", ResOversize, ovr, model_num, maxROWS); else { ov_cols = maxCOLS = ovc; ov_rows = maxROWS = ovr; } } /* Update the model name. */ (void) sprintf(model_name, "327%c-%d%s", appres.m3279 ? '9' : '8', model_num, appres.extended ? "-E" : ""); /* Make sure that the current rows/cols are still 24x80. */ COLS = defCOLS = MODEL_2_COLS; ROWS = defROWS = MODEL_2_ROWS; screen_alt = False; /* Set the defaults for the alternate screen size. */ altROWS = maxROWS; altCOLS = maxCOLS; } /* * Set the formatted screen flag. A formatted screen is a screen that * has at least one field somewhere on it. */ static void set_formatted(void) { register int baddr; formatted = False; baddr = 0; do { if (ea_buf[baddr].fa) { formatted = True; break; } INC_BA(baddr); } while (baddr != 0); } /* * Called when a host is half connected. */ static void ctlr_half_connect(Boolean ignored _is_unused) { ticking_start(True); } /* * Called when a host connects, disconnects, or changes ANSI/3270 modes. */ static void ctlr_connect(Boolean ignored _is_unused) { ticking_stop(); status_untiming(); if (ever_3270) { ea_buf[-1].fa = FA_PRINTABLE | FA_MODIFY; aea_buf[-1].fa = FA_PRINTABLE | FA_MODIFY; } else { ea_buf[-1].fa = FA_PRINTABLE | FA_PROTECT; aea_buf[-1].fa = FA_PRINTABLE | FA_PROTECT; } if (!IN_3270 || (IN_SSCP && (kybdlock & KL_OIA_TWAIT))) { kybdlock_clr(KL_OIA_TWAIT, "ctlr_connect"); status_reset(); } default_fg = 0x00; default_bg = 0x00; default_gr = 0x00; default_cs = 0x00; default_ic = 0x00; reply_mode = SF_SRM_FIELD; crm_nattr = 0; /* On disconnect, reset the default and alternate dimensions. */ if (!CONNECTED) { defROWS = MODEL_2_ROWS; defCOLS = MODEL_2_COLS; altROWS = maxROWS; altCOLS = maxCOLS; ctlr_erase(False); } } /* * Find the buffer address of the field attribute for a given buffer address. * Returns -1 if the screen isn't formatted. */ int find_field_attribute(int baddr) { int sbaddr; if (!formatted) return -1; sbaddr = baddr; do { if (ea_buf[baddr].fa) return baddr; DEC_BA(baddr); } while (baddr != sbaddr); return -1; } /* * Find the field attribute for the given buffer address. Return its address * rather than its value. */ unsigned char get_field_attribute(register int baddr) { return ea_buf[find_field_attribute(baddr)].fa; } /* * Find the field attribute for the given buffer address, bounded by another * buffer address. Return the attribute in a parameter. * * Returns True if an attribute is found, False if boundary hit. */ Boolean get_bounded_field_attribute(register int baddr, register int bound, unsigned char *fa_out) { int sbaddr; if (!formatted) { *fa_out = ea_buf[-1].fa; return True; } sbaddr = baddr; do { if (ea_buf[baddr].fa) { *fa_out = ea_buf[baddr].fa; return True; } DEC_BA(baddr); } while (baddr != sbaddr && baddr != bound); /* Screen is unformatted (and 'formatted' is inaccurate). */ if (baddr == sbaddr) { *fa_out = ea_buf[-1].fa; return True; } /* Wrapped to boundary. */ return False; } /* * Given the address of a field attribute, return the address of the * extended attribute structure. */ struct ea * fa2ea(int baddr) { return &ea_buf[baddr]; } /* * Find the next unprotected field. Returns the address following the * unprotected attribute byte, or 0 if no nonzero-width unprotected field * can be found. */ int next_unprotected(int baddr0) { register int baddr, nbaddr; nbaddr = baddr0; do { baddr = nbaddr; INC_BA(nbaddr); if (ea_buf[baddr].fa && !FA_IS_PROTECTED(ea_buf[baddr].fa) && !ea_buf[nbaddr].fa) return nbaddr; } while (nbaddr != baddr0); return 0; } /* * Perform an erase command, which may include changing the (virtual) screen * size. */ void ctlr_erase(Boolean alt) { int newROWS, newCOLS; kybd_inhibit(False); ctlr_clear(True); /* Let a script go. */ sms_host_output(); if (alt) { newROWS = altROWS; newCOLS = altCOLS; } else { newROWS = defROWS; newCOLS = defCOLS; } if (alt == screen_alt && ROWS == newROWS && COLS == newCOLS) return; screen_disp(True); if (visible_control) { /* Blank the entire display. */ ctlr_blanks(); ROWS = maxROWS; COLS = maxCOLS; screen_disp(False); } ROWS = newROWS; COLS = newCOLS; if (visible_control) { /* Fill the active part of the screen with NULLs again. */ ctlr_clear(False); screen_disp(False); } screen_alt = alt; } /* * Interpret an incoming 3270 command. */ enum pds process_ds(unsigned char *buf, int buflen) { enum pds rv; if (!buflen) return PDS_OKAY_NO_OUTPUT; scroll_to_bottom(); trace_ds("< "); switch (buf[0]) { /* 3270 command */ case CMD_EAU: /* erase all unprotected */ case SNA_CMD_EAU: ctlr_erase_all_unprotected(); trace_ds("EraseAllUnprotected\n"); return PDS_OKAY_NO_OUTPUT; break; case CMD_EWA: /* erase/write alternate */ case SNA_CMD_EWA: ctlr_erase(True); trace_ds("EraseWriteAlternate"); if ((rv = ctlr_write(buf, buflen, True)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_EW: /* erase/write */ case SNA_CMD_EW: ctlr_erase(False); trace_ds("EraseWrite"); if ((rv = ctlr_write(buf, buflen, True)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_W: /* write */ case SNA_CMD_W: trace_ds("Write"); if ((rv = ctlr_write(buf, buflen, False)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_RB: /* read buffer */ case SNA_CMD_RB: trace_ds("ReadBuffer\n"); ctlr_read_buffer(aid); return PDS_OKAY_OUTPUT; break; case CMD_RM: /* read modifed */ case SNA_CMD_RM: trace_ds("ReadModified\n"); ctlr_read_modified(aid, False); return PDS_OKAY_OUTPUT; break; case CMD_RMA: /* read modifed all */ case SNA_CMD_RMA: trace_ds("ReadModifiedAll\n"); ctlr_read_modified(aid, True); return PDS_OKAY_OUTPUT; break; case CMD_WSF: /* write structured field */ case SNA_CMD_WSF: trace_ds("WriteStructuredField"); return write_structured_field(buf, buflen); break; case CMD_NOP: /* no-op */ trace_ds("NoOp\n"); return PDS_OKAY_NO_OUTPUT; break; default: /* unknown 3270 command */ popup_an_error("Unknown 3270 Data Stream command: 0x%X\n", buf[0]); return PDS_BAD_CMD; } } /* * Functions to insert SA attributes into the inbound data stream. */ static void insert_sa1(unsigned char attr, unsigned char value, unsigned char *currentp, Boolean *anyp) { if (value == *currentp) return; *currentp = value; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = attr; *obptr++ = value; if (*anyp) trace_ds("'"); trace_ds(" SetAttribute(%s)", see_efa(attr, value)); *anyp = False; } /* * Translate an internal character set number to a 3270DS characte set number. */ static unsigned char host_cs(unsigned char cs) { switch (cs & CS_MASK) { case CS_APL: case CS_LINEDRAW: return 0xf0 | (cs & CS_MASK); case CS_DBCS: return 0xf8; default: return 0; } } static void insert_sa(int baddr, unsigned char *current_fgp, unsigned char *current_bgp, unsigned char *current_grp, unsigned char *current_csp, Boolean *anyp) { if (reply_mode != SF_SRM_CHAR) return; if (memchr((char *)crm_attr, XA_FOREGROUND, crm_nattr)) insert_sa1(XA_FOREGROUND, ea_buf[baddr].fg, current_fgp, anyp); if (memchr((char *)crm_attr, XA_BACKGROUND, crm_nattr)) insert_sa1(XA_BACKGROUND, ea_buf[baddr].bg, current_bgp, anyp); if (memchr((char *)crm_attr, XA_HIGHLIGHTING, crm_nattr)) { unsigned char gr; gr = ea_buf[baddr].gr; if (gr) gr |= 0xf0; insert_sa1(XA_HIGHLIGHTING, gr, current_grp, anyp); } if (memchr((char *)crm_attr, XA_CHARSET, crm_nattr)) { insert_sa1(XA_CHARSET, host_cs(ea_buf[baddr].cs), current_csp, anyp); } } /* * Process a 3270 Read-Modified command and transmit the data back to the * host. */ void ctlr_read_modified(unsigned char aid_byte, Boolean all) { register int baddr, sbaddr; Boolean send_data = True; Boolean short_read = False; unsigned char current_fg = 0x00; unsigned char current_bg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; if (IN_SSCP && aid_byte != AID_ENTER) return; #if defined(X3270_FT) /*[*/ if (aid_byte == AID_SF) { dft_read_modified(); return; } #endif /*]*/ trace_ds("> "); obptr = obuf; switch (aid_byte) { case AID_SYSREQ: /* test request */ space3270out(4); *obptr++ = 0x01; /* soh */ *obptr++ = 0x5b; /* % */ *obptr++ = 0x61; /* / */ *obptr++ = 0x02; /* stx */ trace_ds("SYSREQ"); break; case AID_PA1: /* short-read AIDs */ case AID_PA2: case AID_PA3: case AID_CLEAR: if (!all) short_read = True; /* fall through... */ case AID_SELECT: /* No data on READ MODIFIED */ if (!all) send_data = False; /* fall through... */ default: /* ordinary AID */ if (!IN_SSCP) { space3270out(3); *obptr++ = aid_byte; trace_ds("%s", see_aid(aid_byte)); if (short_read) goto rm_done; ENCODE_BADDR(obptr, cursor_addr); trace_ds("%s", rcba(cursor_addr)); } else { space3270out(1); /* just in case */ } break; } baddr = 0; if (formatted) { /* find first field attribute */ do { if (ea_buf[baddr].fa) break; INC_BA(baddr); } while (baddr != 0); sbaddr = baddr; do { if (FA_IS_MODIFIED(ea_buf[baddr].fa)) { Boolean any = False; INC_BA(baddr); space3270out(3); *obptr++ = ORDER_SBA; ENCODE_BADDR(obptr, baddr); trace_ds(" SetBufferAddress%s", rcba(baddr)); while (!ea_buf[baddr].fa) { if (send_data && ea_buf[baddr].cc) { insert_sa(baddr, ¤t_fg, ¤t_bg, ¤t_gr, ¤t_cs, &any); if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; if (any) trace_ds("'"); trace_ds(" GraphicEscape"); any = False; } space3270out(1); *obptr++ = ea_buf[baddr].cc; if (ea_buf[baddr].cc <= 0x3f || ea_buf[baddr].cc == 0xff) { if (any) trace_ds("'"); trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); any = False; } else { if (!any) trace_ds(" '"); trace_ds("%s", see_ebc(ea_buf[baddr].cc)); any = True; } } INC_BA(baddr); } if (any) trace_ds("'"); } else { /* not modified - skip */ do { INC_BA(baddr); } while (!ea_buf[baddr].fa); } } while (baddr != sbaddr); } else { Boolean any = False; int nbytes = 0; /* * If we're in SSCP-LU mode, the starting point is where the * host left the cursor. */ if (IN_SSCP) baddr = sscp_start; do { if (ea_buf[baddr].cc) { insert_sa(baddr, ¤t_fg, ¤t_bg, ¤t_gr, ¤t_cs, &any); if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; if (any) trace_ds("' "); trace_ds(" GraphicEscape "); any = False; } space3270out(1); *obptr++ = ea_buf[baddr].cc; if (ea_buf[baddr].cc <= 0x3f || ea_buf[baddr].cc == 0xff) { if (any) trace_ds("'"); trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); any = False; } else { if (!any) trace_ds(" '"); trace_ds("%s", see_ebc(ea_buf[baddr].cc)); any = True; } nbytes++; } INC_BA(baddr); /* * If we're in SSCP-LU mode, end the return value at * 255 bytes, or where the screen wraps. */ if (IN_SSCP && (nbytes >= 255 || !baddr)) break; } while (baddr != 0); if (any) trace_ds("'"); } rm_done: trace_ds("\n"); net_output(); } /* * Process a 3270 Read-Buffer command and transmit the data back to the * host. */ void ctlr_read_buffer(unsigned char aid_byte) { register int baddr; unsigned char fa; Boolean any = False; int attr_count = 0; unsigned char current_fg = 0x00; unsigned char current_bg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; #if defined(X3270_FT) /*[*/ if (aid_byte == AID_SF) { dft_read_modified(); return; } #endif /*]*/ trace_ds("> "); obptr = obuf; space3270out(3); *obptr++ = aid_byte; ENCODE_BADDR(obptr, cursor_addr); trace_ds("%s%s", see_aid(aid_byte), rcba(cursor_addr)); baddr = 0; do { if (ea_buf[baddr].fa) { if (reply_mode == SF_SRM_FIELD) { space3270out(2); *obptr++ = ORDER_SF; } else { space3270out(4); *obptr++ = ORDER_SFE; attr_count = obptr - obuf; *obptr++ = 1; /* for now */ *obptr++ = XA_3270; } fa = ea_buf[baddr].fa & ~FA_PRINTABLE; *obptr++ = code_table[fa]; if (any) trace_ds("'"); trace_ds(" StartField%s%s%s", (reply_mode == SF_SRM_FIELD) ? "" : "Extended", rcba(baddr), see_attr(fa)); if (reply_mode != SF_SRM_FIELD) { if (ea_buf[baddr].fg) { space3270out(2); *obptr++ = XA_FOREGROUND; *obptr++ = ea_buf[baddr].fg; trace_ds("%s", see_efa(XA_FOREGROUND, ea_buf[baddr].fg)); (*(obuf + attr_count))++; } if (ea_buf[baddr].bg) { space3270out(2); *obptr++ = XA_BACKGROUND; *obptr++ = ea_buf[baddr].bg; trace_ds("%s", see_efa(XA_BACKGROUND, ea_buf[baddr].bg)); (*(obuf + attr_count))++; } if (ea_buf[baddr].gr) { space3270out(2); *obptr++ = XA_HIGHLIGHTING; *obptr++ = ea_buf[baddr].gr | 0xf0; trace_ds("%s", see_efa(XA_HIGHLIGHTING, ea_buf[baddr].gr | 0xf0)); (*(obuf + attr_count))++; } if (ea_buf[baddr].cs & CS_MASK) { space3270out(2); *obptr++ = XA_CHARSET; *obptr++ = host_cs(ea_buf[baddr].cs); trace_ds("%s", see_efa(XA_CHARSET, host_cs(ea_buf[baddr].cs))); (*(obuf + attr_count))++; } } any = False; } else { insert_sa(baddr, ¤t_fg, ¤t_bg, ¤t_gr, ¤t_cs, &any); if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; if (any) trace_ds("'"); trace_ds(" GraphicEscape"); any = False; } space3270out(1); *obptr++ = ea_buf[baddr].cc; if (ea_buf[baddr].cc <= 0x3f || ea_buf[baddr].cc == 0xff) { if (any) trace_ds("'"); trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); any = False; } else { if (!any) trace_ds(" '"); trace_ds("%s", see_ebc(ea_buf[baddr].cc)); any = True; } } INC_BA(baddr); } while (baddr != 0); if (any) trace_ds("'"); trace_ds("\n"); net_output(); } #if defined(X3270_TRACE) /*[*/ /* * Construct a 3270 command to reproduce the current state of the display, if * formatted. */ void ctlr_snap_buffer(void) { register int baddr = 0; int attr_count; unsigned char current_fg = 0x00; unsigned char current_bg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; unsigned char av; space3270out(2); *obptr++ = screen_alt ? CMD_EWA : CMD_EW; *obptr++ = code_table[0]; do { if (ea_buf[baddr].fa) { space3270out(4); *obptr++ = ORDER_SFE; attr_count = obptr - obuf; *obptr++ = 1; /* for now */ *obptr++ = XA_3270; *obptr++ = code_table[ea_buf[baddr].fa & ~FA_PRINTABLE]; if (ea_buf[baddr].fg) { space3270out(2); *obptr++ = XA_FOREGROUND; *obptr++ = ea_buf[baddr].fg; (*(obuf + attr_count))++; } if (ea_buf[baddr].bg) { space3270out(2); *obptr++ = XA_BACKGROUND; *obptr++ = ea_buf[baddr].fg; (*(obuf + attr_count))++; } if (ea_buf[baddr].gr) { space3270out(2); *obptr++ = XA_HIGHLIGHTING; *obptr++ = ea_buf[baddr].gr | 0xf0; (*(obuf + attr_count))++; } if (ea_buf[baddr].cs & CS_MASK) { space3270out(2); *obptr++ = XA_CHARSET; *obptr++ = host_cs(ea_buf[baddr].cs); (*(obuf + attr_count))++; } } else { av = ea_buf[baddr].fg; if (current_fg != av) { current_fg = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_FOREGROUND; *obptr++ = av; } av = ea_buf[baddr].bg; if (current_bg != av) { current_bg = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_BACKGROUND; *obptr++ = av; } av = ea_buf[baddr].gr; if (av) av |= 0xf0; if (current_gr != av) { current_gr = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_HIGHLIGHTING; *obptr++ = av; } av = ea_buf[baddr].cs & CS_MASK; if (av) av = host_cs(av); if (current_cs != av) { current_cs = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_CHARSET; *obptr++ = av; } if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; } space3270out(1); *obptr++ = ea_buf[baddr].cc; } INC_BA(baddr); } while (baddr != 0); space3270out(4); *obptr++ = ORDER_SBA; ENCODE_BADDR(obptr, cursor_addr); *obptr++ = ORDER_IC; } /* * Construct a 3270 command to reproduce the reply mode. * Returns a Boolean indicating if one is necessary. */ Boolean ctlr_snap_modes(void) { int i; if (!IN_3270 || reply_mode == SF_SRM_FIELD) return False; space3270out(6 + crm_nattr); *obptr++ = CMD_WSF; *obptr++ = 0x00; /* implicit length */ *obptr++ = 0x00; *obptr++ = SF_SET_REPLY_MODE; *obptr++ = 0x00; /* partition 0 */ *obptr++ = reply_mode; if (reply_mode == SF_SRM_CHAR) for (i = 0; i < crm_nattr; i++) *obptr++ = crm_attr[i]; return True; } /* * Construct a 3270 command to reproduce the current state of the display * in SSCP-LU mode. */ void ctlr_snap_buffer_sscp_lu(void) { register int baddr = 0; /* Write out the screen contents once. */ do { if (ea_buf[baddr].cc == 0xff) { space3270out(1); *obptr++ = 0xff; } space3270out(1); *obptr++ = ea_buf[baddr].cc; INC_BA(baddr); } while (baddr != 0); /* Write them out again, until we hit where the cursor is. */ if (cursor_addr != baddr) { do { if (ea_buf[baddr].cc == 0xff) { space3270out(1); *obptr++ = 0xff; } space3270out(1); *obptr++ = ea_buf[baddr].cc; INC_BA(baddr); } while (baddr != cursor_addr); } } #endif /*]*/ /* * Process a 3270 Erase All Unprotected command. */ void ctlr_erase_all_unprotected(void) { register int baddr, sbaddr; unsigned char fa; Boolean f; kybd_inhibit(False); ALL_CHANGED; if (formatted) { /* find first field attribute */ baddr = 0; do { if (ea_buf[baddr].fa) break; INC_BA(baddr); } while (baddr != 0); sbaddr = baddr; f = False; do { fa = ea_buf[baddr].fa; if (!FA_IS_PROTECTED(fa)) { mdt_clear(baddr); do { INC_BA(baddr); if (!f) { cursor_move(baddr); f = True; } if (!ea_buf[baddr].fa) { ctlr_add(baddr, EBC_null, 0); } } while (!ea_buf[baddr].fa); } else { do { INC_BA(baddr); } while (!ea_buf[baddr].fa); } } while (baddr != sbaddr); if (!f) cursor_move(0); } else { ctlr_clear(True); } aid = AID_NO; do_reset(False); } /* * Process a 3270 Write command. */ enum pds ctlr_write(unsigned char buf[], int buflen, Boolean erase) { register unsigned char *cp; register int baddr; unsigned char current_fa; Boolean last_cmd; Boolean last_zpt; Boolean wcc_keyboard_restore, wcc_sound_alarm; Boolean ra_ge; int i; unsigned char na; int any_fa; unsigned char efa_fg; unsigned char efa_bg; unsigned char efa_gr; unsigned char efa_cs; unsigned char efa_ic; const char *paren = "("; enum { NONE, ORDER, SBA, TEXT, NULLCH } previous = NONE; enum pds rv = PDS_OKAY_NO_OUTPUT; int fa_addr; Boolean add_dbcs; unsigned char add_c1, add_c2 = 0; enum dbcs_state d; enum dbcs_why why = DBCS_FIELD; Boolean aborted = False; #if defined(X3270_DBCS) /*[*/ char mb[16]; #endif /*]*/ #define END_TEXT0 { if (previous == TEXT) trace_ds("'"); } #define END_TEXT(cmd) { END_TEXT0; trace_ds(" %s", cmd); } /* XXX: Should there be a ctlr_add_cs call here? */ #define START_FIELD(fa) { \ current_fa = fa; \ ctlr_add_fa(buffer_addr, fa, 0); \ ctlr_add_cs(buffer_addr, 0); \ ctlr_add_fg(buffer_addr, 0); \ ctlr_add_bg(buffer_addr, 0); \ ctlr_add_gr(buffer_addr, 0); \ ctlr_add_ic(buffer_addr, 0); \ trace_ds("%s", see_attr(fa)); \ formatted = True; \ } kybd_inhibit(False); if (buflen < 2) return PDS_BAD_CMD; default_fg = 0; default_bg = 0; default_gr = 0; default_cs = 0; default_ic = 0; trace_primed = True; buffer_addr = cursor_addr; if (WCC_RESET(buf[1])) { if (erase) reply_mode = SF_SRM_FIELD; trace_ds("%sreset", paren); paren = ","; } wcc_sound_alarm = WCC_SOUND_ALARM(buf[1]); if (wcc_sound_alarm) { trace_ds("%salarm", paren); paren = ","; } wcc_keyboard_restore = WCC_KEYBOARD_RESTORE(buf[1]); if (wcc_keyboard_restore) ticking_stop(); if (wcc_keyboard_restore) { trace_ds("%srestore", paren); paren = ","; } if (WCC_RESET_MDT(buf[1])) { trace_ds("%sresetMDT", paren); paren = ","; baddr = 0; if (appres.modified_sel) ALL_CHANGED; do { if (ea_buf[baddr].fa) { mdt_clear(baddr); } INC_BA(baddr); } while (baddr != 0); } if (strcmp(paren, "(")) trace_ds(")"); last_cmd = True; last_zpt = False; current_fa = get_field_attribute(buffer_addr); #define ABORT_WRITEx { \ rv = PDS_BAD_ADDR; \ aborted = True; \ break; \ } #define ABORT_WRITE(s) { \ trace_ds(" [" s "; write aborted]\n"); \ ABORT_WRITEx; \ } \ for (cp = &buf[2]; !aborted && cp < (buf + buflen); cp++) { switch (*cp) { case ORDER_SF: /* start field */ END_TEXT("StartField"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cp++; /* skip field attribute */ START_FIELD(*cp); ctlr_add_fg(buffer_addr, 0); ctlr_add_bg(buffer_addr, 0); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_SBA: /* set buffer address */ cp += 2; /* skip buffer address */ buffer_addr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("SetBufferAddress"); previous = SBA; trace_ds("%s", rcba(buffer_addr)); if (buffer_addr >= COLS * ROWS) { trace_ds("COLS %d ROWS %d\n", COLS, ROWS); ABORT_WRITE("invalid SBA address"); } current_fa = get_field_attribute(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_IC: /* insert cursor */ END_TEXT("InsertCursor"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cursor_move(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_PT: /* program tab */ END_TEXT("ProgramTab"); previous = ORDER; /* * If the buffer address is the field attribute of * of an unprotected field, simply advance one * position. */ if (ea_buf[buffer_addr].fa && !FA_IS_PROTECTED(ea_buf[buffer_addr].fa)) { INC_BA(buffer_addr); last_zpt = False; last_cmd = True; break; } /* * Otherwise, advance to the first position of the * next unprotected field. */ baddr = next_unprotected(buffer_addr); if (baddr < buffer_addr) baddr = 0; /* * Null out the remainder of the current field -- even * if protected -- if the PT doesn't follow a command * or order, or (honestly) if the last order we saw was * a null-filling PT that left the buffer address at 0. * XXX: There's some funky DBCS rule here. */ if (!last_cmd || last_zpt) { trace_ds("(nulling)"); while ((buffer_addr != baddr) && (!ea_buf[buffer_addr].fa)) { ctlr_add(buffer_addr, EBC_null, 0); ctlr_add_cs(buffer_addr, 0); ctlr_add_fg(buffer_addr, 0); ctlr_add_bg(buffer_addr, 0); ctlr_add_gr(buffer_addr, 0); ctlr_add_ic(buffer_addr, 0); INC_BA(buffer_addr); } if (baddr == 0) last_zpt = True; } else last_zpt = False; buffer_addr = baddr; last_cmd = True; break; case ORDER_RA: /* repeat to address */ END_TEXT("RepeatToAddress"); cp += 2; /* skip buffer address */ baddr = DECODE_BADDR(*(cp-1), *cp); trace_ds("%s", rcba(baddr)); cp++; /* skip char to repeat */ add_dbcs = False; ra_ge = False; previous = ORDER; #if defined(X3270_DBCS) /*[*/ if (dbcs) { d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("RA over right half of DBCS character"); } if (default_cs == CS_DBCS || d == DBCS_LEFT) { add_dbcs = True; } } if (add_dbcs) { if ((baddr - buffer_addr) % 2) { ABORT_WRITE("DBCS RA with odd length"); } add_c1 = *cp; cp++; if (cp >= buf + buflen) { ABORT_WRITE("missing second half of DBCS character"); } add_c2 = *cp; if (add_c1 == EBC_null) { switch (add_c2) { case EBC_null: case EBC_nl: case EBC_em: case EBC_ff: case EBC_cr: case EBC_dup: case EBC_fm: break; default: trace_ds(" [invalid DBCS RA control character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; } } else if (add_c1 < 0x40 || add_c1 > 0xfe || add_c2 < 0x40 || add_c2 > 0xfe) { trace_ds(" [invalid DBCS RA character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; } (void) ebcdic_to_multibyte( (add_c1 << 8) | add_c2, mb, sizeof(mb)); trace_ds_nb("'%s'", mb); } else #endif /*]*/ { if (*cp == ORDER_GE) { ra_ge = True; trace_ds("GraphicEscape"); cp++; } add_c1 = *cp; if (add_c1) trace_ds("'"); trace_ds("%s", see_ebc(add_c1)); if (add_c1) trace_ds("'"); } if (baddr >= COLS * ROWS) { ABORT_WRITE("invalid RA address"); } do { if (add_dbcs) { ctlr_add(buffer_addr, add_c1, default_cs); } else { if (ra_ge) ctlr_add(buffer_addr, add_c1, CS_GE); else if (default_cs) ctlr_add(buffer_addr, add_c1, default_cs); else ctlr_add(buffer_addr, add_c1, 0); } ctlr_add_fg(buffer_addr, default_fg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); if (add_dbcs) { ctlr_add(buffer_addr, add_c2, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } } while (buffer_addr != baddr); current_fa = get_field_attribute(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_EUA: /* erase unprotected to address */ cp += 2; /* skip buffer address */ baddr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("EraseUnprotectedAll"); if (previous != SBA) trace_ds("%s", rcba(baddr)); previous = ORDER; if (baddr >= COLS * ROWS) { ABORT_WRITE("invalid EUA address"); } d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("EUA overwriting right half of DBCS character"); } d = ctlr_lookleft_state(baddr, &why); if (d == DBCS_LEFT) { ABORT_WRITE("EUA overwriting left half of DBCS character"); } do { if (ea_buf[buffer_addr].fa) current_fa = ea_buf[buffer_addr].fa; else if (!FA_IS_PROTECTED(current_fa)) { ctlr_add(buffer_addr, EBC_null, CS_BASE); } INC_BA(buffer_addr); } while (buffer_addr != baddr); current_fa = get_field_attribute(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_GE: /* graphic escape */ /* XXX: DBCS? */ END_TEXT("GraphicEscape "); cp++; /* skip char */ previous = ORDER; if (*cp) trace_ds("'"); trace_ds("%s", see_ebc(*cp)); if (*cp) trace_ds("'"); ctlr_add(buffer_addr, *cp, CS_GE); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); current_fa = get_field_attribute(buffer_addr); last_cmd = False; last_zpt = False; break; case ORDER_MF: /* modify field */ END_TEXT("ModifyField"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cp++; na = *cp; if (ea_buf[buffer_addr].fa) { for (i = 0; i < (int)na; i++) { cp++; if (*cp == XA_3270) { trace_ds(" 3270"); cp++; ctlr_add_fa(buffer_addr, *cp, ea_buf[buffer_addr].cs); trace_ds("%s", see_attr(*cp)); } else if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) ctlr_add_fg(buffer_addr, *cp); } else if (*cp == XA_BACKGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) ctlr_add_bg(buffer_addr, *cp); } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; ctlr_add_gr(buffer_addr, *cp & 0x0f); } else if (*cp == XA_CHARSET) { int cs = 0; trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (*cp == 0xf1) cs = CS_APL; else if (*cp == 0xf8) cs = CS_DBCS; ctlr_add_cs(buffer_addr, cs); } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; } else if (*cp == XA_INPUT_CONTROL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); ctlr_add_ic(buffer_addr, (*(cp + 1) == 1)); cp++; } else { trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; } } INC_BA(buffer_addr); } else cp += na * 2; last_cmd = True; last_zpt = False; break; case ORDER_SFE: /* start field extended */ END_TEXT("StartFieldExtended"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cp++; /* skip order */ na = *cp; any_fa = 0; efa_fg = 0; efa_bg = 0; efa_gr = 0; efa_cs = 0; efa_ic = 0; for (i = 0; i < (int)na; i++) { cp++; if (*cp == XA_3270) { trace_ds(" 3270"); cp++; START_FIELD(*cp); any_fa++; } else if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) efa_fg = *cp; } else if (*cp == XA_BACKGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) efa_bg = *cp; } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; efa_gr = *cp & 0x07; } else if (*cp == XA_CHARSET) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (*cp == 0xf1) efa_cs = CS_APL; else if (dbcs && (*cp == 0xf8)) efa_cs = CS_DBCS; else efa_cs = CS_BASE; } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; } else if (*cp == XA_INPUT_CONTROL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (dbcs) efa_ic = (*(cp + 1) == 1); cp++; } else { trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; } } if (!any_fa) START_FIELD(0); ctlr_add_cs(buffer_addr, efa_cs); ctlr_add_fg(buffer_addr, efa_fg); ctlr_add_bg(buffer_addr, efa_bg); ctlr_add_gr(buffer_addr, efa_gr); ctlr_add_ic(buffer_addr, efa_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_SA: /* set attribute */ END_TEXT("SetAttribute"); previous = ORDER; cp++; if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (appres.m3279) default_fg = *(cp + 1); } else if (*cp == XA_BACKGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (appres.m3279) default_bg = *(cp + 1); } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_gr = *(cp + 1) & 0x0f; } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_fg = 0; default_bg = 0; default_gr = 0; default_cs = 0; default_ic = 0; } else if (*cp == XA_CHARSET) { trace_ds("%s", see_efa(*cp, *(cp + 1))); switch (*(cp + 1)) { case 0xf1: default_cs = CS_APL; break; case 0xf8: default_cs = CS_DBCS; break; default: default_cs = CS_BASE; break; } } else if (*cp == XA_INPUT_CONTROL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (*(cp + 1) == 1) default_ic = 1; else default_ic = 0; } else trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; last_cmd = True; last_zpt = False; break; case FCORDER_SUB: /* format control orders */ case FCORDER_DUP: case FCORDER_FM: case FCORDER_FF: case FCORDER_CR: case FCORDER_NL: case FCORDER_EM: case FCORDER_EO: END_TEXT(see_ebc(*cp)); previous = ORDER; d = ctlr_lookleft_state(buffer_addr, &why); if (default_cs == CS_DBCS || d != DBCS_NONE) { ABORT_WRITE("invalid format control order in DBCS field"); } ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case FCORDER_SO: /* Look left for errors. */ END_TEXT(see_ebc(*cp)); d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("SO overwriting right half of DBCS character"); } if (d != DBCS_NONE && why == DBCS_FIELD) { ABORT_WRITE("SO in DBCS field"); } if (d != DBCS_NONE && why == DBCS_SUBFIELD) { ABORT_WRITE("double SO"); } /* All is well. */ previous = ORDER; ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case FCORDER_SI: /* Look left for errors. */ END_TEXT(see_ebc(*cp)); d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("SI overwriting right half of DBCS character"); } if (d != DBCS_NONE && why == DBCS_FIELD) { ABORT_WRITE("SI in DBCS field"); } fa_addr = find_field_attribute(buffer_addr); baddr = buffer_addr; DEC_BA(baddr); while (!aborted && ((fa_addr >= 0 && baddr != fa_addr) || (fa_addr < 0 && baddr != ROWS*COLS - 1))) { if (ea_buf[baddr].cc == FCORDER_SI) { ABORT_WRITE("double SI"); } if (ea_buf[baddr].cc == FCORDER_SO) break; DEC_BA(baddr); } if (aborted) break; if (ea_buf[baddr].cc != FCORDER_SO) { ABORT_WRITE("SI without SO"); } /* All is well. */ previous = ORDER; ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case FCORDER_NULL: /* NULL or DBCS control char */ add_dbcs = False; d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("NULL overwriting right half of DBCS character"); } if (d != DBCS_NONE || default_cs == CS_DBCS) { add_c1 = EBC_null; cp++; if (cp >= buf + buflen) { ABORT_WRITE("missing second half of DBCS character"); } add_c2 = *cp; switch (add_c2) { case EBC_null: case EBC_nl: case EBC_em: case EBC_ff: case EBC_cr: case EBC_dup: case EBC_fm: /* DBCS control code */ END_TEXT(see_ebc(add_c2)); add_dbcs = True; break; case ORDER_SF: case ORDER_SFE: /* Dead position */ END_TEXT("DeadNULL"); cp--; break; default: trace_ds(" [invalid DBCS control character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; break; } if (aborted) break; } else { END_TEXT("NULL"); add_c1 = *cp; } previous = NULLCH; ctlr_add(buffer_addr, add_c1, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); if (add_dbcs) { ctlr_add(buffer_addr, add_c2, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } last_cmd = False; last_zpt = False; break; default: /* enter character */ if (*cp <= 0x3F) { END_TEXT("UnsupportedOrder"); trace_ds("(%02X)", *cp); previous = ORDER; last_cmd = True; last_zpt = False; break; } if (previous != TEXT) trace_ds(" '"); previous = TEXT; #if defined(X3270_DBCS) /*[*/ add_dbcs = False; d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("overwriting right half of DBCS character"); } if (d != DBCS_NONE || default_cs == CS_DBCS) { add_c1 = *cp; cp++; if (cp >= buf + buflen) { ABORT_WRITE("missing second half of DBCS character"); } add_c2 = *cp; if (add_c1 < 0x40 || add_c1 > 0xfe || add_c2 < 0x40 || add_c2 > 0xfe) { trace_ds(" [invalid DBCS character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; } add_dbcs = True; (void) ebcdic_to_multibyte( (add_c1 << 8) | add_c2, mb, sizeof(mb)); trace_ds_nb("%s", mb); } else { #endif /*]*/ add_c1 = *cp; trace_ds("%s", see_ebc(*cp)); #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ ctlr_add(buffer_addr, add_c1, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); #if defined(X3270_DBCS) /*[*/ if (add_dbcs) { ctlr_add(buffer_addr, add_c2, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } #endif /*]*/ last_cmd = False; last_zpt = False; break; } } set_formatted(); END_TEXT0; trace_ds("\n"); kybdlock_clr(KL_AWAITING_FIRST, "ctlr_write"); if (wcc_keyboard_restore) { aid = AID_NO; do_reset(False); } else if (kybdlock & KL_OIA_TWAIT) { kybdlock_clr(KL_OIA_TWAIT, "ctlr_write"); status_syswait(); } if (wcc_sound_alarm) ring_bell(); /* Set up the DBCS state. */ if (ctlr_dbcs_postprocess() < 0 && rv == PDS_OKAY_NO_OUTPUT) rv = PDS_BAD_ADDR; trace_primed = False; ps_process(); /* Let a script go. */ sms_host_output(); /* Tell 'em what happened. */ return rv; } #undef START_FIELDx #undef START_FIELD0 #undef START_FIELD #undef END_TEXT0 #undef END_TEXT #undef ABORT_WRITEx #undef ABORT_WRITE /* * Write SSCP-LU data, which is quite a bit dumber than regular 3270 * output. */ void ctlr_write_sscp_lu(unsigned char buf[], int buflen) { int i; unsigned char *cp = buf; int s_row; unsigned char c; int baddr; int text = False; /* * The 3174 Functionl Description says that anything but NL, NULL, FM, * or DUP is to be displayed as a graphic. However, to deal with * badly-behaved hosts, we filter out SF, IC and SBA sequences, and * we display other control codes as spaces. */ trace_ds("SSCP-LU data\n< "); for (i = 0; i < buflen; cp++, i++) { switch (*cp) { case FCORDER_NL: /* * Insert NULLs to the end of the line and advance to * the beginning of the next line. */ if (text) { trace_ds("'"); text = False; } trace_ds(" NL"); s_row = buffer_addr / COLS; while ((buffer_addr / COLS) == s_row) { ctlr_add(buffer_addr, EBC_null, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } break; case ORDER_SF: /* Some hosts forget they're talking SSCP-LU. */ cp++; i++; if (text) { trace_ds("'"); text = False; } trace_ds(" SF%s %s [translated to space]\n", rcba(buffer_addr), see_attr(*cp)); ctlr_add(buffer_addr, EBC_space, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); break; case ORDER_IC: if (text) { trace_ds("'"); text = False; } trace_ds(" IC%s [ignored]\n", rcba(buffer_addr)); break; case ORDER_SBA: baddr = DECODE_BADDR(*(cp+1), *(cp+2)); trace_ds(" SBA%s [ignored]\n", rcba(baddr)); cp += 2; i += 2; break; case ORDER_GE: cp++; if (++i >= buflen) break; if (*cp <= 0x40) c = EBC_space; else c = *cp; if (text) { trace_ds("'"); text = False; } trace_ds(" GE '%s'", see_ebc(c)); ctlr_add(buffer_addr, c, CS_GE); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); break; default: if (!text) { trace_ds(" '"); text = True; } trace_ds("%s", see_ebc(*cp)); ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); break; } } if (text) trace_ds("'"); trace_ds("\n"); cursor_move(buffer_addr); sscp_start = buffer_addr; /* Unlock the keyboard. */ aid = AID_NO; do_reset(False); /* Let a script go. */ sms_host_output(); } #if defined(X3270_DBCS) /*[*/ /* * Determine the DBCS state of a buffer location strictly by looking left. * Used only to validate write operations. * Returns only DBCS_LEFT, DBCS_RIGHT or DBCS_NONE. * Also returns whether the location is part of a DBCS field (SFE with the * DBCS character set), DBCS subfield (to the right of an SO within a non-DBCS * field), or DBCS attribute (has the DBCS character set extended attribute * within a non-DBCS field). * * This function should be used only to determine the legality of adding a * DBCS or SBCS character at baddr. */ enum dbcs_state ctlr_lookleft_state(int baddr, enum dbcs_why *why) { int faddr; int fdist; int xaddr; Boolean si = False; #define AT_END(f, b) \ (((f) < 0 && (b) == ROWS*COLS - 1) || \ ((f) >= 0 && (b) == (f))) /* If we're not in DBCS state, everything is DBCS_NONE. */ if (!dbcs) return DBCS_NONE; /* Find the field attribute, if any. */ faddr = find_field_attribute(baddr); /* * First in precedence is a DBCS field. * DBCS SA and SO/SI inside a DBCS field are errors, but are considered * defective DBCS characters. */ if (ea_buf[faddr].cs == CS_DBCS) { *why = DBCS_FIELD; fdist = (baddr + ROWS*COLS) - faddr; return (fdist % 2)? DBCS_LEFT: DBCS_RIGHT; } /* * The DBCS attribute takes precedence next. * SO and SI can appear within such a region, but they are single-byte * characters which effectively split it. */ if (ea_buf[baddr].cs == CS_DBCS) { if (ea_buf[baddr].cc == EBC_so || ea_buf[baddr].cc == EBC_si) return DBCS_NONE; xaddr = baddr; while (!AT_END(faddr, xaddr) && ea_buf[xaddr].cs == CS_DBCS && ea_buf[xaddr].cc != EBC_so && ea_buf[xaddr].cc != EBC_si) { DEC_BA(xaddr); } *why = DBCS_ATTRIBUTE; fdist = (baddr + ROWS*COLS) - xaddr; return (fdist % 2)? DBCS_LEFT: DBCS_RIGHT; } /* * Finally, look for a SO not followed by an SI. */ xaddr = baddr; DEC_BA(xaddr); while (!AT_END(faddr, xaddr)) { if (ea_buf[xaddr].cc == EBC_si) si = True; else if (ea_buf[xaddr].cc == EBC_so) { if (si) si = False; else { *why = DBCS_SUBFIELD; fdist = (baddr + ROWS*COLS) - xaddr; return (fdist % 2)? DBCS_LEFT: DBCS_RIGHT; } } DEC_BA(xaddr); } /* Nada. */ return DBCS_NONE; } static Boolean valid_dbcs_char(unsigned char c1, unsigned char c2) { if (c1 >= 0x40 && c1 < 0xff && c2 >= 0x40 && c2 < 0xff) return True; if (c1 != 0x00 || c2 < 0x40 || c2 >= 0xff) return False; switch (c2) { case EBC_null: case EBC_nl: case EBC_em: case EBC_ff: case EBC_cr: case EBC_dup: case EBC_fm: return True; default: return False; } } /* * Post-process DBCS state in the buffer. * This has two purposes: * * - Required post-processing validation, per the data stream spec, which can * cause the write operation to be rejected. * - Setting up the value of the all the db fields in ea_buf. * * This function is called at the end of every 3270 write operation, and also * after each batch of NVT write operations. It could also be called after * significant keyboard operations, but that might be too expensive. * * Returns 0 for success, -1 for failure. */ int ctlr_dbcs_postprocess(void) { int baddr; /* current buffer address */ int faddr0; /* address of first field attribute */ int faddr; /* address of current field attribute */ int last_baddr; /* last buffer address to search */ int pbaddr = -1; /* previous buffer address */ int dbaddr = -1; /* first data position of current DBCS (sub-) field */ Boolean so = False, si = False; Boolean dbcs_field = False; int rc = 0; /* If we're not in DBCS mode, do nothing. */ if (!dbcs) return 0; /* * Find the field attribute for location 0. If unformatted, it's the * dummy at -1. Also compute the starting and ending points for the * scan: the first location after that field attribute. */ faddr0 = find_field_attribute(0); baddr = faddr0; INC_BA(baddr); if (faddr0 < 0) last_baddr = 0; else last_baddr = faddr0; faddr = faddr0; dbcs_field = (ea_buf[faddr].cs & CS_MASK) == CS_DBCS; do { if (ea_buf[baddr].fa) { faddr = baddr; ea_buf[faddr].db = DBCS_NONE; dbcs_field = (ea_buf[faddr].cs & CS_MASK) == CS_DBCS; if (dbcs_field) { dbaddr = baddr; INC_BA(dbaddr); } else { dbaddr = -1; } /* * An SI followed by a field attribute shouldn't be * displayed with a wide cursor. */ if (pbaddr >= 0 && ea_buf[pbaddr].db == DBCS_SI) ea_buf[pbaddr].db = DBCS_NONE; } else { switch (ea_buf[baddr].cc) { case EBC_so: /* Two SO's or SO in DBCS field are invalid. */ if (so || dbcs_field) { trace_ds("DBCS postprocess: invalid SO " "found at %s\n", rcba(baddr)); rc = -1; } else { dbaddr = baddr; INC_BA(dbaddr); } ea_buf[baddr].db = DBCS_NONE; so = True; si = False; break; case EBC_si: /* Two SI's or SI in DBCS field are invalid. */ if (si || dbcs_field) { trace_ds("Postprocess: Invalid SO found " "at %s\n", rcba(baddr)); rc = -1; ea_buf[baddr].db = DBCS_NONE; } else { ea_buf[baddr].db = DBCS_SI; } dbaddr = -1; si = True; so = False; break; default: /* Non-base CS in DBCS subfield is invalid. */ if (so && ea_buf[baddr].cs != CS_BASE) { trace_ds("DBCS postprocess: invalid " "character set found at %s\n", rcba(baddr)); rc = -1; ea_buf[baddr].cs = CS_BASE; } if ((ea_buf[baddr].cs & CS_MASK) == CS_DBCS) { /* * Beginning or continuation of an SA DBCS * subfield. */ if (dbaddr < 0) { dbaddr = baddr; } } else if (!so && !dbcs_field) { /* * End of SA DBCS subfield. */ dbaddr = -1; } if (dbaddr >= 0) { /* * Turn invalid characters into spaces, * silently. */ if ((baddr + ROWS*COLS - dbaddr) % 2) { if (!valid_dbcs_char( ea_buf[pbaddr].cc, ea_buf[baddr].cc)) { ea_buf[pbaddr].cc = EBC_space; ea_buf[baddr].cc = EBC_space; } MAKE_RIGHT(baddr); } else { MAKE_LEFT(baddr); } } else ea_buf[baddr].db = DBCS_NONE; break; } } /* * Check for dead positions. * Turn them into NULLs, silently. */ if (pbaddr >= 0 && IS_LEFT(ea_buf[pbaddr].db) && !IS_RIGHT(ea_buf[baddr].db) && ea_buf[pbaddr].db != DBCS_DEAD) { if (!ea_buf[baddr].fa) { trace_ds("DBCS postprocess: dead position " "at %s\n", rcba(pbaddr)); rc = -1; } ea_buf[pbaddr].cc = EBC_null; ea_buf[pbaddr].db = DBCS_DEAD; } /* Check for SB's, which follow SIs. */ if (pbaddr >= 0 && ea_buf[pbaddr].db == DBCS_SI) ea_buf[baddr].db = DBCS_SB; /* Save this position as the previous and increment. */ pbaddr = baddr; INC_BA(baddr); } while (baddr != last_baddr); return rc; } #endif /*]*/ /* * Process pending input. */ void ps_process(void) { while (run_ta()) ; sms_continue(); #if defined(X3270_FT) /*[*/ /* Process file transfers. */ if (ft_state != FT_NONE && /* transfer in progress */ formatted && /* screen is formatted */ !screen_alt && /* 24x80 screen */ !kybdlock && /* keyboard not locked */ /* magic field */ ea_buf[1919].fa && FA_IS_SKIP(ea_buf[1919].fa)) { ft_cut_data(); } #endif /*]*/ } /* * Tell me if there is any data on the screen. */ Boolean ctlr_any_data(void) { register int i; for (i = 0; i < ROWS*COLS; i++) { if (!IsBlank(ea_buf[i].cc)) return True; } return False; } /* * Clear the text (non-status) portion of the display. Also resets the cursor * and buffer addresses and extended attributes. */ void ctlr_clear(Boolean can_snap) { /* Snap any data that is about to be lost into the trace file. */ if (ctlr_any_data()) { #if defined(X3270_TRACE) /*[*/ if (can_snap && !trace_skipping && toggled(SCREEN_TRACE)) trace_screen(); #endif /*]*/ scroll_save(maxROWS, ever_3270 ? False : True); } #if defined(X3270_TRACE) /*[*/ trace_skipping = False; #endif /*]*/ /* Clear the screen. */ (void) memset((char *)ea_buf, 0, ROWS*COLS*sizeof(struct ea)); ALL_CHANGED; cursor_move(0); buffer_addr = 0; unselect(0, ROWS*COLS); formatted = False; default_fg = 0; default_bg = 0; default_gr = 0; default_ic = 0; sscp_start = 0; } /* * Fill the screen buffer with blanks. */ static void ctlr_blanks(void) { int baddr; for (baddr = 0; baddr < maxROWS*maxCOLS; baddr++) { ea_buf[baddr].cc = EBC_space; } ALL_CHANGED; cursor_move(0); buffer_addr = 0; unselect(0, ROWS*COLS); formatted = False; } /* * Change a character in the 3270 buffer. * Removes any field attribute defined at that location. */ void ctlr_add(int baddr, unsigned char c, unsigned char cs) { unsigned char oc = 0; if (ea_buf[baddr].fa || ((oc = ea_buf[baddr].cc) != c || ea_buf[baddr].cs != cs)) { if (trace_primed && !IsBlank(oc)) { #if defined(X3270_TRACE) /*[*/ if (toggled(SCREEN_TRACE)) trace_screen(); #endif /*]*/ scroll_save(maxROWS, False); trace_primed = False; } if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].cc = c; ea_buf[baddr].cs = cs; ea_buf[baddr].fa = 0; } } /* * Set a field attribute in the 3270 buffer. */ void ctlr_add_fa(int baddr, unsigned char fa, unsigned char cs) { /* Put a null in the display buffer. */ ctlr_add(baddr, EBC_null, cs); /* * Store the new attribute, setting the 'printable' bits so that the * value will be non-zero. */ ea_buf[baddr].fa = FA_PRINTABLE | (fa & FA_MASK); } /* * Change the character set for a field in the 3270 buffer. */ void ctlr_add_cs(int baddr, unsigned char cs) { if (ea_buf[baddr].cs != cs) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].cs = cs; } } /* * Change the graphic rendition of a character in the 3270 buffer. */ void ctlr_add_gr(int baddr, unsigned char gr) { if (ea_buf[baddr].gr != gr) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].gr = gr; if (gr & GR_BLINK) blink_start(); } } /* * Change the foreground color for a character in the 3270 buffer. */ void ctlr_add_fg(int baddr, unsigned char color) { if (!appres.m3279) return; if ((color & 0xf0) != 0xf0) color = 0; if (ea_buf[baddr].fg != color) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].fg = color; } } /* * Change the background color for a character in the 3270 buffer. */ void ctlr_add_bg(int baddr, unsigned char color) { if (!appres.m3279) return; if ((color & 0xf0) != 0xf0) color = 0; if (ea_buf[baddr].bg != color) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].bg = color; } } /* * Change the input control bit for a character in the 3270 buffer. */ static void ctlr_add_ic(int baddr, unsigned char ic) { ea_buf[baddr].ic = ic; } /* * Wrapping bersion of ctlr_bcopy. */ void ctlr_wrapping_memmove(int baddr_to, int baddr_from, int count) { /* * The 'to' region, the 'from' region, or both can wrap the screen, * and can overlap each other. memmove() is smart enough to deal with * overlaps, but not across a screen wrap. * * It's faster to figure out if none of this is true, then do a slow * location-at-a-time version only if it happens. */ if (baddr_from + count <= ROWS*COLS && baddr_to + count <= ROWS*COLS) { ctlr_bcopy(baddr_from, baddr_to, count, True); } else { int i, from, to; for (i = 0; i < count; i++) { if (baddr_to > baddr_from) { /* Shifting right, move left. */ to = (baddr_to + count - 1 - i) % ROWS*COLS; from = (baddr_from + count - 1 - i) % ROWS*COLS; } else { /* Shifting left, move right. */ to = (baddr_to + i) % ROWS*COLS; from = (baddr_from + i) % ROWS*COLS; } ctlr_bcopy(from, to, 1, True); } } } /* * Copy a block of characters in the 3270 buffer, optionally including all of * the extended attributes. (The character set, which is actually kept in the * extended attributes, is considered part of the characters here.) */ void ctlr_bcopy(int baddr_from, int baddr_to, int count, int move_ea) { /* Move the characters. */ if (memcmp((char *) &ea_buf[baddr_from], (char *) &ea_buf[baddr_to], count * sizeof(struct ea))) { (void) memmove(&ea_buf[baddr_to], &ea_buf[baddr_from], count * sizeof(struct ea)); REGION_CHANGED(baddr_to, baddr_to + count); /* * For the time being, if any selected text shifts around on * the screen, unhighlight it. Eventually there should be * logic for preserving the highlight if the *all* of the * selected text moves. */ if (area_is_selected(baddr_to, count)) unselect(baddr_to, count); } /* XXX: What about move_ea? */ } #if defined(X3270_ANSI) /*[*/ /* * Erase a region of the 3270 buffer, optionally clearing extended attributes * as well. */ void ctlr_aclear(int baddr, int count, int clear_ea) { if (memcmp((char *) &ea_buf[baddr], (char *) zero_buf, count * sizeof(struct ea))) { (void) memset((char *) &ea_buf[baddr], 0, count * sizeof(struct ea)); REGION_CHANGED(baddr, baddr + count); if (area_is_selected(baddr, count)) unselect(baddr, count); } /* XXX: What about clear_ea? */ } /* * Scroll the screen 1 row. * * This could be accomplished with ctlr_bcopy() and ctlr_aclear(), but this * operation is common enough to warrant a separate path. */ void ctlr_scroll(void) { int qty = (ROWS - 1) * COLS; Boolean obscured; /* Make sure nothing is selected. (later this can be fixed) */ unselect(0, ROWS*COLS); /* Synchronize pending changes prior to this. */ obscured = screen_obscured(); if (!obscured && screen_changed) screen_disp(False); /* Move ea_buf. */ (void) memmove(&ea_buf[0], &ea_buf[COLS], qty * sizeof(struct ea)); /* Clear the last line. */ (void) memset((char *) &ea_buf[qty], 0, COLS * sizeof(struct ea)); /* Update the screen. */ if (obscured) { ALL_CHANGED; } else { screen_scroll(); } } #endif /*]*/ /* * Note that a particular region of the screen has changed. */ void ctlr_changed(int bstart, int bend) { REGION_CHANGED(bstart, bend); } #if defined(X3270_ANSI) /*[*/ /* * Swap the regular and alternate screen buffers */ void ctlr_altbuffer(Boolean alt) { struct ea *etmp; if (alt != is_altbuffer) { etmp = ea_buf; ea_buf = aea_buf; aea_buf = etmp; is_altbuffer = alt; ALL_CHANGED; unselect(0, ROWS*COLS); /* * There may be blinkers on the alternate screen; schedule one * iteration just in case. */ blink_start(); } } #endif /*]*/ /* * Set or clear the MDT on an attribute */ void mdt_set(int baddr) { int faddr; faddr = find_field_attribute(baddr); if (faddr >= 0 && !(ea_buf[faddr].fa & FA_MODIFY)) { ea_buf[faddr].fa |= FA_MODIFY; if (appres.modified_sel) ALL_CHANGED; } } void mdt_clear(int baddr) { int faddr; faddr = find_field_attribute(baddr); if (faddr >= 0 && (ea_buf[faddr].fa & FA_MODIFY)) { ea_buf[faddr].fa &= ~FA_MODIFY; if (appres.modified_sel) ALL_CHANGED; } } /* * Support for screen-size swapping for scrolling */ void ctlr_shrink(void) { int baddr; for (baddr = 0; baddr < ROWS*COLS; baddr++) { if (!ea_buf[baddr].fa) ea_buf[baddr].cc = visible_control? EBC_space : EBC_null; } ALL_CHANGED; screen_disp(False); } #if defined(X3270_DBCS) /*[*/ /* * DBCS state query. * Returns: * DBCS_NONE: Buffer position is SBCS. * DBCS_LEFT: Buffer position is left half of a DBCS character. * DBCS_RIGHT: Buffer position is right half of a DBCS character. * DBCS_SI: Buffer position is the SI terminating a DBCS subfield (treated * as DBCS_LEFT for wide cursor tests) * DBCS_SB: Buffer position is an SBCS character after an SI (treated as * DBCS_RIGHT for wide cursor tests) * * Takes line-wrapping into account, which probably isn't done all that well. */ enum dbcs_state ctlr_dbcs_state(int baddr) { return dbcs? ea_buf[baddr].db: DBCS_NONE; } #endif /*]*/ /* * Transaction timing. The time between sending an interrupt (PF, PA, Enter, * Clear) and the host unlocking the keyboard is indicated on the status line * to an accuracy of 0.1 seconds. If we don't repaint the screen before we see * the unlock, the time should be fairly accurate. */ static struct timeval t_start; static Boolean ticking = False; static Boolean mticking = False; static unsigned long tick_id; static struct timeval t_want; /* Return the difference in milliseconds between two timevals. */ static long delta_msec(struct timeval *t1, struct timeval *t0) { return (t1->tv_sec - t0->tv_sec) * 1000 + (t1->tv_usec - t0->tv_usec + 500) / 1000; } static void keep_ticking(void) { struct timeval t1; long msec; do { (void) gettimeofday(&t1, (struct timezone *) 0); t_want.tv_sec++; msec = delta_msec(&t_want, &t1); } while (msec <= 0); tick_id = AddTimeOut(msec, keep_ticking); status_timing(&t_start, &t1); } void ticking_start(Boolean anyway) { (void) gettimeofday(&t_start, (struct timezone *) 0); mticking = True; if (!toggled(SHOW_TIMING) && !anyway) return; status_untiming(); if (ticking) RemoveTimeOut(tick_id); ticking = True; tick_id = AddTimeOut(1000, keep_ticking); t_want = t_start; } static void ticking_stop(void) { struct timeval t1; (void) gettimeofday(&t1, (struct timezone *) 0); if (mticking) { sms_accumulate_time(&t_start, &t1); mticking = False; } else { return; } if (!ticking) return; RemoveTimeOut(tick_id); ticking = False; status_timing(&t_start, &t1); } void toggle_showTiming(struct toggle *t _is_unused, enum toggle_type tt _is_unused) { if (!toggled(SHOW_TIMING)) status_untiming(); } /* * No-op toggle. */ void toggle_nop(struct toggle *t _is_unused, enum toggle_type tt _is_unused) { } ibm-3270-3.3.10ga4/s3270/globals.h0000644000175000017500000002702011254565704015542 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2005, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes nor the * names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL AND JEFF SPARKES * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL OR JEFF * SPARKES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * globals.h * Common definitions for x3270, c3270, s3270 and tcl3270. */ /* Autoconf settings. */ #include "conf.h" /* autoconf settings */ #if defined(X3270_TN3270E) && !defined(X3270_ANSI) /*[*/ #define X3270_ANSI 1 /* RFC2355 requires NVT mode */ #endif /*]*/ #if defined(HAVE_VASPRINTF) && !defined(_GNU_SOURCE) /*[*/ #define _GNU_SOURCE /* vasprintf isn't POSIX */ #endif /*]*/ /* * OS-specific #defines. Except for the blocking-connect workarounds, these * should be replaced with autoconf probes as soon as possible. */ /* * BLOCKING_CONNECT_ONLY * Use only blocking sockets. */ #if defined(sco) /*[*/ #define BLOCKING_CONNECT_ONLY 1 #endif /*]*/ #if defined(apollo) /*[*/ #define BLOCKING_CONNECT_ONLY 1 #endif /*]*/ /* * Compiler-specific #defines. */ /* '_is_unused' explicitly flags an unused parameter */ #if defined(__GNUC__) /*[*/ #define _is_unused __attribute__((__unused__)) #define printflike(s,f) __attribute__ ((__format__ (__printf__, s, f))) #else /*][*/ #define _is_unused /* nothing */ #define printflike(s, f) /* nothing */ #endif /*]*/ /* * Prerequisite #includes. */ #include /* Unix standard I/O library */ #include /* Other Unix library functions */ #if !defined(_MSC_VER) /*[*/ #include /* Unix system calls */ #endif /*]*/ #include /* Character classes */ #include /* String manipulations */ #include /* Basic system data types */ #if !defined(_MSC_VER) /*[*/ #include /* System time-related data types */ #endif /*]*/ #include /* C library time functions */ #include "localdefs.h" /* {s,tcl,c}3270-specific defines */ /* * MSC glue. */ #if defined(_MSC_VER) /*[*/ #include /* for struct timeval */ extern int gettimeofday(struct timeval *, void *); #define R_OK 4 #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /*]*/ /* * Locale-related definitions. * Note that USE_ICONV can be used to override __STDC_ISO_10646__, so that * development of iconv-based logic can be done on 10646-compliant systems. */ #if defined(__STDC_ISO_10646__) && !defined(USE_ICONV) /*[*/ #define UNICODE_WCHAR 1 #endif /*]*/ #if !defined(_WIN32) && !defined(UNICODE_WCHAR) /*[*/ #undef USE_ICONV #define USE_ICONV 1 #include #endif /*]*/ /* * Unicode UCS-4 characters are (hopefully) 32 bits. * EBCDIC (including DBCS) is (hopefully) 16 bits. */ typedef unsigned int ucs4_t; typedef unsigned short ebc_t; /* * Cancel out contradictory parts. */ #if !defined(X3270_DISPLAY) /*[*/ #undef X3270_KEYPAD #undef X3270_MENUS #endif /*]*/ #if defined(C3270) && defined(X3270_DBCS) && !defined(CURSES_WIDE) /*[*/ #undef X3270_DBCS #endif /*]*/ /* Local process (-e) header files. */ #if defined(X3270_LOCAL_PROCESS) && defined(HAVE_FORKPTY) /*[*/ #define LOCAL_PROCESS 1 #include #if defined(HAVE_PTY_H) /*[*/ #include #endif /*]*/ #if defined(HAVE_LIBUTIL_H) /*[*/ #include #endif /*]*/ #if defined(HAVE_UTIL_H) /*[*/ #include #endif /*]*/ #endif /*]*/ /* Functions we may need to supply. */ #if defined(NEED_STRTOK_R) /*[*/ extern char *strtok_r(char *str, const char *sep, char **last); #endif /*]*/ /* Stop conflicting with curses' COLS, even if we don't link with it. */ #define COLS cCOLS /* Simple global variables */ extern int COLS; /* current */ extern int ROWS; extern int maxCOLS; /* maximum */ extern int maxROWS; extern int defROWS; /* default (EraseWrite) */ extern int defCOLS; extern int altROWS; /* alternate (EraseWriteAlternate) */ extern int altCOLS; #if defined(X3270_DISPLAY) /*[*/ extern Atom a_3270, a_registry, a_encoding; extern XtAppContext appcontext; #endif /*]*/ extern const char *build; extern const char *build_rpq_timestamp; extern const char *build_rpq_version; extern int children; extern char *connected_lu; extern char *connected_type; extern char *current_host; extern unsigned short current_port; #if defined(X3270_DBCS) /*[*/ extern Boolean dbcs; #endif /*]*/ #if defined(X3270_FT) /*[*/ extern int dft_buffersize; #endif /*]*/ extern char *efontname; extern Boolean ever_3270; extern Boolean exiting; #if defined(X3270_DISPLAY) /*[*/ extern Boolean *extended_3270font; extern Font *fid; extern Boolean *font_8bit; #endif /*]*/ extern Boolean flipped; extern char *full_current_host; extern char *full_efontname; #if defined(X3270_DBCS) /*[*/ extern char *full_efontname_dbcs; #endif /*]*/ extern char full_model_name[]; extern char *funky_font; extern char *hostname; #if defined(X3270_DBCS) /*[*/ #if defined(X3270_DISPLAY) /*[*/ extern char *locale_name; #endif /*]*/ #endif /*]*/ extern char luname[]; #if defined(LOCAL_PROCESS) /*[*/ extern Boolean local_process; #endif /*]*/ extern char *model_name; extern int model_num; extern Boolean no_login_host; extern Boolean non_tn3270e_host; extern int ov_cols, ov_rows; extern Boolean ov_auto; extern Boolean passthru_host; extern const char *programname; extern char *qualified_host; extern char *reconnect_host; extern int screen_depth; extern Boolean scroll_initted; #if defined(HAVE_LIBSSL) /*[*/ extern Boolean secure_connection; #endif /*]*/ extern Boolean shifted; extern Boolean ssl_host; extern Boolean *standard_font; extern Boolean std_ds_host; extern char *termtype; extern Widget toplevel; extern Boolean visible_control; extern int *xtra_width; #if defined(X3270_DISPLAY) /*[*/ extern Atom a_delete_me; extern Atom a_save_yourself; extern Atom a_state; extern Display *display; extern Pixmap gray; extern Pixel keypadbg_pixel; extern XrmDatabase rdb; extern Window root_window; extern char *user_title; #endif /*]*/ #if defined(_WIN32) && (defined(C3270) || defined(S3270)) /*[*/ extern char *instdir; extern char *myappdata; #endif /*]*/ #if defined(_WIN32) && defined(C3270) /*[*/ extern int is_installed; #endif /*]*/ /* Data types and complex global variables */ /* connection state */ enum cstate { NOT_CONNECTED, /* no socket, unknown mode */ RESOLVING, /* resolving hostname */ PENDING, /* connection pending */ CONNECTED_INITIAL, /* connected, no mode yet */ CONNECTED_ANSI, /* connected in NVT ANSI mode */ CONNECTED_3270, /* connected in old-style 3270 mode */ CONNECTED_INITIAL_E, /* connected in TN3270E mode, unnegotiated */ CONNECTED_NVT, /* connected in TN3270E mode, NVT mode */ CONNECTED_SSCP, /* connected in TN3270E mode, SSCP-LU mode */ CONNECTED_TN3270E /* connected in TN3270E mode, 3270 mode */ }; extern enum cstate cstate; #define PCONNECTED ((int)cstate >= (int)RESOLVING) #define HALF_CONNECTED (cstate == RESOLVING || cstate == PENDING) #define CONNECTED ((int)cstate >= (int)CONNECTED_INITIAL) #define IN_NEITHER (cstate == CONNECTED_INITIAL) #define IN_ANSI (cstate == CONNECTED_ANSI || cstate == CONNECTED_NVT) #define IN_3270 (cstate == CONNECTED_3270 || cstate == CONNECTED_TN3270E || cstate == CONNECTED_SSCP) #define IN_SSCP (cstate == CONNECTED_SSCP) #define IN_TN3270E (cstate == CONNECTED_TN3270E) #define IN_E (cstate >= CONNECTED_INITIAL_E) /* keyboard modifer bitmap */ #define ShiftKeyDown 0x01 #define MetaKeyDown 0x02 #define AltKeyDown 0x04 /* toggle names */ struct toggle_name { const char *name; int index; }; extern struct toggle_name toggle_names[]; /* extended attributes */ struct ea { unsigned char cc; /* EBCDIC or ASCII character code */ unsigned char fa; /* field attribute, it nonzero */ unsigned char fg; /* foreground color (0x00 or 0xf) */ unsigned char bg; /* background color (0x00 or 0xf) */ unsigned char gr; /* ANSI graphics rendition bits */ unsigned char cs; /* character set (GE flag, or 0..2) */ unsigned char ic; /* input control (DBCS) */ unsigned char db; /* DBCS state */ }; #define GR_BLINK 0x01 #define GR_REVERSE 0x02 #define GR_UNDERLINE 0x04 #define GR_INTENSIFY 0x08 #define CS_MASK 0x03 /* mask for specific character sets */ #define CS_BASE 0x00 /* base character set (X'00') */ #define CS_APL 0x01 /* APL character set (X'01' or GE) */ #define CS_LINEDRAW 0x02 /* DEC line-drawing character set (ANSI) */ #define CS_DBCS 0x03 /* DBCS character set (X'F8') */ #define CS_GE 0x04 /* cs flag for Graphic Escape */ /* translation lists */ struct trans_list { char *name; char *pathname; Boolean is_temp; Boolean from_server; struct trans_list *next; }; extern struct trans_list *trans_list; /* input key type */ enum keytype { KT_STD, KT_GE }; /* state changes */ #define ST_RESOLVING 1 #define ST_HALF_CONNECT 2 #define ST_CONNECT 3 #define ST_3270_MODE 4 #define ST_LINE_MODE 5 #define ST_REMODEL 6 #define ST_PRINTER 7 #define ST_EXITING 8 #define ST_CHARSET 9 #define N_ST 10 /* Naming convention for private actions. */ #define PA_PFX "PA-" /* Shorthand macros */ #define CN ((char *) NULL) #define PN ((XtPointer) NULL) #define Replace(var, value) { Free(var); var = (value); } /* Configuration change masks. */ #define NO_CHANGE 0x0000 /* no change */ #define MODEL_CHANGE 0x0001 /* screen dimensions changed */ #define FONT_CHANGE 0x0002 /* emulator font changed */ #define COLOR_CHANGE 0x0004 /* color scheme or 3278/9 mode changed */ #define SCROLL_CHANGE 0x0008 /* scrollbar snapped on or off */ #define CHARSET_CHANGE 0x0010 /* character set changed */ #define ALL_CHANGE 0xffff /* everything changed */ /* Portability macros */ /* Equivalent of setlinebuf */ #if defined(_IOLBF) /*[*/ #define SETLINEBUF(s) setvbuf(s, (char *)NULL, _IOLBF, BUFSIZ) #else /*][*/ #define SETLINEBUF(s) setlinebuf(s) #endif /*]*/ /* Motorola version of gettimeofday */ #if defined(MOTOROLA) #define gettimeofday(tp,tz) gettimeofday(tp) #endif /* Default DFT file transfer buffer size. */ #if defined(X3270_FT) && !defined(DFT_BUF) /*[*/ #define DFT_BUF (4 * 1024) #endif /*]*/ /* DBCS Preedit Types */ #if defined(X3270_DBCS) /*[*/ #define PT_ROOT "Root" #define PT_OVER_THE_SPOT "OverTheSpot" #define PT_OFF_THE_SPOT "OffTheSpot" #define PT_ON_THE_SPOT "OnTheSpot" #endif /*]*/ ibm-3270-3.3.10ga4/s3270/keymapc.h0000644000175000017500000000306511254565673015560 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* (Empty) non-display version of keymapc.h */ ibm-3270-3.3.10ga4/s3270/idle.c0000644000175000017500000004453711254565704015043 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * idle.c * This module handles the idle command. */ #include "globals.h" #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #include #include #include #include #include #include #include #include #endif /*]*/ #include #include "appres.h" #include "dialogc.h" #include "hostc.h" #include "idlec.h" #include "macrosc.h" #include "objects.h" #include "popupsc.h" #include "resources.h" #include "trace_dsc.h" #include "utilc.h" /* Macros. */ #define MSEC_PER_SEC 1000L #define IDLE_SEC 1L #define IDLE_MIN 60L #define IDLE_HR (60L * 60L) #define IDLE_MS (7L * IDLE_MIN * MSEC_PER_SEC) #if defined(X3270_DISPLAY) /*[*/ #define FILE_WIDTH 300 /* width of file name widgets */ #define MARGIN 3 /* distance from margins to widgets */ #define CLOSE_VGAP 0 /* distance between paired toggles */ #define FAR_VGAP 10 /* distance between single toggles and groups */ #define BUTTON_GAP 5 /* horizontal distance between buttons */ #endif /*]*/ #define BN (Boolean *)NULL /* Externals. */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ extern Pixmap diamond; extern Pixmap no_diamond; extern Pixmap dot; extern Pixmap no_dot; #endif /*]*/ /* Globals. */ Boolean idle_changed = False; char *idle_command = CN; char *idle_timeout_string = CN; enum idle_enum idle_user_enabled = IDLE_DISABLED; /* Statics. */ static Boolean idle_enabled = False; /* validated and user-enabled */ static unsigned long idle_n = 0L; static unsigned long idle_multiplier = IDLE_SEC; static unsigned long idle_id; static unsigned long idle_ms; static Boolean idle_randomize = False; static Boolean idle_ticking = False; static void idle_in3270(Boolean in3270); static int process_timeout_value(char *t); #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static enum idle_enum s_disabled = IDLE_DISABLED; static enum idle_enum s_session = IDLE_SESSION; static enum idle_enum s_perm = IDLE_PERM; static char hms = 'm'; static Boolean fuzz = False; static char s_hours = 'h'; static char s_minutes = 'm'; static char s_seconds = 's'; static Widget idle_dialog, idle_shell, command_value, timeout_value; static Widget enable_toggle, enable_perm_toggle, disable_toggle; static Widget hours_toggle, minutes_toggle, seconds_toggle, fuzz_toggle; static sr_t *idle_sr = (sr_t *)NULL; static void idle_cancel(Widget w, XtPointer client_data, XtPointer call_data); static void idle_popup_callback(Widget w, XtPointer client_data, XtPointer call_data); static void idle_popup_init(void); static int idle_start(void); static void okay_callback(Widget w, XtPointer call_parms, XtPointer call_data); static void toggle_enable(Widget w, XtPointer client_data, XtPointer call_data); static void mark_toggle(Widget w, Pixmap p); static void toggle_hms(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_fuzz(Widget w, XtPointer client_data, XtPointer call_data); #endif /*]*/ /* Initialization. */ void idle_init(void) { char *cmd, *tmo; /* Register for state changes. */ register_schange(ST_3270_MODE, idle_in3270); register_schange(ST_CONNECT, idle_in3270); /* Get values from resources. */ cmd = appres.idle_command; idle_command = cmd? NewString(cmd): CN; tmo = appres.idle_timeout; idle_timeout_string = tmo? NewString(tmo): CN; if (appres.idle_command_enabled) idle_user_enabled = IDLE_PERM; else idle_user_enabled = IDLE_DISABLED; if (idle_user_enabled && idle_command != CN && process_timeout_value(idle_timeout_string) == 0) idle_enabled = True; /* Seed the random number generator (we seem to be the only user). */ #if defined(_WIN32) /*[*/ srand(time(NULL)); #else /*][*/ srandom(time(NULL)); #endif /*]*/ } /* * Process a timeout value: or ~?[0-9]+[HhMmSs] * Returns 0 for success, -1 for failure. * Sets idle_ms and idle_randomize as side-effects. */ static int process_timeout_value(char *t) { char *s = t; char *ptr; if (s == CN || *s == '\0') { idle_ms = IDLE_MS; idle_randomize = True; return 0; } if (*s == '~') { idle_randomize = True; s++; } idle_n = strtoul(s, &ptr, 0); if (idle_n <= 0) goto bad_idle; switch (*ptr) { case 'H': case 'h': idle_multiplier = IDLE_HR; break; case 'M': case 'm': idle_multiplier = IDLE_MIN; break; case 'S': case 's': case '\0': idle_multiplier = IDLE_SEC; break; default: goto bad_idle; } idle_ms = idle_n * idle_multiplier * MSEC_PER_SEC; return 0; bad_idle: popup_an_error("Invalid idle timeout value '%s'", t); idle_ms = 0L; idle_randomize = False; return -1; } /* Called when a host connects or disconnects. */ static void idle_in3270(Boolean in3270 _is_unused) { if (IN_3270) { reset_idle_timer(); } else { /* Not in 3270 mode any more, turn off the timeout. */ if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } /* If the user didn't want it to be permanent, disable it. */ if (idle_user_enabled != IDLE_PERM) idle_user_enabled = IDLE_DISABLED; } } /* * Idle timeout. */ static void idle_timeout(void) { trace_event("Idle timeout\n"); idle_ticking = False; push_idle(idle_command); reset_idle_timer(); } /* * Reset (and re-enable) the idle timer. Called when the user presses a key or * clicks with the mouse. */ void reset_idle_timer(void) { if (idle_enabled) { unsigned long idle_ms_now; if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } idle_ms_now = idle_ms; if (idle_randomize) { idle_ms_now = idle_ms; #if defined(_WIN32) /*[*/ idle_ms_now -= rand() % (idle_ms / 10L); #else /*][*/ idle_ms_now -= random() % (idle_ms / 10L); #endif /*]*/ } #if defined(DEBUG_IDLE_TIMEOUT) /*[*/ trace_event("Setting idle timeout to %lu\n", idle_ms_now); #endif /*]*/ idle_id = AddTimeOut(idle_ms_now, idle_timeout); idle_ticking = True; } } /* * Cancel the idle timer. This is called when there is an error in * processing the idle command. */ void cancel_idle_timer(void) { if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } idle_enabled = False; } char * get_idle_command(void) { return idle_command; } char * get_idle_timeout(void) { return idle_timeout_string; } #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ /* "Idle Command" dialog. */ /* * Pop up the "Idle" menu. * Called back from the "Configure Idle Command" option on the Options menu. */ void popup_idle(void) { char *its; char *s; /* Initialize it. */ if (idle_shell == (Widget)NULL) idle_popup_init(); /* * Split the idle_timeout_string (the raw resource value) into fuzz, * a number, and h/m/s. */ its = NewString(idle_timeout_string); if (its != CN) { if (*its == '~') { fuzz = True; its++; } else { fuzz = False; } s = its; while (isdigit(*s)) s++; switch (*s) { case 'h': case 'H': hms = 'h'; break; case 'm': case 'M': hms = 'm'; break; case 's': case 'S': hms = 's'; break; default: break; } *s = '\0'; } /* Set the resource values. */ dialog_set(&idle_sr, idle_dialog); XtVaSetValues(command_value, XtNstring, idle_command, NULL); XtVaSetValues(timeout_value, XtNstring, its, NULL); mark_toggle(enable_toggle, (idle_user_enabled == IDLE_SESSION)? diamond : no_diamond); mark_toggle(enable_perm_toggle, (idle_user_enabled == IDLE_PERM)? diamond : no_diamond); mark_toggle(disable_toggle, (idle_user_enabled == IDLE_DISABLED)? diamond : no_diamond); mark_toggle(hours_toggle, (hms == 'h') ? diamond : no_diamond); mark_toggle(minutes_toggle, (hms == 'm') ? diamond : no_diamond); mark_toggle(seconds_toggle, (hms == 's') ? diamond : no_diamond); mark_toggle(fuzz_toggle, fuzz ? dot : no_dot); /* Pop it up. */ popup_popup(idle_shell, XtGrabNone); } /* Initialize the idle pop-up. */ static void idle_popup_init(void) { Widget w; Widget cancel_button; Widget command_label, timeout_label; Widget okay_button; /* Prime the dialog functions. */ dialog_set(&idle_sr, idle_dialog); /* Create the menu shell. */ idle_shell = XtVaCreatePopupShell( "idlePopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(idle_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(idle_shell, XtNpopupCallback, idle_popup_callback, (XtPointer)NULL); /* Create the form within the shell. */ idle_dialog = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, idle_shell, NULL); /* Create the file name widgets. */ command_label = XtVaCreateManagedWidget( "command", labelWidgetClass, idle_dialog, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); command_value = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, idle_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNvertDistance, FAR_VGAP, XtNfromHoriz, command_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(command_label, command_value, XtNheight); w = XawTextGetSource(command_value); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_command); dialog_register_sensitivity(command_value, BN, False, BN, False, BN, False); timeout_label = XtVaCreateManagedWidget( "timeout", labelWidgetClass, idle_dialog, XtNfromVert, command_label, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); timeout_value = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, idle_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNdisplayCaret, False, XtNfromVert, command_label, XtNvertDistance, 3, XtNfromHoriz, timeout_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(timeout_label, timeout_value, XtNheight); dialog_match_dimension(command_label, timeout_label, XtNwidth); w = XawTextGetSource(timeout_value); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(timeout_value, BN, False, BN, False, BN, False); /* Create the hour/minute/seconds radio buttons. */ hours_toggle = XtVaCreateManagedWidget( "hours", commandWidgetClass, idle_dialog, XtNfromVert, timeout_value, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(hours_toggle, no_diamond); XtAddCallback(hours_toggle, XtNcallback, toggle_hms, (XtPointer)&s_hours); minutes_toggle = XtVaCreateManagedWidget( "minutes", commandWidgetClass, idle_dialog, XtNfromVert, timeout_value, XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, hours_toggle, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(minutes_toggle, diamond); XtAddCallback(minutes_toggle, XtNcallback, toggle_hms, (XtPointer)&s_minutes); seconds_toggle = XtVaCreateManagedWidget( "seconds", commandWidgetClass, idle_dialog, XtNfromVert, timeout_value, XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, minutes_toggle, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(seconds_toggle, no_diamond); XtAddCallback(seconds_toggle, XtNcallback, toggle_hms, (XtPointer)&s_seconds); /* Create the fuzz toggle. */ fuzz_toggle = XtVaCreateManagedWidget( "fuzz", commandWidgetClass, idle_dialog, XtNfromVert, hours_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(fuzz_toggle, no_dot); XtAddCallback(fuzz_toggle, XtNcallback, toggle_fuzz, (XtPointer)NULL); /* Create enable/disable toggles. */ enable_toggle = XtVaCreateManagedWidget( "enable", commandWidgetClass, idle_dialog, XtNfromVert, fuzz_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(enable_toggle, (idle_user_enabled == IDLE_SESSION)? diamond : no_diamond); XtAddCallback(enable_toggle, XtNcallback, toggle_enable, (XtPointer)&s_session); enable_perm_toggle = XtVaCreateManagedWidget( "enablePerm", commandWidgetClass, idle_dialog, XtNfromVert, enable_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(enable_perm_toggle, (idle_user_enabled == IDLE_PERM)? diamond : no_diamond); XtAddCallback(enable_perm_toggle, XtNcallback, toggle_enable, (XtPointer)&s_perm); disable_toggle = XtVaCreateManagedWidget( "disable", commandWidgetClass, idle_dialog, XtNfromVert, enable_perm_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(disable_toggle, (idle_user_enabled == IDLE_DISABLED)? diamond : no_diamond); XtAddCallback(disable_toggle, XtNcallback, toggle_enable, (XtPointer)&s_disabled); /* Set up the buttons at the bottom. */ okay_button = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, idle_dialog, XtNfromVert, disable_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(okay_button, XtNcallback, okay_callback, (XtPointer)NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, idle_dialog, XtNfromVert, disable_toggle, XtNvertDistance, FAR_VGAP, XtNfromHoriz, okay_button, XtNhorizDistance, BUTTON_GAP, NULL); XtAddCallback(cancel_button, XtNcallback, idle_cancel, 0); } /* Callbacks for all the idle widgets. */ /* Idle pop-up popping up. */ static void idle_popup_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Set the focus to the command widget. */ PA_dialog_focus_action(command_value, (XEvent *)NULL, (String *)NULL, (Cardinal *)NULL); } /* Cancel button pushed. */ static void idle_cancel(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(idle_shell); } /* OK button pushed. */ static void okay_callback(Widget w _is_unused, XtPointer call_parms _is_unused, XtPointer call_data _is_unused) { if (idle_start() == 0) { idle_changed = True; XtPopdown(idle_shell); } } /* Mark a toggle. */ static void mark_toggle(Widget w, Pixmap p) { XtVaSetValues(w, XtNleftBitmap, p, NULL); } /* Hour/minute/second options. */ static void toggle_hms(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ hms = *(char *)client_data; /* Change the widget states. */ mark_toggle(hours_toggle, (hms == 'h') ? diamond : no_diamond); mark_toggle(minutes_toggle, (hms == 'm') ? diamond : no_diamond); mark_toggle(seconds_toggle, (hms == 's') ? diamond : no_diamond); } /* Fuzz option. */ static void toggle_fuzz(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ fuzz = !fuzz; /* Change the widget state. */ mark_toggle(fuzz_toggle, fuzz ? dot : no_dot); } /* Enable/disable options. */ static void toggle_enable(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ idle_user_enabled = *(enum idle_enum *)client_data; /* Change the widget states. */ mark_toggle(enable_toggle, (idle_user_enabled == IDLE_SESSION)? diamond: no_diamond); mark_toggle(enable_perm_toggle, (idle_user_enabled == IDLE_PERM)? diamond: no_diamond); mark_toggle(disable_toggle, (idle_user_enabled == IDLE_DISABLED)? diamond: no_diamond); } /* * Called when the user presses the OK button on the idle command dialog. * Returns 0 for success, -1 otherwise. */ static int idle_start(void) { char *cmd, *tmo, *its; /* Update the globals, so the dialog has the same values next time. */ XtVaGetValues(command_value, XtNstring, &cmd, NULL); Replace(idle_command, NewString(cmd)); XtVaGetValues(timeout_value, XtNstring, &tmo, NULL); its = Malloc(strlen(tmo) + 3); (void) sprintf(its, "%s%s%c", fuzz? "~": "", tmo, hms); Replace(idle_timeout_string, its); /* See if they've turned it off. */ if (!idle_user_enabled) { /* If they're turned it off, cancel the timer. */ idle_enabled = False; if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } return 0; } /* They've turned it on, and possibly reconfigured it. */ /* Validate the timeout. It should work, yes? */ if (process_timeout_value(its) < 0) { return -1; } /* Seems okay. Reset to the new interval and command. */ idle_enabled = True; if (IN_3270) { reset_idle_timer(); } return 0; } #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/s3270/unicodec.h0000644000175000017500000000640511254565704015714 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* EBCDIC-to-Unicode options */ #define EUO_NONE 0x00000000 /* no options */ #define EUO_BLANK_UNDEF 0x00000001 /* if undefined, return U+0020 */ #define EUO_UPRIV 0x00000002 /* translate FM/DUP/SUB/EO to UPRIV */ #define EUO_ASCII_BOX 0x00000004 /* use ASCII for box drawing */ extern ucs4_t ebcdic_to_unicode(ebc_t e, unsigned char cs, unsigned flags); extern ucs4_t ebcdic_base_to_unicode(ebc_t e, unsigned flags); extern ebc_t unicode_to_ebcdic(ucs4_t u); extern ebc_t unicode_to_ebcdic_ge(ucs4_t u, Boolean *ge); extern int set_uni(const char *csname, const char **host_codepage, const char **cgcsgid, const char **display_charsets); extern int linedraw_to_unicode(ebc_t e); extern int apl_to_unicode(ebc_t e, unsigned flags); #if !defined(_WIN32) && !defined(UNICODE_WCHAR) /*[*/ extern iconv_t i_u2mb; extern iconv_t i_mb2u; #endif /*]*/ extern int ebcdic_to_multibyte_x(ebc_t ebc, unsigned char cs, char mb[], int mb_len, unsigned flags, ucs4_t *uc); extern int ebcdic_to_multibyte(ebc_t ebc, char mb[], int mb_len); extern int ebcdic_to_multibyte_string(unsigned char *ebc, size_t ebc_len, char mb[], size_t mb_len); extern int mb_max_len(int len); enum me_fail { ME_NONE, /* no error */ ME_INVALID, /* invalid sequence */ ME_SHORT /* incomplete sequence */ }; extern ucs4_t multibyte_to_unicode(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp); extern int multibyte_to_unicode_string(char *mb, size_t mb_len, ucs4_t *ucs4, size_t u_len); extern ebc_t multibyte_to_ebcdic(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp); extern int multibyte_to_ebcdic_string(char *mb, size_t mb_len, unsigned char *ebc, size_t ebc_len, enum me_fail *errorp); extern int unicode_to_multibyte(ucs4_t ucs4, char *mb, size_t mb_len); ibm-3270-3.3.10ga4/s3270/configure0000755000175000017500000061370011261527776015670 0ustar bastianbastian#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.63. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell bug-autoconf@gnu.org about your system, echo including any error possibly output before this message. echo This can help us improve future autoconf versions. echo Configuration will now proceed without shell functions. } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="smain.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='LTLIBOBJS LIBOBJS LIBX3270DIR USE_ICONV EGREP GREP CPP XPRECOMP XANSI host_os host_vendor host_cpu host build_os build_vendor build_cpu build OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking with_ssl with_iconv enable_ansi enable_apl enable_dbcs enable_ft enable_local_process enable_menus enable_ssl enable_tn3270e enable_trace ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { $as_echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { $as_echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 { (exit 1); exit 1; }; } ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { $as_echo "$as_me: error: working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-ansi leave out NVT (ANSI) support --disable-apl leave out APL character support --disable-dbcs leave out DBCS support --disable-ft leave out file transfer support --disable-local-process leave out local process support --disable-menus leave out menu support --disable-ssl leave out OpenSSL support --disable-tn3270e leave out TN3270E support --disable-trace leave out tracing support Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-ssl=DIR specify OpenSSL install directory --with-iconv ignore __STDC_ISO_10646__ and use iconv() instead Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 $as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 $as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 $as_echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { $as_echo "$as_me:$LINENO: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } if test -z "$ac_file"; then $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 $as_echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi fi fi { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } { $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } { $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest$ac_cv_exeext { $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:$LINENO: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:$LINENO: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 $as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { $as_echo "$as_me:$LINENO: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 $as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 $as_echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:$LINENO: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 $as_echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac case "$host_os" in solaris2*) XANSI=-D__EXTENSIONS__ ;; darwin*) XPRECOMP=-no-cpp-precomp ;; linux*) XANSI="-D_POSIX_SOURCE" ;; *) XANSI="" ;; esac { $as_echo "$as_me:$LINENO: checking for library containing forkpty" >&5 $as_echo_n "checking for library containing forkpty... " >&6; } if test "${ac_cv_search_forkpty+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char forkpty (); int main () { return forkpty (); ; return 0; } _ACEOF for ac_lib in '' util; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_forkpty=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_forkpty+set}" = set; then break fi done if test "${ac_cv_search_forkpty+set}" = set; then : else ac_cv_search_forkpty=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_forkpty" >&5 $as_echo "$ac_cv_search_forkpty" >&6; } ac_res=$ac_cv_search_forkpty if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi for ac_func in forkpty do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 $as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_var=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if test "${ac_cv_search_gethostbyname+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF for ac_lib in '' nsl; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_gethostbyname=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_gethostbyname+set}" = set; then break fi done if test "${ac_cv_search_gethostbyname+set}" = set; then : else ac_cv_search_gethostbyname=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_gethostbyname" >&5 $as_echo "$ac_cv_search_gethostbyname" >&6; } ac_res=$ac_cv_search_gethostbyname if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:$LINENO: checking for library containing socket" >&5 $as_echo_n "checking for library containing socket... " >&6; } if test "${ac_cv_search_socket+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char socket (); int main () { return socket (); ; return 0; } _ACEOF for ac_lib in '' socket; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_socket=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_socket+set}" = set; then break fi done if test "${ac_cv_search_socket+set}" = set; then : else ac_cv_search_socket=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_socket" >&5 $as_echo "$ac_cv_search_socket" >&6; } ac_res=$ac_cv_search_socket if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi ac_config_headers="$ac_config_headers conf.h" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:$LINENO: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 $as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:$LINENO: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in sys/select.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in pty.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in libutil.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in util.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in getopt.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in iconv.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Check whether --with-ssl was given. if test "${with_ssl+set}" = set; then withval=$with_ssl; fi if test "$enable_ssl" != no then orig_CPPFLAGS="$CPPFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/local/ssl /usr/lib/ssl /usr/pkg/ssl /usr/ssl /var/ssl /opt/ssl do header_fail=0 if test -n "$dir" -a ! -d "$dir/include" then header_fail=1 continue fi if test -n "$any" then { $as_echo "$as_me:$LINENO: retrying with -I$dir/include" >&5 $as_echo "$as_me: retrying with -I$dir/include" >&6;} fi if test -n "$dir" then CPPFLAGS="$orig_CPPFLAGS -I$dir/include" fi for ac_header in openssl/ssl.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else header_fail=1 fi done if test "$header_fail" -eq 0 then break fi unset `echo ac_cv_header_openssl/ssl_h | $as_tr_sh` CPPFLAGS="$orig_CPPFLAGS" any=1 done if test $header_fail -eq 1 then { $as_echo "$as_me:$LINENO: WARNING: Disabling OpenSSL" >&5 $as_echo "$as_me: WARNING: Disabling OpenSSL" >&2;} enable_ssl="no" unset HAVE_LIBSSL fi fi for ac_func in vasprintf do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 $as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_var=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5 $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } if test "${ac_cv_sys_largefile_source+set}" = set; then $as_echo_n "(cached) " >&6 else while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include /* for off_t */ #include int main () { int (*fp) (FILE *, off_t, int) = fseeko; return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_sys_largefile_source=no; break else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define _LARGEFILE_SOURCE 1 #include /* for off_t */ #include int main () { int (*fp) (FILE *, off_t, int) = fseeko; return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_sys_largefile_source=1; break else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_cv_sys_largefile_source=unknown break done fi { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5 $as_echo "$ac_cv_sys_largefile_source" >&6; } case $ac_cv_sys_largefile_source in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source _ACEOF ;; esac rm -rf conftest* # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug # in glibc 2.1.3, but that breaks too many other things. # If you want fseeko and ftello with glibc, upgrade to a fixed glibc. if test $ac_cv_sys_largefile_source != unknown; then cat >>confdefs.h <<\_ACEOF #define HAVE_FSEEKO 1 _ACEOF fi if test "$enable_ssl" != no then orig_LDFLAGS="$LDFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/pkg /usr /var /opt do lib_fail=0 if test -n "$dir" -a ! -d "$dir/ssl/lib" then lib_fail=1 continue fi if test -n "$any" then { $as_echo "$as_me:$LINENO: retrying with -L$dir/ssl/lib" >&5 $as_echo "$as_me: retrying with -L$dir/ssl/lib" >&6;} fi if test -n "$dir" then LDFLAGS="$orig_LDFLAGS -L$dir/ssl/lib" fi { $as_echo "$as_me:$LINENO: checking for CRYPTO_malloc in -lcrypto" >&5 $as_echo_n "checking for CRYPTO_malloc in -lcrypto... " >&6; } if test "${ac_cv_lib_crypto_CRYPTO_malloc+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char CRYPTO_malloc (); int main () { return CRYPTO_malloc (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_crypto_CRYPTO_malloc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_crypto_CRYPTO_malloc=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_CRYPTO_malloc" >&5 $as_echo "$ac_cv_lib_crypto_CRYPTO_malloc" >&6; } if test "x$ac_cv_lib_crypto_CRYPTO_malloc" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBCRYPTO 1 _ACEOF LIBS="-lcrypto $LIBS" else lib_fail=1 fi if test "$lib_fail" -eq 0 then { $as_echo "$as_me:$LINENO: checking for SSL_new in -lssl" >&5 $as_echo_n "checking for SSL_new in -lssl... " >&6; } if test "${ac_cv_lib_ssl_SSL_new+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lssl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char SSL_new (); int main () { return SSL_new (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_ssl_SSL_new=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ssl_SSL_new=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_new" >&5 $as_echo "$ac_cv_lib_ssl_SSL_new" >&6; } if test "x$ac_cv_lib_ssl_SSL_new" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBSSL 1 _ACEOF LIBS="-lssl $LIBS" else lib_fail=1 fi fi if test "$lib_fail" -eq 0 then break fi unset `echo ac_cv_lib_crypto_CRYPTO_malloc | $as_tr_sh` unset `echo ac_cv_lib_ssl_SSL_new | $as_tr_sh` LDFLAGS="$orig_LDFLAGS" any=1 done if test $lib_fail -eq 1 then { $as_echo "$as_me:$LINENO: WARNING: Disabling OpenSSL" >&5 $as_echo "$as_me: WARNING: Disabling OpenSSL" >&2;} enable_ssl="no" fi fi { $as_echo "$as_me:$LINENO: checking whether __STDC_ISO_10646__ is declared" >&5 $as_echo_n "checking whether __STDC_ISO_10646__ is declared... " >&6; } if test "${ac_cv_have_decl___STDC_ISO_10646__+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { #ifndef __STDC_ISO_10646__ (void) __STDC_ISO_10646__; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl___STDC_ISO_10646__=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl___STDC_ISO_10646__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl___STDC_ISO_10646__" >&5 $as_echo "$ac_cv_have_decl___STDC_ISO_10646__" >&6; } if test "x$ac_cv_have_decl___STDC_ISO_10646__" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL___STDC_ISO_10646__ 1 _ACEOF unset unkw else cat >>confdefs.h <<_ACEOF #define HAVE_DECL___STDC_ISO_10646__ 0 _ACEOF unkw=1 fi # Check whether --with-iconv was given. if test "${with_iconv+set}" = set; then withval=$with_iconv; fi case "$with_iconv" in no|"") ;; yes|*) cat >>confdefs.h <<\_ACEOF #define USE_ICONV 1 _ACEOF unkw=1 ;; esac { $as_echo "$as_me:$LINENO: checking for library containing libiconv" >&5 $as_echo_n "checking for library containing libiconv... " >&6; } if test "${ac_cv_search_libiconv+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char libiconv (); int main () { return libiconv (); ; return 0; } _ACEOF for ac_lib in '' iconv; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_libiconv=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_libiconv+set}" = set; then break fi done if test "${ac_cv_search_libiconv+set}" = set; then : else ac_cv_search_libiconv=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_libiconv" >&5 $as_echo "$ac_cv_search_libiconv" >&6; } ac_res=$ac_cv_search_libiconv if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else { $as_echo "$as_me:$LINENO: checking for library containing iconv" >&5 $as_echo_n "checking for library containing iconv... " >&6; } if test "${ac_cv_search_iconv+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char iconv (); int main () { return iconv (); ; return 0; } _ACEOF for ac_lib in '' iconv; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_iconv=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_iconv+set}" = set; then break fi done if test "${ac_cv_search_iconv+set}" = set; then : else ac_cv_search_iconv=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_iconv" >&5 $as_echo "$ac_cv_search_iconv" >&6; } ac_res=$ac_cv_search_iconv if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else if test "$unkw"; then { { $as_echo "$as_me:$LINENO: error: \"No iconv library function\"" >&5 $as_echo "$as_me: error: \"No iconv library function\"" >&2;} { (exit 1); exit 1; }; }; fi fi fi LIBX3270DIR='${sysconfdir}/x3270' # Check whether --enable-ansi was given. if test "${enable_ansi+set}" = set; then enableval=$enable_ansi; fi case "$enable_ansi" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_ANSI 1 _ACEOF ;; esac # Check whether --enable-apl was given. if test "${enable_apl+set}" = set; then enableval=$enable_apl; fi case "$enable_apl" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_APL 1 _ACEOF ;; esac # Check whether --enable-dbcs was given. if test "${enable_dbcs+set}" = set; then enableval=$enable_dbcs; fi case "$enable_dbcs" in no) ;; *) cat >>confdefs.h <<\_ACEOF #define X3270_DBCS 1 _ACEOF ;; esac # Check whether --enable-ft was given. if test "${enable_ft+set}" = set; then enableval=$enable_ft; fi case "$enable_ft" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_FT 1 _ACEOF ;; esac # Check whether --enable-local_process was given. if test "${enable_local_process+set}" = set; then enableval=$enable_local_process; fi case "$enable_local_process" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_LOCAL_PROCESS 1 _ACEOF ;; esac # Check whether --enable-menus was given. if test "${enable_menus+set}" = set; then enableval=$enable_menus; fi case "$enable_menus" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_MENUS 1 _ACEOF ;; esac # Check whether --enable-ssl was given. if test "${enable_ssl+set}" = set; then enableval=$enable_ssl; fi # Check whether --enable-tn3270e was given. if test "${enable_tn3270e+set}" = set; then enableval=$enable_tn3270e; fi case "$enable_tn3270e" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_TN3270E 1 _ACEOF ;; esac # Check whether --enable-trace was given. if test "${enable_trace+set}" = set; then enableval=$enable_trace; fi case "$enable_trace" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_TRACE 1 _ACEOF ;; esac ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { $as_echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { $as_echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "conf.h") CONFIG_HEADERS="$CONFIG_HEADERS conf.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 $as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=' ' ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\).*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\).*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 $as_echo "$as_me: error: could not setup config files machinery" >&2;} { (exit 1); exit 1; }; } _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 $as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 $as_echo "$as_me: error: could not setup config headers machinery" >&2;} { (exit 1); exit 1; }; } fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ac_file_inputs="$ac_file_inputs '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 $as_echo "$as_me: error: could not create -" >&2;} { (exit 1); exit 1; }; } fi ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 $as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi ibm-3270-3.3.10ga4/s3270/x3270if.c0000644000175000017500000003133311254565704015216 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * Script interface utility for x3270, c3270 and s3270. * * Accesses an x3270 command stream on the file descriptors defined by the * environment variables X3270OUTPUT (output from x3270, input to script) and * X3270INPUT (input to x3270, output from script). * * Can also access a command stream via a socket, whose TCP port is defined by * the environment variable X3270PORT. */ #include "conf.h" #if defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #if !defined(_WIN32) /*[*/ #include #include #include #include #include #include #include #include #include #if defined(HAVE_SYS_SELECT_H) /*[*/ #include #endif /*]*/ #if defined(HAVE_GETOPT_H) /*[*/ #include #endif /*]*/ #endif /*]*/ #if defined(_WIN32) /*[*/ #include "w3miscc.h" #endif /*]*/ #define IBS 4096 #define NO_STATUS (-1) #define ALL_FIELDS (-2) extern int optind; extern char *optarg; static char *me; static int verbose = 0; static char buf[IBS]; #if !defined(_WIN32) /*[*/ static void iterative_io(int pid); #endif /*]*/ static void single_io(int pid, unsigned short port, int fn, char *cmd); static void usage(void) { (void) fprintf(stderr, "\ usage: %s [-v] [-S] [-s field] [-p pid] [-t port] [action[(param[,...])]]\n\ %s -i\n", me, me); exit(2); } /* Get a file descriptor from the environment. */ static int fd_env(const char *name) { char *fdname; int fd; fdname = getenv(name); if (fdname == (char *)NULL) { (void) fprintf(stderr, "%s: %s not set in the environment\n", me, name); exit(2); } fd = atoi(fdname); if (fd <= 0) { (void) fprintf(stderr, "%s: invalid value '%s' for %s\n", me, fdname, name); exit(2); } return fd; } int main(int argc, char *argv[]) { int c; int fn = NO_STATUS; char *ptr; int iterative = 0; int pid = 0; unsigned short port = 0; #if defined(_WIN32) /*[*/ if (sockstart() < 0) exit(1); #endif /*]*/ /* Identify yourself. */ if ((me = strrchr(argv[0], '/')) != (char *)NULL) me++; else me = argv[0]; /* Parse options. */ while ((c = getopt(argc, argv, "ip:s:St:v")) != -1) { switch (c) { #if !defined(_WIN32) /*[*/ case 'i': if (fn >= 0) usage(); iterative++; break; case 'p': pid = (int)strtoul(optarg, &ptr, 0); if (ptr == optarg || *ptr != '\0' || pid <= 0) { (void) fprintf(stderr, "%s: Invalid process ID: '%s'\n", me, optarg); usage(); } break; #endif /*]*/ case 's': if (fn >= 0 || iterative) usage(); fn = (int)strtol(optarg, &ptr, 0); if (ptr == optarg || *ptr != '\0' || fn < 0) { (void) fprintf(stderr, "%s: Invalid field number: '%s'\n", me, optarg); usage(); } break; case 'S': if (fn >= 0 || iterative) usage(); fn = ALL_FIELDS; break; case 't': port = (unsigned short)strtoul(optarg, &ptr, 0); if (ptr == optarg || *ptr != '\0' || port <= 0) { (void) fprintf(stderr, "%s: Invalid port: '%s'\n", me, optarg); usage(); } break; case 'v': verbose++; break; default: usage(); break; } } /* Validate positional arguments. */ if (optind == argc) { /* No positional arguments. */ if (fn == NO_STATUS && !iterative) usage(); } else { /* Got positional arguments. */ if (iterative) usage(); } if (pid && port) usage(); #if !defined(_WIN32) /*[*/ /* Ignore broken pipes. */ (void) signal(SIGPIPE, SIG_IGN); #endif /*]*/ /* Do the I/O. */ #if !defined(_WIN32) /*[*/ if (iterative) iterative_io(pid); else #endif /*]*/ single_io(pid, port, fn, argv[optind]); return 0; } #if !defined(_WIN32) /*[*/ /* Connect to a Unix-domain socket. */ static int usock(int pid) { struct sockaddr_un ssun; int fd; fd = socket(AF_UNIX, SOCK_STREAM, 0); if (fd < 0) { perror("socket"); exit(2); } (void) memset(&ssun, '\0', sizeof(struct sockaddr_un)); ssun.sun_family = AF_UNIX; (void) sprintf(ssun.sun_path, "/tmp/x3sck.%d", pid); if (connect(fd, (struct sockaddr *)&ssun, sizeof(ssun)) < 0) { perror("connect"); exit(2); } return fd; } #endif /*]*/ /* Connect to a TCP socket. */ static int tsock(unsigned short port) { struct sockaddr_in sin; int fd; fd = socket(AF_INET, SOCK_STREAM, 0); if (fd < 0) { #if defined(_WIN32) /*[*/ fprintf(stderr, "socket: %s\n", win32_strerror(GetLastError())); #else /*][*/ perror("socket"); #endif /*]*/ exit(2); } (void) memset(&sin, '\0', sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_port = htons(port); sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); if (connect(fd, (struct sockaddr *)&sin, sizeof(sin)) < 0) { #if defined(_WIN32) /*[*/ fprintf(stderr, "connect(%u): %s\n", port, win32_strerror(GetLastError())); #else /*][*/ perror("connect"); #endif /*]*/ exit(2); } return fd; } /* Do a single command, and interpret the results. */ static void single_io(int pid, unsigned short port, int fn, char *cmd) { char *port_env; int infd; int outfd; char status[IBS] = ""; int nr; int xs = -1; int nw = 0; char rbuf[IBS]; int sl = 0; int done = 0; int is_socket = 0; char *cmd_nl; char *wstr; /* Verify the environment and open files. */ #if !defined(_WIN32) /*[*/ if (pid) { infd = outfd = usock(pid); } else #endif /*]*/ if (port) { infd = outfd = tsock(port); is_socket = 1; } else if ((port_env = getenv("X3270PORT")) != NULL) { infd = outfd = tsock(atoi(port_env)); is_socket = 1; } else { infd = fd_env("X3270OUTPUT"); outfd = fd_env("X3270INPUT"); } if (infd < 0) { perror("x3270if: input: fdopen"); exit(2); } if (outfd < 0) { perror("x3270if: output: fdopen"); exit(2); } /* Speak to x3270. */ if (verbose) (void) fprintf(stderr, "i+ out %s\n", (cmd != NULL) ? cmd : ""); if (cmd != NULL) { cmd_nl = malloc(strlen(cmd) + 2); if (cmd_nl == NULL) { fprintf(stderr, "Out of memory\n"); exit(2); } sprintf(cmd_nl, "%s\n", cmd); wstr = cmd_nl; } else { cmd_nl = NULL; wstr = "\n"; } if (is_socket) { nw = send(outfd, wstr, strlen(wstr), 0); } else { nw = write(outfd, wstr, strlen(wstr)); } if (nw < 0) { if (is_socket) #if defined(_WIN32) /*[*/ fprintf(stderr, "x3270if: send: %s\n", win32_strerror(GetLastError())); #else /*][*/ perror("x3270if: send"); #endif /*]*/ else perror("x3270if: write"); exit(2); } if (cmd_nl != NULL) free(cmd_nl); /* Get the answer. */ while (!done && (nr = (is_socket? recv(infd, rbuf, IBS, 0): read(infd, rbuf, IBS))) > 0) { int i; int get_more = 0; i = 0; do { /* Copy from rbuf into buf until '\n'. */ while (i < nr && rbuf[i] != '\n') { if (sl < IBS - 1) buf[sl++] = rbuf[i++]; } if (rbuf[i] == '\n') i++; else { /* Go get more input. */ get_more = 1; break; } /* Process one line of output. */ buf[sl] = '\0'; if (verbose) (void) fprintf(stderr, "i+ in %s\n", buf); if (!strcmp(buf, "ok")) { (void) fflush(stdout); xs = 0; done = 1; break; } else if (!strcmp(buf, "error")) { (void) fflush(stdout); xs = 1; done = 1; break; } else if (!strncmp(buf, "data: ", 6)) { if (printf("%s\n", buf + 6) < 0) { perror("x3270if: printf"); exit(2); } } else (void) strcpy(status, buf); /* Get ready for the next. */ sl = 0; } while (i < nr); if (get_more) { get_more = 0; continue; } } if (nr < 0) { if (is_socket) #if defined(_WIN32) /*[*/ fprintf(stderr, "x3270if: recv: %s\n", win32_strerror(GetLastError())); #else /*][*/ perror("recv"); #endif /*]*/ else perror("read"); exit(2); } else if (nr == 0) { fprintf(stderr, "x3270if: unexpected EOF\n"); exit(2); } if (fflush(stdout) < 0) { perror("x3270if: fflush"); exit(2); } /* Print status, if that's what they want. */ if (fn != NO_STATUS) { char *sf = (char *)NULL; char *sb = status; int rc; if (fn == ALL_FIELDS) { rc = printf("%s\n", status); } else { do { if (!fn--) break; sf = strtok(sb, " \t"); sb = (char *)NULL; } while (sf != (char *)NULL); rc = printf("%s\n", (sf != (char *)NULL) ? sf : ""); } if (rc < 0) { perror("x3270if: printf"); exit(2); } } if (fflush(stdout) < 0) { perror("x3270if: fflush"); exit(2); } if (is_socket) { shutdown(infd, 2); #if defined(_WIN32) /*[*/ closesocket(infd); #else /*][*/ close(infd); #endif /*]*/ } exit(xs); } #if !defined(_WIN32) /*[*/ /* Act as a passive pipe between 'expect' and x3270. */ static void iterative_io(int pid) { # define N_IO 2 struct { const char *name; int rfd, wfd; char buf[IBS]; int offset, count; } io[N_IO]; /* [0] is program->x3270, [1] is x3270->program */ fd_set rfds, wfds; int fd_max = 0; int i; #ifdef DEBUG if (verbose) { freopen("/tmp/x3270if.dbg", "w", stderr); setlinebuf(stderr); } #endif /* Get the x3270 file descriptors. */ io[0].name = "program->x3270"; io[0].rfd = fileno(stdin); if (pid) io[0].wfd = usock(pid); else io[0].wfd = fd_env("X3270INPUT"); io[1].name = "x3270->program"; if (pid) io[1].rfd = dup(io[0].wfd); else io[1].rfd = fd_env("X3270OUTPUT"); io[1].wfd = fileno(stdout); for (i = 0; i < N_IO; i++) { if (io[i].rfd > fd_max) fd_max = io[i].rfd; if (io[i].wfd > fd_max) fd_max = io[i].wfd; (void) fcntl(io[i].rfd, F_SETFL, fcntl(io[i].rfd, F_GETFL, 0) | O_NDELAY); (void) fcntl(io[i].wfd, F_SETFL, fcntl(io[i].wfd, F_GETFL, 0) | O_NDELAY); io[i].offset = 0; io[i].count = 0; } fd_max++; for (;;) { int rv; FD_ZERO(&rfds); FD_ZERO(&wfds); for (i = 0; i < N_IO; i++) { if (io[i].count) { FD_SET(io[i].wfd, &wfds); #ifdef DEBUG if (verbose) (void) fprintf(stderr, "enabling output %s %d\n", io[i].name, io[i].wfd); #endif } else { FD_SET(io[i].rfd, &rfds); #ifdef DEBUG if (verbose) (void) fprintf(stderr, "enabling input %s %d\n", io[i].name, io[i].rfd); #endif } } if ((rv = select(fd_max, &rfds, &wfds, (fd_set *)NULL, (struct timeval *)NULL)) < 0) { perror("x3270if: select"); exit(2); } if (verbose) (void) fprintf(stderr, "select->%d\n", rv); for (i = 0; i < N_IO; i++) { if (io[i].count) { if (FD_ISSET(io[i].wfd, &wfds)) { rv = write(io[i].wfd, io[i].buf + io[i].offset, io[i].count); if (rv < 0) { (void) fprintf(stderr, "x3270if: write(%s): %s", io[i].name, strerror(errno)); exit(2); } io[i].offset += rv; io[i].count -= rv; #ifdef DEBUG if (verbose) (void) fprintf(stderr, "write(%s)->%d\n", io[i].name, rv); #endif } } else if (FD_ISSET(io[i].rfd, &rfds)) { rv = read(io[i].rfd, io[i].buf, IBS); if (rv < 0) { (void) fprintf(stderr, "x3270if: read(%s): %s", io[i].name, strerror(errno)); exit(2); } if (rv == 0) exit(0); io[i].offset = 0; io[i].count = rv; #ifdef DEBUG if (verbose) (void) fprintf(stderr, "read(%s)->%d\n", io[i].name, rv); #endif } } } } #endif /*]*/ ibm-3270-3.3.10ga4/s3270/rpq.c0000644000175000017500000005044111254565704014717 0ustar bastianbastian/* * Copyright (c) 2005-2009, Paul Mattes. * Copyright (c) 2004-2005, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * rpq.c * RPQNAMES structured field support. * */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #include #include "3270ds.h" #include "appres.h" #include "popupsc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" /* Statics */ static Boolean select_rpq_terms(void); static int get_rpq_timezone(void); static int get_rpq_user(unsigned char buf[], const int buflen); #if !defined(_WIN32) /*[*/ static int get_rpq_address(unsigned char buf[], const int buflen); #endif /*]*/ static void rpq_warning(const char *fmt, ...); static void rpq_dump_warnings(void); static Boolean rpq_complained = False; #if !defined(_WIN32) /*[*/ static Boolean omit_due_space_limit = False; #endif /*]*/ /* * Define symbolic names for RPQ self-defining terms. * (Numbering is arbitrary, but must be 0-255 inclusive. * Do not renumber existing items because these identify the * self-defining term to the mainframe software. Changing pre-existing * values will possibly impact host based software. */ #define RPQ_ADDRESS 0 #define RPQ_TIMESTAMP 1 #define RPQ_TIMEZONE 2 #define RPQ_USER 3 #define RPQ_VERSION 4 /* * Define a table of RPQ self-defing terms. * NOTE: Synonyms could be specified by coding different text items but using * the same "id" value. * Items should be listed in alphabetical order by "text" name so if the user * specifies abbreviations, they work in a predictable manner. E.g., "TIME" * should match TIMESTAMP instead of TIMEZONE. */ static struct rpq_keyword { Boolean omit; /* set from X3270RPQ="kw1:kw2..." environment var */ int oride; /* displacement */ const Boolean allow_oride; const unsigned char id; const char *text; } rpq_keywords[] = { {True, 0, True, RPQ_ADDRESS, "ADDRESS"}, {True, 0, False, RPQ_TIMESTAMP, "TIMESTAMP"}, {True, 0, True, RPQ_TIMEZONE, "TIMEZONE"}, {True, 0, True, RPQ_USER, "USER"}, {True, 0, False, RPQ_VERSION, "VERSION"}, }; #define NS_RPQ (sizeof(rpq_keywords)/sizeof(rpq_keywords[0])) static char *x3270rpq; /* * RPQNAMES query reply. */ void do_qr_rpqnames(void) { #define TERM_PREFIX_SIZE 2 /* Each term has 1 byte length and 1 byte id */ unsigned char *rpql, *p_term; unsigned j; int term_id,i,x; int remaining = 254; /* maximum data area for rpqname reply */ Boolean omit_due_space_limit; trace_ds("> QueryReply(RPQNames)\n"); /* * Allocate enough space for the maximum allowed item. * By pre-allocating the space I don't have to worry about the * possibility of addresses changing. */ space3270out(4+4+1+remaining); /* Maximum space for an RPQNAME item */ SET32(obptr, 0); /* Device number, 0 = All */ SET32(obptr, 0); /* Model number, 0 = All */ rpql = obptr++; /* Save address to place data length. */ /* * Create fixed length portion - program id: x3270 * This is known 8-bit text so we can use asc2ebc0 to translate it. */ for (j = 0; j < 5; j++) { *obptr++ = asc2ebc0[(int)"x3270"[j]]; remaining--; } /* Create user selected variable-length self-defining terms. */ select_rpq_terms(); for (j=0; j remaining); if (!omit_due_space_limit) { for (i = 0; i < x; i++) { *obptr++ = asc2ebc0[(int)(*(build_rpq_version+i) & 0xff)]; } } break; case RPQ_TIMESTAMP: /* program build time (yyyymmddhhmmss bcd) */ x = strlen(build_rpq_timestamp); omit_due_space_limit = ((x+1)/2 > remaining); if (!omit_due_space_limit) { for (i=0; i < x; i+=2) { *obptr++ = ((*(build_rpq_timestamp+i) - '0') << 4) + (*(build_rpq_timestamp+i+1) - '0'); } } break; default: /* unsupported ID, (can't happen) */ Error("Unsupported RPQ term"); break; } if (omit_due_space_limit) rpq_warning("RPQ %s term omitted due to insufficient " "space", rpq_keywords[j].text); /* * The item is built, insert item length as needed and * adjust space remaining. * obptr now points at "next available byte". */ x = obptr-p_term; if (x > TERM_PREFIX_SIZE) { *p_term = x; remaining -= x; /* This includes length and id fields, correction below */ } else { /* We didn't add an item after all, reset pointer. */ obptr = p_term; } /* * When we calculated the length of the term, a few lines * above, that length included the term length and term id * prefix too. (TERM_PREFIX_SIZE) * But just prior to the switch statement, we decremented the * remaining space by that amount so subsequent routines would * be told how much space they have for their data, without * each routine having to account for that prefix. * That means the remaining space is actually more than we * think right now, by the length of the prefix.... add that * back so the remaining space is accurate. * * And... if there was no item added, we still have to make the * same correction to "claim back" the term prefix area so it * may be used by the next possible term. */ remaining += TERM_PREFIX_SIZE; } /* Fill in overall length of RPQNAME info */ *rpql = (obptr - rpql); rpq_dump_warnings(); } /* Utility function used by the RPQNAMES query reply. */ static Boolean select_rpq_terms(void) { size_t i; unsigned j,k; int len; char *uplist; char *p1, *p2; char *kw; Boolean is_no_form; /* See if the user wants any rpqname self-defining terms returned */ if ((x3270rpq = getenv("X3270RPQ")) == NULL) return False; /* * Make an uppercase copy of the user selections so I can match * keywords more easily. * If there are override values, I'll get those from the ORIGINAL * string so upper/lower case is preserved as necessary. */ uplist = (char *) malloc(strlen(x3270rpq)+1); assert(uplist != NULL); p1 = uplist; p2 = x3270rpq; do { *p1++ = toupper(*p2++); } while (*p2); *p1 = '\0'; for (i=0; i 2) && (strncmp("NO", kw, 2) == 0)); if (is_no_form) { kw+=2; /* skip "NO" prefix for matching keyword */ len-=2; /* adjust keyword length */ } for (j=0; j < NS_RPQ; j++) { if (strncmp(kw, rpq_keywords[j].text, len) == 0) { rpq_keywords[j].omit = is_no_form; if (*p1 == '=') { if (rpq_keywords[j].allow_oride) { rpq_keywords[j].oride = p1-uplist+1; } else { rpq_warning("RPQ %s term " "override " "ignored", p1); } } break; } } if (j >= NS_RPQ) { /* unrecognized keyword... */ if (strcmp(kw,"ALL") == 0) { for (k=0; k < NS_RPQ; k++) rpq_keywords[k].omit = is_no_form; } else { rpq_warning("RPQ term \"%s\" is unrecognized", kw); } } } free(uplist); /* * Return to caller with indication (T/F) of any items * to be selected (T) or are all terms suppressed? (F) */ for (i=0; i id != RPQ_TIMEZONE; kw++) { } /* Is there a user override? */ if ((kw->allow_oride) && (kw->oride > 0)) { ldiv_t hhmm; long x; p1 = x3270rpq+kw->oride; x = strtol(p1, &p2, 10); if (errno != 0) { rpq_warning("RPQ TIMEZONE term is invalid - " "use +/-hhmm"); return 4; } if ((*p2 != '\0') && (*p2 != ':') && (!isspace(*p2))) return 4; hhmm = ldiv(x, 100L); if (hhmm.rem > 59L) { rpq_warning("RPQ TIMEZONE term is invalid - " "use +/-hhmm"); return 4; } delta = (labs(hhmm.quot) * 60L) + hhmm.rem; if (hhmm.quot < 0L) delta = -delta; } else { /* * No override specified, try to get information from the * system. */ if ((here = time(NULL)) == (time_t)(-1)) { rpq_warning("RPQ: Unable to determine workstation " "local time"); return 1; } memcpy(&here_tm, localtime(&here), sizeof(struct tm)); if ((utc_tm = gmtime(&here)) == NULL) { rpq_warning("RPQ: Unable to determine workstation UTC " "time"); return 2; } /* * Do not take Daylight Saving Time into account. * We just want the "raw" time difference. */ here_tm.tm_isdst = 0; utc_tm->tm_isdst = 0; delta = difftime(mktime(&here_tm), mktime(utc_tm)) / 60L; } /* sanity check: difference cannot exceed +/- 12 hours */ if (labs(delta) > 720L) rpq_warning("RPQ timezone exceeds 12 hour UTC offset"); return (labs(delta) > 720L)? 3 : (int) delta; } /* Utility function used by the RPQNAMES query reply. */ static int get_rpq_user(unsigned char buf[], const int buflen) { /* * Text may be specified in one of two ways, but not both. * An environment variable provides the user interface: * - X3270RPQ: Keyword USER= * * NOTE: If the string begins with 0x then no ASCII/EBCDIC * translation is done. The hex characters will be sent as true hex * data. E.g., X3270RPQ="user=0x ab 12 EF" will result in 3 bytes * sent as 0xAB12EF. White space is optional in hex data format. * When hex format is required, the 0x prefix must be the first two * characters of the string. E.g., X3270RPQ="user= 0X AB" will * result in 6 bytes sent as 0x40F0E740C1C2 because the text is * accepted "as is" then translated from ASCII to EBCDIC. */ const char *rpqtext = CN; int x = 0; struct rpq_keyword *kw; char *sbuf, *sbuf0; const char *s; enum me_fail error; int xlen; /* id isn't necessarily the table index... locate item */ for (kw = &rpq_keywords[0]; kw -> id != RPQ_USER; kw++) { } if ((!kw->allow_oride) || (kw->oride <= 0)) return 0; rpqtext = x3270rpq + kw->oride; if ((*rpqtext == '0') && (toupper(*(rpqtext+1)) == 'X')) { /* text has 0x prefix... interpret as hex, no translation */ char hexstr[512]; /* more than enough room to copy */ char * p_h; char c; int x; Boolean is_first_hex_digit; p_h = &hexstr[0]; /* copy the hex digits from X3270RPQ, removing white * space, and using all upper case for the hex digits a-f. */ rpqtext += 2; /* skip 0x prefix */ for (*p_h = '\0'; *rpqtext; rpqtext++) { c = toupper(*rpqtext); if ((c==':') || (c=='\0')) break; if (isspace(c)) continue; /* skip white space */ if (!isxdigit(c)) { rpq_warning("RPQ USER term has non-hex " "character"); break; } x = (p_h - hexstr)/2; if (x >= buflen) { x = buflen; rpq_warning("RPQ USER term truncated after %d " "bytes", x); break; /* too long, truncate */ } *p_h++ = c; /* copy (upper case) character */ *p_h = '\0'; /* keep string properly terminated */ } /* * 'hexstr' is now a character string of 0-9, A-F only, * (a-f were converted to upper case). * There may be an odd number of characters, implying a leading * 0. The string is also known to fit in the area specified. */ /* hex digits are handled in pairs, set a flag so we keep track * of which hex digit we're currently working with. */ is_first_hex_digit = ((strlen(hexstr) % 2) == 0); if (!is_first_hex_digit) rpq_warning("RPQ USER term has odd number of hex " "digits"); *buf = 0; /* initialize first byte for possible implied leading zero */ for (p_h = &hexstr[0]; *p_h; p_h++) { int n; /* convert the hex character to a value 0-15 */ n = isdigit(*p_h) ? *p_h - '0' : *p_h - 'A' + 10; if (is_first_hex_digit) { *buf = n << 4; } else { *buf++ |= n; } is_first_hex_digit = !is_first_hex_digit; } return (strlen(hexstr)+1)/2; } /* plain text - subject to ascii/ebcdic translation */ /* * Copy the source string to a temporary buffer, terminating on * ':', unless preceded by '\'. */ sbuf = sbuf0 = Malloc(strlen(rpqtext) + 1); for (s = rpqtext; *s && (*s != ':'); s++) { if (*s == '\\' && *(s + 1)) { *sbuf++ = *++s; } else *sbuf++ = *s; } *sbuf = '\0'; /* Translate multibyte to EBCDIC in the target buffer. */ xlen = multibyte_to_ebcdic_string(sbuf0, strlen(sbuf0), buf, buflen, &error); if (xlen < 0) { rpq_warning("RPQ USER term translation error"); if (buflen) { *buf = asc2ebc0['?']; x = 1; } } else { x = xlen; } Free(sbuf0); return x; } #if !defined(_WIN32) /*[*/ static int get_rpq_address(unsigned char *buf, const int maxlen) { struct rpq_keyword *kw; int x = 0; if (maxlen < 2) { omit_due_space_limit = True; return 0; } /* id isn't necessarily the table index... locate item */ for (kw = &rpq_keywords[0]; kw->id != RPQ_ADDRESS; kw++) { } /* Is there a user override? */ if ((kw->allow_oride) && (kw->oride > 0)) { char *p1, *p2, *rpqtext; #if defined(AF_INET6) /*[*/ struct addrinfo *res; int ga_err; #else /*][*/ in_addr_t ia; #endif /*]*/ p1 = x3270rpq + kw->oride; rpqtext = (char *) malloc(strlen(p1) + 1); for (p2=rpqtext;*p1; p2++) { if (*p1 == ':') break; if ((*p1 == '\\') && (*(p1+1) == ':')) p1++; *p2 = *p1; p1++; } *p2 = '\0'; #if defined(AF_INET6) /*[*/ ga_err = getaddrinfo(rpqtext, NULL, NULL, &res); if (ga_err == 0) { void *src = NULL; int len = 0; SET16(buf, res->ai_family); x += 2; switch (res->ai_family) { case AF_INET: src = &((struct sockaddr_in *)res->ai_addr)->sin_addr; len = sizeof(struct in_addr); break; case AF_INET6: src = &((struct sockaddr_in6 *)res->ai_addr)->sin6_addr; len = sizeof(struct in6_addr); break; default: rpq_warning("RPQ ADDRESS term has " "unrecognized family %u", res->ai_family); break; } if (x + len <= maxlen) { x += len; (void) memcpy(buf, src, len); } else { rpq_warning("RPQ ADDRESS term incomplete due " "to space limit"); } /* Give back storage obtained by getaddrinfo */ freeaddrinfo(res); } else { rpq_warning("RPQ: can't resolve '%s': %s", rpqtext, gai_strerror(ga_err)); } #else /*][*/ /* * No IPv6 support. * Use plain old inet_addr() and gethostbyname(). */ ia = inet_addr(rpqtext); if (ia == htonl(INADDR_NONE)) { struct hostent *h; h = gethostbyname(rpqtext); if (h == NULL || h->h_addrtype != AF_INET) { rpq_warning("RPQ: gethostbyname error"); return 0; } (void) memcpy(&ia, h->h_addr_list[0], h->h_length); } SET16(buf, AF_INET); x += 2; if (x + sizeof(in_addr_t) <= maxlen) { (void) memcpy(buf, &ia, sizeof(in_addr_t)); x += sizeof(in_addr_t); } else { rpq_warning("RPQ ADDRESS term incomplete due to " "space limit"); } #endif /*]*/ free(rpqtext); } else { /* No override... get our address from the actual socket */ union { struct sockaddr sa; struct sockaddr_in sa4; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sa6; #endif /*]*/ } u; int addrlen = sizeof(u); void *src = NULL; int len = 0; if (net_getsockname(&u, &addrlen) < 0) return 0; SET16(buf, u.sa.sa_family); x += 2; switch (u.sa.sa_family) { case AF_INET: src = &u.sa4.sin_addr; len = sizeof(struct in_addr); break; #if defined(AF_INET6) /*[*/ case AF_INET6: src = &u.sa6.sin6_addr; len = sizeof(struct in6_addr); break; #endif /*]*/ default: rpq_warning("RPQ ADDRESS term has unrecognized " "family %u", u.sa.sa_family); break; } if (x + len <= maxlen) { (void) memcpy(buf, src, len); x += len; } else { rpq_warning("RPQ ADDRESS term incomplete due to space " "limit"); } } return x; } #endif /*]*/ #define RPQ_WARNBUF_SIZE 1024 static char *rpq_warnbuf = CN; static int rpq_wbcnt = 0; static void rpq_warning(const char *fmt, ...) { va_list a; /* Only accumulate RPQ warnings if they * have not been displayed already. */ if (!rpq_complained) { va_start(a, fmt); if (rpq_warnbuf == CN) rpq_warnbuf = Malloc(RPQ_WARNBUF_SIZE); if (rpq_wbcnt < RPQ_WARNBUF_SIZE) { *(rpq_warnbuf + rpq_wbcnt++) = '\n'; *(rpq_warnbuf + rpq_wbcnt) = '\0'; } if (rpq_wbcnt < RPQ_WARNBUF_SIZE) { rpq_wbcnt += vsnprintf(rpq_warnbuf + rpq_wbcnt, RPQ_WARNBUF_SIZE - rpq_wbcnt, fmt, a); } va_end(a); } } static void rpq_dump_warnings(void) { /* If there's something to complain about, only complain once. */ if (!rpq_complained && rpq_wbcnt) { popup_an_error("%s", rpq_warnbuf); rpq_wbcnt = 0; rpq_complained = True; free(rpq_warnbuf); rpq_warnbuf = CN; } } ibm-3270-3.3.10ga4/s3270/charsetc.h0000644000175000017500000000406211254565704015714 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * charsetc.h * Global declarations for charset.c */ extern Boolean charset_changed; extern unsigned long cgcsgid; #if defined(X3270_DBCS) /*[*/ extern unsigned long cgcsgid_dbcs; #endif /*]*/ extern char *default_display_charset; enum cs_result { CS_OKAY, CS_NOTFOUND, CS_BAD, CS_PREREQ, CS_ILLEGAL }; extern enum cs_result charset_init(char *csname); extern char *get_charset_name(void); extern char *get_host_codepage(void); extern void charset_list(void); ibm-3270-3.3.10ga4/s3270/ft_dft_ds.h0000644000175000017500000000506011254565704016053 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* DFT-style file transfer codes. */ /* Host requests. */ #define TR_OPEN_REQ 0x0012 /* open request */ #define TR_CLOSE_REQ 0x4112 /* close request */ #define TR_SET_CUR_REQ 0x4511 /* set cursor request */ #define TR_GET_REQ 0x4611 /* get request */ #define TR_INSERT_REQ 0x4711 /* insert request */ #define TR_DATA_INSERT 0x4704 /* data to insert */ /* PC replies. */ #define TR_GET_REPLY 0x4605 /* data for get */ #define TR_NORMAL_REPLY 0x4705 /* insert normal reply */ #define TR_ERROR_REPLY 0x08 /* error reply (low 8 bits) */ #define TR_CLOSE_REPLY 0x4109 /* close acknowledgement */ /* Other headers. */ #define TR_RECNUM_HDR 0x6306 /* record number header */ #define TR_ERROR_HDR 0x6904 /* error header */ #define TR_NOT_COMPRESSED 0xc080 /* data not compressed */ #define TR_BEGIN_DATA 0x61 /* beginning of data */ /* Error codes. */ #define TR_ERR_EOF 0x2200 /* get past end of file */ #define TR_ERR_CMDFAIL 0x0100 /* command failed */ ibm-3270-3.3.10ga4/s3270/ft.c0000644000175000017500000015771211256026744014535 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * ft.c * This module handles the file transfer dialogs. */ #include "globals.h" #if defined(X3270_FT) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #include #include #include #include #include #include #include #include #endif /*]*/ #include #include "appres.h" #include "actionsc.h" #include "charsetc.h" #include "ft_cutc.h" #include "ft_dftc.h" #include "ftc.h" #include "dialogc.h" #include "hostc.h" #if defined(C3270) || defined(WC3270) /*[*/ #include "icmdc.h" #endif /*]*/ #include "kybdc.h" #include "macrosc.h" #include "objects.h" #include "popupsc.h" #include "screenc.h" #include "tablesc.h" #include "telnetc.h" #include "utilc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ /* Macros. */ #define eos(s) strchr((s), '\0') #if defined(X3270_DISPLAY) /*[*/ #define FILE_WIDTH 300 /* width of file name widgets */ #define MARGIN 3 /* distance from margins to widgets */ #define CLOSE_VGAP 0 /* distance between paired toggles */ #define FAR_VGAP 10 /* distance between single toggles and groups */ #define BUTTON_GAP 5 /* horizontal distance between buttons */ #define COLUMN_GAP 40 /* distance between columns */ #endif /*]*/ #define BN (Boolean *)NULL /* Externals. */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ extern Pixmap diamond; extern Pixmap no_diamond; extern Pixmap null; extern Pixmap dot; extern Pixmap no_dot; #endif /*]*/ /* Globals. */ enum ft_state ft_state = FT_NONE; /* File transfer state */ char *ft_local_filename; /* Local file to transfer to/from */ FILE *ft_local_file = (FILE *)NULL; /* File descriptor for local file */ Boolean ft_last_cr = False; /* CR was last char in local file */ Boolean ascii_flag = True; /* Convert to ascii */ Boolean cr_flag = True; /* Add crlf to each line */ Boolean remap_flag = True; /* Remap ASCII<->EBCDIC */ unsigned long ft_length = 0; /* Length of transfer */ /* Statics. */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Widget ft_dialog, ft_shell, local_file, host_file; static Widget lrecl_widget, blksize_widget; static Widget primspace_widget, secspace_widget; static Widget send_toggle, receive_toggle; static Widget vm_toggle, tso_toggle; static Widget ascii_toggle, binary_toggle; static Widget cr_widget; static Widget remap_widget; static Widget buffersize_widget; #endif /*]*/ static char *ft_host_filename; /* Host file to transfer to/from */ static Boolean receive_flag = True; /* Current transfer is receive */ static Boolean append_flag = False; /* Append transfer */ static Boolean vm_flag = False; /* VM Transfer flag */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Widget recfm_options[5]; static Widget units_options[5]; static struct toggle_list recfm_toggles = { recfm_options }; static struct toggle_list units_toggles = { units_options }; #endif /*]*/ static enum recfm { DEFAULT_RECFM, RECFM_FIXED, RECFM_VARIABLE, RECFM_UNDEFINED } recfm = DEFAULT_RECFM; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Boolean recfm_default = True; static enum recfm r_default_recfm = DEFAULT_RECFM; static enum recfm r_fixed = RECFM_FIXED; static enum recfm r_variable = RECFM_VARIABLE; static enum recfm r_undefined = RECFM_UNDEFINED; #endif /*]*/ static enum units { DEFAULT_UNITS, TRACKS, CYLINDERS, AVBLOCK } units = DEFAULT_UNITS; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Boolean units_default = True; static enum units u_default_units = DEFAULT_UNITS; static enum units u_tracks = TRACKS; static enum units u_cylinders = CYLINDERS; static enum units u_avblock = AVBLOCK; #endif /*]*/ static Boolean allow_overwrite = False; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static sr_t *ft_sr = (sr_t *)NULL; static Widget progress_shell, from_file, to_file; static Widget ft_status, waiting, aborting; static String status_string; #endif /*]*/ static struct timeval t0; /* Starting time */ static Boolean ft_is_cut; /* File transfer is CUT-style */ /* Translation table: "ASCII" to EBCDIC, as seen by IND$FILE. */ unsigned char i_asc2ft[256] = { 0x00,0x01,0x02,0x03,0x37,0x2d,0x2e,0x2f,0x16,0x05,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x3c,0x3d,0x32,0x26,0x18,0x19,0x3f,0x27,0x1c,0x1d,0x1e,0x1f, 0x40,0x5a,0x7f,0x7b,0x5b,0x6c,0x50,0x7d,0x4d,0x5d,0x5c,0x4e,0x6b,0x60,0x4b,0x61, 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0x7a,0x5e,0x4c,0x7e,0x6e,0x6f, 0x7c,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6, 0xd7,0xd8,0xd9,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0x4a,0xe0,0x4f,0x5f,0x6d, 0x79,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x91,0x92,0x93,0x94,0x95,0x96, 0x97,0x98,0x99,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xc0,0x6a,0xd0,0xa1,0x07, 0x20,0x21,0x22,0x23,0x24,0x15,0x06,0x17,0x28,0x29,0x2a,0x2b,0x2c,0x09,0x0a,0x1b, 0x30,0x31,0x1a,0x33,0x34,0x35,0x36,0x08,0x38,0x39,0x3a,0x3b,0x04,0x14,0x3e,0xe1, 0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x51,0x52,0x53,0x54,0x55,0x56,0x57, 0x58,0x59,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x70,0x71,0x72,0x73,0x74,0x75, 0x76,0x77,0x78,0x80,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x9a,0x9b,0x9c,0x9d,0x9e, 0x9f,0xa0,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7, 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xda,0xdb, 0xdc,0xdd,0xde,0xdf,0xea,0xeb,0xec,0xed,0xee,0xef,0xfa,0xfb,0xfc,0xfd,0xfe,0xff}; /* Translation table: EBCDIC to "ASCII", as seen by IND$FILE. */ unsigned char i_ft2asc[256] = { 0x00,0x01,0x02,0x03,0x9c,0x09,0x86,0x7f,0x97,0x8d,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x9d,0x85,0x08,0x87,0x18,0x19,0x92,0x8f,0x1c,0x1d,0x1e,0x1f, 0x80,0x81,0x82,0x83,0x84,0x00,0x17,0x1b,0x88,0x89,0x8a,0x8b,0x8c,0x05,0x06,0x07, 0x90,0x91,0x16,0x93,0x94,0x95,0x96,0x04,0x98,0x99,0x9a,0x9b,0x14,0x15,0x9e,0x1a, 0x20,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0x5b,0x2e,0x3c,0x28,0x2b,0x5d, 0x26,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0x21,0x24,0x2a,0x29,0x3b,0x5e, 0x2d,0x2f,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0x7c,0x2c,0x25,0x5f,0x3e,0x3f, 0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,0x60,0x3a,0x23,0x40,0x27,0x3d,0x22, 0xc3,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9, 0xca,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0xcb,0xcc,0xcd,0xce,0xcf,0xd0, 0xd1,0x7e,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7, 0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7, 0x7b,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0xe8,0xe9,0xea,0xeb,0xec,0xed, 0x7d,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0xee,0xef,0xf0,0xf1,0xf2,0xf3, 0x5c,0x9f,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9, 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xfa,0xfb,0xfc,0xfd,0xfe,0xff}; #if defined(X3270_DBCS) /*[*/ enum ftd ft_dbcs_state = FT_DBCS_NONE; unsigned char ft_dbcs_byte1; Boolean ft_last_dbcs = False; #endif /*]*/ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Widget overwrite_shell; #endif /*]*/ static Boolean ft_is_action; static unsigned long ft_start_id = 0; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static void ft_cancel(Widget w, XtPointer client_data, XtPointer call_data); static void ft_popup_callback(Widget w, XtPointer client_data, XtPointer call_data); static void ft_popup_init(void); static int ft_start(void); static void ft_start_callback(Widget w, XtPointer call_parms, XtPointer call_data); static void overwrite_cancel_callback(Widget w, XtPointer client_data, XtPointer call_data); static void overwrite_okay_callback(Widget w, XtPointer client_data, XtPointer call_data); static void overwrite_popdown(Widget w, XtPointer client_data, XtPointer call_data); static void overwrite_popup_init(void); static void popup_overwrite(void); static void popup_progress(void); static void progress_cancel_callback(Widget w, XtPointer client_data, XtPointer call_data); static void progress_popup_callback(Widget w, XtPointer client_data, XtPointer call_data); static void progress_popup_init(void); static void recfm_callback(Widget w, XtPointer user_data, XtPointer call_data); static void toggle_append(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_ascii(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_cr(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_remap(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_receive(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_vm(Widget w, XtPointer client_data, XtPointer call_data); static void units_callback(Widget w, XtPointer user_data, XtPointer call_data); #endif /*]*/ static void ft_connected(Boolean ignored); static void ft_in3270(Boolean ignored); /* Main external entry point. */ #if !defined(X3270_DISPLAY) || !defined(X3270_MENUS) /*[*/ void ft_init(void) { /* Register for state changes. */ register_schange(ST_CONNECT, ft_connected); register_schange(ST_3270_MODE, ft_in3270); } #endif /*]*/ /* Return the right value for fopen()ing the local file. */ static char * local_fflag(void) { static char ret[3]; int nr = 0; ret[nr++] = receive_flag? (append_flag? 'a': 'w' ): 'r'; if (!ascii_flag) ret[nr++] = 'b'; ret[nr] = '\0'; return ret; } /* Timeout function for stalled transfers. */ static void ft_didnt_start(void) { if (ft_local_file != NULL) { fclose(ft_local_file); ft_local_file = NULL; if (receive_flag && !append_flag) unlink(ft_local_filename); } allow_overwrite = False; ft_complete(get_message("ftStartTimeout")); sms_continue(); } #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ /* "File Transfer" dialog. */ /* * Pop up the "Transfer" menu. * Called back from the "File Transfer" option on the File menu. */ void popup_ft(Widget w _is_unused, XtPointer call_parms _is_unused, XtPointer call_data _is_unused) { /* Initialize it. */ if (ft_shell == (Widget)NULL) ft_popup_init(); /* Pop it up. */ dialog_set(&ft_sr, ft_dialog); popup_popup(ft_shell, XtGrabNone); } /* Initialize the transfer pop-up. */ static void ft_popup_init(void) { Widget w; Widget cancel_button; Widget local_label, host_label; Widget append_widget; Widget lrecl_label, blksize_label, primspace_label, secspace_label; Widget h_ref = (Widget)NULL; Dimension d1; Dimension maxw = 0; Widget recfm_label, units_label; Widget buffersize_label; Widget start_button; char buflen_buf[128]; /* Register for state changes. */ register_schange(ST_CONNECT, ft_connected); register_schange(ST_3270_MODE, ft_in3270); /* Prep the dialog functions. */ dialog_set(&ft_sr, ft_dialog); /* Create the menu shell. */ ft_shell = XtVaCreatePopupShell( "ftPopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(ft_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(ft_shell, XtNpopupCallback, ft_popup_callback, (XtPointer)NULL); /* Create the form within the shell. */ ft_dialog = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, ft_shell, NULL); /* Create the file name widgets. */ local_label = XtVaCreateManagedWidget( "local", labelWidgetClass, ft_dialog, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); local_file = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNvertDistance, FAR_VGAP, XtNfromHoriz, local_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(local_label, local_file, XtNheight); w = XawTextGetSource(local_file); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_unixfile); dialog_register_sensitivity(local_file, BN, False, BN, False, BN, False); host_label = XtVaCreateManagedWidget( "host", labelWidgetClass, ft_dialog, XtNfromVert, local_label, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); host_file = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNdisplayCaret, False, XtNfromVert, local_label, XtNvertDistance, 3, XtNfromHoriz, host_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(host_label, host_file, XtNheight); dialog_match_dimension(local_label, host_label, XtNwidth); w = XawTextGetSource(host_file); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_hostfile); dialog_register_sensitivity(host_file, BN, False, BN, False, BN, False); /* Create the left column. */ /* Create send/receive toggles. */ send_toggle = XtVaCreateManagedWidget( "send", commandWidgetClass, ft_dialog, XtNfromVert, host_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(send_toggle, receive_flag ? no_diamond : diamond); XtAddCallback(send_toggle, XtNcallback, toggle_receive, (XtPointer)&s_false); receive_toggle = XtVaCreateManagedWidget( "receive", commandWidgetClass, ft_dialog, XtNfromVert, send_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(receive_toggle, receive_flag ? diamond : no_diamond); XtAddCallback(receive_toggle, XtNcallback, toggle_receive, (XtPointer)&s_true); /* Create ASCII/binary toggles. */ ascii_toggle = XtVaCreateManagedWidget( "ascii", commandWidgetClass, ft_dialog, XtNfromVert, receive_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(ascii_toggle, ascii_flag ? diamond : no_diamond); XtAddCallback(ascii_toggle, XtNcallback, toggle_ascii, (XtPointer)&s_true); binary_toggle = XtVaCreateManagedWidget( "binary", commandWidgetClass, ft_dialog, XtNfromVert, ascii_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(binary_toggle, ascii_flag ? no_diamond : diamond); XtAddCallback(binary_toggle, XtNcallback, toggle_ascii, (XtPointer)&s_false); /* Create append toggle. */ append_widget = XtVaCreateManagedWidget( "append", commandWidgetClass, ft_dialog, XtNfromVert, binary_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(append_widget, append_flag ? dot : no_dot); XtAddCallback(append_widget, XtNcallback, toggle_append, NULL); /* Set up the recfm group. */ recfm_label = XtVaCreateManagedWidget( "file", labelWidgetClass, ft_dialog, XtNfromVert, append_widget, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_register_sensitivity(recfm_label, &receive_flag, False, BN, False, BN, False); recfm_options[0] = XtVaCreateManagedWidget( "recfmDefault", commandWidgetClass, ft_dialog, XtNfromVert, recfm_label, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[0], (recfm == DEFAULT_RECFM) ? diamond : no_diamond); XtAddCallback(recfm_options[0], XtNcallback, recfm_callback, (XtPointer)&r_default_recfm); dialog_register_sensitivity(recfm_options[0], &receive_flag, False, BN, False, BN, False); recfm_options[1] = XtVaCreateManagedWidget( "fixed", commandWidgetClass, ft_dialog, XtNfromVert, recfm_options[0], XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[1], (recfm == RECFM_FIXED) ? diamond : no_diamond); XtAddCallback(recfm_options[1], XtNcallback, recfm_callback, (XtPointer)&r_fixed); dialog_register_sensitivity(recfm_options[1], &receive_flag, False, BN, False, BN, False); recfm_options[2] = XtVaCreateManagedWidget( "variable", commandWidgetClass, ft_dialog, XtNfromVert, recfm_options[1], XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[2], (recfm == RECFM_VARIABLE) ? diamond : no_diamond); XtAddCallback(recfm_options[2], XtNcallback, recfm_callback, (XtPointer)&r_variable); dialog_register_sensitivity(recfm_options[2], &receive_flag, False, BN, False, BN, False); recfm_options[3] = XtVaCreateManagedWidget( "undefined", commandWidgetClass, ft_dialog, XtNfromVert, recfm_options[2], XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[3], (recfm == RECFM_UNDEFINED) ? diamond : no_diamond); XtAddCallback(recfm_options[3], XtNcallback, recfm_callback, (XtPointer)&r_undefined); dialog_register_sensitivity(recfm_options[3], &receive_flag, False, &vm_flag, False, BN, False); lrecl_label = XtVaCreateManagedWidget( "lrecl", labelWidgetClass, ft_dialog, XtNfromVert, recfm_options[3], XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_register_sensitivity(lrecl_label, &receive_flag, False, &recfm_default, False, BN, False); lrecl_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, recfm_options[3], XtNvertDistance, 3, XtNfromHoriz, lrecl_label, XtNhorizDistance, MARGIN, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(lrecl_label, lrecl_widget, XtNheight); w = XawTextGetSource(lrecl_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(lrecl_widget, &receive_flag, False, &recfm_default, False, BN, False); blksize_label = XtVaCreateManagedWidget( "blksize", labelWidgetClass, ft_dialog, XtNfromVert, lrecl_widget, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_match_dimension(blksize_label, lrecl_label, XtNwidth); dialog_register_sensitivity(blksize_label, &receive_flag, False, &recfm_default, False, BN, False); blksize_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, lrecl_widget, XtNvertDistance, 3, XtNfromHoriz, blksize_label, XtNhorizDistance, MARGIN, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(blksize_label, blksize_widget, XtNheight); w = XawTextGetSource(blksize_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(blksize_widget, &receive_flag, False, &recfm_default, False, BN, False); /* Find the widest widget in the left column. */ XtVaGetValues(send_toggle, XtNwidth, &maxw, NULL); h_ref = send_toggle; #define REMAX(w) { \ XtVaGetValues((w), XtNwidth, &d1, NULL); \ if (d1 > maxw) { \ maxw = d1; \ h_ref = (w); \ } \ } REMAX(receive_toggle); REMAX(ascii_toggle); REMAX(binary_toggle); REMAX(append_widget); #undef REMAX /* Create the right column buttons. */ /* Create VM/TSO toggle. */ vm_toggle = XtVaCreateManagedWidget( "vm", commandWidgetClass, ft_dialog, XtNfromVert, host_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(vm_toggle, vm_flag ? diamond : no_diamond); XtAddCallback(vm_toggle, XtNcallback, toggle_vm, (XtPointer)&s_true); tso_toggle = XtVaCreateManagedWidget( "tso", commandWidgetClass, ft_dialog, XtNfromVert, vm_toggle, XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(tso_toggle, vm_flag ? no_diamond : diamond); XtAddCallback(tso_toggle, XtNcallback, toggle_vm, (XtPointer)&s_false); /* Create CR toggle. */ cr_widget = XtVaCreateManagedWidget( "cr", commandWidgetClass, ft_dialog, XtNfromVert, tso_toggle, XtNvertDistance, FAR_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(cr_widget, cr_flag ? dot : no_dot); XtAddCallback(cr_widget, XtNcallback, toggle_cr, 0); dialog_register_sensitivity(cr_widget, BN, False, BN, False, BN, False); /* Create remap toggle. */ remap_widget = XtVaCreateManagedWidget( "remap", commandWidgetClass, ft_dialog, XtNfromVert, cr_widget, XtNfromHoriz, h_ref, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(remap_widget, remap_flag ? dot : no_dot); XtAddCallback(remap_widget, XtNcallback, toggle_remap, NULL); dialog_register_sensitivity(remap_widget, &ascii_flag, True, BN, False, BN, False); /* Set up the Units group. */ units_label = XtVaCreateManagedWidget( "units", labelWidgetClass, ft_dialog, XtNfromVert, append_widget, XtNvertDistance, FAR_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_register_sensitivity(units_label, &receive_flag, False, &vm_flag, False, BN, False); units_options[0] = XtVaCreateManagedWidget( "spaceDefault", commandWidgetClass, ft_dialog, XtNfromVert, units_label, XtNvertDistance, 3, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[0], (units == DEFAULT_UNITS) ? diamond : no_diamond); XtAddCallback(units_options[0], XtNcallback, units_callback, (XtPointer)&u_default_units); dialog_register_sensitivity(units_options[0], &receive_flag, False, &vm_flag, False, BN, False); units_options[1] = XtVaCreateManagedWidget( "tracks", commandWidgetClass, ft_dialog, XtNfromVert, units_options[0], XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[1], (units == TRACKS) ? diamond : no_diamond); XtAddCallback(units_options[1], XtNcallback, units_callback, (XtPointer)&u_tracks); dialog_register_sensitivity(units_options[1], &receive_flag, False, &vm_flag, False, BN, False); units_options[2] = XtVaCreateManagedWidget( "cylinders", commandWidgetClass, ft_dialog, XtNfromVert, units_options[1], XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[2], (units == CYLINDERS) ? diamond : no_diamond); XtAddCallback(units_options[2], XtNcallback, units_callback, (XtPointer)&u_cylinders); dialog_register_sensitivity(units_options[2], &receive_flag, False, &vm_flag, False, BN, False); units_options[3] = XtVaCreateManagedWidget( "avblock", commandWidgetClass, ft_dialog, XtNfromVert, units_options[2], XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[3], (units == AVBLOCK) ? diamond : no_diamond); XtAddCallback(units_options[3], XtNcallback, units_callback, (XtPointer)&u_avblock); dialog_register_sensitivity(units_options[3], &receive_flag, False, &vm_flag, False, BN, False); primspace_label = XtVaCreateManagedWidget( "primspace", labelWidgetClass, ft_dialog, XtNfromVert, units_options[3], XtNvertDistance, 3, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_register_sensitivity(primspace_label, &receive_flag, False, &vm_flag, False, &units_default, False); primspace_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, units_options[3], XtNvertDistance, 3, XtNfromHoriz, primspace_label, XtNhorizDistance, 0, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(primspace_label, primspace_widget, XtNheight); w = XawTextGetSource(primspace_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(primspace_widget, &receive_flag, False, &vm_flag, False, &units_default, False); secspace_label = XtVaCreateManagedWidget( "secspace", labelWidgetClass, ft_dialog, XtNfromVert, primspace_widget, XtNvertDistance, 3, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_match_dimension(primspace_label, secspace_label, XtNwidth); dialog_register_sensitivity(secspace_label, &receive_flag, False, &vm_flag, False, &units_default, False); secspace_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, primspace_widget, XtNvertDistance, 3, XtNfromHoriz, secspace_label, XtNhorizDistance, 0, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(secspace_label, secspace_widget, XtNheight); w = XawTextGetSource(secspace_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(secspace_widget, &receive_flag, False, &vm_flag, False, &units_default, False); /* Set up the DFT buffer size. */ buffersize_label = XtVaCreateManagedWidget( "buffersize", labelWidgetClass, ft_dialog, XtNfromVert, blksize_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); buffersize_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, blksize_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, buffersize_label, XtNhorizDistance, 0, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(buffersize_label, buffersize_widget, XtNheight); w = XawTextGetSource(buffersize_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(buffersize_widget, BN, False, BN, False, BN, False); set_dft_buffersize(); (void) sprintf(buflen_buf, "%d", dft_buffersize); XtVaSetValues(buffersize_widget, XtNstring, buflen_buf, NULL); /* Set up the buttons at the bottom. */ start_button = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, ft_dialog, XtNfromVert, buffersize_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(start_button, XtNcallback, ft_start_callback, (XtPointer)NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, ft_dialog, XtNfromVert, buffersize_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, start_button, XtNhorizDistance, BUTTON_GAP, NULL); XtAddCallback(cancel_button, XtNcallback, ft_cancel, 0); } /* Callbacks for all the transfer widgets. */ /* Transfer pop-up popping up. */ static void ft_popup_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Set the focus to the local file widget. */ PA_dialog_focus_action(local_file, (XEvent *)NULL, (String *)NULL, (Cardinal *)NULL); /* Disallow overwrites. */ allow_overwrite = False; } /* Cancel button pushed. */ static void ft_cancel(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(ft_shell); } /* recfm options. */ static void recfm_callback(Widget w, XtPointer user_data, XtPointer call_data _is_unused) { recfm = *(enum recfm *)user_data; recfm_default = (recfm == DEFAULT_RECFM); dialog_check_sensitivity(&recfm_default); dialog_flip_toggles(&recfm_toggles, w); } /* Units options. */ static void units_callback(Widget w, XtPointer user_data, XtPointer call_data _is_unused) { units = *(enum units *)user_data; units_default = (units == DEFAULT_UNITS); dialog_check_sensitivity(&units_default); dialog_flip_toggles(&units_toggles, w); } /* OK button pushed. */ static void ft_start_callback(Widget w _is_unused, XtPointer call_parms _is_unused, XtPointer call_data _is_unused) { if (ft_start()) { XtPopdown(ft_shell); popup_progress(); } } /* Send/receive options. */ static void toggle_receive(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ receive_flag = *(Boolean *)client_data; /* Change the widget states. */ dialog_mark_toggle(receive_toggle, receive_flag ? diamond : no_diamond); dialog_mark_toggle(send_toggle, receive_flag ? no_diamond : diamond); dialog_check_sensitivity(&receive_flag); } /* Ascii/binary options. */ static void toggle_ascii(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag. */ ascii_flag = *(Boolean *)client_data; /* Change the widget states. */ dialog_mark_toggle(ascii_toggle, ascii_flag ? diamond : no_diamond); dialog_mark_toggle(binary_toggle, ascii_flag ? no_diamond : diamond); cr_flag = ascii_flag; remap_flag = ascii_flag; dialog_mark_toggle(cr_widget, cr_flag ? dot : no_dot); dialog_mark_toggle(remap_widget, remap_flag ? dot : no_dot); dialog_check_sensitivity(&ascii_flag); } /* CR option. */ static void toggle_cr(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle the cr flag */ cr_flag = !cr_flag; dialog_mark_toggle(w, cr_flag ? dot : no_dot); } /* Append option. */ static void toggle_append(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle Append Flag */ append_flag = !append_flag; dialog_mark_toggle(w, append_flag ? dot : no_dot); } /* Remap option. */ static void toggle_remap(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle Remap Flag */ remap_flag = !remap_flag; dialog_mark_toggle(w, remap_flag ? dot : no_dot); } /* TSO/VM option. */ static void toggle_vm(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle the flag. */ vm_flag = *(Boolean *)client_data; /* Change the widget states. */ dialog_mark_toggle(vm_toggle, vm_flag ? diamond : no_diamond); dialog_mark_toggle(tso_toggle, vm_flag ? no_diamond : diamond); if (vm_flag) { if (recfm == RECFM_UNDEFINED) { recfm = DEFAULT_RECFM; recfm_default = True; dialog_flip_toggles(&recfm_toggles, recfm_toggles.widgets[0]); } } dialog_check_sensitivity(&vm_flag); } /* * Begin the transfer. * Returns 1 if the transfer has started, 0 otherwise. */ static int ft_start(void) { char opts[80]; char *op = opts + 1; char *cmd; String buffersize, lrecl, blksize, primspace, secspace; char updated_buffersize[128]; unsigned flen; ft_is_action = False; #if defined(X3270_DBCS) /*[*/ ft_dbcs_state = FT_DBCS_NONE; #endif /*]*/ /* Get the DFT buffer size. */ XtVaGetValues(buffersize_widget, XtNstring, &buffersize, NULL); if (*buffersize) dft_buffersize = atoi(buffersize); else dft_buffersize = 0; set_dft_buffersize(); (void) sprintf(updated_buffersize, "%d", dft_buffersize); XtVaSetValues(buffersize_widget, XtNstring, updated_buffersize, NULL); /* Get the host file from its widget */ XtVaGetValues(host_file, XtNstring, &ft_host_filename, NULL); if (!*ft_host_filename) return 0; /* XXX: probably more validation to do here */ /* Get the local file from it widget */ XtVaGetValues(local_file, XtNstring, &ft_local_filename, NULL); if (!*ft_local_filename) return 0; /* See if the local file can be overwritten. */ if (receive_flag && !append_flag && !allow_overwrite) { ft_local_file = fopen(ft_local_filename, ascii_flag? "r": "rb"); if (ft_local_file != (FILE *)NULL) { (void) fclose(ft_local_file); ft_local_file = (FILE *)NULL; popup_overwrite(); return 0; } } /* Open the local file. */ ft_local_file = fopen(ft_local_filename, local_fflag()); if (ft_local_file == (FILE *)NULL) { allow_overwrite = False; popup_an_errno(errno, "Local file '%s'", ft_local_filename); return 0; } /* Build the ind$file command */ op[0] = '\0'; if (ascii_flag) strcat(op, " ascii"); if (cr_flag) strcat(op, " crlf"); if (append_flag && !receive_flag) strcat(op, " append"); if (!receive_flag) { if (!vm_flag) { if (recfm != DEFAULT_RECFM) { /* RECFM Entered, process */ strcat(op, " recfm("); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; case RECFM_UNDEFINED: strcat(op, "u"); break; default: break; }; strcat(op, ")"); XtVaGetValues(lrecl_widget, XtNstring, &lrecl, NULL); if (strlen(lrecl) > 0) sprintf(eos(op), " lrecl(%s)", lrecl); XtVaGetValues(blksize_widget, XtNstring, &blksize, NULL); if (strlen(blksize) > 0) sprintf(eos(op), " blksize(%s)", blksize); } if (units != DEFAULT_UNITS) { /* Space Entered, processs it */ switch (units) { case TRACKS: strcat(op, " tracks"); break; case CYLINDERS: strcat(op, " cylinders"); break; case AVBLOCK: strcat(op, " avblock"); break; default: break; }; XtVaGetValues(primspace_widget, XtNstring, &primspace, NULL); if (strlen(primspace) > 0) { sprintf(eos(op), " space(%s", primspace); XtVaGetValues(secspace_widget, XtNstring, &secspace, NULL); if (strlen(secspace) > 0) sprintf(eos(op), ",%s", secspace); strcat(op, ")"); } } } else { if (recfm != DEFAULT_RECFM) { strcat(op, " recfm "); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; default: break; }; XtVaGetValues(lrecl_widget, XtNstring, &lrecl, NULL); if (strlen(lrecl) > 0) sprintf(eos(op), " lrecl %s", lrecl); } } } /* Insert the '(' for VM options. */ if (strlen(op) > 0 && vm_flag) { opts[0] = ' '; opts[1] = '('; op = opts; } /* Build the whole command. */ cmd = xs_buffer("ind\\e005Bfile %s %s%s\\n", receive_flag ? "get" : "put", ft_host_filename, op); /* Erase the line and enter the command. */ flen = kybd_prime(); if (!flen || flen < strlen(cmd) - 1) { XtFree(cmd); if (ft_local_file != NULL) { fclose(ft_local_file); ft_local_file = NULL; if (receive_flag && !append_flag) unlink(ft_local_filename); } popup_an_error("%s", get_message("ftUnable")); allow_overwrite = False; return 0; } (void) emulate_input(cmd, strlen(cmd), False); XtFree(cmd); /* Get this thing started. */ ft_state = FT_AWAIT_ACK; ft_is_cut = False; ft_last_cr = False; #if defined(X3270_DBCS) /*[*/ ft_last_dbcs = False; #endif /*]*/ return 1; } /* "Transfer in Progress" pop-up. */ /* Pop up the "in progress" pop-up. */ static void popup_progress(void) { /* Initialize it. */ if (progress_shell == (Widget)NULL) progress_popup_init(); /* Pop it up. */ popup_popup(progress_shell, XtGrabNone); } /* Initialize the "in progress" pop-up. */ static void progress_popup_init(void) { Widget progress_pop, from_label, to_label, cancel_button; /* Create the shell. */ progress_shell = XtVaCreatePopupShell( "ftProgressPopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(progress_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(progress_shell, XtNpopupCallback, progress_popup_callback, (XtPointer)NULL); /* Create a form structure to contain the other stuff */ progress_pop = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, progress_shell, NULL); /* Create the widgets. */ from_label = XtVaCreateManagedWidget( "fromLabel", labelWidgetClass, progress_pop, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); from_file = XtVaCreateManagedWidget( "filename", labelWidgetClass, progress_pop, XtNwidth, FILE_WIDTH, XtNvertDistance, FAR_VGAP, XtNfromHoriz, from_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(from_label, from_file, XtNheight); to_label = XtVaCreateManagedWidget( "toLabel", labelWidgetClass, progress_pop, XtNfromVert, from_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); to_file = XtVaCreateManagedWidget( "filename", labelWidgetClass, progress_pop, XtNwidth, FILE_WIDTH, XtNfromVert, from_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, to_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(to_label, to_file, XtNheight); dialog_match_dimension(from_label, to_label, XtNwidth); waiting = XtVaCreateManagedWidget( "waiting", labelWidgetClass, progress_pop, XtNfromVert, to_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNmappedWhenManaged, False, NULL); ft_status = XtVaCreateManagedWidget( "status", labelWidgetClass, progress_pop, XtNfromVert, to_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNresizable, True, XtNmappedWhenManaged, False, NULL); XtVaGetValues(ft_status, XtNlabel, &status_string, NULL); status_string = XtNewString(status_string); aborting = XtVaCreateManagedWidget( "aborting", labelWidgetClass, progress_pop, XtNfromVert, to_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNmappedWhenManaged, False, NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, progress_pop, XtNfromVert, ft_status, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(cancel_button, XtNcallback, progress_cancel_callback, NULL); } /* Callbacks for the "in progress" pop-up. */ /* In-progress pop-up popped up. */ static void progress_popup_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtVaSetValues(from_file, XtNlabel, receive_flag ? ft_host_filename : ft_local_filename, NULL); XtVaSetValues(to_file, XtNlabel, receive_flag ? ft_local_filename : ft_host_filename, NULL); switch (ft_state) { case FT_AWAIT_ACK: XtUnmapWidget(ft_status); XtUnmapWidget(aborting); XtMapWidget(waiting); break; case FT_RUNNING: XtUnmapWidget(waiting); XtUnmapWidget(aborting); XtMapWidget(ft_status); break; case FT_ABORT_WAIT: case FT_ABORT_SENT: XtUnmapWidget(waiting); XtUnmapWidget(ft_status); XtMapWidget(aborting); break; default: break; } } /* In-progress "cancel" button. */ static void progress_cancel_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { if (ft_state == FT_RUNNING) { ft_state = FT_ABORT_WAIT; XtUnmapWidget(waiting); XtUnmapWidget(ft_status); XtMapWidget(aborting); } else { /* Impatient user or hung host -- just clean up. */ ft_complete(get_message("ftUserCancel")); } } /* "Overwrite existing?" pop-up. */ /* Pop up the "overwrite" pop-up. */ static void popup_overwrite(void) { /* Initialize it. */ if (overwrite_shell == (Widget)NULL) overwrite_popup_init(); /* Pop it up. */ popup_popup(overwrite_shell, XtGrabExclusive); } /* Initialize the "overwrite" pop-up. */ static void overwrite_popup_init(void) { Widget overwrite_pop, overwrite_name, okay_button, cancel_button; String overwrite_string, label, lf; Dimension d; /* Create the shell. */ overwrite_shell = XtVaCreatePopupShell( "ftOverwritePopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(overwrite_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(overwrite_shell, XtNpopdownCallback, overwrite_popdown, (XtPointer)NULL); /* Create a form structure to contain the other stuff */ overwrite_pop = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, overwrite_shell, NULL); /* Create the widgets. */ overwrite_name = XtVaCreateManagedWidget( "overwriteName", labelWidgetClass, overwrite_pop, XtNvertDistance, MARGIN, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNresizable, True, NULL); XtVaGetValues(overwrite_name, XtNlabel, &overwrite_string, NULL); XtVaGetValues(local_file, XtNstring, &lf, NULL); label = xs_buffer(overwrite_string, lf); XtVaSetValues(overwrite_name, XtNlabel, label, NULL); XtFree(label); XtVaGetValues(overwrite_name, XtNwidth, &d, NULL); if ((Dimension)(d + 20) < 400) d = 400; else d += 20; XtVaSetValues(overwrite_name, XtNwidth, d, NULL); XtVaGetValues(overwrite_name, XtNheight, &d, NULL); XtVaSetValues(overwrite_name, XtNheight, d + 20, NULL); okay_button = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, overwrite_pop, XtNfromVert, overwrite_name, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(okay_button, XtNcallback, overwrite_okay_callback, NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, overwrite_pop, XtNfromVert, overwrite_name, XtNvertDistance, FAR_VGAP, XtNfromHoriz, okay_button, XtNhorizDistance, BUTTON_GAP, NULL); XtAddCallback(cancel_button, XtNcallback, overwrite_cancel_callback, NULL); } /* Overwrite "okay" button. */ static void overwrite_okay_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(overwrite_shell); allow_overwrite = True; if (ft_start()) { XtPopdown(ft_shell); popup_progress(); } } /* Overwrite "cancel" button. */ static void overwrite_cancel_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(overwrite_shell); } /* Overwrite pop-up popped down. */ static void overwrite_popdown(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtDestroyWidget(overwrite_shell); overwrite_shell = (Widget)NULL; } #endif /*]*/ /* External entry points called by ft_dft and ft_cut. */ /* Pop up a message, end the transfer. */ void ft_complete(const char *errmsg) { /* Close the local file. */ if (ft_local_file != (FILE *)NULL && fclose(ft_local_file) < 0) popup_an_errno(errno, "close(%s)", ft_local_filename); ft_local_file = (FILE *)NULL; /* Clean up the state. */ ft_state = FT_NONE; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ /* Pop down the in-progress shell. */ if (!ft_is_action) XtPopdown(progress_shell); #endif /*]*/ /* Pop up the text. */ if (errmsg != CN) { char *msg_copy = NewString(errmsg); /* Make sure the error message will fit on the display. */ if (strlen(msg_copy) > 50 && strchr(msg_copy, '\n') == CN) { char *s = msg_copy + 50; while (s > msg_copy && *s != ' ') s--; if (s > msg_copy) *s = '\n'; /* yikes! */ } #if defined(C3270) /*[*/ printf("\r%79s\n", ""); fflush(stdout); #endif /*]*/ popup_an_error("%s", msg_copy); Free(msg_copy); } else { struct timeval t1; double bytes_sec; char *buf; char kbuf[256]; (void) gettimeofday(&t1, (struct timezone *)NULL); bytes_sec = (double)ft_length / ((double)(t1.tv_sec - t0.tv_sec) + (double)(t1.tv_usec - t0.tv_usec) / 1.0e6); buf = Malloc(256); (void) sprintf(buf, get_message("ftComplete"), ft_length, display_scale(bytes_sec, kbuf, sizeof(kbuf)), ft_is_cut ? "CUT" : "DFT"); if (ft_is_action) { #if defined(C3270) /*[*/ printf("\r%79s\n", ""); fflush(stdout); #endif /*]*/ sms_info("%s", buf); sms_continue(); } #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ else popup_an_info("%s", buf); #endif /*]*/ Free(buf); } } /* Update the bytes-transferred count on the progress pop-up. */ void ft_update_length(void) { #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ char text_string[80]; /* Format the message */ if (!ft_is_action) { sprintf(text_string, status_string, ft_length); XtVaSetValues(ft_status, XtNlabel, text_string, NULL); } #endif /*]*/ #if defined(C3270) /*[*/ printf("\r%79s\rTransferred %lu bytes. ", "", ft_length); fflush(stdout); #endif /*]*/ } /* Process a transfer acknowledgement. */ void ft_running(Boolean is_cut) { if (ft_state == FT_AWAIT_ACK) { ft_state = FT_RUNNING; if (ft_start_id) { RemoveTimeOut(ft_start_id); ft_start_id = 0; } } ft_is_cut = is_cut; (void) gettimeofday(&t0, (struct timezone *)NULL); ft_length = 0; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ if (!ft_is_action) { XtUnmapWidget(waiting); ft_update_length(); XtMapWidget(ft_status); } #endif /*]*/ #if defined(C3270) /*[*/ ft_update_length(); #endif /*]*/ } /* Process a protocol-generated abort. */ void ft_aborting(void) { if (ft_state == FT_RUNNING || ft_state == FT_ABORT_WAIT) { ft_state = FT_ABORT_SENT; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ if (!ft_is_action) { XtUnmapWidget(waiting); XtUnmapWidget(ft_status); XtMapWidget(aborting); } #endif /*]*/ } } /* Process a disconnect abort. */ static void ft_connected(Boolean ignored _is_unused) { if (!CONNECTED && ft_state != FT_NONE) ft_complete(get_message("ftDisconnected")); } /* Process an abort from no longer being in 3270 mode. */ static void ft_in3270(Boolean ignored _is_unused) { if (!IN_3270 && ft_state != FT_NONE) ft_complete(get_message("ftNot3270")); } /* * Script/macro action for file transfer. * Transfer(option=value[,...]) * Options are: * Direction=send|receive default receive * HostFile=name required * LocalFile=name required * Host=[tso|vm] default tso * Mode=[ascii|binary] default ascii * Cr=[add|remove|keep] default add/remove * Remap=[yes|no] default yes * Exist=[keep|replace|append] default keep * Recfm=[default|fixed|variable|undefined] default default * Lrecl=n no default * Blksize=n no default * Allocation=[default|tracks|cylinders|avblock] default default * PrimarySpace=n no default * SecondarySpace=n no default */ static struct { const char *name; char *value; const char *keyword[4]; } tp[] = { { "Direction", CN, { "receive", "send" } }, { "HostFile" }, { "LocalFile" }, { "Host", CN, { "tso", "vm" } }, { "Mode", CN, { "ascii", "binary" } }, { "Cr", CN, { "auto", "remove", "add", "keep" } }, { "Remap", CN, { "yes", "no" } }, { "Exist", CN, { "keep", "replace", "append" } }, { "Recfm", CN, { "default", "fixed", "variable", "undefined" } }, { "Lrecl" }, { "Blksize" }, { "Allocation", CN, { "default", "tracks", "cylinders", "avblock" } }, { "PrimarySpace" }, { "SecondarySpace" }, { "BufferSize" }, { CN } }; enum ft_parm_name { PARM_DIRECTION, PARM_HOST_FILE, PARM_LOCAL_FILE, PARM_HOST, PARM_MODE, PARM_CR, PARM_REMAP, PARM_EXIST, PARM_RECFM, PARM_LRECL, PARM_BLKSIZE, PARM_ALLOCATION, PARM_PRIMARY_SPACE, PARM_SECONDARY_SPACE, PARM_BUFFER_SIZE, N_PARMS }; void Transfer_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int i, k; Cardinal j; long l; char *ptr; char opts[80]; char *op = opts + 1; char *cmd; unsigned flen; String *xparams = params; Cardinal xnparams = *num_params; action_debug(Transfer_action, event, params, num_params); ft_is_action = True; /* Make sure we're connected. */ if (!IN_3270) { popup_an_error("Not connected"); return; } #if defined(C3270) || defined(WC3270) /*[*/ /* Check for interactive mode. */ if (xnparams == 0 && escaped) { if (interactive_transfer(&xparams, &xnparams) < 0) { printf("\n"); fflush(stdout); action_output("Aborted"); return; } } #endif /*]*/ /* Set everything to the default. */ for (i = 0; i < N_PARMS; i++) { Free(tp[i].value); if (tp[i].keyword[0] != CN) tp[i].value = NewString(tp[i].keyword[0]); else tp[i].value = CN; } /* See what they specified. */ for (j = 0; j < xnparams; j++) { for (i = 0; i < N_PARMS; i++) { char *eq; int kwlen; eq = strchr(xparams[j], '='); if (eq == CN || eq == xparams[j] || !*(eq + 1)) { popup_an_error("Invalid option syntax: '%s'", xparams[j]); return; } kwlen = eq - xparams[j]; if (!strncasecmp(xparams[j], tp[i].name, kwlen) && !tp[i].name[kwlen]) { if (tp[i].keyword[0]) { for (k = 0; tp[i].keyword[k] != CN && k < 4; k++) { if (!strcasecmp(eq + 1, tp[i].keyword[k])) { break; } } if (k >= 4 || tp[i].keyword[k] == CN) { popup_an_error("Invalid option " "value: '%s'", eq + 1); return; } } else switch (i) { case PARM_LRECL: case PARM_BLKSIZE: case PARM_PRIMARY_SPACE: case PARM_SECONDARY_SPACE: case PARM_BUFFER_SIZE: l = strtol(eq + 1, &ptr, 10); if (ptr == eq + 1 || *ptr) { popup_an_error("Invalid option " "value: '%s'", eq + 1); return; } break; default: break; } tp[i].value = NewString(eq + 1); break; } } if (i >= N_PARMS) { popup_an_error("Unknown option: %s", xparams[j]); return; } } /* Check for required values. */ if (tp[PARM_HOST_FILE].value == CN) { popup_an_error("Missing 'HostFile' option"); return; } if (tp[PARM_LOCAL_FILE].value == CN) { popup_an_error("Missing 'LocalFile' option"); return; } /* * Start the transfer. Much of this is duplicated from ft_start() * and should be made common. */ if (tp[PARM_BUFFER_SIZE].value != CN) dft_buffersize = atoi(tp[PARM_BUFFER_SIZE].value); else dft_buffersize = 0; set_dft_buffersize(); receive_flag = !strcasecmp(tp[PARM_DIRECTION].value, "receive"); append_flag = !strcasecmp(tp[PARM_EXIST].value, "append"); allow_overwrite = !strcasecmp(tp[PARM_EXIST].value, "replace"); ascii_flag = !strcasecmp(tp[PARM_MODE].value, "ascii"); if (!strcasecmp(tp[PARM_CR].value, "auto")) { cr_flag = ascii_flag; } else { cr_flag = !strcasecmp(tp[PARM_CR].value, "remove") || !strcasecmp(tp[PARM_CR].value, "add"); } if (ascii_flag) remap_flag = !strcasecmp(tp[PARM_REMAP].value, "yes"); vm_flag = !strcasecmp(tp[PARM_HOST].value, "vm"); recfm = DEFAULT_RECFM; for (k = 0; tp[PARM_RECFM].keyword[k] != CN && k < 4; k++) { if (!strcasecmp(tp[PARM_RECFM].value, tp[PARM_RECFM].keyword[k])) { recfm = (enum recfm)k; break; } } units = DEFAULT_UNITS; for (k = 0; tp[PARM_ALLOCATION].keyword[k] != CN && k < 4; k++) { if (!strcasecmp(tp[PARM_ALLOCATION].value, tp[PARM_ALLOCATION].keyword[k])) { units = (enum units)k; break; } } ft_host_filename = tp[PARM_HOST_FILE].value; ft_local_filename = tp[PARM_LOCAL_FILE].value; /* See if the local file can be overwritten. */ if (receive_flag && !append_flag && !allow_overwrite) { ft_local_file = fopen(ft_local_filename, ascii_flag? "r": "rb"); if (ft_local_file != (FILE *)NULL) { (void) fclose(ft_local_file); popup_an_error("File exists"); return; } } /* Open the local file. */ ft_local_file = fopen(ft_local_filename, local_fflag()); if (ft_local_file == (FILE *)NULL) { popup_an_errno(errno, "Local file '%s'", ft_local_filename); return; } /* Build the ind$file command */ op[0] = '\0'; if (ascii_flag) strcat(op, " ascii"); if (cr_flag) strcat(op, " crlf"); if (append_flag && !receive_flag) strcat(op, " append"); if (!receive_flag) { if (!vm_flag) { if (recfm != DEFAULT_RECFM) { /* RECFM Entered, process */ strcat(op, " recfm("); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; case RECFM_UNDEFINED: strcat(op, "u"); break; default: break; }; strcat(op, ")"); if (tp[PARM_LRECL].value != CN) sprintf(eos(op), " lrecl(%s)", tp[PARM_LRECL].value); if (tp[PARM_BLKSIZE].value != CN) sprintf(eos(op), " blksize(%s)", tp[PARM_BLKSIZE].value); } if (units != DEFAULT_UNITS) { /* Space Entered, processs it */ switch (units) { case TRACKS: strcat(op, " tracks"); break; case CYLINDERS: strcat(op, " cylinders"); break; case AVBLOCK: strcat(op, " avblock"); break; default: break; }; if (tp[PARM_PRIMARY_SPACE].value != CN) { sprintf(eos(op), " space(%s", tp[PARM_PRIMARY_SPACE].value); if (tp[PARM_SECONDARY_SPACE].value) sprintf(eos(op), ",%s", tp[PARM_SECONDARY_SPACE].value); strcat(op, ")"); } } } else { if (recfm != DEFAULT_RECFM) { strcat(op, " recfm "); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; default: break; }; if (tp[PARM_LRECL].value) sprintf(eos(op), " lrecl %s", tp[PARM_LRECL].value); } } } /* Insert the '(' for VM options. */ if (strlen(op) > 0 && vm_flag) { opts[0] = ' '; opts[1] = '('; op = opts; } /* Build the whole command. */ cmd = xs_buffer("ind\\e005Bfile %s %s%s\\n", receive_flag ? "get" : "put", ft_host_filename, op); /* Erase the line and enter the command. */ flen = kybd_prime(); if (!flen || flen < strlen(cmd) - 1) { Free(cmd); if (ft_local_file != NULL) { fclose(ft_local_file); ft_local_file = NULL; if (receive_flag && !append_flag) unlink(ft_local_filename); } popup_an_error("%s", get_message("ftUnable")); return; } (void) emulate_input(cmd, strlen(cmd), False); Free(cmd); #if defined(C3270) /*[*/ if (!escaped) screen_suspend(); printf("Awaiting start of transfer... "); fflush(stdout); #endif /*]*/ /* Get this thing started. */ ft_start_id = AddTimeOut(10 * 1000, ft_didnt_start); ft_state = FT_AWAIT_ACK; ft_is_cut = False; } #endif /*]*/ ibm-3270-3.3.10ga4/s3270/scrollc.h0000644000175000017500000000315511254565673015570 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of scrollc.h */ #define scroll_save(n, trim_blanks) #define scroll_to_bottom() ibm-3270-3.3.10ga4/s3270/ctlrc.h0000644000175000017500000001154111254565704015227 0ustar bastianbastian/* * Copyright (c) 2005-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ctlrc.h * Global declarations for ctlr.c. */ enum pds { PDS_OKAY_NO_OUTPUT = 0, /* command accepted, produced no output */ PDS_OKAY_OUTPUT = 1, /* command accepted, produced output */ PDS_BAD_CMD = -1, /* command rejected */ PDS_BAD_ADDR = -2 /* command contained a bad address */ }; void ctlr_aclear(int baddr, int count, int clear_ea); void ctlr_add(int baddr, unsigned char c, unsigned char cs); void ctlr_add_bg(int baddr, unsigned char color); void ctlr_add_cs(int baddr, unsigned char cs); void ctlr_add_fa(int baddr, unsigned char fa, unsigned char cs); void ctlr_add_fg(int baddr, unsigned char color); void ctlr_add_gr(int baddr, unsigned char gr); void ctlr_altbuffer(Boolean alt); Boolean ctlr_any_data(void); void ctlr_bcopy(int baddr_from, int baddr_to, int count, int move_ea); void ctlr_changed(int bstart, int bend); void ctlr_clear(Boolean can_snap); void ctlr_erase(Boolean alt); void ctlr_erase_all_unprotected(void); void ctlr_init(unsigned cmask); void ctlr_read_buffer(unsigned char aid_byte); void ctlr_read_modified(unsigned char aid_byte, Boolean all); void ctlr_reinit(unsigned cmask); void ctlr_scroll(void); void ctlr_shrink(void); void ctlr_snap_buffer(void); void ctlr_snap_buffer_sscp_lu(void); Boolean ctlr_snap_modes(void); void ctlr_wrapping_memmove(int baddr_to, int baddr_from, int count); enum pds ctlr_write(unsigned char buf[], int buflen, Boolean erase); void ctlr_write_sscp_lu(unsigned char buf[], int buflen); struct ea *fa2ea(int baddr); int find_field_attribute(int baddr); unsigned char get_field_attribute(register int baddr); Boolean get_bounded_field_attribute(register int baddr, register int bound, unsigned char *fa_out); void mdt_clear(int baddr); void mdt_set(int baddr); int next_unprotected(int baddr0); enum pds process_ds(unsigned char *buf, int buflen); void ps_process(void); void set_rows_cols(int mn, int ovc, int ovr); void ticking_start(Boolean anyway); void toggle_nop(struct toggle *t, enum toggle_type tt); void toggle_showTiming(struct toggle *t, enum toggle_type tt); enum dbcs_state { DBCS_NONE = 0, /* position is not DBCS */ DBCS_LEFT, /* position is left half of DBCS character */ DBCS_RIGHT, /* position is right half of DBCS character */ DBCS_SI, /* position is SI terminating DBCS subfield */ DBCS_SB, /* position is SBCS character after the SI */ DBCS_LEFT_WRAP, /* position is left half of split DBCS */ DBCS_RIGHT_WRAP, /* position is right half of split DBCS */ DBCS_DEAD /* position is dead left-half DBCS */ }; #define IS_LEFT(d) ((d) == DBCS_LEFT || (d) == DBCS_LEFT_WRAP) #define IS_RIGHT(d) ((d) == DBCS_RIGHT || (d) == DBCS_RIGHT_WRAP) #define IS_DBCS(d) (IS_LEFT(d) || IS_RIGHT(d)) #define MAKE_LEFT(b) { \ if (((b) % COLS) == ((ROWS * COLS) - 1)) \ ea_buf[(b)].db = DBCS_LEFT_WRAP; \ else \ ea_buf[(b)].db = DBCS_LEFT; \ } #define MAKE_RIGHT(b) { \ if (!((b) % COLS)) \ ea_buf[(b)].db = DBCS_RIGHT_WRAP; \ else \ ea_buf[(b)].db = DBCS_RIGHT; \ } #define SOSI(c) (((c) == EBC_so)? EBC_si: EBC_so) enum dbcs_why { DBCS_FIELD, DBCS_SUBFIELD, DBCS_ATTRIBUTE }; #if defined(X3270_DBCS) /*[*/ enum dbcs_state ctlr_dbcs_state(int baddr); extern enum dbcs_state ctlr_lookleft_state(int baddr, enum dbcs_why *why); int ctlr_dbcs_postprocess(void); #else /*][*/ #define ctlr_dbcs_state(b) DBCS_NONE #define ctlr_lookleft_state(b, w) DBCS_NONE #define ctlr_dbcs_postprocess() 0 #endif /*]*/ ibm-3270-3.3.10ga4/s3270/sfc.h0000644000175000017500000000320211254565704014666 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * sfc.h * Global declarations for sf.c. */ extern enum pds write_structured_field(unsigned char buf[], int buflen); ibm-3270-3.3.10ga4/s3270/print.c0000644000175000017500000007103711254565704015255 0ustar bastianbastian/* * Copyright (c) 1994-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * print.c * Screen printing functions. */ #include "globals.h" #include "appres.h" #include "3270ds.h" #include "ctlr.h" #include "ctlrc.h" #include "tablesc.h" #include #if defined(X3270_DISPLAY) /*[*/ #include #include #endif /*]*/ #include "objects.h" #include "resources.h" #include "actionsc.h" #include "charsetc.h" #include "popupsc.h" #include "printc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include #include #include #include #endif /*]*/ #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ /* Globals */ #if defined(X3270_DISPLAY) /*[*/ char *print_text_command = NULL; Boolean ptc_changed = FALSE; #endif /*]*/ /* Statics */ #if defined(X3270_DISPLAY) /*[*/ static Widget print_text_shell = (Widget)NULL; static Widget save_text_shell = (Widget)NULL; static Widget print_window_shell = (Widget)NULL; char *print_window_command = CN; #endif /*]*/ /* Print Text popup */ /* * Map default 3279 colors. This code is duplicated three times. ;-( */ static int color_from_fa(unsigned char fa) { static int field_colors[4] = { HOST_COLOR_GREEN, /* default */ HOST_COLOR_RED, /* intensified */ HOST_COLOR_BLUE, /* protected */ HOST_COLOR_WHITE /* protected, intensified */ # define DEFCOLOR_MAP(f) \ ((((f) & FA_PROTECT) >> 4) | (((f) & FA_INT_HIGH_SEL) >> 3)) }; if (appres.m3279) return field_colors[DEFCOLOR_MAP(fa)]; else return HOST_COLOR_GREEN; } /* * Map 3279 colors onto HTML colors. */ static char * html_color(int color) { static char *html_color_map[] = { "black", "deepSkyBlue", "red", "pink", "green", "turquoise", "yellow", "white", "black", "blue3", "orange", "purple", "paleGreen", "paleTurquoise2", "grey", "white" }; if (color >= HOST_COLOR_NEUTRAL_BLACK && color <= HOST_COLOR_WHITE) return html_color_map[color]; else return "black"; } /* Convert a caption string to UTF-8 RTF. */ static char * rtf_caption(const char *caption) { ucs4_t u; int consumed; enum me_fail error; char *result = Malloc(1); int rlen = 1; char uubuf[64]; char mb[16]; int nmb; result[0] = '\0'; while (*caption) { u = multibyte_to_unicode(caption, strlen(caption), &consumed, &error); if (u == 0) break; if (u & ~0x7f) { sprintf(uubuf, "\\u%u?", u); } else { nmb = unicode_to_multibyte(u, mb, sizeof(mb)); if (mb[0] == '\\' || mb[0] == '{' || mb[0] == '}') sprintf(uubuf, "\\%c", mb[0]); else if (mb[0] == '-') sprintf(uubuf, "\\_"); else if (mb[0] == ' ') sprintf(uubuf, "\\~"); else { uubuf[0] = mb[0]; uubuf[1] = '\0'; } } result = Realloc(result, rlen + strlen(uubuf)); strcat(result, uubuf); rlen += strlen(uubuf); caption += consumed; } return result; } /* Convert a caption string to UTF-8 HTML. */ static char * html_caption(const char *caption) { ucs4_t u; int consumed; enum me_fail error; char *result = Malloc(1); int rlen = 1; char u8buf[16]; int nu8; result[0] = '\0'; while (*caption) { u = multibyte_to_unicode(caption, strlen(caption), &consumed, &error); if (u == 0) break; switch (u) { case '<': result = Realloc(result, rlen + 4); strcat(result, "<"); rlen += 4; break; case '>': result = Realloc(result, rlen + 4); strcat(result, ">"); rlen += 4; break; case '&': result = Realloc(result, rlen + 5); strcat(result, "&"); rlen += 5; break; default: nu8 = unicode_to_utf8(u, u8buf); result = Realloc(result, rlen + nu8); memcpy(result + rlen - 1, u8buf, nu8); rlen += nu8; result[rlen - 1] = '\0'; break; } caption += consumed; } return result; } /* * Print the ASCIIfied contents of the screen onto a stream. * Returns True if anything printed, False otherwise. * * 'ptype' can specify: * P_TEXT: Ordinary text * P_HTML: HTML * P_RTF: Windows rich text * * 'opts' is an OR of: * FPS_EVEN_IF_EMPTY Create a file even if the screen is clear * FPS_MODIFIED_ITALIC Print modified fields in italic * font-style:normal|italic */ Boolean fprint_screen(FILE *f, ptype_t ptype, unsigned opts, char *caption) { register int i; unsigned long uc; int ns = 0; int nr = 0; Boolean any = False; int fa_addr = find_field_attribute(0); unsigned char fa = ea_buf[fa_addr].fa; int fa_fg, current_fg; int fa_bg, current_bg; Bool fa_high, current_high; Bool fa_ital, current_ital; Bool mi = ((opts & FPS_MODIFIED_ITALIC)) != 0; char *xcaption = NULL; if (caption != NULL) { char *ts = strstr(caption, "%T%"); if (ts != NULL) { time_t t = time(NULL); struct tm *tm = localtime(&t); xcaption = Malloc(strlen(caption) + 1 - 3 + 19); strncpy(xcaption, caption, ts - caption); sprintf(xcaption + (ts - caption), "%04d-%02d-%02d %02d:%02d:%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); strcat(xcaption, ts + 3); } else { xcaption = NewString(caption); } } if (ptype != P_TEXT) { opts |= FPS_EVEN_IF_EMPTY; } if (ea_buf[fa_addr].fg) fa_fg = ea_buf[fa_addr].fg & 0x0f; else fa_fg = color_from_fa(fa); current_fg = fa_fg; if (ea_buf[fa_addr].bg) fa_bg = ea_buf[fa_addr].bg & 0x0f; else fa_bg = HOST_COLOR_BLACK; current_bg = fa_bg; if (ea_buf[fa_addr].gr & GR_INTENSIFY) fa_high = True; else fa_high = FA_IS_HIGH(fa); current_high = fa_high; fa_ital = mi && FA_IS_MODIFIED(fa); current_ital = fa_ital; if (ptype == P_RTF) { char *pt_font = get_resource(ResPrintTextFont); char *pt_size = get_resource(ResPrintTextSize); int pt_nsize; if (pt_font == CN) pt_font = "Courier New"; if (pt_size == CN) pt_size = "8"; pt_nsize = atoi(pt_size); if (pt_nsize <= 0) pt_nsize = 8; fprintf(f, "{\\rtf1\\ansi\\ansicpg%u\\deff0\\deflang1033{\\fonttbl{\\f0\\fmodern\\fprq1\\fcharset0 %s;}}\n" "\\viewkind4\\uc1\\pard\\f0\\fs%d ", #if defined(_WIN32) /*[*/ GetACP(), #else /*][*/ 1252, /* the number doesn't matter */ #endif /*]*/ pt_font, pt_nsize * 2); if (xcaption != NULL) { char *hcaption = rtf_caption(xcaption); fprintf(f, "%s\\par\\par\n", hcaption); Free(hcaption); } if (current_high) fprintf(f, "\\b "); } if (ptype == P_HTML) { char *hcaption = NULL; /* Make the caption HTML-safe. */ if (xcaption != NULL) hcaption = html_caption(xcaption); /* Print the preamble. */ fprintf(f, "\n" "\n" " \n" "\n" " \n"); if (hcaption) fprintf(f, "

%s

\n", hcaption); fprintf(f, " " "\n" "
" "
",
			   html_color(current_fg),
			   html_color(current_bg),
			   current_high? "bold": "normal",
			   current_ital? "italic": "normal");
		if (hcaption != NULL)
			Free(hcaption);
	}

	if (ptype == P_TEXT) {
	    	if (xcaption != NULL)
		    	fprintf(f, "%s\n\n", xcaption);
	}

	for (i = 0; i < ROWS*COLS; i++) {
		char mb[16];
		int nmb;

		uc = 0;

		if (i && !(i % COLS)) {
		    	if (ptype == P_HTML)
			    	(void) fputc('\n', f);
			else
				nr++;
			ns = 0;
		}
		if (ea_buf[i].fa) {
			uc = ' ';
			fa = ea_buf[i].fa;
			if (ea_buf[i].fg)
				fa_fg = ea_buf[i].fg & 0x0f;
			else
				fa_fg = color_from_fa(fa);
			if (ea_buf[i].bg)
				fa_bg = ea_buf[i].bg & 0x0f;
			else
				fa_bg = HOST_COLOR_BLACK;
			if (ea_buf[i].gr & GR_INTENSIFY)
				fa_high = True;
			else
				fa_high = FA_IS_HIGH(fa);
			fa_ital = mi && FA_IS_MODIFIED(fa);
		}
		if (FA_IS_ZERO(fa)) {
#if defined(X3270_DBCS) /*[*/
			if (ctlr_dbcs_state(i) == DBCS_LEFT)
			    	uc = 0x3000;
			else
#endif /*]*/
				uc = ' ';
		} else {
		    	/* Convert EBCDIC to Unicode. */
#if defined(X3270_DBCS) /*[*/
			switch (ctlr_dbcs_state(i)) {
			case DBCS_NONE:
			case DBCS_SB:
			    	uc = ebcdic_to_unicode(ea_buf[i].cc,
					ea_buf[i].cs, EUO_NONE);
				if (uc == 0)
				    	uc = ' ';
				break;
			case DBCS_LEFT:
				uc = ebcdic_to_unicode(
					(ea_buf[i].cc << 8) |
					 ea_buf[i + 1].cc,
					CS_BASE, EUO_NONE);
				if (uc == 0)
				    	uc = 0x3000;
				break;
			case DBCS_RIGHT:
				/* skip altogether, we took care of it above */
				continue;
			default:
				uc = ' ';
				break;
			}
#else /*][*/
			uc = ebcdic_to_unicode(ea_buf[i].cc, ea_buf[i].cs,
				EUO_NONE);
			if (uc == 0)
				uc = ' ';
#endif /*]*/
		}

		/* Translate to a type-specific format and write it out. */
		if (uc == ' ' && ptype != P_HTML)
			ns++;
#if defined(X3270_DBCS) /*[*/
		else if (uc == 0x3000) {
		    	if (ptype == P_HTML)
			    	fprintf(f, "  ");
			else
				ns += 2;
		}
#endif /*]*/
		else {
			while (nr) {
			    	if (ptype == P_RTF)
				    	fprintf(f, "\\par");
				(void) fputc('\n', f);
				nr--;
			}
			while (ns) {
			    	if (ptype == P_RTF)
				    	fprintf(f, "\\~");
				else
					(void) fputc(' ', f);
				ns--;
			}
			if (ptype == P_RTF) {
				Bool high;

				if (ea_buf[i].gr & GR_INTENSIFY)
					high = True;
				else
					high = fa_high;
				if (high != current_high) {
					if (high)
						fprintf(f, "\\b ");
					else
						fprintf(f, "\\b0 ");
					current_high = high;
				}
			}
			if (ptype == P_HTML) {
				int fg_color, bg_color;
				Bool high;

				if (ea_buf[i].fg)
					fg_color = ea_buf[i].fg & 0x0f;
				else
					fg_color = fa_fg;
				if (ea_buf[i].bg)
					bg_color = ea_buf[i].bg & 0x0f;
				else
					bg_color = fa_bg;
				if (ea_buf[i].gr & GR_REVERSE) {
				    	int tmp;

					tmp = fg_color;
					fg_color = bg_color;
					bg_color = tmp;
				}

				if (i == cursor_addr) {
				    	fg_color = (bg_color == HOST_COLOR_RED)?
							HOST_COLOR_BLACK: bg_color;
					bg_color = HOST_COLOR_RED;
				}
				if (ea_buf[i].gr & GR_INTENSIFY)
					high = True;
				else
					high = fa_high;

				if (fg_color != current_fg ||
				    bg_color != current_bg ||
				    high != current_high ||
				    fa_ital != current_ital) {
					fprintf(f,
						"",
						html_color(fg_color),
						html_color(bg_color),
						high? "bold": "normal",
						fa_ital? "italic": "normal");
					current_fg = fg_color;
					current_bg = bg_color;
					current_high = high;
					current_ital = fa_ital;
				}
			}
			any = True;
			if (ptype == P_RTF) {
				if (uc & ~0x7f) {
					fprintf(f, "\\u%ld?", uc);
				} else {
					nmb = unicode_to_multibyte(uc,
						mb, sizeof(mb));
					if (mb[0] == '\\' ||
						mb[0] == '{' ||
						mb[0] == '}')
						fprintf(f, "\\%c",
							mb[0]);
					else if (mb[0] == '-')
						fprintf(f, "\\_");
					else if (mb[0] == ' ')
						fprintf(f, "\\~");
					else
						fputc(mb[0], f);
				}
			} else if (ptype == P_HTML) {
				if (uc == '<')
					fprintf(f, "<");
				else if (uc == '&')
				    	fprintf(f, "&");
				else if (uc == '>')
				    	fprintf(f, ">");
				else {
					nmb = unicode_to_utf8(uc, mb);
					{
					    int k;

					    for (k = 0; k < nmb; k++) {
						fputc(mb[k], f);
					    }
					}
				}
			} else {
				nmb = unicode_to_multibyte(uc,
					mb, sizeof(mb));
				(void) fputs(mb, f);
			}
		}
	}

	if (xcaption != NULL)
	    	Free(xcaption);

	if (ptype == P_HTML)
	    	(void) fputc('\n', f);
	else
		nr++;
	if (!any && !(opts & FPS_EVEN_IF_EMPTY) && ptype == P_TEXT)
		return False;
	while (nr) {
	    	if (ptype == P_RTF)
		    	fprintf(f, "\\par");
		if (ptype == P_TEXT)
			(void) fputc('\n', f);
		nr--;
	}
	if (ptype == P_RTF) {
	    	fprintf(f, "\n}\n%c", 0);
	}
	if (ptype == P_HTML) {
		fprintf(f, "%s
\n" " \n" "\n", current_high? "": ""); } return True; } #if !defined(_WIN32) /*[*/ /* Termination code for print text process. */ static void print_text_done(FILE *f, Boolean do_popdown #if defined(X3270_DISPLAY) /*[*/ _is_unused #endif /*]*/ ) { int status; status = pclose(f); if (status) { popup_an_error("Print program exited with status %d.", (status & 0xff00) > 8); } else { #if defined(X3270_DISPLAY) /*[*/ if (do_popdown) XtPopdown(print_text_shell); #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ if (appres.do_confirms) popup_an_info("Screen image printed."); #endif /*]*/ } } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* Callback for "OK" button on the print text popup. */ static void print_text_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *filter; FILE *f; filter = XawDialogGetValueString((Widget)client_data); if (!filter) { XtPopdown(print_text_shell); return; } if (!(f = popen(filter, "w"))) { popup_an_errno(errno, "popen(%s)", filter); return; } if (print_text_command == NULL || strcmp(print_text_command, filter)) { Replace(print_text_command, filter); ptc_changed = True; } (void) fprint_screen(f, P_TEXT, FPS_EVEN_IF_EMPTY, NULL); print_text_done(f, True); } /* Callback for "Plain Text" button on save text popup. */ static void save_text_plain_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *filename; FILE *f; filename = XawDialogGetValueString((Widget)client_data); if (!filename) { XtPopdown(save_text_shell); return; } if (!(f = fopen(filename, "a"))) { popup_an_errno(errno, "%s", filename); return; } (void) fprint_screen(f, P_TEXT, FPS_EVEN_IF_EMPTY, NULL); fclose(f); XtPopdown(save_text_shell); if (appres.do_confirms) popup_an_info("Screen image saved."); } /* Callback for "HTML" button on save text popup. */ static void save_text_html_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *filename; FILE *f; filename = XawDialogGetValueString((Widget)client_data); if (!filename) { XtPopdown(save_text_shell); return; } if (!(f = fopen(filename, "a"))) { popup_an_errno(errno, "%s", filename); return; } (void) fprint_screen(f, P_HTML, FPS_EVEN_IF_EMPTY, NULL); fclose(f); XtPopdown(save_text_shell); if (appres.do_confirms) popup_an_info("Screen image saved."); } /* Pop up the Print Text dialog, given a filter. */ static void popup_print_text(char *filter) { if (print_text_shell == NULL) { print_text_shell = create_form_popup("PrintText", print_text_callback, (XtCallbackProc)NULL, FORM_AS_IS); XtVaSetValues(XtNameToWidget(print_text_shell, ObjDialog), XtNvalue, filter, NULL); } popup_popup(print_text_shell, XtGrabExclusive); } /* Pop up the Save Text dialog. */ static void popup_save_text(char *filename) { if (save_text_shell == NULL) { save_text_shell = create_form_popup("SaveText", save_text_plain_callback, save_text_html_callback, FORM_AS_IS); } if (filename != CN) XtVaSetValues(XtNameToWidget(save_text_shell, ObjDialog), XtNvalue, filename, NULL); popup_popup(save_text_shell, XtGrabExclusive); } #endif /*]*/ #if defined(_WIN32) /*[*/ /* * A Windows version of something like mkstemp(). Creates a temporary * file in $TEMP, returning its path and an open file descriptor. */ int win_mkstemp(char **path, ptype_t ptype) { char *s; int fd; s = getenv("TEMP"); if (s == NULL) s = getenv("TMP"); if (s == NULL) s = "C:"; *path = xs_buffer("%s\\x3h%u.%s", s, getpid(), (ptype == P_RTF)? "rtf": "txt"); fd = open(*path, O_CREAT | O_RDWR, S_IREAD | S_IWRITE); if (fd < 0) { Free(*path); *path = NULL; } return fd; } /* * Find WORDPAD.EXE. */ #define PROGRAMFILES "%ProgramFiles%" char * find_wordpad(void) { char data[1024]; DWORD dlen; char *slash; static char *wp = NULL; HKEY key; if (wp != NULL) return wp; /* Get the shell print command for RTF files. */ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Classes\\rtffile\\shell\\print\\command", 0, KEY_READ, &key) != ERROR_SUCCESS) { return NULL; } dlen = sizeof(data); if (RegQueryValueEx(key, NULL, NULL, NULL, (LPVOID)data, &dlen) != ERROR_SUCCESS) { RegCloseKey(key); return NULL; } RegCloseKey(key); if (data[0] == '"') { char data2[1024]; char *q2; /* The first token is quoted; that's the path. */ strcpy(data2, data + 1); q2 = strchr(data2, '"'); if (q2 == NULL) { return NULL; } *q2 = '\0'; strcpy(data, data2); } else if ((slash = strchr(data, '/')) != NULL) { /* Find the "/p". */ *slash = '\0'; if (*(slash - 1) == ' ') *(slash - 1) = '\0'; } if (!strncasecmp(data, PROGRAMFILES, strlen(PROGRAMFILES))) { char *pf = getenv("PROGRAMFILES"); /* Substitute %ProgramFiles%. */ if (pf == NULL) { return NULL; } wp = xs_buffer("%s\\%s", pf, data + strlen(PROGRAMFILES)); } else { wp = NewString(data); } if (GetShortPathName(wp, data, sizeof(data)) != 0) { Free(wp); wp = NewString(data); } return wp; } #endif /*]*/ /* Print or save the contents of the screen as text. */ void PrintText_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; char *filter = CN; Boolean secure = appres.secure; ptype_t ptype = P_TEXT; Boolean use_file = False; Boolean use_string = False; char *temp_name = NULL; unsigned opts = FPS_EVEN_IF_EMPTY; char *caption = NULL; action_debug(PrintText_action, event, params, num_params); /* * Pick off optional arguments: * file directs the output to a file instead of a command; * must be the last keyword * html generates HTML output instead of ASCII text (and implies * 'file') * rtf generates RTF output instead of ASCII text (and implies * 'file') * modi print modified fields in italics * caption "text" * Adds caption text above the screen * %T% is replaced by a timestamp * secure disables the pop-up dialog, if this action is invoked from * a keymap * command directs the output to a command (this is the default, but * allows the command to be one of the other keywords); * must be the last keyword * string returns the data as a string, allowed only from scripts */ for (i = 0; i < *num_params; i++) { if (!strcasecmp(params[i], "file")) { use_file = True; i++; break; } else if (!strcasecmp(params[i], "html")) { ptype = P_HTML; use_file = True; } else if (!strcasecmp(params[i], "rtf")) { ptype = P_RTF; use_file = True; } else if (!strcasecmp(params[i], "secure")) { secure = True; } else if (!strcasecmp(params[i], "command")) { if ((ptype != P_TEXT) || use_file) { popup_an_error("%s: contradictory options", action_name(PrintText_action)); return; } i++; break; } else if (!strcasecmp(params[i], "string")) { if (ia_cause != IA_SCRIPT) { popup_an_error("%s(string) can only be used " "from a script", action_name(PrintText_action)); return; } use_string = True; use_file = True; } else if (!strcasecmp(params[i], "modi")) { opts |= FPS_MODIFIED_ITALIC; } else if (!strcasecmp(params[i], "caption")) { if (i == *num_params - 1) { popup_an_error("%s: mising caption parameter", action_name(PrintText_action)); return; } caption = params[++i]; } else { break; } } switch (*num_params - i) { case 0: /* Use the default. */ if (!use_file) { #if !defined(_WIN32) /*[*/ filter = get_resource(ResPrintTextCommand); #else /*][*/ filter = get_resource(ResPrinterName); /* XXX */ #endif /*]*/ } break; case 1: if (use_string) { popup_an_error("%s: extra arguments or invalid option(s)", action_name(PrintText_action)); return; } filter = params[i]; break; default: popup_an_error("%s: extra arguments or invalid option(s)", action_name(PrintText_action)); return; } #if defined(_WIN32) /*[*/ /* On Windows, use rich text. */ if (!use_string && !use_file && ptype != P_HTML) ptype = P_RTF; #endif /*]*/ if (filter != CN && filter[0] == '@') { /* * Starting the PrintTextCommand resource value with '@' * suppresses the pop-up dialog, as does setting the 'secure' * resource. */ secure = True; filter++; } if (!use_file && (filter == CN || !*filter)) #if !defined(_WIN32) /*[*/ filter = "lpr"; #else /*][*/ filter = CN; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ if (secure || ia_cause == IA_COMMAND || ia_cause == IA_MACRO || ia_cause == IA_SCRIPT) #endif /*]*/ { FILE *f; int fd = -1; /* Invoked non-interactively. */ if (use_file) { if (use_string) { #if defined(_WIN32) /*[*/ fd = win_mkstemp(&temp_name, ptype); #else /*][*/ temp_name = NewString("/tmp/x3hXXXXXX"); fd = mkstemp(temp_name); #endif /*]*/ if (fd < 0) { popup_an_errno(errno, "mkstemp"); return; } f = fdopen(fd, "w+"); } else { if (filter == CN || !*filter) { popup_an_error("%s: missing filename", action_name(PrintText_action)); return; } f = fopen(filter, "a"); } } else { #if !defined(_WIN32) /*[*/ f = popen(filter, "w"); #else /*][*/ fd = win_mkstemp(&temp_name, ptype); if (fd < 0) { popup_an_errno(errno, "mkstemp"); return; } f = fdopen(fd, "w+"); #endif /*]*/ } if (f == NULL) { popup_an_errno(errno, "%s: %s", action_name(PrintText_action), filter); if (fd >= 0) { (void) close(fd); } if (temp_name) { unlink(temp_name); Free(temp_name); } return; } (void) fprint_screen(f, ptype, opts, caption); if (use_string) { char buf[8192]; rewind(f); while (fgets(buf, sizeof(buf), f) != NULL) action_output("%s", buf); } if (use_file) fclose(f); else { #if !defined(_WIN32) /*[*/ print_text_done(f, False); #else /*][*/ char *wp; fclose(f); wp = find_wordpad(); if (wp == NULL) { popup_an_error("%s: Can't find WORDPAD.EXE", action_name(PrintText_action)); } else { char *cmd; if (filter != CN) cmd = xs_buffer("start /wait /min %s " "/pt \"%s\" \"%s\"", wp, temp_name, filter); else cmd = xs_buffer("start /wait /min %s " "/p \"%s\"", wp, temp_name); system(cmd); Free(cmd); } #if !defined(S3270) /*[*/ if (appres.do_confirms) popup_an_info("Screen image printed.\n"); #endif /*]*/ #endif /*]*/ } if (temp_name) { unlink(temp_name); Free(temp_name); } return; } #if defined(X3270_DISPLAY) /*[*/ /* Invoked interactively -- pop up the confirmation dialog. */ if (use_file) { popup_save_text(filter); } else { popup_print_text(filter); } #endif /*]*/ } #if defined(X3270_DISPLAY) /*[*/ #if defined(X3270_MENUS) /*[*/ /* Callback for Print Text menu option. */ void print_text_option(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { char *filter = get_resource(ResPrintTextCommand); Boolean secure = appres.secure; ptype_t ptype = P_TEXT; if (print_text_command != NULL) filter = print_text_command; else { filter = get_resource(ResPrintTextCommand); if (filter == NULL || !*filter) filter = "lpr"; print_text_command = XtNewString(filter); } /* Decode the filter. */ if (filter != CN && *filter == '@') { secure = True; filter++; } if (filter == CN || !*filter) filter = "lpr"; if (secure) { FILE *f; /* Print the screen without confirming. */ if (!(f = popen(filter, "w"))) { popup_an_errno(errno, "popen(%s)", filter); return; } (void) fprint_screen(f, ptype, FPS_EVEN_IF_EMPTY, NULL); print_text_done(f, False); } else { /* Pop up a dialog to confirm or modify their choice. */ popup_print_text(filter); } } /* Callback for Save Text menu option. */ void save_text_option(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Pop up a dialog to confirm or modify their choice. */ popup_save_text(CN); } #endif /*]*/ /* Print Window popup */ /* * Printing the window bitmap is a rather convoluted process: * The PrintWindow action calls PrintWindow_action(), or a menu option calls * print_window_option(). * print_window_option() pops up the dialog. * The OK button on the dialog triggers print_window_callback. * print_window_callback pops down the dialog, then schedules a timeout * 1 second away. * When the timeout expires, it triggers snap_it(), which finally calls * xwd. * The timeout indirection is necessary because xwd prints the actual contents * of the window, including any pop-up dialog in front of it. We pop down the * dialog, but then it is up to the server and Xt to send us the appropriate * expose events to repaint our window. Hopefully, one second is enough to do * that. */ /* Termination procedure for window print. */ static void print_window_done(int status) { if (status) popup_an_error("Print program exited with status %d.", (status & 0xff00) >> 8); else if (appres.do_confirms) popup_an_info("Bitmap printed."); } /* Timeout callback for window print. */ static void snap_it(XtPointer closure _is_unused, XtIntervalId *id _is_unused) { if (!print_window_command) return; XSync(display, 0); print_window_done(system(print_window_command)); } /* Callback for "OK" button on print window popup. */ static void print_window_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { print_window_command = XawDialogGetValueString((Widget)client_data); XtPopdown(print_window_shell); if (print_window_command) (void) XtAppAddTimeOut(appcontext, 1000, snap_it, 0); } /* Print the contents of the screen as a bitmap. */ void PrintWindow_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { char *filter = get_resource(ResPrintWindowCommand); char *fb = XtMalloc(strlen(filter) + 16); char *xfb = fb; Boolean secure = appres.secure; action_debug(PrintWindow_action, event, params, num_params); if (*num_params > 0) filter = params[0]; if (*num_params > 1) popup_an_error("%s: extra arguments ignored", action_name(PrintWindow_action)); if (filter == CN) { popup_an_error("%s: no %s defined", action_name(PrintWindow_action), ResPrintWindowCommand); return; } (void) sprintf(fb, filter, XtWindow(toplevel)); if (fb[0] == '@') { secure = True; xfb = fb + 1; } if (secure) { print_window_done(system(xfb)); Free(fb); return; } if (print_window_shell == NULL) print_window_shell = create_form_popup("printWindow", print_window_callback, (XtCallbackProc)NULL, FORM_AS_IS); XtVaSetValues(XtNameToWidget(print_window_shell, ObjDialog), XtNvalue, fb, NULL); popup_popup(print_window_shell, XtGrabExclusive); } #if defined(X3270_MENUS) /*[*/ /* Callback for menu Print Window option. */ void print_window_option(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { Cardinal zero = 0; PrintWindow_action(w, (XEvent *)NULL, (String *)NULL, &zero); } #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/s3270/config.guess0000755000175000017500000012753411254565704016301 0ustar bastianbastian#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ibm-3270-3.3.10ga4/s3270/idlec.h0000644000175000017500000000425711254565704015206 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * idlec.h * Global declarations for idle.c. */ enum idle_enum { IDLE_DISABLED = 0, IDLE_SESSION = 1, IDLE_PERM = 2 }; #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ extern void cancel_idle_timer(void); extern void idle_init(void); extern void reset_idle_timer(void); extern char *get_idle_command(); extern char *get_idle_timeout(); extern Boolean idle_changed; extern char *idle_command; extern char *idle_timeout_string; extern enum idle_enum idle_user_enabled; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ extern void popup_idle(void); #endif /*]*/ #else /*][*/ #define cancel_idle_timer() #define idle_init() #define reset_idle_timer() #endif /*]*/ ibm-3270-3.3.10ga4/s3270/utf8c.h0000644000175000017500000000344711254565704015157 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utf8c.h * 3270 Terminal Emulator * UTF-8 conversions */ extern char *locale_codeset; extern Boolean is_utf8; extern void set_codeset(char *codeset_name); extern int unicode_to_utf8(ucs4_t ucs4, char *utf8); extern int utf8_to_unicode(const char *utf8, int len, ucs4_t *ucs4); ibm-3270-3.3.10ga4/s3270/conf.h.in0000644000175000017500000000411511254565710015446 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * conf.h * System-specific #defines for libraries and library functions. * Automatically generated from conf.h.in by configure. */ /* Libraries. */ #undef HAVE_LIBSSL /* Header files. */ #undef HAVE_SYS_SELECT_H #undef HAVE_PTY_H #undef HAVE_LIBUTIL_H #undef HAVE_UTIL_H #undef HAVE_GETOPT_H /* Uncommon functions. */ #undef HAVE_VASPRINTF #undef HAVE_FSEEKO /* Configuration options. */ #undef USE_ICONV /* Optional parts. */ #undef X3270_ANSI #undef X3270_APL #undef X3270_DBCS #undef X3270_FT #undef X3270_LOCAL_PROCESS #undef X3270_TN3270E #undef X3270_TRACE ibm-3270-3.3.10ga4/s3270/mkfb.c0000644000175000017500000002706611254565704015043 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * mkfb.c * Utility to create RDB string definitions from a simple #ifdef'd .ad * file */ #include "conf.h" #include #include #include #include #define BUFSZ 1024 /* input line buffer size */ #define ARRSZ 8192 /* output array size */ #define SSSZ 10 /* maximum nested ifdef */ unsigned aix[ARRSZ]; /* fallback array indices */ unsigned xlno[ARRSZ]; /* fallback array line numbers */ unsigned n_fallbacks = 0; /* number of fallback entries */ /* ifdef state stack */ #define MODE_COLOR 0x00000001 #define MODE_FT 0x00000002 #define MODE_TRACE 0x00000004 #define MODE_MENUS 0x00000008 #define MODE_ANSI 0x00000010 #define MODE_KEYPAD 0x00000020 #define MODE_APL 0x00000040 #define MODE_PRINTER 0x00000080 #define MODE_STANDALONE 0x00000100 #define MODE_SCRIPT 0x00000200 #define MODE_DBCS 0x00000400 #define MODE__WIN32 0x00000800 #define MODEMASK 0x00000fff struct { unsigned long ifdefs; unsigned long ifndefs; unsigned lno; } ss[SSSZ]; unsigned ssp = 0; struct { const char *name; unsigned long mask; } parts[] = { { "COLOR", MODE_COLOR }, { "X3270_FT", MODE_FT }, { "X3270_TRACE", MODE_TRACE }, { "X3270_MENUS", MODE_MENUS }, { "X3270_ANSI", MODE_ANSI }, { "X3270_KEYPAD", MODE_KEYPAD }, { "X3270_APL", MODE_APL }, { "X3270_PRINTER", MODE_PRINTER }, { "STANDALONE", MODE_STANDALONE }, { "X3270_SCRIPT", MODE_SCRIPT }, { "X3270_DBCS", MODE_DBCS }, { "_WIN32", MODE__WIN32 } }; #define NPARTS (sizeof(parts)/sizeof(parts[0])) unsigned long is_defined = MODE_COLOR | #if defined(X3270_FT) MODE_FT #else 0 #endif | #if defined(X3270_TRACE) MODE_TRACE #else 0 #endif | #if defined(X3270_MENUS) MODE_MENUS #else 0 #endif | #if defined(X3270_ANSI) MODE_ANSI #else 0 #endif | #if defined(X3270_KEYPAD) MODE_KEYPAD #else 0 #endif | #if defined(X3270_APL) MODE_APL #else 0 #endif | #if defined(X3270_PRINTER) MODE_PRINTER #else 0 #endif | #if defined(X3270_SCRIPT) MODE_SCRIPT #else 0 #endif | #if defined(X3270_DBCS) MODE_DBCS #else 0 #endif | #if defined(_WIN32) MODE__WIN32 #else 0 #endif ; unsigned long is_undefined; char *me; void emit(FILE *t, int ix, char c); void usage(void) { fprintf(stderr, "usage: %s [infile [outfile]]\n", me); exit(1); } int main(int argc, char *argv[]) { char buf[BUFSZ]; int lno = 0; int cc = 0; unsigned i; int continued = 0; const char *filename = "standard input"; FILE *u, *t, *tc = NULL, *tm = NULL, *o; int cmode = 0; unsigned long ifdefs; unsigned long ifndefs; int last_continue = 0; /* Parse arguments. */ if ((me = strrchr(argv[0], '/')) != (char *)NULL) me++; else me = argv[0]; if (argc > 1 && !strcmp(argv[1], "-c")) { cmode = 1; is_defined |= MODE_STANDALONE; argc--; argv++; } switch (argc) { case 1: break; case 2: case 3: if (strcmp(argv[1], "-")) { if (freopen(argv[1], "r", stdin) == (FILE *)NULL) { perror(argv[1]); exit(1); } filename = argv[1]; } break; default: usage(); } is_undefined = MODE_COLOR | (~is_defined & MODEMASK); /* Do #ifdef, comment and whitespace processing first. */ u = tmpfile(); if (u == NULL) { perror("tmpfile"); exit(1); } while (fgets(buf, BUFSZ, stdin) != (char *)NULL) { char *s = buf; int sl; unsigned i; lno++; /* Skip leading white space. */ while (isspace(*s)) s++; if (cmode && (!strncmp(s, "x3270.", 6) || !strncmp(s, "x3270*", 6))) { s += 6; } /* Remove trailing white space. */ while ((sl = strlen(s)) && isspace(s[sl-1])) s[sl-1] = '\0'; /* Skip comments and empty lines. */ if ((!last_continue && *s == '!') || !*s) continue; /* Check for simple if[n]defs. */ if (*s == '#') { int ifnd = 1; if (!strncmp(s, "#ifdef ", 7) || !(ifnd = strncmp(s, "#ifndef ", 8))) { char *tk; if (ssp >= SSSZ) { fprintf(stderr, "%s, line %d: Stack overflow\n", filename, lno); exit(1); } ss[ssp].ifdefs = 0L; ss[ssp].ifndefs = 0L; ss[ssp].lno = lno; tk = s + 7 + !ifnd; for (i = 0; i < NPARTS; i++) { if (!strcmp(tk, parts[i].name)) { if (!ifnd) ss[ssp++].ifndefs = parts[i].mask; else ss[ssp++].ifdefs = parts[i].mask; break; } } if (i >= NPARTS) { fprintf(stderr, "%s, line %d: Unknown condition\n", filename, lno); exit(1); } continue; } else if (!strcmp(s, "#else")) { unsigned long tmp; if (!ssp) { fprintf(stderr, "%s, line %d: Missing #if[n]def\n", filename, lno); exit(1); } tmp = ss[ssp-1].ifdefs; ss[ssp-1].ifdefs = ss[ssp-1].ifndefs; ss[ssp-1].ifndefs = tmp; } else if (!strcmp(s, "#endif")) { if (!ssp) { fprintf(stderr, "%s, line %d: Missing #if[n]def\n", filename, lno); exit(1); } ssp--; } else { fprintf(stderr, "%s, line %d: Unrecognized # directive\n", filename, lno); exit(1); } continue; } /* Figure out if there's anything to emit. */ /* First, look for contradictions. */ ifdefs = 0; ifndefs = 0; for (i = 0; i < ssp; i++) { ifdefs |= ss[i].ifdefs; ifndefs |= ss[i].ifndefs; } if (ifdefs & ifndefs) { #ifdef DEBUG_IFDEFS fprintf(stderr, "contradiction, line %d\n", lno); #endif continue; } /* Then, apply the actual values. */ if (ifdefs && (ifdefs & is_defined) != ifdefs) { #ifdef DEBUG_IFDEFS fprintf(stderr, "ifdef failed, line %d\n", lno); #endif continue; } if (ifndefs && (ifndefs & is_undefined) != ifndefs) { #ifdef DEBUG_IFDEFS fprintf(stderr, "ifndef failed, line %d\n", lno); #endif continue; } /* Emit the text. */ fprintf(u, "%lx %lx %d\n%s\n", ifdefs, ifndefs, lno, s); last_continue = strlen(s) > 0 && s[strlen(s) - 1] == '\\'; } if (ssp) { fprintf(stderr, "%d missing #endif(s) in %s\n", ssp, filename); fprintf(stderr, "last #ifdef was at line %u\n", ss[ssp-1].lno); exit(1); } /* Re-scan, emitting code this time. */ rewind(u); t = tmpfile(); if (t == NULL) { perror("tmpfile"); exit(1); } if (!cmode) { tc = tmpfile(); if (tc == NULL) { perror("tmpfile"); exit(1); } tm = tmpfile(); if (tm == NULL) { perror("tmpfile"); exit(1); } } /* Emit the initial boilerplate. */ fprintf(t, "/* This file was created automatically from %s by mkfb. */\n\n", filename); if (cmode) { fprintf(t, "#include \"globals.h\"\n"); fprintf(t, "static unsigned char fsd[] = {\n"); } else { fprintf(t, "unsigned char common_fallbacks[] = {\n"); fprintf(tc, "unsigned char color_fallbacks[] = {\n"); fprintf(tm, "unsigned char mono_fallbacks[] = {\n"); } /* Scan the file, emitting the fsd array and creating the indices. */ while (fscanf(u, "%lx %lx %d\n", &ifdefs, &ifndefs, &lno) == 3) { char *s = buf; char c; int white; FILE *t_this = t; int ix = 0; if (fgets(buf, BUFSZ, u) == NULL) break; if (strlen(buf) > 0 && buf[strlen(buf)-1] == '\n') buf[strlen(buf)-1] = '\0'; #if 0 fprintf(stderr, "%lx %lx %d %s\n", ifdefs, ifndefs, lno, buf); #endif /* Add array offsets. */ if (cmode) { /* Ignore color. Accumulate offsets into an array. */ if (n_fallbacks >= ARRSZ) { fprintf(stderr, "%s, line %d: Buffer overflow\n", filename, lno); exit(1); } aix[n_fallbacks] = cc; xlno[n_fallbacks++] = lno; } else { /* Use color to decide which file to write into. */ if (!(ifdefs & MODE_COLOR) && !(ifndefs & MODE_COLOR)) { /* Both. */ t_this = t; ix = 0; } else if (ifdefs & MODE_COLOR) { /* Just color. */ t_this = tc; ix = 1; } else { /* Just mono. */ t_this = tm; ix = 2; } } continued = 0; white = 0; while ((c = *s++) != '\0') { if (c == ' ' || c == '\t') white++; else if (white) { emit(t_this, ix, ' '); cc++; white = 0; } switch (c) { case ' ': case '\t': break; case '#': if (!cmode) { emit(t_this, ix, '\\'); emit(t_this, ix, '#'); cc += 2; } else { emit(t_this, ix, c); cc++; } break; case '\\': if (*s == '\0') { continued = 1; break; } else if (cmode) { switch ((c = *s++)) { case 't': c = '\t'; break; case 'n': c = '\n'; break; default: break; } } /* else fall through */ default: emit(t_this, ix, c); cc++; break; } } if (white) { emit(t_this, ix, ' '); cc++; white = 0; } if (!continued) { if (cmode) emit(t_this, ix, 0); else emit(t_this, ix, '\n'); cc++; } } fclose(u); if (cmode) fprintf(t, "};\n\n"); else { emit(t, 0, 0); fprintf(t, "};\n\n"); emit(tc, 0, 0); fprintf(tc, "};\n\n"); emit(tm, 0, 0); fprintf(tm, "};\n\n"); } /* Open the output file. */ if (argc == 3) { o = fopen(argv[2], "w"); if (o == NULL) { perror(argv[2]); exit(1); } } else o = stdout; /* Copy tmp to output. */ rewind(t); if (!cmode) { rewind(tc); rewind(tm); } while (fgets(buf, sizeof(buf), t) != NULL) { fprintf(o, "%s", buf); } if (!cmode) { while (fgets(buf, sizeof(buf), tc) != NULL) { fprintf(o, "%s", buf); } while (fgets(buf, sizeof(buf), tm) != NULL) { fprintf(o, "%s", buf); } } if (cmode) { /* Emit the fallback array. */ fprintf(o, "String fallbacks[%u] = {\n", n_fallbacks + 1); for (i = 0; i < n_fallbacks; i++) { fprintf(o, "\t(String)&fsd[%u], /* line %u */\n", aix[i], xlno[i]); } fprintf(o, "\t(String)NULL\n};\n\n"); /* Emit some test code. */ fprintf(o, "%s", "#if defined(DEBUG) /*[*/\n\ #include \n\ int\n\ main(int argc, char *argv[])\n\ {\n\ int i;\n\ \n\ for (i = 0; fallbacks[i] != NULL; i++)\n\ printf(\"%d: %s\\n\", i, fallbacks[i]);\n\ return 0;\n\ }\n"); fprintf(o, "#endif /*]*/\n\n"); } if (o != stdout) fclose(o); fclose(t); if (!cmode) { fclose(tc); fclose(tm); } return 0; } static int n_out[3] = { 0, 0, 0 }; void emit(FILE *t, int ix, char c) { if (n_out[ix] >= 19) { fprintf(t, "\n"); n_out[ix] = 0; } fprintf(t, "%3d,", (unsigned char)c); n_out[ix]++; } ibm-3270-3.3.10ga4/s3270/seec.h0000644000175000017500000000430011254565704015032 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * seec.h * Declarations for see.c * */ #if defined(X3270_TRACE) /*[*/ extern const char *see_aid(unsigned char code); extern const char *see_attr(unsigned char fa); extern const char *see_color(unsigned char setting); extern const char *see_ebc(unsigned char ch); extern const char *see_efa(unsigned char efa, unsigned char value); extern const char *see_efa_only(unsigned char efa); extern const char *see_qcode(unsigned char id); extern const char *unknown(unsigned char value); #else /*][*/ #define see_aid 0 && #define see_attr 0 && #define see_color 0 && #define see_ebc 0 && #define see_efa 0 && #define see_efa_only 0 && #define see_qcode 0 && #define unknown 0 && #endif /*]*/ ibm-3270-3.3.10ga4/s3270/unicode_dbcs.c0000644000175000017500000711141411254565704016543 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * unicode.c * A Windows console-based 3270 Terminal Emulator * DBCS EBCDIC/Unicode translation functions */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include "3270ds.h" #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" /* * DBCS EBCDIC-to-Unicode translation tables. */ #if defined(X3270_DBCS) /*[*/ typedef struct { char *name; const char *codepage; const char *display_charset; const char *u2ebc[512]; /* Unicode to EBCDIC vectors */ const char *ebc2u[512]; /* EBCDIC to Unicode vectors */ } uni16_t; static uni16_t uni16[] = { { "cp930", "0x080b012c" /* 2059, 300 */, "jisx0208.1983-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-300_P110-1997 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x6a\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x43\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x00\x00\x44\x4a\x00\x00\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x43\x77\x43\x78\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x73\x00\x00\x44\xee\x44\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6e\x00\x00\x43\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x43\x70\x00\x00\x43\x4e\x43\x71\x00\x00\x00\x00\x00\x00\x43\x4f\x43\x64\x00\x00\x00\x00\x43\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5f\x00\x00\x00\x00\x43\x61\x44\x4d\x00\x00\x43\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6c\x43\x6d\x43\x6b\x43\x6a\x43\x62\x43\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x43\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x43\x5d\x43\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x43\x68\x43\x69\x00\x00\x00\x00\x43\x66\x43\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ "\x43\x7c\x43\xb7\x43\x7d\x43\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7e\x00\x00\x00\x00\x43\xb9\x43\x7f\x00\x00\x00\x00\x43\xe1\x43\xb1\x00\x00\x00\x00\x43\xe3\x43\xb0\x00\x00\x00\x00\x43\xe2\x43\xb2\x43\xee\x00\x00\x00\x00\x43\xe9\x00\x00\x00\x00\x43\xe4\x43\xb4\x43\xf0\x00\x00\x00\x00\x43\xeb\x00\x00\x00\x00\x43\xe6\x43\xb3\x00\x00\x00\x00\x43\xea\x43\xef\x00\x00\x00\x00\x43\xe5\x43\xb5\x00\x00\x00\x00\x43\xec\x43\xf1\x00\x00\x00\x00\x43\xe7\x43\xb6\x00\x00\x00\x00\x43\xed\x00\x00\x00\x00\x43\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x76\x00\x00\x00\x00\x43\x75\x00\x00\x43\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x45\x41\x4b\xce\x00\x00\x45\x47\x00\x00\x00\x00\x00\x00\x45\x4d\x49\xd3\x45\x43\x45\x5e\x45\x5f\x00\x00\x46\xaf\x47\x89\x00\x00\x56\x42\x4d\xec\x00\x00\x00\x00\x4f\x97\x56\x43\x46\x9b\x57\x75\x4d\x56\x50\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x62\x00\x00\x00\x00\x48\x83\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7c\x00\x00\x56\x44\x00\x00\x56\x45\x00\x00\x00\x00\x45\x5c\x00\x00\x00\x00\x00\x00\x56\x46\x4c\xb8\x00\x00\x00\x00\x00\x00\x56\x47\x00\x00\x46\x7a\x48\xab\x00\x00\x47\x62\x54\xc8\x00\x00\x00\x00\x56\x48\x00\x00\x00\x00\x56\x49\x4b\x9f\x00\x00\x45\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xd8\x00\x00\x55\xa9\x54\xa5\x4f\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd0\x56\x4a\x49\x47\x56\x4b\x4b\xbd\x00\x00\x00\x00\x00\x00\x45\x49\x4e\xb5\x47\x49\x00\x00\x00\x00\x56\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbf\x00\x00\x4a\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x70\x00\x00", /* 4e80 */ "\x47\xc0\x00\x00\x56\x4d\x00\x00\x00\x00\x56\x4e\x4b\xb1\x00\x00\x47\xc2\x48\x96\x56\x4f\x45\xce\x45\x42\x00\x00\x56\x50\x00\x00\x00\x00\x49\x9d\x4b\x74\x00\x00\x45\x45\x45\x6d\x00\x00\x00\x00\x4b\xe4\x50\xe8\x00\x00\x55\xdc\x48\x67\x00\x00\x56\x52\x51\x67\x56\x53\x4c\xce\x56\x54\x00\x00\x47\x8e\x4f\x7f\x4f\xfa\x00\x00\x4b\xac\x00\x00\x00\x00\x4b\x73\x45\x75\x4e\x52\x49\x9c\x00\x00\x56\x55\x00\x00\x00\x00\x56\x56\x00\x00\x00\x00\x56\x57\x00\x00\x00\x00\x00\x00\x45\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd9\x47\x76\x56\x5c\x00\x00\x56\x5a\x00\x00\x56\x5b\x50\x85\x00\x00\x00\x00\x45\xe0\x48\x4b\x00\x00\x56\x59\x56\x58\x4b\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x54\x65\x48\xb5\x47\x55\x56\x5e\x47\x5d\x48\xa2\x00\x00\x00\x00\x00\x00\x44\x5c\x56\x5f\x56\x61\x00\x00\x56\x5d\x00\x00\x45\x9a\x49\xc3\x46\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x60\x4d\x71\x00\x00\x4d\xed\x00\x00\x48\x69\x00\x00\x00\x00\x00\x00\x48\xb2\x53\x41\x00\x00\x00\x00\x00\x00\x4a\x55\x56\x62\x00\x00\x00\x00\x00\x00", /* 4f00 */ "\x56\x65\x47\xd2\x00\x00\x56\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x63\x45\xb2\x00\x00\x00\x00\x4d\x99\x4e\x9f\x4a\x83\x50\xf6\x4a\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xbd\x00\x00\x56\x64\x48\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xa6\x56\x68\x00\x00\x00\x00\x00\x00\x49\xc9\x00\x00\x54\x4a\x00\x00\x46\xf4\x56\x6a\x50\x8a\x00\x00\x4b\xbc\x54\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xdf\x00\x00\x00\x00\x4e\xfe\x56\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xc8\x48\xa4\x46\xe0\x45\x76\x4c\xe6\x00\x00\x46\x96\x00\x00\x47\x70\x56\x6e\x56\x6b\x00\x00\x49\xc1\x56\x67\x56\x6f\x45\x94\x56\x69\x56\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7c\x56\x7a\x00\x00\x00\x00\x48\x76\x00\x00\x4b\x94\x51\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x56\x77\x54\x62\x00\x00\x00\x00\x48\xb6", /* 4f80 */ "\x00\x00\x00\x00\x00\x00\x4f\x98\x00\x00\x00\x00\x56\x7d\x00\x00\x56\x72\x00\x00\x56\x71\x4a\x46\x00\x00\x4f\xc2\x00\x00\x56\x73\x00\x00\x4f\x8d\x56\x70\x00\x00\x56\x7b\x00\x00\x56\x7e\x00\x00\x56\x76\x00\x00\x56\x74\x48\xbc\x00\x00\x4a\x9e\x00\x00\x00\x00\x52\xec\x47\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x78\x00\x00\x56\x75\x53\xb9\x53\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8c\x55\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4c\x00\x00\x00\x00\x48\x51\x4a\x6a\x54\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x52\x94\x46\x60\x00\x00\x00\x00\x56\x86\x56\x80\x00\x00\x56\x85\x56\x83\x00\x00\x00\x00\x56\x7f\x00\x00\x00\x00\x4e\x97\x56\x81\x00\x00\x56\x84\x56\x82\x00\x00\x45\xaa\x00\x00\x53\xc4\x52\xec\x45\xa5\x00\x00\x4b\x4a\x56\x87\x56\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xde\x56\x96\x00\x00\x00\x00\x00\x00\x4c\xe1\x00\x00\x4d\xb1\x51\xf8\x00\x00\x50\xf9\x00\x00\x4e\x67\x00\x00\x00\x00\x00\x00\x56\x95\x56\x94", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8f\x56\x99\x00\x00\x00\x00\x45\xd6\x00\x00\x49\xfa\x00\x00\x4a\xc4\x00\x00\x56\xa1\x00\x00\x56\x97\x4b\x6a\x00\x00\x56\x8c\x00\x00\x53\x43\x00\x00\x00\x00\x4c\xae\x56\x89\x00\x00\x00\x00\x00\x00\x56\x98\x4a\xd0\x00\x00\x56\x90\x56\x91\x55\x69\x48\x7d\x56\x8e\x52\xf1\x00\x00\x56\x8b\x56\x92\x56\x8d\x4d\x51\x56\x93\x4f\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x63\x00\x00\x00\x00\x52\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8a\x00\x00\x56\xa4\x56\x9a\x00\x00\x00\x00\x56\xa2\x56\x9b\x56\x9e\x4d\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x49\x56\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x56\x9c\x56\xa0\x00\x00\x00\x00\x00\x00\x56\x9f\x00\x00\x4e\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xa5\x00\x00\x00\x00\x00\x00\x56\xa3\x00\x00\x54\xd2\x00\x00\x49\x43\x4f\x95\x50\xc3\x00\x00\x56\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x50\x59\x00\x00\x00\x00", /* 5080 */ "\x56\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x56\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xe7\x00\x00\x00\x00\x00\x00\x4f\xc3\x00\x00\x00\x00\x56\xa8\x00\x00\x00\x00\x00\x00\x50\x9c\x46\xac\x56\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x43\x54\xda\x00\x00\x00\x00\x00\x00\x00\x00\x56\xad\x56\xb0\x56\xab\x4b\x58\x00\x00\x4c\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x43\x00\x00\x00\x00\x00\x00\x56\xb1\x00\x00\x00\x00\x4f\xc9\x00\x00\x00\x00\x00\x00\x56\xae\x56\xaf\x00\x00\x00\x00\x48\xec\x00\x00\x4b\xba\x00\x00\x55\xad\x00\x00\x00\x00\x00\x00\x4a\xbb\x52\xd4\x00\x00\x56\xb5\x00\x00\x4d\x82\x00\x00\x00\x00\x00\x00\x56\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb7\x00\x00\x56\xb4\x00\x00\x4e\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb6\x56\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb2\x56\xba\x00\x00\x00\x00\x00\x00\x56\xb9\x00\x00\x55\x78\x00\x00\x00\x00\x00\x00\x00\x00", /* 5100 */ "\x49\xca\x56\xbc\x56\xbd\x00\x00\x45\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x56\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6f\x00\x00\x56\xc0\x56\xbf\x56\xc1\x00\x00\x52\x90\x00\x00\x56\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa2\x00\x00\x56\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc4\x00\x00\x00\x00\x56\xc3\x56\xc6\x56\xc5\x00\x00\x00\x00\x56\xc7\x56\xc8\x4c\x91\x00\x00\x46\x95\x4b\xe8\x48\xc9\x4d\xf3\x55\x5a\x47\xa2\x45\x9e\x56\xc9\x47\x9e\x56\xca\x4b\x56\x50\x50\x00\x00\x46\x9f\x00\x00\x56\xcb\x00\x00\x56\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4b\x00\x00\x51\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xcd\x00\x00\x56\xce\x46\x65\x00\x00\x00\x00\x46\xb1\x56\xcf\x56\xd0\x45\x48\x46\xbb\x45\x46\x56\xd1\x00\x00\x00\x00\x47\xb3\x00\x00\x00\x00\x00\x00\x46\x49\x4f\x67\x47\xaf\x47\xc9\x00\x00\x00\x00\x00\x00\x48\xf4\x00\x00\x00\x00\x00\x00", /* 5180 */ "\x56\xd2\x00\x00\x56\xd3\x00\x00\x00\x00\x45\x8e\x46\x45\x00\x00\x00\x00\x56\xd6\x4e\xa1\x00\x00\x56\xd5\x48\xeb\x00\x00\x56\xd7\x61\x9d\x56\xd8\x4f\x8f\x56\xd9\x00\x00\x56\xda\x56\xdb\x52\x7e\x00\x00\x48\xc4\x00\x00\x00\x00\x00\x00\x56\xdc\x00\x00\x00\x00\x4e\x7b\x00\x00\x56\xdf\x00\x00\x56\xdd\x54\x67\x56\xde\x00\x00\x48\x78\x56\xe0\x56\xe1\x56\xe2\x4b\xde\x00\x00\x00\x00\x00\x00\x56\xe6\x56\xe4\x56\xe5\x56\xe3\x50\xc9\x56\xe7\x51\x46\x48\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xe9\x56\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xdc\x56\xea\x4f\x80\x00\x00\x00\x00\x56\xeb\x00\x00\x55\xf9\x53\x44\x4b\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x77\x00\x00\x00\x00\x00\x00\x00\x00\x56\xec\x68\x84\x4e\xd9\x00\x00\x00\x00\x56\xed\x4d\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x48\xe6\x55\x8a\x00\x00\x56\xee\x54\x9e\x00\x00\x56\xef\x56\xf0\x00\x00\x00\x00\x56\xf1\x51\xac\x00\x00\x00\x00\x00\x00\x56\xf2\x51\xec\x00\x00\x50\xcf\x50\xe6\x45\x9b\x00\x00\x00\x00\x4b\xb6\x56\xf3\x00\x00", /* 5200 */ "\x4c\x50\x00\x00\x00\x00\x4f\x44\x56\xf4\x00\x00\x45\xb4\x47\x65\x4b\x9b\x00\x00\x4c\xd7\x56\xf5\x00\x00\x00\x00\x54\xe3\x00\x00\x00\x00\x4c\x52\x00\x00\x00\x00\x56\xf6\x56\xf7\x00\x00\x4b\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x5c\x46\xdd\x00\x00\x56\xf8\x00\x00\x45\xbc\x56\xf9\x00\x00\x00\x00\x00\x00\x56\xfa\x00\x00\x4c\xdd\x00\x00\x00\x00\x56\xfb\x00\x00\x00\x00\x46\xc4\x48\xcf\x4b\x6b\x56\xfc\x4b\xc0\x4b\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x79\x56\xfd\x00\x00\x00\x00\x47\x4d\x00\x00\x00\x00\x4a\x90\x56\xfe\x51\xae\x45\xaf\x00\x00\x57\x41\x00\x00\x00\x00\x00\x00\x00\x00\x57\x43\x00\x00\x51\x99\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc7\x00\x00\x54\x81\x57\x42\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xd3\x47\x66\x54\x81\x00\x00\x00\x00\x00\x00\x57\x48\x57\x45\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4e\x4d\x85\x57\x44\x47\xd6\x57\x46\x57\x47\x4b\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x4a\x00\x00\x57\x49", /* 5280 */ "\x00\x00\x00\x00\x00\x00\x55\xd6\x00\x00\x00\x00\x00\x00\x49\xf0\x57\x4c\x51\x85\x00\x00\x00\x00\x00\x00\x57\x4b\x00\x00\x00\x00\x00\x00\x57\x4e\x57\x4d\x00\x00\x55\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf7\x57\x4f\x00\x00\x00\x00\x48\x70\x45\x9f\x00\x00\x00\x00\x4e\x68\x00\x00\x00\x00\x57\x50\x00\x00\x00\x00\x46\x71\x4a\x64\x54\xc6\x57\x51\x57\x52\x00\x00\x5f\xaa\x00\x00\x4d\x92\x00\x00\x00\x00\x48\xa9\x57\x54\x00\x00\x00\x00\x00\x00\x49\x78\x00\x00\x00\x00\x57\x53\x00\x00\x55\x6a\x00\x00\x57\x56\x57\x55\x00\x00\x54\xb1\x00\x00\x4e\xef\x00\x00\x46\x9c\x00\x00\x48\xce\x00\x00\x00\x00\x00\x00\x57\x57\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd6\x00\x00\x00\x00\x45\xe4\x00\x00\x53\x92\x4b\x9a\x46\xed\x00\x00\x57\x58\x00\x00\x45\xb5\x57\x59\x4a\xe1\x57\x5c\x00\x00\x47\xee\x57\x5a\x49\x9f\x00\x00\x57\x5b\x4c\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7a\x57\x5d\x00\x00\x57\x5e\x00\x00\x00\x00\x57\x5f\x57\x60\x54\x70\x00\x00\x00\x00\x00\x00\x51\xe9\x52\x97", /* 5300 */ "\x57\x61\x4f\x5b\x4e\xcb\x00\x00\x00\x00\x4a\xa8\x57\x62\x57\x63\x57\x64\x00\x00\x00\x00\x00\x00\x00\x00\x57\x66\x00\x00\x57\x68\x57\x67\x00\x00\x00\x00\x00\x00\x00\x00\x57\x69\x45\x90\x45\x5a\x00\x00\x54\x57\x57\x6a\x00\x00\x00\x00\x51\xb7\x00\x00\x00\x00\x4e\x6b\x4d\x4d\x00\x00\x57\x6c\x57\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xed\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6d\x00\x00\x57\x6e\x00\x00\x57\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x57\x70\x4f\xd1\x45\x54\x4a\x87\x00\x00\x00\x00\x00\x00\x50\xf1\x57\x71\x45\x4a\x00\x00\x45\x4c\x00\x00\x57\x72\x57\x73\x4e\x47\x45\xdf\x57\x74\x47\x90\x00\x00\x00\x00\x57\x76\x00\x00\x00\x00\x00\x00\x53\xad\x4a\xf2\x49\x96\x47\xd7\x00\x00\x00\x00\x45\x59\x48\xe3\x00\x00\x45\xf6\x00\x00\x51\xc0\x00\x00\x57\x79\x00\x00\x49\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xdb\x00\x00\x00\x00\x57\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x57\x7b\x4c\x82\x47\x99\x4b\x91\x57\x7c\x4b\x6d\x4a\xa4\x4c\xf5\x00\x00\x57\x7d\x4e\x79\x00\x00\x00\x00\x57\x7e\x00\x00\x00\x00\x00\x00\x53\xe2", /* 5380 */ "\x00\x00\x00\x00\x57\x7f\x00\x00\x53\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x80\x00\x00\x00\x00\x57\x81\x00\x00\x4f\x55\x00\x00\x49\x42\x00\x00\x00\x00\x00\x00\x00\x00\x45\x74\x57\x82\x00\x00\x00\x00\x00\x00\x00\x00\x57\x84\x57\x83\x00\x00\x51\x78\x53\x67\x00\x00\x00\x00\x00\x00\x53\xb7\x57\x85\x00\x00\x57\x86\x00\x00\x57\x87\x4c\x8e\x00\x00\x00\x00\x57\x88\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd2\x57\x89\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf5\x50\xa5\x48\x5c\x46\xd4\x4b\x71\x47\xf9\x47\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa5\x00\x00\x46\xa6\x48\x4c\x00\x00\x50\xf5\x00\x00\x55\xb2\x00\x00\x57\x8b\x00\x00\x57\x8c\x00\x00\x51\x94\x53\xf5\x45\x88\x45\xd4\x4c\x8b\x00\x00\x00\x00\x57\x91\x4f\x71\x4e\x41\x4d\xd5\x4f\x86\x57\x92\x57\x90\x47\xc6\x47\x78\x50\x42\x47\xd9\x48\x5a\x00\x00\x00\x00\x4f\x59\x48\xe2\x45\xf0\x00\x00\x57\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x57\x94\x00\x00\x55\xea\x47\xba\x00\x00\x00\x00\x00\x00\x45\xa0\x45\x7e\x53\xd3\x55\xbc\x46\x6d\x45\xf3\x51\xaf\x50\xc6\x4e\xb2\x46\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xcf\x00\x00\x57\x9d\x00\x00\x50\x7a\x53\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4f\x00\x00\x00\x00\x57\x9c\x00\x00\x49\xcb\x57\x97\x57\x98\x57\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x9b\x00\x00\x4b\x98\x49\xc4\x00\x00\x53\xe5\x57\x99\x57\x95\x47\xf6\x00\x00\x57\x96\x00\x00\x4b\x50\x00\x00\x00\x00\x00\x00\x50\x73\x00\x00\x4f\x56\x4a\xee\x49\x54\x00\x00\x00\x00\x00\x00\x57\x9e\x00\x00\x00\x00\x50\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xa1\x00\x00\x54\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa5\x57\xa3\x00\x00\x47\x7f\x00\x00\x57\xa0\x57\xaa\x57\xa4\x00\x00\x00\x00\x00\x00\x57\xa7\x4a\xf6\x49\xb0\x00\x00\x00\x00", /* 5480 */ "\x57\xa8\x00\x00\x00\x00\x00\x00\x57\xab\x00\x00\x57\xad\x00\x00\x00\x00\x00\x00\x57\xae\x4f\x50\x45\x7a\x00\x00\x57\xa1\x57\x9f\x57\xac\x00\x00\x57\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb2\x00\x00\x57\xbc\x57\xb4\x00\x00\x00\x00\x57\xb9\x57\xbd\x00\x00\x57\xba\x57\xb5\x00\x00\x00\x00\x57\xb1\x00\x00\x00\x00\x4c\xde\x53\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb3\x00\x00\x00\x00\x00\x00\x57\xb0\x52\xb1\x57\xbe\x00\x00\x4e\xf9\x45\xd0\x57\xbb\x00\x00\x57\xb6\x00\x00\x00\x00\x57\xaf\x57\xb8\x4a\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xcb\x57\xc7\x00\x00\x00\x00\x57\xbf\x57\xc1\x00\x00\x55\x68\x55\xf0\x00\x00\x00\x00\x00\x00\x57\xc6\x57\xc5\x00\x00\x00\x00\x00\x00\x47\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7c\x00\x00\x00\x00\x57\xc4\x00\x00\x57\xc0", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdb\x00\x00\x51\xb8\x4f\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x4b\xab\x00\x00\x00\x00\x00\x00\x57\xc3\x00\x00\x54\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcc\x4b\xe0\x00\x00\x4d\x43\x00\x00\x57\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x57\xd1\x57\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x54\x78\x00\x00\x57\xc9\x00\x00\x00\x00\x00\x00\x53\x83\x57\xce\x46\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcb\x00\x00\x00\x00\x46\xe4\x00\x00\x00\x00\x00\x00\x47\xe4\x00\x00\x00\x00\x57\xcf\x57\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcd\x57\xd3\x54\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x57\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xd8\x57\xdd\x00\x00\x57\xd9\x00\x00", /* 5580 */ "\x57\xd5\x00\x00\x00\x00\x57\xdf\x46\xb3\x00\x00\x57\xde\x57\xe1\x00\x00\x52\x53\x57\xd6\x55\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xda\x57\xd4\x52\xb5\x00\x00\x45\xd1\x54\x75\x57\xdb\x57\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xd3\x57\xe2\x57\xe0\x51\x68\x4d\x6d\x4c\x5f\x00\x00\x57\xdc\x00\x00\x4e\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe5\x57\xe3\x00\x00\x58\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa2\x00\x00\x57\xe6\x00\x00\x00\x00\x57\xe4\x00\x00\x00\x00\x00\x00\x4b\x5e\x57\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xeb\x00\x00\x57\xe9\x00\x00\x00\x00\x00\x00\x57\xee\x57\xed\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x63\x00\x00\x00\x00\x47\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xea\x00\x00\x57\xec\x54\xec\x50\xf3\x00\x00\x00\x00\x57\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf8\x00\x00\x50\xca\x57\xf3\x00\x00\x54\x7f\x00\x00\x57\xf2\x00\x00\x57\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x62\x00\x00\x57\xf0\x00\x00\x57\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf6\x00\x00\x00\x00\x00\x00\x45\xfc\x00\x00\x57\xfa\x57\xf5\x57\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6d\x00\x00\x00\x00\x00\x00\x55\xf1\x00\x00\x55\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5680 */ "\x57\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf7\x55\xd8\x00\x00\x00\x00\x58\x41\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x42\x00\x00\x51\x90\x00\x00\x00\x00\x58\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x46\x00\x00\x58\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x49\x00\x00\x00\x00\x00\x00\x58\x4c\x58\x4a\x58\x48\x58\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x58\x47\x00\x00\x51\x90\x00\x00\x00\x00\x00\x00\x58\x4d\x00\x00\x00\x00\x58\x4f\x00\x00\x58\x4e\x00\x00\x00\x00\x00\x00\x58\x50\x56\xd4\x00\x00\x50\x65\x45\x44\x00\x00\x00\x00\x46\xa9\x00\x00\x4a\x49\x00\x00\x00\x00\x47\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x51\x00\x00\x4b\x44\x00\x00\x4a\xfa\x47\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x52\x4a\x94\x00\x00\x00\x00\x45\x8f\x00\x00\x58\x53", /* 5700 */ "\x52\x66\x00\x00\x00\x00\x53\xcf\x58\x54\x00\x00\x00\x00\x00\x00\x58\x56\x58\x55\x00\x00\x51\xbd\x00\x00\x58\x57\x00\x00\x4f\x49\x00\x00\x00\x00\x47\xe1\x54\xe7\x00\x00\x00\x00\x58\x5a\x00\x00\x58\x59\x00\x00\x00\x00\x00\x00\x58\x5b\x00\x00\x00\x00\x46\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5c\x47\x82\x47\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x49\xe6\x00\x00\x00\x00\x45\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd1\x58\x5d\x00\x00\x00\x00\x58\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x58\x61\x00\x00\x45\xec\x00\x00\x00\x00\x00\x00\x00\x00\x49\xae\x00\x00\x00\x00\x4c\x55\x00\x00\x00\x00\x00\x00\x58\x5e\x58\x62\x4e\x8d\x4e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x65\x00\x00\x00\x00\x53\xa6\x58\x63\x51\xc4\x00\x00\x00\x00\x53\x98\x49\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x66", /* 5780 */ "\x00\x00\x00\x00\x4b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x64\x58\x67\x00\x00\x46\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x69\x00\x00\x54\x66\x47\xce\x58\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x6d\x00\x00\x58\x6c\x00\x00\x00\x00\x00\x00\x53\xcd\x00\x00\x00\x00\x58\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x71\x00\x00\x00\x00\x58\x6e\x00\x00\x00\x00\x58\x6f\x58\x73\x58\x70\x00\x00\x00\x00\x4e\xac\x00\x00\x00\x00\x45\xdb\x00\x00\x00\x00\x00\x00\x58\x74\x58\x75\x58\x72\x00\x00\x58\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf4\x00\x00\x00\x00\x48\xe9\x51\x7e\x00\x00\x00\x00\x58\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x48\x00\x00\x00\x00\x4d\x57\x00\x00\x4d\xac\x46\xf1\x00\x00\x46\xa3\x00\x00\x00\x00\x00\x00", /* 5800 */ "\x46\x9d\x00\x00\x49\x7f\x00\x00\x00\x00\x4a\xe7\x53\x71\x00\x00\x00\x00\x00\x00\x58\x78\x58\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xb0\x00\x00\x00\x00\x00\x00\x58\x7b\x00\x00\x00\x00\x00\x00\x53\xa7\x00\x00\x00\x00\x00\x00\x58\x7c\x00\x00\x00\x00\x4b\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xac\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x53\x50\xa4\x49\xb8\x00\x00\x00\x00\x45\xd9\x54\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7c\x00\x00\x00\x00\x58\x80\x00\x00\x00\x00\x53\x9f\x4b\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x53\x58\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc6\x58\x81\x00\x00\x4c\xcb\x00\x00\x00\x00\x48\x6a\x52\xf8\x4f\x6f\x46\x57\x00\x00\x00\x00\x00\x00\x53\xc1\x00\x00\x00\x00\x4f\x5e\x58\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x43\x00\x00\x4f\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x58\x83\x00\x00\x58\x86\x00\x00\x00\x00\x4d\x89\x00\x00\x00\x00\x00\x00\x58\x84\x00\x00\x00\x00\x00\x00\x00\x00\x52\x79\x00\x00", /* 5880 */ "\x00\x00\x00\x00\x00\x00\x4a\x95\x00\x00\x58\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbe\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x51\x50\x00\x00\x58\x8a\x58\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xfc\x00\x00\x00\x00\x58\x88\x00\x00\x00\x00\x58\x8b\x00\x00\x00\x00\x00\x00\x58\x8c\x52\x89\x00\x00\x00\x00\x00\x00\x00\x00\x58\x89\x58\x8d\x58\x8e\x55\x52\x00\x00\x00\x00\x54\x88\x00\x00\x00\x00\x4b\x95\x00\x00\x00\x00\x00\x00\x58\x8f\x00\x00\x4e\x8e\x00\x00\x00\x00\x4e\xc8\x00\x00\x51\x96\x00\x00\x00\x00\x00\x00\x00\x00\x58\x91\x00\x00\x58\x90\x00\x00\x55\xb9\x00\x00\x58\x92\x58\x94\x58\x93\x00\x00\x00\x00\x58\x96\x00\x00\x58\x95\x58\x97\x00\x00\x00\x00\x00\x00\x00\x00\x58\x98\x58\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x7d\x51\x4f\x00\x00\x4c\x9f\x58\x9a\x49\x6c\x4e\xb0\x47\x75\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9b\x00\x00\x58\x9c\x50\x77\x58\x9d\x58\x9e\x52\x75\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x58\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x6f\x58\xa0\x58\xa1\x00\x00\x00\x00\x00\x00\x49\x7e\x58\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc3\x46\x94\x00\x00\x52\xc8\x54\xdd\x45\xfe\x58\xa3\x48\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8b\x00\x00\x00\x00\x58\xa5\x00\x00\x45\x5b\x00\x00\x46\x8a\x45\xab\x45\x73\x58\xa6\x58\xa7\x47\x92\x00\x00\x00\x00\x49\x41\x58\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x51\x47\x58\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf2\x00\x00\x00\x00\x4d\x69\x45\xe6\x4d\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8f\x4c\x53\x58\xac\x4c\x64\x00\x00\x58\xad\x52\x84\x58\xab\x00\x00\x55\x83\x58\xaf\x00\x00\x58\xae\x58\xb0\x00\x00\x58\xb1\x00\x00\x00\x00\x58\xb4\x00\x00\x58\xb3\x58\xb2\x00\x00\x46\xe5\x00\x00\x58\xb5\x4e\xca\x58\xb7\x4e\xbb\x00\x00\x58\xb6\x00\x00\x4e\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x46\x99\x4d\x90\x00\x00\x00\x00\x00\x00\x58\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x46\x9e\x00\x00\x00\x00", /* 5980 */ "\x00\x00\x58\xb9\x4b\xf8\x51\xa2\x55\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x43\x00\x00\x00\x00\x58\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x95\x00\x00\x00\x00\x53\xd1\x00\x00\x00\x00\x4a\x66\x00\x00\x58\xbb\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xbd\x58\xbe\x4d\x9e\x00\x00\x00\x00\x50\xec\x00\x00\x00\x00\x00\x00\x53\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xdc\x58\xc0\x49\xa3\x00\x00\x00\x00\x53\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc1\x00\x00\x00\x00\x4c\xc1\x00\x00\x49\x90\x00\x00\x00\x00\x00\x00\x00\x00\x54\x9c\x53\xf2\x00\x00\x4f\xf1\x48\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc3\x58\xc4\x00\x00\x51\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x55\x55\xde\x00\x00\x58\xc2\x00\x00\x55\x8c\x4a\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x79\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb9\x00\x00\x00\x00\x00\x00\x4b\x42", /* 5a00 */ "\x00\x00\x4c\x65\x00\x00\x55\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x54\x00\x00\x58\xc9\x00\x00\x58\xc8\x00\x00\x00\x00\x58\xc6\x52\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc5\x00\x00\x00\x00\x00\x00\x54\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xce\x58\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x98\x00\x00\x00\x00\x00\x00\x58\xcb\x50\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xcc\x00\x00\x00\x00\x58\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd0\x00\x00\x00\x00\x00\x00\x49\x6f\x00\x00\x00\x00\x00\x00\x58\xd1\x00\x00\x58\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x54", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd2\x48\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd3\x58\xd8\x58\xd4\x00\x00\x00\x00\x4e\x89\x58\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe0\x00\x00\x58\xd6\x4e\xc3\x00\x00\x00\x00\x00\x00\x58\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xdd\x58\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x67\x00\x00\x58\xd9\x00\x00\x00\x00\x58\xdb\x00\x00\x00\x00\x58\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xde\x58\xdf\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8b\x00\x00\x58\xe1\x58\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe4\x00\x00\x52\xea\x00\x00\x00\x00\x00\x00\x55\xe8\x00\x00\x58\xe3\x00\x00\x00\x00\x00\x00\x58\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe6\x00\x00\x58\xe9\x00\x00\x00\x00\x58\xe7\x00\x00\x58\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x64\x58\xea\x00\x00\x00\x00\x4b\xd9\x58\xeb\x58\xec\x48\xf2\x4a\x41\x00\x00\x52\x58\x58\xee\x4f\xf2\x45\xf4\x00\x00\x4f\x83\x00\x00\x00\x00\x00\x00\x4a\xec\x4e\xaf\x58\xef\x45\xbe\x00\x00\x00\x00\x58\xf0\x00\x00\x4c\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf1\x59\x5b\x00\x00\x58\xf2\x00\x00\x58\xf3\x00\x00\x00\x00\x58\xf4\x00\x00\x58\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b80 */ "\x58\xf6\x00\x00\x00\x00\x58\xf7\x00\x00\x48\x6f\x00\x00\x46\xd5\x46\xf0\x45\xa8\x00\x00\x52\x4d\x48\xc5\x4c\x75\x00\x00\x46\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5c\x00\x00\x47\xdd\x49\xa2\x4d\x64\x45\xe7\x50\xab\x4d\x8b\x49\x4d\x00\x00\x45\xed\x00\x00\x00\x00\x4a\xde\x49\x8f\x47\xb8\x4f\x7a\x58\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x92\x00\x00\x4e\xd4\x00\x00\x00\x00\x49\x68\x50\x78\x52\xef\x46\x86\x00\x00\x58\xf9\x48\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x82\x58\xfc\x00\x00\x4f\xe9\x58\xfa\x49\xdf\x4a\x84\x4a\x56\x58\xfb\x00\x00\x58\xfd\x00\x00\x00\x00\x45\xac\x00\x00\x00\x00\x00\x00\x59\x41\x00\x00\x4b\x81\x55\xf4\x52\x44\x00\x00\x00\x00\x00\x00\x59\x42\x00\x00\x00\x00\x47\xf8\x00\x00\x4b\x59\x59\x43\x4b\x93\x00\x00\x52\xb8\x59\x46\x00\x00\x59\x45\x59\x47\x51\xfc\x4f\xa9\x5c\x7e\x49\x87\x00\x00\x59\x48\x59\x44\x00\x00\x4c\x7a\x00\x00\x59\x49\x00\x00\x00\x00\x59\x4a\x00\x00\x55\x56\x59\x4b\x00\x00\x4b\x60\x00\x00\x46\xa0\x00\x00\x00\x00\x00\x00\x46\x56\x46\xb2", /* 5c00 */ "\x00\x00\x4d\x76\x49\xfb\x00\x00\x49\x8a\x59\x4c\x49\x59\x59\x4d\x59\x4e\x51\x89\x4c\xef\x4d\x5f\x00\x00\x59\x4f\x48\xae\x45\x5d\x00\x00\x48\x4a\x00\x00\x59\x50\x00\x00\x00\x00\x53\xc0\x00\x00\x00\x00\x00\x00\x48\x71\x00\x00\x00\x00\x00\x00\x59\x51\x00\x00\x59\x52\x00\x00\x59\x53\x00\x00\x53\xae\x00\x00\x00\x00\x00\x00\x59\x54\x00\x00\x00\x00\x00\x00\x00\x00\x68\x80\x00\x00\x00\x00\x00\x00\x4b\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x55\x51\x5d\x4c\x6b\x49\xce\x4a\x86\x4f\xb9\x45\xc8\x4c\xc6\x48\x8b\x59\x56\x00\x00\x00\x00\x00\x00\x48\x5e\x59\x57\x00\x00\x4d\x94\x00\x00\x4d\xa7\x45\xe9\x00\x00\x55\xba\x59\x58\x54\x43\x59\x5a\x54\xb2\x00\x00\x59\x59\x00\x00\x48\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x43\x00\x00\x00\x00\x47\x6d\x00\x00\x53\xfb\x55\xc0\x55\xc0\x00\x00\x4a\x8e\x4c\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x5c\x00\x00\x59\x5d\x4f\xdd\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\x00\x00\x59\x5e\x00\x00\x00\x00\x59\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x60\x00\x00\x00\x00\x00\x00\x47\x4a\x52\x5a\x00\x00\x00\x00\x59\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x59\x67\x00\x00\x54\xb9\x45\xbf\x00\x00\x59\x63\x50\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x52\x62\x00\x00\x4d\x46\x00\x00\x00\x00\x59\x65\x59\x66\x47\x48\x00\x00\x59\x68\x59\x64\x59\x6a\x00\x00\x59\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x69\x00\x00\x59\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x96\x51\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9d\x59\x6d\x59\x72\x00\x00\x00\x00\x59\x71\x00\x00\x4a\xac\x48\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x59\x70\x45\x6f\x00\x00\x00\x00\x00\x00\x59\x6f\x50\x72\x00\x00\x59\x6e\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x7f\x00\x00\x00\x00\x00\x00\x59\x73\x00\x00\x00\x00\x45\x7f\x00\x00\x00\x00\x59\x77\x00\x00\x00\x00\x51\x4d\x59\x74\x50\x74\x54\xf1\x59\x7c\x59\x7b\x59\x7a\x59\x76\x00\x00\x00\x00\x00\x00\x59\x75\x00\x00\x00\x00\x59\x79\x00\x00\x00\x00\x00\x00\x00\x00\x59\x78\x00\x00\x4f\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x83\x59\x7d\x00\x00\x59\x82\x00\x00\x49\x8c\x00\x00\x59\x7e\x59\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9e\x00\x00\x00\x00\x59\x85\x59\x87\x00\x00\x4e\xd3\x00\x00\x00\x00\x00\x00\x59\x86\x00\x00\x00\x00\x59\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d80 */ "\x00\x00\x00\x00\x59\x8b\x00\x00\x59\x8a\x00\x00\x00\x00\x59\x89\x00\x00\x00\x00\x00\x00\x47\xd1\x59\x8c\x00\x00\x00\x00\x00\x00\x59\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x59\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x90\x00\x00\x59\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x92\x59\x93\x59\x95\x4c\xe8\x00\x00\x59\x94\x4f\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x96\x00\x00\x00\x00\x49\xcf\x52\x81\x00\x00\x00\x00\x59\x97\x00\x00\x59\x99\x59\x98\x00\x00\x00\x00\x51\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9a\x00\x00\x45\x67\x47\x41\x00\x00\x00\x00\x4d\x47\x00\x00\x4c\x67\x00\x00\x45\x6a\x48\x5b\x4c\xa3\x4a\x52\x00\x00\x00\x00\x59\x9b\x00\x00\x00\x00\x49\x8b\x00\x00\x00\x00\x47\xad\x4a\x4b\x4a\xe6\x4e\x7d\x59\x9c\x00\x00\x53\xcb\x00\x00\x00\x00\x00\x00\x48\x93\x00\x00\x4e\x46\x4a\x7d\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x45\x53\x47\x6b\x00\x00\x00\x00\x4f\x75\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9d\x4a\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x59\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x51\xc7\x00\x00\x00\x00\x59\x9f\x59\x9e\x59\xa1\x00\x00\x48\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x44\x00\x00\x4b\x53\x00\x00\x49\x60\x49\x82\x00\x00\x00\x00\x4d\xc5\x00\x00\x00\x00\x59\xa2\x54\xbe\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x85\x00\x00\x00\x00\x59\xa5\x00\x00\x00\x00\x59\xa4\x59\xa3\x4a\x5e\x00\x00\x59\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x49\x6b\x00\x00\x59\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xa9\x4c\xca\x00\x00\x59\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x83\x00\x00\x48\xde\x59\xaa\x4e\x7f\x59\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6f\x45\x8d\x45\x60\x59\xac\x59\xad\x00\x00\x45\xa9\x48\xda\x59\xae\x50\xa2\x4d\xaf\x52\x5f\x4b\x57\x59\xaf", /* 5e80 */ "\x00\x00\x4b\x92\x00\x00\x45\xb7\x48\x50\x00\x00\x00\x00\x55\x8d\x00\x00\x00\x00\x4a\xed\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x64\x55\x4f\x48\x54\x00\x00\x00\x00\x51\x5a\x00\x00\x45\x51\x00\x00\x00\x00\x00\x00\x59\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xde\x48\xb1\x00\x00\x00\x00\x00\x00\x45\xf8\x00\x00\x48\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xeb\x50\xc1\x46\x9a\x4c\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb1\x59\xb2\x4b\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb3\x4e\xdb\x4e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb5\x59\xb4\x00\x00\x00\x00\x54\xad\x00\x00\x00\x00\x53\x6c\x00\x00\x00\x00\x00\x00\x59\xb7\x59\xb8\x00\x00\x59\xb6\x00\x00\x55\xaf\x55\x62\x59\xba\x59\xb9\x50\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x59\xbb\x59\xbc\x00\x00\x00\x00\x59\xbd\x00\x00\x00\x00\x00\x00\x59\xbe\x59\xbf\x00\x00\x59\xc0\x59\xc1\x00\x00\x47\xd0\x50\x5b\x52\xd6\x00\x00\x46\x66\x4b\xaf\x55\x64\x00\x00\x54\x4b\x51\xd9", /* 5f00 */ "\x00\x00\x4b\x47\x00\x00\x59\xc2\x54\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x59\xc3\x50\xcd\x59\xc4\x56\x41\x56\x51\x00\x00\x46\x8f\x50\xe1\x59\xc5\x00\x00\x4b\x63\x51\xe5\x46\xda\x59\xc6\x54\xac\x45\xd3\x00\x00\x00\x00\x55\x97\x00\x00\x00\x00\x00\x00\x4c\x9b\x00\x00\x59\xc7\x00\x00\x00\x00\x00\x00\x47\xe6\x4e\x42\x53\x6b\x00\x00\x59\xc8\x00\x00\x00\x00\x00\x00\x59\xc9\x00\x00\x59\xca\x00\x00\x4b\x6e\x00\x00\x00\x00\x59\xcb\x48\xba\x00\x00\x46\xd2\x59\xcc\x00\x00\x00\x00\x00\x00\x52\xe0\x00\x00\x4a\xd4\x00\x00\x00\x00\x59\xcd\x00\x00\x00\x00\x00\x00\x53\xc7\x00\x00\x00\x00\x59\xce\x00\x00\x53\x85\x00\x00\x59\xcf\x00\x00\x59\xd0\x00\x00\x00\x00\x59\xd1\x00\x00\x46\x5f\x00\x00\x00\x00\x59\xd2\x59\xd3\x00\x00\x59\xd4\x00\x00\x00\x00\x59\xd5\x59\xd6\x00\x00\x00\x00\x00\x00\x59\xd7\x46\x90\x00\x00\x00\x00\x00\x00\x45\xe1\x59\xd8\x00\x00\x4d\xcd\x51\x59\x4e\x86\x4e\x88\x52\x9c\x00\x00\x00\x00\x49\x64\x49\x5e\x00\x00\x59\xd9\x00\x00\x00\x00\x00\x00\x59\xda\x00\x00\x49\x5d\x00\x00\x00\x00\x47\x72\x00\x00\x00\x00\x59\xdd", /* 5f80 */ "\x4c\xea\x4a\x61\x59\xdc\x59\xdb\x4e\x60\x48\xa3\x00\x00\x59\xe0\x59\xdf\x00\x00\x59\xde\x49\x91\x45\xe5\x00\x00\x00\x00\x00\x00\x50\xb3\x59\xe1\x4c\x6c\x48\xfb\x00\x00\x00\x00\x00\x00\x47\xe8\x59\xe4\x59\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x59\xe3\x00\x00\x59\xe5\x46\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xe6\x4a\x70\x4e\xf5\x00\x00\x00\x00\x59\xe7\x4b\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x46\x54\x4c\x74\x00\x00\x00\x00\x59\xe8\x00\x00\x48\xf8\x00\x00\x00\x00\x59\xe9\x55\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe7\x00\x00\x47\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x97\x4b\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xea\x46\x61\x4c\x45\x4e\xa3\x00\x00\x00\x00\x48\x95\x59\xf0\x59\xf1\x00\x00\x46\x4f\x00\x00\x00\x00\x00\x00\x59\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x60\x00\x00\x00\x00\x00\x00\x00\x00\x59\xef\x59\xee\x00\x00\x00\x00\x00\x00\x4a\xae\x00\x00\x00\x00\x59\xed\x00\x00\x00\x00\x59\xeb\x00\x00\x50\x56\x00\x00\x59\xf2", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf7\x59\xfd\x59\xf5\x00\x00\x4c\xd6\x00\x00\x00\x00\x59\xfa\x4e\xf0\x00\x00\x00\x00\x59\xf4\x00\x00\x59\xf9\x50\x9f\x46\xad\x00\x00\x00\x00\x50\x81\x59\xf3\x00\x00\x00\x00\x00\x00\x47\xcc\x59\xfc\x46\x6e\x54\xde\x59\xf6\x4e\x71\x59\xfb\x00\x00\x00\x00\x00\x00\x55\x42\x00\x00\x59\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x42\x52\x56\x5a\x4c\x00\x00\x00\x00\x5a\x49\x00\x00\x00\x00\x00\x00\x5a\x48\x4b\xca\x00\x00\x5a\x4a\x00\x00\x00\x00\x4b\xd5\x00\x00\x47\xc7\x00\x00\x00\x00\x52\x98\x00\x00\x00\x00\x00\x00\x5a\x50\x5a\x41\x00\x00\x00\x00\x5a\x44\x00\x00\x5a\x47\x5a\x43\x00\x00\x55\x94\x5a\x4b\x5a\x4d\x4e\xce\x00\x00\x00\x00\x53\xb8\x4c\x81\x5a\x45\x5a\x4f\x5a\x4e\x49\x4e\x00\x00\x4b\xb0\x53\x84\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x5a\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6080 */ "\x00\x00\x5a\x52\x00\x00\x5a\x53\x5a\x55\x5a\x51\x00\x00\x00\x00\x00\x00\x54\x69\x5a\x57\x5a\x5c\x4d\xe3\x55\x44\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x5a\x00\x00\x50\x91\x00\x00\x5a\x58\x5a\x59\x00\x00\x00\x00\x5a\x54\x5a\x56\x00\x00\x00\x00\x00\x00\x4a\xb1\x4d\xd8\x00\x00\x00\x00\x4d\xeb\x00\x00\x00\x00\x48\x73\x5a\x5b\x00\x00\x4b\xcd\x49\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x9d\x52\x76\x53\xa3\x5a\x64\x55\x54\x00\x00\x5a\x5e\x00\x00\x00\x00\x00\x00\x51\x45\x5a\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x5f\x5a\x63\x4e\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x78\x00\x00\x5a\x61\x00\x00\x5a\x65\x00\x00\x00\x00\x5a\x66\x00\x00\x54\x9d\x00\x00\x4e\xd7\x00\x00\x5a\x5f\x4f\xe0\x5a\x60\x5a\x5d\x00\x00\x4b\x68\x00\x00\x00\x00\x00\x00\x55\x4a\x50\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb8\x5a\x73\x5a\x68\x48\xb3\x5a\x6e\x00\x00\x5a\x6b\x5a\x6c\x00\x00\x54\x72\x5a\x6f\x5a\x72\x00\x00\x00\x00\x00\x00\x00\x00", /* 6100 */ "\x5a\x6d\x52\x82\x00\x00\x5a\x70\x00\x00\x00\x00\x5a\x6a\x00\x00\x53\xc8\x50\x98\x00\x00\x00\x00\x00\x00\x5a\x74\x5a\x75\x47\x63\x00\x00\x5a\x76\x00\x00\x00\x00\x00\x00\x5a\x69\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb2\x45\xc6\x00\x00\x00\x00\x00\x00\x47\xf7\x5a\x67\x5a\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7b\x5a\x7a\x00\x00\x00\x00\x00\x00\x5a\x80\x00\x00\x00\x00\x00\x00\x5a\x7e\x00\x00\x00\x00\x00\x00\x5a\x81\x00\x00\x00\x00\x5a\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7f\x5a\x84\x5a\x7c\x51\xe3\x00\x00\x00\x00\x5a\x85\x00\x00\x5a\x86\x00\x00\x00\x00\x5a\x77\x4c\xbe\x00\x00\x5a\x7d\x48\xfd\x53\x8e\x5a\x78\x4a\x76\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x92\x00\x00\x52\xe3\x00\x00\x00\x00\x5a\x8a\x5a\x8b\x5a\x8c\x00\x00\x00\x00\x5a\x83\x00\x00\x5a\x91\x00\x00\x00\x00\x4d\xdb\x4d\xd3\x00\x00\x5a\x82\x00\x00\x4e\xb6\x52\x8a\x00\x00\x00\x00\x5a\x8d\x00\x00\x00\x00\x4c\x49\x5a\x8f\x4f\xad\x5a\x90\x00\x00\x5a\x87\x5a\x8e\x5a\x93\x48\xa8\x5a\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf4\x00\x00", /* 6180 */ "\x00\x00\x00\x00\x50\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x88\x00\x00\x00\x00\x5a\x99\x00\x00\x00\x00\x00\x00\x4f\x4a\x00\x00\x55\x5b\x5a\x9a\x00\x00\x00\x00\x5a\x98\x00\x00\x5a\x96\x00\x00\x5a\x94\x5a\x95\x55\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xfc\x00\x00\x00\x00\x53\xc2\x00\x00\x51\x75\x00\x00\x5a\x9b\x5a\x97\x00\x00\x5a\x9c\x00\x00\x00\x00\x00\x00\x47\xbe\x00\x00\x00\x00\x00\x00\x4e\x6c\x00\x00\x00\x00\x00\x00\x5a\xa3\x00\x00\x00\x00\x00\x00\x51\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa1\x00\x00\x00\x00\x5a\xa2\x4e\xa4\x5a\xa0\x5a\x9f\x5a\x9e\x5a\xa4\x5a\x9d\x5a\xa6\x00\x00\x00\x00\x4e\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa8\x00\x00\x00\x00\x5a\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x53\x00\x00\x5a\xa9\x00\x00\x5a\xab\x5a\xaa\x4d\xc6\x00\x00\x5a\xad\x00\x00\x5a\xaf\x5a\xac\x5a\xb0\x5a\xae", /* 6200 */ "\x5a\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xb2\x5a\xb3\x51\x61\x00\x00\x54\x60\x5a\xb4\x51\x7f\x00\x00\x45\xba\x49\xde\x4d\xa0\x5a\xb5\x5a\xb6\x00\x00\x4d\x7f\x00\x00\x00\x00\x00\x00\x55\x95\x5a\xb7\x00\x00\x64\x6e\x5a\xb8\x54\xd9\x00\x00\x5a\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x47\x64\x00\x00\x00\x00\x00\x00\x5a\xba\x00\x00\x00\x00\x00\x00\x5a\xbb\x4f\x92\x5a\xbc\x00\x00\x5a\xbd\x5a\xbe\x50\x92\x00\x00\x00\x00\x00\x00\x45\xcf\x00\x00\x00\x00\x4c\x44\x00\x00\x00\x00\x00\x00\x47\xdc\x45\x8c\x5a\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xca\x65\x5d\x50\xad\x00\x00\x45\xcb\x00\x00\x49\xf1\x5a\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x47\xea\x00\x00\x49\x81\x00\x00\x00\x00\x55\xd5\x00\x00\x00\x00\x5a\xc3\x00\x00\x00\x00\x5a\xc1\x00\x00\x5a\xc4\x00\x00\x00\x00\x5a\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb7\x00\x00\x00\x00\x4c\x69\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7a\x00\x00\x00\x00\x4c\x76\x00\x00\x00\x00\x5a\xc6\x00\x00\x5a\xca\x4c\x48", /* 6280 */ "\x48\xf7\x00\x00\x5a\xc7\x5a\xcd\x4e\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc8\x4e\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x66\x5a\xc9\x5a\xcb\x5a\xce\x47\x51\x5a\xcc\x4a\x67\x49\x8d\x00\x00\x00\x00\x5a\xdc\x4a\x85\x00\x00\x4e\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xda\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa6\x5a\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x86\x00\x00\x00\x00\x00\x00\x4b\x90\x00\x00\x00\x00\x00\x00\x51\xe0\x00\x00\x5a\xd1\x49\xe1\x4d\x53\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd9\x00\x00\x00\x00\x4a\xa1\x5a\xd4\x5a\xdb\x5a\xd5\x5a\xdd\x5a\xd8\x00\x00\x53\x45\x4f\xba\x00\x00\x5a\xd2\x53\xa2\x5a\xd0\x4f\x61\x4b\xdb\x5a\xd7\x00\x00\x00\x00\x5a\xcf\x50\x45\x52\x5c\x00\x00\x4b\xfd\x5a\xd6\x4e\xe2\x00\x00\x00\x00\x4d\x77\x48\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc5\x4e\xe5\x5a\xdf\x5a\xe4\x00\x00\x5a\xe0\x00\x00\x50\x8d\x00\x00\x5a\xe5\x4f\x9e\x55\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd7\x5a\xe6", /* 6300 */ "\x00\x00\x46\xd8\x5a\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb6\x5a\xe3\x54\x89\x00\x00\x00\x00\x5a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe1\x4f\x81\x00\x00\x00\x00\x54\x8f\x00\x00\x00\x00\x00\x00\x48\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x87\x00\x00\x00\x00\x52\xa8\x5a\xe9\x55\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa0\x00\x00\x00\x00\x55\x7d\x5a\xe8\x00\x00\x5a\xea\x5a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x41\x00\x00\x55\x46\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x85\x4b\xb3\x5a\xf5\x00\x00\x5a\xf4\x00\x00\x00\x00\x4e\xd6\x00\x00\x00\x00\x00\x00\x54\x93\x00\x00\x00\x00\x00\x00\x5a\xef\x4d\x8f\x00\x00\x00\x00\x4f\xc0\x54\xc0\x00\x00\x00\x00\x00\x00\x00\x00", /* 6380 */ "\x5a\xed\x00\x00\x00\x00\x4d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x61\x5a\xf2\x00\x00\x00\x00\x4e\xec\x00\x00\x5a\xec\x5a\xf1\x00\x00\x00\x00\x4c\xfa\x00\x00\x00\x00\x00\x00\x5a\xeb\x00\x00\x4d\x44\x00\x00\x00\x00\x4a\xe3\x00\x00\x00\x00\x00\x00\x5a\xf3\x55\xe6\x4b\x4f\x4b\x7f\x5a\xf0\x00\x00\x47\xa8\x00\x00\x4c\xac\x48\xd5\x55\xd0\x4a\x60\x5a\xee\x55\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc1\x00\x00\x54\xcd\x5a\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa3\x00\x00\x00\x00\x5a\xf7\x00\x00\x5a\xf9\x00\x00\x00\x00\x4e\xfd\x5b\x42\x00\x00\x5a\xfa\x00\x00\x00\x00\x5a\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xcf\x49\xb9\x00\x00\x5a\xfe\x00\x00\x00\x00\x00\x00\x4c\xf2\x00\x00\x00\x00\x00\x00\x4c\x46\x49\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x60\x00\x00\x5a\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd5\x5a\xfb\x5b\x41\x00\x00\x00\x00\x00\x00\x4f\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xd8\x00\x00\x5b\x4b\x00\x00\x00\x00\x00\x00\x5b\x45\x54\xa3\x00\x00\x5b\x4c\x5b\x49\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x46\x00\x00\x5b\x4a\x00\x00\x00\x00\x00\x00\x4d\xc8\x52\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x43\x00\x00\x5b\x47\x00\x00\x00\x00\x00\x00\x4e\x49\x00\x00\x00\x00\x00\x00\x50\xa3\x00\x00\x00\x00\x00\x00\x4e\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4d\x00\x00\x00\x00\x54\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4e\x00\x00\x48\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x51\x00\x00\x55\xf5\x00\x00\x51\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6480 */ "\x00\x00\x00\x00\x00\x00\x4a\x74\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xde\x5b\x57\x00\x00\x5b\x55\x00\x00\x00\x00\x00\x00\x00\x00\x53\x48\x00\x00\x00\x00\x5b\x53\x55\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x7a\x5b\x58\x00\x00\x00\x00\x00\x00\x5b\x59\x00\x00\x51\xe1\x00\x00\x4e\x62\x4c\x77\x00\x00\x53\x72\x00\x00\x4e\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x52\x00\x00\x5b\x56\x5b\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4e\x5b\x62\x00\x00\x00\x00\x5b\x5e\x00\x00\x5b\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x9b\x5b\x54\x00\x00\x00\x00\x00\x00\x5b\x5d\x00\x00\x5b\x60\x00\x00\x00\x00\x00\x00\x5b\x61\x00\x00\x5b\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x65\x5b\x66\x55\x43\x5b\x67\x00\x00\x00\x00\x4f\xd6\x5b\x64\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcd\x00\x00\x00\x00\x5b\x68\x00\x00\x5b\x63\x5b\x6b\x00\x00\x5b\x69\x00\x00\x5b\x6a\x00\x00\x00\x00\x00\x00\x5b\x6c\x00\x00\x00\x00\x5b\x6e\x55\xf6\x00\x00", /* 6500 */ "\x5b\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x5b\x70\x5b\x71\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x72\x5b\x74\x5b\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7f\x5b\x75\x5b\x76\x00\x00\x00\x00\x47\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x77\x5b\x78\x5b\x7a\x5b\x79\x5b\x7b\x48\x8f\x00\x00\x4b\xc5\x00\x00\x00\x00\x48\xaf\x45\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf7\x00\x00\x00\x00\x5b\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x80\x5b\x7e\x46\x47\x00\x00\x4c\x5c\x00\x00\x00\x00\x00\x00\x5b\x82\x5b\x7f\x4b\x8a\x5b\x81\x47\xa5\x00\x00\x00\x00\x00\x00\x5b\x83\x51\xb1\x00\x00\x00\x00\x00\x00\x4f\xcf\x4a\xc9\x00\x00\x00\x00\x49\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb0\x00\x00\x00\x00\x00\x00\x46\xcc\x00\x00\x5b\x84\x00\x00\x47\x7c\x4b\xf3\x00\x00\x49\x51\x5b\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6580 */ "\x00\x00\x00\x00\x5b\x86\x5b\x87\x00\x00\x00\x00\x00\x00\x45\xca\x58\xed\x46\x8e\x00\x00\x00\x00\x51\x9d\x00\x00\x47\xdb\x00\x00\x4b\x80\x52\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x83\x00\x00\x46\x4e\x00\x00\x5b\x89\x4b\xd1\x00\x00\x00\x00\x5b\x8a\x00\x00\x55\x81\x00\x00\x00\x00\x54\xcf\x51\x41\x00\x00\x51\xc2\x00\x00\x00\x00\x00\x00\x5b\x8b\x4e\xfc\x49\x89\x00\x00\x4e\xa5\x45\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8c\x00\x00\x45\xcd\x00\x00\x00\x00\x4d\xa4\x48\x88\x00\x00\x00\x00\x00\x00\x5b\x8f\x00\x00\x5b\x8d\x5b\x90\x4a\xcf\x5b\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7b\x5b\x91\x00\x00\x00\x00\x4a\xdc\x00\x00\x00\x00\x5b\x92\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xab\x00\x00\x5b\x93\x00\x00\x51\x65\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x95\x5b\x94\x4b\x77\x00\x00\x00\x00\x45\x62\x4d\x9d\x4c\x7b\x4d\x6a\x46\xe9\x00\x00\x00\x00\x4d\x67\x47\xec\x00\x00\x00\x00\x00\x00\x5b\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa3\x5b\x9c\x00\x00\x00\x00\x00\x00\x00\x00", /* 6600 */ "\x5b\x97\x00\x00\x5b\x99\x5b\x9b\x00\x00\x00\x00\x4f\xe7\x46\xfe\x00\x00\x5b\x9d\x52\x8e\x00\x00\x46\xd1\x00\x00\x45\xa6\x54\xe8\x00\x00\x00\x00\x00\x00\x47\xe9\x4c\x59\x5b\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa3\x00\x00\x5b\xa1\x47\xa9\x47\xac\x00\x00\x00\x00\x00\x00\x5b\xa4\x46\x62\x00\x00\x55\x9d\x48\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x45\xb3\x5b\xa0\x4b\xbb\x00\x00\x52\xeb\x00\x00\x00\x00\x5b\xa2\x5b\x9f\x51\x93\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9f\x4c\x98\x00\x00\x00\x00\x5b\x9e\x00\x00\x52\x51\x46\x51\x48\xb0\x5b\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa6\x00\x00\x4b\xb2\x00\x00\x00\x00\x00\x00\x51\xea\x00\x00\x00\x00\x54\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa8\x00\x00\x5b\xab\x00\x00\x00\x00\x00\x00\x5b\xad\x5b\xa9\x4f\xce\x00\x00\x00\x00\x5b\xac\x00\x00\x5b\xaa\x5b\xa7\x55\x6d\x50\xa0\x51\xb2\x4c\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x49\xf8\x49\x93\x5b\xb0\x00\x00\x00\x00\x5b\xaf\x47\x95\x00\x00\x4a\xf8\x00\x00\x00\x00\x00\x00\x46\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6680 */ "\x00\x00\x4c\x83\x00\x00\x5b\xb1\x5b\xb3\x00\x00\x00\x00\x4f\x46\x5b\xb2\x4e\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xab\x00\x00\x00\x00\x4f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6c\x4b\xe2\x5b\xb5\x5b\xb4\x00\x00\x00\x00\x00\x00\x5b\xb7\x00\x00\x00\x00\x5b\xb6\x00\x00\x4c\xc7\x00\x00\x00\x00\x00\x00\x50\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x50\x93\x00\x00\x00\x00\x4a\xfe\x00\x00\x00\x00\x00\x00\x5b\xb8\x00\x00\x4c\xb2\x00\x00\x00\x00\x00\x00\x5b\xbf\x52\x43\x00\x00\x00\x00\x5b\xbe\x00\x00\x5b\xbd\x5b\xbb\x00\x00\x5b\xba\x00\x00\x00\x00\x5b\xb9\x00\x00\x00\x00\x4c\x56\x00\x00\x5b\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc0\x00\x00\x00\x00\x51\x52\x5b\xc1\x00\x00\x4b\xfe\x52\xa6\x00\x00\x00\x00\x51\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc2\x00\x00\x00\x00\x5b\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc4\x00\x00\x49\xb6\x4e\xbc\x4a\x6d\x5b\xc5\x00\x00\x5b\xc6\x47\x9d\x4e\xd2\x5b\xc7\x53\x97\x57\x8d\x49\x5f\x51\x66\x4b\xc3", /* 6700 */ "\x46\xf5\x00\x00\x00\x00\x56\xac\x00\x00\x00\x00\x00\x00\x00\x00\x45\x61\x46\x85\x00\x00\x4b\xc4\x00\x00\x47\xd4\x5b\xc8\x54\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa4\x55\xf3\x5b\xca\x48\x6e\x00\x00\x00\x00\x00\x00\x47\xbb\x00\x00\x47\x5c\x5b\xcb\x46\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcd\x5b\xce\x45\x6c\x00\x00\x49\xc6\x47\x46\x45\x66\x48\xf9\x5b\xd0\x00\x00\x00\x00\x4d\x42\x00\x00\x00\x00\x4e\xa2\x00\x00\x5b\xd2\x5b\xd3\x5b\xd4\x00\x00\x4d\x96\x00\x00\x00\x00\x50\xf0\x00\x00\x5b\xd1\x00\x00\x53\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd5\x00\x00\x00\x00\x46\x68\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x51\x50\xd0\x46\xbc\x45\x56\x00\x00\x54\xc1\x00\x00\x00\x00\x50\xf4\x00\x00\x00\x00\x5b\xd7\x00\x00\x00\x00\x52\x5d\x00\x00\x5b\xd6\x4b\x4b\x54\x80\x47\x5e\x51\xa6\x52\x91\x5b\xd9\x46\x76\x5b\xd8\x00\x00\x00\x00\x00\x00\x5b\xde\x00\x00\x00\x00\x50\x8b\x00\x00\x4c\x63\x5b\xdc\x45\x57\x5b\x9a\x5b\xe0\x00\x00\x4a\xa6\x00\x00\x52\x80\x00\x00\x00\x00\x00\x00\x00\x00\x54\xdf\x00\x00\x45\x78\x46\xb4", /* 6780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xdb\x00\x00\x52\x5e\x00\x00\x5b\xda\x00\x00\x5b\xdf\x54\xf2\x00\x00\x00\x00\x00\x00\x4a\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x78\x00\x00\x45\xa2\x00\x00\x00\x00\x49\xd9\x00\x00\x47\xb9\x46\x72\x00\x00\x00\x00\x4f\xd2\x5b\xe2\x52\xd0\x00\x00\x00\x00\x00\x00\x5b\xe1\x00\x00\x00\x00\x5b\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x61\x00\x00\x00\x00\x00\x00\x54\xc9\x5b\xe6\x00\x00\x4e\xe8\x5b\xe4\x5b\xe9\x5b\xf2\x00\x00\x5b\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf0\x55\xcd\x00\x00\x00\x00\x4a\x7f\x00\x00\x5b\xf4\x00\x00\x00\x00\x00\x00\x52\xd9\x00\x00\x00\x00\x00\x00\x5b\xf1\x49\x80\x50\x4a\x4e\xc1\x00\x00\x48\x9b\x4d\xea\x00\x00\x00\x00\x00\x00\x4f\xd8\x00\x00\x4e\xe1\x00\x00\x00\x00\x5b\xed\x54\xf3\x00\x00\x00\x00\x00\x00\x5b\xee\x00\x00\x5b\xeb\x00\x00\x00\x00\x5b\xea\x00\x00\x5b\xe8\x00\x00\x00\x00\x5b\xe7\x00\x00\x5b\xef\x5b\xe5\x00\x00\x4b\xea\x00\x00\x46\xea\x47\xa7\x51\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x73\x00\x00\x00\x00\x50\x54\x4a\xc1", /* 6800 */ "\x00\x00\x5b\xf3\x52\xd1\x47\xd3\x45\xfa\x51\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xe3\x00\x00\x00\x00\x4d\xcc\x47\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf5\x00\x00\x00\x00\x48\xbf\x52\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xde\x48\x56\x52\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfa\x00\x00\x55\xda\x00\x00\x00\x00\x00\x00\x4b\x9e\x46\x67\x00\x00\x00\x00\x47\xde\x4d\xe0\x00\x00\x00\x00\x5b\xf8\x50\xd6\x49\xab\x4a\xda\x5b\xf9\x00\x00\x5b\xf6\x00\x00\x48\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf7\x5b\xfb\x00\x00\x49\xc0\x48\x79\x5b\xec\x53\x6d\x53\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfd\x00\x00\x00\x00\x47\x71\x4d\x88\x00\x00\x51\xf3\x00\x00\x00\x00\x00\x00\x5b\xfc\x00\x00\x00\x00\x00\x00\x50\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x4b\x00\x00\x4e\x77\x5c\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x44\x5c\x42", /* 6880 */ "\x00\x00\x4e\x44\x00\x00\x5c\x48\x00\x00\x47\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfe\x5b\xfe\x5c\x45\x00\x00\x00\x00\x00\x00\x50\xda\x5c\x47\x00\x00\x00\x00\x52\xcc\x00\x00\x00\x00\x00\x00\x53\xbc\x00\x00\x4e\x92\x00\x00\x5c\x43\x52\xc6\x00\x00\x50\xac\x00\x00\x00\x00\x00\x00\x58\xa4\x52\xd3\x48\x58\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x46\x00\x00\x51\xe4\x46\x82\x53\x59\x00\x00\x53\x61\x00\x00\x5c\x4c\x49\xad\x00\x00\x00\x00\x5c\x4a\x5c\x4d\x00\x00\x5c\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb1\x00\x00\x5c\x60\x00\x00\x53\x86\x55\xca\x5c\x50\x4e\xf1\x00\x00\x5c\x56\x00\x00\x5c\x5f\x00\x00\x00\x00\x4b\x5a\x00\x00\x5c\x57\x5c\x59\x00\x00\x54\xc2\x5c\x52\x00\x00\x4b\xef\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xa9\x5c\x5e\x5c\x54\x00\x00\x5c\x5d\x00\x00\x00\x00\x00\x00\x5c\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x9d\x5c\x5b\x00\x00\x00\x00\x53\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x94\x55\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x54\x68\x5c\x4f\x00\x00\x00\x00\x5c\x5c\x4f\xf7\x00\x00\x00\x00\x5c\x51\x00\x00\x00\x00\x4d\xfd\x5c\x55\x47\xc5\x4b\xa0\x5c\x4e\x00\x00\x00\x00\x5c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xed\x53\x70\x51\x63\x48\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x63\x5c\x61\x5c\x64\x00\x00\x53\xfa\x5c\x53\x00\x00\x5c\x65\x00\x00\x5c\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x71\x00\x00\x00\x00\x00\x00\x54\xa7\x00\x00\x5c\x69\x00\x00\x00\x00\x52\xed\x00\x00\x00\x00\x00\x00\x5c\x6f\x00\x00\x4c\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x95\x5c\x6b\x55\xc5\x00\x00\x00\x00\x00\x00\x5c\x70\x53\x4c\x00\x00\x54\xe2\x5c\x73\x5c\x72\x00\x00\x4a\xdf\x52\x7c\x4d\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x6e\x00\x00\x5c\x6c\x54\xa2\x00\x00\x45\x6b\x53\xef\x4f\xae\x00\x00\x00\x00\x00\x00\x52\xb3\x5c\x6d\x49\xb7\x00\x00\x5c\x68\x5c\x6a\x5c\x67\x00\x00\x00\x00\x52\xba\x47\x61\x5c\x74\x00\x00", /* 6980 */ "\x00\x00\x5c\x75\x4c\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x52\x00\x00\x00\x00\x00\x00\x49\xeb\x00\x00\x00\x00\x54\x76\x00\x00\x00\x00\x55\xc7\x5c\x86\x00\x00\x00\x00\x5c\x79\x00\x00\x00\x00\x4d\x7e\x5c\x85\x00\x00\x00\x00\x00\x00\x5c\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4a\x00\x00\x00\x00\x5c\x80\x5c\x76\x00\x00\x53\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x82\x00\x00\x00\x00\x5c\x7c\x5c\x77\x00\x00\x5c\x7a\x00\x00\x5c\x83\x00\x00\x00\x00\x00\x00\x4d\xb9\x00\x00\x00\x00\x5c\x7f\x47\x96\x4e\xfa\x52\xdb\x5c\x7d\x00\x00\x54\x8c\x00\x00\x00\x00\x5c\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x48\x48\x68\x81\x00\x00\x00\x00\x00\x00\x5c\x81\x5c\x87\x00\x00\x00\x00\x00\x00\x5c\x90\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8f\x5c\x89\x00\x00\x00\x00\x5c\x94\x00\x00\x5c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8d\x00\x00\x4b\x5c\x00\x00\x4d\xb7\x00\x00\x5c\x8c", /* 6a00 */ "\x00\x00\x00\x00\x5c\x8a\x00\x00\x00\x00\x53\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x95\x49\x4f\x5c\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x97\x5c\x99\x5c\x93\x00\x00\x00\x00\x53\x8b\x00\x00\x49\x66\x00\x00\x5c\x8b\x00\x00\x00\x00\x5c\x91\x53\x9b\x00\x00\x48\x64\x5c\x96\x5c\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xdc\x45\xf2\x4b\x6f\x00\x00\x00\x00\x5c\x88\x00\x00\x5c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x55\x85\x5c\x9f\x00\x00\x5c\xa7\x46\xcf\x4e\x69\x00\x00\x00\x00\x4b\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x9c\x00\x00\x5c\xa6\x5c\xa1\x5c\xa5\x00\x00\x00\x00\x45\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc2\x5c\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x00\x00\x55\xd4\x5c\xa2\x00\x00\x00\x00\x00\x00\x5c\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xa8\x5c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xaf\x4f\xb2", /* 6a80 */ "\x4f\xf5\x00\x00\x00\x00\x00\x00\x5c\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xab\x55\xee\x00\x00\x5c\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x55\x00\x00\x00\x00\x00\x00\x5c\x9e\x00\x00\x5c\xad\x5c\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb2\x00\x00\x5c\xb1\x00\x00\x54\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb5\x00\x00\x00\x00\x5c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb7\x5c\xb4\x52\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xba\x00\x00\x55\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xbb\x4d\xa6\x00\x00\x00\x00\x5c\xb8\x53\x62\x00\x00\x00\x00\x5c\xb9\x00\x00\x5c\xbc\x00\x00\x00\x00\x00\x00\x51\xc5\x00\x00\x5c\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc2\x52\xee\x00\x00\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xde\x5c\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc3\x00\x00\x00\x00\x00\x00\x5c\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf7\x00\x00\x5c\xc5\x4c\xb5\x45\x97\x00\x00\x4b\x9d\x00\x00\x00\x00\x00\x00\x4a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc7\x5c\xc6\x5c\xc8\x51\x7d\x00\x00\x00\x00\x4c\xf8\x4e\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xcc\x00\x00\x00\x00\x00\x00\x5c\xcb\x00\x00\x5c\xcd\x00\x00\x00\x00\x46\xf7\x00\x00\x54\x87\x00\x00\x5c\xce\x00\x00\x00\x00\x4d\x4e\x5c\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xcf\x00\x00\x5c\xd1\x00\x00\x00\x00\x00\x00\x5c\xd2\x00\x00\x5c\xd3\x48\xd8\x45\x77\x4d\x4c\x00\x00\x45\xb1\x00\x00\x00\x00\x47\xd8\x55\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x9f\x00\x00\x00\x00\x00\x00\x48\xe4\x49\x55\x00\x00\x00\x00\x00\x00\x5c\xd4\x5c\xd5\x00\x00\x49\x99\x00\x00\x00\x00\x00\x00\x5c\xd6", /* 6b80 */ "\x5c\xd7\x00\x00\x00\x00\x5c\xd9\x5c\xd8\x00\x00\x4f\x42\x00\x00\x00\x00\x53\xa4\x48\x65\x49\x92\x00\x00\x5c\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdc\x4e\x73\x00\x00\x5c\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdf\x5c\xe0\x00\x00\x00\x00\x00\x00\x5c\xe1\x00\x00\x5c\xe2\x5c\xe3\x5c\xe4\x54\x59\x47\xed\x00\x00\x5c\xe5\x00\x00\x00\x00\x49\xe9\x50\xc0\x5c\xe6\x00\x00\x00\x00\x48\x49\x58\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5b\x5c\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe8\x00\x00\x49\x69\x49\xf5\x00\x00\x00\x00\x00\x00\x4c\x97\x5c\xe9\x47\x4e\x00\x00\x5c\xea\x00\x00\x53\xd7\x00\x00\x00\x00\x46\xe2\x00\x00\x00\x00\x00\x00\x5c\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xed\x5c\xec\x00\x00\x00\x00\x5c\xef\x00\x00\x00\x00\x00\x00\x5c\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8e\x00\x00\x47\x56\x00\x00\x5c\xf1\x5c\xf2\x00\x00\x00\x00\x45\xb9\x00\x00\x00\x00\x00\x00\x5c\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf5\x5c\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x9c\x00\x00\x00\x00\x4c\xa4\x45\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6e\x5c\xf6\x53\x4d\x4d\x84\x49\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x50\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf8\x00\x00\x4e\xc4\x00\x00\x00\x00\x4e\x82\x00\x00\x5c\xf9\x55\x5e\x5c\xf7\x45\xad\x45\xe8\x00\x00\x5c\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x45\x00\x00\x52\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xfe\x50\xd2\x00\x00\x50\xc8\x5d\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa4\x00\x00\x00\x00\x49\x4c\x5d\x44\x00\x00", /* 6c80 */ "\x00\x00\x5d\x42\x5c\xfb\x55\xd9\x00\x00\x00\x00\x5c\xfd\x00\x00\x4c\x8f\x00\x00\x00\x00\x00\x00\x55\x98\x5c\xfc\x00\x00\x00\x00\x5d\x48\x00\x00\x5d\x47\x4f\xf8\x00\x00\x00\x00\x47\xfd\x00\x00\x00\x00\x4e\xad\x5d\x41\x5d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x75\x45\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xec\x00\x00\x00\x00\x5d\x4d\x00\x00\x00\x00\x5d\x50\x00\x00\x46\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xaa\x46\x5c\x5d\x52\x45\x84\x46\xc6\x5d\x4b\x5d\x51\x4e\x6f\x00\x00\x4a\x58\x00\x00\x00\x00\x5d\x49\x5d\x4c\x00\x00\x00\x00\x00\x00\x46\xee\x4d\xb8\x00\x00\x51\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd7\x00\x00\x46\x4a\x00\x00\x55\xc6\x00\x00\x5d\x55\x5d\x4e\x5d\x53\x00\x00\x5d\x4f\x00\x00\x00\x00\x00\x00\x4e\x87\x46\xca\x4d\x4b\x00\x00\x4e\x56\x00\x00\x00\x00\x49\x44\x00\x00\x5d\x56\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x54\x46\xf3\x5d\x4a\x00\x00\x4f\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xda\x5d\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x4e\x00\x00\x52\xb6\x00\x00\x54\x50\x00\x00\x00\x00\x4d\x98\x5d\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xdc\x00\x00\x00\x00\x00\x00\x50\xb7\x4f\xd4\x5d\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x72\x5d\x5c\x00\x00\x52\xac\x5d\x59\x00\x00\x50\xbc\x00\x00\x00\x00\x47\xb4\x00\x00\x5d\x5b\x4a\x72\x00\x00\x00\x00\x46\xfc\x00\x00\x00\x00\x4c\xc9\x46\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x66\x5d\x64\x00\x00\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5f\x5d\x63\x00\x00\x46\x6b\x00\x00\x00\x00\x46\xeb\x4a\x9d\x00\x00\x55\xcc\x00\x00\x4a\x8c\x5d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x7e\x00\x00\x00\x00\x45\xa7\x4d\x41\x5d\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x6a\x00\x00\x5d\x60\x48\x6b\x00\x00\x00\x00\x00\x00\x4f\x7d\x00\x00\x5d\x67\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x61\x00\x00\x5d\x68\x5d\x6b\x00\x00\x00\x00\x4d\xda\x00\x00\x5d\x69\x55\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x72\x00\x00\x00\x00\x4f\x91\x00\x00\x00\x00\x4a\x45\x00\x00\x00\x00\x5d\x6f\x00\x00\x00\x00\x5d\x73\x00\x00\x00\x00\x00\x00\x4e\x74\x00\x00\x00\x00\x00\x00\x4a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x7c\x5d\x75\x5d\x71\x00\x00\x00\x00\x00\x00\x52\xc7\x5d\x78\x00\x00\x00\x00\x5d\x74\x00\x00\x4a\xbf\x5d\x7b\x00\x00\x00\x00\x5d\x82\x00\x00\x00\x00\x55\xe1\x5d\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x77\x00\x00\x00\x00\x4c\xa5\x00\x00\x00\x00\x5d\x81\x00\x00\x5d\x70\x00\x00\x5d\x79\x00\x00\x5d\x83\x55\x4e\x5d\x76\x00\x00\x5d\x84\x00\x00\x00\x00\x47\x77\x5d\x7f\x48\x94\x00\x00\x48\xea\x00\x00\x4b\x46\x5d\x7a\x5d\x6c\x5d\x7d\x4a\x91\x5d\x80\x00\x00\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x96\x00\x00\x54\x41\x47\x69\x4a\xc0\x5d\x6d\x48\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x98\x00\x00\x51\x64\x00\x00\x00\x00\x00\x00\x5d\x87\x50\xe4\x47\x8a\x00\x00\x5d\x99\x00\x00\x5d\x92\x52\x7a\x45\xd2\x00\x00\x5d\x8c\x5d\x98\x4e\x43\x51\xa0\x5d\x93\x00\x00\x49\x50\x00\x00\x5d\x8f\x49\x45\x5d\x85\x5d\x6e\x48\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9a\x5d\x8a\x5d\x96\x00\x00\x5d\x95\x00\x00\x5d\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x88\x00\x00\x00\x00\x5d\x91\x5d\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x52\x00\x00\x51\x55\x00\x00\x00\x00\x53\xf3\x5d\x8e\x00\x00\x00\x00\x5d\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xbd\x00\x00\x00\x00\x00\x00\x5d\x8d\x00\x00\x00\x00\x5d\x86\x48\xbd\x00\x00\x00\x00\x5d\x88\x00\x00\x00\x00\x00\x00\x5d\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6b\x4c\x90", /* 6e80 */ "\x47\x5b\x00\x00\x5d\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x5d\xa5\x47\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xce\x00\x00\x5d\x9d\x00\x00\x00\x00\x00\x00\x4d\xc4\x4a\x4d\x00\x00\x5d\xa8\x00\x00\x00\x00\x52\x71\x00\x00\x00\x00\x53\x76\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa0\x00\x00\x00\x00\x5d\xa2\x00\x00\x00\x00\x00\x00\x48\xbe\x5d\x9e\x00\x00\x00\x00\x54\x97\x00\x00\x00\x00\x5d\x9f\x00\x00\x5d\xa6\x00\x00\x00\x00\x5d\xa7\x00\x00\x5d\xa1\x4e\xe6\x00\x00\x00\x00\x00\x00\x52\xa9\x00\x00\x48\x57\x5d\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa2\x00\x00\x52\x4a\x5d\xa3\x5d\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa3\x4d\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xab\x00\x00\x00\x00\x5d\xb1\x00\x00\x00\x00\x5d\xaf\x00\x00\x4f\xb7\x00\x00\x00\x00\x5d\xb7\x5d\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xad\x5d\xb4", /* 6f00 */ "\x00\x00\x4b\x78\x4f\xbc\x00\x00\x00\x00\x00\x00\x4d\xae\x00\x00\x00\x00\x54\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xc4\x00\x00\x55\x75\x00\x00\x5d\xb6\x49\xed\x54\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8e\x00\x00\x4f\x58\x54\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x6e\x4e\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xb0\x5d\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xb5\x5d\xae\x00\x00\x5d\xa9\x00\x00\x00\x00\x00\x00\x5d\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x4a\xc2\x00\x00\x00\x00\x00\x00\x5d\xc3\x00\x00\x00\x00\x5d\xbd\x4d\xc0\x00\x00\x00\x00\x46\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd2\x00\x00\x5d\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xbe\x4c\x93\x5d\xbc\x54\x46\x00\x00\x00\x00\x00\x00\x5d\xbf\x00\x00\x00\x00\x00\x00\x5d\xba\x00\x00\x5d\xb9\x00\x00\x5d\xc2\x00\x00\x00\x00\x00\x00", /* 6f80 */ "\x5d\xbb\x55\xa0\x5d\xc0\x00\x00\x48\x87\x00\x00\x5d\xb8\x00\x00\x5d\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xc5\x00\x00\x00\x00\x5d\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xcb\x00\x00\x5d\xc9\x4e\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x89\x00\x00\x5d\xc8\x00\x00\x5d\xca\x00\x00\x00\x00\x00\x00\x5d\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xd0\x50\xbe\x5d\xcf\x4a\xce\x00\x00\x00\x00\x5d\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xd4\x5d\xd1\x00\x00\x00\x00\x5d\xd3\x00\x00\x00\x00\x5d\xcd\x00\x00\x00\x00\x00\x00\x5d\xd0\x53\x80\x50\x7e\x00\x00\x00\x00\x51\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa3\x5d\xd2\x00\x00\x5d\xd6\x4d\xd4\x00\x00\x50\x55\x00\x00\x5d\xe2\x00\x00\x5d\xd5\x66\x58\x00\x00\x00\x00\x00\x00\x5d\xdb\x00\x00\x00\x00\x00\x00\x51\x87\x00\x00", /* 7000 */ "\x00\x00\x5d\xdd\x00\x00\x00\x00\x00\x00\x5d\xd7\x55\x50\x5d\xd8\x00\x00\x5d\xd9\x00\x00\x5d\xda\x00\x00\x00\x00\x00\x00\x5d\xde\x00\x00\x5d\xdc\x00\x00\x00\x00\x00\x00\x55\xd1\x00\x00\x00\x00\x5d\xe4\x00\x00\x5d\xe0\x5d\xdf\x00\x00\x52\xb0\x53\x5c\x5d\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xde\x52\xae\x5d\xe3\x00\x00\x00\x00\x00\x00\x46\x5b\x00\x00\x00\x00\x00\x00\x5d\xe5\x00\x00\x5d\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x85\x00\x00\x00\x00\x00\x00\x4b\x65\x4a\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x73\x00\x00\x00\x00\x00\x00\x54\x6a\x4c\xbc\x00\x00\x00\x00", /* 7080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xea\x00\x00\x00\x00\x00\x00\x49\x7d\x4f\xcb\x00\x00\x00\x00\x00\x00\x4d\xad\x00\x00\x00\x00\x00\x00\x4f\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xed\x5d\xee\x48\x61\x5d\xf0\x5d\xec\x00\x00\x00\x00\x00\x00\x52\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xef\x47\x88\x49\xd7\x52\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd1\x00\x00\x00\x00\x5d\xf2\x00\x00\x00\x00\x00\x00\x50\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf3\x00\x00\x00\x00\x00\x00\x53\x8c\x00\x00\x5d\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x87\x00\x00\x00\x00\x00\x00\x5d\xf8\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x53\xee\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xfa\x54\x4f\x00\x00\x5d\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x47\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xfc\x5d\xfd\x00\x00\x4c\x6f\x00\x00\x00\x00\x5e\x42\x00\x00\x54\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x85\x5e\x43\x00\x00\x00\x00\x4b\xdd\x00\x00\x00\x00\x5d\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x41\x00\x00\x54\xea\x53\x57\x5d\xfe\x47\x42\x00\x00\x54\xa0\x00\x00\x00\x00\x5e\x44\x00\x00\x4c\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x90\x00\x00\x00\x00", /* 7180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x47\x00\x00\x00\x00\x00\x00\x5e\x45\x00\x00\x46\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x46\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9d\x5e\x48\x00\x00\x00\x00\x00\x00\x4f\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbb\x00\x00\x00\x00\x00\x00\x5e\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x47\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x4d\x00\x00\x00\x00\x5e\x4b\x00\x00\x49\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf8\x5e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x53\x00\x00\x4a\x79\x00\x00\x5e\x4e\x00\x00\x5e\x51\x50\x47\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfb\x5e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x66\x54\xce\x5e\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x56\x54\xe6\x57\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x54\x00\x00\x00\x00\x00\x00\x5e\x59\x00\x00\x5e\x57\x5e\x58\x00\x00\x5e\x5a\x5e\x5b", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x5c\x00\x00\x00\x00\x5e\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x5e\x00\x00\x4c\x87\x00\x00\x5e\x60\x5e\x5f\x00\x00\x00\x00\x5e\x61\x00\x00\x5e\x62\x00\x00\x00\x00\x53\xa9\x45\xcc\x00\x00\x00\x00\x00\x00\x50\x96\x5e\x63\x5e\x64\x52\xdd\x4c\x79\x5e\x65\x5e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x67\x47\x67\x4a\xbd\x00\x00\x00\x00\x5e\x68\x55\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x69\x53\xfc\x00\x00\x49\x73\x00\x00\x55\xb7\x00\x00\x4a\xaf\x00\x00\x50\x9a\x55\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7b\x00\x00\x46\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x58\x00\x00\x5e\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x46\xa2\x00\x00\x00\x00\x00\x00\x54\x8a\x5e\x6b\x00\x00", /* 7280 */ "\x53\x54\x5e\x6c\x5e\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6f\x00\x00\x00\x00\x00\x00\x5e\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xdc\x00\x00\x5e\x71\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x72\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc5\x00\x00\x00\x00\x4c\xa7\x00\x00\x5e\x73\x5e\x74\x00\x00\x00\x00\x00\x00\x48\x52\x00\x00\x00\x00\x5e\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x75\x00\x00\x00\x00\x00\x00\x4e\x5a\x5e\x76\x5e\x78\x00\x00\x5e\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7a\x00\x00\x51\xdb\x00\x00\x5e\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x52\x74\x00\x00\x4e\xcf\x00\x00\x50\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7d\x5e\x7e\x5e\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7b\x00\x00\x00\x00\x4a\xdb\x4c\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x80\x52\xfe\x5e\x7f\x00\x00\x00\x00\x50\x6f\x54\xd6\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x84\x5e\x81\x00\x00\x00\x00\x00\x00\x4a\x51\x5e\x83\x5e\x85\x00\x00\x4e\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x86\x5e\x8b\x00\x00\x00\x00\x00\x00\x5e\x88\x49\xc5\x4f\xd0\x00\x00\x00\x00\x4f\x45\x5e\x89\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x87\x00\x00\x50\x4f\x53\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8c\x4c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x95\x51\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8e\x5e\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x65\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x92\x00\x00\x5e\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x93\x00\x00\x4d\x61\x00\x00\x00\x00\x5e\x96\x00\x00\x5e\x94\x5e\x95\x00\x00\x51\xcb\x5e\x97\x00\x00\x00\x00\x00\x00\x00\x00", /* 7380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x6e\x00\x00\x00\x00\x47\x83\x00\x00\x45\xfd\x00\x00\x49\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf9\x5e\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9c\x00\x00\x5e\x99\x00\x00\x00\x00\x5e\x9d\x00\x00\x4c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x98\x5e\x9e\x53\x99\x00\x00\x00\x00\x4d\x5d\x5e\x9b\x00\x00\x00\x00\x00\x00\x5e\xa2\x00\x00\x00\x00\x00\x00\x5e\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa5\x00\x00\x4b\x99\x00\x00\x00\x00\x5e\xa1\x00\x00\x5e\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb9\x00\x00\x00\x00\x50\x66\x5e\xa3\x00\x00\x00\x00\x5e\xa4\x00\x00\x00\x00\x00\x00\x5e\xa8\x00\x00\x00\x00\x5e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xb7\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x48\xdb\x00\x00\x5e\xa9\x45\xeb\x5e\xa7\x00\x00\x50\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5c\x00\x00\x00\x00\x5e\xac\x5e\xaa\x00\x00\x00\x00\x5e\xad\x5e\xab\x00\x00\x00\x00\x00\x00\x5e\xae\x00\x00\x00\x00\x00\x00\x5e\xaf\x54\x53\x4c\xd8\x52\xa3\x52\x9f\x00\x00\x00\x00\x00\x00\x5e\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb2\x00\x00\x5e\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb1\x00\x00\x00\x00\x00\x00\x5e\xb4\x53\xf1\x4f\x52\x5e\xb6\x00\x00\x4b\x5b\x5e\xb3\x50\x8c\x00\x00\x5e\xbc\x5e\xb9\x5e\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb7\x5e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbe\x5e\xb8\x00\x00\x00\x00\x51\x88\x00\x00\x00\x00\x68\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbf\x00\x00", /* 7480 */ "\x00\x00\x00\x00\x00\x00\x52\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbd\x00\x00\x50\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc1\x5e\xc0\x00\x00\x00\x00\x5e\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x64\x00\x00\x00\x00\x00\x00\x5e\xc7\x00\x00\x54\x52\x5e\xc8\x00\x00\x00\x00\x49\xc2\x5e\xc9\x00\x00\x5e\xca\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xcb\x00\x00\x5e\xcc\x5e\xce\x5e\xcd\x00\x00\x00\x00\x00\x00\x4c\xd4\x5e\xcf\x5e\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7500 */ "\x00\x00\x5e\xd1\x00\x00\x5e\xd3\x5e\xd2\x5e\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xd6\x5e\xd5\x5e\xd7\x00\x00\x00\x00\x54\x95\x00\x00\x5e\xd8\x00\x00\x53\xe6\x00\x00\x00\x00\x4b\x55\x00\x00\x4b\x66\x00\x00\x52\xa7\x00\x00\x5e\xd9\x45\x99\x00\x00\x00\x00\x00\x00\x45\xc0\x00\x00\x55\xd7\x5e\xda\x00\x00\x45\xb6\x00\x00\x00\x00\x4d\x58\x5e\xdb\x00\x00\x00\x00\x58\xfe\x45\x63\x46\x7c\x48\xa0\x49\x67\x00\x00\x00\x00\x00\x00\x45\x7c\x57\x65\x00\x00\x45\x55\x46\x77\x5e\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xdd\x00\x00\x5e\xe1\x00\x00\x00\x00\x5e\xe0\x5e\xdf\x5b\x7c\x47\xae\x5e\xde\x00\x00\x55\x8f\x00\x00\x47\x8b\x00\x00\x00\x00\x4e\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x47\xab\x5e\xe3\x5e\xe2\x4d\x72\x50\x86\x00\x00\x00\x00\x49\xfe\x00\x00\x55\x9a\x00\x00\x5e\xe4\x4c\xf0\x51\xb4\x5e\xe5\x00\x00\x52\xfd\x48\xb9\x5e\xe6\x00\x00\x5e\xe9\x00\x00\x5e\xe7\x4a\xa9\x00\x00\x00\x00\x4e\x54\x5e\xe8\x00\x00\x5e\xeb\x50\xdd\x5e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xd4", /* 7580 */ "\x00\x00\x00\x00\x5e\xec\x00\x00\x00\x00\x00\x00\x5e\xed\x5e\xee\x00\x00\x5e\xf0\x5e\xef\x4e\xa0\x00\x00\x00\x00\x51\x71\x55\xb0\x00\x00\x4c\xb4\x00\x00\x00\x00\x5e\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf2\x00\x00\x00\x00\x5e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf5\x00\x00\x5e\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xfd\x4d\x97\x5e\xf7\x00\x00\x5e\xf9\x00\x00\x00\x00\x5e\xfb\x54\xe1\x00\x00\x00\x00\x5e\xfc\x5e\xfa\x51\x42\x00\x00\x00\x00\x00\x00\x5e\xf6\x5e\xf8\x00\x00\x49\xbf\x00\x00\x4e\x4a\x00\x00\x00\x00\x5f\x41\x00\x00\x00\x00\x5e\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x42\x00\x00\x51\x82\x53\xfd\x00\x00\x00\x00\x55\x49\x5f\x43\x00\x00\x4c\x47\x00\x00\x00\x00\x5f\x45\x00\x00\x00\x00\x00\x00\x51\x74\x5f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4a\x00\x00\x5f\x4c\x5f\x4d\x50\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4b\x00\x00\x5f\x48\x00\x00\x5f\x46\x5f\x47", /* 7600 */ "\x00\x00\x5f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4f\x00\x00\x5f\x4e\x00\x00\x52\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x50\x5f\x52\x5f\x53\x5f\x54\x00\x00\x5f\x55\x00\x00\x54\xa4\x5f\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x00\x00\x00\x00\x00\x00\x5f\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb7\x00\x00\x00\x00\x00\x00\x5f\x5c\x5f\x59\x5f\x5a\x00\x00\x00\x00\x00\x00\x54\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xaa\x00\x00\x00\x00\x00\x00\x53\x7e\x00\x00\x5f\x5b\x00\x00\x00\x00\x00\x00\x5f\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5e\x5f\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x62\x5f\x60\x5f\x61\x5f\x63\x00\x00\x5f\x64\x00\x00\x00\x00\x00\x00\x5f\x65\x00\x00\x5f\x66\x00\x00\x00\x00\x00\x00\x5f\x67\x00\x00\x53\x9a\x00\x00\x46\x4b\x46\xe8\x5f\x68\x46\x59\x45\x4b\x00\x00", /* 7680 */ "\x5f\x6a\x00\x00\x5f\x69\x5f\x6b\x45\xef\x00\x00\x4a\xb0\x4c\xbb\x5f\x6c\x00\x00\x00\x00\x5f\x6d\x00\x00\x00\x00\x52\x99\x00\x00\x52\xa4\x00\x00\x00\x00\x4e\x81\x00\x00\x00\x00\x53\x96\x00\x00\x00\x00\x5f\x6e\x5f\x6f\x5f\x72\x5f\x70\x00\x00\x5f\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xda\x00\x00\x5f\x74\x00\x00\x00\x00\x00\x00\x5f\x75\x00\x00\x00\x00\x68\x68\x5f\x76\x5f\x77\x5f\x78\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc7\x00\x00\x00\x00\x5f\x79\x53\xba\x00\x00\x00\x00\x50\x57\x00\x00\x51\xb5\x00\x00\x47\x74\x00\x00\x00\x00\x5f\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x7d\x00\x00\x00\x00\x00\x00\x5f\x7c\x4d\x65\x00\x00\x00\x00\x00\x00\x48\x44\x5c\xc9\x00\x00\x5f\x7e\x4b\x84\x00\x00\x5f\x7f\x00\x00\x49\xe3\x48\x90\x5f\x80\x00\x00\x53\xf7\x00\x00\x00\x00\x5f\x81\x00\x00\x00\x00\x00\x00\x46\x75\x00\x00\x00\x00\x00\x00\x50\x80\x00\x00\x46\x74\x00\x00\x00\x00\x00\x00\x46\x78\x00\x00\x00\x00\x5f\x83\x00\x00\x00\x00\x50\x82\x00\x00", /* 7700 */ "\x00\x00\x48\x47\x00\x00\x00\x00\x5f\x86\x00\x00\x00\x00\x5f\x85\x5f\x84\x52\xbc\x00\x00\x4d\xa2\x45\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8b\x00\x00\x00\x00\x51\xca\x46\x42\x4e\x6a\x00\x00\x00\x00\x00\x00\x5f\x87\x5f\x89\x5f\x8a\x00\x00\x00\x00\x5f\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8c\x5f\x8d\x00\x00\x4e\x5f\x00\x00\x49\xa5\x00\x00\x00\x00\x00\x00\x47\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8e\x5f\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x90\x5f\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6c\x00\x00\x4a\x73\x00\x00\x5f\x94\x4a\x96\x00\x00\x5f\x91\x00\x00\x00\x00\x5f\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x97\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x96\x5f\x95", /* 7780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x99\x00\x00\x00\x00\x5f\x98\x00\x00\x00\x00\x5f\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9c\x00\x00\x5f\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb0\x52\x7d\x00\x00\x00\x00\x5f\x9d\x00\x00\x00\x00\x4f\x9b\x00\x00\x00\x00\x5f\x9e\x00\x00\x00\x00\x5f\x9f\x00\x00\x5f\xa3\x5f\xa1\x5f\xa2\x00\x00\x5f\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x50\x00\x00\x00\x00\x5f\xa6\x50\xed\x5f\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc1\x5f\xa8\x00\x00\x45\xb0\x00\x00\x55\xc9\x00\x00\x4e\x4d\x00\x00\x00\x00\x00\x00\x4a\x82\x5f\xa9\x51\xbb\x00\x00\x00\x00\x00\x00\x45\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xab\x00\x00\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x49\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xad\x00\x00\x46\xd3\x4c\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb0\x5f\xae\x00\x00\x00\x00\x00\x00\x4d\x45\x54\xb4\x52\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc2\x00\x00\x4a\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x84\x4a\xef\x00\x00\x00\x00\x53\x69\x00\x00\x00\x00\x52\xbf\x00\x00\x5f\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb6\x00\x00\x5f\xb9\x00\x00\x00\x00\x00\x00", /* 7880 */ "\x00\x00\x4f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb7\x51\x95\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xba\x53\x56\x5f\xb5\x00\x00\x00\x00\x51\x7b\x00\x00\x4f\xb1\x00\x00\x52\xd2\x00\x00\x54\x5b\x00\x00\x00\x00\x5f\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbb\x00\x00\x00\x00\x00\x00\x4d\xf8\x00\x00\x50\x7d\x5f\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7a\x00\x00\x5f\xc4\x00\x00\x5f\xc3\x00\x00\x00\x00\x4a\x62\x00\x00\x00\x00\x00\x00\x5f\xc5\x5f\xc0\x00\x00\x00\x00\x00\x00\x5f\xc6\x5f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x9c\x5f\xbf\x00\x00\x00\x00\x5f\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc8\x49\xb4\x00\x00\x00\x00\x00\x00\x5f\xc7\x00\x00\x00\x00\x48\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xca\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x51\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x9c\x00\x00\x00\x00\x5f\xcd\x4d\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xb9\x00\x00\x00\x00\x00\x00\x51\x4c\x5f\xd0\x5f\xcf\x00\x00\x00\x00\x00\x00\x5f\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x53\x00\x00\x49\x58\x00\x00\x46\x63\x00\x00\x5f\xd3\x53\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x92\x4e\xd8\x4f\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8c\x00\x00\x00\x00\x55\x5c\x00\x00\x5f\xd8\x4c\xdc\x53\x65\x00\x00\x00\x00\x5f\xd7\x00\x00\x00\x00\x4c\xeb\x45\xa1\x5f\xd6\x5f\xd4\x00\x00\x4f\x89\x00\x00\x00\x00\x49\xf9\x00\x00\x00\x00\x4d\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x53\x00\x00\x00\x00\x52\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xda", /* 7980 */ "\x50\xe7\x4d\x75\x00\x00\x00\x00\x50\xae\x4f\x87\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdb\x00\x00\x00\x00\x52\x86\x4b\xa7\x45\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdf\x00\x00\x5f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xaa\x4f\xd7\x00\x00\x00\x00\x5f\xe0\x00\x00\x00\x00\x00\x00\x54\xf5\x00\x00\x50\xfa\x55\x53\x00\x00\x5f\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6a\x5f\xe2\x00\x00\x00\x00\x55\x5d\x54\x63\x53\xd0\x45\xf1\x46\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe3\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xed\x4d\xba\x00\x00\x00\x00\x5f\xe4\x00\x00\x00\x00\x4c\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x83\x00\x00\x54\xb5\x00\x00\x5f\xe7\x50\x8f\x00\x00\x4c\x8a\x5f\xe5\x00\x00\x4d\x9f\x00\x00\x00\x00\x5f\xe6\x00\x00\x00\x00\x00\x00\x4b\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x75\x00\x00\x00\x00\x00\x00\x00\x00", /* 7a00 */ "\x52\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe8\x00\x00\x00\x00\x47\xf4\x00\x00\x5f\xe9\x47\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xfa\x00\x00\x00\x00\x50\x87\x5f\xea\x5f\xeb\x4d\xcf\x00\x00\x52\x96\x00\x00\x00\x00\x5f\xec\x53\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x92\x00\x00\x00\x00\x5f\xed\x47\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xef\x00\x00\x00\x00\x00\x00\x5f\xf0\x4d\xbe\x4f\xc7\x5f\xee\x4f\xd5\x4e\x94\x00\x00\x48\xd4\x5f\xf1\x00\x00\x00\x00\x52\xbe\x00\x00\x00\x00\x5f\xf3\x00\x00\x00\x00\x00\x00\x48\x91\x52\x54\x50\xb8\x50\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf5\x5f\xf4\x4e\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf6\x00\x00\x4f\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf8\x00\x00\x00\x00\x00\x00\x4b\x86\x00\x00\x49\x86\x00\x00\x00\x00\x5f\xf9\x47\x8d\x00\x00\x00\x00\x5f\xfa\x00\x00\x4e\x91", /* 7a80 */ "\x00\x00\x4a\xfd\x00\x00\x51\x69\x54\x99\x00\x00\x00\x00\x00\x00\x5f\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb0\x4b\xe9\x00\x00\x5f\xfc\x5f\xfe\x60\x41\x5f\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x42\x4a\x65\x00\x00\x00\x00\x00\x00\x50\xaa\x49\xa7\x60\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x44\x00\x00\x00\x00\x00\x00\x55\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x47\x00\x00\x00\x00\x00\x00\x60\x46\x60\x49\x60\x48\x00\x00\x60\x4a\x52\xf0\x00\x00\x60\x4b\x45\xdd\x00\x00\x60\x4c\x00\x00\x60\x4d\x00\x00\x60\x4f\x60\x4e\x60\x51\x00\x00\x60\x50\x00\x00\x00\x00\x00\x00\x60\x52\x60\x53\x00\x00\x49\xe7\x60\x54\x00\x00\x66\xc1\x47\x6e\x60\x55\x60\x56\x54\x6b\x00\x00\x4d\x50\x60\x57\x60\x58\x00\x00\x00\x00\x51\xc8\x60\x5a\x00\x00\x60\x5b\x00\x00\x48\xef\x60\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x71\x00\x00\x60\x5d\x45\xf5\x54\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x52\x87", /* 7b00 */ "\x00\x00\x00\x00\x60\x5e\x00\x00\x54\xd5\x00\x00\x60\x62\x00\x00\x51\xcf\x00\x00\x60\x61\x60\x60\x00\x00\x00\x00\x00\x00\x60\x5f\x00\x00\x49\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe7\x60\x65\x00\x00\x4f\x41\x00\x00\x00\x00\x60\x66\x00\x00\x47\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf4\x4f\xd9\x00\x00\x60\x68\x00\x00\x00\x00\x00\x00\x46\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x63\x00\x00\x60\x67\x60\x64\x00\x00\x00\x00\x49\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6c\x4a\xc7\x00\x00\x4d\x9b\x46\xa7\x00\x00\x4b\x8f\x60\x6b\x60\x6a\x00\x00\x52\xf5\x60\x69\x4b\x45\x4b\x7c\x00\x00\x49\xd0\x00\x00\x46\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x84\x00\x00\x50\x48\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4e\x00\x00\x60\x73\x00\x00\x60\x71\x60\x72\x00\x00\x00\x00\x60\x70\x60\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7b80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9b\x4f\x51\x00\x00\x00\x00\x00\x00\x55\xa4\x00\x00\x60\x77\x00\x00\x60\x7b\x00\x00\x00\x00\x60\x7a\x00\x00\x4e\xe0\x4c\xcc\x00\x00\x48\x43\x60\x75\x60\x7c\x60\x79\x00\x00\x60\x78\x60\x74\x60\x82\x60\x76\x00\x00\x46\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x00\x00\x00\x00\x51\x8d\x00\x00\x00\x00\x00\x00\x4a\xfb\x00\x00\x00\x00\x60\x80\x00\x00\x00\x00\x00\x00\x50\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa1\x51\xe8\x00\x00\x00\x00\x49\xe8\x00\x00\x60\x81\x4f\xb6\x00\x00\x49\xa8\x00\x00\x60\x7e\x60\x7f\x00\x00\x00\x00\x60\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x83\x00\x00\x00\x00\x48\x75\x00\x00\x00\x00\x00\x00\x4a\xd8\x60\x87\x60\x85\x00\x00\x00\x00\x60\x84\x00\x00\x00\x00\x00\x00\x54\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8c\x00\x00\x00\x00\x60\x8e\x60\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7c00 */ "\x60\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8d\x00\x00\x00\x00\x00\x00\x4f\x53\x57\x8a\x60\x8a\x60\x88\x00\x00\x00\x00\x51\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x60\x92\x00\x00\x4b\xec\x00\x00\x60\x8f\x00\x00\x00\x00\x00\x00\x60\x90\x00\x00\x00\x00\x60\x91\x60\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x93\x51\xab\x00\x00\x00\x00\x00\x00\x00\x00\x60\x95\x52\x70\x4f\x4c\x60\x96\x00\x00\x00\x00\x60\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x97\x4d\xfe\x00\x00\x51\xf2\x60\x9a\x00\x00\x00\x00\x00\x00\x4f\x99\x00\x00\x60\x99\x00\x00\x60\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9c\x4c\xee\x00\x00\x00\x00\x00\x00\x52\xaa\x60\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x6f\x00\x00\x60\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf0\x00\x00", /* 7c80 */ "\x00\x00\x55\xe7\x4e\x85\x60\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x9e\x00\x00\x4f\xcc\x00\x00\x53\xc9\x00\x00\x00\x00\x60\xa1\x00\x00\x4c\xa9\x00\x00\x00\x00\x4c\x4b\x00\x00\x4d\x59\x4b\xf7\x00\x00\x00\x00\x4f\xc8\x00\x00\x00\x00\x00\x00\x4b\xfb\x00\x00\x60\xa5\x60\xa3\x00\x00\x60\xa2\x52\xab\x00\x00\x4b\xd4\x60\xa7\x00\x00\x00\x00\x60\xa4\x00\x00\x60\xa6\x60\xab\x00\x00\x00\x00\x60\xaa\x60\xa9\x60\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xac\x00\x00\x00\x00\x00\x00\x60\xae\x46\x6c\x00\x00\x51\xbc\x00\x00\x60\xb0\x00\x00\x00\x00\x60\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x54\x71\x00\x00\x00\x00\x00\x00\x51\x60\x00\x00\x00\x00\x00\x00\x60\xb1\x00\x00\x00\x00\x00\x00\x48\x84\x00\x00\x60\xb3\x00\x00\x00\x00\x00\x00\x60\xb4\x00\x00\x54\x92\x51\x8c\x51\x4b\x00\x00\x60\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xb5\x00\x00\x00\x00\x60\xb6\x00\x00\x60\xb7\x00\x00\x60\xb8\x00\x00\x46\xc7\x00\x00\x52\xc2\x48\xfa\x00\x00\x00\x00\x51\xfe\x00\x00", /* 7d00 */ "\x46\xdb\x00\x00\x60\xba\x00\x00\x47\xbd\x4b\x67\x60\xb9\x00\x00\x00\x00\x00\x00\x60\xbd\x4c\xf9\x00\x00\x49\xe2\x00\x00\x00\x00\x4f\xb5\x00\x00\x00\x00\x00\x00\x47\xa6\x60\xbc\x00\x00\x4f\x47\x4c\x78\x46\x80\x49\xf3\x4f\xf3\x60\xbb\x00\x00\x00\x00\x00\x00\x47\x9f\x48\x77\x4c\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf0\x55\x92\x00\x00\x60\xc0\x51\x48\x47\x68\x00\x00\x60\xc1\x4e\x59\x00\x00\x60\xc3\x00\x00\x00\x00\x00\x00\x4c\xe4\x4c\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc2\x00\x00\x00\x00\x49\xf4\x55\x63\x46\xb9\x60\xbe\x60\xc5\x00\x00\x60\xc4\x00\x00\x00\x00\x60\xbf\x46\x88\x00\x00\x60\xc9\x60\xcc\x46\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd0\x60\xc6\x00\x00\x50\x6d\x00\x00\x00\x00\x4c\xe7\x4e\xf7\x60\xcd\x00\x00\x00\x00\x47\x57\x00\x00\x60\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcb\x00\x00\x00\x00\x48\x81\x52\x68\x60\xc7\x00\x00\x4a\xe4\x4a\xf3\x00\x00\x00\x00\x49\xf6\x00\x00\x00\x00\x00\x00\x54\xed\x00\x00\x00\x00", /* 7d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x74\x00\x00\x00\x00\x00\x00\x60\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x4a\x47\xcb\x54\xeb\x50\x70\x00\x00\x00\x00\x60\xdc\x60\xda\x00\x00\x60\xd8\x60\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd7\x51\xa3\x48\x80\x60\xd1\x60\xd9\x60\xdd\x48\xcb\x4a\x53\x00\x00\x4d\xc9\x60\xd3\x00\x00\x60\xd4\x60\xdb\x00\x00\x54\xd3\x54\xa6\x00\x00\x60\xd6\x49\xdc\x48\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd5\x00\x00\x00\x00\x4b\x97\x53\x7d\x00\x00\x00\x00\x00\x00\x47\x93\x00\x00\x48\xa5\x4a\x9b\x00\x00\x00\x00\x60\xde\x60\xe1\x00\x00\x60\xdf\x00\x00\x46\x87\x00\x00\x60\xe8\x60\xe0\x60\xe3\x00\x00\x4a\x80\x60\xe7\x00\x00\x00\x00\x60\xe2\x00\x00\x00\x00\x00\x00\x48\x4e\x4c\xfc\x00\x00\x00\x00\x55\x6b\x00\x00\x00\x00\x4e\x9a\x00\x00\x00\x00\x60\xe6\x00\x00\x48\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe4\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x4b\xaa\x00\x00\x00\x00\x48\x59\x60\xe9\x00\x00\x00\x00\x00\x00\x60\xee\x60\xea\x60\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe6\x00\x00\x00\x00\x4f\x6b\x60\xed\x00\x00\x60\xeb\x5b\xcc\x55\xa8\x00\x00\x00\x00\x4e\x93\x00\x00\x00\x00\x00\x00\x00\x00\x49\xe4\x00\x00\x00\x00\x49\xf7\x00\x00\x00\x00\x60\xf2\x60\xf9\x00\x00\x00\x00\x60\xf4\x00\x00\x60\xf8\x00\x00\x60\xf6\x60\xef\x60\xf5\x00\x00\x60\xf3\x48\x66\x00\x00\x00\x00\x47\x59\x00\x00\x60\xf7\x00\x00\x00\x00\x60\xf0\x00\x00\x60\xf1\x00\x00\x48\x68\x53\x73\x00\x00\x52\xda\x00\x00\x00\x00\x00\x00\x00\x00\x60\xfd\x00\x00\x48\x9a\x51\xd4\x60\xfb\x00\x00\x00\x00\x60\xfe\x61\x41\x00\x00\x00\x00\x60\xfa\x60\xfc\x00\x00\x00\x00\x52\xda\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf1\x61\x42\x00\x00\x61\x45\x61\x44\x53\x73\x00\x00\x4d\x9a\x00\x00\x00\x00\x4b\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x43\x00\x00\x61\x47\x61\x46\x61\x48\x00\x00\x61\x4a", /* 7e80 */ "\x00\x00\x00\x00\x55\xeb\x61\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x52\x78\x61\x4c\x51\xbf\x00\x00\x61\x4e\x00\x00\x61\x4d\x55\xfa\x52\x73\x00\x00\x61\x4f\x61\x50\x61\x51\x00\x00\x61\x52\x00\x00\x00\x00\x00\x00\x00\x00\x61\x53\x53\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x84\x00\x00\x61\x54\x00\x00\x61\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x56\x00\x00\x61\x57\x00\x00\x00\x00\x00\x00\x00\x00\x61\x58\x54\xcb\x61\x59\x00\x00\x51\x6e\x61\x5a\x00\x00\x00\x00\x61\x5c\x61\x5b\x00\x00\x00\x00\x61\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5e\x61\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x61\x61\x60\x61\x62\x4c\x4e\x55\xef\x00\x00\x00\x00\x46\x8c\x00\x00\x4f\x82\x00\x00\x4c\x99\x00\x00\x00\x00\x55\x79\x00\x00\x55\xa5\x61\x63\x5a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f80 */ "\x00\x00\x00\x00\x61\x64\x61\x66\x00\x00\x4d\xfa\x61\x65\x61\x67\x61\x68\x00\x00\x4a\xd1\x00\x00\x61\x69\x00\x00\x45\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6d\x00\x00\x00\x00\x61\x6c\x61\x6b\x00\x00\x00\x00\x61\x6e\x00\x00\x61\x6f\x47\xb1\x00\x00\x00\x00\x00\x00\x55\x96\x45\x98\x00\x00\x00\x00\x00\x00\x00\x00\x61\x71\x61\x70\x00\x00\x00\x00\x61\x72\x00\x00\x00\x00\x00\x00\x61\x74\x00\x00\x61\x75\x61\x73\x00\x00\x00\x00\x00\x00\x47\x8f\x00\x00\x00\x00\x00\x00\x4f\xfb\x00\x00\x00\x00\x00\x00\x61\x78\x61\x79\x00\x00\x00\x00\x00\x00\x61\x7a\x00\x00\x4d\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x69\x00\x00\x54\xf9\x61\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x69\x61\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7d\x00\x00\x00\x00\x61\x7e\x00\x00\x55\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb6\x00\x00\x00\x00\x61\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x80\x00\x00\x51\xf6\x4d\xb5\x00\x00\x00\x00\x00\x00", /* 8000 */ "\x52\xa0\x49\x85\x00\x00\x47\x60\x61\x81\x46\x70\x53\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x61\x82\x51\xe6\x00\x00\x00\x00\x00\x00\x49\x8e\x00\x00\x61\x83\x00\x00\x00\x00\x49\x9a\x00\x00\x4f\xec\x54\xe4\x61\x84\x00\x00\x00\x00\x61\x85\x00\x00\x00\x00\x00\x00\x00\x00\x61\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xab\x00\x00\x00\x00\x4e\x99\x00\x00\x00\x00\x00\x00\x00\x00\x61\x89\x00\x00\x55\xb8\x00\x00\x61\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8b\x00\x00\x00\x00\x00\x00\x61\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8c\x00\x00\x00\x00\x00\x00\x4b\xb5\x00\x00\x61\x8d\x00\x00\x54\x79\x00\x00\x00\x00\x00\x00\x48\xbb\x61\x8e\x00\x00\x4b\x89\x61\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xca\x61\x93\x00\x00\x61\x92\x61\x91\x4d\xa8\x00\x00\x61\x94\x48\xd7\x00\x00\x61\x95\x00\x00\x00\x00\x00\x00\x61\x96\x53\xe4\x61\x97", /* 8080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x61\x98\x61\x99\x53\xb6\x4b\x41\x00\x00\x4a\x42\x00\x00\x55\x7f\x4e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x9a\x00\x00\x00\x00\x52\x67\x00\x00\x52\x6a\x00\x00\x61\x9b\x52\x92\x00\x00\x4c\x8c\x00\x00\x00\x00\x00\x00\x4c\xc5\x53\x82\x00\x00\x00\x00\x49\x7b\x00\x00\x00\x00\x00\x00\x4b\x79\x4c\xfb\x00\x00\x61\x9e\x61\x9c\x00\x00\x50\xeb\x00\x00\x52\xd5\x48\xac\x00\x00\x54\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf6\x61\xa3\x00\x00\x4e\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb2\x00\x00\x52\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x88\x00\x00\x00\x00\x61\xa1\x61\xa4\x61\x9f\x00\x00\x61\xa2\x50\xb6\x00\x00\x00\x00\x4d\x63\x00\x00\x00\x00\x4e\xe9\x61\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa6\x00\x00\x61\xa7\x00\x00\x00\x00\x4e\xab\x00\x00\x00\x00\x00\x00\x4b\xe3\x00\x00\x00\x00\x00\x00\x61\xb0\x47\x4f\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x48\x74\x00\x00\x00\x00\x50\x51\x55\xec\x47\xe3\x50\x79\x61\xa5\x53\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5c\x61\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xaa\x00\x00\x4a\xb4\x00\x00\x4c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x61\xad\x00\x00\x00\x00\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x61\xac\x00\x00\x00\x00\x00\x00\x00\x00\x61\xab\x00\x00\x00\x00\x52\xc4\x00\x00\x4d\x62\x61\xaf\x00\x00\x61\xae\x52\x47\x4c\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb3\x61\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x51\xce\x00\x00\x00\x00\x61\xb2\x00\x00\x4b\xa4\x61\xb1\x00\x00\x00\x00\x61\xb6\x00\x00\x00\x00\x00\x00\x4d\xb6\x4c\xa0\x52\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9a", /* 8180 */ "\x61\xba\x00\x00\x61\xbb\x61\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb8\x00\x00\x61\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd8\x00\x00\x00\x00\x00\x00\x61\xbf\x00\x00\x61\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x51\x91\x00\x00\x4d\x8a\x50\x60\x00\x00\x00\x00\x61\xbc\x00\x00\x00\x00\x61\xbe\x61\xc1\x00\x00\x00\x00\x00\x00\x4e\xf6\x61\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xc4\x00\x00\x00\x00\x50\x76\x00\x00\x61\xc0\x00\x00\x00\x00\x61\xc3\x00\x00\x61\xca\x00\x00\x00\x00\x61\xc7\x61\xc6\x53\x5f\x61\xc8\x00\x00\x61\xc9\x00\x00\x00\x00\x00\x00\x54\x74\x00\x00\x61\xc5\x61\xcb\x00\x00\x00\x00\x00\x00\x61\xcc\x00\x00\x00\x00\x00\x00\x61\xcd\x00\x00\x4d\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x61\xce\x61\xcf\x61\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd1\x61\xd2\x00\x00\x00\x00\x4a\x47\x00\x00\x53\x8a\x00\x00\x51\x73\x4c\xd0\x00\x00\x45\xc3\x00\x00\x00\x00\x4d\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x48\x4c\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd3\x61\xd4\x4a\x89\x00\x00\x61\xd5\x00\x00", /* 8200 */ "\x00\x00\x61\xd6\x61\xd7\x00\x00\x00\x00\x61\xd8\x00\x00\x53\x58\x46\x6a\x57\x78\x62\xba\x00\x00\x50\x94\x61\xd9\x4c\x58\x00\x00\x61\xda\x00\x00\x61\xdb\x00\x00\x00\x00\x00\x00\x61\xdc\x4e\x5b\x4c\xaa\x00\x00\x00\x00\x4f\xc1\x4f\xb8\x00\x00\x4a\x63\x4b\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdd\x48\x9f\x61\xde\x49\x56\x00\x00\x61\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe1\x00\x00\x54\xdb\x4b\x87\x53\xac\x61\xe0\x46\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xae\x61\xe3\x61\xe4\x00\x00\x00\x00\x61\xe5\x00\x00\x61\xe6\x00\x00\x00\x00\x61\xe8\x00\x00\x61\xe7\x00\x00\x4c\x4a\x00\x00\x61\xe9\x00\x00\x61\xea\x61\xeb\x00\x00\x00\x00\x55\xb4\x45\xc4\x00\x00\x61\xec\x47\xc3\x00\x00\x00\x00\x00\x00\x4d\x54\x61\xed\x53\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xee\x00\x00", /* 8280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9a\x00\x00\x61\xef\x00\x00\x00\x00\x00\x00\x00\x00\x61\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbd\x00\x00\x00\x00\x00\x00\x49\x72\x00\x00\x61\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7b\x4a\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x61\xf1\x61\xf4\x54\x42\x00\x00\x4f\xe5\x00\x00\x46\xd9\x00\x00\x46\x83\x00\x00\x00\x00\x00\x00\x00\x00\x49\x53\x4d\xd0\x00\x00\x61\xf3\x00\x00\x4e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4b\x61\xf9\x55\x59\x52\xd7\x00\x00\x00\x00\x4a\xb8\x00\x00\x62\x46\x00\x00\x53\x77\x62\x43\x00\x00\x62\x41\x61\xf7\x00\x00\x61\xf5\x00\x00\x61\xf6\x00\x00\x46\xd6\x4a\x5f\x54\xb0\x00\x00\x00\x00\x00\x00\x4d\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xee\x00\x00\x61\xfb\x61\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x61\xfe\x62\x44\x61\xfd\x00\x00\x00\x00\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x61\xf8\x46\x46\x61\xfc\x54\x7a\x4b\xd3\x62\x42\x00\x00\x00\x00\x62\x45\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4a\x53\xf6\x62\x52\x00\x00\x00\x00\x00\x00\x50\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x58\x00\x00\x00\x00\x00\x00\x00\x00\x47\x4c\x00\x00\x00\x00\x62\x51\x00\x00\x00\x00\x00\x00\x62\x50\x00\x00\x62\x4b\x54\x7b\x00\x00\x62\x49\x62\x47\x49\x77\x00\x00\x4d\xf7\x62\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4f\x53\xb3\x00\x00\x00\x00\x48\x42\x53\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5f\x62\x4e\x00\x00\x46\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5f\x00\x00\x62\x5a\x00\x00\x4b\xa1\x00\x00\x00\x00\x00\x00\x49\xe0\x62\x5d\x00\x00\x00\x00\x62\x5b", /* 8380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x62\x00\x00\x54\x86\x00\x00\x62\x63\x62\x5c\x00\x00\x00\x00\x00\x00\x62\x59\x00\x00\x00\x00\x00\x00\x00\x00\x62\x60\x00\x00\x00\x00\x62\x57\x00\x00\x00\x00\x00\x00\x62\x53\x00\x00\x00\x00\x00\x00\x51\xee\x62\x55\x62\x61\x00\x00\x62\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x64\x00\x00\x62\x54\x54\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc9\x00\x00\x00\x00\x00\x00\x62\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x75\x00\x00\x00\x00\x00\x00\x62\x6e\x00\x00\x00\x00\x00\x00\x47\x53\x00\x00\x62\x67\x00\x00\x00\x00\x46\xd7\x00\x00\x4c\x73\x00\x00\x62\x68\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x51\x00\x00\x00\x00\x51\x80\x00\x00\x62\x6c\x00\x00\x00\x00\x00\x00\x4b\xa8\x00\x00\x00\x00\x53\xd4\x62\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6a\x00\x00\x54\xe9\x00\x00\x00\x00\x00\x00\x4b\x6c\x51\x6d\x48\xcc\x62\x71\x00\x00\x62\x65\x00\x00\x62\x74\x62\x69\x00\x00\x00\x00\x00\x00\x62\x76\x00\x00\x62\x6a\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x62\x6b\x54\xf7\x00\x00\x00\x00\x62\x6f\x00\x00\x00\x00\x52\xc9\x62\x6d\x50\xdb\x62\x72\x54\x82\x00\x00\x00\x00\x00\x00\x00\x00\x62\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x73\x00\x00\x54\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4a\x62\x77\x00\x00\x4b\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7c\x00\x00\x00\x00\x00\x00\x62\x85\x00\x00\x00\x00\x62\x84\x00\x00\x00\x00\x00\x00\x62\x79\x47\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x82\x00\x00\x62\x7e\x45\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x59\x00\x00\x00\x00\x00\x00\x48\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x47\x62\x78\x50\x71\x00\x00\x00\x00\x4e\x72\x00\x00\x00\x00\x62\x81\x00\x00\x62\x7c\x4f\x79\x51\x6c\x62\x7f\x62\x83\x00\x00\x54\x4e\x00\x00\x00\x00\x00\x00\x50\xd9\x00\x00\x62\x7b\x00\x00\x62\x7d\x50\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x62\x80\x00\x00\x62\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x93\x00\x00\x00\x00\x00\x00\x4f\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x50\x95\x00\x00\x00\x00\x52\x59\x00\x00\x00\x00\x62\x89\x00\x00\x62\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x90\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb2\x00\x00\x62\x8a\x00\x00\x00\x00\x00\x00\x4a\xba\x62\x87\x00\x00\x62\x8c\x50\xb9\x00\x00\x00\x00\x62\x88\x00\x00\x62\x8f\x00\x00\x00\x00\x4c\x94\x00\x00\x62\x91\x00\x00\x00\x00\x50\x83\x62\x86\x4f\x6d\x00\x00\x62\x8b\x00\x00\x00\x00\x62\x8e\x4f\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x62\x92\x00\x00\x00\x00\x62\x94\x62\x8d\x00\x00\x52\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x88\x00\x00\x4b\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8b\x00\x00\x00\x00\x62\x95", /* 8500 */ "\x52\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6c\x00\x00\x55\x7b\x62\x9c\x62\x9b\x00\x00\x62\x97\x62\x98\x00\x00\x54\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9a\x00\x00\x54\xa8\x00\x00\x53\xf8\x00\x00\x00\x00\x4f\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x99\x4e\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd1\x00\x00\x00\x00\x62\xa0\x62\xa5\x00\x00\x52\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x62\xa4\x53\xa8\x62\xa6\x62\xa7\x00\x00\x00\x00\x55\x65\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9e\x00\x00\x62\xa9\x00\x00\x54\x91\x62\xa3\x62\xa1\x62\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x50\xde\x54\xf0\x51\xd3\x62\xa8\x00\x00\x62\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb7\x00\x00", /* 8580 */ "\x62\xaa\x00\x00\x00\x00\x00\x00\x4a\x92\x00\x00\x00\x00\x62\xb4\x62\xac\x00\x00\x62\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb8\x62\xad\x00\x00\x00\x00\x62\xb1\x00\x00\x00\x00\x4c\xec\x00\x00\x51\xad\x00\x00\x62\xb2\x62\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xab\x00\x00\x4f\xbf\x00\x00\x62\xaf\x4c\xf1\x54\x5a\x49\x98\x46\xe1\x00\x00\x62\xb3\x53\xf9\x62\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xbf\x62\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xbc\x00\x00\x00\x00\x00\x00\x4e\xed\x00\x00\x62\xbe\x62\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc4\x62\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x68\x62\xc3\x00\x00\x00\x00\x00\x00\x4f\xf6\x4c\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe2\x00\x00\x62\xc5\x53\xed\x50\x5f\x00\x00\x00\x00\x62\xc9\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x54\x96\x00\x00\x00\x00\x00\x00\x4e\xda\x4c\xbf\x00\x00\x00\x00\x62\xc6\x62\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc7\x00\x00\x00\x00\x5c\xbd\x5c\xbe\x00\x00\x00\x00\x62\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa6\x00\x00\x5f\x82\x62\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcf\x4a\xab\x00\x00\x52\x60\x00\x00\x00\x00\x00\x00\x52\xfb\x62\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x72\x00\x00\x52\x50\x00\x00\x55\x88\x62\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x00\x00\x00\x00\x00\x00\x4b\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xb6\x00\x00\x51\x44\x00\x00\x00\x00\x00\x00\x00\x00", /* 8680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xaa\x62\xd8\x62\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd5\x00\x00\x4f\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd6\x55\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd7\x62\xd9\x62\xe3\x00\x00\x00\x00\x00\x00\x62\xdc\x62\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xdd\x00\x00\x62\xde\x4f\xea\x00\x00\x62\xe0\x00\x00\x53\xd8\x00\x00\x4d\xf9\x62\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbb\x00\x00\x62\xe9\x00\x00\x00\x00\x62\xe5\x62\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe6\x00\x00\x00\x00\x62\xe7\x4e\x66\x53\xa5\x4f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x4e\x62\xf3\x00\x00\x62\xef\x00\x00\x00\x00\x55\x99\x00\x00", /* 8700 */ "\x62\xed\x00\x00\x4e\xcd\x62\xee\x00\x00\x00\x00\x62\xeb\x00\x00\x62\xec\x62\xf1\x62\xf4\x00\x00\x00\x00\x62\xf2\x00\x00\x00\x00\x00\x00\x62\xf0\x62\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xdc\x00\x00\x62\xfa\x00\x00\x53\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf8\x00\x00\x00\x00\x00\x00\x62\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf5\x00\x00\x00\x00\x52\x6d\x00\x00\x00\x00\x00\x00\x62\xf7\x00\x00\x00\x00\x00\x00\x62\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x52\xa1\x62\xfd\x00\x00\x62\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x63\x49\x00\x00\x53\x47\x00\x00\x63\x42\x00\x00\x63\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xfb\x63\x46\x00\x00\x00\x00\x63\x4a\x00\x00\x00\x00\x51\xc3\x00\x00\x63\x43\x00\x00\x63\x45\x00\x00\x00\x00\x00\x00\x63\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x41\x00\x00\x4e\x6e\x00\x00\x62\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4b", /* 8780 */ "\x00\x00\x00\x00\x63\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x00\x00\x63\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x00\x00\x00\x00\x63\x4f\x00\x00\x00\x00\x00\x00\x63\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd6\x63\x59\x00\x00\x63\x51\x00\x00\x00\x00\x63\x52\x00\x00\x00\x00\x00\x00\x63\x56\x00\x00\x63\x4d\x54\xf4\x00\x00\x00\x00\x00\x00\x63\x50\x00\x00\x00\x00\x00\x00\x00\x00\x63\x53\x00\x00\x63\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x00\x00\x63\x5a\x00\x00\x00\x00\x63\x5b\x00\x00\x00\x00\x00\x00\x63\x63\x63\x64\x00\x00\x50\x90\x00\x00\x51\xc6\x00\x00\x00\x00\x63\x62\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbd\x00\x00\x63\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x61\x63\x5d\x63\x5f\x00\x00\x63\x65\x00\x00\x00\x00\x00\x00\x63\x66\x63\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa1\x00\x00\x63\x68\x63\x67\x53\x51\x00\x00\x00\x00\x00\x00\x63\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x63\x6b\x00\x00\x00\x00\x63\x6c\x00\x00\x63\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x43\x00\x00\x63\x6e\x00\x00\x63\x6f\x00\x00\x4b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xa4\x63\x70\x00\x00\x00\x00\x00\x00\x00\x00\x63\x71\x48\x6c\x00\x00\x00\x00\x00\x00\x4b\xa5\x00\x00\x63\x72\x00\x00\x47\x80\x00\x00\x4d\xa5\x63\x73\x00\x00\x00\x00\x4b\xed\x63\x74\x4a\xea\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc0\x00\x00\x00\x00\x63\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x54\x00\x00\x63\x7a\x00\x00\x00\x00\x63\x78\x00\x00\x52\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x79\x63\x77\x4a\xa7", /* 8880 */ "\x00\x00\x63\x76\x63\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x6a\x00\x00\x00\x00\x4a\x54\x00\x00\x63\x82\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7e\x00\x00\x00\x00\x00\x00\x4a\x57\x63\x7d\x00\x00\x63\x80\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7c\x00\x00\x00\x00\x00\x00\x63\x81\x00\x00\x63\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8d\x00\x00\x00\x00\x63\x7f\x00\x00\x54\xc5\x63\x86\x00\x00\x00\x00\x4f\x5a\x63\x85\x00\x00\x54\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x84\x00\x00\x49\xbd\x4f\x60\x63\x87\x63\x88\x48\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x63\x89\x46\xf8\x00\x00\x00\x00\x63\x8a\x63\x8b\x00\x00\x00\x00\x49\x6a\x63\x8c\x00\x00\x4f\x8a\x00\x00\x54\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x92\x4f\xa8\x53\x49\x63\x90\x00\x00\x00\x00\x4f\x43\x63\x8d\x00\x00\x00\x00\x63\x8f\x45\x7b\x4c\x8d\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x63\x8e\x00\x00\x63\x93\x00\x00\x00\x00\x4b\x51\x00\x00\x00\x00\x63\x97\x00\x00\x63\x94\x00\x00\x00\x00\x00\x00\x54\x5e\x00\x00\x51\xba\x63\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xda\x63\x96\x63\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x63\x95\x63\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9e\x00\x00\x63\xa0\x00\x00\x00\x00\x63\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9c\x00\x00\x63\x9f\x50\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa2\x63\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa4\x54\xaf\x63\xa3\x00\x00\x00\x00\x00\x00\x63\xa7\x00\x00\x63\xa5\x00\x00\x00\x00\x00\x00\x63\xa6\x00\x00\x00\x00\x63\xa8\x00\x00\x63\xa9\x00\x00\x00\x00\x4d\xdf\x00\x00\x63\xaa\x00\x00\x00\x00\x63\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xac\x45\x58", /* 8980 */ "\x00\x00\x46\x55\x00\x00\x63\xad\x00\x00\x00\x00\x4d\xf2\x4b\xfa\x63\xae\x00\x00\x63\xaf\x45\xbb\x00\x00\x00\x00\x00\x00\x46\xfb\x00\x00\x00\x00\x00\x00\x63\xb0\x00\x00\x00\x00\x4a\x50\x53\xeb\x63\xb1\x00\x00\x4a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb4\x4e\xd0\x00\x00\x63\xb3\x48\x85\x00\x00\x63\xb5\x00\x00\x00\x00\x63\xb6\x00\x00\x00\x00\x63\xb7\x48\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb8\x00\x00\x00\x00\x63\xba\x00\x00\x63\xb9\x63\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbc\x00\x00\x53\x60\x63\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb7\x00\x00\x00\x00\x4c\xd1\x63\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbf\x00\x00\x00\x00\x00\x00\x63\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a00 */ "\x47\x9a\x00\x00\x4f\xc4\x63\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc9\x00\x00\x50\xf2\x00\x00\x63\xc4\x00\x00\x49\xd2\x00\x00\x63\xc3\x00\x00\x63\xc5\x4b\xc8\x00\x00\x00\x00\x63\xc2\x4a\xb6\x47\x94\x00\x00\x00\x00\x63\xc6\x00\x00\x63\xc7\x00\x00\x50\xef\x00\x00\x00\x00\x00\x00\x54\xcc\x00\x00\x63\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x71\x00\x00\x00\x00\x45\xe2\x00\x00\x00\x00\x00\x00\x4a\x9a\x00\x00\x4b\xad\x4c\xdf\x00\x00\x63\xc9\x63\xcb\x00\x00\x00\x00\x4d\x68\x4f\x66\x49\xba\x00\x00\x00\x00\x00\x00\x00\x00\x63\xca\x00\x00\x00\x00\x00\x00\x00\x00\x63\xce\x00\x00\x63\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x76\x55\xe3\x63\xcd\x00\x00\x4f\x88\x49\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcc\x00\x00\x00\x00\x4e\x90\x00\x00\x51\xc1\x00\x00\x63\xd3\x54\xfb\x00\x00\x00\x00\x49\x48\x00\x00\x00\x00\x4c\xb0\x00\x00\x50\xd3\x63\xd2\x63\xd1\x51\x8e\x00\x00\x4b\x5f\x47\x50\x4d\x8d\x4d\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd4\x00\x00\x00\x00\x63\xd0\x00\x00\x00\x00\x00\x00", /* 8a80 */ "\x00\x00\x00\x00\x63\xd6\x00\x00\x63\xd7\x63\xd5\x00\x00\x4e\xb4\x00\x00\x4d\x8c\x00\x00\x00\x00\x4b\x76\x4a\x7e\x00\x00\x00\x00\x00\x00\x63\xda\x00\x00\x4f\xa0\x00\x00\x4f\xa2\x00\x00\x00\x00\x4a\xcb\x00\x00\x63\xdd\x00\x00\x00\x00\x00\x00\x48\xe7\x00\x00\x46\xfd\x63\xd9\x00\x00\x63\xde\x4d\x91\x63\xdb\x63\xdc\x63\xdf\x63\xd8\x00\x00\x00\x00\x00\x00\x49\x52\x4a\x4f\x00\x00\x00\x00\x4b\x83\x00\x00\x49\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf2\x00\x00\x00\x00\x52\x65\x00\x00\x63\xe1\x46\x89\x00\x00\x00\x00\x63\xe3\x00\x00\x50\xb2\x00\x00\x00\x00\x49\x63\x00\x00\x00\x00\x00\x00\x4a\xe8\x63\xe0\x63\xe2\x00\x00\x4b\xc1\x00\x00\x00\x00\x51\x81\x00\x00\x00\x00\x00\x00\x48\xf3\x00\x00\x00\x00\x00\x00\x63\xe4\x63\xf2\x55\x70\x00\x00\x63\xf1\x63\xed\x63\xea\x63\xec\x63\xeb\x00\x00\x63\xe7\x00\x00\x52\x46\x63\xe6\x00\x00\x00\x00\x00\x00\x4e\x96\x00\x00\x4e\x9c\x4f\x9c\x00\x00\x00\x00\x63\xe8\x00\x00\x63\xe5\x00\x00\x00\x00\x63\xef\x63\xf0\x47\xe2\x00\x00\x55\xab\x00\x00\x00\x00\x00\x00\x4f\xe1\x00\x00", /* 8b00 */ "\x4f\x4d\x54\xe5\x55\x73\x00\x00\x4f\xe2\x00\x00\x00\x00\x63\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf3\x00\x00\x52\xf9\x00\x00\x63\xf7\x00\x00\x00\x00\x00\x00\x63\xe9\x00\x00\x63\xf6\x63\xf8\x00\x00\x49\x7c\x63\xf5\x4a\x6e\x00\x00\x4d\xbb\x00\x00\x00\x00\x63\xf9\x4d\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x63\xfd\x00\x00\x53\x81\x00\x00\x00\x00\x63\xfe\x55\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x87\x00\x00\x00\x00\x00\x00\x00\x00\x64\x41\x00\x00\x00\x00\x63\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x46\x00\x00\x00\x00\x64\x42\x00\x00\x64\x44\x64\x43\x00\x00\x00\x00\x00\x00\x64\x45\x00\x00\x00\x00\x64\x47\x00\x00\x4a\x75\x00\x00\x64\x49\x64\x48\x4e\x4f\x00\x00\x00\x00\x64\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x64\x4b\x64\x4d\x00\x00\x00\x00\x64\x4e\x47\x81\x61\x76\x4b\x7b\x00\x00\x64\x4a\x00\x00\x00\x00\x49\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x4f\x00\x00\x64\x50", /* 8b80 */ "\x64\x51\x00\x00\x00\x00\x51\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x88\x00\x00\x64\x52\x00\x00\x64\x53\x00\x00\x53\xfe\x00\x00\x64\x55\x64\x56\x00\x00\x00\x00\x64\x57\x00\x00\x00\x00\x64\x54\x64\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x81\x00\x00\x00\x00\x64\x59\x00\x00\x00\x00\x00\x00\x00\x00\x64\x5b\x00\x00\x64\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x99\x00\x00\x64\x5c\x00\x00\x46\x48\x00\x00\x64\x5d\x00\x00\x64\x5e\x00\x00\x64\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x60\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x94\x64\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x68\x53\x55\x64\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x63\x55\x93\x64\x64\x00\x00\x64\x65\x00\x00\x00\x00\x00\x00", /* 8c80 */ "\x00\x00\x00\x00\x64\x66\x00\x00\x00\x00\x64\x68\x00\x00\x00\x00\x00\x00\x64\x67\x64\x69\x00\x00\x50\x64\x64\x6a\x64\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x6d\x00\x00\x00\x00\x00\x00\x64\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x49\xea\x46\xb6\x00\x00\x49\xc8\x49\xaf\x4a\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa3\x4a\xeb\x4a\x5d\x64\x70\x49\xa1\x4b\xd2\x64\x6f\x64\x71\x4c\x62\x4d\xef\x00\x00\x64\x73\x64\x74\x48\x7f\x00\x00\x64\x76\x49\x74\x4a\xf4\x00\x00\x00\x00\x46\xd0\x50\x7b\x64\x72\x00\x00\x48\x72\x46\x41\x64\x75\x55\xf8\x4b\x4d\x50\x67\x00\x00\x00\x00\x46\x50\x64\x77\x00\x00\x4f\xfd\x00\x00\x00\x00\x64\x79\x64\x78\x00\x00\x00\x00\x53\x9e\x00\x00\x50\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7b\x4d\xee\x4f\x94\x00\x00\x4a\xad\x00\x00\x4f\x4f\x00\x00\x47\xe5\x64\x7a\x55\x66\x00\x00\x4f\xa7\x00\x00\x00\x00\x00\x00\x46\xec\x00\x00\x00\x00\x52\xc1\x00\x00\x00\x00\x64\x7c\x00\x00\x00\x00\x00\x00\x64\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7f\x64\x80\x4e\x8f\x64\x7e\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x53\x5a\x55\x74\x00\x00\x64\x81\x4c\x7c\x00\x00\x64\x82\x55\x84\x00\x00\x64\x84\x00\x00\x64\x83\x64\x86\x00\x00\x64\x85\x64\x87\x64\x88\x00\x00\x64\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xf9\x00\x00\x51\x51\x64\x8a\x00\x00\x00\x00\x00\x00\x53\xcc\x00\x00\x64\x8b\x00\x00\x00\x00\x4a\xaa\x64\x8c\x00\x00\x51\xc9\x50\xee\x00\x00\x64\x8d\x48\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d80 */ "\x00\x00\x64\x8f\x00\x00\x00\x00\x00\x00\x4a\x78\x00\x00\x00\x00\x00\x00\x00\x00\x46\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xed\x00\x00\x00\x00\x00\x00\x00\x00\x55\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x92\x00\x00\x00\x00\x00\x00\x64\x91\x00\x00\x00\x00\x00\x00\x64\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x98\x64\x96\x00\x00\x00\x00\x64\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x95\x00\x00\x00\x00\x00\x00\x64\x94\x64\x97\x00\x00\x4d\xc2\x00\x00\x64\x9b\x00\x00\x4c\xcd\x00\x00\x64\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x55\xcb\x00\x00\x64\x99\x64\x9a\x00\x00\x00\x00\x00\x00\x47\x84\x00\x00\x00\x00\x00\x00\x50\xb4\x00\x00\x50\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x9d\x00\x00\x00\x00\x64\x9f", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x9e\x64\xa0\x4c\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7c\x64\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa2\x64\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa7\x00\x00\x00\x00\x00\x00\x64\xa8\x64\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa5\x00\x00\x55\xa7\x00\x00\x00\x00\x64\xaa\x64\xae\x64\xab\x64\xa9\x00\x00\x64\xac\x00\x00\x00\x00\x00\x00\x64\xad\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb2\x00\x00\x00\x00\x00\x00\x64\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x68\x64\xb1\x00\x00\x00\x00\x64\xb3\x64\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb5\x00\x00\x52\xf6\x00\x00\x64\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb7\x00\x00\x00\x00\x00\x00", /* 8e80 */ "\x00\x00\x64\xb8\x00\x00\x00\x00\x64\xba\x64\xb9\x00\x00\x64\xb6\x00\x00\x00\x00\x64\xbc\x64\xbb\x00\x00\x4c\xa1\x00\x00\x00\x00\x00\x00\x64\xbe\x00\x00\x64\xbd\x64\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc2\x47\x9c\x50\x44\x00\x00\x00\x00\x53\x53\x53\x7a\x64\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc4\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc6\x64\xc5\x00\x00\x64\xc7\x00\x00\x46\x53\x64\xc8\x4d\xaa\x48\x97\x00\x00\x64\xc9\x00\x00\x00\x00\x4e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xca\x00\x00\x00\x00\x00\x00\x4c\xb1\x00\x00\x00\x00\x47\x52\x64\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa6\x00\x00\x00\x00\x64\xcd\x64\xcc\x48\xa6\x64\xcf\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x4a\x5a\x00\x00\x64\xd2\x00\x00\x00\x00\x00\x00\x4d\x6e\x64\xd0\x00\x00\x64\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xd4\x64\xd5\x4a\x68\x64\xd3\x00\x00\x00\x00\x00\x00\x64\xd7\x00\x00\x51\x5b\x64\xd6\x47\x87\x00\x00\x64\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xd9\x00\x00\x00\x00\x4e\xf4\x48\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa6\x00\x00\x00\x00\x00\x00\x64\xda\x00\x00\x00\x00\x00\x00\x00\x00\x46\x93\x64\xdc\x00\x00\x64\xdb\x00\x00\x00\x00\x64\xdf\x50\x6c\x00\x00\x00\x00\x64\xde\x00\x00\x50\xfe\x64\xdd\x64\xe1\x00\x00\x00\x00\x64\xe0\x00\x00\x00\x00\x64\xe2\x54\xee\x64\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe5\x00\x00\x00\x00\x50\xa9\x00\x00\x52\xe1\x64\xe6\x64\xe7\x64\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5e\x64\xe9\x00\x00\x4d\x74\x64\xea\x00\x00\x00\x00\x00\x00\x64\xeb\x00\x00\x00\x00\x00\x00\x64\xed\x64\xec\x00\x00\x00\x00\x00\x00\x00\x00\x64\xee\x61\x49\x64\xef\x47\xdf\x52\xe5\x48\x45\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf0\x00\x00\x00\x00\x45\xd5\x47\xf5\x48\x41\x00\x00\x00\x00\x54\x7e\x00\x00\x00\x00\x55\xdf\x00\x00\x49\xcd\x50\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa9\x00\x00\x00\x00\x46\x73\x00\x00\x00\x00\x48\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf4\x00\x00\x00\x00\x64\xf3\x53\x5d\x00\x00\x00\x00\x64\xf6\x4e\x9e\x49\xef\x00\x00\x53\xdf\x00\x00\x64\xf5\x4a\x9c\x00\x00\x00\x00\x00\x00\x64\xf7\x00\x00\x00\x00\x4e\x58\x64\xfa\x64\xf9\x54\xa9\x00\x00\x00\x00\x49\xd1\x00\x00\x00\x00", /* 9000 */ "\x4b\x49\x47\x44\x00\x00\x4c\x72\x00\x00\x64\xf8\x4b\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x65\x44\x00\x00\x65\x41\x64\xfd\x4b\xda\x50\xbb\x64\xfb\x00\x00\x51\x5e\x48\xf0\x64\xfc\x65\x43\x4f\xb3\x00\x00\x4f\xca\x45\xe3\x00\x00\x00\x00\x53\xb1\x65\x42\x48\xcd\x45\xb8\x64\xfe\x4d\xce\x47\x54\x00\x00\x00\x00\x00\x00\x65\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x77\x00\x00\x00\x00\x4a\xd3\x46\x69\x00\x00\x00\x00\x54\x85\x65\x46\x00\x00\x4a\xd6\x65\x47\x00\x00\x00\x00\x55\xac\x00\x00\x65\x4e\x00\x00\x00\x00\x54\xf8\x4c\xf7\x00\x00\x00\x00\x4c\x6d\x00\x00\x49\xec\x00\x00\x65\x4d\x4a\x8b\x46\xab\x00\x00\x50\x5d\x48\x8d\x65\x48\x65\x4a\x65\x4b\x65\x4c\x45\x50\x46\xa4\x49\xbc\x65\x4f\x00\x00\x65\x50\x52\xf3\x00\x00\x00\x00\x54\x55\x00\x00\x65\x51\x00\x00\x46\xe3\x54\x4c\x00\x00\x4e\xc2\x00\x00\x68\x82\x00\x00\x65\x53\x65\x52\x49\xcc\x00\x00\x00\x00\x00\x00\x51\x43\x54\x58\x65\x54\x00\x00\x00\x00\x65\x57\x00\x00\x00\x00\x52\x6e\x65\x55\x53\x5b\x48\x5d\x00\x00\x4c\xda\x00\x00\x52\x6b\x65\x59\x00\x00\x4c\xc4", /* 9080 */ "\x65\x5b\x53\x7b\x65\x58\x60\x45\x4d\xa9\x00\x00\x00\x00\x51\x86\x00\x00\x65\x5a\x50\xea\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5c\x00\x00\x4c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x46\x00\x00\x00\x00\x46\xc5\x00\x00\x51\xa8\x00\x00\x4e\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5e\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x65\x60\x00\x00\x00\x00\x4d\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x52\x00\x00\x00\x00\x00\x00\x45\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x63\x00\x00\x00\x00\x65\x64\x00\x00\x00\x00\x49\x9e\x65\x61\x00\x00\x65\x62\x00\x00\x00\x00\x00\x00\x45\x95\x00\x00\x00\x00\x00\x00\x00\x00\x51\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb7\x00\x00\x49\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x4f\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x65\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x68\x00\x00\x00\x00\x65\x67\x00\x00\x00\x00\x00\x00\x65\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x54\x00\x00\x00\x00\x65\x6c\x00\x00\x65\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x73\x65\x6d\x55\x48\x52\xbb\x47\xf3\x55\x91\x00\x00\x00\x00\x00\x00\x47\x58\x00\x00\x4e\x7c\x00\x00\x65\x6e\x00\x00\x65\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xae\x65\x70\x00\x00\x65\x71\x00\x00\x00\x00\x00\x00\x65\x72\x50\xbd\x00\x00\x51\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x74\x65\x73\x00\x00\x4d\x86\x00\x00\x51\xeb\x48\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9180 */ "\x00\x00\x00\x00\x65\x77\x00\x00\x00\x00\x00\x00\x00\x00\x51\xa9\x00\x00\x65\x76\x00\x00\x65\x75\x00\x00\x51\x6f\x00\x00\x00\x00\x51\x70\x00\x00\x53\x78\x00\x00\x00\x00\x00\x00\x00\x00\x51\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x78\x00\x00\x50\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7b\x65\x79\x50\x7f\x00\x00\x00\x00\x65\x7a\x00\x00\x51\xfa\x00\x00\x00\x00\x65\x7d\x65\x7c\x00\x00\x00\x00\x50\xc2\x00\x00\x65\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7f\x65\x80\x00\x00\x00\x00\x00\x00\x00\x00\x53\x46\x53\xbf\x4d\x79\x52\x52\x00\x00\x65\x81\x47\x6c\x45\xa3\x45\x69\x47\xb5\x65\x82\x45\x86\x00\x00\x00\x00\x00\x00\x00\x00\x65\x87\x65\x85\x4f\xf4\x00\x00\x65\x83\x65\x84\x4a\xcc\x49\x88\x65\x86\x65\x88\x00\x00\x65\x89\x00\x00\x4c\xe3\x65\x8d\x65\x8f\x53\x4a\x4b\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8a\x65\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8b\x65\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd0\x00\x00\x00\x00\x65\x92", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x90\x00\x00\x00\x00\x00\x00\x65\x95\x00\x00\x00\x00\x4e\x63\x53\x8f\x00\x00\x65\x93\x52\x69\x00\x00\x00\x00\x65\x94\x65\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x98\x00\x00\x00\x00\x65\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xae\x00\x00\x00\x00\x55\xbf\x00\x00\x65\xa6\x65\x9b\x00\x00\x65\x9f\x00\x00\x00\x00\x65\xa4\x65\x9e\x00\x00\x00\x00\x00\x00\x45\xd7\x65\x9a\x00\x00\x00\x00\x65\xa0\x65\x9c\x00\x00\x65\xa7\x00\x00\x00\x00\x65\xa1\x00\x00\x65\xa2\x65\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x99\x00\x00\x65\xa3\x65\xa9\x49\xd4\x00\x00\x00\x00\x53\x93\x00\x00\x00\x00\x00\x00\x4e\xa8\x00\x00\x65\x9d\x00\x00\x4f\xb4\x65\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xac\x65\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x83\x00\x00", /* 9280 */ "\x47\x8c\x00\x00\x00\x00\x4c\xe2\x00\x00\x48\xc0\x00\x00\x00\x00\x52\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xad\x00\x00\x65\xaf\x00\x00\x65\xb1\x65\xae\x00\x00\x4d\xdc\x00\x00\x4e\x80\x65\xb0\x65\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbb\x00\x00\x65\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb3\x65\xb7\x00\x00\x54\x49\x65\xbd\x00\x00\x65\xb9\x00\x00\x65\xb5\x00\x00\x65\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbc\x00\x00\x00\x00\x00\x00\x52\xc0\x00\x00\x00\x00\x65\xb4\x00\x00\x65\xb2\x53\x63\x00\x00\x00\x00\x4d\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbe\x48\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe7\x53\x94\x65\xc2\x65\xc5\x46\xa1\x00\x00\x00\x00\x65\xc9", /* 9300 */ "\x00\x00\x00\x00\x65\xce\x00\x00\x00\x00\x00\x00\x55\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc0\x53\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xef\x65\xc7\x65\xcb\x00\x00\x00\x00\x65\xcc\x65\xc8\x00\x00\x4e\x57\x65\xc3\x65\xca\x65\xcd\x00\x00\x65\xc1\x4b\x8e\x00\x00\x53\xf0\x00\x00\x00\x00\x52\x57\x4f\xe6\x00\x00\x52\x83\x50\xb1\x00\x00\x00\x00\x48\x86\x00\x00\x00\x00\x65\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbe\x65\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc4\x00\x00\x00\x00\x00\x00\x51\xf7\x00\x00\x00\x00\x4b\x48\x00\x00\x55\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xaa\x00\x00\x65\xd4\x65\xd5\x00\x00\x00\x00\x00\x00\x48\xc7\x52\xad\x00\x00\x00\x00\x00\x00\x65\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x70\x00\x00\x65\xd3\x00\x00\x65\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd2\x00\x00\x53\xbd\x00\x00", /* 9380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xda\x00\x00\x4d\x70\x51\x97\x00\x00\x00\x00\x54\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd8\x00\x00\x00\x00\x54\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6e\x65\xd9\x4c\x89\x00\x00\x65\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe2\x00\x00\x00\x00\x65\xdd\x00\x00\x65\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe5\x50\x41\x00\x00\x00\x00\x00\x00\x00\x00\x65\xdc\x65\xde\x65\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe3\x65\xe4\x00\x00\x00\x00\x4a\x8d\x00\x00\x00\x00\x65\xe6\x65\xe0\x00\x00\x00\x00\x65\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x65\xec\x00\x00\x00\x00\x00\x00\x65\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xcd\x00\x00\x00\x00\x65\xea\x65\xe9\x00\x00\x00\x00\x00\x00\x4c\xc8\x52\xcf\x65\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf0\x00\x00\x00\x00\x00\x00\x51\x56\x65\xee\x00\x00\x53\x88\x00\x00\x65\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf2\x00\x00\x00\x00\x65\xf5\x65\xf4\x00\x00\x00\x00\x65\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4e\x65\xf3\x52\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf8\x65\xf7\x00\x00\x00\x00\x65\xfb\x00\x00\x65\xf9\x00\x00\x65\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfd\x00\x00\x66\x41\x00\x00\x00\x00\x00\x00\x00\x00\x66\x44\x66\x43\x66\x45\x66\x42", /* 9480 */ "\x00\x00\x66\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9580 */ "\x46\xaa\x00\x00\x66\x47\x51\x9c\x00\x00\x00\x00\x00\x00\x66\x48\x00\x00\x4b\x7d\x66\x49\x46\xcd\x00\x00\x00\x00\x00\x00\x54\x5f\x00\x00\x4d\xd9\x66\x4a\x45\xc1\x66\x4b\x00\x00\x66\x4c\x00\x00\x66\x4d\x66\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4f\x00\x00\x45\xc5\x4a\xe9\x54\x9b\x51\x72\x00\x00\x66\x51\x66\x50\x00\x00\x00\x00\x00\x00\x00\x00\x66\x52\x00\x00\x00\x00\x00\x00\x00\x00\x51\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x55\x00\x00\x66\x54\x66\x53\x00\x00\x66\x56\x00\x00\x00\x00\x00\x00\x00\x00\x66\x59\x00\x00\x00\x00\x00\x00\x53\x64\x00\x00\x00\x00\x66\x57\x00\x00\x66\x5b\x66\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x5d\x66\x5c\x66\x5e\x00\x00\x4b\xcc\x00\x00\x00\x00\x00\x00\x66\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x66\x60\x66\x62\x00\x00\x00\x00\x66\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x86\x00\x00\x00\x00\x00\x00\x00\x00\x66\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x64\x00\x00\x45\x91\x00\x00\x00\x00\x00\x00\x66\x65\x66\x66\x00\x00\x00\x00\x47\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xef\x00\x00\x00\x00\x00\x00\x46\xae\x4f\xe8\x00\x00\x66\x67\x00\x00\x4b\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x6a\x66\x69\x49\xe5\x00\x00\x66\x68\x48\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x57\x66\x6b\x66\x6c\x52\x72\x66\x6d\x00\x00\x00\x00\x49\xd8\x4c\x84\x49\x6d\x4f\xfe\x66\x6e\x00\x00\x00\x00\x00\x00\x55\xc3\x00\x00\x66\x71\x00\x00\x00\x00\x00\x00\x4c\xd2\x00\x00\x66\x70\x4e\x61\x00\x00\x50\xc7\x4a\xb7\x66\x6f\x49\x61\x00\x00\x4a\x6c\x00\x00\x00\x00\x47\xbf\x00\x00\x00\x00", /* 9680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb9\x46\x5d\x00\x00\x4c\xe5\x00\x00\x4a\x93\x66\x73\x00\x00\x66\x72\x49\xa9\x4e\x76\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5a\x66\x76\x00\x00\x66\x77\x66\x75\x53\xc3\x00\x00\x47\x97\x4b\xf9\x66\x79\x00\x00\x00\x00\x4e\xae\x00\x00\x00\x00\x4c\xe0\x00\x00\x00\x00\x00\x00\x66\x7a\x65\x56\x00\x00\x66\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x66\x7f\x66\x7e\x66\x7c\x66\x7d\x00\x00\x66\x80\x00\x00\x66\x81\x55\x45\x66\x82\x66\x83\x00\x00\x4f\xda\x4e\xd5\x00\x00\x00\x00\x00\x00\x4f\x64\x51\xa4\x00\x00\x00\x00\x45\x70\x47\x45\x47\xa0\x4c\x4d\x00\x00\x54\x77\x00\x00\x66\x85\x52\xb7\x52\x5b\x66\x84\x00\x00\x00\x00\x4a\x8a\x00\x00\x00\x00\x00\x00\x66\x86\x63\x54\x00\x00\x00\x00\x66\x88\x00\x00\x51\xfb\x66\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x97\x49\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x49\xdd\x00\x00\x49\xbb\x52\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x90\x00\x00\x4a\xbc\x00\x00\x00\x00\x00\x00\x50\x69\x4b\xd6\x00\x00\x66\x89\x00\x00\x45\x82\x00\x00\x00\x00\x00\x00\x00\x00", /* 9700 */ "\x47\xfb\x00\x00\x00\x00\x00\x00\x66\x8a\x00\x00\x66\x8b\x4d\xde\x66\x8c\x00\x00\x4f\x4b\x00\x00\x00\x00\x66\x8e\x66\x90\x66\x92\x00\x00\x66\x91\x00\x00\x66\x8f\x00\x00\x00\x00\x66\x93\x00\x00\x00\x00\x66\x8d\x00\x00\x00\x00\x4d\xe8\x00\x00\x4e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x94\x00\x00\x00\x00\x4e\x48\x00\x00\x00\x00\x66\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x96\x00\x00\x4b\xc6\x66\x97\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcf\x66\x98\x00\x00\x66\x99\x00\x00\x66\x9a\x66\x9b\x00\x00\x00\x00\x00\x00\x66\xa0\x66\x9e\x66\x9d\x00\x00\x66\x9c\x00\x00\x66\x9f\x66\xa1\x00\x00\x00\x00\x00\x00\x66\xa2\x00\x00\x66\xa3\x00\x00\x66\xa4\x46\x4c\x00\x00\x00\x00\x66\xa5\x48\xc3\x00\x00\x00\x00\x46\x44\x00\x00\x00\x00\x66\xa6\x00\x00\x48\xe1\x00\x00\x66\xa7\x68\x52\x46\x91\x00\x00\x66\xa8\x00\x00\x66\xa9\x00\x00\x66\xaa\x4a\xa3\x00\x00\x53\xb5\x00\x00\x66\xab\x00\x00\x00\x00\x00\x00\x52\xce\x00\x00\x00\x00\x4d\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x66\xac\x66\xb0\x00\x00\x66\xae\x00\x00\x00\x00\x00\x00", /* 9780 */ "\x00\x00\x66\xaf\x00\x00\x00\x00\x54\x45\x66\xad\x52\x77\x00\x00\x00\x00\x00\x00\x00\x00\x66\xb1\x00\x00\x50\x4c\x00\x00\x66\xb2\x66\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe7\x00\x00\x00\x00\x00\x00\x66\xb4\x00\x00\x00\x00\x00\x00\x51\xed\x00\x00\x00\x00\x66\xb7\x00\x00\x00\x00\x66\xb6\x00\x00\x66\xb5\x00\x00\x00\x00\x63\xfc\x00\x00\x54\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xb8\x66\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xba\x00\x00\x00\x00\x66\xbb\x00\x00\x66\xbc\x00\x00\x00\x00\x66\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xbf\x4f\xdf\x00\x00\x00\x00\x00\x00\x66\xc0\x48\x4d\x00\x00\x66\xc2\x52\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x55\x77\x00\x00\x00\x00\x00\x00\x4a\x5c", /* 9800 */ "\x00\x00\x4c\xd9\x4d\x5b\x49\x46\x00\x00\x4a\x97\x47\xb2\x00\x00\x46\xb0\x00\x00\x00\x00\x00\x00\x54\x56\x00\x00\x00\x00\x66\xc3\x4d\x4a\x53\x9d\x55\x57\x51\x7a\x00\x00\x00\x00\x00\x00\x55\xe4\x4a\xcd\x00\x00\x66\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc6\x00\x00\x00\x00\x66\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb3\x47\xeb\x00\x00\x00\x00\x4e\xb3\x00\x00\x00\x00\x00\x00\x55\x76\x00\x00\x00\x00\x66\xc7\x50\xfb\x66\xc8\x00\x00\x53\xab\x4a\x7a\x66\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x66\xca\x47\xfe\x47\xf1\x54\x8e\x66\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x48\xb8\x4a\xe5\x00\x00\x66\xcb\x4c\x57\x00\x00\x55\xc1\x55\xc1\x00\x00\x00\x00\x46\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xcc\x00\x00\x4e\xee\x00\x00\x00\x00\x00\x00\x66\xcd\x00\x00\x00\x00\x00\x00\x66\xce\x66\xcf\x66\xd0\x00\x00\x66\xd2\x66\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xe7\x00\x00\x66\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd4\x00\x00\x66\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd8\x66\xd7\x00\x00\x66\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8a\x66\xda\x00\x00\x00\x00\x46\xb8\x00\x00\x00\x00\x53\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdc\x00\x00\x66\xde\x00\x00\x66\xdb\x5c\xca\x46\xb5\x00\x00\x00\x00\x4b\xa3\x00\x00\x52\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x8f\x4d\x49\x49\x57\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x66\xe0\x00\x00\x50\xbf\x00\x00\x00\x00\x00\x00\x54\xbc\x49\x79\x00\x00\x50\xa7\x00\x00\x00\x00\x00\x00\x55\xb3\x00\x00\x66\xe2\x55\x4b\x66\xe3\x00\x00\x00\x00\x00\x00\x66\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe1\x66\xe8\x00\x00\x66\xea\x66\xe7\x00\x00\x00\x00\x66\xe9\x00\x00\x00\x00\x66\xe5\x48\x62\x00\x00\x00\x00\x00\x00\x66\xeb\x00\x00\x66\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xed\x66\xee\x00\x00\x00\x00\x00\x00\x66\xef\x00\x00\x00\x00\x66\xf1\x00\x00\x00\x00\x00\x00\x66\xf0\x00\x00\x66\xf3\x66\xf5\x00\x00\x00\x00\x00\x00\x66\xf2\x66\xf4\x52\xe8\x00\x00\x00\x00\x66\xf6\x00\x00\x51\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xbe\x66\xf7\x66\xf8\x46\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfa\x00\x00\x00\x00\x4b\x85\x00\x00\x00\x00\x00\x00\x46\x64\x66\xfb\x66\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x52\xdf\x50\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe5\x00\x00\x00\x00\x4d\xe5\x49\xac\x4c\xfe\x00\x00\x4f\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf5\x67\x44\x49\xfc\x00\x00\x00\x00\x53\xbe\x00\x00\x00\x00\x67\x43\x00\x00\x00\x00\x67\x41\x00\x00\x67\x42\x00\x00\x66\xfe\x00\x00\x00\x00\x67\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x45\x67\x46\x00\x00\x00\x00\x67\x48\x67\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4b\x00\x00\x00\x00\x67\x4a\x00\x00\x00\x00\x00\x00\x4c\xc0", /* 9a00 */ "\x00\x00\x67\x4c\x00\x00\x00\x00\x00\x00\x67\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x58\x67\x4d\x00\x00\x00\x00\x4d\xd2\x48\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xda\x00\x00\x00\x00\x67\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x56\x00\x00\x67\x52\x00\x00\x67\x54\x67\x55\x00\x00\x67\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x58\x67\x59\x00\x00\x00\x00\x00\x00\x53\xda\x00\x00\x00\x00\x67\x57\x00\x00\x67\x5b\x00\x00\x00\x00\x4c\xd5\x67\x5a\x00\x00\x00\x00\x00\x00\x67\x5c\x00\x00\x00\x00\x67\x5d\x00\x00\x67\x60\x67\x5f\x00\x00\x00\x00\x00\x00\x67\x5e\x67\x61\x67\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x67\x63\x00\x00\x00\x00\x67\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9c\x00\x00\x00\x00\x00\x00\x67\x65\x00\x00\x00\x00\x00\x00\x67\x66\x00\x00\x00\x00\x00\x00\x52\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x67\x00\x00\x67\x6a\x00\x00\x67\x68\x67\x69\x00\x00\x00\x00\x00\x00\x45\x71\x67\x6b\x00\x00\x00\x00\x67\x6c\x00\x00\x67\x6d\x67\x6e\x00\x00\x00\x00\x67\x6f\x67\x70\x00\x00\x00\x00\x67\x71\x00\x00\x00\x00\x00\x00\x4c\xf6\x67\x73\x00\x00\x50\x9d\x67\x74\x67\x72\x00\x00\x67\x76\x00\x00\x00\x00\x67\x75\x00\x00\x00\x00\x67\x77\x00\x00\x00\x00\x00\x00\x67\x78\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7a\x00\x00\x67\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7c\x00\x00\x00\x00\x67\x7d\x67\x7e\x00\x00\x67\x7f\x00\x00\x67\x80\x67\x81\x67\x82\x67\x83\x00\x00\x00\x00\x00\x00\x67\x84\x67\x85\x00\x00\x67\x86\x67\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x88\x4a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x52\xcb\x50\xa8\x67\x8a\x67\x89\x4d\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x8b\x67\x8c\x53\x89\x00\x00\x67\x8d\x00\x00\x00\x00\x4d\xe2\x00\x00\x00\x00\x00\x00\x67\x8e\x00\x00\x48\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf4\x00\x00\x00\x00\x67\x91\x00\x00\x67\x90\x67\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b80 */ "\x00\x00\x00\x00\x00\x00\x67\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8e\x67\x93\x00\x00\x67\x95\x52\x8d\x67\x92\x00\x00\x00\x00\x67\x96\x67\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x98\x67\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9a\x00\x00\x55\xce\x4e\xb7\x00\x00\x53\x91\x4c\xe9\x00\x00\x00\x00\x67\x9b\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa0\x00\x00\x67\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa1\x00\x00\x00\x00\x4f\xc6\x67\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa2\x00\x00\x67\xa3\x67\xa4\x00\x00\x67\xa8\x00\x00\x4f\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x50\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa9\x67\xa6\x67\xa5\x67\xa7\x00\x00\x00\x00\x00\x00\x4d\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x51\x67\xab\x67\xac\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c00 */ "\x67\xb1\x00\x00\x00\x00\x00\x00\x67\xad\x00\x00\x67\xb5\x00\x00\x67\xb6\x67\xb2\x67\xb8\x00\x00\x67\xb4\x55\x71\x00\x00\x00\x00\x52\x93\x00\x00\x67\xb7\x67\xb3\x67\xb0\x67\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbc\x00\x00\x00\x00\x67\xbb\x67\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6e\x67\xb9\x55\xc8\x67\xbd\x00\x00\x67\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd5\x51\xf0\x54\xab\x00\x00\x00\x00\x67\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc0\x67\xbe\x55\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4c\x00\x00\x00\x00\x67\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc5\x00\x00\x67\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x79\x00\x00\x67\xc8\x00\x00\x4d\x95\x00\x00\x67\xc7\x67\xc9\x00\x00\x00\x00\x00\x00\x67\xca\x00\x00\x00\x00\x4e\xa6\x4b\x70\x00\x00\x54\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d00 */ "\x00\x00\x00\x00\x00\x00\x67\xcc\x00\x00\x00\x00\x67\xcd\x51\xa1\x54\xfc\x67\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x54\x64\x00\x00\x00\x00\x00\x00\x67\xd4\x00\x00\x00\x00\x67\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc3\x00\x00\x00\x00\x00\x00\x67\xd2\x00\x00\x00\x00\x00\x00\x67\xd1\x00\x00\x00\x00\x67\xcf\x00\x00\x4c\x54\x00\x00\x67\xce\x50\xba\x67\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd6\x00\x00\x00\x00\x67\xd8\x67\xd6\x00\x00\x67\xd5\x00\x00\x00\x00\x67\xd7\x00\x00\x67\xd9\x00\x00\x67\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xdf\x67\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xdd\x00\x00\x00\x00\x4b\xe7\x67\xdb\x67\xdc\x00\x00\x50\xfd\x55\x7e\x00\x00\x00\x00\x67\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe4\x51\x8a\x00\x00\x00\x00\x67\xe5\x67\xe2\x00\x00\x67\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe3\x00\x00\x53\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe9\x00\x00\x67\xea\x00\x00\x00\x00\x00\x00\x50\xe5\x00\x00\x00\x00\x67\xeb\x00\x00\x47\x7a\x00\x00\x00\x00\x00\x00\x67\xef\x00\x00\x67\xf0\x67\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xed\x67\xf3\x00\x00\x67\xec\x00\x00\x67\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf2\x00\x00\x00\x00\x00\x00\x67\xf6\x00\x00\x00\x00\x00\x00\x54\x64\x00\x00\x67\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf9\x00\x00\x67\xfa\x00\x00\x00\x00\x4b\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf7\x4b\x7a\x50\xaf\x00\x00\x00\x00\x67\xfb\x00\x00\x00\x00", /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xfe\x67\xfc\x67\xfd\x00\x00\x00\x00\x68\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x42\x00\x00\x00\x00\x4c\x7d\x68\x43\x00\x00\x00\x00\x4c\x7d\x68\x44\x00\x00\x46\x97", /* 9e80 */ "\x00\x00\x68\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x46\x00\x00\x00\x00\x68\x47\x68\x48\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4a\x51\xf9\x51\x9e\x00\x00\x68\x49\x00\x00\x4c\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4b\x00\x00\x51\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4c\x4a\xe0\x00\x00\x00\x00\x53\xb4\x68\x4e\x00\x00\x00\x00\x68\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x61\x55\x5f\x00\x00\x00\x00\x68\x4d\x52\x61\x55\x5f\x48\xa7\x68\x50\x00\x00\x68\x51\x4e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x53\x55\xae\x51\xa7\x68\x54\x68\x55\x68\x56\x46\x79\x00\x00\x68\x57\x00\x00\x00\x00\x00\x00\x5e\x90\x4d\xbc\x00\x00\x51\xdd\x68\x58\x68\x5a\x68\x59\x00\x00\x68\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5c\x00\x00\x00\x00\x68\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5f\x00\x00\x68\x60\x68\x61\x00\x00\x68\x62\x00\x00\x68\x63\x68\x64\x68\x65\x00\x00\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x66\x68\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xaf\x00\x00\x68\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xcb\x68\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xfd\x00\x00\x00\x00\x68\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x6d\x51\xf5\x00\x00\x00\x00\x68\x6e\x68\x6f\x00\x00\x00\x00\x68\x70\x00\x00\x68\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x73\x68\x74\x68\x75\x4c\x80\x68\x72\x00\x00\x00\x00\x68\x76\x68\x77\x00\x00\x00\x00\x68\x79\x00\x00\x68\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7b\x00\x00\x00\x00\x00\x00\x68\x7c\x68\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7e\x5f\xf7\x00\x00\x00\x00\x68\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x69\x41\x69\x42\x69\x43\x69\x44\x69\x45\x69\x46\x69\x47\x69\x48\x69\x49\x69\x4a\x69\x4b\x69\x4c\x69\x4d\x69\x4e\x69\x4f\x69\x50\x69\x51\x69\x52\x69\x53\x69\x54\x69\x55\x69\x56\x69\x57\x69\x58\x69\x59\x69\x5a\x69\x5b\x69\x5c\x69\x5d\x69\x5e\x69\x5f\x69\x60\x69\x61\x69\x62\x69\x63\x69\x64\x69\x65\x69\x66\x69\x67\x69\x68\x69\x69\x69\x6a\x69\x6b\x69\x6c\x69\x6d\x69\x6e\x69\x6f\x69\x70\x69\x71\x69\x72\x69\x73\x69\x74\x69\x75\x69\x76\x69\x77\x69\x78\x69\x79\x69\x7a\x69\x7b\x69\x7c\x69\x7d\x69\x7e\x69\x7f\x69\x80\x69\x81\x69\x82\x69\x83\x69\x84\x69\x85\x69\x86\x69\x87\x69\x88\x69\x89\x69\x8a\x69\x8b\x69\x8c\x69\x8d\x69\x8e\x69\x8f\x69\x90\x69\x91\x69\x92\x69\x93\x69\x94\x69\x95\x69\x96\x69\x97\x69\x98\x69\x99\x69\x9a\x69\x9b\x69\x9c\x69\x9d\x69\x9e\x69\x9f\x69\xa0\x69\xa1\x69\xa2\x69\xa3\x69\xa4\x69\xa5\x69\xa6\x69\xa7\x69\xa8\x69\xa9\x69\xaa\x69\xab\x69\xac\x69\xad\x69\xae\x69\xaf\x69\xb0\x69\xb1\x69\xb2\x69\xb3\x69\xb4\x69\xb5\x69\xb6\x69\xb7\x69\xb8\x69\xb9\x69\xba\x69\xbb\x69\xbc\x69\xbd\x69\xbe\x69\xbf\x69\xc0", /* e080 */ "\x69\xc1\x69\xc2\x69\xc3\x69\xc4\x69\xc5\x69\xc6\x69\xc7\x69\xc8\x69\xc9\x69\xca\x69\xcb\x69\xcc\x69\xcd\x69\xce\x69\xcf\x69\xd0\x69\xd1\x69\xd2\x69\xd3\x69\xd4\x69\xd5\x69\xd6\x69\xd7\x69\xd8\x69\xd9\x69\xda\x69\xdb\x69\xdc\x69\xdd\x69\xde\x69\xdf\x69\xe0\x69\xe1\x69\xe2\x69\xe3\x69\xe4\x69\xe5\x69\xe6\x69\xe7\x69\xe8\x69\xe9\x69\xea\x69\xeb\x69\xec\x69\xed\x69\xee\x69\xef\x69\xf0\x69\xf1\x69\xf2\x69\xf3\x69\xf4\x69\xf5\x69\xf6\x69\xf7\x69\xf8\x69\xf9\x69\xfa\x69\xfb\x69\xfc\x69\xfd\x69\xfe\x6a\x41\x6a\x42\x6a\x43\x6a\x44\x6a\x45\x6a\x46\x6a\x47\x6a\x48\x6a\x49\x6a\x4a\x6a\x4b\x6a\x4c\x6a\x4d\x6a\x4e\x6a\x4f\x6a\x50\x6a\x51\x6a\x52\x6a\x53\x6a\x54\x6a\x55\x6a\x56\x6a\x57\x6a\x58\x6a\x59\x6a\x5a\x6a\x5b\x6a\x5c\x6a\x5d\x6a\x5e\x6a\x5f\x6a\x60\x6a\x61\x6a\x62\x6a\x63\x6a\x64\x6a\x65\x6a\x66\x6a\x67\x6a\x68\x6a\x69\x6a\x6a\x6a\x6b\x6a\x6c\x6a\x6d\x6a\x6e\x6a\x6f\x6a\x70\x6a\x71\x6a\x72\x6a\x73\x6a\x74\x6a\x75\x6a\x76\x6a\x77\x6a\x78\x6a\x79\x6a\x7a\x6a\x7b\x6a\x7c\x6a\x7d\x6a\x7e\x6a\x7f\x6a\x80\x6a\x81\x6a\x82", /* e100 */ "\x6a\x83\x6a\x84\x6a\x85\x6a\x86\x6a\x87\x6a\x88\x6a\x89\x6a\x8a\x6a\x8b\x6a\x8c\x6a\x8d\x6a\x8e\x6a\x8f\x6a\x90\x6a\x91\x6a\x92\x6a\x93\x6a\x94\x6a\x95\x6a\x96\x6a\x97\x6a\x98\x6a\x99\x6a\x9a\x6a\x9b\x6a\x9c\x6a\x9d\x6a\x9e\x6a\x9f\x6a\xa0\x6a\xa1\x6a\xa2\x6a\xa3\x6a\xa4\x6a\xa5\x6a\xa6\x6a\xa7\x6a\xa8\x6a\xa9\x6a\xaa\x6a\xab\x6a\xac\x6a\xad\x6a\xae\x6a\xaf\x6a\xb0\x6a\xb1\x6a\xb2\x6a\xb3\x6a\xb4\x6a\xb5\x6a\xb6\x6a\xb7\x6a\xb8\x6a\xb9\x6a\xba\x6a\xbb\x6a\xbc\x6a\xbd\x6a\xbe\x6a\xbf\x6a\xc0\x6a\xc1\x6a\xc2\x6a\xc3\x6a\xc4\x6a\xc5\x6a\xc6\x6a\xc7\x6a\xc8\x6a\xc9\x6a\xca\x6a\xcb\x6a\xcc\x6a\xcd\x6a\xce\x6a\xcf\x6a\xd0\x6a\xd1\x6a\xd2\x6a\xd3\x6a\xd4\x6a\xd5\x6a\xd6\x6a\xd7\x6a\xd8\x6a\xd9\x6a\xda\x6a\xdb\x6a\xdc\x6a\xdd\x6a\xde\x6a\xdf\x6a\xe0\x6a\xe1\x6a\xe2\x6a\xe3\x6a\xe4\x6a\xe5\x6a\xe6\x6a\xe7\x6a\xe8\x6a\xe9\x6a\xea\x6a\xeb\x6a\xec\x6a\xed\x6a\xee\x6a\xef\x6a\xf0\x6a\xf1\x6a\xf2\x6a\xf3\x6a\xf4\x6a\xf5\x6a\xf6\x6a\xf7\x6a\xf8\x6a\xf9\x6a\xfa\x6a\xfb\x6a\xfc\x6a\xfd\x6a\xfe\x6b\x41\x6b\x42\x6b\x43\x6b\x44", /* e180 */ "\x6b\x45\x6b\x46\x6b\x47\x6b\x48\x6b\x49\x6b\x4a\x6b\x4b\x6b\x4c\x6b\x4d\x6b\x4e\x6b\x4f\x6b\x50\x6b\x51\x6b\x52\x6b\x53\x6b\x54\x6b\x55\x6b\x56\x6b\x57\x6b\x58\x6b\x59\x6b\x5a\x6b\x5b\x6b\x5c\x6b\x5d\x6b\x5e\x6b\x5f\x6b\x60\x6b\x61\x6b\x62\x6b\x63\x6b\x64\x6b\x65\x6b\x66\x6b\x67\x6b\x68\x6b\x69\x6b\x6a\x6b\x6b\x6b\x6c\x6b\x6d\x6b\x6e\x6b\x6f\x6b\x70\x6b\x71\x6b\x72\x6b\x73\x6b\x74\x6b\x75\x6b\x76\x6b\x77\x6b\x78\x6b\x79\x6b\x7a\x6b\x7b\x6b\x7c\x6b\x7d\x6b\x7e\x6b\x7f\x6b\x80\x6b\x81\x6b\x82\x6b\x83\x6b\x84\x6b\x85\x6b\x86\x6b\x87\x6b\x88\x6b\x89\x6b\x8a\x6b\x8b\x6b\x8c\x6b\x8d\x6b\x8e\x6b\x8f\x6b\x90\x6b\x91\x6b\x92\x6b\x93\x6b\x94\x6b\x95\x6b\x96\x6b\x97\x6b\x98\x6b\x99\x6b\x9a\x6b\x9b\x6b\x9c\x6b\x9d\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xa1\x6b\xa2\x6b\xa3\x6b\xa4\x6b\xa5\x6b\xa6\x6b\xa7\x6b\xa8\x6b\xa9\x6b\xaa\x6b\xab\x6b\xac\x6b\xad\x6b\xae\x6b\xaf\x6b\xb0\x6b\xb1\x6b\xb2\x6b\xb3\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x6b\xba\x6b\xbb\x6b\xbc\x6b\xbd\x6b\xbe\x6b\xbf\x6b\xc0\x6b\xc1\x6b\xc2\x6b\xc3\x6b\xc4", /* e200 */ "\x6b\xc5\x6b\xc6\x6b\xc7\x6b\xc8\x6b\xc9\x6b\xca\x6b\xcb\x6b\xcc\x6b\xcd\x6b\xce\x6b\xcf\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\x6b\xd4\x6b\xd5\x6b\xd6\x6b\xd7\x6b\xd8\x6b\xd9\x6b\xda\x6b\xdb\x6b\xdc\x6b\xdd\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x6b\xe9\x6b\xea\x6b\xeb\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\x6b\xfc\x6b\xfd\x6b\xfe\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\x6c\x46\x6c\x47\x6c\x48\x6c\x49\x6c\x4a\x6c\x4b\x6c\x4c\x6c\x4d\x6c\x4e\x6c\x4f\x6c\x50\x6c\x51\x6c\x52\x6c\x53\x6c\x54\x6c\x55\x6c\x56\x6c\x57\x6c\x58\x6c\x59\x6c\x5a\x6c\x5b\x6c\x5c\x6c\x5d\x6c\x5e\x6c\x5f\x6c\x60\x6c\x61\x6c\x62\x6c\x63\x6c\x64\x6c\x65\x6c\x66\x6c\x67\x6c\x68\x6c\x69\x6c\x6a\x6c\x6b\x6c\x6c\x6c\x6d\x6c\x6e\x6c\x6f\x6c\x70\x6c\x71\x6c\x72\x6c\x73\x6c\x74\x6c\x75\x6c\x76\x6c\x77\x6c\x78\x6c\x79\x6c\x7a\x6c\x7b\x6c\x7c\x6c\x7d\x6c\x7e\x6c\x7f\x6c\x80\x6c\x81\x6c\x82\x6c\x83\x6c\x84\x6c\x85\x6c\x86", /* e280 */ "\x6c\x87\x6c\x88\x6c\x89\x6c\x8a\x6c\x8b\x6c\x8c\x6c\x8d\x6c\x8e\x6c\x8f\x6c\x90\x6c\x91\x6c\x92\x6c\x93\x6c\x94\x6c\x95\x6c\x96\x6c\x97\x6c\x98\x6c\x99\x6c\x9a\x6c\x9b\x6c\x9c\x6c\x9d\x6c\x9e\x6c\x9f\x6c\xa0\x6c\xa1\x6c\xa2\x6c\xa3\x6c\xa4\x6c\xa5\x6c\xa6\x6c\xa7\x6c\xa8\x6c\xa9\x6c\xaa\x6c\xab\x6c\xac\x6c\xad\x6c\xae\x6c\xaf\x6c\xb0\x6c\xb1\x6c\xb2\x6c\xb3\x6c\xb4\x6c\xb5\x6c\xb6\x6c\xb7\x6c\xb8\x6c\xb9\x6c\xba\x6c\xbb\x6c\xbc\x6c\xbd\x6c\xbe\x6c\xbf\x6c\xc0\x6c\xc1\x6c\xc2\x6c\xc3\x6c\xc4\x6c\xc5\x6c\xc6\x6c\xc7\x6c\xc8\x6c\xc9\x6c\xca\x6c\xcb\x6c\xcc\x6c\xcd\x6c\xce\x6c\xcf\x6c\xd0\x6c\xd1\x6c\xd2\x6c\xd3\x6c\xd4\x6c\xd5\x6c\xd6\x6c\xd7\x6c\xd8\x6c\xd9\x6c\xda\x6c\xdb\x6c\xdc\x6c\xdd\x6c\xde\x6c\xdf\x6c\xe0\x6c\xe1\x6c\xe2\x6c\xe3\x6c\xe4\x6c\xe5\x6c\xe6\x6c\xe7\x6c\xe8\x6c\xe9\x6c\xea\x6c\xeb\x6c\xec\x6c\xed\x6c\xee\x6c\xef\x6c\xf0\x6c\xf1\x6c\xf2\x6c\xf3\x6c\xf4\x6c\xf5\x6c\xf6\x6c\xf7\x6c\xf8\x6c\xf9\x6c\xfa\x6c\xfb\x6c\xfc\x6c\xfd\x6c\xfe\x6d\x41\x6d\x42\x6d\x43\x6d\x44\x6d\x45\x6d\x46\x6d\x47\x6d\x48", /* e300 */ "\x6d\x49\x6d\x4a\x6d\x4b\x6d\x4c\x6d\x4d\x6d\x4e\x6d\x4f\x6d\x50\x6d\x51\x6d\x52\x6d\x53\x6d\x54\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x59\x6d\x5a\x6d\x5b\x6d\x5c\x6d\x5d\x6d\x5e\x6d\x5f\x6d\x60\x6d\x61\x6d\x62\x6d\x63\x6d\x64\x6d\x65\x6d\x66\x6d\x67\x6d\x68\x6d\x69\x6d\x6a\x6d\x6b\x6d\x6c\x6d\x6d\x6d\x6e\x6d\x6f\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x74\x6d\x75\x6d\x76\x6d\x77\x6d\x78\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7c\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x82\x6d\x83\x6d\x84\x6d\x85\x6d\x86\x6d\x87\x6d\x88\x6d\x89\x6d\x8a\x6d\x8b\x6d\x8c\x6d\x8d\x6d\x8e\x6d\x8f\x6d\x90\x6d\x91\x6d\x92\x6d\x93\x6d\x94\x6d\x95\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9b\x6d\x9c\x6d\x9d\x6d\x9e\x6d\x9f\x6d\xa0\x6d\xa1\x6d\xa2\x6d\xa3\x6d\xa4\x6d\xa5\x6d\xa6\x6d\xa7\x6d\xa8\x6d\xa9\x6d\xaa\x6d\xab\x6d\xac\x6d\xad\x6d\xae\x6d\xaf\x6d\xb0\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb4\x6d\xb5\x6d\xb6\x6d\xb7\x6d\xb8\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xbf\x6d\xc0\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc4\x6d\xc5\x6d\xc6\x6d\xc7\x6d\xc8", /* e380 */ "\x6d\xc9\x6d\xca\x6d\xcb\x6d\xcc\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd1\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd6\x6d\xd7\x6d\xd8\x6d\xd9\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdd\x6d\xde\x6d\xdf\x6d\xe0\x6d\xe1\x6d\xe2\x6d\xe3\x6d\xe4\x6d\xe5\x6d\xe6\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xeb\x6d\xec\x6d\xed\x6d\xee\x6d\xef\x6d\xf0\x6d\xf1\x6d\xf2\x6d\xf3\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf7\x6d\xf8\x6d\xf9\x6d\xfa\x6d\xfb\x6d\xfc\x6d\xfd\x6d\xfe\x6e\x41\x6e\x42\x6e\x43\x6e\x44\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4d\x6e\x4e\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x53\x6e\x54\x6e\x55\x6e\x56\x6e\x57\x6e\x58\x6e\x59\x6e\x5a\x6e\x5b\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x5f\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6b\x6e\x6c\x6e\x6d\x6e\x6e\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x7e\x6e\x7f\x6e\x80\x6e\x81\x6e\x82\x6e\x83\x6e\x84\x6e\x85\x6e\x86\x6e\x87\x6e\x88\x6e\x89\x6e\x8a", /* e400 */ "\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x8f\x6e\x90\x6e\x91\x6e\x92\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x98\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9c\x6e\x9d\x6e\x9e\x6e\x9f\x6e\xa0\x6e\xa1\x6e\xa2\x6e\xa3\x6e\xa4\x6e\xa5\x6e\xa6\x6e\xa7\x6e\xa8\x6e\xa9\x6e\xaa\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xaf\x6e\xb0\x6e\xb1\x6e\xb2\x6e\xb3\x6e\xb4\x6e\xb5\x6e\xb6\x6e\xb7\x6e\xb8\x6e\xb9\x6e\xba\x6e\xbb\x6e\xbc\x6e\xbd\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc1\x6e\xc2\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc7\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcb\x6e\xcc\x6e\xcd\x6e\xce\x6e\xcf\x6e\xd0\x6e\xd1\x6e\xd2\x6e\xd3\x6e\xd4\x6e\xd5\x6e\xd6\x6e\xd7\x6e\xd8\x6e\xd9\x6e\xda\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xde\x6e\xdf\x6e\xe0\x6e\xe1\x6e\xe2\x6e\xe3\x6e\xe4\x6e\xe5\x6e\xe6\x6e\xe7\x6e\xe8\x6e\xe9\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf4\x6e\xf5\x6e\xf6\x6e\xf7\x6e\xf8\x6e\xf9\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6f\x41\x6f\x42\x6f\x43\x6f\x44\x6f\x45\x6f\x46\x6f\x47\x6f\x48\x6f\x49\x6f\x4a\x6f\x4b\x6f\x4c", /* e480 */ "\x6f\x4d\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x58\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5c\x6f\x5d\x6f\x5e\x6f\x5f\x6f\x60\x6f\x61\x6f\x62\x6f\x63\x6f\x64\x6f\x65\x6f\x66\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6d\x6f\x6e\x6f\x6f\x6f\x70\x6f\x71\x6f\x72\x6f\x73\x6f\x74\x6f\x75\x6f\x76\x6f\x77\x6f\x78\x6f\x79\x6f\x7a\x6f\x7b\x6f\x7c\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x84\x6f\x85\x6f\x86\x6f\x87\x6f\x88\x6f\x89\x6f\x8a\x6f\x8b\x6f\x8c\x6f\x8d\x6f\x8e\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9c\x6f\x9d\x6f\x9e\x6f\x9f\x6f\xa0\x6f\xa1\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa7\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb3\x6f\xb4\x6f\xb5\x6f\xb6\x6f\xb7\x6f\xb8\x6f\xb9\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc0\x6f\xc1\x6f\xc2\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xc9\x6f\xca\x6f\xcb\x6f\xcc", /* e500 */ "\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd1\x6f\xd2\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xde\x6f\xdf\x6f\xe0\x6f\xe1\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea\x6f\xeb\x6f\xec\x6f\xed\x6f\xee\x6f\xef\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4c\x70\x4d\x70\x4e\x70\x4f\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5e\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6b\x70\x6c\x70\x6d\x70\x6e\x70\x6f\x70\x70\x70\x71\x70\x72\x70\x73\x70\x74\x70\x75\x70\x76\x70\x77\x70\x78\x70\x79\x70\x7a\x70\x7b\x70\x7c\x70\x7d\x70\x7e\x70\x7f\x70\x80\x70\x81\x70\x82\x70\x83\x70\x84\x70\x85\x70\x86\x70\x87\x70\x88\x70\x89\x70\x8a\x70\x8b\x70\x8c\x70\x8d\x70\x8e", /* e580 */ "\x70\x8f\x70\x90\x70\x91\x70\x92\x70\x93\x70\x94\x70\x95\x70\x96\x70\x97\x70\x98\x70\x99\x70\x9a\x70\x9b\x70\x9c\x70\x9d\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xab\x70\xac\x70\xad\x70\xae\x70\xaf\x70\xb0\x70\xb1\x70\xb2\x70\xb3\x70\xb4\x70\xb5\x70\xb6\x70\xb7\x70\xb8\x70\xb9\x70\xba\x70\xbb\x70\xbc\x70\xbd\x70\xbe\x70\xbf\x70\xc0\x70\xc1\x70\xc2\x70\xc3\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc8\x70\xc9\x70\xca\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xd8\x70\xd9\x70\xda\x70\xdb\x70\xdc\x70\xdd\x70\xde\x70\xdf\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe4\x70\xe5\x70\xe6\x70\xe7\x70\xe8\x70\xe9\x70\xea\x70\xeb\x70\xec\x70\xed\x70\xee\x70\xef\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf7\x70\xf8\x70\xf9\x70\xfa\x70\xfb\x70\xfc\x70\xfd\x70\xfe\x71\x41\x71\x42\x71\x43\x71\x44\x71\x45\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4a\x71\x4b\x71\x4c\x71\x4d\x71\x4e\x71\x4f\x71\x50", /* e600 */ "\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5c\x71\x5d\x71\x5e\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x64\x71\x65\x71\x66\x71\x67\x71\x68\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6e\x71\x6f\x71\x70\x71\x71\x71\x72\x71\x73\x71\x74\x71\x75\x71\x76\x71\x77\x71\x78\x71\x79\x71\x7a\x71\x7b\x71\x7c\x71\x7d\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x84\x71\x85\x71\x86\x71\x87\x71\x88\x71\x89\x71\x8a\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x8f\x71\x90\x71\x91\x71\x92\x71\x93\x71\x94\x71\x95\x71\x96\x71\x97\x71\x98\x71\x99\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\x9f\x71\xa0\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa8\x71\xa9\x71\xaa\x71\xab\x71\xac\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb3\x71\xb4\x71\xb5\x71\xb6\x71\xb7\x71\xb8\x71\xb9\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc3\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xce\x71\xcf\x71\xd0", /* e680 */ "\x71\xd1\x71\xd2\x71\xd3\x71\xd4\x71\xd5\x71\xd6\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe0\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe5\x71\xe6\x71\xe7\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xee\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8\x71\xf9\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x47\x72\x48\x72\x49\x72\x4a\x72\x4b\x72\x4c\x72\x4d\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x52\x72\x53\x72\x54\x72\x55\x72\x56\x72\x57\x72\x58\x72\x59\x72\x5a\x72\x5b\x72\x5c\x72\x5d\x72\x5e\x72\x5f\x72\x60\x72\x61\x72\x62\x72\x63\x72\x64\x72\x65\x72\x66\x72\x67\x72\x68\x72\x69\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x6e\x72\x6f\x72\x70\x72\x71\x72\x72\x72\x73\x72\x74\x72\x75\x72\x76\x72\x77\x72\x78\x72\x79\x72\x7a\x72\x7b\x72\x7c\x72\x7d\x72\x7e\x72\x7f\x72\x80\x72\x81\x72\x82\x72\x83\x72\x84\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8a\x72\x8b\x72\x8c\x72\x8d\x72\x8e\x72\x8f\x72\x90\x72\x91\x72\x92", /* e700 */ "\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\x9f\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xac\x72\xad\x72\xae\x72\xaf\x72\xb0\x72\xb1\x72\xb2\x72\xb3\x72\xb4\x72\xb5\x72\xb6\x72\xb7\x72\xb8\x72\xb9\x72\xba\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc1\x72\xc2\x72\xc3\x72\xc4\x72\xc5\x72\xc6\x72\xc7\x72\xc8\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcd\x72\xce\x72\xcf\x72\xd0\x72\xd1\x72\xd2\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd7\x72\xd8\x72\xd9\x72\xda\x72\xdb\x72\xdc\x72\xdd\x72\xde\x72\xdf\x72\xe0\x72\xe1\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xe8\x72\xe9\x72\xea\x72\xeb\x72\xec\x72\xed\x72\xee\x72\xef\x72\xf0\x72\xf1\x72\xf2\x72\xf3\x72\xf4\x72\xf5\x72\xf6\x72\xf7\x72\xf8\x72\xf9\x72\xfa\x72\xfb\x72\xfc\x72\xfd\x72\xfe\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4d\x73\x4e\x73\x4f\x73\x50\x73\x51\x73\x52\x73\x53\x73\x54", /* e780 */ "\x73\x55\x73\x56\x73\x57\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x60\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6c\x73\x6d\x73\x6e\x73\x6f\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c\x73\x7d\x73\x7e\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x84\x73\x85\x73\x86\x73\x87\x73\x88\x73\x89\x73\x8a\x73\x8b\x73\x8c\x73\x8d\x73\x8e\x73\x8f\x73\x90\x73\x91\x73\x92\x73\x93\x73\x94\x73\x95\x73\x96\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9b\x73\x9c\x73\x9d\x73\x9e\x73\x9f\x73\xa0\x73\xa1\x73\xa2\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xa9\x73\xaa\x73\xab\x73\xac\x73\xad\x73\xae\x73\xaf\x73\xb0\x73\xb1\x73\xb2\x73\xb3\x73\xb4\x73\xb5\x73\xb6\x73\xb7\x73\xb8\x73\xb9\x73\xba\x73\xbb\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc0\x73\xc1\x73\xc2\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xc8\x73\xc9\x73\xca\x73\xcb\x73\xcc\x73\xcd\x73\xce\x73\xcf\x73\xd0\x73\xd1\x73\xd2\x73\xd3\x73\xd4", /* e800 */ "\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xd9\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xde\x73\xdf\x73\xe0\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe5\x73\xe6\x73\xe7\x73\xe8\x73\xe9\x73\xea\x73\xeb\x73\xec\x73\xed\x73\xee\x73\xef\x73\xf0\x73\xf1\x73\xf2\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc\x73\xfd\x73\xfe\x74\x41\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x55\x74\x56\x74\x57\x74\x58\x74\x59\x74\x5a\x74\x5b\x74\x5c\x74\x5d\x74\x5e\x74\x5f\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6d\x74\x6e\x74\x6f\x74\x70\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x76\x74\x77\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7e\x74\x7f\x74\x80\x74\x81\x74\x82\x74\x83\x74\x84\x74\x85\x74\x86\x74\x87\x74\x88\x74\x89\x74\x8a\x74\x8b\x74\x8c\x74\x8d\x74\x8e\x74\x8f\x74\x90\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96", /* e880 */ "\x74\x97\x74\x98\x74\x99\x74\x9a\x74\x9b\x74\x9c\x74\x9d\x74\x9e\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xa7\x74\xa8\x74\xa9\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xba\x74\xbb\x74\xbc\x74\xbd\x74\xbe\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd2\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdc\x74\xdd\x74\xde\x74\xdf\x74\xe0\x74\xe1\x74\xe2\x74\xe3\x74\xe4\x74\xe5\x74\xe6\x74\xe7\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xee\x74\xef\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf4\x74\xf5\x74\xf6\x74\xf7\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x41\x75\x42\x75\x43\x75\x44\x75\x45\x75\x46\x75\x47\x75\x48\x75\x49\x75\x4a\x75\x4b\x75\x4c\x75\x4d\x75\x4e\x75\x4f\x75\x50\x75\x51\x75\x52\x75\x53\x75\x54\x75\x55\x75\x56\x75\x57\x75\x58", /* e900 */ "\x75\x59\x75\x5a\x75\x5b\x75\x5c\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x65\x75\x66\x75\x67\x75\x68\x75\x69\x75\x6a\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x72\x75\x73\x75\x74\x75\x75\x75\x76\x75\x77\x75\x78\x75\x79\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x7f\x75\x80\x75\x81\x75\x82\x75\x83\x75\x84\x75\x85\x75\x86\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8b\x75\x8c\x75\x8d\x75\x8e\x75\x8f\x75\x90\x75\x91\x75\x92\x75\x93\x75\x94\x75\x95\x75\x96\x75\x97\x75\x98\x75\x99\x75\x9a\x75\x9b\x75\x9c\x75\x9d\x75\x9e\x75\x9f\x75\xa0\x75\xa1\x75\xa2\x75\xa3\x75\xa4\x75\xa5\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xab\x75\xac\x75\xad\x75\xae\x75\xaf\x75\xb0\x75\xb1\x75\xb2\x75\xb3\x75\xb4\x75\xb5\x75\xb6\x75\xb7\x75\xb8\x75\xb9\x75\xba\x75\xbb\x75\xbc\x75\xbd\x75\xbe\x75\xbf\x75\xc0\x75\xc1\x75\xc2\x75\xc3\x75\xc4\x75\xc5\x75\xc6\x75\xc7\x75\xc8\x75\xc9\x75\xca\x75\xcb\x75\xcc\x75\xcd\x75\xce\x75\xcf\x75\xd0\x75\xd1\x75\xd2\x75\xd3\x75\xd4\x75\xd5\x75\xd6\x75\xd7\x75\xd8", /* e980 */ "\x75\xd9\x75\xda\x75\xdb\x75\xdc\x75\xdd\x75\xde\x75\xdf\x75\xe0\x75\xe1\x75\xe2\x75\xe3\x75\xe4\x75\xe5\x75\xe6\x75\xe7\x75\xe8\x75\xe9\x75\xea\x75\xeb\x75\xec\x75\xed\x75\xee\x75\xef\x75\xf0\x75\xf1\x75\xf2\x75\xf3\x75\xf4\x75\xf5\x75\xf6\x75\xf7\x75\xf8\x75\xf9\x75\xfa\x75\xfb\x75\xfc\x75\xfd\x75\xfe\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x80\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a", /* ea00 */ "\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x76\xfe\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c", /* ea80 */ "\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x80\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc", /* eb00 */ "\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x77\xfe\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x80\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e", /* eb80 */ "\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x78\xfe\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60", /* ec00 */ "\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x80\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0", /* ec80 */ "\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x79\xfe\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x80\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2", /* ed00 */ "\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7a\xfe\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64", /* ed80 */ "\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x80\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4", /* ee00 */ "\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7b\xfe\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x80\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6", /* ee80 */ "\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7c\xfe\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68", /* ef00 */ "\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x80\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8", /* ef80 */ "\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7d\xfe\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x80\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa", /* f000 */ "\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7e\xfe\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c", /* f080 */ "\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x80\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec", /* f100 */ "\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x7f\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x8e\x58\x77\x58\x82\x59\x80\x5b\xae\x5c\x66\x5c\x78\x5e\x49\x5e\x8a\x5f\x7a\x5f\xd2\x5f\xd5\x5f\xd9\x5f\xdd\x60\x59\x60\xad\x61\x77\x62\xb9\x62\xce\x62\xe2\x63\xee\x64\x8e\x64\xf1\x65\x49\x65\x66\x65\xb8\x65\xc6\x66\x78\x66\xdd\x66\xdf\x66\xe6\x67\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x00\x00\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x00\x00\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-300_P110-1997 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\x22\x12\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x22\x20\x22\xa5\x23\x12\x22\x02\x22\x07\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\x22\x61\x22\x52\x22\x6a\x22\x6b\x22\x1a\x22\x3d\x22\x1d\x22\x2b\x22\x2c\x22\x08\x22\x0b\x22\x86\x22\x87\x22\x82\x22\x83\x22\x2a\x22\x29\x22\x27\x22\x28\x21\xd2\x21\xd4\x22\x00\x22\x03\x21\x2b\x20\x30\x26\x6f\x26\x6d\x26\x6a\x20\x20\x20\x21\x00\xb6\x25\xef\x00\x00\x25\x00\x25\x02\x25\x0c\x25\x10", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\x30\x1c\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x25\x18\x25\x14\x25\x1c\x25\x2c\x25\x24\x25\x34\x25\x3c\x25\x01\x25\x03\x25\x0f\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x25\x13\x25\x1b\x25\x17\x25\x23\x25\x33\x25\x2b\x25\x3b\x25\x4b\x25\x20\x25\x2f\x25\x28\x25\x37\x25\x3f\x25\x1d\x25\x30\x25\x25\x25\x38\x25\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x14\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\x4e\xdd\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x66\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\xf8\x6f\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x67\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x8c\x4e\x09\x56\xdb\x4e\x94\x51\x6d\x4e\x03\x51\x6b\x4e\x5d\x53\x41\x76\x7e\x53\x43\x4e\x07\x51\x04\x90\xfd\x90\x53\x5e\x9c\x77\x0c\x5e\x02\x53\x3a\x75\x3a\x67\x51\x67\x71\x89\x7f\x53\x57\x53\x17\x59\x27\x4e\x2d\x5c\x0f\x4e\x0a\x4e\x0b\x5e\x74\x67\x08\x65\xe5\x75\x30\x5b\x50\x5c\x71\x67\x2c\x5d\xdd\x85\xe4\x91\xce\x5d\xe5\x69\x6d\x67\x28\x4e\x95\x90\xce\x5c\xf6\x96\xc4\x9a\xd8\x5c\xa1\x59\x2b\x53\x9f\x4e\xac\x4f\x50\x6b\x63\x67\x7e\x6a\x5f\x54\x8c\x88\xfd\x75\x37\x7f\x8e\x54\x09\x5d\x0e", /* 4580 */ "\x77\xf3\x8c\x37\x96\xfb\x95\x77\x6c\xbb\x6c\xa2\x91\xd1\x65\xb0\x53\xe3\x6a\x4b\x4e\x45\x79\x8f\x62\x40\x5e\x73\x51\x85\x56\xfd\x53\x16\x96\x2a\x5b\xae\x4e\xba\x4f\x5c\x90\xe8\x6e\x05\x6b\x21\x7f\xa9\x75\x1f\x4e\xe3\x51\xfa\x6c\x34\x68\xee\x51\x49\x52\xa0\x54\x08\x79\x5e\x67\x97\x91\xcd\x88\x4c\x4f\xe1\x66\x0e\x6d\x77\x5b\x89\x5e\x78\x4f\xdd\x59\x2a\x5b\xcc\x6c\x5f\x92\x34\x52\x4d\x77\xe5\x6b\x66\x4f\x0a\x66\x2d\x52\x06\x52\xdd\x75\x28\x5e\x83\x90\x20\x6c\x17\x62\x10\x89\x8b\x52\x29\x4f\x1a\x5b\x66\x5c\xa9\x75\x23\x95\x93\x57\x30\x81\xea\x82\x6f\x95\xa2\x61\x1b\x65\x3f\x5c\x3e\x8a\x08\x65\x87\x62\x4b\x72\x36\x65\xb9\x4e\x8b\x62\x38\x54\xc1\x55\x9c\x6e\x21\x5f\x18\x53\xe4\x8f\xba\x50\x09\x92\x44\x4e\x4b\x58\x34\x6d\x0b\x57\xce\x6d\x25\x7a\xcb\x5e\xa6\x53\x48\x4e\xca\x5f\x66\x8a\x2d\x90\x1a\x52\xd5\x5f\x8c\x59\x48\x5b\x9a\x6c\x60\x5c\x4b\x6d\x5c\x74\x06\x57\x42\x5b\x9f\x82\xf1\x76\x84\x53\xf8\x79\xc0\x6a\x2a\x54\x0d\x5b\x5d\x7a\xf9\x53\x5a\x52\x9b\x5e\xab\x84\x49\x68\x04\x6c\x38\x56\x68\x73\x89\x59\x1a\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\xc0\x77\x1f\x60\x75\x97\x59\x51\x86\x83\x02\x65\x4f\x8c\x4a\x51\x75\x6c\xd5\x76\x7a\x97\x52\x58\x97\x65\x99\x5f\xe0\x8c\xc7\x66\x42\x72\x69\x8e\xca\x5f\xb3\x89\x81\x5b\xfe\x58\x5a\x79\xcb\x76\x7d\x6c\xb3\x70\x2c\x6c\xb9\x96\x86\x85\x35\x5f\x53\x4f\xca\x5f\xd7\x66\x25\x79\x3e\x99\xac\x51\x65\x5e\xfa\x68\x39\x67\x49\x90\x32\x82\x08\x6d\x66\x7c\xbe\x54\x0c\x60\x27\x7c\x73\x80\x05\x52\xa9\x67\x9d\x8f\xd1\x76\xf4\x76\xee\x67\x65\x75\x3b\x76\xf8\x9e\xd2\x4e\x38\x82\x39\x75\x31\x58\xeb\x7b\x2c\x71\x8a", /* 4680 */ "\x7d\x19\x50\x65\x68\xb0\x82\xb3\x57\x1f\x67\x09\x5b\xb6\x7d\xda\x7d\x4c\x8a\xbf\x59\x29\x67\x1f\x7f\x6e\x6d\x45\x65\x89\x5f\x0f\x5f\x62\x97\x62\x7a\x2e\x8f\x38\x59\x16\x51\x43\x4f\x53\x9e\x7f\x5f\xa1\x59\x73\x5e\xb7\x4e\x16\x52\xc7\x58\x00\x59\x7d\x51\x50\x5b\xfa\x92\xfc\x72\x79\x57\xfc\x90\x54\x54\x11\x53\xd6\x7b\x49\x66\x7a\x56\xde\x95\x80\x90\x4b\x50\x99\x60\x1d\x96\x3f\x4e\x0d\x98\x08\x51\x68\x5b\xff\x55\x84\x67\x7f\x98\xef\x8c\x9e\x73\xfe\x98\xdf\x7d\x44\x98\x5e\x51\x6c\x67\x50\x99\x99\x55\x46\x7d\x50\x88\x68\x77\xe2\x6f\x5f\x79\xc1\x52\x36\x90\xa6\x6c\xbc\x7c\xf8\x5b\x8f\x7b\x56\x6c\xe2\x54\xe1\x65\x70\x95\x8b\x6e\x96\x6a\x39\x8c\xbb\x66\x0c\x5f\x37\x78\x14\x53\xcb\x5b\x87\x82\xe5\x83\xca\x63\x01\x82\xb1\x5f\x15\x7d\x00\x83\x52\x52\x25\x4f\xee\x8d\x8a\x4f\x4f\x85\xac\x6b\xdb\x90\x60\x55\x4f\x59\x65\x57\x8b\x5f\xc3\x76\x7b\x65\xe9\x67\xf3\x6d\x69\x8c\xea\x52\xd9\x6c\xc9\x5e\x38\x5b\x88\x57\xfa\x7b\xa1\x6c\xf0\x4f\x38\x67\x00\x4e\xe5\x6b\x4c\x88\xd5\x8d\x64\x8d\xb3\x89\x8f\x6d\x41\x8a\xa0\x66\x07\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xde\x71\x67\x58\x69\x90\x01\x96\xc5\x67\x2b\x54\xf2\x5c\xb8\x4e\x5f\x5c\x90\x52\x1d\x83\x28\x52\x47\x6b\xd4\x80\xfd\x8a\x71\x62\x95\x8e\xe2\x83\xc5\x90\x23\x4e\xd6\x6c\x11\x7d\x66\x91\x52\x7e\x41\x4f\xa1\x6e\x80\x67\x1d\x4e\xd8\x67\x61\x71\x21\x80\x03\x69\x7d\x4e\x3b\x61\x0f\x62\x26\x52\x07\x52\x64\x72\x47\x7d\x30\x6e\x08\x7a\x32\x5e\x03\x91\xcc\x5c\x5e\x7a\xe0\x59\x09\x4f\x55\x68\x5c\x5f\x7c\x67\xfb\x76\xca\x58\xf2\x4e\xc1\x6d\xf1\x53\xf0\x9c\xe5\x9d\xb4\x65\x2f\x65\x74\x89\xd2\x56\x09\x54\x73", /* 4780 */ "\x88\x5b\x8b\x70\x57\x27\x73\x87\x8d\xef\x70\x6b\x96\x1c\x8f\x1d\x70\xb9\x4e\x0e\x6e\x1b\x75\x51\x92\x80\x7a\x7a\x4e\xa4\x7f\xbd\x53\x4a\x53\xce\x59\x2e\x7d\xcf\x8a\x18\x66\x74\x69\xcb\x96\x9b\x68\x85\x53\x70\x8a\x00\x68\x17\x8e\xab\x66\xf8\x51\x4b\x7d\x20\x96\xc6\x7b\xc0\x51\x48\x6e\xdd\x6c\x7a\x65\x59\x7d\x14\x67\xf4\x63\xa5\x66\x1f\x77\x40\x75\x59\x66\x20\x5d\xf1\x75\x4c\x51\x77\x65\x6c\x7f\xa4\x98\x06\x51\x71\x6d\x3b\x91\xcf\x63\x07\x89\xe3\x5b\xa4\x67\x9c\x54\x04\x67\x1b\x96\x32\x7d\x04\x61\xb2\x96\x7d\x4e\x80\x56\xf3\x4e\x88\x82\x72\x7a\x0e\x69\x0d\x53\xef\x60\x52\x4f\x4d\x51\x78\x5f\xc5\x7d\x9a\x60\x25\x57\x28\x57\xa3\x54\x1b\x5e\xf6\x5d\x8b\x4f\x01\x68\x03\x67\x0d\x71\xb1\x52\x72\x53\x54\x6b\x69\x53\xf2\x51\x2a\x65\x8e\x62\x3f\x5b\x97\x68\x3c\x8f\xb0\x7b\x20\x57\x12\x8a\xf8\x81\x07\x55\x53\x8c\xe2\x5f\x25\x98\xa8\x5f\x97\x66\x13\x62\x53\x98\x2d\x65\xed\x6b\xb5\x52\xe2\x71\x36\x56\xe3\x98\x4d\x84\x3d\x91\x4d\x7a\x0b\x8f\xbb\x54\x3e\x61\x1f\x5b\xdb\x53\xcd\x7a\x14\x97\x00\x6e\x90\x6c\x96\x98\x4c\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xbc\x83\x49\x7b\x97\x76\xdb\x8f\xb2\x90\xa3\x77\x01\x69\xd8\x6b\xbf\x5c\x11\x4e\xcb\x53\xd7\x97\xf3\x7d\xe8\x59\xd4\x5e\x84\x4f\xc2\x72\xb6\x79\x3a\x5e\x97\x5a\x9b\x68\x2a\x6e\xcb\x68\xa8\x7e\x04\x53\xf3\x5d\xe6\x53\xca\x90\x78\x5c\x45\x60\xc5\x7d\xf4\x70\xad\x99\x28\x92\x71\x6a\x21\x6b\x8a\x7e\x3e\x4e\x9c\x7e\x4a\x4e\xf2\x58\x57\x6d\x88\x88\x53\x69\x1c\x67\x17\x5b\x85\x52\x9f\x5c\x1a\x8c\xbf\x60\xa6\x81\x02\x7b\xe0\x4f\x73\x7d\x21\x51\xa8\x68\x51\x78\xba\x72\x67\x4e\x26\x50\x24\x89\xb3\x8c\xb4", /* 4880 */ "\x7d\xad\x7d\x71\x5b\xbf\x4e\x21\x7c\xd6\x89\xaa\x93\x32\x6f\x84\x65\xbd\x5b\xb9\x98\xdb\x5c\x40\x79\x50\x90\x4e\x6c\x0f\x65\x39\x76\xe4\x7a\x4d\x6e\x0b\x5d\xfb\x6d\xf3\x5f\xdc\x4e\x89\x8e\xcd\x88\xc5\x91\x78\x7e\x54\x67\xd3\x5e\x1d\x7d\xbf\x7c\x89\x82\x2a\x75\x32\x54\x68\x4e\xd9\x5f\x85\x4f\x4e\x7d\xd1\x8e\xfd\x9e\xbb\x61\x76\x52\xb4\x78\xef\x4e\x39\x80\xb2\x96\x50\x5c\x0e\x65\x3e\x66\x43\x5e\xa7\x4e\xf6\x60\xf3\x9a\x13\x4e\xd5\x4f\x7f\x8f\x2a\x98\x54\x75\x6a\x5f\x35\x80\x5e\x4f\x9b\x6e\x6f\x6e\xb6\x68\x21\x92\x85\x92\xf3\x87\x8d\x97\x56\x51\x99\x5b\x8c\x6e\x2f\x93\x5b\x59\x1c\x51\x45\x9f\x8d\x7d\xb1\x83\xf1\x90\x1f\x52\xc9\x52\x37\x8d\x77\x64\x69\x53\xc2\x55\xb6\x7a\x42\x63\xa8\x8f\xd4\x80\x77\x6b\x62\x4f\x1d\x5e\x79\x74\x03\x6a\x29\x5c\x55\x5e\x61\x84\x5b\x5e\xad\x97\x5e\x53\xf7\x53\x58\x6b\x73\x62\xe1\x51\xe6\x8a\x9e\x66\x28\x57\xdf\x6d\xf5\x51\x8d\x50\xcd\x79\xd1\x9b\x5a\x7a\xef\x90\x14\x68\x48\x5b\x57\x8a\xd6\x51\x7c\x53\xc8\x63\x2f\x62\x80\x5f\xb9\x67\x2d\x7c\xfb\x5f\x93\x51\xb7\x61\x4b\x5c\xf0\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x31\x53\x9a\x50\x74\x6c\xe8\x6e\x2c\x98\x03\x4e\x57\x8a\x66\x57\x6a\x84\x29\x51\x5a\x6c\x7d\x5b\x9d\x60\x6d\x6a\x0b\x6e\x29\x65\x77\x8a\xac\x82\xb8\x54\x4a\x6b\x74\x82\x2c\x98\xfe\x79\x3c\x5c\x06\x96\xe3\x78\x02\x52\x24\x5f\x79\x5f\x71\x66\xfd\x5e\x2f\x96\x78\x93\x8c\x8a\xc7\x5f\x70\x60\xaa\x6a\x19\x75\x33\x5b\xb3\x6b\xcd\x88\xdc\x5e\x4c\x58\xf0\x96\x64\x7b\x39\x5a\x66\x4e\x7e\x7a\xf6\x82\x9d\x72\x5b\x8c\xb7\x79\xfb\x78\x5d\x83\x36\x52\xb9\x99\x0a\x52\xf2\x80\xa5\x8b\x19\x70\x89\x59\x0f\x58\x02", /* 4980 */ "\x67\xcf\x62\x55\x5e\x30\x71\x3c\x78\x6b\x80\x01\x7a\x76\x5b\xe9\x91\xdd\x65\xad\x5c\x04\x5d\xee\x5d\x50\x62\x98\x80\x10\x5b\xa3\x59\xcb\x5f\x8b\x6b\x8b\x66\x6f\x8c\x61\x90\xf7\x53\x53\x96\xe2\x85\xab\x6b\x7b\x80\x15\x64\xcd\x4e\xae\x4e\x91\x90\xe1\x52\xe4\x6c\x42\x8c\xab\x5b\x98\x59\xbb\x88\xcf\x77\x3c\x4f\x2f\x7a\xaf\x7b\xc9\x96\x8e\x63\xdb\x68\x42\x99\xc5\x68\xb6\x57\x47\x8c\xa1\x54\x7d\x73\x8b\x84\xb2\x90\xc1\x78\xe8\x7b\x11\x66\xf2\x69\x75\x58\x31\x63\xd0\x8a\x3c\x96\xea\x90\x55\x88\xc1\x99\x96\x75\xc5\x68\x50\x4f\x59\x74\xe6\x4e\xe4\x54\x39\x73\x2a\x67\x2a\x52\x5b\x8c\xa0\x4f\x34\x51\x00\x54\x2b\x90\x69\x8f\xc4\x5c\x3b\x5d\xcc\x7b\x54\x8f\xfd\x8a\x0e\x4e\x08\x92\x5b\x71\xc3\x8a\xb2\x70\xba\x96\x62\x67\x9a\x76\xae\x8b\x77\x7d\xbe\x96\xe8\x62\x11\x5b\xc4\x83\x7b\x62\xbc\x7d\x0d\x76\xe3\x7e\x2b\x96\x4d\x57\x2d\x7a\xdc\x7b\xc4\x6b\xba\x8c\x9d\x69\x8e\x90\x47\x6f\x14\x53\x60\x8f\xeb\x52\x87\x62\x4d\x65\x66\x7d\x1a\x7d\x42\x6b\xce\x7d\x79\x7e\x2e\x66\x6e\x79\x65\x50\x0b\x5c\x02\x99\xd2\x8a\x55\x75\x60\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x58\x80\x89\x50\xbe\x5e\x2b\x6d\xb2\x4f\x8b\x81\xe3\x81\xf3\x56\xe0\x7d\x99\x5d\xf2\x89\x9a\x6e\x9d\x6d\x17\x8a\xad\x89\x96\x73\x1b\x5d\xe8\x7d\xb2\x88\x8b\x4e\xfb\x5b\xc6\x88\x96\x6c\xc1\x84\x57\x8f\x03\x6b\xc5\x97\xff\x8c\xa9\x5e\x45\x82\xe6\x63\xaa\x5f\x81\x78\xc1\x82\x1e\x52\xaa\x7a\xaa\x59\x99\x62\x97\x8f\x14\x7f\xd2\x4f\xc3\x54\xc9\x96\x7a\x66\xf4\x8b\x1b\x5e\x72\x5f\xa9\x8a\x2a\x6d\x3e\x77\x63\x64\x83\x8b\x58\x61\x4e\x5a\x5a\x8d\x85\x71\xd0\x98\x3c\x72\xe9\x58\x3a\x5d\xfe\x8a\x8d\x67\xc4", /* 4a80 */ "\x7d\xe0\x4f\x11\x77\xed\x4f\x0f\x5b\xc5\x62\x9c\x5c\x3c\x53\x3b\x6d\xc0\x81\xfc\x96\xd1\x90\x4a\x6d\x6e\x93\xe1\x5c\x64\x98\xfc\x52\x4a\x6d\xfb\x85\x84\x96\x8a\x56\xfa\x58\x83\x77\x66\x98\x05\x4e\x73\x8c\x46\x8a\x31\x7d\xd2\x8f\xf0\x6d\x6a\x4f\x9d\x6b\x6f\x6b\x27\x62\xc5\x51\x1f\x97\x69\x53\x74\x9a\xa8\x67\x75\x88\x7f\x53\x05\x75\x70\x8d\x70\x86\x4e\x5c\xef\x8c\xde\x5f\xf5\x72\x5f\x76\x86\x60\x9f\x80\xcc\x59\xeb\x81\x31\x5e\x0c\x8a\x17\x96\x76\x82\xd7\x74\xb0\x84\xb8\x50\xd5\x96\xf2\x72\x48\x78\x34\x6d\xd1\x6e\x09\x67\xff\x6f\x54\x59\x15\x50\x0d\x72\xac\x9e\xc4\x7b\x46\x9b\x3c\x65\x63\x53\xbb\x8a\x98\x91\xdc\x98\x18\x6f\xc3\x65\xc5\x50\x1f\x7f\x8a\x6f\x64\x90\x31\x5f\x3e\x63\xf4\x90\x38\x8b\x66\x7b\xe4\x72\x06\x68\x43\x72\xec\x65\xcf\x82\xa6\x5b\xa2\x69\x60\x9e\xa6\x52\xdf\x67\x90\x63\x9b\x7d\x75\x98\x55\x5d\xf3\x58\x05\x8a\xcb\x95\xa3\x88\x63\x8c\xa8\x5b\x63\x5e\x8a\x54\x49\x78\x6c\x7d\x2b\x8c\xa2\x53\x52\x7d\x76\x8c\xb8\x70\x70\x54\x7c\x65\x45\x66\x76\x73\xb2\x56\xf2\x7b\xb1\x58\xa8\x7a\x81\x66\xae\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x87\x59\xff\x88\x40\x56\xf0\x7b\x51\x6d\xf7\x5f\x01\x93\x4b\x90\x00\x4f\xe3\x67\x5f\x4f\xbf\x8c\xc3\x52\x6f\x63\xa1\x54\x42\x89\x07\x69\x8a\x5e\x2d\x5a\x18\x75\x18\x51\x4d\x5e\x7e\x50\xb5\x5b\xdd\x68\xd2\x74\x5e\x69\xfb\x5f\xae\x55\xe3\x8a\x70\x5b\xf8\x58\x24\x83\x58\x5f\x13\x5e\x95\x70\x6f\x75\x1a\x7d\x05\x60\xe3\x7e\x70\x50\x12\x52\x38\x83\xef\x53\x73\x5f\x31\x6a\x2b\x9c\xf4\x53\xcc\x6d\x32\x4e\xab\x4e\x92\x84\x2c\x8a\x8c\x65\xe2\x6f\x01\x80\xa9\x9d\xf9\x8b\x72\x7b\x52\x95\x89\x6d\x74\x63\xa2", /* 4b80 */ "\x65\x90\x5b\xd2\x63\x19\x8a\xb0\x76\xdf\x99\xa8\x7a\x74\x82\x36\x88\x46\x80\x61\x65\x57\x59\x22\x96\x44\x88\xab\x93\x26\x7b\x4b\x62\xb5\x53\x71\x5e\x81\x5b\xdf\x4f\x75\x58\xc1\x70\x58\x7d\xca\x54\x38\x73\xe0\x52\xd8\x52\x08\x78\xd0\x6b\x23\x68\x38\x4e\x43\x69\x0e\x83\x77\x6e\xd1\x98\xf2\x81\x70\x88\x57\x8e\xf8\x79\x8e\x83\xdc\x8f\xce\x7e\x01\x55\x10\x4e\xa8\x8a\x33\x91\x62\x5e\xfb\x60\x6f\x4e\x86\x66\x4b\x63\x68\x52\x17\x80\x56\x51\xfd\x76\x42\x82\x1f\x96\x85\x50\xcf\x66\x2f\x4f\x3c\x4e\x59\x6a\x3d\x4e\x71\x52\x3a\x8a\xcf\x6a\x58\x66\xff\x67\x0b\x65\x3b\x97\x32\x5e\xc3\x8a\x13\x57\x82\x60\x4b\x86\x6b\x95\xd8\x60\xa9\x4e\x01\x63\xcf\x6f\xc0\x65\x9c\x8c\xac\x83\x05\x7c\xa7\x60\x50\x96\xf7\x5f\xcd\x64\x0d\x5b\x54\x90\x0f\x62\xd3\x59\xb9\x71\x59\x51\xac\x79\xf0\x55\x2f\x52\x75\x66\x97\x80\xf8\x4e\x98\x4e\xcf\x51\xcd\x9d\x5c\x51\x44\x7a\x93\x67\xf1\x58\x41\x7c\x21\x88\x61\x5c\x31\x68\xda\x91\xe7\x9d\xf2\x63\xee\x65\x75\x84\xee\x52\x3b\x6b\x32\x7c\x98\x59\x82\x96\x9c\x89\x87\x7c\x9f\x90\x06\x62\xdb\x66\xdc\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x55\x69\x82\x50\xac\x62\x3b\x5f\xd8\x63\xda\x75\xdb\x62\x7f\x61\x6e\x82\x66\x7c\x95\x71\x6e\x96\xc7\x7f\x6a\x54\x26\x52\x00\x83\xd3\x52\x11\x59\x4f\x9d\x28\x57\x4a\x66\xc7\x98\x58\x82\x0e\x66\x14\x73\x3f\x50\xb7\x65\x51\x5e\xb8\x5b\x6b\x55\xac\x5f\xeb\x63\x88\x8c\xaf\x67\x6f\x59\x51\x5a\x01\x71\xe5\x5d\xe3\x8c\x6a\x62\x71\x81\xf4\x5c\x3a\x5f\x92\x90\x45\x73\x84\x71\x49\x79\xd8\x79\x6d\x90\x03\x83\xcc\x5f\xb4\x5b\x8d\x62\x79\x64\xae\x7d\x18\x72\x3e\x5b\xee\x65\xe7\x8d\x08\x9e\x7c\x52\xe7\x5d\x07", /* 4c80 */ "\x9f\x62\x60\x69\x53\x6f\x66\x81\x96\x63\x5e\x3d\x62\xb1\x72\x2a\x6e\x4a\x93\xae\x79\xe6\x53\xe5\x80\x9d\x88\xfe\x53\xb3\x6c\x88\x6e\x7f\x51\x41\x90\x91\x6f\x6e\x84\xc4\x85\xea\x81\x29\x6b\xd2\x66\x3c\x7f\x72\x73\xc2\x5f\x1f\x79\x0e\x60\xb2\x72\xed\x58\xee\x81\x79\x8e\x8d\x5c\x65\x5d\xe7\x6c\x37\x6d\xe1\x86\x2d\x72\xaf\x8e\x0a\x7c\x92\x82\x18\x80\x33\x63\xa7\x92\x91\x50\x19\x81\x55\x8a\x69\x8e\xdf\x66\xb4\x81\x33\x75\x91\x6b\x20\x66\x69\x90\xf5\x4e\x32\x73\xea\x69\x3f\x76\x87\x70\x7d\x7d\x3a\x61\x48\x86\x07\x99\xff\x59\xc9\x78\x32\x78\x15\x90\x7f\x80\xa1\x5c\x3f\x66\xa2\x94\x18\x6d\x44\x5e\x55\x58\x54\x7b\x95\x8d\xe1\x4e\xa1\x8c\x5a\x81\xe8\x89\xe6\x96\x70\x52\x63\x74\xf6\x9a\x5a\x60\x12\x52\x0a\x74\x34\x98\x01\x90\x7a\x55\x04\x79\x56\x52\x30\x54\xb2\x8a\x34\x96\xa3\x4f\xf3\x92\x83\x91\xe3\x7d\x39\x96\x88\x4f\x51\x7d\x61\x5d\xba\x9b\xae\x5f\x80\x79\x5d\x85\x97\x8d\xa3\x7c\x60\x5c\x0a\x75\x65\x85\xa9\x63\xd6\x9e\x97\x7d\x22\x53\x75\x9a\xea\x90\x42\x6b\x3d\x7d\x0b\x63\x92\x80\xaa\x7d\xe9\x9f\x3b\x99\xc6\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x78\x67\x31\x55\x31\x63\x98\x78\x25\x5c\xb3\x5d\xe1\x92\xad\x98\xfd\x98\x10\x6c\xe3\x6b\x64\x53\x21\x6b\x53\x5e\x8f\x7a\xe5\x50\x2b\x6e\x56\x62\xbd\x82\x76\x6a\x9c\x4e\x18\x57\xf7\x75\x2b\x7c\x97\x82\xeb\x98\x02\x81\x1a\x73\xcd\x8f\x9b\x5c\x0b\x63\xe1\x73\x72\x81\x50\x80\xe1\x5b\x99\x76\xd7\x62\x91\x65\xec\x8a\x3a\x59\x47\x65\xe8\x6e\x7e\x66\x96\x55\xab\x8f\x09\x92\xed\x93\x96\x4e\xee\x75\x5c\x6f\x38\x8f\x9e\x79\x81\x5c\x01\x62\xe0\x9b\xe8\x91\xc8\x62\x76\x65\xcb\x8e\x0f\x8b\x21\x69\x9b\x62\x16", /* 4d80 */ "\x5a\x92\x90\xb8\x50\xda\x79\xdf\x6c\x41\x52\x70\x91\x75\x8b\x39\x68\x5d\x58\x75\x81\x9c\x5b\x9c\x8a\x89\x8a\x72\x9d\x8f\x63\x77\x59\x74\x8a\xa4\x52\xb1\x69\x62\x5c\x48\x9c\xe9\x67\x3a\x75\xb2\x6d\x1e\x4f\x0d\x7e\x6d\x7b\x48\x7f\xcc\x65\xe6\x59\xa5\x79\xe9\x62\x12\x6e\xde\x77\x0b\x8c\xa7\x65\xbc\x88\x5d\x6a\xdb\x5c\x4a\x80\x74\x90\x84\x8e\xcc\x65\xd7\x57\xf9\x70\x8e\x6f\x06\x5e\x7c\x77\xac\x4f\xf5\x59\x49\x81\xed\x9b\x45\x7f\xfc\x81\x78\x69\xfd\x6c\xca\x69\xc7\x79\xd2\x8b\x1d\x9e\xd9\x81\xd3\x7a\x3c\x79\x68\x6f\x5c\x63\xb2\x8d\xdd\x63\x83\x6e\x9c\x5e\x33\x61\xf8\x76\xbf\x64\x2c\x7d\xb4\x62\x47\x64\x58\x68\x16\x5f\x69\x90\x22\x7a\x1a\x82\xb9\x70\xc8\x9a\x12\x61\x63\x6f\xef\x53\xeb\x9d\x3b\x62\xfe\x60\xa0\x95\x91\x6d\x99\x61\x62\x92\x98\x63\x5c\x97\x07\x89\x72\x68\x3d\x51\xe1\x9b\x54\x60\x8c\x5b\x22\x99\xc4\x71\x26\x8a\x73\x97\x1c\x73\x96\x67\xd4\x60\xa3\x4e\x11\x4e\xf0\x8c\xdb\x8c\xb0\x79\x12\x97\x74\x89\x86\x51\x46\x57\xdc\x99\xd0\x80\xc3\x83\x38\x78\xa7\x86\xcd\x7f\x85\x50\x49\x82\x47\x69\x0b\x7c\x4d\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x5f\x26\x6e\x25\x68\x81\x93\x75\x5d\xfd\x53\x47\x97\x27\x64\x3a\x75\xc7\x6f\xa4\x73\xa9\x77\xe9\x94\x51\x8b\x5c\x80\x8c\x67\x4e\x4e\xad\x58\x2f\x75\x73\x8e\xd2\x6c\xe5\x93\x20\x8f\xf7\x7d\x33\x72\xc2\x82\x17\x74\x22\x82\xc5\x9a\x30\x77\x3a\x5f\x84\x96\x73\x64\xad\x92\x0d\x74\xdc\x60\xc7\x86\xed\x4f\xfa\x52\xa3\x6a\x3a\x77\x20\x53\x20\x61\xb6\x56\x74\x87\x76\x6c\xbf\x50\x5c\x60\x2a\x84\x66\x6b\x96\x6d\xbc\x97\xd3\x96\x8f\x68\x76\x60\xd1\x53\x78\x64\xa4\x51\xa0\x91\x54\x5d\xf4\x62\x9e\x5e\x63", /* 4e80 */ "\x92\x9a\x76\x93\x6c\x5a\x65\x97\x50\xe7\x7c\x82\x5f\x6b\x6c\xe1\x5f\x6c\x5a\xc1\x6f\x2c\x85\x2d\x64\x42\x57\x50\x58\xc7\x8c\xfc\x8a\x5e\x7a\x7f\x68\x9d\x7e\x26\x7a\x40\x73\x44\x8a\xeb\x4f\xd7\x7a\x63\x80\x36\x7d\xef\x80\xc6\x8a\xed\x73\x1f\x8f\xea\x4f\x0e\x75\x8b\x51\x8a\x67\x34\x5f\xd9\x61\xc7\x65\xaf\x9c\xf3\x5e\xca\x92\x62\x68\xdf\x6c\xb8\x80\xf4\x57\xcb\x6c\x99\x96\xa0\x5b\x64\x58\xf1\x68\xc4\x54\x10\x98\x30\x8a\x87\x4e\x5e\x61\x67\x9b\xab\x90\xaa\x55\xb0\x82\xbd\x59\x6a\x66\xf3\x82\x99\x58\x93\x71\x9f\x62\x84\x67\xd1\x90\x63\x5a\xcc\x6c\x57\x7c\xe7\x58\x51\x64\xb2\x58\xca\x83\x0e\x59\x68\x53\x02\x5a\x46\x87\x02\x60\x65\x72\xd9\x89\xa7\x66\x89\x66\xf9\x5d\x6f\x5b\xb0\x96\xbc\x63\x6e\x60\xdc\x79\x48\x51\xdd\x86\x06\x5e\xc9\x75\x54\x59\x6e\x6b\x04\x4f\x43\x7b\x94\x67\xda\x62\xdd\x62\x8a\x97\x1e\x62\xed\x6e\xc5\x50\x8d\x67\xb6\x80\xe4\x9e\xbf\x5e\xb5\x63\x8c\x85\xcd\x98\x67\x52\xc5\x60\x16\x68\xcb\x61\xd0\x57\x51\x8f\x29\x5f\xaa\x81\xa8\x7d\x62\x71\xc8\x54\xc0\x69\xcc\x6b\x3e\x65\xac\x63\xc3\x4f\x46\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x1b\x6b\x86\x88\xf8\x52\x03\x73\x2e\x66\x87\x7d\x17\x57\xf4\x57\x0f\x61\x8e\x97\x0a\x7c\x3f\x8b\x00\x78\x81\x8c\xe0\x54\x8b\x7b\x87\x74\x5b\x7c\x11\x88\x70\x53\x98\x54\x48\x6c\xf3\x6f\x22\x53\xf6\x88\xb4\x53\x01\x7a\x6b\x86\x95\x58\x6b\x5d\x29\x88\xc2\x62\xd2\x4e\x1e\x50\x36\x96\xc0\x73\x63\x8a\x3b\x51\x76\x71\x99\x7f\xe0\x88\x88\x7e\x1e\x4e\x4f\x84\xcb\x6f\x2b\x58\x59\x93\x6c\x53\xe9\x86\x5a\x91\x49\x86\xef\x5e\x06\x55\x07\x90\x2e\x67\x95\x84\x6c\x5b\xa5\x82\xa5\x84\x31\x6d\x8c\x63\xfa\x4e\xa5", /* 4f80 */ "\x51\xc6\x63\x28\x7f\x70\x5b\x5f\x5d\xbd\x99\xc8\x53\xec\x79\x85\x8a\x54\x79\x62\x88\xdf\x5b\x09\x4f\xb5\x4f\x91\x9b\x8e\x51\x92\x96\xf0\x6d\xaf\x62\x2f\x84\x90\x8c\xdc\x50\x75\x5c\xe0\x4e\x14\x4f\x83\x7c\x54\x84\xd1\x77\xb3\x8a\xee\x5c\xe8\x62\xf6\x66\x3b\x8a\x93\x85\x26\x8a\x95\x65\xfa\x67\x14\x53\xd4\x62\xab\x8c\xe6\x88\xf3\x5b\xe7\x86\x8a\x66\x8e\x58\x2a\x61\x70\x69\x6f\x9f\x13\x7a\x92\x78\x93\x6a\x7f\x90\x17\x92\x66\x7d\x10\x7b\xc7\x6e\xf4\x82\x1c\x5c\x3d\x62\xcd\x85\xc1\x6f\x02\x6e\x67\x66\x91\x85\xa6\x63\x7a\x82\x1b\x4f\x8d\x50\x91\x8a\x02\x62\xec\x9b\xc9\x7a\x3d\x7c\x9b\x50\xc5\x90\x19\x70\x8a\x7c\x8b\x64\xec\x66\x5f\x65\x62\x73\x2b\x53\x39\x67\xa0\x55\xa7\x6d\x2a\x7a\x3f\x64\xe6\x79\xa7\x67\xd8\x7b\x26\x96\xbb\x63\x11\x72\xa0\x5c\x6f\x70\x26\x97\xee\x60\xdf\x8a\xfe\x8b\x04\x84\x94\x9b\xd6\x82\xaf\x93\x2c\x66\x06\x96\x40\x5b\xc2\x86\xc7\x79\x49\x80\x17\x69\x19\x70\x92\x96\x3b\x7c\x7e\x59\xd3\x5b\x5c\x7d\x1b\x91\xd8\x6a\x80\x85\xe9\x69\x05\x6c\x93\x50\x2d\x4e\xa6\x7f\xc1\x61\xa4\x8c\xca\x96\x65\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\xd1\x53\xf1\x59\x8a\x8e\xac\x62\xd8\x68\x67\x71\xd5\x7b\x67\x50\x4f\x67\xd0\x82\xd1\x97\x8d\x74\x8b\x80\xba\x73\x36\x51\x4e\x81\x05\x90\xca\x58\x4a\x67\xfe\x6f\xf1\x5f\xfd\x76\xc6\x9a\x0e\x50\x7d\x96\x94\x5e\xf7\x7b\xb8\x90\x4d\x6c\x4e\x85\xfb\x81\x9d\x67\xaf\x56\x4c\x56\x06\x8c\x8c\x56\xda\x73\xed\x8c\xc4\x8f\xc5\x96\xf6\x6c\x50\x89\x44\x8f\x3f\x7d\x5e\x60\xe8\x72\xfc\x7d\x9c\x84\x63\x5c\xfb\x54\x46\x5d\x16\x6c\xa1\x81\xb3\x58\xfa\x5b\xb4\x81\x08\x54\x1f\x8c\xbc\x61\x82\x78\xa9\x6f\xe1\x91\xac", /* 5080 */ "\x76\xf2\x60\x20\x76\xfe\x84\xc9\x7f\x36\x4e\xc7\x75\x5d\x7a\x17\x84\xec\x75\xf4\x4f\x3a\x67\x6d\x74\x60\x62\xf3\x6f\x20\x79\xe4\x87\xf9\x60\x94\x62\x34\x66\xab\x82\x0c\x84\x99\x72\x3a\x5f\xcc\x61\x09\x70\xcf\x72\x61\x7a\x50\x50\x98\x9a\xed\x5d\x69\x60\x1c\x66\x67\x99\xb4\x5e\x7b\x64\x3e\x58\x30\x53\xc9\x7a\x9f\x99\x0c\x9b\x42\x8f\x5f\x7a\xae\x5b\x9b\x68\xa2\x62\x49\x79\x84\x9d\xfa\x54\x51\x93\x2f\x8a\xc4\x5f\x90\x8d\xf3\x5a\x2f\x80\xde\x6d\x29\x7a\x4f\x84\xbc\x9d\x2b\x90\x10\x6d\x38\x91\x6a\x6f\xc1\x99\x05\x6b\xbb\x5e\xb6\x91\xb8\x50\x76\x6f\x0f\x4e\x19\x54\x0f\x96\x75\x6c\x72\x51\xb4\x56\x31\x9f\x20\x66\xa6\x5f\x0a\x75\xab\x51\xf8\x67\x4f\x8d\xf5\x6c\x70\x8a\x6b\x75\x7f\x5c\xac\x68\x41\x8c\xd3\x9b\xdb\x84\x75\x68\x93\x84\x0c\x72\xdb\x75\x77\x85\x68\x78\x3a\x84\x7a\x5f\x10\x83\x1c\x68\x13\x6e\x1a\x9d\xaf\x51\xf9\x79\x80\x4e\x99\x5e\xe3\x90\x8a\x80\xaf\x59\xa8\x77\xdb\x8d\x74\x8a\x1f\x67\x3d\x53\x3f\x8a\x0a\x56\x18\x67\x56\x53\xd9\x4f\x10\x74\x09\x5a\x41\x4f\xf8\x79\xb0\x98\x38\x8e\x2a\x9d\x60\x8f\x44\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xa5\x75\xbe\x90\x6d\x86\x7b\x60\xbc\x51\xb6\x59\x37\x7d\x2f\x91\x6c\x69\xae\x7c\xe0\x79\x2a\x5d\x14\x64\xc1\x58\xec\x58\x9c\x8d\x66\x66\xd9\x61\xf2\x91\x2d\x6e\x58\x94\x35\x96\x5b\x72\x72\x5f\x6a\x5e\x9a\x8f\x1b\x5b\x95\x5c\x39\x90\x13\x83\x4f\x7c\xce\x62\x0a\x90\xed\x69\x1b\x6e\x15\x65\xdb\x66\xfe\x4e\x9f\x55\xaa\x7a\x83\x83\xe9\x8b\x83\x84\x6d\x83\xf0\x7f\x50\x91\x8d\x91\x90\x75\x8e\x95\xa5\x81\xe7\x75\xe2\x61\xa9\x8a\x50\x95\xb2\x53\xa8\x59\xf6\x98\x13\x78\x91\x7c\x17\x6b\x3a\x57\xe0\x62\x0e", /* 5180 */ "\x83\xd6\x8a\xd2\x75\xd4\x92\x7e\x59\xdc\x52\x89\x90\x87\x6f\xfe\x74\x73\x5c\x09\x9d\x6c\x84\xfc\x7c\xdf\x7b\xad\x8a\x6e\x59\x4e\x56\xca\x81\x9a\x79\x47\x66\x36\x53\xe1\x78\x87\x58\xcc\x93\x97\x6e\x13\x52\x56\x82\x8b\x9e\x9f\x95\x83\x65\x8c\x9e\x93\x73\x45\x6e\x26\x9d\x07\x59\x83\x7d\xac\x96\xc1\x61\xbe\x67\x62\x9e\xce\x90\xa8\x91\x87\x9f\x0e\x7c\x38\x51\xf1\x85\x99\x52\x4c\x54\x0e\x79\x01\x65\x5e\x66\x68\x5c\xe1\x75\x66\x76\xc8\x86\x79\x53\x1d\x55\x06\x79\x26\x89\x12\x77\xef\x7c\xc0\x57\x0b\x51\x5c\x7e\x8a\x53\x5c\x8a\x60\x65\xa7\x87\x66\x57\x66\x6a\xe8\x87\xfb\x5e\x16\x7a\xea\x8d\x73\x77\x1e\x73\x7a\x66\xe0\x94\x10\x81\x6b\x7b\x08\x91\xfc\x57\x37\x6f\xe4\x85\x6a\x7e\x55\x99\x57\x87\xba\x69\x4a\x81\x8f\x5e\xff\x89\x1c\x72\xd0\x98\x46\x9e\xdb\x8d\x99\x5d\xd6\x62\xb9\x64\xab\x4f\x76\x61\x3f\x68\xaf\x5f\x14\x80\x0c\x92\xf8\x7b\xc1\x52\xfe\x66\x4f\x91\x77\x51\xf6\x97\xa0\x83\x9e\x64\x7a\x9c\x3a\x68\x05\x7c\x4f\x68\x5f\x9b\x6f\x9f\x4b\x7f\xfb\x93\x48\x4f\xf6\x9e\x92\x91\xb1\x96\xdb\x5b\xe6\x6c\xcc\x7c\xfe\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x53\x68\x22\x66\xb9\x5b\xd4\x98\xf4\x8a\xe6\x81\x54\x78\x27\x74\xbd\x6e\xd3\x92\x88\x5a\x20\x5b\x8b\x86\xf8\x76\x0d\x86\x5c\x66\x41\x91\xc9\x55\x89\x7a\x4e\x59\xe5\x60\x42\x93\x2b\x5b\x5a\x84\x9c\x5c\x91\x96\xcd\x62\xd9\x67\x5c\x67\x87\x5e\x7d\x86\x50\x9e\xb9\x5c\xb1\x80\xce\x7a\x00\x8a\xbc\x57\x00\x80\x96\x7d\x72\x92\x11\x80\x98\x90\x7c\x77\x61\x87\x37\x90\x75\x81\x7a\x7c\x3e\x6e\xa2\x96\x5e\x7e\x90\x72\xd7\x58\xfd\x60\xb3\x97\x86\x7e\x88\x58\x7e\x6e\x20\x84\xdc\x69\x61\x77\xad\x51\x97\x65\x2a", /* 5280 */ "\x67\x77\x5d\xcd\x61\x01\x93\x2e\x59\x54\x63\x67\x79\x8d\x7a\xff\x80\xd6\x58\xb3\x61\x68\x6a\xc3\x74\x83\x9b\x92\x66\x0a\x64\x2d\x51\x18\x67\x63\x80\x9b\x9c\x10\x4f\xc9\x69\x53\x7a\x1c\x52\xff\x60\x55\x76\x8e\x81\x7f\x56\x42\x5f\x6d\x71\x94\x70\xbb\x74\x36\x80\x00\x88\x1f\x55\xda\x74\x35\x76\x90\x96\xeb\x66\xdd\x75\x1c\x63\x3d\x6e\xc9\x7c\x64\x7c\xa5\x6d\x35\x93\x5c\x70\x27\x5e\x25\x70\x1d\x54\xbd\x61\x1a\x69\x73\x6c\x6a\x55\x9a\x6d\x19\x96\xcc\x5b\xe1\x59\xfb\x69\x7c\x91\x4c\x77\x09\x85\x00\x7a\x46\x78\x72\x92\xe4\x8c\xed\x7c\xfa\x9d\x1b\x81\x4e\x9a\xc4\x68\xa0\x6d\xcb\x59\x18\x84\x0a\x56\x29\x9b\x41\x68\x97\x70\xb3\x97\x71\x94\x19\x67\xa2\x68\x02\x78\x95\x68\xa7\x50\xd6\x80\xb1\x5e\xf8\x82\xd4\x79\x7a\x67\xca\x7e\x61\x69\xcd\x51\xc4\x72\x3d\x68\x29\x99\xb3\x5f\x3c\x8f\x61\x68\x2b\x61\x55\x65\x91\x8f\xb1\x7e\x1b\x97\x98\x99\x52\x88\x77\x5b\x2c\x66\x31\x4f\xe0\x69\x39\x6a\xfb\x5b\xb5\x7a\xc8\x50\x26\x59\x44\x90\x59\x7b\x25\x7b\x4f\x8e\x74\x85\x43\x58\x58\x8b\x0e\x50\x39\x86\x54\x97\xf6\x75\x69\x72\xf8\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf7\x9d\x89\x50\x16\x51\xcc\x62\xcc\x91\xc6\x87\x55\x64\x9a\x88\xf4\x91\xe6\x68\x54\x69\x5a\x6c\x40\x7b\x6c\x67\x41\x77\xd7\x88\x23\x53\x84\x8e\xc0\x72\x80\x8c\x6b\x78\x8d\x71\x65\x82\x07\x68\xb1\x8d\x04\x90\x77\x70\x1e\x8f\xe6\x81\x0a\x81\xbf\x89\xdc\x68\xb3\x6a\xdf\x92\xea\x95\xc7\x79\x57\x7a\x20\x53\xa9\x8e\x5f\x78\x6f\x79\xb9\x5f\x27\x5e\xd6\x68\x53\x93\xac\x91\x9c\x69\x1a\x58\x06\x64\xb0\x7e\x6b\x7d\x8f\x68\xf2\x6e\xa5\x82\xdb\x91\x92\x52\x43\x8e\xb0\x90\x81\x72\x1b\x7d\xcb\x76\x56\x59\xac", /* 5380 */ "\x6f\xe0\x8b\x28\x80\xa2\x55\x44\x60\x70\x5f\x4a\x68\xc8\x63\x3a\x94\x38\x9b\x4f\x81\xe5\x6a\x17\x70\xdd\x69\xa7\x61\x4c\x92\x0e\x93\x10\x9b\xad\x52\xd7\x92\x5e\x92\xf9\x59\x93\x76\x96\x66\xfb\x57\x69\x73\xca\x76\x78\x6a\x1f\x7e\x9c\x98\x11\x8c\xd1\x58\x40\x63\x49\x87\x1c\x62\xd0\x60\xb4\x6b\x89\x86\xee\x57\x64\x58\x1d\x85\x49\x72\x35\x76\x52\x98\x3b\x82\x37\x53\x51\x5c\x24\x59\xbe\x58\x15\x90\x1d\x69\xb4\x83\x4a\x9e\xa9\x97\x6b\x80\x86\x53\xad\x60\x68\x4f\xae\x76\xc3\x6a\x05\x68\x9b\x93\x7e\x99\xd5\x91\xc7\x5c\x16\x58\x5e\x61\xa7\x96\x99\x4f\xdf\x82\x78\x9c\x52\x5f\x45\x61\x08\x7c\x8d\x80\x6f\x5d\xf7\x8d\x6b\x57\xb0\x98\xe2\x57\x03\x79\xbf\x59\x96\x79\x41\x54\x0a\x83\xdf\x9c\x39\x52\xd2\x6b\xd8\x86\xcb\x4e\xc0\x9a\x52\x53\x66\x80\x06\x73\x37\x64\x92\x8f\xed\x5a\xc9\x54\x20\x53\x7f\x4f\xaf\x80\x7e\x54\x3b\x75\x15\x7b\x18\x87\xec\x54\xb3\x70\x4c\x89\x97\x6c\xab\x85\xfa\x71\x30\x69\x6e\x93\x28\x74\x5a\x59\xd1\x6e\x5b\x61\x7e\x53\xe2\x83\x17\x76\xe7\x85\x23\x85\xaf\x69\x25\x5c\x60\x72\x59\x75\xd5\x8b\x90\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x07\x82\xad\x5c\x5b\x7b\xed\x97\x84\x6f\x70\x76\x4c\x88\xb7\x92\xd2\x4f\x36\x5e\xfe\x90\x61\x88\xe1\x84\x71\x71\x1a\x6d\x1b\x80\xb4\x74\xe2\x74\x33\x5a\x7f\x90\x5c\x98\x0c\x53\x19\x90\x6e\x6b\xb4\x85\xaa\x78\x97\x7a\xfa\x6a\xae\x89\x10\x95\x8f\x62\x0c\x4f\x3d\x4f\x7c\x79\xbe\x9d\xd7\x4e\xd4\x57\xa2\x51\xa5\x69\x00\x60\x89\x70\x7c\x7a\xe3\x89\x56\x93\xa7\x9c\x2d\x51\x12\x52\xfa\x7c\xca\x60\xf9\x70\x78\x81\xc6\x55\x9d\x69\x91\x96\xc9\x55\x3e\x80\x5a\x83\x04\x83\x32\x54\xfa\x56\x99\x8f\xbf\x56\x34", /* 5480 */ "\x67\x60\x52\x65\x84\x0e\x5e\x5f\x7b\x65\x90\x35\x83\x87\x6b\x4e\x58\xbe\x63\x09\x72\x7d\x97\xad\x69\xd0\x54\x6a\x98\x4e\x63\x2b\x71\x4e\x85\x57\x7c\xde\x63\x72\x68\xf9\x75\x11\x86\x02\x6e\xba\x5a\x3c\x7a\x84\x85\x1a\x95\xa4\x59\xd0\x60\xda\x51\xea\x5a\x29\x71\x69\x6f\x15\x69\x6b\x64\x14\x76\x26\x4e\x4e\x7d\xbb\x69\x34\x85\x21\x8f\xfa\x93\x54\x9c\x3b\x5f\x17\x5e\xd3\x82\x58\x89\x5f\x82\xe7\x52\xc3\x5c\x51\x83\xab\x78\x26\x79\xe1\x7f\xf0\x62\x6e\x60\xf0\x5c\xa8\x6f\x97\x71\xa8\x99\x09\x51\x32\x5e\x37\x5f\x04\x63\x7b\x67\x53\x68\xd7\x66\x52\x9c\xf6\x88\xb0\x52\xab\x4f\xc4\x4e\x3c\x67\xb3\x7c\x1e\x7f\x4d\x8a\x23\x64\x51\x71\xe6\x65\xa4\x6f\x09\x85\x3d\x50\x72\x7d\xba\x55\x5e\x7b\x04\x72\xfd\x6c\xd3\x84\x22\x62\x1f\x50\xad\x82\x35\x87\x18\x59\x19\x60\x28\x67\x7c\x6f\x23\x75\xb9\x69\x5c\x52\x0e\x80\x18\x8b\x01\x71\xed\x57\x13\x66\x0f\x83\xeb\x71\x64\x7d\x9b\x56\x17\x7d\x7d\x8f\x4d\x93\x18\x85\x69\x5d\x17\x67\x8c\x67\xde\x87\xc7\x79\xae\x58\x35\x84\x04\x90\x41\x7f\xd4\x6f\x51\x8a\x63\x9d\x08\x67\x0f\x93\x9a\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xac\x60\x2f\x64\xe2\x60\x8d\x96\xb7\x63\x57\x84\x61\x91\x4b\x75\xd8\x60\xe7\x99\x13\x9c\x57\x59\x84\x6d\xeb\x5e\x96\x70\x06\x9b\xf0\x58\xbb\x79\xb1\x60\xb6\x63\x3f\x5b\xf5\x98\x12\x55\x8b\x82\xd3\x51\x47\x61\x90\x79\x53\x79\xbd\x6c\x5d\x9e\xba\x9c\x48\x8d\xa8\x5e\xe0\x7d\x43\x5e\xfc\x85\x4e\x8c\xe4\x5a\xe1\x54\xe8\x50\x23\x52\xbe\x7d\xec\x85\x11\x66\x66\x6c\x3e\x72\x4c\x8a\xdc\x9c\x0d\x77\xa5\x8b\x02\x8d\x05\x6f\x11\x98\x34\x97\xfb\x50\xfb\x7f\x75\x5a\x03\x85\x13\x4f\xb6\x63\x4c\x9d\x61\x80\x8b", /* 5580 */ "\x52\x94\x65\xa1\x56\x7a\x59\x57\x8d\x0b\x6a\x35\x6a\xd3\x70\xf9\x86\x5e\x6f\xb1\x51\xe7\x7f\xeb\x59\xea\x5e\x87\x6b\x6a\x75\x4f\x71\x7d\x91\x4e\x7d\x2c\x8c\x79\x60\x62\x62\x1a\x7f\xa8\x5f\x1b\x6c\x8c\x86\xfe\x75\x62\x7b\x86\x9a\xb8\x66\x27\x7a\xba\x84\x4e\x6f\x81\x8b\x2c\x86\xa4\x6f\xeb\x7b\x8b\x7f\x77\x8f\x2f\x8e\x44\x7e\x23\x4e\x4d\x79\xa6\x8a\xfa\x90\x3c\x50\xd1\x9e\xcd\x5e\xdf\x75\x8f\x63\x1f\x53\xdb\x99\x10\x82\x6e\x62\xf7\x68\xfa\x72\x5d\x80\x3d\x58\xd5\x5c\x4d\x86\xd9\x54\x0b\x88\x05\x92\xf2\x92\x37\x5c\x62\x98\x5b\x86\xe4\x96\x6a\x72\x62\x69\x55\x6c\xd7\x69\x94\x9c\x2f\x77\xe7\x68\xc9\x8d\xe8\x6d\x6c\x67\xc1\x9b\xaa\x61\x9a\x63\xa9\x70\x15\x93\x06\x93\x4d\x6a\x61\x62\x58\x52\x83\x75\x25\x56\x87\x6c\x83\x68\x34\x64\x9e\x4e\x9b\x72\x52\x59\xe6\x8f\xc2\x5f\xbd\x6d\xd8\x85\xf7\x8a\x51\x98\x17\x99\xc1\x63\xa0\x7c\x81\x5b\x30\x81\x39\x54\x03\x7e\x82\x81\x06\x53\x2a\x6a\x8e\x7f\x6b\x54\xe9\x56\x78\x8a\xb9\x67\x15\x5b\xd3\x64\x78\x64\xfe\x6b\x1d\x8c\xc2\x51\xcb\x7e\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x0c\x4e\x10\x4e\x15\x4e\x28\x4e\x2a\x4e\x31\x4e\x36\x4e\x3f\x4e\x42\x4e\x56\x4e\x58\x4e\x62\x4e\x82\x4e\x85\x4e\x8a\x4e\x8e\x5f\x0d\x4e\x9e\x4e\xa0\x4e\xa2\x4e\xb0\x4e\xb3\x4e\xb6\x4e\xce\x4e\xcd\x4e\xc4\x4e\xc6\x4e\xc2\x4e\xe1\x4e\xd7\x4e\xde\x4e\xed\x4e\xdf\x4e\xfc\x4f\x09\x4f\x1c\x4f\x00\x4f\x03\x4f\x5a\x4f\x30\x4f\x5d\x4f\x39\x4f\x57\x4f\x47\x4f\x5e\x4f\x56\x4f\x5b\x4f\x92\x4f\x8a\x4f\x88\x4f\x8f\x4f\x9a\x4f\xad\x4f\x98\x4f\x7b\x4f\xab\x4f\x69\x4f\x70\x4f\x94\x4f\x6f\x4f\x86\x4f\x96\x4f\xd4", /* 5680 */ "\x4f\xce\x4f\xd8\x4f\xdb\x4f\xd1\x4f\xda\x4f\xd0\x4f\xcd\x4f\xe4\x4f\xe5\x50\x1a\x50\x40\x50\x28\x50\x14\x50\x2a\x50\x25\x50\x05\x50\x21\x50\x22\x50\x29\x50\x2c\x4f\xff\x4f\xfe\x4f\xef\x50\x11\x50\x1e\x50\x06\x50\x43\x50\x47\x50\x55\x50\x50\x50\x48\x50\x5a\x50\x56\x50\x0f\x50\x46\x50\x70\x50\x42\x50\x6c\x50\x78\x50\x80\x50\x94\x50\x9a\x50\x85\x50\xb4\x67\x03\x50\xb2\x50\xc9\x50\xca\x50\xb3\x50\xc2\x50\xf4\x50\xde\x50\xe5\x50\xd8\x50\xed\x50\xe3\x50\xee\x50\xf9\x50\xf5\x51\x09\x51\x01\x51\x02\x51\x1a\x51\x15\x51\x14\x51\x16\x51\x21\x51\x3a\x51\x37\x51\x3c\x51\x3b\x51\x3f\x51\x40\x51\x4a\x51\x4c\x51\x52\x51\x54\x51\x62\x51\x64\x51\x69\x51\x6a\x51\x6e\x51\x80\x51\x82\x56\xd8\x51\x8c\x51\x89\x51\x8f\x51\x91\x51\x93\x51\x95\x51\x96\x51\x9d\x51\xa4\x51\xa6\x51\xa2\x51\xa9\x51\xaa\x51\xab\x51\xb3\x51\xb1\x51\xb2\x51\xb0\x51\xb5\x51\xbe\x51\xbd\x51\xc5\x51\xc9\x51\xdb\x51\xe0\x51\xe9\x51\xec\x51\xed\x51\xf0\x51\xf5\x51\xfe\x52\x04\x52\x0b\x52\x14\x52\x15\x52\x27\x52\x2a\x52\x2e\x52\x33\x52\x39\x52\x44\x52\x4b\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x4f\x52\x5e\x52\x54\x52\x71\x52\x6a\x52\x73\x52\x74\x52\x69\x52\x7f\x52\x7d\x52\x8d\x52\x88\x52\x92\x52\x91\x52\x9c\x52\xa6\x52\xac\x52\xad\x52\xbc\x52\xb5\x52\xc1\x52\xc0\x52\xcd\x52\xdb\x52\xde\x52\xe3\x52\xe6\x52\xe0\x52\xf3\x52\xf5\x52\xf8\x52\xf9\x53\x00\x53\x06\x53\x07\x53\x08\x75\x38\x53\x0d\x53\x10\x53\x0f\x53\x15\x53\x1a\x53\x24\x53\x23\x53\x2f\x53\x31\x53\x33\x53\x38\x53\x40\x53\x45\x53\x46\x53\x49\x4e\x17\x53\x4d\x51\xd6\x82\x09\x53\x5e\x53\x69\x53\x6e\x53\x72\x53\x77\x53\x7b\x53\x82", /* 5780 */ "\x53\x93\x53\x96\x53\xa0\x53\xa6\x53\xa5\x53\xae\x53\xb0\x53\xb2\x53\xb6\x53\xc3\x7c\x12\x53\xdd\x53\xdf\x66\xfc\xfa\x0e\x71\xee\x53\xee\x53\xe8\x53\xed\x53\xfa\x54\x01\x54\x3d\x54\x40\x54\x2c\x54\x2d\x54\x3c\x54\x2e\x54\x36\x54\x29\x54\x1d\x54\x4e\x54\x8f\x54\x75\x54\x8e\x54\x5f\x54\x71\x54\x77\x54\x70\x54\x92\x54\x7b\x54\x80\x54\x9c\x54\x76\x54\x84\x54\x90\x54\x86\x54\x8a\x54\xc7\x54\xbc\x54\xaf\x54\xa2\x54\xb8\x54\xa5\x54\xac\x54\xc4\x54\xd8\x54\xc8\x54\xa8\x54\xab\x54\xc2\x54\xa4\x54\xa9\x54\xbe\x54\xe5\x54\xff\x54\xe6\x55\x0f\x55\x14\x54\xfd\x54\xee\x54\xed\x54\xe2\x55\x39\x55\x40\x55\x63\x55\x4c\x55\x2e\x55\x5c\x55\x45\x55\x56\x55\x57\x55\x38\x55\x33\x55\x5d\x55\x99\x55\x80\x55\x8a\x55\x9f\x55\x7b\x55\x7e\x55\x98\x55\x9e\x55\xae\x55\x7c\x55\x86\x55\x83\x55\xa9\x55\x87\x55\xa8\x55\xc5\x55\xdf\x55\xc4\x55\xdc\x55\xe4\x55\xd4\x55\xf9\x56\x14\x55\xf7\x56\x16\x55\xfe\x55\xfd\x56\x1b\x56\x4e\x56\x50\x56\x36\x56\x32\x56\x38\x56\x6b\x56\x64\x56\x86\x56\x2f\x56\x6c\x56\x6a\x71\xdf\x56\x94\x56\x8f\x56\x80\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8a\x56\xa0\x56\xa5\x56\xae\x56\xb6\x56\xb4\x56\xc8\x56\xc2\x56\xbc\x56\xc1\x56\xc3\x56\xc0\x56\xce\x56\xd3\x56\xd1\x56\xd7\x56\xee\x56\xf9\x56\xff\x57\x04\x57\x09\x57\x08\x57\x0d\x55\xc7\x57\x18\x57\x16\x57\x1c\x57\x26\x57\x38\x57\x4e\x57\x3b\x57\x59\x57\x40\x57\x4f\x57\x65\x57\x88\x57\x61\x57\x7f\x57\x89\x57\x93\x57\xa0\x57\xa4\x57\xb3\x57\xac\x57\xaa\x57\xc3\x57\xc6\x57\xc8\x57\xc0\x57\xd4\x57\xc7\x57\xd2\x57\xd3\x57\xd6\xfa\x0f\x58\x0a\x57\xe3\x58\x0b\x58\x19\x58\x21\x58\x4b\x58\x62\x6b\xc0", /* 5880 */ "\x58\x3d\x58\x52\xfa\x10\x58\x70\x58\x79\x58\x85\x58\x72\x58\x9f\x58\xab\x58\xb8\x58\x9e\x58\xae\x58\xb2\x58\xb9\x58\xba\x58\xc5\x58\xd3\x58\xd1\x58\xd7\x58\xd9\x58\xd8\x58\xde\x58\xdc\x58\xdf\x58\xe4\x58\xe5\x58\xef\x58\xf7\x58\xf9\x58\xfb\x58\xfc\x59\x02\x59\x0a\x59\x0b\x59\x10\x59\x1b\x68\xa6\x59\x25\x59\x2c\x59\x2d\x59\x32\x59\x38\x59\x3e\x59\x55\x59\x50\x59\x53\x59\x5a\x59\x58\x59\x5b\x59\x5d\x59\x63\x59\x62\x59\x60\x59\x67\x59\x6c\x59\x69\x59\x78\x59\x81\x59\x8d\x59\x9b\x59\x9d\x59\xa3\x59\xa4\x59\xb2\x59\xba\x59\xc6\x59\xe8\x59\xd9\x59\xda\x5a\x25\x5a\x1f\x5a\x11\x5a\x1c\x5a\x1a\x5a\x09\x5a\x40\x5a\x6c\x5a\x49\x5a\x35\x5a\x36\x5a\x62\x5a\x6a\x5a\x9a\x5a\xbc\x5a\xbe\x5a\xd0\x5a\xcb\x5a\xc2\x5a\xbd\x5a\xe3\x5a\xd7\x5a\xe6\x5a\xe9\x5a\xd6\x5a\xfa\x5a\xfb\x5b\x0c\x5b\x0b\x5b\x16\x5b\x32\x5b\x2a\x5b\x36\x5b\x3e\x5b\x43\x5b\x45\x5b\x40\x5b\x51\x5b\x55\x5b\x56\x65\x88\x5b\x5b\x5b\x65\x5b\x69\x5b\x70\x5b\x73\x5b\x75\x5b\x78\x5b\x7a\x5b\x80\x5b\x83\x5b\xa6\x5b\xb8\x5b\xc3\x5b\xc7\x5b\xc0\x5b\xc9\x75\x2f\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd0\x5b\xd8\x5b\xde\x5b\xec\x5b\xe4\x5b\xe2\x5b\xe5\x5b\xeb\x5b\xf0\x5b\xf3\x5b\xf6\x5c\x05\x5c\x07\x5c\x08\x5c\x0d\x5c\x13\x5c\x1e\x5c\x20\x5c\x22\x5c\x28\x5c\x38\x5c\x41\x5c\x46\x5c\x4e\x5c\x53\x5c\x50\x5b\x71\x5c\x6c\x5c\x6e\x5c\x76\x5c\x79\x5c\x8c\x5c\x94\x5c\xbe\x5c\xab\x5c\xbb\x5c\xb6\x5c\xb7\x5c\xa6\x5c\xba\x5c\xc5\x5c\xbc\x5c\xc7\x5c\xd9\x5c\xe9\x5c\xfd\x5c\xfa\x5c\xf5\x5c\xed\x5c\xea\x5d\x0b\x5d\x15\x5d\x1f\x5d\x1b\x5d\x11\x5d\x27\x5d\x22\x5d\x1a\x5d\x19\x5d\x18\x5d\x4c\x5d\x52\x5d\x53", /* 5980 */ "\xfa\x11\x5d\x5c\x5d\x4e\x5d\x4b\x5d\x42\x5d\x6c\x5d\x73\x5d\x6d\x5d\x76\x5d\x87\x5d\x84\x5d\x82\x5d\x8c\x5d\xa2\x5d\x9d\x5d\x90\x5d\xac\x5d\xae\x5d\xb7\x5d\xb8\x5d\xbc\x5d\xb9\x5d\xc9\x5d\xd0\x5d\xd3\x5d\xd2\x5d\xdb\x5d\xeb\x5d\xf5\x5e\x0b\x5e\x1a\x5e\x19\x5e\x11\x5e\x1b\x5e\x36\x5e\x44\x5e\x43\x5e\x40\x5e\x47\x5e\x4e\x5e\x57\x5e\x54\x5e\x62\x5e\x64\x5e\x75\x5e\x76\x5e\x7a\x5e\x7f\x5e\xa0\x5e\xc1\x5e\xc2\x5e\xc8\x5e\xd0\x5e\xcf\x5e\xdd\x5e\xda\x5e\xdb\x5e\xe2\x5e\xe1\x5e\xe8\x5e\xe9\x5e\xec\x5e\xf0\x5e\xf1\x5e\xf3\x5e\xf4\x5f\x03\x5f\x09\x5f\x0b\x5f\x11\x5f\x16\x5f\x21\x5f\x29\x5f\x2d\x5f\x2f\x5f\x34\x5f\x38\x5f\x41\x5f\x48\x5f\x4c\x5f\x4e\x5f\x51\x5f\x56\x5f\x57\x5f\x59\x5f\x5c\x5f\x5d\x5f\x61\x5f\x67\x5f\x73\x5f\x77\x5f\x83\x5f\x82\x5f\x7f\x5f\x8a\x5f\x88\x5f\x87\x5f\x91\x5f\x99\x5f\x9e\x5f\x98\x5f\xa0\x5f\xa8\x5f\xad\x5f\xb7\x5f\xbc\x5f\xd6\x5f\xfb\x5f\xe4\x5f\xf8\x5f\xf1\x5f\xf0\x5f\xdd\x5f\xde\x5f\xff\x60\x21\x60\x19\x60\x10\x60\x29\x60\x0e\x60\x31\x60\x1b\x60\x15\x60\x2b\x60\x26\x60\x0f\x60\x3a\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x5a\x60\x41\x60\x60\x60\x5d\x60\x6a\x60\x77\x60\x5f\x60\x4a\x60\x46\x60\x4d\x60\x63\x60\x43\x60\x64\x60\x6c\x60\x6b\x60\x59\x60\x85\x60\x81\x60\x83\x60\x9a\x60\x84\x60\x9b\x60\x8a\x60\x96\x60\x97\x60\x92\x60\xa7\x60\x8b\x60\xe1\x60\xb8\x60\xde\x60\xe0\x60\xd3\x60\xbd\x60\xc6\x60\xb5\x60\xd5\x60\xd8\x61\x20\x60\xf2\x61\x15\x61\x06\x60\xf6\x60\xf7\x61\x00\x60\xf4\x60\xfa\x61\x03\x61\x21\x60\xfb\x60\xf1\x61\x0d\x61\x0e\x61\x11\x61\x47\x61\x4d\x61\x37\x61\x28\x61\x27\x61\x3e\x61\x4a\x61\x30\x61\x3c", /* 5a80 */ "\x61\x2c\x61\x34\x61\x65\x61\x5d\x61\x3d\x61\x42\x61\x44\x61\x73\x61\x87\x61\x77\x61\x58\x61\x59\x61\x5a\x61\x6b\x61\x74\x61\x6f\x61\x71\x61\x5f\x61\x53\x61\x75\x61\x98\x61\x99\x61\x96\x61\xac\x61\x94\x61\x8a\x61\x91\x61\xab\x61\xae\x61\xcc\x61\xca\x61\xc9\x61\xc8\x61\xc3\x61\xc6\x61\xba\x61\xcb\x7f\x79\x61\xcd\x61\xe6\x61\xe3\x61\xf4\x61\xf7\x61\xf6\x61\xfd\x61\xfa\x61\xff\x61\xfc\x61\xfe\x62\x00\x62\x08\x62\x09\x62\x0d\x62\x13\x62\x14\x62\x1b\x62\x1e\x62\x21\x62\x2a\x62\x2e\x62\x30\x62\x32\x62\x33\x62\x41\x62\x4e\x62\x5e\x62\x63\x62\x5b\x62\x60\x62\x68\x62\x7c\x62\x82\x62\x89\x62\x92\x62\x7e\x62\x93\x62\x96\x62\x83\x62\x94\x62\xd7\x62\xd1\x62\xbb\x62\xcf\x62\xac\x62\xc6\x62\xc8\x62\xdc\x62\xd4\x62\xca\x62\xc2\x62\xa6\x62\xc7\x62\x9b\x62\xc9\x63\x0c\x62\xee\x62\xf1\x63\x27\x63\x02\x63\x08\x62\xef\x62\xf5\x62\xff\x63\x50\x63\x4d\x63\x3e\x63\x4f\x63\x96\x63\x8e\x63\x80\x63\xab\x63\x76\x63\xa3\x63\x8f\x63\x89\x63\x9f\x63\x6b\x63\x69\x63\xb5\x63\xbe\x63\xe9\x63\xc0\x63\xc6\x63\xf5\x63\xe3\x63\xc9\x63\xd2\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf6\x63\xc4\x64\x34\x64\x06\x64\x13\x64\x26\x64\x36\x64\x1c\x64\x17\x64\x28\x64\x0f\x64\x16\x64\x4e\x64\x67\x64\x6f\x64\x60\x64\x76\x64\xb9\x64\x9d\x64\xce\x64\x95\x64\xbb\x64\x93\x64\xa5\x64\xa9\x64\x88\x64\xbc\x64\xda\x64\xd2\x64\xc5\x64\xc7\x64\xd4\x64\xd8\x64\xc2\x64\xf1\x64\xe7\x64\xe0\x64\xe1\x64\xe3\x64\xef\x64\xf4\x64\xf6\x64\xf2\x64\xfa\x65\x00\x64\xfd\x65\x18\x65\x1c\x65\x1d\x65\x22\x65\x24\x65\x23\x65\x2b\x65\x2c\x65\x34\x65\x35\x65\x37\x65\x36\x65\x38\x75\x4b\x65\x48\x65\x4e\x65\x56", /* 5b80 */ "\x65\x4d\x65\x58\x65\x55\x65\x5d\x65\x72\x65\x78\x65\x82\x65\x83\x8b\x8a\x65\x9b\x65\x9f\x65\xab\x65\xb7\x65\xc3\x65\xc6\x65\xc1\x65\xc4\x65\xcc\x65\xd2\x65\xd9\x65\xe1\x65\xe0\x65\xf1\x66\x00\x66\x15\x66\x02\x67\x72\x66\x03\x65\xfb\x66\x09\x66\x3f\x66\x35\x66\x2e\x66\x1e\x66\x34\x66\x1c\x66\x24\x66\x44\x66\x49\x66\x65\x66\x57\x66\x5e\x66\x64\x66\x59\x66\x62\x66\x5d\xfa\x12\x66\x73\x66\x70\x66\x83\x66\x88\x66\x84\x66\x99\x66\x98\x66\xa0\x66\x9d\x66\xb2\x66\xc4\x66\xc1\x66\xbf\x66\xc9\x66\xbe\x66\xbc\x66\xb8\x66\xd6\x66\xda\x66\xe6\x66\xe9\x66\xf0\x66\xf5\x66\xf7\x66\xfa\x67\x0e\xf9\x29\x67\x16\x67\x1e\x7e\x22\x67\x26\x67\x27\x97\x38\x67\x2e\x67\x3f\x67\x36\x67\x37\x67\x38\x67\x46\x67\x5e\x67\x59\x67\x66\x67\x64\x67\x89\x67\x85\x67\x70\x67\xa9\x67\x6a\x67\x8b\x67\x73\x67\xa6\x67\xa1\x67\xbb\x67\xb7\x67\xef\x67\xb4\x67\xec\x67\xe9\x67\xb8\x67\xe7\x67\xe4\x68\x52\x67\xdd\x67\xe2\x67\xee\x67\xc0\x67\xce\x67\xb9\x68\x01\x67\xc6\x68\x1e\x68\x46\x68\x4d\x68\x40\x68\x44\x68\x32\x68\x4e\x68\x63\x68\x59\x68\x8e\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x77\x68\x7f\x68\x9f\x68\x7e\x68\x8f\x68\xad\x68\x94\x68\x83\x68\xbc\x68\xb9\x68\x74\x68\xb5\x68\xba\x69\x0f\x69\x01\x68\xca\x69\x08\x68\xd8\x69\x26\x68\xe1\x69\x0c\x68\xcd\x68\xd4\x68\xe7\x68\xd5\x69\x12\x68\xef\x69\x04\x68\xe3\x68\xe0\x68\xcf\x68\xc6\x69\x22\x69\x2a\x69\x21\x69\x23\x69\x28\xfa\x13\x69\x79\x69\x77\x69\x36\x69\x78\x69\x54\x69\x6a\x69\x74\x69\x68\x69\x3d\x69\x59\x69\x30\x69\x5e\x69\x5d\x69\x7e\x69\x81\x69\xb2\x69\xbf\xfa\x14\x69\x98\x69\xc1\x69\xd3\x69\xbe\x69\xce\x5b\xe8\x69\xca", /* 5c80 */ "\x69\xb1\x69\xdd\x69\xbb\x69\xc3\x69\xa0\x69\x9c\x69\x95\x69\xde\x6a\x2e\x69\xe8\x6a\x02\x6a\x1b\x69\xff\x69\xf9\x69\xf2\x69\xe7\x69\xe2\x6a\x1e\x69\xed\x6a\x14\x69\xeb\x6a\x0a\x6a\x22\x6a\x12\x6a\x23\x6a\x13\x6a\x30\x6a\x6b\x6a\x44\x6a\x0c\x6a\xa0\x6a\x36\x6a\x78\x6a\x47\x6a\x62\x6a\x59\x6a\x66\x6a\x48\x6a\x46\x6a\x38\x6a\x72\x6a\x73\x6a\x90\x6a\x8d\x6a\x84\x6a\xa2\x6a\xa3\x6a\x7e\x6a\x97\x6a\xac\x6a\xaa\x6a\xbb\x6a\xc2\x6a\xb8\x6a\xb3\x6a\xc1\x6a\xde\x6a\xe2\x6a\xd1\x6a\xda\x6a\xe4\x86\x16\x86\x17\x6a\xea\x6b\x05\x6b\x0a\x6a\xfa\x6b\x12\x6b\x16\x6b\x1f\x6b\x38\x6b\x37\x6b\x39\x76\xdc\x98\xee\x6b\x47\x6b\x43\x6b\x49\x6b\x50\x6b\x59\x6b\x54\x6b\x5b\x6b\x5f\x6b\x61\x6b\x78\x6b\x79\x6b\x7f\x6b\x80\x6b\x84\x6b\x83\x6b\x8d\x6b\x98\x6b\x95\x6b\x9e\x6b\xa4\x6b\xaa\x6b\xab\x6b\xaf\x6b\xb1\x6b\xb2\x6b\xb3\x6b\xb7\x6b\xbc\x6b\xc6\x6b\xcb\x6b\xd3\x6b\xd6\x6b\xdf\x6b\xec\x6b\xeb\x6b\xf3\x6b\xef\x6c\x08\x6c\x13\x6c\x14\x6c\x1b\x6c\x24\x6c\x23\x6c\x3f\x6c\x5e\x6c\x55\x6c\x5c\x6c\x62\x6c\x82\x6c\x8d\x6c\x86\x6c\x6f\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9a\x6c\x81\x6c\x9b\x6c\x7e\x6c\x68\x6c\x73\x6c\x92\x6c\x90\x6c\xc4\x6c\xf1\x6c\xbd\x6c\xc5\x6c\xae\x6c\xda\x6c\xdd\x6c\xb1\x6c\xbe\x6c\xba\x6c\xdb\x6c\xef\x6c\xd9\x6c\xea\x6d\x1f\x6d\x04\x6d\x36\x6d\x2b\x6d\x3d\x6d\x33\x6d\x12\x6d\x0c\x6d\x63\x6d\x87\x6d\x93\x6d\x6f\x6d\x64\x6d\x5a\x6d\x79\x6d\x59\x6d\x8e\x6d\x95\x6d\x9b\x6d\x85\x6d\x96\x6d\xf9\x6e\x0a\x6e\x2e\x6d\xb5\x6d\xe6\x6d\xc7\x6d\xac\x6d\xb8\x6d\xcf\x6d\xc6\x6d\xec\x6d\xde\x6d\xcc\x6d\xe8\x6d\xf8\x6d\xd2\x6d\xc5\x6d\xfa\x6d\xd9\x6d\xf2", /* 5d80 */ "\x6d\xfc\x6d\xe4\x6d\xd5\x6d\xea\x6d\xee\x6e\x2d\x6e\x6e\x6e\x19\x6e\x72\x6e\x5f\x6e\x39\x6e\x3e\x6e\x23\x6e\x6b\x6e\x5c\x6e\x2b\x6e\x76\x6e\x4d\x6e\x1f\x6e\x27\x6e\x43\x6e\x3c\x6e\x3a\x6e\x4e\x6e\x24\x6e\x1d\x6e\x38\x6e\x82\x6e\xaa\x6e\x98\x6e\xb7\x6e\xbd\x6e\xaf\x6e\xc4\x6e\xb2\x6e\xd4\x6e\xd5\x6e\x8f\x6e\xbf\x6e\xc2\x6e\x9f\x6f\x41\x6f\x45\x6e\xec\x6e\xf8\x6e\xfe\x6f\x3f\x6e\xf2\x6f\x31\x6e\xef\x6f\x32\x6e\xcc\x6e\xff\x6f\x3e\x6f\x13\x6e\xf7\x6f\x86\x6f\x7a\x6f\x78\x6f\x80\x6f\x6f\x6f\x5b\x6f\x6d\x6f\x74\x6f\x82\x6f\x88\x6f\x7c\x6f\x58\x6f\xc6\x6f\x8e\x6f\x91\x6f\x66\x6f\xb3\x6f\xa3\x6f\xb5\x6f\xa1\x6f\xb9\x6f\xdb\x6f\xaa\x6f\xc2\x6f\xdf\x6f\xd5\x6f\xec\x6f\xd8\x6f\xd4\x6f\xf5\x6f\xee\x70\x05\x70\x07\x70\x09\x70\x0b\x6f\xfa\x70\x11\x70\x01\x70\x0f\x70\x1b\x70\x1a\x70\x1f\x6f\xf3\x70\x28\x70\x18\x70\x30\x70\x3e\x70\x32\x70\x51\x70\x63\x70\x85\x70\x99\x70\xaf\x70\xab\x70\xac\x70\xb8\x70\xae\x70\xdf\x70\xcb\x70\xd9\x71\x09\x71\x0f\x71\x04\x70\xf1\x70\xfd\x71\x1c\x71\x19\x71\x5c\x71\x46\x71\x47\x71\x66\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x62\x71\x4c\x71\x56\x71\x6c\x71\x88\x71\x8f\x71\x84\x71\x95\xfa\x15\x71\xac\x71\xc1\x71\xb9\x71\xbe\x71\xd2\x71\xe7\x71\xc9\x71\xd4\x71\xd7\x71\xce\x71\xf5\x71\xe0\x71\xec\x71\xfb\x71\xfc\x71\xf9\x71\xfe\x71\xff\x72\x0d\x72\x10\x72\x28\x72\x2d\x72\x2c\x72\x30\x72\x32\x72\x3b\x72\x3c\x72\x3f\x72\x40\x72\x46\x72\x4b\x72\x58\x72\x74\x72\x7e\x72\x81\x72\x87\x72\x82\x72\x92\x72\x96\x72\xa2\x72\xa7\x72\xb1\x72\xb2\x72\xbe\x72\xc3\x72\xc6\x72\xc4\x72\xb9\x72\xce\x72\xd2\x72\xe2\x72\xe0\x72\xe1\x72\xf9", /* 5e80 */ "\x72\xf7\x73\x17\x73\x0a\x73\x1c\x73\x16\x73\x1d\x73\x24\x73\x34\x73\x29\x73\x2f\xfa\x16\x73\x25\x73\x3e\x73\x4f\x73\x4e\x73\x57\x9e\xd8\x73\x6a\x73\x68\x73\x70\x73\x77\x73\x78\x73\x75\x73\x7b\x73\xc8\x73\xbd\x73\xb3\x73\xce\x73\xbb\x73\xc0\x73\xc9\x73\xd6\x73\xe5\x73\xe3\x73\xd2\x73\xee\x73\xf1\x73\xde\x73\xf8\x74\x07\x73\xf5\x74\x05\x74\x26\x74\x2a\x74\x25\x74\x29\x74\x2e\x74\x32\x74\x3a\x74\x55\x74\x3f\x74\x5f\x74\x59\x74\x41\x74\x5c\x74\x69\x74\x70\x74\x63\x74\x6a\x74\x64\x74\x62\x74\x89\x74\x6f\x74\x7e\x74\x9f\x74\x9e\x74\xa2\x74\xa7\x74\xca\x74\xcf\x74\xd4\x74\xe0\x74\xe3\x74\xe7\x74\xe9\x74\xee\x74\xf0\x74\xf2\x74\xf1\x74\xf7\x74\xf8\x75\x01\x75\x04\x75\x03\x75\x05\x75\x0d\x75\x0c\x75\x0e\x75\x13\x75\x1e\x75\x26\x75\x2c\x75\x3c\x75\x44\x75\x4d\x75\x4a\x75\x49\x75\x46\x75\x5b\x75\x5a\x75\x64\x75\x67\x75\x6b\x75\x6f\x75\x74\x75\x6d\x75\x78\x75\x76\x75\x82\x75\x86\x75\x87\x75\x8a\x75\x89\x75\x94\x75\x9a\x75\x9d\x75\xa5\x75\xa3\x75\xc2\x75\xb3\x75\xc3\x75\xb5\x75\xbd\x75\xb8\x75\xbc\x75\xb1\x75\xcd\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xca\x75\xd2\x75\xd9\x75\xe3\x75\xde\x75\xfe\x75\xff\x75\xfc\x76\x01\x75\xf0\x75\xfa\x75\xf2\x75\xf3\x76\x0b\x76\x09\x76\x1f\x76\x27\x76\x20\x76\x21\x76\x22\x76\x24\x76\x34\x76\x30\x76\x3b\x76\x47\x76\x48\x76\x58\x76\x46\x76\x5c\x76\x61\x76\x62\x76\x68\x76\x69\x76\x67\x76\x6a\x76\x6c\x76\x70\x76\x72\x76\x76\x76\x7c\x76\x82\x76\x80\x76\x83\x76\x88\x76\x8b\x76\x99\x76\x9a\x76\x9c\x76\x9e\x76\x9b\x76\xa6\x76\xb0\x76\xb4\x76\xb8\x76\xb9\x76\xba\x76\xc2\xfa\x17\x76\xcd\x76\xd6\x76\xd2\x76\xde\x76\xe1", /* 5f80 */ "\x76\xe5\x76\xea\x86\x2f\x76\xfb\x77\x08\x77\x07\x77\x04\x77\x24\x77\x29\x77\x25\x77\x26\x77\x1b\x77\x37\x77\x38\x77\x46\x77\x47\x77\x5a\x77\x68\x77\x6b\x77\x5b\x77\x65\x77\x7f\x77\x7e\x77\x79\x77\x8e\x77\x8b\x77\x91\x77\xa0\x77\x9e\x77\xb0\x77\xb6\x77\xb9\x77\xbf\x77\xbc\x77\xbd\x77\xbb\x77\xc7\x77\xcd\x77\xda\x77\xdc\x77\xe3\x77\xee\x52\xaf\x77\xfc\x78\x0c\x78\x12\x78\x21\x78\x3f\x78\x20\x78\x45\x78\x4e\x78\x64\x78\x74\x78\x8e\x78\x7a\x78\x86\x78\x9a\x78\x7c\x78\x8c\x78\xa3\x78\xb5\x78\xaa\x78\xaf\x78\xd1\x78\xc6\x78\xcb\x78\xd4\x78\xbe\x78\xbc\x78\xc5\x78\xca\x78\xec\x78\xe7\x78\xda\x78\xfd\x78\xf4\x79\x07\x79\x11\x79\x19\x79\x2c\x79\x2b\x79\x30\xfa\x18\x79\x40\x79\x60\xfa\x19\x79\x5f\x79\x5a\x79\x55\xfa\x1a\x79\x7f\x79\x8a\x79\x94\xfa\x1b\x79\x9d\x79\x9b\x79\xaa\x79\xb3\x79\xba\x79\xc9\x79\xd5\x79\xe7\x79\xec\x79\xe3\x7a\x08\x7a\x0d\x7a\x18\x7a\x19\x7a\x1f\x7a\x31\x7a\x3e\x7a\x37\x7a\x3b\x7a\x43\x7a\x57\x7a\x49\x7a\x62\x7a\x61\x7a\x69\x9f\x9d\x7a\x70\x7a\x79\x7a\x7d\x7a\x88\x7a\x95\x7a\x98\x7a\x96\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x97\x7a\xa9\x7a\xb0\x7a\xb6\x90\x83\x7a\xc3\x7a\xbf\x7a\xc5\x7a\xc4\x7a\xc7\x7a\xca\x7a\xcd\x7a\xcf\x7a\xd2\x7a\xd1\x7a\xd5\x7a\xd3\x7a\xd9\x7a\xda\x7a\xdd\x7a\xe1\x7a\xe2\x7a\xe6\x7a\xe7\xfa\x1c\x7a\xeb\x7a\xed\x7a\xf0\x7a\xf8\x7b\x02\x7b\x0f\x7b\x0b\x7b\x0a\x7b\x06\x7b\x33\x7b\x36\x7b\x19\x7b\x1e\x7b\x35\x7b\x28\x7b\x50\x7b\x4d\x7b\x4c\x7b\x45\x7b\x5d\x7b\x75\x7b\x7a\x7b\x74\x7b\x70\x7b\x71\x7b\x6e\x7b\x9d\x7b\x98\x7b\x9f\x7b\x8d\x7b\x9c\x7b\x9a\x7b\x92\x7b\x8f\x7b\x99\x7b\xcf\x7b\xcb\x7b\xcc", /* 6080 */ "\x7b\xb4\x7b\xc6\x7b\x9e\x7b\xdd\x7b\xe9\x7b\xe6\x7b\xf7\x7b\xe5\x7c\x14\x7c\x00\x7c\x13\x7c\x07\x7b\xf3\x7c\x0d\x7b\xf6\x7c\x23\x7c\x27\x7c\x2a\x7c\x1f\x7c\x37\x7c\x2b\x7c\x3d\x7c\x40\x7c\x4c\x7c\x43\x7c\x56\x7c\x50\x7c\x58\x7c\x5f\x7c\x65\x7c\x6c\x7c\x75\x7c\x83\x7c\x90\x7c\xa4\x7c\xa2\x7c\xab\x7c\xa1\x7c\xad\x7c\xa8\x7c\xb3\x7c\xb2\x7c\xb1\x7c\xae\x7c\xb9\xfa\x1d\x7c\xbd\x7c\xc5\x7c\xc2\x7c\xd2\x7c\xe2\x7c\xd8\x7c\xdc\x7c\xef\x7c\xf2\x7c\xf4\x7c\xf6\x7d\x06\x7d\x02\x7d\x1c\x7d\x15\x7d\x0a\x7d\x45\x7d\x4b\x7d\x2e\x7d\x32\x7d\x3f\x7d\x35\x7d\x48\x7d\x46\x7d\x5c\x7d\x73\x7d\x56\x7d\x4e\x7d\x68\x7d\x6e\x7d\x4f\x7d\x63\x7d\x93\x7d\x89\x7d\x5b\x7d\xae\x7d\xa3\x7d\xb5\x7d\xb7\x7d\xc7\x7d\xbd\x7d\xab\x7d\xa2\x7d\xaf\x7d\xa0\x7d\xb8\x7d\x9f\x7d\xb0\x7d\xd5\x7d\xd8\x7d\xdd\x7d\xd6\x7d\xe4\x7d\xde\x7d\xfb\x7e\x0b\x7d\xf2\x7d\xe1\x7d\xdc\x7e\x05\x7e\x0a\x7e\x21\x7e\x12\x7e\x1f\x7e\x09\x7e\x3a\x7e\x46\x7e\x66\x7e\x31\x7e\x3d\x7e\x35\x7e\x3b\x7e\x39\x7e\x43\x7e\x37\x7e\x32\x7e\x5d\x7e\x56\x7e\x5e\x7e\x52\x7e\x59\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x5a\x7e\x67\x7e\x79\x7e\x6a\x7e\x69\x7e\x7c\x7e\x7b\x7e\x7d\x8f\xae\x7e\x7f\x7e\x83\x7e\x89\x7e\x8e\x7e\x8c\x7e\x92\x7e\x93\x7e\x94\x7e\x96\x7e\x9b\x7f\x38\x7f\x3a\x7f\x45\x7f\x47\x7f\x4c\x7f\x4e\x7f\x51\x7f\x55\x7f\x54\x7f\x58\x7f\x5f\x7f\x60\x7f\x68\x7f\x67\x7f\x69\x7f\x78\x7f\x82\x7f\x86\x7f\x83\x7f\x87\x7f\x88\x7f\x8c\x7f\x94\x7f\x9e\x7f\x9d\x7f\x9a\x7f\xa1\x7f\xa3\x7f\xaf\x7f\xae\x7f\xb2\x7f\xb9\x7f\xb6\x7f\xb8\x8b\x71\xfa\x1e\x7f\xc5\x7f\xc6\x7f\xca\x7f\xd5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xf3", /* 6180 */ "\x7f\xf9\x80\x04\x80\x0b\x80\x12\x80\x19\x80\x1c\x80\x21\x80\x28\x80\x3f\x80\x3b\x80\x4a\x80\x46\x80\x52\x80\x58\x80\x5f\x80\x62\x80\x68\x80\x73\x80\x72\x80\x70\x80\x76\x80\x79\x80\x7d\x80\x7f\x80\x84\x80\x85\x80\x93\x80\x9a\x80\xad\x51\x90\x80\xac\x80\xdb\x80\xe5\x80\xd9\x80\xdd\x80\xc4\x80\xda\x81\x09\x80\xef\x80\xf1\x81\x1b\x81\x23\x81\x2f\x81\x4b\x81\x46\x81\x3e\x81\x53\x81\x51\x81\x41\x81\x71\x81\x6e\x81\x65\x81\x5f\x81\x66\x81\x74\x81\x83\x81\x88\x81\x8a\x81\x80\x81\x82\x81\xa0\x81\x95\x81\xa3\x81\x93\x81\xb5\x81\xa4\x81\xa9\x81\xb8\x81\xb0\x81\xc8\x81\xbe\x81\xbd\x81\xc0\x81\xc2\x81\xba\x81\xc9\x81\xcd\x81\xd1\x81\xd8\x81\xd9\x81\xda\x81\xdf\x81\xe0\x81\xfa\x81\xfb\x81\xfe\x82\x01\x82\x02\x82\x05\x82\x0d\x82\x10\x82\x12\x82\x16\x82\x29\x82\x2b\x82\x2e\x82\x38\x82\x33\x82\x40\x82\x59\x82\x5a\x82\x5d\x82\x5f\x82\x64\x82\x62\x82\x68\x82\x6a\x82\x6b\x82\x71\x82\x77\x82\x7e\x82\x8d\x82\x92\x82\xab\x82\x9f\x82\xbb\x82\xac\x82\xe1\x82\xe3\x82\xdf\x83\x01\x82\xd2\x82\xf4\x82\xf3\x83\x03\x82\xfb\x82\xf9\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\xde\x83\x06\x82\xdc\x82\xfa\x83\x09\x82\xd9\x83\x35\x83\x62\x83\x34\x83\x16\x83\x31\x83\x40\x83\x39\x83\x50\x83\x45\x83\x2f\x83\x2b\x83\x18\x83\x9a\x83\xaa\x83\x9f\x83\xa2\x83\x96\x83\x23\x83\x8e\x83\x75\x83\x7f\x83\x8a\x83\x7c\x83\xb5\x83\x73\x83\x93\x83\xa0\x83\x85\x83\x89\x83\xa8\x83\xf4\x84\x13\x83\xc7\x83\xce\x83\xf7\x83\xfd\x84\x03\x83\xd8\x84\x0b\x83\xc1\x84\x07\x83\xe0\x83\xf2\x84\x0d\x84\x20\x83\xf6\x83\xbd\x83\xfb\x84\x2a\x84\x62\x84\x3c\x84\x84\x84\x77\x84\x6b\x84\x79\x84\x48\x84\x6e", /* 6280 */ "\x84\x82\x84\x69\x84\x46\x84\x6f\x84\x38\x84\x35\x84\xca\x84\xb9\x84\xbf\x84\x9f\x84\xb4\x84\xcd\x84\xbb\x84\xda\x84\xd0\x84\xc1\x84\xad\x84\xc6\x84\xd6\x84\xa1\x84\xd9\x84\xff\x84\xf4\x85\x17\x85\x18\x85\x2c\x85\x1f\x85\x15\x85\x14\x85\x06\x85\x53\x85\x5a\x85\x40\x85\x59\x85\x63\x85\x58\x85\x48\x85\x41\x85\x4a\x85\x4b\x85\x6b\x85\x55\x85\x80\x85\xa4\x85\x88\x85\x91\x85\x8a\x85\xa8\x85\x6d\x85\x94\x85\x9b\x85\xae\x85\x87\x85\x9c\x85\x77\x85\x7e\x85\x90\xfa\x1f\x82\x0a\x85\xb0\x85\xc9\x85\xba\x85\xcf\x85\xb9\x85\xd0\x85\xd5\x85\xdd\x85\xe5\x85\xdc\x85\xf9\x86\x0a\x86\x13\x86\x0b\x85\xfe\x86\x22\x86\x1a\x86\x30\x86\x3f\xfa\x20\x86\x4d\x4e\x55\x86\x55\x86\x5f\x86\x67\x86\x71\x86\x93\x86\xa3\x86\xa9\x86\x8b\x86\xaa\x86\x8c\x86\xb6\x86\xaf\x86\xc4\x86\xc6\x86\xb0\x86\xc9\x86\xce\xfa\x21\x86\xab\x86\xd4\x86\xde\x86\xe9\x86\xec\x86\xdf\x86\xdb\x87\x12\x87\x06\x87\x08\x87\x00\x87\x03\x86\xfb\x87\x11\x87\x09\x87\x0d\x86\xf9\x87\x0a\x87\x34\x87\x3f\x87\x3b\x87\x25\x87\x29\x87\x1a\x87\x5f\x87\x78\x87\x4c\x87\x4e\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x74\x87\x57\x87\x68\x87\x82\x87\x6a\x87\x60\x87\x6e\x87\x59\x87\x53\x87\x63\x87\x7f\x87\xa2\x87\xc6\x87\x9f\x87\xaf\x87\xcb\x87\xbd\x87\xc0\x87\xd0\x96\xd6\x87\xab\x87\xc4\x87\xb3\x87\xd2\x87\xbb\x87\xef\x87\xf2\x87\xe0\x88\x0e\x88\x07\x88\x0f\x88\x16\x88\x0d\x87\xfe\x87\xf6\x87\xf7\x88\x11\x88\x15\x88\x22\x88\x21\x88\x27\x88\x31\x88\x36\x88\x39\x88\x3b\x88\x42\x88\x44\x88\x4d\x88\x52\x88\x59\x88\x5e\x88\x62\x88\x6b\x88\x81\x88\x7e\x88\x75\x88\x7d\x88\x72\x88\x82\x88\x9e\x88\x97\x88\x92\x88\xae", /* 6380 */ "\x88\x99\x88\xa2\x88\x8d\x88\xa4\x88\xbf\x88\xb5\x88\xb1\x88\xc3\x88\xc4\x88\xd4\x88\xd8\x88\xd9\x88\xdd\x88\xf9\x89\x02\x88\xfc\x88\xf5\x88\xe8\x88\xf2\x89\x04\x89\x0c\x89\x2a\x89\x1d\x89\x0a\x89\x13\x89\x1e\x89\x25\x89\x2b\x89\x41\x89\x3b\x89\x36\x89\x43\x89\x38\x89\x4d\x89\x4c\x89\x60\x89\x5e\x89\x66\x89\x6a\x89\x64\x89\x6d\x89\x6f\x89\x74\x89\x77\x89\x7e\x89\x83\x89\x88\x89\x8a\x89\x93\x89\x98\x89\xa1\x89\xa9\x89\xa6\x89\xac\x89\xaf\x89\xb2\x89\xba\x89\xbf\x89\xbd\x89\xc0\x89\xda\x89\xdd\x89\xe7\x89\xf4\x89\xf8\x8a\x03\x8a\x16\x8a\x10\x8a\x0c\x8a\x12\x8a\x1b\x8a\x1d\x8a\x25\x8a\x36\x8a\x41\x8a\x37\x8a\x5b\x8a\x52\x8a\x46\x8a\x48\x8a\x7c\x8a\x6d\x8a\x6c\x8a\x62\x8a\x79\x8a\x85\x8a\x82\x8a\x84\x8a\xa8\x8a\xa1\x8a\x91\x8a\xa5\x8a\xa6\x8a\x9a\x8a\xa3\x8a\xa7\x8a\xcc\x8a\xbe\x8a\xcd\x8a\xc2\x8a\xda\x8a\xf3\x8a\xe7\x8a\xe4\x8a\xf1\x8b\x14\x8a\xe0\x8a\xe2\x8a\xe1\x8a\xdf\xfa\x22\x8a\xf6\x8a\xf7\x8a\xde\x8a\xdb\x8b\x0c\x8b\x07\x8b\x1a\x8b\x16\x8b\x10\x8b\x17\x8b\x20\x8b\x33\x8b\x41\x97\xab\x8b\x26\x8b\x2b\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x3e\x8b\x4c\x8b\x4f\x8b\x4e\x8b\x53\x8b\x49\x8b\x56\x8b\x5b\x8b\x5a\x8b\x74\x8b\x6b\x8b\x5f\x8b\x6c\x8b\x6f\x8b\x7d\x8b\x7f\x8b\x80\x8b\x8c\x8b\x8e\x8b\x99\x8b\x92\x8b\x93\x8b\x96\x8b\x9a\x8c\x3a\x8c\x41\x8c\x3f\x8c\x48\x8c\x4c\x8c\x4e\x8c\x50\x8c\x55\x8c\x62\x8c\x6c\x8c\x78\x8c\x7a\x8c\x7c\x8c\x82\x8c\x89\x8c\x85\x8c\x8a\x8c\x8d\x8c\x8e\x8c\x98\x8c\x94\x62\x1d\x8c\xad\x8c\xaa\x8c\xae\x8c\xbd\x8c\xb2\x8c\xb3\x8c\xc1\x8c\xb6\x8c\xc8\x8c\xce\x8c\xcd\x8c\xe3\x8c\xda\x8c\xf0\x8c\xf4\x8c\xfd\x8c\xfa", /* 6480 */ "\x8c\xfb\x8d\x07\x8d\x0a\x8d\x0f\x8d\x0d\x8d\x12\x8d\x10\x8d\x13\x8d\x14\x8d\x16\x8d\x67\x8d\x6d\x8d\x71\x8d\x76\xfa\x23\x8d\x81\x8d\xc2\x8d\xbe\x8d\xba\x8d\xcf\x8d\xda\x8d\xd6\x8d\xcc\x8d\xdb\x8d\xcb\x8d\xea\x8d\xeb\x8d\xdf\x8d\xe3\x8d\xfc\x8e\x08\x8d\xff\x8e\x09\x8e\x1d\x8e\x1e\x8e\x10\x8e\x1f\x8e\x42\x8e\x35\x8e\x30\x8e\x34\x8e\x4a\x8e\x47\x8e\x49\x8e\x4c\x8e\x50\x8e\x48\x8e\x59\x8e\x64\x8e\x60\x8e\x55\x8e\x63\x8e\x76\x8e\x72\x8e\x87\x8e\x7c\x8e\x81\x8e\x85\x8e\x84\x8e\x8b\x8e\x8a\x8e\x93\x8e\x91\x8e\x94\x8e\x99\x8e\xa1\x8e\xaa\x8e\xb1\x8e\xbe\x8e\xc6\x8e\xc5\x8e\xc8\x8e\xcb\x8e\xcf\x8e\xdb\x8e\xe3\x8e\xfc\x8e\xfb\x8e\xeb\x8e\xfe\x8f\x0a\x8f\x0c\x8f\x05\x8f\x15\x8f\x12\x8f\x13\x8f\x1c\x8f\x19\x8f\x1f\x8f\x26\x8f\x33\x8f\x3b\x8f\x39\x8f\x45\x8f\x42\x8f\x3e\x8f\x49\x8f\x46\x8f\x4c\x8f\x4e\x8f\x57\x8f\x5c\x8f\x62\x8f\x63\x8f\x64\x8f\x9c\x8f\x9f\x8f\xa3\x8f\xa8\x8f\xa7\x8f\xad\x8f\xaf\x8f\xb7\xfa\x24\x8f\xda\x8f\xe5\x8f\xe2\x8f\xef\x8f\xe9\x8f\xf4\x90\x05\x8f\xf9\x8f\xf8\x90\x11\x90\x15\x90\x0e\x90\x21\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x90\x1e\x90\x16\x90\x0b\x90\x27\x90\x36\x90\x39\x90\x4f\xfa\x25\x90\x50\x90\x51\x90\x52\x90\x49\x90\x3e\x90\x56\x90\x58\x90\x5e\x90\x68\x90\x67\x90\x6f\x90\x76\x96\xa8\x90\x72\x90\x82\x90\x7d\x90\x89\x90\x80\x90\x8f\x62\x48\x90\xaf\x90\xb1\x90\xb5\x90\xe2\x90\xe4\x90\xdb\x90\xde\x91\x02\xfa\x26\x91\x15\x91\x12\x91\x19\x91\x32\x91\x27\x91\x30\x91\x4a\x91\x56\x91\x58\x91\x63\x91\x65\x91\x69\x91\x73\x91\x72\x91\x8b\x91\x89\x91\x82\x91\xa2\x91\xab\x91\xaf\x91\xaa\x91\xb5\x91\xb4\x91\xba\x91\xc0", /* 6580 */ "\x91\xc1\x91\xcb\x91\xd0\x91\xda\x91\xdb\x91\xd7\x91\xde\x91\xd6\x91\xdf\x91\xe1\x91\xed\x91\xf5\x91\xee\x91\xe4\x91\xf6\x91\xe5\x92\x06\x92\x1e\x91\xff\x92\x10\x92\x14\x92\x0a\x92\x2c\x92\x15\x92\x29\x92\x57\x92\x45\x92\x3a\x92\x49\x92\x64\x92\x40\x92\x3c\x92\x48\x92\x4e\x92\x50\x92\x59\x92\x3f\x92\x51\x92\x39\x92\x4b\x92\x67\x92\x5a\x92\x9c\x92\xa7\x92\x77\x92\x78\x92\x96\x92\x93\x92\x9b\x92\x95\x92\xe9\x92\xcf\x92\xe7\x92\xd7\x92\xd9\x92\xd0\xfa\x27\x92\xd5\x92\xb9\x92\xb7\x92\xe0\x92\xd3\x93\x3a\x93\x35\x93\x0f\x93\x25\x92\xfa\x93\x21\x93\x44\x92\xfb\xfa\x28\x93\x19\x93\x1e\x92\xff\x93\x22\x93\x1a\x93\x1d\x93\x23\x93\x02\x93\x3b\x93\x70\x93\x60\x93\x7c\x93\x6e\x93\x56\x93\x57\x93\xb9\x93\xb0\x93\xa4\x93\xad\x93\x94\x93\xc8\x93\xd6\x93\xc6\x93\xd7\x93\xe8\x93\xe5\x93\xd8\x93\xc3\x93\xdd\x93\xde\x93\xd0\x93\xe4\x94\x1a\x93\xf8\x94\x14\x94\x13\x94\x21\x94\x03\x94\x07\x94\x36\x94\x2b\x94\x31\x94\x3a\x94\x41\x94\x52\x94\x45\x94\x44\x94\x48\x94\x5b\x94\x5a\x94\x60\x94\x62\x94\x5e\x94\x6a\x94\x75\x94\x70\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x77\x94\x7f\x94\x7d\x94\x7c\x94\x7e\x94\x81\x95\x82\x95\x87\x95\x8a\x95\x92\x95\x94\x95\x96\x95\x98\x95\x99\x95\xa0\x95\xa8\x95\xa7\x95\xad\x95\xbc\x95\xbb\x95\xb9\x95\xbe\x95\xca\x6f\xf6\x95\xc3\x95\xcd\x95\xcc\x95\xd5\x95\xd4\x95\xd6\x95\xdc\x95\xe1\x95\xe5\x95\xe2\x96\x21\x96\x28\x96\x2e\x96\x2f\x96\x42\x96\x4f\x96\x4c\x96\x4b\x96\x5c\x96\x5d\x96\x5f\x96\x66\x96\x77\x96\x72\x96\x6c\x96\x8d\x96\x8b\xf9\xdc\x96\x98\x96\x95\x96\x97\xfa\x29\x96\x9d\x96\xa7\x96\xaa\x96\xb1\x96\xb2\x96\xb0\x96\xaf", /* 6680 */ "\x96\xb4\x96\xb6\x96\xb8\x96\xb9\x96\xce\x96\xcb\x96\xd5\x96\xdc\x96\xd9\x96\xf9\x97\x04\x97\x06\x97\x08\x97\x19\x97\x0d\x97\x13\x97\x0e\x97\x11\x97\x0f\x97\x16\x97\x24\x97\x2a\x97\x30\x97\x33\x97\x39\x97\x3b\x97\x3d\x97\x3e\x97\x46\x97\x44\x97\x43\x97\x48\x97\x42\x97\x49\x97\x4d\x97\x4f\x97\x51\x97\x55\x97\x5c\x97\x60\x97\x64\x97\x66\x97\x68\x97\x6d\x97\x79\x97\x85\x97\x7c\x97\x81\x97\x7a\x97\x8b\x97\x8f\x97\x90\x97\x9c\x97\xa8\x97\xa6\x97\xa3\x97\xb3\x97\xb4\x97\xc3\x97\xc6\x97\xc8\x97\xcb\x97\xdc\x97\xed\x97\xf2\x7a\xdf\x97\xf5\x98\x0f\x98\x1a\x98\x24\x98\x21\x98\x37\x98\x3d\x98\x4f\x98\x4b\x98\x57\x98\x65\x98\x6b\x98\x6f\x98\x70\x98\x71\x98\x74\x98\x73\x98\xaa\x98\xaf\x98\xb1\x98\xb6\x98\xc4\x98\xc3\x98\xc6\x98\xdc\x98\xed\x98\xe9\xfa\x2a\x98\xeb\xfa\x2b\x99\x03\x99\x1d\x99\x12\x99\x14\x99\x18\x99\x27\xfa\x2c\x99\x21\x99\x1e\x99\x24\x99\x20\x99\x2c\x99\x2e\x99\x3d\x99\x3e\x99\x42\x99\x49\x99\x45\x99\x50\x99\x4b\x99\x51\x99\x4c\x99\x55\x99\x97\x99\x98\x99\x9e\x99\xa5\x99\xad\x99\xae\x99\xbc\x99\xdf\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xdb\x99\xdd\x99\xd8\x99\xd1\x99\xed\x99\xee\x99\xe2\x99\xf1\x99\xf2\x99\xfb\x99\xf8\x9a\x01\x9a\x0f\x9a\x05\x9a\x19\x9a\x2b\x9a\x37\x9a\x40\x9a\x45\x9a\x42\x9a\x43\x9a\x3e\x9a\x55\x9a\x4d\x9a\x4e\x9a\x5b\x9a\x57\x9a\x5f\x9a\x62\x9a\x69\x9a\x65\x9a\x64\x9a\x6a\x9a\x6b\x9a\xad\x9a\xb0\x9a\xbc\x9a\xc0\x9a\xcf\x9a\xd3\x9a\xd4\x9a\xd1\x9a\xd9\x9a\xdc\x9a\xde\x9a\xdf\x9a\xe2\x9a\xe3\x9a\xe6\x9a\xef\x9a\xeb\x9a\xee\x9a\xf4\x9a\xf1\x9a\xf7\x9a\xfb\x9b\x06\x9b\x18\x9b\x1a\x9b\x1f\x9b\x22\x9b\x23\x9b\x25", /* 6780 */ "\x9b\x27\x9b\x28\x9b\x29\x9b\x2a\x9b\x2e\x9b\x2f\x9b\x31\x9b\x32\x9b\x3b\x9b\x44\x9b\x43\x9b\x4d\x9b\x4e\x9b\x51\x9b\x58\x9b\x75\x9b\x74\x9b\x72\x9b\x93\x9b\x8f\x9b\x83\x9b\x91\x9b\x96\x9b\x97\x9b\x9f\x9b\xa0\x9b\xa8\x9b\xb1\x9b\xb4\x9b\xc0\x9b\xca\x9b\xbb\x9b\xb9\x9b\xc6\x9b\xcf\x9b\xd1\x9b\xd2\x9b\xe3\x9b\xe2\x9b\xe4\x9b\xd4\x9b\xe1\x9b\xf5\x9b\xf1\x9b\xf2\x9c\x04\x9c\x1b\x9c\x15\x9c\x14\x9c\x00\x9c\x09\x9c\x13\x9c\x0c\x9c\x06\x9c\x08\x9c\x12\x9c\x0a\x9c\x2e\x9c\x25\x9c\x24\x9c\x21\x9c\x30\x9c\x47\x9c\x32\x9c\x46\x9c\x3e\x9c\x5a\x9c\x60\x9c\x67\x9c\x76\x9c\x78\x9c\xeb\x9c\xe7\x9c\xec\x9c\xf0\x9d\x09\x9d\x03\x9d\x06\x9d\x2a\x9d\x26\x9d\x2c\x9d\x23\x9d\x1f\x9d\x15\x9d\x12\x9d\x41\x9d\x3f\x9d\x44\x9d\x3e\x9d\x46\x9d\x48\x9d\x5d\x9d\x5e\x9d\x59\x9d\x51\x9d\x50\x9d\x64\x9d\x72\x9d\x70\x9d\x87\x9d\x6b\x9d\x6f\x9d\x7a\x9d\x9a\x9d\xa4\x9d\xa9\x9d\xab\x9d\xb2\x9d\xc4\x9d\xc1\x9d\xbb\x9d\xb8\x9d\xba\x9d\xc6\x9d\xcf\x9d\xc2\xfa\x2d\x9d\xd9\x9d\xd3\x9d\xf8\x9d\xe6\x9d\xed\x9d\xef\x9d\xfd\x9e\x1a\x9e\x1b\x9e\x19\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x1e\x9e\x75\x9e\x79\x9e\x7d\x9e\x81\x9e\x88\x9e\x8b\x9e\x8c\x9e\x95\x9e\x91\x9e\x9d\x9e\xa5\x9e\xb8\x9e\xaa\x9e\xad\x9e\xbc\x9e\xbe\x97\x61\x9e\xcc\x9e\xcf\x9e\xd0\x9e\xd1\x9e\xd4\x9e\xdc\x9e\xde\x9e\xdd\x9e\xe0\x9e\xe5\x9e\xe8\x9e\xef\x9e\xf4\x9e\xf6\x9e\xf7\x9e\xf9\x9e\xfb\x9e\xfc\x9e\xfd\x9f\x07\x9f\x08\x76\xb7\x9f\x15\x9f\x21\x9f\x2c\x9f\x3e\x9f\x4a\x9f\x4e\x9f\x4f\x9f\x52\x9f\x54\x9f\x63\x9f\x5f\x9f\x60\x9f\x61\x9f\x66\x9f\x67\x9f\x6c\x9f\x6a\x9f\x77\x9f\x72\x9f\x76\x9f\x95\x9f\x9c\x9f\xa0", /* 6880 */ "\x5c\x2d\x69\xd9\x90\x65\x74\x76\x51\xdc\x71\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 6980 */ "\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc", /* 6a80 */ "\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba", /* 6b80 */ "\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78", /* 6c80 */ "\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36", /* 6d80 */ "\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4", /* 6e80 */ "\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2", /* 6f80 */ "\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70", /* 7080 */ "\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e", /* 7180 */ "\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec", /* 7280 */ "\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xe7\xa8\xe7\xa9\xe7\xaa", /* 7380 */ "\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe7\xff\xe8\x00\xe8\x01\xe8\x02\xe8\x03\xe8\x04\xe8\x05\xe8\x06\xe8\x07\xe8\x08\xe8\x09\xe8\x0a\xe8\x0b\xe8\x0c\xe8\x0d\xe8\x0e\xe8\x0f\xe8\x10\xe8\x11\xe8\x12\xe8\x13\xe8\x14\xe8\x15\xe8\x16\xe8\x17\xe8\x18\xe8\x19\xe8\x1a\xe8\x1b\xe8\x1c\xe8\x1d\xe8\x1e\xe8\x1f\xe8\x20\xe8\x21\xe8\x22\xe8\x23\xe8\x24\xe8\x25\xe8\x26\xe8\x27\xe8\x28\xe8\x29\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x2a\xe8\x2b\xe8\x2c\xe8\x2d\xe8\x2e\xe8\x2f\xe8\x30\xe8\x31\xe8\x32\xe8\x33\xe8\x34\xe8\x35\xe8\x36\xe8\x37\xe8\x38\xe8\x39\xe8\x3a\xe8\x3b\xe8\x3c\xe8\x3d\xe8\x3e\xe8\x3f\xe8\x40\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68", /* 7480 */ "\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe8\xff\xe9\x00\xe9\x01\xe9\x02\xe9\x03\xe9\x04\xe9\x05\xe9\x06\xe9\x07\xe9\x08\xe9\x09\xe9\x0a\xe9\x0b\xe9\x0c\xe9\x0d\xe9\x0e\xe9\x0f\xe9\x10\xe9\x11\xe9\x12\xe9\x13\xe9\x14\xe9\x15\xe9\x16\xe9\x17\xe9\x18\xe9\x19\xe9\x1a\xe9\x1b\xe9\x1c\xe9\x1d\xe9\x1e\xe9\x1f\xe9\x20\xe9\x21\xe9\x22\xe9\x23\xe9\x24\xe9\x25\xe9\x26", /* 7580 */ "\xe9\x27\xe9\x28\xe9\x29\xe9\x2a\xe9\x2b\xe9\x2c\xe9\x2d\xe9\x2e\xe9\x2f\xe9\x30\xe9\x31\xe9\x32\xe9\x33\xe9\x34\xe9\x35\xe9\x36\xe9\x37\xe9\x38\xe9\x39\xe9\x3a\xe9\x3b\xe9\x3c\xe9\x3d\xe9\x3e\xe9\x3f\xe9\x40\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xe9\x58\xe9\x59\xe9\x5a\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4", /* 7680 */ "\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xe9\xff\xea\x00\xea\x01\xea\x02\xea\x03\xea\x04\xea\x05\xea\x06\xea\x07\xea\x08\xea\x09\xea\x0a\xea\x0b\xea\x0c\xea\x0d\xea\x0e\xea\x0f\xea\x10\xea\x11\xea\x12\xea\x13\xea\x14\xea\x15\xea\x16\xea\x17\xea\x18\xea\x19\xea\x1a\xea\x1b\xea\x1c\xea\x1d\xea\x1e\xea\x1f\xea\x20\xea\x21\xea\x22\xea\x23\xea\x24\xea\x25\xea\x26\xea\x27\xea\x28\xea\x29\xea\x2a\xea\x2b\xea\x2c\xea\x2d\xea\x2e\xea\x2f\xea\x30\xea\x31\xea\x32\xea\x33\xea\x34\xea\x35\xea\x36\xea\x37\xea\x38\xea\x39\xea\x3a\xea\x3b\xea\x3c\xea\x3d\xea\x3e\xea\x3f\xea\x40\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2", /* 7780 */ "\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xea\xff\xeb\x00\xeb\x01\xeb\x02\xeb\x03\xeb\x04\xeb\x05\xeb\x06\xeb\x07\xeb\x08\xeb\x09\xeb\x0a\xeb\x0b\xeb\x0c\xeb\x0d\xeb\x0e\xeb\x0f\xeb\x10\xeb\x11\xeb\x12\xeb\x13\xeb\x14\xeb\x15\xeb\x16\xeb\x17\xeb\x18\xeb\x19\xeb\x1a\xeb\x1b\xeb\x1c\xeb\x1d\xeb\x1e\xeb\x1f\xeb\x20\xeb\x21\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x22\xeb\x23\xeb\x24\xeb\x25\xeb\x26\xeb\x27\xeb\x28\xeb\x29\xeb\x2a\xeb\x2b\xeb\x2c\xeb\x2d\xeb\x2e\xeb\x2f\xeb\x30\xeb\x31\xeb\x32\xeb\x33\xeb\x34\xeb\x35\xeb\x36\xeb\x37\xeb\x38\xeb\x39\xeb\x3a\xeb\x3b\xeb\x3c\xeb\x3d\xeb\x3e\xeb\x3f\xeb\x40\xeb\x41\xeb\x42\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d\xeb\x5e\xeb\x5f\xeb\x60", /* 7880 */ "\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xeb\xd7\xeb\xd8\xeb\xd9\xeb\xda\xeb\xdb\xeb\xdc\xeb\xdd\xeb\xde\xeb\xdf\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xeb\xf2\xeb\xf3\xeb\xf4\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe\xeb\xff\xec\x00\xec\x01\xec\x02\xec\x03\xec\x04\xec\x05\xec\x06\xec\x07\xec\x08\xec\x09\xec\x0a\xec\x0b\xec\x0c\xec\x0d\xec\x0e\xec\x0f\xec\x10\xec\x11\xec\x12\xec\x13\xec\x14\xec\x15\xec\x16\xec\x17\xec\x18\xec\x19\xec\x1a\xec\x1b\xec\x1c\xec\x1d\xec\x1e", /* 7980 */ "\xec\x1f\xec\x20\xec\x21\xec\x22\xec\x23\xec\x24\xec\x25\xec\x26\xec\x27\xec\x28\xec\x29\xec\x2a\xec\x2b\xec\x2c\xec\x2d\xec\x2e\xec\x2f\xec\x30\xec\x31\xec\x32\xec\x33\xec\x34\xec\x35\xec\x36\xec\x37\xec\x38\xec\x39\xec\x3a\xec\x3b\xec\x3c\xec\x3d\xec\x3e\xec\x3f\xec\x40\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc", /* 7a80 */ "\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xec\xff\xed\x00\xed\x01\xed\x02\xed\x03\xed\x04\xed\x05\xed\x06\xed\x07\xed\x08\xed\x09\xed\x0a\xed\x0b\xed\x0c\xed\x0d\xed\x0e\xed\x0f\xed\x10\xed\x11\xed\x12\xed\x13\xed\x14\xed\x15\xed\x16\xed\x17\xed\x18\xed\x19\xed\x1a\xed\x1b\xed\x1c\xed\x1d\xed\x1e\xed\x1f\xed\x20\xed\x21\xed\x22\xed\x23\xed\x24\xed\x25\xed\x26\xed\x27\xed\x28\xed\x29\xed\x2a\xed\x2b\xed\x2c\xed\x2d\xed\x2e\xed\x2f\xed\x30\xed\x31\xed\x32\xed\x33\xed\x34\xed\x35\xed\x36\xed\x37\xed\x38\xed\x39\xed\x3a\xed\x3b\xed\x3c\xed\x3d\xed\x3e\xed\x3f\xed\x40\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a", /* 7b80 */ "\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xed\xff\xee\x00\xee\x01\xee\x02\xee\x03\xee\x04\xee\x05\xee\x06\xee\x07\xee\x08\xee\x09\xee\x0a\xee\x0b\xee\x0c\xee\x0d\xee\x0e\xee\x0f\xee\x10\xee\x11\xee\x12\xee\x13\xee\x14\xee\x15\xee\x16\xee\x17\xee\x18\xee\x19\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x1a\xee\x1b\xee\x1c\xee\x1d\xee\x1e\xee\x1f\xee\x20\xee\x21\xee\x22\xee\x23\xee\x24\xee\x25\xee\x26\xee\x27\xee\x28\xee\x29\xee\x2a\xee\x2b\xee\x2c\xee\x2d\xee\x2e\xee\x2f\xee\x30\xee\x31\xee\x32\xee\x33\xee\x34\xee\x35\xee\x36\xee\x37\xee\x38\xee\x39\xee\x3a\xee\x3b\xee\x3c\xee\x3d\xee\x3e\xee\x3f\xee\x40\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58", /* 7c80 */ "\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xee\xff\xef\x00\xef\x01\xef\x02\xef\x03\xef\x04\xef\x05\xef\x06\xef\x07\xef\x08\xef\x09\xef\x0a\xef\x0b\xef\x0c\xef\x0d\xef\x0e\xef\x0f\xef\x10\xef\x11\xef\x12\xef\x13\xef\x14\xef\x15\xef\x16", /* 7d80 */ "\xef\x17\xef\x18\xef\x19\xef\x1a\xef\x1b\xef\x1c\xef\x1d\xef\x1e\xef\x1f\xef\x20\xef\x21\xef\x22\xef\x23\xef\x24\xef\x25\xef\x26\xef\x27\xef\x28\xef\x29\xef\x2a\xef\x2b\xef\x2c\xef\x2d\xef\x2e\xef\x2f\xef\x30\xef\x31\xef\x32\xef\x33\xef\x34\xef\x35\xef\x36\xef\x37\xef\x38\xef\x39\xef\x3a\xef\x3b\xef\x3c\xef\x3d\xef\x3e\xef\x3f\xef\x40\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xef\xd2\xef\xd3\xef\xd4", /* 7e80 */ "\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xef\xff\xf0\x00\xf0\x01\xf0\x02\xf0\x03\xf0\x04\xf0\x05\xf0\x06\xf0\x07\xf0\x08\xf0\x09\xf0\x0a\xf0\x0b\xf0\x0c\xf0\x0d\xf0\x0e\xf0\x0f\xf0\x10\xf0\x11\xf0\x12\xf0\x13\xf0\x14\xf0\x15\xf0\x16\xf0\x17\xf0\x18\xf0\x19\xf0\x1a\xf0\x1b\xf0\x1c\xf0\x1d\xf0\x1e\xf0\x1f\xf0\x20\xf0\x21\xf0\x22\xf0\x23\xf0\x24\xf0\x25\xf0\x26\xf0\x27\xf0\x28\xf0\x29\xf0\x2a\xf0\x2b\xf0\x2c\xf0\x2d\xf0\x2e\xf0\x2f\xf0\x30\xf0\x31\xf0\x32\xf0\x33\xf0\x34\xf0\x35\xf0\x36\xf0\x37\xf0\x38\xf0\x39\xf0\x3a\xf0\x3b\xf0\x3c\xf0\x3d\xf0\x3e\xf0\x3f\xf0\x40\xf0\x41\xf0\x42\xf0\x43\xf0\x44\xf0\x45\xf0\x46\xf0\x47\xf0\x48\xf0\x49\xf0\x4a\xf0\x4b\xf0\x4c\xf0\x4d\xf0\x4e\xf0\x4f\xf0\x50\xf0\x51\xf0\x52\xf0\x53\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x54\xf0\x55\xf0\x56\xf0\x57\xf0\x58\xf0\x59\xf0\x5a\xf0\x5b\xf0\x5c\xf0\x5d\xf0\x5e\xf0\x5f\xf0\x60\xf0\x61\xf0\x62\xf0\x63\xf0\x64\xf0\x65\xf0\x66\xf0\x67\xf0\x68\xf0\x69\xf0\x6a\xf0\x6b\xf0\x6c\xf0\x6d\xf0\x6e\xf0\x6f\xf0\x70\xf0\x71\xf0\x72\xf0\x73\xf0\x74\xf0\x75\xf0\x76\xf0\x77\xf0\x78\xf0\x79\xf0\x7a\xf0\x7b\xf0\x7c\xf0\x7d\xf0\x7e\xf0\x7f\xf0\x80\xf0\x81\xf0\x82\xf0\x83\xf0\x84\xf0\x85\xf0\x86\xf0\x87\xf0\x88\xf0\x89\xf0\x8a\xf0\x8b\xf0\x8c\xf0\x8d\xf0\x8e\xf0\x8f\xf0\x90\xf0\x91\xf0\x92", /* 7f80 */ "\xf0\x93\xf0\x94\xf0\x95\xf0\x96\xf0\x97\xf0\x98\xf0\x99\xf0\x9a\xf0\x9b\xf0\x9c\xf0\x9d\xf0\x9e\xf0\x9f\xf0\xa0\xf0\xa1\xf0\xa2\xf0\xa3\xf0\xa4\xf0\xa5\xf0\xa6\xf0\xa7\xf0\xa8\xf0\xa9\xf0\xaa\xf0\xab\xf0\xac\xf0\xad\xf0\xae\xf0\xaf\xf0\xb0\xf0\xb1\xf0\xb2\xf0\xb3\xf0\xb4\xf0\xb5\xf0\xb6\xf0\xb7\xf0\xb8\xf0\xb9\xf0\xba\xf0\xbb\xf0\xbc\xf0\xbd\xf0\xbe\xf0\xbf\xf0\xc0\xf0\xc1\xf0\xc2\xf0\xc3\xf0\xc4\xf0\xc5\xf0\xc6\xf0\xc7\xf0\xc8\xf0\xc9\xf0\xca\xf0\xcb\xf0\xcc\xf0\xcd\xf0\xce\xf0\xcf\xf0\xd0\xf0\xd1\xf0\xd2\xf0\xd3\xf0\xd4\xf0\xd5\xf0\xd6\xf0\xd7\xf0\xd8\xf0\xd9\xf0\xda\xf0\xdb\xf0\xdc\xf0\xdd\xf0\xde\xf0\xdf\xf0\xe0\xf0\xe1\xf0\xe2\xf0\xe3\xf0\xe4\xf0\xe5\xf0\xe6\xf0\xe7\xf0\xe8\xf0\xe9\xf0\xea\xf0\xeb\xf0\xec\xf0\xed\xf0\xee\xf0\xef\xf0\xf0\xf0\xf1\xf0\xf2\xf0\xf3\xf0\xf4\xf0\xf5\xf0\xf6\xf0\xf7\xf0\xf8\xf0\xf9\xf0\xfa\xf0\xfb\xf0\xfc\xf0\xfd\xf0\xfe\xf0\xff\xf1\x00\xf1\x01\xf1\x02\xf1\x03\xf1\x04\xf1\x05\xf1\x06\xf1\x07\xf1\x08\xf1\x09\xf1\x0a\xf1\x0b\xf1\x0c\xf1\x0d\xf1\x0e\xf1\x0f\xf1\x10\xf1\x11\x00\x00", /* 8000 */ NULL, /* 8080 */ NULL, /* 8100 */ NULL, /* 8180 */ NULL, /* 8200 */ NULL, /* 8280 */ NULL, /* 8300 */ NULL, /* 8380 */ NULL, /* 8400 */ NULL, /* 8480 */ NULL, /* 8500 */ NULL, /* 8580 */ NULL, /* 8600 */ NULL, /* 8680 */ NULL, /* 8700 */ NULL, /* 8780 */ NULL, /* 8800 */ NULL, /* 8880 */ NULL, /* 8900 */ NULL, /* 8980 */ NULL, /* 8a00 */ NULL, /* 8a80 */ NULL, /* 8b00 */ NULL, /* 8b80 */ NULL, /* 8c00 */ NULL, /* 8c80 */ NULL, /* 8d00 */ NULL, /* 8d80 */ NULL, /* 8e00 */ NULL, /* 8e80 */ NULL, /* 8f00 */ NULL, /* 8f80 */ NULL, /* 9000 */ NULL, /* 9080 */ NULL, /* 9100 */ NULL, /* 9180 */ NULL, /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ NULL, /* e080 */ NULL, /* e100 */ NULL, /* e180 */ NULL, /* e200 */ NULL, /* e280 */ NULL, /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp935", "0x04380345" /* 1080, 837 */, "gb2312.1980-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-837_P100-2000 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x88\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x44\x46\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x48\x46\x46\x46\x5a\x00\x00\x46\x4c\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x46\x50\x46\x4e\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x46\x54\x46\x52\x00\x00\x46\x59\x00\x00\x00\x00\x00\x00", /* 0100 */ "\x00\x00\x46\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x46\x4b\x00\x00\x46\x4f\x00\x00\x46\x53\x00\x00\x46\x55\x00\x00\x46\x56\x00\x00\x46\x57\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0200 */ NULL, /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x46\x00\x00\x45\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4a\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x8b\x00\x00\x44\xee\x44\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x66\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6b\x00\x00\x00\x00\x45\x77\x44\x4d\x00\x00\x45\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6d\x00\x00\x45\x63\x45\x64\x45\x68\x45\x67\x45\x71\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x45\x62\x45\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x75\x00\x00\x00\x00\x00\x00\x45\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x45\x73\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0", /* 2480 */ "\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2500 */ "\x46\xa4\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x45\x5b\x45\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x59\xba\x4b\xa0\x00\x00\x53\xde\x00\x00\x00\x00\x00\x00\x57\x93\x5b\x69\x54\xfc\x55\x6f\x58\x62\x5c\xa1\x49\xba\x5a\x8c\x00\x00\x5c\xa3\x4a\x94\x00\x00\x5c\x48\x54\x72\x5c\xa6\x55\xbf\x00\x00\x54\x91\x49\x9c\x59\xb4\x4a\xd3\x4b\xaa\x56\x5f\x5c\xa8\x00\x00\x00\x00\x00\x00\x4b\xa9\x00\x00\x51\x5d\x59\x6f\x00\x00\x55\x45\x5c\xac\x00\x00\x4c\xf5\x59\x5e\x62\x7c\x5b\xcf\x00\x00\x00\x00\x4c\x82\x00\x00\x4a\xad\x00\x00\x51\x79\x00\x00\x5c\xbb\x00\x00\x57\x89\x4b\x44\x57\xa9\x5b\xf6\x00\x00\x50\xf5\x4f\xd8\x5c\xae\x00\x00\x00\x00\x00\x00\x52\xca\x00\x00\x4f\xc2\x00\x00\x5c\xb0\x52\x54\x59\xe4\x00\x00\x5b\xad\x57\xd9\x5b\x47\x4d\xf4\x4c\x46\x50\xd5\x00\x00\x53\xb8\x53\x72\x54\x67\x00\x00\x4d\x74\x00\x00\x4a\x6b\x59\xd1\x00\x00\x00\x00\x5c\xbe\x4f\xc4\x53\xf1\x59\xb1\x58\x50\x58\x88\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe8\x00\x00\x00\x00\x5c\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf1\x51\xd1\x00\x00\x54\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x4c\x00\x00", /* 4e80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6b\x00\x00\x5a\x89\x5b\x9a\x00\x00\x55\xc1\x4b\xfd\x5c\xa0\x5a\x7a\x50\x98\x00\x00\x5a\xc5\x4e\x45\x5c\xc0\x57\xe4\x4f\xad\x00\x00\x00\x00\x5c\xa7\x00\x00\x59\x67\x58\xa8\x00\x00\x00\x00\x00\x00\x5c\xbc\x5d\x90\x57\x97\x50\x5a\x00\x00\x4f\x5b\x4d\xa4\x59\xdf\x49\xf9\x4d\xdf\x52\xb5\x00\x00\x58\x8e\x4f\xa8\x57\x44\x51\x61\x00\x00\x00\x00\x00\x00\x54\x77\x5d\x92\x00\x00\x5d\x95\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x5c\xe8\x00\x00\x00\x00\x00\x00\x59\xd9\x55\xb1\x54\xc9\x5c\xeb\x5c\xe9\x5c\xc5\x4f\x97\x53\xcc\x4a\x91\x00\x00\x5c\xea\x4f\x92\x4f\x8a\x00\x00\x54\xd3\x4a\xd2\x00\x00\x00\x00\x51\xd7\x00\x00\x49\xd5\x5c\x70\x55\xca\x56\x9c\x5b\x6c\x4c\xb5\x58\x69\x00\x00\x00\x00\x00\x00\x5d\x7a\x5c\xef\x54\x4a\x00\x00\x5c\xed\x00\x00\x4a\xf9\x51\x8f\x59\xd3\x00\x00\x00\x00\x5c\xec\x00\x00\x59\xc6\x5c\xee\x52\x67\x00\x00\x00\x00\x00\x00\x59\x97\x00\x00\x5b\xd8\x5c\xf1\x00\x00\x5c\xf4\x4e\xfd\x4e\xda\x00\x00\x00\x00\x00\x00\x54\xcd\x00\x00\x4c\x7d\x00\x00\x4c\x62", /* 4f00 */ "\x00\x00\x53\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf7\x59\xc0\x00\x00\x00\x00\x57\xe8\x4e\xbe\x4c\x9d\x4c\x45\x58\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd9\x5a\x65\x4e\x90\x4e\x82\x5c\xf0\x00\x00\x00\x00\x55\x41\x57\xaf\x4a\xaa\x00\x00\x5c\xf2\x00\x00\x55\x6b\x5c\xf5\x51\xd6\x5c\xf6\x00\x00\x00\x00\x57\xb0\x5c\xf8\x00\x00\x00\x00\x00\x00\x49\xad\x4d\x60\x00\x00\x5d\x43\x00\x00\x48\xe8\x00\x00\x51\x87\x00\x00\x55\x8d\x00\x00\x56\x65\x00\x00\x56\x66\x5d\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x89\x00\x00\x00\x00\x4b\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xba\x4b\x6d\x5c\x41\x5c\x95\x5a\x73\x00\x00\x56\xe4\x00\x00\x4d\xcd\x00\x00\x5d\x42\x5d\x7c\x5a\x81\x5c\xfc\x4c\x91\x5c\x98\x5c\xfd\x5c\xf9\x5d\x41\x52\xe2\x00\x00\x00\x00\x5a\x56\x5c\xf3\x5d\x7d\x00\x00\x5c\xfa\x00\x00\x53\x86\x00\x00\x00\x00\x50\xcf\x00\x00\x00\x00\x59\x91\x48\xda\x00\x00\x00\x00\x4e\xd0\x5d\x46\x00\x00\x5d\x45\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x4c\x5d\x4e\x00\x00\x5d\x4b\x55\xb8", /* 4f80 */ "\x00\x00\x00\x00\x00\x00\x5d\x49\x5b\xb5\x00\x00\x00\x00\x00\x00\x4a\x7e\x5d\x48\x00\x00\x50\xfc\x00\x00\x55\xcb\x00\x00\x5d\x4a\x00\x00\x5d\x47\x00\x00\x00\x00\x5d\x50\x00\x00\x00\x00\x4b\xb0\x00\x00\x00\x00\x00\x00\x4d\x49\x00\x00\x59\xbf\x00\x00\x00\x00\x58\x60\x00\x00\x00\x00\x51\xc1\x00\x00\x4f\x64\x5b\x8d\x49\xdf\x54\x68\x50\x8c\x5d\x4d\x00\x00\x5d\x4f\x00\x00\x57\xe9\x4d\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x84\x00\x00\x00\x00\x00\x00\x4a\xd8\x4b\xec\x5d\x54\x00\x00\x00\x00\x00\x00\x00\x00\x50\x41\x00\x00\x00\x00\x00\x00\x5d\x7e\x54\x6e\x50\xfd\x5d\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x77\x4c\x9e\x00\x00\x5d\x55\x00\x00\x5d\x57\x49\x43\x5a\x82\x5d\x59\x00\x00\x58\xc4\x00\x00\x5d\x56\x00\x00\x00\x00\x5d\x51\x00\x00\x5d\x52\x51\x49\x5d\x53\x00\x00\x00\x00\x4e\xf2\x58\xdd\x4c\xa8\x00\x00\x4f\xe2\x00\x00\x5d\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5a\x00\x00\x48\xb2\x00\x00\x00\x00\x00\x00\x5d\x62\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x64\x49\x56\x00\x00\x5d\x5f\x00\x00\x00\x00\x4b\x59\x00\x00\x4f\xf2\x00\x00\x00\x00\x00\x00\x56\xc7\x4d\xf1\x59\xcf\x00\x00\x5d\x63\x00\x00\x00\x00\x4f\x89\x00\x00\x4a\x4b\x00\x00\x00\x00\x00\x00\x5d\x65\x4f\xea\x00\x00\x5d\x66\x5d\x5b\x52\xde\x00\x00\x5d\x5e\x5d\x61\x5d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4e\x00\x00\x5b\xb4\x00\x00\x54\x84\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x68\x00\x00\x00\x00\x00\x00\x4e\xd8\x5d\x6a\x00\x00\x00\x00\x00\x00\x5d\x5c\x00\x00\x5d\x6b\x53\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x97\x00\x00\x57\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x5c\x57\x55\x00\x00\x00\x00\x00\x00\x5d\x6d\x00\x00\x00\x00\x5d\x67\x4a\x45", /* 5080 */ "\x50\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb4\x00\x00\x00\x00\x50\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf5\x00\x00\x5d\x6e\x00\x00\x5d\x6f\x4a\xa1\x5d\x70\x00\x00\x00\x00\x4a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x71\x55\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x72\x00\x00\x00\x00\x00\x00\x51\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x76\x55\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x75\x5d\x74\x5d\x77\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7b\x00\x00\x4f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa6\x00\x00\x00\x00\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x73\x5d\x78\x00\x00\x00\x00\x00\x00\x5d\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf8\x5c\xa2\x5a\xc9\x00\x00\x5a\xa9\x58\xd5\x4a\x85\x5b\x77\x00\x00\x58\x68\x4d\x83\x00\x00\x50\x6b\x00\x00\x52\x83\x00\x00\x00\x00\x00\x00\x4b\xd1\x00\x00\x00\x00\x57\x63\x5d\x8f\x5d\x91\x00\x00\x00\x00\x00\x00\x4b\x53\x00\x00\x4b\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa3\x00\x00\x00\x00\x54\xea\x00\x00\x00\x00\x54\xaa\x00\x00\x00\x00\x48\xca\x4d\x4b\x51\x9a\x5d\x83\x00\x00\x50\xbb\x4d\x52\x00\x00\x4d\x78\x58\xca\x49\x99\x53\xe3\x4f\xde\x4b\x85\x5c\x68\x00\x00\x59\x99\x4e\xe5\x55\xdd\x00\x00\x00\x00", /* 5180 */ "\x4e\xbc\x5d\x87\x5c\xe6\x00\x00\x00\x00\x52\xd9\x00\x00\x00\x00\x4c\xd3\x54\xbc\x00\x00\x00\x00\x49\xe0\x5a\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x52\x50\x00\x00\x00\x00\x52\x82\x5d\xa1\x54\xde\x00\x00\x58\xb3\x00\x00\x4f\xfb\x53\x49\x00\x00\x00\x00\x00\x00\x4d\x7a\x00\x00\x5d\xa2\x00\x00\x5a\xa8\x5d\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9c\x4b\xab\x00\x00\x00\x00\x4c\x8c\x49\x9a\x5d\x9d\x4a\x86\x4f\xf5\x00\x00\x50\x97\x59\xb0\x50\xe3\x00\x00\x00\x00\x00\x00\x4b\xb2\x5d\x9f\x5d\x9e\x00\x00\x00\x00\x4f\xba\x00\x00\x00\x00\x00\x00\x53\xdf\x00\x00\x5c\x5c\x5d\xa0\x00\x00\x51\x59\x00\x00\x4b\x93\x51\x89\x00\x00\x00\x00\x4e\xf4\x00\x00\x4a\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x7d\x00\x00\x52\xfc\x00\x00\x00\x00\x4e\xb7\x4c\x52\x00\x00\x00\x00\x4c\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8d\x00\x00\x53\xbd\x00\x00\x50\x4d\x4e\x6b\x00\x00\x00\x00\x4b\x6a\x00\x00\x5e\x69\x58\xd6\x00\x00\x57\x59\x48\xbb\x4a\x97\x4e\x98\x5e\x6a\x4d\xae\x00\x00\x5a\xe3", /* 5200 */ "\x4b\x56\x4b\x94\x5c\xd5\x54\xcf\x00\x00\x00\x00\x4c\x76\x54\x70\x5c\xd6\x00\x00\x50\x4f\x00\x00\x00\x00\x5e\x5b\x5c\xd7\x00\x00\x00\x00\x58\xcb\x4e\x4e\x00\x00\x00\x00\x00\x00\x66\x5e\x51\x70\x51\x96\x5a\xf1\x4c\xd4\x4a\xb3\x00\x00\x4a\x96\x00\x00\x00\x00\x55\x5e\x00\x00\x00\x00\x00\x00\x53\x70\x00\x00\x00\x00\x00\x00\x53\x79\x50\xfa\x00\x00\x49\x91\x00\x00\x5c\xd8\x4d\x6e\x00\x00\x4b\x5d\x00\x00\x00\x00\x5c\xd9\x00\x00\x00\x00\x5b\xc5\x56\x42\x54\xae\x55\x52\x4a\xcb\x50\x6c\x00\x00\x4d\x95\x00\x00\x5c\xda\x5c\xdb\x4b\xe6\x4e\xc0\x56\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x98\x00\x00\x5c\xdc\x54\x50\x00\x00\x00\x00\x4d\x70\x4f\x43\x00\x00\x00\x00\x56\xdd\x00\x00\x53\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdf\x00\x00\x5c\xdd\x00\x00\x00\x00\x5c\xde\x00\x00\x00\x00\x00\x00\x48\xfd\x00\x00\x4f\xe6\x00\x00\x55\xa2\x4e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb0\x00\x00\x00\x00\x4c\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe1\x00\x00\x4f\x6b", /* 5280 */ "\x00\x00\x5c\xe3\x5c\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe4\x00\x00\x00\x00\x5c\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x46\x00\x00\x54\xaf\x48\xeb\x4d\x46\x4e\xd2\x57\xf0\x5e\x5d\x51\x73\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xae\x5b\xf9\x53\x4c\x4f\x79\x5e\x5e\x5e\x5f\x00\x00\x00\x00\x00\x00\x50\xf7\x4f\xa1\x50\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x60\x55\xc5\x00\x00\x00\x00\x00\x00\x49\xa9\x00\x00\x00\x00\x00\x00\x5a\x62\x00\x00\x52\x84\x00\x00\x59\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x62\x00\x00\x50\xd4\x00\x00\x00\x00\x00\x00\x5e\x63\x00\x00\x50\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x89\x55\x77\x00\x00\x00\x00\x00\x00\x4d\x54\x57\xef", /* 5300 */ "\x5a\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x48\xfb\x4a\xd1\x00\x00\x58\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8a\x00\x00\x5f\xca\x5d\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xaf\x4e\x4f\x49\x51\x00\x00\x4a\x77\x5c\xcd\x00\x00\x00\x00\x5a\xd0\x00\x00\x00\x00\x4f\x53\x50\x90\x00\x00\x58\x5b\x00\x00\x00\x00\x5c\xcf\x00\x00\x00\x00\x00\x00\x4c\x6b\x00\x00\x00\x00\x00\x00\x5c\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa4\x54\x99\x59\xbc\x00\x00\x00\x00\x5c\xd1\x52\xe3\x00\x00\x55\xad\x00\x00\x54\x47\x00\x00\x5c\xa5\x00\x00\x55\x9e\x57\xe6\x4e\x7c\x48\xea\x00\x00\x00\x00\x00\x00\x4e\x4a\x58\xac\x00\x00\x49\x50\x5c\x85\x5c\x5f\x00\x00\x4b\x45\x51\xf3\x52\xce\x00\x00\x00\x00\x49\xa8\x00\x00\x49\xb6\x00\x00\x49\x86\x60\x52\x5b\x5c\x50\x48\x51\xab\x5c\xd4\x51\xb0\x00\x00\x5c\xd3\x57\xd3\x00\x00\x5d\xdf\x00\x00\x57\xbf\x00\x00\x00\x00\x5c\xb3\x52\x4e\x5a\x41\x57\xa2\x00\x00\x4e\xb3\x54\xb3\x51\xd0\x00\x00\x4f\xec\x58\xb5\x00\x00\x5d\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x54\x85", /* 5380 */ "\x00\x00\x00\x00\x4a\x47\x00\x00\x4b\xf1\x56\xfb\x50\xf9\x00\x00\x00\x00\x50\xf6\x00\x00\x59\x59\x59\x82\x5c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xdd\x00\x00\x00\x00\x50\xe4\x00\x00\x4d\xf0\x00\x00\x00\x00\x5c\xc7\x00\x00\x5a\xac\x00\x00\x00\x00\x58\x82\x5c\xc8\x00\x00\x5c\xc9\x58\x63\x00\x00\x4a\x99\x4f\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa4\x00\x00\x00\x00\x00\x00\x58\x78\x00\x00\x54\xfd\x49\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x76\x49\xe5\x4e\xaf\x5a\x71\x56\x4b\x4c\x54\x00\x00\x00\x00\x00\x00\x4c\x42\x00\x00\x00\x00\x55\xe4\x00\x00\x54\xa0\x55\xdb\x49\x85\x58\xef\x00\x00\x53\x71\x00\x00\x00\x00\x00\x00\x5e\x65\x4b\x9f\x00\x00\x00\x00\x50\x7a\x4d\x65\x4f\xe3\x51\x8e\x00\x00\x60\x56\x60\x55\x5b\xba\x4f\x70\x5b\x79\x48\xc7\x4b\xa2\x50\x69\x56\xa7\x60\x53\x55\xb6\x5a\x72\x00\x00\x5c\xce\x59\xb5\x4d\xc4\x56\x5e\x56\xbd\x00\x00\x60\x57\x4b\x91\x60\x54\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x5a\x96\x00\x00\x4a\x74\x4c\xf6\x00\x00\x60\x5a\x00\x00\x4d\xce\x4e\xa9\x4b\x96\x00\x00\x57\x4c\x52\x9c\x4d\xf2\x50\xf3\x57\x62\x58\x93\x60\x58\x58\x65\x00\x00\x51\xbf\x60\x59\x51\xef\x00\x00\x00\x00\x00\x00\x4f\xfc\x00\x00\x51\x7f\x57\x6c\x59\xf6\x4c\x6d\x60\x61\x00\x00\x60\x64\x00\x00\x00\x00\x4c\x92\x48\xc8\x4b\xd5\x4c\x74\x00\x00\x4d\xab\x56\xfc\x50\x74\x56\x51\x53\xf3\x00\x00\x5b\xa7\x60\x65\x00\x00\x57\xe1\x4a\x53\x00\x00\x00\x00\x57\xfb\x4a\xb4\x00\x00\x57\xc6\x4d\xef\x00\x00\x57\xe0\x00\x00\x59\x5d\x00\x00\x00\x00\x60\x60\x00\x00\x00\x00\x4a\xf3\x00\x00\x4a\x6a\x00\x00\x4c\xe5\x60\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc4\x00\x00\x60\x5c\x60\x5d\x60\x5e\x53\x5b\x60\x5f\x60\x62\x5a\xb0\x60\x63\x00\x00\x54\x5a\x57\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd7\x00\x00\x60\x6a\x00\x00\x60\x6f\x00\x00\x5b\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x69\x60\x7a\x57\xb5\x00\x00\x4d\xc6\x60\x6e\x60\x68\x53\x7e\x00\x00\x00\x00\x55\x8c\x4d\xf3\x52\x9d\x00\x00\x00\x00", /* 5480 */ "\x4f\xd6\x00\x00\x60\x66\x00\x00\x60\x6d\x00\x00\x53\x78\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x46\x4d\xcc\x00\x00\x4f\xcb\x5a\x5d\x4c\xbf\x00\x00\x5b\xe3\x00\x00\x60\x67\x4d\x5e\x50\x47\x00\x00\x00\x00\x51\x9d\x60\x6b\x60\x6c\x00\x00\x60\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x7b\x60\x86\x00\x00\x60\x77\x60\x76\x5c\x69\x60\x84\x60\x85\x63\x8c\x59\xa6\x60\x72\x00\x00\x50\x49\x00\x00\x5a\xda\x00\x00\x50\x68\x60\x74\x00\x00\x00\x00\x00\x00\x58\x6c\x00\x00\x00\x00\x60\x7d\x00\x00\x59\x6a\x00\x00\x60\x7e\x48\xa6\x53\xb6\x60\x73\x00\x00\x4d\xe4\x00\x00\x4b\xde\x57\x7b\x4d\x9f\x5a\xd4\x00\x00\x00\x00\x60\x7f\x58\x8d\x48\xa4\x60\x88\x60\x71\x59\x66\x60\x75\x60\x78\x60\x79\x60\x7c\x00\x00\x4e\x49\x00\x00\x60\x81\x60\x82\x00\x00\x60\x83\x60\x87\x60\x89\x5a\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe6\x53\x56\x60\x8b\x55\x7a\x51\x48\x52\xc3\x00\x00\x00\x00\x50\x7e\x58\x99\x00\x00\x00\x00\x00\x00\x5b\x7c\x60\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb7\x00\x00\x4d\xde\x60\x8d\x00\x00\x5e\x61", /* 5500 */ "\x00\x00\x59\x85\x00\x00\x00\x00\x00\x00\x00\x00\x56\x95\x4a\xbc\x00\x00\x48\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x92\x56\xc5\x60\x93\x00\x00\x00\x00\x60\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8c\x00\x00\x60\x90\x60\x91\x4e\x5d\x00\x00\x00\x00\x60\x94\x00\x00\x00\x00\x60\x95\x00\x00\x4e\x43\x00\x00\x55\xda\x57\xa7\x60\xa6\x4a\x4a\x00\x00\x60\xa5\x00\x00\x00\x00\x00\x00\x60\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9f\x00\x00\x57\x79\x60\x9d\x00\x00\x60\x9b\x00\x00\x50\x70\x5c\x64\x00\x00\x55\x6c\x00\x00\x00\x00\x60\x99\x48\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9c\x60\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x68\x00\x00\x00\x00\x53\xa0\x55\x56\x50\xb1\x60\x96\x00\x00\x00\x00\x53\x5e\x00\x00\x5c\xc3\x60\x9a\x52\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xa2\x60\xa3\x60\xa4\x58\xa4\x00\x00\x00\x00\x60\xb3\x56\xe3\x00\x00\x60\xb0\x00\x00", /* 5580 */ "\x50\x46\x60\xae\x57\xb8\x60\xaa\x55\x66\x00\x00\x00\x00\x50\xad\x60\xad\x4d\xec\x4d\xaf\x60\xa8\x00\x00\x00\x00\x00\x00\x60\x97\x00\x00\x60\xb2\x00\x00\x00\x00\x60\xb7\x00\x00\x00\x00\x00\x00\x4a\xac\x60\xb8\x00\x00\x00\x00\x58\x52\x4d\xc7\x00\x00\x60\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xab\x00\x00\x5a\xfa\x00\x00\x60\x98\x00\x00\x53\x88\x00\x00\x60\xac\x00\x00\x5a\x98\x00\x00\x60\xb5\x60\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc3\x58\xe0\x00\x00\x00\x00\x00\x00\x60\xbb\x00\x00\x00\x00\x60\xc8\x60\xc9\x00\x00\x00\x00\x00\x00\x60\xbd\x60\xa9\x55\x44\x60\xc0\x00\x00\x60\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc7\x60\xc2\x00\x00\x60\xb4\x00\x00\x57\xca\x00\x00\x56\x63\x60\xcc\x60\xc5\x60\xc1\x00\x00\x60\xca\x00\x00\x60\xb9\x60\xbe\x60\xbf\x00\x00\x00\x00\x60\xc4\x00\x00\x00\x00\x60\xc6\x60\xc7\x00\x00\x60\xcb\x00\x00\x60\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x74\x60\xd4\x00\x00", /* 5600 */ "\x60\xd5\x60\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcf\x4e\xcd\x00\x00\x00\x00\x60\xd0\x00\x00\x4c\xc1\x5c\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe9\x00\x00\x00\x00\x51\xee\x00\x00\x00\x00\x60\xce\x60\xbc\x00\x00\x00\x00\x00\x00\x60\xd3\x60\xd2\x00\x00\x00\x00\x60\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x60\xdb\x60\xd7\x00\x00\x00\x00\x00\x00\x5b\xf5\x4a\x50\x00\x00\x5c\x8d\x00\x00\x56\x5b\x00\x00\x00\x00\x60\xd9\x00\x00\x57\xfa\x00\x00\x00\x00\x00\x00\x4d\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe0\x60\xdc\x59\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe1\x00\x00\x00\x00\x60\xda\x60\xd8\x60\xde\x00\x00\x00\x00\x60\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xdd\x00\x00\x60\xe3\x00\x00\x00\x00\x00\x00\x53\xf6\x5c\xab\x5a\xea\x60\xe5\x55\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe6\x60\xe7\x00\x00\x00\x00\x00\x00", /* 5680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe8\x60\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xbe\x56\xe6\x00\x00\x00\x00\x00\x00\x60\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xeb\x00\x00\x00\x00\x60\xec\x00\x00\x00\x00\x54\x95\x56\x64\x00\x00\x60\xed\x4e\x78\x5c\xb5\x59\xf1\x60\xee\x57\x65\x00\x00\x4b\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf0\x00\x00\x5a\xaf\x00\x00\x00\x00\x50\xa6\x4a\xd0\x00\x00\x00\x00\x57\xa6\x60\xef\x00\x00\x00\x00\x00\x00\x60\xf1\x4d\x6c\x00\x00\x00\x00\x4d\x9b\x57\x5c\x60\xf2", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x53\xd3\x60\xf3\x00\x00\x5a\xb1\x00\x00\x54\xa5\x60\xf5\x60\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf6\x00\x00\x00\x00\x57\x61\x00\x00\x00\x00\x00\x00\x55\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd9\x5e\x77\x5e\x79\x00\x00\x5e\x78\x4d\x88\x5e\x7c\x5e\x7d\x4b\x78\x00\x00\x00\x00\x5e\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7b\x4a\x41\x5e\x7f\x00\x00\x00\x00\x4e\x99\x00\x00\x5b\xb6\x00\x00\x5e\x81\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf8\x00\x00\x00\x00\x4c\x5b\x00\x00\x5e\x70\x56\xad\x50\x52\x4e\x55\x5c\x99\x50\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8a\x00\x00\x00\x00\x4e\xe0\x56\xb2\x5e\x7e\x48\xd2\x57\xea\x4c\x78\x5c\x59\x53\xc1\x00\x00\x00\x00\x50\xa3\x00\x00\x56\xb8\x00\x00\x5e\x88\x5e\x82\x53\xb9\x5e\x84\x00\x00\x5e\x89\x00\x00\x53\x98\x00\x00\x00\x00\x00\x00\x5e\x8b\x00\x00\x00\x00\x5e\x8a\x50\x60\x00\x00\x00\x00\x00\x00\x5e\x87\x5e\x86\x00\x00\x00\x00\x00\x00", /* 5780 */ "\x00\x00\x00\x00\x4a\xb8\x50\xab\x51\xa1\x5e\x83\x5e\x85\x00\x00\x00\x00\x00\x00\x00\x00\x58\xcc\x5e\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdc\x5e\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x94\x5e\x72\x4d\x58\x5a\xaa\x5e\x8d\x00\x00\x50\x71\x5e\x91\x00\x00\x5e\x71\x00\x00\x4b\x87\x00\x00\x5e\x8c\x50\x86\x00\x00\x00\x00\x00\x00\x5e\x8f\x00\x00\x5e\x92\x00\x00\x00\x00\x00\x00\x5e\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x41\x48\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf0\x00\x00\x00\x00\x4a\x67\x5e\x90\x00\x00\x00\x00\x5e\x99\x00\x00\x53\xd1\x5e\x95\x00\x00\x00\x00\x5e\x96\x5e\x98\x5e\x97\x00\x00\x00\x00\x5e\x9f\x00\x00\x5a\x93\x49\xb9\x00\x00\x00\x00\x00\x00\x5e\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa3\x00\x00\x5e\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9b\x00\x00\x00\x00\x00\x00\x5e\x9d\x53\x81\x4e\x9a\x00\x00\x00\x00\x5e\xa2\x00\x00\x00\x00", /* 5800 */ "\x5e\xa4\x00\x00\x56\xc2\x00\x00\x00\x00\x00\x00\x4b\xd0\x5f\x60\x00\x00\x00\x00\x00\x00\x5e\xa0\x00\x00\x5e\xa1\x00\x00\x00\x00\x00\x00\x54\x55\x00\x00\x00\x00\x00\x00\x4b\xe8\x00\x00\x00\x00\x00\x00\x5e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa5\x00\x00\x5e\xa8\x49\x44\x00\x00\x00\x00\x4b\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x9b\x66\x94\x00\x00\x00\x00\x00\x00\x56\x7c\x00\x00\x00\x00\x56\x9f\x00\x00\x00\x00\x00\x00\x56\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xed\x5e\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x73\x00\x00", /* 5880 */ "\x5e\xae\x5e\xab\x00\x00\x4f\xb2\x00\x00\x55\xfa\x00\x00\x00\x00\x00\x00\x5e\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6a\x52\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x5d\x5e\xad\x00\x00\x00\x00\x00\x00\x5a\xf5\x58\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xaa\x4b\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x74\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7a\x00\x00\x00\x00\x00\x00\x5e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x76\x00\x00\x00\x00\x00\x00\x4d\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbe\x54\xc8\x00\x00\x5c\x53\x00\x00\x55\x9a\x00\x00\x00\x00\x50\x67\x00\x00\x00\x00\x4d\xf7\x00\x00\x00\x00\x59\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x61\xb9\x00\x00\x4a\xa5\x00\x00\x00\x00\x49\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb3\x00\x00\x58\x64\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x88\x58\x46\x57\x83\x00\x00\x00\x00\x5d\x8e\x4b\xdf\x00\x00\x59\xb8\x00\x00\x00\x00\x4d\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb8\x61\xb6\x00\x00\x4a\xf2\x00\x00\x56\xeb\x56\xaa\x4c\x93\x00\x00\x5c\xb1\x59\x8c\x4d\xba\x00\x00\x55\xa6\x00\x00\x00\x00\x57\x57\x00\x00\x00\x00\x59\xc3\x50\x85\x4e\xcf\x4b\xe0\x00\x00\x5f\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc5\x5e\x5c\x00\x00\x59\x79\x00\x00\x00\x00\x53\xe5\x52\xcd\x4c\x8f\x00\x00\x4c\x7c\x00\x00\x00\x00\x50\x9d\x5c\x81\x00\x00\x53\xf4\x00\x00\x00\x00\x49\x5c\x5f\xc7\x4f\x51\x56\xd6\x5f\xc9\x00\x00\x5f\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8d\x00\x00\x55\x7d\x00\x00\x00\x00\x48\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4e\x53\x4b\x00\x00\x52\xcb\x00\x00\x4e\xe8\x56\x9e\x00\x00\x00\x00\x00\x00\x4d\xc2\x00\x00\x00\x00", /* 5980 */ "\x00\x00\x63\x9a\x54\xe6\x63\x9b\x57\x9e\x00\x00\x5c\x51\x4c\xbd\x51\xe7\x00\x00\x54\xd0\x00\x00\x00\x00\x63\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc9\x4e\xca\x00\x00\x00\x00\x59\x9e\x63\xa0\x00\x00\x52\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9f\x63\xa4\x57\x77\x00\x00\x00\x00\x4c\x61\x63\x9d\x63\x9e\x63\xa2\x00\x00\x00\x00\x52\xdc\x63\xa7\x00\x00\x00\x00\x63\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x63\x00\x00\x53\xdd\x00\x00\x00\x00\x63\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb6\x00\x00\x00\x00\x00\x00\x63\xa1\x55\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x84\x4d\x63\x63\xa5\x58\xd4\x57\xae\x00\x00\x00\x00\x63\xa8\x63\xaf\x00\x00\x59\xa5\x00\x00\x4f\x4a\x63\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xae\x00\x00\x50\xd0\x00\x00\x00\x00\x59\xcb\x00\x00\x00\x00\x00\x00\x4e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb0\x00\x00\x59\xf5\x00\x00\x00\x00\x00\x00\x5c\x6b", /* 5a00 */ "\x00\x00\x57\x9f\x00\x00\x57\x7e\x51\xa5\x63\xaa\x63\xab\x4f\x5f\x63\xad\x63\xb2\x00\x00\x00\x00\x63\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb5\x00\x00\x63\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x52\xee\x00\x00\x00\x00\x00\x00\x52\xc7\x00\x00\x00\x00\x4f\xe9\x55\x90\x00\x00\x00\x00\x63\xb6\x00\x00\x4b\xef\x00\x00\x00\x00\x00\x00\x52\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8a\x63\xb3\x00\x00\x63\xb4\x00\x00\x54\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbc\x00\x00\x00\x00\x00\x00\x63\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc4\x00\x00\x00\x00\x57\x92\x63\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb9\x00\x00\x00\x00\x50\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x44\x63\xbe\x55\x95\x63\xc2\x00\x00\x00\x00\x63\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf5", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x64\x63\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc6\x58\x51\x00\x00\x66\x95\x00\x00\x00\x00\x63\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc4\x00\x00\x00\x00\x4e\xdd\x55\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb4\x00\x00\x00\x00\x58\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc7\x00\x00\x63\xc8\x00\x00\x63\xcd\x00\x00\x63\xcf\x00\x00\x00\x00\x00\x00\x63\xd0\x00\x00\x00\x00\x00\x00\x63\xca\x4b\x75\x00\x00\x63\xcb\x00\x00\x00\x00\x63\xce\x00\x00\x00\x00\x52\xda\x00\x00\x63\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd3\x63\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd4\x00\x00\x5d\x99\x00\x00\x00\x00\x63\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x73\x63\xdc\x00\x00\x63\xdd\x50\x77\x5a\xcf\x00\x00\x5c\x76\x4a\xe5\x56\x90\x63\xd9\x5c\xc2\x5c\x6e\x58\xa1\x00\x00\x52\x6f\x00\x00\x00\x00\x63\xde\x4e\xbd\x4d\x62\x63\xda\x59\x47\x00\x00\x00\x00\x4d\xa1\x51\xce\x00\x00\x5c\xaa\x00\x00\x00\x00\x00\x00\x55\xea\x63\x8f\x00\x00\x63\xdb\x00\x00\x4c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe5\x00\x00\x00\x00\x52\xf4\x00\x00\x00\x00", /* 5b80 */ "\x63\x52\x52\xfd\x00\x00\x56\x9d\x63\x53\x5b\x4c\x00\x00\x5a\x8f\x55\xd7\x48\xb1\x00\x00\x56\x6e\x57\x8b\x00\x00\x00\x00\x4d\xe9\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x63\x54\x00\x00\x5c\x7a\x4d\x79\x5b\xe5\x4b\xa7\x57\x91\x59\xca\x49\x46\x55\xb4\x00\x00\x4a\x89\x55\x94\x50\x6d\x58\xfa\x55\xd1\x63\x56\x4e\x62\x00\x00\x00\x00\x00\x00\x58\x7c\x4d\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd6\x00\x00\x00\x00\x4d\xa5\x59\x88\x58\x9d\x4e\xd1\x00\x00\x63\x57\x54\xdc\x00\x00\x00\x00\x00\x00\x50\x8e\x49\x97\x56\x7e\x00\x00\x00\x00\x4e\xc4\x00\x00\x4e\xc3\x59\xf9\x52\x7c\x50\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xba\x00\x00\x00\x00\x00\x00\x52\x62\x00\x00\x4d\xad\x5a\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7e\x52\xae\x49\xeb\x00\x00\x4d\x71\x00\x00\x00\x00\x63\x5b\x51\x68\x00\x00\x00\x00\x5b\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5c\x00\x00\x63\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xe6\x4b\xd3\x56\x62\x59\x50\x4b\x5c\x00\x00\x00\x00\x55\xd8", /* 5c00 */ "\x00\x00\x4c\x83\x00\x00\x00\x00\x55\x85\x00\x00\x4f\x4b\x00\x00\x00\x00\x57\xbd\x5c\x91\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa0\x00\x00\x55\x79\x00\x00\x00\x00\x4b\xfa\x63\xd7\x4e\xe1\x00\x00\x4a\x5e\x00\x00\x55\x70\x00\x00\x63\xd8\x4a\x42\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcb\x00\x00\x5a\x68\x5f\xcc\x00\x00\x59\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcc\x00\x00\x00\x00\x5f\xce\x00\x00\x00\x00\x00\x00\x55\xab\x59\xfb\x4a\x7f\x63\x8b\x52\xe0\x4f\xa0\x57\xb1\x52\xf1\x4f\xd5\x53\xa7\x49\xe2\x00\x00\x00\x00\x4f\xd2\x00\x00\x00\x00\x54\x9d\x56\xea\x4f\x8d\x57\xdc\x00\x00\x00\x00\x55\xb9\x53\xc0\x63\x8d\x58\xbb\x00\x00\x00\x00\x00\x00\x5b\x59\x00\x00\x00\x00\x00\x00\x63\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf3\x00\x00\x57\x60\x51\xc4\x00\x00\x63\x90\x00\x00\x51\xc3\x63\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x99\x57\x6d\x00\x00\x55\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd8\x61\x48\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8d", /* 5c80 */ "\x00\x00\x56\x8b\x53\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x4c\x00\x00\x00\x00\x00\x00\x61\x47\x61\x49\x00\x00\x00\x00\x61\x4a\x61\x4f\x00\x00\x00\x00\x49\xec\x00\x00\x61\x4b\x4c\xd9\x61\x4d\x61\x4e\x61\x50\x4b\x5a\x61\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x53\x61\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x72\x00\x00\x61\x56\x61\x55\x51\x8c\x00\x00\x00\x00\x00\x00\x61\x57\x00\x00\x5a\xbf\x00\x00\x61\x52\x00\x00\x61\x5a\x48\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x61\x54\x00\x00\x50\x9a\x00\x00\x61\x59\x00\x00\x00\x00\x61\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5f\x00\x00\x00\x00\x61\x5d\x61\x5f\x51\xcc\x00\x00\x4b\xea\x00\x00\x5a\x99\x00\x00\x00\x00\x54\x6d\x00\x00\x00\x00\x4c\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xfd\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x61\x60\x61\x61\x00\x00\x00\x00\x61\x67\x4a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xdd\x00\x00\x59\x62\x00\x00\x00\x00\x00\x00\x00\x00\x61\x68\x00\x00\x00\x00\x61\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x65\x00\x00\x61\x63\x61\x62\x00\x00\x49\x60\x00\x00\x00\x00\x00\x00\x5b\x58\x61\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6c\x61\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x9b\x00\x00\x00\x00\x61\x73\x61\x72\x54\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x69\x00\x00\x00\x00\x61\x6e\x00\x00\x61\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x74\x00\x00\x61\x71\x61\x6d\x00\x00\x00\x00\x61\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x61\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d80 */ "\x00\x00\x00\x00\x61\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x77\x00\x00\x00\x00\x00\x00\x61\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7d\x00\x00\x4a\xa7\x5b\xdc\x00\x00\x00\x00\x59\x52\x4a\x52\x00\x00\x00\x00\x4d\x44\x5c\x94\x54\x69\x4f\xdd\x4d\x4e\x00\x00\x57\xd6\x00\x00\x00\x00\x49\xed\x5e\x6f\x00\x00\x4e\xb9\x59\xd0\x56\x68\x48\xcc\x00\x00\x00\x00\x58\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x84\x4f\x8e\x00\x00", /* 5e00 */ "\x00\x00\x49\x72\x55\xcf\x49\xbb\x00\x00\x56\x47\x4c\x4b\x00\x00\x55\xa5\x00\x00\x00\x00\x00\x00\x58\x43\x00\x00\x00\x00\x60\xf7\x5b\x6a\x60\xfa\x00\x00\x00\x00\x60\xf9\x53\x61\x56\xfa\x00\x00\x51\x51\x60\xf8\x5b\xe2\x49\xae\x5b\xc3\x4b\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf7\x5b\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x4f\x48\xee\x00\x00\x00\x00\x60\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x41\x4a\x43\x00\x00\x00\x00\x60\xfc\x60\xfd\x52\x51\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7d\x00\x00\x61\x42\x4c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x43\x52\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x44\x00\x00\x00\x00\x61\x45\x00\x00\x00\x00\x61\x46\x4a\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc8\x53\xbc\x52\xe9\x00\x00\x49\xa1\x00\x00\x58\xd1\x00\x00\x64\x7b\x4e\x63\x5a\x77\x5a\x64\x00\x00\x4d\x84", /* 5e80 */ "\x61\xce\x00\x00\x00\x00\x00\x00\x5c\x4f\x00\x00\x54\x8d\x49\x73\x00\x00\x00\x00\x4a\xb1\x61\xd0\x00\x00\x00\x00\x00\x00\x58\xf1\x51\xad\x61\xcf\x00\x00\x50\x83\x5a\x46\x4b\x77\x61\xd1\x4b\x8b\x00\x00\x52\x8e\x4c\xfc\x00\x00\x4c\xad\x00\x00\x53\x73\x4c\x6f\x61\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd2\x4b\xc7\x5c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd7\x00\x00\x61\xd5\x55\xfb\x50\x55\x5a\x59\x61\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4e\x50\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xda\x61\xd9\x50\xa9\x00\x00\x00\x00\x51\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdc\x00\x00\x61\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x68\x00\x00\x59\x73\x57\x42\x00\x00\x00\x00\x4f\x48\x00\x00\x00\x00\x00\x00\x5f\xc2\x5c\xa4", /* 5f00 */ "\x50\x4a\x5e\x6d\x59\xeb\x53\xf9\x53\x4a\x00\x00\x00\x00\x00\x00\x5f\xc3\x00\x00\x49\x77\x60\x4e\x00\x00\x00\x00\x00\x00\x55\xbc\x00\x00\x60\x51\x00\x00\x4d\x4d\x00\x00\x59\xfc\x00\x00\x4c\xa4\x4d\xea\x00\x00\x00\x00\x4a\x7a\x00\x00\x00\x00\x00\x00\x4b\x7c\x5b\x65\x00\x00\x00\x00\x00\x00\x00\x00\x52\x76\x58\x72\x4e\x41\x00\x00\x63\x94\x63\x93\x00\x00\x00\x00\x63\x95\x00\x00\x57\x85\x00\x00\x54\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4f\x54\x5f\x00\x00\x63\x97\x00\x00\x00\x00\x00\x00\x66\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x87\x00\x00\x4d\x8a\x4b\x51\x00\x00\x51\xbb\x63\x89\x63\x88\x63\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x59\xcc\x00\x00\x00\x00\x00\x00\x61\x8b\x58\xcd\x00\x00\x57\x4e\x00\x00\x59\x86\x00\x00\x00\x00\x49\xc9\x49\x8c\x00\x00\x49\x93\x53\x8e\x00\x00\x00\x00\x5b\x63\x5a\x50\x00\x00\x61\x7c\x00\x00\x00\x00\x00\x00\x61\x7d\x00\x00\x59\xda\x00\x00\x4a\x59\x49\x6b\x00\x00\x00\x00\x00\x00", /* 5f80 */ "\x57\x9a\x5b\x98\x61\x7e\x00\x00\x4f\xb5\x4a\xfc\x00\x00\x61\x7f\x4d\xdb\x61\x81\x4e\x52\x51\xc8\x61\x82\x00\x00\x00\x00\x00\x00\x58\xeb\x00\x00\x57\x5d\x00\x00\x00\x00\x61\x83\x00\x00\x4b\x63\x53\x67\x61\x84\x00\x00\x00\x00\x61\x85\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x86\x00\x00\x59\x4d\x00\x00\x00\x00\x61\x87\x57\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x88\x00\x00\x4b\x62\x00\x00\x00\x00\x00\x00\x00\x00\x61\x89\x4e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc3\x61\xdf\x49\x78\x59\xe3\x00\x00\x00\x00\x61\xe0\x00\x00\x00\x00\x4e\xc8\x54\xcb\x00\x00\x61\xe2\x66\xfd\x66\xfc\x60\x4f\x00\x00\x00\x00\x00\x00\x61\xe1\x5b\xbd\x57\x9d\x52\x46\x00\x00\x00\x00\x00\x00\x62\x63\x00\x00\x00\x00\x5b\xd1\x61\xe6\x00\x00\x00\x00\x61\xe7\x00\x00\x00\x00\x5a\x67\x00\x00\x00\x00\x61\xeb\x50\x8d\x00\x00\x61\xec\x61\xe4\x00\x00\x00\x00\x4a\x60\x00\x00\x00\x00\x00\x00\x52\xed\x00\x00\x00\x00\x61\xed\x00\x00\x00\x00\x58\xc2\x00\x00\x4d\xf5\x61\xe8\x4c\x7e", /* 6000 */ "\x4e\x53\x56\xab\x56\x6b\x61\xe3\x61\xe5\x61\xe9\x61\xea\x00\x00\x00\x00\x00\x00\x61\xf6\x00\x00\x00\x00\x61\xf3\x5a\xf4\x61\xf2\x00\x00\x00\x00\x53\x4d\x00\x00\x5b\x9b\x53\x62\x49\xbf\x00\x00\x00\x00\x61\xee\x00\x00\x61\xf1\x51\x4f\x56\x5c\x00\x00\x00\x00\x4b\x41\x61\xf8\x00\x00\x00\x00\x00\x00\x4e\xb0\x61\xf0\x58\xd3\x5a\xb8\x61\xf4\x4d\x76\x61\xf5\x00\x00\x00\x00\x00\x00\x54\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x7c\x67\x41\x00\x00\x00\x00\x61\xf7\x00\x00\x67\x45\x61\xfd\x55\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x55\x00\x00\x4e\x70\x00\x00\x00\x00\x50\x76\x00\x00\x4d\xe2\x00\x00\x00\x00\x56\x41\x00\x00\x00\x00\x00\x00\x67\x46\x67\x43\x00\x00\x00\x00\x67\x42\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x76\x67\x47\x58\xf3\x00\x00\x00\x00\x67\x44\x4d\xdd\x4b\xf6\x62\x41\x4b\xb1\x56\xf0\x4d\x47\x00\x00\x58\x42\x54\x41\x00\x00\x00\x00\x50\x72\x00\x00\x00\x00\x4b\xf0\x00\x00\x61\xf9\x61\xfa\x61\xfc\x61\xfb\x52\xd4\x62\x42\x00\x00\x5a\x61", /* 6080 */ "\x00\x00\x00\x00\x00\x00\x62\x47\x54\x64\x00\x00\x00\x00\x00\x00\x00\x00\x58\x44\x00\x00\x00\x00\x62\x49\x4d\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x62\x48\x00\x00\x4e\x7a\x00\x00\x62\x43\x00\x00\x00\x00\x00\x00\x62\x44\x62\x4a\x00\x00\x62\x46\x00\x00\x57\xf1\x5a\x66\x00\x00\x00\x00\x4e\x5c\x00\x00\x00\x00\x5a\xc2\x00\x00\x52\xf9\x00\x00\x00\x00\x67\x48\x58\xfb\x62\x45\x00\x00\x52\x96\x00\x00\x62\x4d\x49\x4f\x00\x00\x62\x52\x00\x00\x00\x00\x00\x00\x4e\xc1\x00\x00\x00\x00\x62\x4c\x4b\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8a\x62\x50\x00\x00\x00\x00\x00\x00\x4f\xa9\x57\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x94\x00\x00\x00\x00\x00\x00\x56\xe7\x00\x00\x00\x00\x62\x4f\x00\x00\x62\x51\x00\x00\x58\x47\x62\x4e\x00\x00\x57\xa8\x4e\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8c\x4f\xe4\x49\xd1\x4a\x6d\x00\x00\x49\x59\x62\x4b\x49\xd0\x4b\x4c\x4d\x7f\x4b\xe7\x00\x00\x00\x00\x58\x8c\x62\x57\x00\x00\x4e\x6c\x00\x00\x00\x00\x54\xc6\x58\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6100 */ "\x62\x58\x4a\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x49\x00\x00\x5a\x9b\x5a\x85\x00\x00\x00\x00\x00\x00\x67\x4a\x62\x59\x59\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x55\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xcf\x62\x53\x00\x00\x00\x00\x62\x56\x4c\x7f\x00\x00\x62\x54\x50\xa1\x00\x00\x00\x00\x00\x00\x62\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc7\x00\x00\x62\x5b\x00\x00\x4e\x65\x00\x00\x55\x98\x00\x00\x00\x00\x55\x86\x00\x00\x00\x00\x00\x00\x52\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x51\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x7b\x50\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5c\x00\x00\x50\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x90\x00\x00\x00\x00\x5a\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5f\x4d\xa8\x67\x4c\x00\x00\x00\x00\x62\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb5\x00\x00\x00\x00\x00\x00\x4b\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb7\x00\x00\x48\xc2\x67\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4f\x50\xc0\x00\x00\x62\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb1", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x50\x00\x00\x4c\xe9\x00\x00\x57\xeb\x65\xa6\x58\xe6\x55\xf8\x54\xd5\x58\x57\x4a\x69\x57\xd1\x4f\x85\x00\x00\x00\x00\x62\x7e\x4e\x93\x65\xa7\x5b\x5d\x00\x00\x53\xdc\x65\xa8\x00\x00\x00\x00\x00\x00\x65\xa9\x00\x00\x65\xab\x65\xaa\x00\x00\x65\xad\x65\xac\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x78\x00\x00\x65\xae\x00\x00\x51\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc0\x4a\xf6\x00\x00\x00\x00\x4e\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe5\x66\xe4\x4c\x5f\x56\x9a\x49\x83\x00\x00\x66\xe6\x00\x00\x00\x00\x00\x00\x55\x68\x66\xe7\x66\xe8\x00\x00\x55\xd5\x5f\xcf\x49\xc4\x5a\xf9\x00\x00\x00\x00\x53\xca\x48\xc6\x4a\xf1\x54\xd2\x00\x00\x00\x00\x00\x00\x57\x70\x00\x00\x00\x00\x50\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x7b\x00\x00\x00\x00\x54\x44\x5b\xb3\x00\x00\x50\xa8\x5f\xd0\x55\x48\x59\x90\x53\x44\x48\xe6\x4a\x56\x54\xc4\x00\x00\x00\x00\x48\xe1\x00\x00\x00\x00\x4c\x97\x00\x00\x00\x00\x53\x9b\x00\x00\x00\x00\x4b\xf2\x00\x00\x5b\x72\x4a\x70", /* 6280 */ "\x4e\xbb\x00\x00\x00\x00\x00\x00\x4a\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf0\x48\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd5\x55\xe2\x5c\x45\x00\x00\x57\x56\x4b\xb5\x50\x59\x5b\x7b\x00\x00\x4c\xa6\x53\x77\x00\x00\x00\x00\x00\x00\x5f\xd1\x50\x79\x51\xd4\x54\x60\x00\x00\x4e\x44\x49\x48\x00\x00\x00\x00\x53\x8b\x00\x00\x00\x00\x53\x9c\x56\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x49\x47\x00\x00\x00\x00\x00\x00\x4b\x76\x00\x00\x00\x00\x00\x00\x52\xa7\x00\x00\x5f\xd2\x59\x5a\x4a\x8a\x00\x00\x52\x93\x00\x00\x00\x00\x4c\x98\x00\x00\x5b\xf3\x4b\x43\x49\xef\x52\xb3\x52\xe8\x50\xac\x5f\xd3\x00\x00\x48\xe7\x53\x64\x51\x81\x00\x00\x4d\x75\x00\x00\x4f\xdb\x57\x78\x48\xcd\x00\x00\x57\x6f\x5f\xd5\x4f\xcf\x5c\x5e\x5f\xd4\x5b\x70\x48\xdc\x00\x00\x00\x00\x52\xe1\x00\x00\x00\x00\x51\xa2\x4e\xef\x00\x00\x5a\x55\x50\xb8\x53\x41\x49\xa5\x5a\xf0\x00\x00\x00\x00\x50\xa7\x55\xc2\x5f\xd6\x5b\x9d\x00\x00\x4d\x50\x00\x00\x54\xac\x56\x49\x00\x00\x5f\xd8\x50\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x53\xb3\x5c\x47\x55\xaf\x52\xc2", /* 6300 */ "\x00\x00\x4a\x76\x4d\x72\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb7\x65\xfb\x48\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x50\x87\x00\x00\x00\x00\x56\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x57\x7a\x00\x00\x00\x00\x00\x00\x5b\xbe\x51\xcd\x00\x00\x57\xcd\x56\xa1\x58\xad\x52\xd2\x4b\x52\x5f\xd7\x5b\x96\x4e\xb6\x4e\x73\x00\x00\x00\x00\x48\xa3\x00\x00\x53\x52\x4a\xeb\x00\x00\x00\x00\x00\x00\x5b\x92\x00\x00\x00\x00\x65\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xd9\x57\x46\x00\x00\x00\x00\x57\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe5\x5f\xdb\x00\x00\x57\x51\x50\xa5\x00\x00\x00\x00\x5c\x5d\x00\x00\x5f\xda\x48\xc5\x4d\xb3\x55\x73\x52\xf2\x4f\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xcb\x56\x91\x00\x00\x4e\xf0\x4e\x5b\x4b\x57\x00\x00\x00\x00\x00\x00\x53\x96\x00\x00\x5f\xe5\x00\x00\x00\x00\x00\x00\x5f\xe2\x4f\xdc\x00\x00\x00\x00\x5f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb6\x4f\x7d\x00\x00\x00\x00\x5f\xdf\x52\xec\x00\x00\x00\x00\x00\x00\x00\x00", /* 6380 */ "\x58\x66\x00\x00\x4b\x81\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xdd\x55\xd9\x4b\x95\x5f\xe4\x00\x00\x5b\x66\x00\x00\x5f\xe0\x56\xcc\x53\xfd\x00\x00\x53\x65\x00\x00\x00\x00\x00\x00\x59\xb3\x00\x00\x4f\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd2\x00\x00\x56\xbc\x4a\x58\x00\x00\x4f\x73\x00\x00\x50\x78\x57\x66\x59\x7a\x4a\xea\x00\x00\x5f\xe3\x5f\xdc\x5f\xe6\x00\x00\x65\xfd\x00\x00\x00\x00\x51\xaf\x5f\xe1\x00\x00\x00\x00\x5b\xbf\x4b\x47\x00\x00\x49\xf3\x00\x00\x5f\xe7\x00\x00\x5f\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xec\x00\x00\x5f\xf0\x00\x00\x00\x00\x54\xdf\x00\x00\x00\x00\x00\x00\x5c\x82\x5f\xee\x52\x89\x56\xe0\x00\x00\x49\xe4\x00\x00\x00\x00\x00\x00\x59\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xed\x00\x00\x5f\xea\x57\xd4\x00\x00\x4a\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4b\x4f\xbd\x00\x00\x00\x00\x4f\x72\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe8\x00\x00\x5a\xad\x00\x00\x5f\xdd\x00\x00\x5f\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x50\xbe\x00\x00\x5f\xeb", /* 6400 */ "\x49\xf2\x4c\xe8\x51\xa6\x00\x00\x00\x00\x4f\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf4\x5f\xf7\x00\x00\x00\x00\x49\xaa\x4a\xa3\x00\x00\x00\x00\x4a\xe9\x55\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf5\x56\x71\x00\x00\x4c\xe2\x00\x00\x5f\xf6\x5f\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf8\x00\x00\x00\x00\x00\x00\x56\xc1\x00\x00\x48\xe0\x4a\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xae\x00\x00\x00\x00\x49\xea\x00\x00\x66\x41\x00\x00\x5f\xf3\x00\x00\x00\x00\x55\x84\x5f\xf2\x48\xd9\x59\xa0\x49\x98\x00\x00\x56\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xef\x00\x00\x56\x44\x00\x00\x00\x00\x00\x00\x5b\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xdc\x00\x00\x52\xa5\x00\x00\x00\x00\x00\x00\x5f\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9f\x52\xa0\x60\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6480 */ "\x00\x00\x00\x00\x51\x6c\x00\x00\x5f\xfb\x4f\xee\x00\x00\x53\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x65\x54\xf5\x00\x00\x00\x00\x56\x5a\x5f\xfd\x00\x00\x00\x00\x60\x44\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x57\x00\x00\x00\x00\x00\x00\x00\x00\x51\x63\x00\x00\x00\x00\x54\x6b\x49\xa4\x4a\xe8\x00\x00\x5c\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xeb\x00\x00\x60\x42\x60\x43\x00\x00\x60\x45\x00\x00\x4d\xb2\x00\x00\x00\x00\x00\x00\x60\x46\x00\x00\x50\xdd\x00\x00\x00\x00\x55\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xd8\x54\x87\x00\x00\x60\x47\x00\x00\x54\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x60\x48\x66\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x73\x00\x00\x00\x00\x00\x00\x60\x4a\x00\x00\x60\x49\x00\x00\x49\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6500 */ "\x53\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xef\x00\x00\x00\x00\x60\x4d\x5b\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb6\x66\x56\x55\xd4\x00\x00\x5c\xfb\x4c\xc3\x00\x00\x4d\x45\x00\x00\x00\x00\x4c\x65\x5b\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6a\x00\x00\x00\x00\x58\xa6\x6a\xcc\x00\x00\x00\x00\x4b\x70\x00\x00\x00\x00\x52\x95\x00\x00\x4f\xc7\x00\x00\x00\x00\x00\x00\x66\x57\x48\xbc\x00\x00\x00\x00\x4f\x6c\x00\x00\x51\x52\x00\x00\x49\x76\x4a\x48\x00\x00\x00\x00\x00\x00\x4c\xd1\x55\x42\x00\x00\x00\x00\x4b\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x66\x58\x4f\xb3\x00\x00\x00\x00\x00\x00\x55\xfc\x00\x00\x54\x63\x00\x00\x5b\x9c\x00\x00\x00\x00\x4c\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc3\x00\x00\x00\x00\x00\x00\x5b\x4b\x49\x94\x00\x00\x00\x00\x00\x00\x66\xb2\x48\xde\x00\x00\x66\xb4\x00\x00\x00\x00\x00\x00\x4b\xb6\x00\x00\x51\x6f\x00\x00\x6b\x9b\x58\xb0\x00\x00\x00\x00\x5b\x86\x00\x00\x57\xd2\x00\x00\x00\x00\x4f\x90\x4a\x83\x00\x00\x4c\xaa\x00\x00\x5b\x56\x00\x00\x67\x5d\x00\x00\x4b\xce\x00\x00\x56\x59\x58\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x5d\x00\x00\x00\x00\x66\xb5\x55\xa8\x00\x00\x00\x00\x00\x00\x53\x74\x00\x00\x66\xb8\x66\xb7\x51\xc2\x66\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfc\x66\xb9\x00\x00\x66\xba\x5c\x86\x00\x00\x00\x00\x66\xbb\x00\x00\x00\x00\x00\x00\x66\xbc\x53\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xdd\x00\x00\x4e\xc7\x00\x00\x00\x00\x54\xd4\x4b\x49\x4f\xc8\x5b\xbb\x5a\xe6\x00\x00\x00\x00\x59\x4e\x58\xf0\x65\xb7\x65\xb8\x65\xb9\x4d\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb0\x50\x96\x00\x00\x00\x00\x57\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6600 */ "\x65\xbf\x00\x00\x48\xb9\x65\xbd\x00\x00\x00\x00\x50\xa4\x00\x00\x00\x00\x00\x00\x65\xba\x00\x00\x49\xfc\x00\x00\x52\x98\x4e\x89\x00\x00\x00\x00\x00\x00\x59\xd6\x57\xf3\x65\xbe\x00\x00\x00\x00\x00\x00\x65\xbb\x00\x00\x00\x00\x00\x00\x65\xc2\x00\x00\x58\xc6\x5a\x53\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb9\x00\x00\x52\x61\x5c\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x71\x00\x00\x55\xc6\x00\x00\x65\xc4\x00\x00\x00\x00\x65\xc3\x65\xc6\x65\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xe6\x00\x00\x58\x74\x00\x00\x00\x00\x65\xca\x00\x00\x4e\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9b\x55\x6e\x00\x00\x00\x00\x65\xcb\x00\x00\x00\x00\x55\x59\x58\x9f\x65\xc9\x5a\xcd\x65\xcc\x65\xce\x00\x00\x00\x00\x57\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc8\x00\x00\x65\xcd\x00\x00\x00\x00\x57\xed\x00\x00\x4e\x7e\x00\x00\x4a\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd4\x4f\xaf\x57\xf9\x00\x00\x00\x00\x00\x00\x54\x88\x00\x00\x4f\xa6\x65\xcf\x00\x00\x00\x00\x5b\xc6\x00\x00\x00\x00\x00\x00\x51\x60\x00\x00", /* 6680 */ "\x00\x00\x00\x00\x5a\xdc\x00\x00\x65\xd0\x00\x00\x00\x00\x58\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x55\xed\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4f\x48\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd2\x6a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x49\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xee\x00\x00\x65\xd5\x65\xd6\x53\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd7\x00\x00\x00\x00\x65\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xba\x00\x00\x54\x9b\x59\xb6\x4c\xfb\x00\x00\x00\x00\x65\xc1\x00\x00\x49\xdb\x00\x00\x00\x00\x51\xfb\x00\x00\x5a\xf7\x56\xe5", /* 6700 */ "\x5c\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc1\x5a\x70\x66\x63\x53\x94\x00\x00\x4c\x9f\x00\x00\x00\x00\x66\x74\x00\x00\x00\x00\x00\x00\x56\x57\x66\x7e\x00\x00\x50\xc9\x00\x00\x00\x00\x00\x00\x57\x9c\x00\x00\x4a\x4f\x00\x00\x53\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x9d\x00\x00\x52\xbd\x00\x00\x57\xb3\x52\xa8\x49\x5e\x5a\xfc\x00\x00\x55\xf4\x00\x00\x5b\xeb\x00\x00\x00\x00\x53\xd2\x4b\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x9b\x00\x00\x00\x00\x58\xdf\x00\x00\x00\x00\x55\x51\x00\x00\x5a\xd2\x54\xa7\x00\x00\x00\x00\x4c\xca\x00\x00\x64\xbd\x55\x5c\x00\x00\x00\x00\x64\xba\x00\x00\x50\xed\x58\xd2\x49\xc3\x4a\xe4\x00\x00\x64\xbb\x00\x00\x00\x00\x5b\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc4\x00\x00\x64\xbc\x55\xf7\x4c\xdb\x56\xf4\x00\x00\x00\x00\x00\x00\x50\xb3\x00\x00\x00\x00\x59\x8f\x64\xbe\x64\xc1\x00\x00\x00\x00\x4d\xbb\x00\x00\x49\x4d\x4f\x7c\x00\x00\x65\xbc\x64\xc2\x00\x00\x64\xc5\x00\x00\x64\xca\x00\x00\x00\x00\x00\x00\x00\x00\x64\xcb\x00\x00\x56\x69\x48\xe4", /* 6780 */ "\x00\x00\x4e\xaa\x00\x00\x00\x00\x4d\x59\x00\x00\x00\x00\x64\xc0\x00\x00\x57\x98\x00\x00\x64\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8e\x00\x00\x51\x76\x64\xc3\x00\x00\x52\x56\x00\x00\x4d\x9c\x5b\xa5\x64\xc7\x00\x00\x00\x00\x00\x00\x55\xdf\x5a\xe5\x00\x00\x64\xbf\x00\x00\x64\xc4\x64\xc6\x00\x00\x54\x59\x4c\x84\x00\x00\x64\xc8\x00\x00\x50\x7d\x64\xd1\x00\x00\x00\x00\x64\xd6\x00\x00\x64\xd4\x4e\xdb\x4e\xce\x64\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xdd\x00\x00\x64\xd9\x49\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd7\x52\xb2\x4c\xcb\x53\xe1\x54\xbd\x54\xe0\x00\x00\x00\x00\x00\x00\x64\xce\x64\xd3\x64\xd5\x00\x00\x4d\x92\x64\xd7\x5c\x96\x00\x00\x52\xfa\x00\x00\x64\xdb\x00\x00\x00\x00\x49\xe8\x00\x00\x00\x00\x00\x00\x64\xd0\x00\x00\x00\x00\x4e\xec\x00\x00\x00\x00\x50\x62\x64\xcc\x5b\xf8\x00\x00\x51\x99\x49\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xde\x00\x00\x55\xc0", /* 6800 */ "\x64\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x44\x00\x00\x49\x8b\x5b\x5b\x64\xcd\x64\xcf\x4b\xaf\x64\xd2\x00\x00\x64\xdc\x50\xb7\x00\x00\x55\xf6\x00\x00\x56\x48\x00\x00\x00\x00\x53\xdb\x50\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe8\x00\x00\x00\x00\x00\x00\x58\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf1\x5b\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xdf\x64\xe0\x00\x00\x00\x00\x00\x00\x59\x9a\x4d\xca\x4c\xf8\x00\x00\x00\x00\x4c\xf0\x5a\xd3\x64\xee\x00\x00\x64\xed\x64\xeb\x4d\x91\x56\xd1\x64\xe5\x57\xa5\x50\x93\x00\x00\x48\xb7\x64\xf0\x64\xef\x00\x00\x5c\x60\x00\x00\x64\xe3\x00\x00\x57\x49\x55\x43\x00\x00\x4e\x58\x4f\x7b\x64\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe1\x64\xe2\x64\xe4\x4b\x55\x64\xe6\x54\x65\x64\xea\x64\xec\x4f\x50\x5c\x4e\x00\x00\x64\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf4\x00\x00\x57\x50\x64\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6880 */ "\x00\x00\x51\x5a\x00\x00\x64\xe7\x00\x00\x52\x57\x48\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf3\x00\x00\x00\x00\x00\x00\x64\xf6\x00\x00\x00\x00\x00\x00\x4d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x52\x6e\x57\xdf\x50\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x56\x94\x00\x00\x56\xdc\x58\xb4\x00\x00\x00\x00\x55\xe0\x00\x00\x64\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xeb\x00\x00\x64\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7e\x00\x00\x53\xe4\x00\x00\x4d\x98\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf3\x00\x00\x00\x00\x5c\x78\x00\x00\x00\x00\x4e\xab\x00\x00\x53\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc3\x00\x00\x00\x00\x65\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4d\x00\x00\x65\x42\x50\xe1\x00\x00\x00\x00\x00\x00\x50\x63\x00\x00\x00\x00\x00\x00\x64\xfd\x4d\x77\x00\x00\x64\xfa\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x65\x44\x00\x00\x00\x00\x00\x00\x59\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x43\x00\x00\x5b\xb1\x5c\x55\x00\x00\x65\x47\x00\x00\x4f\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfb\x64\xfc\x00\x00\x00\x00\x00\x00\x65\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x76\x00\x00\x00\x00\x59\xab\x00\x00\x00\x00\x00\x00\x65\x52\x00\x00\x00\x00\x00\x00\x00\x00\x65\x49\x00\x00\x00\x00\x00\x00\x4a\xa9\x00\x00\x4a\xba\x00\x00\x00\x00\x65\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa7\x00\x00\x00\x00\x65\x45\x00\x00\x00\x00\x4a\x9f\x00\x00\x00\x00\x65\x4c\x50\xe2\x00\x00\x65\x4a\x00\x00\x00\x00\x65\x59\x00\x00\x00\x00\x65\x58\x00\x00\x00\x00\x00\x00\x00\x00\x65\x4e\x00\x00\x00\x00\x64\xf9\x00\x00\x00\x00\x65\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4c\x65\x51\x65\x5a\x00\x00\x00\x00\x51\xa4\x00\x00\x00\x00\x00\x00", /* 6980 */ "\x65\x4f\x00\x00\x4c\xc4\x00\x00\x65\x4d\x00\x00\x5a\x7c\x65\x54\x65\x55\x65\x57\x00\x00\x00\x00\x00\x00\x65\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xc5\x65\x65\x00\x00\x00\x00\x65\x50\x00\x00\x00\x00\x65\x5b\x48\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5c\x5b\x45\x00\x00\x00\x00\x65\x5e\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x65\x61\x00\x00\x00\x00\x51\x92\x00\x00\x00\x00\x54\xb5\x00\x00\x00\x00\x00\x00\x65\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x63\x00\x00\x65\x53\x00\x00\x65\x56\x00\x00\x4e\x51\x00\x00\x00\x00\x00\x00\x65\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf6\x00\x00\x00\x00\x00\x00\x65\x64\x65\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xda\x00\x00\x65\x68", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6b\x65\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x61\x00\x00\x52\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x78\x00\x00\x4d\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x65\x69\x00\x00\x5a\x43\x00\x00\x00\x00\x00\x00\x65\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x77\x65\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6f\x00\x00\x00\x00\x54\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x79\x4a\x68\x00\x00\x65\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x91\x00\x00\x00\x00\x00\x00\x65\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x76\x00\x00\x00\x00\x65\x7a\x00\x00\x00\x00\x00\x00", /* 6a80 */ "\x56\xb3\x00\x00\x00\x00\x00\x00\x58\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x75\x00\x00\x65\x7c\x65\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7d\x00\x00\x65\x7f\x52\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x57\x4a\xcd\x4e\x56\x58\xbf\x66\xa2\x00\x00\x00\x00\x53\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa3\x00\x00\x66\xa4\x53\xda\x00\x00\x00\x00\x00\x00\x50\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa5\x00\x00\x00\x00\x66\xa6\x58\xa9\x00\x00\x54\x58\x00\x00\x00\x00\x4c\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb8\x5b\x9e\x4a\xca\x49\xbc\x57\xe3\x53\xe6\x00\x00\x00\x00\x57\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf4\x00\x00\x56\x60\x4e\xde\x00\x00\x00\x00\x00\x00", /* 6b80 */ "\x00\x00\x65\x83\x65\x84\x59\x8b\x65\x86\x00\x00\x4a\xf8\x65\x85\x00\x00\x59\x53\x55\xe1\x49\xcf\x00\x00\x65\x89\x00\x00\x00\x00\x00\x00\x00\x00\x65\x87\x65\x88\x00\x00\x00\x00\x5b\xb2\x00\x00\x00\x00\x00\x00\x65\x8a\x65\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xae\x53\x59\x4b\xcd\x00\x00\x59\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8f\x00\x00\x4e\x79\x66\xb0\x00\x00\x00\x00\x59\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe2\x00\x00\x52\xb7\x00\x00\x52\x5f\x00\x00\x00\x00\x4b\xbd\x5c\xb8\x49\x68\x49\x6f\x49\x71\x53\x9f\x00\x00\x49\x70\x00\x00\x52\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x44\x4d\xc0\x00\x00\x00\x00\x00\x00\x56\xb9\x00\x00\x00\x00\x00\x00\x66\x45\x00\x00\x66\x47\x00\x00\x00\x00\x00\x00\x66\x48\x00\x00\x00\x00\x00\x00\x66\x46\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x49\x66\x4b\x66\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4c\x00\x00\x55\xce\x5c\xb4\x52\x92\x00\x00\x52\x45\x53\xf7\x66\x4d\x52\xc9\x00\x00\x66\x4e\x66\x4f\x66\x50\x4c\x75\x00\x00\x00\x00\x00\x00\x4c\x9b\x00\x00\x66\x51\x54\x83\x00\x00\x66\x53\x00\x00\x4d\xa3\x59\x96\x48\xb0\x66\x52\x66\x54\x00\x00\x00\x00\x00\x00\x4b\x4a\x51\xc7\x54\x89\x00\x00\x66\x55\x00\x00\x56\x4e\x62\x7f\x00\x00\x00\x00\x5a\x60\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x7b\x00\x00\x00\x00\x57\x41\x5b\xac\x54\x94\x00\x00\x00\x00\x00\x00\x5d\x81\x4e\x84\x00\x00\x4d\xb9\x62\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x4b\x00\x00\x00\x00\x00\x00\x62\x81\x55\x67\x00\x00\x4d\xb8\x00\x00\x00\x00\x00\x00\x59\x54\x62\x82\x54\xe9\x4d\x4f\x4f\x4d\x4a\x78\x57\xda\x00\x00\x00\x00\x56\xbf\x00\x00\x00\x00\x00\x00\x62\x89\x62\x8a\x57\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xac\x00\x00\x4e\xb2\x00\x00\x62\x8b\x00\x00\x62\x8c\x00\x00\x00\x00\x58\xd9\x00\x00\x00\x00\x00\x00\x53\xfa\x4c\x7a\x00\x00", /* 6c80 */ "\x00\x00\x54\x7f\x59\xc9\x57\xd5\x00\x00\x62\x85\x62\x8d\x00\x00\x55\x93\x4a\x61\x00\x00\x00\x00\x62\x88\x00\x00\x00\x00\x53\xe2\x62\x86\x00\x00\x00\x00\x67\x53\x62\x87\x00\x00\x00\x00\x00\x00\x00\x00\x55\x53\x00\x00\x53\x87\x00\x00\x00\x00\x00\x00\x4d\x55\x00\x00\x52\x5b\x00\x00\x62\x84\x53\x5d\x51\x44\x51\xd8\x49\xd6\x00\x00\x62\x8e\x4e\x46\x52\xac\x00\x00\x62\x91\x4f\xd9\x00\x00\x00\x00\x62\x9c\x62\x96\x4d\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x70\x5a\x6d\x00\x00\x5b\xcd\x5b\x73\x4d\x61\x5b\x54\x59\x78\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb8\x54\x97\x00\x00\x00\x00\x00\x00\x54\xa9\x49\xb3\x00\x00\x52\x7a\x00\x00\x00\x00\x00\x00\x62\x8f\x00\x00\x00\x00\x62\x9d\x62\x90\x4c\x48\x62\x98\x62\x95\x00\x00\x00\x00\x00\x00\x4c\x5a\x00\x00\x00\x00\x53\x42\x00\x00\x62\x97\x53\x7d\x49\xa7\x53\xfb\x00\x00\x52\xdf\x00\x00\x00\x00\x5c\x42\x00\x00\x50\xe0\x62\x9a\x00\x00\x00\x00\x62\x9b\x62\x9e\x56\xa8\x62\x94\x00\x00\x5a\x5e\x00\x00\x49\x63\x67\x54\x62\x92\x62\x93\x00\x00\x62\x99\x58\xb9\x53\xc2\x5a\xf2\x62\x9f\x00\x00", /* 6d00 */ "\x00\x00\x4f\x81\x00\x00\x00\x00\x62\xa6\x00\x00\x00\x00\x62\xa5\x00\x00\x00\x00\x00\x00\x59\x94\x62\xa2\x00\x00\x62\xa8\x00\x00\x00\x00\x00\x00\x54\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x58\x54\x00\x00\x62\xa7\x62\xad\x51\xe4\x00\x00\x00\x00\x4b\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x93\x00\x00\x62\xa1\x00\x00\x00\x00\x4d\xe8\x62\xa9\x00\x00\x00\x00\x62\xab\x00\x00\x00\x00\x4b\xfc\x5b\xdd\x62\xb1\x00\x00\x62\xac\x00\x00\x00\x00\x00\x00\x62\xa0\x00\x00\x4e\x8f\x57\x7d\x54\x42\x53\x69\x00\x00\x00\x00\x51\x98\x00\x00\x62\xa3\x00\x00\x54\x53\x4f\x4c\x4f\x5d\x62\xa4\x00\x00\x5c\x67\x49\xe1\x00\x00\x62\xaa\x4e\xc2\x62\xae\x00\x00\x4e\x8c\x62\xaf\x53\x48\x62\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x84\x50\x43\x00\x00\x62\xb9\x00\x00\x62\xb6\x00\x00\x62\xba\x00\x00\x00\x00\x62\xbc\x00\x00\x00\x00\x53\xd5\x00\x00\x00\x00\x4d\xc5\x50\xca\x00\x00\x00\x00\x00\x00\x4c\xa0\x62\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa0\x00\x00\x00\x00\x4d\xa2\x4f\x9f\x00\x00\x00\x00\x00\x00\x62\xbb\x00\x00\x00\x00\x00\x00", /* 6d80 */ "\x00\x00\x00\x00\x57\x5f\x00\x00\x00\x00\x52\xf8\x00\x00\x00\x00\x58\x9c\x55\x87\x00\x00\x00\x00\x5a\x5f\x00\x00\x58\x71\x00\x00\x00\x00\x62\xb2\x00\x00\x62\xb7\x62\xb8\x56\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xcd\x00\x00\x50\xd3\x62\xb4\x51\x50\x62\xb5\x57\xcf\x00\x00\x4e\x61\x4b\x73\x00\x00\x54\xf2\x4f\x47\x5b\x67\x55\x4c\x4c\xa1\x62\xc9\x00\x00\x00\x00\x62\xcb\x59\x64\x00\x00\x00\x00\x59\xb9\x00\x00\x00\x00\x4d\xac\x00\x00\x00\x00\x4d\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc2\x4b\x8e\x00\x00\x00\x00\x00\x00\x5c\x6d\x62\xbf\x58\x9e\x62\xbe\x00\x00\x00\x00\x00\x00\x51\x7c\x56\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd6\x00\x00\x56\xd3\x62\xc7\x00\x00\x00\x00\x00\x00\x62\xc6\x62\xc0\x00\x00\x62\xc3\x4b\x4d\x00\x00\x00\x00\x5a\x79\x00\x00\x62\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf8\x4a\xe2\x00\x00\x4e\x54\x00\x00\x00\x00\x55\x8f\x00\x00\x4a\xbd\x00\x00\x00\x00\x00\x00\x4e\x8d\x00\x00\x59\x6d\x00\x00\x56\xec\x67\x55\x00\x00\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x86\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa7\x00\x00\x62\xca\x5c\x75\x62\xc1\x00\x00\x4f\x45\x62\xc4\x00\x00\x00\x00\x5a\x87\x00\x00\x62\xc8\x55\x99\x00\x00\x00\x00\x62\xbd\x00\x00\x00\x00\x5a\x86\x00\x00\x00\x00\x54\x9f\x4b\xc8\x00\x00\x5a\xfb\x49\xb2\x62\xd6\x00\x00\x00\x00\x00\x00\x57\xc1\x00\x00\x62\xcc\x00\x00\x57\xbb\x00\x00\x4c\xda\x00\x00\x00\x00\x62\xd5\x00\x00\x50\x6a\x00\x00\x00\x00\x00\x00\x5a\x6e\x00\x00\x52\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x68\x62\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x64\x62\xce\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x62\xd4\x00\x00\x4d\xfd\x00\x00\x58\x87\x00\x00\x00\x00\x5b\x5f\x00\x00\x00\x00\x00\x00\x62\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcf\x00\x00\x00\x00\x62\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x86\x55\xa9", /* 6e80 */ "\x00\x00\x00\x00\x00\x00\x50\xa2\x00\x00\x4f\x46\x62\xd2\x00\x00\x00\x00\x4c\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe6\x5a\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xda\x00\x00\x00\x00\x00\x00\x51\x90\x00\x00\x00\x00\x62\xe8\x00\x00\x00\x00\x59\xe6\x00\x00\x00\x00\x62\xde\x00\x00\x62\xdf\x00\x00\x00\x00\x58\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7d\x00\x00\x62\xd9\x62\xd0\x00\x00\x62\xe4\x00\x00\x54\xdb\x62\xe2\x00\x00\x00\x00\x52\xe6\x62\xe1\x00\x00\x62\xe0\x00\x00\x00\x00\x00\x00\x4a\x9d\x62\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x82\x00\x00\x00\x00\x00\x00\x5c\x6c\x00\x00\x00\x00\x00\x00\x62\xe5\x00\x00\x4e\x4c\x00\x00\x5c\x72\x56\xce\x66\x99\x00\x00\x62\xe3\x00\x00\x00\x00\x4d\x97\x00\x00\x00\x00\x00\x00\x5b\xcc\x62\xd8\x62\xdb\x51\xf9\x62\xdd\x00\x00\x51\xca\x50\xc3\x51\xcf\x00\x00\x49\x96\x56\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x62\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x53\xae\x00\x00\x00\x00\x00\x00\x53\xe0\x00\x00\x00\x00\x62\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xa8\x00\x00\x00\x00\x00\x00\x50\xeb\x59\x7d\x62\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xad\x00\x00\x00\x00\x00\x00\x62\xec\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf5\x62\xf3\x51\xfd\x00\x00\x62\xdc\x00\x00\x62\xef\x00\x00\x55\xfd\x00\x00\x5b\x64\x00\x00\x00\x00\x62\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xea\x62\xeb\x00\x00\x00\x00\x00\x00\x62\xf1\x00\x00\x57\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6b\x00\x00\x00\x00\x00\x00\x54\x51\x00\x00\x51\xb9\x00\x00\x00\x00\x00\x00\x62\xe9\x00\x00\x00\x00\x00\x00\x51\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb5\x4a\x51\x00\x00\x00\x00\x00\x00\x62\xfa\x00\x00\x62\xf2\x00\x00\x00\x00\x00\x00\x62\xf9\x00\x00\x62\xfc\x00\x00\x62\xfb\x00\x00\x00\x00\x00\x00", /* 6f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6e\x00\x00\x00\x00\x00\x00\x4a\x5a\x62\xf6\x00\x00\x00\x00\x62\xf8\x62\xf7\x53\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc3\x00\x00\x00\x00\x63\x44\x00\x00\x00\x00\x63\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xa3\x00\x00\x63\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xfd\x49\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x48\x00\x00\x63\x49\x63\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x47\x63\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4b\x63\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4f\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x81\x00\x00\x00\x00\x63\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x91\x66\xe0\x52\x91\x00\x00\x4b\x66\x4e\x72\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8a\x5a\xed\x00\x00\x4f\xc3\x00\x00\x00\x00\x00\x00\x5c\x66\x00\x00\x5a\xd5\x49\xd2", /* 7080 */ "\x66\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc0\x00\x00\x00\x00\x00\x00\x51\xae\x4a\xb5\x00\x00\x00\x00\x00\x00\x59\x77\x00\x00\x00\x00\x00\x00\x4a\x54\x00\x00\x54\xb1\x50\x5b\x66\xbf\x00\x00\x00\x00\x5b\xca\x00\x00\x00\x00\x66\xbe\x66\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc4\x4f\xe5\x56\xbe\x53\x7a\x4f\xbb\x00\x00\x66\xc5\x00\x00\x49\x9f\x00\x00\x00\x00\x00\x00\x66\xc3\x5b\x48\x4b\x84\x00\x00\x66\xc1\x51\x56\x4a\x84\x00\x00\x00\x00\x66\xc2\x56\x58\x50\xc2\x56\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x51\x72\x00\x00\x66\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe5\x50\xd2\x00\x00\x5b\xf1\x00\x00\x00\x00\x00\x00\x59\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x4c\x53\x55\x75\x66\xc6\x4e\x83\x00\x00\x56\xcb\x4f\x9e\x54\xc7\x00\x00\x58\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x8a\x00\x00\x53\x8c\x00\x00\x00\x00\x00\x00\x4c\x8a\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x69\x4d\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc8\x00\x00\x00\x00\x66\xc9\x00\x00\x4e\x60\x66\xca\x00\x00\x66\xe1\x49\x5a\x4c\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xcb\x59\x87\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x54\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd2\x00\x00\x4e\x6d\x00\x00\x4e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xce\x00\x00\x55\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x5a\x00\x00\x66\xe2\x5b\x75\x66\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf2\x00\x00\x00\x00\x00\x00\x66\xd1\x66\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd3\x00\x00\x66\xd4\x00\x00\x00\x00\x55\x5f\x00\x00\x00\x00", /* 7180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x58\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x59\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x54\xda\x00\x00\x00\x00\x00\x00\x66\xd5\x57\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xeb\x66\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd8\x00\x00\x00\x00\x00\x00\x48\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd6\x00\x00\x66\xd7\x00\x00\x00\x00\x00\x00\x66\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdb\x59\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xda\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xee\x00\x00\x66\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdf\x00\x00\x5c\x46\x00\x00\x53\x60\x00\x00\x00\x00\x00\x00\x66\x5c\x48\xad\x00\x00\x00\x00\x00\x00\x4f\xf3\x4c\xb7\x59\xae\x48\xd5\x4b\x9a\x00\x00\x5c\xb2\x00\x00\x56\x4c\x00\x00\x62\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xab\x48\xe5\x00\x00\x00\x00\x00\x00\x53\x66\x66\x59\x00\x00\x00\x00\x00\x00\x00\x00\x66\x5a\x00\x00\x00\x00\x00\x00\x66\x5b\x00\x00\x00\x00\x59\x60\x00\x00\x53\x43\x00\x00\x65\xf1\x00\x00\x52\xb1\x00\x00\x52\xb4\x50\xcd\x00\x00\x00\x00\x00\x00\x65\xf2\x52\xc0\x00\x00\x57\xee\x00\x00\x00\x00\x00\x00\x00\x00\x65\xef\x65\xf3\x00\x00\x00\x00\x55\x9d\x00\x00\x00\x00\x54\x43\x00\x00\x00\x00\x00\x00\x56\xd7\x57\xfd\x00\x00\x00\x00\x00\x00\x65\xf4\x65\xf5", /* 7280 */ "\x58\x4c\x50\xe6\x00\x00\x00\x00\x65\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbe\x65\xf7\x00\x00\x65\xf8\x00\x00\x65\xf9\x00\x00\x00\x00\x65\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xad\x61\x8c\x00\x00\x4c\x58\x61\x8d\x00\x00\x00\x00\x00\x00\x61\x8e\x00\x00\x5c\x54\x61\x8f\x61\x90\x5a\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x92\x50\x92\x61\x91\x4b\x72\x00\x00\x00\x00\x00\x00\x49\x57\x00\x00\x00\x00\x00\x00\x00\x00\x61\x94\x61\x93\x00\x00\x4d\xfb\x00\x00\x61\x95\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x57\x00\x00\x4f\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x52\xfb\x00\x00\x4d\xdc\x4f\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x96\x61\x98\x00\x00\x00\x00\x4b\xbf\x58\x61\x55\xa7\x61\x97\x5b\x99\x5a\x9d\x61\x99\x61\x9d\x61\x9a\x00\x00\x00\x00\x61\x9b\x50\xe9\x00\x00\x61\x9f\x61\xa0\x50\xc6\x00\x00\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x61\x9c\x00\x00\x61\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa4\x00\x00\x00\x00\x00\x00\x51\x74\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa2\x00\x00\x61\xa7\x49\xfd\x61\xa1\x00\x00\x00\x00\x00\x00\x52\x6d\x49\xc1\x61\xa6\x61\xa5\x00\x00\x00\x00\x61\xa3\x61\xa8\x00\x00\x00\x00\x61\xaa\x00\x00\x00\x00\x00\x00\x58\xc8\x5b\xec\x52\x48\x61\xab\x00\x00\x58\x77\x00\x00\x00\x00\x61\xad\x00\x00\x00\x00\x4d\xee\x00\x00\x00\x00\x65\x81\x61\xac\x61\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4b\x5a\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xaf\x00\x00\x00\x00\x61\xae\x00\x00\x65\x82\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb2\x56\xa0\x00\x00\x61\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb4\x00\x00", /* 7380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x00\x00\x00\x00\x51\xc9\x00\x00\x5a\x92\x00\x00\x57\x96\x00\x00\x00\x00\x64\x81\x00\x00\x00\x00\x64\x82\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe9\x00\x00\x00\x00\x00\x00\x64\x85\x00\x00\x00\x00\x64\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x87\x00\x00\x52\x55\x00\x00\x00\x00\x64\x83\x4e\x57\x58\x76\x00\x00\x51\x82\x64\x8a\x00\x00\x00\x00\x00\x00\x64\x89\x00\x00\x00\x00\x64\x95\x49\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8b\x00\x00\x64\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8d\x64\x8c\x55\x5a\x00\x00\x00\x00\x5b\x85\x00\x00\x64\x86\x4c\x49\x64\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x94\x00\x00\x5b\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8e\x00\x00\x64\x93\x00\x00\x64\x92\x00\x00\x00\x00\x00\x00\x48\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x64\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x54\x93\x00\x00\x50\xc4\x50\xec\x00\x00\x00\x00\x51\x91\x64\x91\x00\x00\x00\x00\x00\x00\x00\x00\x64\x97\x56\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x61\x00\x00\x00\x00\x64\x9b\x64\x9a\x00\x00\x64\x9c\x00\x00\x64\x98\x00\x00\x64\x9f\x00\x00\x64\x9e\x00\x00\x64\x9d\x00\x00\x00\x00\x51\x75\x54\x79\x53\x9e\x53\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa5\x00\x00\x64\xa4\x00\x00\x64\xa6\x4d\xf6\x64\x99\x64\xa3\x00\x00\x54\xef\x55\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa8\x00\x00\x00\x00\x4d\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9f\x64\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa9\x00\x00", /* 7480 */ "\x64\xac\x64\xad\x00\x00\x51\x47\x00\x00\x00\x00\x00\x00\x64\xae\x00\x00\x00\x00\x00\x00\x64\xaf\x00\x00\x00\x00\x64\xab\x00\x00\x64\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xaa\x00\x00\x64\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb4\x64\xb1\x64\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6f\x00\x00\x68\xab\x00\x00\x68\xac\x00\x00\x53\xaf\x48\xe9\x54\xbe\x00\x00\x57\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcc\x65\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb1\x00\x00\x53\xbe\x4a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb2", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9a\x00\x00\x65\xb3\x00\x00\x65\xb4\x00\x00\x65\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc9\x60\x50\x55\x96\x00\x00\x56\xef\x00\x00\x00\x00\x55\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9c\x00\x00\x00\x00\x5a\x63\x56\x46\x00\x00\x4c\xa5\x68\xad\x49\x62\x00\x00\x63\x58\x56\xee\x5a\x69\x4e\xd6\x55\x8b\x00\x00\x4b\x88\x00\x00\x52\xcf\x4b\x8a\x00\x00\x67\xad\x4e\x4d\x00\x00\x00\x00\x64\x7e\x00\x00\x67\xae\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x49\x00\x00\x00\x00\x67\xb1\x00\x00\x00\x00\x67\xb0\x4f\x88\x00\x00\x67\xaf\x57\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x51\x95\x5e\x6e\x67\xb2\x58\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd3\x53\xe7\x00\x00\x00\x00\x00\x00\x4c\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb3\x00\x00\x4a\x8c\x00\x00\x00\x00\x00\x00\x4e\x9c\x67\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7c", /* 7580 */ "\x00\x00\x00\x00\x00\x00\x67\xb5\x00\x00\x00\x00\x4f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x69\x83\x00\x00\x00\x00\x00\x00\x55\xe7\x00\x00\x59\xc8\x68\xd9\x00\x00\x68\xda\x00\x00\x68\xdb\x51\x66\x00\x00\x4c\xec\x4f\xcd\x00\x00\x00\x00\x68\xdd\x00\x00\x53\x51\x68\xdc\x59\x92\x00\x00\x68\xdf\x48\xcb\x4f\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xde\x68\xde\x00\x00\x4a\xae\x4c\x89\x68\xe5\x68\xe4\x53\xa2\x68\xe0\x68\xe1\x4a\xc2\x00\x00\x00\x00\x68\xe2\x5b\x8f\x00\x00\x00\x00\x56\xda\x4f\xd1\x4e\xb1\x00\x00\x00\x00\x00\x00\x68\xe7\x68\xe6\x68\xe3\x49\xa0\x00\x00\x5b\xa1\x5a\x58\x4f\xb6\x54\xab\x00\x00\x00\x00\x68\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x59\x98\x00\x00\x5b\xcb\x4d\xda\x68\xe8\x00\x00\x4b\xba\x00\x00\x00\x00\x57\x54\x00\x00\x00\x00\x53\xa5\x00\x00\x00\x00\x00\x00\x51\x41\x68\xea\x68\xed\x00\x00\x68\xec\x68\xef\x68\xeb\x00\x00\x4e\x5e\x68\xee\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb4\x68\xf1\x00\x00\x00\x00\x4a\x75\x00\x00\x00\x00\x00\x00\x00\x00\x49\x74\x00\x00\x00\x00\x68\xf2\x00\x00\x00\x00\x68\xf3", /* 7600 */ "\x68\xf5\x4a\xe0\x00\x00\x68\xf0\x00\x00\x68\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x68\xf9\x00\x00\x68\xf7\x00\x00\x00\x00\x00\x00\x68\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x68\xfc\x00\x00\x68\xf8\x68\xfb\x68\xfd\x00\x00\x69\x41\x00\x00\x00\x00\x00\x00\x57\xc0\x69\x44\x00\x00\x69\x43\x00\x00\x51\x97\x68\xfa\x55\xdc\x00\x00\x00\x00\x4a\xf0\x49\x92\x56\xb0\x00\x00\x69\x46\x00\x00\x00\x00\x69\x47\x00\x00\x00\x00\x69\x4c\x5b\x6e\x69\x49\x00\x00\x00\x00\x54\xb2\x00\x00\x00\x00\x00\x00\x69\x42\x00\x00\x69\x4b\x69\x48\x69\x45\x00\x00\x00\x00\x69\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xa8\x69\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4f\x00\x00\x69\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x50\x00\x00\x69\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x59\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x52\x00\x00\x00\x00\x00\x00\x69\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x90\x00\x00\x00\x00\x4b\x67\x00\x00\x48\xd6\x48\xd8\x00\x00", /* 7680 */ "\x00\x00\x00\x00\x5a\xec\x00\x00\x4b\x64\x00\x00\x4f\x74\x4e\x6a\x68\xa6\x00\x00\x00\x00\x4c\xdd\x00\x00\x00\x00\x68\xa7\x00\x00\x00\x00\x48\xa7\x00\x00\x68\xa8\x00\x00\x00\x00\x57\x8f\x00\x00\x00\x00\x68\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa3\x00\x00\x00\x00\x5b\xe4\x69\x85\x00\x00\x69\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x94\x00\x00\x00\x00\x5a\x7b\x00\x00\x00\x00\x5b\xd0\x53\x89\x00\x00\x5a\x4f\x00\x00\x59\xe5\x00\x00\x00\x00\x67\xc0\x48\xba\x5b\x55\x59\x6e\x4e\xdf\x4d\xcf\x00\x00\x50\x99\x00\x00\x4c\xc6\x4b\x61\x53\x6c\x00\x00\x00\x00\x55\xa1\x00\x00\x00\x00\x00\x00\x52\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xbe\x4b\xa1\x00\x00\x67\x8d\x52\x44\x00\x00\x5b\xb0\x00\x00\x00\x00\x00\x00\x58\x81\x67\x90\x00\x00\x00\x00\x53\x6e\x00\x00\x4b\xdb\x00\x00", /* 7700 */ "\x00\x00\x55\xa0\x00\x00\x00\x00\x67\x8e\x00\x00\x00\x00\x67\x91\x67\x92\x52\x5c\x00\x00\x50\x54\x00\x00\x67\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x95\x67\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x87\x52\x7f\x00\x00\x67\x94\x00\x00\x00\x00\x00\x00\x67\x97\x00\x00\x5b\x43\x59\x43\x00\x00\x00\x00\x00\x00\x67\x96\x00\x00\x52\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x98\x50\x95\x4f\xeb\x67\x99\x00\x00\x56\xf6\x00\x00\x59\x7b\x00\x00\x00\x00\x00\x00\x5c\x65\x5b\x97\x00\x00\x67\x9d\x00\x00\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9a\x67\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9e\x4f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x4f\x67\xa0\x4b\xbc\x00\x00\x67\xa1\x52\xbf\x00\x00\x67\x9f\x00\x00\x00\x00\x4f\x7e\x49\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc2\x00\x00\x00\x00\x00\x00\x67\xa4\x5c\xb9\x67\xa2", /* 7780 */ "\x67\xa5\x00\x00\x00\x00\x00\x00\x52\x8a\x4a\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa6\x67\xa3\x58\x59\x00\x00\x00\x00\x67\xa7\x51\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa8\x67\xa9\x00\x00\x5f\xaa\x00\x00\x00\x00\x53\xb2\x00\x00\x54\x66\x00\x00\x5b\xf4\x4b\x69\x00\x00\x56\x52\x00\x00\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x57\x4b\x00\x00\x67\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x50\x00\x00\x67\xac\x00\x00\x6b\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa2\x00\x00\x00\x00\x00\x00\x52\x4c\x69\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb7\x59\xd2\x00\x00\x5b\xa9\x00\x00\x68\x93\x00\x00\x4f\xd7\x00\x00\x4f\x63\x68\x94\x4b\xcb\x48\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x55\xae\x00\x00\x00\x00\x67\x56\x00\x00\x67\x57\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf8\x4c\x4f\x50\x94", /* 7800 */ "\x67\x58\x51\xea\x55\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x59\x00\x00\x00\x00\x53\xf5\x50\x53\x00\x00\x00\x00\x00\x00\x67\x5c\x53\x99\x00\x00\x59\x70\x00\x00\x5c\x49\x67\x5a\x67\x5b\x00\x00\x59\x83\x00\x00\x67\x5f\x67\x60\x00\x00\x67\x64\x00\x00\x00\x00\x00\x00\x67\x68\x00\x00\x67\x66\x67\x6e\x5b\x89\x00\x00\x67\x69\x00\x00\x00\x00\x67\x67\x67\x5e\x00\x00\x00\x00\x53\x8a\x00\x00\x00\x00\x00\x00\x53\xc5\x00\x00\x00\x00\x55\x8a\x5a\xd1\x67\x61\x67\x62\x67\x63\x67\x65\x00\x00\x50\xf8\x00\x00\x4a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x89\x00\x00\x67\x70\x00\x00\x00\x00\x00\x00\x00\x00\x67\x71\x00\x00\x67\x6a\x00\x00\x67\x6f\x00\x00\x57\xf7\x00\x00\x00\x00\x56\x56\x67\x6c\x67\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x72\x51\x93\x5a\x52\x67\x6b\x54\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xee\x00\x00\x00\x00\x00\x00\x00\x00\x53\x91\x00\x00\x00\x00\x00\x00", /* 7880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x76\x00\x00\x4b\x90\x00\x00\x00\x00\x51\xb4\x48\xac\x56\x8a\x00\x00\x00\x00\x49\x4e\x00\x00\x67\x74\x00\x00\x00\x00\x00\x00\x57\x8c\x4b\x83\x00\x00\x67\x75\x67\x73\x67\x77\x00\x00\x00\x00\x4b\x9b\x00\x00\x67\x78\x00\x00\x67\x79\x00\x00\x67\x7c\x00\x00\x49\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x97\x4e\xed\x67\x7a\x56\xbb\x49\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xea\x00\x00\x00\x00\x4a\xc4\x00\x00\x00\x00\x00\x00\x48\xf4\x00\x00\x00\x00\x00\x00\x67\x7f\x50\xd9\x4a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6d\x00\x00\x00\x00\x00\x00\x67\x7d\x50\x64\x00\x00\x00\x00\x00\x00\x67\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa4\x00\x00\x00\x00\x00\x00\x67\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x82\x00\x00\x67\x84\x00\x00\x00\x00\x51\x77\x00\x00\x00\x00\x4e\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x4f\x58\x00\x00\x00\x00\x00\x00\x67\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbd\x66\xe9\x50\xf0\x00\x00\x55\x88\x00\x00\x66\xea\x53\xed\x00\x00\x00\x00\x00\x00\x00\x00\x66\xeb\x00\x00\x53\xec\x66\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xef\x00\x00\x00\x00\x5c\x87\x66\xf2\x00\x00\x00\x00\x66\xf0\x66\xed\x66\xee\x5c\x43\x55\x92\x56\x8f\x66\xf3\x00\x00\x66\xf1\x00\x00\x00\x00\x58\x8a\x00\x00\x66\xf5\x53\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbf\x00\x00\x66\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x5b\x4e\x97\x00\x00\x66\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7980 */ "\x5d\x98\x4f\x9c\x00\x00\x00\x00\x51\xba\x66\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8e\x5c\xad\x50\xea\x00\x00\x54\x7d\x4d\xcb\x00\x00\x58\xe2\x56\x5d\x00\x00\x57\x5a\x00\x00\x00\x00\x4c\xd0\x00\x00\x00\x00\x49\x9d\x00\x00\x54\x90\x00\x00\x5b\xd5\x00\x00\x00\x00\x00\x00\x50\x66\x52\x8c\x00\x00\x00\x00\x68\x96\x00\x00\x00\x00\x52\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x83\x00\x00\x00\x00\x00\x00\x68\x98\x4a\x73\x00\x00\x54\x78\x59\x8e\x00\x00\x5b\xc7\x00\x00\x68\x99\x00\x00\x68\x97\x00\x00\x4e\x9e\x4a\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x75\x00\x00\x00\x00\x59\xc5\x00\x00\x4e\x81\x00\x00\x00\x00", /* 7a00 */ "\x58\x41\x00\x00\x68\x9d\x68\x9c\x00\x00\x00\x00\x68\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6c\x00\x00\x55\x74\x56\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x9f\x00\x00\x00\x00\x48\xdd\x00\x00\x00\x00\x5b\xc8\x00\x00\x00\x00\x00\x00\x68\x9e\x00\x00\x4a\x8e\x00\x00\x00\x00\x6b\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc7\x00\x00\x00\x00\x00\x00\x68\xa1\x00\x00\x68\xa0\x00\x00\x4b\x5e\x4e\xd9\x4e\x9d\x00\x00\x4c\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa5\x00\x00\x00\x00\x00\x00\x59\x48\x00\x00\x4f\xbe\x54\x8f\x69\x56\x69\x57\x50\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa8", /* 7a80 */ "\x69\x58\x57\x5b\x00\x00\x54\x74\x5b\x4d\x00\x00\x69\x59\x00\x00\x69\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6f\x00\x00\x00\x00\x00\x00\x59\xa3\x5b\xce\x00\x00\x00\x00\x69\x5b\x4f\x71\x4a\xaf\x4f\xbc\x00\x00\x00\x00\x00\x00\x4a\xdb\x57\xd0\x00\x00\x50\x7f\x69\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9b\x69\x5c\x00\x00\x69\x5f\x00\x00\x00\x00\x00\x00\x69\x5e\x69\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf9\x00\x00\x00\x00\x5b\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb9\x4f\xb8\x5b\x62\x00\x00\x00\x00\x50\x42\x00\x00\x57\x4f\x69\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7f\x00\x00\x4b\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf0\x6a\x63\x00\x00\x00\x00\x6a\x64\x00\x00\x4c\xcc", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x6a\x66\x6a\x67\x00\x00\x48\xc9\x00\x00\x6a\x65\x00\x00\x6a\x69\x56\x92\x00\x00\x00\x00\x00\x00\x6a\x6b\x00\x00\x58\xa5\x00\x00\x00\x00\x49\x6a\x6a\x68\x00\x00\x00\x00\x00\x00\x6a\x6f\x00\x00\x4b\x71\x00\x00\x00\x00\x6a\x77\x00\x00\x6a\x72\x00\x00\x00\x00\x00\x00\x6a\x74\x6a\x73\x4c\x9c\x00\x00\x49\x5f\x00\x00\x6a\x6e\x6a\x6a\x4b\x7a\x00\x00\x6a\x70\x00\x00\x00\x00\x6a\x71\x00\x00\x6a\x75\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x6d\x00\x00\x4e\xe2\x00\x00\x51\x9e\x00\x00\x6a\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x7a\x00\x00\x6a\x6c\x00\x00\x4b\x68\x00\x00\x4f\x8f\x6a\x7c\x00\x00\x00\x00\x4c\x44\x50\x91\x5b\xfd\x57\x52\x00\x00\x4a\xef\x00\x00\x49\xde\x00\x00\x6a\x78\x00\x00\x6a\x79\x55\x58\x00\x00\x6a\x7d\x00\x00\x00\x00\x6a\x7e\x00\x00\x6a\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x7f\x00\x00\x00\x00\x6a\x84\x6a\x83\x00\x00\x00\x00\x6a\x7b\x00\x00\x50\x8b\x00\x00\x4a\x90\x00\x00\x6a\x81\x00\x00\x00\x00\x54\x49\x00\x00", /* 7b80 */ "\x4e\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5f\x00\x00\x00\x00\x6a\x85\x00\x00\x00\x00\x00\x00\x49\xac\x4e\x9f\x00\x00\x56\x84\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8e\x6a\x8a\x00\x00\x00\x00\x00\x00\x4d\x7c\x6a\x8f\x00\x00\x00\x00\x00\x00\x6a\x86\x6a\x87\x6a\x8b\x51\xe0\x6a\x8d\x6a\x90\x6a\x89\x4e\xfc\x00\x00\x00\x00\x00\x00\x58\x85\x00\x00\x00\x00\x6a\x91\x00\x00\x00\x00\x00\x00\x6a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x4d\x53\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x94\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x92\x00\x00\x51\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdc\x6a\x96\x00\x00\x00\x00\x6a\x95\x00\x00\x00\x00\x00\x00\x4a\xda\x00\x00\x00\x00\x00\x00\x6a\x97\x6a\x98\x00\x00\x00\x00\x00\x00\x6a\x99\x00\x00\x00\x00\x00\x00\x50\xb9\x00\x00\x00\x00\x50\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x92\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x9c\x00\x00\x6a\x9b\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd7\x00\x00\x00\x00\x00\x00\x6a\x9f\x6a\x9a\x00\x00\x00\x00\x6a\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa2\x4e\x69\x00\x00\x00\x00\x6a\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xbd\x6a\xa5\x6a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x77\x5d\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdf\x6a\xcb\x5c\x71\x00\x00\x00\x00", /* 7c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xcd\x51\x43\x00\x00\x00\x00\x53\xc8\x00\x00\x4a\xd5\x5b\x53\x00\x00\x00\x00\x00\x00\x6a\xcf\x6a\xce\x6a\xd0\x56\x7a\x00\x00\x00\x00\x6a\xd1\x00\x00\x5a\xc0\x5b\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x81\x00\x00\x00\x00\x00\x00\x51\x58\x00\x00\x00\x00\x51\x5b\x6a\xd2\x4f\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xe1\x00\x00\x00\x00\x6a\xd3\x6a\xd4\x4f\xaa\x00\x00\x00\x00\x6a\xd5\x00\x00\x00\x00\x00\x00\x6a\xda\x00\x00\x6a\xd6\x6a\xd9\x00\x00\x4d\xfc\x00\x00\x6a\xd7\x6a\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe1\x56\xc6\x6a\xdb\x00\x00\x49\xd9\x00\x00\x00\x00\x52\x73\x00\x00\x00\x00\x5a\xe2\x50\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe8\x00\x00\x00\x00\x58\x55\x00\x00\x00\x00\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x78\x00\x00\x56\x98\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x95\x00\x00\x00\x00\x00\x00\x5c\x6f\x00\x00\x00\x00\x00\x00\x50\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e80 */ "\x00\x00\x00\x00\x5c\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xed\x00\x00\x00\x00\x00\x00\x63\xf8\x4f\xbf\x63\xf9\x4d\xeb\x63\xfa\x58\x6b\x63\xfb\x5a\xbb\x4e\xb5\x63\xfc\x63\xfd\x4e\xcc\x54\xd1\x57\xb2\x64\x41\x00\x00\x4a\xbe\x64\x42\x55\x54\x4c\xd8\x52\xc8\x00\x00\x5c\x7d\x51\xd9\x4c\x77\x5b\xbc\x57\xc5\x4c\x64\x00\x00\x00\x00\x53\x46\x64\x43\x58\x7f\x64\x44\x64\x45\x64\x46\x51\x57\x5c\x8a\x55\x91\x58\x58\x5b\xae\x5b\xd4\x64\x47\x48\xec\x64\x48\x64\x49\x55\x7c\x59\xee\x4f\xac\x64\x4a\x48\xf2\x54\xdd\x4f\x82\x64\x4b\x54\xc5\x00\x00\x64\x4c\x4e\x87\x4c\xf7\x59\x44\x64\x4d\x51\xe6\x4f\xf7\x4f\x6a\x57\x53\x64\x4e\x64\x4f\x4f\xed\x58\xe4\x00\x00\x56\x88\x56\xcf\x4e\xcb\x64\x50\x4e\xa7\x58\xf6\x64\x51\x00\x00\x58\xf7\x64\x52\x64\x53\x4a\xc1\x64\x54\x64\x55\x55\x9f\x57\xab\x52\x81\x64\x57\x49\x61\x4a\x92\x00\x00\x64\x58\x64\x59\x5c\x7b\x5b\x60\x64\x5a\x51\xcb", /* 7f00 */ "\x5c\x5a\x64\x5b\x64\x5c\x64\x5d\x4e\xe9\x52\x86\x50\xc1\x64\x5e\x64\x5f\x4e\xa8\x00\x00\x64\x60\x64\x61\x64\x56\x4b\xcf\x64\x62\x00\x00\x64\x63\x64\x64\x4e\x5a\x4b\x7e\x51\xc5\x49\x81\x64\x65\x5a\xb4\x64\x66\x4c\xbe\x64\x68\x64\x67\x4c\x8d\x00\x00\x64\x69\x49\xf7\x64\x6a\x64\x6b\x64\x6c\x64\x6d\x64\x6e\x64\x6f\x64\x70\x5a\x47\x56\x96\x64\x71\x64\x72\x64\x73\x64\x74\x55\x69\x64\x75\x64\x76\x64\x77\x64\x78\x64\x79\x4f\x69\x64\x7a\x6a\x5e\x00\x00\x4c\xd6\x00\x00\x54\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5f\x00\x00\x6a\x60\x6a\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7e\x57\x99\x00\x00\x00\x00\x5c\xe7\x4d\xb0\x00\x00\x51\xdd\x67\xb6\x00\x00\x4c\x43\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb8\x00\x00\x67\xb7\x48\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xba\x5b\x76\x5c\x90\x00\x00\x00\x00\x00\x00\x5b\xc2\x00\x00\x00\x00\x67\xbc\x55\xef\x00\x00\x67\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbf\x00\x00", /* 7f80 */ "\x00\x00\x67\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x93\x00\x00\x54\x5c\x00\x00\x52\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x88\x00\x00\x00\x00\x6a\xc5\x58\xde\x6a\xc6\x00\x00\x58\x7b\x00\x00\x00\x00\x54\xb9\x00\x00\x00\x00\x6a\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc8\x6a\xc9\x00\x00\x6a\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9b\x4c\xfd\x00\x00\x00\x00\x63\x92\x5a\x91\x00\x00\x6a\xdf\x00\x00\x57\xcb\x00\x00\x00\x00\x00\x00\x4a\x82\x00\x00\x00\x00\x00\x00\x00\x00\x69\x54\x00\x00\x59\xed\x00\x00\x6a\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x89\x6a\xe1\x00\x00\x00\x00\x54\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x74\x4a\xe3\x6a\xe3\x00\x00\x00\x00\x00\x00\x6a\xe2\x6a\xe4\x00\x00\x00\x00\x6a\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe6\x00\x00\x4d\xb1\x48\xbe\x00\x00\x6a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4d\x59\xec\x00\x00\x00\x00\x00\x00", /* 8000 */ "\x59\xaa\x50\xce\x00\x00\x50\x5c\x66\x43\x5b\x7f\x65\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x69\x94\x4b\xf7\x56\x43\x00\x00\x00\x00\x52\xcc\x00\x00\x69\x88\x00\x00\x69\x89\x4c\xfa\x69\x8a\x4d\xc3\x5a\xc4\x48\xd1\x00\x00\x00\x00\x69\x8b\x00\x00\x00\x00\x00\x00\x69\x8c\x00\x00\x69\x8d\x00\x00\x00\x00\x69\x8e\x69\x8f\x69\x90\x69\x92\x69\x91\x53\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x93\x00\x00\x4b\xf9\x00\x00\x69\x95\x59\xad\x5f\xc6\x56\x6a\x00\x00\x00\x00\x4a\x7c\x00\x00\x4b\x42\x00\x00\x4d\x42\x00\x00\x00\x00\x52\xf3\x69\x96\x00\x00\x00\x00\x69\x97\x00\x00\x00\x00\x00\x00\x51\x64\x51\x9c\x5b\xaf\x69\x98\x00\x00\x00\x00\x00\x00\x00\x00\x69\x99\x00\x00\x51\x4a\x00\x00\x00\x00\x00\x00\x53\xb7\x00\x00\x4f\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x9a\x4a\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x52", /* 8080 */ "\x67\x51\x00\x00\x00\x00\x56\x81\x59\xdd\x00\x00\x56\x61\x5b\x78\x00\x00\x54\xe1\x00\x00\x50\xde\x4e\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x61\x00\x00\x00\x00\x58\xa3\x00\x00\x5b\xe1\x00\x00\x4b\xc6\x4c\xd7\x66\x60\x4c\xcd\x00\x00\x66\x5f\x4a\x46\x4d\x69\x5b\xaa\x00\x00\x4c\x95\x4c\x6a\x00\x00\x00\x00\x00\x00\x4e\xe6\x4c\x5e\x66\x66\x00\x00\x66\x67\x48\xb8\x50\x6f\x00\x00\x66\x65\x5a\x9e\x00\x00\x66\x68\x00\x00\x00\x00\x66\x69\x00\x00\x00\x00\x4c\x6e\x00\x00\x66\x62\x66\x64\x55\x97\x5b\xd6\x5b\x6d\x58\xb1\x66\x6f\x57\xb7\x66\x70\x00\x00\x4b\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x53\x66\x72\x56\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x76\x66\x73\x00\x00\x66\x71\x53\x7f\x66\x6e\x55\xa3\x66\x75\x48\xfa\x00\x00\x00\x00\x4d\xf9\x00\x00\x00\x00\x5c\xb6\x69\x84\x00\x00\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x76\x63\xbf\x66\x79\x00\x00\x50\x89\x59\xc7\x66\x77\x66\x7c\x4c\xeb\x66\x78\x00\x00\x4f\x5a\x00\x00\x58\xd7\x00\x00\x48\xb6\x00\x00\x66\x7d\x52\xdb\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x5b\xab\x00\x00\x00\x00\x00\x00\x4a\xdf\x00\x00\x00\x00\x51\xf5\x4e\xb8\x00\x00\x00\x00\x66\x7a\x66\x7b\x5a\xdf\x53\xe9\x52\xd3\x66\x7f\x53\x47\x5d\x96\x00\x00\x49\xb0\x00\x00\x66\x85\x00\x00\x4f\x65\x00\x00\x00\x00\x00\x00\x66\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x84\x00\x00\x00\x00\x4c\xab\x00\x00\x57\x71\x66\x86\x00\x00\x00\x00\x00\x00\x66\x82\x00\x00\x51\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xf2\x00\x00\x66\x87\x00\x00\x50\xaf\x59\xb7\x66\x88\x00\x00\x00\x00\x00\x00\x4c\xae\x4c\xac\x00\x00\x66\x89\x54\x5b\x57\x94\x00\x00\x00\x00\x00\x00\x66\x8b\x66\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc7\x00\x00\x66\x93\x00\x00\x66\x8f\x00\x00\x00\x00\x00\x00\x66\x92\x54\xf8\x00\x00\x59\x9d\x66\x8d\x00\x00\x00\x00\x66\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb8\x58\x79\x52\xe4\x66\x90\x66\x91\x56\xd9\x57\x68", /* 8180 */ "\x48\xf1\x00\x00\x66\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x96\x00\x00\x49\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdf\x00\x00\x66\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x8d\x00\x00\x00\x00\x56\xc4\x52\xa3\x58\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x9a\x00\x00\x00\x00\x66\xa1\x00\x00\x53\x93\x00\x00\x66\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xde\x66\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6e\x66\xa0\x49\x7b\x5a\x57\x00\x00\x00\x00\x59\xdb\x00\x00\x00\x00\x00\x00\x66\x9e\x00\x00\x66\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5c\x00\x00\x00\x00\x00\x00\x65\xaf\x00\x00\x00\x00\x5c\x74\x00\x00\x6a\xaa\x4a\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc0\x5b\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8a\x4f\xc9\x00\x00\x6a\xa6\x00\x00", /* 8200 */ "\x59\xa7\x6a\xa7\x6a\xa8\x00\x00\x6a\xa9\x4f\xca\x5a\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x81\x55\x82\x00\x00\x00\x00\x6a\x62\x00\x00\x55\xe5\x00\x00\x56\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb5\x56\x54\x00\x00\x57\xe7\x5b\xda\x00\x00\x6a\xac\x6a\xad\x6a\xae\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xb1\x00\x00\x4d\xbc\x6a\xb2\x48\xe2\x6a\xaf\x00\x00\x6a\xb0\x4f\x42\x49\xd4\x00\x00\x6a\xb5\x6a\xb6\x4b\xe5\x49\xaf\x58\x6f\x6a\xb3\x4a\xab\x00\x00\x6a\xb4\x00\x00\x00\x00\x6a\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xb8\x00\x00\x00\x00\x57\x47\x00\x00\x6a\xb9\x00\x00\x6a\xba\x00\x00\x00\x00\x00\x00\x6a\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x72\x00\x00\x6a\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xdd\x51\x5c\x4e\xe7\x00\x00\x55\x4b\x59\x7e\x63\x96\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb2\x59\xd4\x00\x00\x00\x00\x5e\xb3\x48\xab\x5e\xb4", /* 8280 */ "\x00\x00\x00\x00\x4f\x7a\x00\x00\x5e\xb8\x00\x00\x00\x00\x00\x00\x5c\xc1\x00\x00\x5e\xb6\x5a\x94\x00\x00\x55\x76\x5e\xb9\x5e\xb5\x00\x00\x5e\xba\x52\x42\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbb\x5e\xc4\x5e\xbc\x00\x00\x00\x00\x57\xde\x5b\xa4\x00\x00\x5e\xce\x00\x00\x5e\xcc\x00\x00\x00\x00\x5e\xd1\x4f\x87\x51\xaa\x00\x00\x5e\xb7\x5e\xca\x5e\xcd\x5e\xbd\x4c\x72\x48\xc4\x5e\xc6\x58\xbd\x5e\xc0\x4e\x48\x00\x00\x4c\x5c\x5e\xcb\x00\x00\x00\x00\x5e\xc5\x5e\xbe\x54\x7b\x00\x00\x00\x00\x00\x00\x59\x5f\x5e\xbf\x00\x00\x00\x00\x5e\xc9\x00\x00\x00\x00\x5e\xcf\x00\x00\x00\x00\x57\xac\x5e\xc1\x00\x00\x5e\xc2\x5e\xc7\x5e\xc8\x49\xd3\x5e\xd0\x56\x75\x00\x00\x5a\xb6\x5e\xda\x5e\xde\x56\xa5\x5e\xe5\x00\x00\x52\x88\x5e\xdb\x00\x00\x00\x00\x50\x61\x5e\xd8\x00\x00\x48\xf9\x4d\x56\x5e\xe4\x5e\xd2\x00\x00\x5e\xc3\x5e\xd5\x54\xf3\x50\x81\x00\x00\x00\x00\x00\x00\x00\x00\x55\x5b\x00\x00\x00\x00\x00\x00\x49\x5d\x00\x00\x5a\x42\x00\x00\x00\x00\x5e\xd9\x00\x00\x00\x00\x5e\xd4\x00\x00\x53\xba\x00\x00\x5e\xdd\x00\x00\x00\x00\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x5c\x62\x52\x4f\x4c\x56\x54\x71\x52\x49\x5e\xe1\x5e\xd7\x5e\xea\x5e\xd3\x00\x00\x00\x00\x5e\xdc\x00\x00\x4f\xa4\x5e\xd6\x00\x00\x5e\xdf\x00\x00\x00\x00\x5e\xe2\x5e\xe3\x00\x00\x5e\xf7\x00\x00\x00\x00\x5e\xe0\x5f\x42\x5e\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xea\x4a\xc3\x00\x00\x00\x00\x52\x43\x49\xe6\x5e\xf9\x00\x00\x5e\xf1\x00\x00\x5e\xee\x00\x00\x5e\xfb\x5e\xed\x59\xef\x49\xe7\x00\x00\x54\xd6\x54\xe2\x5e\xfa\x00\x00\x5e\xec\x00\x00\x00\x00\x00\x00\x5e\xf6\x00\x00\x00\x00\x5e\xf4\x00\x00\x00\x00\x4f\xa2\x5e\xf3\x00\x00\x49\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf2\x4e\xf5\x5e\xe7\x4e\x64\x00\x00\x50\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xd3\x5e\xe8\x5e\xe9\x00\x00\x5e\xf0\x5e\xf5\x5e\xf8\x4b\x54\x00\x00\x54\xd8\x4e\x88\x5e\xfd\x5e\xfc\x5a\x4b\x5f\x41\x5f\x43\x5f\x45\x59\xf0\x5f\x44\x5f\x46\x5f\x47\x59\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc8\x5f\x49\x00\x00\x00\x00\x5f\x56\x5f\x51\x5f\x54\x00\x00\x00\x00", /* 8380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x50\x53\xcd\x00\x00\x00\x00\x50\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4f\x00\x00\x00\x00\x00\x00\x5e\xeb\x5f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x00\x00\x00\x00\x5e\xef\x5f\x4f\x00\x00\x5f\x58\x00\x00\x5f\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x59\x5f\x53\x5f\x4d\x52\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x48\x50\xb2\x51\x4b\x5f\x4a\x5f\x4b\x00\x00\x5f\x52\x4e\x92\x5f\x55\x5a\x48\x5f\x5a\x00\x00\x5f\x5b\x52\x47\x00\x00\x00\x00\x5f\x72\x5f\x5c\x00\x00\x00\x00\x00\x00\x5f\x71\x00\x00\x4d\x5d\x00\x00\x00\x00\x4f\xd4\x00\x00\x4f\xf9\x00\x00\x00\x00\x4d\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x6a\x00\x00\x5f\x65\x00\x00\x5f\x5f\x00\x00\x00\x00\x00\x00\x49\xca\x5f\x63\x00\x00\x5f\x6b\x49\xa3\x5f\x75\x00\x00\x00\x00\x00\x00\x5f\x5e\x00\x00\x00\x00\x00\x00\x53\xcf\x5f\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x74\x51\x83\x4c\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x6e\x5f\x6f\x00\x00\x00\x00\x00\x00\x5f\x64\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x5f\x5d\x00\x00\x5f\x6d\x56\xd0\x00\x00\x5f\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x62\x52\x68\x53\xbb\x57\xad\x5f\x6c\x00\x00\x5f\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x61\x00\x00\x00\x00\x00\x00\x5f\x66\x51\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x49\x5a\x4a\x5f\x73\x58\x95\x54\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x67\x00\x00\x00\x00\x00\x00\x5f\x81\x51\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf7\x00\x00\x5f\x79\x5f\x78\x4c\xef\x5f\x76\x00\x00\x00\x00\x00\x00\x00\x00\x53\xce\x00\x00\x4b\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x83\x00\x00\x4d\xf8\x5a\xe0\x5f\x88\x00\x00\x00\x00\x00\x00\x4a\xcf\x00\x00\x5f\x7a\x00\x00\x50\x9c\x5f\x84\x00\x00\x5f\x7f\x00\x00\x5f\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x4b\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x7b\x5f\x7c\x5f\x7e\x00\x00\x4f\x4f\x5f\x85\x00\x00\x5f\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x96\x00\x00\x52\x69\x00\x00\x00\x00\x56\x83\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe0\x00\x00\x00\x00\x53\xd0\x00\x00\x5f\x95\x00\x00\x00\x00\x00\x00\x5b\x95\x5f\x94\x5f\x91\x00\x00\x00\x00\x5f\x8d\x00\x00\x5f\x90\x00\x00\x5f\x89\x00\x00\x00\x00\x58\xed\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd7\x5f\x8f\x00\x00\x00\x00\x5f\x8a\x00\x00\x00\x00\x5f\x8b\x56\x93\x00\x00\x5f\x8e\x00\x00\x00\x00\x49\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb5\x00\x00\x4e\xba\x5f\x92\x00\x00\x00\x00\x5f\x98\x00\x00\x5f\x97\x5f\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x8f\x00\x00\x00\x00\x00\x00\x5f\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa3\x00\x00\x00\x00\x5f\xa2", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x99\x00\x00\x00\x00\x00\x00\x00\x00\x52\x90\x00\x00\x51\xfa\x00\x00\x00\x00\x00\x00\x5b\x82\x00\x00\x00\x00\x57\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9e\x00\x00\x49\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe7\x55\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x5e\x5f\x9b\x5f\x9d\x5f\x9f\x5f\xa1\x48\xa9\x49\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xab\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa5\x4f\x56\x54\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa0\x00\x00\x00\x00\x5f\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa7\x00\x00\x00\x00\x00\x00\x5f\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xac\x00\x00\x5a\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb2\x5f\xa9\x5f\xad\x00\x00\x00\x00\x50\xd8\x00\x00", /* 8580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x49\x41\x5f\xb5\x00\x00\x5f\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x46\x5f\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xae\x00\x00\x00\x00\x00\x00\x5f\xaf\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x5f\xb3\x55\xec\x5f\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb7\x00\x00\x5f\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xd7\x52\x8b\x00\x00\x00\x00\x5f\xb9\x00\x00\x53\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe4\x00\x00\x00\x00\x00\x00\x5f\xbc", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbd\x00\x00\x5f\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x5a\x00\x00\x00\x00\x00\x00\x5f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xad\x4e\x42\x51\xb1\x53\x50\x51\xc6\x00\x00\x00\x00\x69\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe8\x00\x00\x00\x00\x00\x00\x5a\x7d\x00\x00\x00\x00\x00\x00\x66\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x87\x69\xaf\x00\x00\x69\xb0\x00\x00\x00\x00\x55\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe6\x69\xb2\x69\xb4\x69\xb3\x56\x85\x58\x5a\x69\xb1", /* 8680 */ "\x55\xb3\x59\xce\x51\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x69\xb7\x48\xf5\x69\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xbd\x00\x00\x49\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x61\x69\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xbb\x5a\xe8\x00\x00\x00\x00\x69\xba\x69\xb5\x69\xbe\x69\xbc\x00\x00\x69\xb8\x00\x00\x00\x00\x69\xc6\x69\xc3\x69\xc5\x00\x00\x00\x00\x69\xc9\x69\xc1\x69\xbf\x00\x00\x00\x00\x00\x00\x69\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfa\x00\x00\x00\x00\x00\x00\x69\xc0\x00\x00\x54\x9a\x55\x7f\x00\x00\x69\xc7\x4d\x66\x4b\x50\x00\x00\x00\x00\x69\xc2\x69\xc8\x69\xcf\x69\xd5\x00\x00\x00\x00\x4e\x77\x00\x00\x00\x00\x00\x00\x69\xd4\x57\x7c\x00\x00\x5b\xea\x00\x00\x00\x00\x69\xd1\x69\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x69\xca\x00\x00\x00\x00\x00\x00\x69\xcd\x51\xf8\x00\x00\x5b\x7d\x69\xcb\x69\xcc\x69\xce\x69\xd2\x00\x00\x00\x00\x00\x00\x69\xd8\x5a\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe9\x00\x00", /* 8700 */ "\x55\xf0\x00\x00\x4c\x85\x69\xd6\x00\x00\x00\x00\x00\x00\x69\xd7\x69\xd9\x69\xdc\x69\xda\x00\x00\x00\x00\x69\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x59\x71\x69\xd0\x00\x00\x57\x69\x00\x00\x57\xce\x5b\xa8\x00\x00\x69\xe2\x00\x00\x52\x7b\x00\x00\x69\xdf\x00\x00\x00\x00\x50\xae\x69\xeb\x69\xdd\x00\x00\x69\xe0\x00\x00\x00\x00\x00\x00\x69\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x69\xe1\x00\x00\x00\x00\x69\xe6\x00\x00\x00\x00\x69\xe5\x00\x00\x00\x00\x69\xe8\x00\x00\x00\x00\x00\x00\x69\xde\x00\x00\x00\x00\x69\xe3\x69\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4c\x69\xe4\x49\xf4\x00\x00\x00\x00\x69\xf1\x00\x00\x58\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x69\xf4\x00\x00\x00\x00\x00\x00\x4e\x68\x00\x00\x69\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xef\x00\x00\x00\x00\x69\xf5\x69\xf7\x69\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xf2\x00\x00\x69\xf0\x00\x00\x00\x00\x00\x00\x4d\xfa\x00\x00\x4b\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x69\xee\x69\xf6\x69\xec\x69\xed\x00\x00", /* 8780 */ "\x00\x00\x00\x00\x69\xea\x6a\x46\x00\x00\x6a\x43\x00\x00\x00\x00\x6a\x42\x00\x00\x00\x00\x69\xf3\x00\x00\x54\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xfa\x00\x00\x00\x00\x00\x00\x6a\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xfc\x00\x00\x00\x00\x6a\x47\x6a\x49\x6a\x44\x00\x00\x69\xfb\x00\x00\x00\x00\x00\x00\x6a\x4b\x00\x00\x6a\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x00\x00\x6a\x4e\x00\x00\x00\x00\x6a\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x41\x00\x00\x00\x00\x00\x00\x6a\x51\x6a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x4f\x69\xfd\x6a\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x52\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x54\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x48\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x53\x00\x00\x00\x00\x00\x00\x6a\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x58\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x5d\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x57\x00\x00\x54\xe3\x6a\x56\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5b\x4a\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5c\x00\x00\x00\x00\x6a\x5d\x00\x00\x00\x00\x00\x00\x59\x4a\x00\x00\x00\x00\x00\x00\x6a\xab\x58\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xcf\x59\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x6e\x00\x00\x00\x00\x4f\x76\x00\x00\x59\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe1\x61\x8a\x59\xc1\x69\x62\x49\xb8\x00\x00\x00\x00\x49\x8e\x69\x63\x00\x00\x55\x60\x4a\x64\x00\x00\x5d\x93\x00\x00\x56\x45\x00\x00\x69\x64\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x65\x6a\xbf\x69\x66", /* 8880 */ "\x00\x00\x5a\xab\x69\x67\x00\x00\x48\xbf\x6a\xc0\x00\x00\x00\x00\x6a\xc1\x00\x00\x00\x00\x4a\xfb\x00\x00\x53\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x56\xba\x00\x00\x00\x00\x00\x00\x58\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x68\x00\x00\x5d\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x5b\x00\x00\x58\x4e\x00\x00\x00\x00\x00\x00\x4c\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc2\x51\x71\x00\x00\x00\x00\x5c\x50\x69\x69\x00\x00\x00\x00\x69\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6e\x00\x00\x00\x00\x00\x00\x5d\x97\x00\x00\x59\xe0\x5a\xa2\x00\x00\x00\x00\x6a\xc2\x54\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc3\x00\x00\x00\x00\x69\x6d\x69\x6f\x50\x84\x69\x70\x00\x00\x00\x00\x69\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x76\x69\x71\x00\x00\x55\x71\x53\x82\x00\x00\x00\x00\x00\x00\x51\xe2\x4d\x9d\x00\x00\x00\x00\x69\x73\x00\x00\x69\x75\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x4d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd5\x00\x00\x48\xfc\x69\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x78\x69\x72\x69\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x77\x00\x00\x00\x00\x00\x00\x54\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6a\x69\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5d\x00\x00\x00\x00\x00\x00\x69\x7c\x00\x00\x69\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x7f\x00\x00\x00\x00\x58\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc4\x4f\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x82\x00\x00\x00\x00\x00\x00\x57\xf6", /* 8980 */ "\x00\x00\x59\xa9\x00\x00\x69\x9c\x00\x00\x00\x00\x4c\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xfa\x4d\x7b\x00\x00\x4d\x87\x52\x79\x55\xd2\x65\xe7\x50\xbf\x4f\xf4\x65\xe8\x65\xe9\x65\xea\x00\x00\x65\xeb\x65\xec\x65\xed\x65\xee\x4f\x67\x00\x00\x00\x00\x00\x00\x6b\x9c\x00\x00\x00\x00\x00\x00\x6b\x9e\x00\x00\x6b\x9f\x00\x00\x6b\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x83\x00\x00\x6b\xa0\x4a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa1\x00\x00\x00\x00\x00\x00\x6b\xa2\x00\x00\x00\x00\x00\x00\x66\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a00 */ "\x59\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9f\x56\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8b80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa4\x4e\xc5\x4b\xa8\x4c\xbb\x54\xce\x4e\xa4\x5d\xa5\x5d\xa6\x56\xd5\x54\xc2\x5d\xa7\x53\xfc\x00\x00\x59\x55\x59\xe8\x59\x56\x4e\xc6\x00\x00\x4f\x52\x4e\x85\x5d\xa8\x5d\xa9\x59\x68\x5d\xaa\x58\xec\x4b\xee\x51\xda\x00\x00\x56\x6f\x4c\x8e\x55\x89\x4c\x63\x4f\xf6\x5b\xa3\x5d\xab\x5d\xac\x53\xbf\x5c\x88\x55\xb5\x00\x00\x5b\x49\x56\x7f\x5b\x90\x5d\xad\x5b\xde\x4a\xc9\x5d\xaf\x5d\xae\x00\x00\x59\xea\x5d\xb0\x5d\xb1\x5d\xb2\x55\xd3\x5d\xb3\x55\xaa\x5d\xb4\x5d\xb5\x4a\x6f\x5b\xee\x5d\xb6\x4e\x50\x4b\x4e\x5d\xb7\x5d\xb8\x4d\x8f\x59\x4f\x59\xe7\x5d\xb9\x4c\xc2\x58\x8b\x49\xee\x5d\xba\x5d\xbb\x00\x00\x4f\x8c\x57\xdb\x5a\x90\x5d\xbc\x57\xf2\x5d\xbd\x5a\x75\x4e\x86\x5d\xbe\x56\x55\x56\x70\x5d\xbf\x54\x8c\x5b\xed\x5d\xc0\x53\x55\x4b\xc0\x5d\xc1\x4c\x6c\x50\x6e\x5d\xc2", /* 8c00 */ "\x5d\xc3\x56\x4d\x5d\xc4\x4b\x98\x5d\xc5\x51\x62\x5c\x5b\x5d\xc6\x56\xb7\x00\x00\x59\xe9\x52\xb0\x5d\xc7\x4b\x9e\x4e\x71\x5d\xc8\x58\xb2\x5d\xc9\x5d\xca\x57\xbc\x5d\xcb\x5d\xcc\x5d\xcd\x49\xf6\x5d\xd0\x5d\xce\x59\x89\x5d\xcf\x52\x75\x5d\xd1\x00\x00\x5d\xd2\x5d\xd3\x5d\xd4\x58\xba\x59\xa4\x48\xf8\x5d\xd5\x54\x4b\x5d\xd6\x4f\x98\x52\x41\x5d\xd7\x5d\xd8\x52\x9e\x56\xb6\x5d\xd9\x5d\xda\x50\xbd\x53\xd6\x5d\xdb\x5d\xdc\x54\x54\x5d\xdd\x5d\xde\x4d\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb8\x6a\xf7\x00\x00\x6a\xf8\x00\x00\x00\x00\x57\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x59\x00\x00\x00\x00\x00\x00\x00\x00\x66\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x94\x4e\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xbf\x5a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x79\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x95\x49\x4a\x49\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c80 */ "\x00\x00\x00\x00\x6b\x96\x00\x00\x00\x00\x6b\x98\x00\x00\x00\x00\x00\x00\x4d\xd0\x6b\x97\x00\x00\x52\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x9a\x00\x00\x00\x00\x00\x00\x6b\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x54\x5b\x8b\x4c\xb9\x00\x00\x4d\x51\x49\xc5\x5a\xef\x58\x6d\x48\xdb\x5b\x6b\x4e\x96\x5b\xc9\x4c\x57\x56\xaf\x53\xb5\x49\x82\x4d\x5a\x5b\xfb\x4d\x82\x4c\x41\x4e\xf9\x65\xd9\x65\xda\x56\xf8\x4d\x94\x65\xdb\x4a\xfa\x52\x53\x4c\x71\x4d\xd7\x65\xdc\x5a\xf3\x65\xdd\x4e\xd5\x4e\x7f\x65\xde\x51\x7e\x51\xb7\x5a\xde\x5c\x6a\x65\xdf\x65\xe0\x65\xe3\x65\xe1\x65\xe2\x55\x7e\x4c\xb2\x4b\xc3\x65\xe4\x55\xe9\x55\x6d\x4a\xcc\x00\x00\x00\x00\x61\xd8\x53\x83\x65\xe5\x50\xb4\x00\x00\x5c\x58\x65\xe6\x5c\x4c\x54\xfb\x5c\xd2\x5c\xcc\x5a\xdd\x00\x00\x5a\xf8\x55\x64\x5a\x4e\x4c\xd2\x4a\x81\x00\x00\x55\x83\x6a\xf5\x00\x00\x00\x00\x00\x00\x4d\xd4\x00\x00\x6a\xf6\x00\x00\x00\x00\x5c\x7f\x00\x00\x00\x00\x6a\xf0\x4c\xaf\x5b\x74\x4c\xce\x53\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d80 */ "\x00\x00\x4a\x63\x00\x00\x00\x00\x6a\xf1\x4a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xbc\x54\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf3\x00\x00\x00\x00\x6a\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xca\x00\x00\x00\x00\x00\x00\x54\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf4\x00\x00\x5c\x84\x53\x5f\x6b\x60\x00\x00\x00\x00\x6b\x5b\x00\x00\x6b\x63\x00\x00\x6b\x62\x00\x00\x5b\xb9\x6b\x61\x00\x00\x00\x00\x00\x00\x5a\xbd\x6b\x64\x00\x00\x6b\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x48\xce\x4b\x99\x00\x00\x6b\x69\x6b\x6a\x00\x00\x53\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x65\x6b\x66\x00\x00\x00\x00\x6b\x67\x6b\x6b\x00\x00\x4f\xdf\x6b\x68\x4c\xf9\x00\x00\x00\x00\x00\x00\x6b\x70\x6b\x73\x00\x00\x00\x00\x00\x00\x50\x88\x00\x00\x4d\x93\x6b\x5c\x6b\x6d\x00\x00\x00\x00\x51\xb6\x00\x00\x00\x00\x00\x00\x56\xf7\x00\x00\x4e\xf8\x00\x00\x6b\x6e\x6b\x6f\x6b\x71\x4b\xe4\x6b\x72\x00\x00\x6b\x75\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5d\x00\x00\x00\x00\x00\x00\x6b\x74\x5a\x5b\x00\x00\x4a\x8d\x00\x00\x00\x00\x56\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x77\x4f\xe0\x6b\x78\x00\x00\x00\x00\x56\xde\x6b\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc7\x5c\x79\x00\x00\x6b\x79\x00\x00\x6b\x7a\x6b\x7c\x00\x00\x6b\x83\x00\x00\x00\x00\x00\x00\x6b\x81\x00\x00\x00\x00\x00\x00\x6b\x7f\x6b\x7d\x00\x00\x00\x00\x6b\x82\x00\x00\x00\x00\x6b\x7e\x6b\x85\x6b\x86\x00\x00\x56\xe2\x00\x00\x00\x00\x63\x5f\x4b\x58\x6b\x84\x6b\x89\x56\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x87\x6b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x64\x00\x00\x00\x00\x6b\x5f\x00\x00\x00\x00\x4b\x65\x49\xe3\x00\x00\x6b\x8d\x6b\x8a\x00\x00\x4b\xd6\x00\x00\x6b\x8e\x00\x00\x6b\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x8c\x00\x00\x00\x00\x4a\xd9", /* 8e80 */ "\x00\x00\x5a\xe9\x00\x00\x00\x00\x00\x00\x6b\x8f\x00\x00\x4a\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x90\x6b\x92\x00\x00\x00\x00\x00\x00\x6b\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x93\x00\x00\x6b\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x8e\x4d\x4a\x00\x00\x00\x00\x54\x9c\x00\x00\x00\x00\x4b\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x55\x5a\xfd\x4d\x8d\x58\xf8\x00\x00\x65\x8e\x5c\x4a\x65\x8f\x51\xd5\x54\xec\x4d\xe3\x65\x90\x65\x91\x65\x92\x5b\xe0\x65\x93\x65\x94\x65\x96\x65\x95\x65\x97\x65\x98\x54\x82\x65\x99\x5a\xd7\x65\x9a\x4f\x6e", /* 8f80 */ "\x00\x00\x65\x9b\x65\x9c\x4f\x6f\x65\x9d\x4c\xa7\x51\x5e\x65\x9e\x49\x52\x4e\x74\x4d\x96\x65\x9f\x00\x00\x65\xa0\x65\xa1\x65\xa2\x4c\x99\x4e\xac\x00\x00\x55\xe3\x60\xcd\x5a\xae\x58\x5d\x5b\x57\x65\xa3\x5b\x7e\x65\xa4\x58\xc0\x4d\x5c\x00\x00\x4a\xc6\x49\x79\x00\x00\x00\x00\x00\x00\x50\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x49\x87\x49\x88\x00\x00\x49\x89\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5d\x54\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x63\x61\x00\x00\x00\x00\x49\x7f\x00\x00\x00\x00\x00\x00\x51\x69\x4a\xee\x00\x00\x00\x00\x54\x48\x5a\x78\x00\x00\x53\xf8\x59\x58\x00\x00\x4d\x9e\x51\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4d\x00\x00\x5a\xca\x4f\x9d\x00\x00\x63\x62\x4c\x55\x63\x63\x00\x00\x00\x00\x4e\x59\x5b\x83\x00\x00\x4f\x99\x5a\xb5\x57\xa4\x51\x4c\x4a\x79\x00\x00\x00\x00\x56\xf5\x00\x00\x63\x66\x63\x64\x63\x68\x00\x00\x63\x6a\x63\x67\x4b\x6f\x53\xc7\x00\x00\x4b\x9d\x63\x65\x00\x00\x55\xf5\x00\x00\x00\x00\x63\x69\x00\x00\x00\x00\x00\x00\x52\x74\x49\x65\x4e\xa2\x00\x00\x00\x00\x00\x00\x5c\x57\x00\x00\x00\x00", /* 9000 */ "\x57\x6b\x56\x6d\x55\xc9\x56\xd2\x63\x6c\x63\x6b\x52\xe5\x00\x00\x00\x00\x59\x41\x59\x57\x63\x6d\x00\x00\x63\x70\x00\x00\x57\x58\x5b\xef\x63\x6f\x4b\x7d\x00\x00\x57\x5e\x00\x00\x63\x71\x4b\xb9\x00\x00\x00\x00\x57\x48\x4d\x85\x00\x00\x55\xc4\x4a\x71\x56\x79\x5a\xeb\x63\x72\x4c\x8b\x00\x00\x00\x00\x00\x00\x63\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x75\x4a\xfd\x63\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x73\x63\x74\x00\x00\x59\xdc\x00\x00\x00\x00\x51\xde\x49\x66\x00\x00\x5a\x83\x00\x00\x00\x00\x4b\xdc\x56\x8d\x00\x00\x63\x77\x00\x00\x00\x00\x5a\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x8a\x00\x00\x4b\xf3\x63\x7a\x63\x78\x63\x79\x4b\x60\x00\x00\x00\x00\x00\x00\x59\xc4\x63\x7c\x00\x00\x00\x00\x63\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7d\x54\x52\x00\x00\x59\xa2\x00\x00\x00\x00\x63\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe1\x5b\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x81\x5c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x82\x00\x00\x49\x7c", /* 9080 */ "\x59\x9c\x00\x00\x63\x83\x63\x85\x00\x00\x00\x00\x00\x00\x00\x00\x63\x84\x00\x00\x00\x00\x63\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd7\x00\x00\x4b\x6b\x00\x00\x64\x7f\x00\x00\x5d\xf4\x00\x00\x5d\xf7\x00\x00\x5d\xf5\x00\x00\x5d\xf6\x00\x00\x00\x00\x00\x00\x5d\xf9\x58\xce\x52\xc6\x00\x00\x00\x00\x48\xed\x00\x00\x00\x00\x00\x00\x58\xaf\x00\x00\x5d\xf8\x00\x00\x5a\x6a\x4d\xa9\x5e\x42\x54\x92\x00\x00\x5d\xfb\x5d\xfa\x55\x7b\x5d\xfc\x00\x00\x5e\x41\x5c\x7e\x5d\xfd\x51\x7a\x00\x00\x00\x00\x5e\x45\x00\x00\x00\x00\x5a\x95\x00\x00\x00\x00\x5e\x47\x5e\x44\x00\x00\x5e\x48\x00\x00\x00\x00\x4f\x5c\x00\x00\x00\x00\x00\x00\x50\xc8\x5e\x43\x5e\x46\x5b\xa2\x00\x00\x5e\x49\x00\x00\x00\x00\x00\x00\x5e\x4d\x00\x00\x00\x00\x00\x00\x5e\x4e\x5e\x4c\x4d\xc1\x00\x00\x00\x00\x00\x00\x50\x44\x5e\x4b\x00\x00\x00\x00\x00\x00\x5e\x4a\x5a\xc6\x49\xbe\x00\x00\x00\x00\x5e\x4f\x00\x00\x4d\x9a\x00\x00\x5e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5b\x00\x00\x00\x00\x00\x00\x4b\x46\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbb\x5e\x51\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x4b\xf4\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x54\x00\x00\x00\x00\x00\x00\x5e\x53\x5e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x57\x00\x00\x5e\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x59\x00\x00\x00\x00\x5e\x5a\x00\x00\x00\x00\x5a\x6f\x6a\xf9\x54\x96\x5c\x63\x53\x85\x6a\xfb\x6a\xfc\x6a\xfa\x00\x00\x4f\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x58\xee\x00\x00\x00\x00\x4c\x73\x00\x00\x00\x00\x5a\xcc\x56\xa9\x00\x00\x00\x00\x6b\x42\x6b\x41\x4d\xa7\x6a\xfd\x56\x76\x00\x00\x00\x00\x00\x00\x6b\x44\x50\xd1\x00\x00\x4a\x8b\x00\x00\x57\x4a\x6b\x45\x6b\x43\x4f\x54\x6b\x48\x00\x00\x6b\x49\x4f\x6d\x52\x58\x50\x82\x56\x82\x6b\x4a\x00\x00\x00\x00\x00\x00\x6b\x46\x6b\x47\x52\xef", /* 9180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x4c\x00\x00\x4a\xbb\x00\x00\x5c\x8e\x00\x00\x4a\xd6\x6b\x4b\x6b\x4e\x00\x00\x00\x00\x6b\x4d\x6b\x4f\x58\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x71\x54\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x50\x6b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x52\x00\x00\x00\x00\x6b\x53\x6b\x54\x6b\x55\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x57\x6b\x56\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc8\x00\x00\x5a\x74\x55\xcc\x00\x00\x50\xee\x5b\xd7\x59\xaf\x51\x5f\x00\x00\x4f\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9480 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc3\x67\xc4\x67\xc5\x5b\x8c\x4b\xa3\x67\xc7\x67\xc6\x67\xc8\x67\xc9\x54\x45\x67\xca\x67\xcb\x00\x00\x4c\x50\x4b\x97\x67\xcc\x67\xce\x00\x00\x67\xcd\x00\x00\x4c\xc5\x67\xcf\x67\xd0\x67\xd1\x4b\xda\x4a\x4e\x5b\xd2\x52\xc5\x49\x55\x4c\xd5\x67\xd2\x67\xd3\x5a\xbe\x54\x75\x4f\xfa\x57\xd8\x4d\x53\x67\xd5\x67\xd4\x67\xd7\x67\xd6\x53\x45\x67\xd8\x67\xd9\x54\x4e\x67\xda\x54\x4f\x67\xdb\x49\xa6\x67\xdc\x67\xdd\x67\xde\x67\xdf\x67\xe0\x5c\x8b\x67\xe1\x67\xe2\x4e\xd7\x67\xe3\x5a\x6b\x56\xf9\x49\xab\x51\x86\x67\xe4\x54\x46\x52\x4d\x00\x00\x67\xe5\x67\xe6\x67\xe7\x67\xe8\x67\xe9\x67\xea\x67\xeb\x00\x00\x67\xec\x67\xed\x67\xee\x00\x00\x00\x00\x67\xef\x67\xf0\x67\xf1\x67\xf3\x67\xf2\x00\x00\x67\xf4\x57\x4d\x51\xc0\x67\xf5\x67\xf6\x67\xf7\x5b\x41\x67\xf8\x58\x53\x67\xf9\x67\xfa\x00\x00\x67\xfb\x67\xfc\x68\x41\x67\xfd\x68\x42\x4c\xf4\x52\x9b\x68\x43\x68\x44\x4f\x62\x59\xbe\x49\xf8\x68\x45\x68\x46\x68\x47\x59\xf7\x68\x48\x5b\xfc\x68\x49\x53\xcb\x00\x00\x68\x4a\x68\x4b\x51\x54\x68\x4c", /* 9500 */ "\x58\x9b\x56\x99\x68\x4e\x68\x4d\x4a\x9b\x4d\x99\x68\x4f\x68\x50\x58\xe1\x68\x51\x68\x52\x4c\x87\x58\xbe\x68\x53\x68\x54\x68\x55\x54\xf0\x56\xdf\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x5b\x81\x68\x5b\x4a\xec\x52\x4a\x68\x5c\x00\x00\x68\x5d\x68\x5e\x68\x5f\x00\x00\x57\xfc\x68\x60\x51\xdf\x4a\xb7\x5c\x56\x4f\x96\x00\x00\x58\x67\x68\x63\x68\x61\x68\x62\x68\x64\x4b\xa6\x4e\xfb\x4f\xe1\x52\x6c\x68\x65\x68\x66\x00\x00\x68\x67\x68\x6f\x68\x68\x68\x69\x68\x6a\x54\x62\x68\x92\x4b\xcc\x68\x6b\x00\x00\x68\x6c\x68\x6d\x4b\xc5\x52\x5e\x68\x6e\x00\x00\x68\x70\x68\x71\x68\x72\x5b\x93\x00\x00\x68\x73\x52\xf6\x00\x00\x68\x74\x52\xf7\x68\x75\x68\x76\x4c\xe3\x48\xf6\x68\x77\x68\x78\x68\x79\x00\x00\x68\x7a\x68\x7b\x68\x7c\x68\x7d\x00\x00\x68\x7e\x4f\xb4\x68\x82\x68\x7f\x68\x81\x00\x00\x68\x83\x68\x84\x51\x6d\x68\x85\x68\x86\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x50\xd7\x00\x00\x68\x8e\x51\x4d\x68\x8f\x68\x90\x68\x91\x00\x00\x00\x00\x58\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x44", /* 9580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x65\x62\x65\x55\x61\x62\x66\x00\x00\x49\x75\x57\xc9\x4a\xb2\x54\xf1\x62\x67\x58\x70\x62\x68\x4e\xe3\x62\x69\x62\x6a\x52\x66\x5b\x42\x52\xd5\x4d\x8c\x57\xc4\x62\x6b\x52\x97\x62\x6c\x00\x00", /* 9600 */ "\x4c\x47\x4c\xf2\x4d\xd1\x62\x6d\x62\x6e\x5a\xc3\x62\x6f\x00\x00\x62\x70\x59\x6b\x62\x71\x62\x72\x62\x73\x62\x74\x59\x76\x62\x75\x49\xfa\x50\xba\x62\x76\x00\x00\x50\xaa\x62\x77\x62\x78\x62\x79\x00\x00\x62\x7a\x62\x7b\x00\x00\x4c\xb6\x5d\xe1\x00\x00\x4b\xd2\x00\x00\x5d\xe3\x5d\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe5\x00\x00\x00\x00\x00\x00\x54\xed\x00\x00\x00\x00\x5d\xe4\x4c\x60\x59\x95\x59\xf4\x5b\x94\x4f\x77\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x89\x5d\xe7\x5d\xe6\x00\x00\x48\xa1\x57\x73\x00\x00\x5d\xe8\x00\x00\x4c\xbc\x4e\xc9\x51\xbc\x51\xa3\x4a\x62\x5d\xe9\x00\x00\x51\xa9\x52\xaf\x4f\x55\x00\x00\x00\x00\x58\x7e\x00\x00\x00\x00\x00\x00\x5d\xea\x55\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7d\x00\x00\x00\x00\x00\x00\x5d\xeb\x00\x00\x4b\xb7\x5a\xb9\x00\x00\x4a\x9e\x00\x00\x00\x00\x5d\xec\x5a\xc8\x58\x75\x53\x84\x00\x00\x5d\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xee\x00\x00\x5d\xef\x51\x8b\x56\xd4\x58\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x88\x51\xa0\x00\x00\x5d\xf0\x00\x00\x00\x00\x56\x86\x00\x00\x5d\xf1\x00\x00\x56\x87\x59\xfd\x00\x00\x00\x00\x00\x00\x4c\xf3\x00\x00\x00\x00\x5d\xf2\x48\xae\x58\x56\x00\x00\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf3\x00\x00\x00\x00\x62\x64\x00\x00\x00\x00\x51\x45\x00\x00\x00\x00\x6b\xbe\x00\x00\x00\x00\x6b\xbf\x6b\xc0\x52\xd0\x00\x00\x54\xb7\x59\x84\x00\x00\x00\x00\x58\xda\x59\x65\x4e\xae\x4d\x6d\x00\x00\x68\x95\x00\x00\x00\x00\x4a\xc5\x5a\x5a\x6b\xc1\x4a\x9c\x00\x00\x00\x00\x6b\xc2\x00\x00\x00\x00\x4b\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8b\x6b\xa6\x59\x49\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa8\x00\x00\x00\x00\x00\x00\x6b\xa7\x00\x00\x00\x00\x51\x84\x50\xd6\x00\x00\x49\x42\x00\x00\x00\x00\x00\x00\x00\x00\x57\xec\x00\x00", /* 9700 */ "\x58\xe7\x6b\xaa\x00\x00\x00\x00\x58\x97\x00\x00\x6b\xa9\x5b\x91\x6b\xab\x52\x59\x00\x00\x00\x00\x00\x00\x4e\x95\x6b\xad\x6b\xac\x00\x00\x00\x00\x00\x00\x52\xdd\x00\x00\x00\x00\x51\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x4a\x00\x00\x58\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xae\x00\x00\x00\x00\x6b\xaf\x00\x00\x00\x00\x6b\xb0\x00\x00\x51\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd3\x53\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x81\x6b\xa5\x00\x00\x00\x00\x4f\xb7\x00\x00\x00\x00\x4f\xb1\x00\x00\x4b\x86\x00\x00\x00\x00\x4c\x67\x00\x00\x50\x5f\x52\x72\x52\x87\x00\x00\x00\x00\x5c\xcb\x00\x00\x00\x00\x00\x00\x4c\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9a\x59\x45\x00\x00\x48\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x50\x00\x00\x00\x00\x00\x00", /* 9780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xab\x00\x00\x48\xaf\x00\x00\x00\x00\x00\x00\x6c\x52\x6c\x53\x00\x00\x6c\x54\x00\x00\x00\x00\x00\x00\x54\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xce\x00\x00\x00\x00\x6c\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x56\x00\x00\x49\x7e\x00\x00\x6c\x55\x00\x00\x00\x00\x6c\x58\x00\x00\x6c\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa3\x54\xcc\x00\x00\x4d\xaa\x64\xb7\x64\xb8\x64\xb9\x4f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf3\x00\x00\x5a\xce\x55\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb2\x4b\xa4\x54\x8b\x69\x9d\x58\x8f\x56\x53\x58\xea\x64\x90\x57\x88\x4d\x6b\x4b\xd8", /* 9880 */ "\x69\x9e\x48\xe3\x56\x6c\x69\x9f\x5a\xa3\x51\xac\x51\x8d\x53\xc3\x4f\xb0\x69\xa0\x4e\xd4\x00\x00\x69\xa1\x69\xa2\x00\x00\x69\xa3\x59\xc2\x53\xb4\x00\x00\x57\x67\x69\xa4\x00\x00\x5a\x51\x50\x65\x56\xe1\x00\x00\x69\xa5\x69\xa6\x59\x75\x4b\xed\x69\xa7\x69\xa8\x4b\x7f\x69\xa9\x69\xaa\x00\x00\x49\xfb\x69\xab\x69\xac\x54\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x88\x00\x00\x00\x00\x66\xa8\x66\xa9\x66\xaa\x00\x00\x66\xab\x00\x00\x00\x00\x53\xad\x66\xac\x66\xad\x00\x00\x00\x00\x00\x00\x4c\x69\x55\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb7\x6c\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x70\x00\x00\x00\x00\x49\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x73\x6c\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xba\x00\x00\x4e\xa1\x00\x00\x61\xbb\x61\xbc\x61\xbd\x61\xbe\x61\xbf\x61\xc0\x4c\x59\x59\xfa\x4f\x44\x55\xcd\x49\x45\x56\x67\x00\x00\x61\xc1\x4b\xfb\x54\xc3\x61\xc2\x00\x00\x00\x00\x4f\x68\x00\x00\x49\x9e\x61\xc3\x00\x00\x4b\xf5", /* 9980 */ "\x61\xc4\x52\xd8\x00\x00\x00\x00\x61\xc5\x58\x7a\x4d\x7d\x61\xc6\x50\xa0\x00\x00\x61\xc7\x49\xf5\x00\x00\x61\xc8\x00\x00\x51\x94\x61\xc9\x61\xca\x51\xf7\x61\xcb\x61\xcc\x61\xcd\x55\xd6\x5c\xb7\x5d\x86\x58\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa4\x00\x00\x00\x00\x5e\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xec\x5a\xa5\x57\x74\x59\x51\x4a\x7b\x54\x9e\x00\x00\x49\xb4\x51\xbe\x63\xdf\x55\xba\x63\xe0\x63\xe1\x4f\xd3\x63\xe2\x5c\x44\x57\x75\x63\xe4\x4e\xdc\x63\xe3", /* 9a80 */ "\x63\xe5\x63\xe6\x51\xed\x00\x00\x4f\x5e\x63\xe7\x51\xe5\x4d\xa6\x63\xe8\x00\x00\x63\xe9\x4a\x72\x59\x8a\x00\x00\x00\x00\x50\x45\x63\xea\x53\xee\x63\xeb\x63\xec\x00\x00\x00\x00\x63\xed\x53\xac\x63\xee\x00\x00\x55\x47\x63\xef\x63\xf0\x63\xf1\x63\x59\x63\xf2\x63\xf3\x51\xe1\x63\xf4\x63\xf5\x5b\xe7\x63\xf6\x00\x00\x63\xf7\x4d\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x5b\x6c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x5e\x6c\x5c\x4d\xa0\x00\x00\x6c\x5f\x00\x00\x6c\x60\x00\x00\x00\x00\x00\x00\x6c\x62\x6c\x61\x6c\x64\x00\x00\x00\x00\x6c\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x65\x6c\x66\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x67\x00\x00\x56\x89\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x74\x00\x00\x6c\x75\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x76\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x78\x00\x00\x6c\x7a\x00\x00\x6c\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7b\x00\x00\x6c\x79\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x5c\x77\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7d\x00\x00\x00\x00\x00\x00\x6c\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7f\x00\x00\x00\x00\x00\x00\x6c\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6b\x00\x00\x00\x00\x5c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x98\x4d\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9e\x4e\x8b\x6c\x69\x53\xc6\x6c\x68\x00\x00\x6c\x6a\x6c\x6c\x6c\x6b\x00\x00\x00\x00\x00\x00\x6c\x6d\x00\x00\x57\xb9\x00\x00\x6c\x6e\x00\x00\x00\x00\x52\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b80 */ NULL, /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x84\x00\x00\x00\x00\x6b\xce", /* 9c80 */ "\x00\x00\x51\xb2\x6b\xcf\x00\x00\x00\x00\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\x00\x00\x00\x00\x6b\xd5\x00\x00\x49\x4b\x6b\xd6\x00\x00\x6b\xd7\x6b\xd8\x6b\xd9\x00\x00\x6b\xda\x6b\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xdc\x6b\xdd\x58\x6a\x00\x00\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x50\xef\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x00\x00\x6b\xe9\x00\x00\x6b\xea\x6b\xeb\x00\x00\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x4f\xa7\x00\x00\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xf9\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\x00\x00\x00\x00\x6b\xfc\x6b\xfd\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\x00\x00\x00\x00\x6c\x46\x6c\x47\x6c\x48\x49\x8f\x6c\x49\x6c\x4a\x6c\x4b\x00\x00\x00\x00\x6c\x4c\x6c\x4d\x51\x7b\x6c\x4e\x00\x00\x00\x00\x6c\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf0\x68\xae\x4e\xa5\x68\xaf\x52\x9a\x00\x00\x53\x58\x59\x5b\x00\x00\x68\xb0\x68\xb1\x68\xb2\x68\xb3\x68\xb4\x59\x5c\x00\x00\x59\x8d\x00\x00\x68\xb6\x68\xb5\x5a\xa6\x00\x00\x57\x72\x68\xb7\x68\xb9\x68\xb8\x68\xba\x68\xbb\x00\x00\x00\x00\x4c\xea\x68\xbc\x4d\xe7\x00\x00\x68\xbd\x68\xbe\x4f\xe8\x68\xbf\x4b\xeb\x68\xc0\x68\xc1\x68\xc2\x68\xc3\x54\xb4\x68\xc4\x68\xc5\x00\x00\x68\xc6\x53\x95\x00\x00\x68\xc7\x00\x00\x00\x00\x00\x00\x68\xc8\x00\x00\x68\xc9\x6c\x5d\x00\x00\x68\xca\x68\xcb\x68\xcc\x00\x00\x68\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x68\xce\x4d\xd6\x00\x00\x68\xcf\x68\xd0\x68\xd1\x68\xd2\x68\xd3\x68\xd4\x68\xd5\x68\xd7\x00\x00\x00\x00\x5a\x45\x68\xd6\x00\x00\x68\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5a\x51\xb8", /* 9e80 */ "\x00\x00\x00\x00\x6c\x85\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x86\x6c\x87\x00\x00\x00\x00\x6c\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x89\x51\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x8b\x00\x00\x6c\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xef\x00\x00\x00\x00\x00\x00\x6a\xee\x00\x00\x00\x00\x51\xe8\x00\x00\x6c\x82\x6c\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x85\x00\x00\x00\x00\x00\x00\x55\xf1\x50\xe7\x68\xa3\x00\x00\x4d\xd9\x00\x00\x00\x00\x54\x4d\x00\x00\x00\x00\x00\x00\x52\xab\x00\x00\x00\x00\x6c\x8d\x6c\x8e\x6c\x8f\x00\x00\x6c\x91\x6c\x90\x00\x00\x6c\x92\x00\x00\x00\x00\x6c\x95\x00\x00\x6c\x94\x00\x00\x6c\x93\x6c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x8a\x00\x00\x67\x8b\x67\x8c\x00\x00\x6b\xbb\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xbc\x00\x00\x6b\xbd\x4b\xa5\x00\x00\x5c\xbd\x00\x00\x00\x00\x4d\x64\x00\x00\x00\x00\x00\x00\x5c\xba\x00\x00\x5e\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf2\x00\x00\x6c\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x99\x00\x00\x00\x00\x6c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9c\x00\x00\x6c\x9b\x00\x00\x49\x67\x00\x00\x6c\x9d\x6c\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x66\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7d", /* 9f80 */ "\x6b\xb2\x00\x00\x00\x00\x6b\xb3\x51\x85\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x54\xa2\x6b\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9b\x4d\x48\x67\x89\x00\x00\x00\x00\x00\x00\x4d\x8b\x5d\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1", /* e080 */ "\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85", /* e100 */ "\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48", /* e180 */ "\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9", /* e200 */ "\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d", /* e280 */ "\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50", /* e300 */ "\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1", /* e380 */ "\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95", /* e400 */ "\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58", /* e480 */ "\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9", /* e500 */ "\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d", /* e580 */ "\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60", /* e600 */ "\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1", /* e680 */ "\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5", /* e700 */ "\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5b\x44\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-837_P100-2000 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x21\x6a\x21\x6b\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\xf8\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x15\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x64\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x65\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x16\x30\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x36\x22\x27\x22\x28\x22\x11\x22\x0f\x22\x2a\x22\x29\x22\x08\x22\x37\x22\x1a\x22\xa5\x22\x25\x22\x20\x23\x12\x22\x99\x22\x2b\x22\x2e\x22\x61\x22\x4c\x22\x48\x22\x3d\x22\x1d\x00\x00\x22\x6e\x22\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x20\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x88\x24\x89\x24\x8a\x24\x8b\x24\x8c\x24\x8d\x24\x8e\x24\x8f\x24\x90\x24\x91\x24\x92\x24\x93\x24\x94\x24\x95\x24\x96\x24\x97\x24\x98\x24\x99\x24\x9a\x24\x9b\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x24\x7e\x24\x7f\x24\x80\x24\x81\x24\x82\x24\x83\x24\x84\x24\x85\x24\x86\x24\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x20\x32\x21\x32\x22\x32\x23\x32\x24\x32\x25\x32\x26\x32\x27\x32\x28\x32\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xe1\x01\xce\x00\xe0\x01\x13\x00\xe9\x01\x1b\x00\xe8\x01\x2b\x00\xed\x01\xd0\x00\xec\x01\x4d\x00\xf3\x01\xd2\x00\xf2\x01\x6b\x00\xfa\x01\xd4\x00\xf9\x01\xd6\x01\xd8\x01\xda\x01\xdc\x00\xfc\x00\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f", /* 4680 */ "\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x25\x01\x25\x02\x25\x03\x25\x04\x25\x05\x25\x06\x25\x07\x25\x08\x25\x09\x25\x0a\x25\x0b\x25\x0c\x25\x0d\x25\x0e\x25\x0f\x25\x10\x25\x11\x25\x12\x25\x13\x25\x14\x25\x15\x25\x16\x25\x17\x25\x18\x25\x19\x25\x1a\x25\x1b\x25\x1c\x25\x1d\x25\x1e\x25\x1f\x25\x20\x25\x21\x25\x22\x25\x23\x25\x24\x25\x25\x25\x26\x25\x27\x25\x28\x25\x29\x25\x2a\x25\x2b\x25\x2c\x25\x2d\x25\x2e\x25\x2f\x25\x30\x25\x31\x25\x32\x25\x33\x25\x34\x25\x35\x25\x36\x25\x37\x25\x38\x25\x39\x25\x3a\x25\x3b\x25\x3c\x25\x3d\x25\x3e\x25\x3f\x25\x40\x25\x41\x25\x42\x25\x43\x25\x44\x25\x45\x25\x46\x25\x47\x25\x48\x25\x49\x25\x4a\x25\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4a\x96\x3f\x57\xc3\x63\x28\x54\xce\x55\x09\x54\xc0\x76\x91\x76\x4c\x85\x3c\x77\xee\x82\x7e\x78\x8d\x72\x31\x96\x98\x97\x8d\x6c\x28\x5b\x89\x4f\xfa\x63\x09\x66\x97\x5c\xb8\x80\xfa\x68\x48\x80\xae\x66\x02\x76\xce\x51\xf9\x65\x56\x71\xac\x7f\xf1\x88\x84\x50\xb2\x59\x65\x61\xca\x6f\xb3\x82\xad\x63\x4c\x62\x52\x53\xed\x54\x27\x7b\x06\x51\x6b\x75\xa4\x5d\xf4\x62\xd4\x8d\xcb\x97\x76\x62\x8a\x80\x19\x57\x5d\x97\x38\x7f\x62\x72\x38\x76\x7d\x67\xcf\x76\x7e\x64\x46\x4f\x70\x8d\x25\x62\xdc\x7a\x17\x65\x91\x73\xed\x64\x2c\x62\x73\x82\x2c\x98\x81\x67\x7f\x72\x48\x62\x6e\x62\xcc\x4f\x34\x74\xe3\x53\x4a\x52\x9e\x7e\xca\x90\xa6\x5e\x2e\x68\x86\x69\x9c\x81\x80\x7e\xd1\x68\xd2\x78\xc5\x86\x8c\x95\x51\x50\x8d\x8c\x24\x82\xde\x80\xde\x53\x05\x89\x12\x52\x65\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x84\x96\xf9\x4f\xdd\x58\x21\x99\x71\x5b\x9d\x62\xb1\x62\xa5\x66\xb4\x8c\x79\x9c\x8d\x72\x06\x67\x6f\x78\x91\x60\xb2\x53\x51\x53\x17\x8f\x88\x80\xcc\x8d\x1d\x94\xa1\x50\x0d\x72\xc8\x59\x07\x60\xeb\x71\x19\x88\xab\x59\x54\x82\xef\x67\x2c\x7b\x28\x5d\x29\x7e\xf7\x75\x2d\x6c\xf5\x8e\x66\x8f\xf8\x90\x3c\x9f\x3b\x6b\xd4\x91\x19\x7b\x14\x5f\x7c\x78\xa7\x84\xd6\x85\x3d\x6b\xd5\x6b\xd9\x6b\xd6\x5e\x01\x5e\x87\x75\xf9\x95\xed\x65\x5d\x5f\x0a\x5f\xc5\x8f\x9f\x58\xc1\x81\xc2\x90\x7f\x96\x5b\x97\xad\x8f\xb9", /* 4980 */ "\x00\x00\x7f\x16\x8d\x2c\x62\x41\x4f\xbf\x53\xd8\x53\x5e\x8f\xa8\x8f\xa9\x8f\xab\x90\x4d\x68\x07\x5f\x6a\x81\x98\x88\x68\x9c\xd6\x61\x8b\x52\x2b\x76\x2a\x5f\x6c\x65\x8c\x6f\xd2\x6e\xe8\x5b\xbe\x64\x48\x51\x75\x51\xb0\x67\xc4\x4e\x19\x79\xc9\x99\x7c\x70\xb3\x75\xc5\x5e\x76\x73\xbb\x83\xe0\x64\xad\x62\xe8\x94\xb5\x6c\xe2\x53\x5a\x52\xc3\x64\x0f\x94\xc2\x7b\x94\x4f\x2f\x5e\x1b\x82\x36\x81\x16\x81\x8a\x6e\x24\x6c\xca\x9a\x73\x63\x55\x53\x5c\x54\xfa\x88\x65\x57\xe0\x4e\x0d\x5e\x03\x6b\x65\x7c\x3f\x90\xe8\x60\x16\x64\xe6\x73\x1c\x88\xc1\x67\x50\x62\x4d\x8d\x22\x77\x6c\x8e\x29\x91\xc7\x5f\x69\x83\xdc\x85\x21\x99\x10\x53\xc2\x86\x95\x6b\x8b\x60\xed\x60\xe8\x70\x7f\x82\xcd\x82\x31\x4e\xd3\x6c\xa7\x85\xcf\x64\xcd\x7c\xd9\x69\xfd\x66\xf9\x83\x49\x53\x95\x7b\x56\x4f\xa7\x51\x8c\x6d\x4b\x5c\x42\x8e\x6d\x63\xd2\x53\xc9\x83\x2c\x83\x36\x67\xe5\x78\xb4\x64\x3d\x5b\xdf\x5c\x94\x5d\xee\x8b\xe7\x62\xc6\x67\xf4\x8c\x7a\x64\x00\x63\xba\x87\x49\x99\x8b\x8c\x17\x7f\x20\x94\xf2\x4e\xa7\x96\x10\x98\xa4\x66\x0c\x73\x16\x00\x00\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x3a\x5c\x1d\x5e\x38\x95\x7f\x50\x7f\x80\xa0\x53\x82\x65\x5e\x75\x45\x55\x31\x50\x21\x8d\x85\x62\x84\x94\x9e\x67\x1d\x56\x32\x6f\x6e\x5d\xe2\x54\x35\x70\x92\x8f\x66\x62\x6f\x64\xa4\x63\xa3\x5f\x7b\x6f\x88\x90\xf4\x81\xe3\x8f\xb0\x5c\x18\x66\x68\x5f\xf1\x6c\x89\x96\x48\x8d\x81\x88\x6c\x64\x91\x79\xf0\x57\xce\x6a\x59\x62\x10\x54\x48\x4e\x58\x7a\x0b\x60\xe9\x6f\x84\x8b\xda\x62\x7f\x90\x1e\x9a\x8b\x79\xe4\x54\x03\x75\xf4\x63\x01\x53\x19\x6c\x60\x8f\xdf\x5f\x1b\x9a\x70\x80\x3b\x9f\x7f\x4f\x88\x5c\x3a", /* 4a80 */ "\x00\x00\x8d\x64\x7f\xc5\x65\xa5\x70\xbd\x51\x45\x51\xb2\x86\x6b\x5d\x07\x5b\xa0\x62\xbd\x91\x6c\x75\x74\x8e\x0c\x7a\x20\x61\x01\x7b\x79\x4e\xc7\x7e\xf8\x77\x85\x4e\x11\x81\xed\x52\x1d\x51\xfa\x6a\x71\x53\xa8\x8e\x87\x95\x04\x96\xcf\x6e\xc1\x96\x64\x69\x5a\x78\x40\x50\xa8\x77\xd7\x64\x10\x89\xe6\x59\x04\x63\xe3\x5d\xdd\x7a\x7f\x69\x3d\x4f\x20\x82\x39\x55\x98\x4e\x32\x75\xae\x7a\x97\x5e\x62\x5e\x8a\x95\xef\x52\x1b\x54\x39\x70\x8a\x63\x76\x95\x24\x57\x82\x66\x25\x69\x3f\x91\x87\x55\x07\x6d\xf3\x7e\xaf\x88\x22\x62\x33\x7e\xf0\x75\xb5\x83\x28\x78\xc1\x96\xcc\x8f\x9e\x61\x48\x74\xf7\x8b\xcd\x6b\x64\x52\x3a\x8d\x50\x6b\x21\x80\x6a\x84\x71\x56\xf1\x53\x06\x4e\xce\x4e\x1b\x51\xd1\x7c\x97\x91\x8b\x7c\x07\x4f\xc3\x8e\x7f\x7b\xe1\x7a\x9c\x64\x67\x5d\x14\x50\xac\x81\x06\x76\x01\x7c\xb9\x6d\xec\x7f\xe0\x67\x51\x5b\x58\x5b\xf8\x78\xcb\x64\xae\x64\x13\x63\xaa\x63\x2b\x95\x19\x64\x2d\x8f\xbe\x7b\x54\x76\x29\x62\x53\x59\x27\x54\x46\x6b\x79\x50\xa3\x62\x34\x5e\x26\x6b\x86\x4e\xe3\x8d\x37\x88\x8b\x5f\x85\x90\x2e\x00\x00\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x20\x80\x3d\x62\xc5\x4e\x39\x53\x55\x90\xf8\x63\xb8\x80\xc6\x65\xe6\x6c\x2e\x4f\x46\x60\xee\x6d\xe1\x8b\xde\x5f\x39\x86\xcb\x5f\x53\x63\x21\x51\x5a\x83\x61\x68\x63\x52\x00\x63\x63\x8e\x48\x50\x12\x5c\x9b\x79\x77\x5b\xfc\x52\x30\x7a\x3b\x60\xbc\x90\x53\x76\xd7\x5f\xb7\x5f\x97\x76\x84\x8e\x6c\x70\x6f\x76\x7b\x7b\x49\x77\xaa\x51\xf3\x90\x93\x58\x24\x4f\x4e\x6e\xf4\x8f\xea\x65\x4c\x7b\x1b\x72\xc4\x6d\xa4\x7f\xdf\x5a\xe1\x62\xb5\x5e\x95\x57\x30\x84\x82\x7b\x2c\x5e\x1d\x5f\x1f\x90\x12\x7f\x14\x98\xa0", /* 4b80 */ "\x00\x00\x63\x82\x6e\xc7\x78\x98\x70\xb9\x51\x78\x97\x5b\x57\xab\x75\x35\x4f\x43\x75\x38\x5e\x97\x60\xe6\x59\x60\x6d\xc0\x6b\xbf\x78\x89\x53\xfc\x96\xd5\x51\xcb\x52\x01\x63\x89\x54\x0a\x94\x93\x8c\x03\x8d\xcc\x72\x39\x78\x9f\x87\x76\x8f\xed\x8c\x0d\x53\xe0\x4e\x01\x76\xef\x53\xee\x94\x89\x98\x76\x9f\x0e\x95\x2d\x5b\x9a\x8b\xa2\x4e\x22\x4e\x1c\x51\xac\x84\x63\x61\xc2\x52\xa8\x68\x0b\x4f\x97\x60\x6b\x51\xbb\x6d\x1e\x51\x5c\x62\x96\x65\x97\x96\x61\x8c\x46\x90\x17\x75\xd8\x90\xfd\x77\x63\x6b\xd2\x72\x8a\x72\xec\x8b\xfb\x58\x35\x77\x79\x8d\x4c\x67\x5c\x95\x40\x80\x9a\x5e\xa6\x6e\x21\x59\x92\x7a\xef\x77\xed\x95\x3b\x6b\xb5\x65\xad\x7f\x0e\x58\x06\x51\x51\x96\x1f\x5b\xf9\x58\xa9\x54\x28\x8e\x72\x65\x66\x98\x7f\x56\xe4\x94\x9d\x76\xfe\x90\x41\x63\x87\x54\xc6\x59\x1a\x59\x3a\x57\x9b\x8e\xb2\x67\x35\x8d\xfa\x82\x35\x52\x41\x60\xf0\x58\x15\x86\xfe\x5c\xe8\x9e\x45\x4f\xc4\x98\x9d\x8b\xb9\x5a\x25\x60\x76\x53\x84\x62\x7c\x90\x4f\x91\x02\x99\x7f\x60\x69\x80\x0c\x51\x3f\x80\x33\x5c\x14\x99\x75\x6d\x31\x4e\x8c\x00\x00\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x30\x53\xd1\x7f\x5a\x7b\x4f\x4f\x10\x4e\x4f\x96\x00\x6c\xd5\x73\xd0\x85\xe9\x5e\x06\x75\x6a\x7f\xfb\x6a\x0a\x77\xfe\x94\x92\x7e\x41\x51\xe1\x70\xe6\x53\xcd\x8f\xd4\x83\x03\x8d\x29\x72\xaf\x99\x6d\x6c\xdb\x57\x4a\x82\xb3\x65\xb9\x80\xaa\x62\x3f\x96\x32\x59\xa8\x4e\xff\x8b\xbf\x7e\xba\x65\x3e\x83\xf2\x97\x5e\x55\x61\x98\xde\x80\xa5\x53\x2a\x8b\xfd\x54\x20\x80\xba\x5e\x9f\x6c\xb8\x8d\x39\x82\xac\x91\x5a\x54\x29\x6c\x1b\x52\x06\x7e\xb7\x57\x5f\x71\x1a\x6c\x7e\x7c\x89\x59\x4b\x4e\xfd\x5f\xff\x61\x24", /* 4c80 */ "\x00\x00\x7c\xaa\x4e\x30\x5c\x01\x67\xab\x87\x02\x5c\xf0\x95\x0b\x98\xce\x75\xaf\x70\xfd\x90\x22\x51\xaf\x7f\x1d\x8b\xbd\x59\x49\x51\xe4\x4f\x5b\x54\x26\x59\x2b\x65\x77\x80\xa4\x5b\x75\x62\x76\x62\xc2\x8f\x90\x5e\x45\x6c\x1f\x7b\x26\x4f\x0f\x4f\xd8\x67\x0d\x6d\x6e\x6d\xaa\x79\x8f\x88\xb1\x5f\x17\x75\x2b\x62\x9a\x8f\x85\x4f\xef\x91\xdc\x65\xa7\x81\x2f\x81\x51\x5e\x9c\x81\x50\x8d\x74\x52\x6f\x89\x86\x8d\x4b\x59\x0d\x50\x85\x4e\xd8\x96\x1c\x72\x36\x81\x79\x8d\x1f\x5b\xcc\x8b\xa3\x96\x44\x59\x87\x7f\x1a\x54\x90\x56\x76\x56\x0e\x8b\xe5\x65\x39\x69\x82\x94\x99\x76\xd6\x6e\x89\x5e\x72\x75\x18\x67\x46\x67\xd1\x7a\xff\x80\x9d\x8d\x76\x61\x1f\x79\xc6\x65\x62\x8d\x63\x51\x88\x52\x1a\x94\xa2\x7f\x38\x80\x9b\x7e\xb2\x5c\x97\x6e\x2f\x67\x60\x7b\xd9\x76\x8b\x9a\xd8\x81\x8f\x7f\x94\x7c\xd5\x64\x1e\x95\x50\x7a\x3f\x54\x4a\x54\xe5\x6b\x4c\x64\x01\x62\x08\x9e\x3d\x80\xf3\x75\x99\x52\x72\x97\x69\x84\x5b\x68\x3c\x86\xe4\x96\x01\x96\x94\x94\xec\x4e\x2a\x54\x04\x7e\xd9\x68\x39\x8d\xdf\x80\x15\x66\xf4\x5e\x9a\x7f\xb9\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x80\x3f\x68\x97\x5d\xe5\x65\x3b\x52\x9f\x60\x6d\x9f\x9a\x4f\x9b\x8e\xac\x51\x6c\x5b\xab\x5f\x13\x5d\xe9\x6c\x5e\x62\xf1\x8d\x21\x51\x71\x94\xa9\x52\xfe\x6c\x9f\x82\xdf\x72\xd7\x57\xa2\x67\x84\x8d\x2d\x59\x1f\x8f\x9c\x83\xc7\x54\x95\x7b\x8d\x4f\x30\x6c\xbd\x5b\x64\x59\xd1\x9f\x13\x53\xe4\x86\xca\x9a\xa8\x8c\x37\x80\xa1\x65\x45\x98\x7e\x56\xfa\x96\xc7\x52\x2e\x74\xdc\x52\x50\x5b\xe1\x63\x02\x89\x02\x4e\x56\x62\xd0\x60\x2a\x68\xfa\x51\x73\x5b\x98\x51\xa0\x89\xc2\x7b\xa1\x99\x86\x7f\x50\x60\xef", /* 4d80 */ "\x00\x00\x70\x4c\x8d\x2f\x51\x49\x5e\x7f\x90\x1b\x74\x70\x89\xc4\x57\x2d\x78\x45\x5f\x52\x9f\x9f\x95\xfa\x8f\x68\x9b\x3c\x8b\xe1\x76\x78\x68\x42\x67\xdc\x8d\xea\x8d\x35\x52\x3d\x8f\x8a\x6e\xda\x68\xcd\x95\x05\x90\xed\x56\xfd\x67\x9c\x88\xf9\x8f\xc7\x54\xc8\x9a\xb8\x5b\x69\x6d\x77\x6c\x26\x4e\xa5\x5b\xb3\x9a\x87\x91\x63\x61\xa8\x90\xaf\x97\xe9\x54\x2b\x6d\xb5\x5b\xd2\x51\xfd\x55\x8a\x7f\x55\x7f\xf0\x64\xbc\x63\x4d\x65\xf1\x61\xbe\x60\x8d\x71\x0a\x6c\x57\x6c\x49\x59\x2f\x67\x6d\x82\x2a\x58\xd5\x56\x8e\x8c\x6a\x6b\xeb\x90\xdd\x59\x7d\x80\x17\x53\xf7\x6d\x69\x54\x75\x55\x9d\x83\x77\x83\xcf\x68\x38\x79\xbe\x54\x8c\x4f\x55\x54\x08\x76\xd2\x8c\x89\x96\x02\x6c\xb3\x6d\xb8\x8d\x6b\x89\x10\x9e\x64\x8d\x3a\x56\x3f\x9e\xd1\x75\xd5\x5f\x88\x72\xe0\x60\x68\x54\xfc\x4e\xa8\x6a\x2a\x88\x61\x60\x52\x8f\x70\x54\xc4\x70\xd8\x86\x79\x9e\x3f\x6d\x2a\x5b\x8f\x5f\x18\x7e\xa2\x55\x89\x4f\xaf\x73\x34\x54\x3c\x53\x9a\x50\x19\x54\x0e\x54\x7c\x4e\x4e\x5f\xfd\x74\x5a\x58\xf6\x84\x6b\x80\xe1\x87\x74\x72\xd0\x7c\xca\x6e\x56\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x27\x86\x4e\x55\x2c\x62\xa4\x4e\x92\x6c\xaa\x62\x37\x82\xb1\x54\xd7\x53\x4e\x73\x3e\x6e\xd1\x75\x3b\x52\x12\x53\x16\x8b\xdd\x69\xd0\x5f\x8a\x60\x00\x6d\xee\x57\x4f\x6b\x22\x73\xaf\x68\x53\x8f\xd8\x7f\x13\x63\x62\x60\xa3\x55\x24\x75\xea\x8c\x62\x71\x15\x6d\xa3\x5b\xa6\x5e\x7b\x83\x52\x61\x4c\x9e\xc4\x78\xfa\x87\x57\x7c\x27\x76\x87\x51\xf0\x60\xf6\x71\x4c\x66\x43\x5e\x4c\x60\x4d\x8c\x0e\x70\x70\x63\x25\x8f\x89\x5f\xbd\x60\x62\x86\xd4\x56\xde\x6b\xc1\x60\x94\x61\x67\x53\x49\x60\xe0\x66\x66\x8d\x3f", /* 4e80 */ "\x00\x00\x79\xfd\x4f\x1a\x70\xe9\x6c\x47\x8b\xb3\x8b\xf2\x7e\xd8\x83\x64\x66\x0f\x5a\x5a\x9b\x42\x6d\x51\x6d\xf7\x8c\x41\x6d\x3b\x4f\x19\x70\x6b\x83\xb7\x62\x16\x60\xd1\x97\x0d\x8d\x27\x79\x78\x51\xfb\x57\x3e\x57\xfa\x67\x3a\x75\x78\x7a\x3d\x79\xef\x7b\x95\x80\x8c\x99\x65\x8f\xf9\x6f\xc0\x8b\xa5\x9e\x21\x59\xec\x7e\xe9\x7f\x09\x54\x09\x67\x81\x68\xd8\x8f\x91\x7c\x4d\x96\xc6\x53\xca\x60\x25\x75\xbe\x6c\x72\x53\x73\x5a\xc9\x7e\xa7\x63\x24\x51\xe0\x81\x0a\x5d\xf1\x84\xdf\x62\x80\x51\x80\x5b\x63\x4f\x0e\x79\x6d\x52\x42\x60\xb8\x6d\x4e\x5b\xc4\x5b\xc2\x8b\xa1\x8b\xb0\x65\xe2\x5f\xcc\x96\x45\x59\x93\x7e\xe7\x7e\xaa\x56\x09\x67\xb7\x59\x39\x4f\x73\x5b\xb6\x52\xa0\x83\x5a\x98\x8a\x8d\x3e\x75\x32\x94\xbe\x50\x47\x7a\x3c\x4e\xf7\x67\xb6\x9a\x7e\x5a\xc1\x6b\x7c\x76\xd1\x57\x5a\x5c\x16\x7b\x3a\x95\xf4\x71\x4e\x51\x7c\x80\xa9\x82\x70\x59\x78\x7f\x04\x83\x27\x68\xc0\x67\xec\x78\xb1\x78\x77\x62\xe3\x63\x61\x7b\x80\x4f\xed\x52\x6a\x51\xcf\x83\x50\x69\xdb\x92\x74\x8d\xf5\x8d\x31\x89\xc1\x95\x2e\x7b\xad\x4e\xf6\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x65\x82\x30\x52\x51\x99\x6f\x6e\x10\x6e\x85\x6d\xa7\x5e\xfa\x50\xf5\x59\xdc\x5c\x06\x6d\x46\x6c\x5f\x75\x86\x84\x8b\x68\x68\x59\x56\x8b\xb2\x53\x20\x91\x71\x96\x4d\x85\x49\x69\x12\x79\x01\x71\x26\x80\xf6\x4e\xa4\x90\xca\x6d\x47\x9a\x84\x5a\x07\x56\xbc\x64\x05\x94\xf0\x77\xeb\x4f\xa5\x81\x1a\x72\xe1\x89\xd2\x99\x7a\x7f\x34\x7e\xde\x52\x7f\x65\x59\x91\x75\x8f\x7f\x8f\x83\x53\xeb\x7a\x96\x63\xed\x63\xa5\x76\x86\x79\xf8\x88\x57\x96\x36\x62\x2a\x52\xab\x82\x82\x68\x54\x67\x70\x63\x77\x77\x6b\x7a\xed", /* 4f80 */ "\x00\x00\x6d\x01\x7e\xd3\x89\xe3\x59\xd0\x62\x12\x85\xc9\x82\xa5\x75\x4c\x50\x1f\x4e\xcb\x75\xa5\x8b\xeb\x5c\x4a\x5d\xfe\x7b\x4b\x65\xa4\x91\xd1\x4e\xca\x6d\x25\x89\x5f\x7d\x27\x95\x26\x4e\xc5\x8c\x28\x8f\xdb\x97\x73\x66\x4b\x79\x81\x8f\xd1\x70\xec\x6d\x78\x5c\x3d\x52\xb2\x83\x46\x51\x62\x83\x0e\x77\x5b\x66\x76\x9c\xb8\x4e\xac\x60\xca\x7c\xbe\x7c\xb3\x7e\xcf\x4e\x95\x8b\x66\x66\x6f\x98\x88\x97\x59\x58\x83\x65\x6c\x95\x5c\x5f\x84\x75\xc9\x97\x56\x7a\xdf\x7a\xde\x51\xc0\x70\xaf\x7a\x98\x63\xea\x7a\x76\x7e\xa0\x73\x96\x97\xed\x4e\x45\x70\x78\x4e\x5d\x91\x52\x53\xa9\x65\x51\x65\xe7\x81\xfc\x82\x05\x54\x8e\x5c\x31\x75\x9a\x97\xa0\x62\xd8\x72\xd9\x75\xbd\x5c\x45\x9a\x79\x83\xca\x5c\x40\x54\x80\x77\xe9\x4e\x3e\x6c\xae\x80\x5a\x62\xd2\x63\x6e\x5d\xe8\x51\x77\x8d\xdd\x8e\x1e\x95\x2f\x4f\xf1\x53\xe5\x60\xe7\x70\xac\x52\x67\x63\x50\x9e\x43\x5a\x1f\x50\x26\x77\x37\x53\x77\x7e\xe2\x64\x85\x65\x2b\x62\x89\x63\x98\x50\x14\x72\x35\x89\xc9\x51\xb3\x8b\xc0\x7e\xdd\x57\x47\x83\xcc\x94\xa7\x51\x9b\x54\x1b\x5c\xfb\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x7a\xe3\x6d\x5a\x90\xe1\x9a\x8f\x55\x80\x54\x96\x53\x61\x54\xaf\x5f\x00\x63\xe9\x69\x77\x51\xef\x61\x68\x52\x0a\x58\x2a\x52\xd8\x57\x4e\x78\x0d\x77\x0b\x5e\xb7\x61\x77\x7c\xe0\x62\x5b\x62\x97\x4e\xa2\x70\x95\x80\x03\x62\xf7\x70\xe4\x97\x60\x57\x77\x82\xdb\x67\xef\x68\xf5\x78\xd5\x98\x97\x79\xd1\x58\xf3\x54\xb3\x53\xef\x6e\x34\x51\x4b\x52\x3b\x5b\xa2\x8b\xfe\x80\xaf\x55\x43\x57\xa6\x60\x73\x57\x51\x54\x2d\x7a\x7a\x60\x50\x5b\x54\x63\xa7\x62\xa0\x53\xe3\x62\x63\x5b\xc7\x67\xaf\x54\xed\x7a\x9f", /* 5080 */ "\x00\x00\x82\xe6\x91\x77\x5e\x93\x88\xe4\x59\x38\x57\xae\x63\x0e\x8d\xe8\x80\xef\x57\x57\x7b\x77\x4f\xa9\x5f\xeb\x5b\xbd\x6b\x3e\x53\x21\x7b\x50\x72\xc2\x68\x46\x77\xff\x77\x36\x65\xf7\x51\xb5\x4e\x8f\x76\xd4\x5c\xbf\x7a\xa5\x84\x75\x59\x4e\x9b\x41\x50\x80\x99\x88\x61\x27\x6e\x83\x57\x64\x66\x06\x63\x46\x56\xf0\x62\xec\x62\x69\x5e\xd3\x96\x14\x57\x83\x62\xc9\x55\x87\x87\x21\x81\x4a\x8f\xa3\x55\x66\x83\xb1\x67\x65\x8d\x56\x84\xdd\x5a\x6a\x68\x0f\x62\xe6\x7b\xee\x96\x11\x51\x70\x6f\x9c\x8c\x30\x63\xfd\x89\xc8\x61\xd2\x7f\x06\x70\xc2\x6e\xe5\x74\x05\x69\x94\x72\xfc\x5e\xca\x90\xce\x67\x17\x6d\x6a\x63\x5e\x52\xb3\x72\x62\x80\x01\x4f\x6c\x59\xe5\x91\x6a\x70\xd9\x6d\x9d\x52\xd2\x4e\x50\x96\xf7\x95\x6d\x85\x7e\x78\xca\x7d\x2f\x51\x21\x57\x92\x64\xc2\x80\x8b\x7c\x7b\x6c\xea\x68\xf1\x69\x5e\x51\xb7\x53\x98\x68\xa8\x72\x81\x9e\xce\x7b\xf1\x72\xf8\x79\xbb\x6f\x13\x74\x06\x67\x4e\x91\xcc\x9c\xa4\x79\x3c\x83\x89\x83\x54\x54\x0f\x68\x17\x4e\x3d\x53\x89\x52\xb1\x78\x3e\x53\x86\x52\x29\x50\x88\x4f\x8b\x4f\xd0\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe2\x7a\xcb\x7c\x92\x6c\xa5\x96\xb6\x52\x9b\x74\x83\x54\xe9\x4f\xe9\x80\x54\x83\xb2\x8f\xde\x95\x70\x5e\xc9\x60\x1c\x6d\x9f\x5e\x18\x65\x5b\x81\x38\x94\xfe\x60\x4b\x70\xbc\x7e\xc3\x7c\xae\x51\xc9\x68\x81\x7c\xb1\x82\x6f\x4e\x24\x8f\x86\x91\xcf\x66\x7e\x4e\xae\x8c\x05\x64\xa9\x80\x4a\x50\xda\x75\x97\x71\xce\x5b\xe5\x8f\xbd\x6f\x66\x4e\x86\x64\x82\x95\x63\x5e\xd6\x65\x99\x52\x17\x88\xc2\x70\xc8\x52\xa3\x73\x0e\x74\x33\x67\x97\x78\xf7\x97\x16\x4e\x34\x90\xbb\x9c\xde\x6d\xcb\x51\xdb\x8d\x41\x54\x1d", /* 5180 */ "\x00\x00\x62\xce\x73\xb2\x83\xf1\x96\xf6\x9f\x84\x94\xc3\x4f\x36\x7f\x9a\x51\xcc\x70\x75\x96\x75\x5c\xad\x98\x86\x53\xe6\x4e\xe4\x6e\x9c\x74\x09\x69\xb4\x78\x6b\x99\x8f\x75\x59\x52\x18\x76\x24\x6d\x41\x67\xf3\x51\x6d\x9f\x99\x80\x4b\x54\x99\x7b\x3c\x7a\xbf\x96\x86\x57\x84\x62\xe2\x96\x47\x69\x7c\x5a\x04\x64\x02\x7b\xd3\x6f\x0f\x96\x4b\x82\xa6\x53\x62\x98\x85\x5e\x90\x70\x89\x63\xb3\x53\x64\x86\x4f\x9c\x81\x9e\x93\x78\x8c\x97\x32\x8d\xef\x8d\x42\x9e\x7f\x6f\x5e\x79\x84\x5f\x55\x96\x46\x62\x2e\x9a\x74\x54\x15\x94\xdd\x4f\xa3\x65\xc5\x5c\x65\x5c\x61\x7f\x15\x86\x51\x6c\x2f\x5f\x8b\x73\x87\x6e\xe4\x7e\xff\x5c\xe6\x63\x1b\x5b\x6a\x6e\xe6\x53\x75\x4e\x71\x63\xa0\x75\x65\x62\xa1\x8f\x6e\x4f\x26\x4e\xd1\x6c\xa6\x7e\xb6\x8b\xba\x84\x1d\x87\xba\x7f\x57\x90\x3b\x95\x23\x7b\xa9\x9a\xa1\x88\xf8\x84\x3d\x6d\x1b\x9a\x86\x7e\xdc\x59\x88\x9e\xbb\x73\x9b\x78\x01\x86\x82\x9a\x6c\x9a\x82\x56\x1b\x54\x17\x57\xcb\x4e\x70\x9e\xa6\x53\x56\x8f\xc8\x81\x09\x77\x92\x99\x92\x86\xee\x6e\xe1\x85\x13\x66\xfc\x61\x62\x6f\x2b\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x29\x82\x92\x83\x2b\x76\xf2\x6c\x13\x5f\xd9\x83\xbd\x73\x2b\x83\x05\x95\x1a\x6b\xdb\x77\xdb\x94\xc6\x53\x6f\x83\x02\x51\x92\x5e\x3d\x8c\x8c\x8d\x38\x4e\x48\x73\xab\x67\x9a\x68\x85\x91\x76\x97\x09\x71\x64\x6c\xa1\x77\x09\x5a\x92\x95\x41\x6b\xcf\x7f\x8e\x66\x27\x5b\xd0\x59\xb9\x5a\x9a\x95\xe8\x95\xf7\x4e\xec\x84\x0c\x84\x99\x6a\xac\x76\xdf\x95\x30\x73\x1b\x68\xa6\x5b\x5f\x77\x2f\x91\x9a\x97\x61\x7c\xdc\x8f\xf7\x8c\x1c\x5f\x25\x7c\x73\x79\xd8\x89\xc5\x6c\xcc\x87\x1c\x5b\xc6\x5e\x42\x68\xc9\x77\x20", /* 5280 */ "\x00\x00\x7e\xf5\x51\x95\x51\x4d\x52\xc9\x5a\x29\x7f\x05\x97\x62\x82\xd7\x63\xcf\x77\x84\x85\xd0\x79\xd2\x6e\x3a\x5e\x99\x59\x99\x85\x11\x70\x6d\x6c\x11\x62\xbf\x76\xbf\x65\x4f\x60\xaf\x95\xfd\x66\x0e\x87\x9f\x9e\x23\x94\xed\x54\x0d\x54\x7d\x8c\x2c\x64\x78\x64\x79\x86\x11\x6a\x21\x81\x9c\x78\xe8\x64\x69\x9b\x54\x62\xb9\x67\x2b\x83\xab\x58\xa8\x9e\xd8\x6c\xab\x6f\x20\x5b\xde\x96\x4c\x8c\x0b\x72\x5f\x67\xd0\x62\xc7\x72\x61\x4e\xa9\x59\xc6\x6b\xcd\x58\x93\x66\xae\x5e\x55\x52\xdf\x61\x55\x67\x28\x76\xee\x77\x66\x72\x67\x7a\x46\x62\xff\x54\xea\x54\x50\x94\xa0\x90\xa3\x5a\x1c\x7e\xb3\x6c\x16\x4e\x43\x59\x76\x80\x10\x59\x48\x53\x57\x75\x37\x96\xbe\x56\xca\x63\x20\x81\x11\x60\x7c\x95\xf9\x6d\xd6\x54\x62\x99\x81\x51\x85\x5a\xe9\x80\xfd\x59\xae\x97\x13\x50\x2a\x6c\xe5\x5c\x3c\x62\xdf\x4f\x60\x53\x3f\x81\x7b\x90\x06\x6e\xba\x85\x2b\x62\xc8\x5e\x74\x78\xbe\x64\xb5\x63\x7b\x5f\xf5\x5a\x18\x91\x7f\x9e\x1f\x5c\x3f\x63\x4f\x80\x42\x5b\x7d\x55\x6e\x95\x4a\x95\x4d\x6d\x85\x60\xa8\x67\xe0\x72\xde\x51\xdd\x5b\x81\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe7\x6c\xde\x72\x5b\x62\x6d\x94\xae\x7e\xbd\x81\x13\x6d\x53\x51\x9c\x5f\x04\x59\x74\x52\xaa\x60\x12\x59\x73\x66\x96\x86\x50\x75\x9f\x63\x2a\x61\xe6\x7c\xef\x8b\xfa\x54\xe6\x6b\x27\x9e\x25\x6b\xb4\x85\xd5\x54\x55\x50\x76\x6c\xa4\x55\x6a\x8d\xb4\x72\x2c\x5e\x15\x60\x15\x74\x36\x62\xcd\x63\x92\x72\x4c\x5f\x98\x6e\x43\x6d\x3e\x65\x00\x6f\x58\x76\xd8\x78\xd0\x76\xfc\x75\x54\x52\x24\x53\xdb\x4e\x53\x5e\x9e\x65\xc1\x80\x2a\x80\xd6\x62\x9b\x54\x86\x52\x28\x70\xae\x88\x8d\x8d\xd1\x6c\xe1\x54\x78\x80\xda", /* 5380 */ "\x00\x00\x57\xf9\x88\xf4\x8d\x54\x96\x6a\x91\x4d\x4f\x69\x6c\x9b\x55\xb7\x76\xc6\x78\x30\x62\xa8\x70\xf9\x6f\x8e\x5f\x6d\x84\xec\x68\xda\x78\x7c\x7b\xf7\x81\xa8\x67\x0b\x9e\x4f\x63\x67\x78\xb0\x57\x6f\x78\x12\x97\x39\x62\x79\x62\xab\x52\x88\x74\x35\x6b\xd7\x55\x64\x81\x3e\x75\xb2\x76\xae\x53\x39\x75\xde\x50\xfb\x5c\x41\x8b\x6c\x7b\xc7\x50\x4f\x72\x47\x9a\x97\x98\xd8\x6f\x02\x74\xe2\x79\x68\x64\x87\x77\xa5\x62\xfc\x98\x91\x8d\x2b\x54\xc1\x80\x58\x4e\x52\x57\x6a\x82\xf9\x84\x0d\x5e\x73\x51\xed\x74\xf6\x8b\xc4\x5c\x4f\x57\x61\x6c\xfc\x98\x87\x5a\x46\x78\x34\x9b\x44\x8f\xeb\x7c\x95\x52\x56\x62\x51\x94\xfa\x4e\xc6\x83\x86\x84\x61\x83\xe9\x84\xb2\x57\xd4\x67\x34\x57\x03\x66\x6e\x6d\x66\x8c\x31\x66\xdd\x70\x11\x67\x1f\x6b\x3a\x68\x16\x62\x1a\x59\xbb\x4e\x03\x51\xc4\x6f\x06\x67\xd2\x6c\x8f\x51\x76\x68\xcb\x59\x47\x6b\x67\x75\x66\x5d\x0e\x81\x10\x9f\x50\x65\xd7\x79\x48\x79\x41\x9a\x91\x8d\x77\x5c\x82\x4e\x5e\x4f\x01\x54\x2f\x59\x51\x78\x0c\x56\x68\x6c\x14\x8f\xc4\x5f\x03\x6c\x7d\x6c\xe3\x8b\xab\x63\x90\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x70\x6d\x3d\x72\x75\x62\x66\x94\x8e\x94\xc5\x53\x43\x8f\xc1\x7b\x7e\x4e\xdf\x8c\x26\x4e\x7e\x9e\xd4\x94\xb1\x94\xb3\x52\x4d\x6f\x5c\x90\x63\x6d\x45\x8c\x34\x58\x11\x5d\x4c\x6b\x20\x6b\x49\x67\xaa\x54\x5b\x81\x54\x7f\x8c\x58\x99\x85\x37\x5f\x3a\x62\xa2\x6a\x47\x95\x39\x65\x72\x60\x84\x68\x65\x77\xa7\x4e\x54\x4f\xa8\x5d\xe7\x97\x98\x64\xac\x7f\xd8\x5c\xed\x4f\xcf\x7a\x8d\x52\x07\x83\x04\x4e\x14\x60\x2f\x7a\x83\x94\xa6\x4f\xb5\x4e\xb2\x79\xe6\x74\x34\x52\xe4\x82\xb9\x64\xd2\x79\xbd\x5b\xdd\x6c\x81", /* 5480 */ "\x00\x00\x97\x52\x8f\x7b\x6c\x22\x50\x3e\x53\x7f\x6e\x05\x64\xce\x66\x74\x6c\x30\x60\xc5\x98\x77\x8b\xf7\x5e\x86\x74\x3c\x7a\x77\x79\xcb\x4e\x18\x90\xb1\x74\x03\x6c\x42\x56\xda\x91\x4b\x6c\xc5\x8d\x8b\x53\x3a\x86\xc6\x66\xf2\x8e\xaf\x5c\x48\x9a\x71\x6e\x20\x53\xd6\x5a\x36\x9f\x8b\x8d\xa3\x53\xbb\x57\x08\x98\xa7\x67\x43\x91\x9b\x6c\xc9\x51\x68\x75\xca\x62\xf3\x72\xac\x52\x38\x52\x9d\x7f\x3a\x70\x94\x76\x38\x53\x74\x9e\x4a\x69\xb7\x78\x6e\x96\xc0\x88\xd9\x7f\xa4\x71\x36\x71\xc3\x51\x89\x67\xd3\x74\xe4\x58\xe4\x65\x18\x56\xb7\x8b\xa9\x99\x76\x62\x70\x7e\xd5\x60\xf9\x70\xed\x58\xec\x4e\xc1\x4e\xba\x5f\xcd\x97\xe7\x4e\xfb\x8b\xa4\x52\x03\x59\x8a\x7e\xab\x62\x54\x4e\xcd\x65\xe5\x62\x0e\x83\x38\x84\xc9\x83\x63\x87\x8d\x71\x94\x6e\xb6\x5b\xb9\x7e\xd2\x51\x97\x63\xc9\x67\xd4\x80\x89\x83\x39\x88\x15\x51\x12\x5b\x7a\x59\x82\x8f\xb1\x4e\x73\x6c\x5d\x51\x65\x89\x25\x8f\x6f\x96\x2e\x85\x4a\x74\x5e\x95\x10\x95\xf0\x6d\xa6\x82\xe5\x5f\x31\x64\x92\x6d\x12\x84\x28\x81\x6e\x9c\xc3\x58\x5e\x8d\x5b\x4e\x09\x53\xc1\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x1e\x65\x63\x68\x51\x55\xd3\x4e\x27\x64\x14\x9a\x9a\x62\x6b\x5a\xc2\x74\x5f\x82\x72\x6d\xa9\x68\xee\x50\xe7\x83\x8e\x78\x02\x67\x40\x52\x39\x6c\x99\x7e\xb1\x50\xbb\x55\x65\x71\x5e\x7b\x5b\x66\x52\x73\xca\x82\xeb\x67\x49\x5c\x71\x52\x20\x71\x7d\x88\x6b\x95\xea\x96\x55\x64\xc5\x8d\x61\x81\xb3\x55\x84\x6c\x55\x62\x47\x7f\x2e\x58\x92\x4f\x24\x55\x46\x8d\x4f\x66\x4c\x4e\x0a\x5c\x1a\x88\xf3\x68\xa2\x63\x4e\x7a\x0d\x70\xe7\x82\x8d\x52\xfa\x97\xf6\x5c\x11\x54\xe8\x90\xb5\x7e\xcd\x59\x62\x8d\x4a\x86\xc7", /* 5580 */ "\x00\x00\x82\x0c\x82\x0d\x8d\x66\x64\x44\x5c\x04\x61\x51\x6d\x89\x79\x3e\x8b\xbe\x78\x37\x75\x33\x54\x7b\x4f\x38\x8e\xab\x6d\xf1\x5a\x20\x7e\xc5\x79\x5e\x6c\x88\x5b\xa1\x5a\x76\x75\x1a\x80\xbe\x61\x4e\x6e\x17\x58\xf0\x75\x1f\x75\x25\x72\x72\x53\x47\x7e\xf3\x77\x01\x76\xdb\x52\x69\x80\xdc\x57\x23\x5e\x08\x59\x31\x72\xee\x65\xbd\x6e\x7f\x8b\xd7\x5c\x38\x86\x71\x53\x41\x77\xf3\x62\xfe\x65\xf6\x4e\xc0\x98\xdf\x86\x80\x5b\x9e\x8b\xc6\x53\xf2\x77\xe2\x4f\x7f\x5c\x4e\x9a\x76\x59\xcb\x5f\x0f\x79\x3a\x58\xeb\x4e\x16\x67\xff\x4e\x8b\x62\xed\x8a\x93\x90\x1d\x52\xbf\x66\x2f\x55\xdc\x56\x6c\x90\x02\x4e\xd5\x4f\x8d\x91\xca\x99\x70\x6c\x0f\x5e\x02\x60\x43\x5b\xa4\x89\xc6\x8b\xd5\x65\x36\x62\x4b\x99\x96\x5b\x88\x5b\xff\x63\x88\x55\x2e\x53\xd7\x76\x26\x51\x7d\x85\x2c\x67\xa2\x68\xb3\x6b\x8a\x62\x92\x8f\x93\x53\xd4\x82\x12\x6d\xd1\x75\x8f\x4e\x66\x8d\x4e\x5b\x70\x71\x9f\x85\xaf\x66\x91\x66\xd9\x7f\x72\x87\x00\x9e\xcd\x9f\x20\x5c\x5e\x67\x2f\x8f\xf0\x68\x11\x67\x5f\x62\x0d\x7a\xd6\x58\x85\x5e\xb6\x65\x70\x6f\x31\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x55\x52\x37\x80\x0d\x64\x54\x88\x70\x75\x29\x5e\x05\x68\x13\x62\xf4\x97\x1c\x53\xcc\x72\x3d\x8c\x01\x6c\x34\x77\x61\x7a\x0e\x54\x2e\x77\xac\x98\x7a\x82\x1c\x8b\xf4\x78\x55\x67\x14\x70\xc1\x65\xaf\x64\x95\x56\x36\x60\x1d\x79\xc1\x53\xf8\x4e\x1d\x6b\x7b\x80\x86\x5b\xfa\x55\xe3\x56\xdb\x4f\x3a\x4f\x3c\x99\x72\x5d\xf3\x67\x7e\x80\x38\x60\x02\x98\x82\x90\x01\x5b\x8b\x8b\xbc\x8b\xf5\x64\x1c\x82\x58\x64\xde\x55\xfd\x82\xcf\x91\x65\x4f\xd7\x7d\x20\x90\x1f\x7c\x9f\x50\xf3\x58\x51\x6e\xaf\x5b\xbf\x8b\xc9", /* 5680 */ "\x00\x00\x80\x83\x91\x78\x84\x9c\x7b\x97\x86\x7d\x96\x8b\x96\x8f\x7e\xe5\x9a\xd3\x78\x8e\x5c\x81\x7a\x57\x90\x42\x96\xa7\x79\x5f\x5b\x59\x63\x5f\x7b\x0b\x84\xd1\x68\xad\x55\x06\x7f\x29\x74\x10\x7d\x22\x95\x01\x62\x40\x58\x4c\x4e\xd6\x5b\x83\x59\x79\x58\x54\x73\x6d\x63\x1e\x8e\x4b\x8e\x0f\x80\xce\x82\xd4\x62\xac\x53\xf0\x6c\xf0\x91\x5e\x59\x2a\x60\x01\x6c\x70\x57\x4d\x64\x4a\x8d\x2a\x76\x2b\x6e\xe9\x57\x5b\x6a\x80\x75\xf0\x6f\x6d\x8c\x2d\x8c\x08\x57\x66\x6b\xef\x88\x92\x78\xb3\x63\xa2\x53\xf9\x70\xad\x6c\x64\x58\x58\x64\x2a\x58\x02\x68\xe0\x81\x9b\x55\x10\x7c\xd6\x50\x18\x8e\xba\x6d\xcc\x8d\x9f\x70\xeb\x63\x8f\x6d\x9b\x6e\xd4\x7e\xe6\x84\x04\x68\x43\x90\x03\x6d\xd8\x96\x76\x8b\xa8\x59\x57\x72\x79\x85\xe4\x81\x7e\x75\xbc\x8a\x8a\x68\xaf\x52\x54\x8e\x22\x95\x11\x63\xd0\x98\x98\x8e\x44\x55\x7c\x4f\x53\x66\xff\x56\x8f\x60\xd5\x6d\x95\x52\x43\x5c\x49\x59\x29\x6d\xfb\x58\x6b\x75\x30\x75\x1c\x60\x6c\x82\x14\x81\x46\x63\x11\x67\x61\x8f\xe2\x77\x3a\x8d\xf3\x8d\x34\x94\xc1\x5e\x16\x53\x85\x54\x2c\x70\xc3\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x40\x5e\xf7\x50\x5c\x4e\xad\x5e\xad\x63\x3a\x82\x47\x90\x1a\x68\x50\x91\x6e\x77\xb3\x54\x0c\x94\xdc\x5f\x64\x7a\xe5\x68\x76\x63\x45\x7b\x52\x7e\xdf\x75\xdb\x50\x77\x62\x95\x59\x34\x90\x0f\x51\xf8\x79\xc3\x7a\x81\x56\xfe\x5f\x92\x90\x14\x6d\x82\x5c\x60\x57\x1f\x54\x10\x51\x54\x6e\x4d\x56\xe2\x63\xa8\x98\x93\x81\x7f\x87\x15\x89\x2a\x90\x00\x54\x1e\x5c\x6f\x81\xc0\x62\xd6\x62\x58\x81\x31\x9e\x35\x96\x40\x9a\x6e\x9a\x7c\x69\x2d\x59\xa5\x62\xd3\x55\x3e\x63\x16\x54\xc7\x86\xd9\x6d\x3c\x5a\x03\x74\xe6", /* 5780 */ "\x00\x00\x88\x9c\x6b\x6a\x59\x16\x8c\x4c\x5f\x2f\x6e\x7e\x73\xa9\x98\x7d\x4e\x38\x70\xf7\x5b\x8c\x78\x97\x63\x3d\x66\x5a\x76\x96\x60\xcb\x5b\x9b\x5a\x49\x4e\x07\x81\x55\x6c\x6a\x73\x8b\x4e\xa1\x67\x89\x7f\x51\x5f\x80\x65\xfa\x67\x1b\x5f\xd8\x59\x84\x5a\x01\x5d\xcd\x5f\xae\x53\x71\x97\xe6\x8f\xdd\x68\x45\x56\xf4\x55\x2f\x60\xdf\x4e\x3a\x6f\x4d\x7e\xf4\x82\xc7\x84\x0e\x59\xd4\x4f\x1f\x4f\x2a\x5c\x3e\x7e\xac\x67\x2a\x85\x1a\x54\x73\x75\x4f\x80\xc3\x55\x82\x9b\x4f\x4f\x4d\x6e\x2d\x8c\x13\x5c\x09\x61\x70\x53\x6b\x76\x1f\x6e\x29\x86\x8a\x65\x87\x95\xfb\x7e\xb9\x54\x3b\x7a\x33\x7d\x0a\x95\xee\x55\xe1\x7f\xc1\x74\xee\x63\x1d\x87\x17\x6d\xa1\x7a\x9d\x62\x11\x65\xa1\x53\x67\x63\xe1\x6c\x83\x5d\xeb\x54\x5c\x94\xa8\x4e\x4c\x6c\x61\x8b\xec\x5c\x4b\x65\xe0\x82\x9c\x68\xa7\x54\x3e\x54\x34\x6b\xcb\x6b\x66\x4e\x94\x63\x42\x53\x48\x82\x1e\x4f\x0d\x4f\xae\x57\x5e\x62\x0a\x96\xfe\x66\x64\x72\x69\x52\xff\x52\xa1\x60\x9f\x8b\xef\x66\x14\x71\x99\x67\x90\x89\x7f\x78\x52\x77\xfd\x66\x70\x56\x3b\x54\x38\x95\x21\x72\x7a\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x60\x6f\x5e\x0c\x60\x89\x81\x9d\x59\x15\x60\xdc\x71\x84\x70\xef\x6e\xaa\x6c\x50\x72\x80\x6a\x84\x88\xad\x5e\x2d\x4e\x60\x5a\xb3\x55\x9c\x94\xe3\x6d\x17\x7c\xfb\x96\x99\x62\x0f\x7e\xc6\x77\x8e\x86\x7e\x53\x23\x97\x1e\x8f\x96\x66\x87\x5c\xe1\x4f\xa0\x72\xed\x4e\x0b\x53\xa6\x59\x0f\x54\x13\x63\x80\x95\x28\x51\x48\x4e\xd9\x9c\x9c\x7e\xa4\x54\xb8\x8d\x24\x88\x54\x82\x37\x95\xf2\x6d\x8e\x5f\x26\x5a\xcc\x66\x3e\x96\x69\x73\xb0\x73\x2e\x53\xbf\x81\x7a\x99\x85\x7f\xa1\x5b\xaa\x96\x77\x96\x50\x7e\xbf", /* 5880 */ "\x00\x00\x76\xf8\x53\xa2\x95\x76\x99\x99\x7b\xb1\x89\x44\x6e\x58\x4e\x61\x7f\xd4\x79\x65\x8b\xe6\x60\xf3\x54\xcd\x4e\xab\x98\x79\x5d\xf7\x6a\x61\x50\xcf\x54\x11\x8c\x61\x84\x27\x78\x5d\x97\x04\x52\x4a\x54\xee\x56\xa3\x95\x00\x6d\x88\x5b\xb5\x6d\xc6\x66\x53\x5c\x0f\x5b\x5d\x68\x21\x80\x96\x55\x78\x7b\x11\x65\x48\x69\x54\x4e\x9b\x6b\x47\x87\x4e\x97\x8b\x53\x4f\x63\x1f\x64\x3a\x90\xaa\x65\x9c\x80\xc1\x8c\x10\x51\x99\x68\xb0\x53\x78\x87\xf9\x61\xc8\x6c\xc4\x6c\xfb\x8c\x22\x5c\x51\x85\xaa\x82\xaf\x95\x0c\x6b\x23\x8f\x9b\x65\xb0\x5f\xfb\x5f\xc3\x4f\xe1\x88\x45\x66\x1f\x81\x65\x73\x29\x60\xfa\x51\x74\x52\x11\x57\x8b\x5f\x62\x90\xa2\x88\x4c\x91\x92\x5e\x78\x67\x4f\x60\x27\x59\xd3\x51\x44\x51\xf6\x80\xf8\x53\x08\x6c\x79\x96\xc4\x71\x8a\x4f\x11\x4f\xee\x7f\x9e\x67\x3d\x55\xc5\x95\x08\x79\xc0\x88\x96\x7e\xe3\x58\x9f\x62\x0c\x97\x00\x86\x5a\x56\x18\x98\x7b\x5f\x90\x8b\xb8\x84\xc4\x91\x57\x53\xd9\x65\xed\x5e\x8f\x75\x5c\x60\x64\x7d\x6e\x5a\x7f\x7e\xea\x7e\xed\x8f\x69\x55\xa7\x5b\xa3\x60\xac\x65\xcb\x73\x84\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x09\x76\x63\x77\x29\x7e\xda\x97\x74\x85\x9b\x5b\x66\x7a\x74\x96\xea\x88\x40\x52\xcb\x71\x8f\x5f\xaa\x65\xec\x8b\xe2\x5b\xfb\x9a\x6f\x5d\xe1\x6b\x89\x6c\x5b\x8b\xad\x8b\xaf\x90\x0a\x8f\xc5\x53\x8b\x62\xbc\x9e\x26\x9e\x2d\x54\x40\x4e\x2b\x82\xbd\x72\x59\x86\x9c\x5d\x16\x88\x59\x6d\xaf\x96\xc5\x54\xd1\x4e\x9a\x8b\xb6\x71\x09\x54\xbd\x96\x09\x70\xdf\x6d\xf9\x76\xd0\x4e\x25\x78\x14\x87\x12\x5c\xa9\x5e\xf6\x8a\x00\x98\x9c\x96\x0e\x70\x8e\x6c\xbf\x59\x44\x63\xa9\x77\x3c\x88\x4d\x6f\x14\x82\x73\x58\x30", /* 5980 */ "\x00\x00\x71\xd5\x53\x8c\x78\x1a\x96\xc1\x55\x01\x5f\x66\x71\x30\x5b\xb4\x8c\x1a\x9a\x8c\x6b\x83\x59\x2e\x9e\x2f\x79\xe7\x67\x68\x62\x6c\x4f\x6f\x75\xa1\x7f\x8a\x6d\x0b\x96\x33\x6c\x27\x4e\xf0\x75\xd2\x51\x7b\x68\x37\x6f\x3e\x90\x80\x81\x70\x59\x96\x74\x76\x64\x47\x5c\x27\x90\x65\x7a\x91\x8c\x23\x59\xda\x54\xac\x82\x00\x83\x6f\x89\x81\x80\x00\x69\x30\x56\x4e\x80\x36\x72\x37\x91\xce\x51\xb6\x4e\x5f\x98\x75\x63\x96\x4e\x1a\x53\xf6\x66\xf3\x81\x4b\x59\x1c\x6d\xb2\x4e\x00\x58\xf9\x53\x3b\x63\xd6\x94\xf1\x4f\x9d\x4f\x0a\x88\x63\x98\x90\x59\x37\x90\x57\x79\xfb\x4e\xea\x80\xf0\x75\x91\x6c\x82\x5b\x9c\x59\xe8\x5f\x5d\x69\x05\x86\x81\x50\x1a\x5d\xf2\x4e\x59\x77\xe3\x4e\xe5\x82\x7a\x62\x91\x66\x13\x90\x91\x5c\x79\x4e\xbf\x5f\x79\x81\xc6\x90\x38\x80\x84\x75\xab\x4e\xa6\x88\xd4\x61\x0f\x6b\xc5\x5f\xc6\x4e\x49\x76\xca\x6e\xa2\x8b\xe3\x8b\xae\x8c\x0a\x8b\xd1\x5f\x02\x7f\xfc\x7f\xcc\x7e\xce\x83\x35\x83\x6b\x56\xe0\x6b\xb7\x97\xf3\x96\x34\x59\xfb\x54\x1f\x94\xf6\x6d\xeb\x5b\xc5\x99\x6e\x5c\x39\x5f\x15\x96\x90\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x70\x82\xf1\x6a\x31\x5a\x74\x9e\x70\x5e\x94\x7f\x28\x83\xb9\x84\x24\x84\x25\x83\x67\x87\x47\x8f\xce\x8d\x62\x76\xc8\x5f\x71\x98\x96\x78\x6c\x66\x20\x54\xdf\x62\xe5\x4f\x63\x81\xc3\x75\xc8\x5e\xb8\x96\xcd\x8e\x0a\x86\xf9\x54\x8f\x6c\xf3\x6d\x8c\x6c\x38\x60\x7f\x52\xc7\x75\x28\x5e\x7d\x4f\x18\x60\xa0\x5f\xe7\x5c\x24\x75\x31\x90\xae\x94\xc0\x72\xb9\x6c\xb9\x6e\x38\x91\x49\x67\x09\x53\xcb\x53\xf3\x4f\x51\x91\xc9\x8b\xf1\x53\xc8\x5e\x7c\x8f\xc2\x6d\xe4\x4e\x8e\x76\xc2\x69\x86\x86\x5e\x61\x1a\x82\x06", /* 5a80 */ "\x00\x00\x4f\x59\x4f\xde\x90\x3e\x9c\x7c\x61\x09\x6e\x1d\x6e\x14\x96\x85\x4e\x88\x5a\x31\x96\xe8\x4e\x0e\x5c\x7f\x79\xb9\x5b\x87\x8b\xed\x7f\xbd\x73\x89\x57\xdf\x82\x8b\x90\xc1\x54\x01\x90\x47\x55\xbb\x5c\xea\x5f\xa1\x61\x08\x6b\x32\x72\xf1\x80\xb2\x8a\x89\x6d\x74\x5b\xd3\x88\xd5\x98\x84\x8c\x6b\x9a\x6d\x9e\x33\x6e\x0a\x51\xa4\x51\x43\x57\xa3\x88\x81\x53\x9f\x63\xf4\x8f\x95\x56\xed\x54\x58\x57\x06\x73\x3f\x6e\x90\x7f\x18\x8f\xdc\x82\xd1\x61\x3f\x60\x28\x96\x62\x66\xf0\x7e\xa6\x8d\x8a\x8d\xc3\x94\xa5\x5c\xb3\x7c\xa4\x67\x08\x60\xa6\x96\x05\x80\x18\x4e\x91\x90\xe7\x53\x00\x96\x68\x51\x41\x8f\xd0\x85\x74\x91\x5d\x66\x55\x97\xf5\x5b\x55\x53\x1d\x78\x38\x67\x42\x68\x3d\x54\xc9\x70\x7e\x5b\xb0\x8f\x7d\x51\x8d\x57\x28\x54\xb1\x65\x12\x66\x82\x8d\x5e\x8d\x43\x81\x0f\x84\x6c\x90\x6d\x7c\xdf\x51\xff\x85\xfb\x67\xa3\x65\xe9\x6f\xa1\x86\xa4\x8e\x81\x56\x6a\x90\x20\x76\x82\x70\x76\x71\xe5\x8d\x23\x62\xe9\x52\x19\x6c\xfd\x8d\x3c\x60\x0e\x58\x9e\x61\x8e\x66\xfe\x8d\x60\x62\x4e\x55\xb3\x6e\x23\x67\x2d\x8f\x67\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe1\x95\xf8\x77\x28\x68\x05\x69\xa8\x54\x8b\x4e\x4d\x70\xb8\x8b\xc8\x64\x58\x65\x8b\x5b\x85\x7a\x84\x50\x3a\x5b\xe8\x77\xbb\x6b\xe1\x8a\x79\x7c\x98\x6c\xbe\x76\xcf\x65\xa9\x8f\x97\x5d\x2d\x5c\x55\x86\x38\x68\x08\x53\x60\x62\x18\x7a\xd9\x6e\x5b\x7e\xfd\x6a\x1f\x7a\xe0\x5f\x70\x6f\x33\x5f\x20\x63\x8c\x6d\xa8\x67\x56\x4e\x08\x5e\x10\x8d\x26\x4e\xd7\x80\xc0\x76\x34\x96\x9c\x62\xdb\x66\x2d\x62\x7e\x6c\xbc\x8d\x75\x71\x67\x7f\x69\x51\x46\x80\x87\x53\xec\x90\x6e\x62\x98\x54\xf2\x86\xf0\x8f\x99\x80\x05", /* 5b80 */ "\x00\x00\x95\x17\x85\x17\x8f\xd9\x6d\x59\x73\xcd\x65\x9f\x77\x1f\x75\x04\x78\x27\x81\xfb\x8d\x1e\x94\x88\x4f\xa6\x67\x95\x75\xb9\x8b\xca\x97\x07\x63\x2f\x95\x47\x96\x35\x84\xb8\x63\x23\x77\x41\x5f\x81\x72\xf0\x4e\x89\x60\x14\x65\x74\x62\xef\x6b\x63\x65\x3f\x5e\x27\x75\xc7\x90\xd1\x8b\xc1\x82\x9d\x67\x9d\x65\x2f\x54\x31\x87\x18\x77\xe5\x80\xa2\x81\x02\x6c\x41\x4e\x4b\x7e\xc7\x80\x4c\x76\xf4\x69\x0d\x6b\x96\x62\x67\x50\x3c\x4f\x84\x57\x40\x63\x07\x6b\x62\x8d\xbe\x53\xea\x65\xe8\x7e\xb8\x5f\xd7\x63\x1a\x63\xb7\x81\xf3\x81\xf4\x7f\x6e\x5e\x1c\x5c\xd9\x52\x36\x66\x7a\x79\xe9\x7a\x1a\x8d\x28\x70\x99\x75\xd4\x6e\xde\x6c\xbb\x7a\x92\x4e\x2d\x76\xc5\x5f\xe0\x94\x9f\x88\x77\x7e\xc8\x79\xcd\x80\xbf\x91\xcd\x4e\xf2\x4f\x17\x82\x1f\x54\x68\x5d\xde\x6d\x32\x8b\xcc\x7c\xa5\x8f\x74\x80\x98\x5e\x1a\x54\x92\x76\xb1\x5b\x99\x66\x3c\x9a\xa4\x73\xe0\x68\x2a\x86\xdb\x67\x31\x73\x2a\x8b\xf8\x8b\xdb\x90\x10\x7a\xf9\x70\xdb\x71\x6e\x62\xc4\x77\xa9\x56\x31\x4e\x3b\x84\x57\x67\xf1\x52\xa9\x86\xc0\x8d\x2e\x94\xf8\x7b\x51\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x4f\x6c\xe8\x79\x5d\x9a\x7b\x62\x93\x72\x2a\x62\xfd\x4e\x13\x78\x16\x8f\x6c\x64\xb0\x8d\x5a\x7b\xc6\x68\x69\x5e\x84\x88\xc5\x59\x86\x64\x9e\x58\xee\x72\xb6\x69\x0e\x95\x25\x8f\xfd\x8d\x58\x57\x60\x7f\x00\x8c\x06\x51\xc6\x63\x49\x62\xd9\x53\x53\x68\x4c\x74\x22\x83\x01\x91\x4c\x55\x44\x77\x40\x70\x7c\x6d\x4a\x51\x79\x54\xa8\x8d\x44\x59\xff\x6e\xcb\x6d\xc4\x5b\x5c\x7d\x2b\x4e\xd4\x7c\x7d\x6e\xd3\x5b\x50\x81\xea\x6e\x0d\x5b\x57\x9b\x03\x68\xd5\x8e\x2a\x5b\x97\x7e\xfc\x60\x3b\x7e\xb5\x90\xb9\x8d\x70", /* 5c80 */ "\x00\x00\x59\x4f\x63\xcd\x79\xdf\x8d\xb3\x53\x52\x65\xcf\x79\x56\x8b\xc5\x96\x3b\x7e\xc4\x94\xbb\x7e\x82\x56\x34\x91\x89\x67\x00\x7f\x6a\x5c\x0a\x90\x75\x66\x28\x5d\xe6\x4f\x50\x67\xde\x50\x5a\x4f\x5c\x57\x50\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8d\x4e\x0c\x51\x40\x4e\x10\x5e\xff\x53\x45\x4e\x15\x4e\x98\x4e\x1e\x9b\x32\x5b\x6c\x56\x69\x4e\x28\x79\xba\x4e\x3f\x53\x15\x4e\x47\x59\x2d\x72\x3b\x53\x6e\x6c\x10\x56\xdf\x80\xe4\x99\x97\x6b\xd3\x77\x7e\x9f\x17\x4e\x36\x4e\x9f\x9f\x10\x4e\x5c\x4e\x69\x4e\x93\x82\x88\x5b\x5b\x55\x6c\x56\x0f\x4e\xc4\x53\x8d\x53\x9d\x53\xa3\x53\xa5\x53\xae\x97\x65\x8d\x5d\x53\x1a\x53\xf5\x53\x26\x53\x2e\x53\x3e\x8d\x5c\x53\x66\x53\x63\x52\x02\x52\x08\x52\x0e\x52\x2d\x52\x33\x52\x3f\x52\x40\x52\x4c\x52\x5e\x52\x61\x52\x5c\x84\xaf\x52\x7d\x52\x82\x52\x81\x52\x90\x52\x93\x51\x82\x7f\x54\x4e\xbb\x4e\xc3\x4e\xc9\x4e\xc2\x4e\xe8\x4e\xe1\x4e\xeb\x4e\xde\x4f\x1b\x4e\xf3\x4f\x22\x4f\x64\x4e\xf5\x4f\x25\x4f\x27\x4f\x09\x4f\x2b\x4f\x5e\x4f\x67\x65\x38\x4f\x5a\x4f\x5d\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x5f\x4f\x57\x4f\x32\x4f\x3d\x4f\x76\x4f\x74\x4f\x91\x4f\x89\x4f\x83\x4f\x8f\x4f\x7e\x4f\x7b\x4f\xaa\x4f\x7c\x4f\xac\x4f\x94\x4f\xe6\x4f\xe8\x4f\xea\x4f\xc5\x4f\xda\x4f\xe3\x4f\xdc\x4f\xd1\x4f\xdf\x4f\xf8\x50\x29\x50\x4c\x4f\xf3\x50\x2c\x50\x0f\x50\x2e\x50\x2d\x4f\xfe\x50\x1c\x50\x0c\x50\x25\x50\x28\x50\x7e\x50\x43\x50\x55\x50\x48\x50\x4e\x50\x6c\x50\x7b\x50\xa5\x50\xa7\x50\xa9\x50\xba\x50\xd6\x51\x06\x50\xed\x50\xec\x50\xe6\x50\xee\x51\x07\x51\x0b\x4e\xdd\x6c\x3d\x4f\x58\x4f\x65\x4f\xce\x9f\xa0", /* 5d80 */ "\x00\x00\x6c\x46\x7c\x74\x51\x6e\x5d\xfd\x9e\xc9\x99\x98\x51\x81\x59\x14\x52\xf9\x53\x0d\x8a\x07\x53\x10\x51\xeb\x59\x19\x51\x55\x4e\xa0\x51\x56\x4e\xb3\x88\x6e\x88\xa4\x4e\xb5\x81\x14\x88\xd2\x79\x80\x5b\x34\x88\x03\x7f\xb8\x51\xab\x51\xb1\x51\xbd\x51\xbc\x51\xc7\x51\x96\x51\xa2\x51\xa5\x8b\xa0\x8b\xa6\x8b\xa7\x8b\xaa\x8b\xb4\x8b\xb5\x8b\xb7\x8b\xc2\x8b\xc3\x8b\xcb\x8b\xcf\x8b\xce\x8b\xd2\x8b\xd3\x8b\xd4\x8b\xd6\x8b\xd8\x8b\xd9\x8b\xdc\x8b\xdf\x8b\xe0\x8b\xe4\x8b\xe8\x8b\xe9\x8b\xee\x8b\xf0\x8b\xf3\x8b\xf6\x8b\xf9\x8b\xfc\x8b\xff\x8c\x00\x8c\x02\x8c\x04\x8c\x07\x8c\x0c\x8c\x0f\x8c\x11\x8c\x12\x8c\x14\x8c\x15\x8c\x16\x8c\x19\x8c\x1b\x8c\x18\x8c\x1d\x8c\x1f\x8c\x20\x8c\x21\x8c\x25\x8c\x27\x8c\x2a\x8c\x2b\x8c\x2e\x8c\x2f\x8c\x32\x8c\x33\x8c\x35\x8c\x36\x53\x69\x53\x7a\x96\x1d\x96\x22\x96\x21\x96\x31\x96\x2a\x96\x3d\x96\x3c\x96\x42\x96\x49\x96\x54\x96\x5f\x96\x67\x96\x6c\x96\x72\x96\x74\x96\x88\x96\x8d\x96\x97\x96\xb0\x90\x97\x90\x9b\x90\x9d\x90\x99\x90\xac\x90\xa1\x90\xb4\x90\xb3\x90\xb6\x90\xba\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xb8\x90\xb0\x90\xcf\x90\xc5\x90\xbe\x90\xd0\x90\xc4\x90\xc7\x90\xd3\x90\xe6\x90\xe2\x90\xdc\x90\xd7\x90\xdb\x90\xeb\x90\xef\x90\xfe\x91\x04\x91\x22\x91\x1e\x91\x23\x91\x31\x91\x2f\x91\x39\x91\x43\x91\x46\x52\x0d\x59\x42\x52\xa2\x52\xac\x52\xad\x52\xbe\x54\xff\x52\xd0\x52\xd6\x52\xf0\x53\xdf\x71\xee\x77\xcd\x5e\xf4\x51\xf5\x51\xfc\x9b\x2f\x53\xb6\x5f\x01\x75\x5a\x5d\xef\x57\x4c\x57\xa9\x57\xa1\x58\x7e\x58\xbc\x58\xc5\x58\xd1\x57\x29\x57\x2c\x57\x2a\x57\x33\x57\x39\x57\x2e\x57\x2f\x57\x5c\x57\x3b", /* 5e80 */ "\x00\x00\x57\x42\x57\x69\x57\x85\x57\x6b\x57\x86\x57\x7c\x57\x7b\x57\x68\x57\x6d\x57\x76\x57\x73\x57\xad\x57\xa4\x57\x8c\x57\xb2\x57\xcf\x57\xa7\x57\xb4\x57\x93\x57\xa0\x57\xd5\x57\xd8\x57\xda\x57\xd9\x57\xd2\x57\xb8\x57\xf4\x57\xef\x57\xf8\x57\xe4\x57\xdd\x58\x0b\x58\x0d\x57\xfd\x57\xed\x58\x00\x58\x1e\x58\x19\x58\x44\x58\x20\x58\x65\x58\x6c\x58\x81\x58\x89\x58\x9a\x58\x80\x99\xa8\x9f\x19\x61\xff\x82\x79\x82\x7d\x82\x7f\x82\x8f\x82\x8a\x82\xa8\x82\x84\x82\x8e\x82\x91\x82\x97\x82\x99\x82\xab\x82\xb8\x82\xbe\x82\xb0\x82\xc8\x82\xca\x82\xe3\x82\x98\x82\xb7\x82\xae\x82\xcb\x82\xcc\x82\xc1\x82\xa9\x82\xb4\x82\xa1\x82\xaa\x82\x9f\x82\xc4\x82\xce\x82\xa4\x82\xe1\x83\x09\x82\xf7\x82\xe4\x83\x0f\x83\x07\x82\xdc\x82\xf4\x82\xd2\x82\xd8\x83\x0c\x82\xfb\x82\xd3\x83\x11\x83\x1a\x83\x06\x83\x14\x83\x15\x82\xe0\x82\xd5\x83\x1c\x83\x51\x83\x5b\x83\x5c\x83\x08\x83\x92\x83\x3c\x83\x34\x83\x31\x83\x9b\x83\x5e\x83\x2f\x83\x4f\x83\x47\x83\x43\x83\x5f\x83\x40\x83\x17\x83\x60\x83\x2d\x83\x3a\x83\x33\x83\x66\x83\x65\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x68\x83\x1b\x83\x69\x83\x6c\x83\x6a\x83\x6d\x83\x6e\x83\xb0\x83\x78\x83\xb3\x83\xb4\x83\xa0\x83\xaa\x83\x93\x83\x9c\x83\x85\x83\x7c\x83\xb6\x83\xa9\x83\x7d\x83\xb8\x83\x7b\x83\x98\x83\x9e\x83\xa8\x83\xba\x83\xbc\x83\xc1\x84\x01\x83\xe5\x83\xd8\x58\x07\x84\x18\x84\x0b\x83\xdd\x83\xfd\x83\xd6\x84\x1c\x84\x38\x84\x11\x84\x06\x83\xd4\x83\xdf\x84\x0f\x84\x03\x83\xf8\x83\xf9\x83\xea\x83\xc5\x83\xc0\x84\x26\x83\xf0\x83\xe1\x84\x5c\x84\x51\x84\x5a\x84\x59\x84\x73\x84\x87\x84\x88\x84\x7a\x84\x89\x84\x78", /* 5f80 */ "\x00\x00\x84\x3c\x84\x46\x84\x69\x84\x76\x84\x8c\x84\x8e\x84\x31\x84\x6d\x84\xc1\x84\xcd\x84\xd0\x84\xe6\x84\xbd\x84\xd3\x84\xca\x84\xbf\x84\xba\x84\xe0\x84\xa1\x84\xb9\x84\xb4\x84\x97\x84\xe5\x84\xe3\x85\x0c\x75\x0d\x85\x38\x84\xf0\x85\x39\x85\x1f\x85\x3a\x85\x56\x85\x3b\x84\xff\x84\xfc\x85\x59\x85\x48\x85\x68\x85\x64\x85\x5e\x85\x7a\x77\xa2\x85\x43\x85\x72\x85\x7b\x85\xa4\x85\xa8\x85\x87\x85\x8f\x85\x79\x85\xae\x85\x9c\x85\x85\x85\xb9\x85\xb7\x85\xb0\x85\xd3\x85\xc1\x85\xdc\x85\xff\x86\x27\x86\x05\x86\x29\x86\x16\x86\x3c\x5e\xfe\x5f\x08\x59\x3c\x59\x41\x80\x37\x59\x55\x59\x5a\x59\x58\x53\x0f\x5c\x22\x5c\x25\x5c\x2c\x5c\x34\x62\x4c\x62\x6a\x62\x9f\x62\xbb\x62\xca\x62\xda\x62\xd7\x62\xee\x63\x22\x62\xf6\x63\x39\x63\x4b\x63\x43\x63\xad\x63\xf6\x63\x71\x63\x7a\x63\x8e\x63\xb4\x63\x6d\x63\xac\x63\x8a\x63\x69\x63\xae\x63\xbc\x63\xf2\x63\xf8\x63\xe0\x63\xff\x63\xc4\x63\xde\x63\xce\x64\x52\x63\xc6\x63\xbe\x64\x45\x64\x41\x64\x0b\x64\x1b\x64\x20\x64\x0c\x64\x26\x64\x21\x64\x5e\x64\x84\x64\x6d\x64\x96\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7a\x64\xb7\x64\xb8\x64\x99\x64\xba\x64\xc0\x64\xd0\x64\xd7\x64\xe4\x64\xe2\x65\x09\x65\x25\x65\x2e\x5f\x0b\x5f\xd2\x75\x19\x5f\x11\x53\x5f\x53\xf1\x53\xfd\x53\xe9\x53\xe8\x53\xfb\x54\x12\x54\x16\x54\x06\x54\x4b\x54\x52\x54\x53\x54\x54\x54\x56\x54\x43\x54\x21\x54\x57\x54\x59\x54\x23\x54\x32\x54\x82\x54\x94\x54\x77\x54\x71\x54\x64\x54\x9a\x54\x9b\x54\x84\x54\x76\x54\x66\x54\x9d\x54\xd0\x54\xad\x54\xc2\x54\xb4\x54\xd2\x54\xa7\x54\xa6\x54\xd3\x54\xd4\x54\x72\x54\xa3\x54\xd5\x54\xbb\x54\xbf\x54\xcc", /* 6080 */ "\x00\x00\x54\xd9\x54\xda\x54\xdc\x54\xa9\x54\xaa\x54\xa4\x54\xdd\x54\xcf\x54\xde\x55\x1b\x54\xe7\x55\x20\x54\xfd\x55\x14\x54\xf3\x55\x22\x55\x23\x55\x0f\x55\x11\x55\x27\x55\x2a\x55\x67\x55\x8f\x55\xb5\x55\x49\x55\x6d\x55\x41\x55\x55\x55\x3f\x55\x50\x55\x3c\x55\x37\x55\x56\x55\x75\x55\x76\x55\x77\x55\x33\x55\x30\x55\x5c\x55\x8b\x55\xd2\x55\x83\x55\xb1\x55\xb9\x55\x88\x55\x81\x55\x9f\x55\x7e\x55\xd6\x55\x91\x55\x7b\x55\xdf\x55\xbd\x55\xbe\x55\x94\x55\x99\x55\xea\x55\xf7\x55\xc9\x56\x1f\x55\xd1\x55\xeb\x55\xec\x55\xd4\x55\xe6\x55\xdd\x55\xc4\x55\xef\x55\xe5\x55\xf2\x55\xf3\x55\xcc\x55\xcd\x55\xe8\x55\xf5\x55\xe4\x8f\x94\x56\x1e\x56\x08\x56\x0c\x56\x01\x56\x24\x56\x23\x55\xfe\x56\x00\x56\x27\x56\x2d\x56\x58\x56\x39\x56\x57\x56\x2c\x56\x4d\x56\x62\x56\x59\x56\x5c\x56\x4c\x56\x54\x56\x86\x56\x64\x56\x71\x56\x6b\x56\x7b\x56\x7c\x56\x85\x56\x93\x56\xaf\x56\xd4\x56\xd7\x56\xdd\x56\xe1\x56\xf5\x56\xeb\x56\xf9\x56\xff\x57\x04\x57\x0a\x57\x09\x57\x1c\x5e\x0f\x5e\x19\x5e\x14\x5e\x11\x5e\x31\x5e\x3b\x5e\x3c\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x37\x5e\x44\x5e\x54\x5e\x5b\x5e\x5e\x5e\x61\x5c\x8c\x5c\x7a\x5c\x8d\x5c\x90\x5c\x96\x5c\x88\x5c\x98\x5c\x99\x5c\x91\x5c\x9a\x5c\x9c\x5c\xb5\x5c\xa2\x5c\xbd\x5c\xac\x5c\xab\x5c\xb1\x5c\xa3\x5c\xc1\x5c\xb7\x5c\xc4\x5c\xd2\x5c\xe4\x5c\xcb\x5c\xe5\x5d\x02\x5d\x03\x5d\x27\x5d\x26\x5d\x2e\x5d\x24\x5d\x1e\x5d\x06\x5d\x1b\x5d\x58\x5d\x3e\x5d\x34\x5d\x3d\x5d\x6c\x5d\x5b\x5d\x6f\x5d\x5d\x5d\x6b\x5d\x4b\x5d\x4a\x5d\x69\x5d\x74\x5d\x82\x5d\x99\x5d\x9d\x8c\x73\x5d\xb7\x5d\xc5\x5f\x73\x5f\x77\x5f\x82\x5f\x87", /* 6180 */ "\x00\x00\x5f\x89\x5f\x8c\x5f\x95\x5f\x99\x5f\x9c\x5f\xa8\x5f\xad\x5f\xb5\x5f\xbc\x88\x62\x5f\x61\x72\xad\x72\xb0\x72\xb4\x72\xb7\x72\xb8\x72\xc3\x72\xc1\x72\xce\x72\xcd\x72\xd2\x72\xe8\x72\xef\x72\xe9\x72\xf2\x72\xf4\x72\xf7\x73\x01\x72\xf3\x73\x03\x72\xfa\x72\xfb\x73\x17\x73\x13\x73\x21\x73\x0a\x73\x1e\x73\x1d\x73\x15\x73\x22\x73\x39\x73\x25\x73\x2c\x73\x38\x73\x31\x73\x50\x73\x4d\x73\x57\x73\x60\x73\x6c\x73\x6f\x73\x7e\x82\x1b\x59\x25\x98\xe7\x59\x24\x59\x02\x99\x63\x99\x67\x99\x68\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x74\x99\x77\x99\x7d\x99\x80\x99\x84\x99\x87\x99\x8a\x99\x8d\x99\x90\x99\x91\x99\x93\x99\x94\x99\x95\x5e\x80\x5e\x91\x5e\x8b\x5e\x96\x5e\xa5\x5e\xa0\x5e\xb9\x5e\xb5\x5e\xbe\x5e\xb3\x8d\x53\x5e\xd2\x5e\xd1\x5e\xdb\x5e\xe8\x5e\xea\x81\xba\x5f\xc4\x5f\xc9\x5f\xd6\x5f\xcf\x60\x03\x5f\xee\x60\x04\x5f\xe1\x5f\xe4\x5f\xfe\x60\x05\x60\x06\x5f\xea\x5f\xed\x5f\xf8\x60\x19\x60\x35\x60\x26\x60\x1b\x60\x0f\x60\x0d\x60\x29\x60\x2b\x60\x0a\x60\x3f\x60\x21\x60\x78\x60\x79\x60\x7b\x60\x7a\x60\x42\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6a\x60\x7d\x60\x96\x60\x9a\x60\xad\x60\x9d\x60\x83\x60\x92\x60\x8c\x60\x9b\x60\xec\x60\xbb\x60\xb1\x60\xdd\x60\xd8\x60\xc6\x60\xda\x60\xb4\x61\x20\x61\x26\x61\x15\x61\x23\x60\xf4\x61\x00\x61\x0e\x61\x2b\x61\x4a\x61\x75\x61\xac\x61\x94\x61\xa7\x61\xb7\x61\xd4\x61\xf5\x5f\xdd\x96\xb3\x95\xe9\x95\xeb\x95\xf1\x95\xf3\x95\xf5\x95\xf6\x95\xfc\x95\xfe\x96\x03\x96\x04\x96\x06\x96\x08\x96\x0a\x96\x0b\x96\x0c\x96\x0d\x96\x0f\x96\x12\x96\x15\x96\x16\x96\x17\x96\x19\x96\x1a\x4e\x2c\x72\x3f\x62\x15\x6c\x35", /* 6280 */ "\x00\x00\x6c\x54\x6c\x5c\x6c\x4a\x6c\xa3\x6c\x85\x6c\x90\x6c\x94\x6c\x8c\x6c\x68\x6c\x69\x6c\x74\x6c\x76\x6c\x86\x6c\xa9\x6c\xd0\x6c\xd4\x6c\xad\x6c\xf7\x6c\xf8\x6c\xf1\x6c\xd7\x6c\xb2\x6c\xe0\x6c\xd6\x6c\xfa\x6c\xeb\x6c\xee\x6c\xb1\x6c\xd3\x6c\xef\x6c\xfe\x6d\x39\x6d\x27\x6d\x0c\x6d\x43\x6d\x48\x6d\x07\x6d\x04\x6d\x19\x6d\x0e\x6d\x2b\x6d\x4d\x6d\x2e\x6d\x35\x6d\x1a\x6d\x4f\x6d\x52\x6d\x54\x6d\x33\x6d\x91\x6d\x6f\x6d\x9e\x6d\xa0\x6d\x5e\x6d\x93\x6d\x94\x6d\x5c\x6d\x60\x6d\x7c\x6d\x63\x6e\x1a\x6d\xc7\x6d\xc5\x6d\xde\x6e\x0e\x6d\xbf\x6d\xe0\x6e\x11\x6d\xe6\x6d\xdd\x6d\xd9\x6e\x16\x6d\xab\x6e\x0c\x6d\xae\x6e\x2b\x6e\x6e\x6e\x4e\x6e\x6b\x6e\xb2\x6e\x5f\x6e\x86\x6e\x53\x6e\x54\x6e\x32\x6e\x25\x6e\x44\x6e\xdf\x6e\xb1\x6e\x98\x6e\xe0\x6f\x2d\x6e\xe2\x6e\xa5\x6e\xa7\x6e\xbd\x6e\xbb\x6e\xb7\x6e\xd7\x6e\xb4\x6e\xcf\x6e\x8f\x6e\xc2\x6e\x9f\x6f\x62\x6f\x46\x6f\x47\x6f\x24\x6f\x15\x6e\xf9\x6f\x2f\x6f\x36\x6f\x4b\x6f\x74\x6f\x2a\x6f\x09\x6f\x29\x6f\x89\x6f\x8d\x6f\x8c\x6f\x78\x6f\x72\x6f\x7c\x6f\x7a\x6f\xd1\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xc9\x6f\xa7\x6f\xb9\x6f\xb6\x6f\xc2\x6f\xe1\x6f\xee\x6f\xde\x6f\xe0\x6f\xef\x70\x1a\x70\x23\x70\x1b\x70\x39\x70\x35\x70\x4f\x70\x5e\x5b\x80\x5b\x84\x5b\x95\x5b\x93\x5b\xa5\x5b\xb8\x75\x2f\x9a\x9e\x64\x34\x5b\xe4\x5b\xee\x89\x30\x5b\xf0\x8e\x47\x8b\x07\x8f\xb6\x8f\xd3\x8f\xd5\x8f\xe5\x8f\xee\x8f\xe4\x8f\xe9\x8f\xe6\x8f\xf3\x8f\xe8\x90\x05\x90\x04\x90\x0b\x90\x26\x90\x11\x90\x0d\x90\x16\x90\x21\x90\x35\x90\x36\x90\x2d\x90\x2f\x90\x44\x90\x51\x90\x52\x90\x50\x90\x68\x90\x58\x90\x62\x90\x5b\x66\xb9", /* 6380 */ "\x00\x00\x90\x74\x90\x7d\x90\x82\x90\x88\x90\x83\x90\x8b\x5f\x50\x5f\x57\x5f\x56\x5f\x58\x5c\x3b\x54\xab\x5c\x50\x5c\x59\x5b\x71\x5c\x63\x5c\x66\x7f\xbc\x5f\x2a\x5f\x29\x5f\x2d\x82\x74\x5f\x3c\x9b\x3b\x5c\x6e\x59\x81\x59\x83\x59\x8d\x59\xa9\x59\xaa\x59\xa3\x59\x97\x59\xca\x59\xab\x59\x9e\x59\xa4\x59\xd2\x59\xb2\x59\xaf\x59\xd7\x59\xbe\x5a\x05\x5a\x06\x59\xdd\x5a\x08\x59\xe3\x59\xd8\x59\xf9\x5a\x0c\x5a\x09\x5a\x32\x5a\x34\x5a\x11\x5a\x23\x5a\x13\x5a\x40\x5a\x67\x5a\x4a\x5a\x55\x5a\x3c\x5a\x62\x5a\x75\x80\xec\x5a\xaa\x5a\x9b\x5a\x77\x5a\x7a\x5a\xbe\x5a\xeb\x5a\xb2\x5a\xd2\x5a\xd4\x5a\xb8\x5a\xe0\x5a\xe3\x5a\xf1\x5a\xd6\x5a\xe6\x5a\xd8\x5a\xdc\x5b\x09\x5b\x17\x5b\x16\x5b\x32\x5b\x37\x5b\x40\x5c\x15\x5c\x1c\x5b\x5a\x5b\x65\x5b\x73\x5b\x51\x5b\x53\x5b\x62\x9a\x75\x9a\x77\x9a\x78\x9a\x7a\x9a\x7f\x9a\x7d\x9a\x80\x9a\x81\x9a\x85\x9a\x88\x9a\x8a\x9a\x90\x9a\x92\x9a\x93\x9a\x96\x9a\x98\x9a\x9b\x9a\x9c\x9a\x9d\x9a\x9f\x9a\xa0\x9a\xa2\x9a\xa3\x9a\xa5\x9a\xa7\x7e\x9f\x7e\xa1\x7e\xa3\x7e\xa5\x7e\xa8\x7e\xa9\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xad\x7e\xb0\x7e\xbe\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc9\x7e\xcb\x7e\xcc\x7e\xd0\x7e\xd4\x7e\xd7\x7e\xdb\x7e\xe0\x7e\xe1\x7e\xe8\x7e\xeb\x7e\xee\x7e\xef\x7e\xf1\x7e\xf2\x7f\x0d\x7e\xf6\x7e\xfa\x7e\xfb\x7e\xfe\x7f\x01\x7f\x02\x7f\x03\x7f\x07\x7f\x08\x7f\x0b\x7f\x0c\x7f\x0f\x7f\x11\x7f\x12\x7f\x17\x7f\x19\x7f\x1c\x7f\x1b\x7f\x1f\x7f\x21\x7f\x22\x7f\x23\x7f\x24\x7f\x25\x7f\x26\x7f\x27\x7f\x2a\x7f\x2b\x7f\x2c\x7f\x2d\x7f\x2f\x7f\x30\x7f\x31\x7f\x32\x7f\x33\x7f\x35\x5e\x7a\x75\x7f\x5d\xdb\x75\x3e\x90\x95", /* 6480 */ "\x00\x00\x73\x8e\x73\x91\x73\xae\x73\xa2\x73\x9f\x73\xcf\x73\xc2\x73\xd1\x73\xb7\x73\xb3\x73\xc0\x73\xc9\x73\xc8\x73\xe5\x73\xd9\x98\x7c\x74\x0a\x73\xe9\x73\xe7\x73\xde\x73\xba\x73\xf2\x74\x0f\x74\x2a\x74\x5b\x74\x26\x74\x25\x74\x28\x74\x30\x74\x2e\x74\x2c\x74\x1b\x74\x1a\x74\x41\x74\x5c\x74\x57\x74\x55\x74\x59\x74\x77\x74\x6d\x74\x7e\x74\x9c\x74\x8e\x74\x80\x74\x81\x74\x87\x74\x8b\x74\x9e\x74\xa8\x74\xa9\x74\x90\x74\xa7\x74\xd2\x74\xba\x97\xea\x97\xeb\x97\xec\x67\x4c\x67\x53\x67\x5e\x67\x48\x67\x69\x67\xa5\x67\x87\x67\x6a\x67\x73\x67\x98\x67\xa7\x67\x75\x67\xa8\x67\x9e\x67\xad\x67\x8b\x67\x77\x67\x7c\x67\xf0\x68\x09\x67\xd8\x68\x0a\x67\xe9\x67\xb0\x68\x0c\x67\xd9\x67\xb5\x67\xda\x67\xb3\x67\xdd\x68\x00\x67\xc3\x67\xb8\x67\xe2\x68\x0e\x67\xc1\x67\xfd\x68\x32\x68\x33\x68\x60\x68\x61\x68\x4e\x68\x62\x68\x44\x68\x64\x68\x83\x68\x1d\x68\x55\x68\x66\x68\x41\x68\x67\x68\x40\x68\x3e\x68\x4a\x68\x49\x68\x29\x68\xb5\x68\x8f\x68\x74\x68\x77\x68\x93\x68\x6b\x68\xc2\x69\x6e\x68\xfc\x69\x1f\x69\x20\x68\xf9\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x24\x68\xf0\x69\x0b\x69\x01\x69\x57\x68\xe3\x69\x10\x69\x71\x69\x39\x69\x60\x69\x42\x69\x5d\x69\x84\x69\x6b\x69\x80\x69\x98\x69\x78\x69\x34\x69\xcc\x69\x87\x69\x88\x69\xce\x69\x89\x69\x66\x69\x63\x69\x79\x69\x9b\x69\xa7\x69\xbb\x69\xab\x69\xad\x69\xd4\x69\xb1\x69\xc1\x69\xca\x69\xdf\x69\x95\x69\xe0\x69\x8d\x69\xff\x6a\x2f\x69\xed\x6a\x17\x6a\x18\x6a\x65\x69\xf2\x6a\x44\x6a\x3e\x6a\xa0\x6a\x50\x6a\x5b\x6a\x35\x6a\x8e\x6a\x79\x6a\x3d\x6a\x28\x6a\x58\x6a\x7c\x6a\x91\x6a\x90\x6a\xa9\x6a\x97\x6a\xab", /* 6580 */ "\x00\x00\x73\x37\x73\x52\x6b\x81\x6b\x82\x6b\x87\x6b\x84\x6b\x92\x6b\x93\x6b\x8d\x6b\x9a\x6b\x9b\x6b\xa1\x6b\xaa\x8f\x6b\x8f\x6d\x8f\x71\x8f\x72\x8f\x73\x8f\x75\x8f\x76\x8f\x78\x8f\x77\x8f\x79\x8f\x7a\x8f\x7c\x8f\x7e\x8f\x81\x8f\x82\x8f\x84\x8f\x87\x8f\x8b\x8f\x8d\x8f\x8e\x8f\x8f\x8f\x98\x8f\x9a\x8e\xce\x62\x0b\x62\x17\x62\x1b\x62\x1f\x62\x22\x62\x21\x62\x25\x62\x24\x62\x2c\x81\xe7\x74\xef\x74\xf4\x74\xff\x75\x0f\x75\x11\x75\x13\x65\x34\x65\xee\x65\xef\x65\xf0\x66\x0a\x66\x19\x67\x72\x66\x03\x66\x15\x66\x00\x70\x85\x66\xf7\x66\x1d\x66\x34\x66\x31\x66\x36\x66\x35\x80\x06\x66\x5f\x66\x54\x66\x41\x66\x4f\x66\x56\x66\x61\x66\x57\x66\x77\x66\x84\x66\x8c\x66\xa7\x66\x9d\x66\xbe\x66\xdb\x66\xdc\x66\xe6\x66\xe9\x8d\x32\x8d\x33\x8d\x36\x8d\x3b\x8d\x3d\x8d\x40\x8d\x45\x8d\x46\x8d\x48\x8d\x49\x8d\x47\x8d\x4d\x8d\x55\x8d\x59\x89\xc7\x89\xca\x89\xcb\x89\xcc\x89\xce\x89\xcf\x89\xd0\x89\xd1\x72\x6e\x72\x9f\x72\x5d\x72\x66\x72\x6f\x72\x7e\x72\x7f\x72\x84\x72\x8b\x72\x8d\x72\x8f\x72\x92\x63\x08\x63\x32\x63\xb0\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x3f\x64\xd8\x80\x04\x6b\xea\x6b\xf3\x6b\xfd\x6b\xf5\x6b\xf9\x6c\x05\x6c\x07\x6c\x06\x6c\x0d\x6c\x15\x6c\x18\x6c\x19\x6c\x1a\x6c\x21\x6c\x29\x6c\x24\x6c\x2a\x6c\x32\x65\x35\x65\x55\x65\x6b\x72\x4d\x72\x52\x72\x56\x72\x30\x86\x62\x52\x16\x80\x9f\x80\x9c\x80\x93\x80\xbc\x67\x0a\x80\xbd\x80\xb1\x80\xab\x80\xad\x80\xb4\x80\xb7\x80\xe7\x80\xe8\x80\xe9\x80\xea\x80\xdb\x80\xc2\x80\xc4\x80\xd9\x80\xcd\x80\xd7\x67\x10\x80\xdd\x80\xeb\x80\xf1\x80\xf4\x80\xed\x81\x0d\x81\x0e\x80\xf2\x80\xfc\x67\x15\x81\x12", /* 6680 */ "\x00\x00\x8c\x5a\x81\x36\x81\x1e\x81\x2c\x81\x18\x81\x32\x81\x48\x81\x4c\x81\x53\x81\x74\x81\x59\x81\x5a\x81\x71\x81\x60\x81\x69\x81\x7c\x81\x7d\x81\x6d\x81\x67\x58\x4d\x5a\xb5\x81\x88\x81\x82\x81\x91\x6e\xd5\x81\xa3\x81\xaa\x81\xcc\x67\x26\x81\xca\x81\xbb\x81\xc1\x81\xa6\x6b\x24\x6b\x37\x6b\x39\x6b\x43\x6b\x46\x6b\x59\x98\xd1\x98\xd2\x98\xd3\x98\xd5\x98\xd9\x98\xda\x6b\xb3\x5f\x40\x6b\xc2\x89\xf3\x65\x90\x9f\x51\x65\x93\x65\xbc\x65\xc6\x65\xc4\x65\xc3\x65\xcc\x65\xce\x65\xd2\x65\xd6\x70\x80\x70\x9c\x70\x96\x70\x9d\x70\xbb\x70\xc0\x70\xb7\x70\xab\x70\xb1\x70\xe8\x70\xca\x71\x10\x71\x13\x71\x16\x71\x2f\x71\x31\x71\x73\x71\x5c\x71\x68\x71\x45\x71\x72\x71\x4a\x71\x78\x71\x7a\x71\x98\x71\xb3\x71\xb5\x71\xa8\x71\xa0\x71\xe0\x71\xd4\x71\xe7\x71\xf9\x72\x1d\x72\x28\x70\x6c\x71\x18\x71\x66\x71\xb9\x62\x3e\x62\x3d\x62\x43\x62\x48\x62\x49\x79\x3b\x79\x40\x79\x46\x79\x49\x79\x5b\x79\x5c\x79\x53\x79\x5a\x79\x62\x79\x57\x79\x60\x79\x6f\x79\x67\x79\x7a\x79\x85\x79\x8a\x79\x9a\x79\xa7\x79\xb3\x5f\xd1\x5f\xd0\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x3c\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\x59\x60\x63\x60\xab\x61\x06\x61\x0d\x61\x5d\x61\xa9\x61\x9d\x61\xcb\x61\xd1\x62\x06\x80\x80\x80\x7f\x6c\x93\x6c\xf6\x6d\xfc\x77\xf6\x77\xf8\x78\x00\x78\x09\x78\x17\x78\x18\x78\x11\x65\xab\x78\x2d\x78\x1c\x78\x1d\x78\x39\x78\x3a\x78\x3b\x78\x1f\x78\x3c\x78\x25\x78\x2c\x78\x23\x78\x29\x78\x4e\x78\x6d\x78\x56\x78\x57\x78\x26\x78\x50\x78\x47\x78\x4c\x78\x6a\x78\x9b\x78\x93\x78\x9a\x78\x87\x78\x9c\x78\xa1\x78\xa3\x78\xb2\x78\xb9\x78\xa5\x78\xd4\x78\xd9\x78\xc9", /* 6780 */ "\x00\x00\x78\xec\x78\xf2\x79\x05\x78\xf4\x79\x13\x79\x24\x79\x1e\x79\x34\x9f\x9b\x9e\xf9\x9e\xfb\x9e\xfc\x76\xf1\x77\x04\x77\x0d\x76\xf9\x77\x07\x77\x08\x77\x1a\x77\x22\x77\x19\x77\x2d\x77\x26\x77\x35\x77\x38\x77\x50\x77\x51\x77\x47\x77\x43\x77\x5a\x77\x68\x77\x62\x77\x65\x77\x7f\x77\x8d\x77\x7d\x77\x80\x77\x8c\x77\x91\x77\x9f\x77\xa0\x77\xb0\x77\xb5\x77\xbd\x75\x3a\x75\x40\x75\x4e\x75\x4b\x75\x48\x75\x5b\x75\x72\x75\x79\x75\x83\x7f\x58\x7f\x61\x7f\x5f\x8a\x48\x7f\x68\x7f\x74\x7f\x71\x7f\x79\x7f\x81\x7f\x7e\x76\xcd\x76\xe5\x88\x32\x94\x85\x94\x86\x94\x87\x94\x8b\x94\x8a\x94\x8c\x94\x8d\x94\x8f\x94\x90\x94\x94\x94\x97\x94\x95\x94\x9a\x94\x9b\x94\x9c\x94\xa3\x94\xa4\x94\xab\x94\xaa\x94\xad\x94\xac\x94\xaf\x94\xb0\x94\xb2\x94\xb4\x94\xb6\x94\xb7\x94\xb8\x94\xb9\x94\xba\x94\xbc\x94\xbd\x94\xbf\x94\xc4\x94\xc8\x94\xc9\x94\xca\x94\xcb\x94\xcc\x94\xcd\x94\xce\x94\xd0\x94\xd1\x94\xd2\x94\xd5\x94\xd6\x94\xd7\x94\xd9\x94\xd8\x94\xdb\x94\xde\x94\xdf\x94\xe0\x94\xe2\x94\xe4\x94\xe5\x94\xe7\x94\xe8\x94\xea\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe9\x94\xeb\x94\xee\x94\xef\x94\xf3\x94\xf4\x94\xf5\x94\xf7\x94\xf9\x94\xfc\x94\xfd\x94\xff\x95\x03\x95\x02\x95\x06\x95\x07\x95\x09\x95\x0a\x95\x0d\x95\x0e\x95\x0f\x95\x12\x95\x13\x95\x14\x95\x15\x95\x16\x95\x18\x95\x1b\x95\x1d\x95\x1e\x95\x1f\x95\x22\x95\x2a\x95\x2b\x95\x29\x95\x2c\x95\x31\x95\x32\x95\x34\x95\x36\x95\x37\x95\x38\x95\x3c\x95\x3e\x95\x3f\x95\x42\x95\x35\x95\x44\x95\x45\x95\x46\x95\x49\x95\x4c\x95\x4e\x95\x4f\x95\x52\x95\x53\x95\x54\x95\x56\x95\x57\x95\x58\x95\x59\x95\x5b\x95\x5e", /* 6880 */ "\x00\x00\x95\x5f\x95\x5d\x95\x61\x95\x62\x95\x64\x95\x65\x95\x66\x95\x67\x95\x68\x95\x69\x95\x6a\x95\x6b\x95\x6c\x95\x6f\x95\x71\x95\x72\x95\x73\x95\x3a\x77\xe7\x77\xec\x96\xc9\x79\xd5\x79\xed\x79\xe3\x79\xeb\x7a\x06\x5d\x47\x7a\x03\x7a\x02\x7a\x1e\x7a\x14\x7a\x39\x7a\x37\x7a\x51\x9e\xcf\x99\xa5\x7a\x70\x76\x88\x76\x8e\x76\x93\x76\x99\x76\xa4\x74\xde\x74\xe0\x75\x2c\x9e\x20\x9e\x22\x9e\x28\x9e\x29\x9e\x2a\x9e\x2b\x9e\x2c\x9e\x32\x9e\x31\x9e\x36\x9e\x38\x9e\x37\x9e\x39\x9e\x3a\x9e\x3e\x9e\x41\x9e\x42\x9e\x44\x9e\x46\x9e\x47\x9e\x48\x9e\x49\x9e\x4b\x9e\x4c\x9e\x4e\x9e\x51\x9e\x55\x9e\x57\x9e\x5a\x9e\x5b\x9e\x5c\x9e\x5e\x9e\x63\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x9e\x6b\x9e\x6c\x9e\x71\x9e\x6d\x9e\x73\x75\x92\x75\x94\x75\x96\x75\xa0\x75\x9d\x75\xac\x75\xa3\x75\xb3\x75\xb4\x75\xb8\x75\xc4\x75\xb1\x75\xb0\x75\xc3\x75\xc2\x75\xd6\x75\xcd\x75\xe3\x75\xe8\x75\xe6\x75\xe4\x75\xeb\x75\xe7\x76\x03\x75\xf1\x75\xfc\x75\xff\x76\x10\x76\x00\x76\x05\x76\x0c\x76\x17\x76\x0a\x76\x25\x76\x18\x76\x15\x76\x19\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x1b\x76\x3c\x76\x22\x76\x20\x76\x40\x76\x2d\x76\x30\x76\x3f\x76\x35\x76\x43\x76\x3e\x76\x33\x76\x4d\x76\x5e\x76\x54\x76\x5c\x76\x56\x76\x6b\x76\x6f\x7f\xca\x7a\xe6\x7a\x78\x7a\x79\x7a\x80\x7a\x86\x7a\x88\x7a\x95\x7a\xa6\x7a\xa0\x7a\xac\x7a\xa8\x7a\xad\x7a\xb3\x88\x64\x88\x69\x88\x72\x88\x7d\x88\x7f\x88\x82\x88\xa2\x88\xc6\x88\xb7\x88\xbc\x88\xc9\x88\xe2\x88\xce\x88\xe3\x88\xe5\x88\xf1\x89\x1a\x88\xfc\x88\xe8\x88\xfe\x88\xf0\x89\x21\x89\x19\x89\x13\x89\x1b\x89\x0a\x89\x34\x89\x2b\x89\x36\x89\x41", /* 6980 */ "\x00\x00\x89\x66\x89\x7b\x75\x8b\x80\xe5\x76\xb2\x76\xb4\x77\xdc\x80\x12\x80\x14\x80\x16\x80\x1c\x80\x20\x80\x22\x80\x25\x80\x26\x80\x27\x80\x29\x80\x28\x80\x31\x80\x0b\x80\x35\x80\x43\x80\x46\x80\x4d\x80\x52\x80\x69\x80\x71\x89\x83\x98\x78\x98\x80\x98\x83\x98\x89\x98\x8c\x98\x8d\x98\x8f\x98\x94\x98\x9a\x98\x9b\x98\x9e\x98\x9f\x98\xa1\x98\xa2\x98\xa5\x98\xa6\x86\x4d\x86\x54\x86\x6c\x86\x6e\x86\x7f\x86\x7a\x86\x7c\x86\x7b\x86\xa8\x86\x8d\x86\x8b\x86\xac\x86\x9d\x86\xa7\x86\xa3\x86\xaa\x86\x93\x86\xa9\x86\xb6\x86\xc4\x86\xb5\x86\xce\x86\xb0\x86\xba\x86\xb1\x86\xaf\x86\xc9\x86\xcf\x86\xb4\x86\xe9\x86\xf1\x86\xf2\x86\xed\x86\xf3\x86\xd0\x87\x13\x86\xde\x86\xf4\x86\xdf\x86\xd8\x86\xd1\x87\x03\x87\x07\x86\xf8\x87\x08\x87\x0a\x87\x0d\x87\x09\x87\x23\x87\x3b\x87\x1e\x87\x25\x87\x2e\x87\x1a\x87\x3e\x87\x48\x87\x34\x87\x31\x87\x29\x87\x37\x87\x3f\x87\x82\x87\x22\x87\x7d\x87\x7e\x87\x7b\x87\x60\x87\x70\x87\x4c\x87\x6e\x87\x8b\x87\x53\x87\x63\x87\x7c\x87\x64\x87\x59\x87\x65\x87\x93\x87\xaf\x87\xa8\x87\xd2\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xc6\x87\x88\x87\x85\x87\xad\x87\x97\x87\x83\x87\xab\x87\xe5\x87\xac\x87\xb5\x87\xb3\x87\xcb\x87\xd3\x87\xbd\x87\xd1\x87\xc0\x87\xca\x87\xdb\x87\xea\x87\xe0\x87\xee\x88\x16\x88\x13\x87\xfe\x88\x0a\x88\x1b\x88\x21\x88\x39\x88\x3c\x7f\x36\x7f\x42\x7f\x44\x7f\x45\x82\x10\x7a\xfa\x7a\xfd\x7b\x08\x7b\x03\x7b\x04\x7b\x15\x7b\x0a\x7b\x2b\x7b\x0f\x7b\x47\x7b\x38\x7b\x2a\x7b\x19\x7b\x2e\x7b\x31\x7b\x20\x7b\x25\x7b\x24\x7b\x33\x7b\x3e\x7b\x1e\x7b\x58\x7b\x5a\x7b\x45\x7b\x75\x7b\x4c\x7b\x5d\x7b\x60\x7b\x6e", /* 6a80 */ "\x00\x00\x7b\x7b\x7b\x62\x7b\x72\x7b\x71\x7b\x90\x7b\xa6\x7b\xa7\x7b\xb8\x7b\xac\x7b\x9d\x7b\xa8\x7b\x85\x7b\xaa\x7b\x9c\x7b\xa2\x7b\xab\x7b\xb4\x7b\xd1\x7b\xc1\x7b\xcc\x7b\xdd\x7b\xda\x7b\xe5\x7b\xe6\x7b\xea\x7c\x0c\x7b\xfe\x7b\xfc\x7c\x0f\x7c\x16\x7c\x0b\x7c\x1f\x7c\x2a\x7c\x26\x7c\x38\x7c\x41\x7c\x40\x81\xfe\x82\x01\x82\x02\x82\x04\x81\xec\x88\x44\x82\x21\x82\x22\x82\x23\x82\x2d\x82\x2f\x82\x28\x82\x2b\x82\x38\x82\x3b\x82\x33\x82\x34\x82\x3e\x82\x44\x82\x49\x82\x4b\x82\x4f\x82\x5a\x82\x5f\x82\x68\x88\x7e\x88\x85\x88\x88\x88\xd8\x88\xdf\x89\x5e\x7f\x9d\x7f\x9f\x7f\xa7\x7f\xaf\x7f\xb0\x7f\xb2\x7c\x7c\x65\x49\x7c\x91\x7c\x9d\x7c\x9c\x7c\x9e\x7c\xa2\x7c\xb2\x7c\xbc\x7c\xbd\x7c\xc1\x7c\xc7\x7c\xcc\x7c\xcd\x7c\xc8\x7c\xc5\x7c\xd7\x7c\xe8\x82\x6e\x66\xa8\x7f\xbf\x7f\xce\x7f\xd5\x7f\xe5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xee\x7f\xf3\x7c\xf8\x7d\x77\x7d\xa6\x7d\xae\x7e\x47\x7e\x9b\x9e\xb8\x9e\xb4\x8d\x73\x8d\x84\x8d\x94\x8d\x91\x8d\xb1\x8d\x67\x8d\x6d\x8c\x47\x8c\x49\x91\x4a\x91\x50\x91\x4e\x91\x4f\x91\x64\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x62\x91\x61\x91\x70\x91\x69\x91\x6f\x91\x7d\x91\x7e\x91\x72\x91\x74\x91\x79\x91\x8c\x91\x85\x91\x90\x91\x8d\x91\x91\x91\xa2\x91\xa3\x91\xaa\x91\xad\x91\xae\x91\xaf\x91\xb5\x91\xb4\x91\xba\x8c\x55\x9e\x7e\x8d\xb8\x8d\xeb\x8e\x05\x8e\x59\x8e\x69\x8d\xb5\x8d\xbf\x8d\xbc\x8d\xba\x8d\xc4\x8d\xd6\x8d\xd7\x8d\xda\x8d\xde\x8d\xce\x8d\xcf\x8d\xdb\x8d\xc6\x8d\xec\x8d\xf7\x8d\xf8\x8d\xe3\x8d\xf9\x8d\xfb\x8d\xe4\x8e\x09\x8d\xfd\x8e\x14\x8e\x1d\x8e\x1f\x8e\x2c\x8e\x2e\x8e\x23\x8e\x2f\x8e\x3a\x8e\x40\x8e\x39", /* 6b80 */ "\x00\x00\x8e\x35\x8e\x3d\x8e\x31\x8e\x49\x8e\x41\x8e\x42\x8e\x51\x8e\x52\x8e\x4a\x8e\x70\x8e\x76\x8e\x7c\x8e\x6f\x8e\x74\x8e\x85\x8e\x8f\x8e\x94\x8e\x90\x8e\x9c\x8e\x9e\x8c\x78\x8c\x82\x8c\x8a\x8c\x85\x8c\x98\x8c\x94\x65\x9b\x89\xd6\x89\xde\x89\xda\x89\xdc\x89\xe5\x89\xeb\x89\xef\x8a\x3e\x8b\x26\x97\x53\x96\xe9\x96\xf3\x96\xef\x97\x06\x97\x01\x97\x08\x97\x0f\x97\x0e\x97\x2a\x97\x2d\x97\x30\x97\x3e\x9f\x80\x9f\x83\x9f\x85\x9f\x86\x9f\x87\x9f\x88\x9f\x89\x9f\x8a\x9f\x8c\x9e\xfe\x9f\x0b\x9f\x0d\x96\xb9\x96\xbc\x96\xbd\x96\xce\x96\xd2\x77\xbf\x96\xe0\x92\x8e\x92\xae\x92\xc8\x93\x3e\x93\x6a\x93\xca\x93\x8f\x94\x3e\x94\x6b\x9c\x7f\x9c\x82\x9c\x85\x9c\x86\x9c\x87\x9c\x88\x7a\x23\x9c\x8b\x9c\x8e\x9c\x90\x9c\x91\x9c\x92\x9c\x94\x9c\x95\x9c\x9a\x9c\x9b\x9c\x9e\x9c\x9f\x9c\xa0\x9c\xa1\x9c\xa2\x9c\xa3\x9c\xa5\x9c\xa6\x9c\xa7\x9c\xa8\x9c\xa9\x9c\xab\x9c\xad\x9c\xae\x9c\xb0\x9c\xb1\x9c\xb2\x9c\xb3\x9c\xb4\x9c\xb5\x9c\xb6\x9c\xb7\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xca\x9c\xcb\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xcc\x9c\xcd\x9c\xce\x9c\xcf\x9c\xd0\x9c\xd3\x9c\xd4\x9c\xd5\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xdc\x9c\xdd\x9c\xdf\x9c\xe2\x97\x7c\x97\x85\x97\x91\x97\x92\x97\x94\x97\xaf\x97\xab\x97\xa3\x97\xb2\x97\xb4\x9a\xb1\x9a\xb0\x9a\xb7\x9e\x58\x9a\xb6\x9a\xba\x9a\xbc\x9a\xc1\x9a\xc0\x9a\xc5\x9a\xc2\x9a\xcb\x9a\xcc\x9a\xd1\x9b\x45\x9b\x43\x9b\x47\x9b\x49\x9b\x48\x9b\x4d\x9b\x51\x98\xe8\x99\x0d\x99\x2e\x99\x55\x99\x54\x9a\xdf\x9a\xe1\x9a\xe6\x9a\xef\x9a\xeb\x9a\xfb\x9a\xed\x9a\xf9\x9b\x08\x9b\x0f\x9b\x13\x9b\x1f", /* 6c80 */ "\x00\x00\x9b\x23\x9e\xbd\x9e\xbe\x7e\x3b\x9e\x82\x9e\x87\x9e\x88\x9e\x8b\x9e\x92\x93\xd6\x9e\x9d\x9e\x9f\x9e\xdb\x9e\xdc\x9e\xdd\x9e\xe0\x9e\xdf\x9e\xe2\x9e\xe9\x9e\xe7\x9e\xe5\x9e\xea\x9e\xef\x9f\x22\x9f\x2c\x9f\x2f\x9f\x39\x9f\x37\x9f\x3d\x9f\x3e\x9f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ NULL, /* 6d80 */ NULL, /* 6e00 */ NULL, /* 6e80 */ NULL, /* 6f00 */ NULL, /* 6f80 */ NULL, /* 7000 */ NULL, /* 7080 */ NULL, /* 7100 */ NULL, /* 7180 */ NULL, /* 7200 */ NULL, /* 7280 */ NULL, /* 7300 */ NULL, /* 7380 */ NULL, /* 7400 */ NULL, /* 7480 */ NULL, /* 7500 */ NULL, /* 7580 */ NULL, /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 7680 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* 7780 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* 7880 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* 7980 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* 7a80 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* 7b80 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* 7c80 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* 7d80 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* 7e80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* 7f80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* 8000 */ NULL, /* 8080 */ NULL, /* 8100 */ NULL, /* 8180 */ NULL, /* 8200 */ NULL, /* 8280 */ NULL, /* 8300 */ NULL, /* 8380 */ NULL, /* 8400 */ NULL, /* 8480 */ NULL, /* 8500 */ NULL, /* 8580 */ NULL, /* 8600 */ NULL, /* 8680 */ NULL, /* 8700 */ NULL, /* 8780 */ NULL, /* 8800 */ NULL, /* 8880 */ NULL, /* 8900 */ NULL, /* 8980 */ NULL, /* 8a00 */ NULL, /* 8a80 */ NULL, /* 8b00 */ NULL, /* 8b80 */ NULL, /* 8c00 */ NULL, /* 8c80 */ NULL, /* 8d00 */ NULL, /* 8d80 */ NULL, /* 8e00 */ NULL, /* 8e80 */ NULL, /* 8f00 */ NULL, /* 8f80 */ NULL, /* 9000 */ NULL, /* 9080 */ NULL, /* 9100 */ NULL, /* 9180 */ NULL, /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ NULL, /* e080 */ NULL, /* e100 */ NULL, /* e180 */ NULL, /* e200 */ NULL, /* e280 */ NULL, /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp937", "0x03a70343" /* 935, 835 */, "big5-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-937_P110-1999 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\xa1\x44\xed\x44\x4b\x00\x00\x00\x00\x44\xee\x00\x00\x43\x79\x46\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x53\x00\x00\x45\x51\x45\x52\x45\x54\x00\x00\x47\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x44\x4a\x44\x4a\x00\x00\x00\x00\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x43\x77\x43\x78\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x43\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x73\x00\x00\x44\x50\x44\xef\x00\x00\x42\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x42\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x46\xbb\x00\x00\x00\x00\x00\x00\x46\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x46\xd4\x46\xd5\x46\xd7\x46\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xef\x46\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6e\x00\x00\x43\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x43\x70\x00\x00\x43\x4e\x43\x71\x00\x00\x00\x00\x00\x00\x43\x4f\x43\x64\x00\x00\x00\x00\x43\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xda\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc5\x00\x00\x00\x00\x43\x61\x44\x4d\x46\xcc\x46\xcb\x00\x00\x00\x00\x42\x4f\x00\x00\x44\x7c\x00\x00\x43\x6c\x43\x6d\x46\xc8\x46\xc9\x46\xd0\x43\x63\x00\x00\x46\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa1\x43\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x46\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x43\x5d\x43\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x43\x68\x43\x69\x00\x00\x00\x00\x43\x66\x43\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xd2\x00\x00\x00\x00\x00\x00\x46\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8d\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x00\x00\x47\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x41\x46\x42\x46\x43\x46\x44\x46\x45\x46\x46\x46\x47\x46\x48\x46\x49\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x46\x52\x46\x53\x46\x54\x46\x55\x46\x56\x46\x57\x46\x58\x46\x59\x46\x5a\x00\x00\x00\x00", /* 2480 */ NULL, /* 2500 */ "\x46\x75\x43\xb7\x46\x76\x43\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x78\x00\x00\x00\x00\x43\xb9\x46\x79\x00\x00\x00\x00\x43\xe1\x46\x7a\x00\x00\x00\x00\x43\xe3\x46\x7b\x00\x00\x00\x00\x43\xe2\x46\x73\x43\xee\x00\x00\x00\x00\x43\xe9\x00\x00\x00\x00\x43\xe4\x46\x72\x43\xf0\x00\x00\x00\x00\x43\xeb\x00\x00\x00\x00\x43\xe6\x46\x71\x00\x00\x00\x00\x43\xea\x43\xef\x00\x00\x00\x00\x43\xe5\x46\x70\x00\x00\x00\x00\x43\xec\x43\xf1\x00\x00\x00\x00\x43\xe7\x46\x6f\x00\x00\x00\x00\x43\xed\x00\x00\x00\x00\x43\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x46\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x82\x00\x00\x00\x00\x46\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x83\x00\x00\x00\x00\x46\x7c\x46\x7d\x46\x7f\x46\x7e\x46\x89\x46\x8a\x46\x8b\x46\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x46\x60\x46\x61\x46\x62\x46\x63\x46\x64\x46\x65\x46\x66\x46\x67\x46\x6e\x46\x6d\x46\x6c\x46\x6b\x46\x6a\x46\x69\x46\x68\x00\x00\x00\x00\x00\x00\x00\x00\x46\x74\x46\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x85\x46\x86\x46\x88\x46\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x76\x00\x00\x00\x00\x43\x75\x00\x00\x43\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x46\xb9\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe9\x46\xea\x00\x00\x00\x00\x45\x41\x45\x42\x45\x43\x45\x44\x45\x45\x45\x46\x45\x47\x45\x48\x45\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x56\x45\x57\x45\x58\x45\x59\x45\x5a\x45\x5b\x45\x5c\x45\x5d\x45\x5e\x45\x5f\x45\x60\x45\x61\x45\x62\x45\x63\x45\x64\x45\x65\x45\x66\x45\x67\x45\x68\x45\x69\x45\x6a\x45\x6b\x45\x6c\x45\x6d\x45\x6e\x45\x6f\x45\x70\x45\x71\x45\x72\x45\x73\x45\x74\x45\x75\x45\x76\x45\x77\x45\x78\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3300 */ NULL, /* 3380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe2\x46\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xdd\x46\xde\x46\xdf\x00\x00\x00\x00\x46\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe0\x00\x00\x00\x00\x46\xcf\x46\xce\x00\x00\x00\x00\x46\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x4c\x41\x4c\x43\x00\x00\x4c\x44\x00\x00\x00\x00\x00\x00\x69\x46\x4c\x57\x4c\x55\x4c\x58\x4c\x56\x69\x47\x4c\x83\x69\x50\x69\x4e\x4c\x82\x4c\x81\x00\x00\x00\x00\x4c\xe1\x4c\xe0\x4c\xdf\x00\x00\x4c\xe2\x4c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa1\x4d\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xe3\x00\x00\x48\x42\x00\x00\x00\x00\x4c\x59\x00\x00\x4c\x84\x69\x51\x00\x00\x4c\x85\x69\x64\x4e\x8c\x6b\x52\x00\x00\x00\x00\x48\x43\x00\x00\x4c\x5a\x4c\x86\x00\x00\x4c\xe3\x69\x65\x00\x00\x00\x00\x48\x44\x00\x00\x00\x00\x69\x41\x4c\x45\x00\x00\x4c\x5c\x00\x00\x69\x48\x4c\x5d\x00\x00\x00\x00\x4c\x87\x00\x00\x4c\xe4\x4c\xe6\x4c\xe5\x00\x00\x00\x00\x4d\xa3\x4d\xa4\x00\x00\x00\x00\x4f\xe4\x00\x00\x53\xfd\x4c\x42\x00\x00\x00\x00\x69\x42\x4c\x46\x4c\x5f\x4c\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x92\x72\x6f", /* 4e80 */ "\x00\x00\x00\x00\x5b\xa9\x79\x77\x79\x78\x48\x46\x4c\x47\x00\x00\x4c\x89\x00\x00\x00\x00\x4f\xe6\x4c\x48\x69\x49\x4c\x60\x00\x00\x00\x00\x4c\x8a\x4c\x8c\x69\x52\x4c\x8d\x4c\x8b\x00\x00\x00\x00\x00\x00\x4d\xa6\x00\x00\x4f\xe7\x00\x00\x00\x00\x4f\xe8\x51\xe6\x48\x48\x4c\x61\x4c\x8e\x00\x00\x4d\xa7\x4d\xa9\x4d\xa8\x00\x00\x4e\x8d\x00\x00\x00\x00\x4f\xe9\x4f\xea\x51\xe7\x51\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x54\x41\x00\x00\x00\x00\x79\x79\x00\x00\x00\x00\x8f\x66\x4c\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x90\x4c\x8f\x69\x53\x4c\x91\x4c\x97\x00\x00\x4c\x92\x4c\x93\x69\x55\x69\x54\x4c\x95\x4c\x96\x00\x00\x4c\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe9\x4c\xea\x4c\xeb\x4c\xec\x4c\xe8\x4c\xef\x69\x6b\x00\x00\x69\x67\x69\x6a\x4c\xf0\x4d\x43\x00\x00\x69\x69\x00\x00\x4c\xed\x4c\xee\x4c\xe7\x00\x00\x00\x00\x69\x66\x69\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb6\x69\x90\x4d\xb3\x4d\xb7\x69\x9a\x69\x8e\x4d\xb4\x69\x92\x00\x00\x00\x00\x00\x00\x4d\xb5\x00\x00\x4d\xb8\x00\x00\x4d\xaa", /* 4f00 */ "\x69\x91\x4d\xb9\x69\x95\x00\x00\x69\x99\x69\x96\x00\x00\x00\x00\x69\x93\x4d\xab\x4d\xad\x4d\xba\x00\x00\x4d\xaf\x69\x8b\x4d\xb2\x4d\xb0\x4d\xb1\x69\x9b\x69\x98\x69\x8f\x4d\xae\x00\x00\x00\x00\x69\x8c\x4d\xac\x00\x00\x00\x00\x00\x00\x69\x94\x00\x00\x00\x00\x00\x00\x00\x00\x69\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x8d\x6a\x48\x00\x00\x4e\xa3\x4e\x96\x00\x00\x00\x00\x6a\x49\x4e\x93\x00\x00\x4e\xa5\x00\x00\x4e\x9b\x00\x00\x4e\x9a\x69\xfa\x4e\x9e\x4e\x99\x6a\x42\x6a\x4a\x00\x00\x6a\x46\x00\x00\x4e\x9c\x00\x00\x00\x00\x4e\x9f\x4e\x90\x4e\xa8\x69\xfc\x00\x00\x00\x00\x6b\x5e\x4e\x8e\x4e\xa4\x4e\x8f\x4e\x97\x4e\x98\x6a\x44\x69\xfd\x4e\x9d\x4e\x95\x69\xf9\x4e\x91\x6a\x47\x4e\xa6\x4e\xa9\x4e\x94\x4e\xa1\x4e\xa7\x4e\x92\x6a\x45\x4e\xa2\x6a\x4b\x69\xfb\x4e\xa0\x6a\x41\x00\x00\x00\x00\x6a\x43\x00\x00\x4f\xf8\x6b\x60\x6b\x6c\x4f\xf0\x00\x00\x6b\x6d\x4f\xeb\x4f\xf5\x00\x00\x00\x00\x4f\xee\x6b\x5a\x4f\xf6\x6b\x59\x6b\x5d\x6b\x64\x6b\x62\x50\x41\x4f\xf9\x6b\x54\x6b\x56\x4f\xfb\x4f\xef", /* 4f80 */ "\x6b\x57\x6b\x63\x6b\x6a\x4f\xf4\x6b\x5c\x6b\x55\x4f\xf3\x6b\x58\x4f\xf7\x6b\x5b\x00\x00\x4f\xf2\x00\x00\x4f\xed\x00\x00\x4f\xfc\x6b\x65\x4f\xfd\x6b\x69\x00\x00\x6b\x67\x6b\x6b\x4f\xfa\x6b\x5f\x6b\x53\x00\x00\x6b\x61\x4f\xf1\x6b\x66\x4f\xec\x6b\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf7\x51\xeb\x00\x00\x00\x00\x6d\x43\x6d\x4b\x00\x00\x51\xea\x51\xf2\x52\x41\x00\x00\x6d\x51\x6d\x4f\x6d\x4a\x00\x00\x00\x00\x00\x00\x51\xec\x6d\x50\x6d\x46\x51\xfa\x51\xf1\x51\xf9\x6d\x41\x00\x00\x6d\x4d\x00\x00\x6d\x44\x51\xf5\x6d\x45\x00\x00\x6c\xfd\x51\xfc\x51\xef\x51\xf8\x51\xee\x00\x00\x6d\x42\x6d\x47\x00\x00\x6d\x4e\x51\xf6\x51\xf3\x6d\x49\x51\xfb\x6d\x4c\x6d\x48\x51\xf0\x51\xfd\x51\xf4\x51\xed\x51\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x52\x00\x00\x54\x5b\x54\x45\x00\x00\x54\x55\x00\x00\x54\x5a\x6f\x93\x6f\x92\x6f\x97\x6f\x98\x54\x48\x00\x00\x54\x51\x00\x00\x00\x00\x00\x00\x54\x5e\x00\x00", /* 5000 */ "\x54\x52\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x8c\x54\x4b\x6f\x8d\x00\x00\x54\x60\x00\x00\x54\x57\x54\x42\x54\x43\x6f\xa0\x56\xa3\x00\x00\x54\x50\x54\x4f\x6f\x8e\x54\x53\x72\x7f\x54\x4a\x6f\x99\x54\x59\x54\x58\x54\x4e\x6f\x91\x6f\x9a\x00\x00\x6f\x8b\x54\x4d\x6f\x9b\x54\x56\x6f\x8f\x54\x44\x00\x00\x54\x47\x54\x46\x6f\x9c\x54\x54\x54\x49\x54\x5d\x54\x5f\x6f\x96\x54\x5c\x00\x00\x6f\x9e\x6f\x90\x6f\x9f\x00\x00\x6f\x94\x00\x00\x6f\x9d\x00\x00\x6f\x95\x00\x00\x00\x00\x00\x00\x00\x00\x54\x4c\x00\x00\x00\x00\x00\x00\x72\x88\x72\x7b\x00\x00\x56\x97\x00\x00\x72\x81\x72\x87\x56\x96\x72\x79\x56\x9a\x72\x7d\x72\x76\x56\x98\x72\x7a\x56\x9d\x56\xa2\x00\x00\x72\x8c\x00\x00\x72\x75\x00\x00\x56\x9e\x00\x00\x72\x8b\x00\x00\x00\x00\x56\x99\x72\x7c\x56\x95\x72\x77\x72\x73\x72\x82\x72\x74\x72\x72\x72\x7e\x72\x85\x72\x86\x56\x9b\x00\x00\x00\x00\x75\xc0\x72\x83\x72\x71\x72\x84\x00\x00\x56\xa5\x72\x89\x56\xa4\x72\x70\x00\x00\x72\x78\x72\x8a\x56\xa0\x56\x9f\x56\x9c\x56\xa1\x00\x00\x00\x00\x56\x93\x00\x00\x00\x00\x56\x94\x00\x00\x00\x00", /* 5080 */ "\x59\x4e\x00\x00\x75\xc3\x75\xbc\x00\x00\x59\x4b\x00\x00\x75\xc4\x00\x00\x00\x00\x00\x00\x75\xba\x75\xbd\x59\x4a\x75\xbe\x00\x00\x00\x00\x59\x4d\x75\xc2\x00\x00\x75\xb8\x75\xb7\x59\x4f\x00\x00\x59\x50\x59\x4c\x59\x51\x75\xb6\x75\xc1\x75\xbf\x75\xb9\x00\x00\x00\x00\x00\x00\x59\x49\x75\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb0\x5b\xaa\x79\x7d\x5b\xb3\x79\x84\x79\x87\x5b\xac\x5b\xad\x79\x81\x5b\xab\x79\x8a\x5b\xb1\x79\x8b\x00\x00\x79\x86\x5b\xb2\x00\x00\x79\x7a\x5b\xaf\x79\x7b\x00\x00\x79\x85\x79\x83\x00\x00\x79\x7e\x5b\xae\x79\x7c\x5b\xb4\x79\x82\x79\x89\x79\x7f\x79\x88\x00\x00\x00\x00\x5d\xfb\x5d\xf8\x00\x00\x5d\xf9\x00\x00\x7d\x43\x7c\xf8\x5d\xf7\x5d\xf4\x7c\xf9\x00\x00\x00\x00\x5d\xf6\x7c\xfc\x00\x00\x7d\x41\x00\x00\x00\x00\x7d\x48\x00\x00\x00\x00\x7d\x47\x7d\x42\x5d\xf3\x7c\xf7\x5d\xf1\x7c\xfa\x5d\xfc\x7c\xfd\x00\x00\x7d\x44\x5d\xf5\x5d\xf2\x7d\x46\x7d\x45\x5d\xfa\x00\x00\x7c\xfb\x00\x00\x60\x42\x80\x76\x00\x00\x80\x73\x60\x43\x00\x00\x60\x41\x00\x00\x80\x7a\x80\x77\x80\x70", /* 5100 */ "\x5f\xfd\x00\x00\x60\x44\x80\x71\x5f\xfc\x60\x47\x80\x74\x80\x75\x60\x45\x60\x46\x80\x7b\x80\x78\x80\x79\x00\x00\x00\x00\x00\x00\x62\x53\x83\xc3\x62\x50\x83\xc0\x62\x52\x62\x54\x00\x00\x83\xc1\x62\x51\x00\x00\x83\xc2\x00\x00\x83\xbf\x00\x00\x00\x00\x63\xc0\x86\xc8\x63\xc1\x86\xc6\x00\x00\x86\xc7\x86\xc5\x86\xc4\x00\x00\x00\x00\x86\xc9\x63\xbf\x00\x00\x00\x00\x89\x65\x89\x66\x00\x00\x80\x72\x89\x64\x63\xc2\x66\x4b\x8b\x5a\x8b\x5b\x00\x00\x67\x83\x67\x84\x8e\x70\x8e\x6f\x67\xd7\x67\xd6\x90\x41\x00\x00\x4c\x4a\x4c\x62\x4c\x99\x00\x00\x4c\x98\x4c\xf2\x4c\xf1\x4d\xbd\x4d\xbc\x4d\xbe\x4d\xbb\x00\x00\x4e\xab\x4e\xaa\x4e\xac\x00\x00\x00\x00\x00\x00\x00\x00\x50\x43\x00\x00\x50\x42\x50\x44\x00\x00\x52\x42\x00\x00\x46\xf1\x6f\xa1\x46\xf2\x56\xa6\x46\xf4\x46\xf3\x75\xc5\x00\x00\x46\xf5\x5d\xfd\x46\xf6\x00\x00\x4c\x4b\x00\x00\x4c\x9a\x4d\xbf\x50\x45\x00\x00\x4c\x4c\x4c\x9d\x4c\x9b\x4c\x9c\x00\x00\x00\x00\x4d\xc0\x00\x00\x00\x00\x00\x00\x4e\xad\x50\x47\x50\x46\x50\x48\x00\x00\x00\x00\x00\x00\x54\x61\x00\x00\x00\x00\x00\x00", /* 5180 */ "\x62\x55\x00\x00\x48\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4f\x00\x00\x4c\xf3\x4c\xf4\x00\x00\x00\x00\x4d\xc1\x00\x00\x6a\x4c\x00\x00\x52\x44\x52\x43\x6f\xa3\x6f\xa2\x56\xa7\x48\x4e\x4c\x9e\x69\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x6e\x00\x00\x52\x45\x00\x00\x54\x64\x00\x00\x54\x62\x54\x63\x00\x00\x00\x00\x00\x00\x00\x00\x62\x56\x48\x4f\x4c\xf5\x00\x00\x00\x00\x00\x00\x4d\xc2\x69\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xae\x4e\xaf\x00\x00\x6a\x4d\x00\x00\x00\x00\x6b\x6f\x50\x49\x6b\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xa5\x6f\xa6\x54\x67\x00\x00\x6f\xa7\x00\x00\x6f\xa4\x54\x68\x54\x66\x54\x65\x6f\xa8\x00\x00\x72\x8d\x00\x00\x00\x00\x00\x00\x75\xc6\x00\x00\x00\x00\x79\x8c\x7d\x49\x00\x00\x00\x00\x00\x00\x60\x48\x62\x57\x83\xc4\x00\x00\x4c\x4d\x4c\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xa8\x59\x53\x00\x00\x5e\x41\x00\x00\x69\x43\x4c\x9f\x00\x00\x4c\xf8\x4c\xf6\x4c\xf7\x00\x00\x00\x00\x50\x4a\x00\x00\x00\x00", /* 5200 */ "\x4c\x4e\x4c\x4f\x00\x00\x4c\x63\x00\x00\x00\x00\x4c\xa0\x4c\xa1\x4c\xa2\x69\x9e\x4c\xf9\x00\x00\x69\x6c\x00\x00\x4d\xc6\x00\x00\x69\x9f\x4d\xc4\x4d\xc5\x69\x9d\x00\x00\x00\x00\x4d\xc7\x4d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x4e\x51\xce\x6a\x4f\x00\x00\x00\x00\x6a\x50\x00\x00\x00\x00\x4e\xb1\x4e\xb0\x00\x00\x00\x00\x4e\xb4\x4e\xb2\x4e\xb3\x00\x00\x00\x00\x00\x00\x50\x50\x00\x00\x50\x4f\x6b\x75\x6b\x72\x6b\x73\x00\x00\x6b\x71\x50\x51\x50\x4d\x50\x4c\x00\x00\x50\x4e\x50\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x52\x00\x00\x52\x47\x6d\x53\x00\x00\x6b\x74\x52\x4c\x00\x00\x6d\x54\x52\x48\x52\x4b\x52\x4a\x52\x49\x52\x46\x00\x00\x00\x00\x00\x00\x6f\xab\x00\x00\x54\x6b\x6f\xae\x54\x69\x00\x00\x00\x00\x00\x00\x6f\xaa\x54\x6c\x54\x6a\x54\x6d\x6f\xac\x6f\xad\x00\x00\x6f\xa9\x6f\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x57\x56\xa9\x72\x8e\x72\x90\x72\x8f\x72\x91\x56\xaa\x00\x00\x00\x00\x59\x54\x00\x00\x59\x55\x59\x56\x00\x00\x5b\xb6\x79\x8e\x00\x00\x79\x8d\x79\x8f\x79\x90\x5b\xb7\x00\x00\x5b\xb5", /* 5280 */ "\x7d\x4a\x7d\x4b\x5e\x43\x5e\x42\x7e\xe2\x00\x00\x00\x00\x60\x49\x60\x4a\x60\x4b\x60\x4d\x80\x7c\x80\x7d\x60\x4c\x00\x00\x00\x00\x00\x00\x62\x58\x00\x00\x62\x59\x00\x00\x00\x00\x8b\x5c\x8e\x72\x8e\x71\x90\x42\x00\x00\x4c\x50\x00\x00\x00\x00\x00\x00\x4c\xfb\x4c\xfa\x00\x00\x00\x00\x4d\xc8\x00\x00\x00\x00\x69\xa0\x00\x00\x00\x00\x4e\xb6\x4e\xb7\x4e\xb5\x4e\xb8\x6a\x51\x6a\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x54\x6b\x76\x00\x00\x50\x53\x00\x00\x6d\x55\x52\x50\x6d\x56\x52\x4f\x00\x00\x00\x00\x00\x00\x52\x4d\x00\x00\x52\x4e\x00\x00\x00\x00\x00\x00\x6f\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x56\xab\x72\x93\x00\x00\x56\xae\x72\x92\x57\xaa\x56\xad\x56\xac\x00\x00\x59\x5a\x00\x00\x59\x59\x59\x58\x5b\xb8\x00\x00\x00\x00\x5b\xbb\x5b\xbc\x5b\xba\x00\x00\x5b\xb9\x00\x00\x00\x00\x7d\x4c\x00\x00\x7d\x4d\x00\x00\x00\x00\x00\x00\x80\x7f\x60\x4e\x80\x7e\x00\x00\x62\x5a\x86\xca\x63\xc3\x00\x00\x8b\x5d\x66\xdf\x48\x54\x4c\x64\x4c\xa3\x69\x57\x00\x00\x4c\xa4\x4c\xa5", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xfc\x4c\xfd\x00\x00\x4d\xc9\x6a\x53\x6b\x77\x6b\x78\x00\x00\x52\x51\x6f\xb1\x56\xb0\x56\xaf\x75\xc8\x75\xc7\x00\x00\x00\x00\x4c\x51\x4c\xa6\x4d\x41\x00\x00\x56\xb1\x69\x44\x00\x00\x69\x6d\x4d\x42\x00\x00\x69\xa2\x4d\xcb\x4d\xca\x69\xa1\x4e\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6e\x00\x00\x00\x00\x72\x94\x00\x00\x5b\xbd\x7d\x4e\x5e\x44\x00\x00\x00\x00\x83\xc5\x00\x00\x00\x00\x8c\xeb\x48\x57\x4c\xa7\x00\x00\x00\x00\x6b\x79\x6d\x57\x56\xb4\x56\xb2\x56\xb3\x4c\x52\x00\x00\x4c\x65\x45\x4b\x4c\xaa\x00\x00\x4c\xa9\x4c\xa8\x4d\x45\x4d\x44\x00\x00\x69\x6e\x69\xa3\x00\x00\x00\x00\x00\x00\x50\x58\x50\x55\x50\x57\x50\x56\x00\x00\x00\x00\x52\x52\x00\x00\x00\x00\x59\x5b\x00\x00\x4c\x53\x00\x00\x4c\xab\x00\x00\x4d\x47\x4d\x46\x00\x00\x6a\x54\x00\x00\x00\x00\x50\x59\x00\x00\x00\x00\x48\x5a\x00\x00\x00\x00\x69\x58\x00\x00\x4d\x49\x4d\x48\x4d\xcc\x4d\xcd\x6a\x55\x4e\xba\x00\x00\x4e\xbb\x00\x00\x50\x5a\x50\x5b\x50\x5c\x00\x00\x52\x53\x6d\x58\x00\x00\x00\x00\x54\x6f", /* 5380 */ "\x00\x00\x00\x00\x69\x45\x00\x00\x4c\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xa4\x00\x00\x00\x00\x00\x00\x6a\x56\x6a\x57\x00\x00\x00\x00\x6b\x7a\x00\x00\x6b\x7b\x00\x00\x6d\x5a\x6d\x59\x6d\x5c\x6d\x5b\x52\x54\x00\x00\x72\x95\x54\x71\x6f\xb2\x54\x70\x00\x00\x00\x00\x00\x00\x00\x00\x75\xc9\x59\x5c\x00\x00\x75\xca\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x4f\x5e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4f\x00\x00\x8b\x5e\x00\x00\x48\x5c\x00\x00\x00\x00\x69\x59\x00\x00\x4d\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x54\x4c\x66\x4c\xae\x4c\xad\x00\x00\x4c\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x50\x5d\x50\x5f\x00\x00\x00\x00\x00\x00\x52\x55\x00\x00\x00\x00\x00\x00\x54\x72\x00\x00\x83\xc6\x65\x5a\x4c\x67\x4d\x4c\x4d\x5b\x4d\x56\x00\x00\x4d\x51\x4d\x50\x4d\x57\x4d\x55\x4d\x4e\x4d\x5c\x4d\x4f\x4d\x4b\x4d\x5a\x4d\x59\x4d\x58\x4d\x4d\x00\x00\x4d\x54\x00\x00\x00\x00\x4d\x53\x00\x00\x00\x00\x4d\x5d\x4d\x52\x00\x00\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x4d\xd3\x00\x00\x4d\xd9\x4d\xd5\x00\x00\x4d\xdb\x69\xa5\x4d\xd8\x4d\xce\x4d\xd1\x4d\xd4\x4d\xd0\x4d\xd7\x4d\xda\x4d\xcf\x4d\xd2\x4d\xd6\x4d\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x60\x6a\x5d\x00\x00\x4e\xc8\x6a\x5e\x4e\xbc\x4e\xbe\x4e\xd6\x4e\xd1\x00\x00\x00\x00\x00\x00\x6a\x65\x6a\x5f\x4e\xc0\x4e\xc2\x6a\x64\x4e\xc9\x6a\x5a\x4e\xd5\x4e\xd7\x4e\xbd\x4e\xce\x00\x00\x6a\x58\x4e\xd4\x00\x00\x4e\xc5\x00\x00\x4e\xcf\x4e\xd0\x6a\x59\x4e\xcd\x4e\xcb\x00\x00\x4e\xcc\x4e\xd2\x6a\x61\x4e\xbf\x00\x00\x4e\xd3\x6a\x63\x4e\xc7\x4e\xc4\x00\x00\x6a\x5c\x4e\xc3\x6a\x66\x4e\xc6\x00\x00\x4e\xca\x00\x00\x00\x00\x00\x00\x4e\xc1\x6a\x62\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x8d\x6b\x8c\x50\x71\x6b\x8f\x6b\x91\x6b\x86\x6b\x89\x6b\x90\x50\x72\x00\x00\x00\x00\x6b\x83\x6b\x87\x00\x00\x00\x00\x6b\x8b\x6d\x6b\x50\x6d\x6d\x6f\x50\x60\x6b\x88\x50\x61\x50\x6e\x50\x67\x50\x63\x00\x00\x6b\x84\x50\x66\x50\x6b\x50\x74\x6b\x85\x6b\x7d", /* 5480 */ "\x50\x65\x6b\x7e\x6b\x81\x00\x00\x50\x68\x00\x00\x50\x6a\x6b\x7c\x6b\x82\x00\x00\x00\x00\x50\x73\x50\x6f\x6b\x8a\x50\x75\x00\x00\x50\x6c\x6b\x7f\x50\x69\x00\x00\x00\x00\x50\x64\x50\x62\x00\x00\x6b\x8e\x00\x00\x50\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x6a\x6d\x5e\x6d\x6d\x00\x00\x00\x00\x6d\x60\x52\x5c\x52\x6a\x52\x58\x52\x69\x52\x61\x52\x66\x52\x56\x6d\x5f\x6d\x65\x52\x65\x6d\x71\x52\x67\x00\x00\x52\x5d\x00\x00\x00\x00\x6d\x67\x6d\x64\x52\x5b\x00\x00\x6d\x5d\x52\x68\x6d\x6c\x52\x60\x6d\x6e\x52\x6b\x52\x57\x52\x62\x52\x5f\x6d\x62\x52\x63\x6d\x68\x6d\x69\x52\x5e\x52\x64\x52\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x52\x59\x6d\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x70\x00\x00\x6f\xc6\x54\x7f\x6f\xb4\x00\x00\x6f\xb9\x54\x78\x54\x84\x6f\xb7\x54\x73\x54\x7d\x54\x83\x6f\xbe\x00\x00\x54\x7e\x54\x82\x00\x00\x00\x00\x6f\xc1\x54\x79\x6f\xb8\x00\x00\x00\x00\x00\x00\x6f\xc4\x6f\xc5\x00\x00\x54\x7b\x6f\xc3\x54\x77\x54\x87\x00\x00\x6f\xbb", /* 5500 */ "\x00\x00\x54\x75\x00\x00\x6f\xc8\x6f\xbc\x6f\xc0\x54\x7a\x54\x86\x6f\xbd\x54\x81\x6f\xc2\x6f\xc9\x72\xa4\x00\x00\x6f\xc7\x54\x88\x54\x74\x6f\xbf\x6f\xb6\x00\x00\x54\x7c\x00\x00\x00\x00\x6f\xb5\x00\x00\x00\x00\x6f\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xb3\x54\x85\x00\x00\x00\x00\x72\x9c\x00\x00\x56\xc8\x72\xaa\x56\xc6\x56\xc3\x72\xa1\x56\xbf\x72\xa5\x56\xca\x72\x9b\x72\xa0\x72\x9f\x54\x76\x56\xc5\x72\xa8\x00\x00\x72\xab\x72\x98\x00\x00\x59\x6e\x00\x00\x72\xac\x56\xcb\x00\x00\x56\xbd\x56\xba\x72\xa3\x56\xb7\x00\x00\x72\xa9\x00\x00\x56\xbe\x72\xad\x00\x00\x72\x99\x72\xa7\x56\xc1\x72\x9a\x72\x9d\x72\xa2\x00\x00\x00\x00\x56\xc2\x56\xc0\x56\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc7\x00\x00\x56\xbb\x57\x97\x00\x00\x56\xbc\x72\x9e\x56\xc9\x56\xc4\x72\xa6\x56\xb9\x00\x00\x00\x00\x00\x00\x56\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x96\x72\x97\x75\xcf\x00\x00\x00\x00\x00\x00\x59\x5d\x59\x60\x75\xda\x59\x74\x75\xdd", /* 5580 */ "\x59\x5e\x75\xd6\x59\x64\x59\x6a\x5a\xc2\x00\x00\x00\x00\x59\x68\x75\xd3\x59\x75\x59\x61\x59\x69\x75\xdb\x79\x9e\x75\xe0\x75\xd4\x00\x00\x75\xcb\x75\xd8\x75\xd2\x59\x67\x75\xde\x00\x00\x00\x00\x59\x63\x59\x77\x59\x70\x00\x00\x59\x65\x59\x62\x00\x00\x59\x6d\x00\x00\x75\xdf\x75\xd1\x75\xd7\x75\xd9\x75\xcd\x75\xdc\x59\x5f\x75\xcc\x00\x00\x59\x66\x59\x76\x59\x72\x75\xce\x59\x6c\x00\x00\x00\x00\x59\x73\x59\x6f\x59\x6b\x00\x00\x75\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x71\x00\x00\x00\x00\x00\x00\x79\x9c\x79\x98\x00\x00\x79\xa7\x79\x91\x79\x9a\x5b\xcb\x5b\xcc\x5b\xc4\x79\xa3\x5b\xce\x79\x96\x79\x95\x79\x93\x79\xa5\x5b\xc2\x79\x9f\x79\x94\x5b\xc5\x79\x9d\x5b\xc0\x79\x99\x79\xa0\x79\xa2\x00\x00\x00\x00\x79\xa6\x5b\xc9\x79\x92\x5b\xc3\x79\x97\x00\x00\x5b\xbe\x00\x00\x5b\xca\x79\xa1\x5b\xc6\x5b\xc7\x5b\xcd\x5b\xc1\x46\xf7\x5b\xbf\x79\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc8\x00\x00\x00\x00\x79\xa4\x00\x00\x00\x00\x00\x00\x5e\x55\x5e\x50\x00\x00\x7d\x5e\x7d\x5a\x00\x00\x7d\x54\x5e\x4a\x5e\x46\x7d\x5d", /* 5600 */ "\x5e\x47\x7d\x57\x7d\x59\x00\x00\x7d\x5c\x00\x00\x5e\x4c\x00\x00\x5e\x53\x5e\x4d\x00\x00\x00\x00\x7d\x52\x5e\x4e\x5e\x4f\x7d\x55\x5e\x54\x00\x00\x7d\x53\x7d\x58\x5e\x4b\x7d\x51\x5e\x51\x5e\x49\x00\x00\x00\x00\x00\x00\x5e\x48\x7d\x56\x7d\x5b\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x50\x00\x00\x60\x56\x80\x91\x00\x00\x80\x8e\x00\x00\x60\x50\x60\x5c\x60\x5d\x00\x00\x60\x53\x80\x8c\x60\x55\x80\x84\x60\x5b\x00\x00\x80\x90\x60\x52\x80\x92\x60\x51\x00\x00\x80\x8d\x80\x8f\x60\x54\x80\x8b\x80\x85\x80\x82\x00\x00\x00\x00\x75\xd0\x80\x88\x00\x00\x80\x81\x80\x87\x80\x86\x00\x00\x80\x83\x00\x00\x60\x58\x00\x00\x00\x00\x00\x00\x00\x00\x60\x57\x00\x00\x00\x00\x00\x00\x60\x59\x80\x89\x62\x5b\x80\x8a\x00\x00\x00\x00\x00\x00\x83\xcf\x00\x00\x83\xc8\x00\x00\x62\x67\x83\xcc\x62\x5f\x62\x63\x83\xcb\x00\x00\x62\x62\x62\x5e\x62\x61\x62\x5c\x62\x66\x83\xcd\x83\xc9\x62\x65\x83\xc7\x62\x64\x83\xce\x83\xca\x60\x5a\x00\x00\x62\x68\x83\xd0\x62\x60\x62\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x86\xd1\x86\xd3", /* 5680 */ "\x63\xc5\x86\xd4\x86\xd2\x86\xd0\x86\xcf\x63\xc7\x86\xce\x63\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x86\xcc\x86\xcd\x63\xc4\x63\xc9\x63\xc6\x00\x00\x00\x00\x86\xcb\x00\x00\x65\x5b\x00\x00\x89\x69\x89\x67\x89\x6c\x89\x6a\x00\x00\x89\x68\x89\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4c\x8b\x61\x8b\x62\x66\xe0\x00\x00\x8b\x63\x8b\x5f\x8b\x64\x8b\x60\x65\x5c\x00\x00\x00\x00\x00\x00\x8c\xec\x8c\xee\x66\xe3\x8c\xed\x66\xe2\x66\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe4\x8e\x74\x8e\x75\x00\x00\x67\x86\x67\x85\x67\x87\x8e\x73\x00\x00\x8f\x68\x8f\x67\x00\x00\x67\xd8\x67\xda\x67\xd9\x8f\x69\x68\x54\x90\xb5\x00\x00\x00\x00\x00\x00\x68\x7d\x00\x00\x90\xb4\x90\xfd\x00\x00\x00\x00\x69\x4a\x00\x00\x00\x00\x4d\x5f\x4d\x5e\x00\x00\x4d\xdf\x4d\xde\x69\xa7\x4d\xdd\x69\xa6\x00\x00\x00\x00\x4e\xda\x6a\x69\x00\x00\x6a\x68\x00\x00\x00\x00\x4e\xd8\x4e\xdb\x00\x00\x00\x00\x6a\x67\x00\x00\x4e\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x92\x00\x00\x6b\x93\x50\x76\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6c", /* 5700 */ "\x00\x00\x6f\xca\x6f\xcb\x54\x89\x54\x8a\x00\x00\x00\x00\x72\xaf\x56\xcd\x56\xcf\x72\xae\x56\xce\x75\xe1\x59\x78\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcf\x5b\xd0\x79\xa8\x00\x00\x5e\x57\x00\x00\x5e\x56\x00\x00\x80\x93\x83\xd2\x83\xd1\x00\x00\x91\x7c\x4c\x68\x69\x5a\x00\x00\x69\x6f\x69\x70\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe2\x4d\xe6\x69\xa9\x00\x00\x4d\xe4\x4d\xe3\x69\xa8\x4d\xe5\x4d\xe1\x00\x00\x00\x00\x4d\xe0\x69\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xe5\x00\x00\x00\x00\x4e\xe2\x00\x00\x4e\xde\x6a\x6a\x00\x00\x00\x00\x00\x00\x6a\x6b\x00\x00\x4e\xe0\x00\x00\x6a\x6d\x4e\xdc\x6a\x6e\x6a\x6c\x4e\xdf\x4e\xe1\x4e\xe4\x4e\xe3\x4e\xdd\x6a\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x7b\x6b\xa0\x00\x00\x50\x7d\x00\x00\x50\x7c\x00\x00\x6b\xa1\x50\x7a\x50\x79\x6b\x97\x00\x00\x6b\x96\x00\x00\x6b\x94\x6b\x99\x6b\x98\x6b\x95\x6b\x9e\x6b\x9f\x6b\x9c\x6b\x9a\x50\x78\x00\x00\x00\x00\x00\x00\x6b\x9d\x50\x7e\x6b\xa2\x00\x00\x00\x00", /* 5780 */ "\x6b\x9b\x00\x00\x52\x6d\x50\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6e\x6d\x76\x00\x00\x00\x00\x6d\x7c\x00\x00\x00\x00\x00\x00\x52\x74\x6d\x7a\x6d\x81\x00\x00\x6d\x77\x6d\x7b\x6d\x7d\x6d\x7f\x6d\x79\x00\x00\x6d\x78\x6d\x73\x6d\x74\x52\x6f\x00\x00\x52\x71\x52\x70\x6d\x75\x6d\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x72\x6f\xd5\x00\x00\x6f\xd4\x6f\xd9\x6f\xd0\x00\x00\x6f\xd3\x6f\xd2\x00\x00\x6f\xd6\x00\x00\x6f\xda\x54\x8b\x54\x8e\x00\x00\x00\x00\x6f\xd1\x6f\xd7\x00\x00\x00\x00\x00\x00\x54\x8d\x6f\xcc\x00\x00\x52\x72\x72\xbd\x6f\xd8\x00\x00\x6f\xcf\x00\x00\x54\x8c\x6f\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\xb4\x00\x00\x00\x00\x56\xd0\x56\xd4\x72\xc4\x72\xb2\x72\xc0\x56\xd5\x72\xc2\x00\x00\x72\xc8\x00\x00\x72\xcc\x00\x00\x00\x00\x72\xc3\x72\xb7\x72\xbf\x00\x00\x72\xcd\x72\xcb\x72\xc1\x72\xbc\x72\xb5\x75\xe9\x72\xb3\x56\xd9\x72\xba\x56\xda\x56\xd6\x72\xb0\x72\xc6\x72\xb8\x00\x00\x00\x00", /* 5800 */ "\x72\xb6\x72\xc9\x56\xd7\x00\x00\x72\xcf\x56\xd1\x56\xd3\x72\xbe\x72\xb9\x54\x8f\x56\xd2\x72\xbb\x72\xca\x72\xce\x72\xc5\x00\x00\x72\xc7\x00\x00\x00\x00\x00\x00\x72\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe4\x00\x00\x75\xed\x75\xec\x59\x81\x75\xe5\x00\x00\x59\x82\x59\x7f\x00\x00\x75\xe7\x59\x7c\x75\xeb\x00\x00\x75\xe6\x75\xe8\x75\xe2\x59\x7a\x00\x00\x75\xf5\x75\xf4\x75\xf1\x59\x79\x59\x7d\x59\x7e\x6f\xcd\x75\xee\x59\x7b\x56\xd8\x75\xf0\x75\xe3\x75\xf3\x75\xf2\x00\x00\x75\xf6\x00\x00\x79\xb6\x00\x00\x75\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xea\x79\xae\x5b\xda\x5b\xdd\x5b\xd8\x79\xad\x79\xb1\x79\xac\x00\x00\x5b\xd2\x5b\xdc\x79\xa9\x5b\xd6\x79\xb0\x00\x00\x5b\xd4\x5b\xd3\x79\xb3\x5b\xd5\x79\xb5\x00\x00\x79\xb2\x5b\xd1\x00\x00\x00\x00\x00\x00\x5b\xdb\x79\xb7\x79\xab\x79\xb4\x00\x00\x00\x00\x79\xaa\x00\x00\x00\x00\x5b\xd7\x00\x00\x5b\xd9\x00\x00\x79\xaf\x00\x00\x79\xb8\x00\x00\x00\x00\x7d\x66\x5e\x58\x7d\x6c\x00\x00\x00\x00\x5e\x5d\x7d\x68\x7d\x6f\x7d\x60\x5e\x5f\x5e\x59\x7d\x65", /* 5880 */ "\x60\x5e\x7d\x64\x7d\x6d\x5e\x5a\x00\x00\x5e\x5e\x7d\x63\x7d\x69\x7d\x6e\x7d\x5f\x5e\x5c\x7d\x67\x00\x00\x00\x00\x7d\x6b\x7d\x71\x7d\x61\x7d\x6a\x00\x00\x5e\x5b\x7d\x70\x00\x00\x00\x00\x00\x00\x7d\x62\x00\x00\x00\x00\x00\x00\x60\x62\x80\x95\x60\x60\x60\x5f\x80\x97\x80\x9c\x00\x00\x80\x98\x00\x00\x80\x9b\x60\x65\x00\x00\x62\x4e\x60\x64\x00\x00\x80\x94\x80\x9a\x00\x00\x60\x63\x80\x99\x00\x00\x80\x96\x00\x00\x60\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\xd7\x00\x00\x83\xd9\x83\xd4\x62\x6a\x83\xd6\x00\x00\x62\x69\x83\xd8\x00\x00\x00\x00\x62\x6c\x83\xda\x62\x6b\x83\xd3\x83\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcd\x86\xd7\x00\x00\x63\xcc\x86\xd8\x63\xcb\x86\xd6\x63\xca\x86\xd5\x00\x00\x65\x5e\x65\x5d\x8b\x65\x8b\x67\x00\x00\x8b\x66\x66\x4d\x66\x4e\x00\x00\x00\x00\x66\x4f\x8c\xef\x66\xe5\x00\x00\x00\x00\x90\x44\x90\x43\x68\x7e\x00\x00\x4c\x69\x4c\xb0\x00\x00\x00\x00\x4e\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x82\x00\x00\x00\x00\x00\x00\x00\x00\x59\x83\x59\x84\x00\x00\x79\xb9\x5e\x60\x7d\x72\x80\x9d", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x69\x5b\x00\x00\x00\x00\x6a\x70\x00\x00\x00\x00\x00\x00\x48\x62\x00\x00\x6b\xa3\x6d\x83\x6f\xdb\x54\x90\x00\x00\x00\x00\x8b\x68\x00\x00\x67\x88\x4c\x6a\x4d\x60\x69\x71\x00\x00\x4d\xe7\x4d\xe8\x00\x00\x50\x7f\x00\x00\x00\x00\x00\x00\x56\xdb\x00\x00\x5e\x62\x00\x00\x5e\x63\x5e\x61\x00\x00\x4c\x6b\x00\x00\x4c\xb1\x4c\xb3\x4c\xb2\x69\x5c\x4c\xb4\x4d\x61\x69\x72\x00\x00\x4d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe9\x4d\xea\x00\x00\x00\x00\x00\x00\x69\xab\x00\x00\x4e\xe7\x00\x00\x6a\x71\x00\x00\x00\x00\x00\x00\x50\x84\x6b\xa4\x00\x00\x50\x82\x50\x83\x50\x81\x6f\xdc\x00\x00\x00\x00\x00\x00\x52\x78\x52\x77\x52\x79\x52\x76\x00\x00\x6d\x84\x50\x85\x52\x75\x00\x00\x54\x91\x54\x92\x00\x00\x54\x93\x00\x00\x72\xd0\x00\x00\x00\x00\x00\x00\x59\x85\x75\xf7\x56\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xde\x00\x00\x5e\x65\x5e\x64\x7d\x73\x00\x00\x60\x66\x62\x6d\x00\x00\x89\x6d\x8f\x6a\x90\x45\x4c\x6c\x4d\x63\x00\x00\x4d\x64\x69\xb1\x4d\xec\x4d\xef\x00\x00\x69\xaf\x69\xad\x4d\xee\x69\xb0\x69\xb2", /* 5980 */ "\x69\xac\x4d\xf1\x4d\xf0\x4d\xed\x4d\xeb\x69\xae\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf2\x00\x00\x00\x00\x4e\xef\x6a\x76\x6a\x79\x6a\x78\x00\x00\x4e\xe9\x4e\xf1\x00\x00\x00\x00\x4e\xee\x6a\x75\x6a\x73\x4e\xed\x00\x00\x00\x00\x00\x00\x4e\xe8\x4e\xeb\x00\x00\x6a\x74\x6a\x7b\x6a\x77\x4e\xec\x4e\xf0\x4e\xf3\x6a\x72\x6a\x7a\x4e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8a\x50\x92\x00\x00\x6b\xb0\x6b\xa9\x50\x93\x6b\xb4\x6b\xa5\x6b\xac\x00\x00\x00\x00\x50\x89\x6b\xa6\x50\x87\x6b\xad\x6b\xb1\x50\x86\x00\x00\x6b\xb2\x6b\xab\x00\x00\x6b\xae\x00\x00\x50\x95\x50\x8c\x6b\xb5\x6b\xb3\x00\x00\x50\x91\x50\x8f\x6b\xaa\x50\x8e\x6b\xa8\x6b\xa7\x50\x8d\x50\x8b\x50\x94\x50\x90\x50\x88\x00\x00\x6b\xaf\x00\x00\x52\x7b\x00\x00\x52\x83\x6d\x92\x52\x7a\x6d\x8a\x6d\x86\x00\x00\x6d\x96\x6d\x85\x00\x00\x52\x7d\x6d\x8f\x52\x81\x52\x84\x00\x00\x52\x7e\x6d\x93\x52\x82\x00\x00\x54\x9a\x6d\x99\x6d\x87\x00\x00\x00\x00\x6d\x89\x6d\x90\x6d\x94\x6d\x98\x6d\x95\x6d\x8e\x6d\x91\x00\x00\x00\x00\x6d\x8b\x52\x86\x6d\x8d\x6d\x8c\x6d\x97\x52\x7c", /* 5a00 */ "\x6d\x88\x52\x85\x00\x00\x52\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa0\x6f\xe4\x00\x00\x54\x9f\x00\x00\x00\x00\x6f\xe2\x00\x00\x54\x94\x00\x00\x54\x99\x00\x00\x6f\xe1\x6f\xde\x6f\xe3\x54\x95\x6f\xdd\x00\x00\x54\x98\x54\x96\x00\x00\x6f\xe5\x54\x97\x54\x9b\x00\x00\x00\x00\x54\x9c\x00\x00\x54\x9e\x00\x00\x00\x00\x00\x00\x54\x9d\x00\x00\x00\x00\x00\x00\x6f\xdf\x6f\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xe6\x00\x00\x72\xd7\x56\xdd\x76\x48\x72\xd6\x72\xe9\x00\x00\x00\x00\x56\xe3\x00\x00\x72\xe7\x00\x00\x56\xe2\x56\xde\x72\xf0\x72\xe0\x72\xe3\x00\x00\x56\xe6\x72\xed\x72\xe5\x56\xdf\x56\xe7\x00\x00\x72\xea\x72\xe8\x00\x00\x00\x00\x72\xd9\x72\xee\x72\xe2\x72\xdd\x00\x00\x72\xd3\x72\xef\x72\xdf\x72\xd2\x00\x00\x56\xe5\x72\xe4\x72\xf1\x72\xe1\x72\xd5\x72\xda\x72\xd1\x00\x00\x56\xe4\x00\x00\x72\xde\x72\xdb\x56\xe0\x72\xd4\x00\x00\x72\xec\x56\xe1\x00\x00\x72\xdc\x72\xd8\x00\x00\x00\x00\x72\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x86\x76\x41\x00\x00\x75\xfb\x76\x4f\x76\x43\x76\x50\x00\x00\x59\x88", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x76\x4c\x76\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x4a\x76\x4d\x76\x51\x00\x00\x72\xe6\x76\x53\x79\xcd\x00\x00\x59\x89\x76\x54\x75\xf9\x76\x46\x00\x00\x76\x4b\x00\x00\x00\x00\x59\x87\x59\x8a\x76\x52\x76\x55\x75\xfd\x75\xfa\x00\x00\x00\x00\x75\xfc\x00\x00\x00\x00\x76\x44\x76\x42\x59\x8b\x00\x00\x76\x4e\x00\x00\x00\x00\x76\x45\x00\x00\x76\x47\x75\xf8\x79\xc1\x79\xbf\x5b\xe7\x5b\xe5\x79\xc9\x79\xc0\x79\xca\x79\xc6\x79\xbe\x79\xcc\x79\xbd\x79\xc4\x5b\xe4\x5b\xe3\x5b\xe2\x79\xc2\x79\xc7\x5b\xdf\x5b\xe6\x00\x00\x79\xbb\x00\x00\x79\xc5\x79\xba\x79\xc3\x5b\xe0\x79\xc8\x79\xbc\x5b\xe1\x79\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x77\x5e\x6a\x5e\x69\x5e\x6b\x7d\x84\x7d\x79\x7d\x7f\x7d\x74\x7d\x83\x7d\x82\x7d\x86\x7d\x7e\x5e\x66\x7d\x7d\x5e\x6c\x00\x00\x7d\x76\x5e\x67\x00\x00\x7d\x85\x5e\x68\x7d\x78\x7d\x7b\x7d\x81\x7d\x7a\x7d\x75\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x7c\x80\x9f\x60\x6a\x80\xa2\x80\xa1\x80\xa4\x80\xa6\x00\x00\x60\x68\x00\x00\x80\xa0\x00\x00\x80\x9e", /* 5b00 */ "\x00\x00\x80\xa7\x80\xa5\x80\xa3\x00\x00\x80\xa9\x00\x00\x80\xa8\x60\x6c\x60\x67\x00\x00\x60\x69\x60\x6b\x00\x00\x00\x00\x80\xaa\x83\xe1\x00\x00\x00\x00\x83\xe0\x83\xdf\x00\x00\x83\xe2\x83\xdb\x00\x00\x83\xdc\x83\xe4\x83\xdd\x00\x00\x62\x6e\x83\xe6\x00\x00\x83\xe5\x83\xde\x00\x00\x86\xdc\x63\xd0\x86\xda\x86\xdf\x86\xde\x83\xe3\x00\x00\x63\xcf\x00\x00\x86\xdd\x86\xd9\x86\xe1\x86\xe0\x63\xce\x00\x00\x86\xdb\x00\x00\x62\x6f\x00\x00\x00\x00\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x89\x6e\x8b\x69\x8b\x6a\x8b\x6b\x66\xe6\x00\x00\x00\x00\x66\xe7\x00\x00\x8c\xf0\x00\x00\x8e\x77\x8e\x76\x00\x00\x00\x00\x8f\x6b\x8f\x6c\x90\x46\x90\xb6\x00\x00\x4c\x6d\x4c\x6e\x00\x00\x4c\x6f\x4c\xb5\x4d\x65\x69\xb3\x4d\xf2\x4d\xf3\x00\x00\x4e\xf6\x4e\xf7\x4e\xf5\x4e\xf4\x00\x00\x50\x96\x00\x00\x00\x00\x6b\xb6\x50\x98\x50\x97\x6b\xb7\x00\x00\x00\x00\x00\x00\x52\x87\x00\x00\x54\xa1\x6f\xe7\x00\x00\x72\xf3\x00\x00\x56\xe8\x59\x8d\x72\xf2\x59\x8c\x00\x00\x5e\x6d\x00\x00\x7d\x87\x62\x70\x00\x00\x63\xd1\x86\xe2\x00\x00\x66\xe8\x00\x00\x67\xdb", /* 5b80 */ "\x48\x67\x69\x73\x00\x00\x4d\x66\x69\x74\x4d\xf6\x00\x00\x4d\xf4\x4d\xf5\x4d\xf7\x00\x00\x4e\xf9\x4e\xf8\x00\x00\x6a\x7c\x4e\xfa\x00\x00\x00\x00\x6a\x7d\x6b\xb8\x00\x00\x6b\xb9\x00\x00\x50\x99\x50\x9b\x50\x9d\x50\x9a\x50\x9e\x50\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x8b\x52\x88\x52\x8a\x52\x8c\x52\x89\x6f\xe8\x6d\x9a\x00\x00\x00\x00\x00\x00\x6f\xea\x6f\xe9\x54\xa7\x00\x00\x54\xa3\x00\x00\x00\x00\x54\xa4\x54\xa6\x54\xa8\x54\xa5\x00\x00\x54\xaa\x54\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xed\x72\xf5\x72\xf4\x56\xec\x00\x00\x56\xeb\x56\xea\x56\xee\x56\xe9\x00\x00\x00\x00\x76\x5b\x76\x58\x59\x8f\x76\x57\x76\x5c\x00\x00\x59\x91\x76\x5a\x59\x8e\x59\x90\x76\x59\x00\x00\x79\xce\x00\x00\x79\xcf\x79\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6e\x5e\x76\x7d\x88\x5e\x70\x5e\x74\x7d\x89\x5e\x75\x5e\x71\x5e\x72\x5e\x6f\x5e\x73\x60\x6f\x76\x56\x60\x70\x60\x6e\x00\x00\x60\x6d\x83\xe7\x62\x71\x86\xe3\x86\xe4\x00\x00\x00\x00\x66\x50\x66\xe9\x00\x00\x4c\x70\x00\x00\x4d\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x52\x8d\x00\x00\x6f\xeb\x54\xab\x00\x00\x00\x00\x56\xf1\x56\xf0\x56\xef\x59\x92\x59\x93\x76\x5d\x5e\x77\x62\x72\x4c\x71\x69\x5d\x4c\xb6\x69\x75\x00\x00\x00\x00\x69\xb4\x4d\xf9\x00\x00\x00\x00\x00\x00\x50\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x79\xd1\x00\x00\x00\x00\x4c\x72\x00\x00\x4c\xb7\x69\xb5\x00\x00\x00\x00\x6a\x7e\x00\x00\x6a\x7f\x00\x00\x4e\xfb\x00\x00\x00\x00\x00\x00\x76\x5e\x59\x94\x00\x00\x79\xd2\x00\x00\x00\x00\x00\x00\x63\xd2\x4c\x73\x4c\x88\x4c\xb8\x69\x76\x4d\x67\x00\x00\x4f\x42\x4f\x41\x4e\xfc\x4e\xfd\x00\x00\x00\x00\x6b\xba\x50\xa1\x50\xa2\x6b\xbb\x50\xa0\x00\x00\x00\x00\x52\x91\x6d\x9b\x52\x90\x52\x8e\x52\x8f\x54\xae\x54\xac\x00\x00\x00\x00\x6f\xed\x54\xad\x6f\xec\x00\x00\x54\xa2\x72\xf6\x00\x00\x00\x00\x56\xf3\x56\xf4\x00\x00\x00\x00\x56\xf2\x00\x00\x5e\x78\x7d\x8a\x60\x71\x60\x72\x00\x00\x80\xab\x63\xd3\x89\x6f\x89\x70\x00\x00\x67\x89\x90\xb7\x69\x4c\x4c\xb9\x00\x00\x4c\x74\x00\x00\x69\x78\x69\x77\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfa\x69\xb7\x69\xb8\x69\xb6\x00\x00\x69\xb9\x00\x00", /* 5c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x88\x00\x00\x6a\x83\x6a\x85\x6a\x87\x6a\x84\x4f\x46\x6a\x81\x00\x00\x6a\x82\x4f\x43\x4f\x44\x6a\x86\x6a\x89\x4f\x45\x6a\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc9\x00\x00\x6b\xc3\x6b\xbe\x50\xa4\x6b\xc6\x6b\xc4\x6b\xbd\x6b\xca\x6b\xcd\x6b\xc8\x6b\xc1\x50\xa6\x6b\xc7\x50\xa7\x6b\xc2\x6b\xc5\x6b\xbc\x6b\xc0\x6b\xcc\x50\xa8\x00\x00\x50\xa9\x00\x00\x6b\xbf\x6b\xcb\x50\xa3\x50\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xac\x6d\xa5\x6d\xab\x6d\xa4\x6d\xa6\x6d\xa0\x6d\x9e\x00\x00\x6d\xad\x6d\xaa\x6d\x9c\x00\x00\x52\x93\x6d\xa8\x6d\xa9\x00\x00\x6d\xa7\x6d\x9f\x6d\x9d\x52\x92\x6d\xa3\x6d\xa1\x00\x00\x00\x00\x6d\xa2\x6d\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb3\x00\x00\x54\xb2\x00\x00\x6f\xee\x54\xaf\x6f\xf0\x00\x00\x54\xb4\x6f\xf1\x00\x00\x00\x00\x54\xb7\x00\x00\x54\xb5\x6f\xf2\x6d\xaf\x6f\xf4\x00\x00\x54\xb1\x00\x00\x54\xb0\x00\x00\x6f\xef", /* 5d00 */ "\x6f\xf3\x54\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x56\xf6\x56\xf5\x00\x00\x00\x00\x00\x00\x72\xf8\x72\xfc\x73\x41\x56\xf7\x73\x44\x00\x00\x56\xfb\x73\x46\x00\x00\x56\xfd\x00\x00\x56\xf9\x57\x44\x00\x00\x57\x41\x72\xfa\x56\xf8\x00\x00\x72\xf9\x72\xf7\x73\x48\x72\xfb\x00\x00\x56\xfa\x73\x47\x57\x42\x73\x43\x73\x42\x57\x43\x72\xfd\x56\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x73\x49\x00\x00\x73\x45\x76\x6d\x76\x74\x76\x69\x59\x97\x76\x65\x76\x75\x76\x5f\x76\x72\x76\x70\x76\x6a\x00\x00\x76\x73\x76\x6c\x00\x00\x76\x64\x76\x76\x76\x62\x76\x6f\x76\x60\x00\x00\x76\x77\x00\x00\x59\x98\x00\x00\x76\x71\x79\xd5\x76\x63\x59\x95\x00\x00\x76\x67\x00\x00\x59\x96\x76\x66\x76\x6b\x00\x00\x00\x00\x76\x68\x00\x00\x00\x00\x00\x00\x76\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x79\xd9\x00\x00\x00\x00\x00\x00\x79\xdc\x79\xd4\x00\x00\x79\xd6\x00\x00\x79\xdb\x79\xda\x5b\xe8\x00\x00\x76\x61\x79\xd8\x00\x00\x00\x00\x5b\xe9\x00\x00\x79\xd3\x79\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x91\x00\x00\x7d\x98\x7d\x8f\x00\x00\x7d\x96\x7d\x8d\x7d\x95\x7d\x99", /* 5d80 */ "\x7d\x8c\x7d\x90\x7d\x8b\x00\x00\x5e\x79\x00\x00\x7d\x8e\x5e\x7a\x7d\x94\x7d\x93\x7d\x92\x00\x00\x00\x00\x7d\x97\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaf\x80\xb1\x60\x74\x80\xb2\x00\x00\x80\xad\x00\x00\x80\xac\x80\xb6\x00\x00\x80\xb4\x60\x73\x80\xb7\x80\xae\x80\xb3\x80\xb5\x80\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x83\xeb\x83\xf0\x83\xea\x83\xef\x00\x00\x83\xe8\x83\xf2\x83\xee\x83\xf3\x83\xed\x83\xe9\x83\xf1\x00\x00\x83\xf4\x83\xec\x00\x00\x86\xe5\x63\xd7\x00\x00\x63\xd5\x00\x00\x63\xd4\x63\xd6\x00\x00\x00\x00\x89\x71\x00\x00\x8a\xc0\x8b\x6c\x00\x00\x00\x00\x8c\xf1\x8c\xf2\x00\x00\x66\xea\x00\x00\x8e\x78\x00\x00\x67\x8a\x00\x00\x8e\x79\x00\x00\x8f\x6e\x67\xdd\x00\x00\x67\xdc\x8f\x6d\x68\x55\x00\x00\x90\x47\x00\x00\x00\x00\x48\x6e\x00\x00\x4c\x75\x4d\xfb\x69\xba\x6a\x8b\x4f\xd5\x57\x45\x00\x00\x00\x00\x4c\x76\x4d\x6a\x4d\x69\x4d\x68\x00\x00\x00\x00\x4f\x47\x00\x00\x00\x00\x54\xb8\x00\x00\x79\xdd\x4c\x77\x4c\x78\x4c\x79\x4c\xba\x00\x00\x00\x00\x52\x94\x00\x00\x6d\xb0\x00\x00\x00\x00\x00\x00\x59\x99\x4c\x7a\x69\x5e", /* 5e00 */ "\x00\x00\x00\x00\x4d\x6b\x4d\x6c\x69\x79\x00\x00\x4d\xfc\x00\x00\x00\x00\x00\x00\x6a\x8c\x00\x00\x4f\x48\x00\x00\x6a\x8d\x00\x00\x00\x00\x50\xaf\x00\x00\x00\x00\x6b\xcf\x50\xad\x50\xac\x6b\xce\x50\xaa\x6b\xd0\x50\xab\x50\xae\x00\x00\x52\x95\x00\x00\x52\x97\x6d\xb4\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb5\x52\x96\x00\x00\x00\x00\x6f\xf6\x6f\xf5\x00\x00\x54\xba\x00\x00\x54\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x48\x73\x4b\x00\x00\x57\x47\x57\x49\x57\x46\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9b\x73\x4a\x00\x00\x59\x9c\x76\x79\x00\x00\x59\x9d\x76\x78\x59\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x79\xe0\x79\xe2\x5b\xea\x79\xe1\x79\xdf\x79\xde\x00\x00\x00\x00\x00\x00\x7d\x9c\x5e\x7f\x5e\x7d\x00\x00\x5e\x7e\x7d\x9a\x7d\x9b\x00\x00\x5e\x7b\x80\xbb\x80\xb9\x00\x00\x60\x76\x80\xba\x60\x77\x60\x75\x5e\x7c\x00\x00\x00\x00\x83\xf7\x83\xf5\x83\xf6\x80\xb8\x86\xe7\x63\xd8\x86\xe6\x89\x72\x89\x73\x83\xf8\x8b\x6d\x00\x00\x4c\x7b\x4d\x6d\x4e\x41\x69\xbb\x4d\xfd\x00\x00\x50\xb0\x5b\xeb\x48\x73\x4c\xbb\x4d\x6e\x52\x98\x59\x9e\x48\x74", /* 5e80 */ "\x69\x7a\x00\x00\x69\x7b\x00\x00\x69\xbc\x00\x00\x00\x00\x4f\x4a\x6a\x91\x6a\x8f\x4f\x4b\x6a\x8e\x6a\x90\x6a\x92\x00\x00\x4f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb4\x50\xb5\x50\xb2\x00\x00\x00\x00\x50\xb1\x6d\xb9\x50\xb3\x00\x00\x00\x00\x00\x00\x52\x99\x00\x00\x6d\xb8\x6d\xba\x6d\xb7\x6d\xbb\x52\x9a\x54\xbd\x6f\xf7\x00\x00\x6f\xf9\x54\xbb\x6f\xfa\x54\xbc\x6f\xf8\x00\x00\x6d\xb6\x73\x4c\x73\x4f\x73\x50\x73\x4d\x57\x4d\x57\x4c\x57\x4a\x57\x4b\x73\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x57\x4e\x00\x00\x00\x00\x59\xa0\x59\xa1\x00\x00\x59\xa2\x79\xe3\x79\xe5\x79\xe7\x5b\xed\x5b\xec\x59\x9f\x79\xe6\x79\xe4\x00\x00\x7d\xa0\x00\x00\x00\x00\x7d\x9e\x7d\xa4\x5e\x81\x7d\xa5\x7d\xa2\x5e\x82\x7d\x9f\x7d\x9d\x7d\xa3\x60\x79\x80\xbd\x7d\xa1\x60\x7b\x80\xbe\x60\x7a\x60\x7d\x80\xbf\x60\x78\x60\x7c\x00\x00\x83\xfd\x83\xfb\x83\xfa\x83\xfc\x83\xf9\x00\x00\x00\x00\x66\x52\x00\x00\x8c\xf3\x8c\xf4\x00\x00\x8e\x7a\x8f\x6f\x68\xa1\x48\x75\x00\x00\x50\xb6\x4f\x4c\x00\x00\x00\x00\x52\x9b\x00\x00\x00\x00\x00\x00\x4c\x7c\x4c\xbc", /* 5f00 */ "\x00\x00\x4d\x6f\x69\xbd\x00\x00\x4f\x4d\x6a\x93\x00\x00\x6d\xbc\x52\x9c\x00\x00\x5e\x83\x4c\x7d\x00\x00\x00\x00\x00\x00\x4e\x42\x00\x00\x00\x00\x5b\xee\x4c\x7e\x4c\xbd\x4c\xbe\x00\x00\x4d\x71\x4d\x70\x00\x00\x69\xbe\x4e\x43\x00\x00\x6a\x94\x00\x00\x4f\x4e\x00\x00\x00\x00\x6b\xd2\x6b\xd3\x6b\xd4\x00\x00\x50\xb7\x50\xb8\x6b\xd1\x50\xb9\x00\x00\x00\x00\x00\x00\x52\x9d\x6d\xbd\x00\x00\x6f\xfc\x54\xbe\x00\x00\x6f\xfb\x00\x00\x57\x4f\x73\x51\x57\x50\x73\x52\x00\x00\x00\x00\x00\x00\x59\xa3\x00\x00\x00\x00\x00\x00\x79\xe8\x00\x00\x00\x00\x7d\xa7\x7d\xa6\x00\x00\x5e\x84\x00\x00\x60\x7e\x80\xc0\x62\x73\x84\x41\x63\xd9\x00\x00\x67\xde\x90\x49\x48\x79\x00\x00\x00\x00\x00\x00\x6b\xd5\x00\x00\x6d\xbe\x57\x51\x76\x7a\x5b\xef\x00\x00\x00\x00\x00\x00\x65\x60\x65\x60\x00\x00\x00\x00\x48\x7a\x4f\x50\x00\x00\x4f\x4f\x52\x9e\x00\x00\x6f\xfd\x00\x00\x57\x53\x58\xa8\x57\x54\x57\x52\x59\xa4\x00\x00\x7d\xa8\x5e\x85\x60\x7f\x00\x00\x69\x4d\x69\xbf\x00\x00\x6a\x96\x4f\x51\x6a\x95\x4f\x52\x00\x00\x00\x00\x50\xbd\x6b\xd8\x6b\xd7\x50\xbc", /* 5f80 */ "\x50\xba\x50\xbb\x6b\xd6\x00\x00\x00\x00\x52\xa0\x6d\xbf\x52\xa3\x52\x9f\x52\xa5\x52\xa1\x52\xa2\x52\xa4\x00\x00\x00\x00\x00\x00\x54\xc1\x54\xc0\x54\xbf\x00\x00\x00\x00\x00\x00\x73\x54\x57\x55\x57\x58\x57\x56\x00\x00\x73\x53\x57\x5b\x00\x00\x57\x57\x73\x55\x57\x5a\x57\x59\x00\x00\x00\x00\x00\x00\x76\x7c\x76\x7b\x00\x00\x59\xa7\x59\xa5\x59\xa6\x76\x7d\x5b\xf0\x79\xea\x5b\xf1\x79\xe9\x00\x00\x00\x00\x80\xc1\x00\x00\x00\x00\x60\x82\x7d\xa9\x60\x81\x00\x00\x5e\x86\x00\x00\x86\xe9\x84\x42\x63\xda\x86\xe8\x8b\x6e\x8c\xf5\x8c\xf6\x00\x00\x4c\xbf\x00\x00\x4d\x72\x00\x00\x00\x00\x00\x00\x69\x7c\x00\x00\x00\x00\x4f\x54\x4f\x56\x00\x00\x69\xc2\x6a\x99\x6a\x98\x6a\x97\x00\x00\x69\xc1\x69\xc0\x4e\x45\x4f\x55\x4f\x53\x4e\x44\x00\x00\x00\x00\x00\x00\x50\xbe\x6b\xd9\x00\x00\x50\xbf\x6a\x9e\x00\x00\x6a\xa0\x6a\x9f\x6b\xda\x00\x00\x00\x00\x6a\x9b\x00\x00\x4f\x5a\x4f\x58\x00\x00\x6a\x9a\x6a\x9c\x6a\xa2\x00\x00\x4f\x57\x00\x00\x6a\x9d\x6a\xa6\x50\xc1\x00\x00\x6a\xa3\x4f\x59\x00\x00\x6a\xa1\x6a\xa4\x00\x00\x50\xc0\x00\x00\x50\xc2", /* 6000 */ "\x6a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xee\x6b\xe1\x6b\xdf\x6b\xed\x6b\xe8\x52\xaa\x50\xc3\x6b\xe9\x6b\xec\x52\xa6\x6b\xeb\x50\xc4\x50\xc9\x50\xc7\x6b\xe2\x00\x00\x6b\xdd\x6b\xe4\x50\xce\x6b\xef\x52\xa7\x6b\xe5\x00\x00\x52\xa8\x50\xca\x6b\xe7\x00\x00\x6d\xce\x52\xa9\x6b\xdc\x50\xcb\x52\xab\x50\xcc\x50\xc8\x50\xcd\x6b\xe6\x6b\xdb\x6b\xea\x50\xc5\x00\x00\x00\x00\x6b\xde\x6b\xe3\x6b\xe0\x50\xc6\x00\x00\x6d\xc0\x00\x00\x6d\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xcb\x70\x44\x6d\xcc\x52\xb1\x6d\xcf\x6d\xc5\x52\xb0\x6d\xc7\x00\x00\x6d\xc8\x00\x00\x00\x00\x6d\xca\x52\xac\x00\x00\x00\x00\x54\xc5\x00\x00\x00\x00\x6d\xc6\x6d\xc2\x54\xc6\x00\x00\x00\x00\x6d\xd0\x54\xc2\x70\x42\x6d\xc9\x00\x00\x70\x41\x6d\xc4\x6d\xcd\x00\x00\x00\x00\x52\xaf\x54\xc3\x52\xb5\x54\xc4\x6d\xd1\x70\x43\x52\xae\x54\xc8\x52\xb4\x52\xb3\x52\xb2\x54\xc7\x6d\xd2\x54\xc9\x52\xad\x00\x00\x6d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x5c", /* 6080 */ "\x70\x47\x70\x49\x00\x00\x70\x4b\x54\xca\x54\xd0\x73\x58\x70\x4f\x70\x46\x57\x5e\x73\x56\x00\x00\x54\xcf\x54\xcd\x70\x51\x00\x00\x73\x57\x00\x00\x70\x48\x00\x00\x54\xce\x70\x4c\x54\xd1\x70\x4e\x00\x00\x00\x00\x54\xcc\x70\x4d\x70\x50\x70\x4a\x00\x00\x54\xcb\x57\x5f\x00\x00\x70\x45\x57\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x57\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x5a\x73\x63\x59\xaa\x00\x00\x57\x62\x57\x67\x59\xab\x73\x65\x57\x6e\x76\x7f\x73\x5b\x57\x66\x57\x69\x57\x64\x73\x59\x73\x67\x73\x6a\x76\x8f\x00\x00\x73\x68\x76\x84\x57\x65\x57\x6c\x57\x70\x73\x62\x76\x7e\x73\x66\x57\x61\x76\x81\x73\x69\x76\x83\x73\x5e\x00\x00\x59\xa8\x00\x00\x73\x5c\x73\x5d\x57\x6b\x00\x00\x00\x00\x57\x6a\x73\x60\x57\x6f\x73\x64\x57\x68\x73\x61\x00\x00\x57\x6d\x59\xac\x59\xa9\x76\x82\x00\x00\x73\x5f\x00\x00\x57\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb1\x59\xb5\x76\x86\x5b\xf6\x59\xb3\x76\x8a\x59\xb7\x79\xeb\x76\x8c\x5b\xf8\x59\xaf\x59\xb2\x76\x8d\x00\x00\x76\x8e\x76\x94", /* 6100 */ "\x59\xb9\x5b\xf9\x00\x00\x76\x90\x76\x95\x76\x89\x5c\x46\x00\x00\x5b\xfa\x59\xb8\x76\x87\x76\x96\x00\x00\x5c\x45\x59\xb6\x5b\xf3\x76\x93\x00\x00\x59\xba\x76\x8b\x76\x85\x59\xb0\x76\x88\x00\x00\x76\x91\x00\x00\x5b\xf2\x5b\xf7\x59\xad\x76\x92\x00\x00\x5b\xf5\x00\x00\x00\x00\x00\x00\x59\xae\x00\x00\x00\x00\x00\x00\x5c\x44\x7d\xab\x79\xf6\x00\x00\x79\xee\x7d\xaa\x00\x00\x79\xf2\x79\xf4\x00\x00\x00\x00\x79\xf1\x00\x00\x5c\x43\x00\x00\x79\xf0\x5c\x47\x00\x00\x00\x00\x00\x00\x7d\xba\x00\x00\x00\x00\x5c\x42\x5e\x88\x79\xf7\x7d\xac\x00\x00\x00\x00\x5b\xfd\x79\xef\x79\xf3\x5e\x87\x5b\xf4\x79\xec\x79\xed\x5e\x89\x5b\xfc\x5c\x41\x5b\xfb\x79\xf5\x00\x00\x00\x00\x7d\xb0\x7d\xb1\x7d\xb6\x60\x87\x7d\xbd\x00\x00\x5e\x8f\x00\x00\x5e\x8e\x7d\xb8\x00\x00\x60\x86\x7d\xad\x5e\x8d\x00\x00\x7d\xbc\x5e\x8b\x5e\x8c\x00\x00\x7d\xb9\x80\xd2\x60\x84\x59\xb4\x00\x00\x7d\xbb\x60\x8b\x7d\xb3\x00\x00\x60\x85\x00\x00\x60\x8a\x7d\xae\x7d\xb2\x7d\xaf\x7d\xb5\x5e\x90\x60\x83\x5e\x8a\x00\x00\x80\xc4\x7d\xb7\x00\x00\x60\x89\x00\x00\x60\x8c\x00\x00", /* 6180 */ "\x7d\xb4\x00\x00\x60\x88\x80\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc8\x62\x77\x80\xc2\x84\x4e\x80\xd1\x60\x90\x00\x00\x60\x8e\x62\x75\x80\xce\x80\xca\x60\x94\x00\x00\x84\x45\x00\x00\x00\x00\x00\x00\x60\x92\x80\xc9\x00\x00\x84\x43\x00\x00\x80\xcd\x00\x00\x80\xd0\x80\xc7\x00\x00\x60\x93\x00\x00\x00\x00\x60\x8d\x84\x44\x62\x76\x80\xcf\x60\x8f\x60\x91\x80\xcc\x60\x95\x80\xcb\x80\xc6\x80\xc5\x62\x74\x80\xd3\x84\x47\x86\xeb\x62\x79\x00\x00\x84\x4d\x00\x00\x84\x4b\x00\x00\x86\xec\x00\x00\x62\x7a\x84\x4c\x00\x00\x84\x49\x63\xdc\x86\xea\x00\x00\x84\x46\x84\x48\x63\xdd\x62\x7c\x63\xdb\x62\x7b\x63\xdf\x84\x4a\x62\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x7c\x00\x00\x89\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xf2\x89\x75\x86\xee\x00\x00\x00\x00\x65\x61\x86\xf0\x86\xef\x63\xde\x86\xed\x86\xf1\x89\x7d\x89\x79\x89\x7b\x00\x00\x89\x76\x89\x77\x00\x00\x89\x7a\x89\x78\x66\x53\x00\x00\x00\x00\x66\x56\x66\x55\x66\x54\x66\xeb\x8c\xf7\x66\xec\x8b\x6f\x67\x8b\x8e\x7b\x67\x8c\x67\xdf", /* 6200 */ "\x68\x56\x90\x4a\x00\x00\x90\x4b\x90\x4c\x00\x00\x00\x00\x91\xaa\x4c\xc0\x69\x7d\x4d\x73\x00\x00\x4e\x47\x4e\x48\x4e\x46\x00\x00\x4e\x49\x4f\x5c\x4f\x5b\x00\x00\x6b\xf0\x50\xd0\x50\xcf\x00\x00\x00\x00\x70\x52\x57\x71\x57\x72\x00\x00\x00\x00\x00\x00\x59\xbb\x79\xf8\x5c\x48\x5c\x49\x79\xfa\x79\xfc\x79\xfb\x00\x00\x7d\xbf\x00\x00\x7d\xbe\x5e\x91\x7d\xc0\x00\x00\x80\xd4\x60\x96\x00\x00\x62\x7d\x00\x00\x63\xe0\x65\x62\x63\xe1\x00\x00\x4c\xc1\x00\x00\x00\x00\x00\x00\x6a\xa7\x00\x00\x00\x00\x6b\xf1\x50\xd2\x50\xd1\x50\xd3\x52\xb6\x6d\xd3\x6d\xd4\x00\x00\x00\x00\x70\x53\x54\xd2\x57\x73\x59\xbc\x76\x97\x4c\xc2\x00\x00\x4c\x7f\x4c\xc3\x00\x00\x69\x7e\x4d\x77\x4d\x76\x4d\x74\x4d\x75\x00\x00\x00\x00\x00\x00\x4e\x4c\x69\xca\x69\xcc\x4e\x4b\x69\xc4\x00\x00\x69\xc5\x00\x00\x69\xcb\x69\xc7\x69\xc9\x4e\x4a\x69\xc6\x69\xc3\x69\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x63\x4f\x6c\x4f\x6a\x6a\xb1\x6a\xae\x6a\xb6\x4f\x68\x6a\xb7\x00\x00\x4f\x61\x6a\xb4\x00\x00\x4f\x67\x6a\xb0\x6a\xaf\x4f\x65\x6a\xb5\x4f\x66\x50\xd4", /* 6280 */ "\x4f\x60\x6a\xb2\x00\x00\x6a\xa8\x4f\x5d\x00\x00\x4f\x70\x6a\xad\x6a\xb3\x4f\x62\x4f\x64\x00\x00\x6a\xa9\x00\x00\x6a\xaa\x6a\xab\x00\x00\x4f\x6f\x4f\x69\x4f\x6e\x6a\xac\x4f\x6d\x4f\x5f\x4f\x5e\x4f\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xe2\x6b\xfd\x6b\xf6\x50\xdd\x50\xf0\x6b\xf2\x6b\xf9\x6b\xfb\x6c\x41\x50\xeb\x00\x00\x6b\xfa\x6b\xf3\x50\xe9\x6b\xf7\x00\x00\x6c\x42\x50\xda\x00\x00\x6b\xfc\x50\xe4\x50\xe3\x6b\xf5\x50\xd8\x00\x00\x00\x00\x50\xd9\x00\x00\x50\xd7\x00\x00\x50\xef\x50\xe7\x50\xe1\x50\xd5\x6b\xf8\x50\xe0\x50\xd6\x50\xe8\x50\xf1\x6d\xd5\x50\xe5\x6b\xf4\x50\xdb\x50\xde\x50\xdf\x00\x00\x50\xed\x50\xee\x50\xec\x50\xe6\x50\xea\x50\xdc\x52\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xdb\x52\xc3\x52\xbb\x52\xbd\x52\xc2\x6d\xe7\x52\xc0\x70\x54\x54\xd3\x52\xc5\x6d\xd8\x6d\xe0\x52\xc1\x6d\xdf\x6d\xdc\x6d\xe4\x6d\xe6\x52\xba\x52\xbe\x52\xc4\x54\xd5", /* 6300 */ "\x6d\xe1\x52\xbc\x52\xc7\x6d\xda\x00\x00\x00\x00\x00\x00\x52\xbf\x54\xd4\x52\xb9\x00\x00\x6d\xd7\x6d\xde\x6d\xd6\x6d\xd9\x6d\xdd\x70\x55\x52\xc6\x00\x00\x6d\xe2\x6d\xe3\x6d\xe5\x52\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe3\x70\x61\x54\xe1\x54\xe2\x70\x57\x70\x67\x00\x00\x54\xd8\x00\x00\x00\x00\x73\x6b\x70\x69\x70\x63\x00\x00\x70\x5a\x00\x00\x70\x6c\x70\x5d\x54\xde\x73\x83\x70\x60\x54\xe0\x54\xd7\x00\x00\x70\x6e\x70\x62\x54\xda\x70\x5b\x70\x58\x70\x59\x54\xdb\x70\x68\x70\x6f\x54\xdd\x70\x5f\x70\x5e\x54\xe5\x54\xe4\x54\xd6\x54\xdc\x54\xdf\x70\x6b\x00\x00\x00\x00\x70\x65\x54\xd9\x70\x56\x70\x6d\x70\x64\x70\x66\x70\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x6c\x00\x00\x57\x7b\x57\x90\x57\x8f\x00\x00\x57\x84\x00\x00\x73\x7e\x73\x7a\x73\x77\x73\x8a\x57\x7e\x57\x76\x00\x00\x00\x00\x73\x7c\x59\xcc\x57\x7a\x73\x85\x00\x00\x57\x91\x57\x8e\x73\x81\x73\x6f\x00\x00\x00\x00", /* 6380 */ "\x57\x8d\x73\x87\x73\x6e\x57\x82\x57\x86\x73\x86\x00\x00\x73\x78\x57\x87\x57\x81\x73\x6d\x00\x00\x59\xbe\x73\x89\x73\x76\x57\x8c\x73\x79\x73\x88\x57\x8b\x00\x00\x76\x98\x00\x00\x57\x77\x73\x74\x57\x7c\x57\x88\x00\x00\x57\x83\x73\x7d\x73\x73\x73\x71\x73\x84\x57\x74\x57\x89\x57\x78\x59\xbd\x73\x82\x57\x79\x00\x00\x57\x75\x57\x85\x57\x7f\x57\x7d\x73\x75\x57\x8a\x73\x72\x73\x7f\x73\x7b\x76\x9a\x76\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x70\x76\xaa\x00\x00\x59\xc0\x00\x00\x76\xb0\x76\x9f\x76\xad\x79\xfd\x59\xc3\x76\xb1\x76\xb4\x59\xc2\x76\xa2\x76\xb3\x76\xb2\x59\xc4\x76\x9b\x59\xbf\x59\xc7\x00\x00\x59\xc5\x76\xaf\x00\x00\x76\xa5\x59\xc9\x76\xb6\x76\xae\x76\xb7\x59\xd1\x59\xcf\x76\xac\x76\xab\x00\x00\x76\xa9\x76\xa3\x59\xc8\x00\x00\x59\xc6\x70\x5c\x76\x9c\x00\x00\x7a\x5e\x76\x9d\x59\xc1\x59\xce\x7a\x42\x00\x00\x59\xca\x59\xcb\x76\x9e\x76\xb5\x7a\x41\x76\xa6\x76\xa1\x59\xcd\x76\xa7\x76\xa4\x00\x00\x00\x00\x59\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x58\x00\x00\x00\x00\x7a\x45\x7a\x58\x7a\x5d\x7a\x51\x5c\x54\x7a\x62\x5c\x51\x7a\x43\x00\x00\x7a\x44\x5c\x4a\x5c\x53\x7a\x4b\x5c\x56\x5c\x57\x7a\x4c\x00\x00\x7a\x59\x7a\x5f\x5c\x52\x00\x00\x5c\x4c\x7a\x4a\x7a\x46\x7a\x61\x7a\x4f\x7a\x50\x7a\x47\x7a\x5b\x7a\x52\x7a\x5c\x7a\x54\x00\x00\x5c\x4d\x7d\xc1\x5c\x50\x5c\x4e\x7a\x60\x7a\x57\x7a\x53\x00\x00\x00\x00\x7a\x48\x5e\x9b\x7a\x56\x5c\x55\x7a\x4e\x00\x00\x7a\x4d\x00\x00\x00\x00\x00\x00\x5c\x4f\x5c\x4b\x7d\xd6\x7a\x5a\x7a\x55\x00\x00\x7a\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xd1\x00\x00\x7d\xc2\x7d\xcd\x00\x00\x7d\xd4\x5e\x99\x59\xd0\x7d\xd2\x5e\x94\x00\x00\x00\x00\x00\x00\x5e\x93\x7d\xd9\x00\x00\x7d\xc3\x7d\xd0\x7d\xc4\x7d\xcf\x5e\x97\x7d\xd3\x76\xa8\x00\x00\x00\x00\x00\x00\x7d\xda\x7d\xcb\x5e\x9a\x80\xe2\x60\x97\x00\x00\x7d\xd8\x7d\xd7\x5e\x9c\x80\xd5\x60\x98\x80\xd6\x00\x00\x7d\xc7\x7d\xc8\x7d\xc5\x7d\xca\x7d\xc6\x7d\xdb\x5e\x96\x60\x99\x5e\x98\x5e\x9d\x00\x00\x7d\xc9\x00\x00\x7d\xd5", /* 6480 */ "\x00\x00\x00\x00\x7d\xce\x00\x00\x00\x00\x80\xd9\x00\x00\x5e\x92\x60\x9c\x84\x55\x80\xde\x80\xdd\x80\xdf\x00\x00\x00\x00\x80\xdc\x60\x9d\x68\xcb\x60\xa3\x60\xa0\x00\x00\x60\xa1\x80\xd7\x80\xda\x80\xe4\x60\xa9\x60\xa7\x00\x00\x80\xdb\x76\xa0\x60\x9a\x80\xe1\x80\xd8\x00\x00\x60\xaa\x80\xe0\x5e\x95\x60\x9f\x7d\xcc\x00\x00\x00\x00\x60\xa2\x00\x00\x60\xa6\x60\xa8\x60\xa5\x60\xa4\x00\x00\x60\x9e\x80\xe3\x60\x9b\x60\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x82\x62\x83\x84\x54\x62\x8c\x62\x89\x00\x00\x62\x7f\x62\x87\x84\x56\x62\x85\x62\x7e\x00\x00\x62\x86\x00\x00\x84\x53\x63\xe3\x62\x81\x00\x00\x62\x88\x63\xe2\x84\x52\x84\x51\x00\x00\x62\x8a\x00\x00\x62\x8b\x00\x00\x84\x50\x84\x4f\x63\xe4\x84\x59\x62\x84\x84\x57\x00\x00\x00\x00\x00\x00\x00\x00\x63\xe5\x00\x00\x63\xea\x86\xf5\x86\xf7\x00\x00\x63\xe7\x00\x00\x86\xf8\x86\xf4\x00\x00\x86\xf6\x63\xe8\x63\xeb\x00\x00\x86\xf3\x63\xe6\x63\xe9\x65\x64\x84\x58\x65\x63\x00\x00\x00\x00\x65\x69\x89\x82\x00\x00\x65\x67\x65\x68\x89\x85\x89\x81\x65\x65\x89\x7e", /* 6500 */ "\x66\x57\x89\x83\x00\x00\x89\x84\x89\x7f\x00\x00\x65\x66\x8b\x70\x00\x00\x8b\x73\x00\x00\x00\x00\x8b\x74\x8b\x72\x8b\x75\x66\x58\x8b\x71\x00\x00\x00\x00\x8c\xfb\x66\xee\x8c\xfa\x8c\xf9\x8c\xf8\x66\xed\x66\xef\x00\x00\x8e\x7c\x67\x8e\x67\x8d\x00\x00\x00\x00\x8f\x71\x8f\x70\x8f\x73\x68\x57\x67\xe0\x90\x4e\x8f\x72\x00\x00\x00\x00\x90\x4d\x68\x59\x68\x58\x68\x7f\x90\xb8\x91\x41\x4c\xc4\x00\x00\x00\x00\x76\xb8\x84\x5a\x48\x82\x00\x00\x4e\x4d\x6a\xb8\x4f\x73\x4f\x71\x00\x00\x4f\x72\x00\x00\x6c\x43\x50\xf2\x52\xc8\x00\x00\x6d\xe8\x00\x00\x6d\xe9\x00\x00\x52\xc9\x70\x71\x00\x00\x54\xe6\x54\xe7\x70\x70\x00\x00\x00\x00\x00\x00\x00\x00\x57\x98\x00\x00\x57\x94\x00\x00\x73\x8b\x57\x9b\x57\x9a\x57\x93\x57\x96\x57\x99\x57\x95\x00\x00\x00\x00\x76\xbc\x57\x92\x59\xd3\x00\x00\x00\x00\x00\x00\x59\xd5\x59\xd6\x76\xbb\x76\xbe\x59\xd4\x76\xb9\x76\xbd\x00\x00\x76\xba\x00\x00\x5c\x59\x00\x00\x00\x00\x7a\x63\x00\x00\x00\x00\x5e\x9e\x7d\xdc\x62\x8d\x60\xac\x80\xe5\x60\xad\x60\xae\x80\xe7\x80\xe6\x80\xe8\x84\x5c\x00\x00\x00\x00\x84\x5b", /* 6580 */ "\x86\xfa\x86\xf9\x63\xec\x63\xed\x8b\x76\x00\x00\x00\x00\x4c\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x76\xbf\x00\x00\x00\x00\x00\x00\x59\xd8\x59\xd7\x7a\x64\x00\x00\x89\x86\x67\x8f\x90\x4f\x4c\xc6\x00\x00\x54\xe8\x00\x00\x57\x9d\x57\x9c\x76\xc0\x76\xc1\x5c\x5a\x7d\xdd\x5e\x9f\x84\x5d\x00\x00\x4c\xc7\x4d\x78\x00\x00\x50\xf3\x6c\x44\x00\x00\x6d\xea\x52\xca\x57\x9e\x00\x00\x76\xc2\x59\xd9\x5c\x5b\x00\x00\x80\xe9\x80\xea\x00\x00\x00\x00\x86\xfb\x65\x6a\x91\x42\x4c\xc8\x00\x00\x6c\x45\x50\xf4\x52\xcb\x00\x00\x6d\xeb\x00\x00\x54\xe9\x70\x75\x70\x73\x70\x74\x54\xea\x70\x72\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa0\x57\xa1\x73\x8c\x57\xa2\x57\x9f\x76\xc3\x00\x00\x76\xc4\x7a\x65\x00\x00\x00\x00\x5e\xa1\x5e\xa0\x00\x00\x00\x00\x86\xfc\x89\x87\x00\x00\x8b\x78\x8b\x77\x8c\xfc\x48\x87\x69\x5f\x52\xcc\x00\x00\x00\x00\x4c\xc9\x4d\x79\x00\x00\x4e\x4f\x4e\x4e\x00\x00\x00\x00\x4e\x50\x4e\x51\x69\xce\x69\xcd\x6a\xb9\x4f\x74\x6a\xbc\x6a\xbb\x6a\xba\x6a\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x50\xf5\x6c\x4b\x6c\x47\x6c\x50\x00\x00\x00\x00", /* 6600 */ "\x50\xfc\x00\x00\x50\xfa\x6c\x4c\x6c\x48\x6c\x4f\x50\xf9\x51\x43\x6c\x4a\x6c\x46\x51\x42\x6c\x4d\x50\xf8\x6c\x4e\x50\xfb\x50\xfd\x6c\x52\x6c\x51\x6c\x49\x50\xf7\x50\xf6\x51\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xf0\x6d\xf6\x00\x00\x52\xd2\x52\xcf\x6d\xed\x6d\xf2\x00\x00\x52\xd5\x52\xcd\x6d\xf1\x52\xd0\x52\xd3\x00\x00\x00\x00\x6d\xf4\x00\x00\x52\xce\x6d\xf9\x52\xd1\x00\x00\x52\xd4\x6d\xee\x6d\xf3\x6d\xf7\x6d\xef\x6d\xec\x00\x00\x00\x00\x6d\xf8\x6d\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xf2\x54\xeb\x54\xee\x00\x00\x54\xf1\x00\x00\x70\x78\x00\x00\x54\xec\x70\x76\x00\x00\x54\xf0\x00\x00\x00\x00\x54\xed\x00\x00\x70\x79\x54\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x90\x57\xa4\x73\x8f\x73\x91\x57\xa3\x57\xa8\x70\x77\x00\x00\x73\x8e\x73\x92\x00\x00\x57\xa5\x73\x8d\x57\xa7\x00\x00\x57\xa6\x00\x00\x76\xcb\x00\x00\x76\xc6\x00\x00\x59\xda\x59\xde\x59\xdb\x76\xc9\x76\xcc\x00\x00\x59\xdc\x00\x00\x59\xdd\x59\xe2\x7a\x6e\x76\xca\x59\xe0\x76\xc7\x76\xc5\x00\x00\x59\xe1\x00\x00", /* 6680 */ "\x76\xc8\x00\x00\x00\x00\x00\x00\x5c\x61\x00\x00\x7a\x66\x5c\x5e\x5c\x5f\x5c\x5d\x7a\x6b\x7a\x6a\x7a\x67\x5c\x63\x00\x00\x00\x00\x7a\x69\x59\xdf\x00\x00\x00\x00\x7a\x6d\x7a\x68\x5c\x60\x5c\x5c\x5c\x62\x7a\x6c\x00\x00\x00\x00\x00\x00\x5e\xa4\x00\x00\x7d\xe0\x7d\xdf\x7d\xde\x5e\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa3\x80\xed\x80\xf0\x60\xb0\x00\x00\x00\x00\x60\xaf\x80\xf1\x80\xec\x60\xb2\x80\xee\x00\x00\x60\xb1\x80\xeb\x00\x00\x80\xef\x62\x93\x62\x90\x84\x66\x84\x65\x00\x00\x84\x64\x84\x5f\x00\x00\x84\x60\x00\x00\x00\x00\x00\x00\x62\x91\x00\x00\x62\x8e\x62\x92\x84\x5e\x62\x8f\x84\x61\x84\x62\x84\x67\x00\x00\x00\x00\x84\x63\x00\x00\x00\x00\x86\xfd\x00\x00\x00\x00\x00\x00\x63\xef\x00\x00\x89\x8a\x63\xee\x89\x88\x89\x89\x65\x6b\x66\x5a\x8b\x79\x00\x00\x66\x59\x00\x00\x00\x00\x8d\x41\x8d\x42\x00\x00\x66\xf0\x00\x00\x8c\xfd\x67\x90\x00\x00\x90\x50\x68\x5a\x90\xb9\x90\xba\x00\x00\x4c\xca\x00\x00\x4e\x52\x4e\x53\x4f\x75\x00\x00\x6c\x53\x52\xd6\x54\xf3\x57\xa9\x00\x00\x00\x00\x56\xb6\x00\x00\x59\xe3\x59\xe4", /* 6700 */ "\x59\x52\x76\xcd\x00\x00\x5c\x64\x7d\xe2\x7d\xe1\x00\x00\x00\x00\x4c\xcb\x4e\x54\x6c\x54\x51\x45\x00\x00\x51\x44\x00\x00\x6d\xfa\x6d\xfb\x00\x00\x70\x7a\x70\x7b\x54\xf4\x54\xf5\x00\x00\x54\xf6\x73\x93\x00\x00\x00\x00\x57\xab\x00\x00\x59\xe6\x00\x00\x59\xe5\x7a\x6f\x7b\xc2\x7d\xe3\x84\x68\x00\x00\x00\x00\x65\x6c\x66\xf1\x4c\xcc\x00\x00\x4d\x7c\x4d\x7d\x4d\x7b\x4d\x7e\x4d\x7a\x00\x00\x00\x00\x4e\x57\x00\x00\x69\xd6\x4e\x56\x4e\x58\x00\x00\x00\x00\x69\xd1\x69\xd0\x69\xd3\x69\xd2\x69\xd5\x4e\x55\x69\xcf\x69\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbe\x4f\x7f\x6a\xbf\x6a\xc3\x4f\x7e\x00\x00\x6a\xc7\x6a\xc2\x6a\xc5\x4f\x77\x4f\x78\x4f\x79\x4f\x7a\x00\x00\x4f\x82\x00\x00\x6a\xc1\x4f\x7c\x4f\x83\x00\x00\x6a\xc0\x6a\xc6\x00\x00\x4f\x7b\x6a\xc4\x4f\x7d\x4f\x76\x4f\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5a\x00\x00\x6c\x56\x51\x46\x00\x00\x51\x50\x51\x51\x51\x49\x51\x5b\x51\x4b\x6c\x5e\x51\x56\x6c\x59\x51\x4c\x6c\x68\x6c\x69\x6c\x61\x6c\x5a\x51\x59\x6c\x66\x51\x54\x51\x52", /* 6780 */ "\x00\x00\x6c\x67\x00\x00\x6c\x65\x6c\x5d\x6c\x55\x6c\x5c\x51\x4d\x00\x00\x51\x53\x00\x00\x51\x47\x6c\x60\x6c\x5f\x6c\x57\x00\x00\x51\x55\x6c\x63\x6c\x58\x51\x58\x6c\x6a\x51\x48\x00\x00\x51\x4f\x6c\x5b\x6c\x64\x51\x57\x00\x00\x51\x4a\x51\x4e\x00\x00\x6c\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x5e\x52\xde\x52\xeb\x00\x00\x6e\x59\x6e\x4f\x52\xe4\x6e\x4d\x52\xdd\x6e\x48\x52\xe7\x6e\x55\x6e\x42\x6e\x44\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x47\x6d\xfc\x6e\x54\x6e\x64\x52\xe2\x6e\x49\x6e\x5b\x00\x00\x6e\x41\x6e\x62\x6e\x63\x6e\x66\x6e\x5d\x6e\x4e\x6e\x56\x52\xe8\x52\xdb\x52\xe3\x52\xef\x52\xd8\x52\xda\x00\x00\x00\x00\x00\x00\x6e\x46\x52\xec\x52\xe5\x6e\x60\x6e\x43\x52\xee\x52\xe9\x6e\x4c\x00\x00\x00\x00\x52\xed\x6e\x53\x6e\x4b\x52\xe6\x6e\x5f\x6e\x57\x00\x00\x52\xe0\x6e\x65\x6e\x4a\x52\xdc\x6e\x5c\x6e\x52\x52\xe1\x6e\x58\x52\xd9\x6d\xfd\x52\xea\x55\x48\x52\xdf\x6e\x51\x6e\x50\x6e\x45\x00\x00\x6e\x61\x00\x00\x6e\x5a\x00\x00\x00\x00\x52\xd7", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x90\x55\x4f\x70\x91\x00\x00\x70\x85\x55\x44\x55\x50\x00\x00\x70\x7d\x00\x00\x70\x87\x70\x8f\x00\x00\x70\x7c\x70\x98\x54\xf7\x00\x00\x00\x00\x00\x00\x70\x97\x70\x92\x00\x00\x70\x93\x55\x42\x55\x4d\x70\x89\x00\x00\x70\x8a\x70\x94\x70\x8b\x00\x00\x70\x86\x70\x7f\x70\x81\x70\x8e\x70\x88\x00\x00\x00\x00\x54\xf8\x54\xfc\x70\x96\x70\x82\x55\x4b\x55\x47\x00\x00\x00\x00\x55\x4a\x55\x51\x54\xfd\x55\x4c\x70\x8d\x55\x4e\x54\xfa\x00\x00\x54\xf9\x70\x7e\x00\x00\x70\x83\x55\x45\x70\x95\x70\x8c\x70\x84\x55\x49\x55\x46\x00\x00\x54\xfb\x55\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\xa8\x00\x00\x73\x98\x73\x99\x73\x9d\x00\x00\x73\xac\x73\xa9\x00\x00\x73\xa2\x73\xa1\x57\xb2\x73\xa5\x73\xb4\x73\x94\x00\x00\x73\xb5\x73\xa7\x73\xb9\x73\xad\x57\xb1", /* 6880 */ "\x73\xab\x57\xac\x57\xc1\x57\xb7\x00\x00\x57\xbb\x57\xba\x73\x95\x00\x00\x73\xb2\x73\xb8\x73\xb0\x73\xb7\x00\x00\x00\x00\x73\xa4\x73\x96\x73\xb6\x73\xa6\x57\xaf\x57\xbc\x00\x00\x73\xaf\x57\xb5\x00\x00\x00\x00\x00\x00\x73\xae\x73\x97\x57\xbd\x00\x00\x57\xbf\x73\xb1\x57\xc0\x57\xae\x73\x9e\x73\xb3\x00\x00\x00\x00\x57\xb4\x57\xbe\x73\xa0\x73\xaa\x73\x9b\x73\x9f\x57\xb9\x73\x9a\x57\xad\x57\xb6\x57\xb3\x73\xa3\x55\x43\x76\xe4\x57\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb8\x00\x00\x76\xe7\x76\xfd\x76\xf2\x59\xfa\x00\x00\x59\xf5\x76\xe1\x59\xf6\x76\xf1\x00\x00\x76\xea\x76\xf7\x59\xf2\x76\xcf\x76\xf9\x59\xe8\x76\xd7\x59\xeb\x59\xea\x00\x00\x59\xfb\x00\x00\x76\xd1\x76\xf3\x76\xf4\x59\xed\x59\xe9\x76\xdf\x00\x00\x59\xf4\x76\xda\x00\x00\x76\xf5\x59\xf0\x76\xed\x76\xfa\x76\xd4\x76\xd9\x76\xd3\x00\x00\x59\xef\x76\xe6\x7a\x86\x76\xd5\x59\xf3\x76\xde\x76\xf6\x59\xee\x76\xdb\x76\xd8\x76\xe9\x59\xf1\x59\xe7\x59\xfd\x76\xec\x76\xeb\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x76\xd0\x59\xec\x76\xf8\x76\xe0\x76\xe2\x00\x00\x76\xef\x76\xee\x76\xce\x59\xf7\x59\xf9\x76\xd6\x76\xdd\x76\xe5\x59\xf8\x76\xdc\x76\xe8\x76\xfb\x00\x00\x76\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x76\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x9a\x5c\x6c\x00\x00\x7a\x98\x7a\x83\x7a\x88\x7a\x81\x00\x00\x7a\x94\x7a\x72\x7a\x79\x00\x00\x7a\x92\x7a\x9c\x7a\x84\x00\x00\x7a\x76\x7a\x8a\x7a\x8f\x7a\x7a\x00\x00\x7a\x8c\x7a\x77\x00\x00\x00\x00\x7a\x7e\x7a\x7f\x5c\x6e\x7a\x93\x7a\x91\x00\x00\x7a\x73\x7a\x96\x00\x00\x7a\x97\x7a\x99\x5c\x72\x5c\x6a\x00\x00\x73\x9c\x7a\x7b\x7a\x8e\x7a\x7c\x5c\x67\x5c\x77\x7a\x95\x5c\x75\x5c\x71\x7a\x71\x5c\x69\x00\x00\x7a\x74\x5c\x76\x00\x00\x7a\x85\x7a\x70\x00\x00\x5c\x6f\x7a\x89\x7a\x78\x5c\x70\x7a\x82\x5c\x66\x59\xfc\x7a\x8b\x76\xe3\x7a\x75\x00\x00\x00\x00\x7a\x90\x5c\x6b\x7a\x8d\x5c\x68\x7a\x87\x5c\x73\x7a\x7d\x7a\x9b\x00\x00\x00\x00\x00\x00\x00\x00", /* 6980 */ "\x00\x00\x00\x00\x5c\x6d\x7b\x4e\x00\x00\x00\x00\x5c\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xf1\x7d\xef\x00\x00\x7e\x48\x7d\xed\x00\x00\x7e\x42\x5c\x65\x5e\xa7\x7d\xe9\x7e\x47\x00\x00\x7d\xee\x7d\xfc\x5e\xac\x5e\xa5\x00\x00\x7e\x45\x00\x00\x7d\xe7\x7e\x44\x00\x00\x5e\xb7\x7d\xf8\x7e\x4b\x5e\xb5\x7d\xf0\x5e\xa6\x7d\xf2\x7e\x43\x5e\xaf\x7d\xeb\x5e\xb3\x5e\xa9\x7d\xf4\x7d\xea\x7d\xe4\x00\x00\x7e\x41\x5e\xb0\x7e\x4a\x7d\xe5\x5e\xad\x00\x00\x7d\xfa\x00\x00\x5e\xae\x7d\xec\x7d\xf7\x7d\xf3\x7d\xf5\x00\x00\x5e\xa8\x7e\x49\x5e\xb6\x7d\xf6\x00\x00\x7e\x4c\x00\x00\x00\x00\x7d\xe6\x7d\xfb\x5e\xab\x5e\xb4\x5e\xb2\x7d\xe8\x7d\xfd\x5e\xb1\x00\x00\x00\x00\x5e\xaa\x7d\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xfd\x00\x00\x80\xf9\x80\xf5\x81\x4c\x81\x49\x60\xb5\x00\x00\x00\x00\x81\x50\x80\xfc\x60\xc0\x81\x46\x00\x00\x00\x00\x80\xf8\x81\x45\x60\xbd\x81\x59\x00\x00\x81\x56\x81\x48\x80\xf6\x00\x00\x00\x00\x81\x4d\x81\x4f\x60\xb9\x81\x43\x80\xfb", /* 6a00 */ "\x80\xf2\x60\xb6\x60\xbe\x00\x00\x81\x52\x60\xbf\x80\xf3\x81\x58\x81\x4b\x81\x51\x60\xbc\x00\x00\x00\x00\x81\x4e\x00\x00\x81\x55\x00\x00\x60\xc1\x00\x00\x60\xbb\x81\x47\x80\xf7\x81\x5a\x80\xf4\x81\x53\x60\xb8\x00\x00\x81\x41\x00\x00\x81\x42\x60\xb7\x60\xb4\x80\xfa\x60\xba\x00\x00\x60\xb3\x00\x00\x81\x54\x81\x57\x81\x44\x84\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x6d\x00\x00\x84\x69\x62\xa0\x00\x00\x00\x00\x62\x95\x62\x9a\x62\x96\x84\x77\x84\x83\x62\x94\x84\x6f\x84\x78\x81\x4a\x84\x79\x00\x00\x00\x00\x62\x9b\x00\x00\x84\x89\x62\x9f\x62\xa2\x84\x6b\x00\x00\x62\x9e\x00\x00\x84\x87\x84\x88\x84\x7d\x84\x7c\x84\x74\x00\x00\x00\x00\x84\x7e\x84\x86\x84\x85\x00\x00\x62\x99\x62\x97\x84\x76\x84\x73\x00\x00\x84\x70\x84\x84\x62\xa1\x84\x82\x62\x9d\x62\x9c\x00\x00\x84\x7b\x00\x00\x84\x6a\x84\x6c\x84\x6e\x84\x81\x84\x7a\x62\x98\x00\x00\x84\x71\x00\x00\x84\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf7\x87\x52", /* 6a80 */ "\x63\xf0\x87\x43\x00\x00\x87\x4e\x63\xf2\x87\x55\x00\x00\x87\x4a\x00\x00\x87\x45\x00\x00\x00\x00\x87\x56\x87\x41\x87\x4c\x00\x00\x63\xf9\x87\x51\x87\x57\x87\x4b\x63\xf1\x87\x4d\x87\x42\x63\xf8\x00\x00\x00\x00\x87\x54\x87\x47\x63\xf4\x00\x00\x87\x49\x87\x46\x63\xfa\x87\x48\x63\xf3\x63\xf6\x87\x50\x87\x44\x87\x53\x00\x00\x87\x4f\x00\x00\x00\x00\x00\x00\x65\x6e\x89\x95\x65\x73\x65\x74\x00\x00\x00\x00\x00\x00\x65\x6d\x89\x94\x00\x00\x89\x91\x89\x92\x65\x71\x89\x8c\x89\x90\x65\x70\x00\x00\x89\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x65\x72\x65\x6f\x00\x00\x89\x8b\x89\x8f\x89\x93\x00\x00\x00\x00\x00\x00\x8b\x7f\x8b\x7c\x8b\x86\x00\x00\x8b\x85\x8b\x83\x8b\x7d\x00\x00\x66\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x7e\x66\x5d\x63\xf5\x8b\x82\x66\x5c\x8b\x87\x8b\x81\x8b\x7b\x89\x8e\x00\x00\x00\x00\x00\x00\x66\x5b\x00\x00\x8b\x7a\x8d\x46\x00\x00\x8d\x45\x8b\x84\x66\xf2\x00\x00\x8d\x49\x8d\x4a\x8d\x44\x8d\x48\x00\x00\x8d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x81\x8d\x47\x67\x93\x67\x91\x8e\x7e\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x8e\x82\x00\x00\x8e\x7d\x8e\x7f\x67\x92\x00\x00\x00\x00\x00\x00\x8f\x75\x8f\x76\x67\xe1\x8f\x74\x00\x00\x00\x00\x00\x00\x90\x53\x68\x5b\x90\x51\x90\x52\x90\xbb\x00\x00\x00\x00\x68\xa2\x91\x45\x91\x43\x91\x44\x91\x46\x00\x00\x00\x00\x00\x00\x91\xab\x00\x00\x4c\xcd\x4e\x59\x00\x00\x51\x5c\x00\x00\x6c\x6b\x00\x00\x00\x00\x6e\x67\x00\x00\x00\x00\x00\x00\x70\x99\x70\x9b\x00\x00\x70\x9a\x00\x00\x70\x9c\x57\xc2\x73\xbb\x70\x9d\x00\x00\x73\xba\x73\xbc\x73\xbd\x77\x41\x5a\x42\x77\x42\x77\x44\x5a\x43\x5a\x41\x77\x43\x00\x00\x7a\xa2\x7a\xa0\x7a\x9f\x00\x00\x7a\x9e\x7a\x9d\x5c\x78\x7a\xa1\x5e\xb8\x7e\x4d\x7e\x4f\x5e\xb9\x7e\x4e\x60\xc3\x00\x00\x60\xc2\x81\x5b\x00\x00\x00\x00\x84\x8b\x84\x8a\x84\x8c\x00\x00\x00\x00\x62\xa3\x00\x00\x87\x58\x63\xfb\x00\x00\x89\x96\x65\x75\x8b\x88\x67\xe2\x4c\xce\x4d\x7f\x4e\x5a\x4f\x84\x51\x5d\x51\x5e\x00\x00\x00\x00\x52\xf0\x00\x00\x00\x00\x70\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x79\x00\x00\x00\x00\x00\x00\x81\xda\x62\xa4\x65\x76\x4c\xcf\x00\x00\x4e\x5b\x00\x00\x00\x00\x6c\x6d\x51\x5f", /* 6b80 */ "\x6c\x6c\x00\x00\x6e\x68\x52\xf1\x6e\x69\x00\x00\x52\xf2\x00\x00\x70\xa0\x55\x53\x55\x52\x00\x00\x73\xc2\x73\xc0\x73\xc1\x73\xbf\x00\x00\x73\xbe\x00\x00\x00\x00\x77\x45\x77\x48\x5a\x45\x77\x46\x5a\x44\x77\x47\x00\x00\x7a\xa3\x00\x00\x00\x00\x7e\x50\x7e\x51\x7e\x52\x00\x00\x81\x5e\x81\x5d\x60\xc4\x81\x5c\x81\x5f\x84\x8d\x00\x00\x00\x00\x84\x8e\x84\x8f\x00\x00\x87\x59\x63\xfc\x65\x77\x8b\x89\x00\x00\x67\x94\x69\x60\x00\x00\x52\xf3\x6e\x6a\x55\x54\x00\x00\x00\x00\x57\xc3\x00\x00\x5a\x46\x77\x49\x00\x00\x5c\x7b\x5c\x7a\x00\x00\x00\x00\x7e\x53\x7e\x54\x60\xc5\x60\xc6\x84\x91\x84\x90\x89\x97\x90\x54\x4c\xd0\x69\x61\x4d\x81\x00\x00\x4f\x85\x6a\xc8\x00\x00\x52\xf4\x5c\x7c\x4c\xd1\x00\x00\x6e\x6b\x52\xf5\x6e\x6c\x00\x00\x63\xfd\x4c\xd2\x00\x00\x00\x00\x6c\x6e\x00\x00\x6e\x6d\x00\x00\x70\xa5\x70\xa4\x70\xa2\x00\x00\x70\xa1\x70\xa6\x70\xa3\x00\x00\x00\x00\x57\xc4\x57\xc5\x00\x00\x00\x00\x5a\x47\x77\x4a\x00\x00\x77\x4b\x77\x4c\x00\x00\x00\x00\x00\x00\x7a\xa8\x7a\xa9\x7a\xa7\x00\x00\x7a\xa5\x7a\xa6\x5c\x7d\x7e\x55\x81\x62", /* 6c00 */ "\x81\x61\x81\x60\x81\x63\x84\x93\x84\x92\x62\xa5\x84\x94\x00\x00\x64\x41\x87\x5a\x00\x00\x89\x98\x8b\x8a\x8f\x77\x00\x00\x4c\xd3\x4d\x83\x4d\x82\x00\x00\x51\x60\x69\x62\x69\x7f\x4e\x5c\x00\x00\x69\xd7\x6a\xc9\x6a\xca\x51\x61\x00\x00\x6c\x6f\x00\x00\x52\xf6\x6e\x6e\x6e\x6f\x00\x00\x55\x55\x55\x59\x70\xa7\x55\x58\x55\x56\x55\x57\x00\x00\x73\xc3\x57\xc6\x5a\x4a\x00\x00\x5a\x48\x5a\x49\x77\x4d\x00\x00\x00\x00\x5e\xba\x4c\xd4\x00\x00\x69\x81\x00\x00\x4d\x84\x00\x00\x00\x00\x69\x84\x00\x00\x00\x00\x4d\x87\x69\x83\x4d\x86\x4d\x85\x4f\x86\x69\x82\x00\x00\x00\x00\x69\xd8\x00\x00\x00\x00\x00\x00\x69\xdc\x69\xde\x69\xdf\x4e\x66\x4e\x67\x69\xdb\x4e\x62\x00\x00\x69\xd9\x00\x00\x69\xdd\x4e\x63\x00\x00\x4e\x5e\x00\x00\x4e\x5f\x00\x00\x4e\x65\x69\xda\x4e\x5d\x4f\x87\x4e\x60\x4e\x61\x4e\x64\x00\x00\x00\x00\x00\x00\x6a\xdb\x6a\xd9\x6a\xcc\x4f\x93\x6a\xd3\x4f\x8e\x6a\xcd\x00\x00\x6a\xd5\x00\x00\x6a\xd2\x4f\x91\x6a\xd1\x4f\x98\x6a\xda\x4f\x9a\x00\x00\x4f\x9c\x00\x00\x6a\xcb\x00\x00\x4f\x8f\x6a\xdc\x00\x00\x4f\x96\x4f\x99\x00\x00", /* 6c80 */ "\x6c\x87\x4f\x89\x4f\xa0\x4f\x97\x6a\xce\x4f\x8c\x4f\x9b\x6a\xd6\x4f\x8a\x4f\x8b\x6c\x85\x6a\xcf\x4f\x92\x4f\x9d\x6a\xdd\x6a\xd0\x4f\x90\x00\x00\x4f\x95\x6c\x70\x4f\x9e\x6a\xd7\x4f\x94\x00\x00\x4f\x9f\x4f\x88\x6a\xd4\x4f\x8d\x6a\xd8\x6c\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6d\x51\x7d\x6c\x77\x51\x74\x00\x00\x6c\x8d\x51\x65\x00\x00\x51\x68\x6c\x84\x00\x00\x6c\x75\x6c\x79\x51\x70\x51\x72\x6c\x7c\x51\x79\x51\x6b\x51\x69\x51\x6a\x51\x78\x6c\x89\x51\x73\x6c\x7b\x6c\x7d\x51\x71\x51\x76\x6c\x7e\x6c\x8c\x00\x00\x52\xf7\x51\x7c\x00\x00\x51\x66\x6c\x8b\x00\x00\x6c\x8f\x6c\x7a\x6c\x91\x6c\x82\x51\x6f\x6c\x76\x51\x6e\x51\x81\x51\x75\x00\x00\x6c\x74\x6e\x78\x51\x7b\x51\x7f\x6c\x83\x6c\x88\x00\x00\x51\x82\x51\x7a\x51\x6c\x51\x62\x00\x00\x51\x67\x00\x00\x6c\x78\x51\x63\x6c\x90\x00\x00\x6c\x72\x6c\x71\x6c\x7f\x6c\x73\x51\x7e\x55\x5a\x51\x77\x6c\x81\x51\x64\x00\x00\x53\x49\x00\x00\x00\x00\x00\x00\x6c\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x6e\x7f\x6e\x83\x00\x00\x6e\x86\x6e\x7a\x00\x00\x00\x00\x6e\x89\x6e\x8c\x6e\x8e\x6e\x77\x52\xf8\x52\xfd\x70\xac\x53\x50\x6e\x87\x6e\x8f\x6e\x7e\x6e\x76\x00\x00\x00\x00\x00\x00\x70\xc7\x53\x43\x6e\x84\x6e\x7b\x6e\x7d\x53\x48\x00\x00\x6e\x81\x53\x42\x6e\x73\x6e\x8a\x00\x00\x6e\x8d\x00\x00\x00\x00\x52\xfc\x00\x00\x53\x4b\x6e\x70\x53\x4d\x52\xfa\x53\x51\x6e\x8b\x6e\x72\x53\x4e\x70\xc1\x6c\x8a\x53\x41\x52\xf9\x6e\x79\x6e\x71\x53\x4f\x53\x47\x6e\x85\x53\x4c\x53\x4a\x6e\x7c\x53\x44\x6e\x74\x53\x45\x53\x46\x6e\x75\x6e\x88\x52\xfb\x6e\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xaf\x55\x62\x55\x67\x00\x00\x00\x00\x00\x00\x70\xb8\x70\xbe\x70\xba\x70\xad\x70\xb0\x70\xa9\x70\xaa\x55\x6e\x55\x5f\x70\xb9\x70\xc2\x55\x69\x55\x5b\x00\x00\x55\x64\x70\xb1\x55\x66\x70\xb2\x70\xbc\x00\x00\x00\x00\x00\x00\x55\x68\x70\xcb\x70\xab\x55\x61\x55\x60\x55\x6c\x70\xa8\x70\xc9\x70\xbd\x70\xca\x70\xc4\x70\xb6", /* 6d80 */ "\x70\xc5\x00\x00\x70\xbf\x70\xc8\x70\xc6\x55\x6d\x70\xb7\x55\x5e\x55\x5d\x55\x65\x55\x6b\x70\xc3\x55\x6a\x70\xb4\x57\xc7\x00\x00\x70\xcc\x70\xb3\x70\xae\x55\x63\x55\x6f\x55\x5c\x00\x00\x70\xbb\x70\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe9\x73\xc5\x73\xc9\x00\x00\x57\xd6\x57\xd4\x00\x00\x00\x00\x57\xcb\x73\xc7\x73\xc6\x57\xdf\x00\x00\x73\xcc\x57\xd9\x00\x00\x73\xde\x73\xea\x57\xc8\x73\xdb\x73\xd4\x57\xeb\x73\xc4\x00\x00\x73\xe0\x00\x00\x57\xe8\x57\xdc\x57\xe7\x57\xd2\x73\xd0\x73\xe2\x73\xda\x57\xd3\x57\xcd\x73\xe8\x00\x00\x73\xe1\x73\xe3\x57\xd5\x57\xdd\x73\xe5\x73\xce\x73\xdf\x73\xd3\x73\xe7\x57\xe2\x57\xca\x57\xe0\x73\xd8\x73\xd6\x73\xd7\x57\xd7\x73\xd2\x73\xd1\x57\xcc\x73\xcb\x73\xe9\x57\xce\x73\xd5\x57\xec\x00\x00\x57\xe6\x73\xca\x57\xe3\x57\xe1\x57\xea\x73\xdc\x57\xe5\x70\xb5\x73\xdd\x57\xe4\x73\xe4\x57\xc9\x73\xd9\x57\xdb\x73\xcd\x57\xda\x00\x00\x57\xd8\x57\xd0\x57\xcf\x77\x4e\x73\xe6\x00\x00\x00\x00", /* 6e00 */ "\x73\xcf\x00\x00\x00\x00\x77\x63\x00\x00\x57\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x67\x57\xde\x5a\x55\x77\x5d\x5a\x63\x00\x00\x77\x51\x5a\x52\x5a\x4e\x77\x6f\x5a\x54\x5a\x58\x5a\x53\x5a\x5c\x77\x73\x77\x6a\x00\x00\x00\x00\x77\x58\x5a\x61\x5a\x5b\x77\x64\x5a\x4b\x77\x70\x77\x69\x5a\x4f\x77\x5e\x5a\x5e\x77\x7b\x77\x7c\x00\x00\x5a\x4c\x77\x6e\x5a\x60\x77\x62\x77\x54\x77\x55\x5a\x64\x77\x59\x77\x60\x77\x5a\x00\x00\x5a\x62\x5a\x6a\x77\x56\x77\x4f\x77\x50\x00\x00\x77\x52\x5a\x51\x77\x5f\x00\x00\x5a\x5f\x5a\x68\x00\x00\x00\x00\x77\x61\x77\x79\x77\x71\x5a\x4d\x77\x77\x5a\x59\x00\x00\x5a\x57\x00\x00\x77\x7d\x5a\x56\x77\x67\x77\x5b\x77\x65\x5a\x6d\x77\x6b\x77\x68\x77\x57\x5a\x69\x77\x75\x77\x72\x77\x7a\x5a\x50\x77\x66\x5a\x6c\x00\x00\x77\x6d\x00\x00\x00\x00\x5a\x5a\x5a\x5d\x00\x00\x77\x6c\x5a\x6b\x77\x5c\x73\xc8\x00\x00\x00\x00\x77\x76\x77\x74\x77\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6e80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x53\x5a\x66\x00\x00\x00\x00\x00\x00\x7a\xc8\x7a\xc7\x7a\xad\x5c\x84\x00\x00\x7a\xc6\x7a\xb0\x7a\xb1\x00\x00\x5c\x8e\x7a\xcf\x5c\x89\x7a\xc5\x00\x00\x7a\xaa\x5c\x8f\x5c\x85\x7a\xb9\x7a\xaf\x7a\xb2\x7a\xca\x5c\x7e\x7a\xd1\x7a\xc9\x5c\x88\x7a\xbe\x5c\x93\x00\x00\x00\x00\x5c\x92\x5c\x8c\x00\x00\x00\x00\x7a\xd0\x5c\x7f\x7a\xbc\x7a\xb3\x7a\xc0\x7a\xcc\x5c\x94\x00\x00\x5c\x82\x7a\xbb\x91\xc7\x7a\xb4\x5c\x8b\x00\x00\x5c\x8a\x7a\xb7\x7a\xc1\x7a\xcb\x7a\xae\x7a\xb8\x5c\x83\x7a\xc2\x5c\x90\x5c\x87\x7a\xb5\x5c\x86\x7a\xac\x7a\xba\x7a\xce\x5a\x65\x5e\xd6\x7a\xbd\x7e\x56\x7a\xbf\x7a\xcd\x5c\x8d\x7a\xb6\x5c\x81\x5c\x91\x60\xd8\x7a\xab\x00\x00\x7a\xc4\x00\x00\x00\x00\x00\x00\x7a\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x72\x5e\xd3\x7e\x67\x7e\x6c\x5e\xc8\x00\x00\x7e\x58\x5e\xd5\x00\x00\x5e\xbf\x7e\x57\x7e\x78\x5e\xd7\x7e\x5b\x7e\x6b\x00\x00\x7e\x5d\x7e\x7b\x7e\x77\x5e\xbd\x5e\xc7", /* 6f00 */ "\x81\x7d\x5e\xd4\x5e\xc5\x7e\x59\x00\x00\x7e\x76\x5e\xc9\x7e\x73\x7e\x81\x7e\x5f\x7e\x68\x00\x00\x00\x00\x7e\x7e\x7e\x74\x5e\xc4\x00\x00\x00\x00\x7e\x66\x5e\xbe\x5e\xbc\x5e\xce\x00\x00\x00\x00\x7e\x64\x7e\x61\x7e\x62\x00\x00\x7e\x7a\x00\x00\x7e\x7f\x7e\x7d\x5e\xc2\x7e\x82\x5e\xc6\x5e\xcd\x00\x00\x7e\x5a\x81\x65\x7e\x63\x00\x00\x5e\xc0\x5e\xd2\x5e\xcf\x5e\xc3\x7e\x6d\x7e\x5e\x5e\xd0\x7e\x6f\x5e\xca\x5e\xcc\x5e\xbb\x00\x00\x7e\x71\x7e\x69\x7e\x5c\x5e\xcb\x7e\x79\x7e\x7c\x7e\x65\x7e\x70\x00\x00\x5e\xc1\x60\xc7\x7e\x6e\x81\x64\x00\x00\x7e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x60\x81\x6e\x81\x78\x60\xca\x81\x77\x81\x84\x60\xcc\x81\x75\x00\x00\x81\x79\x60\xd7\x00\x00\x81\x70\x60\xcf\x00\x00\x81\x7c\x84\x9c\x60\xdb\x60\xda\x81\x7e\x81\x6d\x81\x89\x60\xd5\x00\x00\x60\xcb\x81\x82\x00\x00\x81\x86\x81\x8b\x81\x7f\x81\x73\x60\xce\x60\xd1\x60\xd9\x60\xd4\x00\x00\x81\x76\x7e\x6a\x00\x00\x00\x00\x81\x72\x81\x8a\x60\xd0\x00\x00\x60\xd3\x81\x8c\x60\xc8\x81\x81\x81\x66\x81\x87", /* 6f80 */ "\x64\x4a\x00\x00\x81\x74\x00\x00\x60\xc9\x81\x6f\x60\xcd\x81\x67\x5e\xd1\x81\x6b\x00\x00\x81\x85\x81\x6c\x81\x6a\x60\xd2\x00\x00\x81\x83\x00\x00\x81\x69\x81\x7b\x81\x7a\x81\x88\x81\x71\x60\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x9f\x00\x00\x62\xb2\x62\xa8\x84\xab\x84\x97\x62\xaa\x84\xa3\x62\xb1\x62\xac\x84\xa1\x87\x5c\x84\xa7\x84\xad\x84\xa6\x84\x95\x84\xa4\x84\xaf\x84\xb1\x62\xa7\x84\xb0\x62\xad\x62\xb3\x00\x00\x62\xb0\x00\x00\x84\xaa\x62\xaf\x84\xa5\x00\x00\x84\x99\x84\x9e\x00\x00\x84\xa9\x62\xae\x62\xab\x62\xa6\x62\xa9\x84\x9d\x00\x00\x81\x68\x84\x98\x84\x9b\x84\xac\x84\xa0\x84\x96\x87\x5b\x84\xae\x84\x9a\x84\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x87\x5e\x64\x4e\x00\x00\x00\x00\x64\x42\x00\x00\x00\x00\x64\x46\x87\x60\x87\x66\x87\x64\x64\x44\x64\x45\x64\x4c\x87\x67\x87\x5f\x64\x47\x00\x00\x87\x63\x87\x62\x87\x68\x64\x4d\x00\x00\x64\x48\x64\x4b\x87\x61\x64\x4f\x64\x49\x64\x50\x64\x43\x87\x65\x00\x00\x87\x5d\x00\x00\x00\x00\x89\xa5\x00\x00\x00\x00\x65\x7c\x89\xa2\x89\xa4\x00\x00\x65\x7a\x89\xa0", /* 7000 */ "\x89\xa1\x89\x9c\x00\x00\x00\x00\x84\xa2\x89\x9d\x65\x7b\x89\x99\x00\x00\x65\x78\x89\xa6\x65\x79\x89\x9a\x89\x9b\x89\x9f\x65\x7e\x00\x00\x65\x7d\x00\x00\x00\x00\x89\x9e\x66\x64\x8b\x8e\x8b\x94\x66\x65\x8b\x8b\x66\x62\x66\x5f\x8b\x96\x66\x63\x00\x00\x66\x60\x8b\x8d\x8b\x90\x8b\x91\x8b\x92\x8b\x95\x00\x00\x89\xa3\x8b\x8c\x66\x61\x8b\x93\x8b\x97\x8b\x8f\x00\x00\x00\x00\x00\x00\x8d\x4d\x66\xf4\x8d\x50\x66\xf5\x8d\x58\x8d\x4f\x8d\x4c\x00\x00\x8d\x4e\x8d\x52\x8d\x55\x8d\x54\x8d\x57\x8d\x4b\x00\x00\x66\xf3\x8d\x53\x8d\x56\x8d\x59\x8d\x51\x8e\x83\x8e\x84\x8e\x88\x8e\x89\x00\x00\x8e\x86\x8e\x87\x8e\x85\x00\x00\x67\x95\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe3\x8f\x7b\x00\x00\x00\x00\x8f\x78\x8f\x79\x8f\x7a\x67\xe4\x00\x00\x90\x56\x90\x55\x00\x00\x90\xbe\x68\x81\x90\xbc\x90\xbf\x90\xbd\x91\x47\x68\xa3\x68\xb1\x91\x93\x91\x7d\x00\x00\x91\x92\x91\xc0\x91\xc1\x4c\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x68\x69\xe0\x00\x00\x00\x00\x6a\xde\x00\x00\x4f\xa1\x00\x00\x4f\xa4\x00\x00\x6a\xdf\x00\x00\x4f\xa2\x4f\xa3\x00\x00\x00\x00", /* 7080 */ "\x00\x00\x00\x00\x6c\x9a\x6c\x9c\x6c\x97\x6c\x94\x6c\x96\x00\x00\x00\x00\x00\x00\x51\x86\x00\x00\x00\x00\x00\x00\x51\x84\x00\x00\x00\x00\x6c\x98\x51\x85\x6c\x95\x6c\x92\x51\x83\x6c\x99\x00\x00\x6c\x93\x51\x87\x6c\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x91\x00\x00\x6e\x95\x00\x00\x00\x00\x53\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x98\x00\x00\x53\x52\x53\x55\x53\x57\x53\x59\x53\x56\x6e\x94\x6e\x93\x00\x00\x53\x54\x6e\x96\x6e\x97\x00\x00\x6e\x90\x53\x58\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x6e\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xda\x70\xdb\x70\xdc\x55\x74\x00\x00\x55\x70\x70\xd1\x00\x00\x70\xd9\x70\xde\x55\x75\x00\x00\x70\xcf\x70\xd5\x70\xce\x70\xd8\x00\x00\x00\x00\x70\xd4\x55\x71\x55\x73\x70\xdd\x00\x00\x70\xcd\x70\xd0\x70\xd6\x00\x00\x70\xd7\x70\xdf\x70\xd3\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf1\x73\xf1\x00\x00\x00\x00\x73\xf3\x73\xef\x00\x00\x73\xfb\x73\xed\x73\xfa\x57\xed\x73\xeb\x77\x82\x73\xf5\x57\xf0\x00\x00\x73\xf6", /* 7100 */ "\x73\xf9\x00\x00\x73\xfd\x00\x00\x73\xf2\x00\x00\x73\xf7\x00\x00\x00\x00\x57\xee\x57\xef\x73\xfc\x73\xf0\x73\xec\x74\x41\x00\x00\x73\xf4\x00\x00\x00\x00\x73\xf8\x00\x00\x00\x00\x00\x00\x73\xee\x00\x00\x5a\x6e\x5a\x6f\x77\x8c\x5a\x75\x00\x00\x77\x7f\x77\x89\x77\x7e\x5a\x72\x77\x87\x77\x85\x00\x00\x77\x86\x5a\x70\x00\x00\x77\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x83\x77\x81\x5a\x71\x77\x84\x77\x88\x00\x00\x00\x00\x00\x00\x5a\x73\x00\x00\x00\x00\x00\x00\x77\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xd7\x7a\xde\x7a\xe0\x7a\xe6\x00\x00\x5c\xa1\x7a\xd2\x00\x00\x5c\x99\x00\x00\x7a\xe1\x5c\x9e\x7a\xe7\x5c\x95\x00\x00\x7a\xe4\x00\x00\x7a\xd4\x7a\xe5\x7a\xd3\x00\x00\x5c\xa3\x00\x00\x7a\xdf\x5c\x96\x7a\xe8\x00\x00\x5c\x9b\x7a\xd8\x5c\xa0\x7a\xe3\x7a\xd6\x7a\xdd\x7a\xd9\x7a\xd5\x5c\x98\x5c\x9f\x5c\x9d\x5c\x9a\x5c\xa2\x5c\x97\x7a\xdc\x00\x00\x5c\x9c\x00\x00\x5a\x74\x00\x00\x7a\xe2\x00\x00\x7a\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xdb\x00\x00\x00\x00\x7e\x8a\x00\x00\x5e\xda\x00\x00\x00\x00", /* 7180 */ "\x7e\x86\x7e\x8c\x7e\x88\x00\x00\x5e\xdc\x7e\x87\x7e\x8b\x7e\x83\x00\x00\x7e\x85\x5e\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x89\x7e\x84\x00\x00\x5e\xdd\x00\x00\x5e\xd8\x00\x00\x00\x00\x7e\x8d\x00\x00\x5e\xd9\x81\x92\x81\x8f\x81\x9b\x81\x95\x81\x97\x60\xdc\x81\x91\x81\x99\x00\x00\x00\x00\x81\x98\x81\x96\x00\x00\x81\x9c\x60\xdf\x81\x93\x81\x9a\x00\x00\x60\xdd\x00\x00\x00\x00\x81\x8e\x81\x90\x60\xde\x81\x8d\x81\x9d\x00\x00\x81\x94\x00\x00\x00\x00\x84\xb5\x62\xba\x00\x00\x00\x00\x84\xc0\x84\xbe\x62\xb4\x84\xb4\x84\xb7\x84\xb8\x84\xb3\x62\xbe\x62\xbf\x84\xb2\x84\xc1\x84\xbc\x62\xb8\x62\xb5\x84\xbb\x84\xb9\x00\x00\x00\x00\x62\xbb\x84\xbd\x62\xb6\x00\x00\x62\xb7\x00\x00\x84\xba\x62\xb9\x84\xb6\x00\x00\x84\xbf\x62\xbc\x84\xc2\x84\xc3\x62\xbd\x00\x00\x00\x00\x64\x52\x64\x59\x87\x69\x87\x6f\x00\x00\x87\x6d\x64\x55\x64\x54\x64\x51\x87\x6b\x00\x00\x00\x00\x00\x00\x64\x57\x64\x56\x64\x53\x00\x00\x87\x6e\x87\x6a\x87\x6c\x00\x00\x64\x58\x00\x00\x00\x00\x00\x00\x65\x83\x89\xa9\x00\x00\x65\x7f\x65\x81\x89\xab\x65\x82\x89\xa8", /* 7200 */ "\x00\x00\x89\xa7\x8b\x9b\x89\xaa\x00\x00\x8b\x9c\x66\x66\x8b\x9a\x00\x00\x00\x00\x8b\x99\x00\x00\x8b\x98\x66\x67\x00\x00\x00\x00\x66\xf6\x00\x00\x00\x00\x8d\x5a\x8d\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x8c\x8e\x8b\x67\x96\x00\x00\x8e\x8a\x8f\x7c\x8f\x7d\x00\x00\x00\x00\x90\x57\x90\xc0\x00\x00\x00\x00\x91\x48\x91\xac\x68\xc5\x91\xb6\x4c\xd6\x00\x00\x51\x88\x51\x89\x00\x00\x00\x00\x53\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x64\x5a\x4c\xd7\x00\x00\x51\x8a\x55\x76\x5c\xa4\x4c\xd8\x00\x00\x57\xf2\x5e\xde\x69\x63\x00\x00\x6e\x99\x70\xe0\x00\x00\x7e\x8e\x00\x00\x64\x5b\x4c\xd9\x51\x8b\x6e\x9a\x6e\x9b\x77\x8d\x5a\x76\x00\x00\x00\x00\x7a\xe9\x00\x00\x00\x00\x5c\xa5\x7e\x8f\x00\x00\x00\x00\x60\xe0\x00\x00\x66\x68\x4c\xda\x77\x8e\x4c\xdb\x00\x00\x4e\x6a\x69\xe1\x4e\x69\x4f\xa7\x4f\xa6\x4f\xa5\x6a\xe0\x00\x00\x00\x00\x00\x00\x51\x8c\x00\x00\x51\x8d\x6c\x9d\x00\x00\x6e\x9c\x00\x00\x6e\x9f\x53\x5d\x6e\x9d\x00\x00\x53\x5c\x6e\x9e\x53\x5e\x00\x00\x70\xe3\x70\xe2\x70\xe1\x55\x77\x00\x00\x74\x43\x74\x44\x57\xf3\x74\x42\x74\x45", /* 7280 */ "\x5a\x78\x57\xf4\x00\x00\x00\x00\x5a\x77\x77\x92\x77\x91\x00\x00\x77\x8f\x77\x90\x00\x00\x77\x93\x7a\xeb\x7a\xea\x7a\xee\x00\x00\x7a\xed\x7a\xec\x5e\xdf\x7e\x92\x00\x00\x7e\x91\x5e\xe0\x7e\x90\x81\x9e\x00\x00\x81\x9f\x60\xe1\x00\x00\x84\xc4\x84\xc5\x00\x00\x00\x00\x8b\xa1\x66\x69\x8b\xa0\x8b\x9f\x8b\x9d\x8b\x9e\x67\x97\x8d\x5c\x8f\x7e\x91\x49\x00\x00\x4c\xdc\x00\x00\x69\x85\x4d\x88\x69\x86\x00\x00\x00\x00\x00\x00\x69\xe2\x69\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe6\x00\x00\x00\x00\x6a\xe2\x00\x00\x6a\xe1\x51\x8e\x6a\xe5\x4f\xa9\x6a\xe3\x4f\xa8\x6a\xe7\x6a\xe4\x00\x00\x00\x00\x6c\xa1\x6e\xa0\x6c\x9f\x6c\xa6\x00\x00\x51\x8f\x00\x00\x51\x92\x6c\xa7\x6c\xa3\x00\x00\x6c\xa4\x00\x00\x6c\x9e\x51\x91\x6c\xa0\x51\x90\x6c\xa5\x00\x00\x6c\xa2\x00\x00\x00\x00\x6e\xa4\x53\x60\x53\x61\x00\x00\x6e\xa7\x6e\xa1\x00\x00\x6e\xa6\x00\x00\x6e\xa2\x53\x5f\x6e\xa5\x6e\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xe9\x70\xe6\x00\x00\x70\xe8\x55\x7c\x55\x7b\x55\x79\x70\xe5\x70\xea\x55\x78\x55\x7a\x70\xe7\x74\x4d", /* 7300 */ "\x70\xe4\x70\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x48\x74\x4c\x00\x00\x74\x4b\x77\x95\x77\xa0\x00\x00\x00\x00\x74\x4e\x00\x00\x74\x49\x77\x94\x57\xf8\x00\x00\x00\x00\x57\xf7\x74\x47\x74\x4a\x57\xf9\x00\x00\x57\xf6\x57\xf5\x74\x46\x74\x4f\x00\x00\x00\x00\x00\x00\x77\x97\x77\x9e\x00\x00\x5a\x7a\x77\x9d\x77\x9a\x00\x00\x5a\x7c\x00\x00\x00\x00\x00\x00\x77\x9c\x00\x00\x00\x00\x77\x96\x77\x98\x77\x9b\x77\x99\x5a\x7b\x77\x9f\x5a\x79\x5c\xa6\x00\x00\x00\x00\x7a\xf2\x7a\xf1\x7a\xef\x00\x00\x5c\xa9\x5c\xa8\x7a\xf3\x00\x00\x7a\xf0\x7e\x93\x5e\xe1\x5c\xa7\x00\x00\x00\x00\x00\x00\x7a\xf5\x7a\xf4\x00\x00\x7e\x96\x7e\x94\x60\xe2\x00\x00\x5e\xe2\x7e\x95\x81\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe3\x81\xa0\x81\xa9\x81\xa8\x81\xa6\x00\x00\x81\xa5\x81\xa2\x81\xa3\x81\xa4\x81\xa7\x81\xaa\x00\x00\x00\x00\x84\xca\x84\xc7\x84\xc8\x62\xc0\x84\xc6\x84\xcc\x84\xcb\x84\xc9\x00\x00\x87\x71\x87\x72\x64\x5c\x00\x00\x64\x5d\x87\x70\x00\x00\x65\x85\x89\xac\x65\x84\x66\x6a\x00\x00\x66\x6b\x66\xf7\x8d\x5e\x8d\x5d\x8e\x8d\x8f\x7f", /* 7380 */ "\x67\xe5\x90\x59\x90\x58\x90\x5a\x4d\x89\x6e\xa8\x55\x7d\x57\xfa\x74\x50\x4d\x8a\x69\x87\x4c\xdd\x00\x00\x00\x00\x69\xe4\x00\x00\x00\x00\x00\x00\x6a\xec\x6a\xea\x6a\xeb\x6a\xe8\x4f\xaa\x6a\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xaf\x00\x00\x51\x95\x6c\xad\x6c\xa9\x6c\xac\x00\x00\x6c\xa8\x51\x97\x6c\xab\x00\x00\x51\x94\x51\x93\x00\x00\x51\x96\x6c\xae\x6c\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x53\x65\x53\x68\x6e\xb0\x6e\xaf\x6e\xae\x53\x62\x6e\xb7\x6e\xad\x00\x00\x53\x64\x70\xf0\x00\x00\x6e\xb4\x6e\xb2\x53\x67\x00\x00\x6e\xaa\x6e\xb5\x00\x00\x6e\xac\x6e\xb6\x6e\xb3\x6e\xab\x00\x00\x53\x63\x6e\xb8\x6e\xa9\x53\x66\x00\x00\x00\x00\x00\x00\x00\x00\x70\xf5\x70\xec\x70\xf7\x00\x00\x70\xef\x70\xfa\x70\xfb\x70\xed\x70\xf9\x70\xf6\x70\xf4\x70\xf8\x55\x84\x00\x00\x55\x82\x00\x00\x00\x00\x70\xf2\x00\x00\x70\xee\x00\x00\x70\xf1\x70\xfc\x70\xf3\x55\x83\x6e\xb1\x00\x00\x55\x7e\x55\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x5e\x74\x53\x74\x51\x00\x00\x74\x52\x00\x00\x74\x59\x00\x00\x74\x5a\x74\x56\x58\x42\x74\x5b", /* 7400 */ "\x74\x58\x74\x55\x00\x00\x57\xfd\x74\x54\x57\xfb\x58\x41\x74\x57\x74\x5f\x55\x7f\x57\xfc\x74\x5d\x74\x5c\x58\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xa5\x00\x00\x00\x00\x00\x00\x77\xa6\x5a\x87\x00\x00\x77\xac\x00\x00\x00\x00\x77\xae\x77\xa7\x5a\x81\x77\xab\x77\xaa\x5a\x82\x5a\x88\x00\x00\x5a\x89\x77\xad\x5a\x7e\x77\xa4\x77\xa2\x77\xa8\x77\xa1\x5a\x86\x77\xa3\x77\xa9\x77\xaf\x5a\x7f\x5a\x85\x5a\x83\x5a\x84\x00\x00\x00\x00\x00\x00\x5a\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb0\x7a\xfc\x5c\xaf\x7b\x43\x00\x00\x7a\xf6\x00\x00\x7b\x44\x00\x00\x00\x00\x00\x00\x7a\xf7\x7a\xf8\x00\x00\x7b\x45\x7b\x42\x7a\xfd\x7b\x41\x7a\xfa\x7a\xf9\x00\x00\x7b\x46\x5c\xac\x00\x00\x7a\xfb\x00\x00\x5c\xb1\x5c\xab\x5c\xb2\x5c\xb3\x00\x00\x5c\xae\x5c\xad\x00\x00\x00\x00\x7e\x97\x5e\xe4\x5e\xe3\x00\x00\x00\x00\x7e\x9c\x00\x00\x60\xe4\x5e\xe5\x00\x00\x00\x00\x5e\xe7\x7e\x9d\x5c\xaa\x5e\xe6\x7e\x99\x7e\x9b\x7e\x98\x00\x00\x7e\x9a\x00\x00\x00\x00\x00\x00\x81\xb4\x00\x00\x00\x00\x81\xb3\x81\xb0\x60\xe7\x84\xcd", /* 7480 */ "\x60\xe8\x81\xaf\x00\x00\x60\xe6\x00\x00\x81\xb1\x81\xae\x81\xab\x81\xb2\x81\xac\x81\xad\x60\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x87\x76\x00\x00\x84\xd1\x00\x00\x84\xd0\x84\xd2\x00\x00\x87\x73\x62\xc3\x00\x00\x84\xce\x00\x00\x62\xc1\x00\x00\x62\xc5\x62\xc4\x84\xcf\x84\xd3\x00\x00\x62\xc2\x00\x00\x87\x7a\x64\x60\x65\x86\x64\x61\x64\x5e\x87\x77\x87\x75\x00\x00\x87\x78\x00\x00\x87\x7b\x64\x5f\x87\x79\x87\x74\x00\x00\x00\x00\x89\xaf\x89\xb2\x8b\xa4\x89\xad\x00\x00\x8d\x5f\x89\xb3\x00\x00\x66\x6c\x89\xb1\x65\x87\x89\xae\x89\xb0\x89\xb4\x8b\xa5\x00\x00\x8b\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x66\x6d\x8b\xa2\x00\x00\x00\x00\x00\x00\x66\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x67\x99\x8f\x82\x67\x98\x8f\x84\x8f\x81\x8f\x83\x68\x5c\x90\xc1\x4d\x8b\x6c\xb0\x70\xfd\x71\x41\x58\x44\x7b\x47\x62\xc6\x66\x6e\x67\xe6\x90\xc2\x4d\x8c\x00\x00\x6c\xb1\x46\xf8\x00\x00\x00\x00\x6e\xb9\x00\x00\x6e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x42\x71\x43\x58\x45\x58\x46\x00\x00\x00\x00\x00\x00\x77\xb0\x00\x00\x7b\x4a\x7b\x49\x7b\x48", /* 7500 */ "\x7e\x9e\x00\x00\x7e\x9f\x7e\xa0\x5e\xe8\x00\x00\x00\x00\x81\xb6\x81\xb5\x00\x00\x00\x00\x84\xd4\x62\xc7\x62\xc8\x00\x00\x87\x7f\x87\x7c\x87\x7d\x87\x7e\x89\xb6\x89\xb5\x65\x88\x8b\xa6\x8e\x8e\x4d\x8d\x00\x00\x53\x69\x00\x00\x58\x47\x7b\x4b\x00\x00\x4d\x8e\x00\x00\x71\x44\x58\x48\x00\x00\x00\x00\x5a\x8a\x5a\x8b\x00\x00\x4d\x8f\x4d\x90\x69\xe5\x4f\xac\x4f\xab\x53\x6a\x6e\xbb\x77\xb1\x4d\x91\x4d\x92\x4d\x93\x4d\x94\x00\x00\x00\x00\x00\x00\x4f\xad\x4f\xae\x6a\xee\x6a\xed\x00\x00\x00\x00\x51\x98\x6c\xb4\x6c\xb2\x6c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xbc\x6e\xbd\x00\x00\x00\x00\x53\x6e\x53\x6c\x00\x00\x53\x6d\x53\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x55\x85\x00\x00\x00\x00\x00\x00\x00\x00\x55\x89\x55\x88\x71\x45\x55\x87\x55\x86\x00\x00\x71\x46\x00\x00\x00\x00\x58\x4b\x74\x61\x74\x60\x58\x49\x58\x4a\x00\x00\x00\x00\x00\x00\x5a\x8d\x5a\x8c\x77\xb3\x00\x00\x00\x00\x77\xb2\x58\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb4\x7b\x4d\x5c\xb5\x7b\x4c\x00\x00\x00\x00\x00\x00\x7e\xa1\x81\xb7\x60\xe9", /* 7580 */ "\x84\xd5\x00\x00\x00\x00\x00\x00\x87\x81\x00\x00\x66\x70\x66\x6f\x00\x00\x00\x00\x67\xe7\x4d\x95\x6c\xb5\x00\x00\x00\x00\x58\x4d\x7e\xa2\x5e\xe9\x48\xa8\x00\x00\x6a\xef\x6a\xf0\x00\x00\x00\x00\x6c\xb6\x51\x9a\x51\x9b\x00\x00\x00\x00\x51\x99\x00\x00\x00\x00\x00\x00\x00\x00\x53\x72\x53\x73\x53\x70\x53\x71\x00\x00\x6e\xbe\x00\x00\x00\x00\x6e\xbf\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x71\x47\x00\x00\x55\x8d\x55\x8e\x00\x00\x58\x50\x71\x4d\x00\x00\x55\x93\x55\x91\x71\x4e\x71\x49\x55\x90\x55\x8f\x55\x8a\x71\x4c\x71\x4b\x71\x48\x55\x92\x00\x00\x71\x4a\x55\x8b\x00\x00\x55\x8c\x00\x00\x00\x00\x58\x51\x74\x65\x74\x66\x58\x52\x74\x62\x74\x64\x74\x68\x74\x67\x74\x63\x00\x00\x58\x4e\x58\x4f\x00\x00\x77\xbb\x5a\x92\x5a\x91\x77\xb5\x5a\x8f\x00\x00\x77\xb8\x5a\x93\x77\xb9\x5a\x94\x77\xb6\x5a\x8e\x5a\x90\x77\xba\x00\x00\x77\xb7\x77\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x5a\x00\x00\x7b\x4f\x5c\xb7\x5c\xba\x5c\xb9\x5c\xbe\x5c\xbd\x7b\x5b\x7b\x59\x7b\x52\x7b\x56\x7b\x55\x5c\xbb\x7b\x58\x7b\x54\x7b\x5c\x7b\x53\x5c\xbc", /* 7600 */ "\x5c\xb6\x5c\xb8\x00\x00\x7b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xa4\x5e\xed\x7e\xa8\x5e\xec\x7e\xa5\x5e\xeb\x00\x00\x7b\x50\x7b\x57\x7e\xa7\x00\x00\x5e\xee\x7e\xa9\x7e\xa6\x7e\xa3\x00\x00\x00\x00\x81\xba\x81\xbe\x81\xc0\x81\xbc\x81\xbb\x81\xb9\x60\xec\x60\xea\x60\xef\x60\xf0\x81\xbd\x60\xed\x81\xb8\x60\xee\x5e\xea\x81\xbf\x60\xeb\x00\x00\x00\x00\x00\x00\x84\xd7\x00\x00\x84\xd6\x84\xde\x84\xd8\x84\xdd\x84\xda\x62\xc9\x84\xdc\x00\x00\x00\x00\x62\xca\x00\x00\x62\xcb\x00\x00\x84\xdb\x84\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x64\x63\x87\x82\x00\x00\x00\x00\x64\x62\x87\x85\x87\x83\x87\x84\x00\x00\x00\x00\x64\x64\x00\x00\x00\x00\x00\x00\x89\xba\x00\x00\x65\x8b\x89\xbb\x00\x00\x00\x00\x65\x89\x89\xbc\x65\x8a\x89\xb9\x89\xbd\x00\x00\x89\xb7\x00\x00\x00\x00\x66\x71\x8b\xa7\x66\x72\x66\xf9\x00\x00\x89\xb8\x66\xfa\x00\x00\x00\x00\x00\x00\x67\x9a\x8e\x8f\x00\x00\x67\xe9\x8f\x85\x67\xe8\x00\x00\x90\x5b\x68\x82\x68\x83\x00\x00\x00\x00\x91\xbc\x48\xa9\x00\x00\x53\x74\x6e\xc0\x00\x00\x5a\x95\x5a\x96\x4d\x96\x4e\x6b\x69\xe6", /* 7680 */ "\x00\x00\x6a\xf1\x4f\xaf\x00\x00\x51\x9c\x00\x00\x53\x75\x53\x76\x53\x77\x74\x6a\x71\x4f\x55\x94\x00\x00\x00\x00\x58\x53\x74\x69\x00\x00\x00\x00\x77\xbd\x5a\x98\x00\x00\x77\xbc\x5a\x97\x00\x00\x00\x00\x7b\x5d\x60\xf1\x81\xc4\x81\xc1\x81\xc2\x81\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x86\x00\x00\x89\xbe\x00\x00\x00\x00\x00\x00\x8d\x61\x8d\x60\x00\x00\x8f\x86\x4d\x97\x6c\xb7\x55\x95\x00\x00\x00\x00\x00\x00\x5a\x99\x7b\x5e\x00\x00\x00\x00\x7e\xaa\x00\x00\x60\xf2\x84\xdf\x00\x00\x89\xbf\x8d\x62\x4d\x98\x00\x00\x00\x00\x51\x9d\x53\x7a\x6e\xc1\x53\x7b\x53\x79\x00\x00\x53\x78\x71\x50\x55\x96\x00\x00\x00\x00\x55\x97\x55\x98\x00\x00\x00\x00\x00\x00\x58\x55\x74\x6b\x58\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xbe\x58\x56\x5a\x9a\x7b\x5f\x5c\xbf\x5c\xc0\x00\x00\x5e\xef\x00\x00\x5e\xf0\x60\xf3\x62\xcd\x84\xe0\x62\xcc\x00\x00\x87\x87\x64\x65\x00\x00\x89\xc0\x8d\x63\x4d\x99\x4f\xb0\x6c\xba\x6c\xb9\x51\x9e\x6c\xb8\x51\x9f\x6c\xbb\x00\x00\x6e\xc7\x53\x7e\x53\x7d\x6e\xc9\x6e\xc8\x53\x83\x00\x00\x53\x82\x00\x00", /* 7700 */ "\x00\x00\x53\x7c\x00\x00\x6e\xc3\x6e\xc4\x6e\xc5\x00\x00\x53\x84\x6e\xc2\x53\x7f\x6e\xc6\x53\x81\x00\x00\x00\x00\x00\x00\x00\x00\x71\x53\x71\x57\x71\x55\x71\x54\x00\x00\x71\x58\x00\x00\x00\x00\x00\x00\x71\x59\x71\x5a\x71\x52\x00\x00\x71\x51\x00\x00\x55\x9a\x55\x9b\x00\x00\x71\x5b\x71\x56\x00\x00\x74\x74\x00\x00\x71\x5c\x55\x9c\x55\x99\x00\x00\x00\x00\x00\x00\x74\x6e\x00\x00\x74\x6d\x00\x00\x74\x6f\x74\x70\x74\x72\x74\x71\x74\x76\x58\x5a\x58\x57\x58\x5b\x74\x6c\x58\x5c\x74\x75\x58\x59\x74\x73\x58\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xc1\x77\xc3\x77\xbf\x77\xc0\x00\x00\x00\x00\x77\xc4\x77\xc6\x77\xc7\x77\xc2\x77\xc5\x5a\x9b\x00\x00\x00\x00\x7b\x63\x00\x00\x7b\x68\x7b\x60\x7b\x64\x00\x00\x00\x00\x7b\x69\x7b\x65\x5c\xc1\x5c\xc9\x00\x00\x5c\xc4\x7b\x61\x7b\x62\x5e\xf4\x5c\xcc\x5c\xc5\x00\x00\x5c\xca\x5c\xc3\x7b\x67\x5c\xcb\x7b\x66\x5c\xc7\x5c\xc2\x5c\xc8\x7b\x6a\x7e\xaf\x7e\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc6\x00\x00\x00\x00\x7e\xac\x5e\xf2\x7e\xb2\x5e\xf3", /* 7780 */ "\x7e\xb0\x7e\xab\x7e\xae\x7e\xb3\x5e\xf1\x7e\xad\x00\x00\x60\xf5\x81\xc8\x81\xc7\x00\x00\x60\xf8\x60\xf6\x81\xc5\x60\xf4\x81\xc6\x00\x00\x60\xf7\x00\x00\x00\x00\x00\x00\x84\xe8\x00\x00\x84\xea\x00\x00\x84\xe9\x84\xe1\x84\xe5\x84\xe4\x84\xe2\x62\xcf\x62\xd0\x62\xce\x84\xe3\x84\xe6\x84\xe7\x00\x00\x62\xd1\x00\x00\x64\x6a\x87\x8f\x00\x00\x64\x67\x87\x89\x64\x69\x64\x6b\x00\x00\x00\x00\x64\x68\x87\x8e\x87\x8a\x64\x66\x87\x8d\x87\x88\x87\x8c\x87\x8b\x00\x00\x00\x00\x89\xc2\x65\x8e\x65\x8f\x65\x8c\x00\x00\x65\x8d\x00\x00\x00\x00\x89\xc1\x00\x00\x8b\xaa\x00\x00\x00\x00\x66\x73\x00\x00\x8b\xa8\x8b\xa9\x00\x00\x8d\x64\x8d\x67\x8d\x65\x8d\x66\x8e\x90\x00\x00\x00\x00\x67\x9b\x90\x5c\x90\xc3\x00\x00\x68\x84\x91\x4a\x91\x4b\x68\xb2\x4d\x9a\x53\x85\x00\x00\x77\xc8\x00\x00\x7b\x6b\x00\x00\x4d\x9b\x4f\xb1\x00\x00\x51\xa0\x00\x00\x6e\xca\x6e\xcb\x55\x9d\x00\x00\x00\x00\x77\xc9\x5a\x9c\x5c\xcd\x64\x6c\x87\x90\x8b\xab\x8d\x68\x4d\x9c\x00\x00\x00\x00\x00\x00\x6c\xc1\x6c\xbc\x6c\xbe\x6c\xc0\x6c\xbf\x6c\xbd\x51\xa1\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x53\x86\x6e\xd4\x00\x00\x6e\xcf\x6e\xcc\x00\x00\x00\x00\x6e\xd3\x00\x00\x00\x00\x53\x88\x53\x89\x6e\xd2\x6e\xd1\x6e\xd0\x6e\xcd\x6e\xce\x6e\xd5\x53\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa1\x00\x00\x55\xa7\x55\xa6\x71\x65\x71\x5f\x71\x5d\x00\x00\x55\xa4\x74\x7d\x55\x9f\x71\x62\x71\x66\x71\x68\x71\x64\x71\x5e\x55\xa5\x71\x63\x71\x61\x55\x9e\x71\x69\x55\xa8\x71\x67\x55\xa2\x71\x60\x00\x00\x55\xa3\x55\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5e\x00\x00\x74\x7e\x00\x00\x00\x00\x74\x77\x74\x79\x74\x7b\x00\x00\x74\x7c\x74\x7a\x58\x5f\x00\x00\x74\x7f\x00\x00\x74\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xcd\x5a\x9d\x77\xd5\x00\x00\x77\xca\x00\x00\x77\xd6\x00\x00\x77\xcb\x77\xcc\x00\x00\x00\x00\x77\xd4\x77\xd3\x77\xd0\x58\x5d\x5a\x9e\x77\xce\x77\xd1\x5a\x9f\x77\xd2\x77\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x76\x00\x00\x7b\x7a\x5c\xd4\x00\x00\x7e\xb9\x5c\xd7", /* 7880 */ "\x7b\x78\x00\x00\x00\x00\x7b\x75\x7b\x70\x7b\x72\x7b\x73\x7b\x6c\x00\x00\x5c\xd3\x00\x00\x00\x00\x5c\xd2\x00\x00\x5c\xce\x7b\x6f\x00\x00\x5c\xd5\x00\x00\x5c\xd6\x7b\x6e\x7b\x71\x7b\x79\x5c\xd0\x5c\xd1\x7b\x77\x7b\x6d\x00\x00\x00\x00\x00\x00\x7e\xbb\x5e\xf6\x7e\xbd\x7b\x74\x7e\xbf\x5e\xfa\x7e\xc0\x7e\xbc\x00\x00\x5e\xf7\x7e\xb8\x5e\xf9\x7e\xb5\x7e\xba\x7e\xbe\x7e\xb7\x00\x00\x00\x00\x5c\xcf\x00\x00\x7e\xb4\x5e\xf8\x7e\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xfb\x81\xca\x61\x42\x00\x00\x60\xfd\x00\x00\x00\x00\x5e\xf5\x00\x00\x81\xd1\x81\xd2\x60\xfa\x00\x00\x00\x00\x81\xd0\x81\xd3\x60\xfc\x60\xf9\x81\xcc\x81\xc9\x81\xce\x81\xcb\x61\x43\x81\xcd\x00\x00\x00\x00\x81\xcf\x61\x41\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x84\xf1\x00\x00\x84\xeb\x84\xef\x84\xf5\x84\xf6\x84\xf2\x84\xf3\x84\xf0\x00\x00\x84\xed\x00\x00\x62\xd5\x62\xd2\x84\xec\x84\xee\x00\x00\x62\xd4\x84\xf4\x00\x00\x64\x70\x00\x00\x00\x00\x87\x96\x87\x91\x64\x6f\x00\x00\x00\x00\x64\x6d\x00\x00\x87\x98\x64\x6e\x87\x94\x87\x95\x87\x92\x87\x99\x89\xc3", /* 7900 */ "\x00\x00\x64\x71\x87\x93\x00\x00\x87\x9a\x87\x97\x00\x00\x00\x00\x00\x00\x89\xc7\x00\x00\x00\x00\x89\xc4\x00\x00\x65\x90\x00\x00\x89\xc8\x89\xca\x89\xc9\x89\xc5\x89\xc6\x00\x00\x00\x00\x8b\xb0\x00\x00\x66\x74\x00\x00\x8b\xad\x8b\xaf\x8b\xac\x8b\xb1\x00\x00\x00\x00\x8b\xae\x00\x00\x8d\x6a\x8d\x6d\x8d\x69\x66\xfb\x8d\x6b\x8d\x6c\x8d\x6e\x66\xfc\x67\x41\x66\xfd\x8e\x91\x00\x00\x8e\x93\x00\x00\x8e\x92\x00\x00\x00\x00\x00\x00\x8f\x87\x00\x00\x00\x00\x90\xc4\x91\x4c\x4d\x9d\x00\x00\x00\x00\x6a\xf2\x51\xa2\x6c\xc3\x51\xa3\x51\xa4\x6c\xc2\x00\x00\x6e\xda\x6e\xd9\x53\x8a\x53\x8d\x53\x8c\x53\x8b\x6e\xd6\x6e\xd8\x6e\xd7\x00\x00\x00\x00\x71\x6c\x55\xaa\x71\x70\x71\x6f\x71\x6e\x71\x6a\x55\xa9\x55\xad\x55\xb0\x00\x00\x00\x00\x55\xb1\x71\x6b\x71\x6d\x55\xaf\x55\xae\x55\xac\x55\xab\x74\x87\x00\x00\x74\x85\x74\x81\x58\x60\x00\x00\x74\x82\x58\x61\x74\x83\x74\x84\x74\x86\x00\x00\x58\x62\x00\x00\x00\x00\x77\xda\x00\x00\x77\xd9\x77\xd8\x77\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x7e\x5c\xd8\x00\x00\x7b\x7b\x7b\x7d\x00\x00\x5c\xd9", /* 7980 */ "\x00\x00\x5c\xda\x7b\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xc9\x00\x00\x7e\xc2\x7e\xc3\x00\x00\x5e\xfd\x5e\xfb\x5e\xfc\x7e\xcb\x00\x00\x7e\xca\x7e\xc7\x7e\xc6\x7e\xc5\x7e\xc4\x7e\xc8\x7e\xc1\x00\x00\x81\xd4\x81\xd9\x81\xd7\x00\x00\x00\x00\x00\x00\x81\xd6\x81\xd5\x81\xd8\x00\x00\x84\xf7\x00\x00\x62\xd6\x64\x72\x87\x9c\x00\x00\x64\x73\x87\x9b\x89\xcc\x89\xcb\x65\x91\x00\x00\x8b\xb2\x66\x75\x8d\x6f\x67\xea\x8f\x88\x00\x00\x90\xc6\x90\xc5\x69\x88\x53\x8e\x53\x8f\x74\x88\x00\x00\x5c\xdc\x4d\x9e\x4f\xb4\x4f\xb3\x4f\xb2\x00\x00\x00\x00\x00\x00\x6c\xc4\x00\x00\x00\x00\x51\xa6\x51\xa5\x00\x00\x53\x92\x00\x00\x6e\xdc\x6e\xdf\x6e\xdd\x00\x00\x53\x90\x53\x91\x00\x00\x00\x00\x6e\xdb\x6e\xde\x00\x00\x55\xb8\x00\x00\x00\x00\x00\x00\x71\x77\x71\x79\x71\x78\x55\xb5\x71\x73\x00\x00\x00\x00\x55\xb3\x55\xb2\x00\x00\x55\xb6\x55\xb4\x00\x00\x55\xb7\x71\x76\x71\x71\x71\x72\x71\x75\x71\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x8b\x74\x8c\x74\x8a\x00\x00\x74\x89\x58\x63\x00\x00\x00\x00\x00\x00\x00\x00", /* 7a00 */ "\x5a\xa4\x00\x00\x77\xdb\x77\xdd\x77\xdf\x5a\xa3\x00\x00\x00\x00\x5a\xa1\x00\x00\x77\xdc\x5a\xa2\x77\xde\x5a\xa0\x00\x00\x00\x00\x7b\x89\x7b\x7f\x7b\x83\x7b\x87\x5c\xe0\x7b\x85\x00\x00\x7b\x84\x7b\x81\x7b\x82\x5c\xde\x7b\x88\x5c\xdd\x00\x00\x5c\xe2\x5c\xe1\x5c\xdf\x00\x00\x7b\x86\x00\x00\x00\x00\x00\x00\x7e\xd1\x00\x00\x7e\xd0\x00\x00\x00\x00\x7e\xcc\x00\x00\x00\x00\x5f\x41\x7e\xcf\x7e\xce\x5f\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x48\x00\x00\x81\xdb\x00\x00\x61\x49\x61\x45\x61\x47\x00\x00\x61\x44\x61\x46\x00\x00\x00\x00\x00\x00\x84\xf8\x00\x00\x62\xd9\x84\xfa\x84\xf9\x00\x00\x7e\xcd\x62\xdb\x62\xda\x62\xd7\x62\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xa1\x00\x00\x87\x9f\x64\x74\x87\xa0\x00\x00\x87\xa2\x87\x9e\x87\x9d\x00\x00\x00\x00\x89\xcd\x65\x94\x65\x92\x65\x93\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xb3\x8b\xb4\x66\x77\x00\x00\x66\x76\x8d\x71\x8d\x72\x8d\x70\x00\x00\x8f\x89\x8f\x8a\x00\x00\x00\x00\x4d\x9f\x69\xe7\x4f\xb5\x00\x00\x6c\xc5\x51\xa8\x51\xa7\x6c\xc6\x00\x00\x00\x00\x6e\xe1\x53\x93", /* 7a80 */ "\x6e\xe0\x53\x94\x00\x00\x00\x00\x55\xb9\x71\x7c\x71\x7a\x71\x81\x55\xba\x71\x7b\x71\x7f\x71\x7d\x71\x7e\x00\x00\x00\x00\x74\x8d\x74\x8f\x00\x00\x58\x64\x00\x00\x74\x8e\x58\x65\x5a\xa7\x5a\xa6\x5a\xa5\x77\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x8c\x5c\xe3\x5c\xe4\x00\x00\x7b\x8b\x7b\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xd2\x5f\x44\x5f\x43\x7e\xd3\x7e\xd4\x00\x00\x61\x4b\x61\x4a\x00\x00\x85\x41\x81\xdc\x81\xde\x81\xdd\x84\xfd\x84\xfb\x85\x42\x84\xfc\x00\x00\x62\xdc\x00\x00\x00\x00\x00\x00\x87\xa3\x64\x75\x87\xa4\x87\xa5\x00\x00\x00\x00\x65\x95\x65\x96\x00\x00\x67\x42\x00\x00\x00\x00\x68\x5d\x4d\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x82\x55\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x58\xfc\x00\x00\x00\x00\x5a\xa9\x77\xe2\x5a\xa8\x77\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x8d\x00\x00\x5f\x45\x7e\xd5\x5f\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x43\x8d\x73\x00\x00\x4e\x6c\x51\xa9\x6c\xc7\x00\x00\x53\x96\x00\x00\x53\x95", /* 7b00 */ "\x6e\xe3\x6e\xe4\x00\x00\x00\x00\x71\x84\x71\x86\x55\xbc\x00\x00\x71\x88\x71\x8b\x71\x89\x00\x00\x00\x00\x00\x00\x71\x8a\x71\x87\x71\x83\x55\xbd\x71\x8c\x71\x85\x00\x00\x00\x00\x00\x00\x00\x00\x74\x98\x58\x6b\x74\xa1\x58\x68\x00\x00\x74\x9a\x58\x6c\x00\x00\x58\x66\x00\x00\x74\x95\x74\xa2\x74\x96\x74\x93\x58\x6a\x00\x00\x58\x67\x00\x00\x74\x99\x74\x9c\x58\x69\x74\x9d\x58\x6d\x74\x9e\x74\x94\x74\x9b\x74\x9f\x74\x97\x74\x92\x74\x90\x00\x00\x00\x00\x74\xa0\x00\x00\x00\x00\x77\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x77\xe9\x00\x00\x00\x00\x00\x00\x77\xe5\x77\xeb\x5a\xac\x74\x91\x77\xe6\x5a\xaa\x77\xe3\x5a\xb1\x77\xe7\x5a\xb0\x77\xe8\x5a\xb2\x5a\xad\x5a\xb3\x5a\xae\x00\x00\x5a\xaf\x00\x00\x5a\xab\x00\x00\x77\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe7\x7b\x98\x00\x00\x7b\x9b\x7b\x8f\x7b\x94\x7b\x8e\x5c\xe9\x00\x00\x7b\x92\x00\x00\x00\x00\x00\x00\x7b\x90\x5c\xe8\x00\x00\x7b\x97\x7b\x96\x7b\x93\x7b\x95\x7b\x91\x5f\x4a\x7b\x9a\x5c\xe5\x7b\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7b80 */ "\x00\x00\x00\x00\x7e\xe5\x00\x00\x5f\x51\x7e\xe0\x00\x00\x5f\x50\x7e\xd6\x00\x00\x7e\xd8\x5f\x49\x7e\xdd\x7e\xdc\x7e\xdf\x5f\x4e\x7e\xda\x7e\xd9\x00\x00\x00\x00\x5f\x4d\x5f\x48\x7e\xdb\x5f\x4b\x7e\xe1\x7e\xe3\x00\x00\x7e\xde\x7e\xd7\x5f\x4c\x00\x00\x00\x00\x61\x53\x5f\x47\x00\x00\x00\x00\x7e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe2\x61\x4c\x00\x00\x81\xe4\x00\x00\x61\x4d\x00\x00\x00\x00\x61\x4f\x81\xe7\x00\x00\x81\xdf\x5f\x4f\x81\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe1\x00\x00\x5c\xe6\x61\x52\x00\x00\x00\x00\x61\x4e\x00\x00\x61\x50\x61\x51\x00\x00\x62\xdf\x81\xe6\x81\xe0\x61\x54\x00\x00\x81\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x4c\x85\x47\x00\x00\x00\x00\x85\x51\x62\xdd\x85\x49\x62\xe1\x85\x4f\x85\x46\x85\x43\x85\x52\x64\x7b\x62\xe2\x85\x4e\x85\x44\x62\xe0\x85\x48\x62\xe4\x85\x45\x85\x4a\x62\xe3\x85\x4d\x85\x50\x00\x00\x00\x00\x00\x00\x00\x00\x87\xb7\x87\xb8\x87\xa8\x87\xaf\x87\xad\x00\x00\x00\x00\x64\x79\x87\xb4\x85\x4b\x00\x00\x87\xab\x00\x00\x87\xb5\x64\x78\x87\xaa", /* 7c00 */ "\x87\xa9\x87\xb3\x87\xb0\x87\xb2\x00\x00\x87\xa6\x87\xb6\x64\x76\x00\x00\x87\xb1\x87\xba\x87\xae\x64\x7a\x64\x77\x87\xac\x87\xa7\x87\xb9\x62\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\xd0\x00\x00\x00\x00\x89\xce\x89\xd4\x65\x9a\x89\xd2\x89\xd1\x65\x9c\x89\xd7\x65\x9b\x00\x00\x89\xd8\x89\xd5\x65\x98\x89\xd6\x89\xcf\x65\x99\x65\x97\x8b\xb8\x89\xd3\x00\x00\x00\x00\x89\xd9\x00\x00\x00\x00\x8b\xb5\x00\x00\x00\x00\x00\x00\x66\x7c\x66\x7a\x8b\xb7\x00\x00\x8b\xb9\x8b\xb6\x66\x7b\x66\x78\x66\x79\x66\x7d\x00\x00\x00\x00\x67\x45\x00\x00\x8d\x78\x00\x00\x8d\x77\x8d\x75\x8d\x74\x8d\x76\x00\x00\x67\x44\x67\x46\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x8e\x95\x8e\x94\x00\x00\x00\x00\x8f\x8b\x00\x00\x8f\x8d\x8f\x8f\x8f\x8e\x8f\x8c\x00\x00\x00\x00\x67\xec\x67\xeb\x00\x00\x00\x00\x68\x5f\x68\x5e\x68\x60\x90\x5e\x90\x5d\x00\x00\x91\x4d\x90\xc7\x91\x4e\x68\xa4\x00\x00\x68\xa5\x91\x7e\x00\x00\x00\x00\x68\xca\x4e\x6d\x00\x00\x6c\xc8\x00\x00\x00\x00\x6e\xe6\x6e\xe7\x6e\xe5\x00\x00\x00\x00\x53\x97\x00\x00\x6e\xe8", /* 7c80 */ "\x6e\xe9\x6e\xea\x00\x00\x00\x00\x71\x8d\x71\x93\x00\x00\x00\x00\x71\x91\x55\xbe\x71\x8f\x00\x00\x71\x90\x71\x92\x00\x00\x00\x00\x00\x00\x71\x8e\x58\x6e\x00\x00\x74\xa3\x58\x70\x74\xa5\x58\x6f\x74\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xed\x5a\xb4\x00\x00\x77\xef\x77\xec\x74\xa6\x00\x00\x5a\xb5\x00\x00\x00\x00\x77\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x9e\x00\x00\x5c\xea\x7b\x9c\x5c\xeb\x7b\x9d\x5c\xec\x00\x00\x00\x00\x00\x00\x5f\x52\x7e\xe9\x7e\xe6\x7e\xe8\x5f\x53\x5f\x54\x7e\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe8\x00\x00\x00\x00\x81\xe9\x00\x00\x61\x55\x81\xeb\x81\xea\x00\x00\x46\xf9\x00\x00\x85\x56\x85\x57\x85\x53\x00\x00\x85\x54\x62\xe5\x62\xe6\x85\x55\x00\x00\x64\x82\x00\x00\x00\x00\x64\x7d\x64\x83\x64\x7e\x64\x81\x64\x7c\x00\x00\x64\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x65\x9d\x87\xbb\x00\x00\x8b\xbb\x00\x00\x8b\xba\x00\x00\x8d\x79\x67\x47\x67\x48\x8f\x91\x8e\x96\x00\x00\x8f\x90\x00\x00\x91\x4f\x91\x94\x4e\x6e\x00\x00\x00\x00\x4f\xb6\x00\x00\x6c\xc9\x51\xaa\x00\x00", /* 7d00 */ "\x53\x9a\x6e\xed\x53\x98\x6e\xeb\x53\x9d\x53\x99\x53\x9e\x53\x9c\x6e\xec\x53\x9b\x55\xc2\x55\xc1\x71\x9e\x55\xca\x71\x97\x71\x9d\x55\xc6\x71\x96\x71\x9c\x71\x9a\x55\xc5\x55\xc7\x71\x99\x55\xc0\x71\x98\x55\xcb\x55\xc8\x55\xcc\x55\xc9\x71\x95\x71\x94\x71\x9b\x55\xc3\x55\xbf\x55\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xb5\x74\xae\x00\x00\x5a\xba\x74\xad\x00\x00\x58\x74\x58\x7b\x58\x78\x58\x7e\x58\x7d\x58\x79\x00\x00\x74\xa7\x74\xaa\x00\x00\x74\xa9\x58\x75\x74\xab\x74\xb4\x58\x76\x74\xa8\x74\xb1\x74\xb2\x58\x77\x74\xaf\x58\x7c\x58\x72\x58\x7a\x74\xac\x58\x71\x74\xb0\x00\x00\x00\x00\x74\xb3\x00\x00\x00\x00\x00\x00\x78\x43\x77\xf7\x5a\xb7\x78\x41\x77\xfb\x77\xf3\x77\xfc\x5a\xb9\x77\xf4\x00\x00\x77\xf0\x00\x00\x00\x00\x5c\xf2\x77\xf9\x00\x00\x5a\xb6\x78\x42\x00\x00\x5a\xbd\x5a\xbf\x77\xf2\x00\x00\x00\x00\x5a\xbe\x77\xf5\x5a\xb8\x77\xfd\x77\xf6\x77\xfa\x00\x00\x77\xf8\x5a\xbb\x77\xf1\x5a\xc0\x58\x73\x5a\xbc\x5a\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xee\x7b\xa5\x7b\xa7\x7b\xa9\x7b\xad\x00\x00\x7b\xa3", /* 7d80 */ "\x7b\xa1\x5c\xf0\x00\x00\x7b\xa8\x7b\xac\x7b\xa4\x7b\xa0\x00\x00\x7b\x9f\x00\x00\x00\x00\x00\x00\x7b\xaa\x7b\xa2\x7b\xa6\x5c\xf1\x00\x00\x5c\xef\x7b\xae\x5c\xed\x7b\xab\x00\x00\x7e\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x7e\xf2\x61\x62\x7e\xfc\x5f\x5a\x7f\x43\x5f\x60\x7e\xed\x00\x00\x00\x00\x7e\xfd\x7e\xea\x00\x00\x7f\x42\x7e\xee\x00\x00\x5f\x67\x5f\x64\x7f\x41\x7e\xf8\x5f\x56\x5f\x5e\x5f\x5d\x00\x00\x5f\x5c\x5f\x62\x00\x00\x7e\xeb\x5f\x63\x7e\xf9\x5f\x5f\x5f\x55\x7e\xfb\x5f\x58\x5f\x59\x5f\x61\x7e\xf0\x7e\xef\x7e\xec\x00\x00\x7e\xf4\x7e\xf1\x7e\xf5\x5f\x66\x00\x00\x7f\x44\x5f\x5b\x7e\xf6\x7e\xf7\x00\x00\x7e\xf3\x00\x00\x00\x00\x00\x00\x5f\x65\x00\x00\x00\x00\x00\x00\x00\x00\x81\xf0\x61\x5a\x61\x63\x61\x5f\x81\xed\x00\x00\x61\x5c\x61\x60\x81\xf9\x61\x56\x81\xf1\x00\x00\x61\x5e\x00\x00\x00\x00\x81\xf4\x81\xef\x61\x5d\x61\x61\x81\xee\x00\x00\x61\x5b\x00\x00\x81\xf8\x61\x58\x81\xf7\x81\xf6\x61\x64\x80\xbc\x61\x57\x00\x00\x81\xf5\x81\xec\x00\x00\x61\x65\x81\xf3\x61\x59\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x81\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe9\x62\xee\x62\xe7\x85\x64\x85\x5b\x85\x67\x85\x5f\x85\x65\x62\xef\x62\xe8\x85\x58\x85\x5e\x85\x68\x85\x61\x85\x66\x85\x5a\x00\x00\x00\x00\x85\x62\x62\xea\x85\x60\x62\xed\x62\xec\x85\x5c\x85\x5d\x85\x59\x85\x63\x62\xeb\x85\x6a\x85\x69\x00\x00\x00\x00\x00\x00\x87\xc6\x87\xc2\x64\x8a\x00\x00\x87\xbc\x64\x84\x64\x94\x87\xc8\x64\x8c\x64\x88\x87\xbf\x64\x8f\x64\x92\x87\xca\x64\x87\x87\xc1\x64\x90\x87\xcc\x87\xc9\x87\xbd\x64\x8b\x64\x85\x64\x93\x87\xc4\x64\x8e\x87\xbe\x64\x89\x87\xcb\x64\x8d\x64\x86\x87\xc5\x64\x91\x87\xc3\x00\x00\x00\x00\x87\xc7\x00\x00\x00\x00\x00\x00\x89\xdb\x89\xe1\x65\xa3\x89\xe4\x65\x9e\x65\x9f\x89\xdc\x89\xe3\x89\xde\x65\xa4\x65\xa1\x00\x00\x89\xda\x00\x00\x65\xa0\x89\xe0\x89\xe2\x65\xa2\x89\xdf\x89\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xc5\x66\x82\x66\x83\x66\x7e\x00\x00\x66\x7f\x00\x00\x8b\xc1\x8b\xbf\x00\x00\x8b\xc3\x66\x85\x8b\xc4\x8b\xbd\x8b\xbc\x8b\xc0\x8b\xbe\x66\x81\x8b\xc2\x8d\x7a\x67\x4b\x67\x4a\x8d\x7b\x00\x00", /* 7e80 */ "\x8d\x7d\x8d\x7c\x67\x4c\x00\x00\x00\x00\x00\x00\x8e\x9b\x8e\x98\x8e\x99\x00\x00\x8e\x97\x8e\x9a\x67\x9e\x8e\x9c\x00\x00\x67\x9d\x00\x00\x8f\x92\x00\x00\x68\x61\x68\x63\x90\x5f\x68\x62\x90\xc8\x91\x51\x91\x53\x91\x50\x91\x52\x68\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6f\x00\x00\x53\x9f\x70\xd2\x55\xcd\x00\x00\x00\x00\x58\x7f\x78\x44\x78\x45\x00\x00\x00\x00\x00\x00\x85\x6b\x64\x95\x87\xcd\x00\x00\x00\x00\x65\xa5\x00\x00\x8b\xc7\x8b\xc6\x67\x4d\x8e\x9d\x00\x00\x8f\x93\x68\x85\x69\xe8\x00\x00\x00\x00\x51\xab\x4f\xb7\x00\x00\x00\x00\x6e\xee\x00\x00\x00\x00\x71\xa4\x71\x9f\x71\xa3\x71\xa1\x55\xce\x71\xa2\x71\xa0\x00\x00\x74\xb6\x00\x00\x78\x46\x78\x47\x7b\xb1\x7b\xb2\x5c\xf4\x5c\xf5\x7b\xb0\x7b\xb3\x7b\xaf\x5c\xf3\x00\x00\x5f\x68\x00\x00\x5c\xf6\x7f\x45\x00\x00\x61\x66\x81\xfa\x61\x67\x00\x00\x62\xf0\x85\x6e\x85\x6c\x85\x6d\x87\xd0\x87\xcf\x87\xce", /* 7f80 */ "\x00\x00\x00\x00\x00\x00\x8b\xc8\x00\x00\x66\x84\x8b\xc9\x8f\x94\x68\x86\x90\xc9\x4e\x70\x51\xad\x51\xac\x6e\xf0\x53\xa0\x00\x00\x00\x00\x6e\xef\x71\xa6\x00\x00\x55\xcf\x74\xb7\x71\xa5\x00\x00\x00\x00\x00\x00\x58\x82\x74\xba\x74\xb8\x74\xb9\x58\x81\x00\x00\x78\x49\x78\x4a\x78\x48\x00\x00\x5c\xf9\x7b\xb5\x7b\xb4\x7b\xb6\x5c\xf8\x5c\xf7\x00\x00\x00\x00\x81\xfb\x81\xfd\x00\x00\x61\x68\x81\xfc\x85\x6f\x62\xf1\x89\xe6\x00\x00\x89\xe5\x66\x86\x8b\xca\x66\x88\x66\x87\x8d\x7e\x8e\x9e\x67\x9f\x4e\x71\x6e\xf1\x53\xa1\x71\xa9\x55\xd1\x71\xa8\x71\xa7\x00\x00\x55\xd0\x00\x00\x74\xc0\x00\x00\x74\xc2\x74\xbb\x74\xbc\x58\x83\x74\xbd\x58\x84\x74\xc1\x74\xbe\x74\xbf\x58\x85\x00\x00\x5a\xc3\x5a\xc4\x00\x00\x78\x4b\x00\x00\x00\x00\x00\x00\x7b\xb7\x7b\xb8\x00\x00\x7f\x49\x5f\x6b\x5f\x69\x5f\x6a\x7f\x46\x7f\x47\x00\x00\x7f\x48\x82\x45\x00\x00\x82\x46\x61\x69\x82\x43\x82\x42\x82\x44\x82\x41\x62\xf4\x85\x70\x62\xf2\x62\xf3\x87\xd2\x64\x96\x87\xd1\x89\x55\x00\x00\x89\xe7\x89\xe8\x65\xa6\x00\x00\x65\xa7\x64\x97\x8b\xcb\x8b\xcc\x8d\x7f", /* 8000 */ "\x67\x4e\x4e\x72\x00\x00\x4e\x73\x53\xa2\x51\xae\x55\xd2\x6e\xf2\x00\x00\x00\x00\x00\x00\x5a\xc5\x4e\x74\x53\xa4\x6e\xf3\x6e\xf4\x53\xa3\x53\xa5\x4e\x75\x00\x00\x6e\xf5\x55\xd4\x71\xaa\x55\xd6\x55\xd3\x55\xd5\x00\x00\x74\xc5\x58\x86\x00\x00\x74\xc4\x74\xc3\x00\x00\x7b\xb9\x00\x00\x00\x00\x7f\x4a\x00\x00\x61\x6a\x00\x00\x62\xf5\x85\x72\x85\x71\x00\x00\x87\xd3\x00\x00\x00\x00\x00\x00\x8e\x9f\x00\x00\x00\x00\x4e\x76\x6a\xf3\x6c\xca\x53\xa6\x6e\xf6\x00\x00\x71\xac\x00\x00\x00\x00\x00\x00\x55\xd7\x71\xab\x55\xd8\x00\x00\x00\x00\x00\x00\x74\xc7\x00\x00\x00\x00\x58\x88\x74\xc6\x74\xc8\x00\x00\x58\x87\x00\x00\x00\x00\x00\x00\x00\x00\x78\x4d\x78\x4e\x78\x4c\x5a\xc6\x00\x00\x00\x00\x00\x00\x5c\xfa\x00\x00\x5c\xfb\x00\x00\x5f\x6d\x00\x00\x7f\x4c\x7f\x4b\x5f\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x47\x00\x00\x00\x00\x82\x48\x00\x00\x00\x00\x00\x00\x00\x00\x85\x73\x00\x00\x00\x00\x64\x9b\x64\x9a\x64\x98\x64\x99\x64\x9c\x00\x00\x89\xe9\x65\xa9\x65\xa8\x8b\xcd\x8d\x81\x00\x00\x00\x00\x00\x00\x67\xee\x67\xed\x4e\x77", /* 8080 */ "\x00\x00\x00\x00\x70\x9f\x00\x00\x5c\xfd\x5a\xc7\x5c\xfc\x5f\x6e\x00\x00\x4e\x78\x69\x89\x4e\x79\x4e\x7a\x00\x00\x00\x00\x6c\xcb\x6a\xf6\x00\x00\x6a\xf7\x4f\xb9\x00\x00\x6a\xf4\x4f\xb8\x00\x00\x4f\xbb\x6a\xf5\x4f\xbd\x4f\xbc\x6a\xf8\x4f\xba\x00\x00\x00\x00\x00\x00\x51\xb3\x51\xb1\x6c\xcd\x00\x00\x51\xb0\x00\x00\x00\x00\x00\x00\x51\xb5\x51\xb7\x51\xb4\x00\x00\x6c\xd0\x6c\xcc\x51\xb8\x00\x00\x51\xb2\x4f\xbe\x00\x00\x51\xb6\x6c\xcf\x00\x00\x00\x00\x6c\xce\x00\x00\x51\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xfc\x53\xaa\x53\xab\x6f\x41\x00\x00\x6e\xf8\x6e\xfb\x6f\x47\x6f\x45\x00\x00\x53\xac\x6f\x4b\x53\xaf\x6f\x48\x6e\xfd\x6e\xfa\x00\x00\x00\x00\x78\x50\x6f\x46\x53\xa7\x6f\x49\x6e\xf7\x6f\x43\x53\xa9\x53\xae\x6f\x44\x53\xb2\x53\xb0\x00\x00\x6e\xf9\x53\xad\x00\x00\x6f\x42\x53\xb1\x53\xa8\x6f\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xdd\x00\x00\x55\xe6\x55\xdb\x55\xd9\x71\xae\x55\xe1\x55\xde\x71\xb0\x00\x00\x00\x00\x55\xe0\x71\xaf\x71\xad\x71\xb2\x55\xe5\x55\xe3\x78\x4f\x00\x00", /* 8100 */ "\x71\xb3\x71\xb1\x55\xda\x00\x00\x00\x00\x55\xdc\x55\xdf\x00\x00\x55\xe2\x00\x00\x55\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xd2\x58\x8a\x00\x00\x74\xc9\x74\xcb\x00\x00\x74\xcc\x00\x00\x74\xd4\x74\xd0\x74\xce\x00\x00\x74\xd1\x74\xd5\x58\x8b\x58\x8f\x74\xca\x00\x00\x74\xd3\x00\x00\x58\x8d\x00\x00\x58\x8c\x74\xcf\x74\xcd\x00\x00\x58\x89\x58\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xcd\x78\x58\x00\x00\x00\x00\x78\x56\x5a\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x78\x51\x7b\xc7\x00\x00\x5a\xce\x78\x55\x00\x00\x00\x00\x78\x52\x5a\xca\x5a\xd0\x78\x57\x5a\xcc\x78\x54\x5f\x6f\x5a\xcb\x78\x53\x5a\xd1\x5a\xc9\x5a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xbf\x7b\xbd\x00\x00\x7b\xc3\x00\x00\x7b\xbb\x7b\xc8\x7b\xc0\x00\x00\x7b\xba\x5d\x44\x5d\x4a\x7b\xc5\x00\x00\x7b\xbe\x00\x00\x5d\x47\x00\x00\x00\x00\x5d\x45\x7b\xc6\x5d\x42\x5d\x41\x7b\xc1\x5d\x46\x5a\xd2\x00\x00\x7b\xc4\x7b\xbc\x5d\x43\x5d\x48\x5d\x49\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x74", /* 8180 */ "\x5f\x70\x00\x00\x5f\x75\x7f\x4f\x00\x00\x00\x00\x7f\x4e\x7f\x50\x5f\x72\x7f\x4d\x5f\x73\x7f\x53\x7f\x52\x7f\x51\x00\x00\x5f\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x4c\x00\x00\x82\x4f\x61\x70\x82\x4e\x61\x6f\x61\x6b\x61\x6c\x61\x6d\x82\x4b\x82\x4a\x61\x6e\x00\x00\x82\x4d\x82\x49\x00\x00\x00\x00\x85\x75\x85\x7f\x62\xf8\x62\xf7\x00\x00\x85\x79\x85\x7b\x00\x00\x85\x76\x00\x00\x85\x7a\x85\x74\x85\x7d\x62\xf6\x85\x7c\x85\x78\x00\x00\x85\x7e\x00\x00\x85\x77\x64\x9f\x87\xd4\x87\xda\x64\xa3\x64\xa5\x64\xa2\x64\xa1\x00\x00\x64\xa0\x64\x9e\x87\xd5\x87\xd8\x64\x9d\x87\xd9\x00\x00\x64\xa4\x87\xd7\x00\x00\x87\xd6\x65\xaa\x00\x00\x65\xab\x89\xec\x89\xea\x89\xeb\x00\x00\x00\x00\x8b\xcf\x00\x00\x8b\xce\x66\x89\x8d\x83\x67\x4f\x8d\x82\x00\x00\x8e\xa0\x8f\x95\x67\xef\x91\x54\x91\x55\x68\x64\x4e\x7b\x00\x00\x51\xb9\x78\x59\x5f\x76\x64\xa6\x87\xdb\x4e\x7c\x00\x00\x55\xe8\x55\xe7\x78\x5a\x00\x00\x00\x00\x00\x00\x85\x81\x4e\x7d\x53\xb3\x00\x00\x00\x00\x78\x5b\x78\x5c\x78\x5d\x5f\x77\x62\xf9\x4e\x7e\x00\x00\x51\xba\x6f\x4c", /* 8200 */ "\x55\xe9\x71\xb4\x58\x90\x00\x00\x78\x5e\x5d\x4b\x00\x00\x5f\x78\x62\xfa\x64\xa7\x65\xac\x8d\x84\x4e\x7f\x51\xbb\x00\x00\x00\x00\x55\xea\x74\xd6\x5a\xd3\x00\x00\x5f\x79\x7f\x54\x82\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x81\x5a\xd4\x7b\xc9\x5f\x7a\x4e\x82\x6c\xd1\x6f\x4d\x53\xb4\x00\x00\x00\x00\x71\xb6\x00\x00\x00\x00\x55\xed\x00\x00\x55\xeb\x55\xec\x55\xee\x00\x00\x00\x00\x71\xb5\x00\x00\x00\x00\x74\xdb\x74\xd8\x74\xda\x58\x91\x58\x93\x58\x92\x74\xd7\x58\x94\x74\xd9\x00\x00\x78\x5f\x78\x60\x00\x00\x78\x61\x7b\xcc\x00\x00\x7b\xcd\x00\x00\x7b\xcb\x7b\xce\x00\x00\x5d\x4c\x00\x00\x7b\xca\x00\x00\x5f\x7b\x00\x00\x00\x00\x82\x55\x82\x51\x82\x54\x82\x56\x82\x53\x82\x52\x00\x00\x85\x82\x85\x83\x85\x84\x62\xfb\x62\xfc\x87\xdd\x87\xdc\x87\xde\x00\x00\x89\xee\x89\xed\x00\x00\x8b\xd1\x00\x00\x8b\xd2\x8b\xd0\x00\x00\x67\x50\x00\x00\x8d\x85\x8d\x86\x00\x00\x8f\x96\x90\x60\x90\xca\x4e\x83\x4f\xbf\x00\x00\x64\xa8\x4e\x84\x00\x00\x74\xdc\x78\x62\x00\x00\x68\x8d\x69\xe9\x00\x00\x00\x00\x00\x00\x69\xea\x69\xec\x4e\x85\x69\xed", /* 8280 */ "\x69\xeb\x00\x00\x00\x00\x6b\x43\x6b\x44\x6a\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x42\x4f\xc1\x00\x00\x4f\xc2\x6a\xfc\x6a\xfa\x6a\xf9\x6a\xfd\x4f\xc0\x6b\x41\x6f\x4e\x00\x00\x00\x00\x00\x00\x6c\xd6\x51\xbe\x6c\xd5\x6c\xd7\x00\x00\x51\xbd\x6c\xdc\x51\xc1\x6c\xd2\x6c\xe0\x6c\xe6\x51\xc8\x6c\xe3\x51\xc5\x00\x00\x6c\xd9\x6c\xdf\x6c\xe1\x00\x00\x6c\xd4\x51\xc4\x51\xbf\x6c\xda\x51\xc6\x51\xc9\x51\xc3\x00\x00\x51\xbc\x6c\xde\x6c\xd8\x6c\xe5\x51\xcb\x51\xc7\x51\xc2\x6c\xdd\x55\xef\x6c\xdb\x51\xc0\x51\xca\x00\x00\x6c\xd3\x00\x00\x6c\xe2\x6c\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc5\x53\xbf\x53\xc7\x53\xc4\x6f\x55\x6f\x58\x53\xc0\x00\x00\x6f\x4f\x00\x00\x53\xb9\x53\xc3\x00\x00\x53\xc6\x53\xc8\x6f\x64\x6f\x5b\x00\x00\x53\xb8\x6f\x63\x53\xbc\x53\xba\x53\xb5\x6f\x53\x00\x00\x6f\x62\x6f\x57\x6f\x5a\x6f\x67\x00\x00\x53\xc9\x6f\x61\x53\xc1\x6f\x5c\x6f\x66\x6f\x59\x6f\x5d\x6f\x60\x00\x00\x00\x00\x6f\x51\x6f\x65\x6f\x5f\x00\x00\x00\x00\x6f\x50\x00\x00", /* 8300 */ "\x6f\x54\x53\xc2\x53\xbd\x53\xb6\x53\xbb\x53\xb7\x53\xca\x6f\x52\x71\xc7\x53\xbe\x00\x00\x00\x00\x6f\x5e\x6d\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\xca\x55\xfd\x00\x00\x71\xba\x00\x00\x71\xc5\x71\xc1\x00\x00\x71\xd4\x00\x00\x71\xcc\x00\x00\x71\xc2\x00\x00\x71\xcb\x71\xbc\x71\xc0\x71\xd7\x56\x43\x71\xcf\x71\xc6\x55\xf0\x71\xd5\x71\xb8\x00\x00\x71\xce\x00\x00\x56\x42\x55\xfa\x71\xb7\x55\xf8\x55\xf7\x55\xfc\x71\xcd\x55\xf4\x55\xfb\x6f\x56\x78\x63\x71\xc8\x00\x00\x00\x00\x71\xbe\x56\x41\x71\xbf\x71\xc3\x56\x44\x71\xb9\x71\xd1\x00\x00\x71\xd0\x71\xd8\x55\xf6\x55\xf3\x71\xd6\x71\xd2\x71\xc9\x71\xc4\x55\xf9\x55\xf5\x71\xbb\x55\xf1\x71\xd3\x55\xf2\x00\x00\x71\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xe2\x74\xe4\x74\xe9\x74\xfd\x58\xa2\x58\x98\x00\x00\x74\xe1\x58\xa3\x58\xa4\x74\xec\x74\xf3\x74\xf9", /* 8380 */ "\x00\x00\x74\xe6\x00\x00\x74\xed\x00\x00\x00\x00\x58\xa5\x74\xfb\x74\xf6\x58\xa0\x58\x9e\x74\xf2\x74\xee\x74\xe0\x58\x95\x74\xe5\x74\xdd\x00\x00\x58\x9d\x58\x9f\x74\xea\x74\xe7\x58\x9a\x74\xf7\x58\x97\x74\xe8\x75\x41\x74\xf0\x00\x00\x74\xef\x58\x96\x00\x00\x58\xa1\x00\x00\x58\x99\x74\xde\x74\xe3\x74\xf4\x74\xfa\x58\xa6\x74\xdf\x74\xeb\x74\xf1\x58\x9c\x00\x00\x00\x00\x74\xfc\x74\xf5\x74\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9b\x00\x00\x78\x73\x78\x67\x5a\xdc\x78\x85\x78\x8d\x78\x90\x5a\xda\x78\x6f\x78\x89\x78\x70\x78\x7e\x5a\xe7\x78\x7a\x5a\xe4\x00\x00\x78\x7b\x78\x64\x00\x00\x78\x8a\x00\x00\x00\x00\x5a\xed\x78\x87\x78\x7c\x78\x92\x78\x77\x7b\xee\x00\x00\x78\x95\x5a\xeb\x78\x75\x78\x82\x5a\xee\x5a\xd9\x78\x79\x78\x93\x78\x72\x78\x6b\x78\x76\x00\x00\x78\x6a\x78\x68\x5a\xd5\x78\x8b\x78\x71\x78\x8e\x00\x00\x78\x8f\x5a\xdd\x5a\xe2\x5a\xde\x5a\xe6\x78\x86\x5a\xdf\x78\x7d\x78\x6d\x00\x00\x5a\xd7\x78\x65\x78\x88\x78\x91\x78\x6c\x5a\xe5\x78\x96\x78\x78", /* 8400 */ "\x00\x00\x78\x74\x00\x00\x5a\xd6\x5a\xea\x00\x00\x78\x84\x5a\xec\x00\x00\x78\x7f\x5a\xe1\x5a\xdb\x5a\xe3\x5a\xd8\x5a\xe9\x78\x81\x78\x6e\x78\x83\x78\x69\x78\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xed\x00\x00\x7c\x46\x5c\xdb\x7b\xf2\x00\x00\x7b\xf0\x7b\xdb\x5d\x50\x7b\xeb\x7c\x42\x7b\xe7\x5d\x58\x7c\x41\x7b\xe5\x5a\xe8\x7b\xf5\x7b\xe6\x7b\xfc\x5d\x57\x5d\x4f\x00\x00\x7b\xd0\x7b\xd8\x00\x00\x7b\xf1\x7b\xe9\x7c\x45\x7b\xec\x5d\x5d\x7b\xfd\x00\x00\x5d\x54\x00\x00\x7b\xef\x7b\xf7\x7b\xdc\x7b\xf6\x00\x00\x7c\x4a\x7b\xd7\x7b\xf8\x00\x00\x7c\x48\x00\x00\x7b\xd1\x5a\xe0\x00\x00\x7b\xdf\x7b\xde\x5d\x56\x00\x00\x7b\xe2\x7b\xe4\x7b\xf3\x7c\x47\x5d\x59\x00\x00\x5d\x5a\x00\x00\x7b\xd6\x5d\x52\x7b\xda\x7c\x43\x5d\x5b\x00\x00\x5d\x53\x5d\x55\x5d\x5c\x7c\x49\x7b\xf9\x7b\xf4\x00\x00\x00\x00\x7b\xe1\x7b\xe0\x5d\x51\x7b\xd2\x5d\x4e\x7b\xea\x7b\xd3\x7b\xe8\x00\x00\x00\x00\x7b\xdd\x7c\x44\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x5d\x4d\x00\x00\x00\x00\x00\x00\x7b\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xd5\x7b\xfb\x7b\xd4\x5f\x89\x7f\x7c\x00\x00\x00\x00\x7f\x6b\x00\x00\x00\x00\x7f\x55\x7f\x73\x5f\x81\x7f\x64\x7f\x6e\x5f\x84\x7f\x67\x5f\x82\x7f\x58\x7f\x76\x7f\x57\x7f\x6a\x00\x00\x7f\x56\x00\x00\x00\x00\x7f\x68\x7f\x71\x7f\x6f\x7f\x63\x7f\x5e\x7f\x5c\x00\x00\x7f\x5d\x7f\x70\x7f\x7b\x7f\x65\x5f\x83\x00\x00\x7f\x60\x00\x00\x7f\x74\x00\x00\x5f\x86\x7f\x5f\x7f\x59\x7f\x69\x5f\x8a\x00\x00\x00\x00\x5f\x7d\x5f\x87\x7f\x61\x7f\x5b\x00\x00\x5f\x7f\x7b\xfa\x5f\x7e\x7f\x6c\x00\x00\x5f\x7c\x5f\x8c\x5f\x85\x7f\x6d\x7f\x62\x7f\x5a\x7f\x75\x7f\x66\x5f\x8b\x7f\x79\x5f\x88\x7f\x78\x00\x00\x7f\x72\x7f\x77\x00\x00\x00\x00\x00\x00\x7f\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x7e\x82\x7f\x82\x72\x82\x71\x82\x6d\x61\x7c\x00\x00\x61\x74\x82\x82\x82\x81\x7b\xcf\x82\x6a\x82\x6e\x82\x68\x00\x00\x82\x7b\x82\x6c\x00\x00\x82\x83\x82\x65\x82\x63\x82\x6f\x82\x79\x82\x74\x61\x7e", /* 8500 */ "\x82\x5a\x00\x00\x82\x78\x00\x00\x00\x00\x00\x00\x61\x7f\x7b\xe3\x82\x66\x82\x5d\x82\x60\x82\x87\x82\x67\x82\x5e\x82\x5c\x82\x59\x00\x00\x61\x78\x82\x70\x61\x77\x61\x7b\x82\x6b\x82\x73\x61\x71\x82\x84\x82\x88\x61\x73\x00\x00\x82\x62\x82\x76\x82\x7a\x82\x5f\x82\x85\x61\x7a\x00\x00\x61\x79\x82\x57\x61\x7d\x82\x7d\x82\x61\x82\x75\x82\x5b\x82\x69\x82\x64\x61\x75\x61\x76\x82\x77\x82\x89\x82\x86\x82\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x58\x00\x00\x61\x72\x85\x95\x00\x00\x85\x8c\x85\x8f\x00\x00\x63\x45\x85\x91\x85\x86\x85\x8d\x85\x93\x63\x42\x63\x46\x62\xfd\x00\x00\x00\x00\x85\x88\x85\x98\x00\x00\x00\x00\x85\x92\x00\x00\x85\x89\x85\xa1\x85\x9b\x85\x85\x87\xf1\x85\x8b\x63\x41\x00\x00\x85\x96\x00\x00\x85\xa0\x63\x49\x00\x00\x85\x9d\x85\x8a\x85\x90\x85\x94\x85\x8e\x85\xa2\x85\x9f\x85\x9c\x63\x43\x63\x44\x63\x48\x85\x87\x85\xa3\x63\x47\x85\x99\x00\x00\x00\x00\x85\x97\x00\x00\x00\x00\x00\x00\x85\x9a\x88\x41\x87\xeb\x87\xf0\x87\xfd\x87\xef\x87\xe7\x87\xec\x00\x00\x64\xab\x00\x00", /* 8580 */ "\x87\xe0\x87\xf8\x87\xfa\x87\xdf\x64\xaa\x87\xfc\x87\xf4\x64\xb1\x87\xfb\x87\xed\x64\xb3\x87\xe5\x85\x9e\x87\xf5\x87\xf2\x87\xe1\x88\x43\x64\xad\x00\x00\x00\x00\x64\xae\x87\xe3\x87\xf3\x00\x00\x88\x42\x87\xf6\x87\xe9\x64\xb0\x64\xac\x87\xf7\x87\xea\x88\x44\x87\xe4\x87\xee\x87\xf9\x87\xe6\x87\xe8\x00\x00\x65\xb5\x87\xe2\x64\xb2\x65\xae\x64\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x64\xaf\x65\xb2\x8a\x41\x00\x00\x89\xf4\x89\xef\x89\xf5\x8a\x42\x8a\x46\x8a\x45\x65\xb4\x65\xb3\x00\x00\x00\x00\x89\xf6\x8a\x47\x89\xf9\x89\xf1\x00\x00\x89\xf3\x89\xf2\x89\xf8\x89\xfd\x89\xf0\x89\xf7\x89\xfc\x65\xb1\x00\x00\x89\xfa\x00\x00\x65\xaf\x89\xfb\x65\xad\x65\xb0\x8b\xe2\x8a\x43\x00\x00\x00\x00\x66\x8d\x00\x00\x8b\xda\x8b\xde\x8b\xd6\x8b\xd9\x00\x00\x8b\xe1\x66\x8b\x8b\xe6\x8b\xdf\x00\x00\x8b\xd7\x8b\xe7\x8b\xe0\x66\x8e\x66\x8f\x8b\xe4\x00\x00\x8b\xd8\x66\x8a\x66\x8c\x8b\xd3\x8b\xdb\x8b\xd5\x00\x00\x8b\xe5\x8b\xe3\x8b\xd4\x8b\xdc\x00\x00\x00\x00\x00\x00\x8d\x8d\x66\x90\x8b\xdd\x67\x52\x67\x54\x67\x51\x00\x00\x8d\x92\x8d\x8a\x8d\x88", /* 8600 */ "\x8d\x8c\x8d\x89\x00\x00\x00\x00\x8d\x8e\x8d\x90\x67\x55\x67\x57\x00\x00\x8d\x8f\x67\x58\x67\x56\x8d\x91\x00\x00\x00\x00\x00\x00\x00\x00\x67\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa0\x8e\xa1\x8e\xa7\x67\xa2\x8d\x8b\x8e\xa6\x00\x00\x8e\xad\x8e\xa4\x8e\xab\x8e\xaa\x8d\x87\x8e\xa5\x8a\x44\x8e\xae\x8e\xa3\x8e\xa8\x00\x00\x8e\xac\x8e\xa2\x00\x00\x8f\x9a\x67\xa1\x8e\xa9\x00\x00\x00\x00\x90\x65\x8f\x9b\x8f\x99\x8f\x97\x8f\x98\x8f\x9c\x00\x00\x68\x65\x90\x63\x90\x61\x90\x66\x90\x64\x00\x00\x90\x67\x68\x66\x90\x62\x00\x00\x00\x00\x90\xcb\x00\x00\x00\x00\x91\x56\x91\x57\x91\x58\x00\x00\x00\x00\x91\xb7\x91\xad\x69\xee\x51\xcc\x00\x00\x53\xcb\x00\x00\x71\xda\x71\xd9\x56\x45\x58\xa7\x75\x43\x00\x00\x00\x00\x75\x42\x00\x00\x5a\xef\x5d\x5f\x00\x00\x5d\x5e\x5d\x60\x00\x00\x7f\x7d\x82\x8a\x85\xa4\x85\xa6\x85\xa5\x00\x00\x64\xb4\x88\x45\x8a\x48\x91\x95\x4e\x86\x00\x00\x6c\xe9\x6c\xea\x6c\xe8\x6c\xe7\x51\xcd\x00\x00\x6f\x6b\x6f\x69\x00\x00\x00\x00\x6f\x68\x00\x00\x53\xcc\x53\xce\x53\xcd\x6f\x6a\x00\x00\x00\x00\x00\x00", /* 8680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\xe6\x71\xe3\x71\xe1\x00\x00\x00\x00\x56\x46\x71\xe4\x56\x4b\x71\xde\x71\xed\x00\x00\x71\xef\x71\xdf\x00\x00\x56\x48\x71\xf0\x71\xeb\x71\xdd\x71\xe2\x71\xec\x71\xe8\x71\xe5\x00\x00\x56\x4d\x71\xee\x71\xe0\x00\x00\x00\x00\x71\xe9\x71\xdb\x56\x4c\x56\x49\x71\xe7\x00\x00\x71\xea\x71\xdc\x56\x4a\x56\x47\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb1\x75\x4a\x58\xb0\x00\x00\x75\x4d\x75\x50\x58\xad\x58\xab\x75\x45\x75\x4e\x75\x4c\x75\x49\x75\x51\x75\x52\x75\x54\x75\x55\x75\x44\x58\xaa\x75\x47\x75\x46\x75\x53\x58\xac\x75\x48\x58\xae\x58\xa9\x75\x4b\x58\xb2\x00\x00\x58\xaf\x75\x4f\x00\x00\x00\x00\x00\x00\x5a\xf6\x78\xa5\x00\x00\x78\x9a\x5a\xf3\x00\x00\x7c\x50\x78\xa3\x78\x97\x5a\xf1\x78\x9c\x5a\xf4\x78\xa0\x78\x9e\x5a\xf7\x5a\xf0\x00\x00\x00\x00\x78\x98\x78\x9b\x5a\xf5\x00\x00\x78\x99\x00\x00\x78\xa4\x78\xa2\x78\x9d\x78\x9f\x78\xa1\x5a\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x51\x7c\x57\x7c\x4d\x7c\x53\x5d\x61\x7c\x4f\x5d\x67\x00\x00\x00\x00\x5d\x66\x00\x00", /* 8700 */ "\x5d\x65\x7c\x56\x5d\x68\x5d\x69\x7c\x4c\x7c\x59\x5d\x6a\x5d\x64\x5d\x63\x7c\x55\x5d\x6b\x7c\x4b\x7c\x4e\x7c\x58\x7c\x54\x00\x00\x00\x00\x7f\x9e\x7f\x93\x5d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x93\x7f\x87\x7f\x9c\x7f\x88\x5f\x8e\x00\x00\x7f\x85\x00\x00\x7f\x8e\x7f\x86\x5f\x90\x7f\x7f\x7f\x9b\x5f\x91\x7f\x98\x7f\x99\x7f\x81\x5f\x96\x7f\x90\x00\x00\x7f\x8a\x7f\x91\x7f\x84\x00\x00\x7f\x9d\x7f\x95\x7f\x8f\x7f\x7e\x5f\x92\x7f\x96\x00\x00\x5f\x95\x7f\x9a\x00\x00\x7f\x94\x5f\x8f\x7f\x92\x00\x00\x7f\x8c\x5f\x8d\x7f\x83\x7f\x8b\x7f\x97\x7f\x89\x00\x00\x00\x00\x7f\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8a\x7c\x52\x82\x9c\x82\xa5\x82\x9b\x82\x97\x82\x94\x61\x8b\x82\x92\x5f\x94\x82\x8b\x61\x89\x82\x91\x61\x88\x82\x96\x82\x93\x82\xa3\x82\x9e\x82\x98\x82\x9d\x61\x84\x82\x95\x82\xa8\x82\x8c\x82\x8d\x82\xa4\x61\x85\x82\xa9\x61\x87\x82\xaa\x82\x9a\x7f\x82\x82\xa0\x82\x99\x82\xa2\x82\x9f\x00\x00\x00\x00\x00\x00\x82\x90\x61\x82\x82\xa7\x61\x83\x82\x8e\x61\x86\x85\xb0\x82\xa1\x82\xa6\x00\x00\x00\x00\x00\x00\x00\x00", /* 8780 */ "\x00\x00\x85\xad\x61\x81\x63\x4a\x85\xb7\x85\xb3\x00\x00\x85\xb1\x85\xac\x85\xbb\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x85\xa8\x85\xb4\x85\xb5\x85\xab\x85\xaa\x85\xb8\x00\x00\x85\xae\x85\xa9\x85\xaf\x00\x00\x85\xba\x85\xa7\x85\xb9\x85\xb6\x63\x4c\x63\x4b\x00\x00\x00\x00\x63\x4d\x85\xb2\x8a\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x47\x64\xba\x88\x4b\x88\x48\x88\x4f\x88\x55\x88\x4a\x00\x00\x88\x5e\x64\xb7\x88\x58\x88\x4d\x88\x59\x88\x54\x88\x5b\x88\x4c\x64\xbc\x64\xbb\x88\x4e\x88\x5c\x88\x46\x88\x5a\x64\xb5\x00\x00\x88\x52\x88\x51\x88\x56\x88\x49\x64\xb9\x00\x00\x64\xbd\x88\x50\x88\x57\x64\xbe\x88\x53\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb6\x64\xb8\x8a\x55\x8a\x53\x00\x00\x00\x00\x8a\x5a\x8a\x57\x8a\x5b\x00\x00\x8a\x4c\x8a\x54\x8a\x5f\x88\x5d\x8a\x50\x65\xb9\x82\x8f\x8a\x4b\x8a\x58\x8a\x52\x8a\x4f\x8a\x4a\x8a\x49\x8a\x5e\x00\x00\x8a\x4e\x8a\x4d\x65\xb7\x8a\x56\x00\x00\x65\xb6\x00\x00\x00\x00\x65\xb8\x8a\x51\x8a\x5d\x00\x00\x8b\xeb\x8b\xec\x00\x00\x66\x94\x8b\xe9\x66\x91\x8b\xf1\x00\x00\x66\x95\x8b\xf3", /* 8800 */ "\x8b\xe8\x8a\x5c\x8b\xf5\x8b\xea\x00\x00\x66\x92\x8b\xf0\x00\x00\x8b\xf2\x8b\xed\x8b\xf4\x8b\xef\x8b\xee\x66\x93\x00\x00\x00\x00\x8d\x94\x8d\x95\x00\x00\x8d\x97\x67\x59\x67\x5a\x8d\x98\x8d\x96\x00\x00\x8d\x93\x00\x00\x8e\xb1\x8e\xb4\x8e\xb0\x00\x00\x67\xa6\x8e\xb2\x67\xa5\x67\xa4\x67\xa3\x8e\xb3\x8f\xa1\x8f\x9f\x00\x00\x8f\x9e\x8e\xaf\x8f\xa0\x8e\xb5\x8f\x9d\x00\x00\x90\x6a\x90\x48\x90\x68\x68\x67\x90\x69\x90\x6b\x00\x00\x90\xce\x68\x87\x90\xcd\x90\xcc\x68\x88\x00\x00\x68\xa6\x91\x7f\x91\x97\x91\x96\x91\x98\x4e\x87\x6f\x6c\x00\x00\x71\xf1\x71\xf2\x00\x00\x00\x00\x00\x00\x78\xa6\x00\x00\x8e\xb6\x90\xcf\x4e\x88\x53\xcf\x6f\x6d\x00\x00\x00\x00\x00\x00\x75\x56\x58\xb3\x00\x00\x78\xa8\x78\xa7\x5a\xf8\x00\x00\x5d\x6c\x82\xab\x61\x8c\x00\x00\x61\x8d\x00\x00\x00\x00\x00\x00\x63\x4f\x68\x89\x4e\x89\x00\x00\x00\x00\x00\x00\x6f\x6e\x51\xcf\x6f\x70\x6f\x6f\x53\xd0\x00\x00\x71\xf3\x00\x00\x71\xfa\x56\x4e\x71\xf8\x71\xf6\x00\x00\x71\xfd\x71\xf4\x71\xf5\x56\x4f\x00\x00\x56\x53\x00\x00\x00\x00\x72\x41\x56\x52\x71\xfc\x71\xf9", /* 8880 */ "\x71\xf7\x56\x50\x56\x51\x71\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb5\x75\x57\x00\x00\x58\xba\x75\x67\x58\xb9\x75\x69\x00\x00\x00\x00\x75\x5d\x58\xb7\x75\x68\x00\x00\x75\x58\x58\xb8\x75\x64\x75\x60\x75\x62\x75\x5c\x75\x63\x00\x00\x00\x00\x58\xb4\x75\x5f\x00\x00\x75\x5e\x75\x5a\x00\x00\x75\x65\x00\x00\x00\x00\x75\x61\x75\x59\x00\x00\x75\x5b\x58\xb6\x75\x66\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xfb\x78\xb3\x00\x00\x00\x00\x00\x00\x78\xaf\x78\xb1\x78\xac\x78\xab\x78\xa9\x00\x00\x78\xb0\x78\xb2\x78\xae\x00\x00\x78\xad\x5a\xf9\x5a\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xb5\x5d\x74\x7c\x5b\x7c\x61\x7c\x5c\x7c\x5d\x00\x00\x7c\x62\x00\x00\x5d\x76\x00\x00\x5d\x6e\x5d\x75\x7c\x5a\x78\xaa\x5d\x71\x5d\x6f\x7c\x60\x7c\x5f\x5d\x70\x5d\x72\x7c\x5e\x5d\x6d\x00\x00\x5d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xa0\x5f\x9d\x00\x00\x00\x00\x7f\xab\x7f\xaa\x00\x00\x7f\xa5\x5f\x9f\x7f\xa9\x7f\xa1\x7f\xa2\x5f\x97\x5f\x99\x00\x00\x7f\xa7\x7f\x9f\x5f\x9b\x5f\x9a\x7f\xa3\x7f\xa8\x7f\xa6\x5f\x9c\x7f\xa4\x00\x00", /* 8900 */ "\x00\x00\x78\xb4\x5f\x98\x00\x00\x00\x00\x82\xac\x82\xb3\x61\x8f\x00\x00\x82\xb7\x61\x93\x82\xaf\x82\xad\x00\x00\x82\xb6\x00\x00\x61\x8e\x82\xb5\x61\x90\x61\x91\x82\xae\x61\x92\x82\xb4\x82\xb0\x82\xb1\x82\xb2\x5f\x9e\x00\x00\x00\x00\x00\x00\x85\xbc\x85\xc8\x00\x00\x63\x54\x85\xc3\x85\xc5\x00\x00\x63\x52\x85\xbd\x85\xc1\x00\x00\x85\xc4\x63\x50\x63\x53\x85\xc7\x85\xbf\x85\xc0\x85\xc6\x85\xbe\x85\xc2\x63\x51\x88\x60\x00\x00\x88\x5f\x64\xc0\x88\x65\x64\xc2\x00\x00\x00\x00\x64\xbf\x88\x61\x64\xc3\x88\x62\x00\x00\x00\x00\x88\x63\x88\x66\x00\x00\x64\xc1\x00\x00\x8a\x64\x00\x00\x00\x00\x8a\x67\x00\x00\x8a\x61\x8a\x63\x00\x00\x00\x00\x8a\x62\x8a\x65\x8a\x66\x88\x64\x8a\x60\x00\x00\x00\x00\x66\x98\x8b\xf9\x8b\xfc\x8c\x41\x8b\xf7\x8b\xf8\x8b\xfb\x8b\xfd\x66\x99\x66\x97\x66\x96\x8b\xfa\x8b\xf6\x8d\x99\x67\x5b\x00\x00\x8d\x9a\x00\x00\x00\x00\x8e\xb8\x67\xa7\x8e\xba\x67\xa8\x8e\xb7\x8e\xb9\x67\xf1\x00\x00\x8f\xa2\x67\xf0\x90\x6e\x90\x6d\x00\x00\x90\x6c\x00\x00\x00\x00\x91\x59\x91\x5a\x91\x5c\x91\x5b\x00\x00\x69\xef\x4e\x8a", /* 8980 */ "\x00\x00\x53\xd1\x75\x6a\x5a\xfc\x00\x00\x7c\x63\x65\xba\x00\x00\x8c\x42\x00\x00\x00\x00\x4f\xc3\x00\x00\x00\x00\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x58\xbb\x00\x00\x78\xb6\x5a\xfd\x78\xb8\x78\xb7\x00\x00\x00\x00\x7c\x64\x5d\x77\x7f\xac\x7f\xaf\x7f\xae\x00\x00\x7f\xad\x82\xb8\x82\xba\x82\xb9\x00\x00\x63\x56\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x64\xc4\x88\x67\x88\x69\x88\x68\x00\x00\x00\x00\x65\xbb\x00\x00\x00\x00\x00\x00\x8c\x44\x8c\x43\x00\x00\x8d\x9b\x67\x5c\x00\x00\x00\x00\x67\xa9\x8f\xa4\x8f\xa3\x68\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc4\x6f\x71\x53\xd2\x75\x6d\x75\x6b\x00\x00\x00\x00\x75\x6c\x78\xba\x78\xbb\x7c\x6b\x78\xb9\x00\x00\x7c\x65\x7c\x69\x7c\x68\x7c\x6a\x5d\x78\x7c\x67\x7c\x66\x7c\x6c\x00\x00\x7f\xb2\x7f\xb0\x00\x00\x7f\xb1\x82\xbd\x82\xbb\x00\x00\x00\x00\x82\xbc\x85\xc9\x88\x6a\x88\x6b\x65\xbc\x00\x00\x8c\x45\x8d\x9c\x67\x5d\x00\x00\x8e\xbb\x8f\xa5\x67\xf2\x00\x00\x90\x6f\x91\x5d", /* 8a00 */ "\x4f\xc5\x00\x00\x53\xd4\x53\xd5\x6f\x72\x00\x00\x00\x00\x6f\x73\x53\xd3\x00\x00\x56\x59\x00\x00\x56\x57\x00\x00\x56\x56\x56\x5d\x56\x55\x56\x5e\x72\x42\x56\x5b\x00\x00\x56\x58\x56\x5c\x56\x5a\x56\x54\x00\x00\x00\x00\x58\xc4\x00\x00\x58\xbe\x75\x71\x58\xc3\x00\x00\x00\x00\x58\xc5\x58\xbf\x00\x00\x58\xc0\x00\x00\x75\x6f\x00\x00\x00\x00\x58\xbd\x00\x00\x75\x70\x58\xc2\x00\x00\x00\x00\x75\x6e\x58\xc1\x00\x00\x00\x00\x5b\x4b\x00\x00\x5b\x4d\x00\x00\x00\x00\x78\xbe\x5b\x4c\x5b\x41\x5b\x45\x00\x00\x5d\x8c\x7c\x71\x78\xc0\x5b\x46\x00\x00\x00\x00\x78\xc3\x78\xc4\x5b\x4a\x00\x00\x78\xc6\x00\x00\x78\xc8\x00\x00\x78\xc9\x78\xbd\x78\xbc\x78\xca\x5b\x49\x78\xc7\x78\xc5\x00\x00\x5b\x47\x5b\x43\x5b\x4e\x78\xc1\x78\xc2\x78\xbf\x00\x00\x5b\x48\x00\x00\x00\x00\x5b\x44\x00\x00\x5b\x42\x7c\x70\x5d\x87\x5d\x82\x00\x00\x00\x00\x5d\x7c\x00\x00\x5d\x8d\x5d\x7d\x00\x00\x5d\x79\x5d\x89\x5d\x86\x5d\x88\x00\x00\x5d\x7e\x5d\x84\x5d\x7a\x5d\x7b\x7c\x78\x7c\x75\x7c\x6d\x7c\x72\x00\x00\x5d\x8a\x7c\x79\x5d\x8b\x5d\x81\x00\x00\x00\x00\x7c\x6f", /* 8a80 */ "\x00\x00\x7c\x77\x7c\x73\x7c\x76\x7c\x74\x5d\x85\x7c\x6e\x5d\x7f\x00\x00\x00\x00\x00\x00\x7f\xb5\x5f\xa1\x5f\xa4\x00\x00\x7f\xb7\x00\x00\x5f\xac\x7f\xb6\x5f\xa6\x00\x00\x61\x98\x7f\xb8\x00\x00\x5f\xab\x7f\xb4\x5f\xad\x00\x00\x00\x00\x00\x00\x5f\xa2\x00\x00\x5d\x83\x5f\xa5\x00\x00\x5f\xa3\x5f\xa7\x5f\xa9\x5f\xa0\x5f\xae\x5f\xaa\x00\x00\x5f\xa8\x7f\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x61\x9f\x00\x00\x61\x9b\x00\x00\x00\x00\x00\x00\x61\xa2\x00\x00\x82\xc0\x61\xa3\x82\xcc\x82\xc5\x61\x94\x82\xcd\x82\xc7\x61\x9e\x82\xc8\x00\x00\x61\x9d\x82\xcb\x61\x97\x82\xc9\x82\xbf\x61\x96\x85\xd4\x61\x9c\x00\x00\x61\x99\x00\x00\x61\xa1\x00\x00\x82\xbe\x00\x00\x82\xc2\x61\x95\x82\xc1\x82\xc3\x82\xc4\x61\xa0\x82\xc6\x82\xca\x82\xce\x00\x00\x61\xa4\x63\x5c\x85\xcf\x85\xd5\x85\xd2\x85\xca\x85\xd6\x85\xcb\x00\x00\x85\xd1\x00\x00\x63\x57\x63\x5d\x85\xd7\x00\x00\x00\x00\x63\x59\x00\x00\x63\x63\x63\x5e\x85\xd9\x85\xd3\x63\x5a\x85\xcc\x63\x64\x85\xcd\x85\xce\x63\x65\x63\x62\x61\x9a\x00\x00\x63\x58\x85\xda\x63\x66\x00\x00\x63\x5f\x85\xd8", /* 8b00 */ "\x63\x5b\x63\x60\x63\x61\x00\x00\x64\xcc\x88\x70\x88\x79\x88\x76\x88\x78\x00\x00\x64\xc9\x88\x71\x00\x00\x88\x77\x64\xc5\x88\x73\x64\xcd\x88\x6f\x88\x74\x88\x7b\x85\xd0\x88\x75\x88\x6e\x64\xc6\x88\x6d\x64\xc7\x88\x7c\x64\xc8\x88\x7a\x64\xcb\x88\x6c\x00\x00\x64\xca\x00\x00\x88\x72\x8a\x6a\x8a\x78\x8a\x73\x8a\x75\x8a\x69\x65\xbd\x00\x00\x8a\x68\x65\xc0\x65\xbf\x00\x00\x8a\x77\x8a\x6f\x8a\x6c\x8a\x72\x00\x00\x8a\x6b\x00\x00\x8a\x6d\x8a\x76\x8a\x74\x00\x00\x65\xbe\x8a\x7b\x8a\x79\x8a\x70\x8a\x7a\x8a\x71\x00\x00\x8c\x49\x66\x9a\x8c\x50\x00\x00\x00\x00\x8e\xbe\x66\xa1\x8a\x6e\x8c\x47\x66\x9d\x8c\x48\x8c\x4d\x00\x00\x00\x00\x66\x9f\x66\xa0\x8c\x46\x8c\x4f\x8c\x51\x8c\x4a\x8c\x4c\x8c\x4e\x8c\x4b\x8c\x52\x66\x9c\x66\xa2\x66\x9e\x00\x00\x66\x9b\x8d\x9f\x00\x00\x67\x62\x8d\x9d\x00\x00\x00\x00\x8d\xa1\x00\x00\x8d\xa2\x67\x60\x8d\xa3\x8d\xa0\x00\x00\x8d\x9e\x67\x63\x67\x5f\x8d\xa4\x00\x00\x67\x61\x67\x5e\x00\x00\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x67\xab\x8e\xbd\x8e\xbc\x8e\xbf\x8e\xc0\x00\x00\x67\xac\x8f\xa6\x8f\xab", /* 8b80 */ "\x67\xf3\x00\x00\x8f\xa8\x00\x00\x8f\xa7\x8f\xaa\x8f\xa9\x00\x00\x90\x73\x00\x00\x68\x68\x90\x72\x90\x70\x00\x00\x90\x71\x00\x00\x00\x00\x00\x00\x68\x8b\x68\x8a\x90\xd0\x90\xd1\x68\x8c\x00\x00\x91\x5e\x91\x5f\x68\xb3\x00\x00\x68\xb9\x00\x00\x91\x99\x91\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc6\x00\x00\x75\x72\x00\x00\x75\x73\x7c\x7a\x7f\xb9\x82\xcf\x64\xcf\x00\x00\x64\xce\x8a\x7c\x8c\x53\x00\x00\x90\x74\x4f\xc7\x72\x43\x56\x5f\x58\xc6\x7c\x7c\x7c\x7b\x61\xa5\x82\xd0\x61\xa6\x88\x7d\x65\xc1\x00\x00\x00\x00\x00\x00\x68\xc2\x4f\xc8\x6c\xeb\x72\x44\x00\x00\x00\x00\x58\xc7\x00\x00\x75\x74\x75\x75\x00\x00\x78\xcb\x00\x00\x5b\x4f\x5d\x8e\x00\x00\x7c\x7e\x7c\x7d\x7c\x7f\x00\x00\x7f\xba\x7f\xbb\x5f\xaf\x63\x67\x61\xa7\x63\x68\x00\x00\x88\x82\x88\x7e\x88\x81\x88\x7f\x64\xd0\x00\x00\x8a\x7d\x8c\x55\x8c\x54\x6b\x45\x56\x61\x56\x60\x72\x45\x00\x00\x75\x76\x00\x00\x00\x00", /* 8c80 */ "\x78\xcd\x78\xcc\x5b\x50\x00\x00\x7c\x82\x7c\x83\x7c\x81\x00\x00\x00\x00\x5d\x90\x5d\x8f\x00\x00\x5f\xb1\x5f\xb0\x00\x00\x82\xd1\x85\xdd\x85\xdb\x85\xdc\x63\x69\x88\x84\x88\x83\x00\x00\x8a\x81\x8a\x7f\x8a\x7e\x8c\x56\x00\x00\x91\x9a\x4f\xc9\x53\xd6\x00\x00\x53\xd7\x56\x62\x56\x63\x72\x47\x72\x46\x75\x77\x00\x00\x58\xcd\x58\xcb\x58\xc8\x58\xcc\x58\xca\x58\xc9\x00\x00\x00\x00\x5b\x51\x78\xd0\x00\x00\x5d\x95\x5b\x53\x5b\x58\x78\xd2\x5b\x5a\x5b\x59\x5b\x5c\x78\xd1\x78\xce\x5b\x56\x5b\x52\x5b\x54\x78\xcf\x5b\x5b\x5b\x57\x5b\x55\x5d\x97\x5d\x96\x5d\x94\x5d\x98\x00\x00\x5d\x92\x5d\x93\x00\x00\x5d\x91\x00\x00\x7c\x84\x00\x00\x00\x00\x7f\xbd\x00\x00\x5f\xb3\x5f\xb4\x5f\xb2\x00\x00\x7f\xbc\x00\x00\x7f\xbe\x00\x00\x82\xd4\x82\xd6\x00\x00\x61\xb0\x82\xd7\x61\xa9\x82\xd3\x61\xa8\x61\xb2\x61\xae\x61\xaf\x61\xab\x82\xd2\x61\xaa\x82\xd8\x82\xd5\x00\x00\x61\xb1\x00\x00\x61\xac\x61\xad\x85\xdf\x00\x00\x85\xe1\x85\xe0\x00\x00\x85\xe2\x63\x6a\x85\xde\x00\x00\x00\x00\x64\xd4\x88\x85\x64\xd1\x64\xd5\x64\xd3\x64\xd2\x8a\x82\x00\x00", /* 8d00 */ "\x8a\x85\x00\x00\x8a\x84\x00\x00\x8a\x83\x65\xc2\x8c\x57\x8c\x58\x66\xa3\x8c\x59\x66\xa4\x00\x00\x00\x00\x67\x65\x00\x00\x67\x64\x8e\xc1\x00\x00\x00\x00\x67\xad\x8e\xc2\x8f\xac\x67\xf4\x67\xf5\x00\x00\x90\x75\x00\x00\x68\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x00\x00\x58\xcf\x58\xce\x7c\x85\x7c\x86\x00\x00\x5f\xb5\x85\xe3\x61\xb3\x85\xe4\x88\x86\x4f\xcb\x00\x00\x6f\x74\x53\xd9\x53\xd8\x00\x00\x72\x48\x56\x64\x72\x49\x75\x7a\x00\x00\x75\x79\x00\x00\x75\x78\x00\x00\x00\x00", /* 8d80 */ "\x78\xd4\x5b\x5f\x00\x00\x00\x00\x78\xd3\x5b\x5e\x00\x00\x00\x00\x00\x00\x78\xd5\x5b\x5d\x00\x00\x7c\x88\x7c\x8b\x7c\x89\x7c\x8a\x7c\x8e\x7c\x87\x7c\x8f\x7c\x8c\x7c\x8d\x5f\xb7\x7f\xbf\x00\x00\x00\x00\x5f\xb6\x00\x00\x82\xdc\x82\xda\x00\x00\x00\x00\x61\xb4\x82\xd9\x82\xdb\x00\x00\x61\xb5\x00\x00\x85\xe5\x00\x00\x85\xe6\x64\xd6\x00\x00\x8c\x5b\x8c\x5d\x8c\x5a\x8c\x5c\x8d\xa5\x8e\xc3\x00\x00\x00\x00\x91\x81\x4f\xcc\x53\xda\x72\x4a\x72\x4c\x72\x4b\x00\x00\x75\x7d\x58\xd1\x00\x00\x75\x7b\x00\x00\x58\xd0\x75\x7e\x00\x00\x75\x7f\x75\x7c\x00\x00\x00\x00\x78\xe1\x5b\x67\x78\xd9\x78\xdf\x00\x00\x00\x00\x5b\x62\x5b\x65\x78\xd8\x5b\x60\x78\xdc\x7c\x95\x5b\x64\x00\x00\x78\xd7\x00\x00\x78\xdd\x78\xda\x78\xe0\x78\xd6\x78\xde\x5b\x63\x5b\x66\x78\xdb\x5b\x61\x00\x00\x5d\x9a\x7c\x91\x5d\x99\x7c\x98\x7c\x97\x5d\xa0\x00\x00\x5d\xa1\x7c\x99\x5d\x9b\x7c\x96\x5d\x9f\x7c\x9b\x7c\x92\x00\x00\x7c\x94\x5d\x9c\x7c\x90\x7c\x93\x7c\x9a\x5d\x9d\x7c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9e\x00\x00\x5f\xb8\x7f\xc4\x7f\xca\x7f\xc2", /* 8e00 */ "\x7f\xcb\x00\x00\x7f\xc1\x7f\xc6\x7f\xcc\x7f\xc9\x7f\xc8\x7f\xc7\x00\x00\x7f\xc0\x7f\xc5\x00\x00\x00\x00\x7f\xc3\x00\x00\x61\xba\x61\xb7\x82\xe5\x82\xea\x82\xec\x82\xe9\x82\xe2\x82\xe4\x82\xee\x82\xeb\x82\xe6\x82\xef\x82\xe3\x82\xed\x61\xb8\x61\xbe\x61\xbc\x82\xdd\x61\xbd\x61\xb9\x82\xde\x82\xe0\x82\xdf\x82\xe7\x82\xe8\x00\x00\x61\xbb\x00\x00\x61\xb6\x00\x00\x00\x00\x82\xe1\x00\x00\x85\xf0\x63\x6c\x00\x00\x85\xe7\x63\x6d\x63\x70\x85\xec\x00\x00\x85\xe9\x63\x6f\x00\x00\x00\x00\x85\xed\x85\xee\x85\xe8\x85\xf1\x85\xea\x85\xef\x63\x6e\x00\x00\x63\x6b\x85\xeb\x00\x00\x88\x8c\x64\xd9\x64\xd7\x64\xda\x64\xd8\x88\x8b\x88\x88\x88\x87\x00\x00\x88\x8a\x00\x00\x00\x00\x88\x89\x8a\x93\x65\xc8\x8a\x8a\x8a\x89\x00\x00\x65\xc3\x8a\x8f\x8a\x8e\x8a\x86\x8a\x91\x8a\x8b\x65\xc7\x8a\x88\x8a\x90\x8a\x87\x65\xc4\x65\xc6\x8a\x8c\x65\xc5\x8a\x8d\x00\x00\x8a\x92\x8c\x61\x00\x00\x66\xa9\x8c\x5e\x00\x00\x8c\x62\x00\x00\x00\x00\x66\xa6\x8c\x60\x66\xab\x00\x00\x66\xa8\x00\x00\x8c\x5f\x00\x00\x66\xaa\x8c\x63\x66\xa5\x00\x00\x00\x00\x00\x00", /* 8e80 */ "\x00\x00\x67\x67\x67\x69\x00\x00\x8d\xa8\x67\x68\x8d\xa6\x66\xa7\x8d\xa7\x67\x66\x67\xae\x67\xb0\x8e\xc5\x67\xaf\x8e\xc4\x00\x00\x8f\xb1\x67\xf6\x8f\xb0\x67\xf7\x8f\xae\x8f\xad\x8f\xb2\x8f\xb3\x90\x76\x00\x00\x8f\xaf\x00\x00\x00\x00\x90\xd5\x90\xd2\x90\xd3\x90\xd4\x68\xa8\x00\x00\x91\x62\x91\x61\x91\x60\x91\x82\x00\x00\x91\xae\x91\x9b\x68\xba\x4f\xcd\x56\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xbf\x00\x00\x00\x00\x85\xf2\x00\x00\x00\x00\x65\xc9\x00\x00\x8c\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x9c\x4f\xce\x51\xd0\x53\xdc\x53\xdb\x00\x00\x56\x68\x00\x00\x72\x4d\x56\x66\x72\x4e\x56\x67\x00\x00\x00\x00\x75\x85\x75\x81\x00\x00\x00\x00\x58\xd2\x75\x84\x75\x83\x75\x82\x58\xd3\x75\x86\x75\x87\x00\x00\x00\x00\x00\x00\x78\xe8\x78\xe6\x78\xea\x78\xeb\x78\xf1\x00\x00\x78\xed\x78\xef\x00\x00\x78\xe7\x78\xe2\x00\x00\x78\xee\x00\x00\x00\x00\x78\xf0\x78\xe9\x78\xec\x78\xe3\x5b\x69\x78\xe5\x78\xe4\x5b\x68\x5b\x6a\x00\x00\x5d\xa5\x7c\x9e", /* 8f00 */ "\x7c\xa0\x7c\x9f\x7c\xa4\x5d\xa3\x00\x00\x7c\xa1\x7c\x9d\x7c\xa2\x7c\xa3\x5d\xa4\x5d\xa6\x7c\xa5\x00\x00\x7f\xd0\x7f\xcf\x00\x00\x7f\xcd\x7f\xce\x5f\xba\x5f\xbc\x5f\xb9\x5f\xbb\x82\xf6\x82\xf7\x82\xf2\x00\x00\x82\xf3\x61\xc1\x61\xc6\x61\xc0\x61\xc7\x61\xc2\x82\xf4\x00\x00\x00\x00\x82\xf5\x82\xf1\x61\xc8\x61\xc4\x00\x00\x00\x00\x61\xc3\x61\xc5\x00\x00\x82\xf0\x00\x00\x85\xf4\x63\x72\x00\x00\x00\x00\x85\xf6\x63\x74\x85\xf9\x85\xf5\x85\xf3\x85\xf8\x63\x73\x85\xf7\x00\x00\x63\x71\x00\x00\x00\x00\x64\xdc\x64\xdf\x88\x8e\x00\x00\x64\xdd\x88\x8d\x64\xdb\x64\xde\x8a\x94\x8a\x95\x8a\x96\x65\xca\x00\x00\x8a\x97\x00\x00\x65\xcb\x66\xad\x8c\x67\x8c\x68\x8c\x66\x8c\x65\x8c\x69\x66\xac\x8d\xac\x8d\xaa\x8d\xab\x8d\xad\x8d\xa9\x8d\xae\x8e\xc7\x00\x00\x8e\xc8\x8e\xc6\x67\xb1\x8f\xb4\x67\xf8\x8f\xb5\x90\x78\x90\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcf\x5b\x6b\x00\x00\x00\x00\x5d\xa7\x00\x00\x00\x00\x00\x00\x5f\xbd\x00\x00\x00\x00\x63\x76\x00\x00\x63\x75\x00\x00\x00\x00\x00\x00\x00\x00\x66\xae\x67\x49\x67\xb2\x4f\xd0\x56\x69\x5d\xa8\x00\x00\x8c\x6a\x48\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x47\x00\x00\x00\x00\x4f\xd1\x00\x00\x4f\xd4\x4f\xd3\x4f\xd2\x00\x00\x00\x00\x6b\x46\x00\x00\x6c\xed\x00\x00\x6c\xef\x51\xd1\x00\x00\x00\x00\x51\xd3\x6c\xec\x6c\xee\x51\xd2\x6c\xf1\x6c\xf0\x6c\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x78\x6f\x76\x53\xdf\x6f\x75\x53\xe4\x53\xe1\x53\xde\x00\x00\x53\xe5\x00\x00\x53\xe0\x53\xe3\x00\x00\x53\xe2\x6f\x77\x00\x00\x53\xdd\x00\x00\x00\x00\x00\x00\x56\x6f\x72\x50\x72\x56\x56\x6c\x56\x73\x00\x00\x56\x6e\x72\x53\x72\x55\x56\x71\x72\x4f\x72\x52", /* 9000 */ "\x56\x6d\x56\x6a\x72\x51\x56\x70\x72\x54\x56\x72\x56\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x75\x89\x75\x8c\x58\xd5\x00\x00\x58\xdf\x58\xdb\x75\x8a\x00\x00\x00\x00\x58\xe3\x58\xdc\x58\xe1\x58\xd7\x00\x00\x58\xd4\x58\xd6\x58\xe2\x75\x8b\x58\xda\x58\xdd\x58\xd9\x58\xde\x75\x8d\x58\xe0\x58\xd8\x75\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xf2\x5b\x6c\x78\xf4\x00\x00\x5b\x6e\x5b\x70\x00\x00\x78\xf3\x5b\x6d\x5b\x71\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x5d\xae\x7c\xaa\x5d\xb6\x7c\xa7\x00\x00\x5d\xb7\x5d\xac\x00\x00\x7c\xa8\x00\x00\x00\x00\x5d\xb1\x00\x00\x7c\xa9\x5d\xaa\x5d\xa9\x00\x00\x5d\xb4\x5d\xb3\x5d\xb2\x5d\xb0\x5d\xb5\x7c\xa6\x5d\xab\x5d\xad\x5d\xaf\x00\x00\x00\x00\x5f\xbf\x5f\xc2\x00\x00\x5f\xc6\x5f\xc0\x5f\xc5\x5f\xc3\x00\x00\x5f\xbe\x00\x00\x5f\xc4\x5f\xc1\x00\x00\x00\x00\x00\x00\x82\xfb\x61\xcb\x61\xc9\x00\x00\x82\xfc\x00\x00\x61\xcc\x61\xca\x82\xfa\x82\xf9\x00\x00\x63\x7a\x82\xf8\x63\x78\x63\x77\x85\xfa\x61\xcd\x63\x79\x85\xfb\x63\x7c\x85\xfc\x63\x7b\x64\xe1\x88\x90\x64\xe0", /* 9080 */ "\x64\xe5\x64\xe3\x64\xe4\x65\xcd\x64\xe2\x88\x8f\x85\xfd\x65\xcc\x65\xce\x00\x00\x66\xaf\x66\xb0\x00\x00\x8d\xaf\x00\x00\x68\x6a\x68\x69\x4f\xd6\x00\x00\x00\x00\x69\xf4\x56\x74\x00\x00\x69\xf1\x69\xf2\x69\xf0\x00\x00\x69\xf3\x00\x00\x00\x00\x6b\x4b\x6b\x48\x6b\x4d\x6b\x49\x4f\xd7\x4f\xda\x00\x00\x6b\x4a\x4f\xd9\x6b\x4c\x00\x00\x00\x00\x4f\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xf5\x6c\xf7\x51\xd6\x6c\xf3\x6c\xf6\x6c\xf4\x51\xd4\x51\xd7\x00\x00\x51\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x7a\x6f\x7e\x6f\x7b\x00\x00\x53\xe8\x00\x00\x53\xe9\x00\x00\x6f\x7d\x00\x00\x6f\x7f\x6f\x82\x00\x00\x53\xe6\x6f\x81\x00\x00\x00\x00\x53\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x94\x6f\x7c\x72\x57\x72\x60\x72\x5e\x72\x59\x72\x5a\x72\x5f\x72\x61\x56\x76\x00\x00\x72\x5c\x72\x58\x56\x75\x56\x77\x72\x5b\x72\x62\x72\x5d\x00\x00\x00\x00\x58\xe4\x75\x97\x75\x8f\x75\x95\x75\x96\x58\xe5\x00\x00\x75\x8e\x75\x90\x6f\x79\x75\x92\x75\x93\x75\x91\x5b\x73\x00\x00\x00\x00\x00\x00\x78\xfb\x86\x41\x78\xfc\x78\xf9\x58\xe6\x5b\x75\x78\xf8", /* 9100 */ "\x79\x41\x78\xfd\x5b\x72\x79\x44\x78\xf7\x79\x43\x78\xf5\x79\x42\x78\xfa\x5b\x74\x00\x00\x7c\xb1\x00\x00\x7c\xac\x7c\xb2\x7c\xad\x7c\xab\x7c\xae\x5d\xb8\x00\x00\x7c\xb0\x00\x00\x7c\xaf\x5d\xb9\x5f\xc8\x5f\xc7\x7f\xd7\x7f\xda\x7f\xd2\x7f\xd6\x5f\xc9\x7f\xd5\x7f\xd3\x7f\xd9\x7f\xd4\x7f\xd1\x7f\xd8\x00\x00\x83\x45\x61\xd0\x8a\x98\x83\x42\x83\x43\x83\x41\x78\xf6\x61\xcf\x83\x46\x82\xfd\x61\xce\x61\xd1\x83\x44\x86\x42\x63\x7d\x86\x43\x86\x44\x00\x00\x88\x91\x64\xe6\x8a\x99\x8a\x9a\x00\x00\x00\x00\x8a\x9b\x8c\x6c\x8c\x6b\x8d\xb1\x00\x00\x8d\xb0\x8e\xca\x8e\xcb\x8e\xc9\x8f\xb6\x67\xf9\x4f\xdb\x53\xeb\x53\xea\x56\x7a\x56\x79\x72\x64\x72\x65\x72\x63\x00\x00\x56\x78\x75\x9b\x00\x00\x75\x9c\x75\x98\x58\xe7\x75\x99\x00\x00\x75\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x79\x47\x79\x49\x79\x45\x79\x48\x5b\x76\x79\x46\x5b\x77\x00\x00\x00\x00\x79\xf9\x5d\xbc\x5d\xbb\x00\x00\x5d\xba\x00\x00\x7c\xb3\x7c\xb4\x00\x00\x00\x00\x7f\xdc\x7f\xde\x5f\xcd\x5f\xca\x00\x00\x5f\xcc\x5f\xcb\x7f\xdd\x7f\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9180 */ "\x83\x4d\x83\x4a\x83\x4b\x61\xd5\x83\x4c\x83\x47\x83\x48\x61\xd2\x00\x00\x61\xd3\x83\x49\x61\xd4\x00\x00\x86\x48\x00\x00\x86\x49\x86\x46\x86\x47\x63\x7e\x86\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x95\x88\x92\x88\x94\x64\xe9\x88\x98\x64\xe8\x88\x96\x88\x99\x88\x97\x88\x93\x64\xe7\x00\x00\x8a\x9d\x00\x00\x8a\x9e\x8a\x9c\x00\x00\x8a\xa0\x65\xcf\x65\xd0\x8c\x6e\x66\xb2\x8a\x9f\x8c\x6d\x66\xb1\x8d\xb4\x8d\xb5\x67\x6a\x8d\xb3\x00\x00\x8d\xb2\x00\x00\x8e\xcc\x67\xb3\x00\x00\x90\x79\x90\xd7\x90\xd6\x00\x00\x68\x8f\x68\xa9\x90\xd8\x91\x83\x00\x00\x68\xbb\x4f\xdc\x51\xd8\x00\x00\x5d\xbd\x00\x00\x67\x6b\x4f\xdd\x53\xec\x58\xe8\x5b\x78\x65\xd1\x51\xd9\x00\x00\x6f\x84\x6f\x83\x72\x66\x00\x00\x56\x7d\x56\x7b\x56\x7f\x72\x68\x00\x00\x56\x7e\x56\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x72\x67\x58\xeb\x75\xa2\x00\x00\x58\xea\x58\xec\x75\xa7\x58\xee\x75\xa4\x75\xa5\x75\x9d\x58\xed\x75\xa8\x00\x00\x00\x00\x75\x9f\x00\x00\x75\xa0\x75\x9e\x58\xe9\x00\x00\x75\xa6\x75\xa1\x75\xa3\x00\x00\x00\x00\x00\x00\x79\x55\x00\x00\x79\x54", /* 9200 */ "\x79\x52\x79\x4a\x79\x59\x79\x4d\x79\x57\x79\x5e\x79\x56\x5b\x81\x00\x00\x5b\x7c\x79\x4b\x00\x00\x79\x51\x5b\x7e\x00\x00\x79\x50\x5b\x7f\x5b\x82\x79\x53\x00\x00\x5b\x79\x5b\x7a\x79\x5f\x79\x5d\x00\x00\x79\x5c\x79\x4e\x00\x00\x79\x5a\x00\x00\x5b\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x7b\x79\x5b\x79\x4c\x79\x4f\x79\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x44\x7c\xbe\x00\x00\x7c\xb7\x7c\xca\x7c\xd3\x7c\xba\x5d\xc8\x00\x00\x7c\xc7\x5d\xbe\x5d\xc0\x5d\xcc\x7c\xb8\x00\x00\x00\x00\x5d\xc1\x5d\xc3\x5d\xcd\x5d\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xcb\x7c\xc0\x00\x00\x7c\xb5\x5d\xc9\x7c\xbf\x5d\xc5\x7c\xd1\x5d\xca\x7c\xcf\x7c\xc3\x7c\xcd\x5d\xc7\x7c\xb6\x7c\xd0\x7c\xcb\x00\x00\x7c\xd2\x5d\xbf\x00\x00\x00\x00\x5d\xce\x5d\xc4\x00\x00\x00\x00\x7c\xbc\x00\x00\x7c\xc4\x7c\xc8\x00\x00\x7c\xcc\x5d\xc6\x7c\xbb\x7c\xb9\x7c\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x7c\xc2\x7c\xc1\x00\x00\x7c\xc6\x7c\xc9\x00\x00\x7c\xce\x00\x00\x00\x00\x00\x00\x7f\xe1\x00\x00\x5f\xce\x7f\xeb\x7f\xe3\x5f\xd3\x5f\xd7\x7f\xf4\x7f\xfc\x7f\xed", /* 9280 */ "\x5f\xcf\x00\x00\x7f\xf1\x7c\xbd\x00\x00\x5f\xd0\x7f\xf8\x7f\xfd\x7f\xf5\x00\x00\x7f\xf7\x80\x43\x7f\xf9\x7f\xe7\x7f\xf0\x00\x00\x00\x00\x5f\xd8\x00\x00\x5f\xd4\x7f\xe5\x7f\xf2\x5f\xd2\x7f\xec\x5f\xd1\x7f\xfa\x7f\xe9\x7f\xe2\x5f\xd5\x80\x42\x00\x00\x00\x00\x7f\xe4\x7f\xf6\x7f\xf3\x7f\xee\x7f\xe0\x7f\xdf\x7f\xe8\x7f\xfb\x5f\xd6\x80\x41\x7f\xe6\x7f\xea\x61\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe2\x61\xdd\x83\x6e\x83\x6b\x83\x53\x61\xd8\x00\x00\x00\x00\x00\x00\x61\xd7\x61\xde\x00\x00\x00\x00\x00\x00\x83\x51\x61\xdc\x83\x5d\x83\x4f\x83\x50\x61\xd6\x83\x6d\x61\xe0\x83\x60\x83\x65\x83\x5f\x86\x5b\x83\x5b\x83\x63\x83\x61\x83\x54\x83\x4e\x83\x69\x61\xdf\x83\x6a\x00\x00\x83\x64\x00\x00\x83\x59\x83\x57\x83\x52\x00\x00\x00\x00\x00\x00\x83\x5a\x83\x67\x83\x56\x83\x66\x83\x6c\x00\x00\x00\x00\x61\xdb\x00\x00\x83\x62\x83\x68\x83\x5e\x83\x58\x61\xd9\x00\x00\x00\x00\x00\x00\x7f\xef\x83\x5c\x61\xe1\x83\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x61\x63\x82\x86\x60\x86\x5d\x86\x70\x63\x86\x00\x00\x86\x6d\x86\x65", /* 9300 */ "\x86\x6f\x86\x56\x86\x63\x00\x00\x63\x88\x00\x00\x86\x4e\x00\x00\x86\x4c\x86\x6e\x00\x00\x86\x6c\x86\x6b\x86\x5a\x86\x59\x86\x4f\x63\x8a\x00\x00\x86\x55\x86\x5f\x86\x6a\x63\x8d\x86\x71\x00\x00\x64\xf1\x63\x8f\x63\x89\x86\x53\x00\x00\x86\x5c\x86\x4b\x86\x4d\x63\x7f\x63\x8c\x63\x85\x86\x54\x86\x64\x86\x5e\x63\x8b\x86\x4a\x64\xec\x86\x66\x86\x69\x63\x87\x00\x00\x86\x58\x63\x8e\x63\x84\x00\x00\x00\x00\x00\x00\x63\x83\x86\x62\x86\x68\x63\x81\x00\x00\x86\x51\x86\x67\x00\x00\x00\x00\x86\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x57\x88\x9f\x00\x00\x88\xa4\x64\xee\x64\xf0\x88\xaa\x64\xea\x88\xb9\x88\xb0\x88\xa5\x88\xa6\x88\xaf\x00\x00\x64\xf7\x88\xae\x88\x9e\x88\xad\x88\xa1\x88\xba\x64\xf6\x64\xf4\x88\xa2\x00\x00\x88\xb5\x00\x00\x88\xa7\x88\xb4\x00\x00\x88\xb6\x88\x9d\x64\xef\x00\x00\x88\xb7\x00\x00\x00\x00\x88\xab\x00\x00\x64\xf3\x88\xa8\x00\x00\x00\x00\x64\xf5\x88\xb1\x00\x00\x00\x00\x00\x00\x64\xed\x88\xa3\x88\xb2\x00\x00\x88\xac\x86\x50\x88\xb3\x88\xa0\x00\x00\x64\xf2\x00\x00", /* 9380 */ "\x88\xb8\x00\x00\x64\xeb\x88\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xae\x8a\xa7\x65\xd3\x00\x00\x8a\xa2\x8a\xb1\x8a\xa9\x88\xa9\x00\x00\x8a\xb3\x8a\xa3\x00\x00\x65\xd2\x8a\xad\x65\xd4\x65\xdc\x65\xda\x8a\xaf\x65\xdb\x8a\xa5\x00\x00\x8a\xa6\x8a\xab\x8a\xb0\x00\x00\x88\x9a\x65\xd5\x8a\xb8\x8a\xb5\x8a\xb9\x8a\xac\x8a\xa8\x8a\xb6\x8c\x79\x8a\xaa\x00\x00\x65\xd8\x00\x00\x65\xd7\x88\x9c\x65\xd9\x8a\xb2\x8a\xb4\x65\xd6\x8a\xb7\x8a\xa1\x00\x00\x8a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x83\x00\x00\x8c\x72\x66\xb6\x8c\x81\x00\x00\x00\x00\x8c\x70\x66\xb7\x00\x00\x8c\x7b\x00\x00\x8c\x77\x66\xbc\x8c\x82\x8c\x71\x8c\x74\x66\xb4\x8c\x84\x00\x00\x8c\x7c\x8c\x7f\x66\xba\x66\xbf\x66\xbd\x8c\x78\x8c\x73\x00\x00\x66\xb8\x66\xb9\x8c\x6f\x66\xb5\x00\x00\x66\xb3\x66\xbb\x8c\x7e\x66\xbe\x00\x00\x8c\x7a\x8c\x85\x66\xc0\x00\x00\x00\x00\x00\x00\x8c\x76\x00\x00\x8c\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xc2\x8d\xd0\x8d\xc4\x8d\xcb\x8c\x75\x8d\xc9\x8d\xb8\x8d\xce\x67\x6e\x8d\xbc\x8d\xcd", /* 9400 */ "\x8d\xc3\x00\x00\x00\x00\x67\x6d\x00\x00\x00\x00\x8d\xd2\x8d\xc5\x00\x00\x8d\xca\x8d\xcc\x8d\xb6\x8d\xcf\x8d\xc1\x8d\xc6\x8d\xba\x8d\xbe\x8d\xd1\x8d\xc8\x8d\xb7\x8d\xbb\x8d\xbd\x8d\xc7\x00\x00\x67\x6c\x8d\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbf\x8e\xd0\x8e\xd5\x67\xba\x8e\xd7\x00\x00\x67\xb4\x00\x00\x8e\xd3\x8e\xd9\x67\xb9\x67\xb5\x00\x00\x67\xb6\x8e\xcf\x8e\xd6\x67\xb8\x8e\xd4\x67\xb7\x8e\xce\x8e\xd2\x8e\xd1\x00\x00\x8e\xcd\x8e\xd8\x00\x00\x00\x00\x00\x00\x67\xfa\x8f\xbd\x8f\xc0\x8f\xbc\x8f\xbe\x8f\xbf\x8f\xb9\x8f\xba\x8f\xb7\x00\x00\x00\x00\x8f\xbb\x8f\xb8\x67\xfb\x67\xfc\x00\x00\x00\x00\x90\x7b\x00\x00\x90\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x7c\x90\x7e\x00\x00\x68\x6c\x00\x00\x90\x7a\x68\x6b\x68\x6d\x00\x00\x00\x00\x00\x00\x90\xda\x90\xdb\x68\x90\x90\xd9\x00\x00\x91\x64\x91\x63\x91\x65\x68\xab\x91\x66\x68\xaa\x91\x67\x91\x84\x91\x87\x91\x86\x68\xb4\x91\x85\x00\x00\x00\x00\x00\x00\x68\xbe\x68\xbc\x68\xbd\x68\xc3", /* 9480 */ "\x91\xb0\x91\xb1\x91\xaf\x91\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xda\x00\x00\x00\x00\x75\xa9\x79\x60\x83\x6f\x8c\x86\x00\x00\x00\x00", /* 9580 */ "\x51\xdb\x00\x00\x53\xed\x56\x81\x00\x00\x00\x00\x75\xaa\x00\x00\x75\xab\x58\xef\x00\x00\x5b\x85\x79\x62\x79\x61\x5b\x89\x5b\x84\x79\x63\x5b\x86\x5b\x88\x5b\x87\x5b\x83\x00\x00\x00\x00\x00\x00\x5d\xcf\x00\x00\x00\x00\x7c\xd7\x7c\xd5\x00\x00\x7c\xd6\x7c\xd4\x00\x00\x5f\xd9\x00\x00\x5f\xdc\x5f\xde\x5f\xdd\x00\x00\x00\x00\x5f\xda\x5f\xdb\x00\x00\x83\x71\x83\x70\x61\xe3\x83\x72\x00\x00\x83\x73\x61\xe4\x00\x00\x00\x00\x00\x00\x86\x79\x86\x77\x88\xc0\x00\x00\x86\x75\x86\x76\x63\x90\x86\x72\x86\x7a\x86\x74\x86\x78\x88\xbc\x00\x00\x00\x00\x88\xbe\x00\x00\x88\xbf\x64\xfc\x88\xbb\x64\xfb\x88\xbd\x64\xf8\x64\xf9\x64\xfa\x86\x73\x00\x00\x00\x00\x65\xdf\x8a\xbc\x8a\xba\x8a\xbb\x65\xdd\x65\xe0\x65\xde\x00\x00\x00\x00\x00\x00\x8c\x87\x8c\x88\x66\xc1\x00\x00\x8d\xd3\x8d\xd5\x8d\xd4\x67\x6f\x67\xbb\x8e\xdc\x8e\xdb\x8e\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x69\x8a\x00\x00\x69\xf7\x4e\x8b\x69\xf5\x69\xf8\x69\xf6\x00\x00\x00\x00\x00\x00\x6b\x4f\x00\x00\x4f\xe1\x00\x00\x4f\xe2\x6b\x51\x4f\xdf\x6b\x50\x6b\x4e\x4f\xe0\x4f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xf8\x6c\xfb\x51\xdf\x6c\xfa\x6c\xf9\x00\x00\x51\xde\x51\xdd\x00\x00\x51\xe1\x6c\xfc\x51\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x89\x53\xef\x53\xf0\x53\xf1\x6f\x8a\x6f\x86\x53\xee\x6f\x87\x00\x00\x6f\x88\x6f\x85\x00\x00\x00\x00\x00\x00\x56\x88\x00\x00\x00\x00\x56\x85\x72\x69\x56\x86\x56\x89\x72\x6a\x00\x00\x56\x84\x56\x82\x56\x83\x56\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf0\x75\xae\x58\xf8\x75\xad\x00\x00\x75\xb0\x58\xf4\x75\xaf\x5b\x91\x58\xf2\x58\xf5\x58\xf1\x58\xf6\x58\xf7\x58\xf3\x00\x00\x00\x00\x00\x00\x75\xac\x5b\x8d\x79\x65\x00\x00", /* 9680 */ "\x79\x69\x00\x00\x00\x00\x79\x68\x5b\x92\x5b\x8e\x5b\x8f\x79\x64\x79\x66\x79\x67\x5b\x8a\x5b\x8c\x00\x00\x5b\x90\x5b\x8b\x00\x00\x00\x00\x7c\xda\x7c\xd8\x7c\xd9\x5d\xd1\x5d\xd2\x00\x00\x7c\xdb\x5d\xd0\x5f\xdf\x00\x00\x5f\xe1\x5f\xe0\x00\x00\x80\x45\x00\x00\x00\x00\x80\x46\x83\x75\x00\x00\x83\x74\x00\x00\x00\x00\x63\x91\x63\x92\x86\x7b\x63\x93\x00\x00\x88\xc3\x00\x00\x88\xc1\x00\x00\x88\xc2\x64\xfd\x00\x00\x8a\xbd\x66\xc2\x00\x00\x48\xeb\x00\x00\x65\x41\x51\xe2\x00\x00\x56\x8a\x72\x6b\x00\x00\x00\x00\x75\xb1\x58\xf9\x5b\x93\x79\x6a\x79\x6c\x5b\x95\x5b\x94\x5b\x96\x5b\x97\x79\x6b\x5d\xd5\x5d\xd6\x5d\xd4\x5f\xe2\x5d\xd3\x7c\xdc\x00\x00\x00\x00\x00\x00\x5f\xe3\x83\x76\x86\x7c\x63\x94\x65\x42\x8a\xbe\x8a\xc2\x65\xe3\x8a\xbf\x65\xe4\x65\xe2\x8a\xc3\x65\xe5\x8a\xc1\x00\x00\x8c\x89\x65\xe1\x66\xc3\x00\x00\x90\xdc\x00\x00\x00\x00\x51\xe3\x58\xfb\x58\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x98\x79\x6e\x79\x6d\x5b\x99\x00\x00\x00\x00\x7c\xe0\x5d\xda\x5d\xd7\x7c\xdf\x5d\xd9\x7c\xdd\x5d\xd8\x00\x00\x7c\xde\x00\x00\x80\x47", /* 9700 */ "\x5f\xe4\x00\x00\x83\x79\x00\x00\x61\xe5\x83\x77\x61\xe6\x61\xe7\x83\x78\x61\xe8\x00\x00\x86\x7d\x00\x00\x63\x98\x63\x95\x63\x9a\x86\x7f\x63\x96\x86\x7e\x63\x99\x00\x00\x00\x00\x63\x97\x00\x00\x88\xc6\x88\xc8\x00\x00\x00\x00\x65\x43\x88\xc7\x65\x44\x88\xc5\x88\xc4\x00\x00\x8a\xc5\x8a\xc4\x65\xe6\x8a\xc6\x8c\x8e\x66\xc5\x8c\x8d\x8c\x8a\x66\xc4\x8c\x8b\x8c\x8c\x00\x00\x8d\xd6\x8d\xd7\x67\x70\x00\x00\x67\xbe\x00\x00\x00\x00\x8e\xdd\x00\x00\x00\x00\x67\xbc\x67\xbd\x8e\xde\x00\x00\x00\x00\x67\xfd\x68\x41\x8f\xc1\x00\x00\x00\x00\x68\x91\x90\xde\x68\x93\x00\x00\x90\xdd\x90\xdf\x68\x92\x91\x68\x00\x00\x91\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe4\x00\x00\x00\x00\x00\x00\x5d\xdb\x00\x00\x80\x48\x00\x00\x83\x7a\x63\x9b\x63\x9c\x00\x00\x51\xe5\x00\x00\x61\xe9\x66\xc6\x53\xf2\x00\x00\x00\x00\x00\x00\x63\x9d\x00\x00\x68\x6e\x53\xf3\x75\xb2\x00\x00\x79\x6f\x00\x00\x79\x71\x00\x00\x79\x70\x00\x00\x7c\xe4\x7c\xe1\x5d\xdc\x00\x00\x5d\xdd\x7c\xe2\x7c\xe3\x00\x00\x80\x4a\x80\x4f\x5f\xe5\x80\x49\x80\x4b\x80\x52", /* 9780 */ "\x80\x4d\x80\x51\x80\x4e\x80\x4c\x80\x50\x5f\xe6\x00\x00\x00\x00\x83\x7d\x00\x00\x83\x7b\x61\xeb\x00\x00\x61\xea\x83\x7c\x61\xec\x00\x00\x00\x00\x00\x00\x00\x00\x86\x83\x00\x00\x00\x00\x86\x82\x63\x9e\x86\x81\x88\xc9\x00\x00\x88\xcb\x88\xcd\x88\xcc\x00\x00\x65\x45\x88\xca\x8a\xcd\x65\xe7\x8a\xcb\x8a\xce\x65\xe8\x00\x00\x8a\xc9\x00\x00\x8a\xcc\x8a\xca\x8a\xc7\x65\xe9\x8a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x8f\x00\x00\x00\x00\x8c\x91\x8c\x90\x00\x00\x8d\xd8\x00\x00\x8d\xd9\x00\x00\x00\x00\x00\x00\x8e\xdf\x00\x00\x68\x43\x00\x00\x68\x42\x90\x7f\x90\x81\x68\x94\x90\xe0\x00\x00\x68\xb5\x00\x00\x53\xf4\x5b\x9a\x80\x54\x80\x53\x83\x7f\x83\x7e\x00\x00\x00\x00\x65\x46\x88\xcf\x88\xce\x8a\xd1\x8a\xcf\x8a\xd2\x8a\xd0\x00\x00\x00\x00\x66\xc7\x8c\x92\x8c\x93\x8c\x94\x00\x00\x8e\xe0\x00\x00\x8f\xc2\x00\x00\x90\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf5\x00\x00\x00\x00\x86\x84\x88\xd0\x00\x00\x53\xf6\x00\x00\x00\x00\x5f\xe7\x00\x00\x86\x85\x65\xea\x8a\xd3\x66\xc8\x00\x00\x8d\xda\x8d\xdb\x67\xbf", /* 9800 */ "\x90\x82\x53\xf7\x59\x41\x59\x42\x75\xb3\x5b\x9b\x5b\x9c\x79\x72\x5b\x9d\x00\x00\x5d\xe1\x00\x00\x5d\xe3\x7c\xe6\x7c\xe7\x7c\xe5\x5d\xde\x5d\xdf\x5d\xe2\x5d\xe0\x00\x00\x00\x00\x80\x55\x5f\xe8\x5f\xe9\x00\x00\x00\x00\x83\x87\x61\xef\x83\x82\x83\x81\x00\x00\x83\x86\x61\xed\x00\x00\x00\x00\x63\xa5\x00\x00\x83\x83\x83\x88\x83\x85\x83\x84\x00\x00\x61\xee\x00\x00\x63\xa3\x00\x00\x86\x87\x63\x9f\x00\x00\x86\x88\x00\x00\x00\x00\x86\x86\x00\x00\x63\xa2\x63\xa0\x63\xa4\x00\x00\x63\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\xd1\x00\x00\x88\xd6\x88\xd2\x88\xd5\x65\x47\x00\x00\x87\xc0\x88\xd4\x88\xd3\x00\x00\x65\xed\x65\xeb\x65\xee\x65\xec\x8a\xd4\x8a\xd5\x8a\xd6\x65\xef\x00\x00\x00\x00\x00\x00\x8c\x98\x66\xca\x8c\x96\x00\x00\x66\xcb\x8c\x95\x8c\x97\x66\xc9\x8d\xdf\x8d\xdc\x00\x00\x8d\xdd\x8d\xde\x8e\xe1\x67\xc1\x00\x00\x67\xc0\x00\x00\x8f\xc4\x8f\xc3\x68\x44\x00\x00\x00\x00\x00\x00\x68\x6f\x68\x95\x68\xac\x91\x69\x91\x9e\x91\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf8\x79\x73\x00\x00\x00\x00\x7c\xe8\x80\x56\x80\x57\x5f\xea\x00\x00\x5f\xeb\x83\x89\x61\xf0\x00\x00\x00\x00\x65\x48\x00\x00\x8a\xd7\x00\x00\x65\xf0\x8c\x9b\x66\xcc\x8c\x9a\x8c\x9c\x8c\x99\x8e\xe4\x8d\xe0\x8d\xe1\x00\x00\x67\x71\x00\x00\x8e\xe3\x00\x00\x00\x00\x8e\xe2\x00\x00\x8f\xc5\x91\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf9\x00\x00\x00\x00\x00\x00\x53\xfa\x00\x00\x00\x00\x56\x8b\x72\x6c\x00\x00\x75\xb4\x00\x00\x5b\x9e\x00\x00\x5b\xa1\x5b\x9f\x79\x74\x00\x00\x5b\xa3\x00\x00\x5b\xa0\x00\x00\x00\x00\x5b\xa2\x00\x00\x5d\xe5\x00\x00\x7c\xe9\x00\x00\x00\x00\x7c\xea\x83\x8b\x00\x00\x5d\xe4\x5d\xe6\x5d\xe7\x00\x00", /* 9900 */ "\x80\x59\x00\x00\x80\x58\x5f\xec\x00\x00\x5f\xed\x00\x00\x80\x5a\x83\x8a\x5f\xef\x61\xf1\x00\x00\x5f\xee\x00\x00\x00\x00\x00\x00\x63\xa6\x83\x8c\x61\xf3\x61\xf2\x83\x8d\x83\x90\x83\x8e\x83\x8f\x61\xf4\x00\x00\x63\xab\x63\xa9\x00\x00\x00\x00\x63\xa8\x86\x8a\x00\x00\x63\xaa\x00\x00\x00\x00\x86\x89\x88\xd7\x00\x00\x86\x8b\x63\xa7\x86\x8c\x88\xda\x88\xd8\x88\xd9\x88\xde\x65\xf4\x88\xdd\x88\xe0\x88\xdf\x88\xdc\x88\xdb\x00\x00\x65\x49\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xda\x00\x00\x8a\xd9\x65\xf3\x65\xf1\x65\xf2\x00\x00\x8a\xd8\x00\x00\x8c\x9f\x00\x00\x66\xcd\x00\x00\x8c\x9e\x8c\x9d\x66\xce\x00\x00\x8d\xe6\x8d\xe5\x00\x00\x8d\xe3\x00\x00\x8d\xe2\x67\x73\x67\x72\x8d\xe7\x8f\xc6\x68\x45\x8e\xe6\x67\xc2\x8e\xe5\x8d\xe4\x00\x00\x8f\xc7\x68\x70\x00\x00\x68\xad\x91\x6a\x00\x00\x91\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xfb\x75\xb5\x88\xe1\x53\xfc\x00\x00\x00\x00\x80\x5c\x80\x5b\x86\x8d\x00\x00\x00\x00\x88\xe3\x00\x00\x88\xe2\x00\x00\x65\xf5\x8c\xa0\x8c\xa1\x67\x74\x00\x00\x00\x00\x91\xa2\x56\x8c\x5b\xa5\x5b\xa4\x7c\xeb\x7c\xed\x5d\xe9\x7c\xec\x5d\xe8\x5d\xea\x7c\xee\x00\x00\x00\x00\x00\x00\x80\x5e\x80\x60\x80\x5f\x00\x00\x80\x62\x00\x00\x00\x00\x00\x00\x5f\xf0\x80\x61\x80\x5d\x00\x00\x00\x00\x00\x00\x80\x63\x00\x00\x83\x97\x00\x00\x83\x9a\x83\x9c\x83\x92\x83\x96\x83\x93\x61\xf6\x61\xf9\x61\xfb\x83\x94\x83\x95\x61\xfa\x83\x98\x83\x9b\x83\x99\x61\xfc\x00\x00\x61\xf8\x83\x91\x61\xf5\x00\x00\x61\xf7\x00\x00\x00\x00\x63\xad\x86\x93\x86\x91\x86\x90\x00\x00\x86\x96\x00\x00\x86\x95\x86\x94\x00\x00\x86\x8f\x63\xac\x86\x8e\x00\x00\x86\x92\x63\xae\x00\x00\x00\x00\x88\xe6\x00\x00\x88\xea\x88\xe7\x88\xe9\x88\xe8\x88\xe5\x88\xeb\x88\xee\x88\xec\x88\xed\x65\x4b", /* 9a00 */ "\x00\x00\x65\x4a\x88\xe4\x88\xef\x8a\xdf\x8a\xe2\x8a\xe4\x8a\xe3\x00\x00\x8a\xdd\x8a\xe1\x8a\xdc\x00\x00\x8a\xde\x65\xf6\x8a\xdb\x00\x00\x8a\xe0\x00\x00\x00\x00\x8c\xae\x8c\xa3\x66\xcf\x00\x00\x00\x00\x66\xd0\x8c\xa2\x8c\xa7\x8c\xad\x8c\xa5\x8c\xac\x00\x00\x8c\xa9\x00\x00\x8c\xa8\x8c\xab\x8c\xa6\x8c\xa4\x00\x00\x8c\xaa\x00\x00\x8d\xee\x8d\xec\x67\x75\x8d\xeb\x8d\xf1\x8d\xef\x00\x00\x67\x76\x8d\xea\x8d\xe8\x00\x00\x8d\xe9\x67\x78\x8d\xed\x67\x77\x8d\xf0\x8e\xe7\x8e\xed\x00\x00\x00\x00\x8e\xe8\x67\xc6\x8e\xee\x67\xc5\x8e\xec\x8e\xeb\x67\xc4\x8e\xea\x67\xc3\x8e\xe9\x00\x00\x8f\xcd\x8f\xcf\x8f\xce\x00\x00\x8f\xcb\x68\x47\x8f\xc8\x8f\xcc\x8f\xd1\x00\x00\x8f\xd0\x8f\xc9\x8f\xca\x68\x46\x90\x83\x68\x73\x00\x00\x90\x84\x68\x71\x68\x72\x00\x00\x00\x00\x90\xe2\x68\x96\x91\x88\x00\x00\x68\xb6\x00\x00\x91\xa3\x68\xb7\x91\xa4\x91\xa5\x91\xb3\x91\xb2\x68\xc6\x91\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8d\x00\x00\x00\x00\x7c\xf0\x00\x00\x7c\xef\x00\x00\x5f\xf1\x5f\xf2\x80\x64\x00\x00\x83\x9d\x86\x99\x00\x00\x00\x00\x61\xfd\x63\xaf\x86\x97\x00\x00\x86\x9a\x63\xb0\x00\x00\x88\xf0\x86\x98\x8a\xe5\x65\xf7\x8c\xaf\x00\x00\x00\x00\x00\x00\x8d\xf4\x8d\xf2\x00\x00\x00\x00\x8d\xf3\x00\x00\x00\x00\x8e\xef\x00\x00\x67\xc7\x8f\xd2\x68\x76\x68\x48\x68\x74\x68\x75\x90\xe3\x68\xae\x00\x00\x56\x8e\x00\x00\x00\x00\x00\x00\x8a\xe6\x00\x00\x00\x00\x72\x6d\x00\x00\x5d\xeb\x00\x00\x80\x65\x00\x00\x00\x00\x5f\xf3\x80\x66\x00\x00\x00\x00\x00\x00\x83\x9f\x83\x9e\x63\xb2\x62\x41\x62\x42\x00\x00\x83\xa2\x83\xa1\x83\xa0\x00\x00\x00\x00\x86\x9b\x86\x9e\x00\x00\x86\x9d\x86\x9c\x63\xb1\x88\xf4\x88\xf2\x88\xf1\x00\x00", /* 9b00 */ "\x00\x00\x88\xf3\x00\x00\x65\xf8\x8a\xe8\x8a\xe9\x65\xf9\x00\x00\x8a\xe7\x00\x00\x8c\xb1\x8c\xb0\x8c\xb3\x66\xd1\x8c\xb2\x00\x00\x8d\xf5\x8d\xf7\x8d\xf6\x00\x00\x00\x00\x8e\xf0\x8e\xf3\x8e\xf1\x8e\xf2\x8f\xd3\x68\x49\x00\x00\x00\x00\x00\x00\x90\x85\x90\x86\x90\x87\x00\x00\x68\x97\x68\xaf\x91\xa6\x56\x8f\x00\x00\x62\x43\x63\xb3\x8a\xea\x00\x00\x8f\xd4\x00\x00\x00\x00\x91\xb4\x72\x6e\x00\x00\x68\xc7\x56\x90\x86\x9f\x00\x00\x8a\xeb\x00\x00\x8c\xb4\x00\x00\x00\x00\x8e\xf4\x8f\xd5\x56\x91\x00\x00\x80\x67\x80\x68\x00\x00\x5f\xf4\x5f\xf5\x83\xa4\x62\x45\x62\x44\x83\xa3\x00\x00\x88\xf5\x00\x00\x8a\xec\x8a\xee\x8a\xed\x65\xfc\x65\xfb\x65\xfa\x00\x00\x67\xc9\x8e\xf5\x00\x00\x67\xc8\x8f\xd7\x8f\xd6\x00\x00\x68\x98\x90\xe4\x59\x43\x7c\xf1\x00\x00\x00\x00\x00\x00\x80\x6b\x80\x69\x80\x6a\x00\x00\x00\x00\x83\xad\x00\x00\x83\xa8\x83\xa5\x83\xac\x00\x00\x00\x00\x00\x00\x83\xae\x00\x00\x00\x00\x62\x47\x83\xab\x83\xa7\x00\x00\x00\x00\x83\xa6\x83\xaa\x83\xa9\x62\x46\x00\x00\x00\x00\x86\xaa\x86\xa5\x86\xa3\x86\xac\x86\xa4\x00\x00", /* 9b80 */ "\x86\xa0\x00\x00\x86\xa6\x00\x00\x00\x00\x86\xa1\x89\x41\x86\xa2\x86\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xa9\x63\xb4\x86\xa8\x86\xa7\x00\x00\x86\xab\x00\x00\x00\x00\x00\x00\x00\x00\x88\xf6\x88\xf9\x00\x00\x00\x00\x88\xf8\x00\x00\x89\x43\x88\xfb\x89\x42\x00\x00\x88\xfd\x88\xfc\x88\xfa\x00\x00\x88\xf7\x00\x00\x65\x4e\x65\x4d\x00\x00\x65\x4f\x65\x4c\x89\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xf4\x8a\xf7\x00\x00\x8a\xf5\x8a\xf9\x00\x00\x00\x00\x00\x00\x8a\xfa\x00\x00\x8a\xf2\x66\x44\x8a\xf3\x00\x00\x8a\xf1\x8a\xf8\x00\x00\x8a\xf0\x8a\xef\x66\x43\x66\x41\x65\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xf6\x8c\xbd\x8c\xc3\x66\xd4\x8c\xbe\x00\x00\x8c\xc1\x8c\xc5\x66\xd5\x8c\xc0\x00\x00\x8c\xb8\x00\x00\x8c\xb7\x8c\xc4\x8c\xbb\x00\x00\x8c\xb9\x8c\xc2\x8c\xba\x66\xd3\x66\xd2\x00\x00\x8c\xb5\x8c\xb6\x8c\xbf\x00\x00\x00\x00\x00\x00\x8c\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xfa\x8d\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x66\x42\x00\x00\x00\x00", /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xfb\x8e\x44\x8e\x42\x8d\xf9\x8e\x47\x00\x00\x8d\xf8\x00\x00\x67\x7a\x8e\x43\x00\x00\x00\x00\x00\x00\x8d\xfc\x67\x79\x8e\x46\x00\x00\x00\x00\x8e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x8e\xf8\x8e\xf7\x00\x00\x00\x00\x00\x00\x8f\x41\x00\x00\x8e\xfa\x8e\xfd\x67\xcb\x00\x00\x00\x00\x8e\xfb\x8e\xfc\x00\x00\x8e\xf6\x8e\xf9\x67\xca\x00\x00\x00\x00\x00\x00\x68\x4b\x8f\xe2\x8f\xdd\x8f\xe1\x00\x00\x8f\xe4\x8f\xe0\x00\x00\x8f\xdc\x00\x00\x68\x4d\x8f\xdf\x8f\xe3\x68\x4c\x8f\xda\x8e\x41\x8f\xde\x00\x00\x00\x00\x8f\xdb\x00\x00\x8f\xd8\x00\x00\x8f\xd9\x68\x4a\x90\x8b\x90\x8d\x90\x90\x90\x8c\x90\x91\x00\x00\x90\x8a\x00\x00\x90\x88\x00\x00\x68\x77\x90\x8e\x68\x79\x68\x78\x90\x89\x90\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x90\xe9\x68\x99\x90\xea\x00\x00\x90\xe8\x90\xe5\x00\x00\x00\x00\x90\xe7\x90\xe6\x91\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x91\x6d\x91\x6c\x00\x00\x00\x00\x91\x8b\x00\x00\x91\x8a\x91\x89\x91\x8c\x00\x00\x68\xbf\x68\xc0\x91\xba\x91\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x44\x79\x75\x7c\xf4\x00\x00\x5d\xec\x7c\xf2\x00\x00\x00\x00\x7c\xf3\x00\x00\x00\x00\x00\x00\x80\x6c\x80\x6d\x5f\xf8\x5f\xf6\x80\x6e\x5f\xf7\x83\xb3\x00\x00\x83\xb6\x83\xb0\x83\xb7\x83\xaf\x83\xb1\x00\x00\x83\xb2", /* 9d00 */ "\x83\xb5\x00\x00\x00\x00\x62\x4a\x83\xba\x83\xb9\x62\x48\x83\xb4\x83\xb8\x62\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xb7\x00\x00\x63\xb9\x00\x00\x86\xb2\x63\xb5\x00\x00\x86\xaf\x86\xb5\x86\xb8\x00\x00\x63\xba\x00\x00\x86\xb4\x86\xb1\x86\xb9\x86\xb0\x00\x00\x86\xb6\x63\xb6\x00\x00\x86\xae\x63\xb7\x00\x00\x63\xb8\x86\xb3\x00\x00\x00\x00\x00\x00\x89\x56\x89\x49\x89\x4a\x89\x4d\x89\x4b\x00\x00\x89\x45\x00\x00\x00\x00\x89\x48\x89\x52\x89\x4c\x00\x00\x00\x00\x65\x50\x00\x00\x89\x54\x89\x51\x65\x51\x89\x53\x89\x46\x89\x4f\x89\x50\x00\x00\x89\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x41\x8b\x43\x8b\x46\x00\x00\x00\x00\x8a\xfd\x00\x00\x66\x45\x8b\x48\x8a\xfc\x8b\x49\x00\x00\x8b\x45\x8b\x47\x8b\x4b\x8b\x44\x8b\x4c\x8b\x42\x8a\xfb\x66\x46\x00\x00\x8b\x4a\x66\x47\x66\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\x8c\xdf\x8c\xd6\x66\xd9\x8c\xd2\x66\xda\x00\x00\x00\x00\x8c\xdb\x8c\xd5\x8c\xcb\x66\xd8\x8c\xd8\x8c\xd3\x8c\xd4\x00\x00\x8c\xc6\x8c\xcd\x8c\xdc\x00\x00\x8c\xd9\x00\x00\x8c\xd1\x00\x00\x8c\xdd", /* 9d80 */ "\x8c\xcc\x8c\xc7\x8c\xda\x00\x00\x8c\xc9\x8c\xd7\x8c\xce\x8c\xde\x8c\xca\x66\xd6\x8c\xc8\x8c\xcf\x8c\xd0\x00\x00\x00\x00\x00\x00\x8e\x4e\x00\x00\x8e\x4c\x00\x00\x8e\x51\x00\x00\x8e\x5d\x8e\x54\x8e\x4d\x8e\x49\x8e\x56\x8e\x4f\x8e\x52\x8e\x4b\x8e\x59\x8e\x48\x8e\x50\x8e\x55\x8e\x57\x8e\x5a\x8e\x4a\x00\x00\x8e\x5e\x8e\x5f\x8e\x58\x8e\x5c\x8e\x53\x00\x00\x8f\x51\x8f\x54\x00\x00\x67\xcc\x00\x00\x8f\x53\x8f\x58\x8f\x56\x67\xcd\x8f\x4d\x8f\x43\x8f\x42\x67\xcf\x8f\x4f\x8f\x50\x8f\x4c\x8f\x44\x00\x00\x8f\x49\x8e\x5b\x00\x00\x8f\x45\x67\xce\x8f\x4b\x00\x00\x8f\x4a\x00\x00\x8f\x46\x8f\x52\x00\x00\x8f\x47\x8f\xe9\x8f\x55\x8f\x57\x8f\x4e\x8f\x48\x8f\xea\x8f\xec\x8f\xe6\x68\x4e\x00\x00\x8f\xf3\x8f\xf1\x68\x4f\x8f\xf0\x8f\xef\x8f\xe8\x8f\xe5\x8f\xeb\x8f\xf4\x8f\xe7\x8f\xed\x00\x00\x90\x9a\x90\x9f\x90\x95\x90\x98\x68\x7a\x90\x9c\x00\x00\x90\xa3\x8f\xee\x00\x00\x90\x96\x90\xa0\x90\xa4\x90\x9b\x90\x94\x90\x9e\x00\x00\x90\x9d\x90\xa2\x90\xa1\x8f\xf2\x90\x99\x90\x93\x90\x97\x68\x9a\x68\x9b\x90\x92\x00\x00\x90\xf5\x90\xec\x90\xf4", /* 9e00 */ "\x90\xf1\x90\xf2\x90\xeb\x90\xee\x90\xf6\x90\xf0\x90\xef\x90\xed\x00\x00\x90\xf3\x00\x00\x91\x6e\x00\x00\x91\x6f\x00\x00\x91\x71\x91\x70\x91\x73\x91\x72\x91\x8e\x91\x8d\x91\xa7\x00\x00\x91\xa8\x00\x00\x91\xb5\x68\xc4\x68\xc8\x00\x00\x91\xbf\x68\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x45\x00\x00\x00\x00\x00\x00\x67\x7b\x8f\x59\x00\x00\x68\x9c\x68\x9d\x00\x00\x59\x46", /* 9e80 */ "\x7c\xf5\x00\x00\x5d\xed\x83\xbb\x00\x00\x00\x00\x86\xbb\x86\xbc\x86\xba\x89\x58\x89\x57\x65\x52\x8b\x4e\x89\x59\x8b\x4d\x00\x00\x00\x00\x8c\xe1\x66\xdb\x66\xdd\x8c\xe0\x00\x00\x00\x00\x66\xdc\x00\x00\x8e\x60\x8e\x62\x8e\x61\x8f\x5a\x67\xd0\x00\x00\x68\x7b\x90\xf7\x91\x74\x00\x00\x00\x00\x91\xc2\x59\x47\x00\x00\x80\x6f\x00\x00\x62\x4b\x00\x00\x00\x00\x00\x00\x86\xbe\x86\xbd\x00\x00\x89\x5a\x00\x00\x00\x00\x00\x00\x66\xde\x67\x7c\x8f\xf5\x91\xbb\x00\x00\x00\x00\x00\x00\x59\x48\x5f\xf9\x00\x00\x62\x4c\x00\x00\x8c\xe2\x00\x00\x90\xa5\x5b\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x89\x5b\x00\x00\x00\x00\x00\x00\x68\xb0\x5b\xa7\x62\x4d\x65\x53\x90\xa6\x5b\xa8\x00\x00\x83\xbc\x63\xbc\x86\xbf\x86\xc0\x00\x00\x63\xbb\x00\x00\x89\x5c\x65\x57\x65\x55\x65\x56\x65\x54\x8b\x4f\x66\x48\x00\x00\x00\x00\x00\x00\x8e\x64\x8e\x63\x8e\x66\x8e\x65\x67\x7d\x00\x00\x00\x00\x8f\x5b\x00\x00\x8f\x5d\x8f\x5c\x67\xd1\x8f\xf6\x00\x00\x90\xa7\x90\xa8\x68\x7c\x91\x75\x91\x8f\x68\xc1\x00\x00\x79\x76\x86\xc1\x89\x5d\x8c\xe3\x7c\xf6\x00\x00\x89\x5e", /* 9f00 */ "\x8b\x51\x8b\x50\x00\x00\x00\x00\x00\x00\x00\x00\x90\xa9\x68\x9e\x00\x00\x91\x76\x91\x90\x00\x00\x00\x00\x00\x00\x5d\xee\x83\xbd\x83\xbe\x00\x00\x86\xc2\x5d\xef\x00\x00\x66\x49\x8b\x52\x00\x00\x8f\x5f\x67\xd2\x8f\x60\x8f\x5e\x90\xaa\x00\x00\x90\xf8\x00\x00\x5d\xf0\x00\x00\x89\x61\x89\x60\x89\x5f\x8b\x53\x00\x00\x00\x00\x8b\x57\x8b\x56\x8b\x55\x8b\x54\x66\x4a\x8c\xe4\x8e\x68\x67\x7e\x8e\x67\x8f\x61\x8f\xf9\x8f\xf8\x68\x50\x8f\xf7\x90\xad\x90\xac\x90\xab\x00\x00\x00\x00\x5f\xfa\x00\x00\x86\xc3\x65\x58\x00\x00\x8c\xe5\x8c\xe6\x8f\xfa\x90\xae\x00\x00\x00\x00\x90\xf9\x91\x77\x91\xa9\x91\xc4\x5f\xfb\x65\x59\x8b\x58\x8c\xe7\x8f\x62\x90\xaf\x00\x00\x00\x00\x62\x4f\x00\x00\x89\x62\x8b\x59\x8c\xe8\x8c\xe9\x8c\xea\x8e\x6d\x00\x00\x8e\x69\x67\xd3\x8e\x6c\x8e\x6b\x67\x7f\x8e\x6a\x67\x82\x00\x00\x67\x81\x8f\x64\x8f\x63\x67\xd4\x67\xd5\x00\x00\x00\x00\x68\x52\x8f\xfb\x68\x51\x00\x00\x90\xb2\x90\xb3\x90\xb1\x90\xb0\x68\xa0\x00\x00\x90\xfa\x90\xfb\x90\xfc\x68\x9f\x91\x78\x91\x7b\x91\x7a\x91\x79\x00\x00\x00\x00\x91\xc3\x00\x00", /* 9f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbd\x00\x00\x00\x00\x66\x51\x8e\x6e\x8f\x65\x00\x00\x68\x53\x8f\xfc\x00\x00\x00\x00\x91\xc5\x00\x00\x00\x00\x00\x00\x63\xbe\x00\x00\x00\x00\x00\x00\x89\x63\x00\x00\x8f\xfd\x00\x00\x91\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\xc2\x41\xc2\x42\xc2\x43\xc2\x44\xc2\x45\xc2\x46\xc2\x47\xc2\x48\xc2\x49\xc2\x4a\xc2\x4b\xc2\x4c\xc2\x4d\xc2\x4e\xc2\x4f\xc2\x50\xc2\x51\xc2\x52\xc2\x53\xc2\x54\xc2\x55\xc2\x56\xc2\x57\xc2\x58\xc2\x59\xc2\x5a\xc2\x5b\xc2\x5c\xc2\x5d\xc2\x5e\xc2\x5f\xc2\x60\xc2\x61\xc2\x62\xc2\x63\xc2\x64\xc2\x65\xc2\x66\xc2\x67\xc2\x68\xc2\x69\xc2\x6a\xc2\x6b\xc2\x6c\xc2\x6d\xc2\x6e\xc2\x6f\xc2\x70\xc2\x71\xc2\x72\xc2\x73\xc2\x74\xc2\x75\xc2\x76\xc2\x77\xc2\x78\xc2\x79\xc2\x7a\xc2\x7b\xc2\x7c\xc2\x7d\xc2\x7e\xc2\x7f\xc2\x81\xc2\x82\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\xc2\x88\xc2\x89\xc2\x8a\xc2\x8b\xc2\x8c\xc2\x8d\xc2\x8e\xc2\x8f\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\xc2\x95\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\xc2\xa3\xc2\xa4\xc2\xa5\xc2\xa6\xc2\xa7\xc2\xa8\xc2\xa9\xc2\xaa\xc2\xab\xc2\xac\xc2\xad\xc2\xae\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc2\xc0\xc2\xc1", /* e080 */ "\xc2\xc2\xc2\xc3\xc2\xc4\xc2\xc5\xc2\xc6\xc2\xc7\xc2\xc8\xc2\xc9\xc2\xca\xc2\xcb\xc2\xcc\xc2\xcd\xc2\xce\xc2\xcf\xc2\xd0\xc2\xd1\xc2\xd2\xc2\xd3\xc2\xd4\xc2\xd5\xc2\xd6\xc2\xd7\xc2\xd8\xc2\xd9\xc2\xda\xc2\xdb\xc2\xdc\xc2\xdd\xc2\xde\xc2\xdf\xc2\xe0\xc2\xe1\xc2\xe2\xc2\xe3\xc2\xe4\xc2\xe5\xc2\xe6\xc2\xe7\xc2\xe8\xc2\xe9\xc2\xea\xc2\xeb\xc2\xec\xc2\xed\xc2\xee\xc2\xef\xc2\xf0\xc2\xf1\xc2\xf2\xc2\xf3\xc2\xf4\xc2\xf5\xc2\xf6\xc2\xf7\xc2\xf8\xc2\xf9\xc2\xfa\xc2\xfb\xc2\xfc\xc2\xfd\xc3\x41\xc3\x42\xc3\x43\xc3\x44\xc3\x45\xc3\x46\xc3\x47\xc3\x48\xc3\x49\xc3\x4a\xc3\x4b\xc3\x4c\xc3\x4d\xc3\x4e\xc3\x4f\xc3\x50\xc3\x51\xc3\x52\xc3\x53\xc3\x54\xc3\x55\xc3\x56\xc3\x57\xc3\x58\xc3\x59\xc3\x5a\xc3\x5b\xc3\x5c\xc3\x5d\xc3\x5e\xc3\x5f\xc3\x60\xc3\x61\xc3\x62\xc3\x63\xc3\x64\xc3\x65\xc3\x66\xc3\x67\xc3\x68\xc3\x69\xc3\x6a\xc3\x6b\xc3\x6c\xc3\x6d\xc3\x6e\xc3\x6f\xc3\x70\xc3\x71\xc3\x72\xc3\x73\xc3\x74\xc3\x75\xc3\x76\xc3\x77\xc3\x78\xc3\x79\xc3\x7a\xc3\x7b\xc3\x7c\xc3\x7d\xc3\x7e\xc3\x7f\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85", /* e100 */ "\xc3\x86\xc3\x87\xc3\x88\xc3\x89\xc3\x8a\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\xc3\x90\xc3\x91\xc3\x92\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\xc3\x9d\xc3\x9e\xc3\x9f\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xb7\xc3\xb8\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf\xc3\xc0\xc3\xc1\xc3\xc2\xc3\xc3\xc3\xc4\xc3\xc5\xc3\xc6\xc3\xc7\xc3\xc8\xc3\xc9\xc3\xca\xc3\xcb\xc3\xcc\xc3\xcd\xc3\xce\xc3\xcf\xc3\xd0\xc3\xd1\xc3\xd2\xc3\xd3\xc3\xd4\xc3\xd5\xc3\xd6\xc3\xd7\xc3\xd8\xc3\xd9\xc3\xda\xc3\xdb\xc3\xdc\xc3\xdd\xc3\xde\xc3\xdf\xc3\xe0\xc3\xe1\xc3\xe2\xc3\xe3\xc3\xe4\xc3\xe5\xc3\xe6\xc3\xe7\xc3\xe8\xc3\xe9\xc3\xea\xc3\xeb\xc3\xec\xc3\xed\xc3\xee\xc3\xef\xc3\xf0\xc3\xf1\xc3\xf2\xc3\xf3\xc3\xf4\xc3\xf5\xc3\xf6\xc3\xf7\xc3\xf8\xc3\xf9\xc3\xfa\xc3\xfb\xc3\xfc\xc3\xfd\xc4\x41\xc4\x42\xc4\x43\xc4\x44\xc4\x45\xc4\x46\xc4\x47\xc4\x48", /* e180 */ "\xc4\x49\xc4\x4a\xc4\x4b\xc4\x4c\xc4\x4d\xc4\x4e\xc4\x4f\xc4\x50\xc4\x51\xc4\x52\xc4\x53\xc4\x54\xc4\x55\xc4\x56\xc4\x57\xc4\x58\xc4\x59\xc4\x5a\xc4\x5b\xc4\x5c\xc4\x5d\xc4\x5e\xc4\x5f\xc4\x60\xc4\x61\xc4\x62\xc4\x63\xc4\x64\xc4\x65\xc4\x66\xc4\x67\xc4\x68\xc4\x69\xc4\x6a\xc4\x6b\xc4\x6c\xc4\x6d\xc4\x6e\xc4\x6f\xc4\x70\xc4\x71\xc4\x72\xc4\x73\xc4\x74\xc4\x75\xc4\x76\xc4\x77\xc4\x78\xc4\x79\xc4\x7a\xc4\x7b\xc4\x7c\xc4\x7d\xc4\x7e\xc4\x7f\xc4\x81\xc4\x82\xc4\x83\xc4\x84\xc4\x85\xc4\x86\xc4\x87\xc4\x88\xc4\x89\xc4\x8a\xc4\x8b\xc4\x8c\xc4\x8d\xc4\x8e\xc4\x8f\xc4\x90\xc4\x91\xc4\x92\xc4\x93\xc4\x94\xc4\x95\xc4\x96\xc4\x97\xc4\x98\xc4\x99\xc4\x9a\xc4\x9b\xc4\x9c\xc4\x9d\xc4\x9e\xc4\x9f\xc4\xa0\xc4\xa1\xc4\xa2\xc4\xa3\xc4\xa4\xc4\xa5\xc4\xa6\xc4\xa7\xc4\xa8\xc4\xa9\xc4\xaa\xc4\xab\xc4\xac\xc4\xad\xc4\xae\xc4\xaf\xc4\xb0\xc4\xb1\xc4\xb2\xc4\xb3\xc4\xb4\xc4\xb5\xc4\xb6\xc4\xb7\xc4\xb8\xc4\xb9\xc4\xba\xc4\xbb\xc4\xbc\xc4\xbd\xc4\xbe\xc4\xbf\xc4\xc0\xc4\xc1\xc4\xc2\xc4\xc3\xc4\xc4\xc4\xc5\xc4\xc6\xc4\xc7\xc4\xc8\xc4\xc9", /* e200 */ "\xc4\xca\xc4\xcb\xc4\xcc\xc4\xcd\xc4\xce\xc4\xcf\xc4\xd0\xc4\xd1\xc4\xd2\xc4\xd3\xc4\xd4\xc4\xd5\xc4\xd6\xc4\xd7\xc4\xd8\xc4\xd9\xc4\xda\xc4\xdb\xc4\xdc\xc4\xdd\xc4\xde\xc4\xdf\xc4\xe0\xc4\xe1\xc4\xe2\xc4\xe3\xc4\xe4\xc4\xe5\xc4\xe6\xc4\xe7\xc4\xe8\xc4\xe9\xc4\xea\xc4\xeb\xc4\xec\xc4\xed\xc4\xee\xc4\xef\xc4\xf0\xc4\xf1\xc4\xf2\xc4\xf3\xc4\xf4\xc4\xf5\xc4\xf6\xc4\xf7\xc4\xf8\xc4\xf9\xc4\xfa\xc4\xfb\xc4\xfc\xc4\xfd\xc5\x41\xc5\x42\xc5\x43\xc5\x44\xc5\x45\xc5\x46\xc5\x47\xc5\x48\xc5\x49\xc5\x4a\xc5\x4b\xc5\x4c\xc5\x4d\xc5\x4e\xc5\x4f\xc5\x50\xc5\x51\xc5\x52\xc5\x53\xc5\x54\xc5\x55\xc5\x56\xc5\x57\xc5\x58\xc5\x59\xc5\x5a\xc5\x5b\xc5\x5c\xc5\x5d\xc5\x5e\xc5\x5f\xc5\x60\xc5\x61\xc5\x62\xc5\x63\xc5\x64\xc5\x65\xc5\x66\xc5\x67\xc5\x68\xc5\x69\xc5\x6a\xc5\x6b\xc5\x6c\xc5\x6d\xc5\x6e\xc5\x6f\xc5\x70\xc5\x71\xc5\x72\xc5\x73\xc5\x74\xc5\x75\xc5\x76\xc5\x77\xc5\x78\xc5\x79\xc5\x7a\xc5\x7b\xc5\x7c\xc5\x7d\xc5\x7e\xc5\x7f\xc5\x81\xc5\x82\xc5\x83\xc5\x84\xc5\x85\xc5\x86\xc5\x87\xc5\x88\xc5\x89\xc5\x8a\xc5\x8b\xc5\x8c\xc5\x8d", /* e280 */ "\xc5\x8e\xc5\x8f\xc5\x90\xc5\x91\xc5\x92\xc5\x93\xc5\x94\xc5\x95\xc5\x96\xc5\x97\xc5\x98\xc5\x99\xc5\x9a\xc5\x9b\xc5\x9c\xc5\x9d\xc5\x9e\xc5\x9f\xc5\xa0\xc5\xa1\xc5\xa2\xc5\xa3\xc5\xa4\xc5\xa5\xc5\xa6\xc5\xa7\xc5\xa8\xc5\xa9\xc5\xaa\xc5\xab\xc5\xac\xc5\xad\xc5\xae\xc5\xaf\xc5\xb0\xc5\xb1\xc5\xb2\xc5\xb3\xc5\xb4\xc5\xb5\xc5\xb6\xc5\xb7\xc5\xb8\xc5\xb9\xc5\xba\xc5\xbb\xc5\xbc\xc5\xbd\xc5\xbe\xc5\xbf\xc5\xc0\xc5\xc1\xc5\xc2\xc5\xc3\xc5\xc4\xc5\xc5\xc5\xc6\xc5\xc7\xc5\xc8\xc5\xc9\xc5\xca\xc5\xcb\xc5\xcc\xc5\xcd\xc5\xce\xc5\xcf\xc5\xd0\xc5\xd1\xc5\xd2\xc5\xd3\xc5\xd4\xc5\xd5\xc5\xd6\xc5\xd7\xc5\xd8\xc5\xd9\xc5\xda\xc5\xdb\xc5\xdc\xc5\xdd\xc5\xde\xc5\xdf\xc5\xe0\xc5\xe1\xc5\xe2\xc5\xe3\xc5\xe4\xc5\xe5\xc5\xe6\xc5\xe7\xc5\xe8\xc5\xe9\xc5\xea\xc5\xeb\xc5\xec\xc5\xed\xc5\xee\xc5\xef\xc5\xf0\xc5\xf1\xc5\xf2\xc5\xf3\xc5\xf4\xc5\xf5\xc5\xf6\xc5\xf7\xc5\xf8\xc5\xf9\xc5\xfa\xc5\xfb\xc5\xfc\xc5\xfd\xc6\x41\xc6\x42\xc6\x43\xc6\x44\xc6\x45\xc6\x46\xc6\x47\xc6\x48\xc6\x49\xc6\x4a\xc6\x4b\xc6\x4c\xc6\x4d\xc6\x4e\xc6\x4f\xc6\x50", /* e300 */ "\xc6\x51\xc6\x52\xc6\x53\xc6\x54\xc6\x55\xc6\x56\xc6\x57\xc6\x58\xc6\x59\xc6\x5a\xc6\x5b\xc6\x5c\xc6\x5d\xc6\x5e\xc6\x5f\xc6\x60\xc6\x61\xc6\x62\xc6\x63\xc6\x64\xc6\x65\xc6\x66\xc6\x67\xc6\x68\xc6\x69\xc6\x6a\xc6\x6b\xc6\x6c\xc6\x6d\xc6\x6e\xc6\x6f\xc6\x70\xc6\x71\xc6\x72\xc6\x73\xc6\x74\xc6\x75\xc6\x76\xc6\x77\xc6\x78\xc6\x79\xc6\x7a\xc6\x7b\xc6\x7c\xc6\x7d\xc6\x7e\xc6\x7f\xc6\x81\xc6\x82\xc6\x83\xc6\x84\xc6\x85\xc6\x86\xc6\x87\xc6\x88\xc6\x89\xc6\x8a\xc6\x8b\xc6\x8c\xc6\x8d\xc6\x8e\xc6\x8f\xc6\x90\xc6\x91\xc6\x92\xc6\x93\xc6\x94\xc6\x95\xc6\x96\xc6\x97\xc6\x98\xc6\x99\xc6\x9a\xc6\x9b\xc6\x9c\xc6\x9d\xc6\x9e\xc6\x9f\xc6\xa0\xc6\xa1\xc6\xa2\xc6\xa3\xc6\xa4\xc6\xa5\xc6\xa6\xc6\xa7\xc6\xa8\xc6\xa9\xc6\xaa\xc6\xab\xc6\xac\xc6\xad\xc6\xae\xc6\xaf\xc6\xb0\xc6\xb1\xc6\xb2\xc6\xb3\xc6\xb4\xc6\xb5\xc6\xb6\xc6\xb7\xc6\xb8\xc6\xb9\xc6\xba\xc6\xbb\xc6\xbc\xc6\xbd\xc6\xbe\xc6\xbf\xc6\xc0\xc6\xc1\xc6\xc2\xc6\xc3\xc6\xc4\xc6\xc5\xc6\xc6\xc6\xc7\xc6\xc8\xc6\xc9\xc6\xca\xc6\xcb\xc6\xcc\xc6\xcd\xc6\xce\xc6\xcf\xc6\xd0\xc6\xd1", /* e380 */ "\xc6\xd2\xc6\xd3\xc6\xd4\xc6\xd5\xc6\xd6\xc6\xd7\xc6\xd8\xc6\xd9\xc6\xda\xc6\xdb\xc6\xdc\xc6\xdd\xc6\xde\xc6\xdf\xc6\xe0\xc6\xe1\xc6\xe2\xc6\xe3\xc6\xe4\xc6\xe5\xc6\xe6\xc6\xe7\xc6\xe8\xc6\xe9\xc6\xea\xc6\xeb\xc6\xec\xc6\xed\xc6\xee\xc6\xef\xc6\xf0\xc6\xf1\xc6\xf2\xc6\xf3\xc6\xf4\xc6\xf5\xc6\xf6\xc6\xf7\xc6\xf8\xc6\xf9\xc6\xfa\xc6\xfb\xc6\xfc\xc6\xfd\xc7\x41\xc7\x42\xc7\x43\xc7\x44\xc7\x45\xc7\x46\xc7\x47\xc7\x48\xc7\x49\xc7\x4a\xc7\x4b\xc7\x4c\xc7\x4d\xc7\x4e\xc7\x4f\xc7\x50\xc7\x51\xc7\x52\xc7\x53\xc7\x54\xc7\x55\xc7\x56\xc7\x57\xc7\x58\xc7\x59\xc7\x5a\xc7\x5b\xc7\x5c\xc7\x5d\xc7\x5e\xc7\x5f\xc7\x60\xc7\x61\xc7\x62\xc7\x63\xc7\x64\xc7\x65\xc7\x66\xc7\x67\xc7\x68\xc7\x69\xc7\x6a\xc7\x6b\xc7\x6c\xc7\x6d\xc7\x6e\xc7\x6f\xc7\x70\xc7\x71\xc7\x72\xc7\x73\xc7\x74\xc7\x75\xc7\x76\xc7\x77\xc7\x78\xc7\x79\xc7\x7a\xc7\x7b\xc7\x7c\xc7\x7d\xc7\x7e\xc7\x7f\xc7\x81\xc7\x82\xc7\x83\xc7\x84\xc7\x85\xc7\x86\xc7\x87\xc7\x88\xc7\x89\xc7\x8a\xc7\x8b\xc7\x8c\xc7\x8d\xc7\x8e\xc7\x8f\xc7\x90\xc7\x91\xc7\x92\xc7\x93\xc7\x94\xc7\x95", /* e400 */ "\xc7\x96\xc7\x97\xc7\x98\xc7\x99\xc7\x9a\xc7\x9b\xc7\x9c\xc7\x9d\xc7\x9e\xc7\x9f\xc7\xa0\xc7\xa1\xc7\xa2\xc7\xa3\xc7\xa4\xc7\xa5\xc7\xa6\xc7\xa7\xc7\xa8\xc7\xa9\xc7\xaa\xc7\xab\xc7\xac\xc7\xad\xc7\xae\xc7\xaf\xc7\xb0\xc7\xb1\xc7\xb2\xc7\xb3\xc7\xb4\xc7\xb5\xc7\xb6\xc7\xb7\xc7\xb8\xc7\xb9\xc7\xba\xc7\xbb\xc7\xbc\xc7\xbd\xc7\xbe\xc7\xbf\xc7\xc0\xc7\xc1\xc7\xc2\xc7\xc3\xc7\xc4\xc7\xc5\xc7\xc6\xc7\xc7\xc7\xc8\xc7\xc9\xc7\xca\xc7\xcb\xc7\xcc\xc7\xcd\xc7\xce\xc7\xcf\xc7\xd0\xc7\xd1\xc7\xd2\xc7\xd3\xc7\xd4\xc7\xd5\xc7\xd6\xc7\xd7\xc7\xd8\xc7\xd9\xc7\xda\xc7\xdb\xc7\xdc\xc7\xdd\xc7\xde\xc7\xdf\xc7\xe0\xc7\xe1\xc7\xe2\xc7\xe3\xc7\xe4\xc7\xe5\xc7\xe6\xc7\xe7\xc7\xe8\xc7\xe9\xc7\xea\xc7\xeb\xc7\xec\xc7\xed\xc7\xee\xc7\xef\xc7\xf0\xc7\xf1\xc7\xf2\xc7\xf3\xc7\xf4\xc7\xf5\xc7\xf6\xc7\xf7\xc7\xf8\xc7\xf9\xc7\xfa\xc7\xfb\xc7\xfc\xc7\xfd\xc8\x41\xc8\x42\xc8\x43\xc8\x44\xc8\x45\xc8\x46\xc8\x47\xc8\x48\xc8\x49\xc8\x4a\xc8\x4b\xc8\x4c\xc8\x4d\xc8\x4e\xc8\x4f\xc8\x50\xc8\x51\xc8\x52\xc8\x53\xc8\x54\xc8\x55\xc8\x56\xc8\x57\xc8\x58", /* e480 */ "\xc8\x59\xc8\x5a\xc8\x5b\xc8\x5c\xc8\x5d\xc8\x5e\xc8\x5f\xc8\x60\xc8\x61\xc8\x62\xc8\x63\xc8\x64\xc8\x65\xc8\x66\xc8\x67\xc8\x68\xc8\x69\xc8\x6a\xc8\x6b\xc8\x6c\xc8\x6d\xc8\x6e\xc8\x6f\xc8\x70\xc8\x71\xc8\x72\xc8\x73\xc8\x74\xc8\x75\xc8\x76\xc8\x77\xc8\x78\xc8\x79\xc8\x7a\xc8\x7b\xc8\x7c\xc8\x7d\xc8\x7e\xc8\x7f\xc8\x81\xc8\x82\xc8\x83\xc8\x84\xc8\x85\xc8\x86\xc8\x87\xc8\x88\xc8\x89\xc8\x8a\xc8\x8b\xc8\x8c\xc8\x8d\xc8\x8e\xc8\x8f\xc8\x90\xc8\x91\xc8\x92\xc8\x93\xc8\x94\xc8\x95\xc8\x96\xc8\x97\xc8\x98\xc8\x99\xc8\x9a\xc8\x9b\xc8\x9c\xc8\x9d\xc8\x9e\xc8\x9f\xc8\xa0\xc8\xa1\xc8\xa2\xc8\xa3\xc8\xa4\xc8\xa5\xc8\xa6\xc8\xa7\xc8\xa8\xc8\xa9\xc8\xaa\xc8\xab\xc8\xac\xc8\xad\xc8\xae\xc8\xaf\xc8\xb0\xc8\xb1\xc8\xb2\xc8\xb3\xc8\xb4\xc8\xb5\xc8\xb6\xc8\xb7\xc8\xb8\xc8\xb9\xc8\xba\xc8\xbb\xc8\xbc\xc8\xbd\xc8\xbe\xc8\xbf\xc8\xc0\xc8\xc1\xc8\xc2\xc8\xc3\xc8\xc4\xc8\xc5\xc8\xc6\xc8\xc7\xc8\xc8\xc8\xc9\xc8\xca\xc8\xcb\xc8\xcc\xc8\xcd\xc8\xce\xc8\xcf\xc8\xd0\xc8\xd1\xc8\xd2\xc8\xd3\xc8\xd4\xc8\xd5\xc8\xd6\xc8\xd7\xc8\xd8\xc8\xd9", /* e500 */ "\xc8\xda\xc8\xdb\xc8\xdc\xc8\xdd\xc8\xde\xc8\xdf\xc8\xe0\xc8\xe1\xc8\xe2\xc8\xe3\xc8\xe4\xc8\xe5\xc8\xe6\xc8\xe7\xc8\xe8\xc8\xe9\xc8\xea\xc8\xeb\xc8\xec\xc8\xed\xc8\xee\xc8\xef\xc8\xf0\xc8\xf1\xc8\xf2\xc8\xf3\xc8\xf4\xc8\xf5\xc8\xf6\xc8\xf7\xc8\xf8\xc8\xf9\xc8\xfa\xc8\xfb\xc8\xfc\xc8\xfd\xc9\x41\xc9\x42\xc9\x43\xc9\x44\xc9\x45\xc9\x46\xc9\x47\xc9\x48\xc9\x49\xc9\x4a\xc9\x4b\xc9\x4c\xc9\x4d\xc9\x4e\xc9\x4f\xc9\x50\xc9\x51\xc9\x52\xc9\x53\xc9\x54\xc9\x55\xc9\x56\xc9\x57\xc9\x58\xc9\x59\xc9\x5a\xc9\x5b\xc9\x5c\xc9\x5d\xc9\x5e\xc9\x5f\xc9\x60\xc9\x61\xc9\x62\xc9\x63\xc9\x64\xc9\x65\xc9\x66\xc9\x67\xc9\x68\xc9\x69\xc9\x6a\xc9\x6b\xc9\x6c\xc9\x6d\xc9\x6e\xc9\x6f\xc9\x70\xc9\x71\xc9\x72\xc9\x73\xc9\x74\xc9\x75\xc9\x76\xc9\x77\xc9\x78\xc9\x79\xc9\x7a\xc9\x7b\xc9\x7c\xc9\x7d\xc9\x7e\xc9\x7f\xc9\x81\xc9\x82\xc9\x83\xc9\x84\xc9\x85\xc9\x86\xc9\x87\xc9\x88\xc9\x89\xc9\x8a\xc9\x8b\xc9\x8c\xc9\x8d\xc9\x8e\xc9\x8f\xc9\x90\xc9\x91\xc9\x92\xc9\x93\xc9\x94\xc9\x95\xc9\x96\xc9\x97\xc9\x98\xc9\x99\xc9\x9a\xc9\x9b\xc9\x9c\xc9\x9d", /* e580 */ "\xc9\x9e\xc9\x9f\xc9\xa0\xc9\xa1\xc9\xa2\xc9\xa3\xc9\xa4\xc9\xa5\xc9\xa6\xc9\xa7\xc9\xa8\xc9\xa9\xc9\xaa\xc9\xab\xc9\xac\xc9\xad\xc9\xae\xc9\xaf\xc9\xb0\xc9\xb1\xc9\xb2\xc9\xb3\xc9\xb4\xc9\xb5\xc9\xb6\xc9\xb7\xc9\xb8\xc9\xb9\xc9\xba\xc9\xbb\xc9\xbc\xc9\xbd\xc9\xbe\xc9\xbf\xc9\xc0\xc9\xc1\xc9\xc2\xc9\xc3\xc9\xc4\xc9\xc5\xc9\xc6\xc9\xc7\xc9\xc8\xc9\xc9\xc9\xca\xc9\xcb\xc9\xcc\xc9\xcd\xc9\xce\xc9\xcf\xc9\xd0\xc9\xd1\xc9\xd2\xc9\xd3\xc9\xd4\xc9\xd5\xc9\xd6\xc9\xd7\xc9\xd8\xc9\xd9\xc9\xda\xc9\xdb\xc9\xdc\xc9\xdd\xc9\xde\xc9\xdf\xc9\xe0\xc9\xe1\xc9\xe2\xc9\xe3\xc9\xe4\xc9\xe5\xc9\xe6\xc9\xe7\xc9\xe8\xc9\xe9\xc9\xea\xc9\xeb\xc9\xec\xc9\xed\xc9\xee\xc9\xef\xc9\xf0\xc9\xf1\xc9\xf2\xc9\xf3\xc9\xf4\xc9\xf5\xc9\xf6\xc9\xf7\xc9\xf8\xc9\xf9\xc9\xfa\xc9\xfb\xc9\xfc\xc9\xfd\xca\x41\xca\x42\xca\x43\xca\x44\xca\x45\xca\x46\xca\x47\xca\x48\xca\x49\xca\x4a\xca\x4b\xca\x4c\xca\x4d\xca\x4e\xca\x4f\xca\x50\xca\x51\xca\x52\xca\x53\xca\x54\xca\x55\xca\x56\xca\x57\xca\x58\xca\x59\xca\x5a\xca\x5b\xca\x5c\xca\x5d\xca\x5e\xca\x5f\xca\x60", /* e600 */ "\xca\x61\xca\x62\xca\x63\xca\x64\xca\x65\xca\x66\xca\x67\xca\x68\xca\x69\xca\x6a\xca\x6b\xca\x6c\xca\x6d\xca\x6e\xca\x6f\xca\x70\xca\x71\xca\x72\xca\x73\xca\x74\xca\x75\xca\x76\xca\x77\xca\x78\xca\x79\xca\x7a\xca\x7b\xca\x7c\xca\x7d\xca\x7e\xca\x7f\xca\x81\xca\x82\xca\x83\xca\x84\xca\x85\xca\x86\xca\x87\xca\x88\xca\x89\xca\x8a\xca\x8b\xca\x8c\xca\x8d\xca\x8e\xca\x8f\xca\x90\xca\x91\xca\x92\xca\x93\xca\x94\xca\x95\xca\x96\xca\x97\xca\x98\xca\x99\xca\x9a\xca\x9b\xca\x9c\xca\x9d\xca\x9e\xca\x9f\xca\xa0\xca\xa1\xca\xa2\xca\xa3\xca\xa4\xca\xa5\xca\xa6\xca\xa7\xca\xa8\xca\xa9\xca\xaa\xca\xab\xca\xac\xca\xad\xca\xae\xca\xaf\xca\xb0\xca\xb1\xca\xb2\xca\xb3\xca\xb4\xca\xb5\xca\xb6\xca\xb7\xca\xb8\xca\xb9\xca\xba\xca\xbb\xca\xbc\xca\xbd\xca\xbe\xca\xbf\xca\xc0\xca\xc1\xca\xc2\xca\xc3\xca\xc4\xca\xc5\xca\xc6\xca\xc7\xca\xc8\xca\xc9\xca\xca\xca\xcb\xca\xcc\xca\xcd\xca\xce\xca\xcf\xca\xd0\xca\xd1\xca\xd2\xca\xd3\xca\xd4\xca\xd5\xca\xd6\xca\xd7\xca\xd8\xca\xd9\xca\xda\xca\xdb\xca\xdc\xca\xdd\xca\xde\xca\xdf\xca\xe0\xca\xe1", /* e680 */ "\xca\xe2\xca\xe3\xca\xe4\xca\xe5\xca\xe6\xca\xe7\xca\xe8\xca\xe9\xca\xea\xca\xeb\xca\xec\xca\xed\xca\xee\xca\xef\xca\xf0\xca\xf1\xca\xf2\xca\xf3\xca\xf4\xca\xf5\xca\xf6\xca\xf7\xca\xf8\xca\xf9\xca\xfa\xca\xfb\xca\xfc\xca\xfd\xcb\x41\xcb\x42\xcb\x43\xcb\x44\xcb\x45\xcb\x46\xcb\x47\xcb\x48\xcb\x49\xcb\x4a\xcb\x4b\xcb\x4c\xcb\x4d\xcb\x4e\xcb\x4f\xcb\x50\xcb\x51\xcb\x52\xcb\x53\xcb\x54\xcb\x55\xcb\x56\xcb\x57\xcb\x58\xcb\x59\xcb\x5a\xcb\x5b\xcb\x5c\xcb\x5d\xcb\x5e\xcb\x5f\xcb\x60\xcb\x61\xcb\x62\xcb\x63\xcb\x64\xcb\x65\xcb\x66\xcb\x67\xcb\x68\xcb\x69\xcb\x6a\xcb\x6b\xcb\x6c\xcb\x6d\xcb\x6e\xcb\x6f\xcb\x70\xcb\x71\xcb\x72\xcb\x73\xcb\x74\xcb\x75\xcb\x76\xcb\x77\xcb\x78\xcb\x79\xcb\x7a\xcb\x7b\xcb\x7c\xcb\x7d\xcb\x7e\xcb\x7f\xcb\x81\xcb\x82\xcb\x83\xcb\x84\xcb\x85\xcb\x86\xcb\x87\xcb\x88\xcb\x89\xcb\x8a\xcb\x8b\xcb\x8c\xcb\x8d\xcb\x8e\xcb\x8f\xcb\x90\xcb\x91\xcb\x92\xcb\x93\xcb\x94\xcb\x95\xcb\x96\xcb\x97\xcb\x98\xcb\x99\xcb\x9a\xcb\x9b\xcb\x9c\xcb\x9d\xcb\x9e\xcb\x9f\xcb\xa0\xcb\xa1\xcb\xa2\xcb\xa3\xcb\xa4\xcb\xa5", /* e700 */ "\xcb\xa6\xcb\xa7\xcb\xa8\xcb\xa9\xcb\xaa\xcb\xab\xcb\xac\xcb\xad\xcb\xae\xcb\xaf\xcb\xb0\xcb\xb1\xcb\xb2\xcb\xb3\xcb\xb4\xcb\xb5\xcb\xb6\xcb\xb7\xcb\xb8\xcb\xb9\xcb\xba\xcb\xbb\xcb\xbc\xcb\xbd\xcb\xbe\xcb\xbf\xcb\xc0\xcb\xc1\xcb\xc2\xcb\xc3\xcb\xc4\xcb\xc5\xcb\xc6\xcb\xc7\xcb\xc8\xcb\xc9\xcb\xca\xcb\xcb\xcb\xcc\xcb\xcd\xcb\xce\xcb\xcf\xcb\xd0\xcb\xd1\xcb\xd2\xcb\xd3\xcb\xd4\xcb\xd5\xcb\xd6\xcb\xd7\xcb\xd8\xcb\xd9\xcb\xda\xcb\xdb\xcb\xdc\xcb\xdd\xcb\xde\xcb\xdf\xcb\xe0\xcb\xe1\xcb\xe2\xcb\xe3\xcb\xe4\xcb\xe5\xcb\xe6\xcb\xe7\xcb\xe8\xcb\xe9\xcb\xea\xcb\xeb\xcb\xec\xcb\xed\xcb\xee\xcb\xef\xcb\xf0\xcb\xf1\xcb\xf2\xcb\xf3\xcb\xf4\xcb\xf5\xcb\xf6\xcb\xf7\xcb\xf8\xcb\xf9\xcb\xfa\xcb\xfb\xcb\xfc\xcb\xfd\xcc\x41\xcc\x42\xcc\x43\xcc\x44\xcc\x45\xcc\x46\xcc\x47\xcc\x48\xcc\x49\xcc\x4a\xcc\x4b\xcc\x4c\xcc\x4d\xcc\x4e\xcc\x4f\xcc\x50\xcc\x51\xcc\x52\xcc\x53\xcc\x54\xcc\x55\xcc\x56\xcc\x57\xcc\x58\xcc\x59\xcc\x5a\xcc\x5b\xcc\x5c\xcc\x5d\xcc\x5e\xcc\x5f\xcc\x60\xcc\x61\xcc\x62\xcc\x63\xcc\x64\xcc\x65\xcc\x66\xcc\x67\xcc\x68", /* e780 */ "\xcc\x69\xcc\x6a\xcc\x6b\xcc\x6c\xcc\x6d\xcc\x6e\xcc\x6f\xcc\x70\xcc\x71\xcc\x72\xcc\x73\xcc\x74\xcc\x75\xcc\x76\xcc\x77\xcc\x78\xcc\x79\xcc\x7a\xcc\x7b\xcc\x7c\xcc\x7d\xcc\x7e\xcc\x7f\xcc\x81\xcc\x82\xcc\x83\xcc\x84\xcc\x85\xcc\x86\xcc\x87\xcc\x88\xcc\x89\xcc\x8a\xcc\x8b\xcc\x8c\xcc\x8d\xcc\x8e\xcc\x8f\xcc\x90\xcc\x91\xcc\x92\xcc\x93\xcc\x94\xcc\x95\xcc\x96\xcc\x97\xcc\x98\xcc\x99\xcc\x9a\xcc\x9b\xcc\x9c\xcc\x9d\xcc\x9e\xcc\x9f\xcc\xa0\xcc\xa1\xcc\xa2\xcc\xa3\xcc\xa4\xcc\xa5\xcc\xa6\xcc\xa7\xcc\xa8\xcc\xa9\xcc\xaa\xcc\xab\xcc\xac\xcc\xad\xcc\xae\xcc\xaf\xcc\xb0\xcc\xb1\xcc\xb2\xcc\xb3\xcc\xb4\xcc\xb5\xcc\xb6\xcc\xb7\xcc\xb8\xcc\xb9\xcc\xba\xcc\xbb\xcc\xbc\xcc\xbd\xcc\xbe\xcc\xbf\xcc\xc0\xcc\xc1\xcc\xc2\xcc\xc3\xcc\xc4\xcc\xc5\xcc\xc6\xcc\xc7\xcc\xc8\xcc\xc9\xcc\xca\xcc\xcb\xcc\xcc\xcc\xcd\xcc\xce\xcc\xcf\xcc\xd0\xcc\xd1\xcc\xd2\xcc\xd3\xcc\xd4\xcc\xd5\xcc\xd6\xcc\xd7\xcc\xd8\xcc\xd9\xcc\xda\xcc\xdb\xcc\xdc\xcc\xdd\xcc\xde\xcc\xdf\xcc\xe0\xcc\xe1\xcc\xe2\xcc\xe3\xcc\xe4\xcc\xe5\xcc\xe6\xcc\xe7\xcc\xe8\xcc\xe9", /* e800 */ "\xcc\xea\xcc\xeb\xcc\xec\xcc\xed\xcc\xee\xcc\xef\xcc\xf0\xcc\xf1\xcc\xf2\xcc\xf3\xcc\xf4\xcc\xf5\xcc\xf6\xcc\xf7\xcc\xf8\xcc\xf9\xcc\xfa\xcc\xfb\xcc\xfc\xcc\xfd\xcd\x41\xcd\x42\xcd\x43\xcd\x44\xcd\x45\xcd\x46\xcd\x47\xcd\x48\xcd\x49\xcd\x4a\xcd\x4b\xcd\x4c\xcd\x4d\xcd\x4e\xcd\x4f\xcd\x50\xcd\x51\xcd\x52\xcd\x53\xcd\x54\xcd\x55\xcd\x56\xcd\x57\xcd\x58\xcd\x59\xcd\x5a\xcd\x5b\xcd\x5c\xcd\x5d\xcd\x5e\xcd\x5f\xcd\x60\xcd\x61\xcd\x62\xcd\x63\xcd\x64\xcd\x65\xcd\x66\xcd\x67\xcd\x68\xcd\x69\xcd\x6a\xcd\x6b\xcd\x6c\xcd\x6d\xcd\x6e\xcd\x6f\xcd\x70\xcd\x71\xcd\x72\xcd\x73\xcd\x74\xcd\x75\xcd\x76\xcd\x77\xcd\x78\xcd\x79\xcd\x7a\xcd\x7b\xcd\x7c\xcd\x7d\xcd\x7e\xcd\x7f\xcd\x81\xcd\x82\xcd\x83\xcd\x84\xcd\x85\xcd\x86\xcd\x87\xcd\x88\xcd\x89\xcd\x8a\xcd\x8b\xcd\x8c\xcd\x8d\xcd\x8e\xcd\x8f\xcd\x90\xcd\x91\xcd\x92\xcd\x93\xcd\x94\xcd\x95\xcd\x96\xcd\x97\xcd\x98\xcd\x99\xcd\x9a\xcd\x9b\xcd\x9c\xcd\x9d\xcd\x9e\xcd\x9f\xcd\xa0\xcd\xa1\xcd\xa2\xcd\xa3\xcd\xa4\xcd\xa5\xcd\xa6\xcd\xa7\xcd\xa8\xcd\xa9\xcd\xaa\xcd\xab\xcd\xac\xcd\xad", /* e880 */ "\xcd\xae\xcd\xaf\xcd\xb0\xcd\xb1\xcd\xb2\xcd\xb3\xcd\xb4\xcd\xb5\xcd\xb6\xcd\xb7\xcd\xb8\xcd\xb9\xcd\xba\xcd\xbb\xcd\xbc\xcd\xbd\xcd\xbe\xcd\xbf\xcd\xc0\xcd\xc1\xcd\xc2\xcd\xc3\xcd\xc4\xcd\xc5\xcd\xc6\xcd\xc7\xcd\xc8\xcd\xc9\xcd\xca\xcd\xcb\xcd\xcc\xcd\xcd\xcd\xce\xcd\xcf\xcd\xd0\xcd\xd1\xcd\xd2\xcd\xd3\xcd\xd4\xcd\xd5\xcd\xd6\xcd\xd7\xcd\xd8\xcd\xd9\xcd\xda\xcd\xdb\xcd\xdc\xcd\xdd\xcd\xde\xcd\xdf\xcd\xe0\xcd\xe1\xcd\xe2\xcd\xe3\xcd\xe4\xcd\xe5\xcd\xe6\xcd\xe7\xcd\xe8\xcd\xe9\xcd\xea\xcd\xeb\xcd\xec\xcd\xed\xcd\xee\xcd\xef\xcd\xf0\xcd\xf1\xcd\xf2\xcd\xf3\xcd\xf4\xcd\xf5\xcd\xf6\xcd\xf7\xcd\xf8\xcd\xf9\xcd\xfa\xcd\xfb\xcd\xfc\xcd\xfd\xce\x41\xce\x42\xce\x43\xce\x44\xce\x45\xce\x46\xce\x47\xce\x48\xce\x49\xce\x4a\xce\x4b\xce\x4c\xce\x4d\xce\x4e\xce\x4f\xce\x50\xce\x51\xce\x52\xce\x53\xce\x54\xce\x55\xce\x56\xce\x57\xce\x58\xce\x59\xce\x5a\xce\x5b\xce\x5c\xce\x5d\xce\x5e\xce\x5f\xce\x60\xce\x61\xce\x62\xce\x63\xce\x64\xce\x65\xce\x66\xce\x67\xce\x68\xce\x69\xce\x6a\xce\x6b\xce\x6c\xce\x6d\xce\x6e\xce\x6f\xce\x70", /* e900 */ "\xce\x71\xce\x72\xce\x73\xce\x74\xce\x75\xce\x76\xce\x77\xce\x78\xce\x79\xce\x7a\xce\x7b\xce\x7c\xce\x7d\xce\x7e\xce\x7f\xce\x81\xce\x82\xce\x83\xce\x84\xce\x85\xce\x86\xce\x87\xce\x88\xce\x89\xce\x8a\xce\x8b\xce\x8c\xce\x8d\xce\x8e\xce\x8f\xce\x90\xce\x91\xce\x92\xce\x93\xce\x94\xce\x95\xce\x96\xce\x97\xce\x98\xce\x99\xce\x9a\xce\x9b\xce\x9c\xce\x9d\xce\x9e\xce\x9f\xce\xa0\xce\xa1\xce\xa2\xce\xa3\xce\xa4\xce\xa5\xce\xa6\xce\xa7\xce\xa8\xce\xa9\xce\xaa\xce\xab\xce\xac\xce\xad\xce\xae\xce\xaf\xce\xb0\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xce\xb5\xce\xb6\xce\xb7\xce\xb8\xce\xb9\xce\xba\xce\xbb\xce\xbc\xce\xbd\xce\xbe\xce\xbf\xce\xc0\xce\xc1\xce\xc2\xce\xc3\xce\xc4\xce\xc5\xce\xc6\xce\xc7\xce\xc8\xce\xc9\xce\xca\xce\xcb\xce\xcc\xce\xcd\xce\xce\xce\xcf\xce\xd0\xce\xd1\xce\xd2\xce\xd3\xce\xd4\xce\xd5\xce\xd6\xce\xd7\xce\xd8\xce\xd9\xce\xda\xce\xdb\xce\xdc\xce\xdd\xce\xde\xce\xdf\xce\xe0\xce\xe1\xce\xe2\xce\xe3\xce\xe4\xce\xe5\xce\xe6\xce\xe7\xce\xe8\xce\xe9\xce\xea\xce\xeb\xce\xec\xce\xed\xce\xee\xce\xef\xce\xf0\xce\xf1", /* e980 */ "\xce\xf2\xce\xf3\xce\xf4\xce\xf5\xce\xf6\xce\xf7\xce\xf8\xce\xf9\xce\xfa\xce\xfb\xce\xfc\xce\xfd\xcf\x41\xcf\x42\xcf\x43\xcf\x44\xcf\x45\xcf\x46\xcf\x47\xcf\x48\xcf\x49\xcf\x4a\xcf\x4b\xcf\x4c\xcf\x4d\xcf\x4e\xcf\x4f\xcf\x50\xcf\x51\xcf\x52\xcf\x53\xcf\x54\xcf\x55\xcf\x56\xcf\x57\xcf\x58\xcf\x59\xcf\x5a\xcf\x5b\xcf\x5c\xcf\x5d\xcf\x5e\xcf\x5f\xcf\x60\xcf\x61\xcf\x62\xcf\x63\xcf\x64\xcf\x65\xcf\x66\xcf\x67\xcf\x68\xcf\x69\xcf\x6a\xcf\x6b\xcf\x6c\xcf\x6d\xcf\x6e\xcf\x6f\xcf\x70\xcf\x71\xcf\x72\xcf\x73\xcf\x74\xcf\x75\xcf\x76\xcf\x77\xcf\x78\xcf\x79\xcf\x7a\xcf\x7b\xcf\x7c\xcf\x7d\xcf\x7e\xcf\x7f\xcf\x81\xcf\x82\xcf\x83\xcf\x84\xcf\x85\xcf\x86\xcf\x87\xcf\x88\xcf\x89\xcf\x8a\xcf\x8b\xcf\x8c\xcf\x8d\xcf\x8e\xcf\x8f\xcf\x90\xcf\x91\xcf\x92\xcf\x93\xcf\x94\xcf\x95\xcf\x96\xcf\x97\xcf\x98\xcf\x99\xcf\x9a\xcf\x9b\xcf\x9c\xcf\x9d\xcf\x9e\xcf\x9f\xcf\xa0\xcf\xa1\xcf\xa2\xcf\xa3\xcf\xa4\xcf\xa5\xcf\xa6\xcf\xa7\xcf\xa8\xcf\xa9\xcf\xaa\xcf\xab\xcf\xac\xcf\xad\xcf\xae\xcf\xaf\xcf\xb0\xcf\xb1\xcf\xb2\xcf\xb3\xcf\xb4\xcf\xb5", /* ea00 */ "\xcf\xb6\xcf\xb7\xcf\xb8\xcf\xb9\xcf\xba\xcf\xbb\xcf\xbc\xcf\xbd\xcf\xbe\xcf\xbf\xcf\xc0\xcf\xc1\xcf\xc2\xcf\xc3\xcf\xc4\xcf\xc5\xcf\xc6\xcf\xc7\xcf\xc8\xcf\xc9\xcf\xca\xcf\xcb\xcf\xcc\xcf\xcd\xcf\xce\xcf\xcf\xcf\xd0\xcf\xd1\xcf\xd2\xcf\xd3\xcf\xd4\xcf\xd5\xcf\xd6\xcf\xd7\xcf\xd8\xcf\xd9\xcf\xda\xcf\xdb\xcf\xdc\xcf\xdd\xcf\xde\xcf\xdf\xcf\xe0\xcf\xe1\xcf\xe2\xcf\xe3\xcf\xe4\xcf\xe5\xcf\xe6\xcf\xe7\xcf\xe8\xcf\xe9\xcf\xea\xcf\xeb\xcf\xec\xcf\xed\xcf\xee\xcf\xef\xcf\xf0\xcf\xf1\xcf\xf2\xcf\xf3\xcf\xf4\xcf\xf5\xcf\xf6\xcf\xf7\xcf\xf8\xcf\xf9\xcf\xfa\xcf\xfb\xcf\xfc\xcf\xfd\xd0\x41\xd0\x42\xd0\x43\xd0\x44\xd0\x45\xd0\x46\xd0\x47\xd0\x48\xd0\x49\xd0\x4a\xd0\x4b\xd0\x4c\xd0\x4d\xd0\x4e\xd0\x4f\xd0\x50\xd0\x51\xd0\x52\xd0\x53\xd0\x54\xd0\x55\xd0\x56\xd0\x57\xd0\x58\xd0\x59\xd0\x5a\xd0\x5b\xd0\x5c\xd0\x5d\xd0\x5e\xd0\x5f\xd0\x60\xd0\x61\xd0\x62\xd0\x63\xd0\x64\xd0\x65\xd0\x66\xd0\x67\xd0\x68\xd0\x69\xd0\x6a\xd0\x6b\xd0\x6c\xd0\x6d\xd0\x6e\xd0\x6f\xd0\x70\xd0\x71\xd0\x72\xd0\x73\xd0\x74\xd0\x75\xd0\x76\xd0\x77\xd0\x78", /* ea80 */ "\xd0\x79\xd0\x7a\xd0\x7b\xd0\x7c\xd0\x7d\xd0\x7e\xd0\x7f\xd0\x81\xd0\x82\xd0\x83\xd0\x84\xd0\x85\xd0\x86\xd0\x87\xd0\x88\xd0\x89\xd0\x8a\xd0\x8b\xd0\x8c\xd0\x8d\xd0\x8e\xd0\x8f\xd0\x90\xd0\x91\xd0\x92\xd0\x93\xd0\x94\xd0\x95\xd0\x96\xd0\x97\xd0\x98\xd0\x99\xd0\x9a\xd0\x9b\xd0\x9c\xd0\x9d\xd0\x9e\xd0\x9f\xd0\xa0\xd0\xa1\xd0\xa2\xd0\xa3\xd0\xa4\xd0\xa5\xd0\xa6\xd0\xa7\xd0\xa8\xd0\xa9\xd0\xaa\xd0\xab\xd0\xac\xd0\xad\xd0\xae\xd0\xaf\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5\xd0\xb6\xd0\xb7\xd0\xb8\xd0\xb9\xd0\xba\xd0\xbb\xd0\xbc\xd0\xbd\xd0\xbe\xd0\xbf\xd0\xc0\xd0\xc1\xd0\xc2\xd0\xc3\xd0\xc4\xd0\xc5\xd0\xc6\xd0\xc7\xd0\xc8\xd0\xc9\xd0\xca\xd0\xcb\xd0\xcc\xd0\xcd\xd0\xce\xd0\xcf\xd0\xd0\xd0\xd1\xd0\xd2\xd0\xd3\xd0\xd4\xd0\xd5\xd0\xd6\xd0\xd7\xd0\xd8\xd0\xd9\xd0\xda\xd0\xdb\xd0\xdc\xd0\xdd\xd0\xde\xd0\xdf\xd0\xe0\xd0\xe1\xd0\xe2\xd0\xe3\xd0\xe4\xd0\xe5\xd0\xe6\xd0\xe7\xd0\xe8\xd0\xe9\xd0\xea\xd0\xeb\xd0\xec\xd0\xed\xd0\xee\xd0\xef\xd0\xf0\xd0\xf1\xd0\xf2\xd0\xf3\xd0\xf4\xd0\xf5\xd0\xf6\xd0\xf7\xd0\xf8\xd0\xf9", /* eb00 */ "\xd0\xfa\xd0\xfb\xd0\xfc\xd0\xfd\xd1\x41\xd1\x42\xd1\x43\xd1\x44\xd1\x45\xd1\x46\xd1\x47\xd1\x48\xd1\x49\xd1\x4a\xd1\x4b\xd1\x4c\xd1\x4d\xd1\x4e\xd1\x4f\xd1\x50\xd1\x51\xd1\x52\xd1\x53\xd1\x54\xd1\x55\xd1\x56\xd1\x57\xd1\x58\xd1\x59\xd1\x5a\xd1\x5b\xd1\x5c\xd1\x5d\xd1\x5e\xd1\x5f\xd1\x60\xd1\x61\xd1\x62\xd1\x63\xd1\x64\xd1\x65\xd1\x66\xd1\x67\xd1\x68\xd1\x69\xd1\x6a\xd1\x6b\xd1\x6c\xd1\x6d\xd1\x6e\xd1\x6f\xd1\x70\xd1\x71\xd1\x72\xd1\x73\xd1\x74\xd1\x75\xd1\x76\xd1\x77\xd1\x78\xd1\x79\xd1\x7a\xd1\x7b\xd1\x7c\xd1\x7d\xd1\x7e\xd1\x7f\xd1\x81\xd1\x82\xd1\x83\xd1\x84\xd1\x85\xd1\x86\xd1\x87\xd1\x88\xd1\x89\xd1\x8a\xd1\x8b\xd1\x8c\xd1\x8d\xd1\x8e\xd1\x8f\xd1\x90\xd1\x91\xd1\x92\xd1\x93\xd1\x94\xd1\x95\xd1\x96\xd1\x97\xd1\x98\xd1\x99\xd1\x9a\xd1\x9b\xd1\x9c\xd1\x9d\xd1\x9e\xd1\x9f\xd1\xa0\xd1\xa1\xd1\xa2\xd1\xa3\xd1\xa4\xd1\xa5\xd1\xa6\xd1\xa7\xd1\xa8\xd1\xa9\xd1\xaa\xd1\xab\xd1\xac\xd1\xad\xd1\xae\xd1\xaf\xd1\xb0\xd1\xb1\xd1\xb2\xd1\xb3\xd1\xb4\xd1\xb5\xd1\xb6\xd1\xb7\xd1\xb8\xd1\xb9\xd1\xba\xd1\xbb\xd1\xbc\xd1\xbd", /* eb80 */ "\xd1\xbe\xd1\xbf\xd1\xc0\xd1\xc1\xd1\xc2\xd1\xc3\xd1\xc4\xd1\xc5\xd1\xc6\xd1\xc7\xd1\xc8\xd1\xc9\xd1\xca\xd1\xcb\xd1\xcc\xd1\xcd\xd1\xce\xd1\xcf\xd1\xd0\xd1\xd1\xd1\xd2\xd1\xd3\xd1\xd4\xd1\xd5\xd1\xd6\xd1\xd7\xd1\xd8\xd1\xd9\xd1\xda\xd1\xdb\xd1\xdc\xd1\xdd\xd1\xde\xd1\xdf\xd1\xe0\xd1\xe1\xd1\xe2\xd1\xe3\xd1\xe4\xd1\xe5\xd1\xe6\xd1\xe7\xd1\xe8\xd1\xe9\xd1\xea\xd1\xeb\xd1\xec\xd1\xed\xd1\xee\xd1\xef\xd1\xf0\xd1\xf1\xd1\xf2\xd1\xf3\xd1\xf4\xd1\xf5\xd1\xf6\xd1\xf7\xd1\xf8\xd1\xf9\xd1\xfa\xd1\xfb\xd1\xfc\xd1\xfd\xd2\x41\xd2\x42\xd2\x43\xd2\x44\xd2\x45\xd2\x46\xd2\x47\xd2\x48\xd2\x49\xd2\x4a\xd2\x4b\xd2\x4c\xd2\x4d\xd2\x4e\xd2\x4f\xd2\x50\xd2\x51\xd2\x52\xd2\x53\xd2\x54\xd2\x55\xd2\x56\xd2\x57\xd2\x58\xd2\x59\xd2\x5a\xd2\x5b\xd2\x5c\xd2\x5d\xd2\x5e\xd2\x5f\xd2\x60\xd2\x61\xd2\x62\xd2\x63\xd2\x64\xd2\x65\xd2\x66\xd2\x67\xd2\x68\xd2\x69\xd2\x6a\xd2\x6b\xd2\x6c\xd2\x6d\xd2\x6e\xd2\x6f\xd2\x70\xd2\x71\xd2\x72\xd2\x73\xd2\x74\xd2\x75\xd2\x76\xd2\x77\xd2\x78\xd2\x79\xd2\x7a\xd2\x7b\xd2\x7c\xd2\x7d\xd2\x7e\xd2\x7f\xd2\x81", /* ec00 */ "\xd2\x82\xd2\x83\xd2\x84\xd2\x85\xd2\x86\xd2\x87\xd2\x88\xd2\x89\xd2\x8a\xd2\x8b\xd2\x8c\xd2\x8d\xd2\x8e\xd2\x8f\xd2\x90\xd2\x91\xd2\x92\xd2\x93\xd2\x94\xd2\x95\xd2\x96\xd2\x97\xd2\x98\xd2\x99\xd2\x9a\xd2\x9b\xd2\x9c\xd2\x9d\xd2\x9e\xd2\x9f\xd2\xa0\xd2\xa1\xd2\xa2\xd2\xa3\xd2\xa4\xd2\xa5\xd2\xa6\xd2\xa7\xd2\xa8\xd2\xa9\xd2\xaa\xd2\xab\xd2\xac\xd2\xad\xd2\xae\xd2\xaf\xd2\xb0\xd2\xb1\xd2\xb2\xd2\xb3\xd2\xb4\xd2\xb5\xd2\xb6\xd2\xb7\xd2\xb8\xd2\xb9\xd2\xba\xd2\xbb\xd2\xbc\xd2\xbd\xd2\xbe\xd2\xbf\xd2\xc0\xd2\xc1\xd2\xc2\xd2\xc3\xd2\xc4\xd2\xc5\xd2\xc6\xd2\xc7\xd2\xc8\xd2\xc9\xd2\xca\xd2\xcb\xd2\xcc\xd2\xcd\xd2\xce\xd2\xcf\xd2\xd0\xd2\xd1\xd2\xd2\xd2\xd3\xd2\xd4\xd2\xd5\xd2\xd6\xd2\xd7\xd2\xd8\xd2\xd9\xd2\xda\xd2\xdb\xd2\xdc\xd2\xdd\xd2\xde\xd2\xdf\xd2\xe0\xd2\xe1\xd2\xe2\xd2\xe3\xd2\xe4\xd2\xe5\xd2\xe6\xd2\xe7\xd2\xe8\xd2\xe9\xd2\xea\xd2\xeb\xd2\xec\xd2\xed\xd2\xee\xd2\xef\xd2\xf0\xd2\xf1\xd2\xf2\xd2\xf3\xd2\xf4\xd2\xf5\xd2\xf6\xd2\xf7\xd2\xf8\xd2\xf9\xd2\xfa\xd2\xfb\xd2\xfc\xd2\xfd\xd3\x41\xd3\x42\xd3\x43\xd3\x44", /* ec80 */ "\xd3\x45\xd3\x46\xd3\x47\xd3\x48\xd3\x49\xd3\x4a\xd3\x4b\xd3\x4c\xd3\x4d\xd3\x4e\xd3\x4f\xd3\x50\xd3\x51\xd3\x52\xd3\x53\xd3\x54\xd3\x55\xd3\x56\xd3\x57\xd3\x58\xd3\x59\xd3\x5a\xd3\x5b\xd3\x5c\xd3\x5d\xd3\x5e\xd3\x5f\xd3\x60\xd3\x61\xd3\x62\xd3\x63\xd3\x64\xd3\x65\xd3\x66\xd3\x67\xd3\x68\xd3\x69\xd3\x6a\xd3\x6b\xd3\x6c\xd3\x6d\xd3\x6e\xd3\x6f\xd3\x70\xd3\x71\xd3\x72\xd3\x73\xd3\x74\xd3\x75\xd3\x76\xd3\x77\xd3\x78\xd3\x79\xd3\x7a\xd3\x7b\xd3\x7c\xd3\x7d\xd3\x7e\xd3\x7f\xd3\x81\xd3\x82\xd3\x83\xd3\x84\xd3\x85\xd3\x86\xd3\x87\xd3\x88\xd3\x89\xd3\x8a\xd3\x8b\xd3\x8c\xd3\x8d\xd3\x8e\xd3\x8f\xd3\x90\xd3\x91\xd3\x92\xd3\x93\xd3\x94\xd3\x95\xd3\x96\xd3\x97\xd3\x98\xd3\x99\xd3\x9a\xd3\x9b\xd3\x9c\xd3\x9d\xd3\x9e\xd3\x9f\xd3\xa0\xd3\xa1\xd3\xa2\xd3\xa3\xd3\xa4\xd3\xa5\xd3\xa6\xd3\xa7\xd3\xa8\xd3\xa9\xd3\xaa\xd3\xab\xd3\xac\xd3\xad\xd3\xae\xd3\xaf\xd3\xb0\xd3\xb1\xd3\xb2\xd3\xb3\xd3\xb4\xd3\xb5\xd3\xb6\xd3\xb7\xd3\xb8\xd3\xb9\xd3\xba\xd3\xbb\xd3\xbc\xd3\xbd\xd3\xbe\xd3\xbf\xd3\xc0\xd3\xc1\xd3\xc2\xd3\xc3\xd3\xc4\xd3\xc5", /* ed00 */ "\xd3\xc6\xd3\xc7\xd3\xc8\xd3\xc9\xd3\xca\xd3\xcb\xd3\xcc\xd3\xcd\xd3\xce\xd3\xcf\xd3\xd0\xd3\xd1\xd3\xd2\xd3\xd3\xd3\xd4\xd3\xd5\xd3\xd6\xd3\xd7\xd3\xd8\xd3\xd9\xd3\xda\xd3\xdb\xd3\xdc\xd3\xdd\xd3\xde\xd3\xdf\xd3\xe0\xd3\xe1\xd3\xe2\xd3\xe3\xd3\xe4\xd3\xe5\xd3\xe6\xd3\xe7\xd3\xe8\xd3\xe9\xd3\xea\xd3\xeb\xd3\xec\xd3\xed\xd3\xee\xd3\xef\xd3\xf0\xd3\xf1\xd3\xf2\xd3\xf3\xd3\xf4\xd3\xf5\xd3\xf6\xd3\xf7\xd3\xf8\xd3\xf9\xd3\xfa\xd3\xfb\xd3\xfc\xd3\xfd\xd4\x41\xd4\x42\xd4\x43\xd4\x44\xd4\x45\xd4\x46\xd4\x47\xd4\x48\xd4\x49\xd4\x4a\xd4\x4b\xd4\x4c\xd4\x4d\xd4\x4e\xd4\x4f\xd4\x50\xd4\x51\xd4\x52\xd4\x53\xd4\x54\xd4\x55\xd4\x56\xd4\x57\xd4\x58\xd4\x59\xd4\x5a\xd4\x5b\xd4\x5c\xd4\x5d\xd4\x5e\xd4\x5f\xd4\x60\xd4\x61\xd4\x62\xd4\x63\xd4\x64\xd4\x65\xd4\x66\xd4\x67\xd4\x68\xd4\x69\xd4\x6a\xd4\x6b\xd4\x6c\xd4\x6d\xd4\x6e\xd4\x6f\xd4\x70\xd4\x71\xd4\x72\xd4\x73\xd4\x74\xd4\x75\xd4\x76\xd4\x77\xd4\x78\xd4\x79\xd4\x7a\xd4\x7b\xd4\x7c\xd4\x7d\xd4\x7e\xd4\x7f\xd4\x81\xd4\x82\xd4\x83\xd4\x84\xd4\x85\xd4\x86\xd4\x87\xd4\x88\xd4\x89", /* ed80 */ "\xd4\x8a\xd4\x8b\xd4\x8c\xd4\x8d\xd4\x8e\xd4\x8f\xd4\x90\xd4\x91\xd4\x92\xd4\x93\xd4\x94\xd4\x95\xd4\x96\xd4\x97\xd4\x98\xd4\x99\xd4\x9a\xd4\x9b\xd4\x9c\xd4\x9d\xd4\x9e\xd4\x9f\xd4\xa0\xd4\xa1\xd4\xa2\xd4\xa3\xd4\xa4\xd4\xa5\xd4\xa6\xd4\xa7\xd4\xa8\xd4\xa9\xd4\xaa\xd4\xab\xd4\xac\xd4\xad\xd4\xae\xd4\xaf\xd4\xb0\xd4\xb1\xd4\xb2\xd4\xb3\xd4\xb4\xd4\xb5\xd4\xb6\xd4\xb7\xd4\xb8\xd4\xb9\xd4\xba\xd4\xbb\xd4\xbc\xd4\xbd\xd4\xbe\xd4\xbf\xd4\xc0\xd4\xc1\xd4\xc2\xd4\xc3\xd4\xc4\xd4\xc5\xd4\xc6\xd4\xc7\xd4\xc8\xd4\xc9\xd4\xca\xd4\xcb\xd4\xcc\xd4\xcd\xd4\xce\xd4\xcf\xd4\xd0\xd4\xd1\xd4\xd2\xd4\xd3\xd4\xd4\xd4\xd5\xd4\xd6\xd4\xd7\xd4\xd8\xd4\xd9\xd4\xda\xd4\xdb\xd4\xdc\xd4\xdd\xd4\xde\xd4\xdf\xd4\xe0\xd4\xe1\xd4\xe2\xd4\xe3\xd4\xe4\xd4\xe5\xd4\xe6\xd4\xe7\xd4\xe8\xd4\xe9\xd4\xea\xd4\xeb\xd4\xec\xd4\xed\xd4\xee\xd4\xef\xd4\xf0\xd4\xf1\xd4\xf2\xd4\xf3\xd4\xf4\xd4\xf5\xd4\xf6\xd4\xf7\xd4\xf8\xd4\xf9\xd4\xfa\xd4\xfb\xd4\xfc\xd4\xfd\xd5\x41\xd5\x42\xd5\x43\xd5\x44\xd5\x45\xd5\x46\xd5\x47\xd5\x48\xd5\x49\xd5\x4a\xd5\x4b\xd5\x4c", /* ee00 */ "\xd5\x4d\xd5\x4e\xd5\x4f\xd5\x50\xd5\x51\xd5\x52\xd5\x53\xd5\x54\xd5\x55\xd5\x56\xd5\x57\xd5\x58\xd5\x59\xd5\x5a\xd5\x5b\xd5\x5c\xd5\x5d\xd5\x5e\xd5\x5f\xd5\x60\xd5\x61\xd5\x62\xd5\x63\xd5\x64\xd5\x65\xd5\x66\xd5\x67\xd5\x68\xd5\x69\xd5\x6a\xd5\x6b\xd5\x6c\xd5\x6d\xd5\x6e\xd5\x6f\xd5\x70\xd5\x71\xd5\x72\xd5\x73\xd5\x74\xd5\x75\xd5\x76\xd5\x77\xd5\x78\xd5\x79\xd5\x7a\xd5\x7b\xd5\x7c\xd5\x7d\xd5\x7e\xd5\x7f\xd5\x81\xd5\x82\xd5\x83\xd5\x84\xd5\x85\xd5\x86\xd5\x87\xd5\x88\xd5\x89\xd5\x8a\xd5\x8b\xd5\x8c\xd5\x8d\xd5\x8e\xd5\x8f\xd5\x90\xd5\x91\xd5\x92\xd5\x93\xd5\x94\xd5\x95\xd5\x96\xd5\x97\xd5\x98\xd5\x99\xd5\x9a\xd5\x9b\xd5\x9c\xd5\x9d\xd5\x9e\xd5\x9f\xd5\xa0\xd5\xa1\xd5\xa2\xd5\xa3\xd5\xa4\xd5\xa5\xd5\xa6\xd5\xa7\xd5\xa8\xd5\xa9\xd5\xaa\xd5\xab\xd5\xac\xd5\xad\xd5\xae\xd5\xaf\xd5\xb0\xd5\xb1\xd5\xb2\xd5\xb3\xd5\xb4\xd5\xb5\xd5\xb6\xd5\xb7\xd5\xb8\xd5\xb9\xd5\xba\xd5\xbb\xd5\xbc\xd5\xbd\xd5\xbe\xd5\xbf\xd5\xc0\xd5\xc1\xd5\xc2\xd5\xc3\xd5\xc4\xd5\xc5\xd5\xc6\xd5\xc7\xd5\xc8\xd5\xc9\xd5\xca\xd5\xcb\xd5\xcc\xd5\xcd", /* ee80 */ "\xd5\xce\xd5\xcf\xd5\xd0\xd5\xd1\xd5\xd2\xd5\xd3\xd5\xd4\xd5\xd5\xd5\xd6\xd5\xd7\xd5\xd8\xd5\xd9\xd5\xda\xd5\xdb\xd5\xdc\xd5\xdd\xd5\xde\xd5\xdf\xd5\xe0\xd5\xe1\xd5\xe2\xd5\xe3\xd5\xe4\xd5\xe5\xd5\xe6\xd5\xe7\xd5\xe8\xd5\xe9\xd5\xea\xd5\xeb\xd5\xec\xd5\xed\xd5\xee\xd5\xef\xd5\xf0\xd5\xf1\xd5\xf2\xd5\xf3\xd5\xf4\xd5\xf5\xd5\xf6\xd5\xf7\xd5\xf8\xd5\xf9\xd5\xfa\xd5\xfb\xd5\xfc\xd5\xfd\xd6\x41\xd6\x42\xd6\x43\xd6\x44\xd6\x45\xd6\x46\xd6\x47\xd6\x48\xd6\x49\xd6\x4a\xd6\x4b\xd6\x4c\xd6\x4d\xd6\x4e\xd6\x4f\xd6\x50\xd6\x51\xd6\x52\xd6\x53\xd6\x54\xd6\x55\xd6\x56\xd6\x57\xd6\x58\xd6\x59\xd6\x5a\xd6\x5b\xd6\x5c\xd6\x5d\xd6\x5e\xd6\x5f\xd6\x60\xd6\x61\xd6\x62\xd6\x63\xd6\x64\xd6\x65\xd6\x66\xd6\x67\xd6\x68\xd6\x69\xd6\x6a\xd6\x6b\xd6\x6c\xd6\x6d\xd6\x6e\xd6\x6f\xd6\x70\xd6\x71\xd6\x72\xd6\x73\xd6\x74\xd6\x75\xd6\x76\xd6\x77\xd6\x78\xd6\x79\xd6\x7a\xd6\x7b\xd6\x7c\xd6\x7d\xd6\x7e\xd6\x7f\xd6\x81\xd6\x82\xd6\x83\xd6\x84\xd6\x85\xd6\x86\xd6\x87\xd6\x88\xd6\x89\xd6\x8a\xd6\x8b\xd6\x8c\xd6\x8d\xd6\x8e\xd6\x8f\xd6\x90\xd6\x91", /* ef00 */ "\xd6\x92\xd6\x93\xd6\x94\xd6\x95\xd6\x96\xd6\x97\xd6\x98\xd6\x99\xd6\x9a\xd6\x9b\xd6\x9c\xd6\x9d\xd6\x9e\xd6\x9f\xd6\xa0\xd6\xa1\xd6\xa2\xd6\xa3\xd6\xa4\xd6\xa5\xd6\xa6\xd6\xa7\xd6\xa8\xd6\xa9\xd6\xaa\xd6\xab\xd6\xac\xd6\xad\xd6\xae\xd6\xaf\xd6\xb0\xd6\xb1\xd6\xb2\xd6\xb3\xd6\xb4\xd6\xb5\xd6\xb6\xd6\xb7\xd6\xb8\xd6\xb9\xd6\xba\xd6\xbb\xd6\xbc\xd6\xbd\xd6\xbe\xd6\xbf\xd6\xc0\xd6\xc1\xd6\xc2\xd6\xc3\xd6\xc4\xd6\xc5\xd6\xc6\xd6\xc7\xd6\xc8\xd6\xc9\xd6\xca\xd6\xcb\xd6\xcc\xd6\xcd\xd6\xce\xd6\xcf\xd6\xd0\xd6\xd1\xd6\xd2\xd6\xd3\xd6\xd4\xd6\xd5\xd6\xd6\xd6\xd7\xd6\xd8\xd6\xd9\xd6\xda\xd6\xdb\xd6\xdc\xd6\xdd\xd6\xde\xd6\xdf\xd6\xe0\xd6\xe1\xd6\xe2\xd6\xe3\xd6\xe4\xd6\xe5\xd6\xe6\xd6\xe7\xd6\xe8\xd6\xe9\xd6\xea\xd6\xeb\xd6\xec\xd6\xed\xd6\xee\xd6\xef\xd6\xf0\xd6\xf1\xd6\xf2\xd6\xf3\xd6\xf4\xd6\xf5\xd6\xf6\xd6\xf7\xd6\xf8\xd6\xf9\xd6\xfa\xd6\xfb\xd6\xfc\xd6\xfd\xd7\x41\xd7\x42\xd7\x43\xd7\x44\xd7\x45\xd7\x46\xd7\x47\xd7\x48\xd7\x49\xd7\x4a\xd7\x4b\xd7\x4c\xd7\x4d\xd7\x4e\xd7\x4f\xd7\x50\xd7\x51\xd7\x52\xd7\x53\xd7\x54", /* ef80 */ "\xd7\x55\xd7\x56\xd7\x57\xd7\x58\xd7\x59\xd7\x5a\xd7\x5b\xd7\x5c\xd7\x5d\xd7\x5e\xd7\x5f\xd7\x60\xd7\x61\xd7\x62\xd7\x63\xd7\x64\xd7\x65\xd7\x66\xd7\x67\xd7\x68\xd7\x69\xd7\x6a\xd7\x6b\xd7\x6c\xd7\x6d\xd7\x6e\xd7\x6f\xd7\x70\xd7\x71\xd7\x72\xd7\x73\xd7\x74\xd7\x75\xd7\x76\xd7\x77\xd7\x78\xd7\x79\xd7\x7a\xd7\x7b\xd7\x7c\xd7\x7d\xd7\x7e\xd7\x7f\xd7\x81\xd7\x82\xd7\x83\xd7\x84\xd7\x85\xd7\x86\xd7\x87\xd7\x88\xd7\x89\xd7\x8a\xd7\x8b\xd7\x8c\xd7\x8d\xd7\x8e\xd7\x8f\xd7\x90\xd7\x91\xd7\x92\xd7\x93\xd7\x94\xd7\x95\xd7\x96\xd7\x97\xd7\x98\xd7\x99\xd7\x9a\xd7\x9b\xd7\x9c\xd7\x9d\xd7\x9e\xd7\x9f\xd7\xa0\xd7\xa1\xd7\xa2\xd7\xa3\xd7\xa4\xd7\xa5\xd7\xa6\xd7\xa7\xd7\xa8\xd7\xa9\xd7\xaa\xd7\xab\xd7\xac\xd7\xad\xd7\xae\xd7\xaf\xd7\xb0\xd7\xb1\xd7\xb2\xd7\xb3\xd7\xb4\xd7\xb5\xd7\xb6\xd7\xb7\xd7\xb8\xd7\xb9\xd7\xba\xd7\xbb\xd7\xbc\xd7\xbd\xd7\xbe\xd7\xbf\xd7\xc0\xd7\xc1\xd7\xc2\xd7\xc3\xd7\xc4\xd7\xc5\xd7\xc6\xd7\xc7\xd7\xc8\xd7\xc9\xd7\xca\xd7\xcb\xd7\xcc\xd7\xcd\xd7\xce\xd7\xcf\xd7\xd0\xd7\xd1\xd7\xd2\xd7\xd3\xd7\xd4\xd7\xd5", /* f000 */ "\xd7\xd6\xd7\xd7\xd7\xd8\xd7\xd9\xd7\xda\xd7\xdb\xd7\xdc\xd7\xdd\xd7\xde\xd7\xdf\xd7\xe0\xd7\xe1\xd7\xe2\xd7\xe3\xd7\xe4\xd7\xe5\xd7\xe6\xd7\xe7\xd7\xe8\xd7\xe9\xd7\xea\xd7\xeb\xd7\xec\xd7\xed\xd7\xee\xd7\xef\xd7\xf0\xd7\xf1\xd7\xf2\xd7\xf3\xd7\xf4\xd7\xf5\xd7\xf6\xd7\xf7\xd7\xf8\xd7\xf9\xd7\xfa\xd7\xfb\xd7\xfc\xd7\xfd\xd8\x41\xd8\x42\xd8\x43\xd8\x44\xd8\x45\xd8\x46\xd8\x47\xd8\x48\xd8\x49\xd8\x4a\xd8\x4b\xd8\x4c\xd8\x4d\xd8\x4e\xd8\x4f\xd8\x50\xd8\x51\xd8\x52\xd8\x53\xd8\x54\xd8\x55\xd8\x56\xd8\x57\xd8\x58\xd8\x59\xd8\x5a\xd8\x5b\xd8\x5c\xd8\x5d\xd8\x5e\xd8\x5f\xd8\x60\xd8\x61\xd8\x62\xd8\x63\xd8\x64\xd8\x65\xd8\x66\xd8\x67\xd8\x68\xd8\x69\xd8\x6a\xd8\x6b\xd8\x6c\xd8\x6d\xd8\x6e\xd8\x6f\xd8\x70\xd8\x71\xd8\x72\xd8\x73\xd8\x74\xd8\x75\xd8\x76\xd8\x77\xd8\x78\xd8\x79\xd8\x7a\xd8\x7b\xd8\x7c\xd8\x7d\xd8\x7e\xd8\x7f\xd8\x81\xd8\x82\xd8\x83\xd8\x84\xd8\x85\xd8\x86\xd8\x87\xd8\x88\xd8\x89\xd8\x8a\xd8\x8b\xd8\x8c\xd8\x8d\xd8\x8e\xd8\x8f\xd8\x90\xd8\x91\xd8\x92\xd8\x93\xd8\x94\xd8\x95\xd8\x96\xd8\x97\xd8\x98\xd8\x99", /* f080 */ "\xd8\x9a\xd8\x9b\xd8\x9c\xd8\x9d\xd8\x9e\xd8\x9f\xd8\xa0\xd8\xa1\xd8\xa2\xd8\xa3\xd8\xa4\xd8\xa5\xd8\xa6\xd8\xa7\xd8\xa8\xd8\xa9\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae\xd8\xaf\xd8\xb0\xd8\xb1\xd8\xb2\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba\xd8\xbb\xd8\xbc\xd8\xbd\xd8\xbe\xd8\xbf\xd8\xc0\xd8\xc1\xd8\xc2\xd8\xc3\xd8\xc4\xd8\xc5\xd8\xc6\xd8\xc7\xd8\xc8\xd8\xc9\xd8\xca\xd8\xcb\xd8\xcc\xd8\xcd\xd8\xce\xd8\xcf\xd8\xd0\xd8\xd1\xd8\xd2\xd8\xd3\xd8\xd4\xd8\xd5\xd8\xd6\xd8\xd7\xd8\xd8\xd8\xd9\xd8\xda\xd8\xdb\xd8\xdc\xd8\xdd\xd8\xde\xd8\xdf\xd8\xe0\xd8\xe1\xd8\xe2\xd8\xe3\xd8\xe4\xd8\xe5\xd8\xe6\xd8\xe7\xd8\xe8\xd8\xe9\xd8\xea\xd8\xeb\xd8\xec\xd8\xed\xd8\xee\xd8\xef\xd8\xf0\xd8\xf1\xd8\xf2\xd8\xf3\xd8\xf4\xd8\xf5\xd8\xf6\xd8\xf7\xd8\xf8\xd8\xf9\xd8\xfa\xd8\xfb\xd8\xfc\xd8\xfd\xd9\x41\xd9\x42\xd9\x43\xd9\x44\xd9\x45\xd9\x46\xd9\x47\xd9\x48\xd9\x49\xd9\x4a\xd9\x4b\xd9\x4c\xd9\x4d\xd9\x4e\xd9\x4f\xd9\x50\xd9\x51\xd9\x52\xd9\x53\xd9\x54\xd9\x55\xd9\x56\xd9\x57\xd9\x58\xd9\x59\xd9\x5a\xd9\x5b\xd9\x5c", /* f100 */ "\xd9\x5d\xd9\x5e\xd9\x5f\xd9\x60\xd9\x61\xd9\x62\xd9\x63\xd9\x64\xd9\x65\xd9\x66\xd9\x67\xd9\x68\xd9\x69\xd9\x6a\xd9\x6b\xd9\x6c\xd9\x6d\xd9\x6e\xd9\x6f\xd9\x70\xd9\x71\xd9\x72\xd9\x73\xd9\x74\xd9\x75\xd9\x76\xd9\x77\xd9\x78\xd9\x79\xd9\x7a\xd9\x7b\xd9\x7c\xd9\x7d\xd9\x7e\xd9\x7f\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x88\xd9\x89\xd9\x8a\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f\xd9\x90\xd9\x91\xd9\x92\xd9\x93\xd9\x94\xd9\x95\xd9\x96\xd9\x97\xd9\x98\xd9\x99\xd9\x9a\xd9\x9b\xd9\x9c\xd9\x9d\xd9\x9e\xd9\x9f\xd9\xa0\xd9\xa1\xd9\xa2\xd9\xa3\xd9\xa4\xd9\xa5\xd9\xa6\xd9\xa7\xd9\xa8\xd9\xa9\xd9\xaa\xd9\xab\xd9\xac\xd9\xad\xd9\xae\xd9\xaf\xd9\xb0\xd9\xb1\xd9\xb2\xd9\xb3\xd9\xb4\xd9\xb5\xd9\xb6\xd9\xb7\xd9\xb8\xd9\xb9\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf\xd9\xc0\xd9\xc1\xd9\xc2\xd9\xc3\xd9\xc4\xd9\xc5\xd9\xc6\xd9\xc7\xd9\xc8\xd9\xc9\xd9\xca\xd9\xcb\xd9\xcc\xd9\xcd\xd9\xce\xd9\xcf\xd9\xd0\xd9\xd1\xd9\xd2\xd9\xd3\xd9\xd4\xd9\xd5\xd9\xd6\xd9\xd7\xd9\xd8\xd9\xd9\xd9\xda\xd9\xdb\xd9\xdc\xd9\xdd", /* f180 */ "\xd9\xde\xd9\xdf\xd9\xe0\xd9\xe1\xd9\xe2\xd9\xe3\xd9\xe4\xd9\xe5\xd9\xe6\xd9\xe7\xd9\xe8\xd9\xe9\xd9\xea\xd9\xeb\xd9\xec\xd9\xed\xd9\xee\xd9\xef\xd9\xf0\xd9\xf1\xd9\xf2\xd9\xf3\xd9\xf4\xd9\xf5\xd9\xf6\xd9\xf7\xd9\xf8\xd9\xf9\xd9\xfa\xd9\xfb\xd9\xfc\xd9\xfd\xda\x41\xda\x42\xda\x43\xda\x44\xda\x45\xda\x46\xda\x47\xda\x48\xda\x49\xda\x4a\xda\x4b\xda\x4c\xda\x4d\xda\x4e\xda\x4f\xda\x50\xda\x51\xda\x52\xda\x53\xda\x54\xda\x55\xda\x56\xda\x57\xda\x58\xda\x59\xda\x5a\xda\x5b\xda\x5c\xda\x5d\xda\x5e\xda\x5f\xda\x60\xda\x61\xda\x62\xda\x63\xda\x64\xda\x65\xda\x66\xda\x67\xda\x68\xda\x69\xda\x6a\xda\x6b\xda\x6c\xda\x6d\xda\x6e\xda\x6f\xda\x70\xda\x71\xda\x72\xda\x73\xda\x74\xda\x75\xda\x76\xda\x77\xda\x78\xda\x79\xda\x7a\xda\x7b\xda\x7c\xda\x7d\xda\x7e\xda\x7f\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87\xda\x88\xda\x89\xda\x8a\xda\x8b\xda\x8c\xda\x8d\xda\x8e\xda\x8f\xda\x90\xda\x91\xda\x92\xda\x93\xda\x94\xda\x95\xda\x96\xda\x97\xda\x98\xda\x99\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f\xda\xa0\xda\xa1", /* f200 */ "\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8\xda\xa9\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9\xda\xba\xda\xbb\xda\xbc\xda\xbd\xda\xbe\xda\xbf\xda\xc0\xda\xc1\xda\xc2\xda\xc3\xda\xc4\xda\xc5\xda\xc6\xda\xc7\xda\xc8\xda\xc9\xda\xca\xda\xcb\xda\xcc\xda\xcd\xda\xce\xda\xcf\xda\xd0\xda\xd1\xda\xd2\xda\xd3\xda\xd4\xda\xd5\xda\xd6\xda\xd7\xda\xd8\xda\xd9\xda\xda\xda\xdb\xda\xdc\xda\xdd\xda\xde\xda\xdf\xda\xe0\xda\xe1\xda\xe2\xda\xe3\xda\xe4\xda\xe5\xda\xe6\xda\xe7\xda\xe8\xda\xe9\xda\xea\xda\xeb\xda\xec\xda\xed\xda\xee\xda\xef\xda\xf0\xda\xf1\xda\xf2\xda\xf3\xda\xf4\xda\xf5\xda\xf6\xda\xf7\xda\xf8\xda\xf9\xda\xfa\xda\xfb\xda\xfc\xda\xfd\xdb\x41\xdb\x42\xdb\x43\xdb\x44\xdb\x45\xdb\x46\xdb\x47\xdb\x48\xdb\x49\xdb\x4a\xdb\x4b\xdb\x4c\xdb\x4d\xdb\x4e\xdb\x4f\xdb\x50\xdb\x51\xdb\x52\xdb\x53\xdb\x54\xdb\x55\xdb\x56\xdb\x57\xdb\x58\xdb\x59\xdb\x5a\xdb\x5b\xdb\x5c\xdb\x5d\xdb\x5e\xdb\x5f\xdb\x60\xdb\x61\xdb\x62\xdb\x63\xdb\x64", /* f280 */ "\xdb\x65\xdb\x66\xdb\x67\xdb\x68\xdb\x69\xdb\x6a\xdb\x6b\xdb\x6c\xdb\x6d\xdb\x6e\xdb\x6f\xdb\x70\xdb\x71\xdb\x72\xdb\x73\xdb\x74\xdb\x75\xdb\x76\xdb\x77\xdb\x78\xdb\x79\xdb\x7a\xdb\x7b\xdb\x7c\xdb\x7d\xdb\x7e\xdb\x7f\xdb\x81\xdb\x82\xdb\x83\xdb\x84\xdb\x85\xdb\x86\xdb\x87\xdb\x88\xdb\x89\xdb\x8a\xdb\x8b\xdb\x8c\xdb\x8d\xdb\x8e\xdb\x8f\xdb\x90\xdb\x91\xdb\x92\xdb\x93\xdb\x94\xdb\x95\xdb\x96\xdb\x97\xdb\x98\xdb\x99\xdb\x9a\xdb\x9b\xdb\x9c\xdb\x9d\xdb\x9e\xdb\x9f\xdb\xa0\xdb\xa1\xdb\xa2\xdb\xa3\xdb\xa4\xdb\xa5\xdb\xa6\xdb\xa7\xdb\xa8\xdb\xa9\xdb\xaa\xdb\xab\xdb\xac\xdb\xad\xdb\xae\xdb\xaf\xdb\xb0\xdb\xb1\xdb\xb2\xdb\xb3\xdb\xb4\xdb\xb5\xdb\xb6\xdb\xb7\xdb\xb8\xdb\xb9\xdb\xba\xdb\xbb\xdb\xbc\xdb\xbd\xdb\xbe\xdb\xbf\xdb\xc0\xdb\xc1\xdb\xc2\xdb\xc3\xdb\xc4\xdb\xc5\xdb\xc6\xdb\xc7\xdb\xc8\xdb\xc9\xdb\xca\xdb\xcb\xdb\xcc\xdb\xcd\xdb\xce\xdb\xcf\xdb\xd0\xdb\xd1\xdb\xd2\xdb\xd3\xdb\xd4\xdb\xd5\xdb\xd6\xdb\xd7\xdb\xd8\xdb\xd9\xdb\xda\xdb\xdb\xdb\xdc\xdb\xdd\xdb\xde\xdb\xdf\xdb\xe0\xdb\xe1\xdb\xe2\xdb\xe3\xdb\xe4\xdb\xe5", /* f300 */ "\xdb\xe6\xdb\xe7\xdb\xe8\xdb\xe9\xdb\xea\xdb\xeb\xdb\xec\xdb\xed\xdb\xee\xdb\xef\xdb\xf0\xdb\xf1\xdb\xf2\xdb\xf3\xdb\xf4\xdb\xf5\xdb\xf6\xdb\xf7\xdb\xf8\xdb\xf9\xdb\xfa\xdb\xfb\xdb\xfc\xdb\xfd\xdc\x41\xdc\x42\xdc\x43\xdc\x44\xdc\x45\xdc\x46\xdc\x47\xdc\x48\xdc\x49\xdc\x4a\xdc\x4b\xdc\x4c\xdc\x4d\xdc\x4e\xdc\x4f\xdc\x50\xdc\x51\xdc\x52\xdc\x53\xdc\x54\xdc\x55\xdc\x56\xdc\x57\xdc\x58\xdc\x59\xdc\x5a\xdc\x5b\xdc\x5c\xdc\x5d\xdc\x5e\xdc\x5f\xdc\x60\xdc\x61\xdc\x62\xdc\x63\xdc\x64\xdc\x65\xdc\x66\xdc\x67\xdc\x68\xdc\x69\xdc\x6a\xdc\x6b\xdc\x6c\xdc\x6d\xdc\x6e\xdc\x6f\xdc\x70\xdc\x71\xdc\x72\xdc\x73\xdc\x74\xdc\x75\xdc\x76\xdc\x77\xdc\x78\xdc\x79\xdc\x7a\xdc\x7b\xdc\x7c\xdc\x7d\xdc\x7e\xdc\x7f\xdc\x81\xdc\x82\xdc\x83\xdc\x84\xdc\x85\xdc\x86\xdc\x87\xdc\x88\xdc\x89\xdc\x8a\xdc\x8b\xdc\x8c\xdc\x8d\xdc\x8e\xdc\x8f\xdc\x90\xdc\x91\xdc\x92\xdc\x93\xdc\x94\xdc\x95\xdc\x96\xdc\x97\xdc\x98\xdc\x99\xdc\x9a\xdc\x9b\xdc\x9c\xdc\x9d\xdc\x9e\xdc\x9f\xdc\xa0\xdc\xa1\xdc\xa2\xdc\xa3\xdc\xa4\xdc\xa5\xdc\xa6\xdc\xa7\xdc\xa8\xdc\xa9", /* f380 */ "\xdc\xaa\xdc\xab\xdc\xac\xdc\xad\xdc\xae\xdc\xaf\xdc\xb0\xdc\xb1\xdc\xb2\xdc\xb3\xdc\xb4\xdc\xb5\xdc\xb6\xdc\xb7\xdc\xb8\xdc\xb9\xdc\xba\xdc\xbb\xdc\xbc\xdc\xbd\xdc\xbe\xdc\xbf\xdc\xc0\xdc\xc1\xdc\xc2\xdc\xc3\xdc\xc4\xdc\xc5\xdc\xc6\xdc\xc7\xdc\xc8\xdc\xc9\xdc\xca\xdc\xcb\xdc\xcc\xdc\xcd\xdc\xce\xdc\xcf\xdc\xd0\xdc\xd1\xdc\xd2\xdc\xd3\xdc\xd4\xdc\xd5\xdc\xd6\xdc\xd7\xdc\xd8\xdc\xd9\xdc\xda\xdc\xdb\xdc\xdc\xdc\xdd\xdc\xde\xdc\xdf\xdc\xe0\xdc\xe1\xdc\xe2\xdc\xe3\xdc\xe4\xdc\xe5\xdc\xe6\xdc\xe7\xdc\xe8\xdc\xe9\xdc\xea\xdc\xeb\xdc\xec\xdc\xed\xdc\xee\xdc\xef\xdc\xf0\xdc\xf1\xdc\xf2\xdc\xf3\xdc\xf4\xdc\xf5\xdc\xf6\xdc\xf7\xdc\xf8\xdc\xf9\xdc\xfa\xdc\xfb\xdc\xfc\xdc\xfd\xdd\x41\xdd\x42\xdd\x43\xdd\x44\xdd\x45\xdd\x46\xdd\x47\xdd\x48\xdd\x49\xdd\x4a\xdd\x4b\xdd\x4c\xdd\x4d\xdd\x4e\xdd\x4f\xdd\x50\xdd\x51\xdd\x52\xdd\x53\xdd\x54\xdd\x55\xdd\x56\xdd\x57\xdd\x58\xdd\x59\xdd\x5a\xdd\x5b\xdd\x5c\xdd\x5d\xdd\x5e\xdd\x5f\xdd\x60\xdd\x61\xdd\x62\xdd\x63\xdd\x64\xdd\x65\xdd\x66\xdd\x67\xdd\x68\xdd\x69\xdd\x6a\xdd\x6b\xdd\x6c", /* f400 */ "\xdd\x6d\xdd\x6e\xdd\x6f\xdd\x70\xdd\x71\xdd\x72\xdd\x73\xdd\x74\xdd\x75\xdd\x76\xdd\x77\xdd\x78\xdd\x79\xdd\x7a\xdd\x7b\xdd\x7c\xdd\x7d\xdd\x7e\xdd\x7f\xdd\x81\xdd\x82\xdd\x83\xdd\x84\xdd\x85\xdd\x86\xdd\x87\xdd\x88\xdd\x89\xdd\x8a\xdd\x8b\xdd\x8c\xdd\x8d\xdd\x8e\xdd\x8f\xdd\x90\xdd\x91\xdd\x92\xdd\x93\xdd\x94\xdd\x95\xdd\x96\xdd\x97\xdd\x98\xdd\x99\xdd\x9a\xdd\x9b\xdd\x9c\xdd\x9d\xdd\x9e\xdd\x9f\xdd\xa0\xdd\xa1\xdd\xa2\xdd\xa3\xdd\xa4\xdd\xa5\xdd\xa6\xdd\xa7\xdd\xa8\xdd\xa9\xdd\xaa\xdd\xab\xdd\xac\xdd\xad\xdd\xae\xdd\xaf\xdd\xb0\xdd\xb1\xdd\xb2\xdd\xb3\xdd\xb4\xdd\xb5\xdd\xb6\xdd\xb7\xdd\xb8\xdd\xb9\xdd\xba\xdd\xbb\xdd\xbc\xdd\xbd\xdd\xbe\xdd\xbf\xdd\xc0\xdd\xc1\xdd\xc2\xdd\xc3\xdd\xc4\xdd\xc5\xdd\xc6\xdd\xc7\xdd\xc8\xdd\xc9\xdd\xca\xdd\xcb\xdd\xcc\xdd\xcd\xdd\xce\xdd\xcf\xdd\xd0\xdd\xd1\xdd\xd2\xdd\xd3\xdd\xd4\xdd\xd5\xdd\xd6\xdd\xd7\xdd\xd8\xdd\xd9\xdd\xda\xdd\xdb\xdd\xdc\xdd\xdd\xdd\xde\xdd\xdf\xdd\xe0\xdd\xe1\xdd\xe2\xdd\xe3\xdd\xe4\xdd\xe5\xdd\xe6\xdd\xe7\xdd\xe8\xdd\xe9\xdd\xea\xdd\xeb\xdd\xec\xdd\xed", /* f480 */ "\xdd\xee\xdd\xef\xdd\xf0\xdd\xf1\xdd\xf2\xdd\xf3\xdd\xf4\xdd\xf5\xdd\xf6\xdd\xf7\xdd\xf8\xdd\xf9\xdd\xfa\xdd\xfb\xdd\xfc\xdd\xfd\xde\x41\xde\x42\xde\x43\xde\x44\xde\x45\xde\x46\xde\x47\xde\x48\xde\x49\xde\x4a\xde\x4b\xde\x4c\xde\x4d\xde\x4e\xde\x4f\xde\x50\xde\x51\xde\x52\xde\x53\xde\x54\xde\x55\xde\x56\xde\x57\xde\x58\xde\x59\xde\x5a\xde\x5b\xde\x5c\xde\x5d\xde\x5e\xde\x5f\xde\x60\xde\x61\xde\x62\xde\x63\xde\x64\xde\x65\xde\x66\xde\x67\xde\x68\xde\x69\xde\x6a\xde\x6b\xde\x6c\xde\x6d\xde\x6e\xde\x6f\xde\x70\xde\x71\xde\x72\xde\x73\xde\x74\xde\x75\xde\x76\xde\x77\xde\x78\xde\x79\xde\x7a\xde\x7b\xde\x7c\xde\x7d\xde\x7e\xde\x7f\xde\x81\xde\x82\xde\x83\xde\x84\xde\x85\xde\x86\xde\x87\xde\x88\xde\x89\xde\x8a\xde\x8b\xde\x8c\xde\x8d\xde\x8e\xde\x8f\xde\x90\xde\x91\xde\x92\xde\x93\xde\x94\xde\x95\xde\x96\xde\x97\xde\x98\xde\x99\xde\x9a\xde\x9b\xde\x9c\xde\x9d\xde\x9e\xde\x9f\xde\xa0\xde\xa1\xde\xa2\xde\xa3\xde\xa4\xde\xa5\xde\xa6\xde\xa7\xde\xa8\xde\xa9\xde\xaa\xde\xab\xde\xac\xde\xad\xde\xae\xde\xaf\xde\xb0\xde\xb1", /* f500 */ "\xde\xb2\xde\xb3\xde\xb4\xde\xb5\xde\xb6\xde\xb7\xde\xb8\xde\xb9\xde\xba\xde\xbb\xde\xbc\xde\xbd\xde\xbe\xde\xbf\xde\xc0\xde\xc1\xde\xc2\xde\xc3\xde\xc4\xde\xc5\xde\xc6\xde\xc7\xde\xc8\xde\xc9\xde\xca\xde\xcb\xde\xcc\xde\xcd\xde\xce\xde\xcf\xde\xd0\xde\xd1\xde\xd2\xde\xd3\xde\xd4\xde\xd5\xde\xd6\xde\xd7\xde\xd8\xde\xd9\xde\xda\xde\xdb\xde\xdc\xde\xdd\xde\xde\xde\xdf\xde\xe0\xde\xe1\xde\xe2\xde\xe3\xde\xe4\xde\xe5\xde\xe6\xde\xe7\xde\xe8\xde\xe9\xde\xea\xde\xeb\xde\xec\xde\xed\xde\xee\xde\xef\xde\xf0\xde\xf1\xde\xf2\xde\xf3\xde\xf4\xde\xf5\xde\xf6\xde\xf7\xde\xf8\xde\xf9\xde\xfa\xde\xfb\xde\xfc\xde\xfd\xdf\x41\xdf\x42\xdf\x43\xdf\x44\xdf\x45\xdf\x46\xdf\x47\xdf\x48\xdf\x49\xdf\x4a\xdf\x4b\xdf\x4c\xdf\x4d\xdf\x4e\xdf\x4f\xdf\x50\xdf\x51\xdf\x52\xdf\x53\xdf\x54\xdf\x55\xdf\x56\xdf\x57\xdf\x58\xdf\x59\xdf\x5a\xdf\x5b\xdf\x5c\xdf\x5d\xdf\x5e\xdf\x5f\xdf\x60\xdf\x61\xdf\x62\xdf\x63\xdf\x64\xdf\x65\xdf\x66\xdf\x67\xdf\x68\xdf\x69\xdf\x6a\xdf\x6b\xdf\x6c\xdf\x6d\xdf\x6e\xdf\x6f\xdf\x70\xdf\x71\xdf\x72\xdf\x73\xdf\x74", /* f580 */ "\xdf\x75\xdf\x76\xdf\x77\xdf\x78\xdf\x79\xdf\x7a\xdf\x7b\xdf\x7c\xdf\x7d\xdf\x7e\xdf\x7f\xdf\x81\xdf\x82\xdf\x83\xdf\x84\xdf\x85\xdf\x86\xdf\x87\xdf\x88\xdf\x89\xdf\x8a\xdf\x8b\xdf\x8c\xdf\x8d\xdf\x8e\xdf\x8f\xdf\x90\xdf\x91\xdf\x92\xdf\x93\xdf\x94\xdf\x95\xdf\x96\xdf\x97\xdf\x98\xdf\x99\xdf\x9a\xdf\x9b\xdf\x9c\xdf\x9d\xdf\x9e\xdf\x9f\xdf\xa0\xdf\xa1\xdf\xa2\xdf\xa3\xdf\xa4\xdf\xa5\xdf\xa6\xdf\xa7\xdf\xa8\xdf\xa9\xdf\xaa\xdf\xab\xdf\xac\xdf\xad\xdf\xae\xdf\xaf\xdf\xb0\xdf\xb1\xdf\xb2\xdf\xb3\xdf\xb4\xdf\xb5\xdf\xb6\xdf\xb7\xdf\xb8\xdf\xb9\xdf\xba\xdf\xbb\xdf\xbc\xdf\xbd\xdf\xbe\xdf\xbf\xdf\xc0\xdf\xc1\xdf\xc2\xdf\xc3\xdf\xc4\xdf\xc5\xdf\xc6\xdf\xc7\xdf\xc8\xdf\xc9\xdf\xca\xdf\xcb\xdf\xcc\xdf\xcd\xdf\xce\xdf\xcf\xdf\xd0\xdf\xd1\xdf\xd2\xdf\xd3\xdf\xd4\xdf\xd5\xdf\xd6\xdf\xd7\xdf\xd8\xdf\xd9\xdf\xda\xdf\xdb\xdf\xdc\xdf\xdd\xdf\xde\xdf\xdf\xdf\xe0\xdf\xe1\xdf\xe2\xdf\xe3\xdf\xe4\xdf\xe5\xdf\xe6\xdf\xe7\xdf\xe8\xdf\xe9\xdf\xea\xdf\xeb\xdf\xec\xdf\xed\xdf\xee\xdf\xef\xdf\xf0\xdf\xf1\xdf\xf2\xdf\xf3\xdf\xf4\xdf\xf5", /* f600 */ "\xdf\xf6\xdf\xf7\xdf\xf8\xdf\xf9\xdf\xfa\xdf\xfb\xdf\xfc\xdf\xfd\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9", /* f680 */ "\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc\xe0\xfd\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c", /* f700 */ "\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd", /* f780 */ "\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1", /* f800 */ "\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\x00\x00\x00\x00\x44\x5c\x46\xa8\x46\xa9\x46\xaa\x46\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4b\x7a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x41\x46\xa7\x47\x49\x46\xb6\x46\xbc\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xa4\x46\xa5\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xa0\x46\xa1\x46\xa2\x46\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x46\xbe\x46\xbf\x46\xc2\x46\xc3\x46\xc0\x46\xc1\x46\xbd\x47\x42\x47\x43\x47\x44\x00\x00\x47\x45\x47\x46\x47\x47\x47\x48\x47\x4a\x47\x4b\x47\x4c\x47\x4d\x47\x4e\x47\x4f\x47\x50\x47\x53\x47\x54\x46\xc4\x47\x55\x47\x56\x47\x57\x47\x58\x47\x59\x00\x00\x47\x5a\x47\x5b\x47\x5c\x47\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x46\xb8\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x00\x00\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x47\x51\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-937_P110-1999 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\x27\x3d\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x35\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x3e\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x20\x27\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x23\x12\x22\x02\x22\x07\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\x00\x00\x00\x00\x22\x6a\x22\x6b\x00\x00\x22\x3d\x22\x1d\x00\x00\x22\x2c\x22\x08\x22\x0b\x22\x86\x22\x87\x22\x82\x22\x83\x00\x00\x00\x00\x22\x27\x22\x28\x21\xd2\x21\xd4\x22\x00\x22\x03\x21\x2b\x20\x30\x26\x6f\x26\x6d\x26\x6a\x20\x20\x20\x21\x00\xb6\x25\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x01\x25\x03\x25\x0f\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x25\x13\x25\x1b\x25\x17\x25\x23\x25\x33\x25\x2b\x25\x3b\x25\x4b\x25\x20\x25\x2f\x25\x28\x25\x37\x25\x3f\x25\x1d\x25\x30\x25\x25\x25\x38\x25\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x14\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x20\x32\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x02\xba\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x66\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x67\x22\x35\x26\x40\x00\xd7\x00\xf7\x22\x25\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x00\xb4\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x21\x30\x22\x30\x23\x30\x24\x30\x25\x30\x26\x30\x27\x30\x28\x30\x29\x53\x41\x53\x44\x53\x45\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xca\x02\xc7\x02\xcb\x02\xd9\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ NULL, /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x81\x25\x82\x25\x83\x25\x84\x25\x85\x25\x86\x25\x87\x25\x88\x25\x8f\x25\x8e\x25\x8d\x25\x8c\x25\x8b\x25\x8a\x25\x89\x25\x3c\x25\x34\x25\x2c\x25\x24\x25\x1c\x25\x94\x25\x00\x25\x02\x25\x95\x25\x0c\x25\x10\x25\x14\x25\x18\x25\x6d\x25\x6e\x25\x70\x25\x6f", /* 4680 */ "\x00\x00\x25\x50\x25\x5e\x25\x6a\x25\x61\x25\xe2\x25\xe3\x25\xe5\x25\xe4\x25\x71\x25\x72\x25\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x41\xfe\x42\xfe\x43\xfe\x44\xfe\x3b\xfe\x3c\x00\x00\xfe\x31\xf8\x3f\xf8\x40\xf8\x41\xf8\x42\xfe\x35\xfe\x36\xfe\x37\xfe\x38\xfe\x39\xfe\x3a\xfe\x3d\xfe\x3e\xfe\x3f\xfe\x40\xfe\x33\x25\x74\xff\x0a\x30\x03\x32\xa3\x21\x05\xfe\x34\xfe\x4f\xfe\x49\xfe\x4a\xfe\x4d\xfe\x4e\xfe\x4b\xfe\x4c\xfe\x61\x22\x1a\x22\x52\x22\x61\x22\x29\x22\x2a\x22\xa5\x22\x20\x22\x1f\x22\xbf\x33\xd2\x33\xd1\x22\x2b\x22\x2e\x22\x95\x22\x99\x21\x96\x21\x97\x21\x99\x21\x98\x00\x00\x00\x00\x22\x15\x21\x09\x33\xd5\x33\x9c\x33\x9d\x33\x9e\x33\xce\x33\xa1\x33\x8e\x33\x8f\x33\xc4\x00\xb7\x00\x00\x00\x00\x00\x00\x30\x1d\x30\x1e\x00\x00\x00\x00\x00\x00\x21\xe7\x21\xb8\x21\xb9\x51\x59\x51\x5b\x51\x5e\x51\x5d\x51\x61\x51\x63\x55\xe7\x74\xe9\x7c\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x30\xfe\x50\xfe\x51\xfe\x52\xfe\x54\xfe\x55\xfe\x56\xfe\x57\xfe\x32\xfe\x58\xfe\x59\xfe\x5a\xfe\x5b\xfe\x5c\xfe\x5d\xfe\x5e\xff\xe3\x02\xcd\xfe\x5f\xfe\x60\xfe\x62\xfe\x63\xfe\x64\xfe\x65\xfe\x66\xfe\x68\xfe\x69\xfe\x6a\xfe\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4780 */ "\x00\x00\x24\x00\x24\x01\x24\x02\x24\x03\x24\x04\x24\x05\x24\x06\x24\x07\x24\x08\x24\x09\x24\x0a\x24\x0b\x24\x0c\x24\x0d\x24\x0e\x24\x0f\x24\x10\x24\x11\x24\x12\x24\x13\x24\x14\x24\x15\x24\x16\x24\x17\x24\x18\x24\x19\x24\x1a\x24\x1b\x24\x1c\x24\x1d\x24\x1e\x24\x1f\x24\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x28\x4e\x36\x4e\x3f\x4e\x59\x4e\x85\x4e\x8c\x4e\xa0\x4e\xba\x51\x3f\x51\x65\x51\x6b\x51\x82\x51\x96\x51\xab\x51\xe0\x51\xf5\x52\x00\x52\x9b\x52\xf9\x53\x15\x53\x1a\x53\x38\x53\x41\x53\x5c\x53\x69\x53\x82\x53\xb6\x53\xc8\x53\xe3\x56\xd7\x57\x1f\x58\xeb\x59\x0a\x59\x15\x59\x27\x59\x73\x5b\x50\x5b\x80\x5b\xf8\x5c\x0f\x5c\x22\x5c\x38\x5c\x6e\x5c\x71\x5d\xdb\x5d\xe5\x5d\xf1\x5d\xfe\x5e\x72\x5e\x7a\x5e\x7f\x5e\xf4\x5e\xfe\x5f\x0b\x5f\x13\x5f\x50\x5f\x61\x5f\x73\x5f\xc3\x62\x08\x62\x36\x62\x4b", /* 4880 */ "\x00\x00\x65\x2f\x65\x34\x65\x87\x65\x97\x65\xa4\x65\xb9\x65\xe0\x65\xe5\x66\xf0\x67\x08\x67\x28\x6b\x20\x6b\x62\x6b\x79\x6b\xb3\x6b\xcb\x6b\xd4\x6b\xdb\x6c\x0f\x6c\x14\x6c\x34\x70\x6b\x72\x2a\x72\x36\x72\x3b\x72\x3f\x72\x47\x72\x59\x72\x5b\x72\xac\x73\x84\x73\x89\x74\xdc\x74\xe6\x75\x18\x75\x1f\x75\x28\x75\x30\x75\x8b\x75\x92\x76\x76\x76\x7d\x76\xae\x76\xbf\x76\xee\x77\xdb\x77\xe2\x77\xf3\x79\x3a\x79\xb8\x79\xbe\x7a\x74\x7a\xcb\x7a\xf9\x7c\x73\x7c\xf8\x7f\x36\x7f\x51\x7f\x8a\x7f\xbd\x80\x01\x80\x0c\x80\x12\x80\x33\x80\x7f\x80\x89\x81\xe3\x81\xea\x81\xf3\x81\xfc\x82\x0c\x82\x1b\x82\x1f\x82\x6e\x82\x72\x82\x78\x86\x4d\x86\x6b\x88\x40\x88\x4c\x88\x63\x89\x7e\x89\x8b\x89\xd2\x8a\x00\x8c\x37\x8c\x46\x8c\x55\x8c\x78\x8c\x9d\x8d\x64\x8d\x70\x8d\xb3\x8e\xab\x8e\xca\x8f\x9b\x8f\xb0\x8f\xb5\x90\x91\x91\x49\x91\xc6\x91\xcc\x91\xd1\x95\x77\x95\x80\x96\x1c\x96\xb6\x96\xb9\x96\xe8\x97\x52\x97\x5e\x97\x62\x97\x69\x97\xcb\x97\xed\x97\xf3\x98\x01\x98\xa8\x98\xdb\x98\xdf\x99\x96\x99\x99\x99\xac\x9a\xa8\x9a\xd8\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xdf\x9b\x25\x9b\x2f\x9b\x32\x9b\x3c\x9b\x5a\x9c\xe5\x9e\x75\x9e\x7f\x9e\xa5\x9e\xbb\x9e\xc3\x9e\xcd\x9e\xd1\x9e\xf9\x9e\xfd\x9f\x0e\x9f\x13\x9f\x20\x9f\x3b\x9f\x4a\x9f\x52\x9f\x8d\x9f\x9c\x9f\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x59\x4e\x01\x4e\x03\x4e\x43\x4e\x5d\x4e\x86\x4e\x8c\x4e\xba\x51\x3f\x51\x65\x51\x6b\x51\xe0\x52\x00\x52\x01\x52\x9b\x53\x15\x53\x41\x53\x5c\x53\xc8\x4e\x09\x4e\x0b\x4e\x08\x4e\x0a\x4e\x2b\x4e\x38\x51\xe1\x4e\x45\x4e\x48\x4e\x5f\x4e\x5e\x4e\x8e\x4e\xa1\x51\x40\x52\x03\x52\xfa\x53\x43\x53\xc9\x53\xe3\x57\x1f\x58\xeb\x59\x15\x59\x27\x59\x73\x5b\x50\x5b\x51\x5b\x53\x5b\xf8\x5c\x0f\x5c\x22\x5c\x38\x5c\x71\x5d\xdd\x5d\xe5\x5d\xf1\x5d\xf2\x5d\xf3\x5d\xfe\x5e\x72\x5e\xfe\x5f\x0b\x5f\x13\x62\x4d", /* 4c80 */ "\x00\x00\x4e\x11\x4e\x10\x4e\x0d\x4e\x2d\x4e\x30\x4e\x39\x4e\x4b\x5c\x39\x4e\x88\x4e\x91\x4e\x95\x4e\x92\x4e\x94\x4e\xa2\x4e\xc1\x4e\xc0\x4e\xc3\x4e\xc6\x4e\xc7\x4e\xcd\x4e\xca\x4e\xcb\x4e\xc4\x51\x43\x51\x41\x51\x67\x51\x6d\x51\x6e\x51\x6c\x51\x97\x51\xf6\x52\x06\x52\x07\x52\x08\x52\xfb\x52\xfe\x52\xff\x53\x16\x53\x39\x53\x48\x53\x47\x53\x45\x53\x5e\x53\x84\x53\xcb\x53\xca\x53\xcd\x58\xec\x59\x29\x59\x2b\x59\x2a\x59\x2d\x5b\x54\x5c\x11\x5c\x24\x5c\x3a\x5c\x6f\x5d\xf4\x5e\x7b\x5e\xff\x5f\x14\x5f\x15\x5f\xc3\x62\x08\x62\x36\x62\x4b\x62\x4e\x65\x2f\x65\x87\x65\x97\x65\xa4\x65\xb9\x65\xe5\x66\xf0\x67\x08\x67\x28\x6b\x20\x6b\x62\x6b\x79\x6b\xcb\x6b\xd4\x6b\xdb\x6c\x0f\x6c\x34\x70\x6b\x72\x2a\x72\x36\x72\x3b\x72\x47\x72\x59\x72\x5b\x72\xac\x73\x8b\x4e\x19\x4e\x16\x4e\x15\x4e\x14\x4e\x18\x4e\x3b\x4e\x4d\x4e\x4f\x4e\x4e\x4e\xe5\x4e\xd8\x4e\xd4\x4e\xd5\x4e\xd6\x4e\xd7\x4e\xe3\x4e\xe4\x4e\xd9\x4e\xde\x51\x45\x51\x44\x51\x89\x51\x8a\x51\xac\x51\xf9\x51\xfa\x51\xf8\x52\x0a\x52\xa0\x52\x9f\x53\x05\x53\x06\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x17\x53\x1d\x4e\xdf\x53\x4a\x53\x49\x53\x61\x53\x60\x53\x6f\x53\x6e\x53\xbb\x53\xef\x53\xe4\x53\xf3\x53\xec\x53\xee\x53\xe9\x53\xe8\x53\xfc\x53\xf8\x53\xf5\x53\xeb\x53\xe6\x53\xea\x53\xf2\x53\xf1\x53\xf0\x53\xe5\x53\xed\x53\xfb\x56\xdb\x56\xda\x59\x16\x59\x2e\x59\x31\x59\x74\x59\x76\x5b\x55\x5b\x83\x5c\x3c\x5d\xe8\x5d\xe7\x5d\xe6\x5e\x02\x5e\x03\x5e\x73\x5e\x7c\x5f\x01\x5f\x18\x5f\x17\x5f\xc5\x62\x0a\x62\x53\x62\x54\x62\x52\x62\x51\x65\xa5\x65\xe6\x67\x2e\x67\x2c\x67\x2a\x67\x2b\x67\x2d\x6b\x63", /* 4d80 */ "\x00\x00\x6b\xcd\x6c\x11\x6c\x10\x6c\x38\x6c\x41\x6c\x40\x6c\x3e\x72\xaf\x73\x84\x73\x89\x74\xdc\x74\xe6\x75\x18\x75\x1f\x75\x28\x75\x29\x75\x30\x75\x31\x75\x32\x75\x33\x75\x8b\x76\x7d\x76\xae\x76\xbf\x76\xee\x77\xdb\x77\xe2\x77\xf3\x79\x3a\x79\xbe\x7a\x74\x7a\xcb\x4e\x1e\x4e\x1f\x4e\x52\x4e\x53\x4e\x69\x4e\x99\x4e\xa4\x4e\xa6\x4e\xa5\x4e\xff\x4f\x09\x4f\x19\x4f\x0a\x4f\x15\x4f\x0d\x4f\x10\x4f\x11\x4f\x0f\x4e\xf2\x4e\xf6\x4e\xfb\x4e\xf0\x4e\xf3\x4e\xfd\x4f\x01\x4f\x0b\x51\x49\x51\x47\x51\x46\x51\x48\x51\x68\x51\x71\x51\x8d\x51\xb0\x52\x17\x52\x11\x52\x12\x52\x0e\x52\x16\x52\xa3\x53\x08\x53\x21\x53\x20\x53\x70\x53\x71\x54\x09\x54\x0f\x54\x0c\x54\x0a\x54\x10\x54\x01\x54\x0b\x54\x04\x54\x11\x54\x0d\x54\x08\x54\x03\x54\x0e\x54\x06\x54\x12\x56\xe0\x56\xde\x56\xdd\x57\x33\x57\x30\x57\x28\x57\x2d\x57\x2c\x57\x2f\x57\x29\x59\x19\x59\x1a\x59\x37\x59\x38\x59\x84\x59\x78\x59\x83\x59\x7d\x59\x79\x59\x82\x59\x81\x5b\x57\x5b\x58\x5b\x87\x5b\x88\x5b\x85\x5b\x89\x5b\xfa\x5c\x16\x5c\x79\x5d\xde\x5e\x06\x5e\x76\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x74\x5f\x0f\x5f\x1b\x5f\xd9\x5f\xd6\x62\x0e\x62\x0c\x62\x0d\x62\x10\x62\x63\x62\x5b\x62\x58\x65\x36\x65\xe9\x65\xe8\x65\xec\x65\xed\x66\xf2\x66\xf3\x67\x09\x67\x3d\x67\x34\x67\x31\x67\x35\x6b\x21\x6b\x64\x6b\x7b\x6c\x16\x6c\x5d\x6c\x57\x6c\x59\x6c\x5f\x6c\x60\x6c\x50\x6c\x55\x6c\x61\x6c\x5b\x6c\x4d\x6c\x4e\x70\x70\x72\x5f\x72\x5d\x76\x7e\x7a\xf9\x7c\x73\x7c\xf8\x7f\x36\x7f\x8a\x7f\xbd\x80\x01\x80\x03\x80\x0c\x80\x12\x80\x33\x80\x7f\x80\x89\x80\x8b\x80\x8c\x81\xe3\x81\xea\x81\xf3\x81\xfc\x82\x0c", /* 4e80 */ "\x00\x00\x82\x1b\x82\x1f\x82\x6e\x82\x72\x82\x7e\x86\x6b\x88\x40\x88\x4c\x88\x63\x89\x7f\x96\x21\x4e\x32\x4e\xa8\x4f\x4d\x4f\x4f\x4f\x47\x4f\x57\x4f\x5e\x4f\x34\x4f\x5b\x4f\x55\x4f\x30\x4f\x50\x4f\x51\x4f\x3d\x4f\x3a\x4f\x38\x4f\x43\x4f\x54\x4f\x3c\x4f\x46\x4f\x63\x4f\x5c\x4f\x60\x4f\x2f\x4f\x4e\x4f\x36\x4f\x59\x4f\x5d\x4f\x48\x4f\x5a\x51\x4c\x51\x4b\x51\x4d\x51\x75\x51\xb6\x51\xb7\x52\x25\x52\x24\x52\x29\x52\x2a\x52\x28\x52\xab\x52\xa9\x52\xaa\x52\xac\x53\x23\x53\x73\x53\x75\x54\x1d\x54\x2d\x54\x1e\x54\x3e\x54\x26\x54\x4e\x54\x27\x54\x46\x54\x43\x54\x33\x54\x48\x54\x42\x54\x1b\x54\x29\x54\x4a\x54\x39\x54\x3b\x54\x38\x54\x2e\x54\x35\x54\x36\x54\x20\x54\x3c\x54\x40\x54\x31\x54\x2b\x54\x1f\x54\x2c\x56\xea\x56\xf0\x56\xe4\x56\xeb\x57\x4a\x57\x51\x57\x40\x57\x4d\x57\x47\x57\x4e\x57\x3e\x57\x50\x57\x4f\x57\x3b\x58\xef\x59\x3e\x59\x9d\x59\x92\x59\xa8\x59\x9e\x59\xa3\x59\x99\x59\x96\x59\x8d\x59\xa4\x59\x93\x59\x8a\x59\xa5\x5b\x5d\x5b\x5c\x5b\x5a\x5b\x5b\x5b\x8c\x5b\x8b\x5b\x8f\x5c\x2c\x5c\x40\x5c\x41\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x3f\x5c\x3e\x5c\x90\x5c\x91\x5c\x94\x5c\x8c\x5d\xeb\x5e\x0c\x5e\x8f\x5e\x87\x5e\x8a\x5e\xf7\x5f\x04\x5f\x1f\x5f\x64\x5f\x62\x5f\x77\x5f\x79\x5f\xd8\x5f\xcc\x5f\xd7\x5f\xcd\x5f\xf1\x5f\xeb\x5f\xf8\x5f\xea\x62\x12\x62\x11\x62\x84\x62\x97\x62\x96\x62\x80\x62\x76\x62\x89\x62\x6d\x62\x8a\x62\x7c\x62\x7e\x62\x79\x62\x73\x62\x92\x62\x6f\x62\x98\x62\x6e\x62\x95\x62\x93\x62\x91\x62\x86\x65\x39\x65\x3b\x65\x38\x65\xf1\x66\xf4\x67\x5f\x67\x4e\x67\x4f\x67\x50\x67\x51\x67\x5c\x67\x56\x67\x5e\x67\x49\x67\x46", /* 4f80 */ "\x00\x00\x67\x60\x67\x53\x67\x57\x6b\x65\x6b\xcf\x6c\x42\x6c\x5e\x6c\x99\x6c\x81\x6c\x88\x6c\x89\x6c\x85\x6c\x9b\x6c\x6a\x6c\x7a\x6c\x90\x6c\x70\x6c\x8c\x6c\x68\x6c\x96\x6c\x92\x6c\x7d\x6c\x83\x6c\x72\x6c\x7e\x6c\x74\x6c\x86\x6c\x76\x6c\x8d\x6c\x94\x6c\x98\x6c\x82\x70\x76\x70\x7c\x70\x7d\x70\x78\x72\x62\x72\x61\x72\x60\x72\xc4\x72\xc2\x73\x96\x75\x2c\x75\x2b\x75\x37\x75\x38\x76\x82\x76\xef\x77\xe3\x79\xc1\x79\xc0\x79\xbf\x7a\x76\x7c\xfb\x7f\x55\x80\x96\x80\x93\x80\x9d\x80\x98\x80\x9b\x80\x9a\x80\xb2\x82\x6f\x82\x92\x82\x8b\x82\x8d\x89\x8b\x89\xd2\x8a\x00\x8c\x37\x8c\x46\x8c\x55\x8c\x9d\x8d\x64\x8d\x70\x8d\xb3\x8e\xab\x8e\xca\x8f\x9b\x8f\xb0\x8f\xc2\x8f\xc6\x8f\xc5\x8f\xc4\x5d\xe1\x90\x91\x90\xa2\x90\xaa\x90\xa6\x90\xa3\x91\x49\x91\xc6\x91\xcc\x96\x32\x96\x2e\x96\x31\x96\x2a\x96\x2c\x4e\x26\x4e\x56\x4e\x73\x4e\x8b\x4e\x9b\x4e\x9e\x4e\xab\x4e\xac\x4f\x6f\x4f\x9d\x4f\x8d\x4f\x73\x4f\x7f\x4f\x6c\x4f\x9b\x4f\x8b\x4f\x86\x4f\x83\x4f\x70\x4f\x75\x4f\x88\x4f\x69\x4f\x7b\x4f\x96\x4f\x7e\x4f\x8f\x4f\x91\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7a\x51\x54\x51\x52\x51\x55\x51\x69\x51\x77\x51\x76\x51\x78\x51\xbd\x51\xfd\x52\x3b\x52\x38\x52\x37\x52\x3a\x52\x30\x52\x2e\x52\x36\x52\x41\x52\xbe\x52\xbb\x53\x52\x53\x54\x53\x53\x53\x51\x53\x66\x53\x77\x53\x78\x53\x79\x53\xd6\x53\xd4\x53\xd7\x54\x73\x54\x75\x54\x96\x54\x78\x54\x95\x54\x80\x54\x7b\x54\x77\x54\x84\x54\x92\x54\x86\x54\x7c\x54\x90\x54\x71\x54\x76\x54\x8c\x54\x9a\x54\x62\x54\x68\x54\x8b\x54\x7d\x54\x8e\x56\xfa\x57\x83\x57\x77\x57\x6a\x57\x69\x57\x61\x57\x66\x57\x64\x57\x7c\x59\x1c", /* 5080 */ "\x00\x00\x59\x49\x59\x47\x59\x48\x59\x44\x59\x54\x59\xbe\x59\xbb\x59\xd4\x59\xb9\x59\xae\x59\xd1\x59\xc6\x59\xd0\x59\xcd\x59\xcb\x59\xd3\x59\xca\x59\xaf\x59\xb3\x59\xd2\x59\xc5\x5b\x5f\x5b\x64\x5b\x63\x5b\x97\x5b\x9a\x5b\x98\x5b\x9c\x5b\x99\x5b\x9b\x5c\x1a\x5c\x48\x5c\x45\x5c\x46\x5c\xb7\x5c\xa1\x5c\xb8\x5c\xa9\x5c\xab\x5c\xb1\x5c\xb3\x5e\x18\x5e\x1a\x5e\x16\x5e\x15\x5e\x1b\x5e\x11\x5e\x78\x5e\x9a\x5e\x97\x5e\x9c\x5e\x95\x5e\x96\x5e\xf6\x5f\x26\x5f\x27\x5f\x29\x5f\x80\x5f\x81\x5f\x7f\x5f\x7c\x5f\xdd\x5f\xe0\x5f\xfd\x5f\xf5\x5f\xff\x60\x0f\x60\x14\x60\x2f\x60\x35\x60\x16\x60\x2a\x60\x15\x60\x21\x60\x27\x60\x29\x60\x2b\x60\x1b\x62\x16\x62\x15\x62\x3f\x62\x3e\x62\x40\x62\x7f\x62\xc9\x62\xcc\x62\xc4\x62\xbf\x62\xc2\x62\xb9\x62\xd2\x62\xdb\x62\xab\x62\xd3\x62\xd4\x62\xcb\x62\xc8\x62\xa8\x62\xbd\x62\xbc\x62\xd0\x62\xd9\x62\xc7\x62\xcd\x62\xb5\x62\xda\x62\xb1\x62\xd8\x62\xd6\x62\xd7\x62\xc6\x62\xac\x62\xce\x65\x3e\x65\xa7\x65\xbc\x65\xfa\x66\x14\x66\x13\x66\x0c\x66\x06\x66\x02\x66\x0e\x66\x00\x66\x0f\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x15\x66\x0a\x66\x07\x67\x0d\x67\x0b\x67\x6d\x67\x8b\x67\x95\x67\x71\x67\x9c\x67\x73\x67\x77\x67\x87\x67\x9d\x67\x97\x67\x6f\x67\x70\x67\x7f\x67\x89\x67\x7e\x67\x90\x67\x75\x67\x9a\x67\x93\x67\x7c\x67\x6a\x67\x72\x6b\x23\x6b\x66\x6b\x67\x6b\x7f\x6c\x13\x6c\x1b\x6c\xe3\x6c\xe8\x6c\xf3\x6c\xb1\x6c\xcc\x6c\xe5\x6c\xb3\x6c\xbd\x6c\xbe\x6c\xbc\x6c\xe2\x6c\xab\x6c\xd5\x6c\xd3\x6c\xb8\x6c\xc4\x6c\xb9\x6c\xc1\x6c\xae\x6c\xd7\x6c\xc5\x6c\xf1\x6c\xbf\x6c\xbb\x6c\xe1\x6c\xdb\x6c\xca\x6c\xac\x6c\xef\x6c\xdc", /* 5180 */ "\x00\x00\x6c\xd6\x6c\xe0\x70\x95\x70\x8e\x70\x92\x70\x8a\x70\x99\x72\x2c\x72\x2d\x72\x38\x72\x48\x72\x67\x72\x69\x72\xc0\x72\xce\x72\xd9\x72\xd7\x72\xd0\x73\xa9\x73\xa8\x73\x9f\x73\xab\x73\xa5\x75\x3d\x75\x9d\x75\x99\x75\x9a\x76\x84\x76\xc2\x76\xf2\x76\xf4\x77\xe5\x77\xfd\x79\x3e\x79\x40\x79\x41\x79\xc9\x79\xc8\x7a\x7a\x7a\x79\x7a\xfa\x7c\xfe\x7f\x54\x7f\x8c\x7f\x8b\x80\x05\x80\xba\x80\xa5\x80\xa2\x80\xb1\x80\xa1\x80\xab\x80\xa9\x80\xb4\x80\xaa\x80\xaf\x81\xe5\x81\xfe\x82\x0d\x82\xb3\x82\x9d\x82\x99\x82\xad\x82\xbd\x82\x9f\x82\xb9\x82\xb1\x82\xac\x82\xa5\x82\xaf\x82\xb8\x82\xa3\x82\xb0\x82\xbe\x82\xb7\x86\x4e\x86\x71\x52\x1d\x88\x68\x8e\xcb\x8f\xce\x8f\xd4\x8f\xd1\x90\xb5\x90\xb8\x90\xb1\x90\xb6\x91\xc7\x91\xd1\x95\x77\x95\x80\x96\x1c\x96\x40\x96\x3f\x96\x3b\x96\x44\x96\x42\x96\xb9\x96\xe8\x97\x52\x97\x5e\x4e\x9f\x4e\xad\x4e\xae\x4f\xe1\x4f\xb5\x4f\xaf\x4f\xbf\x4f\xe0\x4f\xd1\x4f\xcf\x4f\xdd\x4f\xc3\x4f\xb6\x4f\xd8\x4f\xdf\x4f\xca\x4f\xd7\x4f\xae\x4f\xd0\x4f\xc4\x4f\xc2\x4f\xda\x4f\xce\x4f\xde\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb7\x51\x57\x51\x92\x51\x91\x51\xa0\x52\x4e\x52\x43\x52\x4a\x52\x4d\x52\x4c\x52\x4b\x52\x47\x52\xc7\x52\xc9\x52\xc3\x52\xc1\x53\x0d\x53\x57\x53\x7b\x53\x9a\x53\xdb\x54\xac\x54\xc0\x54\xa8\x54\xce\x54\xc9\x54\xb8\x54\xa6\x54\xb3\x54\xc7\x54\xc2\x54\xbd\x54\xaa\x54\xc1\x54\xc4\x54\xc8\x54\xaf\x54\xab\x54\xb1\x54\xbb\x54\xa9\x54\xa7\x54\xbf\x56\xff\x57\x82\x57\x8b\x57\xa0\x57\xa3\x57\xa2\x57\xce\x57\xae\x57\x93\x59\x55\x59\x51\x59\x4f\x59\x4e\x59\x50\x59\xdc\x59\xd8\x59\xff\x59\xe3\x59\xe8\x5a\x03", /* 5280 */ "\x00\x00\x59\xe5\x59\xea\x59\xda\x59\xe6\x5a\x01\x59\xfb\x5b\x69\x5b\xa3\x5b\xa6\x5b\xa4\x5b\xa2\x5b\xa5\x5c\x01\x5c\x4e\x5c\x4f\x5c\x4d\x5c\x4b\x5c\xd9\x5c\xd2\x5d\xf7\x5e\x1d\x5e\x25\x5e\x1f\x5e\x7d\x5e\xa0\x5e\xa6\x5e\xfa\x5f\x08\x5f\x2d\x5f\x65\x5f\x88\x5f\x85\x5f\x8a\x5f\x8b\x5f\x87\x5f\x8c\x5f\x89\x60\x12\x60\x1d\x60\x20\x60\x25\x60\x0e\x60\x28\x60\x4d\x60\x70\x60\x68\x60\x62\x60\x46\x60\x43\x60\x6c\x60\x6b\x60\x6a\x60\x64\x62\x41\x62\xdc\x63\x16\x63\x09\x62\xfc\x62\xed\x63\x01\x62\xee\x62\xfd\x63\x07\x62\xf1\x62\xf7\x62\xef\x62\xec\x62\xfe\x62\xf4\x63\x11\x63\x02\x65\x3f\x65\x45\x65\xab\x65\xbd\x65\xe2\x66\x25\x66\x2d\x66\x20\x66\x27\x66\x2f\x66\x1f\x66\x28\x66\x31\x66\x24\x66\xf7\x67\xff\x67\xd3\x67\xf1\x67\xd4\x67\xd0\x67\xec\x67\xb6\x67\xaf\x67\xf5\x67\xe9\x67\xef\x67\xc4\x67\xd1\x67\xb4\x67\xda\x67\xe5\x67\xb8\x67\xcf\x67\xde\x67\xf3\x67\xb0\x67\xd9\x67\xe2\x67\xdd\x67\xd2\x6b\x6a\x6b\x83\x6b\x86\x6b\xb5\x6b\xd2\x6b\xd7\x6c\x1f\x6c\xc9\x6d\x0b\x6d\x32\x6d\x2a\x6d\x41\x6d\x25\x6d\x0c\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x31\x6d\x1e\x6d\x17\x6d\x3b\x6d\x3d\x6d\x3e\x6d\x36\x6d\x1b\x6c\xf5\x6d\x39\x6d\x27\x6d\x38\x6d\x29\x6d\x2e\x6d\x35\x6d\x0e\x6d\x2b\x70\xab\x70\xba\x70\xb3\x70\xac\x70\xaf\x70\xad\x70\xb8\x70\xae\x70\xa4\x72\x30\x72\x72\x72\x6f\x72\x74\x72\xe9\x72\xe0\x72\xe1\x73\xb7\x73\xca\x73\xbb\x73\xb2\x73\xcd\x73\xc0\x73\xb3\x75\x1a\x75\x2d\x75\x4f\x75\x4c\x75\x4e\x75\x4b\x75\xab\x75\xa4\x75\xa5\x75\xa2\x75\xa3\x76\x78\x76\x86\x76\x87\x76\x88\x76\xc8\x76\xc6\x76\xc3\x76\xc5\x77\x01\x76\xf9\x76\xf8\x77\x09", /* 5380 */ "\x00\x00\x77\x0b\x76\xfe\x76\xfc\x77\x07\x77\xdc\x78\x02\x78\x14\x78\x0c\x78\x0d\x79\x46\x79\x49\x79\x48\x79\x47\x79\xb9\x79\xba\x79\xd1\x79\xd2\x79\xcb\x7a\x7f\x7a\x81\x7a\xff\x7a\xfd\x7c\x7d\x7d\x02\x7d\x05\x7d\x00\x7d\x09\x7d\x07\x7d\x04\x7d\x06\x7f\x38\x7f\x8e\x7f\xbf\x80\x04\x80\x10\x80\x0d\x80\x11\x80\x36\x80\xd6\x80\xe5\x80\xda\x80\xc3\x80\xc4\x80\xcc\x80\xe1\x80\xdb\x80\xce\x80\xde\x80\xe4\x80\xdd\x81\xf4\x82\x22\x82\xe7\x83\x03\x83\x05\x82\xe3\x82\xdb\x82\xe6\x83\x04\x82\xe5\x83\x02\x83\x09\x82\xd2\x82\xd7\x82\xf1\x83\x01\x82\xdc\x82\xd4\x82\xd1\x82\xde\x82\xd3\x82\xdf\x82\xef\x83\x06\x86\x50\x86\x79\x86\x7b\x86\x7a\x88\x4d\x88\x6b\x89\x81\x89\xd4\x8a\x08\x8a\x02\x8a\x03\x8c\x9e\x8c\xa0\x8d\x74\x8d\x73\x8d\xb4\x8e\xcd\x8e\xcc\x8f\xf0\x8f\xe6\x8f\xe2\x8f\xea\x8f\xe5\x8f\xed\x8f\xeb\x8f\xe4\x8f\xe8\x90\xca\x90\xce\x90\xc1\x90\xc3\x91\x4b\x91\x4a\x91\xcd\x95\x82\x96\x50\x96\x4b\x96\x4c\x96\x4d\x97\x62\x97\x69\x97\xcb\x97\xed\x97\xf3\x98\x01\x98\xa8\x98\xdb\x98\xdf\x99\x96\x99\x99\x4e\x58\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb3\x50\x0c\x50\x0d\x50\x23\x4f\xef\x50\x26\x50\x25\x4f\xf8\x50\x29\x50\x16\x50\x06\x50\x3c\x50\x1f\x50\x1a\x50\x12\x50\x11\x4f\xfa\x50\x00\x50\x14\x50\x28\x4f\xf1\x50\x21\x50\x0b\x50\x19\x50\x18\x4f\xf3\x4f\xee\x50\x2d\x50\x2a\x4f\xfe\x50\x2b\x50\x09\x51\x7c\x51\xa4\x51\xa5\x51\xa2\x51\xcd\x51\xcc\x51\xc6\x51\xcb\x52\x56\x52\x5c\x52\x54\x52\x5b\x52\x5d\x53\x2a\x53\x7f\x53\x9f\x53\x9d\x53\xdf\x54\xe8\x55\x10\x55\x01\x55\x37\x54\xfc\x54\xe5\x54\xf2\x55\x06\x54\xfa\x55\x14\x54\xe9\x54\xed\x54\xe1", /* 5480 */ "\x00\x00\x55\x09\x54\xee\x54\xea\x54\xe6\x55\x27\x55\x07\x54\xfd\x55\x0f\x57\x03\x57\x04\x57\xc2\x57\xd4\x57\xcb\x57\xc3\x58\x09\x59\x0f\x59\x57\x59\x58\x59\x5a\x5a\x11\x5a\x18\x5a\x1c\x5a\x1f\x5a\x1b\x5a\x13\x59\xec\x5a\x20\x5a\x23\x5a\x29\x5a\x25\x5a\x0c\x5a\x09\x5b\x6b\x5c\x58\x5b\xb0\x5b\xb3\x5b\xb6\x5b\xb4\x5b\xae\x5b\xb5\x5b\xb9\x5b\xb8\x5c\x04\x5c\x51\x5c\x55\x5c\x50\x5c\xed\x5c\xfd\x5c\xfb\x5c\xea\x5c\xe8\x5c\xf0\x5c\xf6\x5d\x01\x5c\xf4\x5d\xee\x5e\x2d\x5e\x2b\x5e\xab\x5e\xad\x5e\xa7\x5f\x31\x5f\x92\x5f\x91\x5f\x90\x60\x59\x60\x63\x60\x65\x60\x50\x60\x55\x60\x6d\x60\x69\x60\x6f\x60\x84\x60\x9f\x60\x9a\x60\x8d\x60\x94\x60\x8c\x60\x85\x60\x96\x62\x47\x62\xf3\x63\x08\x62\xff\x63\x4e\x63\x3e\x63\x2f\x63\x55\x63\x42\x63\x46\x63\x4f\x63\x49\x63\x3a\x63\x50\x63\x3d\x63\x2a\x63\x2b\x63\x28\x63\x4d\x63\x4c\x65\x48\x65\x49\x65\x99\x65\xc1\x65\xc5\x66\x42\x66\x49\x66\x4f\x66\x43\x66\x52\x66\x4c\x66\x45\x66\x41\x66\xf8\x67\x14\x67\x15\x67\x17\x68\x21\x68\x38\x68\x48\x68\x46\x68\x53\x68\x39\x68\x42\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x54\x68\x29\x68\xb3\x68\x17\x68\x4c\x68\x51\x68\x3d\x67\xf4\x68\x50\x68\x40\x68\x3c\x68\x43\x68\x2a\x68\x45\x68\x13\x68\x18\x68\x41\x6b\x8a\x6b\x89\x6b\xb7\x6c\x23\x6c\x27\x6c\x28\x6c\x26\x6c\x24\x6c\xf0\x6d\x6a\x6d\x95\x6d\x88\x6d\x87\x6d\x66\x6d\x78\x6d\x77\x6d\x59\x6d\x93\x6d\x6c\x6d\x89\x6d\x6e\x6d\x5a\x6d\x74\x6d\x69\x6d\x8c\x6d\x8a\x6d\x79\x6d\x85\x6d\x65\x6d\x94\x70\xca\x70\xd8\x70\xe4\x70\xd9\x70\xc8\x70\xcf\x72\x39\x72\x79\x72\xfc\x72\xf9\x72\xfd\x72\xf8\x72\xf7\x73\x86\x73\xed\x74\x09", /* 5580 */ "\x00\x00\x73\xee\x73\xe0\x73\xea\x73\xde\x75\x54\x75\x5d\x75\x5c\x75\x5a\x75\x59\x75\xbe\x75\xc5\x75\xc7\x75\xb2\x75\xb3\x75\xbd\x75\xbc\x75\xb9\x75\xc2\x75\xb8\x76\x8b\x76\xb0\x76\xca\x76\xcd\x76\xce\x77\x29\x77\x1f\x77\x20\x77\x28\x77\xe9\x78\x30\x78\x27\x78\x38\x78\x1d\x78\x34\x78\x37\x78\x25\x78\x2d\x78\x20\x78\x1f\x78\x32\x79\x55\x79\x50\x79\x60\x79\x5f\x79\x56\x79\x5e\x79\x5d\x79\x57\x79\x5a\x79\xe4\x79\xe3\x79\xe7\x79\xdf\x79\xe6\x79\xe9\x79\xd8\x7a\x84\x7a\x88\x7a\xd9\x7b\x06\x7b\x11\x7c\x89\x7d\x21\x7d\x17\x7d\x0b\x7d\x0a\x7d\x20\x7d\x22\x7d\x14\x7d\x10\x7d\x15\x7d\x1a\x7d\x1c\x7d\x0d\x7d\x19\x7d\x1b\x7f\x3a\x7f\x5f\x7f\x94\x7f\xc5\x7f\xc1\x80\x06\x80\x18\x80\x15\x80\x19\x80\x17\x80\x3d\x80\x3f\x80\xf1\x81\x02\x80\xf0\x81\x05\x80\xed\x80\xf4\x81\x06\x80\xf8\x80\xf3\x81\x08\x80\xfd\x81\x0a\x80\xfc\x80\xef\x81\xed\x81\xec\x82\x00\x82\x10\x82\x2a\x82\x2b\x82\x28\x82\x2c\x82\xbb\x83\x2b\x83\x52\x83\x54\x83\x4a\x83\x38\x83\x50\x83\x49\x83\x35\x83\x34\x83\x4f\x83\x32\x83\x39\x83\x36\x83\x17\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x40\x83\x31\x83\x28\x83\x43\x86\x54\x86\x8a\x86\xaa\x86\x93\x86\xa4\x86\xa9\x86\x8c\x86\xa3\x86\x9c\x88\x70\x88\x77\x88\x81\x88\x82\x88\x7d\x88\x79\x8a\x18\x8a\x10\x8a\x0e\x8a\x0c\x8a\x15\x8a\x0a\x8a\x17\x8a\x13\x8a\x16\x8a\x0f\x8a\x11\x8c\x48\x8c\x7a\x8c\x79\x8c\xa1\x8c\xa2\x8d\x77\x8e\xac\x8e\xd2\x8e\xd4\x8e\xcf\x8f\xb1\x90\x01\x90\x06\x8f\xf7\x90\x00\x8f\xfa\x8f\xf4\x90\x03\x8f\xfd\x90\x05\x8f\xf8\x90\x95\x90\xe1\x90\xdd\x90\xe2\x91\x52\x91\x4d\x91\x4c\x91\xd8\x91\xdd\x91\xd7\x91\xdc\x91\xd9", /* 5680 */ "\x00\x00\x95\x83\x96\x62\x96\x63\x96\x61\x96\x5b\x96\x5d\x96\x64\x96\x58\x96\x5e\x96\xbb\x98\xe2\x99\xac\x9a\xa8\x9a\xd8\x9b\x25\x9b\x32\x9b\x3c\x4e\x7e\x50\x7a\x50\x7d\x50\x5c\x50\x47\x50\x43\x50\x4c\x50\x5a\x50\x49\x50\x65\x50\x76\x50\x4e\x50\x55\x50\x75\x50\x74\x50\x77\x50\x4f\x50\x0f\x50\x6f\x50\x6d\x51\x5c\x51\x95\x51\xf0\x52\x6a\x52\x6f\x52\xd2\x52\xd9\x52\xd8\x52\xd5\x53\x10\x53\x0f\x53\x19\x53\x3f\x53\x40\x53\x3e\x53\xc3\x66\xfc\x55\x46\x55\x6a\x55\x66\x55\x44\x55\x5e\x55\x61\x55\x43\x55\x4a\x55\x31\x55\x56\x55\x4f\x55\x55\x55\x2f\x55\x64\x55\x38\x55\x2e\x55\x5c\x55\x2c\x55\x63\x55\x33\x55\x41\x55\x57\x57\x08\x57\x0b\x57\x09\x57\xdf\x58\x05\x58\x0a\x58\x06\x57\xe0\x57\xe4\x57\xfa\x58\x02\x58\x35\x57\xf7\x57\xf9\x59\x20\x59\x62\x5a\x36\x5a\x41\x5a\x49\x5a\x66\x5a\x6a\x5a\x40\x5a\x3c\x5a\x62\x5a\x5a\x5a\x46\x5a\x4a\x5b\x70\x5b\xc7\x5b\xc5\x5b\xc4\x5b\xc2\x5b\xbf\x5b\xc6\x5c\x09\x5c\x08\x5c\x07\x5c\x60\x5c\x5c\x5c\x5d\x5d\x07\x5d\x06\x5d\x0e\x5d\x1b\x5d\x16\x5d\x22\x5d\x11\x5d\x29\x5d\x14\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x19\x5d\x24\x5d\x27\x5d\x17\x5d\xe2\x5e\x38\x5e\x36\x5e\x33\x5e\x37\x5e\xb7\x5e\xb8\x5e\xb6\x5e\xb5\x5e\xbe\x5f\x35\x5f\x37\x5f\x57\x5f\x6c\x5f\x69\x5f\x6b\x5f\x97\x5f\x99\x5f\x9e\x5f\x98\x5f\xa1\x5f\xa0\x5f\x9c\x60\x7f\x60\xa3\x60\x89\x60\xa0\x60\xa8\x60\xcb\x60\xb4\x60\xe6\x60\xbd\x60\xc5\x60\xbb\x60\xb5\x60\xdc\x60\xbc\x60\xd8\x60\xd5\x60\xc6\x60\xdf\x60\xb8\x60\xda\x60\xc7\x62\x1a\x62\x1b\x62\x48\x63\xa0\x63\xa7\x63\x72\x63\x96\x63\xa2\x63\xa5\x63\x77\x63\x67\x63\x98\x63\xaa\x63\x71\x63\xa9", /* 5780 */ "\x00\x00\x63\x89\x63\x83\x63\x9b\x63\x6b\x63\xa8\x63\x84\x63\x88\x63\x99\x63\xa1\x63\xac\x63\x92\x63\x8f\x63\x80\x63\x7b\x63\x69\x63\x68\x63\x7a\x65\x5d\x65\x56\x65\x51\x65\x59\x65\x57\x55\x5f\x65\x4f\x65\x58\x65\x55\x65\x54\x65\x9c\x65\x9b\x65\xac\x65\xcf\x65\xcb\x65\xcc\x65\xce\x66\x5d\x66\x5a\x66\x64\x66\x68\x66\x66\x66\x5e\x66\xf9\x52\xd7\x67\x1b\x68\x81\x68\xaf\x68\xa2\x68\x93\x68\xb5\x68\x7f\x68\x76\x68\xb1\x68\xa7\x68\x97\x68\xb0\x68\x83\x68\xc4\x68\xad\x68\x86\x68\x85\x68\x94\x68\x9d\x68\xa8\x68\x9f\x68\xa1\x68\x82\x6b\x32\x6b\xba\x6b\xeb\x6b\xec\x6c\x2b\x6d\x8e\x6d\xbc\x6d\xf3\x6d\xd9\x6d\xb2\x6d\xe1\x6d\xcc\x6d\xe4\x6d\xfb\x6d\xfa\x6e\x05\x6d\xc7\x6d\xcb\x6d\xaf\x6d\xd1\x6d\xae\x6d\xde\x6d\xf9\x6d\xb8\x6d\xf7\x6d\xf5\x6d\xc5\x6d\xd2\x6e\x1a\x6d\xb5\x6d\xda\x6d\xeb\x6d\xd8\x6d\xea\x6d\xf1\x6d\xee\x6d\xe8\x6d\xc6\x6d\xc4\x6d\xaa\x6d\xec\x6d\xbf\x6d\xe6\x70\xf9\x71\x09\x71\x0a\x70\xfd\x70\xef\x72\x3d\x72\x7d\x72\x81\x73\x1c\x73\x1b\x73\x16\x73\x13\x73\x19\x73\x87\x74\x05\x74\x0a\x74\x03\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x73\xfe\x74\x0d\x74\xe0\x74\xf6\x74\xf7\x75\x1c\x75\x22\x75\x65\x75\x66\x75\x62\x75\x70\x75\x8f\x75\xd4\x75\xd5\x75\xb5\x75\xca\x75\xcd\x76\x8e\x76\xd4\x76\xd2\x76\xdb\x77\x37\x77\x3e\x77\x3c\x77\x36\x77\x38\x77\x3a\x78\x6b\x78\x43\x78\x4e\x79\x65\x79\x68\x79\x6d\x79\xfb\x7a\x92\x7a\x95\x7b\x20\x7b\x28\x7b\x1b\x7b\x2c\x7b\x26\x7b\x19\x7b\x1e\x7b\x2e\x7c\x92\x7c\x97\x7c\x95\x7d\x46\x7d\x43\x7d\x71\x7d\x2e\x7d\x39\x7d\x3c\x7d\x40\x7d\x30\x7d\x33\x7d\x44\x7d\x2f\x7d\x42\x7d\x32\x7d\x31\x7f\x3d", /* 5880 */ "\x00\x00\x7f\x9e\x7f\x9a\x7f\xcc\x7f\xce\x7f\xd2\x80\x1c\x80\x4a\x80\x46\x81\x2f\x81\x16\x81\x23\x81\x2b\x81\x29\x81\x30\x81\x24\x82\x02\x82\x35\x82\x37\x82\x36\x82\x39\x83\x8e\x83\x9e\x83\x98\x83\x78\x83\xa2\x83\x96\x83\xbd\x83\xab\x83\x92\x83\x8a\x83\x93\x83\x89\x83\xa0\x83\x77\x83\x7b\x83\x7c\x83\x86\x83\xa7\x86\x55\x5f\x6a\x86\xc7\x86\xc0\x86\xb6\x86\xc4\x86\xb5\x86\xc6\x86\xcb\x86\xb1\x86\xaf\x86\xc9\x88\x53\x88\x9e\x88\x88\x88\xab\x88\x92\x88\x96\x88\x8d\x88\x8b\x89\x93\x89\x8f\x8a\x2a\x8a\x1d\x8a\x23\x8a\x25\x8a\x31\x8a\x2d\x8a\x1f\x8a\x1b\x8a\x22\x8c\x49\x8c\x5a\x8c\xa9\x8c\xac\x8c\xab\x8c\xa8\x8c\xaa\x8c\xa7\x8d\x67\x8d\x66\x8d\xbe\x8d\xba\x8e\xdb\x8e\xdf\x90\x19\x90\x0d\x90\x1a\x90\x17\x90\x23\x90\x1f\x90\x1d\x90\x10\x90\x15\x90\x1e\x90\x20\x90\x0f\x90\x22\x90\x16\x90\x1b\x90\x14\x90\xe8\x90\xed\x90\xfd\x91\x57\x91\xce\x91\xf5\x91\xe6\x91\xe3\x91\xe7\x91\xed\x91\xe9\x95\x89\x96\x6a\x96\x75\x96\x73\x96\x78\x96\x70\x96\x74\x96\x76\x96\x77\x96\x6c\x96\xc0\x96\xea\x96\xe9\x7a\xe0\x7a\xdf\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x02\x98\x03\x9b\x5a\x9c\xe5\x9e\x75\x9e\x7f\x9e\xa5\x9e\xbb\x50\xa2\x50\x8d\x50\x85\x50\x99\x50\x91\x50\x80\x50\x96\x50\x98\x50\x9a\x67\x00\x51\xf1\x52\x72\x52\x74\x52\x75\x52\x69\x52\xde\x52\xdd\x52\xdb\x53\x5a\x53\xa5\x55\x7b\x55\x80\x55\xa7\x55\x7c\x55\x8a\x55\x9d\x55\x98\x55\x82\x55\x9c\x55\xaa\x55\x94\x55\x87\x55\x8b\x55\x83\x55\xb3\x55\xae\x55\x9f\x55\x3e\x55\xb2\x55\x9a\x55\xbb\x55\xac\x55\xb1\x55\x7e\x55\x89\x55\xab\x55\x99\x57\x0d\x58\x2f\x58\x2a\x58\x34\x58\x24\x58\x30\x58\x31\x58\x21", /* 5980 */ "\x00\x00\x58\x1d\x58\x20\x58\xf9\x58\xfa\x59\x60\x5a\x77\x5a\x9a\x5a\x7f\x5a\x92\x5a\x9b\x5a\xa7\x5b\x73\x5b\x71\x5b\xd2\x5b\xcc\x5b\xd3\x5b\xd0\x5c\x0a\x5c\x0b\x5c\x31\x5d\x4c\x5d\x50\x5d\x34\x5d\x47\x5d\xfd\x5e\x45\x5e\x3d\x5e\x40\x5e\x43\x5e\x7e\x5e\xca\x5e\xc1\x5e\xc2\x5e\xc4\x5f\x3c\x5f\x6d\x5f\xa9\x5f\xaa\x5f\xa8\x60\xd1\x60\xe1\x60\xb2\x60\xb6\x60\xe0\x61\x1c\x61\x23\x60\xfa\x61\x15\x60\xf0\x60\xfb\x60\xf4\x61\x68\x60\xf1\x61\x0e\x60\xf6\x61\x09\x61\x00\x61\x12\x62\x1f\x62\x49\x63\xa3\x63\x8c\x63\xcf\x63\xc0\x63\xe9\x63\xc9\x63\xc6\x63\xcd\x63\xd2\x63\xe3\x63\xd0\x63\xe1\x63\xd6\x63\xed\x63\xee\x63\x76\x63\xf4\x63\xea\x63\xdb\x64\x52\x63\xda\x63\xf9\x65\x5e\x65\x66\x65\x62\x65\x63\x65\x91\x65\x90\x65\xaf\x66\x6e\x66\x70\x66\x74\x66\x76\x66\x6f\x66\x91\x66\x7a\x66\x7e\x66\x77\x66\xfe\x66\xff\x67\x1f\x67\x1d\x68\xfa\x68\xd5\x68\xe0\x68\xd8\x68\xd7\x69\x05\x68\xdf\x68\xf5\x68\xee\x68\xe7\x68\xf9\x68\xd2\x68\xf2\x68\xe3\x68\xcb\x68\xcd\x69\x0d\x69\x12\x69\x0e\x68\xc9\x68\xda\x69\x6e\x68\xfb\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x3e\x6b\x3a\x6b\x3d\x6b\x98\x6b\x96\x6b\xbc\x6b\xef\x6c\x2e\x6c\x2f\x6c\x2c\x6e\x2f\x6e\x38\x6e\x54\x6e\x21\x6e\x32\x6e\x67\x6e\x4a\x6e\x20\x6e\x25\x6e\x23\x6e\x1b\x6e\x5b\x6e\x58\x6e\x24\x6e\x56\x6e\x6e\x6e\x2d\x6e\x26\x6e\x6f\x6e\x34\x6e\x4d\x6e\x3a\x6e\x2c\x6e\x43\x6e\x1d\x6e\x3e\x6e\xcb\x6e\x89\x6e\x19\x6e\x4e\x6e\x63\x6e\x44\x6e\x72\x6e\x69\x6e\x5f\x71\x19\x71\x1a\x71\x26\x71\x30\x71\x21\x71\x36\x71\x6e\x71\x1c\x72\x4c\x72\x84\x72\x80\x73\x36\x73\x25\x73\x34\x73\x29\x74\x3a\x74\x2a\x74\x33", /* 5a80 */ "\x00\x00\x74\x22\x74\x25\x74\x35\x74\x36\x74\x34\x74\x2f\x74\x1b\x74\x26\x74\x28\x75\x25\x75\x26\x75\x6b\x75\x6a\x75\xe2\x75\xdb\x75\xe3\x75\xd9\x75\xd8\x75\xde\x75\xe0\x76\x7b\x76\x7c\x76\x96\x76\x93\x76\xb4\x76\xdc\x77\x4f\x77\xed\x78\x5d\x78\x6c\x78\x6f\x7a\x0d\x7a\x08\x7a\x0b\x7a\x05\x7a\x00\x7a\x98\x7a\x97\x7a\x96\x7a\xe5\x7a\xe3\x7b\x49\x7b\x56\x7b\x46\x7b\x50\x7b\x52\x7b\x54\x7b\x4d\x7b\x4b\x7b\x4f\x7b\x51\x7c\x9f\x7c\xa5\x7d\x5e\x7d\x50\x7d\x68\x7d\x55\x7d\x2b\x7d\x6e\x7d\x72\x7d\x61\x7d\x66\x7d\x62\x7d\x70\x7d\x73\x55\x84\x7f\xd4\x7f\xd5\x80\x0b\x80\x52\x80\x85\x81\x55\x81\x54\x81\x4b\x81\x51\x81\x4e\x81\x39\x81\x46\x81\x3e\x81\x4c\x81\x53\x81\x74\x82\x12\x82\x1c\x83\xe9\x84\x03\x83\xf8\x84\x0d\x83\xe0\x83\xc5\x84\x0b\x83\xc1\x83\xef\x83\xf1\x83\xf4\x84\x57\x84\x0a\x83\xf0\x84\x0c\x83\xcc\x83\xfd\x83\xf2\x83\xca\x84\x38\x84\x0e\x84\x04\x83\xdc\x84\x07\x83\xd4\x83\xdf\x86\x5b\x86\xdf\x86\xd9\x86\xed\x86\xd4\x86\xdb\x86\xe4\x86\xd0\x86\xde\x88\x57\x88\xc1\x88\xc2\x88\xb1\x89\x83\x89\x96\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x3b\x8a\x60\x8a\x55\x8a\x5e\x8a\x3c\x8a\x41\x8a\x54\x8a\x5b\x8a\x50\x8a\x46\x8a\x34\x8a\x3a\x8a\x36\x8a\x56\x8c\x61\x8c\x82\x8c\xaf\x8c\xbc\x8c\xb3\x8c\xbd\x8c\xc1\x8c\xbb\x8c\xc0\x8c\xb4\x8c\xb7\x8c\xb6\x8c\xbf\x8c\xb8\x8d\x8a\x8d\x85\x8d\x81\x8d\xce\x8d\xdd\x8d\xcb\x8d\xda\x8d\xd1\x8d\xcc\x8d\xdb\x8d\xc6\x8e\xfb\x8e\xf8\x8e\xfc\x8f\x9c\x90\x2e\x90\x35\x90\x31\x90\x38\x90\x32\x90\x36\x91\x02\x90\xf5\x91\x09\x90\xfe\x91\x63\x91\x65\x91\xcf\x92\x14\x92\x15\x92\x23\x92\x09\x92\x1e\x92\x0d\x92\x10", /* 5b80 */ "\x00\x00\x92\x07\x92\x11\x95\x94\x95\x8f\x95\x8b\x95\x91\x95\x93\x95\x92\x95\x8e\x96\x8a\x96\x8e\x96\x8b\x96\x7d\x96\x85\x96\x86\x96\x8d\x96\x72\x96\x84\x96\xc1\x96\xc5\x96\xc4\x96\xc6\x96\xc7\x96\xef\x96\xf2\x97\xcc\x98\x05\x98\x06\x98\x08\x98\xe7\x98\xea\x98\xef\x98\xe9\x98\xf2\x98\xed\x99\xae\x99\xad\x9e\xc3\x9e\xcd\x9e\xd1\x4e\x82\x50\xad\x50\xb5\x50\xb2\x50\xb3\x50\xc5\x50\xbe\x50\xac\x50\xb7\x50\xbb\x50\xaf\x50\xc7\x52\x7f\x52\x77\x52\x7d\x52\xdf\x52\xe6\x52\xe4\x52\xe2\x52\xe3\x53\x2f\x55\xdf\x55\xe8\x55\xd3\x55\xe6\x55\xce\x55\xdc\x55\xc7\x55\xd1\x55\xe3\x55\xe4\x55\xef\x55\xda\x55\xe1\x55\xc5\x55\xc6\x55\xe5\x55\xc9\x57\x12\x57\x13\x58\x5e\x58\x51\x58\x58\x58\x57\x58\x5a\x58\x54\x58\x6b\x58\x4c\x58\x6d\x58\x4a\x58\x62\x58\x52\x58\x4b\x59\x67\x5a\xc1\x5a\xc9\x5a\xcc\x5a\xbe\x5a\xbd\x5a\xbc\x5a\xb3\x5a\xc2\x5a\xb2\x5d\x69\x5d\x6f\x5e\x4c\x5e\x79\x5e\xc9\x5e\xc8\x5f\x12\x5f\x59\x5f\xac\x5f\xae\x61\x1a\x61\x0f\x61\x48\x61\x1f\x60\xf3\x61\x1b\x60\xf9\x61\x01\x61\x08\x61\x4e\x61\x4c\x61\x44\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x4d\x61\x3e\x61\x34\x61\x27\x61\x0d\x61\x06\x61\x37\x62\x21\x62\x22\x64\x13\x64\x3e\x64\x1e\x64\x2a\x64\x2d\x64\x3d\x64\x2c\x64\x0f\x64\x1c\x64\x14\x64\x0d\x64\x36\x64\x16\x64\x17\x64\x06\x65\x6c\x65\x9f\x65\xb0\x66\x97\x66\x89\x66\x87\x66\x88\x66\x96\x66\x84\x66\x98\x66\x8d\x67\x03\x69\x94\x69\x6d\x69\x5a\x69\x77\x69\x60\x69\x54\x69\x75\x69\x30\x69\x82\x69\x4a\x69\x68\x69\x6b\x69\x5e\x69\x53\x69\x79\x69\x86\x69\x5d\x69\x63\x69\x5b\x6b\x47\x6b\x72\x6b\xc0\x6b\xbf\x6b\xd3\x6b\xfd\x6e\xa2\x6e\xaf", /* 5c80 */ "\x00\x00\x6e\xd3\x6e\xb6\x6e\xc2\x6e\x90\x6e\x9d\x6e\xc7\x6e\xc5\x6e\xa5\x6e\x98\x6e\xbc\x6e\xba\x6e\xab\x6e\xd1\x6e\x96\x6e\x9c\x6e\xc4\x6e\xd4\x6e\xaa\x6e\xa7\x6e\xb4\x71\x4e\x71\x59\x71\x69\x71\x64\x71\x49\x71\x67\x71\x5c\x71\x6c\x71\x66\x71\x4c\x71\x65\x71\x5e\x71\x46\x71\x68\x71\x56\x72\x3a\x72\x52\x73\x37\x73\x45\x73\x3f\x73\x3e\x74\x6f\x74\x5a\x74\x55\x74\x5f\x74\x5e\x74\x41\x74\x3f\x74\x59\x74\x5b\x74\x5c\x75\x76\x75\x78\x76\x00\x75\xf0\x76\x01\x75\xf2\x75\xf1\x75\xfa\x75\xff\x75\xf4\x75\xf3\x76\xde\x76\xdf\x77\x5b\x77\x6b\x77\x66\x77\x5e\x77\x63\x77\x79\x77\x6a\x77\x6c\x77\x5c\x77\x65\x77\x68\x77\x62\x77\xee\x78\x8e\x78\xb0\x78\x97\x78\x98\x78\x8c\x78\x89\x78\x7c\x78\x91\x78\x93\x78\x7f\x79\x7a\x79\x7f\x79\x81\x84\x2c\x79\xbd\x7a\x1c\x7a\x1a\x7a\x20\x7a\x14\x7a\x1f\x7a\x1e\x7a\x9f\x7a\xa0\x7b\x77\x7b\xc0\x7b\x60\x7b\x6e\x7b\x67\x7c\xb1\x7c\xb3\x7c\xb5\x7d\x93\x7d\x79\x7d\x91\x7d\x81\x7d\x8f\x7d\x5b\x7f\x6e\x7f\x69\x7f\x6a\x7f\x72\x7f\xa9\x7f\xa8\x7f\xa4\x80\x56\x80\x58\x80\x86\x80\x84\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x71\x81\x70\x81\x78\x81\x65\x81\x6e\x81\x73\x81\x6b\x81\x79\x81\x7a\x81\x66\x82\x05\x82\x47\x84\x82\x84\x77\x84\x3d\x84\x31\x84\x75\x84\x66\x84\x6b\x84\x49\x84\x6c\x84\x5b\x84\x3c\x84\x35\x84\x61\x84\x63\x84\x69\x84\x6d\x84\x46\x86\x5e\x86\x5c\x86\x5f\x86\xf9\x87\x13\x87\x08\x87\x07\x87\x00\x86\xfe\x86\xfb\x87\x02\x87\x03\x87\x06\x87\x0a\x88\x59\x88\xdf\x88\xd4\x88\xd9\x88\xdc\x88\xd8\x88\xdd\x88\xe1\x88\xca\x88\xd5\x88\xd2\x89\x9c\x89\xe3\x8a\x6b\x8a\x72\x8a\x73\x8a\x66\x8a\x69\x8a\x70\x8a\x87", /* 5d80 */ "\x00\x00\x8a\x7c\x8a\x63\x8a\xa0\x8a\x71\x8a\x85\x8a\x6d\x8a\x62\x8a\x6e\x8a\x6c\x8a\x79\x8a\x7b\x8a\x3e\x8a\x68\x8c\x62\x8c\x8a\x8c\x89\x8c\xca\x8c\xc7\x8c\xc8\x8c\xc4\x8c\xb2\x8c\xc3\x8c\xc2\x8c\xc5\x8d\xe1\x8d\xdf\x8d\xe8\x8d\xef\x8d\xf3\x8d\xfa\x8d\xea\x8d\xe4\x8d\xe6\x8e\xb2\x8f\x03\x8f\x09\x8e\xfe\x8f\x0a\x8f\x9f\x8f\xb2\x90\x4b\x90\x4a\x90\x53\x90\x42\x90\x54\x90\x3c\x90\x55\x90\x50\x90\x47\x90\x4f\x90\x4e\x90\x4d\x90\x51\x90\x3e\x90\x41\x91\x12\x91\x17\x91\x6c\x91\x6a\x91\x69\x91\xc9\x92\x37\x92\x57\x92\x38\x92\x3d\x92\x40\x92\x3e\x92\x5b\x92\x4b\x92\x64\x92\x51\x92\x34\x92\x49\x92\x4d\x92\x45\x92\x39\x92\x3f\x92\x5a\x95\x98\x96\x98\x96\x94\x96\x95\x96\xcd\x96\xcb\x96\xc9\x96\xca\x96\xf7\x96\xfb\x96\xf9\x96\xf6\x97\x56\x97\x74\x97\x76\x98\x10\x98\x11\x98\x13\x98\x0a\x98\x12\x98\x0c\x98\xfc\x98\xf4\x98\xfd\x98\xfe\x99\xb3\x99\xb1\x99\xb4\x9a\xe1\x9c\xe9\x9e\x82\x9f\x0e\x9f\x13\x9f\x20\x50\xe7\x50\xee\x50\xe5\x50\xd6\x50\xed\x50\xda\x50\xd5\x50\xcf\x50\xd1\x50\xf1\x50\xce\x50\xe9\x51\x62\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf3\x52\x83\x52\x82\x53\x31\x53\xad\x55\xfe\x56\x00\x56\x1b\x56\x17\x55\xfd\x56\x14\x56\x06\x56\x09\x56\x0d\x56\x0e\x55\xf7\x56\x16\x56\x1f\x56\x08\x56\x10\x55\xf6\x57\x18\x57\x16\x58\x75\x58\x7e\x58\x83\x58\x93\x58\x8a\x58\x79\x58\x85\x58\x7d\x58\xfd\x59\x25\x59\x22\x59\x24\x59\x6a\x59\x69\x5a\xe1\x5a\xe6\x5a\xe9\x5a\xd7\x5a\xd6\x5a\xd8\x5a\xe3\x5b\x75\x5b\xde\x5b\xe7\x5b\xe1\x5b\xe5\x5b\xe6\x5b\xe8\x5b\xe2\x5b\xe4\x5b\xdf\x5c\x0d\x5c\x62\x5d\x84\x5d\x87\x5e\x5b\x5e\x63\x5e\x55\x5e\x57\x5e\x54", /* 5e80 */ "\x00\x00\x5e\xd3\x5e\xd6\x5f\x0a\x5f\x46\x5f\x70\x5f\xb9\x61\x47\x61\x3f\x61\x4b\x61\x77\x61\x62\x61\x63\x61\x5f\x61\x5a\x61\x58\x61\x75\x62\x2a\x64\x87\x64\x58\x64\x54\x64\xa4\x64\x78\x64\x5f\x64\x7a\x64\x51\x64\x67\x64\x34\x64\x6d\x64\x7b\x65\x72\x65\xa1\x65\xd7\x65\xd6\x66\xa2\x66\xa8\x66\x9d\x69\x9c\x69\xa8\x69\x95\x69\xc1\x69\xae\x69\xd3\x69\xcb\x69\x9b\x69\xb7\x69\xbb\x69\xab\x69\xb4\x69\xd0\x69\xcd\x69\xad\x69\xcc\x69\xa6\x69\xc3\x69\xa3\x6b\x49\x6b\x4c\x6c\x33\x6f\x33\x6f\x14\x6e\xfe\x6f\x13\x6e\xf4\x6f\x29\x6f\x3e\x6f\x20\x6f\x2c\x6f\x0f\x6f\x02\x6f\x22\x6e\xff\x6e\xef\x6f\x06\x6f\x31\x6f\x38\x6f\x32\x6f\x23\x6f\x15\x6f\x2b\x6f\x2f\x6f\x88\x6f\x2a\x6e\xec\x6f\x01\x6e\xf2\x6e\xcc\x6e\xf7\x71\x94\x71\x99\x71\x7d\x71\x8a\x71\x84\x71\x92\x72\x3e\x72\x92\x72\x96\x73\x44\x73\x50\x74\x64\x74\x63\x74\x6a\x74\x70\x74\x6d\x75\x04\x75\x91\x76\x27\x76\x0d\x76\x0b\x76\x09\x76\x13\x76\xe1\x76\xe3\x77\x84\x77\x7d\x77\x7f\x77\x61\x78\xc1\x78\x9f\x78\xa7\x78\xb3\x78\xa9\x78\xa3\x79\x8e\x79\x8f\x79\x8d\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x2e\x7a\x31\x7a\xaa\x7a\xa9\x7a\xed\x7a\xef\x7b\xa1\x7b\x95\x7b\x8b\x7b\x75\x7b\x97\x7b\x9d\x7b\x94\x7b\x8f\x7b\xb8\x7b\x87\x7b\x84\x7c\xb9\x7c\xbd\x7c\xbe\x7d\xbb\x7d\xb0\x7d\x9c\x7d\xbd\x7d\xbe\x7d\xa0\x7d\xca\x7d\xb4\x7d\xb2\x7d\xb1\x7d\xba\x7d\xa2\x7d\xbf\x7d\xb5\x7d\xb8\x7d\xad\x7d\xd2\x7d\xc7\x7d\xac\x7f\x70\x7f\xe0\x7f\xe1\x7f\xdf\x80\x5e\x80\x5a\x80\x87\x81\x50\x81\x80\x81\x8f\x81\x88\x81\x8a\x81\x7f\x81\x82\x81\xe7\x81\xfa\x82\x07\x82\x14\x82\x1e\x82\x4b\x84\xc9\x84\xbf\x84\xc6\x84\xc4", /* 5f80 */ "\x00\x00\x84\x99\x84\x9e\x84\xb2\x84\x9c\x84\xcb\x84\xb8\x84\xc0\x84\xd3\x84\x90\x84\xbc\x84\xd1\x84\xca\x87\x3f\x87\x1c\x87\x3b\x87\x22\x87\x25\x87\x34\x87\x18\x87\x55\x87\x37\x87\x29\x88\xf3\x89\x02\x88\xf4\x88\xf9\x88\xf8\x88\xfd\x88\xe8\x89\x1a\x88\xef\x8a\xa6\x8a\x8c\x8a\x9e\x8a\xa3\x8a\x8d\x8a\xa1\x8a\x93\x8a\xa4\x8a\xaa\x8a\xa5\x8a\xa8\x8a\x98\x8a\x91\x8a\x9a\x8a\xa7\x8c\x6a\x8c\x8d\x8c\x8c\x8c\xd3\x8c\xd1\x8c\xd2\x8d\x6b\x8d\x99\x8d\x95\x8d\xfc\x8f\x14\x8f\x12\x8f\x15\x8f\x13\x8f\xa3\x90\x60\x90\x58\x90\x5c\x90\x63\x90\x59\x90\x5e\x90\x62\x90\x5d\x90\x5b\x91\x19\x91\x18\x91\x1e\x91\x75\x91\x78\x91\x77\x91\x74\x92\x78\x92\x80\x92\x85\x92\x98\x92\x96\x92\x7b\x92\x93\x92\x9c\x92\xa8\x92\x7c\x92\x91\x95\xa1\x95\xa8\x95\xa9\x95\xa3\x95\xa5\x95\xa4\x96\x99\x96\x9c\x96\x9b\x96\xcc\x96\xd2\x97\x00\x97\x7c\x97\x85\x97\xf6\x98\x17\x98\x18\x98\xaf\x98\xb1\x99\x03\x99\x05\x99\x0c\x99\x09\x99\xc1\x9a\xaf\x9a\xb0\x9a\xe6\x9b\x41\x9b\x42\x9c\xf4\x9c\xf6\x9c\xf3\x9e\xbc\x9f\x3b\x9f\x4a\x51\x04\x51\x00\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xfb\x50\xf5\x50\xf9\x51\x02\x51\x08\x51\x09\x51\x05\x51\xdc\x52\x87\x52\x88\x52\x89\x52\x8d\x52\x8a\x52\xf0\x53\xb2\x56\x2e\x56\x3b\x56\x39\x56\x32\x56\x3f\x56\x34\x56\x29\x56\x53\x56\x4e\x56\x57\x56\x74\x56\x36\x56\x2f\x56\x30\x58\x80\x58\x9f\x58\x9e\x58\xb3\x58\x9c\x58\xae\x58\xa9\x58\xa6\x59\x6d\x5b\x09\x5a\xfb\x5b\x0b\x5a\xf5\x5b\x0c\x5b\x08\x5b\xee\x5b\xec\x5b\xe9\x5b\xeb\x5c\x64\x5c\x65\x5d\x9d\x5d\x94\x5e\x62\x5e\x5f\x5e\x61\x5e\xe2\x5e\xda\x5e\xdf\x5e\xdd\x5e\xe3\x5e\xe0\x5f\x48\x5f\x71", /* 6080 */ "\x00\x00\x5f\xb7\x5f\xb5\x61\x76\x61\x67\x61\x6e\x61\x5d\x61\x55\x61\x82\x61\x7c\x61\x70\x61\x6b\x61\x7e\x61\xa7\x61\x90\x61\xab\x61\x8e\x61\xac\x61\x9a\x61\xa4\x61\x94\x61\xae\x62\x2e\x64\x69\x64\x6f\x64\x79\x64\x9e\x64\xb2\x64\x88\x64\x90\x64\xb0\x64\xa5\x64\x93\x64\x95\x64\xa9\x64\x92\x64\xae\x64\xad\x64\xab\x64\x9a\x64\xac\x64\x99\x64\xa2\x64\xb3\x65\x75\x65\x77\x65\x78\x66\xae\x66\xab\x66\xb4\x66\xb1\x6a\x23\x6a\x1f\x69\xe8\x6a\x01\x6a\x1e\x6a\x19\x69\xfd\x6a\x21\x6a\x13\x6a\x0a\x69\xf3\x6a\x02\x6a\x05\x69\xed\x6a\x11\x6b\x50\x6b\x4e\x6b\xa4\x6b\xc5\x6b\xc6\x6f\x3f\x6f\x7c\x6f\x84\x6f\x51\x6f\x66\x6f\x54\x6f\x86\x6f\x6d\x6f\x5b\x6f\x78\x6f\x6e\x6f\x8e\x6f\x7a\x6f\x70\x6f\x64\x6f\x97\x6f\x58\x6e\xd5\x6f\x6f\x6f\x60\x6f\x5f\x71\x9f\x71\xac\x71\xb1\x71\xa8\x72\x56\x72\x9b\x73\x4e\x73\x57\x74\x69\x74\x8b\x74\x83\x74\x7e\x74\x80\x75\x7f\x76\x20\x76\x29\x76\x1f\x76\x24\x76\x26\x76\x21\x76\x22\x76\x9a\x76\xba\x76\xe4\x77\x8e\x77\x87\x77\x8c\x77\x91\x77\x8b\x78\xcb\x78\xc5\x78\xba\x78\xca\x78\xbe\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xd5\x78\xbc\x78\xd0\x7a\x3f\x7a\x3c\x7a\x40\x7a\x3d\x7a\x37\x7a\x3b\x7a\xaf\x7a\xae\x7b\xad\x7b\xb1\x7b\xc4\x7b\xb4\x7b\xc6\x7b\xc7\x7b\xc1\x7b\xa0\x7b\xcc\x7c\xca\x7d\xe0\x7d\xf4\x7d\xef\x7d\xfb\x7d\xd8\x7d\xec\x7d\xdd\x7d\xe8\x7d\xe3\x7d\xda\x7d\xde\x7d\xe9\x7d\x9e\x7d\xd9\x7d\xf2\x7d\xf9\x7f\x75\x7f\x77\x7f\xaf\x7f\xe9\x80\x26\x81\x9b\x81\x9c\x81\x9d\x81\xa0\x81\x9a\x81\x98\x85\x17\x85\x3d\x85\x1a\x84\xee\x85\x2c\x85\x2d\x85\x13\x85\x11\x85\x23\x85\x21\x85\x14\x84\xec\x85\x25\x84\xff\x85\x06", /* 6180 */ "\x00\x00\x87\x82\x87\x74\x87\x76\x87\x60\x87\x66\x87\x78\x87\x68\x87\x59\x87\x57\x87\x4c\x87\x53\x88\x5b\x88\x5d\x89\x10\x89\x07\x89\x12\x89\x13\x89\x15\x89\x0a\x8a\xbc\x8a\xd2\x8a\xc7\x8a\xc4\x8a\x95\x8a\xcb\x8a\xf8\x8a\xb2\x8a\xc9\x8a\xc2\x8a\xbf\x8a\xb0\x8a\xd6\x8a\xcd\x8a\xb6\x8a\xb9\x8a\xdb\x8c\x4c\x8c\x4e\x8c\x6c\x8c\xe0\x8c\xde\x8c\xe6\x8c\xe4\x8c\xec\x8c\xed\x8c\xe2\x8c\xe3\x8c\xdc\x8c\xea\x8c\xe1\x8d\x6d\x8d\x9f\x8d\xa3\x8e\x2b\x8e\x10\x8e\x1d\x8e\x22\x8e\x0f\x8e\x29\x8e\x1f\x8e\x21\x8e\x1e\x8e\xba\x8f\x1d\x8f\x1b\x8f\x1f\x8f\x29\x8f\x26\x8f\x2a\x8f\x1c\x8f\x1e\x8f\x25\x90\x69\x90\x6e\x90\x68\x90\x6d\x90\x77\x91\x30\x91\x2d\x91\x27\x91\x31\x91\x87\x91\x89\x91\x8b\x91\x83\x92\xc5\x92\xbb\x92\xb7\x92\xea\x92\xac\x92\xe4\x92\xc1\x92\xb3\x92\xbc\x92\xd2\x92\xc7\x92\xf0\x92\xb2\x95\xad\x95\xb1\x97\x04\x97\x06\x97\x07\x97\x09\x97\x60\x97\x8d\x97\x8b\x97\x8f\x98\x21\x98\x2b\x98\x1c\x98\xb3\x99\x0a\x99\x13\x99\x12\x99\x18\x99\xdd\x99\xd0\x99\xdf\x99\xdb\x99\xd1\x99\xd5\x99\xd2\x99\xd9\x9a\xb7\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xee\x9a\xef\x9b\x27\x9b\x45\x9b\x44\x9b\x77\x9b\x6f\x9d\x06\x9d\x09\x9d\x03\x9e\xa9\x9e\xbe\x9e\xce\x58\xa8\x9f\x52\x51\x12\x51\x18\x51\x14\x51\x10\x51\x15\x51\x80\x51\xaa\x51\xdd\x52\x91\x52\x93\x52\xf3\x56\x59\x56\x6b\x56\x79\x56\x69\x56\x64\x56\x78\x56\x6a\x56\x68\x56\x65\x56\x71\x56\x6f\x56\x6c\x56\x62\x56\x76\x58\xc1\x58\xbe\x58\xc7\x58\xc5\x59\x6e\x5b\x1d\x5b\x34\x5b\x78\x5b\xf0\x5c\x0e\x5f\x4a\x61\xb2\x61\x91\x61\xa9\x61\x8a\x61\xcd\x61\xb6\x61\xbe\x61\xca\x61\xc8\x62\x30\x64\xc5\x64\xc1", /* 6280 */ "\x00\x00\x64\xcb\x64\xbb\x64\xbc\x64\xda\x64\xc4\x64\xc7\x64\xc2\x64\xcd\x64\xbf\x64\xd2\x64\xd4\x64\xbe\x65\x74\x66\xc6\x66\xc9\x66\xb9\x66\xc4\x66\xc7\x66\xb8\x6a\x3d\x6a\x38\x6a\x3a\x6a\x59\x6a\x6b\x6a\x58\x6a\x39\x6a\x44\x6a\x62\x6a\x61\x6a\x4b\x6a\x47\x6a\x35\x6a\x5f\x6a\x48\x6b\x59\x6b\x77\x6c\x05\x6f\xc2\x6f\xb1\x6f\xa1\x6f\xc3\x6f\xa4\x6f\xc1\x6f\xa7\x6f\xb3\x6f\xc0\x6f\xb9\x6f\xb6\x6f\xa6\x6f\xa0\x6f\xb4\x71\xbe\x71\xc9\x71\xd0\x71\xd2\x71\xc8\x71\xd5\x71\xb9\x71\xce\x71\xd9\x71\xdc\x71\xc3\x71\xc4\x73\x68\x74\x9c\x74\xa3\x74\x98\x74\x9f\x74\x9e\x74\xe2\x75\x0c\x75\x0d\x76\x34\x76\x38\x76\x3a\x76\xe7\x76\xe5\x77\xa0\x77\x9e\x77\x9f\x77\xa5\x78\xe8\x78\xda\x78\xec\x78\xe7\x79\xa6\x7a\x4d\x7a\x4e\x7a\x46\x7a\x4c\x7a\x4b\x7a\xba\x7b\xd9\x7c\x11\x7b\xc9\x7b\xe4\x7b\xdb\x7b\xe1\x7b\xe9\x7b\xe6\x7c\xd5\x7c\xd6\x7e\x0a\x7e\x11\x7e\x08\x7e\x1b\x7e\x23\x7e\x1e\x7e\x1d\x7e\x09\x7e\x10\x7f\x79\x7f\xb2\x7f\xf0\x7f\xf1\x7f\xee\x80\x28\x81\xb3\x81\xa9\x81\xa8\x81\xfb\x82\x08\x82\x58\x82\x59\x85\x4a\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x59\x85\x48\x85\x68\x85\x69\x85\x43\x85\x49\x85\x6d\x85\x6a\x85\x5e\x87\x83\x87\x9f\x87\x9e\x87\xa2\x87\x8d\x88\x61\x89\x2a\x89\x32\x89\x25\x89\x2b\x89\x21\x89\xaa\x89\xa6\x8a\xe6\x8a\xfa\x8a\xeb\x8a\xf1\x8b\x00\x8a\xdc\x8a\xe7\x8a\xee\x8a\xfe\x8b\x01\x8b\x02\x8a\xf7\x8a\xed\x8a\xf3\x8a\xf6\x8a\xfc\x8c\x6b\x8c\x6d\x8c\x93\x8c\xf4\x8e\x44\x8e\x31\x8e\x34\x8e\x42\x8e\x39\x8e\x35\x8f\x3b\x8f\x2f\x8f\x38\x8f\x33\x8f\xa8\x8f\xa6\x90\x75\x90\x74\x90\x78\x90\x72\x90\x7c\x90\x7a\x91\x34\x91\x92\x93\x20", /* 6380 */ "\x00\x00\x93\x36\x92\xf8\x93\x33\x93\x2f\x93\x22\x92\xfc\x93\x2b\x93\x04\x93\x1a\x93\x10\x93\x26\x93\x21\x93\x15\x93\x2e\x93\x19\x95\xbb\x96\xa7\x96\xa8\x96\xaa\x96\xd5\x97\x0e\x97\x11\x97\x16\x97\x0d\x97\x13\x97\x0f\x97\x5b\x97\x5c\x97\x66\x97\x98\x98\x30\x98\x38\x98\x3b\x98\x37\x98\x2d\x98\x39\x98\x24\x99\x10\x99\x28\x99\x1e\x99\x1b\x99\x21\x99\x1a\x99\xed\x99\xe2\x99\xf1\x9a\xb8\x9a\xbc\x9a\xfb\x9a\xed\x9b\x28\x9b\x91\x9d\x15\x9d\x23\x9d\x26\x9d\x28\x9d\x12\x9d\x1b\x9e\xd8\x9e\xd4\x9f\x8d\x9f\x9c\x51\x2a\x51\x1f\x51\x21\x51\x32\x52\xf5\x56\x8e\x56\x80\x56\x90\x56\x85\x56\x87\x56\x8f\x58\xd5\x58\xd3\x58\xd1\x58\xce\x5b\x30\x5b\x2a\x5b\x24\x5b\x7a\x5c\x37\x5c\x68\x5d\xbc\x5d\xba\x5d\xbd\x5d\xb8\x5e\x6b\x5f\x4c\x5f\xbd\x61\xc9\x61\xc2\x61\xc7\x61\xe6\x61\xcb\x62\x32\x62\x34\x64\xce\x64\xca\x64\xd8\x64\xe0\x64\xf0\x64\xe6\x64\xec\x64\xf1\x64\xe2\x64\xed\x65\x82\x65\x83\x66\xd9\x66\xd6\x6a\x80\x6a\x94\x6a\x84\x6a\xa2\x6a\x9c\x6a\xdb\x6a\xa3\x6a\x7e\x6a\x97\x6a\x90\x6a\xa0\x6b\x5c\x6b\xae\x6b\xda\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x08\x6f\xd8\x6f\xf1\x6f\xdf\x6f\xe0\x6f\xdb\x6f\xe4\x6f\xeb\x6f\xef\x6f\x80\x6f\xec\x6f\xe1\x6f\xe9\x6f\xd5\x6f\xee\x6f\xf0\x71\xe7\x71\xdf\x71\xee\x71\xe6\x71\xe5\x71\xed\x71\xec\x71\xf4\x71\xe0\x72\x35\x72\x46\x73\x70\x73\x72\x74\xa9\x74\xb0\x74\xa6\x74\xa8\x76\x46\x76\x42\x76\x4c\x76\xea\x77\xb3\x77\xaa\x77\xb0\x77\xac\x77\xa7\x77\xad\x77\xef\x78\xf7\x78\xfa\x78\xf4\x78\xef\x79\x01\x79\xa7\x79\xaa\x7a\x57\x7a\xbf\x7c\x07\x7c\x0d\x7b\xfe\x7b\xf7\x7c\x0c\x7b\xe0\x7c\xe0\x7c\xdc\x7c\xde\x7c\xe2", /* 6480 */ "\x00\x00\x7c\xdf\x7c\xd9\x7c\xdd\x7e\x2e\x7e\x3e\x7e\x46\x7e\x37\x7e\x32\x7e\x43\x7e\x2b\x7e\x3d\x7e\x31\x7e\x45\x7e\x41\x7e\x34\x7e\x39\x7e\x48\x7e\x35\x7e\x3f\x7e\x2f\x7f\x44\x7f\xf3\x7f\xfc\x80\x71\x80\x72\x80\x70\x80\x6f\x80\x73\x81\xc6\x81\xc3\x81\xba\x81\xc2\x81\xc0\x81\xbf\x81\xbd\x81\xc9\x81\xbe\x81\xe8\x82\x09\x82\x71\x85\xaa\x85\x84\x85\x7e\x85\x9c\x85\x91\x85\x94\x85\xaf\x85\x9b\x85\x87\x85\xa8\x85\x8a\x86\x67\x87\xc0\x87\xd1\x87\xb3\x87\xd2\x87\xc6\x87\xab\x87\xbb\x87\xba\x87\xc8\x87\xcb\x89\x3b\x89\x36\x89\x44\x89\x38\x89\x3d\x89\xac\x8b\x0e\x8b\x17\x8b\x19\x8b\x1b\x8b\x0a\x8b\x20\x8b\x1d\x8b\x04\x8b\x10\x8c\x41\x8c\x3f\x8c\x73\x8c\xfa\x8c\xfd\x8c\xfc\x8c\xf8\x8c\xfb\x8d\xa8\x8e\x49\x8e\x4b\x8e\x48\x8e\x4a\x8f\x44\x8f\x3e\x8f\x42\x8f\x45\x8f\x3f\x90\x7f\x90\x7d\x90\x84\x90\x81\x90\x82\x90\x80\x91\x39\x91\xa3\x91\x9e\x91\x9c\x93\x4d\x93\x82\x93\x28\x93\x75\x93\x4a\x93\x65\x93\x4b\x93\x18\x93\x7e\x93\x6c\x93\x5b\x93\x70\x93\x5a\x93\x54\x95\xca\x95\xcb\x95\xcc\x95\xc8\x95\xc6\x96\xb1\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xb8\x96\xd6\x97\x1c\x97\x1e\x97\xa0\x97\xd3\x98\x46\x98\xb6\x99\x35\x9a\x01\x99\xff\x9b\xae\x9b\xab\x9b\xaa\x9b\xad\x9d\x3b\x9d\x3f\x9e\x8b\x9e\xcf\x9e\xde\x9e\xdc\x9e\xdd\x9e\xdb\x9f\x3e\x9f\x4b\x53\xe2\x56\x95\x56\xae\x58\xd9\x58\xd8\x5b\x38\x5f\x5e\x61\xe3\x62\x33\x64\xf4\x64\xf2\x64\xfe\x65\x06\x64\xfa\x64\xfb\x64\xf7\x65\xb7\x66\xdc\x67\x26\x6a\xb3\x6a\xac\x6a\xc3\x6a\xbb\x6a\xb8\x6a\xc2\x6a\xae\x6a\xaf\x6b\x5f\x6b\x78\x6b\xaf\x70\x09\x70\x0b\x6f\xfe\x70\x06\x6f\xfa\x70\x11\x70\x0f\x71\xfb", /* 6580 */ "\x00\x00\x71\xfc\x71\xfe\x71\xf8\x73\x77\x73\x75\x74\xa7\x74\xbf\x75\x15\x76\x56\x76\x58\x76\x52\x77\xbd\x77\xbf\x77\xbb\x77\xbc\x79\x0e\x79\xae\x7a\x61\x7a\x62\x7a\x60\x7a\xc4\x7a\xc5\x7c\x2b\x7c\x27\x7c\x2a\x7c\x1e\x7c\x23\x7c\x21\x7c\xe7\x7e\x54\x7e\x55\x7e\x5e\x7e\x5a\x7e\x61\x7e\x52\x7e\x59\x7f\x48\x7f\xf9\x7f\xfb\x80\x77\x80\x76\x81\xcd\x81\xcf\x82\x0a\x85\xcf\x85\xa9\x85\xcd\x85\xd0\x85\xc9\x85\xb0\x85\xba\x85\xb9\x85\xa6\x87\xef\x87\xec\x87\xf2\x87\xe0\x89\x86\x89\xb2\x89\xf4\x8b\x28\x8b\x39\x8b\x2c\x8b\x2b\x8c\x50\x8d\x05\x8e\x59\x8e\x63\x8e\x66\x8e\x64\x8e\x5f\x8e\x55\x8e\xc0\x8f\x49\x8f\x4d\x90\x87\x90\x83\x90\x88\x91\xab\x91\xac\x91\xd0\x93\x94\x93\x8a\x93\x96\x93\xa2\x93\xb3\x93\xae\x93\xac\x93\xb0\x93\x98\x93\x9a\x93\x97\x95\xd4\x95\xd6\x95\xd0\x95\xd5\x96\xe2\x96\xdc\x96\xd9\x96\xdb\x96\xde\x97\x24\x97\xa3\x97\xa6\x97\xad\x97\xf9\x98\x4d\x98\x4f\x98\x4c\x98\x4e\x98\x53\x98\xba\x99\x3e\x99\x3f\x99\x3d\x99\x2e\x99\xa5\x9a\x0e\x9a\xc1\x9b\x03\x9b\x06\x9b\x4f\x9b\x4e\x9b\x4d\x9b\xca\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xc9\x9b\xfd\x9b\xc8\x9b\xc0\x9d\x51\x9d\x5d\x9d\x60\x9e\xe0\x9f\x15\x9f\x2c\x51\x33\x56\xa5\x58\xde\x58\xdf\x58\xe2\x5b\xf5\x9f\x90\x5e\xec\x61\xf2\x61\xf7\x61\xf6\x61\xf5\x65\x00\x65\x0f\x66\xe0\x66\xdd\x6a\xe5\x6a\xdd\x6a\xda\x6a\xd3\x70\x1b\x70\x1f\x70\x28\x70\x1a\x70\x1d\x70\x15\x70\x18\x72\x06\x72\x0d\x72\x58\x72\xa2\x73\x78\x73\x7a\x74\xbd\x74\xca\x74\xe3\x75\x87\x75\x86\x76\x5f\x76\x61\x77\xc7\x79\x19\x79\xb1\x7a\x6b\x7a\x69\x7c\x3e\x7c\x3f\x7c\x38\x7c\x3d\x7c\x37\x7c\x40\x7e\x6b\x7e\x6d", /* 6680 */ "\x00\x00\x7e\x79\x7e\x69\x7e\x6a\x7f\x85\x7e\x73\x7f\xb6\x7f\xb9\x7f\xb8\x81\xd8\x85\xe9\x85\xdd\x85\xea\x85\xd5\x85\xe4\x85\xe5\x85\xf7\x87\xfb\x88\x05\x88\x0d\x87\xf9\x87\xfe\x89\x60\x89\x5f\x89\x56\x89\x5e\x8b\x41\x8b\x5c\x8b\x58\x8b\x49\x8b\x5a\x8b\x4e\x8b\x4f\x8b\x46\x8b\x59\x8d\x08\x8d\x0a\x8e\x7c\x8e\x72\x8e\x87\x8e\x76\x8e\x6c\x8e\x7a\x8e\x74\x8f\x54\x8f\x4e\x8f\xad\x90\x8a\x90\x8b\x91\xb1\x91\xae\x93\xe1\x93\xd1\x93\xdf\x93\xc3\x93\xc8\x93\xdc\x93\xdd\x93\xd6\x93\xe2\x93\xcd\x93\xd8\x93\xe4\x93\xd7\x93\xe8\x95\xdc\x96\xb4\x96\xe3\x97\x2a\x97\x27\x97\x61\x97\xdc\x97\xfb\x98\x5e\x98\x58\x98\x5b\x98\xbc\x99\x45\x99\x49\x9a\x16\x9a\x19\x9b\x0d\x9b\xe8\x9b\xe7\x9b\xd6\x9b\xdb\x9d\x89\x9d\x61\x9d\x72\x9d\x6a\x9d\x6c\x9e\x92\x9e\x97\x9e\x93\x9e\xb4\x52\xf8\x56\xa8\x56\xb7\x56\xb6\x56\xb4\x56\xbc\x58\xe4\x5b\x40\x5b\x43\x5b\x7d\x5b\xf6\x5d\xc9\x61\xf8\x61\xfa\x65\x18\x65\x14\x65\x19\x66\xe6\x67\x27\x6a\xec\x70\x3e\x70\x30\x70\x32\x72\x10\x73\x7b\x74\xcf\x76\x62\x76\x65\x79\x26\x79\x2a\x79\x2c\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x2b\x7a\xc7\x7a\xf6\x7c\x4c\x7c\x43\x7c\x4d\x7c\xef\x7c\xf0\x8f\xae\x7e\x7d\x7e\x7c\x7e\x82\x7f\x4c\x80\x00\x81\xda\x82\x66\x85\xfb\x85\xf9\x86\x11\x85\xfa\x86\x06\x86\x0b\x86\x07\x86\x0a\x88\x14\x88\x15\x89\x64\x89\xba\x89\xf8\x8b\x70\x8b\x6c\x8b\x66\x8b\x6f\x8b\x5f\x8b\x6b\x8d\x0f\x8d\x0d\x8e\x89\x8e\x81\x8e\x85\x8e\x82\x91\xb4\x91\xcb\x94\x18\x94\x03\x93\xfd\x95\xe1\x97\x30\x98\xc4\x99\x52\x99\x51\x99\xa8\x9a\x2b\x9a\x30\x9a\x37\x9a\x35\x9c\x13\x9c\x0d\x9e\x79\x9e\xb5\x9e\xe8\x9f\x2f\x9f\x5f", /* 6780 */ "\x00\x00\x9f\x63\x9f\x61\x51\x37\x51\x38\x56\xc1\x56\xc0\x56\xc2\x59\x14\x5c\x6c\x5d\xcd\x61\xfc\x61\xfe\x65\x1d\x65\x1c\x65\x95\x66\xe9\x6a\xfb\x6b\x04\x6a\xfa\x6b\xb2\x70\x4c\x72\x1b\x72\xa7\x74\xd6\x74\xd4\x76\x69\x77\xd3\x7c\x50\x7e\x8f\x7e\x8c\x7f\xbc\x86\x17\x86\x2d\x86\x1a\x88\x23\x88\x22\x88\x21\x88\x1f\x89\x6a\x89\x6c\x89\xbd\x8b\x74\x8b\x77\x8b\x7d\x8d\x13\x8e\x8a\x8e\x8d\x8e\x8b\x8f\x5f\x8f\xaf\x91\xba\x94\x2e\x94\x33\x94\x35\x94\x3a\x94\x38\x94\x32\x94\x2b\x95\xe2\x97\x38\x97\x39\x97\x32\x97\xff\x98\x67\x98\x65\x99\x57\x9a\x45\x9a\x43\x9a\x40\x9a\x3e\x9a\xcf\x9b\x54\x9b\x51\x9c\x2d\x9c\x25\x9d\xaf\x9d\xb4\x9d\xc2\x9d\xb8\x9e\x9d\x9e\xef\x9f\x19\x9f\x5c\x9f\x66\x9f\x67\x51\x3c\x51\x3b\x56\xc8\x56\xca\x56\xc9\x5b\x7f\x5d\xd4\x5d\xd2\x5f\x4e\x61\xff\x65\x24\x6b\x0a\x6b\x61\x70\x51\x70\x58\x73\x80\x74\xe4\x75\x8a\x76\x6e\x76\x6c\x79\xb3\x7c\x60\x7c\x5f\x80\x7e\x80\x7d\x81\xdf\x89\x72\x89\x6f\x89\xfc\x8b\x80\x8d\x16\x8d\x17\x8e\x91\x8e\x93\x8f\x61\x91\x48\x94\x44\x94\x51\x94\x52\x97\x3d\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x3e\x97\xc3\x97\xc1\x98\x6b\x99\x55\x9a\x55\x9a\x4d\x9a\xd2\x9b\x1a\x9c\x49\x9c\x31\x9c\x3e\x9c\x3b\x9d\xd3\x9d\xd7\x9f\x34\x9f\x6c\x9f\x6a\x9f\x94\x56\xcc\x5d\xd6\x62\x00\x65\x23\x65\x2b\x65\x2a\x66\xec\x6b\x10\x74\xda\x7a\xca\x7c\x64\x7c\x63\x7c\x65\x7e\x93\x7e\x96\x7e\x94\x81\xe2\x86\x38\x86\x3f\x88\x31\x8b\x8a\x90\x90\x90\x8f\x94\x63\x94\x60\x94\x64\x97\x68\x98\x6f\x99\x5c\x9a\x5a\x9a\x5b\x9a\x57\x9a\xd3\x9a\xd4\x9a\xd1\x9c\x54\x9c\x57\x9c\x56\x9d\xe5\x9e\x9f\x9e\xf4\x56\xd1\x58\xe9\x65\x2c", /* 6880 */ "\x00\x00\x70\x5e\x76\x71\x76\x72\x77\xd7\x7f\x50\x7f\x88\x88\x36\x88\x39\x88\x62\x8b\x93\x8b\x92\x8b\x96\x82\x77\x8d\x1b\x91\xc0\x94\x6a\x97\x42\x97\x48\x97\x44\x97\xc6\x98\x70\x9a\x5f\x9b\x22\x9b\x58\x9c\x5f\x9d\xf9\x9d\xfa\x9e\x7c\x9e\x7d\x9f\x07\x9f\x77\x9f\x72\x5e\xf3\x6b\x16\x70\x63\x7c\x6c\x7c\x6e\x88\x3b\x89\xc0\x8e\xa1\x91\xc1\x94\x72\x94\x70\x98\x71\x99\x5e\x9a\xd6\x9b\x23\x9e\xcc\x70\x64\x77\xda\x8b\x9a\x94\x77\x97\xc9\x9a\x62\x9a\x65\x7e\x9c\x8b\x9c\x8e\xaa\x91\xc5\x94\x7d\x94\x7e\x94\x7c\x9c\x77\x9c\x78\x9e\xf7\x8c\x54\x94\x7f\x9e\x1a\x72\x28\x9a\x6a\x9b\x31\x9e\x1b\x9e\x1e\x7c\x72\x64\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x42\x4e\x5c\x51\xf5\x53\x1a\x53\x82\x4e\x07\x4e\x0c\x4e\x47\x4e\x8d\x56\xd7\xfa\x0c\x5c\x6e\x5f\x73\x4e\x0f\x51\x87\x4e\x0e\x4e\x2e\x4e\x93\x4e\xc2\x4e\xc9\x4e\xc8\x51\x98\x52\xfc\x53\x6c\x53\xb9\x57\x20\x59\x03\x59\x2c\x5c\x10\x5d\xff\x65\xe1\x6b\xb3\x6b\xcc\x6c\x14\x72\x3f\x4e\x31\x4e\x3c\x4e\xe8\x4e\xdc\x4e\xe9\x4e\xe1\x4e\xdd\x4e\xda\x52\x0c\x53\x1c\x53\x4c\x57\x22\x57\x23\x59\x17\x59\x2f\x5b\x81\x5b\x84\x5c\x12\x5c\x3b\x5c\x74\x5c\x73\x5e\x04\x5e\x80\x5e\x82\x5f\xc9\x62\x09\x62\x50\x6c\x15", /* 6980 */ "\x00\x00\x6c\x36\x6c\x43\x6c\x3f\x6c\x3b\x72\xae\x72\xb0\x73\x8a\x79\xb8\x80\x8a\x96\x1e\x4f\x0e\x4f\x18\x4f\x2c\x4e\xf5\x4f\x14\x4e\xf1\x4f\x00\x4e\xf7\x4f\x08\x4f\x1d\x4f\x02\x4f\x05\x4f\x22\x4f\x13\x4f\x04\x4e\xf4\x4f\x12\x51\xb1\x52\x13\x52\x09\x52\x10\x52\xa6\x53\x22\x53\x1f\x53\x4d\x53\x8a\x54\x07\x56\xe1\x56\xdf\x57\x2e\x57\x2a\x57\x34\x59\x3c\x59\x80\x59\x7c\x59\x85\x59\x7b\x59\x7e\x59\x77\x59\x7f\x5b\x56\x5c\x15\x5c\x25\x5c\x7c\x5c\x7a\x5c\x7b\x5c\x7e\x5d\xdf\x5e\x75\x5e\x84\x5f\x02\x5f\x1a\x5f\x74\x5f\xd5\x5f\xd4\x5f\xcf\x62\x65\x62\x5c\x62\x5e\x62\x64\x62\x61\x62\x66\x62\x62\x62\x59\x62\x60\x62\x5a\x65\xef\x65\xee\x67\x3e\x67\x39\x67\x38\x67\x3b\x67\x3a\x67\x3f\x67\x3c\x67\x33\x6c\x18\x6c\x46\x6c\x52\x6c\x5c\x6c\x4f\x6c\x4a\x6c\x54\x6c\x4b\x6c\x4c\x70\x71\x72\x5e\x72\xb4\x72\xb5\x73\x8e\x75\x2a\x76\x7f\x7a\x75\x7f\x51\x82\x78\x82\x7c\x82\x80\x82\x7d\x82\x7f\x86\x4d\x89\x7e\x90\x99\x90\x97\x90\x98\x90\x9b\x90\x94\x96\x22\x96\x24\x96\x20\x96\x23\x4f\x56\x4f\x3b\x4f\x62\x4f\x49\x4f\x53\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x64\x4f\x3e\x4f\x67\x4f\x52\x4f\x5f\x4f\x41\x4f\x58\x4f\x2d\x4f\x33\x4f\x3f\x4f\x61\x51\x8f\x51\xb9\x52\x1c\x52\x1e\x52\x21\x52\xad\x52\xae\x53\x09\x53\x63\x53\x72\x53\x8e\x53\x8f\x54\x30\x54\x37\x54\x2a\x54\x54\x54\x45\x54\x19\x54\x1c\x54\x25\x54\x18\x54\x3d\x54\x4f\x54\x41\x54\x28\x54\x24\x54\x47\x56\xee\x56\xe7\x56\xe5\x57\x41\x57\x45\x57\x4c\x57\x49\x57\x4b\x57\x52\x59\x06\x59\x40\x59\xa6\x59\x98\x59\xa0\x59\x97\x59\x8e\x59\xa2\x59\x90\x59\x8f\x59\xa7\x59\xa1\x5b\x8e\x5b\x92\x5c\x28\x5c\x2a", /* 6a80 */ "\x00\x00\x5c\x8d\x5c\x8f\x5c\x88\x5c\x8b\x5c\x89\x5c\x92\x5c\x8a\x5c\x86\x5c\x93\x5c\x95\x5d\xe0\x5e\x0a\x5e\x0e\x5e\x8b\x5e\x89\x5e\x8c\x5e\x88\x5e\x8d\x5f\x05\x5f\x1d\x5f\x78\x5f\x76\x5f\xd2\x5f\xd1\x5f\xd0\x5f\xed\x5f\xe8\x5f\xee\x5f\xf3\x5f\xe1\x5f\xe4\x5f\xe3\x5f\xfa\x5f\xef\x5f\xf7\x5f\xfb\x60\x00\x5f\xf4\x62\x3a\x62\x83\x62\x8c\x62\x8e\x62\x8f\x62\x94\x62\x87\x62\x71\x62\x7b\x62\x7a\x62\x70\x62\x81\x62\x88\x62\x77\x62\x7d\x62\x72\x62\x74\x65\x37\x65\xf0\x65\xf4\x65\xf3\x65\xf2\x65\xf5\x67\x45\x67\x47\x67\x59\x67\x55\x67\x4c\x67\x48\x67\x5d\x67\x4d\x67\x5a\x67\x4b\x6b\xd0\x6c\x19\x6c\x1a\x6c\x78\x6c\x67\x6c\x6b\x6c\x84\x6c\x8b\x6c\x8f\x6c\x71\x6c\x6f\x6c\x69\x6c\x9a\x6c\x6d\x6c\x87\x6c\x95\x6c\x9c\x6c\x66\x6c\x73\x6c\x65\x6c\x7b\x6c\x8e\x70\x74\x70\x7a\x72\x63\x72\xbf\x72\xbd\x72\xc3\x72\xc6\x72\xc1\x72\xba\x72\xc5\x73\x95\x73\x97\x73\x93\x73\x94\x73\x92\x75\x3a\x75\x39\x75\x94\x75\x95\x76\x81\x79\x3d\x80\x34\x80\x95\x80\x99\x80\x90\x80\x92\x80\x9c\x82\x90\x82\x8f\x82\x85\x82\x8e\x82\x91\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x93\x82\x8a\x82\x83\x82\x84\x8c\x78\x8f\xc9\x8f\xbf\x90\x9f\x90\xa1\x90\xa5\x90\x9e\x90\xa7\x90\xa0\x96\x30\x96\x28\x96\x2f\x96\x2d\x4e\x33\x4f\x98\x4f\x7c\x4f\x85\x4f\x7d\x4f\x80\x4f\x87\x4f\x76\x4f\x74\x4f\x89\x4f\x84\x4f\x77\x4f\x4c\x4f\x97\x4f\x6a\x4f\x9a\x4f\x79\x4f\x81\x4f\x78\x4f\x90\x4f\x9c\x4f\x94\x4f\x9e\x4f\x92\x4f\x82\x4f\x95\x4f\x6b\x4f\x6e\x51\x9e\x51\xbc\x51\xbe\x52\x35\x52\x32\x52\x33\x52\x46\x52\x31\x52\xbc\x53\x0a\x53\x0b\x53\x3c\x53\x92\x53\x94\x54\x87\x54\x7f\x54\x81\x54\x91", /* 6b80 */ "\x00\x00\x54\x82\x54\x88\x54\x6b\x54\x7a\x54\x7e\x54\x65\x54\x6c\x54\x74\x54\x66\x54\x8d\x54\x6f\x54\x61\x54\x60\x54\x98\x54\x63\x54\x67\x54\x64\x56\xf7\x56\xf9\x57\x6f\x57\x72\x57\x6d\x57\x6b\x57\x71\x57\x70\x57\x76\x57\x80\x57\x75\x57\x7b\x57\x73\x57\x74\x57\x62\x57\x68\x57\x7d\x59\x0c\x59\x45\x59\xb5\x59\xba\x59\xcf\x59\xce\x59\xb2\x59\xcc\x59\xc1\x59\xb6\x59\xbc\x59\xc3\x59\xd6\x59\xb1\x59\xbd\x59\xc0\x59\xc8\x59\xb4\x59\xc7\x5b\x62\x5b\x65\x5b\x93\x5b\x95\x5c\x44\x5c\x47\x5c\xae\x5c\xa4\x5c\xa0\x5c\xb5\x5c\xaf\x5c\xa8\x5c\xac\x5c\x9f\x5c\xa3\x5c\xad\x5c\xa2\x5c\xaa\x5c\xa7\x5c\x9d\x5c\xa5\x5c\xb6\x5c\xb0\x5c\xa6\x5e\x17\x5e\x14\x5e\x19\x5f\x28\x5f\x22\x5f\x23\x5f\x24\x5f\x54\x5f\x82\x5f\x7e\x5f\x7d\x5f\xde\x5f\xe5\x60\x2d\x60\x26\x60\x19\x60\x32\x60\x0b\x60\x34\x60\x0a\x60\x17\x60\x33\x60\x1a\x60\x1e\x60\x2c\x60\x22\x60\x0d\x60\x10\x60\x2e\x60\x13\x60\x11\x60\x0c\x60\x09\x60\x1c\x62\x14\x62\x3d\x62\xad\x62\xb4\x62\xd1\x62\xbe\x62\xaa\x62\xb6\x62\xca\x62\xae\x62\xb3\x62\xaf\x62\xbb\x62\xa9\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb0\x62\xb8\x65\x3d\x65\xa8\x65\xbb\x66\x09\x65\xfc\x66\x04\x66\x12\x66\x08\x65\xfb\x66\x03\x66\x0b\x66\x0d\x66\x05\x65\xfd\x66\x11\x66\x10\x66\xf6\x67\x0a\x67\x85\x67\x6c\x67\x8e\x67\x92\x67\x76\x67\x7b\x67\x98\x67\x86\x67\x84\x67\x74\x67\x8d\x67\x8c\x67\x7a\x67\x9f\x67\x91\x67\x99\x67\x83\x67\x7d\x67\x81\x67\x78\x67\x79\x67\x94\x6b\x25\x6b\x80\x6b\x7e\x6b\xde\x6c\x1d\x6c\x93\x6c\xec\x6c\xeb\x6c\xee\x6c\xd9\x6c\xb6\x6c\xd4\x6c\xad\x6c\xe7\x6c\xb7\x6c\xd0\x6c\xc2\x6c\xba\x6c\xc3\x6c\xc6\x6c\xed", /* 6c80 */ "\x00\x00\x6c\xf2\x6c\xd2\x6c\xdd\x6c\xb4\x6c\x8a\x6c\x9d\x6c\x80\x6c\xde\x6c\xc0\x6d\x30\x6c\xcd\x6c\xc7\x6c\xb0\x6c\xf9\x6c\xcf\x6c\xe9\x6c\xd1\x70\x94\x70\x98\x70\x85\x70\x93\x70\x86\x70\x84\x70\x91\x70\x96\x70\x82\x70\x9a\x70\x83\x72\x6a\x72\xd6\x72\xcb\x72\xd8\x72\xc9\x72\xdc\x72\xd2\x72\xd4\x72\xda\x72\xcc\x72\xd1\x73\xa4\x73\xa1\x73\xad\x73\xa6\x73\xa2\x73\xa0\x73\xac\x73\x9d\x74\xdd\x74\xe8\x75\x3f\x75\x40\x75\x3e\x75\x8c\x75\x98\x76\xaf\x76\xf3\x76\xf1\x76\xf0\x76\xf5\x77\xf8\x77\xfc\x77\xf9\x77\xfb\x77\xfa\x77\xf7\x79\x42\x79\x3f\x79\xc5\x7a\x78\x7a\x7b\x7a\xfb\x7c\x75\x7c\xfd\x80\x35\x80\x8f\x80\xae\x80\xa3\x80\xb8\x80\xb5\x80\xad\x82\x20\x82\xa0\x82\xc0\x82\xab\x82\x9a\x82\x98\x82\x9b\x82\xb5\x82\xa7\x82\xae\x82\xbc\x82\x9e\x82\xba\x82\xb4\x82\xa8\x82\xa1\x82\xa9\x82\xc2\x82\xa4\x82\xc3\x82\xb6\x82\xa2\x86\x70\x86\x6f\x86\x6d\x86\x6e\x8c\x56\x8f\xd2\x8f\xcb\x8f\xd3\x8f\xcd\x8f\xd6\x8f\xd5\x8f\xd7\x90\xb2\x90\xb4\x90\xaf\x90\xb3\x90\xb0\x96\x39\x96\x3d\x96\x3c\x96\x3a\x96\x43\x4f\xcd\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc5\x4f\xd3\x4f\xb2\x4f\xc9\x4f\xcb\x4f\xc1\x4f\xd4\x4f\xdc\x4f\xd9\x4f\xbb\x4f\xb3\x4f\xdb\x4f\xc7\x4f\xd6\x4f\xba\x4f\xc0\x4f\xb9\x4f\xec\x52\x44\x52\x49\x52\xc0\x52\xc2\x53\x3d\x53\x7c\x53\x97\x53\x96\x53\x99\x53\x98\x54\xba\x54\xa1\x54\xad\x54\xa5\x54\xcf\x54\xc3\x83\x0d\x54\xb7\x54\xae\x54\xd6\x54\xb6\x54\xc5\x54\xc6\x54\xa0\x54\x70\x54\xbc\x54\xa2\x54\xbe\x54\x72\x54\xde\x54\xb0\x57\xb5\x57\x9e\x57\x9f\x57\xa4\x57\x8c\x57\x97\x57\x9d\x57\x9b\x57\x94\x57\x98\x57\x8f\x57\x99\x57\xa5\x57\x9a", /* 6d80 */ "\x00\x00\x57\x95\x58\xf4\x59\x0d\x59\x53\x59\xe1\x59\xde\x59\xee\x5a\x00\x59\xf1\x59\xdd\x59\xfa\x59\xfd\x59\xfc\x59\xf6\x59\xe4\x59\xf2\x59\xf7\x59\xdb\x59\xe9\x59\xf3\x59\xf5\x59\xe0\x59\xfe\x59\xf4\x59\xed\x5b\xa8\x5c\x4c\x5c\xd0\x5c\xd8\x5c\xcc\x5c\xd7\x5c\xcb\x5c\xdb\x5c\xde\x5c\xda\x5c\xc9\x5c\xc7\x5c\xca\x5c\xd6\x5c\xd3\x5c\xd4\x5c\xcf\x5c\xc8\x5c\xc6\x5c\xce\x5c\xdf\x5c\xf8\x5d\xf9\x5e\x21\x5e\x22\x5e\x23\x5e\x20\x5e\x24\x5e\xb0\x5e\xa4\x5e\xa2\x5e\x9b\x5e\xa3\x5e\xa5\x5f\x07\x5f\x2e\x5f\x56\x5f\x86\x60\x37\x60\x39\x60\x54\x60\x72\x60\x5e\x60\x45\x60\x53\x60\x47\x60\x49\x60\x5b\x60\x4c\x60\x40\x60\x42\x60\x5f\x60\x24\x60\x44\x60\x58\x60\x66\x60\x6e\x62\x42\x62\x43\x62\xcf\x63\x0d\x63\x0b\x62\xf5\x63\x0e\x63\x03\x62\xeb\x62\xf9\x63\x0f\x63\x0c\x62\xf8\x62\xf6\x63\x00\x63\x13\x63\x14\x62\xfa\x63\x15\x62\xfb\x62\xf0\x65\x41\x65\x43\x65\xaa\x65\xbf\x66\x36\x66\x21\x66\x32\x66\x35\x66\x1c\x66\x26\x66\x22\x66\x33\x66\x2b\x66\x3a\x66\x1d\x66\x34\x66\x39\x66\x2e\x67\x0f\x67\x10\x67\xc1\x67\xf2\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc8\x67\xba\x67\xdc\x67\xbb\x67\xf8\x67\xd8\x67\xc0\x67\xb7\x67\xc5\x67\xeb\x67\xe4\x67\xdf\x67\xb5\x67\xcd\x67\xb3\x67\xf7\x67\xf6\x67\xee\x67\xe3\x67\xc2\x67\xb9\x67\xce\x67\xe7\x67\xf0\x67\xb2\x67\xfc\x67\xc6\x67\xed\x67\xcc\x67\xae\x67\xe6\x67\xdb\x67\xfa\x67\xc9\x67\xca\x67\xc3\x67\xea\x67\xcb\x6b\x28\x6b\x82\x6b\x84\x6b\xb6\x6b\xd6\x6b\xd8\x6b\xe0\x6c\x20\x6c\x21\x6d\x28\x6d\x34\x6d\x2d\x6d\x1f\x6d\x3c\x6d\x3f\x6d\x12\x6d\x0a\x6c\xda\x6d\x33\x6d\x04\x6d\x19\x6d\x3a\x6d\x1a\x6d\x11\x6d\x00", /* 6e80 */ "\x00\x00\x6d\x1d\x6d\x42\x6d\x01\x6d\x18\x6d\x37\x6d\x03\x6d\x0f\x6d\x40\x6d\x07\x6d\x20\x6d\x2c\x6d\x08\x6d\x22\x6d\x09\x6d\x10\x70\xb7\x70\x9f\x70\xbe\x70\xb1\x70\xb0\x70\xa1\x70\xb4\x70\xb5\x70\xa9\x72\x41\x72\x49\x72\x4a\x72\x6c\x72\x70\x72\x73\x72\x6e\x72\xca\x72\xe4\x72\xe8\x72\xeb\x72\xdf\x72\xea\x72\xe6\x72\xe3\x73\x85\x73\xcc\x73\xc2\x73\xc8\x73\xc5\x73\xb9\x73\xb6\x73\xb5\x73\xb4\x73\xeb\x73\xbf\x73\xc7\x73\xbe\x73\xc3\x73\xc6\x73\xb8\x73\xcb\x74\xec\x74\xee\x75\x2e\x75\x47\x75\x48\x75\xa7\x75\xaa\x76\x79\x76\xc4\x77\x08\x77\x03\x77\x04\x77\x05\x77\x0a\x76\xf7\x76\xfb\x76\xfa\x77\xe7\x77\xe8\x78\x06\x78\x11\x78\x12\x78\x05\x78\x10\x78\x0f\x78\x0e\x78\x09\x78\x03\x78\x13\x79\x4a\x79\x4c\x79\x4b\x79\x45\x79\x44\x79\xd5\x79\xcd\x79\xcf\x79\xd6\x79\xce\x7a\x80\x7a\x7e\x7a\xd1\x7b\x00\x7b\x01\x7c\x7a\x7c\x78\x7c\x79\x7c\x7f\x7c\x80\x7c\x81\x7d\x03\x7d\x08\x7d\x01\x7f\x58\x7f\x91\x7f\x8d\x7f\xbe\x80\x07\x80\x0e\x80\x0f\x80\x14\x80\x37\x80\xd8\x80\xc7\x80\xe0\x80\xd1\x80\xc8\x80\xc2\x80\xd0\x00\x00\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc5\x80\xe3\x80\xd9\x80\xdc\x80\xca\x80\xd5\x80\xc9\x80\xcf\x80\xd7\x80\xe6\x80\xcd\x81\xff\x82\x21\x82\x94\x82\xd9\x82\xfe\x82\xf9\x83\x07\x82\xe8\x83\x00\x82\xd5\x83\x3a\x82\xeb\x82\xd6\x82\xf4\x82\xec\x82\xe1\x82\xf2\x82\xf5\x83\x0c\x82\xfb\x82\xf6\x82\xf0\x82\xea\x82\xe4\x82\xe0\x82\xfa\x82\xf3\x82\xed\x86\x77\x86\x74\x86\x7c\x86\x73\x88\x41\x88\x4e\x88\x67\x88\x6a\x88\x69\x89\xd3\x8a\x04\x8a\x07\x8d\x72\x8f\xe3\x8f\xe1\x8f\xee\x8f\xe0\x90\xf1\x90\xbd\x90\xbf\x90\xd5\x90\xc5\x90\xbe\x90\xc7", /* 6f80 */ "\x00\x00\x90\xcb\x90\xc8\x91\xd4\x91\xd3\x96\x54\x96\x4f\x96\x51\x96\x53\x96\x4a\x96\x4e\x50\x1e\x50\x05\x50\x07\x50\x13\x50\x22\x50\x30\x50\x1b\x4f\xf5\x4f\xf4\x50\x33\x50\x37\x50\x2c\x4f\xf6\x4f\xf7\x50\x17\x50\x1c\x50\x20\x50\x27\x50\x35\x50\x2f\x50\x31\x50\x0e\x51\x5a\x51\x94\x51\x93\x51\xca\x51\xc4\x51\xc5\x51\xc8\x51\xce\x52\x61\x52\x5a\x52\x52\x52\x5e\x52\x5f\x52\x55\x52\x62\x52\xcd\x53\x0e\x53\x9e\x55\x26\x54\xe2\x55\x17\x55\x12\x54\xe7\x54\xf3\x54\xe4\x55\x1a\x54\xff\x55\x04\x55\x08\x54\xeb\x55\x11\x55\x05\x54\xf1\x55\x0a\x54\xfb\x54\xf7\x54\xf8\x54\xe0\x55\x0e\x55\x03\x55\x0b\x57\x01\x57\x02\x57\xcc\x58\x32\x57\xd5\x57\xd2\x57\xba\x57\xc6\x57\xbd\x57\xbc\x57\xb8\x57\xb6\x57\xbf\x57\xc7\x57\xd0\x57\xb9\x57\xc1\x59\x0e\x59\x4a\x5a\x19\x5a\x16\x5a\x2d\x5a\x2e\x5a\x15\x5a\x0f\x5a\x17\x5a\x0a\x5a\x1e\x5a\x33\x5b\x6c\x5b\xa7\x5b\xad\x5b\xac\x5c\x03\x5c\x56\x5c\x54\x5c\xec\x5c\xff\x5c\xee\x5c\xf1\x5c\xf7\x5d\x00\x5c\xf9\x5e\x29\x5e\x28\x5e\xa8\x5e\xae\x5e\xaa\x5e\xac\x5f\x33\x5f\x30\x5f\x67\x00\x00\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\xa2\x60\x88\x60\x80\x60\x92\x60\x81\x60\x9d\x60\x83\x60\x95\x60\x9b\x60\x97\x60\x87\x60\x9c\x60\x8e\x62\x19\x62\x46\x62\xf2\x63\x10\x63\x56\x63\x2c\x63\x44\x63\x45\x63\x36\x63\x43\x63\xe4\x63\x39\x63\x4b\x63\x4a\x63\x3c\x63\x29\x63\x41\x63\x34\x63\x58\x63\x54\x63\x59\x63\x2d\x63\x47\x63\x33\x63\x5a\x63\x51\x63\x38\x63\x57\x63\x40\x63\x48\x65\x4a\x65\x46\x65\xc6\x65\xc3\x65\xc4\x65\xc2\x66\x4a\x66\x5f\x66\x47\x66\x51\x67\x12\x67\x13\x68\x1f\x68\x1a\x68\x49\x68\x32", /* 7080 */ "\x00\x00\x68\x33\x68\x3b\x68\x4b\x68\x4f\x68\x16\x68\x31\x68\x1c\x68\x35\x68\x2b\x68\x2d\x68\x2f\x68\x4e\x68\x44\x68\x34\x68\x1d\x68\x12\x68\x14\x68\x26\x68\x28\x68\x2e\x68\x4d\x68\x3a\x68\x25\x68\x20\x6b\x2c\x6b\x2f\x6b\x2d\x6b\x31\x6b\x34\x6b\x6d\x80\x82\x6b\x88\x6b\xe6\x6b\xe4\x6b\xe8\x6b\xe3\x6b\xe2\x6b\xe7\x6c\x25\x6d\x7a\x6d\x63\x6d\x64\x6d\x76\x6d\x0d\x6d\x61\x6d\x92\x6d\x58\x6d\x62\x6d\x6d\x6d\x6f\x6d\x91\x6d\x8d\x6d\xef\x6d\x7f\x6d\x86\x6d\x5e\x6d\x67\x6d\x60\x6d\x97\x6d\x70\x6d\x7c\x6d\x5f\x6d\x82\x6d\x98\x6d\x2f\x6d\x68\x6d\x8b\x6d\x7e\x6d\x80\x6d\x84\x6d\x16\x6d\x83\x6d\x7b\x6d\x7d\x6d\x75\x6d\x90\x70\xdc\x70\xd3\x70\xd1\x70\xdd\x70\xcb\x7f\x39\x70\xe2\x70\xd7\x70\xd2\x70\xde\x70\xe0\x70\xd4\x70\xcd\x70\xc5\x70\xc6\x70\xc7\x70\xda\x70\xce\x70\xe1\x72\x42\x72\x78\x72\x77\x72\x76\x73\x00\x72\xfa\x72\xf4\x72\xfe\x72\xf6\x72\xf3\x72\xfb\x73\x01\x73\xd3\x73\xd9\x73\xe5\x73\xd6\x73\xbc\x73\xe7\x73\xe3\x73\xe9\x73\xdc\x73\xd2\x73\xdb\x73\xd4\x73\xdd\x73\xda\x73\xd7\x73\xd8\x73\xe8\x74\xde\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xdf\x74\xf4\x74\xf5\x75\x21\x75\x5b\x75\x5f\x75\xb0\x75\xc1\x75\xbb\x75\xc4\x75\xc0\x75\xbf\x75\xb6\x75\xba\x76\x8a\x76\xc9\x77\x1d\x77\x1b\x77\x10\x77\x13\x77\x12\x77\x23\x77\x11\x77\x15\x77\x19\x77\x1a\x77\x22\x77\x27\x78\x23\x78\x2c\x78\x22\x78\x35\x78\x2f\x78\x28\x78\x2e\x78\x2b\x78\x21\x78\x29\x78\x33\x78\x2a\x78\x31\x79\x54\x79\x5b\x79\x4f\x79\x5c\x79\x53\x79\x52\x79\x51\x79\xeb\x79\xec\x79\xe0\x79\xee\x79\xed\x79\xea\x79\xdc\x79\xde\x79\xdd\x7a\x86\x7a\x89\x7a\x85\x7a\x8b\x7a\x8c\x7a\x8a", /* 7180 */ "\x00\x00\x7a\x87\x7a\xd8\x7b\x10\x7b\x04\x7b\x13\x7b\x05\x7b\x0f\x7b\x08\x7b\x0a\x7b\x0e\x7b\x09\x7b\x12\x7c\x84\x7c\x91\x7c\x8a\x7c\x8c\x7c\x88\x7c\x8d\x7c\x85\x7d\x1e\x7d\x1d\x7d\x11\x7d\x0e\x7d\x18\x7d\x16\x7d\x13\x7d\x1f\x7d\x12\x7d\x0f\x7d\x0c\x7f\x5c\x7f\x61\x7f\x5e\x7f\x60\x7f\x5d\x7f\x5b\x7f\x96\x7f\x92\x7f\xc3\x7f\xc2\x7f\xc0\x80\x16\x80\x3e\x80\x39\x80\xfa\x80\xf2\x80\xf9\x80\xf5\x81\x01\x80\xfb\x81\x00\x82\x01\x82\x2f\x82\x25\x83\x33\x83\x2d\x83\x44\x83\x19\x83\x51\x83\x25\x83\x56\x83\x3f\x83\x41\x83\x26\x83\x1c\x83\x22\x83\x42\x83\x4e\x83\x1b\x83\x2a\x83\x08\x83\x3c\x83\x4d\x83\x16\x83\x24\x83\x20\x83\x37\x83\x2f\x83\x29\x83\x47\x83\x45\x83\x4c\x83\x53\x83\x1e\x83\x2c\x83\x4b\x83\x27\x83\x48\x86\x53\x86\x52\x86\xa2\x86\xa8\x86\x96\x86\x8d\x86\x91\x86\x9e\x86\x87\x86\x97\x86\x86\x86\x8b\x86\x9a\x86\x85\x86\xa5\x86\x99\x86\xa1\x86\xa7\x86\x95\x86\x98\x86\x8e\x86\x9d\x86\x90\x86\x94\x88\x43\x88\x44\x88\x6d\x88\x75\x88\x76\x88\x72\x88\x80\x88\x71\x88\x7f\x88\x6f\x88\x83\x88\x7e\x88\x74\x00\x00\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x7c\x8a\x12\x8c\x47\x8c\x57\x8c\x7b\x8c\xa4\x8c\xa3\x8d\x76\x8d\x78\x8d\xb5\x8d\xb7\x8d\xb6\x8e\xd1\x8e\xd3\x8f\xfe\x8f\xf5\x90\x02\x8f\xff\x8f\xfb\x90\x04\x8f\xfc\x8f\xf6\x90\xd6\x90\xe0\x90\xd9\x90\xda\x90\xe3\x90\xdf\x90\xe5\x90\xd8\x90\xdb\x90\xd7\x90\xdc\x90\xe4\x91\x50\x91\x4e\x91\x4f\x91\xd5\x91\xe2\x91\xda\x96\x5c\x96\x5f\x96\xbc\x98\xe3\x9a\xdf\x9b\x2f\x4e\x7f\x50\x70\x50\x6a\x50\x61\x50\x5e\x50\x60\x50\x53\x50\x4b\x50\x5d\x50\x72\x50\x48\x50\x4d\x50\x41\x50\x5b\x50\x4a\x50\x62\x50\x15", /* 7280 */ "\x00\x00\x50\x45\x50\x5f\x50\x69\x50\x6b\x50\x63\x50\x64\x50\x46\x50\x40\x50\x6e\x50\x73\x50\x57\x50\x51\x51\xd0\x52\x6b\x52\x6d\x52\x6c\x52\x6e\x52\xd6\x52\xd3\x53\x2d\x53\x9c\x55\x75\x55\x76\x55\x3c\x55\x4d\x55\x50\x55\x34\x55\x2a\x55\x51\x55\x62\x55\x36\x55\x35\x55\x30\x55\x52\x55\x45\x55\x0c\x55\x32\x55\x65\x55\x4e\x55\x39\x55\x48\x55\x2d\x55\x3b\x55\x40\x55\x4b\x57\x0a\x57\x07\x57\xfb\x58\x14\x57\xe2\x57\xf6\x57\xdc\x57\xf4\x58\x00\x57\xed\x57\xfd\x58\x08\x57\xf8\x58\x0b\x57\xf3\x57\xcf\x58\x07\x57\xee\x57\xe3\x57\xf2\x57\xe5\x57\xec\x57\xe1\x58\x0e\x57\xfc\x58\x10\x57\xe7\x58\x01\x58\x0c\x57\xf1\x57\xe9\x57\xf0\x58\x0d\x58\x04\x59\x5c\x5a\x60\x5a\x58\x5a\x55\x5a\x67\x5a\x5e\x5a\x38\x5a\x35\x5a\x6d\x5a\x50\x5a\x5f\x5a\x65\x5a\x6c\x5a\x53\x5a\x64\x5a\x57\x5a\x43\x5a\x5d\x5a\x52\x5a\x44\x5a\x5b\x5a\x48\x5a\x8e\x5a\x3e\x5a\x4d\x5a\x39\x5a\x4c\x5a\x70\x5a\x69\x5a\x47\x5a\x51\x5a\x56\x5a\x42\x5a\x5c\x5b\x72\x5b\x6e\x5b\xc1\x5b\xc0\x5c\x59\x5d\x1e\x5d\x0b\x5d\x1d\x5d\x1a\x5d\x20\x5d\x0c\x5d\x28\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x0d\x5d\x26\x5d\x25\x5d\x0f\x5d\x30\x5d\x12\x5d\x23\x5d\x1f\x5d\x2e\x5e\x3e\x5e\x34\x5e\xb1\x5e\xb4\x5e\xb9\x5e\xb2\x5e\xb3\x5f\x36\x5f\x38\x5f\x9b\x5f\x96\x5f\x9f\x60\x8a\x60\x90\x60\x86\x60\xbe\x60\xb0\x60\xba\x60\xd3\x60\xd4\x60\xcf\x60\xe4\x60\xd9\x60\xdd\x60\xc8\x60\xb1\x60\xdb\x60\xb7\x60\xca\x60\xbf\x60\xc3\x60\xcd\x60\xc0\x63\x32\x63\x65\x63\x8a\x63\x82\x63\x7d\x63\xbd\x63\x9e\x63\xad\x63\x9d\x63\x97\x63\xab\x63\x8e\x63\x6f\x63\x87\x63\x90\x63\x6e\x63\xaf\x63\x75\x63\x9c\x63\x6d\x63\xae", /* 7380 */ "\x00\x00\x63\x7c\x63\xa4\x63\x3b\x63\x9f\x63\x78\x63\x85\x63\x81\x63\x91\x63\x8d\x63\x70\x65\x53\x65\xcd\x66\x65\x66\x61\x66\x5b\x66\x59\x66\x5c\x66\x62\x67\x18\x68\x79\x68\x87\x68\x90\x68\x9c\x68\x6d\x68\x6e\x68\xae\x68\xab\x69\x56\x68\x6f\x68\xa3\x68\xac\x68\xa9\x68\x75\x68\x74\x68\xb2\x68\x8f\x68\x77\x68\x92\x68\x7c\x68\x6b\x68\x72\x68\xaa\x68\x80\x68\x71\x68\x7e\x68\x9b\x68\x96\x68\x8b\x68\xa0\x68\x89\x68\xa4\x68\x78\x68\x7b\x68\x91\x68\x8c\x68\x8a\x68\x7d\x6b\x36\x6b\x33\x6b\x37\x6b\x38\x6b\x91\x6b\x8f\x6b\x8d\x6b\x8e\x6b\x8c\x6c\x2a\x6d\xc0\x6d\xab\x6d\xb4\x6d\xb3\x6e\x74\x6d\xac\x6d\xe9\x6d\xe2\x6d\xb7\x6d\xf6\x6d\xd4\x6e\x00\x6d\xc8\x6d\xe0\x6d\xdf\x6d\xd6\x6d\xbe\x6d\xe5\x6d\xdc\x6d\xdd\x6d\xdb\x6d\xf4\x6d\xca\x6d\xbd\x6d\xed\x6d\xf0\x6d\xba\x6d\xd5\x6d\xc2\x6d\xcf\x6d\xc9\x6d\xd0\x6d\xf2\x6d\xd3\x6d\xfd\x6d\xd7\x6d\xcd\x6d\xe3\x6d\xbb\x70\xfa\x71\x0d\x70\xf7\x71\x17\x70\xf4\x71\x0c\x70\xf0\x71\x04\x70\xf3\x71\x10\x70\xfc\x70\xff\x71\x06\x71\x13\x71\x00\x70\xf8\x70\xf6\x71\x0b\x71\x02\x00\x00\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x0e\x72\x7e\x72\x7b\x72\x7c\x72\x7f\x73\x1d\x73\x17\x73\x07\x73\x11\x73\x18\x73\x0a\x73\x08\x72\xff\x73\x0f\x73\x1e\x73\x88\x73\xf6\x73\xf8\x73\xf5\x74\x04\x74\x01\x73\xfd\x74\x07\x74\x00\x73\xfa\x73\xfc\x73\xff\x74\x0c\x74\x0b\x73\xf4\x74\x08\x75\x64\x75\x63\x75\xce\x75\xd2\x75\xcf\x75\xcb\x75\xcc\x75\xd1\x75\xd0\x76\x8f\x76\x89\x76\xd3\x77\x39\x77\x2f\x77\x2d\x77\x31\x77\x32\x77\x34\x77\x33\x77\x3d\x77\x25\x77\x3b\x77\x35\x78\x48\x78\x52\x78\x49\x78\x4d\x78\x4a\x78\x4c\x78\x26\x78\x45\x78\x50", /* 7480 */ "\x00\x00\x79\x64\x79\x67\x79\x69\x79\x6a\x79\x63\x79\x6b\x79\x61\x79\xbb\x79\xfa\x79\xf8\x79\xf6\x79\xf7\x7a\x8f\x7a\x94\x7a\x90\x7b\x35\x7b\x47\x7b\x34\x7b\x25\x7b\x30\x7b\x22\x7b\x24\x7b\x33\x7b\x18\x7b\x2a\x7b\x1d\x7b\x31\x7b\x2b\x7b\x2d\x7b\x2f\x7b\x32\x7b\x38\x7b\x1a\x7b\x23\x7c\x94\x7c\x98\x7c\x96\x7c\xa3\x7d\x35\x7d\x3d\x7d\x38\x7d\x36\x7d\x3a\x7d\x45\x7d\x2c\x7d\x29\x7d\x41\x7d\x47\x7d\x3e\x7d\x3f\x7d\x4a\x7d\x3b\x7d\x28\x7f\x63\x7f\x95\x7f\x9c\x7f\x9d\x7f\x9b\x7f\xca\x7f\xcb\x7f\xcd\x7f\xd0\x7f\xd1\x7f\xc7\x7f\xcf\x7f\xc9\x80\x1f\x80\x1e\x80\x1b\x80\x47\x80\x43\x80\x48\x81\x18\x81\x25\x81\x19\x81\x1b\x81\x2d\x81\x1f\x81\x2c\x81\x1e\x81\x21\x81\x15\x81\x27\x81\x1d\x81\x22\x82\x11\x82\x38\x82\x33\x82\x3a\x82\x34\x82\x32\x82\x74\x83\x90\x83\xa3\x83\xa8\x83\x8d\x83\x7a\x83\x73\x83\xa4\x83\x74\x83\x8f\x83\x81\x83\x95\x83\x99\x83\x75\x83\x94\x83\xa9\x83\x7d\x83\x83\x83\x8c\x83\x9d\x83\x9b\x83\xaa\x83\x8b\x83\x7e\x83\xa5\x83\xaf\x83\x88\x83\x97\x83\xb0\x83\x7f\x83\xa6\x83\x87\x83\xae\x83\x76\x00\x00\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x9a\x86\x59\x86\x56\x86\xbf\x86\xb7\x86\xc2\x86\xc1\x86\xc5\x86\xba\x86\xb0\x86\xc8\x86\xb9\x86\xb3\x86\xb8\x86\xcc\x86\xb4\x86\xbb\x86\xbc\x86\xc3\x86\xbd\x86\xbe\x88\x52\x88\x89\x88\x95\x88\xa8\x88\xa2\x88\xaa\x88\x9a\x88\x91\x88\xa1\x88\x9f\x88\x98\x88\xa7\x88\x99\x88\x9b\x88\x97\x88\xa4\x88\xac\x88\x8c\x88\x93\x88\x8e\x89\x82\x89\xd6\x89\xd9\x89\xd5\x8a\x30\x8a\x27\x8a\x2c\x8a\x1e\x8c\x39\x8c\x3b\x8c\x5c\x8c\x5d\x8c\x7d\x8c\xa5\x8d\x7d\x8d\x7b\x8d\x79\x8d\xbc\x8d\xc2\x8d\xb9\x8d\xbf\x8d\xc1", /* 7580 */ "\x00\x00\x8e\xd8\x8e\xde\x8e\xdd\x8e\xdc\x8e\xd7\x8e\xe0\x8e\xe1\x90\x24\x90\x0b\x90\x11\x90\x1c\x90\x0c\x90\x21\x90\xef\x90\xea\x90\xf0\x90\xf4\x90\xf2\x90\xf3\x90\xd4\x90\xeb\x90\xec\x90\xe9\x91\x56\x91\x58\x91\x5a\x91\x53\x91\x55\x91\xec\x91\xf4\x91\xf1\x91\xf3\x91\xf8\x91\xe4\x91\xf9\x91\xea\x91\xeb\x91\xf7\x91\xe8\x91\xee\x95\x7a\x95\x86\x95\x88\x96\x7c\x96\x6d\x96\x6b\x96\x71\x96\x6f\x96\xbf\x97\x6a\x98\x04\x98\xe5\x99\x97\x50\x9b\x50\x95\x50\x94\x50\x9e\x50\x8b\x50\xa3\x50\x83\x50\x8c\x50\x8e\x50\x9d\x50\x68\x50\x9c\x50\x92\x50\x82\x50\x87\x51\x5f\x51\xd4\x53\x12\x53\x11\x53\xa4\x53\xa7\x55\x91\x55\xa8\x55\xa5\x55\xad\x55\x77\x56\x45\x55\xa2\x55\x93\x55\x88\x55\x8f\x55\xb5\x55\x81\x55\xa3\x55\x92\x55\xa4\x55\x7d\x55\x8c\x55\xa6\x55\x7f\x55\x95\x55\xa1\x55\x8e\x57\x0c\x58\x29\x58\x37\x58\x19\x58\x1e\x58\x27\x58\x23\x58\x28\x57\xf5\x58\x48\x58\x25\x58\x1c\x58\x1b\x58\x33\x58\x3f\x58\x36\x58\x2e\x58\x39\x58\x38\x58\x2d\x58\x2c\x58\x3b\x59\x61\x5a\xaf\x5a\x94\x5a\x9f\x5a\x7a\x5a\xa2\x5a\x9e\x00\x00\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x78\x5a\xa6\x5a\x7c\x5a\xa5\x5a\xac\x5a\x95\x5a\xae\x5a\x37\x5a\x84\x5a\x8a\x5a\x97\x5a\x83\x5a\x8b\x5a\xa9\x5a\x7b\x5a\x7d\x5a\x8c\x5a\x9c\x5a\x8f\x5a\x93\x5a\x9d\x5b\xea\x5b\xcd\x5b\xcb\x5b\xd4\x5b\xd1\x5b\xca\x5b\xce\x5c\x0c\x5c\x30\x5d\x37\x5d\x43\x5d\x6b\x5d\x41\x5d\x4b\x5d\x3f\x5d\x35\x5d\x51\x5d\x4e\x5d\x55\x5d\x33\x5d\x3a\x5d\x52\x5d\x3d\x5d\x31\x5d\x59\x5d\x42\x5d\x39\x5d\x49\x5d\x38\x5d\x3c\x5d\x32\x5d\x36\x5d\x40\x5d\x45\x5e\x44\x5e\x41\x5f\x58\x5f\xa6\x5f\xa5\x5f\xab\x60\xc9\x60\xb9", /* 7680 */ "\x00\x00\x60\xcc\x60\xe2\x60\xce\x60\xc4\x61\x14\x60\xf2\x61\x0a\x61\x16\x61\x05\x60\xf5\x61\x13\x60\xf8\x60\xfc\x60\xfe\x60\xc1\x61\x03\x61\x18\x61\x1d\x61\x10\x60\xff\x61\x04\x61\x0b\x62\x4a\x63\x94\x63\xb1\x63\xb0\x63\xce\x63\xe5\x63\xe8\x63\xef\x63\xc3\x64\x9d\x63\xf3\x63\xca\x63\xe0\x63\xf6\x63\xd5\x63\xf2\x63\xf5\x64\x61\x63\xdf\x63\xbe\x63\xdd\x63\xdc\x63\xc4\x63\xd8\x63\xd3\x63\xc2\x63\xc7\x63\xcc\x63\xcb\x63\xc8\x63\xf0\x63\xd7\x63\xd9\x65\x32\x65\x67\x65\x6a\x65\x64\x65\x5c\x65\x68\x65\x65\x65\x8c\x65\x9d\x65\x9e\x65\xae\x65\xd0\x65\xd2\x66\x7c\x66\x6c\x66\x7b\x66\x80\x66\x71\x66\x79\x66\x6a\x66\x72\x67\x01\x69\x0c\x68\xd3\x69\x04\x68\xdc\x69\x2a\x68\xec\x68\xea\x68\xf1\x69\x0f\x68\xd6\x68\xf7\x68\xeb\x68\xe4\x68\xf6\x69\x13\x69\x10\x68\xf3\x68\xe1\x69\x07\x68\xcc\x69\x08\x69\x70\x68\xb4\x69\x11\x68\xef\x68\xc6\x69\x14\x68\xf8\x68\xd0\x68\xfd\x68\xfc\x68\xe8\x69\x0b\x69\x0a\x69\x17\x68\xce\x68\xc8\x68\xdd\x68\xde\x68\xe6\x68\xf4\x68\xd1\x69\x06\x68\xd4\x68\xe9\x69\x15\x69\x25\x68\xc7\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x39\x6b\x3b\x6b\x3f\x6b\x3c\x6b\x94\x6b\x97\x6b\x99\x6b\x95\x6b\xbd\x6b\xf0\x6b\xf2\x6b\xf3\x6c\x30\x6d\xfc\x6e\x46\x6e\x47\x6e\x1f\x6e\x49\x6e\x88\x6e\x3c\x6e\x3d\x6e\x45\x6e\x62\x6e\x2b\x6e\x3f\x6e\x41\x6e\x5d\x6e\x73\x6e\x1c\x6e\x33\x6e\x4b\x6e\x40\x6e\x51\x6e\x3b\x6e\x03\x6e\x2e\x6e\x5e\x6e\x68\x6e\x5c\x6e\x61\x6e\x31\x6e\x28\x6e\x60\x6e\x71\x6e\x6b\x6e\x39\x6e\x22\x6e\x30\x6e\x53\x6e\x65\x6e\x27\x6e\x78\x6e\x64\x6e\x77\x6e\x55\x6e\x79\x6e\x52\x6e\x66\x6e\x35\x6e\x36\x6e\x5a\x71\x20\x71\x1e", /* 7780 */ "\x00\x00\x71\x2f\x70\xfb\x71\x2e\x71\x31\x71\x23\x71\x25\x71\x22\x71\x32\x71\x1f\x71\x28\x71\x3a\x71\x1b\x72\x4b\x72\x5a\x72\x88\x72\x89\x72\x86\x72\x85\x72\x8b\x73\x12\x73\x0b\x73\x30\x73\x22\x73\x31\x73\x33\x73\x27\x73\x32\x73\x2d\x73\x26\x73\x23\x73\x35\x73\x0c\x74\x2e\x74\x2c\x74\x30\x74\x2b\x74\x16\x74\x1a\x74\x21\x74\x2d\x74\x31\x74\x24\x74\x23\x74\x1d\x74\x29\x74\x20\x74\x32\x74\xfb\x75\x2f\x75\x6f\x75\x6c\x75\xe7\x75\xda\x75\xe1\x75\xe6\x75\xdd\x75\xdf\x75\xe4\x75\xd7\x76\x95\x76\x92\x76\xda\x77\x46\x77\x47\x77\x44\x77\x4d\x77\x45\x77\x4a\x77\x4e\x77\x4b\x77\x4c\x77\xde\x77\xec\x78\x60\x78\x64\x78\x65\x78\x5c\x78\x6d\x78\x71\x78\x6a\x78\x6e\x78\x70\x78\x69\x78\x68\x78\x5e\x78\x62\x79\x74\x79\x73\x79\x72\x79\x70\x7a\x02\x7a\x0a\x7a\x03\x7a\x0c\x7a\x04\x7a\x99\x7a\xe6\x7a\xe4\x7b\x4a\x7b\x3b\x7b\x44\x7b\x48\x7b\x4c\x7b\x4e\x7b\x40\x7b\x58\x7b\x45\x7c\xa2\x7c\x9e\x7c\xa8\x7c\xa1\x7d\x58\x7d\x6f\x7d\x63\x7d\x53\x7d\x56\x7d\x67\x7d\x6a\x7d\x4f\x7d\x6d\x7d\x5c\x7d\x6b\x7d\x52\x7d\x54\x7d\x69\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x51\x7d\x5f\x7d\x4e\x7f\x3e\x7f\x3f\x7f\x65\x7f\x66\x7f\xa2\x7f\xa0\x7f\xa1\x7f\xd7\x80\x51\x80\x4f\x80\x50\x80\xfe\x80\xd4\x81\x43\x81\x4a\x81\x52\x81\x4f\x81\x47\x81\x3d\x81\x4d\x81\x3a\x81\xe6\x81\xee\x81\xf7\x81\xf8\x81\xf9\x82\x04\x82\x3c\x82\x3d\x82\x3f\x82\x75\x83\x3b\x83\xcf\x83\xf9\x84\x23\x83\xc0\x83\xe8\x84\x12\x83\xe7\x83\xe4\x83\xfc\x83\xf6\x84\x10\x83\xc6\x83\xc8\x83\xeb\x83\xe3\x83\xbf\x84\x01\x83\xdd\x83\xe5\x83\xd8\x83\xff\x83\xe1\x83\xcb\x83\xce\x83\xd6\x83\xf5\x83\xc9\x84\x09", /* 7880 */ "\x00\x00\x84\x0f\x83\xde\x84\x11\x84\x06\x83\xc2\x83\xf3\x83\xd5\x83\xfa\x83\xc7\x83\xd1\x83\xea\x84\x13\x83\xc3\x83\xec\x83\xee\x83\xc4\x83\xfb\x83\xd7\x83\xe2\x84\x1b\x83\xdb\x83\xfe\x86\xd8\x86\xe2\x86\xe6\x86\xd3\x86\xe3\x86\xda\x86\xea\x86\xdd\x86\xeb\x86\xdc\x86\xec\x86\xe9\x86\xd7\x86\xe8\x86\xd1\x88\x48\x88\x56\x88\x55\x88\xba\x88\xd7\x88\xb9\x88\xb8\x88\xc0\x88\xbe\x88\xb6\x88\xbc\x88\xb7\x88\xbd\x88\xb2\x89\x01\x88\xc9\x89\x95\x89\x98\x89\x97\x89\xdd\x89\xda\x89\xdb\x8a\x4e\x8a\x4d\x8a\x39\x8a\x59\x8a\x40\x8a\x57\x8a\x58\x8a\x44\x8a\x45\x8a\x52\x8a\x48\x8a\x51\x8a\x4a\x8a\x4c\x8a\x4f\x8c\x5f\x8c\x81\x8c\x80\x8c\xba\x8c\xbe\x8c\xb0\x8c\xb9\x8c\xb5\x8d\x84\x8d\x80\x8d\x89\x8d\xd8\x8d\xd3\x8d\xcd\x8d\xc7\x8d\xd6\x8d\xdc\x8d\xcf\x8d\xd5\x8d\xd9\x8d\xc8\x8d\xd7\x8d\xc5\x8e\xef\x8e\xf7\x8e\xfa\x8e\xf9\x8e\xe6\x8e\xee\x8e\xe5\x8e\xf5\x8e\xe7\x8e\xe8\x8e\xf6\x8e\xeb\x8e\xf1\x8e\xec\x8e\xf4\x8e\xe9\x90\x2d\x90\x34\x90\x2f\x91\x06\x91\x2c\x91\x04\x90\xff\x90\xfc\x91\x08\x90\xf9\x90\xfb\x91\x01\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x00\x91\x07\x91\x05\x91\x03\x91\x61\x91\x64\x91\x5f\x91\x62\x91\x60\x92\x01\x92\x0a\x92\x25\x92\x03\x92\x1a\x92\x26\x92\x0f\x92\x0c\x92\x00\x92\x12\x91\xff\x91\xfd\x92\x06\x92\x04\x92\x27\x92\x02\x92\x1c\x92\x24\x92\x19\x92\x17\x92\x05\x92\x16\x95\x7b\x95\x8d\x95\x8c\x95\x90\x96\x87\x96\x7e\x96\x88\x96\x89\x96\x83\x96\x80\x96\xc2\x96\xc8\x96\xc3\x96\xf1\x96\xf0\x97\x6c\x97\x70\x97\x6e\x98\x07\x98\xa9\x98\xeb\x9c\xe6\x9e\xf9\x4e\x83\x4e\x84\x4e\xb6\x50\xbd\x50\xbf\x50\xc6\x50\xae\x50\xc4\x50\xca", /* 7980 */ "\x00\x00\x50\xb4\x50\xc8\x50\xc2\x50\xb0\x50\xc1\x50\xba\x50\xb1\x50\xcb\x50\xc9\x50\xb6\x50\xb8\x51\xd7\x52\x7a\x52\x78\x52\x7b\x52\x7c\x55\xc3\x55\xdb\x55\xcc\x55\xd0\x55\xcb\x55\xca\x55\xdd\x55\xc0\x55\xd4\x55\xc4\x55\xe9\x55\xbf\x55\xd2\x55\x8d\x55\xcf\x55\xd5\x55\xe2\x55\xd6\x55\xc8\x55\xf2\x55\xcd\x55\xd9\x55\xc2\x57\x14\x58\x53\x58\x68\x58\x64\x58\x4f\x58\x4d\x58\x49\x58\x6f\x58\x55\x58\x4e\x58\x5d\x58\x59\x58\x65\x58\x5b\x58\x3d\x58\x63\x58\x71\x58\xfc\x5a\xc7\x5a\xc4\x5a\xcb\x5a\xba\x5a\xb8\x5a\xb1\x5a\xb5\x5a\xb0\x5a\xbf\x5a\xc8\x5a\xbb\x5a\xc6\x5a\xb7\x5a\xc0\x5a\xca\x5a\xb4\x5a\xb6\x5a\xcd\x5a\xb9\x5a\x90\x5b\xd6\x5b\xd8\x5b\xd9\x5c\x1f\x5c\x33\x5d\x71\x5d\x63\x5d\x4a\x5d\x65\x5d\x72\x5d\x6c\x5d\x5e\x5d\x68\x5d\x67\x5d\x62\x5d\xf0\x5e\x4f\x5e\x4e\x5e\x4a\x5e\x4d\x5e\x4b\x5e\xc5\x5e\xcc\x5e\xc6\x5e\xcb\x5e\xc7\x5f\x40\x5f\xaf\x5f\xad\x60\xf7\x61\x49\x61\x4a\x61\x2b\x61\x45\x61\x36\x61\x32\x61\x2e\x61\x46\x61\x2f\x61\x4f\x61\x29\x61\x40\x62\x20\x91\x68\x62\x23\x62\x25\x62\x24\x63\xc5\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf1\x63\xeb\x64\x10\x64\x12\x64\x09\x64\x20\x64\x24\x64\x33\x64\x43\x64\x1f\x64\x15\x64\x18\x64\x39\x64\x37\x64\x22\x64\x23\x64\x0c\x64\x26\x64\x30\x64\x28\x64\x41\x64\x35\x64\x2f\x64\x0a\x64\x1a\x64\x40\x64\x25\x64\x27\x64\x0b\x63\xe7\x64\x1b\x64\x2e\x64\x21\x64\x0e\x65\x6f\x65\x92\x65\xd3\x66\x86\x66\x8c\x66\x95\x66\x90\x66\x8b\x66\x8a\x66\x99\x66\x94\x66\x78\x67\x20\x69\x66\x69\x5f\x69\x38\x69\x4e\x69\x62\x69\x71\x69\x3f\x69\x45\x69\x6a\x69\x39\x69\x42\x69\x57\x69\x59\x69\x7a\x69\x48\x69\x49", /* 7a80 */ "\x00\x00\x69\x35\x69\x6c\x69\x33\x69\x3d\x69\x65\x68\xf0\x69\x78\x69\x34\x69\x69\x69\x40\x69\x6f\x69\x44\x69\x76\x69\x58\x69\x41\x69\x74\x69\x4c\x69\x3b\x69\x4b\x69\x37\x69\x5c\x69\x4f\x69\x51\x69\x32\x69\x52\x69\x2f\x69\x7b\x69\x3c\x6b\x46\x6b\x45\x6b\x43\x6b\x42\x6b\x48\x6b\x41\x6b\x9b\xfa\x0d\x6b\xfb\x6b\xfc\x6b\xf9\x6b\xf7\x6b\xf8\x6e\x9b\x6e\xd6\x6e\xc8\x6e\x8f\x6e\xc0\x6e\x9f\x6e\x93\x6e\x94\x6e\xa0\x6e\xb1\x6e\xb9\x6e\xc6\x6e\xd2\x6e\xbd\x6e\xc1\x6e\x9e\x6e\xc9\x6e\xb7\x6e\xb0\x6e\xcd\x6e\xa6\x6e\xcf\x6e\xb2\x6e\xbe\x6e\xc3\x6e\xdc\x6e\xd8\x6e\x99\x6e\x92\x6e\x8e\x6e\x8d\x6e\xa4\x6e\xa1\x6e\xbf\x6e\xb3\x6e\xd0\x6e\xca\x6e\x97\x6e\xae\x6e\xa3\x71\x47\x71\x54\x71\x52\x71\x63\x71\x60\x71\x41\x71\x5d\x71\x62\x71\x72\x71\x78\x71\x6a\x71\x61\x71\x42\x71\x58\x71\x43\x71\x4b\x71\x70\x71\x5f\x71\x50\x71\x53\x71\x44\x71\x4d\x71\x5a\x72\x4f\x72\x8d\x72\x8c\x72\x91\x72\x90\x72\x8e\x73\x3c\x73\x42\x73\x3b\x73\x3a\x73\x40\x73\x4a\x73\x49\x74\x44\x74\x4a\x74\x4b\x74\x52\x74\x51\x74\x57\x74\x40\x74\x4f\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x50\x74\x4e\x74\x42\x74\x46\x74\x4d\x74\x54\x74\xe1\x74\xff\x74\xfe\x74\xfd\x75\x1d\x75\x79\x75\x77\x69\x83\x75\xef\x76\x0f\x76\x03\x75\xf7\x75\xfe\x75\xfc\x75\xf9\x75\xf8\x76\x10\x75\xfb\x75\xf6\x75\xed\x75\xf5\x75\xfd\x76\x99\x76\xb5\x76\xdd\x77\x55\x77\x5f\x77\x60\x77\x52\x77\x56\x77\x5a\x77\x69\x77\x67\x77\x54\x77\x59\x77\x6d\x77\xe0\x78\x87\x78\x9a\x78\x94\x78\x8f\x78\x84\x78\x95\x78\x85\x78\x86\x78\xa1\x78\x83\x78\x79\x78\x99\x78\x80\x78\x96\x78\x7b\x79\x7c\x79\x82\x79\x7d\x79\x79\x7a\x11", /* 7b80 */ "\x00\x00\x7a\x18\x7a\x19\x7a\x12\x7a\x17\x7a\x15\x7a\x22\x7a\x13\x7a\x1b\x7a\x10\x7a\xa3\x7a\xa2\x7a\x9e\x7a\xeb\x7b\x66\x7b\x64\x7b\x6d\x7b\x74\x7b\x69\x7b\x72\x7b\x65\x7b\x73\x7b\x71\x7b\x70\x7b\x61\x7b\x78\x7b\x76\x7b\x63\x7c\xb2\x7c\xb4\x7c\xaf\x7d\x88\x7d\x86\x7d\x80\x7d\x8d\x7d\x7f\x7d\x85\x7d\x7a\x7d\x8e\x7d\x7b\x7d\x83\x7d\x7c\x7d\x8c\x7d\x94\x7d\x84\x7d\x7d\x7d\x92\x7f\x6d\x7f\x6b\x7f\x67\x7f\x68\x7f\x6c\x7f\xa6\x7f\xa5\x7f\xa7\x7f\xdb\x7f\xdc\x80\x21\x81\x64\x81\x60\x81\x77\x81\x5c\x81\x69\x81\x5b\x81\x62\x81\x72\x67\x21\x81\x5e\x81\x76\x81\x67\x81\x6f\x81\x44\x81\x61\x82\x1d\x82\x49\x82\x44\x82\x40\x82\x42\x82\x45\x84\xf1\x84\x3f\x84\x56\x84\x76\x84\x79\x84\x8f\x84\x8d\x84\x65\x84\x51\x84\x40\x84\x86\x84\x67\x84\x30\x84\x4d\x84\x7d\x84\x5a\x84\x59\x84\x74\x84\x73\x84\x5d\x85\x07\x84\x5e\x84\x37\x84\x3a\x84\x34\x84\x7a\x84\x43\x84\x78\x84\x32\x84\x45\x84\x29\x83\xd9\x84\x4b\x84\x2f\x84\x42\x84\x2d\x84\x5f\x84\x70\x84\x39\x84\x4e\x84\x4c\x84\x52\x84\x6f\x84\xc5\x84\x8e\x84\x3b\x84\x47\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x36\x84\x33\x84\x68\x84\x7e\x84\x44\x84\x2b\x84\x60\x84\x54\x84\x6e\x84\x50\x87\x0b\x87\x04\x86\xf7\x87\x0c\x86\xfa\x86\xd6\x86\xf5\x87\x4d\x86\xf8\x87\x0e\x87\x09\x87\x01\x86\xf6\x87\x0d\x87\x05\x88\xd6\x88\xcb\x88\xcd\x88\xce\x88\xde\x88\xdb\x88\xda\x88\xcc\x88\xd0\x89\x85\x89\x9b\x89\xdf\x89\xe5\x89\xe4\x89\xe1\x89\xe0\x89\xe2\x89\xdc\x89\xe6\x8a\x76\x8a\x86\x8a\x7f\x8a\x61\x8a\x3f\x8a\x77\x8a\x82\x8a\x84\x8a\x75\x8a\x83\x8a\x81\x8a\x74\x8a\x7a\x8c\x3c\x8c\x4b\x8c\x4a\x8c\x65\x8c\x64\x8c\x66", /* 7c80 */ "\x00\x00\x8c\x86\x8c\x84\x8c\x85\x8c\xcc\x8d\x68\x8d\x69\x8d\x91\x8d\x8c\x8d\x8e\x8d\x8f\x8d\x8d\x8d\x93\x8d\x94\x8d\x90\x8d\x92\x8d\xf0\x8d\xe0\x8d\xec\x8d\xf1\x8d\xee\x8d\xd0\x8d\xe9\x8d\xe3\x8d\xe2\x8d\xe7\x8d\xf2\x8d\xeb\x8d\xf4\x8f\x06\x8e\xff\x8f\x01\x8f\x00\x8f\x05\x8f\x07\x8f\x08\x8f\x02\x8f\x0b\x90\x52\x90\x3f\x90\x44\x90\x49\x90\x3d\x91\x10\x91\x0d\x91\x0f\x91\x11\x91\x16\x91\x14\x91\x0b\x91\x0e\x91\x6e\x91\x6f\x92\x48\x92\x52\x92\x30\x92\x3a\x92\x66\x92\x33\x92\x65\x92\x5e\x92\x83\x92\x2e\x92\x4a\x92\x46\x92\x6d\x92\x6c\x92\x4f\x92\x60\x92\x67\x92\x6f\x92\x36\x92\x61\x92\x70\x92\x31\x92\x54\x92\x63\x92\x50\x92\x72\x92\x4e\x92\x53\x92\x4c\x92\x56\x92\x32\x95\x9f\x95\x9c\x95\x9e\x95\x9b\x96\x92\x96\x93\x96\x91\x96\x97\x96\xce\x96\xfa\x96\xfd\x96\xf8\x96\xf5\x97\x73\x97\x77\x97\x78\x97\x72\x98\x0f\x98\x0d\x98\x0e\x98\xac\x98\xf6\x98\xf9\x99\xaf\x99\xb2\x99\xb0\x99\xb5\x9a\xad\x9a\xab\x9b\x5b\x9c\xea\x9c\xed\x9c\xe7\x9e\x80\x9e\xfd\x50\xe6\x50\xd4\x50\xd7\x50\xe8\x50\xf3\x50\xdb\x50\xea\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdd\x50\xe4\x50\xd3\x50\xec\x50\xf0\x50\xef\x50\xe3\x50\xe0\x51\xd8\x52\x80\x52\x81\x52\xe9\x52\xeb\x53\x30\x53\xac\x56\x27\x56\x15\x56\x0c\x56\x12\x55\xfc\x56\x0f\x56\x1c\x56\x01\x56\x13\x56\x02\x55\xfa\x56\x1d\x56\x04\x55\xff\x55\xf9\x58\x89\x58\x7c\x58\x90\x58\x98\x58\x86\x58\x81\x58\x7f\x58\x74\x58\x8b\x58\x7a\x58\x87\x58\x91\x58\x8e\x58\x76\x58\x82\x58\x88\x58\x7b\x58\x94\x58\x8f\x58\xfe\x59\x6b\x5a\xdc\x5a\xee\x5a\xe5\x5a\xd5\x5a\xea\x5a\xda\x5a\xed\x5a\xeb\x5a\xf3\x5a\xe2\x5a\xe0\x5a\xdb", /* 7d80 */ "\x00\x00\x5a\xec\x5a\xde\x5a\xdd\x5a\xd9\x5a\xe8\x5a\xdf\x5b\x77\x5b\xe0\x5b\xe3\x5c\x63\x5d\x82\x5d\x80\x5d\x7d\x5d\x86\x5d\x7a\x5d\x81\x5d\x77\x5d\x8a\x5d\x89\x5d\x88\x5d\x7e\x5d\x7c\x5d\x8d\x5d\x79\x5d\x7f\x5e\x58\x5e\x59\x5e\x53\x5e\xd8\x5e\xd1\x5e\xd7\x5e\xce\x5e\xdc\x5e\xd5\x5e\xd9\x5e\xd2\x5e\xd4\x5f\x44\x5f\x43\x5f\x6f\x5f\xb6\x61\x2c\x61\x28\x61\x41\x61\x5e\x61\x71\x61\x73\x61\x52\x61\x53\x61\x72\x61\x6c\x61\x80\x61\x74\x61\x54\x61\x7a\x61\x5b\x61\x65\x61\x3b\x61\x6a\x61\x61\x61\x56\x62\x29\x62\x27\x62\x2b\x64\x2b\x64\x4d\x64\x5b\x64\x5d\x64\x74\x64\x76\x64\x72\x64\x73\x64\x7d\x64\x75\x64\x66\x64\xa6\x64\x4e\x64\x82\x64\x5e\x64\x5c\x64\x4b\x64\x53\x64\x60\x64\x50\x64\x7f\x64\x3f\x64\x6c\x64\x6b\x64\x59\x64\x65\x64\x77\x65\x73\x65\xa0\x66\xa1\x66\xa0\x66\x9f\x67\x05\x67\x04\x67\x22\x69\xb1\x69\xb6\x69\xc9\x69\xa0\x69\xce\x69\x96\x69\xb0\x69\xac\x69\xbc\x69\x91\x69\x99\x69\x8e\x69\xa7\x69\x8d\x69\xa9\x69\xbe\x69\xaf\x69\xbf\x69\xc4\x69\xbd\x69\xa4\x69\xd4\x69\xb9\x69\xca\x69\x9a\x69\xcf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xb3\x69\x93\x69\xaa\x69\xa1\x69\x9e\x69\xd9\x69\x97\x69\x90\x69\xc2\x69\xb5\x69\xa5\x69\xc6\x6b\x4a\x6b\x4d\x6b\x4b\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xc3\x6b\xc4\x6b\xfe\x6e\xce\x6e\xf5\x6e\xf1\x6f\x03\x6f\x25\x6e\xf8\x6f\x37\x6e\xfb\x6f\x2e\x6f\x09\x6f\x4e\x6f\x19\x6f\x1a\x6f\x27\x6f\x18\x6f\x3b\x6f\x12\x6e\xed\x6f\x0a\x6f\x36\x6f\x73\x6e\xf9\x6e\xee\x6f\x2d\x6f\x40\x6f\x30\x6f\x3c\x6f\x35\x6e\xeb\x6f\x07\x6f\x0e\x6f\x43\x6f\x05\x6e\xfd\x6e\xf6\x6f\x39\x6f\x1c\x6e\xfc\x6f\x3a\x6f\x1f\x6f\x0d\x6f\x1e", /* 7e80 */ "\x00\x00\x6f\x08\x6f\x21\x71\x87\x71\x90\x71\x89\x71\x80\x71\x85\x71\x82\x71\x8f\x71\x7b\x71\x86\x71\x81\x71\x97\x72\x44\x72\x53\x72\x97\x72\x95\x72\x93\x73\x43\x73\x4d\x73\x51\x73\x4c\x74\x62\x74\x73\x74\x71\x74\x75\x74\x72\x74\x67\x74\x6e\x75\x00\x75\x02\x75\x03\x75\x7d\x75\x90\x76\x16\x76\x08\x76\x0c\x76\x15\x76\x11\x76\x0a\x76\x14\x76\xb8\x77\x81\x77\x7c\x77\x85\x77\x82\x77\x6e\x77\x80\x77\x6f\x77\x7e\x77\x83\x78\xb2\x78\xaa\x78\xb4\x78\xad\x78\xa8\x78\x7e\x78\xab\x78\x9e\x78\xa5\x78\xa0\x78\xac\x78\xa2\x78\xa4\x79\x98\x79\x8a\x79\x8b\x79\x96\x79\x95\x79\x94\x79\x93\x79\x97\x79\x88\x79\x92\x79\x90\x7a\x2b\x7a\x4a\x7a\x30\x7a\x2f\x7a\x28\x7a\x26\x7a\xa8\x7a\xab\x7a\xac\x7a\xee\x7b\x88\x7b\x9c\x7b\x8a\x7b\x91\x7b\x90\x7b\x96\x7b\x8d\x7b\x8c\x7b\x9b\x7b\x8e\x7b\x85\x7b\x98\x52\x84\x7b\x99\x7b\xa4\x7b\x82\x7c\xbb\x7c\xbf\x7c\xbc\x7c\xba\x7d\xa7\x7d\xb7\x7d\xc2\x7d\xa3\x7d\xaa\x7d\xc1\x7d\xc0\x7d\xc5\x7d\x9d\x7d\xce\x7d\xc4\x7d\xc6\x7d\xcb\x7d\xcc\x7d\xaf\x7d\xb9\x7d\x96\x7d\xbc\x7d\x9f\x7d\xa6\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xae\x7d\xa9\x7d\xa1\x7d\xc9\x7f\x73\x7f\xe2\x7f\xe3\x7f\xe5\x7f\xde\x80\x24\x80\x5d\x80\x5c\x81\x89\x81\x86\x81\x83\x81\x87\x81\x8d\x81\x8c\x81\x8b\x82\x15\x84\x97\x84\xa4\x84\xa1\x84\x9f\x84\xba\x84\xce\x84\xc2\x84\xac\x84\xae\x84\xab\x84\xb9\x84\xb4\x84\xc1\x84\xcd\x84\xaa\x84\x9a\x84\xb1\x84\xd0\x84\x9d\x84\xa7\x84\xbb\x84\xa2\x84\x94\x84\xc7\x84\xcc\x84\x9b\x84\xa9\x84\xaf\x84\xa8\x84\xd6\x84\x98\x84\xb6\x84\xcf\x84\xa0\x84\xd7\x84\xd4\x84\xd2\x84\xdb\x84\xb0\x84\x91\x86\x61\x87\x33\x87\x23", /* 7f80 */ "\x00\x00\x87\x28\x87\x6b\x87\x40\x87\x2e\x87\x1e\x87\x21\x87\x19\x87\x1b\x87\x43\x87\x2c\x87\x41\x87\x3e\x87\x46\x87\x20\x87\x32\x87\x2a\x87\x2d\x87\x3c\x87\x12\x87\x3a\x87\x31\x87\x35\x87\x42\x87\x26\x87\x27\x87\x38\x87\x24\x87\x1a\x87\x30\x87\x11\x88\xf7\x88\xe7\x88\xf1\x88\xf2\x88\xfa\x88\xfe\x88\xee\x88\xfc\x88\xf6\x88\xfb\x88\xf0\x88\xec\x88\xeb\x89\x9d\x89\xa1\x89\x9f\x89\x9e\x89\xe9\x89\xeb\x89\xe8\x8a\xab\x8a\x99\x8a\x8b\x8a\x92\x8a\x8f\x8a\x96\x8c\x3d\x8c\x68\x8c\x69\x8c\xd5\x8c\xcf\x8c\xd7\x8d\x96\x8e\x09\x8e\x02\x8d\xff\x8e\x0d\x8d\xfd\x8e\x0a\x8e\x03\x8e\x07\x8e\x06\x8e\x05\x8d\xfe\x8e\x00\x8e\x04\x8f\x10\x8f\x11\x8f\x0e\x8f\x0d\x91\x23\x91\x1c\x91\x20\x91\x22\x91\x1f\x91\x1d\x91\x1a\x91\x24\x91\x21\x91\x1b\x91\x7a\x91\x72\x91\x79\x91\x73\x92\xa5\x92\xa4\x92\x76\x92\x9b\x92\x7a\x92\xa0\x92\x94\x92\xaa\x92\x8d\x92\xa6\x92\x9a\x92\xab\x92\x79\x92\x97\x92\x7f\x92\xa3\x92\xee\x92\x8e\x92\x82\x92\x95\x92\xa2\x92\x7d\x92\x88\x92\xa1\x92\x8a\x92\x86\x92\x8c\x92\x99\x92\xa7\x92\x7e\x92\x87\x00\x00\x00\x00", /* 8000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\xa9\x92\x9d\x92\x8b\x92\x2d\x96\x9e\x96\xa1\x96\xff\x97\x58\x97\x7d\x97\x7a\x97\x7e\x97\x83\x97\x80\x97\x82\x97\x7b\x97\x84\x97\x81\x97\x7f\x97\xce\x97\xcd\x98\x16\x98\xad\x98\xae\x99\x02\x99\x00\x99\x07\x99\x9d\x99\x9c\x99\xc3\x99\xb9\x99\xbb\x99\xba\x99\xc2\x99\xbd\x99\xc7\x9a\xb1\x9a\xe3\x9a\xe7\x9b\x3e\x9b\x3f\x9b\x60\x9b\x61\x9b\x5f\x9c\xf1\x9c\xf2\x9c\xf5\x9e\xa7\x50\xff\x51\x03\x51\x30\x50\xf8\x51\x06\x51\x07\x50\xf6\x50\xfe\x51\x0b\x51\x0c\x50\xfd\x51\x0a\x52\x8b\x52\x8c\x52\xf1\x52\xef", /* 8080 */ "\x00\x00\x56\x48\x56\x42\x56\x4c\x56\x35\x56\x41\x56\x4a\x56\x49\x56\x46\x56\x58\x56\x5a\x56\x40\x56\x33\x56\x3d\x56\x2c\x56\x3e\x56\x38\x56\x2a\x56\x3a\x57\x1a\x58\xab\x58\x9d\x58\xb1\x58\xa0\x58\xa3\x58\xaf\x58\xac\x58\xa5\x58\xa1\x58\xff\x5a\xff\x5a\xf4\x5a\xfd\x5a\xf7\x5a\xf6\x5b\x03\x5a\xf8\x5b\x02\x5a\xf9\x5b\x01\x5b\x07\x5b\x05\x5b\x0f\x5c\x67\x5d\x99\x5d\x97\x5d\x9f\x5d\x92\x5d\xa2\x5d\x93\x5d\x95\x5d\xa0\x5d\x9c\x5d\xa1\x5d\x9a\x5d\x9e\x5e\x69\x5e\x5d\x5e\x60\x5e\x5c\x7d\xf3\x5e\xdb\x5e\xde\x5e\xe1\x5f\x49\x5f\xb2\x61\x8b\x61\x83\x61\x79\x61\xb1\x61\xb0\x61\xa2\x61\x89\x61\x9b\x61\x93\x61\xaf\x61\xad\x61\x9f\x61\x92\x61\xaa\x61\xa1\x61\x8d\x61\x66\x61\xb3\x62\x2d\x64\x6e\x64\x70\x64\x96\x64\xa0\x64\x85\x64\x97\x64\x9c\x64\x8f\x64\x8b\x64\x8a\x64\x8c\x64\xa3\x64\x9f\x64\x68\x64\xb1\x64\x98\x65\x76\x65\x7a\x65\x79\x65\x7b\x65\xb2\x65\xb3\x66\xb5\x66\xb0\x66\xa9\x66\xb2\x66\xb7\x66\xaa\x66\xaf\x6a\x00\x6a\x06\x6a\x17\x69\xe5\x69\xf8\x6a\x15\x69\xf1\x69\xe4\x6a\x20\x69\xff\x69\xec\x69\xe2\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1b\x6a\x1d\x69\xfe\x6a\x27\x69\xf2\x69\xee\x6a\x14\x69\xf7\x69\xe7\x6a\x40\x6a\x08\x69\xe6\x69\xfb\x6a\x0d\x69\xfc\x69\xeb\x6a\x09\x6a\x04\x6a\x18\x6a\x25\x6a\x0f\x69\xf6\x6a\x26\x6a\x07\x69\xf4\x6a\x16\x6b\x51\x6b\xa5\x6b\xa3\x6b\xa2\x6b\xa6\x6c\x01\x6c\x00\x6b\xff\x6c\x02\x6f\x41\x6f\x26\x6f\x7e\x6f\x87\x6f\xc6\x6f\x92\x6f\x8d\x6f\x89\x6f\x8c\x6f\x62\x6f\x4f\x6f\x85\x6f\x5a\x6f\x96\x6f\x76\x6f\x6c\x6f\x82\x6f\x55\x6f\x72\x6f\x52\x6f\x50\x6f\x57\x6f\x94\x6f\x93\x6f\x5d\x6f\x00\x6f\x61\x6f\x6b", /* 8180 */ "\x00\x00\x6f\x7d\x6f\x67\x6f\x90\x6f\x53\x6f\x8b\x6f\x69\x6f\x7f\x6f\x95\x6f\x63\x6f\x77\x6f\x6a\x6f\x7b\x71\xb2\x71\xaf\x71\x9b\x71\xb0\x71\xa0\x71\x9a\x71\xa9\x71\xb5\x71\x9d\x71\xa5\x71\x9e\x71\xa4\x71\xa1\x71\xaa\x71\x9c\x71\xa7\x71\xb3\x72\x98\x72\x9a\x73\x58\x73\x52\x73\x5e\x73\x5f\x73\x60\x73\x5d\x73\x5b\x73\x61\x73\x5a\x73\x59\x73\x62\x74\x87\x74\x89\x74\x8a\x74\x86\x74\x81\x74\x7d\x74\x85\x74\x88\x74\x7c\x74\x79\x75\x08\x75\x07\x75\x7e\x76\x25\x76\x1e\x76\x19\x76\x1d\x76\x1c\x76\x23\x76\x1a\x76\x28\x76\x1b\x76\x9c\x76\x9d\x76\x9e\x76\x9b\x77\x8d\x77\x8f\x77\x89\x77\x88\x78\xcd\x78\xbb\x78\xcf\x78\xcc\x78\xd1\x78\xce\x78\xd4\x78\xc8\x78\xc3\x78\xc4\x78\xc9\x79\x9a\x79\xa1\x79\xa0\x79\x9c\x79\xa2\x79\x9b\x6b\x76\x7a\x39\x7a\xb2\x7a\xb4\x7a\xb3\x7b\xb7\x7b\xcb\x7b\xbe\x7b\xac\x7b\xce\x7b\xaf\x7b\xb9\x7b\xca\x7b\xb5\x7c\xc5\x7c\xc8\x7c\xcc\x7c\xcb\x7d\xf7\x7d\xdb\x7d\xea\x7d\xe7\x7d\xd7\x7d\xe1\x7e\x03\x7d\xfa\x7d\xe6\x7d\xf6\x7d\xf1\x7d\xf0\x7d\xee\x7d\xdf\x7f\x76\x7f\xac\x7f\xb0\x7f\xad\x00\x00\x00\x00", /* 8200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xed\x7f\xeb\x7f\xea\x7f\xec\x7f\xe6\x7f\xe8\x80\x64\x80\x67\x81\xa3\x81\x9f\x81\x9e\x81\x95\x81\xa2\x81\x99\x81\x97\x82\x16\x82\x4f\x82\x53\x82\x52\x82\x50\x82\x4e\x82\x51\x85\x24\x85\x3b\x85\x0f\x85\x00\x85\x29\x85\x0e\x85\x09\x85\x0d\x85\x1f\x85\x0a\x85\x27\x85\x1c\x84\xfb\x85\x2b\x84\xfa\x85\x08\x85\x0c\x84\xf4\x85\x2a\x84\xf2\x85\x15\x84\xf7\x84\xeb\x84\xf3\x84\xfc\x85\x12\x84\xea\x84\xe9\x85\x16\x84\xfe\x85\x28\x85\x1d\x85\x2e\x85\x02\x84\xfd\x85\x1e\x84\xf6\x85\x31\x85\x26\x84\xe7\x84\xe8", /* 8280 */ "\x00\x00\x84\xf0\x84\xef\x84\xf9\x85\x18\x85\x20\x85\x30\x85\x0b\x85\x19\x85\x2f\x86\x62\x87\x56\x87\x63\x87\x64\x87\x77\x87\xe1\x87\x73\x87\x58\x87\x54\x87\x5b\x87\x52\x87\x61\x87\x5a\x87\x51\x87\x5e\x87\x6d\x87\x6a\x87\x50\x87\x4e\x87\x5f\x87\x5d\x87\x6f\x87\x6c\x87\x7a\x87\x6e\x87\x5c\x87\x65\x87\x4f\x87\x7b\x87\x75\x87\x62\x87\x67\x87\x69\x88\x5a\x89\x05\x89\x0c\x89\x14\x89\x0b\x89\x17\x89\x18\x89\x19\x89\x06\x89\x16\x89\x11\x89\x0e\x89\x09\x89\xa2\x89\xa4\x89\xa3\x89\xed\x89\xf0\x89\xec\x8a\xcf\x8a\xc6\x8a\xb8\x8a\xd3\x8a\xd1\x8a\xd4\x8a\xd5\x8a\xbb\x8a\xd7\x8a\xbe\x8a\xc0\x8a\xc5\x8a\xd8\x8a\xc3\x8a\xba\x8a\xbd\x8a\xd9\x8c\x3e\x8c\x4d\x8c\x8f\x8c\xe5\x8c\xdf\x8c\xd9\x8c\xe8\x8c\xda\x8c\xdd\x8c\xe7\x8d\xa0\x8d\x9c\x8d\xa1\x8d\x9b\x8e\x20\x8e\x23\x8e\x25\x8e\x24\x8e\x2e\x8e\x15\x8e\x1b\x8e\x16\x8e\x11\x8e\x19\x8e\x26\x8e\x27\x8e\x14\x8e\x12\x8e\x18\x8e\x13\x8e\x1c\x8e\x17\x8e\x1a\x8f\x2c\x8f\x24\x8f\x18\x8f\x1a\x8f\x20\x8f\x23\x8f\x16\x8f\x17\x90\x73\x90\x70\x90\x6f\x90\x67\x90\x6b\x91\x2f\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x2b\x91\x29\x91\x2a\x91\x32\x91\x26\x91\x2e\x91\x85\x91\x86\x91\x8a\x91\x81\x91\x82\x91\x84\x91\x80\x92\xd0\x92\xc3\x92\xc4\x92\xc0\x92\xd9\x92\xb6\x92\xcf\x92\xf1\x92\xdf\x92\xd8\x92\xe9\x92\xd7\x92\xdd\x92\xcc\x92\xef\x92\xc2\x92\xe8\x92\xca\x92\xc8\x92\xce\x92\xe6\x92\xcd\x92\xd5\x92\xc9\x92\xe0\x92\xde\x92\xe7\x92\xd1\x92\xd3\x92\xb5\x92\xe1\x92\xc6\x92\xb4\x95\x7c\x95\xac\x95\xab\x95\xae\x95\xb0\x96\xa4\x96\xa2\x96\xd3\x97\x05\x97\x08\x97\x02\x97\x5a\x97\x8a\x97\x8e\x97\x88\x97\xd0\x97\xcf", /* 8380 */ "\x00\x00\x98\x1e\x98\x1d\x98\x26\x98\x29\x98\x28\x98\x20\x98\x1b\x98\x27\x98\xb2\x99\x08\x98\xfa\x99\x11\x99\x14\x99\x16\x99\x17\x99\x15\x99\xdc\x99\xcd\x99\xcf\x99\xd3\x99\xd4\x99\xce\x99\xc9\x99\xd6\x99\xd8\x99\xcb\x99\xd7\x99\xcc\x9a\xb3\x9a\xec\x9a\xeb\x9a\xf3\x9a\xf2\x9a\xf1\x9b\x46\x9b\x43\x9b\x67\x9b\x74\x9b\x71\x9b\x66\x9b\x76\x9b\x75\x9b\x70\x9b\x68\x9b\x64\x9b\x6c\x9c\xfc\x9c\xfa\x9c\xfd\x9c\xff\x9c\xf7\x9d\x07\x9d\x00\x9c\xf9\x9c\xfb\x9d\x08\x9d\x05\x9d\x04\x9e\x83\x9e\xd3\x9f\x0f\x9f\x10\x51\x1c\x51\x13\x51\x17\x51\x1a\x51\x11\x51\xde\x53\x34\x53\xe1\x56\x70\x56\x60\x56\x6e\x56\x73\x56\x66\x56\x63\x56\x6d\x56\x72\x56\x5e\x56\x77\x57\x1c\x57\x1b\x58\xc8\x58\xbd\x58\xc9\x58\xbf\x58\xba\x58\xc2\x58\xbc\x58\xc6\x5b\x17\x5b\x19\x5b\x1b\x5b\x21\x5b\x14\x5b\x13\x5b\x10\x5b\x16\x5b\x28\x5b\x1a\x5b\x20\x5b\x1e\x5b\xef\x5d\xac\x5d\xb1\x5d\xa9\x5d\xa7\x5d\xb5\x5d\xb0\x5d\xae\x5d\xaa\x5d\xa8\x5d\xb2\x5d\xad\x5d\xaf\x5d\xb4\x5e\x67\x5e\x68\x5e\x66\x5e\x6f\x5e\xe9\x5e\xe7\x5e\xe6\x5e\xe8\x5e\xe5\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4b\x5f\xbc\x61\x9d\x61\xa8\x61\x96\x61\xc5\x61\xb4\x61\xc6\x61\xc1\x61\xcc\x61\xba\x61\xbf\x61\xb8\x61\x8c\x64\xd7\x64\xd6\x64\xd0\x64\xcf\x64\xc9\x64\xbd\x64\x89\x64\xc3\x64\xdb\x64\xf3\x64\xd9\x65\x33\x65\x7f\x65\x7c\x65\xa2\x66\xc8\x66\xbe\x66\xc0\x66\xca\x66\xcb\x66\xcf\x66\xbd\x66\xbb\x66\xba\x66\xcc\x67\x23\x6a\x34\x6a\x66\x6a\x49\x6a\x67\x6a\x32\x6a\x68\x6a\x3e\x6a\x5d\x6a\x6d\x6a\x76\x6a\x5b\x6a\x51\x6a\x28\x6a\x5a\x6a\x3b\x6a\x3f\x6a\x41\x6a\x6a\x6a\x64\x6a\x50\x6a\x4f\x6a\x54\x6a\x6f", /* 8480 */ "\x00\x00\x6a\x69\x6a\x60\x6a\x3c\x6a\x5e\x6a\x56\x6a\x55\x6a\x4d\x6a\x4e\x6a\x46\x6b\x55\x6b\x54\x6b\x56\x6b\xa7\x6b\xaa\x6b\xab\x6b\xc8\x6b\xc7\x6c\x04\x6c\x03\x6c\x06\x6f\xad\x6f\xcb\x6f\xa3\x6f\xc7\x6f\xbc\x6f\xce\x6f\xc8\x6f\x5e\x6f\xc4\x6f\xbd\x6f\x9e\x6f\xca\x6f\xa8\x70\x04\x6f\xa5\x6f\xae\x6f\xba\x6f\xac\x6f\xaa\x6f\xcf\x6f\xbf\x6f\xb8\x6f\xa2\x6f\xc9\x6f\xab\x6f\xcd\x6f\xaf\x6f\xb2\x6f\xb0\x71\xc5\x71\xc2\x71\xbf\x71\xb8\x71\xd6\x71\xc0\x71\xc1\x71\xcb\x71\xd4\x71\xca\x71\xc7\x71\xcf\x71\xbd\x71\xd8\x71\xbc\x71\xc6\x71\xda\x71\xdb\x72\x9d\x72\x9e\x73\x69\x73\x66\x73\x67\x73\x6c\x73\x65\x73\x6b\x73\x6a\x74\x7f\x74\x9a\x74\xa0\x74\x94\x74\x92\x74\x95\x74\xa1\x75\x0b\x75\x80\x76\x2f\x76\x2d\x76\x31\x76\x3d\x76\x33\x76\x3c\x76\x35\x76\x32\x76\x30\x76\xbb\x76\xe6\x77\x9a\x77\x9d\x77\xa1\x77\x9c\x77\x9b\x77\xa2\x77\xa3\x77\x95\x77\x99\x77\x97\x78\xdd\x78\xe9\x78\xe5\x78\xea\x78\xde\x78\xe3\x78\xdb\x78\xe1\x78\xe2\x78\xed\x78\xdf\x78\xe0\x79\xa4\x7a\x44\x7a\x48\x7a\x47\x7a\xb6\x7a\xb8\x7a\xb5\x00\x00\x00\x00", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xb1\x7a\xb7\x7b\xde\x7b\xe3\x7b\xe7\x7b\xdd\x7b\xd5\x7b\xe5\x7b\xda\x7b\xe8\x7b\xf9\x7b\xd4\x7b\xea\x7b\xe2\x7b\xdc\x7b\xeb\x7b\xd8\x7b\xdf\x7c\xd2\x7c\xd4\x7c\xd7\x7c\xd0\x7c\xd1\x7e\x12\x7e\x21\x7e\x17\x7e\x0c\x7e\x1f\x7e\x20\x7e\x13\x7e\x0e\x7e\x1c\x7e\x15\x7e\x1a\x7e\x22\x7e\x0b\x7e\x0f\x7e\x16\x7e\x0d\x7e\x14\x7e\x25\x7e\x24\x7f\x43\x7f\x7b\x7f\x7c\x7f\x7a\x7f\xb1\x7f\xef\x80\x2a\x80\x29\x80\x6c\x81\xb1\x81\xa6\x81\xae\x81\xb9\x81\xb5\x81\xab\x81\xb0\x81\xac\x81\xb4\x81\xb2\x81\xb7\x81\xa7", /* 8580 */ "\x00\x00\x81\xf2\x82\x55\x82\x56\x82\x57\x85\x56\x85\x45\x85\x6b\x85\x4d\x85\x53\x85\x61\x85\x58\x85\x40\x85\x46\x85\x64\x85\x41\x85\x62\x85\x44\x85\x51\x85\x47\x85\x63\x85\x3e\x85\x5b\x85\x71\x85\x4e\x85\x6e\x85\x75\x85\x55\x85\x67\x85\x60\x85\x8c\x85\x66\x85\x5d\x85\x54\x85\x65\x85\x6c\x86\x63\x86\x65\x86\x64\x87\x9b\x87\x8f\x87\x97\x87\x93\x87\x92\x87\x88\x87\x81\x87\x96\x87\x98\x87\x79\x87\x87\x87\xa3\x87\x85\x87\x90\x87\x91\x87\x9d\x87\x84\x87\x94\x87\x9c\x87\x9a\x87\x89\x89\x1e\x89\x26\x89\x30\x89\x2d\x89\x2e\x89\x27\x89\x31\x89\x22\x89\x29\x89\x23\x89\x2f\x89\x2c\x89\x1f\x89\xf1\x8a\xe0\x8a\xe2\x8a\xf2\x8a\xf4\x8a\xf5\x8a\xdd\x8b\x14\x8a\xe4\x8a\xdf\x8a\xf0\x8a\xc8\x8a\xde\x8a\xe1\x8a\xe8\x8a\xff\x8a\xef\x8a\xfb\x8c\x91\x8c\x92\x8c\x90\x8c\xf5\x8c\xee\x8c\xf1\x8c\xf0\x8c\xf3\x8d\x6c\x8d\x6e\x8d\xa5\x8d\xa7\x8e\x33\x8e\x3e\x8e\x38\x8e\x40\x8e\x45\x8e\x36\x8e\x3c\x8e\x3d\x8e\x41\x8e\x30\x8e\x3f\x8e\xbd\x8f\x36\x8f\x2e\x8f\x35\x8f\x32\x8f\x39\x8f\x37\x8f\x34\x90\x76\x90\x79\x90\x7b\x90\x86\x00\x00\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xfa\x91\x33\x91\x35\x91\x36\x91\x93\x91\x90\x91\x91\x91\x8d\x91\x8f\x93\x27\x93\x1e\x93\x08\x93\x1f\x93\x06\x93\x0f\x93\x7a\x93\x38\x93\x3c\x93\x1b\x93\x23\x93\x12\x93\x01\x93\x46\x93\x2d\x93\x0e\x93\x0d\x92\xcb\x93\x1d\x92\xfa\x93\x25\x93\x13\x92\xf9\x92\xf7\x93\x34\x93\x02\x93\x24\x92\xff\x93\x29\x93\x39\x93\x35\x93\x2a\x93\x14\x93\x0c\x93\x0b\x92\xfe\x93\x09\x93\x00\x92\xfb\x93\x16\x95\xbc\x95\xcd\x95\xbe\x95\xb9\x95\xba\x95\xb6\x95\xbf\x95\xb5\x95\xbd\x96\xa9\x96\xd4\x97\x0b\x97\x12\x97\x10", /* 8680 */ "\x00\x00\x97\x99\x97\x97\x97\x94\x97\xf0\x97\xf8\x98\x35\x98\x2f\x98\x32\x99\x24\x99\x1f\x99\x27\x99\x29\x99\x9e\x99\xee\x99\xec\x99\xe5\x99\xe4\x99\xf0\x99\xe3\x99\xea\x99\xe9\x99\xe7\x9a\xb9\x9a\xbf\x9a\xb4\x9a\xbb\x9a\xf6\x9a\xfa\x9a\xf9\x9a\xf7\x9b\x33\x9b\x80\x9b\x85\x9b\x87\x9b\x7c\x9b\x7e\x9b\x7b\x9b\x82\x9b\x93\x9b\x92\x9b\x90\x9b\x7a\x9b\x95\x9b\x7d\x9b\x88\x9d\x25\x9d\x17\x9d\x20\x9d\x1e\x9d\x14\x9d\x29\x9d\x1d\x9d\x18\x9d\x22\x9d\x10\x9d\x19\x9d\x1f\x9e\x88\x9e\x86\x9e\x87\x9e\xae\x9e\xad\x9e\xd5\x9e\xd6\x9e\xfa\x9f\x12\x9f\x3d\x51\x26\x51\x25\x51\x22\x51\x24\x51\x20\x51\x29\x52\xf4\x56\x93\x56\x8c\x56\x8d\x56\x86\x56\x84\x56\x83\x56\x7e\x56\x82\x56\x7f\x56\x81\x58\xd6\x58\xd4\x58\xcf\x58\xd2\x5b\x2d\x5b\x25\x5b\x32\x5b\x23\x5b\x2c\x5b\x27\x5b\x26\x5b\x2f\x5b\x2e\x5b\x7b\x5b\xf1\x5b\xf2\x5d\xb7\x5e\x6c\x5e\x6a\x5f\xbe\x5f\xbb\x61\xc3\x61\xb5\x61\xbc\x61\xe7\x61\xe0\x61\xe5\x61\xe4\x61\xe8\x61\xde\x64\xef\x64\xe9\x64\xe3\x64\xeb\x64\xe4\x64\xe8\x65\x81\x65\x80\x65\xb6\x65\xda\x66\xd2\x00\x00\x00\x00", /* 8700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8d\x6a\x96\x6a\x81\x6a\xa5\x6a\x89\x6a\x9f\x6a\x9b\x6a\xa1\x6a\x9e\x6a\x87\x6a\x93\x6a\x8e\x6a\x95\x6a\x83\x6a\xa8\x6a\xa4\x6a\x91\x6a\x7f\x6a\xa6\x6a\x9a\x6a\x85\x6a\x8c\x6a\x92\x6b\x5b\x6b\xad\x6c\x09\x6f\xcc\x6f\xa9\x6f\xf4\x6f\xd4\x6f\xe3\x6f\xdc\x6f\xed\x6f\xe7\x6f\xe6\x6f\xde\x6f\xf2\x6f\xdd\x6f\xe2\x6f\xe8\x71\xe1\x71\xf1\x71\xe8\x71\xf2\x71\xe4\x71\xf0\x71\xe2\x73\x73\x73\x6e\x73\x6f\x74\x97\x74\xb2\x74\xab\x74\x90\x74\xaa\x74\xad\x74\xb1\x74\xa5\x74\xaf\x75\x10\x75\x11\x75\x12\x75\x0f", /* 8780 */ "\x00\x00\x75\x84\x76\x43\x76\x48\x76\x49\x76\x47\x76\xa4\x76\xe9\x77\xb5\x77\xab\x77\xb2\x77\xb7\x77\xb6\x77\xb4\x77\xb1\x77\xa8\x77\xf0\x78\xf3\x78\xfd\x79\x02\x78\xfb\x78\xfc\x78\xf2\x79\x05\x78\xf9\x78\xfe\x79\x04\x79\xab\x79\xa8\x7a\x5c\x7a\x5b\x7a\x56\x7a\x58\x7a\x54\x7a\x5a\x7a\xbe\x7a\xc0\x7a\xc1\x7c\x05\x7c\x0f\x7b\xf2\x7c\x00\x7b\xff\x7b\xfb\x7c\x0e\x7b\xf4\x7c\x0b\x7b\xf3\x7c\x02\x7c\x09\x7c\x03\x7c\x01\x7b\xf8\x7b\xfd\x7c\x06\x7b\xf0\x7b\xf1\x7c\x10\x7c\x0a\x7c\xe8\x7e\x2d\x7e\x3c\x7e\x42\x7e\x33\x98\x48\x7e\x38\x7e\x2a\x7e\x49\x7e\x40\x7e\x47\x7e\x29\x7e\x4c\x7e\x30\x7e\x3b\x7e\x36\x7e\x44\x7e\x3a\x7f\x45\x7f\x7f\x7f\x7e\x7f\x7d\x7f\xf4\x7f\xf2\x80\x2c\x81\xbb\x81\xc4\x81\xcc\x81\xca\x81\xc5\x81\xc7\x81\xbc\x81\xe9\x82\x5b\x82\x5a\x82\x5c\x85\x83\x85\x80\x85\x8f\x85\xa7\x85\x95\x85\xa0\x85\x8b\x85\xa3\x85\x7b\x85\xa4\x85\x9a\x85\x9e\x85\x77\x85\x7c\x85\x89\x85\xa1\x85\x7a\x85\x78\x85\x57\x85\x8e\x85\x96\x85\x86\x85\x8d\x85\x99\x85\x9d\x85\x81\x85\xa2\x85\x82\x85\x88\x85\x85\x85\x79\x00\x00\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x76\x85\x98\x85\x90\x85\x9f\x86\x68\x87\xbe\x87\xaa\x87\xad\x87\xc5\x87\xb0\x87\xac\x87\xb9\x87\xb5\x87\xbc\x87\xae\x87\xc9\x87\xc3\x87\xc2\x87\xcc\x87\xb7\x87\xaf\x87\xc4\x87\xca\x87\xb4\x87\xb6\x87\xbf\x87\xb8\x87\xbd\x87\xde\x87\xb2\x89\x35\x89\x33\x89\x3c\x89\x3e\x89\x41\x89\x52\x89\x37\x89\x42\x89\xad\x89\xaf\x89\xae\x89\xf2\x89\xf3\x8b\x1e\x8b\x18\x8b\x16\x8b\x11\x8b\x05\x8b\x0b\x8b\x22\x8b\x0f\x8b\x12\x8b\x15\x8b\x07\x8b\x0d\x8b\x08\x8b\x06\x8b\x1c\x8b\x13\x8b\x1a\x8c\x4f\x8c\x70\x8c\x72", /* 8880 */ "\x00\x00\x8c\x71\x8c\x6f\x8c\x95\x8c\x94\x8c\xf9\x8d\x6f\x8e\x4e\x8e\x4d\x8e\x53\x8e\x50\x8e\x4c\x8e\x47\x8f\x43\x8f\x40\x90\x85\x90\x7e\x91\x38\x91\x9a\x91\xa2\x91\x9b\x91\x99\x91\x9f\x91\xa1\x91\x9d\x91\xa0\x93\xa1\x93\x83\x93\xaf\x93\x64\x93\x56\x93\x47\x93\x7c\x93\x58\x93\x5c\x93\x76\x93\x49\x93\x50\x93\x51\x93\x60\x93\x6d\x93\x8f\x93\x4c\x93\x6a\x93\x79\x93\x57\x93\x55\x93\x52\x93\x4f\x93\x71\x93\x77\x93\x7b\x93\x61\x93\x5e\x93\x63\x93\x67\x93\x80\x93\x4e\x93\x59\x95\xc7\x95\xc0\x95\xc9\x95\xc3\x95\xc5\x95\xb7\x96\xae\x96\xb0\x96\xac\x97\x20\x97\x1f\x97\x18\x97\x1d\x97\x19\x97\x9a\x97\xa1\x97\x9c\x97\x9e\x97\x9d\x97\xd5\x97\xd4\x97\xf1\x98\x41\x98\x44\x98\x4a\x98\x49\x98\x45\x98\x43\x99\x25\x99\x2b\x99\x2c\x99\x2a\x99\x33\x99\x32\x99\x2f\x99\x2d\x99\x31\x99\x30\x99\x98\x99\xa3\x99\xa1\x9a\x02\x99\xfa\x99\xf4\x99\xf7\x99\xf9\x99\xf8\x99\xf6\x99\xfb\x99\xfd\x99\xfe\x99\xfc\x9a\x03\x9a\xbe\x9a\xfe\x9a\xfd\x9b\x01\x9a\xfc\x9b\x48\x9b\x9a\x9b\xa8\x9b\x9e\x9b\x9b\x9b\xa6\x9b\xa1\x9b\xa5\x9b\xa4\x00\x00\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x86\x9b\xa2\x9b\xa0\x9b\xaf\x9d\x33\x9d\x41\x9d\x67\x9d\x36\x9d\x2e\x9d\x2f\x9d\x31\x9d\x38\x9d\x30\x9d\x45\x9d\x42\x9d\x43\x9d\x3e\x9d\x37\x9d\x40\x9d\x3d\x7f\xf5\x9d\x2d\x9e\x8a\x9e\x89\x9e\x8d\x9e\xb0\x9e\xc8\x9e\xda\x9e\xfb\x9e\xff\x9f\x24\x9f\x23\x9f\x22\x9f\x54\x9f\xa0\x51\x31\x51\x2d\x51\x2e\x56\x98\x56\x9c\x56\x97\x56\x9a\x56\x9d\x56\x99\x59\x70\x5b\x3c\x5c\x69\x5c\x6a\x5d\xc0\x5e\x6d\x5e\x6e\x61\xd8\x61\xdf\x61\xed\x61\xee\x61\xf1\x61\xea\x61\xf0\x61\xeb\x61\xd6\x61\xe9\x64\xff\x65\x04", /* 8980 */ "\x00\x00\x64\xfd\x64\xf8\x65\x01\x65\x03\x64\xfc\x65\x94\x65\xdb\x66\xda\x66\xdb\x66\xd8\x6a\xc5\x6a\xb9\x6a\xbd\x6a\xe1\x6a\xc6\x6a\xba\x6a\xb6\x6a\xb7\x6a\xc7\x6a\xb4\x6a\xad\x6b\x5e\x6b\xc9\x6c\x0b\x70\x07\x70\x0c\x70\x0d\x70\x01\x70\x05\x70\x14\x70\x0e\x6f\xff\x70\x00\x6f\xfb\x70\x26\x6f\xfc\x6f\xf7\x70\x0a\x72\x01\x71\xff\x71\xf9\x72\x03\x71\xfd\x73\x76\x74\xb8\x74\xc0\x74\xb5\x74\xc1\x74\xbe\x74\xb6\x74\xbb\x74\xc2\x75\x14\x75\x13\x76\x5c\x76\x64\x76\x59\x76\x50\x76\x53\x76\x57\x76\x5a\x76\xa6\x76\xbd\x76\xec\x77\xc2\x77\xba\x78\xff\x79\x0c\x79\x13\x79\x14\x79\x09\x79\x10\x79\x12\x79\x11\x79\xad\x79\xac\x7a\x5f\x7c\x1c\x7c\x29\x7c\x19\x7c\x20\x7c\x1f\x7c\x2d\x7c\x1d\x7c\x26\x7c\x28\x7c\x22\x7c\x25\x7c\x30\x7e\x5c\x7e\x50\x7e\x56\x7e\x63\x7e\x58\x7e\x62\x7e\x5f\x7e\x51\x7e\x60\x7e\x57\x7e\x53\x7f\xb5\x7f\xb3\x7f\xf7\x7f\xf8\x80\x75\x81\xd1\x81\xd2\x81\xd0\x82\x5f\x82\x5e\x85\xb4\x85\xc6\x85\xc0\x85\xc3\x85\xc2\x85\xb3\x85\xb5\x85\xbd\x85\xc7\x85\xc4\x85\xbf\x85\xcb\x85\xce\x85\xc8\x85\xc5\x00\x00\x00\x00", /* 8a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\xb1\x85\xb6\x85\xd2\x86\x24\x85\xb8\x85\xb7\x85\xbe\x86\x69\x87\xe7\x87\xe6\x87\xe2\x87\xdb\x87\xeb\x87\xea\x87\xe5\x87\xdf\x87\xf3\x87\xe4\x87\xd4\x87\xdc\x87\xd3\x87\xed\x87\xd8\x87\xe3\x87\xa4\x87\xd7\x87\xd9\x88\x01\x87\xf4\x87\xe8\x87\xdd\x89\x53\x89\x4b\x89\x4f\x89\x4c\x89\x46\x89\x50\x89\x51\x89\x49\x8b\x2a\x8b\x27\x8b\x23\x8b\x33\x8b\x30\x8b\x35\x8b\x47\x8b\x2f\x8b\x3c\x8b\x3e\x8b\x31\x8b\x25\x8b\x37\x8b\x26\x8b\x36\x8b\x2e\x8b\x24\x8b\x3b\x8b\x3d\x8b\x3a\x8c\x42\x8c\x75\x8c\x99\x8c\x98", /* 8a80 */ "\x00\x00\x8c\x97\x8c\xfe\x8d\x04\x8d\x02\x8d\x00\x8e\x5c\x8e\x62\x8e\x60\x8e\x57\x8e\x56\x8e\x5e\x8e\x65\x8e\x67\x8e\x5b\x8e\x5a\x8e\x61\x8e\x5d\x8e\x69\x8e\x54\x8f\x46\x8f\x47\x8f\x48\x8f\x4b\x91\x28\x91\x3a\x91\x3b\x91\x3e\x91\xa8\x91\xa5\x91\xa7\x91\xaf\x91\xaa\x93\xb5\x93\x8c\x93\x92\x93\xb7\x93\x9b\x93\x9d\x93\x89\x93\xa7\x93\x8e\x93\xaa\x93\x9e\x93\xa6\x93\x95\x93\x88\x93\x99\x93\x9f\x93\x8d\x93\xb1\x93\x91\x93\xb2\x93\xa4\x93\xa8\x93\xb4\x93\xa3\x93\xa5\x95\xd2\x95\xd3\x95\xd1\x96\xb3\x96\xd7\x96\xda\x5d\xc2\x96\xdf\x96\xd8\x96\xdd\x97\x23\x97\x22\x97\x25\x97\xac\x97\xae\x97\xa8\x97\xab\x97\xa4\x97\xaa\x97\xa2\x97\xa5\x97\xd7\x97\xd9\x97\xd6\x97\xd8\x97\xfa\x98\x50\x98\x51\x98\x52\x98\xb8\x99\x41\x99\x3c\x99\x3a\x9a\x0f\x9a\x0b\x9a\x09\x9a\x0d\x9a\x04\x9a\x11\x9a\x0a\x9a\x05\x9a\x07\x9a\x06\x9a\xc0\x9a\xdc\x9b\x08\x9b\x04\x9b\x05\x9b\x29\x9b\x35\x9b\x4a\x9b\x4c\x9b\x4b\x9b\xc7\x9b\xc6\x9b\xc3\x9b\xbf\x9b\xc1\x9b\xb5\x9b\xb8\x9b\xd3\x9b\xb6\x9b\xc4\x9b\xb9\x9b\xbd\x9d\x5c\x9d\x53\x9d\x4f\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x4a\x9d\x5b\x9d\x4b\x9d\x59\x9d\x56\x9d\x4c\x9d\x57\x9d\x52\x9d\x54\x9d\x5f\x9d\x58\x9d\x5a\x9e\x8e\x9e\x8c\x9e\xdf\x9f\x01\x9f\x00\x9f\x16\x9f\x25\x9f\x2b\x9f\x2a\x9f\x29\x9f\x28\x9f\x4c\x9f\x55\x51\x34\x51\x35\x52\x96\x52\xf7\x53\xb4\x56\xab\x56\xad\x56\xa6\x56\xa7\x56\xaa\x56\xac\x58\xda\x58\xdd\x58\xdb\x59\x12\x5b\x3d\x5b\x3e\x5b\x3f\x5d\xc3\x5e\x70\x5f\xbf\x61\xfb\x65\x07\x65\x10\x65\x0d\x65\x09\x65\x0c\x65\x0e\x65\x84\x65\xde\x65\xdd\x66\xde\x6a\xe7\x6a\xe0\x6a\xcc\x6a\xd1\x6a\xd9\x6a\xcb", /* 8b80 */ "\x00\x00\x6a\xdf\x6a\xdc\x6a\xd0\x6a\xeb\x6a\xcf\x6a\xcd\x6a\xde\x6b\x60\x6b\xb0\x6c\x0c\x70\x19\x70\x27\x70\x20\x70\x16\x70\x2b\x70\x21\x70\x22\x70\x23\x70\x29\x70\x17\x70\x24\x70\x1c\x70\x2a\x72\x0c\x72\x0a\x72\x07\x72\x02\x72\x05\x72\xa5\x72\xa6\x72\xa4\x72\xa3\x72\xa1\x74\xcb\x74\xc5\x74\xb7\x74\xc3\x75\x16\x76\x60\x77\xc9\x77\xca\x77\xc4\x77\xf1\x79\x1d\x79\x1b\x79\x21\x79\x1c\x79\x17\x79\x1e\x79\xb0\x7a\x67\x7a\x68\x7c\x33\x7c\x3c\x7c\x39\x7c\x2c\x7c\x3b\x7c\xec\x7c\xea\x7e\x76\x7e\x75\x7e\x78\x7e\x70\x7e\x77\x7e\x6f\x7e\x7a\x7e\x72\x7e\x74\x7e\x68\x7f\x4b\x7f\x4a\x7f\x83\x7f\x86\x7f\xb7\x7f\xfd\x7f\xfe\x80\x78\x81\xd7\x81\xd5\x82\x64\x82\x61\x82\x63\x85\xeb\x85\xf1\x85\xed\x85\xd9\x85\xe1\x85\xe8\x85\xda\x85\xd7\x85\xec\x85\xf2\x85\xf8\x85\xd8\x85\xdf\x85\xe3\x85\xdc\x85\xd1\x85\xf0\x85\xe6\x85\xef\x85\xde\x85\xe2\x88\x00\x87\xfa\x88\x03\x87\xf6\x87\xf7\x88\x09\x88\x0c\x88\x0b\x88\x06\x87\xfc\x88\x08\x87\xff\x88\x0a\x88\x02\x89\x62\x89\x5a\x89\x5b\x89\x57\x89\x61\x89\x5c\x89\x58\x89\x5d\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x59\x89\x88\x89\xb7\x89\xb6\x89\xf6\x8b\x50\x8b\x48\x8b\x4a\x8b\x40\x8b\x53\x8b\x56\x8b\x54\x8b\x4b\x8b\x55\x8b\x51\x8b\x42\x8b\x52\x8b\x57\x8c\x43\x8c\x77\x8c\x76\x8c\x9a\x8d\x06\x8d\x07\x8d\x09\x8d\xac\x8d\xaa\x8d\xad\x8d\xab\x8e\x6d\x8e\x78\x8e\x73\x8e\x6a\x8e\x6f\x8e\x7b\x8e\xc2\x8f\x52\x8f\x51\x8f\x4f\x8f\x50\x8f\x53\x8f\xb4\x91\x40\x91\x3f\x91\xb0\x91\xad\x93\xde\x93\xc7\x93\xcf\x93\xc2\x93\xda\x93\xd0\x93\xf9\x93\xec\x93\xcc\x93\xd9\x93\xa9\x93\xe6\x93\xca\x93\xd4\x93\xee\x93\xe3\x93\xd5", /* 8c80 */ "\x00\x00\x93\xc4\x93\xce\x93\xc0\x93\xd2\x93\xe7\x95\x7d\x95\xda\x95\xdb\x96\xe1\x97\x29\x97\x2b\x97\x2c\x97\x28\x97\x26\x97\xb3\x97\xb7\x97\xb6\x97\xdd\x97\xde\x97\xdf\x98\x5c\x98\x59\x98\x5d\x98\x57\x98\xbf\x98\xbd\x98\xbb\x98\xbe\x99\x48\x99\x47\x99\x43\x99\xa6\x99\xa7\x9a\x1a\x9a\x15\x9a\x25\x9a\x1d\x9a\x24\x9a\x1b\x9a\x22\x9a\x20\x9a\x27\x9a\x23\x9a\x1e\x9a\x1c\x9a\x14\x9a\xc2\x9b\x0b\x9b\x0a\x9b\x0e\x9b\x0c\x9b\x37\x9b\xea\x9b\xeb\x9b\xe0\x9b\xde\x9b\xe4\x9b\xe6\x9b\xe2\x9b\xf0\x9b\xd4\x9b\xd7\x9b\xec\x9b\xdc\x9b\xd9\x9b\xe5\x9b\xd5\x9b\xe1\x9b\xda\x9d\x77\x9d\x81\x9d\x8a\x9d\x84\x9d\x88\x9d\x71\x9d\x80\x9d\x78\x9d\x86\x9d\x8b\x9d\x8c\x9d\x7d\x9d\x6b\x9d\x74\x9d\x75\x9d\x70\x9d\x69\x9d\x85\x9d\x73\x9d\x7b\x9d\x82\x9d\x6f\x9d\x79\x9d\x7f\x9d\x87\x9d\x68\x9e\x94\x9e\x91\x9e\xc0\x9e\xfc\x9f\x2d\x9f\x40\x9f\x41\x9f\x4d\x9f\x56\x9f\x57\x9f\x58\x53\x37\x56\xb2\x56\xb5\x56\xb3\x58\xe3\x5b\x45\x5d\xc6\x5d\xc7\x5e\xee\x5e\xef\x5f\xc0\x5f\xc1\x61\xf9\x65\x17\x65\x16\x65\x15\x65\x13\x65\xdf\x66\xe8\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe3\x66\xe4\x6a\xf3\x6a\xf0\x6a\xea\x6a\xe8\x6a\xf9\x6a\xf1\x6a\xee\x6a\xef\x70\x3c\x70\x35\x70\x2f\x70\x37\x70\x34\x70\x31\x70\x42\x70\x38\x70\x3f\x70\x3a\x70\x39\x70\x40\x70\x3b\x70\x33\x70\x41\x72\x13\x72\x14\x72\xa8\x73\x7d\x73\x7c\x74\xba\x76\xab\x76\xaa\x76\xbe\x76\xed\x77\xcc\x77\xce\x77\xcf\x77\xcd\x77\xf2\x79\x25\x79\x23\x79\x27\x79\x28\x79\x24\x79\x29\x79\xb2\x7a\x6e\x7a\x6c\x7a\x6d\x7a\xf7\x7c\x49\x7c\x48\x7c\x4a\x7c\x47\x7c\x45\x7c\xee\x7e\x7b\x7e\x7e\x7e\x81\x7e\x80\x7f\xba\x7f\xff", /* 8d80 */ "\x00\x00\x80\x79\x81\xdb\x81\xd9\x82\x0b\x82\x68\x82\x69\x86\x22\x85\xff\x86\x01\x85\xfe\x86\x1b\x86\x00\x85\xf6\x86\x04\x86\x09\x86\x05\x86\x0c\x85\xfd\x88\x19\x88\x10\x88\x11\x88\x17\x88\x13\x88\x16\x89\x63\x89\x66\x89\xb9\x89\xf7\x8b\x60\x8b\x6a\x8b\x5d\x8b\x68\x8b\x63\x8b\x65\x8b\x67\x8b\x6d\x8d\xae\x8e\x86\x8e\x88\x8e\x84\x8f\x59\x8f\x56\x8f\x57\x8f\x55\x8f\x58\x8f\x5a\x90\x8d\x91\x43\x91\x41\x91\xb7\x91\xb5\x91\xb2\x91\xb3\x94\x0b\x94\x13\x93\xfb\x94\x20\x94\x0f\x94\x14\x93\xfe\x94\x15\x94\x10\x94\x28\x94\x19\x94\x0d\x93\xf5\x94\x00\x93\xf7\x94\x07\x94\x0e\x94\x16\x94\x12\x93\xfa\x94\x09\x93\xf8\x94\x0a\x93\xff\x93\xfc\x94\x0c\x93\xf6\x94\x11\x94\x06\x95\xde\x95\xe0\x95\xdf\x97\x2e\x97\x2f\x97\xb9\x97\xbb\x97\xfd\x97\xfe\x98\x60\x98\x62\x98\x63\x98\x5f\x98\xc1\x98\xc2\x99\x50\x99\x4e\x99\x59\x99\x4c\x99\x4b\x99\x53\x9a\x32\x9a\x34\x9a\x31\x9a\x2c\x9a\x2a\x9a\x36\x9a\x29\x9a\x2e\x9a\x38\x9a\x2d\x9a\xc7\x9a\xca\x9a\xc6\x9b\x10\x9b\x12\x9b\x11\x9c\x0b\x9c\x08\x9b\xf7\x9c\x05\x9c\x12\x9b\xf8\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x40\x9c\x07\x9c\x0e\x9c\x06\x9c\x17\x9c\x14\x9c\x09\x9d\x9f\x9d\x99\x9d\xa4\x9d\x9d\x9d\x92\x9d\x98\x9d\x90\x9d\x9b\x9d\xa0\x9d\x94\x9d\x9c\x9d\xaa\x9d\x97\x9d\xa1\x9d\x9a\x9d\xa2\x9d\xa8\x9d\x9e\x9d\xa3\x9d\xbf\x9d\xa9\x9d\x96\x9d\xa6\x9d\xa7\x9e\x99\x9e\x9b\x9e\x9a\x9e\xe5\x9e\xe4\x9e\xe7\x9e\xe6\x9f\x30\x9f\x2e\x9f\x5b\x9f\x60\x9f\x5e\x9f\x5d\x9f\x59\x9f\x91\x51\x3a\x51\x39\x52\x98\x52\x97\x56\xc3\x56\xbd\x56\xbe\x5b\x48\x5b\x47\x5d\xcb\x5d\xcf\x5e\xf1\x61\xfd\x65\x1b\x6b\x02\x6a\xfc\x6b\x03", /* 8e80 */ "\x00\x00\x6a\xf8\x6b\x00\x70\x43\x70\x44\x70\x4a\x70\x48\x70\x49\x70\x45\x70\x46\x72\x1d\x72\x1a\x72\x19\x73\x7e\x75\x17\x76\x6a\x77\xd0\x79\x2d\x79\x31\x79\x2f\x7c\x54\x7c\x53\x7c\xf2\x7e\x8a\x7e\x87\x7e\x88\x7e\x8b\x7e\x86\x7e\x8d\x7f\x4d\x7f\xbb\x80\x30\x81\xdd\x86\x18\x86\x2a\x86\x26\x86\x1f\x86\x23\x86\x1c\x86\x19\x86\x27\x86\x2e\x86\x21\x86\x20\x86\x29\x86\x1e\x86\x25\x88\x29\x88\x1d\x88\x1b\x88\x20\x88\x24\x88\x1c\x88\x2b\x88\x4a\x89\x6d\x89\x69\x89\x6e\x89\x6b\x89\xfa\x8b\x79\x8b\x78\x8b\x45\x8b\x7a\x8b\x7b\x8d\x10\x8d\x14\x8d\xaf\x8e\x8e\x8e\x8c\x8f\x5e\x8f\x5b\x8f\x5d\x91\x46\x91\x44\x91\x45\x91\xb9\x94\x3f\x94\x3b\x94\x36\x94\x29\x94\x3d\x94\x3c\x94\x30\x94\x39\x94\x2a\x94\x37\x94\x2c\x94\x40\x94\x31\x95\xe5\x95\xe4\x95\xe3\x97\x35\x97\x3a\x97\xbf\x97\xe1\x98\x64\x98\xc9\x98\xc6\x98\xc0\x99\x58\x99\x56\x9a\x39\x9a\x3d\x9a\x46\x9a\x44\x9a\x42\x9a\x41\x9a\x3a\x9a\x3f\x9a\xcd\x9b\x15\x9b\x17\x9b\x18\x9b\x16\x9b\x3a\x9b\x52\x9c\x2b\x9c\x1d\x9c\x1c\x9c\x2c\x9c\x23\x9c\x28\x9c\x29\x9c\x24\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x21\x9d\xb7\x9d\xb6\x9d\xbc\x9d\xc1\x9d\xc7\x9d\xca\x9d\xcf\x9d\xbe\x9d\xc5\x9d\xc3\x9d\xbb\x9d\xb5\x9d\xce\x9d\xb9\x9d\xba\x9d\xac\x9d\xc8\x9d\xb1\x9d\xad\x9d\xcc\x9d\xb3\x9d\xcd\x9d\xb2\x9e\x7a\x9e\x9c\x9e\xeb\x9e\xee\x9e\xed\x9f\x1b\x9f\x18\x9f\x1a\x9f\x31\x9f\x4e\x9f\x65\x9f\x64\x9f\x92\x4e\xb9\x56\xc6\x56\xc5\x56\xcb\x59\x71\x5b\x4b\x5b\x4c\x5d\xd5\x5d\xd1\x5e\xf2\x65\x21\x65\x20\x65\x26\x65\x22\x6b\x0b\x6b\x08\x6b\x09\x6c\x0d\x70\x55\x70\x56\x70\x57\x70\x52\x72\x1e\x72\x1f\x72\xa9\x73\x7f", /* 8f80 */ "\x00\x00\x74\xd8\x74\xd5\x74\xd9\x74\xd7\x76\x6d\x76\xad\x79\x35\x79\xb4\x7a\x70\x7a\x71\x7c\x57\x7c\x5c\x7c\x59\x7c\x5b\x7c\x5a\x7c\xf4\x7c\xf1\x7e\x91\x7f\x4f\x7f\x87\x81\xde\x82\x6b\x86\x34\x86\x35\x86\x33\x86\x2c\x86\x32\x86\x36\x88\x2c\x88\x28\x88\x26\x88\x2a\x88\x25\x89\x71\x89\xbf\x89\xbe\x89\xfb\x8b\x7e\x8b\x84\x8b\x82\x8b\x86\x8b\x85\x8b\x7f\x8d\x15\x8e\x95\x8e\x94\x8e\x9a\x8e\x92\x8e\x90\x8e\x96\x8e\x97\x8f\x60\x8f\x62\x91\x47\x94\x4c\x94\x50\x94\x4a\x94\x4b\x94\x4f\x94\x47\x94\x45\x94\x48\x94\x49\x94\x46\x97\x3f\x97\xe3\x98\x6a\x98\x69\x98\xcb\x99\x54\x99\x5b\x9a\x4e\x9a\x53\x9a\x54\x9a\x4c\x9a\x4f\x9a\x48\x9a\x4a\x9a\x49\x9a\x52\x9a\x50\x9a\xd0\x9b\x19\x9b\x2b\x9b\x3b\x9b\x56\x9b\x55\x9c\x46\x9c\x48\x9c\x3f\x9c\x44\x9c\x39\x9c\x33\x9c\x41\x9c\x3c\x9c\x37\x9c\x34\x9c\x32\x9c\x3d\x9c\x36\x9d\xdb\x9d\xd2\x9d\xde\x9d\xda\x9d\xcb\x9d\xd0\x9d\xdc\x9d\xd1\x9d\xdf\x9d\xe9\x9d\xd9\x9d\xd8\x9d\xd6\x9d\xf5\x9d\xd5\x9d\xdd\x9e\xb6\x9e\xf0\x9f\x35\x9f\x33\x9f\x32\x9f\x42\x9f\x6b\x9f\x95\x9f\xa2\x00\x00\x00\x00", /* 9000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x3d\x52\x99\x58\xe8\x58\xe7\x59\x72\x5b\x4d\x5d\xd8\x88\x2f\x5f\x4f\x62\x01\x62\x03\x62\x04\x65\x29\x65\x25\x65\x96\x66\xeb\x6b\x11\x6b\x12\x6b\x0f\x6b\xca\x70\x5b\x70\x5a\x72\x22\x73\x82\x73\x81\x73\x83\x76\x70\x77\xd4\x7c\x67\x7c\x66\x7e\x95\x82\x6c\x86\x3a\x86\x40\x86\x39\x86\x3c\x86\x31\x86\x3b\x86\x3e\x88\x30\x88\x32\x88\x2e\x88\x33\x89\x76\x89\x74\x89\x73\x89\xfe\x8b\x8c\x8b\x8e\x8b\x8b\x8b\x88\x8c\x45\x8d\x19\x8e\x98\x8f\x64\x8f\x63\x91\xbc\x94\x62\x94\x55\x94\x5d\x94\x57\x94\x5e\x97\xc4", /* 9080 */ "\x00\x00\x97\xc5\x98\x00\x9a\x56\x9a\x59\x9b\x1e\x9b\x1f\x9b\x20\x9c\x52\x9c\x58\x9c\x50\x9c\x4a\x9c\x4d\x9c\x4b\x9c\x55\x9c\x59\x9c\x4c\x9c\x4e\x9d\xfb\x9d\xf7\x9d\xef\x9d\xe3\x9d\xeb\x9d\xf8\x9d\xe4\x9d\xf6\x9d\xe1\x9d\xee\x9d\xe6\x9d\xf2\x9d\xf0\x9d\xe2\x9d\xec\x9d\xf4\x9d\xf3\x9d\xe8\x9d\xed\x9e\xc2\x9e\xd0\x9e\xf2\x9e\xf3\x9f\x06\x9f\x1c\x9f\x38\x9f\x37\x9f\x36\x9f\x43\x9f\x4f\x9f\x71\x9f\x70\x9f\x6e\x9f\x6f\x56\xd3\x56\xcd\x5b\x4e\x5c\x6d\x65\x2d\x66\xed\x66\xee\x6b\x13\x70\x5f\x70\x61\x70\x5d\x70\x60\x72\x23\x74\xdb\x74\xe5\x77\xd5\x79\x38\x79\xb7\x79\xb6\x7c\x6a\x7e\x97\x7f\x89\x82\x6d\x86\x43\x88\x38\x88\x37\x88\x35\x88\x4b\x8b\x94\x8b\x95\x8e\x9e\x8e\x9f\x8e\xa0\x8e\x9d\x91\xbe\x91\xbd\x91\xc2\x94\x6b\x94\x68\x94\x69\x96\xe5\x97\x46\x97\x43\x97\x47\x97\xc7\x97\xe5\x9a\x5e\x9a\xd5\x9b\x59\x9c\x63\x9c\x67\x9c\x66\x9c\x62\x9c\x5e\x9c\x60\x9e\x02\x9d\xfe\x9e\x07\x9e\x03\x9e\x06\x9e\x05\x9e\x00\x9e\x01\x9e\x09\x9d\xff\x9d\xfd\x9e\x04\x9e\xa0\x9f\x1e\x9f\x46\x9f\x74\x9f\x75\x9f\x76\x56\xd4\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x2e\x65\xb8\x6b\x18\x6b\x19\x6b\x17\x6b\x1a\x70\x62\x72\x26\x72\xaa\x77\xd8\x77\xd9\x79\x39\x7c\x69\x7c\x6b\x7c\xf6\x7e\x9a\x7e\x98\x7e\x9b\x7e\x99\x81\xe0\x81\xe1\x86\x46\x86\x47\x86\x48\x89\x79\x89\x7a\x89\x7c\x89\x7b\x89\xff\x8b\x98\x8b\x99\x8e\xa5\x8e\xa4\x8e\xa3\x94\x6e\x94\x6d\x94\x6f\x94\x71\x94\x73\x97\x49\x98\x72\x99\x5f\x9c\x68\x9c\x6e\x9c\x6d\x9e\x0b\x9e\x0d\x9e\x10\x9e\x0f\x9e\x12\x9e\x11\x9e\xa1\x9e\xf5\x9f\x09\x9f\x47\x9f\x78\x9f\x7b\x9f\x7a\x9f\x79\x57\x1e\x70\x66\x7c\x6f\x88\x3c", /* 9180 */ "\x00\x00\x8d\xb2\x8e\xa6\x91\xc3\x94\x74\x94\x78\x94\x76\x94\x75\x9a\x60\x9c\x74\x9c\x73\x9c\x71\x9c\x75\x9e\x14\x9e\x13\x9e\xf6\x9f\x0a\x9f\xa4\x70\x68\x70\x65\x7c\xf7\x86\x6a\x88\x3e\x88\x3d\x88\x3f\x8b\x9e\x8c\x9c\x8e\xa9\x8e\xc9\x97\x4b\x98\x73\x98\x74\x98\xcc\x99\x61\x99\xab\x9a\x64\x9a\x66\x9a\x67\x9b\x24\x9e\x15\x9e\x17\x9f\x48\x62\x07\x6b\x1e\x72\x27\x86\x4c\x8e\xa8\x94\x82\x94\x80\x94\x81\x9a\x69\x9a\x68\x9b\x2e\x9e\x19\x72\x29\x86\x4b\x8b\x9f\x94\x83\x9c\x79\x9e\xb7\x76\x75\x9a\x6b\x9c\x7a\x9e\x1d\x70\x69\x70\x6a\x9e\xa4\x9f\x7e\x9f\x49\x9f\x98\x69\x1e\x6e\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* c280 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* c300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* c380 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* c400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* c480 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* c500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* c580 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* c600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* c680 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* c700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* c780 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* c800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* c880 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* c900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* c980 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* ca00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* ca80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* cb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* cb80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* cc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96", /* cc80 */ "\x00\x00\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xe7\xa8\xe7\xa9\xe7\xaa\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe7\xff\xe8\x00\xe8\x01\xe8\x02\xe8\x03\xe8\x04\xe8\x05\xe8\x06\xe8\x07\xe8\x08\xe8\x09\xe8\x0a\xe8\x0b\xe8\x0c\xe8\x0d\xe8\x0e\xe8\x0f\xe8\x10\xe8\x11\xe8\x12\xe8\x13\x00\x00\x00\x00", /* cd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x14\xe8\x15\xe8\x16\xe8\x17\xe8\x18\xe8\x19\xe8\x1a\xe8\x1b\xe8\x1c\xe8\x1d\xe8\x1e\xe8\x1f\xe8\x20\xe8\x21\xe8\x22\xe8\x23\xe8\x24\xe8\x25\xe8\x26\xe8\x27\xe8\x28\xe8\x29\xe8\x2a\xe8\x2b\xe8\x2c\xe8\x2d\xe8\x2e\xe8\x2f\xe8\x30\xe8\x31\xe8\x32\xe8\x33\xe8\x34\xe8\x35\xe8\x36\xe8\x37\xe8\x38\xe8\x39\xe8\x3a\xe8\x3b\xe8\x3c\xe8\x3d\xe8\x3e\xe8\x3f\xe8\x40\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52", /* cd80 */ "\x00\x00\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\x00\x00\x00\x00", /* ce00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe8\xff\xe9\x00\xe9\x01\xe9\x02\xe9\x03\xe9\x04\xe9\x05\xe9\x06\xe9\x07\xe9\x08\xe9\x09\xe9\x0a\xe9\x0b\xe9\x0c\xe9\x0d\xe9\x0e", /* ce80 */ "\x00\x00\xe9\x0f\xe9\x10\xe9\x11\xe9\x12\xe9\x13\xe9\x14\xe9\x15\xe9\x16\xe9\x17\xe9\x18\xe9\x19\xe9\x1a\xe9\x1b\xe9\x1c\xe9\x1d\xe9\x1e\xe9\x1f\xe9\x20\xe9\x21\xe9\x22\xe9\x23\xe9\x24\xe9\x25\xe9\x26\xe9\x27\xe9\x28\xe9\x29\xe9\x2a\xe9\x2b\xe9\x2c\xe9\x2d\xe9\x2e\xe9\x2f\xe9\x30\xe9\x31\xe9\x32\xe9\x33\xe9\x34\xe9\x35\xe9\x36\xe9\x37\xe9\x38\xe9\x39\xe9\x3a\xe9\x3b\xe9\x3c\xe9\x3d\xe9\x3e\xe9\x3f\xe9\x40\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xe9\x58\xe9\x59\xe9\x5a\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\x00\x00\x00\x00", /* cf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca", /* cf80 */ "\x00\x00\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xe9\xff\xea\x00\xea\x01\xea\x02\xea\x03\xea\x04\xea\x05\xea\x06\xea\x07\xea\x08\xea\x09\xea\x0a\xea\x0b\xea\x0c\xea\x0d\xea\x0e\xea\x0f\xea\x10\xea\x11\xea\x12\xea\x13\xea\x14\xea\x15\xea\x16\xea\x17\xea\x18\xea\x19\xea\x1a\xea\x1b\xea\x1c\xea\x1d\xea\x1e\xea\x1f\xea\x20\xea\x21\xea\x22\xea\x23\xea\x24\xea\x25\xea\x26\xea\x27\xea\x28\xea\x29\xea\x2a\xea\x2b\xea\x2c\xea\x2d\xea\x2e\xea\x2f\xea\x30\xea\x31\xea\x32\xea\x33\xea\x34\xea\x35\xea\x36\xea\x37\xea\x38\xea\x39\xea\x3a\xea\x3b\xea\x3c\xea\x3d\xea\x3e\xea\x3f\xea\x40\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\x00\x00\x00\x00", /* d000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86", /* d080 */ "\x00\x00\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xea\xff\xeb\x00\xeb\x01\xeb\x02\xeb\x03\x00\x00\x00\x00", /* d100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x04\xeb\x05\xeb\x06\xeb\x07\xeb\x08\xeb\x09\xeb\x0a\xeb\x0b\xeb\x0c\xeb\x0d\xeb\x0e\xeb\x0f\xeb\x10\xeb\x11\xeb\x12\xeb\x13\xeb\x14\xeb\x15\xeb\x16\xeb\x17\xeb\x18\xeb\x19\xeb\x1a\xeb\x1b\xeb\x1c\xeb\x1d\xeb\x1e\xeb\x1f\xeb\x20\xeb\x21\xeb\x22\xeb\x23\xeb\x24\xeb\x25\xeb\x26\xeb\x27\xeb\x28\xeb\x29\xeb\x2a\xeb\x2b\xeb\x2c\xeb\x2d\xeb\x2e\xeb\x2f\xeb\x30\xeb\x31\xeb\x32\xeb\x33\xeb\x34\xeb\x35\xeb\x36\xeb\x37\xeb\x38\xeb\x39\xeb\x3a\xeb\x3b\xeb\x3c\xeb\x3d\xeb\x3e\xeb\x3f\xeb\x40\xeb\x41\xeb\x42", /* d180 */ "\x00\x00\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d\xeb\x5e\xeb\x5f\xeb\x60\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\x00\x00\x00\x00", /* d200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xeb\xd7\xeb\xd8\xeb\xd9\xeb\xda\xeb\xdb\xeb\xdc\xeb\xdd\xeb\xde\xeb\xdf\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xeb\xf2\xeb\xf3\xeb\xf4\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe", /* d280 */ "\x00\x00\xeb\xff\xec\x00\xec\x01\xec\x02\xec\x03\xec\x04\xec\x05\xec\x06\xec\x07\xec\x08\xec\x09\xec\x0a\xec\x0b\xec\x0c\xec\x0d\xec\x0e\xec\x0f\xec\x10\xec\x11\xec\x12\xec\x13\xec\x14\xec\x15\xec\x16\xec\x17\xec\x18\xec\x19\xec\x1a\xec\x1b\xec\x1c\xec\x1d\xec\x1e\xec\x1f\xec\x20\xec\x21\xec\x22\xec\x23\xec\x24\xec\x25\xec\x26\xec\x27\xec\x28\xec\x29\xec\x2a\xec\x2b\xec\x2c\xec\x2d\xec\x2e\xec\x2f\xec\x30\xec\x31\xec\x32\xec\x33\xec\x34\xec\x35\xec\x36\xec\x37\xec\x38\xec\x39\xec\x3a\xec\x3b\xec\x3c\xec\x3d\xec\x3e\xec\x3f\xec\x40\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\x00\x00\x00\x00", /* d300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba", /* d380 */ "\x00\x00\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xec\xff\xed\x00\xed\x01\xed\x02\xed\x03\xed\x04\xed\x05\xed\x06\xed\x07\xed\x08\xed\x09\xed\x0a\xed\x0b\xed\x0c\xed\x0d\xed\x0e\xed\x0f\xed\x10\xed\x11\xed\x12\xed\x13\xed\x14\xed\x15\xed\x16\xed\x17\xed\x18\xed\x19\xed\x1a\xed\x1b\xed\x1c\xed\x1d\xed\x1e\xed\x1f\xed\x20\xed\x21\xed\x22\xed\x23\xed\x24\xed\x25\xed\x26\xed\x27\xed\x28\xed\x29\xed\x2a\xed\x2b\xed\x2c\xed\x2d\xed\x2e\xed\x2f\xed\x30\xed\x31\xed\x32\xed\x33\xed\x34\xed\x35\xed\x36\xed\x37\x00\x00\x00\x00", /* d400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x38\xed\x39\xed\x3a\xed\x3b\xed\x3c\xed\x3d\xed\x3e\xed\x3f\xed\x40\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76", /* d480 */ "\x00\x00\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\x00\x00\x00\x00", /* d500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xed\xff\xee\x00\xee\x01\xee\x02\xee\x03\xee\x04\xee\x05\xee\x06\xee\x07\xee\x08\xee\x09\xee\x0a\xee\x0b\xee\x0c\xee\x0d\xee\x0e\xee\x0f\xee\x10\xee\x11\xee\x12\xee\x13\xee\x14\xee\x15\xee\x16\xee\x17\xee\x18\xee\x19\xee\x1a\xee\x1b\xee\x1c\xee\x1d\xee\x1e\xee\x1f\xee\x20\xee\x21\xee\x22\xee\x23\xee\x24\xee\x25\xee\x26\xee\x27\xee\x28\xee\x29\xee\x2a\xee\x2b\xee\x2c\xee\x2d\xee\x2e\xee\x2f\xee\x30\xee\x31\xee\x32", /* d580 */ "\x00\x00\xee\x33\xee\x34\xee\x35\xee\x36\xee\x37\xee\x38\xee\x39\xee\x3a\xee\x3b\xee\x3c\xee\x3d\xee\x3e\xee\x3f\xee\x40\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\x00\x00\x00\x00", /* d600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee", /* d680 */ "\x00\x00\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xee\xff\xef\x00\xef\x01\xef\x02\xef\x03\xef\x04\xef\x05\xef\x06\xef\x07\xef\x08\xef\x09\xef\x0a\xef\x0b\xef\x0c\xef\x0d\xef\x0e\xef\x0f\xef\x10\xef\x11\xef\x12\xef\x13\xef\x14\xef\x15\xef\x16\xef\x17\xef\x18\xef\x19\xef\x1a\xef\x1b\xef\x1c\xef\x1d\xef\x1e\xef\x1f\xef\x20\xef\x21\xef\x22\xef\x23\xef\x24\xef\x25\xef\x26\xef\x27\xef\x28\xef\x29\xef\x2a\xef\x2b\xef\x2c\xef\x2d\xef\x2e\xef\x2f\xef\x30\xef\x31\xef\x32\xef\x33\xef\x34\xef\x35\xef\x36\xef\x37\xef\x38\xef\x39\xef\x3a\xef\x3b\xef\x3c\xef\x3d\xef\x3e\xef\x3f\xef\x40\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\x00\x00\x00\x00", /* d700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa", /* d780 */ "\x00\x00\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xef\xd2\xef\xd3\xef\xd4\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xef\xff\xf0\x00\xf0\x01\xf0\x02\xf0\x03\xf0\x04\xf0\x05\xf0\x06\xf0\x07\xf0\x08\xf0\x09\xf0\x0a\xf0\x0b\xf0\x0c\xf0\x0d\xf0\x0e\xf0\x0f\xf0\x10\xf0\x11\xf0\x12\xf0\x13\xf0\x14\xf0\x15\xf0\x16\xf0\x17\xf0\x18\xf0\x19\xf0\x1a\xf0\x1b\xf0\x1c\xf0\x1d\xf0\x1e\xf0\x1f\xf0\x20\xf0\x21\xf0\x22\xf0\x23\xf0\x24\xf0\x25\xf0\x26\xf0\x27\x00\x00\x00\x00", /* d800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x28\xf0\x29\xf0\x2a\xf0\x2b\xf0\x2c\xf0\x2d\xf0\x2e\xf0\x2f\xf0\x30\xf0\x31\xf0\x32\xf0\x33\xf0\x34\xf0\x35\xf0\x36\xf0\x37\xf0\x38\xf0\x39\xf0\x3a\xf0\x3b\xf0\x3c\xf0\x3d\xf0\x3e\xf0\x3f\xf0\x40\xf0\x41\xf0\x42\xf0\x43\xf0\x44\xf0\x45\xf0\x46\xf0\x47\xf0\x48\xf0\x49\xf0\x4a\xf0\x4b\xf0\x4c\xf0\x4d\xf0\x4e\xf0\x4f\xf0\x50\xf0\x51\xf0\x52\xf0\x53\xf0\x54\xf0\x55\xf0\x56\xf0\x57\xf0\x58\xf0\x59\xf0\x5a\xf0\x5b\xf0\x5c\xf0\x5d\xf0\x5e\xf0\x5f\xf0\x60\xf0\x61\xf0\x62\xf0\x63\xf0\x64\xf0\x65\xf0\x66", /* d880 */ "\x00\x00\xf0\x67\xf0\x68\xf0\x69\xf0\x6a\xf0\x6b\xf0\x6c\xf0\x6d\xf0\x6e\xf0\x6f\xf0\x70\xf0\x71\xf0\x72\xf0\x73\xf0\x74\xf0\x75\xf0\x76\xf0\x77\xf0\x78\xf0\x79\xf0\x7a\xf0\x7b\xf0\x7c\xf0\x7d\xf0\x7e\xf0\x7f\xf0\x80\xf0\x81\xf0\x82\xf0\x83\xf0\x84\xf0\x85\xf0\x86\xf0\x87\xf0\x88\xf0\x89\xf0\x8a\xf0\x8b\xf0\x8c\xf0\x8d\xf0\x8e\xf0\x8f\xf0\x90\xf0\x91\xf0\x92\xf0\x93\xf0\x94\xf0\x95\xf0\x96\xf0\x97\xf0\x98\xf0\x99\xf0\x9a\xf0\x9b\xf0\x9c\xf0\x9d\xf0\x9e\xf0\x9f\xf0\xa0\xf0\xa1\xf0\xa2\xf0\xa3\xf0\xa4\xf0\xa5\xf0\xa6\xf0\xa7\xf0\xa8\xf0\xa9\xf0\xaa\xf0\xab\xf0\xac\xf0\xad\xf0\xae\xf0\xaf\xf0\xb0\xf0\xb1\xf0\xb2\xf0\xb3\xf0\xb4\xf0\xb5\xf0\xb6\xf0\xb7\xf0\xb8\xf0\xb9\xf0\xba\xf0\xbb\xf0\xbc\xf0\xbd\xf0\xbe\xf0\xbf\xf0\xc0\xf0\xc1\xf0\xc2\xf0\xc3\xf0\xc4\xf0\xc5\xf0\xc6\xf0\xc7\xf0\xc8\xf0\xc9\xf0\xca\xf0\xcb\xf0\xcc\xf0\xcd\xf0\xce\xf0\xcf\xf0\xd0\xf0\xd1\xf0\xd2\xf0\xd3\xf0\xd4\xf0\xd5\xf0\xd6\xf0\xd7\xf0\xd8\xf0\xd9\xf0\xda\xf0\xdb\xf0\xdc\xf0\xdd\xf0\xde\xf0\xdf\xf0\xe0\xf0\xe1\xf0\xe2\xf0\xe3\x00\x00\x00\x00", /* d900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xe4\xf0\xe5\xf0\xe6\xf0\xe7\xf0\xe8\xf0\xe9\xf0\xea\xf0\xeb\xf0\xec\xf0\xed\xf0\xee\xf0\xef\xf0\xf0\xf0\xf1\xf0\xf2\xf0\xf3\xf0\xf4\xf0\xf5\xf0\xf6\xf0\xf7\xf0\xf8\xf0\xf9\xf0\xfa\xf0\xfb\xf0\xfc\xf0\xfd\xf0\xfe\xf0\xff\xf1\x00\xf1\x01\xf1\x02\xf1\x03\xf1\x04\xf1\x05\xf1\x06\xf1\x07\xf1\x08\xf1\x09\xf1\x0a\xf1\x0b\xf1\x0c\xf1\x0d\xf1\x0e\xf1\x0f\xf1\x10\xf1\x11\xf1\x12\xf1\x13\xf1\x14\xf1\x15\xf1\x16\xf1\x17\xf1\x18\xf1\x19\xf1\x1a\xf1\x1b\xf1\x1c\xf1\x1d\xf1\x1e\xf1\x1f\xf1\x20\xf1\x21\xf1\x22", /* d980 */ "\x00\x00\xf1\x23\xf1\x24\xf1\x25\xf1\x26\xf1\x27\xf1\x28\xf1\x29\xf1\x2a\xf1\x2b\xf1\x2c\xf1\x2d\xf1\x2e\xf1\x2f\xf1\x30\xf1\x31\xf1\x32\xf1\x33\xf1\x34\xf1\x35\xf1\x36\xf1\x37\xf1\x38\xf1\x39\xf1\x3a\xf1\x3b\xf1\x3c\xf1\x3d\xf1\x3e\xf1\x3f\xf1\x40\xf1\x41\xf1\x42\xf1\x43\xf1\x44\xf1\x45\xf1\x46\xf1\x47\xf1\x48\xf1\x49\xf1\x4a\xf1\x4b\xf1\x4c\xf1\x4d\xf1\x4e\xf1\x4f\xf1\x50\xf1\x51\xf1\x52\xf1\x53\xf1\x54\xf1\x55\xf1\x56\xf1\x57\xf1\x58\xf1\x59\xf1\x5a\xf1\x5b\xf1\x5c\xf1\x5d\xf1\x5e\xf1\x5f\xf1\x60\xf1\x61\xf1\x62\xf1\x63\xf1\x64\xf1\x65\xf1\x66\xf1\x67\xf1\x68\xf1\x69\xf1\x6a\xf1\x6b\xf1\x6c\xf1\x6d\xf1\x6e\xf1\x6f\xf1\x70\xf1\x71\xf1\x72\xf1\x73\xf1\x74\xf1\x75\xf1\x76\xf1\x77\xf1\x78\xf1\x79\xf1\x7a\xf1\x7b\xf1\x7c\xf1\x7d\xf1\x7e\xf1\x7f\xf1\x80\xf1\x81\xf1\x82\xf1\x83\xf1\x84\xf1\x85\xf1\x86\xf1\x87\xf1\x88\xf1\x89\xf1\x8a\xf1\x8b\xf1\x8c\xf1\x8d\xf1\x8e\xf1\x8f\xf1\x90\xf1\x91\xf1\x92\xf1\x93\xf1\x94\xf1\x95\xf1\x96\xf1\x97\xf1\x98\xf1\x99\xf1\x9a\xf1\x9b\xf1\x9c\xf1\x9d\xf1\x9e\xf1\x9f\x00\x00\x00\x00", /* da00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\xa0\xf1\xa1\xf1\xa2\xf1\xa3\xf1\xa4\xf1\xa5\xf1\xa6\xf1\xa7\xf1\xa8\xf1\xa9\xf1\xaa\xf1\xab\xf1\xac\xf1\xad\xf1\xae\xf1\xaf\xf1\xb0\xf1\xb1\xf1\xb2\xf1\xb3\xf1\xb4\xf1\xb5\xf1\xb6\xf1\xb7\xf1\xb8\xf1\xb9\xf1\xba\xf1\xbb\xf1\xbc\xf1\xbd\xf1\xbe\xf1\xbf\xf1\xc0\xf1\xc1\xf1\xc2\xf1\xc3\xf1\xc4\xf1\xc5\xf1\xc6\xf1\xc7\xf1\xc8\xf1\xc9\xf1\xca\xf1\xcb\xf1\xcc\xf1\xcd\xf1\xce\xf1\xcf\xf1\xd0\xf1\xd1\xf1\xd2\xf1\xd3\xf1\xd4\xf1\xd5\xf1\xd6\xf1\xd7\xf1\xd8\xf1\xd9\xf1\xda\xf1\xdb\xf1\xdc\xf1\xdd\xf1\xde", /* da80 */ "\x00\x00\xf1\xdf\xf1\xe0\xf1\xe1\xf1\xe2\xf1\xe3\xf1\xe4\xf1\xe5\xf1\xe6\xf1\xe7\xf1\xe8\xf1\xe9\xf1\xea\xf1\xeb\xf1\xec\xf1\xed\xf1\xee\xf1\xef\xf1\xf0\xf1\xf1\xf1\xf2\xf1\xf3\xf1\xf4\xf1\xf5\xf1\xf6\xf1\xf7\xf1\xf8\xf1\xf9\xf1\xfa\xf1\xfb\xf1\xfc\xf1\xfd\xf1\xfe\xf1\xff\xf2\x00\xf2\x01\xf2\x02\xf2\x03\xf2\x04\xf2\x05\xf2\x06\xf2\x07\xf2\x08\xf2\x09\xf2\x0a\xf2\x0b\xf2\x0c\xf2\x0d\xf2\x0e\xf2\x0f\xf2\x10\xf2\x11\xf2\x12\xf2\x13\xf2\x14\xf2\x15\xf2\x16\xf2\x17\xf2\x18\xf2\x19\xf2\x1a\xf2\x1b\xf2\x1c\xf2\x1d\xf2\x1e\xf2\x1f\xf2\x20\xf2\x21\xf2\x22\xf2\x23\xf2\x24\xf2\x25\xf2\x26\xf2\x27\xf2\x28\xf2\x29\xf2\x2a\xf2\x2b\xf2\x2c\xf2\x2d\xf2\x2e\xf2\x2f\xf2\x30\xf2\x31\xf2\x32\xf2\x33\xf2\x34\xf2\x35\xf2\x36\xf2\x37\xf2\x38\xf2\x39\xf2\x3a\xf2\x3b\xf2\x3c\xf2\x3d\xf2\x3e\xf2\x3f\xf2\x40\xf2\x41\xf2\x42\xf2\x43\xf2\x44\xf2\x45\xf2\x46\xf2\x47\xf2\x48\xf2\x49\xf2\x4a\xf2\x4b\xf2\x4c\xf2\x4d\xf2\x4e\xf2\x4f\xf2\x50\xf2\x51\xf2\x52\xf2\x53\xf2\x54\xf2\x55\xf2\x56\xf2\x57\xf2\x58\xf2\x59\xf2\x5a\xf2\x5b\x00\x00\x00\x00", /* db00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x5c\xf2\x5d\xf2\x5e\xf2\x5f\xf2\x60\xf2\x61\xf2\x62\xf2\x63\xf2\x64\xf2\x65\xf2\x66\xf2\x67\xf2\x68\xf2\x69\xf2\x6a\xf2\x6b\xf2\x6c\xf2\x6d\xf2\x6e\xf2\x6f\xf2\x70\xf2\x71\xf2\x72\xf2\x73\xf2\x74\xf2\x75\xf2\x76\xf2\x77\xf2\x78\xf2\x79\xf2\x7a\xf2\x7b\xf2\x7c\xf2\x7d\xf2\x7e\xf2\x7f\xf2\x80\xf2\x81\xf2\x82\xf2\x83\xf2\x84\xf2\x85\xf2\x86\xf2\x87\xf2\x88\xf2\x89\xf2\x8a\xf2\x8b\xf2\x8c\xf2\x8d\xf2\x8e\xf2\x8f\xf2\x90\xf2\x91\xf2\x92\xf2\x93\xf2\x94\xf2\x95\xf2\x96\xf2\x97\xf2\x98\xf2\x99\xf2\x9a", /* db80 */ "\x00\x00\xf2\x9b\xf2\x9c\xf2\x9d\xf2\x9e\xf2\x9f\xf2\xa0\xf2\xa1\xf2\xa2\xf2\xa3\xf2\xa4\xf2\xa5\xf2\xa6\xf2\xa7\xf2\xa8\xf2\xa9\xf2\xaa\xf2\xab\xf2\xac\xf2\xad\xf2\xae\xf2\xaf\xf2\xb0\xf2\xb1\xf2\xb2\xf2\xb3\xf2\xb4\xf2\xb5\xf2\xb6\xf2\xb7\xf2\xb8\xf2\xb9\xf2\xba\xf2\xbb\xf2\xbc\xf2\xbd\xf2\xbe\xf2\xbf\xf2\xc0\xf2\xc1\xf2\xc2\xf2\xc3\xf2\xc4\xf2\xc5\xf2\xc6\xf2\xc7\xf2\xc8\xf2\xc9\xf2\xca\xf2\xcb\xf2\xcc\xf2\xcd\xf2\xce\xf2\xcf\xf2\xd0\xf2\xd1\xf2\xd2\xf2\xd3\xf2\xd4\xf2\xd5\xf2\xd6\xf2\xd7\xf2\xd8\xf2\xd9\xf2\xda\xf2\xdb\xf2\xdc\xf2\xdd\xf2\xde\xf2\xdf\xf2\xe0\xf2\xe1\xf2\xe2\xf2\xe3\xf2\xe4\xf2\xe5\xf2\xe6\xf2\xe7\xf2\xe8\xf2\xe9\xf2\xea\xf2\xeb\xf2\xec\xf2\xed\xf2\xee\xf2\xef\xf2\xf0\xf2\xf1\xf2\xf2\xf2\xf3\xf2\xf4\xf2\xf5\xf2\xf6\xf2\xf7\xf2\xf8\xf2\xf9\xf2\xfa\xf2\xfb\xf2\xfc\xf2\xfd\xf2\xfe\xf2\xff\xf3\x00\xf3\x01\xf3\x02\xf3\x03\xf3\x04\xf3\x05\xf3\x06\xf3\x07\xf3\x08\xf3\x09\xf3\x0a\xf3\x0b\xf3\x0c\xf3\x0d\xf3\x0e\xf3\x0f\xf3\x10\xf3\x11\xf3\x12\xf3\x13\xf3\x14\xf3\x15\xf3\x16\xf3\x17\x00\x00\x00\x00", /* dc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x18\xf3\x19\xf3\x1a\xf3\x1b\xf3\x1c\xf3\x1d\xf3\x1e\xf3\x1f\xf3\x20\xf3\x21\xf3\x22\xf3\x23\xf3\x24\xf3\x25\xf3\x26\xf3\x27\xf3\x28\xf3\x29\xf3\x2a\xf3\x2b\xf3\x2c\xf3\x2d\xf3\x2e\xf3\x2f\xf3\x30\xf3\x31\xf3\x32\xf3\x33\xf3\x34\xf3\x35\xf3\x36\xf3\x37\xf3\x38\xf3\x39\xf3\x3a\xf3\x3b\xf3\x3c\xf3\x3d\xf3\x3e\xf3\x3f\xf3\x40\xf3\x41\xf3\x42\xf3\x43\xf3\x44\xf3\x45\xf3\x46\xf3\x47\xf3\x48\xf3\x49\xf3\x4a\xf3\x4b\xf3\x4c\xf3\x4d\xf3\x4e\xf3\x4f\xf3\x50\xf3\x51\xf3\x52\xf3\x53\xf3\x54\xf3\x55\xf3\x56", /* dc80 */ "\x00\x00\xf3\x57\xf3\x58\xf3\x59\xf3\x5a\xf3\x5b\xf3\x5c\xf3\x5d\xf3\x5e\xf3\x5f\xf3\x60\xf3\x61\xf3\x62\xf3\x63\xf3\x64\xf3\x65\xf3\x66\xf3\x67\xf3\x68\xf3\x69\xf3\x6a\xf3\x6b\xf3\x6c\xf3\x6d\xf3\x6e\xf3\x6f\xf3\x70\xf3\x71\xf3\x72\xf3\x73\xf3\x74\xf3\x75\xf3\x76\xf3\x77\xf3\x78\xf3\x79\xf3\x7a\xf3\x7b\xf3\x7c\xf3\x7d\xf3\x7e\xf3\x7f\xf3\x80\xf3\x81\xf3\x82\xf3\x83\xf3\x84\xf3\x85\xf3\x86\xf3\x87\xf3\x88\xf3\x89\xf3\x8a\xf3\x8b\xf3\x8c\xf3\x8d\xf3\x8e\xf3\x8f\xf3\x90\xf3\x91\xf3\x92\xf3\x93\xf3\x94\xf3\x95\xf3\x96\xf3\x97\xf3\x98\xf3\x99\xf3\x9a\xf3\x9b\xf3\x9c\xf3\x9d\xf3\x9e\xf3\x9f\xf3\xa0\xf3\xa1\xf3\xa2\xf3\xa3\xf3\xa4\xf3\xa5\xf3\xa6\xf3\xa7\xf3\xa8\xf3\xa9\xf3\xaa\xf3\xab\xf3\xac\xf3\xad\xf3\xae\xf3\xaf\xf3\xb0\xf3\xb1\xf3\xb2\xf3\xb3\xf3\xb4\xf3\xb5\xf3\xb6\xf3\xb7\xf3\xb8\xf3\xb9\xf3\xba\xf3\xbb\xf3\xbc\xf3\xbd\xf3\xbe\xf3\xbf\xf3\xc0\xf3\xc1\xf3\xc2\xf3\xc3\xf3\xc4\xf3\xc5\xf3\xc6\xf3\xc7\xf3\xc8\xf3\xc9\xf3\xca\xf3\xcb\xf3\xcc\xf3\xcd\xf3\xce\xf3\xcf\xf3\xd0\xf3\xd1\xf3\xd2\xf3\xd3\x00\x00\x00\x00", /* dd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xd4\xf3\xd5\xf3\xd6\xf3\xd7\xf3\xd8\xf3\xd9\xf3\xda\xf3\xdb\xf3\xdc\xf3\xdd\xf3\xde\xf3\xdf\xf3\xe0\xf3\xe1\xf3\xe2\xf3\xe3\xf3\xe4\xf3\xe5\xf3\xe6\xf3\xe7\xf3\xe8\xf3\xe9\xf3\xea\xf3\xeb\xf3\xec\xf3\xed\xf3\xee\xf3\xef\xf3\xf0\xf3\xf1\xf3\xf2\xf3\xf3\xf3\xf4\xf3\xf5\xf3\xf6\xf3\xf7\xf3\xf8\xf3\xf9\xf3\xfa\xf3\xfb\xf3\xfc\xf3\xfd\xf3\xfe\xf3\xff\xf4\x00\xf4\x01\xf4\x02\xf4\x03\xf4\x04\xf4\x05\xf4\x06\xf4\x07\xf4\x08\xf4\x09\xf4\x0a\xf4\x0b\xf4\x0c\xf4\x0d\xf4\x0e\xf4\x0f\xf4\x10\xf4\x11\xf4\x12", /* dd80 */ "\x00\x00\xf4\x13\xf4\x14\xf4\x15\xf4\x16\xf4\x17\xf4\x18\xf4\x19\xf4\x1a\xf4\x1b\xf4\x1c\xf4\x1d\xf4\x1e\xf4\x1f\xf4\x20\xf4\x21\xf4\x22\xf4\x23\xf4\x24\xf4\x25\xf4\x26\xf4\x27\xf4\x28\xf4\x29\xf4\x2a\xf4\x2b\xf4\x2c\xf4\x2d\xf4\x2e\xf4\x2f\xf4\x30\xf4\x31\xf4\x32\xf4\x33\xf4\x34\xf4\x35\xf4\x36\xf4\x37\xf4\x38\xf4\x39\xf4\x3a\xf4\x3b\xf4\x3c\xf4\x3d\xf4\x3e\xf4\x3f\xf4\x40\xf4\x41\xf4\x42\xf4\x43\xf4\x44\xf4\x45\xf4\x46\xf4\x47\xf4\x48\xf4\x49\xf4\x4a\xf4\x4b\xf4\x4c\xf4\x4d\xf4\x4e\xf4\x4f\xf4\x50\xf4\x51\xf4\x52\xf4\x53\xf4\x54\xf4\x55\xf4\x56\xf4\x57\xf4\x58\xf4\x59\xf4\x5a\xf4\x5b\xf4\x5c\xf4\x5d\xf4\x5e\xf4\x5f\xf4\x60\xf4\x61\xf4\x62\xf4\x63\xf4\x64\xf4\x65\xf4\x66\xf4\x67\xf4\x68\xf4\x69\xf4\x6a\xf4\x6b\xf4\x6c\xf4\x6d\xf4\x6e\xf4\x6f\xf4\x70\xf4\x71\xf4\x72\xf4\x73\xf4\x74\xf4\x75\xf4\x76\xf4\x77\xf4\x78\xf4\x79\xf4\x7a\xf4\x7b\xf4\x7c\xf4\x7d\xf4\x7e\xf4\x7f\xf4\x80\xf4\x81\xf4\x82\xf4\x83\xf4\x84\xf4\x85\xf4\x86\xf4\x87\xf4\x88\xf4\x89\xf4\x8a\xf4\x8b\xf4\x8c\xf4\x8d\xf4\x8e\xf4\x8f\x00\x00\x00\x00", /* de00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x90\xf4\x91\xf4\x92\xf4\x93\xf4\x94\xf4\x95\xf4\x96\xf4\x97\xf4\x98\xf4\x99\xf4\x9a\xf4\x9b\xf4\x9c\xf4\x9d\xf4\x9e\xf4\x9f\xf4\xa0\xf4\xa1\xf4\xa2\xf4\xa3\xf4\xa4\xf4\xa5\xf4\xa6\xf4\xa7\xf4\xa8\xf4\xa9\xf4\xaa\xf4\xab\xf4\xac\xf4\xad\xf4\xae\xf4\xaf\xf4\xb0\xf4\xb1\xf4\xb2\xf4\xb3\xf4\xb4\xf4\xb5\xf4\xb6\xf4\xb7\xf4\xb8\xf4\xb9\xf4\xba\xf4\xbb\xf4\xbc\xf4\xbd\xf4\xbe\xf4\xbf\xf4\xc0\xf4\xc1\xf4\xc2\xf4\xc3\xf4\xc4\xf4\xc5\xf4\xc6\xf4\xc7\xf4\xc8\xf4\xc9\xf4\xca\xf4\xcb\xf4\xcc\xf4\xcd\xf4\xce", /* de80 */ "\x00\x00\xf4\xcf\xf4\xd0\xf4\xd1\xf4\xd2\xf4\xd3\xf4\xd4\xf4\xd5\xf4\xd6\xf4\xd7\xf4\xd8\xf4\xd9\xf4\xda\xf4\xdb\xf4\xdc\xf4\xdd\xf4\xde\xf4\xdf\xf4\xe0\xf4\xe1\xf4\xe2\xf4\xe3\xf4\xe4\xf4\xe5\xf4\xe6\xf4\xe7\xf4\xe8\xf4\xe9\xf4\xea\xf4\xeb\xf4\xec\xf4\xed\xf4\xee\xf4\xef\xf4\xf0\xf4\xf1\xf4\xf2\xf4\xf3\xf4\xf4\xf4\xf5\xf4\xf6\xf4\xf7\xf4\xf8\xf4\xf9\xf4\xfa\xf4\xfb\xf4\xfc\xf4\xfd\xf4\xfe\xf4\xff\xf5\x00\xf5\x01\xf5\x02\xf5\x03\xf5\x04\xf5\x05\xf5\x06\xf5\x07\xf5\x08\xf5\x09\xf5\x0a\xf5\x0b\xf5\x0c\xf5\x0d\xf5\x0e\xf5\x0f\xf5\x10\xf5\x11\xf5\x12\xf5\x13\xf5\x14\xf5\x15\xf5\x16\xf5\x17\xf5\x18\xf5\x19\xf5\x1a\xf5\x1b\xf5\x1c\xf5\x1d\xf5\x1e\xf5\x1f\xf5\x20\xf5\x21\xf5\x22\xf5\x23\xf5\x24\xf5\x25\xf5\x26\xf5\x27\xf5\x28\xf5\x29\xf5\x2a\xf5\x2b\xf5\x2c\xf5\x2d\xf5\x2e\xf5\x2f\xf5\x30\xf5\x31\xf5\x32\xf5\x33\xf5\x34\xf5\x35\xf5\x36\xf5\x37\xf5\x38\xf5\x39\xf5\x3a\xf5\x3b\xf5\x3c\xf5\x3d\xf5\x3e\xf5\x3f\xf5\x40\xf5\x41\xf5\x42\xf5\x43\xf5\x44\xf5\x45\xf5\x46\xf5\x47\xf5\x48\xf5\x49\xf5\x4a\xf5\x4b\x00\x00\x00\x00", /* df00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x4c\xf5\x4d\xf5\x4e\xf5\x4f\xf5\x50\xf5\x51\xf5\x52\xf5\x53\xf5\x54\xf5\x55\xf5\x56\xf5\x57\xf5\x58\xf5\x59\xf5\x5a\xf5\x5b\xf5\x5c\xf5\x5d\xf5\x5e\xf5\x5f\xf5\x60\xf5\x61\xf5\x62\xf5\x63\xf5\x64\xf5\x65\xf5\x66\xf5\x67\xf5\x68\xf5\x69\xf5\x6a\xf5\x6b\xf5\x6c\xf5\x6d\xf5\x6e\xf5\x6f\xf5\x70\xf5\x71\xf5\x72\xf5\x73\xf5\x74\xf5\x75\xf5\x76\xf5\x77\xf5\x78\xf5\x79\xf5\x7a\xf5\x7b\xf5\x7c\xf5\x7d\xf5\x7e\xf5\x7f\xf5\x80\xf5\x81\xf5\x82\xf5\x83\xf5\x84\xf5\x85\xf5\x86\xf5\x87\xf5\x88\xf5\x89\xf5\x8a", /* df80 */ "\x00\x00\xf5\x8b\xf5\x8c\xf5\x8d\xf5\x8e\xf5\x8f\xf5\x90\xf5\x91\xf5\x92\xf5\x93\xf5\x94\xf5\x95\xf5\x96\xf5\x97\xf5\x98\xf5\x99\xf5\x9a\xf5\x9b\xf5\x9c\xf5\x9d\xf5\x9e\xf5\x9f\xf5\xa0\xf5\xa1\xf5\xa2\xf5\xa3\xf5\xa4\xf5\xa5\xf5\xa6\xf5\xa7\xf5\xa8\xf5\xa9\xf5\xaa\xf5\xab\xf5\xac\xf5\xad\xf5\xae\xf5\xaf\xf5\xb0\xf5\xb1\xf5\xb2\xf5\xb3\xf5\xb4\xf5\xb5\xf5\xb6\xf5\xb7\xf5\xb8\xf5\xb9\xf5\xba\xf5\xbb\xf5\xbc\xf5\xbd\xf5\xbe\xf5\xbf\xf5\xc0\xf5\xc1\xf5\xc2\xf5\xc3\xf5\xc4\xf5\xc5\xf5\xc6\xf5\xc7\xf5\xc8\xf5\xc9\xf5\xca\xf5\xcb\xf5\xcc\xf5\xcd\xf5\xce\xf5\xcf\xf5\xd0\xf5\xd1\xf5\xd2\xf5\xd3\xf5\xd4\xf5\xd5\xf5\xd6\xf5\xd7\xf5\xd8\xf5\xd9\xf5\xda\xf5\xdb\xf5\xdc\xf5\xdd\xf5\xde\xf5\xdf\xf5\xe0\xf5\xe1\xf5\xe2\xf5\xe3\xf5\xe4\xf5\xe5\xf5\xe6\xf5\xe7\xf5\xe8\xf5\xe9\xf5\xea\xf5\xeb\xf5\xec\xf5\xed\xf5\xee\xf5\xef\xf5\xf0\xf5\xf1\xf5\xf2\xf5\xf3\xf5\xf4\xf5\xf5\xf5\xf6\xf5\xf7\xf5\xf8\xf5\xf9\xf5\xfa\xf5\xfb\xf5\xfc\xf5\xfd\xf5\xfe\xf5\xff\xf6\x00\xf6\x01\xf6\x02\xf6\x03\xf6\x04\xf6\x05\xf6\x06\xf6\x07\x00\x00\x00\x00", /* e000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x08\xf6\x09\xf6\x0a\xf6\x0b\xf6\x0c\xf6\x0d\xf6\x0e\xf6\x0f\xf6\x10\xf6\x11\xf6\x12\xf6\x13\xf6\x14\xf6\x15\xf6\x16\xf6\x17\xf6\x18\xf6\x19\xf6\x1a\xf6\x1b\xf6\x1c\xf6\x1d\xf6\x1e\xf6\x1f\xf6\x20\xf6\x21\xf6\x22\xf6\x23\xf6\x24\xf6\x25\xf6\x26\xf6\x27\xf6\x28\xf6\x29\xf6\x2a\xf6\x2b\xf6\x2c\xf6\x2d\xf6\x2e\xf6\x2f\xf6\x30\xf6\x31\xf6\x32\xf6\x33\xf6\x34\xf6\x35\xf6\x36\xf6\x37\xf6\x38\xf6\x39\xf6\x3a\xf6\x3b\xf6\x3c\xf6\x3d\xf6\x3e\xf6\x3f\xf6\x40\xf6\x41\xf6\x42\xf6\x43\xf6\x44\xf6\x45\xf6\x46", /* e080 */ "\x00\x00\xf6\x47\xf6\x48\xf6\x49\xf6\x4a\xf6\x4b\xf6\x4c\xf6\x4d\xf6\x4e\xf6\x4f\xf6\x50\xf6\x51\xf6\x52\xf6\x53\xf6\x54\xf6\x55\xf6\x56\xf6\x57\xf6\x58\xf6\x59\xf6\x5a\xf6\x5b\xf6\x5c\xf6\x5d\xf6\x5e\xf6\x5f\xf6\x60\xf6\x61\xf6\x62\xf6\x63\xf6\x64\xf6\x65\xf6\x66\xf6\x67\xf6\x68\xf6\x69\xf6\x6a\xf6\x6b\xf6\x6c\xf6\x6d\xf6\x6e\xf6\x6f\xf6\x70\xf6\x71\xf6\x72\xf6\x73\xf6\x74\xf6\x75\xf6\x76\xf6\x77\xf6\x78\xf6\x79\xf6\x7a\xf6\x7b\xf6\x7c\xf6\x7d\xf6\x7e\xf6\x7f\xf6\x80\xf6\x81\xf6\x82\xf6\x83\xf6\x84\xf6\x85\xf6\x86\xf6\x87\xf6\x88\xf6\x89\xf6\x8a\xf6\x8b\xf6\x8c\xf6\x8d\xf6\x8e\xf6\x8f\xf6\x90\xf6\x91\xf6\x92\xf6\x93\xf6\x94\xf6\x95\xf6\x96\xf6\x97\xf6\x98\xf6\x99\xf6\x9a\xf6\x9b\xf6\x9c\xf6\x9d\xf6\x9e\xf6\x9f\xf6\xa0\xf6\xa1\xf6\xa2\xf6\xa3\xf6\xa4\xf6\xa5\xf6\xa6\xf6\xa7\xf6\xa8\xf6\xa9\xf6\xaa\xf6\xab\xf6\xac\xf6\xad\xf6\xae\xf6\xaf\xf6\xb0\xf6\xb1\xf6\xb2\xf6\xb3\xf6\xb4\xf6\xb5\xf6\xb6\xf6\xb7\xf6\xb8\xf6\xb9\xf6\xba\xf6\xbb\xf6\xbc\xf6\xbd\xf6\xbe\xf6\xbf\xf6\xc0\xf6\xc1\xf6\xc2\xf6\xc3\x00\x00\x00\x00", /* e100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xc4\xf6\xc5\xf6\xc6\xf6\xc7\xf6\xc8\xf6\xc9\xf6\xca\xf6\xcb\xf6\xcc\xf6\xcd\xf6\xce\xf6\xcf\xf6\xd0\xf6\xd1\xf6\xd2\xf6\xd3\xf6\xd4\xf6\xd5\xf6\xd6\xf6\xd7\xf6\xd8\xf6\xd9\xf6\xda\xf6\xdb\xf6\xdc\xf6\xdd\xf6\xde\xf6\xdf\xf6\xe0\xf6\xe1\xf6\xe2\xf6\xe3\xf6\xe4\xf6\xe5\xf6\xe6\xf6\xe7\xf6\xe8\xf6\xe9\xf6\xea\xf6\xeb\xf6\xec\xf6\xed\xf6\xee\xf6\xef\xf6\xf0\xf6\xf1\xf6\xf2\xf6\xf3\xf6\xf4\xf6\xf5\xf6\xf6\xf6\xf7\xf6\xf8\xf6\xf9\xf6\xfa\xf6\xfb\xf6\xfc\xf6\xfd\xf6\xfe\xf6\xff\xf7\x00\xf7\x01\xf7\x02", /* e180 */ "\x00\x00\xf7\x03\xf7\x04\xf7\x05\xf7\x06\xf7\x07\xf7\x08\xf7\x09\xf7\x0a\xf7\x0b\xf7\x0c\xf7\x0d\xf7\x0e\xf7\x0f\xf7\x10\xf7\x11\xf7\x12\xf7\x13\xf7\x14\xf7\x15\xf7\x16\xf7\x17\xf7\x18\xf7\x19\xf7\x1a\xf7\x1b\xf7\x1c\xf7\x1d\xf7\x1e\xf7\x1f\xf7\x20\xf7\x21\xf7\x22\xf7\x23\xf7\x24\xf7\x25\xf7\x26\xf7\x27\xf7\x28\xf7\x29\xf7\x2a\xf7\x2b\xf7\x2c\xf7\x2d\xf7\x2e\xf7\x2f\xf7\x30\xf7\x31\xf7\x32\xf7\x33\xf7\x34\xf7\x35\xf7\x36\xf7\x37\xf7\x38\xf7\x39\xf7\x3a\xf7\x3b\xf7\x3c\xf7\x3d\xf7\x3e\xf7\x3f\xf7\x40\xf7\x41\xf7\x42\xf7\x43\xf7\x44\xf7\x45\xf7\x46\xf7\x47\xf7\x48\xf7\x49\xf7\x4a\xf7\x4b\xf7\x4c\xf7\x4d\xf7\x4e\xf7\x4f\xf7\x50\xf7\x51\xf7\x52\xf7\x53\xf7\x54\xf7\x55\xf7\x56\xf7\x57\xf7\x58\xf7\x59\xf7\x5a\xf7\x5b\xf7\x5c\xf7\x5d\xf7\x5e\xf7\x5f\xf7\x60\xf7\x61\xf7\x62\xf7\x63\xf7\x64\xf7\x65\xf7\x66\xf7\x67\xf7\x68\xf7\x69\xf7\x6a\xf7\x6b\xf7\x6c\xf7\x6d\xf7\x6e\xf7\x6f\xf7\x70\xf7\x71\xf7\x72\xf7\x73\xf7\x74\xf7\x75\xf7\x76\xf7\x77\xf7\x78\xf7\x79\xf7\x7a\xf7\x7b\xf7\x7c\xf7\x7d\xf7\x7e\xf7\x7f\x00\x00\x00\x00", /* e200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x80\xf7\x81\xf7\x82\xf7\x83\xf7\x84\xf7\x85\xf7\x86\xf7\x87\xf7\x88\xf7\x89\xf7\x8a\xf7\x8b\xf7\x8c\xf7\x8d\xf7\x8e\xf7\x8f\xf7\x90\xf7\x91\xf7\x92\xf7\x93\xf7\x94\xf7\x95\xf7\x96\xf7\x97\xf7\x98\xf7\x99\xf7\x9a\xf7\x9b\xf7\x9c\xf7\x9d\xf7\x9e\xf7\x9f\xf7\xa0\xf7\xa1\xf7\xa2\xf7\xa3\xf7\xa4\xf7\xa5\xf7\xa6\xf7\xa7\xf7\xa8\xf7\xa9\xf7\xaa\xf7\xab\xf7\xac\xf7\xad\xf7\xae\xf7\xaf\xf7\xb0\xf7\xb1\xf7\xb2\xf7\xb3\xf7\xb4\xf7\xb5\xf7\xb6\xf7\xb7\xf7\xb8\xf7\xb9\xf7\xba\xf7\xbb\xf7\xbc\xf7\xbd\xf7\xbe", /* e280 */ "\x00\x00\xf7\xbf\xf7\xc0\xf7\xc1\xf7\xc2\xf7\xc3\xf7\xc4\xf7\xc5\xf7\xc6\xf7\xc7\xf7\xc8\xf7\xc9\xf7\xca\xf7\xcb\xf7\xcc\xf7\xcd\xf7\xce\xf7\xcf\xf7\xd0\xf7\xd1\xf7\xd2\xf7\xd3\xf7\xd4\xf7\xd5\xf7\xd6\xf7\xd7\xf7\xd8\xf7\xd9\xf7\xda\xf7\xdb\xf7\xdc\xf7\xdd\xf7\xde\xf7\xdf\xf7\xe0\xf7\xe1\xf7\xe2\xf7\xe3\xf7\xe4\xf7\xe5\xf7\xe6\xf7\xe7\xf7\xe8\xf7\xe9\xf7\xea\xf7\xeb\xf7\xec\xf7\xed\xf7\xee\xf7\xef\xf7\xf0\xf7\xf1\xf7\xf2\xf7\xf3\xf7\xf4\xf7\xf5\xf7\xf6\xf7\xf7\xf7\xf8\xf7\xf9\xf7\xfa\xf7\xfb\xf7\xfc\xf7\xfd\xf7\xfe\xf7\xff\xf8\x00\xf8\x01\xf8\x02\xf8\x03\xf8\x04\xf8\x05\xf8\x06\xf8\x07\xf8\x08\xf8\x09\xf8\x0a\xf8\x0b\xf8\x0c\xf8\x0d\xf8\x0e\xf8\x0f\xf8\x10\xf8\x11\xf8\x12\xf8\x13\xf8\x14\xf8\x15\xf8\x16\xf8\x17\xf8\x18\xf8\x19\xf8\x1a\xf8\x1b\xf8\x1c\xf8\x1d\xf8\x1e\xf8\x1f\xf8\x20\xf8\x21\xf8\x22\xf8\x23\xf8\x24\xf8\x25\xf8\x26\xf8\x27\xf8\x28\xf8\x29\xf8\x2a\xf8\x2b\xf8\x2c\xf8\x2d\xf8\x2e\xf8\x2f\xf8\x30\xf8\x31\xf8\x32\xf8\x33\xf8\x34\xf8\x35\xf8\x36\xf8\x37\xf8\x38\xf8\x39\xf8\x3a\xf8\x3b\x00\x00\x00\x00", /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp1388", "0x03a90345" /* 937, 837 */, "gb18030.2000-1,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-1388_P103-2001 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x88\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x00\x00\x43\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x44\x46\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x48\x46\x46\x46\x5a\x00\x00\x46\x4c\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x46\x50\x46\x4e\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x46\x54\x46\x52\x00\x00\x46\x59\x00\x00\x00\x00\x00\x00", /* 0100 */ "\x00\x00\x46\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5d\x00\x00\x00\x00\x00\x00\x46\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x46\x4b\x00\x00\x46\x4f\x00\x00\x46\x53\x00\x00\x46\x55\x00\x00\x46\x56\x00\x00\x46\x57\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x46\x00\x00\x45\x45\xcd\x41\xcd\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ "\x47\x5d\x47\x5e\x47\x5f\x47\x60\x47\x61\x47\x62\x47\x63\x47\x64\x47\x65\x47\x66\x47\x67\x47\x68\x47\x69\x47\x6a\x47\x6b\x47\x6c\x47\x6d\x47\x6e\x47\x6f\x47\x70\x47\x71\x47\x72\x47\x73\x47\x74\x47\x75\x47\x76\x47\x77\x47\x78\x47\x79\x47\x7a\x47\x7b\x47\x7c\x47\x7d\x47\x7e\x47\x7f\x47\x80\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8d\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x47\xa1\x47\xa2\x47\xa3\x47\xa4\x47\xa5\x47\xa6\x47\xa7\x47\xa8\x47\xa9\x47\xaa\x47\xab\x47\xac\x47\xad\x47\xae\x47\xaf\x47\xb0\x47\xb1\x47\xb2\x47\xb3\x47\xb4\x47\xb5\x47\xb6\x47\xb7\x47\xb8\x47\xb9\x47\xba\x47\xbb\x47\xbc\x47\xbd\x47\xbe\x47\xbf\x47\xc0\x47\xc1\x47\xc2\x47\xc3\x47\xc4\x47\xc5\x47\xc6\x47\xc7\x47\xc8\x47\xc9\x47\xca\x47\xcb\x47\xcc\x47\xcd\x47\xce\x47\xcf\x47\xd0\x47\xd1\x47\xd2\x47\xd3\x47\xd4\x47\xd5\x47\xd6\x47\xd7\x47\xd8\x47\xd9\x47\xda\x47\xdb\x47\xdc", /* 0680 */ "\x47\xdd\x47\xde\x47\xdf\x47\xe0\x47\xe1\x47\xe2\x47\xe3\x47\xe4\x47\xe5\x47\xe6\x47\xe7\x47\xe8\x47\xe9\x47\xea\x47\xeb\x47\xec\x47\xed\x47\xee\x47\xef\x47\xf0\x47\xf1\x47\xf2\x47\xf3\x47\xf4\x47\xf5\x47\xf6\x47\xf7\x47\xf8\x47\xf9\x47\xfa\x47\xfb\x47\xfc\x47\xfd\x47\xfe\x48\x41\x48\x42\x48\x43\x48\x44\x48\x45\x48\x46\x48\x47\x48\x48\x48\x49\x48\x4a\x48\x4b\x48\x4c\x48\x4d\x48\x4e\x48\x4f\x48\x50\x48\x51\x48\x52\x48\x53\x48\x54\x48\x55\x48\x56\x48\x57\x48\x58\x48\x59\x48\x5a\x48\x5b\x48\x5c\x48\x5d\x48\x5e\x48\x5f\x48\x60\x48\x61\x48\x62\x48\x63\x48\x64\x48\x65\x48\x66\x48\x67\x48\x68\x48\x69\x48\x6a\x48\x6b\x48\x6c\x48\x6d\x48\x6e\x48\x6f\x48\x70\x48\x71\x48\x72\x48\x73\x48\x74\x48\x75\x48\x76\x48\x77\x48\x78\x48\x79\x48\x7a\x48\x7b\x48\x7c\x48\x7d\x48\x7e\x48\x7f\x48\x80\x48\x81\x48\x82\x48\x83\x48\x84\x48\x85\x48\x86\x48\x87\x48\x88\x48\x89\x48\x8a\x48\x8b\x48\x8c\x48\x8d\x48\x8e\x48\x8f\x48\x90\x48\x91\x48\x92\x48\x93\x48\x94\x48\x95\x48\x96\x48\x97\x48\x98\x48\x99\x48\x9a\x48\x9b\x48\x9c\x48\x9d\x48\x9e", /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ "\x6d\x41\x6d\x42\x6d\x43\x6d\x44\x6d\x45\x6d\x46\x6d\x47\x6d\x48\x6d\x49\x6d\x4a\x6d\x4b\x6d\x4c\x6d\x4d\x6d\x4e\x6d\x4f\x6d\x50\x6d\x51\x6d\x52\x6d\x53\x6d\x54\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x59\x6d\x5a\x6d\x5b\x6d\x5c\x6d\x5d\x6d\x5e\x6d\x5f\x6d\x60\x6d\x61\x6d\x62\x6d\x63\x6d\x64\x6d\x65\x6d\x66\x6d\x67\x6d\x68\x6d\x69\x6d\x6a\x6d\x6b\x6d\x6c\x6d\x6d\x6d\x6e\x6d\x6f\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x74\x6d\x75\x6d\x76\x6d\x77\x6d\x78\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7c\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x82\x6d\x83\x6d\x84\x6d\x85\x6d\x86\x6d\x87\x6d\x88\x6d\x89\x6d\x8a\x6d\x8b\x6d\x8c\x6d\x8d\x6d\x8e\x6d\x8f\x6d\x90\x6d\x91\x6d\x92\x6d\x93\x6d\x94\x6d\x95\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9b\x6d\x9c\x6d\x9d\x6d\x9e\x6d\x9f\x6d\xa0\x6d\xa1\x6d\xa2\x6d\xa3\x6d\xa4\x6d\xa5\x6d\xa6\x6d\xa7\x6d\xa8\x6d\xa9\x6d\xaa\x6d\xab\x6d\xac\x6d\xad\x6d\xae\x6d\xaf\x6d\xb0\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb4\x6d\xb5\x6d\xb6\x6d\xb7\x6d\xb8\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xbf\x6d\xc0", /* 0f80 */ "\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc4\x6d\xc5\x6d\xc6\x6d\xc7\x6d\xc8\x6d\xc9\x6d\xca\x6d\xcb\x6d\xcc\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd1\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd6\x6d\xd7\x6d\xd8\x6d\xd9\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdd\x6d\xde\x6d\xdf\x6d\xe0\x6d\xe1\x6d\xe2\x6d\xe3\x6d\xe4\x6d\xe5\x6d\xe6\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xeb\x6d\xec\x6d\xed\x6d\xee\x6d\xef\x6d\xf0\x6d\xf1\x6d\xf2\x6d\xf3\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf7\x6d\xf8\x6d\xf9\x6d\xfa\x6d\xfb\x6d\xfc\x6d\xfd\x6d\xfe\x6e\x41\x6e\x42\x6e\x43\x6e\x44\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4d\x6e\x4e\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x53\x6e\x54\x6e\x55\x6e\x56\x6e\x57\x6e\x58\x6e\x59\x6e\x5a\x6e\x5b\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x5f\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6b\x6e\x6c\x6e\x6d\x6e\x6e\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x7e\x6e\x7f\x6e\x80\x6e\x81\x6e\x82", /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ "\x6e\x83\x6e\x84\x6e\x85\x6e\x86\x6e\x87\x6e\x88\x6e\x89\x6e\x8a\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x8f\x6e\x90\x6e\x91\x6e\x92\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x98\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9c\x6e\x9d\x6e\x9e\x6e\x9f\x6e\xa0\x6e\xa1\x6e\xa2\x6e\xa3\x6e\xa4\x6e\xa5\x6e\xa6\x6e\xa7\x6e\xa8\x6e\xa9\x6e\xaa\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xaf\x6e\xb0\x6e\xb1\x6e\xb2\x6e\xb3\x6e\xb4\x6e\xb5\x6e\xb6\x6e\xb7\x6e\xb8\x6e\xb9\x6e\xba\x6e\xbb\x6e\xbc\x6e\xbd\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc1\x6e\xc2\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc7\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcb\x6e\xcc\x6e\xcd\x6e\xce\x6e\xcf\x6e\xd0\x6e\xd1\x6e\xd2\x6e\xd3\x6e\xd4\x6e\xd5\x6e\xd6\x6e\xd7\x6e\xd8\x6e\xd9\x6e\xda\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xde\x6e\xdf\x6e\xe0\x6e\xe1\x6e\xe2\x6e\xe3\x6e\xe4\x6e\xe5\x6e\xe6\x6e\xe7\x6e\xe8\x6e\xe9\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf4\x6e\xf5\x6e\xf6\x6e\xf7\x6e\xf8\x6e\xf9\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6f\x41\x6f\x42\x6f\x43\x6f\x44", /* 1880 */ "\x6f\x45\x6f\x46\x6f\x47\x6f\x48\x6f\x49\x6f\x4a\x6f\x4b\x6f\x4c\x6f\x4d\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x58\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5c\x6f\x5d\x6f\x5e\x6f\x5f\x6f\x60\x6f\x61\x6f\x62\x6f\x63\x6f\x64\x6f\x65\x6f\x66\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6d\x6f\x6e\x6f\x6f\x6f\x70\x6f\x71\x6f\x72\x6f\x73\x6f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\xcd\x44\xcd\x45\x44\x4a\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x8b\x00\x00\x44\xee\x44\xef\x00\x00\xcd\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\xcd\x47\x00\x00\x00\x00\x00\x00\xcd\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\xcd\x49\xcd\x4a\xcd\x4b\xcd\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x66\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\xcd\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6b\x00\x00\x00\x00\x45\x77\x44\x4d\xcd\x4e\x45\x6e\x00\x00\x00\x00\xcd\x4f\x00\x00\x45\x6d\x00\x00\x45\x63\x45\x64\x45\x68\x45\x67\x45\x71\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x45\x62\x45\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x75\x00\x00\x00\x00\x00\x00\x45\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x45\x73\x00\x00\x00\x00\x44\x67\x44\x77\xcd\x51\xcd\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x90\x00\x00\x00\x00\x00\x00\x45\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0", /* 2480 */ "\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2500 */ "\x46\xa4\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x54\xcd\x55\xcd\x56\xcd\x57\xcd\x58\xcd\x59\xcd\x5a\xcd\x5b\xcd\x5c\xcd\x5d\xcd\x5e\xcd\x5f\xcd\x60\xcd\x61\xcd\x62\xcd\x63\xcd\x64\xcd\x65\xcd\x66\xcd\x67\xcd\x68\xcd\x69\xcd\x6a\xcd\x6b\xcd\x6c\xcd\x6d\xcd\x6e\xcd\x6f\xcd\x70\xcd\x71\xcd\x72\xcd\x73\xcd\x74\xcd\x75\xcd\x76\xcd\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\xcd\x78\xcd\x79\xcd\x7a\xcd\x7b\xcd\x7c\xcd\x7d\xcd\x7e\xcd\x7f\xcd\x81\xcd\x82\xcd\x83\xcd\x84\xcd\x85\xcd\x86\xcd\x87\x00\x00\x00\x00\x00\x00\xcd\x88\xcd\x89\xcd\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x8b\xcd\x8c\xcd\x8d\xcd\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\xcd\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ "\x00\x00\xce\x56\x00\x00\x00\x00\xce\x5a\x00\x00\x00\x00\x00\x00\xce\x5d\x00\x00\x00\x00\xce\x5e\xce\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x71\x00\x00\x00\x00\xce\x74\x00\x00\x00\x00\x00\x00\xce\x77\x00\x00\x00\x00\x00\x00\x00\x00\xce\x79\x00\x00\x00\x00\xce\x7a\xce\x7b\x00\x00\x00\x00\x00\x00\xce\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2f00 */ NULL, /* 2f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xca\xcd\xcb\xcd\xcc\xcd\xcd\xcd\xce\xcd\xcf\xcd\xd0\xcd\xd1\xcd\xd2\xcd\xd3\xcd\xd4\xcd\xd5\x00\x00\x00\x00\x00\x00\x00\x00", /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x45\x5b\x45\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x91\xcd\x92\x00\x00\x00\x00\xcd\x93\xcd\x94\xcd\x95\xcd\x96\xcd\x97\xcd\x98\xcd\x99\xcd\x9a\xcd\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xc9\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3300 */ NULL, /* 3380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9d\xcd\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9f\xcd\xa0\xcd\xa1\x00\x00\x00\x00\xcd\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa4\x00\x00\x00\x00\xcd\xa5\xcd\xa6\x00\x00\x00\x00\xcd\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3400 */ "\xcf\x41\xcf\x42\xcf\x43\xcf\x44\xcf\x45\xcf\x46\xcf\x47\xcf\x48\xcf\x49\xcf\x4a\xcf\x4b\xcf\x4c\xcf\x4d\xcf\x4e\xcf\x4f\xcf\x50\xcf\x51\xcf\x52\xcf\x53\xcf\x54\xcf\x55\xcf\x56\xcf\x57\xcf\x58\xcf\x59\xcf\x5a\xcf\x5b\xcf\x5c\xcf\x5d\xcf\x5e\xcf\x5f\xcf\x60\xcf\x61\xcf\x62\xcf\x63\xcf\x64\xcf\x65\xcf\x66\xcf\x67\xcf\x68\xcf\x69\xcf\x6a\xcf\x6b\xcf\x6c\xcf\x6d\xcf\x6e\xcf\x6f\xcf\x70\xcf\x71\xcf\x72\xcf\x73\xcf\x74\xcf\x75\xcf\x76\xcf\x77\xcf\x78\xcf\x79\xcf\x7a\xcf\x7b\xcf\x7c\xcf\x7d\xcf\x7e\xcf\x7f\xcf\x80\xcf\x81\xcf\x82\xcf\x83\xcf\x84\xcf\x85\xcf\x86\xcf\x87\xce\x5c\xcf\x88\xcf\x89\xcf\x8a\xcf\x8b\xcf\x8c\xcf\x8d\xcf\x8e\xcf\x8f\xcf\x90\xcf\x91\xcf\x92\xcf\x93\xcf\x94\xcf\x95\xcf\x96\xcf\x97\xcf\x98\xcf\x99\xcf\x9a\xcf\x9b\xcf\x9c\xcf\x9d\xcf\x9e\xcf\x9f\xcf\xa0\xcf\xa1\xcf\xa2\xcf\xa3\xcf\xa4\xcf\xa5\xcf\xa6\xcf\xa7\xcf\xa8\xcf\xa9\xcf\xaa\xcf\xab\xcf\xac\xcf\xad\xcf\xae\xcf\xaf\xcf\xb0\xcf\xb1\xcf\xb2\xce\x5b\xcf\xb3\xcf\xb4\xcf\xb5\xcf\xb6\xcf\xb7\xcf\xb8\xcf\xb9\xcf\xba\xcf\xbb\xcf\xbc\xcf\xbd\xcf\xbe", /* 3480 */ "\xcf\xbf\xcf\xc0\xcf\xc1\xcf\xc2\xcf\xc3\xcf\xc4\xcf\xc5\xcf\xc6\xcf\xc7\xcf\xc8\xcf\xc9\xcf\xca\xcf\xcb\xcf\xcc\xcf\xcd\xcf\xce\xcf\xcf\xcf\xd0\xcf\xd1\xcf\xd2\xcf\xd3\xcf\xd4\xcf\xd5\xcf\xd6\xcf\xd7\xcf\xd8\xcf\xd9\xcf\xda\xcf\xdb\xcf\xdc\xcf\xdd\xcf\xde\xcf\xdf\xcf\xe0\xcf\xe1\xcf\xe2\xcf\xe3\xcf\xe4\xcf\xe5\xcf\xe6\xcf\xe7\xcf\xe8\xcf\xe9\xcf\xea\xcf\xeb\xcf\xec\xcf\xed\xcf\xee\xcf\xef\xcf\xf0\xcf\xf1\xcf\xf2\xcf\xf3\xcf\xf4\xcf\xf5\xcf\xf6\xcf\xf7\xcf\xf8\xcf\xf9\xcf\xfa\xcf\xfb\xcf\xfc\xcf\xfd\xcf\xfe\xd0\x41\xd0\x42\xd0\x43\xd0\x44\xd0\x45\xd0\x46\xd0\x47\xd0\x48\xd0\x49\xd0\x4a\xd0\x4b\xd0\x4c\xd0\x4d\xd0\x4e\xd0\x4f\xd0\x50\xd0\x51\xd0\x52\xd0\x53\xd0\x54\xd0\x55\xd0\x56\xd0\x57\xd0\x58\xd0\x59\xd0\x5a\xd0\x5b\xd0\x5c\xd0\x5d\xd0\x5e\xd0\x5f\xd0\x60\xd0\x61\xd0\x62\xd0\x63\xd0\x64\xd0\x65\xd0\x66\xd0\x67\xd0\x68\xd0\x69\xd0\x6a\xd0\x6b\xd0\x6c\xd0\x6d\xd0\x6e\xd0\x6f\xd0\x70\xd0\x71\xd0\x72\xd0\x73\xd0\x74\xd0\x75\xd0\x76\xd0\x77\xd0\x78\xd0\x79\xd0\x7a\xd0\x7b\xd0\x7c\xd0\x7d\xd0\x7e\xd0\x7f\xd0\x80", /* 3500 */ "\xd0\x81\xd0\x82\xd0\x83\xd0\x84\xd0\x85\xd0\x86\xd0\x87\xd0\x88\xd0\x89\xd0\x8a\xd0\x8b\xd0\x8c\xd0\x8d\xd0\x8e\xd0\x8f\xd0\x90\xd0\x91\xd0\x92\xd0\x93\xd0\x94\xd0\x95\xd0\x96\xd0\x97\xd0\x98\xd0\x99\xd0\x9a\xd0\x9b\xd0\x9c\xd0\x9d\xd0\x9e\xd0\x9f\xd0\xa0\xd0\xa1\xd0\xa2\xd0\xa3\xd0\xa4\xd0\xa5\xd0\xa6\xd0\xa7\xd0\xa8\xd0\xa9\xd0\xaa\xd0\xab\xd0\xac\xd0\xad\xd0\xae\xd0\xaf\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5\xd0\xb6\xd0\xb7\xd0\xb8\xd0\xb9\xd0\xba\xd0\xbb\xd0\xbc\xd0\xbd\xd0\xbe\xd0\xbf\xd0\xc0\xd0\xc1\xd0\xc2\xd0\xc3\xd0\xc4\xd0\xc5\xd0\xc6\xd0\xc7\xd0\xc8\xd0\xc9\xd0\xca\xd0\xcb\xd0\xcc\xd0\xcd\xd0\xce\xd0\xcf\xd0\xd0\xd0\xd1\xd0\xd2\xd0\xd3\xd0\xd4\xd0\xd5\xd0\xd6\xd0\xd7\xd0\xd8\xd0\xd9\xd0\xda\xd0\xdb\xd0\xdc\xd0\xdd\xd0\xde\xd0\xdf\xd0\xe0\xd0\xe1\xd0\xe2\xd0\xe3\xd0\xe4\xd0\xe5\xd0\xe6\xd0\xe7\xd0\xe8\xd0\xe9\xd0\xea\xd0\xeb\xd0\xec\xd0\xed\xd0\xee\xd0\xef\xd0\xf0\xd0\xf1\xd0\xf2\xd0\xf3\xd0\xf4\xd0\xf5\xd0\xf6\xd0\xf7\xd0\xf8\xd0\xf9\xd0\xfa\xd0\xfb\xd0\xfc\xd0\xfd\xd0\xfe\xd1\x41\xd1\x42", /* 3580 */ "\xd1\x43\xd1\x44\xd1\x45\xd1\x46\xd1\x47\xd1\x48\xd1\x49\xd1\x4a\xd1\x4b\xd1\x4c\xd1\x4d\xd1\x4e\xd1\x4f\xd1\x50\xd1\x51\xd1\x52\xd1\x53\xd1\x54\xd1\x55\xd1\x56\xd1\x57\xd1\x58\xd1\x59\xd1\x5a\xd1\x5b\xd1\x5c\xd1\x5d\xd1\x5e\xd1\x5f\xd1\x60\xce\x60\xd1\x61\xd1\x62\xd1\x63\xd1\x64\xd1\x65\xd1\x66\xd1\x67\xd1\x68\xd1\x69\xd1\x6a\xd1\x6b\xd1\x6c\xd1\x6d\xd1\x6e\xd1\x6f\xd1\x70\xd1\x71\xd1\x72\xd1\x73\xd1\x74\xd1\x75\xd1\x76\xd1\x77\xd1\x78\xd1\x79\xd1\x7a\xd1\x7b\xd1\x7c\xd1\x7d\xd1\x7e\xd1\x7f\xd1\x80\xd1\x81\xd1\x82\xd1\x83\xd1\x84\xd1\x85\xd1\x86\xd1\x87\xd1\x88\xd1\x89\xd1\x8a\xd1\x8b\xd1\x8c\xd1\x8d\xd1\x8e\xd1\x8f\xd1\x90\xd1\x91\xd1\x92\xd1\x93\xd1\x94\xd1\x95\xd1\x96\xd1\x97\xd1\x98\xd1\x99\xd1\x9a\xd1\x9b\xd1\x9c\xd1\x9d\xd1\x9e\xd1\x9f\xd1\xa0\xd1\xa1\xd1\xa2\xd1\xa3\xd1\xa4\xd1\xa5\xd1\xa6\xd1\xa7\xd1\xa8\xd1\xa9\xd1\xaa\xd1\xab\xd1\xac\xd1\xad\xd1\xae\xd1\xaf\xd1\xb0\xd1\xb1\xd1\xb2\xd1\xb3\xd1\xb4\xd1\xb5\xd1\xb6\xd1\xb7\xd1\xb8\xd1\xb9\xd1\xba\xd1\xbb\xd1\xbc\xd1\xbd\xd1\xbe\xd1\xbf\xd1\xc0\xd1\xc1", /* 3600 */ "\xd1\xc2\xd1\xc3\xd1\xc4\xd1\xc5\xd1\xc6\xd1\xc7\xd1\xc8\xd1\xc9\xd1\xca\xd1\xcb\xd1\xcc\xd1\xcd\xd1\xce\xd1\xcf\xce\x62\xd1\xd0\xd1\xd1\xd1\xd2\xd1\xd3\xd1\xd4\xd1\xd5\xd1\xd6\xd1\xd7\xd1\xd8\xd1\xd9\xd1\xda\xce\x61\xd1\xdb\xd1\xdc\xd1\xdd\xd1\xde\xd1\xdf\xd1\xe0\xd1\xe1\xd1\xe2\xd1\xe3\xd1\xe4\xd1\xe5\xd1\xe6\xd1\xe7\xd1\xe8\xd1\xe9\xd1\xea\xd1\xeb\xd1\xec\xd1\xed\xd1\xee\xd1\xef\xd1\xf0\xd1\xf1\xd1\xf2\xd1\xf3\xd1\xf4\xd1\xf5\xd1\xf6\xd1\xf7\xd1\xf8\xd1\xf9\xd1\xfa\xd1\xfb\xd1\xfc\xd1\xfd\xd1\xfe\xd2\x41\xd2\x42\xd2\x43\xd2\x44\xd2\x45\xd2\x46\xd2\x47\xd2\x48\xd2\x49\xd2\x4a\xd2\x4b\xd2\x4c\xd2\x4d\xd2\x4e\xd2\x4f\xd2\x50\xd2\x51\xd2\x52\xd2\x53\xd2\x54\xd2\x55\xd2\x56\xd2\x57\xd2\x58\xd2\x59\xd2\x5a\xd2\x5b\xd2\x5c\xd2\x5d\xd2\x5e\xd2\x5f\xd2\x60\xd2\x61\xd2\x62\xd2\x63\xd2\x64\xd2\x65\xd2\x66\xd2\x67\xd2\x68\xd2\x69\xd2\x6a\xd2\x6b\xd2\x6c\xd2\x6d\xd2\x6e\xd2\x6f\xd2\x70\xd2\x71\xd2\x72\xd2\x73\xd2\x74\xd2\x75\xd2\x76\xd2\x77\xd2\x78\xd2\x79\xd2\x7a\xd2\x7b\xd2\x7c\xd2\x7d\xd2\x7e\xd2\x7f\xd2\x80\xd2\x81", /* 3680 */ "\xd2\x82\xd2\x83\xd2\x84\xd2\x85\xd2\x86\xd2\x87\xd2\x88\xd2\x89\xd2\x8a\xd2\x8b\xd2\x8c\xd2\x8d\xd2\x8e\xd2\x8f\xd2\x90\xd2\x91\xd2\x92\xd2\x93\xd2\x94\xd2\x95\xd2\x96\xd2\x97\xd2\x98\xd2\x99\xd2\x9a\xd2\x9b\xd2\x9c\xd2\x9d\xd2\x9e\xd2\x9f\xd2\xa0\xd2\xa1\xd2\xa2\xd2\xa3\xd2\xa4\xd2\xa5\xd2\xa6\xd2\xa7\xd2\xa8\xd2\xa9\xd2\xaa\xd2\xab\xd2\xac\xd2\xad\xd2\xae\xd2\xaf\xd2\xb0\xd2\xb1\xd2\xb2\xd2\xb3\xd2\xb4\xd2\xb5\xd2\xb6\xd2\xb7\xd2\xb8\xd2\xb9\xd2\xba\xd2\xbb\xd2\xbc\xd2\xbd\xd2\xbe\xd2\xbf\xd2\xc0\xd2\xc1\xd2\xc2\xd2\xc3\xd2\xc4\xd2\xc5\xd2\xc6\xd2\xc7\xd2\xc8\xd2\xc9\xd2\xca\xd2\xcb\xd2\xcc\xd2\xcd\xd2\xce\xd2\xcf\xd2\xd0\xd2\xd1\xd2\xd2\xd2\xd3\xd2\xd4\xd2\xd5\xd2\xd6\xd2\xd7\xd2\xd8\xd2\xd9\xd2\xda\xd2\xdb\xd2\xdc\xd2\xdd\xd2\xde\xd2\xdf\xd2\xe0\xd2\xe1\xd2\xe2\xd2\xe3\xd2\xe4\xd2\xe5\xd2\xe6\xd2\xe7\xd2\xe8\xd2\xe9\xd2\xea\xd2\xeb\xd2\xec\xd2\xed\xd2\xee\xd2\xef\xd2\xf0\xd2\xf1\xd2\xf2\xd2\xf3\xd2\xf4\xd2\xf5\xd2\xf6\xd2\xf7\xd2\xf8\xd2\xf9\xd2\xfa\xd2\xfb\xd2\xfc\xd2\xfd\xd2\xfe\xd3\x41\xd3\x42\xd3\x43", /* 3700 */ "\xd3\x44\xd3\x45\xd3\x46\xd3\x47\xd3\x48\xd3\x49\xd3\x4a\xd3\x4b\xd3\x4c\xd3\x4d\xd3\x4e\xd3\x4f\xd3\x50\xd3\x51\xd3\x52\xd3\x53\xd3\x54\xd3\x55\xd3\x56\xd3\x57\xd3\x58\xd3\x59\xd3\x5a\xd3\x5b\xd3\x5c\xd3\x5d\xd3\x5e\xd3\x5f\xd3\x60\xd3\x61\xd3\x62\xd3\x63\xd3\x64\xd3\x65\xd3\x66\xd3\x67\xd3\x68\xd3\x69\xd3\x6a\xd3\x6b\xd3\x6c\xd3\x6d\xd3\x6e\xd3\x6f\xd3\x70\xd3\x71\xd3\x72\xd3\x73\xd3\x74\xd3\x75\xd3\x76\xd3\x77\xd3\x78\xd3\x79\xd3\x7a\xd3\x7b\xd3\x7c\xd3\x7d\xd3\x7e\xd3\x7f\xd3\x80\xd3\x81\xd3\x82\xd3\x83\xd3\x84\xd3\x85\xd3\x86\xd3\x87\xd3\x88\xd3\x89\xd3\x8a\xd3\x8b\xd3\x8c\xd3\x8d\xd3\x8e\xd3\x8f\xd3\x90\xd3\x91\xd3\x92\xd3\x93\xd3\x94\xd3\x95\xd3\x96\xd3\x97\xd3\x98\xd3\x99\xd3\x9a\xd3\x9b\xd3\x9c\xd3\x9d\xd3\x9e\xd3\x9f\xd3\xa0\xd3\xa1\xd3\xa2\xd3\xa3\xd3\xa4\xd3\xa5\xd3\xa6\xd3\xa7\xd3\xa8\xd3\xa9\xd3\xaa\xd3\xab\xd3\xac\xd3\xad\xd3\xae\xd3\xaf\xd3\xb0\xd3\xb1\xd3\xb2\xd3\xb3\xd3\xb4\xd3\xb5\xd3\xb6\xd3\xb7\xd3\xb8\xd3\xb9\xd3\xba\xd3\xbb\xd3\xbc\xd3\xbd\xd3\xbe\xd3\xbf\xd3\xc0\xd3\xc1\xd3\xc2\xd3\xc3", /* 3780 */ "\xd3\xc4\xd3\xc5\xd3\xc6\xd3\xc7\xd3\xc8\xd3\xc9\xd3\xca\xd3\xcb\xd3\xcc\xd3\xcd\xd3\xce\xd3\xcf\xd3\xd0\xd3\xd1\xd3\xd2\xd3\xd3\xd3\xd4\xd3\xd5\xd3\xd6\xd3\xd7\xd3\xd8\xd3\xd9\xd3\xda\xd3\xdb\xd3\xdc\xd3\xdd\xd3\xde\xd3\xdf\xd3\xe0\xd3\xe1\xd3\xe2\xd3\xe3\xd3\xe4\xd3\xe5\xd3\xe6\xd3\xe7\xd3\xe8\xd3\xe9\xd3\xea\xd3\xeb\xd3\xec\xd3\xed\xd3\xee\xd3\xef\xd3\xf0\xd3\xf1\xd3\xf2\xd3\xf3\xd3\xf4\xd3\xf5\xd3\xf6\xd3\xf7\xd3\xf8\xd3\xf9\xd3\xfa\xd3\xfb\xd3\xfc\xd3\xfd\xd3\xfe\xd4\x41\xd4\x42\xd4\x43\xd4\x44\xd4\x45\xd4\x46\xd4\x47\xd4\x48\xd4\x49\xd4\x4a\xd4\x4b\xd4\x4c\xd4\x4d\xd4\x4e\xd4\x4f\xd4\x50\xd4\x51\xd4\x52\xd4\x53\xd4\x54\xd4\x55\xd4\x56\xd4\x57\xd4\x58\xd4\x59\xd4\x5a\xd4\x5b\xd4\x5c\xd4\x5d\xd4\x5e\xd4\x5f\xd4\x60\xd4\x61\xd4\x62\xd4\x63\xd4\x64\xd4\x65\xd4\x66\xd4\x67\xd4\x68\xd4\x69\xd4\x6a\xd4\x6b\xd4\x6c\xd4\x6d\xd4\x6e\xd4\x6f\xd4\x70\xd4\x71\xd4\x72\xd4\x73\xd4\x74\xd4\x75\xd4\x76\xd4\x77\xd4\x78\xd4\x79\xd4\x7a\xd4\x7b\xd4\x7c\xd4\x7d\xd4\x7e\xd4\x7f\xd4\x80\xd4\x81\xd4\x82\xd4\x83\xd4\x84\xd4\x85", /* 3800 */ "\xd4\x86\xd4\x87\xd4\x88\xd4\x89\xd4\x8a\xd4\x8b\xd4\x8c\xd4\x8d\xd4\x8e\xd4\x8f\xd4\x90\xd4\x91\xd4\x92\xd4\x93\xd4\x94\xd4\x95\xd4\x96\xd4\x97\xd4\x98\xd4\x99\xd4\x9a\xd4\x9b\xd4\x9c\xd4\x9d\xd4\x9e\xd4\x9f\xd4\xa0\xd4\xa1\xd4\xa2\xd4\xa3\xd4\xa4\xd4\xa5\xd4\xa6\xd4\xa7\xd4\xa8\xd4\xa9\xd4\xaa\xd4\xab\xd4\xac\xd4\xad\xd4\xae\xd4\xaf\xd4\xb0\xd4\xb1\xd4\xb2\xd4\xb3\xd4\xb4\xd4\xb5\xd4\xb6\xd4\xb7\xd4\xb8\xd4\xb9\xd4\xba\xd4\xbb\xd4\xbc\xd4\xbd\xd4\xbe\xd4\xbf\xd4\xc0\xd4\xc1\xd4\xc2\xd4\xc3\xd4\xc4\xd4\xc5\xd4\xc6\xd4\xc7\xd4\xc8\xd4\xc9\xd4\xca\xd4\xcb\xd4\xcc\xd4\xcd\xd4\xce\xd4\xcf\xd4\xd0\xd4\xd1\xd4\xd2\xd4\xd3\xd4\xd4\xd4\xd5\xd4\xd6\xd4\xd7\xd4\xd8\xd4\xd9\xd4\xda\xd4\xdb\xd4\xdc\xd4\xdd\xd4\xde\xd4\xdf\xd4\xe0\xd4\xe1\xd4\xe2\xd4\xe3\xd4\xe4\xd4\xe5\xd4\xe6\xd4\xe7\xd4\xe8\xd4\xe9\xd4\xea\xd4\xeb\xd4\xec\xd4\xed\xd4\xee\xd4\xef\xd4\xf0\xd4\xf1\xd4\xf2\xd4\xf3\xd4\xf4\xd4\xf5\xd4\xf6\xd4\xf7\xd4\xf8\xd4\xf9\xd4\xfa\xd4\xfb\xd4\xfc\xd4\xfd\xd4\xfe\xd5\x41\xd5\x42\xd5\x43\xd5\x44\xd5\x45\xd5\x46\xd5\x47", /* 3880 */ "\xd5\x48\xd5\x49\xd5\x4a\xd5\x4b\xd5\x4c\xd5\x4d\xd5\x4e\xd5\x4f\xd5\x50\xd5\x51\xd5\x52\xd5\x53\xd5\x54\xd5\x55\xd5\x56\xd5\x57\xd5\x58\xd5\x59\xd5\x5a\xd5\x5b\xd5\x5c\xd5\x5d\xd5\x5e\xd5\x5f\xd5\x60\xd5\x61\xd5\x62\xd5\x63\xd5\x64\xd5\x65\xd5\x66\xd5\x67\xd5\x68\xd5\x69\xd5\x6a\xd5\x6b\xd5\x6c\xd5\x6d\xd5\x6e\xd5\x6f\xd5\x70\xd5\x71\xd5\x72\xd5\x73\xd5\x74\xd5\x75\xd5\x76\xd5\x77\xd5\x78\xd5\x79\xd5\x7a\xd5\x7b\xd5\x7c\xd5\x7d\xd5\x7e\xd5\x7f\xd5\x80\xd5\x81\xd5\x82\xd5\x83\xd5\x84\xd5\x85\xd5\x86\xd5\x87\xd5\x88\xd5\x89\xd5\x8a\xd5\x8b\xd5\x8c\xd5\x8d\xd5\x8e\xd5\x8f\xd5\x90\xd5\x91\xd5\x92\xd5\x93\xd5\x94\xd5\x95\xd5\x96\xd5\x97\xd5\x98\xd5\x99\xd5\x9a\xd5\x9b\xd5\x9c\xd5\x9d\xd5\x9e\xd5\x9f\xd5\xa0\xd5\xa1\xd5\xa2\xd5\xa3\xd5\xa4\xd5\xa5\xd5\xa6\xd5\xa7\xd5\xa8\xd5\xa9\xd5\xaa\xd5\xab\xd5\xac\xd5\xad\xd5\xae\xd5\xaf\xd5\xb0\xd5\xb1\xd5\xb2\xd5\xb3\xd5\xb4\xd5\xb5\xd5\xb6\xd5\xb7\xd5\xb8\xd5\xb9\xd5\xba\xd5\xbb\xd5\xbc\xd5\xbd\xd5\xbe\xd5\xbf\xd5\xc0\xd5\xc1\xd5\xc2\xd5\xc3\xd5\xc4\xd5\xc5\xd5\xc6\xd5\xc7", /* 3900 */ "\xd5\xc8\xd5\xc9\xd5\xca\xd5\xcb\xd5\xcc\xd5\xcd\xd5\xce\xd5\xcf\xd5\xd0\xd5\xd1\xd5\xd2\xd5\xd3\xd5\xd4\xd5\xd5\xd5\xd6\xd5\xd7\xd5\xd8\xd5\xd9\xd5\xda\xd5\xdb\xd5\xdc\xd5\xdd\xd5\xde\xd5\xdf\xce\x66\xd5\xe0\xd5\xe1\xd5\xe2\xd5\xe3\xd5\xe4\xd5\xe5\xd5\xe6\xd5\xe7\xd5\xe8\xd5\xe9\xd5\xea\xd5\xeb\xd5\xec\xd5\xed\xd5\xee\xd5\xef\xd5\xf0\xd5\xf1\xd5\xf2\xd5\xf3\xd5\xf4\xd5\xf5\xd5\xf6\xd5\xf7\xd5\xf8\xd5\xf9\xd5\xfa\xd5\xfb\xd5\xfc\xd5\xfd\xd5\xfe\xd6\x41\xd6\x42\xd6\x43\xd6\x44\xd6\x45\xd6\x46\xd6\x47\xd6\x48\xd6\x49\xd6\x4a\xd6\x4b\xd6\x4c\xd6\x4d\xd6\x4e\xd6\x4f\xd6\x50\xd6\x51\xd6\x52\xd6\x53\xd6\x54\xd6\x55\xd6\x56\xd6\x57\xd6\x58\xd6\x59\xd6\x5a\xd6\x5b\xd6\x5c\xd6\x5d\xd6\x5e\xd6\x5f\xd6\x60\xd6\x61\xd6\x62\xd6\x63\xd6\x64\xd6\x65\xd6\x66\xd6\x67\xd6\x68\xd6\x69\xd6\x6a\xd6\x6b\xd6\x6c\xd6\x6d\xd6\x6e\xd6\x6f\xd6\x70\xd6\x71\xd6\x72\xd6\x73\xd6\x74\xd6\x75\xd6\x76\xce\x65\xd6\x77\xd6\x78\xd6\x79\xd6\x7a\xd6\x7b\xd6\x7c\xd6\x7d\xd6\x7e\xd6\x7f\xd6\x80\xd6\x81\xd6\x82\xd6\x83\xd6\x84\xd6\x85\xd6\x86\xd6\x87", /* 3980 */ "\xd6\x88\xd6\x89\xd6\x8a\xd6\x8b\xd6\x8c\xd6\x8d\xd6\x8e\xd6\x8f\xd6\x90\xd6\x91\xd6\x92\xd6\x93\xd6\x94\xd6\x95\xd6\x96\xd6\x97\xd6\x98\xd6\x99\xd6\x9a\xd6\x9b\xd6\x9c\xd6\x9d\xd6\x9e\xd6\x9f\xd6\xa0\xd6\xa1\xd6\xa2\xd6\xa3\xd6\xa4\xd6\xa5\xd6\xa6\xd6\xa7\xd6\xa8\xd6\xa9\xd6\xaa\xd6\xab\xd6\xac\xd6\xad\xd6\xae\xd6\xaf\xd6\xb0\xd6\xb1\xd6\xb2\xd6\xb3\xd6\xb4\xd6\xb5\xd6\xb6\xd6\xb7\xd6\xb8\xd6\xb9\xd6\xba\xd6\xbb\xd6\xbc\xd6\xbd\xd6\xbe\xd6\xbf\xd6\xc0\xd6\xc1\xd6\xc2\xd6\xc3\xd6\xc4\xd6\xc5\xd6\xc6\xd6\xc7\xd6\xc8\xd6\xc9\xd6\xca\xd6\xcb\xd6\xcc\xd6\xcd\xd6\xce\xd6\xcf\xd6\xd0\xd6\xd1\xd6\xd2\xd6\xd3\xd6\xd4\xd6\xd5\xd6\xd6\xce\x68\xce\x6b\xd6\xd7\xd6\xd8\xd6\xd9\xd6\xda\xd6\xdb\xd6\xdc\xd6\xdd\xd6\xde\xd6\xdf\xd6\xe0\xd6\xe1\xd6\xe2\xd6\xe3\xd6\xe4\xce\x69\xd6\xe5\xd6\xe6\xd6\xe7\xd6\xe8\xd6\xe9\xd6\xea\xd6\xeb\xd6\xec\xd6\xed\xd6\xee\xd6\xef\xd6\xf0\xd6\xf1\xd6\xf2\xd6\xf3\xd6\xf4\xd6\xf5\xd6\xf6\xd6\xf7\xd6\xf8\xd6\xf9\xd6\xfa\xd6\xfb\xd6\xfc\xd6\xfd\xd6\xfe\xd7\x41\xd7\x42\xd7\x43\xd7\x44\xd7\x45\xd7\x46", /* 3a00 */ "\xd7\x47\xd7\x48\xd7\x49\xd7\x4a\xd7\x4b\xd7\x4c\xd7\x4d\xd7\x4e\xd7\x4f\xd7\x50\xd7\x51\xd7\x52\xd7\x53\xd7\x54\xd7\x55\xd7\x56\xd7\x57\xd7\x58\xd7\x59\xd7\x5a\xd7\x5b\xd7\x5c\xd7\x5d\xd7\x5e\xd7\x5f\xd7\x60\xd7\x61\xd7\x62\xd7\x63\xd7\x64\xd7\x65\xd7\x66\xd7\x67\xd7\x68\xd7\x69\xd7\x6a\xd7\x6b\xd7\x6c\xd7\x6d\xd7\x6e\xd7\x6f\xd7\x70\xd7\x71\xd7\x72\xd7\x73\xd7\x74\xd7\x75\xd7\x76\xd7\x77\xd7\x78\xd7\x79\xd7\x7a\xd7\x7b\xd7\x7c\xd7\x7d\xd7\x7e\xd7\x7f\xd7\x80\xd7\x81\xd7\x82\xd7\x83\xd7\x84\xd7\x85\xd7\x86\xd7\x87\xd7\x88\xd7\x89\xd7\x8a\xd7\x8b\xd7\x8c\xd7\x8d\xd7\x8e\xd7\x8f\xd7\x90\xd7\x91\xd7\x92\xd7\x93\xd7\x94\xd7\x95\xd7\x96\xd7\x97\xd7\x98\xd7\x99\xd7\x9a\xd7\x9b\xd7\x9c\xd7\x9d\xd7\x9e\xd7\x9f\xd7\xa0\xd7\xa1\xd7\xa2\xd7\xa3\xd7\xa4\xd7\xa5\xd7\xa6\xd7\xa7\xd7\xa8\xd7\xa9\xd7\xaa\xd7\xab\xd7\xac\xd7\xad\xd7\xae\xd7\xaf\xd7\xb0\xd7\xb1\xd7\xb2\xd7\xb3\xd7\xb4\xd7\xb5\xd7\xb6\xd7\xb7\xd7\xb8\xd7\xb9\xce\x6a\xd7\xba\xd7\xbb\xd7\xbc\xd7\xbd\xd7\xbe\xd7\xbf\xd7\xc0\xd7\xc1\xd7\xc2\xd7\xc3\xd7\xc4\xd7\xc5", /* 3a80 */ "\xd7\xc6\xd7\xc7\xd7\xc8\xd7\xc9\xd7\xca\xd7\xcb\xd7\xcc\xd7\xcd\xd7\xce\xd7\xcf\xd7\xd0\xd7\xd1\xd7\xd2\xd7\xd3\xd7\xd4\xd7\xd5\xd7\xd6\xd7\xd7\xd7\xd8\xd7\xd9\xd7\xda\xd7\xdb\xd7\xdc\xd7\xdd\xd7\xde\xd7\xdf\xd7\xe0\xd7\xe1\xd7\xe2\xd7\xe3\xd7\xe4\xd7\xe5\xd7\xe6\xd7\xe7\xd7\xe8\xd7\xe9\xd7\xea\xd7\xeb\xd7\xec\xd7\xed\xd7\xee\xd7\xef\xd7\xf0\xd7\xf1\xd7\xf2\xd7\xf3\xd7\xf4\xd7\xf5\xd7\xf6\xd7\xf7\xd7\xf8\xd7\xf9\xd7\xfa\xd7\xfb\xd7\xfc\xd7\xfd\xd7\xfe\xd8\x41\xd8\x42\xd8\x43\xd8\x44\xd8\x45\xd8\x46\xd8\x47\xd8\x48\xd8\x49\xd8\x4a\xd8\x4b\xd8\x4c\xd8\x4d\xd8\x4e\xd8\x4f\xd8\x50\xd8\x51\xd8\x52\xd8\x53\xd8\x54\xd8\x55\xd8\x56\xd8\x57\xd8\x58\xd8\x59\xd8\x5a\xd8\x5b\xd8\x5c\xd8\x5d\xd8\x5e\xd8\x5f\xd8\x60\xd8\x61\xd8\x62\xd8\x63\xd8\x64\xd8\x65\xd8\x66\xd8\x67\xd8\x68\xd8\x69\xd8\x6a\xd8\x6b\xd8\x6c\xd8\x6d\xd8\x6e\xd8\x6f\xd8\x70\xd8\x71\xd8\x72\xd8\x73\xd8\x74\xd8\x75\xd8\x76\xd8\x77\xd8\x78\xd8\x79\xd8\x7a\xd8\x7b\xd8\x7c\xd8\x7d\xd8\x7e\xd8\x7f\xd8\x80\xd8\x81\xd8\x82\xd8\x83\xd8\x84\xd8\x85\xd8\x86\xd8\x87", /* 3b00 */ "\xd8\x88\xd8\x89\xd8\x8a\xd8\x8b\xd8\x8c\xd8\x8d\xd8\x8e\xd8\x8f\xd8\x90\xd8\x91\xd8\x92\xd8\x93\xd8\x94\xd8\x95\xd8\x96\xd8\x97\xd8\x98\xd8\x99\xd8\x9a\xd8\x9b\xd8\x9c\xd8\x9d\xd8\x9e\xd8\x9f\xd8\xa0\xd8\xa1\xd8\xa2\xd8\xa3\xd8\xa4\xd8\xa5\xd8\xa6\xd8\xa7\xd8\xa8\xd8\xa9\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae\xd8\xaf\xd8\xb0\xd8\xb1\xd8\xb2\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba\xd8\xbb\xd8\xbc\xd8\xbd\xd8\xbe\xd8\xbf\xd8\xc0\xd8\xc1\xd8\xc2\xd8\xc3\xd8\xc4\xd8\xc5\xd8\xc6\xd8\xc7\xd8\xc8\xd8\xc9\xd8\xca\xd8\xcb\xd8\xcc\xd8\xcd\xd8\xce\xd8\xcf\xd8\xd0\xd8\xd1\xd8\xd2\xd8\xd3\xd8\xd4\xd8\xd5\xce\x6e\xd8\xd6\xd8\xd7\xd8\xd8\xd8\xd9\xd8\xda\xd8\xdb\xd8\xdc\xd8\xdd\xd8\xde\xd8\xdf\xd8\xe0\xd8\xe1\xd8\xe2\xd8\xe3\xd8\xe4\xd8\xe5\xd8\xe6\xd8\xe7\xd8\xe8\xd8\xe9\xd8\xea\xd8\xeb\xd8\xec\xd8\xed\xd8\xee\xd8\xef\xd8\xf0\xd8\xf1\xd8\xf2\xd8\xf3\xd8\xf4\xd8\xf5\xd8\xf6\xd8\xf7\xd8\xf8\xd8\xf9\xd8\xfa\xd8\xfb\xd8\xfc\xd8\xfd\xd8\xfe\xd9\x41\xd9\x42\xd9\x43\xd9\x44\xd9\x45\xd9\x46\xd9\x47\xd9\x48", /* 3b80 */ "\xd9\x49\xd9\x4a\xd9\x4b\xd9\x4c\xd9\x4d\xd9\x4e\xd9\x4f\xd9\x50\xd9\x51\xd9\x52\xd9\x53\xd9\x54\xd9\x55\xd9\x56\xd9\x57\xd9\x58\xd9\x59\xd9\x5a\xd9\x5b\xd9\x5c\xd9\x5d\xd9\x5e\xd9\x5f\xd9\x60\xd9\x61\xd9\x62\xd9\x63\xd9\x64\xd9\x65\xd9\x66\xd9\x67\xd9\x68\xd9\x69\xd9\x6a\xd9\x6b\xd9\x6c\xd9\x6d\xd9\x6e\xd9\x6f\xd9\x70\xd9\x71\xd9\x72\xd9\x73\xd9\x74\xd9\x75\xd9\x76\xd9\x77\xd9\x78\xd9\x79\xd9\x7a\xd9\x7b\xd9\x7c\xd9\x7d\xd9\x7e\xd9\x7f\xd9\x80\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x88\xd9\x89\xd9\x8a\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f\xd9\x90\xd9\x91\xd9\x92\xd9\x93\xd9\x94\xd9\x95\xd9\x96\xd9\x97\xd9\x98\xd9\x99\xd9\x9a\xd9\x9b\xd9\x9c\xd9\x9d\xd9\x9e\xd9\x9f\xd9\xa0\xd9\xa1\xd9\xa2\xd9\xa3\xd9\xa4\xd9\xa5\xd9\xa6\xd9\xa7\xd9\xa8\xd9\xa9\xd9\xaa\xd9\xab\xd9\xac\xd9\xad\xd9\xae\xd9\xaf\xd9\xb0\xd9\xb1\xd9\xb2\xd9\xb3\xd9\xb4\xd9\xb5\xd9\xb6\xd9\xb7\xd9\xb8\xd9\xb9\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf\xd9\xc0\xd9\xc1\xd9\xc2\xd9\xc3\xd9\xc4\xd9\xc5\xd9\xc6\xd9\xc7\xd9\xc8", /* 3c00 */ "\xd9\xc9\xd9\xca\xd9\xcb\xd9\xcc\xd9\xcd\xd9\xce\xd9\xcf\xd9\xd0\xd9\xd1\xd9\xd2\xd9\xd3\xd9\xd4\xd9\xd5\xd9\xd6\xd9\xd7\xd9\xd8\xd9\xd9\xd9\xda\xd9\xdb\xd9\xdc\xd9\xdd\xd9\xde\xd9\xdf\xd9\xe0\xd9\xe1\xd9\xe2\xd9\xe3\xd9\xe4\xd9\xe5\xd9\xe6\xd9\xe7\xd9\xe8\xd9\xe9\xd9\xea\xd9\xeb\xd9\xec\xd9\xed\xd9\xee\xd9\xef\xd9\xf0\xd9\xf1\xd9\xf2\xd9\xf3\xd9\xf4\xd9\xf5\xd9\xf6\xd9\xf7\xd9\xf8\xd9\xf9\xd9\xfa\xd9\xfb\xd9\xfc\xd9\xfd\xd9\xfe\xda\x41\xda\x42\xda\x43\xda\x44\xda\x45\xda\x46\xda\x47\xda\x48\xda\x49\xda\x4a\xda\x4b\xda\x4c\xda\x4d\xda\x4e\xda\x4f\xda\x50\xda\x51\xda\x52\xda\x53\xda\x54\xda\x55\xda\x56\xda\x57\xda\x58\xda\x59\xda\x5a\xda\x5b\xda\x5c\xda\x5d\xda\x5e\xda\x5f\xda\x60\xda\x61\xda\x62\xda\x63\xda\x64\xda\x65\xda\x66\xda\x67\xda\x68\xda\x69\xda\x6a\xda\x6b\xda\x6c\xda\x6d\xda\x6e\xda\x6f\xda\x70\xda\x71\xda\x72\xda\x73\xda\x74\xda\x75\xda\x76\xda\x77\xda\x78\xce\x6f\xda\x79\xda\x7a\xda\x7b\xda\x7c\xda\x7d\xda\x7e\xda\x7f\xda\x80\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87\xda\x88\xda\x89", /* 3c80 */ "\xda\x8a\xda\x8b\xda\x8c\xda\x8d\xda\x8e\xda\x8f\xda\x90\xda\x91\xda\x92\xda\x93\xda\x94\xda\x95\xda\x96\xda\x97\xda\x98\xda\x99\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f\xda\xa0\xda\xa1\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8\xda\xa9\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9\xda\xba\xda\xbb\xda\xbc\xda\xbd\xda\xbe\xda\xbf\xda\xc0\xda\xc1\xda\xc2\xda\xc3\xda\xc4\xda\xc5\xda\xc6\xda\xc7\xda\xc8\xda\xc9\xda\xca\xda\xcb\xda\xcc\xda\xcd\xda\xce\xda\xcf\xda\xd0\xda\xd1\xda\xd2\xda\xd3\xda\xd4\xda\xd5\xda\xd6\xda\xd7\xda\xd8\xda\xd9\xda\xda\xda\xdb\xda\xdc\xda\xdd\xda\xde\xda\xdf\xda\xe0\xda\xe1\xda\xe2\xda\xe3\xda\xe4\xda\xe5\xda\xe6\xda\xe7\xda\xe8\xda\xe9\xce\x70\xda\xea\xda\xeb\xda\xec\xda\xed\xda\xee\xda\xef\xda\xf0\xda\xf1\xda\xf2\xda\xf3\xda\xf4\xda\xf5\xda\xf6\xda\xf7\xda\xf8\xda\xf9\xda\xfa\xda\xfb\xda\xfc\xda\xfd\xda\xfe\xdb\x41\xdb\x42\xdb\x43\xdb\x44\xdb\x45\xdb\x46\xdb\x47\xdb\x48\xdb\x49\xdb\x4a", /* 3d00 */ "\xdb\x4b\xdb\x4c\xdb\x4d\xdb\x4e\xdb\x4f\xdb\x50\xdb\x51\xdb\x52\xdb\x53\xdb\x54\xdb\x55\xdb\x56\xdb\x57\xdb\x58\xdb\x59\xdb\x5a\xdb\x5b\xdb\x5c\xdb\x5d\xdb\x5e\xdb\x5f\xdb\x60\xdb\x61\xdb\x62\xdb\x63\xdb\x64\xdb\x65\xdb\x66\xdb\x67\xdb\x68\xdb\x69\xdb\x6a\xdb\x6b\xdb\x6c\xdb\x6d\xdb\x6e\xdb\x6f\xdb\x70\xdb\x71\xdb\x72\xdb\x73\xdb\x74\xdb\x75\xdb\x76\xdb\x77\xdb\x78\xdb\x79\xdb\x7a\xdb\x7b\xdb\x7c\xdb\x7d\xdb\x7e\xdb\x7f\xdb\x80\xdb\x81\xdb\x82\xdb\x83\xdb\x84\xdb\x85\xdb\x86\xdb\x87\xdb\x88\xdb\x89\xdb\x8a\xdb\x8b\xdb\x8c\xdb\x8d\xdb\x8e\xdb\x8f\xdb\x90\xdb\x91\xdb\x92\xdb\x93\xdb\x94\xdb\x95\xdb\x96\xdb\x97\xdb\x98\xdb\x99\xdb\x9a\xdb\x9b\xdb\x9c\xdb\x9d\xdb\x9e\xdb\x9f\xdb\xa0\xdb\xa1\xdb\xa2\xdb\xa3\xdb\xa4\xdb\xa5\xdb\xa6\xdb\xa7\xdb\xa8\xdb\xa9\xdb\xaa\xdb\xab\xdb\xac\xdb\xad\xdb\xae\xdb\xaf\xdb\xb0\xdb\xb1\xdb\xb2\xdb\xb3\xdb\xb4\xdb\xb5\xdb\xb6\xdb\xb7\xdb\xb8\xdb\xb9\xdb\xba\xdb\xbb\xdb\xbc\xdb\xbd\xdb\xbe\xdb\xbf\xdb\xc0\xdb\xc1\xdb\xc2\xdb\xc3\xdb\xc4\xdb\xc5\xdb\xc6\xdb\xc7\xdb\xc8\xdb\xc9\xdb\xca", /* 3d80 */ "\xdb\xcb\xdb\xcc\xdb\xcd\xdb\xce\xdb\xcf\xdb\xd0\xdb\xd1\xdb\xd2\xdb\xd3\xdb\xd4\xdb\xd5\xdb\xd6\xdb\xd7\xdb\xd8\xdb\xd9\xdb\xda\xdb\xdb\xdb\xdc\xdb\xdd\xdb\xde\xdb\xdf\xdb\xe0\xdb\xe1\xdb\xe2\xdb\xe3\xdb\xe4\xdb\xe5\xdb\xe6\xdb\xe7\xdb\xe8\xdb\xe9\xdb\xea\xdb\xeb\xdb\xec\xdb\xed\xdb\xee\xdb\xef\xdb\xf0\xdb\xf1\xdb\xf2\xdb\xf3\xdb\xf4\xdb\xf5\xdb\xf6\xdb\xf7\xdb\xf8\xdb\xf9\xdb\xfa\xdb\xfb\xdb\xfc\xdb\xfd\xdb\xfe\xdc\x41\xdc\x42\xdc\x43\xdc\x44\xdc\x45\xdc\x46\xdc\x47\xdc\x48\xdc\x49\xdc\x4a\xdc\x4b\xdc\x4c\xdc\x4d\xdc\x4e\xdc\x4f\xdc\x50\xdc\x51\xdc\x52\xdc\x53\xdc\x54\xdc\x55\xdc\x56\xdc\x57\xdc\x58\xdc\x59\xdc\x5a\xdc\x5b\xdc\x5c\xdc\x5d\xdc\x5e\xdc\x5f\xdc\x60\xdc\x61\xdc\x62\xdc\x63\xdc\x64\xdc\x65\xdc\x66\xdc\x67\xdc\x68\xdc\x69\xdc\x6a\xdc\x6b\xdc\x6c\xdc\x6d\xdc\x6e\xdc\x6f\xdc\x70\xdc\x71\xdc\x72\xdc\x73\xdc\x74\xdc\x75\xdc\x76\xdc\x77\xdc\x78\xdc\x79\xdc\x7a\xdc\x7b\xdc\x7c\xdc\x7d\xdc\x7e\xdc\x7f\xdc\x80\xdc\x81\xdc\x82\xdc\x83\xdc\x84\xdc\x85\xdc\x86\xdc\x87\xdc\x88\xdc\x89\xdc\x8a\xdc\x8b\xdc\x8c", /* 3e00 */ "\xdc\x8d\xdc\x8e\xdc\x8f\xdc\x90\xdc\x91\xdc\x92\xdc\x93\xdc\x94\xdc\x95\xdc\x96\xdc\x97\xdc\x98\xdc\x99\xdc\x9a\xdc\x9b\xdc\x9c\xdc\x9d\xdc\x9e\xdc\x9f\xdc\xa0\xdc\xa1\xdc\xa2\xdc\xa3\xdc\xa4\xdc\xa5\xdc\xa6\xdc\xa7\xdc\xa8\xdc\xa9\xdc\xaa\xdc\xab\xdc\xac\xdc\xad\xdc\xae\xdc\xaf\xdc\xb0\xdc\xb1\xdc\xb2\xdc\xb3\xdc\xb4\xdc\xb5\xdc\xb6\xdc\xb7\xdc\xb8\xdc\xb9\xdc\xba\xdc\xbb\xdc\xbc\xdc\xbd\xdc\xbe\xdc\xbf\xdc\xc0\xdc\xc1\xdc\xc2\xdc\xc3\xdc\xc4\xdc\xc5\xdc\xc6\xdc\xc7\xdc\xc8\xdc\xc9\xdc\xca\xdc\xcb\xdc\xcc\xdc\xcd\xdc\xce\xdc\xcf\xdc\xd0\xdc\xd1\xdc\xd2\xdc\xd3\xdc\xd4\xdc\xd5\xdc\xd6\xdc\xd7\xdc\xd8\xdc\xd9\xdc\xda\xdc\xdb\xdc\xdc\xdc\xdd\xdc\xde\xdc\xdf\xdc\xe0\xdc\xe1\xdc\xe2\xdc\xe3\xdc\xe4\xdc\xe5\xdc\xe6\xdc\xe7\xdc\xe8\xdc\xe9\xdc\xea\xdc\xeb\xdc\xec\xdc\xed\xdc\xee\xdc\xef\xdc\xf0\xdc\xf1\xdc\xf2\xdc\xf3\xdc\xf4\xdc\xf5\xdc\xf6\xdc\xf7\xdc\xf8\xdc\xf9\xdc\xfa\xdc\xfb\xdc\xfc\xdc\xfd\xdc\xfe\xdd\x41\xdd\x42\xdd\x43\xdd\x44\xdd\x45\xdd\x46\xdd\x47\xdd\x48\xdd\x49\xdd\x4a\xdd\x4b\xdd\x4c\xdd\x4d\xdd\x4e", /* 3e80 */ "\xdd\x4f\xdd\x50\xdd\x51\xdd\x52\xdd\x53\xdd\x54\xdd\x55\xdd\x56\xdd\x57\xdd\x58\xdd\x59\xdd\x5a\xdd\x5b\xdd\x5c\xdd\x5d\xdd\x5e\xdd\x5f\xdd\x60\xdd\x61\xdd\x62\xdd\x63\xdd\x64\xdd\x65\xdd\x66\xdd\x67\xdd\x68\xdd\x69\xdd\x6a\xdd\x6b\xdd\x6c\xdd\x6d\xdd\x6e\xdd\x6f\xdd\x70\xdd\x71\xdd\x72\xdd\x73\xdd\x74\xdd\x75\xdd\x76\xdd\x77\xdd\x78\xdd\x79\xdd\x7a\xdd\x7b\xdd\x7c\xdd\x7d\xdd\x7e\xdd\x7f\xdd\x80\xdd\x81\xdd\x82\xdd\x83\xdd\x84\xdd\x85\xdd\x86\xdd\x87\xdd\x88\xdd\x89\xdd\x8a\xdd\x8b\xdd\x8c\xdd\x8d\xdd\x8e\xdd\x8f\xdd\x90\xdd\x91\xdd\x92\xdd\x93\xdd\x94\xdd\x95\xdd\x96\xdd\x97\xdd\x98\xdd\x99\xdd\x9a\xdd\x9b\xdd\x9c\xdd\x9d\xdd\x9e\xdd\x9f\xdd\xa0\xdd\xa1\xdd\xa2\xdd\xa3\xdd\xa4\xdd\xa5\xdd\xa6\xdd\xa7\xdd\xa8\xdd\xa9\xdd\xaa\xdd\xab\xdd\xac\xdd\xad\xdd\xae\xdd\xaf\xdd\xb0\xdd\xb1\xdd\xb2\xdd\xb3\xdd\xb4\xdd\xb5\xdd\xb6\xdd\xb7\xdd\xb8\xdd\xb9\xdd\xba\xdd\xbb\xdd\xbc\xdd\xbd\xdd\xbe\xdd\xbf\xdd\xc0\xdd\xc1\xdd\xc2\xdd\xc3\xdd\xc4\xdd\xc5\xdd\xc6\xdd\xc7\xdd\xc8\xdd\xc9\xdd\xca\xdd\xcb\xdd\xcc\xdd\xcd\xdd\xce", /* 3f00 */ "\xdd\xcf\xdd\xd0\xdd\xd1\xdd\xd2\xdd\xd3\xdd\xd4\xdd\xd5\xdd\xd6\xdd\xd7\xdd\xd8\xdd\xd9\xdd\xda\xdd\xdb\xdd\xdc\xdd\xdd\xdd\xde\xdd\xdf\xdd\xe0\xdd\xe1\xdd\xe2\xdd\xe3\xdd\xe4\xdd\xe5\xdd\xe6\xdd\xe7\xdd\xe8\xdd\xe9\xdd\xea\xdd\xeb\xdd\xec\xdd\xed\xdd\xee\xdd\xef\xdd\xf0\xdd\xf1\xdd\xf2\xdd\xf3\xdd\xf4\xdd\xf5\xdd\xf6\xdd\xf7\xdd\xf8\xdd\xf9\xdd\xfa\xdd\xfb\xdd\xfc\xdd\xfd\xdd\xfe\xde\x41\xde\x42\xde\x43\xde\x44\xde\x45\xde\x46\xde\x47\xde\x48\xde\x49\xde\x4a\xde\x4b\xde\x4c\xde\x4d\xde\x4e\xde\x4f\xde\x50\xde\x51\xde\x52\xde\x53\xde\x54\xde\x55\xde\x56\xde\x57\xde\x58\xde\x59\xde\x5a\xde\x5b\xde\x5c\xde\x5d\xde\x5e\xde\x5f\xde\x60\xde\x61\xde\x62\xde\x63\xde\x64\xde\x65\xde\x66\xde\x67\xde\x68\xde\x69\xde\x6a\xde\x6b\xde\x6c\xde\x6d\xde\x6e\xde\x6f\xde\x70\xde\x71\xde\x72\xde\x73\xde\x74\xde\x75\xde\x76\xde\x77\xde\x78\xde\x79\xde\x7a\xde\x7b\xde\x7c\xde\x7d\xde\x7e\xde\x7f\xde\x80\xde\x81\xde\x82\xde\x83\xde\x84\xde\x85\xde\x86\xde\x87\xde\x88\xde\x89\xde\x8a\xde\x8b\xde\x8c\xde\x8d\xde\x8e\xde\x8f\xde\x90", /* 3f80 */ "\xde\x91\xde\x92\xde\x93\xde\x94\xde\x95\xde\x96\xde\x97\xde\x98\xde\x99\xde\x9a\xde\x9b\xde\x9c\xde\x9d\xde\x9e\xde\x9f\xde\xa0\xde\xa1\xde\xa2\xde\xa3\xde\xa4\xde\xa5\xde\xa6\xde\xa7\xde\xa8\xde\xa9\xde\xaa\xde\xab\xde\xac\xde\xad\xde\xae\xde\xaf\xde\xb0\xde\xb1\xde\xb2\xde\xb3\xde\xb4\xde\xb5\xde\xb6\xde\xb7\xde\xb8\xde\xb9\xde\xba\xde\xbb\xde\xbc\xde\xbd\xde\xbe\xde\xbf\xde\xc0\xde\xc1\xde\xc2\xde\xc3\xde\xc4\xde\xc5\xde\xc6\xde\xc7\xde\xc8\xde\xc9\xde\xca\xde\xcb\xde\xcc\xde\xcd\xde\xce\xde\xcf\xde\xd0\xde\xd1\xde\xd2\xde\xd3\xde\xd4\xde\xd5\xde\xd6\xde\xd7\xde\xd8\xde\xd9\xde\xda\xde\xdb\xde\xdc\xde\xdd\xde\xde\xde\xdf\xde\xe0\xde\xe1\xde\xe2\xde\xe3\xde\xe4\xde\xe5\xde\xe6\xde\xe7\xde\xe8\xde\xe9\xde\xea\xde\xeb\xde\xec\xde\xed\xde\xee\xde\xef\xde\xf0\xde\xf1\xde\xf2\xde\xf3\xde\xf4\xde\xf5\xde\xf6\xde\xf7\xde\xf8\xde\xf9\xde\xfa\xde\xfb\xde\xfc\xde\xfd\xde\xfe\xdf\x41\xdf\x42\xdf\x43\xdf\x44\xdf\x45\xdf\x46\xdf\x47\xdf\x48\xdf\x49\xdf\x4a\xdf\x4b\xdf\x4c\xdf\x4d\xdf\x4e\xdf\x4f\xdf\x50\xdf\x51\xdf\x52", /* 4000 */ "\xdf\x53\xdf\x54\xdf\x55\xdf\x56\xdf\x57\xdf\x58\xdf\x59\xdf\x5a\xdf\x5b\xdf\x5c\xdf\x5d\xdf\x5e\xdf\x5f\xdf\x60\xdf\x61\xdf\x62\xdf\x63\xdf\x64\xdf\x65\xdf\x66\xdf\x67\xdf\x68\xdf\x69\xdf\x6a\xdf\x6b\xdf\x6c\xdf\x6d\xdf\x6e\xdf\x6f\xdf\x70\xdf\x71\xdf\x72\xdf\x73\xdf\x74\xdf\x75\xdf\x76\xdf\x77\xdf\x78\xdf\x79\xdf\x7a\xdf\x7b\xdf\x7c\xdf\x7d\xdf\x7e\xdf\x7f\xdf\x80\xdf\x81\xdf\x82\xdf\x83\xdf\x84\xdf\x85\xdf\x86\xdf\x87\xdf\x88\xdf\x89\xdf\x8a\xdf\x8b\xdf\x8c\xdf\x8d\xdf\x8e\xdf\x8f\xdf\x90\xdf\x91\xdf\x92\xdf\x93\xdf\x94\xdf\x95\xdf\x96\xdf\x97\xdf\x98\xdf\x99\xdf\x9a\xdf\x9b\xdf\x9c\xdf\x9d\xdf\x9e\xdf\x9f\xdf\xa0\xdf\xa1\xdf\xa2\xdf\xa3\xdf\xa4\xdf\xa5\xdf\xa6\xdf\xa7\xdf\xa8\xce\x75\xdf\xa9\xdf\xaa\xdf\xab\xdf\xac\xdf\xad\xdf\xae\xdf\xaf\xdf\xb0\xdf\xb1\xdf\xb2\xdf\xb3\xdf\xb4\xdf\xb5\xdf\xb6\xdf\xb7\xdf\xb8\xdf\xb9\xdf\xba\xdf\xbb\xdf\xbc\xdf\xbd\xdf\xbe\xdf\xbf\xdf\xc0\xdf\xc1\xdf\xc2\xdf\xc3\xdf\xc4\xdf\xc5\xdf\xc6\xdf\xc7\xdf\xc8\xdf\xc9\xdf\xca\xdf\xcb\xdf\xcc\xdf\xcd\xdf\xce\xdf\xcf\xdf\xd0\xdf\xd1", /* 4080 */ "\xdf\xd2\xdf\xd3\xdf\xd4\xdf\xd5\xdf\xd6\xdf\xd7\xdf\xd8\xdf\xd9\xdf\xda\xdf\xdb\xdf\xdc\xdf\xdd\xdf\xde\xdf\xdf\xdf\xe0\xdf\xe1\xdf\xe2\xdf\xe3\xdf\xe4\xdf\xe5\xdf\xe6\xdf\xe7\xdf\xe8\xdf\xe9\xdf\xea\xdf\xeb\xdf\xec\xdf\xed\xdf\xee\xdf\xef\xdf\xf0\xdf\xf1\xdf\xf2\xdf\xf3\xdf\xf4\xdf\xf5\xdf\xf6\xdf\xf7\xdf\xf8\xdf\xf9\xdf\xfa\xdf\xfb\xdf\xfc\xdf\xfd\xdf\xfe\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93", /* 4100 */ "\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xce\x76\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54", /* 4180 */ "\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4", /* 4200 */ "\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96", /* 4280 */ "\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58", /* 4300 */ "\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xce\x78\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7", /* 4380 */ "\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xce\x7e\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xce\x7d\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xce\x81\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96", /* 4400 */ "\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58", /* 4480 */ "\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xce\x82\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7", /* 4500 */ "\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99", /* 4580 */ "\xe6\x9a\xe6\x9b\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b", /* 4600 */ "\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xce\x84\xe7\xa8\xe7\xa9\xe7\xaa\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xce\x83\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9", /* 4680 */ "\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b", /* 4700 */ "\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xce\x86\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xce\x87\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xce\x88\xe9\x58\xe9\x59\xe9\x5a", /* 4780 */ "\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xce\x89\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9", /* 4800 */ "\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b", /* 4880 */ "\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xeb\x41\xeb\x42\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d", /* 4900 */ "\xeb\x5e\xeb\x5f\xeb\x60\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xce\x8b\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xce\x8c\xeb\xd7\xeb\xd8\xce\x8d\xeb\xd9\xeb\xda", /* 4980 */ "\xeb\xdb\xeb\xdc\xce\x8e\xce\x8f\xeb\xdd\xce\x90\xce\x91\xeb\xde\xeb\xdf\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xce\x93\xeb\xf2\xeb\xf3\xeb\xf4\xce\x92\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xce\x95\xce\x94\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94", /* 4a00 */ "\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56", /* 4a80 */ "\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6", /* 4b00 */ "\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98", /* 4b80 */ "\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a", /* 4c00 */ "\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xce\x9c\xef\xd2\xef\xd3\xef\xd4\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9", /* 4c80 */ "\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xce\x99\xce\x9a\xce\x9b\xce\x9d\xce\x98\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xf6\x41\xf6\x42\xf6\x43\xf6\x44\xf6\x45\xf6\x46\xf6\x47\xf6\x48\xf6\x49\xf6\x4a\xf6\x4b\xf6\x4c\xf6\x4d\xf6\x4e\xf6\x4f\xf6\x50\xf6\x51\xf6\x52\xf6\x53\xf6\x54\xf6\x55\xf6\x56\xf6\x57\xf6\x58\xf6\x59\xf6\x5a\xf6\x5b\xf6\x5c\xf6\x5d\xf6\x5e\xf6\x5f\xf6\x60\xf6\x61\xf6\x62\xf6\x63\xf6\x64\xf6\x65\xf6\x66\xf6\x67\xf6\x68\xf6\x69\xf6\x6a\xf6\x6b\xf6\x6c\xf6\x6d\xf6\x6e\xf6\x6f\xf6\x70\xf6\x71\xf6\x72\xf6\x73\xf6\x74\xf6\x75\xf6\x76\xf6\x77\xf6\x78\xf6\x79\xf6\x7a\xf6\x7b\xf6\x7c\xf6\x7d\xf6\x7e\xf6\x7f\xf6\x80\xf6\x81\xf6\x82\xf6\x83\xf6\x84\xf6\x85\xf6\x86\xf6\x87\xf6\x88\xf6\x89\xf6\x8a\xf6\x8b\xf6\x8c\xf6\x8d\xf6\x8e\xf6\x8f\xf6\x90\xf6\x91\xf6\x92\xf6\x93\xf6\x94\xf6\x95\xf6\x96", /* 4d00 */ "\xf6\x97\xf6\x98\xf6\x99\xf6\x9a\xf6\x9b\xf6\x9c\xf6\x9d\xf6\x9e\xf6\x9f\xf6\xa0\xf6\xa1\xf6\xa2\xf6\xa3\xf6\xa4\xf6\xa5\xf6\xa6\xf6\xa7\xf6\xa8\xf6\xa9\xce\x9e\xce\x9f\xce\xa0\xce\xa1\xce\xa2\xce\xa3\xce\xa4\xf6\xaa\xf6\xab\xf6\xac\xf6\xad\xf6\xae\xf6\xaf\xf6\xb0\xf6\xb1\xf6\xb2\xf6\xb3\xf6\xb4\xf6\xb5\xf6\xb6\xf6\xb7\xf6\xb8\xf6\xb9\xf6\xba\xf6\xbb\xf6\xbc\xf6\xbd\xf6\xbe\xf6\xbf\xf6\xc0\xf6\xc1\xf6\xc2\xf6\xc3\xf6\xc4\xf6\xc5\xf6\xc6\xf6\xc7\xf6\xc8\xf6\xc9\xf6\xca\xf6\xcb\xf6\xcc\xf6\xcd\xf6\xce\xf6\xcf\xf6\xd0\xf6\xd1\xf6\xd2\xf6\xd3\xf6\xd4\xf6\xd5\xf6\xd6\xf6\xd7\xf6\xd8\xf6\xd9\xf6\xda\xf6\xdb\xf6\xdc\xf6\xdd\xf6\xde\xf6\xdf\xf6\xe0\xf6\xe1\xf6\xe2\xf6\xe3\xf6\xe4\xf6\xe5\xf6\xe6\xf6\xe7\xf6\xe8\xf6\xe9\xf6\xea\xf6\xeb\xf6\xec\xf6\xed\xf6\xee\xf6\xef\xf6\xf0\xf6\xf1\xf6\xf2\xf6\xf3\xf6\xf4\xf6\xf5\xf6\xf6\xf6\xf7\xf6\xf8\xf6\xf9\xf6\xfa\xf6\xfb\xf6\xfc\xf6\xfd\xf6\xfe\xf7\x41\xf7\x42\xf7\x43\xf7\x44\xf7\x45\xf7\x46\xf7\x47\xf7\x48\xf7\x49\xf7\x4a\xf7\x4b\xf7\x4c\xf7\x4d\xf7\x4e\xf7\x4f\xf7\x50\xf7\x51", /* 4d80 */ "\xf7\x52\xf7\x53\xf7\x54\xf7\x55\xf7\x56\xf7\x57\xf7\x58\xf7\x59\xf7\x5a\xf7\x5b\xf7\x5c\xf7\x5d\xf7\x5e\xf7\x5f\xf7\x60\xf7\x61\xf7\x62\xf7\x63\xf7\x64\xf7\x65\xf7\x66\xf7\x67\xf7\x68\xf7\x69\xf7\x6a\xf7\x6b\xf7\x6c\xf7\x6d\xf7\x6e\xf7\x6f\xf7\x70\xf7\x71\xf7\x72\xf7\x73\xf7\x74\xf7\x75\xf7\x76\xf7\x77\xf7\x78\xf7\x79\xf7\x7a\xf7\x7b\xf7\x7c\xf7\x7d\xf7\x7e\xf7\x7f\xce\xa5\xf7\x80\xf7\x81\xf7\x82\xf7\x83\xf7\x84\xf7\x85\xf7\x86\xf7\x87\xf7\x88\xf7\x89\xf7\x8a\xf7\x8b\xf7\x8c\xf7\x8d\xf7\x8e\xf7\x8f\xf7\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4e00 */ "\x59\xba\x4b\xa0\x81\x41\x53\xde\x81\x42\x81\x43\x81\x44\x57\x93\x5b\x69\x54\xfc\x55\x6f\x58\x62\x5c\xa1\x49\xba\x5a\x8c\x81\x45\x5c\xa3\x4a\x94\x81\x46\x5c\x48\x54\x72\x5c\xa6\x55\xbf\x81\x47\x54\x91\x49\x9c\x59\xb4\x4a\xd3\x4b\xaa\x56\x5f\x5c\xa8\x81\x48\x81\x49\x81\x4a\x4b\xa9\x81\x4b\x51\x5d\x59\x6f\x81\x4c\x55\x45\x5c\xac\x81\x4d\x4c\xf5\x59\x5e\x62\x7c\x5b\xcf\x81\x4e\x81\x4f\x4c\x82\x81\x50\x4a\xad\x81\x51\x51\x79\x81\x52\x5c\xbb\x81\x53\x57\x89\x4b\x44\x57\xa9\x5b\xf6\x81\x54\x50\xf5\x4f\xd8\x5c\xae\x81\x55\x81\x56\x81\x57\x52\xca\x81\x58\x4f\xc2\x81\x59\x5c\xb0\x52\x54\x59\xe4\x81\x5a\x5b\xad\x57\xd9\x5b\x47\x4d\xf4\x4c\x46\x50\xd5\x81\x5b\x53\xb8\x53\x72\x54\x67\x81\x5c\x4d\x74\x81\x5d\x4a\x6b\x59\xd1\x81\x5e\x81\x5f\x5c\xbe\x4f\xc4\x53\xf1\x59\xb1\x58\x50\x58\x88\x81\x60\x81\x61\x81\x62\x81\x63\x55\xe8\x81\x64\x81\x65\x5c\xbf\x81\x66\x81\x67\x81\x68\x81\x69\x81\x6a\x81\x6b\x51\xf1\x51\xd1\x81\x6c\x54\xe8\x81\x6d\x81\x6e\x81\x6f\x81\x70\x81\x71\x81\x72\x81\x73\x81\x74\x81\x75\x81\x76\x54\x4c\x81\x77", /* 4e80 */ "\x81\x78\x81\x79\x81\x7a\x81\x7b\x81\x7c\x81\x7d\x51\x6b\x81\x7e\x5a\x89\x5b\x9a\x81\x7f\x55\xc1\x4b\xfd\x5c\xa0\x5a\x7a\x50\x98\x81\x81\x5a\xc5\x4e\x45\x5c\xc0\x57\xe4\x4f\xad\x81\x82\x81\x83\x5c\xa7\x81\x84\x59\x67\x58\xa8\x81\x85\x81\x86\x81\x87\x5c\xbc\x5d\x90\x57\x97\x50\x5a\x81\x88\x4f\x5b\x4d\xa4\x59\xdf\x49\xf9\x4d\xdf\x52\xb5\x81\x89\x58\x8e\x4f\xa8\x57\x44\x51\x61\x81\x8a\x81\x8b\x81\x8c\x54\x77\x5d\x92\x81\x8d\x5d\x95\x81\x8e\x81\x8f\x81\x90\x81\x91\x54\xca\x5c\xe8\x81\x92\x81\x93\x81\x94\x59\xd9\x55\xb1\x54\xc9\x5c\xeb\x5c\xe9\x5c\xc5\x4f\x97\x53\xcc\x4a\x91\x81\x95\x5c\xea\x4f\x92\x4f\x8a\x81\x96\x54\xd3\x4a\xd2\x81\x97\x81\x98\x51\xd7\x81\x99\x49\xd5\x5c\x70\x55\xca\x56\x9c\x5b\x6c\x4c\xb5\x58\x69\x81\x9a\x81\x9b\x81\x9c\x5d\x7a\x5c\xef\x54\x4a\x81\x9d\x5c\xed\x81\x9e\x4a\xf9\x51\x8f\x59\xd3\x81\x9f\x81\xa0\x5c\xec\x81\xa1\x59\xc6\x5c\xee\x52\x67\x81\xa2\x81\xa3\x81\xa4\x59\x97\x81\xa5\x5b\xd8\x5c\xf1\x81\xa6\x5c\xf4\x4e\xfd\x4e\xda\x81\xa7\x81\xa8\x81\xa9\x54\xcd\x81\xaa\x4c\x7d\x81\xab\x4c\x62", /* 4f00 */ "\x81\xac\x53\xf2\x81\xad\x81\xae\x81\xaf\x81\xb0\x81\xb1\x81\xb2\x81\xb3\x5c\xf7\x59\xc0\x81\xb4\x81\xb5\x57\xe8\x4e\xbe\x4c\x9d\x4c\x45\x58\xdc\x81\xb6\x81\xb7\x81\xb8\x81\xb9\x81\xba\x5b\xd9\x5a\x65\x4e\x90\x4e\x82\x5c\xf0\x81\xbb\x81\xbc\x55\x41\x57\xaf\x4a\xaa\x81\xbd\x5c\xf2\x81\xbe\x55\x6b\x5c\xf5\x51\xd6\x5c\xf6\x81\xbf\x81\xc0\x57\xb0\x5c\xf8\x81\xc1\x81\xc2\x81\xc3\x49\xad\x4d\x60\x81\xc4\x5d\x43\x81\xc5\x48\xe8\x81\xc6\x51\x87\x81\xc7\x55\x8d\x81\xc8\x56\x65\x81\xc9\x56\x66\x5d\x44\x81\xca\x81\xcb\x81\xcc\x81\xcd\x81\xce\x4b\x89\x81\xcf\x81\xd0\x4b\x4b\x81\xd1\x81\xd2\x81\xd3\x81\xd4\x81\xd5\x81\xd6\x57\xba\x4b\x6d\x5c\x41\x5c\x95\x5a\x73\x81\xd7\x56\xe4\x81\xd8\x4d\xcd\x81\xd9\x5d\x42\x5d\x7c\x5a\x81\x5c\xfc\x4c\x91\x5c\x98\x5c\xfd\x5c\xf9\x5d\x41\x52\xe2\x81\xda\x81\xdb\x5a\x56\x5c\xf3\x5d\x7d\x81\xdc\x5c\xfa\x81\xdd\x53\x86\x81\xde\x81\xdf\x50\xcf\x81\xe0\x81\xe1\x59\x91\x48\xda\x81\xe2\x81\xe3\x4e\xd0\x5d\x46\x81\xe4\x5d\x45\x81\xe5\x81\xe6\x81\xe7\x81\xe8\x5d\x4c\x5d\x4e\x81\xe9\x5d\x4b\x55\xb8", /* 4f80 */ "\x81\xea\x81\xeb\x81\xec\x5d\x49\x5b\xb5\x81\xed\x81\xee\x81\xef\x4a\x7e\x5d\x48\x81\xf0\x50\xfc\x81\xf1\x55\xcb\x81\xf2\x5d\x4a\x81\xf3\x5d\x47\x81\xf4\x81\xf5\x5d\x50\x81\xf6\x81\xf7\x4b\xb0\x81\xf8\x81\xf9\x81\xfa\x4d\x49\x81\xfb\x59\xbf\x81\xfc\x81\xfd\x58\x60\x82\x41\x82\x42\x51\xc1\x82\x43\x4f\x64\x5b\x8d\x49\xdf\x54\x68\x50\x8c\x5d\x4d\x82\x44\x5d\x4f\x82\x45\x57\xe9\x4d\xed\x82\x46\x82\x47\x82\x48\x82\x49\x82\x4a\x54\x76\x82\x4b\x82\x4c\x82\x4d\x82\x4e\x82\x4f\x82\x50\x82\x51\x82\x52\x82\x53\x49\x84\x82\x54\x82\x55\x82\x56\x4a\xd8\x4b\xec\x5d\x54\x82\x57\x82\x58\x82\x59\x82\x5a\x50\x41\x82\x5b\x82\x5c\x82\x5d\x5d\x7e\x54\x6e\x50\xfd\x5d\x58\x82\x5e\x82\x5f\x82\x60\x82\x61\x82\x62\x56\x77\x4c\x9e\x82\x63\x5d\x55\x82\x64\x5d\x57\x49\x43\x5a\x82\x5d\x59\x82\x65\x58\xc4\x82\x66\x5d\x56\x82\x67\x82\x68\x5d\x51\x82\x69\x5d\x52\x51\x49\x5d\x53\x82\x6a\x82\x6b\x4e\xf2\x58\xdd\x4c\xa8\x82\x6c\x4f\xe2\x82\x6d\x5d\x5d\x82\x6e\x82\x6f\x82\x70\x82\x71\x5d\x5a\x82\x72\x48\xb2\x82\x73\x82\x74\x82\x75\x5d\x62\x82\x76", /* 5000 */ "\x82\x77\x82\x78\x82\x79\x82\x7a\x82\x7b\x82\x7c\x82\x7d\x82\x7e\x82\x7f\x82\x81\x82\x82\x82\x83\x5d\x64\x49\x56\x82\x84\x5d\x5f\x82\x85\x82\x86\x4b\x59\x82\x87\x4f\xf2\x82\x88\x82\x89\x82\x8a\x56\xc7\x4d\xf1\x59\xcf\x82\x8b\x5d\x63\x82\x8c\x82\x8d\x4f\x89\x82\x8e\x4a\x4b\x82\x8f\x82\x90\x82\x91\x5d\x65\x4f\xea\x82\x92\x5d\x66\x5d\x5b\x52\xde\x82\x93\x5d\x5e\x5d\x61\x5d\x60\x82\x94\x82\x95\x82\x96\x82\x97\x82\x98\x82\x99\x82\x9a\x82\x9b\x82\x9c\x82\x9d\x82\x9e\x5b\x4e\x82\x9f\x5b\xb4\x82\xa0\x54\x84\x82\xa1\x82\xa2\x82\xa3\x82\xa4\x5d\x68\x82\xa5\x82\xa6\x82\xa7\x4e\xd8\x5d\x6a\x82\xa8\x82\xa9\x82\xaa\x5d\x5c\x82\xab\x5d\x6b\x53\xaa\x82\xac\x82\xad\x82\xae\x82\xaf\x82\xb0\x5d\x69\x82\xb1\x82\xb2\x82\xb3\x82\xb4\x5c\x97\x82\xb5\x57\x43\x82\xb6\x82\xb7\x82\xb8\x82\xb9\x82\xba\x82\xbb\x82\xbc\x82\xbd\x4f\x41\x82\xbe\x82\xbf\x82\xc0\x82\xc1\x82\xc2\x82\xc3\x5d\x6c\x82\xc4\x82\xc5\x82\xc6\x82\xc7\x82\xc8\x82\xc9\x82\xca\x82\xcb\x82\xcc\x53\x5c\x57\x55\x82\xcd\x82\xce\x82\xcf\x5d\x6d\x82\xd0\x82\xd1\x5d\x67\x4a\x45", /* 5080 */ "\x50\x9f\x82\xd2\x82\xd3\x82\xd4\x82\xd5\x4c\xb4\x82\xd6\x82\xd7\x50\xfb\x82\xd8\x82\xd9\x82\xda\x82\xdb\x48\xf7\x82\xdc\x82\xdd\x82\xde\x82\xdf\x82\xe0\x82\xe1\x82\xe2\x82\xe3\x82\xe4\x82\xe5\x82\xe6\x82\xe7\x82\xe8\x82\xe9\x82\xea\x82\xeb\x82\xec\x82\xed\x82\xee\x82\xef\x82\xf0\x4a\xf5\x82\xf1\x5d\x6e\x82\xf2\x5d\x6f\x4a\xa1\x5d\x70\x82\xf3\x82\xf4\x4a\xde\x82\xf5\x82\xf6\x82\xf7\x82\xf8\x82\xf9\x48\xc0\x82\xfa\x82\xfb\x82\xfc\x82\xfd\x83\x41\x83\x42\x83\x43\x5d\x71\x55\x55\x83\x44\x83\x45\x83\x46\x83\x47\x83\x48\x83\x49\x83\x4a\x83\x4b\x83\x4c\x83\x4d\x83\x4e\x83\x4f\x83\x50\x83\x51\x83\x52\x83\x53\x83\x54\x83\x55\x83\x56\x58\x92\x83\x57\x83\x58\x83\x59\x83\x5a\x83\x5b\x83\x5c\x5d\x72\x83\x5d\x83\x5e\x83\x5f\x51\x65\x83\x60\x83\x61\x83\x62\x83\x63\x83\x64\x83\x65\x83\x66\x83\x67\x83\x68\x83\x69\x83\x6a\x5d\x76\x55\x4e\x83\x6b\x83\x6c\x83\x6d\x83\x6e\x5d\x75\x5d\x74\x5d\x77\x83\x6f\x83\x70\x83\x71\x83\x72\x56\x7b\x83\x73\x4f\x49\x83\x74\x83\x75\x83\x76\x83\x77\x83\x78\x53\xa6\x83\x79\x83\x7a\x83\x7b\x83\x7c", /* 5100 */ "\x83\x7d\x83\x7e\x83\x7f\x83\x81\x83\x82\x83\x83\x5d\x73\x5d\x78\x83\x84\x83\x85\x83\x86\x5d\x79\x83\x87\x83\x88\x83\x89\x83\x8a\x83\x8b\x83\x8c\x54\xe4\x83\x8d\x83\x8e\x83\x8f\x83\x90\x83\x91\x83\x92\x83\x93\x83\x94\x83\x95\x83\x96\x83\x97\x83\x98\x83\x99\x83\x9a\x50\xdb\x83\x9b\x83\x9c\x83\x9d\x83\x9e\x83\x9f\x83\xa0\x83\xa1\x83\xa2\x83\xa3\x83\xa4\x83\xa5\x83\xa6\x83\xa7\x83\xa8\x83\xa9\x83\xaa\x83\xab\x83\xac\x83\xad\x83\xae\x83\xaf\x83\xb0\x83\xb1\x83\xb2\x83\xb3\x83\xb4\x83\xb5\x83\xb6\x83\xb7\x4b\xf8\x5c\xa2\x5a\xc9\x83\xb8\x5a\xa9\x58\xd5\x4a\x85\x5b\x77\x83\xb9\x58\x68\x4d\x83\x83\xba\x50\x6b\x83\xbb\x52\x83\x83\xbc\x83\xbd\x83\xbe\x4b\xd1\x83\xbf\x83\xc0\x57\x63\x5d\x8f\x5d\x91\x83\xc1\x83\xc2\x83\xc3\x4b\x53\x83\xc4\x4b\xb4\x83\xc5\x83\xc6\x83\xc7\x83\xc8\x83\xc9\x4f\xa3\x83\xca\x83\xcb\x54\xea\x83\xcc\x83\xcd\x54\xaa\x83\xce\x83\xcf\x48\xca\x4d\x4b\x51\x9a\x5d\x83\x83\xd0\x50\xbb\x4d\x52\x83\xd1\x4d\x78\x58\xca\x49\x99\x53\xe3\x4f\xde\x4b\x85\x5c\x68\x83\xd2\x59\x99\x4e\xe5\x55\xdd\x83\xd3\x83\xd4", /* 5180 */ "\x4e\xbc\x5d\x87\x5c\xe6\x83\xd5\x83\xd6\x52\xd9\x83\xd7\x83\xd8\x4c\xd3\x54\xbc\x83\xd9\x83\xda\x49\xe0\x5a\xd8\x83\xdb\x83\xdc\x83\xdd\x83\xde\x52\x50\x83\xdf\x83\xe0\x52\x82\x5d\xa1\x54\xde\x83\xe1\x58\xb3\x83\xe2\x4f\xfb\x53\x49\x83\xe3\x83\xe4\x83\xe5\x4d\x7a\x83\xe6\x5d\xa2\x83\xe7\x5a\xa8\x5d\xa3\x83\xe8\x83\xe9\x83\xea\x83\xeb\x83\xec\x5d\x9c\x4b\xab\x83\xed\x83\xee\x4c\x8c\x49\x9a\x5d\x9d\x4a\x86\x4f\xf5\x83\xef\x50\x97\x59\xb0\x50\xe3\x83\xf0\x83\xf1\x83\xf2\x4b\xb2\x5d\x9f\x5d\x9e\x83\xf3\x83\xf4\x4f\xba\x83\xf5\x83\xf6\x83\xf7\x53\xdf\x83\xf8\x5c\x5c\x5d\xa0\x83\xf9\x51\x59\x83\xfa\x4b\x93\x51\x89\x83\xfb\x83\xfc\x4e\xf4\x83\xfd\x4a\xd4\x84\x41\x84\x42\x84\x43\x84\x44\x84\x45\x84\x46\x84\x47\x84\x48\x84\x49\x51\x7d\x84\x4a\x52\xfc\x84\x4b\x84\x4c\x4e\xb7\x4c\x52\x84\x4d\x84\x4e\x4c\x90\x84\x4f\x84\x50\x84\x51\x84\x52\x84\x53\x84\x54\x5d\x8d\x84\x55\x53\xbd\x84\x56\x50\x4d\x4e\x6b\x84\x57\x84\x58\x4b\x6a\x84\x59\x5e\x69\x58\xd6\x84\x5a\x57\x59\x48\xbb\x4a\x97\x4e\x98\x5e\x6a\x4d\xae\x84\x5b\x5a\xe3", /* 5200 */ "\x4b\x56\x4b\x94\x5c\xd5\x54\xcf\x84\x5c\x84\x5d\x4c\x76\x54\x70\x5c\xd6\x84\x5e\x50\x4f\x84\x5f\x84\x60\x5e\x5b\x5c\xd7\x84\x61\x84\x62\x58\xcb\x4e\x4e\x84\x63\x84\x64\x84\x65\x66\x5e\x51\x70\x51\x96\x5a\xf1\x4c\xd4\x4a\xb3\x84\x66\x4a\x96\x84\x67\x84\x68\x55\x5e\x84\x69\x84\x6a\x84\x6b\x53\x70\x84\x6c\x84\x6d\x84\x6e\x53\x79\x50\xfa\x84\x6f\x49\x91\x84\x70\x5c\xd8\x4d\x6e\x84\x71\x4b\x5d\x84\x72\x84\x73\x5c\xd9\x84\x74\x84\x75\x5b\xc5\x56\x42\x54\xae\x55\x52\x4a\xcb\x50\x6c\x84\x76\x4d\x95\x84\x77\x5c\xda\x5c\xdb\x4b\xe6\x4e\xc0\x56\xe9\x84\x78\x84\x79\x84\x7a\x84\x7b\x84\x7c\x84\x7d\x58\x98\x84\x7e\x5c\xdc\x54\x50\x84\x7f\x84\x81\x4d\x70\x4f\x43\x84\x82\x84\x83\x56\xdd\x84\x84\x53\xc9\x84\x85\x84\x86\x84\x87\x84\x88\x84\x89\x5c\xdf\x84\x8a\x5c\xdd\x84\x8b\x84\x8c\x5c\xde\x84\x8d\x84\x8e\x84\x8f\x48\xfd\x84\x90\x4f\xe6\x84\x91\x55\xa2\x4e\xf3\x84\x92\x84\x93\x84\x94\x84\x95\x4c\xb0\x84\x96\x84\x97\x4c\xed\x84\x98\x84\x99\x84\x9a\x84\x9b\x84\x9c\x84\x9d\x84\x9e\x84\x9f\x84\xa0\x84\xa1\x5c\xe1\x84\xa2\x4f\x6b", /* 5280 */ "\x84\xa3\x5c\xe3\x5c\xe2\x84\xa4\x84\xa5\x84\xa6\x84\xa7\x84\xa8\x53\x9d\x84\xa9\x84\xaa\x84\xab\x84\xac\x84\xad\x84\xae\x84\xaf\x5c\xe4\x84\xb0\x84\xb1\x5c\xe5\x84\xb2\x84\xb3\x84\xb4\x84\xb5\x84\xb6\x84\xb7\x84\xb8\x51\x46\x84\xb9\x54\xaf\x48\xeb\x4d\x46\x4e\xd2\x57\xf0\x5e\x5d\x51\x73\x84\xba\x84\xbb\x84\xbc\x84\xbd\x4b\xae\x5b\xf9\x53\x4c\x4f\x79\x5e\x5e\x5e\x5f\x84\xbe\x84\xbf\x84\xc0\x50\xf7\x4f\xa1\x50\xcc\x84\xc1\x84\xc2\x84\xc3\x84\xc4\x84\xc5\x84\xc6\x84\xc7\x84\xc8\x84\xc9\x84\xca\x5e\x60\x55\xc5\x84\xcb\x84\xcc\x84\xcd\x49\xa9\x84\xce\x84\xcf\x84\xd0\x5a\x62\x84\xd1\x52\x84\x84\xd2\x59\x4b\x84\xd3\x84\xd4\x84\xd5\x84\xd6\x5e\x62\x84\xd7\x50\xd4\x84\xd8\x84\xd9\x84\xda\x5e\x63\x84\xdb\x50\x51\x84\xdc\x84\xdd\x84\xde\x84\xdf\x84\xe0\x84\xe1\x52\xbb\x84\xe2\x84\xe3\x84\xe4\x84\xe5\x54\x7a\x84\xe6\x84\xe7\x84\xe8\x84\xe9\x84\xea\x84\xeb\x84\xec\x84\xed\x84\xee\x84\xef\x84\xf0\x5e\x64\x84\xf1\x84\xf2\x84\xf3\x84\xf4\x84\xf5\x84\xf6\x84\xf7\x84\xf8\x5d\x89\x55\x77\x84\xf9\x84\xfa\x84\xfb\x4d\x54\x57\xef", /* 5300 */ "\x5a\xc7\x84\xfc\x84\xfd\x85\x41\x85\x42\x48\xfb\x4a\xd1\x85\x43\x58\xd8\x85\x44\x85\x45\x85\x46\x85\x47\x5d\x8a\x85\x48\x5f\xca\x5d\x8c\x85\x49\x85\x4a\x85\x4b\x85\x4c\x5c\xaf\x4e\x4f\x49\x51\x85\x4d\x4a\x77\x5c\xcd\x85\x4e\x85\x4f\x5a\xd0\x85\x50\x85\x51\x4f\x53\x50\x90\x85\x52\x58\x5b\x85\x53\x85\x54\x5c\xcf\x85\x55\x85\x56\x85\x57\x4c\x6b\x85\x58\x85\x59\x85\x5a\x5c\xd0\x85\x5b\x85\x5c\x85\x5d\x85\x5e\x85\x5f\x85\x60\x85\x61\x85\x62\x85\x63\x85\x64\x53\xa4\x54\x99\x59\xbc\x85\x65\x85\x66\x5c\xd1\x52\xe3\x85\x67\x55\xad\x85\x68\x54\x47\x85\x69\x5c\xa5\x85\x6a\x55\x9e\x57\xe6\x4e\x7c\x48\xea\x85\x6b\x85\x6c\x85\x6d\x4e\x4a\x58\xac\x85\x6e\x49\x50\x5c\x85\x5c\x5f\x85\x6f\x4b\x45\x51\xf3\x52\xce\x85\x70\x85\x71\x49\xa8\x85\x72\x49\xb6\x85\x73\x49\x86\x60\x52\x5b\x5c\x50\x48\x51\xab\x5c\xd4\x51\xb0\x85\x74\x5c\xd3\x57\xd3\x85\x75\x5d\xdf\x85\x76\x57\xbf\x85\x77\x85\x78\x5c\xb3\x52\x4e\x5a\x41\x57\xa2\x85\x79\x4e\xb3\x54\xb3\x51\xd0\x85\x7a\x4f\xec\x58\xb5\x85\x7b\x5d\xe0\x85\x7c\x85\x7d\x85\x7e\x85\x7f\x54\x85", /* 5380 */ "\x85\x81\x85\x82\x4a\x47\x85\x83\x4b\xf1\x56\xfb\x50\xf9\x85\x84\x85\x85\x50\xf6\x85\x86\x59\x59\x59\x82\x5c\xc6\x85\x87\x85\x88\x85\x89\x85\x8a\x85\x8b\x85\x8c\x85\x8d\x49\xdd\x85\x8e\x85\x8f\x50\xe4\x85\x90\x4d\xf0\x85\x91\x85\x92\x5c\xc7\x85\x93\x5a\xac\x85\x94\x85\x95\x58\x82\x5c\xc8\x85\x96\x5c\xc9\x58\x63\x85\x97\x4a\x99\x4f\xc6\x85\x98\x85\x99\x85\x9a\x85\x9b\x5c\xca\x85\x9c\x85\x9d\x85\x9e\x85\x9f\x85\xa0\x85\xa1\x85\xa2\x5e\x6c\x85\xa3\x85\xa4\x85\xa5\x85\xa6\x54\xa4\x85\xa7\x85\xa8\x85\xa9\x58\x78\x85\xaa\x54\xfd\x49\xcd\x85\xab\x85\xac\x85\xad\x85\xae\x85\xaf\x5a\x76\x49\xe5\x4e\xaf\x5a\x71\x56\x4b\x4c\x54\x85\xb0\x85\xb1\x85\xb2\x4c\x42\x85\xb3\x85\xb4\x55\xe4\x85\xb5\x54\xa0\x55\xdb\x49\x85\x58\xef\x85\xb6\x53\x71\x85\xb7\x85\xb8\x85\xb9\x5e\x65\x4b\x9f\x85\xba\x85\xbb\x50\x7a\x4d\x65\x4f\xe3\x51\x8e\x85\xbc\x60\x56\x60\x55\x5b\xba\x4f\x70\x5b\x79\x48\xc7\x4b\xa2\x50\x69\x56\xa7\x60\x53\x55\xb6\x5a\x72\x85\xbd\x5c\xce\x59\xb5\x4d\xc4\x56\x5e\x56\xbd\x85\xbe\x60\x57\x4b\x91\x60\x54\x85\xbf\x85\xc0", /* 5400 */ "\x85\xc1\x5a\x96\x85\xc2\x4a\x74\x4c\xf6\x85\xc3\x60\x5a\x85\xc4\x4d\xce\x4e\xa9\x4b\x96\x85\xc5\x57\x4c\x52\x9c\x4d\xf2\x50\xf3\x57\x62\x58\x93\x60\x58\x58\x65\x85\xc6\x51\xbf\x60\x59\x51\xef\x85\xc7\x85\xc8\x85\xc9\x4f\xfc\x85\xca\x51\x7f\x57\x6c\x59\xf6\x4c\x6d\x60\x61\x85\xcb\x60\x64\x85\xcc\x85\xcd\x4c\x92\x48\xc8\x4b\xd5\x4c\x74\x85\xce\x4d\xab\x56\xfc\x50\x74\x56\x51\x53\xf3\x85\xcf\x5b\xa7\x60\x65\x85\xd0\x57\xe1\x4a\x53\x85\xd1\x85\xd2\x57\xfb\x4a\xb4\x85\xd3\x57\xc6\x4d\xef\x85\xd4\x57\xe0\x85\xd5\x59\x5d\x85\xd6\x85\xd7\x60\x60\x85\xd8\x85\xd9\x4a\xf3\x85\xda\x4a\x6a\x85\xdb\x4c\xe5\x60\x5b\x85\xdc\x85\xdd\x85\xde\x85\xdf\x52\xc4\x85\xe0\x60\x5c\x60\x5d\x60\x5e\x53\x5b\x60\x5f\x60\x62\x5a\xb0\x60\x63\x85\xe1\x54\x5a\x57\xd7\x85\xe2\x85\xe3\x85\xe4\x85\xe5\x85\xe6\x52\xd7\x85\xe7\x60\x6a\x85\xe8\x60\x6f\x85\xe9\x5b\xdb\x85\xea\x85\xeb\x85\xec\x85\xed\x85\xee\x85\xef\x85\xf0\x85\xf1\x60\x69\x60\x7a\x57\xb5\x85\xf2\x4d\xc6\x60\x6e\x60\x68\x53\x7e\x85\xf3\x85\xf4\x55\x8c\x4d\xf3\x52\x9d\x85\xf5\x85\xf6", /* 5480 */ "\x4f\xd6\x85\xf7\x60\x66\x85\xf8\x60\x6d\x85\xf9\x53\x78\x85\xfa\x85\xfb\x85\xfc\x85\xfd\x5b\x46\x4d\xcc\x86\x41\x4f\xcb\x5a\x5d\x4c\xbf\x86\x42\x5b\xe3\x86\x43\x60\x67\x4d\x5e\x50\x47\x86\x44\x86\x45\x51\x9d\x60\x6b\x60\x6c\x86\x46\x60\x70\x86\x47\x86\x48\x86\x49\x86\x4a\x86\x4b\x60\x7b\x60\x86\x86\x4c\x60\x77\x60\x76\x5c\x69\x60\x84\x60\x85\x63\x8c\x59\xa6\x60\x72\x86\x4d\x50\x49\x86\x4e\x5a\xda\x86\x4f\x50\x68\x60\x74\x86\x50\x86\x51\x86\x52\x58\x6c\x86\x53\x86\x54\x60\x7d\x86\x55\x59\x6a\x86\x56\x60\x7e\x48\xa6\x53\xb6\x60\x73\x86\x57\x4d\xe4\x86\x58\x4b\xde\x57\x7b\x4d\x9f\x5a\xd4\x86\x59\x86\x5a\x60\x7f\x58\x8d\x48\xa4\x60\x88\x60\x71\x59\x66\x60\x75\x60\x78\x60\x79\x60\x7c\x86\x5b\x4e\x49\x86\x5c\x60\x81\x60\x82\x86\x5d\x60\x83\x60\x87\x60\x89\x5a\x54\x86\x5e\x86\x5f\x86\x60\x86\x61\x86\x62\x4c\xe6\x53\x56\x60\x8b\x55\x7a\x51\x48\x52\xc3\x86\x63\x86\x64\x50\x7e\x58\x99\x86\x65\x86\x66\x86\x67\x5b\x7c\x60\x8f\x86\x68\x86\x69\x86\x6a\x86\x6b\x86\x6c\x86\x6d\x49\xb7\x86\x6e\x4d\xde\x60\x8d\x86\x6f\x5e\x61", /* 5500 */ "\x86\x70\x59\x85\x86\x71\x86\x72\x86\x73\x86\x74\x56\x95\x4a\xbc\x86\x75\x48\xa5\x86\x76\x86\x77\x86\x78\x86\x79\x86\x7a\x60\x92\x56\xc5\x60\x93\x86\x7b\x86\x7c\x60\x8e\x86\x7d\x86\x7e\x86\x7f\x86\x81\x86\x82\x86\x83\x60\x8a\x86\x84\x86\x85\x86\x86\x86\x87\x60\x8c\x86\x88\x60\x90\x60\x91\x4e\x5d\x86\x89\x86\x8a\x60\x94\x86\x8b\x86\x8c\x60\x95\x86\x8d\x4e\x43\x86\x8e\x55\xda\x57\xa7\x60\xa6\x4a\x4a\x86\x8f\x60\xa5\x86\x90\x86\x91\x86\x92\x60\xa0\x86\x93\x86\x94\x86\x95\x86\x96\x60\x9f\x86\x97\x57\x79\x60\x9d\x86\x98\x60\x9b\x86\x99\x50\x70\x5c\x64\x86\x9a\x55\x6c\x86\x9b\x86\x9c\x60\x99\x48\xa0\x86\x9d\x86\x9e\x86\x9f\x86\xa0\x86\xa1\x60\x9e\x86\xa2\x86\xa3\x86\xa4\x86\xa5\x60\x9c\x60\xa1\x86\xa6\x86\xa7\x86\xa8\x86\xa9\x86\xaa\x60\xa7\x86\xab\x86\xac\x86\xad\x86\xae\x4c\x68\x86\xaf\x86\xb0\x53\xa0\x55\x56\x50\xb1\x60\x96\x86\xb1\x86\xb2\x53\x5e\x86\xb3\x5c\xc3\x60\x9a\x52\xf5\x86\xb4\x86\xb5\x86\xb6\x86\xb7\x86\xb8\x86\xb9\x60\xa2\x60\xa3\x60\xa4\x58\xa4\x86\xba\x86\xbb\x60\xb3\x56\xe3\x86\xbc\x60\xb0\x86\xbd", /* 5580 */ "\x50\x46\x60\xae\x57\xb8\x60\xaa\x55\x66\x86\xbe\x86\xbf\x50\xad\x60\xad\x4d\xec\x4d\xaf\x60\xa8\x86\xc0\x86\xc1\x86\xc2\x60\x97\x86\xc3\x60\xb2\x86\xc4\x86\xc5\x60\xb7\x86\xc6\x86\xc7\x86\xc8\x4a\xac\x60\xb8\x86\xc9\x86\xca\x58\x52\x4d\xc7\x86\xcb\x60\xaf\x86\xcc\x86\xcd\x86\xce\x86\xcf\x86\xd0\x86\xd1\x86\xd2\x58\xf9\x86\xd3\x86\xd4\x86\xd5\x86\xd6\x86\xd7\x86\xd8\x86\xd9\x86\xda\x86\xdb\x60\xab\x86\xdc\x5a\xfa\x86\xdd\x60\x98\x86\xde\x53\x88\x86\xdf\x60\xac\x86\xe0\x5a\x98\x86\xe1\x60\xb5\x60\xb6\x86\xe2\x86\xe3\x86\xe4\x86\xe5\x86\xe6\x60\xc3\x58\xe0\x86\xe7\x86\xe8\x86\xe9\x60\xbb\x86\xea\x86\xeb\x60\xc8\x60\xc9\x86\xec\x86\xed\x86\xee\x60\xbd\x60\xa9\x55\x44\x60\xc0\x86\xef\x60\xb1\x86\xf0\x86\xf1\x86\xf2\x86\xf3\x86\xf4\x55\xc7\x60\xc2\x86\xf5\x60\xb4\x86\xf6\x57\xca\x86\xf7\x56\x63\x60\xcc\x60\xc5\x60\xc1\x86\xf8\x60\xca\x86\xf9\x60\xb9\x60\xbe\x60\xbf\x86\xfa\x86\xfb\x60\xc4\x86\xfc\x86\xfd\x60\xc6\x60\xc7\x87\x41\x60\xcb\x87\x42\x60\xba\x87\x43\x87\x44\x87\x45\x87\x46\x87\x47\x56\x74\x60\xd4\x87\x48", /* 5600 */ "\x60\xd5\x60\xd1\x87\x49\x87\x4a\x87\x4b\x87\x4c\x87\x4d\x87\x4e\x60\xcf\x4e\xcd\x87\x4f\x87\x50\x60\xd0\x87\x51\x4c\xc1\x5c\xc4\x87\x52\x87\x53\x87\x54\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x58\xe9\x87\x5a\x87\x5b\x51\xee\x87\x5c\x87\x5d\x60\xce\x60\xbc\x87\x5e\x87\x5f\x87\x60\x60\xd3\x60\xd2\x87\x61\x87\x62\x60\xd6\x87\x63\x87\x64\x87\x65\x87\x66\x60\xdb\x60\xd7\x87\x67\x87\x68\x87\x69\x5b\xf5\x4a\x50\x87\x6a\x5c\x8d\x87\x6b\x56\x5b\x87\x6c\x87\x6d\x60\xd9\x87\x6e\x57\xfa\x87\x6f\x87\x70\x87\x71\x4d\xd8\x87\x72\x87\x73\x87\x74\x87\x75\x87\x76\x87\x77\x87\x78\x87\x79\x87\x7a\x87\x7b\x87\x7c\x87\x7d\x60\xe0\x60\xdc\x59\xac\x87\x7e\x87\x7f\x87\x81\x87\x82\x87\x83\x60\xe1\x87\x84\x87\x85\x60\xda\x60\xd8\x60\xde\x87\x86\x87\x87\x60\xdf\x87\x88\x87\x89\x87\x8a\x87\x8b\x87\x8c\x60\xdd\x87\x8d\x60\xe3\x87\x8e\x87\x8f\x87\x90\x53\xf6\x5c\xab\x5a\xea\x60\xe5\x55\xc8\x87\x91\x87\x92\x87\x93\x87\x94\x60\xe4\x87\x95\x87\x96\x87\x97\x87\x98\x4c\xc0\x87\x99\x87\x9a\x87\x9b\x87\x9c\x60\xe6\x60\xe7\x87\x9d\x87\x9e\x87\x9f", /* 5680 */ "\x87\xa0\x87\xa1\x87\xa2\x87\xa3\x87\xa4\x60\xe8\x60\xe2\x87\xa5\x87\xa6\x87\xa7\x87\xa8\x87\xa9\x87\xaa\x87\xab\x4d\xbe\x56\xe6\x87\xac\x87\xad\x87\xae\x60\xe9\x87\xaf\x87\xb0\x87\xb1\x87\xb2\x87\xb3\x87\xb4\x87\xb5\x87\xb6\x87\xb7\x87\xb8\x87\xb9\x87\xba\x87\xbb\x87\xbc\x87\xbd\x58\x9a\x87\xbe\x87\xbf\x87\xc0\x87\xc1\x87\xc2\x87\xc3\x87\xc4\x87\xc5\x87\xc6\x87\xc7\x87\xc8\x60\xea\x87\xc9\x87\xca\x87\xcb\x87\xcc\x87\xcd\x87\xce\x87\xcf\x54\xc1\x87\xd0\x87\xd1\x87\xd2\x87\xd3\x4f\x60\x87\xd4\x87\xd5\x87\xd6\x87\xd7\x87\xd8\x87\xd9\x87\xda\x87\xdb\x87\xdc\x87\xdd\x87\xde\x87\xdf\x87\xe0\x52\xd1\x87\xe1\x87\xe2\x87\xe3\x87\xe4\x87\xe5\x87\xe6\x87\xe7\x87\xe8\x87\xe9\x60\xeb\x87\xea\x87\xeb\x60\xec\x87\xec\x87\xed\x54\x95\x56\x64\x87\xee\x60\xed\x4e\x78\x5c\xb5\x59\xf1\x60\xee\x57\x65\x87\xef\x4b\xd9\x87\xf0\x87\xf1\x87\xf2\x87\xf3\x87\xf4\x87\xf5\x60\xf0\x87\xf6\x5a\xaf\x87\xf7\x87\xf8\x50\xa6\x4a\xd0\x87\xf9\x87\xfa\x57\xa6\x60\xef\x87\xfb\x87\xfc\x87\xfd\x60\xf1\x4d\x6c\x88\x41\x88\x42\x4d\x9b\x57\x5c\x60\xf2", /* 5700 */ "\x88\x43\x88\x44\x88\x45\x53\xd3\x60\xf3\x88\x46\x5a\xb1\x88\x47\x54\xa5\x60\xf5\x60\xf4\x88\x48\x88\x49\x88\x4a\x88\x4b\x88\x4c\x88\x4d\x88\x4e\x88\x4f\x88\x50\x88\x51\x88\x52\x88\x53\x88\x54\x88\x55\x88\x56\x88\x57\x88\x58\x60\xf6\x88\x59\x88\x5a\x57\x61\x88\x5b\x88\x5c\x88\x5d\x55\xa4\x88\x5e\x88\x5f\x88\x60\x88\x61\x5a\xd9\x5e\x77\x5e\x79\x88\x62\x5e\x78\x4d\x88\x5e\x7c\x5e\x7d\x4b\x78\x88\x63\x88\x64\x5e\x7a\x88\x65\x88\x66\x88\x67\x88\x68\x88\x69\x5e\x7b\x4a\x41\x5e\x7f\x88\x6a\x88\x6b\x4e\x99\x88\x6c\x5b\xb6\x88\x6d\x5e\x81\x88\x6e\x88\x6f\x88\x70\x88\x71\x4f\xf8\x88\x72\x88\x73\x4c\x5b\x88\x74\x5e\x70\x56\xad\x50\x52\x4e\x55\x5c\x99\x50\x73\x88\x75\x88\x76\x88\x77\x88\x78\x88\x79\x50\x8a\x88\x7a\x88\x7b\x4e\xe0\x56\xb2\x5e\x7e\x48\xd2\x57\xea\x4c\x78\x5c\x59\x53\xc1\x88\x7c\x88\x7d\x50\xa3\x88\x7e\x56\xb8\x88\x7f\x5e\x88\x5e\x82\x53\xb9\x5e\x84\x88\x81\x5e\x89\x88\x82\x53\x98\x88\x83\x88\x84\x88\x85\x5e\x8b\x88\x86\x88\x87\x5e\x8a\x50\x60\x88\x88\x88\x89\x88\x8a\x5e\x87\x5e\x86\x88\x8b\x88\x8c\x88\x8d", /* 5780 */ "\x88\x8e\x88\x8f\x4a\xb8\x50\xab\x51\xa1\x5e\x83\x5e\x85\x88\x90\x88\x91\x88\x92\x88\x93\x58\xcc\x5e\x8e\x88\x94\x88\x95\x88\x96\x88\x97\x88\x98\x50\xdc\x5e\x93\x88\x99\x88\x9a\x88\x9b\x88\x9c\x88\x9d\x88\x9e\x88\x9f\x4b\xe1\x88\xa0\x88\xa1\x88\xa2\x88\xa3\x5e\x94\x5e\x72\x4d\x58\x5a\xaa\x5e\x8d\x88\xa4\x50\x71\x5e\x91\x88\xa5\x5e\x71\x88\xa6\x4b\x87\x88\xa7\x5e\x8c\x50\x86\x88\xa8\x88\xa9\x88\xaa\x5e\x8f\x88\xab\x5e\x92\x88\xac\x88\xad\x88\xae\x5e\x9a\x88\xaf\x88\xb0\x88\xb1\x88\xb2\x88\xb3\x88\xb4\x88\xb5\x88\xb6\x88\xb7\x4d\x41\x48\xa2\x88\xb8\x88\xb9\x88\xba\x88\xbb\x88\xbc\x88\xbd\x88\xbe\x51\xf0\x88\xbf\x88\xc0\x4a\x67\x5e\x90\x88\xc1\x88\xc2\x5e\x99\x88\xc3\x53\xd1\x5e\x95\x88\xc4\x88\xc5\x5e\x96\x5e\x98\x5e\x97\x88\xc6\x88\xc7\x5e\x9f\x88\xc8\x5a\x93\x49\xb9\x88\xc9\x88\xca\x88\xcb\x5e\x9e\x88\xcc\x88\xcd\x88\xce\x88\xcf\x88\xd0\x88\xd1\x88\xd2\x88\xd3\x5e\xa3\x88\xd4\x5e\x9c\x88\xd5\x88\xd6\x88\xd7\x88\xd8\x5e\x9b\x88\xd9\x88\xda\x88\xdb\x5e\x9d\x53\x81\x4e\x9a\x88\xdc\x88\xdd\x5e\xa2\x88\xde\x88\xdf", /* 5800 */ "\x5e\xa4\x88\xe0\x56\xc2\x88\xe1\x88\xe2\x88\xe3\x4b\xd0\x5f\x60\x88\xe4\x88\xe5\x88\xe6\x5e\xa0\x88\xe7\x5e\xa1\x88\xe8\x88\xe9\x88\xea\x54\x55\x88\xeb\x88\xec\x88\xed\x4b\xe8\x88\xee\x88\xef\x88\xf0\x5e\xa6\x88\xf1\x88\xf2\x88\xf3\x88\xf4\x5e\xa5\x88\xf5\x5e\xa8\x49\x44\x88\xf6\x88\xf7\x4b\x6c\x88\xf8\x88\xf9\x88\xfa\x88\xfb\x88\xfc\x50\x50\x88\xfd\x89\x41\x89\x42\x89\x43\x89\x44\x59\x7f\x89\x45\x89\x46\x89\x47\x89\x48\x4b\xc1\x89\x49\x89\x4a\x89\x4b\x89\x4c\x89\x4d\x89\x4e\x89\x4f\x89\x50\x89\x51\x89\x52\x89\x53\x89\x54\x89\x55\x89\x56\x5e\xa7\x89\x57\x89\x58\x89\x59\x89\x5a\x89\x5b\x89\x5c\x89\x5d\x56\x9b\x66\x94\x89\x5e\x89\x5f\x89\x60\x56\x7c\x89\x61\x89\x62\x56\x9f\x89\x63\x89\x64\x89\x65\x56\xc0\x89\x66\x89\x67\x89\x68\x89\x69\x89\x6a\x54\xfa\x89\x6b\x89\x6c\x89\x6d\x89\x6e\x89\x6f\x89\x70\x5e\xa9\x89\x71\x89\x72\x89\x73\x89\x74\x89\x75\x56\xed\x5e\xaa\x89\x76\x89\x77\x89\x78\x89\x79\x89\x7a\x89\x7b\x89\x7c\x89\x7d\x89\x7e\x89\x7f\x89\x81\x89\x82\x89\x83\x89\x84\x89\x85\x89\x86\x89\x87\x5e\x73\x89\x88", /* 5880 */ "\x5e\xae\x5e\xab\x89\x89\x4f\xb2\x89\x8a\x55\xfa\x89\x8b\x89\x8c\x89\x8d\x5e\xac\x89\x8e\x89\x8f\x89\x90\x89\x91\x89\x92\x89\x93\x89\x94\x89\x95\x55\x6a\x52\xb8\x89\x96\x89\x97\x89\x98\x89\x99\x89\x9a\x54\x5d\x5e\xad\x89\x9b\x89\x9c\x89\x9d\x5a\xf5\x58\xe5\x89\x9e\x89\x9f\x89\xa0\x89\xa1\x89\xa2\x89\xa3\x89\xa4\x89\xa5\x52\xaa\x4b\xd4\x89\xa6\x89\xa7\x89\xa8\x89\xa9\x89\xaa\x89\xab\x89\xac\x89\xad\x89\xae\x89\xaf\x89\xb0\x89\xb1\x89\xb2\x89\xb3\x89\xb4\x89\xb5\x89\xb6\x89\xb7\x5e\x74\x89\xb8\x89\xb9\x89\xba\x89\xbb\x49\x7a\x89\xbc\x89\xbd\x89\xbe\x5e\x75\x89\xbf\x89\xc0\x89\xc1\x89\xc2\x89\xc3\x89\xc4\x89\xc5\x89\xc6\x89\xc7\x89\xc8\x89\xc9\x5e\x76\x89\xca\x89\xcb\x89\xcc\x4d\xbd\x89\xcd\x89\xce\x89\xcf\x89\xd0\x89\xd1\x89\xd2\x89\xd3\x89\xd4\x89\xd5\x89\xd6\x89\xd7\x89\xd8\x89\xd9\x89\xda\x54\xbf\x89\xdb\x89\xdc\x89\xdd\x89\xde\x89\xdf\x89\xe0\x55\xbe\x54\xc8\x89\xe1\x5c\x53\x89\xe2\x55\x9a\x89\xe3\x89\xe4\x50\x67\x89\xe5\x89\xe6\x4d\xf7\x89\xe7\x89\xe8\x59\xbb\x89\xe9\x89\xea\x89\xeb\x89\xec\x89\xed\x89\xee", /* 5900 */ "\x89\xef\x89\xf0\x61\xb9\x89\xf1\x4a\xa5\x89\xf2\x89\xf3\x49\x58\x89\xf4\x89\xf5\x89\xf6\x89\xf7\x89\xf8\x4c\xb3\x89\xf9\x58\x64\x89\xfa\x89\xfb\x89\xfc\x89\xfd\x5d\x88\x58\x46\x57\x83\x8a\x41\x8a\x42\x5d\x8e\x4b\xdf\x8a\x43\x59\xb8\x8a\x44\x8a\x45\x4d\x5b\x8a\x46\x8a\x47\x8a\x48\x8a\x49\x61\xb8\x61\xb6\x8a\x4a\x4a\xf2\x8a\x4b\x56\xeb\x56\xaa\x4c\x93\x8a\x4c\x5c\xb1\x59\x8c\x4d\xba\x8a\x4d\x55\xa6\x8a\x4e\x8a\x4f\x57\x57\x8a\x50\x8a\x51\x59\xc3\x50\x85\x4e\xcf\x4b\xe0\x8a\x52\x5f\xc4\x8a\x53\x8a\x54\x8a\x55\x8a\x56\x5f\xc5\x5e\x5c\x8a\x57\x59\x79\x8a\x58\x8a\x59\x53\xe5\x52\xcd\x4c\x8f\x8a\x5a\x4c\x7c\x8a\x5b\x8a\x5c\x50\x9d\x5c\x81\x8a\x5d\x53\xf4\x8a\x5e\x8a\x5f\x49\x5c\x5f\xc7\x4f\x51\x56\xd6\x5f\xc9\x8a\x60\x5f\xc8\x8a\x61\x8a\x62\x8a\x63\x8a\x64\x8a\x65\x4b\x8d\x8a\x66\x55\x7d\x8a\x67\x8a\x68\x48\xc1\x8a\x69\x8a\x6a\x8a\x6b\x8a\x6c\x8a\x6d\x8a\x6e\x8a\x6f\x8a\x70\x8a\x71\x8a\x72\x8a\x73\x8a\x74\x8a\x75\x53\x4e\x53\x4b\x8a\x76\x52\xcb\x8a\x77\x4e\xe8\x56\x9e\x8a\x78\x8a\x79\x8a\x7a\x4d\xc2\x8a\x7b\x8a\x7c", /* 5980 */ "\x8a\x7d\x63\x9a\x54\xe6\x63\x9b\x57\x9e\x8a\x7e\x5c\x51\x4c\xbd\x51\xe7\x8a\x7f\x54\xd0\x8a\x81\x8a\x82\x63\x9c\x8a\x83\x8a\x84\x8a\x85\x8a\x86\x4b\xc9\x4e\xca\x8a\x87\x8a\x88\x59\x9e\x63\xa0\x8a\x89\x52\x8f\x8a\x8a\x8a\x8b\x8a\x8c\x8a\x8d\x63\xa3\x8a\x8e\x8a\x8f\x8a\x90\x8a\x91\x63\x9f\x63\xa4\x57\x77\x8a\x92\x8a\x93\x4c\x61\x63\x9d\x63\x9e\x63\xa2\x8a\x94\x8a\x95\x52\xdc\x63\xa7\x8a\x96\x8a\x97\x63\xa6\x8a\x98\x8a\x99\x8a\x9a\x8a\x9b\x8a\x9c\x8a\x9d\x52\x63\x8a\x9e\x53\xdd\x8a\x9f\x8a\xa0\x63\xa9\x8a\xa1\x8a\xa2\x8a\xa3\x8a\xa4\x8a\xa5\x8a\xa6\x8a\xa7\x52\xb6\x8a\xa8\x8a\xa9\x8a\xaa\x63\xa1\x55\xbb\x8a\xab\x8a\xac\x8a\xad\x8a\xae\x4f\x84\x4d\x63\x63\xa5\x58\xd4\x57\xae\x8a\xaf\x8a\xb0\x63\xa8\x63\xaf\x8a\xb1\x59\xa5\x8a\xb2\x4f\x4a\x63\xac\x8a\xb3\x8a\xb4\x8a\xb5\x8a\xb6\x8a\xb7\x63\xae\x8a\xb8\x50\xd0\x8a\xb9\x8a\xba\x59\xcb\x8a\xbb\x8a\xbc\x8a\xbd\x4e\xa6\x8a\xbe\x8a\xbf\x8a\xc0\x8a\xc1\x8a\xc2\x8a\xc3\x8a\xc4\x8a\xc5\x8a\xc6\x8a\xc7\x8a\xc8\x8a\xc9\x63\xb0\x8a\xca\x59\xf5\x8a\xcb\x8a\xcc\x8a\xcd\x5c\x6b", /* 5a00 */ "\x8a\xce\x57\x9f\x8a\xcf\x57\x7e\x51\xa5\x63\xaa\x63\xab\x4f\x5f\x63\xad\x63\xb2\x8a\xd0\x8a\xd1\x63\xb1\x8a\xd2\x8a\xd3\x8a\xd4\x8a\xd5\x63\xb5\x8a\xd6\x63\xb7\x8a\xd7\x8a\xd8\x8a\xd9\x8a\xda\x52\xee\x8a\xdb\x8a\xdc\x8a\xdd\x52\xc7\x8a\xde\x8a\xdf\x4f\xe9\x55\x90\x8a\xe0\x8a\xe1\x63\xb6\x8a\xe2\x4b\xef\x8a\xe3\x8a\xe4\x8a\xe5\x52\x85\x8a\xe6\x8a\xe7\x8a\xe8\x8a\xe9\x8a\xea\x8a\xeb\x8a\xec\x5a\x8a\x63\xb3\x8a\xed\x63\xb4\x8a\xee\x54\xa1\x8a\xef\x8a\xf0\x8a\xf1\x8a\xf2\x8a\xf3\x63\xbc\x8a\xf4\x8a\xf5\x8a\xf6\x63\xb8\x8a\xf7\x8a\xf8\x8a\xf9\x8a\xfa\x8a\xfb\x53\xc4\x8a\xfc\x8a\xfd\x57\x92\x63\xba\x8b\x41\x8b\x42\x8b\x43\x8b\x44\x8b\x45\x8b\x46\x8b\x47\x8b\x48\x8b\x49\x8b\x4a\x63\xbb\x8b\x4b\x8b\x4c\x8b\x4d\x8b\x4e\x4e\x8a\x8b\x4f\x8b\x50\x8b\x51\x8b\x52\x8b\x53\x8b\x54\x8b\x55\x63\xbd\x8b\x56\x8b\x57\x8b\x58\x8b\x59\x63\xb9\x8b\x5a\x8b\x5b\x50\xb6\x8b\x5c\x8b\x5d\x8b\x5e\x8b\x5f\x8b\x60\x8b\x61\x8b\x62\x8b\x63\x8b\x64\x5a\x44\x63\xbe\x55\x95\x63\xc2\x8b\x65\x8b\x66\x63\xc3\x8b\x67\x8b\x68\x8b\x69\x8b\x6a\x58\xf5", /* 5a80 */ "\x8b\x6b\x8b\x6c\x8b\x6d\x8b\x6e\x8b\x6f\x8b\x70\x8b\x71\x8b\x72\x8b\x73\x8b\x74\x8b\x75\x8b\x76\x8b\x77\x8b\x78\x8b\x79\x8b\x7a\x8b\x7b\x8b\x7c\x52\x5d\x8b\x7d\x8b\x7e\x8b\x7f\x8b\x81\x8b\x82\x8b\x83\x8b\x84\x52\x64\x63\xc1\x8b\x85\x8b\x86\x8b\x87\x8b\x88\x8b\x89\x8b\x8a\x8b\x8b\x8b\x8c\x8b\x8d\x8b\x8e\x8b\x8f\x8b\x90\x8b\x91\x8b\x92\x63\xc0\x8b\x93\x8b\x94\x8b\x95\x8b\x96\x8b\x97\x8b\x98\x8b\x99\x63\xc6\x58\x51\x8b\x9a\x66\x95\x8b\x9b\x8b\x9c\x63\xc9\x8b\x9d\x8b\x9e\x8b\x9f\x8b\xa0\x8b\xa1\x63\xc4\x8b\xa2\x8b\xa3\x4e\xdd\x55\x49\x8b\xa4\x8b\xa5\x8b\xa6\x8b\xa7\x8b\xa8\x8b\xa9\x4e\xb4\x8b\xaa\x8b\xab\x58\x73\x8b\xac\x8b\xad\x8b\xae\x8b\xaf\x8b\xb0\x63\xc7\x8b\xb1\x63\xc8\x8b\xb2\x63\xcd\x8b\xb3\x63\xcf\x8b\xb4\x8b\xb5\x8b\xb6\x63\xd0\x8b\xb7\x8b\xb8\x8b\xb9\x63\xca\x4b\x75\x8b\xba\x63\xcb\x8b\xbb\x8b\xbc\x63\xce\x8b\xbd\x8b\xbe\x52\xda\x8b\xbf\x63\xc5\x8b\xc0\x8b\xc1\x8b\xc2\x8b\xc3\x8b\xc4\x63\xcc\x8b\xc5\x8b\xc6\x8b\xc7\x8b\xc8\x8b\xc9\x8b\xca\x8b\xcb\x8b\xcc\x8b\xcd\x8b\xce\x8b\xcf\x8b\xd0\x8b\xd1\x8b\xd2", /* 5b00 */ "\x8b\xd3\x8b\xd4\x8b\xd5\x8b\xd6\x8b\xd7\x8b\xd8\x8b\xd9\x8b\xda\x8b\xdb\x63\xd1\x8b\xdc\x8b\xdd\x8b\xde\x8b\xdf\x8b\xe0\x8b\xe1\x8b\xe2\x8b\xe3\x8b\xe4\x8b\xe5\x8b\xe6\x8b\xe7\x63\xd3\x63\xd2\x8b\xe8\x8b\xe9\x8b\xea\x8b\xeb\x8b\xec\x8b\xed\x8b\xee\x8b\xef\x8b\xf0\x8b\xf1\x8b\xf2\x8b\xf3\x8b\xf4\x8b\xf5\x8b\xf6\x8b\xf7\x8b\xf8\x8b\xf9\x8b\xfa\x8b\xfb\x8b\xfc\x8b\xfd\x8c\x41\x8c\x42\x8c\x43\x8c\x44\x63\xd4\x8c\x45\x5d\x99\x8c\x46\x8c\x47\x63\xd5\x8c\x48\x8c\x49\x8c\x4a\x8c\x4b\x8c\x4c\x8c\x4d\x8c\x4e\x8c\x4f\x63\xd6\x8c\x50\x8c\x51\x8c\x52\x8c\x53\x8c\x54\x8c\x55\x8c\x56\x8c\x57\x8c\x58\x8c\x59\x8c\x5a\x8c\x5b\x8c\x5c\x8c\x5d\x8c\x5e\x5c\x73\x63\xdc\x8c\x5f\x63\xdd\x50\x77\x5a\xcf\x8c\x60\x5c\x76\x4a\xe5\x56\x90\x63\xd9\x5c\xc2\x5c\x6e\x58\xa1\x8c\x61\x52\x6f\x8c\x62\x8c\x63\x63\xde\x4e\xbd\x4d\x62\x63\xda\x59\x47\x8c\x64\x8c\x65\x4d\xa1\x51\xce\x8c\x66\x5c\xaa\x8c\x67\x8c\x68\x8c\x69\x55\xea\x63\x8f\x8c\x6a\x63\xdb\x8c\x6b\x4c\x96\x8c\x6c\x8c\x6d\x8c\x6e\x8c\x6f\x54\xe5\x8c\x70\x8c\x71\x52\xf4\x8c\x72\x8c\x73", /* 5b80 */ "\x63\x52\x52\xfd\x8c\x74\x56\x9d\x63\x53\x5b\x4c\x8c\x75\x5a\x8f\x55\xd7\x48\xb1\x8c\x76\x56\x6e\x57\x8b\x8c\x77\x8c\x78\x4d\xe9\x8c\x79\x8c\x7a\x8c\x7b\x63\x55\x8c\x7c\x63\x54\x8c\x7d\x5c\x7a\x4d\x79\x5b\xe5\x4b\xa7\x57\x91\x59\xca\x49\x46\x55\xb4\x8c\x7e\x4a\x89\x55\x94\x50\x6d\x58\xfa\x55\xd1\x63\x56\x4e\x62\x8c\x7f\x8c\x81\x8c\x82\x58\x7c\x4d\x4c\x8c\x83\x8c\x84\x8c\x85\x8c\x86\x5a\xd6\x8c\x87\x8c\x88\x4d\xa5\x59\x88\x58\x9d\x4e\xd1\x8c\x89\x63\x57\x54\xdc\x8c\x8a\x8c\x8b\x8c\x8c\x50\x8e\x49\x97\x56\x7e\x8c\x8d\x8c\x8e\x4e\xc4\x8c\x8f\x4e\xc3\x59\xf9\x52\x7c\x50\x7c\x8c\x90\x8c\x91\x8c\x92\x8c\x93\x4c\xba\x8c\x94\x8c\x95\x8c\x96\x52\x62\x8c\x97\x4d\xad\x5a\xa1\x8c\x98\x8c\x99\x8c\x9a\x8c\x9b\x8c\x9c\x8c\x9d\x8c\x9e\x8c\x9f\x8c\xa0\x54\x7e\x52\xae\x49\xeb\x8c\xa1\x4d\x71\x8c\xa2\x8c\xa3\x63\x5b\x51\x68\x8c\xa4\x8c\xa5\x5b\x4f\x8c\xa6\x8c\xa7\x8c\xa8\x8c\xa9\x8c\xaa\x63\x5c\x8c\xab\x63\x5e\x8c\xac\x8c\xad\x8c\xae\x8c\xaf\x8c\xb0\x8c\xb1\x8c\xb2\x4a\xe6\x4b\xd3\x56\x62\x59\x50\x4b\x5c\x8c\xb3\x8c\xb4\x55\xd8", /* 5c00 */ "\x8c\xb5\x4c\x83\x8c\xb6\x8c\xb7\x55\x85\x8c\xb8\x4f\x4b\x8c\xb9\x8c\xba\x57\xbd\x5c\x91\x8c\xbb\x8c\xbc\x8c\xbd\x8c\xbe\x58\xa0\x8c\xbf\x55\x79\x8c\xc0\x8c\xc1\x4b\xfa\x63\xd7\x4e\xe1\x8c\xc2\x4a\x5e\x8c\xc3\x55\x70\x8c\xc4\x63\xd8\x4a\x42\x8c\xc5\x8c\xc6\x8c\xc7\x8c\xc8\x5f\xcb\x8c\xc9\x5a\x68\x5f\xcc\x8c\xca\x59\xa1\x8c\xcb\x8c\xcc\x8c\xcd\x8c\xce\x5f\xcd\x8c\xcf\x8c\xd0\x8c\xd1\x8c\xd2\x4f\xcc\x8c\xd3\x8c\xd4\x5f\xce\x8c\xd5\x8c\xd6\x8c\xd7\x55\xab\x59\xfb\x4a\x7f\x63\x8b\x52\xe0\x4f\xa0\x57\xb1\x52\xf1\x4f\xd5\x53\xa7\x49\xe2\x8c\xd8\x8c\xd9\x4f\xd2\x8c\xda\x8c\xdb\x54\x9d\x56\xea\x4f\x8d\x57\xdc\x8c\xdc\x8c\xdd\x55\xb9\x53\xc0\x63\x8d\x58\xbb\x8c\xde\x8c\xdf\x8c\xe0\x5b\x59\x8c\xe1\x8c\xe2\x8c\xe3\x63\x8e\x8c\xe4\x8c\xe5\x8c\xe6\x8c\xe7\x55\xf3\x8c\xe8\x57\x60\x51\xc4\x8c\xe9\x63\x90\x8c\xea\x51\xc3\x63\x91\x8c\xeb\x8c\xec\x8c\xed\x8c\xee\x8c\xef\x8c\xf0\x8c\xf1\x63\x99\x57\x6d\x8c\xf2\x55\x5d\x8c\xf3\x8c\xf4\x8c\xf5\x8c\xf6\x8c\xf7\x8c\xf8\x8c\xf9\x59\xd8\x61\x48\x8c\xfa\x8c\xfb\x8c\xfc\x8c\xfd\x5a\x8d", /* 5c80 */ "\x8d\x41\x56\x8b\x53\xf0\x8d\x42\x8d\x43\x8d\x44\x8d\x45\x8d\x46\x61\x4c\x8d\x47\x8d\x48\x8d\x49\x61\x47\x61\x49\x8d\x4a\x8d\x4b\x61\x4a\x61\x4f\x8d\x4c\x8d\x4d\x49\xec\x8d\x4e\x61\x4b\x4c\xd9\x61\x4d\x61\x4e\x61\x50\x4b\x5a\x61\x51\x8d\x4f\x8d\x50\x8d\x51\x8d\x52\x8d\x53\x61\x53\x61\x58\x8d\x54\x8d\x55\x8d\x56\x8d\x57\x8d\x58\x59\x72\x8d\x59\x61\x56\x61\x55\x51\x8c\x8d\x5a\x8d\x5b\x8d\x5c\x61\x57\x8d\x5d\x5a\xbf\x8d\x5e\x61\x52\x8d\x5f\x61\x5a\x48\xb5\x8d\x60\x8d\x61\x8d\x62\x8d\x63\x61\x54\x8d\x64\x50\x9a\x8d\x65\x61\x59\x8d\x66\x8d\x67\x61\x5b\x8d\x68\x8d\x69\x8d\x6a\x8d\x6b\x8d\x6c\x8d\x6d\x61\x5e\x8d\x6e\x8d\x6f\x8d\x70\x8d\x71\x8d\x72\x8d\x73\x61\x5c\x8d\x74\x8d\x75\x8d\x76\x8d\x77\x8d\x78\x8d\x79\x5b\xc4\x8d\x7a\x8d\x7b\x8d\x7c\x8d\x7d\x8d\x7e\x8d\x7f\x8d\x81\x58\x5f\x8d\x82\x8d\x83\x61\x5d\x61\x5f\x51\xcc\x8d\x84\x4b\xea\x8d\x85\x5a\x99\x8d\x86\x8d\x87\x54\x6d\x8d\x88\x8d\x89\x4c\x86\x8d\x8a\x8d\x8b\x8d\x8c\x8d\x8d\x8d\x8e\x8d\x8f\x8d\x90\x8d\x91\x8d\x92\x8d\x93\x4f\xfd\x8d\x94\x8d\x95\x8d\x96\x8d\x97", /* 5d00 */ "\x8d\x98\x8d\x99\x61\x60\x61\x61\x8d\x9a\x8d\x9b\x61\x67\x4a\x88\x8d\x9c\x8d\x9d\x8d\x9e\x8d\x9f\x8d\xa0\x8d\xa1\x53\xe8\x8d\xa2\x8d\xa3\x8d\xa4\x8d\xa5\x8d\xa6\x4a\xdd\x8d\xa7\x59\x62\x8d\xa8\x8d\xa9\x8d\xaa\x8d\xab\x61\x68\x8d\xac\x8d\xad\x61\x66\x8d\xae\x8d\xaf\x8d\xb0\x8d\xb1\x8d\xb2\x61\x65\x8d\xb3\x61\x63\x61\x62\x8d\xb4\x49\x60\x8d\xb5\x8d\xb6\x8d\xb7\x5b\x58\x61\x64\x8d\xb8\x8d\xb9\x8d\xba\x8d\xbb\x8d\xbc\x61\x6b\x8d\xbd\x8d\xbe\x8d\xbf\x8d\xc0\x8d\xc1\x8d\xc2\x8d\xc3\x8d\xc4\x61\x6c\x61\x6a\x8d\xc5\x8d\xc6\x8d\xc7\x8d\xc8\x8d\xc9\x8d\xca\x8d\xcb\x8d\xcc\x68\x9b\x8d\xcd\x8d\xce\x61\x73\x61\x72\x54\x56\x8d\xcf\x8d\xd0\x8d\xd1\x8d\xd2\x8d\xd3\x8d\xd4\x8d\xd5\x8d\xd6\x8d\xd7\x8d\xd8\x8d\xd9\x61\x69\x8d\xda\x8d\xdb\x61\x6e\x8d\xdc\x61\x70\x8d\xdd\x8d\xde\x8d\xdf\x8d\xe0\x8d\xe1\x8d\xe2\x8d\xe3\x8d\xe4\x8d\xe5\x8d\xe6\x8d\xe7\x61\x74\x8d\xe8\x61\x71\x61\x6d\x8d\xe9\x8d\xea\x61\x6f\x8d\xeb\x8d\xec\x8d\xed\x8d\xee\x61\x75\x8d\xef\x8d\xf0\x8d\xf1\x8d\xf2\x8d\xf3\x8d\xf4\x8d\xf5\x8d\xf6\x8d\xf7\x8d\xf8\x8d\xf9", /* 5d80 */ "\x8d\xfa\x8d\xfb\x61\x76\x8d\xfc\x8d\xfd\x8e\x41\x8e\x42\x8e\x43\x8e\x44\x8e\x45\x8e\x46\x8e\x47\x8e\x48\x8e\x49\x8e\x4a\x8e\x4b\x8e\x4c\x8e\x4d\x8e\x4e\x8e\x4f\x8e\x50\x8e\x51\x8e\x52\x8e\x53\x8e\x54\x61\x77\x8e\x55\x8e\x56\x8e\x57\x61\x78\x8e\x58\x8e\x59\x8e\x5a\x8e\x5b\x8e\x5c\x8e\x5d\x8e\x5e\x8e\x5f\x8e\x60\x8e\x61\x8e\x62\x8e\x63\x8e\x64\x8e\x65\x8e\x66\x8e\x67\x8e\x68\x8e\x69\x8e\x6a\x8e\x6b\x8e\x6c\x8e\x6d\x8e\x6e\x8e\x6f\x8e\x70\x61\x7a\x8e\x71\x8e\x72\x8e\x73\x8e\x74\x8e\x75\x8e\x76\x8e\x77\x8e\x78\x8e\x79\x8e\x7a\x8e\x7b\x8e\x7c\x8e\x7d\x61\x7b\x8e\x7e\x8e\x7f\x8e\x81\x8e\x82\x8e\x83\x8e\x84\x8e\x85\x57\xa0\x8e\x86\x8e\x87\x8e\x88\x8e\x89\x8e\x8a\x8e\x8b\x8e\x8c\x8e\x8d\x8e\x8e\x8e\x8f\x8e\x90\x8e\x91\x8e\x92\x64\x7d\x8e\x93\x4a\xa7\x5b\xdc\x8e\x94\x8e\x95\x59\x52\x4a\x52\x8e\x96\x8e\x97\x4d\x44\x5c\x94\x54\x69\x4f\xdd\x4d\x4e\x8e\x98\x57\xd6\x8e\x99\x8e\x9a\x49\xed\x5e\x6f\x8e\x9b\x4e\xb9\x59\xd0\x56\x68\x48\xcc\x8e\x9c\x8e\x9d\x58\x90\x8e\x9e\x8e\x9f\x8e\xa0\x8e\xa1\x8e\xa2\x5d\x84\x4f\x8e\x8e\xa3", /* 5e00 */ "\x8e\xa4\x49\x72\x55\xcf\x49\xbb\x8e\xa5\x56\x47\x4c\x4b\x8e\xa6\x55\xa5\x8e\xa7\x8e\xa8\x8e\xa9\x58\x43\x8e\xaa\x8e\xab\x60\xf7\x5b\x6a\x60\xfa\x8e\xac\x8e\xad\x60\xf9\x53\x61\x56\xfa\x8e\xae\x51\x51\x60\xf8\x5b\xe2\x49\xae\x5b\xc3\x4b\x7b\x8e\xaf\x8e\xb0\x8e\xb1\x8e\xb2\x8e\xb3\x8e\xb4\x8e\xb5\x8e\xb6\x4a\xf7\x5b\xa0\x8e\xb7\x8e\xb8\x8e\xb9\x8e\xba\x8e\xbb\x58\x4f\x48\xee\x8e\xbc\x8e\xbd\x60\xfb\x8e\xbe\x8e\xbf\x8e\xc0\x8e\xc1\x8e\xc2\x61\x41\x4a\x43\x8e\xc3\x8e\xc4\x60\xfc\x60\xfd\x52\x51\x8e\xc5\x8e\xc6\x8e\xc7\x8e\xc8\x52\x7d\x8e\xc9\x61\x42\x4c\x9a\x8e\xca\x8e\xcb\x8e\xcc\x8e\xcd\x8e\xce\x8e\xcf\x4e\x6f\x8e\xd0\x8e\xd1\x8e\xd2\x8e\xd3\x8e\xd4\x8e\xd5\x8e\xd6\x61\x43\x52\xba\x8e\xd7\x8e\xd8\x8e\xd9\x8e\xda\x8e\xdb\x61\x44\x8e\xdc\x8e\xdd\x61\x45\x8e\xde\x8e\xdf\x61\x46\x4a\xb0\x8e\xe0\x8e\xe1\x8e\xe2\x8e\xe3\x8e\xe4\x8e\xe5\x8e\xe6\x8e\xe7\x8e\xe8\x8e\xe9\x8e\xea\x8e\xeb\x8e\xec\x8e\xed\x8e\xee\x4c\xc8\x53\xbc\x52\xe9\x8e\xef\x49\xa1\x8e\xf0\x58\xd1\x8e\xf1\x64\x7b\x4e\x63\x5a\x77\x5a\x64\x8e\xf2\x4d\x84", /* 5e80 */ "\x61\xce\x8e\xf3\x8e\xf4\x8e\xf5\x5c\x4f\x8e\xf6\x54\x8d\x49\x73\x8e\xf7\x8e\xf8\x4a\xb1\x61\xd0\x8e\xf9\x8e\xfa\x8e\xfb\x58\xf1\x51\xad\x61\xcf\x8e\xfc\x50\x83\x5a\x46\x4b\x77\x61\xd1\x4b\x8b\x8e\xfd\x52\x8e\x4c\xfc\x8f\x41\x4c\xad\x8f\x42\x53\x73\x4c\x6f\x61\xd3\x8f\x43\x8f\x44\x8f\x45\x8f\x46\x61\xd2\x4b\xc7\x5c\x9a\x8f\x47\x8f\x48\x8f\x49\x8f\x4a\x8f\x4b\x57\x45\x8f\x4c\x8f\x4d\x8f\x4e\x8f\x4f\x8f\x50\x61\xd7\x8f\x51\x61\xd5\x55\xfb\x50\x55\x5a\x59\x61\xd4\x8f\x52\x8f\x53\x8f\x54\x8f\x55\x61\xd6\x8f\x56\x8f\x57\x8f\x58\x8f\x59\x8f\x5a\x8f\x5b\x8f\x5c\x8f\x5d\x8f\x5e\x8f\x5f\x51\x4e\x50\xc7\x8f\x60\x8f\x61\x8f\x62\x8f\x63\x8f\x64\x8f\x65\x61\xda\x61\xd9\x50\xa9\x8f\x66\x8f\x67\x51\x6e\x8f\x68\x8f\x69\x8f\x6a\x8f\x6b\x61\xdb\x8f\x6c\x8f\x6d\x8f\x6e\x8f\x6f\x8f\x70\x8f\x71\x8f\x72\x8f\x73\x8f\x74\x8f\x75\x8f\x76\x8f\x77\x61\xdc\x8f\x78\x61\xdd\x8f\x79\x8f\x7a\x8f\x7b\x8f\x7c\x8f\x7d\x8f\x7e\x8f\x7f\x8f\x81\x8f\x82\x5e\x68\x8f\x83\x59\x73\x57\x42\x8f\x84\x8f\x85\x4f\x48\x8f\x86\x8f\x87\x8f\x88\x5f\xc2\x5c\xa4", /* 5f00 */ "\x50\x4a\x5e\x6d\x59\xeb\x53\xf9\x53\x4a\x8f\x89\x8f\x8a\x8f\x8b\x5f\xc3\x8f\x8c\x49\x77\x60\x4e\x8f\x8d\x8f\x8e\x8f\x8f\x55\xbc\x8f\x90\x60\x51\x8f\x91\x4d\x4d\x8f\x92\x59\xfc\x8f\x93\x4c\xa4\x4d\xea\x8f\x94\x8f\x95\x4a\x7a\x8f\x96\x8f\x97\x8f\x98\x4b\x7c\x5b\x65\x8f\x99\x8f\x9a\x8f\x9b\x8f\x9c\x52\x76\x58\x72\x4e\x41\x8f\x9d\x63\x94\x63\x93\x8f\x9e\x8f\x9f\x63\x95\x8f\xa0\x57\x85\x8f\xa1\x54\xf4\x8f\xa2\x8f\xa3\x8f\xa4\x8f\xa5\x8f\xa6\x8f\xa7\x8f\xa8\x4b\x4f\x54\x5f\x8f\xa9\x63\x97\x8f\xaa\x8f\xab\x8f\xac\x66\xaf\x8f\xad\x8f\xae\x8f\xaf\x8f\xb0\x8f\xb1\x8f\xb2\x8f\xb3\x8f\xb4\x8f\xb5\x8f\xb6\x8f\xb7\x8f\xb8\x8f\xb9\x8f\xba\x8f\xbb\x63\x87\x8f\xbc\x4d\x8a\x4b\x51\x8f\xbd\x51\xbb\x63\x89\x63\x88\x63\x8a\x8f\xbe\x8f\xbf\x8f\xc0\x8f\xc1\x59\xcc\x8f\xc2\x8f\xc3\x8f\xc4\x61\x8b\x58\xcd\x8f\xc5\x57\x4e\x8f\xc6\x59\x86\x8f\xc7\x8f\xc8\x49\xc9\x49\x8c\x8f\xc9\x49\x93\x53\x8e\x8f\xca\x8f\xcb\x5b\x63\x5a\x50\x8f\xcc\x61\x7c\x8f\xcd\x8f\xce\x8f\xcf\x61\x7d\x8f\xd0\x59\xda\x8f\xd1\x4a\x59\x49\x6b\x8f\xd2\x8f\xd3\x8f\xd4", /* 5f80 */ "\x57\x9a\x5b\x98\x61\x7e\x8f\xd5\x4f\xb5\x4a\xfc\x8f\xd6\x61\x7f\x4d\xdb\x61\x81\x4e\x52\x51\xc8\x61\x82\x8f\xd7\x8f\xd8\x8f\xd9\x58\xeb\x8f\xda\x57\x5d\x8f\xdb\x8f\xdc\x61\x83\x8f\xdd\x4b\x63\x53\x67\x61\x84\x8f\xde\x8f\xdf\x61\x85\x8f\xe0\x8f\xe1\x8f\xe2\x8f\xe3\x5a\x9a\x8f\xe4\x8f\xe5\x8f\xe6\x8f\xe7\x8f\xe8\x8f\xe9\x61\x86\x8f\xea\x59\x4d\x8f\xeb\x8f\xec\x61\x87\x57\xa1\x8f\xed\x8f\xee\x8f\xef\x8f\xf0\x8f\xf1\x8f\xf2\x61\x88\x8f\xf3\x4b\x62\x8f\xf4\x8f\xf5\x8f\xf6\x8f\xf7\x61\x89\x4e\x75\x8f\xf8\x8f\xf9\x8f\xfa\x8f\xfb\x8f\xfc\x58\xc3\x61\xdf\x49\x78\x59\xe3\x8f\xfd\x90\x41\x61\xe0\x90\x42\x90\x43\x4e\xc8\x54\xcb\x90\x44\x61\xe2\x66\xfd\x66\xfc\x60\x4f\x90\x45\x90\x46\x90\x47\x61\xe1\x5b\xbd\x57\x9d\x52\x46\x90\x48\x90\x49\x90\x4a\x62\x63\x90\x4b\x90\x4c\x5b\xd1\x61\xe6\x90\x4d\x90\x4e\x61\xe7\x90\x4f\x90\x50\x5a\x67\x90\x51\x90\x52\x61\xeb\x50\x8d\x90\x53\x61\xec\x61\xe4\x90\x54\x90\x55\x4a\x60\x90\x56\x90\x57\x90\x58\x52\xed\x90\x59\x90\x5a\x61\xed\x90\x5b\x90\x5c\x58\xc2\x90\x5d\x4d\xf5\x61\xe8\x4c\x7e", /* 6000 */ "\x4e\x53\x56\xab\x56\x6b\x61\xe3\x61\xe5\x61\xe9\x61\xea\x90\x5e\x90\x5f\x90\x60\x61\xf6\x90\x61\x90\x62\x61\xf3\x5a\xf4\x61\xf2\x90\x63\x90\x64\x53\x4d\x90\x65\x5b\x9b\x53\x62\x49\xbf\x90\x66\x90\x67\x61\xee\x90\x68\x61\xf1\x51\x4f\x56\x5c\x90\x69\x90\x6a\x4b\x41\x61\xf8\x90\x6b\x90\x6c\x90\x6d\x4e\xb0\x61\xf0\x58\xd3\x5a\xb8\x61\xf4\x4d\x76\x61\xf5\x90\x6e\x90\x6f\x90\x70\x54\x73\x90\x71\x90\x72\x90\x73\x90\x74\x90\x75\x61\xef\x90\x76\x90\x77\x90\x78\x90\x79\x90\x7a\x5c\x7c\x67\x41\x90\x7b\x90\x7c\x61\xf7\x90\x7d\x67\x45\x61\xfd\x55\xd0\x90\x7e\x90\x7f\x90\x81\x90\x82\x90\x83\x90\x84\x90\x85\x51\x55\x90\x86\x4e\x70\x90\x87\x90\x88\x50\x76\x90\x89\x4d\xe2\x90\x8a\x90\x8b\x56\x41\x90\x8c\x90\x8d\x90\x8e\x67\x46\x67\x43\x90\x8f\x90\x90\x67\x42\x90\x91\x90\x92\x90\x93\x90\x94\x4e\x76\x67\x47\x58\xf3\x90\x95\x90\x96\x67\x44\x4d\xdd\x4b\xf6\x62\x41\x4b\xb1\x56\xf0\x4d\x47\x90\x97\x58\x42\x54\x41\x90\x98\x90\x99\x50\x72\x90\x9a\x90\x9b\x4b\xf0\x90\x9c\x61\xf9\x61\xfa\x61\xfc\x61\xfb\x52\xd4\x62\x42\x90\x9d\x5a\x61", /* 6080 */ "\x90\x9e\x90\x9f\x90\xa0\x62\x47\x54\x64\x90\xa1\x90\xa2\x90\xa3\x90\xa4\x58\x44\x90\xa5\x90\xa6\x62\x49\x4d\xb6\x90\xa7\x90\xa8\x90\xa9\x90\xaa\x62\x48\x90\xab\x4e\x7a\x90\xac\x62\x43\x90\xad\x90\xae\x90\xaf\x62\x44\x62\x4a\x90\xb0\x62\x46\x90\xb1\x57\xf1\x5a\x66\x90\xb2\x90\xb3\x4e\x5c\x90\xb4\x90\xb5\x5a\xc2\x90\xb6\x52\xf9\x90\xb7\x90\xb8\x67\x48\x58\xfb\x62\x45\x90\xb9\x52\x96\x90\xba\x62\x4d\x49\x4f\x90\xbb\x62\x52\x90\xbc\x90\xbd\x90\xbe\x4e\xc1\x90\xbf\x90\xc0\x62\x4c\x4b\x5f\x90\xc1\x90\xc2\x90\xc3\x90\xc4\x90\xc5\x90\xc6\x90\xc7\x90\xc8\x54\x8a\x62\x50\x90\xc9\x90\xca\x90\xcb\x4f\xa9\x57\x90\x90\xcc\x90\xcd\x90\xce\x90\xcf\x90\xd0\x4e\x94\x90\xd1\x90\xd2\x90\xd3\x56\xe7\x90\xd4\x90\xd5\x62\x4f\x90\xd6\x62\x51\x90\xd7\x58\x47\x62\x4e\x90\xd8\x57\xa8\x4e\x7d\x90\xd9\x90\xda\x90\xdb\x90\xdc\x90\xdd\x4b\x8c\x4f\xe4\x49\xd1\x4a\x6d\x90\xde\x49\x59\x62\x4b\x49\xd0\x4b\x4c\x4d\x7f\x4b\xe7\x90\xdf\x90\xe0\x58\x8c\x62\x57\x90\xe1\x4e\x6c\x90\xe2\x90\xe3\x54\xc6\x58\xc9\x90\xe4\x90\xe5\x90\xe6\x90\xe7\x90\xe8", /* 6100 */ "\x62\x58\x4a\x8f\x90\xe9\x90\xea\x90\xeb\x90\xec\x67\x49\x90\xed\x5a\x9b\x5a\x85\x90\xee\x90\xef\x90\xf0\x67\x4a\x62\x59\x59\xe1\x90\xf1\x90\xf2\x90\xf3\x90\xf4\x90\xf5\x62\x55\x90\xf6\x90\xf7\x90\xf8\x90\xf9\x5a\x7e\x90\xfa\x90\xfb\x90\xfc\x90\xfd\x4c\xcf\x62\x53\x91\x41\x91\x42\x62\x56\x4c\x7f\x91\x43\x62\x54\x50\xa1\x91\x44\x91\x45\x91\x46\x62\x5a\x91\x47\x91\x48\x91\x49\x91\x4a\x91\x4b\x91\x4c\x91\x4d\x91\x4e\x91\x4f\x91\x50\x91\x51\x91\x52\x91\x53\x91\x54\x91\x55\x91\x56\x91\x57\x91\x58\x91\x59\x5a\xb7\x91\x5a\x91\x5b\x91\x5c\x91\x5d\x91\x5e\x91\x5f\x91\x60\x91\x61\x4a\xc7\x91\x62\x62\x5b\x91\x63\x4e\x65\x91\x64\x55\x98\x91\x65\x91\x66\x55\x86\x91\x67\x91\x68\x91\x69\x52\xbc\x91\x6a\x91\x6b\x91\x6c\x91\x6d\x91\x6e\x91\x6f\x91\x70\x67\x4b\x91\x71\x91\x72\x91\x73\x91\x74\x51\xfc\x91\x75\x91\x76\x91\x77\x91\x78\x4e\x7b\x50\x4e\x91\x79\x91\x7a\x91\x7b\x91\x7c\x91\x7d\x91\x7e\x91\x7f\x57\xbe\x91\x81\x91\x82\x91\x83\x91\x84\x62\x5c\x91\x85\x50\x56\x91\x86\x91\x87\x91\x88\x91\x89\x91\x8a\x91\x8b\x91\x8c\x91\x8d", /* 6180 */ "\x91\x8e\x91\x8f\x91\x90\x91\x91\x91\x92\x91\x93\x91\x94\x91\x95\x91\x96\x91\x97\x91\x98\x49\x90\x91\x99\x91\x9a\x5a\xf6\x91\x9b\x91\x9c\x91\x9d\x91\x9e\x91\x9f\x62\x5e\x91\xa0\x91\xa1\x91\xa2\x91\xa3\x91\xa4\x91\xa5\x91\xa6\x91\xa7\x67\x4d\x91\xa8\x91\xa9\x91\xaa\x91\xab\x91\xac\x91\xad\x91\xae\x91\xaf\x91\xb0\x62\x5f\x4d\xa8\x67\x4c\x91\xb1\x91\xb2\x62\x5d\x91\xb3\x91\xb4\x91\xb5\x91\xb6\x91\xb7\x91\xb8\x91\xb9\x91\xba\x91\xbb\x91\xbc\x62\x60\x91\xbd\x91\xbe\x91\xbf\x91\xc0\x91\xc1\x91\xc2\x4d\xb5\x91\xc3\x91\xc4\x91\xc5\x4b\xad\x91\xc6\x91\xc7\x91\xc8\x91\xc9\x91\xca\x58\xb7\x91\xcb\x48\xc2\x67\x4e\x91\xcc\x91\xcd\x91\xce\x91\xcf\x91\xd0\x67\x4f\x50\xc0\x91\xd1\x62\x61\x91\xd2\x91\xd3\x91\xd4\x91\xd5\x91\xd6\x91\xd7\x91\xd8\x91\xd9\x91\xda\x91\xdb\x91\xdc\x91\xdd\x91\xde\x91\xdf\x91\xe0\x91\xe1\x91\xe2\x53\x53\x91\xe3\x91\xe4\x91\xe5\x91\xe6\x91\xe7\x91\xe8\x91\xe9\x91\xea\x91\xeb\x91\xec\x91\xed\x91\xee\x91\xef\x91\xf0\x62\x62\x91\xf1\x91\xf2\x91\xf3\x91\xf4\x91\xf5\x91\xf6\x91\xf7\x91\xf8\x91\xf9\x5e\xb1", /* 6200 */ "\x91\xfa\x91\xfb\x91\xfc\x91\xfd\x92\x41\x92\x42\x67\x50\x92\x43\x4c\xe9\x92\x44\x57\xeb\x65\xa6\x58\xe6\x55\xf8\x54\xd5\x58\x57\x4a\x69\x57\xd1\x4f\x85\x92\x45\x92\x46\x62\x7e\x4e\x93\x65\xa7\x5b\x5d\x92\x47\x53\xdc\x65\xa8\x92\x48\x92\x49\x92\x4a\x65\xa9\x92\x4b\x65\xab\x65\xaa\x92\x4c\x65\xad\x65\xac\x92\x4d\x92\x4e\x92\x4f\x92\x50\x4f\x78\x92\x51\x65\xae\x92\x52\x51\xbd\x92\x53\x92\x54\x92\x55\x92\x56\x4a\xc0\x4a\xf6\x92\x57\x92\x58\x4e\x47\x92\x59\x92\x5a\x92\x5b\x92\x5c\x92\x5d\x66\xe5\x66\xe4\x4c\x5f\x56\x9a\x49\x83\x92\x5e\x66\xe6\x92\x5f\x92\x60\x92\x61\x55\x68\x66\xe7\x66\xe8\x92\x62\x55\xd5\x5f\xcf\x49\xc4\x5a\xf9\x92\x63\x92\x64\x53\xca\x48\xc6\x4a\xf1\x54\xd2\x92\x65\x92\x66\x92\x67\x57\x70\x92\x68\x92\x69\x50\x58\x92\x6a\x92\x6b\x92\x6c\x92\x6d\x92\x6e\x92\x6f\x92\x70\x50\x7b\x92\x71\x92\x72\x54\x44\x5b\xb3\x92\x73\x50\xa8\x5f\xd0\x55\x48\x59\x90\x53\x44\x48\xe6\x4a\x56\x54\xc4\x92\x74\x92\x75\x48\xe1\x92\x76\x92\x77\x4c\x97\x92\x78\x92\x79\x53\x9b\x92\x7a\x92\x7b\x4b\xf2\x92\x7c\x5b\x72\x4a\x70", /* 6280 */ "\x4e\xbb\x92\x7d\x92\x7e\x92\x7f\x4a\x4d\x92\x81\x92\x82\x92\x83\x92\x84\x4f\xf0\x48\xd0\x92\x85\x92\x86\x92\x87\x92\x88\x92\x89\x92\x8a\x59\xd5\x55\xe2\x5c\x45\x92\x8b\x57\x56\x4b\xb5\x50\x59\x5b\x7b\x92\x8c\x4c\xa6\x53\x77\x92\x8d\x92\x8e\x92\x8f\x5f\xd1\x50\x79\x51\xd4\x54\x60\x92\x90\x4e\x44\x49\x48\x92\x91\x92\x92\x53\x8b\x92\x93\x92\x94\x53\x9c\x56\xa6\x92\x95\x92\x96\x92\x97\x92\x98\x49\x47\x92\x99\x92\x9a\x92\x9b\x4b\x76\x92\x9c\x92\x9d\x92\x9e\x52\xa7\x92\x9f\x5f\xd2\x59\x5a\x4a\x8a\x92\xa0\x52\x93\x92\xa1\x92\xa2\x4c\x98\x92\xa3\x5b\xf3\x4b\x43\x49\xef\x52\xb3\x52\xe8\x50\xac\x5f\xd3\x92\xa4\x48\xe7\x53\x64\x51\x81\x92\xa5\x4d\x75\x92\xa6\x4f\xdb\x57\x78\x48\xcd\x92\xa7\x57\x6f\x5f\xd5\x4f\xcf\x5c\x5e\x5f\xd4\x5b\x70\x48\xdc\x92\xa8\x92\xa9\x52\xe1\x92\xaa\x92\xab\x51\xa2\x4e\xef\x92\xac\x5a\x55\x50\xb8\x53\x41\x49\xa5\x5a\xf0\x92\xad\x92\xae\x50\xa7\x55\xc2\x5f\xd6\x5b\x9d\x92\xaf\x4d\x50\x92\xb0\x54\xac\x56\x49\x92\xb1\x5f\xd8\x50\x5d\x92\xb2\x92\xb3\x92\xb4\x92\xb5\x53\xb3\x5c\x47\x55\xaf\x52\xc2", /* 6300 */ "\x92\xb6\x4a\x76\x4d\x72\x92\xb7\x92\xb8\x92\xb9\x92\xba\x5b\xb7\x65\xfb\x48\xb3\x92\xbb\x92\xbc\x92\xbd\x92\xbe\x50\x87\x92\xbf\x92\xc0\x56\xf3\x92\xc1\x92\xc2\x92\xc3\x92\xc4\x57\x7a\x92\xc5\x92\xc6\x92\xc7\x5b\xbe\x51\xcd\x92\xc8\x57\xcd\x56\xa1\x58\xad\x52\xd2\x4b\x52\x5f\xd7\x5b\x96\x4e\xb6\x4e\x73\x92\xc9\x92\xca\x48\xa3\x92\xcb\x53\x52\x4a\xeb\x92\xcc\x92\xcd\x92\xce\x5b\x92\x92\xcf\x92\xd0\x65\xfc\x92\xd1\x92\xd2\x92\xd3\x92\xd4\x92\xd5\x92\xd6\x5f\xd9\x57\x46\x92\xd7\x92\xd8\x57\x8d\x92\xd9\x92\xda\x92\xdb\x92\xdc\x57\xe5\x5f\xdb\x92\xdd\x57\x51\x50\xa5\x92\xde\x92\xdf\x5c\x5d\x92\xe0\x5f\xda\x48\xc5\x4d\xb3\x55\x73\x52\xf2\x4f\xe7\x92\xe1\x92\xe2\x92\xe3\x92\xe4\x49\xb5\x92\xe5\x92\xe6\x92\xe7\x92\xe8\x92\xe9\x92\xea\x92\xeb\x92\xec\x50\xcb\x56\x91\x92\xed\x4e\xf0\x4e\x5b\x4b\x57\x92\xee\x92\xef\x92\xf0\x53\x96\x92\xf1\x5f\xe5\x92\xf2\x92\xf3\x92\xf4\x5f\xe2\x4f\xdc\x92\xf5\x92\xf6\x5f\xde\x92\xf7\x92\xf8\x92\xf9\x92\xfa\x4a\xb6\x4f\x7d\x92\xfb\x92\xfc\x5f\xdf\x52\xec\x92\xfd\x93\x41\x93\x42\x93\x43", /* 6380 */ "\x58\x66\x93\x44\x4b\x81\x93\x45\x93\x46\x93\x47\x93\x48\x4b\xdd\x55\xd9\x4b\x95\x5f\xe4\x93\x49\x5b\x66\x93\x4a\x5f\xe0\x56\xcc\x53\xfd\x93\x4b\x53\x65\x93\x4c\x93\x4d\x93\x4e\x59\xb3\x93\x4f\x4f\xf1\x93\x50\x93\x51\x93\x52\x93\x53\x93\x54\x93\x55\x93\x56\x51\xd2\x93\x57\x56\xbc\x4a\x58\x93\x58\x4f\x73\x93\x59\x50\x78\x57\x66\x59\x7a\x4a\xea\x93\x5a\x5f\xe3\x5f\xdc\x5f\xe6\x93\x5b\x65\xfd\x93\x5c\x93\x5d\x51\xaf\x5f\xe1\x93\x5e\x93\x5f\x5b\xbf\x4b\x47\x93\x60\x49\xf3\x93\x61\x5f\xe7\x93\x62\x5f\xf1\x93\x63\x93\x64\x93\x65\x93\x66\x93\x67\x5f\xec\x93\x68\x5f\xf0\x93\x69\x93\x6a\x54\xdf\x93\x6b\x93\x6c\x93\x6d\x5c\x82\x5f\xee\x52\x89\x56\xe0\x93\x6e\x49\xe4\x93\x6f\x93\x70\x93\x71\x59\xbd\x93\x72\x93\x73\x93\x74\x93\x75\x93\x76\x93\x77\x93\x78\x5f\xed\x93\x79\x5f\xea\x57\xd4\x93\x7a\x4a\xa6\x93\x7b\x93\x7c\x93\x7d\x93\x7e\x93\x7f\x50\x4b\x4f\xbd\x93\x81\x93\x82\x4f\x72\x93\x83\x93\x84\x93\x85\x93\x86\x5f\xe8\x93\x87\x5a\xad\x93\x88\x5f\xdd\x93\x89\x5f\xe9\x93\x8a\x93\x8b\x93\x8c\x93\x8d\x50\xbe\x93\x8e\x5f\xeb", /* 6400 */ "\x49\xf2\x4c\xe8\x51\xa6\x93\x8f\x93\x90\x4f\x61\x93\x91\x93\x92\x93\x93\x93\x94\x93\x95\x5f\xf4\x5f\xf7\x93\x96\x93\x97\x49\xaa\x4a\xa3\x93\x98\x93\x99\x4a\xe9\x55\x46\x93\x9a\x93\x9b\x93\x9c\x93\x9d\x93\x9e\x93\x9f\x5f\xf5\x56\x71\x93\xa0\x4c\xe2\x93\xa1\x5f\xf6\x5f\xf9\x93\xa2\x93\xa3\x93\xa4\x93\xa5\x5f\xf8\x93\xa6\x93\xa7\x93\xa8\x56\xc1\x93\xa9\x48\xe0\x4a\xed\x93\xaa\x93\xab\x93\xac\x93\xad\x93\xae\x93\xaf\x63\x5a\x93\xb0\x93\xb1\x93\xb2\x93\xb3\x93\xb4\x58\xae\x93\xb5\x93\xb6\x49\xea\x93\xb7\x66\x41\x93\xb8\x5f\xf3\x93\xb9\x93\xba\x55\x84\x5f\xf2\x48\xd9\x59\xa0\x49\x98\x93\xbb\x56\xae\x93\xbc\x93\xbd\x93\xbe\x93\xbf\x93\xc0\x93\xc1\x93\xc2\x5f\xef\x93\xc3\x56\x44\x93\xc4\x93\xc5\x93\xc6\x5b\x4a\x93\xc7\x93\xc8\x93\xc9\x93\xca\x93\xcb\x5f\xfa\x93\xcc\x93\xcd\x93\xce\x93\xcf\x93\xd0\x93\xd1\x93\xd2\x93\xd3\x4a\xdc\x93\xd4\x52\xa5\x93\xd5\x93\xd6\x93\xd7\x5f\xfc\x93\xd8\x93\xd9\x93\xda\x93\xdb\x93\xdc\x93\xdd\x93\xde\x93\xdf\x93\xe0\x93\xe1\x52\x9f\x52\xa0\x60\x41\x93\xe2\x93\xe3\x93\xe4\x93\xe5\x93\xe6", /* 6480 */ "\x93\xe7\x93\xe8\x51\x6c\x93\xe9\x5f\xfb\x4f\xee\x93\xea\x53\xb1\x93\xeb\x93\xec\x93\xed\x93\xee\x93\xef\x93\xf0\x93\xf1\x93\xf2\x93\xf3\x4a\x65\x54\xf5\x93\xf4\x93\xf5\x56\x5a\x5f\xfd\x93\xf6\x93\xf7\x60\x44\x93\xf8\x93\xf9\x93\xfa\x93\xfb\x5c\x52\x93\xfc\x93\xfd\x94\x41\x94\x42\x94\x43\x4a\x57\x94\x44\x94\x45\x94\x46\x94\x47\x51\x63\x94\x48\x94\x49\x54\x6b\x49\xa4\x4a\xe8\x94\x4a\x5c\x4b\x94\x4b\x94\x4c\x94\x4d\x94\x4e\x52\xeb\x94\x4f\x60\x42\x60\x43\x94\x50\x60\x45\x94\x51\x4d\xb2\x94\x52\x94\x53\x94\x54\x60\x46\x94\x55\x50\xdd\x94\x56\x94\x57\x55\x63\x94\x58\x94\x59\x94\x5a\x94\x5b\x94\x5c\x94\x5d\x94\x5e\x49\xd8\x54\x87\x94\x5f\x60\x47\x94\x60\x54\x7c\x94\x61\x94\x62\x94\x63\x94\x64\x60\x48\x66\x42\x94\x65\x94\x66\x94\x67\x94\x68\x94\x69\x56\x73\x94\x6a\x94\x6b\x94\x6c\x60\x4a\x94\x6d\x60\x49\x94\x6e\x49\xc0\x94\x6f\x94\x70\x94\x71\x94\x72\x94\x73\x94\x74\x94\x75\x94\x76\x94\x77\x94\x78\x94\x79\x94\x7a\x94\x7b\x94\x7c\x94\x7d\x94\x7e\x94\x7f\x94\x81\x94\x82\x94\x83\x94\x84\x94\x85\x94\x86\x94\x87\x94\x88", /* 6500 */ "\x53\x6a\x94\x89\x94\x8a\x94\x8b\x94\x8c\x94\x8d\x94\x8e\x94\x8f\x94\x90\x60\x4b\x94\x91\x94\x92\x94\x93\x94\x94\x94\x95\x94\x96\x94\x97\x94\x98\x5a\xdb\x94\x99\x94\x9a\x94\x9b\x94\x9c\x94\x9d\x54\xc0\x94\x9e\x94\x9f\x94\xa0\x94\xa1\x94\xa2\x94\xa3\x94\xa4\x94\xa5\x94\xa6\x94\xa7\x94\xa8\x94\xa9\x60\x4c\x94\xaa\x94\xab\x94\xac\x94\xad\x94\xae\x4f\xef\x94\xaf\x94\xb0\x60\x4d\x5b\xa6\x94\xb1\x94\xb2\x94\xb3\x94\xb4\x65\xb6\x66\x56\x55\xd4\x94\xb5\x5c\xfb\x4c\xc3\x94\xb6\x4d\x45\x94\xb7\x94\xb8\x4c\x65\x5b\x9f\x94\xb9\x94\xba\x94\xbb\x94\xbc\x94\xbd\x4d\x6a\x94\xbe\x94\xbf\x58\xa6\x6a\xcc\x94\xc0\x94\xc1\x4b\x70\x94\xc2\x94\xc3\x52\x95\x94\xc4\x4f\xc7\x94\xc5\x94\xc6\x94\xc7\x66\x57\x48\xbc\x94\xc8\x94\xc9\x4f\x6c\x94\xca\x51\x52\x94\xcb\x49\x76\x4a\x48\x94\xcc\x94\xcd\x94\xce\x4c\xd1\x55\x42\x94\xcf\x94\xd0\x4b\xd7\x94\xd1\x94\xd2\x94\xd3\x94\xd4\x66\x58\x4f\xb3\x94\xd5\x94\xd6\x94\xd7\x55\xfc\x94\xd8\x54\x63\x94\xd9\x5b\x9c\x94\xda\x94\xdb\x4c\x94\x94\xdc\x94\xdd\x94\xde\x94\xdf\x94\xe0\x94\xe1\x94\xe2\x94\xe3", /* 6580 */ "\x94\xe4\x94\xe5\x94\xe6\x94\xe7\x94\xe8\x94\xe9\x94\xea\x57\xc3\x94\xeb\x94\xec\x94\xed\x5b\x4b\x49\x94\x94\xee\x94\xef\x94\xf0\x66\xb2\x48\xde\x94\xf1\x66\xb4\x94\xf2\x94\xf3\x94\xf4\x4b\xb6\x94\xf5\x51\x6f\x94\xf6\x6b\x9b\x58\xb0\x94\xf7\x94\xf8\x5b\x86\x94\xf9\x57\xd2\x94\xfa\x94\xfb\x4f\x90\x4a\x83\x94\xfc\x4c\xaa\x94\xfd\x5b\x56\x95\x41\x67\x5d\x95\x42\x4b\xce\x95\x43\x56\x59\x58\xc1\x95\x44\x95\x45\x95\x46\x95\x47\x95\x48\x95\x49\x95\x4a\x95\x4b\x4c\x5d\x95\x4c\x95\x4d\x66\xb5\x55\xa8\x95\x4e\x95\x4f\x95\x50\x53\x74\x95\x51\x66\xb8\x66\xb7\x51\xc2\x66\xb6\x95\x52\x95\x53\x95\x54\x95\x55\x58\xfc\x66\xb9\x95\x56\x66\xba\x5c\x86\x95\x57\x95\x58\x66\xbb\x95\x59\x95\x5a\x95\x5b\x66\xbc\x53\xeb\x95\x5c\x95\x5d\x95\x5e\x95\x5f\x95\x60\x95\x61\x95\x62\x95\x63\x57\xdd\x95\x64\x4e\xc7\x95\x65\x95\x66\x54\xd4\x4b\x49\x4f\xc8\x5b\xbb\x5a\xe6\x95\x67\x95\x68\x59\x4e\x58\xf0\x65\xb7\x65\xb8\x65\xb9\x4d\xb4\x95\x69\x95\x6a\x95\x6b\x95\x6c\x55\xb0\x50\x96\x95\x6d\x95\x6e\x57\x9b\x95\x6f\x95\x70\x95\x71\x95\x72\x95\x73", /* 6600 */ "\x65\xbf\x95\x74\x48\xb9\x65\xbd\x95\x75\x95\x76\x50\xa4\x95\x77\x95\x78\x95\x79\x65\xba\x95\x7a\x49\xfc\x95\x7b\x52\x98\x4e\x89\x95\x7c\x95\x7d\x95\x7e\x59\xd6\x57\xf3\x65\xbe\x95\x7f\x95\x81\x95\x82\x65\xbb\x95\x83\x95\x84\x95\x85\x65\xc2\x95\x86\x58\xc6\x5a\x53\x95\x87\x95\x88\x95\x89\x95\x8a\x4a\xb9\x95\x8b\x52\x61\x5c\x93\x95\x8c\x95\x8d\x95\x8e\x95\x8f\x5b\x71\x95\x90\x55\xc6\x95\x91\x65\xc4\x95\x92\x95\x93\x65\xc3\x65\xc6\x65\xc5\x95\x94\x95\x95\x95\x96\x95\x97\x95\x98\x5b\xe6\x95\x99\x58\x74\x95\x9a\x95\x9b\x65\xca\x95\x9c\x4e\x6e\x95\x9d\x95\x9e\x95\x9f\x95\xa0\x95\xa1\x95\xa2\x95\xa3\x4f\x9b\x55\x6e\x95\xa4\x95\xa5\x65\xcb\x95\xa6\x95\xa7\x55\x59\x58\x9f\x65\xc9\x5a\xcd\x65\xcc\x65\xce\x95\xa8\x95\xa9\x57\x8e\x95\xaa\x95\xab\x95\xac\x95\xad\x65\xc8\x95\xae\x65\xcd\x95\xaf\x95\xb0\x57\xed\x95\xb1\x4e\x7e\x95\xb2\x4a\x5f\x95\xb3\x95\xb4\x95\xb5\x95\xb6\x95\xb7\x53\xd4\x4f\xaf\x57\xf9\x95\xb8\x95\xb9\x95\xba\x54\x88\x95\xbb\x4f\xa6\x65\xcf\x95\xbc\x95\xbd\x5b\xc6\x95\xbe\x95\xbf\x95\xc0\x51\x60\x95\xc1", /* 6680 */ "\x95\xc2\x95\xc3\x5a\xdc\x95\xc4\x65\xd0\x95\xc5\x95\xc6\x58\x5e\x95\xc7\x95\xc8\x95\xc9\x95\xca\x65\xd1\x95\xcb\x95\xcc\x95\xcd\x95\xce\x55\xed\x95\xcf\x95\xd0\x95\xd1\x95\xd2\x53\x4f\x48\xb4\x95\xd3\x95\xd4\x95\xd5\x95\xd6\x95\xd7\x65\xd3\x95\xd8\x95\xd9\x95\xda\x95\xdb\x95\xdc\x95\xdd\x95\xde\x95\xdf\x95\xe0\x65\xd2\x6a\xde\x95\xe1\x95\xe2\x95\xe3\x95\xe4\x95\xe5\x52\xb9\x95\xe6\x95\xe7\x95\xe8\x95\xe9\x95\xea\x49\x49\x95\xeb\x95\xec\x95\xed\x95\xee\x63\x7f\x95\xef\x95\xf0\x95\xf1\x95\xf2\x65\xd4\x95\xf3\x95\xf4\x95\xf5\x95\xf6\x95\xf7\x95\xf8\x95\xf9\x95\xfa\x95\xfb\x95\xfc\x95\xfd\x96\x41\x96\x42\x96\x43\x96\x44\x96\x45\x96\x46\x96\x47\x96\x48\x96\x49\x96\x4a\x96\x4b\x96\x4c\x96\x4d\x96\x4e\x96\x4f\x55\xee\x96\x50\x65\xd5\x65\xd6\x53\xd7\x96\x51\x96\x52\x96\x53\x96\x54\x96\x55\x96\x56\x96\x57\x96\x58\x65\xd7\x96\x59\x96\x5a\x65\xd8\x96\x5b\x96\x5c\x96\x5d\x96\x5e\x96\x5f\x96\x60\x5a\xba\x96\x61\x54\x9b\x59\xb6\x4c\xfb\x96\x62\x96\x63\x65\xc1\x96\x64\x49\xdb\x96\x65\x96\x66\x51\xfb\x96\x67\x5a\xf7\x56\xe5", /* 6700 */ "\x5c\x8f\x96\x68\x96\x69\x96\x6a\x96\x6b\x96\x6c\x96\x6d\x96\x6e\x5a\xc1\x5a\x70\x66\x63\x53\x94\x96\x6f\x4c\x9f\x96\x70\x96\x71\x66\x74\x96\x72\x96\x73\x96\x74\x56\x57\x66\x7e\x96\x75\x50\xc9\x96\x76\x96\x77\x96\x78\x57\x9c\x96\x79\x4a\x4f\x96\x7a\x53\xd9\x96\x7b\x96\x7c\x96\x7d\x96\x7e\x96\x7f\x96\x81\x66\x9d\x96\x82\x52\xbd\x96\x83\x57\xb3\x52\xa8\x49\x5e\x5a\xfc\x96\x84\x55\xf4\x96\x85\x5b\xeb\x96\x86\x96\x87\x53\xd2\x4b\xe3\x96\x88\x96\x89\x96\x8a\x96\x8b\x4e\x9b\x96\x8c\x96\x8d\x58\xdf\x96\x8e\x96\x8f\x55\x51\x96\x90\x5a\xd2\x54\xa7\x96\x91\x96\x92\x4c\xca\x96\x93\x64\xbd\x55\x5c\x96\x94\x96\x95\x64\xba\x96\x96\x50\xed\x58\xd2\x49\xc3\x4a\xe4\x96\x97\x64\xbb\x96\x98\x96\x99\x5b\x68\x96\x9a\x96\x9b\x96\x9c\x96\x9d\x96\x9e\x4b\xc4\x96\x9f\x64\xbc\x55\xf7\x4c\xdb\x56\xf4\x96\xa0\x96\xa1\x96\xa2\x50\xb3\x96\xa3\x96\xa4\x59\x8f\x64\xbe\x64\xc1\x96\xa5\x96\xa6\x4d\xbb\x96\xa7\x49\x4d\x4f\x7c\x96\xa8\x65\xbc\x64\xc2\x96\xa9\x64\xc5\x96\xaa\x64\xca\x96\xab\x96\xac\x96\xad\x96\xae\x64\xcb\x96\xaf\x56\x69\x48\xe4", /* 6780 */ "\x96\xb0\x4e\xaa\x96\xb1\x96\xb2\x4d\x59\x96\xb3\x96\xb4\x64\xc0\x96\xb5\x57\x98\x96\xb6\x64\xc9\x96\xb7\x96\xb8\x96\xb9\x96\xba\x57\xf5\x96\xbb\x96\xbc\x96\xbd\x96\xbe\x5b\x8e\x96\xbf\x51\x76\x64\xc3\x96\xc0\x52\x56\x96\xc1\x4d\x9c\x5b\xa5\x64\xc7\x96\xc2\x96\xc3\x96\xc4\x55\xdf\x5a\xe5\x96\xc5\x64\xbf\x96\xc6\x64\xc4\x64\xc6\x96\xc7\x54\x59\x4c\x84\x96\xc8\x64\xc8\x96\xc9\x50\x7d\x64\xd1\x96\xca\x96\xcb\x64\xd6\x96\xcc\x64\xd4\x4e\xdb\x4e\xce\x64\xda\x96\xcd\x96\xce\x96\xcf\x96\xd0\x96\xd1\x96\xd2\x96\xd3\x96\xd4\x64\xdd\x96\xd5\x64\xd9\x49\x9b\x96\xd6\x96\xd7\x96\xd8\x96\xd9\x96\xda\x96\xdb\x96\xdc\x96\xdd\x96\xde\x96\xdf\x48\xd7\x52\xb2\x4c\xcb\x53\xe1\x54\xbd\x54\xe0\x96\xe0\x96\xe1\x96\xe2\x64\xce\x64\xd3\x64\xd5\x96\xe3\x4d\x92\x64\xd7\x5c\x96\x96\xe4\x52\xfa\x96\xe5\x64\xdb\x96\xe6\x96\xe7\x49\xe8\x96\xe8\x96\xe9\x96\xea\x64\xd0\x96\xeb\x96\xec\x4e\xec\x96\xed\x96\xee\x50\x62\x64\xcc\x5b\xf8\x96\xef\x51\x99\x49\xf0\x96\xf0\x96\xf1\x96\xf2\x96\xf3\x96\xf4\x96\xf5\x96\xf6\x96\xf7\x64\xde\x96\xf8\x55\xc0", /* 6800 */ "\x64\xd8\x96\xf9\x96\xfa\x96\xfb\x96\xfc\x5b\x44\x96\xfd\x49\x8b\x5b\x5b\x64\xcd\x64\xcf\x4b\xaf\x64\xd2\x97\x41\x64\xdc\x50\xb7\x97\x42\x55\xf6\x97\x43\x56\x48\x97\x44\x97\x45\x53\xdb\x50\xf4\x97\x46\x97\x47\x97\x48\x97\x49\x97\x4a\x64\xe8\x97\x4b\x97\x4c\x97\x4d\x58\xa2\x97\x4e\x97\x4f\x97\x50\x97\x51\x97\x52\x97\x53\x97\x54\x64\xf1\x5b\xe9\x97\x55\x97\x56\x97\x57\x97\x58\x97\x59\x97\x5a\x97\x5b\x64\xdf\x64\xe0\x97\x5c\x97\x5d\x97\x5e\x59\x9a\x4d\xca\x4c\xf8\x97\x5f\x97\x60\x4c\xf0\x5a\xd3\x64\xee\x97\x61\x64\xed\x64\xeb\x4d\x91\x56\xd1\x64\xe5\x57\xa5\x50\x93\x97\x62\x48\xb7\x64\xf0\x64\xef\x97\x63\x5c\x60\x97\x64\x64\xe3\x97\x65\x57\x49\x55\x43\x97\x66\x4e\x58\x4f\x7b\x64\xe9\x97\x67\x97\x68\x97\x69\x97\x6a\x97\x6b\x97\x6c\x97\x6d\x97\x6e\x97\x6f\x97\x70\x64\xe1\x64\xe2\x64\xe4\x4b\x55\x64\xe6\x54\x65\x64\xea\x64\xec\x4f\x50\x5c\x4e\x97\x71\x64\xf7\x97\x72\x97\x73\x97\x74\x97\x75\x97\x76\x97\x77\x97\x78\x97\x79\x64\xf4\x97\x7a\x57\x50\x64\xf5\x97\x7b\x97\x7c\x97\x7d\x97\x7e\x97\x7f\x97\x81\x97\x82\x97\x83", /* 6880 */ "\x97\x84\x51\x5a\x97\x85\x64\xe7\x97\x86\x52\x57\x48\xef\x97\x87\x97\x88\x97\x89\x97\x8a\x97\x8b\x97\x8c\x97\x8d\x97\x8e\x64\xf3\x97\x8f\x97\x90\x97\x91\x64\xf6\x97\x92\x97\x93\x97\x94\x4d\x43\x97\x95\x97\x96\x97\x97\x97\x98\x97\x99\x97\x9a\x97\x9b\x97\x9c\x97\x9d\x97\x9e\x55\x72\x97\x9f\x97\xa0\x97\xa1\x52\x6e\x57\xdf\x50\xe5\x97\xa2\x97\xa3\x97\xa4\x97\xa5\x56\x94\x97\xa6\x56\xdc\x58\xb4\x97\xa7\x97\xa8\x55\xe0\x97\xa9\x64\xf2\x97\xaa\x97\xab\x97\xac\x97\xad\x97\xae\x97\xaf\x97\xb0\x97\xb1\x97\xb2\x97\xb3\x4e\xeb\x97\xb4\x64\xf8\x97\xb5\x97\xb6\x97\xb7\x97\xb8\x97\xb9\x97\xba\x52\x7e\x97\xbb\x53\xe4\x97\xbc\x4d\x98\x97\xbd\x97\xbe\x97\xbf\x97\xc0\x48\xf3\x97\xc1\x97\xc2\x5c\x78\x97\xc3\x97\xc4\x4e\xab\x97\xc5\x53\x90\x97\xc6\x97\xc7\x97\xc8\x97\xc9\x97\xca\x56\xc3\x97\xcb\x97\xcc\x65\x46\x97\xcd\x97\xce\x97\xcf\x97\xd0\x97\xd1\x97\xd2\x97\xd3\x97\xd4\x97\xd5\x97\xd6\x55\x4d\x97\xd7\x65\x42\x50\xe1\x97\xd8\x97\xd9\x97\xda\x50\x63\x97\xdb\x97\xdc\x97\xdd\x64\xfd\x4d\x77\x97\xde\x64\xfa\x97\xdf\x97\xe0\x97\xe1", /* 6900 */ "\x97\xe2\x65\x44\x97\xe3\x97\xe4\x97\xe5\x59\xcd\x97\xe6\x97\xe7\x97\xe8\x97\xe9\x97\xea\x65\x43\x97\xeb\x5b\xb1\x5c\x55\x97\xec\x65\x47\x97\xed\x4f\x57\x97\xee\x97\xef\x97\xf0\x97\xf1\x97\xf2\x97\xf3\x97\xf4\x97\xf5\x97\xf6\x97\xf7\x97\xf8\x97\xf9\x64\xfb\x64\xfc\x97\xfa\x97\xfb\x97\xfc\x65\x41\x97\xfd\x98\x41\x98\x42\x98\x43\x98\x44\x98\x45\x98\x46\x98\x47\x57\x76\x98\x48\x98\x49\x59\xab\x98\x4a\x98\x4b\x98\x4c\x65\x52\x98\x4d\x98\x4e\x98\x4f\x98\x50\x65\x49\x98\x51\x98\x52\x98\x53\x4a\xa9\x98\x54\x4a\xba\x98\x55\x98\x56\x65\x4b\x98\x57\x98\x58\x98\x59\x98\x5a\x98\x5b\x98\x5c\x98\x5d\x98\x5e\x98\x5f\x98\x60\x98\x61\x98\x62\x98\x63\x98\x64\x98\x65\x98\x66\x98\x67\x58\xa7\x98\x68\x98\x69\x65\x45\x98\x6a\x98\x6b\x4a\x9f\x98\x6c\x98\x6d\x65\x4c\x50\xe2\x98\x6e\x65\x4a\x98\x6f\x98\x70\x65\x59\x98\x71\x98\x72\x65\x58\x98\x73\x98\x74\x98\x75\x98\x76\x65\x4e\x98\x77\x98\x78\x64\xf9\x98\x79\x98\x7a\x65\x48\x98\x7b\x98\x7c\x98\x7d\x98\x7e\x98\x7f\x50\x4c\x65\x51\x65\x5a\x98\x81\x98\x82\x51\xa4\x98\x83\x98\x84\x98\x85", /* 6980 */ "\x65\x4f\x98\x86\x4c\xc4\x98\x87\x65\x4d\x98\x88\x5a\x7c\x65\x54\x65\x55\x65\x57\x98\x89\x98\x8a\x98\x8b\x65\x67\x98\x8c\x98\x8d\x98\x8e\x98\x8f\x98\x90\x98\x91\x50\xc5\x65\x65\x98\x92\x98\x93\x65\x50\x98\x94\x98\x95\x65\x5b\x48\xf0\x98\x96\x98\x97\x98\x98\x98\x99\x98\x9a\x98\x9b\x98\x9c\x98\x9d\x98\x9e\x98\x9f\x65\x5c\x5b\x45\x98\xa0\x98\xa1\x65\x5e\x98\xa2\x65\x5f\x98\xa3\x98\xa4\x98\xa5\x65\x61\x98\xa6\x98\xa7\x51\x92\x98\xa8\x98\xa9\x54\xb5\x98\xaa\x98\xab\x98\xac\x65\x5d\x98\xad\x98\xae\x98\xaf\x98\xb0\x98\xb1\x65\x62\x98\xb2\x98\xb3\x98\xb4\x98\xb5\x98\xb6\x98\xb7\x98\xb8\x98\xb9\x65\x63\x98\xba\x65\x53\x98\xbb\x65\x56\x98\xbc\x4e\x51\x98\xbd\x98\xbe\x98\xbf\x65\x60\x98\xc0\x98\xc1\x98\xc2\x98\xc3\x98\xc4\x98\xc5\x4e\xf6\x98\xc6\x98\xc7\x98\xc8\x65\x64\x65\x66\x98\xc9\x98\xca\x98\xcb\x98\xcc\x98\xcd\x98\xce\x98\xcf\x98\xd0\x98\xd1\x98\xd2\x98\xd3\x98\xd4\x65\x6a\x98\xd5\x98\xd6\x98\xd7\x98\xd8\x65\x6e\x98\xd9\x98\xda\x98\xdb\x98\xdc\x98\xdd\x98\xde\x98\xdf\x98\xe0\x98\xe1\x98\xe2\x49\xda\x98\xe3\x65\x68", /* 6a00 */ "\x98\xe4\x98\xe5\x98\xe6\x98\xe7\x98\xe8\x98\xe9\x98\xea\x98\xeb\x98\xec\x98\xed\x4c\x4e\x98\xee\x98\xef\x98\xf0\x98\xf1\x98\xf2\x98\xf3\x98\xf4\x98\xf5\x98\xf6\x98\xf7\x98\xf8\x98\xf9\x65\x6b\x65\x6c\x98\xfa\x98\xfb\x98\xfc\x98\xfd\x99\x41\x99\x42\x5b\x61\x99\x43\x52\xa2\x99\x44\x99\x45\x99\x46\x99\x47\x99\x48\x99\x49\x65\x78\x99\x4a\x4d\xe0\x99\x4b\x99\x4c\x99\x4d\x99\x4e\x65\x69\x99\x4f\x5a\x43\x99\x50\x99\x51\x99\x52\x65\x74\x99\x53\x99\x54\x99\x55\x99\x56\x99\x57\x99\x58\x99\x59\x65\x77\x65\x70\x99\x5a\x99\x5b\x99\x5c\x99\x5d\x99\x5e\x65\x6f\x99\x5f\x99\x60\x54\x61\x99\x61\x99\x62\x99\x63\x99\x64\x99\x65\x99\x66\x99\x67\x99\x68\x65\x72\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x6d\x99\x6e\x99\x6f\x65\x79\x4a\x68\x99\x70\x65\x73\x99\x71\x99\x72\x99\x73\x99\x74\x99\x75\x58\x91\x99\x76\x99\x77\x99\x78\x65\x6d\x99\x79\x99\x7a\x99\x7b\x99\x7c\x99\x7d\x99\x7e\x99\x7f\x99\x81\x99\x82\x99\x83\x99\x84\x4a\x98\x99\x85\x99\x86\x99\x87\x99\x88\x99\x89\x99\x8a\x99\x8b\x65\x76\x99\x8c\x99\x8d\x65\x7a\x99\x8e\x99\x8f\x99\x90", /* 6a80 */ "\x56\xb3\x99\x91\x99\x92\x99\x93\x58\x4d\x99\x94\x99\x95\x99\x96\x99\x97\x99\x98\x99\x99\x99\x9a\x99\x9b\x99\x9c\x65\x75\x99\x9d\x65\x7c\x65\x7b\x99\x9e\x99\x9f\x99\xa0\x99\xa1\x99\xa2\x65\x7e\x99\xa3\x99\xa4\x99\xa5\x99\xa6\x99\xa7\x99\xa8\x99\xa9\x99\xaa\x65\x71\x99\xab\x99\xac\x99\xad\x99\xae\x99\xaf\x99\xb0\x99\xb1\x99\xb2\x65\x7d\x99\xb3\x65\x7f\x52\x6a\x99\xb4\x99\xb5\x99\xb6\x99\xb7\x99\xb8\x99\xb9\x99\xba\x99\xbb\x99\xbc\x99\xbd\x99\xbe\x99\xbf\x99\xc0\x99\xc1\x99\xc2\x99\xc3\x99\xc4\x99\xc5\x99\xc6\x99\xc7\x99\xc8\x99\xc9\x99\xca\x99\xcb\x99\xcc\x99\xcd\x99\xce\x99\xcf\x99\xd0\x99\xd1\x99\xd2\x99\xd3\x99\xd4\x99\xd5\x99\xd6\x99\xd7\x99\xd8\x99\xd9\x99\xda\x99\xdb\x99\xdc\x99\xdd\x99\xde\x99\xdf\x99\xe0\x99\xe1\x99\xe2\x99\xe3\x99\xe4\x99\xe5\x99\xe6\x99\xe7\x99\xe8\x99\xe9\x99\xea\x99\xeb\x99\xec\x99\xed\x99\xee\x99\xef\x99\xf0\x99\xf1\x99\xf2\x99\xf3\x99\xf4\x99\xf5\x99\xf6\x99\xf7\x99\xf8\x99\xf9\x99\xfa\x99\xfb\x99\xfc\x99\xfd\x9a\x41\x9a\x42\x9a\x43\x9a\x44\x9a\x45\x9a\x46\x9a\x47\x9a\x48\x9a\x49", /* 6b00 */ "\x9a\x4a\x9a\x4b\x9a\x4c\x9a\x4d\x9a\x4e\x9a\x4f\x9a\x50\x9a\x51\x9a\x52\x9a\x53\x9a\x54\x9a\x55\x9a\x56\x9a\x57\x9a\x58\x9a\x59\x9a\x5a\x9a\x5b\x9a\x5c\x9a\x5d\x9a\x5e\x9a\x5f\x9a\x60\x9a\x61\x9a\x62\x9a\x63\x9a\x64\x9a\x65\x9a\x66\x9a\x67\x9a\x68\x9a\x69\x54\x57\x4a\xcd\x4e\x56\x58\xbf\x66\xa2\x9a\x6a\x9a\x6b\x53\x57\x9a\x6c\x9a\x6d\x9a\x6e\x9a\x6f\x9a\x70\x9a\x71\x9a\x72\x9a\x73\x9a\x74\x9a\x75\x5a\x9c\x9a\x76\x9a\x77\x9a\x78\x9a\x79\x66\xa3\x9a\x7a\x66\xa4\x53\xda\x9a\x7b\x9a\x7c\x9a\x7d\x50\x8f\x9a\x7e\x9a\x7f\x9a\x81\x9a\x82\x66\xa5\x9a\x83\x9a\x84\x66\xa6\x58\xa9\x9a\x85\x54\x58\x9a\x86\x9a\x87\x4c\xe7\x9a\x88\x9a\x89\x9a\x8a\x9a\x8b\x9a\x8c\x9a\x8d\x9a\x8e\x9a\x8f\x9a\x90\x9a\x91\x9a\x92\x9a\x93\x66\xa7\x9a\x94\x9a\x95\x9a\x96\x9a\x97\x9a\x98\x9a\x99\x9a\x9a\x9a\x9b\x5b\xb8\x5b\x9e\x4a\xca\x49\xbc\x57\xe3\x53\xe6\x9a\x9c\x9a\x9d\x57\x82\x9a\x9e\x9a\x9f\x9a\xa0\x9a\xa1\x9a\xa2\x9a\xa3\x9a\xa4\x9a\xa5\x9a\xa6\x9a\xa7\x9a\xa8\x9a\xa9\x9a\xaa\x9a\xab\x4a\xf4\x9a\xac\x56\x60\x4e\xde\x9a\xad\x9a\xae\x9a\xaf", /* 6b80 */ "\x9a\xb0\x65\x83\x65\x84\x59\x8b\x65\x86\x9a\xb1\x4a\xf8\x65\x85\x9a\xb2\x59\x53\x55\xe1\x49\xcf\x9a\xb3\x65\x89\x9a\xb4\x9a\xb5\x9a\xb6\x9a\xb7\x65\x87\x65\x88\x9a\xb8\x9a\xb9\x5b\xb2\x9a\xba\x9a\xbb\x9a\xbc\x65\x8a\x65\x8b\x9a\xbd\x9a\xbe\x9a\xbf\x9a\xc0\x9a\xc1\x65\x8c\x9a\xc2\x9a\xc3\x9a\xc4\x9a\xc5\x9a\xc6\x9a\xc7\x9a\xc8\x9a\xc9\x65\x8d\x9a\xca\x9a\xcb\x9a\xcc\x9a\xcd\x9a\xce\x9a\xcf\x9a\xd0\x9a\xd1\x66\xae\x53\x59\x4b\xcd\x9a\xd2\x59\xf2\x9a\xd3\x9a\xd4\x9a\xd5\x9a\xd6\x9a\xd7\x9a\xd8\x9a\xd9\x4b\x8f\x9a\xda\x4e\x79\x66\xb0\x9a\xdb\x9a\xdc\x59\xe2\x9a\xdd\x9a\xde\x9a\xdf\x9a\xe0\x9a\xe1\x57\xe2\x9a\xe2\x52\xb7\x9a\xe3\x52\x5f\x9a\xe4\x9a\xe5\x4b\xbd\x5c\xb8\x49\x68\x49\x6f\x49\x71\x53\x9f\x9a\xe6\x49\x70\x9a\xe7\x52\x4b\x9a\xe8\x9a\xe9\x9a\xea\x9a\xeb\x9a\xec\x5b\x51\x9a\xed\x9a\xee\x9a\xef\x9a\xf0\x9a\xf1\x9a\xf2\x9a\xf3\x9a\xf4\x66\x44\x4d\xc0\x9a\xf5\x9a\xf6\x9a\xf7\x56\xb9\x9a\xf8\x9a\xf9\x9a\xfa\x66\x45\x9a\xfb\x66\x47\x9a\xfc\x9a\xfd\x9b\x41\x66\x48\x9b\x42\x9b\x43\x9b\x44\x66\x46\x9b\x45\x9b\x46", /* 6c00 */ "\x9b\x47\x9b\x48\x9b\x49\x9b\x4a\x9b\x4b\x66\x49\x66\x4b\x66\x4a\x9b\x4c\x9b\x4d\x9b\x4e\x9b\x4f\x9b\x50\x66\x4c\x9b\x51\x55\xce\x5c\xb4\x52\x92\x9b\x52\x52\x45\x53\xf7\x66\x4d\x52\xc9\x9b\x53\x66\x4e\x66\x4f\x66\x50\x4c\x75\x9b\x54\x9b\x55\x9b\x56\x4c\x9b\x9b\x57\x66\x51\x54\x83\x9b\x58\x66\x53\x9b\x59\x4d\xa3\x59\x96\x48\xb0\x66\x52\x66\x54\x9b\x5a\x9b\x5b\x9b\x5c\x4b\x4a\x51\xc7\x54\x89\x9b\x5d\x66\x55\x9b\x5e\x56\x4e\x62\x7f\x9b\x5f\x9b\x60\x5a\x60\x9b\x61\x9b\x62\x9b\x63\x9b\x64\x5d\x7b\x9b\x65\x9b\x66\x57\x41\x5b\xac\x54\x94\x9b\x67\x9b\x68\x9b\x69\x5d\x81\x4e\x84\x9b\x6a\x4d\xb9\x62\x83\x9b\x6b\x9b\x6c\x9b\x6d\x9b\x6e\x9b\x6f\x58\x4b\x9b\x70\x9b\x71\x9b\x72\x62\x81\x55\x67\x9b\x73\x4d\xb8\x9b\x74\x9b\x75\x9b\x76\x59\x54\x62\x82\x54\xe9\x4d\x4f\x4f\x4d\x4a\x78\x57\xda\x9b\x77\x9b\x78\x56\xbf\x9b\x79\x9b\x7a\x9b\x7b\x62\x89\x62\x8a\x57\x95\x9b\x7c\x9b\x7d\x9b\x7e\x9b\x7f\x9b\x81\x56\xac\x9b\x82\x4e\xb2\x9b\x83\x62\x8b\x9b\x84\x62\x8c\x9b\x85\x9b\x86\x58\xd9\x9b\x87\x9b\x88\x9b\x89\x53\xfa\x4c\x7a\x9b\x8a", /* 6c80 */ "\x9b\x8b\x54\x7f\x59\xc9\x57\xd5\x9b\x8c\x62\x85\x62\x8d\x9b\x8d\x55\x93\x4a\x61\x9b\x8e\x9b\x8f\x62\x88\x9b\x90\x9b\x91\x53\xe2\x62\x86\x9b\x92\x9b\x93\x67\x53\x62\x87\x9b\x94\x9b\x95\x9b\x96\x9b\x97\x55\x53\x9b\x98\x53\x87\x9b\x99\x9b\x9a\x9b\x9b\x4d\x55\x9b\x9c\x52\x5b\x9b\x9d\x62\x84\x53\x5d\x51\x44\x51\xd8\x49\xd6\x9b\x9e\x62\x8e\x4e\x46\x52\xac\x9b\x9f\x62\x91\x4f\xd9\x9b\xa0\x9b\xa1\x62\x9c\x62\x96\x4d\xd2\x9b\xa2\x9b\xa3\x9b\xa4\x9b\xa5\x4c\x70\x5a\x6d\x9b\xa6\x5b\xcd\x5b\x73\x4d\x61\x5b\x54\x59\x78\x9b\xa7\x9b\xa8\x9b\xa9\x9b\xaa\x58\xb8\x54\x97\x9b\xab\x9b\xac\x9b\xad\x54\xa9\x49\xb3\x9b\xae\x52\x7a\x9b\xaf\x9b\xb0\x9b\xb1\x62\x8f\x9b\xb2\x9b\xb3\x62\x9d\x62\x90\x4c\x48\x62\x98\x62\x95\x9b\xb4\x9b\xb5\x9b\xb6\x4c\x5a\x9b\xb7\x9b\xb8\x53\x42\x9b\xb9\x62\x97\x53\x7d\x49\xa7\x53\xfb\x9b\xba\x52\xdf\x9b\xbb\x9b\xbc\x5c\x42\x9b\xbd\x50\xe0\x62\x9a\x9b\xbe\x9b\xbf\x62\x9b\x62\x9e\x56\xa8\x62\x94\x9b\xc0\x5a\x5e\x9b\xc1\x49\x63\x67\x54\x62\x92\x62\x93\x9b\xc2\x62\x99\x58\xb9\x53\xc2\x5a\xf2\x62\x9f\x9b\xc3", /* 6d00 */ "\x9b\xc4\x4f\x81\x9b\xc5\x9b\xc6\x62\xa6\x9b\xc7\x9b\xc8\x62\xa5\x9b\xc9\x9b\xca\x9b\xcb\x59\x94\x62\xa2\x9b\xcc\x62\xa8\x9b\xcd\x9b\xce\x9b\xcf\x54\xf6\x9b\xd0\x9b\xd1\x9b\xd2\x9b\xd3\x58\x54\x9b\xd4\x62\xa7\x62\xad\x51\xe4\x9b\xd5\x9b\xd6\x4b\xb3\x9b\xd7\x9b\xd8\x9b\xd9\x9b\xda\x9b\xdb\x9b\xdc\x4f\x93\x9b\xdd\x62\xa1\x9b\xde\x9b\xdf\x4d\xe8\x62\xa9\x9b\xe0\x9b\xe1\x62\xab\x9b\xe2\x9b\xe3\x4b\xfc\x5b\xdd\x62\xb1\x9b\xe4\x62\xac\x9b\xe5\x9b\xe6\x9b\xe7\x62\xa0\x9b\xe8\x4e\x8f\x57\x7d\x54\x42\x53\x69\x9b\xe9\x9b\xea\x51\x98\x9b\xeb\x62\xa3\x9b\xec\x54\x53\x4f\x4c\x4f\x5d\x62\xa4\x9b\xed\x5c\x67\x49\xe1\x9b\xee\x62\xaa\x4e\xc2\x62\xae\x9b\xef\x4e\x8c\x62\xaf\x53\x48\x62\xb0\x9b\xf0\x9b\xf1\x9b\xf2\x9b\xf3\x5b\x84\x50\x43\x9b\xf4\x62\xb9\x9b\xf5\x62\xb6\x9b\xf6\x62\xba\x9b\xf7\x9b\xf8\x62\xbc\x9b\xf9\x9b\xfa\x53\xd5\x9b\xfb\x9b\xfc\x4d\xc5\x50\xca\x9b\xfd\x9c\x41\x9c\x42\x4c\xa0\x62\xb3\x9c\x43\x9c\x44\x9c\x45\x9c\x46\x5a\xa0\x9c\x47\x9c\x48\x4d\xa2\x4f\x9f\x9c\x49\x9c\x4a\x9c\x4b\x62\xbb\x9c\x4c\x9c\x4d\x9c\x4e", /* 6d80 */ "\x9c\x4f\x9c\x50\x57\x5f\x9c\x51\x9c\x52\x52\xf8\x9c\x53\x9c\x54\x58\x9c\x55\x87\x9c\x55\x9c\x56\x5a\x5f\x9c\x57\x58\x71\x9c\x58\x9c\x59\x62\xb2\x9c\x5a\x62\xb7\x62\xb8\x56\xe8\x9c\x5b\x9c\x5c\x9c\x5d\x9c\x5e\x9c\x5f\x56\xcd\x9c\x60\x50\xd3\x62\xb4\x51\x50\x62\xb5\x57\xcf\x9c\x61\x4e\x61\x4b\x73\x9c\x62\x54\xf2\x4f\x47\x5b\x67\x55\x4c\x4c\xa1\x62\xc9\x9c\x63\x9c\x64\x62\xcb\x59\x64\x9c\x65\x9c\x66\x59\xb9\x9c\x67\x9c\x68\x4d\xac\x9c\x69\x9c\x6a\x4d\xd3\x9c\x6b\x9c\x6c\x9c\x6d\x9c\x6e\x9c\x6f\x9c\x70\x62\xc2\x4b\x8e\x9c\x71\x9c\x72\x9c\x73\x5c\x6d\x62\xbf\x58\x9e\x62\xbe\x9c\x74\x9c\x75\x9c\x76\x51\x7c\x56\xc9\x9c\x77\x9c\x78\x9c\x79\x9c\x7a\x55\xe6\x9c\x7b\x9c\x7c\x9c\x7d\x9c\x7e\x52\xd6\x9c\x7f\x56\xd3\x62\xc7\x9c\x81\x9c\x82\x9c\x83\x62\xc6\x62\xc0\x9c\x84\x62\xc3\x4b\x4d\x9c\x85\x9c\x86\x5a\x79\x9c\x87\x62\xc5\x9c\x88\x9c\x89\x9c\x8a\x9c\x8b\x59\xf8\x4a\xe2\x9c\x8c\x4e\x54\x9c\x8d\x9c\x8e\x55\x8f\x9c\x8f\x4a\xbd\x9c\x90\x9c\x91\x9c\x92\x4e\x8d\x9c\x93\x59\x6d\x9c\x94\x56\xec\x67\x55\x9c\x95\x9c\x96\x9c\x97", /* 6e00 */ "\x9c\x98\x9c\x99\x9c\x9a\x9c\x9b\x9c\x9c\x54\x86\x9c\x9d\x9c\x9e\x9c\x9f\x9c\xa0\x5a\xa7\x9c\xa1\x62\xca\x5c\x75\x62\xc1\x9c\xa2\x4f\x45\x62\xc4\x9c\xa3\x9c\xa4\x5a\x87\x9c\xa5\x62\xc8\x55\x99\x9c\xa6\x9c\xa7\x62\xbd\x9c\xa8\x9c\xa9\x5a\x86\x9c\xaa\x9c\xab\x54\x9f\x4b\xc8\x9c\xac\x5a\xfb\x49\xb2\x62\xd6\x9c\xad\x9c\xae\x9c\xaf\x57\xc1\x9c\xb0\x62\xcc\x9c\xb1\x57\xbb\x9c\xb2\x4c\xda\x9c\xb3\x9c\xb4\x62\xd5\x9c\xb5\x50\x6a\x9c\xb6\x9c\xb7\x9c\xb8\x5a\x6e\x9c\xb9\x52\x8d\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xbe\x9c\xbf\x9c\xc0\x9c\xc1\x53\x68\x62\xd7\x9c\xc2\x9c\xc3\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xc8\x9c\xc9\x57\x64\x62\xce\x9c\xca\x9c\xcb\x9c\xcc\x9c\xcd\x62\xd3\x62\xd4\x9c\xce\x4d\xfd\x9c\xcf\x58\x87\x9c\xd0\x9c\xd1\x5b\x5f\x9c\xd2\x9c\xd3\x9c\xd4\x62\xd1\x9c\xd5\x9c\xd6\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xda\x9c\xdb\x9c\xdc\x9c\xdd\x9c\xde\x9c\xdf\x62\xcf\x9c\xe0\x9c\xe1\x62\xcd\x9c\xe2\x9c\xe3\x9c\xe4\x9c\xe5\x9c\xe6\x9c\xe7\x9c\xe8\x9c\xe9\x9c\xea\x9c\xeb\x9c\xec\x9c\xed\x9c\xee\x9c\xef\x9c\xf0\x57\x86\x55\xa9", /* 6e80 */ "\x9c\xf1\x9c\xf2\x9c\xf3\x50\xa2\x9c\xf4\x4f\x46\x62\xd2\x9c\xf5\x9c\xf6\x4c\xc7\x9c\xf7\x9c\xf8\x9c\xf9\x9c\xfa\x9c\xfb\x62\xe6\x5a\xb3\x9c\xfc\x9c\xfd\x9d\x41\x9d\x42\x9d\x43\x9d\x44\x9d\x45\x62\xda\x9d\x46\x9d\x47\x9d\x48\x51\x90\x9d\x49\x9d\x4a\x62\xe8\x9d\x4b\x9d\x4c\x59\xe6\x9d\x4d\x9d\x4e\x62\xde\x9d\x4f\x62\xdf\x9d\x50\x9d\x51\x58\x4a\x9d\x52\x9d\x53\x9d\x54\x9d\x55\x56\x7d\x9d\x56\x62\xd9\x62\xd0\x9d\x57\x62\xe4\x9d\x58\x54\xdb\x62\xe2\x9d\x59\x9d\x5a\x52\xe6\x62\xe1\x9d\x5b\x62\xe0\x9d\x5c\x9d\x5d\x9d\x5e\x4a\x9d\x62\xe7\x9d\x5f\x9d\x60\x9d\x61\x9d\x62\x4b\x82\x9d\x63\x9d\x64\x9d\x65\x5c\x6c\x9d\x66\x9d\x67\x9d\x68\x62\xe5\x9d\x69\x4e\x4c\x9d\x6a\x5c\x72\x56\xce\x66\x99\x9d\x6b\x62\xe3\x9d\x6c\x9d\x6d\x4d\x97\x9d\x6e\x9d\x6f\x9d\x70\x5b\xcc\x62\xd8\x62\xdb\x51\xf9\x62\xdd\x9d\x71\x51\xca\x50\xc3\x51\xcf\x9d\x72\x49\x96\x56\xb1\x9d\x73\x9d\x74\x9d\x75\x9d\x76\x9d\x77\x9d\x78\x9d\x79\x9d\x7a\x9d\x7b\x9d\x7c\x4b\x6e\x9d\x7d\x9d\x7e\x9d\x7f\x9d\x81\x62\xee\x9d\x82\x9d\x83\x9d\x84\x9d\x85\x9d\x86\x9d\x87", /* 6f00 */ "\x9d\x88\x9d\x89\x53\xae\x9d\x8a\x9d\x8b\x9d\x8c\x53\xe0\x9d\x8d\x9d\x8e\x62\xf4\x9d\x8f\x9d\x90\x9d\x91\x9d\x92\x9d\x93\x51\xa8\x9d\x94\x9d\x95\x9d\x96\x50\xeb\x59\x7d\x62\xed\x9d\x97\x9d\x98\x9d\x99\x9d\x9a\x9d\x9b\x9d\x9c\x9d\x9d\x9d\x9e\x9d\x9f\x9d\xa0\x52\xad\x9d\xa1\x9d\xa2\x9d\xa3\x62\xec\x9d\xa4\x9d\xa5\x9d\xa6\x9d\xa7\x62\xf5\x62\xf3\x51\xfd\x9d\xa8\x62\xdc\x9d\xa9\x62\xef\x9d\xaa\x55\xfd\x9d\xab\x5b\x64\x9d\xac\x9d\xad\x62\xf0\x9d\xae\x9d\xaf\x9d\xb0\x9d\xb1\x9d\xb2\x9d\xb3\x9d\xb4\x59\x9b\x9d\xb5\x9d\xb6\x9d\xb7\x9d\xb8\x9d\xb9\x9d\xba\x9d\xbb\x62\xea\x62\xeb\x9d\xbc\x9d\xbd\x9d\xbe\x62\xf1\x9d\xbf\x57\xaa\x9d\xc0\x9d\xc1\x9d\xc2\x9d\xc3\x9d\xc4\x9d\xc5\x9d\xc6\x9d\xc7\x9d\xc8\x9d\xc9\x53\x6b\x9d\xca\x9d\xcb\x9d\xcc\x54\x51\x9d\xcd\x51\xb9\x9d\xce\x9d\xcf\x9d\xd0\x62\xe9\x9d\xd1\x9d\xd2\x9d\xd3\x51\x6a\x9d\xd4\x9d\xd5\x9d\xd6\x9d\xd7\x9d\xd8\x9d\xd9\x56\xb5\x4a\x51\x9d\xda\x9d\xdb\x9d\xdc\x62\xfa\x9d\xdd\x62\xf2\x9d\xde\x9d\xdf\x9d\xe0\x62\xf9\x9d\xe1\x62\xfc\x9d\xe2\x62\xfb\x9d\xe3\x9d\xe4\x9d\xe5", /* 6f80 */ "\x9d\xe6\x9d\xe7\x9d\xe8\x9d\xe9\x4a\x6e\x9d\xea\x9d\xeb\x9d\xec\x4a\x5a\x62\xf6\x9d\xed\x9d\xee\x62\xf8\x62\xf7\x53\x8d\x9d\xef\x9d\xf0\x9d\xf1\x9d\xf2\x9d\xf3\x9d\xf4\x9d\xf5\x9d\xf6\x9d\xf7\x9d\xf8\x9d\xf9\x9d\xfa\x9d\xfb\x50\xbc\x9d\xfc\x9d\xfd\x9e\x41\x9e\x42\x5a\xe7\x9e\x43\x9e\x44\x9e\x45\x9e\x46\x9e\x47\x63\x42\x9e\x48\x9e\x49\x9e\x4a\x9e\x4b\x9e\x4c\x9e\x4d\x9e\x4e\x9e\x4f\x9e\x50\x9e\x51\x9e\x52\x48\xc3\x9e\x53\x9e\x54\x63\x44\x9e\x55\x9e\x56\x63\x43\x9e\x57\x9e\x58\x9e\x59\x9e\x5a\x9e\x5b\x9e\x5c\x4e\xa3\x9e\x5d\x63\x45\x9e\x5e\x9e\x5f\x9e\x60\x9e\x61\x9e\x62\x9e\x63\x63\x41\x9e\x64\x9e\x65\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x62\xfd\x49\x95\x9e\x6b\x9e\x6c\x9e\x6d\x9e\x6e\x9e\x6f\x9e\x70\x9e\x71\x9e\x72\x9e\x73\x9e\x74\x9e\x75\x63\x48\x9e\x76\x63\x49\x63\x46\x9e\x77\x9e\x78\x9e\x79\x9e\x7a\x9e\x7b\x9e\x7c\x9e\x7d\x9e\x7e\x9e\x7f\x9e\x81\x9e\x82\x9e\x83\x63\x47\x63\x4a\x9e\x84\x9e\x85\x9e\x86\x9e\x87\x9e\x88\x9e\x89\x9e\x8a\x9e\x8b\x9e\x8c\x9e\x8d\x9e\x8e\x9e\x8f\x9e\x90\x9e\x91\x9e\x92\x9e\x93", /* 7000 */ "\x9e\x94\x9e\x95\x9e\x96\x9e\x97\x9e\x98\x9e\x99\x9e\x9a\x9e\x9b\x9e\x9c\x9e\x9d\x9e\x9e\x9e\x9f\x9e\xa0\x9e\xa1\x9e\xa2\x9e\xa3\x9e\xa4\x53\xd8\x9e\xa5\x9e\xa6\x9e\xa7\x9e\xa8\x9e\xa9\x9e\xaa\x9e\xab\x9e\xac\x63\x4b\x63\x4d\x9e\xad\x9e\xae\x9e\xaf\x9e\xb0\x9e\xb1\x9e\xb2\x9e\xb3\x63\x4c\x9e\xb4\x9e\xb5\x9e\xb6\x9e\xb7\x9e\xb8\x9e\xb9\x9e\xba\x9e\xbb\x9e\xbc\x9e\xbd\x9e\xbe\x9e\xbf\x9e\xc0\x9e\xc1\x9e\xc2\x9e\xc3\x9e\xc4\x63\x4f\x9e\xc5\x9e\xc6\x9e\xc7\x63\x4e\x9e\xc8\x9e\xc9\x9e\xca\x9e\xcb\x9e\xcc\x9e\xcd\x9e\xce\x9e\xcf\x9e\xd0\x9e\xd1\x9e\xd2\x9e\xd3\x9e\xd4\x9e\xd5\x9e\xd6\x9e\xd7\x9e\xd8\x9e\xd9\x4d\x81\x9e\xda\x9e\xdb\x63\x50\x9e\xdc\x9e\xdd\x9e\xde\x9e\xdf\x9e\xe0\x9e\xe1\x9e\xe2\x9e\xe3\x9e\xe4\x9e\xe5\x9e\xe6\x9e\xe7\x9e\xe8\x9e\xe9\x63\x51\x9e\xea\x9e\xeb\x9e\xec\x9e\xed\x9e\xee\x9e\xef\x9e\xf0\x9e\xf1\x9e\xf2\x9e\xf3\x9e\xf4\x9e\xf5\x4e\x91\x66\xe0\x52\x91\x9e\xf6\x4b\x66\x4e\x72\x9e\xf7\x9e\xf8\x9e\xf9\x9e\xfa\x51\x8a\x5a\xed\x9e\xfb\x4f\xc3\x9e\xfc\x9e\xfd\x9f\x41\x5c\x66\x9f\x42\x5a\xd5\x49\xd2", /* 7080 */ "\x66\xbd\x9f\x43\x9f\x44\x9f\x45\x9f\x46\x65\xc0\x9f\x47\x9f\x48\x9f\x49\x51\xae\x4a\xb5\x9f\x4a\x9f\x4b\x9f\x4c\x59\x77\x9f\x4d\x9f\x4e\x9f\x4f\x4a\x54\x9f\x50\x54\xb1\x50\x5b\x66\xbf\x9f\x51\x9f\x52\x5b\xca\x9f\x53\x9f\x54\x66\xbe\x66\xc0\x9f\x55\x9f\x56\x9f\x57\x9f\x58\x9f\x59\x9f\x5a\x9f\x5b\x9f\x5c\x9f\x5d\x9f\x5e\x9f\x5f\x9f\x60\x9f\x61\x66\xc4\x4f\xe5\x56\xbe\x53\x7a\x4f\xbb\x9f\x62\x66\xc5\x9f\x63\x49\x9f\x9f\x64\x9f\x65\x9f\x66\x66\xc3\x5b\x48\x4b\x84\x9f\x67\x66\xc1\x51\x56\x4a\x84\x9f\x68\x9f\x69\x66\xc2\x56\x58\x50\xc2\x56\xfd\x9f\x6a\x9f\x6b\x9f\x6c\x9f\x6d\x51\x72\x9f\x6e\x66\xc7\x9f\x6f\x9f\x70\x9f\x71\x9f\x72\x9f\x73\x9f\x74\x9f\x75\x9f\x76\x9f\x77\x9f\x78\x9f\x79\x9f\x7a\x9f\x7b\x4d\xe5\x50\xd2\x9f\x7c\x5b\xf1\x9f\x7d\x9f\x7e\x9f\x7f\x59\x6c\x9f\x81\x9f\x82\x9f\x83\x9f\x84\x50\x5e\x9f\x85\x4c\x53\x55\x75\x66\xc6\x4e\x83\x9f\x86\x56\xcb\x4f\x9e\x54\xc7\x9f\x87\x58\x49\x9f\x88\x9f\x89\x9f\x8a\x9f\x8b\x9f\x8c\x9f\x8d\x9f\x8e\x57\x8a\x9f\x8f\x53\x8c\x9f\x90\x9f\x91\x9f\x92\x4c\x8a\x9f\x93\x9f\x94", /* 7100 */ "\x9f\x95\x9f\x96\x9f\x97\x9f\x98\x9f\x99\x9f\x9a\x9f\x9b\x9f\x9c\x9f\x9d\x59\x69\x4d\xb7\x9f\x9e\x9f\x9f\x9f\xa0\x9f\xa1\x9f\xa2\x66\xc8\x9f\xa3\x9f\xa4\x66\xc9\x9f\xa5\x4e\x60\x66\xca\x9f\xa6\x66\xe1\x49\x5a\x4c\x79\x9f\xa7\x9f\xa8\x9f\xa9\x9f\xaa\x9f\xab\x9f\xac\x9f\xad\x9f\xae\x9f\xaf\x9f\xb0\x9f\xb1\x4f\x59\x9f\xb2\x9f\xb3\x9f\xb4\x9f\xb5\x9f\xb6\x9f\xb7\x9f\xb8\x9f\xb9\x66\xcb\x59\x87\x66\xcc\x9f\xba\x9f\xbb\x9f\xbc\x9f\xbd\x54\xba\x9f\xbe\x9f\xbf\x9f\xc0\x9f\xc1\x9f\xc2\x9f\xc3\x9f\xc4\x9f\xc5\x9f\xc6\x9f\xc7\x9f\xc8\x9f\xc9\x9f\xca\x9f\xcb\x66\xd0\x9f\xcc\x9f\xcd\x9f\xce\x9f\xcf\x66\xd2\x9f\xd0\x4e\x6d\x9f\xd1\x4e\xe4\x9f\xd2\x9f\xd3\x9f\xd4\x9f\xd5\x9f\xd6\x9f\xd7\x9f\xd8\x9f\xd9\x9f\xda\x9f\xdb\x9f\xdc\x9f\xdd\x9f\xde\x66\xce\x9f\xdf\x55\x57\x9f\xe0\x9f\xe1\x9f\xe2\x9f\xe3\x9f\xe4\x52\x5a\x9f\xe5\x66\xe2\x5b\x75\x66\xcf\x9f\xe6\x9f\xe7\x9f\xe8\x9f\xe9\x9f\xea\x5b\xf2\x9f\xeb\x9f\xec\x9f\xed\x66\xd1\x66\xcd\x9f\xee\x9f\xef\x9f\xf0\x9f\xf1\x66\xd3\x9f\xf2\x66\xd4\x9f\xf3\x9f\xf4\x55\x5f\x9f\xf5\x9f\xf6", /* 7180 */ "\x9f\xf7\x9f\xf8\x9f\xf9\x9f\xfa\x58\x48\x9f\xfb\x9f\xfc\x9f\xfd\xa0\x41\xa0\x42\x58\xdb\xa0\x43\xa0\x44\xa0\x45\xa0\x46\x59\x4c\xa0\x47\xa0\x48\xa0\x49\xa0\x4a\x54\xda\xa0\x4b\xa0\x4c\xa0\x4d\x66\xd5\x57\xf4\xa0\x4e\xa0\x4f\xa0\x50\xa0\x51\xa0\x52\x55\xeb\x66\xd9\xa0\x53\xa0\x54\xa0\x55\xa0\x56\xa0\x57\xa0\x58\xa0\x59\x66\xd8\xa0\x5a\xa0\x5b\xa0\x5c\x48\xbd\xa0\x5d\xa0\x5e\xa0\x5f\xa0\x60\xa0\x61\xa0\x62\x66\xd6\xa0\x63\x66\xd7\xa0\x64\xa0\x65\xa0\x66\x66\xe3\xa0\x67\xa0\x68\xa0\x69\xa0\x6a\xa0\x6b\xa0\x6c\xa0\x6d\xa0\x6e\xa0\x6f\x54\xbb\xa0\x70\xa0\x71\xa0\x72\xa0\x73\xa0\x74\xa0\x75\xa0\x76\xa0\x77\xa0\x78\xa0\x79\x51\x67\xa0\x7a\xa0\x7b\xa0\x7c\xa0\x7d\xa0\x7e\x66\xdb\x59\x81\xa0\x7f\xa0\x81\xa0\x82\xa0\x83\xa0\x84\xa0\x85\xa0\x86\xa0\x87\xa0\x88\xa0\x89\x66\xda\xa0\x8a\xa0\x8b\xa0\x8c\xa0\x8d\x5a\xee\xa0\x8e\x66\xdc\xa0\x8f\xa0\x90\xa0\x91\xa0\x92\xa0\x93\xa0\x94\x5e\x66\xa0\x95\xa0\x96\xa0\x97\xa0\x98\xa0\x99\xa0\x9a\xa0\x9b\xa0\x9c\xa0\x9d\xa0\x9e\x66\xdd\xa0\x9f\xa0\xa0\xa0\xa1\xa0\xa2\xa0\xa3\xa0\xa4", /* 7200 */ "\xa0\xa5\xa0\xa6\xa0\xa7\xa0\xa8\xa0\xa9\xa0\xaa\x49\x4c\xa0\xab\xa0\xac\xa0\xad\xa0\xae\xa0\xaf\xa0\xb0\xa0\xb1\xa0\xb2\xa0\xb3\xa0\xb4\xa0\xb5\xa0\xb6\xa0\xb7\xa0\xb8\xa0\xb9\xa0\xba\xa0\xbb\xa0\xbc\xa0\xbd\xa0\xbe\xa0\xbf\xa0\xc0\x66\xde\xa0\xc1\xa0\xc2\xa0\xc3\xa0\xc4\xa0\xc5\xa0\xc6\xa0\xc7\xa0\xc8\xa0\xc9\xa0\xca\x66\xdf\xa0\xcb\x5c\x46\xa0\xcc\x53\x60\xa0\xcd\xa0\xce\xa0\xcf\x66\x5c\x48\xad\xa0\xd0\xa0\xd1\xa0\xd2\x4f\xf3\x4c\xb7\x59\xae\x48\xd5\x4b\x9a\xa0\xd3\x5c\xb2\xa0\xd4\x56\x4c\xa0\xd5\x62\x7d\xa0\xd6\xa0\xd7\xa0\xd8\xa0\xd9\xa0\xda\xa0\xdb\xa0\xdc\x53\xab\x48\xe5\xa0\xdd\xa0\xde\xa0\xdf\x53\x66\x66\x59\xa0\xe0\xa0\xe1\xa0\xe2\xa0\xe3\x66\x5a\xa0\xe4\xa0\xe5\xa0\xe6\x66\x5b\xa0\xe7\xa0\xe8\x59\x60\xa0\xe9\x53\x43\xa0\xea\x65\xf1\xa0\xeb\x52\xb1\xa0\xec\x52\xb4\x50\xcd\xa0\xed\xa0\xee\xa0\xef\x65\xf2\x52\xc0\xa0\xf0\x57\xee\xa0\xf1\xa0\xf2\xa0\xf3\xa0\xf4\x65\xef\x65\xf3\xa0\xf5\xa0\xf6\x55\x9d\xa0\xf7\xa0\xf8\x54\x43\xa0\xf9\xa0\xfa\xa0\xfb\x56\xd7\x57\xfd\xa0\xfc\xa0\xfd\xa1\x41\x65\xf4\x65\xf5", /* 7280 */ "\x58\x4c\x50\xe6\xa1\x42\xa1\x43\x65\xf6\xa1\x44\xa1\x45\xa1\x46\xa1\x47\xa1\x48\x4b\xbe\x65\xf7\xa1\x49\x65\xf8\xa1\x4a\x65\xf9\xa1\x4b\xa1\x4c\x65\xfa\xa1\x4d\xa1\x4e\xa1\x4f\xa1\x50\xa1\x51\xa1\x52\xa1\x53\xa1\x54\xa1\x55\xa1\x56\xa1\x57\xa1\x58\x65\xf0\xa1\x59\xa1\x5a\xa1\x5b\xa1\x5c\xa1\x5d\xa1\x5e\xa1\x5f\xa1\x60\xa1\x61\xa1\x62\xa1\x63\xa1\x64\x54\xad\x61\x8c\xa1\x65\x4c\x58\x61\x8d\xa1\x66\xa1\x67\xa1\x68\x61\x8e\xa1\x69\x5c\x54\x61\x8f\x61\x90\x5a\x6c\xa1\x6a\xa1\x6b\xa1\x6c\xa1\x6d\xa1\x6e\xa1\x6f\xa1\x70\x61\x92\x50\x92\x61\x91\x4b\x72\xa1\x71\xa1\x72\xa1\x73\x49\x57\xa1\x74\xa1\x75\xa1\x76\xa1\x77\x61\x94\x61\x93\xa1\x78\x4d\xfb\xa1\x79\x61\x95\xa1\x7a\xa1\x7b\xa1\x7c\xa1\x7d\x4d\x57\xa1\x7e\x4f\xd0\xa1\x7f\xa1\x81\xa1\x82\xa1\x83\x52\xfb\xa1\x84\x4d\xdc\x4f\x66\xa1\x85\xa1\x86\xa1\x87\xa1\x88\xa1\x89\xa1\x8a\x61\x96\x61\x98\xa1\x8b\xa1\x8c\x4b\xbf\x58\x61\x55\xa7\x61\x97\x5b\x99\x5a\x9d\x61\x99\x61\x9d\x61\x9a\xa1\x8d\xa1\x8e\x61\x9b\x50\xe9\xa1\x8f\x61\x9f\x61\xa0\x50\xc6\xa1\x90\xa1\x91\xa1\x92", /* 7300 */ "\xa1\x93\x61\x9c\xa1\x94\x61\x9e\xa1\x95\xa1\x96\xa1\x97\xa1\x98\xa1\x99\xa1\x9a\x61\xa4\xa1\x9b\xa1\x9c\xa1\x9d\x51\x74\xa1\x9e\xa1\x9f\xa1\xa0\xa1\xa1\x61\xa2\xa1\xa2\x61\xa7\x49\xfd\x61\xa1\xa1\xa3\xa1\xa4\xa1\xa5\x52\x6d\x49\xc1\x61\xa6\x61\xa5\xa1\xa6\xa1\xa7\x61\xa3\x61\xa8\xa1\xa8\xa1\xa9\x61\xaa\xa1\xaa\xa1\xab\xa1\xac\x58\xc8\x5b\xec\x52\x48\x61\xab\xa1\xad\x58\x77\xa1\xae\xa1\xaf\x61\xad\xa1\xb0\xa1\xb1\x4d\xee\xa1\xb2\xa1\xb3\x65\x81\x61\xac\x61\xa9\xa1\xb4\xa1\xb5\xa1\xb6\xa1\xb7\x4e\x4b\x5a\xb2\xa1\xb8\xa1\xb9\xa1\xba\xa1\xbb\xa1\xbc\xa1\xbd\xa1\xbe\xa1\xbf\xa1\xc0\xa1\xc1\xa1\xc2\xa1\xc3\xa1\xc4\x61\xaf\xa1\xc5\xa1\xc6\x61\xae\xa1\xc7\x65\x82\xa1\xc8\xa1\xc9\xa1\xca\xa1\xcb\x61\xb0\xa1\xcc\xa1\xcd\xa1\xce\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xd2\xa1\xd3\x61\xb1\xa1\xd4\xa1\xd5\xa1\xd6\xa1\xd7\xa1\xd8\xa1\xd9\xa1\xda\xa1\xdb\xa1\xdc\xa1\xdd\xa1\xde\x61\xb2\x56\xa0\xa1\xdf\x61\xb3\xa1\xe0\xa1\xe1\xa1\xe2\xa1\xe3\xa1\xe4\xa1\xe5\xa1\xe6\xa1\xe7\xa1\xe8\xa1\xe9\xa1\xea\xa1\xeb\xa1\xec\xa1\xed\x61\xb4\xa1\xee", /* 7380 */ "\xa1\xef\xa1\xf0\xa1\xf1\xa1\xf2\x58\xfd\xa1\xf3\xa1\xf4\x51\xc9\xa1\xf5\x5a\x92\xa1\xf6\x57\x96\xa1\xf7\xa1\xf8\x64\x81\xa1\xf9\xa1\xfa\x64\x82\xa1\xfb\xa1\xfc\xa1\xfd\xa2\x41\x4f\xc0\xa2\x42\xa2\x43\xa2\x44\xa2\x45\x51\xe9\xa2\x46\xa2\x47\xa2\x48\x64\x85\xa2\x49\xa2\x4a\x64\x84\xa2\x4b\xa2\x4c\xa2\x4d\xa2\x4e\xa2\x4f\xa2\x50\x57\x87\xa2\x51\x52\x55\xa2\x52\xa2\x53\x64\x83\x4e\x57\x58\x76\xa2\x54\x51\x82\x64\x8a\xa2\x55\xa2\x56\xa2\x57\x64\x89\xa2\x58\xa2\x59\x64\x95\x49\xa2\xa2\x5a\xa2\x5b\xa2\x5c\xa2\x5d\x64\x8b\xa2\x5e\x64\x87\xa2\x5f\xa2\x60\xa2\x61\xa2\x62\xa2\x63\x64\x8d\x64\x8c\x55\x5a\xa2\x64\xa2\x65\x5b\x85\xa2\x66\x64\x86\x4c\x49\x64\x88\xa2\x67\xa2\x68\xa2\x69\xa2\x6a\xa2\x6b\xa2\x6c\xa2\x6d\x64\x8f\xa2\x6e\xa2\x6f\xa2\x70\xa2\x71\x64\x94\xa2\x72\x5b\xe8\xa2\x73\xa2\x74\xa2\x75\xa2\x76\x64\x8e\xa2\x77\x64\x93\xa2\x78\x64\x92\xa2\x79\xa2\x7a\xa2\x7b\x48\xdf\xa2\x7c\xa2\x7d\xa2\x7e\xa2\x7f\x64\x96\xa2\x81\xa2\x82\xa2\x83\xa2\x84\xa2\x85\xa2\x86\xa2\x87\xa2\x88\xa2\x89\xa2\x8a\xa2\x8b\xa2\x8c\xa2\x8d", /* 7400 */ "\xa2\x8e\xa2\x8f\xa2\x90\x54\x93\xa2\x91\x50\xc4\x50\xec\xa2\x92\xa2\x93\x51\x91\x64\x91\xa2\x94\xa2\x95\xa2\x96\xa2\x97\x64\x97\x56\x97\xa2\x98\xa2\x99\xa2\x9a\xa2\x9b\xa2\x9c\xa2\x9d\xa2\x9e\xa2\x9f\xa2\xa0\x64\xa1\x64\xa0\xa2\xa1\xa2\xa2\xa2\xa3\xa2\xa4\xa2\xa5\xa2\xa6\x5c\x61\xa2\xa7\xa2\xa8\x64\x9b\x64\x9a\xa2\xa9\x64\x9c\xa2\xaa\x64\x98\xa2\xab\x64\x9f\xa2\xac\x64\x9e\xa2\xad\x64\x9d\xa2\xae\xa2\xaf\x51\x75\x54\x79\x53\x9e\x53\x63\xa2\xb0\xa2\xb1\xa2\xb2\xa2\xb3\xa2\xb4\x54\x8e\xa2\xb5\xa2\xb6\xa2\xb7\xa2\xb8\x64\xa2\xa2\xb9\xa2\xba\xa2\xbb\xa2\xbc\xa2\xbd\xa2\xbe\xa2\xbf\xa2\xc0\xa2\xc1\xa2\xc2\xa2\xc3\xa2\xc4\xa2\xc5\xa2\xc6\xa2\xc7\xa2\xc8\xa2\xc9\xa2\xca\xa2\xcb\x64\xa5\xa2\xcc\x64\xa4\xa2\xcd\x64\xa6\x4d\xf6\x64\x99\x64\xa3\xa2\xce\x54\xef\x55\x4a\xa2\xcf\xa2\xd0\xa2\xd1\xa2\xd2\xa2\xd3\xa2\xd4\xa2\xd5\xa2\xd6\xa2\xd7\xa2\xd8\xa2\xd9\xa2\xda\xa2\xdb\x64\xa8\xa2\xdc\xa2\xdd\x4d\x86\xa2\xde\xa2\xdf\xa2\xe0\xa2\xe1\xa2\xe2\x59\x9f\x64\xa7\xa2\xe3\xa2\xe4\xa2\xe5\xa2\xe6\xa2\xe7\xa2\xe8\x64\xa9\xa2\xe9", /* 7480 */ "\x64\xac\x64\xad\xa2\xea\x51\x47\xa2\xeb\xa2\xec\xa2\xed\x64\xae\xa2\xee\xa2\xef\xa2\xf0\x64\xaf\xa2\xf1\xa2\xf2\x64\xab\xa2\xf3\x64\xb3\xa2\xf4\xa2\xf5\xa2\xf6\xa2\xf7\xa2\xf8\xa2\xf9\xa2\xfa\xa2\xfb\xa2\xfc\xa2\xfd\xa3\x41\x64\xaa\xa3\x42\x64\xb0\xa3\x43\xa3\x44\xa3\x45\xa3\x46\xa3\x47\xa3\x48\xa3\x49\xa3\x4a\x64\xb4\x64\xb1\x64\xb2\xa3\x4b\xa3\x4c\xa3\x4d\xa3\x4e\xa3\x4f\xa3\x50\xa3\x51\xa3\x52\xa3\x53\xa3\x54\xa3\x55\xa3\x56\xa3\x57\xa3\x58\xa3\x59\xa3\x5a\x64\xb6\xa3\x5b\xa3\x5c\xa3\x5d\xa3\x5e\xa3\x5f\xa3\x60\xa3\x61\xa3\x62\xa3\x63\xa3\x64\xa3\x65\xa3\x66\xa3\x67\xa3\x68\xa3\x69\xa3\x6a\xa3\x6b\xa3\x6c\xa3\x6d\xa3\x6e\xa3\x6f\xa3\x70\xa3\x71\x64\xb5\xa3\x72\xa3\x73\xa3\x74\xa3\x75\xa3\x76\xa3\x77\xa3\x78\xa3\x79\xa3\x7a\x4d\x6f\xa3\x7b\x68\xab\xa3\x7c\x68\xac\xa3\x7d\x53\xaf\x48\xe9\x54\xbe\xa3\x7e\x57\x7f\xa3\x7f\xa3\x81\xa3\x82\xa3\x83\xa3\x84\xa3\x85\xa3\x86\x57\xcc\x65\xb0\xa3\x87\xa3\x88\xa3\x89\xa3\x8a\x65\xb1\xa3\x8b\x53\xbe\x4a\xc8\xa3\x8c\xa3\x8d\xa3\x8e\xa3\x8f\xa3\x90\xa3\x91\xa3\x92\x65\xb2", /* 7500 */ "\xa3\x93\xa3\x94\xa3\x95\xa3\x96\x5b\x88\xa3\x97\xa3\x98\xa3\x99\xa3\x9a\xa3\x9b\xa3\x9c\xa3\x9d\xa3\x9e\x5f\x9a\xa3\x9f\x65\xb3\xa3\xa0\x65\xb4\xa3\xa1\x65\xb5\xa3\xa2\xa3\xa3\xa3\xa4\xa3\xa5\x4c\xc9\x60\x50\x55\x96\xa3\xa6\x56\xef\xa3\xa7\xa3\xa8\x55\x9b\xa3\xa9\xa3\xaa\xa3\xab\xa3\xac\xa3\xad\x55\x9c\xa3\xae\xa3\xaf\x5a\x63\x56\x46\xa3\xb0\x4c\xa5\x68\xad\x49\x62\xa3\xb1\x63\x58\x56\xee\x5a\x69\x4e\xd6\x55\x8b\xa3\xb2\x4b\x88\xa3\xb3\x52\xcf\x4b\x8a\xa3\xb4\x67\xad\x4e\x4d\xa3\xb5\xa3\xb6\x64\x7e\xa3\xb7\x67\xae\xa3\xb8\xa3\xb9\xa3\xba\xa3\xbb\x4a\x49\xa3\xbc\xa3\xbd\x67\xb1\xa3\xbe\xa3\xbf\x67\xb0\x4f\x88\xa3\xc0\x67\xaf\x57\xb6\xa3\xc1\xa3\xc2\xa3\xc3\xa3\xc4\x53\x6f\xa3\xc5\xa3\xc6\xa3\xc7\xa3\xc8\x51\x95\x5e\x6e\x67\xb2\x58\xf2\xa3\xc9\xa3\xca\xa3\xcb\xa3\xcc\xa3\xcd\xa3\xce\xa3\xcf\xa3\xd0\x51\xd3\x53\xe7\xa3\xd1\xa3\xd2\xa3\xd3\x4c\x4c\xa3\xd4\xa3\xd5\xa3\xd6\xa3\xd7\xa3\xd8\xa3\xd9\xa3\xda\x67\xb3\xa3\xdb\x4a\x8c\xa3\xdc\xa3\xdd\xa3\xde\x4e\x9c\x67\xb4\xa3\xdf\xa3\xe0\xa3\xe1\xa3\xe2\xa3\xe3\x64\x7c", /* 7580 */ "\xa3\xe4\xa3\xe5\xa3\xe6\x67\xb5\xa3\xe7\xa3\xe8\x4f\x4e\xa3\xe9\xa3\xea\xa3\xeb\xa3\xec\x69\x83\xa3\xed\xa3\xee\xa3\xef\x55\xe7\xa3\xf0\x59\xc8\x68\xd9\xa3\xf1\x68\xda\xa3\xf2\x68\xdb\x51\x66\xa3\xf3\x4c\xec\x4f\xcd\xa3\xf4\xa3\xf5\x68\xdd\xa3\xf6\x53\x51\x68\xdc\x59\x92\xa3\xf7\x68\xdf\x48\xcb\x4f\x8b\xa3\xf8\xa3\xf9\xa3\xfa\xa3\xfb\xa3\xfc\x59\xde\x68\xde\xa3\xfd\x4a\xae\x4c\x89\x68\xe5\x68\xe4\x53\xa2\x68\xe0\x68\xe1\x4a\xc2\xa4\x41\xa4\x42\x68\xe2\x5b\x8f\xa4\x43\xa4\x44\x56\xda\x4f\xd1\x4e\xb1\xa4\x45\xa4\x46\xa4\x47\x68\xe7\x68\xe6\x68\xe3\x49\xa0\xa4\x48\x5b\xa1\x5a\x58\x4f\xb6\x54\xab\xa4\x49\xa4\x4a\x68\xe9\xa4\x4b\xa4\x4c\xa4\x4d\xa4\x4e\x59\x98\xa4\x4f\x5b\xcb\x4d\xda\x68\xe8\xa4\x50\x4b\xba\xa4\x51\xa4\x52\x57\x54\xa4\x53\xa4\x54\x53\xa5\xa4\x55\xa4\x56\xa4\x57\x51\x41\x68\xea\x68\xed\xa4\x58\x68\xec\x68\xef\x68\xeb\xa4\x59\x4e\x5e\x68\xee\xa4\x5a\xa4\x5b\xa4\x5c\xa4\x5d\x56\xb4\x68\xf1\xa4\x5e\xa4\x5f\x4a\x75\xa4\x60\xa4\x61\xa4\x62\xa4\x63\x49\x74\xa4\x64\xa4\x65\x68\xf2\xa4\x66\xa4\x67\x68\xf3", /* 7600 */ "\x68\xf5\x4a\xe0\xa4\x68\x68\xf0\xa4\x69\x68\xf6\xa4\x6a\xa4\x6b\xa4\x6c\xa4\x6d\x68\xf9\xa4\x6e\x68\xf7\xa4\x6f\xa4\x70\xa4\x71\x68\xf4\xa4\x72\xa4\x73\xa4\x74\xa4\x75\x68\xfc\xa4\x76\x68\xf8\x68\xfb\x68\xfd\xa4\x77\x69\x41\xa4\x78\xa4\x79\xa4\x7a\x57\xc0\x69\x44\xa4\x7b\x69\x43\xa4\x7c\x51\x97\x68\xfa\x55\xdc\xa4\x7d\xa4\x7e\x4a\xf0\x49\x92\x56\xb0\xa4\x7f\x69\x46\xa4\x81\xa4\x82\x69\x47\xa4\x83\xa4\x84\x69\x4c\x5b\x6e\x69\x49\xa4\x85\xa4\x86\x54\xb2\xa4\x87\xa4\x88\xa4\x89\x69\x42\xa4\x8a\x69\x4b\x69\x48\x69\x45\xa4\x8b\xa4\x8c\x69\x4a\xa4\x8d\xa4\x8e\xa4\x8f\xa4\x90\xa4\x91\xa4\x92\xa4\x93\xa4\x94\x48\xa8\x69\x4d\xa4\x95\xa4\x96\xa4\x97\xa4\x98\xa4\x99\xa4\x9a\x69\x4f\xa4\x9b\x69\x51\xa4\x9c\xa4\x9d\xa4\x9e\xa4\x9f\xa4\xa0\x69\x50\xa4\xa1\x69\x4e\xa4\xa2\xa4\xa3\xa4\xa4\xa4\xa5\x59\x42\xa4\xa6\xa4\xa7\xa4\xa8\xa4\xa9\xa4\xaa\xa4\xab\xa4\xac\x69\x52\xa4\xad\xa4\xae\xa4\xaf\x69\x53\xa4\xb0\xa4\xb1\xa4\xb2\xa4\xb3\xa4\xb4\xa4\xb5\xa4\xb6\xa4\xb7\x4d\x90\xa4\xb8\xa4\xb9\x4b\x67\xa4\xba\x48\xd6\x48\xd8\xa4\xbb", /* 7680 */ "\xa4\xbc\xa4\xbd\x5a\xec\xa4\xbe\x4b\x64\xa4\xbf\x4f\x74\x4e\x6a\x68\xa6\xa4\xc0\xa4\xc1\x4c\xdd\xa4\xc2\xa4\xc3\x68\xa7\xa4\xc4\xa4\xc5\x48\xa7\xa4\xc6\x68\xa8\xa4\xc7\xa4\xc8\x57\x8f\xa4\xc9\xa4\xca\x68\xa9\xa4\xcb\xa4\xcc\xa4\xcd\xa4\xce\xa4\xcf\xa4\xd0\xa4\xd1\xa4\xd2\xa4\xd3\xa4\xd4\x68\xaa\xa4\xd5\xa4\xd6\xa4\xd7\xa4\xd8\xa4\xd9\xa4\xda\xa4\xdb\xa4\xdc\xa4\xdd\x53\xa3\xa4\xde\xa4\xdf\x5b\xe4\x69\x85\xa4\xe0\x69\x86\xa4\xe1\xa4\xe2\xa4\xe3\xa4\xe4\xa4\xe5\xa4\xe6\xa4\xe7\xa4\xe8\xa4\xe9\xa4\xea\x52\x94\xa4\xeb\xa4\xec\x5a\x7b\xa4\xed\xa4\xee\x5b\xd0\x53\x89\xa4\xef\x5a\x4f\xa4\xf0\x59\xe5\xa4\xf1\xa4\xf2\x67\xc0\x48\xba\x5b\x55\x59\x6e\x4e\xdf\x4d\xcf\xa4\xf3\x50\x99\xa4\xf4\x4c\xc6\x4b\x61\x53\x6c\xa4\xf5\xa4\xf6\x55\xa1\xa4\xf7\xa4\xf8\xa4\xf9\x52\x6b\xa4\xfa\xa4\xfb\xa4\xfc\xa4\xfd\xa5\x41\x67\xc1\xa5\x42\xa5\x43\xa5\x44\xa5\x45\xa5\x46\xa5\x47\xa5\x48\xa5\x49\x52\xbe\x4b\xa1\xa5\x4a\x67\x8d\x52\x44\xa5\x4b\x5b\xb0\xa5\x4c\xa5\x4d\xa5\x4e\x58\x81\x67\x90\xa5\x4f\xa5\x50\x53\x6e\xa5\x51\x4b\xdb\xa5\x52", /* 7700 */ "\xa5\x53\x55\xa0\xa5\x54\xa5\x55\x67\x8e\xa5\x56\xa5\x57\x67\x91\x67\x92\x52\x5c\xa5\x58\x50\x54\xa5\x59\x67\x8f\xa5\x5a\xa5\x5b\xa5\x5c\xa5\x5d\xa5\x5e\xa5\x5f\xa5\x60\xa5\x61\xa5\x62\xa5\x63\xa5\x64\x67\x95\x67\x93\xa5\x65\xa5\x66\xa5\x67\xa5\x68\x5b\x87\x52\x7f\xa5\x69\x67\x94\xa5\x6a\xa5\x6b\xa5\x6c\x67\x97\xa5\x6d\x5b\x43\x59\x43\xa5\x6e\xa5\x6f\xa5\x70\x67\x96\xa5\x71\x52\x70\xa5\x72\xa5\x73\xa5\x74\xa5\x75\xa5\x76\x67\x98\x50\x95\x4f\xeb\x67\x99\xa5\x77\x56\xf6\xa5\x78\x59\x7b\xa5\x79\xa5\x7a\xa5\x7b\x5c\x65\x5b\x97\xa5\x7c\x67\x9d\xa5\x7d\xa5\x7e\xa5\x7f\x67\x9c\xa5\x81\xa5\x82\xa5\x83\xa5\x84\xa5\x85\xa5\x86\xa5\x87\xa5\x88\x67\x9a\x67\x9b\xa5\x89\xa5\x8a\xa5\x8b\xa5\x8c\xa5\x8d\xa5\x8e\xa5\x8f\xa5\x90\x67\x9e\x4f\xa5\xa5\x91\xa5\x92\xa5\x93\xa5\x94\xa5\x95\x56\x4f\x67\xa0\x4b\xbc\xa5\x96\x67\xa1\x52\xbf\xa5\x97\x67\x9f\xa5\x98\xa5\x99\x4f\x7e\x49\xc6\xa5\x9a\xa5\x9b\xa5\x9c\xa5\x9d\xa5\x9e\xa5\x9f\xa5\xa0\xa5\xa1\xa5\xa2\xa5\xa3\xa5\xa4\xa5\xa5\x4b\xc2\xa5\xa6\xa5\xa7\xa5\xa8\x67\xa4\x5c\xb9\x67\xa2", /* 7780 */ "\x67\xa5\xa5\xa9\xa5\xaa\xa5\xab\x52\x8a\x4a\x93\xa5\xac\xa5\xad\xa5\xae\xa5\xaf\xa5\xb0\xa5\xb1\x67\xa6\x67\xa3\x58\x59\xa5\xb2\xa5\xb3\x67\xa7\x51\xf6\xa5\xb4\xa5\xb5\xa5\xb6\xa5\xb7\xa5\xb8\xa5\xb9\xa5\xba\xa5\xbb\xa5\xbc\xa5\xbd\xa5\xbe\xa5\xbf\x67\xa8\x67\xa9\xa5\xc0\x5f\xaa\xa5\xc1\xa5\xc2\x53\xb2\xa5\xc3\x54\x66\xa5\xc4\x5b\xf4\x4b\x69\xa5\xc5\x56\x52\xa5\xc6\xa5\xc7\xa5\xc8\x67\xaa\xa5\xc9\xa5\xca\x57\x4b\xa5\xcb\x67\xab\xa5\xcc\xa5\xcd\xa5\xce\xa5\xcf\xa5\xd0\x5b\x50\xa5\xd1\x67\xac\xa5\xd2\x6b\xc3\xa5\xd3\xa5\xd4\xa5\xd5\xa5\xd6\xa5\xd7\xa5\xd8\xa5\xd9\xa5\xda\xa5\xdb\xa5\xdc\xa5\xdd\xa5\xde\xa5\xdf\x5e\x67\xa5\xe0\xa5\xe1\xa5\xe2\xa5\xe3\xa5\xe4\xa5\xe5\xa5\xe6\xa5\xe7\xa5\xe8\x4a\xa2\xa5\xe9\xa5\xea\xa5\xeb\x52\x4c\x69\x87\xa5\xec\xa5\xed\xa5\xee\xa5\xef\xa5\xf0\x55\xb7\x59\xd2\xa5\xf1\x5b\xa9\xa5\xf2\x68\x93\xa5\xf3\x4f\xd7\xa5\xf4\x4f\x63\x68\x94\x4b\xcb\x48\xaa\xa5\xf5\xa5\xf6\xa5\xf7\xa5\xf8\x55\xae\xa5\xf9\xa5\xfa\x67\x56\xa5\xfb\x67\x57\xa5\xfc\xa5\xfd\xa6\x41\xa6\x42\x57\xf8\x4c\x4f\x50\x94", /* 7800 */ "\x67\x58\x51\xea\x55\x50\xa6\x43\xa6\x44\xa6\x45\xa6\x46\xa6\x47\xa6\x48\x67\x59\xa6\x49\xa6\x4a\x53\xf5\x50\x53\xa6\x4b\xa6\x4c\xa6\x4d\x67\x5c\x53\x99\xa6\x4e\x59\x70\xa6\x4f\x5c\x49\x67\x5a\x67\x5b\xa6\x50\x59\x83\xa6\x51\x67\x5f\x67\x60\xa6\x52\x67\x64\xa6\x53\xa6\x54\xa6\x55\x67\x68\xa6\x56\x67\x66\x67\x6e\x5b\x89\xa6\x57\x67\x69\xa6\x58\xa6\x59\x67\x67\x67\x5e\xa6\x5a\xa6\x5b\x53\x8a\xa6\x5c\xa6\x5d\xa6\x5e\x53\xc5\xa6\x5f\xa6\x60\x55\x8a\x5a\xd1\x67\x61\x67\x62\x67\x63\x67\x65\xa6\x61\x50\xf8\xa6\x62\x4a\xa0\xa6\x63\xa6\x64\xa6\x65\xa6\x66\x4d\x89\xa6\x67\x67\x70\xa6\x68\xa6\x69\xa6\x6a\xa6\x6b\x67\x71\xa6\x6c\x67\x6a\xa6\x6d\x67\x6f\xa6\x6e\x57\xf7\xa6\x6f\xa6\x70\x56\x56\x67\x6c\x67\x6d\xa6\x71\xa6\x72\xa6\x73\xa6\x74\xa6\x75\x58\x96\xa6\x76\xa6\x77\xa6\x78\xa6\x79\xa6\x7a\xa6\x7b\xa6\x7c\xa6\x7d\xa6\x7e\xa6\x7f\xa6\x81\xa6\x82\x67\x72\x51\x93\x5a\x52\x67\x6b\x54\xb6\xa6\x83\xa6\x84\xa6\x85\xa6\x86\xa6\x87\xa6\x88\xa6\x89\xa6\x8a\x4e\xee\xa6\x8b\xa6\x8c\xa6\x8d\xa6\x8e\x53\x91\xa6\x8f\xa6\x90\xa6\x91", /* 7880 */ "\xa6\x92\xa6\x93\xa6\x94\xa6\x95\xa6\x96\xa6\x97\xa6\x98\x67\x76\xa6\x99\x4b\x90\xa6\x9a\xa6\x9b\x51\xb4\x48\xac\x56\x8a\xa6\x9c\xa6\x9d\x49\x4e\xa6\x9e\x67\x74\xa6\x9f\xa6\xa0\xa6\xa1\x57\x8c\x4b\x83\xa6\xa2\x67\x75\x67\x73\x67\x77\xa6\xa3\xa6\xa4\x4b\x9b\xa6\xa5\x67\x78\xa6\xa6\x67\x79\xa6\xa7\x67\x7c\xa6\xa8\x49\x6c\xa6\xa9\xa6\xaa\xa6\xab\xa6\xac\xa6\xad\xa6\xae\xa6\xaf\xa6\xb0\x53\x97\x4e\xed\x67\x7a\x56\xbb\x49\xe9\xa6\xb1\xa6\xb2\xa6\xb3\xa6\xb4\x67\x7b\xa6\xb5\xa6\xb6\xa6\xb7\xa6\xb8\x52\xea\xa6\xb9\xa6\xba\x4a\xc4\xa6\xbb\xa6\xbc\xa6\xbd\x48\xf4\xa6\xbe\xa6\xbf\xa6\xc0\x67\x7f\x50\xd9\x4a\xe7\xa6\xc1\xa6\xc2\xa6\xc3\xa6\xc4\x53\x6d\xa6\xc5\xa6\xc6\xa6\xc7\x67\x7d\x50\x64\xa6\xc8\xa6\xc9\xa6\xca\x67\x7e\xa6\xcb\xa6\xcc\xa6\xcd\xa6\xce\xa6\xcf\xa6\xd0\xa6\xd1\xa6\xd2\xa6\xd3\xa6\xd4\xa6\xd5\xa6\xd6\xa6\xd7\xa6\xd8\x52\xa4\xa6\xd9\xa6\xda\xa6\xdb\x67\x81\xa6\xdc\xa6\xdd\xa6\xde\xa6\xdf\xa6\xe0\x67\x82\xa6\xe1\x67\x84\xa6\xe2\xa6\xe3\x51\x77\xa6\xe4\xa6\xe5\x4e\x67\xa6\xe6\xa6\xe7\xa6\xe8\xa6\xe9\xa6\xea", /* 7900 */ "\xa6\xeb\x4f\x58\xa6\xec\xa6\xed\xa6\xee\x67\x83\xa6\xef\xa6\xf0\xa6\xf1\xa6\xf2\xa6\xf3\xa6\xf4\xa6\xf5\xa6\xf6\xa6\xf7\xa6\xf8\xa6\xf9\xa6\xfa\xa6\xfb\x67\x85\xa6\xfc\xa6\xfd\xa7\x41\xa7\x42\xa7\x43\xa7\x44\xa7\x45\xa7\x46\xa7\x47\xa7\x48\x67\x87\xa7\x49\xa7\x4a\xa7\x4b\xa7\x4c\xa7\x4d\x67\x86\xa7\x4e\xa7\x4f\xa7\x50\xa7\x51\xa7\x52\xa7\x53\xa7\x54\xa7\x55\xa7\x56\xa7\x57\xa7\x58\xa7\x59\xa7\x5a\xa7\x5b\xa7\x5c\x67\x88\xa7\x5d\xa7\x5e\xa7\x5f\xa7\x60\xa7\x61\x55\xbd\x66\xe9\x50\xf0\xa7\x62\x55\x88\xa7\x63\x66\xea\x53\xed\xa7\x64\xa7\x65\xa7\x66\xa7\x67\x66\xeb\xa7\x68\x53\xec\x66\xec\xa7\x69\xa7\x6a\xa7\x6b\xa7\x6c\xa7\x6d\xa7\x6e\xa7\x6f\xa7\x70\xa7\x71\x66\xef\xa7\x72\xa7\x73\x5c\x87\x66\xf2\xa7\x74\xa7\x75\x66\xf0\x66\xed\x66\xee\x5c\x43\x55\x92\x56\x8f\x66\xf3\xa7\x76\x66\xf1\xa7\x77\xa7\x78\x58\x8a\xa7\x79\x66\xf5\x53\xb0\xa7\x7a\xa7\x7b\xa7\x7c\xa7\x7d\x4e\xbf\xa7\x7e\x66\xf4\xa7\x7f\xa7\x81\xa7\x82\xa7\x83\xa7\x84\xa7\x85\xa7\x86\x4b\x5b\x4e\x97\xa7\x87\x66\xf6\xa7\x88\xa7\x89\xa7\x8a\xa7\x8b\xa7\x8c", /* 7980 */ "\x5d\x98\x4f\x9c\xa7\x8d\xa7\x8e\x51\xba\x66\xf7\xa7\x8f\xa7\x90\xa7\x91\xa7\x92\x66\xf8\xa7\x93\xa7\x94\xa7\x95\xa7\x96\x4c\xa2\xa7\x97\xa7\x98\xa7\x99\xa7\x9a\xa7\x9b\xa7\x9c\xa7\x9d\xa7\x9e\xa7\x9f\xa7\xa0\x66\xf9\xa7\xa1\xa7\xa2\xa7\xa3\xa7\xa4\xa7\xa5\xa7\xa6\xa7\xa7\xa7\xa8\xa7\xa9\xa7\xaa\xa7\xab\xa7\xac\x66\xfa\xa7\xad\xa7\xae\xa7\xaf\xa7\xb0\xa7\xb1\xa7\xb2\xa7\xb3\xa7\xb4\xa7\xb5\xa7\xb6\xa7\xb7\x66\xfb\xa7\xb8\xa7\xb9\xa7\xba\xa7\xbb\xa7\xbc\x5a\x8e\x5c\xad\x50\xea\xa7\xbd\x54\x7d\x4d\xcb\xa7\xbe\x58\xe2\x56\x5d\xa7\xbf\x57\x5a\xa7\xc0\xa7\xc1\x4c\xd0\xa7\xc2\xa7\xc3\x49\x9d\xa7\xc4\x54\x90\xa7\xc5\x5b\xd5\xa7\xc6\xa7\xc7\xa7\xc8\x50\x66\x52\x8c\xa7\xc9\xa7\xca\x68\x96\xa7\xcb\xa7\xcc\x52\x78\xa7\xcd\xa7\xce\xa7\xcf\xa7\xd0\xa7\xd1\xa7\xd2\x5c\x83\xa7\xd3\xa7\xd4\xa7\xd5\x68\x98\x4a\x73\xa7\xd6\x54\x78\x59\x8e\xa7\xd7\x5b\xc7\xa7\xd8\x68\x99\xa7\xd9\x68\x97\xa7\xda\x4e\x9e\x4a\x66\xa7\xdb\xa7\xdc\xa7\xdd\xa7\xde\xa7\xdf\xa7\xe0\xa7\xe1\x4f\x75\xa7\xe2\xa7\xe3\x59\xc5\xa7\xe4\x4e\x81\xa7\xe5\xa7\xe6", /* 7a00 */ "\x58\x41\xa7\xe7\x68\x9d\x68\x9c\xa7\xe8\xa7\xe9\x68\x9a\xa7\xea\xa7\xeb\xa7\xec\xa7\xed\x4a\x6c\xa7\xee\x55\x74\x56\x50\xa7\xef\xa7\xf0\xa7\xf1\xa7\xf2\xa7\xf3\x68\x9f\xa7\xf4\xa7\xf5\x48\xdd\xa7\xf6\xa7\xf7\x5b\xc8\xa7\xf8\xa7\xf9\xa7\xfa\x68\x9e\xa7\xfb\x4a\x8e\xa7\xfc\xa7\xfd\x6b\xd4\xa8\x41\xa8\x42\xa8\x43\xa8\x44\xa8\x45\xa8\x46\xa8\x47\xa8\x48\xa8\x49\xa8\x4a\xa8\x4b\xa8\x4c\xa8\x4d\xa8\x4e\xa8\x4f\x57\xc7\xa8\x50\xa8\x51\xa8\x52\x68\xa1\xa8\x53\x68\xa0\xa8\x54\x4b\x5e\x4e\xd9\x4e\x9d\xa8\x55\x4c\xe4\xa8\x56\xa8\x57\xa8\x58\xa8\x59\xa8\x5a\xa8\x5b\x52\xc1\xa8\x5c\xa8\x5d\xa8\x5e\xa8\x5f\xa8\x60\xa8\x61\xa8\x62\xa8\x63\xa8\x64\xa8\x65\x68\xa2\xa8\x66\xa8\x67\xa8\x68\xa8\x69\xa8\x6a\x56\x8c\xa8\x6b\xa8\x6c\xa8\x6d\xa8\x6e\xa8\x6f\xa8\x70\xa8\x71\xa8\x72\xa8\x73\xa8\x74\xa8\x75\xa8\x76\xa8\x77\xa8\x78\xa8\x79\xa8\x7a\xa8\x7b\xa8\x7c\xa8\x7d\xa8\x7e\xa8\x7f\xa8\x81\xa8\x82\xa8\x83\x68\xa5\xa8\x84\xa8\x85\xa8\x86\x59\x48\xa8\x87\x4f\xbe\x54\x8f\x69\x56\x69\x57\x50\x75\xa8\x88\xa8\x89\xa8\x8a\xa8\x8b\x4a\xa8", /* 7a80 */ "\x69\x58\x57\x5b\xa8\x8c\x54\x74\x5b\x4d\xa8\x8d\x69\x59\xa8\x8e\x69\x5a\xa8\x8f\xa8\x90\xa8\x91\xa8\x92\x54\x6f\xa8\x93\xa8\x94\xa8\x95\x59\xa3\x5b\xce\xa8\x96\xa8\x97\x69\x5b\x4f\x71\x4a\xaf\x4f\xbc\xa8\x98\xa8\x99\xa8\x9a\x4a\xdb\x57\xd0\xa8\x9b\x50\x7f\x69\x5d\xa8\x9c\xa8\x9d\xa8\x9e\xa8\x9f\x50\x9b\x69\x5c\xa8\xa0\x69\x5f\xa8\xa1\xa8\xa2\xa8\xa3\x69\x5e\x69\x60\xa8\xa4\xa8\xa5\xa8\xa6\xa8\xa7\xa8\xa8\x69\x61\xa8\xa9\xa8\xaa\xa8\xab\xa8\xac\xa8\xad\xa8\xae\xa8\xaf\xa8\xb0\xa8\xb1\xa8\xb2\xa8\xb3\x51\x9f\xa8\xb4\xa8\xb5\xa8\xb6\xa8\xb7\xa8\xb8\xa8\xb9\xa8\xba\xa8\xbb\xa8\xbc\xa8\xbd\xa8\xbe\x51\x42\xa8\xbf\xa8\xc0\xa8\xc1\xa8\xc2\xa8\xc3\xa8\xc4\xa8\xc5\xa8\xc6\xa8\xc7\xa8\xc8\x55\xf9\xa8\xc9\xa8\xca\x5b\x5e\xa8\xcb\xa8\xcc\xa8\xcd\xa8\xce\x4f\xb9\x4f\xb8\x5b\x62\xa8\xcf\xa8\xd0\x50\x42\xa8\xd1\x57\x4f\x69\x55\xa8\xd2\xa8\xd3\xa8\xd4\xa8\xd5\xa8\xd6\xa8\xd7\x4f\x7f\xa8\xd8\x4b\xca\xa8\xd9\xa8\xda\xa8\xdb\xa8\xdc\xa8\xdd\xa8\xde\xa8\xdf\xa8\xe0\xa8\xe1\x5b\xf0\x6a\x63\xa8\xe2\xa8\xe3\x6a\x64\xa8\xe4\x4c\xcc", /* 7b00 */ "\xa8\xe5\xa8\xe6\xa8\xe7\x6a\x66\x6a\x67\xa8\xe8\x48\xc9\xa8\xe9\x6a\x65\xa8\xea\x6a\x69\x56\x92\xa8\xeb\xa8\xec\xa8\xed\x6a\x6b\xa8\xee\x58\xa5\xa8\xef\xa8\xf0\x49\x6a\x6a\x68\xa8\xf1\xa8\xf2\xa8\xf3\x6a\x6f\xa8\xf4\x4b\x71\xa8\xf5\xa8\xf6\x6a\x77\xa8\xf7\x6a\x72\xa8\xf8\xa8\xf9\xa8\xfa\x6a\x74\x6a\x73\x4c\x9c\xa8\xfb\x49\x5f\xa8\xfc\x6a\x6e\x6a\x6a\x4b\x7a\xa8\xfd\x6a\x70\xa9\x41\xa9\x42\x6a\x71\xa9\x43\x6a\x75\xa9\x44\xa9\x45\xa9\x46\xa9\x47\x6a\x6d\xa9\x48\x4e\xe2\xa9\x49\x51\x9e\xa9\x4a\x6a\x76\xa9\x4b\xa9\x4c\xa9\x4d\xa9\x4e\xa9\x4f\xa9\x50\x6a\x7a\xa9\x51\x6a\x6c\xa9\x52\x4b\x68\xa9\x53\x4f\x8f\x6a\x7c\xa9\x54\xa9\x55\x4c\x44\x50\x91\x5b\xfd\x57\x52\xa9\x56\x4a\xef\xa9\x57\x49\xde\xa9\x58\x6a\x78\xa9\x59\x6a\x79\x55\x58\xa9\x5a\x6a\x7d\xa9\x5b\xa9\x5c\x6a\x7e\xa9\x5d\x6a\x82\xa9\x5e\xa9\x5f\xa9\x60\xa9\x61\xa9\x62\xa9\x63\xa9\x64\xa9\x65\xa9\x66\xa9\x67\xa9\x68\x6a\x7f\xa9\x69\xa9\x6a\x6a\x84\x6a\x83\xa9\x6b\xa9\x6c\x6a\x7b\xa9\x6d\x50\x8b\xa9\x6e\x4a\x90\xa9\x6f\x6a\x81\xa9\x70\xa9\x71\x54\x49\xa9\x72", /* 7b80 */ "\x4e\xf1\xa9\x73\xa9\x74\xa9\x75\xa9\x76\x6a\x8c\xa9\x77\xa9\x78\xa9\x79\xa9\x7a\xa9\x7b\xa9\x7c\xa9\x7d\x4d\x5f\xa9\x7e\xa9\x7f\x6a\x85\xa9\x81\xa9\x82\xa9\x83\x49\xac\x4e\x9f\xa9\x84\x56\x84\xa9\x85\xa9\x86\xa9\x87\xa9\x88\x6a\x8e\x6a\x8a\xa9\x89\xa9\x8a\xa9\x8b\x4d\x7c\x6a\x8f\xa9\x8c\xa9\x8d\xa9\x8e\x6a\x86\x6a\x87\x6a\x8b\x51\xe0\x6a\x8d\x6a\x90\x6a\x89\x4e\xfc\xa9\x8f\xa9\x90\xa9\x91\x58\x85\xa9\x92\xa9\x93\x6a\x91\xa9\x94\xa9\x95\xa9\x96\x6a\x88\xa9\x97\xa9\x98\xa9\x99\xa9\x9a\xa9\x9b\xa9\x9c\xa9\x9d\xa9\x9e\x6a\x93\xa9\x9f\xa9\xa0\xa9\xa1\xa9\xa2\x5c\x4d\x53\xa9\xa9\xa3\xa9\xa4\xa9\xa5\xa9\xa6\x6a\x94\xa9\xa7\xa9\xa8\xa9\xa9\xa9\xaa\x6a\x92\xa9\xab\x51\xa7\xa9\xac\xa9\xad\xa9\xae\xa9\xaf\xa9\xb0\x4c\xdc\x6a\x96\xa9\xb1\xa9\xb2\x6a\x95\xa9\xb3\xa9\xb4\xa9\xb5\x4a\xda\xa9\xb6\xa9\xb7\xa9\xb8\x6a\x97\x6a\x98\xa9\xb9\xa9\xba\xa9\xbb\x6a\x99\xa9\xbc\xa9\xbd\xa9\xbe\x50\xb9\xa9\xbf\xa9\xc0\x50\xe8\xa9\xc1\xa9\xc2\xa9\xc3\xa9\xc4\xa9\xc5\x53\x92\xa9\xc6\xa9\xc7\xa9\xc8\xa9\xc9\x6a\x9c\xa9\xca\x6a\x9b\xa9\xcb", /* 7c00 */ "\xa9\xcc\xa9\xcd\xa9\xce\xa9\xcf\xa9\xd0\xa9\xd1\xa9\xd2\x4a\xd7\xa9\xd3\xa9\xd4\xa9\xd5\x6a\x9f\x6a\x9a\xa9\xd6\xa9\xd7\x6a\x9d\xa9\xd8\xa9\xd9\xa9\xda\xa9\xdb\xa9\xdc\xa9\xdd\x6a\x9e\xa9\xde\xa9\xdf\xa9\xe0\xa9\xe1\xa9\xe2\xa9\xe3\xa9\xe4\xa9\xe5\x6a\xa0\xa9\xe6\xa9\xe7\xa9\xe8\xa9\xe9\xa9\xea\xa9\xeb\x6a\xa2\x4e\x69\xa9\xec\xa9\xed\x6a\xa1\xa9\xee\xa9\xef\xa9\xf0\xa9\xf1\xa9\xf2\xa9\xf3\xa9\xf4\xa9\xf5\xa9\xf6\xa9\xf7\xa9\xf8\xa9\xf9\xa9\xfa\x6a\xa3\xa9\xfb\xa9\xfc\xa9\xfd\xaa\x41\xaa\x42\xaa\x43\x49\xbd\x6a\xa5\x6a\xa4\xaa\x44\xaa\x45\xaa\x46\xaa\x47\xaa\x48\xaa\x49\xaa\x4a\xaa\x4b\xaa\x4c\xaa\x4d\xaa\x4e\x4e\xad\xaa\x4f\xaa\x50\xaa\x51\xaa\x52\xaa\x53\xaa\x54\xaa\x55\xaa\x56\xaa\x57\xaa\x58\xaa\x59\xaa\x5a\xaa\x5b\xaa\x5c\xaa\x5d\xaa\x5e\xaa\x5f\xaa\x60\xaa\x61\xaa\x62\xaa\x63\xaa\x64\xaa\x65\xaa\x66\xaa\x67\xaa\x68\xaa\x69\xaa\x6a\xaa\x6b\xaa\x6c\xaa\x6d\xaa\x6e\xaa\x6f\xaa\x70\xaa\x71\xaa\x72\xaa\x73\x52\x77\x5d\x82\xaa\x74\xaa\x75\xaa\x76\xaa\x77\xaa\x78\xaa\x79\x50\xdf\x6a\xcb\x5c\x71\xaa\x7a\xaa\x7b", /* 7c80 */ "\xaa\x7c\xaa\x7d\xaa\x7e\xaa\x7f\xaa\x81\xaa\x82\xaa\x83\xaa\x84\xaa\x85\x4c\x7b\xaa\x86\xaa\x87\xaa\x88\xaa\x89\xaa\x8a\xaa\x8b\xaa\x8c\x6a\xcd\x51\x43\xaa\x8d\xaa\x8e\x53\xc8\xaa\x8f\x4a\xd5\x5b\x53\xaa\x90\xaa\x91\xaa\x92\x6a\xcf\x6a\xce\x6a\xd0\x56\x7a\xaa\x93\xaa\x94\x6a\xd1\xaa\x95\x5a\xc0\x5b\xdf\xaa\x96\xaa\x97\xaa\x98\xaa\x99\x4c\x81\xaa\x9a\xaa\x9b\xaa\x9c\x51\x58\xaa\x9d\xaa\x9e\x51\x5b\x6a\xd2\x4f\xab\xaa\x9f\xaa\xa0\xaa\xa1\xaa\xa2\xaa\xa3\x4a\xe1\xaa\xa4\xaa\xa5\x6a\xd3\x6a\xd4\x4f\xaa\xaa\xa6\xaa\xa7\x6a\xd5\xaa\xa8\xaa\xa9\xaa\xaa\x6a\xda\xaa\xab\x6a\xd6\x6a\xd9\xaa\xac\x4d\xfc\xaa\xad\x6a\xd7\x6a\xd8\xaa\xae\xaa\xaf\xaa\xb0\xaa\xb1\xaa\xb2\xaa\xb3\xaa\xb4\x4c\xe1\x56\xc6\x6a\xdb\xaa\xb5\x49\xd9\xaa\xb6\xaa\xb7\x52\x73\xaa\xb8\xaa\xb9\x5a\xe2\x50\x57\xaa\xba\xaa\xbb\xaa\xbc\xaa\xbd\xaa\xbe\xaa\xbf\xaa\xc0\x6a\xdc\xaa\xc1\xaa\xc2\xaa\xc3\xaa\xc4\xaa\xc5\xaa\xc6\x53\x54\xaa\xc7\xaa\xc8\xaa\xc9\xaa\xca\xaa\xcb\xaa\xcc\xaa\xcd\xaa\xce\x6a\xe8\xaa\xcf\xaa\xd0\x58\x55\xaa\xd1\xaa\xd2\xaa\xd3\xaa\xd4", /* 7d00 */ "\xaa\xd5\xaa\xd6\xaa\xd7\xaa\xd8\xaa\xd9\xaa\xda\xaa\xdb\xaa\xdc\xaa\xdd\xaa\xde\x57\xc8\xaa\xdf\xaa\xe0\xaa\xe1\xaa\xe2\xaa\xe3\xaa\xe4\xaa\xe5\xaa\xe6\xaa\xe7\xaa\xe8\xaa\xe9\xaa\xea\xaa\xeb\xaa\xec\xaa\xed\xaa\xee\xaa\xef\xaa\xf0\xaa\xf1\xaa\xf2\xaa\xf3\x56\x78\xaa\xf4\x56\x98\xaa\xf5\xaa\xf6\xaa\xf7\xaa\xf8\x4f\x95\xaa\xf9\xaa\xfa\xaa\xfb\x5c\x6f\xaa\xfc\xaa\xfd\xab\x41\x50\xda\xab\x42\xab\x43\xab\x44\xab\x45\xab\x46\xab\x47\xab\x48\xab\x49\xab\x4a\xab\x4b\xab\x4c\xab\x4d\xab\x4e\xab\x4f\xab\x50\xab\x51\xab\x52\xab\x53\xab\x54\xab\x55\xab\x56\xab\x57\xab\x58\xab\x59\xab\x5a\xab\x5b\xab\x5c\xab\x5d\xab\x5e\xab\x5f\xab\x60\xab\x61\xab\x62\xab\x63\xab\x64\xab\x65\xab\x66\xab\x67\xab\x68\xab\x69\xab\x6a\xab\x6b\xab\x6c\xab\x6d\xab\x6e\xab\x6f\xab\x70\xab\x71\xab\x72\xab\x73\xab\x74\xab\x75\xab\x76\xab\x77\xab\x78\xab\x79\xab\x7a\xab\x7b\xab\x7c\xab\x7d\xab\x7e\xab\x7f\x58\xf4\xab\x81\xab\x82\xab\x83\xab\x84\xab\x85\xab\x86\xab\x87\xab\x88\x6a\xe9\xab\x89\xab\x8a\xab\x8b\xab\x8c\xab\x8d\xab\x8e\xab\x8f\xab\x90", /* 7d80 */ "\xab\x91\xab\x92\xab\x93\xab\x94\xab\x95\xab\x96\xab\x97\xab\x98\xab\x99\xab\x9a\xab\x9b\xab\x9c\xab\x9d\xab\x9e\xab\x9f\xab\xa0\xab\xa1\xab\xa2\xab\xa3\xab\xa4\xab\xa5\xab\xa6\xab\xa7\xab\xa8\xab\xa9\xab\xaa\xab\xab\xab\xac\xab\xad\xab\xae\xab\xaf\xab\xb0\xab\xb1\xab\xb2\xab\xb3\xab\xb4\xab\xb5\xab\xb6\x6a\xea\xab\xb7\xab\xb8\xab\xb9\xab\xba\xab\xbb\xab\xbc\xab\xbd\x6a\xeb\xab\xbe\xab\xbf\xab\xc0\xab\xc1\xab\xc2\xab\xc3\xab\xc4\xab\xc5\xab\xc6\xab\xc7\xab\xc8\xab\xc9\xab\xca\xab\xcb\xab\xcc\xab\xcd\xab\xce\xab\xcf\xab\xd0\xab\xd1\xab\xd2\xab\xd3\xab\xd4\xab\xd5\xab\xd6\xab\xd7\xab\xd8\xab\xd9\xab\xda\xab\xdb\xab\xdc\xab\xdd\xab\xde\xab\xdf\xab\xe0\xab\xe1\xab\xe2\xab\xe3\xab\xe4\xab\xe5\xab\xe6\xab\xe7\xab\xe8\xab\xe9\xab\xea\xab\xeb\xab\xec\xab\xed\xab\xee\xab\xef\xab\xf0\xab\xf1\xab\xf2\xab\xf3\xab\xf4\xab\xf5\xab\xf6\xab\xf7\xab\xf8\xab\xf9\xab\xfa\xab\xfb\xab\xfc\xab\xfd\xac\x41\xac\x42\xac\x43\xac\x44\xac\x45\xac\x46\xac\x47\xac\x48\xac\x49\xac\x4a\xac\x4b\xac\x4c\xac\x4d\xac\x4e\xac\x4f\xac\x50\xac\x51", /* 7e00 */ "\xac\x52\xac\x53\xac\x54\xac\x55\xac\x56\xac\x57\xac\x58\xac\x59\xac\x5a\xac\x5b\xac\x5c\xac\x5d\xac\x5e\xac\x5f\xac\x60\xac\x61\xac\x62\xac\x63\xac\x64\xac\x65\xac\x66\xac\x67\xac\x68\xac\x69\xac\x6a\xac\x6b\xac\x6c\xac\x6d\xac\x6e\xac\x6f\xac\x70\xac\x71\xac\x72\xac\x73\xac\x74\xac\x75\xac\x76\xac\x77\xac\x78\xac\x79\xac\x7a\xac\x7b\xac\x7c\xac\x7d\xac\x7e\xac\x7f\xac\x81\xac\x82\xac\x83\xac\x84\xac\x85\xac\x86\xac\x87\xac\x88\xac\x89\xac\x8a\xac\x8b\xac\x8c\xac\x8d\x6c\x84\xac\x8e\xac\x8f\xac\x90\xac\x91\xac\x92\x4c\x51\xac\x93\xac\x94\xac\x95\xac\x96\xac\x97\x6a\xec\xac\x98\xac\x99\xac\x9a\xac\x9b\xac\x9c\xac\x9d\xac\x9e\xac\x9f\xac\xa0\xac\xa1\xac\xa2\xac\xa3\xac\xa4\xac\xa5\xac\xa6\xac\xa7\xac\xa8\xac\xa9\xac\xaa\xac\xab\xac\xac\xac\xad\xac\xae\xac\xaf\xac\xb0\xac\xb1\xac\xb2\xac\xb3\xac\xb4\xac\xb5\xac\xb6\xac\xb7\xac\xb8\xac\xb9\xac\xba\xac\xbb\xac\xbc\xac\xbd\xac\xbe\xac\xbf\xac\xc0\xac\xc1\xac\xc2\xac\xc3\xac\xc4\xac\xc5\xac\xc6\xac\xc7\xac\xc8\xac\xc9\xac\xca\xac\xcb\xac\xcc\xac\xcd\xac\xce\xac\xcf", /* 7e80 */ "\xac\xd0\xac\xd1\x5c\x8c\xac\xd2\xac\xd3\xac\xd4\xac\xd5\xac\xd6\xac\xd7\xac\xd8\xac\xd9\xac\xda\xac\xdb\xac\xdc\xac\xdd\xac\xde\xac\xdf\xac\xe0\xac\xe1\xac\xe2\xac\xe3\xac\xe4\xac\xe5\xac\xe6\xac\xe7\xac\xe8\xac\xe9\x6a\xed\xac\xea\xac\xeb\xac\xec\x63\xf8\x4f\xbf\x63\xf9\x4d\xeb\x63\xfa\x58\x6b\x63\xfb\x5a\xbb\x4e\xb5\x63\xfc\x63\xfd\x4e\xcc\x54\xd1\x57\xb2\x64\x41\xac\xed\x4a\xbe\x64\x42\x55\x54\x4c\xd8\x52\xc8\xac\xee\x5c\x7d\x51\xd9\x4c\x77\x5b\xbc\x57\xc5\x4c\x64\xac\xef\xac\xf0\x53\x46\x64\x43\x58\x7f\x64\x44\x64\x45\x64\x46\x51\x57\x5c\x8a\x55\x91\x58\x58\x5b\xae\x5b\xd4\x64\x47\x48\xec\x64\x48\x64\x49\x55\x7c\x59\xee\x4f\xac\x64\x4a\x48\xf2\x54\xdd\x4f\x82\x64\x4b\x54\xc5\xac\xf1\x64\x4c\x4e\x87\x4c\xf7\x59\x44\x64\x4d\x51\xe6\x4f\xf7\x4f\x6a\x57\x53\x64\x4e\x64\x4f\x4f\xed\x58\xe4\xac\xf2\x56\x88\x56\xcf\x4e\xcb\x64\x50\x4e\xa7\x58\xf6\x64\x51\xac\xf3\x58\xf7\x64\x52\x64\x53\x4a\xc1\x64\x54\x64\x55\x55\x9f\x57\xab\x52\x81\x64\x57\x49\x61\x4a\x92\xac\xf4\x64\x58\x64\x59\x5c\x7b\x5b\x60\x64\x5a\x51\xcb", /* 7f00 */ "\x5c\x5a\x64\x5b\x64\x5c\x64\x5d\x4e\xe9\x52\x86\x50\xc1\x64\x5e\x64\x5f\x4e\xa8\xac\xf5\x64\x60\x64\x61\x64\x56\x4b\xcf\x64\x62\xac\xf6\x64\x63\x64\x64\x4e\x5a\x4b\x7e\x51\xc5\x49\x81\x64\x65\x5a\xb4\x64\x66\x4c\xbe\x64\x68\x64\x67\x4c\x8d\xac\xf7\x64\x69\x49\xf7\x64\x6a\x64\x6b\x64\x6c\x64\x6d\x64\x6e\x64\x6f\x64\x70\x5a\x47\x56\x96\x64\x71\x64\x72\x64\x73\x64\x74\x55\x69\x64\x75\x64\x76\x64\x77\x64\x78\x64\x79\x4f\x69\x64\x7a\x6a\x5e\xac\xf8\x4c\xd6\xac\xf9\x54\xb0\xac\xfa\xac\xfb\xac\xfc\xac\xfd\xad\x41\xad\x42\xad\x43\x6a\x5f\xad\x44\x6a\x60\x6a\x61\xad\x45\xad\x46\xad\x47\xad\x48\xad\x49\xad\x4a\xad\x4b\xad\x4c\xad\x4d\xad\x4e\x4d\x7e\x57\x99\xad\x4f\xad\x50\x5c\xe7\x4d\xb0\xad\x51\x51\xdd\x67\xb6\xad\x52\x4c\x43\xad\x53\xad\x54\xad\x55\xad\x56\x67\xb8\xad\x57\x67\xb7\x48\xd4\xad\x58\xad\x59\xad\x5a\xad\x5b\xad\x5c\x67\xba\x5b\x76\x5c\x90\xad\x5d\xad\x5e\xad\x5f\x5b\xc2\xad\x60\xad\x61\x67\xbc\x55\xef\xad\x62\x67\xbb\xad\x63\xad\x64\xad\x65\xad\x66\x67\xbd\xad\x67\xad\x68\xad\x69\xad\x6a\x67\xbf\xad\x6b", /* 7f80 */ "\xad\x6c\x67\xbe\xad\x6d\xad\x6e\xad\x6f\xad\x70\xad\x71\xad\x72\xad\x73\xad\x74\x59\x93\xad\x75\x54\x5c\xad\x76\x52\x60\xad\x77\xad\x78\xad\x79\xad\x7a\xad\x7b\x4c\xe0\xad\x7c\xad\x7d\xad\x7e\xad\x7f\xad\x81\x51\x88\xad\x82\xad\x83\x6a\xc5\x58\xde\x6a\xc6\xad\x84\x58\x7b\xad\x85\xad\x86\x54\xb9\xad\x87\xad\x88\x6a\xc7\xad\x89\xad\x8a\xad\x8b\xad\x8c\xad\x8d\xad\x8e\xad\x8f\x6a\xc8\x6a\xc9\xad\x90\x6a\xca\xad\x91\xad\x92\xad\x93\xad\x94\xad\x95\x5d\x9b\x4c\xfd\xad\x96\xad\x97\x63\x92\x5a\x91\xad\x98\x6a\xdf\xad\x99\x57\xcb\xad\x9a\xad\x9b\xad\x9c\x4a\x82\xad\x9d\xad\x9e\xad\x9f\xad\xa0\x69\x54\xad\xa1\x59\xed\xad\xa2\x6a\xe0\xad\xa3\xad\xa4\xad\xa5\xad\xa6\xad\xa7\x58\x89\x6a\xe1\xad\xa8\xad\xa9\x54\x6c\xad\xaa\xad\xab\xad\xac\xad\xad\xad\xae\xad\xaf\x4b\x74\x4a\xe3\x6a\xe3\xad\xb0\xad\xb1\xad\xb2\x6a\xe2\x6a\xe4\xad\xb3\xad\xb4\x6a\xe5\xad\xb5\xad\xb6\xad\xb7\xad\xb8\x6a\xe6\xad\xb9\x4d\xb1\x48\xbe\xad\xba\x6a\xe7\xad\xbb\xad\xbc\xad\xbd\xad\xbe\xad\xbf\xad\xc0\xad\xc1\x4c\x4d\x59\xec\xad\xc2\xad\xc3\xad\xc4", /* 8000 */ "\x59\xaa\x50\xce\xad\xc5\x50\x5c\x66\x43\x5b\x7f\x65\xc7\xad\xc6\xad\xc7\xad\xc8\xad\xc9\x69\x94\x4b\xf7\x56\x43\xad\xca\xad\xcb\x52\xcc\xad\xcc\x69\x88\xad\xcd\x69\x89\x4c\xfa\x69\x8a\x4d\xc3\x5a\xc4\x48\xd1\xad\xce\xad\xcf\x69\x8b\xad\xd0\xad\xd1\xad\xd2\x69\x8c\xad\xd3\x69\x8d\xad\xd4\xad\xd5\x69\x8e\x69\x8f\x69\x90\x69\x92\x69\x91\x53\x75\xad\xd6\xad\xd7\xad\xd8\xad\xd9\xad\xda\xad\xdb\x69\x93\xad\xdc\x4b\xf9\xad\xdd\x69\x95\x59\xad\x5f\xc6\x56\x6a\xad\xde\xad\xdf\x4a\x7c\xad\xe0\x4b\x42\xad\xe1\x4d\x42\xad\xe2\xad\xe3\x52\xf3\x69\x96\xad\xe4\xad\xe5\x69\x97\xad\xe6\xad\xe7\xad\xe8\x51\x64\x51\x9c\x5b\xaf\x69\x98\xad\xe9\xad\xea\xad\xeb\xad\xec\x69\x99\xad\xed\x51\x4a\xad\xee\xad\xef\xad\xf0\x53\xb7\xad\xf1\x4f\xda\xad\xf2\xad\xf3\xad\xf4\xad\xf5\xad\xf6\xad\xf7\xad\xf8\xad\xf9\xad\xfa\xad\xfb\xad\xfc\xad\xfd\xae\x41\xae\x42\x69\x9a\x4a\xce\xae\x43\xae\x44\xae\x45\xae\x46\xae\x47\xae\x48\x69\x9b\xae\x49\xae\x4a\xae\x4b\xae\x4c\xae\x4d\xae\x4e\xae\x4f\xae\x50\xae\x51\xae\x52\xae\x53\xae\x54\xae\x55\x67\x52", /* 8080 */ "\x67\x51\xae\x56\xae\x57\x56\x81\x59\xdd\xae\x58\x56\x61\x5b\x78\xae\x59\x54\xe1\xae\x5a\x50\xde\x4e\xa0\xae\x5b\xae\x5c\xae\x5d\xae\x5e\xae\x5f\xae\x60\x66\x61\xae\x61\xae\x62\x58\xa3\xae\x63\x5b\xe1\xae\x64\x4b\xc6\x4c\xd7\x66\x60\x4c\xcd\xae\x65\x66\x5f\x4a\x46\x4d\x69\x5b\xaa\xae\x66\x4c\x95\x4c\x6a\xae\x67\xae\x68\xae\x69\x4e\xe6\x4c\x5e\x66\x66\xae\x6a\x66\x67\x48\xb8\x50\x6f\xae\x6b\x66\x65\x5a\x9e\xae\x6c\x66\x68\xae\x6d\xae\x6e\x66\x69\xae\x6f\xae\x70\x4c\x6e\xae\x71\x66\x62\x66\x64\x55\x97\x5b\xd6\x5b\x6d\x58\xb1\x66\x6f\x57\xb7\x66\x70\xae\x72\x4b\x48\xae\x73\xae\x74\xae\x75\xae\x76\xae\x77\x49\x53\x66\x72\x56\xa4\xae\x78\xae\x79\xae\x7a\xae\x7b\xae\x7c\xae\x7d\xae\x7e\x53\x76\x66\x73\xae\x7f\x66\x71\x53\x7f\x66\x6e\x55\xa3\x66\x75\x48\xfa\xae\x81\xae\x82\x4d\xf9\xae\x83\xae\x84\x5c\xb6\x69\x84\xae\x85\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x76\x63\xbf\x66\x79\xae\x86\x50\x89\x59\xc7\x66\x77\x66\x7c\x4c\xeb\x66\x78\xae\x87\x4f\x5a\xae\x88\x58\xd7\xae\x89\x48\xb6\xae\x8a\x66\x7d\x52\xdb\xae\x8b\xae\x8c", /* 8100 */ "\xae\x8d\xae\x8e\x5b\xab\xae\x8f\xae\x90\xae\x91\x4a\xdf\xae\x92\xae\x93\x51\xf5\x4e\xb8\xae\x94\xae\x95\x66\x7a\x66\x7b\x5a\xdf\x53\xe9\x52\xd3\x66\x7f\x53\x47\x5d\x96\xae\x96\x49\xb0\xae\x97\x66\x85\xae\x98\x4f\x65\xae\x99\xae\x9a\xae\x9b\x66\x83\xae\x9c\xae\x9d\xae\x9e\xae\x9f\xae\xa0\xae\xa1\xae\xa2\xae\xa3\xae\xa4\xae\xa5\xae\xa6\xae\xa7\xae\xa8\x66\x84\xae\xa9\xae\xaa\x4c\xab\xae\xab\x57\x71\x66\x86\xae\xac\xae\xad\xae\xae\x66\x82\xae\xaf\x51\x53\xae\xb0\xae\xb1\xae\xb2\xae\xb3\xae\xb4\x53\xa1\xae\xb5\xae\xb6\xae\xb7\xae\xb8\xae\xb9\xae\xba\xae\xbb\x56\xf2\xae\xbc\x66\x87\xae\xbd\x50\xaf\x59\xb7\x66\x88\xae\xbe\xae\xbf\xae\xc0\x4c\xae\x4c\xac\xae\xc1\x66\x89\x54\x5b\x57\x94\xae\xc2\xae\xc3\xae\xc4\x66\x8b\x66\x8c\xae\xc5\xae\xc6\xae\xc7\xae\xc8\xae\xc9\x66\x8e\xae\xca\xae\xcb\xae\xcc\xae\xcd\x58\xc7\xae\xce\x66\x93\xae\xcf\x66\x8f\xae\xd0\xae\xd1\xae\xd2\x66\x92\x54\xf8\xae\xd3\x59\x9d\x66\x8d\xae\xd4\xae\xd5\x66\x8a\xae\xd6\xae\xd7\xae\xd8\xae\xd9\x4c\xb8\x58\x79\x52\xe4\x66\x90\x66\x91\x56\xd9\x57\x68", /* 8180 */ "\x48\xf1\xae\xda\x66\x97\xae\xdb\xae\xdc\xae\xdd\xae\xde\xae\xdf\x66\x96\xae\xe0\x49\xb1\xae\xe1\xae\xe2\xae\xe3\xae\xe4\x4c\xdf\xae\xe5\x66\x98\xae\xe6\xae\xe7\xae\xe8\xae\xe9\xae\xea\xae\xeb\x49\x8d\xae\xec\xae\xed\x56\xc4\x52\xa3\x58\x45\xae\xee\xae\xef\xae\xf0\xae\xf1\xae\xf2\x66\x9a\xae\xf3\xae\xf4\x66\xa1\xae\xf5\x53\x93\xae\xf6\x66\x9b\xae\xf7\xae\xf8\xae\xf9\xae\xfa\xae\xfb\xae\xfc\xae\xfd\xaf\x41\x55\x65\xaf\x42\xaf\x43\xaf\x44\xaf\x45\xaf\x46\xaf\x47\x61\xde\x66\x9f\xaf\x48\xaf\x49\xaf\x4a\xaf\x4b\x57\x6e\x66\xa0\x49\x7b\x5a\x57\xaf\x4c\xaf\x4d\x59\xdb\xaf\x4e\xaf\x4f\xaf\x50\x66\x9e\xaf\x51\x66\x9c\xaf\x52\xaf\x53\xaf\x54\xaf\x55\xaf\x56\xaf\x57\xaf\x58\xaf\x59\xaf\x5a\xaf\x5b\xaf\x5c\xaf\x5d\xaf\x5e\xaf\x5f\xaf\x60\xaf\x61\xaf\x62\xaf\x63\xaf\x64\xaf\x65\xaf\x66\xaf\x67\x4a\x5c\xaf\x68\xaf\x69\xaf\x6a\x65\xaf\xaf\x6b\xaf\x6c\x5c\x74\xaf\x6d\x6a\xaa\x4a\x95\xaf\x6e\xaf\x6f\xaf\x70\xaf\x71\xaf\x72\x5b\xc0\x5b\xc1\xaf\x73\xaf\x74\xaf\x75\xaf\x76\xaf\x77\xaf\x78\x5b\x8a\x4f\xc9\xaf\x79\x6a\xa6\xaf\x7a", /* 8200 */ "\x59\xa7\x6a\xa7\x6a\xa8\xaf\x7b\x6a\xa9\x4f\xca\x5a\x7f\xaf\x7c\xaf\x7d\xaf\x7e\xaf\x7f\xaf\x81\x55\x81\x55\x82\xaf\x82\xaf\x83\x6a\x62\xaf\x84\x55\xe5\xaf\x85\x56\xf1\xaf\x86\xaf\x87\xaf\x88\xaf\x89\xaf\x8a\xaf\x8b\x61\xb5\x56\x54\xaf\x8c\x57\xe7\x5b\xda\xaf\x8d\x6a\xac\x6a\xad\x6a\xae\xaf\x8e\xaf\x8f\xaf\x90\xaf\x91\x6a\xb1\xaf\x92\x4d\xbc\x6a\xb2\x48\xe2\x6a\xaf\xaf\x93\x6a\xb0\x4f\x42\x49\xd4\xaf\x94\x6a\xb5\x6a\xb6\x4b\xe5\x49\xaf\x58\x6f\x6a\xb3\x4a\xab\xaf\x95\x6a\xb4\xaf\x96\xaf\x97\x6a\xb7\xaf\x98\xaf\x99\xaf\x9a\xaf\x9b\xaf\x9c\x6a\xb8\xaf\x9d\xaf\x9e\x57\x47\xaf\x9f\x6a\xb9\xaf\xa0\x6a\xba\xaf\xa1\xaf\xa2\xaf\xa3\x6a\xbb\xaf\xa4\xaf\xa5\xaf\xa6\xaf\xa7\xaf\xa8\xaf\xa9\xaf\xaa\xaf\xab\x56\x72\xaf\xac\x6a\xbc\xaf\xad\xaf\xae\xaf\xaf\xaf\xb0\x6a\xbd\xaf\xb1\xaf\xb2\xaf\xb3\xaf\xb4\xaf\xb5\xaf\xb6\xaf\xb7\xaf\xb8\x6a\xbe\xaf\xb9\xaf\xba\xaf\xbb\xaf\xbc\xaf\xbd\x6a\xdd\x51\x5c\x4e\xe7\xaf\xbe\x55\x4b\x59\x7e\x63\x96\xaf\xbf\xaf\xc0\xaf\xc1\xaf\xc2\x5e\xb2\x59\xd4\xaf\xc3\xaf\xc4\x5e\xb3\x48\xab\x5e\xb4", /* 8280 */ "\xaf\xc5\xaf\xc6\x4f\x7a\xaf\xc7\x5e\xb8\xaf\xc8\xaf\xc9\xaf\xca\x5c\xc1\xaf\xcb\x5e\xb6\x5a\x94\xaf\xcc\x55\x76\x5e\xb9\x5e\xb5\xaf\xcd\x5e\xba\x52\x42\xaf\xce\xaf\xcf\xaf\xd0\xaf\xd1\x5e\xbb\x5e\xc4\x5e\xbc\xaf\xd2\xaf\xd3\x57\xde\x5b\xa4\xaf\xd4\x5e\xce\xaf\xd5\x5e\xcc\xaf\xd6\xaf\xd7\x5e\xd1\x4f\x87\x51\xaa\xaf\xd8\x5e\xb7\x5e\xca\x5e\xcd\x5e\xbd\x4c\x72\x48\xc4\x5e\xc6\x58\xbd\x5e\xc0\x4e\x48\xaf\xd9\x4c\x5c\x5e\xcb\xaf\xda\xaf\xdb\x5e\xc5\x5e\xbe\x54\x7b\xaf\xdc\xaf\xdd\xaf\xde\x59\x5f\x5e\xbf\xaf\xdf\xaf\xe0\x5e\xc9\xaf\xe1\xaf\xe2\x5e\xcf\xaf\xe3\xaf\xe4\x57\xac\x5e\xc1\xaf\xe5\x5e\xc2\x5e\xc7\x5e\xc8\x49\xd3\x5e\xd0\x56\x75\xaf\xe6\x5a\xb6\x5e\xda\x5e\xde\x56\xa5\x5e\xe5\xaf\xe7\x52\x88\x5e\xdb\xaf\xe8\xaf\xe9\x50\x61\x5e\xd8\xaf\xea\x48\xf9\x4d\x56\x5e\xe4\x5e\xd2\xaf\xeb\x5e\xc3\x5e\xd5\x54\xf3\x50\x81\xaf\xec\xaf\xed\xaf\xee\xaf\xef\x55\x5b\xaf\xf0\xaf\xf1\xaf\xf2\x49\x5d\xaf\xf3\x5a\x42\xaf\xf4\xaf\xf5\x5e\xd9\xaf\xf6\xaf\xf7\x5e\xd4\xaf\xf8\x53\xba\xaf\xf9\x5e\xdd\xaf\xfa\xaf\xfb\xaf\xfc\xaf\xfd", /* 8300 */ "\xb0\x41\x5c\x62\x52\x4f\x4c\x56\x54\x71\x52\x49\x5e\xe1\x5e\xd7\x5e\xea\x5e\xd3\xb0\x42\xb0\x43\x5e\xdc\xb0\x44\x4f\xa4\x5e\xd6\xb0\x45\x5e\xdf\xb0\x46\xb0\x47\x5e\xe2\x5e\xe3\xb0\x48\x5e\xf7\xb0\x49\xb0\x4a\x5e\xe0\x5f\x42\x5e\xe6\xb0\x4b\xb0\x4c\xb0\x4d\xb0\x4e\xb0\x4f\xb0\x50\xb0\x51\xb0\x52\xb0\x53\xb0\x54\x4e\xea\x4a\xc3\xb0\x55\xb0\x56\x52\x43\x49\xe6\x5e\xf9\xb0\x57\x5e\xf1\xb0\x58\x5e\xee\xb0\x59\x5e\xfb\x5e\xed\x59\xef\x49\xe7\xb0\x5a\x54\xd6\x54\xe2\x5e\xfa\xb0\x5b\x5e\xec\xb0\x5c\xb0\x5d\xb0\x5e\x5e\xf6\xb0\x5f\xb0\x60\x5e\xf4\xb0\x61\xb0\x62\x4f\xa2\x5e\xf3\xb0\x63\x49\xdc\xb0\x64\xb0\x65\xb0\x66\xb0\x67\xb0\x68\x5e\xf2\x4e\xf5\x5e\xe7\x4e\x64\xb0\x69\x50\xf2\xb0\x6a\xb0\x6b\xb0\x6c\xb0\x6d\xb0\x6e\x4e\xd3\x5e\xe8\x5e\xe9\xb0\x6f\x5e\xf0\x5e\xf5\x5e\xf8\x4b\x54\xb0\x70\x54\xd8\x4e\x88\x5e\xfd\x5e\xfc\x5a\x4b\x5f\x41\x5f\x43\x5f\x45\x59\xf0\x5f\x44\x5f\x46\x5f\x47\x59\xa8\xb0\x71\xb0\x72\xb0\x73\xb0\x74\xb0\x75\xb0\x76\xb0\x77\x4d\xc8\x5f\x49\xb0\x78\xb0\x79\x5f\x56\x5f\x51\x5f\x54\xb0\x7a\xb0\x7b", /* 8380 */ "\xb0\x7c\xb0\x7d\xb0\x7e\xb0\x7f\xb0\x81\x5f\x50\x53\xcd\xb0\x82\xb0\x83\x50\xf1\xb0\x84\xb0\x85\xb0\x86\xb0\x87\x55\x4f\xb0\x88\xb0\x89\xb0\x8a\x5e\xeb\x5f\x4e\xb0\x8b\xb0\x8c\xb0\x8d\xb0\x8e\x5f\x57\xb0\x8f\xb0\x90\x5e\xef\x5f\x4f\xb0\x91\x5f\x58\xb0\x92\x5f\x4c\xb0\x93\xb0\x94\xb0\x95\xb0\x96\xb0\x97\xb0\x98\xb0\x99\x5f\x59\x5f\x53\x5f\x4d\x52\xa9\xb0\x9a\xb0\x9b\xb0\x9c\xb0\x9d\x5f\x48\x50\xb2\x51\x4b\x5f\x4a\x5f\x4b\xb0\x9e\x5f\x52\x4e\x92\x5f\x55\x5a\x48\x5f\x5a\xb0\x9f\x5f\x5b\x52\x47\xb0\xa0\xb0\xa1\x5f\x72\x5f\x5c\xb0\xa2\xb0\xa3\xb0\xa4\x5f\x71\xb0\xa5\x4d\x5d\xb0\xa6\xb0\xa7\x4f\xd4\xb0\xa8\x4f\xf9\xb0\xa9\xb0\xaa\x4d\xc9\xb0\xab\xb0\xac\xb0\xad\xb0\xae\x5f\x6a\xb0\xaf\x5f\x65\xb0\xb0\x5f\x5f\xb0\xb1\xb0\xb2\xb0\xb3\x49\xca\x5f\x63\xb0\xb4\x5f\x6b\x49\xa3\x5f\x75\xb0\xb5\xb0\xb6\xb0\xb7\x5f\x5e\xb0\xb8\xb0\xb9\xb0\xba\x53\xcf\x5f\x70\xb0\xbb\xb0\xbc\xb0\xbd\xb0\xbe\xb0\xbf\x5f\x74\x51\x83\x4c\x66\xb0\xc0\xb0\xc1\xb0\xc2\xb0\xc3\xb0\xc4\x5f\x6e\x5f\x6f\xb0\xc5\xb0\xc6\xb0\xc7\x5f\x64\xb0\xc8\xb0\xc9", /* 8400 */ "\xb0\xca\x5f\x5d\xb0\xcb\x5f\x6d\x56\xd0\xb0\xcc\x5f\x69\xb0\xcd\xb0\xce\xb0\xcf\xb0\xd0\x5f\x62\x52\x68\x53\xbb\x57\xad\x5f\x6c\xb0\xd1\x5f\x68\xb0\xd2\xb0\xd3\xb0\xd4\xb0\xd5\xb0\xd6\xb0\xd7\x5f\x61\xb0\xd8\xb0\xd9\xb0\xda\x5f\x66\x51\xdb\xb0\xdb\xb0\xdc\xb0\xdd\xb0\xde\xb0\xdf\xb0\xe0\x5a\x49\x5a\x4a\x5f\x73\x58\x95\x54\xf7\xb0\xe1\xb0\xe2\xb0\xe3\xb0\xe4\xb0\xe5\xb0\xe6\xb0\xe7\xb0\xe8\x5f\x87\xb0\xe9\xb0\xea\xb0\xeb\xb0\xec\xb0\xed\xb0\xee\x5f\x67\xb0\xef\xb0\xf0\xb0\xf1\x5f\x81\x51\xe3\xb0\xf2\xb0\xf3\xb0\xf4\xb0\xf5\xb0\xf6\xb0\xf7\xb0\xf8\xb0\xf9\x5f\x82\xb0\xfa\xb0\xfb\xb0\xfc\xb0\xfd\xb1\x41\xb1\x42\xb1\x43\xb1\x44\xb1\x45\xb1\x46\x5f\x77\xb1\x47\xb1\x48\xb1\x49\xb1\x4a\xb1\x4b\x5b\xf7\xb1\x4c\x5f\x79\x5f\x78\x4c\xef\x5f\x76\xb1\x4d\xb1\x4e\xb1\x4f\xb1\x50\x53\xce\xb1\x51\x4b\xac\xb1\x52\xb1\x53\xb1\x54\xb1\x55\xb1\x56\x5f\x83\xb1\x57\x4d\xf8\x5a\xe0\x5f\x88\xb1\x58\xb1\x59\xb1\x5a\x4a\xcf\xb1\x5b\x5f\x7a\xb1\x5c\x50\x9c\x5f\x84\xb1\x5d\x5f\x7f\xb1\x5e\x5f\x7d\xb1\x5f\xb1\x60\xb1\x61\xb1\x62\xb1\x63", /* 8480 */ "\xb1\x64\xb1\x65\x4b\x79\xb1\x66\xb1\x67\xb1\x68\xb1\x69\x5f\x7b\x5f\x7c\x5f\x7e\xb1\x6a\x4f\x4f\x5f\x85\xb1\x6b\x5f\x86\xb1\x6c\xb1\x6d\xb1\x6e\xb1\x6f\xb1\x70\xb1\x71\xb1\x72\xb1\x73\x5f\x96\xb1\x74\x52\x69\xb1\x75\xb1\x76\x56\x83\xb1\x77\xb1\x78\xb1\x79\xb1\x7a\x5f\x93\xb1\x7b\xb1\x7c\xb1\x7d\xb1\x7e\xb1\x7f\xb1\x81\xb1\x82\xb1\x83\xb1\x84\xb1\x85\xb1\x86\xb1\x87\xb1\x88\x5c\xe0\xb1\x89\xb1\x8a\x53\xd0\xb1\x8b\x5f\x95\xb1\x8c\xb1\x8d\xb1\x8e\x5b\x95\x5f\x94\x5f\x91\xb1\x8f\xb1\x90\x5f\x8d\xb1\x91\x5f\x90\xb1\x92\x5f\x89\xb1\x93\xb1\x94\x58\xed\xb1\x95\xb1\x96\xb1\x97\xb1\x98\x54\xd7\x5f\x8f\xb1\x99\xb1\x9a\x5f\x8a\xb1\x9b\xb1\x9c\x5f\x8b\x56\x93\xb1\x9d\x5f\x8e\xb1\x9e\xb1\x9f\x49\x6d\xb1\xa0\xb1\xa1\xb1\xa2\xb1\xa3\xb1\xa4\xb1\xa5\x50\xb5\xb1\xa6\x4e\xba\x5f\x92\xb1\xa7\xb1\xa8\x5f\x98\xb1\xa9\x5f\x97\x5f\x8c\xb1\xaa\xb1\xab\xb1\xac\xb1\xad\xb1\xae\x53\x8f\xb1\xaf\xb1\xb0\xb1\xb1\x5f\x9c\xb1\xb2\xb1\xb3\xb1\xb4\xb1\xb5\xb1\xb6\xb1\xb7\xb1\xb8\xb1\xb9\xb1\xba\xb1\xbb\xb1\xbc\x5f\xa3\xb1\xbd\xb1\xbe\x5f\xa2", /* 8500 */ "\xb1\xbf\xb1\xc0\xb1\xc1\xb1\xc2\xb1\xc3\xb1\xc4\xb1\xc5\xb1\xc6\xb1\xc7\xb1\xc8\xb1\xc9\xb1\xca\x5f\x99\xb1\xcb\xb1\xcc\xb1\xcd\xb1\xce\x52\x90\xb1\xcf\x51\xfa\xb1\xd0\xb1\xd1\xb1\xd2\x5b\x82\xb1\xd3\xb1\xd4\x57\xb4\xb1\xd5\xb1\xd6\xb1\xd7\xb1\xd8\x5f\x9e\xb1\xd9\x49\xcb\xb1\xda\xb1\xdb\xb1\xdc\xb1\xdd\xb1\xde\xb1\xdf\xb1\xe0\xb1\xe1\xb1\xe2\x52\xe7\x55\xde\xb1\xe3\xb1\xe4\xb1\xe5\xb1\xe6\xb1\xe7\xb1\xe8\xb1\xe9\xb1\xea\xb1\xeb\xb1\xec\x54\x5e\x5f\x9b\x5f\x9d\x5f\x9f\x5f\xa1\x48\xa9\x49\x6e\xb1\xed\xb1\xee\xb1\xef\xb1\xf0\xb1\xf1\x5f\xab\xb1\xf2\xb1\xf3\xb1\xf4\xb1\xf5\x5f\xa5\x4f\x56\x54\xee\xb1\xf6\xb1\xf7\xb1\xf8\xb1\xf9\xb1\xfa\xb1\xfb\xb1\xfc\xb1\xfd\xb2\x41\xb2\x42\xb2\x43\x5f\xa0\xb2\x44\xb2\x45\x5f\xa4\xb2\x46\xb2\x47\xb2\x48\xb2\x49\x5f\xa8\xb2\x4a\xb2\x4b\xb2\x4c\xb2\x4d\xb2\x4e\x5f\xa7\xb2\x4f\xb2\x50\xb2\x51\x5f\xa6\xb2\x52\xb2\x53\xb2\x54\xb2\x55\xb2\x56\xb2\x57\xb2\x58\xb2\x59\xb2\x5a\x5f\xac\xb2\x5b\x5a\xcb\xb2\x5c\xb2\x5d\xb2\x5e\xb2\x5f\x5f\xb2\x5f\xa9\x5f\xad\xb2\x60\xb2\x61\x50\xd8\xb2\x62", /* 8580 */ "\xb2\x63\xb2\x64\xb2\x65\xb2\x66\x49\x41\x5f\xb5\xb2\x67\x5f\xb0\xb2\x68\xb2\x69\xb2\x6a\xb2\x6b\xb2\x6c\xb2\x6d\xb2\x6e\x5f\xb1\xb2\x6f\xb2\x70\xb2\x71\xb2\x72\xb2\x73\xb2\x74\xb2\x75\xb2\x76\xb2\x77\xb2\x78\xb2\x79\x59\x46\x5f\xb4\xb2\x7a\xb2\x7b\xb2\x7c\xb2\x7d\xb2\x7e\xb2\x7f\xb2\x81\x5f\xae\xb2\x82\xb2\x83\xb2\x84\x5f\xaf\xb2\x85\x58\xbc\xb2\x86\xb2\x87\xb2\x88\x5f\xb3\x55\xec\x5f\xb8\xb2\x89\xb2\x8a\xb2\x8b\xb2\x8c\xb2\x8d\xb2\x8e\x5f\xb7\xb2\x8f\x5f\xb6\xb2\x90\xb2\x91\xb2\x92\xb2\x93\xb2\x94\xb2\x95\xb2\x96\x5f\xba\xb2\x97\xb2\x98\xb2\x99\xb2\x9a\xb2\x9b\xb2\x9c\xb2\x9d\x4f\x86\xb2\x9e\xb2\x9f\xb2\xa0\xb2\xa1\xb2\xa2\x49\xd7\x52\x8b\xb2\xa3\xb2\xa4\x5f\xb9\xb2\xa5\x53\x5a\xb2\xa6\xb2\xa7\xb2\xa8\xb2\xa9\xb2\xaa\xb2\xab\x5f\xbb\xb2\xac\xb2\xad\xb2\xae\xb2\xaf\xb2\xb0\xb2\xb1\xb2\xb2\x56\xd8\xb2\xb3\xb2\xb4\xb2\xb5\xb2\xb6\x4c\x4a\xb2\xb7\xb2\xb8\xb2\xb9\xb2\xba\xb2\xbb\xb2\xbc\xb2\xbd\xb2\xbe\xb2\xbf\xb2\xc0\xb2\xc1\xb2\xc2\xb2\xc3\xb2\xc4\xb2\xc5\xb2\xc6\xb2\xc7\x5a\xe4\xb2\xc8\xb2\xc9\xb2\xca\x5f\xbc", /* 8600 */ "\xb2\xcb\xb2\xcc\xb2\xcd\xb2\xce\xb2\xcf\x5f\xbe\xb2\xd0\xb2\xd1\xb2\xd2\xb2\xd3\xb2\xd4\xb2\xd5\xb2\xd6\xb2\xd7\xb2\xd8\xb2\xd9\xb2\xda\x52\xa1\xb2\xdb\xb2\xdc\xb2\xdd\xb2\xde\x5f\xc0\xb2\xdf\xb2\xe0\xb2\xe1\xb2\xe2\xb2\xe3\xb2\xe4\xb2\xe5\xb2\xe6\xb2\xe7\xb2\xe8\xb2\xe9\xb2\xea\xb2\xeb\xb2\xec\xb2\xed\xb2\xee\x5f\xbd\xb2\xef\x5f\xbf\xb2\xf0\xb2\xf1\xb2\xf2\xb2\xf3\xb2\xf4\xb2\xf5\xb2\xf6\xb2\xf7\xb2\xf8\xb2\xf9\xb2\xfa\xb2\xfb\xb2\xfc\xb2\xfd\x5b\x5a\xb3\x41\xb3\x42\xb3\x43\x5f\xc1\xb3\x44\xb3\x45\xb3\x46\xb3\x47\xb3\x48\xb3\x49\xb3\x4a\xb3\x4b\xb3\x4c\xb3\x4d\xb3\x4e\xb3\x4f\xb3\x50\xb3\x51\xb3\x52\xb3\x53\x69\xad\x4e\x42\x51\xb1\x53\x50\x51\xc6\xb3\x54\xb3\x55\x69\xae\xb3\x56\xb3\x57\xb3\x58\xb3\x59\xb3\x5a\x58\xe8\xb3\x5b\xb3\x5c\xb3\x5d\x5a\x7d\xb3\x5e\xb3\x5f\xb3\x60\x66\x5d\xb3\x61\xb3\x62\xb3\x63\xb3\x64\xb3\x65\xb3\x66\xb3\x67\xb3\x68\x4a\x87\x69\xaf\xb3\x69\x69\xb0\xb3\x6a\xb3\x6b\x55\xac\xb3\x6c\xb3\x6d\xb3\x6e\xb3\x6f\xb3\x70\xb3\x71\xb3\x72\x4d\xe6\x69\xb2\x69\xb4\x69\xb3\x56\x85\x58\x5a\x69\xb1", /* 8680 */ "\x55\xb3\x59\xce\x51\xeb\xb3\x73\xb3\x74\xb3\x75\xb3\x76\xb3\x77\xb3\x78\xb3\x79\x57\xc2\x69\xb7\x48\xf5\x69\xb6\xb3\x7a\xb3\x7b\xb3\x7c\xb3\x7d\xb3\x7e\x69\xbd\xb3\x7f\x49\xce\xb3\x81\xb3\x82\xb3\x83\xb3\x84\xb3\x85\xb3\x86\x59\x61\x69\xb9\xb3\x87\xb3\x88\xb3\x89\xb3\x8a\xb3\x8b\x69\xbb\x5a\xe8\xb3\x8c\xb3\x8d\x69\xba\x69\xb5\x69\xbe\x69\xbc\xb3\x8e\x69\xb8\xb3\x8f\xb3\x90\x69\xc6\x69\xc3\x69\xc5\xb3\x91\xb3\x92\x69\xc9\x69\xc1\x69\xbf\xb3\x93\xb3\x94\xb3\x95\x69\xc4\xb3\x96\xb3\x97\xb3\x98\xb3\x99\xb3\x9a\x5b\xfa\xb3\x9b\xb3\x9c\xb3\x9d\x69\xc0\xb3\x9e\x54\x9a\x55\x7f\xb3\x9f\x69\xc7\x4d\x66\x4b\x50\xb3\xa0\xb3\xa1\x69\xc2\x69\xc8\x69\xcf\x69\xd5\xb3\xa2\xb3\xa3\x4e\x77\xb3\xa4\xb3\xa5\xb3\xa6\x69\xd4\x57\x7c\xb3\xa7\x5b\xea\xb3\xa8\xb3\xa9\x69\xd1\x69\xd3\xb3\xaa\xb3\xab\xb3\xac\xb3\xad\x4c\xf1\xb3\xae\xb3\xaf\xb3\xb0\xb3\xb1\x69\xca\xb3\xb2\xb3\xb3\xb3\xb4\x69\xcd\x51\xf8\xb3\xb5\x5b\x7d\x69\xcb\x69\xcc\x69\xce\x69\xd2\xb3\xb6\xb3\xb7\xb3\xb8\x69\xd8\x5a\x5c\xb3\xb9\xb3\xba\xb3\xbb\xb3\xbc\x4b\xe9\xb3\xbd", /* 8700 */ "\x55\xf0\xb3\xbe\x4c\x85\x69\xd6\xb3\xbf\xb3\xc0\xb3\xc1\x69\xd7\x69\xd9\x69\xdc\x69\xda\xb3\xc2\xb3\xc3\x69\xdb\xb3\xc4\xb3\xc5\xb3\xc6\xb3\xc7\x59\x71\x69\xd0\xb3\xc8\x57\x69\xb3\xc9\x57\xce\x5b\xa8\xb3\xca\x69\xe2\xb3\xcb\x52\x7b\xb3\xcc\x69\xdf\xb3\xcd\xb3\xce\x50\xae\x69\xeb\x69\xdd\xb3\xcf\x69\xe0\xb3\xd0\xb3\xd1\xb3\xd2\x69\xe7\xb3\xd3\xb3\xd4\xb3\xd5\xb3\xd6\x69\xe1\xb3\xd7\xb3\xd8\x69\xe6\xb3\xd9\xb3\xda\x69\xe5\xb3\xdb\xb3\xdc\x69\xe8\xb3\xdd\xb3\xde\xb3\xdf\x69\xde\xb3\xe0\xb3\xe1\x69\xe3\x69\xe9\xb3\xe2\xb3\xe3\xb3\xe4\xb3\xe5\xb3\xe6\xb3\xe7\xb3\xe8\x5a\x4c\x69\xe4\x49\xf4\xb3\xe9\xb3\xea\x69\xf1\xb3\xeb\x58\xaa\xb3\xec\xb3\xed\xb3\xee\xb3\xef\x69\xf4\xb3\xf0\xb3\xf1\xb3\xf2\x4e\x68\xb3\xf3\x69\xf8\xb3\xf4\xb3\xf5\xb3\xf6\xb3\xf7\xb3\xf8\xb3\xf9\x69\xef\xb3\xfa\xb3\xfb\x69\xf5\x69\xf7\x69\xf9\xb3\xfc\xb3\xfd\xb4\x41\xb4\x42\xb4\x43\xb4\x44\xb4\x45\xb4\x46\x69\xf2\xb4\x47\x69\xf0\xb4\x48\xb4\x49\xb4\x4a\x4d\xfa\xb4\x4b\x4b\x9c\xb4\x4c\xb4\x4d\xb4\x4e\xb4\x4f\x69\xee\x69\xf6\x69\xec\x69\xed\xb4\x50", /* 8780 */ "\xb4\x51\xb4\x52\x69\xea\x6a\x46\xb4\x53\x6a\x43\xb4\x54\xb4\x55\x6a\x42\xb4\x56\xb4\x57\x69\xf3\xb4\x58\x54\xd9\xb4\x59\xb4\x5a\xb4\x5b\xb4\x5c\xb4\x5d\x69\xfa\xb4\x5e\xb4\x5f\xb4\x60\x6a\x45\xb4\x61\xb4\x62\xb4\x63\xb4\x64\xb4\x65\xb4\x66\xb4\x67\x52\x99\xb4\x68\xb4\x69\xb4\x6a\xb4\x6b\xb4\x6c\xb4\x6d\xb4\x6e\xb4\x6f\x69\xfc\xb4\x70\xb4\x71\x6a\x47\x6a\x49\x6a\x44\xb4\x72\x69\xfb\xb4\x73\xb4\x74\xb4\x75\x6a\x4b\xb4\x76\x6a\x4a\xb4\x77\xb4\x78\xb4\x79\xb4\x7a\x51\xdc\xb4\x7b\xb4\x7c\x6a\x4e\xb4\x7d\xb4\x7e\x6a\x50\xb4\x7f\xb4\x81\xb4\x82\xb4\x83\xb4\x84\x6a\x41\xb4\x85\xb4\x86\xb4\x87\x6a\x51\x6a\x4c\xb4\x88\xb4\x89\xb4\x8a\xb4\x8b\xb4\x8c\x6a\x4f\x69\xfd\x6a\x4d\xb4\x8d\xb4\x8e\xb4\x8f\xb4\x90\xb4\x91\xb4\x92\xb4\x93\x6a\x52\xb4\x94\xb4\x95\xb4\x96\xb4\x97\x6a\x54\xb4\x98\xb4\x99\xb4\x9a\xb4\x9b\x6a\x48\xb4\x9c\xb4\x9d\xb4\x9e\xb4\x9f\x6a\x53\xb4\xa0\xb4\xa1\xb4\xa2\x6a\x55\xb4\xa3\xb4\xa4\xb4\xa5\xb4\xa6\xb4\xa7\xb4\xa8\xb4\xa9\xb4\xaa\xb4\xab\xb4\xac\x58\xb6\xb4\xad\xb4\xae\xb4\xaf\xb4\xb0\x6a\x58\xb4\xb1", /* 8800 */ "\xb4\xb2\xb4\xb3\xb4\xb4\x5d\x9a\xb4\xb5\xb4\xb6\xb4\xb7\xb4\xb8\xb4\xb9\xb4\xba\x6a\x59\xb4\xbb\xb4\xbc\xb4\xbd\xb4\xbe\xb4\xbf\xb4\xc0\xb4\xc1\xb4\xc2\x6a\x57\xb4\xc3\x54\xe3\x6a\x56\xb4\xc4\xb4\xc5\xb4\xc6\xb4\xc7\x6a\x5a\xb4\xc8\xb4\xc9\xb4\xca\xb4\xcb\xb4\xcc\x6a\x5b\x4a\xbf\xb4\xcd\xb4\xce\xb4\xcf\xb4\xd0\xb4\xd1\xb4\xd2\xb4\xd3\xb4\xd4\xb4\xd5\xb4\xd6\xb4\xd7\xb4\xd8\xb4\xd9\xb4\xda\xb4\xdb\x67\xc2\xb4\xdc\xb4\xdd\xb4\xde\xb4\xdf\xb4\xe0\xb4\xe1\x6a\x5c\xb4\xe2\xb4\xe3\x6a\x5d\xb4\xe4\xb4\xe5\xb4\xe6\x59\x4a\xb4\xe7\xb4\xe8\xb4\xe9\x6a\xab\x58\xc5\xb4\xea\xb4\xeb\xb4\xec\xb4\xed\xb4\xee\xb4\xef\x58\xcf\x59\x7c\xb4\xf0\xb4\xf1\xb4\xf2\xb4\xf3\xb4\xf4\xb4\xf5\x58\x6e\xb4\xf6\xb4\xf7\x4f\x76\xb4\xf8\x59\x63\xb4\xf9\xb4\xfa\xb4\xfb\xb4\xfc\xb4\xfd\xb5\x41\xb5\x42\x4d\xe1\x61\x8a\x59\xc1\x69\x62\x49\xb8\xb5\x43\xb5\x44\x49\x8e\x69\x63\xb5\x45\x55\x60\x4a\x64\xb5\x46\x5d\x93\xb5\x47\x56\x45\xb5\x48\x69\x64\xb5\x49\xb5\x4a\xb5\x4b\xb5\x4c\x5b\xd3\xb5\x4d\xb5\x4e\xb5\x4f\xb5\x50\xb5\x51\x69\x65\x6a\xbf\x69\x66", /* 8880 */ "\xb5\x52\x5a\xab\x69\x67\xb5\x53\x48\xbf\x6a\xc0\xb5\x54\xb5\x55\x6a\xc1\xb5\x56\xb5\x57\x4a\xfb\xb5\x58\x53\x7b\xb5\x59\xb5\x5a\xb5\x5b\xb5\x5c\x56\xba\xb5\x5d\xb5\x5e\xb5\x5f\x58\xe3\xb5\x60\xb5\x61\xb5\x62\xb5\x63\xb5\x64\x57\x81\xb5\x65\xb5\x66\xb5\x67\xb5\x68\xb5\x69\x69\x68\xb5\x6a\x5d\x94\xb5\x6b\xb5\x6c\xb5\x6d\xb5\x6e\xb5\x6f\xb5\x70\x49\x5b\xb5\x71\x58\x4e\xb5\x72\xb5\x73\xb5\x74\x4c\xa3\xb5\x75\xb5\x76\xb5\x77\xb5\x78\xb5\x79\x69\x6a\xb5\x7a\xb5\x7b\xb5\x7c\xb5\x7d\x69\x6b\xb5\x7e\xb5\x7f\xb5\x81\xb5\x82\x49\xc2\x51\x71\xb5\x83\xb5\x84\x5c\x50\x69\x69\xb5\x85\xb5\x86\x69\x6c\xb5\x87\xb5\x88\xb5\x89\xb5\x8a\x69\x6e\xb5\x8b\xb5\x8c\xb5\x8d\x5d\x97\xb5\x8e\x59\xe0\x5a\xa2\xb5\x8f\xb5\x90\x6a\xc2\x54\xb8\xb5\x91\xb5\x92\xb5\x93\xb5\x94\xb5\x95\x6a\xc3\xb5\x96\xb5\x97\x69\x6d\x69\x6f\x50\x84\x69\x70\xb5\x98\xb5\x99\x69\x74\xb5\x9a\xb5\x9b\xb5\x9c\xb5\x9d\xb5\x9e\xb5\x9f\xb5\xa0\x69\x76\x69\x71\xb5\xa1\x55\x71\x53\x82\xb5\xa2\xb5\xa3\xb5\xa4\x51\xe2\x4d\x9d\xb5\xa5\xb5\xa6\x69\x73\xb5\xa7\x69\x75\xb5\xa8", /* 8900 */ "\xb5\xa9\xb5\xaa\x4d\x73\xb5\xab\xb5\xac\xb5\xad\xb5\xae\xb5\xaf\xb5\xb0\xb5\xb1\x69\x7b\xb5\xb2\xb5\xb3\xb5\xb4\xb5\xb5\xb5\xb6\x4d\xd5\xb5\xb7\x48\xfc\x69\x79\xb5\xb8\xb5\xb9\xb5\xba\xb5\xbb\xb5\xbc\x69\x78\x69\x72\x69\x7a\xb5\xbd\xb5\xbe\xb5\xbf\xb5\xc0\xb5\xc1\x69\x77\xb5\xc2\xb5\xc3\xb5\xc4\x54\xeb\xb5\xc5\xb5\xc6\xb5\xc7\xb5\xc8\x57\x6a\x69\x7d\xb5\xc9\xb5\xca\xb5\xcb\xb5\xcc\x63\x5d\xb5\xcd\xb5\xce\xb5\xcf\x69\x7c\xb5\xd0\x69\x7e\xb5\xd1\xb5\xd2\xb5\xd3\xb5\xd4\xb5\xd5\xb5\xd6\xb5\xd7\xb5\xd8\xb5\xd9\xb5\xda\x69\x7f\xb5\xdb\xb5\xdc\x58\x86\xb5\xdd\xb5\xde\xb5\xdf\xb5\xe0\xb5\xe1\xb5\xe2\xb5\xe3\xb5\xe4\xb5\xe5\xb5\xe6\xb5\xe7\xb5\xe8\xb5\xe9\xb5\xea\xb5\xeb\xb5\xec\xb5\xed\xb5\xee\xb5\xef\xb5\xf0\xb5\xf1\xb5\xf2\xb5\xf3\xb5\xf4\xb5\xf5\x6a\xc4\x4f\x94\xb5\xf6\xb5\xf7\xb5\xf8\xb5\xf9\xb5\xfa\xb5\xfb\x69\x81\xb5\xfc\xb5\xfd\xb6\x41\xb6\x42\xb6\x43\xb6\x44\xb6\x45\xb6\x46\xb6\x47\xb6\x48\xb6\x49\xb6\x4a\xb6\x4b\xb6\x4c\xb6\x4d\xb6\x4e\xb6\x4f\xb6\x50\xb6\x51\xb6\x52\x69\x82\xb6\x53\xb6\x54\xb6\x55\x57\xf6", /* 8980 */ "\xb6\x56\x59\xa9\xb6\x57\x69\x9c\xb6\x58\xb6\x59\x4c\xb1\xb6\x5a\xb6\x5b\xb6\x5c\xb6\x5d\xb6\x5e\xb6\x5f\xb6\x60\xb6\x61\xb6\x62\xb6\x63\xb6\x64\xb6\x65\xb6\x66\xb6\x67\xb6\x68\xb6\x69\xb6\x6a\xb6\x6b\xb6\x6c\xb6\x6d\xb6\x6e\xb6\x6f\xb6\x70\xb6\x71\xb6\x72\xb6\x73\xb6\x74\xb6\x75\xb6\x76\xb6\x77\xb6\x78\xb6\x79\xb6\x7a\xb6\x7b\xb6\x7c\xb6\x7d\xb6\x7e\xb6\x7f\xb6\x81\xb6\x82\xb6\x83\xb6\x84\xb6\x85\xb6\x86\xb6\x87\xb6\x88\xb6\x89\xb6\x8a\xb6\x8b\xb6\x8c\xb6\x8d\xb6\x8e\xb6\x8f\xb6\x90\xb6\x91\xb6\x92\xb6\x93\xb6\x94\x4e\xfa\x4d\x7b\xb6\x95\x4d\x87\x52\x79\x55\xd2\x65\xe7\x50\xbf\x4f\xf4\x65\xe8\x65\xe9\x65\xea\xb6\x96\x65\xeb\x65\xec\x65\xed\x65\xee\x4f\x67\xb6\x97\xb6\x98\xb6\x99\x6b\x9c\xb6\x9a\xb6\x9b\xb6\x9c\x6b\x9e\xb6\x9d\x6b\x9f\xb6\x9e\x6b\x9d\xb6\x9f\xb6\xa0\xb6\xa1\xb6\xa2\x4f\x83\xb6\xa3\x6b\xa0\x4a\xa4\xb6\xa4\xb6\xa5\xb6\xa6\xb6\xa7\x6b\xa1\xb6\xa8\xb6\xa9\xb6\xaa\x6b\xa2\xb6\xab\xb6\xac\xb6\xad\x66\xb1\xb6\xae\xb6\xaf\xb6\xb0\xb6\xb1\xb6\xb2\xb6\xb3\xb6\xb4\xb6\xb5\xb6\xb6\xb6\xb7\xb6\xb8\xb6\xb9", /* 8a00 */ "\x59\x74\xb6\xba\xb6\xbb\xb6\xbc\xb6\xbd\xb6\xbe\xb6\xbf\x5d\x8b\xb6\xc0\xb6\xc1\xb6\xc2\xb6\xc3\xb6\xc4\xb6\xc5\xb6\xc6\xb6\xc7\xb6\xc8\xb6\xc9\xb6\xca\xb6\xcb\xb6\xcc\xb6\xcd\xb6\xce\xb6\xcf\xb6\xd0\xb6\xd1\xb6\xd2\xb6\xd3\xb6\xd4\xb6\xd5\xb6\xd6\xb6\xd7\xb6\xd8\xb6\xd9\xb6\xda\xb6\xdb\xb6\xdc\xb6\xdd\xb6\xde\xb6\xdf\xb6\xe0\xb6\xe1\xb6\xe2\xb6\xe3\xb6\xe4\xb6\xe5\xb6\xe6\xb6\xe7\xb6\xe8\xb6\xe9\xb6\xea\xb6\xeb\xb6\xec\xb6\xed\xb6\xee\xb6\xef\xb6\xf0\xb6\xf1\xb6\xf2\xb6\xf3\xb6\xf4\xb6\xf5\x6b\xa3\xb6\xf6\xb6\xf7\xb6\xf8\xb6\xf9\xb6\xfa\xb6\xfb\xb6\xfc\xb6\xfd\xb7\x41\x67\xb9\xb7\x42\xb7\x43\xb7\x44\xb7\x45\xb7\x46\xb7\x47\xb7\x48\xb7\x49\xb7\x4a\xb7\x4b\xb7\x4c\xb7\x4d\xb7\x4e\xb7\x4f\xb7\x50\xb7\x51\xb7\x52\xb7\x53\xb7\x54\xb7\x55\xb7\x56\xb7\x57\xb7\x58\xb7\x59\xb7\x5a\xb7\x5b\xb7\x5c\xb7\x5d\xb7\x5e\xb7\x5f\xb7\x60\xb7\x61\xb7\x62\xb7\x63\xb7\x64\xb7\x65\xb7\x66\xb7\x67\xb7\x68\xb7\x69\xb7\x6a\xb7\x6b\xb7\x6c\xb7\x6d\xb7\x6e\xb7\x6f\xb7\x70\xb7\x71\x5b\x52\xb7\x72\xb7\x73\xb7\x74\xb7\x75\xb7\x76\xb7\x77", /* 8a80 */ "\xb7\x78\xb7\x79\xb7\x7a\xb7\x7b\xb7\x7c\xb7\x7d\xb7\x7e\xb7\x7f\xb7\x81\x5a\x9f\x56\xdb\xb7\x82\xb7\x83\xb7\x84\xb7\x85\xb7\x86\xb7\x87\xb7\x88\xb7\x89\x55\xc3\xb7\x8a\xb7\x8b\xb7\x8c\xb7\x8d\xb7\x8e\xb7\x8f\xb7\x90\xb7\x91\xb7\x92\xb7\x93\xb7\x94\xb7\x95\xb7\x96\xb7\x97\xb7\x98\xb7\x99\xb7\x9a\xb7\x9b\xb7\x9c\xb7\x9d\xb7\x9e\xb7\x9f\xb7\xa0\xb7\xa1\xb7\xa2\xb7\xa3\xb7\xa4\xb7\xa5\xb7\xa6\xb7\xa7\xb7\xa8\xb7\xa9\xb7\xaa\xb7\xab\xb7\xac\xb7\xad\xb7\xae\xb7\xaf\xb7\xb0\xb7\xb1\xb7\xb2\xb7\xb3\xb7\xb4\xb7\xb5\xb7\xb6\xb7\xb7\xb7\xb8\xb7\xb9\xb7\xba\xb7\xbb\xb7\xbc\xb7\xbd\xb7\xbe\xb7\xbf\xb7\xc0\xb7\xc1\xb7\xc2\xb7\xc3\xb7\xc4\xb7\xc5\xb7\xc6\xb7\xc7\xb7\xc8\xb7\xc9\xb7\xca\xb7\xcb\xb7\xcc\xb7\xcd\xb7\xce\xb7\xcf\xb7\xd0\xb7\xd1\xb7\xd2\xb7\xd3\xb7\xd4\xb7\xd5\xb7\xd6\xb7\xd7\xb7\xd8\xb7\xd9\xb7\xda\xb7\xdb\xb7\xdc\xb7\xdd\xb7\xde\xb7\xdf\xb7\xe0\xb7\xe1\xb7\xe2\xb7\xe3\xb7\xe4\xb7\xe5\xb7\xe6\xb7\xe7\xb7\xe8\xb7\xe9\xb7\xea\xb7\xeb\xb7\xec\xb7\xed\xb7\xee\xb7\xef\xb7\xf0\xb7\xf1\xb7\xf2\xb7\xf3\xb7\xf4\xb7\xf5", /* 8b00 */ "\xb7\xf6\xb7\xf7\xb7\xf8\xb7\xf9\xb7\xfa\xb7\xfb\xb7\xfc\x63\x60\xb7\xfd\xb8\x41\xb8\x42\xb8\x43\xb8\x44\xb8\x45\xb8\x46\xb8\x47\xb8\x48\xb8\x49\xb8\x4a\xb8\x4b\xb8\x4c\xb8\x4d\xb8\x4e\xb8\x4f\xb8\x50\xb8\x51\xb8\x52\xb8\x53\xb8\x54\xb8\x55\xb8\x56\xb8\x57\xb8\x58\xb8\x59\xb8\x5a\xb8\x5b\xb8\x5c\xb8\x5d\x6b\xa4\xb8\x5e\xb8\x5f\xb8\x60\xb8\x61\xb8\x62\xb8\x63\xb8\x64\xb8\x65\xb8\x66\xb8\x67\xb8\x68\xb8\x69\xb8\x6a\xb8\x6b\xb8\x6c\xb8\x6d\xb8\x6e\xb8\x6f\xb8\x70\xb8\x71\xb8\x72\xb8\x73\xb8\x74\xb8\x75\xb8\x76\xb8\x77\xb8\x78\xb8\x79\xb8\x7a\xb8\x7b\xb8\x7c\xb8\x7d\xb8\x7e\xb8\x7f\xb8\x81\xb8\x82\xb8\x83\xb8\x84\xb8\x85\xb8\x86\xb8\x87\xb8\x88\xb8\x89\xb8\x8a\xb8\x8b\xb8\x8c\xb8\x8d\xb8\x8e\xb8\x8f\xb8\x90\xb8\x91\xb8\x92\xb8\x93\xb8\x94\xb8\x95\xb8\x96\xb8\x97\xb8\x98\xb8\x99\xb8\x9a\xb8\x9b\xb8\x9c\xb8\x9d\x4f\xae\xb8\x9e\xb8\x9f\xb8\xa0\xb8\xa1\xb8\xa2\x53\xa8\xb8\xa3\xb8\xa4\xb8\xa5\xb8\xa6\xb8\xa7\xb8\xa8\xb8\xa9\xb8\xaa\xb8\xab\xb8\xac\xb8\xad\xb8\xae\xb8\xaf\xb8\xb0\xb8\xb1\xb8\xb2\xb8\xb3\xb8\xb4\xb8\xb5", /* 8b80 */ "\xb8\xb6\xb8\xb7\xb8\xb8\xb8\xb9\xb8\xba\xb8\xbb\xb8\xbc\xb8\xbd\xb8\xbe\xb8\xbf\xb8\xc0\xb8\xc1\xb8\xc2\xb8\xc3\xb8\xc4\xb8\xc5\xb8\xc6\xb8\xc7\xb8\xc8\xb8\xc9\xb8\xca\xb8\xcb\xb8\xcc\xb8\xcd\xb8\xce\xb8\xcf\xb8\xd0\xb8\xd1\xb8\xd2\xb8\xd3\xb8\xd4\xb8\xd5\x5d\xa4\x4e\xc5\x4b\xa8\x4c\xbb\x54\xce\x4e\xa4\x5d\xa5\x5d\xa6\x56\xd5\x54\xc2\x5d\xa7\x53\xfc\xb8\xd6\x59\x55\x59\xe8\x59\x56\x4e\xc6\xb8\xd7\x4f\x52\x4e\x85\x5d\xa8\x5d\xa9\x59\x68\x5d\xaa\x58\xec\x4b\xee\x51\xda\xb8\xd8\x56\x6f\x4c\x8e\x55\x89\x4c\x63\x4f\xf6\x5b\xa3\x5d\xab\x5d\xac\x53\xbf\x5c\x88\x55\xb5\xb8\xd9\x5b\x49\x56\x7f\x5b\x90\x5d\xad\x5b\xde\x4a\xc9\x5d\xaf\x5d\xae\xb8\xda\x59\xea\x5d\xb0\x5d\xb1\x5d\xb2\x55\xd3\x5d\xb3\x55\xaa\x5d\xb4\x5d\xb5\x4a\x6f\x5b\xee\x5d\xb6\x4e\x50\x4b\x4e\x5d\xb7\x5d\xb8\x4d\x8f\x59\x4f\x59\xe7\x5d\xb9\x4c\xc2\x58\x8b\x49\xee\x5d\xba\x5d\xbb\xb8\xdb\x4f\x8c\x57\xdb\x5a\x90\x5d\xbc\x57\xf2\x5d\xbd\x5a\x75\x4e\x86\x5d\xbe\x56\x55\x56\x70\x5d\xbf\x54\x8c\x5b\xed\x5d\xc0\x53\x55\x4b\xc0\x5d\xc1\x4c\x6c\x50\x6e\x5d\xc2", /* 8c00 */ "\x5d\xc3\x56\x4d\x5d\xc4\x4b\x98\x5d\xc5\x51\x62\x5c\x5b\x5d\xc6\x56\xb7\xb8\xdc\x59\xe9\x52\xb0\x5d\xc7\x4b\x9e\x4e\x71\x5d\xc8\x58\xb2\x5d\xc9\x5d\xca\x57\xbc\x5d\xcb\x5d\xcc\x5d\xcd\x49\xf6\x5d\xd0\x5d\xce\x59\x89\x5d\xcf\x52\x75\x5d\xd1\xb8\xdd\x5d\xd2\x5d\xd3\x5d\xd4\x58\xba\x59\xa4\x48\xf8\x5d\xd5\x54\x4b\x5d\xd6\x4f\x98\x52\x41\x5d\xd7\x5d\xd8\x52\x9e\x56\xb6\x5d\xd9\x5d\xda\x50\xbd\x53\xd6\x5d\xdb\x5d\xdc\x54\x54\x5d\xdd\x5d\xde\x4d\x68\xb8\xde\xb8\xdf\xb8\xe0\xb8\xe1\xb8\xe2\xb8\xe3\xb8\xe4\xb8\xe5\xb8\xe6\x4e\x8e\xb8\xe7\xb8\xe8\xb8\xe9\xb8\xea\x4b\xb8\x6a\xf7\xb8\xeb\x6a\xf8\xb8\xec\xb8\xed\x57\x84\xb8\xee\xb8\xef\xb8\xf0\xb8\xf1\xb8\xf2\xb8\xf3\xb8\xf4\xb8\xf5\x6b\x59\xb8\xf6\xb8\xf7\xb8\xf8\xb8\xf9\x66\x81\xb8\xfa\xb8\xfb\xb8\xfc\xb8\xfd\xb9\x41\xb9\x42\x58\x94\x4e\x5f\xb9\x43\xb9\x44\xb9\x45\xb9\x46\xb9\x47\xb9\x48\xb9\x49\x4d\xbf\x5a\xa4\xb9\x4a\xb9\x4b\xb9\x4c\xb9\x4d\xb9\x4e\xb9\x4f\xb9\x50\x61\x79\xb9\x51\xb9\x52\xb9\x53\xb9\x54\x6b\x95\x49\x4a\x49\xf1\xb9\x55\xb9\x56\xb9\x57\xb9\x58\xb9\x59", /* 8c80 */ "\xb9\x5a\xb9\x5b\x6b\x96\xb9\x5c\xb9\x5d\x6b\x98\xb9\x5e\xb9\x5f\xb9\x60\x4d\xd0\x6b\x97\xb9\x61\x52\x52\xb9\x62\xb9\x63\xb9\x64\xb9\x65\xb9\x66\xb9\x67\xb9\x68\x6b\x9a\xb9\x69\xb9\x6a\xb9\x6b\x6b\x99\xb9\x6c\xb9\x6d\xb9\x6e\xb9\x6f\xb9\x70\xb9\x71\xb9\x72\xb9\x73\xb9\x74\xb9\x75\xb9\x76\xb9\x77\xb9\x78\xb9\x79\xb9\x7a\xb9\x7b\xb9\x7c\xb9\x7d\xb9\x7e\xb9\x7f\xb9\x81\xb9\x82\xb9\x83\xb9\x84\xb9\x85\xb9\x86\xb9\x87\xb9\x88\xb9\x89\xb9\x8a\xb9\x8b\xb9\x8c\xb9\x8d\xb9\x8e\xb9\x8f\xb9\x90\xb9\x91\xb9\x92\xb9\x93\xb9\x94\xb9\x95\xb9\x96\xb9\x97\xb9\x98\xb9\x99\xb9\x9a\xb9\x9b\xb9\x9c\xb9\x9d\xb9\x9e\xb9\x9f\xb9\xa0\xb9\xa1\xb9\xa2\xb9\xa3\xb9\xa4\xb9\xa5\xb9\xa6\xb9\xa7\xb9\xa8\xb9\xa9\xb9\xaa\xb9\xab\xb9\xac\xb9\xad\xb9\xae\xb9\xaf\xb9\xb0\xb9\xb1\xb9\xb2\xb9\xb3\xb9\xb4\xb9\xb5\xb9\xb6\xb9\xb7\xb9\xb8\xb9\xb9\xb9\xba\xb9\xbb\xb9\xbc\xb9\xbd\xb9\xbe\xb9\xbf\xb9\xc0\xb9\xc1\xb9\xc2\xb9\xc3\xb9\xc4\xb9\xc5\xb9\xc6\xb9\xc7\xb9\xc8\xb9\xc9\xb9\xca\xb9\xcb\xb9\xcc\xb9\xcd\xb9\xce\xb9\xcf\xb9\xd0\xb9\xd1\xb9\xd2\xb9\xd3", /* 8d00 */ "\xb9\xd4\xb9\xd5\xb9\xd6\xb9\xd7\xb9\xd8\xb9\xd9\xb9\xda\xb9\xdb\xb9\xdc\xb9\xdd\xb9\xde\xb9\xdf\xb9\xe0\xb9\xe1\xb9\xe2\xb9\xe3\xb9\xe4\xb9\xe5\xb9\xe6\xb9\xe7\xb9\xe8\xb9\xe9\xb9\xea\xb9\xeb\xb9\xec\xb9\xed\xb9\xee\xb9\xef\xb9\xf0\x49\x54\x5b\x8b\x4c\xb9\xb9\xf1\x4d\x51\x49\xc5\x5a\xef\x58\x6d\x48\xdb\x5b\x6b\x4e\x96\x5b\xc9\x4c\x57\x56\xaf\x53\xb5\x49\x82\x4d\x5a\x5b\xfb\x4d\x82\x4c\x41\x4e\xf9\x65\xd9\x65\xda\x56\xf8\x4d\x94\x65\xdb\x4a\xfa\x52\x53\x4c\x71\x4d\xd7\x65\xdc\x5a\xf3\x65\xdd\x4e\xd5\x4e\x7f\x65\xde\x51\x7e\x51\xb7\x5a\xde\x5c\x6a\x65\xdf\x65\xe0\x65\xe3\x65\xe1\x65\xe2\x55\x7e\x4c\xb2\x4b\xc3\x65\xe4\x55\xe9\x55\x6d\x4a\xcc\xb9\xf2\xb9\xf3\x61\xd8\x53\x83\x65\xe5\x50\xb4\xb9\xf4\x5c\x58\x65\xe6\x5c\x4c\x54\xfb\x5c\xd2\x5c\xcc\x5a\xdd\xb9\xf5\x5a\xf8\x55\x64\x5a\x4e\x4c\xd2\x4a\x81\xb9\xf6\x55\x83\x6a\xf5\xb9\xf7\xb9\xf8\xb9\xf9\x4d\xd4\xb9\xfa\x6a\xf6\xb9\xfb\xb9\xfc\x5c\x7f\xb9\xfd\xba\x41\x6a\xf0\x4c\xaf\x5b\x74\x4c\xce\x53\xef\xba\x42\xba\x43\xba\x44\xba\x45\xba\x46\xba\x47\xba\x48\xba\x49", /* 8d80 */ "\xba\x4a\x4a\x63\xba\x4b\xba\x4c\x6a\xf1\x4a\x4c\xba\x4d\xba\x4e\xba\x4f\xba\x50\x5a\xbc\x54\x98\xba\x51\xba\x52\xba\x53\xba\x54\xba\x55\x6a\xf3\xba\x56\xba\x57\x6a\xf2\xba\x58\xba\x59\xba\x5a\xba\x5b\xba\x5c\xba\x5d\xba\x5e\xba\x5f\xba\x60\xba\x61\x56\xca\xba\x62\xba\x63\xba\x64\x54\xa3\xba\x65\xba\x66\xba\x67\xba\x68\xba\x69\xba\x6a\xba\x6b\xba\x6c\xba\x6d\xba\x6e\xba\x6f\xba\x70\xba\x71\x6a\xf4\xba\x72\x5c\x84\x53\x5f\x6b\x60\xba\x73\xba\x74\x6b\x5b\xba\x75\x6b\x63\xba\x76\x6b\x62\xba\x77\x5b\xb9\x6b\x61\xba\x78\xba\x79\xba\x7a\x5a\xbd\x6b\x64\xba\x7b\x6b\x6c\xba\x7c\xba\x7d\xba\x7e\xba\x7f\x48\xce\x4b\x99\xba\x81\x6b\x69\x6b\x6a\xba\x82\x53\x7c\xba\x83\xba\x84\xba\x85\xba\x86\x6b\x65\x6b\x66\xba\x87\xba\x88\x6b\x67\x6b\x6b\xba\x89\x4f\xdf\x6b\x68\x4c\xf9\xba\x8a\xba\x8b\xba\x8c\x6b\x70\x6b\x73\xba\x8d\xba\x8e\xba\x8f\x50\x88\xba\x90\x4d\x93\x6b\x5c\x6b\x6d\xba\x91\xba\x92\x51\xb6\xba\x93\xba\x94\xba\x95\x56\xf7\xba\x96\x4e\xf8\xba\x97\x6b\x6e\x6b\x6f\x6b\x71\x4b\xe4\x6b\x72\xba\x98\x6b\x75\xba\x99\xba\x9a", /* 8e00 */ "\xba\x9b\xba\x9c\xba\x9d\xba\x9e\xba\x9f\x6b\x5d\xba\xa0\xba\xa1\xba\xa2\x6b\x74\x5a\x5b\xba\xa3\x4a\x8d\xba\xa4\xba\xa5\x56\xa3\xba\xa6\xba\xa7\xba\xa8\xba\xa9\x6b\x76\xba\xaa\xba\xab\xba\xac\xba\xad\xba\xae\xba\xaf\xba\xb0\xba\xb1\x6b\x77\x4f\xe0\x6b\x78\xba\xb2\xba\xb3\x56\xde\x6b\x7b\xba\xb4\xba\xb5\xba\xb6\xba\xb7\xba\xb8\x49\xc7\x5c\x79\xba\xb9\x6b\x79\xba\xba\x6b\x7a\x6b\x7c\xba\xbb\x6b\x83\xba\xbc\xba\xbd\xba\xbe\x6b\x81\xba\xbf\xba\xc0\xba\xc1\x6b\x7f\x6b\x7d\xba\xc2\xba\xc3\x6b\x82\xba\xc4\xba\xc5\x6b\x7e\x6b\x85\x6b\x86\xba\xc6\x56\xe2\xba\xc7\xba\xc8\x63\x5f\x4b\x58\x6b\x84\x6b\x89\x56\xa2\xba\xc9\xba\xca\xba\xcb\xba\xcc\xba\xcd\x6b\x87\x6b\x88\xba\xce\xba\xcf\xba\xd0\xba\xd1\xba\xd2\xba\xd3\x6b\x5e\xba\xd4\xba\xd5\xba\xd6\xba\xd7\xba\xd8\xba\xd9\xba\xda\xba\xdb\xba\xdc\xba\xdd\xba\xde\xba\xdf\x49\x64\xba\xe0\xba\xe1\x6b\x5f\xba\xe2\xba\xe3\x4b\x65\x49\xe3\xba\xe4\x6b\x8d\x6b\x8a\xba\xe5\x4b\xd6\xba\xe6\x6b\x8e\xba\xe7\x6b\x8b\xba\xe8\xba\xe9\xba\xea\xba\xeb\xba\xec\x6b\x8c\xba\xed\xba\xee\x4a\xd9", /* 8e80 */ "\xba\xef\x5a\xe9\xba\xf0\xba\xf1\xba\xf2\x6b\x8f\xba\xf3\x4a\x9a\xba\xf4\xba\xf5\xba\xf6\xba\xf7\xba\xf8\xba\xf9\xba\xfa\x6b\x90\x6b\x92\xba\xfb\xba\xfc\xba\xfd\x6b\x91\xbb\x41\xbb\x42\xbb\x43\xbb\x44\xbb\x45\xbb\x46\xbb\x47\x6b\x93\xbb\x48\x6b\x94\xbb\x49\xbb\x4a\xbb\x4b\xbb\x4c\xbb\x4d\xbb\x4e\xbb\x4f\xbb\x50\xbb\x51\xbb\x52\xbb\x53\xbb\x54\x55\x8e\x4d\x4a\xbb\x55\xbb\x56\x54\x9c\xbb\x57\xbb\x58\x4b\xe2\xbb\x59\xbb\x5a\xbb\x5b\xbb\x5c\xbb\x5d\xbb\x5e\xbb\x5f\x56\xc8\xbb\x60\xbb\x61\xbb\x62\xbb\x63\xbb\x64\xbb\x65\xbb\x66\xbb\x67\xbb\x68\xbb\x69\xbb\x6a\xbb\x6b\xbb\x6c\xbb\x6d\xbb\x6e\xbb\x6f\xbb\x70\xbb\x71\xbb\x72\x65\xa5\xbb\x73\xbb\x74\xbb\x75\xbb\x76\xbb\x77\xbb\x78\xbb\x79\xbb\x7a\xbb\x7b\xbb\x7c\xbb\x7d\xbb\x7e\xbb\x7f\xbb\x81\xbb\x82\xbb\x83\xbb\x84\xbb\x85\xbb\x86\xbb\x87\xbb\x88\xbb\x89\xbb\x8a\xbb\x8b\xbb\x8c\xbb\x8d\xbb\x8e\xbb\x8f\xbb\x90\xbb\x91\xbb\x92\xbb\x93\xbb\x94\xbb\x95\xbb\x96\xbb\x97\xbb\x98\xbb\x99\xbb\x9a\xbb\x9b\xbb\x9c\xbb\x9d\xbb\x9e\xbb\x9f\xbb\xa0\xbb\xa1\xbb\xa2\xbb\xa3\xbb\xa4", /* 8f00 */ "\xbb\xa5\xbb\xa6\xbb\xa7\xbb\xa8\xbb\xa9\xbb\xaa\xbb\xab\xbb\xac\xbb\xad\xbb\xae\xbb\xaf\xbb\xb0\xbb\xb1\xbb\xb2\xbb\xb3\xbb\xb4\xbb\xb5\xbb\xb6\xbb\xb7\xbb\xb8\xbb\xb9\xbb\xba\xbb\xbb\xbb\xbc\xbb\xbd\xbb\xbe\xbb\xbf\xbb\xc0\xbb\xc1\xbb\xc2\xbb\xc3\xbb\xc4\xbb\xc5\xbb\xc6\xbb\xc7\xbb\xc8\xbb\xc9\xbb\xca\xbb\xcb\xbb\xcc\xbb\xcd\xbb\xce\xbb\xcf\xbb\xd0\xbb\xd1\xbb\xd2\xbb\xd3\xbb\xd4\xbb\xd5\xbb\xd6\xbb\xd7\xbb\xd8\xbb\xd9\xbb\xda\xbb\xdb\xbb\xdc\xbb\xdd\xbb\xde\xbb\xdf\xbb\xe0\xbb\xe1\xbb\xe2\xbb\xe3\xbb\xe4\xbb\xe5\xbb\xe6\xbb\xe7\xbb\xe8\xbb\xe9\xbb\xea\xbb\xeb\xbb\xec\xbb\xed\xbb\xee\xbb\xef\xbb\xf0\xbb\xf1\xbb\xf2\xbb\xf3\xbb\xf4\xbb\xf5\xbb\xf6\xbb\xf7\xbb\xf8\xbb\xf9\xbb\xfa\xbb\xfb\xbb\xfc\xbb\xfd\xbc\x41\xbc\x42\xbc\x43\xbc\x44\xbc\x45\xbc\x46\xbc\x47\xbc\x48\xbc\x49\xbc\x4a\xbc\x4b\xbc\x4c\xbc\x4d\x4a\x55\x5a\xfd\x4d\x8d\x58\xf8\xbc\x4e\x65\x8e\x5c\x4a\x65\x8f\x51\xd5\x54\xec\x4d\xe3\x65\x90\x65\x91\x65\x92\x5b\xe0\x65\x93\x65\x94\x65\x96\x65\x95\x65\x97\x65\x98\x54\x82\x65\x99\x5a\xd7\x65\x9a\x4f\x6e", /* 8f80 */ "\xbc\x4f\x65\x9b\x65\x9c\x4f\x6f\x65\x9d\x4c\xa7\x51\x5e\x65\x9e\x49\x52\x4e\x74\x4d\x96\x65\x9f\xbc\x50\x65\xa0\x65\xa1\x65\xa2\x4c\x99\x4e\xac\xbc\x51\x55\xe3\x60\xcd\x5a\xae\x58\x5d\x5b\x57\x65\xa3\x5b\x7e\x65\xa4\x58\xc0\x4d\x5c\xbc\x52\x4a\xc6\x49\x79\xbc\x53\xbc\x54\xbc\x55\x50\xb0\xbc\x56\xbc\x57\xbc\x58\xbc\x59\x49\x87\x49\x88\xbc\x5a\x49\x89\xbc\x5b\xbc\x5c\xbc\x5d\xbc\x5e\x4a\x5d\x54\xe7\xbc\x5f\xbc\x60\xbc\x61\xbc\x62\x63\x61\xbc\x63\xbc\x64\x49\x7f\xbc\x65\xbc\x66\xbc\x67\x51\x69\x4a\xee\xbc\x68\xbc\x69\x54\x48\x5a\x78\xbc\x6a\x53\xf8\x59\x58\xbc\x6b\x4d\x9e\x51\xf4\xbc\x6c\xbc\x6d\xbc\x6e\xbc\x6f\xbc\x70\x5a\x4d\xbc\x71\x5a\xca\x4f\x9d\xbc\x72\x63\x62\x4c\x55\x63\x63\xbc\x73\xbc\x74\x4e\x59\x5b\x83\xbc\x75\x4f\x99\x5a\xb5\x57\xa4\x51\x4c\x4a\x79\xbc\x76\xbc\x77\x56\xf5\xbc\x78\x63\x66\x63\x64\x63\x68\xbc\x79\x63\x6a\x63\x67\x4b\x6f\x53\xc7\xbc\x7a\x4b\x9d\x63\x65\xbc\x7b\x55\xf5\xbc\x7c\xbc\x7d\x63\x69\xbc\x7e\xbc\x7f\xbc\x81\x52\x74\x49\x65\x4e\xa2\xbc\x82\xbc\x83\xbc\x84\x5c\x57\xbc\x85\xbc\x86", /* 9000 */ "\x57\x6b\x56\x6d\x55\xc9\x56\xd2\x63\x6c\x63\x6b\x52\xe5\xbc\x87\xbc\x88\x59\x41\x59\x57\x63\x6d\xbc\x89\x63\x70\xbc\x8a\x57\x58\x5b\xef\x63\x6f\x4b\x7d\xbc\x8b\x57\x5e\xbc\x8c\x63\x71\x4b\xb9\xbc\x8d\xbc\x8e\x57\x48\x4d\x85\xbc\x8f\x55\xc4\x4a\x71\x56\x79\x5a\xeb\x63\x72\x4c\x8b\xbc\x90\xbc\x91\xbc\x92\x63\x6e\xbc\x93\xbc\x94\xbc\x95\xbc\x96\xbc\x97\xbc\x98\x63\x75\x4a\xfd\x63\x76\xbc\x99\xbc\x9a\xbc\x9b\xbc\x9c\xbc\x9d\x63\x73\x63\x74\xbc\x9e\x59\xdc\xbc\x9f\xbc\xa0\x51\xde\x49\x66\xbc\xa1\x5a\x83\xbc\xa2\xbc\xa3\x4b\xdc\x56\x8d\xbc\xa4\x63\x77\xbc\xa5\xbc\xa6\x5a\x97\xbc\xa7\xbc\xa8\xbc\xa9\xbc\xaa\xbc\xab\x49\x8a\xbc\xac\x4b\xf3\x63\x7a\x63\x78\x63\x79\x4b\x60\xbc\xad\xbc\xae\xbc\xaf\x59\xc4\x63\x7c\xbc\xb0\xbc\xb1\x63\x7e\xbc\xb2\xbc\xb3\xbc\xb4\xbc\xb5\xbc\xb6\xbc\xb7\x63\x7d\x54\x52\xbc\xb8\x59\xa2\xbc\xb9\xbc\xba\x63\x7b\xbc\xbb\xbc\xbc\xbc\xbd\xbc\xbe\x5a\xe1\x5b\x7a\xbc\xbf\xbc\xc0\xbc\xc1\xbc\xc2\xbc\xc3\x63\x81\x5c\x92\xbc\xc4\xbc\xc5\xbc\xc6\xbc\xc7\xbc\xc8\xbc\xc9\xbc\xca\x63\x82\xbc\xcb\x49\x7c", /* 9080 */ "\x59\x9c\xbc\xcc\x63\x83\x63\x85\xbc\xcd\xbc\xce\xbc\xcf\xbc\xd0\x63\x84\xbc\xd1\xbc\xd2\x63\x86\xbc\xd3\xbc\xd4\xbc\xd5\xbc\xd6\xbc\xd7\x59\xd7\xbc\xd8\x4b\x6b\xbc\xd9\x64\x7f\xbc\xda\x5d\xf4\xbc\xdb\x5d\xf7\xbc\xdc\x5d\xf5\xbc\xdd\x5d\xf6\xbc\xde\xbc\xdf\xbc\xe0\x5d\xf9\x58\xce\x52\xc6\xbc\xe1\xbc\xe2\x48\xed\xbc\xe3\xbc\xe4\xbc\xe5\x58\xaf\xbc\xe6\x5d\xf8\xbc\xe7\x5a\x6a\x4d\xa9\x5e\x42\x54\x92\xbc\xe8\x5d\xfb\x5d\xfa\x55\x7b\x5d\xfc\xbc\xe9\x5e\x41\x5c\x7e\x5d\xfd\x51\x7a\xbc\xea\xbc\xeb\x5e\x45\xbc\xec\xbc\xed\x5a\x95\xbc\xee\xbc\xef\x5e\x47\x5e\x44\xbc\xf0\x5e\x48\xbc\xf1\xbc\xf2\x4f\x5c\xbc\xf3\xbc\xf4\xbc\xf5\x50\xc8\x5e\x43\x5e\x46\x5b\xa2\xbc\xf6\x5e\x49\xbc\xf7\xbc\xf8\xbc\xf9\x5e\x4d\xbc\xfa\xbc\xfb\xbc\xfc\x5e\x4e\x5e\x4c\x4d\xc1\xbc\xfd\xbd\x41\xbd\x42\x50\x44\x5e\x4b\xbd\x43\xbd\x44\xbd\x45\x5e\x4a\x5a\xc6\x49\xbe\xbd\x46\xbd\x47\x5e\x4f\xbd\x48\x4d\x9a\xbd\x49\x5e\x50\xbd\x4a\xbd\x4b\xbd\x4c\xbd\x4d\x4a\x5b\xbd\x4e\xbd\x4f\xbd\x50\x4b\x46\xbd\x51\xbd\x52\xbd\x53\xbd\x54\x4b\xbb\x5e\x51\xbd\x55", /* 9100 */ "\xbd\x56\xbd\x57\x4b\xf4\xbd\x58\x5e\x52\xbd\x59\xbd\x5a\xbd\x5b\xbd\x5c\xbd\x5d\xbd\x5e\xbd\x5f\xbd\x60\xbd\x61\xbd\x62\xbd\x63\xbd\x64\xbd\x65\xbd\x66\xbd\x67\xbd\x68\xbd\x69\xbd\x6a\xbd\x6b\xbd\x6c\x49\x69\xbd\x6d\xbd\x6e\xbd\x6f\xbd\x70\x5e\x54\xbd\x71\xbd\x72\xbd\x73\x5e\x53\x5e\x55\xbd\x74\xbd\x75\xbd\x76\xbd\x77\xbd\x78\xbd\x79\xbd\x7a\xbd\x7b\xbd\x7c\xbd\x7d\xbd\x7e\x5e\x57\xbd\x7f\x5e\x56\xbd\x81\xbd\x82\xbd\x83\xbd\x84\xbd\x85\xbd\x86\xbd\x87\x5e\x58\xbd\x88\xbd\x89\xbd\x8a\xbd\x8b\xbd\x8c\xbd\x8d\xbd\x8e\xbd\x8f\xbd\x90\x5e\x59\xbd\x91\xbd\x92\x5e\x5a\xbd\x93\xbd\x94\x5a\x6f\x6a\xf9\x54\x96\x5c\x63\x53\x85\x6a\xfb\x6a\xfc\x6a\xfa\xbd\x95\x4f\xc5\xbd\x96\xbd\x97\xbd\x98\xbd\x99\x58\xee\xbd\x9a\xbd\x9b\x4c\x73\xbd\x9c\xbd\x9d\x5a\xcc\x56\xa9\xbd\x9e\xbd\x9f\x6b\x42\x6b\x41\x4d\xa7\x6a\xfd\x56\x76\xbd\xa0\xbd\xa1\xbd\xa2\x6b\x44\x50\xd1\xbd\xa3\x4a\x8b\xbd\xa4\x57\x4a\x6b\x45\x6b\x43\x4f\x54\x6b\x48\xbd\xa5\x6b\x49\x4f\x6d\x52\x58\x50\x82\x56\x82\x6b\x4a\xbd\xa6\xbd\xa7\xbd\xa8\x6b\x46\x6b\x47\x52\xef", /* 9180 */ "\xbd\xa9\xbd\xaa\xbd\xab\xbd\xac\xbd\xad\x6b\x4c\xbd\xae\x4a\xbb\xbd\xaf\x5c\x8e\xbd\xb0\x4a\xd6\x6b\x4b\x6b\x4e\xbd\xb1\xbd\xb2\x6b\x4d\x6b\x4f\x58\xd0\xbd\xb3\xbd\xb4\xbd\xb5\xbd\xb6\xbd\xb7\xbd\xb8\xbd\xb9\x52\x71\x54\xa8\xbd\xba\xbd\xbb\xbd\xbc\xbd\xbd\xbd\xbe\xbd\xbf\x6b\x50\x6b\x51\xbd\xc0\xbd\xc1\xbd\xc2\xbd\xc3\xbd\xc4\xbd\xc5\x6b\x52\xbd\xc6\xbd\xc7\x6b\x53\x6b\x54\x6b\x55\xbd\xc8\xbd\xc9\xbd\xca\xbd\xcb\x6b\x57\x6b\x56\xbd\xcc\xbd\xcd\xbd\xce\xbd\xcf\x6b\x58\xbd\xd0\xbd\xd1\xbd\xd2\xbd\xd3\xbd\xd4\xbd\xd5\xbd\xd6\xbd\xd7\xbd\xd8\xbd\xd9\xbd\xda\xbd\xdb\x49\xc8\xbd\xdc\x5a\x74\x55\xcc\xbd\xdd\x50\xee\x5b\xd7\x59\xaf\x51\x5f\xbd\xde\x4f\x91\xbd\xdf\xbd\xe0\xbd\xe1\xbd\xe2\xbd\xe3\xbd\xe4\xbd\xe5\xbd\xe6\xbd\xe7\xbd\xe8\x4c\xa9\xbd\xe9\xbd\xea\xbd\xeb\xbd\xec\xbd\xed\xbd\xee\xbd\xef\xbd\xf0\xbd\xf1\xbd\xf2\xbd\xf3\xbd\xf4\xbd\xf5\xbd\xf6\xbd\xf7\xbd\xf8\xbd\xf9\xbd\xfa\xbd\xfb\xbd\xfc\xbd\xfd\xbe\x41\xbe\x42\xbe\x43\xbe\x44\xbe\x45\xbe\x46\xbe\x47\xbe\x48\xbe\x49\xbe\x4a\xbe\x4b\xbe\x4c\xbe\x4d\xbe\x4e", /* 9200 */ "\xbe\x4f\xbe\x50\xbe\x51\xbe\x52\xbe\x53\xbe\x54\xbe\x55\xbe\x56\xbe\x57\xbe\x58\xbe\x59\xbe\x5a\xbe\x5b\xbe\x5c\xbe\x5d\xbe\x5e\xbe\x5f\xbe\x60\xbe\x61\xbe\x62\xbe\x63\xbe\x64\xbe\x65\xbe\x66\xbe\x67\xbe\x68\xbe\x69\xbe\x6a\xbe\x6b\xbe\x6c\xbe\x6d\xbe\x6e\xbe\x6f\xbe\x70\xbe\x71\xbe\x72\xbe\x73\xbe\x74\xbe\x75\xbe\x76\xbe\x77\xbe\x78\xbe\x79\xbe\x7a\xbe\x7b\xbe\x7c\xbe\x7d\xbe\x7e\xbe\x7f\xbe\x81\xbe\x82\xbe\x83\xbe\x84\xbe\x85\xbe\x86\xbe\x87\xbe\x88\xbe\x89\xbe\x8a\xbe\x8b\xbe\x8c\xbe\x8d\xbe\x8e\xbe\x8f\xbe\x90\xbe\x91\xbe\x92\xbe\x93\xbe\x94\xbe\x95\xbe\x96\xbe\x97\xbe\x98\xbe\x99\xbe\x9a\xbe\x9b\xbe\x9c\xbe\x9d\xbe\x9e\xbe\x9f\xbe\xa0\xbe\xa1\xbe\xa2\xbe\xa3\xbe\xa4\xbe\xa5\xbe\xa6\xbe\xa7\xbe\xa8\xbe\xa9\xbe\xaa\xbe\xab\xbe\xac\xbe\xad\xbe\xae\xbe\xaf\xbe\xb0\xbe\xb1\xbe\xb2\xbe\xb3\xbe\xb4\xbe\xb5\xbe\xb6\xbe\xb7\xbe\xb8\xbe\xb9\xbe\xba\xbe\xbb\xbe\xbc\xbe\xbd\xbe\xbe\xbe\xbf\xbe\xc0\xbe\xc1\xbe\xc2\xbe\xc3\x4e\xf7\xbe\xc4\xbe\xc5\xbe\xc6\xbe\xc7\xbe\xc8\xbe\xc9\xbe\xca\xbe\xcb\xbe\xcc\xbe\xcd\xbe\xce", /* 9280 */ "\xbe\xcf\xbe\xd0\xbe\xd1\xbe\xd2\xbe\xd3\xbe\xd4\xbe\xd5\xbe\xd6\xbe\xd7\xbe\xd8\xbe\xd9\xbe\xda\xbe\xdb\xbe\xdc\x6b\xc5\xbe\xdd\xbe\xde\xbe\xdf\xbe\xe0\xbe\xe1\xbe\xe2\xbe\xe3\xbe\xe4\xbe\xe5\xbe\xe6\xbe\xe7\xbe\xe8\xbe\xe9\xbe\xea\xbe\xeb\xbe\xec\xbe\xed\xbe\xee\xbe\xef\xbe\xf0\xbe\xf1\xbe\xf2\xbe\xf3\xbe\xf4\xbe\xf5\xbe\xf6\xbe\xf7\xbe\xf8\xbe\xf9\xbe\xfa\xbe\xfb\x6b\xc6\xbe\xfc\xbe\xfd\xbf\x41\xbf\x42\xbf\x43\xbf\x44\xbf\x45\xbf\x46\xbf\x47\xbf\x48\xbf\x49\xbf\x4a\xbf\x4b\xbf\x4c\xbf\x4d\xbf\x4e\xbf\x4f\xbf\x50\xbf\x51\xbf\x52\xbf\x53\xbf\x54\xbf\x55\xbf\x56\xbf\x57\x6b\xc7\xbf\x58\xbf\x59\xbf\x5a\xbf\x5b\xbf\x5c\xbf\x5d\xbf\x5e\xbf\x5f\xbf\x60\xbf\x61\xbf\x62\xbf\x63\xbf\x64\xbf\x65\xbf\x66\xbf\x67\xbf\x68\xbf\x69\xbf\x6a\xbf\x6b\xbf\x6c\xbf\x6d\xbf\x6e\xbf\x6f\xbf\x70\xbf\x71\xbf\x72\xbf\x73\xbf\x74\xbf\x75\xbf\x76\xbf\x77\xbf\x78\xbf\x79\xbf\x7a\xbf\x7b\xbf\x7c\xbf\x7d\xbf\x7e\xbf\x7f\xbf\x81\xbf\x82\xbf\x83\xbf\x84\xbf\x85\xbf\x86\xbf\x87\xbf\x88\xbf\x89\xbf\x8a\xbf\x8b\xbf\x8c\xbf\x8d\xbf\x8e\xbf\x8f", /* 9300 */ "\xbf\x90\xbf\x91\xbf\x92\xbf\x93\xbf\x94\xbf\x95\xbf\x96\xbf\x97\xbf\x98\xbf\x99\xbf\x9a\xbf\x9b\xbf\x9c\xbf\x9d\xbf\x9e\xbf\x9f\xbf\xa0\xbf\xa1\xbf\xa2\xbf\xa3\xbf\xa4\xbf\xa5\xbf\xa6\xbf\xa7\xbf\xa8\xbf\xa9\xbf\xaa\xbf\xab\xbf\xac\xbf\xad\xbf\xae\xbf\xaf\xbf\xb0\xbf\xb1\xbf\xb2\xbf\xb3\xbf\xb4\xbf\xb5\xbf\xb6\xbf\xb7\xbf\xb8\xbf\xb9\xbf\xba\xbf\xbb\xbf\xbc\xbf\xbd\xbf\xbe\xbf\xbf\xbf\xc0\xbf\xc1\xbf\xc2\xbf\xc3\xbf\xc4\xbf\xc5\xbf\xc6\xbf\xc7\xbf\xc8\xbf\xc9\xbf\xca\xbf\xcb\xbf\xcc\xbf\xcd\x6b\xc8\xbf\xce\xbf\xcf\xbf\xd0\xbf\xd1\xbf\xd2\xbf\xd3\xbf\xd4\xbf\xd5\xbf\xd6\xbf\xd7\xbf\xd8\xbf\xd9\xbf\xda\xbf\xdb\xbf\xdc\xbf\xdd\xbf\xde\xbf\xdf\xbf\xe0\xbf\xe1\xbf\xe2\xbf\xe3\xbf\xe4\xbf\xe5\xbf\xe6\xbf\xe7\xbf\xe8\xbf\xe9\xbf\xea\xbf\xeb\xbf\xec\xbf\xed\xbf\xee\xbf\xef\xbf\xf0\xbf\xf1\xbf\xf2\xbf\xf3\xbf\xf4\xbf\xf5\xbf\xf6\xbf\xf7\xbf\xf8\x6b\xc9\xbf\xf9\xbf\xfa\xbf\xfb\xbf\xfc\xbf\xfd\xc0\x41\xc0\x42\xc0\x43\xc0\x44\xc0\x45\xc0\x46\xc0\x47\xc0\x48\xc0\x49\xc0\x4a\xc0\x4b\xc0\x4c\xc0\x4d\xc0\x4e\xc0\x4f\xc0\x50", /* 9380 */ "\xc0\x51\xc0\x52\xc0\x53\xc0\x54\xc0\x55\xc0\x56\xc0\x57\xc0\x58\xc0\x59\xc0\x5a\xc0\x5b\xc0\x5c\xc0\x5d\xc0\x5e\xc0\x5f\x6b\xcb\xc0\x60\xc0\x61\xc0\x62\xc0\x63\xc0\x64\xc0\x65\xc0\x66\xc0\x67\xc0\x68\xc0\x69\xc0\x6a\xc0\x6b\xc0\x6c\xc0\x6d\xc0\x6e\xc0\x6f\xc0\x70\xc0\x71\xc0\x72\xc0\x73\xc0\x74\xc0\x75\xc0\x76\xc0\x77\xc0\x78\xc0\x79\xc0\x7a\xc0\x7b\xc0\x7c\xc0\x7d\xc0\x7e\xc0\x7f\xc0\x81\xc0\x82\xc0\x83\xc0\x84\xc0\x85\xc0\x86\xc0\x87\xc0\x88\xc0\x89\xc0\x8a\xc0\x8b\xc0\x8c\xc0\x8d\xc0\x8e\xc0\x8f\xc0\x90\xc0\x91\xc0\x92\xc0\x93\xc0\x94\xc0\x95\xc0\x96\xc0\x97\xc0\x98\xc0\x99\xc0\x9a\x6b\xca\xc0\x9b\xc0\x9c\xc0\x9d\xc0\x9e\xc0\x9f\xc0\xa0\xc0\xa1\xc0\xa2\xc0\xa3\xc0\xa4\xc0\xa5\x6c\x8a\xc0\xa6\xc0\xa7\xc0\xa8\xc0\xa9\xc0\xaa\xc0\xab\xc0\xac\xc0\xad\xc0\xae\xc0\xaf\xc0\xb0\xc0\xb1\xc0\xb2\xc0\xb3\xc0\xb4\xc0\xb5\xc0\xb6\xc0\xb7\xc0\xb8\xc0\xb9\xc0\xba\xc0\xbb\xc0\xbc\xc0\xbd\xc0\xbe\xc0\xbf\xc0\xc0\xc0\xc1\xc0\xc2\xc0\xc3\xc0\xc4\xc0\xc5\xc0\xc6\xc0\xc7\xc0\xc8\xc0\xc9\xc0\xca\xc0\xcb\xc0\xcc\xc0\xcd\xc0\xce", /* 9400 */ "\xc0\xcf\xc0\xd0\xc0\xd1\xc0\xd2\xc0\xd3\xc0\xd4\xc0\xd5\xc0\xd6\xc0\xd7\xc0\xd8\xc0\xd9\xc0\xda\xc0\xdb\xc0\xdc\xc0\xdd\xc0\xde\xc0\xdf\xc0\xe0\xc0\xe1\xc0\xe2\xc0\xe3\xc0\xe4\xc0\xe5\xc0\xe6\xc0\xe7\xc0\xe8\xc0\xe9\xc0\xea\xc0\xeb\xc0\xec\xc0\xed\xc0\xee\xc0\xef\xc0\xf0\xc0\xf1\xc0\xf2\xc0\xf3\xc0\xf4\xc0\xf5\xc0\xf6\xc0\xf7\xc0\xf8\xc0\xf9\xc0\xfa\xc0\xfb\xc0\xfc\xc0\xfd\xc1\x41\xc1\x42\xc1\x43\xc1\x44\xc1\x45\xc1\x46\xc1\x47\xc1\x48\xc1\x49\xc1\x4a\xc1\x4b\xc1\x4c\xc1\x4d\xc1\x4e\xc1\x4f\x6b\xcc\xc1\x50\xc1\x51\xc1\x52\xc1\x53\xc1\x54\xc1\x55\xc1\x56\xc1\x57\xc1\x58\xc1\x59\xc1\x5a\xc1\x5b\xc1\x5c\xc1\x5d\xc1\x5e\xc1\x5f\xc1\x60\xc1\x61\xc1\x62\xc1\x63\xc1\x64\xc1\x65\xc1\x66\xc1\x67\xc1\x68\xc1\x69\xc1\x6a\xc1\x6b\xc1\x6c\xc1\x6d\xc1\x6e\xc1\x6f\xc1\x70\xc1\x71\xc1\x72\xc1\x73\xc1\x74\xc1\x75\xc1\x76\xc1\x77\xc1\x78\xc1\x79\xc1\x7a\xc1\x7b\x6b\xcd\xc1\x7c\xc1\x7d\xc1\x7e\xc1\x7f\xc1\x81\xc1\x82\xc1\x83\xc1\x84\xc1\x85\xc1\x86\xc1\x87\xc1\x88\xc1\x89\xc1\x8a\xc1\x8b\xc1\x8c\xc1\x8d\xc1\x8e\xc1\x8f\xc1\x90", /* 9480 */ "\xc1\x91\xc1\x92\xc1\x93\xc1\x94\xc1\x95\x67\xc3\x67\xc4\x67\xc5\x5b\x8c\x4b\xa3\x67\xc7\x67\xc6\x67\xc8\x67\xc9\x54\x45\x67\xca\x67\xcb\xc1\x96\x4c\x50\x4b\x97\x67\xcc\x67\xce\xc1\x97\x67\xcd\xc1\x98\x4c\xc5\x67\xcf\x67\xd0\x67\xd1\x4b\xda\x4a\x4e\x5b\xd2\x52\xc5\x49\x55\x4c\xd5\x67\xd2\x67\xd3\x5a\xbe\x54\x75\x4f\xfa\x57\xd8\x4d\x53\x67\xd5\x67\xd4\x67\xd7\x67\xd6\x53\x45\x67\xd8\x67\xd9\x54\x4e\x67\xda\x54\x4f\x67\xdb\x49\xa6\x67\xdc\x67\xdd\x67\xde\x67\xdf\x67\xe0\x5c\x8b\x67\xe1\x67\xe2\x4e\xd7\x67\xe3\x5a\x6b\x56\xf9\x49\xab\x51\x86\x67\xe4\x54\x46\x52\x4d\xc1\x99\x67\xe5\x67\xe6\x67\xe7\x67\xe8\x67\xe9\x67\xea\x67\xeb\xc1\x9a\x67\xec\x67\xed\x67\xee\xc1\x9b\xc1\x9c\x67\xef\x67\xf0\x67\xf1\x67\xf3\x67\xf2\xc1\x9d\x67\xf4\x57\x4d\x51\xc0\x67\xf5\x67\xf6\x67\xf7\x5b\x41\x67\xf8\x58\x53\x67\xf9\x67\xfa\xc1\x9e\x67\xfb\x67\xfc\x68\x41\x67\xfd\x68\x42\x4c\xf4\x52\x9b\x68\x43\x68\x44\x4f\x62\x59\xbe\x49\xf8\x68\x45\x68\x46\x68\x47\x59\xf7\x68\x48\x5b\xfc\x68\x49\x53\xcb\xc1\x9f\x68\x4a\x68\x4b\x51\x54\x68\x4c", /* 9500 */ "\x58\x9b\x56\x99\x68\x4e\x68\x4d\x4a\x9b\x4d\x99\x68\x4f\x68\x50\x58\xe1\x68\x51\x68\x52\x4c\x87\x58\xbe\x68\x53\x68\x54\x68\x55\x54\xf0\x56\xdf\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x5b\x81\x68\x5b\x4a\xec\x52\x4a\x68\x5c\xc1\xa0\x68\x5d\x68\x5e\x68\x5f\xc1\xa1\x57\xfc\x68\x60\x51\xdf\x4a\xb7\x5c\x56\x4f\x96\xc1\xa2\x58\x67\x68\x63\x68\x61\x68\x62\x68\x64\x4b\xa6\x4e\xfb\x4f\xe1\x52\x6c\x68\x65\x68\x66\xc1\xa3\x68\x67\x68\x6f\x68\x68\x68\x69\x68\x6a\x54\x62\x68\x92\x4b\xcc\x68\x6b\xc1\xa4\x68\x6c\x68\x6d\x4b\xc5\x52\x5e\x68\x6e\xc1\xa5\x68\x70\x68\x71\x68\x72\x5b\x93\xc1\xa6\x68\x73\x52\xf6\xc1\xa7\x68\x74\x52\xf7\x68\x75\x68\x76\x4c\xe3\x48\xf6\x68\x77\x68\x78\x68\x79\xc1\xa8\x68\x7a\x68\x7b\x68\x7c\x68\x7d\xc1\xa9\x68\x7e\x4f\xb4\x68\x82\x68\x7f\x68\x81\xc1\xaa\x68\x83\x68\x84\x51\x6d\x68\x85\x68\x86\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x50\xd7\xc1\xab\x68\x8e\x51\x4d\x68\x8f\x68\x90\x68\x91\xc1\xac\xc1\xad\x58\x83\xc1\xae\xc1\xaf\xc1\xb0\xc1\xb1\xc1\xb2\xc1\xb3\xc1\xb4\xc1\xb5\x4a\x44", /* 9580 */ "\xc1\xb6\xc1\xb7\xc1\xb8\xc1\xb9\xc1\xba\xc1\xbb\xc1\xbc\xc1\xbd\xc1\xbe\xc1\xbf\xc1\xc0\xc1\xc1\xc1\xc2\xc1\xc3\xc1\xc4\xc1\xc5\xc1\xc6\xc1\xc7\xc1\xc8\xc1\xc9\xc1\xca\xc1\xcb\xc1\xcc\xc1\xcd\xc1\xce\xc1\xcf\xc1\xd0\xc1\xd1\xc1\xd2\xc1\xd3\xc1\xd4\xc1\xd5\xc1\xd6\xc1\xd7\xc1\xd8\xc1\xd9\xc1\xda\xc1\xdb\xc1\xdc\xc1\xdd\xc1\xde\xc1\xdf\xc1\xe0\xc1\xe1\xc1\xe2\xc1\xe3\xc1\xe4\xc1\xe5\xc1\xe6\xc1\xe7\xc1\xe8\xc1\xe9\xc1\xea\xc1\xeb\xc1\xec\xc1\xed\xc1\xee\xc1\xef\xc1\xf0\xc1\xf1\xc1\xf2\xc1\xf3\xc1\xf4\xc1\xf5\xc1\xf6\xc1\xf7\xc1\xf8\xc1\xf9\xc1\xfa\xc1\xfb\xc1\xfc\xc1\xfd\xc2\x41\xc2\x42\xc2\x43\xc2\x44\xc2\x45\xc2\x46\xc2\x47\xc2\x48\xc2\x49\xc2\x4a\xc2\x4b\xc2\x4c\xc2\x4d\xc2\x4e\xc2\x4f\xc2\x50\xc2\x51\xc2\x52\xc2\x53\xc2\x54\xc2\x55\xc2\x56\xc2\x57\xc2\x58\xc2\x59\xc2\x5a\xc2\x5b\xc2\x5c\xc2\x5d\xc2\x5e\xc2\x5f\xc2\x60\x52\x65\x62\x65\x55\x61\x62\x66\xc2\x61\x49\x75\x57\xc9\x4a\xb2\x54\xf1\x62\x67\x58\x70\x62\x68\x4e\xe3\x62\x69\x62\x6a\x52\x66\x5b\x42\x52\xd5\x4d\x8c\x57\xc4\x62\x6b\x52\x97\x62\x6c\xc2\x62", /* 9600 */ "\x4c\x47\x4c\xf2\x4d\xd1\x62\x6d\x62\x6e\x5a\xc3\x62\x6f\xc2\x63\x62\x70\x59\x6b\x62\x71\x62\x72\x62\x73\x62\x74\x59\x76\x62\x75\x49\xfa\x50\xba\x62\x76\xc2\x64\x50\xaa\x62\x77\x62\x78\x62\x79\xc2\x65\x62\x7a\x62\x7b\xc2\x66\x4c\xb6\x5d\xe1\xc2\x67\x4b\xd2\xc2\x68\x5d\xe3\x5d\xe2\xc2\x69\xc2\x6a\xc2\x6b\xc2\x6c\xc2\x6d\xc2\x6e\xc2\x6f\x5d\xe5\xc2\x70\xc2\x71\xc2\x72\x54\xed\xc2\x73\xc2\x74\x5d\xe4\x4c\x60\x59\x95\x59\xf4\x5b\x94\x4f\x77\xc2\x75\xc2\x76\xc2\x77\xc2\x78\x5c\x89\x5d\xe7\x5d\xe6\xc2\x79\x48\xa1\x57\x73\xc2\x7a\x5d\xe8\xc2\x7b\x4c\xbc\x4e\xc9\x51\xbc\x51\xa3\x4a\x62\x5d\xe9\xc2\x7c\x51\xa9\x52\xaf\x4f\x55\xc2\x7d\xc2\x7e\x58\x7e\xc2\x7f\xc2\x81\xc2\x82\x5d\xea\x55\x62\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\x49\x7d\xc2\x88\xc2\x89\xc2\x8a\x5d\xeb\xc2\x8b\x4b\xb7\x5a\xb9\xc2\x8c\x4a\x9e\xc2\x8d\xc2\x8e\x5d\xec\x5a\xc8\x58\x75\x53\x84\xc2\x8f\x5d\xed\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\x5d\xee\xc2\x95\x5d\xef\x51\x8b\x56\xd4\x58\x7d\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d", /* 9680 */ "\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\x5a\x88\x51\xa0\xc2\xa3\x5d\xf0\xc2\xa4\xc2\xa5\x56\x86\xc2\xa6\x5d\xf1\xc2\xa7\x56\x87\x59\xfd\xc2\xa8\xc2\xa9\xc2\xaa\x4c\xf3\xc2\xab\xc2\xac\x5d\xf2\x48\xae\x58\x56\xc2\xad\xc2\xae\x5b\x6f\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\x56\x8e\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc2\xc0\x5d\xf3\xc2\xc1\xc2\xc2\x62\x64\xc2\xc3\xc2\xc4\x51\x45\xc2\xc5\xc2\xc6\x6b\xbe\xc2\xc7\xc2\xc8\x6b\xbf\x6b\xc0\x52\xd0\xc2\xc9\x54\xb7\x59\x84\xc2\xca\xc2\xcb\x58\xda\x59\x65\x4e\xae\x4d\x6d\xc2\xcc\x68\x95\xc2\xcd\xc2\xce\x4a\xc5\x5a\x5a\x6b\xc1\x4a\x9c\xc2\xcf\xc2\xd0\x6b\xc2\xc2\xd1\xc2\xd2\x4b\x92\xc2\xd3\xc2\xd4\xc2\xd5\xc2\xd6\xc2\xd7\xc2\xd8\xc2\xd9\xc2\xda\xc2\xdb\xc2\xdc\x6b\xc4\xc2\xdd\xc2\xde\xc2\xdf\xc2\xe0\xc2\xe1\xc2\xe2\xc2\xe3\x5a\x8b\x6b\xa6\x59\x49\xc2\xe4\xc2\xe5\xc2\xe6\xc2\xe7\x6b\xa8\xc2\xe8\xc2\xe9\xc2\xea\x6b\xa7\xc2\xeb\xc2\xec\x51\x84\x50\xd6\xc2\xed\x49\x42\xc2\xee\xc2\xef\xc2\xf0\xc2\xf1\x57\xec\xc2\xf2", /* 9700 */ "\x58\xe7\x6b\xaa\xc2\xf3\xc2\xf4\x58\x97\xc2\xf5\x6b\xa9\x5b\x91\x6b\xab\x52\x59\xc2\xf6\xc2\xf7\xc2\xf8\x4e\x95\x6b\xad\x6b\xac\xc2\xf9\xc2\xfa\xc2\xfb\x52\xdd\xc2\xfc\xc2\xfd\x51\x78\xc3\x41\xc3\x42\xc3\x43\xc3\x44\xc3\x45\x56\x4a\xc3\x46\x58\x5c\xc3\x47\xc3\x48\xc3\x49\xc3\x4a\xc3\x4b\xc3\x4c\xc3\x4d\xc3\x4e\xc3\x4f\xc3\x50\xc3\x51\x6b\xae\xc3\x52\xc3\x53\x6b\xaf\xc3\x54\xc3\x55\x6b\xb0\xc3\x56\x51\xb5\xc3\x57\xc3\x58\xc3\x59\xc3\x5a\xc3\x5b\x48\xd3\x53\x9a\xc3\x5c\xc3\x5d\xc3\x5e\xc3\x5f\x6b\xb1\xc3\x60\xc3\x61\xc3\x62\xc3\x63\xc3\x64\xc3\x65\xc3\x66\xc3\x67\xc3\x68\xc3\x69\xc3\x6a\xc3\x6b\xc3\x6c\xc3\x6d\xc3\x6e\xc3\x6f\xc3\x70\xc3\x71\xc3\x72\x54\x81\x6b\xa5\xc3\x73\xc3\x74\x4f\xb7\xc3\x75\xc3\x76\x4f\xb1\xc3\x77\x4b\x86\xc3\x78\xc3\x79\x4c\x67\xc3\x7a\x50\x5f\x52\x72\x52\x87\xc3\x7b\xc3\x7c\x5c\xcb\xc3\x7d\xc3\x7e\xc3\x7f\x4c\xee\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85\xc3\x86\xc3\x87\xc3\x88\xc3\x89\x4f\x9a\x59\x45\xc3\x8a\x48\xcf\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\x6c\x50\xc3\x90\xc3\x91\xc3\x92", /* 9780 */ "\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\x6c\x51\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\x58\xab\xc3\x9d\x48\xaf\xc3\x9e\xc3\x9f\xc3\xa0\x6c\x52\x6c\x53\xc3\xa1\x6c\x54\xc3\xa2\xc3\xa3\xc3\xa4\x54\x6a\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\x4f\xce\xc3\xac\xc3\xad\x6c\x57\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\x6c\x56\xc3\xb5\x49\x7e\xc3\xb6\x6c\x55\xc3\xb7\xc3\xb8\x6c\x58\xc3\xb9\x6c\x59\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf\xc3\xc0\xc3\xc1\xc3\xc2\xc3\xc3\xc3\xc4\xc3\xc5\xc3\xc6\xc3\xc7\xc3\xc8\xc3\xc9\xc3\xca\xc3\xcb\xc3\xcc\xc3\xcd\xc3\xce\xc3\xcf\xc3\xd0\xc3\xd1\xc3\xd2\xc3\xd3\xc3\xd4\xc3\xd5\xc3\xd6\xc3\xd7\xc3\xd8\xc3\xd9\xc3\xda\xc3\xdb\xc3\xdc\xc3\xdd\xc3\xde\xc3\xdf\xc3\xe0\xc3\xe1\xc3\xe2\xc3\xe3\xc3\xe4\xc3\xe5\xc3\xe6\xc3\xe7\xc3\xe8\xc3\xe9\xc3\xea\x57\xa3\x54\xcc\xc3\xeb\x4d\xaa\x64\xb7\x64\xb8\x64\xb9\x4f\xc1\xc3\xec\xc3\xed\xc3\xee\xc3\xef\xc3\xf0\x59\xf3\xc3\xf1\x5a\xce\x55\x78\xc3\xf2\xc3\xf3\xc3\xf4\xc3\xf5\xc3\xf6\xc3\xf7\xc3\xf8\xc3\xf9\xc3\xfa", /* 9800 */ "\xc3\xfb\xc3\xfc\xc3\xfd\xc4\x41\xc4\x42\xc4\x43\xc4\x44\xc4\x45\xc4\x46\xc4\x47\xc4\x48\xc4\x49\xc4\x4a\xc4\x4b\xc4\x4c\xc4\x4d\xc4\x4e\xc4\x4f\xc4\x50\xc4\x51\xc4\x52\xc4\x53\xc4\x54\xc4\x55\xc4\x56\xc4\x57\xc4\x58\xc4\x59\xc4\x5a\xc4\x5b\xc4\x5c\xc4\x5d\xc4\x5e\xc4\x5f\xc4\x60\xc4\x61\xc4\x62\xc4\x63\xc4\x64\xc4\x65\xc4\x66\xc4\x67\xc4\x68\xc4\x69\xc4\x6a\xc4\x6b\xc4\x6c\xc4\x6d\xc4\x6e\xc4\x6f\xc4\x70\xc4\x71\xc4\x72\xc4\x73\xc4\x74\xc4\x75\xc4\x76\xc4\x77\xc4\x78\xc4\x79\xc4\x7a\xc4\x7b\xc4\x7c\xc4\x7d\xc4\x7e\xc4\x7f\xc4\x81\xc4\x82\xc4\x83\xc4\x84\xc4\x85\xc4\x86\xc4\x87\xc4\x88\xc4\x89\xc4\x8a\xc4\x8b\xc4\x8c\xc4\x8d\xc4\x8e\xc4\x8f\xc4\x90\xc4\x91\xc4\x92\xc4\x93\xc4\x94\xc4\x95\xc4\x96\xc4\x97\xc4\x98\xc4\x99\xc4\x9a\xc4\x9b\xc4\x9c\xc4\x9d\xc4\x9e\xc4\x9f\xc4\xa0\xc4\xa1\xc4\xa2\xc4\xa3\xc4\xa4\xc4\xa5\xc4\xa6\xc4\xa7\xc4\xa8\xc4\xa9\xc4\xaa\xc4\xab\xc4\xac\xc4\xad\xc4\xae\xc4\xaf\xc4\xb0\xc4\xb1\xc4\xb2\xc4\xb3\x59\xb2\x4b\xa4\x54\x8b\x69\x9d\x58\x8f\x56\x53\x58\xea\x64\x90\x57\x88\x4d\x6b\x4b\xd8", /* 9880 */ "\x69\x9e\x48\xe3\x56\x6c\x69\x9f\x5a\xa3\x51\xac\x51\x8d\x53\xc3\x4f\xb0\x69\xa0\x4e\xd4\xc4\xb4\x69\xa1\x69\xa2\xc4\xb5\x69\xa3\x59\xc2\x53\xb4\xc4\xb6\x57\x67\x69\xa4\xc4\xb7\x5a\x51\x50\x65\x56\xe1\xc4\xb8\x69\xa5\x69\xa6\x59\x75\x4b\xed\x69\xa7\x69\xa8\x4b\x7f\x69\xa9\x69\xaa\xc4\xb9\x49\xfb\x69\xab\x69\xac\x54\xa6\xc4\xba\xc4\xbb\xc4\xbc\xc4\xbd\xc4\xbe\xc4\xbf\xc4\xc0\xc4\xc1\xc4\xc2\xc4\xc3\xc4\xc4\xc4\xc5\xc4\xc6\xc4\xc7\xc4\xc8\xc4\xc9\xc4\xca\xc4\xcb\xc4\xcc\xc4\xcd\xc4\xce\xc4\xcf\xc4\xd0\xc4\xd1\xc4\xd2\xc4\xd3\xc4\xd4\xc4\xd5\xc4\xd6\xc4\xd7\xc4\xd8\xc4\xd9\xc4\xda\xc4\xdb\xc4\xdc\xc4\xdd\xc4\xde\xc4\xdf\x4c\x88\xc4\xe0\xc4\xe1\x66\xa8\x66\xa9\x66\xaa\xc4\xe2\x66\xab\xc4\xe3\xc4\xe4\x53\xad\x66\xac\x66\xad\xc4\xe5\xc4\xe6\xc4\xe7\x4c\x69\x55\xb2\xc4\xe8\xc4\xe9\xc4\xea\xc4\xeb\xc4\xec\xc4\xed\xc4\xee\x61\xb7\x6c\x6f\xc4\xef\xc4\xf0\xc4\xf1\xc4\xf2\xc4\xf3\xc4\xf4\xc4\xf5\xc4\xf6\xc4\xf7\xc4\xf8\xc4\xf9\xc4\xfa\xc4\xfb\xc4\xfc\xc4\xfd\xc5\x41\xc5\x42\xc5\x43\xc5\x44\xc5\x45\xc5\x46\xc5\x47\xc5\x48", /* 9900 */ "\xc5\x49\xc5\x4a\xc5\x4b\xc5\x4c\xc5\x4d\xc5\x4e\xc5\x4f\xc5\x50\xc5\x51\xc5\x52\xc5\x53\xc5\x54\xc5\x55\x6c\x70\xc5\x56\xc5\x57\x49\xcc\xc5\x58\xc5\x59\xc5\x5a\xc5\x5b\xc5\x5c\xc5\x5d\xc5\x5e\xc5\x5f\xc5\x60\xc5\x61\xc5\x62\xc5\x63\xc5\x64\xc5\x65\xc5\x66\xc5\x67\xc5\x68\xc5\x69\xc5\x6a\xc5\x6b\xc5\x6c\xc5\x6d\xc5\x6e\xc5\x6f\xc5\x70\xc5\x71\xc5\x72\xc5\x73\xc5\x74\x6c\x71\xc5\x75\xc5\x76\xc5\x77\xc5\x78\xc5\x79\xc5\x7a\xc5\x7b\xc5\x7c\xc5\x7d\xc5\x7e\xc5\x7f\xc5\x81\xc5\x82\xc5\x83\xc5\x84\xc5\x85\xc5\x86\xc5\x87\xc5\x88\xc5\x89\xc5\x8a\xc5\x8b\xc5\x8c\xc5\x8d\xc5\x8e\xc5\x8f\xc5\x90\xc5\x91\xc5\x92\xc5\x93\xc5\x94\xc5\x95\xc5\x96\xc5\x97\xc5\x98\xc5\x99\xc5\x9a\x6c\x73\x6c\x72\xc5\x9b\xc5\x9c\xc5\x9d\xc5\x9e\xc5\x9f\xc5\xa0\xc5\xa1\xc5\xa2\xc5\xa3\xc5\xa4\xc5\xa5\xc5\xa6\xc5\xa7\x61\xba\xc5\xa8\x4e\xa1\xc5\xa9\x61\xbb\x61\xbc\x61\xbd\x61\xbe\x61\xbf\x61\xc0\x4c\x59\x59\xfa\x4f\x44\x55\xcd\x49\x45\x56\x67\xc5\xaa\x61\xc1\x4b\xfb\x54\xc3\x61\xc2\xc5\xab\xc5\xac\x4f\x68\xc5\xad\x49\x9e\x61\xc3\xc5\xae\x4b\xf5", /* 9980 */ "\x61\xc4\x52\xd8\xc5\xaf\xc5\xb0\x61\xc5\x58\x7a\x4d\x7d\x61\xc6\x50\xa0\xc5\xb1\x61\xc7\x49\xf5\xc5\xb2\x61\xc8\xc5\xb3\x51\x94\x61\xc9\x61\xca\x51\xf7\x61\xcb\x61\xcc\x61\xcd\x55\xd6\x5c\xb7\x5d\x86\x58\x84\xc5\xb4\xc5\xb5\xc5\xb6\xc5\xb7\xc5\xb8\xc5\xb9\xc5\xba\xc5\xbb\xc5\xbc\xc5\xbd\xc5\xbe\x68\xa4\xc5\xbf\xc5\xc0\x5e\xaf\xc5\xc1\xc5\xc2\xc5\xc3\xc5\xc4\xc5\xc5\xc5\xc6\xc5\xc7\xc5\xc8\xc5\xc9\xc5\xca\xc5\xcb\xc5\xcc\xc5\xcd\xc5\xce\xc5\xcf\xc5\xd0\xc5\xd1\xc5\xd2\xc5\xd3\xc5\xd4\xc5\xd5\xc5\xd6\xc5\xd7\xc5\xd8\xc5\xd9\xc5\xda\xc5\xdb\xc5\xdc\xc5\xdd\xc5\xde\xc5\xdf\xc5\xe0\xc5\xe1\xc5\xe2\xc5\xe3\xc5\xe4\xc5\xe5\xc5\xe6\xc5\xe7\xc5\xe8\xc5\xe9\xc5\xea\xc5\xeb\xc5\xec\xc5\xed\xc5\xee\xc5\xef\xc5\xf0\xc5\xf1\xc5\xf2\xc5\xf3\xc5\xf4\xc5\xf5\xc5\xf6\xc5\xf7\xc5\xf8\xc5\xf9\xc5\xfa\xc5\xfb\xc5\xfc\xc5\xfd\xc6\x41\xc6\x42\xc6\x43\xc6\x44\xc6\x45\xc6\x46\xc6\x47\xc6\x48\xc6\x49\xc6\x4a\xc6\x4b\xc6\x4c\xc6\x4d\xc6\x4e\xc6\x4f\xc6\x50\xc6\x51\xc6\x52\xc6\x53\xc6\x54\xc6\x55\xc6\x56\xc6\x57\xc6\x58\xc6\x59\xc6\x5a", /* 9a00 */ "\xc6\x5b\xc6\x5c\xc6\x5d\xc6\x5e\xc6\x5f\xc6\x60\xc6\x61\xc6\x62\xc6\x63\xc6\x64\xc6\x65\xc6\x66\xc6\x67\xc6\x68\xc6\x69\xc6\x6a\xc6\x6b\xc6\x6c\xc6\x6d\xc6\x6e\xc6\x6f\xc6\x70\xc6\x71\xc6\x72\xc6\x73\xc6\x74\xc6\x75\xc6\x76\xc6\x77\xc6\x78\xc6\x79\xc6\x7a\xc6\x7b\xc6\x7c\xc6\x7d\xc6\x7e\xc6\x7f\xc6\x81\xc6\x82\xc6\x83\xc6\x84\xc6\x85\xc6\x86\xc6\x87\xc6\x88\xc6\x89\xc6\x8a\xc6\x8b\xc6\x8c\xc6\x8d\xc6\x8e\xc6\x8f\xc6\x90\xc6\x91\xc6\x92\xc6\x93\xc6\x94\xc6\x95\xc6\x96\xc6\x97\xc6\x98\xc6\x99\xc6\x9a\xc6\x9b\xc6\x9c\xc6\x9d\xc6\x9e\xc6\x9f\xc6\xa0\xc6\xa1\xc6\xa2\xc6\xa3\xc6\xa4\xc6\xa5\xc6\xa6\xc6\xa7\xc6\xa8\xc6\xa9\xc6\xaa\xc6\xab\xc6\xac\xc6\xad\xc6\xae\xc6\xaf\xc6\xb0\xc6\xb1\xc6\xb2\xc6\xb3\xc6\xb4\xc6\xb5\xc6\xb6\xc6\xb7\xc6\xb8\xc6\xb9\xc6\xba\xc6\xbb\xc6\xbc\xc6\xbd\xc6\xbe\xc6\xbf\xc6\xc0\xc6\xc1\xc6\xc2\xc6\xc3\xc6\xc4\xc6\xc5\xc6\xc6\xc6\xc7\x51\xec\x5a\xa5\x57\x74\x59\x51\x4a\x7b\x54\x9e\xc6\xc8\x49\xb4\x51\xbe\x63\xdf\x55\xba\x63\xe0\x63\xe1\x4f\xd3\x63\xe2\x5c\x44\x57\x75\x63\xe4\x4e\xdc\x63\xe3", /* 9a80 */ "\x63\xe5\x63\xe6\x51\xed\xc6\xc9\x4f\x5e\x63\xe7\x51\xe5\x4d\xa6\x63\xe8\xc6\xca\x63\xe9\x4a\x72\x59\x8a\xc6\xcb\xc6\xcc\x50\x45\x63\xea\x53\xee\x63\xeb\x63\xec\xc6\xcd\xc6\xce\x63\xed\x53\xac\x63\xee\xc6\xcf\x55\x47\x63\xef\x63\xf0\x63\xf1\x63\x59\x63\xf2\x63\xf3\x51\xe1\x63\xf4\x63\xf5\x5b\xe7\x63\xf6\xc6\xd0\x63\xf7\x4d\x67\xc6\xd1\xc6\xd2\xc6\xd3\xc6\xd4\xc6\xd5\xc6\xd6\xc6\xd7\x6c\x5b\x6c\x5a\xc6\xd8\xc6\xd9\xc6\xda\xc6\xdb\x6c\x5e\x6c\x5c\x4d\xa0\xc6\xdc\x6c\x5f\xc6\xdd\x6c\x60\xc6\xde\xc6\xdf\xc6\xe0\x6c\x62\x6c\x61\x6c\x64\xc6\xe1\xc6\xe2\x6c\x63\xc6\xe3\xc6\xe4\xc6\xe5\xc6\xe6\xc6\xe7\x6c\x65\x6c\x66\xc6\xe8\xc6\xe9\xc6\xea\xc6\xeb\x6c\x67\xc6\xec\x56\x89\xc6\xed\xc6\xee\xc6\xef\xc6\xf0\x4c\xde\xc6\xf1\xc6\xf2\xc6\xf3\xc6\xf4\xc6\xf5\xc6\xf6\x6c\x74\xc6\xf7\x6c\x75\xc6\xf8\xc6\xf9\xc6\xfa\xc6\xfb\x6c\x76\xc6\xfc\xc6\xfd\xc7\x41\xc7\x42\x6c\x78\xc7\x43\x6c\x7a\xc7\x44\x6c\x77\xc7\x45\xc7\x46\xc7\x47\xc7\x48\xc7\x49\xc7\x4a\xc7\x4b\xc7\x4c\xc7\x4d\x6c\x7b\xc7\x4e\x6c\x79\xc7\x4f\xc7\x50\xc7\x51\xc7\x52", /* 9b00 */ "\xc7\x53\xc7\x54\xc7\x55\x5c\x77\xc7\x56\xc7\x57\xc7\x58\xc7\x59\x6c\x7c\xc7\x5a\xc7\x5b\xc7\x5c\xc7\x5d\xc7\x5e\xc7\x5f\x6c\x7d\xc7\x60\xc7\x61\xc7\x62\x6c\x7e\xc7\x63\xc7\x64\xc7\x65\xc7\x66\xc7\x67\xc7\x68\xc7\x69\xc7\x6a\xc7\x6b\xc7\x6c\xc7\x6d\x6c\x7f\xc7\x6e\xc7\x6f\xc7\x70\x6c\x81\xc7\x71\xc7\x72\xc7\x73\xc7\x74\xc7\x75\xc7\x76\xc7\x77\xc7\x78\xc7\x79\xc7\x7a\xc7\x7b\x5e\x6b\xc7\x7c\xc7\x7d\x5c\xa9\xc7\x7e\xc7\x7f\xc7\x81\xc7\x82\xc7\x83\xc7\x84\xc7\x85\xc7\x86\x63\x98\x4d\x8e\xc7\x87\xc7\x88\xc7\x89\xc7\x8a\x50\x9e\x4e\x8b\x6c\x69\x53\xc6\x6c\x68\xc7\x8b\x6c\x6a\x6c\x6c\x6c\x6b\xc7\x8c\xc7\x8d\xc7\x8e\x6c\x6d\xc7\x8f\x57\xb9\xc7\x90\x6c\x6e\xc7\x91\xc7\x92\x52\xa6\xc7\x93\xc7\x94\xc7\x95\xc7\x96\xc7\x97\xc7\x98\xc7\x99\xc7\x9a\xc7\x9b\xc7\x9c\xc7\x9d\xc7\x9e\xc7\x9f\xc7\xa0\xc7\xa1\xc7\xa2\xc7\xa3\xc7\xa4\xc7\xa5\xc7\xa6\xc7\xa7\xc7\xa8\xc7\xa9\xc7\xaa\xc7\xab\xc7\xac\xc7\xad\xc7\xae\xc7\xaf\xc7\xb0\xc7\xb1\xc7\xb2\xc7\xb3\xc7\xb4\xc7\xb5\xc7\xb6\xc7\xb7\xc7\xb8\xc7\xb9\xc7\xba\xc7\xbb\xc7\xbc\xc7\xbd", /* 9b80 */ "\xc7\xbe\xc7\xbf\xc7\xc0\xc7\xc1\xc7\xc2\xc7\xc3\xc7\xc4\xc7\xc5\xc7\xc6\xc7\xc7\xc7\xc8\xc7\xc9\xc7\xca\xc7\xcb\xc7\xcc\xc7\xcd\xc7\xce\xc7\xcf\xc7\xd0\xc7\xd1\xc7\xd2\xc7\xd3\xc7\xd4\xc7\xd5\xc7\xd6\xc7\xd7\xc7\xd8\xc7\xd9\xc7\xda\xc7\xdb\xc7\xdc\xc7\xdd\xc7\xde\xc7\xdf\xc7\xe0\xc7\xe1\xc7\xe2\xc7\xe3\xc7\xe4\xc7\xe5\xc7\xe6\xc7\xe7\xc7\xe8\xc7\xe9\xc7\xea\xc7\xeb\xc7\xec\xc7\xed\xc7\xee\xc7\xef\xc7\xf0\xc7\xf1\xc7\xf2\xc7\xf3\xc7\xf4\xc7\xf5\xc7\xf6\xc7\xf7\xc7\xf8\xc7\xf9\xc7\xfa\xc7\xfb\xc7\xfc\xc7\xfd\xc8\x41\xc8\x42\xc8\x43\xc8\x44\xc8\x45\xc8\x46\xc8\x47\xc8\x48\xc8\x49\xc8\x4a\xc8\x4b\xc8\x4c\xc8\x4d\xc8\x4e\xc8\x4f\xc8\x50\xc8\x51\xc8\x52\xc8\x53\xc8\x54\xc8\x55\xc8\x56\xc8\x57\xc8\x58\xc8\x59\xc8\x5a\xc8\x5b\xc8\x5c\xc8\x5d\xc8\x5e\xc8\x5f\xc8\x60\xc8\x61\xc8\x62\xc8\x63\xc8\x64\xc8\x65\xc8\x66\xc8\x67\xc8\x68\xc8\x69\xc8\x6a\xc8\x6b\xc8\x6c\xc8\x6d\xc8\x6e\xc8\x6f\xc8\x70\xc8\x71\xc8\x72\xc8\x73\xc8\x74\xc8\x75\xc8\x76\xc8\x77\xc8\x78\xc8\x79\xc8\x7a\xc8\x7b\xc8\x7c\xc8\x7d\xc8\x7e\xc8\x7f\xc8\x81", /* 9c00 */ "\xc8\x82\xc8\x83\xc8\x84\xc8\x85\xc8\x86\xc8\x87\xc8\x88\xc8\x89\xc8\x8a\xc8\x8b\xc8\x8c\xc8\x8d\xc8\x8e\xc8\x8f\xc8\x90\xc8\x91\xc8\x92\xc8\x93\xc8\x94\xc8\x95\xc8\x96\xc8\x97\xc8\x98\xc8\x99\xc8\x9a\xc8\x9b\xc8\x9c\xc8\x9d\xc8\x9e\xc8\x9f\xc8\xa0\xc8\xa1\xc8\xa2\xc8\xa3\xc8\xa4\xc8\xa5\xc8\xa6\xc8\xa7\xc8\xa8\xc8\xa9\xc8\xaa\xc8\xab\xc8\xac\xc8\xad\xc8\xae\xc8\xaf\xc8\xb0\xc8\xb1\xc8\xb2\xc8\xb3\xc8\xb4\xc8\xb5\xc8\xb6\xc8\xb7\xc8\xb8\xc8\xb9\xc8\xba\xc8\xbb\xc8\xbc\xc8\xbd\xc8\xbe\xc8\xbf\xc8\xc0\xc8\xc1\xc8\xc2\xc8\xc3\xc8\xc4\xc8\xc5\xc8\xc6\xc8\xc7\xc8\xc8\xc8\xc9\xc8\xca\xc8\xcb\xc8\xcc\xc8\xcd\xc8\xce\xc8\xcf\xc8\xd0\xc8\xd1\xc8\xd2\xc8\xd3\xc8\xd4\xc8\xd5\xc8\xd6\xc8\xd7\xc8\xd8\xc8\xd9\xc8\xda\xc8\xdb\xc8\xdc\xc8\xdd\xc8\xde\xc8\xdf\xc8\xe0\xc8\xe1\xc8\xe2\xc8\xe3\xc8\xe4\xc8\xe5\xc8\xe6\xc8\xe7\xc8\xe8\xc8\xe9\xc8\xea\xc8\xeb\xc8\xec\xc8\xed\xc8\xee\xc8\xef\xc8\xf0\xc8\xf1\xc8\xf2\xc8\xf3\xc8\xf4\xc8\xf5\xc8\xf6\xc8\xf7\xc8\xf8\xc8\xf9\xc8\xfa\xc8\xfb\xc8\xfc\xc8\xfd\x5a\x84\xc9\x41\xc9\x42\x6b\xce", /* 9c80 */ "\xc9\x43\x51\xb2\x6b\xcf\xc9\x44\xc9\x45\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\xc9\x46\xc9\x47\x6b\xd5\xc9\x48\x49\x4b\x6b\xd6\xc9\x49\x6b\xd7\x6b\xd8\x6b\xd9\xc9\x4a\x6b\xda\x6b\xdb\xc9\x4b\xc9\x4c\xc9\x4d\xc9\x4e\x6b\xdc\x6b\xdd\x58\x6a\xc9\x4f\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x50\xef\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\xc9\x50\x6b\xe9\xc9\x51\x6b\xea\x6b\xeb\xc9\x52\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x4f\xa7\xc9\x53\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\xc9\x54\xc9\x55\xc9\x56\xc9\x57\xc9\x58\x54\xf9\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\xc9\x59\xc9\x5a\x6b\xfc\x6b\xfd\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\xc9\x5b\xc9\x5c\x6c\x46\x6c\x47\x6c\x48\x49\x8f\x6c\x49\x6c\x4a\x6c\x4b\xc9\x5d\xc9\x5e\x6c\x4c\x6c\x4d\x51\x7b\x6c\x4e\xc9\x5f\xc9\x60\x6c\x4f\xc9\x61\xc9\x62\xc9\x63\xc9\x64\xc9\x65\xc9\x66\xc9\x67\xc9\x68\xc9\x69\xc9\x6a\xc9\x6b\xc9\x6c\xc9\x6d\xc9\x6e\xc9\x6f\xc9\x70\xc9\x71\xc9\x72\xc9\x73\xc9\x74\xc9\x75\xc9\x76\xc9\x77\xc9\x78\xc9\x79\xc9\x7a\xc9\x7b\xc9\x7c\xc9\x7d", /* 9d00 */ "\xc9\x7e\xc9\x7f\xc9\x81\xc9\x82\xc9\x83\xc9\x84\xc9\x85\xc9\x86\xc9\x87\xc9\x88\xc9\x89\xc9\x8a\xc9\x8b\xc9\x8c\xc9\x8d\xc9\x8e\xc9\x8f\xc9\x90\xc9\x91\xc9\x92\xc9\x93\xc9\x94\xc9\x95\xc9\x96\xc9\x97\xc9\x98\xc9\x99\xc9\x9a\xc9\x9b\xc9\x9c\xc9\x9d\xc9\x9e\xc9\x9f\xc9\xa0\xc9\xa1\xc9\xa2\xc9\xa3\xc9\xa4\xc9\xa5\xc9\xa6\xc9\xa7\xc9\xa8\xc9\xa9\xc9\xaa\xc9\xab\xc9\xac\xc9\xad\xc9\xae\xc9\xaf\xc9\xb0\xc9\xb1\xc9\xb2\xc9\xb3\xc9\xb4\xc9\xb5\xc9\xb6\xc9\xb7\xc9\xb8\xc9\xb9\xc9\xba\xc9\xbb\xc9\xbc\xc9\xbd\xc9\xbe\xc9\xbf\xc9\xc0\xc9\xc1\xc9\xc2\xc9\xc3\xc9\xc4\xc9\xc5\xc9\xc6\xc9\xc7\xc9\xc8\xc9\xc9\xc9\xca\xc9\xcb\xc9\xcc\xc9\xcd\xc9\xce\xc9\xcf\xc9\xd0\xc9\xd1\xc9\xd2\xc9\xd3\xc9\xd4\xc9\xd5\xc9\xd6\xc9\xd7\xc9\xd8\xc9\xd9\xc9\xda\xc9\xdb\xc9\xdc\xc9\xdd\xc9\xde\xc9\xdf\xc9\xe0\xc9\xe1\xc9\xe2\xc9\xe3\xc9\xe4\xc9\xe5\xc9\xe6\xc9\xe7\xc9\xe8\xc9\xe9\xc9\xea\xc9\xeb\xc9\xec\xc9\xed\xc9\xee\xc9\xef\xc9\xf0\xc9\xf1\xc9\xf2\xc9\xf3\xc9\xf4\xc9\xf5\xc9\xf6\xc9\xf7\xc9\xf8\xc9\xf9\xc9\xfa\xc9\xfb\xc9\xfc\xc9\xfd\xca\x41", /* 9d80 */ "\xca\x42\xca\x43\xca\x44\xca\x45\xca\x46\xca\x47\xca\x48\xca\x49\xca\x4a\xca\x4b\xca\x4c\xca\x4d\xca\x4e\xca\x4f\xca\x50\xca\x51\xca\x52\xca\x53\xca\x54\xca\x55\xca\x56\xca\x57\xca\x58\xca\x59\xca\x5a\xca\x5b\xca\x5c\xca\x5d\xca\x5e\xca\x5f\xca\x60\xca\x61\xca\x62\xca\x63\xca\x64\xca\x65\xca\x66\xca\x67\xca\x68\xca\x69\xca\x6a\xca\x6b\xca\x6c\xca\x6d\xca\x6e\xca\x6f\xca\x70\xca\x71\xca\x72\xca\x73\xca\x74\xca\x75\xca\x76\xca\x77\xca\x78\xca\x79\xca\x7a\xca\x7b\xca\x7c\xca\x7d\xca\x7e\xca\x7f\xca\x81\xca\x82\xca\x83\xca\x84\xca\x85\xca\x86\xca\x87\xca\x88\xca\x89\xca\x8a\xca\x8b\xca\x8c\xca\x8d\xca\x8e\xca\x8f\xca\x90\xca\x91\xca\x92\xca\x93\xca\x94\xca\x95\xca\x96\xca\x97\xca\x98\xca\x99\xca\x9a\xca\x9b\xca\x9c\xca\x9d\xca\x9e\xca\x9f\xca\xa0\xca\xa1\xca\xa2\xca\xa3\xca\xa4\xca\xa5\xca\xa6\xca\xa7\xca\xa8\xca\xa9\xca\xaa\xca\xab\xca\xac\xca\xad\xca\xae\xca\xaf\xca\xb0\xca\xb1\xca\xb2\xca\xb3\xca\xb4\xca\xb5\xca\xb6\xca\xb7\xca\xb8\xca\xb9\xca\xba\xca\xbb\xca\xbc\xca\xbd\xca\xbe\xca\xbf\xca\xc0\xca\xc1\xca\xc2", /* 9e00 */ "\xca\xc3\xca\xc4\xca\xc5\xca\xc6\xca\xc7\xca\xc8\xca\xc9\xca\xca\xca\xcb\xca\xcc\xca\xcd\xca\xce\xca\xcf\xca\xd0\xca\xd1\xca\xd2\xca\xd3\xca\xd4\xca\xd5\xca\xd6\xca\xd7\xca\xd8\xca\xd9\xca\xda\xca\xdb\xca\xdc\xca\xdd\xca\xde\xca\xdf\xca\xe0\xca\xe1\x52\xf0\x68\xae\x4e\xa5\x68\xaf\x52\x9a\xca\xe2\x53\x58\x59\x5b\xca\xe3\x68\xb0\x68\xb1\x68\xb2\x68\xb3\x68\xb4\x59\x5c\xca\xe4\x59\x8d\xca\xe5\x68\xb6\x68\xb5\x5a\xa6\xca\xe6\x57\x72\x68\xb7\x68\xb9\x68\xb8\x68\xba\x68\xbb\xca\xe7\xca\xe8\x4c\xea\x68\xbc\x4d\xe7\xca\xe9\x68\xbd\x68\xbe\x4f\xe8\x68\xbf\x4b\xeb\x68\xc0\x68\xc1\x68\xc2\x68\xc3\x54\xb4\x68\xc4\x68\xc5\xca\xea\x68\xc6\x53\x95\xca\xeb\x68\xc7\xca\xec\xca\xed\xca\xee\x68\xc8\xca\xef\x68\xc9\x6c\x5d\xca\xf0\x68\xca\x68\xcb\x68\xcc\xca\xf1\x68\xcd\xca\xf2\xca\xf3\xca\xf4\xca\xf5\x68\xce\x4d\xd6\xca\xf6\x68\xcf\x68\xd0\x68\xd1\x68\xd2\x68\xd3\x68\xd4\x68\xd5\x68\xd7\xca\xf7\xca\xf8\x5a\x45\x68\xd6\xca\xf9\x68\xd8\xca\xfa\xca\xfb\xca\xfc\xca\xfd\xcb\x41\xcb\x42\xcb\x43\xcb\x44\xcb\x45\xcb\x46\x6b\x5a\x51\xb8", /* 9e80 */ "\xcb\x47\xcb\x48\x6c\x85\xcb\x49\xcb\x4a\xcb\x4b\xcb\x4c\x6c\x86\x6c\x87\xcb\x4d\xcb\x4e\x6c\x88\xcb\x4f\xcb\x50\xcb\x51\xcb\x52\xcb\x53\xcb\x54\x6c\x89\x51\xb3\xcb\x55\xcb\x56\xcb\x57\xcb\x58\xcb\x59\xcb\x5a\xcb\x5b\xcb\x5c\xcb\x5d\x6c\x8b\xcb\x5e\x6c\x8c\xcb\x5f\xcb\x60\xcb\x61\xcb\x62\xcb\x63\xcb\x64\x51\xf2\xcb\x65\xcb\x66\xcb\x67\xcb\x68\xcb\x69\xcb\x6a\xcb\x6b\xcb\x6c\xcb\x6d\xcb\x6e\xcb\x6f\xcb\x70\xcb\x71\x6a\xef\xcb\x72\xcb\x73\xcb\x74\x6a\xee\xcb\x75\xcb\x76\x51\xe8\xcb\x77\x6c\x82\x6c\x83\xcb\x78\xcb\x79\xcb\x7a\xcb\x7b\xcb\x7c\x4e\x66\xcb\x7d\xcb\x7e\xcb\x7f\xcb\x81\x5d\x85\xcb\x82\xcb\x83\xcb\x84\x55\xf1\x50\xe7\x68\xa3\xcb\x85\x4d\xd9\xcb\x86\xcb\x87\x54\x4d\xcb\x88\xcb\x89\xcb\x8a\x52\xab\xcb\x8b\xcb\x8c\x6c\x8d\x6c\x8e\x6c\x8f\xcb\x8d\x6c\x91\x6c\x90\xcb\x8e\x6c\x92\xcb\x8f\xcb\x90\x6c\x95\xcb\x91\x6c\x94\xcb\x92\x6c\x93\x6c\x96\xcb\x93\xcb\x94\xcb\x95\xcb\x96\x6c\x97\xcb\x97\xcb\x98\xcb\x99\xcb\x9a\xcb\x9b\xcb\x9c\xcb\x9d\xcb\x9e\xcb\x9f\x67\x8a\xcb\xa0\x67\x8b\x67\x8c\xcb\xa1\x6b\xbb\xcb\xa2", /* 9f00 */ "\xcb\xa3\xcb\xa4\xcb\xa5\xcb\xa6\xcb\xa7\xcb\xa8\xcb\xa9\xcb\xaa\xcb\xab\xcb\xac\xcb\xad\x6b\xbc\xcb\xae\x6b\xbd\x4b\xa5\xcb\xaf\x5c\xbd\xcb\xb0\xcb\xb1\x4d\x64\xcb\xb2\xcb\xb3\xcb\xb4\x5c\xba\xcb\xb5\x5e\xb0\xcb\xb6\xcb\xb7\xcb\xb8\xcb\xb9\xcb\xba\xcb\xbb\x55\xf2\xcb\xbc\x6c\x98\xcb\xbd\xcb\xbe\xcb\xbf\xcb\xc0\xcb\xc1\xcb\xc2\xcb\xc3\xcb\xc4\xcb\xc5\x6c\x99\xcb\xc6\xcb\xc7\x6c\x9a\xcb\xc8\xcb\xc9\xcb\xca\xcb\xcb\xcb\xcc\xcb\xcd\xcb\xce\x6c\x9c\xcb\xcf\x6c\x9b\xcb\xd0\x49\x67\xcb\xd1\x6c\x9d\x6c\x9e\xcb\xd2\xcb\xd3\xcb\xd4\xcb\xd5\xcb\xd6\x6c\x9f\xcb\xd7\xcb\xd8\xcb\xd9\xcb\xda\xcb\xdb\xcb\xdc\xcb\xdd\xcb\xde\xcb\xdf\xcb\xe0\xcb\xe1\x53\xea\x66\xb3\xcb\xe2\xcb\xe3\xcb\xe4\xcb\xe5\xcb\xe6\xcb\xe7\xcb\xe8\xcb\xe9\xcb\xea\xcb\xeb\xcb\xec\xcb\xed\xcb\xee\xcb\xef\xcb\xf0\xcb\xf1\xcb\xf2\xcb\xf3\xcb\xf4\xcb\xf5\xcb\xf6\xcb\xf7\xcb\xf8\xcb\xf9\xcb\xfa\xcb\xfb\xcb\xfc\xcb\xfd\xcc\x41\xcc\x42\xcc\x43\xcc\x44\xcc\x45\xcc\x46\xcc\x47\xcc\x48\xcc\x49\xcc\x4a\xcc\x4b\xcc\x4c\xcc\x4d\xcc\x4e\xcc\x4f\xcc\x50\xcc\x51\x4a\x7d", /* 9f80 */ "\x6b\xb2\xcc\x52\xcc\x53\x6b\xb3\x51\x85\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x54\xa2\x6b\xba\xcc\x54\xcc\x55\xcc\x56\xcc\x57\xcc\x58\xcc\x59\xcc\x5a\xcc\x5b\xcc\x5c\xcc\x5d\xcc\x5e\xcc\x5f\x51\x9b\x4d\x48\x67\x89\xcc\x60\xcc\x61\xcc\x62\x4d\x8b\x5d\x7f\xcc\x63\xcc\x64\xcc\x65\xcc\x66\xcc\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ "\x6f\x75\x6f\x76\x6f\x77\x6f\x78\x6f\x79\x6f\x7a\x6f\x7b\x6f\x7c\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x84\x6f\x85\x6f\x86\x6f\x87\x6f\x88\x6f\x89\x6f\x8a\x6f\x8b\x6f\x8c\x6f\x8d\x6f\x8e\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9c\x6f\x9d\x6f\x9e\x6f\x9f\x6f\xa0\x6f\xa1\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa7\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb3\x6f\xb4\x6f\xb5\x6f\xb6\x6f\xb7\x6f\xb8\x6f\xb9\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc0\x6f\xc1\x6f\xc2\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xc9\x6f\xca\x6f\xcb\x6f\xcc\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd1\x6f\xd2\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xde\x6f\xdf\x6f\xe0\x6f\xe1\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea\x6f\xeb\x6f\xec\x6f\xed\x6f\xee\x6f\xef\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4", /* a080 */ "\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4c\x70\x4d\x70\x4e\x70\x4f\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5e\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6b\x70\x6c\x70\x6d\x70\x6e\x70\x6f\x70\x70\x70\x71\x70\x72\x70\x73\x70\x74\x70\x75\x70\x76\x70\x77\x70\x78\x70\x79\x70\x7a\x70\x7b\x70\x7c\x70\x7d\x70\x7e\x70\x7f\x70\x80\x70\x81\x70\x82\x70\x83\x70\x84\x70\x85\x70\x86\x70\x87\x70\x88\x70\x89\x70\x8a\x70\x8b\x70\x8c\x70\x8d\x70\x8e\x70\x8f\x70\x90\x70\x91\x70\x92\x70\x93\x70\x94\x70\x95\x70\x96\x70\x97\x70\x98\x70\x99\x70\x9a\x70\x9b\x70\x9c\x70\x9d\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xab\x70\xac\x70\xad\x70\xae\x70\xaf\x70\xb0\x70\xb1\x70\xb2\x70\xb3\x70\xb4\x70\xb5\x70\xb6", /* a100 */ "\x70\xb7\x70\xb8\x70\xb9\x70\xba\x70\xbb\x70\xbc\x70\xbd\x70\xbe\x70\xbf\x70\xc0\x70\xc1\x70\xc2\x70\xc3\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc8\x70\xc9\x70\xca\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xd8\x70\xd9\x70\xda\x70\xdb\x70\xdc\x70\xdd\x70\xde\x70\xdf\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe4\x70\xe5\x70\xe6\x70\xe7\x70\xe8\x70\xe9\x70\xea\x70\xeb\x70\xec\x70\xed\x70\xee\x70\xef\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf7\x70\xf8\x70\xf9\x70\xfa\x70\xfb\x70\xfc\x70\xfd\x70\xfe\x71\x41\x71\x42\x71\x43\x71\x44\x71\x45\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4a\x71\x4b\x71\x4c\x71\x4d\x71\x4e\x71\x4f\x71\x50\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5c\x71\x5d\x71\x5e\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x64\x71\x65\x71\x66\x71\x67\x71\x68\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6e\x71\x6f\x71\x70\x71\x71\x71\x72\x71\x73\x71\x74\x71\x75\x71\x76\x71\x77\x71\x78", /* a180 */ "\x71\x79\x71\x7a\x71\x7b\x71\x7c\x71\x7d\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x84\x71\x85\x71\x86\x71\x87\x71\x88\x71\x89\x71\x8a\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x8f\x71\x90\x71\x91\x71\x92\x71\x93\x71\x94\x71\x95\x71\x96\x71\x97\x71\x98\x71\x99\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\x9f\x71\xa0\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa8\x71\xa9\x71\xaa\x71\xab\x71\xac\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb3\x71\xb4\x71\xb5\x71\xb6\x71\xb7\x71\xb8\x71\xb9\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc3\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xce\x71\xcf\x71\xd0\x71\xd1\x71\xd2\x71\xd3\x71\xd4\x71\xd5\x71\xd6\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe0\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe5\x71\xe6\x71\xe7\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xee\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8", /* a200 */ "\x71\xf9\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x47\x72\x48\x72\x49\x72\x4a\x72\x4b\x72\x4c\x72\x4d\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x52\x72\x53\x72\x54\x72\x55\x72\x56\x72\x57\x72\x58\x72\x59\x72\x5a\x72\x5b\x72\x5c\x72\x5d\x72\x5e\x72\x5f\x72\x60\x72\x61\x72\x62\x72\x63\x72\x64\x72\x65\x72\x66\x72\x67\x72\x68\x72\x69\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x6e\x72\x6f\x72\x70\x72\x71\x72\x72\x72\x73\x72\x74\x72\x75\x72\x76\x72\x77\x72\x78\x72\x79\x72\x7a\x72\x7b\x72\x7c\x72\x7d\x72\x7e\x72\x7f\x72\x80\x72\x81\x72\x82\x72\x83\x72\x84\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8a\x72\x8b\x72\x8c\x72\x8d\x72\x8e\x72\x8f\x72\x90\x72\x91\x72\x92\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\x9f\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xac\x72\xad\x72\xae\x72\xaf\x72\xb0\x72\xb1\x72\xb2\x72\xb3\x72\xb4\x72\xb5\x72\xb6\x72\xb7\x72\xb8\x72\xb9\x72\xba", /* a280 */ "\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc1\x72\xc2\x72\xc3\x72\xc4\x72\xc5\x72\xc6\x72\xc7\x72\xc8\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcd\x72\xce\x72\xcf\x72\xd0\x72\xd1\x72\xd2\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd7\x72\xd8\x72\xd9\x72\xda\x72\xdb\x72\xdc\x72\xdd\x72\xde\x72\xdf\x72\xe0\x72\xe1\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xe8\x72\xe9\x72\xea\x72\xeb\x72\xec\x72\xed\x72\xee\x72\xef\x72\xf0\x72\xf1\x72\xf2\x72\xf3\x72\xf4\x72\xf5\x72\xf6\x72\xf7\x72\xf8\x72\xf9\x72\xfa\x72\xfb\x72\xfc\x72\xfd\x72\xfe\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4d\x73\x4e\x73\x4f\x73\x50\x73\x51\x73\x52\x73\x53\x73\x54\x73\x55\x73\x56\x73\x57\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x60\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6c\x73\x6d\x73\x6e\x73\x6f\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c", /* a300 */ "\x73\x7d\x73\x7e\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x84\x73\x85\x73\x86\x73\x87\x73\x88\x73\x89\x73\x8a\x73\x8b\x73\x8c\x73\x8d\x73\x8e\x73\x8f\x73\x90\x73\x91\x73\x92\x73\x93\x73\x94\x73\x95\x73\x96\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9b\x73\x9c\x73\x9d\x73\x9e\x73\x9f\x73\xa0\x73\xa1\x73\xa2\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xa9\x73\xaa\x73\xab\x73\xac\x73\xad\x73\xae\x73\xaf\x73\xb0\x73\xb1\x73\xb2\x73\xb3\x73\xb4\x73\xb5\x73\xb6\x73\xb7\x73\xb8\x73\xb9\x73\xba\x73\xbb\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc0\x73\xc1\x73\xc2\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xc8\x73\xc9\x73\xca\x73\xcb\x73\xcc\x73\xcd\x73\xce\x73\xcf\x73\xd0\x73\xd1\x73\xd2\x73\xd3\x73\xd4\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xd9\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xde\x73\xdf\x73\xe0\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe5\x73\xe6\x73\xe7\x73\xe8\x73\xe9\x73\xea\x73\xeb\x73\xec\x73\xed\x73\xee\x73\xef\x73\xf0\x73\xf1\x73\xf2\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc", /* a380 */ "\x73\xfd\x73\xfe\x74\x41\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x55\x74\x56\x74\x57\x74\x58\x74\x59\x74\x5a\x74\x5b\x74\x5c\x74\x5d\x74\x5e\x74\x5f\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6d\x74\x6e\x74\x6f\x74\x70\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x76\x74\x77\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7e\x74\x7f\x74\x80\x74\x81\x74\x82\x74\x83\x74\x84\x74\x85\x74\x86\x74\x87\x74\x88\x74\x89\x74\x8a\x74\x8b\x74\x8c\x74\x8d\x74\x8e\x74\x8f\x74\x90\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96\x74\x97\x74\x98\x74\x99\x74\x9a\x74\x9b\x74\x9c\x74\x9d\x74\x9e\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xa7\x74\xa8\x74\xa9\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xba\x74\xbb\x74\xbc\x74\xbd\x74\xbe", /* a400 */ "\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd2\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdc\x74\xdd\x74\xde\x74\xdf\x74\xe0\x74\xe1\x74\xe2\x74\xe3\x74\xe4\x74\xe5\x74\xe6\x74\xe7\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xee\x74\xef\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf4\x74\xf5\x74\xf6\x74\xf7\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x41\x75\x42\x75\x43\x75\x44\x75\x45\x75\x46\x75\x47\x75\x48\x75\x49\x75\x4a\x75\x4b\x75\x4c\x75\x4d\x75\x4e\x75\x4f\x75\x50\x75\x51\x75\x52\x75\x53\x75\x54\x75\x55\x75\x56\x75\x57\x75\x58\x75\x59\x75\x5a\x75\x5b\x75\x5c\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x65\x75\x66\x75\x67\x75\x68\x75\x69\x75\x6a\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x72\x75\x73\x75\x74\x75\x75\x75\x76\x75\x77\x75\x78\x75\x79\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x7f\x75\x80", /* a480 */ "\x75\x81\x75\x82\x75\x83\x75\x84\x75\x85\x75\x86\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8b\x75\x8c\x75\x8d\x75\x8e\x75\x8f\x75\x90\x75\x91\x75\x92\x75\x93\x75\x94\x75\x95\x75\x96\x75\x97\x75\x98\x75\x99\x75\x9a\x75\x9b\x75\x9c\x75\x9d\x75\x9e\x75\x9f\x75\xa0\x75\xa1\x75\xa2\x75\xa3\x75\xa4\x75\xa5\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xab\x75\xac\x75\xad\x75\xae\x75\xaf\x75\xb0\x75\xb1\x75\xb2\x75\xb3\x75\xb4\x75\xb5\x75\xb6\x75\xb7\x75\xb8\x75\xb9\x75\xba\x75\xbb\x75\xbc\x75\xbd\x75\xbe\x75\xbf\x75\xc0\x75\xc1\x75\xc2\x75\xc3\x75\xc4\x75\xc5\x75\xc6\x75\xc7\x75\xc8\x75\xc9\x75\xca\x75\xcb\x75\xcc\x75\xcd\x75\xce\x75\xcf\x75\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1", /* e080 */ "\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85", /* e100 */ "\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48", /* e180 */ "\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9", /* e200 */ "\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d", /* e280 */ "\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50", /* e300 */ "\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1", /* e380 */ "\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95", /* e400 */ "\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58", /* e480 */ "\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9", /* e500 */ "\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d", /* e580 */ "\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60", /* e600 */ "\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1", /* e680 */ "\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5", /* e700 */ "\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x80\x41\x80\x42\x80\x43\x80\x44\x80\x45\x80\x46\x80\x47\x80\x48\x80\x49\x80\x4a\x80\x4b\x80\x4c\x80\x4d\x80\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x90\xfc\x91\xfc\x92\xfc\x93\xfc\x94\xfc\x95\xfc\x96\xfc\x97\xfc\x98\xfc\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x57\xce\x58\xce\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x67\x00\x00\x00\x00\x00\x00\x00\x00\xce\x6c\xce\x6d\x00\x00\x00\x00\x00\x00\x00\x00\xce\x72\xce\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x96\xce\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5b\x44\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x46\xce\x47\xce\x48\xce\x49\x00\x00\xce\x4a\x00\x00\xce\x4b\xce\x4c\x00\x00\x00\x00\x00\x00\xce\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x4e\xce\x4f\xce\x50\x00\x00\xce\x51\xce\x52\x00\x00\x00\x00\xce\x53\xce\x54\xce\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x47\xf8\x48\xf8\x49\xf8\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x6b\xf8\x6c\xf8\x6d\xf8\x6e\x00\x00\x00\x00", /* fb80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x7f\xf8\x80\xf8\x81\xf8\x82\xf8\x83\xf8\x84\xf8\x85\xf8\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x9b\xf8\x9c\xf8\x9d\xf8\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xc4\xf8\xc5\xf8\xc6\xf8\xc7\xf8\xc8\xf8\xc9\xf8\xca\xf8\xcb\xf8\xcc\xf8\xcd\xf8\xce\xf8\xcf\xf8\xd0\xf8\xd1\xf8\xd2\xf8\xd3\xf8\xd4\xf8\xd5\xf8\xd6\xf8\xd7\xf8\xd8\xf8\xd9\xf8\xda\xf8\xdb\xf8\xdc\xf8\xdd\xf8\xde\xf8\xdf\xf8\xe0\xf8\xe1\xf8\xe2\xf8\xe3\xf8\xe4\xf8\xe5\xf8\xe6\xf8\xe7\xf8\xe8\xf8\xe9\xf8\xea\xf8\xeb\xf8\xec\xf8\xed\xf8\xee\xf8\xef\xf8\xf0", /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa8\x47\x51\x00\x00\x47\x52\x47\x53\x47\x41\x47\x42\x47\x4f\x47\x50\x47\x43\x47\x44\x47\x4d\x47\x4e\x47\x47\x47\x48\x47\x45\x47\x46\x47\x49\x47\x4a\x47\x4b\x47\x4c\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa9\xcd\xaa\xcd\xab\xcd\xac\xcd\xad\xcd\xae\xcd\xaf\xcd\xb0\xcd\xb1\xcd\xb2\x00\x00\xcd\xb3\xcd\xb4\xcd\xb5\xcd\xb6\x00\x00\xcd\xb7\xcd\xb8\xcd\xb9\xcd\xba\xcd\xbb\xcd\xbc\xcd\xbd\xcd\xbe\xcd\xbf\xcd\xc0\xcd\xc1\xcd\xc2\xcd\xc3\xcd\xc4\x00\x00\xcd\xc5\xcd\xc6\xcd\xc7\xcd\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fe80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xd0\xfb\xd1\xfb\xd2\xfb\xd3\xfb\xd4\xfb\xd5\xfb\xd6\xfb\xd7\xfb\xd8\xfb\xd9\x00\x00\x00\x00\xfb\xdc\xfb\xdd\xfb\xde\xfb\xdf\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xe4\xfb\xe5\xfb\xe6\xfb\xe7\xfb\xe8\xfb\xe9\xfb\xea\xfb\xeb\xfb\xec\xfb\xed\xfb\xee\xfb\xef\xfb\xf0\xfb\xf1\x00\x00\x00\x00\xfb\xf4\xfb\xf5\xfb\xf6\xfb\xf7\xfb\xf8\xfb\xf9\xfb\xfa\xfb\xfb\xfb\xfc\xfb\xfd\xfb\xfe\xfc\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x52\xfc\x53\xfc\x54\xfc\x55\xfc\x56\xfc\x57\xfc\x58\xfc\x59\xfc\x5a\xfc\x5b\xfc\x5c\xfc\x5d\xfc\x5e\xfc\x5f\xfc\x60\xfc\x61\xfc\x62\xfc\x63\xfc\x64\xfc\x65\xfc\x66\xfc\x67\xfc\x68\xfc\x69\xfc\x6a\xfc\x6b\xfc\x6c\xfc\x6d\xfc\x6e\xfc\x6f\xfc\x70\xfc\x71\xfc\x72\xfc\x73\xfc\x74\xfc\x75\xfc\x76\xfc\x77\xfc\x78\xfc\x79\xfc\x7a\xfc\x7b\xfc\x7c\xfc\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x84\xfc\x85\x00\x00\x00\x00\x00\x00", /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-1388_P103-2001 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x21\x6a\x21\x6b\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\xf8\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x15\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x64\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x65\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x16\x30\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x36\x22\x27\x22\x28\x22\x11\x22\x0f\x22\x2a\x22\x29\x22\x08\x22\x37\x22\x1a\x22\xa5\x22\x25\x22\x20\x23\x12\x22\x99\x22\x2b\x22\x2e\x22\x61\x22\x4c\x22\x48\x22\x3d\x22\x1d\x00\x00\x22\x6e\x22\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x20\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x88\x24\x89\x24\x8a\x24\x8b\x24\x8c\x24\x8d\x24\x8e\x24\x8f\x24\x90\x24\x91\x24\x92\x24\x93\x24\x94\x24\x95\x24\x96\x24\x97\x24\x98\x24\x99\x24\x9a\x24\x9b\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x24\x7e\x24\x7f\x24\x80\x24\x81\x24\x82\x24\x83\x24\x84\x24\x85\x24\x86\x24\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x20\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x20\x32\x21\x32\x22\x32\x23\x32\x24\x32\x25\x32\x26\x32\x27\x32\x28\x32\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xe1\x01\xce\x00\xe0\x01\x13\x00\xe9\x01\x1b\x00\xe8\x01\x2b\x00\xed\x01\xd0\x00\xec\x01\x4d\x00\xf3\x01\xd2\x00\xf2\x01\x6b\x00\xfa\x01\xd4\x00\xf9\x01\xd6\x01\xd8\x01\xda\x01\xdc\x00\xfc\x00\xea\x02\x51\xe7\xc7\x01\x44\x01\x48\x01\xf9\x02\x61\x00\x00\x00\x00\x00\x00\x00\x00\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f", /* 4680 */ "\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x25\x01\x25\x02\x25\x03\x25\x04\x25\x05\x25\x06\x25\x07\x25\x08\x25\x09\x25\x0a\x25\x0b\x25\x0c\x25\x0d\x25\x0e\x25\x0f\x25\x10\x25\x11\x25\x12\x25\x13\x25\x14\x25\x15\x25\x16\x25\x17\x25\x18\x25\x19\x25\x1a\x25\x1b\x25\x1c\x25\x1d\x25\x1e\x25\x1f\x25\x20\x25\x21\x25\x22\x25\x23\x25\x24\x25\x25\x25\x26\x25\x27\x25\x28\x25\x29\x25\x2a\x25\x2b\x25\x2c\x25\x2d\x25\x2e\x25\x2f\x25\x30\x25\x31\x25\x32\x25\x33\x25\x34\x25\x35\x25\x36\x25\x37\x25\x38\x25\x39\x25\x3a\x25\x3b\x25\x3c\x25\x3d\x25\x3e\x25\x3f\x25\x40\x25\x41\x25\x42\x25\x43\x25\x44\x25\x45\x25\x46\x25\x47\x25\x48\x25\x49\x25\x4a\x25\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x35\xfe\x36\xfe\x39\xfe\x3a\xfe\x3f\xfe\x40\xfe\x3d\xfe\x3e\xfe\x41\xfe\x42\xfe\x43\xfe\x44\xfe\x3b\xfe\x3c\xfe\x37\xfe\x38\xfe\x31\xfe\x33\xfe\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x06\x01\x06\x02\x06\x03\x06\x04\x06\x05\x06\x06\x06\x07\x06\x08\x06\x09\x06\x0a\x06\x0b\x06\x0c\x06\x0d\x06\x0e\x06\x0f\x06\x10\x06\x11\x06\x12\x06\x13\x06\x14\x06\x15\x06\x16\x06\x17\x06\x18\x06\x19\x06\x1a\x06\x1b\x06\x1c\x06\x1d\x06\x1e\x06\x1f\x06\x20\x06\x21\x06\x22", /* 4780 */ "\x06\x23\x06\x24\x06\x25\x06\x26\x06\x27\x06\x28\x06\x29\x06\x2a\x06\x2b\x06\x2c\x06\x2d\x06\x2e\x06\x2f\x06\x30\x06\x31\x06\x32\x06\x33\x06\x34\x06\x35\x06\x36\x06\x37\x06\x38\x06\x39\x06\x3a\x06\x3b\x06\x3c\x06\x3d\x06\x3e\x06\x3f\x06\x40\x06\x41\x06\x42\x06\x43\x06\x44\x06\x45\x06\x46\x06\x47\x06\x48\x06\x49\x06\x4a\x06\x4b\x06\x4c\x06\x4d\x06\x4e\x06\x4f\x06\x50\x06\x51\x06\x52\x06\x53\x06\x54\x06\x55\x06\x56\x06\x57\x06\x58\x06\x59\x06\x5a\x06\x5b\x06\x5c\x06\x5d\x06\x5e\x06\x5f\x06\x60\x06\x61\x06\x62\x06\x63\x06\x64\x06\x65\x06\x66\x06\x67\x06\x68\x06\x69\x06\x6a\x06\x6b\x06\x6c\x06\x6d\x06\x6e\x06\x6f\x06\x70\x06\x71\x06\x72\x06\x73\x06\x74\x06\x75\x06\x76\x06\x77\x06\x78\x06\x79\x06\x7a\x06\x7b\x06\x7c\x06\x7d\x06\x7e\x06\x7f\x06\x80\x06\x81\x06\x82\x06\x83\x06\x84\x06\x85\x06\x86\x06\x87\x06\x88\x06\x89\x06\x8a\x06\x8b\x06\x8c\x06\x8d\x06\x8e\x06\x8f\x06\x90\x06\x91\x06\x92\x06\x93\x06\x94\x06\x95\x06\x96\x06\x97\x06\x98\x06\x99\x06\x9a\x06\x9b\x06\x9c\x06\x9d\x06\x9e\x06\x9f\x06\xa0\x06\xa1\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\xa2\x06\xa3\x06\xa4\x06\xa5\x06\xa6\x06\xa7\x06\xa8\x06\xa9\x06\xaa\x06\xab\x06\xac\x06\xad\x06\xae\x06\xaf\x06\xb0\x06\xb1\x06\xb2\x06\xb3\x06\xb4\x06\xb5\x06\xb6\x06\xb7\x06\xb8\x06\xb9\x06\xba\x06\xbb\x06\xbc\x06\xbd\x06\xbe\x06\xbf\x06\xc0\x06\xc1\x06\xc2\x06\xc3\x06\xc4\x06\xc5\x06\xc6\x06\xc7\x06\xc8\x06\xc9\x06\xca\x06\xcb\x06\xcc\x06\xcd\x06\xce\x06\xcf\x06\xd0\x06\xd1\x06\xd2\x06\xd3\x06\xd4\x06\xd5\x06\xd6\x06\xd7\x06\xd8\x06\xd9\x06\xda\x06\xdb\x06\xdc\x06\xdd\x06\xde\x06\xdf\x06\xe0", /* 4880 */ "\x06\xe1\x06\xe2\x06\xe3\x06\xe4\x06\xe5\x06\xe6\x06\xe7\x06\xe8\x06\xe9\x06\xea\x06\xeb\x06\xec\x06\xed\x06\xee\x06\xef\x06\xf0\x06\xf1\x06\xf2\x06\xf3\x06\xf4\x06\xf5\x06\xf6\x06\xf7\x06\xf8\x06\xf9\x06\xfa\x06\xfb\x06\xfc\x06\xfd\x06\xfe\x06\xff\x00\x00\x55\x4a\x96\x3f\x57\xc3\x63\x28\x54\xce\x55\x09\x54\xc0\x76\x91\x76\x4c\x85\x3c\x77\xee\x82\x7e\x78\x8d\x72\x31\x96\x98\x97\x8d\x6c\x28\x5b\x89\x4f\xfa\x63\x09\x66\x97\x5c\xb8\x80\xfa\x68\x48\x80\xae\x66\x02\x76\xce\x51\xf9\x65\x56\x71\xac\x7f\xf1\x88\x84\x50\xb2\x59\x65\x61\xca\x6f\xb3\x82\xad\x63\x4c\x62\x52\x53\xed\x54\x27\x7b\x06\x51\x6b\x75\xa4\x5d\xf4\x62\xd4\x8d\xcb\x97\x76\x62\x8a\x80\x19\x57\x5d\x97\x38\x7f\x62\x72\x38\x76\x7d\x67\xcf\x76\x7e\x64\x46\x4f\x70\x8d\x25\x62\xdc\x7a\x17\x65\x91\x73\xed\x64\x2c\x62\x73\x82\x2c\x98\x81\x67\x7f\x72\x48\x62\x6e\x62\xcc\x4f\x34\x74\xe3\x53\x4a\x52\x9e\x7e\xca\x90\xa6\x5e\x2e\x68\x86\x69\x9c\x81\x80\x7e\xd1\x68\xd2\x78\xc5\x86\x8c\x95\x51\x50\x8d\x8c\x24\x82\xde\x80\xde\x53\x05\x89\x12\x52\x65\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x84\x96\xf9\x4f\xdd\x58\x21\x99\x71\x5b\x9d\x62\xb1\x62\xa5\x66\xb4\x8c\x79\x9c\x8d\x72\x06\x67\x6f\x78\x91\x60\xb2\x53\x51\x53\x17\x8f\x88\x80\xcc\x8d\x1d\x94\xa1\x50\x0d\x72\xc8\x59\x07\x60\xeb\x71\x19\x88\xab\x59\x54\x82\xef\x67\x2c\x7b\x28\x5d\x29\x7e\xf7\x75\x2d\x6c\xf5\x8e\x66\x8f\xf8\x90\x3c\x9f\x3b\x6b\xd4\x91\x19\x7b\x14\x5f\x7c\x78\xa7\x84\xd6\x85\x3d\x6b\xd5\x6b\xd9\x6b\xd6\x5e\x01\x5e\x87\x75\xf9\x95\xed\x65\x5d\x5f\x0a\x5f\xc5\x8f\x9f\x58\xc1\x81\xc2\x90\x7f\x96\x5b\x97\xad\x8f\xb9", /* 4980 */ "\x00\x00\x7f\x16\x8d\x2c\x62\x41\x4f\xbf\x53\xd8\x53\x5e\x8f\xa8\x8f\xa9\x8f\xab\x90\x4d\x68\x07\x5f\x6a\x81\x98\x88\x68\x9c\xd6\x61\x8b\x52\x2b\x76\x2a\x5f\x6c\x65\x8c\x6f\xd2\x6e\xe8\x5b\xbe\x64\x48\x51\x75\x51\xb0\x67\xc4\x4e\x19\x79\xc9\x99\x7c\x70\xb3\x75\xc5\x5e\x76\x73\xbb\x83\xe0\x64\xad\x62\xe8\x94\xb5\x6c\xe2\x53\x5a\x52\xc3\x64\x0f\x94\xc2\x7b\x94\x4f\x2f\x5e\x1b\x82\x36\x81\x16\x81\x8a\x6e\x24\x6c\xca\x9a\x73\x63\x55\x53\x5c\x54\xfa\x88\x65\x57\xe0\x4e\x0d\x5e\x03\x6b\x65\x7c\x3f\x90\xe8\x60\x16\x64\xe6\x73\x1c\x88\xc1\x67\x50\x62\x4d\x8d\x22\x77\x6c\x8e\x29\x91\xc7\x5f\x69\x83\xdc\x85\x21\x99\x10\x53\xc2\x86\x95\x6b\x8b\x60\xed\x60\xe8\x70\x7f\x82\xcd\x82\x31\x4e\xd3\x6c\xa7\x85\xcf\x64\xcd\x7c\xd9\x69\xfd\x66\xf9\x83\x49\x53\x95\x7b\x56\x4f\xa7\x51\x8c\x6d\x4b\x5c\x42\x8e\x6d\x63\xd2\x53\xc9\x83\x2c\x83\x36\x67\xe5\x78\xb4\x64\x3d\x5b\xdf\x5c\x94\x5d\xee\x8b\xe7\x62\xc6\x67\xf4\x8c\x7a\x64\x00\x63\xba\x87\x49\x99\x8b\x8c\x17\x7f\x20\x94\xf2\x4e\xa7\x96\x10\x98\xa4\x66\x0c\x73\x16\x00\x00\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x3a\x5c\x1d\x5e\x38\x95\x7f\x50\x7f\x80\xa0\x53\x82\x65\x5e\x75\x45\x55\x31\x50\x21\x8d\x85\x62\x84\x94\x9e\x67\x1d\x56\x32\x6f\x6e\x5d\xe2\x54\x35\x70\x92\x8f\x66\x62\x6f\x64\xa4\x63\xa3\x5f\x7b\x6f\x88\x90\xf4\x81\xe3\x8f\xb0\x5c\x18\x66\x68\x5f\xf1\x6c\x89\x96\x48\x8d\x81\x88\x6c\x64\x91\x79\xf0\x57\xce\x6a\x59\x62\x10\x54\x48\x4e\x58\x7a\x0b\x60\xe9\x6f\x84\x8b\xda\x62\x7f\x90\x1e\x9a\x8b\x79\xe4\x54\x03\x75\xf4\x63\x01\x53\x19\x6c\x60\x8f\xdf\x5f\x1b\x9a\x70\x80\x3b\x9f\x7f\x4f\x88\x5c\x3a", /* 4a80 */ "\x00\x00\x8d\x64\x7f\xc5\x65\xa5\x70\xbd\x51\x45\x51\xb2\x86\x6b\x5d\x07\x5b\xa0\x62\xbd\x91\x6c\x75\x74\x8e\x0c\x7a\x20\x61\x01\x7b\x79\x4e\xc7\x7e\xf8\x77\x85\x4e\x11\x81\xed\x52\x1d\x51\xfa\x6a\x71\x53\xa8\x8e\x87\x95\x04\x96\xcf\x6e\xc1\x96\x64\x69\x5a\x78\x40\x50\xa8\x77\xd7\x64\x10\x89\xe6\x59\x04\x63\xe3\x5d\xdd\x7a\x7f\x69\x3d\x4f\x20\x82\x39\x55\x98\x4e\x32\x75\xae\x7a\x97\x5e\x62\x5e\x8a\x95\xef\x52\x1b\x54\x39\x70\x8a\x63\x76\x95\x24\x57\x82\x66\x25\x69\x3f\x91\x87\x55\x07\x6d\xf3\x7e\xaf\x88\x22\x62\x33\x7e\xf0\x75\xb5\x83\x28\x78\xc1\x96\xcc\x8f\x9e\x61\x48\x74\xf7\x8b\xcd\x6b\x64\x52\x3a\x8d\x50\x6b\x21\x80\x6a\x84\x71\x56\xf1\x53\x06\x4e\xce\x4e\x1b\x51\xd1\x7c\x97\x91\x8b\x7c\x07\x4f\xc3\x8e\x7f\x7b\xe1\x7a\x9c\x64\x67\x5d\x14\x50\xac\x81\x06\x76\x01\x7c\xb9\x6d\xec\x7f\xe0\x67\x51\x5b\x58\x5b\xf8\x78\xcb\x64\xae\x64\x13\x63\xaa\x63\x2b\x95\x19\x64\x2d\x8f\xbe\x7b\x54\x76\x29\x62\x53\x59\x27\x54\x46\x6b\x79\x50\xa3\x62\x34\x5e\x26\x6b\x86\x4e\xe3\x8d\x37\x88\x8b\x5f\x85\x90\x2e\x00\x00\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x20\x80\x3d\x62\xc5\x4e\x39\x53\x55\x90\xf8\x63\xb8\x80\xc6\x65\xe6\x6c\x2e\x4f\x46\x60\xee\x6d\xe1\x8b\xde\x5f\x39\x86\xcb\x5f\x53\x63\x21\x51\x5a\x83\x61\x68\x63\x52\x00\x63\x63\x8e\x48\x50\x12\x5c\x9b\x79\x77\x5b\xfc\x52\x30\x7a\x3b\x60\xbc\x90\x53\x76\xd7\x5f\xb7\x5f\x97\x76\x84\x8e\x6c\x70\x6f\x76\x7b\x7b\x49\x77\xaa\x51\xf3\x90\x93\x58\x24\x4f\x4e\x6e\xf4\x8f\xea\x65\x4c\x7b\x1b\x72\xc4\x6d\xa4\x7f\xdf\x5a\xe1\x62\xb5\x5e\x95\x57\x30\x84\x82\x7b\x2c\x5e\x1d\x5f\x1f\x90\x12\x7f\x14\x98\xa0", /* 4b80 */ "\x00\x00\x63\x82\x6e\xc7\x78\x98\x70\xb9\x51\x78\x97\x5b\x57\xab\x75\x35\x4f\x43\x75\x38\x5e\x97\x60\xe6\x59\x60\x6d\xc0\x6b\xbf\x78\x89\x53\xfc\x96\xd5\x51\xcb\x52\x01\x63\x89\x54\x0a\x94\x93\x8c\x03\x8d\xcc\x72\x39\x78\x9f\x87\x76\x8f\xed\x8c\x0d\x53\xe0\x4e\x01\x76\xef\x53\xee\x94\x89\x98\x76\x9f\x0e\x95\x2d\x5b\x9a\x8b\xa2\x4e\x22\x4e\x1c\x51\xac\x84\x63\x61\xc2\x52\xa8\x68\x0b\x4f\x97\x60\x6b\x51\xbb\x6d\x1e\x51\x5c\x62\x96\x65\x97\x96\x61\x8c\x46\x90\x17\x75\xd8\x90\xfd\x77\x63\x6b\xd2\x72\x8a\x72\xec\x8b\xfb\x58\x35\x77\x79\x8d\x4c\x67\x5c\x95\x40\x80\x9a\x5e\xa6\x6e\x21\x59\x92\x7a\xef\x77\xed\x95\x3b\x6b\xb5\x65\xad\x7f\x0e\x58\x06\x51\x51\x96\x1f\x5b\xf9\x58\xa9\x54\x28\x8e\x72\x65\x66\x98\x7f\x56\xe4\x94\x9d\x76\xfe\x90\x41\x63\x87\x54\xc6\x59\x1a\x59\x3a\x57\x9b\x8e\xb2\x67\x35\x8d\xfa\x82\x35\x52\x41\x60\xf0\x58\x15\x86\xfe\x5c\xe8\x9e\x45\x4f\xc4\x98\x9d\x8b\xb9\x5a\x25\x60\x76\x53\x84\x62\x7c\x90\x4f\x91\x02\x99\x7f\x60\x69\x80\x0c\x51\x3f\x80\x33\x5c\x14\x99\x75\x6d\x31\x4e\x8c\x00\x00\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x30\x53\xd1\x7f\x5a\x7b\x4f\x4f\x10\x4e\x4f\x96\x00\x6c\xd5\x73\xd0\x85\xe9\x5e\x06\x75\x6a\x7f\xfb\x6a\x0a\x77\xfe\x94\x92\x7e\x41\x51\xe1\x70\xe6\x53\xcd\x8f\xd4\x83\x03\x8d\x29\x72\xaf\x99\x6d\x6c\xdb\x57\x4a\x82\xb3\x65\xb9\x80\xaa\x62\x3f\x96\x32\x59\xa8\x4e\xff\x8b\xbf\x7e\xba\x65\x3e\x83\xf2\x97\x5e\x55\x61\x98\xde\x80\xa5\x53\x2a\x8b\xfd\x54\x20\x80\xba\x5e\x9f\x6c\xb8\x8d\x39\x82\xac\x91\x5a\x54\x29\x6c\x1b\x52\x06\x7e\xb7\x57\x5f\x71\x1a\x6c\x7e\x7c\x89\x59\x4b\x4e\xfd\x5f\xff\x61\x24", /* 4c80 */ "\x00\x00\x7c\xaa\x4e\x30\x5c\x01\x67\xab\x87\x02\x5c\xf0\x95\x0b\x98\xce\x75\xaf\x70\xfd\x90\x22\x51\xaf\x7f\x1d\x8b\xbd\x59\x49\x51\xe4\x4f\x5b\x54\x26\x59\x2b\x65\x77\x80\xa4\x5b\x75\x62\x76\x62\xc2\x8f\x90\x5e\x45\x6c\x1f\x7b\x26\x4f\x0f\x4f\xd8\x67\x0d\x6d\x6e\x6d\xaa\x79\x8f\x88\xb1\x5f\x17\x75\x2b\x62\x9a\x8f\x85\x4f\xef\x91\xdc\x65\xa7\x81\x2f\x81\x51\x5e\x9c\x81\x50\x8d\x74\x52\x6f\x89\x86\x8d\x4b\x59\x0d\x50\x85\x4e\xd8\x96\x1c\x72\x36\x81\x79\x8d\x1f\x5b\xcc\x8b\xa3\x96\x44\x59\x87\x7f\x1a\x54\x90\x56\x76\x56\x0e\x8b\xe5\x65\x39\x69\x82\x94\x99\x76\xd6\x6e\x89\x5e\x72\x75\x18\x67\x46\x67\xd1\x7a\xff\x80\x9d\x8d\x76\x61\x1f\x79\xc6\x65\x62\x8d\x63\x51\x88\x52\x1a\x94\xa2\x7f\x38\x80\x9b\x7e\xb2\x5c\x97\x6e\x2f\x67\x60\x7b\xd9\x76\x8b\x9a\xd8\x81\x8f\x7f\x94\x7c\xd5\x64\x1e\x95\x50\x7a\x3f\x54\x4a\x54\xe5\x6b\x4c\x64\x01\x62\x08\x9e\x3d\x80\xf3\x75\x99\x52\x72\x97\x69\x84\x5b\x68\x3c\x86\xe4\x96\x01\x96\x94\x94\xec\x4e\x2a\x54\x04\x7e\xd9\x68\x39\x8d\xdf\x80\x15\x66\xf4\x5e\x9a\x7f\xb9\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x80\x3f\x68\x97\x5d\xe5\x65\x3b\x52\x9f\x60\x6d\x9f\x9a\x4f\x9b\x8e\xac\x51\x6c\x5b\xab\x5f\x13\x5d\xe9\x6c\x5e\x62\xf1\x8d\x21\x51\x71\x94\xa9\x52\xfe\x6c\x9f\x82\xdf\x72\xd7\x57\xa2\x67\x84\x8d\x2d\x59\x1f\x8f\x9c\x83\xc7\x54\x95\x7b\x8d\x4f\x30\x6c\xbd\x5b\x64\x59\xd1\x9f\x13\x53\xe4\x86\xca\x9a\xa8\x8c\x37\x80\xa1\x65\x45\x98\x7e\x56\xfa\x96\xc7\x52\x2e\x74\xdc\x52\x50\x5b\xe1\x63\x02\x89\x02\x4e\x56\x62\xd0\x60\x2a\x68\xfa\x51\x73\x5b\x98\x51\xa0\x89\xc2\x7b\xa1\x99\x86\x7f\x50\x60\xef", /* 4d80 */ "\x00\x00\x70\x4c\x8d\x2f\x51\x49\x5e\x7f\x90\x1b\x74\x70\x89\xc4\x57\x2d\x78\x45\x5f\x52\x9f\x9f\x95\xfa\x8f\x68\x9b\x3c\x8b\xe1\x76\x78\x68\x42\x67\xdc\x8d\xea\x8d\x35\x52\x3d\x8f\x8a\x6e\xda\x68\xcd\x95\x05\x90\xed\x56\xfd\x67\x9c\x88\xf9\x8f\xc7\x54\xc8\x9a\xb8\x5b\x69\x6d\x77\x6c\x26\x4e\xa5\x5b\xb3\x9a\x87\x91\x63\x61\xa8\x90\xaf\x97\xe9\x54\x2b\x6d\xb5\x5b\xd2\x51\xfd\x55\x8a\x7f\x55\x7f\xf0\x64\xbc\x63\x4d\x65\xf1\x61\xbe\x60\x8d\x71\x0a\x6c\x57\x6c\x49\x59\x2f\x67\x6d\x82\x2a\x58\xd5\x56\x8e\x8c\x6a\x6b\xeb\x90\xdd\x59\x7d\x80\x17\x53\xf7\x6d\x69\x54\x75\x55\x9d\x83\x77\x83\xcf\x68\x38\x79\xbe\x54\x8c\x4f\x55\x54\x08\x76\xd2\x8c\x89\x96\x02\x6c\xb3\x6d\xb8\x8d\x6b\x89\x10\x9e\x64\x8d\x3a\x56\x3f\x9e\xd1\x75\xd5\x5f\x88\x72\xe0\x60\x68\x54\xfc\x4e\xa8\x6a\x2a\x88\x61\x60\x52\x8f\x70\x54\xc4\x70\xd8\x86\x79\x9e\x3f\x6d\x2a\x5b\x8f\x5f\x18\x7e\xa2\x55\x89\x4f\xaf\x73\x34\x54\x3c\x53\x9a\x50\x19\x54\x0e\x54\x7c\x4e\x4e\x5f\xfd\x74\x5a\x58\xf6\x84\x6b\x80\xe1\x87\x74\x72\xd0\x7c\xca\x6e\x56\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x27\x86\x4e\x55\x2c\x62\xa4\x4e\x92\x6c\xaa\x62\x37\x82\xb1\x54\xd7\x53\x4e\x73\x3e\x6e\xd1\x75\x3b\x52\x12\x53\x16\x8b\xdd\x69\xd0\x5f\x8a\x60\x00\x6d\xee\x57\x4f\x6b\x22\x73\xaf\x68\x53\x8f\xd8\x7f\x13\x63\x62\x60\xa3\x55\x24\x75\xea\x8c\x62\x71\x15\x6d\xa3\x5b\xa6\x5e\x7b\x83\x52\x61\x4c\x9e\xc4\x78\xfa\x87\x57\x7c\x27\x76\x87\x51\xf0\x60\xf6\x71\x4c\x66\x43\x5e\x4c\x60\x4d\x8c\x0e\x70\x70\x63\x25\x8f\x89\x5f\xbd\x60\x62\x86\xd4\x56\xde\x6b\xc1\x60\x94\x61\x67\x53\x49\x60\xe0\x66\x66\x8d\x3f", /* 4e80 */ "\x00\x00\x79\xfd\x4f\x1a\x70\xe9\x6c\x47\x8b\xb3\x8b\xf2\x7e\xd8\x83\x64\x66\x0f\x5a\x5a\x9b\x42\x6d\x51\x6d\xf7\x8c\x41\x6d\x3b\x4f\x19\x70\x6b\x83\xb7\x62\x16\x60\xd1\x97\x0d\x8d\x27\x79\x78\x51\xfb\x57\x3e\x57\xfa\x67\x3a\x75\x78\x7a\x3d\x79\xef\x7b\x95\x80\x8c\x99\x65\x8f\xf9\x6f\xc0\x8b\xa5\x9e\x21\x59\xec\x7e\xe9\x7f\x09\x54\x09\x67\x81\x68\xd8\x8f\x91\x7c\x4d\x96\xc6\x53\xca\x60\x25\x75\xbe\x6c\x72\x53\x73\x5a\xc9\x7e\xa7\x63\x24\x51\xe0\x81\x0a\x5d\xf1\x84\xdf\x62\x80\x51\x80\x5b\x63\x4f\x0e\x79\x6d\x52\x42\x60\xb8\x6d\x4e\x5b\xc4\x5b\xc2\x8b\xa1\x8b\xb0\x65\xe2\x5f\xcc\x96\x45\x59\x93\x7e\xe7\x7e\xaa\x56\x09\x67\xb7\x59\x39\x4f\x73\x5b\xb6\x52\xa0\x83\x5a\x98\x8a\x8d\x3e\x75\x32\x94\xbe\x50\x47\x7a\x3c\x4e\xf7\x67\xb6\x9a\x7e\x5a\xc1\x6b\x7c\x76\xd1\x57\x5a\x5c\x16\x7b\x3a\x95\xf4\x71\x4e\x51\x7c\x80\xa9\x82\x70\x59\x78\x7f\x04\x83\x27\x68\xc0\x67\xec\x78\xb1\x78\x77\x62\xe3\x63\x61\x7b\x80\x4f\xed\x52\x6a\x51\xcf\x83\x50\x69\xdb\x92\x74\x8d\xf5\x8d\x31\x89\xc1\x95\x2e\x7b\xad\x4e\xf6\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x65\x82\x30\x52\x51\x99\x6f\x6e\x10\x6e\x85\x6d\xa7\x5e\xfa\x50\xf5\x59\xdc\x5c\x06\x6d\x46\x6c\x5f\x75\x86\x84\x8b\x68\x68\x59\x56\x8b\xb2\x53\x20\x91\x71\x96\x4d\x85\x49\x69\x12\x79\x01\x71\x26\x80\xf6\x4e\xa4\x90\xca\x6d\x47\x9a\x84\x5a\x07\x56\xbc\x64\x05\x94\xf0\x77\xeb\x4f\xa5\x81\x1a\x72\xe1\x89\xd2\x99\x7a\x7f\x34\x7e\xde\x52\x7f\x65\x59\x91\x75\x8f\x7f\x8f\x83\x53\xeb\x7a\x96\x63\xed\x63\xa5\x76\x86\x79\xf8\x88\x57\x96\x36\x62\x2a\x52\xab\x82\x82\x68\x54\x67\x70\x63\x77\x77\x6b\x7a\xed", /* 4f80 */ "\x00\x00\x6d\x01\x7e\xd3\x89\xe3\x59\xd0\x62\x12\x85\xc9\x82\xa5\x75\x4c\x50\x1f\x4e\xcb\x75\xa5\x8b\xeb\x5c\x4a\x5d\xfe\x7b\x4b\x65\xa4\x91\xd1\x4e\xca\x6d\x25\x89\x5f\x7d\x27\x95\x26\x4e\xc5\x8c\x28\x8f\xdb\x97\x73\x66\x4b\x79\x81\x8f\xd1\x70\xec\x6d\x78\x5c\x3d\x52\xb2\x83\x46\x51\x62\x83\x0e\x77\x5b\x66\x76\x9c\xb8\x4e\xac\x60\xca\x7c\xbe\x7c\xb3\x7e\xcf\x4e\x95\x8b\x66\x66\x6f\x98\x88\x97\x59\x58\x83\x65\x6c\x95\x5c\x5f\x84\x75\xc9\x97\x56\x7a\xdf\x7a\xde\x51\xc0\x70\xaf\x7a\x98\x63\xea\x7a\x76\x7e\xa0\x73\x96\x97\xed\x4e\x45\x70\x78\x4e\x5d\x91\x52\x53\xa9\x65\x51\x65\xe7\x81\xfc\x82\x05\x54\x8e\x5c\x31\x75\x9a\x97\xa0\x62\xd8\x72\xd9\x75\xbd\x5c\x45\x9a\x79\x83\xca\x5c\x40\x54\x80\x77\xe9\x4e\x3e\x6c\xae\x80\x5a\x62\xd2\x63\x6e\x5d\xe8\x51\x77\x8d\xdd\x8e\x1e\x95\x2f\x4f\xf1\x53\xe5\x60\xe7\x70\xac\x52\x67\x63\x50\x9e\x43\x5a\x1f\x50\x26\x77\x37\x53\x77\x7e\xe2\x64\x85\x65\x2b\x62\x89\x63\x98\x50\x14\x72\x35\x89\xc9\x51\xb3\x8b\xc0\x7e\xdd\x57\x47\x83\xcc\x94\xa7\x51\x9b\x54\x1b\x5c\xfb\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x7a\xe3\x6d\x5a\x90\xe1\x9a\x8f\x55\x80\x54\x96\x53\x61\x54\xaf\x5f\x00\x63\xe9\x69\x77\x51\xef\x61\x68\x52\x0a\x58\x2a\x52\xd8\x57\x4e\x78\x0d\x77\x0b\x5e\xb7\x61\x77\x7c\xe0\x62\x5b\x62\x97\x4e\xa2\x70\x95\x80\x03\x62\xf7\x70\xe4\x97\x60\x57\x77\x82\xdb\x67\xef\x68\xf5\x78\xd5\x98\x97\x79\xd1\x58\xf3\x54\xb3\x53\xef\x6e\x34\x51\x4b\x52\x3b\x5b\xa2\x8b\xfe\x80\xaf\x55\x43\x57\xa6\x60\x73\x57\x51\x54\x2d\x7a\x7a\x60\x50\x5b\x54\x63\xa7\x62\xa0\x53\xe3\x62\x63\x5b\xc7\x67\xaf\x54\xed\x7a\x9f", /* 5080 */ "\x00\x00\x82\xe6\x91\x77\x5e\x93\x88\xe4\x59\x38\x57\xae\x63\x0e\x8d\xe8\x80\xef\x57\x57\x7b\x77\x4f\xa9\x5f\xeb\x5b\xbd\x6b\x3e\x53\x21\x7b\x50\x72\xc2\x68\x46\x77\xff\x77\x36\x65\xf7\x51\xb5\x4e\x8f\x76\xd4\x5c\xbf\x7a\xa5\x84\x75\x59\x4e\x9b\x41\x50\x80\x99\x88\x61\x27\x6e\x83\x57\x64\x66\x06\x63\x46\x56\xf0\x62\xec\x62\x69\x5e\xd3\x96\x14\x57\x83\x62\xc9\x55\x87\x87\x21\x81\x4a\x8f\xa3\x55\x66\x83\xb1\x67\x65\x8d\x56\x84\xdd\x5a\x6a\x68\x0f\x62\xe6\x7b\xee\x96\x11\x51\x70\x6f\x9c\x8c\x30\x63\xfd\x89\xc8\x61\xd2\x7f\x06\x70\xc2\x6e\xe5\x74\x05\x69\x94\x72\xfc\x5e\xca\x90\xce\x67\x17\x6d\x6a\x63\x5e\x52\xb3\x72\x62\x80\x01\x4f\x6c\x59\xe5\x91\x6a\x70\xd9\x6d\x9d\x52\xd2\x4e\x50\x96\xf7\x95\x6d\x85\x7e\x78\xca\x7d\x2f\x51\x21\x57\x92\x64\xc2\x80\x8b\x7c\x7b\x6c\xea\x68\xf1\x69\x5e\x51\xb7\x53\x98\x68\xa8\x72\x81\x9e\xce\x7b\xf1\x72\xf8\x79\xbb\x6f\x13\x74\x06\x67\x4e\x91\xcc\x9c\xa4\x79\x3c\x83\x89\x83\x54\x54\x0f\x68\x17\x4e\x3d\x53\x89\x52\xb1\x78\x3e\x53\x86\x52\x29\x50\x88\x4f\x8b\x4f\xd0\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe2\x7a\xcb\x7c\x92\x6c\xa5\x96\xb6\x52\x9b\x74\x83\x54\xe9\x4f\xe9\x80\x54\x83\xb2\x8f\xde\x95\x70\x5e\xc9\x60\x1c\x6d\x9f\x5e\x18\x65\x5b\x81\x38\x94\xfe\x60\x4b\x70\xbc\x7e\xc3\x7c\xae\x51\xc9\x68\x81\x7c\xb1\x82\x6f\x4e\x24\x8f\x86\x91\xcf\x66\x7e\x4e\xae\x8c\x05\x64\xa9\x80\x4a\x50\xda\x75\x97\x71\xce\x5b\xe5\x8f\xbd\x6f\x66\x4e\x86\x64\x82\x95\x63\x5e\xd6\x65\x99\x52\x17\x88\xc2\x70\xc8\x52\xa3\x73\x0e\x74\x33\x67\x97\x78\xf7\x97\x16\x4e\x34\x90\xbb\x9c\xde\x6d\xcb\x51\xdb\x8d\x41\x54\x1d", /* 5180 */ "\x00\x00\x62\xce\x73\xb2\x83\xf1\x96\xf6\x9f\x84\x94\xc3\x4f\x36\x7f\x9a\x51\xcc\x70\x75\x96\x75\x5c\xad\x98\x86\x53\xe6\x4e\xe4\x6e\x9c\x74\x09\x69\xb4\x78\x6b\x99\x8f\x75\x59\x52\x18\x76\x24\x6d\x41\x67\xf3\x51\x6d\x9f\x99\x80\x4b\x54\x99\x7b\x3c\x7a\xbf\x96\x86\x57\x84\x62\xe2\x96\x47\x69\x7c\x5a\x04\x64\x02\x7b\xd3\x6f\x0f\x96\x4b\x82\xa6\x53\x62\x98\x85\x5e\x90\x70\x89\x63\xb3\x53\x64\x86\x4f\x9c\x81\x9e\x93\x78\x8c\x97\x32\x8d\xef\x8d\x42\x9e\x7f\x6f\x5e\x79\x84\x5f\x55\x96\x46\x62\x2e\x9a\x74\x54\x15\x94\xdd\x4f\xa3\x65\xc5\x5c\x65\x5c\x61\x7f\x15\x86\x51\x6c\x2f\x5f\x8b\x73\x87\x6e\xe4\x7e\xff\x5c\xe6\x63\x1b\x5b\x6a\x6e\xe6\x53\x75\x4e\x71\x63\xa0\x75\x65\x62\xa1\x8f\x6e\x4f\x26\x4e\xd1\x6c\xa6\x7e\xb6\x8b\xba\x84\x1d\x87\xba\x7f\x57\x90\x3b\x95\x23\x7b\xa9\x9a\xa1\x88\xf8\x84\x3d\x6d\x1b\x9a\x86\x7e\xdc\x59\x88\x9e\xbb\x73\x9b\x78\x01\x86\x82\x9a\x6c\x9a\x82\x56\x1b\x54\x17\x57\xcb\x4e\x70\x9e\xa6\x53\x56\x8f\xc8\x81\x09\x77\x92\x99\x92\x86\xee\x6e\xe1\x85\x13\x66\xfc\x61\x62\x6f\x2b\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x29\x82\x92\x83\x2b\x76\xf2\x6c\x13\x5f\xd9\x83\xbd\x73\x2b\x83\x05\x95\x1a\x6b\xdb\x77\xdb\x94\xc6\x53\x6f\x83\x02\x51\x92\x5e\x3d\x8c\x8c\x8d\x38\x4e\x48\x73\xab\x67\x9a\x68\x85\x91\x76\x97\x09\x71\x64\x6c\xa1\x77\x09\x5a\x92\x95\x41\x6b\xcf\x7f\x8e\x66\x27\x5b\xd0\x59\xb9\x5a\x9a\x95\xe8\x95\xf7\x4e\xec\x84\x0c\x84\x99\x6a\xac\x76\xdf\x95\x30\x73\x1b\x68\xa6\x5b\x5f\x77\x2f\x91\x9a\x97\x61\x7c\xdc\x8f\xf7\x8c\x1c\x5f\x25\x7c\x73\x79\xd8\x89\xc5\x6c\xcc\x87\x1c\x5b\xc6\x5e\x42\x68\xc9\x77\x20", /* 5280 */ "\x00\x00\x7e\xf5\x51\x95\x51\x4d\x52\xc9\x5a\x29\x7f\x05\x97\x62\x82\xd7\x63\xcf\x77\x84\x85\xd0\x79\xd2\x6e\x3a\x5e\x99\x59\x99\x85\x11\x70\x6d\x6c\x11\x62\xbf\x76\xbf\x65\x4f\x60\xaf\x95\xfd\x66\x0e\x87\x9f\x9e\x23\x94\xed\x54\x0d\x54\x7d\x8c\x2c\x64\x78\x64\x79\x86\x11\x6a\x21\x81\x9c\x78\xe8\x64\x69\x9b\x54\x62\xb9\x67\x2b\x83\xab\x58\xa8\x9e\xd8\x6c\xab\x6f\x20\x5b\xde\x96\x4c\x8c\x0b\x72\x5f\x67\xd0\x62\xc7\x72\x61\x4e\xa9\x59\xc6\x6b\xcd\x58\x93\x66\xae\x5e\x55\x52\xdf\x61\x55\x67\x28\x76\xee\x77\x66\x72\x67\x7a\x46\x62\xff\x54\xea\x54\x50\x94\xa0\x90\xa3\x5a\x1c\x7e\xb3\x6c\x16\x4e\x43\x59\x76\x80\x10\x59\x48\x53\x57\x75\x37\x96\xbe\x56\xca\x63\x20\x81\x11\x60\x7c\x95\xf9\x6d\xd6\x54\x62\x99\x81\x51\x85\x5a\xe9\x80\xfd\x59\xae\x97\x13\x50\x2a\x6c\xe5\x5c\x3c\x62\xdf\x4f\x60\x53\x3f\x81\x7b\x90\x06\x6e\xba\x85\x2b\x62\xc8\x5e\x74\x78\xbe\x64\xb5\x63\x7b\x5f\xf5\x5a\x18\x91\x7f\x9e\x1f\x5c\x3f\x63\x4f\x80\x42\x5b\x7d\x55\x6e\x95\x4a\x95\x4d\x6d\x85\x60\xa8\x67\xe0\x72\xde\x51\xdd\x5b\x81\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe7\x6c\xde\x72\x5b\x62\x6d\x94\xae\x7e\xbd\x81\x13\x6d\x53\x51\x9c\x5f\x04\x59\x74\x52\xaa\x60\x12\x59\x73\x66\x96\x86\x50\x75\x9f\x63\x2a\x61\xe6\x7c\xef\x8b\xfa\x54\xe6\x6b\x27\x9e\x25\x6b\xb4\x85\xd5\x54\x55\x50\x76\x6c\xa4\x55\x6a\x8d\xb4\x72\x2c\x5e\x15\x60\x15\x74\x36\x62\xcd\x63\x92\x72\x4c\x5f\x98\x6e\x43\x6d\x3e\x65\x00\x6f\x58\x76\xd8\x78\xd0\x76\xfc\x75\x54\x52\x24\x53\xdb\x4e\x53\x5e\x9e\x65\xc1\x80\x2a\x80\xd6\x62\x9b\x54\x86\x52\x28\x70\xae\x88\x8d\x8d\xd1\x6c\xe1\x54\x78\x80\xda", /* 5380 */ "\x00\x00\x57\xf9\x88\xf4\x8d\x54\x96\x6a\x91\x4d\x4f\x69\x6c\x9b\x55\xb7\x76\xc6\x78\x30\x62\xa8\x70\xf9\x6f\x8e\x5f\x6d\x84\xec\x68\xda\x78\x7c\x7b\xf7\x81\xa8\x67\x0b\x9e\x4f\x63\x67\x78\xb0\x57\x6f\x78\x12\x97\x39\x62\x79\x62\xab\x52\x88\x74\x35\x6b\xd7\x55\x64\x81\x3e\x75\xb2\x76\xae\x53\x39\x75\xde\x50\xfb\x5c\x41\x8b\x6c\x7b\xc7\x50\x4f\x72\x47\x9a\x97\x98\xd8\x6f\x02\x74\xe2\x79\x68\x64\x87\x77\xa5\x62\xfc\x98\x91\x8d\x2b\x54\xc1\x80\x58\x4e\x52\x57\x6a\x82\xf9\x84\x0d\x5e\x73\x51\xed\x74\xf6\x8b\xc4\x5c\x4f\x57\x61\x6c\xfc\x98\x87\x5a\x46\x78\x34\x9b\x44\x8f\xeb\x7c\x95\x52\x56\x62\x51\x94\xfa\x4e\xc6\x83\x86\x84\x61\x83\xe9\x84\xb2\x57\xd4\x67\x34\x57\x03\x66\x6e\x6d\x66\x8c\x31\x66\xdd\x70\x11\x67\x1f\x6b\x3a\x68\x16\x62\x1a\x59\xbb\x4e\x03\x51\xc4\x6f\x06\x67\xd2\x6c\x8f\x51\x76\x68\xcb\x59\x47\x6b\x67\x75\x66\x5d\x0e\x81\x10\x9f\x50\x65\xd7\x79\x48\x79\x41\x9a\x91\x8d\x77\x5c\x82\x4e\x5e\x4f\x01\x54\x2f\x59\x51\x78\x0c\x56\x68\x6c\x14\x8f\xc4\x5f\x03\x6c\x7d\x6c\xe3\x8b\xab\x63\x90\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x70\x6d\x3d\x72\x75\x62\x66\x94\x8e\x94\xc5\x53\x43\x8f\xc1\x7b\x7e\x4e\xdf\x8c\x26\x4e\x7e\x9e\xd4\x94\xb1\x94\xb3\x52\x4d\x6f\x5c\x90\x63\x6d\x45\x8c\x34\x58\x11\x5d\x4c\x6b\x20\x6b\x49\x67\xaa\x54\x5b\x81\x54\x7f\x8c\x58\x99\x85\x37\x5f\x3a\x62\xa2\x6a\x47\x95\x39\x65\x72\x60\x84\x68\x65\x77\xa7\x4e\x54\x4f\xa8\x5d\xe7\x97\x98\x64\xac\x7f\xd8\x5c\xed\x4f\xcf\x7a\x8d\x52\x07\x83\x04\x4e\x14\x60\x2f\x7a\x83\x94\xa6\x4f\xb5\x4e\xb2\x79\xe6\x74\x34\x52\xe4\x82\xb9\x64\xd2\x79\xbd\x5b\xdd\x6c\x81", /* 5480 */ "\x00\x00\x97\x52\x8f\x7b\x6c\x22\x50\x3e\x53\x7f\x6e\x05\x64\xce\x66\x74\x6c\x30\x60\xc5\x98\x77\x8b\xf7\x5e\x86\x74\x3c\x7a\x77\x79\xcb\x4e\x18\x90\xb1\x74\x03\x6c\x42\x56\xda\x91\x4b\x6c\xc5\x8d\x8b\x53\x3a\x86\xc6\x66\xf2\x8e\xaf\x5c\x48\x9a\x71\x6e\x20\x53\xd6\x5a\x36\x9f\x8b\x8d\xa3\x53\xbb\x57\x08\x98\xa7\x67\x43\x91\x9b\x6c\xc9\x51\x68\x75\xca\x62\xf3\x72\xac\x52\x38\x52\x9d\x7f\x3a\x70\x94\x76\x38\x53\x74\x9e\x4a\x69\xb7\x78\x6e\x96\xc0\x88\xd9\x7f\xa4\x71\x36\x71\xc3\x51\x89\x67\xd3\x74\xe4\x58\xe4\x65\x18\x56\xb7\x8b\xa9\x99\x76\x62\x70\x7e\xd5\x60\xf9\x70\xed\x58\xec\x4e\xc1\x4e\xba\x5f\xcd\x97\xe7\x4e\xfb\x8b\xa4\x52\x03\x59\x8a\x7e\xab\x62\x54\x4e\xcd\x65\xe5\x62\x0e\x83\x38\x84\xc9\x83\x63\x87\x8d\x71\x94\x6e\xb6\x5b\xb9\x7e\xd2\x51\x97\x63\xc9\x67\xd4\x80\x89\x83\x39\x88\x15\x51\x12\x5b\x7a\x59\x82\x8f\xb1\x4e\x73\x6c\x5d\x51\x65\x89\x25\x8f\x6f\x96\x2e\x85\x4a\x74\x5e\x95\x10\x95\xf0\x6d\xa6\x82\xe5\x5f\x31\x64\x92\x6d\x12\x84\x28\x81\x6e\x9c\xc3\x58\x5e\x8d\x5b\x4e\x09\x53\xc1\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x1e\x65\x63\x68\x51\x55\xd3\x4e\x27\x64\x14\x9a\x9a\x62\x6b\x5a\xc2\x74\x5f\x82\x72\x6d\xa9\x68\xee\x50\xe7\x83\x8e\x78\x02\x67\x40\x52\x39\x6c\x99\x7e\xb1\x50\xbb\x55\x65\x71\x5e\x7b\x5b\x66\x52\x73\xca\x82\xeb\x67\x49\x5c\x71\x52\x20\x71\x7d\x88\x6b\x95\xea\x96\x55\x64\xc5\x8d\x61\x81\xb3\x55\x84\x6c\x55\x62\x47\x7f\x2e\x58\x92\x4f\x24\x55\x46\x8d\x4f\x66\x4c\x4e\x0a\x5c\x1a\x88\xf3\x68\xa2\x63\x4e\x7a\x0d\x70\xe7\x82\x8d\x52\xfa\x97\xf6\x5c\x11\x54\xe8\x90\xb5\x7e\xcd\x59\x62\x8d\x4a\x86\xc7", /* 5580 */ "\x00\x00\x82\x0c\x82\x0d\x8d\x66\x64\x44\x5c\x04\x61\x51\x6d\x89\x79\x3e\x8b\xbe\x78\x37\x75\x33\x54\x7b\x4f\x38\x8e\xab\x6d\xf1\x5a\x20\x7e\xc5\x79\x5e\x6c\x88\x5b\xa1\x5a\x76\x75\x1a\x80\xbe\x61\x4e\x6e\x17\x58\xf0\x75\x1f\x75\x25\x72\x72\x53\x47\x7e\xf3\x77\x01\x76\xdb\x52\x69\x80\xdc\x57\x23\x5e\x08\x59\x31\x72\xee\x65\xbd\x6e\x7f\x8b\xd7\x5c\x38\x86\x71\x53\x41\x77\xf3\x62\xfe\x65\xf6\x4e\xc0\x98\xdf\x86\x80\x5b\x9e\x8b\xc6\x53\xf2\x77\xe2\x4f\x7f\x5c\x4e\x9a\x76\x59\xcb\x5f\x0f\x79\x3a\x58\xeb\x4e\x16\x67\xff\x4e\x8b\x62\xed\x8a\x93\x90\x1d\x52\xbf\x66\x2f\x55\xdc\x56\x6c\x90\x02\x4e\xd5\x4f\x8d\x91\xca\x99\x70\x6c\x0f\x5e\x02\x60\x43\x5b\xa4\x89\xc6\x8b\xd5\x65\x36\x62\x4b\x99\x96\x5b\x88\x5b\xff\x63\x88\x55\x2e\x53\xd7\x76\x26\x51\x7d\x85\x2c\x67\xa2\x68\xb3\x6b\x8a\x62\x92\x8f\x93\x53\xd4\x82\x12\x6d\xd1\x75\x8f\x4e\x66\x8d\x4e\x5b\x70\x71\x9f\x85\xaf\x66\x91\x66\xd9\x7f\x72\x87\x00\x9e\xcd\x9f\x20\x5c\x5e\x67\x2f\x8f\xf0\x68\x11\x67\x5f\x62\x0d\x7a\xd6\x58\x85\x5e\xb6\x65\x70\x6f\x31\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x55\x52\x37\x80\x0d\x64\x54\x88\x70\x75\x29\x5e\x05\x68\x13\x62\xf4\x97\x1c\x53\xcc\x72\x3d\x8c\x01\x6c\x34\x77\x61\x7a\x0e\x54\x2e\x77\xac\x98\x7a\x82\x1c\x8b\xf4\x78\x55\x67\x14\x70\xc1\x65\xaf\x64\x95\x56\x36\x60\x1d\x79\xc1\x53\xf8\x4e\x1d\x6b\x7b\x80\x86\x5b\xfa\x55\xe3\x56\xdb\x4f\x3a\x4f\x3c\x99\x72\x5d\xf3\x67\x7e\x80\x38\x60\x02\x98\x82\x90\x01\x5b\x8b\x8b\xbc\x8b\xf5\x64\x1c\x82\x58\x64\xde\x55\xfd\x82\xcf\x91\x65\x4f\xd7\x7d\x20\x90\x1f\x7c\x9f\x50\xf3\x58\x51\x6e\xaf\x5b\xbf\x8b\xc9", /* 5680 */ "\x00\x00\x80\x83\x91\x78\x84\x9c\x7b\x97\x86\x7d\x96\x8b\x96\x8f\x7e\xe5\x9a\xd3\x78\x8e\x5c\x81\x7a\x57\x90\x42\x96\xa7\x79\x5f\x5b\x59\x63\x5f\x7b\x0b\x84\xd1\x68\xad\x55\x06\x7f\x29\x74\x10\x7d\x22\x95\x01\x62\x40\x58\x4c\x4e\xd6\x5b\x83\x59\x79\x58\x54\x73\x6d\x63\x1e\x8e\x4b\x8e\x0f\x80\xce\x82\xd4\x62\xac\x53\xf0\x6c\xf0\x91\x5e\x59\x2a\x60\x01\x6c\x70\x57\x4d\x64\x4a\x8d\x2a\x76\x2b\x6e\xe9\x57\x5b\x6a\x80\x75\xf0\x6f\x6d\x8c\x2d\x8c\x08\x57\x66\x6b\xef\x88\x92\x78\xb3\x63\xa2\x53\xf9\x70\xad\x6c\x64\x58\x58\x64\x2a\x58\x02\x68\xe0\x81\x9b\x55\x10\x7c\xd6\x50\x18\x8e\xba\x6d\xcc\x8d\x9f\x70\xeb\x63\x8f\x6d\x9b\x6e\xd4\x7e\xe6\x84\x04\x68\x43\x90\x03\x6d\xd8\x96\x76\x8b\xa8\x59\x57\x72\x79\x85\xe4\x81\x7e\x75\xbc\x8a\x8a\x68\xaf\x52\x54\x8e\x22\x95\x11\x63\xd0\x98\x98\x8e\x44\x55\x7c\x4f\x53\x66\xff\x56\x8f\x60\xd5\x6d\x95\x52\x43\x5c\x49\x59\x29\x6d\xfb\x58\x6b\x75\x30\x75\x1c\x60\x6c\x82\x14\x81\x46\x63\x11\x67\x61\x8f\xe2\x77\x3a\x8d\xf3\x8d\x34\x94\xc1\x5e\x16\x53\x85\x54\x2c\x70\xc3\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x40\x5e\xf7\x50\x5c\x4e\xad\x5e\xad\x63\x3a\x82\x47\x90\x1a\x68\x50\x91\x6e\x77\xb3\x54\x0c\x94\xdc\x5f\x64\x7a\xe5\x68\x76\x63\x45\x7b\x52\x7e\xdf\x75\xdb\x50\x77\x62\x95\x59\x34\x90\x0f\x51\xf8\x79\xc3\x7a\x81\x56\xfe\x5f\x92\x90\x14\x6d\x82\x5c\x60\x57\x1f\x54\x10\x51\x54\x6e\x4d\x56\xe2\x63\xa8\x98\x93\x81\x7f\x87\x15\x89\x2a\x90\x00\x54\x1e\x5c\x6f\x81\xc0\x62\xd6\x62\x58\x81\x31\x9e\x35\x96\x40\x9a\x6e\x9a\x7c\x69\x2d\x59\xa5\x62\xd3\x55\x3e\x63\x16\x54\xc7\x86\xd9\x6d\x3c\x5a\x03\x74\xe6", /* 5780 */ "\x00\x00\x88\x9c\x6b\x6a\x59\x16\x8c\x4c\x5f\x2f\x6e\x7e\x73\xa9\x98\x7d\x4e\x38\x70\xf7\x5b\x8c\x78\x97\x63\x3d\x66\x5a\x76\x96\x60\xcb\x5b\x9b\x5a\x49\x4e\x07\x81\x55\x6c\x6a\x73\x8b\x4e\xa1\x67\x89\x7f\x51\x5f\x80\x65\xfa\x67\x1b\x5f\xd8\x59\x84\x5a\x01\x5d\xcd\x5f\xae\x53\x71\x97\xe6\x8f\xdd\x68\x45\x56\xf4\x55\x2f\x60\xdf\x4e\x3a\x6f\x4d\x7e\xf4\x82\xc7\x84\x0e\x59\xd4\x4f\x1f\x4f\x2a\x5c\x3e\x7e\xac\x67\x2a\x85\x1a\x54\x73\x75\x4f\x80\xc3\x55\x82\x9b\x4f\x4f\x4d\x6e\x2d\x8c\x13\x5c\x09\x61\x70\x53\x6b\x76\x1f\x6e\x29\x86\x8a\x65\x87\x95\xfb\x7e\xb9\x54\x3b\x7a\x33\x7d\x0a\x95\xee\x55\xe1\x7f\xc1\x74\xee\x63\x1d\x87\x17\x6d\xa1\x7a\x9d\x62\x11\x65\xa1\x53\x67\x63\xe1\x6c\x83\x5d\xeb\x54\x5c\x94\xa8\x4e\x4c\x6c\x61\x8b\xec\x5c\x4b\x65\xe0\x82\x9c\x68\xa7\x54\x3e\x54\x34\x6b\xcb\x6b\x66\x4e\x94\x63\x42\x53\x48\x82\x1e\x4f\x0d\x4f\xae\x57\x5e\x62\x0a\x96\xfe\x66\x64\x72\x69\x52\xff\x52\xa1\x60\x9f\x8b\xef\x66\x14\x71\x99\x67\x90\x89\x7f\x78\x52\x77\xfd\x66\x70\x56\x3b\x54\x38\x95\x21\x72\x7a\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x60\x6f\x5e\x0c\x60\x89\x81\x9d\x59\x15\x60\xdc\x71\x84\x70\xef\x6e\xaa\x6c\x50\x72\x80\x6a\x84\x88\xad\x5e\x2d\x4e\x60\x5a\xb3\x55\x9c\x94\xe3\x6d\x17\x7c\xfb\x96\x99\x62\x0f\x7e\xc6\x77\x8e\x86\x7e\x53\x23\x97\x1e\x8f\x96\x66\x87\x5c\xe1\x4f\xa0\x72\xed\x4e\x0b\x53\xa6\x59\x0f\x54\x13\x63\x80\x95\x28\x51\x48\x4e\xd9\x9c\x9c\x7e\xa4\x54\xb8\x8d\x24\x88\x54\x82\x37\x95\xf2\x6d\x8e\x5f\x26\x5a\xcc\x66\x3e\x96\x69\x73\xb0\x73\x2e\x53\xbf\x81\x7a\x99\x85\x7f\xa1\x5b\xaa\x96\x77\x96\x50\x7e\xbf", /* 5880 */ "\x00\x00\x76\xf8\x53\xa2\x95\x76\x99\x99\x7b\xb1\x89\x44\x6e\x58\x4e\x61\x7f\xd4\x79\x65\x8b\xe6\x60\xf3\x54\xcd\x4e\xab\x98\x79\x5d\xf7\x6a\x61\x50\xcf\x54\x11\x8c\x61\x84\x27\x78\x5d\x97\x04\x52\x4a\x54\xee\x56\xa3\x95\x00\x6d\x88\x5b\xb5\x6d\xc6\x66\x53\x5c\x0f\x5b\x5d\x68\x21\x80\x96\x55\x78\x7b\x11\x65\x48\x69\x54\x4e\x9b\x6b\x47\x87\x4e\x97\x8b\x53\x4f\x63\x1f\x64\x3a\x90\xaa\x65\x9c\x80\xc1\x8c\x10\x51\x99\x68\xb0\x53\x78\x87\xf9\x61\xc8\x6c\xc4\x6c\xfb\x8c\x22\x5c\x51\x85\xaa\x82\xaf\x95\x0c\x6b\x23\x8f\x9b\x65\xb0\x5f\xfb\x5f\xc3\x4f\xe1\x88\x45\x66\x1f\x81\x65\x73\x29\x60\xfa\x51\x74\x52\x11\x57\x8b\x5f\x62\x90\xa2\x88\x4c\x91\x92\x5e\x78\x67\x4f\x60\x27\x59\xd3\x51\x44\x51\xf6\x80\xf8\x53\x08\x6c\x79\x96\xc4\x71\x8a\x4f\x11\x4f\xee\x7f\x9e\x67\x3d\x55\xc5\x95\x08\x79\xc0\x88\x96\x7e\xe3\x58\x9f\x62\x0c\x97\x00\x86\x5a\x56\x18\x98\x7b\x5f\x90\x8b\xb8\x84\xc4\x91\x57\x53\xd9\x65\xed\x5e\x8f\x75\x5c\x60\x64\x7d\x6e\x5a\x7f\x7e\xea\x7e\xed\x8f\x69\x55\xa7\x5b\xa3\x60\xac\x65\xcb\x73\x84\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x09\x76\x63\x77\x29\x7e\xda\x97\x74\x85\x9b\x5b\x66\x7a\x74\x96\xea\x88\x40\x52\xcb\x71\x8f\x5f\xaa\x65\xec\x8b\xe2\x5b\xfb\x9a\x6f\x5d\xe1\x6b\x89\x6c\x5b\x8b\xad\x8b\xaf\x90\x0a\x8f\xc5\x53\x8b\x62\xbc\x9e\x26\x9e\x2d\x54\x40\x4e\x2b\x82\xbd\x72\x59\x86\x9c\x5d\x16\x88\x59\x6d\xaf\x96\xc5\x54\xd1\x4e\x9a\x8b\xb6\x71\x09\x54\xbd\x96\x09\x70\xdf\x6d\xf9\x76\xd0\x4e\x25\x78\x14\x87\x12\x5c\xa9\x5e\xf6\x8a\x00\x98\x9c\x96\x0e\x70\x8e\x6c\xbf\x59\x44\x63\xa9\x77\x3c\x88\x4d\x6f\x14\x82\x73\x58\x30", /* 5980 */ "\x00\x00\x71\xd5\x53\x8c\x78\x1a\x96\xc1\x55\x01\x5f\x66\x71\x30\x5b\xb4\x8c\x1a\x9a\x8c\x6b\x83\x59\x2e\x9e\x2f\x79\xe7\x67\x68\x62\x6c\x4f\x6f\x75\xa1\x7f\x8a\x6d\x0b\x96\x33\x6c\x27\x4e\xf0\x75\xd2\x51\x7b\x68\x37\x6f\x3e\x90\x80\x81\x70\x59\x96\x74\x76\x64\x47\x5c\x27\x90\x65\x7a\x91\x8c\x23\x59\xda\x54\xac\x82\x00\x83\x6f\x89\x81\x80\x00\x69\x30\x56\x4e\x80\x36\x72\x37\x91\xce\x51\xb6\x4e\x5f\x98\x75\x63\x96\x4e\x1a\x53\xf6\x66\xf3\x81\x4b\x59\x1c\x6d\xb2\x4e\x00\x58\xf9\x53\x3b\x63\xd6\x94\xf1\x4f\x9d\x4f\x0a\x88\x63\x98\x90\x59\x37\x90\x57\x79\xfb\x4e\xea\x80\xf0\x75\x91\x6c\x82\x5b\x9c\x59\xe8\x5f\x5d\x69\x05\x86\x81\x50\x1a\x5d\xf2\x4e\x59\x77\xe3\x4e\xe5\x82\x7a\x62\x91\x66\x13\x90\x91\x5c\x79\x4e\xbf\x5f\x79\x81\xc6\x90\x38\x80\x84\x75\xab\x4e\xa6\x88\xd4\x61\x0f\x6b\xc5\x5f\xc6\x4e\x49\x76\xca\x6e\xa2\x8b\xe3\x8b\xae\x8c\x0a\x8b\xd1\x5f\x02\x7f\xfc\x7f\xcc\x7e\xce\x83\x35\x83\x6b\x56\xe0\x6b\xb7\x97\xf3\x96\x34\x59\xfb\x54\x1f\x94\xf6\x6d\xeb\x5b\xc5\x99\x6e\x5c\x39\x5f\x15\x96\x90\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x70\x82\xf1\x6a\x31\x5a\x74\x9e\x70\x5e\x94\x7f\x28\x83\xb9\x84\x24\x84\x25\x83\x67\x87\x47\x8f\xce\x8d\x62\x76\xc8\x5f\x71\x98\x96\x78\x6c\x66\x20\x54\xdf\x62\xe5\x4f\x63\x81\xc3\x75\xc8\x5e\xb8\x96\xcd\x8e\x0a\x86\xf9\x54\x8f\x6c\xf3\x6d\x8c\x6c\x38\x60\x7f\x52\xc7\x75\x28\x5e\x7d\x4f\x18\x60\xa0\x5f\xe7\x5c\x24\x75\x31\x90\xae\x94\xc0\x72\xb9\x6c\xb9\x6e\x38\x91\x49\x67\x09\x53\xcb\x53\xf3\x4f\x51\x91\xc9\x8b\xf1\x53\xc8\x5e\x7c\x8f\xc2\x6d\xe4\x4e\x8e\x76\xc2\x69\x86\x86\x5e\x61\x1a\x82\x06", /* 5a80 */ "\x00\x00\x4f\x59\x4f\xde\x90\x3e\x9c\x7c\x61\x09\x6e\x1d\x6e\x14\x96\x85\x4e\x88\x5a\x31\x96\xe8\x4e\x0e\x5c\x7f\x79\xb9\x5b\x87\x8b\xed\x7f\xbd\x73\x89\x57\xdf\x82\x8b\x90\xc1\x54\x01\x90\x47\x55\xbb\x5c\xea\x5f\xa1\x61\x08\x6b\x32\x72\xf1\x80\xb2\x8a\x89\x6d\x74\x5b\xd3\x88\xd5\x98\x84\x8c\x6b\x9a\x6d\x9e\x33\x6e\x0a\x51\xa4\x51\x43\x57\xa3\x88\x81\x53\x9f\x63\xf4\x8f\x95\x56\xed\x54\x58\x57\x06\x73\x3f\x6e\x90\x7f\x18\x8f\xdc\x82\xd1\x61\x3f\x60\x28\x96\x62\x66\xf0\x7e\xa6\x8d\x8a\x8d\xc3\x94\xa5\x5c\xb3\x7c\xa4\x67\x08\x60\xa6\x96\x05\x80\x18\x4e\x91\x90\xe7\x53\x00\x96\x68\x51\x41\x8f\xd0\x85\x74\x91\x5d\x66\x55\x97\xf5\x5b\x55\x53\x1d\x78\x38\x67\x42\x68\x3d\x54\xc9\x70\x7e\x5b\xb0\x8f\x7d\x51\x8d\x57\x28\x54\xb1\x65\x12\x66\x82\x8d\x5e\x8d\x43\x81\x0f\x84\x6c\x90\x6d\x7c\xdf\x51\xff\x85\xfb\x67\xa3\x65\xe9\x6f\xa1\x86\xa4\x8e\x81\x56\x6a\x90\x20\x76\x82\x70\x76\x71\xe5\x8d\x23\x62\xe9\x52\x19\x6c\xfd\x8d\x3c\x60\x0e\x58\x9e\x61\x8e\x66\xfe\x8d\x60\x62\x4e\x55\xb3\x6e\x23\x67\x2d\x8f\x67\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe1\x95\xf8\x77\x28\x68\x05\x69\xa8\x54\x8b\x4e\x4d\x70\xb8\x8b\xc8\x64\x58\x65\x8b\x5b\x85\x7a\x84\x50\x3a\x5b\xe8\x77\xbb\x6b\xe1\x8a\x79\x7c\x98\x6c\xbe\x76\xcf\x65\xa9\x8f\x97\x5d\x2d\x5c\x55\x86\x38\x68\x08\x53\x60\x62\x18\x7a\xd9\x6e\x5b\x7e\xfd\x6a\x1f\x7a\xe0\x5f\x70\x6f\x33\x5f\x20\x63\x8c\x6d\xa8\x67\x56\x4e\x08\x5e\x10\x8d\x26\x4e\xd7\x80\xc0\x76\x34\x96\x9c\x62\xdb\x66\x2d\x62\x7e\x6c\xbc\x8d\x75\x71\x67\x7f\x69\x51\x46\x80\x87\x53\xec\x90\x6e\x62\x98\x54\xf2\x86\xf0\x8f\x99\x80\x05", /* 5b80 */ "\x00\x00\x95\x17\x85\x17\x8f\xd9\x6d\x59\x73\xcd\x65\x9f\x77\x1f\x75\x04\x78\x27\x81\xfb\x8d\x1e\x94\x88\x4f\xa6\x67\x95\x75\xb9\x8b\xca\x97\x07\x63\x2f\x95\x47\x96\x35\x84\xb8\x63\x23\x77\x41\x5f\x81\x72\xf0\x4e\x89\x60\x14\x65\x74\x62\xef\x6b\x63\x65\x3f\x5e\x27\x75\xc7\x90\xd1\x8b\xc1\x82\x9d\x67\x9d\x65\x2f\x54\x31\x87\x18\x77\xe5\x80\xa2\x81\x02\x6c\x41\x4e\x4b\x7e\xc7\x80\x4c\x76\xf4\x69\x0d\x6b\x96\x62\x67\x50\x3c\x4f\x84\x57\x40\x63\x07\x6b\x62\x8d\xbe\x53\xea\x65\xe8\x7e\xb8\x5f\xd7\x63\x1a\x63\xb7\x81\xf3\x81\xf4\x7f\x6e\x5e\x1c\x5c\xd9\x52\x36\x66\x7a\x79\xe9\x7a\x1a\x8d\x28\x70\x99\x75\xd4\x6e\xde\x6c\xbb\x7a\x92\x4e\x2d\x76\xc5\x5f\xe0\x94\x9f\x88\x77\x7e\xc8\x79\xcd\x80\xbf\x91\xcd\x4e\xf2\x4f\x17\x82\x1f\x54\x68\x5d\xde\x6d\x32\x8b\xcc\x7c\xa5\x8f\x74\x80\x98\x5e\x1a\x54\x92\x76\xb1\x5b\x99\x66\x3c\x9a\xa4\x73\xe0\x68\x2a\x86\xdb\x67\x31\x73\x2a\x8b\xf8\x8b\xdb\x90\x10\x7a\xf9\x70\xdb\x71\x6e\x62\xc4\x77\xa9\x56\x31\x4e\x3b\x84\x57\x67\xf1\x52\xa9\x86\xc0\x8d\x2e\x94\xf8\x7b\x51\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x4f\x6c\xe8\x79\x5d\x9a\x7b\x62\x93\x72\x2a\x62\xfd\x4e\x13\x78\x16\x8f\x6c\x64\xb0\x8d\x5a\x7b\xc6\x68\x69\x5e\x84\x88\xc5\x59\x86\x64\x9e\x58\xee\x72\xb6\x69\x0e\x95\x25\x8f\xfd\x8d\x58\x57\x60\x7f\x00\x8c\x06\x51\xc6\x63\x49\x62\xd9\x53\x53\x68\x4c\x74\x22\x83\x01\x91\x4c\x55\x44\x77\x40\x70\x7c\x6d\x4a\x51\x79\x54\xa8\x8d\x44\x59\xff\x6e\xcb\x6d\xc4\x5b\x5c\x7d\x2b\x4e\xd4\x7c\x7d\x6e\xd3\x5b\x50\x81\xea\x6e\x0d\x5b\x57\x9b\x03\x68\xd5\x8e\x2a\x5b\x97\x7e\xfc\x60\x3b\x7e\xb5\x90\xb9\x8d\x70", /* 5c80 */ "\x00\x00\x59\x4f\x63\xcd\x79\xdf\x8d\xb3\x53\x52\x65\xcf\x79\x56\x8b\xc5\x96\x3b\x7e\xc4\x94\xbb\x7e\x82\x56\x34\x91\x89\x67\x00\x7f\x6a\x5c\x0a\x90\x75\x66\x28\x5d\xe6\x4f\x50\x67\xde\x50\x5a\x4f\x5c\x57\x50\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8d\x4e\x0c\x51\x40\x4e\x10\x5e\xff\x53\x45\x4e\x15\x4e\x98\x4e\x1e\x9b\x32\x5b\x6c\x56\x69\x4e\x28\x79\xba\x4e\x3f\x53\x15\x4e\x47\x59\x2d\x72\x3b\x53\x6e\x6c\x10\x56\xdf\x80\xe4\x99\x97\x6b\xd3\x77\x7e\x9f\x17\x4e\x36\x4e\x9f\x9f\x10\x4e\x5c\x4e\x69\x4e\x93\x82\x88\x5b\x5b\x55\x6c\x56\x0f\x4e\xc4\x53\x8d\x53\x9d\x53\xa3\x53\xa5\x53\xae\x97\x65\x8d\x5d\x53\x1a\x53\xf5\x53\x26\x53\x2e\x53\x3e\x8d\x5c\x53\x66\x53\x63\x52\x02\x52\x08\x52\x0e\x52\x2d\x52\x33\x52\x3f\x52\x40\x52\x4c\x52\x5e\x52\x61\x52\x5c\x84\xaf\x52\x7d\x52\x82\x52\x81\x52\x90\x52\x93\x51\x82\x7f\x54\x4e\xbb\x4e\xc3\x4e\xc9\x4e\xc2\x4e\xe8\x4e\xe1\x4e\xeb\x4e\xde\x4f\x1b\x4e\xf3\x4f\x22\x4f\x64\x4e\xf5\x4f\x25\x4f\x27\x4f\x09\x4f\x2b\x4f\x5e\x4f\x67\x65\x38\x4f\x5a\x4f\x5d\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x5f\x4f\x57\x4f\x32\x4f\x3d\x4f\x76\x4f\x74\x4f\x91\x4f\x89\x4f\x83\x4f\x8f\x4f\x7e\x4f\x7b\x4f\xaa\x4f\x7c\x4f\xac\x4f\x94\x4f\xe6\x4f\xe8\x4f\xea\x4f\xc5\x4f\xda\x4f\xe3\x4f\xdc\x4f\xd1\x4f\xdf\x4f\xf8\x50\x29\x50\x4c\x4f\xf3\x50\x2c\x50\x0f\x50\x2e\x50\x2d\x4f\xfe\x50\x1c\x50\x0c\x50\x25\x50\x28\x50\x7e\x50\x43\x50\x55\x50\x48\x50\x4e\x50\x6c\x50\x7b\x50\xa5\x50\xa7\x50\xa9\x50\xba\x50\xd6\x51\x06\x50\xed\x50\xec\x50\xe6\x50\xee\x51\x07\x51\x0b\x4e\xdd\x6c\x3d\x4f\x58\x4f\x65\x4f\xce\x9f\xa0", /* 5d80 */ "\x00\x00\x6c\x46\x7c\x74\x51\x6e\x5d\xfd\x9e\xc9\x99\x98\x51\x81\x59\x14\x52\xf9\x53\x0d\x8a\x07\x53\x10\x51\xeb\x59\x19\x51\x55\x4e\xa0\x51\x56\x4e\xb3\x88\x6e\x88\xa4\x4e\xb5\x81\x14\x88\xd2\x79\x80\x5b\x34\x88\x03\x7f\xb8\x51\xab\x51\xb1\x51\xbd\x51\xbc\x51\xc7\x51\x96\x51\xa2\x51\xa5\x8b\xa0\x8b\xa6\x8b\xa7\x8b\xaa\x8b\xb4\x8b\xb5\x8b\xb7\x8b\xc2\x8b\xc3\x8b\xcb\x8b\xcf\x8b\xce\x8b\xd2\x8b\xd3\x8b\xd4\x8b\xd6\x8b\xd8\x8b\xd9\x8b\xdc\x8b\xdf\x8b\xe0\x8b\xe4\x8b\xe8\x8b\xe9\x8b\xee\x8b\xf0\x8b\xf3\x8b\xf6\x8b\xf9\x8b\xfc\x8b\xff\x8c\x00\x8c\x02\x8c\x04\x8c\x07\x8c\x0c\x8c\x0f\x8c\x11\x8c\x12\x8c\x14\x8c\x15\x8c\x16\x8c\x19\x8c\x1b\x8c\x18\x8c\x1d\x8c\x1f\x8c\x20\x8c\x21\x8c\x25\x8c\x27\x8c\x2a\x8c\x2b\x8c\x2e\x8c\x2f\x8c\x32\x8c\x33\x8c\x35\x8c\x36\x53\x69\x53\x7a\x96\x1d\x96\x22\x96\x21\x96\x31\x96\x2a\x96\x3d\x96\x3c\x96\x42\x96\x49\x96\x54\x96\x5f\x96\x67\x96\x6c\x96\x72\x96\x74\x96\x88\x96\x8d\x96\x97\x96\xb0\x90\x97\x90\x9b\x90\x9d\x90\x99\x90\xac\x90\xa1\x90\xb4\x90\xb3\x90\xb6\x90\xba\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xb8\x90\xb0\x90\xcf\x90\xc5\x90\xbe\x90\xd0\x90\xc4\x90\xc7\x90\xd3\x90\xe6\x90\xe2\x90\xdc\x90\xd7\x90\xdb\x90\xeb\x90\xef\x90\xfe\x91\x04\x91\x22\x91\x1e\x91\x23\x91\x31\x91\x2f\x91\x39\x91\x43\x91\x46\x52\x0d\x59\x42\x52\xa2\x52\xac\x52\xad\x52\xbe\x54\xff\x52\xd0\x52\xd6\x52\xf0\x53\xdf\x71\xee\x77\xcd\x5e\xf4\x51\xf5\x51\xfc\x9b\x2f\x53\xb6\x5f\x01\x75\x5a\x5d\xef\x57\x4c\x57\xa9\x57\xa1\x58\x7e\x58\xbc\x58\xc5\x58\xd1\x57\x29\x57\x2c\x57\x2a\x57\x33\x57\x39\x57\x2e\x57\x2f\x57\x5c\x57\x3b", /* 5e80 */ "\x00\x00\x57\x42\x57\x69\x57\x85\x57\x6b\x57\x86\x57\x7c\x57\x7b\x57\x68\x57\x6d\x57\x76\x57\x73\x57\xad\x57\xa4\x57\x8c\x57\xb2\x57\xcf\x57\xa7\x57\xb4\x57\x93\x57\xa0\x57\xd5\x57\xd8\x57\xda\x57\xd9\x57\xd2\x57\xb8\x57\xf4\x57\xef\x57\xf8\x57\xe4\x57\xdd\x58\x0b\x58\x0d\x57\xfd\x57\xed\x58\x00\x58\x1e\x58\x19\x58\x44\x58\x20\x58\x65\x58\x6c\x58\x81\x58\x89\x58\x9a\x58\x80\x99\xa8\x9f\x19\x61\xff\x82\x79\x82\x7d\x82\x7f\x82\x8f\x82\x8a\x82\xa8\x82\x84\x82\x8e\x82\x91\x82\x97\x82\x99\x82\xab\x82\xb8\x82\xbe\x82\xb0\x82\xc8\x82\xca\x82\xe3\x82\x98\x82\xb7\x82\xae\x82\xcb\x82\xcc\x82\xc1\x82\xa9\x82\xb4\x82\xa1\x82\xaa\x82\x9f\x82\xc4\x82\xce\x82\xa4\x82\xe1\x83\x09\x82\xf7\x82\xe4\x83\x0f\x83\x07\x82\xdc\x82\xf4\x82\xd2\x82\xd8\x83\x0c\x82\xfb\x82\xd3\x83\x11\x83\x1a\x83\x06\x83\x14\x83\x15\x82\xe0\x82\xd5\x83\x1c\x83\x51\x83\x5b\x83\x5c\x83\x08\x83\x92\x83\x3c\x83\x34\x83\x31\x83\x9b\x83\x5e\x83\x2f\x83\x4f\x83\x47\x83\x43\x83\x5f\x83\x40\x83\x17\x83\x60\x83\x2d\x83\x3a\x83\x33\x83\x66\x83\x65\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x68\x83\x1b\x83\x69\x83\x6c\x83\x6a\x83\x6d\x83\x6e\x83\xb0\x83\x78\x83\xb3\x83\xb4\x83\xa0\x83\xaa\x83\x93\x83\x9c\x83\x85\x83\x7c\x83\xb6\x83\xa9\x83\x7d\x83\xb8\x83\x7b\x83\x98\x83\x9e\x83\xa8\x83\xba\x83\xbc\x83\xc1\x84\x01\x83\xe5\x83\xd8\x58\x07\x84\x18\x84\x0b\x83\xdd\x83\xfd\x83\xd6\x84\x1c\x84\x38\x84\x11\x84\x06\x83\xd4\x83\xdf\x84\x0f\x84\x03\x83\xf8\x83\xf9\x83\xea\x83\xc5\x83\xc0\x84\x26\x83\xf0\x83\xe1\x84\x5c\x84\x51\x84\x5a\x84\x59\x84\x73\x84\x87\x84\x88\x84\x7a\x84\x89\x84\x78", /* 5f80 */ "\x00\x00\x84\x3c\x84\x46\x84\x69\x84\x76\x84\x8c\x84\x8e\x84\x31\x84\x6d\x84\xc1\x84\xcd\x84\xd0\x84\xe6\x84\xbd\x84\xd3\x84\xca\x84\xbf\x84\xba\x84\xe0\x84\xa1\x84\xb9\x84\xb4\x84\x97\x84\xe5\x84\xe3\x85\x0c\x75\x0d\x85\x38\x84\xf0\x85\x39\x85\x1f\x85\x3a\x85\x56\x85\x3b\x84\xff\x84\xfc\x85\x59\x85\x48\x85\x68\x85\x64\x85\x5e\x85\x7a\x77\xa2\x85\x43\x85\x72\x85\x7b\x85\xa4\x85\xa8\x85\x87\x85\x8f\x85\x79\x85\xae\x85\x9c\x85\x85\x85\xb9\x85\xb7\x85\xb0\x85\xd3\x85\xc1\x85\xdc\x85\xff\x86\x27\x86\x05\x86\x29\x86\x16\x86\x3c\x5e\xfe\x5f\x08\x59\x3c\x59\x41\x80\x37\x59\x55\x59\x5a\x59\x58\x53\x0f\x5c\x22\x5c\x25\x5c\x2c\x5c\x34\x62\x4c\x62\x6a\x62\x9f\x62\xbb\x62\xca\x62\xda\x62\xd7\x62\xee\x63\x22\x62\xf6\x63\x39\x63\x4b\x63\x43\x63\xad\x63\xf6\x63\x71\x63\x7a\x63\x8e\x63\xb4\x63\x6d\x63\xac\x63\x8a\x63\x69\x63\xae\x63\xbc\x63\xf2\x63\xf8\x63\xe0\x63\xff\x63\xc4\x63\xde\x63\xce\x64\x52\x63\xc6\x63\xbe\x64\x45\x64\x41\x64\x0b\x64\x1b\x64\x20\x64\x0c\x64\x26\x64\x21\x64\x5e\x64\x84\x64\x6d\x64\x96\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7a\x64\xb7\x64\xb8\x64\x99\x64\xba\x64\xc0\x64\xd0\x64\xd7\x64\xe4\x64\xe2\x65\x09\x65\x25\x65\x2e\x5f\x0b\x5f\xd2\x75\x19\x5f\x11\x53\x5f\x53\xf1\x53\xfd\x53\xe9\x53\xe8\x53\xfb\x54\x12\x54\x16\x54\x06\x54\x4b\x54\x52\x54\x53\x54\x54\x54\x56\x54\x43\x54\x21\x54\x57\x54\x59\x54\x23\x54\x32\x54\x82\x54\x94\x54\x77\x54\x71\x54\x64\x54\x9a\x54\x9b\x54\x84\x54\x76\x54\x66\x54\x9d\x54\xd0\x54\xad\x54\xc2\x54\xb4\x54\xd2\x54\xa7\x54\xa6\x54\xd3\x54\xd4\x54\x72\x54\xa3\x54\xd5\x54\xbb\x54\xbf\x54\xcc", /* 6080 */ "\x00\x00\x54\xd9\x54\xda\x54\xdc\x54\xa9\x54\xaa\x54\xa4\x54\xdd\x54\xcf\x54\xde\x55\x1b\x54\xe7\x55\x20\x54\xfd\x55\x14\x54\xf3\x55\x22\x55\x23\x55\x0f\x55\x11\x55\x27\x55\x2a\x55\x67\x55\x8f\x55\xb5\x55\x49\x55\x6d\x55\x41\x55\x55\x55\x3f\x55\x50\x55\x3c\x55\x37\x55\x56\x55\x75\x55\x76\x55\x77\x55\x33\x55\x30\x55\x5c\x55\x8b\x55\xd2\x55\x83\x55\xb1\x55\xb9\x55\x88\x55\x81\x55\x9f\x55\x7e\x55\xd6\x55\x91\x55\x7b\x55\xdf\x55\xbd\x55\xbe\x55\x94\x55\x99\x55\xea\x55\xf7\x55\xc9\x56\x1f\x55\xd1\x55\xeb\x55\xec\x55\xd4\x55\xe6\x55\xdd\x55\xc4\x55\xef\x55\xe5\x55\xf2\x55\xf3\x55\xcc\x55\xcd\x55\xe8\x55\xf5\x55\xe4\x8f\x94\x56\x1e\x56\x08\x56\x0c\x56\x01\x56\x24\x56\x23\x55\xfe\x56\x00\x56\x27\x56\x2d\x56\x58\x56\x39\x56\x57\x56\x2c\x56\x4d\x56\x62\x56\x59\x56\x5c\x56\x4c\x56\x54\x56\x86\x56\x64\x56\x71\x56\x6b\x56\x7b\x56\x7c\x56\x85\x56\x93\x56\xaf\x56\xd4\x56\xd7\x56\xdd\x56\xe1\x56\xf5\x56\xeb\x56\xf9\x56\xff\x57\x04\x57\x0a\x57\x09\x57\x1c\x5e\x0f\x5e\x19\x5e\x14\x5e\x11\x5e\x31\x5e\x3b\x5e\x3c\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x37\x5e\x44\x5e\x54\x5e\x5b\x5e\x5e\x5e\x61\x5c\x8c\x5c\x7a\x5c\x8d\x5c\x90\x5c\x96\x5c\x88\x5c\x98\x5c\x99\x5c\x91\x5c\x9a\x5c\x9c\x5c\xb5\x5c\xa2\x5c\xbd\x5c\xac\x5c\xab\x5c\xb1\x5c\xa3\x5c\xc1\x5c\xb7\x5c\xc4\x5c\xd2\x5c\xe4\x5c\xcb\x5c\xe5\x5d\x02\x5d\x03\x5d\x27\x5d\x26\x5d\x2e\x5d\x24\x5d\x1e\x5d\x06\x5d\x1b\x5d\x58\x5d\x3e\x5d\x34\x5d\x3d\x5d\x6c\x5d\x5b\x5d\x6f\x5d\x5d\x5d\x6b\x5d\x4b\x5d\x4a\x5d\x69\x5d\x74\x5d\x82\x5d\x99\x5d\x9d\x8c\x73\x5d\xb7\x5d\xc5\x5f\x73\x5f\x77\x5f\x82\x5f\x87", /* 6180 */ "\x00\x00\x5f\x89\x5f\x8c\x5f\x95\x5f\x99\x5f\x9c\x5f\xa8\x5f\xad\x5f\xb5\x5f\xbc\x88\x62\x5f\x61\x72\xad\x72\xb0\x72\xb4\x72\xb7\x72\xb8\x72\xc3\x72\xc1\x72\xce\x72\xcd\x72\xd2\x72\xe8\x72\xef\x72\xe9\x72\xf2\x72\xf4\x72\xf7\x73\x01\x72\xf3\x73\x03\x72\xfa\x72\xfb\x73\x17\x73\x13\x73\x21\x73\x0a\x73\x1e\x73\x1d\x73\x15\x73\x22\x73\x39\x73\x25\x73\x2c\x73\x38\x73\x31\x73\x50\x73\x4d\x73\x57\x73\x60\x73\x6c\x73\x6f\x73\x7e\x82\x1b\x59\x25\x98\xe7\x59\x24\x59\x02\x99\x63\x99\x67\x99\x68\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x74\x99\x77\x99\x7d\x99\x80\x99\x84\x99\x87\x99\x8a\x99\x8d\x99\x90\x99\x91\x99\x93\x99\x94\x99\x95\x5e\x80\x5e\x91\x5e\x8b\x5e\x96\x5e\xa5\x5e\xa0\x5e\xb9\x5e\xb5\x5e\xbe\x5e\xb3\x8d\x53\x5e\xd2\x5e\xd1\x5e\xdb\x5e\xe8\x5e\xea\x81\xba\x5f\xc4\x5f\xc9\x5f\xd6\x5f\xcf\x60\x03\x5f\xee\x60\x04\x5f\xe1\x5f\xe4\x5f\xfe\x60\x05\x60\x06\x5f\xea\x5f\xed\x5f\xf8\x60\x19\x60\x35\x60\x26\x60\x1b\x60\x0f\x60\x0d\x60\x29\x60\x2b\x60\x0a\x60\x3f\x60\x21\x60\x78\x60\x79\x60\x7b\x60\x7a\x60\x42\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6a\x60\x7d\x60\x96\x60\x9a\x60\xad\x60\x9d\x60\x83\x60\x92\x60\x8c\x60\x9b\x60\xec\x60\xbb\x60\xb1\x60\xdd\x60\xd8\x60\xc6\x60\xda\x60\xb4\x61\x20\x61\x26\x61\x15\x61\x23\x60\xf4\x61\x00\x61\x0e\x61\x2b\x61\x4a\x61\x75\x61\xac\x61\x94\x61\xa7\x61\xb7\x61\xd4\x61\xf5\x5f\xdd\x96\xb3\x95\xe9\x95\xeb\x95\xf1\x95\xf3\x95\xf5\x95\xf6\x95\xfc\x95\xfe\x96\x03\x96\x04\x96\x06\x96\x08\x96\x0a\x96\x0b\x96\x0c\x96\x0d\x96\x0f\x96\x12\x96\x15\x96\x16\x96\x17\x96\x19\x96\x1a\x4e\x2c\x72\x3f\x62\x15\x6c\x35", /* 6280 */ "\x00\x00\x6c\x54\x6c\x5c\x6c\x4a\x6c\xa3\x6c\x85\x6c\x90\x6c\x94\x6c\x8c\x6c\x68\x6c\x69\x6c\x74\x6c\x76\x6c\x86\x6c\xa9\x6c\xd0\x6c\xd4\x6c\xad\x6c\xf7\x6c\xf8\x6c\xf1\x6c\xd7\x6c\xb2\x6c\xe0\x6c\xd6\x6c\xfa\x6c\xeb\x6c\xee\x6c\xb1\x6c\xd3\x6c\xef\x6c\xfe\x6d\x39\x6d\x27\x6d\x0c\x6d\x43\x6d\x48\x6d\x07\x6d\x04\x6d\x19\x6d\x0e\x6d\x2b\x6d\x4d\x6d\x2e\x6d\x35\x6d\x1a\x6d\x4f\x6d\x52\x6d\x54\x6d\x33\x6d\x91\x6d\x6f\x6d\x9e\x6d\xa0\x6d\x5e\x6d\x93\x6d\x94\x6d\x5c\x6d\x60\x6d\x7c\x6d\x63\x6e\x1a\x6d\xc7\x6d\xc5\x6d\xde\x6e\x0e\x6d\xbf\x6d\xe0\x6e\x11\x6d\xe6\x6d\xdd\x6d\xd9\x6e\x16\x6d\xab\x6e\x0c\x6d\xae\x6e\x2b\x6e\x6e\x6e\x4e\x6e\x6b\x6e\xb2\x6e\x5f\x6e\x86\x6e\x53\x6e\x54\x6e\x32\x6e\x25\x6e\x44\x6e\xdf\x6e\xb1\x6e\x98\x6e\xe0\x6f\x2d\x6e\xe2\x6e\xa5\x6e\xa7\x6e\xbd\x6e\xbb\x6e\xb7\x6e\xd7\x6e\xb4\x6e\xcf\x6e\x8f\x6e\xc2\x6e\x9f\x6f\x62\x6f\x46\x6f\x47\x6f\x24\x6f\x15\x6e\xf9\x6f\x2f\x6f\x36\x6f\x4b\x6f\x74\x6f\x2a\x6f\x09\x6f\x29\x6f\x89\x6f\x8d\x6f\x8c\x6f\x78\x6f\x72\x6f\x7c\x6f\x7a\x6f\xd1\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xc9\x6f\xa7\x6f\xb9\x6f\xb6\x6f\xc2\x6f\xe1\x6f\xee\x6f\xde\x6f\xe0\x6f\xef\x70\x1a\x70\x23\x70\x1b\x70\x39\x70\x35\x70\x4f\x70\x5e\x5b\x80\x5b\x84\x5b\x95\x5b\x93\x5b\xa5\x5b\xb8\x75\x2f\x9a\x9e\x64\x34\x5b\xe4\x5b\xee\x89\x30\x5b\xf0\x8e\x47\x8b\x07\x8f\xb6\x8f\xd3\x8f\xd5\x8f\xe5\x8f\xee\x8f\xe4\x8f\xe9\x8f\xe6\x8f\xf3\x8f\xe8\x90\x05\x90\x04\x90\x0b\x90\x26\x90\x11\x90\x0d\x90\x16\x90\x21\x90\x35\x90\x36\x90\x2d\x90\x2f\x90\x44\x90\x51\x90\x52\x90\x50\x90\x68\x90\x58\x90\x62\x90\x5b\x66\xb9", /* 6380 */ "\x00\x00\x90\x74\x90\x7d\x90\x82\x90\x88\x90\x83\x90\x8b\x5f\x50\x5f\x57\x5f\x56\x5f\x58\x5c\x3b\x54\xab\x5c\x50\x5c\x59\x5b\x71\x5c\x63\x5c\x66\x7f\xbc\x5f\x2a\x5f\x29\x5f\x2d\x82\x74\x5f\x3c\x9b\x3b\x5c\x6e\x59\x81\x59\x83\x59\x8d\x59\xa9\x59\xaa\x59\xa3\x59\x97\x59\xca\x59\xab\x59\x9e\x59\xa4\x59\xd2\x59\xb2\x59\xaf\x59\xd7\x59\xbe\x5a\x05\x5a\x06\x59\xdd\x5a\x08\x59\xe3\x59\xd8\x59\xf9\x5a\x0c\x5a\x09\x5a\x32\x5a\x34\x5a\x11\x5a\x23\x5a\x13\x5a\x40\x5a\x67\x5a\x4a\x5a\x55\x5a\x3c\x5a\x62\x5a\x75\x80\xec\x5a\xaa\x5a\x9b\x5a\x77\x5a\x7a\x5a\xbe\x5a\xeb\x5a\xb2\x5a\xd2\x5a\xd4\x5a\xb8\x5a\xe0\x5a\xe3\x5a\xf1\x5a\xd6\x5a\xe6\x5a\xd8\x5a\xdc\x5b\x09\x5b\x17\x5b\x16\x5b\x32\x5b\x37\x5b\x40\x5c\x15\x5c\x1c\x5b\x5a\x5b\x65\x5b\x73\x5b\x51\x5b\x53\x5b\x62\x9a\x75\x9a\x77\x9a\x78\x9a\x7a\x9a\x7f\x9a\x7d\x9a\x80\x9a\x81\x9a\x85\x9a\x88\x9a\x8a\x9a\x90\x9a\x92\x9a\x93\x9a\x96\x9a\x98\x9a\x9b\x9a\x9c\x9a\x9d\x9a\x9f\x9a\xa0\x9a\xa2\x9a\xa3\x9a\xa5\x9a\xa7\x7e\x9f\x7e\xa1\x7e\xa3\x7e\xa5\x7e\xa8\x7e\xa9\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xad\x7e\xb0\x7e\xbe\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc9\x7e\xcb\x7e\xcc\x7e\xd0\x7e\xd4\x7e\xd7\x7e\xdb\x7e\xe0\x7e\xe1\x7e\xe8\x7e\xeb\x7e\xee\x7e\xef\x7e\xf1\x7e\xf2\x7f\x0d\x7e\xf6\x7e\xfa\x7e\xfb\x7e\xfe\x7f\x01\x7f\x02\x7f\x03\x7f\x07\x7f\x08\x7f\x0b\x7f\x0c\x7f\x0f\x7f\x11\x7f\x12\x7f\x17\x7f\x19\x7f\x1c\x7f\x1b\x7f\x1f\x7f\x21\x7f\x22\x7f\x23\x7f\x24\x7f\x25\x7f\x26\x7f\x27\x7f\x2a\x7f\x2b\x7f\x2c\x7f\x2d\x7f\x2f\x7f\x30\x7f\x31\x7f\x32\x7f\x33\x7f\x35\x5e\x7a\x75\x7f\x5d\xdb\x75\x3e\x90\x95", /* 6480 */ "\x00\x00\x73\x8e\x73\x91\x73\xae\x73\xa2\x73\x9f\x73\xcf\x73\xc2\x73\xd1\x73\xb7\x73\xb3\x73\xc0\x73\xc9\x73\xc8\x73\xe5\x73\xd9\x98\x7c\x74\x0a\x73\xe9\x73\xe7\x73\xde\x73\xba\x73\xf2\x74\x0f\x74\x2a\x74\x5b\x74\x26\x74\x25\x74\x28\x74\x30\x74\x2e\x74\x2c\x74\x1b\x74\x1a\x74\x41\x74\x5c\x74\x57\x74\x55\x74\x59\x74\x77\x74\x6d\x74\x7e\x74\x9c\x74\x8e\x74\x80\x74\x81\x74\x87\x74\x8b\x74\x9e\x74\xa8\x74\xa9\x74\x90\x74\xa7\x74\xd2\x74\xba\x97\xea\x97\xeb\x97\xec\x67\x4c\x67\x53\x67\x5e\x67\x48\x67\x69\x67\xa5\x67\x87\x67\x6a\x67\x73\x67\x98\x67\xa7\x67\x75\x67\xa8\x67\x9e\x67\xad\x67\x8b\x67\x77\x67\x7c\x67\xf0\x68\x09\x67\xd8\x68\x0a\x67\xe9\x67\xb0\x68\x0c\x67\xd9\x67\xb5\x67\xda\x67\xb3\x67\xdd\x68\x00\x67\xc3\x67\xb8\x67\xe2\x68\x0e\x67\xc1\x67\xfd\x68\x32\x68\x33\x68\x60\x68\x61\x68\x4e\x68\x62\x68\x44\x68\x64\x68\x83\x68\x1d\x68\x55\x68\x66\x68\x41\x68\x67\x68\x40\x68\x3e\x68\x4a\x68\x49\x68\x29\x68\xb5\x68\x8f\x68\x74\x68\x77\x68\x93\x68\x6b\x68\xc2\x69\x6e\x68\xfc\x69\x1f\x69\x20\x68\xf9\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x24\x68\xf0\x69\x0b\x69\x01\x69\x57\x68\xe3\x69\x10\x69\x71\x69\x39\x69\x60\x69\x42\x69\x5d\x69\x84\x69\x6b\x69\x80\x69\x98\x69\x78\x69\x34\x69\xcc\x69\x87\x69\x88\x69\xce\x69\x89\x69\x66\x69\x63\x69\x79\x69\x9b\x69\xa7\x69\xbb\x69\xab\x69\xad\x69\xd4\x69\xb1\x69\xc1\x69\xca\x69\xdf\x69\x95\x69\xe0\x69\x8d\x69\xff\x6a\x2f\x69\xed\x6a\x17\x6a\x18\x6a\x65\x69\xf2\x6a\x44\x6a\x3e\x6a\xa0\x6a\x50\x6a\x5b\x6a\x35\x6a\x8e\x6a\x79\x6a\x3d\x6a\x28\x6a\x58\x6a\x7c\x6a\x91\x6a\x90\x6a\xa9\x6a\x97\x6a\xab", /* 6580 */ "\x00\x00\x73\x37\x73\x52\x6b\x81\x6b\x82\x6b\x87\x6b\x84\x6b\x92\x6b\x93\x6b\x8d\x6b\x9a\x6b\x9b\x6b\xa1\x6b\xaa\x8f\x6b\x8f\x6d\x8f\x71\x8f\x72\x8f\x73\x8f\x75\x8f\x76\x8f\x78\x8f\x77\x8f\x79\x8f\x7a\x8f\x7c\x8f\x7e\x8f\x81\x8f\x82\x8f\x84\x8f\x87\x8f\x8b\x8f\x8d\x8f\x8e\x8f\x8f\x8f\x98\x8f\x9a\x8e\xce\x62\x0b\x62\x17\x62\x1b\x62\x1f\x62\x22\x62\x21\x62\x25\x62\x24\x62\x2c\x81\xe7\x74\xef\x74\xf4\x74\xff\x75\x0f\x75\x11\x75\x13\x65\x34\x65\xee\x65\xef\x65\xf0\x66\x0a\x66\x19\x67\x72\x66\x03\x66\x15\x66\x00\x70\x85\x66\xf7\x66\x1d\x66\x34\x66\x31\x66\x36\x66\x35\x80\x06\x66\x5f\x66\x54\x66\x41\x66\x4f\x66\x56\x66\x61\x66\x57\x66\x77\x66\x84\x66\x8c\x66\xa7\x66\x9d\x66\xbe\x66\xdb\x66\xdc\x66\xe6\x66\xe9\x8d\x32\x8d\x33\x8d\x36\x8d\x3b\x8d\x3d\x8d\x40\x8d\x45\x8d\x46\x8d\x48\x8d\x49\x8d\x47\x8d\x4d\x8d\x55\x8d\x59\x89\xc7\x89\xca\x89\xcb\x89\xcc\x89\xce\x89\xcf\x89\xd0\x89\xd1\x72\x6e\x72\x9f\x72\x5d\x72\x66\x72\x6f\x72\x7e\x72\x7f\x72\x84\x72\x8b\x72\x8d\x72\x8f\x72\x92\x63\x08\x63\x32\x63\xb0\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x3f\x64\xd8\x80\x04\x6b\xea\x6b\xf3\x6b\xfd\x6b\xf5\x6b\xf9\x6c\x05\x6c\x07\x6c\x06\x6c\x0d\x6c\x15\x6c\x18\x6c\x19\x6c\x1a\x6c\x21\x6c\x29\x6c\x24\x6c\x2a\x6c\x32\x65\x35\x65\x55\x65\x6b\x72\x4d\x72\x52\x72\x56\x72\x30\x86\x62\x52\x16\x80\x9f\x80\x9c\x80\x93\x80\xbc\x67\x0a\x80\xbd\x80\xb1\x80\xab\x80\xad\x80\xb4\x80\xb7\x80\xe7\x80\xe8\x80\xe9\x80\xea\x80\xdb\x80\xc2\x80\xc4\x80\xd9\x80\xcd\x80\xd7\x67\x10\x80\xdd\x80\xeb\x80\xf1\x80\xf4\x80\xed\x81\x0d\x81\x0e\x80\xf2\x80\xfc\x67\x15\x81\x12", /* 6680 */ "\x00\x00\x8c\x5a\x81\x36\x81\x1e\x81\x2c\x81\x18\x81\x32\x81\x48\x81\x4c\x81\x53\x81\x74\x81\x59\x81\x5a\x81\x71\x81\x60\x81\x69\x81\x7c\x81\x7d\x81\x6d\x81\x67\x58\x4d\x5a\xb5\x81\x88\x81\x82\x81\x91\x6e\xd5\x81\xa3\x81\xaa\x81\xcc\x67\x26\x81\xca\x81\xbb\x81\xc1\x81\xa6\x6b\x24\x6b\x37\x6b\x39\x6b\x43\x6b\x46\x6b\x59\x98\xd1\x98\xd2\x98\xd3\x98\xd5\x98\xd9\x98\xda\x6b\xb3\x5f\x40\x6b\xc2\x89\xf3\x65\x90\x9f\x51\x65\x93\x65\xbc\x65\xc6\x65\xc4\x65\xc3\x65\xcc\x65\xce\x65\xd2\x65\xd6\x70\x80\x70\x9c\x70\x96\x70\x9d\x70\xbb\x70\xc0\x70\xb7\x70\xab\x70\xb1\x70\xe8\x70\xca\x71\x10\x71\x13\x71\x16\x71\x2f\x71\x31\x71\x73\x71\x5c\x71\x68\x71\x45\x71\x72\x71\x4a\x71\x78\x71\x7a\x71\x98\x71\xb3\x71\xb5\x71\xa8\x71\xa0\x71\xe0\x71\xd4\x71\xe7\x71\xf9\x72\x1d\x72\x28\x70\x6c\x71\x18\x71\x66\x71\xb9\x62\x3e\x62\x3d\x62\x43\x62\x48\x62\x49\x79\x3b\x79\x40\x79\x46\x79\x49\x79\x5b\x79\x5c\x79\x53\x79\x5a\x79\x62\x79\x57\x79\x60\x79\x6f\x79\x67\x79\x7a\x79\x85\x79\x8a\x79\x9a\x79\xa7\x79\xb3\x5f\xd1\x5f\xd0\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x3c\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\x59\x60\x63\x60\xab\x61\x06\x61\x0d\x61\x5d\x61\xa9\x61\x9d\x61\xcb\x61\xd1\x62\x06\x80\x80\x80\x7f\x6c\x93\x6c\xf6\x6d\xfc\x77\xf6\x77\xf8\x78\x00\x78\x09\x78\x17\x78\x18\x78\x11\x65\xab\x78\x2d\x78\x1c\x78\x1d\x78\x39\x78\x3a\x78\x3b\x78\x1f\x78\x3c\x78\x25\x78\x2c\x78\x23\x78\x29\x78\x4e\x78\x6d\x78\x56\x78\x57\x78\x26\x78\x50\x78\x47\x78\x4c\x78\x6a\x78\x9b\x78\x93\x78\x9a\x78\x87\x78\x9c\x78\xa1\x78\xa3\x78\xb2\x78\xb9\x78\xa5\x78\xd4\x78\xd9\x78\xc9", /* 6780 */ "\x00\x00\x78\xec\x78\xf2\x79\x05\x78\xf4\x79\x13\x79\x24\x79\x1e\x79\x34\x9f\x9b\x9e\xf9\x9e\xfb\x9e\xfc\x76\xf1\x77\x04\x77\x0d\x76\xf9\x77\x07\x77\x08\x77\x1a\x77\x22\x77\x19\x77\x2d\x77\x26\x77\x35\x77\x38\x77\x50\x77\x51\x77\x47\x77\x43\x77\x5a\x77\x68\x77\x62\x77\x65\x77\x7f\x77\x8d\x77\x7d\x77\x80\x77\x8c\x77\x91\x77\x9f\x77\xa0\x77\xb0\x77\xb5\x77\xbd\x75\x3a\x75\x40\x75\x4e\x75\x4b\x75\x48\x75\x5b\x75\x72\x75\x79\x75\x83\x7f\x58\x7f\x61\x7f\x5f\x8a\x48\x7f\x68\x7f\x74\x7f\x71\x7f\x79\x7f\x81\x7f\x7e\x76\xcd\x76\xe5\x88\x32\x94\x85\x94\x86\x94\x87\x94\x8b\x94\x8a\x94\x8c\x94\x8d\x94\x8f\x94\x90\x94\x94\x94\x97\x94\x95\x94\x9a\x94\x9b\x94\x9c\x94\xa3\x94\xa4\x94\xab\x94\xaa\x94\xad\x94\xac\x94\xaf\x94\xb0\x94\xb2\x94\xb4\x94\xb6\x94\xb7\x94\xb8\x94\xb9\x94\xba\x94\xbc\x94\xbd\x94\xbf\x94\xc4\x94\xc8\x94\xc9\x94\xca\x94\xcb\x94\xcc\x94\xcd\x94\xce\x94\xd0\x94\xd1\x94\xd2\x94\xd5\x94\xd6\x94\xd7\x94\xd9\x94\xd8\x94\xdb\x94\xde\x94\xdf\x94\xe0\x94\xe2\x94\xe4\x94\xe5\x94\xe7\x94\xe8\x94\xea\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe9\x94\xeb\x94\xee\x94\xef\x94\xf3\x94\xf4\x94\xf5\x94\xf7\x94\xf9\x94\xfc\x94\xfd\x94\xff\x95\x03\x95\x02\x95\x06\x95\x07\x95\x09\x95\x0a\x95\x0d\x95\x0e\x95\x0f\x95\x12\x95\x13\x95\x14\x95\x15\x95\x16\x95\x18\x95\x1b\x95\x1d\x95\x1e\x95\x1f\x95\x22\x95\x2a\x95\x2b\x95\x29\x95\x2c\x95\x31\x95\x32\x95\x34\x95\x36\x95\x37\x95\x38\x95\x3c\x95\x3e\x95\x3f\x95\x42\x95\x35\x95\x44\x95\x45\x95\x46\x95\x49\x95\x4c\x95\x4e\x95\x4f\x95\x52\x95\x53\x95\x54\x95\x56\x95\x57\x95\x58\x95\x59\x95\x5b\x95\x5e", /* 6880 */ "\x00\x00\x95\x5f\x95\x5d\x95\x61\x95\x62\x95\x64\x95\x65\x95\x66\x95\x67\x95\x68\x95\x69\x95\x6a\x95\x6b\x95\x6c\x95\x6f\x95\x71\x95\x72\x95\x73\x95\x3a\x77\xe7\x77\xec\x96\xc9\x79\xd5\x79\xed\x79\xe3\x79\xeb\x7a\x06\x5d\x47\x7a\x03\x7a\x02\x7a\x1e\x7a\x14\x7a\x39\x7a\x37\x7a\x51\x9e\xcf\x99\xa5\x7a\x70\x76\x88\x76\x8e\x76\x93\x76\x99\x76\xa4\x74\xde\x74\xe0\x75\x2c\x9e\x20\x9e\x22\x9e\x28\x9e\x29\x9e\x2a\x9e\x2b\x9e\x2c\x9e\x32\x9e\x31\x9e\x36\x9e\x38\x9e\x37\x9e\x39\x9e\x3a\x9e\x3e\x9e\x41\x9e\x42\x9e\x44\x9e\x46\x9e\x47\x9e\x48\x9e\x49\x9e\x4b\x9e\x4c\x9e\x4e\x9e\x51\x9e\x55\x9e\x57\x9e\x5a\x9e\x5b\x9e\x5c\x9e\x5e\x9e\x63\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x9e\x6b\x9e\x6c\x9e\x71\x9e\x6d\x9e\x73\x75\x92\x75\x94\x75\x96\x75\xa0\x75\x9d\x75\xac\x75\xa3\x75\xb3\x75\xb4\x75\xb8\x75\xc4\x75\xb1\x75\xb0\x75\xc3\x75\xc2\x75\xd6\x75\xcd\x75\xe3\x75\xe8\x75\xe6\x75\xe4\x75\xeb\x75\xe7\x76\x03\x75\xf1\x75\xfc\x75\xff\x76\x10\x76\x00\x76\x05\x76\x0c\x76\x17\x76\x0a\x76\x25\x76\x18\x76\x15\x76\x19\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x1b\x76\x3c\x76\x22\x76\x20\x76\x40\x76\x2d\x76\x30\x76\x3f\x76\x35\x76\x43\x76\x3e\x76\x33\x76\x4d\x76\x5e\x76\x54\x76\x5c\x76\x56\x76\x6b\x76\x6f\x7f\xca\x7a\xe6\x7a\x78\x7a\x79\x7a\x80\x7a\x86\x7a\x88\x7a\x95\x7a\xa6\x7a\xa0\x7a\xac\x7a\xa8\x7a\xad\x7a\xb3\x88\x64\x88\x69\x88\x72\x88\x7d\x88\x7f\x88\x82\x88\xa2\x88\xc6\x88\xb7\x88\xbc\x88\xc9\x88\xe2\x88\xce\x88\xe3\x88\xe5\x88\xf1\x89\x1a\x88\xfc\x88\xe8\x88\xfe\x88\xf0\x89\x21\x89\x19\x89\x13\x89\x1b\x89\x0a\x89\x34\x89\x2b\x89\x36\x89\x41", /* 6980 */ "\x00\x00\x89\x66\x89\x7b\x75\x8b\x80\xe5\x76\xb2\x76\xb4\x77\xdc\x80\x12\x80\x14\x80\x16\x80\x1c\x80\x20\x80\x22\x80\x25\x80\x26\x80\x27\x80\x29\x80\x28\x80\x31\x80\x0b\x80\x35\x80\x43\x80\x46\x80\x4d\x80\x52\x80\x69\x80\x71\x89\x83\x98\x78\x98\x80\x98\x83\x98\x89\x98\x8c\x98\x8d\x98\x8f\x98\x94\x98\x9a\x98\x9b\x98\x9e\x98\x9f\x98\xa1\x98\xa2\x98\xa5\x98\xa6\x86\x4d\x86\x54\x86\x6c\x86\x6e\x86\x7f\x86\x7a\x86\x7c\x86\x7b\x86\xa8\x86\x8d\x86\x8b\x86\xac\x86\x9d\x86\xa7\x86\xa3\x86\xaa\x86\x93\x86\xa9\x86\xb6\x86\xc4\x86\xb5\x86\xce\x86\xb0\x86\xba\x86\xb1\x86\xaf\x86\xc9\x86\xcf\x86\xb4\x86\xe9\x86\xf1\x86\xf2\x86\xed\x86\xf3\x86\xd0\x87\x13\x86\xde\x86\xf4\x86\xdf\x86\xd8\x86\xd1\x87\x03\x87\x07\x86\xf8\x87\x08\x87\x0a\x87\x0d\x87\x09\x87\x23\x87\x3b\x87\x1e\x87\x25\x87\x2e\x87\x1a\x87\x3e\x87\x48\x87\x34\x87\x31\x87\x29\x87\x37\x87\x3f\x87\x82\x87\x22\x87\x7d\x87\x7e\x87\x7b\x87\x60\x87\x70\x87\x4c\x87\x6e\x87\x8b\x87\x53\x87\x63\x87\x7c\x87\x64\x87\x59\x87\x65\x87\x93\x87\xaf\x87\xa8\x87\xd2\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xc6\x87\x88\x87\x85\x87\xad\x87\x97\x87\x83\x87\xab\x87\xe5\x87\xac\x87\xb5\x87\xb3\x87\xcb\x87\xd3\x87\xbd\x87\xd1\x87\xc0\x87\xca\x87\xdb\x87\xea\x87\xe0\x87\xee\x88\x16\x88\x13\x87\xfe\x88\x0a\x88\x1b\x88\x21\x88\x39\x88\x3c\x7f\x36\x7f\x42\x7f\x44\x7f\x45\x82\x10\x7a\xfa\x7a\xfd\x7b\x08\x7b\x03\x7b\x04\x7b\x15\x7b\x0a\x7b\x2b\x7b\x0f\x7b\x47\x7b\x38\x7b\x2a\x7b\x19\x7b\x2e\x7b\x31\x7b\x20\x7b\x25\x7b\x24\x7b\x33\x7b\x3e\x7b\x1e\x7b\x58\x7b\x5a\x7b\x45\x7b\x75\x7b\x4c\x7b\x5d\x7b\x60\x7b\x6e", /* 6a80 */ "\x00\x00\x7b\x7b\x7b\x62\x7b\x72\x7b\x71\x7b\x90\x7b\xa6\x7b\xa7\x7b\xb8\x7b\xac\x7b\x9d\x7b\xa8\x7b\x85\x7b\xaa\x7b\x9c\x7b\xa2\x7b\xab\x7b\xb4\x7b\xd1\x7b\xc1\x7b\xcc\x7b\xdd\x7b\xda\x7b\xe5\x7b\xe6\x7b\xea\x7c\x0c\x7b\xfe\x7b\xfc\x7c\x0f\x7c\x16\x7c\x0b\x7c\x1f\x7c\x2a\x7c\x26\x7c\x38\x7c\x41\x7c\x40\x81\xfe\x82\x01\x82\x02\x82\x04\x81\xec\x88\x44\x82\x21\x82\x22\x82\x23\x82\x2d\x82\x2f\x82\x28\x82\x2b\x82\x38\x82\x3b\x82\x33\x82\x34\x82\x3e\x82\x44\x82\x49\x82\x4b\x82\x4f\x82\x5a\x82\x5f\x82\x68\x88\x7e\x88\x85\x88\x88\x88\xd8\x88\xdf\x89\x5e\x7f\x9d\x7f\x9f\x7f\xa7\x7f\xaf\x7f\xb0\x7f\xb2\x7c\x7c\x65\x49\x7c\x91\x7c\x9d\x7c\x9c\x7c\x9e\x7c\xa2\x7c\xb2\x7c\xbc\x7c\xbd\x7c\xc1\x7c\xc7\x7c\xcc\x7c\xcd\x7c\xc8\x7c\xc5\x7c\xd7\x7c\xe8\x82\x6e\x66\xa8\x7f\xbf\x7f\xce\x7f\xd5\x7f\xe5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xee\x7f\xf3\x7c\xf8\x7d\x77\x7d\xa6\x7d\xae\x7e\x47\x7e\x9b\x9e\xb8\x9e\xb4\x8d\x73\x8d\x84\x8d\x94\x8d\x91\x8d\xb1\x8d\x67\x8d\x6d\x8c\x47\x8c\x49\x91\x4a\x91\x50\x91\x4e\x91\x4f\x91\x64\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x62\x91\x61\x91\x70\x91\x69\x91\x6f\x91\x7d\x91\x7e\x91\x72\x91\x74\x91\x79\x91\x8c\x91\x85\x91\x90\x91\x8d\x91\x91\x91\xa2\x91\xa3\x91\xaa\x91\xad\x91\xae\x91\xaf\x91\xb5\x91\xb4\x91\xba\x8c\x55\x9e\x7e\x8d\xb8\x8d\xeb\x8e\x05\x8e\x59\x8e\x69\x8d\xb5\x8d\xbf\x8d\xbc\x8d\xba\x8d\xc4\x8d\xd6\x8d\xd7\x8d\xda\x8d\xde\x8d\xce\x8d\xcf\x8d\xdb\x8d\xc6\x8d\xec\x8d\xf7\x8d\xf8\x8d\xe3\x8d\xf9\x8d\xfb\x8d\xe4\x8e\x09\x8d\xfd\x8e\x14\x8e\x1d\x8e\x1f\x8e\x2c\x8e\x2e\x8e\x23\x8e\x2f\x8e\x3a\x8e\x40\x8e\x39", /* 6b80 */ "\x00\x00\x8e\x35\x8e\x3d\x8e\x31\x8e\x49\x8e\x41\x8e\x42\x8e\x51\x8e\x52\x8e\x4a\x8e\x70\x8e\x76\x8e\x7c\x8e\x6f\x8e\x74\x8e\x85\x8e\x8f\x8e\x94\x8e\x90\x8e\x9c\x8e\x9e\x8c\x78\x8c\x82\x8c\x8a\x8c\x85\x8c\x98\x8c\x94\x65\x9b\x89\xd6\x89\xde\x89\xda\x89\xdc\x89\xe5\x89\xeb\x89\xef\x8a\x3e\x8b\x26\x97\x53\x96\xe9\x96\xf3\x96\xef\x97\x06\x97\x01\x97\x08\x97\x0f\x97\x0e\x97\x2a\x97\x2d\x97\x30\x97\x3e\x9f\x80\x9f\x83\x9f\x85\x9f\x86\x9f\x87\x9f\x88\x9f\x89\x9f\x8a\x9f\x8c\x9e\xfe\x9f\x0b\x9f\x0d\x96\xb9\x96\xbc\x96\xbd\x96\xce\x96\xd2\x77\xbf\x96\xe0\x92\x8e\x92\xae\x92\xc8\x93\x3e\x93\x6a\x93\xca\x93\x8f\x94\x3e\x94\x6b\x9c\x7f\x9c\x82\x9c\x85\x9c\x86\x9c\x87\x9c\x88\x7a\x23\x9c\x8b\x9c\x8e\x9c\x90\x9c\x91\x9c\x92\x9c\x94\x9c\x95\x9c\x9a\x9c\x9b\x9c\x9e\x9c\x9f\x9c\xa0\x9c\xa1\x9c\xa2\x9c\xa3\x9c\xa5\x9c\xa6\x9c\xa7\x9c\xa8\x9c\xa9\x9c\xab\x9c\xad\x9c\xae\x9c\xb0\x9c\xb1\x9c\xb2\x9c\xb3\x9c\xb4\x9c\xb5\x9c\xb6\x9c\xb7\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xca\x9c\xcb\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xcc\x9c\xcd\x9c\xce\x9c\xcf\x9c\xd0\x9c\xd3\x9c\xd4\x9c\xd5\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xdc\x9c\xdd\x9c\xdf\x9c\xe2\x97\x7c\x97\x85\x97\x91\x97\x92\x97\x94\x97\xaf\x97\xab\x97\xa3\x97\xb2\x97\xb4\x9a\xb1\x9a\xb0\x9a\xb7\x9e\x58\x9a\xb6\x9a\xba\x9a\xbc\x9a\xc1\x9a\xc0\x9a\xc5\x9a\xc2\x9a\xcb\x9a\xcc\x9a\xd1\x9b\x45\x9b\x43\x9b\x47\x9b\x49\x9b\x48\x9b\x4d\x9b\x51\x98\xe8\x99\x0d\x99\x2e\x99\x55\x99\x54\x9a\xdf\x9a\xe1\x9a\xe6\x9a\xef\x9a\xeb\x9a\xfb\x9a\xed\x9a\xf9\x9b\x08\x9b\x0f\x9b\x13\x9b\x1f", /* 6c80 */ "\x00\x00\x9b\x23\x9e\xbd\x9e\xbe\x7e\x3b\x9e\x82\x9e\x87\x9e\x88\x9e\x8b\x9e\x92\x93\xd6\x9e\x9d\x9e\x9f\x9e\xdb\x9e\xdc\x9e\xdd\x9e\xe0\x9e\xdf\x9e\xe2\x9e\xe9\x9e\xe7\x9e\xe5\x9e\xea\x9e\xef\x9f\x22\x9f\x2c\x9f\x2f\x9f\x39\x9f\x37\x9f\x3d\x9f\x3e\x9f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x0f\x01\x0f\x02\x0f\x03\x0f\x04\x0f\x05\x0f\x06\x0f\x07\x0f\x08\x0f\x09\x0f\x0a\x0f\x0b\x0f\x0c\x0f\x0d\x0f\x0e\x0f\x0f\x0f\x10\x0f\x11\x0f\x12\x0f\x13\x0f\x14\x0f\x15\x0f\x16\x0f\x17\x0f\x18\x0f\x19\x0f\x1a\x0f\x1b\x0f\x1c\x0f\x1d\x0f\x1e\x0f\x1f\x0f\x20\x0f\x21\x0f\x22\x0f\x23\x0f\x24\x0f\x25\x0f\x26\x0f\x27\x0f\x28\x0f\x29\x0f\x2a\x0f\x2b\x0f\x2c\x0f\x2d\x0f\x2e\x0f\x2f\x0f\x30\x0f\x31\x0f\x32\x0f\x33\x0f\x34\x0f\x35\x0f\x36\x0f\x37\x0f\x38\x0f\x39\x0f\x3a\x0f\x3b\x0f\x3c\x0f\x3d\x0f\x3e", /* 6d80 */ "\x0f\x3f\x0f\x40\x0f\x41\x0f\x42\x0f\x43\x0f\x44\x0f\x45\x0f\x46\x0f\x47\x0f\x48\x0f\x49\x0f\x4a\x0f\x4b\x0f\x4c\x0f\x4d\x0f\x4e\x0f\x4f\x0f\x50\x0f\x51\x0f\x52\x0f\x53\x0f\x54\x0f\x55\x0f\x56\x0f\x57\x0f\x58\x0f\x59\x0f\x5a\x0f\x5b\x0f\x5c\x0f\x5d\x0f\x5e\x0f\x5f\x0f\x60\x0f\x61\x0f\x62\x0f\x63\x0f\x64\x0f\x65\x0f\x66\x0f\x67\x0f\x68\x0f\x69\x0f\x6a\x0f\x6b\x0f\x6c\x0f\x6d\x0f\x6e\x0f\x6f\x0f\x70\x0f\x71\x0f\x72\x0f\x73\x0f\x74\x0f\x75\x0f\x76\x0f\x77\x0f\x78\x0f\x79\x0f\x7a\x0f\x7b\x0f\x7c\x0f\x7d\x0f\x7e\x0f\x7f\x0f\x80\x0f\x81\x0f\x82\x0f\x83\x0f\x84\x0f\x85\x0f\x86\x0f\x87\x0f\x88\x0f\x89\x0f\x8a\x0f\x8b\x0f\x8c\x0f\x8d\x0f\x8e\x0f\x8f\x0f\x90\x0f\x91\x0f\x92\x0f\x93\x0f\x94\x0f\x95\x0f\x96\x0f\x97\x0f\x98\x0f\x99\x0f\x9a\x0f\x9b\x0f\x9c\x0f\x9d\x0f\x9e\x0f\x9f\x0f\xa0\x0f\xa1\x0f\xa2\x0f\xa3\x0f\xa4\x0f\xa5\x0f\xa6\x0f\xa7\x0f\xa8\x0f\xa9\x0f\xaa\x0f\xab\x0f\xac\x0f\xad\x0f\xae\x0f\xaf\x0f\xb0\x0f\xb1\x0f\xb2\x0f\xb3\x0f\xb4\x0f\xb5\x0f\xb6\x0f\xb7\x0f\xb8\x0f\xb9\x0f\xba\x0f\xbb\x0f\xbc\x0f\xbd\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\xbe\x0f\xbf\x0f\xc0\x0f\xc1\x0f\xc2\x0f\xc3\x0f\xc4\x0f\xc5\x0f\xc6\x0f\xc7\x0f\xc8\x0f\xc9\x0f\xca\x0f\xcb\x0f\xcc\x0f\xcd\x0f\xce\x0f\xcf\x0f\xd0\x0f\xd1\x0f\xd2\x0f\xd3\x0f\xd4\x0f\xd5\x0f\xd6\x0f\xd7\x0f\xd8\x0f\xd9\x0f\xda\x0f\xdb\x0f\xdc\x0f\xdd\x0f\xde\x0f\xdf\x0f\xe0\x0f\xe1\x0f\xe2\x0f\xe3\x0f\xe4\x0f\xe5\x0f\xe6\x0f\xe7\x0f\xe8\x0f\xe9\x0f\xea\x0f\xeb\x0f\xec\x0f\xed\x0f\xee\x0f\xef\x0f\xf0\x0f\xf1\x0f\xf2\x0f\xf3\x0f\xf4\x0f\xf5\x0f\xf6\x0f\xf7\x0f\xf8\x0f\xf9\x0f\xfa\x0f\xfb\x0f\xfc", /* 6e80 */ "\x0f\xfd\x0f\xfe\x0f\xff\x18\x00\x18\x01\x18\x02\x18\x03\x18\x04\x18\x05\x18\x06\x18\x07\x18\x08\x18\x09\x18\x0a\x18\x0b\x18\x0c\x18\x0d\x18\x0e\x18\x0f\x18\x10\x18\x11\x18\x12\x18\x13\x18\x14\x18\x15\x18\x16\x18\x17\x18\x18\x18\x19\x18\x1a\x18\x1b\x18\x1c\x18\x1d\x18\x1e\x18\x1f\x18\x20\x18\x21\x18\x22\x18\x23\x18\x24\x18\x25\x18\x26\x18\x27\x18\x28\x18\x29\x18\x2a\x18\x2b\x18\x2c\x18\x2d\x18\x2e\x18\x2f\x18\x30\x18\x31\x18\x32\x18\x33\x18\x34\x18\x35\x18\x36\x18\x37\x18\x38\x18\x39\x18\x3a\x18\x3b\x18\x3c\x18\x3d\x18\x3e\x18\x3f\x18\x40\x18\x41\x18\x42\x18\x43\x18\x44\x18\x45\x18\x46\x18\x47\x18\x48\x18\x49\x18\x4a\x18\x4b\x18\x4c\x18\x4d\x18\x4e\x18\x4f\x18\x50\x18\x51\x18\x52\x18\x53\x18\x54\x18\x55\x18\x56\x18\x57\x18\x58\x18\x59\x18\x5a\x18\x5b\x18\x5c\x18\x5d\x18\x5e\x18\x5f\x18\x60\x18\x61\x18\x62\x18\x63\x18\x64\x18\x65\x18\x66\x18\x67\x18\x68\x18\x69\x18\x6a\x18\x6b\x18\x6c\x18\x6d\x18\x6e\x18\x6f\x18\x70\x18\x71\x18\x72\x18\x73\x18\x74\x18\x75\x18\x76\x18\x77\x18\x78\x18\x79\x18\x7a\x18\x7b\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x7c\x18\x7d\x18\x7e\x18\x7f\x18\x80\x18\x81\x18\x82\x18\x83\x18\x84\x18\x85\x18\x86\x18\x87\x18\x88\x18\x89\x18\x8a\x18\x8b\x18\x8c\x18\x8d\x18\x8e\x18\x8f\x18\x90\x18\x91\x18\x92\x18\x93\x18\x94\x18\x95\x18\x96\x18\x97\x18\x98\x18\x99\x18\x9a\x18\x9b\x18\x9c\x18\x9d\x18\x9e\x18\x9f\x18\xa0\x18\xa1\x18\xa2\x18\xa3\x18\xa4\x18\xa5\x18\xa6\x18\xa7\x18\xa8\x18\xa9\x18\xaa\x18\xab\x18\xac\x18\xad\x18\xae\x18\xaf\xa0\x00\xa0\x01\xa0\x02\xa0\x03\xa0\x04\xa0\x05\xa0\x06\xa0\x07\xa0\x08\xa0\x09\xa0\x0a", /* 6f80 */ "\xa0\x0b\xa0\x0c\xa0\x0d\xa0\x0e\xa0\x0f\xa0\x10\xa0\x11\xa0\x12\xa0\x13\xa0\x14\xa0\x15\xa0\x16\xa0\x17\xa0\x18\xa0\x19\xa0\x1a\xa0\x1b\xa0\x1c\xa0\x1d\xa0\x1e\xa0\x1f\xa0\x20\xa0\x21\xa0\x22\xa0\x23\xa0\x24\xa0\x25\xa0\x26\xa0\x27\xa0\x28\xa0\x29\xa0\x2a\xa0\x2b\xa0\x2c\xa0\x2d\xa0\x2e\xa0\x2f\xa0\x30\xa0\x31\xa0\x32\xa0\x33\xa0\x34\xa0\x35\xa0\x36\xa0\x37\xa0\x38\xa0\x39\xa0\x3a\xa0\x3b\xa0\x3c\xa0\x3d\xa0\x3e\xa0\x3f\xa0\x40\xa0\x41\xa0\x42\xa0\x43\xa0\x44\xa0\x45\xa0\x46\xa0\x47\xa0\x48\xa0\x49\xa0\x4a\xa0\x4b\xa0\x4c\xa0\x4d\xa0\x4e\xa0\x4f\xa0\x50\xa0\x51\xa0\x52\xa0\x53\xa0\x54\xa0\x55\xa0\x56\xa0\x57\xa0\x58\xa0\x59\xa0\x5a\xa0\x5b\xa0\x5c\xa0\x5d\xa0\x5e\xa0\x5f\xa0\x60\xa0\x61\xa0\x62\xa0\x63\xa0\x64\xa0\x65\xa0\x66\xa0\x67\xa0\x68\xa0\x69\xa0\x6a\xa0\x6b\xa0\x6c\xa0\x6d\xa0\x6e\xa0\x6f\xa0\x70\xa0\x71\xa0\x72\xa0\x73\xa0\x74\xa0\x75\xa0\x76\xa0\x77\xa0\x78\xa0\x79\xa0\x7a\xa0\x7b\xa0\x7c\xa0\x7d\xa0\x7e\xa0\x7f\xa0\x80\xa0\x81\xa0\x82\xa0\x83\xa0\x84\xa0\x85\xa0\x86\xa0\x87\xa0\x88\xa0\x89\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x8a\xa0\x8b\xa0\x8c\xa0\x8d\xa0\x8e\xa0\x8f\xa0\x90\xa0\x91\xa0\x92\xa0\x93\xa0\x94\xa0\x95\xa0\x96\xa0\x97\xa0\x98\xa0\x99\xa0\x9a\xa0\x9b\xa0\x9c\xa0\x9d\xa0\x9e\xa0\x9f\xa0\xa0\xa0\xa1\xa0\xa2\xa0\xa3\xa0\xa4\xa0\xa5\xa0\xa6\xa0\xa7\xa0\xa8\xa0\xa9\xa0\xaa\xa0\xab\xa0\xac\xa0\xad\xa0\xae\xa0\xaf\xa0\xb0\xa0\xb1\xa0\xb2\xa0\xb3\xa0\xb4\xa0\xb5\xa0\xb6\xa0\xb7\xa0\xb8\xa0\xb9\xa0\xba\xa0\xbb\xa0\xbc\xa0\xbd\xa0\xbe\xa0\xbf\xa0\xc0\xa0\xc1\xa0\xc2\xa0\xc3\xa0\xc4\xa0\xc5\xa0\xc6\xa0\xc7\xa0\xc8", /* 7080 */ "\xa0\xc9\xa0\xca\xa0\xcb\xa0\xcc\xa0\xcd\xa0\xce\xa0\xcf\xa0\xd0\xa0\xd1\xa0\xd2\xa0\xd3\xa0\xd4\xa0\xd5\xa0\xd6\xa0\xd7\xa0\xd8\xa0\xd9\xa0\xda\xa0\xdb\xa0\xdc\xa0\xdd\xa0\xde\xa0\xdf\xa0\xe0\xa0\xe1\xa0\xe2\xa0\xe3\xa0\xe4\xa0\xe5\xa0\xe6\xa0\xe7\xa0\xe8\xa0\xe9\xa0\xea\xa0\xeb\xa0\xec\xa0\xed\xa0\xee\xa0\xef\xa0\xf0\xa0\xf1\xa0\xf2\xa0\xf3\xa0\xf4\xa0\xf5\xa0\xf6\xa0\xf7\xa0\xf8\xa0\xf9\xa0\xfa\xa0\xfb\xa0\xfc\xa0\xfd\xa0\xfe\xa0\xff\xa1\x00\xa1\x01\xa1\x02\xa1\x03\xa1\x04\xa1\x05\xa1\x06\xa1\x07\xa1\x08\xa1\x09\xa1\x0a\xa1\x0b\xa1\x0c\xa1\x0d\xa1\x0e\xa1\x0f\xa1\x10\xa1\x11\xa1\x12\xa1\x13\xa1\x14\xa1\x15\xa1\x16\xa1\x17\xa1\x18\xa1\x19\xa1\x1a\xa1\x1b\xa1\x1c\xa1\x1d\xa1\x1e\xa1\x1f\xa1\x20\xa1\x21\xa1\x22\xa1\x23\xa1\x24\xa1\x25\xa1\x26\xa1\x27\xa1\x28\xa1\x29\xa1\x2a\xa1\x2b\xa1\x2c\xa1\x2d\xa1\x2e\xa1\x2f\xa1\x30\xa1\x31\xa1\x32\xa1\x33\xa1\x34\xa1\x35\xa1\x36\xa1\x37\xa1\x38\xa1\x39\xa1\x3a\xa1\x3b\xa1\x3c\xa1\x3d\xa1\x3e\xa1\x3f\xa1\x40\xa1\x41\xa1\x42\xa1\x43\xa1\x44\xa1\x45\xa1\x46\xa1\x47\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x48\xa1\x49\xa1\x4a\xa1\x4b\xa1\x4c\xa1\x4d\xa1\x4e\xa1\x4f\xa1\x50\xa1\x51\xa1\x52\xa1\x53\xa1\x54\xa1\x55\xa1\x56\xa1\x57\xa1\x58\xa1\x59\xa1\x5a\xa1\x5b\xa1\x5c\xa1\x5d\xa1\x5e\xa1\x5f\xa1\x60\xa1\x61\xa1\x62\xa1\x63\xa1\x64\xa1\x65\xa1\x66\xa1\x67\xa1\x68\xa1\x69\xa1\x6a\xa1\x6b\xa1\x6c\xa1\x6d\xa1\x6e\xa1\x6f\xa1\x70\xa1\x71\xa1\x72\xa1\x73\xa1\x74\xa1\x75\xa1\x76\xa1\x77\xa1\x78\xa1\x79\xa1\x7a\xa1\x7b\xa1\x7c\xa1\x7d\xa1\x7e\xa1\x7f\xa1\x80\xa1\x81\xa1\x82\xa1\x83\xa1\x84\xa1\x85\xa1\x86", /* 7180 */ "\xa1\x87\xa1\x88\xa1\x89\xa1\x8a\xa1\x8b\xa1\x8c\xa1\x8d\xa1\x8e\xa1\x8f\xa1\x90\xa1\x91\xa1\x92\xa1\x93\xa1\x94\xa1\x95\xa1\x96\xa1\x97\xa1\x98\xa1\x99\xa1\x9a\xa1\x9b\xa1\x9c\xa1\x9d\xa1\x9e\xa1\x9f\xa1\xa0\xa1\xa1\xa1\xa2\xa1\xa3\xa1\xa4\xa1\xa5\xa1\xa6\xa1\xa7\xa1\xa8\xa1\xa9\xa1\xaa\xa1\xab\xa1\xac\xa1\xad\xa1\xae\xa1\xaf\xa1\xb0\xa1\xb1\xa1\xb2\xa1\xb3\xa1\xb4\xa1\xb5\xa1\xb6\xa1\xb7\xa1\xb8\xa1\xb9\xa1\xba\xa1\xbb\xa1\xbc\xa1\xbd\xa1\xbe\xa1\xbf\xa1\xc0\xa1\xc1\xa1\xc2\xa1\xc3\xa1\xc4\xa1\xc5\xa1\xc6\xa1\xc7\xa1\xc8\xa1\xc9\xa1\xca\xa1\xcb\xa1\xcc\xa1\xcd\xa1\xce\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xd2\xa1\xd3\xa1\xd4\xa1\xd5\xa1\xd6\xa1\xd7\xa1\xd8\xa1\xd9\xa1\xda\xa1\xdb\xa1\xdc\xa1\xdd\xa1\xde\xa1\xdf\xa1\xe0\xa1\xe1\xa1\xe2\xa1\xe3\xa1\xe4\xa1\xe5\xa1\xe6\xa1\xe7\xa1\xe8\xa1\xe9\xa1\xea\xa1\xeb\xa1\xec\xa1\xed\xa1\xee\xa1\xef\xa1\xf0\xa1\xf1\xa1\xf2\xa1\xf3\xa1\xf4\xa1\xf5\xa1\xf6\xa1\xf7\xa1\xf8\xa1\xf9\xa1\xfa\xa1\xfb\xa1\xfc\xa1\xfd\xa1\xfe\xa1\xff\xa2\x00\xa2\x01\xa2\x02\xa2\x03\xa2\x04\xa2\x05\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x06\xa2\x07\xa2\x08\xa2\x09\xa2\x0a\xa2\x0b\xa2\x0c\xa2\x0d\xa2\x0e\xa2\x0f\xa2\x10\xa2\x11\xa2\x12\xa2\x13\xa2\x14\xa2\x15\xa2\x16\xa2\x17\xa2\x18\xa2\x19\xa2\x1a\xa2\x1b\xa2\x1c\xa2\x1d\xa2\x1e\xa2\x1f\xa2\x20\xa2\x21\xa2\x22\xa2\x23\xa2\x24\xa2\x25\xa2\x26\xa2\x27\xa2\x28\xa2\x29\xa2\x2a\xa2\x2b\xa2\x2c\xa2\x2d\xa2\x2e\xa2\x2f\xa2\x30\xa2\x31\xa2\x32\xa2\x33\xa2\x34\xa2\x35\xa2\x36\xa2\x37\xa2\x38\xa2\x39\xa2\x3a\xa2\x3b\xa2\x3c\xa2\x3d\xa2\x3e\xa2\x3f\xa2\x40\xa2\x41\xa2\x42\xa2\x43\xa2\x44", /* 7280 */ "\xa2\x45\xa2\x46\xa2\x47\xa2\x48\xa2\x49\xa2\x4a\xa2\x4b\xa2\x4c\xa2\x4d\xa2\x4e\xa2\x4f\xa2\x50\xa2\x51\xa2\x52\xa2\x53\xa2\x54\xa2\x55\xa2\x56\xa2\x57\xa2\x58\xa2\x59\xa2\x5a\xa2\x5b\xa2\x5c\xa2\x5d\xa2\x5e\xa2\x5f\xa2\x60\xa2\x61\xa2\x62\xa2\x63\xa2\x64\xa2\x65\xa2\x66\xa2\x67\xa2\x68\xa2\x69\xa2\x6a\xa2\x6b\xa2\x6c\xa2\x6d\xa2\x6e\xa2\x6f\xa2\x70\xa2\x71\xa2\x72\xa2\x73\xa2\x74\xa2\x75\xa2\x76\xa2\x77\xa2\x78\xa2\x79\xa2\x7a\xa2\x7b\xa2\x7c\xa2\x7d\xa2\x7e\xa2\x7f\xa2\x80\xa2\x81\xa2\x82\xa2\x83\xa2\x84\xa2\x85\xa2\x86\xa2\x87\xa2\x88\xa2\x89\xa2\x8a\xa2\x8b\xa2\x8c\xa2\x8d\xa2\x8e\xa2\x8f\xa2\x90\xa2\x91\xa2\x92\xa2\x93\xa2\x94\xa2\x95\xa2\x96\xa2\x97\xa2\x98\xa2\x99\xa2\x9a\xa2\x9b\xa2\x9c\xa2\x9d\xa2\x9e\xa2\x9f\xa2\xa0\xa2\xa1\xa2\xa2\xa2\xa3\xa2\xa4\xa2\xa5\xa2\xa6\xa2\xa7\xa2\xa8\xa2\xa9\xa2\xaa\xa2\xab\xa2\xac\xa2\xad\xa2\xae\xa2\xaf\xa2\xb0\xa2\xb1\xa2\xb2\xa2\xb3\xa2\xb4\xa2\xb5\xa2\xb6\xa2\xb7\xa2\xb8\xa2\xb9\xa2\xba\xa2\xbb\xa2\xbc\xa2\xbd\xa2\xbe\xa2\xbf\xa2\xc0\xa2\xc1\xa2\xc2\xa2\xc3\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\xc4\xa2\xc5\xa2\xc6\xa2\xc7\xa2\xc8\xa2\xc9\xa2\xca\xa2\xcb\xa2\xcc\xa2\xcd\xa2\xce\xa2\xcf\xa2\xd0\xa2\xd1\xa2\xd2\xa2\xd3\xa2\xd4\xa2\xd5\xa2\xd6\xa2\xd7\xa2\xd8\xa2\xd9\xa2\xda\xa2\xdb\xa2\xdc\xa2\xdd\xa2\xde\xa2\xdf\xa2\xe0\xa2\xe1\xa2\xe2\xa2\xe3\xa2\xe4\xa2\xe5\xa2\xe6\xa2\xe7\xa2\xe8\xa2\xe9\xa2\xea\xa2\xeb\xa2\xec\xa2\xed\xa2\xee\xa2\xef\xa2\xf0\xa2\xf1\xa2\xf2\xa2\xf3\xa2\xf4\xa2\xf5\xa2\xf6\xa2\xf7\xa2\xf8\xa2\xf9\xa2\xfa\xa2\xfb\xa2\xfc\xa2\xfd\xa2\xfe\xa2\xff\xa3\x00\xa3\x01\xa3\x02", /* 7380 */ "\xa3\x03\xa3\x04\xa3\x05\xa3\x06\xa3\x07\xa3\x08\xa3\x09\xa3\x0a\xa3\x0b\xa3\x0c\xa3\x0d\xa3\x0e\xa3\x0f\xa3\x10\xa3\x11\xa3\x12\xa3\x13\xa3\x14\xa3\x15\xa3\x16\xa3\x17\xa3\x18\xa3\x19\xa3\x1a\xa3\x1b\xa3\x1c\xa3\x1d\xa3\x1e\xa3\x1f\xa3\x20\xa3\x21\xa3\x22\xa3\x23\xa3\x24\xa3\x25\xa3\x26\xa3\x27\xa3\x28\xa3\x29\xa3\x2a\xa3\x2b\xa3\x2c\xa3\x2d\xa3\x2e\xa3\x2f\xa3\x30\xa3\x31\xa3\x32\xa3\x33\xa3\x34\xa3\x35\xa3\x36\xa3\x37\xa3\x38\xa3\x39\xa3\x3a\xa3\x3b\xa3\x3c\xa3\x3d\xa3\x3e\xa3\x3f\xa3\x40\xa3\x41\xa3\x42\xa3\x43\xa3\x44\xa3\x45\xa3\x46\xa3\x47\xa3\x48\xa3\x49\xa3\x4a\xa3\x4b\xa3\x4c\xa3\x4d\xa3\x4e\xa3\x4f\xa3\x50\xa3\x51\xa3\x52\xa3\x53\xa3\x54\xa3\x55\xa3\x56\xa3\x57\xa3\x58\xa3\x59\xa3\x5a\xa3\x5b\xa3\x5c\xa3\x5d\xa3\x5e\xa3\x5f\xa3\x60\xa3\x61\xa3\x62\xa3\x63\xa3\x64\xa3\x65\xa3\x66\xa3\x67\xa3\x68\xa3\x69\xa3\x6a\xa3\x6b\xa3\x6c\xa3\x6d\xa3\x6e\xa3\x6f\xa3\x70\xa3\x71\xa3\x72\xa3\x73\xa3\x74\xa3\x75\xa3\x76\xa3\x77\xa3\x78\xa3\x79\xa3\x7a\xa3\x7b\xa3\x7c\xa3\x7d\xa3\x7e\xa3\x7f\xa3\x80\xa3\x81\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x82\xa3\x83\xa3\x84\xa3\x85\xa3\x86\xa3\x87\xa3\x88\xa3\x89\xa3\x8a\xa3\x8b\xa3\x8c\xa3\x8d\xa3\x8e\xa3\x8f\xa3\x90\xa3\x91\xa3\x92\xa3\x93\xa3\x94\xa3\x95\xa3\x96\xa3\x97\xa3\x98\xa3\x99\xa3\x9a\xa3\x9b\xa3\x9c\xa3\x9d\xa3\x9e\xa3\x9f\xa3\xa0\xa3\xa1\xa3\xa2\xa3\xa3\xa3\xa4\xa3\xa5\xa3\xa6\xa3\xa7\xa3\xa8\xa3\xa9\xa3\xaa\xa3\xab\xa3\xac\xa3\xad\xa3\xae\xa3\xaf\xa3\xb0\xa3\xb1\xa3\xb2\xa3\xb3\xa3\xb4\xa3\xb5\xa3\xb6\xa3\xb7\xa3\xb8\xa3\xb9\xa3\xba\xa3\xbb\xa3\xbc\xa3\xbd\xa3\xbe\xa3\xbf\xa3\xc0", /* 7480 */ "\xa3\xc1\xa3\xc2\xa3\xc3\xa3\xc4\xa3\xc5\xa3\xc6\xa3\xc7\xa3\xc8\xa3\xc9\xa3\xca\xa3\xcb\xa3\xcc\xa3\xcd\xa3\xce\xa3\xcf\xa3\xd0\xa3\xd1\xa3\xd2\xa3\xd3\xa3\xd4\xa3\xd5\xa3\xd6\xa3\xd7\xa3\xd8\xa3\xd9\xa3\xda\xa3\xdb\xa3\xdc\xa3\xdd\xa3\xde\xa3\xdf\xa3\xe0\xa3\xe1\xa3\xe2\xa3\xe3\xa3\xe4\xa3\xe5\xa3\xe6\xa3\xe7\xa3\xe8\xa3\xe9\xa3\xea\xa3\xeb\xa3\xec\xa3\xed\xa3\xee\xa3\xef\xa3\xf0\xa3\xf1\xa3\xf2\xa3\xf3\xa3\xf4\xa3\xf5\xa3\xf6\xa3\xf7\xa3\xf8\xa3\xf9\xa3\xfa\xa3\xfb\xa3\xfc\xa3\xfd\xa3\xfe\xa3\xff\xa4\x00\xa4\x01\xa4\x02\xa4\x03\xa4\x04\xa4\x05\xa4\x06\xa4\x07\xa4\x08\xa4\x09\xa4\x0a\xa4\x0b\xa4\x0c\xa4\x0d\xa4\x0e\xa4\x0f\xa4\x10\xa4\x11\xa4\x12\xa4\x13\xa4\x14\xa4\x15\xa4\x16\xa4\x17\xa4\x18\xa4\x19\xa4\x1a\xa4\x1b\xa4\x1c\xa4\x1d\xa4\x1e\xa4\x1f\xa4\x20\xa4\x21\xa4\x22\xa4\x23\xa4\x24\xa4\x25\xa4\x26\xa4\x27\xa4\x28\xa4\x29\xa4\x2a\xa4\x2b\xa4\x2c\xa4\x2d\xa4\x2e\xa4\x2f\xa4\x30\xa4\x31\xa4\x32\xa4\x33\xa4\x34\xa4\x35\xa4\x36\xa4\x37\xa4\x38\xa4\x39\xa4\x3a\xa4\x3b\xa4\x3c\xa4\x3d\xa4\x3e\xa4\x3f\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x40\xa4\x41\xa4\x42\xa4\x43\xa4\x44\xa4\x45\xa4\x46\xa4\x47\xa4\x48\xa4\x49\xa4\x4a\xa4\x4b\xa4\x4c\xa4\x4d\xa4\x4e\xa4\x4f\xa4\x50\xa4\x51\xa4\x52\xa4\x53\xa4\x54\xa4\x55\xa4\x56\xa4\x57\xa4\x58\xa4\x59\xa4\x5a\xa4\x5b\xa4\x5c\xa4\x5d\xa4\x5e\xa4\x5f\xa4\x60\xa4\x61\xa4\x62\xa4\x63\xa4\x64\xa4\x65\xa4\x66\xa4\x67\xa4\x68\xa4\x69\xa4\x6a\xa4\x6b\xa4\x6c\xa4\x6d\xa4\x6e\xa4\x6f\xa4\x70\xa4\x71\xa4\x72\xa4\x73\xa4\x74\xa4\x75\xa4\x76\xa4\x77\xa4\x78\xa4\x79\xa4\x7a\xa4\x7b\xa4\x7c\xa4\x7d\xa4\x7e", /* 7580 */ "\xa4\x7f\xa4\x80\xa4\x81\xa4\x82\xa4\x83\xa4\x84\xa4\x85\xa4\x86\xa4\x87\xa4\x88\xa4\x89\xa4\x8a\xa4\x8b\xa4\x8c\xa4\x8d\xa4\x8e\xa4\x8f\xa4\x90\xa4\x91\xa4\x92\xa4\x93\xa4\x94\xa4\x95\xa4\x96\xa4\x97\xa4\x98\xa4\x99\xa4\x9a\xa4\x9b\xa4\x9c\xa4\x9d\xa4\x9e\xa4\x9f\xa4\xa0\xa4\xa1\xa4\xa2\xa4\xa3\xa4\xa4\xa4\xa5\xa4\xa6\xa4\xa7\xa4\xa8\xa4\xa9\xa4\xaa\xa4\xab\xa4\xac\xa4\xad\xa4\xae\xa4\xaf\xa4\xb0\xa4\xb1\xa4\xb2\xa4\xb3\xa4\xb4\xa4\xb5\xa4\xb6\xa4\xb7\xa4\xb8\xa4\xb9\xa4\xba\xa4\xbb\xa4\xbc\xa4\xbd\xa4\xbe\xa4\xbf\xa4\xc0\xa4\xc1\xa4\xc2\xa4\xc3\xa4\xc4\xa4\xc5\xa4\xc6\xa4\xc7\xa4\xc8\xa4\xc9\xa4\xca\xa4\xcb\xa4\xcc\xa4\xcd\xa4\xce\xa4\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 7680 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* 7780 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* 7880 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* 7980 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* 7a80 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* 7b80 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* 7c80 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* 7d80 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* 7e80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* 7f80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* 8000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8080 */ NULL, /* 8100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x02\x4e\x04\x4e\x05\x4e\x06\x4e\x0f\x4e\x12\x4e\x17\x4e\x1f\x4e\x20\x4e\x21\x4e\x23\x4e\x26\x4e\x29\x4e\x2e\x4e\x2f\x4e\x31\x4e\x33\x4e\x35\x4e\x37\x4e\x3c\x4e\x40\x4e\x41\x4e\x42\x4e\x44\x4e\x46\x4e\x4a\x4e\x51\x4e\x55\x4e\x57\x4e\x5a\x4e\x5b\x4e\x62\x4e\x63\x4e\x64\x4e\x65\x4e\x67\x4e\x68\x4e\x6a\x4e\x6b\x4e\x6c\x4e\x6d\x4e\x6e\x4e\x6f\x4e\x72\x4e\x74\x4e\x75\x4e\x76\x4e\x77\x4e\x78\x4e\x79\x4e\x7a\x4e\x7b\x4e\x7c\x4e\x7d\x4e\x7f\x4e\x80\x4e\x81\x4e\x82\x4e\x83\x4e\x84\x4e\x85\x4e\x87\x4e\x8a", /* 8180 */ "\x00\x00\x4e\x90\x4e\x96\x4e\x97\x4e\x99\x4e\x9c\x4e\x9d\x4e\x9e\x4e\xa3\x4e\xaa\x4e\xaf\x4e\xb0\x4e\xb1\x4e\xb4\x4e\xb6\x4e\xb7\x4e\xb8\x4e\xb9\x4e\xbc\x4e\xbd\x4e\xbe\x4e\xc8\x4e\xcc\x4e\xcf\x4e\xd0\x4e\xd2\x4e\xda\x4e\xdb\x4e\xdc\x4e\xe0\x4e\xe2\x4e\xe6\x4e\xe7\x4e\xe9\x4e\xed\x4e\xee\x4e\xef\x4e\xf1\x4e\xf4\x4e\xf8\x4e\xf9\x4e\xfa\x4e\xfc\x4e\xfe\x4f\x00\x4f\x02\x4f\x03\x4f\x04\x4f\x05\x4f\x06\x4f\x07\x4f\x08\x4f\x0b\x4f\x0c\x4f\x12\x4f\x13\x4f\x14\x4f\x15\x4f\x16\x4f\x1c\x4f\x1d\x4f\x21\x4f\x23\x4f\x28\x4f\x29\x4f\x2c\x4f\x2d\x4f\x2e\x4f\x31\x4f\x33\x4f\x35\x4f\x37\x4f\x39\x4f\x3b\x4f\x3e\x4f\x3f\x4f\x40\x4f\x41\x4f\x42\x4f\x44\x4f\x45\x4f\x47\x4f\x48\x4f\x49\x4f\x4a\x4f\x4b\x4f\x4c\x4f\x52\x4f\x54\x4f\x56\x4f\x61\x4f\x62\x4f\x66\x4f\x68\x4f\x6a\x4f\x6b\x4f\x6d\x4f\x6e\x4f\x71\x4f\x72\x4f\x75\x4f\x77\x4f\x78\x4f\x79\x4f\x7a\x4f\x7d\x4f\x80\x4f\x81\x4f\x82\x4f\x85\x4f\x86\x4f\x87\x4f\x8a\x4f\x8c\x4f\x8e\x4f\x90\x4f\x92\x4f\x93\x4f\x95\x4f\x96\x4f\x98\x4f\x99\x4f\x9a\x4f\x9c\x4f\x9e\x4f\x9f\x00\x00\x00\x00", /* 8200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa1\x4f\xa2\x4f\xa4\x4f\xab\x4f\xad\x4f\xb0\x4f\xb1\x4f\xb2\x4f\xb3\x4f\xb4\x4f\xb6\x4f\xb7\x4f\xb8\x4f\xb9\x4f\xba\x4f\xbb\x4f\xbc\x4f\xbd\x4f\xbe\x4f\xc0\x4f\xc1\x4f\xc2\x4f\xc6\x4f\xc7\x4f\xc8\x4f\xc9\x4f\xcb\x4f\xcc\x4f\xcd\x4f\xd2\x4f\xd3\x4f\xd4\x4f\xd5\x4f\xd6\x4f\xd9\x4f\xdb\x4f\xe0\x4f\xe2\x4f\xe4\x4f\xe5\x4f\xe7\x4f\xeb\x4f\xec\x4f\xf0\x4f\xf2\x4f\xf4\x4f\xf5\x4f\xf6\x4f\xf7\x4f\xf9\x4f\xfb\x4f\xfc\x4f\xfd\x4f\xff\x50\x00\x50\x01\x50\x02\x50\x03\x50\x04\x50\x05\x50\x06\x50\x07\x50\x08", /* 8280 */ "\x00\x00\x50\x09\x50\x0a\x50\x0b\x50\x0e\x50\x10\x50\x11\x50\x13\x50\x15\x50\x16\x50\x17\x50\x1b\x50\x1d\x50\x1e\x50\x20\x50\x22\x50\x23\x50\x24\x50\x27\x50\x2b\x50\x2f\x50\x30\x50\x31\x50\x32\x50\x33\x50\x34\x50\x35\x50\x36\x50\x37\x50\x38\x50\x39\x50\x3b\x50\x3d\x50\x3f\x50\x40\x50\x41\x50\x42\x50\x44\x50\x45\x50\x46\x50\x49\x50\x4a\x50\x4b\x50\x4d\x50\x50\x50\x51\x50\x52\x50\x53\x50\x54\x50\x56\x50\x57\x50\x58\x50\x59\x50\x5b\x50\x5d\x50\x5e\x50\x5f\x50\x60\x50\x61\x50\x62\x50\x63\x50\x64\x50\x66\x50\x67\x50\x68\x50\x69\x50\x6a\x50\x6b\x50\x6d\x50\x6e\x50\x6f\x50\x70\x50\x71\x50\x72\x50\x73\x50\x74\x50\x75\x50\x78\x50\x79\x50\x7a\x50\x7c\x50\x7d\x50\x81\x50\x82\x50\x83\x50\x84\x50\x86\x50\x87\x50\x89\x50\x8a\x50\x8b\x50\x8c\x50\x8e\x50\x8f\x50\x90\x50\x91\x50\x92\x50\x93\x50\x94\x50\x95\x50\x96\x50\x97\x50\x98\x50\x99\x50\x9a\x50\x9b\x50\x9c\x50\x9d\x50\x9e\x50\x9f\x50\xa0\x50\xa1\x50\xa2\x50\xa4\x50\xa6\x50\xaa\x50\xab\x50\xad\x50\xae\x50\xaf\x50\xb0\x50\xb1\x50\xb3\x50\xb4\x50\xb5\x50\xb6\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb7\x50\xb8\x50\xb9\x50\xbc\x50\xbd\x50\xbe\x50\xbf\x50\xc0\x50\xc1\x50\xc2\x50\xc3\x50\xc4\x50\xc5\x50\xc6\x50\xc7\x50\xc8\x50\xc9\x50\xca\x50\xcb\x50\xcc\x50\xcd\x50\xce\x50\xd0\x50\xd1\x50\xd2\x50\xd3\x50\xd4\x50\xd5\x50\xd7\x50\xd8\x50\xd9\x50\xdb\x50\xdc\x50\xdd\x50\xde\x50\xdf\x50\xe0\x50\xe1\x50\xe2\x50\xe3\x50\xe4\x50\xe5\x50\xe8\x50\xe9\x50\xea\x50\xeb\x50\xef\x50\xf0\x50\xf1\x50\xf2\x50\xf4\x50\xf6\x50\xf7\x50\xf8\x50\xf9\x50\xfa\x50\xfc\x50\xfd\x50\xfe\x50\xff\x51\x00\x51\x01\x51\x02", /* 8380 */ "\x00\x00\x51\x03\x51\x04\x51\x05\x51\x08\x51\x09\x51\x0a\x51\x0c\x51\x0d\x51\x0e\x51\x0f\x51\x10\x51\x11\x51\x13\x51\x14\x51\x15\x51\x16\x51\x17\x51\x18\x51\x19\x51\x1a\x51\x1b\x51\x1c\x51\x1d\x51\x1e\x51\x1f\x51\x20\x51\x22\x51\x23\x51\x24\x51\x25\x51\x26\x51\x27\x51\x28\x51\x29\x51\x2a\x51\x2b\x51\x2c\x51\x2d\x51\x2e\x51\x2f\x51\x30\x51\x31\x51\x32\x51\x33\x51\x34\x51\x35\x51\x36\x51\x37\x51\x38\x51\x39\x51\x3a\x51\x3b\x51\x3c\x51\x3d\x51\x3e\x51\x42\x51\x47\x51\x4a\x51\x4c\x51\x4e\x51\x4f\x51\x50\x51\x52\x51\x53\x51\x57\x51\x58\x51\x59\x51\x5b\x51\x5d\x51\x5e\x51\x5f\x51\x60\x51\x61\x51\x63\x51\x64\x51\x66\x51\x67\x51\x69\x51\x6a\x51\x6f\x51\x72\x51\x7a\x51\x7e\x51\x7f\x51\x83\x51\x84\x51\x86\x51\x87\x51\x8a\x51\x8b\x51\x8e\x51\x8f\x51\x90\x51\x91\x51\x93\x51\x94\x51\x98\x51\x9a\x51\x9d\x51\x9e\x51\x9f\x51\xa1\x51\xa3\x51\xa6\x51\xa7\x51\xa8\x51\xa9\x51\xaa\x51\xad\x51\xae\x51\xb4\x51\xb8\x51\xb9\x51\xba\x51\xbe\x51\xbf\x51\xc1\x51\xc2\x51\xc3\x51\xc5\x51\xc8\x51\xca\x51\xcd\x51\xce\x51\xd0\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd2\x51\xd3\x51\xd4\x51\xd5\x51\xd6\x51\xd7\x51\xd8\x51\xd9\x51\xda\x51\xdc\x51\xde\x51\xdf\x51\xe2\x51\xe3\x51\xe5\x51\xe6\x51\xe7\x51\xe8\x51\xe9\x51\xea\x51\xec\x51\xee\x51\xf1\x51\xf2\x51\xf4\x51\xf7\x51\xfe\x52\x04\x52\x05\x52\x09\x52\x0b\x52\x0c\x52\x0f\x52\x10\x52\x13\x52\x14\x52\x15\x52\x1c\x52\x1e\x52\x1f\x52\x21\x52\x22\x52\x23\x52\x25\x52\x26\x52\x27\x52\x2a\x52\x2c\x52\x2f\x52\x31\x52\x32\x52\x34\x52\x35\x52\x3c\x52\x3e\x52\x44\x52\x45\x52\x46\x52\x47\x52\x48\x52\x49\x52\x4b\x52\x4e", /* 8480 */ "\x00\x00\x52\x4f\x52\x52\x52\x53\x52\x55\x52\x57\x52\x58\x52\x59\x52\x5a\x52\x5b\x52\x5d\x52\x5f\x52\x60\x52\x62\x52\x63\x52\x64\x52\x66\x52\x68\x52\x6b\x52\x6c\x52\x6d\x52\x6e\x52\x70\x52\x71\x52\x73\x52\x74\x52\x75\x52\x76\x52\x77\x52\x78\x52\x79\x52\x7a\x52\x7b\x52\x7c\x52\x7e\x52\x80\x52\x83\x52\x84\x52\x85\x52\x86\x52\x87\x52\x89\x52\x8a\x52\x8b\x52\x8c\x52\x8d\x52\x8e\x52\x8f\x52\x91\x52\x92\x52\x94\x52\x95\x52\x96\x52\x97\x52\x98\x52\x99\x52\x9a\x52\x9c\x52\xa4\x52\xa5\x52\xa6\x52\xa7\x52\xae\x52\xaf\x52\xb0\x52\xb4\x52\xb5\x52\xb6\x52\xb7\x52\xb8\x52\xb9\x52\xba\x52\xbb\x52\xbc\x52\xbd\x52\xc0\x52\xc1\x52\xc2\x52\xc4\x52\xc5\x52\xc6\x52\xc8\x52\xca\x52\xcc\x52\xcd\x52\xce\x52\xcf\x52\xd1\x52\xd3\x52\xd4\x52\xd5\x52\xd7\x52\xd9\x52\xda\x52\xdb\x52\xdc\x52\xdd\x52\xde\x52\xe0\x52\xe1\x52\xe2\x52\xe3\x52\xe5\x52\xe6\x52\xe7\x52\xe8\x52\xe9\x52\xea\x52\xeb\x52\xec\x52\xed\x52\xee\x52\xef\x52\xf1\x52\xf2\x52\xf3\x52\xf4\x52\xf5\x52\xf6\x52\xf7\x52\xf8\x52\xfb\x52\xfc\x52\xfd\x53\x01\x53\x02\x00\x00\x00\x00", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x03\x53\x04\x53\x07\x53\x09\x53\x0a\x53\x0b\x53\x0c\x53\x0e\x53\x11\x53\x12\x53\x13\x53\x14\x53\x18\x53\x1b\x53\x1c\x53\x1e\x53\x1f\x53\x22\x53\x24\x53\x25\x53\x27\x53\x28\x53\x29\x53\x2b\x53\x2c\x53\x2d\x53\x2f\x53\x30\x53\x31\x53\x32\x53\x33\x53\x34\x53\x35\x53\x36\x53\x37\x53\x38\x53\x3c\x53\x3d\x53\x40\x53\x42\x53\x44\x53\x46\x53\x4b\x53\x4c\x53\x4d\x53\x50\x53\x54\x53\x58\x53\x59\x53\x5b\x53\x5d\x53\x65\x53\x68\x53\x6a\x53\x6c\x53\x6d\x53\x72\x53\x76\x53\x79\x53\x7b\x53\x7c\x53\x7d\x53\x7e", /* 8580 */ "\x00\x00\x53\x80\x53\x81\x53\x83\x53\x87\x53\x88\x53\x8a\x53\x8e\x53\x8f\x53\x90\x53\x91\x53\x92\x53\x93\x53\x94\x53\x96\x53\x97\x53\x99\x53\x9b\x53\x9c\x53\x9e\x53\xa0\x53\xa1\x53\xa4\x53\xa7\x53\xaa\x53\xab\x53\xac\x53\xad\x53\xaf\x53\xb0\x53\xb1\x53\xb2\x53\xb3\x53\xb4\x53\xb5\x53\xb7\x53\xb8\x53\xb9\x53\xba\x53\xbc\x53\xbd\x53\xbe\x53\xc0\x53\xc3\x53\xc4\x53\xc5\x53\xc6\x53\xc7\x53\xce\x53\xcf\x53\xd0\x53\xd2\x53\xd3\x53\xd5\x53\xda\x53\xdc\x53\xdd\x53\xde\x53\xe1\x53\xe2\x53\xe7\x53\xf4\x53\xfa\x53\xfe\x53\xff\x54\x00\x54\x02\x54\x05\x54\x07\x54\x0b\x54\x14\x54\x18\x54\x19\x54\x1a\x54\x1c\x54\x22\x54\x24\x54\x25\x54\x2a\x54\x30\x54\x33\x54\x36\x54\x37\x54\x3a\x54\x3d\x54\x3f\x54\x41\x54\x42\x54\x44\x54\x45\x54\x47\x54\x49\x54\x4c\x54\x4d\x54\x4e\x54\x4f\x54\x51\x54\x5a\x54\x5d\x54\x5e\x54\x5f\x54\x60\x54\x61\x54\x63\x54\x65\x54\x67\x54\x69\x54\x6a\x54\x6b\x54\x6c\x54\x6d\x54\x6e\x54\x6f\x54\x70\x54\x74\x54\x79\x54\x7a\x54\x7e\x54\x7f\x54\x81\x54\x83\x54\x85\x54\x87\x54\x88\x54\x89\x54\x8a\x00\x00\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8d\x54\x91\x54\x93\x54\x97\x54\x98\x54\x9c\x54\x9e\x54\x9f\x54\xa0\x54\xa1\x54\xa2\x54\xa5\x54\xae\x54\xb0\x54\xb2\x54\xb5\x54\xb6\x54\xb7\x54\xb9\x54\xba\x54\xbc\x54\xbe\x54\xc3\x54\xc5\x54\xca\x54\xcb\x54\xd6\x54\xd8\x54\xdb\x54\xe0\x54\xe1\x54\xe2\x54\xe3\x54\xe4\x54\xeb\x54\xec\x54\xef\x54\xf0\x54\xf1\x54\xf4\x54\xf5\x54\xf6\x54\xf7\x54\xf8\x54\xf9\x54\xfb\x54\xfe\x55\x00\x55\x02\x55\x03\x55\x04\x55\x05\x55\x08\x55\x0a\x55\x0b\x55\x0c\x55\x0d\x55\x0e\x55\x12\x55\x13\x55\x15\x55\x16\x55\x17", /* 8680 */ "\x00\x00\x55\x18\x55\x19\x55\x1a\x55\x1c\x55\x1d\x55\x1e\x55\x1f\x55\x21\x55\x25\x55\x26\x55\x28\x55\x29\x55\x2b\x55\x2d\x55\x32\x55\x34\x55\x35\x55\x36\x55\x38\x55\x39\x55\x3a\x55\x3b\x55\x3d\x55\x40\x55\x42\x55\x45\x55\x47\x55\x48\x55\x4b\x55\x4c\x55\x4d\x55\x4e\x55\x4f\x55\x51\x55\x52\x55\x53\x55\x54\x55\x57\x55\x58\x55\x59\x55\x5a\x55\x5b\x55\x5d\x55\x5e\x55\x5f\x55\x60\x55\x62\x55\x63\x55\x68\x55\x69\x55\x6b\x55\x6f\x55\x70\x55\x71\x55\x72\x55\x73\x55\x74\x55\x79\x55\x7a\x55\x7d\x55\x7f\x55\x85\x55\x86\x55\x8c\x55\x8d\x55\x8e\x55\x90\x55\x92\x55\x93\x55\x95\x55\x96\x55\x97\x55\x9a\x55\x9b\x55\x9e\x55\xa0\x55\xa1\x55\xa2\x55\xa3\x55\xa4\x55\xa5\x55\xa6\x55\xa8\x55\xa9\x55\xaa\x55\xab\x55\xac\x55\xad\x55\xae\x55\xaf\x55\xb0\x55\xb2\x55\xb4\x55\xb6\x55\xb8\x55\xba\x55\xbc\x55\xbf\x55\xc0\x55\xc1\x55\xc2\x55\xc3\x55\xc6\x55\xc7\x55\xc8\x55\xca\x55\xcb\x55\xce\x55\xcf\x55\xd0\x55\xd5\x55\xd7\x55\xd8\x55\xd9\x55\xda\x55\xdb\x55\xde\x55\xe0\x55\xe2\x55\xe7\x55\xe9\x55\xed\x55\xee\x55\xf0\x55\xf1\x00\x00\x00\x00", /* 8700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf4\x55\xf6\x55\xf8\x55\xf9\x55\xfa\x55\xfb\x55\xfc\x55\xff\x56\x02\x56\x03\x56\x04\x56\x05\x56\x06\x56\x07\x56\x0a\x56\x0b\x56\x0d\x56\x10\x56\x11\x56\x12\x56\x13\x56\x14\x56\x15\x56\x16\x56\x17\x56\x19\x56\x1a\x56\x1c\x56\x1d\x56\x20\x56\x21\x56\x22\x56\x25\x56\x26\x56\x28\x56\x29\x56\x2a\x56\x2b\x56\x2e\x56\x2f\x56\x30\x56\x33\x56\x35\x56\x37\x56\x38\x56\x3a\x56\x3c\x56\x3d\x56\x3e\x56\x40\x56\x41\x56\x42\x56\x43\x56\x44\x56\x45\x56\x46\x56\x47\x56\x48\x56\x49\x56\x4a\x56\x4b\x56\x4f\x56\x50", /* 8780 */ "\x00\x00\x56\x51\x56\x52\x56\x53\x56\x55\x56\x56\x56\x5a\x56\x5b\x56\x5d\x56\x5e\x56\x5f\x56\x60\x56\x61\x56\x63\x56\x65\x56\x66\x56\x67\x56\x6d\x56\x6e\x56\x6f\x56\x70\x56\x72\x56\x73\x56\x74\x56\x75\x56\x77\x56\x78\x56\x79\x56\x7a\x56\x7d\x56\x7e\x56\x7f\x56\x80\x56\x81\x56\x82\x56\x83\x56\x84\x56\x87\x56\x88\x56\x89\x56\x8a\x56\x8b\x56\x8c\x56\x8d\x56\x90\x56\x91\x56\x92\x56\x94\x56\x95\x56\x96\x56\x97\x56\x98\x56\x99\x56\x9a\x56\x9b\x56\x9c\x56\x9d\x56\x9e\x56\x9f\x56\xa0\x56\xa1\x56\xa2\x56\xa4\x56\xa5\x56\xa6\x56\xa7\x56\xa8\x56\xa9\x56\xaa\x56\xab\x56\xac\x56\xad\x56\xae\x56\xb0\x56\xb1\x56\xb2\x56\xb3\x56\xb4\x56\xb5\x56\xb6\x56\xb8\x56\xb9\x56\xba\x56\xbb\x56\xbd\x56\xbe\x56\xbf\x56\xc0\x56\xc1\x56\xc2\x56\xc3\x56\xc4\x56\xc5\x56\xc6\x56\xc7\x56\xc8\x56\xc9\x56\xcb\x56\xcc\x56\xcd\x56\xce\x56\xcf\x56\xd0\x56\xd1\x56\xd2\x56\xd3\x56\xd5\x56\xd6\x56\xd8\x56\xd9\x56\xdc\x56\xe3\x56\xe5\x56\xe6\x56\xe7\x56\xe8\x56\xe9\x56\xea\x56\xec\x56\xee\x56\xef\x56\xf2\x56\xf3\x56\xf6\x56\xf7\x56\xf8\x00\x00\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xfb\x56\xfc\x57\x00\x57\x01\x57\x02\x57\x05\x57\x07\x57\x0b\x57\x0c\x57\x0d\x57\x0e\x57\x0f\x57\x10\x57\x11\x57\x12\x57\x13\x57\x14\x57\x15\x57\x16\x57\x17\x57\x18\x57\x19\x57\x1a\x57\x1b\x57\x1d\x57\x1e\x57\x20\x57\x21\x57\x22\x57\x24\x57\x25\x57\x26\x57\x27\x57\x2b\x57\x31\x57\x32\x57\x34\x57\x35\x57\x36\x57\x37\x57\x38\x57\x3c\x57\x3d\x57\x3f\x57\x41\x57\x43\x57\x44\x57\x45\x57\x46\x57\x48\x57\x49\x57\x4b\x57\x52\x57\x53\x57\x54\x57\x55\x57\x56\x57\x58\x57\x59\x57\x62\x57\x63\x57\x65\x57\x67", /* 8880 */ "\x00\x00\x57\x6c\x57\x6e\x57\x70\x57\x71\x57\x72\x57\x74\x57\x75\x57\x78\x57\x79\x57\x7a\x57\x7d\x57\x7e\x57\x7f\x57\x80\x57\x81\x57\x87\x57\x88\x57\x89\x57\x8a\x57\x8d\x57\x8e\x57\x8f\x57\x90\x57\x91\x57\x94\x57\x95\x57\x96\x57\x97\x57\x98\x57\x99\x57\x9a\x57\x9c\x57\x9d\x57\x9e\x57\x9f\x57\xa5\x57\xa8\x57\xaa\x57\xac\x57\xaf\x57\xb0\x57\xb1\x57\xb3\x57\xb5\x57\xb6\x57\xb7\x57\xb9\x57\xba\x57\xbb\x57\xbc\x57\xbd\x57\xbe\x57\xbf\x57\xc0\x57\xc1\x57\xc4\x57\xc5\x57\xc6\x57\xc7\x57\xc8\x57\xc9\x57\xca\x57\xcc\x57\xcd\x57\xd0\x57\xd1\x57\xd3\x57\xd6\x57\xd7\x57\xdb\x57\xdc\x57\xde\x57\xe1\x57\xe2\x57\xe3\x57\xe5\x57\xe6\x57\xe7\x57\xe8\x57\xe9\x57\xea\x57\xeb\x57\xec\x57\xee\x57\xf0\x57\xf1\x57\xf2\x57\xf3\x57\xf5\x57\xf6\x57\xf7\x57\xfb\x57\xfc\x57\xfe\x57\xff\x58\x01\x58\x03\x58\x04\x58\x05\x58\x08\x58\x09\x58\x0a\x58\x0c\x58\x0e\x58\x0f\x58\x10\x58\x12\x58\x13\x58\x14\x58\x16\x58\x17\x58\x18\x58\x1a\x58\x1b\x58\x1c\x58\x1d\x58\x1f\x58\x22\x58\x23\x58\x25\x58\x26\x58\x27\x58\x28\x58\x29\x58\x2b\x00\x00\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x2c\x58\x2d\x58\x2e\x58\x2f\x58\x31\x58\x32\x58\x33\x58\x34\x58\x36\x58\x37\x58\x38\x58\x39\x58\x3a\x58\x3b\x58\x3c\x58\x3d\x58\x3e\x58\x3f\x58\x40\x58\x41\x58\x42\x58\x43\x58\x45\x58\x46\x58\x47\x58\x48\x58\x49\x58\x4a\x58\x4b\x58\x4e\x58\x4f\x58\x50\x58\x52\x58\x53\x58\x55\x58\x56\x58\x57\x58\x59\x58\x5a\x58\x5b\x58\x5c\x58\x5d\x58\x5f\x58\x60\x58\x61\x58\x62\x58\x63\x58\x64\x58\x66\x58\x67\x58\x68\x58\x69\x58\x6a\x58\x6d\x58\x6e\x58\x6f\x58\x70\x58\x71\x58\x72\x58\x73\x58\x74\x58\x75\x58\x76", /* 8980 */ "\x00\x00\x58\x77\x58\x78\x58\x79\x58\x7a\x58\x7b\x58\x7c\x58\x7d\x58\x7f\x58\x82\x58\x84\x58\x86\x58\x87\x58\x88\x58\x8a\x58\x8b\x58\x8c\x58\x8d\x58\x8e\x58\x8f\x58\x90\x58\x91\x58\x94\x58\x95\x58\x96\x58\x97\x58\x98\x58\x9b\x58\x9c\x58\x9d\x58\xa0\x58\xa1\x58\xa2\x58\xa3\x58\xa4\x58\xa5\x58\xa6\x58\xa7\x58\xaa\x58\xab\x58\xac\x58\xad\x58\xae\x58\xaf\x58\xb0\x58\xb1\x58\xb2\x58\xb3\x58\xb4\x58\xb5\x58\xb6\x58\xb7\x58\xb8\x58\xb9\x58\xba\x58\xbb\x58\xbd\x58\xbe\x58\xbf\x58\xc0\x58\xc2\x58\xc3\x58\xc4\x58\xc6\x58\xc7\x58\xc8\x58\xc9\x58\xca\x58\xcb\x58\xcc\x58\xcd\x58\xce\x58\xcf\x58\xd0\x58\xd2\x58\xd3\x58\xd4\x58\xd6\x58\xd7\x58\xd8\x58\xd9\x58\xda\x58\xdb\x58\xdc\x58\xdd\x58\xde\x58\xdf\x58\xe0\x58\xe1\x58\xe2\x58\xe3\x58\xe5\x58\xe6\x58\xe7\x58\xe8\x58\xe9\x58\xea\x58\xed\x58\xef\x58\xf1\x58\xf2\x58\xf4\x58\xf5\x58\xf7\x58\xf8\x58\xfa\x58\xfb\x58\xfc\x58\xfd\x58\xfe\x58\xff\x59\x00\x59\x01\x59\x03\x59\x05\x59\x06\x59\x08\x59\x09\x59\x0a\x59\x0b\x59\x0c\x59\x0e\x59\x10\x59\x11\x59\x12\x59\x13\x00\x00\x00\x00", /* 8a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x17\x59\x18\x59\x1b\x59\x1d\x59\x1e\x59\x20\x59\x21\x59\x22\x59\x23\x59\x26\x59\x28\x59\x2c\x59\x30\x59\x32\x59\x33\x59\x35\x59\x36\x59\x3b\x59\x3d\x59\x3e\x59\x3f\x59\x40\x59\x43\x59\x45\x59\x46\x59\x4a\x59\x4c\x59\x4d\x59\x50\x59\x52\x59\x53\x59\x59\x59\x5b\x59\x5c\x59\x5d\x59\x5e\x59\x5f\x59\x61\x59\x63\x59\x64\x59\x66\x59\x67\x59\x68\x59\x69\x59\x6a\x59\x6b\x59\x6c\x59\x6d\x59\x6e\x59\x6f\x59\x70\x59\x71\x59\x72\x59\x75\x59\x77\x59\x7a\x59\x7b\x59\x7c\x59\x7e\x59\x7f\x59\x80\x59\x85\x59\x89", /* 8a80 */ "\x00\x00\x59\x8b\x59\x8c\x59\x8e\x59\x8f\x59\x90\x59\x91\x59\x94\x59\x95\x59\x98\x59\x9a\x59\x9b\x59\x9c\x59\x9d\x59\x9f\x59\xa0\x59\xa1\x59\xa2\x59\xa6\x59\xa7\x59\xac\x59\xad\x59\xb0\x59\xb1\x59\xb3\x59\xb4\x59\xb5\x59\xb6\x59\xb7\x59\xb8\x59\xba\x59\xbc\x59\xbd\x59\xbf\x59\xc0\x59\xc1\x59\xc2\x59\xc3\x59\xc4\x59\xc5\x59\xc7\x59\xc8\x59\xc9\x59\xcc\x59\xcd\x59\xce\x59\xcf\x59\xd5\x59\xd6\x59\xd9\x59\xdb\x59\xde\x59\xdf\x59\xe0\x59\xe1\x59\xe2\x59\xe4\x59\xe6\x59\xe7\x59\xe9\x59\xea\x59\xeb\x59\xed\x59\xee\x59\xef\x59\xf0\x59\xf1\x59\xf2\x59\xf3\x59\xf4\x59\xf5\x59\xf6\x59\xf7\x59\xf8\x59\xfa\x59\xfc\x59\xfd\x59\xfe\x5a\x00\x5a\x02\x5a\x0a\x5a\x0b\x5a\x0d\x5a\x0e\x5a\x0f\x5a\x10\x5a\x12\x5a\x14\x5a\x15\x5a\x16\x5a\x17\x5a\x19\x5a\x1a\x5a\x1b\x5a\x1d\x5a\x1e\x5a\x21\x5a\x22\x5a\x24\x5a\x26\x5a\x27\x5a\x28\x5a\x2a\x5a\x2b\x5a\x2c\x5a\x2d\x5a\x2e\x5a\x2f\x5a\x30\x5a\x33\x5a\x35\x5a\x37\x5a\x38\x5a\x39\x5a\x3a\x5a\x3b\x5a\x3d\x5a\x3e\x5a\x3f\x5a\x41\x5a\x42\x5a\x43\x5a\x44\x5a\x45\x5a\x47\x5a\x48\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4b\x5a\x4c\x5a\x4d\x5a\x4e\x5a\x4f\x5a\x50\x5a\x51\x5a\x52\x5a\x53\x5a\x54\x5a\x56\x5a\x57\x5a\x58\x5a\x59\x5a\x5b\x5a\x5c\x5a\x5d\x5a\x5e\x5a\x5f\x5a\x60\x5a\x61\x5a\x63\x5a\x64\x5a\x65\x5a\x66\x5a\x68\x5a\x69\x5a\x6b\x5a\x6c\x5a\x6d\x5a\x6e\x5a\x6f\x5a\x70\x5a\x71\x5a\x72\x5a\x73\x5a\x78\x5a\x79\x5a\x7b\x5a\x7c\x5a\x7d\x5a\x7e\x5a\x80\x5a\x81\x5a\x82\x5a\x83\x5a\x84\x5a\x85\x5a\x86\x5a\x87\x5a\x88\x5a\x89\x5a\x8a\x5a\x8b\x5a\x8c\x5a\x8d\x5a\x8e\x5a\x8f\x5a\x90\x5a\x91\x5a\x93\x5a\x94\x5a\x95", /* 8b80 */ "\x00\x00\x5a\x96\x5a\x97\x5a\x98\x5a\x99\x5a\x9c\x5a\x9d\x5a\x9e\x5a\x9f\x5a\xa0\x5a\xa1\x5a\xa2\x5a\xa3\x5a\xa4\x5a\xa5\x5a\xa6\x5a\xa7\x5a\xa8\x5a\xa9\x5a\xab\x5a\xac\x5a\xad\x5a\xae\x5a\xaf\x5a\xb0\x5a\xb1\x5a\xb4\x5a\xb6\x5a\xb7\x5a\xb9\x5a\xba\x5a\xbb\x5a\xbc\x5a\xbd\x5a\xbf\x5a\xc0\x5a\xc3\x5a\xc4\x5a\xc5\x5a\xc6\x5a\xc7\x5a\xc8\x5a\xca\x5a\xcb\x5a\xcd\x5a\xce\x5a\xcf\x5a\xd0\x5a\xd1\x5a\xd3\x5a\xd5\x5a\xd7\x5a\xd9\x5a\xda\x5a\xdb\x5a\xdd\x5a\xde\x5a\xdf\x5a\xe2\x5a\xe4\x5a\xe5\x5a\xe7\x5a\xe8\x5a\xea\x5a\xec\x5a\xed\x5a\xee\x5a\xef\x5a\xf0\x5a\xf2\x5a\xf3\x5a\xf4\x5a\xf5\x5a\xf6\x5a\xf7\x5a\xf8\x5a\xf9\x5a\xfa\x5a\xfb\x5a\xfc\x5a\xfd\x5a\xfe\x5a\xff\x5b\x00\x5b\x01\x5b\x02\x5b\x03\x5b\x04\x5b\x05\x5b\x06\x5b\x07\x5b\x08\x5b\x0a\x5b\x0b\x5b\x0c\x5b\x0d\x5b\x0e\x5b\x0f\x5b\x10\x5b\x11\x5b\x12\x5b\x13\x5b\x14\x5b\x15\x5b\x18\x5b\x19\x5b\x1a\x5b\x1b\x5b\x1c\x5b\x1d\x5b\x1e\x5b\x1f\x5b\x20\x5b\x21\x5b\x22\x5b\x23\x5b\x24\x5b\x25\x5b\x26\x5b\x27\x5b\x28\x5b\x29\x5b\x2a\x5b\x2b\x5b\x2c\x5b\x2d\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x2e\x5b\x2f\x5b\x30\x5b\x31\x5b\x33\x5b\x35\x5b\x36\x5b\x38\x5b\x39\x5b\x3a\x5b\x3b\x5b\x3c\x5b\x3d\x5b\x3e\x5b\x3f\x5b\x41\x5b\x42\x5b\x43\x5b\x44\x5b\x45\x5b\x46\x5b\x47\x5b\x48\x5b\x49\x5b\x4a\x5b\x4b\x5b\x4c\x5b\x4d\x5b\x4e\x5b\x4f\x5b\x52\x5b\x56\x5b\x5e\x5b\x60\x5b\x61\x5b\x67\x5b\x68\x5b\x6b\x5b\x6d\x5b\x6e\x5b\x6f\x5b\x72\x5b\x74\x5b\x76\x5b\x77\x5b\x78\x5b\x79\x5b\x7b\x5b\x7c\x5b\x7e\x5b\x7f\x5b\x82\x5b\x86\x5b\x8a\x5b\x8d\x5b\x8e\x5b\x90\x5b\x91\x5b\x92\x5b\x94\x5b\x96\x5b\x9f\x5b\xa7", /* 8c80 */ "\x00\x00\x5b\xa8\x5b\xa9\x5b\xac\x5b\xad\x5b\xae\x5b\xaf\x5b\xb1\x5b\xb2\x5b\xb7\x5b\xba\x5b\xbb\x5b\xbc\x5b\xc0\x5b\xc1\x5b\xc3\x5b\xc8\x5b\xc9\x5b\xca\x5b\xcb\x5b\xcd\x5b\xce\x5b\xcf\x5b\xd1\x5b\xd4\x5b\xd5\x5b\xd6\x5b\xd7\x5b\xd8\x5b\xd9\x5b\xda\x5b\xdb\x5b\xdc\x5b\xe0\x5b\xe2\x5b\xe3\x5b\xe6\x5b\xe7\x5b\xe9\x5b\xea\x5b\xeb\x5b\xec\x5b\xed\x5b\xef\x5b\xf1\x5b\xf2\x5b\xf3\x5b\xf4\x5b\xf5\x5b\xf6\x5b\xf7\x5b\xfd\x5b\xfe\x5c\x00\x5c\x02\x5c\x03\x5c\x05\x5c\x07\x5c\x08\x5c\x0b\x5c\x0c\x5c\x0d\x5c\x0e\x5c\x10\x5c\x12\x5c\x13\x5c\x17\x5c\x19\x5c\x1b\x5c\x1e\x5c\x1f\x5c\x20\x5c\x21\x5c\x23\x5c\x26\x5c\x28\x5c\x29\x5c\x2a\x5c\x2b\x5c\x2d\x5c\x2e\x5c\x2f\x5c\x30\x5c\x32\x5c\x33\x5c\x35\x5c\x36\x5c\x37\x5c\x43\x5c\x44\x5c\x46\x5c\x47\x5c\x4c\x5c\x4d\x5c\x52\x5c\x53\x5c\x54\x5c\x56\x5c\x57\x5c\x58\x5c\x5a\x5c\x5b\x5c\x5c\x5c\x5d\x5c\x5f\x5c\x62\x5c\x64\x5c\x67\x5c\x68\x5c\x69\x5c\x6a\x5c\x6b\x5c\x6c\x5c\x6d\x5c\x70\x5c\x72\x5c\x73\x5c\x74\x5c\x75\x5c\x76\x5c\x77\x5c\x78\x5c\x7b\x5c\x7c\x5c\x7d\x5c\x7e\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x80\x5c\x83\x5c\x84\x5c\x85\x5c\x86\x5c\x87\x5c\x89\x5c\x8a\x5c\x8b\x5c\x8e\x5c\x8f\x5c\x92\x5c\x93\x5c\x95\x5c\x9d\x5c\x9e\x5c\x9f\x5c\xa0\x5c\xa1\x5c\xa4\x5c\xa5\x5c\xa6\x5c\xa7\x5c\xa8\x5c\xaa\x5c\xae\x5c\xaf\x5c\xb0\x5c\xb2\x5c\xb4\x5c\xb6\x5c\xb9\x5c\xba\x5c\xbb\x5c\xbc\x5c\xbe\x5c\xc0\x5c\xc2\x5c\xc3\x5c\xc5\x5c\xc6\x5c\xc7\x5c\xc8\x5c\xc9\x5c\xca\x5c\xcc\x5c\xcd\x5c\xce\x5c\xcf\x5c\xd0\x5c\xd1\x5c\xd3\x5c\xd4\x5c\xd5\x5c\xd6\x5c\xd7\x5c\xd8\x5c\xda\x5c\xdb\x5c\xdc\x5c\xdd\x5c\xde\x5c\xdf", /* 8d80 */ "\x00\x00\x5c\xe0\x5c\xe2\x5c\xe3\x5c\xe7\x5c\xe9\x5c\xeb\x5c\xec\x5c\xee\x5c\xef\x5c\xf1\x5c\xf2\x5c\xf3\x5c\xf4\x5c\xf5\x5c\xf6\x5c\xf7\x5c\xf8\x5c\xf9\x5c\xfa\x5c\xfc\x5c\xfd\x5c\xfe\x5c\xff\x5d\x00\x5d\x01\x5d\x04\x5d\x05\x5d\x08\x5d\x09\x5d\x0a\x5d\x0b\x5d\x0c\x5d\x0d\x5d\x0f\x5d\x10\x5d\x11\x5d\x12\x5d\x13\x5d\x15\x5d\x17\x5d\x18\x5d\x19\x5d\x1a\x5d\x1c\x5d\x1d\x5d\x1f\x5d\x20\x5d\x21\x5d\x22\x5d\x23\x5d\x25\x5d\x28\x5d\x2a\x5d\x2b\x5d\x2c\x5d\x2f\x5d\x30\x5d\x31\x5d\x32\x5d\x33\x5d\x35\x5d\x36\x5d\x37\x5d\x38\x5d\x39\x5d\x3a\x5d\x3b\x5d\x3c\x5d\x3f\x5d\x40\x5d\x41\x5d\x42\x5d\x43\x5d\x44\x5d\x45\x5d\x46\x5d\x48\x5d\x49\x5d\x4d\x5d\x4e\x5d\x4f\x5d\x50\x5d\x51\x5d\x52\x5d\x53\x5d\x54\x5d\x55\x5d\x56\x5d\x57\x5d\x59\x5d\x5a\x5d\x5c\x5d\x5e\x5d\x5f\x5d\x60\x5d\x61\x5d\x62\x5d\x63\x5d\x64\x5d\x65\x5d\x66\x5d\x67\x5d\x68\x5d\x6a\x5d\x6d\x5d\x6e\x5d\x70\x5d\x71\x5d\x72\x5d\x73\x5d\x75\x5d\x76\x5d\x77\x5d\x78\x5d\x79\x5d\x7a\x5d\x7b\x5d\x7c\x5d\x7d\x5d\x7e\x5d\x7f\x5d\x80\x5d\x81\x5d\x83\x5d\x84\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x85\x5d\x86\x5d\x87\x5d\x88\x5d\x89\x5d\x8a\x5d\x8b\x5d\x8c\x5d\x8d\x5d\x8e\x5d\x8f\x5d\x90\x5d\x91\x5d\x92\x5d\x93\x5d\x94\x5d\x95\x5d\x96\x5d\x97\x5d\x98\x5d\x9a\x5d\x9b\x5d\x9c\x5d\x9e\x5d\x9f\x5d\xa0\x5d\xa1\x5d\xa2\x5d\xa3\x5d\xa4\x5d\xa5\x5d\xa6\x5d\xa7\x5d\xa8\x5d\xa9\x5d\xaa\x5d\xab\x5d\xac\x5d\xad\x5d\xae\x5d\xaf\x5d\xb0\x5d\xb1\x5d\xb2\x5d\xb3\x5d\xb4\x5d\xb5\x5d\xb6\x5d\xb8\x5d\xb9\x5d\xba\x5d\xbb\x5d\xbc\x5d\xbd\x5d\xbe\x5d\xbf\x5d\xc0\x5d\xc1\x5d\xc2\x5d\xc3\x5d\xc4\x5d\xc6\x5d\xc7", /* 8e80 */ "\x00\x00\x5d\xc8\x5d\xc9\x5d\xca\x5d\xcb\x5d\xcc\x5d\xce\x5d\xcf\x5d\xd0\x5d\xd1\x5d\xd2\x5d\xd3\x5d\xd4\x5d\xd5\x5d\xd6\x5d\xd7\x5d\xd8\x5d\xd9\x5d\xda\x5d\xdc\x5d\xdf\x5d\xe0\x5d\xe3\x5d\xe4\x5d\xea\x5d\xec\x5d\xed\x5d\xf0\x5d\xf5\x5d\xf6\x5d\xf8\x5d\xf9\x5d\xfa\x5d\xfb\x5d\xfc\x5d\xff\x5e\x00\x5e\x04\x5e\x07\x5e\x09\x5e\x0a\x5e\x0b\x5e\x0d\x5e\x0e\x5e\x12\x5e\x13\x5e\x17\x5e\x1e\x5e\x1f\x5e\x20\x5e\x21\x5e\x22\x5e\x23\x5e\x24\x5e\x25\x5e\x28\x5e\x29\x5e\x2a\x5e\x2b\x5e\x2c\x5e\x2f\x5e\x30\x5e\x32\x5e\x33\x5e\x34\x5e\x35\x5e\x36\x5e\x39\x5e\x3a\x5e\x3e\x5e\x3f\x5e\x40\x5e\x41\x5e\x43\x5e\x46\x5e\x47\x5e\x48\x5e\x49\x5e\x4a\x5e\x4b\x5e\x4d\x5e\x4e\x5e\x4f\x5e\x50\x5e\x51\x5e\x52\x5e\x53\x5e\x56\x5e\x57\x5e\x58\x5e\x59\x5e\x5a\x5e\x5c\x5e\x5d\x5e\x5f\x5e\x60\x5e\x63\x5e\x64\x5e\x65\x5e\x66\x5e\x67\x5e\x68\x5e\x69\x5e\x6a\x5e\x6b\x5e\x6c\x5e\x6d\x5e\x6e\x5e\x6f\x5e\x70\x5e\x71\x5e\x75\x5e\x77\x5e\x79\x5e\x7e\x5e\x81\x5e\x82\x5e\x83\x5e\x85\x5e\x88\x5e\x89\x5e\x8c\x5e\x8d\x5e\x8e\x5e\x92\x5e\x98\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9b\x5e\x9d\x5e\xa1\x5e\xa2\x5e\xa3\x5e\xa4\x5e\xa8\x5e\xa9\x5e\xaa\x5e\xab\x5e\xac\x5e\xae\x5e\xaf\x5e\xb0\x5e\xb1\x5e\xb2\x5e\xb4\x5e\xba\x5e\xbb\x5e\xbc\x5e\xbd\x5e\xbf\x5e\xc0\x5e\xc1\x5e\xc2\x5e\xc3\x5e\xc4\x5e\xc5\x5e\xc6\x5e\xc7\x5e\xc8\x5e\xcb\x5e\xcc\x5e\xcd\x5e\xce\x5e\xcf\x5e\xd0\x5e\xd4\x5e\xd5\x5e\xd7\x5e\xd8\x5e\xd9\x5e\xda\x5e\xdc\x5e\xdd\x5e\xde\x5e\xdf\x5e\xe0\x5e\xe1\x5e\xe2\x5e\xe3\x5e\xe4\x5e\xe5\x5e\xe6\x5e\xe7\x5e\xe9\x5e\xeb\x5e\xec\x5e\xed\x5e\xee\x5e\xef\x5e\xf0\x5e\xf1", /* 8f80 */ "\x00\x00\x5e\xf2\x5e\xf3\x5e\xf5\x5e\xf8\x5e\xf9\x5e\xfb\x5e\xfc\x5e\xfd\x5f\x05\x5f\x06\x5f\x07\x5f\x09\x5f\x0c\x5f\x0d\x5f\x0e\x5f\x10\x5f\x12\x5f\x14\x5f\x16\x5f\x19\x5f\x1a\x5f\x1c\x5f\x1d\x5f\x1e\x5f\x21\x5f\x22\x5f\x23\x5f\x24\x5f\x28\x5f\x2b\x5f\x2c\x5f\x2e\x5f\x30\x5f\x32\x5f\x33\x5f\x34\x5f\x35\x5f\x36\x5f\x37\x5f\x38\x5f\x3b\x5f\x3d\x5f\x3e\x5f\x3f\x5f\x41\x5f\x42\x5f\x43\x5f\x44\x5f\x45\x5f\x46\x5f\x47\x5f\x48\x5f\x49\x5f\x4a\x5f\x4b\x5f\x4c\x5f\x4d\x5f\x4e\x5f\x4f\x5f\x51\x5f\x54\x5f\x59\x5f\x5a\x5f\x5b\x5f\x5c\x5f\x5e\x5f\x5f\x5f\x60\x5f\x63\x5f\x65\x5f\x67\x5f\x68\x5f\x6b\x5f\x6e\x5f\x6f\x5f\x72\x5f\x74\x5f\x75\x5f\x76\x5f\x78\x5f\x7a\x5f\x7d\x5f\x7e\x5f\x7f\x5f\x83\x5f\x86\x5f\x8d\x5f\x8e\x5f\x8f\x5f\x91\x5f\x93\x5f\x94\x5f\x96\x5f\x9a\x5f\x9b\x5f\x9d\x5f\x9e\x5f\x9f\x5f\xa0\x5f\xa2\x5f\xa3\x5f\xa4\x5f\xa5\x5f\xa6\x5f\xa7\x5f\xa9\x5f\xab\x5f\xac\x5f\xaf\x5f\xb0\x5f\xb1\x5f\xb2\x5f\xb3\x5f\xb4\x5f\xb6\x5f\xb8\x5f\xb9\x5f\xba\x5f\xbb\x5f\xbe\x5f\xbf\x5f\xc0\x5f\xc1\x5f\xc2\x5f\xc7\x00\x00\x00\x00", /* 9000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc8\x5f\xca\x5f\xcb\x5f\xce\x5f\xd3\x5f\xd4\x5f\xd5\x5f\xda\x5f\xdb\x5f\xdc\x5f\xde\x5f\xdf\x5f\xe2\x5f\xe3\x5f\xe5\x5f\xe6\x5f\xe8\x5f\xe9\x5f\xec\x5f\xef\x5f\xf0\x5f\xf2\x5f\xf3\x5f\xf4\x5f\xf6\x5f\xf7\x5f\xf9\x5f\xfa\x5f\xfc\x60\x07\x60\x08\x60\x09\x60\x0b\x60\x0c\x60\x10\x60\x11\x60\x13\x60\x17\x60\x18\x60\x1a\x60\x1e\x60\x1f\x60\x22\x60\x23\x60\x24\x60\x2c\x60\x2d\x60\x2e\x60\x30\x60\x31\x60\x32\x60\x33\x60\x34\x60\x36\x60\x37\x60\x38\x60\x39\x60\x3a\x60\x3d\x60\x3e\x60\x40\x60\x44\x60\x45", /* 9080 */ "\x00\x00\x60\x46\x60\x47\x60\x48\x60\x49\x60\x4a\x60\x4c\x60\x4e\x60\x4f\x60\x51\x60\x53\x60\x54\x60\x56\x60\x57\x60\x58\x60\x5b\x60\x5c\x60\x5e\x60\x5f\x60\x60\x60\x61\x60\x65\x60\x66\x60\x6e\x60\x71\x60\x72\x60\x74\x60\x75\x60\x77\x60\x7e\x60\x80\x60\x81\x60\x82\x60\x85\x60\x86\x60\x87\x60\x88\x60\x8a\x60\x8b\x60\x8e\x60\x8f\x60\x90\x60\x91\x60\x93\x60\x95\x60\x97\x60\x98\x60\x99\x60\x9c\x60\x9e\x60\xa1\x60\xa2\x60\xa4\x60\xa5\x60\xa7\x60\xa9\x60\xaa\x60\xae\x60\xb0\x60\xb3\x60\xb5\x60\xb6\x60\xb7\x60\xb9\x60\xba\x60\xbd\x60\xbe\x60\xbf\x60\xc0\x60\xc1\x60\xc2\x60\xc3\x60\xc4\x60\xc7\x60\xc8\x60\xc9\x60\xcc\x60\xcd\x60\xce\x60\xcf\x60\xd0\x60\xd2\x60\xd3\x60\xd4\x60\xd6\x60\xd7\x60\xd9\x60\xdb\x60\xde\x60\xe1\x60\xe2\x60\xe3\x60\xe4\x60\xe5\x60\xea\x60\xf1\x60\xf2\x60\xf5\x60\xf7\x60\xf8\x60\xfb\x60\xfc\x60\xfd\x60\xfe\x60\xff\x61\x02\x61\x03\x61\x04\x61\x05\x61\x07\x61\x0a\x61\x0b\x61\x0c\x61\x10\x61\x11\x61\x12\x61\x13\x61\x14\x61\x16\x61\x17\x61\x18\x61\x19\x61\x1b\x61\x1c\x61\x1d\x61\x1e\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x21\x61\x22\x61\x25\x61\x28\x61\x29\x61\x2a\x61\x2c\x61\x2d\x61\x2e\x61\x2f\x61\x30\x61\x31\x61\x32\x61\x33\x61\x34\x61\x35\x61\x36\x61\x37\x61\x38\x61\x39\x61\x3a\x61\x3b\x61\x3c\x61\x3d\x61\x3e\x61\x40\x61\x41\x61\x42\x61\x43\x61\x44\x61\x45\x61\x46\x61\x47\x61\x49\x61\x4b\x61\x4d\x61\x4f\x61\x50\x61\x52\x61\x53\x61\x54\x61\x56\x61\x57\x61\x58\x61\x59\x61\x5a\x61\x5b\x61\x5c\x61\x5e\x61\x5f\x61\x60\x61\x61\x61\x63\x61\x64\x61\x65\x61\x66\x61\x69\x61\x6a\x61\x6b\x61\x6c\x61\x6d\x61\x6e\x61\x6f", /* 9180 */ "\x00\x00\x61\x71\x61\x72\x61\x73\x61\x74\x61\x76\x61\x78\x61\x79\x61\x7a\x61\x7b\x61\x7c\x61\x7d\x61\x7e\x61\x7f\x61\x80\x61\x81\x61\x82\x61\x83\x61\x84\x61\x85\x61\x86\x61\x87\x61\x88\x61\x89\x61\x8a\x61\x8c\x61\x8d\x61\x8f\x61\x90\x61\x91\x61\x92\x61\x93\x61\x95\x61\x96\x61\x97\x61\x98\x61\x99\x61\x9a\x61\x9b\x61\x9c\x61\x9e\x61\x9f\x61\xa0\x61\xa1\x61\xa2\x61\xa3\x61\xa4\x61\xa5\x61\xa6\x61\xaa\x61\xab\x61\xad\x61\xae\x61\xaf\x61\xb0\x61\xb1\x61\xb2\x61\xb3\x61\xb4\x61\xb5\x61\xb6\x61\xb8\x61\xb9\x61\xba\x61\xbb\x61\xbc\x61\xbd\x61\xbf\x61\xc0\x61\xc1\x61\xc3\x61\xc4\x61\xc5\x61\xc6\x61\xc7\x61\xc9\x61\xcc\x61\xcd\x61\xce\x61\xcf\x61\xd0\x61\xd3\x61\xd5\x61\xd6\x61\xd7\x61\xd8\x61\xd9\x61\xda\x61\xdb\x61\xdc\x61\xdd\x61\xde\x61\xdf\x61\xe0\x61\xe1\x61\xe2\x61\xe3\x61\xe4\x61\xe5\x61\xe7\x61\xe8\x61\xe9\x61\xea\x61\xeb\x61\xec\x61\xed\x61\xee\x61\xef\x61\xf0\x61\xf1\x61\xf2\x61\xf3\x61\xf4\x61\xf6\x61\xf7\x61\xf8\x61\xf9\x61\xfa\x61\xfb\x61\xfc\x61\xfd\x61\xfe\x62\x00\x62\x01\x62\x02\x62\x03\x00\x00\x00\x00", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x04\x62\x05\x62\x07\x62\x09\x62\x13\x62\x14\x62\x19\x62\x1c\x62\x1d\x62\x1e\x62\x20\x62\x23\x62\x26\x62\x27\x62\x28\x62\x29\x62\x2b\x62\x2d\x62\x2f\x62\x30\x62\x31\x62\x32\x62\x35\x62\x36\x62\x38\x62\x39\x62\x3a\x62\x3b\x62\x3c\x62\x42\x62\x44\x62\x45\x62\x46\x62\x4a\x62\x4f\x62\x50\x62\x55\x62\x56\x62\x57\x62\x59\x62\x5a\x62\x5c\x62\x5d\x62\x5e\x62\x5f\x62\x60\x62\x61\x62\x62\x62\x64\x62\x65\x62\x68\x62\x71\x62\x72\x62\x74\x62\x75\x62\x77\x62\x78\x62\x7a\x62\x7b\x62\x7d\x62\x81\x62\x82\x62\x83", /* 9280 */ "\x00\x00\x62\x85\x62\x86\x62\x87\x62\x88\x62\x8b\x62\x8c\x62\x8d\x62\x8e\x62\x8f\x62\x90\x62\x94\x62\x99\x62\x9c\x62\x9d\x62\x9e\x62\xa3\x62\xa6\x62\xa7\x62\xa9\x62\xaa\x62\xad\x62\xae\x62\xaf\x62\xb0\x62\xb2\x62\xb3\x62\xb4\x62\xb6\x62\xb7\x62\xb8\x62\xba\x62\xbe\x62\xc0\x62\xc1\x62\xc3\x62\xcb\x62\xcf\x62\xd1\x62\xd5\x62\xdd\x62\xde\x62\xe0\x62\xe1\x62\xe4\x62\xea\x62\xeb\x62\xf0\x62\xf2\x62\xf5\x62\xf8\x62\xf9\x62\xfa\x62\xfb\x63\x00\x63\x03\x63\x04\x63\x05\x63\x06\x63\x0a\x63\x0b\x63\x0c\x63\x0d\x63\x0f\x63\x10\x63\x12\x63\x13\x63\x14\x63\x15\x63\x17\x63\x18\x63\x19\x63\x1c\x63\x26\x63\x27\x63\x29\x63\x2c\x63\x2d\x63\x2e\x63\x30\x63\x31\x63\x33\x63\x34\x63\x35\x63\x36\x63\x37\x63\x38\x63\x3b\x63\x3c\x63\x3e\x63\x3f\x63\x40\x63\x41\x63\x44\x63\x47\x63\x48\x63\x4a\x63\x51\x63\x52\x63\x53\x63\x54\x63\x56\x63\x57\x63\x58\x63\x59\x63\x5a\x63\x5b\x63\x5c\x63\x5d\x63\x60\x63\x64\x63\x65\x63\x66\x63\x68\x63\x6a\x63\x6b\x63\x6c\x63\x6f\x63\x70\x63\x72\x63\x73\x63\x74\x63\x75\x63\x78\x63\x79\x63\x7c\x00\x00\x00\x00", /* 9300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7d\x63\x7e\x63\x7f\x63\x81\x63\x83\x63\x84\x63\x85\x63\x86\x63\x8b\x63\x8d\x63\x91\x63\x93\x63\x94\x63\x95\x63\x97\x63\x99\x63\x9a\x63\x9b\x63\x9c\x63\x9d\x63\x9e\x63\x9f\x63\xa1\x63\xa4\x63\xa6\x63\xab\x63\xaf\x63\xb1\x63\xb2\x63\xb5\x63\xb6\x63\xb9\x63\xbb\x63\xbd\x63\xbf\x63\xc0\x63\xc1\x63\xc2\x63\xc3\x63\xc5\x63\xc7\x63\xc8\x63\xca\x63\xcb\x63\xcc\x63\xd1\x63\xd3\x63\xd4\x63\xd5\x63\xd7\x63\xd8\x63\xd9\x63\xda\x63\xdb\x63\xdc\x63\xdd\x63\xdf\x63\xe2\x63\xe4\x63\xe5\x63\xe6\x63\xe7\x63\xe8", /* 9380 */ "\x00\x00\x63\xeb\x63\xec\x63\xee\x63\xef\x63\xf0\x63\xf1\x63\xf3\x63\xf5\x63\xf7\x63\xf9\x63\xfa\x63\xfb\x63\xfc\x63\xfe\x64\x03\x64\x04\x64\x06\x64\x07\x64\x08\x64\x09\x64\x0a\x64\x0d\x64\x0e\x64\x11\x64\x12\x64\x15\x64\x16\x64\x17\x64\x18\x64\x19\x64\x1a\x64\x1d\x64\x1f\x64\x22\x64\x23\x64\x24\x64\x25\x64\x27\x64\x28\x64\x29\x64\x2b\x64\x2e\x64\x2f\x64\x30\x64\x31\x64\x32\x64\x33\x64\x35\x64\x36\x64\x37\x64\x38\x64\x39\x64\x3b\x64\x3c\x64\x3e\x64\x40\x64\x42\x64\x43\x64\x49\x64\x4b\x64\x4c\x64\x4d\x64\x4e\x64\x4f\x64\x50\x64\x51\x64\x53\x64\x55\x64\x56\x64\x57\x64\x59\x64\x5a\x64\x5b\x64\x5c\x64\x5d\x64\x5f\x64\x60\x64\x61\x64\x62\x64\x63\x64\x64\x64\x65\x64\x66\x64\x68\x64\x6a\x64\x6b\x64\x6c\x64\x6e\x64\x6f\x64\x70\x64\x71\x64\x72\x64\x73\x64\x74\x64\x75\x64\x76\x64\x77\x64\x7b\x64\x7c\x64\x7d\x64\x7e\x64\x7f\x64\x80\x64\x81\x64\x83\x64\x86\x64\x88\x64\x89\x64\x8a\x64\x8b\x64\x8c\x64\x8d\x64\x8e\x64\x8f\x64\x90\x64\x93\x64\x94\x64\x97\x64\x98\x64\x9a\x64\x9b\x64\x9c\x64\x9d\x64\x9f\x64\xa0\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa2\x64\xa3\x64\xa5\x64\xa6\x64\xa7\x64\xa8\x64\xaa\x64\xab\x64\xaf\x64\xb1\x64\xb2\x64\xb3\x64\xb4\x64\xb6\x64\xb9\x64\xbb\x64\xbd\x64\xbe\x64\xbf\x64\xc1\x64\xc3\x64\xc4\x64\xc6\x64\xc7\x64\xc8\x64\xc9\x64\xca\x64\xcb\x64\xcc\x64\xcf\x64\xd1\x64\xd3\x64\xd4\x64\xd5\x64\xd6\x64\xd9\x64\xda\x64\xdb\x64\xdc\x64\xdd\x64\xdf\x64\xe0\x64\xe1\x64\xe3\x64\xe5\x64\xe7\x64\xe8\x64\xe9\x64\xea\x64\xeb\x64\xec\x64\xed\x64\xee\x64\xef\x64\xf0\x64\xf1\x64\xf2\x64\xf3\x64\xf4\x64\xf5\x64\xf6\x64\xf7", /* 9480 */ "\x00\x00\x64\xf8\x64\xf9\x64\xfa\x64\xfb\x64\xfc\x64\xfd\x64\xfe\x64\xff\x65\x01\x65\x02\x65\x03\x65\x04\x65\x05\x65\x06\x65\x07\x65\x08\x65\x0a\x65\x0b\x65\x0c\x65\x0d\x65\x0e\x65\x0f\x65\x10\x65\x11\x65\x13\x65\x14\x65\x15\x65\x16\x65\x17\x65\x19\x65\x1a\x65\x1b\x65\x1c\x65\x1d\x65\x1e\x65\x1f\x65\x20\x65\x21\x65\x22\x65\x23\x65\x24\x65\x26\x65\x27\x65\x28\x65\x29\x65\x2a\x65\x2c\x65\x2d\x65\x30\x65\x31\x65\x32\x65\x33\x65\x37\x65\x3a\x65\x3c\x65\x3d\x65\x40\x65\x41\x65\x42\x65\x43\x65\x44\x65\x46\x65\x47\x65\x4a\x65\x4b\x65\x4d\x65\x4e\x65\x50\x65\x52\x65\x53\x65\x54\x65\x57\x65\x58\x65\x5a\x65\x5c\x65\x5f\x65\x60\x65\x61\x65\x64\x65\x65\x65\x67\x65\x68\x65\x69\x65\x6a\x65\x6d\x65\x6e\x65\x6f\x65\x71\x65\x73\x65\x75\x65\x76\x65\x78\x65\x79\x65\x7a\x65\x7b\x65\x7c\x65\x7d\x65\x7e\x65\x7f\x65\x80\x65\x81\x65\x82\x65\x83\x65\x84\x65\x85\x65\x86\x65\x88\x65\x89\x65\x8a\x65\x8d\x65\x8e\x65\x8f\x65\x92\x65\x94\x65\x95\x65\x96\x65\x98\x65\x9a\x65\x9d\x65\x9e\x65\xa0\x65\xa2\x65\xa3\x65\xa6\x65\xa8\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xaa\x65\xac\x65\xae\x65\xb1\x65\xb2\x65\xb3\x65\xb4\x65\xb5\x65\xb6\x65\xb7\x65\xb8\x65\xba\x65\xbb\x65\xbe\x65\xbf\x65\xc0\x65\xc2\x65\xc7\x65\xc8\x65\xc9\x65\xca\x65\xcd\x65\xd0\x65\xd1\x65\xd3\x65\xd4\x65\xd5\x65\xd8\x65\xd9\x65\xda\x65\xdb\x65\xdc\x65\xdd\x65\xde\x65\xdf\x65\xe1\x65\xe3\x65\xe4\x65\xea\x65\xeb\x65\xf2\x65\xf3\x65\xf4\x65\xf5\x65\xf8\x65\xf9\x65\xfb\x65\xfc\x65\xfd\x65\xfe\x65\xff\x66\x01\x66\x04\x66\x05\x66\x07\x66\x08\x66\x09\x66\x0b\x66\x0d\x66\x10\x66\x11\x66\x12\x66\x16", /* 9580 */ "\x00\x00\x66\x17\x66\x18\x66\x1a\x66\x1b\x66\x1c\x66\x1e\x66\x21\x66\x22\x66\x23\x66\x24\x66\x26\x66\x29\x66\x2a\x66\x2b\x66\x2c\x66\x2e\x66\x30\x66\x32\x66\x33\x66\x37\x66\x38\x66\x39\x66\x3a\x66\x3b\x66\x3d\x66\x3f\x66\x40\x66\x42\x66\x44\x66\x45\x66\x46\x66\x47\x66\x48\x66\x49\x66\x4a\x66\x4d\x66\x4e\x66\x50\x66\x51\x66\x58\x66\x59\x66\x5b\x66\x5c\x66\x5d\x66\x5e\x66\x60\x66\x62\x66\x63\x66\x65\x66\x67\x66\x69\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x71\x66\x72\x66\x73\x66\x75\x66\x78\x66\x79\x66\x7b\x66\x7c\x66\x7d\x66\x7f\x66\x80\x66\x81\x66\x83\x66\x85\x66\x86\x66\x88\x66\x89\x66\x8a\x66\x8b\x66\x8d\x66\x8e\x66\x8f\x66\x90\x66\x92\x66\x93\x66\x94\x66\x95\x66\x98\x66\x99\x66\x9a\x66\x9b\x66\x9c\x66\x9e\x66\x9f\x66\xa0\x66\xa1\x66\xa2\x66\xa3\x66\xa4\x66\xa5\x66\xa6\x66\xa9\x66\xaa\x66\xab\x66\xac\x66\xad\x66\xaf\x66\xb0\x66\xb1\x66\xb2\x66\xb3\x66\xb5\x66\xb6\x66\xb7\x66\xb8\x66\xba\x66\xbb\x66\xbc\x66\xbd\x66\xbf\x66\xc0\x66\xc1\x66\xc2\x66\xc3\x66\xc4\x66\xc5\x66\xc6\x66\xc7\x66\xc8\x66\xc9\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xca\x66\xcb\x66\xcc\x66\xcd\x66\xce\x66\xcf\x66\xd0\x66\xd1\x66\xd2\x66\xd3\x66\xd4\x66\xd5\x66\xd6\x66\xd7\x66\xd8\x66\xda\x66\xde\x66\xdf\x66\xe0\x66\xe1\x66\xe2\x66\xe3\x66\xe4\x66\xe5\x66\xe7\x66\xe8\x66\xea\x66\xeb\x66\xec\x66\xed\x66\xee\x66\xef\x66\xf1\x66\xf5\x66\xf6\x66\xf8\x66\xfa\x66\xfb\x66\xfd\x67\x01\x67\x02\x67\x03\x67\x04\x67\x05\x67\x06\x67\x07\x67\x0c\x67\x0e\x67\x0f\x67\x11\x67\x12\x67\x13\x67\x16\x67\x18\x67\x19\x67\x1a\x67\x1c\x67\x1e\x67\x20\x67\x21\x67\x22\x67\x23\x67\x24", /* 9680 */ "\x00\x00\x67\x25\x67\x27\x67\x29\x67\x2e\x67\x30\x67\x32\x67\x33\x67\x36\x67\x37\x67\x38\x67\x39\x67\x3b\x67\x3c\x67\x3e\x67\x3f\x67\x41\x67\x44\x67\x45\x67\x47\x67\x4a\x67\x4b\x67\x4d\x67\x52\x67\x54\x67\x55\x67\x57\x67\x58\x67\x59\x67\x5a\x67\x5b\x67\x5d\x67\x62\x67\x63\x67\x64\x67\x66\x67\x67\x67\x6b\x67\x6c\x67\x6e\x67\x71\x67\x74\x67\x76\x67\x78\x67\x79\x67\x7a\x67\x7b\x67\x7d\x67\x80\x67\x82\x67\x83\x67\x85\x67\x86\x67\x88\x67\x8a\x67\x8c\x67\x8d\x67\x8e\x67\x8f\x67\x91\x67\x92\x67\x93\x67\x94\x67\x96\x67\x99\x67\x9b\x67\x9f\x67\xa0\x67\xa1\x67\xa4\x67\xa6\x67\xa9\x67\xac\x67\xae\x67\xb1\x67\xb2\x67\xb4\x67\xb9\x67\xba\x67\xbb\x67\xbc\x67\xbd\x67\xbe\x67\xbf\x67\xc0\x67\xc2\x67\xc5\x67\xc6\x67\xc7\x67\xc8\x67\xc9\x67\xca\x67\xcb\x67\xcc\x67\xcd\x67\xce\x67\xd5\x67\xd6\x67\xd7\x67\xdb\x67\xdf\x67\xe1\x67\xe3\x67\xe4\x67\xe6\x67\xe7\x67\xe8\x67\xea\x67\xeb\x67\xed\x67\xee\x67\xf2\x67\xf5\x67\xf6\x67\xf7\x67\xf8\x67\xf9\x67\xfa\x67\xfb\x67\xfc\x67\xfe\x68\x01\x68\x02\x68\x03\x68\x04\x68\x06\x00\x00\x00\x00", /* 9700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x0d\x68\x10\x68\x12\x68\x14\x68\x15\x68\x18\x68\x19\x68\x1a\x68\x1b\x68\x1c\x68\x1e\x68\x1f\x68\x20\x68\x22\x68\x23\x68\x24\x68\x25\x68\x26\x68\x27\x68\x28\x68\x2b\x68\x2c\x68\x2d\x68\x2e\x68\x2f\x68\x30\x68\x31\x68\x34\x68\x35\x68\x36\x68\x3a\x68\x3b\x68\x3f\x68\x47\x68\x4b\x68\x4d\x68\x4f\x68\x52\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x68\x5b\x68\x5c\x68\x5d\x68\x5e\x68\x5f\x68\x6a\x68\x6c\x68\x6d\x68\x6e\x68\x6f\x68\x70\x68\x71\x68\x72\x68\x73\x68\x75\x68\x78\x68\x79\x68\x7a\x68\x7b\x68\x7c", /* 9780 */ "\x00\x00\x68\x7d\x68\x7e\x68\x7f\x68\x80\x68\x82\x68\x84\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x68\x8e\x68\x90\x68\x91\x68\x92\x68\x94\x68\x95\x68\x96\x68\x98\x68\x99\x68\x9a\x68\x9b\x68\x9c\x68\x9d\x68\x9e\x68\x9f\x68\xa0\x68\xa1\x68\xa3\x68\xa4\x68\xa5\x68\xa9\x68\xaa\x68\xab\x68\xac\x68\xae\x68\xb1\x68\xb2\x68\xb4\x68\xb6\x68\xb7\x68\xb8\x68\xb9\x68\xba\x68\xbb\x68\xbc\x68\xbd\x68\xbe\x68\xbf\x68\xc1\x68\xc3\x68\xc4\x68\xc5\x68\xc6\x68\xc7\x68\xc8\x68\xca\x68\xcc\x68\xce\x68\xcf\x68\xd0\x68\xd1\x68\xd3\x68\xd4\x68\xd6\x68\xd7\x68\xd9\x68\xdb\x68\xdc\x68\xdd\x68\xde\x68\xdf\x68\xe1\x68\xe2\x68\xe4\x68\xe5\x68\xe6\x68\xe7\x68\xe8\x68\xe9\x68\xea\x68\xeb\x68\xec\x68\xed\x68\xef\x68\xf2\x68\xf3\x68\xf4\x68\xf6\x68\xf7\x68\xf8\x68\xfb\x68\xfd\x68\xfe\x68\xff\x69\x00\x69\x02\x69\x03\x69\x04\x69\x06\x69\x07\x69\x08\x69\x09\x69\x0a\x69\x0c\x69\x0f\x69\x11\x69\x13\x69\x14\x69\x15\x69\x16\x69\x17\x69\x18\x69\x19\x69\x1a\x69\x1b\x69\x1c\x69\x1d\x69\x1e\x69\x21\x69\x22\x69\x23\x69\x25\x00\x00\x00\x00", /* 9800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x26\x69\x27\x69\x28\x69\x29\x69\x2a\x69\x2b\x69\x2c\x69\x2e\x69\x2f\x69\x31\x69\x32\x69\x33\x69\x35\x69\x36\x69\x37\x69\x38\x69\x3a\x69\x3b\x69\x3c\x69\x3e\x69\x40\x69\x41\x69\x43\x69\x44\x69\x45\x69\x46\x69\x47\x69\x48\x69\x49\x69\x4a\x69\x4b\x69\x4c\x69\x4d\x69\x4e\x69\x4f\x69\x50\x69\x51\x69\x52\x69\x53\x69\x55\x69\x56\x69\x58\x69\x59\x69\x5b\x69\x5c\x69\x5f\x69\x61\x69\x62\x69\x64\x69\x65\x69\x67\x69\x68\x69\x69\x69\x6a\x69\x6c\x69\x6d\x69\x6f\x69\x70\x69\x72\x69\x73\x69\x74\x69\x75\x69\x76", /* 9880 */ "\x00\x00\x69\x7a\x69\x7b\x69\x7d\x69\x7e\x69\x7f\x69\x81\x69\x83\x69\x85\x69\x8a\x69\x8b\x69\x8c\x69\x8e\x69\x8f\x69\x90\x69\x91\x69\x92\x69\x93\x69\x96\x69\x97\x69\x99\x69\x9a\x69\x9d\x69\x9e\x69\x9f\x69\xa0\x69\xa1\x69\xa2\x69\xa3\x69\xa4\x69\xa5\x69\xa6\x69\xa9\x69\xaa\x69\xac\x69\xae\x69\xaf\x69\xb0\x69\xb2\x69\xb3\x69\xb5\x69\xb6\x69\xb8\x69\xb9\x69\xba\x69\xbc\x69\xbd\x69\xbe\x69\xbf\x69\xc0\x69\xc2\x69\xc3\x69\xc4\x69\xc5\x69\xc6\x69\xc7\x69\xc8\x69\xc9\x69\xcb\x69\xcd\x69\xcf\x69\xd1\x69\xd2\x69\xd3\x69\xd5\x69\xd6\x69\xd7\x69\xd8\x69\xd9\x69\xda\x69\xdc\x69\xdd\x69\xde\x69\xe1\x69\xe2\x69\xe3\x69\xe4\x69\xe5\x69\xe6\x69\xe7\x69\xe8\x69\xe9\x69\xea\x69\xeb\x69\xec\x69\xee\x69\xef\x69\xf0\x69\xf1\x69\xf3\x69\xf4\x69\xf5\x69\xf6\x69\xf7\x69\xf8\x69\xf9\x69\xfa\x69\xfb\x69\xfc\x69\xfe\x6a\x00\x6a\x01\x6a\x02\x6a\x03\x6a\x04\x6a\x05\x6a\x06\x6a\x07\x6a\x08\x6a\x09\x6a\x0b\x6a\x0c\x6a\x0d\x6a\x0e\x6a\x0f\x6a\x10\x6a\x11\x6a\x12\x6a\x13\x6a\x14\x6a\x15\x6a\x16\x6a\x19\x6a\x1a\x6a\x1b\x6a\x1c\x00\x00\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1d\x6a\x1e\x6a\x20\x6a\x22\x6a\x23\x6a\x24\x6a\x25\x6a\x26\x6a\x27\x6a\x29\x6a\x2b\x6a\x2c\x6a\x2d\x6a\x2e\x6a\x30\x6a\x32\x6a\x33\x6a\x34\x6a\x36\x6a\x37\x6a\x38\x6a\x39\x6a\x3a\x6a\x3b\x6a\x3c\x6a\x3f\x6a\x40\x6a\x41\x6a\x42\x6a\x43\x6a\x45\x6a\x46\x6a\x48\x6a\x49\x6a\x4a\x6a\x4b\x6a\x4c\x6a\x4d\x6a\x4e\x6a\x4f\x6a\x51\x6a\x52\x6a\x53\x6a\x54\x6a\x55\x6a\x56\x6a\x57\x6a\x5a\x6a\x5c\x6a\x5d\x6a\x5e\x6a\x5f\x6a\x60\x6a\x62\x6a\x63\x6a\x64\x6a\x66\x6a\x67\x6a\x68\x6a\x69\x6a\x6a\x6a\x6b\x6a\x6c", /* 9980 */ "\x00\x00\x6a\x6d\x6a\x6e\x6a\x6f\x6a\x70\x6a\x72\x6a\x73\x6a\x74\x6a\x75\x6a\x76\x6a\x77\x6a\x78\x6a\x7a\x6a\x7b\x6a\x7d\x6a\x7e\x6a\x7f\x6a\x81\x6a\x82\x6a\x83\x6a\x85\x6a\x86\x6a\x87\x6a\x88\x6a\x89\x6a\x8a\x6a\x8b\x6a\x8c\x6a\x8d\x6a\x8f\x6a\x92\x6a\x93\x6a\x94\x6a\x95\x6a\x96\x6a\x98\x6a\x99\x6a\x9a\x6a\x9b\x6a\x9c\x6a\x9d\x6a\x9e\x6a\x9f\x6a\xa1\x6a\xa2\x6a\xa3\x6a\xa4\x6a\xa5\x6a\xa6\x6a\xa7\x6a\xa8\x6a\xaa\x6a\xad\x6a\xae\x6a\xaf\x6a\xb0\x6a\xb1\x6a\xb2\x6a\xb3\x6a\xb4\x6a\xb5\x6a\xb6\x6a\xb7\x6a\xb8\x6a\xb9\x6a\xba\x6a\xbb\x6a\xbc\x6a\xbd\x6a\xbe\x6a\xbf\x6a\xc0\x6a\xc1\x6a\xc2\x6a\xc3\x6a\xc4\x6a\xc5\x6a\xc6\x6a\xc7\x6a\xc8\x6a\xc9\x6a\xca\x6a\xcb\x6a\xcc\x6a\xcd\x6a\xce\x6a\xcf\x6a\xd0\x6a\xd1\x6a\xd2\x6a\xd3\x6a\xd4\x6a\xd5\x6a\xd6\x6a\xd7\x6a\xd8\x6a\xd9\x6a\xda\x6a\xdb\x6a\xdc\x6a\xdd\x6a\xde\x6a\xdf\x6a\xe0\x6a\xe1\x6a\xe2\x6a\xe3\x6a\xe4\x6a\xe5\x6a\xe6\x6a\xe7\x6a\xe8\x6a\xe9\x6a\xea\x6a\xeb\x6a\xec\x6a\xed\x6a\xee\x6a\xef\x6a\xf0\x6a\xf1\x6a\xf2\x6a\xf3\x6a\xf4\x6a\xf5\x6a\xf6\x00\x00\x00\x00", /* 9a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf7\x6a\xf8\x6a\xf9\x6a\xfa\x6a\xfb\x6a\xfc\x6a\xfd\x6a\xfe\x6a\xff\x6b\x00\x6b\x01\x6b\x02\x6b\x03\x6b\x04\x6b\x05\x6b\x06\x6b\x07\x6b\x08\x6b\x09\x6b\x0a\x6b\x0b\x6b\x0c\x6b\x0d\x6b\x0e\x6b\x0f\x6b\x10\x6b\x11\x6b\x12\x6b\x13\x6b\x14\x6b\x15\x6b\x16\x6b\x17\x6b\x18\x6b\x19\x6b\x1a\x6b\x1b\x6b\x1c\x6b\x1d\x6b\x1e\x6b\x1f\x6b\x25\x6b\x26\x6b\x28\x6b\x29\x6b\x2a\x6b\x2b\x6b\x2c\x6b\x2d\x6b\x2e\x6b\x2f\x6b\x30\x6b\x31\x6b\x33\x6b\x34\x6b\x35\x6b\x36\x6b\x38\x6b\x3b\x6b\x3c\x6b\x3d\x6b\x3f\x6b\x40", /* 9a80 */ "\x00\x00\x6b\x41\x6b\x42\x6b\x44\x6b\x45\x6b\x48\x6b\x4a\x6b\x4b\x6b\x4d\x6b\x4e\x6b\x4f\x6b\x50\x6b\x51\x6b\x52\x6b\x53\x6b\x54\x6b\x55\x6b\x56\x6b\x57\x6b\x58\x6b\x5a\x6b\x5b\x6b\x5c\x6b\x5d\x6b\x5e\x6b\x5f\x6b\x60\x6b\x61\x6b\x68\x6b\x69\x6b\x6b\x6b\x6c\x6b\x6d\x6b\x6e\x6b\x6f\x6b\x70\x6b\x71\x6b\x72\x6b\x73\x6b\x74\x6b\x75\x6b\x76\x6b\x77\x6b\x78\x6b\x7a\x6b\x7d\x6b\x7e\x6b\x7f\x6b\x80\x6b\x85\x6b\x88\x6b\x8c\x6b\x8e\x6b\x8f\x6b\x90\x6b\x91\x6b\x94\x6b\x95\x6b\x97\x6b\x98\x6b\x99\x6b\x9c\x6b\x9d\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xa2\x6b\xa3\x6b\xa4\x6b\xa5\x6b\xa6\x6b\xa7\x6b\xa8\x6b\xa9\x6b\xab\x6b\xac\x6b\xad\x6b\xae\x6b\xaf\x6b\xb0\x6b\xb1\x6b\xb2\x6b\xb6\x6b\xb8\x6b\xb9\x6b\xba\x6b\xbb\x6b\xbc\x6b\xbd\x6b\xbe\x6b\xc0\x6b\xc3\x6b\xc4\x6b\xc6\x6b\xc7\x6b\xc8\x6b\xc9\x6b\xca\x6b\xcc\x6b\xce\x6b\xd0\x6b\xd1\x6b\xd8\x6b\xda\x6b\xdc\x6b\xdd\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe2\x6b\xe3\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x6b\xe9\x6b\xec\x6b\xed\x6b\xee\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf4\x6b\xf6\x6b\xf7\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xf8\x6b\xfa\x6b\xfb\x6b\xfc\x6b\xfe\x6b\xff\x6c\x00\x6c\x01\x6c\x02\x6c\x03\x6c\x04\x6c\x08\x6c\x09\x6c\x0a\x6c\x0b\x6c\x0c\x6c\x0e\x6c\x12\x6c\x17\x6c\x1c\x6c\x1d\x6c\x1e\x6c\x20\x6c\x23\x6c\x25\x6c\x2b\x6c\x2c\x6c\x2d\x6c\x31\x6c\x33\x6c\x36\x6c\x37\x6c\x39\x6c\x3a\x6c\x3b\x6c\x3c\x6c\x3e\x6c\x3f\x6c\x43\x6c\x44\x6c\x45\x6c\x48\x6c\x4b\x6c\x4c\x6c\x4d\x6c\x4e\x6c\x4f\x6c\x51\x6c\x52\x6c\x53\x6c\x56\x6c\x58\x6c\x59\x6c\x5a\x6c\x62\x6c\x63\x6c\x65\x6c\x66\x6c\x67\x6c\x6b\x6c\x6c\x6c\x6d\x6c\x6e", /* 9b80 */ "\x00\x00\x6c\x6f\x6c\x71\x6c\x73\x6c\x75\x6c\x77\x6c\x78\x6c\x7a\x6c\x7b\x6c\x7c\x6c\x7f\x6c\x80\x6c\x84\x6c\x87\x6c\x8a\x6c\x8b\x6c\x8d\x6c\x8e\x6c\x91\x6c\x92\x6c\x95\x6c\x96\x6c\x97\x6c\x98\x6c\x9a\x6c\x9c\x6c\x9d\x6c\x9e\x6c\xa0\x6c\xa2\x6c\xa8\x6c\xac\x6c\xaf\x6c\xb0\x6c\xb4\x6c\xb5\x6c\xb6\x6c\xb7\x6c\xba\x6c\xc0\x6c\xc1\x6c\xc2\x6c\xc3\x6c\xc6\x6c\xc7\x6c\xc8\x6c\xcb\x6c\xcd\x6c\xce\x6c\xcf\x6c\xd1\x6c\xd2\x6c\xd8\x6c\xd9\x6c\xda\x6c\xdc\x6c\xdd\x6c\xdf\x6c\xe4\x6c\xe6\x6c\xe7\x6c\xe9\x6c\xec\x6c\xed\x6c\xf2\x6c\xf4\x6c\xf9\x6c\xff\x6d\x00\x6d\x02\x6d\x03\x6d\x05\x6d\x06\x6d\x08\x6d\x09\x6d\x0a\x6d\x0d\x6d\x0f\x6d\x10\x6d\x11\x6d\x13\x6d\x14\x6d\x15\x6d\x16\x6d\x18\x6d\x1c\x6d\x1d\x6d\x1f\x6d\x20\x6d\x21\x6d\x22\x6d\x23\x6d\x24\x6d\x26\x6d\x28\x6d\x29\x6d\x2c\x6d\x2d\x6d\x2f\x6d\x30\x6d\x34\x6d\x36\x6d\x37\x6d\x38\x6d\x3a\x6d\x3f\x6d\x40\x6d\x42\x6d\x44\x6d\x49\x6d\x4c\x6d\x50\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x5b\x6d\x5d\x6d\x5f\x6d\x61\x6d\x62\x6d\x64\x6d\x65\x6d\x67\x6d\x68\x6d\x6b\x00\x00\x00\x00", /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x6c\x6d\x6d\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x75\x6d\x76\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x83\x6d\x84\x6d\x86\x6d\x87\x6d\x8a\x6d\x8b\x6d\x8d\x6d\x8f\x6d\x90\x6d\x92\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9c\x6d\xa2\x6d\xa5\x6d\xac\x6d\xad\x6d\xb0\x6d\xb1\x6d\xb3\x6d\xb4\x6d\xb6\x6d\xb7\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc8\x6d\xc9\x6d\xca\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd7", /* 9c80 */ "\x00\x00\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdf\x6d\xe2\x6d\xe3\x6d\xe5\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xed\x6d\xef\x6d\xf0\x6d\xf2\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf8\x6d\xfa\x6d\xfd\x6d\xfe\x6d\xff\x6e\x00\x6e\x01\x6e\x02\x6e\x03\x6e\x04\x6e\x06\x6e\x07\x6e\x08\x6e\x09\x6e\x0b\x6e\x0f\x6e\x12\x6e\x13\x6e\x15\x6e\x18\x6e\x19\x6e\x1b\x6e\x1c\x6e\x1e\x6e\x1f\x6e\x22\x6e\x26\x6e\x27\x6e\x28\x6e\x2a\x6e\x2c\x6e\x2e\x6e\x30\x6e\x31\x6e\x33\x6e\x35\x6e\x36\x6e\x37\x6e\x39\x6e\x3b\x6e\x3c\x6e\x3d\x6e\x3e\x6e\x3f\x6e\x40\x6e\x41\x6e\x42\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x55\x6e\x57\x6e\x59\x6e\x5a\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6c\x6e\x6d\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x80\x6e\x81\x6e\x82\x6e\x84\x6e\x87\x6e\x88\x6e\x8a\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x91\x6e\x92\x00\x00\x00\x00", /* 9d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9d\x6e\x9e\x6e\xa0\x6e\xa1\x6e\xa3\x6e\xa4\x6e\xa6\x6e\xa8\x6e\xa9\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xb0\x6e\xb3\x6e\xb5\x6e\xb8\x6e\xb9\x6e\xbc\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcc\x6e\xcd\x6e\xce\x6e\xd0\x6e\xd2\x6e\xd6\x6e\xd8\x6e\xd9\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xe3\x6e\xe7\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf5\x6e\xf6\x6e\xf7", /* 9d80 */ "\x00\x00\x6e\xf8\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6e\xff\x6f\x00\x6f\x01\x6f\x03\x6f\x04\x6f\x05\x6f\x07\x6f\x08\x6f\x0a\x6f\x0b\x6f\x0c\x6f\x0d\x6f\x0e\x6f\x10\x6f\x11\x6f\x12\x6f\x16\x6f\x17\x6f\x18\x6f\x19\x6f\x1a\x6f\x1b\x6f\x1c\x6f\x1d\x6f\x1e\x6f\x1f\x6f\x21\x6f\x22\x6f\x23\x6f\x25\x6f\x26\x6f\x27\x6f\x28\x6f\x2c\x6f\x2e\x6f\x30\x6f\x32\x6f\x34\x6f\x35\x6f\x37\x6f\x38\x6f\x39\x6f\x3a\x6f\x3b\x6f\x3c\x6f\x3d\x6f\x3f\x6f\x40\x6f\x41\x6f\x42\x6f\x43\x6f\x44\x6f\x45\x6f\x48\x6f\x49\x6f\x4a\x6f\x4c\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5d\x6f\x5f\x6f\x60\x6f\x61\x6f\x63\x6f\x64\x6f\x65\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6f\x6f\x70\x6f\x71\x6f\x73\x6f\x75\x6f\x76\x6f\x77\x6f\x79\x6f\x7b\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x85\x6f\x86\x6f\x87\x6f\x8a\x6f\x8b\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9d\x6f\x9e\x00\x00\x00\x00", /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x9f\x6f\xa0\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb4\x6f\xb5\x6f\xb7\x6f\xb8\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc1\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xca\x6f\xcb\x6f\xcc\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xdf\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea", /* 9e80 */ "\x00\x00\x6f\xeb\x6f\xec\x6f\xed\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x6f\xff\x70\x00\x70\x01\x70\x02\x70\x03\x70\x04\x70\x05\x70\x06\x70\x07\x70\x08\x70\x09\x70\x0a\x70\x0b\x70\x0c\x70\x0d\x70\x0e\x70\x0f\x70\x10\x70\x12\x70\x13\x70\x14\x70\x15\x70\x16\x70\x17\x70\x18\x70\x19\x70\x1c\x70\x1d\x70\x1e\x70\x1f\x70\x20\x70\x21\x70\x22\x70\x24\x70\x25\x70\x26\x70\x27\x70\x28\x70\x29\x70\x2a\x70\x2b\x70\x2c\x70\x2d\x70\x2e\x70\x2f\x70\x30\x70\x31\x70\x32\x70\x33\x70\x34\x70\x36\x70\x37\x70\x38\x70\x3a\x70\x3b\x70\x3c\x70\x3d\x70\x3e\x70\x3f\x70\x40\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4d\x70\x4e\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6e\x70\x71\x70\x72\x70\x73\x70\x74\x70\x77\x70\x79\x70\x7a\x00\x00\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x7b\x70\x7d\x70\x81\x70\x82\x70\x83\x70\x84\x70\x86\x70\x87\x70\x88\x70\x8b\x70\x8c\x70\x8d\x70\x8f\x70\x90\x70\x91\x70\x93\x70\x97\x70\x98\x70\x9a\x70\x9b\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xb0\x70\xb2\x70\xb4\x70\xb5\x70\xb6\x70\xba\x70\xbe\x70\xbf\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc9\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xda\x70\xdc\x70\xdd\x70\xde", /* 9f80 */ "\x00\x00\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe5\x70\xea\x70\xee\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf8\x70\xfa\x70\xfb\x70\xfc\x70\xfe\x70\xff\x71\x00\x71\x01\x71\x02\x71\x03\x71\x04\x71\x05\x71\x06\x71\x07\x71\x08\x71\x0b\x71\x0c\x71\x0d\x71\x0e\x71\x0f\x71\x11\x71\x12\x71\x14\x71\x17\x71\x1b\x71\x1c\x71\x1d\x71\x1e\x71\x1f\x71\x20\x71\x21\x71\x22\x71\x23\x71\x24\x71\x25\x71\x27\x71\x28\x71\x29\x71\x2a\x71\x2b\x71\x2c\x71\x2d\x71\x2e\x71\x32\x71\x33\x71\x34\x71\x35\x71\x37\x71\x38\x71\x39\x71\x3a\x71\x3b\x71\x3c\x71\x3d\x71\x3e\x71\x3f\x71\x40\x71\x41\x71\x42\x71\x43\x71\x44\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4b\x71\x4d\x71\x4f\x71\x50\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5d\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x65\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6f\x71\x70\x71\x71\x71\x74\x71\x75\x71\x76\x71\x77\x71\x79\x71\x7b\x71\x7c\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x85\x71\x86\x71\x87\x00\x00\x00\x00", /* a000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x88\x71\x89\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x90\x71\x91\x71\x92\x71\x93\x71\x95\x71\x96\x71\x97\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa9\x71\xaa\x71\xab\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb4\x71\xb6\x71\xb7\x71\xb8\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xcf\x71\xd0\x71\xd1\x71\xd2\x71\xd3\x71\xd6", /* a080 */ "\x00\x00\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe6\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x71\xff\x72\x00\x72\x01\x72\x02\x72\x03\x72\x04\x72\x05\x72\x07\x72\x08\x72\x09\x72\x0a\x72\x0b\x72\x0c\x72\x0d\x72\x0e\x72\x0f\x72\x10\x72\x11\x72\x12\x72\x13\x72\x14\x72\x15\x72\x16\x72\x17\x72\x18\x72\x19\x72\x1a\x72\x1b\x72\x1c\x72\x1e\x72\x1f\x72\x20\x72\x21\x72\x22\x72\x23\x72\x24\x72\x25\x72\x26\x72\x27\x72\x29\x72\x2b\x72\x2d\x72\x2e\x72\x2f\x72\x32\x72\x33\x72\x34\x72\x3a\x72\x3c\x72\x3e\x72\x40\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x49\x72\x4a\x72\x4b\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x53\x72\x54\x72\x55\x72\x57\x72\x58\x72\x5a\x72\x5c\x72\x5e\x72\x60\x72\x63\x72\x64\x72\x65\x72\x68\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x70\x72\x71\x72\x73\x72\x74\x72\x76\x72\x77\x72\x78\x72\x7b\x72\x7c\x00\x00\x00\x00", /* a100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x7d\x72\x82\x72\x83\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8c\x72\x8e\x72\x90\x72\x91\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xae\x72\xb1\x72\xb2\x72\xb3\x72\xb5\x72\xba\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc5\x72\xc6\x72\xc7\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcf\x72\xd1\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd8\x72\xda", /* a180 */ "\x00\x00\x72\xdb\x72\xdc\x72\xdd\x72\xdf\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xea\x72\xeb\x72\xf5\x72\xf6\x72\xf9\x72\xfd\x72\xfe\x72\xff\x73\x00\x73\x02\x73\x04\x73\x05\x73\x06\x73\x07\x73\x08\x73\x09\x73\x0b\x73\x0c\x73\x0d\x73\x0f\x73\x10\x73\x11\x73\x12\x73\x14\x73\x18\x73\x19\x73\x1a\x73\x1f\x73\x20\x73\x23\x73\x24\x73\x26\x73\x27\x73\x28\x73\x2d\x73\x2f\x73\x30\x73\x32\x73\x33\x73\x35\x73\x36\x73\x3a\x73\x3b\x73\x3c\x73\x3d\x73\x40\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4e\x73\x4f\x73\x51\x73\x53\x73\x54\x73\x55\x73\x56\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6e\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c\x73\x7d\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x85\x73\x86\x73\x88\x73\x8a\x73\x8c\x73\x8d\x73\x8f\x73\x90\x73\x92\x73\x93\x73\x94\x00\x00\x00\x00", /* a200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x95\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9c\x73\x9d\x73\x9e\x73\xa0\x73\xa1\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xaa\x73\xac\x73\xad\x73\xb1\x73\xb4\x73\xb5\x73\xb6\x73\xb8\x73\xb9\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc1\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xcb\x73\xcc\x73\xce\x73\xd2\x73\xd3\x73\xd4\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xdf\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe6\x73\xe8\x73\xea\x73\xeb\x73\xec\x73\xee\x73\xef\x73\xf0\x73\xf1", /* a280 */ "\x00\x00\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc\x73\xfd\x73\xfe\x73\xff\x74\x00\x74\x01\x74\x02\x74\x04\x74\x07\x74\x08\x74\x0b\x74\x0c\x74\x0d\x74\x0e\x74\x11\x74\x12\x74\x13\x74\x14\x74\x15\x74\x16\x74\x17\x74\x18\x74\x19\x74\x1c\x74\x1d\x74\x1e\x74\x1f\x74\x20\x74\x21\x74\x23\x74\x24\x74\x27\x74\x29\x74\x2b\x74\x2d\x74\x2f\x74\x31\x74\x32\x74\x37\x74\x38\x74\x39\x74\x3a\x74\x3b\x74\x3d\x74\x3e\x74\x3f\x74\x40\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x56\x74\x58\x74\x5d\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6e\x74\x6f\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7f\x74\x82\x74\x84\x74\x85\x74\x86\x74\x88\x74\x89\x74\x8a\x74\x8c\x74\x8d\x74\x8f\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96\x74\x97\x74\x98\x74\x99\x74\x9a\x00\x00\x00\x00", /* a300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x9b\x74\x9d\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xbb\x74\xbc\x74\xbd\x74\xbe\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdd\x74\xdf\x74\xe1\x74\xe5\x74\xe7", /* a380 */ "\x00\x00\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf5\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x00\x75\x01\x75\x02\x75\x03\x75\x05\x75\x06\x75\x07\x75\x08\x75\x09\x75\x0a\x75\x0b\x75\x0c\x75\x0e\x75\x10\x75\x12\x75\x14\x75\x15\x75\x16\x75\x17\x75\x1b\x75\x1d\x75\x1e\x75\x20\x75\x21\x75\x22\x75\x23\x75\x24\x75\x26\x75\x27\x75\x2a\x75\x2e\x75\x34\x75\x36\x75\x39\x75\x3c\x75\x3d\x75\x3f\x75\x41\x75\x42\x75\x43\x75\x44\x75\x46\x75\x47\x75\x49\x75\x4a\x75\x4d\x75\x50\x75\x51\x75\x52\x75\x53\x75\x55\x75\x56\x75\x57\x75\x58\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x67\x75\x68\x75\x69\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x73\x75\x75\x75\x76\x75\x77\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x80\x75\x81\x75\x82\x75\x84\x75\x85\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8c\x75\x8d\x75\x8e\x75\x90\x75\x93\x75\x95\x75\x98\x75\x9b\x75\x9c\x75\x9e\x75\xa2\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xad\x00\x00\x00\x00", /* a400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xb6\x75\xb7\x75\xba\x75\xbb\x75\xbf\x75\xc0\x75\xc1\x75\xc6\x75\xcb\x75\xcc\x75\xce\x75\xcf\x75\xd0\x75\xd1\x75\xd3\x75\xd7\x75\xd9\x75\xda\x75\xdc\x75\xdd\x75\xdf\x75\xe0\x75\xe1\x75\xe5\x75\xe9\x75\xec\x75\xed\x75\xee\x75\xef\x75\xf2\x75\xf3\x75\xf5\x75\xf6\x75\xf7\x75\xf8\x75\xfa\x75\xfb\x75\xfd\x75\xfe\x76\x02\x76\x04\x76\x06\x76\x07\x76\x08\x76\x09\x76\x0b\x76\x0d\x76\x0e\x76\x0f\x76\x11\x76\x12\x76\x13\x76\x14\x76\x16\x76\x1a\x76\x1c\x76\x1d\x76\x1e\x76\x21\x76\x23\x76\x27\x76\x28\x76\x2c", /* a480 */ "\x00\x00\x76\x2e\x76\x2f\x76\x31\x76\x32\x76\x36\x76\x37\x76\x39\x76\x3a\x76\x3b\x76\x3d\x76\x41\x76\x42\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x55\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5d\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6c\x76\x6d\x76\x6e\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x79\x76\x7a\x76\x7c\x76\x7f\x76\x80\x76\x81\x76\x83\x76\x85\x76\x89\x76\x8a\x76\x8c\x76\x8d\x76\x8f\x76\x90\x76\x92\x76\x94\x76\x95\x76\x97\x76\x98\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xaf\x76\xb0\x76\xb3\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xc0\x76\xc1\x76\xc3\x76\xc4\x76\xc7\x76\xc9\x76\xcb\x76\xcc\x76\xd3\x76\xd5\x76\xd9\x76\xda\x76\xdc\x76\xdd\x76\xde\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x00\x00\x00\x00", /* a500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\xe4\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xf0\x76\xf3\x76\xf5\x76\xf6\x76\xf7\x76\xfa\x76\xfb\x76\xfd\x76\xff\x77\x00\x77\x02\x77\x03\x77\x05\x77\x06\x77\x0a\x77\x0c\x77\x0e\x77\x0f\x77\x10\x77\x11\x77\x12\x77\x13\x77\x14\x77\x15\x77\x16\x77\x17\x77\x18\x77\x1b\x77\x1c\x77\x1d\x77\x1e\x77\x21\x77\x23\x77\x24\x77\x25\x77\x27\x77\x2a\x77\x2b\x77\x2c\x77\x2e\x77\x30\x77\x31\x77\x32\x77\x33\x77\x34\x77\x39\x77\x3b\x77\x3d\x77\x3e\x77\x3f\x77\x42\x77\x44\x77\x45\x77\x46", /* a580 */ "\x00\x00\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x64\x77\x67\x77\x69\x77\x6a\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x7a\x77\x7b\x77\x7c\x77\x81\x77\x82\x77\x83\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8f\x77\x90\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\xa1\x77\xa3\x77\xa4\x77\xa6\x77\xa8\x77\xab\x77\xad\x77\xae\x77\xaf\x77\xb1\x77\xb2\x77\xb4\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbc\x77\xbe\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd8\x77\xd9\x77\xda\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe4\x77\xe6\x77\xe8\x77\xea\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf4\x77\xf5\x77\xf7\x77\xf9\x77\xfa\x00\x00\x00\x00", /* a600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xfb\x77\xfc\x78\x03\x78\x04\x78\x05\x78\x06\x78\x07\x78\x08\x78\x0a\x78\x0b\x78\x0e\x78\x0f\x78\x10\x78\x13\x78\x15\x78\x19\x78\x1b\x78\x1e\x78\x20\x78\x21\x78\x22\x78\x24\x78\x28\x78\x2a\x78\x2b\x78\x2e\x78\x2f\x78\x31\x78\x32\x78\x33\x78\x35\x78\x36\x78\x3d\x78\x3f\x78\x41\x78\x42\x78\x43\x78\x44\x78\x46\x78\x48\x78\x49\x78\x4a\x78\x4b\x78\x4d\x78\x4f\x78\x51\x78\x53\x78\x54\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67", /* a680 */ "\x00\x00\x78\x68\x78\x69\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7d\x78\x7e\x78\x7f\x78\x80\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x88\x78\x8a\x78\x8b\x78\x8f\x78\x90\x78\x92\x78\x94\x78\x95\x78\x96\x78\x99\x78\x9d\x78\x9e\x78\xa0\x78\xa2\x78\xa4\x78\xa6\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbf\x78\xc0\x78\xc2\x78\xc3\x78\xc4\x78\xc6\x78\xc7\x78\xc8\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd1\x78\xd2\x78\xd3\x78\xd6\x78\xd7\x78\xd8\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe9\x78\xea\x78\xeb\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf3\x78\xf5\x78\xf6\x78\xf8\x78\xf9\x78\xfb\x78\xfc\x78\xfd\x78\xfe\x78\xff\x79\x00\x79\x02\x79\x03\x79\x04\x79\x06\x79\x07\x79\x08\x79\x09\x79\x0a\x79\x0b\x79\x0c\x79\x0d\x79\x0e\x79\x0f\x79\x10\x79\x11\x79\x12\x79\x14\x79\x15\x00\x00\x00\x00", /* a700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x16\x79\x17\x79\x18\x79\x19\x79\x1a\x79\x1b\x79\x1c\x79\x1d\x79\x1f\x79\x20\x79\x21\x79\x22\x79\x23\x79\x25\x79\x26\x79\x27\x79\x28\x79\x29\x79\x2a\x79\x2b\x79\x2c\x79\x2d\x79\x2e\x79\x2f\x79\x30\x79\x31\x79\x32\x79\x33\x79\x35\x79\x36\x79\x37\x79\x38\x79\x39\x79\x3d\x79\x3f\x79\x42\x79\x43\x79\x44\x79\x45\x79\x47\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x54\x79\x55\x79\x58\x79\x59\x79\x61\x79\x63\x79\x64\x79\x66\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6e\x79\x70", /* a780 */ "\x00\x00\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x79\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x82\x79\x83\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8b\x79\x8c\x79\x8d\x79\x8e\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xbc\x79\xbf\x79\xc2\x79\xc4\x79\xc5\x79\xc7\x79\xc8\x79\xca\x79\xcc\x79\xce\x79\xcf\x79\xd0\x79\xd3\x79\xd4\x79\xd6\x79\xd7\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xe0\x79\xe1\x79\xe2\x79\xe5\x79\xe8\x79\xea\x79\xec\x79\xee\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf9\x79\xfa\x79\xfc\x79\xfe\x79\xff\x7a\x01\x7a\x04\x7a\x05\x7a\x07\x7a\x08\x7a\x09\x7a\x0a\x7a\x0c\x7a\x0f\x7a\x10\x7a\x11\x7a\x12\x7a\x13\x7a\x15\x7a\x16\x7a\x18\x7a\x19\x7a\x1b\x7a\x1c\x7a\x1d\x7a\x1f\x7a\x21\x7a\x22\x00\x00\x00\x00", /* a800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x24\x7a\x25\x7a\x26\x7a\x27\x7a\x28\x7a\x29\x7a\x2a\x7a\x2b\x7a\x2c\x7a\x2d\x7a\x2e\x7a\x2f\x7a\x30\x7a\x31\x7a\x32\x7a\x34\x7a\x35\x7a\x36\x7a\x38\x7a\x3a\x7a\x3e\x7a\x40\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c", /* a880 */ "\x00\x00\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x71\x7a\x72\x7a\x73\x7a\x75\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x82\x7a\x85\x7a\x87\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8e\x7a\x8f\x7a\x90\x7a\x93\x7a\x94\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9e\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa7\x7a\xa9\x7a\xaa\x7a\xab\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd7\x7a\xd8\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xe1\x7a\xe2\x7a\xe4\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xee\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xfb\x7a\xfc\x7a\xfe\x7b\x00\x7b\x01\x7b\x02\x7b\x05\x7b\x07\x7b\x09\x7b\x0c\x7b\x0d\x7b\x0e\x7b\x10\x7b\x12\x7b\x13\x7b\x16\x7b\x17\x7b\x18\x7b\x1a\x7b\x1c\x7b\x1d\x7b\x1f\x7b\x21\x7b\x22\x7b\x23\x7b\x27\x7b\x29\x7b\x2d\x00\x00\x00\x00", /* a900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x2f\x7b\x30\x7b\x32\x7b\x34\x7b\x35\x7b\x36\x7b\x37\x7b\x39\x7b\x3b\x7b\x3d\x7b\x3f\x7b\x40\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x46\x7b\x48\x7b\x4a\x7b\x4d\x7b\x4e\x7b\x53\x7b\x55\x7b\x57\x7b\x59\x7b\x5c\x7b\x5e\x7b\x5f\x7b\x61\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6f\x7b\x70\x7b\x73\x7b\x74\x7b\x76\x7b\x78\x7b\x7a\x7b\x7c\x7b\x7d\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8e\x7b\x8f", /* a980 */ "\x00\x00\x7b\x91\x7b\x92\x7b\x93\x7b\x96\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb2\x7b\xb3\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd2\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xdb\x7b\xdc\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xeb\x7b\xec\x7b\xed\x7b\xef\x7b\xf0\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfd\x7b\xff\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x7c\x04\x7c\x05\x7c\x06\x7c\x08\x7c\x09\x7c\x0a\x7c\x0d\x7c\x0e\x7c\x10\x7c\x11\x7c\x12\x7c\x13\x7c\x14\x7c\x15\x7c\x17\x7c\x18\x7c\x19\x7c\x1a\x7c\x1b\x7c\x1c\x7c\x1d\x7c\x1e\x7c\x20\x7c\x21\x7c\x22\x7c\x23\x7c\x24\x7c\x25\x7c\x28\x7c\x29\x7c\x2b\x7c\x2c\x7c\x2d\x7c\x2e\x7c\x2f\x7c\x30\x7c\x31\x7c\x32\x7c\x33\x7c\x34\x7c\x35\x7c\x36\x7c\x37\x7c\x39\x7c\x3a\x7c\x3b\x00\x00\x00\x00", /* aa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x3c\x7c\x3d\x7c\x3e\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7e\x7c\x7f\x7c\x80\x7c\x81\x7c\x82\x7c\x83", /* aa80 */ "\x00\x00\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x93\x7c\x94\x7c\x96\x7c\x99\x7c\x9a\x7c\x9b\x7c\xa0\x7c\xa1\x7c\xa3\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xab\x7c\xac\x7c\xad\x7c\xaf\x7c\xb0\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xba\x7c\xbb\x7c\xbf\x7c\xc0\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc6\x7c\xc9\x7c\xcb\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd8\x7c\xda\x7c\xdb\x7c\xdd\x7c\xde\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf9\x7c\xfa\x7c\xfc\x7c\xfd\x7c\xfe\x7c\xff\x7d\x00\x7d\x01\x7d\x02\x7d\x03\x7d\x04\x7d\x05\x7d\x06\x7d\x07\x7d\x08\x7d\x09\x7d\x0b\x7d\x0c\x7d\x0d\x7d\x0e\x7d\x0f\x7d\x10\x7d\x11\x7d\x12\x7d\x13\x7d\x14\x7d\x15\x7d\x16\x7d\x17\x7d\x18\x7d\x19\x7d\x1a\x7d\x1b\x7d\x1c\x7d\x1d\x7d\x1e\x7d\x1f\x7d\x21\x7d\x23\x7d\x24\x7d\x25\x7d\x26\x7d\x28\x7d\x29\x7d\x2a\x7d\x2c\x7d\x2d\x00\x00\x00\x00", /* ab00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x2e\x7d\x30\x7d\x31\x7d\x32\x7d\x33\x7d\x34\x7d\x35\x7d\x36\x7d\x37\x7d\x38\x7d\x39\x7d\x3a\x7d\x3b\x7d\x3c\x7d\x3d\x7d\x3e\x7d\x3f\x7d\x40\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d", /* ab80 */ "\x00\x00\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x80\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x00\x00\x00\x00", /* ac00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7d\xfe\x7d\xff\x7e\x00\x7e\x01\x7e\x02\x7e\x03\x7e\x04\x7e\x05\x7e\x06\x7e\x07\x7e\x08\x7e\x09\x7e\x0a\x7e\x0b\x7e\x0c\x7e\x0d\x7e\x0e\x7e\x0f\x7e\x10\x7e\x11\x7e\x12\x7e\x13\x7e\x14\x7e\x15\x7e\x16\x7e\x17\x7e\x18\x7e\x19\x7e\x1a\x7e\x1b\x7e\x1c\x7e\x1d\x7e\x1e\x7e\x1f\x7e\x20\x7e\x21\x7e\x22\x7e\x23\x7e\x24\x7e\x25\x7e\x26\x7e\x27\x7e\x28\x7e\x29\x7e\x2a\x7e\x2b\x7e\x2c\x7e\x2d", /* ac80 */ "\x00\x00\x7e\x2e\x7e\x2f\x7e\x30\x7e\x31\x7e\x32\x7e\x33\x7e\x34\x7e\x35\x7e\x36\x7e\x37\x7e\x38\x7e\x39\x7e\x3a\x7e\x3c\x7e\x3d\x7e\x3e\x7e\x3f\x7e\x40\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x80\x7e\x81\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9c\x7e\x9d\x7e\x9e\x7e\xae\x7e\xb4\x7e\xbb\x7e\xbc\x7e\xd6\x7e\xe4\x7e\xec\x7e\xf9\x7f\x0a\x7f\x10\x7f\x1e\x7f\x37\x7f\x39\x7f\x3b\x7f\x3c\x7f\x3d\x7f\x3e\x00\x00\x00\x00", /* ad00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x3f\x7f\x40\x7f\x41\x7f\x43\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x52\x7f\x53\x7f\x56\x7f\x59\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x60\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6f\x7f\x70\x7f\x73\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7f\x7f\x80\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8b\x7f\x8d\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x95\x7f\x96\x7f\x97\x7f\x98", /* ad80 */ "\x00\x00\x7f\x99\x7f\x9b\x7f\x9c\x7f\xa0\x7f\xa2\x7f\xa3\x7f\xa5\x7f\xa6\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xb1\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xba\x7f\xbb\x7f\xbe\x7f\xc0\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xcb\x7f\xcd\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd6\x7f\xd7\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe7\x7f\xe8\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xef\x7f\xf2\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfd\x7f\xfe\x7f\xff\x80\x02\x80\x07\x80\x08\x80\x09\x80\x0a\x80\x0e\x80\x0f\x80\x11\x80\x13\x80\x1a\x80\x1b\x80\x1d\x80\x1e\x80\x1f\x80\x21\x80\x23\x80\x24\x80\x2b\x80\x2c\x80\x2d\x80\x2e\x80\x2f\x80\x30\x80\x32\x80\x34\x80\x39\x80\x3a\x80\x3c\x80\x3e\x80\x40\x80\x41\x80\x44\x80\x45\x80\x47\x80\x48\x80\x49\x80\x4e\x80\x4f\x80\x50\x80\x51\x80\x53\x80\x55\x80\x56\x80\x57\x80\x59\x80\x5b\x80\x5c\x80\x5d\x80\x5e\x80\x5f\x80\x60\x80\x61\x80\x62\x80\x63\x80\x64\x80\x65\x80\x66\x00\x00\x00\x00", /* ae00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x67\x80\x68\x80\x6b\x80\x6c\x80\x6d\x80\x6e\x80\x6f\x80\x70\x80\x72\x80\x73\x80\x74\x80\x75\x80\x76\x80\x77\x80\x78\x80\x79\x80\x7a\x80\x7b\x80\x7c\x80\x7d\x80\x7e\x80\x81\x80\x82\x80\x85\x80\x88\x80\x8a\x80\x8d\x80\x8e\x80\x8f\x80\x90\x80\x91\x80\x92\x80\x94\x80\x95\x80\x97\x80\x99\x80\x9e\x80\xa3\x80\xa6\x80\xa7\x80\xa8\x80\xac\x80\xb0\x80\xb3\x80\xb5\x80\xb6\x80\xb8\x80\xb9\x80\xbb\x80\xc5\x80\xc7\x80\xc8\x80\xc9\x80\xca\x80\xcb\x80\xcf\x80\xd0\x80\xd1\x80\xd2\x80\xd3\x80\xd4\x80\xd5\x80\xd8", /* ae80 */ "\x00\x00\x80\xdf\x80\xe0\x80\xe2\x80\xe3\x80\xe6\x80\xee\x80\xf5\x80\xf7\x80\xf9\x80\xfb\x80\xfe\x80\xff\x81\x00\x81\x01\x81\x03\x81\x04\x81\x05\x81\x07\x81\x08\x81\x0b\x81\x0c\x81\x15\x81\x17\x81\x19\x81\x1b\x81\x1c\x81\x1d\x81\x1f\x81\x20\x81\x21\x81\x22\x81\x23\x81\x24\x81\x25\x81\x26\x81\x27\x81\x28\x81\x29\x81\x2a\x81\x2b\x81\x2d\x81\x2e\x81\x30\x81\x33\x81\x34\x81\x35\x81\x37\x81\x39\x81\x3a\x81\x3b\x81\x3c\x81\x3d\x81\x3f\x81\x40\x81\x41\x81\x42\x81\x43\x81\x44\x81\x45\x81\x47\x81\x49\x81\x4d\x81\x4e\x81\x4f\x81\x52\x81\x56\x81\x57\x81\x58\x81\x5b\x81\x5c\x81\x5d\x81\x5e\x81\x5f\x81\x61\x81\x62\x81\x63\x81\x64\x81\x66\x81\x68\x81\x6a\x81\x6b\x81\x6c\x81\x6f\x81\x72\x81\x73\x81\x75\x81\x76\x81\x77\x81\x78\x81\x81\x81\x83\x81\x84\x81\x85\x81\x86\x81\x87\x81\x89\x81\x8b\x81\x8c\x81\x8d\x81\x8e\x81\x90\x81\x92\x81\x93\x81\x94\x81\x95\x81\x96\x81\x97\x81\x99\x81\x9a\x81\x9e\x81\x9f\x81\xa0\x81\xa1\x81\xa2\x81\xa4\x81\xa5\x81\xa7\x81\xa9\x81\xab\x81\xac\x81\xad\x81\xae\x81\xaf\x81\xb0\x81\xb1\x00\x00\x00\x00", /* af00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xb2\x81\xb4\x81\xb5\x81\xb6\x81\xb7\x81\xb8\x81\xb9\x81\xbc\x81\xbd\x81\xbe\x81\xbf\x81\xc4\x81\xc5\x81\xc7\x81\xc8\x81\xc9\x81\xcb\x81\xcd\x81\xce\x81\xcf\x81\xd0\x81\xd1\x81\xd2\x81\xd3\x81\xd4\x81\xd5\x81\xd6\x81\xd7\x81\xd8\x81\xd9\x81\xda\x81\xdb\x81\xdc\x81\xdd\x81\xde\x81\xdf\x81\xe0\x81\xe1\x81\xe2\x81\xe4\x81\xe5\x81\xe6\x81\xe8\x81\xe9\x81\xeb\x81\xee\x81\xef\x81\xf0\x81\xf1\x81\xf2\x81\xf5\x81\xf6\x81\xf7\x81\xf8\x81\xf9\x81\xfa\x81\xfd\x81\xff\x82\x03\x82\x07\x82\x08\x82\x09\x82\x0a", /* af80 */ "\x00\x00\x82\x0b\x82\x0e\x82\x0f\x82\x11\x82\x13\x82\x15\x82\x16\x82\x17\x82\x18\x82\x19\x82\x1a\x82\x1d\x82\x20\x82\x24\x82\x25\x82\x26\x82\x27\x82\x29\x82\x2e\x82\x32\x82\x3a\x82\x3c\x82\x3d\x82\x3f\x82\x40\x82\x41\x82\x42\x82\x43\x82\x45\x82\x46\x82\x48\x82\x4a\x82\x4c\x82\x4d\x82\x4e\x82\x50\x82\x51\x82\x52\x82\x53\x82\x54\x82\x55\x82\x56\x82\x57\x82\x59\x82\x5b\x82\x5c\x82\x5d\x82\x5e\x82\x60\x82\x61\x82\x62\x82\x63\x82\x64\x82\x65\x82\x66\x82\x67\x82\x69\x82\x6a\x82\x6b\x82\x6c\x82\x6d\x82\x71\x82\x75\x82\x76\x82\x77\x82\x78\x82\x7b\x82\x7c\x82\x80\x82\x81\x82\x83\x82\x85\x82\x86\x82\x87\x82\x89\x82\x8c\x82\x90\x82\x93\x82\x94\x82\x95\x82\x96\x82\x9a\x82\x9b\x82\x9e\x82\xa0\x82\xa2\x82\xa3\x82\xa7\x82\xb2\x82\xb5\x82\xb6\x82\xba\x82\xbb\x82\xbc\x82\xbf\x82\xc0\x82\xc2\x82\xc3\x82\xc5\x82\xc6\x82\xc9\x82\xd0\x82\xd6\x82\xd9\x82\xda\x82\xdd\x82\xe2\x82\xe7\x82\xe8\x82\xe9\x82\xea\x82\xec\x82\xed\x82\xee\x82\xf0\x82\xf2\x82\xf3\x82\xf5\x82\xf6\x82\xf8\x82\xfa\x82\xfc\x82\xfd\x82\xfe\x82\xff\x00\x00\x00\x00", /* b000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x83\x0a\x83\x0b\x83\x0d\x83\x10\x83\x12\x83\x13\x83\x16\x83\x18\x83\x19\x83\x1d\x83\x1e\x83\x1f\x83\x20\x83\x21\x83\x22\x83\x23\x83\x24\x83\x25\x83\x26\x83\x29\x83\x2a\x83\x2e\x83\x30\x83\x32\x83\x37\x83\x3b\x83\x3d\x83\x3e\x83\x3f\x83\x41\x83\x42\x83\x44\x83\x45\x83\x48\x83\x4a\x83\x4b\x83\x4c\x83\x4d\x83\x4e\x83\x53\x83\x55\x83\x56\x83\x57\x83\x58\x83\x59\x83\x5d\x83\x62\x83\x70\x83\x71\x83\x72\x83\x73\x83\x74\x83\x75\x83\x76\x83\x79\x83\x7a\x83\x7e\x83\x7f\x83\x80\x83\x81\x83\x82\x83\x83", /* b080 */ "\x00\x00\x83\x84\x83\x87\x83\x88\x83\x8a\x83\x8b\x83\x8c\x83\x8d\x83\x8f\x83\x90\x83\x91\x83\x94\x83\x95\x83\x96\x83\x97\x83\x99\x83\x9a\x83\x9d\x83\x9f\x83\xa1\x83\xa2\x83\xa3\x83\xa4\x83\xa5\x83\xa6\x83\xa7\x83\xac\x83\xad\x83\xae\x83\xaf\x83\xb5\x83\xbb\x83\xbe\x83\xbf\x83\xc2\x83\xc3\x83\xc4\x83\xc6\x83\xc8\x83\xc9\x83\xcb\x83\xcd\x83\xce\x83\xd0\x83\xd1\x83\xd2\x83\xd3\x83\xd5\x83\xd7\x83\xd9\x83\xda\x83\xdb\x83\xde\x83\xe2\x83\xe3\x83\xe4\x83\xe6\x83\xe7\x83\xe8\x83\xeb\x83\xec\x83\xed\x83\xee\x83\xef\x83\xf3\x83\xf4\x83\xf5\x83\xf6\x83\xf7\x83\xfa\x83\xfb\x83\xfc\x83\xfe\x83\xff\x84\x00\x84\x02\x84\x05\x84\x07\x84\x08\x84\x09\x84\x0a\x84\x10\x84\x12\x84\x13\x84\x14\x84\x15\x84\x16\x84\x17\x84\x19\x84\x1a\x84\x1b\x84\x1e\x84\x1f\x84\x20\x84\x21\x84\x22\x84\x23\x84\x29\x84\x2a\x84\x2b\x84\x2c\x84\x2d\x84\x2e\x84\x2f\x84\x30\x84\x32\x84\x33\x84\x34\x84\x35\x84\x36\x84\x37\x84\x39\x84\x3a\x84\x3b\x84\x3e\x84\x3f\x84\x40\x84\x41\x84\x42\x84\x43\x84\x44\x84\x45\x84\x47\x84\x48\x84\x49\x84\x4a\x00\x00\x00\x00", /* b100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x4b\x84\x4c\x84\x4d\x84\x4e\x84\x4f\x84\x50\x84\x52\x84\x53\x84\x54\x84\x55\x84\x56\x84\x58\x84\x5d\x84\x5e\x84\x5f\x84\x60\x84\x62\x84\x64\x84\x65\x84\x66\x84\x67\x84\x68\x84\x6a\x84\x6e\x84\x6f\x84\x70\x84\x72\x84\x74\x84\x77\x84\x79\x84\x7b\x84\x7c\x84\x7d\x84\x7e\x84\x7f\x84\x80\x84\x81\x84\x83\x84\x84\x84\x85\x84\x86\x84\x8a\x84\x8d\x84\x8f\x84\x90\x84\x91\x84\x92\x84\x93\x84\x94\x84\x95\x84\x96\x84\x98\x84\x9a\x84\x9b\x84\x9d\x84\x9e\x84\x9f\x84\xa0\x84\xa2\x84\xa3\x84\xa4\x84\xa5\x84\xa6", /* b180 */ "\x00\x00\x84\xa7\x84\xa8\x84\xa9\x84\xaa\x84\xab\x84\xac\x84\xad\x84\xae\x84\xb0\x84\xb1\x84\xb3\x84\xb5\x84\xb6\x84\xb7\x84\xbb\x84\xbc\x84\xbe\x84\xc0\x84\xc2\x84\xc3\x84\xc5\x84\xc6\x84\xc7\x84\xc8\x84\xcb\x84\xcc\x84\xce\x84\xcf\x84\xd2\x84\xd4\x84\xd5\x84\xd7\x84\xd8\x84\xd9\x84\xda\x84\xdb\x84\xdc\x84\xde\x84\xe1\x84\xe2\x84\xe4\x84\xe7\x84\xe8\x84\xe9\x84\xea\x84\xeb\x84\xed\x84\xee\x84\xef\x84\xf1\x84\xf2\x84\xf3\x84\xf4\x84\xf5\x84\xf6\x84\xf7\x84\xf8\x84\xf9\x84\xfa\x84\xfb\x84\xfd\x84\xfe\x85\x00\x85\x01\x85\x02\x85\x03\x85\x04\x85\x05\x85\x06\x85\x07\x85\x08\x85\x09\x85\x0a\x85\x0b\x85\x0d\x85\x0e\x85\x0f\x85\x10\x85\x12\x85\x14\x85\x15\x85\x16\x85\x18\x85\x19\x85\x1b\x85\x1c\x85\x1d\x85\x1e\x85\x20\x85\x22\x85\x23\x85\x24\x85\x25\x85\x26\x85\x27\x85\x28\x85\x29\x85\x2a\x85\x2d\x85\x2e\x85\x2f\x85\x30\x85\x31\x85\x32\x85\x33\x85\x34\x85\x35\x85\x36\x85\x3e\x85\x3f\x85\x40\x85\x41\x85\x42\x85\x44\x85\x45\x85\x46\x85\x47\x85\x4b\x85\x4c\x85\x4d\x85\x4e\x85\x4f\x85\x50\x85\x51\x85\x52\x00\x00\x00\x00", /* b200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x53\x85\x54\x85\x55\x85\x57\x85\x58\x85\x5a\x85\x5b\x85\x5c\x85\x5d\x85\x5f\x85\x60\x85\x61\x85\x62\x85\x63\x85\x65\x85\x66\x85\x67\x85\x69\x85\x6a\x85\x6b\x85\x6c\x85\x6d\x85\x6e\x85\x6f\x85\x70\x85\x71\x85\x73\x85\x75\x85\x76\x85\x77\x85\x78\x85\x7c\x85\x7d\x85\x7f\x85\x80\x85\x81\x85\x82\x85\x83\x85\x86\x85\x88\x85\x89\x85\x8a\x85\x8b\x85\x8c\x85\x8d\x85\x8e\x85\x90\x85\x91\x85\x92\x85\x93\x85\x94\x85\x95\x85\x96\x85\x97\x85\x98\x85\x99\x85\x9a\x85\x9d\x85\x9e\x85\x9f\x85\xa0\x85\xa1\x85\xa2", /* b280 */ "\x00\x00\x85\xa3\x85\xa5\x85\xa6\x85\xa7\x85\xa9\x85\xab\x85\xac\x85\xad\x85\xb1\x85\xb2\x85\xb3\x85\xb4\x85\xb5\x85\xb6\x85\xb8\x85\xba\x85\xbb\x85\xbc\x85\xbd\x85\xbe\x85\xbf\x85\xc0\x85\xc2\x85\xc3\x85\xc4\x85\xc5\x85\xc6\x85\xc7\x85\xc8\x85\xca\x85\xcb\x85\xcc\x85\xcd\x85\xce\x85\xd1\x85\xd2\x85\xd4\x85\xd6\x85\xd7\x85\xd8\x85\xd9\x85\xda\x85\xdb\x85\xdd\x85\xde\x85\xdf\x85\xe0\x85\xe1\x85\xe2\x85\xe3\x85\xe5\x85\xe6\x85\xe7\x85\xe8\x85\xea\x85\xeb\x85\xec\x85\xed\x85\xee\x85\xef\x85\xf0\x85\xf1\x85\xf2\x85\xf3\x85\xf4\x85\xf5\x85\xf6\x85\xf7\x85\xf8\x85\xf9\x85\xfa\x85\xfc\x85\xfd\x85\xfe\x86\x00\x86\x01\x86\x02\x86\x03\x86\x04\x86\x06\x86\x07\x86\x08\x86\x09\x86\x0a\x86\x0b\x86\x0c\x86\x0d\x86\x0e\x86\x0f\x86\x10\x86\x12\x86\x13\x86\x14\x86\x15\x86\x17\x86\x18\x86\x19\x86\x1a\x86\x1b\x86\x1c\x86\x1d\x86\x1e\x86\x1f\x86\x20\x86\x21\x86\x22\x86\x23\x86\x24\x86\x25\x86\x26\x86\x28\x86\x2a\x86\x2b\x86\x2c\x86\x2d\x86\x2e\x86\x2f\x86\x30\x86\x31\x86\x32\x86\x33\x86\x34\x86\x35\x86\x36\x86\x37\x00\x00\x00\x00", /* b300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x39\x86\x3a\x86\x3b\x86\x3d\x86\x3e\x86\x3f\x86\x40\x86\x41\x86\x42\x86\x43\x86\x44\x86\x45\x86\x46\x86\x47\x86\x48\x86\x49\x86\x4a\x86\x4b\x86\x4c\x86\x52\x86\x53\x86\x55\x86\x56\x86\x57\x86\x58\x86\x59\x86\x5b\x86\x5c\x86\x5d\x86\x5f\x86\x60\x86\x61\x86\x63\x86\x64\x86\x65\x86\x66\x86\x67\x86\x68\x86\x69\x86\x6a\x86\x6d\x86\x6f\x86\x70\x86\x72\x86\x73\x86\x74\x86\x75\x86\x76\x86\x77\x86\x78\x86\x83\x86\x84\x86\x85\x86\x86\x86\x87\x86\x88\x86\x89\x86\x8e\x86\x8f\x86\x90\x86\x91\x86\x92\x86\x94", /* b380 */ "\x00\x00\x86\x96\x86\x97\x86\x98\x86\x99\x86\x9a\x86\x9b\x86\x9e\x86\x9f\x86\xa0\x86\xa1\x86\xa2\x86\xa5\x86\xa6\x86\xab\x86\xad\x86\xae\x86\xb2\x86\xb3\x86\xb7\x86\xb8\x86\xb9\x86\xbb\x86\xbc\x86\xbd\x86\xbe\x86\xbf\x86\xc1\x86\xc2\x86\xc3\x86\xc5\x86\xc8\x86\xcc\x86\xcd\x86\xd2\x86\xd3\x86\xd5\x86\xd6\x86\xd7\x86\xda\x86\xdc\x86\xdd\x86\xe0\x86\xe1\x86\xe2\x86\xe3\x86\xe5\x86\xe6\x86\xe7\x86\xe8\x86\xea\x86\xeb\x86\xec\x86\xef\x86\xf5\x86\xf6\x86\xf7\x86\xfa\x86\xfb\x86\xfc\x86\xfd\x86\xff\x87\x01\x87\x04\x87\x05\x87\x06\x87\x0b\x87\x0c\x87\x0e\x87\x0f\x87\x10\x87\x11\x87\x14\x87\x16\x87\x19\x87\x1b\x87\x1d\x87\x1f\x87\x20\x87\x24\x87\x26\x87\x27\x87\x28\x87\x2a\x87\x2b\x87\x2c\x87\x2d\x87\x2f\x87\x30\x87\x32\x87\x33\x87\x35\x87\x36\x87\x38\x87\x39\x87\x3a\x87\x3c\x87\x3d\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46\x87\x4a\x87\x4b\x87\x4d\x87\x4f\x87\x50\x87\x51\x87\x52\x87\x54\x87\x55\x87\x56\x87\x58\x87\x5a\x87\x5b\x87\x5c\x87\x5d\x87\x5e\x87\x5f\x87\x61\x87\x62\x87\x66\x87\x67\x00\x00\x00\x00", /* b400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x68\x87\x69\x87\x6a\x87\x6b\x87\x6c\x87\x6d\x87\x6f\x87\x71\x87\x72\x87\x73\x87\x75\x87\x77\x87\x78\x87\x79\x87\x7a\x87\x7f\x87\x80\x87\x81\x87\x84\x87\x86\x87\x87\x87\x89\x87\x8a\x87\x8c\x87\x8e\x87\x8f\x87\x90\x87\x91\x87\x92\x87\x94\x87\x95\x87\x96\x87\x98\x87\x99\x87\x9a\x87\x9b\x87\x9c\x87\x9d\x87\x9e\x87\xa0\x87\xa1\x87\xa2\x87\xa3\x87\xa4\x87\xa5\x87\xa6\x87\xa7\x87\xa9\x87\xaa\x87\xae\x87\xb0\x87\xb1\x87\xb2\x87\xb4\x87\xb6\x87\xb7\x87\xb8\x87\xb9\x87\xbb\x87\xbc\x87\xbe\x87\xbf\x87\xc1", /* b480 */ "\x00\x00\x87\xc2\x87\xc3\x87\xc4\x87\xc5\x87\xc7\x87\xc8\x87\xc9\x87\xcc\x87\xcd\x87\xce\x87\xcf\x87\xd0\x87\xd4\x87\xd5\x87\xd6\x87\xd7\x87\xd8\x87\xd9\x87\xda\x87\xdc\x87\xdd\x87\xde\x87\xdf\x87\xe1\x87\xe2\x87\xe3\x87\xe4\x87\xe6\x87\xe7\x87\xe8\x87\xe9\x87\xeb\x87\xec\x87\xed\x87\xef\x87\xf0\x87\xf1\x87\xf2\x87\xf3\x87\xf4\x87\xf5\x87\xf6\x87\xf7\x87\xf8\x87\xfa\x87\xfb\x87\xfc\x87\xfd\x87\xff\x88\x00\x88\x01\x88\x02\x88\x04\x88\x05\x88\x06\x88\x07\x88\x08\x88\x09\x88\x0b\x88\x0c\x88\x0d\x88\x0e\x88\x0f\x88\x10\x88\x11\x88\x12\x88\x14\x88\x17\x88\x18\x88\x19\x88\x1a\x88\x1c\x88\x1d\x88\x1e\x88\x1f\x88\x20\x88\x23\x88\x24\x88\x25\x88\x26\x88\x27\x88\x28\x88\x29\x88\x2a\x88\x2b\x88\x2c\x88\x2d\x88\x2e\x88\x2f\x88\x30\x88\x31\x88\x33\x88\x34\x88\x35\x88\x36\x88\x37\x88\x38\x88\x3a\x88\x3b\x88\x3d\x88\x3e\x88\x3f\x88\x41\x88\x42\x88\x43\x88\x46\x88\x47\x88\x48\x88\x49\x88\x4a\x88\x4b\x88\x4e\x88\x4f\x88\x50\x88\x51\x88\x52\x88\x53\x88\x55\x88\x56\x88\x58\x88\x5a\x88\x5b\x88\x5c\x88\x5d\x88\x5e\x00\x00\x00\x00", /* b500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x5f\x88\x60\x88\x66\x88\x67\x88\x6a\x88\x6d\x88\x6f\x88\x71\x88\x73\x88\x74\x88\x75\x88\x76\x88\x78\x88\x79\x88\x7a\x88\x7b\x88\x7c\x88\x80\x88\x83\x88\x86\x88\x87\x88\x89\x88\x8a\x88\x8c\x88\x8e\x88\x8f\x88\x90\x88\x91\x88\x93\x88\x94\x88\x95\x88\x97\x88\x98\x88\x99\x88\x9a\x88\x9b\x88\x9d\x88\x9e\x88\x9f\x88\xa0\x88\xa1\x88\xa3\x88\xa5\x88\xa6\x88\xa7\x88\xa8\x88\xa9\x88\xaa\x88\xac\x88\xae\x88\xaf\x88\xb0\x88\xb2\x88\xb3\x88\xb4\x88\xb5\x88\xb6\x88\xb8\x88\xb9\x88\xba\x88\xbb\x88\xbd\x88\xbe", /* b580 */ "\x00\x00\x88\xbf\x88\xc0\x88\xc3\x88\xc4\x88\xc7\x88\xc8\x88\xca\x88\xcb\x88\xcc\x88\xcd\x88\xcf\x88\xd0\x88\xd1\x88\xd3\x88\xd6\x88\xd7\x88\xda\x88\xdb\x88\xdc\x88\xdd\x88\xde\x88\xe0\x88\xe1\x88\xe6\x88\xe7\x88\xe9\x88\xea\x88\xeb\x88\xec\x88\xed\x88\xee\x88\xef\x88\xf2\x88\xf5\x88\xf6\x88\xf7\x88\xfa\x88\xfb\x88\xfd\x88\xff\x89\x00\x89\x01\x89\x03\x89\x04\x89\x05\x89\x06\x89\x07\x89\x08\x89\x09\x89\x0b\x89\x0c\x89\x0d\x89\x0e\x89\x0f\x89\x11\x89\x14\x89\x15\x89\x16\x89\x17\x89\x18\x89\x1c\x89\x1d\x89\x1e\x89\x1f\x89\x20\x89\x22\x89\x23\x89\x24\x89\x26\x89\x27\x89\x28\x89\x29\x89\x2c\x89\x2d\x89\x2e\x89\x2f\x89\x31\x89\x32\x89\x33\x89\x35\x89\x37\x89\x38\x89\x39\x89\x3a\x89\x3b\x89\x3c\x89\x3d\x89\x3e\x89\x3f\x89\x40\x89\x42\x89\x43\x89\x45\x89\x46\x89\x47\x89\x48\x89\x49\x89\x4a\x89\x4b\x89\x4c\x89\x4d\x89\x4e\x89\x4f\x89\x50\x89\x51\x89\x52\x89\x53\x89\x54\x89\x55\x89\x56\x89\x57\x89\x58\x89\x59\x89\x5a\x89\x5b\x89\x5c\x89\x5d\x89\x60\x89\x61\x89\x62\x89\x63\x89\x64\x89\x65\x89\x67\x89\x68\x00\x00\x00\x00", /* b600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x69\x89\x6a\x89\x6b\x89\x6c\x89\x6d\x89\x6e\x89\x6f\x89\x70\x89\x71\x89\x72\x89\x73\x89\x74\x89\x75\x89\x76\x89\x77\x89\x78\x89\x79\x89\x7a\x89\x7c\x89\x7d\x89\x7e\x89\x80\x89\x82\x89\x84\x89\x85\x89\x87\x89\x88\x89\x89\x89\x8a\x89\x8b\x89\x8c\x89\x8d\x89\x8e\x89\x8f\x89\x90\x89\x91\x89\x92\x89\x93\x89\x94\x89\x95\x89\x96\x89\x97\x89\x98\x89\x99\x89\x9a\x89\x9b\x89\x9c\x89\x9d\x89\x9e\x89\x9f\x89\xa0\x89\xa1\x89\xa2\x89\xa3\x89\xa4\x89\xa5\x89\xa6\x89\xa7\x89\xa8\x89\xa9\x89\xaa\x89\xab\x89\xac", /* b680 */ "\x00\x00\x89\xad\x89\xae\x89\xaf\x89\xb0\x89\xb1\x89\xb2\x89\xb3\x89\xb4\x89\xb5\x89\xb6\x89\xb7\x89\xb8\x89\xb9\x89\xba\x89\xbb\x89\xbc\x89\xbd\x89\xbe\x89\xbf\x89\xc0\x89\xc3\x89\xcd\x89\xd3\x89\xd4\x89\xd5\x89\xd7\x89\xd8\x89\xd9\x89\xdb\x89\xdd\x89\xdf\x89\xe0\x89\xe1\x89\xe2\x89\xe4\x89\xe7\x89\xe8\x89\xe9\x89\xea\x89\xec\x89\xed\x89\xee\x89\xf0\x89\xf1\x89\xf2\x89\xf4\x89\xf5\x89\xf6\x89\xf7\x89\xf8\x89\xf9\x89\xfa\x89\xfb\x89\xfc\x89\xfd\x89\xfe\x89\xff\x8a\x01\x8a\x02\x8a\x03\x8a\x04\x8a\x05\x8a\x06\x8a\x08\x8a\x09\x8a\x0a\x8a\x0b\x8a\x0c\x8a\x0d\x8a\x0e\x8a\x0f\x8a\x10\x8a\x11\x8a\x12\x8a\x13\x8a\x14\x8a\x15\x8a\x16\x8a\x17\x8a\x18\x8a\x19\x8a\x1a\x8a\x1b\x8a\x1c\x8a\x1d\x8a\x1e\x8a\x1f\x8a\x20\x8a\x21\x8a\x22\x8a\x23\x8a\x24\x8a\x25\x8a\x26\x8a\x27\x8a\x28\x8a\x29\x8a\x2a\x8a\x2b\x8a\x2c\x8a\x2d\x8a\x2e\x8a\x2f\x8a\x30\x8a\x31\x8a\x32\x8a\x33\x8a\x34\x8a\x35\x8a\x36\x8a\x37\x8a\x38\x8a\x39\x8a\x3a\x8a\x3b\x8a\x3c\x8a\x3d\x8a\x3f\x8a\x40\x8a\x41\x8a\x42\x8a\x43\x8a\x44\x8a\x45\x8a\x46\x00\x00\x00\x00", /* b700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x47\x8a\x49\x8a\x4a\x8a\x4b\x8a\x4c\x8a\x4d\x8a\x4e\x8a\x4f\x8a\x50\x8a\x51\x8a\x52\x8a\x53\x8a\x54\x8a\x55\x8a\x56\x8a\x57\x8a\x58\x8a\x59\x8a\x5a\x8a\x5b\x8a\x5c\x8a\x5d\x8a\x5e\x8a\x5f\x8a\x60\x8a\x61\x8a\x62\x8a\x63\x8a\x64\x8a\x65\x8a\x66\x8a\x67\x8a\x68\x8a\x69\x8a\x6a\x8a\x6b\x8a\x6c\x8a\x6d\x8a\x6e\x8a\x6f\x8a\x70\x8a\x71\x8a\x72\x8a\x73\x8a\x74\x8a\x75\x8a\x76\x8a\x77\x8a\x78\x8a\x7a\x8a\x7b\x8a\x7c\x8a\x7d\x8a\x7e\x8a\x7f\x8a\x80\x8a\x81\x8a\x82\x8a\x83\x8a\x84\x8a\x85\x8a\x86\x8a\x87", /* b780 */ "\x00\x00\x8a\x88\x8a\x8b\x8a\x8c\x8a\x8d\x8a\x8e\x8a\x8f\x8a\x90\x8a\x91\x8a\x92\x8a\x94\x8a\x95\x8a\x96\x8a\x97\x8a\x98\x8a\x99\x8a\x9a\x8a\x9b\x8a\x9c\x8a\x9d\x8a\x9e\x8a\x9f\x8a\xa0\x8a\xa1\x8a\xa2\x8a\xa3\x8a\xa4\x8a\xa5\x8a\xa6\x8a\xa7\x8a\xa8\x8a\xa9\x8a\xaa\x8a\xab\x8a\xac\x8a\xad\x8a\xae\x8a\xaf\x8a\xb0\x8a\xb1\x8a\xb2\x8a\xb3\x8a\xb4\x8a\xb5\x8a\xb6\x8a\xb7\x8a\xb8\x8a\xb9\x8a\xba\x8a\xbb\x8a\xbc\x8a\xbd\x8a\xbe\x8a\xbf\x8a\xc0\x8a\xc1\x8a\xc2\x8a\xc3\x8a\xc4\x8a\xc5\x8a\xc6\x8a\xc7\x8a\xc8\x8a\xc9\x8a\xca\x8a\xcb\x8a\xcc\x8a\xcd\x8a\xce\x8a\xcf\x8a\xd0\x8a\xd1\x8a\xd2\x8a\xd3\x8a\xd4\x8a\xd5\x8a\xd6\x8a\xd7\x8a\xd8\x8a\xd9\x8a\xda\x8a\xdb\x8a\xdc\x8a\xdd\x8a\xde\x8a\xdf\x8a\xe0\x8a\xe1\x8a\xe2\x8a\xe3\x8a\xe4\x8a\xe5\x8a\xe6\x8a\xe7\x8a\xe8\x8a\xe9\x8a\xea\x8a\xeb\x8a\xec\x8a\xed\x8a\xee\x8a\xef\x8a\xf0\x8a\xf1\x8a\xf2\x8a\xf3\x8a\xf4\x8a\xf5\x8a\xf6\x8a\xf7\x8a\xf8\x8a\xf9\x8a\xfa\x8a\xfb\x8a\xfc\x8a\xfd\x8a\xfe\x8a\xff\x8b\x00\x8b\x01\x8b\x02\x8b\x03\x8b\x04\x8b\x05\x8b\x06\x8b\x08\x00\x00\x00\x00", /* b800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x09\x8b\x0a\x8b\x0b\x8b\x0c\x8b\x0d\x8b\x0e\x8b\x0f\x8b\x10\x8b\x11\x8b\x12\x8b\x13\x8b\x14\x8b\x15\x8b\x16\x8b\x17\x8b\x18\x8b\x19\x8b\x1a\x8b\x1b\x8b\x1c\x8b\x1d\x8b\x1e\x8b\x1f\x8b\x20\x8b\x21\x8b\x22\x8b\x23\x8b\x24\x8b\x25\x8b\x27\x8b\x28\x8b\x29\x8b\x2a\x8b\x2b\x8b\x2c\x8b\x2d\x8b\x2e\x8b\x2f\x8b\x30\x8b\x31\x8b\x32\x8b\x33\x8b\x34\x8b\x35\x8b\x36\x8b\x37\x8b\x38\x8b\x39\x8b\x3a\x8b\x3b\x8b\x3c\x8b\x3d\x8b\x3e\x8b\x3f\x8b\x40\x8b\x41\x8b\x42\x8b\x43\x8b\x44\x8b\x45\x8b\x46\x8b\x47\x8b\x48", /* b880 */ "\x00\x00\x8b\x49\x8b\x4a\x8b\x4b\x8b\x4c\x8b\x4d\x8b\x4e\x8b\x4f\x8b\x50\x8b\x51\x8b\x52\x8b\x53\x8b\x54\x8b\x55\x8b\x56\x8b\x57\x8b\x58\x8b\x59\x8b\x5a\x8b\x5b\x8b\x5c\x8b\x5d\x8b\x5e\x8b\x5f\x8b\x60\x8b\x61\x8b\x62\x8b\x63\x8b\x64\x8b\x65\x8b\x67\x8b\x68\x8b\x69\x8b\x6a\x8b\x6b\x8b\x6d\x8b\x6e\x8b\x6f\x8b\x70\x8b\x71\x8b\x72\x8b\x73\x8b\x74\x8b\x75\x8b\x76\x8b\x77\x8b\x78\x8b\x79\x8b\x7a\x8b\x7b\x8b\x7c\x8b\x7d\x8b\x7e\x8b\x7f\x8b\x80\x8b\x81\x8b\x82\x8b\x83\x8b\x84\x8b\x85\x8b\x86\x8b\x87\x8b\x88\x8b\x89\x8b\x8a\x8b\x8b\x8b\x8c\x8b\x8d\x8b\x8e\x8b\x8f\x8b\x90\x8b\x91\x8b\x92\x8b\x93\x8b\x94\x8b\x95\x8b\x96\x8b\x97\x8b\x98\x8b\x99\x8b\x9a\x8b\x9b\x8b\x9c\x8b\x9d\x8b\x9e\x8b\x9f\x8b\xac\x8b\xb1\x8b\xbb\x8b\xc7\x8b\xd0\x8b\xea\x8c\x09\x8c\x1e\x8c\x38\x8c\x39\x8c\x3a\x8c\x3b\x8c\x3c\x8c\x3d\x8c\x3e\x8c\x3f\x8c\x40\x8c\x42\x8c\x43\x8c\x44\x8c\x45\x8c\x48\x8c\x4a\x8c\x4b\x8c\x4d\x8c\x4e\x8c\x4f\x8c\x50\x8c\x51\x8c\x52\x8c\x53\x8c\x54\x8c\x56\x8c\x57\x8c\x58\x8c\x59\x8c\x5b\x8c\x5c\x8c\x5d\x8c\x5e\x00\x00\x00\x00", /* b900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x5f\x8c\x60\x8c\x63\x8c\x64\x8c\x65\x8c\x66\x8c\x67\x8c\x68\x8c\x69\x8c\x6c\x8c\x6d\x8c\x6e\x8c\x6f\x8c\x70\x8c\x71\x8c\x72\x8c\x74\x8c\x75\x8c\x76\x8c\x77\x8c\x7b\x8c\x7c\x8c\x7d\x8c\x7e\x8c\x7f\x8c\x80\x8c\x81\x8c\x83\x8c\x84\x8c\x86\x8c\x87\x8c\x88\x8c\x8b\x8c\x8d\x8c\x8e\x8c\x8f\x8c\x90\x8c\x91\x8c\x92\x8c\x93\x8c\x95\x8c\x96\x8c\x97\x8c\x99\x8c\x9a\x8c\x9b\x8c\x9c\x8c\x9d\x8c\x9e\x8c\x9f\x8c\xa0\x8c\xa1\x8c\xa2\x8c\xa3\x8c\xa4\x8c\xa5\x8c\xa6\x8c\xa7\x8c\xa8\x8c\xa9\x8c\xaa\x8c\xab\x8c\xac", /* b980 */ "\x00\x00\x8c\xad\x8c\xae\x8c\xaf\x8c\xb0\x8c\xb1\x8c\xb2\x8c\xb3\x8c\xb4\x8c\xb5\x8c\xb6\x8c\xb7\x8c\xb8\x8c\xb9\x8c\xba\x8c\xbb\x8c\xbc\x8c\xbd\x8c\xbe\x8c\xbf\x8c\xc0\x8c\xc1\x8c\xc2\x8c\xc3\x8c\xc4\x8c\xc5\x8c\xc6\x8c\xc7\x8c\xc8\x8c\xc9\x8c\xca\x8c\xcb\x8c\xcc\x8c\xcd\x8c\xce\x8c\xcf\x8c\xd0\x8c\xd1\x8c\xd2\x8c\xd3\x8c\xd4\x8c\xd5\x8c\xd6\x8c\xd7\x8c\xd8\x8c\xd9\x8c\xda\x8c\xdb\x8c\xdc\x8c\xdd\x8c\xde\x8c\xdf\x8c\xe0\x8c\xe1\x8c\xe2\x8c\xe3\x8c\xe4\x8c\xe5\x8c\xe6\x8c\xe7\x8c\xe8\x8c\xe9\x8c\xea\x8c\xeb\x8c\xec\x8c\xed\x8c\xee\x8c\xef\x8c\xf0\x8c\xf1\x8c\xf2\x8c\xf3\x8c\xf4\x8c\xf5\x8c\xf6\x8c\xf7\x8c\xf8\x8c\xf9\x8c\xfa\x8c\xfb\x8c\xfc\x8c\xfd\x8c\xfe\x8c\xff\x8d\x00\x8d\x01\x8d\x02\x8d\x03\x8d\x04\x8d\x05\x8d\x06\x8d\x07\x8d\x08\x8d\x09\x8d\x0a\x8d\x0b\x8d\x0c\x8d\x0d\x8d\x0e\x8d\x0f\x8d\x10\x8d\x11\x8d\x12\x8d\x13\x8d\x14\x8d\x15\x8d\x16\x8d\x17\x8d\x18\x8d\x19\x8d\x1a\x8d\x1b\x8d\x1c\x8d\x20\x8d\x51\x8d\x52\x8d\x57\x8d\x5f\x8d\x65\x8d\x68\x8d\x69\x8d\x6a\x8d\x6c\x8d\x6e\x8d\x6f\x8d\x71\x00\x00\x00\x00", /* ba00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x72\x8d\x78\x8d\x79\x8d\x7a\x8d\x7b\x8d\x7c\x8d\x7d\x8d\x7e\x8d\x7f\x8d\x80\x8d\x82\x8d\x83\x8d\x86\x8d\x87\x8d\x88\x8d\x89\x8d\x8c\x8d\x8d\x8d\x8e\x8d\x8f\x8d\x90\x8d\x92\x8d\x93\x8d\x95\x8d\x96\x8d\x97\x8d\x98\x8d\x99\x8d\x9a\x8d\x9b\x8d\x9c\x8d\x9d\x8d\x9e\x8d\xa0\x8d\xa1\x8d\xa2\x8d\xa4\x8d\xa5\x8d\xa6\x8d\xa7\x8d\xa8\x8d\xa9\x8d\xaa\x8d\xab\x8d\xac\x8d\xad\x8d\xae\x8d\xaf\x8d\xb0\x8d\xb2\x8d\xb6\x8d\xb7\x8d\xb9\x8d\xbb\x8d\xbd\x8d\xc0\x8d\xc1\x8d\xc2\x8d\xc5\x8d\xc7\x8d\xc8\x8d\xc9\x8d\xca", /* ba80 */ "\x00\x00\x8d\xcd\x8d\xd0\x8d\xd2\x8d\xd3\x8d\xd4\x8d\xd5\x8d\xd8\x8d\xd9\x8d\xdc\x8d\xe0\x8d\xe1\x8d\xe2\x8d\xe5\x8d\xe6\x8d\xe7\x8d\xe9\x8d\xed\x8d\xee\x8d\xf0\x8d\xf1\x8d\xf2\x8d\xf4\x8d\xf6\x8d\xfc\x8d\xfe\x8d\xff\x8e\x00\x8e\x01\x8e\x02\x8e\x03\x8e\x04\x8e\x06\x8e\x07\x8e\x08\x8e\x0b\x8e\x0d\x8e\x0e\x8e\x10\x8e\x11\x8e\x12\x8e\x13\x8e\x15\x8e\x16\x8e\x17\x8e\x18\x8e\x19\x8e\x1a\x8e\x1b\x8e\x1c\x8e\x20\x8e\x21\x8e\x24\x8e\x25\x8e\x26\x8e\x27\x8e\x28\x8e\x2b\x8e\x2d\x8e\x30\x8e\x32\x8e\x33\x8e\x34\x8e\x36\x8e\x37\x8e\x38\x8e\x3b\x8e\x3c\x8e\x3e\x8e\x3f\x8e\x43\x8e\x45\x8e\x46\x8e\x4c\x8e\x4d\x8e\x4e\x8e\x4f\x8e\x50\x8e\x53\x8e\x54\x8e\x55\x8e\x56\x8e\x57\x8e\x58\x8e\x5a\x8e\x5b\x8e\x5c\x8e\x5d\x8e\x5e\x8e\x5f\x8e\x60\x8e\x61\x8e\x62\x8e\x63\x8e\x64\x8e\x65\x8e\x67\x8e\x68\x8e\x6a\x8e\x6b\x8e\x6e\x8e\x71\x8e\x73\x8e\x75\x8e\x77\x8e\x78\x8e\x79\x8e\x7a\x8e\x7b\x8e\x7d\x8e\x7e\x8e\x80\x8e\x82\x8e\x83\x8e\x84\x8e\x86\x8e\x88\x8e\x89\x8e\x8a\x8e\x8b\x8e\x8c\x8e\x8d\x8e\x8e\x8e\x91\x8e\x92\x8e\x93\x00\x00\x00\x00", /* bb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x95\x8e\x96\x8e\x97\x8e\x98\x8e\x99\x8e\x9a\x8e\x9b\x8e\x9d\x8e\x9f\x8e\xa0\x8e\xa1\x8e\xa2\x8e\xa3\x8e\xa4\x8e\xa5\x8e\xa6\x8e\xa7\x8e\xa8\x8e\xa9\x8e\xaa\x8e\xad\x8e\xae\x8e\xb0\x8e\xb1\x8e\xb3\x8e\xb4\x8e\xb5\x8e\xb6\x8e\xb7\x8e\xb8\x8e\xb9\x8e\xbb\x8e\xbc\x8e\xbd\x8e\xbe\x8e\xbf\x8e\xc0\x8e\xc1\x8e\xc2\x8e\xc3\x8e\xc4\x8e\xc5\x8e\xc6\x8e\xc7\x8e\xc8\x8e\xc9\x8e\xca\x8e\xcb\x8e\xcc\x8e\xcd\x8e\xcf\x8e\xd0\x8e\xd1\x8e\xd2\x8e\xd3\x8e\xd4\x8e\xd5\x8e\xd6\x8e\xd7\x8e\xd8\x8e\xd9\x8e\xda\x8e\xdb", /* bb80 */ "\x00\x00\x8e\xdc\x8e\xdd\x8e\xde\x8e\xdf\x8e\xe0\x8e\xe1\x8e\xe2\x8e\xe3\x8e\xe4\x8e\xe5\x8e\xe6\x8e\xe7\x8e\xe8\x8e\xe9\x8e\xea\x8e\xeb\x8e\xec\x8e\xed\x8e\xee\x8e\xef\x8e\xf0\x8e\xf1\x8e\xf2\x8e\xf3\x8e\xf4\x8e\xf5\x8e\xf6\x8e\xf7\x8e\xf8\x8e\xf9\x8e\xfa\x8e\xfb\x8e\xfc\x8e\xfd\x8e\xfe\x8e\xff\x8f\x00\x8f\x01\x8f\x02\x8f\x03\x8f\x04\x8f\x05\x8f\x06\x8f\x07\x8f\x08\x8f\x09\x8f\x0a\x8f\x0b\x8f\x0c\x8f\x0d\x8f\x0e\x8f\x0f\x8f\x10\x8f\x11\x8f\x12\x8f\x13\x8f\x14\x8f\x15\x8f\x16\x8f\x17\x8f\x18\x8f\x19\x8f\x1a\x8f\x1b\x8f\x1c\x8f\x1d\x8f\x1e\x8f\x1f\x8f\x20\x8f\x21\x8f\x22\x8f\x23\x8f\x24\x8f\x25\x8f\x26\x8f\x27\x8f\x28\x8f\x29\x8f\x2a\x8f\x2b\x8f\x2c\x8f\x2d\x8f\x2e\x8f\x2f\x8f\x30\x8f\x31\x8f\x32\x8f\x33\x8f\x34\x8f\x35\x8f\x36\x8f\x37\x8f\x38\x8f\x39\x8f\x3a\x8f\x3b\x8f\x3c\x8f\x3d\x8f\x3e\x8f\x3f\x8f\x40\x8f\x41\x8f\x42\x8f\x43\x8f\x44\x8f\x45\x8f\x46\x8f\x47\x8f\x48\x8f\x49\x8f\x4a\x8f\x4b\x8f\x4c\x8f\x4d\x8f\x4e\x8f\x4f\x8f\x50\x8f\x51\x8f\x52\x8f\x53\x8f\x54\x8f\x55\x8f\x56\x8f\x57\x8f\x58\x00\x00\x00\x00", /* bc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x59\x8f\x5a\x8f\x5b\x8f\x5c\x8f\x5d\x8f\x5e\x8f\x5f\x8f\x60\x8f\x61\x8f\x62\x8f\x63\x8f\x64\x8f\x65\x8f\x6a\x8f\x80\x8f\x8c\x8f\x92\x8f\x9d\x8f\xa0\x8f\xa1\x8f\xa2\x8f\xa4\x8f\xa5\x8f\xa6\x8f\xa7\x8f\xaa\x8f\xac\x8f\xad\x8f\xae\x8f\xaf\x8f\xb2\x8f\xb3\x8f\xb4\x8f\xb5\x8f\xb7\x8f\xb8\x8f\xba\x8f\xbb\x8f\xbc\x8f\xbf\x8f\xc0\x8f\xc3\x8f\xc6\x8f\xc9\x8f\xca\x8f\xcb\x8f\xcc\x8f\xcd\x8f\xcf\x8f\xd2\x8f\xd6\x8f\xd7\x8f\xda\x8f\xe0\x8f\xe1\x8f\xe3\x8f\xe7\x8f\xec\x8f\xef\x8f\xf1\x8f\xf2\x8f\xf4\x8f\xf5", /* bc80 */ "\x00\x00\x8f\xf6\x8f\xfa\x8f\xfb\x8f\xfc\x8f\xfe\x8f\xff\x90\x07\x90\x08\x90\x0c\x90\x0e\x90\x13\x90\x15\x90\x18\x90\x19\x90\x1c\x90\x23\x90\x24\x90\x25\x90\x27\x90\x28\x90\x29\x90\x2a\x90\x2b\x90\x2c\x90\x30\x90\x31\x90\x32\x90\x33\x90\x34\x90\x37\x90\x39\x90\x3a\x90\x3d\x90\x3f\x90\x40\x90\x43\x90\x45\x90\x46\x90\x48\x90\x49\x90\x4a\x90\x4b\x90\x4c\x90\x4e\x90\x54\x90\x55\x90\x56\x90\x59\x90\x5a\x90\x5c\x90\x5d\x90\x5e\x90\x5f\x90\x60\x90\x61\x90\x64\x90\x66\x90\x67\x90\x69\x90\x6a\x90\x6b\x90\x6c\x90\x6f\x90\x70\x90\x71\x90\x72\x90\x73\x90\x76\x90\x77\x90\x78\x90\x79\x90\x7a\x90\x7b\x90\x7c\x90\x7e\x90\x81\x90\x84\x90\x85\x90\x86\x90\x87\x90\x89\x90\x8a\x90\x8c\x90\x8d\x90\x8e\x90\x8f\x90\x90\x90\x92\x90\x94\x90\x96\x90\x98\x90\x9a\x90\x9c\x90\x9e\x90\x9f\x90\xa0\x90\xa4\x90\xa5\x90\xa7\x90\xa8\x90\xa9\x90\xab\x90\xad\x90\xb2\x90\xb7\x90\xbc\x90\xbd\x90\xbf\x90\xc0\x90\xc2\x90\xc3\x90\xc6\x90\xc8\x90\xc9\x90\xcb\x90\xcc\x90\xcd\x90\xd2\x90\xd4\x90\xd5\x90\xd6\x90\xd8\x90\xd9\x90\xda\x90\xde\x00\x00\x00\x00", /* bd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xdf\x90\xe0\x90\xe3\x90\xe4\x90\xe5\x90\xe9\x90\xea\x90\xec\x90\xee\x90\xf0\x90\xf1\x90\xf2\x90\xf3\x90\xf5\x90\xf6\x90\xf7\x90\xf9\x90\xfa\x90\xfb\x90\xfc\x90\xff\x91\x00\x91\x01\x91\x03\x91\x05\x91\x06\x91\x07\x91\x08\x91\x09\x91\x0a\x91\x0b\x91\x0c\x91\x0d\x91\x0e\x91\x0f\x91\x10\x91\x11\x91\x12\x91\x13\x91\x14\x91\x15\x91\x16\x91\x17\x91\x18\x91\x1a\x91\x1b\x91\x1c\x91\x1d\x91\x1f\x91\x20\x91\x21\x91\x24\x91\x25\x91\x26\x91\x27\x91\x28\x91\x29\x91\x2a\x91\x2b\x91\x2c\x91\x2d\x91\x2e\x91\x30", /* bd80 */ "\x00\x00\x91\x32\x91\x33\x91\x34\x91\x35\x91\x36\x91\x37\x91\x38\x91\x3a\x91\x3b\x91\x3c\x91\x3d\x91\x3e\x91\x3f\x91\x40\x91\x41\x91\x42\x91\x44\x91\x45\x91\x47\x91\x48\x91\x51\x91\x53\x91\x54\x91\x55\x91\x56\x91\x58\x91\x59\x91\x5b\x91\x5c\x91\x5f\x91\x60\x91\x66\x91\x67\x91\x68\x91\x6b\x91\x6d\x91\x73\x91\x7a\x91\x7b\x91\x7c\x91\x80\x91\x81\x91\x82\x91\x83\x91\x84\x91\x86\x91\x88\x91\x8a\x91\x8e\x91\x8f\x91\x93\x91\x94\x91\x95\x91\x96\x91\x97\x91\x98\x91\x99\x91\x9c\x91\x9d\x91\x9e\x91\x9f\x91\xa0\x91\xa1\x91\xa4\x91\xa5\x91\xa6\x91\xa7\x91\xa8\x91\xa9\x91\xab\x91\xac\x91\xb0\x91\xb1\x91\xb2\x91\xb3\x91\xb6\x91\xb7\x91\xb8\x91\xb9\x91\xbb\x91\xbc\x91\xbd\x91\xbe\x91\xbf\x91\xc0\x91\xc1\x91\xc2\x91\xc3\x91\xc4\x91\xc5\x91\xc6\x91\xc8\x91\xcb\x91\xd0\x91\xd2\x91\xd3\x91\xd4\x91\xd5\x91\xd6\x91\xd7\x91\xd8\x91\xd9\x91\xda\x91\xdb\x91\xdd\x91\xde\x91\xdf\x91\xe0\x91\xe1\x91\xe2\x91\xe3\x91\xe4\x91\xe5\x91\xe6\x91\xe7\x91\xe8\x91\xe9\x91\xea\x91\xeb\x91\xec\x91\xed\x91\xee\x91\xef\x91\xf0\x91\xf1\x00\x00\x00\x00", /* be00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xf2\x91\xf3\x91\xf4\x91\xf5\x91\xf6\x91\xf7\x91\xf8\x91\xf9\x91\xfa\x91\xfb\x91\xfc\x91\xfd\x91\xfe\x91\xff\x92\x00\x92\x01\x92\x02\x92\x03\x92\x04\x92\x05\x92\x06\x92\x07\x92\x08\x92\x09\x92\x0a\x92\x0b\x92\x0c\x92\x0d\x92\x0e\x92\x0f\x92\x10\x92\x11\x92\x12\x92\x13\x92\x14\x92\x15\x92\x16\x92\x17\x92\x18\x92\x19\x92\x1a\x92\x1b\x92\x1c\x92\x1d\x92\x1e\x92\x1f\x92\x20\x92\x21\x92\x22\x92\x23\x92\x24\x92\x25\x92\x26\x92\x27\x92\x28\x92\x29\x92\x2a\x92\x2b\x92\x2c\x92\x2d\x92\x2e\x92\x2f\x92\x30", /* be80 */ "\x00\x00\x92\x31\x92\x32\x92\x33\x92\x34\x92\x35\x92\x36\x92\x37\x92\x38\x92\x39\x92\x3a\x92\x3b\x92\x3c\x92\x3d\x92\x3e\x92\x3f\x92\x40\x92\x41\x92\x42\x92\x43\x92\x44\x92\x45\x92\x46\x92\x47\x92\x48\x92\x49\x92\x4a\x92\x4b\x92\x4c\x92\x4d\x92\x4e\x92\x4f\x92\x50\x92\x51\x92\x52\x92\x53\x92\x54\x92\x55\x92\x56\x92\x57\x92\x58\x92\x59\x92\x5a\x92\x5b\x92\x5c\x92\x5d\x92\x5e\x92\x5f\x92\x60\x92\x61\x92\x62\x92\x63\x92\x64\x92\x65\x92\x66\x92\x67\x92\x68\x92\x69\x92\x6a\x92\x6b\x92\x6c\x92\x6d\x92\x6e\x92\x6f\x92\x70\x92\x71\x92\x72\x92\x73\x92\x75\x92\x76\x92\x77\x92\x78\x92\x79\x92\x7a\x92\x7b\x92\x7c\x92\x7d\x92\x7e\x92\x7f\x92\x80\x92\x81\x92\x82\x92\x83\x92\x84\x92\x85\x92\x86\x92\x87\x92\x88\x92\x89\x92\x8a\x92\x8b\x92\x8c\x92\x8d\x92\x8f\x92\x90\x92\x91\x92\x92\x92\x93\x92\x94\x92\x95\x92\x96\x92\x97\x92\x98\x92\x99\x92\x9a\x92\x9b\x92\x9c\x92\x9d\x92\x9e\x92\x9f\x92\xa0\x92\xa1\x92\xa2\x92\xa3\x92\xa4\x92\xa5\x92\xa6\x92\xa7\x92\xa8\x92\xa9\x92\xaa\x92\xab\x92\xac\x92\xad\x92\xaf\x92\xb0\x00\x00\x00\x00", /* bf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\xb1\x92\xb2\x92\xb3\x92\xb4\x92\xb5\x92\xb6\x92\xb7\x92\xb8\x92\xb9\x92\xba\x92\xbb\x92\xbc\x92\xbd\x92\xbe\x92\xbf\x92\xc0\x92\xc1\x92\xc2\x92\xc3\x92\xc4\x92\xc5\x92\xc6\x92\xc7\x92\xc9\x92\xca\x92\xcb\x92\xcc\x92\xcd\x92\xce\x92\xcf\x92\xd0\x92\xd1\x92\xd2\x92\xd3\x92\xd4\x92\xd5\x92\xd6\x92\xd7\x92\xd8\x92\xd9\x92\xda\x92\xdb\x92\xdc\x92\xdd\x92\xde\x92\xdf\x92\xe0\x92\xe1\x92\xe2\x92\xe3\x92\xe4\x92\xe5\x92\xe6\x92\xe7\x92\xe8\x92\xe9\x92\xea\x92\xeb\x92\xec\x92\xed\x92\xee\x92\xef\x92\xf0", /* bf80 */ "\x00\x00\x92\xf1\x92\xf2\x92\xf3\x92\xf4\x92\xf5\x92\xf6\x92\xf7\x92\xf8\x92\xf9\x92\xfa\x92\xfb\x92\xfc\x92\xfd\x92\xfe\x92\xff\x93\x00\x93\x01\x93\x02\x93\x03\x93\x04\x93\x05\x93\x06\x93\x07\x93\x08\x93\x09\x93\x0a\x93\x0b\x93\x0c\x93\x0d\x93\x0e\x93\x0f\x93\x10\x93\x11\x93\x12\x93\x13\x93\x14\x93\x15\x93\x16\x93\x17\x93\x18\x93\x19\x93\x1a\x93\x1b\x93\x1c\x93\x1d\x93\x1e\x93\x1f\x93\x20\x93\x21\x93\x22\x93\x23\x93\x24\x93\x25\x93\x26\x93\x27\x93\x28\x93\x29\x93\x2a\x93\x2b\x93\x2c\x93\x2d\x93\x2e\x93\x2f\x93\x30\x93\x31\x93\x32\x93\x33\x93\x34\x93\x35\x93\x36\x93\x37\x93\x38\x93\x39\x93\x3a\x93\x3b\x93\x3c\x93\x3d\x93\x3f\x93\x40\x93\x41\x93\x42\x93\x43\x93\x44\x93\x45\x93\x46\x93\x47\x93\x48\x93\x49\x93\x4a\x93\x4b\x93\x4c\x93\x4d\x93\x4e\x93\x4f\x93\x50\x93\x51\x93\x52\x93\x53\x93\x54\x93\x55\x93\x56\x93\x57\x93\x58\x93\x59\x93\x5a\x93\x5b\x93\x5c\x93\x5d\x93\x5e\x93\x5f\x93\x60\x93\x61\x93\x62\x93\x63\x93\x64\x93\x65\x93\x66\x93\x67\x93\x68\x93\x69\x93\x6b\x93\x6c\x93\x6d\x93\x6e\x93\x6f\x00\x00\x00\x00", /* c000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x70\x93\x71\x93\x72\x93\x73\x93\x74\x93\x75\x93\x76\x93\x77\x93\x78\x93\x79\x93\x7a\x93\x7b\x93\x7c\x93\x7d\x93\x7e\x93\x7f\x93\x80\x93\x81\x93\x82\x93\x83\x93\x84\x93\x85\x93\x86\x93\x87\x93\x88\x93\x89\x93\x8a\x93\x8b\x93\x8c\x93\x8d\x93\x8e\x93\x90\x93\x91\x93\x92\x93\x93\x93\x94\x93\x95\x93\x96\x93\x97\x93\x98\x93\x99\x93\x9a\x93\x9b\x93\x9c\x93\x9d\x93\x9e\x93\x9f\x93\xa0\x93\xa1\x93\xa2\x93\xa3\x93\xa4\x93\xa5\x93\xa6\x93\xa7\x93\xa8\x93\xa9\x93\xaa\x93\xab\x93\xac\x93\xad\x93\xae\x93\xaf", /* c080 */ "\x00\x00\x93\xb0\x93\xb1\x93\xb2\x93\xb3\x93\xb4\x93\xb5\x93\xb6\x93\xb7\x93\xb8\x93\xb9\x93\xba\x93\xbb\x93\xbc\x93\xbd\x93\xbe\x93\xbf\x93\xc0\x93\xc1\x93\xc2\x93\xc3\x93\xc4\x93\xc5\x93\xc6\x93\xc7\x93\xc8\x93\xc9\x93\xcb\x93\xcc\x93\xcd\x93\xce\x93\xcf\x93\xd0\x93\xd1\x93\xd2\x93\xd3\x93\xd4\x93\xd5\x93\xd7\x93\xd8\x93\xd9\x93\xda\x93\xdb\x93\xdc\x93\xdd\x93\xde\x93\xdf\x93\xe0\x93\xe1\x93\xe2\x93\xe3\x93\xe4\x93\xe5\x93\xe6\x93\xe7\x93\xe8\x93\xe9\x93\xea\x93\xeb\x93\xec\x93\xed\x93\xee\x93\xef\x93\xf0\x93\xf1\x93\xf2\x93\xf3\x93\xf4\x93\xf5\x93\xf6\x93\xf7\x93\xf8\x93\xf9\x93\xfa\x93\xfb\x93\xfc\x93\xfd\x93\xfe\x93\xff\x94\x00\x94\x01\x94\x02\x94\x03\x94\x04\x94\x05\x94\x06\x94\x07\x94\x08\x94\x09\x94\x0a\x94\x0b\x94\x0c\x94\x0d\x94\x0e\x94\x0f\x94\x10\x94\x11\x94\x12\x94\x13\x94\x14\x94\x15\x94\x16\x94\x17\x94\x18\x94\x19\x94\x1a\x94\x1b\x94\x1c\x94\x1d\x94\x1e\x94\x1f\x94\x20\x94\x21\x94\x22\x94\x23\x94\x24\x94\x25\x94\x26\x94\x27\x94\x28\x94\x29\x94\x2a\x94\x2b\x94\x2c\x94\x2d\x94\x2e\x00\x00\x00\x00", /* c100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x2f\x94\x30\x94\x31\x94\x32\x94\x33\x94\x34\x94\x35\x94\x36\x94\x37\x94\x38\x94\x39\x94\x3a\x94\x3b\x94\x3c\x94\x3d\x94\x3f\x94\x40\x94\x41\x94\x42\x94\x43\x94\x44\x94\x45\x94\x46\x94\x47\x94\x48\x94\x49\x94\x4a\x94\x4b\x94\x4c\x94\x4d\x94\x4e\x94\x4f\x94\x50\x94\x51\x94\x52\x94\x53\x94\x54\x94\x55\x94\x56\x94\x57\x94\x58\x94\x59\x94\x5a\x94\x5b\x94\x5c\x94\x5d\x94\x5e\x94\x5f\x94\x60\x94\x61\x94\x62\x94\x63\x94\x64\x94\x65\x94\x66\x94\x67\x94\x68\x94\x69\x94\x6a\x94\x6c\x94\x6d\x94\x6e\x94\x6f", /* c180 */ "\x00\x00\x94\x70\x94\x71\x94\x72\x94\x73\x94\x74\x94\x75\x94\x76\x94\x77\x94\x78\x94\x79\x94\x7a\x94\x7b\x94\x7c\x94\x7d\x94\x7e\x94\x7f\x94\x80\x94\x81\x94\x82\x94\x83\x94\x84\x94\x91\x94\x96\x94\x98\x94\xc7\x94\xcf\x94\xd3\x94\xd4\x94\xda\x94\xe6\x94\xfb\x95\x1c\x95\x20\x95\x27\x95\x33\x95\x3d\x95\x43\x95\x48\x95\x4b\x95\x55\x95\x5a\x95\x60\x95\x6e\x95\x74\x95\x75\x95\x77\x95\x78\x95\x79\x95\x7a\x95\x7b\x95\x7c\x95\x7d\x95\x7e\x95\x80\x95\x81\x95\x82\x95\x83\x95\x84\x95\x85\x95\x86\x95\x87\x95\x88\x95\x89\x95\x8a\x95\x8b\x95\x8c\x95\x8d\x95\x8e\x95\x8f\x95\x90\x95\x91\x95\x92\x95\x93\x95\x94\x95\x95\x95\x96\x95\x97\x95\x98\x95\x99\x95\x9a\x95\x9b\x95\x9c\x95\x9d\x95\x9e\x95\x9f\x95\xa0\x95\xa1\x95\xa2\x95\xa3\x95\xa4\x95\xa5\x95\xa6\x95\xa7\x95\xa8\x95\xa9\x95\xaa\x95\xab\x95\xac\x95\xad\x95\xae\x95\xaf\x95\xb0\x95\xb1\x95\xb2\x95\xb3\x95\xb4\x95\xb5\x95\xb6\x95\xb7\x95\xb8\x95\xb9\x95\xba\x95\xbb\x95\xbc\x95\xbd\x95\xbe\x95\xbf\x95\xc0\x95\xc1\x95\xc2\x95\xc3\x95\xc4\x95\xc5\x95\xc6\x95\xc7\x00\x00\x00\x00", /* c200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\xc8\x95\xc9\x95\xca\x95\xcb\x95\xcc\x95\xcd\x95\xce\x95\xcf\x95\xd0\x95\xd1\x95\xd2\x95\xd3\x95\xd4\x95\xd5\x95\xd6\x95\xd7\x95\xd8\x95\xd9\x95\xda\x95\xdb\x95\xdc\x95\xdd\x95\xde\x95\xdf\x95\xe0\x95\xe1\x95\xe2\x95\xe3\x95\xe4\x95\xe5\x95\xe6\x95\xe7\x95\xec\x95\xff\x96\x07\x96\x13\x96\x18\x96\x1b\x96\x1e\x96\x20\x96\x23\x96\x24\x96\x25\x96\x26\x96\x27\x96\x28\x96\x29\x96\x2b\x96\x2c\x96\x2d\x96\x2f\x96\x30\x96\x37\x96\x38\x96\x39\x96\x3a\x96\x3e\x96\x41\x96\x43\x96\x4a\x96\x4e\x96\x4f\x96\x51", /* c280 */ "\x00\x00\x96\x52\x96\x53\x96\x56\x96\x57\x96\x58\x96\x59\x96\x5a\x96\x5c\x96\x5d\x96\x5e\x96\x60\x96\x63\x96\x65\x96\x66\x96\x6b\x96\x6d\x96\x6e\x96\x6f\x96\x70\x96\x71\x96\x73\x96\x78\x96\x79\x96\x7a\x96\x7b\x96\x7c\x96\x7d\x96\x7e\x96\x7f\x96\x80\x96\x81\x96\x82\x96\x83\x96\x84\x96\x87\x96\x89\x96\x8a\x96\x8c\x96\x8e\x96\x91\x96\x92\x96\x93\x96\x95\x96\x96\x96\x9a\x96\x9b\x96\x9d\x96\x9e\x96\x9f\x96\xa0\x96\xa1\x96\xa2\x96\xa3\x96\xa4\x96\xa5\x96\xa6\x96\xa8\x96\xa9\x96\xaa\x96\xab\x96\xac\x96\xad\x96\xae\x96\xaf\x96\xb1\x96\xb2\x96\xb4\x96\xb5\x96\xb7\x96\xb8\x96\xba\x96\xbb\x96\xbf\x96\xc2\x96\xc3\x96\xc8\x96\xca\x96\xcb\x96\xd0\x96\xd1\x96\xd3\x96\xd4\x96\xd6\x96\xd7\x96\xd8\x96\xd9\x96\xda\x96\xdb\x96\xdc\x96\xdd\x96\xde\x96\xdf\x96\xe1\x96\xe2\x96\xe3\x96\xe4\x96\xe5\x96\xe6\x96\xe7\x96\xeb\x96\xec\x96\xed\x96\xee\x96\xf0\x96\xf1\x96\xf2\x96\xf4\x96\xf5\x96\xf8\x96\xfa\x96\xfb\x96\xfc\x96\xfd\x96\xff\x97\x02\x97\x03\x97\x05\x97\x0a\x97\x0b\x97\x0c\x97\x10\x97\x11\x97\x12\x97\x14\x97\x15\x00\x00\x00\x00", /* c300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x17\x97\x18\x97\x19\x97\x1a\x97\x1b\x97\x1d\x97\x1f\x97\x20\x97\x21\x97\x22\x97\x23\x97\x24\x97\x25\x97\x26\x97\x27\x97\x28\x97\x29\x97\x2b\x97\x2c\x97\x2e\x97\x2f\x97\x31\x97\x33\x97\x34\x97\x35\x97\x36\x97\x37\x97\x3a\x97\x3b\x97\x3c\x97\x3d\x97\x3f\x97\x40\x97\x41\x97\x42\x97\x43\x97\x44\x97\x45\x97\x46\x97\x47\x97\x48\x97\x49\x97\x4a\x97\x4b\x97\x4c\x97\x4d\x97\x4e\x97\x4f\x97\x50\x97\x51\x97\x54\x97\x55\x97\x57\x97\x58\x97\x5a\x97\x5c\x97\x5d\x97\x5f\x97\x63\x97\x64\x97\x66\x97\x67\x97\x68", /* c380 */ "\x00\x00\x97\x6a\x97\x6b\x97\x6c\x97\x6d\x97\x6e\x97\x6f\x97\x70\x97\x71\x97\x72\x97\x75\x97\x77\x97\x78\x97\x79\x97\x7a\x97\x7b\x97\x7d\x97\x7e\x97\x7f\x97\x80\x97\x81\x97\x82\x97\x83\x97\x84\x97\x86\x97\x87\x97\x88\x97\x89\x97\x8a\x97\x8c\x97\x8e\x97\x8f\x97\x90\x97\x93\x97\x95\x97\x96\x97\x97\x97\x99\x97\x9a\x97\x9b\x97\x9c\x97\x9d\x97\x9e\x97\x9f\x97\xa1\x97\xa2\x97\xa4\x97\xa5\x97\xa6\x97\xa7\x97\xa8\x97\xa9\x97\xaa\x97\xac\x97\xae\x97\xb0\x97\xb1\x97\xb3\x97\xb5\x97\xb6\x97\xb7\x97\xb8\x97\xb9\x97\xba\x97\xbb\x97\xbc\x97\xbd\x97\xbe\x97\xbf\x97\xc0\x97\xc1\x97\xc2\x97\xc3\x97\xc4\x97\xc5\x97\xc6\x97\xc7\x97\xc8\x97\xc9\x97\xca\x97\xcb\x97\xcc\x97\xcd\x97\xce\x97\xcf\x97\xd0\x97\xd1\x97\xd2\x97\xd3\x97\xd4\x97\xd5\x97\xd6\x97\xd7\x97\xd8\x97\xd9\x97\xda\x97\xdb\x97\xdc\x97\xdd\x97\xde\x97\xdf\x97\xe0\x97\xe1\x97\xe2\x97\xe3\x97\xe4\x97\xe5\x97\xe8\x97\xee\x97\xef\x97\xf0\x97\xf1\x97\xf2\x97\xf4\x97\xf7\x97\xf8\x97\xf9\x97\xfa\x97\xfb\x97\xfc\x97\xfd\x97\xfe\x97\xff\x98\x00\x98\x01\x98\x02\x00\x00\x00\x00", /* c400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x03\x98\x04\x98\x05\x98\x06\x98\x07\x98\x08\x98\x09\x98\x0a\x98\x0b\x98\x0c\x98\x0d\x98\x0e\x98\x0f\x98\x10\x98\x11\x98\x12\x98\x13\x98\x14\x98\x15\x98\x16\x98\x17\x98\x18\x98\x19\x98\x1a\x98\x1b\x98\x1c\x98\x1d\x98\x1e\x98\x1f\x98\x20\x98\x21\x98\x22\x98\x23\x98\x24\x98\x25\x98\x26\x98\x27\x98\x28\x98\x29\x98\x2a\x98\x2b\x98\x2c\x98\x2d\x98\x2e\x98\x2f\x98\x30\x98\x31\x98\x32\x98\x33\x98\x34\x98\x35\x98\x36\x98\x37\x98\x38\x98\x39\x98\x3a\x98\x3b\x98\x3c\x98\x3d\x98\x3e\x98\x3f\x98\x40\x98\x41", /* c480 */ "\x00\x00\x98\x42\x98\x43\x98\x44\x98\x45\x98\x46\x98\x47\x98\x48\x98\x49\x98\x4a\x98\x4b\x98\x4c\x98\x4d\x98\x4e\x98\x4f\x98\x50\x98\x51\x98\x52\x98\x53\x98\x54\x98\x55\x98\x56\x98\x57\x98\x58\x98\x59\x98\x5a\x98\x5b\x98\x5c\x98\x5d\x98\x5e\x98\x5f\x98\x60\x98\x61\x98\x62\x98\x63\x98\x64\x98\x65\x98\x66\x98\x67\x98\x68\x98\x69\x98\x6a\x98\x6b\x98\x6c\x98\x6d\x98\x6e\x98\x6f\x98\x70\x98\x71\x98\x72\x98\x73\x98\x74\x98\x8b\x98\x8e\x98\x92\x98\x95\x98\x99\x98\xa3\x98\xa8\x98\xa9\x98\xaa\x98\xab\x98\xac\x98\xad\x98\xae\x98\xaf\x98\xb0\x98\xb1\x98\xb2\x98\xb3\x98\xb4\x98\xb5\x98\xb6\x98\xb7\x98\xb8\x98\xb9\x98\xba\x98\xbb\x98\xbc\x98\xbd\x98\xbe\x98\xbf\x98\xc0\x98\xc1\x98\xc2\x98\xc3\x98\xc4\x98\xc5\x98\xc6\x98\xc7\x98\xc8\x98\xc9\x98\xca\x98\xcb\x98\xcc\x98\xcd\x98\xcf\x98\xd0\x98\xd4\x98\xd6\x98\xd7\x98\xdb\x98\xdc\x98\xdd\x98\xe0\x98\xe1\x98\xe2\x98\xe3\x98\xe4\x98\xe5\x98\xe6\x98\xe9\x98\xea\x98\xeb\x98\xec\x98\xed\x98\xee\x98\xef\x98\xf0\x98\xf1\x98\xf2\x98\xf3\x98\xf4\x98\xf5\x98\xf6\x98\xf7\x00\x00\x00\x00", /* c500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\xf8\x98\xf9\x98\xfa\x98\xfb\x98\xfc\x98\xfd\x98\xfe\x98\xff\x99\x00\x99\x01\x99\x02\x99\x03\x99\x04\x99\x05\x99\x06\x99\x07\x99\x08\x99\x09\x99\x0a\x99\x0b\x99\x0c\x99\x0e\x99\x0f\x99\x11\x99\x12\x99\x13\x99\x14\x99\x15\x99\x16\x99\x17\x99\x18\x99\x19\x99\x1a\x99\x1b\x99\x1c\x99\x1d\x99\x1e\x99\x1f\x99\x20\x99\x21\x99\x22\x99\x23\x99\x24\x99\x25\x99\x26\x99\x27\x99\x28\x99\x29\x99\x2a\x99\x2b\x99\x2c\x99\x2d\x99\x2f\x99\x30\x99\x31\x99\x32\x99\x33\x99\x34\x99\x35\x99\x36\x99\x37\x99\x38\x99\x39", /* c580 */ "\x00\x00\x99\x3a\x99\x3b\x99\x3c\x99\x3d\x99\x3e\x99\x3f\x99\x40\x99\x41\x99\x42\x99\x43\x99\x44\x99\x45\x99\x46\x99\x47\x99\x48\x99\x49\x99\x4a\x99\x4b\x99\x4c\x99\x4d\x99\x4e\x99\x4f\x99\x50\x99\x51\x99\x52\x99\x53\x99\x56\x99\x57\x99\x58\x99\x59\x99\x5a\x99\x5b\x99\x5c\x99\x5d\x99\x5e\x99\x5f\x99\x60\x99\x61\x99\x62\x99\x64\x99\x66\x99\x73\x99\x78\x99\x79\x99\x7b\x99\x7e\x99\x82\x99\x83\x99\x89\x99\x8c\x99\x8e\x99\x9a\x99\x9b\x99\x9c\x99\x9d\x99\x9e\x99\x9f\x99\xa0\x99\xa1\x99\xa2\x99\xa3\x99\xa4\x99\xa6\x99\xa7\x99\xa9\x99\xaa\x99\xab\x99\xac\x99\xad\x99\xae\x99\xaf\x99\xb0\x99\xb1\x99\xb2\x99\xb3\x99\xb4\x99\xb5\x99\xb6\x99\xb7\x99\xb8\x99\xb9\x99\xba\x99\xbb\x99\xbc\x99\xbd\x99\xbe\x99\xbf\x99\xc0\x99\xc1\x99\xc2\x99\xc3\x99\xc4\x99\xc5\x99\xc6\x99\xc7\x99\xc8\x99\xc9\x99\xca\x99\xcb\x99\xcc\x99\xcd\x99\xce\x99\xcf\x99\xd0\x99\xd1\x99\xd2\x99\xd3\x99\xd4\x99\xd5\x99\xd6\x99\xd7\x99\xd8\x99\xd9\x99\xda\x99\xdb\x99\xdc\x99\xdd\x99\xde\x99\xdf\x99\xe0\x99\xe1\x99\xe2\x99\xe3\x99\xe4\x99\xe5\x00\x00\x00\x00", /* c600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xe6\x99\xe7\x99\xe8\x99\xe9\x99\xea\x99\xeb\x99\xec\x99\xed\x99\xee\x99\xef\x99\xf0\x99\xf1\x99\xf2\x99\xf3\x99\xf4\x99\xf5\x99\xf6\x99\xf7\x99\xf8\x99\xf9\x99\xfa\x99\xfb\x99\xfc\x99\xfd\x99\xfe\x99\xff\x9a\x00\x9a\x01\x9a\x02\x9a\x03\x9a\x04\x9a\x05\x9a\x06\x9a\x07\x9a\x08\x9a\x09\x9a\x0a\x9a\x0b\x9a\x0c\x9a\x0d\x9a\x0e\x9a\x0f\x9a\x10\x9a\x11\x9a\x12\x9a\x13\x9a\x14\x9a\x15\x9a\x16\x9a\x17\x9a\x18\x9a\x19\x9a\x1a\x9a\x1b\x9a\x1c\x9a\x1d\x9a\x1e\x9a\x1f\x9a\x20\x9a\x21\x9a\x22\x9a\x23\x9a\x24", /* c680 */ "\x00\x00\x9a\x25\x9a\x26\x9a\x27\x9a\x28\x9a\x29\x9a\x2a\x9a\x2b\x9a\x2c\x9a\x2d\x9a\x2e\x9a\x2f\x9a\x30\x9a\x31\x9a\x32\x9a\x33\x9a\x34\x9a\x35\x9a\x36\x9a\x37\x9a\x38\x9a\x39\x9a\x3a\x9a\x3b\x9a\x3c\x9a\x3d\x9a\x3e\x9a\x3f\x9a\x40\x9a\x41\x9a\x42\x9a\x43\x9a\x44\x9a\x45\x9a\x46\x9a\x47\x9a\x48\x9a\x49\x9a\x4a\x9a\x4b\x9a\x4c\x9a\x4d\x9a\x4e\x9a\x4f\x9a\x50\x9a\x51\x9a\x52\x9a\x53\x9a\x54\x9a\x55\x9a\x56\x9a\x57\x9a\x58\x9a\x59\x9a\x5a\x9a\x5b\x9a\x5c\x9a\x5d\x9a\x5e\x9a\x5f\x9a\x60\x9a\x61\x9a\x62\x9a\x63\x9a\x64\x9a\x65\x9a\x66\x9a\x67\x9a\x68\x9a\x69\x9a\x6a\x9a\x6b\x9a\x72\x9a\x83\x9a\x89\x9a\x8d\x9a\x8e\x9a\x94\x9a\x95\x9a\x99\x9a\xa6\x9a\xa9\x9a\xaa\x9a\xab\x9a\xac\x9a\xad\x9a\xae\x9a\xaf\x9a\xb2\x9a\xb3\x9a\xb4\x9a\xb5\x9a\xb9\x9a\xbb\x9a\xbd\x9a\xbe\x9a\xbf\x9a\xc3\x9a\xc4\x9a\xc6\x9a\xc7\x9a\xc8\x9a\xc9\x9a\xca\x9a\xcd\x9a\xce\x9a\xcf\x9a\xd0\x9a\xd2\x9a\xd4\x9a\xd5\x9a\xd6\x9a\xd7\x9a\xd9\x9a\xda\x9a\xdb\x9a\xdc\x9a\xdd\x9a\xde\x9a\xe0\x9a\xe2\x9a\xe3\x9a\xe4\x9a\xe5\x9a\xe7\x9a\xe8\x00\x00\x00\x00", /* c700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xe9\x9a\xea\x9a\xec\x9a\xee\x9a\xf0\x9a\xf1\x9a\xf2\x9a\xf3\x9a\xf4\x9a\xf5\x9a\xf6\x9a\xf7\x9a\xf8\x9a\xfa\x9a\xfc\x9a\xfd\x9a\xfe\x9a\xff\x9b\x00\x9b\x01\x9b\x02\x9b\x04\x9b\x05\x9b\x06\x9b\x07\x9b\x09\x9b\x0a\x9b\x0b\x9b\x0c\x9b\x0d\x9b\x0e\x9b\x10\x9b\x11\x9b\x12\x9b\x14\x9b\x15\x9b\x16\x9b\x17\x9b\x18\x9b\x19\x9b\x1a\x9b\x1b\x9b\x1c\x9b\x1d\x9b\x1e\x9b\x20\x9b\x21\x9b\x22\x9b\x24\x9b\x25\x9b\x26\x9b\x27\x9b\x28\x9b\x29\x9b\x2a\x9b\x2b\x9b\x2c\x9b\x2d\x9b\x2e\x9b\x30\x9b\x31\x9b\x33\x9b\x34", /* c780 */ "\x00\x00\x9b\x35\x9b\x36\x9b\x37\x9b\x38\x9b\x39\x9b\x3a\x9b\x3d\x9b\x3e\x9b\x3f\x9b\x40\x9b\x46\x9b\x4a\x9b\x4b\x9b\x4c\x9b\x4e\x9b\x50\x9b\x52\x9b\x53\x9b\x55\x9b\x56\x9b\x57\x9b\x58\x9b\x59\x9b\x5a\x9b\x5b\x9b\x5c\x9b\x5d\x9b\x5e\x9b\x5f\x9b\x60\x9b\x61\x9b\x62\x9b\x63\x9b\x64\x9b\x65\x9b\x66\x9b\x67\x9b\x68\x9b\x69\x9b\x6a\x9b\x6b\x9b\x6c\x9b\x6d\x9b\x6e\x9b\x6f\x9b\x70\x9b\x71\x9b\x72\x9b\x73\x9b\x74\x9b\x75\x9b\x76\x9b\x77\x9b\x78\x9b\x79\x9b\x7a\x9b\x7b\x9b\x7c\x9b\x7d\x9b\x7e\x9b\x7f\x9b\x80\x9b\x81\x9b\x82\x9b\x83\x9b\x84\x9b\x85\x9b\x86\x9b\x87\x9b\x88\x9b\x89\x9b\x8a\x9b\x8b\x9b\x8c\x9b\x8d\x9b\x8e\x9b\x8f\x9b\x90\x9b\x91\x9b\x92\x9b\x93\x9b\x94\x9b\x95\x9b\x96\x9b\x97\x9b\x98\x9b\x99\x9b\x9a\x9b\x9b\x9b\x9c\x9b\x9d\x9b\x9e\x9b\x9f\x9b\xa0\x9b\xa1\x9b\xa2\x9b\xa3\x9b\xa4\x9b\xa5\x9b\xa6\x9b\xa7\x9b\xa8\x9b\xa9\x9b\xaa\x9b\xab\x9b\xac\x9b\xad\x9b\xae\x9b\xaf\x9b\xb0\x9b\xb1\x9b\xb2\x9b\xb3\x9b\xb4\x9b\xb5\x9b\xb6\x9b\xb7\x9b\xb8\x9b\xb9\x9b\xba\x9b\xbb\x9b\xbc\x9b\xbd\x9b\xbe\x9b\xbf\x00\x00\x00\x00", /* c800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xc0\x9b\xc1\x9b\xc2\x9b\xc3\x9b\xc4\x9b\xc5\x9b\xc6\x9b\xc7\x9b\xc8\x9b\xc9\x9b\xca\x9b\xcb\x9b\xcc\x9b\xcd\x9b\xce\x9b\xcf\x9b\xd0\x9b\xd1\x9b\xd2\x9b\xd3\x9b\xd4\x9b\xd5\x9b\xd6\x9b\xd7\x9b\xd8\x9b\xd9\x9b\xda\x9b\xdb\x9b\xdc\x9b\xdd\x9b\xde\x9b\xdf\x9b\xe0\x9b\xe1\x9b\xe2\x9b\xe3\x9b\xe4\x9b\xe5\x9b\xe6\x9b\xe7\x9b\xe8\x9b\xe9\x9b\xea\x9b\xeb\x9b\xec\x9b\xed\x9b\xee\x9b\xef\x9b\xf0\x9b\xf1\x9b\xf2\x9b\xf3\x9b\xf4\x9b\xf5\x9b\xf6\x9b\xf7\x9b\xf8\x9b\xf9\x9b\xfa\x9b\xfb\x9b\xfc\x9b\xfd\x9b\xfe", /* c880 */ "\x00\x00\x9b\xff\x9c\x00\x9c\x01\x9c\x02\x9c\x03\x9c\x04\x9c\x05\x9c\x06\x9c\x07\x9c\x08\x9c\x09\x9c\x0a\x9c\x0b\x9c\x0c\x9c\x0d\x9c\x0e\x9c\x0f\x9c\x10\x9c\x11\x9c\x12\x9c\x13\x9c\x14\x9c\x15\x9c\x16\x9c\x17\x9c\x18\x9c\x19\x9c\x1a\x9c\x1b\x9c\x1c\x9c\x1d\x9c\x1e\x9c\x1f\x9c\x20\x9c\x21\x9c\x22\x9c\x23\x9c\x24\x9c\x25\x9c\x26\x9c\x27\x9c\x28\x9c\x29\x9c\x2a\x9c\x2b\x9c\x2c\x9c\x2d\x9c\x2e\x9c\x2f\x9c\x30\x9c\x31\x9c\x32\x9c\x33\x9c\x34\x9c\x35\x9c\x36\x9c\x37\x9c\x38\x9c\x39\x9c\x3a\x9c\x3b\x9c\x3c\x9c\x3d\x9c\x3e\x9c\x3f\x9c\x40\x9c\x41\x9c\x42\x9c\x43\x9c\x44\x9c\x45\x9c\x46\x9c\x47\x9c\x48\x9c\x49\x9c\x4a\x9c\x4b\x9c\x4c\x9c\x4d\x9c\x4e\x9c\x4f\x9c\x50\x9c\x51\x9c\x52\x9c\x53\x9c\x54\x9c\x55\x9c\x56\x9c\x57\x9c\x58\x9c\x59\x9c\x5a\x9c\x5b\x9c\x5c\x9c\x5d\x9c\x5e\x9c\x5f\x9c\x60\x9c\x61\x9c\x62\x9c\x63\x9c\x64\x9c\x65\x9c\x66\x9c\x67\x9c\x68\x9c\x69\x9c\x6a\x9c\x6b\x9c\x6c\x9c\x6d\x9c\x6e\x9c\x6f\x9c\x70\x9c\x71\x9c\x72\x9c\x73\x9c\x74\x9c\x75\x9c\x76\x9c\x77\x9c\x78\x9c\x79\x9c\x7a\x9c\x7b\x00\x00\x00\x00", /* c900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x7d\x9c\x7e\x9c\x80\x9c\x83\x9c\x84\x9c\x89\x9c\x8a\x9c\x8c\x9c\x8f\x9c\x93\x9c\x96\x9c\x97\x9c\x98\x9c\x99\x9c\x9d\x9c\xaa\x9c\xac\x9c\xaf\x9c\xb9\x9c\xbe\x9c\xbf\x9c\xc0\x9c\xc1\x9c\xc2\x9c\xc8\x9c\xc9\x9c\xd1\x9c\xd2\x9c\xda\x9c\xdb\x9c\xe0\x9c\xe1\x9c\xe3\x9c\xe4\x9c\xe5\x9c\xe6\x9c\xe7\x9c\xe8\x9c\xe9\x9c\xea\x9c\xeb\x9c\xec\x9c\xed\x9c\xee\x9c\xef\x9c\xf0\x9c\xf1\x9c\xf2\x9c\xf3\x9c\xf4\x9c\xf5\x9c\xf6\x9c\xf7\x9c\xf8\x9c\xf9\x9c\xfa\x9c\xfb\x9c\xfc\x9c\xfd\x9c\xfe\x9c\xff\x9d\x00\x9d\x01", /* c980 */ "\x00\x00\x9d\x02\x9d\x03\x9d\x04\x9d\x05\x9d\x06\x9d\x07\x9d\x08\x9d\x09\x9d\x0a\x9d\x0b\x9d\x0c\x9d\x0d\x9d\x0e\x9d\x0f\x9d\x10\x9d\x11\x9d\x12\x9d\x13\x9d\x14\x9d\x15\x9d\x16\x9d\x17\x9d\x18\x9d\x19\x9d\x1a\x9d\x1b\x9d\x1c\x9d\x1d\x9d\x1e\x9d\x1f\x9d\x20\x9d\x21\x9d\x22\x9d\x23\x9d\x24\x9d\x25\x9d\x26\x9d\x27\x9d\x28\x9d\x29\x9d\x2a\x9d\x2b\x9d\x2c\x9d\x2d\x9d\x2e\x9d\x2f\x9d\x30\x9d\x31\x9d\x32\x9d\x33\x9d\x34\x9d\x35\x9d\x36\x9d\x37\x9d\x38\x9d\x39\x9d\x3a\x9d\x3b\x9d\x3c\x9d\x3d\x9d\x3e\x9d\x3f\x9d\x40\x9d\x41\x9d\x42\x9d\x43\x9d\x44\x9d\x45\x9d\x46\x9d\x47\x9d\x48\x9d\x49\x9d\x4a\x9d\x4b\x9d\x4c\x9d\x4d\x9d\x4e\x9d\x4f\x9d\x50\x9d\x51\x9d\x52\x9d\x53\x9d\x54\x9d\x55\x9d\x56\x9d\x57\x9d\x58\x9d\x59\x9d\x5a\x9d\x5b\x9d\x5c\x9d\x5d\x9d\x5e\x9d\x5f\x9d\x60\x9d\x61\x9d\x62\x9d\x63\x9d\x64\x9d\x65\x9d\x66\x9d\x67\x9d\x68\x9d\x69\x9d\x6a\x9d\x6b\x9d\x6c\x9d\x6d\x9d\x6e\x9d\x6f\x9d\x70\x9d\x71\x9d\x72\x9d\x73\x9d\x74\x9d\x75\x9d\x76\x9d\x77\x9d\x78\x9d\x79\x9d\x7a\x9d\x7b\x9d\x7c\x9d\x7d\x9d\x7e\x00\x00\x00\x00", /* ca00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x7f\x9d\x80\x9d\x81\x9d\x82\x9d\x83\x9d\x84\x9d\x85\x9d\x86\x9d\x87\x9d\x88\x9d\x89\x9d\x8a\x9d\x8b\x9d\x8c\x9d\x8d\x9d\x8e\x9d\x8f\x9d\x90\x9d\x91\x9d\x92\x9d\x93\x9d\x94\x9d\x95\x9d\x96\x9d\x97\x9d\x98\x9d\x99\x9d\x9a\x9d\x9b\x9d\x9c\x9d\x9d\x9d\x9e\x9d\x9f\x9d\xa0\x9d\xa1\x9d\xa2\x9d\xa3\x9d\xa4\x9d\xa5\x9d\xa6\x9d\xa7\x9d\xa8\x9d\xa9\x9d\xaa\x9d\xab\x9d\xac\x9d\xad\x9d\xae\x9d\xaf\x9d\xb0\x9d\xb1\x9d\xb2\x9d\xb3\x9d\xb4\x9d\xb5\x9d\xb6\x9d\xb7\x9d\xb8\x9d\xb9\x9d\xba\x9d\xbb\x9d\xbc\x9d\xbd", /* ca80 */ "\x00\x00\x9d\xbe\x9d\xbf\x9d\xc0\x9d\xc1\x9d\xc2\x9d\xc3\x9d\xc4\x9d\xc5\x9d\xc6\x9d\xc7\x9d\xc8\x9d\xc9\x9d\xca\x9d\xcb\x9d\xcc\x9d\xcd\x9d\xce\x9d\xcf\x9d\xd0\x9d\xd1\x9d\xd2\x9d\xd3\x9d\xd4\x9d\xd5\x9d\xd6\x9d\xd7\x9d\xd8\x9d\xd9\x9d\xda\x9d\xdb\x9d\xdc\x9d\xdd\x9d\xde\x9d\xdf\x9d\xe0\x9d\xe1\x9d\xe2\x9d\xe3\x9d\xe4\x9d\xe5\x9d\xe6\x9d\xe7\x9d\xe8\x9d\xe9\x9d\xea\x9d\xeb\x9d\xec\x9d\xed\x9d\xee\x9d\xef\x9d\xf0\x9d\xf1\x9d\xf2\x9d\xf3\x9d\xf4\x9d\xf5\x9d\xf6\x9d\xf7\x9d\xf8\x9d\xf9\x9d\xfa\x9d\xfb\x9d\xfc\x9d\xfd\x9d\xfe\x9d\xff\x9e\x00\x9e\x01\x9e\x02\x9e\x03\x9e\x04\x9e\x05\x9e\x06\x9e\x07\x9e\x08\x9e\x09\x9e\x0a\x9e\x0b\x9e\x0c\x9e\x0d\x9e\x0e\x9e\x0f\x9e\x10\x9e\x11\x9e\x12\x9e\x13\x9e\x14\x9e\x15\x9e\x16\x9e\x17\x9e\x18\x9e\x19\x9e\x1a\x9e\x1b\x9e\x1c\x9e\x1d\x9e\x1e\x9e\x24\x9e\x27\x9e\x2e\x9e\x30\x9e\x34\x9e\x3b\x9e\x3c\x9e\x40\x9e\x4d\x9e\x50\x9e\x52\x9e\x53\x9e\x54\x9e\x56\x9e\x59\x9e\x5d\x9e\x5f\x9e\x60\x9e\x61\x9e\x62\x9e\x65\x9e\x6e\x9e\x6f\x9e\x72\x9e\x74\x9e\x75\x9e\x76\x9e\x77\x00\x00\x00\x00", /* cb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x78\x9e\x79\x9e\x7a\x9e\x7b\x9e\x7c\x9e\x7d\x9e\x80\x9e\x81\x9e\x83\x9e\x84\x9e\x85\x9e\x86\x9e\x89\x9e\x8a\x9e\x8c\x9e\x8d\x9e\x8e\x9e\x8f\x9e\x90\x9e\x91\x9e\x94\x9e\x95\x9e\x96\x9e\x97\x9e\x98\x9e\x99\x9e\x9a\x9e\x9b\x9e\x9c\x9e\x9e\x9e\xa0\x9e\xa1\x9e\xa2\x9e\xa3\x9e\xa4\x9e\xa5\x9e\xa7\x9e\xa8\x9e\xa9\x9e\xaa\x9e\xab\x9e\xac\x9e\xad\x9e\xae\x9e\xaf\x9e\xb0\x9e\xb1\x9e\xb2\x9e\xb3\x9e\xb5\x9e\xb6\x9e\xb7\x9e\xb9\x9e\xba\x9e\xbc\x9e\xbf\x9e\xc0\x9e\xc1\x9e\xc2\x9e\xc3\x9e\xc5\x9e\xc6\x9e\xc7", /* cb80 */ "\x00\x00\x9e\xc8\x9e\xca\x9e\xcb\x9e\xcc\x9e\xd0\x9e\xd2\x9e\xd3\x9e\xd5\x9e\xd6\x9e\xd7\x9e\xd9\x9e\xda\x9e\xde\x9e\xe1\x9e\xe3\x9e\xe4\x9e\xe6\x9e\xe8\x9e\xeb\x9e\xec\x9e\xed\x9e\xee\x9e\xf0\x9e\xf1\x9e\xf2\x9e\xf3\x9e\xf4\x9e\xf5\x9e\xf6\x9e\xf7\x9e\xf8\x9e\xfa\x9e\xfd\x9e\xff\x9f\x00\x9f\x01\x9f\x02\x9f\x03\x9f\x04\x9f\x05\x9f\x06\x9f\x07\x9f\x08\x9f\x09\x9f\x0a\x9f\x0c\x9f\x0f\x9f\x11\x9f\x12\x9f\x14\x9f\x15\x9f\x16\x9f\x18\x9f\x1a\x9f\x1b\x9f\x1c\x9f\x1d\x9f\x1e\x9f\x1f\x9f\x21\x9f\x23\x9f\x24\x9f\x25\x9f\x26\x9f\x27\x9f\x28\x9f\x29\x9f\x2a\x9f\x2b\x9f\x2d\x9f\x2e\x9f\x30\x9f\x31\x9f\x32\x9f\x33\x9f\x34\x9f\x35\x9f\x36\x9f\x38\x9f\x3a\x9f\x3c\x9f\x3f\x9f\x40\x9f\x41\x9f\x42\x9f\x43\x9f\x45\x9f\x46\x9f\x47\x9f\x48\x9f\x49\x9f\x4a\x9f\x4b\x9f\x4c\x9f\x4d\x9f\x4e\x9f\x4f\x9f\x52\x9f\x53\x9f\x54\x9f\x55\x9f\x56\x9f\x57\x9f\x58\x9f\x59\x9f\x5a\x9f\x5b\x9f\x5c\x9f\x5d\x9f\x5e\x9f\x5f\x9f\x60\x9f\x61\x9f\x62\x9f\x63\x9f\x64\x9f\x65\x9f\x66\x9f\x67\x9f\x68\x9f\x69\x9f\x6a\x9f\x6b\x9f\x6c\x9f\x6d\x00\x00\x00\x00", /* cc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x6e\x9f\x6f\x9f\x70\x9f\x71\x9f\x72\x9f\x73\x9f\x74\x9f\x75\x9f\x76\x9f\x77\x9f\x78\x9f\x79\x9f\x7a\x9f\x7b\x9f\x7c\x9f\x7d\x9f\x7e\x9f\x81\x9f\x82\x9f\x8d\x9f\x8e\x9f\x8f\x9f\x90\x9f\x91\x9f\x92\x9f\x93\x9f\x94\x9f\x95\x9f\x96\x9f\x97\x9f\x98\x9f\x9c\x9f\x9d\x9f\x9e\x9f\xa1\x9f\xa2\x9f\xa3\x9f\xa4\x9f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* cc80 */ NULL, /* cd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xca\x02\xcb\x02\xd9\x20\x13\x20\x14\x20\x35\x21\x05\x21\x09\x21\x96\x21\x97\x21\x98\x21\x99\x22\x15\x22\x1f\x22\x23\x22\x52\x22\x66\x22\x67\x22\xbf\x25\x50\x25\x51\x25\x52\x25\x53\x25\x54\x25\x55\x25\x56\x25\x57\x25\x58\x25\x59\x25\x5a\x25\x5b\x25\x5c\x25\x5d\x25\x5e\x25\x5f\x25\x60\x25\x61\x25\x62\x25\x63\x25\x64\x25\x65\x25\x66\x25\x67\x25\x68\x25\x69\x25\x6a\x25\x6b\x25\x6c\x25\x6d\x25\x6e\x25\x6f\x25\x70\x25\x71\x25\x72\x25\x73\x25\x81\x25\x82\x25\x83\x25\x84\x25\x85\x25\x86\x25\x87\x25\x88", /* cd80 */ "\x00\x00\x25\x89\x25\x8a\x25\x8b\x25\x8c\x25\x8d\x25\x8e\x25\x8f\x25\x93\x25\x94\x25\x95\x25\xe2\x25\xe3\x25\xe4\x25\xe5\x26\x09\x22\x95\x30\x1d\x30\x1e\x30\x21\x30\x22\x30\x23\x30\x24\x30\x25\x30\x26\x30\x27\x30\x28\x30\x29\x32\xa3\x33\x8e\x33\x8f\x33\x9c\x33\x9d\x33\x9e\x33\xa1\x33\xc4\x33\xce\x33\xd1\x33\xd2\x33\xd5\xfe\x30\xfe\x49\xfe\x4a\xfe\x4b\xfe\x4c\xfe\x4d\xfe\x4e\xfe\x4f\xfe\x50\xfe\x51\xfe\x52\xfe\x54\xfe\x55\xfe\x56\xfe\x57\xfe\x59\xfe\x5a\xfe\x5b\xfe\x5c\xfe\x5d\xfe\x5e\xfe\x5f\xfe\x60\xfe\x61\xfe\x62\xfe\x63\xfe\x64\xfe\x65\xfe\x66\xfe\x68\xfe\x69\xfe\x6a\xfe\x6b\x30\x3e\x2f\xf0\x2f\xf1\x2f\xf2\x2f\xf3\x2f\xf4\x2f\xf5\x2f\xf6\x2f\xf7\x2f\xf8\x2f\xf9\x2f\xfa\x2f\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ce00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x2c\xf9\x79\xf9\x95\xf9\xe7\xf9\xf1\xfa\x0c\xfa\x0d\xfa\x0e\xfa\x0f\xfa\x11\xfa\x13\xfa\x14\xfa\x18\xfa\x1f\xfa\x20\xfa\x21\xfa\x23\xfa\x24\xfa\x27\xfa\x28\xfa\x29\x2e\x81\xe8\x16\xe8\x17\xe8\x18\x2e\x84\x34\x73\x34\x47\x2e\x88\x2e\x8b\xe8\x1e\x35\x9e\x36\x1a\x36\x0e\x2e\x8c\x2e\x97\x39\x6e\x39\x18\xe8\x26\x39\xcf\x39\xdf\x3a\x73\x39\xd0\xe8\x2b\xe8\x2c\x3b\x4e\x3c\x6e\x3c\xe0\x2e\xa7\xe8\x31\xe8\x32\x2e\xaa\x40\x56\x41\x5f\x2e\xae\x43\x37\x2e\xb3\x2e\xb6\x2e\xb7\xe8\x3b\x43\xb1\x43\xac\x2e\xbb", /* ce80 */ "\x00\x00\x43\xdd\x44\xd6\x46\x61\x46\x4c\xe8\x43\x47\x23\x47\x29\x47\x7c\x47\x8d\x2e\xca\x49\x47\x49\x7a\x49\x7d\x49\x82\x49\x83\x49\x85\x49\x86\x49\x9f\x49\x9b\x49\xb7\x49\xb6\xe8\x54\xe8\x55\x4c\xa3\x4c\x9f\x4c\xa0\x4c\xa1\x4c\x77\x4c\xa2\x4d\x13\x4d\x14\x4d\x15\x4d\x16\x4d\x17\x4d\x18\x4d\x19\x4d\xae\xe8\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* cf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x34\x01\x34\x02\x34\x03\x34\x04\x34\x05\x34\x06\x34\x07\x34\x08\x34\x09\x34\x0a\x34\x0b\x34\x0c\x34\x0d\x34\x0e\x34\x0f\x34\x10\x34\x11\x34\x12\x34\x13\x34\x14\x34\x15\x34\x16\x34\x17\x34\x18\x34\x19\x34\x1a\x34\x1b\x34\x1c\x34\x1d\x34\x1e\x34\x1f\x34\x20\x34\x21\x34\x22\x34\x23\x34\x24\x34\x25\x34\x26\x34\x27\x34\x28\x34\x29\x34\x2a\x34\x2b\x34\x2c\x34\x2d\x34\x2e\x34\x2f\x34\x30\x34\x31\x34\x32\x34\x33\x34\x34\x34\x35\x34\x36\x34\x37\x34\x38\x34\x39\x34\x3a\x34\x3b\x34\x3c\x34\x3d\x34\x3e", /* cf80 */ "\x34\x3f\x34\x40\x34\x41\x34\x42\x34\x43\x34\x44\x34\x45\x34\x46\x34\x48\x34\x49\x34\x4a\x34\x4b\x34\x4c\x34\x4d\x34\x4e\x34\x4f\x34\x50\x34\x51\x34\x52\x34\x53\x34\x54\x34\x55\x34\x56\x34\x57\x34\x58\x34\x59\x34\x5a\x34\x5b\x34\x5c\x34\x5d\x34\x5e\x34\x5f\x34\x60\x34\x61\x34\x62\x34\x63\x34\x64\x34\x65\x34\x66\x34\x67\x34\x68\x34\x69\x34\x6a\x34\x6b\x34\x6c\x34\x6d\x34\x6e\x34\x6f\x34\x70\x34\x71\x34\x72\x34\x74\x34\x75\x34\x76\x34\x77\x34\x78\x34\x79\x34\x7a\x34\x7b\x34\x7c\x34\x7d\x34\x7e\x34\x7f\x34\x80\x34\x81\x34\x82\x34\x83\x34\x84\x34\x85\x34\x86\x34\x87\x34\x88\x34\x89\x34\x8a\x34\x8b\x34\x8c\x34\x8d\x34\x8e\x34\x8f\x34\x90\x34\x91\x34\x92\x34\x93\x34\x94\x34\x95\x34\x96\x34\x97\x34\x98\x34\x99\x34\x9a\x34\x9b\x34\x9c\x34\x9d\x34\x9e\x34\x9f\x34\xa0\x34\xa1\x34\xa2\x34\xa3\x34\xa4\x34\xa5\x34\xa6\x34\xa7\x34\xa8\x34\xa9\x34\xaa\x34\xab\x34\xac\x34\xad\x34\xae\x34\xaf\x34\xb0\x34\xb1\x34\xb2\x34\xb3\x34\xb4\x34\xb5\x34\xb6\x34\xb7\x34\xb8\x34\xb9\x34\xba\x34\xbb\x34\xbc\x34\xbd\x34\xbe\x34\xbf\x00\x00", /* d000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\xc0\x34\xc1\x34\xc2\x34\xc3\x34\xc4\x34\xc5\x34\xc6\x34\xc7\x34\xc8\x34\xc9\x34\xca\x34\xcb\x34\xcc\x34\xcd\x34\xce\x34\xcf\x34\xd0\x34\xd1\x34\xd2\x34\xd3\x34\xd4\x34\xd5\x34\xd6\x34\xd7\x34\xd8\x34\xd9\x34\xda\x34\xdb\x34\xdc\x34\xdd\x34\xde\x34\xdf\x34\xe0\x34\xe1\x34\xe2\x34\xe3\x34\xe4\x34\xe5\x34\xe6\x34\xe7\x34\xe8\x34\xe9\x34\xea\x34\xeb\x34\xec\x34\xed\x34\xee\x34\xef\x34\xf0\x34\xf1\x34\xf2\x34\xf3\x34\xf4\x34\xf5\x34\xf6\x34\xf7\x34\xf8\x34\xf9\x34\xfa\x34\xfb\x34\xfc\x34\xfd\x34\xfe", /* d080 */ "\x34\xff\x35\x00\x35\x01\x35\x02\x35\x03\x35\x04\x35\x05\x35\x06\x35\x07\x35\x08\x35\x09\x35\x0a\x35\x0b\x35\x0c\x35\x0d\x35\x0e\x35\x0f\x35\x10\x35\x11\x35\x12\x35\x13\x35\x14\x35\x15\x35\x16\x35\x17\x35\x18\x35\x19\x35\x1a\x35\x1b\x35\x1c\x35\x1d\x35\x1e\x35\x1f\x35\x20\x35\x21\x35\x22\x35\x23\x35\x24\x35\x25\x35\x26\x35\x27\x35\x28\x35\x29\x35\x2a\x35\x2b\x35\x2c\x35\x2d\x35\x2e\x35\x2f\x35\x30\x35\x31\x35\x32\x35\x33\x35\x34\x35\x35\x35\x36\x35\x37\x35\x38\x35\x39\x35\x3a\x35\x3b\x35\x3c\x35\x3d\x35\x3e\x35\x3f\x35\x40\x35\x41\x35\x42\x35\x43\x35\x44\x35\x45\x35\x46\x35\x47\x35\x48\x35\x49\x35\x4a\x35\x4b\x35\x4c\x35\x4d\x35\x4e\x35\x4f\x35\x50\x35\x51\x35\x52\x35\x53\x35\x54\x35\x55\x35\x56\x35\x57\x35\x58\x35\x59\x35\x5a\x35\x5b\x35\x5c\x35\x5d\x35\x5e\x35\x5f\x35\x60\x35\x61\x35\x62\x35\x63\x35\x64\x35\x65\x35\x66\x35\x67\x35\x68\x35\x69\x35\x6a\x35\x6b\x35\x6c\x35\x6d\x35\x6e\x35\x6f\x35\x70\x35\x71\x35\x72\x35\x73\x35\x74\x35\x75\x35\x76\x35\x77\x35\x78\x35\x79\x35\x7a\x35\x7b\x35\x7c\x35\x7d\x00\x00", /* d100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x7e\x35\x7f\x35\x80\x35\x81\x35\x82\x35\x83\x35\x84\x35\x85\x35\x86\x35\x87\x35\x88\x35\x89\x35\x8a\x35\x8b\x35\x8c\x35\x8d\x35\x8e\x35\x8f\x35\x90\x35\x91\x35\x92\x35\x93\x35\x94\x35\x95\x35\x96\x35\x97\x35\x98\x35\x99\x35\x9a\x35\x9b\x35\x9c\x35\x9d\x35\x9f\x35\xa0\x35\xa1\x35\xa2\x35\xa3\x35\xa4\x35\xa5\x35\xa6\x35\xa7\x35\xa8\x35\xa9\x35\xaa\x35\xab\x35\xac\x35\xad\x35\xae\x35\xaf\x35\xb0\x35\xb1\x35\xb2\x35\xb3\x35\xb4\x35\xb5\x35\xb6\x35\xb7\x35\xb8\x35\xb9\x35\xba\x35\xbb\x35\xbc\x35\xbd", /* d180 */ "\x35\xbe\x35\xbf\x35\xc0\x35\xc1\x35\xc2\x35\xc3\x35\xc4\x35\xc5\x35\xc6\x35\xc7\x35\xc8\x35\xc9\x35\xca\x35\xcb\x35\xcc\x35\xcd\x35\xce\x35\xcf\x35\xd0\x35\xd1\x35\xd2\x35\xd3\x35\xd4\x35\xd5\x35\xd6\x35\xd7\x35\xd8\x35\xd9\x35\xda\x35\xdb\x35\xdc\x35\xdd\x35\xde\x35\xdf\x35\xe0\x35\xe1\x35\xe2\x35\xe3\x35\xe4\x35\xe5\x35\xe6\x35\xe7\x35\xe8\x35\xe9\x35\xea\x35\xeb\x35\xec\x35\xed\x35\xee\x35\xef\x35\xf0\x35\xf1\x35\xf2\x35\xf3\x35\xf4\x35\xf5\x35\xf6\x35\xf7\x35\xf8\x35\xf9\x35\xfa\x35\xfb\x35\xfc\x35\xfd\x35\xfe\x35\xff\x36\x00\x36\x01\x36\x02\x36\x03\x36\x04\x36\x05\x36\x06\x36\x07\x36\x08\x36\x09\x36\x0a\x36\x0b\x36\x0c\x36\x0d\x36\x0f\x36\x10\x36\x11\x36\x12\x36\x13\x36\x14\x36\x15\x36\x16\x36\x17\x36\x18\x36\x19\x36\x1b\x36\x1c\x36\x1d\x36\x1e\x36\x1f\x36\x20\x36\x21\x36\x22\x36\x23\x36\x24\x36\x25\x36\x26\x36\x27\x36\x28\x36\x29\x36\x2a\x36\x2b\x36\x2c\x36\x2d\x36\x2e\x36\x2f\x36\x30\x36\x31\x36\x32\x36\x33\x36\x34\x36\x35\x36\x36\x36\x37\x36\x38\x36\x39\x36\x3a\x36\x3b\x36\x3c\x36\x3d\x36\x3e\x00\x00", /* d200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x3f\x36\x40\x36\x41\x36\x42\x36\x43\x36\x44\x36\x45\x36\x46\x36\x47\x36\x48\x36\x49\x36\x4a\x36\x4b\x36\x4c\x36\x4d\x36\x4e\x36\x4f\x36\x50\x36\x51\x36\x52\x36\x53\x36\x54\x36\x55\x36\x56\x36\x57\x36\x58\x36\x59\x36\x5a\x36\x5b\x36\x5c\x36\x5d\x36\x5e\x36\x5f\x36\x60\x36\x61\x36\x62\x36\x63\x36\x64\x36\x65\x36\x66\x36\x67\x36\x68\x36\x69\x36\x6a\x36\x6b\x36\x6c\x36\x6d\x36\x6e\x36\x6f\x36\x70\x36\x71\x36\x72\x36\x73\x36\x74\x36\x75\x36\x76\x36\x77\x36\x78\x36\x79\x36\x7a\x36\x7b\x36\x7c\x36\x7d", /* d280 */ "\x36\x7e\x36\x7f\x36\x80\x36\x81\x36\x82\x36\x83\x36\x84\x36\x85\x36\x86\x36\x87\x36\x88\x36\x89\x36\x8a\x36\x8b\x36\x8c\x36\x8d\x36\x8e\x36\x8f\x36\x90\x36\x91\x36\x92\x36\x93\x36\x94\x36\x95\x36\x96\x36\x97\x36\x98\x36\x99\x36\x9a\x36\x9b\x36\x9c\x36\x9d\x36\x9e\x36\x9f\x36\xa0\x36\xa1\x36\xa2\x36\xa3\x36\xa4\x36\xa5\x36\xa6\x36\xa7\x36\xa8\x36\xa9\x36\xaa\x36\xab\x36\xac\x36\xad\x36\xae\x36\xaf\x36\xb0\x36\xb1\x36\xb2\x36\xb3\x36\xb4\x36\xb5\x36\xb6\x36\xb7\x36\xb8\x36\xb9\x36\xba\x36\xbb\x36\xbc\x36\xbd\x36\xbe\x36\xbf\x36\xc0\x36\xc1\x36\xc2\x36\xc3\x36\xc4\x36\xc5\x36\xc6\x36\xc7\x36\xc8\x36\xc9\x36\xca\x36\xcb\x36\xcc\x36\xcd\x36\xce\x36\xcf\x36\xd0\x36\xd1\x36\xd2\x36\xd3\x36\xd4\x36\xd5\x36\xd6\x36\xd7\x36\xd8\x36\xd9\x36\xda\x36\xdb\x36\xdc\x36\xdd\x36\xde\x36\xdf\x36\xe0\x36\xe1\x36\xe2\x36\xe3\x36\xe4\x36\xe5\x36\xe6\x36\xe7\x36\xe8\x36\xe9\x36\xea\x36\xeb\x36\xec\x36\xed\x36\xee\x36\xef\x36\xf0\x36\xf1\x36\xf2\x36\xf3\x36\xf4\x36\xf5\x36\xf6\x36\xf7\x36\xf8\x36\xf9\x36\xfa\x36\xfb\x36\xfc\x00\x00", /* d300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\xfd\x36\xfe\x36\xff\x37\x00\x37\x01\x37\x02\x37\x03\x37\x04\x37\x05\x37\x06\x37\x07\x37\x08\x37\x09\x37\x0a\x37\x0b\x37\x0c\x37\x0d\x37\x0e\x37\x0f\x37\x10\x37\x11\x37\x12\x37\x13\x37\x14\x37\x15\x37\x16\x37\x17\x37\x18\x37\x19\x37\x1a\x37\x1b\x37\x1c\x37\x1d\x37\x1e\x37\x1f\x37\x20\x37\x21\x37\x22\x37\x23\x37\x24\x37\x25\x37\x26\x37\x27\x37\x28\x37\x29\x37\x2a\x37\x2b\x37\x2c\x37\x2d\x37\x2e\x37\x2f\x37\x30\x37\x31\x37\x32\x37\x33\x37\x34\x37\x35\x37\x36\x37\x37\x37\x38\x37\x39\x37\x3a\x37\x3b", /* d380 */ "\x37\x3c\x37\x3d\x37\x3e\x37\x3f\x37\x40\x37\x41\x37\x42\x37\x43\x37\x44\x37\x45\x37\x46\x37\x47\x37\x48\x37\x49\x37\x4a\x37\x4b\x37\x4c\x37\x4d\x37\x4e\x37\x4f\x37\x50\x37\x51\x37\x52\x37\x53\x37\x54\x37\x55\x37\x56\x37\x57\x37\x58\x37\x59\x37\x5a\x37\x5b\x37\x5c\x37\x5d\x37\x5e\x37\x5f\x37\x60\x37\x61\x37\x62\x37\x63\x37\x64\x37\x65\x37\x66\x37\x67\x37\x68\x37\x69\x37\x6a\x37\x6b\x37\x6c\x37\x6d\x37\x6e\x37\x6f\x37\x70\x37\x71\x37\x72\x37\x73\x37\x74\x37\x75\x37\x76\x37\x77\x37\x78\x37\x79\x37\x7a\x37\x7b\x37\x7c\x37\x7d\x37\x7e\x37\x7f\x37\x80\x37\x81\x37\x82\x37\x83\x37\x84\x37\x85\x37\x86\x37\x87\x37\x88\x37\x89\x37\x8a\x37\x8b\x37\x8c\x37\x8d\x37\x8e\x37\x8f\x37\x90\x37\x91\x37\x92\x37\x93\x37\x94\x37\x95\x37\x96\x37\x97\x37\x98\x37\x99\x37\x9a\x37\x9b\x37\x9c\x37\x9d\x37\x9e\x37\x9f\x37\xa0\x37\xa1\x37\xa2\x37\xa3\x37\xa4\x37\xa5\x37\xa6\x37\xa7\x37\xa8\x37\xa9\x37\xaa\x37\xab\x37\xac\x37\xad\x37\xae\x37\xaf\x37\xb0\x37\xb1\x37\xb2\x37\xb3\x37\xb4\x37\xb5\x37\xb6\x37\xb7\x37\xb8\x37\xb9\x37\xba\x00\x00", /* d400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\xbb\x37\xbc\x37\xbd\x37\xbe\x37\xbf\x37\xc0\x37\xc1\x37\xc2\x37\xc3\x37\xc4\x37\xc5\x37\xc6\x37\xc7\x37\xc8\x37\xc9\x37\xca\x37\xcb\x37\xcc\x37\xcd\x37\xce\x37\xcf\x37\xd0\x37\xd1\x37\xd2\x37\xd3\x37\xd4\x37\xd5\x37\xd6\x37\xd7\x37\xd8\x37\xd9\x37\xda\x37\xdb\x37\xdc\x37\xdd\x37\xde\x37\xdf\x37\xe0\x37\xe1\x37\xe2\x37\xe3\x37\xe4\x37\xe5\x37\xe6\x37\xe7\x37\xe8\x37\xe9\x37\xea\x37\xeb\x37\xec\x37\xed\x37\xee\x37\xef\x37\xf0\x37\xf1\x37\xf2\x37\xf3\x37\xf4\x37\xf5\x37\xf6\x37\xf7\x37\xf8\x37\xf9", /* d480 */ "\x37\xfa\x37\xfb\x37\xfc\x37\xfd\x37\xfe\x37\xff\x38\x00\x38\x01\x38\x02\x38\x03\x38\x04\x38\x05\x38\x06\x38\x07\x38\x08\x38\x09\x38\x0a\x38\x0b\x38\x0c\x38\x0d\x38\x0e\x38\x0f\x38\x10\x38\x11\x38\x12\x38\x13\x38\x14\x38\x15\x38\x16\x38\x17\x38\x18\x38\x19\x38\x1a\x38\x1b\x38\x1c\x38\x1d\x38\x1e\x38\x1f\x38\x20\x38\x21\x38\x22\x38\x23\x38\x24\x38\x25\x38\x26\x38\x27\x38\x28\x38\x29\x38\x2a\x38\x2b\x38\x2c\x38\x2d\x38\x2e\x38\x2f\x38\x30\x38\x31\x38\x32\x38\x33\x38\x34\x38\x35\x38\x36\x38\x37\x38\x38\x38\x39\x38\x3a\x38\x3b\x38\x3c\x38\x3d\x38\x3e\x38\x3f\x38\x40\x38\x41\x38\x42\x38\x43\x38\x44\x38\x45\x38\x46\x38\x47\x38\x48\x38\x49\x38\x4a\x38\x4b\x38\x4c\x38\x4d\x38\x4e\x38\x4f\x38\x50\x38\x51\x38\x52\x38\x53\x38\x54\x38\x55\x38\x56\x38\x57\x38\x58\x38\x59\x38\x5a\x38\x5b\x38\x5c\x38\x5d\x38\x5e\x38\x5f\x38\x60\x38\x61\x38\x62\x38\x63\x38\x64\x38\x65\x38\x66\x38\x67\x38\x68\x38\x69\x38\x6a\x38\x6b\x38\x6c\x38\x6d\x38\x6e\x38\x6f\x38\x70\x38\x71\x38\x72\x38\x73\x38\x74\x38\x75\x38\x76\x38\x77\x38\x78\x00\x00", /* d500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x79\x38\x7a\x38\x7b\x38\x7c\x38\x7d\x38\x7e\x38\x7f\x38\x80\x38\x81\x38\x82\x38\x83\x38\x84\x38\x85\x38\x86\x38\x87\x38\x88\x38\x89\x38\x8a\x38\x8b\x38\x8c\x38\x8d\x38\x8e\x38\x8f\x38\x90\x38\x91\x38\x92\x38\x93\x38\x94\x38\x95\x38\x96\x38\x97\x38\x98\x38\x99\x38\x9a\x38\x9b\x38\x9c\x38\x9d\x38\x9e\x38\x9f\x38\xa0\x38\xa1\x38\xa2\x38\xa3\x38\xa4\x38\xa5\x38\xa6\x38\xa7\x38\xa8\x38\xa9\x38\xaa\x38\xab\x38\xac\x38\xad\x38\xae\x38\xaf\x38\xb0\x38\xb1\x38\xb2\x38\xb3\x38\xb4\x38\xb5\x38\xb6\x38\xb7", /* d580 */ "\x38\xb8\x38\xb9\x38\xba\x38\xbb\x38\xbc\x38\xbd\x38\xbe\x38\xbf\x38\xc0\x38\xc1\x38\xc2\x38\xc3\x38\xc4\x38\xc5\x38\xc6\x38\xc7\x38\xc8\x38\xc9\x38\xca\x38\xcb\x38\xcc\x38\xcd\x38\xce\x38\xcf\x38\xd0\x38\xd1\x38\xd2\x38\xd3\x38\xd4\x38\xd5\x38\xd6\x38\xd7\x38\xd8\x38\xd9\x38\xda\x38\xdb\x38\xdc\x38\xdd\x38\xde\x38\xdf\x38\xe0\x38\xe1\x38\xe2\x38\xe3\x38\xe4\x38\xe5\x38\xe6\x38\xe7\x38\xe8\x38\xe9\x38\xea\x38\xeb\x38\xec\x38\xed\x38\xee\x38\xef\x38\xf0\x38\xf1\x38\xf2\x38\xf3\x38\xf4\x38\xf5\x38\xf6\x38\xf7\x38\xf8\x38\xf9\x38\xfa\x38\xfb\x38\xfc\x38\xfd\x38\xfe\x38\xff\x39\x00\x39\x01\x39\x02\x39\x03\x39\x04\x39\x05\x39\x06\x39\x07\x39\x08\x39\x09\x39\x0a\x39\x0b\x39\x0c\x39\x0d\x39\x0e\x39\x0f\x39\x10\x39\x11\x39\x12\x39\x13\x39\x14\x39\x15\x39\x16\x39\x17\x39\x19\x39\x1a\x39\x1b\x39\x1c\x39\x1d\x39\x1e\x39\x1f\x39\x20\x39\x21\x39\x22\x39\x23\x39\x24\x39\x25\x39\x26\x39\x27\x39\x28\x39\x29\x39\x2a\x39\x2b\x39\x2c\x39\x2d\x39\x2e\x39\x2f\x39\x30\x39\x31\x39\x32\x39\x33\x39\x34\x39\x35\x39\x36\x39\x37\x00\x00", /* d600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x38\x39\x39\x39\x3a\x39\x3b\x39\x3c\x39\x3d\x39\x3e\x39\x3f\x39\x40\x39\x41\x39\x42\x39\x43\x39\x44\x39\x45\x39\x46\x39\x47\x39\x48\x39\x49\x39\x4a\x39\x4b\x39\x4c\x39\x4d\x39\x4e\x39\x4f\x39\x50\x39\x51\x39\x52\x39\x53\x39\x54\x39\x55\x39\x56\x39\x57\x39\x58\x39\x59\x39\x5a\x39\x5b\x39\x5c\x39\x5d\x39\x5e\x39\x5f\x39\x60\x39\x61\x39\x62\x39\x63\x39\x64\x39\x65\x39\x66\x39\x67\x39\x68\x39\x69\x39\x6a\x39\x6b\x39\x6c\x39\x6d\x39\x6f\x39\x70\x39\x71\x39\x72\x39\x73\x39\x74\x39\x75\x39\x76\x39\x77", /* d680 */ "\x39\x78\x39\x79\x39\x7a\x39\x7b\x39\x7c\x39\x7d\x39\x7e\x39\x7f\x39\x80\x39\x81\x39\x82\x39\x83\x39\x84\x39\x85\x39\x86\x39\x87\x39\x88\x39\x89\x39\x8a\x39\x8b\x39\x8c\x39\x8d\x39\x8e\x39\x8f\x39\x90\x39\x91\x39\x92\x39\x93\x39\x94\x39\x95\x39\x96\x39\x97\x39\x98\x39\x99\x39\x9a\x39\x9b\x39\x9c\x39\x9d\x39\x9e\x39\x9f\x39\xa0\x39\xa1\x39\xa2\x39\xa3\x39\xa4\x39\xa5\x39\xa6\x39\xa7\x39\xa8\x39\xa9\x39\xaa\x39\xab\x39\xac\x39\xad\x39\xae\x39\xaf\x39\xb0\x39\xb1\x39\xb2\x39\xb3\x39\xb4\x39\xb5\x39\xb6\x39\xb7\x39\xb8\x39\xb9\x39\xba\x39\xbb\x39\xbc\x39\xbd\x39\xbe\x39\xbf\x39\xc0\x39\xc1\x39\xc2\x39\xc3\x39\xc4\x39\xc5\x39\xc6\x39\xc7\x39\xc8\x39\xc9\x39\xca\x39\xcb\x39\xcc\x39\xcd\x39\xce\x39\xd1\x39\xd2\x39\xd3\x39\xd4\x39\xd5\x39\xd6\x39\xd7\x39\xd8\x39\xd9\x39\xda\x39\xdb\x39\xdc\x39\xdd\x39\xde\x39\xe0\x39\xe1\x39\xe2\x39\xe3\x39\xe4\x39\xe5\x39\xe6\x39\xe7\x39\xe8\x39\xe9\x39\xea\x39\xeb\x39\xec\x39\xed\x39\xee\x39\xef\x39\xf0\x39\xf1\x39\xf2\x39\xf3\x39\xf4\x39\xf5\x39\xf6\x39\xf7\x39\xf8\x39\xf9\x00\x00", /* d700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\xfa\x39\xfb\x39\xfc\x39\xfd\x39\xfe\x39\xff\x3a\x00\x3a\x01\x3a\x02\x3a\x03\x3a\x04\x3a\x05\x3a\x06\x3a\x07\x3a\x08\x3a\x09\x3a\x0a\x3a\x0b\x3a\x0c\x3a\x0d\x3a\x0e\x3a\x0f\x3a\x10\x3a\x11\x3a\x12\x3a\x13\x3a\x14\x3a\x15\x3a\x16\x3a\x17\x3a\x18\x3a\x19\x3a\x1a\x3a\x1b\x3a\x1c\x3a\x1d\x3a\x1e\x3a\x1f\x3a\x20\x3a\x21\x3a\x22\x3a\x23\x3a\x24\x3a\x25\x3a\x26\x3a\x27\x3a\x28\x3a\x29\x3a\x2a\x3a\x2b\x3a\x2c\x3a\x2d\x3a\x2e\x3a\x2f\x3a\x30\x3a\x31\x3a\x32\x3a\x33\x3a\x34\x3a\x35\x3a\x36\x3a\x37\x3a\x38", /* d780 */ "\x3a\x39\x3a\x3a\x3a\x3b\x3a\x3c\x3a\x3d\x3a\x3e\x3a\x3f\x3a\x40\x3a\x41\x3a\x42\x3a\x43\x3a\x44\x3a\x45\x3a\x46\x3a\x47\x3a\x48\x3a\x49\x3a\x4a\x3a\x4b\x3a\x4c\x3a\x4d\x3a\x4e\x3a\x4f\x3a\x50\x3a\x51\x3a\x52\x3a\x53\x3a\x54\x3a\x55\x3a\x56\x3a\x57\x3a\x58\x3a\x59\x3a\x5a\x3a\x5b\x3a\x5c\x3a\x5d\x3a\x5e\x3a\x5f\x3a\x60\x3a\x61\x3a\x62\x3a\x63\x3a\x64\x3a\x65\x3a\x66\x3a\x67\x3a\x68\x3a\x69\x3a\x6a\x3a\x6b\x3a\x6c\x3a\x6d\x3a\x6e\x3a\x6f\x3a\x70\x3a\x71\x3a\x72\x3a\x74\x3a\x75\x3a\x76\x3a\x77\x3a\x78\x3a\x79\x3a\x7a\x3a\x7b\x3a\x7c\x3a\x7d\x3a\x7e\x3a\x7f\x3a\x80\x3a\x81\x3a\x82\x3a\x83\x3a\x84\x3a\x85\x3a\x86\x3a\x87\x3a\x88\x3a\x89\x3a\x8a\x3a\x8b\x3a\x8c\x3a\x8d\x3a\x8e\x3a\x8f\x3a\x90\x3a\x91\x3a\x92\x3a\x93\x3a\x94\x3a\x95\x3a\x96\x3a\x97\x3a\x98\x3a\x99\x3a\x9a\x3a\x9b\x3a\x9c\x3a\x9d\x3a\x9e\x3a\x9f\x3a\xa0\x3a\xa1\x3a\xa2\x3a\xa3\x3a\xa4\x3a\xa5\x3a\xa6\x3a\xa7\x3a\xa8\x3a\xa9\x3a\xaa\x3a\xab\x3a\xac\x3a\xad\x3a\xae\x3a\xaf\x3a\xb0\x3a\xb1\x3a\xb2\x3a\xb3\x3a\xb4\x3a\xb5\x3a\xb6\x3a\xb7\x3a\xb8\x00\x00", /* d800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\xb9\x3a\xba\x3a\xbb\x3a\xbc\x3a\xbd\x3a\xbe\x3a\xbf\x3a\xc0\x3a\xc1\x3a\xc2\x3a\xc3\x3a\xc4\x3a\xc5\x3a\xc6\x3a\xc7\x3a\xc8\x3a\xc9\x3a\xca\x3a\xcb\x3a\xcc\x3a\xcd\x3a\xce\x3a\xcf\x3a\xd0\x3a\xd1\x3a\xd2\x3a\xd3\x3a\xd4\x3a\xd5\x3a\xd6\x3a\xd7\x3a\xd8\x3a\xd9\x3a\xda\x3a\xdb\x3a\xdc\x3a\xdd\x3a\xde\x3a\xdf\x3a\xe0\x3a\xe1\x3a\xe2\x3a\xe3\x3a\xe4\x3a\xe5\x3a\xe6\x3a\xe7\x3a\xe8\x3a\xe9\x3a\xea\x3a\xeb\x3a\xec\x3a\xed\x3a\xee\x3a\xef\x3a\xf0\x3a\xf1\x3a\xf2\x3a\xf3\x3a\xf4\x3a\xf5\x3a\xf6\x3a\xf7", /* d880 */ "\x3a\xf8\x3a\xf9\x3a\xfa\x3a\xfb\x3a\xfc\x3a\xfd\x3a\xfe\x3a\xff\x3b\x00\x3b\x01\x3b\x02\x3b\x03\x3b\x04\x3b\x05\x3b\x06\x3b\x07\x3b\x08\x3b\x09\x3b\x0a\x3b\x0b\x3b\x0c\x3b\x0d\x3b\x0e\x3b\x0f\x3b\x10\x3b\x11\x3b\x12\x3b\x13\x3b\x14\x3b\x15\x3b\x16\x3b\x17\x3b\x18\x3b\x19\x3b\x1a\x3b\x1b\x3b\x1c\x3b\x1d\x3b\x1e\x3b\x1f\x3b\x20\x3b\x21\x3b\x22\x3b\x23\x3b\x24\x3b\x25\x3b\x26\x3b\x27\x3b\x28\x3b\x29\x3b\x2a\x3b\x2b\x3b\x2c\x3b\x2d\x3b\x2e\x3b\x2f\x3b\x30\x3b\x31\x3b\x32\x3b\x33\x3b\x34\x3b\x35\x3b\x36\x3b\x37\x3b\x38\x3b\x39\x3b\x3a\x3b\x3b\x3b\x3c\x3b\x3d\x3b\x3e\x3b\x3f\x3b\x40\x3b\x41\x3b\x42\x3b\x43\x3b\x44\x3b\x45\x3b\x46\x3b\x47\x3b\x48\x3b\x49\x3b\x4a\x3b\x4b\x3b\x4c\x3b\x4d\x3b\x4f\x3b\x50\x3b\x51\x3b\x52\x3b\x53\x3b\x54\x3b\x55\x3b\x56\x3b\x57\x3b\x58\x3b\x59\x3b\x5a\x3b\x5b\x3b\x5c\x3b\x5d\x3b\x5e\x3b\x5f\x3b\x60\x3b\x61\x3b\x62\x3b\x63\x3b\x64\x3b\x65\x3b\x66\x3b\x67\x3b\x68\x3b\x69\x3b\x6a\x3b\x6b\x3b\x6c\x3b\x6d\x3b\x6e\x3b\x6f\x3b\x70\x3b\x71\x3b\x72\x3b\x73\x3b\x74\x3b\x75\x3b\x76\x3b\x77\x00\x00", /* d900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x78\x3b\x79\x3b\x7a\x3b\x7b\x3b\x7c\x3b\x7d\x3b\x7e\x3b\x7f\x3b\x80\x3b\x81\x3b\x82\x3b\x83\x3b\x84\x3b\x85\x3b\x86\x3b\x87\x3b\x88\x3b\x89\x3b\x8a\x3b\x8b\x3b\x8c\x3b\x8d\x3b\x8e\x3b\x8f\x3b\x90\x3b\x91\x3b\x92\x3b\x93\x3b\x94\x3b\x95\x3b\x96\x3b\x97\x3b\x98\x3b\x99\x3b\x9a\x3b\x9b\x3b\x9c\x3b\x9d\x3b\x9e\x3b\x9f\x3b\xa0\x3b\xa1\x3b\xa2\x3b\xa3\x3b\xa4\x3b\xa5\x3b\xa6\x3b\xa7\x3b\xa8\x3b\xa9\x3b\xaa\x3b\xab\x3b\xac\x3b\xad\x3b\xae\x3b\xaf\x3b\xb0\x3b\xb1\x3b\xb2\x3b\xb3\x3b\xb4\x3b\xb5\x3b\xb6", /* d980 */ "\x3b\xb7\x3b\xb8\x3b\xb9\x3b\xba\x3b\xbb\x3b\xbc\x3b\xbd\x3b\xbe\x3b\xbf\x3b\xc0\x3b\xc1\x3b\xc2\x3b\xc3\x3b\xc4\x3b\xc5\x3b\xc6\x3b\xc7\x3b\xc8\x3b\xc9\x3b\xca\x3b\xcb\x3b\xcc\x3b\xcd\x3b\xce\x3b\xcf\x3b\xd0\x3b\xd1\x3b\xd2\x3b\xd3\x3b\xd4\x3b\xd5\x3b\xd6\x3b\xd7\x3b\xd8\x3b\xd9\x3b\xda\x3b\xdb\x3b\xdc\x3b\xdd\x3b\xde\x3b\xdf\x3b\xe0\x3b\xe1\x3b\xe2\x3b\xe3\x3b\xe4\x3b\xe5\x3b\xe6\x3b\xe7\x3b\xe8\x3b\xe9\x3b\xea\x3b\xeb\x3b\xec\x3b\xed\x3b\xee\x3b\xef\x3b\xf0\x3b\xf1\x3b\xf2\x3b\xf3\x3b\xf4\x3b\xf5\x3b\xf6\x3b\xf7\x3b\xf8\x3b\xf9\x3b\xfa\x3b\xfb\x3b\xfc\x3b\xfd\x3b\xfe\x3b\xff\x3c\x00\x3c\x01\x3c\x02\x3c\x03\x3c\x04\x3c\x05\x3c\x06\x3c\x07\x3c\x08\x3c\x09\x3c\x0a\x3c\x0b\x3c\x0c\x3c\x0d\x3c\x0e\x3c\x0f\x3c\x10\x3c\x11\x3c\x12\x3c\x13\x3c\x14\x3c\x15\x3c\x16\x3c\x17\x3c\x18\x3c\x19\x3c\x1a\x3c\x1b\x3c\x1c\x3c\x1d\x3c\x1e\x3c\x1f\x3c\x20\x3c\x21\x3c\x22\x3c\x23\x3c\x24\x3c\x25\x3c\x26\x3c\x27\x3c\x28\x3c\x29\x3c\x2a\x3c\x2b\x3c\x2c\x3c\x2d\x3c\x2e\x3c\x2f\x3c\x30\x3c\x31\x3c\x32\x3c\x33\x3c\x34\x3c\x35\x00\x00", /* da00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x36\x3c\x37\x3c\x38\x3c\x39\x3c\x3a\x3c\x3b\x3c\x3c\x3c\x3d\x3c\x3e\x3c\x3f\x3c\x40\x3c\x41\x3c\x42\x3c\x43\x3c\x44\x3c\x45\x3c\x46\x3c\x47\x3c\x48\x3c\x49\x3c\x4a\x3c\x4b\x3c\x4c\x3c\x4d\x3c\x4e\x3c\x4f\x3c\x50\x3c\x51\x3c\x52\x3c\x53\x3c\x54\x3c\x55\x3c\x56\x3c\x57\x3c\x58\x3c\x59\x3c\x5a\x3c\x5b\x3c\x5c\x3c\x5d\x3c\x5e\x3c\x5f\x3c\x60\x3c\x61\x3c\x62\x3c\x63\x3c\x64\x3c\x65\x3c\x66\x3c\x67\x3c\x68\x3c\x69\x3c\x6a\x3c\x6b\x3c\x6c\x3c\x6d\x3c\x6f\x3c\x70\x3c\x71\x3c\x72\x3c\x73\x3c\x74\x3c\x75", /* da80 */ "\x3c\x76\x3c\x77\x3c\x78\x3c\x79\x3c\x7a\x3c\x7b\x3c\x7c\x3c\x7d\x3c\x7e\x3c\x7f\x3c\x80\x3c\x81\x3c\x82\x3c\x83\x3c\x84\x3c\x85\x3c\x86\x3c\x87\x3c\x88\x3c\x89\x3c\x8a\x3c\x8b\x3c\x8c\x3c\x8d\x3c\x8e\x3c\x8f\x3c\x90\x3c\x91\x3c\x92\x3c\x93\x3c\x94\x3c\x95\x3c\x96\x3c\x97\x3c\x98\x3c\x99\x3c\x9a\x3c\x9b\x3c\x9c\x3c\x9d\x3c\x9e\x3c\x9f\x3c\xa0\x3c\xa1\x3c\xa2\x3c\xa3\x3c\xa4\x3c\xa5\x3c\xa6\x3c\xa7\x3c\xa8\x3c\xa9\x3c\xaa\x3c\xab\x3c\xac\x3c\xad\x3c\xae\x3c\xaf\x3c\xb0\x3c\xb1\x3c\xb2\x3c\xb3\x3c\xb4\x3c\xb5\x3c\xb6\x3c\xb7\x3c\xb8\x3c\xb9\x3c\xba\x3c\xbb\x3c\xbc\x3c\xbd\x3c\xbe\x3c\xbf\x3c\xc0\x3c\xc1\x3c\xc2\x3c\xc3\x3c\xc4\x3c\xc5\x3c\xc6\x3c\xc7\x3c\xc8\x3c\xc9\x3c\xca\x3c\xcb\x3c\xcc\x3c\xcd\x3c\xce\x3c\xcf\x3c\xd0\x3c\xd1\x3c\xd2\x3c\xd3\x3c\xd4\x3c\xd5\x3c\xd6\x3c\xd7\x3c\xd8\x3c\xd9\x3c\xda\x3c\xdb\x3c\xdc\x3c\xdd\x3c\xde\x3c\xdf\x3c\xe1\x3c\xe2\x3c\xe3\x3c\xe4\x3c\xe5\x3c\xe6\x3c\xe7\x3c\xe8\x3c\xe9\x3c\xea\x3c\xeb\x3c\xec\x3c\xed\x3c\xee\x3c\xef\x3c\xf0\x3c\xf1\x3c\xf2\x3c\xf3\x3c\xf4\x3c\xf5\x00\x00", /* db00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\xf6\x3c\xf7\x3c\xf8\x3c\xf9\x3c\xfa\x3c\xfb\x3c\xfc\x3c\xfd\x3c\xfe\x3c\xff\x3d\x00\x3d\x01\x3d\x02\x3d\x03\x3d\x04\x3d\x05\x3d\x06\x3d\x07\x3d\x08\x3d\x09\x3d\x0a\x3d\x0b\x3d\x0c\x3d\x0d\x3d\x0e\x3d\x0f\x3d\x10\x3d\x11\x3d\x12\x3d\x13\x3d\x14\x3d\x15\x3d\x16\x3d\x17\x3d\x18\x3d\x19\x3d\x1a\x3d\x1b\x3d\x1c\x3d\x1d\x3d\x1e\x3d\x1f\x3d\x20\x3d\x21\x3d\x22\x3d\x23\x3d\x24\x3d\x25\x3d\x26\x3d\x27\x3d\x28\x3d\x29\x3d\x2a\x3d\x2b\x3d\x2c\x3d\x2d\x3d\x2e\x3d\x2f\x3d\x30\x3d\x31\x3d\x32\x3d\x33\x3d\x34", /* db80 */ "\x3d\x35\x3d\x36\x3d\x37\x3d\x38\x3d\x39\x3d\x3a\x3d\x3b\x3d\x3c\x3d\x3d\x3d\x3e\x3d\x3f\x3d\x40\x3d\x41\x3d\x42\x3d\x43\x3d\x44\x3d\x45\x3d\x46\x3d\x47\x3d\x48\x3d\x49\x3d\x4a\x3d\x4b\x3d\x4c\x3d\x4d\x3d\x4e\x3d\x4f\x3d\x50\x3d\x51\x3d\x52\x3d\x53\x3d\x54\x3d\x55\x3d\x56\x3d\x57\x3d\x58\x3d\x59\x3d\x5a\x3d\x5b\x3d\x5c\x3d\x5d\x3d\x5e\x3d\x5f\x3d\x60\x3d\x61\x3d\x62\x3d\x63\x3d\x64\x3d\x65\x3d\x66\x3d\x67\x3d\x68\x3d\x69\x3d\x6a\x3d\x6b\x3d\x6c\x3d\x6d\x3d\x6e\x3d\x6f\x3d\x70\x3d\x71\x3d\x72\x3d\x73\x3d\x74\x3d\x75\x3d\x76\x3d\x77\x3d\x78\x3d\x79\x3d\x7a\x3d\x7b\x3d\x7c\x3d\x7d\x3d\x7e\x3d\x7f\x3d\x80\x3d\x81\x3d\x82\x3d\x83\x3d\x84\x3d\x85\x3d\x86\x3d\x87\x3d\x88\x3d\x89\x3d\x8a\x3d\x8b\x3d\x8c\x3d\x8d\x3d\x8e\x3d\x8f\x3d\x90\x3d\x91\x3d\x92\x3d\x93\x3d\x94\x3d\x95\x3d\x96\x3d\x97\x3d\x98\x3d\x99\x3d\x9a\x3d\x9b\x3d\x9c\x3d\x9d\x3d\x9e\x3d\x9f\x3d\xa0\x3d\xa1\x3d\xa2\x3d\xa3\x3d\xa4\x3d\xa5\x3d\xa6\x3d\xa7\x3d\xa8\x3d\xa9\x3d\xaa\x3d\xab\x3d\xac\x3d\xad\x3d\xae\x3d\xaf\x3d\xb0\x3d\xb1\x3d\xb2\x3d\xb3\x00\x00", /* dc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\xb4\x3d\xb5\x3d\xb6\x3d\xb7\x3d\xb8\x3d\xb9\x3d\xba\x3d\xbb\x3d\xbc\x3d\xbd\x3d\xbe\x3d\xbf\x3d\xc0\x3d\xc1\x3d\xc2\x3d\xc3\x3d\xc4\x3d\xc5\x3d\xc6\x3d\xc7\x3d\xc8\x3d\xc9\x3d\xca\x3d\xcb\x3d\xcc\x3d\xcd\x3d\xce\x3d\xcf\x3d\xd0\x3d\xd1\x3d\xd2\x3d\xd3\x3d\xd4\x3d\xd5\x3d\xd6\x3d\xd7\x3d\xd8\x3d\xd9\x3d\xda\x3d\xdb\x3d\xdc\x3d\xdd\x3d\xde\x3d\xdf\x3d\xe0\x3d\xe1\x3d\xe2\x3d\xe3\x3d\xe4\x3d\xe5\x3d\xe6\x3d\xe7\x3d\xe8\x3d\xe9\x3d\xea\x3d\xeb\x3d\xec\x3d\xed\x3d\xee\x3d\xef\x3d\xf0\x3d\xf1\x3d\xf2", /* dc80 */ "\x3d\xf3\x3d\xf4\x3d\xf5\x3d\xf6\x3d\xf7\x3d\xf8\x3d\xf9\x3d\xfa\x3d\xfb\x3d\xfc\x3d\xfd\x3d\xfe\x3d\xff\x3e\x00\x3e\x01\x3e\x02\x3e\x03\x3e\x04\x3e\x05\x3e\x06\x3e\x07\x3e\x08\x3e\x09\x3e\x0a\x3e\x0b\x3e\x0c\x3e\x0d\x3e\x0e\x3e\x0f\x3e\x10\x3e\x11\x3e\x12\x3e\x13\x3e\x14\x3e\x15\x3e\x16\x3e\x17\x3e\x18\x3e\x19\x3e\x1a\x3e\x1b\x3e\x1c\x3e\x1d\x3e\x1e\x3e\x1f\x3e\x20\x3e\x21\x3e\x22\x3e\x23\x3e\x24\x3e\x25\x3e\x26\x3e\x27\x3e\x28\x3e\x29\x3e\x2a\x3e\x2b\x3e\x2c\x3e\x2d\x3e\x2e\x3e\x2f\x3e\x30\x3e\x31\x3e\x32\x3e\x33\x3e\x34\x3e\x35\x3e\x36\x3e\x37\x3e\x38\x3e\x39\x3e\x3a\x3e\x3b\x3e\x3c\x3e\x3d\x3e\x3e\x3e\x3f\x3e\x40\x3e\x41\x3e\x42\x3e\x43\x3e\x44\x3e\x45\x3e\x46\x3e\x47\x3e\x48\x3e\x49\x3e\x4a\x3e\x4b\x3e\x4c\x3e\x4d\x3e\x4e\x3e\x4f\x3e\x50\x3e\x51\x3e\x52\x3e\x53\x3e\x54\x3e\x55\x3e\x56\x3e\x57\x3e\x58\x3e\x59\x3e\x5a\x3e\x5b\x3e\x5c\x3e\x5d\x3e\x5e\x3e\x5f\x3e\x60\x3e\x61\x3e\x62\x3e\x63\x3e\x64\x3e\x65\x3e\x66\x3e\x67\x3e\x68\x3e\x69\x3e\x6a\x3e\x6b\x3e\x6c\x3e\x6d\x3e\x6e\x3e\x6f\x3e\x70\x3e\x71\x00\x00", /* dd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x72\x3e\x73\x3e\x74\x3e\x75\x3e\x76\x3e\x77\x3e\x78\x3e\x79\x3e\x7a\x3e\x7b\x3e\x7c\x3e\x7d\x3e\x7e\x3e\x7f\x3e\x80\x3e\x81\x3e\x82\x3e\x83\x3e\x84\x3e\x85\x3e\x86\x3e\x87\x3e\x88\x3e\x89\x3e\x8a\x3e\x8b\x3e\x8c\x3e\x8d\x3e\x8e\x3e\x8f\x3e\x90\x3e\x91\x3e\x92\x3e\x93\x3e\x94\x3e\x95\x3e\x96\x3e\x97\x3e\x98\x3e\x99\x3e\x9a\x3e\x9b\x3e\x9c\x3e\x9d\x3e\x9e\x3e\x9f\x3e\xa0\x3e\xa1\x3e\xa2\x3e\xa3\x3e\xa4\x3e\xa5\x3e\xa6\x3e\xa7\x3e\xa8\x3e\xa9\x3e\xaa\x3e\xab\x3e\xac\x3e\xad\x3e\xae\x3e\xaf\x3e\xb0", /* dd80 */ "\x3e\xb1\x3e\xb2\x3e\xb3\x3e\xb4\x3e\xb5\x3e\xb6\x3e\xb7\x3e\xb8\x3e\xb9\x3e\xba\x3e\xbb\x3e\xbc\x3e\xbd\x3e\xbe\x3e\xbf\x3e\xc0\x3e\xc1\x3e\xc2\x3e\xc3\x3e\xc4\x3e\xc5\x3e\xc6\x3e\xc7\x3e\xc8\x3e\xc9\x3e\xca\x3e\xcb\x3e\xcc\x3e\xcd\x3e\xce\x3e\xcf\x3e\xd0\x3e\xd1\x3e\xd2\x3e\xd3\x3e\xd4\x3e\xd5\x3e\xd6\x3e\xd7\x3e\xd8\x3e\xd9\x3e\xda\x3e\xdb\x3e\xdc\x3e\xdd\x3e\xde\x3e\xdf\x3e\xe0\x3e\xe1\x3e\xe2\x3e\xe3\x3e\xe4\x3e\xe5\x3e\xe6\x3e\xe7\x3e\xe8\x3e\xe9\x3e\xea\x3e\xeb\x3e\xec\x3e\xed\x3e\xee\x3e\xef\x3e\xf0\x3e\xf1\x3e\xf2\x3e\xf3\x3e\xf4\x3e\xf5\x3e\xf6\x3e\xf7\x3e\xf8\x3e\xf9\x3e\xfa\x3e\xfb\x3e\xfc\x3e\xfd\x3e\xfe\x3e\xff\x3f\x00\x3f\x01\x3f\x02\x3f\x03\x3f\x04\x3f\x05\x3f\x06\x3f\x07\x3f\x08\x3f\x09\x3f\x0a\x3f\x0b\x3f\x0c\x3f\x0d\x3f\x0e\x3f\x0f\x3f\x10\x3f\x11\x3f\x12\x3f\x13\x3f\x14\x3f\x15\x3f\x16\x3f\x17\x3f\x18\x3f\x19\x3f\x1a\x3f\x1b\x3f\x1c\x3f\x1d\x3f\x1e\x3f\x1f\x3f\x20\x3f\x21\x3f\x22\x3f\x23\x3f\x24\x3f\x25\x3f\x26\x3f\x27\x3f\x28\x3f\x29\x3f\x2a\x3f\x2b\x3f\x2c\x3f\x2d\x3f\x2e\x3f\x2f\x00\x00", /* de00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x30\x3f\x31\x3f\x32\x3f\x33\x3f\x34\x3f\x35\x3f\x36\x3f\x37\x3f\x38\x3f\x39\x3f\x3a\x3f\x3b\x3f\x3c\x3f\x3d\x3f\x3e\x3f\x3f\x3f\x40\x3f\x41\x3f\x42\x3f\x43\x3f\x44\x3f\x45\x3f\x46\x3f\x47\x3f\x48\x3f\x49\x3f\x4a\x3f\x4b\x3f\x4c\x3f\x4d\x3f\x4e\x3f\x4f\x3f\x50\x3f\x51\x3f\x52\x3f\x53\x3f\x54\x3f\x55\x3f\x56\x3f\x57\x3f\x58\x3f\x59\x3f\x5a\x3f\x5b\x3f\x5c\x3f\x5d\x3f\x5e\x3f\x5f\x3f\x60\x3f\x61\x3f\x62\x3f\x63\x3f\x64\x3f\x65\x3f\x66\x3f\x67\x3f\x68\x3f\x69\x3f\x6a\x3f\x6b\x3f\x6c\x3f\x6d\x3f\x6e", /* de80 */ "\x3f\x6f\x3f\x70\x3f\x71\x3f\x72\x3f\x73\x3f\x74\x3f\x75\x3f\x76\x3f\x77\x3f\x78\x3f\x79\x3f\x7a\x3f\x7b\x3f\x7c\x3f\x7d\x3f\x7e\x3f\x7f\x3f\x80\x3f\x81\x3f\x82\x3f\x83\x3f\x84\x3f\x85\x3f\x86\x3f\x87\x3f\x88\x3f\x89\x3f\x8a\x3f\x8b\x3f\x8c\x3f\x8d\x3f\x8e\x3f\x8f\x3f\x90\x3f\x91\x3f\x92\x3f\x93\x3f\x94\x3f\x95\x3f\x96\x3f\x97\x3f\x98\x3f\x99\x3f\x9a\x3f\x9b\x3f\x9c\x3f\x9d\x3f\x9e\x3f\x9f\x3f\xa0\x3f\xa1\x3f\xa2\x3f\xa3\x3f\xa4\x3f\xa5\x3f\xa6\x3f\xa7\x3f\xa8\x3f\xa9\x3f\xaa\x3f\xab\x3f\xac\x3f\xad\x3f\xae\x3f\xaf\x3f\xb0\x3f\xb1\x3f\xb2\x3f\xb3\x3f\xb4\x3f\xb5\x3f\xb6\x3f\xb7\x3f\xb8\x3f\xb9\x3f\xba\x3f\xbb\x3f\xbc\x3f\xbd\x3f\xbe\x3f\xbf\x3f\xc0\x3f\xc1\x3f\xc2\x3f\xc3\x3f\xc4\x3f\xc5\x3f\xc6\x3f\xc7\x3f\xc8\x3f\xc9\x3f\xca\x3f\xcb\x3f\xcc\x3f\xcd\x3f\xce\x3f\xcf\x3f\xd0\x3f\xd1\x3f\xd2\x3f\xd3\x3f\xd4\x3f\xd5\x3f\xd6\x3f\xd7\x3f\xd8\x3f\xd9\x3f\xda\x3f\xdb\x3f\xdc\x3f\xdd\x3f\xde\x3f\xdf\x3f\xe0\x3f\xe1\x3f\xe2\x3f\xe3\x3f\xe4\x3f\xe5\x3f\xe6\x3f\xe7\x3f\xe8\x3f\xe9\x3f\xea\x3f\xeb\x3f\xec\x3f\xed\x00\x00", /* df00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xee\x3f\xef\x3f\xf0\x3f\xf1\x3f\xf2\x3f\xf3\x3f\xf4\x3f\xf5\x3f\xf6\x3f\xf7\x3f\xf8\x3f\xf9\x3f\xfa\x3f\xfb\x3f\xfc\x3f\xfd\x3f\xfe\x3f\xff\x40\x00\x40\x01\x40\x02\x40\x03\x40\x04\x40\x05\x40\x06\x40\x07\x40\x08\x40\x09\x40\x0a\x40\x0b\x40\x0c\x40\x0d\x40\x0e\x40\x0f\x40\x10\x40\x11\x40\x12\x40\x13\x40\x14\x40\x15\x40\x16\x40\x17\x40\x18\x40\x19\x40\x1a\x40\x1b\x40\x1c\x40\x1d\x40\x1e\x40\x1f\x40\x20\x40\x21\x40\x22\x40\x23\x40\x24\x40\x25\x40\x26\x40\x27\x40\x28\x40\x29\x40\x2a\x40\x2b\x40\x2c", /* df80 */ "\x40\x2d\x40\x2e\x40\x2f\x40\x30\x40\x31\x40\x32\x40\x33\x40\x34\x40\x35\x40\x36\x40\x37\x40\x38\x40\x39\x40\x3a\x40\x3b\x40\x3c\x40\x3d\x40\x3e\x40\x3f\x40\x40\x40\x41\x40\x42\x40\x43\x40\x44\x40\x45\x40\x46\x40\x47\x40\x48\x40\x49\x40\x4a\x40\x4b\x40\x4c\x40\x4d\x40\x4e\x40\x4f\x40\x50\x40\x51\x40\x52\x40\x53\x40\x54\x40\x55\x40\x57\x40\x58\x40\x59\x40\x5a\x40\x5b\x40\x5c\x40\x5d\x40\x5e\x40\x5f\x40\x60\x40\x61\x40\x62\x40\x63\x40\x64\x40\x65\x40\x66\x40\x67\x40\x68\x40\x69\x40\x6a\x40\x6b\x40\x6c\x40\x6d\x40\x6e\x40\x6f\x40\x70\x40\x71\x40\x72\x40\x73\x40\x74\x40\x75\x40\x76\x40\x77\x40\x78\x40\x79\x40\x7a\x40\x7b\x40\x7c\x40\x7d\x40\x7e\x40\x7f\x40\x80\x40\x81\x40\x82\x40\x83\x40\x84\x40\x85\x40\x86\x40\x87\x40\x88\x40\x89\x40\x8a\x40\x8b\x40\x8c\x40\x8d\x40\x8e\x40\x8f\x40\x90\x40\x91\x40\x92\x40\x93\x40\x94\x40\x95\x40\x96\x40\x97\x40\x98\x40\x99\x40\x9a\x40\x9b\x40\x9c\x40\x9d\x40\x9e\x40\x9f\x40\xa0\x40\xa1\x40\xa2\x40\xa3\x40\xa4\x40\xa5\x40\xa6\x40\xa7\x40\xa8\x40\xa9\x40\xaa\x40\xab\x40\xac\x00\x00", /* e000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xad\x40\xae\x40\xaf\x40\xb0\x40\xb1\x40\xb2\x40\xb3\x40\xb4\x40\xb5\x40\xb6\x40\xb7\x40\xb8\x40\xb9\x40\xba\x40\xbb\x40\xbc\x40\xbd\x40\xbe\x40\xbf\x40\xc0\x40\xc1\x40\xc2\x40\xc3\x40\xc4\x40\xc5\x40\xc6\x40\xc7\x40\xc8\x40\xc9\x40\xca\x40\xcb\x40\xcc\x40\xcd\x40\xce\x40\xcf\x40\xd0\x40\xd1\x40\xd2\x40\xd3\x40\xd4\x40\xd5\x40\xd6\x40\xd7\x40\xd8\x40\xd9\x40\xda\x40\xdb\x40\xdc\x40\xdd\x40\xde\x40\xdf\x40\xe0\x40\xe1\x40\xe2\x40\xe3\x40\xe4\x40\xe5\x40\xe6\x40\xe7\x40\xe8\x40\xe9\x40\xea\x40\xeb", /* e080 */ "\x40\xec\x40\xed\x40\xee\x40\xef\x40\xf0\x40\xf1\x40\xf2\x40\xf3\x40\xf4\x40\xf5\x40\xf6\x40\xf7\x40\xf8\x40\xf9\x40\xfa\x40\xfb\x40\xfc\x40\xfd\x40\xfe\x40\xff\x41\x00\x41\x01\x41\x02\x41\x03\x41\x04\x41\x05\x41\x06\x41\x07\x41\x08\x41\x09\x41\x0a\x41\x0b\x41\x0c\x41\x0d\x41\x0e\x41\x0f\x41\x10\x41\x11\x41\x12\x41\x13\x41\x14\x41\x15\x41\x16\x41\x17\x41\x18\x41\x19\x41\x1a\x41\x1b\x41\x1c\x41\x1d\x41\x1e\x41\x1f\x41\x20\x41\x21\x41\x22\x41\x23\x41\x24\x41\x25\x41\x26\x41\x27\x41\x28\x41\x29\x41\x2a\x41\x2b\x41\x2c\x41\x2d\x41\x2e\x41\x2f\x41\x30\x41\x31\x41\x32\x41\x33\x41\x34\x41\x35\x41\x36\x41\x37\x41\x38\x41\x39\x41\x3a\x41\x3b\x41\x3c\x41\x3d\x41\x3e\x41\x3f\x41\x40\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x41\x59\x41\x5a\x41\x5b\x41\x5c\x41\x5d\x41\x5e\x41\x60\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x00\x00", /* e100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x41\x79\x41\x7a\x41\x7b\x41\x7c\x41\x7d\x41\x7e\x41\x7f\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x86\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x41\xa1\x41\xa2\x41\xa3\x41\xa4\x41\xa5\x41\xa6\x41\xa7\x41\xa8\x41\xa9\x41\xaa", /* e180 */ "\x41\xab\x41\xac\x41\xad\x41\xae\x41\xaf\x41\xb0\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x41\xbb\x41\xbc\x41\xbd\x41\xbe\x41\xbf\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc6\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\xe1\x41\xe2\x41\xe3\x41\xe4\x41\xe5\x41\xe6\x41\xe7\x41\xe8\x41\xe9\x41\xea\x41\xeb\x41\xec\x41\xed\x41\xee\x41\xef\x41\xf0\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x41\xfd\x41\xfe\x41\xff\x42\x00\x42\x01\x42\x02\x42\x03\x42\x04\x42\x05\x42\x06\x42\x07\x42\x08\x42\x09\x42\x0a\x42\x0b\x42\x0c\x42\x0d\x42\x0e\x42\x0f\x42\x10\x42\x11\x42\x12\x42\x13\x42\x14\x42\x15\x42\x16\x42\x17\x42\x18\x42\x19\x42\x1a\x42\x1b\x42\x1c\x42\x1d\x42\x1e\x42\x1f\x42\x20\x42\x21\x42\x22\x42\x23\x42\x24\x42\x25\x42\x26\x42\x27\x42\x28\x42\x29\x00\x00", /* e200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x2a\x42\x2b\x42\x2c\x42\x2d\x42\x2e\x42\x2f\x42\x30\x42\x31\x42\x32\x42\x33\x42\x34\x42\x35\x42\x36\x42\x37\x42\x38\x42\x39\x42\x3a\x42\x3b\x42\x3c\x42\x3d\x42\x3e\x42\x3f\x42\x40\x42\x41\x42\x42\x42\x43\x42\x44\x42\x45\x42\x46\x42\x47\x42\x48\x42\x49\x42\x4a\x42\x4b\x42\x4c\x42\x4d\x42\x4e\x42\x4f\x42\x50\x42\x51\x42\x52\x42\x53\x42\x54\x42\x55\x42\x56\x42\x57\x42\x58\x42\x59\x42\x5a\x42\x5b\x42\x5c\x42\x5d\x42\x5e\x42\x5f\x42\x60\x42\x61\x42\x62\x42\x63\x42\x64\x42\x65\x42\x66\x42\x67\x42\x68", /* e280 */ "\x42\x69\x42\x6a\x42\x6b\x42\x6c\x42\x6d\x42\x6e\x42\x6f\x42\x70\x42\x71\x42\x72\x42\x73\x42\x74\x42\x75\x42\x76\x42\x77\x42\x78\x42\x79\x42\x7a\x42\x7b\x42\x7c\x42\x7d\x42\x7e\x42\x7f\x42\x80\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x8a\x42\x8b\x42\x8c\x42\x8d\x42\x8e\x42\x8f\x42\x90\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\x9a\x42\x9b\x42\x9c\x42\x9d\x42\x9e\x42\x9f\x42\xa0\x42\xa1\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xaa\x42\xab\x42\xac\x42\xad\x42\xae\x42\xaf\x42\xb0\x42\xb1\x42\xb2\x42\xb3\x42\xb4\x42\xb5\x42\xb6\x42\xb7\x42\xb8\x42\xb9\x42\xba\x42\xbb\x42\xbc\x42\xbd\x42\xbe\x42\xbf\x42\xc0\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xca\x42\xcb\x42\xcc\x42\xcd\x42\xce\x42\xcf\x42\xd0\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xda\x42\xdb\x42\xdc\x42\xdd\x42\xde\x42\xdf\x42\xe0\x42\xe1\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x00\x00", /* e300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\xe8\x42\xe9\x42\xea\x42\xeb\x42\xec\x42\xed\x42\xee\x42\xef\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\xfa\x42\xfb\x42\xfc\x42\xfd\x42\xfe\x42\xff\x43\x00\x43\x01\x43\x02\x43\x03\x43\x04\x43\x05\x43\x06\x43\x07\x43\x08\x43\x09\x43\x0a\x43\x0b\x43\x0c\x43\x0d\x43\x0e\x43\x0f\x43\x10\x43\x11\x43\x12\x43\x13\x43\x14\x43\x15\x43\x16\x43\x17\x43\x18\x43\x19\x43\x1a\x43\x1b\x43\x1c\x43\x1d\x43\x1e\x43\x1f\x43\x20\x43\x21\x43\x22\x43\x23\x43\x24\x43\x25\x43\x26", /* e380 */ "\x43\x27\x43\x28\x43\x29\x43\x2a\x43\x2b\x43\x2c\x43\x2d\x43\x2e\x43\x2f\x43\x30\x43\x31\x43\x32\x43\x33\x43\x34\x43\x35\x43\x36\x43\x38\x43\x39\x43\x3a\x43\x3b\x43\x3c\x43\x3d\x43\x3e\x43\x3f\x43\x40\x43\x41\x43\x42\x43\x43\x43\x44\x43\x45\x43\x46\x43\x47\x43\x48\x43\x49\x43\x4a\x43\x4b\x43\x4c\x43\x4d\x43\x4e\x43\x4f\x43\x50\x43\x51\x43\x52\x43\x53\x43\x54\x43\x55\x43\x56\x43\x57\x43\x58\x43\x59\x43\x5a\x43\x5b\x43\x5c\x43\x5d\x43\x5e\x43\x5f\x43\x60\x43\x61\x43\x62\x43\x63\x43\x64\x43\x65\x43\x66\x43\x67\x43\x68\x43\x69\x43\x6a\x43\x6b\x43\x6c\x43\x6d\x43\x6e\x43\x6f\x43\x70\x43\x71\x43\x72\x43\x73\x43\x74\x43\x75\x43\x76\x43\x77\x43\x78\x43\x79\x43\x7a\x43\x7b\x43\x7c\x43\x7d\x43\x7e\x43\x7f\x43\x80\x43\x81\x43\x82\x43\x83\x43\x84\x43\x85\x43\x86\x43\x87\x43\x88\x43\x89\x43\x8a\x43\x8b\x43\x8c\x43\x8d\x43\x8e\x43\x8f\x43\x90\x43\x91\x43\x92\x43\x93\x43\x94\x43\x95\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9b\x43\x9c\x43\x9d\x43\x9e\x43\x9f\x43\xa0\x43\xa1\x43\xa2\x43\xa3\x43\xa4\x43\xa5\x43\xa6\x00\x00", /* e400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa7\x43\xa8\x43\xa9\x43\xaa\x43\xab\x43\xad\x43\xae\x43\xaf\x43\xb0\x43\xb2\x43\xb3\x43\xb4\x43\xb5\x43\xb6\x43\xb7\x43\xb8\x43\xb9\x43\xba\x43\xbb\x43\xbc\x43\xbd\x43\xbe\x43\xbf\x43\xc0\x43\xc1\x43\xc2\x43\xc3\x43\xc4\x43\xc5\x43\xc6\x43\xc7\x43\xc8\x43\xc9\x43\xca\x43\xcb\x43\xcc\x43\xcd\x43\xce\x43\xcf\x43\xd0\x43\xd1\x43\xd2\x43\xd3\x43\xd4\x43\xd5\x43\xd6\x43\xd7\x43\xd8\x43\xd9\x43\xda\x43\xdb\x43\xdc\x43\xde\x43\xdf\x43\xe0\x43\xe1\x43\xe2\x43\xe3\x43\xe4\x43\xe5\x43\xe6\x43\xe7\x43\xe8", /* e480 */ "\x43\xe9\x43\xea\x43\xeb\x43\xec\x43\xed\x43\xee\x43\xef\x43\xf0\x43\xf1\x43\xf2\x43\xf3\x43\xf4\x43\xf5\x43\xf6\x43\xf7\x43\xf8\x43\xf9\x43\xfa\x43\xfb\x43\xfc\x43\xfd\x43\xfe\x43\xff\x44\x00\x44\x01\x44\x02\x44\x03\x44\x04\x44\x05\x44\x06\x44\x07\x44\x08\x44\x09\x44\x0a\x44\x0b\x44\x0c\x44\x0d\x44\x0e\x44\x0f\x44\x10\x44\x11\x44\x12\x44\x13\x44\x14\x44\x15\x44\x16\x44\x17\x44\x18\x44\x19\x44\x1a\x44\x1b\x44\x1c\x44\x1d\x44\x1e\x44\x1f\x44\x20\x44\x21\x44\x22\x44\x23\x44\x24\x44\x25\x44\x26\x44\x27\x44\x28\x44\x29\x44\x2a\x44\x2b\x44\x2c\x44\x2d\x44\x2e\x44\x2f\x44\x30\x44\x31\x44\x32\x44\x33\x44\x34\x44\x35\x44\x36\x44\x37\x44\x38\x44\x39\x44\x3a\x44\x3b\x44\x3c\x44\x3d\x44\x3e\x44\x3f\x44\x40\x44\x41\x44\x42\x44\x43\x44\x44\x44\x45\x44\x46\x44\x47\x44\x48\x44\x49\x44\x4a\x44\x4b\x44\x4c\x44\x4d\x44\x4e\x44\x4f\x44\x50\x44\x51\x44\x52\x44\x53\x44\x54\x44\x55\x44\x56\x44\x57\x44\x58\x44\x59\x44\x5a\x44\x5b\x44\x5c\x44\x5d\x44\x5e\x44\x5f\x44\x60\x44\x61\x44\x62\x44\x63\x44\x64\x44\x65\x44\x66\x44\x67\x00\x00", /* e500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x69\x44\x6a\x44\x6b\x44\x6c\x44\x6d\x44\x6e\x44\x6f\x44\x70\x44\x71\x44\x72\x44\x73\x44\x74\x44\x75\x44\x76\x44\x77\x44\x78\x44\x79\x44\x7a\x44\x7b\x44\x7c\x44\x7d\x44\x7e\x44\x7f\x44\x80\x44\x81\x44\x82\x44\x83\x44\x84\x44\x85\x44\x86\x44\x87\x44\x88\x44\x89\x44\x8a\x44\x8b\x44\x8c\x44\x8d\x44\x8e\x44\x8f\x44\x90\x44\x91\x44\x92\x44\x93\x44\x94\x44\x95\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9b\x44\x9c\x44\x9d\x44\x9e\x44\x9f\x44\xa0\x44\xa1\x44\xa2\x44\xa3\x44\xa4\x44\xa5\x44\xa6", /* e580 */ "\x44\xa7\x44\xa8\x44\xa9\x44\xaa\x44\xab\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xb0\x44\xb1\x44\xb2\x44\xb3\x44\xb4\x44\xb5\x44\xb6\x44\xb7\x44\xb8\x44\xb9\x44\xba\x44\xbb\x44\xbc\x44\xbd\x44\xbe\x44\xbf\x44\xc0\x44\xc1\x44\xc2\x44\xc3\x44\xc4\x44\xc5\x44\xc6\x44\xc7\x44\xc8\x44\xc9\x44\xca\x44\xcb\x44\xcc\x44\xcd\x44\xce\x44\xcf\x44\xd0\x44\xd1\x44\xd2\x44\xd3\x44\xd4\x44\xd5\x44\xd7\x44\xd8\x44\xd9\x44\xda\x44\xdb\x44\xdc\x44\xdd\x44\xde\x44\xdf\x44\xe0\x44\xe1\x44\xe2\x44\xe3\x44\xe4\x44\xe5\x44\xe6\x44\xe7\x44\xe8\x44\xe9\x44\xea\x44\xeb\x44\xec\x44\xed\x44\xee\x44\xef\x44\xf0\x44\xf1\x44\xf2\x44\xf3\x44\xf4\x44\xf5\x44\xf6\x44\xf7\x44\xf8\x44\xf9\x44\xfa\x44\xfb\x44\xfc\x44\xfd\x44\xfe\x44\xff\x45\x00\x45\x01\x45\x02\x45\x03\x45\x04\x45\x05\x45\x06\x45\x07\x45\x08\x45\x09\x45\x0a\x45\x0b\x45\x0c\x45\x0d\x45\x0e\x45\x0f\x45\x10\x45\x11\x45\x12\x45\x13\x45\x14\x45\x15\x45\x16\x45\x17\x45\x18\x45\x19\x45\x1a\x45\x1b\x45\x1c\x45\x1d\x45\x1e\x45\x1f\x45\x20\x45\x21\x45\x22\x45\x23\x45\x24\x45\x25\x45\x26\x00\x00", /* e600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x27\x45\x28\x45\x29\x45\x2a\x45\x2b\x45\x2c\x45\x2d\x45\x2e\x45\x2f\x45\x30\x45\x31\x45\x32\x45\x33\x45\x34\x45\x35\x45\x36\x45\x37\x45\x38\x45\x39\x45\x3a\x45\x3b\x45\x3c\x45\x3d\x45\x3e\x45\x3f\x45\x40\x45\x41\x45\x42\x45\x43\x45\x44\x45\x45\x45\x46\x45\x47\x45\x48\x45\x49\x45\x4a\x45\x4b\x45\x4c\x45\x4d\x45\x4e\x45\x4f\x45\x50\x45\x51\x45\x52\x45\x53\x45\x54\x45\x55\x45\x56\x45\x57\x45\x58\x45\x59\x45\x5a\x45\x5b\x45\x5c\x45\x5d\x45\x5e\x45\x5f\x45\x60\x45\x61\x45\x62\x45\x63\x45\x64\x45\x65", /* e680 */ "\x45\x66\x45\x67\x45\x68\x45\x69\x45\x6a\x45\x6b\x45\x6c\x45\x6d\x45\x6e\x45\x6f\x45\x70\x45\x71\x45\x72\x45\x73\x45\x74\x45\x75\x45\x76\x45\x77\x45\x78\x45\x79\x45\x7a\x45\x7b\x45\x7c\x45\x7d\x45\x7e\x45\x7f\x45\x80\x45\x81\x45\x82\x45\x83\x45\x84\x45\x85\x45\x86\x45\x87\x45\x88\x45\x89\x45\x8a\x45\x8b\x45\x8c\x45\x8d\x45\x8e\x45\x8f\x45\x90\x45\x91\x45\x92\x45\x93\x45\x94\x45\x95\x45\x96\x45\x97\x45\x98\x45\x99\x45\x9a\x45\x9b\x45\x9c\x45\x9d\x45\x9e\x45\x9f\x45\xa0\x45\xa1\x45\xa2\x45\xa3\x45\xa4\x45\xa5\x45\xa6\x45\xa7\x45\xa8\x45\xa9\x45\xaa\x45\xab\x45\xac\x45\xad\x45\xae\x45\xaf\x45\xb0\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xd9\x45\xda\x45\xdb\x45\xdc\x45\xdd\x45\xde\x45\xdf\x45\xe0\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x00\x00", /* e700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x45\xeb\x45\xec\x45\xed\x45\xee\x45\xef\x45\xf0\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x45\xfb\x45\xfc\x45\xfd\x45\xfe\x45\xff\x46\x00\x46\x01\x46\x02\x46\x03\x46\x04\x46\x05\x46\x06\x46\x07\x46\x08\x46\x09\x46\x0a\x46\x0b\x46\x0c\x46\x0d\x46\x0e\x46\x0f\x46\x10\x46\x11\x46\x12\x46\x13\x46\x14\x46\x15\x46\x16\x46\x17\x46\x18\x46\x19\x46\x1a\x46\x1b\x46\x1c\x46\x1d\x46\x1e\x46\x1f\x46\x20\x46\x21\x46\x22\x46\x23", /* e780 */ "\x46\x24\x46\x25\x46\x26\x46\x27\x46\x28\x46\x29\x46\x2a\x46\x2b\x46\x2c\x46\x2d\x46\x2e\x46\x2f\x46\x30\x46\x31\x46\x32\x46\x33\x46\x34\x46\x35\x46\x36\x46\x37\x46\x38\x46\x39\x46\x3a\x46\x3b\x46\x3c\x46\x3d\x46\x3e\x46\x3f\x46\x40\x46\x41\x46\x42\x46\x43\x46\x44\x46\x45\x46\x46\x46\x47\x46\x48\x46\x49\x46\x4a\x46\x4b\x46\x4d\x46\x4e\x46\x4f\x46\x50\x46\x51\x46\x52\x46\x53\x46\x54\x46\x55\x46\x56\x46\x57\x46\x58\x46\x59\x46\x5a\x46\x5b\x46\x5c\x46\x5d\x46\x5e\x46\x5f\x46\x60\x46\x62\x46\x63\x46\x64\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x46\x8a\x46\x8b\x46\x8c\x46\x8d\x46\x8e\x46\x8f\x46\x90\x46\x91\x46\x92\x46\x93\x46\x94\x46\x95\x46\x96\x46\x97\x46\x98\x46\x99\x46\x9a\x46\x9b\x46\x9c\x46\x9d\x46\x9e\x46\x9f\x46\xa0\x46\xa1\x46\xa2\x46\xa3\x46\xa4\x00\x00", /* e800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3", /* e880 */ "\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x46\xf0\x46\xf1\x46\xf2\x46\xf3\x46\xf4\x46\xf5\x46\xf6\x46\xf7\x46\xf8\x46\xf9\x46\xfa\x46\xfb\x46\xfc\x46\xfd\x46\xfe\x46\xff\x47\x00\x47\x01\x47\x02\x47\x03\x47\x04\x47\x05\x47\x06\x47\x07\x47\x08\x47\x09\x47\x0a\x47\x0b\x47\x0c\x47\x0d\x47\x0e\x47\x0f\x47\x10\x47\x11\x47\x12\x47\x13\x47\x14\x47\x15\x47\x16\x47\x17\x47\x18\x47\x19\x47\x1a\x47\x1b\x47\x1c\x47\x1d\x47\x1e\x47\x1f\x47\x20\x47\x21\x47\x22\x47\x24\x47\x25\x47\x26\x47\x27\x47\x28\x47\x2a\x47\x2b\x47\x2c\x47\x2d\x47\x2e\x47\x2f\x47\x30\x47\x31\x47\x32\x47\x33\x47\x34\x47\x35\x47\x36\x47\x37\x47\x38\x47\x39\x47\x3a\x47\x3b\x47\x3c\x47\x3d\x47\x3e\x47\x3f\x47\x40\x47\x41\x47\x42\x47\x43\x47\x44\x47\x45\x47\x46\x47\x47\x47\x48\x47\x49\x47\x4a\x47\x4b\x47\x4c\x47\x4d\x47\x4e\x47\x4f\x47\x50\x47\x51\x47\x52\x47\x53\x47\x54\x47\x55\x47\x56\x47\x57\x47\x58\x47\x59\x47\x5a\x47\x5b\x47\x5c\x47\x5d\x47\x5e\x47\x5f\x47\x60\x47\x61\x47\x62\x47\x63\x47\x64\x00\x00", /* e900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x65\x47\x66\x47\x67\x47\x68\x47\x69\x47\x6a\x47\x6b\x47\x6c\x47\x6d\x47\x6e\x47\x6f\x47\x70\x47\x71\x47\x72\x47\x73\x47\x74\x47\x75\x47\x76\x47\x77\x47\x78\x47\x79\x47\x7a\x47\x7b\x47\x7d\x47\x7e\x47\x7f\x47\x80\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x47\xa1\x47\xa2\x47\xa3\x47\xa4\x47\xa5", /* e980 */ "\x47\xa6\x47\xa7\x47\xa8\x47\xa9\x47\xaa\x47\xab\x47\xac\x47\xad\x47\xae\x47\xaf\x47\xb0\x47\xb1\x47\xb2\x47\xb3\x47\xb4\x47\xb5\x47\xb6\x47\xb7\x47\xb8\x47\xb9\x47\xba\x47\xbb\x47\xbc\x47\xbd\x47\xbe\x47\xbf\x47\xc0\x47\xc1\x47\xc2\x47\xc3\x47\xc4\x47\xc5\x47\xc6\x47\xc7\x47\xc8\x47\xc9\x47\xca\x47\xcb\x47\xcc\x47\xcd\x47\xce\x47\xcf\x47\xd0\x47\xd1\x47\xd2\x47\xd3\x47\xd4\x47\xd5\x47\xd6\x47\xd7\x47\xd8\x47\xd9\x47\xda\x47\xdb\x47\xdc\x47\xdd\x47\xde\x47\xdf\x47\xe0\x47\xe1\x47\xe2\x47\xe3\x47\xe4\x47\xe5\x47\xe6\x47\xe7\x47\xe8\x47\xe9\x47\xea\x47\xeb\x47\xec\x47\xed\x47\xee\x47\xef\x47\xf0\x47\xf1\x47\xf2\x47\xf3\x47\xf4\x47\xf5\x47\xf6\x47\xf7\x47\xf8\x47\xf9\x47\xfa\x47\xfb\x47\xfc\x47\xfd\x47\xfe\x47\xff\x48\x00\x48\x01\x48\x02\x48\x03\x48\x04\x48\x05\x48\x06\x48\x07\x48\x08\x48\x09\x48\x0a\x48\x0b\x48\x0c\x48\x0d\x48\x0e\x48\x0f\x48\x10\x48\x11\x48\x12\x48\x13\x48\x14\x48\x15\x48\x16\x48\x17\x48\x18\x48\x19\x48\x1a\x48\x1b\x48\x1c\x48\x1d\x48\x1e\x48\x1f\x48\x20\x48\x21\x48\x22\x48\x23\x48\x24\x00\x00", /* ea00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x25\x48\x26\x48\x27\x48\x28\x48\x29\x48\x2a\x48\x2b\x48\x2c\x48\x2d\x48\x2e\x48\x2f\x48\x30\x48\x31\x48\x32\x48\x33\x48\x34\x48\x35\x48\x36\x48\x37\x48\x38\x48\x39\x48\x3a\x48\x3b\x48\x3c\x48\x3d\x48\x3e\x48\x3f\x48\x40\x48\x41\x48\x42\x48\x43\x48\x44\x48\x45\x48\x46\x48\x47\x48\x48\x48\x49\x48\x4a\x48\x4b\x48\x4c\x48\x4d\x48\x4e\x48\x4f\x48\x50\x48\x51\x48\x52\x48\x53\x48\x54\x48\x55\x48\x56\x48\x57\x48\x58\x48\x59\x48\x5a\x48\x5b\x48\x5c\x48\x5d\x48\x5e\x48\x5f\x48\x60\x48\x61\x48\x62\x48\x63", /* ea80 */ "\x48\x64\x48\x65\x48\x66\x48\x67\x48\x68\x48\x69\x48\x6a\x48\x6b\x48\x6c\x48\x6d\x48\x6e\x48\x6f\x48\x70\x48\x71\x48\x72\x48\x73\x48\x74\x48\x75\x48\x76\x48\x77\x48\x78\x48\x79\x48\x7a\x48\x7b\x48\x7c\x48\x7d\x48\x7e\x48\x7f\x48\x80\x48\x81\x48\x82\x48\x83\x48\x84\x48\x85\x48\x86\x48\x87\x48\x88\x48\x89\x48\x8a\x48\x8b\x48\x8c\x48\x8d\x48\x8e\x48\x8f\x48\x90\x48\x91\x48\x92\x48\x93\x48\x94\x48\x95\x48\x96\x48\x97\x48\x98\x48\x99\x48\x9a\x48\x9b\x48\x9c\x48\x9d\x48\x9e\x48\x9f\x48\xa0\x48\xa1\x48\xa2\x48\xa3\x48\xa4\x48\xa5\x48\xa6\x48\xa7\x48\xa8\x48\xa9\x48\xaa\x48\xab\x48\xac\x48\xad\x48\xae\x48\xaf\x48\xb0\x48\xb1\x48\xb2\x48\xb3\x48\xb4\x48\xb5\x48\xb6\x48\xb7\x48\xb8\x48\xb9\x48\xba\x48\xbb\x48\xbc\x48\xbd\x48\xbe\x48\xbf\x48\xc0\x48\xc1\x48\xc2\x48\xc3\x48\xc4\x48\xc5\x48\xc6\x48\xc7\x48\xc8\x48\xc9\x48\xca\x48\xcb\x48\xcc\x48\xcd\x48\xce\x48\xcf\x48\xd0\x48\xd1\x48\xd2\x48\xd3\x48\xd4\x48\xd5\x48\xd6\x48\xd7\x48\xd8\x48\xd9\x48\xda\x48\xdb\x48\xdc\x48\xdd\x48\xde\x48\xdf\x48\xe0\x48\xe1\x48\xe2\x00\x00", /* eb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xe3\x48\xe4\x48\xe5\x48\xe6\x48\xe7\x48\xe8\x48\xe9\x48\xea\x48\xeb\x48\xec\x48\xed\x48\xee\x48\xef\x48\xf0\x48\xf1\x48\xf2\x48\xf3\x48\xf4\x48\xf5\x48\xf6\x48\xf7\x48\xf8\x48\xf9\x48\xfa\x48\xfb\x48\xfc\x48\xfd\x48\xfe\x48\xff\x49\x00\x49\x01\x49\x02\x49\x03\x49\x04\x49\x05\x49\x06\x49\x07\x49\x08\x49\x09\x49\x0a\x49\x0b\x49\x0c\x49\x0d\x49\x0e\x49\x0f\x49\x10\x49\x11\x49\x12\x49\x13\x49\x14\x49\x15\x49\x16\x49\x17\x49\x18\x49\x19\x49\x1a\x49\x1b\x49\x1c\x49\x1d\x49\x1e\x49\x1f\x49\x20\x49\x21", /* eb80 */ "\x49\x22\x49\x23\x49\x24\x49\x25\x49\x26\x49\x27\x49\x28\x49\x29\x49\x2a\x49\x2b\x49\x2c\x49\x2d\x49\x2e\x49\x2f\x49\x30\x49\x31\x49\x32\x49\x33\x49\x34\x49\x35\x49\x36\x49\x37\x49\x38\x49\x39\x49\x3a\x49\x3b\x49\x3c\x49\x3d\x49\x3e\x49\x3f\x49\x40\x49\x41\x49\x42\x49\x43\x49\x44\x49\x45\x49\x46\x49\x48\x49\x49\x49\x4a\x49\x4b\x49\x4c\x49\x4d\x49\x4e\x49\x4f\x49\x50\x49\x51\x49\x52\x49\x53\x49\x54\x49\x55\x49\x56\x49\x57\x49\x58\x49\x59\x49\x5a\x49\x5b\x49\x5c\x49\x5d\x49\x5e\x49\x5f\x49\x60\x49\x61\x49\x62\x49\x63\x49\x64\x49\x65\x49\x66\x49\x67\x49\x68\x49\x69\x49\x6a\x49\x6b\x49\x6c\x49\x6d\x49\x6e\x49\x6f\x49\x70\x49\x71\x49\x72\x49\x73\x49\x74\x49\x75\x49\x76\x49\x77\x49\x78\x49\x79\x49\x7b\x49\x7c\x49\x7e\x49\x7f\x49\x80\x49\x81\x49\x84\x49\x87\x49\x88\x49\x89\x49\x8a\x49\x8b\x49\x8c\x49\x8d\x49\x8e\x49\x8f\x49\x90\x49\x91\x49\x92\x49\x93\x49\x94\x49\x95\x49\x96\x49\x97\x49\x98\x49\x99\x49\x9a\x49\x9c\x49\x9d\x49\x9e\x49\xa0\x49\xa1\x49\xa2\x49\xa3\x49\xa4\x49\xa5\x49\xa6\x49\xa7\x49\xa8\x49\xa9\x00\x00", /* ec00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xaa\x49\xab\x49\xac\x49\xad\x49\xae\x49\xaf\x49\xb0\x49\xb1\x49\xb2\x49\xb3\x49\xb4\x49\xb5\x49\xb8\x49\xb9\x49\xba\x49\xbb\x49\xbc\x49\xbd\x49\xbe\x49\xbf\x49\xc0\x49\xc1\x49\xc2\x49\xc3\x49\xc4\x49\xc5\x49\xc6\x49\xc7\x49\xc8\x49\xc9\x49\xca\x49\xcb\x49\xcc\x49\xcd\x49\xce\x49\xcf\x49\xd0\x49\xd1\x49\xd2\x49\xd3\x49\xd4\x49\xd5\x49\xd6\x49\xd7\x49\xd8\x49\xd9\x49\xda\x49\xdb\x49\xdc\x49\xdd\x49\xde\x49\xdf\x49\xe0\x49\xe1\x49\xe2\x49\xe3\x49\xe4\x49\xe5\x49\xe6\x49\xe7\x49\xe8\x49\xe9\x49\xea", /* ec80 */ "\x49\xeb\x49\xec\x49\xed\x49\xee\x49\xef\x49\xf0\x49\xf1\x49\xf2\x49\xf3\x49\xf4\x49\xf5\x49\xf6\x49\xf7\x49\xf8\x49\xf9\x49\xfa\x49\xfb\x49\xfc\x49\xfd\x49\xfe\x49\xff\x4a\x00\x4a\x01\x4a\x02\x4a\x03\x4a\x04\x4a\x05\x4a\x06\x4a\x07\x4a\x08\x4a\x09\x4a\x0a\x4a\x0b\x4a\x0c\x4a\x0d\x4a\x0e\x4a\x0f\x4a\x10\x4a\x11\x4a\x12\x4a\x13\x4a\x14\x4a\x15\x4a\x16\x4a\x17\x4a\x18\x4a\x19\x4a\x1a\x4a\x1b\x4a\x1c\x4a\x1d\x4a\x1e\x4a\x1f\x4a\x20\x4a\x21\x4a\x22\x4a\x23\x4a\x24\x4a\x25\x4a\x26\x4a\x27\x4a\x28\x4a\x29\x4a\x2a\x4a\x2b\x4a\x2c\x4a\x2d\x4a\x2e\x4a\x2f\x4a\x30\x4a\x31\x4a\x32\x4a\x33\x4a\x34\x4a\x35\x4a\x36\x4a\x37\x4a\x38\x4a\x39\x4a\x3a\x4a\x3b\x4a\x3c\x4a\x3d\x4a\x3e\x4a\x3f\x4a\x40\x4a\x41\x4a\x42\x4a\x43\x4a\x44\x4a\x45\x4a\x46\x4a\x47\x4a\x48\x4a\x49\x4a\x4a\x4a\x4b\x4a\x4c\x4a\x4d\x4a\x4e\x4a\x4f\x4a\x50\x4a\x51\x4a\x52\x4a\x53\x4a\x54\x4a\x55\x4a\x56\x4a\x57\x4a\x58\x4a\x59\x4a\x5a\x4a\x5b\x4a\x5c\x4a\x5d\x4a\x5e\x4a\x5f\x4a\x60\x4a\x61\x4a\x62\x4a\x63\x4a\x64\x4a\x65\x4a\x66\x4a\x67\x4a\x68\x4a\x69\x00\x00", /* ed00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6a\x4a\x6b\x4a\x6c\x4a\x6d\x4a\x6e\x4a\x6f\x4a\x70\x4a\x71\x4a\x72\x4a\x73\x4a\x74\x4a\x75\x4a\x76\x4a\x77\x4a\x78\x4a\x79\x4a\x7a\x4a\x7b\x4a\x7c\x4a\x7d\x4a\x7e\x4a\x7f\x4a\x80\x4a\x81\x4a\x82\x4a\x83\x4a\x84\x4a\x85\x4a\x86\x4a\x87\x4a\x88\x4a\x89\x4a\x8a\x4a\x8b\x4a\x8c\x4a\x8d\x4a\x8e\x4a\x8f\x4a\x90\x4a\x91\x4a\x92\x4a\x93\x4a\x94\x4a\x95\x4a\x96\x4a\x97\x4a\x98\x4a\x99\x4a\x9a\x4a\x9b\x4a\x9c\x4a\x9d\x4a\x9e\x4a\x9f\x4a\xa0\x4a\xa1\x4a\xa2\x4a\xa3\x4a\xa4\x4a\xa5\x4a\xa6\x4a\xa7\x4a\xa8", /* ed80 */ "\x4a\xa9\x4a\xaa\x4a\xab\x4a\xac\x4a\xad\x4a\xae\x4a\xaf\x4a\xb0\x4a\xb1\x4a\xb2\x4a\xb3\x4a\xb4\x4a\xb5\x4a\xb6\x4a\xb7\x4a\xb8\x4a\xb9\x4a\xba\x4a\xbb\x4a\xbc\x4a\xbd\x4a\xbe\x4a\xbf\x4a\xc0\x4a\xc1\x4a\xc2\x4a\xc3\x4a\xc4\x4a\xc5\x4a\xc6\x4a\xc7\x4a\xc8\x4a\xc9\x4a\xca\x4a\xcb\x4a\xcc\x4a\xcd\x4a\xce\x4a\xcf\x4a\xd0\x4a\xd1\x4a\xd2\x4a\xd3\x4a\xd4\x4a\xd5\x4a\xd6\x4a\xd7\x4a\xd8\x4a\xd9\x4a\xda\x4a\xdb\x4a\xdc\x4a\xdd\x4a\xde\x4a\xdf\x4a\xe0\x4a\xe1\x4a\xe2\x4a\xe3\x4a\xe4\x4a\xe5\x4a\xe6\x4a\xe7\x4a\xe8\x4a\xe9\x4a\xea\x4a\xeb\x4a\xec\x4a\xed\x4a\xee\x4a\xef\x4a\xf0\x4a\xf1\x4a\xf2\x4a\xf3\x4a\xf4\x4a\xf5\x4a\xf6\x4a\xf7\x4a\xf8\x4a\xf9\x4a\xfa\x4a\xfb\x4a\xfc\x4a\xfd\x4a\xfe\x4a\xff\x4b\x00\x4b\x01\x4b\x02\x4b\x03\x4b\x04\x4b\x05\x4b\x06\x4b\x07\x4b\x08\x4b\x09\x4b\x0a\x4b\x0b\x4b\x0c\x4b\x0d\x4b\x0e\x4b\x0f\x4b\x10\x4b\x11\x4b\x12\x4b\x13\x4b\x14\x4b\x15\x4b\x16\x4b\x17\x4b\x18\x4b\x19\x4b\x1a\x4b\x1b\x4b\x1c\x4b\x1d\x4b\x1e\x4b\x1f\x4b\x20\x4b\x21\x4b\x22\x4b\x23\x4b\x24\x4b\x25\x4b\x26\x4b\x27\x00\x00", /* ee00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x28\x4b\x29\x4b\x2a\x4b\x2b\x4b\x2c\x4b\x2d\x4b\x2e\x4b\x2f\x4b\x30\x4b\x31\x4b\x32\x4b\x33\x4b\x34\x4b\x35\x4b\x36\x4b\x37\x4b\x38\x4b\x39\x4b\x3a\x4b\x3b\x4b\x3c\x4b\x3d\x4b\x3e\x4b\x3f\x4b\x40\x4b\x41\x4b\x42\x4b\x43\x4b\x44\x4b\x45\x4b\x46\x4b\x47\x4b\x48\x4b\x49\x4b\x4a\x4b\x4b\x4b\x4c\x4b\x4d\x4b\x4e\x4b\x4f\x4b\x50\x4b\x51\x4b\x52\x4b\x53\x4b\x54\x4b\x55\x4b\x56\x4b\x57\x4b\x58\x4b\x59\x4b\x5a\x4b\x5b\x4b\x5c\x4b\x5d\x4b\x5e\x4b\x5f\x4b\x60\x4b\x61\x4b\x62\x4b\x63\x4b\x64\x4b\x65\x4b\x66", /* ee80 */ "\x4b\x67\x4b\x68\x4b\x69\x4b\x6a\x4b\x6b\x4b\x6c\x4b\x6d\x4b\x6e\x4b\x6f\x4b\x70\x4b\x71\x4b\x72\x4b\x73\x4b\x74\x4b\x75\x4b\x76\x4b\x77\x4b\x78\x4b\x79\x4b\x7a\x4b\x7b\x4b\x7c\x4b\x7d\x4b\x7e\x4b\x7f\x4b\x80\x4b\x81\x4b\x82\x4b\x83\x4b\x84\x4b\x85\x4b\x86\x4b\x87\x4b\x88\x4b\x89\x4b\x8a\x4b\x8b\x4b\x8c\x4b\x8d\x4b\x8e\x4b\x8f\x4b\x90\x4b\x91\x4b\x92\x4b\x93\x4b\x94\x4b\x95\x4b\x96\x4b\x97\x4b\x98\x4b\x99\x4b\x9a\x4b\x9b\x4b\x9c\x4b\x9d\x4b\x9e\x4b\x9f\x4b\xa0\x4b\xa1\x4b\xa2\x4b\xa3\x4b\xa4\x4b\xa5\x4b\xa6\x4b\xa7\x4b\xa8\x4b\xa9\x4b\xaa\x4b\xab\x4b\xac\x4b\xad\x4b\xae\x4b\xaf\x4b\xb0\x4b\xb1\x4b\xb2\x4b\xb3\x4b\xb4\x4b\xb5\x4b\xb6\x4b\xb7\x4b\xb8\x4b\xb9\x4b\xba\x4b\xbb\x4b\xbc\x4b\xbd\x4b\xbe\x4b\xbf\x4b\xc0\x4b\xc1\x4b\xc2\x4b\xc3\x4b\xc4\x4b\xc5\x4b\xc6\x4b\xc7\x4b\xc8\x4b\xc9\x4b\xca\x4b\xcb\x4b\xcc\x4b\xcd\x4b\xce\x4b\xcf\x4b\xd0\x4b\xd1\x4b\xd2\x4b\xd3\x4b\xd4\x4b\xd5\x4b\xd6\x4b\xd7\x4b\xd8\x4b\xd9\x4b\xda\x4b\xdb\x4b\xdc\x4b\xdd\x4b\xde\x4b\xdf\x4b\xe0\x4b\xe1\x4b\xe2\x4b\xe3\x4b\xe4\x4b\xe5\x00\x00", /* ef00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe6\x4b\xe7\x4b\xe8\x4b\xe9\x4b\xea\x4b\xeb\x4b\xec\x4b\xed\x4b\xee\x4b\xef\x4b\xf0\x4b\xf1\x4b\xf2\x4b\xf3\x4b\xf4\x4b\xf5\x4b\xf6\x4b\xf7\x4b\xf8\x4b\xf9\x4b\xfa\x4b\xfb\x4b\xfc\x4b\xfd\x4b\xfe\x4b\xff\x4c\x00\x4c\x01\x4c\x02\x4c\x03\x4c\x04\x4c\x05\x4c\x06\x4c\x07\x4c\x08\x4c\x09\x4c\x0a\x4c\x0b\x4c\x0c\x4c\x0d\x4c\x0e\x4c\x0f\x4c\x10\x4c\x11\x4c\x12\x4c\x13\x4c\x14\x4c\x15\x4c\x16\x4c\x17\x4c\x18\x4c\x19\x4c\x1a\x4c\x1b\x4c\x1c\x4c\x1d\x4c\x1e\x4c\x1f\x4c\x20\x4c\x21\x4c\x22\x4c\x23\x4c\x24", /* ef80 */ "\x4c\x25\x4c\x26\x4c\x27\x4c\x28\x4c\x29\x4c\x2a\x4c\x2b\x4c\x2c\x4c\x2d\x4c\x2e\x4c\x2f\x4c\x30\x4c\x31\x4c\x32\x4c\x33\x4c\x34\x4c\x35\x4c\x36\x4c\x37\x4c\x38\x4c\x39\x4c\x3a\x4c\x3b\x4c\x3c\x4c\x3d\x4c\x3e\x4c\x3f\x4c\x40\x4c\x41\x4c\x42\x4c\x43\x4c\x44\x4c\x45\x4c\x46\x4c\x47\x4c\x48\x4c\x49\x4c\x4a\x4c\x4b\x4c\x4c\x4c\x4d\x4c\x4e\x4c\x4f\x4c\x50\x4c\x51\x4c\x52\x4c\x53\x4c\x54\x4c\x55\x4c\x56\x4c\x57\x4c\x58\x4c\x59\x4c\x5a\x4c\x5b\x4c\x5c\x4c\x5d\x4c\x5e\x4c\x5f\x4c\x60\x4c\x61\x4c\x62\x4c\x63\x4c\x64\x4c\x65\x4c\x66\x4c\x67\x4c\x68\x4c\x69\x4c\x6a\x4c\x6b\x4c\x6c\x4c\x6d\x4c\x6e\x4c\x6f\x4c\x70\x4c\x71\x4c\x72\x4c\x73\x4c\x74\x4c\x75\x4c\x76\x4c\x78\x4c\x79\x4c\x7a\x4c\x7b\x4c\x7c\x4c\x7d\x4c\x7e\x4c\x7f\x4c\x80\x4c\x81\x4c\x82\x4c\x83\x4c\x84\x4c\x85\x4c\x86\x4c\x87\x4c\x88\x4c\x89\x4c\x8a\x4c\x8b\x4c\x8c\x4c\x8d\x4c\x8e\x4c\x8f\x4c\x90\x4c\x91\x4c\x92\x4c\x93\x4c\x94\x4c\x95\x4c\x96\x4c\x97\x4c\x98\x4c\x99\x4c\x9a\x4c\x9b\x4c\x9c\x4c\x9d\x4c\x9e\x4c\xa4\x4c\xa5\x4c\xa6\x4c\xa7\x4c\xa8\x4c\xa9\x00\x00", /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xaa\x4c\xab\x4c\xac\x4c\xad\x4c\xae\x4c\xaf\x4c\xb0\x4c\xb1\x4c\xb2\x4c\xb3\x4c\xb4\x4c\xb5\x4c\xb6\x4c\xb7\x4c\xb8\x4c\xb9\x4c\xba\x4c\xbb\x4c\xbc\x4c\xbd\x4c\xbe\x4c\xbf\x4c\xc0\x4c\xc1\x4c\xc2\x4c\xc3\x4c\xc4\x4c\xc5\x4c\xc6\x4c\xc7\x4c\xc8\x4c\xc9\x4c\xca\x4c\xcb\x4c\xcc\x4c\xcd\x4c\xce\x4c\xcf\x4c\xd0\x4c\xd1\x4c\xd2\x4c\xd3\x4c\xd4\x4c\xd5\x4c\xd6\x4c\xd7\x4c\xd8\x4c\xd9\x4c\xda\x4c\xdb\x4c\xdc\x4c\xdd\x4c\xde\x4c\xdf\x4c\xe0\x4c\xe1\x4c\xe2\x4c\xe3\x4c\xe4\x4c\xe5\x4c\xe6\x4c\xe7\x4c\xe8", /* f680 */ "\x4c\xe9\x4c\xea\x4c\xeb\x4c\xec\x4c\xed\x4c\xee\x4c\xef\x4c\xf0\x4c\xf1\x4c\xf2\x4c\xf3\x4c\xf4\x4c\xf5\x4c\xf6\x4c\xf7\x4c\xf8\x4c\xf9\x4c\xfa\x4c\xfb\x4c\xfc\x4c\xfd\x4c\xfe\x4c\xff\x4d\x00\x4d\x01\x4d\x02\x4d\x03\x4d\x04\x4d\x05\x4d\x06\x4d\x07\x4d\x08\x4d\x09\x4d\x0a\x4d\x0b\x4d\x0c\x4d\x0d\x4d\x0e\x4d\x0f\x4d\x10\x4d\x11\x4d\x12\x4d\x1a\x4d\x1b\x4d\x1c\x4d\x1d\x4d\x1e\x4d\x1f\x4d\x20\x4d\x21\x4d\x22\x4d\x23\x4d\x24\x4d\x25\x4d\x26\x4d\x27\x4d\x28\x4d\x29\x4d\x2a\x4d\x2b\x4d\x2c\x4d\x2d\x4d\x2e\x4d\x2f\x4d\x30\x4d\x31\x4d\x32\x4d\x33\x4d\x34\x4d\x35\x4d\x36\x4d\x37\x4d\x38\x4d\x39\x4d\x3a\x4d\x3b\x4d\x3c\x4d\x3d\x4d\x3e\x4d\x3f\x4d\x40\x4d\x41\x4d\x42\x4d\x43\x4d\x44\x4d\x45\x4d\x46\x4d\x47\x4d\x48\x4d\x49\x4d\x4a\x4d\x4b\x4d\x4c\x4d\x4d\x4d\x4e\x4d\x4f\x4d\x50\x4d\x51\x4d\x52\x4d\x53\x4d\x54\x4d\x55\x4d\x56\x4d\x57\x4d\x58\x4d\x59\x4d\x5a\x4d\x5b\x4d\x5c\x4d\x5d\x4d\x5e\x4d\x5f\x4d\x60\x4d\x61\x4d\x62\x4d\x63\x4d\x64\x4d\x65\x4d\x66\x4d\x67\x4d\x68\x4d\x69\x4d\x6a\x4d\x6b\x4d\x6c\x4d\x6d\x4d\x6e\x00\x00", /* f700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6f\x4d\x70\x4d\x71\x4d\x72\x4d\x73\x4d\x74\x4d\x75\x4d\x76\x4d\x77\x4d\x78\x4d\x79\x4d\x7a\x4d\x7b\x4d\x7c\x4d\x7d\x4d\x7e\x4d\x7f\x4d\x80\x4d\x81\x4d\x82\x4d\x83\x4d\x84\x4d\x85\x4d\x86\x4d\x87\x4d\x88\x4d\x89\x4d\x8a\x4d\x8b\x4d\x8c\x4d\x8d\x4d\x8e\x4d\x8f\x4d\x90\x4d\x91\x4d\x92\x4d\x93\x4d\x94\x4d\x95\x4d\x96\x4d\x97\x4d\x98\x4d\x99\x4d\x9a\x4d\x9b\x4d\x9c\x4d\x9d\x4d\x9e\x4d\x9f\x4d\xa0\x4d\xa1\x4d\xa2\x4d\xa3\x4d\xa4\x4d\xa5\x4d\xa6\x4d\xa7\x4d\xa8\x4d\xa9\x4d\xaa\x4d\xab\x4d\xac\x4d\xad", /* f780 */ "\x4d\xaf\x4d\xb0\x4d\xb1\x4d\xb2\x4d\xb3\x4d\xb4\x4d\xb5\x4d\xb6\x4d\xb7\x4d\xb8\x4d\xb9\x4d\xba\x4d\xbb\x4d\xbc\x4d\xbd\x4d\xbe\x4d\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x56\xfb\x57\xfb\x58\xfb\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x7a\xfb\x7b\xfb\x7c\xfb\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x8e", /* f880 */ "\xfb\x8f\xfb\x90\xfb\x91\xfb\x92\xfb\x93\xfb\x94\xfb\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xaa\xfb\xab\xfb\xac\xfb\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xd3\xfb\xd4\xfb\xd5\xfb\xd6\xfb\xd7\xfb\xd8\xfb\xd9\xfb\xda\xfb\xdb\xfb\xdc\xfb\xdd\xfb\xde\xfb\xdf\xfb\xe0\xfb\xe1\xfb\xe2\xfb\xe3\xfb\xe4\xfb\xe5\xfb\xe6\xfb\xe7\xfb\xe8\xfb\xe9\xfb\xea\xfb\xeb\xfb\xec\xfb\xed\xfb\xee\xfb\xef\xfb\xf0\xfb\xf1\xfb\xf2\xfb\xf3\xfb\xf4\xfb\xf5\xfb\xf6\xfb\xf7\xfb\xf8\xfb\xf9\xfb\xfa\xfb\xfb\xfb\xfc\xfb\xfd\xfb\xfe\xfb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x89\xfe\x8a\xfe\x8b\xfe\x8c\xfe\x8d\xfe\x8e\xfe\x8f\xfe\x90\xfe\x91\xfe\x92\x00\x00\x00\x00\xfe\x95\xfe\x96\xfe\x97\xfe\x98\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x9d\xfe\x9e\xfe\x9f\xfe\xa0\xfe\xa1\xfe\xa2\xfe\xa3\xfe\xa4\xfe\xa5\xfe\xa6\xfe\xa7\xfe\xa8\xfe\xa9\xfe\xaa\x00\x00\x00\x00\xfe\xad\xfe\xae\xfe\xaf\xfe\xb0\xfe\xb1\xfe\xb2\xfe\xb3\xfe\xb4\xfe\xb5\xfe\xb6\xfe\xb7\x00\x00", /* fc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xc9\xfe\xca\xfe\xcb\xfe\xcc\xfe\xcd\xfe\xce\xfe\xcf\xfe\xd0\xfe\xd1\xfe\xd2\xfe\xd3\xfe\xd4\xfe\xd5\xfe\xd6\xfe\xd7\xfe\xd8\xfe\xd9\xfe\xda\xfe\xdb\xfe\xdc\xfe\xdd\xfe\xde\xfe\xdf\xfe\xe0\xfe\xe1\xfe\xe2\xfe\xe3\xfe\xe4\xfe\xe5\xfe\xe6\xfe\xe7\xfe\xe8\xfe\xe9\xfe\xea\xfe\xeb\xfe\xec\xfe\xed\xfe\xee\xfe\xef\xfe\xf0\xfe\xf1\xfe\xf2\xfe\xf3\xfe\xf4\x00\x00\x00\x00", /* fc80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfb\xfe\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { NULL } }; /* Code page aliases. */ typedef struct { char *alias; char *canon; } cpalias_t; cpalias_t cpaliases16[] = { { "chinese-gb18030", "cp1388" }, { "cp1027", "cp930" }, /* historical error */ { "cp290", "cp930" }, /* historical error */ { "cp936", "cp935" }, /* historical error */ { "japanese-1027", "cp930" }, /* historical error */ { "japanese-290", "cp930" }, /* historical error */ { "japanese-kana", "cp930" }, { "japanese-latin", "cp930" }, /* 930 and 939 DBCS are the same */ { "simplified-chinese", "cp935" }, { "traditional-chinese", "cp937" }, { NULL, NULL } }; static uni16_t *cur_uni16 = NULL; void charset_list_dbcs(void) { int i; int j; char *sep = ""; printf("DBCS host code pages (with aliases):\n"); for (i = 0; uni16[i].name != NULL; i++) { Boolean any = False; char *asep = " ("; printf("%s%s", sep, uni16[i].name); for (j = 0; cpaliases16[j].alias != NULL; j++) { if (!strcmp(cpaliases16[j].canon, uni16[i].name)) { printf("%s%s", asep, cpaliases16[j].alias); asep = ", "; any = True; } } if (any) printf(")"); sep = ", "; } printf("\n"); } /* * Translate a single DBCS EBCDIC character to Unicode. * * If EUO_BLANK_UNDEF is set, undisplayable characters are returned as * wide spaces (U+3000); otherwise they are returned as 0. */ ucs4_t ebcdic_dbcs_to_unicode(ebc_t c, unsigned flags) { int row, col; int ix; if (cur_uni16 == NULL || c < 0x100) return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; if (c == 0x4040) return 0x3000; row = (c >> 7) & 0x1ff; if (cur_uni16->ebc2u[row] == NULL) return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; col = (c & 0x7f) * 2; ix = ((cur_uni16->ebc2u[row][col] & 0xff) << 8) | (cur_uni16->ebc2u[row][col + 1] & 0xff); if (ix) return ix; else return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; } /* * Map a UCS-4 character to a DBCS EBCDIC character. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic_dbcs(ucs4_t u) { int row, col; int ix; if (cur_uni16 == NULL || !u) return 0; if (u == 0x3000) return 0x4040; row = (u >> 7) & 0x1ff; if (cur_uni16->u2ebc[row] == NULL) return 0; col = (u & 0x7f) * 2; ix = ((cur_uni16->u2ebc[row][col] & 0xff) << 8) | (cur_uni16->u2ebc[row][col + 1] & 0xff); return ix; } /* * Set the EBCDIC-to-Unicode DBCS translation table. * Returns 0 for success, -1 for failure. */ int set_uni_dbcs(const char *csname, const char **codepage, const char **display_charsets) { int i; const char *realname = csname; int rc = -1; /* Search for an alias. */ for (i = 0; cpaliases16[i].alias != NULL; i++) { if (!strcasecmp(csname, cpaliases16[i].alias)) { realname = cpaliases16[i].canon; break; } } /* Search for a match. */ for (i = 0; uni16[i].name != NULL; i++) { if (!strcasecmp(realname, uni16[i].name)) { cur_uni16 = &uni16[i]; *codepage = uni16[i].codepage; *display_charsets = uni16[i].display_charset; rc = 0; break; } } /* * If this fails (which we sometimes do on purpose), forget any * old setting. */ if (rc == -1) cur_uni16 = NULL; return rc; } #endif /*]*/ ibm-3270-3.3.10ga4/s3270/3270ds.h0000644000175000017500000003372511254565704015052 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES AND GTRC * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, JEFF * SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * 3270ds.h * * Header file for the 3270 Data Stream Protocol. */ /* 3270 commands */ #define CMD_W 0x01 /* write */ #define CMD_RB 0x02 /* read buffer */ #define CMD_NOP 0x03 /* no-op */ #define CMD_EW 0x05 /* erase/write */ #define CMD_RM 0x06 /* read modified */ #define CMD_EWA 0x0d /* erase/write alternate */ #define CMD_RMA 0x0e /* read modified all */ #define CMD_EAU 0x0f /* erase all unprotected */ #define CMD_WSF 0x11 /* write structured field */ /* SNA 3270 commands */ #define SNA_CMD_RMA 0x6e /* read modified all */ #define SNA_CMD_EAU 0x6f /* erase all unprotected */ #define SNA_CMD_EWA 0x7e /* erase/write alternate */ #define SNA_CMD_W 0xf1 /* write */ #define SNA_CMD_RB 0xf2 /* read buffer */ #define SNA_CMD_WSF 0xf3 /* write structured field */ #define SNA_CMD_EW 0xf5 /* erase/write */ #define SNA_CMD_RM 0xf6 /* read modified */ /* 3270 orders */ #define ORDER_PT 0x05 /* program tab */ #define ORDER_GE 0x08 /* graphic escape */ #define ORDER_SBA 0x11 /* set buffer address */ #define ORDER_EUA 0x12 /* erase unprotected to address */ #define ORDER_IC 0x13 /* insert cursor */ #define ORDER_SF 0x1d /* start field */ #define ORDER_SA 0x28 /* set attribute */ #define ORDER_SFE 0x29 /* start field extended */ #define ORDER_YALE 0x2b /* Yale sub command */ #define ORDER_MF 0x2c /* modify field */ #define ORDER_RA 0x3c /* repeat to address */ #define FCORDER_NULL 0x00 /* format control: null */ #define FCORDER_FF 0x0c /* form feed */ #define FCORDER_CR 0x0d /* carriage return */ #define FCORDER_SO 0x0e /* shift out (DBCS subfield) */ #define FCORDER_SI 0x0f /* shift in (DBCS end) */ #define FCORDER_NL 0x15 /* new line */ #define FCORDER_EM 0x19 /* end of medium */ #define FCORDER_DUP 0x1c /* duplicate */ #define FCORDER_FM 0x1e /* field mark */ #define FCORDER_SUB 0x3f /* substitute */ #define FCORDER_EO 0xff /* eight ones */ /* SCS control code, some overlap orders */ #define SCS_BS 0x16 /* Back Space */ #define SCS_BEL 0x2f /* Bell Function */ #define SCS_CR 0x0d /* Carriage Return */ #define SCS_ENP 0x14 /* Enable Presentation */ #define SCS_FF 0x0c /* Forms Feed */ #define SCS_GE 0x08 /* Graphic Escape */ #define SCS_HT 0x05 /* Horizontal Tab */ #define SCS_INP 0x24 /* Inhibit Presentation */ #define SCS_IRS 0x1e /* Interchange-Record Separator */ #define SCS_LF 0x25 /* Line Feed */ #define SCS_NL 0x15 /* New Line */ #define SCS_SA 0x28 /* Set Attribute: */ #define SCS_SA_RESET 0x00 /* Reset all */ #define SCS_SA_HIGHLIGHT 0x41 /* Highlighting */ #define SCS_SA_CS 0x42 /* Character set */ #define SCS_SA_GRID 0xc2 /* Grid */ #define SCS_SET 0x2b /* Set: */ #define SCS_SHF 0xc1 /* Horizontal format */ #define SCS_SLD 0xc6 /* Line Density */ #define SCS_SVF 0xc2 /* Vertical Format */ #define SCS_SO 0x0e /* Shift out (DBCS subfield start) */ #define SCS_SI 0x0f /* Shift in (DBCS subfield end) */ #define SCS_TRN 0x35 /* Transparent */ #define SCS_VCS 0x04 /* Vertical Channel Select */ #define SCS_VT 0x0b /* Vertical Tab */ /* Structured fields */ #define SF_READ_PART 0x01 /* read partition */ #define SF_RP_QUERY 0x02 /* query */ #define SF_RP_QLIST 0x03 /* query list */ #define SF_RPQ_LIST 0x00 /* QCODE list */ #define SF_RPQ_EQUIV 0x40 /* equivalent+ QCODE list */ #define SF_RPQ_ALL 0x80 /* all */ #define SF_ERASE_RESET 0x03 /* erase/reset */ #define SF_ER_DEFAULT 0x00 /* default */ #define SF_ER_ALT 0x80 /* alternate */ #define SF_SET_REPLY_MODE 0x09 /* set reply mode */ #define SF_SRM_FIELD 0x00 /* field */ #define SF_SRM_XFIELD 0x01 /* extended field */ #define SF_SRM_CHAR 0x02 /* character */ #define SF_CREATE_PART 0x0c /* create partition */ #define CPFLAG_PROT 0x40 /* protected flag */ #define CPFLAG_COPY_PS 0x20 /* local copy to presentation space */ #define CPFLAG_BASE 0x07 /* base character set index */ #define SF_OUTBOUND_DS 0x40 /* outbound 3270 DS */ #define SF_TRANSFER_DATA 0xd0 /* file transfer open request */ /* Query replies */ #define QR_SUMMARY 0x80 /* summary */ #define QR_USABLE_AREA 0x81 /* usable area */ #define QR_IMAGE 0x82 /* image */ #define QR_TEXT_PART 0x83 /* text partitions */ #define QR_ALPHA_PART 0x84 /* alphanumeric partitions */ #define QR_CHARSETS 0x85 /* character sets */ #define QR_COLOR 0x86 /* color */ #define QR_HIGHLIGHTING 0x87 /* highlighting */ #define QR_REPLY_MODES 0x88 /* reply modes */ #define QR_FIELD_VAL 0x8a /* field validation */ #define QR_MSR_CTL 0x8b /* MSR control */ #define QR_OUTLINING 0x8c /* field outlining */ #define QR_PART_CHAR 0x8e /* partition characteristics */ #define QR_OEM_AUX 0x8f /* OEM auxiliary device */ #define QR_FMT_PRES 0x90 /* format presentation */ #define QR_DBCS_ASIA 0x91 /* DBCS-Asia */ #define QR_SAVE_RESTORE 0x92 /* save/restore format */ #define QR_PC3270 0x93 /* PC3270 */ #define QR_FMT_SAD 0x94 /* format storage auxiliary device */ #define QR_DDM 0x95 /* distributed data management */ #define QR_STG_POOLS 0x96 /* storage pools */ #define QR_DIA 0x97 /* document interchange architecture */ #define QR_DATA_CHAIN 0x98 /* data chaining */ #define QR_AUX_DEVICE 0x99 /* auxiliary device */ #define QR_3270_IPDS 0x9a /* 3270 IPDS */ #define QR_PDDS 0x9c /* product defined data stream */ #define QR_IBM_AUX 0x9e /* IBM auxiliary device */ #define QR_BEGIN_EOF 0x9f /* begin/end of file */ #define QR_DEVICE_CHAR 0xa0 /* device characteristics */ #define QR_RPQNAMES 0xa1 /* RPQ names */ #define QR_DATA_STREAMS 0xa2 /* data streams */ #define QR_IMP_PART 0xa6 /* implicit partition */ #define QR_PAPER_FEED 0xa7 /* paper feed techniques */ #define QR_TRANSPARENCY 0xa8 /* transparency */ #define QR_SPC 0xa9 /* settable printer characteristics */ #define QR_IOCA_AD 0xaa /* IOCA auxiliary device */ #define QR_CPR 0xab /* cooperative proc. requestor */ #define QR_SEGMENT 0xb0 /* segment */ #define QR_PROCEDURE 0xb1 /* procedure */ #define QR_LINE_TYPE 0xb2 /* line type */ #define QR_PORT 0xb3 /* port */ #define QR_GCOLOR 0xb4 /* graphic color */ #define QR_XDR 0xb5 /* extended drawing routine */ #define QR_GSS 0xb6 /* graphic symbol sets */ #define QR_NULL 0xff /* null */ #define BA_TO_ROW(ba) ((ba) / COLS) #define BA_TO_COL(ba) ((ba) % COLS) #define ROWCOL_TO_BA(r,c) (((r) * COLS) + c) #define INC_BA(ba) { (ba) = ((ba) + 1) % (COLS * ROWS); } #define DEC_BA(ba) { (ba) = (ba) ? (ba - 1) : ((COLS*ROWS) - 1); } /* Field attributes. */ #define FA_PRINTABLE 0xc0 /* these make the character "printable" */ #define FA_PROTECT 0x20 /* unprotected (0) / protected (1) */ #define FA_NUMERIC 0x10 /* alphanumeric (0) /numeric (1) */ #define FA_INTENSITY 0x0c /* display/selector pen detectable: */ #define FA_INT_NORM_NSEL 0x00 /* 00 normal, non-detect */ #define FA_INT_NORM_SEL 0x04 /* 01 normal, detectable */ #define FA_INT_HIGH_SEL 0x08 /* 10 intensified, detectable */ #define FA_INT_ZERO_NSEL 0x0c /* 11 nondisplay, non-detect */ #define FA_RESERVED 0x02 /* must be 0 */ #define FA_MODIFY 0x01 /* modified (1) */ /* Bits in the field attribute that are stored. */ #define FA_MASK (FA_PROTECT | FA_NUMERIC | FA_INTENSITY | FA_MODIFY) /* Tests for various attribute properties. */ #define FA_IS_MODIFIED(c) ((c) & FA_MODIFY) #define FA_IS_NUMERIC(c) ((c) & FA_NUMERIC) #define FA_IS_PROTECTED(c) ((c) & FA_PROTECT) #define FA_IS_SKIP(c) (((c) & FA_PROTECT) && ((c) & FA_NUMERIC)) #define FA_IS_ZERO(c) \ (((c) & FA_INTENSITY) == FA_INT_ZERO_NSEL) #define FA_IS_HIGH(c) \ (((c) & FA_INTENSITY) == FA_INT_HIGH_SEL) #define FA_IS_NORMAL(c) \ ( \ ((c) & FA_INTENSITY) == FA_INT_NORM_NSEL \ || \ ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \ ) #define FA_IS_SELECTABLE(c) \ ( \ ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \ || \ ((c) & FA_INTENSITY) == FA_INT_HIGH_SEL \ ) #define FA_IS_INTENSE(c) \ ((c & FA_INT_HIGH_SEL) == FA_INT_HIGH_SEL) /* Extended attributes */ #define XA_ALL 0x00 #define XA_3270 0xc0 #define XA_VALIDATION 0xc1 #define XAV_FILL 0x04 #define XAV_ENTRY 0x02 #define XAV_TRIGGER 0x01 #define XA_OUTLINING 0xc2 #define XAO_UNDERLINE 0x01 #define XAO_RIGHT 0x02 #define XAO_OVERLINE 0x04 #define XAO_LEFT 0x08 #define XA_HIGHLIGHTING 0x41 #define XAH_DEFAULT 0x00 #define XAH_NORMAL 0xf0 #define XAH_BLINK 0xf1 #define XAH_REVERSE 0xf2 #define XAH_UNDERSCORE 0xf4 #define XAH_INTENSIFY 0xf8 #define XA_FOREGROUND 0x42 #define XAC_DEFAULT 0x00 #define XA_CHARSET 0x43 #define XA_BACKGROUND 0x45 #define XA_TRANSPARENCY 0x46 #define XAT_DEFAULT 0x00 #define XAT_OR 0xf0 #define XAT_XOR 0xf1 #define XAT_OPAQUE 0xff #define XA_INPUT_CONTROL 0xfe #define XAI_DISABLED 0x00 #define XAI_ENABLED 0x01 /* WCC definitions */ #define WCC_RESET(c) ((c) & 0x40) #define WCC_START_PRINTER(c) ((c) & 0x08) #define WCC_SOUND_ALARM(c) ((c) & 0x04) #define WCC_KEYBOARD_RESTORE(c) ((c) & 0x02) #define WCC_RESET_MDT(c) ((c) & 0x01) /* AIDs */ #define AID_NO 0x60 /* no AID generated */ #define AID_QREPLY 0x61 #define AID_ENTER 0x7d #define AID_PF1 0xf1 #define AID_PF2 0xf2 #define AID_PF3 0xf3 #define AID_PF4 0xf4 #define AID_PF5 0xf5 #define AID_PF6 0xf6 #define AID_PF7 0xf7 #define AID_PF8 0xf8 #define AID_PF9 0xf9 #define AID_PF10 0x7a #define AID_PF11 0x7b #define AID_PF12 0x7c #define AID_PF13 0xc1 #define AID_PF14 0xc2 #define AID_PF15 0xc3 #define AID_PF16 0xc4 #define AID_PF17 0xc5 #define AID_PF18 0xc6 #define AID_PF19 0xc7 #define AID_PF20 0xc8 #define AID_PF21 0xc9 #define AID_PF22 0x4a #define AID_PF23 0x4b #define AID_PF24 0x4c #define AID_OICR 0xe6 #define AID_MSR_MHS 0xe7 #define AID_SELECT 0x7e #define AID_PA1 0x6c #define AID_PA2 0x6e #define AID_PA3 0x6b #define AID_CLEAR 0x6d #define AID_SYSREQ 0xf0 #define AID_SF 0x88 #define SFID_QREPLY 0x81 /* Colors */ #define HOST_COLOR_NEUTRAL_BLACK 0 #define HOST_COLOR_BLUE 1 #define HOST_COLOR_RED 2 #define HOST_COLOR_PINK 3 #define HOST_COLOR_GREEN 4 #define HOST_COLOR_TURQUOISE 5 #define HOST_COLOR_YELLOW 6 #define HOST_COLOR_NEUTRAL_WHITE 7 #define HOST_COLOR_BLACK 8 #define HOST_COLOR_DEEP_BLUE 9 #define HOST_COLOR_ORANGE 10 #define HOST_COLOR_PURPLE 11 #define HOST_COLOR_PALE_GREEN 12 #define HOST_COLOR_PALE_TURQUOISE 13 #define HOST_COLOR_GREY 14 #define HOST_COLOR_WHITE 15 /* Data stream manipulation macros. */ #define MASK32 0xff000000U #define MASK24 0x00ff0000U #define MASK16 0x0000ff00U #define MASK08 0x000000ffU #define MINUS1 0xffffffffU #define SET16(ptr, val) { \ *((ptr)++) = ((val) & MASK16) >> 8; \ *((ptr)++) = ((val) & MASK08); \ } #define GET16(val, ptr) { \ (val) = *((ptr)+1); \ (val) += *(ptr) << 8; \ } #define SET32(ptr, val) { \ *((ptr)++) = ((val) & MASK32) >> 24; \ *((ptr)++) = ((val) & MASK24) >> 16; \ *((ptr)++) = ((val) & MASK16) >> 8; \ *((ptr)++) = ((val) & MASK08); \ } #define HIGH8(s) (((s) >> 8) & 0xff) #define LOW8(s) ((s) & 0xff) /* Other EBCDIC control codes. */ #define EBC_null 0x00 #define EBC_ff 0x0c #define EBC_cr 0x0d #define EBC_so 0x0e #define EBC_si 0x0f #define EBC_nl 0x15 #define EBC_em 0x19 #define EBC_dup 0x1c #define EBC_fm 0x1e #define EBC_sub 0x3f #define EBC_space 0x40 #define EBC_nobreakspace 0x41 #define EBC_period 0x4b #define EBC_ampersand 0x50 #define EBC_underscore 0x6d #define EBC_greater 0x6e #define EBC_question 0x6f #define EBC_Yacute 0xad #define EBC_diaeresis 0xbd #define EBC_minus 0xca #define EBC_0 0xf0 #define EBC_9 0xf9 #define EBC_eo 0xff #define EBC_less 0x4c #define EBC_greaer 0x6e #define EBC_P 0xd7 #define EBC_M 0xd4 #define EBC_U 0xe4 /* Unicode private-use definitions. */ #define UPRIV_GE_00 0xf700 /* first GE */ #define UPRIV_GE_ff 0xf7ff /* last GE */ #define UPRIV_sub 0xf8fc #define UPRIV_eo 0xf8fd #define UPRIV_fm 0xf8fe #define UPRIV_dup 0xf8ff /* BIND definitions. */ #define BIND_RU 0x31 #define BIND_OFF_MAXRU_SEC 10 #define BIND_OFF_MAXRU_PRI 11 #define BIND_OFF_RD 20 #define BIND_OFF_CD 21 #define BIND_OFF_RA 22 #define BIND_OFF_CA 23 #define BIND_OFF_SSIZE 24 #define BIND_OFF_PLU_NAME_LEN 27 #define BIND_PLU_NAME_MAX 8 #define BIND_OFF_PLU_NAME 28 /* Screen sizes. */ #define MODEL_2_ROWS 24 #define MODEL_2_COLS 80 #define MODEL_3_ROWS 32 #define MODEL_3_COLS 80 #define MODEL_4_ROWS 43 #define MODEL_4_COLS 80 #define MODEL_5_ROWS 27 #define MODEL_5_COLS 132 ibm-3270-3.3.10ga4/s3270/proxy.h0000644000175000017500000000367311254565704015310 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxy.h * Common definitions for proxy. */ #define PROXY_PASSTHRU "passthru" #define PORT_PASSTHRU "3514" #define PROXY_HTTP "http" #define PORT_HTTP "3128" #define PROXY_TELNET "telnet" #define PROXY_SOCKS4 "socks4" #define PORT_SOCKS4 "1080" #define PROXY_SOCKS4A "socks4a" #define PORT_SOCKS4A "1080" #define PROXY_SOCKS5 "socks5" #define PORT_SOCKS5 "1080" #define PROXY_SOCKS5D "socks5d" #define PORT_SOCKS5D "1080" ibm-3270-3.3.10ga4/s3270/proxyc.h0000644000175000017500000000334311254565704015445 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxyc.h * Declarations for proxy.c. */ extern int proxy_setup(char **phost, char **pport); extern int proxy_negotiate(int type, int fd, char *host, unsigned short port); extern char *proxy_type_name(int type); ibm-3270-3.3.10ga4/s3270/see.c0000644000175000017500000002356011254565704014673 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * see.c * 3270 data stream decode functions. * */ #include "globals.h" #if defined(X3270_TRACE) /*[*/ #include #include #include #include #include "3270ds.h" #include "tablesc.h" #include "utf8c.h" #include "seec.h" #include "unicodec.h" const char * unknown(unsigned char value) { static char buf[64]; (void) sprintf(buf, "unknown[0x%x]", value); return buf; } const char * see_ebc(unsigned char ch) { static char buf[8]; char mb[16]; ucs4_t uc; switch (ch) { case FCORDER_NULL: return "NULL"; case FCORDER_SUB: return "SUB"; case FCORDER_DUP: return "DUP"; case FCORDER_FM: return "FM"; case FCORDER_FF: return "FF"; case FCORDER_CR: return "CR"; case FCORDER_NL: return "NL"; case FCORDER_EM: return "EM"; case FCORDER_EO: return "EO"; case FCORDER_SI: return "SI"; case FCORDER_SO: return "SO"; } if (ebcdic_to_multibyte_x(ch, CS_BASE, mb, sizeof(mb), EUO_NONE, &uc) && (mb[0] != ' ' || ch == 0x40)) strcpy(buf, mb); else (void) sprintf(buf, "X'%02X'", ch); return buf; } const char * see_aid(unsigned char code) { switch (code) { case AID_NO: return "NoAID"; case AID_ENTER: return "Enter"; case AID_PF1: return "PF1"; case AID_PF2: return "PF2"; case AID_PF3: return "PF3"; case AID_PF4: return "PF4"; case AID_PF5: return "PF5"; case AID_PF6: return "PF6"; case AID_PF7: return "PF7"; case AID_PF8: return "PF8"; case AID_PF9: return "PF9"; case AID_PF10: return "PF10"; case AID_PF11: return "PF11"; case AID_PF12: return "PF12"; case AID_PF13: return "PF13"; case AID_PF14: return "PF14"; case AID_PF15: return "PF15"; case AID_PF16: return "PF16"; case AID_PF17: return "PF17"; case AID_PF18: return "PF18"; case AID_PF19: return "PF19"; case AID_PF20: return "PF20"; case AID_PF21: return "PF21"; case AID_PF22: return "PF22"; case AID_PF23: return "PF23"; case AID_PF24: return "PF24"; case AID_OICR: return "OICR"; case AID_MSR_MHS: return "MSR_MHS"; case AID_SELECT: return "Select"; case AID_PA1: return "PA1"; case AID_PA2: return "PA2"; case AID_PA3: return "PA3"; case AID_CLEAR: return "Clear"; case AID_SYSREQ: return "SysReq"; case AID_QREPLY: return "QueryReplyAID"; default: return unknown(code); } } const char * see_attr(unsigned char fa) { static char buf[256]; const char *paren = "("; buf[0] = '\0'; if (fa & FA_PROTECT) { (void) strcat(buf, paren); (void) strcat(buf, "protected"); paren = ","; if (fa & FA_NUMERIC) { (void) strcat(buf, paren); (void) strcat(buf, "skip"); paren = ","; } } else if (fa & FA_NUMERIC) { (void) strcat(buf, paren); (void) strcat(buf, "numeric"); paren = ","; } switch (fa & FA_INTENSITY) { case FA_INT_NORM_NSEL: break; case FA_INT_NORM_SEL: (void) strcat(buf, paren); (void) strcat(buf, "detectable"); paren = ","; break; case FA_INT_HIGH_SEL: (void) strcat(buf, paren); (void) strcat(buf, "intensified"); paren = ","; break; case FA_INT_ZERO_NSEL: (void) strcat(buf, paren); (void) strcat(buf, "nondisplay"); paren = ","; break; } if (fa & FA_MODIFY) { (void) strcat(buf, paren); (void) strcat(buf, "modified"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(default)"); return buf; } static const char * see_highlight(unsigned char setting) { switch (setting) { case XAH_DEFAULT: return "default"; case XAH_NORMAL: return "normal"; case XAH_BLINK: return "blink"; case XAH_REVERSE: return "reverse"; case XAH_UNDERSCORE: return "underscore"; case XAH_INTENSIFY: return "intensify"; default: return unknown(setting); } } const char * see_color(unsigned char setting) { static const char *color_name[] = { "neutralBlack", "blue", "red", "pink", "green", "turquoise", "yellow", "neutralWhite", "black", "deepBlue", "orange", "purple", "paleGreen", "paleTurquoise", "grey", "white" }; if (setting == XAC_DEFAULT) return "default"; else if (setting < 0xf0) return unknown(setting); else return color_name[setting - 0xf0]; } static const char * see_transparency(unsigned char setting) { switch (setting) { case XAT_DEFAULT: return "default"; case XAT_OR: return "or"; case XAT_XOR: return "xor"; case XAT_OPAQUE: return "opaque"; default: return unknown(setting); } } static const char * see_validation(unsigned char setting) { static char buf[64]; const char *paren = "("; (void) strcpy(buf, ""); if (setting & XAV_FILL) { (void) strcat(buf, paren); (void) strcat(buf, "fill"); paren = ","; } if (setting & XAV_ENTRY) { (void) strcat(buf, paren); (void) strcat(buf, "entry"); paren = ","; } if (setting & XAV_TRIGGER) { (void) strcat(buf, paren); (void) strcat(buf, "trigger"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(none)"); return buf; } static const char * see_outline(unsigned char setting) { static char buf[64]; const char *paren = "("; (void) strcpy(buf, ""); if (setting & XAO_UNDERLINE) { (void) strcat(buf, paren); (void) strcat(buf, "underline"); paren = ","; } if (setting & XAO_RIGHT) { (void) strcat(buf, paren); (void) strcat(buf, "right"); paren = ","; } if (setting & XAO_OVERLINE) { (void) strcat(buf, paren); (void) strcat(buf, "overline"); paren = ","; } if (setting & XAO_LEFT) { (void) strcat(buf, paren); (void) strcat(buf, "left"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(none)"); return buf; } static const char * see_input_control(unsigned char setting) { switch (setting) { case XAI_DISABLED: return "disabled"; case XAI_ENABLED: return "enabled"; default: return unknown(setting); } } const char * see_efa(unsigned char efa, unsigned char value) { static char buf[64]; switch (efa) { case XA_ALL: (void) sprintf(buf, " all(%x)", value); break; case XA_3270: (void) sprintf(buf, " 3270%s", see_attr(value)); break; case XA_VALIDATION: (void) sprintf(buf, " validation%s", see_validation(value)); break; case XA_OUTLINING: (void) sprintf(buf, " outlining(%s)", see_outline(value)); break; case XA_HIGHLIGHTING: (void) sprintf(buf, " highlighting(%s)", see_highlight(value)); break; case XA_FOREGROUND: (void) sprintf(buf, " foreground(%s)", see_color(value)); break; case XA_CHARSET: (void) sprintf(buf, " charset(%x)", value); break; case XA_BACKGROUND: (void) sprintf(buf, " background(%s)", see_color(value)); break; case XA_TRANSPARENCY: (void) sprintf(buf, " transparency(%s)", see_transparency(value)); break; case XA_INPUT_CONTROL: (void) sprintf(buf, " input-control(%s)", see_input_control(value)); break; default: (void) sprintf(buf, " %s[0x%x]", unknown(efa), value); break; } return buf; } const char * see_efa_only(unsigned char efa) { switch (efa) { case XA_ALL: return "all"; case XA_3270: return "3270"; case XA_VALIDATION: return "validation"; case XA_OUTLINING: return "outlining"; case XA_HIGHLIGHTING: return "highlighting"; case XA_FOREGROUND: return "foreground"; case XA_CHARSET: return "charset"; case XA_BACKGROUND: return "background"; case XA_TRANSPARENCY: return "transparency"; default: return unknown(efa); } } const char * see_qcode(unsigned char id) { static char buf[64]; switch (id) { case QR_CHARSETS: return "CharacterSets"; case QR_IMP_PART: return "ImplicitPartition"; case QR_SUMMARY: return "Summary"; case QR_USABLE_AREA: return "UsableArea"; case QR_COLOR: return "Color"; case QR_HIGHLIGHTING: return "Highlighting"; case QR_REPLY_MODES: return "ReplyModes"; case QR_DBCS_ASIA: return "DbcsAsia"; case QR_ALPHA_PART: return "AlphanumericPartitions"; case QR_DDM: return "DistributedDataManagement"; case QR_RPQNAMES: return "RPQNames"; default: (void) sprintf(buf, "unknown[0x%x]", id); return buf; } } #endif /*]*/ ibm-3270-3.3.10ga4/s3270/xl.h0000644000175000017500000000325211254565704014543 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xl.h * DBCS translation table structure. */ typedef struct { unsigned n; unsigned short *data; } xl_t; #define XL_SIZE(e) ((sizeof(e)/sizeof(e[0]))/3) ibm-3270-3.3.10ga4/s3270/togglesc.h0000644000175000017500000000365611254565704015737 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * toggles.c * Global declarations for toggles.c. */ extern void do_toggle(int); extern void initialize_toggles(void); extern void shutdown_toggles(void); extern void Toggle_action(Widget, XEvent *, String *, Cardinal *); ibm-3270-3.3.10ga4/s3270/X11/0000755000175000017500000000000011261530021014274 5ustar bastianbastianibm-3270-3.3.10ga4/s3270/X11/keysym.h0000644000175000017500000002131011254565673016012 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* X11 keysyms used by c3270, s3270 and tcl3270 */ #if !defined(_x11_keysym_h) /*[*/ #define _x11_keysym_h 1 /* Latin-1 Keysyms */ #define XK_space 0x020 #define XK_exclam 0x021 #define XK_quotedbl 0x022 #define XK_numbersign 0x023 #define XK_dollar 0x024 #define XK_percent 0x025 #define XK_ampersand 0x026 #define XK_apostrophe 0x027 #define XK_quoteright 0x027 #define XK_parenleft 0x028 #define XK_parenright 0x029 #define XK_asterisk 0x02a #define XK_plus 0x02b #define XK_comma 0x02c #define XK_minus 0x02d #define XK_period 0x02e #define XK_slash 0x02f #define XK_0 0x030 #define XK_1 0x031 #define XK_2 0x032 #define XK_3 0x033 #define XK_4 0x034 #define XK_5 0x035 #define XK_6 0x036 #define XK_7 0x037 #define XK_8 0x038 #define XK_9 0x039 #define XK_colon 0x03a #define XK_semicolon 0x03b #define XK_less 0x03c #define XK_equal 0x03d #define XK_greater 0x03e #define XK_question 0x03f #define XK_at 0x040 #define XK_A 0x041 #define XK_B 0x042 #define XK_C 0x043 #define XK_D 0x044 #define XK_E 0x045 #define XK_F 0x046 #define XK_G 0x047 #define XK_H 0x048 #define XK_I 0x049 #define XK_J 0x04a #define XK_K 0x04b #define XK_L 0x04c #define XK_M 0x04d #define XK_N 0x04e #define XK_O 0x04f #define XK_P 0x050 #define XK_Q 0x051 #define XK_R 0x052 #define XK_S 0x053 #define XK_T 0x054 #define XK_U 0x055 #define XK_V 0x056 #define XK_W 0x057 #define XK_X 0x058 #define XK_Y 0x059 #define XK_Z 0x05a #define XK_bracketleft 0x05b #define XK_backslash 0x05c #define XK_bracketright 0x05d #define XK_asciicircum 0x05e #define XK_underscore 0x05f #define XK_grave 0x060 #define XK_quoteleft 0x060 #define XK_a 0x061 #define XK_b 0x062 #define XK_c 0x063 #define XK_d 0x064 #define XK_e 0x065 #define XK_f 0x066 #define XK_g 0x067 #define XK_h 0x068 #define XK_i 0x069 #define XK_j 0x06a #define XK_k 0x06b #define XK_l 0x06c #define XK_m 0x06d #define XK_n 0x06e #define XK_o 0x06f #define XK_p 0x070 #define XK_q 0x071 #define XK_r 0x072 #define XK_s 0x073 #define XK_t 0x074 #define XK_u 0x075 #define XK_v 0x076 #define XK_w 0x077 #define XK_x 0x078 #define XK_y 0x079 #define XK_z 0x07a #define XK_braceleft 0x07b #define XK_bar 0x07c #define XK_braceright 0x07d #define XK_asciitilde 0x07e #define XK_nobreakspace 0x0a0 #define XK_exclamdown 0x0a1 #define XK_cent 0x0a2 #define XK_sterling 0x0a3 #define XK_currency 0x0a4 #define XK_yen 0x0a5 #define XK_brokenbar 0x0a6 #define XK_section 0x0a7 #define XK_diaeresis 0x0a8 #define XK_copyright 0x0a9 #define XK_ordfeminine 0x0aa #define XK_guillemotleft 0x0ab #define XK_notsign 0x0ac #define XK_hyphen 0x0ad #define XK_registered 0x0ae #define XK_macron 0x0af #define XK_degree 0x0b0 #define XK_plusminus 0x0b1 #define XK_twosuperior 0x0b2 #define XK_threesuperior 0x0b3 #define XK_acute 0x0b4 #define XK_mu 0x0b5 #define XK_paragraph 0x0b6 #define XK_periodcentered 0x0b7 #define XK_cedilla 0x0b8 #define XK_onesuperior 0x0b9 #define XK_masculine 0x0ba #define XK_guillemotright 0x0bb #define XK_onequarter 0x0bc #define XK_onehalf 0x0bd #define XK_threequarters 0x0be #define XK_questiondown 0x0bf #define XK_Agrave 0x0c0 #define XK_Aacute 0x0c1 #define XK_Acircumflex 0x0c2 #define XK_Atilde 0x0c3 #define XK_Adiaeresis 0x0c4 #define XK_Aring 0x0c5 #define XK_AE 0x0c6 #define XK_Ccedilla 0x0c7 #define XK_Egrave 0x0c8 #define XK_Eacute 0x0c9 #define XK_Ecircumflex 0x0ca #define XK_Ediaeresis 0x0cb #define XK_Igrave 0x0cc #define XK_Iacute 0x0cd #define XK_Icircumflex 0x0ce #define XK_Idiaeresis 0x0cf #define XK_ETH 0x0d0 #define XK_Eth 0x0d0 #define XK_Ntilde 0x0d1 #define XK_Ograve 0x0d2 #define XK_Oacute 0x0d3 #define XK_Ocircumflex 0x0d4 #define XK_Otilde 0x0d5 #define XK_Odiaeresis 0x0d6 #define XK_multiply 0x0d7 #define XK_Ooblique 0x0d8 #define XK_Ugrave 0x0d9 #define XK_Uacute 0x0da #define XK_Ucircumflex 0x0db #define XK_Udiaeresis 0x0dc #define XK_Yacute 0x0dd #define XK_THORN 0x0de #define XK_Thorn 0x0de #define XK_ssharp 0x0df #define XK_agrave 0x0e0 #define XK_aacute 0x0e1 #define XK_acircumflex 0x0e2 #define XK_atilde 0x0e3 #define XK_adiaeresis 0x0e4 #define XK_aring 0x0e5 #define XK_ae 0x0e6 #define XK_ccedilla 0x0e7 #define XK_egrave 0x0e8 #define XK_eacute 0x0e9 #define XK_ecircumflex 0x0ea #define XK_ediaeresis 0x0eb #define XK_igrave 0x0ec #define XK_iacute 0x0ed #define XK_icircumflex 0x0ee #define XK_idiaeresis 0x0ef #define XK_eth 0x0f0 #define XK_ntilde 0x0f1 #define XK_ograve 0x0f2 #define XK_oacute 0x0f3 #define XK_ocircumflex 0x0f4 #define XK_otilde 0x0f5 #define XK_odiaeresis 0x0f6 #define XK_division 0x0f7 #define XK_oslash 0x0f8 #define XK_ugrave 0x0f9 #define XK_uacute 0x0fa #define XK_ucircumflex 0x0fb #define XK_udiaeresis 0x0fc #define XK_yacute 0x0fd #define XK_thorn 0x0fe #define XK_ydiaeresis 0x0ff #endif /*]*/ ibm-3270-3.3.10ga4/s3270/toggles.c0000644000175000017500000001326411254565704015563 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * toggles.c * This module handles toggles. */ #include "globals.h" #include "appres.h" #include "ansic.h" #include "actionsc.h" #include "ctlrc.h" #include "menubarc.h" #include "popupsc.h" #include "screenc.h" #include "trace_dsc.h" #include "togglesc.h" /* * Generic toggle stuff */ static void do_toggle_reason(int ix, enum toggle_type reason) { struct toggle *t = &appres.toggle[ix]; /* * Change the value, call the internal update routine, and reset the * menu label(s). */ toggle_toggle(t); if (t->upcall != NULL) t->upcall(t, reason); #if defined(X3270_MENUS) /*[*/ menubar_retoggle(t); #endif /*]*/ } void do_toggle(int ix) { do_toggle_reason(ix, TT_INTERACTIVE); } /* * Called from system initialization code to handle initial toggle settings. */ void initialize_toggles(void) { #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ appres.toggle[MONOCASE].upcall = toggle_monocase; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ appres.toggle[ALT_CURSOR].upcall = toggle_altCursor; appres.toggle[CURSOR_BLINK].upcall = toggle_cursorBlink; appres.toggle[SHOW_TIMING].upcall = toggle_showTiming; appres.toggle[CURSOR_POS].upcall = toggle_cursorPos; appres.toggle[MARGINED_PASTE].upcall = toggle_nop; appres.toggle[RECTANGLE_SELECT].upcall = toggle_nop; appres.toggle[SCROLL_BAR].upcall = toggle_scrollBar; appres.toggle[CROSSHAIR].upcall = toggle_crosshair; appres.toggle[VISIBLE_CONTROL].upcall = toggle_visible_control; #endif /*]*/ #if defined(X3270_TRACE) /*[*/ appres.toggle[DS_TRACE].upcall = toggle_dsTrace; appres.toggle[SCREEN_TRACE].upcall = toggle_screenTrace; appres.toggle[EVENT_TRACE].upcall = toggle_eventTrace; #endif /*]*/ #if defined(X3270_ANSI) /*[*/ appres.toggle[LINE_WRAP].upcall = toggle_lineWrap; #endif /*]*/ appres.toggle[BLANK_FILL].upcall = toggle_nop; #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ appres.toggle[AID_WAIT].upcall = toggle_nop; #endif /*]*/ #if defined(C3270) /*[*/ appres.toggle[UNDERSCORE].upcall = toggle_underscore; #endif /*]*/ #if defined(X3270_TRACE) /*[*/ if (toggled(DS_TRACE)) appres.toggle[DS_TRACE].upcall(&appres.toggle[DS_TRACE], TT_INITIAL); if (toggled(EVENT_TRACE)) appres.toggle[EVENT_TRACE].upcall(&appres.toggle[EVENT_TRACE], TT_INITIAL); if (toggled(SCREEN_TRACE)) appres.toggle[SCREEN_TRACE].upcall(&appres.toggle[SCREEN_TRACE], TT_INITIAL); #endif /*]*/ } /* * Called from system exit code to handle toggles. */ void shutdown_toggles(void) { #if defined(X3270_TRACE) /*[*/ /* Clean up the data stream trace monitor window. */ if (toggled(DS_TRACE)) { appres.toggle[DS_TRACE].value = False; toggle_dsTrace(&appres.toggle[DS_TRACE], TT_FINAL); } if (toggled(EVENT_TRACE)) { appres.toggle[EVENT_TRACE].value = False; toggle_dsTrace(&appres.toggle[EVENT_TRACE], TT_FINAL); } /* Clean up the screen trace file. */ if (toggled(SCREEN_TRACE)) { appres.toggle[SCREEN_TRACE].value = False; toggle_screenTrace(&appres.toggle[SCREEN_TRACE], TT_FINAL); } #endif /*]*/ } void Toggle_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int j; int ix; action_debug(Toggle_action, event, params, num_params); if (check_usage(Toggle_action, *num_params, 1, 2) < 0) return; for (j = 0; toggle_names[j].name != NULL; j++) { if (!strcasecmp(params[0], toggle_names[j].name)) { ix = toggle_names[j].index; break; } } if (toggle_names[j].name == NULL) { popup_an_error("%s: Unknown toggle name '%s'", action_name(Toggle_action), params[0]); return; } if (*num_params == 1) { do_toggle_reason(ix, TT_ACTION); } else if (!strcasecmp(params[1], "set")) { if (!toggled(ix)) { do_toggle_reason(ix, TT_ACTION); } } else if (!strcasecmp(params[1], "clear")) { if (toggled(ix)) { do_toggle_reason(ix, TT_ACTION); } } else { popup_an_error("%s: Unknown keyword '%s' (must be 'set' or " "'clear')", action_name(Toggle_action), params[1]); } } ibm-3270-3.3.10ga4/s3270/sf.c0000644000175000017500000005524711254565704014536 0ustar bastianbastian/* * Copyright (c) 1994-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell nor their * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * sf.c * This module handles 3270 structured fields. * */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include "3270ds.h" #include "appres.h" #include "screen.h" #include "ctlr.h" #include "resources.h" #include "charsetc.h" #include "ctlrc.h" #if defined(X3270_FT) /*[*/ #include "ft_dftc.h" #endif /*]*/ #include "kybdc.h" #include "screenc.h" #include "seec.h" #include "sfc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utilc.h" /* #define X3270_COMPAT 1 make x3270 compatible with all of the other emulators */ #define SW_3279_2 0x09 #define SH_3279_2 0x0c #define Xr_3279_2 0x000a02e5 #define Yr_3279_2 0x0002006f /* Externals: ctlr.c */ extern Boolean screen_alt; extern unsigned char reply_mode; extern int crm_nattr; extern unsigned char crm_attr[]; /* Statics */ static Boolean qr_in_progress = False; static enum pds sf_read_part(unsigned char buf[], unsigned buflen); static enum pds sf_erase_reset(unsigned char buf[], int buflen); static enum pds sf_set_reply_mode(unsigned char buf[], int buflen); static enum pds sf_create_partition(unsigned char buf[], int buflen); static enum pds sf_outbound_ds(unsigned char buf[], int buflen); static void query_reply_start(void); static void do_query_reply(unsigned char code); static void query_reply_end(void); typedef void qr_single_fn_t(void); typedef Boolean qr_multi_fn_t(unsigned *subindex, Boolean *more); static qr_single_fn_t do_qr_summary, do_qr_usable_area, do_qr_alpha_part, do_qr_charsets, do_qr_color, do_qr_highlighting, do_qr_reply_modes, do_qr_imp_part, do_qr_null; extern qr_single_fn_t do_qr_rpqnames; #if defined(X3270_DBCS) /*[*/ static qr_single_fn_t do_qr_dbcs_asia; #endif /*]*/ #if defined(X3270_FT) /*[*/ static qr_single_fn_t do_qr_ddm; #endif /*]*/ static struct reply { unsigned char code; qr_single_fn_t *single_fn; qr_multi_fn_t *multi_fn; } replies[] = { { QR_SUMMARY, do_qr_summary, NULL }, /* 0x80 */ { QR_USABLE_AREA, do_qr_usable_area, NULL }, /* 0x81 */ { QR_ALPHA_PART, do_qr_alpha_part, NULL }, /* 0x84 */ { QR_CHARSETS, do_qr_charsets, NULL }, /* 0x85 */ { QR_COLOR, do_qr_color, NULL }, /* 0x86 */ { QR_HIGHLIGHTING, do_qr_highlighting, NULL }, /* 0x87 */ { QR_REPLY_MODES, do_qr_reply_modes, NULL }, /* 0x88 */ #if defined(X3270_DBCS) /*[*/ { QR_DBCS_ASIA, do_qr_dbcs_asia, NULL }, /* 0x91 */ #endif /*]*/ #if defined(X3270_FT) /*[*/ { QR_DDM, do_qr_ddm, NULL }, /* 0x95 */ #endif /*]*/ { QR_RPQNAMES, do_qr_rpqnames, NULL }, /* 0xa1 */ { QR_IMP_PART, do_qr_imp_part, NULL }, /* 0xa6 */ /* QR_NULL must be last in the table */ { QR_NULL, do_qr_null, NULL }, /* 0xff */ }; /* * NSR_ALL is the number of query replies supported, including NULL. * NSR is the number of query replies supported, except for NULL. */ #define NSR_ALL (sizeof(replies)/sizeof(struct reply)) #define NSR (NSR_ALL - 1) /* * Process a 3270 Write Structured Field command */ enum pds write_structured_field(unsigned char buf[], int buflen) { unsigned short fieldlen; unsigned char *cp = buf; Boolean first = True; enum pds rv = PDS_OKAY_NO_OUTPUT; enum pds rv_this = PDS_OKAY_NO_OUTPUT; Boolean bad_cmd = False; /* Skip the WSF command itself. */ cp++; buflen--; /* Interpret fields. */ while (buflen > 0) { if (first) trace_ds(" "); else trace_ds("< WriteStructuredField "); first = False; /* Pick out the field length. */ if (buflen < 2) { trace_ds("error: single byte at end of message\n"); return rv ? rv : PDS_BAD_CMD; } fieldlen = (cp[0] << 8) + cp[1]; if (fieldlen == 0) fieldlen = buflen; if (fieldlen < 3) { trace_ds("error: field length %d too small\n", fieldlen); return rv ? rv : PDS_BAD_CMD; } if ((int)fieldlen > buflen) { trace_ds("error: field length %d exceeds remaining " "message length %d\n", fieldlen, buflen); return rv ? rv : PDS_BAD_CMD; } /* Dispatch on the ID. */ switch (cp[2]) { case SF_READ_PART: trace_ds("ReadPartition"); rv_this = sf_read_part(cp, (int)fieldlen); break; case SF_ERASE_RESET: trace_ds("EraseReset"); rv_this = sf_erase_reset(cp, (int)fieldlen); break; case SF_SET_REPLY_MODE: trace_ds("SetReplyMode"); rv_this = sf_set_reply_mode(cp, (int)fieldlen); break; case SF_CREATE_PART: trace_ds("CreatePartition"); rv_this = sf_create_partition(cp, (int)fieldlen); break; case SF_OUTBOUND_DS: trace_ds("OutboundDS"); rv_this = sf_outbound_ds(cp, (int)fieldlen); break; #if defined(X3270_FT) /*[*/ case SF_TRANSFER_DATA: /* File transfer data */ trace_ds("FileTransferData"); ft_dft_data(cp, (int)fieldlen); break; #endif /*]*/ default: trace_ds("unsupported ID 0x%02x\n", cp[2]); rv_this = PDS_BAD_CMD; break; } /* * Accumulate errors or output flags. * One real ugliness here is that if we have already * generated some output, then we have already positively * acknowledged the request, so if we fail here, we have no * way to return the error indication. */ if (rv_this < 0) bad_cmd = True; else rv |= rv_this; /* Skip to the next field. */ cp += fieldlen; buflen -= fieldlen; } if (first) trace_ds(" (null)\n"); if (bad_cmd && !rv) return PDS_BAD_CMD; else return rv; } static enum pds sf_read_part(unsigned char buf[], unsigned buflen) { unsigned char partition; unsigned i; int any = 0; const char *comma = ""; if (buflen < 5) { trace_ds(" error: field length %d too small\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; trace_ds("(0x%02x)", partition); switch (buf[4]) { case SF_RP_QUERY: trace_ds(" Query"); if (partition != 0xff) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); query_reply_start(); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(replies[i].code); } query_reply_end(); break; case SF_RP_QLIST: trace_ds(" QueryList "); if (partition != 0xff) { trace_ds("error: illegal partition\n"); return PDS_BAD_CMD; } if (buflen < 6) { trace_ds("error: missing request type\n"); return PDS_BAD_CMD; } query_reply_start(); switch (buf[5]) { case SF_RPQ_LIST: trace_ds("List("); if (buflen < 7) { trace_ds(")\n"); do_query_reply(QR_NULL); } else { for (i = 6; i < buflen; i++) { trace_ds("%s%s", comma, see_qcode(buf[i])); comma = ","; } trace_ds(")\n"); for (i = 0; i < NSR; i++) { if (memchr((char *)&buf[6], (char)replies[i].code, buflen-6) #if defined(X3270_DBCS) /*[*/ && (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ ) { do_query_reply(replies[i].code); any++; } } if (!any) { do_query_reply(QR_NULL); } } break; case SF_RPQ_EQUIV: trace_ds("Equivlent+List("); for (i = 6; i < buflen; i++) { trace_ds("%s%s", comma, see_qcode(buf[i])); comma = ","; } trace_ds(")\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(replies[i].code); break; case SF_RPQ_ALL: trace_ds("All\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(replies[i].code); break; default: trace_ds("unknown request type 0x%02x\n", buf[5]); return PDS_BAD_CMD; } query_reply_end(); break; case SNA_CMD_RMA: trace_ds(" ReadModifiedAll"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); ctlr_read_modified(AID_QREPLY, True); break; case SNA_CMD_RB: trace_ds(" ReadBuffer"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); ctlr_read_buffer(AID_QREPLY); break; case SNA_CMD_RM: trace_ds(" ReadModified"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); ctlr_read_modified(AID_QREPLY, False); break; default: trace_ds(" unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_OUTPUT; } static enum pds sf_erase_reset(unsigned char buf[], int buflen) { if (buflen != 4) { trace_ds(" error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } switch (buf[3]) { case SF_ER_DEFAULT: trace_ds(" Default\n"); ctlr_erase(False); break; case SF_ER_ALT: trace_ds(" Alternate\n"); ctlr_erase(True); break; default: trace_ds(" unknown type 0x%02x\n", buf[3]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static enum pds sf_set_reply_mode(unsigned char buf[], int buflen) { unsigned char partition; int i; const char *comma = "("; if (buflen < 5) { trace_ds(" error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; trace_ds("(0x%02x)", partition); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } switch (buf[4]) { case SF_SRM_FIELD: trace_ds(" Field\n"); break; case SF_SRM_XFIELD: trace_ds(" ExtendedField\n"); break; case SF_SRM_CHAR: trace_ds(" Character"); break; default: trace_ds(" unknown mode 0x%02x\n", buf[4]); return PDS_BAD_CMD; } reply_mode = buf[4]; if (buf[4] == SF_SRM_CHAR) { crm_nattr = buflen - 5; for (i = 5; i < buflen; i++) { crm_attr[i - 5] = buf[i]; trace_ds("%s%s", comma, see_efa_only(buf[i])); comma = ","; } trace_ds("%s\n", crm_nattr ? ")" : ""); } return PDS_OKAY_NO_OUTPUT; } static enum pds sf_create_partition(unsigned char buf[], int buflen) { unsigned char pid; unsigned char uom; /* unit of measure */ unsigned char am; /* addressing mode */ unsigned char flags; /* flags */ unsigned short h; /* height of presentation space */ unsigned short w; /* width of presentation space */ unsigned short rv; /* viewport origin row */ unsigned short cv; /* viewport origin column */ unsigned short hv; /* viewport height */ unsigned short wv; /* viewport width */ unsigned short rw; /* window origin row */ unsigned short cw; /* window origin column */ unsigned short rs; /* scroll rows */ /* hole */ unsigned short pw; /* character cell point width */ unsigned short ph; /* character cell point height */ #if defined(X3270_TRACE) /*[*/ static const char *bit4[16] = { "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" }; #endif /*]*/ if (buflen > 3) { trace_ds("("); /* Partition. */ pid = buf[3]; trace_ds("pid=0x%02x", pid); if (pid != 0x00) { trace_ds(") error: illegal partition\n"); return PDS_BAD_CMD; } } else pid = 0x00; if (buflen > 4) { uom = (buf[4] & 0xf0) >> 4; trace_ds(",uom=B'%s'", bit4[uom]); if (uom != 0x0 && uom != 0x02) { trace_ds(") error: illegal units\n"); return PDS_BAD_CMD; } am = buf[4] & 0x0f; trace_ds(",am=B'%s'", bit4[am]); if (am > 0x2) { trace_ds(") error: illegal a-mode\n"); return PDS_BAD_CMD; } } else { uom = 0; am = 0; } if (buflen > 5) { flags = buf[5]; trace_ds(",flags=0x%02x", flags); } else flags = 0; if (buflen > 7) { GET16(h, &buf[6]); trace_ds(",h=%d", h); } else h = maxROWS; if (buflen > 9) { GET16(w, &buf[8]); trace_ds(",w=%d", w); } else w = maxCOLS; if (buflen > 11) { GET16(rv, &buf[10]); trace_ds(",rv=%d", rv); } else rv = 0; if (buflen > 13) { GET16(cv, &buf[12]); trace_ds(",cv=%d", cv); } else cv = 0; if (buflen > 15) { GET16(hv, &buf[14]); trace_ds(",hv=%d", hv); } else hv = (h > maxROWS)? maxROWS: h; if (buflen > 17) { GET16(wv, &buf[16]); trace_ds(",wv=%d", wv); } else wv = (w > maxCOLS)? maxCOLS: w; if (buflen > 19) { GET16(rw, &buf[18]); trace_ds(",rw=%d", rw); } else rw = 0; if (buflen > 21) { GET16(cw, &buf[20]); trace_ds(",cw=%d", cw); } else cw = 0; if (buflen > 23) { GET16(rs, &buf[22]); trace_ds(",rs=%d", rs); } else rs = (h > hv)? 1: 0; if (buflen > 27) { GET16(pw, &buf[26]); trace_ds(",pw=%d", pw); } else pw = *char_width; if (buflen > 29) { GET16(ph, &buf[28]); trace_ds(",ph=%d", ph); } else ph = *char_height; trace_ds(")\n"); cursor_move(0); buffer_addr = 0; return PDS_OKAY_NO_OUTPUT; } static enum pds sf_outbound_ds(unsigned char buf[], int buflen) { enum pds rv; if (buflen < 5) { trace_ds(" error: field length %d too short\n", buflen); return PDS_BAD_CMD; } trace_ds("(0x%02x)", buf[3]); if (buf[3] != 0x00) { trace_ds(" error: illegal partition 0x%0x\n", buf[3]); return PDS_BAD_CMD; } switch (buf[4]) { case SNA_CMD_W: trace_ds(" Write"); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, False)) < 0) return rv; } else trace_ds("\n"); break; case SNA_CMD_EW: trace_ds(" EraseWrite"); ctlr_erase(screen_alt); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, True)) < 0) return rv; } else trace_ds("\n"); break; case SNA_CMD_EWA: trace_ds(" EraseWriteAlternate"); ctlr_erase(screen_alt); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, True)) < 0) return rv; } else trace_ds("\n"); break; case SNA_CMD_EAU: trace_ds(" EraseAllUnprotected\n"); ctlr_erase_all_unprotected(); break; default: trace_ds(" unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static void query_reply_start(void) { obptr = obuf; space3270out(1); *obptr++ = AID_SF; qr_in_progress = True; } static void do_query_reply(unsigned char code) { unsigned i; unsigned subindex = 0; Boolean more = False; /* Find the right entry in the reply table. */ for (i = 0; i < NSR_ALL; i++) { if (replies[i].code == code) break; } if (i >= NSR_ALL || (replies[i].single_fn == NULL && replies[i].multi_fn == NULL)) return; if (qr_in_progress) { trace_ds("> StructuredField\n"); qr_in_progress = False; } do { int obptr0 = obptr - obuf; Boolean full = True; space3270out(4); obptr += 2; /* skip length for now */ *obptr++ = SFID_QREPLY; *obptr++ = code; more = False; if (replies[i].single_fn) replies[i].single_fn(); else full = replies[i].multi_fn(&subindex, &more); if (full) { int len; unsigned char *obptr_len; /* Fill in the length. */ obptr_len = obuf + obptr0; len = (obptr - obuf) - obptr0; SET16(obptr_len, len); } else { /* Back over the header. */ obptr -= 4; } } while (more); } static void do_qr_null(void) { trace_ds("> QueryReply(Null)\n"); } static void do_qr_summary(void) { unsigned i; const char *comma = ""; trace_ds("> QueryReply(Summary("); space3270out(NSR); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) { #endif /*]*/ trace_ds("%s%s", comma, see_qcode(replies[i].code)); comma = ","; *obptr++ = replies[i].code; #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ } trace_ds("))\n"); } static void do_qr_usable_area(void) { trace_ds("> QueryReply(UsableArea)\n"); space3270out(19); *obptr++ = 0x01; /* 12/14-bit addressing */ *obptr++ = 0x00; /* no special character features */ SET16(obptr, maxCOLS); /* usable width */ SET16(obptr, maxROWS); /* usable height */ *obptr++ = 0x01; /* units (mm) */ SET32(obptr, Xr_3279_2); /* Xr, canned from 3279-2 */ SET32(obptr, Yr_3279_2); /* Yr, canned from 3279-2 */ /* * If we ever implement graphics, these will * need to change. */ *obptr++ = SW_3279_2; /* AW, canned from 3279-2 */ *obptr++ = SH_3279_2; /* AH, canned from 3279-2 */ SET16(obptr, maxCOLS*maxROWS); /* buffer, questionable */ } static void do_qr_color(void) { int i; int color_max; trace_ds("> QueryReply(Color)\n"); color_max = (appres.color8 || !appres.m3279)? 8: 16; space3270out(4 + 2*15); *obptr++ = 0x00; /* no options */ *obptr++ = color_max; /* report on 8 or 16 colors */ *obptr++ = 0x00; /* default color: */ *obptr++ = 0xf0 + HOST_COLOR_GREEN; /* green */ for (i = 0xf1; i < 0xf1 + color_max - 1; i++) { *obptr++ = i; if (appres.m3279) *obptr++ = i; else *obptr++ = 0x00; } #if defined(X3270_COMPAT) || !defined(X3270_DISPLAY) /*[*/ /* Add background color. */ if (appres.m3279) { space3270out(4); *obptr++ = 4; /* length */ *obptr++ = 0x02; /* background color */ *obptr++ = 0x00; /* attribute */ *obptr++ = 0xf0; /* default color */ } #endif /*]*/ } static void do_qr_highlighting(void) { trace_ds("> QueryReply(Highlighting)\n"); space3270out(11); *obptr++ = 5; /* report on 5 pairs */ *obptr++ = XAH_DEFAULT; /* default: */ *obptr++ = XAH_NORMAL; /* normal */ *obptr++ = XAH_BLINK; /* blink: */ *obptr++ = XAH_BLINK; /* blink */ *obptr++ = XAH_REVERSE; /* reverse: */ *obptr++ = XAH_REVERSE; /* reverse */ *obptr++ = XAH_UNDERSCORE; /* underscore: */ *obptr++ = XAH_UNDERSCORE; /* underscore */ *obptr++ = XAH_INTENSIFY; /* intensify: */ *obptr++ = XAH_INTENSIFY; /* intensify */ } static void do_qr_reply_modes(void) { trace_ds("> QueryReply(ReplyModes)\n"); space3270out(3); *obptr++ = SF_SRM_FIELD; *obptr++ = SF_SRM_XFIELD; *obptr++ = SF_SRM_CHAR; } #if defined(X3270_DBCS) /*[*/ static void do_qr_dbcs_asia(void) { /* XXX: Should we support this, even when not in DBCS mode? */ trace_ds("> QueryReply(DbcsAsia)\n"); space3270out(7); *obptr++ = 0x00; /* flags (none) */ *obptr++ = 0x03; /* field length 3 */ *obptr++ = 0x01; /* SI/SO supported */ *obptr++ = 0x80; /* character set ID 0x80 */ *obptr++ = 0x03; /* field length 3 */ *obptr++ = 0x02; /* input control */ *obptr++ = 0x01; /* creation supported */ } #endif /*]*/ static void do_qr_alpha_part(void) { trace_ds("> QueryReply(AlphanumericPartitions)\n"); space3270out(4); *obptr++ = 0; /* 1 partition */ SET16(obptr, maxROWS*maxCOLS); /* buffer space */ *obptr++ = 0; /* no special features */ } static void do_qr_charsets(void) { trace_ds("> QueryReply(CharacterSets)\n"); space3270out(64); #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x8e; /* flags: GE, CGCSGID, DBCS */ else #endif /*]*/ *obptr++ = 0x82; /* flags: GE, CGCSGID present */ *obptr++ = 0x00; /* more flags */ *obptr++ = SW_3279_2; /* SDW, canned from 3279-2 */ *obptr++ = SH_3279_2; /* SDW, canned from 3279-2 */ *obptr++ = 0x00; /* no load PS */ *obptr++ = 0x00; *obptr++ = 0x00; *obptr++ = 0x00; #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x0b; /* DL (11 bytes) */ else #endif /*]*/ *obptr++ = 0x07; /* DL (7 bytes) */ *obptr++ = 0x00; /* SET 0: */ #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x00; /* FLAGS: non-load, single- plane, single-byte */ else #endif /*]*/ *obptr++ = 0x10; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ *obptr++ = 0x00; /* LCID 0 */ #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x00; /* SW 0 */ *obptr++ = 0x00; /* SH 0 */ *obptr++ = 0x00; /* SUBSN */ *obptr++ = 0x00; /* SUBSN */ } #endif /*]*/ SET32(obptr, cgcsgid); /* CGCSGID */ /* special 3270 font, includes APL */ *obptr++ = 0x01;/* SET 1: */ if (appres.apl_mode) *obptr++ = 0x00; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ else *obptr++ = 0x10; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ *obptr++ = 0xf1; /* LCID */ #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x00; /* SW 0 */ *obptr++ = 0x00; /* SH 0 */ *obptr++ = 0x00; /* SUBSN */ *obptr++ = 0x00; /* SUBSN */ } #endif /*]*/ *obptr++ = 0x03; /* CGCSGID: 3179-style APL2 */ *obptr++ = 0xc3; *obptr++ = 0x01; *obptr++ = 0x36; #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x80; /* SET 0x80: */ *obptr++ = 0x20; /* FLAGS: DBCS */ *obptr++ = 0xf8; /* LCID: 0xf8 */ *obptr++ = SW_3279_2 * 2; /* SW, canned from 3279-2 */ *obptr++ = SH_3279_2; /* SH, canned from 3279-2 */ *obptr++ = 0x41; /* SUBSN */ *obptr++ = 0x7f; /* SUBSN */ SET32(obptr, cgcsgid_dbcs); /* CGCSGID */ } #endif /*]*/ } #if defined(X3270_FT) /*[*/ static void do_qr_ddm(void) { set_dft_buffersize(); trace_ds("> QueryReply(DistributedDataManagement)\n"); space3270out(8); SET16(obptr,0); /* set reserved field to 0 */ SET16(obptr, dft_buffersize); /* set inbound length limit INLIM */ SET16(obptr, dft_buffersize); /* set outbound length limit OUTLIM */ SET16(obptr, 0x0101); /* NSS=01, DDMSS=01 */ } #endif /*]*/ static void do_qr_imp_part(void) { trace_ds("> QueryReply(ImplicitPartition)\n"); space3270out(13); *obptr++ = 0x0; /* reserved */ *obptr++ = 0x0; *obptr++ = 0x0b; /* length of display size */ *obptr++ = 0x01; /* "implicit partition size" */ *obptr++ = 0x00; /* reserved */ SET16(obptr, 80); /* implicit partition width */ SET16(obptr, 24); /* implicit partition height */ SET16(obptr, maxCOLS); /* alternate height */ SET16(obptr, maxROWS); /* alternate width */ } static void query_reply_end(void) { net_output(); kybd_inhibit(True); } ibm-3270-3.3.10ga4/s3270/macrosc.h0000644000175000017500000001232411254565704015547 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * macrosc.h * Global declarations for macros.c. */ /* macro definition */ struct macro_def { char *name; char **parents; char *action; struct macro_def *next; }; extern struct macro_def *macro_defs; extern Boolean macro_output; extern void abort_script(void); extern void Abort_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void AnsiText_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void AsciiField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Ascii_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) /*[*/ extern void cancel_if_idle_command(void); #else /*][*/ #define cancel_if_idle_command() #endif /*]*/ extern void Bell_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CloseScript_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ContinueScript_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EbcdicField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Ebcdic_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Execute_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void execute_action_option(Widget w, XtPointer client_data, XtPointer call_data); extern void Expect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ extern void plugin_aid(unsigned char aid); #else /*][*/ #define plugin_aid(a) #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ extern void Plugin_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #endif /*]*/ extern void login_macro(char *s); extern void macros_init(void); extern void Macro_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void macro_command(struct macro_def *m); extern void PauseScript_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void peer_script_init(void); extern void ps_set(char *s, Boolean is_hex); extern void Printer_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void push_command(char *); extern void push_idle(char *); extern void push_keymap_action(char *); extern void push_macro(char *, Boolean); extern void Query_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ReadBuffer_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Script_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) /*[*/ extern void sms_accumulate_time(struct timeval *, struct timeval *); #else /*][*/ #define sms_accumulate_time(a, b) #endif /*]*/ extern Boolean sms_active(void); extern void sms_connect_wait(void); extern void sms_continue(void); extern void sms_error(const char *msg); extern void sms_host_output(void); extern void sms_info(const char *fmt, ...) printflike(1, 2); extern void sms_init(void); extern Boolean sms_in_macro(void); extern Boolean sms_redirect(void); extern void sms_store(unsigned char c); #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ extern void Snap_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #endif /*]*/ #if defined(TCL3270) /*[*/ extern void Status_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #endif /*]*/ extern void Source_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Wait_action(Widget w, XEvent *event, String *params, Cardinal *num_params); ibm-3270-3.3.10ga4/s3270/Makefile.in0000644000175000017500000000712311254565710016012 0ustar bastianbastian# Copyright (c) 1999-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Makefile for s3270 (scripted 3270 emulator) RM = rm -f CC = @CC@ all:: s3270 x3270if SRCS = actions.c ansi.c apl.c charset.c ctlr.c ft.c ft_cut.c \ ft_dft.c glue.c host.c idle.c kybd.c macros.c print.c proxy.c \ resolver.c readres.c resources.c rpq.c see.c sf.c smain.c tables.c \ telnet.c toggles.c trace_ds.c unicode.c unicode_dbcs.c utf8.c util.c \ xio.c XtGlue.c VOBJS = actions.o ansi.o apl.o charset.o ctlr.o fallbacks.o ft.o ft_cut.o \ ft_dft.o glue.o host.o idle.o kybd.o macros.o print.o proxy.o \ resolver.o readres.o resources.o rpq.o see.o sf.o smain.o tables.o \ telnet.o toggles.o trace_ds.o unicode.o unicode_dbcs.o utf8.o util.o \ xio.o XtGlue.o OBJS1 = $(VOBJS) version.o LIBDIR = @libdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ sysconfdir = @sysconfdir@ datarootdir = @datarootdir@ LIBX3270DIR = @LIBX3270DIR@ MANDIR = @mandir@ BINDIR = @bindir@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ #CDEBUGFLAGS = -g -Wall XCPPFLAGS = -I. -DLIBX3270DIR=\"$(LIBX3270DIR)\" @CPPFLAGS@ @XANSI@ @XPRECOMP@ CFLAGS = @CFLAGS@ $(XCPPFLAGS) $(CDEBUGFLAGS) LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ version.o: $(VOBJS) version.txt mkversion.sh @chmod +x mkversion.sh version.txt sh ./mkversion.sh $(CC) s3270 fallbacks.c: mkfb X3270.xad $(RM) $@ ./mkfb -c X3270.xad $@ s3270: $(OBJS1) $(CC) -o $@ $(OBJS1) $(LDFLAGS) $(LIBS) x3270if: x3270if.c $(CC) $(CFLAGS) -o $@ x3270if.c $(LDFLAGS) $(LIBS) install:: s3270 x3270if [ -d $(DESTDIR)$(BINDIR) ] || \ mkdir -p $(DESTDIR)$(BINDIR) $(INSTALL_PROGRAM) s3270 $(DESTDIR)$(BINDIR)/s3270 $(INSTALL_PROGRAM) x3270if $(DESTDIR)$(BINDIR)/x3270if install.man: [ -d $(DESTDIR)$(MANDIR)/man1 ] || \ mkdir -p $(DESTDIR)$(MANDIR)/man1 $(INSTALL_DATA) s3270.man $(DESTDIR)$(MANDIR)/man1/s3270.1 $(INSTALL_DATA) x3270if.man $(DESTDIR)$(MANDIR)/man1/x3270if.1 $(INSTALL_DATA) x3270-script.man $(DESTDIR)$(MANDIR)/man1/x3270-script.1 clean:: $(RM) s3270 *.o depend: gccmakedep $(XCPPFLAGS) -s "# DO NOT DELETE" $(SRCS) # ------------------------------------------------------------------------- # dependencies generated by makedepend # DO NOT DELETE ibm-3270-3.3.10ga4/s3270/cg.h0000644000175000017500000001735111254565704014516 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * cg.h * * Character encoding for the 3270 character generator font, * using the same suffixes as Latin-1 XK_xxx keysyms. * * Charaters that represent unique EBCDIC or status line codes * are noted with comments. */ #define CG_null 0x00 /* EBCDIC 00 */ #define CG_nobreakspace 0x01 #define CG_ff 0x02 /* EBCDIC 0C */ #define CG_cr 0x03 /* EBCDIC 0D */ #define CG_nl 0x04 /* EBCDIC 15 */ #define CG_em 0x05 /* EBCDIC 19 */ #define CG_eightones 0x06 /* EBCDIC FF */ #define CG_hyphen 0x07 #define CG_greater 0x08 #define CG_less 0x09 #define CG_bracketleft 0x0a #define CG_bracketright 0x0b #define CG_parenleft 0x0c #define CG_parenright 0x0d #define CG_braceleft 0x0e #define CG_braceright 0x0f #define CG_space 0x10 #define CG_equal 0x11 #define CG_apostrophe 0x12 #define CG_quotedbl 0x13 #define CG_slash 0x14 #define CG_backslash 0x15 #define CG_bar 0x16 #define CG_brokenbar 0x17 #define CG_question 0x18 #define CG_exclam 0x19 #define CG_dollar 0x1a #define CG_cent 0x1b #define CG_sterling 0x1c #define CG_yen 0x1d #define CG_paragraph 0x1e #define CG_currency 0x1f #define CG_0 0x20 #define CG_1 0x21 #define CG_2 0x22 #define CG_3 0x23 #define CG_4 0x24 #define CG_5 0x25 #define CG_6 0x26 #define CG_7 0x27 #define CG_8 0x28 #define CG_9 0x29 #define CG_ssharp 0x2a #define CG_section 0x2b #define CG_numbersign 0x2c #define CG_at 0x2d #define CG_percent 0x2e #define CG_underscore 0x2f #define CG_ampersand 0x30 #define CG_minus 0x31 #define CG_period 0x32 #define CG_comma 0x33 #define CG_colon 0x34 #define CG_plus 0x35 #define CG_notsign 0x36 #define CG_macron 0x37 #define CG_degree 0x38 #define CG_periodcentered 0x39 #define CG_asciicircum 0x3a #define CG_asciitilde 0x3b #define CG_diaeresis 0x3c #define CG_grave 0x3d #define CG_acute 0x3e #define CG_cedilla 0x3f #define CG_agrave 0x40 #define CG_egrave 0x41 #define CG_igrave 0x42 #define CG_ograve 0x43 #define CG_ugrave 0x44 #define CG_atilde 0x45 #define CG_otilde 0x46 #define CG_ydiaeresis 0x47 #define CG_Yacute 0x48 #define CG_yacute 0x49 #define CG_eacute 0x4a #define CG_onequarter 0x4b #define CG_onehalf 0x4c #define CG_threequarters 0x4d #define CG_udiaeresis 0x4e #define CG_udiaeresis 0x4e #define CG_ccedilla 0x4f #define CG_adiaeresis 0x50 #define CG_ediaeresis 0x51 #define CG_idiaeresis 0x52 #define CG_odiaeresis 0x53 #define CG_mu 0x54 #define CG_acircumflex 0x55 #define CG_ecircumflex 0x56 #define CG_icircumflex 0x57 #define CG_ocircumflex 0x58 #define CG_ucircumflex 0x59 #define CG_aacute 0x5a #define CG_multiply 0x5b #define CG_iacute 0x5c #define CG_oacute 0x5d #define CG_uacute 0x5e #define CG_ntilde 0x5f #define CG_Agrave 0x60 #define CG_Egrave 0x61 #define CG_Igrave 0x62 #define CG_Ograve 0x63 #define CG_Ugrave 0x64 #define CG_Atilde 0x65 #define CG_Otilde 0x66 #define CG_onesuperior 0x67 #define CG_twosuperior 0x68 #define CG_threesuperior 0x69 #define CG_ordfeminine 0x6a #define CG_masculine 0x6b #define CG_guillemotleft 0x6c #define CG_guillemotright 0x6d #define CG_exclamdown 0x6e #define CG_questiondown 0x6f #define CG_Adiaeresis 0x70 #define CG_Ediaeresis 0x71 #define CG_Idiaeresis 0x72 #define CG_Odiaeresis 0x73 #define CG_Udiaeresis 0x74 #define CG_Acircumflex 0x75 #define CG_Ecircumflex 0x76 #define CG_Icircumflex 0x77 #define CG_Ocircumflex 0x78 #define CG_Ucircumflex 0x79 #define CG_Aacute 0x7a #define CG_Eacute 0x7b #define CG_Iacute 0x7c #define CG_Oacute 0x7d #define CG_Uacute 0x7e #define CG_Ntilde 0x7f #define CG_a 0x80 #define CG_b 0x81 #define CG_c 0x82 #define CG_d 0x83 #define CG_e 0x84 #define CG_f 0x85 #define CG_g 0x86 #define CG_h 0x87 #define CG_i 0x88 #define CG_j 0x89 #define CG_k 0x8a #define CG_l 0x8b #define CG_m 0x8c #define CG_n 0x8d #define CG_o 0x8e #define CG_p 0x8f #define CG_q 0x90 #define CG_r 0x91 #define CG_s 0x92 #define CG_t 0x93 #define CG_u 0x94 #define CG_v 0x95 #define CG_w 0x96 #define CG_x 0x97 #define CG_y 0x98 #define CG_z 0x99 #define CG_ae 0x9a #define CG_oslash 0x9b #define CG_aring 0x9c #define CG_division 0x9d #define CG_fm 0x9e /* EBCDIC 1E */ #define CG_dup 0x9f /* EBCDIC 1C */ #define CG_A 0xa0 #define CG_B 0xa1 #define CG_C 0xa2 #define CG_D 0xa3 #define CG_E 0xa4 #define CG_F 0xa5 #define CG_G 0xa6 #define CG_H 0xa7 #define CG_I 0xa8 #define CG_J 0xa9 #define CG_K 0xaa #define CG_L 0xab #define CG_M 0xac #define CG_N 0xad #define CG_O 0xae #define CG_P 0xaf #define CG_Q 0xb0 #define CG_R 0xb1 #define CG_S 0xb2 #define CG_T 0xb3 #define CG_U 0xb4 #define CG_V 0xb5 #define CG_W 0xb6 #define CG_X 0xb7 #define CG_Y 0xb8 #define CG_Z 0xb9 #define CG_AE 0xba #define CG_Ooblique 0xbb #define CG_Aring 0xbc #define CG_Ccedilla 0xbd #define CG_semicolon 0xbe #define CG_asterisk 0xbf /* codes 0xc0 through 0xcf are for field attributes */ #define CG_copyright 0xd0 #define CG_registered 0xd1 #define CG_boxA 0xd2 /* status boxed A */ #define CG_insert 0xd3 /* status insert mode indicator */ #define CG_boxB 0xd4 /* status boxed B */ #define CG_box6 0xd5 /* status boxed 6 */ #define CG_plusminus 0xd6 #define CG_ETH 0xd7 #define CG_rightarrow 0xd8 #define CG_THORN 0xd9 #define CG_upshift 0xda /* status upshift indicator */ #define CG_human 0xdb /* status illegal position indicator */ #define CG_underB 0xdc /* status underlined B */ #define CG_downshift 0xdd /* status downshift indicator */ #define CG_boxquestion 0xde /* status boxed question mark */ #define CG_boxsolid 0xdf /* status solid block */ /* codes 0xe0 through 0xef are for field attributes */ #define CG_badcommhi 0xf0 /* status bad communication indicator */ #define CG_commhi 0xf1 /* status communication indicator */ #define CG_commjag 0xf2 /* status communication indicator */ #define CG_commlo 0xf3 /* status communication indicator */ #define CG_clockleft 0xf4 /* status wait symbol */ #define CG_clockright 0xf5 /* status wait symbol */ #define CG_lock 0xf6 /* status keyboard lock X symbol */ #define CG_eth 0xf7 #define CG_leftarrow 0xf8 #define CG_thorn 0xf9 #define CG_keyleft 0xfa /* status key lock indicator */ #define CG_keyright 0xfb /* status key lock indicator */ #define CG_box4 0xfc /* status boxed 4 */ #define CG_underA 0xfd /* status underlined A */ #define CG_magcard 0xfe /* status magnetic card indicator */ #define CG_boxhuman 0xff /* status boxed position indicator */ ibm-3270-3.3.10ga4/s3270/kybd.c0000644000175000017500000030143611256300017015033 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * kybd.c * This module handles the keyboard for the 3270 emulator. */ #include "globals.h" #if defined(X3270_DISPLAY) /*[*/ #include #endif #define XK_3270 #if defined(X3270_APL) /*[*/ #define XK_APL #endif /*]*/ #include #include #include "3270ds.h" #include "appres.h" #include "ctlr.h" #if defined(X3270_DISPLAY) /*[*/ #include "keysym2ucs.h" #endif /*]*/ #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "aplc.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "hostc.h" #include "idlec.h" #include "keymapc.h" #include "keypadc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "printc.h" #include "screenc.h" #if defined(X3270_DISPLAY) /*[*/ #include "selectc.h" #endif /*]*/ #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include #endif /*]*/ /*#define KYBDLOCK_TRACE 1*/ /* Statics */ static enum { NONE, COMPOSE, FIRST } composing = NONE; static unsigned char pf_xlate[] = { AID_PF1, AID_PF2, AID_PF3, AID_PF4, AID_PF5, AID_PF6, AID_PF7, AID_PF8, AID_PF9, AID_PF10, AID_PF11, AID_PF12, AID_PF13, AID_PF14, AID_PF15, AID_PF16, AID_PF17, AID_PF18, AID_PF19, AID_PF20, AID_PF21, AID_PF22, AID_PF23, AID_PF24 }; static unsigned char pa_xlate[] = { AID_PA1, AID_PA2, AID_PA3 }; #define PF_SZ (sizeof(pf_xlate)/sizeof(pf_xlate[0])) #define PA_SZ (sizeof(pa_xlate)/sizeof(pa_xlate[0])) static unsigned long unlock_id; static time_t unlock_delay_time; Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped); static Boolean flush_ta(void); static void key_AID(unsigned char aid_code); static void kybdlock_set(unsigned int bits, const char *cause); static KeySym MyStringToKeysym(char *s, enum keytype *keytypep, ucs4_t *ucs4); #if defined(X3270_DBCS) /*[*/ Boolean key_WCharacter(unsigned char code[], Boolean *skipped); #endif /*]*/ static Boolean insert = False; /* insert mode */ static Boolean reverse = False; /* reverse-input mode */ /* Globals */ unsigned int kybdlock = KL_NOT_CONNECTED; unsigned char aid = AID_NO; /* current attention ID */ /* Composite key mappings. */ struct akeysym { KeySym keysym; enum keytype keytype; }; static struct akeysym cc_first; static struct composite { struct akeysym k1, k2; struct akeysym translation; } *composites = NULL; static int n_composites = 0; #define ak_eq(k1, k2) (((k1).keysym == (k2).keysym) && \ ((k1).keytype == (k2).keytype)) static struct ta { struct ta *next; XtActionProc fn; char *parm1; char *parm2; } *ta_head = (struct ta *) NULL, *ta_tail = (struct ta *) NULL; static char dxl[] = "0123456789abcdef"; #define FROM_HEX(c) (strchr(dxl, tolower(c)) - dxl) extern Widget *screen; #define KYBDLOCK_IS_OERR (kybdlock && !(kybdlock & ~KL_OERR_MASK)) /* * Put an action on the typeahead queue. */ static void enq_ta(XtActionProc fn, char *parm1, char *parm2) { struct ta *ta; /* If no connection, forget it. */ if (!CONNECTED) { trace_event(" dropped (not connected)\n"); return; } /* If operator error, complain and drop it. */ if (kybdlock & KL_OERR_MASK) { ring_bell(); trace_event(" dropped (operator error)\n"); return; } /* If scroll lock, complain and drop it. */ if (kybdlock & KL_SCROLLED) { ring_bell(); trace_event(" dropped (scrolled)\n"); return; } /* If typeahead disabled, complain and drop it. */ if (!appres.typeahead) { trace_event(" dropped (no typeahead)\n"); return; } ta = (struct ta *) Malloc(sizeof(*ta)); ta->next = (struct ta *) NULL; ta->fn = fn; ta->parm1 = ta->parm2 = CN; if (parm1) { ta->parm1 = NewString(parm1); if (parm2) ta->parm2 = NewString(parm2); } if (ta_head) ta_tail->next = ta; else { ta_head = ta; status_typeahead(True); } ta_tail = ta; trace_event(" action queued (kybdlock 0x%x)\n", kybdlock); } /* * Execute an action from the typeahead queue. */ Boolean run_ta(void) { struct ta *ta; if (kybdlock || (ta = ta_head) == (struct ta *)NULL) return False; if ((ta_head = ta->next) == (struct ta *)NULL) { ta_tail = (struct ta *)NULL; status_typeahead(False); } action_internal(ta->fn, IA_TYPEAHEAD, ta->parm1, ta->parm2); Free(ta->parm1); Free(ta->parm2); Free(ta); return True; } /* * Flush the typeahead queue. * Returns whether or not anything was flushed. */ static Boolean flush_ta(void) { struct ta *ta, *next; Boolean any = False; for (ta = ta_head; ta != (struct ta *) NULL; ta = next) { Free(ta->parm1); Free(ta->parm2); next = ta->next; Free(ta); any = True; } ta_head = ta_tail = (struct ta *) NULL; status_typeahead(False); return any; } /* Decode keyboard lock bits. */ static char * kybdlock_decode(char *how, unsigned int bits) { static char buf[1024]; char *s = buf; char *space = ""; if (bits == (unsigned int)-1) return "all"; if (bits & KL_OERR_MASK) { s += sprintf(s, "%sOERR(", how); switch(bits & KL_OERR_MASK) { case KL_OERR_PROTECTED: s += sprintf(s, "PROTECTED"); break; case KL_OERR_NUMERIC: s += sprintf(s, "NUMERIC"); break; case KL_OERR_OVERFLOW: s += sprintf(s, "OVERFLOW"); break; case KL_OERR_DBCS: s += sprintf(s, "DBCS"); break; default: s += sprintf(s, "?%d", bits & KL_OERR_MASK); break; } s += sprintf(s, ")"); space = " "; } if (bits & KL_NOT_CONNECTED) { s += sprintf(s, "%s%sNOT_CONNECTED", space, how); space = " "; } if (bits & KL_AWAITING_FIRST) { s += sprintf(s, "%s%sAWAITING_FIRST", space, how); space = " "; } if (bits & KL_OIA_TWAIT) { s += sprintf(s, "%s%sOIA_TWAIT", space, how); space = " "; } if (bits & KL_OIA_LOCKED) { s += sprintf(s, "%s%sOIA_LOCKED", space, how); space = " "; } if (bits & KL_DEFERRED_UNLOCK) { s += sprintf(s, "%s%sDEFERRED_UNLOCK", space, how); space = " "; } if (bits & KL_ENTER_INHIBIT) { s += sprintf(s, "%s%sENTER_INHIBIT", space, how); space = " "; } if (bits & KL_SCROLLED) { s += sprintf(s, "%s%sSCROLLED", space, how); space = " "; } if (bits & KL_OIA_MINUS) { s += sprintf(s, "%s%sOIA_MINUS", space, how); space = " "; } return buf; } /* Set bits in the keyboard lock. */ static void kybdlock_set(unsigned int bits, const char *cause _is_unused) { unsigned int n; trace_event("Keyboard lock(%s) %s\n", cause, kybdlock_decode("+", bits)); n = kybdlock | bits; if (n != kybdlock) { #if defined(KYBDLOCK_TRACE) /*[*/ trace_event(" %s: kybdlock |= 0x%04x, 0x%04x -> 0x%04x\n", cause, bits, kybdlock, n); #endif /*]*/ if ((kybdlock ^ bits) & KL_DEFERRED_UNLOCK) { /* Turned on deferred unlock. */ unlock_delay_time = time(NULL); } kybdlock = n; status_kybdlock(); } } /* Clear bits in the keyboard lock. */ void kybdlock_clr(unsigned int bits, const char *cause _is_unused) { unsigned int n; if (kybdlock & bits) trace_event("Keyboard unlock(%s) %s\n", cause, kybdlock_decode("-", kybdlock & bits)); n = kybdlock & ~bits; if (n != kybdlock) { #if defined(KYBDLOCK_TRACE) /*[*/ trace_event(" %s: kybdlock &= ~0x%04x, 0x%04x -> 0x%04x\n", cause, bits, kybdlock, n); #endif /*]*/ if ((kybdlock ^ n) & KL_DEFERRED_UNLOCK) { /* Turned off deferred unlock. */ unlock_delay_time = 0; } kybdlock = n; status_kybdlock(); } } /* * Set or clear enter-inhibit mode. */ void kybd_inhibit(Boolean inhibit) { if (inhibit) { kybdlock_set(KL_ENTER_INHIBIT, "kybd_inhibit"); if (kybdlock == KL_ENTER_INHIBIT) status_reset(); } else { kybdlock_clr(KL_ENTER_INHIBIT, "kybd_inhibit"); if (!kybdlock) status_reset(); } } /* * Called when a host connects or disconnects. */ static void kybd_connect(Boolean connected) { if ((kybdlock & KL_DEFERRED_UNLOCK) && unlock_id) { RemoveTimeOut(unlock_id); unlock_id = 0; } kybdlock_clr(-1, "kybd_connect"); if (connected) { /* Wait for any output or a WCC(restore) from the host */ kybdlock_set(KL_AWAITING_FIRST, "kybd_connect"); } else { kybdlock_set(KL_NOT_CONNECTED, "kybd_connect"); (void) flush_ta(); } } /* * Called when we switch between 3270 and ANSI modes. */ static void kybd_in3270(Boolean in3270 _is_unused) { if ((kybdlock & KL_DEFERRED_UNLOCK) && unlock_id) { RemoveTimeOut(unlock_id); unlock_id = 0; } switch ((int)cstate) { case CONNECTED_INITIAL_E: /* * Either we just negotiated TN3270E, or we just processed * and UNBIND from the host. In either case, we are now * awaiting a first unlock from the host, or a transition to * 3270, NVT or SSCP-LU mode. */ kybdlock_set(KL_AWAITING_FIRST, "kybd_in3270"); break; case CONNECTED_ANSI: case CONNECTED_NVT: case CONNECTED_SSCP: /* * We just transitioned to ANSI, TN3270E NVT or TN3270E SSCP-LU * mode. Remove all lock bits. */ kybdlock_clr(-1, "kybd_in3270"); break; default: /* * We just transitioned into or out of 3270 mode. * Remove all lock bits except AWAITING_FIRST. */ kybdlock_clr(~KL_AWAITING_FIRST, "kybd_in3270"); break; } /* There might be a macro pending. */ if (CONNECTED) ps_process(); } /* * Called to initialize the keyboard logic. */ void kybd_init(void) { /* Register interest in connect and disconnect events. */ register_schange(ST_CONNECT, kybd_connect); register_schange(ST_3270_MODE, kybd_in3270); } /* * Toggle insert mode. */ static void insert_mode(Boolean on) { insert = on; status_insert_mode(on); } /* * Toggle reverse mode. */ static void reverse_mode(Boolean on) { #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif /*]*/ { reverse = on; status_reverse_mode(on); } } /* * Lock the keyboard because of an operator error. */ static void operator_error(int error_type) { if (sms_redirect()) popup_an_error("Keyboard locked"); if (appres.oerr_lock || sms_redirect()) { status_oerr(error_type); mcursor_locked(); kybdlock_set((unsigned int)error_type, "operator_error"); (void) flush_ta(); } else { ring_bell(); } } /* * Handle an AID (Attention IDentifier) key. This is the common stuff that * gets executed for all AID keys (PFs, PAs, Clear and etc). */ static void key_AID(unsigned char aid_code) { #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { register unsigned i; if (aid_code == AID_ENTER) { net_sendc('\r'); return; } for (i = 0; i < PF_SZ; i++) if (aid_code == pf_xlate[i]) { ansi_send_pf(i+1); return; } for (i = 0; i < PA_SZ; i++) if (aid_code == pa_xlate[i]) { ansi_send_pa(i+1); return; } return; } #endif /*]*/ #if defined(X3270_PLUGIN) /*[*/ plugin_aid(aid_code); #endif /*]*/ if (IN_SSCP) { if (kybdlock & KL_OIA_MINUS) return; switch (aid_code) { case AID_CLEAR: /* Handled locally. */ break; case AID_ENTER: /* * Act as if the host had written our input, and * send it as a Read Modified. */ buffer_addr = cursor_addr; aid = aid_code; ctlr_read_modified(aid, False); status_ctlr_done(); break; default: /* Everything else is invalid in SSCP-LU mode. */ status_minus(); kybdlock_set(KL_OIA_MINUS, "key_AID"); return; } return; } status_twait(); mcursor_waiting(); insert_mode(False); kybdlock_set(KL_OIA_TWAIT | KL_OIA_LOCKED, "key_AID"); aid = aid_code; ctlr_read_modified(aid, False); ticking_start(False); status_ctlr_done(); } void PF_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { unsigned k; action_debug(PF_action, event, params, num_params); if (check_usage(PF_action, *num_params, 1, 1) < 0) return; k = atoi(params[0]); if (k < 1 || k > PF_SZ) { popup_an_error("%s: Invalid argument '%s'", action_name(PF_action), params[0]); cancel_if_idle_command(); return; } reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(PF_action, params[0], CN); else key_AID(pf_xlate[k-1]); } void PA_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { unsigned k; action_debug(PA_action, event, params, num_params); if (check_usage(PA_action, *num_params, 1, 1) < 0) return; k = atoi(params[0]); if (k < 1 || k > PA_SZ) { popup_an_error("%s: Invalid argument '%s'", action_name(PA_action), params[0]); cancel_if_idle_command(); return; } reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(PA_action, params[0], CN); else key_AID(pa_xlate[k-1]); } /* * ATTN key, per RFC 2355. Sends IP, regardless. */ void Attn_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Attn_action, event, params, num_params); if (check_usage(Attn_action, *num_params, 0, 0) < 0) return; if (!IN_3270) return; reset_idle_timer(); if (IN_E) { if (net_bound()) { net_interrupt(); } else { status_minus(); kybdlock_set(KL_OIA_MINUS, "Attn_action"); } } else { net_break(); } } /* * IAC IP, which works for 5250 System Request and interrupts the program * on an AS/400, even when the keyboard is locked. * * This is now the same as the Attn action. */ void Interrupt_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Interrupt_action, event, params, num_params); if (check_usage(Interrupt_action, *num_params, 0, 0) < 0) return; if (!IN_3270) return; reset_idle_timer(); net_interrupt(); } /* * Prepare for an insert of 'count' bytes. * Returns True if the insert is legal, False otherwise. */ static Boolean ins_prep(int faddr, int baddr, int count, Boolean *no_room) { int next_faddr; int xaddr; int need; int ntb; int tb_start = -1; int copy_len; *no_room = False; /* Find the end of the field. */ if (faddr == -1) { /* Unformatted. Use the end of the line. */ next_faddr = (((baddr / COLS) + 1) * COLS) % (ROWS*COLS); } else { next_faddr = faddr; INC_BA(next_faddr); while (next_faddr != faddr && !ea_buf[next_faddr].fa) { INC_BA(next_faddr); } } /* Are there enough NULLs or trailing blanks available? */ xaddr = baddr; need = count; ntb = 0; while (need && (xaddr != next_faddr)) { if (ea_buf[xaddr].cc == EBC_null) need--; else if (toggled(BLANK_FILL) && ((ea_buf[xaddr].cc == EBC_space) || (ea_buf[xaddr].cc == EBC_underscore))) { if (tb_start == -1) tb_start = xaddr; ntb++; } else { tb_start = -1; ntb = 0; } INC_BA(xaddr); } #if defined(_ST) /*[*/ printf("need %d at %d, tb_start at %d\n", count, baddr, tb_start); #endif /*]*/ if (need - ntb > 0) { if (!reverse) { operator_error(KL_OERR_OVERFLOW); return False; } else { *no_room = True; return True; } } /* * Shift the buffer to the right until we've consumed the available * (and needed) NULLs. */ need = count; xaddr = baddr; while (need && (xaddr != next_faddr)) { int n_nulls = 0; int first_null = -1; while (need && ((ea_buf[xaddr].cc == EBC_null) || (tb_start >= 0 && xaddr >= tb_start))) { need--; n_nulls++; if (first_null == -1) first_null = xaddr; INC_BA(xaddr); } if (n_nulls) { int to; /* Shift right n_nulls worth. */ copy_len = first_null - baddr; if (copy_len < 0) copy_len += ROWS*COLS; to = (baddr + n_nulls) % (ROWS*COLS); #if defined(_ST) /*[*/ printf("found %d NULLs at %d\n", n_nulls, first_null); printf("copying %d from %d to %d\n", copy_len, to, first_null); #endif /*]*/ if (copy_len) ctlr_wrapping_memmove(to, baddr, copy_len); } INC_BA(xaddr); } return True; } #define GE_WFLAG 0x100 #define PASTE_WFLAG 0x200 static void key_Character_wrapper(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params _is_unused) { int code; Boolean with_ge = False; Boolean pasting = False; char mb[16]; ucs4_t uc; code = atoi(params[0]); if (code & GE_WFLAG) { with_ge = True; code &= ~GE_WFLAG; } if (code & PASTE_WFLAG) { pasting = True; code &= ~PASTE_WFLAG; } ebcdic_to_multibyte_x(code, with_ge? CS_GE: CS_BASE, mb, sizeof(mb), EUO_BLANK_UNDEF, &uc); trace_event(" %s -> Key(%s\"%s\")\n", ia_name[(int) ia_cause], with_ge ? "GE " : "", mb); (void) key_Character(code, with_ge, pasting, NULL); } /* * Handle an ordinary displayable character key. Lots of stuff to handle * insert-mode, protected fields and etc. */ /*static*/ Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) { register int baddr, faddr, xaddr; register unsigned char fa; enum dbcs_why why = DBCS_FIELD; Boolean no_room = False; reset_idle_timer(); if (skipped != NULL) *skipped = False; if (kybdlock) { char codename[64]; (void) sprintf(codename, "%d", code | (with_ge ? GE_WFLAG : 0) | (pasting ? PASTE_WFLAG : 0)); enq_ta(key_Character_wrapper, codename, CN); return False; } baddr = cursor_addr; faddr = find_field_attribute(baddr); fa = get_field_attribute(baddr); if (ea_buf[baddr].fa || FA_IS_PROTECTED(fa)) { operator_error(KL_OERR_PROTECTED); return False; } if (appres.numeric_lock && FA_IS_NUMERIC(fa) && !((code >= EBC_0 && code <= EBC_9) || code == EBC_minus || code == EBC_period)) { operator_error(KL_OERR_NUMERIC); return False; } /* Can't put an SBCS in a DBCS field. */ if (ea_buf[faddr].cs == CS_DBCS) { operator_error(KL_OERR_DBCS); return False; } /* If it's an SI (end of DBCS subfield), move over one position. */ if (ea_buf[baddr].cc == EBC_si) { INC_BA(baddr); if (baddr == faddr) { operator_error(KL_OERR_OVERFLOW); return False; } } /* Add the character. */ if (ea_buf[baddr].cc == EBC_so) { if (insert) { if (!ins_prep(faddr, baddr, 1, &no_room)) return False; } else { Boolean was_si = False; /* * Overwriting an SO (start of DBCS subfield). * If it's followed by an SI, replace the SO/SI * pair with x/space. If not, replace it and * the following DBCS character with * x/space/SO. */ xaddr = baddr; INC_BA(xaddr); was_si = (ea_buf[xaddr].cc == EBC_si); ctlr_add(xaddr, EBC_space, CS_BASE); ctlr_add_fg(xaddr, 0); #if defined(X3270_ANSI) /*[*/ ctlr_add_bg(xaddr, 0); #endif /*]*/ if (!was_si) { INC_BA(xaddr); ctlr_add(xaddr, EBC_so, CS_BASE); ctlr_add_fg(xaddr, 0); #if defined(X3270_ANSI) /*[*/ ctlr_add_bg(xaddr, 0); #endif /*]*/ } } } else switch (ctlr_lookleft_state(baddr, &why)) { case DBCS_RIGHT: DEC_BA(baddr); /* fall through... */ case DBCS_LEFT: if (why == DBCS_ATTRIBUTE) { if (insert) { if (!ins_prep(faddr, baddr, 1, &no_room)) return False; } else { /* * Replace single DBCS char with * x/space. */ xaddr = baddr; INC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); } } else { Boolean was_si; if (insert) { /* * Inserting SBCS into a DBCS subfield. * If this is the first position, we * can just insert one character in * front of the SO. Otherwise, we'll * need room for SI (to end subfield), * the character, and SO (to begin the * subfield again). */ xaddr = baddr; DEC_BA(xaddr); if (ea_buf[xaddr].cc == EBC_so) { DEC_BA(baddr); if (!ins_prep(faddr, baddr, 1, &no_room)) return False; } else { if (!ins_prep(faddr, baddr, 3, &no_room)) return False; xaddr = baddr; ctlr_add(xaddr, EBC_si, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); INC_BA(xaddr); INC_BA(baddr); INC_BA(xaddr); ctlr_add(xaddr, EBC_so, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); } } else { /* Overwriting part of a subfield. */ xaddr = baddr; ctlr_add(xaddr, EBC_si, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); INC_BA(xaddr); INC_BA(baddr); INC_BA(xaddr); was_si = (ea_buf[xaddr].cc == EBC_si); ctlr_add(xaddr, EBC_space, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); if (!was_si) { INC_BA(xaddr); ctlr_add(xaddr, EBC_so, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); } } } break; default: case DBCS_NONE: if ((reverse || insert) && !ins_prep(faddr, baddr, 1, &no_room)) return False; break; } if (no_room) { do { INC_BA(baddr); } while (ea_buf[baddr].fa); } else { ctlr_add(baddr, (unsigned char)code, (unsigned char)(with_ge ? CS_GE : 0)); ctlr_add_fg(baddr, 0); ctlr_add_gr(baddr, 0); if (!reverse) INC_BA(baddr); } /* Replace leading nulls with blanks, if desired. */ if (formatted && toggled(BLANK_FILL)) { register int baddr_fill = baddr; DEC_BA(baddr_fill); while (baddr_fill != faddr) { /* Check for backward line wrap. */ if ((baddr_fill % COLS) == COLS - 1) { Boolean aborted = True; register int baddr_scan = baddr_fill; /* * Check the field within the preceeding line * for NULLs. */ while (baddr_scan != faddr) { if (ea_buf[baddr_scan].cc != EBC_null) { aborted = False; break; } if (!(baddr_scan % COLS)) break; DEC_BA(baddr_scan); } if (aborted) break; } if (ea_buf[baddr_fill].cc == EBC_null) ctlr_add(baddr_fill, EBC_space, 0); DEC_BA(baddr_fill); } } mdt_set(cursor_addr); /* * Implement auto-skip, and don't land on attribute bytes. * This happens for all pasted data (even DUP), and for all * keyboard-generated data except DUP. */ if (pasting || (code != EBC_dup)) { while (ea_buf[baddr].fa) { if (skipped != NULL) *skipped = True; if (FA_IS_SKIP(ea_buf[baddr].fa)) baddr = next_unprotected(baddr); else INC_BA(baddr); } cursor_move(baddr); } (void) ctlr_dbcs_postprocess(); return True; } #if defined(X3270_DBCS) /*[*/ static void key_WCharacter_wrapper(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params _is_unused) { int code; unsigned char codebuf[2]; code = atoi(params[0]); trace_event(" %s -> Key(0x%04x)\n", ia_name[(int) ia_cause], code); codebuf[0] = (code >> 8) & 0xff; codebuf[1] = code & 0xff; (void) key_WCharacter(codebuf, NULL); } /* * Input a DBCS character. * Returns True if a character was stored in the buffer, False otherwise. */ Boolean key_WCharacter(unsigned char code[], Boolean *skipped) { int baddr; register unsigned char fa; int faddr; enum dbcs_state d; int xaddr; Boolean done = False; Boolean no_si = False; Boolean no_room = False; extern unsigned char reply_mode; /* XXX */ reset_idle_timer(); if (kybdlock) { char codename[64]; (void) sprintf(codename, "%d", (code[0] << 8) | code[1]); enq_ta(key_WCharacter_wrapper, codename, CN); return False; } if (skipped != NULL) *skipped = False; /* In DBCS mode? */ #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif /*]*/ { trace_event("DBCS character received when not in DBCS mode, " "ignoring.\n"); return True; } #if defined(X3270_ANSI) /*[*/ /* In ANSI mode? */ if (IN_ANSI) { char mb[16]; (void) ebcdic_to_multibyte((code[0] << 8) | code[1], mb, sizeof(mb)); net_sends(mb); return True; } #endif /*]*/ baddr = cursor_addr; fa = get_field_attribute(baddr); faddr = find_field_attribute(baddr); /* Protected? */ if (ea_buf[baddr].fa || FA_IS_PROTECTED(fa)) { operator_error(KL_OERR_PROTECTED); return False; } /* Numeric? */ if (appres.numeric_lock && FA_IS_NUMERIC(fa)) { operator_error(KL_OERR_NUMERIC); return False; } /* * Figure our what to do based on the DBCS state of the buffer. * Leaves baddr pointing to the next unmodified position. */ retry: switch (d = ctlr_dbcs_state(baddr)) { case DBCS_RIGHT: case DBCS_RIGHT_WRAP: /* Back up one position and process it as a LEFT. */ DEC_BA(baddr); /* fall through... */ case DBCS_LEFT: case DBCS_LEFT_WRAP: /* Overwrite the existing character. */ if (insert) { if (!ins_prep(faddr, baddr, 2, &no_room)) { return False; } } ctlr_add(baddr, code[0], ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[1], ea_buf[baddr].cs); INC_BA(baddr); done = True; break; case DBCS_SB: /* Back up one position and process it as an SI. */ DEC_BA(baddr); /* fall through... */ case DBCS_SI: /* Extend the subfield to the right. */ if (insert) { if (!ins_prep(faddr, baddr, 2, &no_room)) { return False; } } else { /* Don't overwrite a field attribute or an SO. */ xaddr = baddr; INC_BA(xaddr); /* C1 */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) no_si = True; INC_BA(xaddr); /* SI */ if (ea_buf[xaddr].fa || ea_buf[xaddr].cc == EBC_so) break; } ctlr_add(baddr, code[0], ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[1], ea_buf[baddr].cs); if (!no_si) { INC_BA(baddr); ctlr_add(baddr, EBC_si, ea_buf[baddr].cs); } done = True; break; case DBCS_DEAD: break; case DBCS_NONE: if (ea_buf[faddr].ic) { Boolean extend_left = False; /* Is there room? */ if (insert) { if (!ins_prep(faddr, baddr, 4, &no_room)) { return False; } } else { xaddr = baddr; /* baddr, SO */ if (ea_buf[xaddr].cc == EBC_so) { /* * (baddr), where we would have put the * SO, is already an SO. Move to * (baddr+1) and try again. */ #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 0\n"); #endif /*]*/ INC_BA(baddr); goto retry; } INC_BA(xaddr); /* baddr+1, C0 */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) { enum dbcs_state e; /* * (baddr+1), where we would have put * the left side of the DBCS, is a SO. * If there's room, we can extend the * subfield to the left. If not, we're * stuck. */ DEC_BA(xaddr); DEC_BA(xaddr); e = ctlr_dbcs_state(xaddr); if (e == DBCS_NONE || e == DBCS_SB) { extend_left = True; no_si = True; #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 1, " "extend left\n"); #endif /*]*/ } else { /* * Won't actually happen, * because this implies that * the buffer addr at baddr * is an SB. */ #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 1, " "no room on left, " "fail\n"); #endif /*]*/ break; } } INC_BA(xaddr); /* baddr+2, C1 */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) { /* * (baddr+2), where we want to put the * right half of the DBCS character, is * a SO. This is a natural extension * to the left -- just make sure we * don't write an SI. */ no_si = True; #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 2, no SI\n"); #endif /*]*/ } /* * Check the fourth position only if we're * not doing an extend-left. */ if (!no_si) { INC_BA(xaddr); /* baddr+3, SI */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) { /* * (baddr+3), where we want to * put an * SI, is an SO. Forget it. */ #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 3, " "retry right\n"); INC_BA(baddr); goto retry; #endif /*]*/ break; } } } /* Yes, add it. */ if (extend_left) DEC_BA(baddr); ctlr_add(baddr, EBC_so, ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[0], ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[1], ea_buf[baddr].cs); if (!no_si) { INC_BA(baddr); ctlr_add(baddr, EBC_si, ea_buf[baddr].cs); } done = True; } else if (reply_mode == SF_SRM_CHAR) { /* Use the character attribute. */ if (insert) { if (!ins_prep(faddr, baddr, 2, &no_room)) { return False; } } else { xaddr = baddr; INC_BA(xaddr); if (ea_buf[xaddr].fa) break; } ctlr_add(baddr, code[0], CS_DBCS); INC_BA(baddr); ctlr_add(baddr, code[1], CS_DBCS); INC_BA(baddr); done = True; } break; } if (done) { /* Implement blank fill mode. */ if (toggled(BLANK_FILL)) { xaddr = faddr; INC_BA(xaddr); while (xaddr != baddr) { if (ea_buf[xaddr].cc == EBC_null) ctlr_add(xaddr, EBC_space, CS_BASE); else break; INC_BA(xaddr); } } mdt_set(cursor_addr); /* Implement auto-skip. */ while (ea_buf[baddr].fa) { if (skipped != NULL) *skipped = True; if (FA_IS_SKIP(ea_buf[baddr].fa)) baddr = next_unprotected(baddr); else INC_BA(baddr); } cursor_move(baddr); (void) ctlr_dbcs_postprocess(); return True; } else { operator_error(KL_OERR_DBCS); return False; } } #endif /*]*/ /* * Handle an ordinary character key, given its Unicode value. */ static void key_UCharacter(ucs4_t ucs4, enum keytype keytype, enum iaction cause, Boolean *skipped) { register int i; struct akeysym ak; reset_idle_timer(); if (skipped != NULL) *skipped = False; ak.keysym = ucs4; ak.keytype = keytype; switch (composing) { case NONE: break; case COMPOSE: for (i = 0; i < n_composites; i++) if (ak_eq(composites[i].k1, ak) || ak_eq(composites[i].k2, ak)) break; if (i < n_composites) { cc_first.keysym = ucs4; cc_first.keytype = keytype; composing = FIRST; status_compose(True, ucs4, keytype); } else { ring_bell(); composing = NONE; status_compose(False, 0, KT_STD); } return; case FIRST: composing = NONE; status_compose(False, 0, KT_STD); for (i = 0; i < n_composites; i++) if ((ak_eq(composites[i].k1, cc_first) && ak_eq(composites[i].k2, ak)) || (ak_eq(composites[i].k1, ak) && ak_eq(composites[i].k2, cc_first))) break; if (i < n_composites) { ucs4 = composites[i].translation.keysym; keytype = composites[i].translation.keytype; } else { ring_bell(); return; } break; } trace_event(" %s -> Key(U+%04x)\n", ia_name[(int) cause], ucs4); if (IN_3270) { ebc_t ebc; Boolean ge; if (ucs4 < ' ') { trace_event(" dropped (control char)\n"); return; } ebc = unicode_to_ebcdic_ge(ucs4, &ge); if (ebc == 0) { trace_event(" dropped (no EBCDIC translation)\n"); return; } #if defined(X3270_DBCS) /*[*/ if (ebc & 0xff00) { unsigned char code[2]; code[0] = (ebc & 0xff00)>> 8; code[1] = ebc & 0xff; (void) key_WCharacter(code, skipped); } else #endif /*]*/ (void) key_Character(ebc, (keytype == KT_GE) || ge, False, skipped); } #if defined(X3270_ANSI) /*[*/ else if (IN_ANSI) { char mb[16]; unicode_to_multibyte(ucs4, mb, sizeof(mb)); net_sends(mb); } #endif /*]*/ else { trace_event(" dropped (not connected)\n"); } } #if defined(X3270_DISPLAY) /*[*/ /* * Handle an ordinary character key, given its NULL-terminated multibyte * representation. */ static void key_ACharacter(char *mb, enum keytype keytype, enum iaction cause, Boolean *skipped) { ucs4_t ucs4; int consumed; enum me_fail error; reset_idle_timer(); if (skipped != NULL) *skipped = False; /* Convert the multibyte string to UCS4. */ ucs4 = multibyte_to_unicode(mb, strlen(mb), &consumed, &error); if (ucs4 == 0) { trace_event(" %s -> Key(?)\n", ia_name[(int) cause]); trace_event(" dropped (invalid multibyte sequence)\n"); return; } key_UCharacter(ucs4, keytype, cause, skipped); } #endif /*]*/ /* * Simple toggles. */ #if defined(X3270_DISPLAY) /*[*/ void AltCursor_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(AltCursor_action, event, params, num_params); if (check_usage(AltCursor_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); do_toggle(ALT_CURSOR); } #endif /*]*/ void MonoCase_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(MonoCase_action, event, params, num_params); if (check_usage(MonoCase_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); do_toggle(MONOCASE); } /* * Flip the display left-to-right */ void Flip_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Flip_action, event, params, num_params); if (check_usage(Flip_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif /*]*/ screen_flip(); } /* * Tab forward to next field. */ void Tab_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Tab_action, event, params, num_params); if (check_usage(Tab_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Tab"); status_reset(); } else { enq_ta(Tab_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_sendc('\t'); return; } #endif /*]*/ cursor_move(next_unprotected(cursor_addr)); } /* * Tab backward to previous field. */ void BackTab_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr, nbaddr; int sbaddr; action_debug(BackTab_action, event, params, num_params); if (check_usage(BackTab_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "BackTab"); status_reset(); } else { enq_ta(BackTab_action, CN, CN); return; } } if (!IN_3270) return; baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].fa) /* at bof */ DEC_BA(baddr); sbaddr = baddr; while (True) { nbaddr = baddr; INC_BA(nbaddr); if (ea_buf[baddr].fa && !FA_IS_PROTECTED(ea_buf[baddr].fa) && !ea_buf[nbaddr].fa) break; DEC_BA(baddr); if (baddr == sbaddr) { cursor_move(0); return; } } INC_BA(baddr); cursor_move(baddr); } /* * Deferred keyboard unlock. */ static void defer_unlock(void) { kybdlock_clr(KL_DEFERRED_UNLOCK, "defer_unlock"); status_reset(); if (CONNECTED) ps_process(); } /* * Reset keyboard lock. */ void do_reset(Boolean explicit) { /* * If explicit (from the keyboard) and there is typeahead or * a half-composed key, simply flush it. */ if (explicit #if defined(X3270_FT) /*[*/ || ft_state != FT_NONE #endif /*]*/ ) { Boolean half_reset = False; if (flush_ta()) half_reset = True; if (composing != NONE) { composing = NONE; status_compose(False, 0, KT_STD); half_reset = True; } if (half_reset) return; } /* Always clear insert mode. */ insert_mode(False); /* Otherwise, if not connect, reset is a no-op. */ if (!CONNECTED) return; /* * Remove any deferred keyboard unlock. We will either unlock the * keyboard now, or want to defer further into the future. */ if ((kybdlock & KL_DEFERRED_UNLOCK) && unlock_id) { RemoveTimeOut(unlock_id); unlock_id = 0; } /* * If explicit (from the keyboard), unlock the keyboard now. * Otherwise (from the host), schedule a deferred keyboard unlock. */ if (explicit #if defined(X3270_FT) /*[*/ || ft_state != FT_NONE #endif /*]*/ || (!appres.unlock_delay && !sms_in_macro()) || (unlock_delay_time != 0 && (time(NULL) - unlock_delay_time) > 1) || !appres.unlock_delay_ms) { kybdlock_clr(-1, "do_reset"); } else if (kybdlock & (KL_DEFERRED_UNLOCK | KL_OIA_TWAIT | KL_OIA_LOCKED | KL_AWAITING_FIRST)) { kybdlock_clr(~KL_DEFERRED_UNLOCK, "do_reset"); kybdlock_set(KL_DEFERRED_UNLOCK, "do_reset"); unlock_id = AddTimeOut(appres.unlock_delay_ms, defer_unlock); trace_event("Deferring keyboard unlock %dms\n", appres.unlock_delay_ms); } /* Clean up other modes. */ status_reset(); mcursor_normal(); composing = NONE; status_compose(False, 0, KT_STD); } void Reset_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Reset_action, event, params, num_params); if (check_usage(Reset_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); do_reset(True); } /* * Move to first unprotected field on screen. */ void Home_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Home_action, event, params, num_params); if (check_usage(Home_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Home_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_home(); return; } #endif /*]*/ if (!formatted) { cursor_move(0); return; } cursor_move(next_unprotected(ROWS*COLS-1)); } /* * Cursor left 1 position. */ static void do_left(void) { register int baddr; enum dbcs_state d; baddr = cursor_addr; DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) { DEC_BA(baddr); } else if (IS_LEFT(d)) { DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) DEC_BA(baddr); } cursor_move(baddr); } void Left_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Left_action, event, params, num_params); if (check_usage(Left_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Left"); status_reset(); } else { enq_ta(Left_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_left(); return; } #endif /*]*/ if (!flipped) do_left(); else { register int baddr; baddr = cursor_addr; INC_BA(baddr); cursor_move(baddr); } } /* * Delete char key. * Returns "True" if succeeds, "False" otherwise. */ static Boolean do_delete(void) { register int baddr, end_baddr; int xaddr; register unsigned char fa; int ndel; register int i; baddr = cursor_addr; /* Can't delete a field attribute. */ fa = get_field_attribute(baddr); if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return False; } if (ea_buf[baddr].cc == EBC_so || ea_buf[baddr].cc == EBC_si) { /* * Can't delete SO or SI, unless it's adjacent to its * opposite. */ xaddr = baddr; INC_BA(xaddr); if (ea_buf[xaddr].cc == SOSI(ea_buf[baddr].cc)) { ndel = 2; } else { operator_error(KL_OERR_PROTECTED); return False; } } else if (IS_DBCS(ea_buf[baddr].db)) { if (IS_RIGHT(ea_buf[baddr].db)) DEC_BA(baddr); ndel = 2; } else ndel = 1; /* find next fa */ if (formatted) { end_baddr = baddr; do { INC_BA(end_baddr); if (ea_buf[end_baddr].fa) break; } while (end_baddr != baddr); DEC_BA(end_baddr); } else { if ((baddr % COLS) == COLS - ndel) return True; end_baddr = baddr + (COLS - (baddr % COLS)) - 1; } /* Shift the remainder of the field left. */ if (end_baddr > baddr) { ctlr_bcopy(baddr + ndel, baddr, end_baddr - (baddr + ndel) + 1, 0); } else if (end_baddr != baddr) { /* XXX: Need to verify this. */ ctlr_bcopy(baddr + ndel, baddr, ((ROWS * COLS) - 1) - (baddr + ndel) + 1, 0); ctlr_bcopy(0, (ROWS * COLS) - ndel, ndel, 0); ctlr_bcopy(ndel, 0, end_baddr - ndel + 1, 0); } /* NULL fill at the end. */ for (i = 0; i < ndel; i++) ctlr_add(end_baddr - i, EBC_null, 0); /* Set the MDT for this field. */ mdt_set(cursor_addr); /* Patch up the DBCS state for display. */ (void) ctlr_dbcs_postprocess(); return True; } void Delete_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Delete_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(Delete_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_sendc('\177'); return; } #endif /*]*/ if (!do_delete()) return; if (reverse) { int baddr = cursor_addr; DEC_BA(baddr); if (!ea_buf[baddr].fa) cursor_move(baddr); } } /* * 3270-style backspace. */ void BackSpace_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(BackSpace_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(BackSpace_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_erase(); return; } #endif /*]*/ if (reverse) (void) do_delete(); else if (!flipped) do_left(); else { register int baddr; baddr = cursor_addr; DEC_BA(baddr); cursor_move(baddr); } } /* * Destructive backspace, like Unix "erase". */ static void do_erase(void) { int baddr, faddr; enum dbcs_state d; baddr = cursor_addr; faddr = find_field_attribute(baddr); if (faddr == baddr || FA_IS_PROTECTED(ea_buf[baddr].fa)) { operator_error(KL_OERR_PROTECTED); return; } if (baddr && faddr == baddr - 1) return; do_left(); /* * If we are now on an SI, move left again. */ if (ea_buf[cursor_addr].cc == EBC_si) { baddr = cursor_addr; DEC_BA(baddr); cursor_move(baddr); } /* * If we landed on the right-hand side of a DBCS character, move to the * left-hand side. * This ensures that if this is the end of a DBCS subfield, we will * land on the SI, instead of on the character following. */ d = ctlr_dbcs_state(cursor_addr); if (IS_RIGHT(d)) { baddr = cursor_addr; DEC_BA(baddr); cursor_move(baddr); } /* * Try to delete this character. */ if (!do_delete()) return; /* * If we've just erased the last character of a DBCS subfield, erase * the SO/SI pair as well. */ baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].cc == EBC_so && ea_buf[cursor_addr].cc == EBC_si) { cursor_move(baddr); (void) do_delete(); } } void Erase_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Erase_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(Erase_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_erase(); return; } #endif /*]*/ if (reverse) do_delete(); else do_erase(); } /* * Cursor right 1 position. */ void Right_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; enum dbcs_state d; action_debug(Right_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Right"); status_reset(); } else { enq_ta(Right_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_right(); return; } #endif /*]*/ if (!flipped) { baddr = cursor_addr; INC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) INC_BA(baddr); cursor_move(baddr); } else do_left(); } /* * Cursor left 2 positions. */ void Left2_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; enum dbcs_state d; action_debug(Left2_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Left2"); status_reset(); } else { enq_ta(Left2_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ baddr = cursor_addr; DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) DEC_BA(baddr); DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) DEC_BA(baddr); cursor_move(baddr); } /* * Cursor to previous word. */ void PreviousWord_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; int baddr0; unsigned char c; Boolean prot; action_debug(PreviousWord_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(PreviousWord_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (!formatted) return; baddr = cursor_addr; prot = FA_IS_PROTECTED(get_field_attribute(baddr)); /* Skip to before this word, if in one now. */ if (!prot) { c = ea_buf[baddr].cc; while (!ea_buf[baddr].fa && c != EBC_space && c != EBC_null) { DEC_BA(baddr); if (baddr == cursor_addr) return; c = ea_buf[baddr].cc; } } baddr0 = baddr; /* Find the end of the preceding word. */ do { c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) { DEC_BA(baddr); prot = FA_IS_PROTECTED(get_field_attribute(baddr)); continue; } if (!prot && c != EBC_space && c != EBC_null) break; DEC_BA(baddr); } while (baddr != baddr0); if (baddr == baddr0) return; /* Go it its front. */ for (;;) { DEC_BA(baddr); c = ea_buf[baddr].cc; if (ea_buf[baddr].fa || c == EBC_space || c == EBC_null) { break; } } INC_BA(baddr); cursor_move(baddr); } /* * Cursor right 2 positions. */ void Right2_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; enum dbcs_state d; action_debug(Right2_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Right2"); status_reset(); } else { enq_ta(Right2_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ baddr = cursor_addr; INC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) INC_BA(baddr); INC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) INC_BA(baddr); cursor_move(baddr); } /* Find the next unprotected word, or -1 */ static int nu_word(int baddr) { int baddr0 = baddr; unsigned char c; Boolean prot; prot = FA_IS_PROTECTED(get_field_attribute(baddr)); do { c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) prot = FA_IS_PROTECTED(ea_buf[baddr].fa); else if (!prot && c != EBC_space && c != EBC_null) return baddr; INC_BA(baddr); } while (baddr != baddr0); return -1; } /* Find the next word in this field, or -1 */ static int nt_word(int baddr) { int baddr0 = baddr; unsigned char c; Boolean in_word = True; do { c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) return -1; if (in_word) { if (c == EBC_space || c == EBC_null) in_word = False; } else { if (c != EBC_space && c != EBC_null) return baddr; } INC_BA(baddr); } while (baddr != baddr0); return -1; } /* * Cursor to next unprotected word. */ void NextWord_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; unsigned char c; action_debug(NextWord_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(NextWord_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (!formatted) return; /* If not in an unprotected field, go to the next unprotected word. */ if (ea_buf[cursor_addr].fa || FA_IS_PROTECTED(get_field_attribute(cursor_addr))) { baddr = nu_word(cursor_addr); if (baddr != -1) cursor_move(baddr); return; } /* If there's another word in this field, go to it. */ baddr = nt_word(cursor_addr); if (baddr != -1) { cursor_move(baddr); return; } /* If in a word, go to just after its end. */ c = ea_buf[cursor_addr].cc; if (c != EBC_space && c != EBC_null) { baddr = cursor_addr; do { c = ea_buf[baddr].cc; if (c == EBC_space || c == EBC_null) { cursor_move(baddr); return; } else if (ea_buf[baddr].fa) { baddr = nu_word(baddr); if (baddr != -1) cursor_move(baddr); return; } INC_BA(baddr); } while (baddr != cursor_addr); } /* Otherwise, go to the next unprotected word. */ else { baddr = nu_word(cursor_addr); if (baddr != -1) cursor_move(baddr); } } /* * Cursor up 1 position. */ void Up_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; action_debug(Up_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Up"); status_reset(); } else { enq_ta(Up_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_up(); return; } #endif /*]*/ baddr = cursor_addr - COLS; if (baddr < 0) baddr = (cursor_addr + (ROWS * COLS)) - COLS; cursor_move(baddr); } /* * Cursor down 1 position. */ void Down_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; action_debug(Down_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Down"); status_reset(); } else { enq_ta(Down_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_down(); return; } #endif /*]*/ baddr = (cursor_addr + COLS) % (COLS * ROWS); cursor_move(baddr); } /* * Cursor to first field on next line or any lines after that. */ void Newline_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr, faddr; register unsigned char fa; action_debug(Newline_action, event, params, num_params); if (check_usage(Newline_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Newline_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_sendc('\n'); return; } #endif /*]*/ baddr = (cursor_addr + COLS) % (COLS * ROWS); /* down */ baddr = (baddr / COLS) * COLS; /* 1st col */ faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (faddr != baddr && !FA_IS_PROTECTED(fa)) cursor_move(baddr); else cursor_move(next_unprotected(baddr)); } /* * DUP key */ void Dup_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Dup_action, event, params, num_params); if (check_usage(Dup_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Dup_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (key_Character(EBC_dup, False, False, NULL)) cursor_move(next_unprotected(cursor_addr)); } /* * FM key */ void FieldMark_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(FieldMark_action, event, params, num_params); if (check_usage(FieldMark_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(FieldMark_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ (void) key_Character(EBC_fm, False, False, NULL); } /* * Vanilla AID keys. */ void Enter_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Enter_action, event, params, num_params); if (check_usage(Enter_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(Enter_action, CN, CN); else key_AID(AID_ENTER); } void SysReq_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(SysReq_action, event, params, num_params); if (check_usage(SysReq_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (IN_ANSI) return; #if defined(X3270_TN3270E) /*[*/ if (IN_E) { net_abort(); } else #endif /*]*/ { if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(SysReq_action, CN, CN); else key_AID(AID_SYSREQ); } } /* * Clear AID key */ void Clear_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Clear_action, event, params, num_params); if (check_usage(Clear_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; if (kybdlock && CONNECTED) { enq_ta(Clear_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_clear(); return; } #endif /*]*/ buffer_addr = 0; ctlr_clear(True); cursor_move(0); if (CONNECTED) key_AID(AID_CLEAR); } /* * Cursor Select key (light pen simulator). */ static void lightpen_select(int baddr) { int faddr; register unsigned char fa; int designator; #if defined(X3270_DBCS) /*[*/ int designator2; #endif /*]*/ faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (!FA_IS_SELECTABLE(fa)) { ring_bell(); return; } designator = faddr; INC_BA(designator); #if defined(X3270_DBCS) /*[*/ if (dbcs) { if (ea_buf[baddr].cs == CS_DBCS) { designator2 = designator; INC_BA(designator2); if ((ea_buf[designator].db != DBCS_LEFT && ea_buf[designator].db != DBCS_LEFT_WRAP) && (ea_buf[designator2].db != DBCS_RIGHT && ea_buf[designator2].db != DBCS_RIGHT_WRAP)) { ring_bell(); return; } if (ea_buf[designator].cc == 0x42 && ea_buf[designator2].cc == EBC_greater) { ctlr_add(designator2, EBC_question, CS_DBCS); mdt_clear(faddr); } else if (ea_buf[designator].cc == 0x42 && ea_buf[designator2].cc == EBC_question) { ctlr_add(designator2, EBC_greater, CS_DBCS); mdt_clear(faddr); } else if ((ea_buf[designator].cc == EBC_space && ea_buf[designator2].cc == EBC_space) || (ea_buf[designator].cc == EBC_null && ea_buf[designator2].cc == EBC_null)) { ctlr_add(designator2, EBC_greater, CS_DBCS); mdt_set(faddr); key_AID(AID_SELECT); } else if (ea_buf[designator].cc == 0x42 && ea_buf[designator2].cc == EBC_ampersand) { mdt_set(faddr); key_AID(AID_ENTER); } else { ring_bell(); } return; } } #endif /*]*/ switch (ea_buf[designator].cc) { case EBC_greater: /* > */ ctlr_add(designator, EBC_question, 0); /* change to ? */ mdt_clear(faddr); break; case EBC_question: /* ? */ ctlr_add(designator, EBC_greater, 0); /* change to > */ mdt_set(faddr); break; case EBC_space: /* space */ case EBC_null: /* null */ mdt_set(faddr); key_AID(AID_SELECT); break; case EBC_ampersand: /* & */ mdt_set(faddr); key_AID(AID_ENTER); break; default: ring_bell(); break; } } /* * Cursor Select key (light pen simulator) -- at the current cursor location. */ void CursorSelect_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(CursorSelect_action, event, params, num_params); if (check_usage(CursorSelect_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(CursorSelect_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ lightpen_select(cursor_addr); } #if defined(X3270_DISPLAY) /*[*/ /* * Cursor Select mouse action (light pen simulator). */ void MouseSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(MouseSelect_action, event, params, num_params); if (check_usage(MouseSelect_action, *num_params, 0, 0) < 0) return; if (w != *screen) return; reset_idle_timer(); if (kybdlock) return; #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ lightpen_select(mouse_baddr(w, event)); } #endif /*]*/ /* * Erase End Of Field Key. */ void EraseEOF_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; register unsigned char fa; enum dbcs_state d; enum dbcs_why why = DBCS_FIELD; action_debug(EraseEOF_action, event, params, num_params); if (check_usage(EraseEOF_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(EraseEOF_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ baddr = cursor_addr; fa = get_field_attribute(baddr); if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return; } if (formatted) { /* erase to next field attribute */ do { ctlr_add(baddr, EBC_null, 0); INC_BA(baddr); } while (!ea_buf[baddr].fa); mdt_set(cursor_addr); } else { /* erase to end of screen */ do { ctlr_add(baddr, EBC_null, 0); INC_BA(baddr); } while (baddr != 0); } /* If the cursor was in a DBCS subfield, re-create the SI. */ d = ctlr_lookleft_state(cursor_addr, &why); if (IS_DBCS(d) && why == DBCS_SUBFIELD) { if (d == DBCS_RIGHT) { baddr = cursor_addr; DEC_BA(baddr); ea_buf[baddr].cc = EBC_si; } else ea_buf[cursor_addr].cc = EBC_si; } (void) ctlr_dbcs_postprocess(); } /* * Erase all Input Key. */ void EraseInput_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr, sbaddr; unsigned char fa; Boolean f; action_debug(EraseInput_action, event, params, num_params); if (check_usage(EraseInput_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(EraseInput_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (formatted) { /* find first field attribute */ baddr = 0; do { if (ea_buf[baddr].fa) break; INC_BA(baddr); } while (baddr != 0); sbaddr = baddr; f = False; do { fa = ea_buf[baddr].fa; if (!FA_IS_PROTECTED(fa)) { mdt_clear(baddr); do { INC_BA(baddr); if (!f) { cursor_move(baddr); f = True; } if (!ea_buf[baddr].fa) { ctlr_add(baddr, EBC_null, 0); } } while (!ea_buf[baddr].fa); } else { /* skip protected */ do { INC_BA(baddr); } while (!ea_buf[baddr].fa); } } while (baddr != sbaddr); if (!f) cursor_move(0); } else { ctlr_clear(True); cursor_move(0); } } /* * Delete word key. Backspaces the cursor until it hits the front of a word, * deletes characters until it hits a blank or null, and deletes all of these * but the last. * * Which is to say, does a ^W. */ void DeleteWord_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; register unsigned char fa; action_debug(DeleteWord_action, event, params, num_params); if (check_usage(DeleteWord_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(DeleteWord_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_werase(); return; } #endif /*]*/ if (!formatted) return; baddr = cursor_addr; fa = get_field_attribute(baddr); /* Make sure we're on a modifiable field. */ if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return; } /* Backspace over any spaces to the left of the cursor. */ for (;;) { baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].fa) return; if (ea_buf[baddr].cc == EBC_null || ea_buf[baddr].cc == EBC_space) do_erase(); else break; } /* Backspace until the character to the left of the cursor is blank. */ for (;;) { baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].fa) return; if (ea_buf[baddr].cc == EBC_null || ea_buf[baddr].cc == EBC_space) break; else do_erase(); } } /* * Delete field key. Similar to EraseEOF, but it wipes out the entire field * rather than just to the right of the cursor, and it leaves the cursor at * the front of the field. * * Which is to say, does a ^U. */ void DeleteField_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; register unsigned char fa; action_debug(DeleteField_action, event, params, num_params); if (check_usage(DeleteField_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(DeleteField_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_kill(); return; } #endif /*]*/ if (!formatted) return; baddr = cursor_addr; fa = get_field_attribute(baddr); if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return; } while (!ea_buf[baddr].fa) DEC_BA(baddr); INC_BA(baddr); mdt_set(cursor_addr); cursor_move(baddr); while (!ea_buf[baddr].fa) { ctlr_add(baddr, EBC_null, 0); INC_BA(baddr); } } /* * Set insert mode key. */ void Insert_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Insert_action, event, params, num_params); if (check_usage(Insert_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Insert_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ insert_mode(True); } /* * Toggle insert mode key. */ void ToggleInsert_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(ToggleInsert_action, event, params, num_params); if (check_usage(ToggleInsert_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(ToggleInsert_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (insert) insert_mode(False); else insert_mode(True); } /* * Toggle reverse mode key. */ void ToggleReverse_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(ToggleReverse_action, event, params, num_params); if (check_usage(ToggleReverse_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(ToggleReverse_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ reverse_mode(!reverse); } /* * Move the cursor to the first blank after the last nonblank in the * field, or if the field is full, to the last character in the field. */ void FieldEnd_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int baddr, faddr; unsigned char fa, c; int last_nonblank = -1; action_debug(FieldEnd_action, event, params, num_params); if (check_usage(FieldEnd_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(FieldEnd_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (!formatted) return; baddr = cursor_addr; faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (faddr == baddr || FA_IS_PROTECTED(fa)) return; baddr = faddr; while (True) { INC_BA(baddr); c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) break; if (c != EBC_null && c != EBC_space) last_nonblank = baddr; } if (last_nonblank == -1) { baddr = faddr; INC_BA(baddr); } else { baddr = last_nonblank; INC_BA(baddr); if (ea_buf[baddr].fa) baddr = last_nonblank; } cursor_move(baddr); } /* * MoveCursor action. Depending on arguments, this is either a move to the * mouse cursor position, or to an absolute location. */ void MoveCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { register int baddr; int row, col; action_debug(MoveCursor_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (*num_params == 2) enq_ta(MoveCursor_action, params[0], params[1]); return; } switch (*num_params) { #if defined(X3270_DISPLAY) /*[*/ case 0: /* mouse click, presumably */ if (w != *screen) return; cursor_move(mouse_baddr(w, event)); break; #endif /*]*/ case 2: /* probably a macro call */ row = atoi(params[0]); col = atoi(params[1]); if (!IN_3270) { row--; col--; } if (row < 0) row = 0; if (col < 0) col = 0; baddr = ((row * COLS) + col) % (ROWS * COLS); cursor_move(baddr); break; default: /* couln't say */ popup_an_error("%s requires 0 or 2 arguments", action_name(MoveCursor_action)); cancel_if_idle_command(); break; } } #if defined(X3270_DBCS) && defined(X3270_DISPLAY) /*[*/ /* * Run a KeyPress through XIM. * Returns True if there is further processing to do, False otherwise. */ static Boolean xim_lookup(XKeyEvent *event) { static char *buf = NULL; static int buf_len = 0, rlen; KeySym k; Status status; extern XIC ic; int i; Boolean rv = False; #define BASE_BUFSIZE 50 if (ic == NULL) return True; if (buf == NULL) { buf_len = BASE_BUFSIZE; buf = Malloc(buf_len); } for (;;) { memset(buf, '\0', buf_len); rlen = XmbLookupString(ic, event, buf, buf_len - 1, &k, &status); if (status != XBufferOverflow) break; buf_len += BASE_BUFSIZE; buf = Realloc(buf, buf_len); } switch (status) { case XLookupNone: rv = False; break; case XLookupKeySym: rv = True; break; case XLookupChars: trace_event("%d XIM char%s:", rlen, (rlen != 1)? "s": ""); for (i = 0; i < rlen; i++) { trace_event(" %02x", buf[i] & 0xff); } trace_event("\n"); buf[rlen] = '\0'; key_ACharacter(buf, KT_STD, ia_cause, NULL); rv = False; break; case XLookupBoth: rv = True; break; } return rv; } #endif /*]*/ /* * Key action. */ void Key_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; KeySym k; enum keytype keytype; ucs4_t ucs4; action_debug(Key_action, event, params, num_params); reset_idle_timer(); for (i = 0; i < *num_params; i++) { char *s = params[i]; k = MyStringToKeysym(s, &keytype, &ucs4); if (k == NoSymbol && !ucs4) { popup_an_error("%s: Nonexistent or invalid KeySym: %s", action_name(Key_action), s); cancel_if_idle_command(); continue; } if (k & ~0xff) { /* * Can't pass symbolic KeySyms that aren't in the * range 0x01..0xff. */ popup_an_error("%s: Invalid KeySym: %s", action_name(Key_action), s); cancel_if_idle_command(); continue; } if (k != NoSymbol) key_UCharacter(k, keytype, IA_KEY, NULL); else key_UCharacter(ucs4, keytype, IA_KEY, NULL); } } /* * String action. */ void String_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; int len = 0; char *s; action_debug(String_action, event, params, num_params); reset_idle_timer(); /* Determine the total length of the strings. */ for (i = 0; i < *num_params; i++) len += strlen(params[i]); if (!len) return; /* Allocate a block of memory and copy them in. */ s = Malloc(len + 1); s[0] = '\0'; for (i = 0; i < *num_params; i++) { strcat(s, params[i]); } /* Set a pending string. */ ps_set(s, False); Free(s); } /* * HexString action. */ void HexString_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; int len = 0; char *s; char *t; action_debug(HexString_action, event, params, num_params); reset_idle_timer(); /* Determine the total length of the strings. */ for (i = 0; i < *num_params; i++) { t = params[i]; if (!strncmp(t, "0x", 2) || !strncmp(t, "0X", 2)) t += 2; len += strlen(t); } if (!len) return; /* Allocate a block of memory and copy them in. */ s = Malloc(len + 1); *s = '\0'; for (i = 0; i < *num_params; i++) { t = params[i]; if (!strncmp(t, "0x", 2) || !strncmp(t, "0X", 2)) t += 2; (void) strcat(s, t); } /* Set a pending string. */ ps_set(s, True); } /* * Dual-mode action for the "asciicircum" ("^") key: * If in ANSI mode, pass through untranslated. * If in 3270 mode, translate to "notsign". * This action is obsoleted by the use of 3270-mode and NVT-mode keymaps, but * is still defined here for backwards compatibility with old keymaps. */ void CircumNot_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(CircumNot_action, event, params, num_params); if (check_usage(CircumNot_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (IN_3270 && composing == NONE) key_UCharacter(0xac, KT_STD, IA_KEY, NULL); else key_UCharacter('^', KT_STD, IA_KEY, NULL); } /* PA key action for String actions */ static void do_pa(unsigned n) { if (n < 1 || n > PA_SZ) { popup_an_error("Unknown PA key %d", n); cancel_if_idle_command(); return; } if (kybdlock) { char nn[3]; (void) sprintf(nn, "%d", n); enq_ta(PA_action, nn, CN); return; } key_AID(pa_xlate[n-1]); } /* PF key action for String actions */ static void do_pf(unsigned n) { if (n < 1 || n > PF_SZ) { popup_an_error("Unknown PF key %d", n); cancel_if_idle_command(); return; } if (kybdlock) { char nn[3]; (void) sprintf(nn, "%d", n); enq_ta(PF_action, nn, CN); return; } key_AID(pf_xlate[n-1]); } /* * Set or clear the keyboard scroll lock. */ void kybd_scroll_lock(Boolean lock) { if (!IN_3270) return; if (lock) kybdlock_set(KL_SCROLLED, "kybd_scroll_lock"); else kybdlock_clr(KL_SCROLLED, "kybd_scroll_lock"); } /* * Move the cursor back within the legal paste area. * Returns a Boolean indicating success. */ static Boolean remargin(int lmargin) { Boolean ever = False; int baddr, b0 = 0; int faddr; unsigned char fa; baddr = cursor_addr; while (BA_TO_COL(baddr) < lmargin) { baddr = ROWCOL_TO_BA(BA_TO_ROW(baddr), lmargin); if (!ever) { b0 = baddr; ever = True; } faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (faddr == baddr || FA_IS_PROTECTED(fa)) { baddr = next_unprotected(baddr); if (baddr <= b0) return False; } } cursor_move(baddr); return True; } /* * Pretend that a sequence of keys was entered at the keyboard. * * "Pasting" means that the sequence came from the X clipboard. Returns are * ignored; newlines mean "move to beginning of next line"; tabs and formfeeds * become spaces. Backslashes are not special, but ASCII ESC characters are * used to signify 3270 Graphic Escapes. * * "Not pasting" means that the sequence is a login string specified in the * hosts file, or a parameter to the String action. Returns are "move to * beginning of next line"; newlines mean "Enter AID" and the termination of * processing the string. Backslashes are processed as in C. * * Returns the number of unprocessed characters. */ int emulate_uinput(ucs4_t *ws, int xlen, Boolean pasting) { enum { BASE, BACKSLASH, BACKX, BACKE, BACKP, BACKPA, BACKPF, OCTAL, HEX, EBC, XGE } state = BASE; int literal = 0; int nc = 0; enum iaction ia = pasting ? IA_PASTE : IA_STRING; int orig_addr = cursor_addr; int orig_col = BA_TO_COL(cursor_addr); Boolean skipped = False; ucs4_t c; /* * In the switch statements below, "break" generally means "consume * this character," while "continue" means "rescan this character." */ while (xlen) { /* * It isn't possible to unlock the keyboard from a string, * so if the keyboard is locked, it's fatal */ if (kybdlock) { trace_event(" keyboard locked, string dropped\n"); return 0; } if (pasting && IN_3270) { /* Check for cursor wrap to top of screen. */ if (cursor_addr < orig_addr) return xlen-1; /* wrapped */ /* Jump cursor over left margin. */ if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { if (!remargin(orig_col)) return xlen-1; skipped = True; } } c = *ws; switch (state) { case BASE: switch (c) { case '\b': action_internal(Left_action, ia, CN, CN); skipped = False; break; case '\f': if (pasting) { key_UCharacter(' ', KT_STD, ia, &skipped); } else { action_internal(Clear_action, ia, CN, CN); skipped = False; if (IN_3270) return xlen-1; } break; case '\n': if (pasting) { if (!skipped) action_internal(Newline_action, ia, CN, CN); skipped = False; } else { action_internal(Enter_action, ia, CN, CN); skipped = False; if (IN_3270) return xlen-1; } break; case '\r': if (!pasting) { action_internal(Newline_action, ia, CN, CN); skipped = False; } break; case '\t': action_internal(Tab_action, ia, CN, CN); skipped = False; break; case '\\': /* backslashes are NOT special when pasting */ if (!pasting) state = BACKSLASH; else key_UCharacter((unsigned char)c, KT_STD, ia, &skipped); break; case '\033': /* ESC is special only when pasting */ if (pasting) state = XGE; break; case '[': /* APL left bracket */ if (pasting && appres.apl_mode) key_UCharacter(XK_Yacute, KT_GE, ia, &skipped); else key_UCharacter((unsigned char)c, KT_STD, ia, &skipped); break; case ']': /* APL right bracket */ if (pasting && appres.apl_mode) key_UCharacter(XK_diaeresis, KT_GE, ia, &skipped); else key_UCharacter((unsigned char)c, KT_STD, ia, &skipped); break; case UPRIV_fm: /* private-use FM */ if (pasting) key_Character(EBC_fm, False, True, &skipped); break; case UPRIV_dup: /* private-use DUP */ if (pasting) key_Character(EBC_dup, False, True, &skipped); break; case UPRIV_eo: /* private-use EO */ if (pasting) key_Character(EBC_eo, False, True, &skipped); break; case UPRIV_sub: /* private-use SUB */ if (pasting) key_Character(EBC_sub, False, True, &skipped); break; default: if (pasting && (c >= UPRIV_GE_00 && c <= UPRIV_GE_ff)) key_Character(c - UPRIV_GE_00, KT_GE, ia, &skipped); else key_UCharacter(c, KT_STD, ia, &skipped); break; } break; case BACKSLASH: /* last character was a backslash */ switch (c) { case 'a': popup_an_error("%s: Bell not supported", action_name(String_action)); cancel_if_idle_command(); state = BASE; break; case 'b': action_internal(Left_action, ia, CN, CN); skipped = False; state = BASE; break; case 'f': action_internal(Clear_action, ia, CN, CN); skipped = False; state = BASE; if (IN_3270) return xlen-1; else break; case 'n': action_internal(Enter_action, ia, CN, CN); skipped = False; state = BASE; if (IN_3270) return xlen-1; else break; case 'p': state = BACKP; break; case 'r': action_internal(Newline_action, ia, CN, CN); skipped = False; state = BASE; break; case 't': action_internal(Tab_action, ia, CN, CN); skipped = False; state = BASE; break; case 'T': action_internal(BackTab_action, ia, CN, CN); skipped = False; state = BASE; break; case 'v': popup_an_error("%s: Vertical tab not supported", action_name(String_action)); cancel_if_idle_command(); state = BASE; break; case 'u': case 'x': state = BACKX; break; case 'e': state = BACKE; break; case '\\': key_UCharacter((unsigned char) c, KT_STD, ia, &skipped); state = BASE; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': state = OCTAL; literal = 0; nc = 0; continue; default: state = BASE; continue; } break; case BACKP: /* last two characters were "\p" */ switch (c) { case 'a': literal = 0; nc = 0; state = BACKPA; break; case 'f': literal = 0; nc = 0; state = BACKPF; break; default: popup_an_error("%s: Unknown character " "after \\p", action_name(String_action)); cancel_if_idle_command(); state = BASE; break; } break; case BACKPF: /* last three characters were "\pf" */ if (nc < 2 && isdigit(c)) { literal = (literal * 10) + (c - '0'); nc++; } else if (!nc) { popup_an_error("%s: Unknown character " "after \\pf", action_name(String_action)); cancel_if_idle_command(); state = BASE; } else { do_pf(literal); skipped = False; if (IN_3270) { return xlen; } state = BASE; continue; } break; case BACKPA: /* last three characters were "\pa" */ if (nc < 1 && isdigit(c)) { literal = (literal * 10) + (c - '0'); nc++; } else if (!nc) { popup_an_error("%s: Unknown character " "after \\pa", action_name(String_action)); cancel_if_idle_command(); state = BASE; } else { do_pa(literal); skipped = False; if (IN_3270) return xlen-1; state = BASE; continue; } break; case BACKX: /* last two characters were "\x" or "\u" */ if (isxdigit(c)) { state = HEX; literal = 0; nc = 0; continue; } else { popup_an_error("%s: Missing hex digits after \\x", action_name(String_action)); cancel_if_idle_command(); state = BASE; continue; } case BACKE: /* last two characters were "\e" */ if (isxdigit(c)) { state = EBC; literal = 0; nc = 0; continue; } else { popup_an_error("%s: Missing hex digits after \\e", action_name(String_action)); cancel_if_idle_command(); state = BASE; continue; } case OCTAL: /* have seen \ and one or more octal digits */ if (nc < 3 && isdigit(c) && c < '8') { literal = (literal * 8) + FROM_HEX(c); nc++; break; } else { key_UCharacter((unsigned char) literal, KT_STD, ia, &skipped); state = BASE; continue; } case HEX: /* have seen \x and one or more hex digits */ if (nc < 4 && isxdigit(c)) { literal = (literal * 16) + FROM_HEX(c); nc++; break; } else { key_UCharacter((unsigned char) literal, KT_STD, ia, &skipped); state = BASE; continue; } case EBC: /* have seen \e and one or more hex digits */ if (nc < 4 && isxdigit(c)) { literal = (literal * 16) + FROM_HEX(c); nc++; break; } else { trace_event(" %s -> Key(X'%02X')\n", ia_name[(int) ia], literal); if (!(literal & ~0xff)) key_Character((unsigned char) literal, False, True, &skipped); else { #if defined(X3270_DBCS) /*[*/ unsigned char code[2]; code[0] = (literal >> 8) & 0xff; code[1] = literal & 0xff; key_WCharacter(code, &skipped); #else /*][*/ popup_an_error("%s: EBCDIC code > 255", action_name(String_action)); cancel_if_idle_command(); #endif /*]*/ } state = BASE; continue; } case XGE: /* have seen ESC */ switch (c) { case ';': /* FM */ key_Character(EBC_fm, False, True, &skipped); break; case '*': /* DUP */ key_Character(EBC_dup, False, True, &skipped); break; default: key_UCharacter((unsigned char) c, KT_GE, ia, &skipped); break; } state = BASE; break; } ws++; xlen--; } switch (state) { case BASE: if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { (void) remargin(orig_col); } break; case OCTAL: case HEX: key_UCharacter((unsigned char) literal, KT_STD, ia, &skipped); state = BASE; if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { (void) remargin(orig_col); } break; case EBC: /* XXX: line below added after 3.3.7p7 */ trace_event(" %s -> Key(X'%02X')\n", ia_name[(int) ia], literal); key_Character((unsigned char) literal, False, True, &skipped); state = BASE; if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { (void) remargin(orig_col); } break; case BACKPF: if (nc > 0) { do_pf(literal); state = BASE; } break; case BACKPA: if (nc > 0) { do_pa(literal); state = BASE; } break; default: popup_an_error("%s: Missing data after \\", action_name(String_action)); cancel_if_idle_command(); break; } return xlen; } /* Multibyte version of emulate_uinput. */ int emulate_input(char *s, int len, Boolean pasting) { static ucs4_t *w_ibuf = NULL; static size_t w_ibuf_len = 0; int xlen; /* Convert from a multi-byte string to a Unicode string. */ if ((size_t)(len + 1) > w_ibuf_len) { w_ibuf_len = len + 1; w_ibuf = (ucs4_t *)Realloc(w_ibuf, w_ibuf_len * sizeof(ucs4_t)); } xlen = multibyte_to_unicode_string(s, len, w_ibuf, w_ibuf_len); if (xlen < 0) { return 0; /* failed */ } /* Process it as Unicode. */ return emulate_uinput(w_ibuf, xlen, pasting); } /* * Pretend that a sequence of hexadecimal characters was entered at the * keyboard. The input is a sequence of hexadecimal bytes, 2 characters * per byte. If connected in ANSI mode, these are treated as ASCII * characters; if in 3270 mode, they are considered EBCDIC. * * Graphic Escapes are handled as \E. */ void hex_input(char *s) { char *t; Boolean escaped; #if defined(X3270_ANSI) /*[*/ unsigned char *xbuf = (unsigned char *)NULL; unsigned char *tbuf = (unsigned char *)NULL; int nbytes = 0; #endif /*]*/ /* Validate the string. */ if (strlen(s) % 2) { popup_an_error("%s: Odd number of characters in specification", action_name(HexString_action)); cancel_if_idle_command(); return; } t = s; escaped = False; while (*t) { if (isxdigit(*t) && isxdigit(*(t + 1))) { escaped = False; #if defined(X3270_ANSI) /*[*/ nbytes++; #endif /*]*/ } else if (!strncmp(t, "\\E", 2) || !strncmp(t, "\\e", 2)) { if (escaped) { popup_an_error("%s: Double \\E", action_name(HexString_action)); cancel_if_idle_command(); return; } if (!IN_3270) { popup_an_error("%s: \\E in ANSI mode", action_name(HexString_action)); cancel_if_idle_command(); return; } escaped = True; } else { popup_an_error("%s: Illegal character in specification", action_name(HexString_action)); cancel_if_idle_command(); return; } t += 2; } if (escaped) { popup_an_error("%s: Nothing follows \\E", action_name(HexString_action)); cancel_if_idle_command(); return; } #if defined(X3270_ANSI) /*[*/ /* Allocate a temporary buffer. */ if (!IN_3270 && nbytes) tbuf = xbuf = (unsigned char *)Malloc(nbytes); #endif /*]*/ /* Pump it in. */ t = s; escaped = False; while (*t) { if (isxdigit(*t) && isxdigit(*(t + 1))) { unsigned c; c = (FROM_HEX(*t) * 16) + FROM_HEX(*(t + 1)); if (IN_3270) key_Character(c, escaped, True, NULL); #if defined(X3270_ANSI) /*[*/ else *tbuf++ = (unsigned char)c; #endif /*]*/ escaped = False; } else if (!strncmp(t, "\\E", 2) || !strncmp(t, "\\e", 2)) { escaped = True; } t += 2; } #if defined(X3270_ANSI) /*[*/ if (!IN_3270 && nbytes) { net_hexansi_out(xbuf, nbytes); Free(xbuf); } #endif /*]*/ } void ignore_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(ignore_action, event, params, num_params); reset_idle_timer(); } #if defined(X3270_FT) /*[*/ /* * Set up the cursor and input field for command input. * Returns the length of the input field, or 0 if there is no field * to set up. */ int kybd_prime(void) { int baddr; register unsigned char fa; int len = 0; /* * No point in trying if the screen isn't formatted, the keyboard * is locked, or we aren't in 3270 mode. */ if (!formatted || kybdlock || !IN_3270) return 0; fa = get_field_attribute(cursor_addr); if (ea_buf[cursor_addr].fa || FA_IS_PROTECTED(fa)) { /* * The cursor is not in an unprotected field. Find the * next one. */ baddr = next_unprotected(cursor_addr); /* If there isn't any, give up. */ if (!baddr) return 0; /* Move the cursor there. */ } else { /* Already in an unprotected field. Find its start. */ baddr = cursor_addr; while (!ea_buf[baddr].fa) { DEC_BA(baddr); } INC_BA(baddr); } /* Move the cursor to the beginning of the field. */ cursor_move(baddr); /* Erase it. */ while (!ea_buf[baddr].fa) { ctlr_add(baddr, 0, 0); len++; INC_BA(baddr); } /* Return the field length. */ return len; } #endif /*]*/ /* * Translate a keysym name to a keysym, including APL and extended * characters. */ static KeySym MyStringToKeysym(char *s, enum keytype *keytypep, ucs4_t *ucs4) { KeySym k; int consumed; enum me_fail error; /* No UCS-4 yet. */ *ucs4 = 0L; #if defined(X3270_APL) /*[*/ /* Look for my contrived APL symbols. */ if (!strncmp(s, "apl_", 4)) { int is_ge; k = APLStringToKeysym(s, &is_ge); if (is_ge) *keytypep = KT_GE; else *keytypep = KT_STD; return k; } else #endif /*]*/ { /* Look for a standard X11 keysym. */ k = StringToKeysym(s); *keytypep = KT_STD; if (k != NoSymbol) return k; } /* Look for "euro". */ if (!strcasecmp(s, "euro")) { *ucs4 = 0x20ac; return NoSymbol; } /* Look for U+nnnn of 0xXXXX. */ if (!strncasecmp(s, "U+", 2) || !strncasecmp(s, "0x", 2)) { *ucs4 = strtoul(s + 2, NULL, 16); return NoSymbol; } /* Look for a valid local multibyte character. */ *ucs4 = multibyte_to_unicode(s, strlen(s), &consumed, &error); if ((size_t)consumed != strlen(s)) *ucs4 = 0; return NoSymbol; } #if defined(X3270_DISPLAY) /*[*/ /* * X-dependent code starts here. */ /* * Translate a keymap (from an XQueryKeymap or a KeymapNotify event) into * a bitmap of Shift, Meta or Alt keys pressed. */ #define key_is_down(kc, bitmap) (kc && ((bitmap)[(kc)/8] & (1<<((kc)%8)))) int state_from_keymap(char keymap[32]) { static Boolean initted = False; static KeyCode kc_Shift_L, kc_Shift_R; static KeyCode kc_Meta_L, kc_Meta_R; static KeyCode kc_Alt_L, kc_Alt_R; int pseudo_state = 0; if (!initted) { kc_Shift_L = XKeysymToKeycode(display, XK_Shift_L); kc_Shift_R = XKeysymToKeycode(display, XK_Shift_R); kc_Meta_L = XKeysymToKeycode(display, XK_Meta_L); kc_Meta_R = XKeysymToKeycode(display, XK_Meta_R); kc_Alt_L = XKeysymToKeycode(display, XK_Alt_L); kc_Alt_R = XKeysymToKeycode(display, XK_Alt_R); initted = True; } if (key_is_down(kc_Shift_L, keymap) || key_is_down(kc_Shift_R, keymap)) pseudo_state |= ShiftKeyDown; if (key_is_down(kc_Meta_L, keymap) || key_is_down(kc_Meta_R, keymap)) pseudo_state |= MetaKeyDown; if (key_is_down(kc_Alt_L, keymap) || key_is_down(kc_Alt_R, keymap)) pseudo_state |= AltKeyDown; return pseudo_state; } #undef key_is_down /* * Process shift keyboard events. The code has to look for the raw Shift keys, * rather than using the handy "state" field in the event structure. This is * because the event state is the state _before_ the key was pressed or * released. This isn't enough information to distinguish between "left * shift released" and "left shift released, right shift still held down" * events, for example. * * This function is also called as part of Focus event processing. */ void PA_Shift_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { char keys[32]; #if defined(INTERNAL_ACTION_DEBUG) /*[*/ action_debug(PA_Shift_action, event, params, num_params); #endif /*]*/ XQueryKeymap(display, keys); shift_event(state_from_keymap(keys)); } #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ static Boolean build_composites(void) { char *c, *c0, *c1; char *ln; char ksname[3][64]; char junk[2]; KeySym k[3]; enum keytype a[3]; int i; struct composite *cp; if (appres.compose_map == CN) { popup_an_error("%s: No %s defined", action_name(Compose_action), ResComposeMap); return False; } c0 = get_fresource("%s.%s", ResComposeMap, appres.compose_map); if (c0 == CN) { popup_an_error("%s: Cannot find %s \"%s\"", action_name(Compose_action), ResComposeMap, appres.compose_map); return False; } c1 = c = NewString(c0); /* will be modified by strtok */ while ((ln = strtok(c, "\n"))) { Boolean okay = True; c = NULL; if (sscanf(ln, " %63[^+ \t] + %63[^= \t] =%63s%1s", ksname[0], ksname[1], ksname[2], junk) != 3) { popup_an_error("%s: Invalid syntax: %s", action_name(Compose_action), ln); continue; } for (i = 0; i < 3; i++) { ucs4_t ucs4; k[i] = MyStringToKeysym(ksname[i], &a[i], &ucs4); if (k[i] == NoSymbol) { /* For now, ignore UCS4. XXX: Fix this. */ popup_an_error("%s: Invalid KeySym: \"%s\"", action_name(Compose_action), ksname[i]); okay = False; break; } } if (!okay) continue; composites = (struct composite *) Realloc((char *)composites, (n_composites + 1) * sizeof(struct composite)); cp = composites + n_composites; cp->k1.keysym = k[0]; cp->k1.keytype = a[0]; cp->k2.keysym = k[1]; cp->k2.keytype = a[1]; cp->translation.keysym = k[2]; cp->translation.keytype = a[2]; n_composites++; } Free(c1); return True; } /* * Called by the toolkit when the "Compose" key is pressed. "Compose" is * implemented by pressing and releasing three keys: "Compose" and two * data keys. For example, "Compose" "s" "s" gives the German "ssharp" * character, and "Compose" "C", "," gives a capital "C" with a cedilla * (symbol Ccedilla). * * The mechanism breaks down a little when the user presses "Compose" and * then a non-data key. Oh well. */ void Compose_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Compose_action, event, params, num_params); if (check_usage(Compose_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (!composites && !build_composites()) return; if (composing == NONE) { composing = COMPOSE; status_compose(True, 0, KT_STD); } } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* * Called by the toolkit for any key without special actions. */ void Default_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { XKeyEvent *kevent = (XKeyEvent *)event; char buf[32]; KeySym ks; int ll; action_debug(Default_action, event, params, num_params); if (check_usage(Default_action, *num_params, 0, 0) < 0) return; switch (event->type) { case KeyPress: #if defined(X3270_DBCS) /*[*/ if (!xim_lookup((XKeyEvent *)event)) return; #endif /*]*/ ll = XLookupString(kevent, buf, 32, &ks, (XComposeStatus *) 0); buf[ll] = '\0'; if (ll > 1) { key_ACharacter(buf, KT_STD, IA_DEFAULT, NULL); return; } if (ll == 1) { /* Remap certain control characters. */ if (!IN_ANSI) switch (buf[0]) { case '\t': action_internal(Tab_action, IA_DEFAULT, CN, CN); break; case '\177': action_internal(Delete_action, IA_DEFAULT, CN, CN); break; case '\b': action_internal(Erase_action, IA_DEFAULT, CN, CN); break; case '\r': action_internal(Enter_action, IA_DEFAULT, CN, CN); break; case '\n': action_internal(Newline_action, IA_DEFAULT, CN, CN); break; default: key_ACharacter(buf, KT_STD, IA_DEFAULT, NULL); break; } else { key_ACharacter(buf, KT_STD, IA_DEFAULT, NULL); } return; } /* Pick some other reasonable defaults. */ switch (ks) { case XK_Up: action_internal(Up_action, IA_DEFAULT, CN, CN); break; case XK_Down: action_internal(Down_action, IA_DEFAULT, CN, CN); break; case XK_Left: action_internal(Left_action, IA_DEFAULT, CN, CN); break; case XK_Right: action_internal(Right_action, IA_DEFAULT, CN, CN); break; case XK_Insert: #if defined(XK_KP_Insert) /*[*/ case XK_KP_Insert: #endif /*]*/ action_internal(Insert_action, IA_DEFAULT, CN, CN); break; case XK_Delete: action_internal(Delete_action, IA_DEFAULT, CN, CN); break; case XK_Home: action_internal(Home_action, IA_DEFAULT, CN, CN); break; case XK_Tab: action_internal(Tab_action, IA_DEFAULT, CN, CN); break; #if defined(XK_ISO_Left_Tab) /*[*/ case XK_ISO_Left_Tab: action_internal(BackTab_action, IA_DEFAULT, CN, CN); break; #endif /*]*/ case XK_Clear: action_internal(Clear_action, IA_DEFAULT, CN, CN); break; case XK_Sys_Req: action_internal(SysReq_action, IA_DEFAULT, CN, CN); break; #if defined(XK_EuroSign) /*[*/ case XK_EuroSign: action_internal(Key_action, IA_DEFAULT, "currency", CN); break; #endif /*]*/ #if defined(XK_3270_Duplicate) /*[*/ /* Funky 3270 keysyms. */ case XK_3270_Duplicate: action_internal(Dup_action, IA_DEFAULT, CN, CN); break; case XK_3270_FieldMark: action_internal(FieldMark_action, IA_DEFAULT, CN, CN); break; case XK_3270_Right2: action_internal(Right2_action, IA_DEFAULT, CN, CN); break; case XK_3270_Left2: action_internal(Left2_action, IA_DEFAULT, CN, CN); break; case XK_3270_BackTab: action_internal(BackTab_action, IA_DEFAULT, CN, CN); break; case XK_3270_EraseEOF: action_internal(EraseEOF_action, IA_DEFAULT, CN, CN); break; case XK_3270_EraseInput: action_internal(EraseInput_action, IA_DEFAULT, CN, CN); break; case XK_3270_Reset: action_internal(Reset_action, IA_DEFAULT, CN, CN); break; case XK_3270_PA1: action_internal(PA_action, IA_DEFAULT, "1", CN); break; case XK_3270_PA2: action_internal(PA_action, IA_DEFAULT, "2", CN); break; case XK_3270_PA3: action_internal(PA_action, IA_DEFAULT, "3", CN); break; case XK_3270_Attn: action_internal(Attn_action, IA_DEFAULT, CN, CN); break; case XK_3270_AltCursor: action_internal(AltCursor_action, IA_DEFAULT, CN, CN); break; case XK_3270_CursorSelect: action_internal(CursorSelect_action, IA_DEFAULT, CN, CN); break; case XK_3270_Enter: action_internal(Enter_action, IA_DEFAULT, CN, CN); break; #endif /*]*/ #if defined(X3270_APL) /*[*/ /* Funky APL keysyms. */ case XK_downcaret: action_internal(Key_action, IA_DEFAULT, "apl_downcaret", CN); break; case XK_upcaret: action_internal(Key_action, IA_DEFAULT, "apl_upcaret", CN); break; case XK_overbar: action_internal(Key_action, IA_DEFAULT, "apl_overbar", CN); break; case XK_downtack: action_internal(Key_action, IA_DEFAULT, "apl_downtack", CN); break; case XK_upshoe: action_internal(Key_action, IA_DEFAULT, "apl_upshoe", CN); break; case XK_downstile: action_internal(Key_action, IA_DEFAULT, "apl_downstile", CN); break; case XK_underbar: action_internal(Key_action, IA_DEFAULT, "apl_underbar", CN); break; case XK_jot: action_internal(Key_action, IA_DEFAULT, "apl_jot", CN); break; case XK_quad: action_internal(Key_action, IA_DEFAULT, "apl_quad", CN); break; case XK_uptack: action_internal(Key_action, IA_DEFAULT, "apl_uptack", CN); break; case XK_circle: action_internal(Key_action, IA_DEFAULT, "apl_circle", CN); break; case XK_upstile: action_internal(Key_action, IA_DEFAULT, "apl_upstile", CN); break; case XK_downshoe: action_internal(Key_action, IA_DEFAULT, "apl_downshoe", CN); break; case XK_rightshoe: action_internal(Key_action, IA_DEFAULT, "apl_rightshoe", CN); break; case XK_leftshoe: action_internal(Key_action, IA_DEFAULT, "apl_leftshoe", CN); break; case XK_lefttack: action_internal(Key_action, IA_DEFAULT, "apl_lefttack", CN); break; case XK_righttack: action_internal(Key_action, IA_DEFAULT, "apl_righttack", CN); break; #endif /*]*/ default: if (ks >= XK_F1 && ks <= XK_F24) { (void) sprintf(buf, "%ld", ks - XK_F1 + 1); action_internal(PF_action, IA_DEFAULT, buf, CN); } else { ucs4_t ucs4; ucs4 = keysym2ucs(ks); if (ucs4 != (ucs4_t)-1) { key_UCharacter(ucs4, KT_STD, IA_KEY, NULL); } else { trace_event( " %s: dropped (unknown keysym)\n", action_name(Default_action)); } } break; } break; case ButtonPress: case ButtonRelease: trace_event(" %s: dropped (no action configured)\n", action_name(Default_action)); break; default: trace_event(" %s: dropped (unknown event type)\n", action_name(Default_action)); break; } } /* * Set or clear a temporary keymap. * * TemporaryKeymap(x) toggle keymap "x" (add "x" to the keymap, or if * "x" was already added, remove it) * TemporaryKeymap() removes the previous keymap, if any * TemporaryKeymap(None) removes the previous keymap, if any */ void TemporaryKeymap_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(TemporaryKeymap_action, event, params, num_params); reset_idle_timer(); if (check_usage(TemporaryKeymap_action, *num_params, 0, 1) < 0) return; if (*num_params == 0 || !strcmp(params[0], "None")) { (void) temporary_keymap(CN); return; } if (temporary_keymap(params[0]) < 0) { popup_an_error("%s: Can't find %s %s", action_name(TemporaryKeymap_action), ResKeymap, params[0]); cancel_if_idle_command(); } } #endif /*]*/ ibm-3270-3.3.10ga4/s3270/telnet.c0000644000175000017500000023661011254565704015414 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, * GA 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC * nor their contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES AND * GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, * DON RUSSELL, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * telnet.c * This module initializes and manages a telnet socket to * the given IBM host. */ #include "globals.h" #if defined(_WIN32) /*[*/ #include #include #else /*][*/ #include #include #include #endif /*]*/ #define TELCMDS 1 #define TELOPTS 1 #include "arpa_telnet.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #if defined(HAVE_LIBSSL) /*[*/ #include #include #endif /*]*/ #include "tn3270e.h" #include "3270ds.h" #include "appres.h" #include "ansic.h" #include "ctlrc.h" #include "hostc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "proxyc.h" #include "resolverc.h" #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include "w3miscc.h" #include "xioc.h" #if !defined(TELOPT_NAWS) /*[*/ #define TELOPT_NAWS 31 #endif /*]*/ #if !defined(TELOPT_STARTTLS) /*[*/ #define TELOPT_STARTTLS 46 #endif /*]*/ #define TLS_FOLLOWS 1 #define BUFSZ 16384 #define TRACELINE 72 #define N_OPTS 256 /* Globals */ char *hostname = CN; time_t ns_time; int ns_brcvd; int ns_rrcvd; int ns_bsent; int ns_rsent; unsigned char *obuf; /* 3270 output buffer */ unsigned char *obptr = (unsigned char *) NULL; int linemode = 1; #if defined(LOCAL_PROCESS) /*[*/ Boolean local_process = False; #endif /*]*/ char *termtype; /* Externals */ extern struct timeval ds_ts; /* Statics */ static int sock = -1; /* active socket */ #if defined(_WIN32) /*[*/ static HANDLE sock_handle = NULL; #endif /*]*/ static unsigned char myopts[N_OPTS], hisopts[N_OPTS]; /* telnet option flags */ static unsigned char *ibuf = (unsigned char *) NULL; /* 3270 input buffer */ static unsigned char *ibptr; static int ibuf_size = 0; /* size of ibuf */ static unsigned char *obuf_base = (unsigned char *)NULL; static int obuf_size = 0; static unsigned char *netrbuf = (unsigned char *)NULL; /* network input buffer */ static unsigned char *sbbuf = (unsigned char *)NULL; /* telnet sub-option buffer */ static unsigned char *sbptr; static unsigned char telnet_state; static int syncing; #if !defined(_WIN32) /*[*/ static unsigned long output_id = 0L; #endif /*]*/ static char ttype_tmpval[13]; #if defined(X3270_TN3270E) /*[*/ static unsigned long e_funcs; /* negotiated TN3270E functions */ #define E_OPT(n) (1 << (n)) static unsigned short e_xmit_seq; /* transmit sequence number */ static int response_required; #endif /*]*/ #if defined(X3270_ANSI) /*[*/ static int ansi_data = 0; static unsigned char *lbuf = (unsigned char *)NULL; /* line-mode input buffer */ static unsigned char *lbptr; static int lnext = 0; static int backslashed = 0; static int t_valid = 0; static char vintr; static char vquit; static char verase; static char vkill; static char veof; static char vwerase; static char vrprnt; static char vlnext; #endif /*]*/ static int tn3270e_negotiated = 0; static enum { E_NONE, E_3270, E_NVT, E_SSCP } tn3270e_submode = E_NONE; static int tn3270e_bound = 0; static unsigned char *bind_image = NULL; static int bind_image_len = 0; static char *plu_name = NULL; static int maxru_sec = 0; static int maxru_pri = 0; static int bind_rd = 0; static int bind_cd = 0; static int bind_ra = 0; static int bind_ca = 0; static char **lus = (char **)NULL; static char **curr_lu = (char **)NULL; static char *try_lu = CN; static int proxy_type = 0; static char *proxy_host = CN; static char *proxy_portname = CN; static unsigned short proxy_port = 0; static int telnet_fsm(unsigned char c); static void net_rawout(unsigned const char *buf, int len); static void check_in3270(void); static void store3270in(unsigned char c); static void check_linemode(Boolean init); static int non_blocking(Boolean on); static void net_connected(void); #if defined(X3270_TN3270E) /*[*/ static int tn3270e_negotiate(void); #endif /*]*/ static int process_eor(void); #if defined(X3270_TN3270E) /*[*/ #if defined(X3270_TRACE) /*[*/ static const char *tn3270e_function_names(const unsigned char *, int); #endif /*]*/ static void tn3270e_subneg_send(unsigned char, unsigned long); static unsigned long tn3270e_fdecode(const unsigned char *, int); static void tn3270e_ack(void); static void tn3270e_nak(enum pds); #endif /*]*/ #if defined(X3270_ANSI) /*[*/ static void do_data(char c); static void do_intr(char c); static void do_quit(char c); static void do_cerase(char c); static void do_werase(char c); static void do_kill(char c); static void do_rprnt(char c); static void do_eof(char c); static void do_eol(char c); static void do_lnext(char c); static char parse_ctlchar(char *s); static void cooked_init(void); #endif /*]*/ #if defined(X3270_TRACE) /*[*/ static const char *cmd(int c); static const char *opt(unsigned char c); static const char *nnn(int c); #else /*][*/ #if defined(__GNUC__) /*[*/ #else /*][*/ #endif /*]*/ #define cmd(x) 0 #define opt(x) 0 #define nnn(x) 0 #endif /*]*/ /* telnet states */ #define TNS_DATA 0 /* receiving data */ #define TNS_IAC 1 /* got an IAC */ #define TNS_WILL 2 /* got an IAC WILL */ #define TNS_WONT 3 /* got an IAC WONT */ #define TNS_DO 4 /* got an IAC DO */ #define TNS_DONT 5 /* got an IAC DONT */ #define TNS_SB 6 /* got an IAC SB */ #define TNS_SB_IAC 7 /* got an IAC after an IAC SB */ /* telnet predefined messages */ static unsigned char do_opt[] = { IAC, DO, '_' }; static unsigned char dont_opt[] = { IAC, DONT, '_' }; static unsigned char will_opt[] = { IAC, WILL, '_' }; static unsigned char wont_opt[] = { IAC, WONT, '_' }; #if defined(X3270_TN3270E) /*[*/ static unsigned char functions_req[] = { IAC, SB, TELOPT_TN3270E, TN3270E_OP_FUNCTIONS }; #endif /*]*/ #if defined(X3270_TRACE) /*[*/ static const char *telquals[2] = { "IS", "SEND" }; #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ #if defined(X3270_TRACE) /*[*/ static const char *reason_code[8] = { "CONN-PARTNER", "DEVICE-IN-USE", "INV-ASSOCIATE", "INV-NAME", "INV-DEVICE-TYPE", "TYPE-NAME-ERROR", "UNKNOWN-ERROR", "UNSUPPORTED-REQ" }; #define rsn(n) (((n) <= TN3270E_REASON_UNSUPPORTED_REQ) ? \ reason_code[(n)] : "??") #endif /*]*/ static const char *function_name[5] = { "BIND-IMAGE", "DATA-STREAM-CTL", "RESPONSES", "SCS-CTL-CODES", "SYSREQ" }; #define fnn(n) (((n) <= TN3270E_FUNC_SYSREQ) ? \ function_name[(n)] : "??") #if defined(X3270_TRACE) /*[*/ static const char *data_type[9] = { "3270-DATA", "SCS-DATA", "RESPONSE", "BIND-IMAGE", "UNBIND", "NVT-DATA", "REQUEST", "SSCP-LU-DATA", "PRINT-EOJ" }; #define e_dt(n) (((n) <= TN3270E_DT_PRINT_EOJ) ? \ data_type[(n)] : "??") static const char *req_flag[1] = { " ERR-COND-CLEARED" }; #define e_rq(fn, n) (((fn) == TN3270E_DT_REQUEST) ? \ (((n) <= TN3270E_RQF_ERR_COND_CLEARED) ? \ req_flag[(n)] : " ??") : "") static const char *hrsp_flag[3] = { "NO-RESPONSE", "ERROR-RESPONSE", "ALWAYS-RESPONSE" }; #define e_hrsp(n) (((n) <= TN3270E_RSF_ALWAYS_RESPONSE) ? \ hrsp_flag[(n)] : "??") static const char *trsp_flag[2] = { "POSITIVE-RESPONSE", "NEGATIVE-RESPONSE" }; #define e_trsp(n) (((n) <= TN3270E_RSF_NEGATIVE_RESPONSE) ? \ trsp_flag[(n)] : "??") #define e_rsp(fn, n) (((fn) == TN3270E_DT_RESPONSE) ? e_trsp(n) : e_hrsp(n)) #endif /*]*/ #endif /*]*/ #if defined(C3270) && defined(C3270_80_132) /*[*/ #define XMIT_ROWS ((appres.altscreen != CN)? MODEL_2_ROWS: maxROWS) #define XMIT_COLS ((appres.altscreen != CN)? MODEL_2_COLS: maxCOLS) #else /*][*/ #define XMIT_ROWS maxROWS #define XMIT_COLS maxCOLS #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ Boolean secure_connection = False; static SSL_CTX *ssl_ctx; static SSL *ssl_con; static Boolean need_tls_follows = False; static void ssl_init(void); #if OPENSSL_VERSION_NUMBER >= 0x00907000L /*[*/ #define INFO_CONST const #else /*][*/ #define INFO_CONST #endif /*]*/ static void client_info_callback(INFO_CONST SSL *s, int where, int ret); static void continue_tls(unsigned char *sbbuf, int len); #endif /*]*/ #if !defined(_WIN32) /*[*/ static void output_possible(void); #endif /*]*/ #if defined(_WIN32) /*[*/ #define socket_errno() WSAGetLastError() #define SE_EWOULDBLOCK WSAEWOULDBLOCK #define SE_ECONNRESET WSAECONNRESET #define SE_EINTR WSAEINTR #define SE_EAGAIN WSAEINPROGRESS #define SE_EPIPE WSAECONNABORTED #define SE_EINPROGRESS WSAEINPROGRESS #define SOCK_CLOSE(s) closesocket(s) #define SOCK_IOCTL(s, f, v) ioctlsocket(s, f, (DWORD *)v) #else /*][*/ #define socket_errno() errno #define SE_EWOULDBLOCK EWOULDBLOCK #define SE_ECONNRESET ECONNRESET #define SE_EINTR EINTR #define SE_EAGAIN EAGAIN #define SE_EPIPE EPIPE #if defined(EINPROGRESS) /*[*/ #define SE_EINPROGRESS EINPROGRESS #endif /*]*/ #define SOCK_CLOSE(s) close(s) #define SOCK_IOCTL ioctl #endif /*]*/ #define NUM_HA 4 static union { struct sockaddr sa; struct sockaddr_in sin; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sin6; #endif /*]*/ } haddr[4]; static socklen_t ha_len[NUM_HA] = { sizeof(haddr[0]), sizeof(haddr[0]), sizeof(haddr[0]), sizeof(haddr[0]) }; static int num_ha = 0; static int ha_ix = 0; #if defined(_WIN32) /*[*/ void popup_a_sockerr(char *fmt, ...) { va_list args; char buffer[4096]; va_start(args, fmt); vsprintf(buffer, fmt, args); va_end(args); popup_an_error("%s: %s", buffer, win32_strerror(socket_errno())); } #else /*][*/ void popup_a_sockerr(char *fmt, ...) { va_list args; char buffer[4096]; va_start(args, fmt); vsprintf(buffer, fmt, args); va_end(args); popup_an_errno(errno, "%s", buffer); } #endif /*]*/ /* Connect to one of the addresses in haddr[]. */ static int connect_to(int ix, Boolean noisy, Boolean *pending) { int on = 1; char hn[256]; char pn[256]; char errmsg[1024]; #if defined(OMTU) /*[*/ int mtu = OMTU; #endif /*]*/ # define close_fail { (void) SOCK_CLOSE(sock); sock = -1; return -1; } /* create the socket */ if ((sock = socket(haddr[ix].sa.sa_family, SOCK_STREAM, 0)) == -1) { popup_a_sockerr("socket"); return -1; } /* set options for inline out-of-band data and keepalives */ if (setsockopt(sock, SOL_SOCKET, SO_OOBINLINE, (char *)&on, sizeof(on)) < 0) { popup_a_sockerr("setsockopt(SO_OOBINLINE)"); close_fail; } if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (char *)&on, sizeof(on)) < 0) { popup_a_sockerr("setsockopt(SO_KEEPALIVE)"); close_fail; } #if defined(OMTU) /*[*/ if (setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (char *)&mtu, sizeof(mtu)) < 0) { popup_a_sockerr("setsockopt(SO_SNDBUF)"); close_fail; } #endif /*]*/ /* set the socket to be non-delaying */ #if defined(_WIN32) /*[*/ if (non_blocking(False) < 0) #else /*][*/ if (non_blocking(True) < 0) #endif /*]*/ close_fail; #if !defined(_WIN32) /*[*/ /* don't share the socket with our children */ (void) fcntl(sock, F_SETFD, 1); #endif /*]*/ /* init ssl */ #if defined(HAVE_LIBSSL) /*[*/ if (ssl_host) ssl_init(); #endif /*]*/ if (numeric_host_and_port(&haddr[ix].sa, ha_len[ix], hn, sizeof(hn), pn, sizeof(pn), errmsg, sizeof(errmsg)) == 0) { trace_dsn("Trying %s, port %s...\n", hn, pn); #if defined(C3270) /*[*/ printf("Trying %s, port %s...\n", hn, pn); fflush(stdout); #endif /*]*/ } /* connect */ if (connect(sock, &haddr[ix].sa, ha_len[ix]) == -1) { if (socket_errno() == SE_EWOULDBLOCK #if defined(SE_EINPROGRESS) /*[*/ || socket_errno() == SE_EINPROGRESS #endif /*]*/ ) { trace_dsn("Connection pending.\n"); *pending = True; #if !defined(_WIN32) /*[*/ output_id = AddOutput(sock, output_possible); #endif /*]*/ } else { if (noisy) popup_a_sockerr("Connect to %s, port %d", hostname, current_port); close_fail; } } else { if (non_blocking(False) < 0) close_fail; net_connected(); } /* all done */ #if defined(_WIN32) /*[*/ if (sock_handle == NULL) { char ename[256]; sprintf(ename, "wc3270-%d", getpid()); sock_handle = CreateEvent(NULL, TRUE, FALSE, ename); if (sock_handle == NULL) { fprintf(stderr, "Cannot create socket handle: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } } if (WSAEventSelect(sock, sock_handle, FD_READ | FD_CONNECT | FD_CLOSE) != 0) { fprintf(stderr, "WSAEventSelect failed: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } return (int)sock_handle; #else /*][*/ return sock; #endif /*]*/ } /* * net_connect * Establish a telnet socket to the given host passed as an argument. * Called only once and is responsible for setting up the telnet * variables. Returns the file descriptor of the connected socket. */ int net_connect(const char *host, char *portname, Boolean ls, Boolean *resolving, Boolean *pending) { struct servent *sp; struct hostent *hp; char passthru_haddr[8]; int passthru_len = 0; unsigned short passthru_port = 0; char errmsg[1024]; int s; if (netrbuf == (unsigned char *)NULL) netrbuf = (unsigned char *)Malloc(BUFSZ); #if defined(X3270_ANSI) /*[*/ if (!t_valid) { vintr = parse_ctlchar(appres.intr); vquit = parse_ctlchar(appres.quit); verase = parse_ctlchar(appres.erase); vkill = parse_ctlchar(appres.kill); veof = parse_ctlchar(appres.eof); vwerase = parse_ctlchar(appres.werase); vrprnt = parse_ctlchar(appres.rprnt); vlnext = parse_ctlchar(appres.lnext); t_valid = 1; } #endif /*]*/ *resolving = False; *pending = False; Replace(hostname, NewString(host)); /* set up temporary termtype */ if (appres.termname == CN) { if (std_ds_host) { (void) sprintf(ttype_tmpval, "IBM-327%c-%d", appres.m3279 ? '9' : '8', model_num); termtype = ttype_tmpval; } else { termtype = full_model_name; } } /* get the passthru host and port number */ if (passthru_host) { const char *hn; hn = getenv("INTERNET_HOST"); if (hn == CN) hn = "internet-gateway"; hp = gethostbyname(hn); if (hp == (struct hostent *) 0) { popup_an_error("Unknown passthru host: %s", hn); return -1; } (void) memmove(passthru_haddr, hp->h_addr, hp->h_length); passthru_len = hp->h_length; sp = getservbyname("telnet-passthru","tcp"); if (sp != (struct servent *)NULL) passthru_port = sp->s_port; else passthru_port = htons(3514); } else if (appres.proxy != CN && !proxy_type) { proxy_type = proxy_setup(&proxy_host, &proxy_portname); if (proxy_type > 0) { unsigned long lport; char *ptr; struct servent *sp; lport = strtoul(portname, &ptr, 0); if (ptr == portname || *ptr != '\0' || lport == 0L || lport & ~0xffff) { if (!(sp = getservbyname(portname, "tcp"))) { popup_an_error("Unknown port number " "or service: %s", portname); return -1; } current_port = ntohs(sp->s_port); } else current_port = (unsigned short)lport; } if (proxy_type < 0) return -1; } /* fill in the socket address of the given host */ (void) memset((char *) &haddr, 0, sizeof(haddr)); if (passthru_host) { /* * XXX: We don't try multiple addresses for the passthru * host. */ haddr[0].sin.sin_family = AF_INET; (void) memmove(&haddr[0].sin.sin_addr, passthru_haddr, passthru_len); haddr[0].sin.sin_port = passthru_port; ha_len[0] = sizeof(struct sockaddr_in); num_ha = 1; ha_ix = 0; } else if (proxy_type > 0) { /* * XXX: We don't try multiple addresses for a proxy * host. */ if (resolve_host_and_port(proxy_host, proxy_portname, 0, &proxy_port, &haddr[0].sa, &ha_len[0], errmsg, sizeof(errmsg), NULL) < 0) { popup_an_error("%s", errmsg); return -1; } num_ha = 1; ha_ix = 0; } else { #if defined(LOCAL_PROCESS) /*[*/ if (ls) { local_process = True; } else { #endif /*]*/ int i; int last = False; #if defined(LOCAL_PROCESS) /*[*/ local_process = False; #endif /*]*/ num_ha = 0; for (i = 0; i < NUM_HA && !last; i++) { if (resolve_host_and_port(host, portname, i, ¤t_port, &haddr[i].sa, &ha_len[i], errmsg, sizeof(errmsg), &last) < 0) { popup_an_error("%s", errmsg); return -1; } num_ha++; } ha_ix = 0; #if defined(LOCAL_PROCESS) /*[*/ } #endif /*]*/ } #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { int amaster; struct winsize w; w.ws_row = XMIT_ROWS; w.ws_col = XMIT_COLS; w.ws_xpixel = 0; w.ws_ypixel = 0; switch (forkpty(&amaster, NULL, NULL, &w)) { case -1: /* failed */ popup_an_errno(errno, "forkpty"); close_fail; case 0: /* child */ putenv("TERM=xterm"); if (strchr(host, ' ') != CN) { (void) execlp("/bin/sh", "sh", "-c", host, NULL); } else { char *arg1; arg1 = strrchr(host, '/'); (void) execlp(host, (arg1 == CN) ? host : arg1 + 1, NULL); } perror(host); _exit(1); break; default: /* parent */ sock = amaster; #if !defined(_WIN32) /*[*/ (void) fcntl(sock, F_SETFD, 1); #endif /*]*/ net_connected(); host_in3270(CONNECTED_ANSI); break; } return sock; } #endif /*]*/ /* Try each of the haddrs. */ while (ha_ix < num_ha) { if ((s = connect_to(ha_ix, (ha_ix == num_ha - 1), pending)) >= 0) return s; ha_ix++; } /* Ran out. */ return -1; } #undef close_fail /* Set up the LU list. */ static void setup_lus(void) { char *lu; char *comma; int n_lus = 1; int i; connected_lu = CN; connected_type = CN; if (!luname[0]) { Replace(lus, NULL); curr_lu = (char **)NULL; try_lu = CN; return; } /* * Count the commas in the LU name. That plus one is the * number of LUs to try. */ lu = luname; while ((comma = strchr(lu, ',')) != CN) { n_lus++; lu++; } /* * Allocate enough memory to construct an argv[] array for * the LUs. */ Replace(lus, (char **)Malloc((n_lus+1) * sizeof(char *) + strlen(luname) + 1)); /* Copy each LU into the array. */ lu = (char *)(lus + n_lus + 1); (void) strcpy(lu, luname); i = 0; do { lus[i++] = lu; comma = strchr(lu, ','); if (comma != CN) { *comma = '\0'; lu = comma + 1; } } while (comma != CN); lus[i] = CN; curr_lu = lus; try_lu = *curr_lu; } static void net_connected(void) { if (proxy_type > 0) { /* Negotiate with the proxy. */ trace_dsn("Connected to proxy server %s, port %u.\n", proxy_host, proxy_port); if (proxy_negotiate(proxy_type, sock, hostname, current_port) < 0) { host_disconnect(True); return; } } trace_dsn("Connected to %s, port %u%s.\n", hostname, current_port, ssl_host? " via SSL": ""); #if defined(HAVE_LIBSSL) /*[*/ /* Set up SSL. */ if (ssl_host && !secure_connection) { if (SSL_set_fd(ssl_con, sock) != 1) { trace_dsn("Can't set fd!\n"); } if (SSL_connect(ssl_con) != 1) { /* * No need to trace the error, it was already * displayed. */ host_disconnect(True); return; } secure_connection = True; trace_dsn("TLS/SSL tunneled connection complete. " "Connection is now secure.\n"); /* Tell everyone else again. */ host_connected(); } #endif /*]*/ /* set up telnet options */ (void) memset((char *) myopts, 0, sizeof(myopts)); (void) memset((char *) hisopts, 0, sizeof(hisopts)); #if defined(X3270_TN3270E) /*[*/ e_funcs = E_OPT(TN3270E_FUNC_BIND_IMAGE) | E_OPT(TN3270E_FUNC_RESPONSES) | E_OPT(TN3270E_FUNC_SYSREQ); e_xmit_seq = 0; response_required = TN3270E_RSF_NO_RESPONSE; #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ need_tls_follows = False; #endif /*]*/ telnet_state = TNS_DATA; ibptr = ibuf; /* clear statistics and flags */ (void) time(&ns_time); ns_brcvd = 0; ns_rrcvd = 0; ns_bsent = 0; ns_rsent = 0; syncing = 0; tn3270e_negotiated = 0; tn3270e_submode = E_NONE; tn3270e_bound = 0; setup_lus(); check_linemode(True); /* write out the passthru hostname and port nubmer */ if (passthru_host) { char *buf; buf = Malloc(strlen(hostname) + 32); (void) sprintf(buf, "%s %d\r\n", hostname, current_port); (void) send(sock, buf, strlen(buf), 0); Free(buf); } } /* * connection_complete * The connection appears to be complete (output is possible or input * appeared ready but recv() returned EWOULDBLOCK). Complete the * connection-completion processing. */ static void connection_complete(void) { #if !defined(_WIN32) /*[*/ if (non_blocking(False) < 0) { host_disconnect(True); return; } #endif /*]*/ host_connected(); net_connected(); } #if !defined(_WIN32) /*[*/ /* * output_possible * Output is possible on the socket. Used only when a connection is * pending, to determine that the connection is complete. */ static void output_possible(void) { if (HALF_CONNECTED) { connection_complete(); } if (output_id) { RemoveInput(output_id); output_id = 0L; } } #endif /*]*/ /* * net_disconnect * Shut down the socket. */ void net_disconnect(void) { #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { SSL_shutdown(ssl_con); SSL_free(ssl_con); ssl_con = NULL; } secure_connection = False; #endif /*]*/ if (CONNECTED) (void) shutdown(sock, 2); (void) SOCK_CLOSE(sock); sock = -1; trace_dsn("SENT disconnect\n"); /* We're not connected to an LU any more. */ status_lu(CN); #if !defined(_WIN32) /*[*/ /* We have no more interest in output buffer space. */ if (output_id != 0L) { RemoveInput(output_id); output_id = 0L; } #endif /*]*/ } /* * net_input * Called by the toolkit whenever there is input available on the * socket. Reads the data, processes the special telnet commands * and calls process_ds to process the 3270 data stream. */ void net_input(void) { register unsigned char *cp; int nr; #if defined(HAVE_LIBSSL) /*[*/ Boolean ignore_ssl = False; #endif /*]*/ #if defined(_WIN32) /*[*/ for (;;) #endif /*]*/ { if (sock < 0) return; #if defined(_WIN32) /*[*/ if (HALF_CONNECTED) { if (connect(sock, &haddr[ha_ix].sa, sizeof(haddr[0])) < 0) { int err = GetLastError(); switch (err) { case WSAEISCONN: connection_complete(); /* and go get data...? */ break; case WSAEALREADY: case WSAEWOULDBLOCK: case WSAEINVAL: return; default: fprintf(stderr, "second connect() failed: %s\n", win32_strerror(err)); x3270_exit(1); } } } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ ansi_data = 0; #endif /*]*/ #if defined(_WIN32) /*[*/ (void) ResetEvent(sock_handle); #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { /* * OpenSSL does not like getting refused connections * when it hasn't done any I/O yet. So peek ahead to * see if it's worth getting it involved at all. */ if (HALF_CONNECTED && (nr = recv(sock, (char *) netrbuf, 1, MSG_PEEK)) <= 0) ignore_ssl = True; else nr = SSL_read(ssl_con, (char *) netrbuf, BUFSZ); } else #else /*][*/ #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ if (local_process) nr = read(sock, (char *) netrbuf, BUFSZ); else #endif /*]*/ nr = recv(sock, (char *) netrbuf, BUFSZ, 0); if (nr < 0) { if (socket_errno() == SE_EWOULDBLOCK) { return; } #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL && !ignore_ssl) { unsigned long e; char err_buf[120]; e = ERR_get_error(); if (e != 0) (void) ERR_error_string(e, err_buf); else strcpy(err_buf, "unknown error"); trace_dsn("RCVD SSL_read error %ld (%s)\n", e, err_buf); popup_an_error("SSL_read:\n%s", err_buf); host_disconnect(True); return; } #endif /*]*/ if (HALF_CONNECTED && socket_errno() == SE_EAGAIN) { connection_complete(); return; } #if defined(LOCAL_PROCESS) /*[*/ if (errno == EIO && local_process) { trace_dsn("RCVD local process disconnect\n"); host_disconnect(False); return; } #endif /*]*/ trace_dsn("RCVD socket error %d (%s)\n", socket_errno(), #if !defined(_WIN32) /*[*/ strerror(errno) #else /*][*/ win32_strerror(GetLastError()) #endif /*]*/ ); if (HALF_CONNECTED) { if (ha_ix == num_ha - 1) { popup_a_sockerr("Connect to %s, " "port %d", hostname, current_port); } else { Boolean dummy; int s; net_disconnect(); #if defined(HAVE_LIBSSL) /*[*/ if (ssl_host) ssl_init(); #endif /*]*/ while (++ha_ix < num_ha) { s = connect_to(ha_ix, (ha_ix == num_ha - 1), &dummy); if (s >= 0) { host_newfd(s); return; } } } } else if (socket_errno() != SE_ECONNRESET) { popup_a_sockerr("Socket read"); } host_disconnect(True); return; } else if (nr == 0) { /* Host disconnected. */ trace_dsn("RCVD disconnect\n"); host_disconnect(False); return; } /* Process the data. */ if (HALF_CONNECTED) { if (non_blocking(False) < 0) { host_disconnect(True); return; } host_connected(); net_connected(); } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', netrbuf, nr); #endif /*]*/ ns_brcvd += nr; for (cp = netrbuf; cp < (netrbuf + nr); cp++) { #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { /* More to do here, probably. */ if (IN_NEITHER) { /* now can assume ANSI mode */ host_in3270(CONNECTED_ANSI); hisopts[TELOPT_ECHO] = 1; check_linemode(False); kybdlock_clr(KL_AWAITING_FIRST, "telnet_fsm"); status_reset(); ps_process(); } ansi_process((unsigned int) *cp); } else { #endif /*]*/ if (telnet_fsm(*cp)) { (void) ctlr_dbcs_postprocess(); host_disconnect(True); return; } #if defined(LOCAL_PROCESS) /*[*/ } #endif /*]*/ } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { (void) ctlr_dbcs_postprocess(); } if (ansi_data) { trace_dsn("\n"); ansi_data = 0; } #endif /*]*/ #if defined(X3270_TRACE) /*[*/ /* See if it's time to roll over the trace file. */ trace_rollover_check(); #endif /*]*/ } } /* * set16 * Put a 16-bit value in a buffer. * Returns the number of bytes required. */ static int set16(char *buf, int n) { char *b0 = buf; n %= 256 * 256; if ((n / 256) == IAC) *(unsigned char *)buf++ = IAC; *buf++ = (n / 256); n %= 256; if (n == IAC) *(unsigned char *)buf++ = IAC; *buf++ = n; return buf - b0; } /* * send_naws * Send a Telnet window size sub-option negotation. */ static void send_naws(void) { char naws_msg[14]; int naws_len = 0; (void) sprintf(naws_msg, "%c%c%c", IAC, SB, TELOPT_NAWS); naws_len += 3; naws_len += set16(naws_msg + naws_len, XMIT_COLS); naws_len += set16(naws_msg + naws_len, XMIT_ROWS); (void) sprintf(naws_msg + naws_len, "%c%c", IAC, SE); naws_len += 2; net_rawout((unsigned char *)naws_msg, naws_len); trace_dsn("SENT %s NAWS %d %d %s\n", cmd(SB), XMIT_COLS, XMIT_ROWS, cmd(SE)); } /* Advance 'try_lu' to the next desired LU name. */ static void next_lu(void) { if (curr_lu != (char **)NULL && (try_lu = *++curr_lu) == CN) curr_lu = (char **)NULL; } /* * telnet_fsm * Telnet finite-state machine. * Returns 0 for okay, -1 for errors. */ static int telnet_fsm(unsigned char c) { #if defined(X3270_ANSI) /*[*/ char *see_chr; int sl; #endif /*]*/ switch (telnet_state) { case TNS_DATA: /* normal data processing */ if (c == IAC) { /* got a telnet command */ telnet_state = TNS_IAC; #if defined(X3270_ANSI) /*[*/ if (ansi_data) { trace_dsn("\n"); ansi_data = 0; } #endif /*]*/ break; } if (IN_NEITHER) { /* now can assume ANSI mode */ #if defined(X3270_ANSI)/*[*/ if (linemode) cooked_init(); #endif /*]*/ host_in3270(CONNECTED_ANSI); kybdlock_clr(KL_AWAITING_FIRST, "telnet_fsm"); status_reset(); ps_process(); } if (IN_ANSI && !IN_E) { #if defined(X3270_ANSI) /*[*/ if (!ansi_data) { trace_dsn("<.. "); ansi_data = 4; } see_chr = ctl_see((int) c); ansi_data += (sl = strlen(see_chr)); if (ansi_data >= TRACELINE) { trace_dsn(" ...\n... "); ansi_data = 4 + sl; } trace_dsn("%s", see_chr); if (!syncing) { if (linemode && appres.onlcr && c == '\n') ansi_process((unsigned int) '\r'); ansi_process((unsigned int) c); sms_store(c); } #endif /*]*/ } else { store3270in(c); } break; case TNS_IAC: /* process a telnet command */ if (c != EOR && c != IAC) { trace_dsn("RCVD %s ", cmd(c)); } switch (c) { case IAC: /* escaped IAC, insert it */ if (IN_ANSI && !IN_E) { #if defined(X3270_ANSI) /*[*/ if (!ansi_data) { trace_dsn("<.. "); ansi_data = 4; } see_chr = ctl_see((int) c); ansi_data += (sl = strlen(see_chr)); if (ansi_data >= TRACELINE) { trace_dsn(" ...\n ..."); ansi_data = 4 + sl; } trace_dsn("%s", see_chr); ansi_process((unsigned int) c); sms_store(c); #endif /*]*/ } else store3270in(c); telnet_state = TNS_DATA; break; case EOR: /* eor, process accumulated input */ if (IN_3270 || (IN_E && tn3270e_negotiated)) { ns_rrcvd++; if (process_eor()) return -1; } else Warning("EOR received when not in 3270 mode, " "ignored."); trace_dsn("RCVD EOR\n"); ibptr = ibuf; telnet_state = TNS_DATA; break; case WILL: telnet_state = TNS_WILL; break; case WONT: telnet_state = TNS_WONT; break; case DO: telnet_state = TNS_DO; break; case DONT: telnet_state = TNS_DONT; break; case SB: telnet_state = TNS_SB; if (sbbuf == (unsigned char *)NULL) sbbuf = (unsigned char *)Malloc(1024); sbptr = sbbuf; break; case DM: trace_dsn("\n"); if (syncing) { syncing = 0; x_except_on(sock); } telnet_state = TNS_DATA; break; case GA: case NOP: trace_dsn("\n"); telnet_state = TNS_DATA; break; default: trace_dsn("???\n"); telnet_state = TNS_DATA; break; } break; case TNS_WILL: /* telnet WILL DO OPTION command */ trace_dsn("%s\n", opt(c)); switch (c) { case TELOPT_SGA: case TELOPT_BINARY: case TELOPT_EOR: case TELOPT_TTYPE: case TELOPT_ECHO: #if defined(X3270_TN3270E) /*[*/ case TELOPT_TN3270E: #endif /*]*/ if (c != TELOPT_TN3270E || !non_tn3270e_host) { if (!hisopts[c]) { hisopts[c] = 1; do_opt[2] = c; net_rawout(do_opt, sizeof(do_opt)); trace_dsn("SENT %s %s\n", cmd(DO), opt(c)); /* * For UTS, volunteer to do EOR when * they do. */ if (c == TELOPT_EOR && !myopts[c]) { myopts[c] = 1; will_opt[2] = c; net_rawout(will_opt, sizeof(will_opt)); trace_dsn("SENT %s %s\n", cmd(WILL), opt(c)); } check_in3270(); check_linemode(False); } break; } default: dont_opt[2] = c; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(c)); break; } telnet_state = TNS_DATA; break; case TNS_WONT: /* telnet WONT DO OPTION command */ trace_dsn("%s\n", opt(c)); if (hisopts[c]) { hisopts[c] = 0; dont_opt[2] = c; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(c)); check_in3270(); check_linemode(False); } telnet_state = TNS_DATA; break; case TNS_DO: /* telnet PLEASE DO OPTION command */ trace_dsn("%s\n", opt(c)); switch (c) { case TELOPT_BINARY: case TELOPT_EOR: case TELOPT_TTYPE: case TELOPT_SGA: case TELOPT_NAWS: case TELOPT_TM: #if defined(X3270_TN3270E) /*[*/ case TELOPT_TN3270E: #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ case TELOPT_STARTTLS: #endif /*]*/ if (c == TELOPT_TN3270E && non_tn3270e_host) goto wont; if (c == TELOPT_TM && !appres.bsd_tm) goto wont; if (!myopts[c]) { if (c != TELOPT_TM) myopts[c] = 1; will_opt[2] = c; net_rawout(will_opt, sizeof(will_opt)); trace_dsn("SENT %s %s\n", cmd(WILL), opt(c)); check_in3270(); check_linemode(False); } if (c == TELOPT_NAWS) send_naws(); #if defined(HAVE_LIBSSL) /*[*/ if (c == TELOPT_STARTTLS) { static unsigned char follows_msg[] = { IAC, SB, TELOPT_STARTTLS, TLS_FOLLOWS, IAC, SE }; /* * Send IAC SB STARTTLS FOLLOWS IAC SE * to announce that what follows is TLS. */ net_rawout(follows_msg, sizeof(follows_msg)); trace_dsn("SENT %s %s FOLLOWS %s\n", cmd(SB), opt(TELOPT_STARTTLS), cmd(SE)); need_tls_follows = True; } #endif /*]*/ break; default: wont: wont_opt[2] = c; net_rawout(wont_opt, sizeof(wont_opt)); trace_dsn("SENT %s %s\n", cmd(WONT), opt(c)); break; } telnet_state = TNS_DATA; break; case TNS_DONT: /* telnet PLEASE DON'T DO OPTION command */ trace_dsn("%s\n", opt(c)); if (myopts[c]) { myopts[c] = 0; wont_opt[2] = c; net_rawout(wont_opt, sizeof(wont_opt)); trace_dsn("SENT %s %s\n", cmd(WONT), opt(c)); check_in3270(); check_linemode(False); } telnet_state = TNS_DATA; break; case TNS_SB: /* telnet sub-option string command */ if (c == IAC) telnet_state = TNS_SB_IAC; else *sbptr++ = c; break; case TNS_SB_IAC: /* telnet sub-option string command */ *sbptr++ = c; if (c == SE) { telnet_state = TNS_DATA; if (sbbuf[0] == TELOPT_TTYPE && sbbuf[1] == TELQUAL_SEND) { int tt_len, tb_len; char *tt_out; trace_dsn("%s %s\n", opt(sbbuf[0]), telquals[sbbuf[1]]); if (lus != (char **)NULL && try_lu == CN) { /* None of the LUs worked. */ popup_an_error("Cannot connect to " "specified LU"); return -1; } tt_len = strlen(termtype); if (try_lu != CN && *try_lu) { tt_len += strlen(try_lu) + 1; connected_lu = try_lu; } else connected_lu = CN; status_lu(connected_lu); tb_len = 4 + tt_len + 2; tt_out = Malloc(tb_len + 1); (void) sprintf(tt_out, "%c%c%c%c%s%s%s%c%c", IAC, SB, TELOPT_TTYPE, TELQUAL_IS, termtype, (try_lu != CN && *try_lu) ? "@" : "", (try_lu != CN && *try_lu) ? try_lu : "", IAC, SE); net_rawout((unsigned char *)tt_out, tb_len); trace_dsn("SENT %s %s %s %.*s %s\n", cmd(SB), opt(TELOPT_TTYPE), telquals[TELQUAL_IS], tt_len, tt_out + 4, cmd(SE)); Free(tt_out); /* Advance to the next LU name. */ next_lu(); } #if defined(X3270_TN3270E) /*[*/ else if (myopts[TELOPT_TN3270E] && sbbuf[0] == TELOPT_TN3270E) { if (tn3270e_negotiate()) return -1; } #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ else if (need_tls_follows && myopts[TELOPT_STARTTLS] && sbbuf[0] == TELOPT_STARTTLS) { continue_tls(sbbuf, sbptr - sbbuf); } #endif /*]*/ } else { telnet_state = TNS_SB; } break; } return 0; } #if defined(X3270_TN3270E) /*[*/ /* Send a TN3270E terminal type request. */ static void tn3270e_request(void) { int tt_len, tb_len; char *tt_out; char *t; tt_len = strlen(termtype); if (try_lu != CN && *try_lu) tt_len += strlen(try_lu) + 1; tb_len = 5 + tt_len + 2; tt_out = Malloc(tb_len + 1); t = tt_out; t += sprintf(tt_out, "%c%c%c%c%c%s", IAC, SB, TELOPT_TN3270E, TN3270E_OP_DEVICE_TYPE, TN3270E_OP_REQUEST, termtype); /* Convert 3279 to 3278, per the RFC. */ if (tt_out[12] == '9') tt_out[12] = '8'; if (try_lu != CN && *try_lu) t += sprintf(t, "%c%s", TN3270E_OP_CONNECT, try_lu); (void) sprintf(t, "%c%c", IAC, SE); net_rawout((unsigned char *)tt_out, tb_len); trace_dsn("SENT %s %s DEVICE-TYPE REQUEST %.*s%s%s " "%s\n", cmd(SB), opt(TELOPT_TN3270E), (int)strlen(termtype), tt_out + 5, (try_lu != CN && *try_lu) ? " CONNECT " : "", (try_lu != CN && *try_lu) ? try_lu : "", cmd(SE)); Free(tt_out); } /* * Back off of TN3270E. */ static void backoff_tn3270e(const char *why) { trace_dsn("Aborting TN3270E: %s\n", why); /* Tell the host 'no'. */ wont_opt[2] = TELOPT_TN3270E; net_rawout(wont_opt, sizeof(wont_opt)); trace_dsn("SENT %s %s\n", cmd(WONT), opt(TELOPT_TN3270E)); /* Restore the LU list; we may need to run it again in TN3270 mode. */ setup_lus(); /* Reset our internal state. */ myopts[TELOPT_TN3270E] = 0; check_in3270(); } /* * Negotiation of TN3270E options. * Returns 0 if okay, -1 if we have to give up altogether. */ static int tn3270e_negotiate(void) { #define LU_MAX 32 static char reported_lu[LU_MAX+1]; static char reported_type[LU_MAX+1]; int sblen; unsigned long e_rcvd; /* Find out how long the subnegotiation buffer is. */ for (sblen = 0; ; sblen++) { if (sbbuf[sblen] == SE) break; } trace_dsn("TN3270E "); switch (sbbuf[1]) { case TN3270E_OP_SEND: if (sbbuf[2] == TN3270E_OP_DEVICE_TYPE) { /* Host wants us to send our device type. */ trace_dsn("SEND DEVICE-TYPE SE\n"); tn3270e_request(); } else { trace_dsn("SEND ??%u SE\n", sbbuf[2]); } break; case TN3270E_OP_DEVICE_TYPE: /* Device type negotiation. */ trace_dsn("DEVICE-TYPE "); switch (sbbuf[2]) { case TN3270E_OP_IS: { int tnlen, snlen; /* Device type success. */ /* Isolate the terminal type and session. */ tnlen = 0; while (sbbuf[3+tnlen] != SE && sbbuf[3+tnlen] != TN3270E_OP_CONNECT) tnlen++; snlen = 0; if (sbbuf[3+tnlen] == TN3270E_OP_CONNECT) { while(sbbuf[3+tnlen+1+snlen] != SE) snlen++; } trace_dsn("IS %.*s CONNECT %.*s SE\n", tnlen, &sbbuf[3], snlen, &sbbuf[3+tnlen+1]); /* Remember the LU. */ if (tnlen) { if (tnlen > LU_MAX) tnlen = LU_MAX; (void)strncpy(reported_type, (char *)&sbbuf[3], tnlen); reported_type[tnlen] = '\0'; connected_type = reported_type; } if (snlen) { if (snlen > LU_MAX) snlen = LU_MAX; (void)strncpy(reported_lu, (char *)&sbbuf[3+tnlen+1], snlen); reported_lu[snlen] = '\0'; connected_lu = reported_lu; status_lu(connected_lu); } /* Tell them what we can do. */ tn3270e_subneg_send(TN3270E_OP_REQUEST, e_funcs); break; } case TN3270E_OP_REJECT: /* Device type failure. */ trace_dsn("REJECT REASON %s SE\n", rsn(sbbuf[4])); if (sbbuf[4] == TN3270E_REASON_INV_DEVICE_TYPE || sbbuf[4] == TN3270E_REASON_UNSUPPORTED_REQ) { backoff_tn3270e("Host rejected device type or " "request type"); break; } next_lu(); if (try_lu != CN) { /* Try the next LU. */ tn3270e_request(); } else if (lus != (char **)NULL) { /* No more LUs to try. Give up. */ backoff_tn3270e("Host rejected resource(s)"); } else { backoff_tn3270e("Device type rejected"); } break; default: trace_dsn("??%u SE\n", sbbuf[2]); break; } break; case TN3270E_OP_FUNCTIONS: /* Functions negotiation. */ trace_dsn("FUNCTIONS "); switch (sbbuf[2]) { case TN3270E_OP_REQUEST: /* Host is telling us what functions they want. */ trace_dsn("REQUEST %s SE\n", tn3270e_function_names(sbbuf+3, sblen-3)); e_rcvd = tn3270e_fdecode(sbbuf+3, sblen-3); if ((e_rcvd == e_funcs) || (e_funcs & ~e_rcvd)) { /* They want what we want, or less. Done. */ e_funcs = e_rcvd; tn3270e_subneg_send(TN3270E_OP_IS, e_funcs); tn3270e_negotiated = 1; trace_dsn("TN3270E option negotiation " "complete.\n"); check_in3270(); } else { /* * They want us to do something we can't. * Request the common subset. */ e_funcs &= e_rcvd; tn3270e_subneg_send(TN3270E_OP_REQUEST, e_funcs); } break; case TN3270E_OP_IS: /* They accept our last request, or a subset thereof. */ trace_dsn("IS %s SE\n", tn3270e_function_names(sbbuf+3, sblen-3)); e_rcvd = tn3270e_fdecode(sbbuf+3, sblen-3); if (e_rcvd != e_funcs) { if (e_funcs & ~e_rcvd) { /* * They've removed something. This is * technically illegal, but we can * live with it. */ e_funcs = e_rcvd; } else { /* * They've added something. Abandon * TN3270E, they're brain dead. */ backoff_tn3270e("Host illegally added " "function(s)"); break; } } tn3270e_negotiated = 1; trace_dsn("TN3270E option negotiation complete.\n"); check_in3270(); break; default: trace_dsn("??%u SE\n", sbbuf[2]); break; } break; default: trace_dsn("??%u SE\n", sbbuf[1]); } /* Good enough for now. */ return 0; } #if defined(X3270_TRACE) /*[*/ /* Expand a string of TN3270E function codes into text. */ static const char * tn3270e_function_names(const unsigned char *buf, int len) { int i; static char text_buf[1024]; char *s = text_buf; if (!len) return("(null)"); for (i = 0; i < len; i++) { s += sprintf(s, "%s%s", (s == text_buf) ? "" : " ", fnn(buf[i])); } return text_buf; } #endif /*]*/ /* Expand the current TN3270E function codes into text. */ const char * tn3270e_current_opts(void) { int i; static char text_buf[1024]; char *s = text_buf; if (!e_funcs || !IN_E) return CN; for (i = 0; i < 32; i++) { if (e_funcs & E_OPT(i)) s += sprintf(s, "%s%s", (s == text_buf) ? "" : " ", fnn(i)); } return text_buf; } /* Transmit a TN3270E FUNCTIONS REQUEST or FUNCTIONS IS message. */ static void tn3270e_subneg_send(unsigned char op, unsigned long funcs) { unsigned char proto_buf[7 + 32]; int proto_len; int i; /* Construct the buffers. */ (void) memcpy(proto_buf, functions_req, 4); proto_buf[4] = op; proto_len = 5; for (i = 0; i < 32; i++) { if (funcs & E_OPT(i)) proto_buf[proto_len++] = i; } /* Complete and send out the protocol message. */ proto_buf[proto_len++] = IAC; proto_buf[proto_len++] = SE; net_rawout(proto_buf, proto_len); /* Complete and send out the trace text. */ trace_dsn("SENT %s %s FUNCTIONS %s %s %s\n", cmd(SB), opt(TELOPT_TN3270E), (op == TN3270E_OP_REQUEST)? "REQUEST": "IS", tn3270e_function_names(proto_buf + 5, proto_len - 7), cmd(SE)); } /* Translate a string of TN3270E functions into a bit-map. */ static unsigned long tn3270e_fdecode(const unsigned char *buf, int len) { unsigned long r = 0L; int i; /* Note that this code silently ignores options >= 32. */ for (i = 0; i < len; i++) { if (buf[i] < 32) r |= E_OPT(buf[i]); } return r; } #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ static int maxru(unsigned char c) { if (!(c & 0x80)) return 0; return ((c >> 4) & 0x0f) * (1 << (c & 0xf)); } static void process_bind(unsigned char *buf, int buflen) { int namelen, i; int dest_ix = 0; /* Save the raw image. */ if (bind_image != NULL) Free(bind_image); bind_image = (unsigned char *)Malloc(buflen); memcpy(bind_image, buf, buflen); bind_image_len = buflen; /* Clean up the derived state. */ if (plu_name == CN) plu_name = Malloc(mb_max_len(BIND_PLU_NAME_MAX)); (void) memset(plu_name, '\0', mb_max_len(BIND_PLU_NAME_MAX)); maxru_sec = 0; maxru_pri = 0; bind_rd = 0; bind_cd = 0; bind_ra = 0; bind_ca = 0; /* Make sure it's a BIND. */ if (buflen < 1 || buf[0] != BIND_RU) { return; } /* Extract the maximum RUs. */ if (buflen > BIND_OFF_MAXRU_SEC) maxru_sec = maxru(buf[BIND_OFF_MAXRU_SEC]); if (buflen > BIND_OFF_MAXRU_PRI) maxru_pri = maxru(buf[BIND_OFF_MAXRU_PRI]); /* Extract the screen size. */ if (buflen > BIND_OFF_SSIZE) { int bind_ss = buf[BIND_OFF_SSIZE]; switch (bind_ss) { case 0x00: case 0x02: bind_rd = MODEL_2_ROWS; bind_cd = MODEL_2_COLS; bind_ra = MODEL_2_ROWS; bind_ca = MODEL_2_COLS; break; case 0x03: bind_rd = MODEL_2_ROWS; bind_cd = MODEL_2_COLS; bind_ra = maxROWS; bind_ca = maxCOLS; break; case 0x7e: bind_rd = buf[BIND_OFF_RD]; bind_cd = buf[BIND_OFF_CD]; bind_ra = buf[BIND_OFF_RD]; bind_ca = buf[BIND_OFF_CD]; break; case 0x7f: bind_rd = buf[BIND_OFF_RD]; bind_cd = buf[BIND_OFF_CD]; bind_ra = buf[BIND_OFF_RA]; bind_ca = buf[BIND_OFF_CA]; break; default: break; } } /* Validate and implement the screen size. */ if (bind_rd > maxROWS || bind_cd > maxCOLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Default Rows-Cols %ux%u > Maximum %ux%u", bind_rd, bind_cd, maxROWS, maxCOLS); } else if (bind_rd < MODEL_2_ROWS || bind_cd < MODEL_2_COLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Default Rows-Cols %ux%u < Minimum %ux%u", bind_rd, bind_cd, MODEL_2_ROWS, MODEL_2_COLS); } else if (bind_ra > maxROWS || bind_ca > maxCOLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Alternate Rows-Cols %ux%u > Maximum %ux%u", bind_ra, bind_ca, maxROWS, maxCOLS); } else if (bind_ra < MODEL_2_ROWS || bind_ca < MODEL_2_COLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Alternate Rows-Cols %ux%u < Minimum %ux%u", bind_ra, bind_ca, MODEL_2_ROWS, MODEL_2_COLS); } else { defROWS = bind_rd; defCOLS = bind_cd; altROWS = bind_ra; altCOLS = bind_ca; } ctlr_erase(False); /* Extract the PLU name. */ if (buflen > BIND_OFF_PLU_NAME_LEN) { namelen = buf[BIND_OFF_PLU_NAME_LEN]; if (namelen > BIND_PLU_NAME_MAX) namelen = BIND_PLU_NAME_MAX; if ((namelen > 0) && (buflen > BIND_OFF_PLU_NAME + namelen)) { for (i = 0; i < namelen; i++) { int nx; nx = ebcdic_to_multibyte( buf[BIND_OFF_PLU_NAME + i], plu_name + dest_ix, mb_max_len(1)); if (nx > 1) dest_ix += nx - 1; } } } } #endif /*]*/ static int process_eor(void) { if (syncing || !(ibptr - ibuf)) return(0); #if defined(X3270_TN3270E) /*[*/ if (IN_E) { tn3270e_header *h = (tn3270e_header *)ibuf; unsigned char *s; enum pds rv; trace_dsn("RCVD TN3270E(%s%s %s %u)\n", e_dt(h->data_type), e_rq(h->data_type, h->request_flag), e_rsp(h->data_type, h->response_flag), h->seq_number[0] << 8 | h->seq_number[1]); switch (h->data_type) { case TN3270E_DT_3270_DATA: if ((e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE)) && !tn3270e_bound) return 0; tn3270e_submode = E_3270; check_in3270(); response_required = h->response_flag; rv = process_ds(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); if (rv < 0 && response_required != TN3270E_RSF_NO_RESPONSE) tn3270e_nak(rv); else if (rv == PDS_OKAY_NO_OUTPUT && response_required == TN3270E_RSF_ALWAYS_RESPONSE) tn3270e_ack(); response_required = TN3270E_RSF_NO_RESPONSE; return 0; case TN3270E_DT_BIND_IMAGE: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; process_bind(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); trace_ds("< BIND PLU-name '%s' " "MaxSec-RU %d MaxPri-RU %d " "Rows-Cols Default %dx%d Alternate %dx%d\n", plu_name, maxru_sec, maxru_pri, bind_rd, bind_cd, bind_ra, bind_ca); tn3270e_bound = 1; check_in3270(); return 0; case TN3270E_DT_UNBIND: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; tn3270e_bound = 0; /* * Undo any screen-sizing effects from a previous BIND. */ defROWS = MODEL_2_ROWS; defCOLS = MODEL_2_COLS; altROWS = maxROWS; altCOLS = maxCOLS; ctlr_erase(False); if (tn3270e_submode == E_3270) tn3270e_submode = E_NONE; check_in3270(); return 0; case TN3270E_DT_NVT_DATA: /* In tn3270e NVT mode */ tn3270e_submode = E_NVT; check_in3270(); for (s = ibuf; s < ibptr; s++) { ansi_process(*s++); } return 0; case TN3270E_DT_SSCP_LU_DATA: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; tn3270e_submode = E_SSCP; check_in3270(); ctlr_write_sscp_lu(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); return 0; default: /* Should do something more extraordinary here. */ return 0; } } else #endif /*]*/ { (void) process_ds(ibuf, ibptr - ibuf); } return 0; } /* * net_exception * Called when there is an exceptional condition on the socket. */ void net_exception(void) { #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { trace_dsn("RCVD exception\n"); } else #endif /*[*/ { trace_dsn("RCVD urgent data indication\n"); if (!syncing) { syncing = 1; x_except_off(); } } } /* * Flavors of Network Output: * * 3270 mode * net_output send a 3270 record * * ANSI mode; call each other in turn * net_sendc net_cookout for 1 byte * net_sends net_cookout for a null-terminated string * net_cookout send user data with cooked-mode processing, ANSI mode * net_cookedout send user data, ANSI mode, already cooked * net_rawout send telnet protocol data, ANSI mode * */ /* * net_rawout * Send out raw telnet data. We assume that there will always be enough * space to buffer what we want to transmit, so we don't handle EAGAIN or * EWOULDBLOCK. */ static void net_rawout(unsigned const char *buf, int len) { int nw; #if defined(X3270_TRACE) /*[*/ trace_netdata('>', buf, len); #endif /*]*/ while (len) { #if defined(OMTU) /*[*/ int n2w = len; int pause = 0; if (n2w > OMTU) { n2w = OMTU; pause = 1; } #else # define n2w len #endif #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) nw = SSL_write(ssl_con, (const char *) buf, n2w); else #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ if (local_process) nw = write(sock, (const char *) buf, n2w); else #endif /*]*/ nw = send(sock, (const char *) buf, n2w, 0); if (nw < 0) { #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { unsigned long e; char err_buf[120]; e = ERR_get_error(); (void) ERR_error_string(e, err_buf); trace_dsn("RCVD SSL_write error %ld (%s)\n", e, err_buf); popup_an_error("SSL_write:\n%s", err_buf); host_disconnect(False); return; } #endif /*]*/ trace_dsn("RCVD socket error %d (%s)\n", socket_errno(), #if !defined(_WIN32) /*[*/ strerror(errno) #else /*][*/ win32_strerror(GetLastError()) #endif /*]*/ ); if (socket_errno() == SE_EPIPE || socket_errno() == SE_ECONNRESET) { host_disconnect(False); return; } else if (socket_errno() == SE_EINTR) { goto bot; } else { popup_a_sockerr("Socket write"); host_disconnect(True); return; } } ns_bsent += nw; len -= nw; buf += nw; bot: #if defined(OMTU) /*[*/ if (pause) sleep(1); #endif /*]*/ ; } } #if defined(X3270_ANSI) /*[*/ /* * net_hexansi_out * Send uncontrolled user data to the host in ANSI mode, performing IAC * and CR quoting as necessary. */ void net_hexansi_out(unsigned char *buf, int len) { unsigned char *tbuf; unsigned char *xbuf; if (!len) return; #if defined(X3270_TRACE) /*[*/ /* Trace the data. */ if (toggled(DS_TRACE)) { int i; trace_dsn(">"); for (i = 0; i < len; i++) trace_dsn(" %s", ctl_see((int) *(buf+i))); trace_dsn("\n"); } #endif /*]*/ /* Expand it. */ tbuf = xbuf = (unsigned char *)Malloc(2*len); while (len) { unsigned char c = *buf++; *tbuf++ = c; len--; if (c == IAC) *tbuf++ = IAC; else if (c == '\r' && (!len || *buf != '\n')) *tbuf++ = '\0'; } /* Send it to the host. */ net_rawout(xbuf, tbuf - xbuf); Free(xbuf); } /* * net_cookedout * Send user data out in ANSI mode, without cooked-mode processing. */ static void net_cookedout(const char *buf, int len) { #if defined(X3270_TRACE) /*[*/ if (toggled(DS_TRACE)) { int i; trace_dsn(">"); for (i = 0; i < len; i++) trace_dsn(" %s", ctl_see((int) *(buf+i))); trace_dsn("\n"); } #endif /*]*/ net_rawout((unsigned const char *) buf, len); } /* * net_cookout * Send output in ANSI mode, including cooked-mode processing if * appropriate. */ static void net_cookout(const char *buf, int len) { if (!IN_ANSI || (kybdlock & KL_AWAITING_FIRST)) return; if (linemode) { register int i; char c; for (i = 0; i < len; i++) { c = buf[i]; /* Input conversions. */ if (!lnext && c == '\r' && appres.icrnl) c = '\n'; else if (!lnext && c == '\n' && appres.inlcr) c = '\r'; /* Backslashes. */ if (c == '\\' && !backslashed) backslashed = 1; else backslashed = 0; /* Control chars. */ if (c == '\n') do_eol(c); else if (c == vintr) do_intr(c); else if (c == vquit) do_quit(c); else if (c == verase) do_cerase(c); else if (c == vkill) do_kill(c); else if (c == vwerase) do_werase(c); else if (c == vrprnt) do_rprnt(c); else if (c == veof) do_eof(c); else if (c == vlnext) do_lnext(c); else if (c == 0x08 || c == 0x7f) /* Yes, a hack. */ do_cerase(c); else do_data(c); } return; } else net_cookedout(buf, len); } /* * Cooked mode input processing. */ static void cooked_init(void) { if (lbuf == (unsigned char *)NULL) lbuf = (unsigned char *)Malloc(BUFSZ); lbptr = lbuf; lnext = 0; backslashed = 0; } static void ansi_process_s(const char *data) { while (*data) ansi_process((unsigned int) *data++); } static void forward_data(void) { net_cookedout((char *) lbuf, lbptr - lbuf); cooked_init(); } static void do_data(char c) { if (lbptr+1 < lbuf + BUFSZ) { *lbptr++ = c; if (c == '\r') *lbptr++ = '\0'; if (c == '\t') ansi_process((unsigned int) c); else ansi_process_s(ctl_see((int) c)); } else ansi_process_s("\007"); lnext = 0; backslashed = 0; } static void do_intr(char c) { if (lnext) { do_data(c); return; } ansi_process_s(ctl_see((int) c)); cooked_init(); net_interrupt(); } static void do_quit(char c) { if (lnext) { do_data(c); return; } ansi_process_s(ctl_see((int) c)); cooked_init(); net_break(); } static void do_cerase(char c) { int len; if (backslashed) { lbptr--; ansi_process_s("\b"); do_data(c); return; } if (lnext) { do_data(c); return; } if (lbptr > lbuf) { len = strlen(ctl_see((int) *--lbptr)); while (len--) ansi_process_s("\b \b"); } } static void do_werase(char c) { int any = 0; int len; if (lnext) { do_data(c); return; } while (lbptr > lbuf) { char ch; ch = *--lbptr; if (ch == ' ' || ch == '\t') { if (any) { ++lbptr; break; } } else any = 1; len = strlen(ctl_see((int) ch)); while (len--) ansi_process_s("\b \b"); } } static void do_kill(char c) { int i, len; if (backslashed) { lbptr--; ansi_process_s("\b"); do_data(c); return; } if (lnext) { do_data(c); return; } while (lbptr > lbuf) { len = strlen(ctl_see((int) *--lbptr)); for (i = 0; i < len; i++) ansi_process_s("\b \b"); } } static void do_rprnt(char c) { unsigned char *p; if (lnext) { do_data(c); return; } ansi_process_s(ctl_see((int) c)); ansi_process_s("\r\n"); for (p = lbuf; p < lbptr; p++) ansi_process_s(ctl_see((int) *p)); } static void do_eof(char c) { if (backslashed) { lbptr--; ansi_process_s("\b"); do_data(c); return; } if (lnext) { do_data(c); return; } do_data(c); forward_data(); } static void do_eol(char c) { if (lnext) { do_data(c); return; } if (lbptr+2 >= lbuf + BUFSZ) { ansi_process_s("\007"); return; } *lbptr++ = '\r'; *lbptr++ = '\n'; ansi_process_s("\r\n"); forward_data(); } static void do_lnext(char c) { if (lnext) { do_data(c); return; } lnext = 1; ansi_process_s("^\b"); } #endif /*]*/ /* * check_in3270 * Check for switches between NVT, SSCP-LU and 3270 modes. */ static void check_in3270(void) { enum cstate new_cstate = NOT_CONNECTED; #if defined(X3270_TRACE) /*[*/ static const char *state_name[] = { "unconnected", "resolving", "pending", "initial connection", "TN3270 NVT", "TN3270 3270", "TN3270E", "TN3270E NVT", "TN3270E SSCP-LU", "TN3270E 3270" }; #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ if (myopts[TELOPT_TN3270E]) { if (!tn3270e_negotiated) new_cstate = CONNECTED_INITIAL_E; else switch (tn3270e_submode) { case E_NONE: new_cstate = CONNECTED_INITIAL_E; break; case E_NVT: new_cstate = CONNECTED_NVT; break; case E_3270: new_cstate = CONNECTED_TN3270E; break; case E_SSCP: new_cstate = CONNECTED_SSCP; break; } } else #endif /*]*/ if (myopts[TELOPT_BINARY] && myopts[TELOPT_EOR] && myopts[TELOPT_TTYPE] && hisopts[TELOPT_BINARY] && hisopts[TELOPT_EOR]) { new_cstate = CONNECTED_3270; } else if (cstate == CONNECTED_INITIAL) { /* Nothing has happened, yet. */ return; } else { new_cstate = CONNECTED_INITIAL; } if (new_cstate != cstate) { #if defined(X3270_TN3270E) /*[*/ int was_in_e = IN_E; #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ /* * If we've now switched between non-TN3270E mode and * TN3270E mode, reset the LU list so we can try again * in the new mode. */ if (lus != (char **)NULL && was_in_e != IN_E) { curr_lu = lus; try_lu = *curr_lu; } #endif /*]*/ /* Allocate the initial 3270 input buffer. */ if (new_cstate >= CONNECTED_INITIAL && !ibuf_size) { ibuf = (unsigned char *)Malloc(BUFSIZ); ibuf_size = BUFSIZ; ibptr = ibuf; } #if defined(X3270_ANSI) /*[*/ /* Reinitialize line mode. */ if ((new_cstate == CONNECTED_ANSI && linemode) || new_cstate == CONNECTED_NVT) cooked_init(); #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ /* If we fell out of TN3270E, remove the state. */ if (!myopts[TELOPT_TN3270E]) { tn3270e_negotiated = 0; tn3270e_submode = E_NONE; tn3270e_bound = 0; } #endif /*]*/ trace_dsn("Now operating in %s mode.\n", state_name[new_cstate]); host_in3270(new_cstate); } } /* * store3270in * Store a character in the 3270 input buffer, checking for buffer * overflow and reallocating ibuf if necessary. */ static void store3270in(unsigned char c) { if (ibptr - ibuf >= ibuf_size) { ibuf_size += BUFSIZ; ibuf = (unsigned char *)Realloc((char *)ibuf, ibuf_size); ibptr = ibuf + ibuf_size - BUFSIZ; } *ibptr++ = c; } /* * space3270out * Ensure that more characters will fit in the 3270 output buffer. * Allocates the buffer in BUFSIZ chunks. * Allocates hidden space at the front of the buffer for TN3270E. */ void space3270out(int n) { unsigned nc = 0; /* amount of data currently in obuf */ unsigned more = 0; if (obuf_size) nc = obptr - obuf; while ((nc + n + EH_SIZE) > (obuf_size + more)) { more += BUFSIZ; } if (more) { obuf_size += more; obuf_base = (unsigned char *)Realloc((char *)obuf_base, obuf_size); obuf = obuf_base + EH_SIZE; obptr = obuf + nc; } } /* * check_linemode * Set the global variable 'linemode', which says whether we are in * character-by-character mode or line mode. */ static void check_linemode(Boolean init) { int wasline = linemode; /* * The next line is a deliberate kluge to effectively ignore the SGA * option. If the host will echo for us, we assume * character-at-a-time; otherwise we assume fully cooked by us. * * This allows certain IBM hosts which volunteer SGA but refuse * ECHO to operate more-or-less normally, at the expense of * implementing the (hopefully useless) "character-at-a-time, local * echo" mode. * * We still implement "switch to line mode" and "switch to character * mode" properly by asking for both SGA and ECHO to be off or on, but * we basically ignore the reply for SGA. */ linemode = !hisopts[TELOPT_ECHO] /* && !hisopts[TELOPT_SGA] */; if (init || linemode != wasline) { st_changed(ST_LINE_MODE, linemode); if (!init) { trace_dsn("Operating in %s mode.\n", linemode ? "line" : "character-at-a-time"); } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI && linemode) cooked_init(); #endif /*]*/ } } #if defined(X3270_TRACE) /*[*/ /* * nnn * Expands a number to a character string, for displaying unknown telnet * commands and options. */ static const char * nnn(int c) { static char buf[64]; (void) sprintf(buf, "%d", c); return buf; } /* * cmd * Expands a TELNET command into a character string. */ static const char * cmd(int c) { if (TELCMD_OK(c)) return TELCMD(c); else return nnn(c); } /* * opt * Expands a TELNET option into a character string. */ static const char * opt(unsigned char c) { if (TELOPT_OK(c)) return TELOPT(c); else if (c == TELOPT_TN3270E) return "TN3270E"; #if defined(HAVE_LIBSSL) /*[*/ else if (c == TELOPT_STARTTLS) return "START-TLS"; #endif /*]*/ else return nnn((int)c); } #define LINEDUMP_MAX 32 void trace_netdata(char direction, unsigned const char *buf, int len) { int offset; struct timeval ts; double tdiff; if (!toggled(DS_TRACE)) return; (void) gettimeofday(&ts, (struct timezone *)NULL); if (IN_3270) { tdiff = ((1.0e6 * (double)(ts.tv_sec - ds_ts.tv_sec)) + (double)(ts.tv_usec - ds_ts.tv_usec)) / 1.0e6; trace_dsn("%c +%gs\n", direction, tdiff); } ds_ts = ts; for (offset = 0; offset < len; offset++) { if (!(offset % LINEDUMP_MAX)) trace_dsn("%s%c 0x%-3x ", (offset ? "\n" : ""), direction, offset); trace_dsn("%02x", buf[offset]); } trace_dsn("\n"); } #endif /*]*/ /* * net_output * Send 3270 output over the network: * - Prepend TN3270E header * - Expand IAC to IAC IAC * - Append IAC EOR */ void net_output(void) { static unsigned char *xobuf = NULL; static int xobuf_len = 0; int need_resize = 0; unsigned char *nxoptr, *xoptr; #if defined(X3270_TN3270E) /*[*/ #define BSTART ((IN_TN3270E || IN_SSCP) ? obuf_base : obuf) #else /*][*/ #define BSTART obuf #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ /* Set the TN3720E header. */ if (IN_TN3270E || IN_SSCP) { tn3270e_header *h = (tn3270e_header *)obuf_base; /* Check for sending a TN3270E response. */ if (response_required == TN3270E_RSF_ALWAYS_RESPONSE) { tn3270e_ack(); response_required = TN3270E_RSF_NO_RESPONSE; } /* Set the outbound TN3270E header. */ h->data_type = IN_TN3270E ? TN3270E_DT_3270_DATA : TN3270E_DT_SSCP_LU_DATA; h->request_flag = 0; h->response_flag = 0; h->seq_number[0] = (e_xmit_seq >> 8) & 0xff; h->seq_number[1] = e_xmit_seq & 0xff; trace_dsn("SENT TN3270E(%s NO-RESPONSE %u)\n", IN_TN3270E ? "3270-DATA" : "SSCP-LU-DATA", e_xmit_seq); if (e_funcs & E_OPT(TN3270E_FUNC_RESPONSES)) e_xmit_seq = (e_xmit_seq + 1) & 0x7fff; } #endif /*]*/ /* Reallocate the expanded output buffer. */ while (xobuf_len < (obptr - BSTART + 1) * 2) { xobuf_len += BUFSZ; need_resize++; } if (need_resize) { Replace(xobuf, (unsigned char *)Malloc(xobuf_len)); } /* Copy and expand IACs. */ xoptr = xobuf; nxoptr = BSTART; while (nxoptr < obptr) { if ((*xoptr++ = *nxoptr++) == IAC) { *xoptr++ = IAC; } } /* Append the IAC EOR and transmit. */ *xoptr++ = IAC; *xoptr++ = EOR; net_rawout(xobuf, xoptr - xobuf); trace_dsn("SENT EOR\n"); ns_rsent++; #undef BSTART } #if defined(X3270_TN3270E) /*[*/ /* Send a TN3270E positive response to the server. */ static void tn3270e_ack(void) { unsigned char rsp_buf[10]; tn3270e_header *h_in = (tn3270e_header *)ibuf; int rsp_len = 0; rsp_len = 0; rsp_buf[rsp_len++] = TN3270E_DT_RESPONSE; /* data_type */ rsp_buf[rsp_len++] = 0; /* request_flag */ rsp_buf[rsp_len++] = TN3270E_RSF_POSITIVE_RESPONSE; /* response_flag */ rsp_buf[rsp_len++] = h_in->seq_number[0]; /* seq_number[0] */ if (h_in->seq_number[0] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = h_in->seq_number[1]; /* seq_number[1] */ if (h_in->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = TN3270E_POS_DEVICE_END; rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; trace_dsn("SENT TN3270E(RESPONSE POSITIVE-RESPONSE " "%u) DEVICE-END\n", h_in->seq_number[0] << 8 | h_in->seq_number[1]); net_rawout(rsp_buf, rsp_len); } /* Send a TN3270E negative response to the server. */ static void tn3270e_nak(enum pds rv) { unsigned char rsp_buf[10]; tn3270e_header *h_in = (tn3270e_header *)ibuf; int rsp_len = 0; char *neg = NULL; rsp_buf[rsp_len++] = TN3270E_DT_RESPONSE; /* data_type */ rsp_buf[rsp_len++] = 0; /* request_flag */ rsp_buf[rsp_len++] = TN3270E_RSF_NEGATIVE_RESPONSE; /* response_flag */ rsp_buf[rsp_len++] = h_in->seq_number[0]; /* seq_number[0] */ if (h_in->seq_number[0] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = h_in->seq_number[1]; /* seq_number[1] */ if (h_in->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; switch (rv) { default: case PDS_BAD_CMD: rsp_buf[rsp_len++] = TN3270E_NEG_COMMAND_REJECT; neg = "COMMAND-REJECT"; break; case PDS_BAD_ADDR: rsp_buf[rsp_len++] = TN3270E_NEG_OPERATION_CHECK; neg = "OPERATION-CHECK"; break; } rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; trace_dsn("SENT TN3270E(RESPONSE NEGATIVE-RESPONSE %u) %s\n", h_in->seq_number[0] << 8 | h_in->seq_number[1], neg); net_rawout(rsp_buf, rsp_len); } #if defined(X3270_TRACE) /*[*/ /* Add a dummy TN3270E header to the output buffer. */ Boolean net_add_dummy_tn3270e(void) { tn3270e_header *h; if (!IN_E || tn3270e_submode == E_NONE) return False; space3270out(EH_SIZE); h = (tn3270e_header *)obptr; switch (tn3270e_submode) { case E_NONE: break; case E_NVT: h->data_type = TN3270E_DT_NVT_DATA; break; case E_SSCP: h->data_type = TN3270E_DT_SSCP_LU_DATA; break; case E_3270: h->data_type = TN3270E_DT_3270_DATA; break; } h->request_flag = 0; h->response_flag = TN3270E_RSF_NO_RESPONSE; h->seq_number[0] = 0; h->seq_number[1] = 0; obptr += EH_SIZE; return True; } #endif /*]*/ #endif /*]*/ #if defined(X3270_TRACE) /*[*/ /* * Add IAC EOR to a buffer. */ void net_add_eor(unsigned char *buf, int len) { buf[len++] = IAC; buf[len++] = EOR; } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ /* * net_sendc * Send a character of user data over the network in ANSI mode. */ void net_sendc(char c) { if (c == '\r' && !linemode #if defined(LOCAL_PROCESS) /*[*/ && !local_process #endif /*]*/ ) { /* CR must be quoted */ net_cookout("\r\0", 2); } else { net_cookout(&c, 1); } } /* * net_sends * Send a null-terminated string of user data in ANSI mode. */ void net_sends(const char *s) { net_cookout(s, strlen(s)); } /* * net_send_erase * Sends the KILL character in ANSI mode. */ void net_send_erase(void) { net_cookout(&verase, 1); } /* * net_send_kill * Sends the KILL character in ANSI mode. */ void net_send_kill(void) { net_cookout(&vkill, 1); } /* * net_send_werase * Sends the WERASE character in ANSI mode. */ void net_send_werase(void) { net_cookout(&vwerase, 1); } #endif /*]*/ #if defined(X3270_MENUS) /*[*/ /* * External entry points to negotiate line or character mode. */ void net_linemode(void) { if (!CONNECTED) return; if (hisopts[TELOPT_ECHO]) { dont_opt[2] = TELOPT_ECHO; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(TELOPT_ECHO)); } if (hisopts[TELOPT_SGA]) { dont_opt[2] = TELOPT_SGA; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(TELOPT_SGA)); } } void net_charmode(void) { if (!CONNECTED) return; if (!hisopts[TELOPT_ECHO]) { do_opt[2] = TELOPT_ECHO; net_rawout(do_opt, sizeof(do_opt)); trace_dsn("SENT %s %s\n", cmd(DO), opt(TELOPT_ECHO)); } if (!hisopts[TELOPT_SGA]) { do_opt[2] = TELOPT_SGA; net_rawout(do_opt, sizeof(do_opt)); trace_dsn("SENT %s %s\n", cmd(DO), opt(TELOPT_SGA)); } } #endif /*]*/ /* * net_break * Send telnet break, which is used to implement 3270 ATTN. * */ void net_break(void) { static unsigned char buf[] = { IAC, BREAK }; /* I don't know if we should first send TELNET synch ? */ net_rawout(buf, sizeof(buf)); trace_dsn("SENT BREAK\n"); } /* * net_interrupt * Send telnet IP. * */ void net_interrupt(void) { static unsigned char buf[] = { IAC, IP }; /* I don't know if we should first send TELNET synch ? */ net_rawout(buf, sizeof(buf)); trace_dsn("SENT IP\n"); } /* * net_abort * Send telnet AO. * */ #if defined(X3270_TN3270E) /*[*/ void net_abort(void) { static unsigned char buf[] = { IAC, AO }; if (e_funcs & E_OPT(TN3270E_FUNC_SYSREQ)) { /* * I'm not sure yet what to do here. Should the host respond * to the AO by sending us SSCP-LU data (and putting us into * SSCP-LU mode), or should we put ourselves in it? * Time, and testers, will tell. */ switch (tn3270e_submode) { case E_NONE: case E_NVT: break; case E_SSCP: net_rawout(buf, sizeof(buf)); trace_dsn("SENT AO\n"); if (tn3270e_bound || !(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) { tn3270e_submode = E_3270; check_in3270(); } break; case E_3270: net_rawout(buf, sizeof(buf)); trace_dsn("SENT AO\n"); tn3270e_submode = E_SSCP; check_in3270(); break; } } } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ /* * parse_ctlchar * Parse an stty control-character specification. * A cheap, non-complaining implementation. */ static char parse_ctlchar(char *s) { if (!s || !*s) return 0; if ((int) strlen(s) > 1) { if (*s != '^') return 0; else if (*(s+1) == '?') return 0177; else return *(s+1) - '@'; } else return *s; } #endif /*]*/ #if (defined(X3270_MENUS) || defined(C3270)) && defined(X3270_ANSI) /*[*/ /* * net_linemode_chars * Report line-mode characters. */ struct ctl_char * net_linemode_chars(void) { static struct ctl_char c[9]; c[0].name = "intr"; (void) strcpy(c[0].value, ctl_see(vintr)); c[1].name = "quit"; (void) strcpy(c[1].value, ctl_see(vquit)); c[2].name = "erase"; (void) strcpy(c[2].value, ctl_see(verase)); c[3].name = "kill"; (void) strcpy(c[3].value, ctl_see(vkill)); c[4].name = "eof"; (void) strcpy(c[4].value, ctl_see(veof)); c[5].name = "werase"; (void) strcpy(c[5].value, ctl_see(vwerase)); c[6].name = "rprnt"; (void) strcpy(c[6].value, ctl_see(vrprnt)); c[7].name = "lnext"; (void) strcpy(c[7].value, ctl_see(vlnext)); c[8].name = 0; return c; } #endif /*]*/ #if defined(X3270_TRACE) /*[*/ /* * Construct a string to reproduce the current TELNET options. * Returns a Boolean indicating whether it is necessary. */ Boolean net_snap_options(void) { Boolean any = False; int i; static unsigned char ttype_str[] = { IAC, DO, TELOPT_TTYPE, IAC, SB, TELOPT_TTYPE, TELQUAL_SEND, IAC, SE }; if (!CONNECTED) return False; obptr = obuf; /* Do TTYPE first. */ if (myopts[TELOPT_TTYPE]) { unsigned j; space3270out(sizeof(ttype_str)); for (j = 0; j < sizeof(ttype_str); j++) *obptr++ = ttype_str[j]; } /* Do the other options. */ for (i = 0; i < N_OPTS; i++) { space3270out(6); if (i == TELOPT_TTYPE) continue; if (hisopts[i]) { *obptr++ = IAC; *obptr++ = WILL; *obptr++ = (unsigned char)i; any = True; } if (myopts[i]) { *obptr++ = IAC; *obptr++ = DO; *obptr++ = (unsigned char)i; any = True; } } #if defined(X3270_TN3270E) /*[*/ /* If we're in TN3270E mode, snap the subnegotations as well. */ if (myopts[TELOPT_TN3270E]) { any = True; space3270out(5 + ((connected_type != CN) ? strlen(connected_type) : 0) + ((connected_lu != CN) ? + strlen(connected_lu) : 0) + 2); *obptr++ = IAC; *obptr++ = SB; *obptr++ = TELOPT_TN3270E; *obptr++ = TN3270E_OP_DEVICE_TYPE; *obptr++ = TN3270E_OP_IS; if (connected_type != CN) { (void) memcpy(obptr, connected_type, strlen(connected_type)); obptr += strlen(connected_type); } if (connected_lu != CN) { *obptr++ = TN3270E_OP_CONNECT; (void) memcpy(obptr, connected_lu, strlen(connected_lu)); obptr += strlen(connected_lu); } *obptr++ = IAC; *obptr++ = SE; space3270out(38); (void) memcpy(obptr, functions_req, 4); obptr += 4; *obptr++ = TN3270E_OP_IS; for (i = 0; i < 32; i++) { if (e_funcs & E_OPT(i)) *obptr++ = i; } *obptr++ = IAC; *obptr++ = SE; if (tn3270e_bound) { tn3270e_header *h; int i; int xlen = 0; for (i = 0; i < bind_image_len; i++) { if (bind_image[i] == 0xff) xlen++; } space3270out(EH_SIZE + bind_image_len + xlen + 3); h = (tn3270e_header *)obptr; h->data_type = TN3270E_DT_BIND_IMAGE; h->request_flag = 0; h->response_flag = 0; h->seq_number[0] = 0; h->seq_number[1] = 0; obptr += EH_SIZE; for (i = 0; i < bind_image_len; i++) { if (bind_image[i] == 0xff) *obptr++ = 0xff; *obptr++ = bind_image[i]; } *obptr++ = IAC; *obptr++ = EOR; } } #endif /*]*/ return any; } #endif /*]*/ /* * Set blocking/non-blocking mode on the socket. On error, pops up an error * message, but does not close the socket. */ static int non_blocking(Boolean on) { #if !defined(BLOCKING_CONNECT_ONLY) /*[*/ # if defined(FIONBIO) /*[*/ int i = on ? 1 : 0; if (SOCK_IOCTL(sock, FIONBIO, &i) < 0) { popup_a_sockerr("ioctl(FIONBIO)"); return -1; } # else /*][*/ int f; if ((f = fcntl(sock, F_GETFL, 0)) == -1) { popup_an_errno(errno, "fcntl(F_GETFL)"); return -1; } if (on) f |= O_NDELAY; else f &= ~O_NDELAY; if (fcntl(sock, F_SETFL, f) < 0) { popup_an_errno(errno, "fcntl(F_SETFL)"); return -1; } # endif /*]*/ #endif /*]*/ return 0; } #if defined(HAVE_LIBSSL) /*[*/ /* Initialize the OpenSSL library. */ static void ssl_init(void) { static Boolean ssl_initted = False; if (!ssl_initted) { SSL_load_error_strings(); SSL_library_init(); ssl_initted = True; ssl_ctx = SSL_CTX_new(SSLv23_method()); if (ssl_ctx == NULL) { popup_an_error("SSL_CTX_new failed"); ssl_host = False; return; } SSL_CTX_set_options(ssl_ctx, SSL_OP_ALL); } ssl_con = SSL_new(ssl_ctx); if (ssl_con == NULL) { popup_an_error("SSL_new failed"); ssl_host = False; } SSL_set_verify(ssl_con, 0/*xxx*/, NULL); SSL_CTX_set_info_callback(ssl_ctx, client_info_callback); /* XXX: May need to get key file and password. */ if (appres.cert_file) { if (!(SSL_CTX_use_certificate_chain_file(ssl_ctx, appres.cert_file))) { unsigned long e; char err_buf[120]; e = ERR_get_error(); (void) ERR_error_string(e, err_buf); popup_an_error("SSL_CTX_use_certificate_chain_file(" "\"%s\") failed:\n%s", appres.cert_file, err_buf); } } SSL_CTX_set_default_verify_paths(ssl_ctx); } /* Callback for tracing protocol negotiation. */ static void client_info_callback(INFO_CONST SSL *s, int where, int ret) { if (where == SSL_CB_CONNECT_LOOP) { trace_dsn("SSL_connect: %s %s\n", SSL_state_string(s), SSL_state_string_long(s)); } else if (where == SSL_CB_CONNECT_EXIT) { if (ret == 0) { trace_dsn("SSL_connect: failed in %s\n", SSL_state_string_long(s)); } else if (ret < 0) { unsigned long e; char err_buf[1024]; err_buf[0] = '\n'; e = ERR_get_error(); if (e != 0) (void) ERR_error_string(e, err_buf + 1); #if defined(_WIN32) /*[*/ else if (GetLastError() != 0) strcpy(err_buf + 1, win32_strerror(GetLastError())); #else /*][*/ else if (errno != 0) strcpy(err_buf + 1, strerror(errno)); #endif /*]*/ else err_buf[0] = '\0'; trace_dsn("SSL_connect: error in %s%s\n", SSL_state_string_long(s), err_buf); popup_an_error("SSL_connect: error in %s%s", SSL_state_string_long(s), err_buf); } } } /* Process a STARTTLS subnegotiation. */ static void continue_tls(unsigned char *sbbuf, int len) { int rv; /* Whatever happens, we're not expecting another SB STARTTLS. */ need_tls_follows = False; /* Make sure the option is FOLLOWS. */ if (len < 2 || sbbuf[1] != TLS_FOLLOWS) { /* Trace the junk. */ trace_dsn("%s ? %s\n", opt(TELOPT_STARTTLS), cmd(SE)); popup_an_error("TLS negotiation failure"); net_disconnect(); return; } /* Trace what we got. */ trace_dsn("%s FOLLOWS %s\n", opt(TELOPT_STARTTLS), cmd(SE)); /* Initialize the SSL library. */ ssl_init(); if (ssl_con == NULL) { /* Failed. */ net_disconnect(); return; } /* Set up the TLS/SSL connection. */ if (SSL_set_fd(ssl_con, sock) != 1) { trace_dsn("Can't set fd!\n"); } #if defined(_WIN32) /*[*/ /* Make the socket blocking for SSL. */ (void) WSAEventSelect(sock, sock_handle, 0); (void) non_blocking(False); #endif /*]*/ rv = SSL_connect(ssl_con); #if defined(_WIN32) /*[*/ /* Make the socket non-blocking again for event processing. */ (void) WSAEventSelect(sock, sock_handle, FD_READ | FD_CONNECT | FD_CLOSE); #endif /*]*/ if (rv != 1) { /* Error already displayed. */ trace_dsn("continue_tls: SSL_connect failed\n"); net_disconnect(); return; } secure_connection = True; /* Success. */ trace_dsn("TLS/SSL negotiated connection complete. " "Connection is now secure.\n"); /* Tell the world that we are (still) connected, now in secure mode. */ host_connected(); } #endif /*]*/ /* Return the current BIND application name, if any. */ const char * net_query_bind_plu_name(void) { #if defined(X3270_TN3270E) /*[*/ /* * Return the PLU name, if we're in TN3270E 3270 mode and have * negotiated the BIND-IMAGE option. */ if ((cstate == CONNECTED_TN3270E) && (e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return plu_name? plu_name: ""; else return ""; #else /*][*/ /* No TN3270E, no BIND negotiation. */ return ""; #endif /*]*/ } /* Return the current connection state. */ const char * net_query_connection_state(void) { if (CONNECTED) { #if defined(X3270_TN3270E) /*[*/ if (IN_E) { switch (tn3270e_submode) { default: case E_NONE: if (tn3270e_bound) return "tn3270e bound"; else return "tn3270e unbound"; case E_3270: return "tn3270e lu-lu"; case E_NVT: return "tn3270e nvt"; case E_SSCP: return "tn3270 sscp-lu"; } } else #endif /*]*/ { if (IN_3270) return "tn3270 3270"; else return "tn3270 nvt"; } } else if (HALF_CONNECTED) return "connecting"; else return ""; } /* Return the LU name. */ const char * net_query_lu_name(void) { if (CONNECTED && connected_lu != CN) return connected_lu; else return ""; } /* Return the hostname and port. */ const char * net_query_host(void) { static char *s = CN; if (CONNECTED) { Free(s); #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { s = xs_buffer("process %s", hostname); } else #endif /*]*/ { s = xs_buffer("host %s %u %s", hostname, current_port, #if defined(HAVE_LIBSSL) /*[*/ secure_connection? "encrypted": #endif /*]*/ "unencrypted" ); } return s; } else return ""; } /* Return the local address for the socket. */ int net_getsockname(void *buf, int *len) { if (sock < 0) return -1; return getsockname(sock, buf, (socklen_t *)(void *)len); } /* Return a text version of the current proxy type, or NULL. */ char * net_proxy_type(void) { if (proxy_type > 0) return proxy_type_name(proxy_type); else return NULL; } /* Return the current proxy host, or NULL. */ char * net_proxy_host(void) { if (proxy_type > 0) return proxy_host; else return NULL; } /* Return the current proxy port, or NULL. */ char * net_proxy_port(void) { if (proxy_type > 0) return proxy_portname; else return NULL; } /* Return the SNA binding state. */ Boolean net_bound(void) { return (IN_E && tn3270e_bound); } ibm-3270-3.3.10ga4/s3270/ft_dft.c0000644000175000017500000004317111254565704015365 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * ft_dft.c * File transfer: DFT-style data processing functions */ #include "globals.h" #if defined(X3270_FT) /*[*/ #include "appres.h" #include "3270ds.h" #include "ft_dft_ds.h" #include "actionsc.h" #include "charsetc.h" #include "kybdc.h" #include "ft_dftc.h" #include "ftc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include extern unsigned char aid; /* Macros. */ #define OPEN_MSG "FT:MSG" /* Open request for message */ #define END_TRANSFER "TRANS03" /* Message for xfer complete */ #define DFT_MIN_BUF 256 #define DFT_MAX_BUF 32768 #define DFT_MAX_UNGETC 32 /* Typedefs. */ struct data_buffer { char sf_length[2]; /* SF length = 0x0023 */ char sf_d0; /* 0xD0 */ char sf_request_type[2]; /* request type */ char compress_indic[2]; /* 0xc080 */ char begin_data; /* 0x61 */ char data_length[2]; /* Data Length in 3270 byte order+5 */ char data[256]; /* The actual data */ }; /* Globals. */ int dft_buffersize = 0; /* Buffer size (LIMIN, LIMOUT) */ /* Statics. */ static Boolean message_flag = False; /* Open Request for msg received */ static int dft_eof; static unsigned long recnum; static char *abort_string = CN; static unsigned char *dft_savebuf = NULL; static int dft_savebuf_len = 0; static int dft_savebuf_max = 0; static unsigned char dft_ungetc_cache[DFT_MAX_UNGETC]; static size_t dft_ungetc_count = 0; static void dft_abort(const char *s, unsigned short code); static void dft_close_request(void); static void dft_data_insert(struct data_buffer *data_bufr); static void dft_get_request(void); static void dft_insert_request(void); static void dft_open_request(unsigned short len, unsigned char *cp); static void dft_set_cur_req(void); /* Process a Transfer Data structured field from the host. */ void ft_dft_data(unsigned char *data, int length _is_unused) { struct data_buffer *data_bufr = (struct data_buffer *)data; unsigned short data_length, data_type; unsigned char *cp; if (ft_state == FT_NONE) { trace_ds(" (no transfer in progress)\n"); return; } /* Get the length. */ cp = (unsigned char *)(data_bufr->sf_length); GET16(data_length, cp); /* Get the function type. */ cp = (unsigned char *)(data_bufr->sf_request_type); GET16(data_type, cp); /* Handle the requests */ switch (data_type) { case TR_OPEN_REQ: dft_open_request(data_length, cp); break; case TR_INSERT_REQ: /* Insert Request */ dft_insert_request(); break; case TR_DATA_INSERT: dft_data_insert(data_bufr); break; case TR_SET_CUR_REQ: dft_set_cur_req(); break; case TR_GET_REQ: dft_get_request(); break; case TR_CLOSE_REQ: dft_close_request(); break; default: trace_ds(" Unsupported(0x%04x)\n", data_type); break; } } /* Process an Open request. */ static void dft_open_request(unsigned short len, unsigned char *cp) { char *name = "?"; char namebuf[8]; char *s; unsigned short recsz = 0; if (len == 0x23) { name = (char *)cp + 25; } else if (len == 0x29) { unsigned char *recszp; recszp = cp + 27; GET16(recsz, recszp); name = (char *)cp + 31; } else { dft_abort(get_message("ftDftUknownOpen"), TR_OPEN_REQ); return; } (void) memcpy(namebuf, name, 7); namebuf[7] = '\0'; s = &namebuf[6]; while (s >= namebuf && *s == ' ') { *s-- = '\0'; } if (recsz) { trace_ds(" Open('%s',recsz=%u)\n", namebuf, recsz); } else { trace_ds(" Open('%s')\n", namebuf); } if (!strcmp(namebuf, OPEN_MSG)) message_flag = True; else { message_flag = False; ft_running(False); } dft_eof = False; recnum = 1; dft_ungetc_count = 0; /* Acknowledge the Open. */ trace_ds("> WriteStructuredField FileTransferData OpenAck\n"); obptr = obuf; space3270out(6); *obptr++ = AID_SF; SET16(obptr, 5); *obptr++ = SF_TRANSFER_DATA; SET16(obptr, 9); net_output(); } /* Process an Insert request. */ static void dft_insert_request(void) { trace_ds(" Insert\n"); /* Doesn't currently do anything. */ } /* Process a Data Insert request. */ static void dft_data_insert(struct data_buffer *data_bufr) { /* Received a data buffer, get the length and process it */ int my_length; unsigned char *cp; if (!message_flag && ft_state == FT_ABORT_WAIT) { dft_abort(get_message("ftUserCancel"), TR_DATA_INSERT); return; } cp = (unsigned char *) (data_bufr->data_length); /* Get the data length in native format. */ GET16(my_length, cp); /* Adjust for 5 extra count */ my_length -= 5; trace_ds(" Data(rec=%lu) %d bytes\n", recnum, my_length); /* * First, check to see if we have message data or file data. * Message data will result in a popup. */ if (message_flag) { /* Data is from a message */ unsigned char *msgp; unsigned char *dollarp; /* Get storage to copy the message. */ msgp = (unsigned char *)Malloc(my_length + 1); /* Copy the message. */ memcpy(msgp, data_bufr->data, my_length); /* Null terminate the string. */ dollarp = (unsigned char *)memchr(msgp, '$', my_length); if (dollarp != NULL) *dollarp = '\0'; else *(msgp + my_length) = '\0'; /* If transfer completed ok, use our msg. */ if (memcmp(msgp, END_TRANSFER, strlen(END_TRANSFER)) == 0) { Free(msgp); ft_complete((String)NULL); } else if (ft_state == FT_ABORT_SENT && abort_string != CN) { Free(msgp); ft_complete(abort_string); Replace(abort_string, CN); } else { ft_complete((char *)msgp); Free(msgp); } } else if (my_length > 0) { int rv = 1; /* Write the data out to the file. */ if (ascii_flag && (remap_flag || cr_flag)) { size_t obuf_len = 4 * my_length; char *ob0 = Malloc(obuf_len); char *ob = ob0; unsigned char *s = (unsigned char *)data_bufr->data; unsigned len = my_length; int nx; /* Copy and convert data_bufr->data to ob0. */ while (len-- && obuf_len) { unsigned char c = *s++; /* Strip CR's and ^Z's. */ if (cr_flag && ((c == '\r' || c == 0x1a))) { continue; } if (!remap_flag) { *ob++ = c; obuf_len--; continue; } /* * Convert to local multi-byte. * We do that by inverting the host's * EBCDIC-to-ASCII map, getting back to * EBCDIC, and converting to multi-byte * from there. */ #if defined(X3270_DBCS) /*[*/ switch (ft_dbcs_state) { case FT_DBCS_NONE: if (c == EBC_so) { ft_dbcs_state = FT_DBCS_SO; continue; } /* * fall through to non-DBCS case below */ break; case FT_DBCS_SO: if (c == EBC_si) ft_dbcs_state = FT_DBCS_NONE; else { ft_dbcs_byte1 = i_asc2ft[c]; ft_dbcs_state = FT_DBCS_LEFT; } continue; case FT_DBCS_LEFT: if (c == EBC_si) { ft_dbcs_state = FT_DBCS_NONE; continue; } nx = ebcdic_to_multibyte( (ft_dbcs_byte1 << 8) | i_asc2ft[c], (char *)ob, obuf_len); if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; ft_dbcs_state = FT_DBCS_SO; continue; } #endif /*]*/ if (c < 0x20 || (c >= 0x80 && c < 0xa0 && c != 0x9f)) { /* * Control code, treat it as Unicode. * * Note that IND$FILE and the VM 'TYPE' * command think that EBCDIC X'E1' is * a control code; IND$FILE maps it * onto ASCII 0x9f. So we skip it * explicitly and treat it as printable * here. */ nx = unicode_to_multibyte(c, ob, obuf_len); } else if (c == 0xff) { /* * IND$FILE maps X'FF' to 0xff. We * want U+009F. */ nx = unicode_to_multibyte(0x9f, ob, obuf_len); } else { /* Displayable character, remap. */ c = i_asc2ft[c]; nx = ebcdic_to_multibyte(c, (char *)ob, obuf_len); } if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; } /* Write the result to the file. */ if (ob - ob0) { rv = fwrite(ob0, ob - ob0, (size_t)1, ft_local_file); ft_length += ob - ob0; } Free(ob0); } else { /* Write the buffer to the file directly. */ rv = fwrite((char *)data_bufr->data, my_length, (size_t)1, ft_local_file); ft_length += my_length; } if (!rv) { /* write failed */ char *buf; buf = xs_buffer("write(%s): %s", ft_local_filename, strerror(errno)); dft_abort(buf, TR_DATA_INSERT); Free(buf); } /* Add up amount transferred. */ ft_update_length(); } /* Send an acknowledgement frame back. */ trace_ds("> WriteStructuredField FileTransferData DataAck(rec=%lu)\n", recnum); obptr = obuf; space3270out(12); *obptr++ = AID_SF; SET16(obptr, 11); *obptr++ = SF_TRANSFER_DATA; SET16(obptr, TR_NORMAL_REPLY); SET16(obptr, TR_RECNUM_HDR); SET32(obptr, recnum); recnum++; net_output(); } /* Process a Set Cursor request. */ static void dft_set_cur_req(void) { trace_ds(" SetCursor\n"); /* Currently doesn't do anything. */ } #if defined(X3270_DBCS) /*[*/ /* Store a byte inthe input buffer or ungetc cache. */ static void store_inbyte(unsigned char c, unsigned char **bufptr, size_t *numbytes) { if (*numbytes) { *(*bufptr) = c; (*bufptr)++; (*numbytes)--; } else { dft_ungetc_cache[dft_ungetc_count++] = c; } } #endif /*]*/ /* * Read a character from a local file in ASCII mode. * Stores the data in 'bufptr' and returns the number of bytes stored. * Returns -1 for EOF. */ /*static*/ size_t dft_ascii_read(unsigned char *bufptr, size_t numbytes) { char inbuf[16]; int in_ix = 0; char c; enum me_fail error; ebc_t e; int consumed; ucs4_t u; /* Belt-n-suspenders. */ if (!numbytes) return 0; /* Return data from the ungetc cache first. */ if (dft_ungetc_count) { size_t nm = dft_ungetc_count; if (nm > numbytes) nm = numbytes; memcpy(bufptr, dft_ungetc_cache, nm); if (dft_ungetc_count > nm) memmove(dft_ungetc_cache, &dft_ungetc_cache[nm], dft_ungetc_count - nm); dft_ungetc_count -= nm; return nm; } if (remap_flag) { /* Read bytes until we have a legal multibyte sequence. */ do { int consumed; c = fgetc(ft_local_file); if (c == EOF) { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { *bufptr = EBC_si; ft_last_dbcs = False; return 1; } #endif /*]*/ return -1; } error = ME_NONE; inbuf[in_ix++] = c; (void) multibyte_to_unicode(inbuf, in_ix, &consumed, &error); if (error == ME_INVALID) { #if defined(EILSEQ) /*[*/ errno = EILSEQ; #else /*][*/ errno = EINVAL; #endif /*]*/ return -1; } } while (error == ME_SHORT); } else { /* Get a byte from the file. */ c = fgetc(ft_local_file); if (c == EOF) return -1; } /* Expand NL to CR/LF. */ if (cr_flag && !ft_last_cr && c == '\n') { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { *bufptr = EBC_si; dft_ungetc_cache[0] = '\r'; dft_ungetc_cache[1] = '\n'; dft_ungetc_count = 2; ft_last_dbcs = False; return 1; } else #endif /*]*/ { *bufptr = '\r'; dft_ungetc_cache[0] = '\n'; dft_ungetc_count = 1; } return 1; } ft_last_cr = (c == '\r'); /* The no-remap case is pretty simple. */ if (!remap_flag) { *bufptr = c; return 1; } /* * Translate, inverting the host's fixed EBCDIC-to-ASCII conversion * table and applying the host code page. * Control codes are treated as Unicode and mapped directly. * We also handle DBCS here. */ u = multibyte_to_unicode(inbuf, in_ix, &consumed, &error); if (u < 0x20 || ((u >= 0x80 && u < 0x9f))) e = i_asc2ft[u]; else if (u == 0x9f) e = 0xff; else e = unicode_to_ebcdic(u); if (e & 0xff00) { #if defined(X3270_DBCS) /*[*/ unsigned char *bp0 = bufptr; if (!ft_last_dbcs) store_inbyte(EBC_so, &bufptr, &numbytes); store_inbyte(i_ft2asc[(e >> 8) & 0xff], &bufptr, &numbytes); store_inbyte(i_ft2asc[e & 0xff], &bufptr, &numbytes); ft_last_dbcs = True; return bufptr - bp0; #else /*][*/ *bufptr = '?'; return 1; #endif /*]*/ } else { unsigned char nc = e? i_ft2asc[e]: '?'; #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { *bufptr = EBC_si; dft_ungetc_cache[0] = nc; dft_ungetc_count = 1; ft_last_dbcs = False; } else #endif /*]*/ *bufptr = nc; return 1; } } /* Process a Get request. */ static void dft_get_request(void) { size_t numbytes; size_t numread; size_t total_read = 0; unsigned char *bufptr; trace_ds(" Get\n"); if (!message_flag && ft_state == FT_ABORT_WAIT) { dft_abort(get_message("ftUserCancel"), TR_GET_REQ); return; } /* Read a buffer's worth. */ set_dft_buffersize(); space3270out(dft_buffersize); numbytes = dft_buffersize - 27; /* always read 5 bytes less than we're allowed */ bufptr = obuf + 17; while (!dft_eof && numbytes) { if (ascii_flag && (remap_flag || cr_flag)) { numread = dft_ascii_read(bufptr, numbytes); if (numread == (size_t)-1) { dft_eof = True; break; } bufptr += numread; numbytes -= numread; total_read += numread; } else { /* Binary read. */ numread = fread(bufptr, 1, numbytes, ft_local_file); if (numread <= 0) { break; } bufptr += numread; numbytes -= numread; total_read += numread; if (feof(ft_local_file)) dft_eof = True; if (feof(ft_local_file) || ferror(ft_local_file)) { break; } } } /* Check for read error. */ if (ferror(ft_local_file)) { char *buf; buf = xs_buffer("read(%s): %s", ft_local_filename, strerror(errno)); dft_abort(buf, TR_GET_REQ); Free(buf); return; } /* Set up SF header for Data or EOF. */ obptr = obuf; *obptr++ = AID_SF; obptr += 2; /* skip SF length for now */ *obptr++ = SF_TRANSFER_DATA; if (total_read) { trace_ds("> WriteStructuredField FileTransferData Data(rec=%lu) %d bytes\n", recnum, (int)total_read); SET16(obptr, TR_GET_REPLY); SET16(obptr, TR_RECNUM_HDR); SET32(obptr, recnum); recnum++; SET16(obptr, TR_NOT_COMPRESSED); *obptr++ = TR_BEGIN_DATA; SET16(obptr, total_read + 5); obptr += total_read; ft_length += total_read; } else { trace_ds("> WriteStructuredField FileTransferData EOF\n"); *obptr++ = HIGH8(TR_GET_REQ); *obptr++ = TR_ERROR_REPLY; SET16(obptr, TR_ERROR_HDR); SET16(obptr, TR_ERR_EOF); dft_eof = True; } /* Set the SF length. */ bufptr = obuf + 1; SET16(bufptr, obptr - (obuf + 1)); /* Save the data. */ dft_savebuf_len = obptr - obuf; if (dft_savebuf_len > dft_savebuf_max) { dft_savebuf_max = dft_savebuf_len; Replace(dft_savebuf, (unsigned char *)Malloc(dft_savebuf_max)); } (void) memcpy(dft_savebuf, obuf, dft_savebuf_len); aid = AID_SF; /* Write the data. */ net_output(); ft_update_length(); } /* Process a Close request. */ static void dft_close_request(void) { /* * Recieved a close request from the system. * Return a close acknowledgement. */ trace_ds(" Close\n"); trace_ds("> WriteStructuredField FileTransferData CloseAck\n"); obptr = obuf; space3270out(6); *obptr++ = AID_SF; SET16(obptr, 5); /* length */ *obptr++ = SF_TRANSFER_DATA; SET16(obptr, TR_CLOSE_REPLY); net_output(); } /* Abort a transfer. */ static void dft_abort(const char *s, unsigned short code) { Replace(abort_string, NewString(s)); trace_ds("> WriteStructuredField FileTransferData Error\n"); obptr = obuf; space3270out(10); *obptr++ = AID_SF; SET16(obptr, 9); /* length */ *obptr++ = SF_TRANSFER_DATA; *obptr++ = HIGH8(code); *obptr++ = TR_ERROR_REPLY; SET16(obptr, TR_ERROR_HDR); SET16(obptr, TR_ERR_CMDFAIL); net_output(); /* Update the pop-up and state. */ ft_aborting(); } /* Processes a Read Modified command when there is upload data pending. */ void dft_read_modified(void) { if (dft_savebuf_len) { trace_ds("> WriteStructuredField FileTransferData\n"); obptr = obuf; space3270out(dft_savebuf_len); memcpy(obptr, dft_savebuf, dft_savebuf_len); obptr += dft_savebuf_len; net_output(); } } /* Update the buffersize for generating a Query Reply. */ void set_dft_buffersize(void) { if (dft_buffersize == 0) { dft_buffersize = appres.dft_buffer_size; if (dft_buffersize == 0) dft_buffersize = DFT_BUF; } if (dft_buffersize > DFT_MAX_BUF) dft_buffersize = DFT_MAX_BUF; if (dft_buffersize < DFT_MIN_BUF) dft_buffersize = DFT_MIN_BUF; } #endif /*]*/ ibm-3270-3.3.10ga4/s3270/ansic.h0000644000175000017500000000453411254565704015221 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ansic.h * Global declarations for ansi.c. */ #if defined(X3270_ANSI) /*[*/ extern void ansi_init(void); extern void ansi_process(unsigned int c); extern void ansi_send_clear(void); extern void ansi_send_down(void); extern void ansi_send_home(void); extern void ansi_send_left(void); extern void ansi_send_pa(int nn); extern void ansi_send_pf(int nn); extern void ansi_send_right(void); extern void ansi_send_up(void); extern void ansi_snap(void); extern void ansi_snap_modes(void); extern void toggle_lineWrap(struct toggle *t, enum toggle_type type); #else /*][*/ #define ansi_init() #define ansi_process(n) #define ansi_send_clear() #define ansi_send_down() #define ansi_send_home() #define ansi_send_left() #define ansi_send_pa(n) #define ansi_send_pf(n) #define ansi_send_right() #define ansi_send_up() #define ansi_snap() #endif /*]*/ ibm-3270-3.3.10ga4/s3270/ft_cut_ds.h0000644000175000017500000000727411254565704016102 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Data Stream definitions for CUT-style file transfers. */ /* Primary Area */ #define O_FRAME_TYPE 0 /* offset to frame type */ #define FT_CONTROL_CODE 0xc3 /* frame type: control code (host->) */ #define O_CC_FRAME_SEQ 1 /* offset to frame sequence */ #define O_CC_STATUS_CODE 2 /* offset to status code */ #define SC_HOST_ACK 0x8181 /* ack of IND$FILE command */ #define SC_XFER_COMPLETE 0x8189 /* file transfer complete */ #define SC_ABORT_FILE 0x8194 /* abort, file error */ #define SC_ABORT_XMIT 0x8198 /* abort, transmission error */ #define O_CC_MESSAGE 4 /* offset of message text */ #define FT_DATA_REQUEST 0xc2 /* frame type: data request (host->) */ #define O_DR_SF 1 /* offset to start field */ #define O_DR_DATA_CODE 2 /* offset to data code */ #define O_DR_FRAME_SEQ 3 /* offset to frame sequence */ #define FT_RETRANSMIT 0x4c /* frame type: retransmit (host->) */ #define FT_DATA 0xc1 /* frame type: data (bidirectional) */ #define O_DT_FRAME_SEQ 1 /* offset to frame sequence */ #define O_DT_CSUM 2 /* offset to checksum */ #define O_DT_LEN 3 /* offset to length */ #define O_DT_DATA 5 /* offset to data */ /* Response Area */ #define O_RESPONSE 1914 /* offset to response area */ #define RO_FRAME_TYPE (O_RESPONSE+1) /* response frame type */ #define RFT_RETRANSMIT 0x4c /* response frame type: retransmit */ #define RFT_CONTROL_CODE 0xc3 /* response frame type: control code */ #define RO_FRAME_SEQ (O_RESPONSE+2) /* response frame sequence */ #define RO_REASON_CODE (O_RESPONSE+3) /* response reason code */ /* Special Data */ #define EOF_DATA1 0x5c /* special data for EOF */ #define EOF_DATA2 0xa9 /* Acknowledgement AIDs */ #define ACK_OK AID_ENTER #define ACK_RETRANSMIT AID_PF1 #define ACK_RESYNC_VM AID_CLEAR #define ACK_RESYNC_TSO AID_PA2 #define ACK_ABORT AID_PF2 /* Data area for uploads. */ #define O_UP_DATA_CODE 2 /* offset to data code */ #define O_UP_FRAME_SEQ 3 /* offset to frame sequence */ #define O_UP_CSUM 4 /* offset to checksum */ #define O_UP_LEN 5 /* offset to length */ #define O_UP_DATA 7 /* offset to start of data */ #define O_UP_MAX (1919 - O_UP_DATA) /* max upload data */ ibm-3270-3.3.10ga4/s3270/trace_dsc.h0000644000175000017500000000505511254565704016052 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * trace_dsc.h * Global declarations for trace_ds.c. */ #if defined(X3270_TRACE) /*[*/ extern Boolean trace_skipping; extern char *tracefile_name; const char *rcba(int baddr); void toggle_dsTrace(struct toggle *t, enum toggle_type tt); void toggle_eventTrace(struct toggle *t, enum toggle_type tt); void toggle_screenTrace(struct toggle *t, enum toggle_type tt); void trace_ansi_disc(void); void trace_char(char c); void trace_ds(const char *fmt, ...) printflike(1, 2); void trace_ds_nb(const char *fmt, ...) printflike(1, 2); void trace_dsn(const char *fmt, ...) printflike(1, 2); void trace_event(const char *fmt, ...) printflike(1, 2); void trace_screen(void); void trace_rollover_check(void); #else /*][*/ #define rcba 0 && #if defined(__GNUC__) /*[*/ #define trace_ds(format, args...) #define trace_dsn(format, args...) #define trace_ds_nb(format, args...) #define trace_event(format, args...) #else /*][*/ #define trace_ds 0 && #define trace_ds_nb 0 && #define trace_dsn 0 && #define trace_event 0 && #define rcba 0 && #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/s3270/actionsc.h0000644000175000017500000000465711254565704015735 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * actionsc.h * Global declarations for actions.c. */ /* types of internal actions */ enum iaction { IA_STRING, IA_PASTE, IA_REDRAW, IA_KEYPAD, IA_DEFAULT, IA_KEY, IA_MACRO, IA_SCRIPT, IA_PEEK, IA_TYPEAHEAD, IA_FT, IA_COMMAND, IA_KEYMAP, IA_IDLE }; extern enum iaction ia_cause; extern int actioncount; extern XtActionsRec *actions; extern const char *ia_name[]; #if defined(X3270_TRACE) /*[*/ extern void action_debug(XtActionProc action, XEvent *event, String *params, Cardinal *num_params); #else /*][*/ #define action_debug(a, e, p, n) #endif /*]*/ extern void action_init(void); extern void action_internal(XtActionProc action, enum iaction cause, const char *parm1, const char *parm2); extern const char *action_name(XtActionProc action); extern int check_usage(XtActionProc action, Cardinal nargs, Cardinal nargs_min, Cardinal nargs_max); extern Boolean event_is_meta(int state); ibm-3270-3.3.10ga4/s3270/objects.h0000644000175000017500000000346311254565704015555 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * objects.h * x3270 object names. */ #define ObjConfirmButton "confirmButton" #define ObjConfirm2Button "confirm2Button" #define ObjCancelButton "cancelButton" #define ObjDialog "dialog" #define ObjSmallLabel "smallLabel" #define ObjNameLabel "nameLabel" #define ObjDataLabel "dataLabel" ibm-3270-3.3.10ga4/s3270/appres.h0000644000175000017500000001527511254565704015422 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * appres.h * Application resource definitions for x3270, c3270, s3270 and * tcl3270. */ /* Toggles */ enum toggle_type { TT_INITIAL, TT_INTERACTIVE, TT_ACTION, TT_FINAL }; struct toggle { Boolean value; /* toggle value */ Boolean changed; /* has the value changed since init */ Widget w[2]; /* the menu item widgets */ const char *label[2]; /* labels */ void (*upcall)(struct toggle *, enum toggle_type); /* change value */ }; #define MONOCASE 0 #define ALT_CURSOR 1 #define CURSOR_BLINK 2 #define SHOW_TIMING 3 #define CURSOR_POS 4 #if defined(X3270_TRACE) /*[*/ #define DS_TRACE 5 #endif /*]*/ #define SCROLL_BAR 6 #if defined(X3270_ANSI) /*[*/ #define LINE_WRAP 7 #endif /*]*/ #define BLANK_FILL 8 #if defined(X3270_TRACE) /*[*/ #define SCREEN_TRACE 9 #define EVENT_TRACE 10 #endif /*]*/ #define MARGINED_PASTE 11 #define RECTANGLE_SELECT 12 #if defined(X3270_DISPLAY) /*[*/ #define CROSSHAIR 13 #define VISIBLE_CONTROL 14 #endif /*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ #define AID_WAIT 15 #endif /*]*/ #if defined(C3270) /*[*/ #define UNDERSCORE 16 #endif /*]*/ #define N_TOGGLES 17 #define toggled(ix) (appres.toggle[ix].value) #define toggle_toggle(t) \ { (t)->value = !(t)->value; (t)->changed = True; } /* Application resources */ typedef struct { /* Basic colors */ #if defined(X3270_DISPLAY) /*[*/ Pixel foreground; Pixel background; #endif /*]*/ /* Options (not toggles) */ #if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) /*[*/ Boolean mono; #endif /*]*/ Boolean extended; Boolean m3279; Boolean modified_sel; Boolean once; #if defined(X3270_DISPLAY) || (defined(C3270) && defined(_WIN32)) /*[*/ Boolean visual_bell; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ Boolean menubar; Boolean active_icon; Boolean label_icon; Boolean invert_kpshift; Boolean use_cursor_color; Boolean allow_resize; Boolean no_other; Boolean visual_select; Boolean suppress_host; Boolean suppress_font_menu; # if defined(X3270_KEYPAD) /*[*/ Boolean keypad_on; # endif /*]*/ #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ Boolean do_confirms; Boolean reconnect; #endif /*]*/ #if defined(C3270) /*[*/ Boolean all_bold_on; Boolean curses_keypad; Boolean cbreak_mode; Boolean no_prompt; #if !defined(_WIN32) /*[*/ Boolean reverse_video; #endif /*]*/ #if defined(_WIN32) /*[*/ Boolean auto_shortcut; #endif /*]*/ #endif /*]*/ Boolean apl_mode; Boolean scripted; Boolean numeric_lock; Boolean secure; Boolean oerr_lock; Boolean typeahead; Boolean debug_tracing; Boolean disconnect_clear; Boolean highlight_bold; Boolean color8; Boolean bsd_tm; Boolean unlock_delay; #if defined(X3270_SCRIPT) /*[*/ Boolean socket; int script_port; #endif /*]*/ /* Named resources */ #if defined(X3270_KEYPAD) /*[*/ char *keypad; #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ char *key_map; char *compose_map; char *printer_lu; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ char *efontname; char *fixed_size; char *icon_font; char *icon_label_font; int save_lines; char *normal_name; char *select_name; char *bold_name; char *colorbg_name; char *keypadbg_name; char *selbg_name; char *cursor_color_name; char *color_scheme; int bell_volume; char *char_class; int modified_sel_color; int visual_select_color; #if defined(X3270_DBCS) /*[*/ char *input_method; char *preedit_type; #endif /*]*/ #endif /*]*/ #if defined(X3270_DBCS) /*[*/ char *dbcs_cgcsgid; #endif /*]*/ #if defined(C3270) /*[*/ char *meta_escape; char *all_bold; char *altscreen; char *defscreen; Boolean acs; Boolean ascii_box_draw; # if !defined(_WIN32) /*[*/ Boolean mouse; # endif /*]*/ #endif /*]*/ char *conf_dir; char *model; char *hostsfile; char *port; char *charset; char *sbcs_cgcsgid; char *termname; char *login_macro; char *macros; #if defined(X3270_TRACE) /*[*/ char *trace_dir; char *trace_file; char *screentrace_file; char *trace_file_size; # if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ Boolean trace_monitor; # endif /*]*/ #endif /*]*/ char *oversize; #if defined(X3270_FT) /*[*/ char *ft_command; int dft_buffer_size; #endif /*]*/ char *connectfile_name; char *idle_command; Boolean idle_command_enabled; char *idle_timeout; #if defined(X3270_SCRIPT) /*[*/ char *plugin_command; #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ char *cert_file; #endif /*]*/ char *proxy; #if defined(TCL3270) /*[*/ int command_timeout; #endif /*]*/ int unlock_delay_ms; /* Toggles */ struct toggle toggle[N_TOGGLES]; #if defined(X3270_DISPLAY) /*[*/ /* Simple widget resources */ Cursor normal_mcursor; Cursor wait_mcursor; Cursor locked_mcursor; #endif /*]*/ #if defined(X3270_ANSI) /*[*/ /* Line-mode TTY parameters */ Boolean icrnl; Boolean inlcr; Boolean onlcr; char *erase; char *kill; char *werase; char *rprnt; char *lnext; char *intr; char *quit; char *eof; #endif /*]*/ char *hostname; #if defined(WC3270) /*[*/ char *title; #endif /*]*/ #if defined(WS3270) /*[*/ int local_cp; #endif /*]*/ #if defined(USE_APP_DEFAULTS) /*[*/ /* App-defaults version */ char *ad_version; #endif /*]*/ } AppRes, *AppResptr; extern AppRes appres; ibm-3270-3.3.10ga4/s3270/html/0000755000175000017500000000000011261530021014667 5ustar bastianbastianibm-3270-3.3.10ga4/s3270/html/Intro.html0000644000175000017500000000220211254565707016671 0ustar bastianbastian s3270 Introduction

s3270 Introduction

s3270 is a scripted IBM 3270 terminal emulator. It can be used to communicate with any IBM host that supports 3270-style connections over TELNET. It can also communicate with hosts that use line-by-line ASCII mode to do initial login negotiation before switching to full-screen 3270 mode.

s3270 emulates one of four models of an IBM 3278 or 3279 terminal. The difference between the various models is the screen size. The emulation is not quite complete; s3270 understands extended field orders but does not implement some of the extended attributes (outlining, extended validation, etc.). It does not support 3179G bit-mapped graphics (GDDM).

s3270 supports the APL character set and several international character sets. Many APL and international symbols may be entered by their X11 symbol names. ibm-3270-3.3.10ga4/s3270/html/x3270-script.html0000644000175000017500000006646311261527776017710 0ustar bastianbastian x3270-script Manual Page

x3270-script Manual Page

Contents

Name
Synopsis
Description
Status Format
Differences
Script-Specific Actions
File Transfer
See Also
Version

Name

Scripting Facilities for x3270, s3270, ws3270 and c3270

Synopsis

x3270 -script [ x3270-options ]
s3270 [ s3270-options ]
ws3270 [ ws3270-options ]
Script ( command [ ,arg... ] )

Description

The x3270 scripting facilities allow the interactive 3270 emulators x3270 and c3270 to be operated under the control of another program, and form the basis for the script-only emulators s3270 and ws3270.

There are two basic scripting methods. The first is the peer script facility, invoked by the x3270 -script switch, and the default mode for s3270 and ws3270. This runs x3270, s3270 or ws3270 as a child of another process. Typically this would be a script using expect(1), perl(1), or the co-process facility of the Korn Shell ksh(1). Inthis mode, the emulator process looks for commands on its standard input, and places the responses on standard output and standard error output.

The second method is the child script facility, invoked by the Script action in x3270, c3270, or s3270. This runs a script as a child process of the emulator. The child has access to pipes connected to the emulator; the emulator look for commands on one pipe, and places the responses on the other. (The file descriptor of the pipe for commands to the emulator is passed in the environment variable X3270INPUT; the file descriptor of the pipe for responses from the emulator is passed in the environment variable X3270OUTPUT.)

It is possible to mix the two methods. A script can invoke another script with the Script action, and may also be implicitly nested when a script invokes the Connect action, and the ibm_hosts file specifies a login script for that host name.

Commands are emulator actions; the syntax is the same as for the right-hand side of an Xt translation table entry (an x3270 or c3270 keymap). Unlike translation tables, action names are case-insensitive, can be uniquely abbreviated, and the parentheses may be omitted if there are no parameters. Any input line that begins with # or ! is treaded as a comment and will be ignored.

Any emulator action may be specified. Several specific actions have been defined for use by scripts, and the behavior of certain other actions (and of the emulators in general) is different when an action is initiated by a script.

Some actions generate output; some may delay completion until the certain external events occur, such as the host unlocking the keyboard. The completion of every command is marked by a two-line message. The first line is the current status of the emulator, documented below. If the command is successful, the second line is the string "ok"; otherwise it is the string "error".

Status Format

The status message consists of 12 blank-separated fields:
1 Keyboard State
If the keyboard is unlocked, the letter U. If the keyboard is locked waiting for a response from the host, or if not connected to a host, the letter L. If the keyboard is locked because of an operator error (field overflow, protected field, etc.), the letter E.
2 Screen Formatting
If the screen is formatted, the letter F. If unformatted or in NVT mode, the letter U.
3 Field Protection
If the field containing the cursor is protected, the letter P. If unprotected or unformatted, the letter U.
4 Connection State
If connected to a host, the string C(hostname). Otherwise, the letter N.
5 Emulator Mode
If connected in 3270 mode, the letter I. If connected in NVT line mode, the letter L. If connected in NVT character mode, the letter C. If connected in unnegotiated mode (no BIND active from the host), the letter P. If not connected, the letter N.
6 Model Number (2-5)
7 Number of Rows
The current number of rows defined on the screen. The host can request that the emulator use a 24x80 screen, so this number may be smaller than the maximum number of rows possible with the current model.
8 Number of Columns
The current number of columns defined on the screen, subject to the same difference for rows, above.
9 Cursor Row
The current cursor row (zero-origin).
10 Cursor Column
The current cursor column (zero-origin).
11 Window ID
The X window identifier for the main x3270 window, in hexadecimal preceded by 0x. For s3270, ws3270 and c3270, this is zero.
12 Command Execution Time
The time that it took for the host to respond to the previous commnd, in seconds with milliseconds after the decimal. If the previous command did not require a host response, this is a dash.

Differences

When an action is initiated by a script, the emulators behave in several different ways:

If an error occurs in processing an action, the usual pop-up window does not appear. Instead, the text is written to standard error output.

If end-of-file is detected on standard input, the emulator exits. (A script can exit without killing the emulator by using the CloseScript action, below.) Note that this applies to peer scripts only; end-of-file on the pipe connected to a child script simply causes the pipes to be closed and the Script action to complete.

The Quit action always causes the emulator to exit. (When called from the keyboard, it will exit only if not connected to a host.)

Normally, the AID actions (Clear, Enter, PF, and PA) will not complete until the host unlocks the keyboard. If the parameter to a String action includes a code for one these actions, it will also wait for the keyboard to unlock before proceeding.

The AidWait toggle controls with behavior. When this toggle is set (the default), actions block as described above. When the toggle is clear, AID actions complete immediately. The Wait(Output) action can then be used to delay a script until the host changes something on the screen, and the Wait(Unlock) action can be used to delay a script until the host unlocks the keyboard, regardless of the state of the AidWait toggle.

Note that the Script action does not complete until end-of-file is detected on the pipe or the CloseScript action is called by the child process. This behavior is not affected by the state of the AidWait toggle.

Script-Specific Actions

The following actions have been defined or modified for use with scripts. (Note that unlike the display on the status line, row and col coordinates used in these actions use [0,0] as their origin, not [1,1]).
AnsiText
Outputs whatever data that has been output by the host in NVT mode since the last time that AnsiText was called. The data is preceded by the string "data: ", and has had all control characters expanded into C backslash sequences.

This is a convenient way to capture NVT mode output in a synchronous manner without trying to decode the screen contents.

Ascii(row,col,rows,cols)
Ascii(row,col,length)
Ascii(length)
Ascii
Outputs an ASCII text representation of the screen contents. Each line is preceded by the string "data: ", and there are no control characters.

If four parameters are given, a rectangular region of the screen is output.

If three parameters are given, length characters are output, starting at the specified row and column.

If only the length parameter is given, that many characters are output, starting at the cursor position.

If no parameters are given, the entire screen is output.

The EBCDIC-to-ASCII translation and output character set depend on the both the emulator character set (the -charset option) and the locale. UTF-8 and certain DBCS locales may result in multi-byte expansions of EBCDIC characters that translate to ASCII codes greater than 0x7f.

AsciiField
Outputs an ASCII text representation of the field containing the cursor. The text is preceded by the string "data: ".
Connect(hostname)
Connects to a host. The command does not return until the emulator is successfully connected in the proper mode, or the connection fails.
CloseScript(status)
Causes the emulator to stop reading commands from the script. This is useful to allow a peer script to exit, with the emulator proceeding interactively. (Without this command, the emulator would exit when it detected end-of-file on standard input.) If the script was invoked by the Script action, the optional status is used as the return status of Script; if nonzero, Script will complete with an error, and if this script was invoked as part of login through the ibm_hosts file, the connection will be broken.
ContinueScript(param)
Allows a script that is waiting in a PauseScript action, below, to continue. The param given is output by the PauseScript action.
Disconnect
Disconnects from the host.
Ebcdic(row,col,rows,cols)
Ebcdic(row,col,length)
Ebcdic(length)
Ebcdic
The same function as Ascii above, except that rather than generating ASCII text, each character is output as a hexadecimal EBCDIC code, preceded by 0x.
EbcdicField
The same function as AsciiField above, except that it generates hexadecimal EBCDIC codes.
Info(message)
In x3270, pops up an informational message. In c3270 and wc3270, writes an informational message to the OIA (the line below the display). Not defined for s3270 or tcl3270.
Expect(text[,timeout])
Pauses the script until the specified text appears in the data stream from the host, or the specified timeout (in seconds) expires. If no timeout is specified, the default is 30 seconds. Text can contain standard C-language escape (backslash) sequences. No wild-card characters or pattern anchor characters are understood. Expect is valid only in NVT mode.
MoveCursor(row,col)
Moves the cursor to the specified coordinates.
PauseScript
Stops a script until the ContinueScript action, above, is executed. This allows a script to wait for user input and continue. Outputs the single parameter to ContinueScript.
PrintText([command,]filter)
) Pipes an ASCII representation of the current screen image through the named filter, e.g., lpr.
PrintText([html,],file,filename)
) Saves the current screen contents in a file. With the html option, saves it as HTML, otherwise saves it as plain ASCII.
PrintText(html,string)
Returns the current screen contents as HTML.
ReadBuffer(Ascii)
Dumps the contents of the screen buffer, one line at a time. Positions inside data fields are generally output as 2-digit hexadecimal codes in the current display character set. If the current locale specifies UTF-8 (or certain DBCS character sets), some positions may be output as multi-byte strings (4-, 6- or 8-digit codes). DBCS characters take two positions in the screen buffer; the first location is output as a multi-byte string in the current locale codeset, and the second location is output as a dash. Start-of-field characters (each of which takes up a display position) are output as SF(aa=nn[,...]), where aa is a field attribute type and nn is its value.

Attribute
Values
c0 basic 3270
20 protected
10 numeric
04 detectable
08 intensified
0c non-display
01 modified
41 highlighting
f1 blink
f2 reverse
f4 underscore
f8 intensify
42 foreground
f0 neutral black
f1 blue
f2 red
f3 pink
f4 green
f5 turquoise
f6 yellow
f7 neutral white
f8 black
f9 deep blue
fa orange
fb purple
fc pale green
fd pale turquoise
fe grey
ff white
43 character set
f0 default
f1 APL
f8 DBCS

Extended attributes (which do not take up display positions) are output as SA(aa=nn), with aa and nn having the same definitions as above (though the basic 3270 attribute will never appear as an extended attribute).

In addition, NULL characters in the screen buffer are reported as ASCII character 00 instead of 20, even though they should be displayed as blanks.

ReadBuffer(Ebcdic)
Equivalent to Snap(Ascii), but with the data fields output as hexadecimal EBCDIC codes instead. Additionally, if a buffer position has the Graphic Escape attribute, it is displayed as GE(xx).
Snap
Equivalent to Snap(Save) (see below).
Snap(Ascii,...)
Performs the Ascii action on the saved screen image.
Snap(Cols)
Returns the number of columns in the saved screen image.
Snap(Ebcdic,...)
Performs the Ebcdic action on the saved screen image.
Snap(ReadBuffer)
Performs the ReadBuffer action on the saved screen image.
Snap(Rows)
Returns the number of rows in the saved screen image.
Snap(Save)
Saves a copy of the screen image and status in a temporary buffer. This copy can be queried with other Snap actions to allow a script to examine a consistent screen image, even when the host may be changing the image (or even the screen dimensions) dynamically.
Snap(Status)
Returns the status line from when the screen was last saved.
Snap(Wait[,timeout],Output)
Pauses the script until the host sends further output, then updates the snap buffer with the new screen contents. Used when the host unlocks the keyboard (allowing the script to proceed after an Enter, PF or PA action), but has not finished updating the screen. This action is usually invoked in a loop that uses the Snap(Ascii) or Snap(Ebcdic) action to scan the screen for some pattern that indicates that the host has fully processed the last command.

The optional timeout parameter specifies a number of seconds to wait before failing the Snap action. The default is to wait indefinitely.

Source(file)
Read and execute commands from file. Any output from those commands will become the output from Source. If any of the commands fails, the Source command will not abort; it will continue reading commands until EOF.
Title(text)
Changes the x3270 window title to text.
Transfer(keyword=value,...)
Invokes IND$FILE file transfer. See FILE TRANSFER below.
Wait([timeout,] 3270Mode)
Used when communicating with a host that switches between NVT mode and 3270 mode. Pauses the script or macro until the host negotiates 3270 mode, then waits for a formatted screen as above.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

For backwards compatibility, Wait(3270) is equivalent to Wait(3270Mode)

Wait([timeout,] Disconnect)
Pauses the script until the host disconnects. Often used to after sending a logoff command to a VM/CMS host, to ensure that the session is not unintentionally set to disconnected state.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

Wait([timeout,] InputField)
A useful utility for use at the beginning of scripts and after the Connect action. In 3270 mode, waits until the screen is formatted, and the host has positioned the cursor on a modifiable field. In NVT mode, waits until the host sends at least one byte of data.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

For backwards compatibility, Wait is equivalent to Wait(InputField).

Wait([timeout,] NVTMode)
Used when communicating with a host that switches between 3270 mode and NVT mode. Pauses the script or macro until the host negotiates NVT mode, then waits for a byte from the host as above.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

For backwards compatibility, Wait(ansi) is equivalent to Wait(NVTMode).

Wait([timeout,] Output)
Pauses the script until the host sends further output. Often needed when the host unlocks the keyboard (allowing the script to proceed after a Clear, Enter, PF or PA action), but has not finished updating the screen. Also used in non-blocking AID mode (see DIFFERENCES for details). This action is usually invoked in a loop that uses the Ascii or Ebcdic action to scan the screen for some pattern that indicates that the host has fully processed the last command.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

Wait([timeout,] Unlock)
Pauses the script until the host unlocks the keyboard. This is useful when operating in non-blocking AID mode (toggle AidWait clear), to wait for a host command to complete. See DIFFERENCES for details).

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

Wait(timeout, Seconds)
Delays the script timeout seconds. Unlike the other forms of Wait, the timeout is not optional.
WindowState(mode)
If mode is Iconic, changes the x3270 window into an icon. If mode is Normal, changes the x3270 window from an icon to a normal window.

File Transfer

The Transfer action implements IND$FILE file transfer. This action requires that the IND$FILE program be installed on the IBM host, and that the 3270 cursor be located in a field that will accept a TSO or VM/CMS command.

The Transfer action can be entered at the command prompt with no parameters, which will cause it to prompt interactively for the file names and options. It can also be invoked with parameters to define the entire transfer.

Because of the complexity and number of options for file transfer, the parameters to the Transfer action take the unique form of option=value, and can appear in any order. Note that if the value contains spaces (such as a VM/CMS file name), then the entire parameter must be quoted, e.g., "HostFile=xxx foo a". The options are:

Option Required? Default Other Values
Direction No receive send
HostFile Yes    
LocalFile Yes    
Host No tso vm
Mode No ascii binary
Cr No remove add, keep
Remap No yes no
Exist No keep replace, append
Recfm No   fixed, variable, undefined
Lrecl No    
Blksize No    
Allocation No   tracks, cylinders, avblock
PrimarySpace No    
SecondarySpace No    
BufferSize No 4096  

The option details are as follows.

Direction
send to send a file to the host, receive to receive a file from the host.
HostFile
The name of the file on the host.
LocalFile
The name of the file on the local workstation.
Host
The type of host (which dictates the form of the IND$FILE command): tso (the default) or vm.
Mode
Use ascii (the default) for a text file, which will be translated between EBCDIC and ASCII as necessary. Use binary for non-text files.
Cr
Controls how Newline characters are handled when transferring Mode=ascii files. remove (the default) strips Newline characters in local files before transferring them to the host. add adds Newline characters to each host file record before transferring it to the local workstation. keep preserves Newline characters when transferring a local file to the host.
Remap
Controls text translation for Mode=ascii files. The value yes (the default) causes x3270-script to remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page. The value no causes x3270-script to pass the text to or from the host as-is, leaving all translation to the IND$FILE program on the host.
Exist
Controls what happens when the destination file already exists. keep (the default) preserves the file, causing the Transfer action to fail. replace overwrites the destination file with the source file. append appends the source file to the destination file.
Recfm
Controls the record format of files created on the host. fixed creates a file with fixed-length records. variable creates a file with variable-length records. undefined creates a file with undefined-length records (TSO hosts only). The Lrecl option controls the record length or maximum record length for Recfm=fixed and Recfm=variable files, respectively.
Lrecl
Specifies the record length (or maximum record length) for files created on the host.
Blksize
Specifies the block size for files created on the host. (TSO hosts only.)
Allocation
Specifies the units for the TSO host PrimarySpace and SecondarySpace options: tracks, cylinders or avblock.
PrimarySpace
Primary allocation for a file created on a TSO host. The units are given by the Allocation option.
SecondarySpace
Secondary allocation for a file created on a TSO host. The units are given by the Allocation option.
BufferSize
Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them.

See Also

expect(1)
ksh(1)
x3270(1)
c3270(1)
s3270(1)
ws3270(1)

Version

Version 3.3.10ga4
This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/s3270/html/x3270.xbm0000644000175000017500000000434411254565707016214 0ustar bastianbastian#define x3270_width 50 #define x3270_height 50 static unsigned char x3270_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0xf0, 0xff, 0xaf, 0xfe, 0xff, 0xe7, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0xf8, 0xab, 0xaa, 0xaa, 0xea, 0x0f, 0x00, 0xf8, 0x55, 0x55, 0x55, 0xd5, 0x0f, 0x00, 0xf8, 0xaa, 0xaa, 0xaa, 0xaa, 0x0f, 0x00, 0x78, 0x55, 0x55, 0x55, 0x55, 0x0f, 0x00, 0xf8, 0xaa, 0xaa, 0xaa, 0xaa, 0x0f, 0x00, 0x78, 0x55, 0x55, 0x55, 0x55, 0x0f, 0x00, 0xf8, 0xaa, 0xaa, 0xaa, 0xaa, 0x0f, 0x00, 0x78, 0x55, 0x55, 0x55, 0x55, 0x0f, 0x00, 0xf8, 0xaa, 0xaa, 0xaa, 0xaa, 0x0f, 0x00, 0x78, 0x55, 0x55, 0x55, 0x55, 0x0f, 0x00, 0xf8, 0xaa, 0xaa, 0xaa, 0xaa, 0x0f, 0x00, 0x78, 0x55, 0x55, 0x55, 0x55, 0x0f, 0x00, 0xf8, 0xfa, 0xff, 0xff, 0xbf, 0x0f, 0x00, 0x78, 0xed, 0x62, 0x0c, 0x73, 0x0f, 0x00, 0xf8, 0x5a, 0xdf, 0x7b, 0xad, 0x0f, 0x00, 0x78, 0xb5, 0xe7, 0xbc, 0x6d, 0x0f, 0x00, 0xf8, 0x5a, 0x5f, 0xdf, 0xed, 0x0f, 0x00, 0x78, 0xed, 0x62, 0xd8, 0x73, 0x0f, 0x00, 0xf8, 0xfa, 0xff, 0xff, 0xff, 0x0f, 0x00, 0xf8, 0x55, 0x55, 0x55, 0xd5, 0x0f, 0x00, 0xf8, 0xab, 0xaa, 0xaa, 0xea, 0x0f, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x7f, 0x06, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x7f, 0x06, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x43, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x10, 0x44, 0x44, 0x44, 0x84, 0x42, 0x00, 0x08, 0x11, 0x11, 0x11, 0x41, 0x42, 0x00, 0x84, 0x88, 0x88, 0x88, 0x48, 0x42, 0x00, 0x24, 0x22, 0x22, 0x22, 0x22, 0xfe, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x1f, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; ibm-3270-3.3.10ga4/s3270/html/s3270-man.html0000644000175000017500000011515611261527776017144 0ustar bastianbastian s3270 Manual Page

s3270 Manual Page

Contents

Name
Synopsis
Description
Options
Character Sets
NVT (ANSI) Mode
Toggles
Actions
File Transfer
The PrintText Action
Nested Scripts
Passthru
Proxy
Resources
Files
See Also
Copyrights
Version

Name

s3270 - IBM host access tool

Synopsis

s3270 [options] [host]
s3270 [options] session-file.s3270

Description

s3270 opens a telnet connection to an IBM host, then allows a script to control the host login session. It is derived from x3270(1), an X-windows IBM 3270 emulator. It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection), and supports IND$FILE file transfer.

The full syntax for host is:

[prefix:]...[LUname@]hostname[:port]

Prepending a P: onto hostname causes the connection to go through the telnet-passthru service rather than directly to the host. See PASSTHRU below.

Prepending an S: onto hostname removes the "extended data stream" option reported to the host. See -tn below for further information.

Prepending an N: onto hostname turns off TN3270E support for the session.

Prepending an L: onto hostname causes s3270 to first create an SSL tunnel to the host, and then create a TN3270 session inside the tunnel. (This function is supported only if s3270 was built with SSL/TLS support). Note that TLS-encrypted sessions using the TELNET START-TLS option are negotiated with the host automatically; for these sessions the L: prefix should not be used.

A specific Logical Unit (LU) name to use may be specified by prepending it to the hostname with an `@'. Multiple LU names to try can be separated by commas. An empty LU can be placed in the list with an extra comma. (Note that the LU name is used for different purposes by different kinds of hosts. For example, CICS uses the LU name as the Terminal ID.)

The hostname may optionally be placed inside square-bracket characters `[' and `]'. This will prevent any colon `:' characters in the hostname from being interpreted as indicating option prefixes or port numbers. This allows numeric IPv6 addresses to be used as hostnames.

On systems that support the forkpty library call, the hostname may be replaced with -e and a command string. This will cause s3270 to connect to a local child process, such as a shell.

The port to connect to defaults to telnet. This can be overridden with the -port option, or by appending a port to the hostname with a colon `:'. (For compatability with previous versions of s3270 and with tn3270(1), the port may also be specified as a second, separate argument.)

Options

s3270 understands the following options:
-charset name
Specifies an EBCDIC host character set. See CHARACTER SETS below.
-clear toggle
Sets the initial value of toggle to false. The list of toggle names is under TOGGLES below.
-im method
Specifies the name of the input method to use for multi-byte input. (Supported only when s3270 is compiled with DBCS support.)
-km name
Specifies the local encoding method for multi-byte text. name is an encoding name recognized by the ICU library. (Supported only when s3270 is compiled with DBCS support, and necessary only when s3270 cannot figure it out from the locale.)
-model name
The model of 3270 display to be emulated. The model name is in two parts, either of which may be omitted:

The first part is the base model, which is either 3278 or 3279. 3278 specifies a monochrome (green on black) 3270 display; 3279 specifies a color 3270 display.

The second part is the model number, which specifies the number of rows and columns. Model 4 is the default.

Model Number
Columns
Rows
2
80
24
3
80
32
4
80
43
5
132
27

Note: Technically, there is no such 3270 display as a 3279-4 or 3279-5, but most hosts seem to work with them anyway.

The default model is 3278-4.

-oversize colsxrows
Makes the screen larger than the default for the chosen model number. This option has effect only in combination with extended data stream support (controlled by the "s3270.extended" resource), and only if the host supports the Query Reply structured field. The number of columns multiplied by the number of rows must not exceed 16383 (3fff hex), the limit of 14-bit 3270 buffer addressing.
-port n
Specifies a different TCP port to connect to. n can be a name from /etc/services like telnet, or a number. This option changes the default port number used for all connections. (The positional parameter affects only the initial connection.)
-proxy type:host[:port]
Causes s3270 to connect via the specified proxy, instead of using a direct connection. The host can be an IP address or hostname. The optional port can be a number or a service name. For a list of supported proxy types, see PROXY below.
-scriptport port
Causes s3270 to listen for scripting connections on local TCP port port.
-set toggle
Sets the initial value of toggle to true. The list of toggle names is under TOGGLES below.
-socket
Causes the emulator to create a Unix-domain socket when it starts, for use by script processes to send commands to the emulator. The socket is named /tmp/x3sck.process_id. The -p option of x3270if causes it to use this socket, instead of pipes specified by environment variables.
-tn name
Specifies the terminal name to be transmitted over the telnet connection. The default name is IBM-model_name-E, for example, IBM-3278-4-E.

Some hosts are confused by the -E suffix on the terminal name, and will ignore the extra screen area on models 3, 4 and 5. Prepending an s: on the hostname, or setting the "s3270.extended" resource to "false", removes the -E from the terminal name when connecting to such hosts.

The name can also be specified with the "s3270.termName" resource.

-trace
Turns on data stream and event tracing at startup. The default trace file name is /tmp/x3trc.process_id.
-tracefile file
Specifies a file to save data stream and event traces into.
-tracefilesize size
Places a limit on the size of a trace file. If this option is not specified, or is specified as 0 or none, the trace file will be unlimited. If specified, the trace file cannot already exist, and the (silently enforced) minimum size is 64 Kbytes. The value of size can have a K or M suffix, indicating kilobytes or megabytes respectively.
-v Display the version and build options for s3270
and exit.
-xrm "s3270.resource: value"
Sets the value of the named resource to value. Resources control less common s3270 options, and are defined under RESOURCES below.

Character Sets

The -charset option or the "s3270.charset" resource controls the EBCDIC host character set used by s3270. Available sets include:

Charset Name
Host Code Page
Character Set
belgian
500
iso8859-1
belgian-euro
1148
iso8859-15
bracket
037
iso8859-1
brazilian
275
iso8859-1
chinese-gb18030
1388
iso8859-1 + iso10646-1
cp1047
1047
iso8859-1
cp870
870
iso8859-2
finnish
278
iso8859-1
finnish-euro
1143
iso8859-15
french
297
iso8859-1
french-euro
1147
iso8859-15
german
273
iso8859-1
german-euro
1141
iso8859-15
greek
423
iso8859-7
hebrew
424
iso8859-8
icelandic
871
iso8859-1
icelandic-euro
1149
iso8859-15
italian
280
iso8859-1
italian-euro
1144
iso8859-15
japanese-kana
930
jisx0201.1976-0 + jisx0208.1983-0
japanese-latin
939
jisx0201.1976-0 + jisx0208.1983-0
norwegian
277
iso8859-1
norwegian-euro
1142
iso8859-15
russian
880
koi8-r
simplified-chinese
935
iso8859-1 + gb2312.1980-0
slovenian
870
iso8859-2
spanish
284
iso8859-1
spanish-euro
1145
iso8859-15
thai
1160
iso8859-11 tis620.2529-0
traditional-chinese
937
iso8859-1 + Big5-0
turkish
1026
iso8859-9
uk
285
iso8859-1
uk-euro
1146
iso8859-15
us-euro
1140
iso8859-15
us-intl
037
iso8859-1

The default character set is bracket, which is useful for common U.S. IBM hosts which use EBCDIC codes AD and BD for the `[' and `]' characters, respectively.

Note that any of the host code pages listed above can be specified by adding cp to the host code page, e.g., cp037 for host code page 037. Also note that the code pages available for a given version of s3270 are displayed by the -v command-line option.

NVT (ANSI) Mode

Some hosts use an ASCII front-end to do initial login negotiation, then later switch to 3270 mode. s3270 will emulate an ANSI X.64 terminal until the host places it in 3270 mode (telnet BINARY and SEND EOR modes, or TN3270E mode negotiation).

If the host later negotiates to stop functioning in 3270 mode, s3270 will return to ANSI emulation.

In NVT mode, s3270 supports both character-at-a-time mode and line mode operation. You may select the mode with a menu option. When in line mode, the special characters and operational characteristics are defined by resources:

Mode/Character Resource Default
Translate CR to NL s3270.icrnl true
Translate NL to CR s3270.inlcr false
Erase previous character s3270.erase ^?
Erase entire line s3270.kill ^U
Erase previous word s3270.werase ^W
Redisplay line s3270.rprnt ^R
Ignore special meaning of next character s3270.lnext ^V
Interrupt s3270.intr ^C
Quit s3270.quit ^\
End of file s3270.eof ^D

Toggles

s3270 has a number of configurable modes which may be selected by the -set and -clear options.
monoCase
If set, s3270 operates in uppercase-only mode.
blankFill
If set, s3270 behaves in some un-3270-like ways. First, when a character is typed into a field, all nulls in the field to the left of that character are changed to blanks. This eliminates a common 3270 data-entry surprise. Second, in insert mode, trailing blanks in a field are treated like nulls, eliminating the annoying `lock-up' that often occurs when inserting into an field with (apparent) space at the end.
lineWrap
If set, the ANSI terminal emulator automatically assumes a NEWLINE character when it reaches the end of a line.

The names of the toggles for use with the -set and -clear options are as follows:

Option Name
Monocase monoCase
Blank Fill blankFill
Track Cursor cursorPos
Trace Data Stream dsTrace
Trace Events eventTrace
Save Screen(s) in File screenTrace
Wraparound lineWrap

These names are also used as the first parameter to the Toggle action.

Actions

Here is a complete list of basic s3270 actions. Script-specific actions are described on the x3270-script(1) manual page.

Actions marked with an asterisk (*) may block, sending data to the host and possibly waiting for a response.

*Attn attention key
BackSpace move cursor left (or send ASCII BS)
BackTab tab to start of previous input field
CircumNot input "^" in NVT mode, or "¬" in 3270 mode
*Clear clear screen
*Connect(host) connect to host
*CursorSelect Cursor Select AID
Delete delete character under cursor (or send ASCII DEL)
DeleteField delete the entire field
DeleteWord delete the current or previous word
*Disconnect disconnect from host
Down move cursor down
Dup duplicate field
*Enter Enter AID (or send ASCII CR)
Erase erase previous character (or send ASCII BS)
EraseEOF erase to end of current field
EraseInput erase all input fields
Execute(cmd) execute a command in a shell
FieldEnd move cursor to end of field
FieldMark mark field
HexString(hex_digits) insert control-character string
Home move cursor to first input field
Insert set insert mode
*Interrupt send TELNET IP to host
Key(keysym) insert key keysym
Key(0xxx) insert key with character code xx
Left move cursor left
Left2 move cursor left 2 positions
MonoCase toggle uppercase-only mode
MoveCursor(row, col) move cursor to (row,col)
Newline move cursor to first field on next line (or send ASCII LF)
NextWord move cursor to next word
*PA(n) Program Attention AID (n from 1 to 3)
*PF(n) Program Function AID (n from 1 to 24)
PreviousWord move cursor to previous word
Quit exit s3270
Redraw redraw window
Reset reset locked keyboard
Right move cursor right
Right2 move cursor right 2 positions
*Script(command[,arg...]) run a script
*String(string) insert string (simple macro facility)
*SysReq System Request AID
Tab move cursor to next input field
Toggle(option[,set|clear]) toggle an option
ToggleInsert toggle insert mode
ToggleReverse toggle reverse-input mode
*Transfer(option=value...) file transfer
Up move cursor up

File Transfer

The Transfer action implements IND$FILE file transfer. This action requires that the IND$FILE program be installed on the IBM host, and that the 3270 cursor be located in a field that will accept a TSO or VM/CMS command.

Because of the complexity and number of options for file transfer, the parameters to the Transfer action take the unique form of option=value, and can appear in any order. Note that if the value contains spaces (such as a VM/CMS file name), then the entire parameter must be quoted, e.g., "HostFile=xxx foo a". The options are:

Option Required? Default Other Values
Direction No receive send
HostFile Yes    
LocalFile Yes    
Host No tso vm
Mode No ascii binary
Cr No remove add, keep
Remap No yes no
Exist No keep replace, append
Recfm No   fixed, variable, undefined
Lrecl No    
Blksize No    
Allocation No   tracks, cylinders, avblock
PrimarySpace No    
SecondarySpace No    
BufferSize No 4096  

The option details are as follows.

Direction
send to send a file to the host, receive to receive a file from the host.
HostFile
The name of the file on the host.
LocalFile
The name of the file on the local workstation.
Host
The type of host (which dictates the form of the IND$FILE command): tso (the default) or vm.
Mode
Use ascii (the default) for a text file, which will be translated between EBCDIC and ASCII as necessary. Use binary for non-text files.
Cr
Controls how Newline characters are handled when transferring Mode=ascii files. remove (the default) strips Newline characters in local files before transferring them to the host. add adds Newline characters to each host file record before transferring it to the local workstation. keep preserves Newline characters when transferring a local file to the host.
Remap
Controls text translation for Mode=ascii files. The value yes (the default) causes s3270 to remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page. The value no causes s3270 to pass the text to or from the host as-is, leaving all translation to the IND$FILE program on the host.
Exist
Controls what happens when the destination file already exists. keep (the default) preserves the file, causing the Transfer action to fail. replace overwrites the destination file with the source file. append appends the source file to the destination file.
Recfm
Controls the record format of files created on the host. fixed creates a file with fixed-length records. variable creates a file with variable-length records. undefined creates a file with undefined-length records (TSO hosts only). The Lrecl option controls the record length or maximum record length for Recfm=fixed and Recfm=variable files, respectively.
Lrecl
Specifies the record length (or maximum record length) for files created on the host.
Blksize
Specifies the block size for files created on the host. (TSO hosts only.)
Allocation
Specifies the units for the TSO host PrimarySpace and SecondarySpace options: tracks, cylinders or avblock.
PrimarySpace
Primary allocation for a file created on a TSO host. The units are given by the Allocation option.
SecondarySpace
Secondary allocation for a file created on a TSO host. The units are given by the Allocation option.
BufferSize
Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them.

The PrintText Action

The PrintText produces screen snapshots in a number of different forms. The default form wth no arguments sends a copy of the screen to the default printer. A single argument is the command to use to print, e.g., lpr. Multiple arguments can include keywords to control the output of PrintText:
file filename
Save the output in a file.
html
Save the output as HTML. This option implies file.
rtf
Save the output as RichText. This option implies file. The font defaults to Courier New and the point size defaults to 8. These can be overridden by the printTextFont and printTextSize resources, respectively.
string
Return the output as a string. This can only be used from scripts.
modi
Render modified fields in italics.
caption text
Add the specified text as a caption above the output. Within text, the special sequence %T% will be replaced with a timestamp.
command command
Directs the output to a command. This allows one or more of the other keywords to be specified, while still sending the output to the printer.

Nested Scripts

There are several types of nested script functions available.
The String Action
The simplest method for nested scripts is provided via the String action. The arguments to String are one or more double-quoted strings which are inserted directly as if typed. The C backslash conventions are honored as follows. (Entries marked * mean that after sending the AID code to the host, s3270 will wait for the host to unlock the keyboard before further processing the string.)
\b Left
\exxxx EBCDIC character in hex
\f Clear*
\n Enter*
\pan PA(n)*
\pfnn PF(nn)*
\r Newline
\t Tab
\T BackTab
\uxxxx Unicode character in hex
\xxxxx Unicode character in hex

Note that the numeric values for the \e, \u and \x sequences can be abbreviated to 2 digits. Note also that EBCDIC codes greater than 255 and some Unicode character codes represent DBCS characters, which will work only if s3270 is built with DBCS support and the host allows DBCS input in the current field.

Note: The strings are in ASCII and converted to EBCDIC, so beware of inserting control codes.

There is also an alternate form of the String action, HexString, which is used to enter non-printing data. The argument to HexString is a string of hexadecimal digits, two per character. A leading 0x or 0X is optional. In 3270 mode, the hexadecimal data represent EBCDIC characters, which are entered into the current field. In NVT mode, the hexadecimal data represent ASCII characters, which are sent directly to the host.

The Script Action
This action causes s3270 to start a child process which can execute s3270 actions. Standard input and output from the child process are piped back to s3270. The Script action is fully documented in x3270-script(1).

Passthru

s3270 supports the Sun telnet-passthru service provided by the in.telnet-gw server. This allows outbound telnet connections through a firewall machine. When a p: is prepended to a hostname, s3270 acts much like the itelnet(1) command. It contacts the machine named internet-gateway at the port defined in /etc/services as telnet-passthru (which defaults to 3514). It then passes the requested hostname and port to the in.telnet-gw server.

Proxy

The -proxy option or the s3270.proxy resource causes s3270 to use a proxy server to connect to the host. The syntax of the option or resource is:
type:host[:port]
The supported values for type are:
Proxy Type
Protocol
Default Port
http
RFC 2817 HTTP tunnel (squid)
3128
passthru
Sun in.telnet-gw
none
socks4
SOCKS version 4
1080
socks5
SOCKS version 5 (RFC 1928)
1080
telnet
No protocol (just send connect host port)
none

The special types socks4a and socks5d can also be used to force the proxy server to do the hostname resolution for the SOCKS protocol.

Resources

Certain s3270 options can be configured via resources. Resources are defined by -xrm options. The definitions are similar to X11 resources, and use a similar syntax. The resources available in s3270 are:

Resource Default Option Purpose
blankFill False -set blankFill Blank Fill mode
charset bracket -charset EBCDIC character set
dbcsCgcsgid     Override DBCS CGCSGID
dsTrace False -trace Data stream tracing
eof ^D   NVT-mode EOF character
erase ^H   NVT-mode erase character
extended True   Use 3270 extended data stream
eventTrace False -trace Event tracing
icrnl False   Map CR to NL on NVT-mode input
inlcr False   Map NL to CR in NVT-mode input
intr ^C   NVT-mode interrupt character
kill ^U   NVT-mode kill character
lineWrap False -set lineWrap NVT line wrap mode
lnext ^V   NVT-mode lnext character
m3279 (note 1) -model 3279 (color) emulation
monoCase False -set monoCase Mono-case mode
numericLock False   Lock keyboard for numeric field error
oerrLock False   Lock keyboard for input error
oversize   -oversize Oversize screen dimensions
port telnet -port Non-default TCP port
quit ^\   NVT-mode quit character
rprnt ^R   NVT-mode reprint character
sbcsCgcsgid     Override SBCS CGCSGID
secure False   Disable "dangerous" options
termName (note 2) -tn TELNET terminal type string
traceDir /tmp   Directory for trace files
traceFile (note 3) -tracefile File for trace output
werase ^W   NVT-mode word-erase character

Note 1: m3279 defaults to False. It can be forced to True with the proper -model option.

Note 2: The default terminal type string is constructed from the model number, color emulation, and extended data stream modes. E.g., a model 2 with color emulation and the extended data stream option would be sent as IBM-3279-2-E. Note also that when TN3270E mode is used, the terminal type is always sent as 3278, but this does not affect color capabilities.

Note 3: The default trace file is x3trc.pid in the directory specified by the traceDir resource.

If more than one -xrm option is given for the same resource, the last one on the command line is used.

Files

/usr/local/lib/x3270/ibm_hosts

See Also

x3270(1), c3270(1), tcl3270(1), ibm_hosts(5), x3270-script(1), telnet(1), tn3270(1)
Data Stream Programmer's Reference, IBM GA23-0059
Character Set Reference, IBM GA27-3831
RFC 1576, TN3270 Current Practices
RFC 1646, TN3270 Extensions for LUname and Printer Selection
RFC 2355, TN3270 Enhancements

Copyrights

Copyright © 1993-2009, Paul Mattes.
Copyright © 2004-2005, Don Russell.
Copyright © 2004, Dick Altenbern.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

*
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
*
Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Version

s3270 3.3.10ga4
This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/s3270/html/Bugs.html0000644000175000017500000000056111254565707016504 0ustar bastianbastian Known Bugs in s3270 3.3

Known Bugs in s3270 3.3

(none)
ibm-3270-3.3.10ga4/s3270/html/Resources.html0000644000175000017500000007275411261527777017576 0ustar bastianbastian s3270 Resources

s3270 Resources

Resources are used to configure s3270. Resources are named items with string, integer or Boolean values.

Resource definitions come from the following sources:

  • Default values are compiled into s3270.
  • If a session file foo.s3270 is specified on the command line, its contents are applied. These definitions override resource values defined by compiled-in defaults.
  • Command-line options override all other resource definitions. If more than one command-line option sets a resource, the last one is used.
Many resources have their own command-line switches, which are listed below. Those that do not can still be set from the command-line via the -xrm command-line option. For example the s3270.bsdTm resource can be set by the following command-line option:
     -xrm 's3270.bsdTm: true'
 
Note that -xrm is supported on all of the 3270 emulators, not just on x3270.

Resource File Syntax

A resource file (session file) has the following syntax.
  • Each definition consists of:
        s3270.resource-name: value
      
  • Comment lines begin with !.
  • Line continuation is indicated by a backshash (\) character at the end of a line.

Alphabetical Resource List

Name: s3270.aidWait
Type: Boolean
Default: false
Command Line: -set aidWait , -clear aidWait
Description:

When true, s3270 will not block a script after executing an AID action (Enter, Clear, PF or PA). It is then script's responsibility to poll s3270's status until it shows that the keyboard is no longer unlocked.

Name: s3270.blankFill
Type: Boolean
Default: false
Command Line: -set blankFill , -clear blankFill
Description:

When true, in 3270 mode s3270 will automatically convert trailing blanks in a field to NULLs in order to insert a character, and will automatically convert leading NULLs to blanks so that input data is not squeezed to the left. This works around some of the quirkier behavior of real 3270 terminals.

Name: s3270.bsdTm
Type: Boolean
Default: false
Description:

Defines s3270's response to the TELNET DO TIMING MARK option. When set to false, s3270 will respond to DO TIMING MARK with WONT TIMING MARK, which is consistent with most modern TELNET clients. When true, s3270 will respond with WILL TIMING MARK, which is consistent with the old BSD telnet command and with previous versions of s3270. In either case, s3270 will never respond to a DONT TIMING MARK option.

Name: s3270.certFile
Type: String
Command Line: -certfile
Description:

Gives the name of a certificate file, used by the OpenSSL library.

Name: s3270.charset
Type: String
Default: bracket
Command Line: -charset
Description:

This defines the host EBCDIC character set, that is, what glyph (image) is displayed for each EBCDIC code sent by the host, and what EBCDIC code is sent to the host for each character typed on the keyboard. This is more correctly referred to as the host code page.

To display the character sets supported by s3270, use the -v command-line option.

Name: s3270.color8
Type: Boolean
Default: false
Description:

If true, s3270 will respond to a Query(Color) with a list of 8 supported colors. If false, it will send a list of 16 colors. The 8-color setting is required for some hosts which abort a session if 16 colors are reported.

Name: s3270.confDir
Type: String
Default: /usr/local/etc/x3270
Description:

Defines the s3270 configuration directory, where s3270 will search for the ibm_hosts file by default. (See s3270.hostsFile.)

Name: s3270.dbcsCgcsgid
Type: String
Description:

Overrides the compiled-in value of the CGCSGID for the current host character set, which will be reported to the host in response to a Query(Character Sets). The value is an integer, which can be prefixed with '0x' to be in hexadecimal. The upper 16 bits are the GCSGID (character set) and the lower 16 bits are the CPGID (code page). This value applies only to the double-byte (DBCS) character set. Use s3270.sbcsCgcsgid for the single-byte (SBCS) character set.

Name: s3270.dftBufferSize
Type: Integer
Default: 4096
Description:

Specifies the default buffer size for DFT IND$FILE file transfers. This value can be overridden in the File Transfer dialog and by a parameter to the Transfer action.

Name: s3270.dsTrace
Type: Boolean
Default: false
Command Line: -trace , -set dsTrace , -clear dsTrace
Description:

When true, s3270 writes a hexadecimal representation of all network traffic (and its interpretation) into a file, which defaults to /tmp/x3trc.pid. The directory prefix is defined by s3270.traceDir. If s3270.traceFile is defined, it gives the entire pathname and s3270.traceDir is ignored.

Name: s3270.eof
Type: String
Default: ^D
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when s3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current line of input to be forwarded to the host without a trailing CR/LF sequence.

Name: s3270.erase
Type: String
Default: ^?
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (s3270 gathers a line of input before forwarding it ot the host), entering this character at the keyboard will cause s3270 to discard the last character on the input line.

When connected in character-at-a-time mode (s3270 sends each keystroke to the host as it is entered), this is the character that will be sent to the host by the Erase action.

Name: s3270.eventTrace
Type: Boolean
Default: false
Command Line: -set eventTrace , -clear eventTrace
Description:

When true, s3270 traces information about keyboard and mouse events into a file. The default file name is /tmp/x3trc.pid. The directory prefix is defined by s3270.traceDir. If s3270.traceFile is defined, it gives the entire pathname and s3270.traceDir is ignored.

Name: s3270.extended
Type: Boolean
Default: false
Command Line: -extended
Description:

Deprecated resource -- replaced by s3270.model syntax

Indicates support for the 3270 Extended Data Stream.

Name: s3270.hostname
Type: String
Description:

Gives the name of the host to connect to. The name can include the usual options (prefixes to specify special connection options, LU names, and port). A hostname specified on the command line takes precedence over s3270.hostName.

The most common use of s3270.hostName is in session files, where a file is used to pass all of the options to establish a s3270 session.

Name: s3270.hostsFile
Type: String
Default: /usr/local/etc/x3270/ibm_hosts
Description:

The pathname of a file containing hostname aliases. The file can also be used to define a set of actions to perform when connecting to a host.

The format of the file is explained on the ibm_hosts manual page. The default pathname is actually ibm_hosts in the directory defined by s3270.confDir.

Name: s3270.icrnl
Type: Boolean
Default: true
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. It controls whether input carriage returns are mapped to newlines.

Name: s3270.inlcr
Type: Boolean
Default: false
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. It controls whether input newlines are mapped to carriage returns.

Name: s3270.intr
Type: String
Default: ^C
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When this character is typed on the keyboard, the TELNET IP (Interrupt Process) sequence is sent to the host.

Name: s3270.kill
Type: String
Default: ^U
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when s3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current input line to be erased.

When connected in character-at-a-time mode (when s3270 sends each keystroke to the host), this is the ASCII character that is sent to the host by the DeleteField action.

Name: s3270.lineWrap
Type: Boolean
Default: true
Command Line: -set lineWrap , -clear lineWrap
Description:

This setting is used only in NVT mode. When true, s3270 will automatically insert a CR/LF sequence when output reaches the end of a line. When false, output will pile up at the end of each line until the host sends a CR/LF sequence.

Name: s3270.loginMacro
Type: String
Description:

Defines a sequence of commands to run as soon as a host connection is established. Usually these would be commands used to navigate through login screens, such String, Tab and Enter.

If a s3270.hostsFile is in use and a matching entry is found, the login macro from that entry will be used in preference to the s3270.loginMacro.

Name: s3270.lnext
Type: String
Default: ^V
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when s3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard removes any special meaning from the next character entered.

Name: s3270.m3279
Type: Boolean
Default: false
Command Line: -color
Description:

Deprecated resource -- replaced by s3270.model syntax

Indicates support for color (a 3279 terminal).

Name: s3270.model
Type: String
Default: 3279-4-E
Command Line: -model
Description:

The terminal model that s3270 is emulating. The model is in three parts, separated by dashes; each part is optional.

  • 3278 or 3279
    3278 specifies a monochrome (green) 3270 display.
    3279 specifies a color 3270 display.
  • 2, 3, 4 or 5
    The model number, which determines the size of the screen.
    Model 2 has 24 rows and 80 columns.
    Model 3 has 32 rows and 80 columns.
    Model 4 has 43 rows and 80 columns.
    Model 5 has 27 rows and 132 columns.
    The default is 4.
  • E
    An optional suffix which indicates support for the 3270 Extended Data Stream (color, extended attributes, Query Reply). 3279 implies E.

Name: s3270.monoCase
Type: Boolean
Default: false
Command Line: -set monoCase , -clear monoCase
Description:

When true, causes s3270 to run in uppercase-only mode.

Name: s3270.numericLock
Type: Boolean
Default: false
Description:

When true, causes s3270 to lock the keyboard when non-numeric data is entered into fields with the Numeric attribute.

Name: s3270.onlcr
Type: Boolean
Default: true
Description:

Used only in NVT line-at-a-time mode; similar to the stty parameter of the same name. It controls whether output newlines are mapped to CR/LF sequences.

Name: s3270.oerrLock
Type: Boolean
Default: true
Description:

If true, operator errors (typing into protected fields, insert overflow, etc.) will cause the keyboard to lock with an error message in the OIA (status line). If false, these errors will simply cause the terminal bell will ring, without any keyboard lock or message.

Name: s3270.once
Type: Boolean
Default: false
Command Line: -once
Description:

When true, s3270 will exit as soon as a host disconnects. The default is false if no hostname is specified on the command line, true otherwise.

Name: s3270.oversize
Type: String
Command Line: -oversize
Description:

Sets the screen dimensions to be larger than the default for the chosen model. Its value is a string in the format colsxrows. It is used only if the s3270.model includes the "-E" (extended data stream) suffix, and only if the specified dimensions are larger than the model number defaults. Also, only hosts that support the Query Reply structured field will function properly with s3270 in this mode.

Name: s3270.port
Type: String
Default: telnet
Command Line: -port
Description:

The name of the default TCP port for s3270 to connect to. This can be either a symbolic name from /etc/services, or an integer.

Name: s3270.proxy
Type: String
Command Line: -proxy
Description:

Defines a proxy server that s3270 will use to connect to hosts. The value is of the form type:server[:port], where options for type are described on the s3270 manual page.

Name: s3270.quit
Type: String
Default: ^\
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when s3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the TELNET BREAK sequence to be sent to the host.

Name: s3270.rprnt
Type: String
Default: ^R
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when s3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current input line to be redisplayed.

Name: s3270.sbcsCgcsgid
Type: String
Description:

Overrides the compiled-in value of the CGCSGID for the current host character set. The value is an integer, which can be prefixed with '0x' to be in hexadecimal. The upper 16 bits are the GCSGID (character set) and the lower 16 bits are the CPGID (code page). This value applies only to the single-byte (SBCS) character set. Use s3270.dbcsCgcsgid for the double-byte (DBCS) character set.

Name: s3270.screenTrace
Type: Boolean
Default: false
Command Line: -set screenTrace , -clear screenTrace
Description:

When true, s3270 will save an ASCII version of the screen image in a file every time it changes. The file name defaults to /tmp/x3scr.pid. The directory prefix is defined by the s3270.traceDir resource. If the s3270.screenTraceFile resource is defined, it defines the file name and s3270.traceDir is ignored.

Name: s3270.screenTraceFile
Type: String
Description:

If defined, gives the name of the file that screen traces will be written into.

Name: s3270.scriptPort
Type: Integer
Command Line: -scriptport
Description:

If defined, s3270 will accept script connections on the specified local TCP port. The rules for the commands passed over these connections are documented in the x3270-script manual page.

Name: s3270.socket
Type: Boolean
Default: false
Command Line: -socket
Description:

When true, s3270 will create a Unix-domain socket than can be used by an external script to control the session. The name of the socket is /tmp/x3sck.pid. The -p option of the x3270if command can be used to connect to this socket.

Name: s3270.suppressActions
Type: String
Description:

A list of whitespace-separated action names, with or without parentheses, which are to be ignored. The actions will be completely inaccessible, whether by keymaps, scripts, macros or the Execute an Action menu option. This resource is intended to be used as a security precaution for users who can define their own keymaps, but who do not have access to resource definitions or command-line options.

Name: s3270.termName
Type: String
Command Line: -tn
Description:

An alternate name to be sent in response to the host's TELNET DO OPTION TERMINAL-NAME request. The default is IBM-, followed by the value of s3270.model.

Name: s3270.traceDir
Type: String
Default: /tmp
Description:

Defines the directory that trace files are written into.

Name: s3270.traceFile
Type: String
Command Line: -tracefile
Description:

If defined, gives the name of the file that data stream and event traces will be written into.

Name: s3270.traceFileSize
Type: String
Command Line: -tracefilesize
Description:

If defined, gives a limit on the size of the file that data stream and event traces will be written into. If not defined, or defined as 0, there will be no limit on the size of the file. The value is a number, followed by an optional suffix. If the suffix is K (e.g., 128K), the value will be multiplied by 1024. If the suffix is M, the value will be multiplied by (1024*1024). The size limit enforced at operation boundaries, not per byte, so the actual file may grow slightly larger. When the file size exceeds the limit, the second half of the file will be written over the first, so that in steady state, the file size will vary between half the s3270.traceFileSize and the entire s3270.traceFileSize.

Name: s3270.unlockDelay
Type: Boolean
Default: true
Description:

When s3270 sends the host an AID (the Enter, Clear, PF or PA actions), it locks the keyboard until the host sends a reply to unlock it. Some hosts unlock the keyboard before they are actually finished processing the command, which can cause scripts to malfunction subtly. To avoid this, s3270 implements a hack to briefly delay actually unlocking the keyboard. When s3270.unlockDelay is true, the keyboard unlock will be delayed for s3270.unlockDelayMs milliseconds. Setting it to false removes this delay, except when executing a macro.

Name: s3270.unlockDelayMs
Type: Integer
Default: 350
Description:

Overrides the default value for the unlock delay (the delay between the host unlocking the keyboard and s3270 actually performing the unlock). The value is in milliseconds; use 0 to turn off the delay completely, including for macros.

Name: s3270.werase
Type: String
Default: ^W
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when s3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard erases the last word of input.

When connected in character-at-a-time mode (when s3270 sends each keystroke to the host), this is the ASCII character that is sent to the host by the DeleteWord action.

Index of All Resources

aidWait blankFill bsdTm certFile
charset color8 confDir dbcsCgcsgid
dftBufferSize dsTrace eof erase
eventTrace extended hostname hostsFile
icrnl inlcr intr kill
lineWrap loginMacro lnext m3279
model monoCase numericLock onlcr
oerrLock once oversize port
proxy quit rprnt sbcsCgcsgid
screenTrace screenTraceFile scriptPort socket
suppressActions termName traceDir traceFile
traceFileSize unlockDelay unlockDelayMs werase

Basic Configuration Resources

charset hostname model port
proxy

NVT-Mode Resources

eof erase icrnl inlcr
intr kill lineWrap lnext
onlcr quit rprnt werase

Protocol Resources

bsdTm color8 dbcsCgcsgid dftBufferSize
sbcsCgcsgid termName

Terminal Interaction Resources

blankFill numericLock oerrLock

Security Resources

certFile suppressActions

Tracing Resources

dsTrace eventTrace screenTrace screenTraceFile
traceDir traceFile traceFileSize

Other Resources

aidWait confDir hostsFile loginMacro
monoCase once oversize scriptPort
socket unlockDelay unlockDelayMs

Deprecated Resources

extended m3279

s3270 verson 3.3.10ga4 Fri Oct 2 20:59:27 CDT 2009 ibm-3270-3.3.10ga4/s3270/html/FAQ.html0000644000175000017500000000406711254565707016220 0ustar bastianbastian s3270 Frequently Asked Questions

s3270 Frequently Asked Questions

If you have a problem building, installing, or running s3270, please browse through this file first.

General Questions

Am I allowed to use it?

Yes. Full copyright information is in the Lineage file, but the gist is that anyone is free to use the code, and anyone is free to sell copies of the code.

You are also free to modify it and to redistribute it, provided you preserve the existing copyright notices.

Getting Help

If you are still having a problem with s3270, feel free to send e-mail to Paul Mattes, Paul.Mattes@usa.net No guarantees are made about responses to particular problems, but a patches are usually forthcoming in a few days. It will also get you on an x3270 mailing list, which also includes information on s3270, and where you can find out about new releases and bug fixes.

When you send a question about s3270, please include the following information. It makes it much easier to narrow down the problem.

  1. The version of s3270 you are using, including all patches, e.g., "3.3.6p1".
  2. What kind of machine you are running on, e.g., "Sun SPARC-10".
  3. What operating system you are running, and what version, e.g., "SunOS 4.1.3_U1" or "Irix 5.2". The "uname -a" command will usually provide this information.
Complaints, suggestions, requests for enhancements, and porting experiences are also welcome. Code changes for bug fixes and enhancements are also welcome, provided that you don't mind your code being placed (often anonymously) under the x3270 license. ibm-3270-3.3.10ga4/s3270/html/ReleaseNotes.html0000644000175000017500000016451611261527776020212 0ustar bastianbastian s3270 Release Notes

Changes in x3270, c3270, wc3270, s3270, tcl3270, pr3287 and wpr3287 3.3

3.3 is the current development line for the x3270 suite.

Changes in version 3.3.10ga4, 2. October 2009

  • [all x3270] Improved the File Transfer summary display.
  • [all x3270] Removed the keyboard lock when processing an Enter AID in SSCP-LU mode.
  • [x3270] Fixed a build problem when DBCS support is disabled.
  • [c3270] Made the special keymap key names (e.g., PRINT) case-insensitive.
  • [c3270] Fixed a problem with keyboard input in ISO 8859 locales.
  • [x3270] Increased the maximum number of fonts scanned to 50000.

Changes in version 3.3.10ga3, 15. September 2009

  • [x3270] Fixed some bugs in the xmkmf-free build.

Changes in version 3.3.10alpha2, 10. September 2009

  • [c3270] Added the ability to move the 3270 cursor with the mouse, if the terminal supports it. Add a Mouse resource, which can be set to False to disable it.
  • [all 3270] Added a Translate keyword to the Transfer action's parameters and an additional question to the interactive c3270/wc3270 Transfer dialog, to allow the automatic remapping of text (usually done to get the most accurate translation) to be disabled.
  • Restored the pop-up window that displays trace files.

Changes in version 3.3.10alpha1, 3. September 2009

  • [3270] Allow the program to be built without xmkmf.
  • [all 3270] Fixed the mapping of EBCDIC X'FF' to U+009F in ASCII-mode file transfers.
  • [all 3270] Fixed a crash in CUT-mode binary file sends, and corrected the local fopen() flags when receiving a binary file.
  • [x3270] Added the APL up- and down-arrow characters (↑ and ↓) to the 12-point fonts (thanks to Paul Scott for the fix).
  • [all 3270] Script comments are now allowed (any input line beginning with # or !).
  • [wc3270] Added support for the Enhanced keymap modifier (EnhancedReturn is the keypad Enter key. Also added Enter, PageUp and PageDown as aliases for the Windows keys RETURN, PRIOR and NEXT.
  • [wc3270] Added oversize, font size and background color support to the Session Wizard.
  • [x3270] Fixed a problem with ignored -set and -clear options.
  • [c3270 and wc3270] Added support for the -oversize auto option, which allows the emulator to use the entire area of the terminal or console window it is running in.
  • [x3270] Removed the huge delay at start-up.
  • [x3270, c3270, s3270 and wc3270] Added support for TCP-socket-based scripting via the -scriptport option. For wc3270, this is the first time that scripting has been available.
  • [all 3270 except x3270] Added support for the screenTraceFile resource.
  • [all 3270] Fixed a file descriptor leak with the -socket option.
  • [all 3270] Fixed a crash with the Toggle action and undefined toggles.
  • [wc3270] Implemented no-install mode (allowing wc3270 to run without installing the software) and auto-shortcut mode (where wc3270 automatically creates a temporary shortcut file to match a session file and runs it).
  • [all 3270] When a hostname resolves to multiple addresses, try each until one works.
  • [all 3270] Corrected an issue where the keyboard would lock on the first screen when connecting to hosts like Hercules.
  • [wc3270] Added mappings of the Page Up and Page Down keys to PF(7) and PF(8) respectively.
  • [wc3270, ws3270] Removed the .dll files from the distribution.
  • [c3270] Corrected an issue with cursor and function keys not being recognized if they are the first key pressed.
  • [all 3270] BIND image screen sizing is now observed.
  • [pr3287 and wpr3287] Corrected the -charset documentation on the manual page.
  • [all 3270] Resurrected flipped-screen mode via the Flip and ToggleReverse actions.
  • [all 3270] Added a Seconds form to the Wait action, allowing a script or macro to delay itself an arbitrary length of time.
  • [wc3270] Modified the PrintText action so that Wordpad is started minimized.

Changes in version 3.3.9ga11, 25. March 2009

  • [x3270 and c3270] Re-enable the ibm_hosts file (it was accidentally being ignored).
  • [all but wc3270] Don't crash when there is no iconv translation for the locale codeset.
  • [all but x3270] Fixed a build failure in glue.c when DBCS was disabled.
  • [wc3270] Corrected the default keymap so that the uppercase versions of the Alt mapping also work.
  • [wc3270] Corrected the documentation of the printTextFont and printTextSize resources.
  • [c3270] Corrected a number of errors in parsing CursesColorForxxx resources.
  • [c3270] Added support for -rv, which puts c3270 into black-on-white mode.
  • [c3270] Added support for 16-color terminals, with the -color8 option overriding this and forcing 8-color support only. On a 16-color terminal, -allbold is no longer the default.
  • [c3270, wc3270, s3270 and tcl3270] Ensured that command-line parameters override session files.
  • [c3270] Made session files replace profiles, rather than just overridding any common definitions. This is more intuitive and consistent with x3270.

Changes in version 3.3.9ga11, 27. February 2009

Common Changes

  • Improved hostname parsing. Now backslashes can be used to quote any character, and square brackets can be used to quote any element (LU name, host name, or port).
  • Fixed a number of compiler warnings from newer versions of gcc and a number of small memory leaks.
  • Overhauled the host code pages and CGCSGIDs for DBCS. Added sbcsCgcsgid and dbcsCgcsgid resources to override the compiled-in values.
  • Added a caption text option to the PrintText action, which will place the specified caption above the screen image. Within the text, the string %T% is interpolated to a timestamp.
  • Improved the state dump when tracing starts to include NVT and SSCP-LU state and the SNA BIND image.
  • Updated the copyright and licensing notices (now a standard BSD license).
  • Added support for carriage-return (0x0d) characters in the String action, which imply the Newline action.
  • Changed the Attn action so that it sends an IAC BREAK in TN3270 mode, and locks the keyboard in TN3270E mode when the session is not SNA bound.
  • Added Traditional Chinese (host code page 937) support.
  • Extended the String action's \e and \x sequences to accept 4-digit hex values, thus allowing EBCDIC DBCS input and arbitrary Unicode input. Also added \u as an alias for \x.

Changes to x3270

  • Fixed a crash when pasting an empty selection.
  • Made the Query Reply response for x3270 identical to the other tools.
  • Included fonts for Traditional Chinese.

Changes to x3270 and c3270

  • Removed the nested copy of pr3287. from the source. pr3287 must now be built separately from its own package.

Changes to wc3270

  • Corrected a problem with color mapping in the OIA.
  • Changed the New Session Wizard to the Session Wizard and gave it the ability to edit existing session files and re-create missing session files. Note that this ability is limited to session files created with 3.3.9beta10 or later.
  • Added a wc3270.printer.codepage resource to set the Windows code page for the associated pr3287 printer session.
  • Simplified the operation of the New Session Wizard, so it asks fewer questions.
  • Added a pager to interactive mode.
  • Made the PrintText font and point size configurable via the printTextFont and printTextSize resources.
  • Changed the default 'blue' color for created shortcuts to a somewhat lighter shade, to make it more readable.
  • Changed the Session Wizard to specify the code page and proper font when creating shortcuts for DBCS sessions. This should allow DBCS to work on Windows 2000 and Vista.
  • Included ws3270 in the wc3270 release.

Changes to c3270 and wc3270

  • Added feedback for the progress of file transfers.
  • Implemented the Info action, which writes a message to the OIA (the line below the display).
  • Added a no-prompt mode, via the -noprompt command-line option and the noPrompt resource .
  • Added automatic reconnect, via the -reconnect command-line option and the reconnect resource.

Changes to ws3270 (formerly available as a pre-release)

  • Fixed a bug which resulted in all command timings being displayed as '-'.
  • Added the -localcp option and localCP resource to change the Windows code page used for local workstation I/O.
  • Added DBCS support and support for building using Microsoft tools.

Changes to pr3287 and wpr3287

  • Fixed a serious character-mapping bug.
  • Added DBCS support.

Changes to specific versions

  • [c3270, s3270, s3270, ws3270 and x3270] Added support for session files.
  • [All except wc3270 and ws3270] Extended the rtf option of the PrintText to non-Windows platforms.
  • [All except x3270] Fixed a number of issues with -xrm option processing and keymap display when backslash sequences were used.

Changes in version 3.3.8p2, 13 December 2008

  • [wc3270] Corrected the handling of 8-bit and DBCS characters in the PrintText action.
  • [tcl3270] Extended configure to find the Tcl library version automatically.
  • [wc3270] Corrected a problem which caused mouse clicks not to be recognized (not moving the cursor) if NumLock was set.
  • [all] Corrected the configure script to recognize a separately-installed iconv library even if the iconv() function is defined in libc.
  • [wc3270] Restored the bell sound, and added a visualBell resource to disable it.

Changes in version 3.3.8p1, 20 October 2008

  • [wc3270] Restored the Ctrl-] mapping for the Escape action, which had been inadvertently removed.
  • [wc3270] wc3270 now starts successfully on Windows Vista.
  • [c3270] On platforms that require the iconv library, c3270 once again recognizes ncurses names in keymaps.
  • [x3270] The module keysym2ucs.c now builds on FreeBSD.
  • [x3270] Selections now work properly on platforms that do not support XA_UTF8_STRING.

Changes in version 3.3.8, 11 October 2008

Version 3.3.8 includes a significant internal change, using Unicode for all translations between the host and the local workstation. This change should be transparent, but users who depended on certain behaviors of the old implementation may see unexpected differences.

Common Changes

  • Many more EBCDIC characters, such as Graphics Escape line-drawing and APL characters, are now properly displayed (even without special 3270 fonts), traced, cut/pasted with other applications, and returned by scripting actions like Ascii.
  • With two exceptions, the locale's encoding is now observed consistently when reading keymaps, generating trace files, etc. The exceptions are:
    • tcl3270 always uses UTF-8, per the internal Tcl convention.
    • Because Cygwin doesn't really support locales, the Windows ANSI code page is used as the local encoding instead.
    • Stateful encodings such as ISO 2022 are untested and very likely do not work.
  • The ICU library is no longer used, and ICU .cnv files are no longer included with the code.
  • Translation to/from the local encoding requires one of two facilities: Either libc must support __STDC_ISO_10646__ (wchar_ts are defined to be unicode values, as on Linux and Windows), or there must be an iconv library that can translate between UTF-8 and all local encodings.
  • DBCS support is enabled by default, except on Windows. It can be explicitly disabled in the configure script to reduce the size of the executable (removing several large translation tables).
  • The -v/--verbose option has been added to display build and copyright information.
  • The Thai host code page has changed from 838 to 1160.

Changes Common to the 3270 Terminal Emulators

  • The Key action now accepts Unicode arguments in the form U+nnnn, removing possible ambiguity from translating from the
  • Added a Source action to read script commands from a file.
  • Added a 10 second timeout to the start of the Transfer action.
  • Added an unlockDelayMs resource to change the number of milliseconds of delay before atually unlocking the keyboard after the host requests it. The default is 350; use 0 to disable the delay altogether.
  • IND$FILE file transfer now transfers DBCS text files properly.

Changes Common to 3287 Printer Emulators

  • Added direct support for all x3270 host character sets via the -charset option.
  • Added -trnpre and -trnpost options to specify files containing transparent data to send to the printer before and after each print job, respectively.

Product-Speific Changes

  • [x3270] Commands entered into the Print Screen Text dialog are now saved by the Save Changed Options in File option.
  • [x3270] Fixed some bad interactions between the pop-up keypad and the GNOME window manager.
  • [x3270] The Euro fonts have been folded into the standard fonts.
  • [x3270] The font menu is now arranged hierarchically by foundry and family.
  • [c3270] Added an underscore toggle to allow underlined fields to be displayed even on consoles with no native underlining support, by substituting underscore '_' characters for blanks and nulls in underlined fields.
  • [c3270] Overhauled Meta and Alt key support. Removed support for the archaic Meta modifier in keymaps (it was an alias for setting bit 0x80 in each key). Replaced it with an Alt modifier, which matches the ESC sequence sent for the Alt key by many terminals, and which can be combined with full 8-bit input characters.
  • [c3270] Changed the interpretation of keymaps so that keys and symbols are matched in Unicode. That is, keymap text is converted from the current locale's encoding to Unicode before matching, and input character codes are converted to Unicode before matching. This eliminates the difficulty in creating keymaps and interpreting traces in non-Latin-1 locales -- needing to translate from the accidental interpretation of 8-bit values as Latin-1 when they are not -- but with the side-effect of rendering some carefully-crafted existing keymaps invalid. Keymaps can also be written using Unicode U+nnnn notation.
  • [c3270] Changed the metaEscape resource so that auto means on, instead of using the terminfo km resource.
  • [c3270] Added an acs resource to control the use of curses ACS codes. If c3270.acs is set to true (the default), c3270 will use curses ACS codes for line-drawing characters. If set to false, it will display line-drawing characters with Unicode.
  • [wc3270] Added an underscore toggle to control how underlined and blinking fields are displayed. If it is set (the default), underlined fields are displayed by substituting underscore (_) characters for blanks and nulls, and blinking fields actually blink. If it is clear, underlined and blinking fields are displayed with highlighted backgrounds, which is compatible with previous verions of wc3270.
  • [wc3270] Left-clicking with the mouse will now move the cursor to that location.
  • [wc3270] The PrintText action now works, and is mapped by default to the sequence Alt <Key>p. The printer.name resource defines the default printer to use.
  • [wc3270] The PrintText action can now be used to produce a RichText snapshot of the screen contents, via the rtf keyword.
  • [wc3270] The program longer attempts to set the console code page, which was error-prone and unnecessary.
  • [wc3270] The idle command feature now works, controlled by the idleCommand, idleCommandEnabled and idleTimeout resources.
  • [wc3270] The program no longer attempts to set the console code page, which could lead to hangs on Vista.
  • [wc3270] The installation now creates a program group item to explore the wc3270 Application Data directory.
  • [wc3270] Corrected a problem with console color overrides, which prevented reverse-video mode (white background) from working properly. For now, the recommended method for enabling reverse video mode is to add these lines to your session file:
          wc3270.consoleColorForHostColor0: 15
          wc3270.consoleColorForHostColor7: 0
  • [wc3270] wc3270 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.
  • [tcl3270] Added a commandTimeout resource to force any Tcl3270 command to time out after the specified number of seconds. (Thanks to Mark Young.)
  • [tcl3270] Fixed a per-command memory leak. (Thanks to Mark Young.)
  • [wpr3287] Added a -printercp option to specify a particular code page for printer output.
  • [wpr3287] wpr3287 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.

Changes in x3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in x3270 3.3.7p7, 4. July 2008

  • Bug Fixes:
    • Corrected input of 8-bit characters when x3270 is run in a UTF-8 locale.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.
  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.

Changes in x3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Fixed an issue with Idle commands, which would cause x3270 to exit with a Not Found error as soon as the idle command fired.

Changes in x3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed the annoying delay when x3270 starts with an error pop-up.
    • Shortened the manpage so that it displays on non-groff platforms. The full text is still available in the HTML version.
    • Plugged a number of memory leaks.
    • x3270 will now compile on platforms that do not support IPv6, such as Cygwin.
    • x3270 will no longer crash or spin when the -script option is used.
    • Shifted function keys should work again (they map to PF13-PF24).
    • The screen can now be resized larger, as well as smaller.
    • Removed the dependency on <bitmaps/gray>, which required installing an obscure X11 development package on some platforms.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added a SelectAll action, mapped to Ctrl-A.

Changes in c3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.
    • Allowed c3270 to build under SLES 10's unusual ncurses configuration.

Changes in c3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in c3270 3.3.7p4, 29. February 2008

  • Bug Fixes:
    • Fixed c3270's configure script again, so it will build on systems without the ncurses library.
    • Enabled idle command functionality, which had been accidentally disabled.

Changes in c3270 3.3.7p1, 28. December 2007

  • Bug Fixes:
    • c3270's configure script would not detect missing ncurses header files, and c3270 would not build if ncursesw was not installed.

Changes in c3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • c3270 will now display characters such as the notsign ¬ properly in terminal windows in UTF-8 locales. Note that this display support requires an ncurses or curses library that supports wide characters.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added display of the host code page and locale codeset to the show status command.
    • Added support for changing the color mappings. The curses color for a given host color can be specified with the resource c3270.cursesColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a curses color number (0 through 7).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      c3270.cursesColorForDefault
      c3270.cursesColorForIntensified
      c3270.cursesColorForProtected
      c3270.cursesColorForProtectedIntensified
             
      The value for each of these is a curses color number (0 through 7).

Changes in wc3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed idle command support.

Changes in wc3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Fixed a problem with transferring binary files, where 0x0d characters might be acidentally added to or removed from the data.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in wc3270 3.3.7p5, 11. April 2008

  • Bug Fixes:
    • After installation is complete, get rid of mkshort.exe, which shares its name (but not its functionality) with a computer surveillance application.
    • Corrected several issues with key event processing and the default keymap.

Changes in wc3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Changed the New Session Wizard to create the Application Data directory, so wc3270 can be run by any user, not just the one that installed it.
    • Changed the default window title from the pathname of the session to just the session name.

Changes in wc3270 3.3.7p2, 15. January 2008

  • Bug Fixes:
    • Fixed an embarassing problem that kept wpr3287 from starting.

Changes in wc3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed line-drawing characters.
    • Enabled IPv6 support for Windows XP and later.
    • Set the input code page correctly, so that keyboard input works correctly when there is a mismatch between the default Windows code page and the code page implied by the wc3270 character set option.
  • New Features:
    • Added limited support for Windows 98. wc3270 will install and run on Windows 98, but internationalization support is limited -- the only supported host code page is 37, and the only supported Windows code page is 437. This is expected to improve in the future.
    • Added a wc3270.highlightUnderline resource to control highlighting of underlined and blinking text. (Set to false to disable background highlighting.)
    • Moved session files, keymaps and trace files to the Application Data directory. (wc3270 will still look in its installation directory for session files and keymaps, after first searching the Application Data directory.) This makes wc3270 a better Windows citizen in general, and a better Vista citizen in particular.
    • Added support for changing the color mappings. The console color for a given host color can be specified with the resource wc3270.consoleColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a console color number (0 through 15).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      wc3270.hostColorForDefault
      wc3270.hostColorForIntensified
      wc3270.hostColorForProtected
      wc3270.hostColorForProtectedIntensified
             
      The value for each of these is a host color number; the actual color displayed is defined by the corresponding wc3270.consoleColorForHostColorn resource.
    • Added a new cp1153 character set. It implements host code page 1153 and uses Windows code page 1250, used primarily in Central Europe.
    • Added display of the Windows code page to the character set screen in the New Session Wizard.
    • Added display of the host and Windows code pages to the show status command.

Changes in s3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in s3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in s3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer(Ascii) actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

      NOTE: If you were were previously running s3270 in a UTF-8 locale, this is an incompatible change. To ensure the previous behavior, set your locale to C before starting s3270.

Changes in tcl3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in tcl3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in tcl3270 3.3.7p3, 22. Febuary 2008

  • Bug Fixes:
    • Fixed a problem with non-ASCII characters returned by the Ascii command.
    • Fixed a problem with the Connect command, which resulted in subsequent actions not blocking properly.

Changes in tcl3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

Changes in pr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in pr3287 3.3.7, 25. December 2007

  • Enhancements:
    • Added proxy support via the -proxy option.

Changes in wpr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in wpr3287 3.3.7, 25. December 2007

(none)

Changes in x3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Fixed the highlighted attribute for individual regions of the screen (versus the highlighted field attribute); it had been accidentally disabled.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Pseudo-Color mode is no more. This was the mode that x3270 used when a 3278 model was specified, or if the m3279 resource were set to False. Pseudo-Color assigned colors to regions of the screen based on intensity and light-pen selectability, and did not support 3279 colors. Now turning off color or selecting a 3278 results in something that looks like a 3278 (i.e., it's green). To resurrect Pseudo-Color mode, set the following resources:
        x3270.inputColor: orange
        x3270.boldColor: cyan

Changes in c3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Got local process (-e) support to work again.
    • Fixed -mono -allbold mode.
    • c3270 now paints the entire screen, not just the areas it intends to use, so there are no uninitialized regions.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for the 3270 background color attribute.
    • Added more mappings to the 3270 default keymap (IC -> ToggleInsert, Ctrl<Key>U -> DeleteField, etc.).
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Like x3270 and wc3270, -model 3278 now specifies a green-screen 3278 (if the terminal supports color), and like x3270, -mono specifies that any color capabilities reported by the terminal should be ignored.

Changes in wc3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Restored line-drawing character support.
    • Restored background color support in NVT mode.
    • Corrected some screen rendering issues.
    • Fixed screen trace (-set screenTrace).
    • Removed the -mono option and mono resource.
  • New Features:
    • Added the Spanish character set, CP 284.
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for setting the window title, either automatically, or via the -title option or wc3270.title resource.
    • Added gray background highlighting of underlined and blinking text. Windows consoles don't support these attributes, but at least they can be distinguished from other text now.
    • Added background color support in 3270 mode.
    • Added a window to monitor trace output.
    • Greatly improved key event tracing.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in s3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in tcl3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in wc3270 3.3.5p9, 10. June 2007

  • Bug Fixes:
    • The shortcut cursor size property is now obeyed.
    • The -model 3278 option now works correctly.
  • New Features:
    • Added secure connection status to the status line and the show status command.
    • Reverse video is now supported.
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added a keymap tutorial to the documentation.

Changes in wc3270 3.3.5p8, 29. April 2007

  • Bug Fixes:
    • Fixed a hang when wpr3287 exits unexpectedly.
    • Improved behavior when input comes from multiple sources, such as when pasting text.
    • Greatly improved screen update speed.
  • New Features:
    • Added wpr3287 support back to the wizard. It was in the GUI version, but was never in the text version.
    • Integrated new back-end printer support in wpr3287, including a new wc3270.printer.name resource.
    • Added a Paste() action, mapped to Ctrl-V, to do multi-line paste properly.
    • Added a .wc3270km suffix to keymap files.
    • Added keymap support to the wizard.
    • Added interactive prompting to the Transfer() action.

Changes in wpr3287 3.3.5p8, 29. April 2007

  • New Features:
    • Added direct support for Windows printers, instead of relying on the DOS PRINT command. This included changing the -command option to a -printer option, to specify the Windows printer to use as a back end.

Changes in x3270 3.3.5p6, 7. April 2007

  • Bug Fixes:
    • x3270 will now build with ICU 3.6.
    • A long-standing screen update bug is finally fixed.
    • The unused x3270hist.pl script is no longer installed.

Changes in c3270 3.3.5p4, 7. April 2007

  • Bug Fixes:
    • c3270 can now be built without File Transfer support.
    • The unused x3270hist.pl script is no longer installed.

Changes in wc3270 3.3.5p3, 2. March 2007

  • Bug Fixes:
    • Reverted the wc3270 New Session Wizard to the non-GUI version, because the GUI version, built with Microsoft Visual C++ 2005 Express Edition, had too many dependencies (latest service pack, .NET framework) on the target machine.

Changes in wc3270 3.3.5p2, 16. February 2007

  • Bug Fixes:
    • Ensured that the desktop shortcuts specify Lucida Console, so non-ASCII-7 characters are displayed properly.
  • New Features:
    • Added a file association for the .wc3270 suffix.
    • Replaced the console version of the New Session Wizard with a proper GUI version.

Changes in wc3270 3.3.5p1, 6. February 2007

  • Bug Fixes:
    • Added the working directory to the desktop links created by the setup program.
  • New Features:
    • Added printer session (wpr3287) support.

Changes in x3270 3.3.5, 1. February 2007

  • Bug Fixes:
    • Fixed a crash when the user's home directory or the ~/.x3270connect file wasn't writeable.
    • Fixed some endcases when pasting text that wraps lines and a field skip is encountered.
    • Fixed the handling of SI characters in cut/pasted text.
    • Allow the use of ICU version 3.0 or greater.
    • Fixed a scripting hang when the host disconnects during Wait(output)).
    • Turned the unlockDelay option back on by default.
    • Fixed a problem where unlockDelay could result in the keyboard never unlocking, if the host unlocked the keyboard often enough.
    • Added a workaround for very old snprintf() implementations.
    • Fixed a problem with DBCS input corrupting existing DBCS subfields.
    • Fixed a problem with the Wait action in the expect glue. (Thanks to Jason Howk for the fix.)
    • Enlarged the input buffer in x3270if. (Thanks to Igor Klingen for the fix.)
    • Fixed a SIGCHLD handler issue on AIX.
    • Fixed a problem with CR/LF translation on ASCII file transfers.
  • New Features:
    • Added a -socket option to x3270, s3270 and c3270 to allow a script to connect to a Unix-domain socket to control the emulator, and added a -p option to x3270if to connect to the socket.
    • Added optional support for plugins, with a first plugin to implement command history on VM/CMS and TSO hosts.
    • Allow arbitrary color names (#rrggbb) to be used in color schemes.
    • Added support for hierarchical macro menus.
    • Added an XkSelector resource to allow transparent support of non-English keyboards.
    • Added preliminary support the 16-bit display fonts and the Persian character set.
    • Added Title and WindowState actions to allow the x3270 window title and icon state to bw changed respectively.

Changes in x3270 3.3.4, 10. April 2005

  • Bug Fixes:
    • The code once again builds on Cygwin and other systems not supporting IPv6.
    • The -xrm option works again in x3270.
    • The -name X Toolkit option works with x3270, though not yet with app-defaults files.
    • Removed spurious 'no child' error messages from pr3287 on some systems.
    • Removed unintended blank-line suppression from the output of PrintText html string.
    • Restored some missing keymap definitions (rlx, ow) and some missing lines from other keymap definitions (apl).
    • Restored the automatic keyboard unlock delay when processing a macro or string. This allows macros and strings with embedded AID sequences to work with hosts that unlock the keyboard before they finish processing a command. Scripts are presumed to be able to figure out when the host is finished, or can set the unlockDelay resource to true get the delay all the time.
    • Fixed an apparent hang (actually just extreme slowness) when the host sends a message larger than 4 Kbytes on an SSL tunnel.
    • Removed spurious 'Wait timed out' errors in the Wait action.
  • New Features:
    • Added a newer, more flexible version of Don Russell's RPQNAMES support.
    • Added support for IPv6.
    • Added an oldclick keymap to restore the pre-3.3 mouse click behavior.

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta2, 1. February 2005

  • Bug Fixes:
    • Reduced the Resident Set Size (RSS) of x3270 from about 40 MBytes to less than 4 MBytes. This was a bug in how compiled-in app-defaults files were generated.
    • Got separate app-defaults files (configure --enable-app-defaults) to work again.
    • Fixed a crash when a login macro is used in NVT mode or when the host un-negotiates TN3270E mode.
    • Fixed the titles of the Copyright and Configuration pop-ups.
    • Temporarily disabled the RPQNAMES Query Reply. It was causing IBM QMF to crash. It can be re-enabled by adding #define X3270_RPQNAMES 1 to conf.h. Hopefully a proper fix can be found shortly.
  • New Features:

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta1, 31. December 2004

  • Bug Fixes:
    • The Transfer() action did not work at all -- it generated (null) as the name of the IND$FILE command. Also improved its behavior when invoked from a script or macro in x3270 and c3270.
    • Corrected the definition of the hebrew (code page 424) character set, removing undefined characters.
    • Corrected the display character set for the brazilian (code page 275) character set.
    • Corrected the character set definition logic so that undefined ASCII codes are truly undefined in NVT mode.
    • Corrected the ibm_hosts file (the hostsFile resource or the -hostsfile option). Variable and tilde substitution are now performed on the value, and if a non-default value is specified and the file does not exist, an error pop-up is generated.
    • Added a pause to make sure that c3270 start-up error messages will be seen.
    • Got the c3270 default field colors right, and made all-bold mode actually make all the fields bold.
    • Fixed the default primary/alternate screen size (it was alternate, it's supposed to be primary).
    • Fixed c3270 color support with ncurses and 80/132 screen-size switching. Sometimes only one of the screen sizes had color.
    • Fixed a memory leak in pr3287 when the -reconnect option is used. (Thanks to Marcelo Lemos for the fix.)
    • Fixed the output of NVT-mode ANSI line-drawing characters in the Ascii() scripting action. These were formerly all output as blanks; now they are output in the same was as x3270 3.2.
    • Fixed the display of NVT-mode ANSI line-drawing characters when x3270 is using a 3270 font.
    • Fixed the display of DBCS blanks, which sometimes displayed as 'undefined' characters.
    • Fixed DBCS character display with fonts whose maximum bounds are larger than their reported line-spacing bounds.
    • Fixed make depend.
    • Fixed x3270_glue.expect, which got confused when there was a whitespace-delimited double-quote in the emulator output.
    • Fixed crashes when the entire File or Options menus were suppressed.
    • Fixed a scripting hang when an UNBIND command arrived while an AID was pending.
    • Fixed a problem with the incomplete processing of a NULLing Program Tab order, which could leave formatting artifacts on the screen.
    • Removed <subchar1> clauses in two of the .ucm files that prevents later versions of ICU's makeconv from accepting them, and removed DOS carriage-return characters from the CP837 .ucm file.
    • Corrected some DFT-mode file upload problems: corrected the data length, and corrected an empty-buffer problem when the file size was an even multiple of the buffer size.
    • Corrected a DBCS conversion problem with ICU 3.0.
    • Added variable buffer-size support to DFT file transfers.
    • Corrected a line-drawing character bug in c3270.
    • Fixed a buffer overflow problem in the ReadBuffer action.
    • Fixed garbage characters generated for APL data by the Ascii and ReadBuffer actions.
    • Allow 0 timeouts in Wait actions.
  • New Features:
    • Added command-line options to the pr3287 trace file.
    • Added support for dead keys (acute, grave, circumflex, tilde, diaeresis) to the x3270 default keymap, and improved the Latin-1 compose map. (Thanks to Marcelo Lemos for the change.)
    • Added new actions for improved mouse interactions, and made them the default. Button 1 now moves the cursor, without the Shift key.
    • Added support for DBCS in pr3287, but only when started from an x3270 or c3270 session.
    • Added Don Russell's RPQNAMES support.
    • Removed Minolta-copyrighted 5250 code, because of licensing problems.
    • Added an aidWait toggle to allow AID script actions (Clear, Enter, PA and PF) to complete immediately without waiting for the host to unlock the keyboard, and a Wait(Unlock) action action to block a script until the keyboard is unlocked, regardless of the state of the new toggle.
    • Removed the old scripting hack that delayed actually unlocking the keyboard for 50ms after the host indicates that it should be unlocked. Added an unlockDelay resource, which can be set to true to turn the delay hack back on.
    • Added a dftBufferSize resource to set the default DFT buffer size.
    • Added an x3270 Save Screen Text menu option to save the screen image in a file, optionally in HTML.
    • Added options to the PrintText action to save to a file, to save HTML, and to return the text as script data.

Changes in x3270, c3270, s3270 and tcl3270 3.3.2, 1. December 2003

  • Bug Fixes:
    • Corrected an x3270 screen-redraw crash when using fixedSize and xim.
    • Corrected a problem in x3270_glue.expect, which caused Tcl syntax errors if a string began with a dash. Thanks to David Taylor for the fix.
    • Fixed a problem with x3270 DBCS input when using a single DBCS/SBCS character set.
    • Made DBCS encoding recognition automatic wherever possible, leaving the -km option for cases when x3270 can't figure it out from the locale.
    • Made c3270's configure more robust when it can't find one or the other of libncurses or ncurses.h.
    • Got automatic pr3287 start-up (-printerlu) working again in c3270.
    • Fixed an s3270 crash which made s3270 3.3.1alpha10 pretty much useless.
  • New Features:
    • Added support for Cyrillic keysyms to the x3270 Default() action.
    • Added an 'unlocked' icon for unencrypted connections, if x3270 is built with SSL/TLS support.
    • Error messages are now written to the trace file.
    • The response to the TELNET TIMING MARK option has been changed to make it compatible with the majority of TELNET clients. The response to DO TIMING MARK is now WONT TIMING MARK. To restore the previous behavior (responding with WILL TIMING MARK, originally derived from the BSD TELNET client), set the resource x3270.bsdTm to true.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha10, 29. August 2003

  • Bug Fixes:
    • Made nondisplay fields invisible to the Ascii() action.
    • Corrected start-field values at the beginning of data stream traces and in the 3270 Read Buffer response.
    • Corrected a tight loop in the macro error cancellation logic.
    • Corrected a crash when connecting to a host and there is no menu bar visible.
    • Corrected x3270 crashes in monochrome mode (-mono) and pseudo-color mode (-model 3278).
  • New Features:
    • Added a ReadBuffer() action to dump the entire contents of the 3270 buffer, including field attributes and extended attributes.
    • Added support for suppress resources for each menu item. If set to True, that menu item will not appear.
    • Added a suppressActions resource, a list of the names of actions to disable. This is primarily for controlled environments where the user does not have access to the x3270 command line, but can edit keymap definitions.
    • Added a Setverbose function to x3270_glue.expect to allow verbosity to be changed on the fly. (Courtesy of David Taylor.)
    • Added the ability to define resources in an environment variable, $X3270RDB. The environment variable overrides values set in the profile file, but is overridden by command-line options.
    • Added a fixedSize resource to force the x3270 main window to a particular size. fixedSize has the form widthxheight, in pixels. The 3270 display will float in the center of the window, if need be.
    • Added a new x3270 keypad position (x3270.keypad): insideRight. This positions the keypad on top of the upper right-hand corner of the x3270 window, just under the keypad button on the menu bar.

Changes in pr3287 3.3.1alpha10, 10. August 2003

  • Enhancements:
    • Added support for the -tracedir option, to specify a directory to store trace files in.
    • Added support the the -eojtimeout option, to automatically flush any pending print job after a specified period of inactivity.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha9, 24. July 2003

  • Bug Fixes:
    • DBCS character set names are displayed in the x3270 Options->Font menu only when DBCS support is built into x3270.
    • Removed the concept of 'per-host' resources. Use profiles for this.
    • Fixed idle commands. They were pretty much hopeless in 3.3.1alpha8 and 3.2.20.
    • Fixed a Unicode conversion crash.
    • Fixed a bug in processing the Modify Field order, which would cause the character set attribute for the field to be accidentally reset to the default.
  • New Features:
    • x3270 user-specified lists (character sets, hosts, fonts, color schemes) can now be organized into sub-lists. The name Bob>Fred>Tony specifies that there is a sub-list called Bob, which contains a sub-list Fred, which contains the item Tony.
    • The TELNET START-TLS option is now supported.

Changes in pr3287 3.3.1alpha9, 30. July 2003

  • Bug Fixes:
    • Ignore SIGINT in the print job process, so that killing an interactive pr3287 with ^C won't cause buffered data to be lost.
    • Fixed a problem with losing a byte of data after an SHF order.
    • Fixed the SCS HT order, which was completely broken.
  • Enhancements:
    • Added support for SIGUSR1 to flush the print job.
    • Added support for the TELNET START-TLS option.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha8, 15. April 2003

  • Bug Fixes:
    • Builds cleanly on Linux with -Wall -ansi -pedantic.
    • Builds without OpenSSL libraries being present.
    • Correctly records Field Attributes in the initial screen snapshot in a Data Stream Trace file.
    • Auto-Skip fields work properly.
    • "Dead" positions in DBCS fields are handled correctly.
    • Invalid host DBCS characters are handled better and are displayed in the Data Stream Trace file.
    • The Erase action now works properly with DBCS characters.
    • The x3270 Visible Control Characters toggle now works properly.
    • The EBCDIC notsign '¬' can now be entered in c3270 with Ctrl-A, ^ (it formerly caused an error message).
  • New Features:
    • The Erase action is now the default for the BackSpace key in x3270.
    • Ctrl-A, a is now mapped onto the Attn action in the c3270 default 3270 keymap.
    • Four more Japanese host code pages have been added: 930, 939, 1390 and 1399. This uses new support for combined SBCS/DBCS code pages.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1, 14. February 2003

  • Bug Fixes:
    • (Same as x3270 3.2.20)
  • New Features:
    • DBCS support for Simplfied Chinese and Japanese, including x3270 integration with XIM.
    • Tunneled SSL support added (entire Telnet session inside of an SSL tunnel). Uses the OpenSSL library. Toggled with an 'L:' prefix on the hostname.
    • A Visible Control Characters toggle replaces x3270's 3270d Debug Font.
    • About x3270 pop-up split into three smaller pieces.
ibm-3270-3.3.10ga4/s3270/html/Build.html0000644000175000017500000000733511254565707016651 0ustar bastianbastian s3270 Build and Install Instructions

s3270 Build and Install Instructions

To build s3270, type:
    ./configure
    make
To install s3270 in the default install directory (/usr/local/bin), type:
    make install

Notes for Solaris 2.x and Sun's C Compiler

Do not use Sun's BSD-compatibility compiler, /usr/ucb/cc. This is good advice in general, but in particular, s3270 will not build with it. You should have a directory containing gcc (recommended) or Sun's standard compiler in your $PATH ahead of /usr/ucb.

Building on FreeBSD

FreeBSD's iconv library is installed in /usr/local, so the the following options must be passed to the configure script:
       ./configure LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include

Summary of configure Options

The s3270 configure script accepts the following options:
 
--help Print a help message.
--prefix=prefix Install architecture-independent files under prefix (defaults to /usr/local)
--exec-prefix=eprefix Install architecture-dependent files (executables) under eprefix (defaults to same as prefix)
--bindir=dir Install user executables (s3270, x3270if) in dir (defaults to eprefix/bin)
--sysconfdir=dir Install configuration files (character sets) in dir/x3270 (defaults to prefix/etc).
--disable-ansi Leave out NVT (ANSI) support.
Note that NVT support is required for TN3270E support.
--disable-apl Leave out APL character support.
--enable-dbcs
Build in DBCS (Double Byte Character Set) support.
--disable-ft Leave out IND$FILE file transfer support.
--disable-local-process Leave out local process (connecting to "-e shell_command") support.
This will be automatically disabled if the local system does not support the forkpty() library call.
--disable-ssl
Leave out SSL (Secure Sockets Layer) support.  SSL support requires the OpenSSL library.
--with-ssl=dir
Specify the directory where the OpenSSL library is installed.
--disable-tn3270e Leave out TN3270E support.
--disable-trace Leave out tracing support.

Leaving out all of the optional features will result in a smaller binary.



ibm-3270-3.3.10ga4/s3270/html/x3270if.html0000644000175000017500000001606611261527776016717 0ustar bastianbastian x3270if Manual Page

x3270if Manual Page

Contents

Name
Synopsis
Description
Options
Exit Status
Environment
See Also
Copyright

Name

x3270if - command interface to x3270, c3270 and s3270

Synopsis

x3270if [option]... [ action ]
x3270if -i

Description

x3270if provides an interface between scripts and the 3270 emulators x3270, c3270, and s3270.

x3270if operates in one of two modes. In action mode, it passes a single action and parameters to the emulator for execution. The result of the action is written to standard output, along with the (optional) status of the emulator. (The action is optional as well, so that x3270if can just reports the emulator status.) In iterative mode, it forms a continuous conduit between a script and the emulator.

The action takes the form:

action-name(param[,param]...)

The parentheses are manatory, and usually must be quoted when x3270if is called from a shell script.

If any param contains a space or comma, it must be surrounded by double quotes.

Options

-s field
Causes x3270if to write to stdout the value of one of the emulator status fields. Field is an integer in the range 0 through 11. The value 0 is a no-op and is used only to return exit status indicating the state of the emulator. The indices 1-11 and meanings of each field are documented on the x3270-script(1) manual page. If an action is specified as well, the status field is written after the output of the action, separated by a newline. The -s option is mutually exclusive with the -S and -i options.
-S
Causes x3270if to write to stdout the value of all of the emulator status fields. If an action is specified as well, the status fields are written after the output of the action, separated by a newline. The -S option is mutually exclusive with the -s and -i options.
-i
Puts x3270if in iterative mode. Data from x3270if's standard input is copied to the emulator's script input; data from the emulator's script output is copied to x3270if's standard output. The -i option is mutually exclusive with the -s and -S options. x3270if runs until it detects end-of-file on its standard input or on the output from the emulator. (This mode exists primarily to give expect(1) a process to run, on systems which do not support bidirectional pipes.)
-p process-id
Causes x3270if to use a Unix-domain socket to connect to the emulator, rather than pipe file descriptors given in environment variables. The emulator must have been started with the -socket option.
-t port
Causes x3270if to use a TCP socket to connect to the emulator, rather than pipe file descriptors given in environment variables. The emulator must have been started with the -scriptport option.
-v
Turns on verbose debug messages, showing on stderr the literal data that is passed between the emulator and x3270if.

Exit Status

In action mode, if the requested action succeeds, x3270if exits with status 0. If the action fails, x3270if exits with status 1. In iterative mode, x3270if exits with status 0 when it encounters end-of-file. If there is an operational error within x3270if itself, such as a command-line syntax error, missing environment variable, or an unexpectedly closed pipe, x3270if exits with status 2.

Environment

When a script is run as a child process of one of the emulators via the Script action, the emulator passes information about how to control it in environment variables.

On Unix, the emulator process creates a pair of pipes for communication with the child script process. The values of the file descriptors for these pipes are encoded as text in two environment variables:

X3270OUTPUT
Output from the emulator, input to the child process.
X3270INPUT
Input to the emulator, output from the child process.

On Windows, or when a Unix emulator is started with the -scriptport option, the emulator will pass the port number encoded as text in the X3270PORT environment variable. x3270if will use that value as if it had been passed to it via the -t option. X3270PORT takes precedence over X3270OUTPUT and X3270INPUT.

See Also

x3270(1), c3270(1), s3270(1), x3270-script(1)

Copyright

Copyright © 1999-2009, Paul Mattes.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

*
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
*
Neither the names of Paul Mattes nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES `AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/s3270/html/Lineage.html0000644000175000017500000000445411254565707017155 0ustar bastianbastian s3270 Lineage

s3270 Lineage

Here is the official copyright notice for s3270 3.3. It is a standard 3-element BSD license.

Copyright © 1993-2009, Paul Mattes.
Copyright © 2004-2005, Don Russell.
Copyright © 2004, Dick Altenbern.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

ibm-3270-3.3.10ga4/s3270/html/README.html0000644000175000017500000000424711254565707016546 0ustar bastianbastian s3270 3.3 General Release

s3270 3.3 General Release

s3270 is a scripted IBM 3278/3279 terminal emulator.

Documentation is in the directory. The files are:

Intro
What s3270 is
Lineage
Where s3270 came from (copyright stuff)
Build
How to build and install s3270
FAQ
Frequently Asked Questions (what to do when something goes wrong)
ReleaseNotes
What's new in this release
Resources
A complete list of s3270 resources (configuration items)
Bugs
What's broken in this release
Wishlist
What isn't in this release
There is also a hypertext version of the s3270 man page, and of the man pages for x3270-script and x3270if. Please read Build before going ahead and building the program. Also, if you have a problem, scan through FAQ; there are lots of interesting answers there.

Updates to s3270, as well as the current status of development and bugs, are available from the x3270 Web Page.

Feel free to send comments, criticism, suggestions, complaints, etc., to Paul Mattes, Paul.Mattes@usa.net. Requests will be addressed as time and resources permit.

There is also an x3270 mailing list, which also includes information about s3270, and which receives news about new releases. Send a message to Paul.Mattes@usa.net (a real person, with an automatic responses for certain subject lines) to get on the list. ibm-3270-3.3.10ga4/s3270/html/Wishlist.html0000644000175000017500000000123511254565707017411 0ustar bastianbastian The s3270 Wish List

The s3270 Wish List

Here is a list of some of the more interesting suggestions and requests made for s3270. You may also take this as a list of functions that are definitely not in this version of s3270.

There is no guarantee that anyone is actively working on these, but feel free to yourself...

  • (nothing at the moment...)
ibm-3270-3.3.10ga4/s3270/config.sub0000755000175000017500000010115311254565704015731 0ustar bastianbastian#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ibm-3270-3.3.10ga4/s3270/unicode.c0000644000175000017500000025016111254565704015544 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * unicode.c * A Windows console-based 3270 Terminal Emulator * EBCDIC/Unicode translation functions */ #include "globals.h" #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #include "3270ds.h" #if !defined(PR3287) /*[*/ #include "appres.h" #endif /*]*/ #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" #if !defined(PR3287) /*[*/ #include "utilc.h" #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(USE_ICONV) /*[*/ iconv_t i_u2mb = (iconv_t)-1; iconv_t i_mb2u = (iconv_t)-1; #if !defined(_LIBICONV_VERSION) || _LIBICONV_VERSION < 0x0108 /*[*/ typedef char *ici_t; /* old iconv */ #else /*][*/ typedef const char *ici_t; /* new iconv */ #endif /*]*/ #endif /*]*/ #define DEFAULT_CSNAME "us" #if defined(_WIN32) /*[*/ # if defined(WS3270) /*[*/ # define LOCAL_CODEPAGE appres.local_cp # else /*[*/ # define LOCAL_CODEPAGE CP_ACP # endif /*]*/ #endif /*]*/ /* * EBCDIC-to-Unicode translation tables. * Each table maps EBCDIC codes X'41' through X'FE' to UCS-2. * Other codes are mapped programmatically. */ #define UT_SIZE 190 #define UT_OFFSET 0x41 typedef struct { char *name; unsigned short code[UT_SIZE]; const char *host_codepage; const char *cgcsgid; const char *display_charset; } uni_t; static uni_t uni[] = { { "cp037", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp273", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "273", "273", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp275", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00c9, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x00c7, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e7, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e3, 0x003a, 0x00d5, 0x00c3, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f5, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e9, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "275", "275", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp277", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "277", "277", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp278", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "278", "278", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp280", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "280", "280", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp284", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "284", "284", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp285", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "285", "285", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp297", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "297", "297", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp424", { 0x5d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x05ea, 0x0000, 0x0000, 0x00a0, 0x0000, 0x0000, 0x0000, 0x21d4, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x00b8, 0x0000, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000 }, "424", "0x03ad01a8", "3270cg-8,iso10646-1,iso8859-8" }, { "cp500", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "500", "500", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp870", { 0x00a0, 0x00e2, 0x00e4, 0x0163, 0x00e1, 0x0103, 0x010d, 0x00e7, 0x0107, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x0119, 0x00eb, 0x016f, 0x00ed, 0x00ee, 0x013e, 0x013a, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x02dd, 0x00c1, 0x0102, 0x010c, 0x00c7, 0x0106, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x02c7, 0x00c9, 0x0118, 0x00cb, 0x016e, 0x00cd, 0x00ce, 0x013d, 0x0139, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x015b, 0x0148, 0x0111, 0x00fd, 0x0159, 0x015f, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00b8, 0x02db, 0x00a4, 0x0105, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x015a, 0x0147, 0x0110, 0x00dd, 0x0158, 0x015e, 0x00b7, 0x0104, 0x017c, 0x0162, 0x017b, 0x00a7, 0x017e, 0x017a, 0x017d, 0x0179, 0x0141, 0x0143, 0x0160, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x0155, 0x00f3, 0x0151, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x011a, 0x0171, 0x00fc, 0x0165, 0x00fa, 0x011b, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x010f, 0x00d4, 0x00d6, 0x0154, 0x00d3, 0x0150, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x010e, 0x0170, 0x00dc, 0x0164, 0x00da }, "870", "0x03bf0366", "iso10646-1,iso8859-2" }, { "cp871", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00fe, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00de, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "871", "871", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp875", { 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a8, 0x0386, 0x0388, 0x0389, 0x2207, 0x038a, 0x038c, 0x038e, 0x038f, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x00b4, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x00a3, 0x03ac, 0x03ad, 0x03ae, 0x0390, 0x03af, 0x03cc, 0x03cd, 0x03b0, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x03c9, 0x03ca, 0x03cb, 0x2018, 0x2015, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b1, 0x00bd, 0x0000, 0x00b7, 0x2019, 0x00a6, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00a7, 0x0000, 0x0000, 0x00ab, 0x00ac, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00a9, 0x0000, 0x0000, 0x00bb }, "875", "0x0464036b", "3270cg-7,iso10646-1,iso8859-7" }, { "cp880", { 0x0000, 0x0452, 0x0453, 0x0451, 0x0000, 0x0455, 0x0456, 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x0000, 0x045f, 0x042a, 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0403, 0x0401, 0x0000, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x040a, 0x040b, 0x040c, 0x0000, 0x0000, 0x040f, 0x044e, 0x0430, 0x0431, 0x0000, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0000, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0000, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x0000, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x005c, 0x00a4, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427 }, "880", "0x03bf0370", "iso10646-1,koi8-r" }, #if defined(X3270_DBCS) /*[*/ { "cp930", { /* 0x40 */ 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67, /* 0x48 */ 0xff68, 0xff69, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 0x50 */ 0x0026, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, 0x0000, /* 0x58 */ 0xff70, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, /* 0x60 */ 0x002d, 0x002f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, /* 0x68 */ 0x0067, 0x0068, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 0x70 */ 0x005b, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, /* 0x78 */ 0x0070, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 0x80 */ 0x005d, 0xff67, 0xff68, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 0x88 */ 0xff78, 0xff79, 0xff7a, 0x0071, 0xff7b, 0xff7c, 0xff7d, 0xff7e, /* 0x90 */ 0xff7f, 0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, /* 0x98 */ 0xff87, 0xff88, 0xff89, 0x0072, 0x0000, 0xff8a, 0xff8b, 0xff8c, /* 0xa0 */ 0x007e, 0x00af, 0xff8d, 0xff8e, 0xff8f, 0xff90, 0xff91, 0xff92, /* 0xa8 */ 0xff93, 0xff94, 0xff95, 0x0073, 0xff96, 0xff97, 0xff98, 0xff99, /* 0xb0 */ 0x005e, 0x00a2, 0x005c, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* 0xb8 */ 0x0079, 0x007a, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f, /* 0xc0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0xc8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xd0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* 0xd8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xe0 */ 0x0024, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* 0xe8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xf0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0xf8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } , "930", "0x04940122" /* 1172, 0290 */, "iso10646-1,jisx0201.1976-0" }, { "cp935", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "935", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp937", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "937", "0x04970025" /* 1175, 037 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp939", { /* 40 */ 0x0000, 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, /* 48 */ 0xff67, 0xff68, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 50 */ 0x0026, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, /* 58 */ 0xff70, 0xff71, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, /* 60 */ 0x002d, 0x002f, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 68 */ 0xff78, 0xff79, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 70 */ 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, 0xff80, 0xff81, /* 78 */ 0xff82, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 80 */ 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 88 */ 0x0068, 0x0069, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, 0xff88, /* 90 */ 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, /* 98 */ 0x0071, 0x0072, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, /* a0 */ 0x00af, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* a8 */ 0x0079, 0x007a, 0xff8f, 0xff90, 0xff91, 0x005b, 0xff92, 0xff93, /* b0 */ 0x005e, 0x00a3, 0x00a5, 0xff94, 0xff95, 0xff96, 0xff97, 0xff98, /* b8 */ 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0x005d, 0xff9e, 0xff9f, /* c0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* c8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* d8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x005c, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* e8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* f8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "939", "0x04940403" /* 1172, 1027 */, "iso10646-1,jisx0201.1976-0" }, #endif /*]*/ { "cp1026", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x007d, 0x0060, 0x00a6, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x02db, 0x00c6, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x005d, 0x0024, 0x0040, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x2014, 0x00a8, 0x00b4, 0x00d7, 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0x00ff, 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da }, "1026", "0x04800402", "iso10646-1,iso8859-9" }, { "cp1047", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x00ac, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1047", "1047", "iso10646-1,iso8859-1" }, { "cp1140", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1140", "0x02b70474" /* 695, 1140 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1141", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "1141", "0x02b70475" /* 695, 1141 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1142", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1142", "0x02b70476" /* 695, 1142 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1143", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1143", "0x02b70477" /* 695, 1143 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1144", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1144", "0x02b70478" /* 695, 1144 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1145", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1145", "0x02b70478" /* 695, 1145 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1146", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1146", "0x02b7047a" /* 695, 1146 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1147", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1147", "0x02b7047a" /* 695, 1147 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1148", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1148", "0x02b7047c" /* 695, 1148 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1149", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00de, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x20ac, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00fe, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1149", "0x02b7047d" /* 695, 1149 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1160", { 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, 0x005b, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0e48, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x005d, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x005e, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0e3f, 0x0e4e, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0e4f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, 0x0e5a, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e5b, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, 0x0e58, 0x0e59, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0e49, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0e3a, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x005c, 0x0e4a, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4b, 0x20ac }, "1160", "0x05730488" /* 1395, 1160 */, "iso10646-1,iso8859-11" }, #if defined(X3270_DBCS) /*[*/ { "cp1388", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "1388", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, #endif /*]*/ { "apl", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,iso10646-1" }, { "bracket", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37+", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { NULL } }; /* Code page aliases. */ typedef struct { char *alias; char *canon; } cpalias_t; cpalias_t cpaliases[] = { { "belgian", "cp500" }, { "belgian-euro", "cp1148" }, { "brazilian", "cp275" }, #if defined(X3270_DBCS) /*[*/ { "chinese-gb18030","cp1388" }, { "cp1027", "cp939" }, /* historical error */ { "cp290", "cp930" }, /* historical error */ #endif /*]*/ { "cp37", "cp037" }, #if defined(X3270_DBCS) /*[*/ { "cp836", "cp935" }, /* historical error */ #endif /*]*/ { "finnish", "cp278" }, { "finnish-euro", "cp1143" }, { "french", "cp297" }, { "french-euro", "cp1147" }, { "german", "cp273" }, { "german-euro", "cp1141" }, { "greek", "cp875" }, { "hebrew", "cp424" }, { "icelandic", "cp871" }, { "icelandic-euro", "cp1149" }, { "italian", "cp280" }, { "italian-euro", "cp1144" }, #if defined(X3270_DBCS) /*[*/ { "japanese-1027", "cp939" }, /* historical error */ { "japanese-290", "cp930" }, /* historical error */ { "japanese-kana", "cp930" }, { "japanese-latin", "cp939" }, #endif /*]*/ { "norwegian", "cp277" }, { "norwegian-euro", "cp1142" }, { "oldibm", "bracket" }, { "bracket437", "bracket" }, { "polish", "cp870" }, { "russian", "cp880" }, #if defined(X3270_DBCS) /*[*/ { "simplified-chinese","cp935" }, #endif /*]*/ { "slovenian", "cp870" }, { "spanish", "cp284" }, { "spanish-euro", "cp1145" }, { "thai", "cp1160" }, #if defined(X3270_DBCS) /*[*/ { "traditional-chinese", "cp937" }, #endif /*]*/ { "turkish", "cp1026" }, { "uk", "cp285" }, { "uk-euro", "cp1146" }, { DEFAULT_CSNAME, "cp037" }, { "us-euro", "cp1140" }, { "us-intl", "cp037" }, { NULL, NULL } }; static uni_t *cur_uni = NULL; void charset_list(void) { int i; int j; char *sep = ""; printf("SBCS host code pages (with aliases):\n"); for (i = 0; uni[i].name != NULL; i++) { Boolean any = False; char *asep = " ("; printf("%s%s", sep, uni[i].name); for (j = 0; cpaliases[j].alias != NULL; j++) { if (!strcmp(cpaliases[j].canon, uni[i].name)) { printf("%s%s", asep, cpaliases[j].alias); asep = ", "; any = True; } } if (any) printf(")"); sep = ", "; } printf("\n"); #if defined(X3270_DBCS) /*[*/ charset_list_dbcs(); #endif /*]*/ } /* * Translate a single EBCDIC character in an arbitrary character set to * Unicode. Note that CS_DBCS is never used -- use CS_BASE and pass an * EBCDIC character > 0xff. * * Returns 0 for no translation. */ ucs4_t ebcdic_to_unicode(ebc_t c, unsigned char cs, unsigned flags) { int iuc; ucs4_t uc; #if 0 /* I'm not sure why this was put in, but it breaks display of DUP and FM. Hopefully I'll figure out why it was put in in the first place and I can put it back under the right conditions. */ /* Control characters become blanks. */ if (c <= 0x41 || c == 0xff) uc = 0; #endif /* * We do not pay attention to BLANK_UNDEF -- we always return 0 * for undefined characters. */ flags &= ~EUO_BLANK_UNDEF; /* Dispatch on the character set. */ if ((cs & CS_GE) || ((cs & CS_MASK) == CS_APL)) { iuc = apl_to_unicode(c, flags); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs == CS_LINEDRAW) { iuc = linedraw_to_unicode(c /* XXX: flags */); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs != CS_BASE) uc = 0; else uc = ebcdic_base_to_unicode(c, flags); return uc; } /* * Translate a single EBCDIC character in the base or DBCS character sets to * Unicode. * * EBCDIC 'FM' and 'DUP' characters are treated specially. If EUO_UPRIV * is set, they are returned as U+f8fe and U+feff (private-use) respectively * so they can be displayed with overscores in the special 3270 font; * otherwise they are returned as '*' and ';'. * EBCDIC 'EO' and 'SUB' are special-cased to U+25cf and U+25a0, respectively. * * If EUO_BLANK_UNDEF is set, other undisplayable characters are returned as * spaces; otherwise they are returned as 0. */ ucs4_t ebcdic_base_to_unicode(ebc_t c, unsigned flags) { #if defined(X3270_DBCS) /*[*/ if (c & 0xff00) return ebcdic_dbcs_to_unicode(c, flags); #endif /*]*/ if (c == 0x40) return 0x0020; if (c >= UT_OFFSET && c < 0xff) { ebc_t uc = cur_uni->code[c - UT_OFFSET]; return uc? uc: ((flags & EUO_BLANK_UNDEF)? ' ': 0); } else switch (c) { case EBC_fm: return (flags & EUO_UPRIV)? UPRIV_fm: ';'; case EBC_dup: return (flags & EUO_UPRIV)? UPRIV_dup: '*'; case EBC_eo: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_eo: 0x25cf; /* solid circle */ case EBC_sub: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_sub: 0x25a0; /* solid block */ default: if (flags & EUO_BLANK_UNDEF) return ' '; else return 0; } } /* * Map a UCS-4 character to an EBCDIC character. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic(ucs4_t u) { int i; #if defined(X3270_DBCS) /*[*/ ebc_t d; #endif /*]*/ if (!u) return 0; if (u == 0x0020) return 0x40; for (i = 0; i < UT_SIZE; i++) { if (cur_uni->code[i] == u) { return UT_OFFSET + i; } } #if defined(X3270_DBCS) /*[*/ /* See if it's DBCS. */ d = unicode_to_ebcdic_dbcs(u); if (d) return d; #endif /*]*/ return 0; } /* * Map a UCS-4 character to an EBCDIC character, possibly including APL (GE) * characters. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic_ge(ucs4_t u, Boolean *ge) { ebc_t e; *ge = False; e = unicode_to_ebcdic(u); if (e) return e; /* Handle GEs. Yes, this is slow, but I'm lazy. */ for (e = 0x70; e <= 0xfe; e++) { if ((ucs4_t)apl_to_unicode(e, EUO_NONE) == u) { *ge = True; return e; } } return 0; } /* * Set the SBCS EBCDIC-to-Unicode translation table. * Returns 0 for success, -1 for failure. */ int set_uni(const char *csname, const char **host_codepage, const char **cgcsgid, const char **display_charsets) { int i; const char *realname; int rc = -1; Boolean cannot_fail = False; /* * If the csname is NULL, this is a fallback to the default * and the iconv lookup cannot fail. */ if (csname == NULL) { csname = DEFAULT_CSNAME; cannot_fail = True; } realname = csname; /* Search for an alias. */ for (i = 0; cpaliases[i].alias != NULL; i++) { if (!strcasecmp(csname, cpaliases[i].alias)) { realname = cpaliases[i].canon; break; } } /* Search for a match. */ for (i = 0; uni[i].name != NULL; i++) { if (!strcasecmp(realname, uni[i].name)) { cur_uni = &uni[i]; *host_codepage = uni[i].host_codepage; *cgcsgid = uni[i].cgcsgid; *display_charsets = uni[i].display_charset; rc = 0; break; } } if (cannot_fail && rc == -1) Error("Cannot find default charset definition"); #if defined(USE_ICONV) /*[*/ /* * wchar_t's are not Unicode, so getting to/from Unicode is only half * the battle. We need to use iconv() to get between Unicode to the * local multi-byte representation. We'll explicitly use UTF-8, which * appears to be the most broadly-supported translation. */ if (rc == 0) { if (!is_utf8) { /* * If iconv doesn't support the locale's codeset, then * this box is hosed. */ i_u2mb = iconv_open(locale_codeset, "UTF-8"); if (i_u2mb == (iconv_t)(-1)) rc = -1; else { i_mb2u = iconv_open("UTF-8", locale_codeset); if (i_mb2u == (iconv_t)(-1)) { iconv_close(i_u2mb); rc = -1; } } } if (rc == -1 && cannot_fail) { /* Try again with plain-old ASCII. */ #if defined(PR3287) /*[*/ Warning("Cannot find iconv translation from locale " "codeset to UTF-8, using ASCII"); #else /*][*/ xs_warning("Cannot find iconv translation from locale " "codeset '%s' to UTF-8, using ASCII", locale_codeset); #endif /*]*/ i_u2mb = iconv_open("ASCII", "UTF-8"); if (i_u2mb == (iconv_t)-1) Error("No iconv UTF-8 to ASCII translation"); i_mb2u = iconv_open("UTF-8", "ASCII"); if (i_mb2u == (iconv_t)-1) Error("No iconv ASCII to UTF-8 translation"); rc = 0; } } #endif /*]*/ return rc; } /* * Translate an x3270 font line-drawing character (the first two rows of a * standard X11 fixed-width font) to Unicode. * * Returns -1 if there is no translation. */ int linedraw_to_unicode(ebc_t c) { static ebc_t ld2uc[32] = { /* 00 */ 0x2588, 0x25c6, 0x2592, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, /* 08 */ 0x00b1, 0x0000, 0x0000, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, /* 10 */ 0x002d, 0x002d, 0x2500, 0x002d, 0x005f, 0x251c, 0x2524, 0x2534, /* 18 */ 0x252c, 0x2502, 0x2264, 0x2265, 0x03c0, 0x2260, 0x00a3, 0x2022 }; if (c < 32 && ld2uc[c] != 0x0000) return ld2uc[c]; else return -1; } int apl_to_unicode(ebc_t c, unsigned flags) { static ebc_t apl2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x25c6, 0x22c0, 0x00a8, 0x223b, 0x2378, 0x2377, 0x22a2, 0x22a3, /* 78 */ 0x2228, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x23b8, 0x23b9, 0x2502, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x2191, 0x2193, 0x2264, 0x2308, 0x230a, 0x2192, /* 90 */ 0x2395, 0x258c, 0x2590, 0x2580, 0x2584, 0x25a0, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x2283, 0x2282, 0x00a4, 0x25cb, 0x00b1, 0x2190, /* a0 */ 0x00af, 0x00b0, 0x2500, 0x2022, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x22c2, 0x22c3, 0x22a5, 0x005b, 0x2265, 0x2218, /* b0 */ 0x03b1, 0x03b5, 0x03b9, 0x03c1, 0x03c9, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x2207, 0x2206, 0x22a4, 0x005d, 0x2260, 0x2502, /* c0 */ 0x007b, 0x207c, 0x002b, 0x220e, 0x2514, 0x250c, 0x251c, 0x2534, /* c8 */ 0x00a7, 0x0000, 0x2372, 0x2371, 0x2337, 0x233d, 0x2342, 0x2349, /* d0 */ 0x007d, 0x207e, 0x002d, 0x253c, 0x2518, 0x2510, 0x2524, 0x252c, /* d8 */ 0x00b6, 0x0000, 0x2336, 0x0021, 0x2352, 0x234b, 0x235e, 0x235d, /* e0 */ 0x2261, 0x2081, 0x0282, 0x0283, 0x2364, 0x2365, 0x236a, 0x20ac, /* e8 */ 0x0000, 0x0000, 0x233f, 0x2240, 0x2235, 0x2296, 0x2339, 0x2355, /* f0 */ 0x2070, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x2075, 0x2076, 0x2077, /* f8 */ 0x2078, 0x2079, 0x0000, 0x236b, 0x2359, 0x235f, 0x234e, 0x0000 }; #if defined(C3270) /*[*/ static ebc_t apla2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x0000, 0x0000, 0x00a8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x0000, 0x0000, 0x007c, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 90 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x00a4, 0x0000, 0x00b1, 0x0000, /* a0 */ 0x00af, 0x00b0, 0x002d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x0000, 0x0000, /* b0 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x0000, 0x0000, 0x0000, 0x005d, 0x0000, 0x007c, /* c0 */ 0x007b, 0x0000, 0x002b, 0x0000, 0x002b, 0x002b, 0x002b, 0x002b, /* c8 */ 0x00a7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x0000, 0x002d, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, /* d8 */ 0x00b6, 0x0000, 0x0000, 0x0021, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x0000, 0x0000, 0x0282, 0x0283, 0x0000, 0x0000, 0x0000, 0x0000, /* e8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0000, 0x00b9, 0x00b2, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000, /* f8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; #endif /*]*/ #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) { if (c < 256 && apla2uc[c] != 0x0000) { #if defined(_WIN32) /*[*/ /* Windows DBCS fonts make U+0080..U+00ff wide, too. */ if (apla2uc[c] > 0x7f) return -1; #endif /*]*/ return apla2uc[c]; } else return -1; } #endif /*]*/ if (c < 256 && apl2uc[c] != 0x0000) return apl2uc[c]; else return -1; } /* * Translate an EBCDIC character to the current locale's multi-byte * representation. * * Returns the number of bytes in the multi-byte representation, including * the terminating NULL. mb[] should be big enough to include the NULL * in the result. * * Also returns in 'ucp' the UCS-4 Unicode value of the EBCDIC character. * * Note that 'ebc' is an ebc_t (uint16_t), not an unsigned char. This is * so that DBCS values can be passed in as 16 bits (with the first byte * in the high-order bits). There is no ambiguity because all valid EBCDIC * DBCS characters have a nonzero first byte. * * Returns 0 if EUO_BLANK_UNDEF is clear and there is no printable EBCDIC * translation for 'ebc'. * * Returns '?' in mb[] if there is no local multi-byte representation of * the EBCDIC character. */ int ebcdic_to_multibyte_x(ebc_t ebc, unsigned char cs, char mb[], int mb_len, unsigned flags, ucs4_t *ucp) { ucs4_t uc; #if defined(_WIN32) /*[*/ int nc; BOOL udc; wchar_t wuc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; wchar_t wuc; #else /*][*/ char u8b[7]; size_t nu8; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; #endif /*]*/ /* Translate from EBCDIC to Unicode. */ uc = ebcdic_to_unicode(ebc, cs, flags); if (ucp != NULL) *ucp = uc; if (uc == 0) { if (flags & EUO_BLANK_UNDEF) { mb[0] = ' '; mb[1] = '\0'; return 2; } else { return 0; } } /* Translate from Unicode to local multibyte. */ #if defined(_WIN32) /*[*/ /* * wchar_t's are Unicode. */ wuc = uc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc != 0) { mb[nc++] = '\0'; return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #elif defined(UNICODE_WCHAR) /*][*/ /* * wchar_t's are Unicode. * If 'is_utf8' is set, use unicode_to_utf8(). This allows us to set * 'is_utf8' directly, ignoring the locale, for Tcl. * Otherwise, use wctomb(). */ if (is_utf8) { nc = unicode_to_utf8(uc, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } wuc = uc; nc = wctomb(mb, uc); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ /* * Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(uc, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc < 0 || inbytesleft == nu8) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc < 0) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } /* Commonest version of ebcdic_to_multibyte_x: * cs is CS_BASE * EUO_BLANK_UNDEF is set * ucp is ignored */ int ebcdic_to_multibyte(ebc_t ebc, char mb[], int mb_len) { return ebcdic_to_multibyte_x(ebc, CS_BASE, mb, mb_len, EUO_BLANK_UNDEF, NULL); } /* * Convert an EBCDIC string to a multibyte string. * Makes lots of assumptions: standard character set, EUO_BLANK_UNDEF. * Returns the length of the multibyte string. */ int ebcdic_to_multibyte_string(unsigned char *ebc, size_t ebc_len, char mb[], size_t mb_len) { int nmb = 0; while (ebc_len && mb_len) { int xlen; xlen = ebcdic_to_multibyte(*ebc, mb, mb_len); if (xlen) { mb += xlen - 1; mb_len -= (xlen - 1); nmb += xlen - 1; } ebc++; ebc_len--; } return nmb; } /* * Return the maximum buffer length needed to translate 'len' EBCDIC characters * in the current locale. */ int mb_max_len(int len) { #if defined(_WIN32) /*[*/ /* * On Windows, it's 1:1 (we don't do DBCS, and we don't support locales * like UTF-8). */ return len + 1; #elif defined(UNICODE_WCHAR) /*][*/ /* Allocate enough space for shift-state transitions. */ return (MB_CUR_MAX * (len * 2)) + 1; #else /*]*/ if (is_utf8) return (len * 6) + 1; else /* * We don't actually know. Guess that MB_CUR_MAX is 16, and compute * as for UNICODE_WCHAR. */ return (16 * (len * 2)) + 1; #endif /*]*/ } /* * Translate a multi-byte character in the current locale to UCS-4. * * Returns a UCS-4 character or 0, indicating an error in translation. * Also returns the number of characters consumed. */ ucs4_t multibyte_to_unicode(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { size_t nw; ucs4_t ucs4; #if defined(_WIN32) /*[*/ wchar_t wc[3]; int i; /* Use MultiByteToWideChar() to get from the ANSI codepage to UTF-16. */ for (i = 1; i <= mb_len; i++) { nw = MultiByteToWideChar(LOCAL_CODEPAGE, MB_ERR_INVALID_CHARS, mb, i, wc, 3); if (nw != 0) break; } if (i > mb_len) { *errorp = ME_INVALID; return 0; } *consumedp = i; ucs4 = wc[0]; #elif defined(UNICODE_WCHAR) /*][*/ wchar_t wc[3]; /* wchar_t's are Unicode. */ if (is_utf8) { int nc; /* * Use utf8_to_unicode() instead of mbtowc(), so we can set is_utf8 * directly and ignore the locale for Tcl. */ nc = utf8_to_unicode(mb, mb_len, &ucs4); if (nc > 0) { *errorp = ME_NONE; *consumedp = nc; return ucs4; } else if (nc == 0) { *errorp = ME_SHORT; return 0; } else { *errorp = ME_INVALID; return 0; } } /* mbtowc() will translate to Unicode. */ nw = mbtowc(wc, mb, mb_len); if (nw == (size_t)-1) { if (errno == EILSEQ) *errorp = ME_INVALID; else *errorp = ME_SHORT; nw = mbtowc(NULL, NULL, 0); return 0; } /* * Reset the shift state. * XXX: Doing this will ruin the shift state if this function is called * repeatedly to process a string. There should probably be a parameter * passed in to control whether or not to reset the shift state, or * perhaps there should be a function to translate a string. */ *consumedp = nw; nw = mbtowc(NULL, NULL, 0); ucs4 = wc[0]; #else /*][*/ /* wchar_t's have unknown encoding. */ if (!is_utf8) { ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; char utf8buf[16]; size_t ibl; /* Translate from local MB to UTF-8 using iconv(). */ for (ibl = 1; ibl <= mb_len; ibl++) { inbuf = (ici_t)mb; outbuf = utf8buf; inbytesleft = ibl; outbytesleft = sizeof(utf8buf); nw = iconv(i_mb2u, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nw < 0) { if (errno == EILSEQ) { *errorp = ME_INVALID; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } else { if (ibl == mb_len) { *errorp = ME_SHORT; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } } } else break; } *consumedp = ibl - inbytesleft; /* Translate from UTF-8 to UCS-4. */ (void) utf8_to_unicode(utf8buf, sizeof(utf8buf) - outbytesleft, &ucs4); } else { /* Translate from UTF-8 to UCS-4. */ nw = utf8_to_unicode(mb, mb_len, &ucs4); if (nw < 0) { *errorp = ME_INVALID; return 0; } if (nw == 0) { *errorp = ME_SHORT; return 0; } *consumedp = nw; } #endif /*]*/ /* Translate from UCS4 to EBCDIC. */ return ucs4; } /* * Convert a multi-byte string to a UCS-4 string. * Does not NULL-terminate the result. * Returns the number of UCS-4 characters stored. */ int multibyte_to_unicode_string(char *mb, size_t mb_len, ucs4_t *ucs4, size_t u_len) { int consumed; enum me_fail error; int nr = 0; error = ME_NONE; while (u_len && mb_len && (*ucs4++ = multibyte_to_unicode(mb, mb_len, &consumed, &error)) != 0) { u_len--; mb += consumed; mb_len -= consumed; nr++; } if (error != ME_NONE) return -1; else return nr; } /* * Translate a multi-byte character in the current locale to an EBCDIC * character. * * Returns an 8-bit (SBCS) or 16-bit (DBCS) EBCDIC character, or 0, indicating * an error in translation. Also returns the number of characters consumed. */ ebc_t multibyte_to_ebcdic(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { ucs4_t ucs4; ucs4 = multibyte_to_unicode(mb, mb_len, consumedp, errorp); if (ucs4 == 0) return 0; return unicode_to_ebcdic(ucs4); } /* * Convert a local multi-byte string to an EBCDIC string. * Returns the length of the resulting EBCDIC string, or -1 if there is a * conversion error. */ int multibyte_to_ebcdic_string(char *mb, size_t mb_len, unsigned char *ebc, size_t ebc_len, enum me_fail *errorp) { int ne = 0; Boolean in_dbcs = False; while (mb_len > 0 && ebc_len > 0) { ebc_t e; int consumed; e = multibyte_to_ebcdic(mb, mb_len, &consumed, errorp); if (e == 0) return -1; if (e & 0xff00) { /* DBCS. */ if (!in_dbcs) { /* Make sure there's room for SO, b1, b2, SI. */ if (ebc_len < 4) return ne; *ebc++ = EBC_so; ebc_len++; ne++; in_dbcs = True; } /* Make sure there's room for b1, b2, SI. */ if (ebc_len < 3) { *ebc++ = EBC_si; ne++; return ne; } *ebc++ = (e >> 8) & 0xff; *ebc++ = e & 0xff; ebc_len -= 2; ne += 2; } else { /* SBCS. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; if (!--ebc_len) return ne; in_dbcs = False; } *ebc++ = e & 0xff; ebc_len--; ne++; } mb += consumed; mb_len -= consumed; } /* * Terminate the DBCS string, if we end inside it. * We're guaranteed to have space for the SI; we checked before adding * the last DBCS character. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; } return ne; } /* * Translate a UCS-4 character to a local multi-byte string. */ int unicode_to_multibyte(ucs4_t ucs4, char *mb, size_t mb_len) { #if defined(_WIN32) /*[*/ wchar_t wuc = ucs4; BOOL udc; int nc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc > 0) mb[nc++] = '\0'; return nc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; if (is_utf8) { nc = unicode_to_utf8(ucs4, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } nc = wctomb(mb, ucs4); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ int nu8; char u8b[16]; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; /* Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(ucs4, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } ibm-3270-3.3.10ga4/s3270/localdefs.h0000644000175000017500000000527011254565710016053 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * localdefs.h * Local definitions for s3270. * * This file contains definitions for environment-specific * facilities, such as memory allocation, I/O registration, * and timers. */ /* Identify ourselves. */ #define S3270 1 /* These first definitions were cribbed from X11 -- but no X code is used. */ #define False 0 #define True 1 typedef void *XtPointer; typedef void *Widget; typedef void *XEvent; typedef char Boolean; typedef char *String; typedef unsigned int Cardinal; typedef unsigned long KeySym; #define Bool int typedef void (*XtActionProc)( Widget /* widget */, XEvent* /* event */, String* /* params */, Cardinal* /* num_params */ ); typedef struct _XtActionsRec{ String string; XtActionProc proc; } XtActionsRec; #define XtNumber(n) (sizeof(n)/sizeof((n)[0])) #define NoSymbol 0L /* These are local functions with similar semantics to X functions. */ extern void *Malloc(size_t); extern void Free(void *); extern void *Calloc(size_t, size_t); extern void *Realloc(void *, size_t); extern char *NewString(const char *); extern void Error(const char *); extern void Warning(const char *); /* "Required" optional parts. */ #define X3270_SCRIPT 1 ibm-3270-3.3.10ga4/s3270/x3270-script.man0000644000175000017500000006011211261527771016527 0ustar bastianbastian'\" t .TH X3270-SCRIPT 1 "02 October 2009" .SH "NAME" Scripting Facilities for x3270, s3270, ws3270 and c3270 .SH "SYNOPSIS" \fBx3270\fP \fB\-script\fP [ \fIx3270-options\fP ] .br \fBs3270\fP [ \fIs3270-options\fP ] .br \fBws3270\fP [ \fIws3270-options\fP ] .br \fBScript\fP ( \fIcommand\fP [ ,\fIarg\fP... ] ) .SH "DESCRIPTION" The \fBx3270\fP scripting facilities allow the interactive 3270 emulators \fBx3270\fP and \fBc3270\fP to be operated under the control of another program, and form the basis for the script-only emulators \fBs3270\fP and \fBws3270\fP. .PP There are two basic scripting methods. The first is the \fBpeer script\fP facility, invoked by the \fBx3270\fP \fB\-script\fP switch, and the default mode for \fBs3270\fP and \fBws3270\fP. This runs \fBx3270\fP, \fBs3270\fP or \fBws3270\fP as a child of another process. Typically this would be a script using \fIexpect\fP(1), \fIperl\fP(1), or the co-process facility of the Korn Shell \fIksh\fP(1). Inthis mode, the emulator process looks for commands on its standard input, and places the responses on standard output and standard error output. .PP The second method is the \fBchild script\fP facility, invoked by the \fBScript\fP action in \fBx3270\fP, \fBc3270\fP, or \fBs3270\fP. This runs a script as a child process of the emulator. The child has access to pipes connected to the emulator; the emulator look for commands on one pipe, and places the responses on the other. (The file descriptor of the pipe for commands to the emulator is passed in the environment variable X3270INPUT; the file descriptor of the pipe for responses from the emulator is passed in the environment variable X3270OUTPUT.) .PP It is possible to mix the two methods. A script can invoke another script with the \fBScript\fP action, and may also be implicitly nested when a script invokes the \fBConnect\fP action, and the \fBibm_hosts\fP file specifies a login script for that host name. .PP Commands are emulator \fIactions\fP; the syntax is the same as for the right-hand side of an Xt translation table entry (an \fBx3270\fP or \fBc3270\fP keymap). Unlike translation tables, action names are case-insensitive, can be uniquely abbreviated, and the parentheses may be omitted if there are no parameters. Any input line that begins with \fB#\fP or \fB!\fP is treaded as a comment and will be ignored. .PP Any emulator action may be specified. Several specific actions have been defined for use by scripts, and the behavior of certain other actions (and of the emulators in general) is different when an action is initiated by a script. .PP Some actions generate output; some may delay completion until the certain external events occur, such as the host unlocking the keyboard. The completion of every command is marked by a two-line message. The first line is the current status of the emulator, documented below. If the command is successful, the second line is the string "ok"; otherwise it is the string "error". .SH "STATUS FORMAT" The status message consists of 12 blank-separated fields: .TP 1 Keyboard State If the keyboard is unlocked, the letter \fBU\fP. If the keyboard is locked waiting for a response from the host, or if not connected to a host, the letter \fBL\fP. If the keyboard is locked because of an operator error (field overflow, protected field, etc.), the letter \fBE\fP. .TP 2 Screen Formatting If the screen is formatted, the letter \fBF\fP. If unformatted or in \s-1NVT\s+1 mode, the letter \fBU\fP. .TP 3 Field Protection If the field containing the cursor is protected, the letter \fBP\fP. If unprotected or unformatted, the letter \fBU\fP. .TP 4 Connection State If connected to a host, the string \fBC(\fP\fIhostname\fP\fB)\fP. Otherwise, the letter \fBN\fP. .TP 5 Emulator Mode If connected in 3270 mode, the letter \fBI\fP. If connected in \s-1NVT\s+1 line mode, the letter \fBL\fP. If connected in \s-1NVT\s+1 character mode, the letter \fBC\fP. If connected in unnegotiated mode (no BIND active from the host), the letter \fBP\fP. If not connected, the letter \fBN\fP. .TP 6 Model Number (2-5) .TP 7 Number of Rows The current number of rows defined on the screen. The host can request that the emulator use a 24x80 screen, so this number may be smaller than the maximum number of rows possible with the current model. .TP 8 Number of Columns The current number of columns defined on the screen, subject to the same difference for rows, above. .TP 9 Cursor Row The current cursor row (zero-origin). .TP 10 Cursor Column The current cursor column (zero-origin). .TP 11 Window ID The X window identifier for the main \fBx3270\fP window, in hexadecimal preceded by \fB0x\fP. For \fBs3270\fP, \fBws3270\fP and \fBc3270\fP, this is zero. .TP 12 Command Execution Time The time that it took for the host to respond to the previous commnd, in seconds with milliseconds after the decimal. If the previous command did not require a host response, this is a dash. .SH "DIFFERENCES" When an action is initiated by a script, the emulators behave in several different ways: .PP If an error occurs in processing an action, the usual pop-up window does not appear. Instead, the text is written to standard error output. .PP If end-of-file is detected on standard input, the emulator exits. (A script can exit without killing the emulator by using the \fBCloseScript\fP action, below.) Note that this applies to peer scripts only; end-of-file on the pipe connected to a child script simply causes the pipes to be closed and the \fBScript\fP action to complete. .PP The \fBQuit\fP action always causes the emulator to exit. (When called from the keyboard, it will exit only if not connected to a host.) .PP Normally, the AID actions (\fBClear\fP, \fBEnter\fP, \fBPF\fP, and \fBPA\fP) will not complete until the host unlocks the keyboard. If the parameter to a \fBString\fP action includes a code for one these actions, it will also wait for the keyboard to unlock before proceeding. .PP The \fBAidWait\fP toggle controls with behavior. When this toggle is set (the default), actions block as described above. When the toggle is clear, AID actions complete immediately. The \fBWait(Output)\fP action can then be used to delay a script until the host changes something on the screen, and the \fBWait(Unlock)\fP action can be used to delay a script until the host unlocks the keyboard, regardless of the state of the \fBAidWait\fP toggle. .PP Note that the \fBScript\fP action does not complete until end-of-file is detected on the pipe or the \fBCloseScript\fP action is called by the child process. This behavior is not affected by the state of the \fBAidWait\fP toggle. .SH "SCRIPT-SPECIFIC ACTIONS" The following actions have been defined or modified for use with scripts. (Note that unlike the display on the status line, \fIrow\fP and \fIcol\fP coordinates used in these actions use [0,0] as their origin, not [1,1]). .TP \fBAnsiText\fP Outputs whatever data that has been output by the host in \s-1NVT\s+1 mode since the last time that \fBAnsiText\fP was called. The data is preceded by the string "data:\ ", and has had all control characters expanded into C backslash sequences. .IP This is a convenient way to capture \s-1NVT\s+1 mode output in a synchronous manner without trying to decode the screen contents. .TP \fBAscii\fP(\fIrow\fP,\fIcol\fP,\fIrows\fP,\fIcols\fP) .TP \fBAscii\fP(\fIrow\fP,\fIcol\fP,\fIlength\fP) .TP \fBAscii\fP(\fIlength\fP) .TP \fBAscii\fP Outputs an \s-1ASCII\s+1 text representation of the screen contents. Each line is preceded by the string "data:\ ", and there are no control characters. .IP If four parameters are given, a rectangular region of the screen is output. .IP If three parameters are given, \fIlength\fP characters are output, starting at the specified row and column. .IP If only the \fIlength\fP parameter is given, that many characters are output, starting at the cursor position. .IP If no parameters are given, the entire screen is output. .IP The EBCDIC-to-ASCII translation and output character set depend on the both the emulator character set (the \fB\-charset\fP option) and the locale. UTF-8 and certain DBCS locales may result in multi-byte expansions of EBCDIC characters that translate to ASCII codes greater than 0x7f. .TP \fBAsciiField\fP Outputs an \s-1ASCII\s+1 text representation of the field containing the cursor. The text is preceded by the string "data:\ ". .TP \fBConnect\fP(\fIhostname\fP) Connects to a host. The command does not return until the emulator is successfully connected in the proper mode, or the connection fails. .TP \fBCloseScript\fP(\fIstatus\fP) Causes the emulator to stop reading commands from the script. This is useful to allow a peer script to exit, with the emulator proceeding interactively. (Without this command, the emulator would exit when it detected end-of-file on standard input.) If the script was invoked by the \fBScript\fP action, the optional \fIstatus\fP is used as the return status of \fBScript\fP; if nonzero, \fBScript\fP will complete with an error, and if this script was invoked as part of login through the \fBibm_hosts\fP file, the connection will be broken. .TP \fBContinueScript\fP(\fIparam\fP) Allows a script that is waiting in a \fBPauseScript\fP action, below, to continue. The \fIparam\fP given is output by the \fBPauseScript\fP action. .TP \fBDisconnect\fP Disconnects from the host. .TP \fBEbcdic\fP(\fIrow\fP,\fIcol\fP,\fIrows\fP,\fIcols\fP) .TP \fBEbcdic\fP(\fIrow\fP,\fIcol\fP,\fIlength\fP) .TP \fBEbcdic\fP(\fIlength\fP) .TP \fBEbcdic\fP The same function as \fBAscii\fP above, except that rather than generating \s-1ASCII\s+1 text, each character is output as a hexadecimal \s-1EBCDIC\s+1 code, preceded by \fB0x\fP. .TP \fBEbcdicField\fP The same function as \fBAsciiField\fP above, except that it generates hexadecimal \s-1EBCDIC\s+1 codes. .TP \fBInfo\fP(\fImessage\fP) In x3270, pops up an informational message. In c3270 and wc3270, writes an informational message to the OIA (the line below the display). Not defined for s3270 or tcl3270. .TP \fBExpect\fP(\fItext\fP[,\fItimeout\fP]) Pauses the script until the specified \fItext\fP appears in the data stream from the host, or the specified \fItimeout\fP (in seconds) expires. If no \fItimeout\fP is specified, the default is 30 seconds. \fIText\fP can contain standard C-language escape (backslash) sequences. No wild-card characters or pattern anchor characters are understood. \fBExpect\fP is valid only in \s-1NVT\s+1 mode. .TP \fBMoveCursor\fP(\fIrow\fP,\fIcol\fP) Moves the cursor to the specified coordinates. .TP \fBPauseScript\fP Stops a script until the \fBContinueScript\fP action, above, is executed. This allows a script to wait for user input and continue. Outputs the single parameter to \fBContinueScript\fP. .TP \fBPrintText\fP([\fBcommand\fP,]\fIfilter\fP)) Pipes an ASCII representation of the current screen image through the named \fIfilter\fP, e.g., \fBlpr\fP. .TP \fBPrintText\fP([\fBhtml\fP,],\fBfile\fP,\fIfilename\fP)) Saves the current screen contents in a file. With the \fBhtml\fP option, saves it as HTML, otherwise saves it as plain ASCII. .TP \fBPrintText\fP(\fBhtml,string\fP) Returns the current screen contents as HTML. .TP \fBReadBuffer\fP(\fBAscii\fP) Dumps the contents of the screen buffer, one line at a time. Positions inside data fields are generally output as 2-digit hexadecimal codes in the current display character set. If the current locale specifies UTF-8 (or certain DBCS character sets), some positions may be output as multi-byte strings (4-, 6- or 8-digit codes). DBCS characters take two positions in the screen buffer; the first location is output as a multi-byte string in the current locale codeset, and the second location is output as a dash. Start-of-field characters (each of which takes up a display position) are output as \fBSF(aa=nn[,...])\fP, where \fIaa\fP is a field attribute type and \fInn\fP is its value. .PP .TS center; l l . T{ .na .nh Attribute T} T{ .na .nh Values T} _ T{ .na .nh c0 basic 3270 T} T{ .na .nh 20 protected T} T{ .na .nh T} T{ .na .nh 10 numeric T} T{ .na .nh T} T{ .na .nh 04 detectable T} T{ .na .nh T} T{ .na .nh 08 intensified T} T{ .na .nh T} T{ .na .nh 0c non-display T} T{ .na .nh T} T{ .na .nh 01 modified T} T{ .na .nh 41 highlighting T} T{ .na .nh f1 blink T} T{ .na .nh T} T{ .na .nh f2 reverse T} T{ .na .nh T} T{ .na .nh f4 underscore T} T{ .na .nh T} T{ .na .nh f8 intensify T} T{ .na .nh 42 foreground T} T{ .na .nh f0 neutral black T} T{ .na .nh T} T{ .na .nh f1 blue T} T{ .na .nh T} T{ .na .nh f2 red T} T{ .na .nh T} T{ .na .nh f3 pink T} T{ .na .nh T} T{ .na .nh f4 green T} T{ .na .nh T} T{ .na .nh f5 turquoise T} T{ .na .nh T} T{ .na .nh f6 yellow T} T{ .na .nh T} T{ .na .nh f7 neutral white T} T{ .na .nh T} T{ .na .nh f8 black T} T{ .na .nh T} T{ .na .nh f9 deep blue T} T{ .na .nh T} T{ .na .nh fa orange T} T{ .na .nh T} T{ .na .nh fb purple T} T{ .na .nh T} T{ .na .nh fc pale green T} T{ .na .nh T} T{ .na .nh fd pale turquoise T} T{ .na .nh T} T{ .na .nh fe grey T} T{ .na .nh T} T{ .na .nh ff white T} T{ .na .nh 43 character set T} T{ .na .nh f0 default T} T{ .na .nh T} T{ .na .nh f1 APL T} T{ .na .nh T} T{ .na .nh f8 DBCS T} .TE .IP Extended attributes (which do not take up display positions) are output as \fBSA(aa=nn)\fP, with \fIaa\fP and \fInn\fP having the same definitions as above (though the basic 3270 attribute will never appear as an extended attribute). .IP In addition, NULL characters in the screen buffer are reported as ASCII character 00 instead of 20, even though they should be displayed as blanks. .TP \fBReadBuffer\fP(\fBEbcdic\fP) Equivalent to \fBSnap\fP(\fBAscii\fP), but with the data fields output as hexadecimal EBCDIC codes instead. Additionally, if a buffer position has the Graphic Escape attribute, it is displayed as \fBGE(\fIxx\fP)\fP. .TP \fBSnap\fP Equivalent to \fBSnap\fP(\fBSave\fP) (see below). .TP \fBSnap\fP(\fBAscii\fP,...) Performs the \fBAscii\fP action on the saved screen image. .TP \fBSnap\fP(\fBCols\fP) Returns the number of columns in the saved screen image. .TP \fBSnap\fP(\fBEbcdic\fP,...) Performs the \fBEbcdic\fP action on the saved screen image. .TP \fBSnap\fP(\fBReadBuffer\fP) Performs the \fBReadBuffer\fP action on the saved screen image. .TP \fBSnap\fP(\fBRows\fP) Returns the number of rows in the saved screen image. .TP \fBSnap\fP(\fBSave\fP) Saves a copy of the screen image and status in a temporary buffer. This copy can be queried with other \fBSnap\fP actions to allow a script to examine a consistent screen image, even when the host may be changing the image (or even the screen dimensions) dynamically. .TP \fBSnap\fP(\fBStatus\fP) Returns the status line from when the screen was last saved. .TP \fBSnap\fP(\fBWait\fP[,\fItimeout\fP],\fBOutput\fP) Pauses the script until the host sends further output, then updates the snap buffer with the new screen contents. Used when the host unlocks the keyboard (allowing the script to proceed after an \fBEnter\fP, \fBPF\fP or \fBPA\fP action), but has not finished updating the screen. This action is usually invoked in a loop that uses the \fBSnap\fP(\fBAscii\fP) or \fBSnap\fP(\fBEbcdic\fP) action to scan the screen for some pattern that indicates that the host has fully processed the last command. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBSnap\fP action. The default is to wait indefinitely. .TP \fBSource\fP(\fIfile\fP) Read and execute commands from \fIfile\fP. Any output from those commands will become the output from \fBSource\fP. If any of the commands fails, the \fBSource\fP command will \fInot\fP abort; it will continue reading commands until EOF. .TP \fBTitle\fP(\fItext\fP) Changes the x3270 window title to \fItext\fP. .TP \fBTransfer\fP(\fIkeyword\fP=\fIvalue\fP,...) Invokes IND$FILE file transfer. See \s-1FILE TRANSFER\s+1 below. .TP \fBWait\fP([\fItimeout\fP,] \fB3270Mode\fP) Used when communicating with a host that switches between \s-1NVT\s+1 mode and 3270 mode. Pauses the script or macro until the host negotiates 3270 mode, then waits for a formatted screen as above. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .IP For backwards compatibility, \fBWait(3270)\fP is equivalent to \fBWait\fP(\fB3270Mode\fP) .TP \fBWait\fP([\fItimeout\fP,] \fBDisconnect\fP) Pauses the script until the host disconnects. Often used to after sending a \fIlogoff\fP command to a \s-1VM/CMS\s+1 host, to ensure that the session is not unintentionally set to \fBdisconnected\fP state. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .TP \fBWait\fP([\fItimeout\fP,] \fBInputField\fP) A useful utility for use at the beginning of scripts and after the \fBConnect\fP action. In 3270 mode, waits until the screen is formatted, and the host has positioned the cursor on a modifiable field. In \s-1NVT\s+1 mode, waits until the host sends at least one byte of data. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .IP For backwards compatibility, \fBWait\fP is equivalent to \fBWait\fP(\fBInputField\fP). .TP \fBWait\fP([\fItimeout\fP,] \fBNVTMode\fP) Used when communicating with a host that switches between 3270 mode and \s-1NVT\s+1 mode. Pauses the script or macro until the host negotiates \s-1NVT\s+1 mode, then waits for a byte from the host as above. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .IP For backwards compatibility, \fBWait\fP(\fBansi\fP) is equivalent to \fBWait\fP(\fBNVTMode\fP). .TP \fBWait\fP([\fItimeout\fP,] \fBOutput\fP) Pauses the script until the host sends further output. Often needed when the host unlocks the keyboard (allowing the script to proceed after a \fBClear\fP, \fBEnter\fP, \fBPF\fP or \fBPA\fP action), but has not finished updating the screen. Also used in non-blocking AID mode (see \s-1DIFFERENCES\s+1 for details). This action is usually invoked in a loop that uses the \fBAscii\fP or \fBEbcdic\fP action to scan the screen for some pattern that indicates that the host has fully processed the last command. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .TP \fBWait\fP([\fItimeout\fP,] \fBUnlock\fP) Pauses the script until the host unlocks the keyboard. This is useful when operating in non-blocking AID mode (\fBtoggle AidWait clear\fP), to wait for a host command to complete. See \s-1DIFFERENCES\s+1 for details). .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .TP \fBWait\fP(\fItimeout\fP, \fBSeconds\fP) Delays the script \fItimeout\fP seconds. Unlike the other forms of \fBWait\fP, the timeout is not optional. .TP \fBWindowState\fP(\fImode\fP) If \fImode\fP is \fBIconic\fP, changes the x3270 window into an icon. If \fImode\fP is \fBNormal\fP, changes the x3270 window from an icon to a normal window. .SH "FILE TRANSFER" The \fBTransfer\fP action implements \fBIND$FILE\fP file transfer. This action requires that the \fBIND$FILE\fP program be installed on the \s-1IBM\s+1 host, and that the 3270 cursor be located in a field that will accept a \s-1TSO\s+1 or \s-1VM/CMS\s+1 command. .LP The \fBTransfer\fP action can be entered at the command prompt with no parameters, which will cause it to prompt interactively for the file names and options. It can also be invoked with parameters to define the entire transfer. .LP Because of the complexity and number of options for file transfer, the parameters to the \fBTransfer\fP action take the unique form of \fIoption\fP=\fIvalue\fP, and can appear in any order. Note that if the \fIvalue\fP contains spaces (such as a VM/CMS file name), then the entire parameter must be quoted, e.g., "HostFile=xxx foo a". The options are: .LP .TS l c l l. T{ .na .nh Option T} T{ .na .nh Required? T} T{ .na .nh Default T} T{ .na .nh Other Values T} _ T{ .na .nh Direction T} T{ .na .nh No T} T{ .na .nh receive T} T{ .na .nh send T} T{ .na .nh HostFile T} T{ .na .nh Yes T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh LocalFile T} T{ .na .nh Yes T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Host T} T{ .na .nh No T} T{ .na .nh tso T} T{ .na .nh vm T} T{ .na .nh Mode T} T{ .na .nh No T} T{ .na .nh ascii T} T{ .na .nh binary T} T{ .na .nh Cr T} T{ .na .nh No T} T{ .na .nh remove T} T{ .na .nh add, keep T} T{ .na .nh Remap T} T{ .na .nh No T} T{ .na .nh yes T} T{ .na .nh no T} T{ .na .nh Exist T} T{ .na .nh No T} T{ .na .nh keep T} T{ .na .nh replace, append T} T{ .na .nh Recfm T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh fixed, variable, undefined T} T{ .na .nh Lrecl T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Blksize T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Allocation T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh tracks, cylinders, avblock T} T{ .na .nh PrimarySpace T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh SecondarySpace T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh BufferSize T} T{ .na .nh No T} T{ .na .nh 4096 T} T{ .na .nh \ T} .TE .LP The option details are as follows. .TP \fBDirection\fP \fBsend\fP to send a file to the host, \fBreceive\fP to receive a file from the host. .TP \fBHostFile\fP The name of the file on the host. .TP \fBLocalFile\fP The name of the file on the local workstation. .TP \fBHost\fP The type of host (which dictates the form of the \fBIND$FILE\fP command): \fBtso\fP (the default) or \fBvm\fP. .TP \fBMode\fP Use \fBascii\fP (the default) for a text file, which will be translated between \s-1EBCDIC\s+1 and \s-1ASCII\s+1 as necessary. Use \fBbinary\fP for non-text files. .TP \fBCr\fP Controls how \fBNewline\fP characters are handled when transferring \fBMode=ascii\fP files. \fBremove\fP (the default) strips \fBNewline\fP characters in local files before transferring them to the host. \fBadd\fP adds \fBNewline\fP characters to each host file record before transferring it to the local workstation. \fBkeep\fP preserves \fBNewline\fP characters when transferring a local file to the host. .TP \fBRemap\fP Controls text translation for \fBMode=ascii\fP files. The value \fByes\fP (the default) causes x3270-script to remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page. The value \fBno\fP causes x3270-script to pass the text to or from the host as-is, leaving all translation to the \fBIND$FILE\fP program on the host. .TP \fBExist\fP Controls what happens when the destination file already exists. \fBkeep\fP (the default) preserves the file, causing the \fBTransfer\fP action to fail. \fBreplace\fP overwrites the destination file with the source file. \fBappend\fP appends the source file to the destination file. .TP \fBRecfm\fP Controls the record format of files created on the host. \fBfixed\fP creates a file with fixed-length records. \fBvariable\fP creates a file with variable-length records. \fBundefined\fP creates a file with undefined-length records (\s-1TSO\s+1 hosts only). The \fBLrecl\fP option controls the record length or maximum record length for \fBRecfm=fixed\fP and \fBRecfm=variable\fP files, respectively. .TP \fBLrecl\fP Specifies the record length (or maximum record length) for files created on the host. .TP \fBBlksize\fP Specifies the block size for files created on the host. (\s-1TSO\s+1 hosts only.) .TP \fBAllocation\fP Specifies the units for the \s-1TSO\s+1 host \fBPrimarySpace\fP and \fBSecondarySpace\fP options: \fBtracks\fP, \fBcylinders\fP or \fBavblock\fP. .TP \fBPrimarySpace\fP Primary allocation for a file created on a \s-1TSO\s+1 host. The units are given by the \fBAllocation\fP option. .TP \fBSecondarySpace\fP Secondary allocation for a file created on a \s-1TSO\s+1 host. The units are given by the \fBAllocation\fP option. .TP \fBBufferSize\fP Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them. .SH "SEE ALSO" expect(1) .br ksh(1) .br x3270(1) .br c3270(1) .br s3270(1) .br ws3270(1) .SH "VERSION" Version 3.3.10ga4 ibm-3270-3.3.10ga4/s3270/hostc.h0000644000175000017500000000472011254565704015241 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * hostc.h * Global declarations for host.c. */ struct host { char *name; char **parents; char *hostname; enum { PRIMARY, ALIAS, RECENT } entry_type; char *loginstring; time_t connect_time; struct host *prev, *next; }; extern struct host *hosts; extern void Connect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Disconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Reconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); /* Host connect/disconnect and state change. */ extern void hostfile_init(void); extern void host_cancel_reconnect(void); extern int host_connect(const char *n); extern void host_connected(void); extern void host_disconnect(Boolean disable); extern void host_in3270(enum cstate); extern void host_newfd(int s); extern void register_schange(int tx, void (*func)(Boolean)); extern void st_changed(int tx, Boolean mode); ibm-3270-3.3.10ga4/s3270/aplc.h0000644000175000017500000000316211254565704015037 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * aplc.h * Global declarations for apl.c. */ extern KeySym APLStringToKeysym(char *s, int *is_gep); ibm-3270-3.3.10ga4/s3270/parts.h.in0000644000175000017500000000326011254565710015652 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * parts.h * #defines for the optional parts of s3270. * @configure_input@ */ @X3270_ANSI@ @X3270_APL@ @X3270_FT@ @X3270_LOCAL_PROCESS@ @X3270_TN3270E@ @X3270_TRACE@ ibm-3270-3.3.10ga4/s3270/resources.h0000644000175000017500000003537711254565704016147 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resources.h * x3270/c3270/s3270/tcl3270 resource and option names. */ /* Resources. */ #define ResAcs "acs" #define ResActiveIcon "activeIcon" #define ResAdVersion "adVersion" #define ResAidWait "aidWait" #define ResAllBold "allBold" #define ResAllowResize "allowResize" #define ResAltCursor "altCursor" #define ResAltScreen "altScreen" #define ResAplMode "aplMode" #define ResAsciiBoxDraw "asciiBoxDraw" #define ResAssocCommand "printer.assocCommandLine" #define ResAutoShortcut "autoShortcut" #define ResBaselevelTranslations "baselevelTranslations" #define ResBellVolume "bellVolume" #define ResBlankFill "blankFill" #define ResBoldColor "boldColor" #define ResBsdTm "bsdTm" #define ResCbreak "cbreak" #define ResCertFile "certFile" #define ResCharClass "charClass" #define ResCharset "charset" #define ResCharsetList "charsetList" #define ResColor8 "color8" #define ResColorBackground "colorBackground" #define ResColorScheme "colorScheme" #define ResCommandTimeout "commandTimeout" #define ResComposeMap "composeMap" #define ResConfDir "confDir" #define ResConnectFileName "connectFileName" #define ResConsoleColorForHostColor "consoleColorForHostColor" #define ResCrosshair "crosshair" #define ResCursesColorFor "cursesColorFor" #define ResCursesColorForDefault ResCursesColorFor "Default" #define ResCursesColorForHostColor ResCursesColorFor "HostColor" #define ResCursesColorForIntensified ResCursesColorFor "Intensified" #define ResCursesColorForProtected ResCursesColorFor "Protected" #define ResCursesColorForProtectedIntensified ResCursesColorFor "ProtectedIntensified" #define ResCursesKeypad "cursesKeypad" #define ResCursorBlink "cursorBlink" #define ResCursorColor "cursorColor" #define ResCursorPos "cursorPos" #define ResDebugTracing "debugTracing" #define ResDefScreen "defScreen" #define ResDftBufferSize "dftBufferSize" #define ResDisconnectClear "disconnectClear" #define ResDoConfirms "doConfirms" #define ResDbcsCgcsgid "dbcsCgcsgid" #define ResDsTrace "dsTrace" #define ResEmulatorFont "emulatorFont" #define ResEof "eof" #define ResErase "erase" #define ResEventTrace "eventTrace" #define ResExtended "extended" #define ResFixedSize "fixedSize" #define ResHighlightBold "highlightBold" #define ResHostColorFor "hostColorFor" #define ResHostColorForDefault ResHostColorFor "Default" #define ResHostColorForIntensified ResHostColorFor "Intensified" #define ResHostColorForProtected ResHostColorFor "Protected" #define ResHostColorForProtectedIntensified ResHostColorFor "ProtectedIntensified" #define ResHostname "hostname" #define ResHostsFile "hostsFile" #define ResIconFont "iconFont" #define ResIconLabelFont "iconLabelFont" #define ResIcrnl "icrnl" #define ResIdleCommand "idleCommand" #define ResIdleCommandEnabled "idleCommandEnabled" #define ResIdleTimeout "idleTimeout" #define ResInlcr "inlcr" #define ResInputColor "inputColor" #define ResInputMethod "inputMethod" #define ResIntr "intr" #define ResInvertKeypadShift "invertKeypadShift" #define ResKeymap "keymap" #define ResKeypad "keypad" #define ResKeypadBackground "keypadBackground" #define ResKeypadOn "keypadOn" #define ResKill "kill" #define ResLabelIcon "labelIcon" #define ResLineWrap "lineWrap" #define ResLnext "lnext" #define ResLocalCp "localCp" #define ResLoginMacro "loginMacro" #define ResLockedCursor "lockedCursor" #define ResLuCommandLine "printer.luCommandLine" #define ResM3279 "m3279" #define ResMacros "macros" #define ResMarginedPaste "marginedPaste" #define ResMenuBar "menuBar" #define ResMetaEscape "metaEscape" #define ResModel "model" #define ResModifiedSel "modifiedSel" #define ResModifiedSelColor "modifiedSelColor" #define ResMono "mono" #define ResMonoCase "monoCase" #define ResMouse "mouse" #define ResNoOther "noOther" #define ResNoPrompt "noPrompt" #define ResNormalColor "normalColor" #define ResNormalCursor "normalCursor" #define ResNumericLock "numericLock" #define ResOerrLock "oerrLock" #define ResOnce "once" #define ResOnlcr "onlcr" #define ResOversize "oversize" #define ResPluginCommand "pluginCommand" #define ResPort "port" #define ResPreeditType "preeditType" #define ResPrinterCodepage "printer.codepage" #define ResPrinterCommand "printer.command" #define ResPrinterLu "printerLu" #define ResPrinterName "printer.name" #define ResProxy "proxy" #define ResQuit "quit" #define ResReconnect "reconnect" #define ResRectangleSelect "rectangleSelect" #define ResReverseVideo "reverseVideo" #define ResRprnt "rprnt" #define ResSaveLines "saveLines" #define ResSchemeList "schemeList" #define ResScreenTrace "screenTrace" #define ResScreenTraceFile "screenTraceFile" #define ResScripted "scripted" #define ResScriptPort "scriptPort" #define ResScrollBar "scrollBar" #define ResSecure "secure" #define ResSelectBackground "selectBackground" #define ResSbcsCgcsgid "sbcsCgcsgid" #define ResShowTiming "showTiming" #define ResSocket "socket" #define ResSuppressActions "suppressActions" #define ResSuppressHost "suppressHost" #define ResSuppressFontMenu "suppressFontMenu" #define ResSuppress "suppress" #define ResTermName "termName" #define ResTitle "title" #define ResTraceDir "traceDir" #define ResTraceFile "traceFile" #define ResTraceFileSize "traceFileSize" #define ResTraceMonitor "traceMonitor" #define ResTypeahead "typeahead" #define ResUnderscore "underscore" #define ResUnlockDelay "unlockDelay" #define ResUnlockDelayMs "unlockDelayMs" #define ResUseCursorColor "useCursorColor" #define ResV "v" #define ResVisibleControl "visibleControl" #define ResVisualBell "visualBell" #define ResVisualSelect "visualSelect" #define ResVisualSelectColor "visualSelectColor" #define ResWaitCursor "waitCursor" #define ResWerase "werase" /* Dotted resource names. */ #define DotActiveIcon "." ResActiveIcon #define DotAplMode "." ResAplMode #define DotCertFile "." ResCertFile #define DotCbreak "." ResCbreak #define DotCharClass "." ResCharClass #define DotCharset "." ResCharset #define DotColorScheme "." ResColorScheme #define DotDsTrace "." ResDsTrace #define DotEmulatorFont "." ResEmulatorFont #define DotExtended "." ResExtended #define DotInputMethod "." ResInputMethod #define DotKeymap "." ResKeymap #define DotKeypadOn "." ResKeypadOn #define DotM3279 "." ResM3279 #define DotModel "." ResModel #define DotMono "." ResMono #define DotOnce "." ResOnce #define DotOversize "." ResOversize #define DotPort "." ResPort #define DotPreeditType "." ResPreeditType #define DotPrinterLu "." ResPrinterLu #define DotProxy "." ResProxy #define DotReconnect "." ResReconnect #define DotSaveLines "." ResSaveLines #define DotScripted "." ResScripted #define DotScriptPort "." ResScriptPort #define DotScrollBar "." ResScrollBar #define DotSocket "." ResSocket #define DotTermName "." ResTermName #define DotTitle "." ResTitle #define DotTraceFile "." ResTraceFile #define DotTraceFileSize "." ResTraceFileSize #define DotV "." ResV /* Resource classes. */ #define ClsActiveIcon "ActiveIcon" #define ClsAdVersion "AdVersion" #define ClsAidWait "AidWait" #define ClsAllBold "AllBold" #define ClsAllowResize "AllowResize" #define ClsAltCursor "AltCursor" #define ClsAplMode "AplMode" #define ClsBaselevelTranslations "BaselevelTranslations" #define ClsBellVolume "BellVolume" #define ClsBlankFill "BlankFill" #define ClsBoldColor "BoldColor" #define ClsBsdTm "BsdTm" #define ClsCbreak "Cbreak" #define ClsCertFile "CertFile" #define ClsCharClass "CharClass" #define ClsCharset "Charset" #define ClsColor8 "Color8" #define ClsColorBackground "ColorBackground" #define ClsColorScheme "ColorScheme" #define ClsComposeMap "ComposeMap" #define ClsConfDir "ConfDir" #define ClsConnectFileName "ConnectFileName" #define ClsCrosshair "Crosshair" #define ClsCursorBlink "CursorBlink" #define ClsCursorColor "CursorColor" #define ClsCursorPos "CursorPos" #define ClsDbcsCgcsgid "DbcsCgcsgid" #define ClsDebugTracing "DebugTracing" #define ClsDftBufferSize "DftBufferSize" #define ClsDisconnectClear "DisconnectClear" #define ClsDoConfirms "DoConfirms" #define ClsDsTrace "DsTrace" #define ClsEmulatorFont "EmulatorFont" #define ClsEof "Eof" #define ClsErase "Erase" #define ClsEventTrace "EventTrace" #define ClsExtended "Extended" #define ClsFixedSize "FixedSize" #define ClsFtCommand "FtCommand" #define ClsHighlightBold "HighlightBold" #define ClsHostname "Hostname" #define ClsHostsFile "HostsFile" #define ClsIconFont "IconFont" #define ClsIconLabelFont "IconLabelFont" #define ClsIcrnl "Icrnl" #define ClsIdleCommand "IdleCommand" #define ClsIdleCommandEnabled "IdleCommandEnabled" #define ClsIdleTimeout "IdleTimeout" #define ClsInlcr "Inlcr" #define ClsInputColor "InputColor" #define ClsInputMethod "InputMethod" #define ClsIntr "Intr" #define ClsInvertKeypadShift "InvertKeypadShift" #define ClsKeymap "Keymap" #define ClsKeypad "Keypad" #define ClsKeypadBackground "KeypadBackground" #define ClsKeypadOn "KeypadOn" #define ClsKill "Kill" #define ClsLabelIcon "LabelIcon" #define ClsLineWrap "LineWrap" #define ClsLnext "Lnext" #define ClsLockedCursor "LockedCursor" #define ClsM3279 "M3279" #define ClsMacros "Macros" #define ClsMarginedPaste "MarginedPaste" #define ClsMenuBar "MenuBar" #define ClsMetaEscape "MetaEscape" #define ClsModel "Model" #define ClsModifiedSel "ModifiedSel" #define ClsModifiedSelColor "ModifiedSelColor" #define ClsMono "Mono" #define ClsMonoCase "MonoCase" #define ClsNoOther "NoOther" #define ClsNormalColor "NormalColor" #define ClsNormalCursor "NormalCursor" #define ClsNumericLock "NumericLock" #define ClsOerrLock "OerrLock" #define ClsOnce "Once" #define ClsOnlcr "Onlcr" #define ClsOversize "Oversize" #define ClsPluginCommand "PluginCommand" #define ClsPort "Port" #define ClsPreeditType "PreeditType" #define ClsPrinterLu "PrinterLu" #define ClsProxy "Proxy" #define ClsQuit "Quit" #define ClsReconnect "Reconnect" #define ClsRectangleSelect "RectangleSelect" #define ClsRprnt "Rprnt" #define ClsSaveLines "SaveLines" #define ClsSbcsCgcsgid "SbcsSgcsgid" #define ClsScreenTrace "ScreenTrace" #define ClsScreenTraceFile "ScreenTraceFile" #define ClsScripted "Scripted" #define ClsScriptPort "ScriptPort" #define ClsScrollBar "ScrollBar" #define ClsSecure "Secure" #define ClsSelectBackground "SelectBackground" #define ClsShowTiming "ShowTiming" #define ClsSocket "Socket" #define ClsSuppressHost "SuppressHost" #define ClsSuppressFontMenu "SuppressFontMenu" #define ClsTermName "TermName" #define ClsTraceDir "TraceDir" #define ClsTraceFile "TraceFile" #define ClsTraceFileSize "TraceFileSize" #define ClsTraceMonitor "TraceMonitor" #define ClsTypeahead "Typeahead" #define ClsUnlockDelay "UnlockDelay" #define ClsUnlockDelayMs "UnlockDelayMs" #define ClsUseCursorColor "UseCursorColor" #define ClsVisibleControl "VisibleControl" #define ClsVisualBell "VisualBell" #define ClsVisualSelect "VisualSelect" #define ClsVisualSelectColor "VisualSelectColor" #define ClsWaitCursor "WaitCursor" #define ClsWerase "Werase" /* Options. */ #define OptActiveIcon "-activeicon" #define OptAllBold "-allbold" #define OptAltScreen "-altscreen" #define OptAplMode "-apl" #define OptCbreak "-cbreak" #define OptCertFile "-certificate" #define OptCharClass "-cc" #define OptCharset "-charset" #define OptClear "-clear" #define OptColorScheme "-scheme" #define OptDefScreen "-defscreen" #define OptDsTrace "-trace" #define OptEmulatorFont "-efont" #define OptExtended "-extended" #define OptHostsFile "-hostsfile" #define OptIconName "-iconname" #define OptIconX "-iconx" #define OptIconY "-icony" #define OptInputMethod "-im" #define OptKeymap "-keymap" #define OptKeypadOn "-keypad" #define OptLocalCp "-localcp" #define OptLocalProcess "-e" #define OptM3279 "-color" #define OptModel "-model" #define OptMono "-mono" #define OptNoPrompt "-noprompt" #define OptNoScrollBar "+sb" #define OptOnce "-once" #define OptOversize "-oversize" #define OptPort "-port" #define OptPreeditType "-pt" #define OptPrinterLu "-printerlu" #define OptProxy "-proxy" #define OptReconnect "-reconnect" #define OptReverseVideo "-rv" #define OptSaveLines "-sl" #define OptSecure "-secure" #define OptScripted "-script" #define OptScriptPort "-scriptport" #define OptScrollBar "-sb" #define OptSet "-set" #define OptSocket "-socket" #define OptAutoShortcut "-S" #define OptNoAutoShortcut "+S" #define OptTermName "-tn" #define OptTitle "-title" #define OptTraceFile "-tracefile" #define OptTraceFileSize "-tracefilesize" #define OptV "-v" #define OptVersion "--version" /* Miscellaneous values. */ #define ResTrue "true" #define ResFalse "false" #define KpLeft "left" #define KpRight "right" #define KpBottom "bottom" #define KpIntegral "integral" #define KpInsideRight "insideRight" #define Apl "apl" /* Resources that are gotten explicitly. */ #define ResComposeMap "composeMap" #define ResEmulatorFontList "emulatorFontList" #define ResKeyHeight "keyHeight" #define ResKeyWidth "keyWidth" #define ResLargeKeyWidth "largeKeyWidth" #define ResMessage "message" #define ResNvt "nvt" #define ResPaWidth "paWidth" #define ResPfWidth "pfWidth" #define ResPrintTextCommand "printTextCommand" #define ResPrintTextFont "printTextFont" #define ResPrintTextSize "printTextSize" #define ResPrintWindowCommand "printWindowCommand" #define ResTraceCommand "traceCommand" #define ResUser "user" ibm-3270-3.3.10ga4/s3270/kybdc.h0000644000175000017500000001572211254565704015221 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * kybdc.h * Global declarations for kybd.c. */ /* keyboard lock states */ extern unsigned int kybdlock; #define KL_OERR_MASK 0x000f #define KL_OERR_PROTECTED 1 #define KL_OERR_NUMERIC 2 #define KL_OERR_OVERFLOW 3 #define KL_OERR_DBCS 4 #define KL_NOT_CONNECTED 0x0010 #define KL_AWAITING_FIRST 0x0020 #define KL_OIA_TWAIT 0x0040 #define KL_OIA_LOCKED 0x0080 #define KL_DEFERRED_UNLOCK 0x0100 #define KL_ENTER_INHIBIT 0x0200 #define KL_SCROLLED 0x0400 #define KL_OIA_MINUS 0x0800 /* actions */ extern void AltCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Attn_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void BackSpace_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void BackTab_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CircumNot_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Clear_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Compose_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CursorSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Default_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void DeleteField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void DeleteWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Delete_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Down_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Dup_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Enter_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EraseEOF_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EraseInput_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Erase_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void FieldEnd_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void FieldMark_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Flip_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void HexString_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Home_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ignore_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Insert_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Interrupt_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Key_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Left2_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Left_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MonoCase_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MouseSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MoveCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Newline_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void NextWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PA_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PA_Shift_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PF_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PreviousWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Reset_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Right2_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Right_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void String_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void SysReq_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Tab_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void TemporaryKeymap_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ToggleInsert_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ToggleReverse_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Up_action(Widget w, XEvent *event, String *params, Cardinal *num_params); /* other functions */ extern void do_reset(Boolean explicit); extern int emulate_input(char *s, int len, Boolean pasting); extern int emulate_uinput(ucs4_t *s, int len, Boolean pasting); extern void hex_input(char *s); extern void kybdlock_clr(unsigned int bits, const char *cause); extern void kybd_inhibit(Boolean inhibit); extern void kybd_init(void); extern int kybd_prime(void); extern void kybd_scroll_lock(Boolean lock); extern Boolean run_ta(void); extern int state_from_keymap(char keymap[32]); ibm-3270-3.3.10ga4/s3270/gluec.h0000644000175000017500000000427511254565704015225 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * gluec.h * Declarations for glue.c and XtGlue.c */ /* glue.c */ extern int parse_command_line(int argc, const char **argv, const char **cl_hostname); extern void parse_xrm(const char *arg, const char *where); extern char *safe_string(const char *s); extern Boolean process_events(Boolean block); extern void cmdline_help(Boolean as_action); struct host_color { char *name; int index; }; extern struct host_color host_color[]; /* XtGlue.c */ extern void (*Warning_redirect)(const char *); #if !defined(_WIN32) /*[*/ extern int select_setup(int *nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval **timeout, struct timeval *timebuf); #endif /*]*/ ibm-3270-3.3.10ga4/s3270/printc.h0000644000175000017500000000432611254565704015422 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * printc.h * Global declarations for print.c. */ typedef enum { P_TEXT, P_HTML, P_RTF } ptype_t; #define FPS_EVEN_IF_EMPTY 0x1 #define FPS_MODIFIED_ITALIC 0x2 extern Boolean fprint_screen(FILE *f, ptype_t ptype, unsigned opts, char *caption); extern void PrintText_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PrintWindow_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void print_text_option(Widget w, XtPointer client_data, XtPointer call_data); extern void print_window_option(Widget w, XtPointer client_data, XtPointer call_data); extern void save_text_option(Widget w, XtPointer client_data, XtPointer call_data); ibm-3270-3.3.10ga4/s3270/LICENSE0000644000175000017500000000342611254565710014754 0ustar bastianbastianCopyright (c) 1993-2009, Paul Mattes. Copyright (c) 2004-2005, Don Russell. Copyright (c) 2004, Dick Altenbern. Copyright (c) 1990, Jeff Sparkes. Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES, DICK ALTENBERN AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ibm-3270-3.3.10ga4/s3270/s3270_glue.bash0000755000175000017500000001222411254565710016377 0ustar bastianbastian#! /bin/bash # Copyright (c) 1993-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # s3270 glue for bash # # Intended use in a bash script: # # . s3270_glue.bash # Start # Connect host # Wait InputField # # interact with the host as needed # Disconnect # Stop #set -x # Define some handy functions. # s3270 interface function function xi { typeset x y if [ "X$1" = "X-s" ] then echo >&5 read x <&6 read <&6 echo "$x" | awk "{print \$$2}" return fi echo >&5 "$@" while read x <&6 do y=$(expr substr "$x" 1 5) if [ "$y" = "data:" ] then z="${x#?????}" if [ -n "$z" ] then echo "${z#?}" else echo "$z" fi elif [ "$x" = ok ] then return 0 elif [ "$x" = error ] then return 1 fi done return 1 } # 'xi' function, with space-to-comma and double-quote translation function xic { typeset sep cmd="$1(" typeset a shift while [ $# -gt 0 ] do echo "$1" | sed 's/"/\\"/' >/tmp/x$$ a="$($op & xp=$! exec 5>$ip 6<$op # hold the pipes open xi -s 0 >/dev/null || exit 1 } # Stop function function Stop { # Close the pipes. exec 5>&- 6<&- # Remove them. rm -f $ip $op } # Failure. function Die { echo >&2 "$@" Stop exit 1 } ibm-3270-3.3.10ga4/s3270/savec.h0000644000175000017500000000314211254565673015224 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of savec.h */ #define save_yourself() extern char *command_string; ibm-3270-3.3.10ga4/s3270/README0000644000175000017500000000236711254565710014632 0ustar bastianbastians3270 3.3 Release s3270 is a scripted IBM 3278/3279 terminal emulator. Documentation is in the html directory. The files are: Intro What s3270 is Lineage Where s3270 came from (copyright stuff) Build How to build and install s3270 FAQ Frequently Asked Questions (what to do when something goes wrong) New What's new in this release Bugs What's broken in this release Wishlist What isn't in this release There is also a hypertext version of the s3270 man page, and of the man pages for x3270-script and x3270if. Please read Build before going ahead and building the program. Also, if you have a problem, scan through FAQ; there are lots of interesting answers there. Updates to s3270, as well as the current status of development and bugs, are available from the x3270 Web Page, http://x3270.sourceforge.net/. Feel free to send comments, criticism, suggestions, complaints, etc., to Paul Mattes, Paul.Mattes@usa.net. Requests will be addressed as time and resources permit. There is also an x3270 mailing list, which also includes information about s3270, and which receives news about new releases. Send a message to Paul.Mattes@usa.net (a real person, with an automatic responses for certain subject lines) to get on the list. ibm-3270-3.3.10ga4/s3270/ft_dftc.h0000644000175000017500000000335411254565704015534 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ extern void ft_dft_data(unsigned char *data, int length); extern void dft_read_modified(void); extern void set_dft_buffersize(void); ibm-3270-3.3.10ga4/s3270/install-sh0000755000175000017500000001267111254565704015760 0ustar bastianbastian#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else : fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=$mkdirprog fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then : else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else : fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else : fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else : fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else : fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 ibm-3270-3.3.10ga4/s3270/utilc.h0000644000175000017500000000644711256026610015237 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utilc.h * Global declarations for util.c. */ extern void add_resource(const char *name, const char *value); extern char *ctl_see(int c); extern char *do_subst(const char *s, Boolean do_vars, Boolean do_tilde); extern void fcatv(FILE *f, char *s); extern const char *get_message(const char *key); extern char *get_fresource(const char *fmt, ...) printflike(1, 2); extern char *get_resource(const char *name); extern char *scatv(const char *s, char *buf, size_t len); extern int split_dbcs_resource(const char *value, char sep, char **part1, char **part2); extern int split_dresource(char **st, char **left, char **right); extern int split_lresource(char **st, char **value); extern char *strip_whitespace(const char *s); extern char *xs_buffer(const char *fmt, ...) printflike(1, 2); extern void xs_error(const char *fmt, ...) printflike(1, 2); extern void xs_warning(const char *fmt, ...) printflike(1, 2); extern unsigned long AddInput(int, void (*)(void)); extern unsigned long AddExcept(int, void (*)(void)); extern unsigned long AddOutput(int, void (*)(void)); extern void RemoveInput(unsigned long); extern unsigned long AddTimeOut(unsigned long msec, void (*fn)(void)); extern void RemoveTimeOut(unsigned long cookie); extern KeySym StringToKeysym(char *s); extern char *KeysymToString(KeySym k); extern int read_resource_file(const char *filename, Boolean fatal); extern Boolean split_hier(char *label, char **base, char ***parents); typedef struct { char *buf; int alloc_len; int cur_len; } rpf_t; extern void rpf_init(rpf_t *r); extern void rpf_reset(rpf_t *r); extern void rpf(rpf_t *r, char *fmt, ...) printflike(2, 3); extern void rpf_free(rpf_t *r); extern const char *build_options(void); extern void dump_version(void); extern const char *display_scale(double d, char *buf, size_t buflen); ibm-3270-3.3.10ga4/s3270/tablesc.h0000644000175000017500000000334711254565704015542 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tablesc.h * Global declarations for tables.c. */ extern const unsigned char asc2cg0[256]; extern const unsigned char ebc2cg0[256]; extern const unsigned char ebc2asc0[256]; extern const unsigned char asc2ebc0[256]; ibm-3270-3.3.10ga4/tcl3270/0000755000175000017500000000000011261530021014243 5ustar bastianbastianibm-3270-3.3.10ga4/tcl3270/selectc.h0000644000175000017500000000316611254565673016073 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of selectc.h */ #define unselect(baddr, len) #define area_is_selected(baddr, len) False ibm-3270-3.3.10ga4/tcl3270/xio.c0000644000175000017500000000752211254565704015236 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, * GA 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor their * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR * GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xio.c * Low-level I/O setup functions and exit code. */ #include "globals.h" #include "actionsc.h" #include "hostc.h" #include "telnetc.h" #include "togglesc.h" #include "utilc.h" #include "xioc.h" /* Statics. */ static unsigned long ns_read_id; static unsigned long ns_exception_id; static Boolean reading = False; static Boolean excepting = False; /* * Called to set up input on a new network connection. */ void x_add_input(int net_sock) { ns_exception_id = AddExcept(net_sock, net_exception); excepting = True; ns_read_id = AddInput(net_sock, net_input); reading = True; } /* * Called when an exception is received to disable further exceptions. */ void x_except_off(void) { if (excepting) { RemoveInput(ns_exception_id); excepting = False; } } /* * Called when exception processing is complete to re-enable exceptions. * This includes removing and restoring reading, so the exceptions are always * processed first. */ void x_except_on(int net_sock) { if (excepting) return; if (reading) RemoveInput(ns_read_id); ns_exception_id = AddExcept(net_sock, net_exception); excepting = True; if (reading) ns_read_id = AddInput(net_sock, net_input); } /* * Called to disable input on a closing network connection. */ void x_remove_input(void) { if (reading) { RemoveInput(ns_read_id); reading = False; } if (excepting) { RemoveInput(ns_exception_id); excepting = False; } } /* * Application exit, with cleanup. */ void x3270_exit(int n) { static Boolean already_exiting = 0; /* Handle unintentional recursion. */ if (already_exiting) return; already_exiting = True; /* Turn off toggle-related activity. */ shutdown_toggles(); /* Shut down the socket gracefully. */ host_disconnect(False); /* Tell anyone else who's interested. */ st_changed(ST_EXITING, True); #if defined(WC3270) /*[*/ if (n) { char buf[2]; printf("\n[Press ] "); fflush(stdout); (void) fgets(buf, sizeof(buf), stdin); } #endif /*]*/ exit(n); } void Quit_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Quit_action, event, params, num_params); if (!w || !CONNECTED) { x3270_exit(0); } } ibm-3270-3.3.10ga4/tcl3270/resolverc.h0000644000175000017500000000361311254565704016445 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resolverc.h * Hostname resolution. */ extern int resolve_host_and_port(const char *host, char *portname, int ix, unsigned short *pport, struct sockaddr *sa, socklen_t *sa_len, char *errmsg, int em_size, int *lastp); extern int numeric_host_and_port(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, char *errmsg, int em_len); ibm-3270-3.3.10ga4/tcl3270/resources.c0000644000175000017500000001175711254565673016463 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include #include "localdefs.h" extern String fallbacks[]; /* s3270 substitute Xt resource database. */ #if defined(C3270) /*[*/ /* * These should be properly #ifdef'd in X3270.xad, but it would turn it into * spaghetti. */ static struct { char *name; char *value; } rdb[] = { { "message.hour", "hour" }, { "message.hours", "hours" }, { "message.minute", "minute" }, { "message.bindPluName", "BIND PLU name:" }, { "message.buildDisabled", "disabled" }, { "message.buildEnabled", "enabled" }, { "message.buildOpts", "Build options:" }, { "message.byte", "byte" }, { "message.bytes", "bytes" }, { "message.characterSet", "EBCDIC character set:" }, { "message.charMode", "NVT character mode" }, { "message.columns", "columns" }, { "message.connectedTo", "Connected to:" }, { "message.connectionPending", "Connection pending to:" }, { "message.dbcsCgcsgid", "Host DBCS CGCSGID:" }, { "message.defaultCharacterSet", "Default (us) EBCDIC character set" }, { "message.dsMode", "3270 mode" }, { "message.extendedDs", "extended data stream" }, { "message.fullColor", "color" }, { "message.hostCodePage", "Host code page:" }, { "message.keyboardMap", "Keyboard map:" }, { "message.lineMode", "NVT line mode" }, { "message.localeCodeset", "Locale codeset:" }, { "message.luName", "LU name:" }, { "message.minute", "minute" }, { "message.minutes", "minutes" }, { "message.model", "Model" }, { "message.mono", "monochrome" }, { "message.notConnected", "Not connected" }, { "message.port", "Port:" }, { "message.proxyType", "Proxy type:" }, { "message.Received", "Received" }, { "message.received", "received" }, { "message.record", "record" }, { "message.records", "records" }, { "message.rows", "rows" }, { "message.sbcsCgcsgid", "Host SBCS CGCSGID:" }, { "message.second", "second" }, { "message.seconds", "seconds" }, { "message.secure", "via TLS/SSL" }, { "message.sent", "Sent" }, { "message.server", "Server:" }, { "message.specialCharacters", "Special characters:" }, { "message.sscpMode", "SSCP-LU mode" }, { "message.standardDs", "standard data stream" }, { "message.terminalName", "Terminal name:" }, { "message.tn3270eNoOpts", "No TN3270E options" }, { "message.tn3270eOpts", "TN3270E options:" }, #if defined(_WIN32) /*[*/ { "message.windowsCodePage", "Windows code page:" }, #endif /*][*/ { NULL, NULL } }; #endif /*]*/ static struct dresource { struct dresource *next; const char *name; char *value; } *drdb = NULL, **drdb_next = &drdb; void add_resource(const char *name, char *value) { struct dresource *d; for (d = drdb; d != NULL; d = d->next) { if (!strcmp(d->name, name)) { d->value = value; return; } } d = Malloc(sizeof(struct dresource)); d->next = NULL; d->name = name; d->value = value; *drdb_next = d; drdb_next = &d->next; } char * get_resource(const char *name) { struct dresource *d; int i; for (d = drdb; d != NULL; d = d->next) { if (!strcmp(d->name, name)) { return d->value; } } for (i = 0; fallbacks[i] != NULL; i++) { if (!strncmp(fallbacks[i], name, strlen(name)) && *(fallbacks[i] + strlen(name)) == ':') { return fallbacks[i] + strlen(name) + 2; } } #if defined(C3270) /*[*/ for (i = 0; rdb[i].name != (char *)NULL; i++) { if (!strcmp(rdb[i].name, name)) { return rdb[i].value; } } #endif /*]*/ return NULL; } ibm-3270-3.3.10ga4/tcl3270/XtGlue.c0000644000175000017500000004265611254565704015656 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* glue for missing Xt code */ #include "globals.h" #if defined(_WIN32) /*[*/ #include "appres.h" #include "trace_dsc.h" #include "xioc.h" #endif /*]*/ #include #include #include #include #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #if defined(_WIN32) /*[*/ #include #else /*][*/ #if defined(SEPARATE_SELECT_H) /*[*/ #include #endif /*]*/ #endif /*]*/ #define InputReadMask 0x1 #define InputExceptMask 0x2 #define InputWriteMask 0x4 #define MILLION 1000000L void (*Warning_redirect)(const char *) = NULL; void Error(const char *s) { fprintf(stderr, "Error: %s\n", s); #if defined(WC3270) /*[*/ x3270_exit(1); #else /*][*/ exit(1); #endif /*]*/ } void Warning(const char *s) { #if defined(C3270) /*[*/ extern Boolean any_error_output; #endif /*]*/ if (Warning_redirect != NULL) (*Warning_redirect)(s); else fprintf(stderr, "Warning: %s\n", s); #if defined(C3270) /*[*/ any_error_output = True; #endif /*]*/ } void * Malloc(size_t len) { char *r; r = malloc(len); if (r == (char *)NULL) Error("Out of memory"); return r; } void * Calloc(size_t nelem, size_t elsize) { char *r; r = malloc(nelem * elsize); if (r == (char *)NULL) Error("Out of memory"); return memset(r, '\0', nelem * elsize); } void * Realloc(void *p, size_t len) { p = realloc(p, len); if (p == NULL) Error("Out of memory"); return p; } void Free(void *p) { if (p != NULL) free(p); } char * NewString(const char *s) { return strcpy(Malloc(strlen(s) + 1), s); } static struct { /*const*/ char *name; /* not const because of ancient X11 API */ KeySym keysym; } latin1[] = { { "space", XK_space }, { "exclam", XK_exclam }, { "quotedbl", XK_quotedbl }, { "numbersign", XK_numbersign }, { "dollar", XK_dollar }, { "percent", XK_percent }, { "ampersand", XK_ampersand }, { "apostrophe", XK_apostrophe }, { "quoteright", XK_quoteright }, { "parenleft", XK_parenleft }, { "parenright", XK_parenright }, { "asterisk", XK_asterisk }, { "plus", XK_plus }, { "comma", XK_comma }, { "minus", XK_minus }, { "period", XK_period }, { "slash", XK_slash }, { "0", XK_0 }, { "1", XK_1 }, { "2", XK_2 }, { "3", XK_3 }, { "4", XK_4 }, { "5", XK_5 }, { "6", XK_6 }, { "7", XK_7 }, { "8", XK_8 }, { "9", XK_9 }, { "colon", XK_colon }, { "semicolon", XK_semicolon }, { "less", XK_less }, { "equal", XK_equal }, { "greater", XK_greater }, { "question", XK_question }, { "at", XK_at }, { "A", XK_A }, { "B", XK_B }, { "C", XK_C }, { "D", XK_D }, { "E", XK_E }, { "F", XK_F }, { "G", XK_G }, { "H", XK_H }, { "I", XK_I }, { "J", XK_J }, { "K", XK_K }, { "L", XK_L }, { "M", XK_M }, { "N", XK_N }, { "O", XK_O }, { "P", XK_P }, { "Q", XK_Q }, { "R", XK_R }, { "S", XK_S }, { "T", XK_T }, { "U", XK_U }, { "V", XK_V }, { "W", XK_W }, { "X", XK_X }, { "Y", XK_Y }, { "Z", XK_Z }, { "bracketleft", XK_bracketleft }, { "backslash", XK_backslash }, { "bracketright", XK_bracketright }, { "asciicircum", XK_asciicircum }, { "underscore", XK_underscore }, { "grave", XK_grave }, { "quoteleft", XK_quoteleft }, { "a", XK_a }, { "b", XK_b }, { "c", XK_c }, { "d", XK_d }, { "e", XK_e }, { "f", XK_f }, { "g", XK_g }, { "h", XK_h }, { "i", XK_i }, { "j", XK_j }, { "k", XK_k }, { "l", XK_l }, { "m", XK_m }, { "n", XK_n }, { "o", XK_o }, { "p", XK_p }, { "q", XK_q }, { "r", XK_r }, { "s", XK_s }, { "t", XK_t }, { "u", XK_u }, { "v", XK_v }, { "w", XK_w }, { "x", XK_x }, { "y", XK_y }, { "z", XK_z }, { "braceleft", XK_braceleft }, { "bar", XK_bar }, { "braceright", XK_braceright }, { "asciitilde", XK_asciitilde }, { "nobreakspace", XK_nobreakspace }, { "exclamdown", XK_exclamdown }, { "cent", XK_cent }, { "sterling", XK_sterling }, { "currency", XK_currency }, { "yen", XK_yen }, { "brokenbar", XK_brokenbar }, { "section", XK_section }, { "diaeresis", XK_diaeresis }, { "copyright", XK_copyright }, { "ordfeminine", XK_ordfeminine }, { "guillemotleft", XK_guillemotleft }, { "notsign", XK_notsign }, { "hyphen", XK_hyphen }, { "registered", XK_registered }, { "macron", XK_macron }, { "degree", XK_degree }, { "plusminus", XK_plusminus }, { "twosuperior", XK_twosuperior }, { "threesuperior", XK_threesuperior }, { "acute", XK_acute }, { "mu", XK_mu }, { "paragraph", XK_paragraph }, { "periodcentered", XK_periodcentered }, { "cedilla", XK_cedilla }, { "onesuperior", XK_onesuperior }, { "masculine", XK_masculine }, { "guillemotright", XK_guillemotright }, { "onequarter", XK_onequarter }, { "onehalf", XK_onehalf }, { "threequarters", XK_threequarters }, { "questiondown", XK_questiondown }, { "Agrave", XK_Agrave }, { "Aacute", XK_Aacute }, { "Acircumflex", XK_Acircumflex }, { "Atilde", XK_Atilde }, { "Adiaeresis", XK_Adiaeresis }, { "Aring", XK_Aring }, { "AE", XK_AE }, { "Ccedilla", XK_Ccedilla }, { "Egrave", XK_Egrave }, { "Eacute", XK_Eacute }, { "Ecircumflex", XK_Ecircumflex }, { "Ediaeresis", XK_Ediaeresis }, { "Igrave", XK_Igrave }, { "Iacute", XK_Iacute }, { "Icircumflex", XK_Icircumflex }, { "Idiaeresis", XK_Idiaeresis }, { "ETH", XK_ETH }, { "Eth", XK_Eth }, { "Ntilde", XK_Ntilde }, { "Ograve", XK_Ograve }, { "Oacute", XK_Oacute }, { "Ocircumflex", XK_Ocircumflex }, { "Otilde", XK_Otilde }, { "Odiaeresis", XK_Odiaeresis }, { "multiply", XK_multiply }, { "Ooblique", XK_Ooblique }, { "Ugrave", XK_Ugrave }, { "Uacute", XK_Uacute }, { "Ucircumflex", XK_Ucircumflex }, { "Udiaeresis", XK_Udiaeresis }, { "Yacute", XK_Yacute }, { "THORN", XK_THORN }, { "Thorn", XK_Thorn }, { "ssharp", XK_ssharp }, { "agrave", XK_agrave }, { "aacute", XK_aacute }, { "acircumflex", XK_acircumflex }, { "atilde", XK_atilde }, { "adiaeresis", XK_adiaeresis }, { "aring", XK_aring }, { "ae", XK_ae }, { "ccedilla", XK_ccedilla }, { "egrave", XK_egrave }, { "eacute", XK_eacute }, { "ecircumflex", XK_ecircumflex }, { "ediaeresis", XK_ediaeresis }, { "igrave", XK_igrave }, { "iacute", XK_iacute }, { "icircumflex", XK_icircumflex }, { "idiaeresis", XK_idiaeresis }, { "eth", XK_eth }, { "ntilde", XK_ntilde }, { "ograve", XK_ograve }, { "oacute", XK_oacute }, { "ocircumflex", XK_ocircumflex }, { "otilde", XK_otilde }, { "odiaeresis", XK_odiaeresis }, { "division", XK_division }, { "oslash", XK_oslash }, { "ugrave", XK_ugrave }, { "uacute", XK_uacute }, { "ucircumflex", XK_ucircumflex }, { "udiaeresis", XK_udiaeresis }, { "yacute", XK_yacute }, { "thorn", XK_thorn }, { "ydiaeresis", XK_ydiaeresis }, /* * The following are, umm, hacks to allow symbolic names for * control codes. */ #if !defined(_WIN32) /*[*/ { "BackSpace", 0x08 }, { "Tab", 0x09 }, { "Linefeed", 0x0a }, { "Return", 0x0d }, { "Escape", 0x1b }, { "Delete", 0x7f }, #endif /*]*/ { (char *)NULL, NoSymbol } }; KeySym StringToKeysym(char *s) { int i; if (strlen(s) == 1 && (*(unsigned char *)s & 0x7f) > ' ') return (KeySym)*(unsigned char *)s; for (i = 0; latin1[i].name != (char *)NULL; i++) { if (!strcmp(s, latin1[i].name)) return latin1[i].keysym; } return NoSymbol; } char * KeysymToString(KeySym k) { int i; for (i = 0; latin1[i].name != (char *)NULL; i++) { if (latin1[i].keysym == k) return latin1[i].name; } return (char *)NULL; } /* Timeouts. */ #if defined(_WIN32) /*[*/ static void ms_ts(unsigned long long *u) { FILETIME t; /* Get the system time, in 100ns units. */ GetSystemTimeAsFileTime(&t); memcpy(u, &t, sizeof(unsigned long long)); /* Divide by 10,000 to get ms. */ *u /= 10000ULL; } #endif /*]*/ typedef struct timeout { struct timeout *next; #if defined(_WIN32) /*[*/ unsigned long long ts; #else /*][*/ struct timeval tv; #endif /*]*/ void (*proc)(void); Boolean in_play; } timeout_t; #define TN (timeout_t *)NULL static timeout_t *timeouts = TN; unsigned long AddTimeOut(unsigned long interval_ms, void (*proc)(void)) { timeout_t *t_new; timeout_t *t; timeout_t *prev = TN; t_new = (timeout_t *)Malloc(sizeof(timeout_t)); t_new->proc = proc; t_new->in_play = False; #if defined(_WIN32) /*[*/ ms_ts(&t_new->ts); t_new->ts += interval_ms; #else /*][*/ (void) gettimeofday(&t_new->tv, NULL); t_new->tv.tv_sec += interval_ms / 1000L; t_new->tv.tv_usec += (interval_ms % 1000L) * 1000L; if (t_new->tv.tv_usec > MILLION) { t_new->tv.tv_sec += t_new->tv.tv_usec / MILLION; t_new->tv.tv_usec %= MILLION; } #endif /*]*/ /* Find where to insert this item. */ for (t = timeouts; t != TN; t = t->next) { #if defined(_WIN32) /*[*/ if (t->ts > t_new->ts) #else /*][*/ if (t->tv.tv_sec > t_new->tv.tv_sec || (t->tv.tv_sec == t_new->tv.tv_sec && t->tv.tv_usec > t_new->tv.tv_usec)) #endif /*]*/ break; prev = t; } /* Insert it. */ if (prev == TN) { /* Front. */ t_new->next = timeouts; timeouts = t_new; } else if (t == TN) { /* Rear. */ t_new->next = TN; prev->next = t_new; } else { /* Middle. */ t_new->next = t; prev->next = t_new; } return (unsigned long)t_new; } void RemoveTimeOut(unsigned long timer) { timeout_t *st = (timeout_t *)timer; timeout_t *t; timeout_t *prev = TN; if (st->in_play) return; for (t = timeouts; t != TN; t = t->next) { if (t == st) { if (prev != TN) prev->next = t->next; else timeouts = t->next; Free(t); return; } prev = t; } } /* Input events. */ typedef struct input { struct input *next; int source; int condition; void (*proc)(void); } input_t; static input_t *inputs = (input_t *)NULL; static Boolean inputs_changed = False; unsigned long AddInput(int source, void (*fn)(void)) { input_t *ip; ip = (input_t *)Malloc(sizeof(input_t)); ip->source = source; ip->condition = InputReadMask; ip->proc = fn; ip->next = inputs; inputs = ip; inputs_changed = True; return (unsigned long)ip; } unsigned long AddExcept(int source, void (*fn)(void)) { #if defined(_WIN32) /*[*/ return 0; #else /*][*/ input_t *ip; ip = (input_t *)Malloc(sizeof(input_t)); ip->source = source; ip->condition = InputExceptMask; ip->proc = fn; ip->next = inputs; inputs = ip; inputs_changed = True; return (unsigned long)ip; #endif /*]*/ } #if !defined(_WIN32) /*[*/ unsigned long AddOutput(int source, void (*fn)(void)) { input_t *ip; ip = (input_t *)Malloc(sizeof(input_t)); ip->source = source; ip->condition = InputWriteMask; ip->proc = fn; ip->next = inputs; inputs = ip; inputs_changed = True; return (unsigned long)ip; } #endif /*]*/ void RemoveInput(unsigned long id) { input_t *ip; input_t *prev = (input_t *)NULL; for (ip = inputs; ip != (input_t *)NULL; ip = ip->next) { if (ip == (input_t *)id) break; prev = ip; } if (ip == (input_t *)NULL) return; if (prev != (input_t *)NULL) prev->next = ip->next; else inputs = ip->next; Free(ip); inputs_changed = True; } #if !defined(_WIN32) /*[*/ /* * Modify the passed-in parameters so they reflect the values needed for * select(). */ int select_setup(int *nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval **timeout, struct timeval *timebuf) { input_t *ip; int r = 0; for (ip = inputs; ip != (input_t *)NULL; ip = ip->next) { if ((unsigned long)ip->condition & InputReadMask) { FD_SET(ip->source, readfds); if (ip->source >= *nfds) *nfds = ip->source + 1; r = 1; } if ((unsigned long)ip->condition & InputWriteMask) { FD_SET(ip->source, writefds); if (ip->source >= *nfds) *nfds = ip->source + 1; r = 1; } if ((unsigned long)ip->condition & InputExceptMask) { FD_SET(ip->source, exceptfds); if (ip->source >= *nfds) *nfds = ip->source + 1; r = 1; } } if (timeouts != TN) { struct timeval now, twait; (void) gettimeofday(&now, (void *)NULL); twait.tv_sec = timeouts->tv.tv_sec - now.tv_sec; twait.tv_usec = timeouts->tv.tv_usec - now.tv_usec; if (twait.tv_usec < 0L) { twait.tv_sec--; twait.tv_usec += MILLION; } if (twait.tv_sec < 0L) twait.tv_sec = twait.tv_usec = 0L; if (*timeout == NULL) { /* No timeout yet -- we're it. */ *timebuf = twait; *timeout = timebuf; r = 1; } else if (twait.tv_sec < (*timeout)->tv_sec || (twait.tv_sec == (*timeout)->tv_sec && twait.tv_usec < (*timeout)->tv_usec)) { /* We're sooner than what they're waiting for. */ **timeout = twait; r = 1; } } return r; } #endif /*]*/ #if defined(_WIN32) /*[*/ #define MAX_HA 256 #endif /*]*/ /* Event dispatcher. */ Boolean process_events(Boolean block) { #if defined(_WIN32) /*[*/ HANDLE ha[MAX_HA]; DWORD nha; DWORD tmo; DWORD ret; unsigned long long now; int i; #else /*][*/ fd_set rfds, wfds, xfds; int ns; struct timeval now, twait, *tp; #endif /*]*/ input_t *ip, *ip_next; struct timeout *t; Boolean any_events; Boolean processed_any = False; processed_any = False; retry: /* If we've processed any input, then don't block again. */ if (processed_any) block = False; any_events = False; #if defined(_WIN32) /*[*/ nha = 0; #else /*][*/ FD_ZERO(&rfds); FD_ZERO(&wfds); FD_ZERO(&xfds); #endif /*]*/ for (ip = inputs; ip != (input_t *)NULL; ip = ip->next) { if ((unsigned long)ip->condition & InputReadMask) { #if defined(_WIN32) /*[*/ ha[nha++] = (HANDLE)ip->source; #else /*][*/ FD_SET(ip->source, &rfds); #endif /*]*/ any_events = True; } #if !defined(_WIN32) /*[*/ if ((unsigned long)ip->condition & InputWriteMask) { FD_SET(ip->source, &wfds); any_events = True; } if ((unsigned long)ip->condition & InputExceptMask) { FD_SET(ip->source, &xfds); any_events = True; } #endif /*]*/ } if (block) { if (timeouts != TN) { #if defined(_WIN32) /*[*/ ms_ts(&now); if (now > timeouts->ts) tmo = 0; else tmo = timeouts->ts - now; #else /*][*/ (void) gettimeofday(&now, (void *)NULL); twait.tv_sec = timeouts->tv.tv_sec - now.tv_sec; twait.tv_usec = timeouts->tv.tv_usec - now.tv_usec; if (twait.tv_usec < 0L) { twait.tv_sec--; twait.tv_usec += MILLION; } if (twait.tv_sec < 0L) twait.tv_sec = twait.tv_usec = 0L; tp = &twait; #endif /*]*/ any_events = True; } else { #if defined(_WIN32) /*[*/ tmo = INFINITE; #else /*][*/ tp = (struct timeval *)NULL; #endif /*]*/ } } else { #if defined(_WIN32) /*[*/ tmo = 1; #else /*][*/ twait.tv_sec = twait.tv_usec = 0L; tp = &twait; #endif /*]*/ } if (!any_events) return processed_any; #if defined(_WIN32) /*[*/ ret = WaitForMultipleObjects(nha, ha, FALSE, tmo); if (ret == WAIT_FAILED) { #else /*][*/ ns = select(FD_SETSIZE, &rfds, &wfds, &xfds, tp); if (ns < 0) { if (errno != EINTR) Warning("process_events: select() failed"); #endif /*]*/ return processed_any; } inputs_changed = False; #if defined(_WIN32) /*[*/ for (i = 0, ip = inputs; ip != (input_t *)NULL; ip = ip_next, i++) { #else /*][*/ for (ip = inputs; ip != (input_t *)NULL; ip = ip_next) { #endif /*]*/ ip_next = ip->next; if (((unsigned long)ip->condition & InputReadMask) && #if defined(_WIN32) /*[*/ ret == WAIT_OBJECT_0 + i) { #else /*][*/ FD_ISSET(ip->source, &rfds)) { #endif /*]*/ (*ip->proc)(); processed_any = True; if (inputs_changed) goto retry; } #if !defined(_WIN32) /*[*/ if (((unsigned long)ip->condition & InputWriteMask) && FD_ISSET(ip->source, &wfds)) { (*ip->proc)(); processed_any = True; if (inputs_changed) goto retry; } if (((unsigned long)ip->condition & InputExceptMask) && FD_ISSET(ip->source, &xfds)) { (*ip->proc)(); processed_any = True; if (inputs_changed) goto retry; } #endif /*]*/ } /* See what's expired. */ if (timeouts != TN) { #if defined(_WIN32) /*[*/ ms_ts(&now); #else /*][*/ (void) gettimeofday(&now, (void *)NULL); #endif /*]*/ while ((t = timeouts) != TN) { #if defined(_WIN32) /*[*/ if (t->ts <= now) { #else /*][*/ if (t->tv.tv_sec < now.tv_sec || (t->tv.tv_sec == now.tv_sec && t->tv.tv_usec < now.tv_usec)) { #endif /*]*/ timeouts = t->next; t->in_play = True; (*t->proc)(); processed_any = True; Free(t); } else break; } } if (inputs_changed) goto retry; return processed_any; } ibm-3270-3.3.10ga4/tcl3270/screen.h0000644000175000017500000000316111254565673015723 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of screen.h */ #define SELECTED(baddr) False extern int *char_width, *char_height; ibm-3270-3.3.10ga4/tcl3270/utf8.c0000644000175000017500000001545611254565704015332 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utf8.c * 3270 Terminal Emulator * UTF-8 conversions */ #include "globals.h" #include "popupsc.h" #include "utf8c.h" char *locale_codeset = CN; Boolean is_utf8 = False; /* * Save the codeset from the locale, and set globals based on known values. */ void set_codeset(char *codeset_name) { #if !defined(TCL3270) /*[*/ is_utf8 = (!strcasecmp(codeset_name, "utf-8") || !strcasecmp(codeset_name, "utf8") || !strcasecmp(codeset_name, "utf_8")); #else /*][*/ /* * tcl3270 is always in UTF-8 mode, because it needs to * supply UTF-8 strings to libtcl and vice-versa. */ is_utf8 = True; #endif /*]*/ Replace(locale_codeset, NewString(codeset_name)); } /* * Convert from UCS-4 to UTF-8. * Returns: * >0: length of converted character * -1: invalid UCS-4 */ int unicode_to_utf8(ucs4_t ucs4, char *utf8) { if (ucs4 & 0x80000000) return -1; if (ucs4 <= 0x0000007f) { utf8[0] = ucs4 & 0x7f; /* 7 bits */ return 1; } else if (ucs4 <= 0x000007ff) { utf8[0] = 0xc0 | ((ucs4 >> 6) & 0x1f); /* upper 5 bits */ utf8[1] = 0x80 | (ucs4 & 0x3f); /* lower 6 bits */ return 2; } else if (ucs4 <= 0x0000ffff) { utf8[0] = 0xe0 | ((ucs4 >> 12) & 0x0f); /* upper 4 bits */ utf8[1] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 3; } else if (ucs4 <= 0x001fffff) { utf8[0] = 0xf0 | ((ucs4 >> 18) & 0x07); /* upper 3 bits */ utf8[1] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 4; } else if (ucs4 <= 0x03ffffff) { utf8[0] = 0xf8 | ((ucs4 >> 24) & 0x03); /* upper 2 bits */ utf8[1] = 0x80 | ((ucs4 >> 18) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[4] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 5; } else { utf8[0] = 0xfc | ((ucs4 >> 30) & 0x01); /* upper 1 bit */ utf8[1] = 0x80 | ((ucs4 >> 24) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 18) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[4] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[5] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 6; } } /* * Convert at most 'len' bytes from a UTF-8 string to one UCS-4 character. * Returns: * >0: Number of characters consumed. * 0: Incomplete sequence. * -1: Invalid sequence. * -2: Illegal (too-long) encoding. * -3: Invalid lead byte. * * An invalid sequence can be either improperly composed, or using the wrong * encoding length (often used to get past spam filters and such). */ int utf8_to_unicode(const char *utf8, int len, ucs4_t *ucs4) { /* No input is by definition incomplete. */ if (!len) return 0; /* See if it's ASCII-7. */ if ((utf8[0] & 0xff) < 0x80) { *ucs4 = utf8[0] & 0x7f; return 1; } /* Now check for specific UTF-8 leading bytes. */ if ((utf8[0] & 0xe0) == 0xc0) { /* 110xxxxx 10xxxxxx * 0x00000080-0x000007ff */ if (len < 2) return 0; if ((utf8[1] & 0xc0) != 0x80) return -1; *ucs4 = ((utf8[0] << 6) & 0x7c0) | (utf8[1] & 0x03f); if (*ucs4 < 0x00000080) return -1; return 2; } if ((utf8[0] & 0xf0) == 0xe0) { /* 1110xxxx 10xxxxxx 10xxxxxx * 0x00000800-0x0000ffff */ if (len < 3) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 12) & 0xf000) | ((utf8[1] << 6) & 0x0fc0) | ((utf8[2]) & 0x003f); if (*ucs4 < 0x00000800) return -2; return 3; } if ((utf8[0] & 0xf8) == 0xf0) { /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x00010000-0x001fffff */ if (len < 4) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 18) & 0x1c0000) | ((utf8[1] << 12) & 0x03f000) | ((utf8[2] << 6) & 0x000fc0) | ((utf8[3]) & 0x00003f); if (*ucs4 < 0x00010000) return -2; return 4; } if ((utf8[0] & 0xfc) == 0xf8) { /* 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x00200000-0x03ffffff */ if (len < 5) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80) || ((utf8[4] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 24) & 0x3000000) | ((utf8[1] << 18) & 0x0fc0000) | ((utf8[2] << 12) & 0x003f000) | ((utf8[3] << 6) & 0x0000fc0) | ((utf8[4]) & 0x000003f); if (*ucs4 < 0x00200000) return -2; return 5; } if ((utf8[0] & 0xfe) == 0xfc) { /* 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x04000000-0x7fffffff */ if (len < 6) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80) || ((utf8[4] & 0xc0) != 0x80) || ((utf8[5] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 30) & 0x40000000) | ((utf8[1] << 24) & 0x3f000000) | ((utf8[2] << 18) & 0x00fc0000) | ((utf8[3] << 12) & 0x0003f000) | ((utf8[4] << 6) & 0x00000fc0) | ((utf8[5]) & 0x0000003f); if (*ucs4 < 0x04000000) return -2; return 6; } return -3; } ibm-3270-3.3.10ga4/tcl3270/screenc.h0000644000175000017500000000373411254565673016074 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of screenc.h */ #define blink_start() #define cursor_move(baddr) cursor_addr = (baddr) #define display_heightMM() 100 #define display_height() 1 #define display_widthMM() 100 #define display_width() 1 #define mcursor_locked() #define mcursor_normal() #define mcursor_waiting() #define ring_bell() #define screen_disp(erasing) #define screen_flip() #define screen_obscured() False #define screen_scroll() #define screen_80() #define screen_132() ibm-3270-3.3.10ga4/tcl3270/tn3270e.h0000644000175000017500000000704311254565704015544 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tn3270e.h * * Header file for the TN3270E Protocol, RFC 2355. */ /* Negotiation operations. */ #define TN3270E_OP_ASSOCIATE 0 #define TN3270E_OP_CONNECT 1 #define TN3270E_OP_DEVICE_TYPE 2 #define TN3270E_OP_FUNCTIONS 3 #define TN3270E_OP_IS 4 #define TN3270E_OP_REASON 5 #define TN3270E_OP_REJECT 6 #define TN3270E_OP_REQUEST 7 #define TN3270E_OP_SEND 8 /* Negotiation reason-codes. */ #define TN3270E_REASON_CONN_PARTNER 0 #define TN3270E_REASON_DEVICE_IN_USE 1 #define TN3270E_REASON_INV_ASSOCIATE 2 #define TN3270E_REASON_INV_DEVICE_NAME 3 #define TN3270E_REASON_INV_DEVICE_TYPE 4 #define TN3270E_REASON_TYPE_NAME_ERROR 5 #define TN3270E_REASON_UNKNOWN_ERROR 6 #define TN3270E_REASON_UNSUPPORTED_REQ 7 /* Negotiation function Names. */ #define TN3270E_FUNC_BIND_IMAGE 0 #define TN3270E_FUNC_DATA_STREAM_CTL 1 #define TN3270E_FUNC_RESPONSES 2 #define TN3270E_FUNC_SCS_CTL_CODES 3 #define TN3270E_FUNC_SYSREQ 4 /* Header data type names. */ #define TN3270E_DT_3270_DATA 0x00 #define TN3270E_DT_SCS_DATA 0x01 #define TN3270E_DT_RESPONSE 0x02 #define TN3270E_DT_BIND_IMAGE 0x03 #define TN3270E_DT_UNBIND 0x04 #define TN3270E_DT_NVT_DATA 0x05 #define TN3270E_DT_REQUEST 0x06 #define TN3270E_DT_SSCP_LU_DATA 0x07 #define TN3270E_DT_PRINT_EOJ 0x08 /* Header request flags. */ #define TN3270E_RQF_ERR_COND_CLEARED 0x00 /* Header response flags. */ #define TN3270E_RSF_NO_RESPONSE 0x00 #define TN3270E_RSF_ERROR_RESPONSE 0x01 #define TN3270E_RSF_ALWAYS_RESPONSE 0x02 #define TN3270E_RSF_POSITIVE_RESPONSE 0x00 #define TN3270E_RSF_NEGATIVE_RESPONSE 0x01 /* Header response data. */ #define TN3270E_POS_DEVICE_END 0x00 #define TN3270E_NEG_COMMAND_REJECT 0x00 #define TN3270E_NEG_INTERVENTION_REQUIRED 0x01 #define TN3270E_NEG_OPERATION_CHECK 0x02 #define TN3270E_NEG_COMPONENT_DISCONNECTED 0x03 /* TN3270E data header. */ typedef struct { unsigned char data_type; unsigned char request_flag; unsigned char response_flag; unsigned char seq_number[2]; /* actually, 16 bits, unaligned (!) */ } tn3270e_header; #define EH_SIZE 5 ibm-3270-3.3.10ga4/tcl3270/readres.c0000644000175000017500000001320211254565704016054 0ustar bastianbastian/* * Copyright (c) 2009, Paul Mattes. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * readres.c * A displayless 3270 Terminal Emulator * Resource file reader. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "readresc.h" #include "screenc.h" #include "selectc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include #include "winversc.h" #endif /*]*/ #if !defined(ME) /*[*/ # if defined(C3270) /*[*/ # if defined(WC3270) /*[*/ # define ME "wc3270" # else /*][*/ # define ME "c3270" # endif /*]*/ # elif defined(S3270) /*[*/ # if defined(WS3270) /*[*/ # define ME "ws3270" # else /*][*/ # define ME "s3270" # endif /*]*/ # elif defined(TCL3270) /*][*/ # define ME "tcl3270" # endif /*]*/ #endif /*]*/ /* * Make sure a resource definition begins with the application name, then * split it into the name and the value. */ int validate_and_split_resource(const char *where, const char *arg, const char **left, unsigned *rnlenp, const char **right) { unsigned match_len; unsigned rnlen; const char *s = arg; static char me_dot[] = ME "."; static char me_star[] = ME "*"; /* Enforce "-3270." or "-3270*" or "*". */ if (!strncmp(s, me_dot, sizeof(me_dot)-1)) match_len = sizeof(me_dot)-1; else if (!strncmp(arg, me_star, sizeof(me_star)-1)) match_len = sizeof(me_star)-1; else if (arg[0] == '*') match_len = 1; else { xs_warning("%s: Invalid resource syntax '%.*s', name must " "begin with '%s'", where, (int)(sizeof(me_dot)-1), arg, me_dot); return -1; } /* Separate the parts. */ s = arg + match_len; while (*s && *s != ':' && !isspace(*s)) s++; rnlen = s - (arg + match_len); if (!rnlen) { xs_warning("%s: Invalid resource syntax, missing resource " "name", where); return -1; } while (isspace(*s)) s++; if (*s != ':') { xs_warning("%s: Invalid resource syntax, missing ':'", where); return -1; } s++; while (isspace(*s)) s++; /* Return what we got. */ *left = arg + match_len; *rnlenp = rnlen; *right = s; return 0; } /* Read resources from a file. */ int read_resource_filex(const char *filename, Boolean fatal, rrf_t *rrf) { FILE *f; int ilen; char buf[4096]; char *where; int lno = 0; f = fopen(filename, "r"); if (f == NULL) { if (fatal) xs_warning("Cannot open '%s': %s", filename, strerror(errno)); return -1; } /* Merge in what's in the file into the resource database. */ where = Malloc(strlen(filename) + 64); ilen = 0; while (fgets(buf + ilen, sizeof(buf) - ilen, f) != CN || ilen) { char *s; unsigned sl; Boolean bsl = False; lno++; /* Stip any trailing newline. */ sl = strlen(buf + ilen); if (sl && (buf + ilen)[sl-1] == '\n') (buf + ilen)[--sl] = '\0'; /* Check for a trailing backslash. */ s = buf + ilen; if ((sl > 0) && (s[sl - 1] == '\\')) { s[sl - 1] = '\0'; bsl = True; } /* Skip leading whitespace. */ s = buf; while (isspace(*s)) s++; /* If this line is a continuation, try again. */ if (bsl) { ilen += strlen(buf + ilen); if ((unsigned)ilen >= sizeof(buf) - 1) { (void) sprintf(where, "%s:%d: Line too long\n", filename, lno); Warning(where); break; } continue; } /* Skip comments. */ if (*s == '!') { ilen = 0; continue; } if (*s == '#') { (void) sprintf(where, "%s:%d: Invalid profile " "syntax ('#' ignored)", filename, lno); Warning(where); ilen = 0; continue; } /* Strip trailing whitespace and check for empty lines. */ sl = strlen(s); while (sl && isspace(s[sl-1])) s[--sl] = '\0'; if (!sl) { ilen = 0; continue; } /* Digest it. */ (void) sprintf(where, "%s:%d", filename, lno); parse_xrm(s, where); /* Get ready for the next iteration. */ ilen = 0; } Free(where); fclose(f); return 0; } ibm-3270-3.3.10ga4/tcl3270/w3miscc.h0000644000175000017500000000372511254565704016015 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * w3misc.c * Miscellaneous Win32 functions. */ #if defined(_WIN32) /*[*/ #if defined(_WS2TCPIP_H) /*[*/ extern const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt); #endif /*]*/ extern int sockstart(void); extern const char *win32_strerror(int e); #if defined(_MSC_VER) /*[*/ extern int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg; extern int optind, opterr, optopt; #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/arpa_telnet.h0000644000175000017500000001140211254565704016732 0ustar bastianbastian/* @(#)telnet.h 1.7 88/08/19 SMI; from UCB 5.1 5/30/85 */ /* * Copyright (c) 1983 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */ /* * Definitions for the TELNET protocol. */ #ifndef _arpa_telnet_h #define _arpa_telnet_h #define IAC 255 /* interpret as command: */ #define DONT 254 /* you are not to use option */ #define DO 253 /* please, you use option */ #define WONT 252 /* I won't use option */ #define WILL 251 /* I will use option */ #define SB 250 /* interpret as subnegotiation */ #define GA 249 /* you may reverse the line */ #define EL 248 /* erase the current line */ #define EC 247 /* erase the current character */ #define AYT 246 /* are you there */ #define AO 245 /* abort output--but let prog finish */ #define IP 244 /* interrupt process--permanently */ #define BREAK 243 /* break */ #define DM 242 /* data mark--for connect. cleaning */ #define NOP 241 /* nop */ #define SE 240 /* end sub negotiation */ #define EOR 239 /* end of record (transparent mode) */ #define SUSP 237 /* suspend process */ #define xEOF 236 /* end of file */ #define SYNCH 242 /* for telfunc calls */ #ifdef TELCMDS const char *telcmds[] = { "EOF", "SUSP", "ABORT", "EOR", "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0 }; #endif #define TELCMD_FIRST xEOF #define TELCMD_LAST IAC #define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \ (unsigned int)(x) >= TELCMD_FIRST) #define TELCMD(x) telcmds[(x)-TELCMD_FIRST] /* telnet options */ #define TELOPT_BINARY 0 /* 8-bit data path */ #define TELOPT_ECHO 1 /* echo */ #define TELOPT_RCP 2 /* prepare to reconnect */ #define TELOPT_SGA 3 /* suppress go ahead */ #define TELOPT_NAMS 4 /* approximate message size */ #define TELOPT_STATUS 5 /* give status */ #define TELOPT_TM 6 /* timing mark */ #define TELOPT_RCTE 7 /* remote controlled transmission and echo */ #define TELOPT_NAOL 8 /* negotiate about output line width */ #define TELOPT_NAOP 9 /* negotiate about output page size */ #define TELOPT_NAOCRD 10 /* negotiate about CR disposition */ #define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */ #define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */ #define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */ #define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */ #define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */ #define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */ #define TELOPT_XASCII 17 /* extended ascic character set */ #define TELOPT_LOGOUT 18 /* force logout */ #define TELOPT_BM 19 /* byte macro */ #define TELOPT_DET 20 /* data entry terminal */ #define TELOPT_SUPDUP 21 /* supdup protocol */ #define TELOPT_SUPDUPOUTPUT 22 /* supdup output */ #define TELOPT_SNDLOC 23 /* send location */ #define TELOPT_TTYPE 24 /* terminal type */ #define TELOPT_EOR 25 /* end or record */ #define TELOPT_TUID 26 /* TACACS user identification */ #define TELOPT_OUTMRK 27 /* output marking */ #define TELOPT_TTYLOC 28 /* terminal location number */ #define TELOPT_3270REGIME 29 /* 3270 regime */ #define TELOPT_X3PAD 30 /* X.3 PAD */ #define TELOPT_NAWS 31 /* window size */ #define TELOPT_TSPEED 32 /* terminal speed */ #define TELOPT_LFLOW 33 /* remote flow control */ #define TELOPT_LINEMODE 34 /* linemode option */ #define TELOPT_XDISPLOC 35 /* X Display Location */ #define TELOPT_OLD_ENVIRON 36 /* old - Environment variables */ #define TELOPT_AUTHENTICATION 37/* authenticate */ #define TELOPT_ENCRYPT 38 /* encryption option */ #define TELOPT_NEW_ENVIRON 39 /* new - environment variables */ #define TELOPT_TN3270E 40 /* extended 3270 regime */ #define TELOPT_EXOPL 255 /* extended-options-list */ #define NTELOPTS (1+TELOPT_TN3270E) #ifdef TELOPTS const char *telopts[NTELOPTS+1] = { "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME", "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP", "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS", "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO", "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT", "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD", "TACACS UID", "OUTPUT MARKING", "TTYLOC", "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW", "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION", "ENCRYPT", "NEW-ENVIRON", "TN3270E", 0 }; #define TELOPT_FIRST TELOPT_BINARY #define TELOPT_LAST TELOPT_TN3270E #define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST) #define TELOPT(x) telopts[(x)-TELOPT_FIRST] #endif /* sub-option qualifiers */ #define TELQUAL_IS 0 /* option is... */ #define TELQUAL_SEND 1 /* send option */ #endif /*!_arpa_telnet_h*/ ibm-3270-3.3.10ga4/tcl3270/util.c0000644000175000017500000005021611256027015015400 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * util.c * Utility functions for x3270/c3270/s3270/tcl3270 */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include "resources.h" #include "charsetc.h" #include "utilc.h" #define my_isspace(c) isspace((unsigned char)c) /* * Cheesy internal version of sprintf that allocates its own memory. */ static char * xs_vsprintf(const char *fmt, va_list args) { char *r = CN; #if defined(HAVE_VASPRINTF) /*[*/ int nw; nw = vasprintf(&r, fmt, args); if (nw < 0 || r == CN) Error("Out of memory"); return r; #else /*][*/ char buf[16384]; int nc; nc = vsprintf(buf, fmt, args); if (nc > sizeof(buf)) Error("Internal buffer overflow"); r = Malloc(nc + 1); return strcpy(r, buf); #endif /*]*/ } /* * Common helper functions to insert strings, through a template, into a new * buffer. * 'format' is assumed to be a printf format string with '%s's in it. */ char * xs_buffer(const char *fmt, ...) { va_list args; char *r; va_start(args, fmt); r = xs_vsprintf(fmt, args); va_end(args); return r; } /* Common uses of xs_buffer. */ void xs_warning(const char *fmt, ...) { va_list args; char *r; va_start(args, fmt); r = xs_vsprintf(fmt, args); va_end(args); Warning(r); Free(r); } void xs_error(const char *fmt, ...) { va_list args; char *r; va_start(args, fmt); r = xs_vsprintf(fmt, args); va_end(args); Error(r); Free(r); } /* Prettyprinter for strings with unprintable data. */ void fcatv(FILE *f, char *s) { char c; while ((c = *s++)) { switch (c) { case '\n': (void) fprintf(f, "\\n"); break; case '\t': (void) fprintf(f, "\\t"); break; case '\b': (void) fprintf(f, "\\b"); break; default: if ((c & 0x7f) < ' ') (void) fprintf(f, "\\%03o", c & 0xff); else fputc(c, f); break; } } } /* String version of fcatv. */ char * scatv(const char *s, char *buf, size_t len) { char c; char *dst = buf; while ((c = *s++) && len > 0) { char cbuf[5]; char *t = cbuf; /* Expand this character. */ switch (c) { case '\n': (void) strcpy(cbuf, "\\n"); break; case '\t': (void) strcpy(cbuf, "\\t"); break; case '\b': (void) strcpy(cbuf, "\\b"); break; default: if ((c & 0x7f) < ' ') (void) sprintf(cbuf, "\\%03o", c & 0xff); else { cbuf[0] = c; cbuf[1] = '\0'; } break; } /* Copy as much as will fit. */ while ((c = *t++) && len > 0) { *dst++ = c; len--; } } if (len > 0) *dst = '\0'; return buf; } /* * Definition resource splitter, for resources of the repeating form: * left: right\n * * Can be called iteratively to parse a list. * Returns 1 for success, 0 for EOF, -1 for error. * * Note: Modifies the input string. */ int split_dresource(char **st, char **left, char **right) { char *s = *st; char *t; Boolean quote; /* Skip leading white space. */ while (my_isspace(*s)) s++; /* If nothing left, EOF. */ if (!*s) return 0; /* There must be a left-hand side. */ if (*s == ':') return -1; /* Scan until an unquoted colon is found. */ *left = s; for (; *s && *s != ':' && *s != '\n'; s++) if (*s == '\\' && *(s+1) == ':') s++; if (*s != ':') return -1; /* Stip white space before the colon. */ for (t = s-1; my_isspace(*t); t--) *t = '\0'; /* Terminate the left-hand side. */ *(s++) = '\0'; /* Skip white space after the colon. */ while (*s != '\n' && my_isspace(*s)) s++; /* There must be a right-hand side. */ if (!*s || *s == '\n') return -1; /* Scan until an unquoted newline is found. */ *right = s; quote = False; for (; *s; s++) { if (*s == '\\' && *(s+1) == '"') s++; else if (*s == '"') quote = !quote; else if (!quote && *s == '\n') break; } /* Strip white space before the newline. */ if (*s) { t = s; *st = s+1; } else { t = s-1; *st = s; } while (my_isspace(*t)) *t-- = '\0'; /* Done. */ return 1; } /* * Split a DBCS resource into its parts. * Returns the number of parts found: * -1 error (empty sub-field) * 0 nothing found * 1 one and just one thing found * 2 two things found * 3 more than two things found */ int split_dbcs_resource(const char *value, char sep, char **part1, char **part2) { int n_parts = 0; const char *s = value; const char *f_start = CN; /* start of sub-field */ const char *f_end = CN; /* end of sub-field */ char c; char **rp; *part1 = CN; *part2 = CN; for( ; ; ) { c = *s; if (c == sep || c == '\0') { if (f_start == CN) return -1; if (f_end == CN) f_end = s; if (f_end == f_start) { if (c == sep) { if (*part1) { Free(*part1); *part1 = NULL; } if (*part2) { Free(*part2); *part2 = NULL; } return -1; } else return n_parts; } switch (n_parts) { case 0: rp = part1; break; case 1: rp = part2; break; default: return 3; } *rp = Malloc(f_end - f_start + 1); strncpy(*rp, f_start, f_end - f_start); (*rp)[f_end - f_start] = '\0'; f_end = CN; f_start = CN; n_parts++; if (c == '\0') return n_parts; } else if (isspace(c)) { if (f_end == CN) f_end = s; } else { if (f_start == CN) f_start = s; f_end = CN; } s++; } } #if defined(X3270_DISPLAY) /*[*/ /* * List resource splitter, for lists of elements speparated by newlines. * * Can be called iteratively. * Returns 1 for success, 0 for EOF, -1 for error. */ int split_lresource(char **st, char **value) { char *s = *st; char *t; Boolean quote; /* Skip leading white space. */ while (my_isspace(*s)) s++; /* If nothing left, EOF. */ if (!*s) return 0; /* Save starting point. */ *value = s; /* Scan until an unquoted newline is found. */ quote = False; for (; *s; s++) { if (*s == '\\' && *(s+1) == '"') s++; else if (*s == '"') quote = !quote; else if (!quote && *s == '\n') break; } /* Strip white space before the newline. */ if (*s) { t = s; *st = s+1; } else { t = s-1; *st = s; } while (my_isspace(*t)) *t-- = '\0'; /* Done. */ return 1; } #endif /*]*/ const char * get_message(const char *key) { static char namebuf[128]; char *r; (void) sprintf(namebuf, "%s.%s", ResMessage, key); if ((r = get_resource(namebuf)) != CN) return r; else { (void) sprintf(namebuf, "[missing \"%s\" message]", key); return namebuf; } } #define ex_getenv getenv /* Variable and tilde substitution functions. */ static char * var_subst(const char *s) { enum { VS_BASE, VS_QUOTE, VS_DOLLAR, VS_BRACE, VS_VN, VS_VNB, VS_EOF } state = VS_BASE; char c; int o_len = strlen(s) + 1; char *ob; char *o; const char *vn_start = CN; if (strchr(s, '$') == CN) return NewString(s); o_len = strlen(s) + 1; ob = Malloc(o_len); o = ob; # define LBR '{' # define RBR '}' while (state != VS_EOF) { c = *s; switch (state) { case VS_BASE: if (c == '\\') state = VS_QUOTE; else if (c == '$') state = VS_DOLLAR; else *o++ = c; break; case VS_QUOTE: if (c == '$') { *o++ = c; o_len--; } else { *o++ = '\\'; *o++ = c; } state = VS_BASE; break; case VS_DOLLAR: if (c == LBR) state = VS_BRACE; else if (isalpha(c) || c == '_') { vn_start = s; state = VS_VN; } else { *o++ = '$'; *o++ = c; state = VS_BASE; } break; case VS_BRACE: if (isalpha(c) || c == '_') { vn_start = s; state = VS_VNB; } else { *o++ = '$'; *o++ = LBR; *o++ = c; state = VS_BASE; } break; case VS_VN: case VS_VNB: if (!(isalnum(c) || c == '_')) { int vn_len; char *vn; char *vv; vn_len = s - vn_start; if (state == VS_VNB && c != RBR) { *o++ = '$'; *o++ = LBR; (void) strncpy(o, vn_start, vn_len); o += vn_len; state = VS_BASE; continue; /* rescan */ } vn = Malloc(vn_len + 1); (void) strncpy(vn, vn_start, vn_len); vn[vn_len] = '\0'; if ((vv = ex_getenv(vn))) { *o = '\0'; o_len = o_len - 1 /* '$' */ - (state == VS_VNB) /* { */ - vn_len /* name */ - (state == VS_VNB) /* } */ + strlen(vv); ob = Realloc(ob, o_len); o = strchr(ob, '\0'); (void) strcpy(o, vv); o += strlen(vv); } Free(vn); if (state == VS_VNB) { state = VS_BASE; break; } else { /* Rescan this character */ state = VS_BASE; continue; } } break; case VS_EOF: break; } s++; if (c == '\0') state = VS_EOF; } return ob; } #if !defined(_WIN32) /*[*/ /* * Do tilde (home directory) substitution on a string. Returns a malloc'd * result. */ static char * tilde_subst(const char *s) { char *slash; const char *name; const char *rest; struct passwd *p; char *r; char *mname = CN; /* Does it start with a "~"? */ if (*s != '~') return NewString(s); /* Terminate with "/". */ slash = strchr(s, '/'); if (slash) { int len = slash - s; mname = Malloc(len + 1); (void) strncpy(mname, s, len); mname[len] = '\0'; name = mname; rest = slash; } else { name = s; rest = strchr(name, '\0'); } /* Look it up. */ if (!strcmp(name, "~")) /* this user */ p = getpwuid(getuid()); else /* somebody else */ p = getpwnam(name + 1); /* Free any temporary copy. */ Free(mname); /* Substitute and return. */ if (p == (struct passwd *)NULL) r = NewString(s); else { r = Malloc(strlen(p->pw_dir) + strlen(rest) + 1); (void) strcpy(r, p->pw_dir); (void) strcat(r, rest); } return r; } #endif /*]*/ char * do_subst(const char *s, Boolean do_vars, Boolean do_tilde) { if (!do_vars && !do_tilde) return NewString(s); if (do_vars) { char *t; t = var_subst(s); #if !defined(_WIN32) /*[*/ if (do_tilde) { char *u; u = tilde_subst(t); Free(t); return u; } #endif /*]*/ return t; } #if !defined(_WIN32) /*[*/ return tilde_subst(s); #else /*][*/ return NewString(s); #endif /*]*/ } /* * ctl_see * Expands a character in the manner of "cat -v". */ char * ctl_see(int c) { static char buf[64]; char *p = buf; c &= 0xff; if ((c & 0x80) && (c <= 0xa0)) { *p++ = 'M'; *p++ = '-'; c &= 0x7f; } if (c >= ' ' && c != 0x7f) { *p++ = c; } else { *p++ = '^'; if (c == 0x7f) { *p++ = '?'; } else { *p++ = c + '@'; } } *p = '\0'; return buf; } /* A version of get_resource that accepts sprintf arguments. */ char * get_fresource(const char *fmt, ...) { va_list args; char *name; char *r; va_start(args, fmt); name = xs_vsprintf(fmt, args); va_end(args); r = get_resource(name); Free(name); return r; } /* * Whitespace stripper. */ char * strip_whitespace(const char *s) { char *t = NewString(s); while (*t && my_isspace(*t)) t++; if (*t) { char *u = t + strlen(t) - 1; while (my_isspace(*u)) { *u-- = '\0'; } } return t; } /* * Hierarchy (a>b>c) splitter. */ Boolean split_hier(char *label, char **base, char ***parents) { int n_parents = 0; char *gt; char *lp; label = NewString(label); for (lp = label; (gt = strchr(lp, '>')) != CN; lp = gt + 1) { if (gt == lp) return False; n_parents++; } if (!*lp) return False; if (n_parents) { *parents = (char **)Calloc(n_parents + 1, sizeof(char *)); for (n_parents = 0, lp = label; (gt = strchr(lp, '>')) != CN; lp = gt + 1) { (*parents)[n_parents++] = lp; *gt = '\0'; } *base = lp; } else { (*parents) = NULL; (*base) = label; } return True; } /* * Incremental, reallocing version of snprintf. */ #define RPF_BLKSIZE 4096 #define SP_TMP_LEN 16384 /* Initialize an RPF structure. */ void rpf_init(rpf_t *r) { r->buf = NULL; r->alloc_len = 0; r->cur_len = 0; } /* Reset an initialized RPF structure (re-use with length 0). */ void rpf_reset(rpf_t *r) { r->cur_len = 0; } /* Append a string to a dynamically-allocated buffer. */ void rpf(rpf_t *r, char *fmt, ...) { va_list a; Boolean need_realloc = False; int ns; char tbuf[SP_TMP_LEN]; /* Figure out how much space would be needed. */ va_start(a, fmt); ns = vsprintf(tbuf, fmt, a); /* XXX: dangerous, but so is vsnprintf */ va_end(a); if (ns >= SP_TMP_LEN) Error("rpf overrun"); /* Make sure we have that. */ while (r->alloc_len - r->cur_len < ns + 1) { r->alloc_len += RPF_BLKSIZE; need_realloc = True; } if (need_realloc) { r->buf = Realloc(r->buf, r->alloc_len); } /* Scribble onto the end of that. */ (void) strcpy(r->buf + r->cur_len, tbuf); r->cur_len += ns; } /* Free resources associated with an RPF. */ void rpf_free(rpf_t *r) { Free(r->buf); r->buf = NULL; r->alloc_len = 0; r->cur_len = 0; } #if defined(X3270_DISPLAY) /*[*/ /* Glue between x3270 and the X libraries. */ /* * A way to work around problems with Xt resources. It seems to be impossible * to get arbitrarily named resources. Someday this should be hacked to * add classes too. */ char * get_resource(const char *name) { XrmValue value; char *type; char *str; char *r = CN; str = xs_buffer("%s.%s", XtName(toplevel), name); if ((XrmGetResource(rdb, str, 0, &type, &value) == True) && *value.addr) r = value.addr; XtFree(str); return r; } /* * Input callbacks. */ typedef void voidfn(void); typedef struct iorec { voidfn *fn; XtInputId id; struct iorec *next; } iorec_t; static iorec_t *iorecs = NULL; static void io_fn(XtPointer closure, int *source _is_unused, XtInputId *id) { iorec_t *iorec; for (iorec = iorecs; iorec != NULL; iorec = iorec->next) { if (iorec->id == *id) { (*iorec->fn)(); break; } } } unsigned long AddInput(int sock, voidfn *fn) { iorec_t *iorec; iorec = (iorec_t *)XtMalloc(sizeof(iorec_t)); iorec->fn = fn; iorec->id = XtAppAddInput(appcontext, sock, (XtPointer) XtInputReadMask, io_fn, NULL); iorec->next = iorecs; iorecs = iorec; return iorec->id; } unsigned long AddExcept(int sock, voidfn *fn) { iorec_t *iorec; iorec = (iorec_t *)XtMalloc(sizeof(iorec_t)); iorec->fn = fn; iorec->id = XtAppAddInput(appcontext, sock, (XtPointer) XtInputExceptMask, io_fn, NULL); iorec->next = iorecs; iorecs = iorec; return iorec->id; } unsigned long AddOutput(int sock, voidfn *fn) { iorec_t *iorec; iorec = (iorec_t *)XtMalloc(sizeof(iorec_t)); iorec->fn = fn; iorec->id = XtAppAddInput(appcontext, sock, (XtPointer) XtInputWriteMask, io_fn, NULL); iorec->next = iorecs; iorecs = iorec; return iorec->id; } void RemoveInput(unsigned long cookie) { iorec_t *iorec; iorec_t *prev = NULL; for (iorec = iorecs; iorec != NULL; iorec = iorec->next) { if (iorec->id == (XtInputId)cookie) { break; } prev = iorec; } if (iorec != NULL) { XtRemoveInput((XtInputId)cookie); if (prev != NULL) prev->next = iorec->next; else iorecs = iorec->next; XtFree((XtPointer)iorec); } } /* * Timer callbacks. */ typedef struct torec { voidfn *fn; XtIntervalId id; struct torec *next; } torec_t; static torec_t *torecs = NULL; static void to_fn(XtPointer closure, XtIntervalId *id) { torec_t *torec; torec_t *prev = NULL; voidfn *fn = NULL; for (torec = torecs; torec != NULL; torec = torec->next) { if (torec->id == *id) { break; } prev = torec; } if (torec != NULL) { /* Remember the record. */ fn = torec->fn; /* Free the record. */ if (prev != NULL) prev->next = torec->next; else torecs = torec->next; XtFree((XtPointer)torec); /* Call the function. */ (*fn)(); } } unsigned long AddTimeOut(unsigned long msec, voidfn *fn) { torec_t *torec; torec = (torec_t *)XtMalloc(sizeof(torec_t)); torec->fn = fn; torec->id = XtAppAddTimeOut(appcontext, msec, to_fn, NULL); torec->next = torecs; torecs = torec; return (unsigned long)torec->id; } void RemoveTimeOut(unsigned long cookie) { torec_t *torec; torec_t *prev = NULL; for (torec = torecs; torec != NULL; torec = torec->next) { if (torec->id == (XtIntervalId)cookie) { break; } prev = torec; } if (torec != NULL) { XtRemoveTimeOut((XtIntervalId)cookie); if (prev != NULL) prev->next = torec->next; else torecs = torec->next; XtFree((XtPointer)torec); } else { Error("RemoveTimeOut: Can't find"); } } KeySym StringToKeysym(char *s) { return XStringToKeysym(s); } #endif /*]*/ /* Return configuration options. */ const char * build_options(void) { return "Build options:" #if defined(X3270_ANSI) /*[*/ " --enable-ansi" #else /*][*/ " --disable-ansi" #endif /*]*/ #if defined(X3270_APL) /*[*/ " --enable-apl" #else /*][*/ " --disable-apl" #endif /*]*/ #if defined(X3270_DBCS) /*[*/ " --enable-dbcs" #else /*][*/ " --disable-dbcs" #endif /*]*/ #if defined(X3270_FT) /*[*/ " --enable-ft" #else /*][*/ " --disable-ft" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ # if defined(X3270_KEYPAD) /*[*/ " --enable-keypad" # else /*][*/ " --disable-keypad" # endif /*]*/ #endif /*]*/ #if defined(X3270_LOCAL_PROCESS) /*[*/ " --enable-local-process" #else /*][*/ " --disable-local-process" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ # if defined(X3270_MENUS) /*[*/ " --enable-menus" # else /*][*/ " --disable-menus" # endif /*]*/ #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_PRINTER) /*[*/ " --enable-printer" # else /*][*/ " --disable-printer" # endif /*]*/ #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_SCRIPT) /*[*/ " --enable-script" # else /*][*/ " --disable-script" # endif /*]*/ #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ " --enable-tn3270e" #else /*][*/ " --disable-tn3270e" #endif /*]*/ #if defined(X3270_TRACE) /*[*/ " --enable-trace" #else /*][*/ " --disable-trace" #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ " --with-ssl" #else /*][*/ " --without-ssl" #endif /*]*/ #if defined(C3270) /*[*/ # if defined(HAVE_LIBREADLINE) /*[*/ " --with-readline" # else /*][*/ " --without-readline" # endif /*]*/ # if !defined(_WIN32) /*[*/ # if defined(CURSES_WIDE) /*[*/ " --with-curses-wide" # else /*][*/ " --without-curses-wide" # endif /*]*/ # endif /*]*/ #endif /*]*/ #if defined(USE_ICONV) /*[*/ " --with-iconv" #endif /*]*/ ; } void dump_version(void) { printf("%s\n%s\n", build, build_options()); charset_list(); printf("\n" "Copyright 1989-2009, Paul Mattes, GTRC and others.\n" "See the source code or documentation for licensing details.\n" "Distributed WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); exit(0); } /* Scale a number for display. */ const char * display_scale(double d, char *buf, size_t buflen) { if (d >= 1000000.0) snprintf(buf, buflen, "%.3g M", d / 1000000.0); else if (d >= 1000.0) snprintf(buf, buflen, "%.3g K", d / 1000.0); else snprintf(buf, buflen, "%.3g ", d); /* Don't trust snprintf. */ buf[buflen - 1] = '\0'; return buf; } ibm-3270-3.3.10ga4/tcl3270/ft_cutc.h0000644000175000017500000000304511254565704016067 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ extern void ft_cut_data(void); ibm-3270-3.3.10ga4/tcl3270/apl.c0000644000175000017500000001647611254565704015223 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * apl.c * This module handles APL-specific actions. */ #include "globals.h" #if defined(X3270_APL) /*[*/ #include #include "aplc.h" /* * APL keysym translation. * * This code looks a little odd because of how an APL font is implemented. * An APL font has APL graphics in place of the various accented letters and * special symbols in a regular font. APL keysym translation consists of * taking the keysym name for an APL symbol (these names are meaningful only to * x3270) and translating it into the keysym for the regular symbol that the * desired APL symbol _replaces_. * * For example, an APL font has the APL "jot" symbol where a regular font has * the "registered" symbol. So we take the keysym name "jot" and translate it * into the keysym XK_registered. When the XK_registered symbol is displayed * with an APL font, it appears as a "jot". * * The specification of which APL symbols replace which regular symbols is in * IBM GA27-3831, 3174 Establishment Controller Character Set Reference. * * In addition, several standard characters have different names for APL, * for example, "period" becomes "dot". These are included in the table as * well. */ static struct { const char *name; KeySym keysym; int is_ge; } axl[] = { { "Aunderbar", XK_nobreakspace, 1 }, { "Bunderbar", XK_acircumflex, 1 }, { "Cunderbar", XK_adiaeresis, 1 }, { "Dunderbar", XK_agrave, 1 }, { "Eunderbar", XK_aacute, 1 }, { "Funderbar", XK_atilde, 1 }, { "Gunderbar", XK_aring, 1 }, { "Hunderbar", XK_ccedilla, 1 }, { "Iunderbar", XK_ntilde, 1 }, { "Junderbar", XK_eacute, 1 }, { "Kunderbar", XK_ecircumflex, 1 }, { "Lunderbar", XK_ediaeresis, 1 }, { "Munderbar", XK_egrave, 1 }, { "Nunderbar", XK_iacute, 1 }, { "Ounderbar", XK_icircumflex, 1 }, { "Punderbar", XK_idiaeresis, 1 }, { "Qunderbar", XK_igrave, 1 }, { "Runderbar", XK_ssharp, 1 }, { "Sunderbar", XK_Acircumflex, 1 }, { "Tunderbar", XK_Adiaeresis, 1 }, { "Uunderbar", XK_Agrave, 1 }, { "Vunderbar", XK_Aacute, 1 }, { "Wunderbar", XK_Atilde, 1 }, { "Xunderbar", XK_Aring, 1 }, { "Yunderbar", XK_Ccedilla, 1 }, { "Zunderbar", XK_Ntilde, 1 }, { "alpha", XK_asciicircum, 1 }, { "bar", XK_minus, 0 }, { "braceleft", XK_braceleft, 1 }, { "braceright", XK_braceright, 1 }, { "bracketleft", XK_Yacute, 1 }, { "bracketright", XK_diaeresis, 1 }, { "circle", XK_cedilla, 1 }, { "circlebar", XK_Ograve, 1 }, { "circleslope", XK_otilde, 1 }, { "circlestar", XK_Ugrave, 1 }, { "circlestile", XK_ograve, 1 }, { "colon", XK_colon, 0 }, { "comma", XK_comma, 0 }, { "commabar", XK_W, 1 }, /* soliton */ { "del", XK_bracketleft, 1 }, { "delstile", XK_udiaeresis, 1 }, { "delta", XK_bracketright, 1 }, { "deltastile", XK_ugrave, 1 }, { "deltaunderbar", XK_Udiaeresis, 1 }, { "deltilde", XK_Ucircumflex, 1 }, { "diaeresis", XK_Ecircumflex, 1 }, { "diaeresiscircle", XK_V, 1 }, /* soliton */ { "diaeresisdot", XK_Odiaeresis, 1 }, { "diaeresisjot", XK_U, 1 }, /* soliton */ { "diamond", XK_oslash, 1 }, { "dieresis", XK_Ecircumflex, 1 }, { "dieresisdot", XK_Odiaeresis, 1 }, { "divide", XK_onehalf, 1 }, { "dot", XK_period, 0 }, { "downarrow", XK_guillemotright, 1 }, { "downcaret", XK_Igrave, 1 }, { "downcarettilde", XK_ocircumflex, 1 }, { "downshoe", XK_questiondown, 1 }, { "downstile", XK_thorn, 1 }, { "downtack", XK_ETH, 1 }, { "downtackjot", XK_Uacute, 1 }, { "downtackup", XK_onesuperior, 1 }, { "downtackuptack", XK_onesuperior, 1 }, { "epsilon", XK_sterling, 1 }, { "epsilonunderbar", XK_Iacute, 1 }, { "equal", XK_equal, 0 }, { "equalunderbar", XK_backslash, 1 }, { "euro", XK_X, 1 }, /* soliton */ { "greater", XK_greater, 0 }, { "iota", XK_yen, 1 }, { "iotaunderbar", XK_Egrave, 1 }, { "jot", XK_registered, 1 }, { "leftarrow", XK_currency, 1 }, { "leftbracket", XK_Yacute, 1 }, { "leftparen", XK_parenleft, 0 }, { "leftshoe", XK_masculine, 1 }, { "lefttack", XK_Icircumflex, 1 }, { "less", XK_less, 0 }, { "multiply", XK_paragraph, 1 }, { "notequal", XK_acute, 1 }, { "notgreater", XK_eth, 1 }, { "notless", XK_THORN, 1 }, { "omega", XK_copyright, 1 }, { "overbar", XK_mu, 1 }, { "plus", XK_plus, 0 }, { "plusminus", XK_AE, 1 }, { "quad", XK_degree, 1 }, { "quaddivide", XK_Oacute, 1 }, { "quadjot", XK_Ediaeresis, 1 }, { "quadquote", XK_uacute, 1 }, { "quadslope", XK_oacute, 1 }, { "query", XK_question, 0 }, { "quote", XK_apostrophe, 0 }, { "quotedot", XK_ucircumflex, 1 }, { "rho", XK_periodcentered, 1 }, { "rightarrow", XK_plusminus, 1 }, { "rightbracket", XK_diaeresis, 1 }, { "rightparen", XK_parenright, 0 }, { "rightshoe", XK_ordfeminine, 1 }, { "righttack", XK_Idiaeresis, 1 }, { "semicolon", XK_semicolon, 0 }, { "slash", XK_slash, 0 }, { "slashbar", XK_twosuperior, 1 }, { "slope", XK_onequarter, 1 }, { "slopebar", XK_Ocircumflex, 1 }, { "slopequad", XK_oacute, 1 }, { "splat", XK_ae, 1 }, { "squad", XK_odiaeresis, 1 }, { "star", XK_asterisk, 0 }, { "stile", XK_multiply, 1 }, { "tilde", XK_Ooblique, 1 }, { "times", XK_paragraph, 1 }, { "underbar", XK_underscore, 0 }, { "uparrow", XK_guillemotleft, 1 }, { "upcaret", XK_Eacute, 1 }, { "upcarettilde", XK_hyphen, 1 }, { "upshoe", XK_exclamdown, 1 }, { "upshoejot", XK_ydiaeresis, 1 }, { "upstile", XK_yacute, 1 }, { "uptack", XK_macron, 1 }, { "uptackjot", XK_Otilde, 1 }, { 0, 0 } }; /* * Translation from APL ksysym names to indirect APL keysyms. */ KeySym APLStringToKeysym(char *s, int *is_gep) { register int i; if (strncmp(s, "apl_", 4)) return NoSymbol; s += 4; for (i = 0; axl[i].name; i++) if (!strcmp(axl[i].name, s)) { *is_gep = axl[i].is_ge; return axl[i].keysym; } return NoSymbol; } #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/statusc.h0000644000175000017500000000371311254565673016135 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display verson of statusc.h */ #define status_compose(on, c, keytype) #define status_typeahead(on) #define status_script(on) #define status_reverse_mode(on) #define status_insert_mode(on) #define status_syswait() #define status_reset() #define status_twait() #define status_oerr(error_type) #define status_timing(t0, t1) #define status_ctlr_done() #define status_untiming() #define status_kybdlock() #define status_minus() #define status_lu(lu) ibm-3270-3.3.10ga4/tcl3270/childc.h0000644000175000017500000000341211254565704015664 0ustar bastianbastian/* * Copyright (c) 2001-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * childc.h * Global declarations for child.c. */ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ extern int fork_child(void); extern void child_ignore_output(void); #else /*][*/ #define fork_child() fork() #define child_ignore_output() #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/charset.c0000644000175000017500000002167211254565704016072 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * charset.c * This module handles character sets. */ #include "globals.h" #include "3270ds.h" #include "resources.h" #include "appres.h" #include "cg.h" #include "charsetc.h" #include "kybdc.h" #include "popupsc.h" #if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) /*[*/ #include "screenc.h" #endif /*]*/ #include "tablesc.h" #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" #include "utilc.h" #include #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(__CYGWIN__) /*[*/ #include #undef _WIN32 #endif /*]*/ /* Globals. */ Boolean charset_changed = False; #define DEFAULT_CGEN 0x02b90000 #define DEFAULT_CSET 0x00000025 unsigned long cgcsgid = DEFAULT_CGEN | DEFAULT_CSET; unsigned long cgcsgid_dbcs = 0L; char *default_display_charset = "3270cg-1a,3270cg-1,iso8859-1"; /* Statics. */ static enum cs_result charset_init2(char *csname, const char *codepage, const char *cgcsgid, const char *display_charsets); static void set_cgcsgids(const char *spec); static int set_cgcsgid(char *spec, unsigned long *idp); static void set_host_codepage(char *codepage); static void set_charset_name(char *csname); static char *host_codepage = CN; static char *charset_name = CN; /* * Change character sets. */ enum cs_result charset_init(char *csname) { enum cs_result rc; #if !defined(_WIN32) /*[*/ char *codeset_name; #endif /*]*/ const char *codepage; const char *cgcsgid; const char *display_charsets; #if defined(X3270_DBCS) /*[*/ const char *dbcs_cgcsgid = NULL; const char *dbcs_display_charsets = NULL; Boolean need_free = False; #endif /*]*/ #if !defined(_WIN32) /*[*/ /* Get all of the locale stuff right. */ setlocale(LC_ALL, ""); /* Figure out the locale code set (character set encoding). */ codeset_name = nl_langinfo(CODESET); #if defined(__CYGWIN__) /*[*/ /* * Cygwin's locale support is quite limited. If the locale * indicates "US-ASCII", which appears to be the only supported * encoding, ignore it and use the Windows ANSI code page, which * observation indicates is what is actually supported. * * Hopefully at some point Cygwin will start returning something * meaningful here and this logic will stop triggering. */ if (!strcmp(codeset_name, "US-ASCII")) codeset_name = xs_buffer("CP%d", GetACP()); #endif /*]*/ set_codeset(codeset_name); #endif /*]*/ /* Do nothing, successfully. */ if (csname == CN || !strcasecmp(csname, "us")) { set_cgcsgids(CN); set_host_codepage(CN); set_charset_name(CN); #if defined(X3270_DISPLAY) /*[*/ (void) screen_new_display_charsets(default_display_charset, "us"); #endif /*]*/ (void) set_uni(CN, &codepage, &cgcsgid, &display_charsets); #if defined(X3270_DBCS) /*[*/ (void) set_uni_dbcs("", NULL, NULL); #endif /*]*/ return CS_OKAY; } if (set_uni(csname, &codepage, &cgcsgid, &display_charsets) < 0) return CS_NOTFOUND; if (appres.sbcs_cgcsgid != CN) cgcsgid = appres.sbcs_cgcsgid; /* override */ #if defined(X3270_DBCS) /*[*/ if (set_uni_dbcs(csname, &dbcs_cgcsgid, &dbcs_display_charsets) == 0) { if (appres.dbcs_cgcsgid != CN) dbcs_cgcsgid = appres.dbcs_cgcsgid; /* override */ cgcsgid = xs_buffer("%s+%s", cgcsgid, dbcs_cgcsgid); display_charsets = xs_buffer("%s+%s", display_charsets, dbcs_display_charsets); need_free = True; } #endif /*]*/ rc = charset_init2(csname, codepage, cgcsgid, display_charsets); #if defined(X3270_DBCS) /*[*/ if (need_free) { Free((char *)cgcsgid); Free((char *)display_charsets); } #endif /*]*/ if (rc != CS_OKAY) { return rc; } return CS_OKAY; } /* Set a CGCSGID. Return 0 for success, -1 for failure. */ static int set_cgcsgid(char *spec, unsigned long *r) { unsigned long cp; char *ptr; if (spec != CN && (cp = strtoul(spec, &ptr, 0)) && ptr != spec && *ptr == '\0') { if (!(cp & ~0xffffL)) *r = DEFAULT_CGEN | cp; else *r = cp; return 0; } else return -1; } /* Set the CGCSGIDs. */ static void set_cgcsgids(const char *spec) { int n_ids = 0; char *spec_copy; char *buf; char *token; if (spec != CN) { buf = spec_copy = NewString(spec); while (n_ids >= 0 && (token = strtok(buf, "+")) != CN) { unsigned long *idp = NULL; buf = CN; switch (n_ids) { case 0: idp = &cgcsgid; break; #if defined(X3270_DBCS) /*[*/ case 1: idp = &cgcsgid_dbcs; break; #endif /*]*/ default: popup_an_error("Extra CGCSGID(s), ignoring"); break; } if (idp == NULL) break; if (set_cgcsgid(token, idp) < 0) { popup_an_error("Invalid CGCSGID '%s', ignoring", token); n_ids = -1; break; } n_ids++; } Free(spec_copy); if (n_ids > 0) return; } if (appres.sbcs_cgcsgid != CN) cgcsgid = strtoul(appres.sbcs_cgcsgid, NULL, 0); else cgcsgid = DEFAULT_CGEN | DEFAULT_CSET; #if defined(X3270_DBCS) /*[*/ if (appres.dbcs_cgcsgid != CN) cgcsgid_dbcs = strtoul(appres.dbcs_cgcsgid, NULL, 0); else cgcsgid_dbcs = 0L; #endif /*]*/ } /* Set the host codepage. */ static void set_host_codepage(char *codepage) { if (codepage == CN) { Replace(host_codepage, NewString("037")); return; } if (host_codepage == CN || strcmp(host_codepage, codepage)) { Replace(host_codepage, NewString(codepage)); } } /* Set the global charset name. */ static void set_charset_name(char *csname) { if (csname == CN) { Replace(charset_name, NewString("us")); charset_changed = False; return; } if ((charset_name != CN && strcmp(charset_name, csname)) || (appres.charset != CN && strcmp(appres.charset, csname))) { Replace(charset_name, NewString(csname)); charset_changed = True; } } /* Character set init, part 2. */ static enum cs_result charset_init2(char *csname, const char *codepage, const char *cgcsgid, const char *display_charsets) { const char *rcs = display_charsets; int n_rcs = 0; char *rcs_copy, *buf, *token; /* Isolate the pieces. */ buf = rcs_copy = NewString(rcs); while ((token = strtok(buf, "+")) != CN) { buf = CN; switch (n_rcs) { case 0: #if defined(X3270_DBCS) /*[*/ case 1: #endif /*]*/ break; default: popup_an_error("Extra charset value(s), ignoring"); break; } n_rcs++; } Free(rcs_copy); #if defined(X3270_DBCS) /*[*/ /* Can't swap DBCS modes while connected. */ if (IN_3270 && (n_rcs == 2) != dbcs) { popup_an_error("Can't change DBCS modes while connected"); return CS_ILLEGAL; } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ if (!screen_new_display_charsets( rcs? rcs: default_display_charset, csname)) { return CS_PREREQ; } #else /*][*/ #if defined(X3270_DBCS) /*[*/ if (n_rcs > 1) dbcs = True; else dbcs = False; #endif /*]*/ #endif /*]*/ /* Set up the cgcsgids. */ set_cgcsgids(cgcsgid); /* Set up the host code page. */ set_host_codepage((char *)codepage); /* Set up the character set name. */ set_charset_name(csname); return CS_OKAY; } /* Return the current host codepage. */ char * get_host_codepage(void) { return (host_codepage != CN)? host_codepage: "037"; } /* Return the current character set name. */ char * get_charset_name(void) { return (charset_name != CN)? charset_name: ((appres.charset != CN)? appres.charset: "us"); } ibm-3270-3.3.10ga4/tcl3270/ft_cut.c0000644000175000017500000004436311254565704015727 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ft_cut.c * File transfer, data movement logic, CUT version */ #include #include "globals.h" #if defined(X3270_FT) /*[*/ #include "appres.h" #include "ctlr.h" #include "3270ds.h" #include "actionsc.h" #include "charsetc.h" #include "ctlrc.h" #include "ft_cutc.h" #include "ft_cut_ds.h" #include "ftc.h" #include "kybdc.h" #include "popupsc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" static Boolean cut_xfer_in_progress = False; /* Data stream conversion tables. */ #define NQ 4 /* number of quadrants */ #define NE 77 /* number of elements per quadrant */ #define OTHER_2 2 /* "OTHER 2" quadrant (includes NULL) */ #define XLATE_NULL 0xc1 /* translation of NULL */ static char alphas[NE + 1] = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%&_()<+,-./:>?"; static struct { unsigned char selector; unsigned char xlate[NE]; } conv[NQ] = { { 0x5e, /* ';' */ { 0x40,0xc1,0xc2,0xc3, 0xc4,0xc5,0xc6,0xc7, 0xc8,0xc9,0xd1,0xd2, 0xd3,0xd4,0xd5,0xd6, 0xd7,0xd8,0xd9,0xe2, 0xe3,0xe4,0xe5,0xe6, 0xe7,0xe8,0xe9,0x81, 0x82,0x83,0x84,0x85, 0x86,0x87,0x88,0x89, 0x91,0x92,0x93,0x94, 0x95,0x96,0x97,0x98, 0x99,0xa2,0xa3,0xa4, 0xa5,0xa6,0xa7,0xa8, 0xa9,0xf0,0xf1,0xf2, 0xf3,0xf4,0xf5,0xf6, 0xf7,0xf8,0xf9,0x6c, 0x50,0x6d,0x4d,0x5d, 0x4c,0x4e,0x6b,0x60, 0x4b,0x61,0x7a,0x6e, 0x6f } }, { 0x7e, /* '=' */ { 0x20,0x41,0x42,0x43, 0x44,0x45,0x46,0x47, 0x48,0x49,0x4a,0x4b, 0x4c,0x4d,0x4e,0x4f, 0x50,0x51,0x52,0x53, 0x54,0x55,0x56,0x57, 0x58,0x59,0x5a,0x61, 0x62,0x63,0x64,0x65, 0x66,0x67,0x68,0x69, 0x6a,0x6b,0x6c,0x6d, 0x6e,0x6f,0x70,0x71, 0x72,0x73,0x74,0x75, 0x76,0x77,0x78,0x79, 0x7a,0x30,0x31,0x32, 0x33,0x34,0x35,0x36, 0x37,0x38,0x39,0x25, 0x26,0x27,0x28,0x29, 0x2a,0x2b,0x2c,0x2d, 0x2e,0x2f,0x3a,0x3b, 0x3f } }, { 0x5c, /* '*' */ { 0x00,0x00,0x01,0x02, 0x03,0x04,0x05,0x06, 0x07,0x08,0x09,0x0a, 0x0b,0x0c,0x0d,0x0e, 0x0f,0x10,0x11,0x12, 0x13,0x14,0x15,0x16, 0x17,0x18,0x19,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x3c,0x3d,0x3e, 0x00,0xfa,0xfb,0xfc, 0xfd,0xfe,0xff,0x7b, 0x7c,0x7d,0x7e,0x7f, 0x1a,0x1b,0x1c,0x1d, 0x1e,0x1f,0x00,0x00, 0x00 } }, { 0x7d, /* '\'' */ { 0x00,0xa0,0xa1,0xea, 0xeb,0xec,0xed,0xee, 0xef,0xe0,0xe1,0xaa, 0xab,0xac,0xad,0xae, 0xaf,0xb0,0xb1,0xb2, 0xb3,0xb4,0xb5,0xb6, 0xb7,0xb8,0xb9,0x80, 0x00,0xca,0xcb,0xcc, 0xcd,0xce,0xcf,0xc0, 0x00,0x8a,0x8b,0x8c, 0x8d,0x8e,0x8f,0x90, 0x00,0xda,0xdb,0xdc, 0xdd,0xde,0xdf,0xd0, 0x00,0x00,0x21,0x22, 0x23,0x24,0x5b,0x5c, 0x00,0x5e,0x5f,0x00, 0x9c,0x9d,0x9e,0x9f, 0xba,0xbb,0xbc,0xbd, 0xbe,0xbf,0x9a,0x9b, 0x00 } } }; static char table6[] = "abcdefghijklmnopqrstuvwxyz&-.,:+ABCDEFGHIJKLMNOPQRSTUVWXYZ012345"; static int quadrant = -1; static unsigned long expanded_length; static char *saved_errmsg = CN; #define XLATE_NBUF 32 static int xlate_buffered = 0; /* buffer count */ static int xlate_buf_ix = 0; /* buffer index */ static unsigned char xlate_buf[XLATE_NBUF]; /* buffer */ static void cut_control_code(void); static void cut_data_request(void); static void cut_retransmit(void); static void cut_data(void); static void cut_ack(void); static void cut_abort(const char *s, unsigned short reason); static unsigned from6(unsigned char c); /*static*/ int xlate_getc(void); /* * Convert a buffer for uploading (host->local). * Returns the length of the converted data. * If there is a conversion error, calls cut_abort() and returns -1. */ static int upload_convert(unsigned char *buf, int len, unsigned char *obuf, int obuf_len) { unsigned char *ob0 = obuf; unsigned char *ob = ob0; int nx; while (len-- && obuf_len) { unsigned char c = *buf++; char *ixp; int ix; int oq = -1; retry: if (quadrant < 0) { /* Find the quadrant. */ for (quadrant = 0; quadrant < NQ; quadrant++) { if (c == conv[quadrant].selector) break; } if (quadrant >= NQ) { cut_abort(get_message("ftCutConversionError"), SC_ABORT_XMIT); return -1; } continue; } /* Make sure it's in a valid range. */ if (c < 0x40 || c > 0xf9) { cut_abort(get_message("ftCutConversionError"), SC_ABORT_XMIT); return -1; } /* Translate to a quadrant index. */ ixp = strchr(alphas, ebc2asc0[c]); if (ixp == (char *)NULL) { /* Try a different quadrant. */ oq = quadrant; quadrant = -1; goto retry; } ix = ixp - alphas; /* * See if it's mapped by that quadrant, handling NULLs * specially. */ if (quadrant != OTHER_2 && c != XLATE_NULL && !conv[quadrant].xlate[ix]) { /* Try a different quadrant. */ oq = quadrant; quadrant = -1; goto retry; } /* Map it. */ c = conv[quadrant].xlate[ix]; if (ascii_flag && cr_flag && (c == '\r' || c == 0x1a)) continue; if (!(ascii_flag && remap_flag)) { /* No further translation necessary. */ *ob++ = c; obuf_len--; continue; } /* * Convert to local multi-byte. * We do that by inverting the host's EBCDIC-to-ASCII map, * getting back to EBCDIC, and converting to multi-byte from * there. */ #if defined(X3270_DBCS) /*[*/ switch (ft_dbcs_state) { case FT_DBCS_NONE: if (c == EBC_so) { ft_dbcs_state = FT_DBCS_SO; continue; } /* fall through to non-DBCS case below */ break; case FT_DBCS_SO: if (c == EBC_si) ft_dbcs_state = FT_DBCS_NONE; else { ft_dbcs_byte1 = i_asc2ft[c]; ft_dbcs_state = FT_DBCS_LEFT; } continue; case FT_DBCS_LEFT: if (c == EBC_si) { ft_dbcs_state = FT_DBCS_NONE; continue; } nx = ebcdic_to_multibyte((ft_dbcs_byte1 << 8) | i_asc2ft[c], (char *)ob, obuf_len); if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; ft_dbcs_state = FT_DBCS_SO; continue; } #endif /*]*/ if (c < 0x20 || ((c >= 0x80 && c < 0xa0 && c != 0x9f))) { /* * Control code, treat it as Unicode. * * Note that IND$FILE and the VM 'TYPE' command think * that EBCDIC X'E1' is a control code; IND$FILE maps * it onto ASCII 0x9f. So we skip it explicitly and * treat it as printable here. */ nx = unicode_to_multibyte(c, (char *)ob, obuf_len); } else if (c == 0xff) { nx = unicode_to_multibyte(0x9f, (char *)ob, obuf_len); } else { /* Displayable character, remap. */ c = i_asc2ft[c]; nx = ebcdic_to_multibyte(c, (char *)ob, obuf_len); } if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; } return ob - ob0; } /* * Store a download (local->host) character. * Returns the number of bytes stored. */ static int store_download(unsigned char c, unsigned char *ob) { unsigned char *ixp; unsigned ix; int oq; /* Quadrant already defined. */ if (quadrant >= 0) { ixp = (unsigned char *)memchr(conv[quadrant].xlate, c, NE); if (ixp != (unsigned char *)NULL) { ix = ixp - conv[quadrant].xlate; *ob++ = asc2ebc0[(int)alphas[ix]]; return 1; } } /* Locate a quadrant. */ oq = quadrant; for (quadrant = 0; quadrant < NQ; quadrant++) { if (quadrant == oq) continue; ixp = (unsigned char *)memchr(conv[quadrant].xlate, c, NE); if (ixp == (unsigned char *)NULL) continue; ix = ixp - conv[quadrant].xlate; *ob++ = conv[quadrant].selector; *ob++ = asc2ebc0[(int)alphas[ix]]; return 2; } quadrant = -1; fprintf(stderr, "Oops\n"); return 0; } /* Convert a buffer for downloading (local->host). */ /*static*/ int download_convert(unsigned const char *buf, unsigned len, unsigned char *xobuf) { unsigned char *ob0 = xobuf; unsigned char *ob = ob0; while (len) { unsigned char c = *buf; int consumed; enum me_fail error; ebc_t e; ucs4_t u; /* Handle nulls separately. */ if (!c) { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { ob += store_download(EBC_si, ob); ft_last_dbcs = False; } #endif /*]*/ if (quadrant != OTHER_2) { quadrant = OTHER_2; *ob++ = conv[quadrant].selector; } *ob++ = XLATE_NULL; buf++; len--; continue; } if (!(ascii_flag && remap_flag)) { ob += store_download(c, ob); buf++; len--; continue; } /* * Translate. * * The host uses a fixed EBCDIC-to-ASCII translation table, * which was derived empirically into i_ft2asc/i_asc2ft. * Invert that so that when the host applies its conversion, * it gets the right EBCDIC code. * * DBCS is a guess at this point, assuming that SO and SI * are unmodified by IND$FILE. */ u = multibyte_to_unicode((const char *)buf, len, &consumed, &error); if (u < 0x20 || ((u >= 0x80 && u < 0x9f))) e = i_asc2ft[u]; else if (u == 0x9f) e = 0xff; else e = unicode_to_ebcdic(u); if (e & 0xff00) { #if defined(X3270_DBCS) /*[*/ if (!ft_last_dbcs) ob += store_download(EBC_so, ob); ob += store_download(i_ft2asc[(e >> 8) & 0xff], ob); ob += store_download(i_ft2asc[e & 0xff], ob); ft_last_dbcs = True; #else /*][*/ ob += store_download('?', ob); #endif /*]*/ } else { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { ob += store_download(EBC_si, ob); ft_last_dbcs = False; } #endif /*]*/ if (e == 0) { ob += store_download('?', ob); } else { ob += store_download(i_ft2asc[e], ob); } } buf += consumed; len -= consumed; } return ob - ob0; } /* * Main entry point from ctlr.c. * We have received what looks like an appropriate message from the host. */ void ft_cut_data(void) { switch (ea_buf[O_FRAME_TYPE].cc) { case FT_CONTROL_CODE: cut_control_code(); break; case FT_DATA_REQUEST: cut_data_request(); break; case FT_RETRANSMIT: cut_retransmit(); break; case FT_DATA: cut_data(); break; default: trace_ds("< FT unknown 0x%02x\n", ea_buf[O_FRAME_TYPE].cc); cut_abort(get_message("ftCutUnknownFrame"), SC_ABORT_XMIT); break; } } /* * Process a control code from the host. */ static void cut_control_code(void) { unsigned short code; char *buf; char *bp; int i; trace_ds("< FT CONTROL_CODE "); code = (ea_buf[O_CC_STATUS_CODE].cc << 8) | ea_buf[O_CC_STATUS_CODE + 1].cc; switch (code) { case SC_HOST_ACK: trace_ds("HOST_ACK\n"); cut_xfer_in_progress = True; expanded_length = 0; quadrant = -1; xlate_buffered = 0; cut_ack(); ft_running(True); break; case SC_XFER_COMPLETE: trace_ds("XFER_COMPLETE\n"); cut_ack(); cut_xfer_in_progress = False; ft_complete((String)NULL); break; case SC_ABORT_FILE: case SC_ABORT_XMIT: trace_ds("ABORT\n"); cut_xfer_in_progress = False; cut_ack(); if (ft_state == FT_ABORT_SENT && saved_errmsg != CN) { buf = saved_errmsg; saved_errmsg = CN; } else { int mb_len = 161; bp = buf = Malloc(mb_len); for (i = 0; i < 80; i++) { int xlen; xlen = ebcdic_to_multibyte( ea_buf[O_CC_MESSAGE + i].cc, bp, mb_len); if (xlen) { bp += xlen - 1; mb_len -= xlen - 1; } } *bp-- = '\0'; while (bp >= buf && *bp == ' ') *bp-- = '\0'; if (bp >= buf && *bp == '$') *bp-- = '\0'; while (bp >= buf && *bp == ' ') *bp-- = '\0'; if (!*buf) strcpy(buf, get_message("ftHostCancel")); } ft_complete(buf); Free(buf); break; default: trace_ds("unknown 0x%04x\n", code); cut_abort(get_message("ftCutUnknownControl"), SC_ABORT_XMIT); break; } } /* * Process a data request from the host. */ static void cut_data_request(void) { unsigned char seq = ea_buf[O_DR_FRAME_SEQ].cc; int count; unsigned char cs; int c; int i; unsigned char attr; trace_ds("< FT DATA_REQUEST %u\n", from6(seq)); if (ft_state == FT_ABORT_WAIT) { cut_abort(get_message("ftUserCancel"), SC_ABORT_FILE); return; } /* Copy data into the screen buffer. */ count = 0; while (count < O_UP_MAX && (c = xlate_getc()) != EOF) { ctlr_add(O_UP_DATA + count, c, 0); count++; } /* Check for errors. */ if (ferror(ft_local_file)) { int j; char *msg; /* Clean out any data we may have written. */ for (j = 0; j < count; j++) ctlr_add(O_UP_DATA + j, 0, 0); /* Abort the transfer. */ msg = xs_buffer("read(%s): %s", ft_local_filename, strerror(errno)); cut_abort(msg, SC_ABORT_FILE); Free(msg); return; } /* Send special data for EOF. */ if (!count && feof(ft_local_file)) { ctlr_add(O_UP_DATA, EOF_DATA1, 0); ctlr_add(O_UP_DATA+1, EOF_DATA2, 0); count = 2; } /* Compute the other fields. */ ctlr_add(O_UP_FRAME_SEQ, seq, 0); cs = 0; for (i = 0; i < count; i++) cs ^= ea_buf[O_UP_DATA + i].cc; ctlr_add(O_UP_CSUM, asc2ebc0[(int)table6[cs & 0x3f]], 0); ctlr_add(O_UP_LEN, asc2ebc0[(int)table6[(count >> 6) & 0x3f]], 0); ctlr_add(O_UP_LEN+1, asc2ebc0[(int)table6[count & 0x3f]], 0); /* XXX: Change the data field attribute so it doesn't display. */ attr = ea_buf[O_DR_SF].fa; attr = (attr & ~FA_INTENSITY) | FA_INT_ZERO_NSEL; ctlr_add_fa(O_DR_SF, attr, 0); /* Send it up to the host. */ trace_ds("> FT DATA %u\n", from6(seq)); ft_update_length(); expanded_length += count; action_internal(Enter_action, IA_FT, CN, CN); } /* * (Improperly) process a retransmit from the host. */ static void cut_retransmit(void) { trace_ds("< FT RETRANSMIT\n"); cut_abort(get_message("ftCutRetransmit"), SC_ABORT_XMIT); } /* * Convert an encoded integer. */ static unsigned from6(unsigned char c) { char *p; c = ebc2asc0[c]; p = strchr(table6, c); if (p == CN) return 0; return p - table6; } /* * Process data from the host. */ static void cut_data(void) { static unsigned char cvbuf[O_RESPONSE - O_DT_DATA]; static unsigned char cvobuf[4 * (O_RESPONSE - O_DT_DATA)]; unsigned short raw_length; int conv_length; register int i; trace_ds("< FT DATA\n"); if (ft_state == FT_ABORT_WAIT) { cut_abort(get_message("ftUserCancel"), SC_ABORT_FILE); return; } /* Copy and convert the data. */ raw_length = from6(ea_buf[O_DT_LEN].cc) << 6 | from6(ea_buf[O_DT_LEN + 1].cc); if ((int)raw_length > O_RESPONSE - O_DT_DATA) { cut_abort(get_message("ftCutOversize"), SC_ABORT_XMIT); return; } for (i = 0; i < (int)raw_length; i++) cvbuf[i] = ea_buf[O_DT_DATA + i].cc; if (raw_length == 2 && cvbuf[0] == EOF_DATA1 && cvbuf[1] == EOF_DATA2) { trace_ds("< FT EOF\n"); cut_ack(); return; } conv_length = upload_convert(cvbuf, raw_length, cvobuf, sizeof(cvobuf)); if (conv_length < 0) return; /* Write it to the file. */ if (fwrite((char *)cvobuf, conv_length, 1, ft_local_file) == 0) { char *msg; msg = xs_buffer("write(%s): %s", ft_local_filename, strerror(errno)); cut_abort(msg, SC_ABORT_FILE); Free(msg); } else { ft_length += conv_length; ft_update_length(); cut_ack(); } } /* * Acknowledge a host command. */ static void cut_ack(void) { trace_ds("> FT ACK\n"); action_internal(Enter_action, IA_FT, CN, CN); } /* * Abort a transfer in progress. */ static void cut_abort(const char *s, unsigned short reason) { /* Save the error message. */ Replace(saved_errmsg, NewString(s)); /* Send the abort sequence. */ ctlr_add(RO_FRAME_TYPE, RFT_CONTROL_CODE, 0); ctlr_add(RO_FRAME_SEQ, ea_buf[O_DT_FRAME_SEQ].cc, 0); ctlr_add(RO_REASON_CODE, HIGH8(reason), 0); ctlr_add(RO_REASON_CODE+1, LOW8(reason), 0); trace_ds("> FT CONTROL_CODE ABORT\n"); action_internal(PF_action, IA_FT, "2", CN); /* Update the in-progress pop-up. */ ft_aborting(); } /* * Get the next translated character from the local file. * Returns the character (in EBCDIC), or EOF. */ /*static*/ int xlate_getc(void) { int r; int c; unsigned char cbuf[32]; int nc; int consumed; enum me_fail error; char mb[16]; int mb_len = 0; /* If there is a data buffered, return it. */ if (xlate_buffered) { r = xlate_buf[xlate_buf_ix]; xlate_buf_ix++; xlate_buffered--; return r; } if (ascii_flag) { /* * Get the next (possibly multi-byte) character from the file. */ do { c = fgetc(ft_local_file); if (c == EOF) { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { ft_last_dbcs = False; return EBC_si; } #endif /*]*/ return c; } ft_length++; mb[mb_len++] = c; error = ME_NONE; (void) multibyte_to_unicode(mb, mb_len, &consumed, &error); if (error == ME_INVALID) return -1; } while (error == ME_SHORT); /* Expand it. */ if (ascii_flag && cr_flag && !ft_last_cr && c == '\n') { nc = download_convert((unsigned const char *)"\r", 1, cbuf); } else { nc = 0; ft_last_cr = (c == '\r'); } } else { /* Binary, just read it. */ c = fgetc(ft_local_file); if (c == EOF) return c; mb[0] = c; mb_len = 1; nc = 0; ft_length++; } /* Convert it. */ nc += download_convert((unsigned char *)mb, mb_len, &cbuf[nc]); /* Return it and buffer what's left. */ r = cbuf[0]; if (nc > 1) { int i; for (i = 1; i < nc; i++) xlate_buf[xlate_buffered++] = cbuf[i]; xlate_buf_ix = 0; } return r; } #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/version.txt0000755000175000017500000000004611261527637016517 0ustar bastianbastianversion="3.3.10ga4" adversion="3.3.4" ibm-3270-3.3.10ga4/tcl3270/readresc.h0000644000175000017500000000355611254565704016237 0ustar bastianbastian/* * Copyright (c) 2009, Paul Mattes. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * readresc.h * A displayless 3270 Terminal Emulator * Header for resource file reader. */ typedef void (rrf_t)(const char *, const char *); extern int validate_and_split_resource(const char *where, const char *arg, const char **left, unsigned *rnlenp, const char **right); extern int read_resource_filex(const char *filename, Boolean fatal, rrf_t *rrf); ibm-3270-3.3.10ga4/tcl3270/actions.c0000644000175000017500000005370511254565704016103 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * actions.c * The X actions table and action debugging code. */ #include "globals.h" #include "appres.h" #include "actionsc.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "printc.h" #include "resources.h" #include "selectc.h" #include "togglesc.h" #include "trace_dsc.h" #include "utilc.h" #include "xioc.h" #if defined(X3270_FT) /*[*/ #include "ftc.h" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ #include "keypadc.h" #include "menubarc.h" #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) || defined(WC3270) /*[*/ #include "screenc.h" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ #include #define MODMAP_SIZE 8 #define MAP_SIZE 13 #define MAX_MODS_PER 4 static struct { const char *name[MAX_MODS_PER]; unsigned int mask; Boolean is_meta; } skeymask[MAP_SIZE] = { { { "Shift" }, ShiftMask, False }, { { (char *)NULL } /* Lock */, LockMask, False }, { { "Ctrl" }, ControlMask, False }, { { CN }, Mod1Mask, False }, { { CN }, Mod2Mask, False }, { { CN }, Mod3Mask, False }, { { CN }, Mod4Mask, False }, { { CN }, Mod5Mask, False }, { { "Button1" }, Button1Mask, False }, { { "Button2" }, Button2Mask, False }, { { "Button3" }, Button3Mask, False }, { { "Button4" }, Button4Mask, False }, { { "Button5" }, Button5Mask, False } }; static Boolean know_mods = False; #endif /*]*/ XtActionsRec all_actions[] = { #if defined(C3270) && defined(X3270_SCRIPT) /*[*/ { "Abort", Abort_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "AltCursor", AltCursor_action }, #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ { "Compose", Compose_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "Cut", Cut_action }, { "Default", Default_action }, { "HandleMenu", HandleMenu_action }, { "HardPrint", PrintText_action }, { "HexString", HexString_action }, #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ { "Info", Info_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "Keymap", TemporaryKeymap_action }, { PA_PFX "ConfigureNotify", PA_ConfigureNotify_action }, { PA_END, PA_End_action }, #endif /*]*/ #if defined(C3270) /*[*/ { "Escape", Escape_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { PA_PFX "EnterLeave", PA_EnterLeave_action }, { PA_PFX "Expose", PA_Expose_action }, { PA_PFX "Focus", PA_Focus_action }, { PA_PFX "GraphicsExpose", PA_GraphicsExpose_action }, { PA_PFX "KeymapNotify", PA_KeymapNotify_action }, # if defined(X3270_TRACE) /*[*/ { PA_KEYMAP_TRACE, PA_KeymapTrace_action }, # endif /*]*/ { PA_PFX "Shift", PA_Shift_action }, { PA_PFX "StateChanged", PA_StateChanged_action }, { PA_PFX "VisibilityNotify",PA_VisibilityNotify_action }, { PA_PFX "WMProtocols", PA_WMProtocols_action }, { PA_PFX "confirm", PA_confirm_action }, { "PrintWindow", PrintWindow_action }, #endif /*]*/ { "PrintText", PrintText_action }, #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ { "Flip", Flip_action }, { "Redraw", Redraw_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "SetFont", SetFont_action }, { "TemporaryKeymap", TemporaryKeymap_action }, # if defined(X3270_FT) && defined(X3270_MENUS) /*[*/ { PA_PFX "dialog-next", PA_dialog_next_action }, { PA_PFX "dialog-focus", PA_dialog_focus_action }, # endif /*]*/ { "insert-selection", insert_selection_action }, { "move-select", move_select_action }, { "select-end", select_end_action }, { "select-extend", select_extend_action }, { "select-start", select_start_action }, { "set-select", set_select_action }, { "start-extend", start_extend_action }, #endif /*]*/ #if defined(X3270_SCRIPT) || defined(S3270) /*[*/ { "AnsiText", AnsiText_action }, #endif /*]*/ { "Ascii", Ascii_action }, { "AsciiField", AsciiField_action }, { "Attn", Attn_action }, { "BackSpace", BackSpace_action }, { "BackTab", BackTab_action }, #if defined(X3270_SCRIPT) && (defined(X3270_DISPLAY) || defined(C3270)) /*[*/ { "Bell", Bell_action }, #endif /*]*/ { "CircumNot", CircumNot_action }, { "Clear", Clear_action }, #if defined(C3270) /*[*/ { "Close", Disconnect_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "CloseScript", CloseScript_action }, #endif /*]*/ { "Connect", Connect_action }, #if defined(X3270_SCRIPT) /*[*/ { "ContinueScript", ContinueScript_action }, #endif /*]*/ { "CursorSelect", CursorSelect_action }, { "Delete", Delete_action }, { "DeleteField", DeleteField_action }, { "DeleteWord", DeleteWord_action }, { "Disconnect", Disconnect_action }, { "Down", Down_action }, { "Dup", Dup_action }, { "Ebcdic", Ebcdic_action }, { "EbcdicField", EbcdicField_action }, { "Enter", Enter_action }, { "Erase", Erase_action }, { "EraseEOF", EraseEOF_action }, { "EraseInput", EraseInput_action }, #if defined(X3270_SCRIPT) /*[*/ { "Execute", Execute_action }, #endif /*]*/ #if defined(C3270) || defined(WC3270) /*[*/ { "Exit", Quit_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "Expect", Expect_action }, #endif /*]*/ { "FieldEnd", FieldEnd_action }, { "FieldMark", FieldMark_action }, { "HexString", HexString_action}, #if defined(C3270) || defined(WC3270) /*[*/ { "Help", Help_action}, #endif/*]*/ #if defined(X3270_SCRIPT) /*[*/ { "Plugin", Plugin_action}, #endif/*]*/ { "Home", Home_action }, { "Insert", Insert_action }, { "Interrupt", Interrupt_action }, { "Key", Key_action }, #if defined(X3270_DISPLAY) /*[*/ { "KybdSelect", KybdSelect_action }, #endif /*]*/ { "Left", Left_action }, { "Left2", Left2_action }, #if defined(X3270_SCRIPT) || defined(S3270) /*[*/ { "Macro", Macro_action }, #endif /*]*/ { "MonoCase", MonoCase_action }, #if defined(X3270_DISPLAY) /*[*/ { "MouseSelect", MouseSelect_action }, #endif /*]*/ { "MoveCursor", MoveCursor_action }, { "Newline", Newline_action }, { "NextWord", NextWord_action }, #if defined(C3270) || defined(WC3270) /*[*/ { "Open", Connect_action }, #endif /*]*/ { "PA", PA_action }, { "PF", PF_action }, #if defined(WC3270) /*[*/ { "Paste", Paste_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "PauseScript", PauseScript_action }, #endif /*]*/ { "PreviousWord", PreviousWord_action }, #if defined(X3270_PRINTER) /*[*/ { "Printer", Printer_action }, #endif /*]*/ #if defined(X3270_SCRIPT) || defined(S3270) /*[*/ { "Query", Query_action }, #endif /*]*/ { "Quit", Quit_action }, #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ { "ReadBuffer", ReadBuffer_action }, #endif /*]*/ #if defined(X3270_MENUS) /*[*/ { "Reconnect", Reconnect_action }, #endif /*]*/ { "Reset", Reset_action }, { "Right", Right_action }, { "Right2", Right2_action }, #if defined(X3270_DISPLAY) /*[*/ { "SelectAll", SelectAll_action }, { "SelectDown", SelectDown_action }, { "SelectMotion", SelectMotion_action }, { "SelectUp", SelectUp_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "Script", Script_action }, #endif /*]*/ #if defined(C3270) /*[*/ { "Show", Show_action }, #endif/*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ { "Snap", Snap_action }, #endif /*]*/ #if !defined(TCL3270) /*[*/ { "Source", Source_action }, #endif /*]*/ #if defined(TCL3270) /*[*/ { "Status", Status_action }, #endif /*]*/ { "String", String_action }, { "SysReq", SysReq_action }, { "Tab", Tab_action }, #if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ { "Title", Title_action }, #endif /*]*/ { "Toggle", Toggle_action }, { "ToggleInsert", ToggleInsert_action }, { "ToggleReverse", ToggleReverse_action }, #if defined(C3270) && defined(X3270_TRACE) /*[*/ { "Trace", Trace_action }, #endif/*]*/ #if defined(X3270_FT) /*[*/ { "Transfer", Transfer_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "Unselect", Unselect_action }, #endif /*]*/ { "Up", Up_action }, #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ { "Wait", Wait_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "WindowState", WindowState_action }, #endif /*]*/ { "ignore", ignore_action } }; int actioncount = XtNumber(all_actions); XtActionsRec *actions = NULL; /* Actions that are aliases for other actions. */ static char *aliased_actions[] = { "Close", "HardPrint", "Open", NULL }; enum iaction ia_cause; const char *ia_name[] = { "String", "Paste", "Screen redraw", "Keypad", "Default", "Key", "Macro", "Script", "Peek", "Typeahead", "File transfer", "Command", "Keymap", "Idle" }; /* No-op action for suppressed actions. */ static void suppressed_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(suppressed_action, event, params, num_params); } /* Look up an action name in the suppressed actions resource. */ static Boolean action_suppressed(String name, char *suppress) { char *s = suppress; char *t; while ((t = strstr(s, name)) != CN) { char b; char e = s[strlen(name)]; if (t == suppress) b = '\0'; else b = *(t - 1); if ((b == '\0' || b == ')' || isspace(b)) && (e == '\0' || e == '(' || isspace(e))) return True; s += strlen(name); } return False; } /* * Action table initialization. * Uses the suppressActions resource to prune the actions table. */ void action_init(void) { char *suppress; int i; /* See if there are any filters at all. */ suppress = get_resource(ResSuppressActions); if (suppress == CN) { actions = all_actions; return; } /* Yes, we'll need to copy the table and prune it. */ actions = (XtActionsRec *)Malloc(sizeof(all_actions)); memcpy(actions, all_actions, sizeof(all_actions)); for (i = 0; i < actioncount; i++) { if (action_suppressed(actions[i].string, suppress)) actions[i].proc = suppressed_action; } } /* * Return a name for an action. */ const char * action_name(XtActionProc action) { register int i; /* * XXX: It would be better if the real name could be displayed, with a * message indicating it is suppressed. */ if (action == suppressed_action) return "(suppressed)"; for (i = 0; i < actioncount; i++) if (actions[i].proc == action) { int j; Boolean aliased = False; for (j = 0; aliased_actions[j] != CN; j++) { if (!strcmp(aliased_actions[j], actions[i].string)) { aliased = True; break; } } if (!aliased) return actions[i].string; } return "(unknown)"; } #if defined(X3270_DISPLAY) /*[*/ /* * Search the modifier map to learn the modifier bits for Meta, Alt, Hyper and * Super. */ static void learn_modifiers(void) { XModifierKeymap *mm; int i, j, k; static char *default_modname[] = { CN, CN, "Ctrl", "Mod1", "Mod2", "Mod3", "Mod4", "Mod5", "Button1", "Button2", "Button3", "Button4", "Button5" }; mm = XGetModifierMapping(display); for (i = 0; i < MODMAP_SIZE; i++) { for (j = 0; j < mm->max_keypermod; j++) { KeyCode kc; const char *name = CN; Boolean is_meta = False; kc = mm->modifiermap[(i * mm->max_keypermod) + j]; if (!kc) continue; switch(XKeycodeToKeysym(display, kc, 0)) { case XK_Meta_L: case XK_Meta_R: name = "Meta"; is_meta = True; break; case XK_Alt_L: case XK_Alt_R: name = "Alt"; break; case XK_Super_L: case XK_Super_R: name = "Super"; break; case XK_Hyper_L: case XK_Hyper_R: name = "Hyper"; break; default: break; } if (name == CN) continue; if (is_meta) skeymask[i].is_meta = True; for (k = 0; k < MAX_MODS_PER; k++) { if (skeymask[i].name[k] == CN) break; else if (!strcmp(skeymask[i].name[k], name)) k = MAX_MODS_PER; } if (k >= MAX_MODS_PER) continue; skeymask[i].name[k] = name; } } for (i = 0; i < MODMAP_SIZE; i++) { if (skeymask[i].name[0] == CN) { skeymask[i].name[0] = default_modname[i]; } } XFreeModifiermap(mm); } #if defined(X3270_TRACE) /*[*/ /* * Return the symbolic name for the modifier combination (i.e., "Meta" instead * of "Mod2". Note that because it is possible to map multiple keysyms to the * same modifier bit, the answer may be ambiguous; we return the combinations * iteratively. */ static char * key_symbolic_state(unsigned int state, int *iteration) { static char rs[64]; static int ix[MAP_SIZE]; static int ix_ix[MAP_SIZE]; static int n_ix = 0; static int leftover = 0; const char *comma = ""; int i; if (!know_mods) { learn_modifiers(); know_mods = True; } if (*iteration == 0) { /* First time, build the table. */ n_ix = 0; for (i = 0; i < MAP_SIZE; i++) { if (skeymask[i].name[0] != CN && (state & skeymask[i].mask)) { ix[i] = 0; state &= ~skeymask[i].mask; ix_ix[n_ix++] = i; } else ix[i] = MAX_MODS_PER; } leftover = state; } /* Construct this result. */ rs[0] = '\0'; for (i = 0; i < n_ix; i++) { (void) strcat(rs, comma); (void) strcat(rs, skeymask[ix_ix[i]].name[ix[ix_ix[i]]]); comma = " "; } #if defined(VERBOSE_EVENTS) /*[*/ if (leftover) (void) sprintf(strchr(rs, '\0'), "%s?%d", comma, state); #endif /*]*/ /* * Iterate to the next. * This involves treating each slot like an n-ary number, where n is * the number of elements in the slot, iterating until the highest- * ordered slot rolls back over to 0. */ if (n_ix) { i = n_ix - 1; ix[ix_ix[i]]++; while (i >= 0 && (ix[ix_ix[i]] >= MAX_MODS_PER || skeymask[ix_ix[i]].name[ix[ix_ix[i]]] == CN)) { ix[ix_ix[i]] = 0; i = i - 1; if (i >= 0) ix[ix_ix[i]]++; } *iteration = i >= 0; } else *iteration = 0; return rs; } #endif /*]*/ /* Return whether or not an KeyPress event state includes the Meta key. */ Boolean event_is_meta(int state) { int i; /* Learn the modifier map. */ if (!know_mods) { learn_modifiers(); know_mods = True; } for (i = 0; i < MAP_SIZE; i++) { if (skeymask[i].name[0] != CN && skeymask[i].is_meta && (state & skeymask[i].mask)) { return True; } } return False; } #if defined(VERBOSE_EVENTS) /*[*/ static char * key_state(unsigned int state) { static char rs[64]; const char *comma = ""; static struct { const char *name; unsigned int mask; } keymask[] = { { "Shift", ShiftMask }, { "Lock", LockMask }, { "Control", ControlMask }, { "Mod1", Mod1Mask }, { "Mod2", Mod2Mask }, { "Mod3", Mod3Mask }, { "Mod4", Mod4Mask }, { "Mod5", Mod5Mask }, { "Button1", Button1Mask }, { "Button2", Button2Mask }, { "Button3", Button3Mask }, { "Button4", Button4Mask }, { "Button5", Button5Mask }, { CN, 0 }, }; int i; rs[0] = '\0'; for (i = 0; keymask[i].name; i++) { if (state & keymask[i].mask) { (void) strcat(rs, comma); (void) strcat(rs, keymask[i].name); comma = "|"; state &= ~keymask[i].mask; } } if (!rs[0]) (void) sprintf(rs, "%d", state); else if (state) (void) sprintf(strchr(rs, '\0'), "%s?%d", comma, state); return rs; } #endif /*]*/ #endif /*]*/ /* * Check the number of argument to an action, and possibly pop up a usage * message. * * Returns 0 if the argument count is correct, -1 otherwise. */ int check_usage(XtActionProc action, Cardinal nargs, Cardinal nargs_min, Cardinal nargs_max) { if (nargs >= nargs_min && nargs <= nargs_max) return 0; if (nargs_min == nargs_max) popup_an_error("%s requires %d argument%s", action_name(action), nargs_min, nargs_min == 1 ? "" : "s"); else popup_an_error("%s requires %d or %d arguments", action_name(action), nargs_min, nargs_max); cancel_if_idle_command(); return -1; } /* * Display an action debug message */ #if defined(X3270_TRACE) /*[*/ #define KSBUF 256 void action_debug(XtActionProc action, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; char pbuf[1024]; #if defined(X3270_DISPLAY) /*[*/ XKeyEvent *kevent; KeySym ks; XButtonEvent *bevent; XMotionEvent *mevent; XConfigureEvent *cevent; XClientMessageEvent *cmevent; XExposeEvent *exevent; const char *press = "Press"; const char *direction = "Down"; char dummystr[KSBUF+1]; char *atom_name; int ambiguous = 0; int state; const char *symname = ""; char snbuf[11]; #endif /*]*/ if (!toggled(EVENT_TRACE)) return; if (event == (XEvent *)NULL) { trace_event(" %s", ia_name[(int)ia_cause]); } #if defined(X3270_DISPLAY) /*[*/ else switch (event->type) { case KeyRelease: press = "Release"; case KeyPress: kevent = (XKeyEvent *)event; (void) XLookupString(kevent, dummystr, KSBUF, &ks, NULL); state = kevent->state; /* * If the keysym is a printable ASCII character, ignore the * Shift key. */ if (ks != ' ' && !(ks & ~0xff) && isprint(ks)) state &= ~ShiftMask; if (ks == NoSymbol) symname = "NoSymbol"; else if ((symname = XKeysymToString(ks)) == CN) { (void) sprintf(snbuf, "0x%lx", (unsigned long)ks); symname = snbuf; } do { int was_ambiguous = ambiguous; trace_event("%s ':%s%s'", was_ambiguous? " or": "Event", key_symbolic_state(state, &ambiguous), press, symname); } while (ambiguous); /* * If the keysym is an alphanumeric ASCII character, show the * case-insensitive alternative, sans the colon. */ if (!(ks & ~0xff) && isalpha(ks)) { ambiguous = 0; do { int was_ambiguous = ambiguous; trace_event(" %s '%s%s'", was_ambiguous? "or": "(case-insensitive:", key_symbolic_state(state, &ambiguous), press, symname); } while (ambiguous); trace_event(")"); } #if defined(VERBOSE_EVENTS) /*[*/ trace_event("\nKey%s [state %s, keycode %d, keysym " "0x%lx \"%s\"]", press, key_state(kevent->state), kevent->keycode, ks, symname); #endif /*]*/ break; case ButtonRelease: press = "Release"; direction = "Up"; case ButtonPress: bevent = (XButtonEvent *)event; do { int was_ambiguous = ambiguous; trace_event("%s '%s'", was_ambiguous? " or": "Event", key_symbolic_state(bevent->state, &ambiguous), bevent->button, direction); } while (ambiguous); #if defined(VERBOSE_EVENTS) /*[*/ trace_event("\nButton%s [state %s, button %d]", press, key_state(bevent->state), bevent->button); #endif /*]*/ break; case MotionNotify: mevent = (XMotionEvent *)event; do { int was_ambiguous = ambiguous; trace_event("%s '%s'", was_ambiguous? " or": "Event", key_symbolic_state(mevent->state, &ambiguous)); } while (ambiguous); #if defined(VERBOSE_EVENTS) /*[*/ trace_event("\nMotionNotify [state %s]", key_state(mevent->state)); #endif /*]*/ break; case EnterNotify: trace_event("EnterNotify"); break; case LeaveNotify: trace_event("LeaveNotify"); break; case FocusIn: trace_event("FocusIn"); break; case FocusOut: trace_event("FocusOut"); break; case KeymapNotify: trace_event("KeymapNotify"); break; case Expose: exevent = (XExposeEvent *)event; trace_event("Expose [%dx%d+%d+%d]", exevent->width, exevent->height, exevent->x, exevent->y); break; case PropertyNotify: trace_event("PropertyNotify"); break; case ClientMessage: cmevent = (XClientMessageEvent *)event; atom_name = XGetAtomName(display, (Atom)cmevent->data.l[0]); trace_event("ClientMessage [%s]", (atom_name == CN) ? "(unknown)" : atom_name); break; case ConfigureNotify: cevent = (XConfigureEvent *)event; trace_event("ConfigureNotify [%dx%d+%d+%d]", cevent->width, cevent->height, cevent->x, cevent->y); break; default: trace_event("Event %d", event->type); break; } if (keymap_trace != CN) trace_event(" via %s -> %s(", keymap_trace, action_name(action)); else #endif /*]*/ trace_event(" -> %s(", action_name(action)); for (i = 0; i < *num_params; i++) { trace_event("%s\"%s\"", i ? ", " : "", scatv(params[i], pbuf, sizeof(pbuf))); } trace_event(")\n"); trace_rollover_check(); } #endif /*]*/ /* * Wrapper for calling an action internally. */ void action_internal(XtActionProc action, enum iaction cause, const char *parm1, const char *parm2) { Cardinal count = 0; String parms[2]; /* Duplicate the parms, because XtActionProc doesn't grok 'const'. */ if (parm1 != CN) { parms[0] = NewString(parm1); count++; if (parm2 != CN) { parms[1] = NewString(parm2); count++; } } ia_cause = cause; (*action)((Widget) NULL, (XEvent *) NULL, count ? parms : (String *) NULL, &count); /* Free the parm copies. */ switch (count) { case 2: Free(parms[1]); /* fall through... */ case 1: Free(parms[0]); break; default: break; } } ibm-3270-3.3.10ga4/tcl3270/mkversion.sh0000755000175000017500000000462111254565673016651 0ustar bastianbastian#! /bin/sh # # Copyright (c) 1999-2009, Paul Mattes. # Copyright (c) 2005, Don Russell. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor # the names of their contributors may be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Create version.o from version.txt #set -x # Ensure that 'date' emits 7-bit U.S. ASCII. LANG=C LC_ALL=C export LANG LC_ALL set -e . ./version.txt builddate=`date` sccsdate=`date +%Y/%m/%d` user=${LOGNAME-$USER} # Create an all numeric timestamp for rpqnames. # rpq.c will return this string of numbers in bcd format # It is OK to change the length (+ or -), but use # decimal (0-9) digits only. Length must be even number of digits. rpq_timestamp=`date +%Y%m%d%H%M%S` trap 'rm -f version.c' 0 1 2 15 cat <version.c char *build = "${2-x3270} v$version $builddate $user"; char *app_defaults_version = "$adversion"; static char sccsid[] = "@(#)${2-x3270} v$version $sccsdate $user"; const char *build_rpq_timestamp = "$rpq_timestamp"; const char *build_rpq_version = "$version"; EOF ${1-cc} -c version.c ibm-3270-3.3.10ga4/tcl3270/host.c0000644000175000017500000006224611254565704015420 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * host.c * This module handles the ibm_hosts file, connecting to and * disconnecting from hosts, and state changes on the host * connection. */ #include "globals.h" #include "appres.h" #include "resources.h" #include "actionsc.h" #include "hostc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utilc.h" #include "xioc.h" #include #define RECONNECT_MS 2000 /* 2 sec before reconnecting to host */ #define RECONNECT_ERR_MS 5000 /* 5 sec before reconnecting to host */ #define MAX_RECENT 5 enum cstate cstate = NOT_CONNECTED; Boolean std_ds_host = False; Boolean no_login_host = False; Boolean non_tn3270e_host = False; Boolean passthru_host = False; Boolean ssl_host = False; #define LUNAME_SIZE 16 char luname[LUNAME_SIZE+1]; char *connected_lu = CN; char *connected_type = CN; Boolean ever_3270 = False; char *current_host = CN; char *full_current_host = CN; unsigned short current_port; char *reconnect_host = CN; char *qualified_host = CN; struct host *hosts = (struct host *)NULL; static struct host *last_host = (struct host *)NULL; static Boolean auto_reconnect_inprogress = False; static int net_sock = -1; #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ static unsigned long reconnect_id = 0; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ static void save_recent(const char *); #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ static void try_reconnect(void); #endif /*]*/ static char * stoken(char **s) { char *r; char *ss = *s; if (!*ss) return NULL; r = ss; while (*ss && *ss != ' ' && *ss != '\t') ss++; if (*ss) { *ss++ = '\0'; while (*ss == ' ' || *ss == '\t') ss++; } *s = ss; return r; } /* * Read the host file */ void hostfile_init(void) { FILE *hf; char buf[1024]; static Boolean hostfile_initted = False; struct host *h; char *hostfile_name; if (hostfile_initted) return; hostfile_initted = True; hostfile_name = appres.hostsfile; if (hostfile_name == CN) hostfile_name = xs_buffer("%s/ibm_hosts", appres.conf_dir); else hostfile_name = do_subst(appres.hostsfile, True, True); hf = fopen(hostfile_name, "r"); if (hf != (FILE *)NULL) { while (fgets(buf, sizeof(buf), hf)) { char *s = buf; char *name, *entry_type, *hostname; char *slash; if (strlen(buf) > (unsigned)1 && buf[strlen(buf) - 1] == '\n') { buf[strlen(buf) - 1] = '\0'; } while (isspace(*s)) s++; if (!*s || *s == '#') continue; name = stoken(&s); entry_type = stoken(&s); hostname = stoken(&s); if (!name || !entry_type || !hostname) { popup_an_error("Bad %s syntax, entry skipped", ResHostsFile); continue; } h = (struct host *)Malloc(sizeof(*h)); if (!split_hier(NewString(name), &h->name, &h->parents)) { Free(h); continue; } h->hostname = NewString(hostname); /* * Quick syntax extension to allow the hosts file to * specify a port as host/port. */ if ((slash = strchr(h->hostname, '/'))) *slash = ':'; if (!strcmp(entry_type, "primary")) h->entry_type = PRIMARY; else h->entry_type = ALIAS; if (*s) h->loginstring = NewString(s); else h->loginstring = CN; h->prev = last_host; h->next = (struct host *)NULL; if (last_host) last_host->next = h; else hosts = h; last_host = h; } (void) fclose(hf); } else if (appres.hostsfile != CN) { popup_an_errno(errno, "Cannot open " ResHostsFile " '%s'", appres.hostsfile); } Free(hostfile_name); #if defined(X3270_DISPLAY) /*[*/ /* * Read the recent-connection file, and prepend it to the hosts list. */ save_recent(CN); #endif /*]*/ } /* * Look up a host in the list. Turns aliases into real hostnames, and * finds loginstrings. */ static int hostfile_lookup(const char *name, char **hostname, char **loginstring) { struct host *h; hostfile_init(); for (h = hosts; h != (struct host *)NULL; h = h->next) { if (h->entry_type == RECENT) continue; if (!strcmp(name, h->name)) { *hostname = h->hostname; if (h->loginstring != CN) { *loginstring = h->loginstring; } else { *loginstring = appres.login_macro; } return 1; } } return 0; } #if defined(LOCAL_PROCESS) /*[*/ /* Recognize and translate "-e" options. */ static const char * parse_localprocess(const char *s) { int sl = strlen(OptLocalProcess); if (!strncmp(s, OptLocalProcess, sl)) { if (s[sl] == ' ') return(s + sl + 1); else if (s[sl] == '\0') { char *r; r = getenv("SHELL"); if (r != CN) return r; else return "/bin/sh"; } } return CN; } #endif /*]*/ static char *pfxstr = "AaCcLlNnPpSs"; /* * A new hostname parser. A bit more general. * Allows backslashes to quote anything. * Allows [ ] to quote : and @ inside any name (LU, host or port). * * Because the syntax is so awful, it needs to be picked apart explicitly. * Returns 0 for success, -1 for syntax error. */ static int new_split_host(char *raw, char **lu, char **host, char **port, unsigned *prefixes) { char *start = raw; int sl = strlen(raw); char *s; char *uq = NULL; int uq_len = 0; char *qmap = NULL; char *rqmap; char *errmsg = "nonspecific"; int rc = -1; Boolean quoted = False; int bracketed = 0; int n_ch = 0; int n_at = 0; int n_colon = 0; char *part[3] = { NULL, NULL, NULL }; int part_ix = 0; char *pfx; *lu = NULL; *host = NULL; *port = NULL; *prefixes = 0; /* Trim leading and trailing blanks. */ while (sl && isspace(*start)) { start++; sl--; } while (sl && isspace(start[sl - 1])) sl--; if (!sl) { errmsg = "empty string"; goto done; } /* * 'start' now points to the start of the string, and sl is its length. */ /* * Create a bit-map of quoted characters. * This includes and character preceded by \, and any : or @ inside * unquoted [ and ]. * This can fail if an unquoted [ is found inside a [ ], or if an * unquoted [ is not terminated, or if whitespace is found. * Backslashes and unquoted square brackets are deleted at this point. * Leaves a filtered copy of the string in uq[]. */ uq = Malloc(sl + 1); qmap = Malloc(sl + 1); memset(qmap, ' ', sl); qmap[sl] = '\0'; rqmap = qmap; for (s = start; s - start < sl; s++) { if (isspace(*s)) { errmsg = "contains whitespace"; goto done; } if (quoted) { qmap[uq_len] = '+'; quoted = False; uq[uq_len++] = *s; continue; } else if (*s == '\\') { quoted = True; continue; } if (bracketed) { if (*s == ':' || *s == '@') qmap[uq_len] = '+'; /* add the character below */ else if (*s == '[') { errmsg = "nested '['"; goto done; } else if (*s == ']') { /* * What follows has to be the end of the * string, or an unquoted ':' or a '@'. */ if ((s - start) == sl - 1 || *(s + 1) == '@' || *(s + 1) == ':') bracketed = 0; else { errmsg = "text following ']'"; goto done; } continue; } } else if (*s == '[') { /* * Make sure that what came before is the beginning of * the string or an unquoted : or @. */ if (uq_len == 0 || (qmap[uq_len - 1] == ' ' && (uq[uq_len - 1] == ':' || uq[uq_len - 1] == '@'))) bracketed = 1; else { errmsg = "text preceding '['"; goto done; } continue; } uq[uq_len++] = *s; } if (quoted) { errmsg = "dangling '\\'"; goto done; } if (bracketed) { errmsg = "missing ']'"; goto done; } if (!uq_len) { errmsg = "empty hostname"; goto done; } uq[uq_len] = '\0'; /* Trim off prefixes. */ s = uq; while ((pfx = strchr(pfxstr, *s)) != NULL && qmap[(s + 1) - uq] == ' ' && *(s + 1) == ':') { *prefixes |= 1 << ((pfx - pfxstr) / 2); s += 2; rqmap += 2; } start = s; /* * Now check for syntax: [LUname@]hostname[:port] * So more than one @, more than one :, : before @, or no text before @ * or :, or no text after : are all syntax errors. * This also lets us figure out which elements are there. */ while (*s) { if (rqmap[s - start] == ' ') { if (*s == '@') { if (n_ch == 0) { errmsg = "empty LU name"; goto done; } if (n_colon > 0) { errmsg = "'@' after ':'"; goto done; } if (n_at > 0) { errmsg = "double '@'"; goto done; } n_at++; n_ch = 0; } else if (*s == ':') { if (n_ch == 0) { errmsg = "empty hostname"; goto done; } if (n_colon > 0) { errmsg = "double ':'"; goto done; } n_colon++; n_ch = 0; } else n_ch++; } else n_ch++; s++; } if (!n_ch) { if (n_colon) errmsg = "empty port"; else errmsg = "empty hostname"; goto done; } /* * The syntax is clean, and we know what parts there are. * Split them out. */ if (n_at) { *lu = Malloc(uq_len + 1); part[0] = *lu; } *host = Malloc(uq_len + 1); part[1] = *host; if (n_colon) { *port = Malloc(uq_len + 1); part[2] = *port; } s = start; n_ch = 0; while (*s) { if (rqmap[s - start] == ' ' && (*s == '@' || *s == ':')) { part[part_ix][n_ch] = '\0'; part_ix++; n_ch = 0; } else { while (part[part_ix] == NULL) part_ix++; part[part_ix][n_ch++] = *s; } s++; } part[part_ix][n_ch] = '\0'; /* Success! */ rc = 0; done: if (uq != NULL) Free(uq); if (qmap != NULL) Free(qmap); if (rc < 0) popup_an_error("Hostname syntax error: %s", errmsg); return rc; } /* * Strip qualifiers from a hostname. * Returns the hostname part in a newly-malloc'd string. * 'needed' is returned True if anything was actually stripped. * Returns NULL if there is a syntax error. */ static char * split_host(char *s, Boolean *ansi, Boolean *std_ds, Boolean *passthru, Boolean *non_e, Boolean *secure, Boolean *no_login, char *xluname, char **port, Boolean *needed) { char *lu; char *host; unsigned prefixes; Boolean *pfxptr[6]; int i; *needed = False; /* Call the sane, new version. */ if (new_split_host(s, &lu, &host, port, &prefixes) < 0) return NULL; else { if (lu) { strncpy(xluname, lu, LUNAME_SIZE); xluname[LUNAME_SIZE] = '\0'; } else *xluname = '\0'; pfxptr[0] = ansi; /* A: */ pfxptr[1] = no_login; /* C: */ pfxptr[2] = secure; /* L: */ pfxptr[3] = non_e; /* N: */ pfxptr[4] = passthru; /* P: */ pfxptr[5] = std_ds; /* S: */ for (i = 0; i < 6; i++) if (prefixes & (1 << i)) *pfxptr[i] = True; *needed = (strcmp(s, host) != 0); return host; } } /* * Network connect/disconnect operations, combined with X input operations. * * Returns 0 for success, -1 for error. * Sets 'reconnect_host', 'current_host' and 'full_current_host' as * side-effects. */ int host_connect(const char *n) { char nb[2048]; /* name buffer */ char *s; /* temporary */ const char *chost; /* to whom we will connect */ char *target_name; char *ps = CN; char *port = CN; Boolean resolving; Boolean pending; static Boolean ansi_host; const char *localprocess_cmd = NULL; Boolean has_colons = False; if (CONNECTED || auto_reconnect_inprogress) return 0; /* Skip leading blanks. */ while (*n == ' ') n++; if (!*n) { popup_an_error("Invalid (empty) hostname"); return -1; } /* Save in a modifiable buffer. */ (void) strcpy(nb, n); /* Strip trailing blanks. */ s = nb + strlen(nb) - 1; while (*s == ' ') *s-- = '\0'; /* Remember this hostname, as the last hostname we connected to. */ Replace(reconnect_host, NewString(nb)); #if defined(X3270_DISPLAY) /*[*/ /* Remember this hostname in the recent connection list and file. */ save_recent(nb); #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ if ((localprocess_cmd = parse_localprocess(nb)) != CN) { chost = localprocess_cmd; port = appres.port; } else #endif /*]*/ { Boolean needed; /* Strip off and remember leading qualifiers. */ if ((s = split_host(nb, &ansi_host, &std_ds_host, &passthru_host, &non_tn3270e_host, &ssl_host, &no_login_host, luname, &port, &needed)) == CN) return -1; /* Look up the name in the hosts file. */ if (!needed && hostfile_lookup(s, &target_name, &ps)) { /* * Rescan for qualifiers. * Qualifiers, LU names, and ports are all overridden * by the hosts file. */ Free(s); if (!(s = split_host(target_name, &ansi_host, &std_ds_host, &passthru_host, &non_tn3270e_host, &ssl_host, &no_login_host, luname, &port, &needed))) return -1; } chost = s; /* Default the port. */ if (port == CN) port = appres.port; } /* * Store the original name in globals, even if we fail the connect * later: * current_host is the hostname part, stripped of qualifiers, luname * and port number * full_current_host is the entire string, for use in reconnecting */ if (n != full_current_host) { Replace(full_current_host, NewString(n)); } Replace(current_host, CN); if (localprocess_cmd != CN) { if (full_current_host[strlen(OptLocalProcess)] != '\0') current_host = NewString(full_current_host + strlen(OptLocalProcess) + 1); else current_host = NewString("default shell"); } else { current_host = s; } has_colons = (strchr(chost, ':') != NULL); Replace(qualified_host, xs_buffer("%s%s%s%s:%s", ssl_host? "L:": "", has_colons? "[": "", chost, has_colons? "]": "", port)); /* Attempt contact. */ ever_3270 = False; net_sock = net_connect(chost, port, localprocess_cmd != CN, &resolving, &pending); if (net_sock < 0 && !resolving) { #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_DISPLAY) /*[*/ if (appres.once) { /* Exit when the error pop-up pops down. */ exiting = True; } else # endif /*]*/ if (appres.reconnect) { auto_reconnect_inprogress = True; reconnect_id = AddTimeOut(RECONNECT_ERR_MS, try_reconnect); } #endif /*]*/ /* Redundantly signal a disconnect. */ st_changed(ST_CONNECT, False); return -1; } /* Still thinking about it? */ if (resolving) { cstate = RESOLVING; st_changed(ST_RESOLVING, True); return 0; } /* Success. */ /* Set pending string. */ if (ps == CN) ps = appres.login_macro; if (ps != CN) login_macro(ps); /* Prepare Xt for I/O. */ x_add_input(net_sock); /* Set state and tell the world. */ if (pending) { cstate = PENDING; st_changed(ST_HALF_CONNECT, True); } else { cstate = CONNECTED_INITIAL; st_changed(ST_CONNECT, True); #if defined(X3270_DISPLAY) /*[*/ if (appres.reconnect && error_popup_visible()) popdown_an_error(); #endif /*]*/ } return 0; } #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ /* * Reconnect to the last host. */ static void host_reconnect(void) { if (auto_reconnect_inprogress || current_host == CN || CONNECTED || HALF_CONNECTED) return; if (host_connect(reconnect_host) >= 0) auto_reconnect_inprogress = False; } /* * Called from timer to attempt an automatic reconnection. */ static void try_reconnect(void) { auto_reconnect_inprogress = False; host_reconnect(); } /* * Cancel any pending reconnect attempt. */ void host_cancel_reconnect(void) { if (auto_reconnect_inprogress) { RemoveTimeOut(reconnect_id); auto_reconnect_inprogress = False; } } #endif /*]*/ void host_disconnect(Boolean failed) { if (CONNECTED || HALF_CONNECTED) { x_remove_input(); net_disconnect(); net_sock = -1; #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_DISPLAY) /*[*/ if (appres.once) { if (error_popup_visible()) { /* * If there is an error pop-up, exit when it * pops down. */ exiting = True; } else { /* Exit now. */ x3270_exit(0); return; } } else # endif /*]*/ if (appres.reconnect && !auto_reconnect_inprogress) { /* Schedule an automatic reconnection. */ auto_reconnect_inprogress = True; reconnect_id = AddTimeOut(failed? RECONNECT_ERR_MS: RECONNECT_MS, try_reconnect); } #endif /*]*/ /* * Remember a disconnect from ANSI mode, to keep screen tracing * in sync. */ #if defined(X3270_TRACE) /*[*/ if (IN_ANSI && toggled(SCREEN_TRACE)) trace_ansi_disc(); #endif /*]*/ cstate = NOT_CONNECTED; /* Propagate the news to everyone else. */ st_changed(ST_CONNECT, False); } } /* The host has entered 3270 or ANSI mode, or switched between them. */ void host_in3270(enum cstate new_cstate) { Boolean now3270 = (new_cstate == CONNECTED_3270 || new_cstate == CONNECTED_SSCP || new_cstate == CONNECTED_TN3270E); cstate = new_cstate; ever_3270 = now3270; st_changed(ST_3270_MODE, now3270); } void host_connected(void) { cstate = CONNECTED_INITIAL; st_changed(ST_CONNECT, True); #if defined(X3270_DISPLAY) /*[*/ if (appres.reconnect && error_popup_visible()) popdown_an_error(); #endif /*]*/ } /* Swap out net_sock. */ void host_newfd(int s) { /* Shut off the old. */ x_remove_input(); /* Turn on the new. */ net_sock = s; x_add_input(net_sock); } #if defined(X3270_DISPLAY) /*[*/ /* Comparison function for the qsort. */ static int host_compare(const void *e1, const void *e2) { const struct host *h1 = *(const struct host **)e1; const struct host *h2 = *(const struct host **)e2; int r; if (h1->connect_time > h2->connect_time) r = -1; else if (h1->connect_time < h2->connect_time) r = 1; else r = 0; #if defined(CFDEBUG) /*[*/ printf("%s %ld %d %s %ld\n", h1->name, h1->connect_time, r, h2->name, h2->connect_time); #endif /*]*/ return r; } #endif /*]*/ #if defined(CFDEBUG) /*[*/ static void dump_array(const char *when, struct host **array, int nh) { int i; printf("%s\n", when); for (i = 0; i < nh; i++) { printf(" %15s %ld\n", array[i]->name, array[i]->connect_time); } } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* Save the most recent host in the recent host list. */ static void save_recent(const char *hn) { char *lcf_name = CN; FILE *lcf = (FILE *)NULL; struct host *h; struct host *rest = (struct host *)NULL; int n_ent = 0; struct host *h_array[(MAX_RECENT * 2) + 1]; int nh = 0; int i, j; time_t t = time((time_t *)NULL); /* Allocate a new entry. */ if (hn != CN) { h = (struct host *)Malloc(sizeof(*h)); h->name = NewString(hn); h->parents = NULL; h->hostname = NewString(hn); h->entry_type = RECENT; h->loginstring = CN; h->connect_time = t; h_array[nh++] = h; } /* Put the existing entries into the array. */ for (h = hosts; h != (struct host *)NULL; h = h->next) { if (h->entry_type != RECENT) break; h_array[nh++] = h; } /* Save the ibm_hosts entries for later. */ rest = h; if (rest != (struct host *)NULL) rest->prev = (struct host *)NULL; /* * Read the last-connection file, to capture the any changes made by * other instances of x3270. */ if (appres.connectfile_name != CN && strcasecmp(appres.connectfile_name, "none")) { lcf_name = do_subst(appres.connectfile_name, True, True); lcf = fopen(lcf_name, "r"); } if (lcf != (FILE *)NULL) { char buf[1024]; while (fgets(buf, sizeof(buf), lcf) != CN) { int sl; time_t connect_time; char *ptr; /* Pick apart the entry. */ sl = strlen(buf); if (buf[sl - 1] == '\n') buf[sl-- - 1] = '\0'; if (!sl || buf[0] == '#' || (connect_time = strtoul(buf, &ptr, 10)) == 0L || ptr == buf || *ptr != ' ' || !*(ptr + 1)) continue; h = (struct host *)Malloc(sizeof(*h)); h->name = NewString(ptr + 1); h->parents = NULL; h->hostname = NewString(ptr + 1); h->entry_type = RECENT; h->loginstring = CN; h->connect_time = connect_time; h_array[nh++] = h; if (nh > (MAX_RECENT * 2) + 1) break; } fclose(lcf); } /* Sort the array, in reverse order by connect time. */ #if defined(CFDEBUG) /*[*/ dump_array("before", h_array, nh); #endif /*]*/ qsort(h_array, nh, sizeof(struct host *), host_compare); #if defined(CFDEBUG) /*[*/ dump_array("after", h_array, nh); #endif /*]*/ /* * Filter out duplicate host names, and limit the array to * MAX_RECENT entries total. */ hosts = (struct host *)NULL; last_host = (struct host *)NULL; for (i = 0; i < nh; i++) { h = h_array[i]; if (h == (struct host *)NULL) continue; h->next = (struct host *)NULL; if (last_host != (struct host *)NULL) last_host->next = h; h->prev = last_host; last_host = h; if (hosts == (struct host *)NULL) hosts = h; n_ent++; /* Zap the duplicates. */ for (j = i+1; j < nh; j++) { if (h_array[j] && (n_ent >= MAX_RECENT || !strcmp(h_array[i]->name, h_array[j]->name))) { #if defined(CFDEBUG) /*[*/ printf("%s is a dup of %s\n", h_array[j]->name, h_array[i]->name); #endif /*]*/ Free(h_array[j]->name); Free(h_array[j]->hostname); Free(h_array[j]); h_array[j] = (struct host *)NULL; } } } /* Re-attach the ibm_hosts entries to the end. */ if (rest != (struct host *)NULL) { if (last_host != (struct host *)NULL) { last_host->next = rest; } else { hosts = rest; } rest->prev = last_host; } /* If there's been a change, rewrite the file. */ if (hn != CN && appres.connectfile_name != CN && strcasecmp(appres.connectfile_name, "none")) { lcf = fopen(lcf_name, "w"); if (lcf != (FILE *)NULL) { fprintf(lcf, "# Created %s# by %s\n", ctime(&t), build); for (h = hosts; h != (struct host *)NULL; h = h->next) { if (h->entry_type != RECENT) break; (void) fprintf(lcf, "%lu %s\n", h->connect_time, h->name); } fclose(lcf); } } if (lcf_name != CN) Free(lcf_name); } #endif /*]*/ /* Support for state change callbacks. */ struct st_callback { struct st_callback *next; void (*func)(Boolean); }; static struct st_callback *st_callbacks[N_ST]; static struct st_callback *st_last[N_ST]; /* Register a function interested in a state change. */ void register_schange(int tx, void (*func)(Boolean)) { struct st_callback *st; st = (struct st_callback *)Malloc(sizeof(*st)); st->func = func; st->next = (struct st_callback *)NULL; if (st_last[tx] != (struct st_callback *)NULL) st_last[tx]->next = st; else st_callbacks[tx] = st; st_last[tx] = st; } /* Signal a state change. */ void st_changed(int tx, Boolean mode) { struct st_callback *st; for (st = st_callbacks[tx]; st != (struct st_callback *)NULL; st = st->next) { (*st->func)(mode); } } /* Explicit connect/disconnect actions. */ void Connect_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Connect_action, event, params, num_params); if (check_usage(Connect_action, *num_params, 1, 1) < 0) return; if (CONNECTED || HALF_CONNECTED) { popup_an_error("Already connected"); return; } (void) host_connect(params[0]); /* * If called from a script and the connection was successful (or * half-successful), pause the script until we are connected and * we have identified the host type. */ if (!w && (CONNECTED || HALF_CONNECTED)) sms_connect_wait(); } #if defined(X3270_MENUS) /*[*/ void Reconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Reconnect_action, event, params, num_params); if (check_usage(Reconnect_action, *num_params, 0, 0) < 0) return; if (CONNECTED || HALF_CONNECTED) { popup_an_error("Already connected"); return; } if (current_host == CN) { popup_an_error("No previous host to connect to"); return; } host_reconnect(); /* * If called from a script and the connection was successful (or * half-successful), pause the script until we are connected and * we have identified the host type. */ if (!w && (CONNECTED || HALF_CONNECTED)) sms_connect_wait(); } #endif /*]*/ void Disconnect_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Disconnect_action, event, params, num_params); if (check_usage(Disconnect_action, *num_params, 0, 0) < 0) return; host_disconnect(False); } ibm-3270-3.3.10ga4/tcl3270/glue.c0000644000175000017500000011252011254565704015366 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * glue.c * A displayless 3270 Terminal Emulator * Glue for missing parts. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "readresc.h" #include "screenc.h" #include "selectc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include "xioc.h" #if defined(_WIN32) /*[*/ #include #include "winversc.h" #endif /*]*/ extern void usage(char *); #define LAST_ARG "--" #if defined(C3270) /*[*/ # if defined(WC3270) /*[*/ # define SESSION_SFX ".wc3270" # define SESSION_SSFX ".wc3" # else /*][*/ # define SESSION_SFX ".c3270" # endif /*]*/ #elif defined(S3270) /*[*/ # if defined(WS3270) /*[*/ # define SESSION_SFX ".ws3270" # define SESSION_SSFX ".ws3" # else /*][*/ # define SESSION_SFX ".s3270" # endif /*]*/ #elif defined(TCL3270) /*[*/ # define SESSION_SFX ".tcl3270" #endif /*]*/ #define SESSION_SFX_LEN (int)(sizeof(SESSION_SFX) - 1) #if defined(_WIN32) /*[*/ # define SESSION_SSFX_LEN (int)(sizeof(SESSION_SSFX) - 1) #endif /*]*/ #if defined(C3270) /*[*/ extern Boolean merge_profile(void); extern Boolean any_error_output; #endif /*]*/ /* Statics */ static void no_minus(const char *arg); #if defined(LOCAL_PROCESS) /*[*/ static void parse_local_process(int *argcp, const char **argv, const char **cmds); #endif /*]*/ static void set_appres_defaults(void); static void parse_options(int *argcp, const char **argv); static void parse_set_clear(int *argcp, const char **argv); static int parse_model_number(char *m); /* Globals */ const char *programname; char full_model_name[13] = "IBM-"; char *model_name = &full_model_name[4]; AppRes appres; int children = 0; Boolean exiting = False; char *command_string = CN; static Boolean sfont = False; Boolean *standard_font = &sfont; char *profile_name = CN; char *profile_path = CN; struct toggle_name toggle_names[] = { #if defined(C3270) /*[*/ { ResMonoCase, MONOCASE }, #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { ResDsTrace, DS_TRACE }, #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResLineWrap, LINE_WRAP }, #endif /*]*/ { ResBlankFill, BLANK_FILL }, #if defined(X3270_TRACE) /*[*/ { ResScreenTrace, SCREEN_TRACE }, { ResEventTrace, EVENT_TRACE }, #endif /*]*/ #if defined(C3270) /*[*/ { ResMarginedPaste, MARGINED_PASTE }, #endif /*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ { ResAidWait, AID_WAIT }, #endif /*]*/ #if defined(C3270) /*[*/ { ResUnderscore, UNDERSCORE }, #endif /*]*/ { NULL, 0 } }; int parse_command_line(int argc, const char **argv, const char **cl_hostname) { int cl, i; int ovc, ovr; int hn_argc; int model_number; int sl; int xcmd_len = 0; char *xcmd; int xargc; const char **xargv; Boolean read_session_or_profile = False; /* Figure out who we are */ #if defined(_WIN32) /*[*/ programname = strrchr(argv[0], '\\'); #else /*][*/ programname = strrchr(argv[0], '/'); #endif /*]*/ if (programname) ++programname; else programname = argv[0]; /* Save the command string for tracing purposes. */ cl = strlen(programname); for (i = 0; i < argc; i++) { cl += 1 + strlen(argv[i]); } cl++; command_string = Malloc(cl); (void) strcpy(command_string, programname); for (i = 0; i < argc; i++) { (void) strcat(strcat(command_string, " "), argv[i]); } /* * Save the command-line options so they can be reapplied after * the session file or profile has been read in. */ xcmd_len = 0; for (i = 0; i < argc; i++) xcmd_len += strlen(argv[i]) + 1; xcmd = Malloc(xcmd_len + 1); xargv = (const char **)Malloc((argc + 1) * sizeof(char *)); xcmd_len = 0; for (i = 0; i < argc; i++) { xargv[i] = xcmd + xcmd_len; (void) strcpy(xcmd + xcmd_len, argv[i]); xcmd_len += strlen(argv[i]) + 1; } xargv[i] = CN; *(xcmd + xcmd_len) = '\0'; xargc = argc; #if defined(LOCAL_PROCESS) /*[*/ /* Pick out the -e option. */ parse_local_process(&argc, argv, cl_hostname); #endif /*]*/ /* Set the defaults. */ set_appres_defaults(); /* Parse command-line options. */ parse_options(&argc, argv); /* Pick out the remaining -set and -clear toggle options. */ parse_set_clear(&argc, argv); /* Now figure out if there's a hostname. */ for (hn_argc = 1; hn_argc < argc; hn_argc++) { if (!strcmp(argv[hn_argc], LAST_ARG)) break; } /* Verify command-line syntax. */ switch (hn_argc) { case 1: break; case 2: no_minus(argv[1]); *cl_hostname = argv[1]; break; case 3: no_minus(argv[1]); no_minus(argv[2]); *cl_hostname = xs_buffer("%s:%s", argv[1], argv[2]); break; default: usage("Too many command-line arguments"); break; } /* Delete the host name and any "--". */ if (argv[hn_argc] != CN && !strcmp(argv[hn_argc], LAST_ARG)) hn_argc++; if (hn_argc > 1) { for (i = 1; i < argc - hn_argc + 2; i++) { argv[i] = argv[i + hn_argc - 1]; } } /* Merge in the session. */ if (*cl_hostname != CN && (((sl = strlen(*cl_hostname)) > SESSION_SFX_LEN && !strcasecmp(*cl_hostname + sl - SESSION_SFX_LEN, SESSION_SFX)) #if defined(_WIN32) /*[*/ || ((sl = strlen(*cl_hostname)) > SESSION_SSFX_LEN && !strcasecmp(*cl_hostname + sl - SESSION_SSFX_LEN, SESSION_SSFX)) #endif /*]*/ )) { const char *pname; if (read_resource_file(*cl_hostname, True) < 0) x3270_exit(1); read_session_or_profile = True; pname = strrchr(*cl_hostname, '\\'); if (pname != CN) pname++; else pname = *cl_hostname; profile_name = NewString(pname); Replace(profile_path, NewString(profile_name)); sl = strlen(profile_name); if (sl > SESSION_SFX_LEN && !strcasecmp(profile_name + sl - SESSION_SFX_LEN, SESSION_SFX)) { profile_name[sl - SESSION_SFX_LEN] = '\0'; #if defined(_WIN32) /*[*/ } else if (sl > SESSION_SSFX_LEN && !strcasecmp(profile_name + sl - SESSION_SSFX_LEN, SESSION_SSFX)) { profile_name[sl - SESSION_SSFX_LEN] = '\0'; #endif /*]*/ } *cl_hostname = appres.hostname; /* might be NULL */ #if defined(C3270) && !defined(_WIN32) /*[*/ } else { /* Read in the profile only if there's no sesson file. */ read_session_or_profile = merge_profile(); #endif /*]*/ } /* * Now parse the command-line arguments again, so they take * precedence over the session file or profile. */ if (read_session_or_profile) { parse_options(&xargc, xargv); parse_set_clear(&xargc, xargv); } /* Can't free xcmd, parts of it are still in use. */ Free((char *)xargv); /* * All right, we have all of the resources defined. * Sort out the contradictory and implicit settings. */ /* * Sort out model and color modes, based on the model number resource. */ model_number = parse_model_number(appres.model); if (model_number < 0) { popup_an_error("Invalid model number: %s", appres.model); model_number = 0; } if (!model_number) { #if defined(RESTRICT_3279) /*[*/ model_number = 3; #else /*][*/ model_number = 4; #endif /*]*/ } #if defined(C3270) && !defined(_WIN32) /*[*/ if (appres.mono) appres.m3279 = False; #endif /*]*/ if (!appres.extended) appres.oversize = CN; #if defined(RESTRICT_3279) /*[*/ if (appres.m3279 && model_number == 4) model_number = 3; #endif /*]*/ ovc = 0; ovr = 0; if (appres.extended && appres.oversize != CN) { #if defined(C3270) /*[*/ if (!strcasecmp(appres.oversize, "auto")) { ovc = -1; ovr = -1; } else #endif /*]*/ { int x_ovc, x_ovr; char junk; if (sscanf(appres.oversize, "%dx%d%c", &x_ovc, &x_ovr, &junk) == 2) { ovc = x_ovc; ovr = x_ovr; } } } set_rows_cols(model_number, ovc, ovr); if (appres.termname != CN) termtype = appres.termname; else termtype = full_model_name; if (appres.apl_mode) appres.charset = Apl; if (*cl_hostname == CN) appres.once = False; if (appres.conf_dir == CN) appres.conf_dir = LIBX3270DIR; return argc; } static void no_minus(const char *arg) { if (arg[0] == '-') usage(xs_buffer("Unknown or incomplete option: %s", arg)); } #if defined(LOCAL_PROCESS) /*[*/ /* * Pick out the -e option. */ static void parse_local_process(int *argcp, const char **argv, const char **cmds) { int i, j; int e_len = -1; char *cmds_buf = NULL; for (i = 1; i < *argcp; i++) { if (strcmp(argv[i], OptLocalProcess)) continue; /* Matched. Copy 'em. */ e_len = strlen(OptLocalProcess) + 1; for (j = i+1; j < *argcp; j++) { e_len += 1 + strlen(argv[j]); } e_len++; cmds_buf = Malloc(e_len); (void) strcpy(cmds_buf, OptLocalProcess); for (j = i+1; j < *argcp; j++) { (void) strcat(strcat(cmds_buf, " "), argv[j]); } /* Stamp out the remaining args. */ *argcp = i; argv[i] = CN; break; } *cmds = cmds_buf; } #endif /*]*/ static void set_appres_defaults(void) { /* Set the defaults. */ #if defined(C3270) && !defined(_WIN32) /*[*/ appres.mono = False; #endif /*]*/ appres.extended = True; #if defined(C3270) /*[*/ appres.m3279 = True; #else /*][*/ appres.m3279 = False; #endif /*]*/ appres.modified_sel = False; appres.apl_mode = False; #if defined(C3270) || defined(TCL3270) /*[*/ appres.scripted = False; #else /*][*/ appres.scripted = True; #endif /*]*/ appres.numeric_lock = False; appres.secure = False; #if defined(C3270) /*[*/ appres.oerr_lock = True; #else /*][*/ appres.oerr_lock = False; #endif /*]*/ appres.typeahead = True; appres.debug_tracing = True; #if defined(C3270) /*[*/ appres.compose_map = "latin1"; appres.do_confirms = True; appres.reconnect = False; #endif /*]*/ appres.model = "4"; appres.hostsfile = CN; appres.port = "telnet"; #if !defined(_WIN32) /*[*/ appres.charset = "bracket"; #else /*][*/ if (is_nt) appres.charset = "bracket"; else appres.charset = "bracket437"; #endif /*]*/ appres.termname = CN; appres.macros = CN; #if defined(X3270_TRACE) && !defined(_WIN32) /*[*/ appres.trace_dir = "/tmp"; #endif /*]*/ #if defined(WC3270) /*[*/ appres.trace_monitor = True; #endif /*]*/ appres.oversize = CN; #if defined(C3270) /*[*/ appres.meta_escape = "auto"; appres.curses_keypad = True; appres.cbreak_mode = False; appres.ascii_box_draw = False; # if defined(C3270) && !defined(_WIN32) /*[*/ appres.mouse = True; # endif /*]*/ #if defined(CURSES_WIDE) /*[*/ appres.acs = True; #endif /*]*/ #endif /*]*/ #if defined(X3270_ANSI) /*[*/ appres.icrnl = True; appres.inlcr = False; appres.onlcr = True; appres.erase = "^H"; appres.kill = "^U"; appres.werase = "^W"; appres.rprnt = "^R"; appres.lnext = "^V"; appres.intr = "^C"; appres.quit = "^\\"; appres.eof = "^D"; #endif /*]*/ appres.unlock_delay = True; appres.unlock_delay_ms = 350; #if defined(X3270_FT) /*[*/ appres.dft_buffer_size = DFT_BUF; #endif /*]*/ #if defined(C3270) /*[*/ appres.toggle[CURSOR_POS].value = True; #endif /*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ appres.toggle[AID_WAIT].value = True; #endif /*]*/ #if defined(C3270) && defined(_WIN32) /*[*/ appres.toggle[UNDERSCORE].value = True; #endif /*]*/ #if defined(C3270) && defined(X3270_SCRIPT) /*[*/ appres.plugin_command = "x3270hist.pl"; #endif /*]*/ #if defined(WS3270) /*[*/ appres.local_cp = GetACP(); #endif /*]*/ } #if defined (C3270) /*[*/ # if defined(WIN32) /*[*/ # define APPNAME "wc3270" # else /*][*/ # define APPNAME "c3270" # endif /*]*/ #elif defined(S3270) /*[*/ # if defined(WIN32) /*[*/ # define APPNAME "ws3270" # else /*][*/ # define APPNAME "s3270" # endif /*]*/ #elif defined(TCL3270) /*[*/ # define APPNAME "tcl3270" #else # error "Unknwon application" #endif /*]*/ #if defined(_WIN32) /*[*/ # define PR3287_NAME "wpr3287" #else /*][*/ # define PR3287_NAME "pr3287" #endif /*]*/ #define offset(n) (void *)&appres.n #define toggle_offset(index) offset(toggle[index].value) static struct { const char *name; enum { OPT_BOOLEAN, OPT_STRING, OPT_XRM, OPT_SKIP2, OPT_NOP, OPT_INT, OPT_V, OPT_DONE } type; Boolean flag; const char *res_name; void *aoff; char *help_opts; char *help_text; } opts[] = { #if defined(C3270) /*[*/ { OptAllBold, OPT_BOOLEAN, True, ResAllBold, offset(all_bold_on), CN, "Display all text in bold" }, #endif /*]*/ #if defined(C3270) && !defined(_WIN32) /*[*/ { OptAltScreen,OPT_STRING, False, ResAltScreen, offset(altscreen), "", "Specify string to switch terminal from 80-column mode to 132-column mode" }, #endif /*]*/ #if defined(WC3270) /*[*/ { OptAutoShortcut,OPT_BOOLEAN, True, ResAutoShortcut,offset(auto_shortcut), CN, "Run in auto-shortcut mode" }, #endif /*]*/ { OptAplMode, OPT_BOOLEAN, True, ResAplMode, offset(apl_mode), CN, "Turn on APL mode" }, #if defined(C3270) && !defined(_WIN32) /*[*/ { OptCbreak, OPT_BOOLEAN, True, ResCbreak, offset(cbreak_mode), CN, "Force terminal CBREAK mode" }, #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ { OptCertFile, OPT_STRING, False, ResCertFile, offset(cert_file), "", "Specify OpenSSL certificate file" }, #endif /*]*/ { OptCharset, OPT_STRING, False, ResCharset, offset(charset), "", "Use host ECBDIC character set (code page) "}, { OptClear, OPT_SKIP2, False, NULL, NULL, "", "Turn on " }, #if defined(C3270) && !defined(_WIN32) /*[*/ { OptDefScreen,OPT_STRING, False, ResDefScreen, offset(defscreen), "", "Specify string to switch terminal from 80-column mode to 132-column mode" }, #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ { OptLocalProcess,OPT_SKIP2,False, NULL, NULL, " [...]", "Run instead of making TELNET conection" }, #endif /*]*/ { OptHostsFile,OPT_STRING, False, ResHostsFile, offset(hostsfile), "", "Use as the ibm_hosts file" }, #if defined(C3270) /*[*/ { OptKeymap, OPT_STRING, False, ResKeymap, offset(key_map), "[,...]", "Keyboard map name(s)" }, #endif /*]*/ #if defined(WS3270) /*[*/ { OptLocalCp, OPT_INT, False, ResLocalCp, offset(local_cp), "", "Use instead of ANSI codepage for local I/O" }, #endif /*]*/ { OptModel, OPT_STRING, False, ResModel, offset(model), "[327{8,9}-]", "Emulate a 3278 or 3279 model " }, #if defined(C3270) /*[*/ # if !defined(_WIN32) /*[*/ { OptMono, OPT_BOOLEAN, True, ResMono, offset(mono), CN, "Do not use terminal color capabilities" }, # endif /*]*/ #if defined(WC3270) /*[*/ { OptNoAutoShortcut,OPT_BOOLEAN,False,ResAutoShortcut,offset(auto_shortcut), CN, "Do not run in auto-shortcut mode" }, #endif /*]*/ { OptNoPrompt, OPT_BOOLEAN, True, ResNoPrompt, offset(no_prompt), CN, "Suppress interactive mode (" APPNAME "> prompt)" }, #endif /*]*/ { OptOnce, OPT_BOOLEAN, True, ResOnce, offset(once), CN, "Exit as soon as the host disconnects" }, { OptOversize, OPT_STRING, False, ResOversize, offset(oversize), "x", "Specify larger screen" }, { OptPort, OPT_STRING, False, ResPort, offset(port), "", "Specify default TELNET port" }, #if defined(C3270) /*[*/ { OptPrinterLu,OPT_STRING, False, ResPrinterLu, offset(printer_lu), "", "Automatically start a "PR3287_NAME" printer session to " }, { OptReconnect,OPT_BOOLEAN, True, ResReconnect, offset(reconnect), CN, "Reconnect to host as soon as it disconnects" }, #if !defined(_WIN32) /*[*/ { OptReverseVideo,OPT_BOOLEAN,True,ResReverseVideo,offset(reverse_video), CN, "Switch to black-on-white mode" }, #endif /*]*/ #endif /*]*/ { OptProxy, OPT_STRING, False, ResProxy, offset(proxy), ":[:]", "Secify proxy type and server" }, #if defined(S3270) /*[*/ { OptScripted, OPT_NOP, False, ResScripted, NULL, CN, "Turn on scripting" }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { OptScriptPort,OPT_INT, True, ResScriptPort, offset(script_port), "", "TCP port to listen on for script commands" }, #endif /*]*/ #if defined(C3270) /*[*/ { OptSecure, OPT_BOOLEAN, True, ResSecure, offset(secure), CN, "Restrict potentially-destructive user actions" }, #endif /*]*/ { OptSet, OPT_SKIP2, False, NULL, NULL, "", "Turn on " }, #if defined(X3270_SCRIPT) /*[*/ { OptSocket, OPT_BOOLEAN, True, ResSocket, offset(socket), CN, "Create socket for script control" }, #endif /*]*/ { OptTermName, OPT_STRING, False, ResTermName, offset(termname), "", "Send as TELNET terminal name" }, #if defined(WC3270) /*[*/ { OptTitle, OPT_STRING, False, ResTitle, offset(title), "", "Set window title to " }, #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { OptDsTrace, OPT_BOOLEAN, True, ResDsTrace, toggle_offset(DS_TRACE), CN, "Enable tracing" }, { OptTraceFile,OPT_STRING, False, ResTraceFile, offset(trace_file), "", "Write traces to " }, { OptTraceFileSize,OPT_STRING,False,ResTraceFileSize,offset(trace_file_size), "[KM]", "Limit trace file to bytes" }, #endif /*]*/ { OptV, OPT_V, False, NULL, NULL, CN, "Display build options and character sets" }, { OptVersion, OPT_V, False, NULL, NULL, CN, "Display build options and character sets" }, { "-xrm", OPT_XRM, False, NULL, NULL, "'" APPNAME ".: '", "Set to " }, { LAST_ARG, OPT_DONE, False, NULL, NULL, CN, "Terminate argument list" }, { CN, OPT_SKIP2, False, NULL, NULL, CN, CN } }; /* * Pick out command-line options and set up appres. */ static void parse_options(int *argcp, const char **argv) { int i, j; int argc_out = 0; const char **argv_out = (const char **) Malloc((*argcp + 1) * sizeof(char *)); /* Parse the command-line options. */ argv_out[argc_out++] = argv[0]; for (i = 1; i < *argcp; i++) { for (j = 0; opts[j].name != CN; j++) { if (!strcmp(argv[i], opts[j].name)) break; } if (opts[j].name == CN) { argv_out[argc_out++] = argv[i]; continue; } switch (opts[j].type) { case OPT_BOOLEAN: *(Boolean *)opts[j].aoff = opts[j].flag; if (opts[j].res_name != CN) add_resource(NewString(opts[j].name), opts[j].flag? "True": "False"); break; case OPT_STRING: if (i == *argcp - 1) /* missing arg */ continue; *(const char **)opts[j].aoff = argv[++i]; if (opts[j].res_name != CN) add_resource(NewString(opts[j].res_name), NewString(argv[i])); break; case OPT_XRM: if (i == *argcp - 1) /* missing arg */ continue; parse_xrm(argv[++i], "-xrm"); break; case OPT_SKIP2: argv_out[argc_out++] = argv[i++]; if (i < *argcp) argv_out[argc_out++] = argv[i]; break; case OPT_NOP: break; case OPT_INT: if (i == *argcp - 1) /* missing arg */ continue; *(int *)opts[j].aoff = atoi(argv[++i]); if (opts[j].res_name != CN) add_resource(NewString(opts[j].name), NewString(argv[i])); break; case OPT_V: dump_version(); break; case OPT_DONE: while (i < *argcp) argv_out[argc_out++] = argv[i++]; break; } } *argcp = argc_out; argv_out[argc_out] = CN; (void) memcpy((char *)argv, (char *)argv_out, (argc_out + 1) * sizeof(char *)); Free((char *)argv_out); #if defined(X3270_TRACE) /*[*/ /* One isn't very useful without the other. */ if (appres.toggle[DS_TRACE].value) appres.toggle[EVENT_TRACE].value = True; #endif /*]*/ } /* Disply command-line help. */ void cmdline_help (Boolean as_action) { int i; for (i = 0; opts[i].name != CN; i++) { if (as_action) { action_output(" %s%s%s", opts[i].name, opts[i].help_opts? " ": "", opts[i].help_opts? opts[i].help_opts: ""); action_output(" %s", opts[i].help_text); } else fprintf(stderr, " %s%s%s\n %s\n", opts[i].name, opts[i].help_opts? " ": "", opts[i].help_opts? opts[i].help_opts: "", opts[i].help_text); } } /* * Pick out -set and -clear toggle options. */ static void parse_set_clear(int *argcp, const char **argv) { int i, j; int argc_out = 0; const char **argv_out = (const char **) Malloc((*argcp + 1) * sizeof(char *)); argv_out[argc_out++] = argv[0]; for (i = 1; i < *argcp; i++) { Boolean is_set = False; if (!strcmp(argv[i], OptSet)) is_set = True; else if (strcmp(argv[i], OptClear)) { argv_out[argc_out++] = argv[i]; continue; } if (i == *argcp - 1) /* missing arg */ continue; /* Delete the argument. */ i++; for (j = 0; toggle_names[j].name != NULL; j++) if (!strcmp(argv[i], toggle_names[j].name)) { appres.toggle[toggle_names[j].index].value = is_set; break; } if (toggle_names[j].name == NULL) usage("Unknown toggle name"); } *argcp = argc_out; argv_out[argc_out] = CN; (void) memcpy((char *)argv, (char *)argv_out, (argc_out + 1) * sizeof(char *)); Free((char *)argv_out); } /* * Parse the model number. * Returns -1 (error), 0 (default), or the specified number. */ static int parse_model_number(char *m) { int sl; int n; sl = strlen(m); /* An empty model number is no good. */ if (!sl) { return 0; } if (sl > 1) { /* * If it's longer than one character, it needs to start with * '327[89]', and it sets the m3279 resource. */ if (!strncmp(m, "3278", 4)) { appres.m3279 = False; } else if (!strncmp(m, "3279", 4)) { appres.m3279 = True; } else { return -1; } m += 4; sl -= 4; /* Check more syntax. -E is allowed, but ignored. */ switch (m[0]) { case '\0': /* Use default model number. */ return 0; case '-': /* Model number specified. */ m++; sl--; break; default: return -1; } switch (sl) { case 1: /* n */ break; case 3: /* n-E */ if (strcasecmp(m + 1, "-E")) { return -1; } break; default: return -1; } } /* Check the numeric model number. */ n = atoi(m); if (n >= 2 && n <= 5) { return n; } else { return -1; } } /* * Parse '-xrm' options. * Understands only: * {c,s,tcl}3270.: value * Asterisks and class names need not apply. */ static struct { const char *name; void *address; enum resource_type { XRM_STRING, XRM_BOOLEAN, XRM_INT } type; } resources[] = { #if defined(C3270) /*[*/ { ResAllBold, offset(all_bold), XRM_STRING }, { ResAltScreen, offset(altscreen), XRM_STRING }, #endif /*]*/ #if defined(WC3270) /*[*/ { ResAutoShortcut,offset(auto_shortcut),XRM_BOOLEAN }, #endif /*]*/ { ResBsdTm, offset(bsd_tm), XRM_BOOLEAN }, #if defined(HAVE_LIBSSL) /*[*/ { ResCertFile, offset(cert_file), XRM_STRING }, #endif /*]*/ { ResCharset, offset(charset), XRM_STRING }, { ResColor8, offset(color8), XRM_BOOLEAN }, #if defined(TCL3270) /*[*/ { ResCommandTimeout, offset(command_timeout), XRM_INT }, #endif /*]*/ { ResConfDir, offset(conf_dir), XRM_STRING }, #if defined(X3270_DBCS) /*[*/ { ResDbcsCgcsgid, offset(dbcs_cgcsgid), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResDefScreen, offset(defscreen), XRM_STRING }, #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResEof, offset(eof), XRM_STRING }, { ResErase, offset(erase), XRM_STRING }, #endif /*]*/ { ResExtended, offset(extended), XRM_BOOLEAN }, #if defined(X3270_FT) /*[*/ { ResDftBufferSize,offset(dft_buffer_size),XRM_INT }, #endif /*]*/ { ResHostname, offset(hostname), XRM_STRING }, { ResHostsFile, offset(hostsfile), XRM_STRING }, #if defined(X3270_ANSI) /*[*/ { ResIcrnl, offset(icrnl), XRM_BOOLEAN }, { ResInlcr, offset(inlcr), XRM_BOOLEAN }, { ResOnlcr, offset(onlcr), XRM_BOOLEAN }, { ResIntr, offset(intr), XRM_STRING }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { ResPluginCommand, offset(plugin_command), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResIdleCommand,offset(idle_command), XRM_STRING }, { ResIdleCommandEnabled,offset(idle_command_enabled), XRM_BOOLEAN }, { ResIdleTimeout,offset(idle_timeout), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResKeymap, offset(key_map), XRM_STRING }, { ResMetaEscape,offset(meta_escape), XRM_STRING }, { ResCursesKeypad,offset(curses_keypad),XRM_BOOLEAN }, { ResCbreak, offset(cbreak_mode), XRM_BOOLEAN }, { ResAsciiBoxDraw,offset(ascii_box_draw), XRM_BOOLEAN }, #if defined(CURSES_WIDE) /*[*/ { ResAcs, offset(acs), XRM_BOOLEAN }, #endif /*]*/ #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResKill, offset(kill), XRM_STRING }, { ResLnext, offset(lnext), XRM_STRING }, #endif /*]*/ #if defined(WS3270) /*[*/ { ResLocalCp, offset(local_cp), XRM_INT }, #endif /*]*/ { ResLoginMacro,offset(login_macro), XRM_STRING }, { ResM3279, offset(m3279), XRM_BOOLEAN }, { ResModel, offset(model), XRM_STRING }, { ResModifiedSel, offset(modified_sel), XRM_BOOLEAN }, #if defined(C3270) /*[*/ # if !defined(_WIN32) /*[*/ { ResMono, offset(mono), XRM_BOOLEAN }, { ResMouse, offset(mouse), XRM_BOOLEAN }, # endif /*]*/ { ResNoPrompt, offset(no_prompt), XRM_BOOLEAN }, #endif /*]*/ { ResNumericLock, offset(numeric_lock), XRM_BOOLEAN }, { ResOerrLock, offset(oerr_lock), XRM_BOOLEAN }, { ResOversize, offset(oversize), XRM_STRING }, { ResPort, offset(port), XRM_STRING }, #if defined(C3270) /*[*/ { ResPrinterLu, offset(printer_lu), XRM_STRING }, #endif /*]*/ { ResProxy, offset(proxy), XRM_STRING }, #if defined(X3270_ANSI) /*[*/ { ResQuit, offset(quit), XRM_STRING }, { ResRprnt, offset(rprnt), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResReconnect, offset(reconnect), XRM_BOOLEAN }, #if !defined(_WIN32) /*[*/ { ResReverseVideo,offset(reverse_video),XRM_BOOLEAN }, #endif /*]*/ #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { ResScreenTraceFile,offset(screentrace_file),XRM_STRING }, #endif /*]*/ { ResSecure, offset(secure), XRM_BOOLEAN }, { ResSbcsCgcsgid, offset(sbcs_cgcsgid), XRM_STRING }, #if defined(X3270_SCRIPT) /*[*/ { ResScriptPort,offset(script_port), XRM_INT }, #endif /*]*/ { ResTermName, offset(termname), XRM_STRING }, #if defined(WC3270) /*[*/ { ResTitle, offset(title), XRM_STRING }, #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { ResTraceDir, offset(trace_dir), XRM_STRING }, { ResTraceFile, offset(trace_file), XRM_STRING }, { ResTraceFileSize,offset(trace_file_size),XRM_STRING }, #if defined(WC3270) /*[*/ { ResTraceMonitor,offset(trace_monitor),XRM_BOOLEAN }, #endif /*]*/ #endif /*]*/ { ResTypeahead, offset(typeahead), XRM_BOOLEAN }, { ResUnlockDelay,offset(unlock_delay), XRM_BOOLEAN }, { ResUnlockDelayMs,offset(unlock_delay_ms),XRM_INT }, #if defined(WC3270) /*[*/ { ResVisualBell,offset(visual_bell), XRM_BOOLEAN }, #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResWerase, offset(werase), XRM_STRING }, #endif /*]*/ { CN, 0, XRM_STRING } }; /* * Compare two strings, allowing the second to differ by uppercasing the * first character of the second. */ static int strncapcmp(const char *known, const char *unknown, unsigned unk_len) { if (unk_len != strlen(known)) return -1; if (!strncmp(known, unknown, unk_len)) return 0; if (unk_len > 1 && unknown[0] == toupper(known[0]) && !strncmp(known + 1, unknown + 1, unk_len - 1)) return 0; return -1; } #if defined(C3270) /*[*/ struct host_color host_color[] = { { "NeutralBlack", HOST_COLOR_NEUTRAL_BLACK }, { "Blue", HOST_COLOR_BLUE }, { "Red", HOST_COLOR_RED }, { "Pink", HOST_COLOR_PINK }, { "Green", HOST_COLOR_GREEN }, { "Turquoise", HOST_COLOR_TURQUOISE }, { "Yellow", HOST_COLOR_YELLOW }, { "NeutralWhite", HOST_COLOR_NEUTRAL_WHITE }, { "Black", HOST_COLOR_BLACK }, { "DeepBlue", HOST_COLOR_DEEP_BLUE }, { "Orange", HOST_COLOR_ORANGE }, { "Purple", HOST_COLOR_PURPLE }, { "PaleGreen", HOST_COLOR_PALE_GREEN }, { "PaleTurquoise", HOST_COLOR_PALE_TURQUOISE }, { "Grey", HOST_COLOR_GREY }, { "Gray", HOST_COLOR_GREY }, /* alias */ { "White", HOST_COLOR_WHITE }, { CN, 0 } }; /* * Validate a resource that is fetched explicitly, rather than via appres. */ static int valid_explicit(const char *resname, unsigned len) { static struct { char *name; enum { V_FLAT, V_WILD, V_COLOR } type; } explicit_resources[] = { { ResKeymap, V_WILD }, { ResAssocCommand, V_FLAT }, { ResLuCommandLine, V_FLAT }, #if defined(_WIN32) /*[*/ { ResPrinterCodepage, V_FLAT }, { ResPrinterCommand, V_FLAT }, { ResPrinterName, V_FLAT }, { ResPrintTextFont, V_FLAT }, { ResPrintTextSize, V_FLAT }, { ResHostColorForDefault, V_FLAT }, { ResHostColorForIntensified, V_FLAT }, { ResHostColorForProtected, V_FLAT }, { ResHostColorForProtectedIntensified,V_FLAT }, { ResConsoleColorForHostColor, V_COLOR }, #else /*][*/ { ResPrintTextCommand, V_FLAT }, { ResCursesColorForDefault, V_FLAT }, { ResCursesColorForIntensified, V_FLAT }, { ResCursesColorForProtected, V_FLAT }, { ResCursesColorForProtectedIntensified,V_FLAT }, { ResCursesColorForHostColor, V_COLOR }, #endif /*]*/ { NULL, V_WILD } }; int i; int j; for (i = 0; explicit_resources[i].name != CN; i++) { unsigned sl = strlen(explicit_resources[i].name); switch (explicit_resources[i].type) { case V_FLAT: /* Exact match. */ if (len == sl && !strncmp(explicit_resources[i].name, resname, sl)) return 0; break; case V_WILD: /* xxx.* match. */ if (len > sl + 1 && resname[sl] == '.' && !strncmp(explicit_resources[i].name, resname, sl)) return 0; break; case V_COLOR: /* xxx or xxx match. */ for (j = 0; host_color[j].name != CN; j++) { char *x; x = xs_buffer("%s%s", explicit_resources[i].name, host_color[j].name); if (strlen(x) == len && !strncmp(x, resname, len)) { Free(x); return 0; } Free(x); x = xs_buffer("%s%d", explicit_resources[i].name, host_color[j].index); if (strlen(x) == len && !strncmp(x, resname, len)) { Free(x); return 0; } Free(x); } break; } } return -1; } #endif /*]*/ void parse_xrm(const char *arg, const char *where) { const char *name; unsigned rnlen; const char *s; int i; char *t; void *address = NULL; enum resource_type type = XRM_STRING; Boolean quoted; char c; #if defined(C3270) /*[*/ char *hide; Boolean arbitrary = False; #endif /*]*/ /* Validate and split. */ if (validate_and_split_resource(where, arg, &name, &rnlen, &s) < 0) return; /* Look up the name. */ for (i = 0; resources[i].name != CN; i++) { if (!strncapcmp(resources[i].name, name, rnlen)) { address = resources[i].address; type = resources[i].type; break; } } if (address == NULL) { for (i = 0; toggle_names[i].name != NULL; i++) { if (!strncapcmp(toggle_names[i].name, name, rnlen)) { address = &appres.toggle[toggle_names[i].index].value; type = XRM_BOOLEAN; break; } } } #if defined(C3270) /*[*/ if (address == NULL && valid_explicit(name, rnlen) == 0) { /* * Handle resources that are accessed only via get_resource(). */ address = &hide; type = XRM_STRING; arbitrary = True; } #endif /*]*/ if (address == NULL) { xs_warning("%s: Unknown resource name: %.*s", where, (int)rnlen, name); return; } switch (type) { case XRM_BOOLEAN: if (!strcasecmp(s, "true") || !strcasecmp(s, "t") || !strcmp(s, "1")) { *(Boolean *)address = True; } else if (!strcasecmp(s, "false") || !strcasecmp(s, "f") || !strcmp(s, "0")) { *(Boolean *)address = False; } else { xs_warning("%s: Invalid Boolean value: %s", where, s); } break; case XRM_STRING: t = Malloc(strlen(s) + 1); *(char **)address = t; quoted = False; while ((c = *s++) != '\0') { if (quoted) { switch (c) { case 'b': *t++ = '\b'; break; case 'f': *t++ = '\f'; break; case 'n': *t++ = '\n'; break; case 'r': *t++ = '\r'; break; case 't': *t++ = '\t'; break; default: /* Leave other backslashes intact. */ *t++ = '\\'; *t++ = c; break; } quoted = False; } else if (c == '\\') { quoted = True; } else { *t++ = c; } } *t = '\0'; break; case XRM_INT: { long n; char *ptr; n = strtol(s, &ptr, 0); if (*ptr != '\0') { xs_warning("%s: Invalid Integer value: %s", where, s); } else { *(int *)address = (int)n; } break; } } #if defined(C3270) /*[*/ /* Add a new, arbitrarily-named resource. */ if (arbitrary) { char *rsname; rsname = Malloc(rnlen + 1); (void) strncpy(rsname, name, rnlen); rsname[rnlen] = '\0'; add_resource(rsname, hide); } #endif /*]*/ } /* * Clean up a string for display (undo what parse_xrm does). */ char * safe_string(const char *s) { char *t = Malloc(1); int tlen = 1; *t = '\0'; /* * Translate the string to UCS4 a character at a time. * If the result is a control code or backslash, expand it. * Otherwise, translate it back to the local encoding and * append it to the output. */ while (*s) { ucs4_t u; int consumed; enum me_fail error; u = multibyte_to_unicode(s, strlen(s), &consumed, &error); if (u == 0) break; if (u < ' ') { char c = 0; int inc = 0; switch (u) { case '\b': c = 'b'; inc = 2; break; case '\f': c = 'f'; inc = 2; break; case '\n': c = 'n'; inc = 2; break; case '\r': c = 'r'; inc = 2; break; case '\t': c = 't'; inc = 2; break; default: inc = 6; break; } t = Realloc(t, tlen + inc); if (inc == 2) { *(t + tlen - 1) = '\\'; *(t + tlen) = c; } else { sprintf(t, "\\u%04x", u); } tlen += inc; } else { t = Realloc(t, tlen + consumed); memcpy(t + tlen - 1, s, consumed); tlen += consumed; } s += consumed; } *(t + tlen - 1) = '\0'; return t; } /* Read resources from a file. */ int read_resource_file(const char *filename, Boolean fatal) { return read_resource_filex(filename, fatal, parse_xrm); } /* Screen globals. */ static int cw = 7; int *char_width = &cw; static int ch = 7; int *char_height = &ch; Boolean visible_control = False; Boolean flipped = False; /* Replacements for functions in popups.c. */ #include Boolean error_popup_visible = False; static char vmsgbuf[4096]; /* Pop up an error dialog. */ void popup_an_error(const char *fmt, ...) { va_list args; char *s; int sl; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); /* * Multi-line messages are fine for X pop-ups, but they're no fun for * text applications. */ s = vmsgbuf; while ((s = strchr(s, '\n')) != NULL) { *s++ = ' '; } while ((sl = strlen(vmsgbuf)) > 0 && vmsgbuf[sl-1] == ' ') { vmsgbuf[--sl] = '\0'; } if (sms_redirect()) { sms_error(vmsgbuf); return; } else { #if defined(C3270) || defined(WC3270) /*[*/ screen_suspend(); any_error_output = True; #endif /*]*/ (void) fprintf(stderr, "%s\n", vmsgbuf); macro_output = True; } } /* Pop up an error dialog, based on an error number. */ void popup_an_errno(int errn, const char *fmt, ...) { va_list args; char *s; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); s = NewString(vmsgbuf); if (errn > 0) popup_an_error("%s:\n%s", s, strerror(errn)); else popup_an_error("%s", s); Free(s); } void action_output(const char *fmt, ...) { va_list args; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); if (sms_redirect()) { sms_info("%s", vmsgbuf); return; } else { FILE *aout; #if defined(C3270) /*[*/ screen_suspend(); aout = start_pager(); any_error_output = True; #else /*][*/ aout = stdout; #endif /*]*/ #if defined(WC3270) /*[*/ pager_output(vmsgbuf); #else /*][*/ (void) fprintf(aout, "%s\n", vmsgbuf); #endif /*]*/ macro_output = True; } } ibm-3270-3.3.10ga4/tcl3270/tcl3270.man0000644000175000017500000007235111261527757016074 0ustar bastianbastian'\" t .TH tcl3270 1 "02 October 2009" .SH "NAME" tcl3270 \- \s-1IBM\s+1 host access tool .SH "SYNOPSIS" \fBtcl3270\fP [\fIscript\fP] [\fIoptions\fP] [\fIhost\fP] [\-\- \fIscript-arg\fP...] .br \fBtcl3270\fP [\fIoptions\fP] [\fIscript\fP] \fIsession-file\fP.tcl3270 [\-\- \fIscript-arg\fP...] .SH "DESCRIPTION" \fBtcl3270\fP opens a telnet connection to an \s-1IBM\s+1 host, then allows a tcl script to control the host login session. It is derived from \fIx3270\fP(1), an X-windows IBM 3270 emulator. It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection), and supports IND$FILE file transfer. .LP The full syntax for \fIhost\fP is: .RS [\fIprefix\fP:]...[\fILUname\fP@]\fIhostname\fP[:\fIport\fP] .RE .LP Prepending a \fBP:\fP onto \fIhostname\fP causes the connection to go through the \fItelnet-passthru\fP service rather than directly to the host. See \s-1PASSTHRU\s+1 below. .LP Prepending an \fBS:\fP onto \fIhostname\fP removes the "extended data stream" option reported to the host. See \fB\-tn\fP below for further information. .LP Prepending an \fBN:\fP onto \fIhostname\fP turns off TN3270E support for the session. .LP Prepending an \fBL:\fP onto \fIhostname\fP causes \fBtcl3270\fP to first create an SSL tunnel to the host, and then create a TN3270 session inside the tunnel. (This function is supported only if \fBtcl3270\fP was built with SSL/TLS support). Note that TLS-encrypted sessions using the TELNET START-TLS option are negotiated with the host automatically; for these sessions the \fBL:\fP prefix should not be used. .LP A specific Logical Unit (LU) name to use may be specified by prepending it to the \fIhostname\fP with an `\fB@\fP'. Multiple LU names to try can be separated by commas. An empty LU can be placed in the list with an extra comma. (Note that the LU name is used for different purposes by different kinds of hosts. For example, CICS uses the LU name as the Terminal ID.) .LP The \fIhostname\fP may optionally be placed inside square-bracket characters `\fB[\fP' and `\fB]\fP'. This will prevent any colon `\fB:\fP' characters in the hostname from being interpreted as indicating option prefixes or port numbers. This allows numeric IPv6 addresses to be used as hostnames. .LP On systems that support the \fIforkpty\fP library call, the \fIhostname\fP may be replaced with \fB\-e\fP and a command string. This will cause \fBtcl3270\fP to connect to a local child process, such as a shell. .LP The port to connect to defaults to \fBtelnet\fP. This can be overridden with the \fB\-port\fP option, or by appending a \fIport\fP to the \fIhostname\fP with a colon `\fB:\fP'. (For compatability with previous versions of \fBtcl3270\fP and with \fItn3270\fP(1), the \fIport\fP may also be specified as a second, separate argument.) .SH "OPTIONS" \fBtcl3270\fP understands the following options: .TP \fB\-charset\fP \fIname\fP Specifies an \s-1EBCDIC\s+1 host character set. .TP \fB\-clear\fP \fItoggle\fP Sets the initial value of \fItoggle\fP to \fBfalse\fP. The list of toggle names is under \s-1TOGGLES\s+1 below. .TP \fB\-im\fP \fImethod\fP Specifies the name of the input method to use for multi-byte input. (Supported only when tcl3270 is compiled with DBCS support.) .TP \fB\-km\fP \fIname\fP Specifies the local encoding method for multi-byte text. \fIname\fP is an encoding name recognized by the ICU library. (Supported only when tcl3270 is compiled with DBCS support, and necessary only when tcl3270 cannot figure it out from the locale.) .TP \fB\-model\fP \fIname\fP The model of 3270 display to be emulated. The model name is in two parts, either of which may be omitted: .IP The first part is the \fBbase model\fP, which is either \fB3278\fP or \fB3279\fP. \fB3278\fP specifies a monochrome (green on black) 3270 display; \fB3279\fP specifies a color 3270 display. .IP The second part is the \fBmodel number\fP, which specifies the number of rows and columns. Model 4 is the default. .PP .TS center; c c c . T{ .na .nh Model Number T} T{ .na .nh Columns T} T{ .na .nh Rows T} _ T{ .na .nh 2 T} T{ .na .nh 80 T} T{ .na .nh 24 T} T{ .na .nh 3 T} T{ .na .nh 80 T} T{ .na .nh 32 T} T{ .na .nh 4 T} T{ .na .nh 80 T} T{ .na .nh 43 T} T{ .na .nh 5 T} T{ .na .nh 132 T} T{ .na .nh 27 T} .TE .IP Note: Technically, there is no such 3270 display as a 3279-4 or 3279-5, but most hosts seem to work with them anyway. .IP The default model is \fB3278\-4\fP. .TP \fB\-oversize\fP \fIcols\fP\fBx\fP\fIrows\fP Makes the screen larger than the default for the chosen model number. This option has effect only in combination with extended data stream support (controlled by the "tcl3270.extended" resource), and only if the host supports the Query Reply structured field. The number of columns multiplied by the number of rows must not exceed 16383 (3fff hex), the limit of 14-bit 3270 buffer addressing. .TP \fB\-port\fP \fIn\fP Specifies a different \s-1TCP\s+1 port to connect to. \fIn\fP can be a name from \fB/etc/services\fP like \fBtelnet\fP, or a number. This option changes the default port number used for all connections. (The positional parameter affects only the initial connection.) .TP \fB\-proxy \fItype\fP:\fIhost\fP[:\fIport\fP]\fP Causes \fBtcl3270\fP to connect via the specified proxy, instead of using a direct connection. The \fIhost\fP can be an IP address or hostname. The optional \fIport\fP can be a number or a service name. For a list of supported proxy \fItypes\fP, see \s-1PROXY\s+1 below. .TP \fB\-set\fP \fItoggle\fP Sets the initial value of \fItoggle\fP to \fBtrue\fP. The list of toggle names is under \s-1TOGGLES\s+1 below. The \fB\-p\fP option of \fIx3270if\fP causes it to use this socket, instead of pipes specified by environment variables. .TP \fB\-tn\fP \fIname\fP Specifies the terminal name to be transmitted over the telnet connection. The default name is \fBIBM\-\fP\fImodel_name\fP\fB\-E\fP, for example, \fBIBM\-3278\-4\-E\fP. .IP Some hosts are confused by the \fB\-E\fP suffix on the terminal name, and will ignore the extra screen area on models 3, 4 and 5. Prepending an \fBs:\fP on the hostname, or setting the "tcl3270.extended" resource to "false", removes the \fB\-E\fP from the terminal name when connecting to such hosts. .IP The name can also be specified with the "tcl3270.termName" resource. .TP \fB\-trace\fP Turns on data stream and event tracing at startup. The default trace file name is \fB/tmp/x3trc.\fP\fIprocess_id\fP. .TP \fB\-tracefile\fP \fIfile\fP Specifies a file to save data stream and event traces into. .TP \fB\-tracefilesize\fP \fIsize\fP Places a limit on the size of a trace file. If this option is not specified, or is specified as \fB0\fP or \fBnone\fP, the trace file will be unlimited. If specified, the trace file cannot already exist, and the (silently enforced) minimum size is 64 Kbytes. The value of \fIsize\fP can have a \fBK\fP or \fBM\fP suffix, indicating kilobytes or megabytes respectively. .TP \fB\-v\fP Display the version and build options for \fBtcl3270\fP and exit. .TP \fB\-xrm\fP "tcl3270.\fIresource\fP: \fIvalue\fP" Sets the value of the named \fIresource\fP to \fIvalue\fP. Resources control less common \fBtcl3270\fP options, and are defined under \s-1RESOURCES\s+1 below. .TP \fB\-\-\fP Terminates the list of \fBtcl3270\fP options. Whatever follows will be available to the script in the \fB$argv\fP tcl variable. .TE .LP These names are also used as the first parameter to the \fBToggle\fP action. .SH "COMMANDS" \fBtcl3270\fP supports the following additional tcl commands: .PP Actions marked with an asterisk (*) may block, sending data to the host and possibly waiting for a response. .PP .TS center; lw(3i) lw(3i). T{ .na .nh .in +2 .ti -2 Ascii T} T{ .na .nh return entire screen contents as text T} T{ .na .nh .in +2 .ti -2 Ascii \fIlength\fP T} T{ .na .nh return screen contents at cursor as text T} T{ .na .nh .in +2 .ti -2 Ascii \fIrow\fP \fIcol\fP \fIlength\fP T} T{ .na .nh return screen contents as text T} T{ .na .nh .in +2 .ti -2 Ascii \fIrow\fP \fIcol\fP \fIrows\fP \fIcols\fP T} T{ .na .nh return screen region as text T} T{ .na .nh .in +2 .ti -2 AsciiField T} T{ .na .nh return current field as text T} T{ .na .nh .in +2 .ti -2 *Attn T} T{ .na .nh attention key T} T{ .na .nh .in +2 .ti -2 BackSpace T} T{ .na .nh move cursor left (or send \s-1ASCII BS\s+1) T} T{ .na .nh .in +2 .ti -2 BackTab T} T{ .na .nh tab to start of previous input field T} T{ .na .nh .in +2 .ti -2 CircumNot T} T{ .na .nh input "^" in \s-1NVT\s+1 mode, or "notsign" in 3270 mode T} T{ .na .nh .in +2 .ti -2 *Clear T} T{ .na .nh clear screen T} T{ .na .nh .in +2 .ti -2 Cols T} T{ .na .nh report screen size T} T{ .na .nh .in +2 .ti -2 *Connect \fIhost\fP T} T{ .na .nh connect to \fIhost\fP T} T{ .na .nh .in +2 .ti -2 *CursorSelect T} T{ .na .nh Cursor Select \s-1AID\s+1 T} T{ .na .nh .in +2 .ti -2 Delete T} T{ .na .nh delete character under cursor (or send \s-1ASCII DEL\s+1) T} T{ .na .nh .in +2 .ti -2 DeleteField T} T{ .na .nh delete the entire field T} T{ .na .nh .in +2 .ti -2 DeleteWord T} T{ .na .nh delete the current or previous word T} T{ .na .nh .in +2 .ti -2 *Disconnect T} T{ .na .nh disconnect from host T} T{ .na .nh .in +2 .ti -2 Down T} T{ .na .nh move cursor down T} T{ .na .nh .in +2 .ti -2 Dup T} T{ .na .nh duplicate field T} T{ .na .nh .in +2 .ti -2 Ebcdic T} T{ .na .nh return entire screen contents in \s-1EBCDIC\s+1 T} T{ .na .nh .in +2 .ti -2 Ebcdic \fIlength\fP T} T{ .na .nh return screen contents at cursor in \s-1EBCDIC\s+1 T} T{ .na .nh .in +2 .ti -2 Ebcdic \fIrow\fP \fIcol\fP \fIlength\fP T} T{ .na .nh return screen contents in \s-1EBCDIC\s+1 T} T{ .na .nh .in +2 .ti -2 Ebcdic \fIrow\fP \fIcol\fP \fIrows\fP \fIcols\fP T} T{ .na .nh return screen region in \s-1EBCDIC\s+1 T} T{ .na .nh .in +2 .ti -2 EbcdicField T} T{ .na .nh return current field in \s-1EBCDIC\s+1 T} T{ .na .nh .in +2 .ti -2 *Enter T} T{ .na .nh Enter \s-1AID\s+1 (or send \s-1ASCII CR\s+1) T} T{ .na .nh .in +2 .ti -2 Erase T} T{ .na .nh erase previous character (or send \s-1ASCII BS\s+1) T} T{ .na .nh .in +2 .ti -2 EraseEOF T} T{ .na .nh erase to end of current field T} T{ .na .nh .in +2 .ti -2 EraseInput T} T{ .na .nh erase all input fields T} T{ .na .nh .in +2 .ti -2 FieldEnd T} T{ .na .nh move cursor to end of field T} T{ .na .nh .in +2 .ti -2 FieldMark T} T{ .na .nh mark field T} T{ .na .nh .in +2 .ti -2 HexString \fIhex_digits\fP T} T{ .na .nh insert control-character string T} T{ .na .nh .in +2 .ti -2 Home T} T{ .na .nh move cursor to first input field T} T{ .na .nh .in +2 .ti -2 Insert T} T{ .na .nh set insert mode T} T{ .na .nh .in +2 .ti -2 *Interrupt T} T{ .na .nh send \s-1TELNET IP\s+1 to host T} T{ .na .nh .in +2 .ti -2 Key \fIkeysym\fP T} T{ .na .nh insert key \fIkeysym\fP T} T{ .na .nh .in +2 .ti -2 Key 0x\fIxx\fP T} T{ .na .nh insert key with character code \fIxx\fP T} T{ .na .nh .in +2 .ti -2 Left T} T{ .na .nh move cursor left T} T{ .na .nh .in +2 .ti -2 Left2 T} T{ .na .nh move cursor left 2 positions T} T{ .na .nh .in +2 .ti -2 MonoCase T} T{ .na .nh toggle uppercase-only mode T} T{ .na .nh .in +2 .ti -2 MoveCursor \fIrow\fP \fIcol\fP T} T{ .na .nh move cursor to (\fIrow\fP,\fIcol\fP) T} T{ .na .nh .in +2 .ti -2 Newline T} T{ .na .nh move cursor to first field on next line (or send \s-1ASCII LF\s+1) T} T{ .na .nh .in +2 .ti -2 NextWord T} T{ .na .nh move cursor to next word T} T{ .na .nh .in +2 .ti -2 *PA \fIn\fP T} T{ .na .nh Program Attention \s-1AID\s+1 (\fIn\fP from 1 to 3) T} T{ .na .nh .in +2 .ti -2 *PF \fIn\fP T} T{ .na .nh Program Function \s-1AID\s+1 (\fIn\fP from 1 to 24) T} T{ .na .nh .in +2 .ti -2 PreviousWord T} T{ .na .nh move cursor to previous word T} T{ .na .nh .in +2 .ti -2 Quit T} T{ .na .nh exit \fBtcl3270\fP T} T{ .na .nh .in +2 .ti -2 Redraw T} T{ .na .nh redraw window T} T{ .na .nh .in +2 .ti -2 Reset T} T{ .na .nh reset locked keyboard T} T{ .na .nh .in +2 .ti -2 Right T} T{ .na .nh move cursor right T} T{ .na .nh .in +2 .ti -2 Right2 T} T{ .na .nh move cursor right 2 positions T} T{ .na .nh .in +2 .ti -2 ReadBuffer Ascii T} T{ .na .nh dump screen buffer as text T} T{ .na .nh .in +2 .ti -2 ReadBuffer Ebcdic T} T{ .na .nh dump screen buffer in EBCDIC T} T{ .na .nh .in +2 .ti -2 Rows T} T{ .na .nh report screen size T} T{ .na .nh .in +2 .ti -2 Snap T} T{ .na .nh same as \fBSnap Save\fP T} T{ .na .nh .in +2 .ti -2 Snap Ascii T} T{ .na .nh report saved screen data (see \fBAscii\fP) T} T{ .na .nh .in +2 .ti -2 Snap Cols T} T{ .na .nh report saved screen size T} T{ .na .nh .in +2 .ti -2 Snap Ebcdic T} T{ .na .nh report saved screen data (see \fBEbcdic\fP) T} T{ .na .nh .in +2 .ti -2 Snap ReadBuffer T} T{ .na .nh report saved screen data (see \fBReadBuffer\fP) T} T{ .na .nh .in +2 .ti -2 Snap Rows T} T{ .na .nh report saved screen size T} T{ .na .nh .in +2 .ti -2 Snap Save T} T{ .na .nh save screen image T} T{ .na .nh .in +2 .ti -2 Snap Status T} T{ .na .nh report saved connection status T} T{ .na .nh .in +2 .ti -2 *Snap Wait [\fItimeout\fP] Output T} T{ .na .nh wait for host output and save screen image T} T{ .na .nh .in +2 .ti -2 Status T} T{ .na .nh report connection status T} T{ .na .nh .in +2 .ti -2 *String \fIstring\fP T} T{ .na .nh insert string (simple macro facility) T} T{ .na .nh .in +2 .ti -2 *SysReq T} T{ .na .nh System Request \s-1AID\s+1 T} T{ .na .nh .in +2 .ti -2 Tab T} T{ .na .nh move cursor to next input field T} T{ .na .nh .in +2 .ti -2 Toggle \fIoption\fP[ T} T{ .na .nh toggle an option T} T{ .na .nh .in +2 .ti -2 ToggleInsert T} T{ .na .nh toggle insert mode T} T{ .na .nh .in +2 .ti -2 ToggleReverse T} T{ .na .nh toggle reverse-input mode T} T{ .na .nh .in +2 .ti -2 *Transfer \fIoption\fP=\fIvalue\fP... T} T{ .na .nh file transfer T} T{ .na .nh .in +2 .ti -2 Up T} T{ .na .nh move cursor up T} T{ .na .nh .in +2 .ti -2 *Wait [\fItimeout\fP] 3270mode T} T{ .na .nh wait for 3270 mode T} T{ .na .nh .in +2 .ti -2 *Wait [\fItimeout\fP] Disconnect T} T{ .na .nh wait for host to disconnect T} T{ .na .nh .in +2 .ti -2 *Wait [\fItimeout\fP] InputField T} T{ .na .nh wait for valid input field T} T{ .na .nh .in +2 .ti -2 *Wait [\fItimeout\fP] NVTMode T} T{ .na .nh wait for NVT mode T} T{ .na .nh .in +2 .ti -2 *Wait [\fItimeout\fP] Output T} T{ .na .nh wait for more host output T} .TE .SH "FILE TRANSFER" The \fBTransfer\fP command implements \fBIND$FILE\fP file transfer. This command requires that the \fBIND$FILE\fP program be installed on the \s-1IBM\s+1 host, and that the 3270 cursor be located in a field that will accept a \s-1TSO\s+1 or \s-1VM/CMS\s+1 command. .LP .LP Because of the complexity and number of options for file transfer, the parameters to the \fBTransfer\fP command take the unique form of \fIoption\fP=\fIvalue\fP, and can appear in any order. Note that if the \fIvalue\fP contains spaces (such as a VM/CMS file name), then the entire parameter must be quoted, e.g., "HostFile=xxx foo a". The options are: .LP .TS l c l l. T{ .na .nh Option T} T{ .na .nh Required? T} T{ .na .nh Default T} T{ .na .nh Other Values T} _ T{ .na .nh Direction T} T{ .na .nh No T} T{ .na .nh receive T} T{ .na .nh send T} T{ .na .nh HostFile T} T{ .na .nh Yes T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh LocalFile T} T{ .na .nh Yes T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Host T} T{ .na .nh No T} T{ .na .nh tso T} T{ .na .nh vm T} T{ .na .nh Mode T} T{ .na .nh No T} T{ .na .nh ascii T} T{ .na .nh binary T} T{ .na .nh Cr T} T{ .na .nh No T} T{ .na .nh remove T} T{ .na .nh add, keep T} T{ .na .nh Remap T} T{ .na .nh No T} T{ .na .nh yes T} T{ .na .nh no T} T{ .na .nh Exist T} T{ .na .nh No T} T{ .na .nh keep T} T{ .na .nh replace, append T} T{ .na .nh Recfm T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh fixed, variable, undefined T} T{ .na .nh Lrecl T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Blksize T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Allocation T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh tracks, cylinders, avblock T} T{ .na .nh PrimarySpace T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh SecondarySpace T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh BufferSize T} T{ .na .nh No T} T{ .na .nh 4096 T} T{ .na .nh \ T} .TE .LP The option details are as follows. .TP \fBDirection\fP \fBsend\fP to send a file to the host, \fBreceive\fP to receive a file from the host. .TP \fBHostFile\fP The name of the file on the host. .TP \fBLocalFile\fP The name of the file on the local workstation. .TP \fBHost\fP The type of host (which dictates the form of the \fBIND$FILE\fP command): \fBtso\fP (the default) or \fBvm\fP. .TP \fBMode\fP Use \fBascii\fP (the default) for a text file, which will be translated between \s-1EBCDIC\s+1 and \s-1ASCII\s+1 as necessary. Use \fBbinary\fP for non-text files. .TP \fBCr\fP Controls how \fBNewline\fP characters are handled when transferring \fBMode=ascii\fP files. \fBremove\fP (the default) strips \fBNewline\fP characters in local files before transferring them to the host. \fBadd\fP adds \fBNewline\fP characters to each host file record before transferring it to the local workstation. \fBkeep\fP preserves \fBNewline\fP characters when transferring a local file to the host. .TP \fBRemap\fP Controls text translation for \fBMode=ascii\fP files. The value \fByes\fP (the default) causes tcl3270 to remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page. The value \fBno\fP causes tcl3270 to pass the text to or from the host as-is, leaving all translation to the \fBIND$FILE\fP program on the host. .TP \fBExist\fP Controls what happens when the destination file already exists. \fBkeep\fP (the default) preserves the file, causing the \fBTransfer\fP command to fail. \fBreplace\fP overwrites the destination file with the source file. \fBappend\fP appends the source file to the destination file. .TP \fBRecfm\fP Controls the record format of files created on the host. \fBfixed\fP creates a file with fixed-length records. \fBvariable\fP creates a file with variable-length records. \fBundefined\fP creates a file with undefined-length records (\s-1TSO\s+1 hosts only). The \fBLrecl\fP option controls the record length or maximum record length for \fBRecfm=fixed\fP and \fBRecfm=variable\fP files, respectively. .TP \fBLrecl\fP Specifies the record length (or maximum record length) for files created on the host. .TP \fBBlksize\fP Specifies the block size for files created on the host. (\s-1TSO\s+1 hosts only.) .TP \fBAllocation\fP Specifies the units for the \s-1TSO\s+1 host \fBPrimarySpace\fP and \fBSecondarySpace\fP options: \fBtracks\fP, \fBcylinders\fP or \fBavblock\fP. .TP \fBPrimarySpace\fP Primary allocation for a file created on a \s-1TSO\s+1 host. The units are given by the \fBAllocation\fP option. .TP \fBSecondarySpace\fP Secondary allocation for a file created on a \s-1TSO\s+1 host. The units are given by the \fBAllocation\fP option. .TP \fBBufferSize\fP Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them. .SH "THE PRINTTEXT ACTION" The \fBPrintText\fP produces screen snapshots in a number of different forms. The default form wth no arguments sends a copy of the screen to the default printer. A single argument is the command to use to print, e.g., \fBlpr\fP. Multiple arguments can include keywords to control the output of \fBPrintText\fP: .TP \fBfile\fP \fIfilename\fP Save the output in a file. .TP \fBhtml\fP Save the output as HTML. This option implies \fBfile\fP. .TP \fBrtf\fP Save the output as RichText. This option implies \fBfile\fP. The font defaults to \fBCourier New\fP and the point size defaults to 8. These can be overridden by the \fBprintTextFont\fP and \fBprintTextSize\fP resources, respectively. .TP \fBstring\fP Return the output as a string. This can only be used from scripts. .TP \fBmodi\fP Render modified fields in italics. .TP \fBcaption\fP \fItext\fP Add the specified \fItext\fP as a caption above the output. Within \fItext\fP, the special sequence \fB%T%\fP will be replaced with a timestamp. .TP \fBcommand\fP \fIcommand\fP Directs the output to a command. This allows one or more of the other keywords to be specified, while still sending the output to the printer. .SH "NESTED SCRIPTS" .TP \fBThe String Command\fP The simplest method for nested scripts is provided via the \fBString\fP command. The arguments to \fBString\fP are one or more double-quoted strings which are inserted directly as if typed. The C backslash conventions are honored as follows. (Entries marked * mean that after sending the \s-1AID\s+1 code to the host, \fBtcl3270\fP will wait for the host to unlock the keyboard before further processing the string.) .TS l l. T{ .na .nh \eb T} T{ .na .nh Left T} T{ .na .nh \ee\fIxxxx\fP T} T{ .na .nh EBCDIC character in hex T} T{ .na .nh \ef T} T{ .na .nh Clear* T} T{ .na .nh \en T} T{ .na .nh Enter* T} T{ .na .nh \epa\fIn\fP T} T{ .na .nh PA(\fIn\fP)* T} T{ .na .nh \epf\fInn\fP T} T{ .na .nh PF(\fInn\fP)* T} T{ .na .nh \er T} T{ .na .nh Newline T} T{ .na .nh \et T} T{ .na .nh Tab T} T{ .na .nh \eT T} T{ .na .nh BackTab T} T{ .na .nh \eu\fIxxxx\fP T} T{ .na .nh Unicode character in hex T} T{ .na .nh \ex\fIxxxx\fP T} T{ .na .nh Unicode character in hex T} .TE .IP Note that the numeric values for the \ee, \eu and \ex sequences can be abbreviated to 2 digits. Note also that EBCDIC codes greater than 255 and some Unicode character codes represent DBCS characters, which will work only if tcl3270 is built with DBCS support and the host allows DBCS input in the current field. .IP \fBNote:\fP The strings are in \s-1ASCII\s+1 and converted to \s-1EBCDIC\s+1, so beware of inserting control codes. .IP There is also an alternate form of the \fBString\fP command, \fBHexString\fP, which is used to enter non-printing data. The argument to \fBHexString\fP is a string of hexadecimal digits, two per character. A leading 0x or 0X is optional. In 3270 mode, the hexadecimal data represent \s-1EBCDIC\s+1 characters, which are entered into the current field. In \s-1NVT\s+1 mode, the hexadecimal data represent \s-1ASCII\s+1 characters, which are sent directly to the host. .SH "PASSTHRU" \fBtcl3270\fP supports the Sun \fItelnet-passthru\fP service provided by the \fIin.telnet-gw\fP server. This allows outbound telnet connections through a firewall machine. When a \fBp:\fP is prepended to a hostname, \fBtcl3270\fP acts much like the \fIitelnet\fP(1) command. It contacts the machine named \fBinternet-gateway\fP at the port defined in \fB/etc/services\fP as \fBtelnet-passthru\fP (which defaults to 3514). It then passes the requested hostname and port to the \fBin.telnet-gw\fP server. .SH "PROXY" The \fB\-proxy\fP option or the \fBtcl3270.proxy\fP resource causes tcl3270 to use a proxy server to connect to the host. The syntax of the option or resource is: .RS \fItype\fP:\fIhost\fP[:\fIport\fP] .RE The supported values for \fItype\fP are: .TS center; c l c . T{ .na .nh Proxy Type T} T{ .na .nh Protocol T} T{ .na .nh Default Port T} _ T{ .na .nh http T} T{ .na .nh RFC 2817 HTTP tunnel (squid) T} T{ .na .nh 3128 T} T{ .na .nh passthru T} T{ .na .nh Sun in.telnet-gw T} T{ .na .nh none T} T{ .na .nh socks4 T} T{ .na .nh SOCKS version 4 T} T{ .na .nh 1080 T} T{ .na .nh socks5 T} T{ .na .nh SOCKS version 5 (RFC 1928) T} T{ .na .nh 1080 T} T{ .na .nh telnet T} T{ .na .nh No protocol (just send \fBconnect\fP \fIhost port\fP) T} T{ .na .nh none T} .TE .LP The special types \fBsocks4a\fP and \fBsocks5d\fP can also be used to force the proxy server to do the hostname resolution for the SOCKS protocol. .SH "RESOURCES" Certain \fBtcl3270\fP options can be configured via resources. Resources are defined by \fB\-xrm\fP options. The definitions are similar to X11 resources, and use a similar syntax. The resources available in \fBtcl3270\fP are: .LP .TS l l l l. T{ .na .nh Resource T} T{ .na .nh Default T} T{ .na .nh Option T} T{ .na .nh Purpose T} _ T{ .na .nh blankFill T} T{ .na .nh False T} T{ .na .nh \-set blankFill T} T{ .na .nh Blank Fill mode T} T{ .na .nh charset T} T{ .na .nh bracket T} T{ .na .nh \-charset T} T{ .na .nh \s-1EBCDIC\s+1 character set T} T{ .na .nh dbcsCgcsgid T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Override DBCS CGCSGID T} T{ .na .nh dsTrace T} T{ .na .nh False T} T{ .na .nh \-trace T} T{ .na .nh Data stream tracing T} T{ .na .nh eof T} T{ .na .nh ^D T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode \s-1EOF\s+1 character T} T{ .na .nh erase T} T{ .na .nh ^H T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode erase character T} T{ .na .nh extended T} T{ .na .nh True T} T{ .na .nh \ T} T{ .na .nh Use 3270 extended data stream T} T{ .na .nh eventTrace T} T{ .na .nh False T} T{ .na .nh \-trace T} T{ .na .nh Event tracing T} T{ .na .nh icrnl T} T{ .na .nh False T} T{ .na .nh \ T} T{ .na .nh Map \s-1CR\s+1 to \s-1NL\s+1 on \s-1NVT\s+1-mode input T} T{ .na .nh inlcr T} T{ .na .nh False T} T{ .na .nh \ T} T{ .na .nh Map \s-1NL\s+1 to \s-1CR\s+1 in \s-1NVT\s+1-mode input T} T{ .na .nh intr T} T{ .na .nh ^C T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode interrupt character T} T{ .na .nh kill T} T{ .na .nh ^U T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode kill character T} T{ .na .nh lineWrap T} T{ .na .nh False T} T{ .na .nh \-set lineWrap T} T{ .na .nh \s-1NVT\s+1 line wrap mode T} T{ .na .nh lnext T} T{ .na .nh ^V T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode lnext character T} T{ .na .nh m3279 T} T{ .na .nh (note 1) T} T{ .na .nh \-model T} T{ .na .nh 3279 (color) emulation T} T{ .na .nh monoCase T} T{ .na .nh False T} T{ .na .nh \-set monoCase T} T{ .na .nh Mono-case mode T} T{ .na .nh numericLock T} T{ .na .nh False T} T{ .na .nh \ T} T{ .na .nh Lock keyboard for numeric field error T} T{ .na .nh oerrLock T} T{ .na .nh False T} T{ .na .nh \ T} T{ .na .nh Lock keyboard for input error T} T{ .na .nh oversize T} T{ .na .nh \ T} T{ .na .nh \-oversize T} T{ .na .nh Oversize screen dimensions T} T{ .na .nh port T} T{ .na .nh telnet T} T{ .na .nh \-port T} T{ .na .nh Non-default TCP port T} T{ .na .nh quit T} T{ .na .nh ^\e T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode quit character T} T{ .na .nh rprnt T} T{ .na .nh ^R T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode reprint character T} T{ .na .nh sbcsCgcsgid T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Override SBCS CGCSGID T} T{ .na .nh secure T} T{ .na .nh False T} T{ .na .nh \ T} T{ .na .nh Disable "dangerous" options T} T{ .na .nh termName T} T{ .na .nh (note 2) T} T{ .na .nh \-tn T} T{ .na .nh \s-1TELNET\s+1 terminal type string T} T{ .na .nh traceDir T} T{ .na .nh /tmp T} T{ .na .nh \ T} T{ .na .nh Directory for trace files T} T{ .na .nh traceFile T} T{ .na .nh (note 3) T} T{ .na .nh \-tracefile T} T{ .na .nh File for trace output T} T{ .na .nh werase T} T{ .na .nh ^W T} T{ .na .nh \ T} T{ .na .nh \s-1NVT\s+1-mode word-erase character T} .TE .LP .RS \fINote 1\fP: \fBm3279\fP defaults to \fBFalse\fP. It can be forced to \fBTrue\fP with the proper \fB\-model\fP option. .LP \fINote 2\fP: The default terminal type string is constructed from the model number, color emulation, and extended data stream modes. E.g., a model 2 with color emulation and the extended data stream option would be sent as \fBIBM-3279-2-E\fP. Note also that when \s-1TN3270E\s+1 mode is used, the terminal type is always sent as 3278, but this does not affect color capabilities. .LP \fINote 3\fP: The default trace file is \fBx3trc.\fP\fIpid\fP in the directory specified by the \fBtraceDir\fP resource. .REdnl .LP If more than one \fB\-xrm\fP option is given for the same resource, the last one on the command line is used. .SH "SEE ALSO" x3270(1), s3270(1), c3270(1), telnet(1), tn3270(1) .br Data Stream Programmer's Reference, IBM GA23-0059 .br Character Set Reference, IBM GA27-3831 .br RFC 1576, TN3270 Current Practices .br RFC 1646, TN3270 Extensions for LUname and Printer Selection .br RFC 2355, TN3270 Enhancements .SH "COPYRIGHTS" Copyright 1993-2009, Paul Mattes. .br Copyright 2004-2005, Don Russell. .br Copyright 2004, Dick Altenbern. .br Copyright 1990, Jeff Sparkes. .br Copyright 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332. .br All rights reserved. .LP Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: .TP * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. .TP * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. .TP * Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. .LP THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .SH "VERSION" tcl3270 3.3.10ga4 ibm-3270-3.3.10ga4/tcl3270/tables.c0000644000175000017500000002171311254565704015707 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * tables.c * Translation tables between the three character sets: * EBCDIC * ASCII (ISO Latin-1) * Character Generator ("3270" font) */ #include "globals.h" #include "tablesc.h" const unsigned char asc2cg0[256] = { /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*20*/ 0x10, 0x19, 0x13, 0x2c, 0x1a, 0x2e, 0x30, 0x12, /*28*/ 0x0d, 0x0c, 0xbf, 0x35, 0x33, 0x31, 0x32, 0x14, /*30*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /*38*/ 0x28, 0x29, 0x34, 0xbe, 0x09, 0x11, 0x08, 0x18, /*40*/ 0x2d, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*48*/ 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, /*50*/ 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, /*58*/ 0xb7, 0xb8, 0xb9, 0x0a, 0x15, 0x0b, 0x3a, 0x2f, /*60*/ 0x3d, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /*68*/ 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, /*70*/ 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*78*/ 0x97, 0x98, 0x99, 0x0f, 0x16, 0x0e, 0x3b, 0x00, /*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*a0*/ 0x01, 0x6e, 0x1b, 0x1c, 0x1f, 0x1d, 0x17, 0x2b, /*a8*/ 0x3c, 0xd0, 0x6a, 0x6c, 0x36, 0x07, 0xd1, 0x37, /*b0*/ 0x38, 0xd6, 0x68, 0x69, 0x3e, 0x54, 0x1e, 0x39, /*b8*/ 0x3f, 0x67, 0x6b, 0x6d, 0x4b, 0x4c, 0x4d, 0x6f, /*c0*/ 0x60, 0x7a, 0x75, 0x65, 0x70, 0xbc, 0xba, 0xbd, /*c8*/ 0x61, 0x7b, 0x76, 0x71, 0x62, 0x7c, 0x77, 0x72, /*d0*/ 0xd7, 0x7f, 0x63, 0x7d, 0x78, 0x66, 0x73, 0x5b, /*d8*/ 0xbb, 0x64, 0x7e, 0x79, 0x74, 0x48, 0xd9, 0x2a, /*e0*/ 0x40, 0x5a, 0x55, 0x45, 0x50, 0x9c, 0x9a, 0x4f, /*e8*/ 0x41, 0x4a, 0x56, 0x51, 0x42, 0x5c, 0x57, 0x52, /*f0*/ 0xf7, 0x5f, 0x43, 0x5d, 0x58, 0x46, 0x53, 0x9d, /*f8*/ 0x9b, 0x44, 0x5e, 0x59, 0x4e, 0x49, 0xf9, 0x47 }; const unsigned char ebc2cg0[256] = { /*00*/ 0x00, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*08*/ 0xdf, 0xdf, 0xdf, 0xdf, 0x02, 0x03, 0x00, 0x00, /*10*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0x04, 0xdf, 0xdf, /*18*/ 0xdf, 0x05, 0xdf, 0xdf, 0x9f, 0xdf, 0x9e, 0xdf, /*20*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*28*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*30*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*38*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*40*/ 0x10, 0x01, 0x55, 0x50, 0x40, 0x5a, 0x45, 0x9c, /*48*/ 0x4f, 0x5f, 0x1b, 0x32, 0x09, 0x0d, 0x35, 0x16, /*50*/ 0x30, 0x4a, 0x56, 0x51, 0x41, 0x5c, 0x57, 0x52, /*58*/ 0x42, 0x2a, 0x19, 0x1a, 0xbf, 0x0c, 0xbe, 0x36, /*60*/ 0x31, 0x14, 0x75, 0x70, 0x60, 0x7a, 0x65, 0xbc, /*68*/ 0xbd, 0x7f, 0x17, 0x33, 0x2e, 0x2f, 0x08, 0x18, /*70*/ 0x9b, 0x7b, 0x76, 0x71, 0x61, 0x7c, 0x77, 0x72, /*78*/ 0x62, 0x3d, 0x34, 0x2c, 0x2d, 0x12, 0x11, 0x13, /*80*/ 0xbb, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /*88*/ 0x87, 0x88, 0x6c, 0x6d, 0xf7, 0x49, 0xf9, 0xd6, /*90*/ 0x38, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /*98*/ 0x90, 0x91, 0x6a, 0x6b, 0x9a, 0x3f, 0xba, 0x1f, /*a0*/ 0x54, 0x3b, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /*a8*/ 0x98, 0x99, 0x6e, 0x6f, 0xd7, 0x48, 0xd9, 0xd1, /*b0*/ 0x3a, 0x1c, 0x1d, 0x39, 0xd0, 0x2b, 0x1e, 0x4b, /*b8*/ 0x4c, 0x4d, 0x0a, 0x0b, 0x37, 0x3c, 0x3e, 0x5b, /*c0*/ 0x0f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*c8*/ 0xa7, 0xa8, 0x07, 0x58, 0x53, 0x43, 0x5d, 0x46, /*d0*/ 0x0e, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /*d8*/ 0xb0, 0xb1, 0x67, 0x59, 0x4e, 0x44, 0x5e, 0x47, /*e0*/ 0x15, 0x9d, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /*e8*/ 0xb8, 0xb9, 0x68, 0x78, 0x73, 0x63, 0x7d, 0x66, /*f0*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /*f8*/ 0x28, 0x29, 0x69, 0x79, 0x74, 0x64, 0x7e, 0x06 }; const unsigned char ebc2asc0[256] = { /*00*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*08*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*10*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*18*/ 0x20, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x3b, 0x20, /*20*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*28*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*30*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*38*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*40*/ 0x20, 0x20, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, /*48*/ 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /*50*/ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, /*58*/ 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0xac, /*60*/ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, /*68*/ 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /*70*/ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, /*78*/ 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /*80*/ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /*88*/ 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /*90*/ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /*98*/ 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /*a0*/ 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /*a8*/ 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, /*b0*/ 0x5e, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, /*b8*/ 0xbd, 0xbe, 0x5b, 0x5d, 0xaf, 0xa8, 0xb4, 0xd7, /*c0*/ 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /*c8*/ 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /*d0*/ 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /*d8*/ 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, /*e0*/ 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /*e8*/ 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /*f8*/ 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x20 }; const unsigned char asc2ebc0[256] = { /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*20*/ 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /*28*/ 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /*30*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /*38*/ 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /*40*/ 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /*48*/ 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /*50*/ 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /*58*/ 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /*60*/ 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /*68*/ 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*70*/ 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*78*/ 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x00, /*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*a0*/ 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /*a8*/ 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, /*b0*/ 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /*b8*/ 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /*c0*/ 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /*c8*/ 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /*d0*/ 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /*d8*/ 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /*e0*/ 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /*e8*/ 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /*f0*/ 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /*f8*/ 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf }; ibm-3270-3.3.10ga4/tcl3270/ctlr.h0000644000175000017500000000362711254565704015412 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ctlr.h * External declarations for ctlr.c data structures. */ extern int buffer_addr; /* buffer address */ extern int cursor_addr; /* cursor address */ extern struct ea *ea_buf; /* 3270 device buffer */ extern struct ea *aea_buf; /* alternate 3270 device buffer */ extern Boolean formatted; /* contains at least one field? */ extern Boolean is_altbuffer; /* in alternate-buffer mode? */ ibm-3270-3.3.10ga4/tcl3270/xioc.h0000644000175000017500000000350711254565704015405 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xioc.h * Global declarations for xio.c. */ extern void Quit_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void x3270_exit(int n); extern void x_add_input(int net_sock); extern void x_except_off(void); extern void x_except_on(int net_sock); extern void x_remove_input(void); ibm-3270-3.3.10ga4/tcl3270/ansi.c0000644000175000017500000016035711254565704015377 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ansi.c * ANSI terminal emulation. */ #include "globals.h" #if defined(X3270_ANSI) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #endif /*]*/ #include "appres.h" #include "ctlr.h" #include "3270ds.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "hostc.h" #include "screenc.h" #include "scrollc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #define MB_MAX 16 #define PE_MAX 1024 #define SC 1 /* save cursor position */ #define RC 2 /* restore cursor position */ #define NL 3 /* new line */ #define UP 4 /* cursor up */ #define E2 5 /* second level of ESC processing */ #define rS 6 /* reset */ #define IC 7 /* insert chars */ #define DN 8 /* cursor down */ #define RT 9 /* cursor right */ #define LT 10 /* cursor left */ #define CM 11 /* cursor motion */ #define ED 12 /* erase in display */ #define EL 13 /* erase in line */ #define IL 14 /* insert lines */ #define DL 15 /* delete lines */ #define DC 16 /* delete characters */ #define SG 17 /* set graphic rendition */ #define BL 18 /* ring bell */ #define NP 19 /* new page */ #define BS 20 /* backspace */ #define CR 21 /* carriage return */ #define LF 22 /* line feed */ #define HT 23 /* horizontal tab */ #define E1 24 /* first level of ESC processing */ #define Xx 25 /* undefined control character (nop) */ #define Pc 26 /* printing character */ #define Sc 27 /* semicolon (after ESC [) */ #define Dg 28 /* digit (after ESC [ or ESC [ ?) */ #define RI 29 /* reverse index */ #define DA 30 /* send device attributes */ #define SM 31 /* set mode */ #define RM 32 /* reset mode */ #define DO 33 /* return terminal ID (obsolete) */ #define SR 34 /* device status report */ #define CS 35 /* character set designate */ #define E3 36 /* third level of ESC processing */ #define DS 37 /* DEC private set */ #define DR 38 /* DEC private reset */ #define DV 39 /* DEC private save */ #define DT 40 /* DEC private restore */ #define SS 41 /* set scrolling region */ #define TM 42 /* text mode (ESC ]) */ #define T2 43 /* semicolon (after ESC ]) */ #define TX 44 /* text parameter (after ESC ] n ;) */ #define TB 45 /* text parameter done (ESC ] n ; xxx BEL) */ #define TS 46 /* tab set */ #define TC 47 /* tab clear */ #define C2 48 /* character set designate (finish) */ #define G0 49 /* select G0 character set */ #define G1 50 /* select G1 character set */ #define G2 51 /* select G2 character set */ #define G3 52 /* select G3 character set */ #define S2 53 /* select G2 for next character */ #define S3 54 /* select G3 for next character */ #define MB 55 /* process multi-byte character */ static enum state { DATA = 0, ESC = 1, CSDES = 2, N1 = 3, DECP = 4, TEXT = 5, TEXT2 = 6, MBPEND = 7 } state = DATA; static enum state ansi_data_mode(int, int); static enum state dec_save_cursor(int, int); static enum state dec_restore_cursor(int, int); static enum state ansi_newline(int, int); static enum state ansi_cursor_up(int, int); static enum state ansi_esc2(int, int); static enum state ansi_reset(int, int); static enum state ansi_insert_chars(int, int); static enum state ansi_cursor_down(int, int); static enum state ansi_cursor_right(int, int); static enum state ansi_cursor_left(int, int); static enum state ansi_cursor_motion(int, int); static enum state ansi_erase_in_display(int, int); static enum state ansi_erase_in_line(int, int); static enum state ansi_insert_lines(int, int); static enum state ansi_delete_lines(int, int); static enum state ansi_delete_chars(int, int); static enum state ansi_sgr(int, int); static enum state ansi_bell(int, int); static enum state ansi_newpage(int, int); static enum state ansi_backspace(int, int); static enum state ansi_cr(int, int); static enum state ansi_lf(int, int); static enum state ansi_htab(int, int); static enum state ansi_escape(int, int); static enum state ansi_nop(int, int); static enum state ansi_printing(int, int); static enum state ansi_semicolon(int, int); static enum state ansi_digit(int, int); static enum state ansi_reverse_index(int, int); static enum state ansi_send_attributes(int, int); static enum state ansi_set_mode(int, int); static enum state ansi_reset_mode(int, int); static enum state dec_return_terminal_id(int, int); static enum state ansi_status_report(int, int); static enum state ansi_cs_designate(int, int); static enum state ansi_esc3(int, int); static enum state dec_set(int, int); static enum state dec_reset(int, int); static enum state dec_save(int, int); static enum state dec_restore(int, int); static enum state dec_scrolling_region(int, int); static enum state xterm_text_mode(int, int); static enum state xterm_text_semicolon(int, int); static enum state xterm_text(int, int); static enum state xterm_text_do(int, int); static enum state ansi_htab_set(int, int); static enum state ansi_htab_clear(int, int); static enum state ansi_cs_designate2(int, int); static enum state ansi_select_g0(int, int); static enum state ansi_select_g1(int, int); static enum state ansi_select_g2(int, int); static enum state ansi_select_g3(int, int); static enum state ansi_one_g2(int, int); static enum state ansi_one_g3(int, int); static enum state ansi_multibyte(int, int); typedef enum state (*afn_t)(int, int); static afn_t ansi_fn[] = { /* 0 */ &ansi_data_mode, /* 1 */ &dec_save_cursor, /* 2 */ &dec_restore_cursor, /* 3 */ &ansi_newline, /* 4 */ &ansi_cursor_up, /* 5 */ &ansi_esc2, /* 6 */ &ansi_reset, /* 7 */ &ansi_insert_chars, /* 8 */ &ansi_cursor_down, /* 9 */ &ansi_cursor_right, /* 10 */ &ansi_cursor_left, /* 11 */ &ansi_cursor_motion, /* 12 */ &ansi_erase_in_display, /* 13 */ &ansi_erase_in_line, /* 14 */ &ansi_insert_lines, /* 15 */ &ansi_delete_lines, /* 16 */ &ansi_delete_chars, /* 17 */ &ansi_sgr, /* 18 */ &ansi_bell, /* 19 */ &ansi_newpage, /* 20 */ &ansi_backspace, /* 21 */ &ansi_cr, /* 22 */ &ansi_lf, /* 23 */ &ansi_htab, /* 24 */ &ansi_escape, /* 25 */ &ansi_nop, /* 26 */ &ansi_printing, /* 27 */ &ansi_semicolon, /* 28 */ &ansi_digit, /* 29 */ &ansi_reverse_index, /* 30 */ &ansi_send_attributes, /* 31 */ &ansi_set_mode, /* 32 */ &ansi_reset_mode, /* 33 */ &dec_return_terminal_id, /* 34 */ &ansi_status_report, /* 35 */ &ansi_cs_designate, /* 36 */ &ansi_esc3, /* 37 */ &dec_set, /* 38 */ &dec_reset, /* 39 */ &dec_save, /* 40 */ &dec_restore, /* 41 */ &dec_scrolling_region, /* 42 */ &xterm_text_mode, /* 43 */ &xterm_text_semicolon, /* 44 */ &xterm_text, /* 45 */ &xterm_text_do, /* 46 */ &ansi_htab_set, /* 47 */ &ansi_htab_clear, /* 48 */ &ansi_cs_designate2, /* 49 */ &ansi_select_g0, /* 50 */ &ansi_select_g1, /* 51 */ &ansi_select_g2, /* 52 */ &ansi_select_g3, /* 53 */ &ansi_one_g2, /* 54 */ &ansi_one_g3, /* 55 */ &ansi_multibyte, }; static unsigned char st[8][256] = { /* * State table for base processing (state == DATA) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,BL,BS,HT,LF,LF,NP,CR,G1,G0, /* 10 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,E1,Xx,Xx,Xx,Xx, /* 20 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 30 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 40 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 50 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 60 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 70 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Xx, /* 80 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx, /* 90 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx, /* a0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* b0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* c0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* d0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* e0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* f0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc }, /* * State table for ESC processing (state == ESC) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0,CS,CS,CS,CS, 0, 0, 0, 0, /* 30 */ 0, 0, 0, 0, 0, 0, 0,SC,RC, 0, 0, 0, 0, 0, 0, 0, /* 40 */ 0, 0, 0, 0, 0,NL, 0, 0,TS, 0, 0, 0, 0,RI,S2,S3, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,E2, 0,TM, 0, 0, /* 60 */ 0, 0, 0,rS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,G2,G3, /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC ()*+ C processing (state == CSDES) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ C2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 40 */ 0,C2,C2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC [ processing (state == N1) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg, 0,Sc, 0, 0, 0,E3, /* 40 */ IC,UP,DN,RT,LT, 0, 0, 0,CM, 0,ED,EL,IL,DL, 0, 0, /* 50 */ DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0,DA, 0, 0,CM,TC,SM, 0, 0, 0,RM,SG,SR, 0, /* 70 */ 0, 0,SS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC [ ? processing (state == DECP) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg, 0, 0, 0, 0, 0, 0, /* 40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0, 0, 0, 0, 0, 0,DS, 0, 0, 0,DR, 0, 0, 0, /* 70 */ 0, 0,DT,DV, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC ] processing (state == TEXT) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg, 0,T2, 0, 0, 0, 0, /* 40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC ] n ; processing (state == TEXT2) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0,TB, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 30 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 40 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 50 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 60 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 70 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,Xx, /* 80 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 90 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* a0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* b0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* c0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* d0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* e0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* f0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX }, /* * State table for multi-byte characters (state == MBPEND) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 10 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 20 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 30 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 40 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 50 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 60 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 70 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 80 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 90 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* a0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* b0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* c0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* d0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* e0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* f0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB }, }; /* Character sets. */ #define CS_G0 0 #define CS_G1 1 #define CS_G2 2 #define CS_G3 3 /* Character set designations. */ #define CSD_LD 0 #define CSD_UK 1 #define CSD_US 2 static int saved_cursor = 0; #define NN 20 static int n[NN], nx = 0; #define NT 256 static char text[NT + 1]; static int tx = 0; static int ansi_ch; static unsigned char gr = 0; static unsigned char saved_gr = 0; static unsigned char fg = 0; static unsigned char saved_fg = 0; static unsigned char bg = 0; static unsigned char saved_bg = 0; static int cset = CS_G0; static int saved_cset = CS_G0; static int csd[4] = { CSD_US, CSD_US, CSD_US, CSD_US }; static int saved_csd[4] = { CSD_US, CSD_US, CSD_US, CSD_US }; static int once_cset = -1; static int insert_mode = 0; static int auto_newline_mode = 0; static int appl_cursor = 0; static int saved_appl_cursor = 0; static int wraparound_mode = 1; static int saved_wraparound_mode = 1; static int rev_wraparound_mode = 0; static int saved_rev_wraparound_mode = 0; static int allow_wide_mode = 0; static int saved_allow_wide_mode = 0; static int wide_mode = 0; static int saved_wide_mode = 0; static Boolean saved_altbuffer = False; static int scroll_top = -1; static int scroll_bottom = -1; static unsigned char *tabs = (unsigned char *) NULL; static char gnnames[] = "()*+"; static char csnames[] = "0AB"; static int cs_to_change; static int pmi = 0; static char pending_mbs[MB_MAX]; static int pe = 0; static unsigned char ped[PE_MAX]; static Boolean held_wrap = False; static void ansi_scroll(void); static enum state ansi_data_mode(int ig1 _is_unused, int ig2 _is_unused) { return DATA; } static enum state dec_save_cursor(int ig1 _is_unused, int ig2 _is_unused) { int i; saved_cursor = cursor_addr; saved_cset = cset; for (i = 0; i < 4; i++) saved_csd[i] = csd[i]; saved_fg = fg; saved_bg = bg; saved_gr = gr; return DATA; } static enum state dec_restore_cursor(int ig1 _is_unused, int ig2 _is_unused) { int i; cset = saved_cset; for (i = 0; i < 4; i++) csd[i] = saved_csd[i]; fg = saved_fg; bg = saved_bg; gr = saved_gr; cursor_move(saved_cursor); held_wrap = False; return DATA; } static enum state ansi_newline(int ig1 _is_unused, int ig2 _is_unused) { int nc; cursor_move(cursor_addr - (cursor_addr % COLS)); nc = cursor_addr + COLS; if (nc < scroll_bottom * COLS) cursor_move(nc); else ansi_scroll(); held_wrap = False; return DATA; } static enum state ansi_cursor_up(int nn, int ig2 _is_unused) { int rr; if (nn < 1) nn = 1; rr = cursor_addr / COLS; if (rr - nn < 0) cursor_move(cursor_addr % COLS); else cursor_move(cursor_addr - (nn * COLS)); held_wrap = False; return DATA; } static enum state ansi_esc2(int ig1 _is_unused, int ig2 _is_unused) { register int i; for (i = 0; i < NN; i++) n[i] = 0; nx = 0; return N1; } static enum state ansi_reset(int ig1 _is_unused, int ig2 _is_unused) { int i; static Boolean first = True; gr = 0; saved_gr = 0; fg = 0; saved_fg = 0; bg = 0; saved_bg = 0; cset = CS_G0; saved_cset = CS_G0; csd[0] = csd[1] = csd[2] = csd[3] = CSD_US; saved_csd[0] = saved_csd[1] = saved_csd[2] = saved_csd[3] = CSD_US; once_cset = -1; saved_cursor = 0; insert_mode = 0; auto_newline_mode = 0; appl_cursor = 0; saved_appl_cursor = 0; wraparound_mode = 1; saved_wraparound_mode = 1; rev_wraparound_mode = 0; saved_rev_wraparound_mode = 0; allow_wide_mode = 0; saved_allow_wide_mode = 0; wide_mode = 0; allow_wide_mode = 0; saved_altbuffer = False; scroll_top = 1; scroll_bottom = ROWS; Replace(tabs, (unsigned char *)Malloc((COLS+7)/8)); for (i = 0; i < (COLS+7)/8; i++) tabs[i] = 0x01; held_wrap = False; if (!first) { ctlr_altbuffer(True); ctlr_aclear(0, ROWS * COLS, 1); ctlr_altbuffer(False); ctlr_clear(False); screen_80(); } first = False; pmi = 0; return DATA; } static enum state ansi_insert_chars(int nn, int ig2 _is_unused) { int cc = cursor_addr % COLS; /* current col */ int mc = COLS - cc; /* max chars that can be inserted */ int ns; /* chars that are shifting */ if (nn < 1) nn = 1; if (nn > mc) nn = mc; /* Move the surviving chars right */ ns = mc - nn; if (ns) ctlr_bcopy(cursor_addr, cursor_addr + nn, ns, 1); /* Clear the middle of the line */ ctlr_aclear(cursor_addr, nn, 1); return DATA; } static enum state ansi_cursor_down(int nn, int ig2 _is_unused) { int rr; if (nn < 1) nn = 1; rr = cursor_addr / COLS; if (rr + nn >= ROWS) cursor_move((ROWS-1)*COLS + (cursor_addr%COLS)); else cursor_move(cursor_addr + (nn * COLS)); held_wrap = False; return DATA; } static enum state ansi_cursor_right(int nn, int ig2 _is_unused) { int cc; if (nn < 1) nn = 1; cc = cursor_addr % COLS; if (cc == COLS-1) return DATA; if (cc + nn >= COLS) nn = COLS - 1 - cc; cursor_move(cursor_addr + nn); held_wrap = False; return DATA; } static enum state ansi_cursor_left(int nn, int ig2 _is_unused) { int cc; if (held_wrap) { held_wrap = False; return DATA; } if (nn < 1) nn = 1; cc = cursor_addr % COLS; if (!cc) return DATA; if (nn > cc) nn = cc; cursor_move(cursor_addr - nn); return DATA; } static enum state ansi_cursor_motion(int n1, int n2) { if (n1 < 1) n1 = 1; if (n1 > ROWS) n1 = ROWS; if (n2 < 1) n2 = 1; if (n2 > COLS) n2 = COLS; cursor_move((n1 - 1) * COLS + (n2 - 1)); held_wrap = False; return DATA; } static enum state ansi_erase_in_display(int nn, int ig2 _is_unused) { switch (nn) { case 0: /* below */ ctlr_aclear(cursor_addr, (ROWS * COLS) - cursor_addr, 1); break; case 1: /* above */ ctlr_aclear(0, cursor_addr + 1, 1); break; case 2: /* all (without moving cursor) */ if (cursor_addr == 0 && !is_altbuffer) scroll_save(ROWS, True); ctlr_aclear(0, ROWS * COLS, 1); break; } return DATA; } static enum state ansi_erase_in_line(int nn, int ig2 _is_unused) { int nc = cursor_addr % COLS; switch (nn) { case 0: /* to right */ ctlr_aclear(cursor_addr, COLS - nc, 1); break; case 1: /* to left */ ctlr_aclear(cursor_addr - nc, nc+1, 1); break; case 2: /* all */ ctlr_aclear(cursor_addr - nc, COLS, 1); break; } return DATA; } static enum state ansi_insert_lines(int nn, int ig2 _is_unused) { int rr = cursor_addr / COLS; /* current row */ int mr = scroll_bottom - rr; /* rows left at and below this one */ int ns; /* rows that are shifting */ /* If outside of the scrolling region, do nothing */ if (rr < scroll_top - 1 || rr >= scroll_bottom) return DATA; if (nn < 1) nn = 1; if (nn > mr) nn = mr; /* Move the victims down */ ns = mr - nn; if (ns) ctlr_bcopy(rr * COLS, (rr + nn) * COLS, ns * COLS, 1); /* Clear the middle of the screen */ ctlr_aclear(rr * COLS, nn * COLS, 1); return DATA; } static enum state ansi_delete_lines(int nn, int ig2 _is_unused) { int rr = cursor_addr / COLS; /* current row */ int mr = scroll_bottom - rr; /* max rows that can be deleted */ int ns; /* rows that are shifting */ /* If outside of the scrolling region, do nothing */ if (rr < scroll_top - 1 || rr >= scroll_bottom) return DATA; if (nn < 1) nn = 1; if (nn > mr) nn = mr; /* Move the surviving rows up */ ns = mr - nn; if (ns) ctlr_bcopy((rr + nn) * COLS, rr * COLS, ns * COLS, 1); /* Clear the rest of the screen */ ctlr_aclear((rr + ns) * COLS, nn * COLS, 1); return DATA; } static enum state ansi_delete_chars(int nn, int ig2 _is_unused) { int cc = cursor_addr % COLS; /* current col */ int mc = COLS - cc; /* max chars that can be deleted */ int ns; /* chars that are shifting */ if (nn < 1) nn = 1; if (nn > mc) nn = mc; /* Move the surviving chars left */ ns = mc - nn; if (ns) ctlr_bcopy(cursor_addr + nn, cursor_addr, ns, 1); /* Clear the end of the line */ ctlr_aclear(cursor_addr + ns, nn, 1); return DATA; } static enum state ansi_sgr(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 0: gr = 0; fg = 0; bg = 0; break; case 1: gr |= GR_INTENSIFY; break; case 4: gr |= GR_UNDERLINE; break; case 5: gr |= GR_BLINK; break; case 7: gr |= GR_REVERSE; break; case 30: fg = 0xf0; /* black */ break; case 31: fg = 0xf2; /* red */ break; case 32: fg = 0xf4; /* green */ break; case 33: fg = 0xf6; /* yellow */ break; case 34: fg = 0xf1; /* blue */ break; case 35: fg = 0xf3; /* magenta */ break; case 36: #if defined(WC3270) /*[*/ fg = 0xf6; /* turquoise */ #else /*][*/ fg = 0xfd; /* cyan */ #endif /*]*/ break; case 37: #if defined(WC3270) /*[*/ fg = 0xf7; /* white */ #else /*][*/ fg = 0xff; /* white */ #endif /*]*/ break; case 39: fg = 0; /* default */ break; case 40: bg = 0xf0; /* black */ break; case 41: bg = 0xf2; /* red */ break; case 42: bg = 0xf4; /* green */ break; case 43: bg = 0xf6; /* yellow */ break; case 44: bg = 0xf1; /* blue */ break; case 45: bg = 0xf3; /* magenta */ break; case 46: #if defined(WC3270) /*[*/ bg = 0xf6; /* turquoise */ #else /*][*/ bg = 0xfd; /* cyan */ #endif /*]*/ break; case 47: #if defined(WC3270) /*[*/ bg = 0xf7; /* white */ #else /*][*/ bg = 0xff; /* white */ #endif /*]*/ break; case 49: bg = 0; /* default */ break; } return DATA; } static enum state ansi_bell(int ig1 _is_unused, int ig2 _is_unused) { ring_bell(); return DATA; } static enum state ansi_newpage(int ig1 _is_unused, int ig2 _is_unused) { ctlr_clear(False); return DATA; } static enum state ansi_backspace(int ig1 _is_unused, int ig2 _is_unused) { if (held_wrap) { held_wrap = False; return DATA; } if (rev_wraparound_mode) { if (cursor_addr > (scroll_top - 1) * COLS) cursor_move(cursor_addr - 1); } else { if (cursor_addr % COLS) cursor_move(cursor_addr - 1); } return DATA; } static enum state ansi_cr(int ig1 _is_unused, int ig2 _is_unused) { if (cursor_addr % COLS) cursor_move(cursor_addr - (cursor_addr % COLS)); if (auto_newline_mode) (void) ansi_lf(0, 0); held_wrap = False; return DATA; } static enum state ansi_lf(int ig1 _is_unused, int ig2 _is_unused) { int nc = cursor_addr + COLS; held_wrap = False; /* If we're below the scrolling region, don't scroll. */ if ((cursor_addr / COLS) >= scroll_bottom) { if (nc < ROWS * COLS) cursor_move(nc); return DATA; } if (nc < scroll_bottom * COLS) cursor_move(nc); else ansi_scroll(); return DATA; } static enum state ansi_htab(int ig1 _is_unused, int ig2 _is_unused) { int col = cursor_addr % COLS; int i; held_wrap = False; if (col == COLS-1) return DATA; for (i = col+1; i < COLS-1; i++) if (tabs[i/8] & 1<<(i%8)) break; cursor_move(cursor_addr - col + i); return DATA; } static enum state ansi_escape(int ig1 _is_unused, int ig2 _is_unused) { return ESC; } static enum state ansi_nop(int ig1 _is_unused, int ig2 _is_unused) { return DATA; } #define PWRAP { \ nc = cursor_addr + 1; \ if (nc < scroll_bottom * COLS) \ cursor_move(nc); \ else { \ if (cursor_addr / COLS >= scroll_bottom) \ cursor_move(cursor_addr / COLS * COLS); \ else { \ ansi_scroll(); \ cursor_move(nc - COLS); \ } \ } \ } static enum state ansi_printing(int ig1 _is_unused, int ig2 _is_unused) { int nc; unsigned short ebc_ch; #if defined(X3270_DBCS) /*[*/ enum dbcs_state d; #endif /*]*/ if ((pmi == 0) && (ansi_ch & 0x80)) { char mbs[2]; int consumed; enum me_fail fail; unsigned long ucs4; mbs[0] = (char)ansi_ch; mbs[1] = '\0'; ucs4 = multibyte_to_unicode(mbs, 1, &consumed, &fail); if (ucs4 == 0) { switch (fail) { case ME_SHORT: /* Start munching multi-byte. */ pmi = 0; pending_mbs[pmi++] = (char)ansi_ch; return MBPEND; case ME_INVALID: default: /* Invalid multi-byte -> '?' */ ansi_ch = '?'; break; } } else { ansi_ch = ucs4; } } pmi = 0; /* Translate to EBCDIC to see if it's DBCS. */ ebc_ch = unicode_to_ebcdic(ansi_ch); if (ebc_ch & ~0xff) { #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif { ansi_ch = '?'; ebc_ch = asc2ebc0['?']; } } if (held_wrap) { PWRAP; held_wrap = False; } if (insert_mode) (void) ansi_insert_chars(1, 0); #if defined(X3270_DBCS) /*[*/ d = ctlr_dbcs_state(cursor_addr); #endif /*]*/ switch (csd[(once_cset != -1) ? once_cset : cset]) { case CSD_LD: /* line drawing "0" */ if (ansi_ch >= 0x5f && ansi_ch <= 0x7e) ctlr_add(cursor_addr, (unsigned char)(ansi_ch - 0x5f), CS_LINEDRAW); else if (ebc_ch & ~0xff) ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); else ctlr_add(cursor_addr, ebc_ch, CS_BASE); break; case CSD_UK: /* UK "A" */ if (ansi_ch == '#') ctlr_add(cursor_addr, 0x1e, CS_LINEDRAW); else if (ebc_ch & ~0xff) ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); else ctlr_add(cursor_addr, ebc_ch, CS_BASE); break; case CSD_US: /* US "B" */ #if !defined(X3270_DBCS) /*[*/ if (ebc_ch & ~0xff) ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); else ctlr_add(cursor_addr, ebc_ch, CS_BASE); #else /*][*/ if (ebc_ch & ~0xff) { /* Add a DBCS character to the buffer. */ if (!dbcs) { /* Not currently using a DBCS character set. */ ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); break; } /* Get past the last column. */ if ((cursor_addr % COLS) == (COLS-1)) { if (!wraparound_mode) return DATA; ctlr_add(cursor_addr, EBC_space, CS_BASE); ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); cursor_addr = cursor_addr + 1; d = ctlr_dbcs_state(cursor_addr); } /* Add the left half. */ ctlr_add(cursor_addr, (ebc_ch >> 8) & 0xff, CS_DBCS); ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); /* Handle unaligned DBCS overwrite. */ if (d == DBCS_RIGHT || d == DBCS_RIGHT_WRAP) { int xaddr; xaddr = cursor_addr; DEC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ea_buf[xaddr].db = DBCS_NONE; } /* Add the right half. */ INC_BA(cursor_addr); ctlr_add(cursor_addr, ebc_ch & 0xff, CS_DBCS); ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); /* Handle cursor wrap. */ if (wraparound_mode) { if (!((cursor_addr + 1) % COLS)) { held_wrap = True; } else { PWRAP; } } else { if ((cursor_addr % COLS) != (COLS - 1)) cursor_move(cursor_addr + 1); } (void) ctlr_dbcs_postprocess(); return DATA; } /* Add an SBCS character to the buffer. */ ctlr_add(cursor_addr, ebc_ch, CS_BASE); #endif /*]*/ break; } #if defined(X3270_DBCS) /*[*/ /* Handle conflicts with existing DBCS characters. */ if (d == DBCS_RIGHT || d == DBCS_RIGHT_WRAP) { int xaddr; xaddr = cursor_addr; DEC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ea_buf[xaddr].db = DBCS_NONE; ea_buf[cursor_addr].db = DBCS_NONE; (void) ctlr_dbcs_postprocess(); } if (d == DBCS_LEFT || d == DBCS_LEFT_WRAP) { int xaddr; xaddr = cursor_addr; INC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ea_buf[xaddr].db = DBCS_NONE; ea_buf[cursor_addr].db = DBCS_NONE; (void) ctlr_dbcs_postprocess(); } #endif /*]*/ once_cset = -1; ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); if (wraparound_mode) { /* * There is a fascinating behavior of xterm which we will * attempt to emulate here. When a character is printed in the * last column, the cursor sticks there, rather than wrapping * to the next line. Another printing character will put the * cursor in column 2 of the next line. One cursor-left * sequence won't budge it; two will. Saving and restoring * the cursor won't move the cursor, but will cancel all of * the above behaviors... * * In my opinion, very strange, but among other things, 'vi' * depends on it! */ if (!((cursor_addr + 1) % COLS)) { held_wrap = True; } else { PWRAP; } } else { if ((cursor_addr % COLS) != (COLS - 1)) cursor_move(cursor_addr + 1); } return DATA; } static enum state ansi_multibyte(int ig1, int ig2) { unsigned long ucs4; int consumed; enum me_fail fail; afn_t fn; if (pmi >= MB_MAX - 2) { /* String too long. */ pmi = 0; ansi_ch = '?'; return ansi_printing(ig1, ig2); } pending_mbs[pmi++] = (char)ansi_ch; pending_mbs[pmi] = '\0'; ucs4 = multibyte_to_unicode(pending_mbs, pmi, &consumed, &fail); if (ucs4 != 0) { /* Success! */ ansi_ch = ucs4; return ansi_printing(ig1, ig2); } if (fail == ME_SHORT) { /* Go get more. */ return MBPEND; } /* Failure. */ /* Replace the sequence with '?'. */ ucs4 = ansi_ch; /* save for later */ pmi = 0; ansi_ch = '?'; (void) ansi_printing(ig1, ig2); /* * Reprocess whatever we choked on (especially if it's a control * character). */ ansi_ch = ucs4; state = DATA; fn = ansi_fn[st[(int)DATA][ansi_ch]]; return (*fn)(n[0], n[1]); } static enum state ansi_semicolon(int ig1 _is_unused, int ig2 _is_unused) { if (nx >= NN) return DATA; nx++; return state; } static enum state ansi_digit(int ig1 _is_unused, int ig2 _is_unused) { n[nx] = (n[nx] * 10) + (ansi_ch - '0'); return state; } static enum state ansi_reverse_index(int ig1 _is_unused, int ig2 _is_unused) { int rr = cursor_addr / COLS; /* current row */ int np = (scroll_top - 1) - rr; /* number of rows in the scrolling region, above this line */ int ns; /* number of rows to scroll */ int nn = 1; /* number of rows to index */ held_wrap = False; /* If the cursor is above the scrolling region, do a simple margined cursor up. */ if (np < 0) { (void) ansi_cursor_up(nn, 0); return DATA; } /* Split the number of lines to scroll into ns */ if (nn > np) { ns = nn - np; nn = np; } else ns = 0; /* Move the cursor up without scrolling */ if (nn) (void) ansi_cursor_up(nn, 0); /* Insert lines at the top for backward scroll */ if (ns) (void) ansi_insert_lines(ns, 0); return DATA; } static enum state ansi_send_attributes(int nn, int ig2 _is_unused) { if (!nn) net_sends("\033[?1;2c"); return DATA; } static enum state dec_return_terminal_id(int ig1 _is_unused, int ig2 _is_unused) { return ansi_send_attributes(0, 0); } static enum state ansi_set_mode(int nn, int ig2 _is_unused) { switch (nn) { case 4: insert_mode = 1; break; case 20: auto_newline_mode = 1; break; } return DATA; } static enum state ansi_reset_mode(int nn, int ig2 _is_unused) { switch (nn) { case 4: insert_mode = 0; break; case 20: auto_newline_mode = 0; break; } return DATA; } static enum state ansi_status_report(int nn, int ig2 _is_unused) { static char cpr[11]; switch (nn) { case 5: net_sends("\033[0n"); break; case 6: (void) sprintf(cpr, "\033[%d;%dR", (cursor_addr/COLS) + 1, (cursor_addr%COLS) + 1); net_sends(cpr); break; } return DATA; } static enum state ansi_cs_designate(int ig1 _is_unused, int ig2 _is_unused) { cs_to_change = strchr(gnnames, ansi_ch) - gnnames; return CSDES; } static enum state ansi_cs_designate2(int ig1 _is_unused, int ig2 _is_unused) { csd[cs_to_change] = strchr(csnames, ansi_ch) - csnames; return DATA; } static enum state ansi_select_g0(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G0; return DATA; } static enum state ansi_select_g1(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G1; return DATA; } static enum state ansi_select_g2(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G2; return DATA; } static enum state ansi_select_g3(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G3; return DATA; } static enum state ansi_one_g2(int ig1 _is_unused, int ig2 _is_unused) { once_cset = CS_G2; return DATA; } static enum state ansi_one_g3(int ig1 _is_unused, int ig2 _is_unused) { once_cset = CS_G3; return DATA; } static enum state ansi_esc3(int ig1 _is_unused, int ig2 _is_unused) { return DECP; } static enum state dec_set(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* application cursor keys */ appl_cursor = 1; break; case 2: /* set G0-G3 */ csd[0] = csd[1] = csd[2] = csd[3] = CSD_US; break; case 3: /* 132-column mode */ if (allow_wide_mode) { wide_mode = 1; screen_132(); } break; case 7: /* wraparound mode */ wraparound_mode = 1; break; case 40: /* allow 80/132 switching */ allow_wide_mode = 1; break; case 45: /* reverse-wraparound mode */ rev_wraparound_mode = 1; break; case 47: /* alt buffer */ case 1049: ctlr_altbuffer(True); break; } return DATA; } static enum state dec_reset(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* normal cursor keys */ appl_cursor = 0; break; case 3: /* 132-column mode */ if (allow_wide_mode) { wide_mode = 0; screen_80(); } break; case 7: /* no wraparound mode */ wraparound_mode = 0; break; case 40: /* allow 80/132 switching */ allow_wide_mode = 0; break; case 45: /* no reverse-wraparound mode */ rev_wraparound_mode = 0; break; case 47: /* alt buffer */ case 1049: ctlr_altbuffer(False); break; } return DATA; } static enum state dec_save(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* application cursor keys */ saved_appl_cursor = appl_cursor; break; case 3: /* 132-column mode */ saved_wide_mode = wide_mode; break; case 7: /* wraparound mode */ saved_wraparound_mode = wraparound_mode; break; case 40: /* allow 80/132 switching */ saved_allow_wide_mode = allow_wide_mode; break; case 45: /* reverse-wraparound mode */ saved_rev_wraparound_mode = rev_wraparound_mode; break; case 47: /* alt buffer */ case 1049: saved_altbuffer = is_altbuffer; break; } return DATA; } static enum state dec_restore(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* application cursor keys */ appl_cursor = saved_appl_cursor; break; case 3: /* 132-column mode */ if (allow_wide_mode) { wide_mode = saved_wide_mode; if (wide_mode) screen_132(); else screen_80(); } break; case 7: /* wraparound mode */ wraparound_mode = saved_wraparound_mode; break; case 40: /* allow 80/132 switching */ allow_wide_mode = saved_allow_wide_mode; break; case 45: /* reverse-wraparound mode */ rev_wraparound_mode = saved_rev_wraparound_mode; break; case 47: /* alt buffer */ case 1049: /* alt buffer */ ctlr_altbuffer(saved_altbuffer); break; } return DATA; } static enum state dec_scrolling_region(int top, int bottom) { if (top < 1) top = 1; if (bottom > ROWS) bottom = ROWS; if (top <= bottom && (top > 1 || bottom < ROWS)) { scroll_top = top; scroll_bottom = bottom; cursor_move(0); } else { scroll_top = 1; scroll_bottom = ROWS; } return DATA; } static enum state xterm_text_mode(int ig1 _is_unused, int ig2 _is_unused) { nx = 0; n[0] = 0; return TEXT; } static enum state xterm_text_semicolon(int ig1 _is_unused, int ig2 _is_unused) { tx = 0; return TEXT2; } static enum state xterm_text(int ig1 _is_unused, int ig2 _is_unused) { if (tx < NT) text[tx++] = ansi_ch; return state; } static enum state xterm_text_do(int ig1 _is_unused, int ig2 _is_unused) { #if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ text[tx] = '\0'; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ switch (n[0]) { case 0: /* icon name and window title */ XtVaSetValues(toplevel, XtNiconName, text, NULL); XtVaSetValues(toplevel, XtNtitle, text, NULL); break; case 1: /* icon name */ XtVaSetValues(toplevel, XtNiconName, text, NULL); break; case 2: /* window_title */ XtVaSetValues(toplevel, XtNtitle, text, NULL); break; case 50: /* font */ screen_newfont(text, False, False); break; default: break; } #endif /*]*/ #if defined(WC3270) /*[*/ switch (n[0]) { case 0: /* icon name and window title */ case 2: /* window_title */ screen_title(text); break; default: break; } #endif /*]*/ return DATA; } static enum state ansi_htab_set(int ig1 _is_unused, int ig2 _is_unused) { register int col = cursor_addr % COLS; tabs[col/8] |= 1<<(col%8); return DATA; } static enum state ansi_htab_clear(int nn, int ig2 _is_unused) { register int col, i; switch (nn) { case 0: col = cursor_addr % COLS; tabs[col/8] &= ~(1<<(col%8)); break; case 3: for (i = 0; i < (COLS+7)/8; i++) tabs[i] = 0; break; } return DATA; } /* * Scroll the screen or the scrolling region. */ static void ansi_scroll(void) { held_wrap = False; /* Save the top line */ if (scroll_top == 1 && scroll_bottom == ROWS) { if (!is_altbuffer) scroll_save(1, False); ctlr_scroll(); return; } /* Scroll all but the last line up */ if (scroll_bottom > scroll_top) ctlr_bcopy(scroll_top * COLS, (scroll_top - 1) * COLS, (scroll_bottom - scroll_top) * COLS, 1); /* Clear the last line */ ctlr_aclear((scroll_bottom - 1) * COLS, COLS, 1); } /* Callback for when we enter ANSI mode. */ static void ansi_in3270(Boolean in3270) { if (!in3270) (void) ansi_reset(0, 0); } /* * External entry points */ void ansi_init(void) { register_schange(ST_3270_MODE, ansi_in3270); } void ansi_process(unsigned int c) { afn_t fn; c &= 0xff; ansi_ch = c; scroll_to_bottom(); #if defined(X3270_TRACE) /*[*/ if (toggled(SCREEN_TRACE)) trace_char((char)c); #endif /*]*/ fn = ansi_fn[st[(int)state][c]]; state = (*fn)(n[0], n[1]); /* Saving pending escape data. */ if (state == DATA) pe = 0; else if (pe < PE_MAX) ped[pe++] = c; } void ansi_send_up(void) { if (appl_cursor) net_sends("\033OA"); else net_sends("\033[A"); } void ansi_send_down(void) { if (appl_cursor) net_sends("\033OB"); else net_sends("\033[B"); } void ansi_send_right(void) { if (appl_cursor) net_sends("\033OC"); else net_sends("\033[C"); } void ansi_send_left(void) { if (appl_cursor) net_sends("\033OD"); else net_sends("\033[D"); } void ansi_send_home(void) { net_sends("\033[H"); } void ansi_send_clear(void) { net_sends("\033[2K"); } void ansi_send_pf(int nn) { static char fn_buf[6]; static int code[] = { /* * F1 through F12 are VT220 codes. (Note the discontinuity -- * \E[16~ is missing) */ 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 23, 24, /* * F13 through F20 are defined for xterm. */ 25, 26, 28, 29, 31, 32, 33, 34, /* * F21 through F24 are x3270 extensions. */ 35, 36, 37, 38 }; if (nn < 1 || (unsigned)nn > sizeof(code)/sizeof(code[0])) return; (void) sprintf(fn_buf, "\033[%d~", code[nn-1]); net_sends(fn_buf); } void ansi_send_pa(int nn) { static char fn_buf[4]; static char code[4] = { 'P', 'Q', 'R', 'S' }; if (nn < 1 || nn > 4) return; (void) sprintf(fn_buf, "\033O%c", code[nn-1]); net_sends(fn_buf); } void toggle_lineWrap(struct toggle *t _is_unused, enum toggle_type type _is_unused) { if (toggled(LINE_WRAP)) wraparound_mode = 1; else wraparound_mode = 0; } #if defined(X3270_TRACE) /*[*/ /* Emit an SGR command. */ static void emit_sgr(int mode) { space3270out((mode < 10)? 4: 5); *obptr++ = 0x1b; *obptr++ = '['; if (mode > 9) *obptr++ = '0' + (mode / 10); *obptr++ = '0' + (mode % 10); *obptr++ = 'm'; } /* Emit a DEC Private Mode command. */ static void emit_decpriv(int mode, char op) { space3270out((mode < 10)? 5: 6); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '?'; if (mode > 9) *obptr++ = '0' + (mode / 10); *obptr++ = '0' + (mode % 10); *obptr++ = op; } /* Emit a CUP (cursor position) command. */ static void emit_cup(int baddr) { if (baddr) { char cup_buf[11]; int sl; sl = sprintf(cup_buf, "\033[%d;%dH", (baddr / COLS) + 1, (baddr % COLS) + 1); space3270out(sl); strcpy((char *)obptr, cup_buf); obptr += sl; } else { space3270out(3); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = 'H'; } } /* Emit spaces or a CUP, whichever is shorter. */ static int ansi_dump_spaces(int spaces, int baddr) { if (spaces) { char cup_buf[11]; int sl; /* * Move the cursor, if it takes less space than * expanding the spaces. * It is possible to optimize this further with clever * CU[UDFB] sequences, but not (yet) worth the effort. */ sl = sprintf(cup_buf, "\033[%d;%dH", (baddr / COLS) + 1, (baddr % COLS) + 1); if (sl < spaces) { space3270out(sl); strcpy((char *)obptr, cup_buf); obptr += sl; } else { space3270out(spaces); while (spaces--) *obptr++ = ' '; } } return 0; } /* * Snap the provided screen buffer (primary or alternate). * This is (mostly) optimized to draw the minimum necessary, assuming a * blank screen. */ static void ansi_snap_one(struct ea *buf) { int baddr; int cur_gr = 0; int cur_fg = 0; int cur_bg = 0; int spaces = 0; static int uncolor_table[16] = { /* 0xf0 */ 0, /* 0xf1 */ 4, /* 0xf2 */ 1, /* 0xf3 */ 5, /* 0xf4 */ 2, /* 0xf5 */ 0, /* can't happen */ #if defined(WC3270) /*[*/ /* 0xf6 */ 6, #else /*][*/ /* 0xf6 */ 3, #endif /*]*/ #if defined(WC3270) /*[*/ /* 0xf7 */ 7, #else /*][*/ /* 0xf7 */ 0, /* can't happen */ #endif /*]*/ /* 0xf8 */ 0, /* can't happen */ /* 0xf9 */ 0, /* can't happen */ /* 0xfa */ 0, /* can't happen */ /* 0xfb */ 0, /* can't happen */ /* 0xfc */ 0, /* can't happen */ #if defined(WC3270) /*[*/ /* 0xfd */ 0, /* can't happen */ #else /*][*/ /* 0xfd */ 6, /* can't happen */ #endif /*]*/ /* 0xfe */ 0, /* can't happen */ #if defined(WC3270) /*[*/ /* 0xff */ 0, /* can't happen */ #else /*][*/ /* 0xff */ 7, /* can't happen */ #endif /*]*/ }; char mb[16]; int len; int xlen; int i; enum dbcs_state d; int c; int last_sgr = 0; #define EMIT_SGR(n) { emit_sgr(n); last_sgr = (n); } /* Draw what's on the screen. */ baddr = 0; do { int xgr = buf[baddr].gr; /* Set the attributes. */ if (xgr != cur_gr) { spaces = ansi_dump_spaces(spaces, baddr); if ((xgr ^ cur_gr) & cur_gr) { /* * Something turned off. Turn everything off, * then turn the remaining modes on below. */ EMIT_SGR(0); xgr = 0; } else { /* * Clear the bits in xgr that are already set * in cur_gr. Turn on the new modes. */ xgr &= ~cur_gr; } /* Turn on the attributes remaining in xgr. */ if (xgr & GR_INTENSIFY) EMIT_SGR(1); if (xgr & GR_UNDERLINE) EMIT_SGR(4); if (xgr & GR_BLINK) EMIT_SGR(5); if (xgr & GR_REVERSE) EMIT_SGR(7); cur_gr = buf[baddr].gr; } /* Set the colors. */ if (buf[baddr].fg != cur_fg) { spaces = ansi_dump_spaces(spaces, baddr); if (buf[baddr].fg) c = uncolor_table[buf[baddr].fg & 0x0f]; else c = 9; EMIT_SGR(30 + c); cur_fg = buf[baddr].fg; } if (buf[baddr].bg != cur_bg) { spaces = ansi_dump_spaces(spaces, baddr); if (buf[baddr].bg) c = uncolor_table[buf[baddr].bg & 0x0f]; else c = 9; EMIT_SGR(40 + c); cur_bg = buf[baddr].bg; } /* Expand the current character to multibyte. */ d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) { int xaddr = baddr; INC_BA(xaddr); len = ebcdic_to_multibyte(buf[baddr].cc << 8 | buf[xaddr].cc, mb, sizeof(mb)); } else if (IS_RIGHT(d)) { len = 0; } else { len = ebcdic_to_multibyte(buf[baddr].cc, mb, sizeof(mb)); } if (len > 0) len--; /* terminating NUL */ xlen = 0; for (i = 0; i < len; i++) { if ((mb[i] & 0xff) == 0xff) xlen++; } /* Optimize for white space. */ if (!cur_fg && !cur_bg && !cur_gr && ((len + xlen) == 1) && (mb[0] == ' ')) { spaces++; } else { if (spaces) spaces = ansi_dump_spaces(spaces, baddr); /* Emit the current character. */ space3270out(len + xlen); for (i = 0; i < len; i++) { if ((mb[i] & 0xff) == 0xff) *obptr++ = 0xff; *obptr++ = mb[i]; } } INC_BA(baddr); } while (baddr != 0); /* Remove any attributes we set above. */ if (last_sgr != 0) emit_sgr(0); } /* Snap the contents of the screen buffers in NVT mode. */ void ansi_snap(void) { /* * Note that ea_buf is the live buffer, and aea_buf is the other * buffer. So the task here is to draw the other buffer first, * then switch modes and draw the live one. */ if (is_altbuffer) { /* Draw the primary screen first. */ ansi_snap_one(aea_buf); emit_cup(0); /* Switch to the alternate. */ emit_decpriv(47, 'h'); /* Draw the secondary, and stay in alternate mode. */ ansi_snap_one(ea_buf); } else { int i; int any = 0; static struct ea zea = { 0, 0, 0, 0, 0, 0, 0, 0 }; /* See if aea_buf has anything in it. */ for (i = 0; i < ROWS * COLS; i++) { if (memcmp(&aea_buf[i], &zea, sizeof(struct ea))) { any = 1; break; } } if (any) { /* Switch to the alternate. */ emit_decpriv(47, 'h'); /* Draw the alternate screen. */ ansi_snap_one(aea_buf); emit_cup(0); /* Switch to the primary. */ emit_decpriv(47, 'l'); } /* Draw the primary, and stay in primary mode. */ ansi_snap_one(ea_buf); } } /* * Snap the non-default terminal modes. * This is a subtle piece of logic, and may harbor a few bugs yet. */ void ansi_snap_modes(void) { int i; static char csdsel[4] = "()*+"; /* Set up the saved cursor (cursor, fg, bg, gr, cset, csd). */ if (saved_cursor != 0 || saved_fg != 0 || saved_bg != 0 || saved_gr != 0 || saved_cset != CS_G0 || saved_csd[0] != CSD_US || saved_csd[1] != CSD_US || saved_csd[2] != CSD_US || saved_csd[3] != CSD_US) { if (saved_cursor != 0) emit_cup(saved_cursor); if (saved_fg != 0) emit_sgr(30 + saved_fg); if (saved_bg != 0) emit_sgr(40 + saved_bg); if (saved_gr != 0) { if (saved_gr & GR_INTENSIFY) emit_sgr(1); if (saved_gr & GR_UNDERLINE) emit_sgr(4); if (saved_gr & GR_BLINK) emit_sgr(5); if (saved_gr & GR_REVERSE) emit_sgr(7); } if (saved_cset != CS_G0) { switch (saved_cset) { case CS_G1: space3270out(1); *obptr++ = 0x0e; break; case CS_G2: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'N'; break; case CS_G3: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'O'; break; default: break; } } for (i = 0; i < 4; i++) { if (saved_csd[i] != CSD_US) { space3270out(3); *obptr++ = 0x1b; *obptr++ = csdsel[i]; *obptr++ = gnnames[saved_csd[i]]; } } /* Emit a SAVE CURSOR to stash these away. */ space3270out(2); *obptr++ = 0x1b; *obptr++ = '7'; } /* Now set the above to their current values, except for the cursor. */ if (fg != saved_fg) emit_sgr(30 + fg); if (bg != saved_bg) emit_sgr(40 + bg); if (gr != saved_gr) { emit_sgr(0); if (gr & GR_INTENSIFY) emit_sgr(1); if (gr & GR_UNDERLINE) emit_sgr(4); if (gr & GR_BLINK) emit_sgr(5); if (gr & GR_REVERSE) emit_sgr(7); } if (cset != saved_cset) { switch (cset) { case CS_G0: space3270out(1); *obptr++ = 0x0f; break; case CS_G1: space3270out(1); *obptr++ = 0x0e; break; case CS_G2: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'n'; break; case CS_G3: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'o'; break; default: break; } } for (i = 0; i < 4; i++) { if (csd[i] != saved_csd[i]) { space3270out(3); *obptr++ = 0x1b; *obptr++ = csdsel[i]; *obptr++ = gnnames[csd[i]]; } } /* * Handle appl_cursor, wrapaparound_mode, rev_wraparound_mode, * allow_wide_mode, wide_mode and altbuffer, both the saved values and * the current ones. */ if (saved_appl_cursor) { emit_decpriv(1, 'h'); /* set */ emit_decpriv(1, 's'); /* save */ if (!appl_cursor) emit_decpriv(1, 'l'); /* reset */ } else if (appl_cursor) { emit_decpriv(1, 'h'); /* set */ } if (saved_wide_mode) { emit_decpriv(3, 'h'); /* set */ emit_decpriv(3, 's'); /* save */ if (!wide_mode) emit_decpriv(3, 'l'); /* reset */ } else if (wide_mode) { emit_decpriv(3, 'h'); /* set */ } if (saved_wraparound_mode == 0) { emit_decpriv(7, 'h'); /* set (no-wraparound mode) */ emit_decpriv(7, 's'); /* save */ if (wraparound_mode) emit_decpriv(7, 'l'); /* reset */ } else if (!wraparound_mode) { emit_decpriv(7, 'h'); /* set (no-wraparound mode) */ } if (saved_allow_wide_mode) { emit_decpriv(40, 'h'); /* set */ emit_decpriv(40, 's'); /* save */ if (!allow_wide_mode) emit_decpriv(40, 'l'); /* reset */ } else if (allow_wide_mode) { emit_decpriv(40, 'h'); /* set */ } if (saved_rev_wraparound_mode) { emit_decpriv(45, 'h'); /* set (rev--wraparound mode) */ emit_decpriv(45, 's'); /* save */ if (!rev_wraparound_mode) emit_decpriv(45, 'l'); /* reset */ } else if (rev_wraparound_mode) { emit_decpriv(45, 'h'); /* set (rev-wraparound mode) */ } if (saved_altbuffer) { emit_decpriv(47, 'h'); /* set */ emit_decpriv(47, 's'); /* save */ if (!is_altbuffer) emit_decpriv(47, 'l'); /* reset */ } /* else not necessary to set it now -- it was already set when the screen was drawn */ /* * Now take care of auto_newline, insert mode, the scroll region * and tabs. */ if (auto_newline_mode) { space3270out(4); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '4'; *obptr++ = 'h'; } if (insert_mode) { space3270out(5); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '2'; *obptr++ = '0'; *obptr++ = 'h'; } if (scroll_top != 1 || scroll_bottom != ROWS) { space3270out(10); obptr += sprintf((char *)obptr, "\033[%d;%dr", scroll_top, scroll_bottom); } if (tabs) { unsigned char *deftabs; deftabs = (unsigned char *)Malloc((COLS+7)/8); for (i = 0; i < (COLS+7)/8; i++) deftabs[i] = 0x01; for (i = 0; i < COLS; i++) { if (tabs[i/8] & 1<<(i%8)) { if (!(deftabs[i/8] & 1<<(i%8))) { /* Tab was cleared. */ space3270out(15); obptr += sprintf((char *)obptr, "\033[%d;%dH", (cursor_addr / COLS) + 1, ((cursor_addr + i) % COLS) + 1); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '0'; *obptr++ = 'g'; } } else { if (deftabs[i/8] & 1<<(i%8)) { /* Tab was set. */ space3270out(13); obptr += sprintf((char *)obptr, "\033[%d;%dH", (cursor_addr / COLS) + 1, ((cursor_addr + i) % COLS) + 1); *obptr++ = 0x1b; *obptr++ = 'H'; } } } } /* * We're done moving the cursor for other purposes (saving it, * messing with tabs). Put it where it should be now. */ emit_cup(cursor_addr); /* Now add any pending single-character CS change. */ switch (once_cset) { case CS_G2: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'N'; break; case CS_G3: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'O'; break; default: break; } /* Now add any incomplete escape sequence. */ if (pe) { int xlen = 0; for (i = 0; i < pe; i++) if (ped[i] == 0xff) xlen++; space3270out(pe + xlen); for (i = 0; i < pe; i++) { if (ped[i] == 0xff) *obptr++ = 0xff; *obptr++ = ped[i]; } } /* Last, emit any incomplete multi-byte data. */ if (pmi) { space3270out(pmi); for (i = 0; i < pmi; i++) { *obptr++ = pending_mbs[i]; } } } #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/proxy.c0000644000175000017500000005361611254565704015625 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxy.c * This module implements various kinds of proxies. */ #include "globals.h" #if !defined(PR3287) /*[*/ #include "appres.h" #include "resources.h" #endif /*]*/ #if defined(_WIN32) /*[*/ #include #include #else /*][*/ #include #include #include #include #include #if defined(HAVE_SYS_SELECT_H) /*[*/ #include /* fd_set declaration */ #endif /*]*/ #endif /*]*/ #include "3270ds.h" #include "popupsc.h" #include "proxy.h" #include "proxyc.h" #include "resolverc.h" #include "telnetc.h" #include "trace_dsc.h" #include "w3miscc.h" #if defined(PR3287) /*[*/ extern char *proxy_spec; #endif /*]*/ #if defined(_WIN32) /*[*/ typedef unsigned long in_addr_t; #endif /*]*/ /* * Supported proxy types. * * At some point we will add SOCKS. */ enum { PT_NONE, PT_PASSTHRU, /* Sun telnet-passthru */ PT_HTTP, /* RFC 2817 CONNECT tunnel */ PT_TELNET, /* 'connect host port' proxy */ PT_SOCKS4, /* SOCKS version 4 (or 4A if necessary) */ PT_SOCKS4A, /* SOCKS version 4A (force remote name resolution) */ PT_SOCKS5, /* SOCKS version 5 (RFC 1928) */ PT_SOCKS5D, /* SOCKS version 5 (force remote name resolution) */ PT_MAX } proxytype_t; /* proxy type names -- keep these in sync with proxytype_t! */ char *type_name[] = { "unknown", "passthru", "HTTP", "TELNET", "SOCKS4", "SOCKS4A", "SOCKS5", "SOCKS5D" }; static int parse_host_port(char *s, char **phost, char **pport); static int proxy_passthru(int fd, char *host, unsigned short port); static int proxy_http(int fd, char *host, unsigned short port); static int proxy_telnet(int fd, char *host, unsigned short port); static int proxy_socks4(int fd, char *host, unsigned short port, int force_a); static int proxy_socks5(int fd, char *host, unsigned short port, int force_d); char * proxy_type_name(int type) { if (type < 1 || type >= PT_MAX) return "unknown"; else return type_name[type]; } /* * Resolve the type, hostname and port for a proxy. * Returns -1 for failure, 0 for no proxy, >0 (the proxy type) for success. */ int proxy_setup(char **phost, char **pport) { char *proxy; char *colon; int sl; #if defined(PR3287) /*[*/ proxy = proxy_spec; #else /*][*/ proxy = appres.proxy; #endif /*]*/ if (proxy == CN) return PT_NONE; if ((colon = strchr(proxy, ':')) == CN || (colon == proxy)) { popup_an_error("Invalid proxy syntax"); return -1; } sl = colon - proxy; if (sl == strlen(PROXY_PASSTHRU) && !strncasecmp(proxy, PROXY_PASSTHRU, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_PASSTHRU); return PT_PASSTHRU; } if (sl == strlen(PROXY_HTTP) && !strncasecmp(proxy, PROXY_HTTP, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_HTTP); return PT_HTTP; } if (sl == strlen(PROXY_TELNET) && !strncasecmp(proxy, PROXY_TELNET, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) { popup_an_error("Must specify port for telnet proxy"); return -1; } return PT_TELNET; } if (sl == strlen(PROXY_SOCKS4) && !strncasecmp(proxy, PROXY_SOCKS4, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS4); return PT_SOCKS4; } if (sl == strlen(PROXY_SOCKS4A) && !strncasecmp(proxy, PROXY_SOCKS4A, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS4A); return PT_SOCKS4A; } if (sl == strlen(PROXY_SOCKS5) && !strncasecmp(proxy, PROXY_SOCKS5, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS5); return PT_SOCKS5; } if (sl == strlen(PROXY_SOCKS5D) && !strncasecmp(proxy, PROXY_SOCKS5D, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS5D); return PT_SOCKS5D; } popup_an_error("Invalid proxy type '%.*s'", sl, proxy); return -1; } /* * Parse host[:port] from a string. * 'host' can be in square brackets to allow numeric IPv6 addresses. * Returns the host name and port name in heap memory. * Returns -1 for failure, 0 for success. */ static int parse_host_port(char *s, char **phost, char **pport) { char *colon; char *hstart; int hlen; if (*s == '[') { char *rbrack; /* Hostname in square brackets. */ hstart = s + 1; rbrack = strchr(s, ']'); if (rbrack == CN || rbrack == s + 1 || (*(rbrack + 1) != '\0' && *(rbrack + 1) != ':')) { popup_an_error("Invalid proxy hostname syntax"); return -1; } if (*(rbrack + 1) == ':') colon = rbrack + 1; else colon = NULL; hlen = rbrack - (s + 1); } else { hstart = s; colon = strchr(s, ':'); if (colon == s) { popup_an_error("Invalid proxy hostname syntax"); return -1; } if (colon == NULL) hlen = strlen(s); else hlen = colon - s; } /* Parse the port. */ if (colon == CN || !*(colon + 1)) *pport = CN; else *pport = NewString(colon + 1); /* Copy out the hostname. */ *phost = Malloc(hlen + 1); strncpy(*phost, hstart, hlen); (*phost)[hlen] = '\0'; return 0; } /* * Negotiate with the proxy server. * Returns -1 for failure, 0 for success. */ int proxy_negotiate(int type, int fd, char *host, unsigned short port) { switch (type) { case PT_NONE: return 0; case PT_PASSTHRU: return proxy_passthru(fd, host, port); case PT_HTTP: return proxy_http(fd, host, port); case PT_TELNET: return proxy_telnet(fd, host, port); case PT_SOCKS4: return proxy_socks4(fd, host, port, 0); case PT_SOCKS4A: return proxy_socks4(fd, host, port, 1); case PT_SOCKS5: return proxy_socks5(fd, host, port, 0); case PT_SOCKS5D: return proxy_socks5(fd, host, port, 1); default: return -1; } } /* Sun PASSTHRU proxy. */ static int proxy_passthru(int fd, char *host, unsigned short port) { char *buf; buf = Malloc(strlen(host) + 32); (void) sprintf(buf, "%s %u\r\n", host, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("Passthru Proxy: xmit '%.*s'", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("Passthru Proxy: send error"); Free(buf); return -1; } Free(buf); return 0; } /* HTTP (RFC 2817 CONNECT tunnel) proxy. */ static int proxy_http(int fd, char *host, unsigned short port) { char *buf; char *colon; char rbuf[1024]; int nr; int nread = 0; char *space; /* Send the CONNECT request. */ buf = Malloc(64 + strlen(host)); colon = strchr(host, ':'); sprintf(buf, "CONNECT %s%s%s:%u HTTP/1.1\r\n", (colon? "[": ""), host, (colon? "]": ""), port); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } sprintf(buf, "Host: %s%s%s:%u\r\n", (colon? "[": ""), host, (colon? "]": ""), port); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } strcpy(buf, "\r\n"); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit ''\n"); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } Free(buf); /* * Process the reply. * Read a byte at a time until \n or EOF. */ for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("HTTP Proxy: server timeout"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ return -1; } nr = recv(fd, &rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("HTTP Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ return -1; } if (nr == 0) { #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ popup_an_error("HTTP Proxy: unexpected EOF"); return -1; } if (rbuf[nread] == '\r') continue; if (rbuf[nread] == '\n') break; if ((size_t)++nread >= sizeof(rbuf)) { nread = sizeof(rbuf) - 1; break; } } rbuf[nread] = '\0'; #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)rbuf, nread); trace_dsn("HTTP Proxy: recv '%s'\n", rbuf); #endif /*]*/ if (strncmp(rbuf, "HTTP/", 5) || (space = strchr(rbuf, ' ')) == CN) { popup_an_error("HTTP Proxy: unrecognized reply"); return -1; } if (*(space + 1) != '2') { popup_an_error("HTTP Proxy: CONNECT failed:\n%s", rbuf); return -1; } return 0; } /* TELNET proxy. */ static int proxy_telnet(int fd, char *host, unsigned short port) { char *buf; buf = Malloc(strlen(host) + 32); (void) sprintf(buf, "connect %s %u\r\n", host, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("TELNET Proxy: xmit '%.*s'", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("TELNET Proxy: send error"); Free(buf); return -1; } Free(buf); return 0; } /* SOCKS version 4 proxy. */ static int proxy_socks4(int fd, char *host, unsigned short port, int force_a) { struct hostent *hp; struct in_addr ipaddr; int use_4a = 0; char *user; char *buf; char *s; char rbuf[8]; int nr; int nread = 0; unsigned short rport; /* Resolve the hostname to an IPv4 address. */ if (force_a) use_4a = 1; else { hp = gethostbyname(host); if (hp != NULL) { memcpy(&ipaddr, hp->h_addr, hp->h_length); } else { ipaddr.s_addr = inet_addr(host); if (ipaddr.s_addr == (in_addr_t)-1) use_4a = 1; } } /* Resolve the username. */ user = getenv("USER"); if (user == CN) user = "nobody"; /* Send the request to the server. */ if (use_4a) { buf = Malloc(32 + strlen(user) + strlen(host)); s = buf; *s++ = 0x04; *s++ = 0x01; SET16(s, port); SET32(s, 0x00000001); strcpy(s, user); s += strlen(user) + 1; strcpy(s, host); s += strlen(host) + 1; #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS4 Proxy: version 4 connect port %u " "address 0.0.0.1 user '%s' host '%s'\n", port, user, host); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { popup_a_sockerr("SOCKS4 Proxy: send error"); Free(buf); return -1; } Free(buf); } else { unsigned long u; buf = Malloc(32 + strlen(user)); s = buf; *s++ = 0x04; *s++ = 0x01; SET16(s, port); u = ntohl(ipaddr.s_addr); SET32(s, u); strcpy(s, user); s += strlen(user) + 1; #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS4 Proxy: xmit version 4 connect port %u " "address %s user '%s'\n", port, inet_ntoa(ipaddr), user); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { Free(buf); popup_a_sockerr("SOCKS4 Proxy: send error"); return -1; } Free(buf); } /* * Process the reply. * Read 8 bytes of response. */ for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS4 Proxy: server timeout"); return -1; } nr = recv(fd, &rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS4 Proxy: receive error"); return -1; } if (nr == 0) break; if ((size_t)++nread >= sizeof(rbuf)) break; } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)rbuf, nread); if (use_4a) { struct in_addr a; rport = (rbuf[2] << 8) | rbuf[3]; memcpy(&a, &rbuf[4], 4); trace_dsn("SOCKS4 Proxy: recv status 0x%02x port %u " "address %s\n", rbuf[1], rport, inet_ntoa(a)); } else trace_dsn("SOCKS4 Proxy: recv status 0x%02x\n", rbuf[1]); #endif /*]*/ switch (rbuf[1]) { case 0x5a: break; case 0x5b: popup_an_error("SOCKS4 Proxy: request rejected or failed"); return -1; case 0x5c: popup_an_error("SOCKS4 Proxy: client is not reachable"); return -1; case 0x5d: popup_an_error("SOCKS4 Proxy: userid error"); return -1; default: popup_an_error("SOCKS4 Proxy: unknown status 0x%02x", rbuf[1]); return -1; } return 0; } /* SOCKS version 5 (RFC 1928) proxy. */ static int proxy_socks5(int fd, char *host, unsigned short port, int force_d) { union { struct sockaddr sa; struct sockaddr_in sin; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sin6; #endif /*]*/ } ha; socklen_t ha_len = 0; int use_name = 0; char *buf; char *s; unsigned char rbuf[8]; int nr; int nread = 0; int n2read = 0; char nbuf[256]; int done = 0; #if defined(X3270_TRACE) /*[*/ char *atype_name[] = { "", "IPv4", "", "domainname", "IPv6" }; unsigned char *portp; unsigned short rport; #endif /*]*/ if (force_d) use_name = 1; else { char errmsg[1024]; int rv; /* Resolve the hostname. */ rv = resolve_host_and_port(host, CN, 0, &rport, &ha.sa, &ha_len, errmsg, sizeof(errmsg), NULL); if (rv == -2) use_name = 1; else if (rv < 0) { popup_an_error("SOCKS5 proxy: %s/%u: %s", host, port, errmsg); return -1; } } /* Send the authentication request to the server. */ strcpy((char *)rbuf, "\005\001\000"); #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: xmit version 5 nmethods 1 (no auth)\n"); trace_netdata('>', rbuf, 3); #endif /*]*/ if (send(fd, (char *)rbuf, 3, 0) < 0) { popup_a_sockerr("SOCKS5 Proxy: send error"); return -1; } /* * Wait for the server reply. * Read 2 bytes of response. */ nread = 0; for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS5 Proxy: server timeout"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } nr = recv(fd, (char *)&rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS5 Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } if (nr == 0) { popup_a_sockerr("SOCKS5 Proxy: unexpected EOF"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } if (++nread >= 2) break; } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', rbuf, nread); #endif /*]*/ if (rbuf[0] != 0x05 || (rbuf[1] != 0 && rbuf[1] != 0xff)) { popup_an_error("SOCKS5 Proxy: bad authentication response"); return -1; } #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: recv version %d method %d\n", rbuf[0], rbuf[1]); #endif /*]*/ if (rbuf[1] == 0xff) { popup_an_error("SOCKS5 Proxy: authentication failure"); return -1; } /* Send the request to the server. */ buf = Malloc(32 + strlen(host)); s = buf; *s++ = 0x05; /* protocol version 5 */ *s++ = 0x01; /* CONNECT */ *s++ = 0x00; /* reserved */ if (use_name) { *s++ = 0x03; /* domain name */ *s++ = strlen(host); strcpy(s, host); s += strlen(host); } else if (ha.sa.sa_family == AF_INET) { *s++ = 0x01; /* IPv4 */ memcpy(s, &ha.sin.sin_addr, 4); s += 4; strcpy(nbuf, inet_ntoa(ha.sin.sin_addr)); #if defined(AF_INET6) /*[*/ } else { *s++ = 0x04; /* IPv6 */ memcpy(s, &ha.sin6.sin6_addr, sizeof(struct in6_addr)); s += sizeof(struct in6_addr); (void) inet_ntop(AF_INET6, &ha.sin6.sin6_addr, nbuf, sizeof(nbuf)); #endif /*]*/ } SET16(s, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: xmit version 5 connect %s %s port %u\n", use_name? "domainname": ((ha.sa.sa_family == AF_INET)? "IPv4": "IPv6"), use_name? host: nbuf, port); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { popup_a_sockerr("SOCKS5 Proxy: send error"); Free(buf); return -1; } Free(buf); /* * Process the reply. * Only the first two bytes of the response are interesting; * skip the rest. */ nread = 0; done = 0; buf = NULL; while (!done) { fd_set rfds; struct timeval tv; unsigned char r; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS5 Proxy: server timeout"); return -1; } nr = recv(fd, (char *)&r, 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS5 Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } if (nr == 0) { popup_an_error("SOCKS5 Proxy: unexpected EOF"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } buf = Realloc(buf, nread + 1); buf[nread] = r; switch (nread++) { case 0: if (r != 0x05) { popup_an_error("SOCKS5 Proxy: incorrect " "reply version 0x%02x", r); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } break; case 1: #if defined(X3270_TRACE) /*[*/ if (r != 0x00) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ switch (r) { case 0x00: break; case 0x01: popup_an_error("SOCKS5 Proxy: server failure"); return -1; case 0x02: popup_an_error("SOCKS5 Proxy: connection not " "allowed"); return -1; case 0x03: popup_an_error("SOCKS5 Proxy: network " "unreachable"); return -1; case 0x04: popup_an_error("SOCKS5 Proxy: host " "unreachable"); return -1; case 0x05: popup_an_error("SOCKS5 Proxy: connection " "refused"); return -1; case 0x06: popup_an_error("SOCKS5 Proxy: ttl expired"); return -1; case 0x07: popup_an_error("SOCKS5 Proxy: command not " "supported"); return -1; case 0x08: popup_an_error("SOCKS5 Proxy: address type " "not supported"); return -1; default: popup_an_error("SOCKS5 Proxy: unknown server " "error 0x%02x", r); return -1; } break; case 2: break; case 3: switch (r) { case 0x01: n2read = 6; break; case 0x03: n2read = -1; break; #if defined(AF_INET6) /*[*/ case 0x04: n2read = sizeof(struct in6_addr) + 2; break; #endif /*]*/ default: popup_an_error("SOCKS5 Proxy: unknown server " "address type 0x%02x", r); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } break; default: if (n2read == -1) n2read = r + 2; else if (!--n2read) done = 1; break; } } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)buf, nread); switch (buf[3]) { case 0x01: /* IPv4 */ memcpy(&ha.sin.sin_addr, &buf[4], 4); strcpy(nbuf, inet_ntoa(ha.sin.sin_addr)); portp = (unsigned char *)&buf[4 + 4]; break; case 0x03: /* domainname */ strncpy(nbuf, &buf[5], buf[4]); nbuf[(unsigned char)buf[4]] = '\0'; portp = (unsigned char *)&buf[5 + (unsigned char)buf[4]]; break; #if defined(AF_INET6) /*[*/ case 0x04: /* IPv6 */ memcpy(&ha.sin6.sin6_addr, &buf[4], sizeof(struct in6_addr)); (void) inet_ntop(AF_INET6, &ha.sin6.sin6_addr, nbuf, sizeof(nbuf)); portp = (unsigned char *)&buf[4 + sizeof(struct in6_addr)]; break; #endif /*]*/ default: /* can't happen */ nbuf[0] = '\0'; portp = (unsigned char *)buf; break; } rport = (*portp << 8) + *(portp + 1); trace_dsn("SOCKS5 Proxy: recv version %d status 0x%02x address %s %s " "port %u\n", buf[0], buf[1], atype_name[(unsigned char)buf[3]], nbuf, rport); #endif /*]*/ Free(buf); return 0; } ibm-3270-3.3.10ga4/tcl3270/popupsc.h0000644000175000017500000000331511254565673016136 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of popupsc.h */ extern void popup_an_errno(int errn, const char *fmt, ...); extern void popup_an_error(const char *fmt, ...); extern void action_output(const char *fmt, ...); ibm-3270-3.3.10ga4/tcl3270/telnetc.h0000644000175000017500000000624411254565704016102 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * telnetc.h * Global declarations for telnet.c. */ /* Output buffer. */ extern unsigned char *obuf, *obptr; /* Spelled-out tty control character. */ struct ctl_char { const char *name; char value[3]; }; extern void net_abort(void); extern Boolean net_add_dummy_tn3270e(void); extern void net_add_eor(unsigned char *buf, int len); extern void net_break(void); extern void net_charmode(void); extern int net_connect(const char *, char *, Boolean, Boolean *, Boolean *); extern void net_disconnect(void); extern void net_exception(void); extern int net_getsockname(void *buf, int *len); extern void net_hexansi_out(unsigned char *buf, int len); extern void net_input(void); extern void net_interrupt(void); extern void net_linemode(void); extern struct ctl_char *net_linemode_chars(void); extern void net_output(void); extern const char *net_query_bind_plu_name(void); extern const char *net_query_connection_state(void); extern const char *net_query_host(void); extern const char *net_query_lu_name(void); extern void net_sendc(char c); extern void net_sends(const char *s); extern void net_send_erase(void); extern void net_send_kill(void); extern void net_send_werase(void); extern Boolean net_snap_options(void); extern void space3270out(int n); extern const char *tn3270e_current_opts(void); extern void trace_netdata(char direction, unsigned const char *buf, int len); extern void popup_a_sockerr(char *fmt, ...) printflike(1, 2); extern char *net_proxy_type(void); extern char *net_proxy_host(void); extern char *net_proxy_port(void); extern Boolean net_bound(void); ibm-3270-3.3.10ga4/tcl3270/dialogc.h0000644000175000017500000000307611254565673016053 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * dialogc.h * Empty definitions for dialog.c. */ ibm-3270-3.3.10ga4/tcl3270/X3270.xad0000644000175000017500000017653011256027001015503 0ustar bastianbastian! ! Copyright (c) 1995-2009, Paul Mattes. ! All rights reserved. ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions are met: ! * Redistributions of source code must retain the above copyright ! notice, this list of conditions and the following disclaimer. ! * Redistributions in binary form must reproduce the above copyright ! notice, this list of conditions and the following disclaimer in the ! documentation and/or other materials provided with the distribution. ! * Neither the names of Paul Mattes nor the names of his contributors ! may be used to endorse or promote products derived from this software ! without specific prior written permission. ! ! THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED ! WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ! MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO ! EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ! OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ! WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ! ! x3270 app-defaults file. This file is generally compiled into x3270, rather ! than installed. ! ! This file is in three sections: ! ! (1) User-Modifiable Resources ! Resources that are likeliest to be modified by an end user. ! ! (2) Labels and Messages ! Resources that are likely to be modified for translation into another ! language. ! ! (3) Base-Level Resources ! Resources required for the basic operation of x3270, not for the ! faint-hearted to modify. ! !============================================================================= ! Section 1: User-Modifiable Resources ! ! Resources that are likeliest to be modified by an end user. !============================================================================= ! ! Many of the resource definitions are commented out, because they are ! the defaults defined in x3270 itself. They are listed here so you can ! easily uncomment and change them. #ifndef STANDALONE ! ! Fonts ! *.emulatorFont: 3270 ! ! Color schemes for full-color (3279) mode ! Each scheme is a list of 23 items: ! 0 X color to use for IBM "neutral/black" (also used as ANSI color 0) ! 1 X color to use for IBM "blue" (also used for ANSI color 4) ! 2 X color to use for IBM "red" (also used for ANSI color 1) ! 3 X color to use for IBM "pink" (also used for ANSI color 5) ! 4 X color to use for IBM "green" (also used for ANSI color 2) ! 5 X color to use for IBM "turquoise" ! 6 X color to use for IBM "yellow" (also used for ANSI color 3) ! 7 X color to use for IBM "neutral/white" ! 8 X color to use for IBM "black" ! 9 X color to use for IBM "deep blue" ! 10 X color to use for IBM "orange" ! 11 X color to use for IBM "purple" ! 12 X color to use for IBM "pale green" ! 13 X color to use for IBM "pale turquoise" (also used for ANSI color 6) ! 14 X color to use for IBM "grey" ! 15 X color to use for IBM "white" (also used for ANSI color 7) ! 16 X color to use if one of 0..15 cannot be allocated (white or black) ! 17 X color to use as the default screen background ! 18 X color to use as the select background ! 19 IBM color index (0..15) to use for unprotected, unhighlighted fields ! 20 IBM color index (0..15) to use for unprotected, highlighted fields ! 21 IBM color index (0..15) to use for protected, unhighlighted fields ! 22 IBM color index (0..15) to use for protected, highlighted fields ! ! x3270.colorScheme: default x3270.colorScheme.default: \ black deepSkyBlue red pink \ green turquoise yellow white \ black blue3 orange purple \ paleGreen paleTurquoise2 grey white \ white black dimGrey \ 4 2 1 15 x3270.colorScheme.reverse: \ black blue firebrick pink \ green4 cadetBlue goldenrod black \ black blue3 orange purple \ paleGreen darkTurquoise grey black \ black white dimGrey \ 4 2 1 0 x3270.colorScheme.bright: \ black blue red magenta \ green turquoise yellow white \ black blue3 orange purple \ paleGreen cyan grey white \ white black dimGrey \ 4 2 1 15 x3270.colorScheme.cpe: \ black LightBlue1 PaleVioletRed1 \ pink green turquoise yellow white \ black LightBlue3 orange MediumPurple1 \ paleGreen paleTurquoise2 grey80 white \ white black dimGrey \ 4 2 1 15 x3270.colorScheme.greenScreen: \ green green green green \ green green green green \ green green green green \ green green green green \ white black dimGrey \ 4 15 4 15 #ifdef X3270_MENUS ! Color schemes listed on the Options color menu x3270.schemeList: Default 3279: default\n\ Bright: bright\n\ Reverse: reverse\n\ Green Screen: greenScreen ! Character sets listed on the Options menu x3270.charsetList: U.S. English (CP 037): us-intl\n\ Bracket (CP 037, modified): bracket\n\ APL (CP 037): apl\n\ Euro>U.S. English (CP 1140): us-euro\n\ Euro>Belgian (CP 1148): belgian-euro\n\ Euro>Finnish (CP 1143): finnish-euro\n\ Euro>French (CP 1147): french-euro\n\ Euro>German (CP 1141): german-euro\n\ Euro>Icelandic (CP 1149): icelandic-euro\n\ Euro>Italian (CP 1144): italian-euro\n\ Euro>Norwegian (CP 1142): norwegian-euro\n\ Euro>Spanish (CP 1145): spanish-euro\n\ Euro>United Kingdom (CP 1146): uk-euro\n\ Belgian (CP 500): belgian\n\ Brazilian (CP 275): brazilian\n\ #ifdef X3270_DBCS Chinese Simplified (CP 935): simplified-chinese\n\ Chinese GB 18030 (CP 1388): chinese-gb18030\n\ Chinese Traditional (CP 937): traditional-chinese\n\ #endif Finnish (CP 278): finnish\n\ French (CP 297): french\n\ German (CP 273): german\n\ Greek (CP 875): greek\n\ Hebrew (CP 424): hebrew\n\ Icelandic (CP 871): icelandic\n\ Italian (CP 280): italian\n\ #ifdef X3270_DBCS Japanese w/Kana (CP 930): japanese-kana\n\ Japanese w/Latin (CP 939): japanese-latin\n\ #endif Norwegian (CP 277): norwegian\n\ Open Systems (CP 1047): cp1047\n\ Polish (CP 870): cp870\n\ Russian (CP 880): russian\n\ Slovenian (CP 870): cp870\n\ Spanish (CP 284): spanish\n\ Thai (CP 1160): thai\n\ Turkish (CP 1026): turkish\n\ United Kingdom (CP 285): uk\n #endif ! ! Pseudo-colors for 3278 mode ! x3270.colorBackground: black ! x3270.selectBackground: dimGrey ! x3270.normalColor: green ! Note: the following values are the new defaults, which cause 3278's ! to display everything in green. ! x3270.inputColor: green ! x3270.boldColor: green ! To resurrect x3270's Pseudo-Color mode, which was how 3278's were ! displayed up through x3270 3.3.5, set the following resource values: ! x3270.inputColor: orange ! x3270.boldColor: cyan ! ! Cursors ! x3270.normalCursor: top_left_arrow ! x3270.waitCursor: watch ! x3270.lockedCursor: X_cursor ! ! Line-mode Telnet parameters ! x3270.icrnl: true ! x3270.inlcr: false ! x3270.erase: ^? ! x3270.kill: ^U ! x3270.werase: ^W ! x3270.rprnt: ^R ! x3270.lnext: ^V ! x3270.intr: ^C ! x3270.quit: ^\\ ! x3270.eof: ^D ! ! Toggles, using the same names as the "-set" and "-clear" options ! x3270.altCursor: false ! x3270.blankFill: false ! x3270.crosshair: false ! x3270.cursorBlink: false ! x3270.cursorPos: true ! x3270.dsTrace: false ! x3270.eventTrace: false ! x3270.lineWrap: true ! x3270.marginedPaste: false ! x3270.monoCase: false ! x3270.rectangleSelect: false ! x3270.screenTrace: false ! x3270.scrollBar: false ! x3270.showTiming: false ! ! Miscellaneous configuration parameters ! x3270.activeIcon: false ! x3270.allowResize: true ! x3270.bellVolume: 0 ! x3270.charset: bracket ! x3270.composeMap: latin1 ! x3270.connectFileName: ~/.x3270connect ! x3270.doConfirms: true ! x3270.debugTracing: true ! x3270.disconnectClear: false ! x3270.hostsFile: /usr/lib/X11/x3270/ibm_hosts ! x3270.highlightSelect: true ! x3270.idleCommand: ! x3270.idleTimeout: ~7m ! x3270.inputMethod: ! x3270.invertKeypadShift: false ! x3270.keymap: ! x3270.keypad: right ! x3270.keypadOn: false ! x3270.labelIcon: false ! x3270.m3279: false ! x3270.macros: ! x3270.menuBar: true ! x3270.modifiedSel: false ! x3270.modifiedSelColor: 10 ! x3270.model: 4 ! x3270.mono: false ! x3270.numericLock: false ! x3270.once: false ! x3270.pluginCommand: x3270hist.pl ! x3270.port: telnet ! x3270.preeditType: OverTheSpot+1 ! x3270.saveLines: 64 ! x3270.scripted: false ! x3270.suppressHost: false ! x3270.suppressFontMenu: false ! x3270.termName: ! x3270.traceDir: /tmp ! x3270.cursorColor: red ! (note: cursorColor is not used unless useCursorColor is true, below) ! x3270.useCursorColor: false ! x3270.visualBell: false ! x3270.visualSelect: false ! x3270.visualSelectColor: 6 ! ! Fonts listed on the Options menu and for screen resizing x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-1: \ 3270 Font (14 point): #resize 3270\n\ 8-point Font: #resize 3270gt8\n\ 12-point Font: #resize 3270-12\n\ 16-point Font: #resize 3270gt16\n\ 20-point Font: #resize 3270-20\n\ 24-point Font: #resize 3270gt24\n\ 32-point Font: #resize 3270gt32 x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-15: \ 3270 Font (14 point): #resize 3270\n\ 8-point Font: #resize 3270gt8\n\ 12-point Font: #resize 3270-12\n\ 16-point Font: #resize 3270gt16\n\ 20-point Font: #resize 3270-20\n\ 24-point Font: #resize 3270gt24\n\ 32-point Font: #resize 3270gt32 x3270.emulatorFontList.3270cg-1a,iso10646-1: 3270 x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-1+gb2312.1980-0,iso10646-1: \ 14-point 3270: 3270+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\ 20-point 3270: 3270-20+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\ 8x16: 8x16+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\ 12x24: 12x24+-isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0 x3270.emulatorFontList.iso10646-1,jisx0201.1976-0+jisx0208.1983-0,iso10646-1: \ 14-point: -misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0+-misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-0\n\ 16-point: -sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0+-jis-fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1983-0\n\ 18-point: -sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0+-misc-fixed-medium-r-normal-ja-18-120-100-100-c-180-iso10646-1\n\ 24-point: -sony-fixed-medium-r-normal--24-230-75-75-c-120-jisx0201.1976-0+-jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1983-0 x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-1+big5-0,iso10646-1: fixed+-wenquanyi-wenquanyi bitmap song-bold-r-normal--13-130-75-75-p-80-iso10646-1 #endif ! ! Print commands x3270.printTextCommand: lpr #ifndef STANDALONE x3270.printWindowCommand: xwd -id %d | xpr | lpr ! ! System V versions of print commands ! x3270.printTextCommand: lp ! x3270.printWindowCommand: xwd -id %d | xpr | lp ! ! Trace window command x3270.traceCommand: tail -f ! ! File transfer command ! x3270.ftCommand: ind$file ! ! Printer session options #endif #ifdef _WIN32 x3270.printer.assocCommandLine: wpr3287.exe -assoc %L% %R% %P% %I% %H% x3270.printer.luCommandLine: wpr3287.exe %R% %P% %I% %L%@%H% ! x3270.printer.name: #else x3270.printer.command: lpr x3270.printer.assocCommandLine: pr3287 -assoc %L% -command "%C%" %R% %P% "%H%" x3270.printer.luCommandLine: pr3287 -command "%C%" %R% %P% "%L%@%H%" #endif #ifndef STANDALONE ! ! Translation table for the '@server' pseudo-keymap, which is the keymap ! you get by default (in addition to the 'base' keymap, below). Maps server ! vendor strings to keymap names. x3270.serverKeymapList: \ Sun Microsystems, Inc.: sun_k5\n\ Hewlett-Packard Company: hp-k1\n ! ! Keymaps (keyboard and mouse mappings) ! ! Base keymap: What you get by default, in both 3270 and NVT modes. Any other ! user-specified keymap is logically added to this keymap. x3270.keymap.base: \ :Multi_key: Compose()\n\ Ctrl: HandleMenu(fileMenu)\n\ Ctrl: HandleMenu(optionsMenu)\n\ Ctrl: HandleMenu(hostMenu,macrosMenu)\n\ : SelectDown()\n\ ~Shift: SelectMotion()\n\ : ignore()\n\ : ignore()\n\ : insert-selection(PRIMARY)\n\ : start-extend()\n\ : select-extend()\n\ ~Shift: SelectUp(PRIMARY)\n\ ShiftInsert: insert-selection(PRIMARY)\n\ ShiftUp: KybdSelect(Up,PRIMARY)\n\ ShiftDown: KybdSelect(Down,PRIMARY)\n\ ShiftLeft: KybdSelect(Left,PRIMARY)\n\ ShiftRight: KybdSelect(Right,PRIMARY)\n\ ShiftF1: PF(13)\n\ ShiftF2: PF(14)\n\ ShiftF3: PF(15)\n\ ShiftF4: PF(16)\n\ ShiftF5: PF(17)\n\ ShiftF6: PF(18)\n\ ShiftF7: PF(19)\n\ ShiftF8: PF(20)\n\ ShiftF9: PF(21)\n\ ShiftF10: PF(22)\n\ ShiftF11: PF(23)\n\ ShiftF12: PF(24)\n\ MetaF1: PF(13)\n\ AltF1: PF(13)\n\ MetaF2: PF(14)\n\ AltF2: PF(14)\n\ MetaF3: PF(15)\n\ AltF3: PF(15)\n\ MetaF4: PF(16)\n\ AltF4: PF(16)\n\ MetaF5: PF(17)\n\ AltF5: PF(17)\n\ MetaF6: PF(18)\n\ AltF6: PF(18)\n\ MetaF7: PF(19)\n\ AltF7: PF(19)\n\ MetaF8: PF(20)\n\ AltF8: PF(20)\n\ MetaF9: PF(21)\n\ AltF9: PF(21)\n\ MetaF10: PF(22)\n\ AltF10: PF(22)\n\ MetaF11: PF(23)\n\ AltF11: PF(23)\n\ MetaF12: PF(24)\n\ AltF12: PF(24)\n\ :F1: PF(1)\n\ :F2: PF(2)\n\ :F3: PF(3)\n\ :F4: PF(4)\n\ :F5: PF(5)\n\ :F6: PF(6)\n\ :F7: PF(7)\n\ :F8: PF(8)\n\ :F9: PF(9)\n\ :F10: PF(10)\n\ :F11: PF(11)\n\ :F12: PF(12)\n\ :Print: PrintText()\n\ Altq: Quit()\n\ :dead_acute: Compose() Key(apostrophe)\n\ :dead_grave: Compose() Key(grave)\n\ :dead_circumflex: Compose() Key(asciicircum)\n\ :dead_tilde: Compose() Key(asciitilde)\n\ :dead_diaeresis: Compose() Key(quotedbl)\n ! ! Base keymap for 3270 mode. These mappings are added to the base keymap, ! but only when in 3270 mode. ! These were originally part of the base keymap, but were moved here, because ! they were no-ops in NVT mode, or interfered with NVT-mode data entry. ! ! Note that as yet, there is no x3270.keymap.base.nvt, which would define the ! base keymap extensions for NVT mode. ! x3270.keymap.base.3270: #override \ :Ctrl Shift: MouseSelect()\n\ Shift: MoveCursor()\n\ ShiftReturn: Newline()\n\ :Return: Enter()\n\ :Linefeed: Newline()\n\ :BackSpace: Erase()\n\ ShiftTab: BackTab()\n\ :MetaLeft: PreviousWord()\n\ :AltLeft: PreviousWord()\n\ :MetaRight: NextWord()\n\ :AltRight: NextWord()\n\ :Meta1: PA(1)\n\ :Alt1: PA(1)\n\ :Meta2: PA(2)\n\ :Alt2: PA(2)\n\ :Meta3: PA(3)\n\ :Alt3: PA(3)\n\ Metaa: Attn()\n\ Alta: Attn()\n\ Metab: PrintWindow()\n\ Altb: PrintWindow()\n\ Metac: Clear()\n\ Altc: Clear()\n\ Metad: Delete()\n\ Altd: Delete()\n\ Metae: EraseEOF()\n\ Alte: EraseEOF()\n\ Metaf: Flip()\n\ Altf: Flip()\n\ Metah: Home()\n\ Alth: Home()\n\ Metai: Insert()\n\ Alti: Insert()\n\ Metal: Redraw()\n\ Altl: Redraw()\n\ Metap: PrintText()\n\ Altp: PrintText()\n\ Metar: Reset()\n\ Altr: Reset()\n\ Metau: Unselect()\n\ Altu: Unselect()\n\ Ctrla: SelectAll(PRIMARY)\n\ Ctrlc: set-select(CLIPBOARD)\n\ Ctrlu: DeleteField()\n\ Ctrlw: DeleteWord()\n\ Ctrlv: insert-selection(CLIPBOARD)\n\ Altv: ToggleReverse()\n\ Metav: ToggleReverse() ! Keymap that exercises the optional history plugin. x3270.keymap.hist: ShiftPrior: Plugin(command,prev)\n\ ShiftNext: Plugin(command,next) ! Keymap that restores the old (pre 3.3) mouse-click behavior. x3270.keymap.oldclick: #override\n\ Ctrl: HandleMenu(fileMenu)\n\ Ctrl: HandleMenu(optionsMenu)\n\ Ctrl: HandleMenu(hostMenu,macrosMenu)\n\ : select-start()\n\ ~Shift: select-extend()\n\ : ignore()\n\ : ignore()\n\ : insert-selection(PRIMARY)\n\ : start-extend()\n\ : select-extend()\n\ ~Shift: select-end(PRIMARY) x3270.keymap.oldclick.3270: #override\n\ :Ctrl Shift: MouseSelect()\n\ Shift: MoveCursor() ! ! Start of keyboard-specific mappings. ! ! Sun Type 5 keyboard map. Not compatible with earlier Type 3 and Type 4 ! keymaps, but does a better job of mapping intuitive functions to the ! existing key labels, and has fewer surprises. x3270.keymap.sun_k5: \ Shift0x1005ff10: PF(23)\n\ Shift0x1005ff11: PF(24)\n\ :0x1005ff10: PF(11)\n\ :0x1005ff11: PF(12)\n\ ~@Num_LockF27: Home()\n\ ~@Num_LockF33: FieldEnd()\n\ :F18: insert-selection(PRIMARY)\n\ ShiftF22: SysReq()\n\ :F22: PrintText()\n\ KP_Enter: Newline()\n ! Sun Type 4 keyboard map, backwards-compatible with earlier versions of x3270. x3270.keymap.sun_k4: \ Shift0x1005ff10: PF(23)\n\ Shift0x1005ff11: PF(24)\n\ :0x1005ff10: PF(11)\n\ :0x1005ff11: PF(12)\n\ :KP_1: Key(1)\n\ :KP_2: Key(2)\n\ :KP_3: Key(3)\n\ :KP_4: Key(4)\n\ :KP_5: Key(5)\n\ :KP_6: Key(6)\n\ :KP_7: Key(7)\n\ :KP_8: Key(8)\n\ :KP_9: Key(9)\n\ :KP_0: Key(0)\n\ :KP_Decimal: Key(.)\n\ :F18: insert-selection(PRIMARY)\n\ :F19: SysReq()\n\ :F20: FieldMark()\n\ :F21: PA(1)\n\ :F22: PA(2)\n\ :F23: Dup()\n\ :F24: Reset()\n\ :F25: EraseEOF()\n\ :F26: EraseInput()\n\ :F27: Clear()\n\ :F29: Redraw()\n\ :F31: Home()\n\ :KP_Enter: Newline()\n\ :F35: Delete()\n ! Sun Type 3 keyboard. x3270.keymap.sun_k3: \ ShiftF21: PF(22)\n\ ShiftF22: PF(23)\n\ ShiftF23: PF(24)\n\ :MetaF21: PA(1)\n\ :MetaF22: PA(2)\n\ :MetaF23: Dup()\n\ :F19: SysReq()\n\ :0x0: FieldMark()\n\ :F21: PF(10)\n\ :F22: PF(11)\n\ :F23: PF(12)\n\ :F24: Reset()\n\ :F25: EraseEOF()\n\ :F26: EraseInput()\n\ :F27: Clear()\n\ :F31: Home()\n\ :F29: Redraw()\n\ :KP_Enter: Newline()\n\ :F35: Delete()\n x3270.keymap.ncd: \ :F13: Dup()\n\ :Linefeed: Dup()\n\ :F14: FieldMark()\n\ :Break: FieldMark()\n\ :Home: Home()\n\ :F17: Home()\n\ :End: EraseEOF()\n\ :F15: Reset()\n\ :Prior: Reset()\n\ :F16: Newline()\n\ :Next: Newline()\n\ :KP_Add: EraseInput()\n\ :Num_Lock: PF(13)\n\ :KP_Space: PF(13)\n\ :KP_Divide: PF(14)\n\ :KP_Multiply: PF(15)\n\ :KP_7: PF(16)\n\ :KP_8: PF(17)\n\ :KP_9: PF(18)\n\ :KP_4: PF(19)\n\ :KP_5: PF(20)\n\ :KP_6: PF(21)\n\ :KP_1: PF(22)\n\ :KP_2: PF(23)\n\ :KP_3: PF(24)\n\ :KP_Subtract: SysReq()\n\ :KP_0: PA(2)\n\ :KP_Decimal: PA(1)\n\ :KP_Enter: Clear()\n x3270.keymap.hp-k1: \ :KP_Tab: BackTab()\n\ :KP_Enter: Home()\n\ :KP_Separator: Delete()\n\ ShiftDelete: Delete()\n\ :Menu: EraseEOF()\n\ :KP_Multiply: PF(13)\n\ :KP_Divide: PF(14)\n\ :KP_Add: PF(15)\n\ :KP_7: PF(16)\n\ :KP_8: PF(17)\n\ :KP_9: PF(18)\n\ :KP_4: PF(19)\n\ :KP_5: PF(20)\n\ :KP_6: PF(21)\n\ :KP_1: PF(22)\n\ :KP_2: PF(23)\n\ :KP_3: PF(24)\n\ :KP_0: PA(2)\n\ :KP_Decimal: PA(1)\n ! Keymap for HP-PC101 workstation keyboard, Chris P-E x3270.keymap.hp-pc: \ :KP_Subtract: Compose()\n\ :KP_Enter: Enter()\n\ :Return: Newline()\n\ !F1: PF(1)\n\ !F2: PF(2)\n\ !F3: PF(3)\n\ !F4: PF(4)\n\ !F5: PF(5)\n\ !F6: PF(6)\n\ !F7: PF(7)\n\ !F8: PF(8)\n\ !F9: PF(9)\n\ !F10: PF(10)\n\ !F11: PF(11)\n\ !F12: PF(12)\n\ !ShifthpSystem: PF(13)\n\ !ShiftKP_Divide: PF(14)\n\ !ShiftKP_Multiply: PF(15)\n\ !ShiftKP_7: PF(16)\n\ !ShiftKP_8: PF(17)\n\ !ShiftKP_9: PF(18)\n\ !ShiftKP_4: PF(19)\n\ !ShiftKP_5: PF(20)\n\ !ShiftKP_6: PF(21)\n\ !ShiftKP_1: PF(22)\n\ !ShiftKP_2: PF(23)\n\ !ShiftKP_3: PF(24)\n\ !hpSystem: PF(1)\n\ !KP_Divide: PF(2)\n\ !KP_Multiply: PF(3)\n\ !KP_7: PF(4)\n\ !KP_8: PF(5)\n\ !KP_9: PF(6)\n\ !KP_4: PF(7)\n\ !KP_5: PF(8)\n\ !KP_6: PF(9)\n\ !KP_1: PF(10)\n\ !KP_2: PF(11)\n\ !KP_3: PF(12)\n\ !Break: Reset()\n\ !ShiftBreak: Attn()\n\ !MetaBreak: SysReq()\n\ !Prior: Dup()\n\ !Next: FieldMark()\n\ !Select: EraseEOF()\n\ !MetahpInsertChar: PA(1)\n\ !MetaHome: PA(2)\n\ !MetaPrior: PA(3)\n\ !hpInsertChar: Insert()\n\ !hpDeleteChar: Delete()\n\ !ShiftMenu: PrintWindow()\n\ !Menu: PrintText()\n ! Keymap for IBM X Terminal, Allan L. Bazinet x3270.keymap.ibm-xterm: \ :Execute: Enter()\n\ !Pause: Clear()\n\ !BackSpace: BackSpace()\Delete()\n\ !End: FieldEnd()\n\ !Altc: Clear()\n\ !AltPrint: SysReq()\n\ !CtrlHome: EraseInput()\n\ !CtrlEnd: EraseEOF()\n\ !ShiftTab: BackTab()\n\ :KP_Subtract: PA(1)\n\ :KP_Add: PA(2)\n\ :KP_Enter: Enter()\n\ :Prior: PA(1)\n\ :Next: PA(2)\n\ :Escape: Reset()\n\ :Control_L: Reset()\n\ :Insert: Insert()\n\ !ShiftRight: Right2()\n\ !ShiftLeft: Left2()\n ! Keymap for common 3270 functions on a PC keyboard, from Richard Lennox. x3270.keymap.rlx: #override \ Prior: PF(7)\n\ Next: PF(8)\n\ Control_R: Enter()\n\ Return: Newline()\n\ Pause: Clear()\n\ ShiftEscape: Attn()\n\ ShiftLeft: PreviousWord()\n\ ShiftRight: NextWord()\n\ CtrlLeft: PreviousWord()\n\ CtrlRight: NextWord()\n\ ShiftEnd: EraseEOF()\n\ End: FieldEnd() ! Keymap modifier for OpenWindows (makes button 2 the extend key; defines the ! Paste and Cut keys; uses CLIPBOARD). x3270.keymap.ow: #override \ ~Shift: select-start()\n\ ~Shift: select-extend()\n\ : start-extend()\n\ : select-extend()\n\ : ignore()\n\ : ignore()\n\ : insert-selection(CLIPBOARD,PRIMARY)\n\ : select-end(PRIMARY)\n\ :F16: set-select(CLIPBOARD)\n\ ShiftF18: insert-selection(PRIMARY)\n\ :F18: insert-selection(CLIPBOARD,PRIMARY)\n\ :F20: set-select(CLIPBOARD) Cut()\n ! APL keymap modifier. x3270.keymap.apl: #override \ !:Altbracketleft: Key(apl_leftarrow)\n\ !:Altbracketright: Key(apl_rightarrow)\n\ :bracketleft: Key(apl_bracketleft)\n\ :bracketright: Key(apl_bracketright)\n\ !:Alt1: Key(apl_diaeresis)\n\ !:Alt2: Key(apl_overbar)\n\ !:Alt3: Key(less)\n\ !:Alt4: Key(apl_notgreater)\n\ !:Alt5: Key(equal)\n\ !:Alt6: Key(apl_notless)\n\ !:Alt7: Key(greater)\n\ !:Alt8: Key(apl_notequal)\n\ !:Alt9: Key(apl_downcaret)\n\ !:Alt0: Key(apl_upcaret)\n\ !:Altminus: Key(apl_overbar)\n\ !:Altunderscore: Key(underscore)\n\ !:Alt=: Key(apl_multiply)\n\ !:Alt+: Key(apl_divide)\n\ !:Altasciitilde: Key(apl_tilde)\n\ !:Altbackslash: Key(apl_slope)\n\ !:Altbar: Key(apl_stile)\n\ :Alta: Key(apl_alpha)\n\ :Altb: Key(apl_downtack)\n\ :Altc: Key(apl_upshoe)\n\ :Altd: Key(apl_downstile)\n\ :Alte: Key(apl_epsilon)\n\ :Altf: Key(underscore)\n\ :Altg: Key(apl_del)\n\ :Alth: Key(apl_delta)\n\ :Alti: Key(apl_iota)\n\ :Altj: Key(apl_jot)\n\ :Altk: Key(apostrophe)\n\ :Altl: Key(apl_quad)\n\ :Altm: Key(apl_stile)\n\ :Altn: Key(apl_uptack)\n\ :Alto: Key(apl_circle)\n\ :Altp: Key(asterisk)\n\ :Altq: Key(question)\n\ :Altr: Key(apl_rho)\n\ :Alts: Key(apl_upstile)\n\ :Altt: Key(apl_tilde)\n\ :Altu: Key(apl_downarrow)\n\ :Altv: Key(apl_downshoe)\n\ :Altw: Key(apl_omega)\n\ :Altx: Key(apl_rightshoe)\n\ :Alty: Key(apl_uparrow)\n\ :Altz: Key(apl_leftshoe)\n\ :AltA: Key(apl_Aunderbar)\n\ :AltB: Key(apl_Bunderbar)\n\ :AltC: Key(apl_Cunderbar)\n\ :AltD: Key(apl_Dunderbar)\n\ :AltE: Key(apl_Eunderbar)\n\ :AltF: Key(apl_Funderbar)\n\ :AltG: Key(apl_Gunderbar)\n\ :AltH: Key(apl_Hunderbar)\n\ :AltI: Key(apl_Iunderbar)\n\ :AltJ: Key(apl_Junderbar)\n\ :AltK: Key(apl_Kunderbar)\n\ :AltL: Key(apl_Lunderbar)\n\ :AltM: Key(apl_Munderbar)\n\ :AltN: Key(apl_Nunderbar)\n\ :AltO: Key(apl_Ounderbar)\n\ :AltP: Key(apl_Punderbar)\n\ :AltQ: Key(apl_Qunderbar)\n\ :AltR: Key(apl_Runderbar)\n\ :AltS: Key(apl_Sunderbar)\n\ :AltT: Key(apl_Tunderbar)\n\ :AltU: Key(apl_Uunderbar)\n\ :AltV: Key(apl_Vunderbar)\n\ :AltW: Key(apl_Wunderbar)\n\ :AltX: Key(apl_Xunderbar)\n\ :AltY: Key(apl_Yunderbar)\n\ :AltZ: Key(apl_Zunderbar)\n ! ! Keymap for the "not" key, assumed to be above the "6" key on U.S. ! keyboards. This used to be part of the 3270 base keymap, but does not ! work properly on non-U.S. keyboards. x3270.keymap.not.3270: \ :asciicircum: Key(notsign) ! Helpful modifier to disply the translation table. x3270.keymap.t: \ Metat: XtDisplayTranslations()\n\ Altt: XtDisplayTranslations()\n ! International keymap modifiers. x3270.keymap.finnish7: \ :bracketleft: Key("adiaeresis")\n\ :bracketright: Key("aring")\n\ :backslash: Key("odiaeresis")\n\ :braceleft: Key("Adiaeresis")\n\ :braceright: Key("Aring")\n\ :bar: Key("Odiaeresis")\n x3270.keymap.norwegian7: \ :bracketleft: Key("ae")\n\ :backslash: Key("oslash")\n\ :bracketright: Key("aring")\n\ :braceleft: Key("AE")\n\ :bar: Key("Ooblique")\n\ :braceright: Key("Aring")\n\ :!Metau: Key("udiaeresis")\n\ :dollar: Key("currency")\n\ :at: Key("backslash")\n ! "Old" Norwegian keymap, compatible with older versions of x3270. x3270.keymap.oldnorwegian7: \ :bracketleft: Key("AE")\n\ :bracketright: Key("Aring")\n\ :backslash: Key("Ooblique")\n\ :braceleft: Key("ae")\n\ :braceright: Key("aring")\n\ :bar: Key("oslash")\n ! German keymap courtesy of Karlheinz Kandler x3270.keymap.german7: \ :bracketleft: Key("adiaeresis")\n\ :bracketright: Key("udiaeresis")\n\ :backslash: Key("odiaeresis")\n\ :braceleft: Key("Adiaeresis")\n\ :braceright: Key("Udiaeresis")\n\ :bar: Key("Odiaeresis")\n\ :asciicircum: Key("^")\n\ :asciitilde: Key("ssharp")\n\ :at: Key("section")\n ! Keymap modifier for RS/6000s with French AZERTY keyboards, which allows ! the diaeresis and circumflex keys to work intuitively (press diaereses, ! press "a", get "adiaeresis, etc.) x3270.keymap.fr6k: \ Shiftdead_diaeresis: Compose() Key(quotedbl)\n\ :dead_circumflex: Compose() Key(asciicircum)\n ! Icelandic keymap, courtesy of Rikhardur Egilsson x3270.keymap.icelandic: \ :dead_acute: Compose() Key(apostrophe)\n ! !============================================================================= ! Section 2: Labels and Messages ! ! These are resources that are likely to be modified for translation ! into another language. !============================================================================= ! x3270.errorPopup.title: x3270 Error x3270.errorPopup*cancelButton.label: Exit x3270.printerErrorPopup.title: x3270 Printer Error x3270.childErrorPopup.title: x3270 Child Process Error #ifdef X3270_MENUS x3270.infoPopup.title: x3270 Information x3270.printerInfoPopup.title: x3270 Printer Information x3270.childInfoPopup.title: x3270 Child Process Information x3270.connectPopup.title: x3270 Connect x3270.connectPopup.dialog.label: Enter Hostname x3270.fontPopup.title: x3270 Font x3270.fontPopup.dialog.label: Enter Font Name x3270.keymapPopup.title: x3270 Keymap x3270.keymapPopup.dialog.label: Enter Keymap Name x3270.oversizePopup.title: x3270 Oversize x3270.oversizePopup.dialog.label: Enter Dimensions (cols x rows) x3270.oversizePopup*confirmButton.label: Resize #endif #ifdef X3270_KEYPAD x3270.keypadPopup.title: x3270 Keypad #endif #ifdef X3270_MENUS x3270.printTextPopup.title: x3270 Screen Print x3270.printTextPopup.dialog.label: Enter Print Command x3270.printTextPopup*confirmButton.label: Print x3270.saveTextPopup.title: x3270 Screen Save x3270.saveTextPopup.dialog.label: Enter File Name x3270.saveTextPopup*confirmButton.label: Save as Text x3270.saveTextPopup*confirm2Button.label: Save as HTML x3270.printWindowPopup.title: x3270 Window Print x3270.printWindowPopup.dialog.label: Enter Print Command x3270.printWindowPopup*confirmButton.label: Print #endif #ifdef X3270_TRACE x3270.tracePopup.title: x3270 Tracing x3270.tracePopup.dialog.label: Enter Trace File Name x3270.tracePopup*confirmButton.label: Trace x3270.tracePopup*confirm2Button.label: No File x3270.screentracePopup.title: x3270 Screen Image Tracing x3270.screentracePopup.dialog.label: Enter File Name x3270.screentracePopup*confirmButton.label: Continuously x3270.screentracePopup*confirm2Button.label: Once #endif #ifdef X3270_MENUS x3270.executeActionPopup.title: x3270 Execute Action x3270.executeActionPopup.dialog.label: Enter Action and Parameters x3270.executeActionPopup*confirmButton.label: Execute x3270.saveOptionsPopup.title: x3270 Save Changed Options x3270.saveOptionsPopup.dialog.label: Enter Profile/Session File Name x3270.saveOptionsPopup*confirmButton.label: Save x3270.aboutCopyrightPopup.title: x3270 Copyright x3270.aboutConfigPopup.title: x3270 Configuration x3270.aboutStatusPopup.title: x3270 Connection Status x3270.connectPopup*confirmButton.label: Connect x3270.fontPopup*confirmButton.label: Select Font x3270.keymapPopup*confirmButton.label: Select Keymap #endif #ifdef X3270_FT x3270.ftPopup.title: x3270 File Transfer x3270.ftProgressPopup.title: x3270 File Transfer x3270.ftOverwritePopup.title: x3270 File Transfer #endif #ifdef X3270_SCRIPT x3270.idlePopup.title: x3270 Idle Command #endif x3270.kmPopup.title: x3270 Keymap x3270*confirmButton.label: OK x3270.printerErrorPopup*cancelButton.label: Abort Printer x3270.printerInfoPopup*cancelButton.label: Abort Printer x3270.childErrorPopup*cancelButton.label: Discard Output x3270.childInfoPopup*cancelButton.label: Discard Output x3270*cancelButton.label: Cancel #ifdef X3270_MENUS x3270*aboutOption.label: About x3270... x3270*aboutCopyright.label: Copyright x3270*aboutConfig.label: Configuration x3270*aboutStatus.label: Connection Status #ifdef X3270_FT x3270*ftOption.label: File Transfer... #endif #ifdef X3270_PRINTER x3270*printerOption.label: Printer Session x3270*assocButton.label: Start, associate with current LU x3270*luButton.label: Start, specific LU... x3270*printerOffButton.label: Stop Printer #endif x3270*abortScriptOption.label: Abort Scripts/Macros/Strings x3270*disconnectOption.label: Disconnect x3270*exitOption.label: Exit x3270 x3270*exitReallyOption.label: Disconnect and Exit x3270*printTextOption.label: Print Screen Text x3270*saveTextOption.label: Save Screen Text in File x3270*printWindowOption.label: Print Window Bitmap x3270*executeActionOption.label: Execute an Action x3270*fileMenuButton.label: File x3270*fileMenu.label: File #endif #ifdef X3270_FT x3270.ftPopup*justify: left x3270.ftPopup*send.label: Send to host x3270.ftPopup*receive.label: Receive from host x3270.ftPopup*ascii.label: Transfer ASCII file x3270.ftPopup*cr.label: Add/remove CR at end of line x3270.ftPopup*binary.label: Transfer binary file x3270.ftPopup*local.label: Local File Name x3270.ftPopup*host.label: Host File Name x3270.ftPopup*append.label: Append to file x3270.ftPopup*remap.label: Remap ASCII Characters x3270.ftPopup*vm.label: Host is VM/CMS x3270.ftPopup*tso.label: Host is TSO x3270.ftPopup*confirmButton.label: Transfer File x3270.ftPopup*file.label: Record Format x3270.ftPopup*recfmDefault.label: Default x3270.ftPopup*fixed.label: Fixed x3270.ftPopup*variable.label: Variable x3270.ftPopup*undefined.label: Undefined x3270.ftPopup*units.label: Space Allocation Units x3270.ftPopup*spaceDefault.label: Default x3270.ftPopup*tracks.label: Tracks x3270.ftPopup*cylinders.label: Cylinders x3270.ftPopup*avblock.label: Avblock x3270.ftPopup*lrecl.label: LRECL x3270.ftPopup*blksize.label: BLKSIZE x3270.ftPopup*primspace.label: Primary Space x3270.ftPopup*secspace.label: Secondary Space x3270.ftPopup*buffersize.label: DFT Buffer Size x3270.ftProgressPopup*fromLabel.label: Source: x3270.ftProgressPopup*fromLabel.justify: right x3270.ftProgressPopup*toLabel.label: Destination: x3270.ftProgressPopup*toLabel.justify: right x3270.ftProgressPopup*filename.justify: left x3270.ftOverwritePopup*overwriteName.label: Overwrite existing file %s? x3270.ftProgressPopup*waiting.label: Waiting for host acknowledgment... x3270.ftProgressPopup*status.label: %lu bytes transferred x3270.ftProgressPopup*aborting.label: Aborting transfer... #endif #ifdef X3270_SCRIPT x3270.idlePopup*justify: left x3270.idlePopup*command.label: Command(s) x3270.idlePopup*timeout.label: Timeout Value x3270.idlePopup*enable.label: Enable for this session x3270.idlePopup*enablePerm.label: Enable whenever connected x3270.idlePopup*disable.label: Disable x3270.idlePopup*hours.label: Hours x3270.idlePopup*minutes.label: Minutes x3270.idlePopup*seconds.label: Seconds x3270.idlePopup*fuzz.label: Vary time 0..10% #endif #ifdef X3270_PRINTER x3270.printerLuPopup.title: x3270 Printer Session x3270.printerLuPopup.dialog.label: Enter LU Name x3270.printerLuPopup*confirmButton.label: Start Session #endif #ifdef X3270_MENUS x3270*optionsMenuButton.label: Options x3270*optionsMenu.label: Options x3270*connectMenuButton.label: Connect x3270*macrosMenuButton.label: Macros x3270*macrosMenu.label: Macros x3270*hostMenu.label: Connect x3270*helpButton.label: Help x3270*otherHostOption.label: Other... x3270*togglesOption.label: Toggles x3270*fontsOption.label: Font x3270*modelsOption.label: Screen Size x3270*colorsOption.label: Color Scheme x3270*charsetOption.label: Character Set x3270*keymapOption.label: Change Keymap... x3270*idleCommandOption.label: Configure Idle Command x3270*keypadOption.label: Keypad x3270*monocaseOption.label: Monocase x3270*cursorBlinkOption.label: Blinking Cursor x3270*showTimingOption.label: Show Timing x3270*cursorPosOption.label: Track Cursor x3270*dsTraceOption.label: Trace Data Stream x3270*eventTraceOption.label: Trace Keyboard/Mouse Events x3270*screenTraceOption.label: Save Screen(s) in File x3270*scrollBarOption.label: Scrollbar x3270*lineWrapOption.label: Wraparound x3270*marginedPasteOption.label: Paste with Left Margin x3270*rectangleSelectOption.label: Select by Rectangles x3270*blankFillOption.label: Blank Fill x3270*crosshairOption.label: Crosshair Cursor x3270*visibleControlOption.label: Visible Control Chars x3270*underlineCursorOption.label: Underline Cursor x3270*blockCursorOption.label: Block Cursor x3270*otherFontOption.label: Other... x3270*lineModeOption.label: Line Mode x3270*characterModeOption.label: Character Mode x3270*extendedDsOption.label: Extended 3270 Data Stream x3270*m3278Option.label: Monochrome (3278) Emulation x3270*m3279Option.label: Color (3279) Emulation x3270*model2Option.label: Model 2 (80x24) x3270*model3Option.label: Model 3 (80x32) x3270*model4Option.label: Model 4 (80x43) x3270*model5Option.label: Model 5 (132x27) x3270*oversizeOption.label: Oversize... x3270*saveOption.label: Save Changed Options #endif ! ! Messages #ifdef X3270_MENUS x3270.message.processId: Process ID: x3270.message.windowId: Main window ID: x3270.message.model: Model x3270.message.rows: rows x3270.message.columns: columns x3270.message.mono: monochrome x3270.message.fullColor: color x3270.message.pseudoColor: pseudo-color x3270.message.extendedDs: extended data stream x3270.message.standardDs: standard data stream x3270.message.terminalName: Terminal name: x3270.message.luName: LU name: x3270.message.bindPluName: BIND PLU name: x3270.message.emulatorFont: Emulator font: x3270.message.emulatorFontDbcs: DBCS emulator font: x3270.message.xFont: standard X11 font x3270.message.cgFont: special 3270 CG font x3270.message.charset: Host EBCDIC character set: x3270.message.sbcsCgcsgid: Host SBCS CGCSGID: x3270.message.dbcsCgcsgid: Host DBCS CGCSGID: x3270.message.defaultCharacterSet: Default (us) EBCDIC character set x3270.message.displayCharacterSet: Display character set: x3270.message.displayCharacterSetDbcs: DBCS display character set: x3270.message.localeCodeset: Locale codeset: x3270.message.require: require x3270.message.have: have x3270.message.keyboardMap: Keyboard map: x3270.message.defaultKeyboardMap: Default keyboard map x3270.message.composeMap: Compose-key map: x3270.message.noComposeMap: No compose-key map x3270.message.activeIcon: Active icon x3270.message.iconFont: Icon font: x3270.message.iconLabelFont: Icon label font: x3270.message.staticIcon: Static bitmap icon x3270.message.connectedTo: Connected to: x3270.message.port: Port: x3270.message.secure: via TLS/SSL x3270.message.proxyType: Proxy type: x3270.message.server: Server: x3270.message.charMode: NVT character mode x3270.message.lineMode: NVT line mode x3270.message.dsMode: 3270 mode x3270.message.sscpMode: SSCP-LU mode x3270.message.tn3270eOpts: TN3270E options: x3270.message.tn3270eNoOpts: No TN3270E options x3270.message.connectionPending: Connection pending to: x3270.message.notConnected: Not connected x3270.message.specialCharacters: Special characters: x3270.message.hour: hour x3270.message.hours: hours x3270.message.minute: minute x3270.message.minutes: minutes x3270.message.second: second x3270.message.seconds: seconds x3270.message.sent: Sent x3270.message.Received: Received x3270.message.received: received x3270.message.byte: byte x3270.message.bytes: bytes x3270.message.record: record x3270.message.records: records x3270.message.statusDbcs: DBCS x3270.message.statusNotConnected: Not Connected x3270.message.statusTwait: Wait x3270.message.statusSyswait: System x3270.message.statusProtected: Protected x3270.message.statusNumeric: Numeric x3270.message.statusOverflow: Overflow x3270.message.statusInhibit: Inhibit x3270.message.statusScrolled: Scrolled x3270.message.statusMinus: No Function #endif x3270.message.statusConnecting: Connecting #endif #ifdef X3270_FT x3270.message.ftComplete: Transfer complete, %i bytes transferred\n\ %sbytes/sec in %s mode x3270.message.ftUnable: Cannot begin transfer x3270.message.ftStartTimeout: Transfer did not start within 10s x3270.message.ftUserCancel: Transfer cancelled by user x3270.message.ftHostCancel: Transfer cancelled by host x3270.message.ftCutUnknownFrame: Unknown frame type from host x3270.message.ftCutUnknownControl: Unknown FT control code from host x3270.message.ftCutRetransmit: Transmission error x3270.message.ftCutConversionError: Data conversion error x3270.message.ftCutOversize: Illegal frame length x3270.message.ftDisconnected: Host disconnected, transfer cancelled x3270.message.ftNot3270: Not in 3270 mode, transfer cancelled x3270.message.ftDftUnknownOpen: Uknown DFT Open type from host #endif x3270.message.inputMethod: X11 Input Method (XIM): x3270.message.ximState: state: x3270.message.ximDisabled: failed x3270.message.ximNotFound: not found x3270.message.ximActive: active x3270.message.ximLocale: locale: x3270.message.ximEncoding: encoding: #ifndef STANDALONE x3270.message.kmEvent: Event x3270.message.kmKeymapLine: Keymap:Line x3270.message.kmActions: Actions x3270.message.kmOverridden: \ -- overridden -- x3270.message.kmKeymap: Keymap x3270.message.kmTemporaryKeymap: Temporary keymap x3270.message.kmFile: from file x3270.message.kmResource: from resource x3270.message.kmFromServer: \ (expanded from '@server') ! !============================================================================= ! Section 3: Base-Level Resources ! ! Resources required for the basic operation of x3270, not for the ! faint-hearted to modify. !============================================================================= ! ! App-defaults file version x3270.adVersion: 3.3.4 ! ! Fonts #ifdef X3270_APL x3270.aplFont: 3270 #endif x3270.debugFont: 3270d x3270.iconFont: nil2 x3270.iconLabelFont: 8x13 #ifdef X3270_KEYPAD x3270*keyPad*large*font: fixed x3270*keyPad*small*font: -*-fixed-medium-r-semicondensed-*-12-*-* #endif x3270*value*font: fixed x3270*dataLabel.font: -*-courier-medium-r-normal--14-*-100-100-m-*-iso8859-1 !x3270*smallLabel.font: 5x7 x3270*smallLabel.font: 6x13 x3270*filename*font: fixed x3270*kmPopup*text*font: fixed x3270*font: -*-helvetica-bold-r-normal--14-*-100-100-p-*-iso8859-1 ! ! Menu configuration #ifdef X3270_MENUS x3270*menuBarContainer.borderWidth: 2 #endif #ifdef COLOR #ifdef X3270_KEYPAD x3270.keypadBackground: grey #endif #ifdef X3270_MENUS x3270*menuBarContainer.background: grey x3270*menuBarContainer.borderColor: grey40 x3270*fileMenuButton*background: grey x3270*optionsMenuButton*background: grey x3270*connectMenuButton*background: grey x3270*macrosMenuButton*background: grey x3270*helpButton*background: grey x3270*keypadButton*background: grey x3270*lockedIcon*background: grey x3270*lockedIcon*foreground: yellow4 x3270*lockedIcon*borderColor: grey x3270*unlockedIcon*background: grey x3270*unlockedIcon*borderColor: grey x3270*fileMenuButton*borderColor: grey x3270*optionsMenuButton*borderColor: grey x3270*connectMenuButton*borderColor: grey x3270*macrosMenuButton*borderColor: grey x3270*helpButton*borderColor: grey #endif #else #ifdef X3270_MENUS x3270*fileMenuButton*borderColor: XtDefaultBackground x3270*optionsMenuButton*borderColor: XtDefaultBackground x3270*connectMenuButton*borderColor: XtDefaultBackground x3270*macrosMenuButton*borderColor: XtDefaultBackground x3270*helpButton*borderColor: XtDefaultBackground #endif #endif #ifdef X3270_MENUS x3270*fileMenuButton*highlightThickness: 1 x3270*optionsMenuButton*highlightThickness: 1 x3270*connectMenuButton*highlightThickness: 1 x3270*macrosMenuButton*highlightThickness: 1 x3270*helpButton*highlightThickness: 1 x3270*keypadButton*highlightThickness: 1 #ifdef COLOR x3270*fileMenu*background: grey x3270*exitMenu*background: grey x3270*optionsMenu*background: grey x3270*hostMenu*background: grey x3270*macrosMenu*background: grey x3270*togglesMenu*background: grey x3270*fontsMenu*background: grey x3270*modelsMenu*background: grey x3270*colorsMenu*background: grey x3270*charsetMenu*background: grey x3270*printerMenu*background: grey #endif x3270*fileMenu.borderWidth: 2 x3270*exitMenu.borderWidth: 2 x3270*optionsMenu.borderWidth: 2 x3270*hostMenu.borderWidth: 2 x3270*macrosMenu.borderWidth: 2 x3270*togglesMenu.borderWidth: 2 x3270*fontsMenu.borderWidth: 2 x3270*modelsMenu.borderWidth: 2 x3270*colorsMenu.borderWidth: 2 x3270*charsetMenu.borderWidth: 2 #ifdef COLOR x3270*fileMenu.borderColor: grey40 x3270*exitMenu.borderColor: grey40 x3270*optionsMenu.borderColor: grey40 x3270*hostMenu.borderColor: grey40 x3270*macrosMenu.borderColor: grey40 x3270*togglesMenu.borderColor: grey40 x3270*fontsMenu.borderColor: grey40 x3270*modelsMenu.borderColor: grey40 x3270*colorsMenu.borderColor: grey40 x3270*charsetMenu.borderColor: grey40 #endif x3270*fileMenu*leftMargin: 20 x3270*fileMenu*rightMargin: 20 x3270*optionsMenu*rightMargin: 20 x3270*togglesMenu*leftMargin: 20 x3270*fontsMenu*leftMargin: 20 x3270*fontsMenu*rightMargin: 20 x3270*modelsMenu*leftMargin: 20 x3270*colorsMenu*leftMargin: 20 x3270*colorsMenu*rightMargin: 20 x3270*charsetMenu*leftMargin: 20 x3270*charsetMenu*rightMargin: 20 x3270*hostMenu*rightMargin: 20 x3270*macrosMenu*rightMargin: 20 #endif ! ! Confirm and cancel buttons ! borderWidth and borderColor are never specified anywhere else, so these ! always apply x3270*confirmButton.borderWidth: 2 x3270*confirm2Button*borderWidth: 2 x3270*cancelButton*borderWidth: 2 #ifdef COLOR x3270**confirmButton.borderColor: grey40 x3270**confirmButton.borderColor: grey40 x3270**confirm2Button.borderColor: grey40 x3270**cancelButton.borderColor: grey40 #endif ! foreground and background are often overridden by other resources, so they ! must be specified explicitly for each instance #ifdef COLOR x3270*dialog*confirmButton.foreground: black x3270*dialog*confirmButton.background: grey80 x3270*dialog*confirm2Button.background: grey80 x3270*dialog*cancelButton.foreground: firebrick x3270*dialog*cancelButton.background: grey80 #endif ! ! Values ! borderWidth and borderColor are never specified anywhere else, so these ! always apply #ifdef COLOR x3270*value.borderWidth: 2 x3270*value.borderColor: grey40 #endif ! background is overridden by dialog*background, so it must be specified ! explicitly #ifdef COLOR x3270*dialog*value*background: lavender #endif ! ! Overall defaults for dialog boxes #ifdef COLOR x3270*dialog*background: grey x3270*dialog*foreground: black #endif ! ! Fixed popup sizes x3270.errorPopup.width: 500 x3270.printerErrorPopup.width: 500 x3270.childErrorPopup.width: 500 x3270.infoPopup.width: 500 x3270.printerInfoPopup.width: 500 x3270.childInfoPopup.width: 500 x3270.printerLuPopup.width: 300 x3270.connectPopup.width: 300 x3270.fontPopup.width: 300 x3270.keymapPopup.width: 300 x3270.oversizePopup.width: 300 x3270.printTextPopup.width: 300 x3270.saveTextPopup.width: 300 x3270.printWindowPopup.width: 300 x3270.tracePopup.width: 300 x3270.screentracePopup.width: 300 x3270.executeActionPopup.width: 300 x3270.saveOptionsPopup.width: 300 ! ! Nondefault definitions for complex pop-ups #ifdef COLOR x3270.aboutCopyrightPopup*icon.foreground: darkslateblue x3270.aboutConfigPopup*icon.foreground: darkslateblue x3270.aboutStatusPopup*icon.foreground: darkslateblue x3270.errorPopup*label.foreground: firebrick x3270.printerErrorPopup*label.foreground: firebrick x3270.childErrorPopup*label.foreground: firebrick #ifdef X3270_FT x3270.ftProgressPopup*filename.borderWidth: 2 x3270.ftProgressPopup*filename.borderColor: grey40 x3270.ftProgressPopup*filename.background: lavender #endif #endif ! #ifdef X3270_KEYPAD ! Keypad key dimensions, in pixels x3270.keypad.keyHeight: 24 x3270.keypad.keyWidth: 48 x3270.keypad.pfWidth: 32 x3270.keypad.paWidth: 36 x3270.keypad.largeKeyWidth: 56 #endif ! ! Keymap display pop-up ! x3270*keymapDisplayOption.label: Display Current Keymap x3270.kmPopup*label.label: Current Keyboard Map x3270.kmPopup*sortActionOption.label: Sort by Action x3270.kmPopup*sortKeymapOption.label: Sort by Keymap x3270.kmPopup*sortEventOption.label: Sort by Event x3270.kmPopup*text*background: lavender x3270.kmPopup*text*foreground: black x3270.kmPopup*text.height: 250 x3270.kmPopup*text.width: 500 ! ! Basic event translations -- these should NEVER be changed without significant ! code changes x3270.translations: #override \n\ WM_PROTOCOLS: PA-WMProtocols()\n\ : PA-KeymapNotify()\n\ WM_STATE: PA-StateChanged()\n\ : PA-Focus()\n\ : PA-Focus()\n\ : PA-ConfigureNotify() x3270.container.translations: #override \n\ Shift_L: PA-Shift()\n\ Shift_L: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_R: PA-Shift()\n\ Alt_R: PA-Shift()\n\ :: Default()\n\ :: Default()\n\ :: Default() x3270*screen.translations: #override \n\ : PA-Expose()\n\ : PA-VisibilityNotify()\n\ : PA-GraphicsExpose()\n\ Shift_L: PA-Shift()\n\ Shift_L: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_R: PA-Shift()\n\ Alt_R: PA-Shift()\n\ :: Default()\n\ :: Default()\n\ :: Default() x3270icon.translations: #override \n\ : PA-Expose() #ifdef X3270_KEYPAD x3270.keypadPopup.translations: #override \n\ WM_PROTOCOLS: PA-WMProtocols()\n\ : PA-KeymapNotify()\n\ : PA-EnterLeave()\n\ : PA-EnterLeave() x3270.keypadPopup.container.translations: #override \n\ Shift_L: PA-Shift()\n\ Shift_L: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_R: PA-Shift()\n\ Alt_R: PA-Shift()\n\ :: Default() #endif x3270.errorPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printerErrorPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.childErrorPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.errorPopup*translations: #override \n\ Return: PA-confirm() x3270.printerErrorPopup*translations: #override \n\ Return: PA-confirm() x3270.childErrorPopup*translations: #override \n\ Return: PA-confirm() x3270.infoPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printerInfoPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.childInfoPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.infoPopup*translations: #override \n\ Return: PA-confirm() x3270.printerInfoPopup*translations: #override \n\ Return: PA-confirm() x3270.childInfoPopup*translations: #override \n\ Return: PA-confirm() #ifdef X3270_MENUS x3270.connectPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.fontPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.keymapPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printTextPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.saveTextPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printWindowPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.tracePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.screentracePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.executeActionPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.saveOptionsPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutCopyrightPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutCopyrightPopup*translations: #override \n\ Return: PA-confirm() x3270.aboutConfigPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutConfigPopup*translations: #override \n\ Return: PA-confirm() x3270.aboutStatusPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutStatusPopup*translations: #override \n\ Return: PA-confirm() x3270.kmPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.kmPopup*translations: #override \n\ Return: PA-confirm() x3270.luPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() #endif #ifdef X3270_FT x3270.ftPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() ! Note: WM_PROTOCOLS is explicitly not defined for ftPopup, so that the user ! can clear error conditions while a transfer is in progress. x3270.ftOverwritePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.ftPopup*value.translations: #override \n\ Return: PA-dialog-next()\n\ Tab: PA-dialog-next()\n\ : PA-dialog-focus() select-start()\n\ CtrlU: select-all(DUMMY) delete-selection() #endif #ifdef X3270_SCRIPT x3270.idlePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.idlePopup*value.translations: #override \n\ Return: PA-dialog-next()\n\ Tab: PA-dialog-next()\n\ : PA-dialog-focus() select-start()\n\ CtrlU: select-all(DUMMY) delete-selection() #endif x3270*value.translations: #override \n\ Return: PA-confirm()\n\ CtrlU: select-all(DUMMY) delete-selection() x3270*value.width: 200 ! Workaround for Xaw MenuButton bug that keeps menu items from highlighting ! when CapsLock or NumLock are down. Technically, this would require ! translations for all permutations of all 8 modifiers: shift, lock, control, ! mod1, mod2, mod3, mod4 and mod5. However, we will leave out shift and ! control, since they are "voluntary" key presses and would quadruple the ! size of this resource. x3270*MenuButton.translations: #override \n\ Lock: reset() PopupMenu()\n\ Mod1: reset() PopupMenu()\n\ Lock Mod1: reset() PopupMenu()\n\ Mod2: reset() PopupMenu()\n\ Lock Mod2: reset() PopupMenu()\n\ Mod1 Mod2: reset() PopupMenu()\n\ Lock Mod1 Mod2: reset() PopupMenu()\n\ Mod3: reset() PopupMenu()\n\ Lock Mod3: reset() PopupMenu()\n\ Mod1 Mod3: reset() PopupMenu()\n\ Lock Mod1 Mod3: reset() PopupMenu()\n\ Mod2 Mod3: reset() PopupMenu()\n\ Lock Mod2 Mod3: reset() PopupMenu()\n\ Mod1 Mod2 Mod3: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3: reset() PopupMenu()\n\ Mod4: reset() PopupMenu()\n\ Lock Mod4: reset() PopupMenu()\n\ Mod1 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod4: reset() PopupMenu()\n\ Mod2 Mod4: reset() PopupMenu()\n\ Lock Mod2 Mod4: reset() PopupMenu()\n\ Mod1 Mod2 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod4: reset() PopupMenu()\n\ Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod3 Mod4: reset() PopupMenu()\n\ Mod1 Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod3 Mod4: reset() PopupMenu()\n\ Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Mod1 Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Mod5: reset() PopupMenu()\n\ Lock Mod5: reset() PopupMenu()\n\ Mod1 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod5: reset() PopupMenu()\n\ Mod2 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod5: reset() PopupMenu()\n\ Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod3 Mod5: reset() PopupMenu()\n\ Mod1 Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod3 Mod5: reset() PopupMenu()\n\ Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod4 Mod5: reset() PopupMenu()\n\ Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Mod2 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3 Mod4 Mod5: reset() PopupMenu() #endif ! Default compose-key map. ! Each line is of the form "keysym1 + keysym2 = keysym3", meaning "when the ! Compose key is pressed, followed by keysym1 and keysym2 (in either order), ! interpret it as keysym3." The definitions are case-sensitive. x3270.composeMap.latin1: \ c + bar = cent \n\ c + slash = cent \n\ L + minus = sterling \n\ Y + equal = yen \n\ S + S = section \n\ C + O = copyright \n\ a + underscore = ordfeminine \n\ less + less = guillemotleft \n\ R + O = registered \n\ plus + minus = plusminus \n\ o + underscore = masculine \n\ greater + greater = guillemotright \n\ 1 + 4 = onequarter \n\ 1 + 2 = onehalf \n\ 3 + 4 = threequarters \n\ bar + bar = brokenbar \n\ A + grave = Agrave \n\ A + apostrophe = Aacute \n\ A + asciicircum = Acircumflex \n\ A + asciitilde = Atilde \n\ A + quotedbl = Adiaeresis \n\ A + asterisk = Aring \n\ A + E = AE \n\ C + comma = Ccedilla \n\ C + apostrophe = Ccedilla \n\ E + grave = Egrave \n\ E + apostrophe = Eacute \n\ E + asciicircum = Ecircumflex \n\ E + quotedbl = Ediaeresis \n\ I + grave = Igrave \n\ I + apostrophe = Iacute \n\ I + asciicircum = Icircumflex \n\ I + quotedbl = Idiaeresis \n\ N + asciitilde = Ntilde \n\ O + grave = Ograve \n\ O + apostrophe = Oacute \n\ O + asciicircum = Ocircumflex \n\ O + asciitilde = Otilde \n\ O + quotedbl = Odiaeresis \n\ O + slash = Ooblique \n\ U + grave = Ugrave \n\ U + apostrophe = Uacute \n\ U + asciicircum = Ucircumflex \n\ U + quotedbl = Udiaeresis \n\ Y + apostrophe = Yacute \n\ s + s = ssharp \n\ a + grave = agrave \n\ a + apostrophe = aacute \n\ a + asciicircum = acircumflex \n\ a + asciitilde = atilde \n\ a + quotedbl = adiaeresis \n\ a + asterisk = aring \n\ a + e = ae \n\ c + comma = ccedilla \n\ c + apostrophe = ccedilla \n\ e + grave = egrave \n\ e + apostrophe = eacute \n\ e + asciicircum = ecircumflex \n\ e + quotedbl = ediaeresis \n\ i + grave = igrave \n\ i + apostrophe = iacute \n\ i + asciicircum = icircumflex \n\ i + quotedbl = idiaeresis \n\ n + asciitilde = ntilde \n\ o + grave = ograve \n\ o + apostrophe = oacute \n\ o + asciicircum = ocircumflex \n\ o + asciitilde = otilde \n\ o + quotedbl = odiaeresis \n\ o + slash = oslash \n\ u + grave = ugrave \n\ u + apostrophe = uacute \n\ u + asciicircum = ucircumflex \n\ u + quotedbl = udiaeresis \n\ y + apostrophe = yacute \n\ y + quotedbl = ydiaeresis \n\ apostrophe + apostrophe = apostrophe \n\ apostrophe + space = apostrophe \n\ asciicircum + asciicircum = asciicircum \n\ asciicircum + space = asciicircum \n\ asciitilde + asciitilde = asciitilde \n\ asciitilde + space = asciitilde \n\ grave + grave = grave \n\ grave + space = grave \n\ quotedbl + quotedbl = quotedbl \n\ quotedbl + space = quotedbl \n #ifndef STANDALONE #ifdef X3270_APL ! ! Compose-key map for APL. x3270.composeMap.apl: \ A + underscore = apl_Aunderbar \n\ B + underscore = apl_Bunderbar \n\ C + underscore = apl_Cunderbar \n\ D + underscore = apl_Dunderbar \n\ E + underscore = apl_Eunderbar \n\ F + underscore = apl_Funderbar \n\ G + underscore = apl_Gunderbar \n\ H + underscore = apl_Hunderbar \n\ I + underscore = apl_Iunderbar \n\ J + underscore = apl_Junderbar \n\ K + underscore = apl_Kunderbar \n\ L + underscore = apl_Lunderbar \n\ M + underscore = apl_Munderbar \n\ N + underscore = apl_Nunderbar \n\ O + underscore = apl_Ounderbar \n\ P + underscore = apl_Punderbar \n\ Q + underscore = apl_Qunderbar \n\ R + underscore = apl_Runderbar \n\ S + underscore = apl_Sunderbar \n\ T + underscore = apl_Tunderbar \n\ U + underscore = apl_Uunderbar \n\ V + underscore = apl_Vunderbar \n\ W + underscore = apl_Wunderbar \n\ X + underscore = apl_Xunderbar \n\ Y + underscore = apl_Yunderbar \n\ Z + underscore = apl_Zunderbar \n\ apl_upcaret + apl_downcaret = apl_diamond \n\ apl_quad + apl_jot = apl_quadjot \n\ apl_iota + underscore = apl_iotaunderbar \n\ apl_epsilon + underscore = apl_epsilonunderbar \n\ less + equal = apl_notgreater \n\ plus + minus = apl_plusminus \n\ greater + equal = apl_notless \n\ equal + slash = apl_notequal \n\ apl_upcaret + apl_tilde = apl_upcarettilde \n\ apl_upcaret + asciitilde = apl_upcarettilde \n\ apl_downcaret + apl_tilde = apl_downcarettilde \n\ apl_downcaret + asciitilde = apl_downcarettilde \n\ apl_circle + apl_stile = apl_circlestile \n\ apl_circle + bar = apl_circlestile \n\ apl_quad + apl_slope = apl_slopequad \n\ apl_quad + backslash = apl_slopequad \n\ apl_circle + apl_slope = apl_circleslope \n\ apl_circle + backslash = apl_circleslope \n\ apl_downtack + apl_uptack = apl_downtackup \n\ apostrophe + period = apl_quotedot \n\ apl_del + apl_stile = apl_delstile \n\ apl_del + bar = apl_delstile \n\ apl_delta + apl_stile = apl_deltastile \n\ apl_delta + bar = apl_deltastile \n\ apl_quad + apostrophe = apl_quadquote \n\ apl_upshoe + apl_jot = apl_upshoejot \n\ slash + minus = apl_slashbar \n\ apl_slope + minus = apl_slopebar \n\ backslash + minus = apl_slopebar \n\ apl_diaeresis + period = apl_diaeresisdot \n\ apl_circle + minus = apl_circlebar \n\ apl_quad + apl_divide = apl_quaddivide \n\ apl_uptack + apl_jot = apl_uptackjot \n\ apl_del + apl_tilde = apl_deltilde \n\ apl_del + asciitilde = apl_deltilde \n\ apl_delta + underscore = apl_deltaunderbar \n\ apl_circle + asterisk = apl_circlestar \n\ apl_downtack + apl_jot = apl_downtackjot \n\ equal + underscore = apl_equalunderbar \n\ apl_quad + apl_quad = apl_squad \n\ apl_diaeresis + apl_jot = apl_diaeresisjot \n\ apl_diaeresis + apl_circle = apl_diaeresiscircle \n\ comma + minus = apl_commabar \n\ c + equal = apl_euro \n\ C + equal = apl_euro \n\ minus + parenleft = apl_lefttack \n\ minus + parenright = apl_righttack \n #endif #endif #ifdef STANDALONE #ifdef _WIN32 ! wc3270 keymap for more 3270-ish behavior: The Enter key is Newline and the ! Right-Ctrl key is Enter. x3270.keymap.rctrl.3270: \ RightCtrlCTRL: Enter()\n\ Return: Newline() #endif #endif ibm-3270-3.3.10ga4/tcl3270/resolver.c0000644000175000017500000002254511254565704016302 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resolver.c * Hostname resolution. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #include #include #include #else /*][*/ #include #include #endif /*]*/ #include #include "resolverc.h" #include "w3miscc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #if defined(_WIN32) /*[*/ static int win32_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res); static void win32_freeaddrinfo(struct addrinfo *res); static int win32_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags); #undef getaddrinfo #define getaddrinfo win32_getaddrinfo #undef freeaddrinfo #define freeaddrinfo win32_freeaddrinfo #undef getnameinfo #define getnameinfo win32_getnameinfo #endif /*]*/ /* * Resolve a hostname and port. * Returns 0 for success, -1 for fatal error (name resolution impossible), * -2 for simple error (cannot resolve the name). */ int resolve_host_and_port(const char *host, char *portname, int ix, unsigned short *pport, struct sockaddr *sa, socklen_t *sa_len, char *errmsg, int em_len, int *lastp) { #if defined(_WIN32) /*[*/ OSVERSIONINFO info; Boolean has_getaddrinfo = False; /* Figure out if we should use gethostbyname() or getaddrinfo(). */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); exit(1); } has_getaddrinfo = (info.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS && info.dwMajorVersion >= 5 && info.dwMinorVersion >= 1); if (has_getaddrinfo) #endif /*]*/ { #if defined(AF_INET6) /*[*/ struct addrinfo hints, *res0, *res; int rc; /* * Use getaddrinfo() to resolve the hostname and port * together. */ (void) memset(&hints, '\0', sizeof(struct addrinfo)); hints.ai_flags = 0; hints.ai_family = PF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; rc = getaddrinfo(host, portname, &hints, &res0); if (rc != 0) { snprintf(errmsg, em_len, "%s/%s:\n%s", host, portname? portname: "(none)", gai_strerror(rc)); return -2; } res = res0; /* * Return the reqested element. * Hopefully the list will not change between calls. */ while (ix && res->ai_next != NULL) { res = res->ai_next; ix--; } if (res == NULL) { /* Ran off the end? The list must have changed. */ snprintf(errmsg, em_len, "%s/%s:\n%s", host, portname? portname: "(none)", gai_strerror(EAI_AGAIN)); freeaddrinfo(res); return -2; } switch (res->ai_family) { case AF_INET: *pport = ntohs(((struct sockaddr_in *) res->ai_addr)->sin_port); break; case AF_INET6: *pport = ntohs(((struct sockaddr_in6 *) res->ai_addr)->sin6_port); break; default: snprintf(errmsg, em_len, "%s:\nunknown family %d", host, res->ai_family); freeaddrinfo(res); return -1; } (void) memcpy(sa, res->ai_addr, res->ai_addrlen); *sa_len = res->ai_addrlen; if (lastp != NULL) *lastp = (res->ai_next == NULL); freeaddrinfo(res0); #endif /*]*/ } #if defined(_WIN32) /*[*/ else #endif /*]*/ #if defined(_WIN32) || !defined(AF_INET6) /*[*/ { struct hostent *hp; struct servent *sp; unsigned short port; unsigned long lport; char *ptr; struct sockaddr_in *sin = (struct sockaddr_in *)sa; /* Get the port number. */ lport = strtoul(portname, &ptr, 0); if (ptr == portname || *ptr != '\0' || lport == 0L || lport & ~0xffff) { if (!(sp = getservbyname(portname, "tcp"))) { snprintf(errmsg, em_len, "Unknown port number or service: %s", portname); return -1; } port = sp->s_port; } else port = htons((unsigned short)lport); *pport = ntohs(port); /* Use gethostbyname() to resolve the hostname. */ hp = gethostbyname(host); if (hp == (struct hostent *) 0) { sin->sin_family = AF_INET; sin->sin_addr.s_addr = inet_addr(host); if (sin->sin_addr.s_addr == (unsigned long)-1) { snprintf(errmsg, em_len, "Unknown host:\n%s", host); return -2; } if (lastp != NULL) *lastp = True; } else { int i; for (i = 0; i < ix; i++) { if (hp->h_addr_list[i] == NULL) { snprintf(errmsg, em_len, "Unknown host:\n%s", host); return -2; } } sin->sin_family = hp->h_addrtype; (void) memmove(&sin->sin_addr, hp->h_addr_list[i], hp->h_length); if (lastp != NULL) *lastp = (hp->h_addr_list[i + 1] == NULL); } sin->sin_port = port; *sa_len = sizeof(struct sockaddr_in); } #endif /*]*/ return 0; } /* * Resolve a sockaddr into a numeric hostname and port. * Returns 0 for success, -1 for failure. */ int numeric_host_and_port(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, char *errmsg, int em_len) { #if defined(_WIN32) /*[*/ OSVERSIONINFO info; Boolean has_getnameinfo = False; /* Figure out if we should use inet_ntoa() or getnameinfo(). */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); exit(1); } has_getnameinfo = (info.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS && info.dwMajorVersion >= 5 && info.dwMinorVersion >= 1); if (has_getnameinfo) #endif /*]*/ { #if defined(AF_INET6) /*[*/ int rc; /* Use getnameinfo(). */ rc = getnameinfo(sa, salen, host, hostlen, serv, servlen, NI_NUMERICHOST | NI_NUMERICSERV); if (rc != 0) { snprintf(errmsg, em_len, "%s", gai_strerror(rc)); return -1; } #endif /*]*/ } #if defined(_WIN32) /*[*/ else #endif /*]*/ #if defined(_WIN32) || !defined(AF_INET6) /*[*/ { struct sockaddr_in *sin = (struct sockaddr_in *)sa; /* Use inet_ntoa() and snprintf(). */ snprintf(host, hostlen, "%s", inet_ntoa(sin->sin_addr)); snprintf(serv, servlen, "%u", ntohs(sin->sin_port)); } #endif /*]*/ return 0; } #if defined(_WIN32) /*[*/ /* * Windows-specific versions of getaddrinfo(), freeaddrinfo() and * gai_strerror(). * The symbols are resolved from ws2_32.dll at run-time, instead of * by linking against ws2_32.lib, because they are not defined on all * versions of Windows. */ typedef int (__stdcall *gai_fn)(const char *, const char *, const struct addrinfo *, struct addrinfo **); typedef void (__stdcall *fai_fn)(struct addrinfo*); typedef int (__stdcall *gni_fn)(const struct sockaddr *, socklen_t, char *, size_t, char *, size_t, int); /* Resolve a symbol in ws2_32.dll. */ static FARPROC get_ws2_32(const char *symbol) { static HMODULE ws2_32_handle = NULL; FARPROC p; if (ws2_32_handle == NULL) { ws2_32_handle = LoadLibrary("ws2_32.dll"); if (ws2_32_handle == NULL) { fprintf(stderr, "Can't load ws2_32.dll: %s\n", win32_strerror(GetLastError())); exit(1); } } p = GetProcAddress(ws2_32_handle, symbol); if (p == NULL) { fprintf(stderr, "Can't resolve %s in ws2_32.dll: %s\n", symbol, win32_strerror(GetLastError())); exit(1); } return p; } static int win32_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res) { static FARPROC gai_p = NULL; if (gai_p == NULL) gai_p = get_ws2_32("getaddrinfo"); return ((gai_fn)gai_p)(node, service, hints, res); } static void win32_freeaddrinfo(struct addrinfo *res) { static FARPROC fai_p = NULL; if (fai_p == NULL) fai_p = get_ws2_32("freeaddrinfo"); ((fai_fn)fai_p)(res); } static int win32_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags) { static FARPROC gni_p = NULL; if (gni_p == NULL) gni_p = get_ws2_32("getnameinfo"); return ((gni_fn)gni_p)(sa, salen, host, hostlen, serv, servlen, flags); } #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/menubarc.h0000644000175000017500000000453711254565704016243 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * menubarc.h * Global declarations for menubar.c. */ #if defined(X3270_MENUS) /*[*/ extern void HandleMenu_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) /*[*/ extern void menubar_as_set(Boolean sensitive); #else /*][*/ #define menubar_as_set(n) #endif /*]*/ extern void menubar_init(Widget container, Dimension overall_width, Dimension current_width); extern void menubar_keypad_changed(void); extern Dimension menubar_qheight(Dimension container_width); extern void menubar_resize(Dimension width); extern void menubar_retoggle(struct toggle *t); #else /*][*/ #define menubar_as_set(n) #define menubar_init(a, b, c) #define menubar_keypad_changed() #define menubar_qheight(n) 0 #define menubar_resize(n) #define menubar_retoggle(t) #define HandleMenu_action ignore_action #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/configure.in0000644000175000017500000001761311254565711016604 0ustar bastianbastiandnl Copyright (c) 2000-2009, Paul Mattes. dnl All rights reserved. dnl dnl Redistribution and use in source and binary forms, with or without dnl modification, are permitted provided that the following conditions dnl are met: dnl * Redistributions of source code must retain the above copyright dnl notice, this list of conditions and the following disclaimer. dnl * Redistributions in binary form must reproduce the above copyright dnl notice, this list of conditions and the following disclaimer in the dnl documentation and/or other materials provided with the distribution. dnl * Neither the name of Paul Mattes nor his contributors may be used dnl to endorse or promote products derived from this software without dnl specific prior written permission. dnl dnl THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS dnl OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED dnl WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE dnl DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, dnl INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES dnl (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR dnl SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) dnl HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, dnl STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING dnl IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE dnl POSSIBILITY OF SUCH DAMAGE. dnl Process this file with autoconf to produce a configure script. AC_INIT(tcl3270.c) AC_PREREQ(2.50) dnl Checks for programs. AC_PROG_INSTALL AC_PROG_CC dnl Figure out what sort of host this is. dnl If it's solaris, then pass the -D__EXTENSIONS__ flag to cc, so that dnl all of usual Unix functions are visible to strict ANSI compilers. AC_CANONICAL_HOST case "$host_os" in solaris2*) XANSI=-D__EXTENSIONS__ ;; darwin*) XPRECOMP=-no-cpp-precomp ;; linux*) XANSI=-D_BSD_SOURCE ;; *) XANSI="" ;; esac AC_SUBST(XANSI) AC_SUBST(XPRECOMP) dnl Figure out what version of Tcl they've got AC_CHECK_PROG(tclsh,tclsh,yes,no) if test "$tclsh" = no then AC_ERROR(Can't find tclsh) fi AC_MSG_CHECKING(Tcl version) tclver=`echo "puts [[set tcl_version]]" | tclsh` if test -z "$tclver" then AC_ERROR(Can't figure out Tcl version) fi AC_MSG_RESULT($tclver) dnl Set up tclvr (tclver without the period, for BSD) tclvr=`echo $tclver | tr -d .` dnl Checks for header files. dnl AC_HEADER_STDC dnl AC_HEADER_SYS_WAIT dnl AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h unistd.h) AC_CONFIG_HEADER(conf.h) AC_CHECK_HEADERS(sys/select.h) AC_CHECK_HEADERS(pty.h) AC_CHECK_HEADERS(libutil.h) AC_CHECK_HEADERS(util.h) AC_CHECK_HEADERS(iconv.h) dnl Check for TCL header files. orig_CPPFLAGS="$CPPFLAGS" for dir in "" -I/usr/include/tcl$tclver /usr/include/tcl$tclvr -I/usr/local/include -I/usr/local/include/tcl$tclver -I/usr/local/include/tcl$tclvr do header_fail=0 if test -n "$dir" then AC_MSG_NOTICE(retrying with $dir) fi CPPFLAGS="$orig_CPPFLAGS $dir" AC_CHECK_HEADERS(tcl.h, ,[header_fail=1]) if test "$header_fail" -eq 0 then break fi unset `echo ac_cv_header_tcl.h | $as_tr_sh` CPPFLAGS="$orig_CPPFLAGS" done if test $header_fail -eq 1 then AC_ERROR(Can't find tcl header file) fi dnl Check for SSL header file. if test "$enable_ssl" != no then orig_CPPFLAGS="$CPPFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/local/ssl /usr/lib/ssl /usr/pkg/sssl /usr/ssl /var/ssl /opt/ssl do header_fail=0 if test -n "$dir" -a ! -d "$dir/include" then header_fail=1 continue fi if test -n "$any" then AC_MSG_NOTICE(retrying with -I$dir/include) fi if test -n "$dir" then CPPFLAGS="$orig_CPPFLAGS -I$dir/include" fi AC_CHECK_HEADERS(openssl/ssl.h, ,[header_fail=1]) if test "$header_fail" -eq 0 then break fi unset `echo ac_cv_header_openssl/ssl_h | $as_tr_sh` CPPFLAGS="$orig_CPPFLAGS" any=1 done if test $header_fail -eq 1 then AC_MSG_WARN(Disabling OpenSSL) enable_ssl="no" unset HAVE_LIBSSL fi fi dnl Checks for typedefs, structures, and compiler characteristics. dnl AC_C_CONST dnl AC_TYPE_PID_T dnl AC_TYPE_SIZE_T dnl AC_HEADER_TIME dnl Checks for orindary library functions. dnl AC_PROG_GCC_TRADITIONAL dnl AC_FUNC_MEMCMP dnl AC_TYPE_SIGNAL dnl AC_FUNC_VPRINTF dnl AC_CHECK_FUNCS(gettimeofday putenv select socket strerror strstr strtol strtoul) AC_CHECK_FUNCS(vasprintf) AC_FUNC_FSEEKO dnl Check for libraries. dnl Note that the order here is important. The last libraries should appear dnl first, so that objects in them can be used by subsequent libraries. LDFLAGS="$LDFLAGS -lm" AC_SEARCH_LIBS(forkpty, util) AC_CHECK_FUNCS(forkpty) AC_SEARCH_LIBS(gethostbyname, nsl) AC_SEARCH_LIBS(socket, socket) ORIG_LDFLAGS="$LDFLAGS" for dir in "" -L/usr/local/lib do LDFLAGS="$ORIG_LDFLAGS $dir" tcl_failed=0 if test -n "$dir" then AC_MSG_NOTICE(retrying with $dir) fi AC_CHECK_LIB(tcl$tclver, Tcl_Init, , [tcl_failed=1]) if test "$tcl_failed" -eq 0 then break fi unset `echo ac_cv_lib_tcl${tclver}___Tcl_Init | $as_tr_sh` tcl_failed=0 AC_CHECK_LIB(tcl$tclvr, Tcl_Init, , [tcl_failed=1]) if test "$tcl_failed" = 0 then break fi unset `echo ac_cv_lib_tcl${tclvr}___Tcl_Init | $as_tr_sh` LDFLAGS="$ORIG_LDFLAGS" done if test "$tcl_failed" = 1 then AC_ERROR(Can't find TCL library) fi dnl Check for SSL libraries. if test "$enable_ssl" != no then orig_LDFLAGS="$LDFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/pkg /usr /var /opt do lib_fail=0 if test -n "$dir" -a ! -d "$dir/ssl/lib" then lib_fail=1 continue fi if test -n "$any" then AC_MSG_NOTICE(retrying with -L$dir/ssl/lib) fi if test -n "$dir" then LDFLAGS="$orig_LDFLAGS -L$dir/ssl/lib" fi AC_CHECK_LIB(crypto, CRYPTO_malloc, , [lib_fail=1]) if test "$lib_fail" -eq 0 then AC_CHECK_LIB(ssl, SSL_new, , [lib_fail=1]) fi if test "$lib_fail" -eq 0 then break fi unset `echo ac_cv_lib_crypto_CRYPTO_malloc | $as_tr_sh` unset `echo ac_cv_lib_ssl_SSL_new | $as_tr_sh` LDFLAGS="$orig_LDFLAGS" any=1 done if test $lib_fail -eq 1 then AC_MSG_WARN(Disabling OpenSSL) enable_ssl="no" fi fi dnl Check for ISO 10646 (wchar_t is Unicode) and --with-iconv AC_CHECK_DECLS(__STDC_ISO_10646__, unset unkw, unkw=1) AC_ARG_WITH(iconv,[ --with-iconv ignore __STDC_ISO_10646__ and use iconv() instead]) case "$with_iconv" in no|"") ;; yes|*) AC_DEFINE(USE_ICONV,1) unkw=1 ;; esac AC_SUBST(USE_ICONV) AC_SEARCH_LIBS(libiconv, iconv, , AC_SEARCH_LIBS(iconv, iconv, , if test "$unkw"; then AC_MSG_ERROR("No iconv library function"); fi)) dnl Set up the configuration directory. LIBX3270DIR='${sysconfdir}/x3270' AC_SUBST(LIBX3270DIR) dnl Check for unwanted parts. AC_ARG_ENABLE(ansi,[ --disable-ansi leave out NVT (ANSI) support]) case "$enable_ansi" in ""|yes) AC_DEFINE(X3270_ANSI,1) ;; esac AC_ARG_ENABLE(apl,[ --disable-apl leave out APL character support]) case "$enable_apl" in ""|yes) AC_DEFINE(X3270_APL,1) ;; esac AC_ARG_ENABLE(dbcs,[ --disable-dbcs leave out DBCS support]) case "$enable_dbcs" in no) ;; *) AC_DEFINE(X3270_DBCS,1) ;; esac AC_ARG_ENABLE(ft,[ --disable-ft leave out file transfer support]) case "$enable_ft" in ""|yes) AC_DEFINE(X3270_FT,1) ;; esac AC_ARG_ENABLE(local_process,[ --disable-local-process leave out local process support]) case "$enable_local_process" in ""|yes) AC_DEFINE(X3270_LOCAL_PROCESS,1) ;; esac AC_ARG_ENABLE(menus,[ --disable-menus leave out menu support]) case "$enable_menus" in ""|yes) AC_DEFINE(X3270_MENUS,1) ;; esac AC_ARG_ENABLE(ssl,[ --disable-ssl leave out OpenSSL support]) AC_ARG_ENABLE(tn3270e,[ --disable-tn3270e leave out TN3270E support]) case "$enable_tn3270e" in ""|yes) AC_DEFINE(X3270_TN3270E,1) ;; esac AC_ARG_ENABLE(trace,[ --disable-trace leave out tracing support]) case "$enable_trace" in ""|yes) AC_DEFINE(X3270_TRACE,1) ;; esac dnl Generate the Makefile. AC_OUTPUT(Makefile) ibm-3270-3.3.10ga4/tcl3270/keypadc.h0000644000175000017500000000517611254565704016067 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * keypadc.h * Global declarations for keypad.c. */ extern Boolean keypad_changed; #if defined(X3270_KEYPAD) /*[*/ extern enum kp_placement { kp_right, kp_left, kp_bottom, kp_integral, kp_inside_right } kp_placement; extern void keypad_first_up(void); extern Widget keypad_init(Widget container, Dimension voffset, Dimension screen_width, Boolean floating, Boolean vert); extern void keypad_move(void); extern void keypad_placement_init(void); extern void keypad_popup_init(void); extern Dimension keypad_qheight(void); extern void keypad_set_keymap(void); extern void keypad_set_temp_keymap(XtTranslations trans); extern void keypad_shift(void); extern Dimension min_keypad_width(void); extern void keypad_popdown(Boolean *was_up); extern void keypad_popup(void); #else /*][*/ #define keypad_qheight() 0 #define min_keypad_width() 0 #define keypad_first_up() #define keypad_init(a, b, c, d, e) 0 #define keypad_move() #define keypad_placement_init() #define keypad_popup_init() #define keypad_set_keymap() #define keypad_set_temp_keymap(n) #define keypad_shift() #define keypad_popdown(w) #define keypad_popup() #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/ftc.h0000644000175000017500000000605311254565704015216 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * ftc.h * Global declarations for ft.c. */ #if defined(X3270_FT) /*[*/ extern Boolean ascii_flag; extern Boolean cr_flag; extern unsigned long ft_length; extern FILE *ft_local_file; extern char *ft_local_filename; enum ft_state { FT_NONE, /* No transfer in progress */ FT_AWAIT_ACK, /* IND$FILE sent, awaiting acknowledgement message */ FT_RUNNING, /* Ack received, data flowing */ FT_ABORT_WAIT, /* Awaiting chance to send an abort */ FT_ABORT_SENT /* Abort sent; awaiting response */ }; extern Boolean ft_last_cr; extern enum ft_state ft_state; extern Boolean remap_flag; extern unsigned char i_ft2asc[], i_asc2ft[]; #if defined(X3270_DBCS) /*[*/ enum ftd { FT_DBCS_NONE, FT_DBCS_SO, FT_DBCS_LEFT }; extern enum ftd ft_dbcs_state; extern unsigned char ft_dbcs_byte1; extern Boolean ft_last_dbcs; #endif /*]*/ extern void ft_aborting(void); extern void ft_complete(const char *errmsg); extern void ft_init(void); extern void ft_running(Boolean is_cut); extern void ft_update_length(void); extern void PA_dialog_focus_action(Widget w, XEvent *event, String *parms, Cardinal *num_parms); extern void PA_dialog_next_action(Widget w, XEvent *event, String *parms, Cardinal *num_parms); extern void popup_ft(Widget w, XtPointer call_parms, XtPointer call_data); extern void Transfer_action(Widget w, XEvent *event, String *parms, Cardinal *num_parms); #if !defined(X3270_MENUS) /*[*/ extern void ft_init(void); #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/unicode_dbcsc.h0000644000175000017500000000345011254565704017224 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #if defined(X3270_DBCS) /*[*/ extern ucs4_t ebcdic_dbcs_to_unicode(ebc_t e, unsigned flags); extern ebc_t unicode_to_ebcdic_dbcs(ucs4_t u); extern int set_uni_dbcs(const char *csname, const char **codepage, const char **display_charsets); extern void charset_list_dbcs(void); #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/trace_ds.c0000644000175000017500000006714311254565704016230 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * trace_ds.c * 3270 data stream tracing. * */ #include "globals.h" #if defined(X3270_TRACE) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include #include #include "3270ds.h" #include "appres.h" #include "objects.h" #include "resources.h" #include "ctlr.h" #include "ansic.h" #include "charsetc.h" #include "childc.h" #include "ctlrc.h" #include "menubarc.h" #include "popupsc.h" #include "printc.h" #include "savec.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utf8c.h" #include "utilc.h" #include "w3miscc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ /* Maximum size of a tracefile header. */ #define MAX_HEADER_SIZE (10*1024) /* Minimum size of a trace file. */ #define MIN_TRACEFILE_SIZE (64*1024) #define MIN_TRACEFILE_SIZE_NAME "64K" /* System calls which may not be there. */ #if !defined(HAVE_FSEEKO) /*[*/ #define fseeko(s, o, w) fseek(s, (long)o, w) #define ftello(s) (off_t)ftell(s) #endif /*]*/ /* Statics */ static int dscnt = 0; #if !defined(_WIN32) /*[*/ static int tracewindow_pid = -1; #else /*][*/ static HANDLE tracewindow_handle = NULL; #endif /*]*/ static FILE *tracef = NULL; static FILE *tracef_pipe = NULL; static char *tracef_bufptr = CN; static off_t tracef_size = 0; static off_t tracef_max = 0; static char *tracef_midpoint_header = CN; static off_t tracef_midpoint = 0; static void vwtrace(const char *fmt, va_list args); static void wtrace(const char *fmt, ...); static char *create_tracefile_header(const char *mode); static void stop_tracing(void); /* Globals */ struct timeval ds_ts; Boolean trace_skipping = False; char *tracefile_name = NULL; /* display a (row,col) */ const char * rcba(int baddr) { static char buf[16]; (void) sprintf(buf, "(%d,%d)", baddr/COLS + 1, baddr%COLS + 1); return buf; } /* Data Stream trace print, handles line wraps */ static char *tdsbuf = CN; #define TDS_LEN 75 /* * This function is careful to do line breaks based on wchar_t's, not * bytes, so multi-byte characters are traced properly. * However, it doesn't know that DBCS characters are two columns wide, so it * will get those wrong and break too late. To get that right, it needs some * sort of function to tell it that a wchar_t is double-width, which we lack at * the moment. * * If wchar_t's are Unicode, it could perhaps use some sort of heuristic based * on which plane the character is in. */ static void trace_ds_s(char *s, Boolean can_break) { int len = strlen(s); int len0 = len + 1; int wlen; Boolean nl = False; wchar_t *w_buf; /* wchar_t translation of s */ wchar_t *w_cur; /* current wchar_t pointer */ wchar_t *w_chunk; /* transient wchar_t buffer */ char *mb_chunk; /* transient multibyte buffer */ if (!toggled(DS_TRACE) || tracef == NULL || !len) return; /* Allocate buffers for chunks of output data. */ mb_chunk = Malloc(len0); w_chunk = (wchar_t *)Malloc(len0 * sizeof(wchar_t)); /* Convert the input string to wchar_t's. */ w_buf = (wchar_t *)Malloc(len0 * sizeof(wchar_t)); wlen = mbstowcs(w_buf, s, len); if (wlen < 0) Error("trace_ds_s: mbstowcs failed"); w_cur = w_buf; /* Check for a trailing newline. */ if (len && s[len-1] == '\n') { wlen--; nl = True; } if (!can_break && dscnt + wlen >= 75) { wtrace("...\n... "); dscnt = 0; } while (dscnt + wlen >= 75) { int plen = 75-dscnt; int mblen; if (plen) { memcpy(w_chunk, w_cur, plen * sizeof(wchar_t)); w_chunk[plen] = 0; mblen = wcstombs(mb_chunk, w_chunk, len0); if (mblen <= 0) Error("trace_ds_s: wcstombs 1 failed"); } else { mb_chunk[0] = '\0'; mblen = 0; } wtrace("%.*s ...\n... ", mblen, mb_chunk); dscnt = 4; w_cur += plen; wlen -= plen; } if (wlen) { int mblen; memcpy(w_chunk, w_cur, wlen * sizeof(wchar_t)); w_chunk[wlen] = 0; mblen = wcstombs(mb_chunk, w_chunk, len0); if (mblen <= 0) Error("trace_ds_s: wcstombs 2 failed"); wtrace("%.*s", mblen, mb_chunk); dscnt += wlen; } if (nl) { wtrace("\n"); dscnt = 0; } Free(mb_chunk); Free(w_buf); Free(w_chunk); } void trace_ds(const char *fmt, ...) { va_list args; if (!toggled(DS_TRACE) || tracef == NULL) return; va_start(args, fmt); /* allocate buffer */ if (tdsbuf == CN) tdsbuf = Malloc(4096); /* print out remainder of message */ (void) vsprintf(tdsbuf, fmt, args); trace_ds_s(tdsbuf, True); va_end(args); } void trace_ds_nb(const char *fmt, ...) { va_list args; if (!toggled(DS_TRACE) || tracef == NULL) return; va_start(args, fmt); /* allocate buffer */ if (tdsbuf == CN) tdsbuf = Malloc(4096); /* print out remainder of message */ (void) vsprintf(tdsbuf, fmt, args); trace_ds_s(tdsbuf, False); va_end(args); } /* Conditional event trace. */ void trace_event(const char *fmt, ...) { va_list args; if (!toggled(EVENT_TRACE) || tracef == NULL) return; /* print out message */ va_start(args, fmt); vwtrace(fmt, args); va_end(args); } /* Conditional data stream trace, without line splitting. */ void trace_dsn(const char *fmt, ...) { va_list args; if (!toggled(DS_TRACE) || tracef == NULL) return; /* print out message */ va_start(args, fmt); vwtrace(fmt, args); va_end(args); } /* * Write to the trace file, varargs style. * This is the only function that actually does output to the trace file -- * all others are wrappers around this function. */ static void vwtrace(const char *fmt, va_list args) { if (tracef_bufptr != CN) { tracef_bufptr += vsprintf(tracef_bufptr, fmt, args); } else if (tracef != NULL) { int n2w, nw; char buf[16384]; buf[0] = 0; (void) vsnprintf(buf, sizeof(buf), fmt, args); buf[sizeof(buf) - 1] = '\0'; n2w = strlen(buf); nw = fwrite(buf, n2w, 1, tracef); if (nw == 1) { tracef_size += nw; fflush(tracef); } else { if (errno != EPIPE #if defined(EILSEQ) /*[*/ && errno != EILSEQ #endif /*]*/ ) popup_an_errno(errno, "Write to trace file failed"); #if defined(EILSEQ) /*[*/ if (errno != EILSEQ) #endif /*]*/ stop_tracing(); } if (tracef_pipe != NULL) { nw = fwrite(buf, n2w, 1, tracef_pipe); if (nw != 1) { (void) fclose(tracef_pipe); tracef_pipe = NULL; } else { fflush(tracef_pipe); } } } } /* Write to the trace file. */ static void wtrace(const char *fmt, ...) { if (tracef != NULL) { va_list args; va_start(args, fmt); vwtrace(fmt, args); va_end(args); } } static void stop_tracing(void) { if (tracef != NULL && tracef != stdout) (void) fclose(tracef); tracef = NULL; if (tracef_pipe != NULL) { (void) fclose(tracef_pipe); tracef_pipe = NULL; } if (toggled(DS_TRACE)) { toggle_toggle(&appres.toggle[DS_TRACE]); menubar_retoggle(&appres.toggle[DS_TRACE]); } if (toggled(EVENT_TRACE)) { toggle_toggle(&appres.toggle[EVENT_TRACE]); menubar_retoggle(&appres.toggle[EVENT_TRACE]); } } /* Check for a trace file rollover event. */ void trace_rollover_check(void) { if (tracef == NULL || tracef_max == 0) return; /* See if we've reached the midpoint. */ if (!tracef_midpoint) { if (tracef_size >= tracef_max / 2) { tracef_midpoint = ftello(tracef); #if defined(ROLLOVER_DEBUG) /*[*/ printf("midpoint is %lld\n", tracef_midpoint); #endif /*]*/ tracef_midpoint_header = create_tracefile_header("rolled over"); } return; } /* See if we've reached a rollover point. */ if (tracef_size >= tracef_max) { char buf[8*1024]; int nr; off_t rpos = tracef_midpoint, wpos = 0; if (!tracef_midpoint) Error("Tracefile rollover logic error"); #if defined(ROLLOVER_DEBUG) /*[*/ printf("rolling over at %lld\n", tracef_size); #endif /*]*/ /* * Overwrite the file with the midpoint header, and the data * which follows the midpoint. */ if (fseeko(tracef, 0, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(0) failed"); stop_tracing(); return; } wtrace("%s", tracef_midpoint_header); wpos = ftello(tracef); if (wpos < 0) { popup_an_errno(errno, "trace file ftello() failed"); stop_tracing(); return; } if (fseeko(tracef, rpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld) failed", (long)rpos); stop_tracing(); return; } #if defined(ROLLOVER_DEBUG) /*[*/ printf("rpos = %lld, wpos = %lld\n", rpos, wpos); #endif /*]*/ while ((nr = fread(buf, 1, sizeof(buf), tracef)) > 0) { rpos = ftello(tracef); if (fseeko(tracef, wpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld) " "failed", (long)wpos); stop_tracing(); return; } if (fwrite(buf, nr, 1, tracef) < 1) break; wpos = ftello(tracef); if (wpos < 0) { popup_an_errno(errno, "trace file ftello() " "failed"); stop_tracing(); return; } if (fseeko(tracef, rpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld)" "failed", (long)rpos); stop_tracing(); return; } } if (ferror(tracef)) { popup_an_errno(errno, "trace file rollover copy " "failed"); stop_tracing(); return; } #if defined(ROLLOVER_DEBUG) /*[*/ printf("final wpos = %lld\n", wpos); #endif /*]*/ #if !defined(_MSC_VER) /*[*/ if (ftruncate(fileno(tracef), wpos) < 0) { popup_an_errno(errno, "trace file ftruncate(%ld) " "failed", (long)wpos); stop_tracing(); return; } #endif /*]*/ if (fseeko(tracef, wpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld) failed", (long)wpos); stop_tracing(); return; } #if defined(_MSC_VER) /*[*/ SetEndOfFile((HANDLE)_get_osfhandle(fileno(tracef))); #endif /*]*/ tracef_size = wpos; tracef_midpoint = wpos; Replace(tracef_midpoint_header, create_tracefile_header("rolled over")); } } #if defined(X3270_DISPLAY) /*[*/ static Widget trace_shell = (Widget)NULL; #endif /*]*/ static int trace_reason; /* Create a trace file header. */ static char * create_tracefile_header(const char *mode) { char *buf; time_t clk; /* Create a buffer and redirect output. */ buf = Malloc(MAX_HEADER_SIZE); tracef_bufptr = buf; /* Display current status */ clk = time((time_t *)0); wtrace("Trace %s %s", mode, ctime(&clk)); wtrace(" Version: %s\n", build); wtrace(" %s\n", build_options()); save_yourself(); wtrace(" Command: %s\n", command_string); wtrace(" Model %s, %d rows x %d cols", model_name, maxROWS, maxCOLS); #if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) /*[*/ wtrace(", %s display", appres.mono ? "monochrome" : "color"); #endif /*]*/ if (appres.extended) wtrace(", extended data stream"); wtrace(", %s emulation", appres.m3279 ? "color" : "monochrome"); wtrace(", %s charset", get_charset_name()); if (appres.apl_mode) wtrace(", APL mode"); wtrace("\n"); #if !defined(_WIN32) /*[*/ wtrace(" Locale codeset: %s\n", locale_codeset); #else /*][*/ wtrace(" ANSI codepage: %d\n", GetACP()); # if defined(WS3270) /*[*/ wtrace(" Local codepage: %d\n", appres.local_cp); # endif /*]*/ #endif /*]*/ wtrace(" Host codepage: %d", (int)(cgcsgid & 0xffff)); #if defined(X3270_DBCS) /*[*/ if (dbcs) wtrace("+%d", (int)(cgcsgid_dbcs & 0xffff)); #endif /*]*/ wtrace("\n"); if (CONNECTED) wtrace(" Connected to %s, port %u\n", current_host, current_port); /* Snap the current TELNET options. */ if (net_snap_options()) { wtrace(" TELNET state:\n"); trace_netdata('<', obuf, obptr - obuf); } /* Dump the screen contents and modes into the trace file. */ if (CONNECTED) { /* * Note that if the screen is not formatted, we do not * attempt to save what's on it. However, if we're in * 3270 SSCP-LU or NVT mode, we'll do a dummy, empty * write to ensure that the display is in the right * mode. */ if (formatted) { wtrace(" Screen contents (3270):\n"); obptr = obuf; #if defined(X3270_TN3270E) /*[*/ (void) net_add_dummy_tn3270e(); #endif /*]*/ ctlr_snap_buffer(); space3270out(2); net_add_eor(obuf, obptr - obuf); obptr += 2; trace_netdata('<', obuf, obptr - obuf); obptr = obuf; #if defined(X3270_TN3270E) /*[*/ (void) net_add_dummy_tn3270e(); #endif /*]*/ if (ctlr_snap_modes()) { wtrace(" 3270 modes:\n"); space3270out(2); net_add_eor(obuf, obptr - obuf); obptr += 2; trace_netdata('<', obuf, obptr - obuf); } } #if defined(X3270_TN3270E) /*[*/ else if (IN_E) { obptr = obuf; (void) net_add_dummy_tn3270e(); wtrace(" Screen contents (%s):\n", IN_SSCP? "SSCP-LU": "TN3270E-NVT"); if (IN_SSCP) ctlr_snap_buffer_sscp_lu(); else if (IN_ANSI) ansi_snap(); space3270out(2); net_add_eor(obuf, obptr - obuf); obptr += 2; trace_netdata('<', obuf, obptr - obuf); if (IN_ANSI) { wtrace(" NVT modes:\n"); obptr = obuf; ansi_snap_modes(); trace_netdata('<', obuf, obptr - obuf); } } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ else if (IN_ANSI) { obptr = obuf; wtrace(" Screen contents (NVT):\n"); ansi_snap(); trace_netdata('<', obuf, obptr - obuf); wtrace(" NVT modes:\n"); obptr = obuf; ansi_snap_modes(); trace_netdata('<', obuf, obptr - obuf); } #endif /*]*/ } wtrace(" Data stream:\n"); /* Return the buffer. */ tracef_bufptr = CN; return buf; } /* Calculate the tracefile maximum size. */ static void get_tracef_max(void) { static Boolean calculated = False; char *ptr; Boolean bad = False; if (calculated) return; calculated = True; if (appres.trace_file_size == CN || !strcmp(appres.trace_file_size, "0") || !strncasecmp(appres.trace_file_size, "none", strlen(appres.trace_file_size))) { tracef_max = 0; return; } tracef_max = strtoul(appres.trace_file_size, &ptr, 0); if (tracef_max == 0 || ptr == appres.trace_file_size || *(ptr + 1)) { bad = True; } else switch (*ptr) { case 'k': case 'K': tracef_max *= 1024; break; case 'm': case 'M': tracef_max *= 1024 * 1024; break; case '\0': break; default: bad = True; break; } if (bad) { tracef_max = MIN_TRACEFILE_SIZE; #if defined(X3270_DISPLAY) /*[*/ popup_an_info("Invalid %s '%s', assuming " MIN_TRACEFILE_SIZE_NAME, ResTraceFileSize, appres.trace_file_size); #endif /*]*/ } else if (tracef_max < MIN_TRACEFILE_SIZE) { tracef_max = MIN_TRACEFILE_SIZE; } } /* Parse the name '/dev/fd', so we can simulate it. */ static int get_devfd(const char *pathname) { unsigned long fd; char *ptr; if (strncmp(pathname, "/dev/fd/", 8)) return -1; fd = strtoul(pathname + 8, &ptr, 10); if (ptr == pathname + 8 || *ptr != '\0' || fd < 0) return -1; return fd; } /* Callback for "OK" button on trace popup */ static void tracefile_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { char *tfn = CN; int devfd = -1; #if defined(X3270_DISPLAY) /*[*/ int pipefd[2]; Boolean just_piped = False; #endif /*]*/ char *buf; #if defined(X3270_DISPLAY) /*[*/ if (w) tfn = XawDialogGetValueString((Widget)client_data); else #endif /*]*/ tfn = (char *)client_data; tfn = do_subst(tfn, True, True); if (strchr(tfn, '\'') || ((int)strlen(tfn) > 0 && tfn[strlen(tfn)-1] == '\\')) { popup_an_error("Illegal file name: %s", tfn); Free(tfn); return; } tracef_max = 0; tracef_midpoint = 0; Replace(tracef_midpoint_header, CN); if (!strcmp(tfn, "stdout")) { tracef = stdout; } else { #if defined(X3270_DISPLAY) /*[*/ FILE *pipefile = NULL; if (!strcmp(tfn, "none") || !tfn[0]) { just_piped = True; if (!appres.trace_monitor) { popup_an_error("Must specify a trace file " "name"); free(tfn); return; } } if (appres.trace_monitor) { if (pipe(pipefd) < 0) { popup_an_errno(errno, "pipe() failed"); Free(tfn); return; } pipefile = fdopen(pipefd[1], "w"); if (pipefile == NULL) { popup_an_errno(errno, "fdopen() failed"); (void) close(pipefd[0]); (void) close(pipefd[1]); Free(tfn); return; } (void) SETLINEBUF(pipefile); (void) fcntl(pipefd[1], F_SETFD, 1); } if (just_piped) { tracef = pipefile; } else #endif /*]*/ { #if defined(X3270_DISPLAY) /*[*/ tracef_pipe = pipefile; #endif /*]*/ /* Get the trace file maximum. */ get_tracef_max(); /* If there's a limit, the file can't exist. */ if (tracef_max && !access(tfn, R_OK)) { popup_an_error("Trace file '%s' already exists", tfn); #if defined(X3270_DISPLAY) /*[*/ fclose(tracef_pipe); (void) close(pipefd[0]); (void) close(pipefd[1]); #endif /*]*/ Free(tfn); return; } /* Open and configure the file. */ if ((devfd = get_devfd(tfn)) >= 0) tracef = fdopen(dup(devfd), "a"); else tracef = fopen(tfn, tracef_max? "w+": "a"); if (tracef == (FILE *)NULL) { popup_an_errno(errno, "%s", tfn); #if defined(X3270_DISPLAY) /*[*/ fclose(tracef_pipe); (void) close(pipefd[0]); (void) close(pipefd[1]); #endif /*]*/ Free(tfn); return; } Replace(tracefile_name, NewString(tfn)); (void) SETLINEBUF(tracef); #if !defined(_WIN32) /*[*/ (void) fcntl(fileno(tracef), F_SETFD, 1); #endif /*]*/ } } #if defined(X3270_DISPLAY) /*[*/ /* Start the monitor window */ if (tracef != stdout && appres.trace_monitor) { switch (tracewindow_pid = fork_child()) { case 0: /* child process */ { char cmd[64]; (void) sprintf(cmd, "cat <&%d", pipefd[0]); (void) execlp("xterm", "xterm", "-title", just_piped? "trace": tfn, "-sb", "-e", "/bin/sh", "-c", cmd, CN); } (void) perror("exec(xterm) failed"); _exit(1); default: /* parent */ (void) close(pipefd[0]); ++children; break; case -1: /* error */ popup_an_errno(errno, "fork() failed"); break; } } #endif /*]*/ #if defined(_WIN32) && defined(C3270) /*[*/ /* Start the monitor window. */ if (tracef != stdout && appres.trace_monitor && is_installed) { STARTUPINFO startupinfo; PROCESS_INFORMATION process_information; char *path; char *args; (void) memset(&startupinfo, '\0', sizeof(STARTUPINFO)); startupinfo.cb = sizeof(STARTUPINFO); startupinfo.lpTitle = tfn; (void) memset(&process_information, '\0', sizeof(PROCESS_INFORMATION)); path = xs_buffer("%scatf.exe", instdir); args = xs_buffer("\"%scatf.exe\" \"%s\"", instdir, tfn); if (CreateProcess( path, args, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &startupinfo, &process_information) == 0) { popup_an_error("CreateProcess(%s) failed: %s", path, win32_strerror(GetLastError())); Free(path); Free(args); } else { Free(path); Free(args); tracewindow_handle = process_information.hProcess; CloseHandle(process_information.hThread); } } #endif /*]*/ Free(tfn); /* We're really tracing, turn the flag on. */ appres.toggle[trace_reason].value = True; appres.toggle[trace_reason].changed = True; menubar_retoggle(&appres.toggle[trace_reason]); /* Display current status. */ buf = create_tracefile_header("started"); wtrace("%s", buf); Free(buf); #if defined(X3270_DISPLAY) /*[*/ if (w) XtPopdown(trace_shell); #endif /*]*/ } #if defined(X3270_DISPLAY) /*[*/ /* Callback for "No File" button on trace popup */ static void no_tracefile_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { tracefile_callback((Widget)NULL, "", PN); XtPopdown(trace_shell); } #endif /*]*/ /* Open the trace file. */ static void tracefile_on(int reason, enum toggle_type tt) { char *tracefile_buf = NULL; char *tracefile; if (tracef != (FILE *)NULL) return; trace_reason = reason; if (appres.secure && tt != TT_INITIAL) { tracefile_callback((Widget)NULL, "none", PN); return; } if (appres.trace_file) tracefile = appres.trace_file; else { #if defined(_WIN32) /*[*/ tracefile_buf = xs_buffer("%s%sx3trc.%u.txt", (appres.trace_dir != CN)? appres.trace_dir: myappdata, (appres.trace_dir != CN)? "\\": "", getpid()); #else /*][*/ tracefile_buf = xs_buffer("%s/x3trc.%u", appres.trace_dir, getpid()); #endif /*]*/ tracefile = tracefile_buf; } #if defined(X3270_DISPLAY) /*[*/ if (tt == TT_INITIAL || tt == TT_ACTION) #endif /*]*/ { tracefile_callback((Widget)NULL, tracefile, PN); if (tracefile_buf != NULL) Free(tracefile_buf); return; } #if defined(X3270_DISPLAY) /*[*/ if (trace_shell == NULL) { trace_shell = create_form_popup("trace", tracefile_callback, appres.trace_monitor? no_tracefile_callback: NULL, FORM_NO_WHITE); XtVaSetValues(XtNameToWidget(trace_shell, ObjDialog), XtNvalue, tracefile, NULL); } /* Turn the toggle _off_ until the popup succeeds. */ appres.toggle[reason].value = False; appres.toggle[reason].changed = True; popup_popup(trace_shell, XtGrabExclusive); #endif /*]*/ if (tracefile_buf != NULL) Free(tracefile_buf); } /* Close the trace file. */ static void tracefile_off(void) { time_t clk; clk = time((time_t *)0); wtrace("Trace stopped %s", ctime(&clk)); #if !defined(_WIN32) /*[*/ if (tracewindow_pid != -1) (void) kill(tracewindow_pid, SIGKILL); tracewindow_pid = -1; #else /*][*/ if (tracewindow_handle != NULL) { TerminateProcess(tracewindow_handle, 0); CloseHandle(tracewindow_handle); tracewindow_handle = NULL; } #endif /*]*/ stop_tracing(); } void toggle_dsTrace(struct toggle *t _is_unused, enum toggle_type tt) { /* If turning on trace and no trace file, open one. */ if (toggled(DS_TRACE) && tracef == NULL) tracefile_on(DS_TRACE, tt); /* If turning off trace and not still tracing events, close the trace file. */ else if (!toggled(DS_TRACE) && !toggled(EVENT_TRACE)) tracefile_off(); if (toggled(DS_TRACE)) (void) gettimeofday(&ds_ts, (struct timezone *)NULL); } void toggle_eventTrace(struct toggle *t _is_unused, enum toggle_type tt) { /* If turning on event debug, and no trace file, open one. */ if (toggled(EVENT_TRACE) && tracef == NULL) tracefile_on(EVENT_TRACE, tt); /* If turning off event debug, and not tracing the data stream, close the trace file. */ else if (!toggled(EVENT_TRACE) && !toggled(DS_TRACE)) tracefile_off(); } /* Screen trace file support. */ #if defined(X3270_DISPLAY) /*[*/ static Widget screentrace_shell = (Widget)NULL; #endif /*]*/ static FILE *screentracef = (FILE *)0; /* * Screen trace function, called when the host clears the screen. */ static void do_screentrace(void) { register int i; if (fprint_screen(screentracef, P_TEXT, 0, NULL)) { for (i = 0; i < COLS; i++) (void) fputc('=', screentracef); (void) fputc('\n', screentracef); } } void trace_screen(void) { trace_skipping = False; if (!toggled(SCREEN_TRACE) || !screentracef) return; do_screentrace(); } /* Called from ANSI emulation code to log a single character. */ void trace_char(char c) { if (!toggled(SCREEN_TRACE) || !screentracef) return; (void) fputc(c, screentracef); } /* * Called when disconnecting in ANSI mode, to finish off the trace file * and keep the next screen clear from re-recording the screen image. * (In a gross violation of data hiding and modularity, trace_skipping is * manipulated directly in ctlr_clear()). */ void trace_ansi_disc(void) { int i; (void) fputc('\n', screentracef); for (i = 0; i < COLS; i++) (void) fputc('=', screentracef); (void) fputc('\n', screentracef); trace_skipping = True; } /* * Screen tracing callback. * Returns True for success, False for failure. */ static Boolean screentrace_cb(char *tfn) { tfn = do_subst(tfn, True, True); screentracef = fopen(tfn, "a"); if (screentracef == (FILE *)NULL) { popup_an_errno(errno, "%s", tfn); Free(tfn); return False; } Free(tfn); (void) SETLINEBUF(screentracef); #if !defined(_WIN32) /*[*/ (void) fcntl(fileno(screentracef), F_SETFD, 1); #endif /*]*/ /* We're really tracing, turn the flag on. */ appres.toggle[SCREEN_TRACE].value = True; appres.toggle[SCREEN_TRACE].changed = True; menubar_retoggle(&appres.toggle[SCREEN_TRACE]); return True; } #if defined(X3270_DISPLAY) /*[*/ /* Callback for "OK" button on screentrace popup */ static void screentrace_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { if (screentrace_cb(XawDialogGetValueString((Widget)client_data))) XtPopdown(screentrace_shell); } /* Callback for second "OK" button on screentrace popup */ static void onescreen_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { char *tfn; if (w) tfn = XawDialogGetValueString((Widget)client_data); else tfn = (char *)client_data; tfn = do_subst(tfn, True, True); screentracef = fopen(tfn, "a"); if (screentracef == (FILE *)NULL) { popup_an_errno(errno, "%s", tfn); XtFree(tfn); return; } (void) fcntl(fileno(screentracef), F_SETFD, 1); XtFree(tfn); /* Save the current image, once. */ do_screentrace(); /* Close the file, we're done. */ (void) fclose(screentracef); screentracef = (FILE *)NULL; if (w) XtPopdown(screentrace_shell); } #endif /*]*/ void toggle_screenTrace(struct toggle *t _is_unused, enum toggle_type tt) { char *tracefile_buf = NULL; char *tracefile; if (toggled(SCREEN_TRACE)) { if (appres.screentrace_file) tracefile = appres.screentrace_file; else { #if defined(_WIN32) /*[*/ tracefile_buf = xs_buffer("%s%sx3scr.%u.txt", (appres.trace_dir != CN)? appres.trace_dir: myappdata, (appres.trace_dir != CN)? "\\": "", getpid()); #else /*][*/ tracefile_buf = xs_buffer("%s/x3scr.%u", appres.trace_dir, getpid()); #endif /*]*/ tracefile = tracefile_buf; } if (tt == TT_INITIAL || tt == TT_ACTION) { (void) screentrace_cb(NewString(tracefile)); if (tracefile_buf != NULL) Free(tracefile_buf); return; } #if defined(X3270_DISPLAY) /*[*/ if (screentrace_shell == NULL) { screentrace_shell = create_form_popup("screentrace", screentrace_callback, onescreen_callback, FORM_NO_WHITE); XtVaSetValues(XtNameToWidget(screentrace_shell, ObjDialog), XtNvalue, tracefile, NULL); } appres.toggle[SCREEN_TRACE].value = False; appres.toggle[SCREEN_TRACE].changed = True; popup_popup(screentrace_shell, XtGrabExclusive); #endif /*]*/ } else { if (ctlr_any_data() && !trace_skipping) do_screentrace(); (void) fclose(screentracef); } if (tracefile_buf != NULL) Free(tracefile_buf); } #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/Examples/0000755000175000017500000000000011261530021016021 5ustar bastianbastianibm-3270-3.3.10ga4/tcl3270/Examples/cms_cmd.tcl32700000755000175000017500000001074511254565710020477 0ustar bastianbastian#!tcl3270 # Copyright (c) 2000-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Pluck the username, password and command from the command line. if {$argc != 4} { puts stderr "Usage: $argv0 -- hostname username password command" exit 1 } set hostname [lindex $argv 0] set username [lindex $argv 1] set password [lindex $argv 2] set command [lindex $argv 3] # Procedure to wait for a READ prompt from CMS or CP. proc waitread {} { Snap Save while {[Snap Ascii [expr [Snap Rows]-1] [expr [Snap Cols]-17] 4] != "READ"} { Snap Wait Output } } # Procedure to check for the CMS "Ready" prompt. # Returns its row number, or -1 for "MORE..." state, and leaves a screen with # data to read in the Snap buffer. proc cmd_done {} { global verbose Snap Save while {1} { if {[Snap Ascii [expr [Snap Rows]-1] [expr [Snap Cols]-20] 7] == "MORE..."} { if {$verbose} {puts "MORE..."} return -1 } set i [expr [Snap Rows]-2] while {$i >= 0} { set text [Snap Ascii $i 0 [Snap Cols]] switch -regexp $text { "Ready; T=.*" {return $i} "Ready\(.*\); T=.*" { error [Snap Ascii [expr $i-1] 0 \ [Snap Cols]] } "^ *\$" {} default { if {$verbose} {puts "Incomplete $i '[string trimright $text]'"} set i 0 } } incr i -1 } Snap Wait Output } } # Execute a command, return the output. proc cms_cmd {text} { global verbose # Clear the screen. Clear # Send the command. String "$text\n" # 'first' is the row where the first line of output will appear. For # the first screenful it's 1; after that it's 0. set first 1 # r is the result. set r {} while {1} { # Wait for a screenful. set d [cmd_done] # Dump out what's there. set i $first set first 0 if {$d < 0} {set last [expr [Snap Rows]-2]} {set last $d} while {$i < $last} { set r [linsert $r end [string trimright \ [Snap Ascii $i 0 [Snap Cols]]]] incr i } if {$d >= 0} {break} # Clear the screen and go around again. Clear } return $r } # Start of main procedure. # Set 'verbose' to 1 to get debug output from the glue functions. set verbose 0 # Connect to the host and wait for an input field. Connect $hostname Wait InputField # Log in and wait for CP READ or VM READ mode. String "$username\t$password\n" waitread # If we can't log on, we're hosed. if {[Ascii 1 11 7] == "Already"} { puts stderr "Can't run -- already logged in." exit 1 } # If we're in CP mode, which means we disconnected last time, boot CMS. if {[Ascii [expr [Rows]-1] [expr [Cols]-20] 2] == "CP"} { Clear String "i cms\n" waitread } # Enter an empty command to get a CMS prompt. If we don't do this, there will # be a Ready prompt as the first line of output below. Clear Enter cmd_done # Get the output of the user's command and display it. if {[catch {cms_cmd $command} result]} { puts stderr $result set rc 1 } { for {set i 0} {$i < [llength $result]} {incr i} { puts [lindex $result $i] } set rc 0 } # Log off, and wait for the host to hang up on us, so we don't unintentionally # create a disconnected session. Clear if {! [catch {String "logoff\n"}]} {Wait Disconnect} exit $rc ibm-3270-3.3.10ga4/tcl3270/ctlr.c0000644000175000017500000020560611254565704015406 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * ctlr.c * This module handles interpretation of the 3270 data stream and * maintenance of the 3270 device state. It was split out from * screen.c, which handles X operations. * */ #include "globals.h" #include #include "3270ds.h" #include "appres.h" #include "ctlr.h" #include "screen.h" #include "resources.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "ft_cutc.h" #include "ft_dftc.h" #include "hostc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "screenc.h" #include "scrollc.h" #include "seec.h" #include "selectc.h" #include "sfc.h" #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" /* Externals: kybd.c */ extern unsigned char aid; /* Globals */ int ROWS, COLS; int maxROWS, maxCOLS; int defROWS, defCOLS; int altROWS, altCOLS; int ov_rows, ov_cols; Boolean ov_auto; int model_num; int cursor_addr, buffer_addr; Boolean screen_alt = False; /* alternate screen? */ Boolean is_altbuffer = False; struct ea *ea_buf; /* 3270 device buffer */ /* ea_buf[-1] is the dummy default field attribute */ struct ea *aea_buf; /* alternate 3270 extended attribute buffer */ Boolean formatted = False; /* set in screen_disp */ Boolean screen_changed = False; int first_changed = -1; int last_changed = -1; unsigned char reply_mode = SF_SRM_FIELD; int crm_nattr = 0; unsigned char crm_attr[16]; Boolean dbcs = False; /* Statics */ static unsigned char *zero_buf; /* empty buffer, for area clears */ static void set_formatted(void); static void ctlr_blanks(void); static Boolean trace_primed = False; static unsigned char default_fg; static unsigned char default_bg; static unsigned char default_gr; static unsigned char default_cs; static unsigned char default_ic; static void ctlr_half_connect(Boolean ignored); static void ctlr_connect(Boolean ignored); static int sscp_start; static void ticking_stop(void); static void ctlr_add_ic(int baddr, unsigned char ic); /* * code_table is used to translate buffer addresses and attributes to the 3270 * datastream representation */ static unsigned char code_table[64] = { 0x40, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, }; #define IsBlank(c) ((c == EBC_null) || (c == EBC_space)) #define ALL_CHANGED { \ screen_changed = True; \ if (IN_ANSI) { first_changed = 0; last_changed = ROWS*COLS; } } #define REGION_CHANGED(f, l) { \ screen_changed = True; \ if (IN_ANSI) { \ if (first_changed == -1 || f < first_changed) first_changed = f; \ if (last_changed == -1 || l > last_changed) last_changed = l; } } #define ONE_CHANGED(n) REGION_CHANGED(n, n+1) #define DECODE_BADDR(c1, c2) \ ((((c1) & 0xC0) == 0x00) ? \ (((c1) & 0x3F) << 8) | (c2) : \ (((c1) & 0x3F) << 6) | ((c2) & 0x3F)) #define ENCODE_BADDR(ptr, addr) { \ if ((ROWS * COLS) > 0x1000) { \ *(ptr)++ = ((addr) >> 8) & 0x3F; \ *(ptr)++ = (addr) & 0xFF; \ } else { \ *(ptr)++ = code_table[((addr) >> 6) & 0x3F]; \ *(ptr)++ = code_table[(addr) & 0x3F]; \ } \ } /* * Initialize the emulated 3270 hardware. */ void ctlr_init(unsigned cmask _is_unused) { /* Register callback routines. */ register_schange(ST_HALF_CONNECT, ctlr_half_connect); register_schange(ST_CONNECT, ctlr_connect); register_schange(ST_3270_MODE, ctlr_connect); } /* * Reinitialize the emulated 3270 hardware. */ void ctlr_reinit(unsigned cmask) { static struct ea *real_ea_buf = NULL; static struct ea *real_aea_buf = NULL; if (cmask & MODEL_CHANGE) { /* Allocate buffers */ if (real_ea_buf) Free((char *)real_ea_buf); real_ea_buf = (struct ea *)Calloc(sizeof(struct ea), (maxROWS * maxCOLS) + 1); ea_buf = real_ea_buf + 1; if (real_aea_buf) Free((char *)real_aea_buf); real_aea_buf = (struct ea *)Calloc(sizeof(struct ea), (maxROWS * maxCOLS) + 1); aea_buf = real_aea_buf + 1; Replace(zero_buf, (unsigned char *)Calloc(sizeof(struct ea), maxROWS * maxCOLS)); cursor_addr = 0; buffer_addr = 0; } } /* * Deal with the relationships between model numbers and rows/cols. */ void set_rows_cols(int mn, int ovc, int ovr) { int defmod; if (ovc < 0 || ovr < 0) { ov_auto = True; ovc = 0; ovr = 0; } switch (mn) { case 2: maxCOLS = MODEL_2_COLS; maxROWS = MODEL_2_ROWS; model_num = 2; break; case 3: maxCOLS = MODEL_3_COLS; maxROWS = MODEL_3_ROWS; model_num = 3; break; case 4: #if defined(RESTRICT_3279) /*[*/ if (appres.m3279) { popup_an_error("No 3279 Model 4\nDefaulting to model 3"); set_rows_cols("3", ovc, ovr); return; } #endif /*]*/ maxCOLS = MODEL_4_COLS; maxROWS = MODEL_4_ROWS; model_num = 4; break; case 5: #if defined(RESTRICT_3279) /*[*/ if (appres.m3279) { popup_an_error("No 3279 Model 5\nDefaulting to model 3"); set_rows_cols(3, ovc, ovr); return; } #endif /*]*/ maxCOLS = MODEL_5_COLS; maxROWS = MODEL_5_ROWS; model_num = 5; break; default: #if defined(RESTRICT_3279) /*[*/ defmod = appres.m3279 ? 3 : 4; #else /*][*/ defmod = 4; #endif popup_an_error("Unknown model: %d\nDefaulting to %d", mn, defmod); set_rows_cols(defmod, ovc, ovr); return; } /* Apply oversize. */ ov_cols = 0; ov_rows = 0; if (ovc != 0 || ovr != 0) { if (ovc <= 0 || ovr <= 0) popup_an_error("Invalid %s %dx%d:\nNegative or zero", ResOversize, ovc, ovr); else if (ovc * ovr >= 0x4000) popup_an_error("Invalid %s %dx%d:\nToo big", ResOversize, ovc, ovr); else if (ovc > 0 && ovc < maxCOLS) popup_an_error("Invalid %s cols (%d):\nLess than model %d cols (%d)", ResOversize, ovc, model_num, maxCOLS); else if (ovr > 0 && ovr < maxROWS) popup_an_error("Invalid %s rows (%d):\nLess than model %d rows (%d)", ResOversize, ovr, model_num, maxROWS); else { ov_cols = maxCOLS = ovc; ov_rows = maxROWS = ovr; } } /* Update the model name. */ (void) sprintf(model_name, "327%c-%d%s", appres.m3279 ? '9' : '8', model_num, appres.extended ? "-E" : ""); /* Make sure that the current rows/cols are still 24x80. */ COLS = defCOLS = MODEL_2_COLS; ROWS = defROWS = MODEL_2_ROWS; screen_alt = False; /* Set the defaults for the alternate screen size. */ altROWS = maxROWS; altCOLS = maxCOLS; } /* * Set the formatted screen flag. A formatted screen is a screen that * has at least one field somewhere on it. */ static void set_formatted(void) { register int baddr; formatted = False; baddr = 0; do { if (ea_buf[baddr].fa) { formatted = True; break; } INC_BA(baddr); } while (baddr != 0); } /* * Called when a host is half connected. */ static void ctlr_half_connect(Boolean ignored _is_unused) { ticking_start(True); } /* * Called when a host connects, disconnects, or changes ANSI/3270 modes. */ static void ctlr_connect(Boolean ignored _is_unused) { ticking_stop(); status_untiming(); if (ever_3270) { ea_buf[-1].fa = FA_PRINTABLE | FA_MODIFY; aea_buf[-1].fa = FA_PRINTABLE | FA_MODIFY; } else { ea_buf[-1].fa = FA_PRINTABLE | FA_PROTECT; aea_buf[-1].fa = FA_PRINTABLE | FA_PROTECT; } if (!IN_3270 || (IN_SSCP && (kybdlock & KL_OIA_TWAIT))) { kybdlock_clr(KL_OIA_TWAIT, "ctlr_connect"); status_reset(); } default_fg = 0x00; default_bg = 0x00; default_gr = 0x00; default_cs = 0x00; default_ic = 0x00; reply_mode = SF_SRM_FIELD; crm_nattr = 0; /* On disconnect, reset the default and alternate dimensions. */ if (!CONNECTED) { defROWS = MODEL_2_ROWS; defCOLS = MODEL_2_COLS; altROWS = maxROWS; altCOLS = maxCOLS; ctlr_erase(False); } } /* * Find the buffer address of the field attribute for a given buffer address. * Returns -1 if the screen isn't formatted. */ int find_field_attribute(int baddr) { int sbaddr; if (!formatted) return -1; sbaddr = baddr; do { if (ea_buf[baddr].fa) return baddr; DEC_BA(baddr); } while (baddr != sbaddr); return -1; } /* * Find the field attribute for the given buffer address. Return its address * rather than its value. */ unsigned char get_field_attribute(register int baddr) { return ea_buf[find_field_attribute(baddr)].fa; } /* * Find the field attribute for the given buffer address, bounded by another * buffer address. Return the attribute in a parameter. * * Returns True if an attribute is found, False if boundary hit. */ Boolean get_bounded_field_attribute(register int baddr, register int bound, unsigned char *fa_out) { int sbaddr; if (!formatted) { *fa_out = ea_buf[-1].fa; return True; } sbaddr = baddr; do { if (ea_buf[baddr].fa) { *fa_out = ea_buf[baddr].fa; return True; } DEC_BA(baddr); } while (baddr != sbaddr && baddr != bound); /* Screen is unformatted (and 'formatted' is inaccurate). */ if (baddr == sbaddr) { *fa_out = ea_buf[-1].fa; return True; } /* Wrapped to boundary. */ return False; } /* * Given the address of a field attribute, return the address of the * extended attribute structure. */ struct ea * fa2ea(int baddr) { return &ea_buf[baddr]; } /* * Find the next unprotected field. Returns the address following the * unprotected attribute byte, or 0 if no nonzero-width unprotected field * can be found. */ int next_unprotected(int baddr0) { register int baddr, nbaddr; nbaddr = baddr0; do { baddr = nbaddr; INC_BA(nbaddr); if (ea_buf[baddr].fa && !FA_IS_PROTECTED(ea_buf[baddr].fa) && !ea_buf[nbaddr].fa) return nbaddr; } while (nbaddr != baddr0); return 0; } /* * Perform an erase command, which may include changing the (virtual) screen * size. */ void ctlr_erase(Boolean alt) { int newROWS, newCOLS; kybd_inhibit(False); ctlr_clear(True); /* Let a script go. */ sms_host_output(); if (alt) { newROWS = altROWS; newCOLS = altCOLS; } else { newROWS = defROWS; newCOLS = defCOLS; } if (alt == screen_alt && ROWS == newROWS && COLS == newCOLS) return; screen_disp(True); if (visible_control) { /* Blank the entire display. */ ctlr_blanks(); ROWS = maxROWS; COLS = maxCOLS; screen_disp(False); } ROWS = newROWS; COLS = newCOLS; if (visible_control) { /* Fill the active part of the screen with NULLs again. */ ctlr_clear(False); screen_disp(False); } screen_alt = alt; } /* * Interpret an incoming 3270 command. */ enum pds process_ds(unsigned char *buf, int buflen) { enum pds rv; if (!buflen) return PDS_OKAY_NO_OUTPUT; scroll_to_bottom(); trace_ds("< "); switch (buf[0]) { /* 3270 command */ case CMD_EAU: /* erase all unprotected */ case SNA_CMD_EAU: ctlr_erase_all_unprotected(); trace_ds("EraseAllUnprotected\n"); return PDS_OKAY_NO_OUTPUT; break; case CMD_EWA: /* erase/write alternate */ case SNA_CMD_EWA: ctlr_erase(True); trace_ds("EraseWriteAlternate"); if ((rv = ctlr_write(buf, buflen, True)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_EW: /* erase/write */ case SNA_CMD_EW: ctlr_erase(False); trace_ds("EraseWrite"); if ((rv = ctlr_write(buf, buflen, True)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_W: /* write */ case SNA_CMD_W: trace_ds("Write"); if ((rv = ctlr_write(buf, buflen, False)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_RB: /* read buffer */ case SNA_CMD_RB: trace_ds("ReadBuffer\n"); ctlr_read_buffer(aid); return PDS_OKAY_OUTPUT; break; case CMD_RM: /* read modifed */ case SNA_CMD_RM: trace_ds("ReadModified\n"); ctlr_read_modified(aid, False); return PDS_OKAY_OUTPUT; break; case CMD_RMA: /* read modifed all */ case SNA_CMD_RMA: trace_ds("ReadModifiedAll\n"); ctlr_read_modified(aid, True); return PDS_OKAY_OUTPUT; break; case CMD_WSF: /* write structured field */ case SNA_CMD_WSF: trace_ds("WriteStructuredField"); return write_structured_field(buf, buflen); break; case CMD_NOP: /* no-op */ trace_ds("NoOp\n"); return PDS_OKAY_NO_OUTPUT; break; default: /* unknown 3270 command */ popup_an_error("Unknown 3270 Data Stream command: 0x%X\n", buf[0]); return PDS_BAD_CMD; } } /* * Functions to insert SA attributes into the inbound data stream. */ static void insert_sa1(unsigned char attr, unsigned char value, unsigned char *currentp, Boolean *anyp) { if (value == *currentp) return; *currentp = value; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = attr; *obptr++ = value; if (*anyp) trace_ds("'"); trace_ds(" SetAttribute(%s)", see_efa(attr, value)); *anyp = False; } /* * Translate an internal character set number to a 3270DS characte set number. */ static unsigned char host_cs(unsigned char cs) { switch (cs & CS_MASK) { case CS_APL: case CS_LINEDRAW: return 0xf0 | (cs & CS_MASK); case CS_DBCS: return 0xf8; default: return 0; } } static void insert_sa(int baddr, unsigned char *current_fgp, unsigned char *current_bgp, unsigned char *current_grp, unsigned char *current_csp, Boolean *anyp) { if (reply_mode != SF_SRM_CHAR) return; if (memchr((char *)crm_attr, XA_FOREGROUND, crm_nattr)) insert_sa1(XA_FOREGROUND, ea_buf[baddr].fg, current_fgp, anyp); if (memchr((char *)crm_attr, XA_BACKGROUND, crm_nattr)) insert_sa1(XA_BACKGROUND, ea_buf[baddr].bg, current_bgp, anyp); if (memchr((char *)crm_attr, XA_HIGHLIGHTING, crm_nattr)) { unsigned char gr; gr = ea_buf[baddr].gr; if (gr) gr |= 0xf0; insert_sa1(XA_HIGHLIGHTING, gr, current_grp, anyp); } if (memchr((char *)crm_attr, XA_CHARSET, crm_nattr)) { insert_sa1(XA_CHARSET, host_cs(ea_buf[baddr].cs), current_csp, anyp); } } /* * Process a 3270 Read-Modified command and transmit the data back to the * host. */ void ctlr_read_modified(unsigned char aid_byte, Boolean all) { register int baddr, sbaddr; Boolean send_data = True; Boolean short_read = False; unsigned char current_fg = 0x00; unsigned char current_bg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; if (IN_SSCP && aid_byte != AID_ENTER) return; #if defined(X3270_FT) /*[*/ if (aid_byte == AID_SF) { dft_read_modified(); return; } #endif /*]*/ trace_ds("> "); obptr = obuf; switch (aid_byte) { case AID_SYSREQ: /* test request */ space3270out(4); *obptr++ = 0x01; /* soh */ *obptr++ = 0x5b; /* % */ *obptr++ = 0x61; /* / */ *obptr++ = 0x02; /* stx */ trace_ds("SYSREQ"); break; case AID_PA1: /* short-read AIDs */ case AID_PA2: case AID_PA3: case AID_CLEAR: if (!all) short_read = True; /* fall through... */ case AID_SELECT: /* No data on READ MODIFIED */ if (!all) send_data = False; /* fall through... */ default: /* ordinary AID */ if (!IN_SSCP) { space3270out(3); *obptr++ = aid_byte; trace_ds("%s", see_aid(aid_byte)); if (short_read) goto rm_done; ENCODE_BADDR(obptr, cursor_addr); trace_ds("%s", rcba(cursor_addr)); } else { space3270out(1); /* just in case */ } break; } baddr = 0; if (formatted) { /* find first field attribute */ do { if (ea_buf[baddr].fa) break; INC_BA(baddr); } while (baddr != 0); sbaddr = baddr; do { if (FA_IS_MODIFIED(ea_buf[baddr].fa)) { Boolean any = False; INC_BA(baddr); space3270out(3); *obptr++ = ORDER_SBA; ENCODE_BADDR(obptr, baddr); trace_ds(" SetBufferAddress%s", rcba(baddr)); while (!ea_buf[baddr].fa) { if (send_data && ea_buf[baddr].cc) { insert_sa(baddr, ¤t_fg, ¤t_bg, ¤t_gr, ¤t_cs, &any); if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; if (any) trace_ds("'"); trace_ds(" GraphicEscape"); any = False; } space3270out(1); *obptr++ = ea_buf[baddr].cc; if (ea_buf[baddr].cc <= 0x3f || ea_buf[baddr].cc == 0xff) { if (any) trace_ds("'"); trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); any = False; } else { if (!any) trace_ds(" '"); trace_ds("%s", see_ebc(ea_buf[baddr].cc)); any = True; } } INC_BA(baddr); } if (any) trace_ds("'"); } else { /* not modified - skip */ do { INC_BA(baddr); } while (!ea_buf[baddr].fa); } } while (baddr != sbaddr); } else { Boolean any = False; int nbytes = 0; /* * If we're in SSCP-LU mode, the starting point is where the * host left the cursor. */ if (IN_SSCP) baddr = sscp_start; do { if (ea_buf[baddr].cc) { insert_sa(baddr, ¤t_fg, ¤t_bg, ¤t_gr, ¤t_cs, &any); if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; if (any) trace_ds("' "); trace_ds(" GraphicEscape "); any = False; } space3270out(1); *obptr++ = ea_buf[baddr].cc; if (ea_buf[baddr].cc <= 0x3f || ea_buf[baddr].cc == 0xff) { if (any) trace_ds("'"); trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); any = False; } else { if (!any) trace_ds(" '"); trace_ds("%s", see_ebc(ea_buf[baddr].cc)); any = True; } nbytes++; } INC_BA(baddr); /* * If we're in SSCP-LU mode, end the return value at * 255 bytes, or where the screen wraps. */ if (IN_SSCP && (nbytes >= 255 || !baddr)) break; } while (baddr != 0); if (any) trace_ds("'"); } rm_done: trace_ds("\n"); net_output(); } /* * Process a 3270 Read-Buffer command and transmit the data back to the * host. */ void ctlr_read_buffer(unsigned char aid_byte) { register int baddr; unsigned char fa; Boolean any = False; int attr_count = 0; unsigned char current_fg = 0x00; unsigned char current_bg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; #if defined(X3270_FT) /*[*/ if (aid_byte == AID_SF) { dft_read_modified(); return; } #endif /*]*/ trace_ds("> "); obptr = obuf; space3270out(3); *obptr++ = aid_byte; ENCODE_BADDR(obptr, cursor_addr); trace_ds("%s%s", see_aid(aid_byte), rcba(cursor_addr)); baddr = 0; do { if (ea_buf[baddr].fa) { if (reply_mode == SF_SRM_FIELD) { space3270out(2); *obptr++ = ORDER_SF; } else { space3270out(4); *obptr++ = ORDER_SFE; attr_count = obptr - obuf; *obptr++ = 1; /* for now */ *obptr++ = XA_3270; } fa = ea_buf[baddr].fa & ~FA_PRINTABLE; *obptr++ = code_table[fa]; if (any) trace_ds("'"); trace_ds(" StartField%s%s%s", (reply_mode == SF_SRM_FIELD) ? "" : "Extended", rcba(baddr), see_attr(fa)); if (reply_mode != SF_SRM_FIELD) { if (ea_buf[baddr].fg) { space3270out(2); *obptr++ = XA_FOREGROUND; *obptr++ = ea_buf[baddr].fg; trace_ds("%s", see_efa(XA_FOREGROUND, ea_buf[baddr].fg)); (*(obuf + attr_count))++; } if (ea_buf[baddr].bg) { space3270out(2); *obptr++ = XA_BACKGROUND; *obptr++ = ea_buf[baddr].bg; trace_ds("%s", see_efa(XA_BACKGROUND, ea_buf[baddr].bg)); (*(obuf + attr_count))++; } if (ea_buf[baddr].gr) { space3270out(2); *obptr++ = XA_HIGHLIGHTING; *obptr++ = ea_buf[baddr].gr | 0xf0; trace_ds("%s", see_efa(XA_HIGHLIGHTING, ea_buf[baddr].gr | 0xf0)); (*(obuf + attr_count))++; } if (ea_buf[baddr].cs & CS_MASK) { space3270out(2); *obptr++ = XA_CHARSET; *obptr++ = host_cs(ea_buf[baddr].cs); trace_ds("%s", see_efa(XA_CHARSET, host_cs(ea_buf[baddr].cs))); (*(obuf + attr_count))++; } } any = False; } else { insert_sa(baddr, ¤t_fg, ¤t_bg, ¤t_gr, ¤t_cs, &any); if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; if (any) trace_ds("'"); trace_ds(" GraphicEscape"); any = False; } space3270out(1); *obptr++ = ea_buf[baddr].cc; if (ea_buf[baddr].cc <= 0x3f || ea_buf[baddr].cc == 0xff) { if (any) trace_ds("'"); trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); any = False; } else { if (!any) trace_ds(" '"); trace_ds("%s", see_ebc(ea_buf[baddr].cc)); any = True; } } INC_BA(baddr); } while (baddr != 0); if (any) trace_ds("'"); trace_ds("\n"); net_output(); } #if defined(X3270_TRACE) /*[*/ /* * Construct a 3270 command to reproduce the current state of the display, if * formatted. */ void ctlr_snap_buffer(void) { register int baddr = 0; int attr_count; unsigned char current_fg = 0x00; unsigned char current_bg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; unsigned char av; space3270out(2); *obptr++ = screen_alt ? CMD_EWA : CMD_EW; *obptr++ = code_table[0]; do { if (ea_buf[baddr].fa) { space3270out(4); *obptr++ = ORDER_SFE; attr_count = obptr - obuf; *obptr++ = 1; /* for now */ *obptr++ = XA_3270; *obptr++ = code_table[ea_buf[baddr].fa & ~FA_PRINTABLE]; if (ea_buf[baddr].fg) { space3270out(2); *obptr++ = XA_FOREGROUND; *obptr++ = ea_buf[baddr].fg; (*(obuf + attr_count))++; } if (ea_buf[baddr].bg) { space3270out(2); *obptr++ = XA_BACKGROUND; *obptr++ = ea_buf[baddr].fg; (*(obuf + attr_count))++; } if (ea_buf[baddr].gr) { space3270out(2); *obptr++ = XA_HIGHLIGHTING; *obptr++ = ea_buf[baddr].gr | 0xf0; (*(obuf + attr_count))++; } if (ea_buf[baddr].cs & CS_MASK) { space3270out(2); *obptr++ = XA_CHARSET; *obptr++ = host_cs(ea_buf[baddr].cs); (*(obuf + attr_count))++; } } else { av = ea_buf[baddr].fg; if (current_fg != av) { current_fg = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_FOREGROUND; *obptr++ = av; } av = ea_buf[baddr].bg; if (current_bg != av) { current_bg = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_BACKGROUND; *obptr++ = av; } av = ea_buf[baddr].gr; if (av) av |= 0xf0; if (current_gr != av) { current_gr = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_HIGHLIGHTING; *obptr++ = av; } av = ea_buf[baddr].cs & CS_MASK; if (av) av = host_cs(av); if (current_cs != av) { current_cs = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_CHARSET; *obptr++ = av; } if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; } space3270out(1); *obptr++ = ea_buf[baddr].cc; } INC_BA(baddr); } while (baddr != 0); space3270out(4); *obptr++ = ORDER_SBA; ENCODE_BADDR(obptr, cursor_addr); *obptr++ = ORDER_IC; } /* * Construct a 3270 command to reproduce the reply mode. * Returns a Boolean indicating if one is necessary. */ Boolean ctlr_snap_modes(void) { int i; if (!IN_3270 || reply_mode == SF_SRM_FIELD) return False; space3270out(6 + crm_nattr); *obptr++ = CMD_WSF; *obptr++ = 0x00; /* implicit length */ *obptr++ = 0x00; *obptr++ = SF_SET_REPLY_MODE; *obptr++ = 0x00; /* partition 0 */ *obptr++ = reply_mode; if (reply_mode == SF_SRM_CHAR) for (i = 0; i < crm_nattr; i++) *obptr++ = crm_attr[i]; return True; } /* * Construct a 3270 command to reproduce the current state of the display * in SSCP-LU mode. */ void ctlr_snap_buffer_sscp_lu(void) { register int baddr = 0; /* Write out the screen contents once. */ do { if (ea_buf[baddr].cc == 0xff) { space3270out(1); *obptr++ = 0xff; } space3270out(1); *obptr++ = ea_buf[baddr].cc; INC_BA(baddr); } while (baddr != 0); /* Write them out again, until we hit where the cursor is. */ if (cursor_addr != baddr) { do { if (ea_buf[baddr].cc == 0xff) { space3270out(1); *obptr++ = 0xff; } space3270out(1); *obptr++ = ea_buf[baddr].cc; INC_BA(baddr); } while (baddr != cursor_addr); } } #endif /*]*/ /* * Process a 3270 Erase All Unprotected command. */ void ctlr_erase_all_unprotected(void) { register int baddr, sbaddr; unsigned char fa; Boolean f; kybd_inhibit(False); ALL_CHANGED; if (formatted) { /* find first field attribute */ baddr = 0; do { if (ea_buf[baddr].fa) break; INC_BA(baddr); } while (baddr != 0); sbaddr = baddr; f = False; do { fa = ea_buf[baddr].fa; if (!FA_IS_PROTECTED(fa)) { mdt_clear(baddr); do { INC_BA(baddr); if (!f) { cursor_move(baddr); f = True; } if (!ea_buf[baddr].fa) { ctlr_add(baddr, EBC_null, 0); } } while (!ea_buf[baddr].fa); } else { do { INC_BA(baddr); } while (!ea_buf[baddr].fa); } } while (baddr != sbaddr); if (!f) cursor_move(0); } else { ctlr_clear(True); } aid = AID_NO; do_reset(False); } /* * Process a 3270 Write command. */ enum pds ctlr_write(unsigned char buf[], int buflen, Boolean erase) { register unsigned char *cp; register int baddr; unsigned char current_fa; Boolean last_cmd; Boolean last_zpt; Boolean wcc_keyboard_restore, wcc_sound_alarm; Boolean ra_ge; int i; unsigned char na; int any_fa; unsigned char efa_fg; unsigned char efa_bg; unsigned char efa_gr; unsigned char efa_cs; unsigned char efa_ic; const char *paren = "("; enum { NONE, ORDER, SBA, TEXT, NULLCH } previous = NONE; enum pds rv = PDS_OKAY_NO_OUTPUT; int fa_addr; Boolean add_dbcs; unsigned char add_c1, add_c2 = 0; enum dbcs_state d; enum dbcs_why why = DBCS_FIELD; Boolean aborted = False; #if defined(X3270_DBCS) /*[*/ char mb[16]; #endif /*]*/ #define END_TEXT0 { if (previous == TEXT) trace_ds("'"); } #define END_TEXT(cmd) { END_TEXT0; trace_ds(" %s", cmd); } /* XXX: Should there be a ctlr_add_cs call here? */ #define START_FIELD(fa) { \ current_fa = fa; \ ctlr_add_fa(buffer_addr, fa, 0); \ ctlr_add_cs(buffer_addr, 0); \ ctlr_add_fg(buffer_addr, 0); \ ctlr_add_bg(buffer_addr, 0); \ ctlr_add_gr(buffer_addr, 0); \ ctlr_add_ic(buffer_addr, 0); \ trace_ds("%s", see_attr(fa)); \ formatted = True; \ } kybd_inhibit(False); if (buflen < 2) return PDS_BAD_CMD; default_fg = 0; default_bg = 0; default_gr = 0; default_cs = 0; default_ic = 0; trace_primed = True; buffer_addr = cursor_addr; if (WCC_RESET(buf[1])) { if (erase) reply_mode = SF_SRM_FIELD; trace_ds("%sreset", paren); paren = ","; } wcc_sound_alarm = WCC_SOUND_ALARM(buf[1]); if (wcc_sound_alarm) { trace_ds("%salarm", paren); paren = ","; } wcc_keyboard_restore = WCC_KEYBOARD_RESTORE(buf[1]); if (wcc_keyboard_restore) ticking_stop(); if (wcc_keyboard_restore) { trace_ds("%srestore", paren); paren = ","; } if (WCC_RESET_MDT(buf[1])) { trace_ds("%sresetMDT", paren); paren = ","; baddr = 0; if (appres.modified_sel) ALL_CHANGED; do { if (ea_buf[baddr].fa) { mdt_clear(baddr); } INC_BA(baddr); } while (baddr != 0); } if (strcmp(paren, "(")) trace_ds(")"); last_cmd = True; last_zpt = False; current_fa = get_field_attribute(buffer_addr); #define ABORT_WRITEx { \ rv = PDS_BAD_ADDR; \ aborted = True; \ break; \ } #define ABORT_WRITE(s) { \ trace_ds(" [" s "; write aborted]\n"); \ ABORT_WRITEx; \ } \ for (cp = &buf[2]; !aborted && cp < (buf + buflen); cp++) { switch (*cp) { case ORDER_SF: /* start field */ END_TEXT("StartField"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cp++; /* skip field attribute */ START_FIELD(*cp); ctlr_add_fg(buffer_addr, 0); ctlr_add_bg(buffer_addr, 0); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_SBA: /* set buffer address */ cp += 2; /* skip buffer address */ buffer_addr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("SetBufferAddress"); previous = SBA; trace_ds("%s", rcba(buffer_addr)); if (buffer_addr >= COLS * ROWS) { trace_ds("COLS %d ROWS %d\n", COLS, ROWS); ABORT_WRITE("invalid SBA address"); } current_fa = get_field_attribute(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_IC: /* insert cursor */ END_TEXT("InsertCursor"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cursor_move(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_PT: /* program tab */ END_TEXT("ProgramTab"); previous = ORDER; /* * If the buffer address is the field attribute of * of an unprotected field, simply advance one * position. */ if (ea_buf[buffer_addr].fa && !FA_IS_PROTECTED(ea_buf[buffer_addr].fa)) { INC_BA(buffer_addr); last_zpt = False; last_cmd = True; break; } /* * Otherwise, advance to the first position of the * next unprotected field. */ baddr = next_unprotected(buffer_addr); if (baddr < buffer_addr) baddr = 0; /* * Null out the remainder of the current field -- even * if protected -- if the PT doesn't follow a command * or order, or (honestly) if the last order we saw was * a null-filling PT that left the buffer address at 0. * XXX: There's some funky DBCS rule here. */ if (!last_cmd || last_zpt) { trace_ds("(nulling)"); while ((buffer_addr != baddr) && (!ea_buf[buffer_addr].fa)) { ctlr_add(buffer_addr, EBC_null, 0); ctlr_add_cs(buffer_addr, 0); ctlr_add_fg(buffer_addr, 0); ctlr_add_bg(buffer_addr, 0); ctlr_add_gr(buffer_addr, 0); ctlr_add_ic(buffer_addr, 0); INC_BA(buffer_addr); } if (baddr == 0) last_zpt = True; } else last_zpt = False; buffer_addr = baddr; last_cmd = True; break; case ORDER_RA: /* repeat to address */ END_TEXT("RepeatToAddress"); cp += 2; /* skip buffer address */ baddr = DECODE_BADDR(*(cp-1), *cp); trace_ds("%s", rcba(baddr)); cp++; /* skip char to repeat */ add_dbcs = False; ra_ge = False; previous = ORDER; #if defined(X3270_DBCS) /*[*/ if (dbcs) { d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("RA over right half of DBCS character"); } if (default_cs == CS_DBCS || d == DBCS_LEFT) { add_dbcs = True; } } if (add_dbcs) { if ((baddr - buffer_addr) % 2) { ABORT_WRITE("DBCS RA with odd length"); } add_c1 = *cp; cp++; if (cp >= buf + buflen) { ABORT_WRITE("missing second half of DBCS character"); } add_c2 = *cp; if (add_c1 == EBC_null) { switch (add_c2) { case EBC_null: case EBC_nl: case EBC_em: case EBC_ff: case EBC_cr: case EBC_dup: case EBC_fm: break; default: trace_ds(" [invalid DBCS RA control character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; } } else if (add_c1 < 0x40 || add_c1 > 0xfe || add_c2 < 0x40 || add_c2 > 0xfe) { trace_ds(" [invalid DBCS RA character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; } (void) ebcdic_to_multibyte( (add_c1 << 8) | add_c2, mb, sizeof(mb)); trace_ds_nb("'%s'", mb); } else #endif /*]*/ { if (*cp == ORDER_GE) { ra_ge = True; trace_ds("GraphicEscape"); cp++; } add_c1 = *cp; if (add_c1) trace_ds("'"); trace_ds("%s", see_ebc(add_c1)); if (add_c1) trace_ds("'"); } if (baddr >= COLS * ROWS) { ABORT_WRITE("invalid RA address"); } do { if (add_dbcs) { ctlr_add(buffer_addr, add_c1, default_cs); } else { if (ra_ge) ctlr_add(buffer_addr, add_c1, CS_GE); else if (default_cs) ctlr_add(buffer_addr, add_c1, default_cs); else ctlr_add(buffer_addr, add_c1, 0); } ctlr_add_fg(buffer_addr, default_fg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); if (add_dbcs) { ctlr_add(buffer_addr, add_c2, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } } while (buffer_addr != baddr); current_fa = get_field_attribute(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_EUA: /* erase unprotected to address */ cp += 2; /* skip buffer address */ baddr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("EraseUnprotectedAll"); if (previous != SBA) trace_ds("%s", rcba(baddr)); previous = ORDER; if (baddr >= COLS * ROWS) { ABORT_WRITE("invalid EUA address"); } d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("EUA overwriting right half of DBCS character"); } d = ctlr_lookleft_state(baddr, &why); if (d == DBCS_LEFT) { ABORT_WRITE("EUA overwriting left half of DBCS character"); } do { if (ea_buf[buffer_addr].fa) current_fa = ea_buf[buffer_addr].fa; else if (!FA_IS_PROTECTED(current_fa)) { ctlr_add(buffer_addr, EBC_null, CS_BASE); } INC_BA(buffer_addr); } while (buffer_addr != baddr); current_fa = get_field_attribute(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_GE: /* graphic escape */ /* XXX: DBCS? */ END_TEXT("GraphicEscape "); cp++; /* skip char */ previous = ORDER; if (*cp) trace_ds("'"); trace_ds("%s", see_ebc(*cp)); if (*cp) trace_ds("'"); ctlr_add(buffer_addr, *cp, CS_GE); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); current_fa = get_field_attribute(buffer_addr); last_cmd = False; last_zpt = False; break; case ORDER_MF: /* modify field */ END_TEXT("ModifyField"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cp++; na = *cp; if (ea_buf[buffer_addr].fa) { for (i = 0; i < (int)na; i++) { cp++; if (*cp == XA_3270) { trace_ds(" 3270"); cp++; ctlr_add_fa(buffer_addr, *cp, ea_buf[buffer_addr].cs); trace_ds("%s", see_attr(*cp)); } else if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) ctlr_add_fg(buffer_addr, *cp); } else if (*cp == XA_BACKGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) ctlr_add_bg(buffer_addr, *cp); } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; ctlr_add_gr(buffer_addr, *cp & 0x0f); } else if (*cp == XA_CHARSET) { int cs = 0; trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (*cp == 0xf1) cs = CS_APL; else if (*cp == 0xf8) cs = CS_DBCS; ctlr_add_cs(buffer_addr, cs); } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; } else if (*cp == XA_INPUT_CONTROL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); ctlr_add_ic(buffer_addr, (*(cp + 1) == 1)); cp++; } else { trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; } } INC_BA(buffer_addr); } else cp += na * 2; last_cmd = True; last_zpt = False; break; case ORDER_SFE: /* start field extended */ END_TEXT("StartFieldExtended"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cp++; /* skip order */ na = *cp; any_fa = 0; efa_fg = 0; efa_bg = 0; efa_gr = 0; efa_cs = 0; efa_ic = 0; for (i = 0; i < (int)na; i++) { cp++; if (*cp == XA_3270) { trace_ds(" 3270"); cp++; START_FIELD(*cp); any_fa++; } else if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) efa_fg = *cp; } else if (*cp == XA_BACKGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) efa_bg = *cp; } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; efa_gr = *cp & 0x07; } else if (*cp == XA_CHARSET) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (*cp == 0xf1) efa_cs = CS_APL; else if (dbcs && (*cp == 0xf8)) efa_cs = CS_DBCS; else efa_cs = CS_BASE; } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; } else if (*cp == XA_INPUT_CONTROL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (dbcs) efa_ic = (*(cp + 1) == 1); cp++; } else { trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; } } if (!any_fa) START_FIELD(0); ctlr_add_cs(buffer_addr, efa_cs); ctlr_add_fg(buffer_addr, efa_fg); ctlr_add_bg(buffer_addr, efa_bg); ctlr_add_gr(buffer_addr, efa_gr); ctlr_add_ic(buffer_addr, efa_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_SA: /* set attribute */ END_TEXT("SetAttribute"); previous = ORDER; cp++; if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (appres.m3279) default_fg = *(cp + 1); } else if (*cp == XA_BACKGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (appres.m3279) default_bg = *(cp + 1); } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_gr = *(cp + 1) & 0x0f; } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_fg = 0; default_bg = 0; default_gr = 0; default_cs = 0; default_ic = 0; } else if (*cp == XA_CHARSET) { trace_ds("%s", see_efa(*cp, *(cp + 1))); switch (*(cp + 1)) { case 0xf1: default_cs = CS_APL; break; case 0xf8: default_cs = CS_DBCS; break; default: default_cs = CS_BASE; break; } } else if (*cp == XA_INPUT_CONTROL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (*(cp + 1) == 1) default_ic = 1; else default_ic = 0; } else trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; last_cmd = True; last_zpt = False; break; case FCORDER_SUB: /* format control orders */ case FCORDER_DUP: case FCORDER_FM: case FCORDER_FF: case FCORDER_CR: case FCORDER_NL: case FCORDER_EM: case FCORDER_EO: END_TEXT(see_ebc(*cp)); previous = ORDER; d = ctlr_lookleft_state(buffer_addr, &why); if (default_cs == CS_DBCS || d != DBCS_NONE) { ABORT_WRITE("invalid format control order in DBCS field"); } ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case FCORDER_SO: /* Look left for errors. */ END_TEXT(see_ebc(*cp)); d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("SO overwriting right half of DBCS character"); } if (d != DBCS_NONE && why == DBCS_FIELD) { ABORT_WRITE("SO in DBCS field"); } if (d != DBCS_NONE && why == DBCS_SUBFIELD) { ABORT_WRITE("double SO"); } /* All is well. */ previous = ORDER; ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case FCORDER_SI: /* Look left for errors. */ END_TEXT(see_ebc(*cp)); d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("SI overwriting right half of DBCS character"); } if (d != DBCS_NONE && why == DBCS_FIELD) { ABORT_WRITE("SI in DBCS field"); } fa_addr = find_field_attribute(buffer_addr); baddr = buffer_addr; DEC_BA(baddr); while (!aborted && ((fa_addr >= 0 && baddr != fa_addr) || (fa_addr < 0 && baddr != ROWS*COLS - 1))) { if (ea_buf[baddr].cc == FCORDER_SI) { ABORT_WRITE("double SI"); } if (ea_buf[baddr].cc == FCORDER_SO) break; DEC_BA(baddr); } if (aborted) break; if (ea_buf[baddr].cc != FCORDER_SO) { ABORT_WRITE("SI without SO"); } /* All is well. */ previous = ORDER; ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case FCORDER_NULL: /* NULL or DBCS control char */ add_dbcs = False; d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("NULL overwriting right half of DBCS character"); } if (d != DBCS_NONE || default_cs == CS_DBCS) { add_c1 = EBC_null; cp++; if (cp >= buf + buflen) { ABORT_WRITE("missing second half of DBCS character"); } add_c2 = *cp; switch (add_c2) { case EBC_null: case EBC_nl: case EBC_em: case EBC_ff: case EBC_cr: case EBC_dup: case EBC_fm: /* DBCS control code */ END_TEXT(see_ebc(add_c2)); add_dbcs = True; break; case ORDER_SF: case ORDER_SFE: /* Dead position */ END_TEXT("DeadNULL"); cp--; break; default: trace_ds(" [invalid DBCS control character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; break; } if (aborted) break; } else { END_TEXT("NULL"); add_c1 = *cp; } previous = NULLCH; ctlr_add(buffer_addr, add_c1, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); if (add_dbcs) { ctlr_add(buffer_addr, add_c2, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } last_cmd = False; last_zpt = False; break; default: /* enter character */ if (*cp <= 0x3F) { END_TEXT("UnsupportedOrder"); trace_ds("(%02X)", *cp); previous = ORDER; last_cmd = True; last_zpt = False; break; } if (previous != TEXT) trace_ds(" '"); previous = TEXT; #if defined(X3270_DBCS) /*[*/ add_dbcs = False; d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("overwriting right half of DBCS character"); } if (d != DBCS_NONE || default_cs == CS_DBCS) { add_c1 = *cp; cp++; if (cp >= buf + buflen) { ABORT_WRITE("missing second half of DBCS character"); } add_c2 = *cp; if (add_c1 < 0x40 || add_c1 > 0xfe || add_c2 < 0x40 || add_c2 > 0xfe) { trace_ds(" [invalid DBCS character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; } add_dbcs = True; (void) ebcdic_to_multibyte( (add_c1 << 8) | add_c2, mb, sizeof(mb)); trace_ds_nb("%s", mb); } else { #endif /*]*/ add_c1 = *cp; trace_ds("%s", see_ebc(*cp)); #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ ctlr_add(buffer_addr, add_c1, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); #if defined(X3270_DBCS) /*[*/ if (add_dbcs) { ctlr_add(buffer_addr, add_c2, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } #endif /*]*/ last_cmd = False; last_zpt = False; break; } } set_formatted(); END_TEXT0; trace_ds("\n"); kybdlock_clr(KL_AWAITING_FIRST, "ctlr_write"); if (wcc_keyboard_restore) { aid = AID_NO; do_reset(False); } else if (kybdlock & KL_OIA_TWAIT) { kybdlock_clr(KL_OIA_TWAIT, "ctlr_write"); status_syswait(); } if (wcc_sound_alarm) ring_bell(); /* Set up the DBCS state. */ if (ctlr_dbcs_postprocess() < 0 && rv == PDS_OKAY_NO_OUTPUT) rv = PDS_BAD_ADDR; trace_primed = False; ps_process(); /* Let a script go. */ sms_host_output(); /* Tell 'em what happened. */ return rv; } #undef START_FIELDx #undef START_FIELD0 #undef START_FIELD #undef END_TEXT0 #undef END_TEXT #undef ABORT_WRITEx #undef ABORT_WRITE /* * Write SSCP-LU data, which is quite a bit dumber than regular 3270 * output. */ void ctlr_write_sscp_lu(unsigned char buf[], int buflen) { int i; unsigned char *cp = buf; int s_row; unsigned char c; int baddr; int text = False; /* * The 3174 Functionl Description says that anything but NL, NULL, FM, * or DUP is to be displayed as a graphic. However, to deal with * badly-behaved hosts, we filter out SF, IC and SBA sequences, and * we display other control codes as spaces. */ trace_ds("SSCP-LU data\n< "); for (i = 0; i < buflen; cp++, i++) { switch (*cp) { case FCORDER_NL: /* * Insert NULLs to the end of the line and advance to * the beginning of the next line. */ if (text) { trace_ds("'"); text = False; } trace_ds(" NL"); s_row = buffer_addr / COLS; while ((buffer_addr / COLS) == s_row) { ctlr_add(buffer_addr, EBC_null, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } break; case ORDER_SF: /* Some hosts forget they're talking SSCP-LU. */ cp++; i++; if (text) { trace_ds("'"); text = False; } trace_ds(" SF%s %s [translated to space]\n", rcba(buffer_addr), see_attr(*cp)); ctlr_add(buffer_addr, EBC_space, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); break; case ORDER_IC: if (text) { trace_ds("'"); text = False; } trace_ds(" IC%s [ignored]\n", rcba(buffer_addr)); break; case ORDER_SBA: baddr = DECODE_BADDR(*(cp+1), *(cp+2)); trace_ds(" SBA%s [ignored]\n", rcba(baddr)); cp += 2; i += 2; break; case ORDER_GE: cp++; if (++i >= buflen) break; if (*cp <= 0x40) c = EBC_space; else c = *cp; if (text) { trace_ds("'"); text = False; } trace_ds(" GE '%s'", see_ebc(c)); ctlr_add(buffer_addr, c, CS_GE); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); break; default: if (!text) { trace_ds(" '"); text = True; } trace_ds("%s", see_ebc(*cp)); ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); break; } } if (text) trace_ds("'"); trace_ds("\n"); cursor_move(buffer_addr); sscp_start = buffer_addr; /* Unlock the keyboard. */ aid = AID_NO; do_reset(False); /* Let a script go. */ sms_host_output(); } #if defined(X3270_DBCS) /*[*/ /* * Determine the DBCS state of a buffer location strictly by looking left. * Used only to validate write operations. * Returns only DBCS_LEFT, DBCS_RIGHT or DBCS_NONE. * Also returns whether the location is part of a DBCS field (SFE with the * DBCS character set), DBCS subfield (to the right of an SO within a non-DBCS * field), or DBCS attribute (has the DBCS character set extended attribute * within a non-DBCS field). * * This function should be used only to determine the legality of adding a * DBCS or SBCS character at baddr. */ enum dbcs_state ctlr_lookleft_state(int baddr, enum dbcs_why *why) { int faddr; int fdist; int xaddr; Boolean si = False; #define AT_END(f, b) \ (((f) < 0 && (b) == ROWS*COLS - 1) || \ ((f) >= 0 && (b) == (f))) /* If we're not in DBCS state, everything is DBCS_NONE. */ if (!dbcs) return DBCS_NONE; /* Find the field attribute, if any. */ faddr = find_field_attribute(baddr); /* * First in precedence is a DBCS field. * DBCS SA and SO/SI inside a DBCS field are errors, but are considered * defective DBCS characters. */ if (ea_buf[faddr].cs == CS_DBCS) { *why = DBCS_FIELD; fdist = (baddr + ROWS*COLS) - faddr; return (fdist % 2)? DBCS_LEFT: DBCS_RIGHT; } /* * The DBCS attribute takes precedence next. * SO and SI can appear within such a region, but they are single-byte * characters which effectively split it. */ if (ea_buf[baddr].cs == CS_DBCS) { if (ea_buf[baddr].cc == EBC_so || ea_buf[baddr].cc == EBC_si) return DBCS_NONE; xaddr = baddr; while (!AT_END(faddr, xaddr) && ea_buf[xaddr].cs == CS_DBCS && ea_buf[xaddr].cc != EBC_so && ea_buf[xaddr].cc != EBC_si) { DEC_BA(xaddr); } *why = DBCS_ATTRIBUTE; fdist = (baddr + ROWS*COLS) - xaddr; return (fdist % 2)? DBCS_LEFT: DBCS_RIGHT; } /* * Finally, look for a SO not followed by an SI. */ xaddr = baddr; DEC_BA(xaddr); while (!AT_END(faddr, xaddr)) { if (ea_buf[xaddr].cc == EBC_si) si = True; else if (ea_buf[xaddr].cc == EBC_so) { if (si) si = False; else { *why = DBCS_SUBFIELD; fdist = (baddr + ROWS*COLS) - xaddr; return (fdist % 2)? DBCS_LEFT: DBCS_RIGHT; } } DEC_BA(xaddr); } /* Nada. */ return DBCS_NONE; } static Boolean valid_dbcs_char(unsigned char c1, unsigned char c2) { if (c1 >= 0x40 && c1 < 0xff && c2 >= 0x40 && c2 < 0xff) return True; if (c1 != 0x00 || c2 < 0x40 || c2 >= 0xff) return False; switch (c2) { case EBC_null: case EBC_nl: case EBC_em: case EBC_ff: case EBC_cr: case EBC_dup: case EBC_fm: return True; default: return False; } } /* * Post-process DBCS state in the buffer. * This has two purposes: * * - Required post-processing validation, per the data stream spec, which can * cause the write operation to be rejected. * - Setting up the value of the all the db fields in ea_buf. * * This function is called at the end of every 3270 write operation, and also * after each batch of NVT write operations. It could also be called after * significant keyboard operations, but that might be too expensive. * * Returns 0 for success, -1 for failure. */ int ctlr_dbcs_postprocess(void) { int baddr; /* current buffer address */ int faddr0; /* address of first field attribute */ int faddr; /* address of current field attribute */ int last_baddr; /* last buffer address to search */ int pbaddr = -1; /* previous buffer address */ int dbaddr = -1; /* first data position of current DBCS (sub-) field */ Boolean so = False, si = False; Boolean dbcs_field = False; int rc = 0; /* If we're not in DBCS mode, do nothing. */ if (!dbcs) return 0; /* * Find the field attribute for location 0. If unformatted, it's the * dummy at -1. Also compute the starting and ending points for the * scan: the first location after that field attribute. */ faddr0 = find_field_attribute(0); baddr = faddr0; INC_BA(baddr); if (faddr0 < 0) last_baddr = 0; else last_baddr = faddr0; faddr = faddr0; dbcs_field = (ea_buf[faddr].cs & CS_MASK) == CS_DBCS; do { if (ea_buf[baddr].fa) { faddr = baddr; ea_buf[faddr].db = DBCS_NONE; dbcs_field = (ea_buf[faddr].cs & CS_MASK) == CS_DBCS; if (dbcs_field) { dbaddr = baddr; INC_BA(dbaddr); } else { dbaddr = -1; } /* * An SI followed by a field attribute shouldn't be * displayed with a wide cursor. */ if (pbaddr >= 0 && ea_buf[pbaddr].db == DBCS_SI) ea_buf[pbaddr].db = DBCS_NONE; } else { switch (ea_buf[baddr].cc) { case EBC_so: /* Two SO's or SO in DBCS field are invalid. */ if (so || dbcs_field) { trace_ds("DBCS postprocess: invalid SO " "found at %s\n", rcba(baddr)); rc = -1; } else { dbaddr = baddr; INC_BA(dbaddr); } ea_buf[baddr].db = DBCS_NONE; so = True; si = False; break; case EBC_si: /* Two SI's or SI in DBCS field are invalid. */ if (si || dbcs_field) { trace_ds("Postprocess: Invalid SO found " "at %s\n", rcba(baddr)); rc = -1; ea_buf[baddr].db = DBCS_NONE; } else { ea_buf[baddr].db = DBCS_SI; } dbaddr = -1; si = True; so = False; break; default: /* Non-base CS in DBCS subfield is invalid. */ if (so && ea_buf[baddr].cs != CS_BASE) { trace_ds("DBCS postprocess: invalid " "character set found at %s\n", rcba(baddr)); rc = -1; ea_buf[baddr].cs = CS_BASE; } if ((ea_buf[baddr].cs & CS_MASK) == CS_DBCS) { /* * Beginning or continuation of an SA DBCS * subfield. */ if (dbaddr < 0) { dbaddr = baddr; } } else if (!so && !dbcs_field) { /* * End of SA DBCS subfield. */ dbaddr = -1; } if (dbaddr >= 0) { /* * Turn invalid characters into spaces, * silently. */ if ((baddr + ROWS*COLS - dbaddr) % 2) { if (!valid_dbcs_char( ea_buf[pbaddr].cc, ea_buf[baddr].cc)) { ea_buf[pbaddr].cc = EBC_space; ea_buf[baddr].cc = EBC_space; } MAKE_RIGHT(baddr); } else { MAKE_LEFT(baddr); } } else ea_buf[baddr].db = DBCS_NONE; break; } } /* * Check for dead positions. * Turn them into NULLs, silently. */ if (pbaddr >= 0 && IS_LEFT(ea_buf[pbaddr].db) && !IS_RIGHT(ea_buf[baddr].db) && ea_buf[pbaddr].db != DBCS_DEAD) { if (!ea_buf[baddr].fa) { trace_ds("DBCS postprocess: dead position " "at %s\n", rcba(pbaddr)); rc = -1; } ea_buf[pbaddr].cc = EBC_null; ea_buf[pbaddr].db = DBCS_DEAD; } /* Check for SB's, which follow SIs. */ if (pbaddr >= 0 && ea_buf[pbaddr].db == DBCS_SI) ea_buf[baddr].db = DBCS_SB; /* Save this position as the previous and increment. */ pbaddr = baddr; INC_BA(baddr); } while (baddr != last_baddr); return rc; } #endif /*]*/ /* * Process pending input. */ void ps_process(void) { while (run_ta()) ; sms_continue(); #if defined(X3270_FT) /*[*/ /* Process file transfers. */ if (ft_state != FT_NONE && /* transfer in progress */ formatted && /* screen is formatted */ !screen_alt && /* 24x80 screen */ !kybdlock && /* keyboard not locked */ /* magic field */ ea_buf[1919].fa && FA_IS_SKIP(ea_buf[1919].fa)) { ft_cut_data(); } #endif /*]*/ } /* * Tell me if there is any data on the screen. */ Boolean ctlr_any_data(void) { register int i; for (i = 0; i < ROWS*COLS; i++) { if (!IsBlank(ea_buf[i].cc)) return True; } return False; } /* * Clear the text (non-status) portion of the display. Also resets the cursor * and buffer addresses and extended attributes. */ void ctlr_clear(Boolean can_snap) { /* Snap any data that is about to be lost into the trace file. */ if (ctlr_any_data()) { #if defined(X3270_TRACE) /*[*/ if (can_snap && !trace_skipping && toggled(SCREEN_TRACE)) trace_screen(); #endif /*]*/ scroll_save(maxROWS, ever_3270 ? False : True); } #if defined(X3270_TRACE) /*[*/ trace_skipping = False; #endif /*]*/ /* Clear the screen. */ (void) memset((char *)ea_buf, 0, ROWS*COLS*sizeof(struct ea)); ALL_CHANGED; cursor_move(0); buffer_addr = 0; unselect(0, ROWS*COLS); formatted = False; default_fg = 0; default_bg = 0; default_gr = 0; default_ic = 0; sscp_start = 0; } /* * Fill the screen buffer with blanks. */ static void ctlr_blanks(void) { int baddr; for (baddr = 0; baddr < maxROWS*maxCOLS; baddr++) { ea_buf[baddr].cc = EBC_space; } ALL_CHANGED; cursor_move(0); buffer_addr = 0; unselect(0, ROWS*COLS); formatted = False; } /* * Change a character in the 3270 buffer. * Removes any field attribute defined at that location. */ void ctlr_add(int baddr, unsigned char c, unsigned char cs) { unsigned char oc = 0; if (ea_buf[baddr].fa || ((oc = ea_buf[baddr].cc) != c || ea_buf[baddr].cs != cs)) { if (trace_primed && !IsBlank(oc)) { #if defined(X3270_TRACE) /*[*/ if (toggled(SCREEN_TRACE)) trace_screen(); #endif /*]*/ scroll_save(maxROWS, False); trace_primed = False; } if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].cc = c; ea_buf[baddr].cs = cs; ea_buf[baddr].fa = 0; } } /* * Set a field attribute in the 3270 buffer. */ void ctlr_add_fa(int baddr, unsigned char fa, unsigned char cs) { /* Put a null in the display buffer. */ ctlr_add(baddr, EBC_null, cs); /* * Store the new attribute, setting the 'printable' bits so that the * value will be non-zero. */ ea_buf[baddr].fa = FA_PRINTABLE | (fa & FA_MASK); } /* * Change the character set for a field in the 3270 buffer. */ void ctlr_add_cs(int baddr, unsigned char cs) { if (ea_buf[baddr].cs != cs) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].cs = cs; } } /* * Change the graphic rendition of a character in the 3270 buffer. */ void ctlr_add_gr(int baddr, unsigned char gr) { if (ea_buf[baddr].gr != gr) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].gr = gr; if (gr & GR_BLINK) blink_start(); } } /* * Change the foreground color for a character in the 3270 buffer. */ void ctlr_add_fg(int baddr, unsigned char color) { if (!appres.m3279) return; if ((color & 0xf0) != 0xf0) color = 0; if (ea_buf[baddr].fg != color) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].fg = color; } } /* * Change the background color for a character in the 3270 buffer. */ void ctlr_add_bg(int baddr, unsigned char color) { if (!appres.m3279) return; if ((color & 0xf0) != 0xf0) color = 0; if (ea_buf[baddr].bg != color) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].bg = color; } } /* * Change the input control bit for a character in the 3270 buffer. */ static void ctlr_add_ic(int baddr, unsigned char ic) { ea_buf[baddr].ic = ic; } /* * Wrapping bersion of ctlr_bcopy. */ void ctlr_wrapping_memmove(int baddr_to, int baddr_from, int count) { /* * The 'to' region, the 'from' region, or both can wrap the screen, * and can overlap each other. memmove() is smart enough to deal with * overlaps, but not across a screen wrap. * * It's faster to figure out if none of this is true, then do a slow * location-at-a-time version only if it happens. */ if (baddr_from + count <= ROWS*COLS && baddr_to + count <= ROWS*COLS) { ctlr_bcopy(baddr_from, baddr_to, count, True); } else { int i, from, to; for (i = 0; i < count; i++) { if (baddr_to > baddr_from) { /* Shifting right, move left. */ to = (baddr_to + count - 1 - i) % ROWS*COLS; from = (baddr_from + count - 1 - i) % ROWS*COLS; } else { /* Shifting left, move right. */ to = (baddr_to + i) % ROWS*COLS; from = (baddr_from + i) % ROWS*COLS; } ctlr_bcopy(from, to, 1, True); } } } /* * Copy a block of characters in the 3270 buffer, optionally including all of * the extended attributes. (The character set, which is actually kept in the * extended attributes, is considered part of the characters here.) */ void ctlr_bcopy(int baddr_from, int baddr_to, int count, int move_ea) { /* Move the characters. */ if (memcmp((char *) &ea_buf[baddr_from], (char *) &ea_buf[baddr_to], count * sizeof(struct ea))) { (void) memmove(&ea_buf[baddr_to], &ea_buf[baddr_from], count * sizeof(struct ea)); REGION_CHANGED(baddr_to, baddr_to + count); /* * For the time being, if any selected text shifts around on * the screen, unhighlight it. Eventually there should be * logic for preserving the highlight if the *all* of the * selected text moves. */ if (area_is_selected(baddr_to, count)) unselect(baddr_to, count); } /* XXX: What about move_ea? */ } #if defined(X3270_ANSI) /*[*/ /* * Erase a region of the 3270 buffer, optionally clearing extended attributes * as well. */ void ctlr_aclear(int baddr, int count, int clear_ea) { if (memcmp((char *) &ea_buf[baddr], (char *) zero_buf, count * sizeof(struct ea))) { (void) memset((char *) &ea_buf[baddr], 0, count * sizeof(struct ea)); REGION_CHANGED(baddr, baddr + count); if (area_is_selected(baddr, count)) unselect(baddr, count); } /* XXX: What about clear_ea? */ } /* * Scroll the screen 1 row. * * This could be accomplished with ctlr_bcopy() and ctlr_aclear(), but this * operation is common enough to warrant a separate path. */ void ctlr_scroll(void) { int qty = (ROWS - 1) * COLS; Boolean obscured; /* Make sure nothing is selected. (later this can be fixed) */ unselect(0, ROWS*COLS); /* Synchronize pending changes prior to this. */ obscured = screen_obscured(); if (!obscured && screen_changed) screen_disp(False); /* Move ea_buf. */ (void) memmove(&ea_buf[0], &ea_buf[COLS], qty * sizeof(struct ea)); /* Clear the last line. */ (void) memset((char *) &ea_buf[qty], 0, COLS * sizeof(struct ea)); /* Update the screen. */ if (obscured) { ALL_CHANGED; } else { screen_scroll(); } } #endif /*]*/ /* * Note that a particular region of the screen has changed. */ void ctlr_changed(int bstart, int bend) { REGION_CHANGED(bstart, bend); } #if defined(X3270_ANSI) /*[*/ /* * Swap the regular and alternate screen buffers */ void ctlr_altbuffer(Boolean alt) { struct ea *etmp; if (alt != is_altbuffer) { etmp = ea_buf; ea_buf = aea_buf; aea_buf = etmp; is_altbuffer = alt; ALL_CHANGED; unselect(0, ROWS*COLS); /* * There may be blinkers on the alternate screen; schedule one * iteration just in case. */ blink_start(); } } #endif /*]*/ /* * Set or clear the MDT on an attribute */ void mdt_set(int baddr) { int faddr; faddr = find_field_attribute(baddr); if (faddr >= 0 && !(ea_buf[faddr].fa & FA_MODIFY)) { ea_buf[faddr].fa |= FA_MODIFY; if (appres.modified_sel) ALL_CHANGED; } } void mdt_clear(int baddr) { int faddr; faddr = find_field_attribute(baddr); if (faddr >= 0 && (ea_buf[faddr].fa & FA_MODIFY)) { ea_buf[faddr].fa &= ~FA_MODIFY; if (appres.modified_sel) ALL_CHANGED; } } /* * Support for screen-size swapping for scrolling */ void ctlr_shrink(void) { int baddr; for (baddr = 0; baddr < ROWS*COLS; baddr++) { if (!ea_buf[baddr].fa) ea_buf[baddr].cc = visible_control? EBC_space : EBC_null; } ALL_CHANGED; screen_disp(False); } #if defined(X3270_DBCS) /*[*/ /* * DBCS state query. * Returns: * DBCS_NONE: Buffer position is SBCS. * DBCS_LEFT: Buffer position is left half of a DBCS character. * DBCS_RIGHT: Buffer position is right half of a DBCS character. * DBCS_SI: Buffer position is the SI terminating a DBCS subfield (treated * as DBCS_LEFT for wide cursor tests) * DBCS_SB: Buffer position is an SBCS character after an SI (treated as * DBCS_RIGHT for wide cursor tests) * * Takes line-wrapping into account, which probably isn't done all that well. */ enum dbcs_state ctlr_dbcs_state(int baddr) { return dbcs? ea_buf[baddr].db: DBCS_NONE; } #endif /*]*/ /* * Transaction timing. The time between sending an interrupt (PF, PA, Enter, * Clear) and the host unlocking the keyboard is indicated on the status line * to an accuracy of 0.1 seconds. If we don't repaint the screen before we see * the unlock, the time should be fairly accurate. */ static struct timeval t_start; static Boolean ticking = False; static Boolean mticking = False; static unsigned long tick_id; static struct timeval t_want; /* Return the difference in milliseconds between two timevals. */ static long delta_msec(struct timeval *t1, struct timeval *t0) { return (t1->tv_sec - t0->tv_sec) * 1000 + (t1->tv_usec - t0->tv_usec + 500) / 1000; } static void keep_ticking(void) { struct timeval t1; long msec; do { (void) gettimeofday(&t1, (struct timezone *) 0); t_want.tv_sec++; msec = delta_msec(&t_want, &t1); } while (msec <= 0); tick_id = AddTimeOut(msec, keep_ticking); status_timing(&t_start, &t1); } void ticking_start(Boolean anyway) { (void) gettimeofday(&t_start, (struct timezone *) 0); mticking = True; if (!toggled(SHOW_TIMING) && !anyway) return; status_untiming(); if (ticking) RemoveTimeOut(tick_id); ticking = True; tick_id = AddTimeOut(1000, keep_ticking); t_want = t_start; } static void ticking_stop(void) { struct timeval t1; (void) gettimeofday(&t1, (struct timezone *) 0); if (mticking) { sms_accumulate_time(&t_start, &t1); mticking = False; } else { return; } if (!ticking) return; RemoveTimeOut(tick_id); ticking = False; status_timing(&t_start, &t1); } void toggle_showTiming(struct toggle *t _is_unused, enum toggle_type tt _is_unused) { if (!toggled(SHOW_TIMING)) status_untiming(); } /* * No-op toggle. */ void toggle_nop(struct toggle *t _is_unused, enum toggle_type tt _is_unused) { } ibm-3270-3.3.10ga4/tcl3270/globals.h0000644000175000017500000002702011254565704016062 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2005, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes nor the * names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL AND JEFF SPARKES * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL OR JEFF * SPARKES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * globals.h * Common definitions for x3270, c3270, s3270 and tcl3270. */ /* Autoconf settings. */ #include "conf.h" /* autoconf settings */ #if defined(X3270_TN3270E) && !defined(X3270_ANSI) /*[*/ #define X3270_ANSI 1 /* RFC2355 requires NVT mode */ #endif /*]*/ #if defined(HAVE_VASPRINTF) && !defined(_GNU_SOURCE) /*[*/ #define _GNU_SOURCE /* vasprintf isn't POSIX */ #endif /*]*/ /* * OS-specific #defines. Except for the blocking-connect workarounds, these * should be replaced with autoconf probes as soon as possible. */ /* * BLOCKING_CONNECT_ONLY * Use only blocking sockets. */ #if defined(sco) /*[*/ #define BLOCKING_CONNECT_ONLY 1 #endif /*]*/ #if defined(apollo) /*[*/ #define BLOCKING_CONNECT_ONLY 1 #endif /*]*/ /* * Compiler-specific #defines. */ /* '_is_unused' explicitly flags an unused parameter */ #if defined(__GNUC__) /*[*/ #define _is_unused __attribute__((__unused__)) #define printflike(s,f) __attribute__ ((__format__ (__printf__, s, f))) #else /*][*/ #define _is_unused /* nothing */ #define printflike(s, f) /* nothing */ #endif /*]*/ /* * Prerequisite #includes. */ #include /* Unix standard I/O library */ #include /* Other Unix library functions */ #if !defined(_MSC_VER) /*[*/ #include /* Unix system calls */ #endif /*]*/ #include /* Character classes */ #include /* String manipulations */ #include /* Basic system data types */ #if !defined(_MSC_VER) /*[*/ #include /* System time-related data types */ #endif /*]*/ #include /* C library time functions */ #include "localdefs.h" /* {s,tcl,c}3270-specific defines */ /* * MSC glue. */ #if defined(_MSC_VER) /*[*/ #include /* for struct timeval */ extern int gettimeofday(struct timeval *, void *); #define R_OK 4 #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /*]*/ /* * Locale-related definitions. * Note that USE_ICONV can be used to override __STDC_ISO_10646__, so that * development of iconv-based logic can be done on 10646-compliant systems. */ #if defined(__STDC_ISO_10646__) && !defined(USE_ICONV) /*[*/ #define UNICODE_WCHAR 1 #endif /*]*/ #if !defined(_WIN32) && !defined(UNICODE_WCHAR) /*[*/ #undef USE_ICONV #define USE_ICONV 1 #include #endif /*]*/ /* * Unicode UCS-4 characters are (hopefully) 32 bits. * EBCDIC (including DBCS) is (hopefully) 16 bits. */ typedef unsigned int ucs4_t; typedef unsigned short ebc_t; /* * Cancel out contradictory parts. */ #if !defined(X3270_DISPLAY) /*[*/ #undef X3270_KEYPAD #undef X3270_MENUS #endif /*]*/ #if defined(C3270) && defined(X3270_DBCS) && !defined(CURSES_WIDE) /*[*/ #undef X3270_DBCS #endif /*]*/ /* Local process (-e) header files. */ #if defined(X3270_LOCAL_PROCESS) && defined(HAVE_FORKPTY) /*[*/ #define LOCAL_PROCESS 1 #include #if defined(HAVE_PTY_H) /*[*/ #include #endif /*]*/ #if defined(HAVE_LIBUTIL_H) /*[*/ #include #endif /*]*/ #if defined(HAVE_UTIL_H) /*[*/ #include #endif /*]*/ #endif /*]*/ /* Functions we may need to supply. */ #if defined(NEED_STRTOK_R) /*[*/ extern char *strtok_r(char *str, const char *sep, char **last); #endif /*]*/ /* Stop conflicting with curses' COLS, even if we don't link with it. */ #define COLS cCOLS /* Simple global variables */ extern int COLS; /* current */ extern int ROWS; extern int maxCOLS; /* maximum */ extern int maxROWS; extern int defROWS; /* default (EraseWrite) */ extern int defCOLS; extern int altROWS; /* alternate (EraseWriteAlternate) */ extern int altCOLS; #if defined(X3270_DISPLAY) /*[*/ extern Atom a_3270, a_registry, a_encoding; extern XtAppContext appcontext; #endif /*]*/ extern const char *build; extern const char *build_rpq_timestamp; extern const char *build_rpq_version; extern int children; extern char *connected_lu; extern char *connected_type; extern char *current_host; extern unsigned short current_port; #if defined(X3270_DBCS) /*[*/ extern Boolean dbcs; #endif /*]*/ #if defined(X3270_FT) /*[*/ extern int dft_buffersize; #endif /*]*/ extern char *efontname; extern Boolean ever_3270; extern Boolean exiting; #if defined(X3270_DISPLAY) /*[*/ extern Boolean *extended_3270font; extern Font *fid; extern Boolean *font_8bit; #endif /*]*/ extern Boolean flipped; extern char *full_current_host; extern char *full_efontname; #if defined(X3270_DBCS) /*[*/ extern char *full_efontname_dbcs; #endif /*]*/ extern char full_model_name[]; extern char *funky_font; extern char *hostname; #if defined(X3270_DBCS) /*[*/ #if defined(X3270_DISPLAY) /*[*/ extern char *locale_name; #endif /*]*/ #endif /*]*/ extern char luname[]; #if defined(LOCAL_PROCESS) /*[*/ extern Boolean local_process; #endif /*]*/ extern char *model_name; extern int model_num; extern Boolean no_login_host; extern Boolean non_tn3270e_host; extern int ov_cols, ov_rows; extern Boolean ov_auto; extern Boolean passthru_host; extern const char *programname; extern char *qualified_host; extern char *reconnect_host; extern int screen_depth; extern Boolean scroll_initted; #if defined(HAVE_LIBSSL) /*[*/ extern Boolean secure_connection; #endif /*]*/ extern Boolean shifted; extern Boolean ssl_host; extern Boolean *standard_font; extern Boolean std_ds_host; extern char *termtype; extern Widget toplevel; extern Boolean visible_control; extern int *xtra_width; #if defined(X3270_DISPLAY) /*[*/ extern Atom a_delete_me; extern Atom a_save_yourself; extern Atom a_state; extern Display *display; extern Pixmap gray; extern Pixel keypadbg_pixel; extern XrmDatabase rdb; extern Window root_window; extern char *user_title; #endif /*]*/ #if defined(_WIN32) && (defined(C3270) || defined(S3270)) /*[*/ extern char *instdir; extern char *myappdata; #endif /*]*/ #if defined(_WIN32) && defined(C3270) /*[*/ extern int is_installed; #endif /*]*/ /* Data types and complex global variables */ /* connection state */ enum cstate { NOT_CONNECTED, /* no socket, unknown mode */ RESOLVING, /* resolving hostname */ PENDING, /* connection pending */ CONNECTED_INITIAL, /* connected, no mode yet */ CONNECTED_ANSI, /* connected in NVT ANSI mode */ CONNECTED_3270, /* connected in old-style 3270 mode */ CONNECTED_INITIAL_E, /* connected in TN3270E mode, unnegotiated */ CONNECTED_NVT, /* connected in TN3270E mode, NVT mode */ CONNECTED_SSCP, /* connected in TN3270E mode, SSCP-LU mode */ CONNECTED_TN3270E /* connected in TN3270E mode, 3270 mode */ }; extern enum cstate cstate; #define PCONNECTED ((int)cstate >= (int)RESOLVING) #define HALF_CONNECTED (cstate == RESOLVING || cstate == PENDING) #define CONNECTED ((int)cstate >= (int)CONNECTED_INITIAL) #define IN_NEITHER (cstate == CONNECTED_INITIAL) #define IN_ANSI (cstate == CONNECTED_ANSI || cstate == CONNECTED_NVT) #define IN_3270 (cstate == CONNECTED_3270 || cstate == CONNECTED_TN3270E || cstate == CONNECTED_SSCP) #define IN_SSCP (cstate == CONNECTED_SSCP) #define IN_TN3270E (cstate == CONNECTED_TN3270E) #define IN_E (cstate >= CONNECTED_INITIAL_E) /* keyboard modifer bitmap */ #define ShiftKeyDown 0x01 #define MetaKeyDown 0x02 #define AltKeyDown 0x04 /* toggle names */ struct toggle_name { const char *name; int index; }; extern struct toggle_name toggle_names[]; /* extended attributes */ struct ea { unsigned char cc; /* EBCDIC or ASCII character code */ unsigned char fa; /* field attribute, it nonzero */ unsigned char fg; /* foreground color (0x00 or 0xf) */ unsigned char bg; /* background color (0x00 or 0xf) */ unsigned char gr; /* ANSI graphics rendition bits */ unsigned char cs; /* character set (GE flag, or 0..2) */ unsigned char ic; /* input control (DBCS) */ unsigned char db; /* DBCS state */ }; #define GR_BLINK 0x01 #define GR_REVERSE 0x02 #define GR_UNDERLINE 0x04 #define GR_INTENSIFY 0x08 #define CS_MASK 0x03 /* mask for specific character sets */ #define CS_BASE 0x00 /* base character set (X'00') */ #define CS_APL 0x01 /* APL character set (X'01' or GE) */ #define CS_LINEDRAW 0x02 /* DEC line-drawing character set (ANSI) */ #define CS_DBCS 0x03 /* DBCS character set (X'F8') */ #define CS_GE 0x04 /* cs flag for Graphic Escape */ /* translation lists */ struct trans_list { char *name; char *pathname; Boolean is_temp; Boolean from_server; struct trans_list *next; }; extern struct trans_list *trans_list; /* input key type */ enum keytype { KT_STD, KT_GE }; /* state changes */ #define ST_RESOLVING 1 #define ST_HALF_CONNECT 2 #define ST_CONNECT 3 #define ST_3270_MODE 4 #define ST_LINE_MODE 5 #define ST_REMODEL 6 #define ST_PRINTER 7 #define ST_EXITING 8 #define ST_CHARSET 9 #define N_ST 10 /* Naming convention for private actions. */ #define PA_PFX "PA-" /* Shorthand macros */ #define CN ((char *) NULL) #define PN ((XtPointer) NULL) #define Replace(var, value) { Free(var); var = (value); } /* Configuration change masks. */ #define NO_CHANGE 0x0000 /* no change */ #define MODEL_CHANGE 0x0001 /* screen dimensions changed */ #define FONT_CHANGE 0x0002 /* emulator font changed */ #define COLOR_CHANGE 0x0004 /* color scheme or 3278/9 mode changed */ #define SCROLL_CHANGE 0x0008 /* scrollbar snapped on or off */ #define CHARSET_CHANGE 0x0010 /* character set changed */ #define ALL_CHANGE 0xffff /* everything changed */ /* Portability macros */ /* Equivalent of setlinebuf */ #if defined(_IOLBF) /*[*/ #define SETLINEBUF(s) setvbuf(s, (char *)NULL, _IOLBF, BUFSIZ) #else /*][*/ #define SETLINEBUF(s) setlinebuf(s) #endif /*]*/ /* Motorola version of gettimeofday */ #if defined(MOTOROLA) #define gettimeofday(tp,tz) gettimeofday(tp) #endif /* Default DFT file transfer buffer size. */ #if defined(X3270_FT) && !defined(DFT_BUF) /*[*/ #define DFT_BUF (4 * 1024) #endif /*]*/ /* DBCS Preedit Types */ #if defined(X3270_DBCS) /*[*/ #define PT_ROOT "Root" #define PT_OVER_THE_SPOT "OverTheSpot" #define PT_OFF_THE_SPOT "OffTheSpot" #define PT_ON_THE_SPOT "OnTheSpot" #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/keymapc.h0000644000175000017500000000306511254565673016100 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* (Empty) non-display version of keymapc.h */ ibm-3270-3.3.10ga4/tcl3270/idle.c0000644000175000017500000004453711254565704015363 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * idle.c * This module handles the idle command. */ #include "globals.h" #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #include #include #include #include #include #include #include #include #endif /*]*/ #include #include "appres.h" #include "dialogc.h" #include "hostc.h" #include "idlec.h" #include "macrosc.h" #include "objects.h" #include "popupsc.h" #include "resources.h" #include "trace_dsc.h" #include "utilc.h" /* Macros. */ #define MSEC_PER_SEC 1000L #define IDLE_SEC 1L #define IDLE_MIN 60L #define IDLE_HR (60L * 60L) #define IDLE_MS (7L * IDLE_MIN * MSEC_PER_SEC) #if defined(X3270_DISPLAY) /*[*/ #define FILE_WIDTH 300 /* width of file name widgets */ #define MARGIN 3 /* distance from margins to widgets */ #define CLOSE_VGAP 0 /* distance between paired toggles */ #define FAR_VGAP 10 /* distance between single toggles and groups */ #define BUTTON_GAP 5 /* horizontal distance between buttons */ #endif /*]*/ #define BN (Boolean *)NULL /* Externals. */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ extern Pixmap diamond; extern Pixmap no_diamond; extern Pixmap dot; extern Pixmap no_dot; #endif /*]*/ /* Globals. */ Boolean idle_changed = False; char *idle_command = CN; char *idle_timeout_string = CN; enum idle_enum idle_user_enabled = IDLE_DISABLED; /* Statics. */ static Boolean idle_enabled = False; /* validated and user-enabled */ static unsigned long idle_n = 0L; static unsigned long idle_multiplier = IDLE_SEC; static unsigned long idle_id; static unsigned long idle_ms; static Boolean idle_randomize = False; static Boolean idle_ticking = False; static void idle_in3270(Boolean in3270); static int process_timeout_value(char *t); #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static enum idle_enum s_disabled = IDLE_DISABLED; static enum idle_enum s_session = IDLE_SESSION; static enum idle_enum s_perm = IDLE_PERM; static char hms = 'm'; static Boolean fuzz = False; static char s_hours = 'h'; static char s_minutes = 'm'; static char s_seconds = 's'; static Widget idle_dialog, idle_shell, command_value, timeout_value; static Widget enable_toggle, enable_perm_toggle, disable_toggle; static Widget hours_toggle, minutes_toggle, seconds_toggle, fuzz_toggle; static sr_t *idle_sr = (sr_t *)NULL; static void idle_cancel(Widget w, XtPointer client_data, XtPointer call_data); static void idle_popup_callback(Widget w, XtPointer client_data, XtPointer call_data); static void idle_popup_init(void); static int idle_start(void); static void okay_callback(Widget w, XtPointer call_parms, XtPointer call_data); static void toggle_enable(Widget w, XtPointer client_data, XtPointer call_data); static void mark_toggle(Widget w, Pixmap p); static void toggle_hms(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_fuzz(Widget w, XtPointer client_data, XtPointer call_data); #endif /*]*/ /* Initialization. */ void idle_init(void) { char *cmd, *tmo; /* Register for state changes. */ register_schange(ST_3270_MODE, idle_in3270); register_schange(ST_CONNECT, idle_in3270); /* Get values from resources. */ cmd = appres.idle_command; idle_command = cmd? NewString(cmd): CN; tmo = appres.idle_timeout; idle_timeout_string = tmo? NewString(tmo): CN; if (appres.idle_command_enabled) idle_user_enabled = IDLE_PERM; else idle_user_enabled = IDLE_DISABLED; if (idle_user_enabled && idle_command != CN && process_timeout_value(idle_timeout_string) == 0) idle_enabled = True; /* Seed the random number generator (we seem to be the only user). */ #if defined(_WIN32) /*[*/ srand(time(NULL)); #else /*][*/ srandom(time(NULL)); #endif /*]*/ } /* * Process a timeout value: or ~?[0-9]+[HhMmSs] * Returns 0 for success, -1 for failure. * Sets idle_ms and idle_randomize as side-effects. */ static int process_timeout_value(char *t) { char *s = t; char *ptr; if (s == CN || *s == '\0') { idle_ms = IDLE_MS; idle_randomize = True; return 0; } if (*s == '~') { idle_randomize = True; s++; } idle_n = strtoul(s, &ptr, 0); if (idle_n <= 0) goto bad_idle; switch (*ptr) { case 'H': case 'h': idle_multiplier = IDLE_HR; break; case 'M': case 'm': idle_multiplier = IDLE_MIN; break; case 'S': case 's': case '\0': idle_multiplier = IDLE_SEC; break; default: goto bad_idle; } idle_ms = idle_n * idle_multiplier * MSEC_PER_SEC; return 0; bad_idle: popup_an_error("Invalid idle timeout value '%s'", t); idle_ms = 0L; idle_randomize = False; return -1; } /* Called when a host connects or disconnects. */ static void idle_in3270(Boolean in3270 _is_unused) { if (IN_3270) { reset_idle_timer(); } else { /* Not in 3270 mode any more, turn off the timeout. */ if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } /* If the user didn't want it to be permanent, disable it. */ if (idle_user_enabled != IDLE_PERM) idle_user_enabled = IDLE_DISABLED; } } /* * Idle timeout. */ static void idle_timeout(void) { trace_event("Idle timeout\n"); idle_ticking = False; push_idle(idle_command); reset_idle_timer(); } /* * Reset (and re-enable) the idle timer. Called when the user presses a key or * clicks with the mouse. */ void reset_idle_timer(void) { if (idle_enabled) { unsigned long idle_ms_now; if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } idle_ms_now = idle_ms; if (idle_randomize) { idle_ms_now = idle_ms; #if defined(_WIN32) /*[*/ idle_ms_now -= rand() % (idle_ms / 10L); #else /*][*/ idle_ms_now -= random() % (idle_ms / 10L); #endif /*]*/ } #if defined(DEBUG_IDLE_TIMEOUT) /*[*/ trace_event("Setting idle timeout to %lu\n", idle_ms_now); #endif /*]*/ idle_id = AddTimeOut(idle_ms_now, idle_timeout); idle_ticking = True; } } /* * Cancel the idle timer. This is called when there is an error in * processing the idle command. */ void cancel_idle_timer(void) { if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } idle_enabled = False; } char * get_idle_command(void) { return idle_command; } char * get_idle_timeout(void) { return idle_timeout_string; } #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ /* "Idle Command" dialog. */ /* * Pop up the "Idle" menu. * Called back from the "Configure Idle Command" option on the Options menu. */ void popup_idle(void) { char *its; char *s; /* Initialize it. */ if (idle_shell == (Widget)NULL) idle_popup_init(); /* * Split the idle_timeout_string (the raw resource value) into fuzz, * a number, and h/m/s. */ its = NewString(idle_timeout_string); if (its != CN) { if (*its == '~') { fuzz = True; its++; } else { fuzz = False; } s = its; while (isdigit(*s)) s++; switch (*s) { case 'h': case 'H': hms = 'h'; break; case 'm': case 'M': hms = 'm'; break; case 's': case 'S': hms = 's'; break; default: break; } *s = '\0'; } /* Set the resource values. */ dialog_set(&idle_sr, idle_dialog); XtVaSetValues(command_value, XtNstring, idle_command, NULL); XtVaSetValues(timeout_value, XtNstring, its, NULL); mark_toggle(enable_toggle, (idle_user_enabled == IDLE_SESSION)? diamond : no_diamond); mark_toggle(enable_perm_toggle, (idle_user_enabled == IDLE_PERM)? diamond : no_diamond); mark_toggle(disable_toggle, (idle_user_enabled == IDLE_DISABLED)? diamond : no_diamond); mark_toggle(hours_toggle, (hms == 'h') ? diamond : no_diamond); mark_toggle(minutes_toggle, (hms == 'm') ? diamond : no_diamond); mark_toggle(seconds_toggle, (hms == 's') ? diamond : no_diamond); mark_toggle(fuzz_toggle, fuzz ? dot : no_dot); /* Pop it up. */ popup_popup(idle_shell, XtGrabNone); } /* Initialize the idle pop-up. */ static void idle_popup_init(void) { Widget w; Widget cancel_button; Widget command_label, timeout_label; Widget okay_button; /* Prime the dialog functions. */ dialog_set(&idle_sr, idle_dialog); /* Create the menu shell. */ idle_shell = XtVaCreatePopupShell( "idlePopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(idle_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(idle_shell, XtNpopupCallback, idle_popup_callback, (XtPointer)NULL); /* Create the form within the shell. */ idle_dialog = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, idle_shell, NULL); /* Create the file name widgets. */ command_label = XtVaCreateManagedWidget( "command", labelWidgetClass, idle_dialog, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); command_value = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, idle_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNvertDistance, FAR_VGAP, XtNfromHoriz, command_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(command_label, command_value, XtNheight); w = XawTextGetSource(command_value); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_command); dialog_register_sensitivity(command_value, BN, False, BN, False, BN, False); timeout_label = XtVaCreateManagedWidget( "timeout", labelWidgetClass, idle_dialog, XtNfromVert, command_label, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); timeout_value = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, idle_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNdisplayCaret, False, XtNfromVert, command_label, XtNvertDistance, 3, XtNfromHoriz, timeout_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(timeout_label, timeout_value, XtNheight); dialog_match_dimension(command_label, timeout_label, XtNwidth); w = XawTextGetSource(timeout_value); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(timeout_value, BN, False, BN, False, BN, False); /* Create the hour/minute/seconds radio buttons. */ hours_toggle = XtVaCreateManagedWidget( "hours", commandWidgetClass, idle_dialog, XtNfromVert, timeout_value, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(hours_toggle, no_diamond); XtAddCallback(hours_toggle, XtNcallback, toggle_hms, (XtPointer)&s_hours); minutes_toggle = XtVaCreateManagedWidget( "minutes", commandWidgetClass, idle_dialog, XtNfromVert, timeout_value, XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, hours_toggle, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(minutes_toggle, diamond); XtAddCallback(minutes_toggle, XtNcallback, toggle_hms, (XtPointer)&s_minutes); seconds_toggle = XtVaCreateManagedWidget( "seconds", commandWidgetClass, idle_dialog, XtNfromVert, timeout_value, XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, minutes_toggle, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(seconds_toggle, no_diamond); XtAddCallback(seconds_toggle, XtNcallback, toggle_hms, (XtPointer)&s_seconds); /* Create the fuzz toggle. */ fuzz_toggle = XtVaCreateManagedWidget( "fuzz", commandWidgetClass, idle_dialog, XtNfromVert, hours_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(fuzz_toggle, no_dot); XtAddCallback(fuzz_toggle, XtNcallback, toggle_fuzz, (XtPointer)NULL); /* Create enable/disable toggles. */ enable_toggle = XtVaCreateManagedWidget( "enable", commandWidgetClass, idle_dialog, XtNfromVert, fuzz_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(enable_toggle, (idle_user_enabled == IDLE_SESSION)? diamond : no_diamond); XtAddCallback(enable_toggle, XtNcallback, toggle_enable, (XtPointer)&s_session); enable_perm_toggle = XtVaCreateManagedWidget( "enablePerm", commandWidgetClass, idle_dialog, XtNfromVert, enable_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(enable_perm_toggle, (idle_user_enabled == IDLE_PERM)? diamond : no_diamond); XtAddCallback(enable_perm_toggle, XtNcallback, toggle_enable, (XtPointer)&s_perm); disable_toggle = XtVaCreateManagedWidget( "disable", commandWidgetClass, idle_dialog, XtNfromVert, enable_perm_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(disable_toggle, (idle_user_enabled == IDLE_DISABLED)? diamond : no_diamond); XtAddCallback(disable_toggle, XtNcallback, toggle_enable, (XtPointer)&s_disabled); /* Set up the buttons at the bottom. */ okay_button = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, idle_dialog, XtNfromVert, disable_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(okay_button, XtNcallback, okay_callback, (XtPointer)NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, idle_dialog, XtNfromVert, disable_toggle, XtNvertDistance, FAR_VGAP, XtNfromHoriz, okay_button, XtNhorizDistance, BUTTON_GAP, NULL); XtAddCallback(cancel_button, XtNcallback, idle_cancel, 0); } /* Callbacks for all the idle widgets. */ /* Idle pop-up popping up. */ static void idle_popup_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Set the focus to the command widget. */ PA_dialog_focus_action(command_value, (XEvent *)NULL, (String *)NULL, (Cardinal *)NULL); } /* Cancel button pushed. */ static void idle_cancel(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(idle_shell); } /* OK button pushed. */ static void okay_callback(Widget w _is_unused, XtPointer call_parms _is_unused, XtPointer call_data _is_unused) { if (idle_start() == 0) { idle_changed = True; XtPopdown(idle_shell); } } /* Mark a toggle. */ static void mark_toggle(Widget w, Pixmap p) { XtVaSetValues(w, XtNleftBitmap, p, NULL); } /* Hour/minute/second options. */ static void toggle_hms(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ hms = *(char *)client_data; /* Change the widget states. */ mark_toggle(hours_toggle, (hms == 'h') ? diamond : no_diamond); mark_toggle(minutes_toggle, (hms == 'm') ? diamond : no_diamond); mark_toggle(seconds_toggle, (hms == 's') ? diamond : no_diamond); } /* Fuzz option. */ static void toggle_fuzz(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ fuzz = !fuzz; /* Change the widget state. */ mark_toggle(fuzz_toggle, fuzz ? dot : no_dot); } /* Enable/disable options. */ static void toggle_enable(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ idle_user_enabled = *(enum idle_enum *)client_data; /* Change the widget states. */ mark_toggle(enable_toggle, (idle_user_enabled == IDLE_SESSION)? diamond: no_diamond); mark_toggle(enable_perm_toggle, (idle_user_enabled == IDLE_PERM)? diamond: no_diamond); mark_toggle(disable_toggle, (idle_user_enabled == IDLE_DISABLED)? diamond: no_diamond); } /* * Called when the user presses the OK button on the idle command dialog. * Returns 0 for success, -1 otherwise. */ static int idle_start(void) { char *cmd, *tmo, *its; /* Update the globals, so the dialog has the same values next time. */ XtVaGetValues(command_value, XtNstring, &cmd, NULL); Replace(idle_command, NewString(cmd)); XtVaGetValues(timeout_value, XtNstring, &tmo, NULL); its = Malloc(strlen(tmo) + 3); (void) sprintf(its, "%s%s%c", fuzz? "~": "", tmo, hms); Replace(idle_timeout_string, its); /* See if they've turned it off. */ if (!idle_user_enabled) { /* If they're turned it off, cancel the timer. */ idle_enabled = False; if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } return 0; } /* They've turned it on, and possibly reconfigured it. */ /* Validate the timeout. It should work, yes? */ if (process_timeout_value(its) < 0) { return -1; } /* Seems okay. Reset to the new interval and command. */ idle_enabled = True; if (IN_3270) { reset_idle_timer(); } return 0; } #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/unicodec.h0000644000175000017500000000640511254565704016234 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* EBCDIC-to-Unicode options */ #define EUO_NONE 0x00000000 /* no options */ #define EUO_BLANK_UNDEF 0x00000001 /* if undefined, return U+0020 */ #define EUO_UPRIV 0x00000002 /* translate FM/DUP/SUB/EO to UPRIV */ #define EUO_ASCII_BOX 0x00000004 /* use ASCII for box drawing */ extern ucs4_t ebcdic_to_unicode(ebc_t e, unsigned char cs, unsigned flags); extern ucs4_t ebcdic_base_to_unicode(ebc_t e, unsigned flags); extern ebc_t unicode_to_ebcdic(ucs4_t u); extern ebc_t unicode_to_ebcdic_ge(ucs4_t u, Boolean *ge); extern int set_uni(const char *csname, const char **host_codepage, const char **cgcsgid, const char **display_charsets); extern int linedraw_to_unicode(ebc_t e); extern int apl_to_unicode(ebc_t e, unsigned flags); #if !defined(_WIN32) && !defined(UNICODE_WCHAR) /*[*/ extern iconv_t i_u2mb; extern iconv_t i_mb2u; #endif /*]*/ extern int ebcdic_to_multibyte_x(ebc_t ebc, unsigned char cs, char mb[], int mb_len, unsigned flags, ucs4_t *uc); extern int ebcdic_to_multibyte(ebc_t ebc, char mb[], int mb_len); extern int ebcdic_to_multibyte_string(unsigned char *ebc, size_t ebc_len, char mb[], size_t mb_len); extern int mb_max_len(int len); enum me_fail { ME_NONE, /* no error */ ME_INVALID, /* invalid sequence */ ME_SHORT /* incomplete sequence */ }; extern ucs4_t multibyte_to_unicode(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp); extern int multibyte_to_unicode_string(char *mb, size_t mb_len, ucs4_t *ucs4, size_t u_len); extern ebc_t multibyte_to_ebcdic(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp); extern int multibyte_to_ebcdic_string(char *mb, size_t mb_len, unsigned char *ebc, size_t ebc_len, enum me_fail *errorp); extern int unicode_to_multibyte(ucs4_t ucs4, char *mb, size_t mb_len); ibm-3270-3.3.10ga4/tcl3270/configure0000755000175000017500000063164711261527766016221 0ustar bastianbastian#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.63. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell bug-autoconf@gnu.org about your system, echo including any error possibly output before this message. echo This can help us improve future autoconf versions. echo Configuration will now proceed without shell functions. } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="tcl3270.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='LTLIBOBJS LIBOBJS LIBX3270DIR USE_ICONV EGREP GREP CPP tclsh XPRECOMP XANSI host_os host_vendor host_cpu host build_os build_vendor build_cpu build OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking with_iconv enable_ansi enable_apl enable_dbcs enable_ft enable_local_process enable_menus enable_ssl enable_tn3270e enable_trace ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { $as_echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { $as_echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 { (exit 1); exit 1; }; } ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { $as_echo "$as_me: error: working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-ansi leave out NVT (ANSI) support --disable-apl leave out APL character support --disable-dbcs leave out DBCS support --disable-ft leave out file transfer support --disable-local-process leave out local process support --disable-menus leave out menu support --disable-ssl leave out OpenSSL support --disable-tn3270e leave out TN3270E support --disable-trace leave out tracing support Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-iconv ignore __STDC_ISO_10646__ and use iconv() instead Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 $as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 $as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 $as_echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { $as_echo "$as_me:$LINENO: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } if test -z "$ac_file"; then $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 $as_echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi fi fi { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } { $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } { $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest$ac_cv_exeext { $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:$LINENO: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:$LINENO: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 $as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { $as_echo "$as_me:$LINENO: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 $as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 $as_echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:$LINENO: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 $as_echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac case "$host_os" in solaris2*) XANSI=-D__EXTENSIONS__ ;; darwin*) XPRECOMP=-no-cpp-precomp ;; linux*) XANSI=-D_BSD_SOURCE ;; *) XANSI="" ;; esac # Extract the first word of "tclsh", so it can be a program name with args. set dummy tclsh; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_tclsh+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$tclsh"; then ac_cv_prog_tclsh="$tclsh" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_tclsh="yes" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_tclsh" && ac_cv_prog_tclsh="no" fi fi tclsh=$ac_cv_prog_tclsh if test -n "$tclsh"; then { $as_echo "$as_me:$LINENO: result: $tclsh" >&5 $as_echo "$tclsh" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "$tclsh" = no then { { $as_echo "$as_me:$LINENO: error: Can't find tclsh" >&5 $as_echo "$as_me: error: Can't find tclsh" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: checking Tcl version" >&5 $as_echo_n "checking Tcl version... " >&6; } tclver=`echo "puts [set tcl_version]" | tclsh` if test -z "$tclver" then { { $as_echo "$as_me:$LINENO: error: Can't figure out Tcl version" >&5 $as_echo "$as_me: error: Can't figure out Tcl version" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: result: $tclver" >&5 $as_echo "$tclver" >&6; } tclvr=`echo $tclver | tr -d .` ac_config_headers="$ac_config_headers conf.h" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:$LINENO: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 $as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:$LINENO: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in sys/select.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in pty.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in libutil.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in util.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in iconv.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done orig_CPPFLAGS="$CPPFLAGS" for dir in "" -I/usr/include/tcl$tclver /usr/include/tcl$tclvr -I/usr/local/include -I/usr/local/include/tcl$tclver -I/usr/local/include/tcl$tclvr do header_fail=0 if test -n "$dir" then { $as_echo "$as_me:$LINENO: retrying with $dir" >&5 $as_echo "$as_me: retrying with $dir" >&6;} fi CPPFLAGS="$orig_CPPFLAGS $dir" for ac_header in tcl.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else header_fail=1 fi done if test "$header_fail" -eq 0 then break fi unset `echo ac_cv_header_tcl.h | $as_tr_sh` CPPFLAGS="$orig_CPPFLAGS" done if test $header_fail -eq 1 then { { $as_echo "$as_me:$LINENO: error: Can't find tcl header file" >&5 $as_echo "$as_me: error: Can't find tcl header file" >&2;} { (exit 1); exit 1; }; } fi if test "$enable_ssl" != no then orig_CPPFLAGS="$CPPFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/local/ssl /usr/lib/ssl /usr/pkg/sssl /usr/ssl /var/ssl /opt/ssl do header_fail=0 if test -n "$dir" -a ! -d "$dir/include" then header_fail=1 continue fi if test -n "$any" then { $as_echo "$as_me:$LINENO: retrying with -I$dir/include" >&5 $as_echo "$as_me: retrying with -I$dir/include" >&6;} fi if test -n "$dir" then CPPFLAGS="$orig_CPPFLAGS -I$dir/include" fi for ac_header in openssl/ssl.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 $as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 $as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else header_fail=1 fi done if test "$header_fail" -eq 0 then break fi unset `echo ac_cv_header_openssl/ssl_h | $as_tr_sh` CPPFLAGS="$orig_CPPFLAGS" any=1 done if test $header_fail -eq 1 then { $as_echo "$as_me:$LINENO: WARNING: Disabling OpenSSL" >&5 $as_echo "$as_me: WARNING: Disabling OpenSSL" >&2;} enable_ssl="no" unset HAVE_LIBSSL fi fi for ac_func in vasprintf do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 $as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_var=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5 $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } if test "${ac_cv_sys_largefile_source+set}" = set; then $as_echo_n "(cached) " >&6 else while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include /* for off_t */ #include int main () { int (*fp) (FILE *, off_t, int) = fseeko; return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_sys_largefile_source=no; break else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define _LARGEFILE_SOURCE 1 #include /* for off_t */ #include int main () { int (*fp) (FILE *, off_t, int) = fseeko; return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_sys_largefile_source=1; break else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_cv_sys_largefile_source=unknown break done fi { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5 $as_echo "$ac_cv_sys_largefile_source" >&6; } case $ac_cv_sys_largefile_source in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source _ACEOF ;; esac rm -rf conftest* # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug # in glibc 2.1.3, but that breaks too many other things. # If you want fseeko and ftello with glibc, upgrade to a fixed glibc. if test $ac_cv_sys_largefile_source != unknown; then cat >>confdefs.h <<\_ACEOF #define HAVE_FSEEKO 1 _ACEOF fi LDFLAGS="$LDFLAGS -lm" { $as_echo "$as_me:$LINENO: checking for library containing forkpty" >&5 $as_echo_n "checking for library containing forkpty... " >&6; } if test "${ac_cv_search_forkpty+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char forkpty (); int main () { return forkpty (); ; return 0; } _ACEOF for ac_lib in '' util; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_forkpty=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_forkpty+set}" = set; then break fi done if test "${ac_cv_search_forkpty+set}" = set; then : else ac_cv_search_forkpty=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_forkpty" >&5 $as_echo "$ac_cv_search_forkpty" >&6; } ac_res=$ac_cv_search_forkpty if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi for ac_func in forkpty do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 $as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_var=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if test "${ac_cv_search_gethostbyname+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF for ac_lib in '' nsl; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_gethostbyname=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_gethostbyname+set}" = set; then break fi done if test "${ac_cv_search_gethostbyname+set}" = set; then : else ac_cv_search_gethostbyname=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_gethostbyname" >&5 $as_echo "$ac_cv_search_gethostbyname" >&6; } ac_res=$ac_cv_search_gethostbyname if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:$LINENO: checking for library containing socket" >&5 $as_echo_n "checking for library containing socket... " >&6; } if test "${ac_cv_search_socket+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char socket (); int main () { return socket (); ; return 0; } _ACEOF for ac_lib in '' socket; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_socket=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_socket+set}" = set; then break fi done if test "${ac_cv_search_socket+set}" = set; then : else ac_cv_search_socket=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_socket" >&5 $as_echo "$ac_cv_search_socket" >&6; } ac_res=$ac_cv_search_socket if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi ORIG_LDFLAGS="$LDFLAGS" for dir in "" -L/usr/local/lib do LDFLAGS="$ORIG_LDFLAGS $dir" tcl_failed=0 if test -n "$dir" then { $as_echo "$as_me:$LINENO: retrying with $dir" >&5 $as_echo "$as_me: retrying with $dir" >&6;} fi as_ac_Lib=`$as_echo "ac_cv_lib_tcl$tclver''_Tcl_Init" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for Tcl_Init in -ltcl$tclver" >&5 $as_echo_n "checking for Tcl_Init in -ltcl$tclver... " >&6; } if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltcl$tclver $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char Tcl_Init (); int main () { return Tcl_Init (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_Lib=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Lib=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi ac_res=`eval 'as_val=${'$as_ac_Lib'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_Lib'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_LIBtcl$tclver" | $as_tr_cpp` 1 _ACEOF LIBS="-ltcl$tclver $LIBS" else tcl_failed=1 fi if test "$tcl_failed" -eq 0 then break fi unset `echo ac_cv_lib_tcl${tclver}___Tcl_Init | $as_tr_sh` tcl_failed=0 as_ac_Lib=`$as_echo "ac_cv_lib_tcl$tclvr''_Tcl_Init" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for Tcl_Init in -ltcl$tclvr" >&5 $as_echo_n "checking for Tcl_Init in -ltcl$tclvr... " >&6; } if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltcl$tclvr $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char Tcl_Init (); int main () { return Tcl_Init (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_Lib=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Lib=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi ac_res=`eval 'as_val=${'$as_ac_Lib'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_Lib'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_LIBtcl$tclvr" | $as_tr_cpp` 1 _ACEOF LIBS="-ltcl$tclvr $LIBS" else tcl_failed=1 fi if test "$tcl_failed" = 0 then break fi unset `echo ac_cv_lib_tcl${tclvr}___Tcl_Init | $as_tr_sh` LDFLAGS="$ORIG_LDFLAGS" done if test "$tcl_failed" = 1 then { { $as_echo "$as_me:$LINENO: error: Can't find TCL library" >&5 $as_echo "$as_me: error: Can't find TCL library" >&2;} { (exit 1); exit 1; }; } fi if test "$enable_ssl" != no then orig_LDFLAGS="$LDFLAGS" unset any for dir in "$with_ssl" /usr/local /usr/pkg /usr /var /opt do lib_fail=0 if test -n "$dir" -a ! -d "$dir/ssl/lib" then lib_fail=1 continue fi if test -n "$any" then { $as_echo "$as_me:$LINENO: retrying with -L$dir/ssl/lib" >&5 $as_echo "$as_me: retrying with -L$dir/ssl/lib" >&6;} fi if test -n "$dir" then LDFLAGS="$orig_LDFLAGS -L$dir/ssl/lib" fi { $as_echo "$as_me:$LINENO: checking for CRYPTO_malloc in -lcrypto" >&5 $as_echo_n "checking for CRYPTO_malloc in -lcrypto... " >&6; } if test "${ac_cv_lib_crypto_CRYPTO_malloc+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char CRYPTO_malloc (); int main () { return CRYPTO_malloc (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_crypto_CRYPTO_malloc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_crypto_CRYPTO_malloc=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_CRYPTO_malloc" >&5 $as_echo "$ac_cv_lib_crypto_CRYPTO_malloc" >&6; } if test "x$ac_cv_lib_crypto_CRYPTO_malloc" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBCRYPTO 1 _ACEOF LIBS="-lcrypto $LIBS" else lib_fail=1 fi if test "$lib_fail" -eq 0 then { $as_echo "$as_me:$LINENO: checking for SSL_new in -lssl" >&5 $as_echo_n "checking for SSL_new in -lssl... " >&6; } if test "${ac_cv_lib_ssl_SSL_new+set}" = set; then $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lssl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char SSL_new (); int main () { return SSL_new (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_lib_ssl_SSL_new=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ssl_SSL_new=no fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_new" >&5 $as_echo "$ac_cv_lib_ssl_SSL_new" >&6; } if test "x$ac_cv_lib_ssl_SSL_new" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBSSL 1 _ACEOF LIBS="-lssl $LIBS" else lib_fail=1 fi fi if test "$lib_fail" -eq 0 then break fi unset `echo ac_cv_lib_crypto_CRYPTO_malloc | $as_tr_sh` unset `echo ac_cv_lib_ssl_SSL_new | $as_tr_sh` LDFLAGS="$orig_LDFLAGS" any=1 done if test $lib_fail -eq 1 then { $as_echo "$as_me:$LINENO: WARNING: Disabling OpenSSL" >&5 $as_echo "$as_me: WARNING: Disabling OpenSSL" >&2;} enable_ssl="no" fi fi { $as_echo "$as_me:$LINENO: checking whether __STDC_ISO_10646__ is declared" >&5 $as_echo_n "checking whether __STDC_ISO_10646__ is declared... " >&6; } if test "${ac_cv_have_decl___STDC_ISO_10646__+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { #ifndef __STDC_ISO_10646__ (void) __STDC_ISO_10646__; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl___STDC_ISO_10646__=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl___STDC_ISO_10646__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl___STDC_ISO_10646__" >&5 $as_echo "$ac_cv_have_decl___STDC_ISO_10646__" >&6; } if test "x$ac_cv_have_decl___STDC_ISO_10646__" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL___STDC_ISO_10646__ 1 _ACEOF unset unkw else cat >>confdefs.h <<_ACEOF #define HAVE_DECL___STDC_ISO_10646__ 0 _ACEOF unkw=1 fi # Check whether --with-iconv was given. if test "${with_iconv+set}" = set; then withval=$with_iconv; fi case "$with_iconv" in no|"") ;; yes|*) cat >>confdefs.h <<\_ACEOF #define USE_ICONV 1 _ACEOF unkw=1 ;; esac { $as_echo "$as_me:$LINENO: checking for library containing libiconv" >&5 $as_echo_n "checking for library containing libiconv... " >&6; } if test "${ac_cv_search_libiconv+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char libiconv (); int main () { return libiconv (); ; return 0; } _ACEOF for ac_lib in '' iconv; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_libiconv=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_libiconv+set}" = set; then break fi done if test "${ac_cv_search_libiconv+set}" = set; then : else ac_cv_search_libiconv=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_libiconv" >&5 $as_echo "$ac_cv_search_libiconv" >&6; } ac_res=$ac_cv_search_libiconv if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else { $as_echo "$as_me:$LINENO: checking for library containing iconv" >&5 $as_echo_n "checking for library containing iconv... " >&6; } if test "${ac_cv_search_iconv+set}" = set; then $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char iconv (); int main () { return iconv (); ; return 0; } _ACEOF for ac_lib in '' iconv; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then ac_cv_search_iconv=$ac_res else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_iconv+set}" = set; then break fi done if test "${ac_cv_search_iconv+set}" = set; then : else ac_cv_search_iconv=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:$LINENO: result: $ac_cv_search_iconv" >&5 $as_echo "$ac_cv_search_iconv" >&6; } ac_res=$ac_cv_search_iconv if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else if test "$unkw"; then { { $as_echo "$as_me:$LINENO: error: \"No iconv library function\"" >&5 $as_echo "$as_me: error: \"No iconv library function\"" >&2;} { (exit 1); exit 1; }; }; fi fi fi LIBX3270DIR='${sysconfdir}/x3270' # Check whether --enable-ansi was given. if test "${enable_ansi+set}" = set; then enableval=$enable_ansi; fi case "$enable_ansi" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_ANSI 1 _ACEOF ;; esac # Check whether --enable-apl was given. if test "${enable_apl+set}" = set; then enableval=$enable_apl; fi case "$enable_apl" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_APL 1 _ACEOF ;; esac # Check whether --enable-dbcs was given. if test "${enable_dbcs+set}" = set; then enableval=$enable_dbcs; fi case "$enable_dbcs" in no) ;; *) cat >>confdefs.h <<\_ACEOF #define X3270_DBCS 1 _ACEOF ;; esac # Check whether --enable-ft was given. if test "${enable_ft+set}" = set; then enableval=$enable_ft; fi case "$enable_ft" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_FT 1 _ACEOF ;; esac # Check whether --enable-local_process was given. if test "${enable_local_process+set}" = set; then enableval=$enable_local_process; fi case "$enable_local_process" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_LOCAL_PROCESS 1 _ACEOF ;; esac # Check whether --enable-menus was given. if test "${enable_menus+set}" = set; then enableval=$enable_menus; fi case "$enable_menus" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_MENUS 1 _ACEOF ;; esac # Check whether --enable-ssl was given. if test "${enable_ssl+set}" = set; then enableval=$enable_ssl; fi # Check whether --enable-tn3270e was given. if test "${enable_tn3270e+set}" = set; then enableval=$enable_tn3270e; fi case "$enable_tn3270e" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_TN3270E 1 _ACEOF ;; esac # Check whether --enable-trace was given. if test "${enable_trace+set}" = set; then enableval=$enable_trace; fi case "$enable_trace" in ""|yes) cat >>confdefs.h <<\_ACEOF #define X3270_TRACE 1 _ACEOF ;; esac ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { $as_echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { $as_echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "conf.h") CONFIG_HEADERS="$CONFIG_HEADERS conf.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 $as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=' ' ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\).*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\).*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 $as_echo "$as_me: error: could not setup config files machinery" >&2;} { (exit 1); exit 1; }; } _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 $as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 $as_echo "$as_me: error: could not setup config headers machinery" >&2;} { (exit 1); exit 1; }; } fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ac_file_inputs="$ac_file_inputs '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 $as_echo "$as_me: error: could not create -" >&2;} { (exit 1); exit 1; }; } fi ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 $as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi ibm-3270-3.3.10ga4/tcl3270/rpq.c0000644000175000017500000005044111254565704015237 0ustar bastianbastian/* * Copyright (c) 2005-2009, Paul Mattes. * Copyright (c) 2004-2005, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * rpq.c * RPQNAMES structured field support. * */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #include #include "3270ds.h" #include "appres.h" #include "popupsc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" /* Statics */ static Boolean select_rpq_terms(void); static int get_rpq_timezone(void); static int get_rpq_user(unsigned char buf[], const int buflen); #if !defined(_WIN32) /*[*/ static int get_rpq_address(unsigned char buf[], const int buflen); #endif /*]*/ static void rpq_warning(const char *fmt, ...); static void rpq_dump_warnings(void); static Boolean rpq_complained = False; #if !defined(_WIN32) /*[*/ static Boolean omit_due_space_limit = False; #endif /*]*/ /* * Define symbolic names for RPQ self-defining terms. * (Numbering is arbitrary, but must be 0-255 inclusive. * Do not renumber existing items because these identify the * self-defining term to the mainframe software. Changing pre-existing * values will possibly impact host based software. */ #define RPQ_ADDRESS 0 #define RPQ_TIMESTAMP 1 #define RPQ_TIMEZONE 2 #define RPQ_USER 3 #define RPQ_VERSION 4 /* * Define a table of RPQ self-defing terms. * NOTE: Synonyms could be specified by coding different text items but using * the same "id" value. * Items should be listed in alphabetical order by "text" name so if the user * specifies abbreviations, they work in a predictable manner. E.g., "TIME" * should match TIMESTAMP instead of TIMEZONE. */ static struct rpq_keyword { Boolean omit; /* set from X3270RPQ="kw1:kw2..." environment var */ int oride; /* displacement */ const Boolean allow_oride; const unsigned char id; const char *text; } rpq_keywords[] = { {True, 0, True, RPQ_ADDRESS, "ADDRESS"}, {True, 0, False, RPQ_TIMESTAMP, "TIMESTAMP"}, {True, 0, True, RPQ_TIMEZONE, "TIMEZONE"}, {True, 0, True, RPQ_USER, "USER"}, {True, 0, False, RPQ_VERSION, "VERSION"}, }; #define NS_RPQ (sizeof(rpq_keywords)/sizeof(rpq_keywords[0])) static char *x3270rpq; /* * RPQNAMES query reply. */ void do_qr_rpqnames(void) { #define TERM_PREFIX_SIZE 2 /* Each term has 1 byte length and 1 byte id */ unsigned char *rpql, *p_term; unsigned j; int term_id,i,x; int remaining = 254; /* maximum data area for rpqname reply */ Boolean omit_due_space_limit; trace_ds("> QueryReply(RPQNames)\n"); /* * Allocate enough space for the maximum allowed item. * By pre-allocating the space I don't have to worry about the * possibility of addresses changing. */ space3270out(4+4+1+remaining); /* Maximum space for an RPQNAME item */ SET32(obptr, 0); /* Device number, 0 = All */ SET32(obptr, 0); /* Model number, 0 = All */ rpql = obptr++; /* Save address to place data length. */ /* * Create fixed length portion - program id: x3270 * This is known 8-bit text so we can use asc2ebc0 to translate it. */ for (j = 0; j < 5; j++) { *obptr++ = asc2ebc0[(int)"x3270"[j]]; remaining--; } /* Create user selected variable-length self-defining terms. */ select_rpq_terms(); for (j=0; j remaining); if (!omit_due_space_limit) { for (i = 0; i < x; i++) { *obptr++ = asc2ebc0[(int)(*(build_rpq_version+i) & 0xff)]; } } break; case RPQ_TIMESTAMP: /* program build time (yyyymmddhhmmss bcd) */ x = strlen(build_rpq_timestamp); omit_due_space_limit = ((x+1)/2 > remaining); if (!omit_due_space_limit) { for (i=0; i < x; i+=2) { *obptr++ = ((*(build_rpq_timestamp+i) - '0') << 4) + (*(build_rpq_timestamp+i+1) - '0'); } } break; default: /* unsupported ID, (can't happen) */ Error("Unsupported RPQ term"); break; } if (omit_due_space_limit) rpq_warning("RPQ %s term omitted due to insufficient " "space", rpq_keywords[j].text); /* * The item is built, insert item length as needed and * adjust space remaining. * obptr now points at "next available byte". */ x = obptr-p_term; if (x > TERM_PREFIX_SIZE) { *p_term = x; remaining -= x; /* This includes length and id fields, correction below */ } else { /* We didn't add an item after all, reset pointer. */ obptr = p_term; } /* * When we calculated the length of the term, a few lines * above, that length included the term length and term id * prefix too. (TERM_PREFIX_SIZE) * But just prior to the switch statement, we decremented the * remaining space by that amount so subsequent routines would * be told how much space they have for their data, without * each routine having to account for that prefix. * That means the remaining space is actually more than we * think right now, by the length of the prefix.... add that * back so the remaining space is accurate. * * And... if there was no item added, we still have to make the * same correction to "claim back" the term prefix area so it * may be used by the next possible term. */ remaining += TERM_PREFIX_SIZE; } /* Fill in overall length of RPQNAME info */ *rpql = (obptr - rpql); rpq_dump_warnings(); } /* Utility function used by the RPQNAMES query reply. */ static Boolean select_rpq_terms(void) { size_t i; unsigned j,k; int len; char *uplist; char *p1, *p2; char *kw; Boolean is_no_form; /* See if the user wants any rpqname self-defining terms returned */ if ((x3270rpq = getenv("X3270RPQ")) == NULL) return False; /* * Make an uppercase copy of the user selections so I can match * keywords more easily. * If there are override values, I'll get those from the ORIGINAL * string so upper/lower case is preserved as necessary. */ uplist = (char *) malloc(strlen(x3270rpq)+1); assert(uplist != NULL); p1 = uplist; p2 = x3270rpq; do { *p1++ = toupper(*p2++); } while (*p2); *p1 = '\0'; for (i=0; i 2) && (strncmp("NO", kw, 2) == 0)); if (is_no_form) { kw+=2; /* skip "NO" prefix for matching keyword */ len-=2; /* adjust keyword length */ } for (j=0; j < NS_RPQ; j++) { if (strncmp(kw, rpq_keywords[j].text, len) == 0) { rpq_keywords[j].omit = is_no_form; if (*p1 == '=') { if (rpq_keywords[j].allow_oride) { rpq_keywords[j].oride = p1-uplist+1; } else { rpq_warning("RPQ %s term " "override " "ignored", p1); } } break; } } if (j >= NS_RPQ) { /* unrecognized keyword... */ if (strcmp(kw,"ALL") == 0) { for (k=0; k < NS_RPQ; k++) rpq_keywords[k].omit = is_no_form; } else { rpq_warning("RPQ term \"%s\" is unrecognized", kw); } } } free(uplist); /* * Return to caller with indication (T/F) of any items * to be selected (T) or are all terms suppressed? (F) */ for (i=0; i id != RPQ_TIMEZONE; kw++) { } /* Is there a user override? */ if ((kw->allow_oride) && (kw->oride > 0)) { ldiv_t hhmm; long x; p1 = x3270rpq+kw->oride; x = strtol(p1, &p2, 10); if (errno != 0) { rpq_warning("RPQ TIMEZONE term is invalid - " "use +/-hhmm"); return 4; } if ((*p2 != '\0') && (*p2 != ':') && (!isspace(*p2))) return 4; hhmm = ldiv(x, 100L); if (hhmm.rem > 59L) { rpq_warning("RPQ TIMEZONE term is invalid - " "use +/-hhmm"); return 4; } delta = (labs(hhmm.quot) * 60L) + hhmm.rem; if (hhmm.quot < 0L) delta = -delta; } else { /* * No override specified, try to get information from the * system. */ if ((here = time(NULL)) == (time_t)(-1)) { rpq_warning("RPQ: Unable to determine workstation " "local time"); return 1; } memcpy(&here_tm, localtime(&here), sizeof(struct tm)); if ((utc_tm = gmtime(&here)) == NULL) { rpq_warning("RPQ: Unable to determine workstation UTC " "time"); return 2; } /* * Do not take Daylight Saving Time into account. * We just want the "raw" time difference. */ here_tm.tm_isdst = 0; utc_tm->tm_isdst = 0; delta = difftime(mktime(&here_tm), mktime(utc_tm)) / 60L; } /* sanity check: difference cannot exceed +/- 12 hours */ if (labs(delta) > 720L) rpq_warning("RPQ timezone exceeds 12 hour UTC offset"); return (labs(delta) > 720L)? 3 : (int) delta; } /* Utility function used by the RPQNAMES query reply. */ static int get_rpq_user(unsigned char buf[], const int buflen) { /* * Text may be specified in one of two ways, but not both. * An environment variable provides the user interface: * - X3270RPQ: Keyword USER= * * NOTE: If the string begins with 0x then no ASCII/EBCDIC * translation is done. The hex characters will be sent as true hex * data. E.g., X3270RPQ="user=0x ab 12 EF" will result in 3 bytes * sent as 0xAB12EF. White space is optional in hex data format. * When hex format is required, the 0x prefix must be the first two * characters of the string. E.g., X3270RPQ="user= 0X AB" will * result in 6 bytes sent as 0x40F0E740C1C2 because the text is * accepted "as is" then translated from ASCII to EBCDIC. */ const char *rpqtext = CN; int x = 0; struct rpq_keyword *kw; char *sbuf, *sbuf0; const char *s; enum me_fail error; int xlen; /* id isn't necessarily the table index... locate item */ for (kw = &rpq_keywords[0]; kw -> id != RPQ_USER; kw++) { } if ((!kw->allow_oride) || (kw->oride <= 0)) return 0; rpqtext = x3270rpq + kw->oride; if ((*rpqtext == '0') && (toupper(*(rpqtext+1)) == 'X')) { /* text has 0x prefix... interpret as hex, no translation */ char hexstr[512]; /* more than enough room to copy */ char * p_h; char c; int x; Boolean is_first_hex_digit; p_h = &hexstr[0]; /* copy the hex digits from X3270RPQ, removing white * space, and using all upper case for the hex digits a-f. */ rpqtext += 2; /* skip 0x prefix */ for (*p_h = '\0'; *rpqtext; rpqtext++) { c = toupper(*rpqtext); if ((c==':') || (c=='\0')) break; if (isspace(c)) continue; /* skip white space */ if (!isxdigit(c)) { rpq_warning("RPQ USER term has non-hex " "character"); break; } x = (p_h - hexstr)/2; if (x >= buflen) { x = buflen; rpq_warning("RPQ USER term truncated after %d " "bytes", x); break; /* too long, truncate */ } *p_h++ = c; /* copy (upper case) character */ *p_h = '\0'; /* keep string properly terminated */ } /* * 'hexstr' is now a character string of 0-9, A-F only, * (a-f were converted to upper case). * There may be an odd number of characters, implying a leading * 0. The string is also known to fit in the area specified. */ /* hex digits are handled in pairs, set a flag so we keep track * of which hex digit we're currently working with. */ is_first_hex_digit = ((strlen(hexstr) % 2) == 0); if (!is_first_hex_digit) rpq_warning("RPQ USER term has odd number of hex " "digits"); *buf = 0; /* initialize first byte for possible implied leading zero */ for (p_h = &hexstr[0]; *p_h; p_h++) { int n; /* convert the hex character to a value 0-15 */ n = isdigit(*p_h) ? *p_h - '0' : *p_h - 'A' + 10; if (is_first_hex_digit) { *buf = n << 4; } else { *buf++ |= n; } is_first_hex_digit = !is_first_hex_digit; } return (strlen(hexstr)+1)/2; } /* plain text - subject to ascii/ebcdic translation */ /* * Copy the source string to a temporary buffer, terminating on * ':', unless preceded by '\'. */ sbuf = sbuf0 = Malloc(strlen(rpqtext) + 1); for (s = rpqtext; *s && (*s != ':'); s++) { if (*s == '\\' && *(s + 1)) { *sbuf++ = *++s; } else *sbuf++ = *s; } *sbuf = '\0'; /* Translate multibyte to EBCDIC in the target buffer. */ xlen = multibyte_to_ebcdic_string(sbuf0, strlen(sbuf0), buf, buflen, &error); if (xlen < 0) { rpq_warning("RPQ USER term translation error"); if (buflen) { *buf = asc2ebc0['?']; x = 1; } } else { x = xlen; } Free(sbuf0); return x; } #if !defined(_WIN32) /*[*/ static int get_rpq_address(unsigned char *buf, const int maxlen) { struct rpq_keyword *kw; int x = 0; if (maxlen < 2) { omit_due_space_limit = True; return 0; } /* id isn't necessarily the table index... locate item */ for (kw = &rpq_keywords[0]; kw->id != RPQ_ADDRESS; kw++) { } /* Is there a user override? */ if ((kw->allow_oride) && (kw->oride > 0)) { char *p1, *p2, *rpqtext; #if defined(AF_INET6) /*[*/ struct addrinfo *res; int ga_err; #else /*][*/ in_addr_t ia; #endif /*]*/ p1 = x3270rpq + kw->oride; rpqtext = (char *) malloc(strlen(p1) + 1); for (p2=rpqtext;*p1; p2++) { if (*p1 == ':') break; if ((*p1 == '\\') && (*(p1+1) == ':')) p1++; *p2 = *p1; p1++; } *p2 = '\0'; #if defined(AF_INET6) /*[*/ ga_err = getaddrinfo(rpqtext, NULL, NULL, &res); if (ga_err == 0) { void *src = NULL; int len = 0; SET16(buf, res->ai_family); x += 2; switch (res->ai_family) { case AF_INET: src = &((struct sockaddr_in *)res->ai_addr)->sin_addr; len = sizeof(struct in_addr); break; case AF_INET6: src = &((struct sockaddr_in6 *)res->ai_addr)->sin6_addr; len = sizeof(struct in6_addr); break; default: rpq_warning("RPQ ADDRESS term has " "unrecognized family %u", res->ai_family); break; } if (x + len <= maxlen) { x += len; (void) memcpy(buf, src, len); } else { rpq_warning("RPQ ADDRESS term incomplete due " "to space limit"); } /* Give back storage obtained by getaddrinfo */ freeaddrinfo(res); } else { rpq_warning("RPQ: can't resolve '%s': %s", rpqtext, gai_strerror(ga_err)); } #else /*][*/ /* * No IPv6 support. * Use plain old inet_addr() and gethostbyname(). */ ia = inet_addr(rpqtext); if (ia == htonl(INADDR_NONE)) { struct hostent *h; h = gethostbyname(rpqtext); if (h == NULL || h->h_addrtype != AF_INET) { rpq_warning("RPQ: gethostbyname error"); return 0; } (void) memcpy(&ia, h->h_addr_list[0], h->h_length); } SET16(buf, AF_INET); x += 2; if (x + sizeof(in_addr_t) <= maxlen) { (void) memcpy(buf, &ia, sizeof(in_addr_t)); x += sizeof(in_addr_t); } else { rpq_warning("RPQ ADDRESS term incomplete due to " "space limit"); } #endif /*]*/ free(rpqtext); } else { /* No override... get our address from the actual socket */ union { struct sockaddr sa; struct sockaddr_in sa4; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sa6; #endif /*]*/ } u; int addrlen = sizeof(u); void *src = NULL; int len = 0; if (net_getsockname(&u, &addrlen) < 0) return 0; SET16(buf, u.sa.sa_family); x += 2; switch (u.sa.sa_family) { case AF_INET: src = &u.sa4.sin_addr; len = sizeof(struct in_addr); break; #if defined(AF_INET6) /*[*/ case AF_INET6: src = &u.sa6.sin6_addr; len = sizeof(struct in6_addr); break; #endif /*]*/ default: rpq_warning("RPQ ADDRESS term has unrecognized " "family %u", u.sa.sa_family); break; } if (x + len <= maxlen) { (void) memcpy(buf, src, len); x += len; } else { rpq_warning("RPQ ADDRESS term incomplete due to space " "limit"); } } return x; } #endif /*]*/ #define RPQ_WARNBUF_SIZE 1024 static char *rpq_warnbuf = CN; static int rpq_wbcnt = 0; static void rpq_warning(const char *fmt, ...) { va_list a; /* Only accumulate RPQ warnings if they * have not been displayed already. */ if (!rpq_complained) { va_start(a, fmt); if (rpq_warnbuf == CN) rpq_warnbuf = Malloc(RPQ_WARNBUF_SIZE); if (rpq_wbcnt < RPQ_WARNBUF_SIZE) { *(rpq_warnbuf + rpq_wbcnt++) = '\n'; *(rpq_warnbuf + rpq_wbcnt) = '\0'; } if (rpq_wbcnt < RPQ_WARNBUF_SIZE) { rpq_wbcnt += vsnprintf(rpq_warnbuf + rpq_wbcnt, RPQ_WARNBUF_SIZE - rpq_wbcnt, fmt, a); } va_end(a); } } static void rpq_dump_warnings(void) { /* If there's something to complain about, only complain once. */ if (!rpq_complained && rpq_wbcnt) { popup_an_error("%s", rpq_warnbuf); rpq_wbcnt = 0; rpq_complained = True; free(rpq_warnbuf); rpq_warnbuf = CN; } } ibm-3270-3.3.10ga4/tcl3270/charsetc.h0000644000175000017500000000406211254565704016234 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * charsetc.h * Global declarations for charset.c */ extern Boolean charset_changed; extern unsigned long cgcsgid; #if defined(X3270_DBCS) /*[*/ extern unsigned long cgcsgid_dbcs; #endif /*]*/ extern char *default_display_charset; enum cs_result { CS_OKAY, CS_NOTFOUND, CS_BAD, CS_PREREQ, CS_ILLEGAL }; extern enum cs_result charset_init(char *csname); extern char *get_charset_name(void); extern char *get_host_codepage(void); extern void charset_list(void); ibm-3270-3.3.10ga4/tcl3270/ft_dft_ds.h0000644000175000017500000000506011254565704016373 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* DFT-style file transfer codes. */ /* Host requests. */ #define TR_OPEN_REQ 0x0012 /* open request */ #define TR_CLOSE_REQ 0x4112 /* close request */ #define TR_SET_CUR_REQ 0x4511 /* set cursor request */ #define TR_GET_REQ 0x4611 /* get request */ #define TR_INSERT_REQ 0x4711 /* insert request */ #define TR_DATA_INSERT 0x4704 /* data to insert */ /* PC replies. */ #define TR_GET_REPLY 0x4605 /* data for get */ #define TR_NORMAL_REPLY 0x4705 /* insert normal reply */ #define TR_ERROR_REPLY 0x08 /* error reply (low 8 bits) */ #define TR_CLOSE_REPLY 0x4109 /* close acknowledgement */ /* Other headers. */ #define TR_RECNUM_HDR 0x6306 /* record number header */ #define TR_ERROR_HDR 0x6904 /* error header */ #define TR_NOT_COMPRESSED 0xc080 /* data not compressed */ #define TR_BEGIN_DATA 0x61 /* beginning of data */ /* Error codes. */ #define TR_ERR_EOF 0x2200 /* get past end of file */ #define TR_ERR_CMDFAIL 0x0100 /* command failed */ ibm-3270-3.3.10ga4/tcl3270/ft.c0000644000175000017500000015771211256026744015055 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * ft.c * This module handles the file transfer dialogs. */ #include "globals.h" #if defined(X3270_FT) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #include #include #include #include #include #include #include #include #endif /*]*/ #include #include "appres.h" #include "actionsc.h" #include "charsetc.h" #include "ft_cutc.h" #include "ft_dftc.h" #include "ftc.h" #include "dialogc.h" #include "hostc.h" #if defined(C3270) || defined(WC3270) /*[*/ #include "icmdc.h" #endif /*]*/ #include "kybdc.h" #include "macrosc.h" #include "objects.h" #include "popupsc.h" #include "screenc.h" #include "tablesc.h" #include "telnetc.h" #include "utilc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ /* Macros. */ #define eos(s) strchr((s), '\0') #if defined(X3270_DISPLAY) /*[*/ #define FILE_WIDTH 300 /* width of file name widgets */ #define MARGIN 3 /* distance from margins to widgets */ #define CLOSE_VGAP 0 /* distance between paired toggles */ #define FAR_VGAP 10 /* distance between single toggles and groups */ #define BUTTON_GAP 5 /* horizontal distance between buttons */ #define COLUMN_GAP 40 /* distance between columns */ #endif /*]*/ #define BN (Boolean *)NULL /* Externals. */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ extern Pixmap diamond; extern Pixmap no_diamond; extern Pixmap null; extern Pixmap dot; extern Pixmap no_dot; #endif /*]*/ /* Globals. */ enum ft_state ft_state = FT_NONE; /* File transfer state */ char *ft_local_filename; /* Local file to transfer to/from */ FILE *ft_local_file = (FILE *)NULL; /* File descriptor for local file */ Boolean ft_last_cr = False; /* CR was last char in local file */ Boolean ascii_flag = True; /* Convert to ascii */ Boolean cr_flag = True; /* Add crlf to each line */ Boolean remap_flag = True; /* Remap ASCII<->EBCDIC */ unsigned long ft_length = 0; /* Length of transfer */ /* Statics. */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Widget ft_dialog, ft_shell, local_file, host_file; static Widget lrecl_widget, blksize_widget; static Widget primspace_widget, secspace_widget; static Widget send_toggle, receive_toggle; static Widget vm_toggle, tso_toggle; static Widget ascii_toggle, binary_toggle; static Widget cr_widget; static Widget remap_widget; static Widget buffersize_widget; #endif /*]*/ static char *ft_host_filename; /* Host file to transfer to/from */ static Boolean receive_flag = True; /* Current transfer is receive */ static Boolean append_flag = False; /* Append transfer */ static Boolean vm_flag = False; /* VM Transfer flag */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Widget recfm_options[5]; static Widget units_options[5]; static struct toggle_list recfm_toggles = { recfm_options }; static struct toggle_list units_toggles = { units_options }; #endif /*]*/ static enum recfm { DEFAULT_RECFM, RECFM_FIXED, RECFM_VARIABLE, RECFM_UNDEFINED } recfm = DEFAULT_RECFM; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Boolean recfm_default = True; static enum recfm r_default_recfm = DEFAULT_RECFM; static enum recfm r_fixed = RECFM_FIXED; static enum recfm r_variable = RECFM_VARIABLE; static enum recfm r_undefined = RECFM_UNDEFINED; #endif /*]*/ static enum units { DEFAULT_UNITS, TRACKS, CYLINDERS, AVBLOCK } units = DEFAULT_UNITS; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Boolean units_default = True; static enum units u_default_units = DEFAULT_UNITS; static enum units u_tracks = TRACKS; static enum units u_cylinders = CYLINDERS; static enum units u_avblock = AVBLOCK; #endif /*]*/ static Boolean allow_overwrite = False; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static sr_t *ft_sr = (sr_t *)NULL; static Widget progress_shell, from_file, to_file; static Widget ft_status, waiting, aborting; static String status_string; #endif /*]*/ static struct timeval t0; /* Starting time */ static Boolean ft_is_cut; /* File transfer is CUT-style */ /* Translation table: "ASCII" to EBCDIC, as seen by IND$FILE. */ unsigned char i_asc2ft[256] = { 0x00,0x01,0x02,0x03,0x37,0x2d,0x2e,0x2f,0x16,0x05,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x3c,0x3d,0x32,0x26,0x18,0x19,0x3f,0x27,0x1c,0x1d,0x1e,0x1f, 0x40,0x5a,0x7f,0x7b,0x5b,0x6c,0x50,0x7d,0x4d,0x5d,0x5c,0x4e,0x6b,0x60,0x4b,0x61, 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0x7a,0x5e,0x4c,0x7e,0x6e,0x6f, 0x7c,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6, 0xd7,0xd8,0xd9,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0x4a,0xe0,0x4f,0x5f,0x6d, 0x79,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x91,0x92,0x93,0x94,0x95,0x96, 0x97,0x98,0x99,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xc0,0x6a,0xd0,0xa1,0x07, 0x20,0x21,0x22,0x23,0x24,0x15,0x06,0x17,0x28,0x29,0x2a,0x2b,0x2c,0x09,0x0a,0x1b, 0x30,0x31,0x1a,0x33,0x34,0x35,0x36,0x08,0x38,0x39,0x3a,0x3b,0x04,0x14,0x3e,0xe1, 0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x51,0x52,0x53,0x54,0x55,0x56,0x57, 0x58,0x59,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x70,0x71,0x72,0x73,0x74,0x75, 0x76,0x77,0x78,0x80,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x9a,0x9b,0x9c,0x9d,0x9e, 0x9f,0xa0,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7, 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xda,0xdb, 0xdc,0xdd,0xde,0xdf,0xea,0xeb,0xec,0xed,0xee,0xef,0xfa,0xfb,0xfc,0xfd,0xfe,0xff}; /* Translation table: EBCDIC to "ASCII", as seen by IND$FILE. */ unsigned char i_ft2asc[256] = { 0x00,0x01,0x02,0x03,0x9c,0x09,0x86,0x7f,0x97,0x8d,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x9d,0x85,0x08,0x87,0x18,0x19,0x92,0x8f,0x1c,0x1d,0x1e,0x1f, 0x80,0x81,0x82,0x83,0x84,0x00,0x17,0x1b,0x88,0x89,0x8a,0x8b,0x8c,0x05,0x06,0x07, 0x90,0x91,0x16,0x93,0x94,0x95,0x96,0x04,0x98,0x99,0x9a,0x9b,0x14,0x15,0x9e,0x1a, 0x20,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0x5b,0x2e,0x3c,0x28,0x2b,0x5d, 0x26,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0x21,0x24,0x2a,0x29,0x3b,0x5e, 0x2d,0x2f,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0x7c,0x2c,0x25,0x5f,0x3e,0x3f, 0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,0x60,0x3a,0x23,0x40,0x27,0x3d,0x22, 0xc3,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9, 0xca,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0xcb,0xcc,0xcd,0xce,0xcf,0xd0, 0xd1,0x7e,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7, 0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7, 0x7b,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0xe8,0xe9,0xea,0xeb,0xec,0xed, 0x7d,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0xee,0xef,0xf0,0xf1,0xf2,0xf3, 0x5c,0x9f,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9, 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xfa,0xfb,0xfc,0xfd,0xfe,0xff}; #if defined(X3270_DBCS) /*[*/ enum ftd ft_dbcs_state = FT_DBCS_NONE; unsigned char ft_dbcs_byte1; Boolean ft_last_dbcs = False; #endif /*]*/ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Widget overwrite_shell; #endif /*]*/ static Boolean ft_is_action; static unsigned long ft_start_id = 0; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static void ft_cancel(Widget w, XtPointer client_data, XtPointer call_data); static void ft_popup_callback(Widget w, XtPointer client_data, XtPointer call_data); static void ft_popup_init(void); static int ft_start(void); static void ft_start_callback(Widget w, XtPointer call_parms, XtPointer call_data); static void overwrite_cancel_callback(Widget w, XtPointer client_data, XtPointer call_data); static void overwrite_okay_callback(Widget w, XtPointer client_data, XtPointer call_data); static void overwrite_popdown(Widget w, XtPointer client_data, XtPointer call_data); static void overwrite_popup_init(void); static void popup_overwrite(void); static void popup_progress(void); static void progress_cancel_callback(Widget w, XtPointer client_data, XtPointer call_data); static void progress_popup_callback(Widget w, XtPointer client_data, XtPointer call_data); static void progress_popup_init(void); static void recfm_callback(Widget w, XtPointer user_data, XtPointer call_data); static void toggle_append(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_ascii(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_cr(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_remap(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_receive(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_vm(Widget w, XtPointer client_data, XtPointer call_data); static void units_callback(Widget w, XtPointer user_data, XtPointer call_data); #endif /*]*/ static void ft_connected(Boolean ignored); static void ft_in3270(Boolean ignored); /* Main external entry point. */ #if !defined(X3270_DISPLAY) || !defined(X3270_MENUS) /*[*/ void ft_init(void) { /* Register for state changes. */ register_schange(ST_CONNECT, ft_connected); register_schange(ST_3270_MODE, ft_in3270); } #endif /*]*/ /* Return the right value for fopen()ing the local file. */ static char * local_fflag(void) { static char ret[3]; int nr = 0; ret[nr++] = receive_flag? (append_flag? 'a': 'w' ): 'r'; if (!ascii_flag) ret[nr++] = 'b'; ret[nr] = '\0'; return ret; } /* Timeout function for stalled transfers. */ static void ft_didnt_start(void) { if (ft_local_file != NULL) { fclose(ft_local_file); ft_local_file = NULL; if (receive_flag && !append_flag) unlink(ft_local_filename); } allow_overwrite = False; ft_complete(get_message("ftStartTimeout")); sms_continue(); } #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ /* "File Transfer" dialog. */ /* * Pop up the "Transfer" menu. * Called back from the "File Transfer" option on the File menu. */ void popup_ft(Widget w _is_unused, XtPointer call_parms _is_unused, XtPointer call_data _is_unused) { /* Initialize it. */ if (ft_shell == (Widget)NULL) ft_popup_init(); /* Pop it up. */ dialog_set(&ft_sr, ft_dialog); popup_popup(ft_shell, XtGrabNone); } /* Initialize the transfer pop-up. */ static void ft_popup_init(void) { Widget w; Widget cancel_button; Widget local_label, host_label; Widget append_widget; Widget lrecl_label, blksize_label, primspace_label, secspace_label; Widget h_ref = (Widget)NULL; Dimension d1; Dimension maxw = 0; Widget recfm_label, units_label; Widget buffersize_label; Widget start_button; char buflen_buf[128]; /* Register for state changes. */ register_schange(ST_CONNECT, ft_connected); register_schange(ST_3270_MODE, ft_in3270); /* Prep the dialog functions. */ dialog_set(&ft_sr, ft_dialog); /* Create the menu shell. */ ft_shell = XtVaCreatePopupShell( "ftPopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(ft_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(ft_shell, XtNpopupCallback, ft_popup_callback, (XtPointer)NULL); /* Create the form within the shell. */ ft_dialog = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, ft_shell, NULL); /* Create the file name widgets. */ local_label = XtVaCreateManagedWidget( "local", labelWidgetClass, ft_dialog, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); local_file = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNvertDistance, FAR_VGAP, XtNfromHoriz, local_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(local_label, local_file, XtNheight); w = XawTextGetSource(local_file); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_unixfile); dialog_register_sensitivity(local_file, BN, False, BN, False, BN, False); host_label = XtVaCreateManagedWidget( "host", labelWidgetClass, ft_dialog, XtNfromVert, local_label, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); host_file = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNdisplayCaret, False, XtNfromVert, local_label, XtNvertDistance, 3, XtNfromHoriz, host_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(host_label, host_file, XtNheight); dialog_match_dimension(local_label, host_label, XtNwidth); w = XawTextGetSource(host_file); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_hostfile); dialog_register_sensitivity(host_file, BN, False, BN, False, BN, False); /* Create the left column. */ /* Create send/receive toggles. */ send_toggle = XtVaCreateManagedWidget( "send", commandWidgetClass, ft_dialog, XtNfromVert, host_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(send_toggle, receive_flag ? no_diamond : diamond); XtAddCallback(send_toggle, XtNcallback, toggle_receive, (XtPointer)&s_false); receive_toggle = XtVaCreateManagedWidget( "receive", commandWidgetClass, ft_dialog, XtNfromVert, send_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(receive_toggle, receive_flag ? diamond : no_diamond); XtAddCallback(receive_toggle, XtNcallback, toggle_receive, (XtPointer)&s_true); /* Create ASCII/binary toggles. */ ascii_toggle = XtVaCreateManagedWidget( "ascii", commandWidgetClass, ft_dialog, XtNfromVert, receive_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(ascii_toggle, ascii_flag ? diamond : no_diamond); XtAddCallback(ascii_toggle, XtNcallback, toggle_ascii, (XtPointer)&s_true); binary_toggle = XtVaCreateManagedWidget( "binary", commandWidgetClass, ft_dialog, XtNfromVert, ascii_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(binary_toggle, ascii_flag ? no_diamond : diamond); XtAddCallback(binary_toggle, XtNcallback, toggle_ascii, (XtPointer)&s_false); /* Create append toggle. */ append_widget = XtVaCreateManagedWidget( "append", commandWidgetClass, ft_dialog, XtNfromVert, binary_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(append_widget, append_flag ? dot : no_dot); XtAddCallback(append_widget, XtNcallback, toggle_append, NULL); /* Set up the recfm group. */ recfm_label = XtVaCreateManagedWidget( "file", labelWidgetClass, ft_dialog, XtNfromVert, append_widget, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_register_sensitivity(recfm_label, &receive_flag, False, BN, False, BN, False); recfm_options[0] = XtVaCreateManagedWidget( "recfmDefault", commandWidgetClass, ft_dialog, XtNfromVert, recfm_label, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[0], (recfm == DEFAULT_RECFM) ? diamond : no_diamond); XtAddCallback(recfm_options[0], XtNcallback, recfm_callback, (XtPointer)&r_default_recfm); dialog_register_sensitivity(recfm_options[0], &receive_flag, False, BN, False, BN, False); recfm_options[1] = XtVaCreateManagedWidget( "fixed", commandWidgetClass, ft_dialog, XtNfromVert, recfm_options[0], XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[1], (recfm == RECFM_FIXED) ? diamond : no_diamond); XtAddCallback(recfm_options[1], XtNcallback, recfm_callback, (XtPointer)&r_fixed); dialog_register_sensitivity(recfm_options[1], &receive_flag, False, BN, False, BN, False); recfm_options[2] = XtVaCreateManagedWidget( "variable", commandWidgetClass, ft_dialog, XtNfromVert, recfm_options[1], XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[2], (recfm == RECFM_VARIABLE) ? diamond : no_diamond); XtAddCallback(recfm_options[2], XtNcallback, recfm_callback, (XtPointer)&r_variable); dialog_register_sensitivity(recfm_options[2], &receive_flag, False, BN, False, BN, False); recfm_options[3] = XtVaCreateManagedWidget( "undefined", commandWidgetClass, ft_dialog, XtNfromVert, recfm_options[2], XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[3], (recfm == RECFM_UNDEFINED) ? diamond : no_diamond); XtAddCallback(recfm_options[3], XtNcallback, recfm_callback, (XtPointer)&r_undefined); dialog_register_sensitivity(recfm_options[3], &receive_flag, False, &vm_flag, False, BN, False); lrecl_label = XtVaCreateManagedWidget( "lrecl", labelWidgetClass, ft_dialog, XtNfromVert, recfm_options[3], XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_register_sensitivity(lrecl_label, &receive_flag, False, &recfm_default, False, BN, False); lrecl_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, recfm_options[3], XtNvertDistance, 3, XtNfromHoriz, lrecl_label, XtNhorizDistance, MARGIN, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(lrecl_label, lrecl_widget, XtNheight); w = XawTextGetSource(lrecl_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(lrecl_widget, &receive_flag, False, &recfm_default, False, BN, False); blksize_label = XtVaCreateManagedWidget( "blksize", labelWidgetClass, ft_dialog, XtNfromVert, lrecl_widget, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_match_dimension(blksize_label, lrecl_label, XtNwidth); dialog_register_sensitivity(blksize_label, &receive_flag, False, &recfm_default, False, BN, False); blksize_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, lrecl_widget, XtNvertDistance, 3, XtNfromHoriz, blksize_label, XtNhorizDistance, MARGIN, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(blksize_label, blksize_widget, XtNheight); w = XawTextGetSource(blksize_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(blksize_widget, &receive_flag, False, &recfm_default, False, BN, False); /* Find the widest widget in the left column. */ XtVaGetValues(send_toggle, XtNwidth, &maxw, NULL); h_ref = send_toggle; #define REMAX(w) { \ XtVaGetValues((w), XtNwidth, &d1, NULL); \ if (d1 > maxw) { \ maxw = d1; \ h_ref = (w); \ } \ } REMAX(receive_toggle); REMAX(ascii_toggle); REMAX(binary_toggle); REMAX(append_widget); #undef REMAX /* Create the right column buttons. */ /* Create VM/TSO toggle. */ vm_toggle = XtVaCreateManagedWidget( "vm", commandWidgetClass, ft_dialog, XtNfromVert, host_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(vm_toggle, vm_flag ? diamond : no_diamond); XtAddCallback(vm_toggle, XtNcallback, toggle_vm, (XtPointer)&s_true); tso_toggle = XtVaCreateManagedWidget( "tso", commandWidgetClass, ft_dialog, XtNfromVert, vm_toggle, XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(tso_toggle, vm_flag ? no_diamond : diamond); XtAddCallback(tso_toggle, XtNcallback, toggle_vm, (XtPointer)&s_false); /* Create CR toggle. */ cr_widget = XtVaCreateManagedWidget( "cr", commandWidgetClass, ft_dialog, XtNfromVert, tso_toggle, XtNvertDistance, FAR_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(cr_widget, cr_flag ? dot : no_dot); XtAddCallback(cr_widget, XtNcallback, toggle_cr, 0); dialog_register_sensitivity(cr_widget, BN, False, BN, False, BN, False); /* Create remap toggle. */ remap_widget = XtVaCreateManagedWidget( "remap", commandWidgetClass, ft_dialog, XtNfromVert, cr_widget, XtNfromHoriz, h_ref, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(remap_widget, remap_flag ? dot : no_dot); XtAddCallback(remap_widget, XtNcallback, toggle_remap, NULL); dialog_register_sensitivity(remap_widget, &ascii_flag, True, BN, False, BN, False); /* Set up the Units group. */ units_label = XtVaCreateManagedWidget( "units", labelWidgetClass, ft_dialog, XtNfromVert, append_widget, XtNvertDistance, FAR_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_register_sensitivity(units_label, &receive_flag, False, &vm_flag, False, BN, False); units_options[0] = XtVaCreateManagedWidget( "spaceDefault", commandWidgetClass, ft_dialog, XtNfromVert, units_label, XtNvertDistance, 3, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[0], (units == DEFAULT_UNITS) ? diamond : no_diamond); XtAddCallback(units_options[0], XtNcallback, units_callback, (XtPointer)&u_default_units); dialog_register_sensitivity(units_options[0], &receive_flag, False, &vm_flag, False, BN, False); units_options[1] = XtVaCreateManagedWidget( "tracks", commandWidgetClass, ft_dialog, XtNfromVert, units_options[0], XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[1], (units == TRACKS) ? diamond : no_diamond); XtAddCallback(units_options[1], XtNcallback, units_callback, (XtPointer)&u_tracks); dialog_register_sensitivity(units_options[1], &receive_flag, False, &vm_flag, False, BN, False); units_options[2] = XtVaCreateManagedWidget( "cylinders", commandWidgetClass, ft_dialog, XtNfromVert, units_options[1], XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[2], (units == CYLINDERS) ? diamond : no_diamond); XtAddCallback(units_options[2], XtNcallback, units_callback, (XtPointer)&u_cylinders); dialog_register_sensitivity(units_options[2], &receive_flag, False, &vm_flag, False, BN, False); units_options[3] = XtVaCreateManagedWidget( "avblock", commandWidgetClass, ft_dialog, XtNfromVert, units_options[2], XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[3], (units == AVBLOCK) ? diamond : no_diamond); XtAddCallback(units_options[3], XtNcallback, units_callback, (XtPointer)&u_avblock); dialog_register_sensitivity(units_options[3], &receive_flag, False, &vm_flag, False, BN, False); primspace_label = XtVaCreateManagedWidget( "primspace", labelWidgetClass, ft_dialog, XtNfromVert, units_options[3], XtNvertDistance, 3, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_register_sensitivity(primspace_label, &receive_flag, False, &vm_flag, False, &units_default, False); primspace_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, units_options[3], XtNvertDistance, 3, XtNfromHoriz, primspace_label, XtNhorizDistance, 0, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(primspace_label, primspace_widget, XtNheight); w = XawTextGetSource(primspace_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(primspace_widget, &receive_flag, False, &vm_flag, False, &units_default, False); secspace_label = XtVaCreateManagedWidget( "secspace", labelWidgetClass, ft_dialog, XtNfromVert, primspace_widget, XtNvertDistance, 3, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_match_dimension(primspace_label, secspace_label, XtNwidth); dialog_register_sensitivity(secspace_label, &receive_flag, False, &vm_flag, False, &units_default, False); secspace_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, primspace_widget, XtNvertDistance, 3, XtNfromHoriz, secspace_label, XtNhorizDistance, 0, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(secspace_label, secspace_widget, XtNheight); w = XawTextGetSource(secspace_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(secspace_widget, &receive_flag, False, &vm_flag, False, &units_default, False); /* Set up the DFT buffer size. */ buffersize_label = XtVaCreateManagedWidget( "buffersize", labelWidgetClass, ft_dialog, XtNfromVert, blksize_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); buffersize_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, blksize_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, buffersize_label, XtNhorizDistance, 0, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(buffersize_label, buffersize_widget, XtNheight); w = XawTextGetSource(buffersize_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(buffersize_widget, BN, False, BN, False, BN, False); set_dft_buffersize(); (void) sprintf(buflen_buf, "%d", dft_buffersize); XtVaSetValues(buffersize_widget, XtNstring, buflen_buf, NULL); /* Set up the buttons at the bottom. */ start_button = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, ft_dialog, XtNfromVert, buffersize_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(start_button, XtNcallback, ft_start_callback, (XtPointer)NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, ft_dialog, XtNfromVert, buffersize_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, start_button, XtNhorizDistance, BUTTON_GAP, NULL); XtAddCallback(cancel_button, XtNcallback, ft_cancel, 0); } /* Callbacks for all the transfer widgets. */ /* Transfer pop-up popping up. */ static void ft_popup_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Set the focus to the local file widget. */ PA_dialog_focus_action(local_file, (XEvent *)NULL, (String *)NULL, (Cardinal *)NULL); /* Disallow overwrites. */ allow_overwrite = False; } /* Cancel button pushed. */ static void ft_cancel(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(ft_shell); } /* recfm options. */ static void recfm_callback(Widget w, XtPointer user_data, XtPointer call_data _is_unused) { recfm = *(enum recfm *)user_data; recfm_default = (recfm == DEFAULT_RECFM); dialog_check_sensitivity(&recfm_default); dialog_flip_toggles(&recfm_toggles, w); } /* Units options. */ static void units_callback(Widget w, XtPointer user_data, XtPointer call_data _is_unused) { units = *(enum units *)user_data; units_default = (units == DEFAULT_UNITS); dialog_check_sensitivity(&units_default); dialog_flip_toggles(&units_toggles, w); } /* OK button pushed. */ static void ft_start_callback(Widget w _is_unused, XtPointer call_parms _is_unused, XtPointer call_data _is_unused) { if (ft_start()) { XtPopdown(ft_shell); popup_progress(); } } /* Send/receive options. */ static void toggle_receive(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ receive_flag = *(Boolean *)client_data; /* Change the widget states. */ dialog_mark_toggle(receive_toggle, receive_flag ? diamond : no_diamond); dialog_mark_toggle(send_toggle, receive_flag ? no_diamond : diamond); dialog_check_sensitivity(&receive_flag); } /* Ascii/binary options. */ static void toggle_ascii(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag. */ ascii_flag = *(Boolean *)client_data; /* Change the widget states. */ dialog_mark_toggle(ascii_toggle, ascii_flag ? diamond : no_diamond); dialog_mark_toggle(binary_toggle, ascii_flag ? no_diamond : diamond); cr_flag = ascii_flag; remap_flag = ascii_flag; dialog_mark_toggle(cr_widget, cr_flag ? dot : no_dot); dialog_mark_toggle(remap_widget, remap_flag ? dot : no_dot); dialog_check_sensitivity(&ascii_flag); } /* CR option. */ static void toggle_cr(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle the cr flag */ cr_flag = !cr_flag; dialog_mark_toggle(w, cr_flag ? dot : no_dot); } /* Append option. */ static void toggle_append(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle Append Flag */ append_flag = !append_flag; dialog_mark_toggle(w, append_flag ? dot : no_dot); } /* Remap option. */ static void toggle_remap(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle Remap Flag */ remap_flag = !remap_flag; dialog_mark_toggle(w, remap_flag ? dot : no_dot); } /* TSO/VM option. */ static void toggle_vm(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle the flag. */ vm_flag = *(Boolean *)client_data; /* Change the widget states. */ dialog_mark_toggle(vm_toggle, vm_flag ? diamond : no_diamond); dialog_mark_toggle(tso_toggle, vm_flag ? no_diamond : diamond); if (vm_flag) { if (recfm == RECFM_UNDEFINED) { recfm = DEFAULT_RECFM; recfm_default = True; dialog_flip_toggles(&recfm_toggles, recfm_toggles.widgets[0]); } } dialog_check_sensitivity(&vm_flag); } /* * Begin the transfer. * Returns 1 if the transfer has started, 0 otherwise. */ static int ft_start(void) { char opts[80]; char *op = opts + 1; char *cmd; String buffersize, lrecl, blksize, primspace, secspace; char updated_buffersize[128]; unsigned flen; ft_is_action = False; #if defined(X3270_DBCS) /*[*/ ft_dbcs_state = FT_DBCS_NONE; #endif /*]*/ /* Get the DFT buffer size. */ XtVaGetValues(buffersize_widget, XtNstring, &buffersize, NULL); if (*buffersize) dft_buffersize = atoi(buffersize); else dft_buffersize = 0; set_dft_buffersize(); (void) sprintf(updated_buffersize, "%d", dft_buffersize); XtVaSetValues(buffersize_widget, XtNstring, updated_buffersize, NULL); /* Get the host file from its widget */ XtVaGetValues(host_file, XtNstring, &ft_host_filename, NULL); if (!*ft_host_filename) return 0; /* XXX: probably more validation to do here */ /* Get the local file from it widget */ XtVaGetValues(local_file, XtNstring, &ft_local_filename, NULL); if (!*ft_local_filename) return 0; /* See if the local file can be overwritten. */ if (receive_flag && !append_flag && !allow_overwrite) { ft_local_file = fopen(ft_local_filename, ascii_flag? "r": "rb"); if (ft_local_file != (FILE *)NULL) { (void) fclose(ft_local_file); ft_local_file = (FILE *)NULL; popup_overwrite(); return 0; } } /* Open the local file. */ ft_local_file = fopen(ft_local_filename, local_fflag()); if (ft_local_file == (FILE *)NULL) { allow_overwrite = False; popup_an_errno(errno, "Local file '%s'", ft_local_filename); return 0; } /* Build the ind$file command */ op[0] = '\0'; if (ascii_flag) strcat(op, " ascii"); if (cr_flag) strcat(op, " crlf"); if (append_flag && !receive_flag) strcat(op, " append"); if (!receive_flag) { if (!vm_flag) { if (recfm != DEFAULT_RECFM) { /* RECFM Entered, process */ strcat(op, " recfm("); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; case RECFM_UNDEFINED: strcat(op, "u"); break; default: break; }; strcat(op, ")"); XtVaGetValues(lrecl_widget, XtNstring, &lrecl, NULL); if (strlen(lrecl) > 0) sprintf(eos(op), " lrecl(%s)", lrecl); XtVaGetValues(blksize_widget, XtNstring, &blksize, NULL); if (strlen(blksize) > 0) sprintf(eos(op), " blksize(%s)", blksize); } if (units != DEFAULT_UNITS) { /* Space Entered, processs it */ switch (units) { case TRACKS: strcat(op, " tracks"); break; case CYLINDERS: strcat(op, " cylinders"); break; case AVBLOCK: strcat(op, " avblock"); break; default: break; }; XtVaGetValues(primspace_widget, XtNstring, &primspace, NULL); if (strlen(primspace) > 0) { sprintf(eos(op), " space(%s", primspace); XtVaGetValues(secspace_widget, XtNstring, &secspace, NULL); if (strlen(secspace) > 0) sprintf(eos(op), ",%s", secspace); strcat(op, ")"); } } } else { if (recfm != DEFAULT_RECFM) { strcat(op, " recfm "); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; default: break; }; XtVaGetValues(lrecl_widget, XtNstring, &lrecl, NULL); if (strlen(lrecl) > 0) sprintf(eos(op), " lrecl %s", lrecl); } } } /* Insert the '(' for VM options. */ if (strlen(op) > 0 && vm_flag) { opts[0] = ' '; opts[1] = '('; op = opts; } /* Build the whole command. */ cmd = xs_buffer("ind\\e005Bfile %s %s%s\\n", receive_flag ? "get" : "put", ft_host_filename, op); /* Erase the line and enter the command. */ flen = kybd_prime(); if (!flen || flen < strlen(cmd) - 1) { XtFree(cmd); if (ft_local_file != NULL) { fclose(ft_local_file); ft_local_file = NULL; if (receive_flag && !append_flag) unlink(ft_local_filename); } popup_an_error("%s", get_message("ftUnable")); allow_overwrite = False; return 0; } (void) emulate_input(cmd, strlen(cmd), False); XtFree(cmd); /* Get this thing started. */ ft_state = FT_AWAIT_ACK; ft_is_cut = False; ft_last_cr = False; #if defined(X3270_DBCS) /*[*/ ft_last_dbcs = False; #endif /*]*/ return 1; } /* "Transfer in Progress" pop-up. */ /* Pop up the "in progress" pop-up. */ static void popup_progress(void) { /* Initialize it. */ if (progress_shell == (Widget)NULL) progress_popup_init(); /* Pop it up. */ popup_popup(progress_shell, XtGrabNone); } /* Initialize the "in progress" pop-up. */ static void progress_popup_init(void) { Widget progress_pop, from_label, to_label, cancel_button; /* Create the shell. */ progress_shell = XtVaCreatePopupShell( "ftProgressPopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(progress_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(progress_shell, XtNpopupCallback, progress_popup_callback, (XtPointer)NULL); /* Create a form structure to contain the other stuff */ progress_pop = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, progress_shell, NULL); /* Create the widgets. */ from_label = XtVaCreateManagedWidget( "fromLabel", labelWidgetClass, progress_pop, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); from_file = XtVaCreateManagedWidget( "filename", labelWidgetClass, progress_pop, XtNwidth, FILE_WIDTH, XtNvertDistance, FAR_VGAP, XtNfromHoriz, from_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(from_label, from_file, XtNheight); to_label = XtVaCreateManagedWidget( "toLabel", labelWidgetClass, progress_pop, XtNfromVert, from_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); to_file = XtVaCreateManagedWidget( "filename", labelWidgetClass, progress_pop, XtNwidth, FILE_WIDTH, XtNfromVert, from_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, to_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(to_label, to_file, XtNheight); dialog_match_dimension(from_label, to_label, XtNwidth); waiting = XtVaCreateManagedWidget( "waiting", labelWidgetClass, progress_pop, XtNfromVert, to_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNmappedWhenManaged, False, NULL); ft_status = XtVaCreateManagedWidget( "status", labelWidgetClass, progress_pop, XtNfromVert, to_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNresizable, True, XtNmappedWhenManaged, False, NULL); XtVaGetValues(ft_status, XtNlabel, &status_string, NULL); status_string = XtNewString(status_string); aborting = XtVaCreateManagedWidget( "aborting", labelWidgetClass, progress_pop, XtNfromVert, to_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNmappedWhenManaged, False, NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, progress_pop, XtNfromVert, ft_status, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(cancel_button, XtNcallback, progress_cancel_callback, NULL); } /* Callbacks for the "in progress" pop-up. */ /* In-progress pop-up popped up. */ static void progress_popup_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtVaSetValues(from_file, XtNlabel, receive_flag ? ft_host_filename : ft_local_filename, NULL); XtVaSetValues(to_file, XtNlabel, receive_flag ? ft_local_filename : ft_host_filename, NULL); switch (ft_state) { case FT_AWAIT_ACK: XtUnmapWidget(ft_status); XtUnmapWidget(aborting); XtMapWidget(waiting); break; case FT_RUNNING: XtUnmapWidget(waiting); XtUnmapWidget(aborting); XtMapWidget(ft_status); break; case FT_ABORT_WAIT: case FT_ABORT_SENT: XtUnmapWidget(waiting); XtUnmapWidget(ft_status); XtMapWidget(aborting); break; default: break; } } /* In-progress "cancel" button. */ static void progress_cancel_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { if (ft_state == FT_RUNNING) { ft_state = FT_ABORT_WAIT; XtUnmapWidget(waiting); XtUnmapWidget(ft_status); XtMapWidget(aborting); } else { /* Impatient user or hung host -- just clean up. */ ft_complete(get_message("ftUserCancel")); } } /* "Overwrite existing?" pop-up. */ /* Pop up the "overwrite" pop-up. */ static void popup_overwrite(void) { /* Initialize it. */ if (overwrite_shell == (Widget)NULL) overwrite_popup_init(); /* Pop it up. */ popup_popup(overwrite_shell, XtGrabExclusive); } /* Initialize the "overwrite" pop-up. */ static void overwrite_popup_init(void) { Widget overwrite_pop, overwrite_name, okay_button, cancel_button; String overwrite_string, label, lf; Dimension d; /* Create the shell. */ overwrite_shell = XtVaCreatePopupShell( "ftOverwritePopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(overwrite_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(overwrite_shell, XtNpopdownCallback, overwrite_popdown, (XtPointer)NULL); /* Create a form structure to contain the other stuff */ overwrite_pop = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, overwrite_shell, NULL); /* Create the widgets. */ overwrite_name = XtVaCreateManagedWidget( "overwriteName", labelWidgetClass, overwrite_pop, XtNvertDistance, MARGIN, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNresizable, True, NULL); XtVaGetValues(overwrite_name, XtNlabel, &overwrite_string, NULL); XtVaGetValues(local_file, XtNstring, &lf, NULL); label = xs_buffer(overwrite_string, lf); XtVaSetValues(overwrite_name, XtNlabel, label, NULL); XtFree(label); XtVaGetValues(overwrite_name, XtNwidth, &d, NULL); if ((Dimension)(d + 20) < 400) d = 400; else d += 20; XtVaSetValues(overwrite_name, XtNwidth, d, NULL); XtVaGetValues(overwrite_name, XtNheight, &d, NULL); XtVaSetValues(overwrite_name, XtNheight, d + 20, NULL); okay_button = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, overwrite_pop, XtNfromVert, overwrite_name, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(okay_button, XtNcallback, overwrite_okay_callback, NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, overwrite_pop, XtNfromVert, overwrite_name, XtNvertDistance, FAR_VGAP, XtNfromHoriz, okay_button, XtNhorizDistance, BUTTON_GAP, NULL); XtAddCallback(cancel_button, XtNcallback, overwrite_cancel_callback, NULL); } /* Overwrite "okay" button. */ static void overwrite_okay_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(overwrite_shell); allow_overwrite = True; if (ft_start()) { XtPopdown(ft_shell); popup_progress(); } } /* Overwrite "cancel" button. */ static void overwrite_cancel_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(overwrite_shell); } /* Overwrite pop-up popped down. */ static void overwrite_popdown(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtDestroyWidget(overwrite_shell); overwrite_shell = (Widget)NULL; } #endif /*]*/ /* External entry points called by ft_dft and ft_cut. */ /* Pop up a message, end the transfer. */ void ft_complete(const char *errmsg) { /* Close the local file. */ if (ft_local_file != (FILE *)NULL && fclose(ft_local_file) < 0) popup_an_errno(errno, "close(%s)", ft_local_filename); ft_local_file = (FILE *)NULL; /* Clean up the state. */ ft_state = FT_NONE; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ /* Pop down the in-progress shell. */ if (!ft_is_action) XtPopdown(progress_shell); #endif /*]*/ /* Pop up the text. */ if (errmsg != CN) { char *msg_copy = NewString(errmsg); /* Make sure the error message will fit on the display. */ if (strlen(msg_copy) > 50 && strchr(msg_copy, '\n') == CN) { char *s = msg_copy + 50; while (s > msg_copy && *s != ' ') s--; if (s > msg_copy) *s = '\n'; /* yikes! */ } #if defined(C3270) /*[*/ printf("\r%79s\n", ""); fflush(stdout); #endif /*]*/ popup_an_error("%s", msg_copy); Free(msg_copy); } else { struct timeval t1; double bytes_sec; char *buf; char kbuf[256]; (void) gettimeofday(&t1, (struct timezone *)NULL); bytes_sec = (double)ft_length / ((double)(t1.tv_sec - t0.tv_sec) + (double)(t1.tv_usec - t0.tv_usec) / 1.0e6); buf = Malloc(256); (void) sprintf(buf, get_message("ftComplete"), ft_length, display_scale(bytes_sec, kbuf, sizeof(kbuf)), ft_is_cut ? "CUT" : "DFT"); if (ft_is_action) { #if defined(C3270) /*[*/ printf("\r%79s\n", ""); fflush(stdout); #endif /*]*/ sms_info("%s", buf); sms_continue(); } #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ else popup_an_info("%s", buf); #endif /*]*/ Free(buf); } } /* Update the bytes-transferred count on the progress pop-up. */ void ft_update_length(void) { #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ char text_string[80]; /* Format the message */ if (!ft_is_action) { sprintf(text_string, status_string, ft_length); XtVaSetValues(ft_status, XtNlabel, text_string, NULL); } #endif /*]*/ #if defined(C3270) /*[*/ printf("\r%79s\rTransferred %lu bytes. ", "", ft_length); fflush(stdout); #endif /*]*/ } /* Process a transfer acknowledgement. */ void ft_running(Boolean is_cut) { if (ft_state == FT_AWAIT_ACK) { ft_state = FT_RUNNING; if (ft_start_id) { RemoveTimeOut(ft_start_id); ft_start_id = 0; } } ft_is_cut = is_cut; (void) gettimeofday(&t0, (struct timezone *)NULL); ft_length = 0; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ if (!ft_is_action) { XtUnmapWidget(waiting); ft_update_length(); XtMapWidget(ft_status); } #endif /*]*/ #if defined(C3270) /*[*/ ft_update_length(); #endif /*]*/ } /* Process a protocol-generated abort. */ void ft_aborting(void) { if (ft_state == FT_RUNNING || ft_state == FT_ABORT_WAIT) { ft_state = FT_ABORT_SENT; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ if (!ft_is_action) { XtUnmapWidget(waiting); XtUnmapWidget(ft_status); XtMapWidget(aborting); } #endif /*]*/ } } /* Process a disconnect abort. */ static void ft_connected(Boolean ignored _is_unused) { if (!CONNECTED && ft_state != FT_NONE) ft_complete(get_message("ftDisconnected")); } /* Process an abort from no longer being in 3270 mode. */ static void ft_in3270(Boolean ignored _is_unused) { if (!IN_3270 && ft_state != FT_NONE) ft_complete(get_message("ftNot3270")); } /* * Script/macro action for file transfer. * Transfer(option=value[,...]) * Options are: * Direction=send|receive default receive * HostFile=name required * LocalFile=name required * Host=[tso|vm] default tso * Mode=[ascii|binary] default ascii * Cr=[add|remove|keep] default add/remove * Remap=[yes|no] default yes * Exist=[keep|replace|append] default keep * Recfm=[default|fixed|variable|undefined] default default * Lrecl=n no default * Blksize=n no default * Allocation=[default|tracks|cylinders|avblock] default default * PrimarySpace=n no default * SecondarySpace=n no default */ static struct { const char *name; char *value; const char *keyword[4]; } tp[] = { { "Direction", CN, { "receive", "send" } }, { "HostFile" }, { "LocalFile" }, { "Host", CN, { "tso", "vm" } }, { "Mode", CN, { "ascii", "binary" } }, { "Cr", CN, { "auto", "remove", "add", "keep" } }, { "Remap", CN, { "yes", "no" } }, { "Exist", CN, { "keep", "replace", "append" } }, { "Recfm", CN, { "default", "fixed", "variable", "undefined" } }, { "Lrecl" }, { "Blksize" }, { "Allocation", CN, { "default", "tracks", "cylinders", "avblock" } }, { "PrimarySpace" }, { "SecondarySpace" }, { "BufferSize" }, { CN } }; enum ft_parm_name { PARM_DIRECTION, PARM_HOST_FILE, PARM_LOCAL_FILE, PARM_HOST, PARM_MODE, PARM_CR, PARM_REMAP, PARM_EXIST, PARM_RECFM, PARM_LRECL, PARM_BLKSIZE, PARM_ALLOCATION, PARM_PRIMARY_SPACE, PARM_SECONDARY_SPACE, PARM_BUFFER_SIZE, N_PARMS }; void Transfer_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int i, k; Cardinal j; long l; char *ptr; char opts[80]; char *op = opts + 1; char *cmd; unsigned flen; String *xparams = params; Cardinal xnparams = *num_params; action_debug(Transfer_action, event, params, num_params); ft_is_action = True; /* Make sure we're connected. */ if (!IN_3270) { popup_an_error("Not connected"); return; } #if defined(C3270) || defined(WC3270) /*[*/ /* Check for interactive mode. */ if (xnparams == 0 && escaped) { if (interactive_transfer(&xparams, &xnparams) < 0) { printf("\n"); fflush(stdout); action_output("Aborted"); return; } } #endif /*]*/ /* Set everything to the default. */ for (i = 0; i < N_PARMS; i++) { Free(tp[i].value); if (tp[i].keyword[0] != CN) tp[i].value = NewString(tp[i].keyword[0]); else tp[i].value = CN; } /* See what they specified. */ for (j = 0; j < xnparams; j++) { for (i = 0; i < N_PARMS; i++) { char *eq; int kwlen; eq = strchr(xparams[j], '='); if (eq == CN || eq == xparams[j] || !*(eq + 1)) { popup_an_error("Invalid option syntax: '%s'", xparams[j]); return; } kwlen = eq - xparams[j]; if (!strncasecmp(xparams[j], tp[i].name, kwlen) && !tp[i].name[kwlen]) { if (tp[i].keyword[0]) { for (k = 0; tp[i].keyword[k] != CN && k < 4; k++) { if (!strcasecmp(eq + 1, tp[i].keyword[k])) { break; } } if (k >= 4 || tp[i].keyword[k] == CN) { popup_an_error("Invalid option " "value: '%s'", eq + 1); return; } } else switch (i) { case PARM_LRECL: case PARM_BLKSIZE: case PARM_PRIMARY_SPACE: case PARM_SECONDARY_SPACE: case PARM_BUFFER_SIZE: l = strtol(eq + 1, &ptr, 10); if (ptr == eq + 1 || *ptr) { popup_an_error("Invalid option " "value: '%s'", eq + 1); return; } break; default: break; } tp[i].value = NewString(eq + 1); break; } } if (i >= N_PARMS) { popup_an_error("Unknown option: %s", xparams[j]); return; } } /* Check for required values. */ if (tp[PARM_HOST_FILE].value == CN) { popup_an_error("Missing 'HostFile' option"); return; } if (tp[PARM_LOCAL_FILE].value == CN) { popup_an_error("Missing 'LocalFile' option"); return; } /* * Start the transfer. Much of this is duplicated from ft_start() * and should be made common. */ if (tp[PARM_BUFFER_SIZE].value != CN) dft_buffersize = atoi(tp[PARM_BUFFER_SIZE].value); else dft_buffersize = 0; set_dft_buffersize(); receive_flag = !strcasecmp(tp[PARM_DIRECTION].value, "receive"); append_flag = !strcasecmp(tp[PARM_EXIST].value, "append"); allow_overwrite = !strcasecmp(tp[PARM_EXIST].value, "replace"); ascii_flag = !strcasecmp(tp[PARM_MODE].value, "ascii"); if (!strcasecmp(tp[PARM_CR].value, "auto")) { cr_flag = ascii_flag; } else { cr_flag = !strcasecmp(tp[PARM_CR].value, "remove") || !strcasecmp(tp[PARM_CR].value, "add"); } if (ascii_flag) remap_flag = !strcasecmp(tp[PARM_REMAP].value, "yes"); vm_flag = !strcasecmp(tp[PARM_HOST].value, "vm"); recfm = DEFAULT_RECFM; for (k = 0; tp[PARM_RECFM].keyword[k] != CN && k < 4; k++) { if (!strcasecmp(tp[PARM_RECFM].value, tp[PARM_RECFM].keyword[k])) { recfm = (enum recfm)k; break; } } units = DEFAULT_UNITS; for (k = 0; tp[PARM_ALLOCATION].keyword[k] != CN && k < 4; k++) { if (!strcasecmp(tp[PARM_ALLOCATION].value, tp[PARM_ALLOCATION].keyword[k])) { units = (enum units)k; break; } } ft_host_filename = tp[PARM_HOST_FILE].value; ft_local_filename = tp[PARM_LOCAL_FILE].value; /* See if the local file can be overwritten. */ if (receive_flag && !append_flag && !allow_overwrite) { ft_local_file = fopen(ft_local_filename, ascii_flag? "r": "rb"); if (ft_local_file != (FILE *)NULL) { (void) fclose(ft_local_file); popup_an_error("File exists"); return; } } /* Open the local file. */ ft_local_file = fopen(ft_local_filename, local_fflag()); if (ft_local_file == (FILE *)NULL) { popup_an_errno(errno, "Local file '%s'", ft_local_filename); return; } /* Build the ind$file command */ op[0] = '\0'; if (ascii_flag) strcat(op, " ascii"); if (cr_flag) strcat(op, " crlf"); if (append_flag && !receive_flag) strcat(op, " append"); if (!receive_flag) { if (!vm_flag) { if (recfm != DEFAULT_RECFM) { /* RECFM Entered, process */ strcat(op, " recfm("); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; case RECFM_UNDEFINED: strcat(op, "u"); break; default: break; }; strcat(op, ")"); if (tp[PARM_LRECL].value != CN) sprintf(eos(op), " lrecl(%s)", tp[PARM_LRECL].value); if (tp[PARM_BLKSIZE].value != CN) sprintf(eos(op), " blksize(%s)", tp[PARM_BLKSIZE].value); } if (units != DEFAULT_UNITS) { /* Space Entered, processs it */ switch (units) { case TRACKS: strcat(op, " tracks"); break; case CYLINDERS: strcat(op, " cylinders"); break; case AVBLOCK: strcat(op, " avblock"); break; default: break; }; if (tp[PARM_PRIMARY_SPACE].value != CN) { sprintf(eos(op), " space(%s", tp[PARM_PRIMARY_SPACE].value); if (tp[PARM_SECONDARY_SPACE].value) sprintf(eos(op), ",%s", tp[PARM_SECONDARY_SPACE].value); strcat(op, ")"); } } } else { if (recfm != DEFAULT_RECFM) { strcat(op, " recfm "); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; default: break; }; if (tp[PARM_LRECL].value) sprintf(eos(op), " lrecl %s", tp[PARM_LRECL].value); } } } /* Insert the '(' for VM options. */ if (strlen(op) > 0 && vm_flag) { opts[0] = ' '; opts[1] = '('; op = opts; } /* Build the whole command. */ cmd = xs_buffer("ind\\e005Bfile %s %s%s\\n", receive_flag ? "get" : "put", ft_host_filename, op); /* Erase the line and enter the command. */ flen = kybd_prime(); if (!flen || flen < strlen(cmd) - 1) { Free(cmd); if (ft_local_file != NULL) { fclose(ft_local_file); ft_local_file = NULL; if (receive_flag && !append_flag) unlink(ft_local_filename); } popup_an_error("%s", get_message("ftUnable")); return; } (void) emulate_input(cmd, strlen(cmd), False); Free(cmd); #if defined(C3270) /*[*/ if (!escaped) screen_suspend(); printf("Awaiting start of transfer... "); fflush(stdout); #endif /*]*/ /* Get this thing started. */ ft_start_id = AddTimeOut(10 * 1000, ft_didnt_start); ft_state = FT_AWAIT_ACK; ft_is_cut = False; } #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/scrollc.h0000644000175000017500000000315511254565673016110 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of scrollc.h */ #define scroll_save(n, trim_blanks) #define scroll_to_bottom() ibm-3270-3.3.10ga4/tcl3270/ctlrc.h0000644000175000017500000001154111254565704015547 0ustar bastianbastian/* * Copyright (c) 2005-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ctlrc.h * Global declarations for ctlr.c. */ enum pds { PDS_OKAY_NO_OUTPUT = 0, /* command accepted, produced no output */ PDS_OKAY_OUTPUT = 1, /* command accepted, produced output */ PDS_BAD_CMD = -1, /* command rejected */ PDS_BAD_ADDR = -2 /* command contained a bad address */ }; void ctlr_aclear(int baddr, int count, int clear_ea); void ctlr_add(int baddr, unsigned char c, unsigned char cs); void ctlr_add_bg(int baddr, unsigned char color); void ctlr_add_cs(int baddr, unsigned char cs); void ctlr_add_fa(int baddr, unsigned char fa, unsigned char cs); void ctlr_add_fg(int baddr, unsigned char color); void ctlr_add_gr(int baddr, unsigned char gr); void ctlr_altbuffer(Boolean alt); Boolean ctlr_any_data(void); void ctlr_bcopy(int baddr_from, int baddr_to, int count, int move_ea); void ctlr_changed(int bstart, int bend); void ctlr_clear(Boolean can_snap); void ctlr_erase(Boolean alt); void ctlr_erase_all_unprotected(void); void ctlr_init(unsigned cmask); void ctlr_read_buffer(unsigned char aid_byte); void ctlr_read_modified(unsigned char aid_byte, Boolean all); void ctlr_reinit(unsigned cmask); void ctlr_scroll(void); void ctlr_shrink(void); void ctlr_snap_buffer(void); void ctlr_snap_buffer_sscp_lu(void); Boolean ctlr_snap_modes(void); void ctlr_wrapping_memmove(int baddr_to, int baddr_from, int count); enum pds ctlr_write(unsigned char buf[], int buflen, Boolean erase); void ctlr_write_sscp_lu(unsigned char buf[], int buflen); struct ea *fa2ea(int baddr); int find_field_attribute(int baddr); unsigned char get_field_attribute(register int baddr); Boolean get_bounded_field_attribute(register int baddr, register int bound, unsigned char *fa_out); void mdt_clear(int baddr); void mdt_set(int baddr); int next_unprotected(int baddr0); enum pds process_ds(unsigned char *buf, int buflen); void ps_process(void); void set_rows_cols(int mn, int ovc, int ovr); void ticking_start(Boolean anyway); void toggle_nop(struct toggle *t, enum toggle_type tt); void toggle_showTiming(struct toggle *t, enum toggle_type tt); enum dbcs_state { DBCS_NONE = 0, /* position is not DBCS */ DBCS_LEFT, /* position is left half of DBCS character */ DBCS_RIGHT, /* position is right half of DBCS character */ DBCS_SI, /* position is SI terminating DBCS subfield */ DBCS_SB, /* position is SBCS character after the SI */ DBCS_LEFT_WRAP, /* position is left half of split DBCS */ DBCS_RIGHT_WRAP, /* position is right half of split DBCS */ DBCS_DEAD /* position is dead left-half DBCS */ }; #define IS_LEFT(d) ((d) == DBCS_LEFT || (d) == DBCS_LEFT_WRAP) #define IS_RIGHT(d) ((d) == DBCS_RIGHT || (d) == DBCS_RIGHT_WRAP) #define IS_DBCS(d) (IS_LEFT(d) || IS_RIGHT(d)) #define MAKE_LEFT(b) { \ if (((b) % COLS) == ((ROWS * COLS) - 1)) \ ea_buf[(b)].db = DBCS_LEFT_WRAP; \ else \ ea_buf[(b)].db = DBCS_LEFT; \ } #define MAKE_RIGHT(b) { \ if (!((b) % COLS)) \ ea_buf[(b)].db = DBCS_RIGHT_WRAP; \ else \ ea_buf[(b)].db = DBCS_RIGHT; \ } #define SOSI(c) (((c) == EBC_so)? EBC_si: EBC_so) enum dbcs_why { DBCS_FIELD, DBCS_SUBFIELD, DBCS_ATTRIBUTE }; #if defined(X3270_DBCS) /*[*/ enum dbcs_state ctlr_dbcs_state(int baddr); extern enum dbcs_state ctlr_lookleft_state(int baddr, enum dbcs_why *why); int ctlr_dbcs_postprocess(void); #else /*][*/ #define ctlr_dbcs_state(b) DBCS_NONE #define ctlr_lookleft_state(b, w) DBCS_NONE #define ctlr_dbcs_postprocess() 0 #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/sfc.h0000644000175000017500000000320211254565704015206 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * sfc.h * Global declarations for sf.c. */ extern enum pds write_structured_field(unsigned char buf[], int buflen); ibm-3270-3.3.10ga4/tcl3270/print.c0000644000175000017500000007103711254565704015575 0ustar bastianbastian/* * Copyright (c) 1994-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * print.c * Screen printing functions. */ #include "globals.h" #include "appres.h" #include "3270ds.h" #include "ctlr.h" #include "ctlrc.h" #include "tablesc.h" #include #if defined(X3270_DISPLAY) /*[*/ #include #include #endif /*]*/ #include "objects.h" #include "resources.h" #include "actionsc.h" #include "charsetc.h" #include "popupsc.h" #include "printc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include #include #include #include #endif /*]*/ #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ /* Globals */ #if defined(X3270_DISPLAY) /*[*/ char *print_text_command = NULL; Boolean ptc_changed = FALSE; #endif /*]*/ /* Statics */ #if defined(X3270_DISPLAY) /*[*/ static Widget print_text_shell = (Widget)NULL; static Widget save_text_shell = (Widget)NULL; static Widget print_window_shell = (Widget)NULL; char *print_window_command = CN; #endif /*]*/ /* Print Text popup */ /* * Map default 3279 colors. This code is duplicated three times. ;-( */ static int color_from_fa(unsigned char fa) { static int field_colors[4] = { HOST_COLOR_GREEN, /* default */ HOST_COLOR_RED, /* intensified */ HOST_COLOR_BLUE, /* protected */ HOST_COLOR_WHITE /* protected, intensified */ # define DEFCOLOR_MAP(f) \ ((((f) & FA_PROTECT) >> 4) | (((f) & FA_INT_HIGH_SEL) >> 3)) }; if (appres.m3279) return field_colors[DEFCOLOR_MAP(fa)]; else return HOST_COLOR_GREEN; } /* * Map 3279 colors onto HTML colors. */ static char * html_color(int color) { static char *html_color_map[] = { "black", "deepSkyBlue", "red", "pink", "green", "turquoise", "yellow", "white", "black", "blue3", "orange", "purple", "paleGreen", "paleTurquoise2", "grey", "white" }; if (color >= HOST_COLOR_NEUTRAL_BLACK && color <= HOST_COLOR_WHITE) return html_color_map[color]; else return "black"; } /* Convert a caption string to UTF-8 RTF. */ static char * rtf_caption(const char *caption) { ucs4_t u; int consumed; enum me_fail error; char *result = Malloc(1); int rlen = 1; char uubuf[64]; char mb[16]; int nmb; result[0] = '\0'; while (*caption) { u = multibyte_to_unicode(caption, strlen(caption), &consumed, &error); if (u == 0) break; if (u & ~0x7f) { sprintf(uubuf, "\\u%u?", u); } else { nmb = unicode_to_multibyte(u, mb, sizeof(mb)); if (mb[0] == '\\' || mb[0] == '{' || mb[0] == '}') sprintf(uubuf, "\\%c", mb[0]); else if (mb[0] == '-') sprintf(uubuf, "\\_"); else if (mb[0] == ' ') sprintf(uubuf, "\\~"); else { uubuf[0] = mb[0]; uubuf[1] = '\0'; } } result = Realloc(result, rlen + strlen(uubuf)); strcat(result, uubuf); rlen += strlen(uubuf); caption += consumed; } return result; } /* Convert a caption string to UTF-8 HTML. */ static char * html_caption(const char *caption) { ucs4_t u; int consumed; enum me_fail error; char *result = Malloc(1); int rlen = 1; char u8buf[16]; int nu8; result[0] = '\0'; while (*caption) { u = multibyte_to_unicode(caption, strlen(caption), &consumed, &error); if (u == 0) break; switch (u) { case '<': result = Realloc(result, rlen + 4); strcat(result, "<"); rlen += 4; break; case '>': result = Realloc(result, rlen + 4); strcat(result, ">"); rlen += 4; break; case '&': result = Realloc(result, rlen + 5); strcat(result, "&"); rlen += 5; break; default: nu8 = unicode_to_utf8(u, u8buf); result = Realloc(result, rlen + nu8); memcpy(result + rlen - 1, u8buf, nu8); rlen += nu8; result[rlen - 1] = '\0'; break; } caption += consumed; } return result; } /* * Print the ASCIIfied contents of the screen onto a stream. * Returns True if anything printed, False otherwise. * * 'ptype' can specify: * P_TEXT: Ordinary text * P_HTML: HTML * P_RTF: Windows rich text * * 'opts' is an OR of: * FPS_EVEN_IF_EMPTY Create a file even if the screen is clear * FPS_MODIFIED_ITALIC Print modified fields in italic * font-style:normal|italic */ Boolean fprint_screen(FILE *f, ptype_t ptype, unsigned opts, char *caption) { register int i; unsigned long uc; int ns = 0; int nr = 0; Boolean any = False; int fa_addr = find_field_attribute(0); unsigned char fa = ea_buf[fa_addr].fa; int fa_fg, current_fg; int fa_bg, current_bg; Bool fa_high, current_high; Bool fa_ital, current_ital; Bool mi = ((opts & FPS_MODIFIED_ITALIC)) != 0; char *xcaption = NULL; if (caption != NULL) { char *ts = strstr(caption, "%T%"); if (ts != NULL) { time_t t = time(NULL); struct tm *tm = localtime(&t); xcaption = Malloc(strlen(caption) + 1 - 3 + 19); strncpy(xcaption, caption, ts - caption); sprintf(xcaption + (ts - caption), "%04d-%02d-%02d %02d:%02d:%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); strcat(xcaption, ts + 3); } else { xcaption = NewString(caption); } } if (ptype != P_TEXT) { opts |= FPS_EVEN_IF_EMPTY; } if (ea_buf[fa_addr].fg) fa_fg = ea_buf[fa_addr].fg & 0x0f; else fa_fg = color_from_fa(fa); current_fg = fa_fg; if (ea_buf[fa_addr].bg) fa_bg = ea_buf[fa_addr].bg & 0x0f; else fa_bg = HOST_COLOR_BLACK; current_bg = fa_bg; if (ea_buf[fa_addr].gr & GR_INTENSIFY) fa_high = True; else fa_high = FA_IS_HIGH(fa); current_high = fa_high; fa_ital = mi && FA_IS_MODIFIED(fa); current_ital = fa_ital; if (ptype == P_RTF) { char *pt_font = get_resource(ResPrintTextFont); char *pt_size = get_resource(ResPrintTextSize); int pt_nsize; if (pt_font == CN) pt_font = "Courier New"; if (pt_size == CN) pt_size = "8"; pt_nsize = atoi(pt_size); if (pt_nsize <= 0) pt_nsize = 8; fprintf(f, "{\\rtf1\\ansi\\ansicpg%u\\deff0\\deflang1033{\\fonttbl{\\f0\\fmodern\\fprq1\\fcharset0 %s;}}\n" "\\viewkind4\\uc1\\pard\\f0\\fs%d ", #if defined(_WIN32) /*[*/ GetACP(), #else /*][*/ 1252, /* the number doesn't matter */ #endif /*]*/ pt_font, pt_nsize * 2); if (xcaption != NULL) { char *hcaption = rtf_caption(xcaption); fprintf(f, "%s\\par\\par\n", hcaption); Free(hcaption); } if (current_high) fprintf(f, "\\b "); } if (ptype == P_HTML) { char *hcaption = NULL; /* Make the caption HTML-safe. */ if (xcaption != NULL) hcaption = html_caption(xcaption); /* Print the preamble. */ fprintf(f, "\n" "\n" " \n" "\n" " \n"); if (hcaption) fprintf(f, "

%s

\n", hcaption); fprintf(f, " " "\n" "
" "
",
			   html_color(current_fg),
			   html_color(current_bg),
			   current_high? "bold": "normal",
			   current_ital? "italic": "normal");
		if (hcaption != NULL)
			Free(hcaption);
	}

	if (ptype == P_TEXT) {
	    	if (xcaption != NULL)
		    	fprintf(f, "%s\n\n", xcaption);
	}

	for (i = 0; i < ROWS*COLS; i++) {
		char mb[16];
		int nmb;

		uc = 0;

		if (i && !(i % COLS)) {
		    	if (ptype == P_HTML)
			    	(void) fputc('\n', f);
			else
				nr++;
			ns = 0;
		}
		if (ea_buf[i].fa) {
			uc = ' ';
			fa = ea_buf[i].fa;
			if (ea_buf[i].fg)
				fa_fg = ea_buf[i].fg & 0x0f;
			else
				fa_fg = color_from_fa(fa);
			if (ea_buf[i].bg)
				fa_bg = ea_buf[i].bg & 0x0f;
			else
				fa_bg = HOST_COLOR_BLACK;
			if (ea_buf[i].gr & GR_INTENSIFY)
				fa_high = True;
			else
				fa_high = FA_IS_HIGH(fa);
			fa_ital = mi && FA_IS_MODIFIED(fa);
		}
		if (FA_IS_ZERO(fa)) {
#if defined(X3270_DBCS) /*[*/
			if (ctlr_dbcs_state(i) == DBCS_LEFT)
			    	uc = 0x3000;
			else
#endif /*]*/
				uc = ' ';
		} else {
		    	/* Convert EBCDIC to Unicode. */
#if defined(X3270_DBCS) /*[*/
			switch (ctlr_dbcs_state(i)) {
			case DBCS_NONE:
			case DBCS_SB:
			    	uc = ebcdic_to_unicode(ea_buf[i].cc,
					ea_buf[i].cs, EUO_NONE);
				if (uc == 0)
				    	uc = ' ';
				break;
			case DBCS_LEFT:
				uc = ebcdic_to_unicode(
					(ea_buf[i].cc << 8) |
					 ea_buf[i + 1].cc,
					CS_BASE, EUO_NONE);
				if (uc == 0)
				    	uc = 0x3000;
				break;
			case DBCS_RIGHT:
				/* skip altogether, we took care of it above */
				continue;
			default:
				uc = ' ';
				break;
			}
#else /*][*/
			uc = ebcdic_to_unicode(ea_buf[i].cc, ea_buf[i].cs,
				EUO_NONE);
			if (uc == 0)
				uc = ' ';
#endif /*]*/
		}

		/* Translate to a type-specific format and write it out. */
		if (uc == ' ' && ptype != P_HTML)
			ns++;
#if defined(X3270_DBCS) /*[*/
		else if (uc == 0x3000) {
		    	if (ptype == P_HTML)
			    	fprintf(f, "  ");
			else
				ns += 2;
		}
#endif /*]*/
		else {
			while (nr) {
			    	if (ptype == P_RTF)
				    	fprintf(f, "\\par");
				(void) fputc('\n', f);
				nr--;
			}
			while (ns) {
			    	if (ptype == P_RTF)
				    	fprintf(f, "\\~");
				else
					(void) fputc(' ', f);
				ns--;
			}
			if (ptype == P_RTF) {
				Bool high;

				if (ea_buf[i].gr & GR_INTENSIFY)
					high = True;
				else
					high = fa_high;
				if (high != current_high) {
					if (high)
						fprintf(f, "\\b ");
					else
						fprintf(f, "\\b0 ");
					current_high = high;
				}
			}
			if (ptype == P_HTML) {
				int fg_color, bg_color;
				Bool high;

				if (ea_buf[i].fg)
					fg_color = ea_buf[i].fg & 0x0f;
				else
					fg_color = fa_fg;
				if (ea_buf[i].bg)
					bg_color = ea_buf[i].bg & 0x0f;
				else
					bg_color = fa_bg;
				if (ea_buf[i].gr & GR_REVERSE) {
				    	int tmp;

					tmp = fg_color;
					fg_color = bg_color;
					bg_color = tmp;
				}

				if (i == cursor_addr) {
				    	fg_color = (bg_color == HOST_COLOR_RED)?
							HOST_COLOR_BLACK: bg_color;
					bg_color = HOST_COLOR_RED;
				}
				if (ea_buf[i].gr & GR_INTENSIFY)
					high = True;
				else
					high = fa_high;

				if (fg_color != current_fg ||
				    bg_color != current_bg ||
				    high != current_high ||
				    fa_ital != current_ital) {
					fprintf(f,
						"",
						html_color(fg_color),
						html_color(bg_color),
						high? "bold": "normal",
						fa_ital? "italic": "normal");
					current_fg = fg_color;
					current_bg = bg_color;
					current_high = high;
					current_ital = fa_ital;
				}
			}
			any = True;
			if (ptype == P_RTF) {
				if (uc & ~0x7f) {
					fprintf(f, "\\u%ld?", uc);
				} else {
					nmb = unicode_to_multibyte(uc,
						mb, sizeof(mb));
					if (mb[0] == '\\' ||
						mb[0] == '{' ||
						mb[0] == '}')
						fprintf(f, "\\%c",
							mb[0]);
					else if (mb[0] == '-')
						fprintf(f, "\\_");
					else if (mb[0] == ' ')
						fprintf(f, "\\~");
					else
						fputc(mb[0], f);
				}
			} else if (ptype == P_HTML) {
				if (uc == '<')
					fprintf(f, "<");
				else if (uc == '&')
				    	fprintf(f, "&");
				else if (uc == '>')
				    	fprintf(f, ">");
				else {
					nmb = unicode_to_utf8(uc, mb);
					{
					    int k;

					    for (k = 0; k < nmb; k++) {
						fputc(mb[k], f);
					    }
					}
				}
			} else {
				nmb = unicode_to_multibyte(uc,
					mb, sizeof(mb));
				(void) fputs(mb, f);
			}
		}
	}

	if (xcaption != NULL)
	    	Free(xcaption);

	if (ptype == P_HTML)
	    	(void) fputc('\n', f);
	else
		nr++;
	if (!any && !(opts & FPS_EVEN_IF_EMPTY) && ptype == P_TEXT)
		return False;
	while (nr) {
	    	if (ptype == P_RTF)
		    	fprintf(f, "\\par");
		if (ptype == P_TEXT)
			(void) fputc('\n', f);
		nr--;
	}
	if (ptype == P_RTF) {
	    	fprintf(f, "\n}\n%c", 0);
	}
	if (ptype == P_HTML) {
		fprintf(f, "%s
\n" " \n" "\n", current_high? "": ""); } return True; } #if !defined(_WIN32) /*[*/ /* Termination code for print text process. */ static void print_text_done(FILE *f, Boolean do_popdown #if defined(X3270_DISPLAY) /*[*/ _is_unused #endif /*]*/ ) { int status; status = pclose(f); if (status) { popup_an_error("Print program exited with status %d.", (status & 0xff00) > 8); } else { #if defined(X3270_DISPLAY) /*[*/ if (do_popdown) XtPopdown(print_text_shell); #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ if (appres.do_confirms) popup_an_info("Screen image printed."); #endif /*]*/ } } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* Callback for "OK" button on the print text popup. */ static void print_text_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *filter; FILE *f; filter = XawDialogGetValueString((Widget)client_data); if (!filter) { XtPopdown(print_text_shell); return; } if (!(f = popen(filter, "w"))) { popup_an_errno(errno, "popen(%s)", filter); return; } if (print_text_command == NULL || strcmp(print_text_command, filter)) { Replace(print_text_command, filter); ptc_changed = True; } (void) fprint_screen(f, P_TEXT, FPS_EVEN_IF_EMPTY, NULL); print_text_done(f, True); } /* Callback for "Plain Text" button on save text popup. */ static void save_text_plain_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *filename; FILE *f; filename = XawDialogGetValueString((Widget)client_data); if (!filename) { XtPopdown(save_text_shell); return; } if (!(f = fopen(filename, "a"))) { popup_an_errno(errno, "%s", filename); return; } (void) fprint_screen(f, P_TEXT, FPS_EVEN_IF_EMPTY, NULL); fclose(f); XtPopdown(save_text_shell); if (appres.do_confirms) popup_an_info("Screen image saved."); } /* Callback for "HTML" button on save text popup. */ static void save_text_html_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *filename; FILE *f; filename = XawDialogGetValueString((Widget)client_data); if (!filename) { XtPopdown(save_text_shell); return; } if (!(f = fopen(filename, "a"))) { popup_an_errno(errno, "%s", filename); return; } (void) fprint_screen(f, P_HTML, FPS_EVEN_IF_EMPTY, NULL); fclose(f); XtPopdown(save_text_shell); if (appres.do_confirms) popup_an_info("Screen image saved."); } /* Pop up the Print Text dialog, given a filter. */ static void popup_print_text(char *filter) { if (print_text_shell == NULL) { print_text_shell = create_form_popup("PrintText", print_text_callback, (XtCallbackProc)NULL, FORM_AS_IS); XtVaSetValues(XtNameToWidget(print_text_shell, ObjDialog), XtNvalue, filter, NULL); } popup_popup(print_text_shell, XtGrabExclusive); } /* Pop up the Save Text dialog. */ static void popup_save_text(char *filename) { if (save_text_shell == NULL) { save_text_shell = create_form_popup("SaveText", save_text_plain_callback, save_text_html_callback, FORM_AS_IS); } if (filename != CN) XtVaSetValues(XtNameToWidget(save_text_shell, ObjDialog), XtNvalue, filename, NULL); popup_popup(save_text_shell, XtGrabExclusive); } #endif /*]*/ #if defined(_WIN32) /*[*/ /* * A Windows version of something like mkstemp(). Creates a temporary * file in $TEMP, returning its path and an open file descriptor. */ int win_mkstemp(char **path, ptype_t ptype) { char *s; int fd; s = getenv("TEMP"); if (s == NULL) s = getenv("TMP"); if (s == NULL) s = "C:"; *path = xs_buffer("%s\\x3h%u.%s", s, getpid(), (ptype == P_RTF)? "rtf": "txt"); fd = open(*path, O_CREAT | O_RDWR, S_IREAD | S_IWRITE); if (fd < 0) { Free(*path); *path = NULL; } return fd; } /* * Find WORDPAD.EXE. */ #define PROGRAMFILES "%ProgramFiles%" char * find_wordpad(void) { char data[1024]; DWORD dlen; char *slash; static char *wp = NULL; HKEY key; if (wp != NULL) return wp; /* Get the shell print command for RTF files. */ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Classes\\rtffile\\shell\\print\\command", 0, KEY_READ, &key) != ERROR_SUCCESS) { return NULL; } dlen = sizeof(data); if (RegQueryValueEx(key, NULL, NULL, NULL, (LPVOID)data, &dlen) != ERROR_SUCCESS) { RegCloseKey(key); return NULL; } RegCloseKey(key); if (data[0] == '"') { char data2[1024]; char *q2; /* The first token is quoted; that's the path. */ strcpy(data2, data + 1); q2 = strchr(data2, '"'); if (q2 == NULL) { return NULL; } *q2 = '\0'; strcpy(data, data2); } else if ((slash = strchr(data, '/')) != NULL) { /* Find the "/p". */ *slash = '\0'; if (*(slash - 1) == ' ') *(slash - 1) = '\0'; } if (!strncasecmp(data, PROGRAMFILES, strlen(PROGRAMFILES))) { char *pf = getenv("PROGRAMFILES"); /* Substitute %ProgramFiles%. */ if (pf == NULL) { return NULL; } wp = xs_buffer("%s\\%s", pf, data + strlen(PROGRAMFILES)); } else { wp = NewString(data); } if (GetShortPathName(wp, data, sizeof(data)) != 0) { Free(wp); wp = NewString(data); } return wp; } #endif /*]*/ /* Print or save the contents of the screen as text. */ void PrintText_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; char *filter = CN; Boolean secure = appres.secure; ptype_t ptype = P_TEXT; Boolean use_file = False; Boolean use_string = False; char *temp_name = NULL; unsigned opts = FPS_EVEN_IF_EMPTY; char *caption = NULL; action_debug(PrintText_action, event, params, num_params); /* * Pick off optional arguments: * file directs the output to a file instead of a command; * must be the last keyword * html generates HTML output instead of ASCII text (and implies * 'file') * rtf generates RTF output instead of ASCII text (and implies * 'file') * modi print modified fields in italics * caption "text" * Adds caption text above the screen * %T% is replaced by a timestamp * secure disables the pop-up dialog, if this action is invoked from * a keymap * command directs the output to a command (this is the default, but * allows the command to be one of the other keywords); * must be the last keyword * string returns the data as a string, allowed only from scripts */ for (i = 0; i < *num_params; i++) { if (!strcasecmp(params[i], "file")) { use_file = True; i++; break; } else if (!strcasecmp(params[i], "html")) { ptype = P_HTML; use_file = True; } else if (!strcasecmp(params[i], "rtf")) { ptype = P_RTF; use_file = True; } else if (!strcasecmp(params[i], "secure")) { secure = True; } else if (!strcasecmp(params[i], "command")) { if ((ptype != P_TEXT) || use_file) { popup_an_error("%s: contradictory options", action_name(PrintText_action)); return; } i++; break; } else if (!strcasecmp(params[i], "string")) { if (ia_cause != IA_SCRIPT) { popup_an_error("%s(string) can only be used " "from a script", action_name(PrintText_action)); return; } use_string = True; use_file = True; } else if (!strcasecmp(params[i], "modi")) { opts |= FPS_MODIFIED_ITALIC; } else if (!strcasecmp(params[i], "caption")) { if (i == *num_params - 1) { popup_an_error("%s: mising caption parameter", action_name(PrintText_action)); return; } caption = params[++i]; } else { break; } } switch (*num_params - i) { case 0: /* Use the default. */ if (!use_file) { #if !defined(_WIN32) /*[*/ filter = get_resource(ResPrintTextCommand); #else /*][*/ filter = get_resource(ResPrinterName); /* XXX */ #endif /*]*/ } break; case 1: if (use_string) { popup_an_error("%s: extra arguments or invalid option(s)", action_name(PrintText_action)); return; } filter = params[i]; break; default: popup_an_error("%s: extra arguments or invalid option(s)", action_name(PrintText_action)); return; } #if defined(_WIN32) /*[*/ /* On Windows, use rich text. */ if (!use_string && !use_file && ptype != P_HTML) ptype = P_RTF; #endif /*]*/ if (filter != CN && filter[0] == '@') { /* * Starting the PrintTextCommand resource value with '@' * suppresses the pop-up dialog, as does setting the 'secure' * resource. */ secure = True; filter++; } if (!use_file && (filter == CN || !*filter)) #if !defined(_WIN32) /*[*/ filter = "lpr"; #else /*][*/ filter = CN; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ if (secure || ia_cause == IA_COMMAND || ia_cause == IA_MACRO || ia_cause == IA_SCRIPT) #endif /*]*/ { FILE *f; int fd = -1; /* Invoked non-interactively. */ if (use_file) { if (use_string) { #if defined(_WIN32) /*[*/ fd = win_mkstemp(&temp_name, ptype); #else /*][*/ temp_name = NewString("/tmp/x3hXXXXXX"); fd = mkstemp(temp_name); #endif /*]*/ if (fd < 0) { popup_an_errno(errno, "mkstemp"); return; } f = fdopen(fd, "w+"); } else { if (filter == CN || !*filter) { popup_an_error("%s: missing filename", action_name(PrintText_action)); return; } f = fopen(filter, "a"); } } else { #if !defined(_WIN32) /*[*/ f = popen(filter, "w"); #else /*][*/ fd = win_mkstemp(&temp_name, ptype); if (fd < 0) { popup_an_errno(errno, "mkstemp"); return; } f = fdopen(fd, "w+"); #endif /*]*/ } if (f == NULL) { popup_an_errno(errno, "%s: %s", action_name(PrintText_action), filter); if (fd >= 0) { (void) close(fd); } if (temp_name) { unlink(temp_name); Free(temp_name); } return; } (void) fprint_screen(f, ptype, opts, caption); if (use_string) { char buf[8192]; rewind(f); while (fgets(buf, sizeof(buf), f) != NULL) action_output("%s", buf); } if (use_file) fclose(f); else { #if !defined(_WIN32) /*[*/ print_text_done(f, False); #else /*][*/ char *wp; fclose(f); wp = find_wordpad(); if (wp == NULL) { popup_an_error("%s: Can't find WORDPAD.EXE", action_name(PrintText_action)); } else { char *cmd; if (filter != CN) cmd = xs_buffer("start /wait /min %s " "/pt \"%s\" \"%s\"", wp, temp_name, filter); else cmd = xs_buffer("start /wait /min %s " "/p \"%s\"", wp, temp_name); system(cmd); Free(cmd); } #if !defined(S3270) /*[*/ if (appres.do_confirms) popup_an_info("Screen image printed.\n"); #endif /*]*/ #endif /*]*/ } if (temp_name) { unlink(temp_name); Free(temp_name); } return; } #if defined(X3270_DISPLAY) /*[*/ /* Invoked interactively -- pop up the confirmation dialog. */ if (use_file) { popup_save_text(filter); } else { popup_print_text(filter); } #endif /*]*/ } #if defined(X3270_DISPLAY) /*[*/ #if defined(X3270_MENUS) /*[*/ /* Callback for Print Text menu option. */ void print_text_option(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { char *filter = get_resource(ResPrintTextCommand); Boolean secure = appres.secure; ptype_t ptype = P_TEXT; if (print_text_command != NULL) filter = print_text_command; else { filter = get_resource(ResPrintTextCommand); if (filter == NULL || !*filter) filter = "lpr"; print_text_command = XtNewString(filter); } /* Decode the filter. */ if (filter != CN && *filter == '@') { secure = True; filter++; } if (filter == CN || !*filter) filter = "lpr"; if (secure) { FILE *f; /* Print the screen without confirming. */ if (!(f = popen(filter, "w"))) { popup_an_errno(errno, "popen(%s)", filter); return; } (void) fprint_screen(f, ptype, FPS_EVEN_IF_EMPTY, NULL); print_text_done(f, False); } else { /* Pop up a dialog to confirm or modify their choice. */ popup_print_text(filter); } } /* Callback for Save Text menu option. */ void save_text_option(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Pop up a dialog to confirm or modify their choice. */ popup_save_text(CN); } #endif /*]*/ /* Print Window popup */ /* * Printing the window bitmap is a rather convoluted process: * The PrintWindow action calls PrintWindow_action(), or a menu option calls * print_window_option(). * print_window_option() pops up the dialog. * The OK button on the dialog triggers print_window_callback. * print_window_callback pops down the dialog, then schedules a timeout * 1 second away. * When the timeout expires, it triggers snap_it(), which finally calls * xwd. * The timeout indirection is necessary because xwd prints the actual contents * of the window, including any pop-up dialog in front of it. We pop down the * dialog, but then it is up to the server and Xt to send us the appropriate * expose events to repaint our window. Hopefully, one second is enough to do * that. */ /* Termination procedure for window print. */ static void print_window_done(int status) { if (status) popup_an_error("Print program exited with status %d.", (status & 0xff00) >> 8); else if (appres.do_confirms) popup_an_info("Bitmap printed."); } /* Timeout callback for window print. */ static void snap_it(XtPointer closure _is_unused, XtIntervalId *id _is_unused) { if (!print_window_command) return; XSync(display, 0); print_window_done(system(print_window_command)); } /* Callback for "OK" button on print window popup. */ static void print_window_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { print_window_command = XawDialogGetValueString((Widget)client_data); XtPopdown(print_window_shell); if (print_window_command) (void) XtAppAddTimeOut(appcontext, 1000, snap_it, 0); } /* Print the contents of the screen as a bitmap. */ void PrintWindow_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { char *filter = get_resource(ResPrintWindowCommand); char *fb = XtMalloc(strlen(filter) + 16); char *xfb = fb; Boolean secure = appres.secure; action_debug(PrintWindow_action, event, params, num_params); if (*num_params > 0) filter = params[0]; if (*num_params > 1) popup_an_error("%s: extra arguments ignored", action_name(PrintWindow_action)); if (filter == CN) { popup_an_error("%s: no %s defined", action_name(PrintWindow_action), ResPrintWindowCommand); return; } (void) sprintf(fb, filter, XtWindow(toplevel)); if (fb[0] == '@') { secure = True; xfb = fb + 1; } if (secure) { print_window_done(system(xfb)); Free(fb); return; } if (print_window_shell == NULL) print_window_shell = create_form_popup("printWindow", print_window_callback, (XtCallbackProc)NULL, FORM_AS_IS); XtVaSetValues(XtNameToWidget(print_window_shell, ObjDialog), XtNvalue, fb, NULL); popup_popup(print_window_shell, XtGrabExclusive); } #if defined(X3270_MENUS) /*[*/ /* Callback for menu Print Window option. */ void print_window_option(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { Cardinal zero = 0; PrintWindow_action(w, (XEvent *)NULL, (String *)NULL, &zero); } #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/config.guess0000755000175000017500000012753411254565704016621 0ustar bastianbastian#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ibm-3270-3.3.10ga4/tcl3270/idlec.h0000644000175000017500000000425711254565704015526 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * idlec.h * Global declarations for idle.c. */ enum idle_enum { IDLE_DISABLED = 0, IDLE_SESSION = 1, IDLE_PERM = 2 }; #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ extern void cancel_idle_timer(void); extern void idle_init(void); extern void reset_idle_timer(void); extern char *get_idle_command(); extern char *get_idle_timeout(); extern Boolean idle_changed; extern char *idle_command; extern char *idle_timeout_string; extern enum idle_enum idle_user_enabled; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ extern void popup_idle(void); #endif /*]*/ #else /*][*/ #define cancel_idle_timer() #define idle_init() #define reset_idle_timer() #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/utf8c.h0000644000175000017500000000344711254565704015477 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utf8c.h * 3270 Terminal Emulator * UTF-8 conversions */ extern char *locale_codeset; extern Boolean is_utf8; extern void set_codeset(char *codeset_name); extern int unicode_to_utf8(ucs4_t ucs4, char *utf8); extern int utf8_to_unicode(const char *utf8, int len, ucs4_t *ucs4); ibm-3270-3.3.10ga4/tcl3270/conf.h.in0000644000175000017500000000405411254565711015771 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * conf.h * System-specific #defines for libraries and library functions. */ /* Libraries. */ #undef HAVE_LIBSSL /* Header files. */ #undef HAVE_SYS_SELECT_H #undef HAVE_PTY_H #undef HAVE_LIBUTIL_H #undef HAVE_UTIL_H #undef HAVE_TCLEXTEND_H /* Uncommon functions. */ #undef HAVE_VASPRINTF #undef HAVE_FSEEKO #undef HAVE_FORKPTY /* Configuration options. */ #undef USE_ICONV /* Optional parts. */ #undef X3270_ANSI #undef X3270_APL #undef X3270_DBCS #undef X3270_FT #undef X3270_LOCAL_PROCESS #undef X3270_TN3270E #undef X3270_TRACE ibm-3270-3.3.10ga4/tcl3270/mkfb.c0000644000175000017500000002706611254565704015363 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * mkfb.c * Utility to create RDB string definitions from a simple #ifdef'd .ad * file */ #include "conf.h" #include #include #include #include #define BUFSZ 1024 /* input line buffer size */ #define ARRSZ 8192 /* output array size */ #define SSSZ 10 /* maximum nested ifdef */ unsigned aix[ARRSZ]; /* fallback array indices */ unsigned xlno[ARRSZ]; /* fallback array line numbers */ unsigned n_fallbacks = 0; /* number of fallback entries */ /* ifdef state stack */ #define MODE_COLOR 0x00000001 #define MODE_FT 0x00000002 #define MODE_TRACE 0x00000004 #define MODE_MENUS 0x00000008 #define MODE_ANSI 0x00000010 #define MODE_KEYPAD 0x00000020 #define MODE_APL 0x00000040 #define MODE_PRINTER 0x00000080 #define MODE_STANDALONE 0x00000100 #define MODE_SCRIPT 0x00000200 #define MODE_DBCS 0x00000400 #define MODE__WIN32 0x00000800 #define MODEMASK 0x00000fff struct { unsigned long ifdefs; unsigned long ifndefs; unsigned lno; } ss[SSSZ]; unsigned ssp = 0; struct { const char *name; unsigned long mask; } parts[] = { { "COLOR", MODE_COLOR }, { "X3270_FT", MODE_FT }, { "X3270_TRACE", MODE_TRACE }, { "X3270_MENUS", MODE_MENUS }, { "X3270_ANSI", MODE_ANSI }, { "X3270_KEYPAD", MODE_KEYPAD }, { "X3270_APL", MODE_APL }, { "X3270_PRINTER", MODE_PRINTER }, { "STANDALONE", MODE_STANDALONE }, { "X3270_SCRIPT", MODE_SCRIPT }, { "X3270_DBCS", MODE_DBCS }, { "_WIN32", MODE__WIN32 } }; #define NPARTS (sizeof(parts)/sizeof(parts[0])) unsigned long is_defined = MODE_COLOR | #if defined(X3270_FT) MODE_FT #else 0 #endif | #if defined(X3270_TRACE) MODE_TRACE #else 0 #endif | #if defined(X3270_MENUS) MODE_MENUS #else 0 #endif | #if defined(X3270_ANSI) MODE_ANSI #else 0 #endif | #if defined(X3270_KEYPAD) MODE_KEYPAD #else 0 #endif | #if defined(X3270_APL) MODE_APL #else 0 #endif | #if defined(X3270_PRINTER) MODE_PRINTER #else 0 #endif | #if defined(X3270_SCRIPT) MODE_SCRIPT #else 0 #endif | #if defined(X3270_DBCS) MODE_DBCS #else 0 #endif | #if defined(_WIN32) MODE__WIN32 #else 0 #endif ; unsigned long is_undefined; char *me; void emit(FILE *t, int ix, char c); void usage(void) { fprintf(stderr, "usage: %s [infile [outfile]]\n", me); exit(1); } int main(int argc, char *argv[]) { char buf[BUFSZ]; int lno = 0; int cc = 0; unsigned i; int continued = 0; const char *filename = "standard input"; FILE *u, *t, *tc = NULL, *tm = NULL, *o; int cmode = 0; unsigned long ifdefs; unsigned long ifndefs; int last_continue = 0; /* Parse arguments. */ if ((me = strrchr(argv[0], '/')) != (char *)NULL) me++; else me = argv[0]; if (argc > 1 && !strcmp(argv[1], "-c")) { cmode = 1; is_defined |= MODE_STANDALONE; argc--; argv++; } switch (argc) { case 1: break; case 2: case 3: if (strcmp(argv[1], "-")) { if (freopen(argv[1], "r", stdin) == (FILE *)NULL) { perror(argv[1]); exit(1); } filename = argv[1]; } break; default: usage(); } is_undefined = MODE_COLOR | (~is_defined & MODEMASK); /* Do #ifdef, comment and whitespace processing first. */ u = tmpfile(); if (u == NULL) { perror("tmpfile"); exit(1); } while (fgets(buf, BUFSZ, stdin) != (char *)NULL) { char *s = buf; int sl; unsigned i; lno++; /* Skip leading white space. */ while (isspace(*s)) s++; if (cmode && (!strncmp(s, "x3270.", 6) || !strncmp(s, "x3270*", 6))) { s += 6; } /* Remove trailing white space. */ while ((sl = strlen(s)) && isspace(s[sl-1])) s[sl-1] = '\0'; /* Skip comments and empty lines. */ if ((!last_continue && *s == '!') || !*s) continue; /* Check for simple if[n]defs. */ if (*s == '#') { int ifnd = 1; if (!strncmp(s, "#ifdef ", 7) || !(ifnd = strncmp(s, "#ifndef ", 8))) { char *tk; if (ssp >= SSSZ) { fprintf(stderr, "%s, line %d: Stack overflow\n", filename, lno); exit(1); } ss[ssp].ifdefs = 0L; ss[ssp].ifndefs = 0L; ss[ssp].lno = lno; tk = s + 7 + !ifnd; for (i = 0; i < NPARTS; i++) { if (!strcmp(tk, parts[i].name)) { if (!ifnd) ss[ssp++].ifndefs = parts[i].mask; else ss[ssp++].ifdefs = parts[i].mask; break; } } if (i >= NPARTS) { fprintf(stderr, "%s, line %d: Unknown condition\n", filename, lno); exit(1); } continue; } else if (!strcmp(s, "#else")) { unsigned long tmp; if (!ssp) { fprintf(stderr, "%s, line %d: Missing #if[n]def\n", filename, lno); exit(1); } tmp = ss[ssp-1].ifdefs; ss[ssp-1].ifdefs = ss[ssp-1].ifndefs; ss[ssp-1].ifndefs = tmp; } else if (!strcmp(s, "#endif")) { if (!ssp) { fprintf(stderr, "%s, line %d: Missing #if[n]def\n", filename, lno); exit(1); } ssp--; } else { fprintf(stderr, "%s, line %d: Unrecognized # directive\n", filename, lno); exit(1); } continue; } /* Figure out if there's anything to emit. */ /* First, look for contradictions. */ ifdefs = 0; ifndefs = 0; for (i = 0; i < ssp; i++) { ifdefs |= ss[i].ifdefs; ifndefs |= ss[i].ifndefs; } if (ifdefs & ifndefs) { #ifdef DEBUG_IFDEFS fprintf(stderr, "contradiction, line %d\n", lno); #endif continue; } /* Then, apply the actual values. */ if (ifdefs && (ifdefs & is_defined) != ifdefs) { #ifdef DEBUG_IFDEFS fprintf(stderr, "ifdef failed, line %d\n", lno); #endif continue; } if (ifndefs && (ifndefs & is_undefined) != ifndefs) { #ifdef DEBUG_IFDEFS fprintf(stderr, "ifndef failed, line %d\n", lno); #endif continue; } /* Emit the text. */ fprintf(u, "%lx %lx %d\n%s\n", ifdefs, ifndefs, lno, s); last_continue = strlen(s) > 0 && s[strlen(s) - 1] == '\\'; } if (ssp) { fprintf(stderr, "%d missing #endif(s) in %s\n", ssp, filename); fprintf(stderr, "last #ifdef was at line %u\n", ss[ssp-1].lno); exit(1); } /* Re-scan, emitting code this time. */ rewind(u); t = tmpfile(); if (t == NULL) { perror("tmpfile"); exit(1); } if (!cmode) { tc = tmpfile(); if (tc == NULL) { perror("tmpfile"); exit(1); } tm = tmpfile(); if (tm == NULL) { perror("tmpfile"); exit(1); } } /* Emit the initial boilerplate. */ fprintf(t, "/* This file was created automatically from %s by mkfb. */\n\n", filename); if (cmode) { fprintf(t, "#include \"globals.h\"\n"); fprintf(t, "static unsigned char fsd[] = {\n"); } else { fprintf(t, "unsigned char common_fallbacks[] = {\n"); fprintf(tc, "unsigned char color_fallbacks[] = {\n"); fprintf(tm, "unsigned char mono_fallbacks[] = {\n"); } /* Scan the file, emitting the fsd array and creating the indices. */ while (fscanf(u, "%lx %lx %d\n", &ifdefs, &ifndefs, &lno) == 3) { char *s = buf; char c; int white; FILE *t_this = t; int ix = 0; if (fgets(buf, BUFSZ, u) == NULL) break; if (strlen(buf) > 0 && buf[strlen(buf)-1] == '\n') buf[strlen(buf)-1] = '\0'; #if 0 fprintf(stderr, "%lx %lx %d %s\n", ifdefs, ifndefs, lno, buf); #endif /* Add array offsets. */ if (cmode) { /* Ignore color. Accumulate offsets into an array. */ if (n_fallbacks >= ARRSZ) { fprintf(stderr, "%s, line %d: Buffer overflow\n", filename, lno); exit(1); } aix[n_fallbacks] = cc; xlno[n_fallbacks++] = lno; } else { /* Use color to decide which file to write into. */ if (!(ifdefs & MODE_COLOR) && !(ifndefs & MODE_COLOR)) { /* Both. */ t_this = t; ix = 0; } else if (ifdefs & MODE_COLOR) { /* Just color. */ t_this = tc; ix = 1; } else { /* Just mono. */ t_this = tm; ix = 2; } } continued = 0; white = 0; while ((c = *s++) != '\0') { if (c == ' ' || c == '\t') white++; else if (white) { emit(t_this, ix, ' '); cc++; white = 0; } switch (c) { case ' ': case '\t': break; case '#': if (!cmode) { emit(t_this, ix, '\\'); emit(t_this, ix, '#'); cc += 2; } else { emit(t_this, ix, c); cc++; } break; case '\\': if (*s == '\0') { continued = 1; break; } else if (cmode) { switch ((c = *s++)) { case 't': c = '\t'; break; case 'n': c = '\n'; break; default: break; } } /* else fall through */ default: emit(t_this, ix, c); cc++; break; } } if (white) { emit(t_this, ix, ' '); cc++; white = 0; } if (!continued) { if (cmode) emit(t_this, ix, 0); else emit(t_this, ix, '\n'); cc++; } } fclose(u); if (cmode) fprintf(t, "};\n\n"); else { emit(t, 0, 0); fprintf(t, "};\n\n"); emit(tc, 0, 0); fprintf(tc, "};\n\n"); emit(tm, 0, 0); fprintf(tm, "};\n\n"); } /* Open the output file. */ if (argc == 3) { o = fopen(argv[2], "w"); if (o == NULL) { perror(argv[2]); exit(1); } } else o = stdout; /* Copy tmp to output. */ rewind(t); if (!cmode) { rewind(tc); rewind(tm); } while (fgets(buf, sizeof(buf), t) != NULL) { fprintf(o, "%s", buf); } if (!cmode) { while (fgets(buf, sizeof(buf), tc) != NULL) { fprintf(o, "%s", buf); } while (fgets(buf, sizeof(buf), tm) != NULL) { fprintf(o, "%s", buf); } } if (cmode) { /* Emit the fallback array. */ fprintf(o, "String fallbacks[%u] = {\n", n_fallbacks + 1); for (i = 0; i < n_fallbacks; i++) { fprintf(o, "\t(String)&fsd[%u], /* line %u */\n", aix[i], xlno[i]); } fprintf(o, "\t(String)NULL\n};\n\n"); /* Emit some test code. */ fprintf(o, "%s", "#if defined(DEBUG) /*[*/\n\ #include \n\ int\n\ main(int argc, char *argv[])\n\ {\n\ int i;\n\ \n\ for (i = 0; fallbacks[i] != NULL; i++)\n\ printf(\"%d: %s\\n\", i, fallbacks[i]);\n\ return 0;\n\ }\n"); fprintf(o, "#endif /*]*/\n\n"); } if (o != stdout) fclose(o); fclose(t); if (!cmode) { fclose(tc); fclose(tm); } return 0; } static int n_out[3] = { 0, 0, 0 }; void emit(FILE *t, int ix, char c) { if (n_out[ix] >= 19) { fprintf(t, "\n"); n_out[ix] = 0; } fprintf(t, "%3d,", (unsigned char)c); n_out[ix]++; } ibm-3270-3.3.10ga4/tcl3270/seec.h0000644000175000017500000000430011254565704015352 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * seec.h * Declarations for see.c * */ #if defined(X3270_TRACE) /*[*/ extern const char *see_aid(unsigned char code); extern const char *see_attr(unsigned char fa); extern const char *see_color(unsigned char setting); extern const char *see_ebc(unsigned char ch); extern const char *see_efa(unsigned char efa, unsigned char value); extern const char *see_efa_only(unsigned char efa); extern const char *see_qcode(unsigned char id); extern const char *unknown(unsigned char value); #else /*][*/ #define see_aid 0 && #define see_attr 0 && #define see_color 0 && #define see_ebc 0 && #define see_efa 0 && #define see_efa_only 0 && #define see_qcode 0 && #define unknown 0 && #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/unicode_dbcs.c0000644000175000017500000711141411254565704017063 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * unicode.c * A Windows console-based 3270 Terminal Emulator * DBCS EBCDIC/Unicode translation functions */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include "3270ds.h" #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" /* * DBCS EBCDIC-to-Unicode translation tables. */ #if defined(X3270_DBCS) /*[*/ typedef struct { char *name; const char *codepage; const char *display_charset; const char *u2ebc[512]; /* Unicode to EBCDIC vectors */ const char *ebc2u[512]; /* EBCDIC to Unicode vectors */ } uni16_t; static uni16_t uni16[] = { { "cp930", "0x080b012c" /* 2059, 300 */, "jisx0208.1983-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-300_P110-1997 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x6a\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x43\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x00\x00\x44\x4a\x00\x00\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x43\x77\x43\x78\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x73\x00\x00\x44\xee\x44\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6e\x00\x00\x43\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x43\x70\x00\x00\x43\x4e\x43\x71\x00\x00\x00\x00\x00\x00\x43\x4f\x43\x64\x00\x00\x00\x00\x43\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5f\x00\x00\x00\x00\x43\x61\x44\x4d\x00\x00\x43\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6c\x43\x6d\x43\x6b\x43\x6a\x43\x62\x43\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x43\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x43\x5d\x43\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x43\x68\x43\x69\x00\x00\x00\x00\x43\x66\x43\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ "\x43\x7c\x43\xb7\x43\x7d\x43\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7e\x00\x00\x00\x00\x43\xb9\x43\x7f\x00\x00\x00\x00\x43\xe1\x43\xb1\x00\x00\x00\x00\x43\xe3\x43\xb0\x00\x00\x00\x00\x43\xe2\x43\xb2\x43\xee\x00\x00\x00\x00\x43\xe9\x00\x00\x00\x00\x43\xe4\x43\xb4\x43\xf0\x00\x00\x00\x00\x43\xeb\x00\x00\x00\x00\x43\xe6\x43\xb3\x00\x00\x00\x00\x43\xea\x43\xef\x00\x00\x00\x00\x43\xe5\x43\xb5\x00\x00\x00\x00\x43\xec\x43\xf1\x00\x00\x00\x00\x43\xe7\x43\xb6\x00\x00\x00\x00\x43\xed\x00\x00\x00\x00\x43\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x76\x00\x00\x00\x00\x43\x75\x00\x00\x43\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x45\x41\x4b\xce\x00\x00\x45\x47\x00\x00\x00\x00\x00\x00\x45\x4d\x49\xd3\x45\x43\x45\x5e\x45\x5f\x00\x00\x46\xaf\x47\x89\x00\x00\x56\x42\x4d\xec\x00\x00\x00\x00\x4f\x97\x56\x43\x46\x9b\x57\x75\x4d\x56\x50\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x62\x00\x00\x00\x00\x48\x83\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7c\x00\x00\x56\x44\x00\x00\x56\x45\x00\x00\x00\x00\x45\x5c\x00\x00\x00\x00\x00\x00\x56\x46\x4c\xb8\x00\x00\x00\x00\x00\x00\x56\x47\x00\x00\x46\x7a\x48\xab\x00\x00\x47\x62\x54\xc8\x00\x00\x00\x00\x56\x48\x00\x00\x00\x00\x56\x49\x4b\x9f\x00\x00\x45\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xd8\x00\x00\x55\xa9\x54\xa5\x4f\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd0\x56\x4a\x49\x47\x56\x4b\x4b\xbd\x00\x00\x00\x00\x00\x00\x45\x49\x4e\xb5\x47\x49\x00\x00\x00\x00\x56\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbf\x00\x00\x4a\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x70\x00\x00", /* 4e80 */ "\x47\xc0\x00\x00\x56\x4d\x00\x00\x00\x00\x56\x4e\x4b\xb1\x00\x00\x47\xc2\x48\x96\x56\x4f\x45\xce\x45\x42\x00\x00\x56\x50\x00\x00\x00\x00\x49\x9d\x4b\x74\x00\x00\x45\x45\x45\x6d\x00\x00\x00\x00\x4b\xe4\x50\xe8\x00\x00\x55\xdc\x48\x67\x00\x00\x56\x52\x51\x67\x56\x53\x4c\xce\x56\x54\x00\x00\x47\x8e\x4f\x7f\x4f\xfa\x00\x00\x4b\xac\x00\x00\x00\x00\x4b\x73\x45\x75\x4e\x52\x49\x9c\x00\x00\x56\x55\x00\x00\x00\x00\x56\x56\x00\x00\x00\x00\x56\x57\x00\x00\x00\x00\x00\x00\x45\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd9\x47\x76\x56\x5c\x00\x00\x56\x5a\x00\x00\x56\x5b\x50\x85\x00\x00\x00\x00\x45\xe0\x48\x4b\x00\x00\x56\x59\x56\x58\x4b\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x54\x65\x48\xb5\x47\x55\x56\x5e\x47\x5d\x48\xa2\x00\x00\x00\x00\x00\x00\x44\x5c\x56\x5f\x56\x61\x00\x00\x56\x5d\x00\x00\x45\x9a\x49\xc3\x46\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x60\x4d\x71\x00\x00\x4d\xed\x00\x00\x48\x69\x00\x00\x00\x00\x00\x00\x48\xb2\x53\x41\x00\x00\x00\x00\x00\x00\x4a\x55\x56\x62\x00\x00\x00\x00\x00\x00", /* 4f00 */ "\x56\x65\x47\xd2\x00\x00\x56\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x63\x45\xb2\x00\x00\x00\x00\x4d\x99\x4e\x9f\x4a\x83\x50\xf6\x4a\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xbd\x00\x00\x56\x64\x48\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xa6\x56\x68\x00\x00\x00\x00\x00\x00\x49\xc9\x00\x00\x54\x4a\x00\x00\x46\xf4\x56\x6a\x50\x8a\x00\x00\x4b\xbc\x54\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xdf\x00\x00\x00\x00\x4e\xfe\x56\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xc8\x48\xa4\x46\xe0\x45\x76\x4c\xe6\x00\x00\x46\x96\x00\x00\x47\x70\x56\x6e\x56\x6b\x00\x00\x49\xc1\x56\x67\x56\x6f\x45\x94\x56\x69\x56\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7c\x56\x7a\x00\x00\x00\x00\x48\x76\x00\x00\x4b\x94\x51\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x56\x77\x54\x62\x00\x00\x00\x00\x48\xb6", /* 4f80 */ "\x00\x00\x00\x00\x00\x00\x4f\x98\x00\x00\x00\x00\x56\x7d\x00\x00\x56\x72\x00\x00\x56\x71\x4a\x46\x00\x00\x4f\xc2\x00\x00\x56\x73\x00\x00\x4f\x8d\x56\x70\x00\x00\x56\x7b\x00\x00\x56\x7e\x00\x00\x56\x76\x00\x00\x56\x74\x48\xbc\x00\x00\x4a\x9e\x00\x00\x00\x00\x52\xec\x47\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x78\x00\x00\x56\x75\x53\xb9\x53\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8c\x55\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4c\x00\x00\x00\x00\x48\x51\x4a\x6a\x54\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x52\x94\x46\x60\x00\x00\x00\x00\x56\x86\x56\x80\x00\x00\x56\x85\x56\x83\x00\x00\x00\x00\x56\x7f\x00\x00\x00\x00\x4e\x97\x56\x81\x00\x00\x56\x84\x56\x82\x00\x00\x45\xaa\x00\x00\x53\xc4\x52\xec\x45\xa5\x00\x00\x4b\x4a\x56\x87\x56\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xde\x56\x96\x00\x00\x00\x00\x00\x00\x4c\xe1\x00\x00\x4d\xb1\x51\xf8\x00\x00\x50\xf9\x00\x00\x4e\x67\x00\x00\x00\x00\x00\x00\x56\x95\x56\x94", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8f\x56\x99\x00\x00\x00\x00\x45\xd6\x00\x00\x49\xfa\x00\x00\x4a\xc4\x00\x00\x56\xa1\x00\x00\x56\x97\x4b\x6a\x00\x00\x56\x8c\x00\x00\x53\x43\x00\x00\x00\x00\x4c\xae\x56\x89\x00\x00\x00\x00\x00\x00\x56\x98\x4a\xd0\x00\x00\x56\x90\x56\x91\x55\x69\x48\x7d\x56\x8e\x52\xf1\x00\x00\x56\x8b\x56\x92\x56\x8d\x4d\x51\x56\x93\x4f\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x63\x00\x00\x00\x00\x52\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8a\x00\x00\x56\xa4\x56\x9a\x00\x00\x00\x00\x56\xa2\x56\x9b\x56\x9e\x4d\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x49\x56\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x56\x9c\x56\xa0\x00\x00\x00\x00\x00\x00\x56\x9f\x00\x00\x4e\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xa5\x00\x00\x00\x00\x00\x00\x56\xa3\x00\x00\x54\xd2\x00\x00\x49\x43\x4f\x95\x50\xc3\x00\x00\x56\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x50\x59\x00\x00\x00\x00", /* 5080 */ "\x56\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x56\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xe7\x00\x00\x00\x00\x00\x00\x4f\xc3\x00\x00\x00\x00\x56\xa8\x00\x00\x00\x00\x00\x00\x50\x9c\x46\xac\x56\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x43\x54\xda\x00\x00\x00\x00\x00\x00\x00\x00\x56\xad\x56\xb0\x56\xab\x4b\x58\x00\x00\x4c\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x43\x00\x00\x00\x00\x00\x00\x56\xb1\x00\x00\x00\x00\x4f\xc9\x00\x00\x00\x00\x00\x00\x56\xae\x56\xaf\x00\x00\x00\x00\x48\xec\x00\x00\x4b\xba\x00\x00\x55\xad\x00\x00\x00\x00\x00\x00\x4a\xbb\x52\xd4\x00\x00\x56\xb5\x00\x00\x4d\x82\x00\x00\x00\x00\x00\x00\x56\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb7\x00\x00\x56\xb4\x00\x00\x4e\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb6\x56\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb2\x56\xba\x00\x00\x00\x00\x00\x00\x56\xb9\x00\x00\x55\x78\x00\x00\x00\x00\x00\x00\x00\x00", /* 5100 */ "\x49\xca\x56\xbc\x56\xbd\x00\x00\x45\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x56\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6f\x00\x00\x56\xc0\x56\xbf\x56\xc1\x00\x00\x52\x90\x00\x00\x56\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa2\x00\x00\x56\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc4\x00\x00\x00\x00\x56\xc3\x56\xc6\x56\xc5\x00\x00\x00\x00\x56\xc7\x56\xc8\x4c\x91\x00\x00\x46\x95\x4b\xe8\x48\xc9\x4d\xf3\x55\x5a\x47\xa2\x45\x9e\x56\xc9\x47\x9e\x56\xca\x4b\x56\x50\x50\x00\x00\x46\x9f\x00\x00\x56\xcb\x00\x00\x56\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4b\x00\x00\x51\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xcd\x00\x00\x56\xce\x46\x65\x00\x00\x00\x00\x46\xb1\x56\xcf\x56\xd0\x45\x48\x46\xbb\x45\x46\x56\xd1\x00\x00\x00\x00\x47\xb3\x00\x00\x00\x00\x00\x00\x46\x49\x4f\x67\x47\xaf\x47\xc9\x00\x00\x00\x00\x00\x00\x48\xf4\x00\x00\x00\x00\x00\x00", /* 5180 */ "\x56\xd2\x00\x00\x56\xd3\x00\x00\x00\x00\x45\x8e\x46\x45\x00\x00\x00\x00\x56\xd6\x4e\xa1\x00\x00\x56\xd5\x48\xeb\x00\x00\x56\xd7\x61\x9d\x56\xd8\x4f\x8f\x56\xd9\x00\x00\x56\xda\x56\xdb\x52\x7e\x00\x00\x48\xc4\x00\x00\x00\x00\x00\x00\x56\xdc\x00\x00\x00\x00\x4e\x7b\x00\x00\x56\xdf\x00\x00\x56\xdd\x54\x67\x56\xde\x00\x00\x48\x78\x56\xe0\x56\xe1\x56\xe2\x4b\xde\x00\x00\x00\x00\x00\x00\x56\xe6\x56\xe4\x56\xe5\x56\xe3\x50\xc9\x56\xe7\x51\x46\x48\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xe9\x56\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xdc\x56\xea\x4f\x80\x00\x00\x00\x00\x56\xeb\x00\x00\x55\xf9\x53\x44\x4b\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x77\x00\x00\x00\x00\x00\x00\x00\x00\x56\xec\x68\x84\x4e\xd9\x00\x00\x00\x00\x56\xed\x4d\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x48\xe6\x55\x8a\x00\x00\x56\xee\x54\x9e\x00\x00\x56\xef\x56\xf0\x00\x00\x00\x00\x56\xf1\x51\xac\x00\x00\x00\x00\x00\x00\x56\xf2\x51\xec\x00\x00\x50\xcf\x50\xe6\x45\x9b\x00\x00\x00\x00\x4b\xb6\x56\xf3\x00\x00", /* 5200 */ "\x4c\x50\x00\x00\x00\x00\x4f\x44\x56\xf4\x00\x00\x45\xb4\x47\x65\x4b\x9b\x00\x00\x4c\xd7\x56\xf5\x00\x00\x00\x00\x54\xe3\x00\x00\x00\x00\x4c\x52\x00\x00\x00\x00\x56\xf6\x56\xf7\x00\x00\x4b\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x5c\x46\xdd\x00\x00\x56\xf8\x00\x00\x45\xbc\x56\xf9\x00\x00\x00\x00\x00\x00\x56\xfa\x00\x00\x4c\xdd\x00\x00\x00\x00\x56\xfb\x00\x00\x00\x00\x46\xc4\x48\xcf\x4b\x6b\x56\xfc\x4b\xc0\x4b\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x79\x56\xfd\x00\x00\x00\x00\x47\x4d\x00\x00\x00\x00\x4a\x90\x56\xfe\x51\xae\x45\xaf\x00\x00\x57\x41\x00\x00\x00\x00\x00\x00\x00\x00\x57\x43\x00\x00\x51\x99\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc7\x00\x00\x54\x81\x57\x42\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xd3\x47\x66\x54\x81\x00\x00\x00\x00\x00\x00\x57\x48\x57\x45\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4e\x4d\x85\x57\x44\x47\xd6\x57\x46\x57\x47\x4b\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x4a\x00\x00\x57\x49", /* 5280 */ "\x00\x00\x00\x00\x00\x00\x55\xd6\x00\x00\x00\x00\x00\x00\x49\xf0\x57\x4c\x51\x85\x00\x00\x00\x00\x00\x00\x57\x4b\x00\x00\x00\x00\x00\x00\x57\x4e\x57\x4d\x00\x00\x55\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf7\x57\x4f\x00\x00\x00\x00\x48\x70\x45\x9f\x00\x00\x00\x00\x4e\x68\x00\x00\x00\x00\x57\x50\x00\x00\x00\x00\x46\x71\x4a\x64\x54\xc6\x57\x51\x57\x52\x00\x00\x5f\xaa\x00\x00\x4d\x92\x00\x00\x00\x00\x48\xa9\x57\x54\x00\x00\x00\x00\x00\x00\x49\x78\x00\x00\x00\x00\x57\x53\x00\x00\x55\x6a\x00\x00\x57\x56\x57\x55\x00\x00\x54\xb1\x00\x00\x4e\xef\x00\x00\x46\x9c\x00\x00\x48\xce\x00\x00\x00\x00\x00\x00\x57\x57\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd6\x00\x00\x00\x00\x45\xe4\x00\x00\x53\x92\x4b\x9a\x46\xed\x00\x00\x57\x58\x00\x00\x45\xb5\x57\x59\x4a\xe1\x57\x5c\x00\x00\x47\xee\x57\x5a\x49\x9f\x00\x00\x57\x5b\x4c\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7a\x57\x5d\x00\x00\x57\x5e\x00\x00\x00\x00\x57\x5f\x57\x60\x54\x70\x00\x00\x00\x00\x00\x00\x51\xe9\x52\x97", /* 5300 */ "\x57\x61\x4f\x5b\x4e\xcb\x00\x00\x00\x00\x4a\xa8\x57\x62\x57\x63\x57\x64\x00\x00\x00\x00\x00\x00\x00\x00\x57\x66\x00\x00\x57\x68\x57\x67\x00\x00\x00\x00\x00\x00\x00\x00\x57\x69\x45\x90\x45\x5a\x00\x00\x54\x57\x57\x6a\x00\x00\x00\x00\x51\xb7\x00\x00\x00\x00\x4e\x6b\x4d\x4d\x00\x00\x57\x6c\x57\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xed\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6d\x00\x00\x57\x6e\x00\x00\x57\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x57\x70\x4f\xd1\x45\x54\x4a\x87\x00\x00\x00\x00\x00\x00\x50\xf1\x57\x71\x45\x4a\x00\x00\x45\x4c\x00\x00\x57\x72\x57\x73\x4e\x47\x45\xdf\x57\x74\x47\x90\x00\x00\x00\x00\x57\x76\x00\x00\x00\x00\x00\x00\x53\xad\x4a\xf2\x49\x96\x47\xd7\x00\x00\x00\x00\x45\x59\x48\xe3\x00\x00\x45\xf6\x00\x00\x51\xc0\x00\x00\x57\x79\x00\x00\x49\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xdb\x00\x00\x00\x00\x57\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x57\x7b\x4c\x82\x47\x99\x4b\x91\x57\x7c\x4b\x6d\x4a\xa4\x4c\xf5\x00\x00\x57\x7d\x4e\x79\x00\x00\x00\x00\x57\x7e\x00\x00\x00\x00\x00\x00\x53\xe2", /* 5380 */ "\x00\x00\x00\x00\x57\x7f\x00\x00\x53\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x80\x00\x00\x00\x00\x57\x81\x00\x00\x4f\x55\x00\x00\x49\x42\x00\x00\x00\x00\x00\x00\x00\x00\x45\x74\x57\x82\x00\x00\x00\x00\x00\x00\x00\x00\x57\x84\x57\x83\x00\x00\x51\x78\x53\x67\x00\x00\x00\x00\x00\x00\x53\xb7\x57\x85\x00\x00\x57\x86\x00\x00\x57\x87\x4c\x8e\x00\x00\x00\x00\x57\x88\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd2\x57\x89\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf5\x50\xa5\x48\x5c\x46\xd4\x4b\x71\x47\xf9\x47\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa5\x00\x00\x46\xa6\x48\x4c\x00\x00\x50\xf5\x00\x00\x55\xb2\x00\x00\x57\x8b\x00\x00\x57\x8c\x00\x00\x51\x94\x53\xf5\x45\x88\x45\xd4\x4c\x8b\x00\x00\x00\x00\x57\x91\x4f\x71\x4e\x41\x4d\xd5\x4f\x86\x57\x92\x57\x90\x47\xc6\x47\x78\x50\x42\x47\xd9\x48\x5a\x00\x00\x00\x00\x4f\x59\x48\xe2\x45\xf0\x00\x00\x57\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x57\x94\x00\x00\x55\xea\x47\xba\x00\x00\x00\x00\x00\x00\x45\xa0\x45\x7e\x53\xd3\x55\xbc\x46\x6d\x45\xf3\x51\xaf\x50\xc6\x4e\xb2\x46\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xcf\x00\x00\x57\x9d\x00\x00\x50\x7a\x53\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4f\x00\x00\x00\x00\x57\x9c\x00\x00\x49\xcb\x57\x97\x57\x98\x57\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x9b\x00\x00\x4b\x98\x49\xc4\x00\x00\x53\xe5\x57\x99\x57\x95\x47\xf6\x00\x00\x57\x96\x00\x00\x4b\x50\x00\x00\x00\x00\x00\x00\x50\x73\x00\x00\x4f\x56\x4a\xee\x49\x54\x00\x00\x00\x00\x00\x00\x57\x9e\x00\x00\x00\x00\x50\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xa1\x00\x00\x54\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa5\x57\xa3\x00\x00\x47\x7f\x00\x00\x57\xa0\x57\xaa\x57\xa4\x00\x00\x00\x00\x00\x00\x57\xa7\x4a\xf6\x49\xb0\x00\x00\x00\x00", /* 5480 */ "\x57\xa8\x00\x00\x00\x00\x00\x00\x57\xab\x00\x00\x57\xad\x00\x00\x00\x00\x00\x00\x57\xae\x4f\x50\x45\x7a\x00\x00\x57\xa1\x57\x9f\x57\xac\x00\x00\x57\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb2\x00\x00\x57\xbc\x57\xb4\x00\x00\x00\x00\x57\xb9\x57\xbd\x00\x00\x57\xba\x57\xb5\x00\x00\x00\x00\x57\xb1\x00\x00\x00\x00\x4c\xde\x53\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb3\x00\x00\x00\x00\x00\x00\x57\xb0\x52\xb1\x57\xbe\x00\x00\x4e\xf9\x45\xd0\x57\xbb\x00\x00\x57\xb6\x00\x00\x00\x00\x57\xaf\x57\xb8\x4a\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xcb\x57\xc7\x00\x00\x00\x00\x57\xbf\x57\xc1\x00\x00\x55\x68\x55\xf0\x00\x00\x00\x00\x00\x00\x57\xc6\x57\xc5\x00\x00\x00\x00\x00\x00\x47\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7c\x00\x00\x00\x00\x57\xc4\x00\x00\x57\xc0", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdb\x00\x00\x51\xb8\x4f\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x4b\xab\x00\x00\x00\x00\x00\x00\x57\xc3\x00\x00\x54\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcc\x4b\xe0\x00\x00\x4d\x43\x00\x00\x57\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x57\xd1\x57\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x54\x78\x00\x00\x57\xc9\x00\x00\x00\x00\x00\x00\x53\x83\x57\xce\x46\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcb\x00\x00\x00\x00\x46\xe4\x00\x00\x00\x00\x00\x00\x47\xe4\x00\x00\x00\x00\x57\xcf\x57\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcd\x57\xd3\x54\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x57\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xd8\x57\xdd\x00\x00\x57\xd9\x00\x00", /* 5580 */ "\x57\xd5\x00\x00\x00\x00\x57\xdf\x46\xb3\x00\x00\x57\xde\x57\xe1\x00\x00\x52\x53\x57\xd6\x55\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xda\x57\xd4\x52\xb5\x00\x00\x45\xd1\x54\x75\x57\xdb\x57\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xd3\x57\xe2\x57\xe0\x51\x68\x4d\x6d\x4c\x5f\x00\x00\x57\xdc\x00\x00\x4e\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe5\x57\xe3\x00\x00\x58\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa2\x00\x00\x57\xe6\x00\x00\x00\x00\x57\xe4\x00\x00\x00\x00\x00\x00\x4b\x5e\x57\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xeb\x00\x00\x57\xe9\x00\x00\x00\x00\x00\x00\x57\xee\x57\xed\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x63\x00\x00\x00\x00\x47\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xea\x00\x00\x57\xec\x54\xec\x50\xf3\x00\x00\x00\x00\x57\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf8\x00\x00\x50\xca\x57\xf3\x00\x00\x54\x7f\x00\x00\x57\xf2\x00\x00\x57\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x62\x00\x00\x57\xf0\x00\x00\x57\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf6\x00\x00\x00\x00\x00\x00\x45\xfc\x00\x00\x57\xfa\x57\xf5\x57\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6d\x00\x00\x00\x00\x00\x00\x55\xf1\x00\x00\x55\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5680 */ "\x57\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf7\x55\xd8\x00\x00\x00\x00\x58\x41\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x42\x00\x00\x51\x90\x00\x00\x00\x00\x58\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x46\x00\x00\x58\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x49\x00\x00\x00\x00\x00\x00\x58\x4c\x58\x4a\x58\x48\x58\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x58\x47\x00\x00\x51\x90\x00\x00\x00\x00\x00\x00\x58\x4d\x00\x00\x00\x00\x58\x4f\x00\x00\x58\x4e\x00\x00\x00\x00\x00\x00\x58\x50\x56\xd4\x00\x00\x50\x65\x45\x44\x00\x00\x00\x00\x46\xa9\x00\x00\x4a\x49\x00\x00\x00\x00\x47\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x51\x00\x00\x4b\x44\x00\x00\x4a\xfa\x47\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x52\x4a\x94\x00\x00\x00\x00\x45\x8f\x00\x00\x58\x53", /* 5700 */ "\x52\x66\x00\x00\x00\x00\x53\xcf\x58\x54\x00\x00\x00\x00\x00\x00\x58\x56\x58\x55\x00\x00\x51\xbd\x00\x00\x58\x57\x00\x00\x4f\x49\x00\x00\x00\x00\x47\xe1\x54\xe7\x00\x00\x00\x00\x58\x5a\x00\x00\x58\x59\x00\x00\x00\x00\x00\x00\x58\x5b\x00\x00\x00\x00\x46\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5c\x47\x82\x47\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x49\xe6\x00\x00\x00\x00\x45\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd1\x58\x5d\x00\x00\x00\x00\x58\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x58\x61\x00\x00\x45\xec\x00\x00\x00\x00\x00\x00\x00\x00\x49\xae\x00\x00\x00\x00\x4c\x55\x00\x00\x00\x00\x00\x00\x58\x5e\x58\x62\x4e\x8d\x4e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x65\x00\x00\x00\x00\x53\xa6\x58\x63\x51\xc4\x00\x00\x00\x00\x53\x98\x49\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x66", /* 5780 */ "\x00\x00\x00\x00\x4b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x64\x58\x67\x00\x00\x46\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x69\x00\x00\x54\x66\x47\xce\x58\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x6d\x00\x00\x58\x6c\x00\x00\x00\x00\x00\x00\x53\xcd\x00\x00\x00\x00\x58\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x71\x00\x00\x00\x00\x58\x6e\x00\x00\x00\x00\x58\x6f\x58\x73\x58\x70\x00\x00\x00\x00\x4e\xac\x00\x00\x00\x00\x45\xdb\x00\x00\x00\x00\x00\x00\x58\x74\x58\x75\x58\x72\x00\x00\x58\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf4\x00\x00\x00\x00\x48\xe9\x51\x7e\x00\x00\x00\x00\x58\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x48\x00\x00\x00\x00\x4d\x57\x00\x00\x4d\xac\x46\xf1\x00\x00\x46\xa3\x00\x00\x00\x00\x00\x00", /* 5800 */ "\x46\x9d\x00\x00\x49\x7f\x00\x00\x00\x00\x4a\xe7\x53\x71\x00\x00\x00\x00\x00\x00\x58\x78\x58\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xb0\x00\x00\x00\x00\x00\x00\x58\x7b\x00\x00\x00\x00\x00\x00\x53\xa7\x00\x00\x00\x00\x00\x00\x58\x7c\x00\x00\x00\x00\x4b\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xac\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x53\x50\xa4\x49\xb8\x00\x00\x00\x00\x45\xd9\x54\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7c\x00\x00\x00\x00\x58\x80\x00\x00\x00\x00\x53\x9f\x4b\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x53\x58\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc6\x58\x81\x00\x00\x4c\xcb\x00\x00\x00\x00\x48\x6a\x52\xf8\x4f\x6f\x46\x57\x00\x00\x00\x00\x00\x00\x53\xc1\x00\x00\x00\x00\x4f\x5e\x58\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x43\x00\x00\x4f\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x58\x83\x00\x00\x58\x86\x00\x00\x00\x00\x4d\x89\x00\x00\x00\x00\x00\x00\x58\x84\x00\x00\x00\x00\x00\x00\x00\x00\x52\x79\x00\x00", /* 5880 */ "\x00\x00\x00\x00\x00\x00\x4a\x95\x00\x00\x58\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbe\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x51\x50\x00\x00\x58\x8a\x58\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xfc\x00\x00\x00\x00\x58\x88\x00\x00\x00\x00\x58\x8b\x00\x00\x00\x00\x00\x00\x58\x8c\x52\x89\x00\x00\x00\x00\x00\x00\x00\x00\x58\x89\x58\x8d\x58\x8e\x55\x52\x00\x00\x00\x00\x54\x88\x00\x00\x00\x00\x4b\x95\x00\x00\x00\x00\x00\x00\x58\x8f\x00\x00\x4e\x8e\x00\x00\x00\x00\x4e\xc8\x00\x00\x51\x96\x00\x00\x00\x00\x00\x00\x00\x00\x58\x91\x00\x00\x58\x90\x00\x00\x55\xb9\x00\x00\x58\x92\x58\x94\x58\x93\x00\x00\x00\x00\x58\x96\x00\x00\x58\x95\x58\x97\x00\x00\x00\x00\x00\x00\x00\x00\x58\x98\x58\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x7d\x51\x4f\x00\x00\x4c\x9f\x58\x9a\x49\x6c\x4e\xb0\x47\x75\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9b\x00\x00\x58\x9c\x50\x77\x58\x9d\x58\x9e\x52\x75\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x58\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x6f\x58\xa0\x58\xa1\x00\x00\x00\x00\x00\x00\x49\x7e\x58\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc3\x46\x94\x00\x00\x52\xc8\x54\xdd\x45\xfe\x58\xa3\x48\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8b\x00\x00\x00\x00\x58\xa5\x00\x00\x45\x5b\x00\x00\x46\x8a\x45\xab\x45\x73\x58\xa6\x58\xa7\x47\x92\x00\x00\x00\x00\x49\x41\x58\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x51\x47\x58\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf2\x00\x00\x00\x00\x4d\x69\x45\xe6\x4d\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8f\x4c\x53\x58\xac\x4c\x64\x00\x00\x58\xad\x52\x84\x58\xab\x00\x00\x55\x83\x58\xaf\x00\x00\x58\xae\x58\xb0\x00\x00\x58\xb1\x00\x00\x00\x00\x58\xb4\x00\x00\x58\xb3\x58\xb2\x00\x00\x46\xe5\x00\x00\x58\xb5\x4e\xca\x58\xb7\x4e\xbb\x00\x00\x58\xb6\x00\x00\x4e\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x46\x99\x4d\x90\x00\x00\x00\x00\x00\x00\x58\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x46\x9e\x00\x00\x00\x00", /* 5980 */ "\x00\x00\x58\xb9\x4b\xf8\x51\xa2\x55\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x43\x00\x00\x00\x00\x58\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x95\x00\x00\x00\x00\x53\xd1\x00\x00\x00\x00\x4a\x66\x00\x00\x58\xbb\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xbd\x58\xbe\x4d\x9e\x00\x00\x00\x00\x50\xec\x00\x00\x00\x00\x00\x00\x53\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xdc\x58\xc0\x49\xa3\x00\x00\x00\x00\x53\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc1\x00\x00\x00\x00\x4c\xc1\x00\x00\x49\x90\x00\x00\x00\x00\x00\x00\x00\x00\x54\x9c\x53\xf2\x00\x00\x4f\xf1\x48\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc3\x58\xc4\x00\x00\x51\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x55\x55\xde\x00\x00\x58\xc2\x00\x00\x55\x8c\x4a\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x79\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb9\x00\x00\x00\x00\x00\x00\x4b\x42", /* 5a00 */ "\x00\x00\x4c\x65\x00\x00\x55\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x54\x00\x00\x58\xc9\x00\x00\x58\xc8\x00\x00\x00\x00\x58\xc6\x52\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc5\x00\x00\x00\x00\x00\x00\x54\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xce\x58\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x98\x00\x00\x00\x00\x00\x00\x58\xcb\x50\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xcc\x00\x00\x00\x00\x58\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd0\x00\x00\x00\x00\x00\x00\x49\x6f\x00\x00\x00\x00\x00\x00\x58\xd1\x00\x00\x58\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x54", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd2\x48\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd3\x58\xd8\x58\xd4\x00\x00\x00\x00\x4e\x89\x58\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe0\x00\x00\x58\xd6\x4e\xc3\x00\x00\x00\x00\x00\x00\x58\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xdd\x58\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x67\x00\x00\x58\xd9\x00\x00\x00\x00\x58\xdb\x00\x00\x00\x00\x58\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xde\x58\xdf\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8b\x00\x00\x58\xe1\x58\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe4\x00\x00\x52\xea\x00\x00\x00\x00\x00\x00\x55\xe8\x00\x00\x58\xe3\x00\x00\x00\x00\x00\x00\x58\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe6\x00\x00\x58\xe9\x00\x00\x00\x00\x58\xe7\x00\x00\x58\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x64\x58\xea\x00\x00\x00\x00\x4b\xd9\x58\xeb\x58\xec\x48\xf2\x4a\x41\x00\x00\x52\x58\x58\xee\x4f\xf2\x45\xf4\x00\x00\x4f\x83\x00\x00\x00\x00\x00\x00\x4a\xec\x4e\xaf\x58\xef\x45\xbe\x00\x00\x00\x00\x58\xf0\x00\x00\x4c\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf1\x59\x5b\x00\x00\x58\xf2\x00\x00\x58\xf3\x00\x00\x00\x00\x58\xf4\x00\x00\x58\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b80 */ "\x58\xf6\x00\x00\x00\x00\x58\xf7\x00\x00\x48\x6f\x00\x00\x46\xd5\x46\xf0\x45\xa8\x00\x00\x52\x4d\x48\xc5\x4c\x75\x00\x00\x46\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5c\x00\x00\x47\xdd\x49\xa2\x4d\x64\x45\xe7\x50\xab\x4d\x8b\x49\x4d\x00\x00\x45\xed\x00\x00\x00\x00\x4a\xde\x49\x8f\x47\xb8\x4f\x7a\x58\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x92\x00\x00\x4e\xd4\x00\x00\x00\x00\x49\x68\x50\x78\x52\xef\x46\x86\x00\x00\x58\xf9\x48\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x82\x58\xfc\x00\x00\x4f\xe9\x58\xfa\x49\xdf\x4a\x84\x4a\x56\x58\xfb\x00\x00\x58\xfd\x00\x00\x00\x00\x45\xac\x00\x00\x00\x00\x00\x00\x59\x41\x00\x00\x4b\x81\x55\xf4\x52\x44\x00\x00\x00\x00\x00\x00\x59\x42\x00\x00\x00\x00\x47\xf8\x00\x00\x4b\x59\x59\x43\x4b\x93\x00\x00\x52\xb8\x59\x46\x00\x00\x59\x45\x59\x47\x51\xfc\x4f\xa9\x5c\x7e\x49\x87\x00\x00\x59\x48\x59\x44\x00\x00\x4c\x7a\x00\x00\x59\x49\x00\x00\x00\x00\x59\x4a\x00\x00\x55\x56\x59\x4b\x00\x00\x4b\x60\x00\x00\x46\xa0\x00\x00\x00\x00\x00\x00\x46\x56\x46\xb2", /* 5c00 */ "\x00\x00\x4d\x76\x49\xfb\x00\x00\x49\x8a\x59\x4c\x49\x59\x59\x4d\x59\x4e\x51\x89\x4c\xef\x4d\x5f\x00\x00\x59\x4f\x48\xae\x45\x5d\x00\x00\x48\x4a\x00\x00\x59\x50\x00\x00\x00\x00\x53\xc0\x00\x00\x00\x00\x00\x00\x48\x71\x00\x00\x00\x00\x00\x00\x59\x51\x00\x00\x59\x52\x00\x00\x59\x53\x00\x00\x53\xae\x00\x00\x00\x00\x00\x00\x59\x54\x00\x00\x00\x00\x00\x00\x00\x00\x68\x80\x00\x00\x00\x00\x00\x00\x4b\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x55\x51\x5d\x4c\x6b\x49\xce\x4a\x86\x4f\xb9\x45\xc8\x4c\xc6\x48\x8b\x59\x56\x00\x00\x00\x00\x00\x00\x48\x5e\x59\x57\x00\x00\x4d\x94\x00\x00\x4d\xa7\x45\xe9\x00\x00\x55\xba\x59\x58\x54\x43\x59\x5a\x54\xb2\x00\x00\x59\x59\x00\x00\x48\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x43\x00\x00\x00\x00\x47\x6d\x00\x00\x53\xfb\x55\xc0\x55\xc0\x00\x00\x4a\x8e\x4c\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x5c\x00\x00\x59\x5d\x4f\xdd\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\x00\x00\x59\x5e\x00\x00\x00\x00\x59\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x60\x00\x00\x00\x00\x00\x00\x47\x4a\x52\x5a\x00\x00\x00\x00\x59\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x59\x67\x00\x00\x54\xb9\x45\xbf\x00\x00\x59\x63\x50\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x52\x62\x00\x00\x4d\x46\x00\x00\x00\x00\x59\x65\x59\x66\x47\x48\x00\x00\x59\x68\x59\x64\x59\x6a\x00\x00\x59\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x69\x00\x00\x59\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x96\x51\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9d\x59\x6d\x59\x72\x00\x00\x00\x00\x59\x71\x00\x00\x4a\xac\x48\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x59\x70\x45\x6f\x00\x00\x00\x00\x00\x00\x59\x6f\x50\x72\x00\x00\x59\x6e\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x7f\x00\x00\x00\x00\x00\x00\x59\x73\x00\x00\x00\x00\x45\x7f\x00\x00\x00\x00\x59\x77\x00\x00\x00\x00\x51\x4d\x59\x74\x50\x74\x54\xf1\x59\x7c\x59\x7b\x59\x7a\x59\x76\x00\x00\x00\x00\x00\x00\x59\x75\x00\x00\x00\x00\x59\x79\x00\x00\x00\x00\x00\x00\x00\x00\x59\x78\x00\x00\x4f\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x83\x59\x7d\x00\x00\x59\x82\x00\x00\x49\x8c\x00\x00\x59\x7e\x59\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9e\x00\x00\x00\x00\x59\x85\x59\x87\x00\x00\x4e\xd3\x00\x00\x00\x00\x00\x00\x59\x86\x00\x00\x00\x00\x59\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d80 */ "\x00\x00\x00\x00\x59\x8b\x00\x00\x59\x8a\x00\x00\x00\x00\x59\x89\x00\x00\x00\x00\x00\x00\x47\xd1\x59\x8c\x00\x00\x00\x00\x00\x00\x59\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x59\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x90\x00\x00\x59\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x92\x59\x93\x59\x95\x4c\xe8\x00\x00\x59\x94\x4f\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x96\x00\x00\x00\x00\x49\xcf\x52\x81\x00\x00\x00\x00\x59\x97\x00\x00\x59\x99\x59\x98\x00\x00\x00\x00\x51\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9a\x00\x00\x45\x67\x47\x41\x00\x00\x00\x00\x4d\x47\x00\x00\x4c\x67\x00\x00\x45\x6a\x48\x5b\x4c\xa3\x4a\x52\x00\x00\x00\x00\x59\x9b\x00\x00\x00\x00\x49\x8b\x00\x00\x00\x00\x47\xad\x4a\x4b\x4a\xe6\x4e\x7d\x59\x9c\x00\x00\x53\xcb\x00\x00\x00\x00\x00\x00\x48\x93\x00\x00\x4e\x46\x4a\x7d\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x45\x53\x47\x6b\x00\x00\x00\x00\x4f\x75\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9d\x4a\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x59\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x51\xc7\x00\x00\x00\x00\x59\x9f\x59\x9e\x59\xa1\x00\x00\x48\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x44\x00\x00\x4b\x53\x00\x00\x49\x60\x49\x82\x00\x00\x00\x00\x4d\xc5\x00\x00\x00\x00\x59\xa2\x54\xbe\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x85\x00\x00\x00\x00\x59\xa5\x00\x00\x00\x00\x59\xa4\x59\xa3\x4a\x5e\x00\x00\x59\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x49\x6b\x00\x00\x59\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xa9\x4c\xca\x00\x00\x59\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x83\x00\x00\x48\xde\x59\xaa\x4e\x7f\x59\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6f\x45\x8d\x45\x60\x59\xac\x59\xad\x00\x00\x45\xa9\x48\xda\x59\xae\x50\xa2\x4d\xaf\x52\x5f\x4b\x57\x59\xaf", /* 5e80 */ "\x00\x00\x4b\x92\x00\x00\x45\xb7\x48\x50\x00\x00\x00\x00\x55\x8d\x00\x00\x00\x00\x4a\xed\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x64\x55\x4f\x48\x54\x00\x00\x00\x00\x51\x5a\x00\x00\x45\x51\x00\x00\x00\x00\x00\x00\x59\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xde\x48\xb1\x00\x00\x00\x00\x00\x00\x45\xf8\x00\x00\x48\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xeb\x50\xc1\x46\x9a\x4c\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb1\x59\xb2\x4b\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb3\x4e\xdb\x4e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb5\x59\xb4\x00\x00\x00\x00\x54\xad\x00\x00\x00\x00\x53\x6c\x00\x00\x00\x00\x00\x00\x59\xb7\x59\xb8\x00\x00\x59\xb6\x00\x00\x55\xaf\x55\x62\x59\xba\x59\xb9\x50\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x59\xbb\x59\xbc\x00\x00\x00\x00\x59\xbd\x00\x00\x00\x00\x00\x00\x59\xbe\x59\xbf\x00\x00\x59\xc0\x59\xc1\x00\x00\x47\xd0\x50\x5b\x52\xd6\x00\x00\x46\x66\x4b\xaf\x55\x64\x00\x00\x54\x4b\x51\xd9", /* 5f00 */ "\x00\x00\x4b\x47\x00\x00\x59\xc2\x54\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x59\xc3\x50\xcd\x59\xc4\x56\x41\x56\x51\x00\x00\x46\x8f\x50\xe1\x59\xc5\x00\x00\x4b\x63\x51\xe5\x46\xda\x59\xc6\x54\xac\x45\xd3\x00\x00\x00\x00\x55\x97\x00\x00\x00\x00\x00\x00\x4c\x9b\x00\x00\x59\xc7\x00\x00\x00\x00\x00\x00\x47\xe6\x4e\x42\x53\x6b\x00\x00\x59\xc8\x00\x00\x00\x00\x00\x00\x59\xc9\x00\x00\x59\xca\x00\x00\x4b\x6e\x00\x00\x00\x00\x59\xcb\x48\xba\x00\x00\x46\xd2\x59\xcc\x00\x00\x00\x00\x00\x00\x52\xe0\x00\x00\x4a\xd4\x00\x00\x00\x00\x59\xcd\x00\x00\x00\x00\x00\x00\x53\xc7\x00\x00\x00\x00\x59\xce\x00\x00\x53\x85\x00\x00\x59\xcf\x00\x00\x59\xd0\x00\x00\x00\x00\x59\xd1\x00\x00\x46\x5f\x00\x00\x00\x00\x59\xd2\x59\xd3\x00\x00\x59\xd4\x00\x00\x00\x00\x59\xd5\x59\xd6\x00\x00\x00\x00\x00\x00\x59\xd7\x46\x90\x00\x00\x00\x00\x00\x00\x45\xe1\x59\xd8\x00\x00\x4d\xcd\x51\x59\x4e\x86\x4e\x88\x52\x9c\x00\x00\x00\x00\x49\x64\x49\x5e\x00\x00\x59\xd9\x00\x00\x00\x00\x00\x00\x59\xda\x00\x00\x49\x5d\x00\x00\x00\x00\x47\x72\x00\x00\x00\x00\x59\xdd", /* 5f80 */ "\x4c\xea\x4a\x61\x59\xdc\x59\xdb\x4e\x60\x48\xa3\x00\x00\x59\xe0\x59\xdf\x00\x00\x59\xde\x49\x91\x45\xe5\x00\x00\x00\x00\x00\x00\x50\xb3\x59\xe1\x4c\x6c\x48\xfb\x00\x00\x00\x00\x00\x00\x47\xe8\x59\xe4\x59\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x59\xe3\x00\x00\x59\xe5\x46\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xe6\x4a\x70\x4e\xf5\x00\x00\x00\x00\x59\xe7\x4b\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x46\x54\x4c\x74\x00\x00\x00\x00\x59\xe8\x00\x00\x48\xf8\x00\x00\x00\x00\x59\xe9\x55\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe7\x00\x00\x47\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x97\x4b\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xea\x46\x61\x4c\x45\x4e\xa3\x00\x00\x00\x00\x48\x95\x59\xf0\x59\xf1\x00\x00\x46\x4f\x00\x00\x00\x00\x00\x00\x59\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x60\x00\x00\x00\x00\x00\x00\x00\x00\x59\xef\x59\xee\x00\x00\x00\x00\x00\x00\x4a\xae\x00\x00\x00\x00\x59\xed\x00\x00\x00\x00\x59\xeb\x00\x00\x50\x56\x00\x00\x59\xf2", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf7\x59\xfd\x59\xf5\x00\x00\x4c\xd6\x00\x00\x00\x00\x59\xfa\x4e\xf0\x00\x00\x00\x00\x59\xf4\x00\x00\x59\xf9\x50\x9f\x46\xad\x00\x00\x00\x00\x50\x81\x59\xf3\x00\x00\x00\x00\x00\x00\x47\xcc\x59\xfc\x46\x6e\x54\xde\x59\xf6\x4e\x71\x59\xfb\x00\x00\x00\x00\x00\x00\x55\x42\x00\x00\x59\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x42\x52\x56\x5a\x4c\x00\x00\x00\x00\x5a\x49\x00\x00\x00\x00\x00\x00\x5a\x48\x4b\xca\x00\x00\x5a\x4a\x00\x00\x00\x00\x4b\xd5\x00\x00\x47\xc7\x00\x00\x00\x00\x52\x98\x00\x00\x00\x00\x00\x00\x5a\x50\x5a\x41\x00\x00\x00\x00\x5a\x44\x00\x00\x5a\x47\x5a\x43\x00\x00\x55\x94\x5a\x4b\x5a\x4d\x4e\xce\x00\x00\x00\x00\x53\xb8\x4c\x81\x5a\x45\x5a\x4f\x5a\x4e\x49\x4e\x00\x00\x4b\xb0\x53\x84\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x5a\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6080 */ "\x00\x00\x5a\x52\x00\x00\x5a\x53\x5a\x55\x5a\x51\x00\x00\x00\x00\x00\x00\x54\x69\x5a\x57\x5a\x5c\x4d\xe3\x55\x44\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x5a\x00\x00\x50\x91\x00\x00\x5a\x58\x5a\x59\x00\x00\x00\x00\x5a\x54\x5a\x56\x00\x00\x00\x00\x00\x00\x4a\xb1\x4d\xd8\x00\x00\x00\x00\x4d\xeb\x00\x00\x00\x00\x48\x73\x5a\x5b\x00\x00\x4b\xcd\x49\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x9d\x52\x76\x53\xa3\x5a\x64\x55\x54\x00\x00\x5a\x5e\x00\x00\x00\x00\x00\x00\x51\x45\x5a\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x5f\x5a\x63\x4e\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x78\x00\x00\x5a\x61\x00\x00\x5a\x65\x00\x00\x00\x00\x5a\x66\x00\x00\x54\x9d\x00\x00\x4e\xd7\x00\x00\x5a\x5f\x4f\xe0\x5a\x60\x5a\x5d\x00\x00\x4b\x68\x00\x00\x00\x00\x00\x00\x55\x4a\x50\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb8\x5a\x73\x5a\x68\x48\xb3\x5a\x6e\x00\x00\x5a\x6b\x5a\x6c\x00\x00\x54\x72\x5a\x6f\x5a\x72\x00\x00\x00\x00\x00\x00\x00\x00", /* 6100 */ "\x5a\x6d\x52\x82\x00\x00\x5a\x70\x00\x00\x00\x00\x5a\x6a\x00\x00\x53\xc8\x50\x98\x00\x00\x00\x00\x00\x00\x5a\x74\x5a\x75\x47\x63\x00\x00\x5a\x76\x00\x00\x00\x00\x00\x00\x5a\x69\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb2\x45\xc6\x00\x00\x00\x00\x00\x00\x47\xf7\x5a\x67\x5a\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7b\x5a\x7a\x00\x00\x00\x00\x00\x00\x5a\x80\x00\x00\x00\x00\x00\x00\x5a\x7e\x00\x00\x00\x00\x00\x00\x5a\x81\x00\x00\x00\x00\x5a\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7f\x5a\x84\x5a\x7c\x51\xe3\x00\x00\x00\x00\x5a\x85\x00\x00\x5a\x86\x00\x00\x00\x00\x5a\x77\x4c\xbe\x00\x00\x5a\x7d\x48\xfd\x53\x8e\x5a\x78\x4a\x76\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x92\x00\x00\x52\xe3\x00\x00\x00\x00\x5a\x8a\x5a\x8b\x5a\x8c\x00\x00\x00\x00\x5a\x83\x00\x00\x5a\x91\x00\x00\x00\x00\x4d\xdb\x4d\xd3\x00\x00\x5a\x82\x00\x00\x4e\xb6\x52\x8a\x00\x00\x00\x00\x5a\x8d\x00\x00\x00\x00\x4c\x49\x5a\x8f\x4f\xad\x5a\x90\x00\x00\x5a\x87\x5a\x8e\x5a\x93\x48\xa8\x5a\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf4\x00\x00", /* 6180 */ "\x00\x00\x00\x00\x50\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x88\x00\x00\x00\x00\x5a\x99\x00\x00\x00\x00\x00\x00\x4f\x4a\x00\x00\x55\x5b\x5a\x9a\x00\x00\x00\x00\x5a\x98\x00\x00\x5a\x96\x00\x00\x5a\x94\x5a\x95\x55\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xfc\x00\x00\x00\x00\x53\xc2\x00\x00\x51\x75\x00\x00\x5a\x9b\x5a\x97\x00\x00\x5a\x9c\x00\x00\x00\x00\x00\x00\x47\xbe\x00\x00\x00\x00\x00\x00\x4e\x6c\x00\x00\x00\x00\x00\x00\x5a\xa3\x00\x00\x00\x00\x00\x00\x51\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa1\x00\x00\x00\x00\x5a\xa2\x4e\xa4\x5a\xa0\x5a\x9f\x5a\x9e\x5a\xa4\x5a\x9d\x5a\xa6\x00\x00\x00\x00\x4e\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa8\x00\x00\x00\x00\x5a\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x53\x00\x00\x5a\xa9\x00\x00\x5a\xab\x5a\xaa\x4d\xc6\x00\x00\x5a\xad\x00\x00\x5a\xaf\x5a\xac\x5a\xb0\x5a\xae", /* 6200 */ "\x5a\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xb2\x5a\xb3\x51\x61\x00\x00\x54\x60\x5a\xb4\x51\x7f\x00\x00\x45\xba\x49\xde\x4d\xa0\x5a\xb5\x5a\xb6\x00\x00\x4d\x7f\x00\x00\x00\x00\x00\x00\x55\x95\x5a\xb7\x00\x00\x64\x6e\x5a\xb8\x54\xd9\x00\x00\x5a\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x47\x64\x00\x00\x00\x00\x00\x00\x5a\xba\x00\x00\x00\x00\x00\x00\x5a\xbb\x4f\x92\x5a\xbc\x00\x00\x5a\xbd\x5a\xbe\x50\x92\x00\x00\x00\x00\x00\x00\x45\xcf\x00\x00\x00\x00\x4c\x44\x00\x00\x00\x00\x00\x00\x47\xdc\x45\x8c\x5a\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xca\x65\x5d\x50\xad\x00\x00\x45\xcb\x00\x00\x49\xf1\x5a\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x47\xea\x00\x00\x49\x81\x00\x00\x00\x00\x55\xd5\x00\x00\x00\x00\x5a\xc3\x00\x00\x00\x00\x5a\xc1\x00\x00\x5a\xc4\x00\x00\x00\x00\x5a\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb7\x00\x00\x00\x00\x4c\x69\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7a\x00\x00\x00\x00\x4c\x76\x00\x00\x00\x00\x5a\xc6\x00\x00\x5a\xca\x4c\x48", /* 6280 */ "\x48\xf7\x00\x00\x5a\xc7\x5a\xcd\x4e\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc8\x4e\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x66\x5a\xc9\x5a\xcb\x5a\xce\x47\x51\x5a\xcc\x4a\x67\x49\x8d\x00\x00\x00\x00\x5a\xdc\x4a\x85\x00\x00\x4e\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xda\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa6\x5a\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x86\x00\x00\x00\x00\x00\x00\x4b\x90\x00\x00\x00\x00\x00\x00\x51\xe0\x00\x00\x5a\xd1\x49\xe1\x4d\x53\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd9\x00\x00\x00\x00\x4a\xa1\x5a\xd4\x5a\xdb\x5a\xd5\x5a\xdd\x5a\xd8\x00\x00\x53\x45\x4f\xba\x00\x00\x5a\xd2\x53\xa2\x5a\xd0\x4f\x61\x4b\xdb\x5a\xd7\x00\x00\x00\x00\x5a\xcf\x50\x45\x52\x5c\x00\x00\x4b\xfd\x5a\xd6\x4e\xe2\x00\x00\x00\x00\x4d\x77\x48\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc5\x4e\xe5\x5a\xdf\x5a\xe4\x00\x00\x5a\xe0\x00\x00\x50\x8d\x00\x00\x5a\xe5\x4f\x9e\x55\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd7\x5a\xe6", /* 6300 */ "\x00\x00\x46\xd8\x5a\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb6\x5a\xe3\x54\x89\x00\x00\x00\x00\x5a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe1\x4f\x81\x00\x00\x00\x00\x54\x8f\x00\x00\x00\x00\x00\x00\x48\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x87\x00\x00\x00\x00\x52\xa8\x5a\xe9\x55\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa0\x00\x00\x00\x00\x55\x7d\x5a\xe8\x00\x00\x5a\xea\x5a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x41\x00\x00\x55\x46\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x85\x4b\xb3\x5a\xf5\x00\x00\x5a\xf4\x00\x00\x00\x00\x4e\xd6\x00\x00\x00\x00\x00\x00\x54\x93\x00\x00\x00\x00\x00\x00\x5a\xef\x4d\x8f\x00\x00\x00\x00\x4f\xc0\x54\xc0\x00\x00\x00\x00\x00\x00\x00\x00", /* 6380 */ "\x5a\xed\x00\x00\x00\x00\x4d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x61\x5a\xf2\x00\x00\x00\x00\x4e\xec\x00\x00\x5a\xec\x5a\xf1\x00\x00\x00\x00\x4c\xfa\x00\x00\x00\x00\x00\x00\x5a\xeb\x00\x00\x4d\x44\x00\x00\x00\x00\x4a\xe3\x00\x00\x00\x00\x00\x00\x5a\xf3\x55\xe6\x4b\x4f\x4b\x7f\x5a\xf0\x00\x00\x47\xa8\x00\x00\x4c\xac\x48\xd5\x55\xd0\x4a\x60\x5a\xee\x55\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc1\x00\x00\x54\xcd\x5a\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa3\x00\x00\x00\x00\x5a\xf7\x00\x00\x5a\xf9\x00\x00\x00\x00\x4e\xfd\x5b\x42\x00\x00\x5a\xfa\x00\x00\x00\x00\x5a\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xcf\x49\xb9\x00\x00\x5a\xfe\x00\x00\x00\x00\x00\x00\x4c\xf2\x00\x00\x00\x00\x00\x00\x4c\x46\x49\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x60\x00\x00\x5a\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd5\x5a\xfb\x5b\x41\x00\x00\x00\x00\x00\x00\x4f\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xd8\x00\x00\x5b\x4b\x00\x00\x00\x00\x00\x00\x5b\x45\x54\xa3\x00\x00\x5b\x4c\x5b\x49\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x46\x00\x00\x5b\x4a\x00\x00\x00\x00\x00\x00\x4d\xc8\x52\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x43\x00\x00\x5b\x47\x00\x00\x00\x00\x00\x00\x4e\x49\x00\x00\x00\x00\x00\x00\x50\xa3\x00\x00\x00\x00\x00\x00\x4e\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4d\x00\x00\x00\x00\x54\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4e\x00\x00\x48\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x51\x00\x00\x55\xf5\x00\x00\x51\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6480 */ "\x00\x00\x00\x00\x00\x00\x4a\x74\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xde\x5b\x57\x00\x00\x5b\x55\x00\x00\x00\x00\x00\x00\x00\x00\x53\x48\x00\x00\x00\x00\x5b\x53\x55\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x7a\x5b\x58\x00\x00\x00\x00\x00\x00\x5b\x59\x00\x00\x51\xe1\x00\x00\x4e\x62\x4c\x77\x00\x00\x53\x72\x00\x00\x4e\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x52\x00\x00\x5b\x56\x5b\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4e\x5b\x62\x00\x00\x00\x00\x5b\x5e\x00\x00\x5b\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x9b\x5b\x54\x00\x00\x00\x00\x00\x00\x5b\x5d\x00\x00\x5b\x60\x00\x00\x00\x00\x00\x00\x5b\x61\x00\x00\x5b\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x65\x5b\x66\x55\x43\x5b\x67\x00\x00\x00\x00\x4f\xd6\x5b\x64\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcd\x00\x00\x00\x00\x5b\x68\x00\x00\x5b\x63\x5b\x6b\x00\x00\x5b\x69\x00\x00\x5b\x6a\x00\x00\x00\x00\x00\x00\x5b\x6c\x00\x00\x00\x00\x5b\x6e\x55\xf6\x00\x00", /* 6500 */ "\x5b\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x5b\x70\x5b\x71\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x72\x5b\x74\x5b\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7f\x5b\x75\x5b\x76\x00\x00\x00\x00\x47\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x77\x5b\x78\x5b\x7a\x5b\x79\x5b\x7b\x48\x8f\x00\x00\x4b\xc5\x00\x00\x00\x00\x48\xaf\x45\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf7\x00\x00\x00\x00\x5b\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x80\x5b\x7e\x46\x47\x00\x00\x4c\x5c\x00\x00\x00\x00\x00\x00\x5b\x82\x5b\x7f\x4b\x8a\x5b\x81\x47\xa5\x00\x00\x00\x00\x00\x00\x5b\x83\x51\xb1\x00\x00\x00\x00\x00\x00\x4f\xcf\x4a\xc9\x00\x00\x00\x00\x49\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb0\x00\x00\x00\x00\x00\x00\x46\xcc\x00\x00\x5b\x84\x00\x00\x47\x7c\x4b\xf3\x00\x00\x49\x51\x5b\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6580 */ "\x00\x00\x00\x00\x5b\x86\x5b\x87\x00\x00\x00\x00\x00\x00\x45\xca\x58\xed\x46\x8e\x00\x00\x00\x00\x51\x9d\x00\x00\x47\xdb\x00\x00\x4b\x80\x52\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x83\x00\x00\x46\x4e\x00\x00\x5b\x89\x4b\xd1\x00\x00\x00\x00\x5b\x8a\x00\x00\x55\x81\x00\x00\x00\x00\x54\xcf\x51\x41\x00\x00\x51\xc2\x00\x00\x00\x00\x00\x00\x5b\x8b\x4e\xfc\x49\x89\x00\x00\x4e\xa5\x45\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8c\x00\x00\x45\xcd\x00\x00\x00\x00\x4d\xa4\x48\x88\x00\x00\x00\x00\x00\x00\x5b\x8f\x00\x00\x5b\x8d\x5b\x90\x4a\xcf\x5b\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7b\x5b\x91\x00\x00\x00\x00\x4a\xdc\x00\x00\x00\x00\x5b\x92\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xab\x00\x00\x5b\x93\x00\x00\x51\x65\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x95\x5b\x94\x4b\x77\x00\x00\x00\x00\x45\x62\x4d\x9d\x4c\x7b\x4d\x6a\x46\xe9\x00\x00\x00\x00\x4d\x67\x47\xec\x00\x00\x00\x00\x00\x00\x5b\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa3\x5b\x9c\x00\x00\x00\x00\x00\x00\x00\x00", /* 6600 */ "\x5b\x97\x00\x00\x5b\x99\x5b\x9b\x00\x00\x00\x00\x4f\xe7\x46\xfe\x00\x00\x5b\x9d\x52\x8e\x00\x00\x46\xd1\x00\x00\x45\xa6\x54\xe8\x00\x00\x00\x00\x00\x00\x47\xe9\x4c\x59\x5b\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa3\x00\x00\x5b\xa1\x47\xa9\x47\xac\x00\x00\x00\x00\x00\x00\x5b\xa4\x46\x62\x00\x00\x55\x9d\x48\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x45\xb3\x5b\xa0\x4b\xbb\x00\x00\x52\xeb\x00\x00\x00\x00\x5b\xa2\x5b\x9f\x51\x93\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9f\x4c\x98\x00\x00\x00\x00\x5b\x9e\x00\x00\x52\x51\x46\x51\x48\xb0\x5b\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa6\x00\x00\x4b\xb2\x00\x00\x00\x00\x00\x00\x51\xea\x00\x00\x00\x00\x54\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa8\x00\x00\x5b\xab\x00\x00\x00\x00\x00\x00\x5b\xad\x5b\xa9\x4f\xce\x00\x00\x00\x00\x5b\xac\x00\x00\x5b\xaa\x5b\xa7\x55\x6d\x50\xa0\x51\xb2\x4c\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x49\xf8\x49\x93\x5b\xb0\x00\x00\x00\x00\x5b\xaf\x47\x95\x00\x00\x4a\xf8\x00\x00\x00\x00\x00\x00\x46\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6680 */ "\x00\x00\x4c\x83\x00\x00\x5b\xb1\x5b\xb3\x00\x00\x00\x00\x4f\x46\x5b\xb2\x4e\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xab\x00\x00\x00\x00\x4f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6c\x4b\xe2\x5b\xb5\x5b\xb4\x00\x00\x00\x00\x00\x00\x5b\xb7\x00\x00\x00\x00\x5b\xb6\x00\x00\x4c\xc7\x00\x00\x00\x00\x00\x00\x50\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x50\x93\x00\x00\x00\x00\x4a\xfe\x00\x00\x00\x00\x00\x00\x5b\xb8\x00\x00\x4c\xb2\x00\x00\x00\x00\x00\x00\x5b\xbf\x52\x43\x00\x00\x00\x00\x5b\xbe\x00\x00\x5b\xbd\x5b\xbb\x00\x00\x5b\xba\x00\x00\x00\x00\x5b\xb9\x00\x00\x00\x00\x4c\x56\x00\x00\x5b\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc0\x00\x00\x00\x00\x51\x52\x5b\xc1\x00\x00\x4b\xfe\x52\xa6\x00\x00\x00\x00\x51\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc2\x00\x00\x00\x00\x5b\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc4\x00\x00\x49\xb6\x4e\xbc\x4a\x6d\x5b\xc5\x00\x00\x5b\xc6\x47\x9d\x4e\xd2\x5b\xc7\x53\x97\x57\x8d\x49\x5f\x51\x66\x4b\xc3", /* 6700 */ "\x46\xf5\x00\x00\x00\x00\x56\xac\x00\x00\x00\x00\x00\x00\x00\x00\x45\x61\x46\x85\x00\x00\x4b\xc4\x00\x00\x47\xd4\x5b\xc8\x54\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa4\x55\xf3\x5b\xca\x48\x6e\x00\x00\x00\x00\x00\x00\x47\xbb\x00\x00\x47\x5c\x5b\xcb\x46\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcd\x5b\xce\x45\x6c\x00\x00\x49\xc6\x47\x46\x45\x66\x48\xf9\x5b\xd0\x00\x00\x00\x00\x4d\x42\x00\x00\x00\x00\x4e\xa2\x00\x00\x5b\xd2\x5b\xd3\x5b\xd4\x00\x00\x4d\x96\x00\x00\x00\x00\x50\xf0\x00\x00\x5b\xd1\x00\x00\x53\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd5\x00\x00\x00\x00\x46\x68\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x51\x50\xd0\x46\xbc\x45\x56\x00\x00\x54\xc1\x00\x00\x00\x00\x50\xf4\x00\x00\x00\x00\x5b\xd7\x00\x00\x00\x00\x52\x5d\x00\x00\x5b\xd6\x4b\x4b\x54\x80\x47\x5e\x51\xa6\x52\x91\x5b\xd9\x46\x76\x5b\xd8\x00\x00\x00\x00\x00\x00\x5b\xde\x00\x00\x00\x00\x50\x8b\x00\x00\x4c\x63\x5b\xdc\x45\x57\x5b\x9a\x5b\xe0\x00\x00\x4a\xa6\x00\x00\x52\x80\x00\x00\x00\x00\x00\x00\x00\x00\x54\xdf\x00\x00\x45\x78\x46\xb4", /* 6780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xdb\x00\x00\x52\x5e\x00\x00\x5b\xda\x00\x00\x5b\xdf\x54\xf2\x00\x00\x00\x00\x00\x00\x4a\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x78\x00\x00\x45\xa2\x00\x00\x00\x00\x49\xd9\x00\x00\x47\xb9\x46\x72\x00\x00\x00\x00\x4f\xd2\x5b\xe2\x52\xd0\x00\x00\x00\x00\x00\x00\x5b\xe1\x00\x00\x00\x00\x5b\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x61\x00\x00\x00\x00\x00\x00\x54\xc9\x5b\xe6\x00\x00\x4e\xe8\x5b\xe4\x5b\xe9\x5b\xf2\x00\x00\x5b\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf0\x55\xcd\x00\x00\x00\x00\x4a\x7f\x00\x00\x5b\xf4\x00\x00\x00\x00\x00\x00\x52\xd9\x00\x00\x00\x00\x00\x00\x5b\xf1\x49\x80\x50\x4a\x4e\xc1\x00\x00\x48\x9b\x4d\xea\x00\x00\x00\x00\x00\x00\x4f\xd8\x00\x00\x4e\xe1\x00\x00\x00\x00\x5b\xed\x54\xf3\x00\x00\x00\x00\x00\x00\x5b\xee\x00\x00\x5b\xeb\x00\x00\x00\x00\x5b\xea\x00\x00\x5b\xe8\x00\x00\x00\x00\x5b\xe7\x00\x00\x5b\xef\x5b\xe5\x00\x00\x4b\xea\x00\x00\x46\xea\x47\xa7\x51\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x73\x00\x00\x00\x00\x50\x54\x4a\xc1", /* 6800 */ "\x00\x00\x5b\xf3\x52\xd1\x47\xd3\x45\xfa\x51\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xe3\x00\x00\x00\x00\x4d\xcc\x47\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf5\x00\x00\x00\x00\x48\xbf\x52\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xde\x48\x56\x52\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfa\x00\x00\x55\xda\x00\x00\x00\x00\x00\x00\x4b\x9e\x46\x67\x00\x00\x00\x00\x47\xde\x4d\xe0\x00\x00\x00\x00\x5b\xf8\x50\xd6\x49\xab\x4a\xda\x5b\xf9\x00\x00\x5b\xf6\x00\x00\x48\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf7\x5b\xfb\x00\x00\x49\xc0\x48\x79\x5b\xec\x53\x6d\x53\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfd\x00\x00\x00\x00\x47\x71\x4d\x88\x00\x00\x51\xf3\x00\x00\x00\x00\x00\x00\x5b\xfc\x00\x00\x00\x00\x00\x00\x50\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x4b\x00\x00\x4e\x77\x5c\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x44\x5c\x42", /* 6880 */ "\x00\x00\x4e\x44\x00\x00\x5c\x48\x00\x00\x47\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfe\x5b\xfe\x5c\x45\x00\x00\x00\x00\x00\x00\x50\xda\x5c\x47\x00\x00\x00\x00\x52\xcc\x00\x00\x00\x00\x00\x00\x53\xbc\x00\x00\x4e\x92\x00\x00\x5c\x43\x52\xc6\x00\x00\x50\xac\x00\x00\x00\x00\x00\x00\x58\xa4\x52\xd3\x48\x58\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x46\x00\x00\x51\xe4\x46\x82\x53\x59\x00\x00\x53\x61\x00\x00\x5c\x4c\x49\xad\x00\x00\x00\x00\x5c\x4a\x5c\x4d\x00\x00\x5c\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb1\x00\x00\x5c\x60\x00\x00\x53\x86\x55\xca\x5c\x50\x4e\xf1\x00\x00\x5c\x56\x00\x00\x5c\x5f\x00\x00\x00\x00\x4b\x5a\x00\x00\x5c\x57\x5c\x59\x00\x00\x54\xc2\x5c\x52\x00\x00\x4b\xef\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xa9\x5c\x5e\x5c\x54\x00\x00\x5c\x5d\x00\x00\x00\x00\x00\x00\x5c\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x9d\x5c\x5b\x00\x00\x00\x00\x53\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x94\x55\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x54\x68\x5c\x4f\x00\x00\x00\x00\x5c\x5c\x4f\xf7\x00\x00\x00\x00\x5c\x51\x00\x00\x00\x00\x4d\xfd\x5c\x55\x47\xc5\x4b\xa0\x5c\x4e\x00\x00\x00\x00\x5c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xed\x53\x70\x51\x63\x48\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x63\x5c\x61\x5c\x64\x00\x00\x53\xfa\x5c\x53\x00\x00\x5c\x65\x00\x00\x5c\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x71\x00\x00\x00\x00\x00\x00\x54\xa7\x00\x00\x5c\x69\x00\x00\x00\x00\x52\xed\x00\x00\x00\x00\x00\x00\x5c\x6f\x00\x00\x4c\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x95\x5c\x6b\x55\xc5\x00\x00\x00\x00\x00\x00\x5c\x70\x53\x4c\x00\x00\x54\xe2\x5c\x73\x5c\x72\x00\x00\x4a\xdf\x52\x7c\x4d\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x6e\x00\x00\x5c\x6c\x54\xa2\x00\x00\x45\x6b\x53\xef\x4f\xae\x00\x00\x00\x00\x00\x00\x52\xb3\x5c\x6d\x49\xb7\x00\x00\x5c\x68\x5c\x6a\x5c\x67\x00\x00\x00\x00\x52\xba\x47\x61\x5c\x74\x00\x00", /* 6980 */ "\x00\x00\x5c\x75\x4c\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x52\x00\x00\x00\x00\x00\x00\x49\xeb\x00\x00\x00\x00\x54\x76\x00\x00\x00\x00\x55\xc7\x5c\x86\x00\x00\x00\x00\x5c\x79\x00\x00\x00\x00\x4d\x7e\x5c\x85\x00\x00\x00\x00\x00\x00\x5c\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4a\x00\x00\x00\x00\x5c\x80\x5c\x76\x00\x00\x53\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x82\x00\x00\x00\x00\x5c\x7c\x5c\x77\x00\x00\x5c\x7a\x00\x00\x5c\x83\x00\x00\x00\x00\x00\x00\x4d\xb9\x00\x00\x00\x00\x5c\x7f\x47\x96\x4e\xfa\x52\xdb\x5c\x7d\x00\x00\x54\x8c\x00\x00\x00\x00\x5c\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x48\x48\x68\x81\x00\x00\x00\x00\x00\x00\x5c\x81\x5c\x87\x00\x00\x00\x00\x00\x00\x5c\x90\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8f\x5c\x89\x00\x00\x00\x00\x5c\x94\x00\x00\x5c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8d\x00\x00\x4b\x5c\x00\x00\x4d\xb7\x00\x00\x5c\x8c", /* 6a00 */ "\x00\x00\x00\x00\x5c\x8a\x00\x00\x00\x00\x53\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x95\x49\x4f\x5c\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x97\x5c\x99\x5c\x93\x00\x00\x00\x00\x53\x8b\x00\x00\x49\x66\x00\x00\x5c\x8b\x00\x00\x00\x00\x5c\x91\x53\x9b\x00\x00\x48\x64\x5c\x96\x5c\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xdc\x45\xf2\x4b\x6f\x00\x00\x00\x00\x5c\x88\x00\x00\x5c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x55\x85\x5c\x9f\x00\x00\x5c\xa7\x46\xcf\x4e\x69\x00\x00\x00\x00\x4b\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x9c\x00\x00\x5c\xa6\x5c\xa1\x5c\xa5\x00\x00\x00\x00\x45\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc2\x5c\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x00\x00\x55\xd4\x5c\xa2\x00\x00\x00\x00\x00\x00\x5c\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xa8\x5c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xaf\x4f\xb2", /* 6a80 */ "\x4f\xf5\x00\x00\x00\x00\x00\x00\x5c\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xab\x55\xee\x00\x00\x5c\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x55\x00\x00\x00\x00\x00\x00\x5c\x9e\x00\x00\x5c\xad\x5c\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb2\x00\x00\x5c\xb1\x00\x00\x54\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb5\x00\x00\x00\x00\x5c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb7\x5c\xb4\x52\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xba\x00\x00\x55\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xbb\x4d\xa6\x00\x00\x00\x00\x5c\xb8\x53\x62\x00\x00\x00\x00\x5c\xb9\x00\x00\x5c\xbc\x00\x00\x00\x00\x00\x00\x51\xc5\x00\x00\x5c\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc2\x52\xee\x00\x00\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xde\x5c\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc3\x00\x00\x00\x00\x00\x00\x5c\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf7\x00\x00\x5c\xc5\x4c\xb5\x45\x97\x00\x00\x4b\x9d\x00\x00\x00\x00\x00\x00\x4a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc7\x5c\xc6\x5c\xc8\x51\x7d\x00\x00\x00\x00\x4c\xf8\x4e\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xcc\x00\x00\x00\x00\x00\x00\x5c\xcb\x00\x00\x5c\xcd\x00\x00\x00\x00\x46\xf7\x00\x00\x54\x87\x00\x00\x5c\xce\x00\x00\x00\x00\x4d\x4e\x5c\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xcf\x00\x00\x5c\xd1\x00\x00\x00\x00\x00\x00\x5c\xd2\x00\x00\x5c\xd3\x48\xd8\x45\x77\x4d\x4c\x00\x00\x45\xb1\x00\x00\x00\x00\x47\xd8\x55\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x9f\x00\x00\x00\x00\x00\x00\x48\xe4\x49\x55\x00\x00\x00\x00\x00\x00\x5c\xd4\x5c\xd5\x00\x00\x49\x99\x00\x00\x00\x00\x00\x00\x5c\xd6", /* 6b80 */ "\x5c\xd7\x00\x00\x00\x00\x5c\xd9\x5c\xd8\x00\x00\x4f\x42\x00\x00\x00\x00\x53\xa4\x48\x65\x49\x92\x00\x00\x5c\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdc\x4e\x73\x00\x00\x5c\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdf\x5c\xe0\x00\x00\x00\x00\x00\x00\x5c\xe1\x00\x00\x5c\xe2\x5c\xe3\x5c\xe4\x54\x59\x47\xed\x00\x00\x5c\xe5\x00\x00\x00\x00\x49\xe9\x50\xc0\x5c\xe6\x00\x00\x00\x00\x48\x49\x58\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5b\x5c\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe8\x00\x00\x49\x69\x49\xf5\x00\x00\x00\x00\x00\x00\x4c\x97\x5c\xe9\x47\x4e\x00\x00\x5c\xea\x00\x00\x53\xd7\x00\x00\x00\x00\x46\xe2\x00\x00\x00\x00\x00\x00\x5c\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xed\x5c\xec\x00\x00\x00\x00\x5c\xef\x00\x00\x00\x00\x00\x00\x5c\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8e\x00\x00\x47\x56\x00\x00\x5c\xf1\x5c\xf2\x00\x00\x00\x00\x45\xb9\x00\x00\x00\x00\x00\x00\x5c\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf5\x5c\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x9c\x00\x00\x00\x00\x4c\xa4\x45\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6e\x5c\xf6\x53\x4d\x4d\x84\x49\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x50\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf8\x00\x00\x4e\xc4\x00\x00\x00\x00\x4e\x82\x00\x00\x5c\xf9\x55\x5e\x5c\xf7\x45\xad\x45\xe8\x00\x00\x5c\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x45\x00\x00\x52\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xfe\x50\xd2\x00\x00\x50\xc8\x5d\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa4\x00\x00\x00\x00\x49\x4c\x5d\x44\x00\x00", /* 6c80 */ "\x00\x00\x5d\x42\x5c\xfb\x55\xd9\x00\x00\x00\x00\x5c\xfd\x00\x00\x4c\x8f\x00\x00\x00\x00\x00\x00\x55\x98\x5c\xfc\x00\x00\x00\x00\x5d\x48\x00\x00\x5d\x47\x4f\xf8\x00\x00\x00\x00\x47\xfd\x00\x00\x00\x00\x4e\xad\x5d\x41\x5d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x75\x45\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xec\x00\x00\x00\x00\x5d\x4d\x00\x00\x00\x00\x5d\x50\x00\x00\x46\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xaa\x46\x5c\x5d\x52\x45\x84\x46\xc6\x5d\x4b\x5d\x51\x4e\x6f\x00\x00\x4a\x58\x00\x00\x00\x00\x5d\x49\x5d\x4c\x00\x00\x00\x00\x00\x00\x46\xee\x4d\xb8\x00\x00\x51\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd7\x00\x00\x46\x4a\x00\x00\x55\xc6\x00\x00\x5d\x55\x5d\x4e\x5d\x53\x00\x00\x5d\x4f\x00\x00\x00\x00\x00\x00\x4e\x87\x46\xca\x4d\x4b\x00\x00\x4e\x56\x00\x00\x00\x00\x49\x44\x00\x00\x5d\x56\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x54\x46\xf3\x5d\x4a\x00\x00\x4f\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xda\x5d\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x4e\x00\x00\x52\xb6\x00\x00\x54\x50\x00\x00\x00\x00\x4d\x98\x5d\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xdc\x00\x00\x00\x00\x00\x00\x50\xb7\x4f\xd4\x5d\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x72\x5d\x5c\x00\x00\x52\xac\x5d\x59\x00\x00\x50\xbc\x00\x00\x00\x00\x47\xb4\x00\x00\x5d\x5b\x4a\x72\x00\x00\x00\x00\x46\xfc\x00\x00\x00\x00\x4c\xc9\x46\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x66\x5d\x64\x00\x00\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5f\x5d\x63\x00\x00\x46\x6b\x00\x00\x00\x00\x46\xeb\x4a\x9d\x00\x00\x55\xcc\x00\x00\x4a\x8c\x5d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x7e\x00\x00\x00\x00\x45\xa7\x4d\x41\x5d\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x6a\x00\x00\x5d\x60\x48\x6b\x00\x00\x00\x00\x00\x00\x4f\x7d\x00\x00\x5d\x67\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x61\x00\x00\x5d\x68\x5d\x6b\x00\x00\x00\x00\x4d\xda\x00\x00\x5d\x69\x55\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x72\x00\x00\x00\x00\x4f\x91\x00\x00\x00\x00\x4a\x45\x00\x00\x00\x00\x5d\x6f\x00\x00\x00\x00\x5d\x73\x00\x00\x00\x00\x00\x00\x4e\x74\x00\x00\x00\x00\x00\x00\x4a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x7c\x5d\x75\x5d\x71\x00\x00\x00\x00\x00\x00\x52\xc7\x5d\x78\x00\x00\x00\x00\x5d\x74\x00\x00\x4a\xbf\x5d\x7b\x00\x00\x00\x00\x5d\x82\x00\x00\x00\x00\x55\xe1\x5d\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x77\x00\x00\x00\x00\x4c\xa5\x00\x00\x00\x00\x5d\x81\x00\x00\x5d\x70\x00\x00\x5d\x79\x00\x00\x5d\x83\x55\x4e\x5d\x76\x00\x00\x5d\x84\x00\x00\x00\x00\x47\x77\x5d\x7f\x48\x94\x00\x00\x48\xea\x00\x00\x4b\x46\x5d\x7a\x5d\x6c\x5d\x7d\x4a\x91\x5d\x80\x00\x00\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x96\x00\x00\x54\x41\x47\x69\x4a\xc0\x5d\x6d\x48\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x98\x00\x00\x51\x64\x00\x00\x00\x00\x00\x00\x5d\x87\x50\xe4\x47\x8a\x00\x00\x5d\x99\x00\x00\x5d\x92\x52\x7a\x45\xd2\x00\x00\x5d\x8c\x5d\x98\x4e\x43\x51\xa0\x5d\x93\x00\x00\x49\x50\x00\x00\x5d\x8f\x49\x45\x5d\x85\x5d\x6e\x48\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9a\x5d\x8a\x5d\x96\x00\x00\x5d\x95\x00\x00\x5d\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x88\x00\x00\x00\x00\x5d\x91\x5d\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x52\x00\x00\x51\x55\x00\x00\x00\x00\x53\xf3\x5d\x8e\x00\x00\x00\x00\x5d\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xbd\x00\x00\x00\x00\x00\x00\x5d\x8d\x00\x00\x00\x00\x5d\x86\x48\xbd\x00\x00\x00\x00\x5d\x88\x00\x00\x00\x00\x00\x00\x5d\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6b\x4c\x90", /* 6e80 */ "\x47\x5b\x00\x00\x5d\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x5d\xa5\x47\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xce\x00\x00\x5d\x9d\x00\x00\x00\x00\x00\x00\x4d\xc4\x4a\x4d\x00\x00\x5d\xa8\x00\x00\x00\x00\x52\x71\x00\x00\x00\x00\x53\x76\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa0\x00\x00\x00\x00\x5d\xa2\x00\x00\x00\x00\x00\x00\x48\xbe\x5d\x9e\x00\x00\x00\x00\x54\x97\x00\x00\x00\x00\x5d\x9f\x00\x00\x5d\xa6\x00\x00\x00\x00\x5d\xa7\x00\x00\x5d\xa1\x4e\xe6\x00\x00\x00\x00\x00\x00\x52\xa9\x00\x00\x48\x57\x5d\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa2\x00\x00\x52\x4a\x5d\xa3\x5d\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa3\x4d\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xab\x00\x00\x00\x00\x5d\xb1\x00\x00\x00\x00\x5d\xaf\x00\x00\x4f\xb7\x00\x00\x00\x00\x5d\xb7\x5d\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xad\x5d\xb4", /* 6f00 */ "\x00\x00\x4b\x78\x4f\xbc\x00\x00\x00\x00\x00\x00\x4d\xae\x00\x00\x00\x00\x54\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xc4\x00\x00\x55\x75\x00\x00\x5d\xb6\x49\xed\x54\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8e\x00\x00\x4f\x58\x54\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x6e\x4e\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xb0\x5d\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xb5\x5d\xae\x00\x00\x5d\xa9\x00\x00\x00\x00\x00\x00\x5d\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x4a\xc2\x00\x00\x00\x00\x00\x00\x5d\xc3\x00\x00\x00\x00\x5d\xbd\x4d\xc0\x00\x00\x00\x00\x46\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd2\x00\x00\x5d\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xbe\x4c\x93\x5d\xbc\x54\x46\x00\x00\x00\x00\x00\x00\x5d\xbf\x00\x00\x00\x00\x00\x00\x5d\xba\x00\x00\x5d\xb9\x00\x00\x5d\xc2\x00\x00\x00\x00\x00\x00", /* 6f80 */ "\x5d\xbb\x55\xa0\x5d\xc0\x00\x00\x48\x87\x00\x00\x5d\xb8\x00\x00\x5d\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xc5\x00\x00\x00\x00\x5d\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xcb\x00\x00\x5d\xc9\x4e\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x89\x00\x00\x5d\xc8\x00\x00\x5d\xca\x00\x00\x00\x00\x00\x00\x5d\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xd0\x50\xbe\x5d\xcf\x4a\xce\x00\x00\x00\x00\x5d\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xd4\x5d\xd1\x00\x00\x00\x00\x5d\xd3\x00\x00\x00\x00\x5d\xcd\x00\x00\x00\x00\x00\x00\x5d\xd0\x53\x80\x50\x7e\x00\x00\x00\x00\x51\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa3\x5d\xd2\x00\x00\x5d\xd6\x4d\xd4\x00\x00\x50\x55\x00\x00\x5d\xe2\x00\x00\x5d\xd5\x66\x58\x00\x00\x00\x00\x00\x00\x5d\xdb\x00\x00\x00\x00\x00\x00\x51\x87\x00\x00", /* 7000 */ "\x00\x00\x5d\xdd\x00\x00\x00\x00\x00\x00\x5d\xd7\x55\x50\x5d\xd8\x00\x00\x5d\xd9\x00\x00\x5d\xda\x00\x00\x00\x00\x00\x00\x5d\xde\x00\x00\x5d\xdc\x00\x00\x00\x00\x00\x00\x55\xd1\x00\x00\x00\x00\x5d\xe4\x00\x00\x5d\xe0\x5d\xdf\x00\x00\x52\xb0\x53\x5c\x5d\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xde\x52\xae\x5d\xe3\x00\x00\x00\x00\x00\x00\x46\x5b\x00\x00\x00\x00\x00\x00\x5d\xe5\x00\x00\x5d\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x85\x00\x00\x00\x00\x00\x00\x4b\x65\x4a\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x73\x00\x00\x00\x00\x00\x00\x54\x6a\x4c\xbc\x00\x00\x00\x00", /* 7080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xea\x00\x00\x00\x00\x00\x00\x49\x7d\x4f\xcb\x00\x00\x00\x00\x00\x00\x4d\xad\x00\x00\x00\x00\x00\x00\x4f\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xed\x5d\xee\x48\x61\x5d\xf0\x5d\xec\x00\x00\x00\x00\x00\x00\x52\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xef\x47\x88\x49\xd7\x52\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd1\x00\x00\x00\x00\x5d\xf2\x00\x00\x00\x00\x00\x00\x50\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf3\x00\x00\x00\x00\x00\x00\x53\x8c\x00\x00\x5d\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x87\x00\x00\x00\x00\x00\x00\x5d\xf8\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x53\xee\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xfa\x54\x4f\x00\x00\x5d\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x47\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xfc\x5d\xfd\x00\x00\x4c\x6f\x00\x00\x00\x00\x5e\x42\x00\x00\x54\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x85\x5e\x43\x00\x00\x00\x00\x4b\xdd\x00\x00\x00\x00\x5d\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x41\x00\x00\x54\xea\x53\x57\x5d\xfe\x47\x42\x00\x00\x54\xa0\x00\x00\x00\x00\x5e\x44\x00\x00\x4c\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x90\x00\x00\x00\x00", /* 7180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x47\x00\x00\x00\x00\x00\x00\x5e\x45\x00\x00\x46\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x46\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9d\x5e\x48\x00\x00\x00\x00\x00\x00\x4f\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbb\x00\x00\x00\x00\x00\x00\x5e\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x47\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x4d\x00\x00\x00\x00\x5e\x4b\x00\x00\x49\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf8\x5e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x53\x00\x00\x4a\x79\x00\x00\x5e\x4e\x00\x00\x5e\x51\x50\x47\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfb\x5e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x66\x54\xce\x5e\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x56\x54\xe6\x57\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x54\x00\x00\x00\x00\x00\x00\x5e\x59\x00\x00\x5e\x57\x5e\x58\x00\x00\x5e\x5a\x5e\x5b", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x5c\x00\x00\x00\x00\x5e\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x5e\x00\x00\x4c\x87\x00\x00\x5e\x60\x5e\x5f\x00\x00\x00\x00\x5e\x61\x00\x00\x5e\x62\x00\x00\x00\x00\x53\xa9\x45\xcc\x00\x00\x00\x00\x00\x00\x50\x96\x5e\x63\x5e\x64\x52\xdd\x4c\x79\x5e\x65\x5e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x67\x47\x67\x4a\xbd\x00\x00\x00\x00\x5e\x68\x55\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x69\x53\xfc\x00\x00\x49\x73\x00\x00\x55\xb7\x00\x00\x4a\xaf\x00\x00\x50\x9a\x55\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7b\x00\x00\x46\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x58\x00\x00\x5e\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x46\xa2\x00\x00\x00\x00\x00\x00\x54\x8a\x5e\x6b\x00\x00", /* 7280 */ "\x53\x54\x5e\x6c\x5e\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6f\x00\x00\x00\x00\x00\x00\x5e\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xdc\x00\x00\x5e\x71\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x72\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc5\x00\x00\x00\x00\x4c\xa7\x00\x00\x5e\x73\x5e\x74\x00\x00\x00\x00\x00\x00\x48\x52\x00\x00\x00\x00\x5e\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x75\x00\x00\x00\x00\x00\x00\x4e\x5a\x5e\x76\x5e\x78\x00\x00\x5e\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7a\x00\x00\x51\xdb\x00\x00\x5e\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x52\x74\x00\x00\x4e\xcf\x00\x00\x50\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7d\x5e\x7e\x5e\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7b\x00\x00\x00\x00\x4a\xdb\x4c\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x80\x52\xfe\x5e\x7f\x00\x00\x00\x00\x50\x6f\x54\xd6\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x84\x5e\x81\x00\x00\x00\x00\x00\x00\x4a\x51\x5e\x83\x5e\x85\x00\x00\x4e\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x86\x5e\x8b\x00\x00\x00\x00\x00\x00\x5e\x88\x49\xc5\x4f\xd0\x00\x00\x00\x00\x4f\x45\x5e\x89\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x87\x00\x00\x50\x4f\x53\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8c\x4c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x95\x51\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8e\x5e\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x65\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x92\x00\x00\x5e\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x93\x00\x00\x4d\x61\x00\x00\x00\x00\x5e\x96\x00\x00\x5e\x94\x5e\x95\x00\x00\x51\xcb\x5e\x97\x00\x00\x00\x00\x00\x00\x00\x00", /* 7380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x6e\x00\x00\x00\x00\x47\x83\x00\x00\x45\xfd\x00\x00\x49\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf9\x5e\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9c\x00\x00\x5e\x99\x00\x00\x00\x00\x5e\x9d\x00\x00\x4c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x98\x5e\x9e\x53\x99\x00\x00\x00\x00\x4d\x5d\x5e\x9b\x00\x00\x00\x00\x00\x00\x5e\xa2\x00\x00\x00\x00\x00\x00\x5e\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa5\x00\x00\x4b\x99\x00\x00\x00\x00\x5e\xa1\x00\x00\x5e\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb9\x00\x00\x00\x00\x50\x66\x5e\xa3\x00\x00\x00\x00\x5e\xa4\x00\x00\x00\x00\x00\x00\x5e\xa8\x00\x00\x00\x00\x5e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xb7\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x48\xdb\x00\x00\x5e\xa9\x45\xeb\x5e\xa7\x00\x00\x50\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5c\x00\x00\x00\x00\x5e\xac\x5e\xaa\x00\x00\x00\x00\x5e\xad\x5e\xab\x00\x00\x00\x00\x00\x00\x5e\xae\x00\x00\x00\x00\x00\x00\x5e\xaf\x54\x53\x4c\xd8\x52\xa3\x52\x9f\x00\x00\x00\x00\x00\x00\x5e\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb2\x00\x00\x5e\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb1\x00\x00\x00\x00\x00\x00\x5e\xb4\x53\xf1\x4f\x52\x5e\xb6\x00\x00\x4b\x5b\x5e\xb3\x50\x8c\x00\x00\x5e\xbc\x5e\xb9\x5e\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb7\x5e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbe\x5e\xb8\x00\x00\x00\x00\x51\x88\x00\x00\x00\x00\x68\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbf\x00\x00", /* 7480 */ "\x00\x00\x00\x00\x00\x00\x52\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbd\x00\x00\x50\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc1\x5e\xc0\x00\x00\x00\x00\x5e\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x64\x00\x00\x00\x00\x00\x00\x5e\xc7\x00\x00\x54\x52\x5e\xc8\x00\x00\x00\x00\x49\xc2\x5e\xc9\x00\x00\x5e\xca\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xcb\x00\x00\x5e\xcc\x5e\xce\x5e\xcd\x00\x00\x00\x00\x00\x00\x4c\xd4\x5e\xcf\x5e\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7500 */ "\x00\x00\x5e\xd1\x00\x00\x5e\xd3\x5e\xd2\x5e\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xd6\x5e\xd5\x5e\xd7\x00\x00\x00\x00\x54\x95\x00\x00\x5e\xd8\x00\x00\x53\xe6\x00\x00\x00\x00\x4b\x55\x00\x00\x4b\x66\x00\x00\x52\xa7\x00\x00\x5e\xd9\x45\x99\x00\x00\x00\x00\x00\x00\x45\xc0\x00\x00\x55\xd7\x5e\xda\x00\x00\x45\xb6\x00\x00\x00\x00\x4d\x58\x5e\xdb\x00\x00\x00\x00\x58\xfe\x45\x63\x46\x7c\x48\xa0\x49\x67\x00\x00\x00\x00\x00\x00\x45\x7c\x57\x65\x00\x00\x45\x55\x46\x77\x5e\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xdd\x00\x00\x5e\xe1\x00\x00\x00\x00\x5e\xe0\x5e\xdf\x5b\x7c\x47\xae\x5e\xde\x00\x00\x55\x8f\x00\x00\x47\x8b\x00\x00\x00\x00\x4e\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x47\xab\x5e\xe3\x5e\xe2\x4d\x72\x50\x86\x00\x00\x00\x00\x49\xfe\x00\x00\x55\x9a\x00\x00\x5e\xe4\x4c\xf0\x51\xb4\x5e\xe5\x00\x00\x52\xfd\x48\xb9\x5e\xe6\x00\x00\x5e\xe9\x00\x00\x5e\xe7\x4a\xa9\x00\x00\x00\x00\x4e\x54\x5e\xe8\x00\x00\x5e\xeb\x50\xdd\x5e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xd4", /* 7580 */ "\x00\x00\x00\x00\x5e\xec\x00\x00\x00\x00\x00\x00\x5e\xed\x5e\xee\x00\x00\x5e\xf0\x5e\xef\x4e\xa0\x00\x00\x00\x00\x51\x71\x55\xb0\x00\x00\x4c\xb4\x00\x00\x00\x00\x5e\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf2\x00\x00\x00\x00\x5e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf5\x00\x00\x5e\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xfd\x4d\x97\x5e\xf7\x00\x00\x5e\xf9\x00\x00\x00\x00\x5e\xfb\x54\xe1\x00\x00\x00\x00\x5e\xfc\x5e\xfa\x51\x42\x00\x00\x00\x00\x00\x00\x5e\xf6\x5e\xf8\x00\x00\x49\xbf\x00\x00\x4e\x4a\x00\x00\x00\x00\x5f\x41\x00\x00\x00\x00\x5e\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x42\x00\x00\x51\x82\x53\xfd\x00\x00\x00\x00\x55\x49\x5f\x43\x00\x00\x4c\x47\x00\x00\x00\x00\x5f\x45\x00\x00\x00\x00\x00\x00\x51\x74\x5f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4a\x00\x00\x5f\x4c\x5f\x4d\x50\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4b\x00\x00\x5f\x48\x00\x00\x5f\x46\x5f\x47", /* 7600 */ "\x00\x00\x5f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4f\x00\x00\x5f\x4e\x00\x00\x52\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x50\x5f\x52\x5f\x53\x5f\x54\x00\x00\x5f\x55\x00\x00\x54\xa4\x5f\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x00\x00\x00\x00\x00\x00\x5f\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb7\x00\x00\x00\x00\x00\x00\x5f\x5c\x5f\x59\x5f\x5a\x00\x00\x00\x00\x00\x00\x54\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xaa\x00\x00\x00\x00\x00\x00\x53\x7e\x00\x00\x5f\x5b\x00\x00\x00\x00\x00\x00\x5f\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5e\x5f\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x62\x5f\x60\x5f\x61\x5f\x63\x00\x00\x5f\x64\x00\x00\x00\x00\x00\x00\x5f\x65\x00\x00\x5f\x66\x00\x00\x00\x00\x00\x00\x5f\x67\x00\x00\x53\x9a\x00\x00\x46\x4b\x46\xe8\x5f\x68\x46\x59\x45\x4b\x00\x00", /* 7680 */ "\x5f\x6a\x00\x00\x5f\x69\x5f\x6b\x45\xef\x00\x00\x4a\xb0\x4c\xbb\x5f\x6c\x00\x00\x00\x00\x5f\x6d\x00\x00\x00\x00\x52\x99\x00\x00\x52\xa4\x00\x00\x00\x00\x4e\x81\x00\x00\x00\x00\x53\x96\x00\x00\x00\x00\x5f\x6e\x5f\x6f\x5f\x72\x5f\x70\x00\x00\x5f\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xda\x00\x00\x5f\x74\x00\x00\x00\x00\x00\x00\x5f\x75\x00\x00\x00\x00\x68\x68\x5f\x76\x5f\x77\x5f\x78\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc7\x00\x00\x00\x00\x5f\x79\x53\xba\x00\x00\x00\x00\x50\x57\x00\x00\x51\xb5\x00\x00\x47\x74\x00\x00\x00\x00\x5f\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x7d\x00\x00\x00\x00\x00\x00\x5f\x7c\x4d\x65\x00\x00\x00\x00\x00\x00\x48\x44\x5c\xc9\x00\x00\x5f\x7e\x4b\x84\x00\x00\x5f\x7f\x00\x00\x49\xe3\x48\x90\x5f\x80\x00\x00\x53\xf7\x00\x00\x00\x00\x5f\x81\x00\x00\x00\x00\x00\x00\x46\x75\x00\x00\x00\x00\x00\x00\x50\x80\x00\x00\x46\x74\x00\x00\x00\x00\x00\x00\x46\x78\x00\x00\x00\x00\x5f\x83\x00\x00\x00\x00\x50\x82\x00\x00", /* 7700 */ "\x00\x00\x48\x47\x00\x00\x00\x00\x5f\x86\x00\x00\x00\x00\x5f\x85\x5f\x84\x52\xbc\x00\x00\x4d\xa2\x45\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8b\x00\x00\x00\x00\x51\xca\x46\x42\x4e\x6a\x00\x00\x00\x00\x00\x00\x5f\x87\x5f\x89\x5f\x8a\x00\x00\x00\x00\x5f\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8c\x5f\x8d\x00\x00\x4e\x5f\x00\x00\x49\xa5\x00\x00\x00\x00\x00\x00\x47\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8e\x5f\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x90\x5f\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6c\x00\x00\x4a\x73\x00\x00\x5f\x94\x4a\x96\x00\x00\x5f\x91\x00\x00\x00\x00\x5f\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x97\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x96\x5f\x95", /* 7780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x99\x00\x00\x00\x00\x5f\x98\x00\x00\x00\x00\x5f\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9c\x00\x00\x5f\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb0\x52\x7d\x00\x00\x00\x00\x5f\x9d\x00\x00\x00\x00\x4f\x9b\x00\x00\x00\x00\x5f\x9e\x00\x00\x00\x00\x5f\x9f\x00\x00\x5f\xa3\x5f\xa1\x5f\xa2\x00\x00\x5f\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x50\x00\x00\x00\x00\x5f\xa6\x50\xed\x5f\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc1\x5f\xa8\x00\x00\x45\xb0\x00\x00\x55\xc9\x00\x00\x4e\x4d\x00\x00\x00\x00\x00\x00\x4a\x82\x5f\xa9\x51\xbb\x00\x00\x00\x00\x00\x00\x45\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xab\x00\x00\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x49\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xad\x00\x00\x46\xd3\x4c\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb0\x5f\xae\x00\x00\x00\x00\x00\x00\x4d\x45\x54\xb4\x52\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc2\x00\x00\x4a\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x84\x4a\xef\x00\x00\x00\x00\x53\x69\x00\x00\x00\x00\x52\xbf\x00\x00\x5f\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb6\x00\x00\x5f\xb9\x00\x00\x00\x00\x00\x00", /* 7880 */ "\x00\x00\x4f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb7\x51\x95\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xba\x53\x56\x5f\xb5\x00\x00\x00\x00\x51\x7b\x00\x00\x4f\xb1\x00\x00\x52\xd2\x00\x00\x54\x5b\x00\x00\x00\x00\x5f\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbb\x00\x00\x00\x00\x00\x00\x4d\xf8\x00\x00\x50\x7d\x5f\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7a\x00\x00\x5f\xc4\x00\x00\x5f\xc3\x00\x00\x00\x00\x4a\x62\x00\x00\x00\x00\x00\x00\x5f\xc5\x5f\xc0\x00\x00\x00\x00\x00\x00\x5f\xc6\x5f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x9c\x5f\xbf\x00\x00\x00\x00\x5f\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc8\x49\xb4\x00\x00\x00\x00\x00\x00\x5f\xc7\x00\x00\x00\x00\x48\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xca\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x51\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x9c\x00\x00\x00\x00\x5f\xcd\x4d\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xb9\x00\x00\x00\x00\x00\x00\x51\x4c\x5f\xd0\x5f\xcf\x00\x00\x00\x00\x00\x00\x5f\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x53\x00\x00\x49\x58\x00\x00\x46\x63\x00\x00\x5f\xd3\x53\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x92\x4e\xd8\x4f\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8c\x00\x00\x00\x00\x55\x5c\x00\x00\x5f\xd8\x4c\xdc\x53\x65\x00\x00\x00\x00\x5f\xd7\x00\x00\x00\x00\x4c\xeb\x45\xa1\x5f\xd6\x5f\xd4\x00\x00\x4f\x89\x00\x00\x00\x00\x49\xf9\x00\x00\x00\x00\x4d\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x53\x00\x00\x00\x00\x52\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xda", /* 7980 */ "\x50\xe7\x4d\x75\x00\x00\x00\x00\x50\xae\x4f\x87\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdb\x00\x00\x00\x00\x52\x86\x4b\xa7\x45\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdf\x00\x00\x5f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xaa\x4f\xd7\x00\x00\x00\x00\x5f\xe0\x00\x00\x00\x00\x00\x00\x54\xf5\x00\x00\x50\xfa\x55\x53\x00\x00\x5f\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6a\x5f\xe2\x00\x00\x00\x00\x55\x5d\x54\x63\x53\xd0\x45\xf1\x46\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe3\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xed\x4d\xba\x00\x00\x00\x00\x5f\xe4\x00\x00\x00\x00\x4c\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x83\x00\x00\x54\xb5\x00\x00\x5f\xe7\x50\x8f\x00\x00\x4c\x8a\x5f\xe5\x00\x00\x4d\x9f\x00\x00\x00\x00\x5f\xe6\x00\x00\x00\x00\x00\x00\x4b\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x75\x00\x00\x00\x00\x00\x00\x00\x00", /* 7a00 */ "\x52\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe8\x00\x00\x00\x00\x47\xf4\x00\x00\x5f\xe9\x47\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xfa\x00\x00\x00\x00\x50\x87\x5f\xea\x5f\xeb\x4d\xcf\x00\x00\x52\x96\x00\x00\x00\x00\x5f\xec\x53\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x92\x00\x00\x00\x00\x5f\xed\x47\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xef\x00\x00\x00\x00\x00\x00\x5f\xf0\x4d\xbe\x4f\xc7\x5f\xee\x4f\xd5\x4e\x94\x00\x00\x48\xd4\x5f\xf1\x00\x00\x00\x00\x52\xbe\x00\x00\x00\x00\x5f\xf3\x00\x00\x00\x00\x00\x00\x48\x91\x52\x54\x50\xb8\x50\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf5\x5f\xf4\x4e\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf6\x00\x00\x4f\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf8\x00\x00\x00\x00\x00\x00\x4b\x86\x00\x00\x49\x86\x00\x00\x00\x00\x5f\xf9\x47\x8d\x00\x00\x00\x00\x5f\xfa\x00\x00\x4e\x91", /* 7a80 */ "\x00\x00\x4a\xfd\x00\x00\x51\x69\x54\x99\x00\x00\x00\x00\x00\x00\x5f\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb0\x4b\xe9\x00\x00\x5f\xfc\x5f\xfe\x60\x41\x5f\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x42\x4a\x65\x00\x00\x00\x00\x00\x00\x50\xaa\x49\xa7\x60\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x44\x00\x00\x00\x00\x00\x00\x55\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x47\x00\x00\x00\x00\x00\x00\x60\x46\x60\x49\x60\x48\x00\x00\x60\x4a\x52\xf0\x00\x00\x60\x4b\x45\xdd\x00\x00\x60\x4c\x00\x00\x60\x4d\x00\x00\x60\x4f\x60\x4e\x60\x51\x00\x00\x60\x50\x00\x00\x00\x00\x00\x00\x60\x52\x60\x53\x00\x00\x49\xe7\x60\x54\x00\x00\x66\xc1\x47\x6e\x60\x55\x60\x56\x54\x6b\x00\x00\x4d\x50\x60\x57\x60\x58\x00\x00\x00\x00\x51\xc8\x60\x5a\x00\x00\x60\x5b\x00\x00\x48\xef\x60\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x71\x00\x00\x60\x5d\x45\xf5\x54\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x52\x87", /* 7b00 */ "\x00\x00\x00\x00\x60\x5e\x00\x00\x54\xd5\x00\x00\x60\x62\x00\x00\x51\xcf\x00\x00\x60\x61\x60\x60\x00\x00\x00\x00\x00\x00\x60\x5f\x00\x00\x49\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe7\x60\x65\x00\x00\x4f\x41\x00\x00\x00\x00\x60\x66\x00\x00\x47\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf4\x4f\xd9\x00\x00\x60\x68\x00\x00\x00\x00\x00\x00\x46\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x63\x00\x00\x60\x67\x60\x64\x00\x00\x00\x00\x49\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6c\x4a\xc7\x00\x00\x4d\x9b\x46\xa7\x00\x00\x4b\x8f\x60\x6b\x60\x6a\x00\x00\x52\xf5\x60\x69\x4b\x45\x4b\x7c\x00\x00\x49\xd0\x00\x00\x46\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x84\x00\x00\x50\x48\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4e\x00\x00\x60\x73\x00\x00\x60\x71\x60\x72\x00\x00\x00\x00\x60\x70\x60\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7b80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9b\x4f\x51\x00\x00\x00\x00\x00\x00\x55\xa4\x00\x00\x60\x77\x00\x00\x60\x7b\x00\x00\x00\x00\x60\x7a\x00\x00\x4e\xe0\x4c\xcc\x00\x00\x48\x43\x60\x75\x60\x7c\x60\x79\x00\x00\x60\x78\x60\x74\x60\x82\x60\x76\x00\x00\x46\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x00\x00\x00\x00\x51\x8d\x00\x00\x00\x00\x00\x00\x4a\xfb\x00\x00\x00\x00\x60\x80\x00\x00\x00\x00\x00\x00\x50\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa1\x51\xe8\x00\x00\x00\x00\x49\xe8\x00\x00\x60\x81\x4f\xb6\x00\x00\x49\xa8\x00\x00\x60\x7e\x60\x7f\x00\x00\x00\x00\x60\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x83\x00\x00\x00\x00\x48\x75\x00\x00\x00\x00\x00\x00\x4a\xd8\x60\x87\x60\x85\x00\x00\x00\x00\x60\x84\x00\x00\x00\x00\x00\x00\x54\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8c\x00\x00\x00\x00\x60\x8e\x60\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7c00 */ "\x60\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8d\x00\x00\x00\x00\x00\x00\x4f\x53\x57\x8a\x60\x8a\x60\x88\x00\x00\x00\x00\x51\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x60\x92\x00\x00\x4b\xec\x00\x00\x60\x8f\x00\x00\x00\x00\x00\x00\x60\x90\x00\x00\x00\x00\x60\x91\x60\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x93\x51\xab\x00\x00\x00\x00\x00\x00\x00\x00\x60\x95\x52\x70\x4f\x4c\x60\x96\x00\x00\x00\x00\x60\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x97\x4d\xfe\x00\x00\x51\xf2\x60\x9a\x00\x00\x00\x00\x00\x00\x4f\x99\x00\x00\x60\x99\x00\x00\x60\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9c\x4c\xee\x00\x00\x00\x00\x00\x00\x52\xaa\x60\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x6f\x00\x00\x60\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf0\x00\x00", /* 7c80 */ "\x00\x00\x55\xe7\x4e\x85\x60\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x9e\x00\x00\x4f\xcc\x00\x00\x53\xc9\x00\x00\x00\x00\x60\xa1\x00\x00\x4c\xa9\x00\x00\x00\x00\x4c\x4b\x00\x00\x4d\x59\x4b\xf7\x00\x00\x00\x00\x4f\xc8\x00\x00\x00\x00\x00\x00\x4b\xfb\x00\x00\x60\xa5\x60\xa3\x00\x00\x60\xa2\x52\xab\x00\x00\x4b\xd4\x60\xa7\x00\x00\x00\x00\x60\xa4\x00\x00\x60\xa6\x60\xab\x00\x00\x00\x00\x60\xaa\x60\xa9\x60\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xac\x00\x00\x00\x00\x00\x00\x60\xae\x46\x6c\x00\x00\x51\xbc\x00\x00\x60\xb0\x00\x00\x00\x00\x60\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x54\x71\x00\x00\x00\x00\x00\x00\x51\x60\x00\x00\x00\x00\x00\x00\x60\xb1\x00\x00\x00\x00\x00\x00\x48\x84\x00\x00\x60\xb3\x00\x00\x00\x00\x00\x00\x60\xb4\x00\x00\x54\x92\x51\x8c\x51\x4b\x00\x00\x60\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xb5\x00\x00\x00\x00\x60\xb6\x00\x00\x60\xb7\x00\x00\x60\xb8\x00\x00\x46\xc7\x00\x00\x52\xc2\x48\xfa\x00\x00\x00\x00\x51\xfe\x00\x00", /* 7d00 */ "\x46\xdb\x00\x00\x60\xba\x00\x00\x47\xbd\x4b\x67\x60\xb9\x00\x00\x00\x00\x00\x00\x60\xbd\x4c\xf9\x00\x00\x49\xe2\x00\x00\x00\x00\x4f\xb5\x00\x00\x00\x00\x00\x00\x47\xa6\x60\xbc\x00\x00\x4f\x47\x4c\x78\x46\x80\x49\xf3\x4f\xf3\x60\xbb\x00\x00\x00\x00\x00\x00\x47\x9f\x48\x77\x4c\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf0\x55\x92\x00\x00\x60\xc0\x51\x48\x47\x68\x00\x00\x60\xc1\x4e\x59\x00\x00\x60\xc3\x00\x00\x00\x00\x00\x00\x4c\xe4\x4c\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc2\x00\x00\x00\x00\x49\xf4\x55\x63\x46\xb9\x60\xbe\x60\xc5\x00\x00\x60\xc4\x00\x00\x00\x00\x60\xbf\x46\x88\x00\x00\x60\xc9\x60\xcc\x46\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd0\x60\xc6\x00\x00\x50\x6d\x00\x00\x00\x00\x4c\xe7\x4e\xf7\x60\xcd\x00\x00\x00\x00\x47\x57\x00\x00\x60\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcb\x00\x00\x00\x00\x48\x81\x52\x68\x60\xc7\x00\x00\x4a\xe4\x4a\xf3\x00\x00\x00\x00\x49\xf6\x00\x00\x00\x00\x00\x00\x54\xed\x00\x00\x00\x00", /* 7d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x74\x00\x00\x00\x00\x00\x00\x60\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x4a\x47\xcb\x54\xeb\x50\x70\x00\x00\x00\x00\x60\xdc\x60\xda\x00\x00\x60\xd8\x60\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd7\x51\xa3\x48\x80\x60\xd1\x60\xd9\x60\xdd\x48\xcb\x4a\x53\x00\x00\x4d\xc9\x60\xd3\x00\x00\x60\xd4\x60\xdb\x00\x00\x54\xd3\x54\xa6\x00\x00\x60\xd6\x49\xdc\x48\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd5\x00\x00\x00\x00\x4b\x97\x53\x7d\x00\x00\x00\x00\x00\x00\x47\x93\x00\x00\x48\xa5\x4a\x9b\x00\x00\x00\x00\x60\xde\x60\xe1\x00\x00\x60\xdf\x00\x00\x46\x87\x00\x00\x60\xe8\x60\xe0\x60\xe3\x00\x00\x4a\x80\x60\xe7\x00\x00\x00\x00\x60\xe2\x00\x00\x00\x00\x00\x00\x48\x4e\x4c\xfc\x00\x00\x00\x00\x55\x6b\x00\x00\x00\x00\x4e\x9a\x00\x00\x00\x00\x60\xe6\x00\x00\x48\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe4\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x4b\xaa\x00\x00\x00\x00\x48\x59\x60\xe9\x00\x00\x00\x00\x00\x00\x60\xee\x60\xea\x60\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe6\x00\x00\x00\x00\x4f\x6b\x60\xed\x00\x00\x60\xeb\x5b\xcc\x55\xa8\x00\x00\x00\x00\x4e\x93\x00\x00\x00\x00\x00\x00\x00\x00\x49\xe4\x00\x00\x00\x00\x49\xf7\x00\x00\x00\x00\x60\xf2\x60\xf9\x00\x00\x00\x00\x60\xf4\x00\x00\x60\xf8\x00\x00\x60\xf6\x60\xef\x60\xf5\x00\x00\x60\xf3\x48\x66\x00\x00\x00\x00\x47\x59\x00\x00\x60\xf7\x00\x00\x00\x00\x60\xf0\x00\x00\x60\xf1\x00\x00\x48\x68\x53\x73\x00\x00\x52\xda\x00\x00\x00\x00\x00\x00\x00\x00\x60\xfd\x00\x00\x48\x9a\x51\xd4\x60\xfb\x00\x00\x00\x00\x60\xfe\x61\x41\x00\x00\x00\x00\x60\xfa\x60\xfc\x00\x00\x00\x00\x52\xda\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf1\x61\x42\x00\x00\x61\x45\x61\x44\x53\x73\x00\x00\x4d\x9a\x00\x00\x00\x00\x4b\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x43\x00\x00\x61\x47\x61\x46\x61\x48\x00\x00\x61\x4a", /* 7e80 */ "\x00\x00\x00\x00\x55\xeb\x61\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x52\x78\x61\x4c\x51\xbf\x00\x00\x61\x4e\x00\x00\x61\x4d\x55\xfa\x52\x73\x00\x00\x61\x4f\x61\x50\x61\x51\x00\x00\x61\x52\x00\x00\x00\x00\x00\x00\x00\x00\x61\x53\x53\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x84\x00\x00\x61\x54\x00\x00\x61\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x56\x00\x00\x61\x57\x00\x00\x00\x00\x00\x00\x00\x00\x61\x58\x54\xcb\x61\x59\x00\x00\x51\x6e\x61\x5a\x00\x00\x00\x00\x61\x5c\x61\x5b\x00\x00\x00\x00\x61\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5e\x61\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x61\x61\x60\x61\x62\x4c\x4e\x55\xef\x00\x00\x00\x00\x46\x8c\x00\x00\x4f\x82\x00\x00\x4c\x99\x00\x00\x00\x00\x55\x79\x00\x00\x55\xa5\x61\x63\x5a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f80 */ "\x00\x00\x00\x00\x61\x64\x61\x66\x00\x00\x4d\xfa\x61\x65\x61\x67\x61\x68\x00\x00\x4a\xd1\x00\x00\x61\x69\x00\x00\x45\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6d\x00\x00\x00\x00\x61\x6c\x61\x6b\x00\x00\x00\x00\x61\x6e\x00\x00\x61\x6f\x47\xb1\x00\x00\x00\x00\x00\x00\x55\x96\x45\x98\x00\x00\x00\x00\x00\x00\x00\x00\x61\x71\x61\x70\x00\x00\x00\x00\x61\x72\x00\x00\x00\x00\x00\x00\x61\x74\x00\x00\x61\x75\x61\x73\x00\x00\x00\x00\x00\x00\x47\x8f\x00\x00\x00\x00\x00\x00\x4f\xfb\x00\x00\x00\x00\x00\x00\x61\x78\x61\x79\x00\x00\x00\x00\x00\x00\x61\x7a\x00\x00\x4d\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x69\x00\x00\x54\xf9\x61\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x69\x61\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7d\x00\x00\x00\x00\x61\x7e\x00\x00\x55\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb6\x00\x00\x00\x00\x61\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x80\x00\x00\x51\xf6\x4d\xb5\x00\x00\x00\x00\x00\x00", /* 8000 */ "\x52\xa0\x49\x85\x00\x00\x47\x60\x61\x81\x46\x70\x53\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x61\x82\x51\xe6\x00\x00\x00\x00\x00\x00\x49\x8e\x00\x00\x61\x83\x00\x00\x00\x00\x49\x9a\x00\x00\x4f\xec\x54\xe4\x61\x84\x00\x00\x00\x00\x61\x85\x00\x00\x00\x00\x00\x00\x00\x00\x61\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xab\x00\x00\x00\x00\x4e\x99\x00\x00\x00\x00\x00\x00\x00\x00\x61\x89\x00\x00\x55\xb8\x00\x00\x61\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8b\x00\x00\x00\x00\x00\x00\x61\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8c\x00\x00\x00\x00\x00\x00\x4b\xb5\x00\x00\x61\x8d\x00\x00\x54\x79\x00\x00\x00\x00\x00\x00\x48\xbb\x61\x8e\x00\x00\x4b\x89\x61\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xca\x61\x93\x00\x00\x61\x92\x61\x91\x4d\xa8\x00\x00\x61\x94\x48\xd7\x00\x00\x61\x95\x00\x00\x00\x00\x00\x00\x61\x96\x53\xe4\x61\x97", /* 8080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x61\x98\x61\x99\x53\xb6\x4b\x41\x00\x00\x4a\x42\x00\x00\x55\x7f\x4e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x9a\x00\x00\x00\x00\x52\x67\x00\x00\x52\x6a\x00\x00\x61\x9b\x52\x92\x00\x00\x4c\x8c\x00\x00\x00\x00\x00\x00\x4c\xc5\x53\x82\x00\x00\x00\x00\x49\x7b\x00\x00\x00\x00\x00\x00\x4b\x79\x4c\xfb\x00\x00\x61\x9e\x61\x9c\x00\x00\x50\xeb\x00\x00\x52\xd5\x48\xac\x00\x00\x54\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf6\x61\xa3\x00\x00\x4e\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb2\x00\x00\x52\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x88\x00\x00\x00\x00\x61\xa1\x61\xa4\x61\x9f\x00\x00\x61\xa2\x50\xb6\x00\x00\x00\x00\x4d\x63\x00\x00\x00\x00\x4e\xe9\x61\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa6\x00\x00\x61\xa7\x00\x00\x00\x00\x4e\xab\x00\x00\x00\x00\x00\x00\x4b\xe3\x00\x00\x00\x00\x00\x00\x61\xb0\x47\x4f\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x48\x74\x00\x00\x00\x00\x50\x51\x55\xec\x47\xe3\x50\x79\x61\xa5\x53\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5c\x61\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xaa\x00\x00\x4a\xb4\x00\x00\x4c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x61\xad\x00\x00\x00\x00\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x61\xac\x00\x00\x00\x00\x00\x00\x00\x00\x61\xab\x00\x00\x00\x00\x52\xc4\x00\x00\x4d\x62\x61\xaf\x00\x00\x61\xae\x52\x47\x4c\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb3\x61\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x51\xce\x00\x00\x00\x00\x61\xb2\x00\x00\x4b\xa4\x61\xb1\x00\x00\x00\x00\x61\xb6\x00\x00\x00\x00\x00\x00\x4d\xb6\x4c\xa0\x52\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9a", /* 8180 */ "\x61\xba\x00\x00\x61\xbb\x61\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb8\x00\x00\x61\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd8\x00\x00\x00\x00\x00\x00\x61\xbf\x00\x00\x61\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x51\x91\x00\x00\x4d\x8a\x50\x60\x00\x00\x00\x00\x61\xbc\x00\x00\x00\x00\x61\xbe\x61\xc1\x00\x00\x00\x00\x00\x00\x4e\xf6\x61\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xc4\x00\x00\x00\x00\x50\x76\x00\x00\x61\xc0\x00\x00\x00\x00\x61\xc3\x00\x00\x61\xca\x00\x00\x00\x00\x61\xc7\x61\xc6\x53\x5f\x61\xc8\x00\x00\x61\xc9\x00\x00\x00\x00\x00\x00\x54\x74\x00\x00\x61\xc5\x61\xcb\x00\x00\x00\x00\x00\x00\x61\xcc\x00\x00\x00\x00\x00\x00\x61\xcd\x00\x00\x4d\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x61\xce\x61\xcf\x61\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd1\x61\xd2\x00\x00\x00\x00\x4a\x47\x00\x00\x53\x8a\x00\x00\x51\x73\x4c\xd0\x00\x00\x45\xc3\x00\x00\x00\x00\x4d\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x48\x4c\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd3\x61\xd4\x4a\x89\x00\x00\x61\xd5\x00\x00", /* 8200 */ "\x00\x00\x61\xd6\x61\xd7\x00\x00\x00\x00\x61\xd8\x00\x00\x53\x58\x46\x6a\x57\x78\x62\xba\x00\x00\x50\x94\x61\xd9\x4c\x58\x00\x00\x61\xda\x00\x00\x61\xdb\x00\x00\x00\x00\x00\x00\x61\xdc\x4e\x5b\x4c\xaa\x00\x00\x00\x00\x4f\xc1\x4f\xb8\x00\x00\x4a\x63\x4b\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdd\x48\x9f\x61\xde\x49\x56\x00\x00\x61\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe1\x00\x00\x54\xdb\x4b\x87\x53\xac\x61\xe0\x46\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xae\x61\xe3\x61\xe4\x00\x00\x00\x00\x61\xe5\x00\x00\x61\xe6\x00\x00\x00\x00\x61\xe8\x00\x00\x61\xe7\x00\x00\x4c\x4a\x00\x00\x61\xe9\x00\x00\x61\xea\x61\xeb\x00\x00\x00\x00\x55\xb4\x45\xc4\x00\x00\x61\xec\x47\xc3\x00\x00\x00\x00\x00\x00\x4d\x54\x61\xed\x53\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xee\x00\x00", /* 8280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9a\x00\x00\x61\xef\x00\x00\x00\x00\x00\x00\x00\x00\x61\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbd\x00\x00\x00\x00\x00\x00\x49\x72\x00\x00\x61\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7b\x4a\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x61\xf1\x61\xf4\x54\x42\x00\x00\x4f\xe5\x00\x00\x46\xd9\x00\x00\x46\x83\x00\x00\x00\x00\x00\x00\x00\x00\x49\x53\x4d\xd0\x00\x00\x61\xf3\x00\x00\x4e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4b\x61\xf9\x55\x59\x52\xd7\x00\x00\x00\x00\x4a\xb8\x00\x00\x62\x46\x00\x00\x53\x77\x62\x43\x00\x00\x62\x41\x61\xf7\x00\x00\x61\xf5\x00\x00\x61\xf6\x00\x00\x46\xd6\x4a\x5f\x54\xb0\x00\x00\x00\x00\x00\x00\x4d\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xee\x00\x00\x61\xfb\x61\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x61\xfe\x62\x44\x61\xfd\x00\x00\x00\x00\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x61\xf8\x46\x46\x61\xfc\x54\x7a\x4b\xd3\x62\x42\x00\x00\x00\x00\x62\x45\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4a\x53\xf6\x62\x52\x00\x00\x00\x00\x00\x00\x50\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x58\x00\x00\x00\x00\x00\x00\x00\x00\x47\x4c\x00\x00\x00\x00\x62\x51\x00\x00\x00\x00\x00\x00\x62\x50\x00\x00\x62\x4b\x54\x7b\x00\x00\x62\x49\x62\x47\x49\x77\x00\x00\x4d\xf7\x62\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4f\x53\xb3\x00\x00\x00\x00\x48\x42\x53\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5f\x62\x4e\x00\x00\x46\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5f\x00\x00\x62\x5a\x00\x00\x4b\xa1\x00\x00\x00\x00\x00\x00\x49\xe0\x62\x5d\x00\x00\x00\x00\x62\x5b", /* 8380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x62\x00\x00\x54\x86\x00\x00\x62\x63\x62\x5c\x00\x00\x00\x00\x00\x00\x62\x59\x00\x00\x00\x00\x00\x00\x00\x00\x62\x60\x00\x00\x00\x00\x62\x57\x00\x00\x00\x00\x00\x00\x62\x53\x00\x00\x00\x00\x00\x00\x51\xee\x62\x55\x62\x61\x00\x00\x62\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x64\x00\x00\x62\x54\x54\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc9\x00\x00\x00\x00\x00\x00\x62\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x75\x00\x00\x00\x00\x00\x00\x62\x6e\x00\x00\x00\x00\x00\x00\x47\x53\x00\x00\x62\x67\x00\x00\x00\x00\x46\xd7\x00\x00\x4c\x73\x00\x00\x62\x68\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x51\x00\x00\x00\x00\x51\x80\x00\x00\x62\x6c\x00\x00\x00\x00\x00\x00\x4b\xa8\x00\x00\x00\x00\x53\xd4\x62\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6a\x00\x00\x54\xe9\x00\x00\x00\x00\x00\x00\x4b\x6c\x51\x6d\x48\xcc\x62\x71\x00\x00\x62\x65\x00\x00\x62\x74\x62\x69\x00\x00\x00\x00\x00\x00\x62\x76\x00\x00\x62\x6a\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x62\x6b\x54\xf7\x00\x00\x00\x00\x62\x6f\x00\x00\x00\x00\x52\xc9\x62\x6d\x50\xdb\x62\x72\x54\x82\x00\x00\x00\x00\x00\x00\x00\x00\x62\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x73\x00\x00\x54\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4a\x62\x77\x00\x00\x4b\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7c\x00\x00\x00\x00\x00\x00\x62\x85\x00\x00\x00\x00\x62\x84\x00\x00\x00\x00\x00\x00\x62\x79\x47\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x82\x00\x00\x62\x7e\x45\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x59\x00\x00\x00\x00\x00\x00\x48\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x47\x62\x78\x50\x71\x00\x00\x00\x00\x4e\x72\x00\x00\x00\x00\x62\x81\x00\x00\x62\x7c\x4f\x79\x51\x6c\x62\x7f\x62\x83\x00\x00\x54\x4e\x00\x00\x00\x00\x00\x00\x50\xd9\x00\x00\x62\x7b\x00\x00\x62\x7d\x50\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x62\x80\x00\x00\x62\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x93\x00\x00\x00\x00\x00\x00\x4f\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x50\x95\x00\x00\x00\x00\x52\x59\x00\x00\x00\x00\x62\x89\x00\x00\x62\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x90\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb2\x00\x00\x62\x8a\x00\x00\x00\x00\x00\x00\x4a\xba\x62\x87\x00\x00\x62\x8c\x50\xb9\x00\x00\x00\x00\x62\x88\x00\x00\x62\x8f\x00\x00\x00\x00\x4c\x94\x00\x00\x62\x91\x00\x00\x00\x00\x50\x83\x62\x86\x4f\x6d\x00\x00\x62\x8b\x00\x00\x00\x00\x62\x8e\x4f\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x62\x92\x00\x00\x00\x00\x62\x94\x62\x8d\x00\x00\x52\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x88\x00\x00\x4b\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8b\x00\x00\x00\x00\x62\x95", /* 8500 */ "\x52\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6c\x00\x00\x55\x7b\x62\x9c\x62\x9b\x00\x00\x62\x97\x62\x98\x00\x00\x54\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9a\x00\x00\x54\xa8\x00\x00\x53\xf8\x00\x00\x00\x00\x4f\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x99\x4e\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd1\x00\x00\x00\x00\x62\xa0\x62\xa5\x00\x00\x52\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x62\xa4\x53\xa8\x62\xa6\x62\xa7\x00\x00\x00\x00\x55\x65\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9e\x00\x00\x62\xa9\x00\x00\x54\x91\x62\xa3\x62\xa1\x62\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x50\xde\x54\xf0\x51\xd3\x62\xa8\x00\x00\x62\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb7\x00\x00", /* 8580 */ "\x62\xaa\x00\x00\x00\x00\x00\x00\x4a\x92\x00\x00\x00\x00\x62\xb4\x62\xac\x00\x00\x62\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb8\x62\xad\x00\x00\x00\x00\x62\xb1\x00\x00\x00\x00\x4c\xec\x00\x00\x51\xad\x00\x00\x62\xb2\x62\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xab\x00\x00\x4f\xbf\x00\x00\x62\xaf\x4c\xf1\x54\x5a\x49\x98\x46\xe1\x00\x00\x62\xb3\x53\xf9\x62\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xbf\x62\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xbc\x00\x00\x00\x00\x00\x00\x4e\xed\x00\x00\x62\xbe\x62\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc4\x62\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x68\x62\xc3\x00\x00\x00\x00\x00\x00\x4f\xf6\x4c\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe2\x00\x00\x62\xc5\x53\xed\x50\x5f\x00\x00\x00\x00\x62\xc9\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x54\x96\x00\x00\x00\x00\x00\x00\x4e\xda\x4c\xbf\x00\x00\x00\x00\x62\xc6\x62\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc7\x00\x00\x00\x00\x5c\xbd\x5c\xbe\x00\x00\x00\x00\x62\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa6\x00\x00\x5f\x82\x62\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcf\x4a\xab\x00\x00\x52\x60\x00\x00\x00\x00\x00\x00\x52\xfb\x62\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x72\x00\x00\x52\x50\x00\x00\x55\x88\x62\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x00\x00\x00\x00\x00\x00\x4b\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xb6\x00\x00\x51\x44\x00\x00\x00\x00\x00\x00\x00\x00", /* 8680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xaa\x62\xd8\x62\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd5\x00\x00\x4f\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd6\x55\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd7\x62\xd9\x62\xe3\x00\x00\x00\x00\x00\x00\x62\xdc\x62\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xdd\x00\x00\x62\xde\x4f\xea\x00\x00\x62\xe0\x00\x00\x53\xd8\x00\x00\x4d\xf9\x62\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbb\x00\x00\x62\xe9\x00\x00\x00\x00\x62\xe5\x62\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe6\x00\x00\x00\x00\x62\xe7\x4e\x66\x53\xa5\x4f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x4e\x62\xf3\x00\x00\x62\xef\x00\x00\x00\x00\x55\x99\x00\x00", /* 8700 */ "\x62\xed\x00\x00\x4e\xcd\x62\xee\x00\x00\x00\x00\x62\xeb\x00\x00\x62\xec\x62\xf1\x62\xf4\x00\x00\x00\x00\x62\xf2\x00\x00\x00\x00\x00\x00\x62\xf0\x62\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xdc\x00\x00\x62\xfa\x00\x00\x53\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf8\x00\x00\x00\x00\x00\x00\x62\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf5\x00\x00\x00\x00\x52\x6d\x00\x00\x00\x00\x00\x00\x62\xf7\x00\x00\x00\x00\x00\x00\x62\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x52\xa1\x62\xfd\x00\x00\x62\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x63\x49\x00\x00\x53\x47\x00\x00\x63\x42\x00\x00\x63\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xfb\x63\x46\x00\x00\x00\x00\x63\x4a\x00\x00\x00\x00\x51\xc3\x00\x00\x63\x43\x00\x00\x63\x45\x00\x00\x00\x00\x00\x00\x63\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x41\x00\x00\x4e\x6e\x00\x00\x62\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4b", /* 8780 */ "\x00\x00\x00\x00\x63\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x00\x00\x63\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x00\x00\x00\x00\x63\x4f\x00\x00\x00\x00\x00\x00\x63\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd6\x63\x59\x00\x00\x63\x51\x00\x00\x00\x00\x63\x52\x00\x00\x00\x00\x00\x00\x63\x56\x00\x00\x63\x4d\x54\xf4\x00\x00\x00\x00\x00\x00\x63\x50\x00\x00\x00\x00\x00\x00\x00\x00\x63\x53\x00\x00\x63\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x00\x00\x63\x5a\x00\x00\x00\x00\x63\x5b\x00\x00\x00\x00\x00\x00\x63\x63\x63\x64\x00\x00\x50\x90\x00\x00\x51\xc6\x00\x00\x00\x00\x63\x62\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbd\x00\x00\x63\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x61\x63\x5d\x63\x5f\x00\x00\x63\x65\x00\x00\x00\x00\x00\x00\x63\x66\x63\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa1\x00\x00\x63\x68\x63\x67\x53\x51\x00\x00\x00\x00\x00\x00\x63\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x63\x6b\x00\x00\x00\x00\x63\x6c\x00\x00\x63\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x43\x00\x00\x63\x6e\x00\x00\x63\x6f\x00\x00\x4b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xa4\x63\x70\x00\x00\x00\x00\x00\x00\x00\x00\x63\x71\x48\x6c\x00\x00\x00\x00\x00\x00\x4b\xa5\x00\x00\x63\x72\x00\x00\x47\x80\x00\x00\x4d\xa5\x63\x73\x00\x00\x00\x00\x4b\xed\x63\x74\x4a\xea\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc0\x00\x00\x00\x00\x63\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x54\x00\x00\x63\x7a\x00\x00\x00\x00\x63\x78\x00\x00\x52\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x79\x63\x77\x4a\xa7", /* 8880 */ "\x00\x00\x63\x76\x63\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x6a\x00\x00\x00\x00\x4a\x54\x00\x00\x63\x82\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7e\x00\x00\x00\x00\x00\x00\x4a\x57\x63\x7d\x00\x00\x63\x80\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7c\x00\x00\x00\x00\x00\x00\x63\x81\x00\x00\x63\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8d\x00\x00\x00\x00\x63\x7f\x00\x00\x54\xc5\x63\x86\x00\x00\x00\x00\x4f\x5a\x63\x85\x00\x00\x54\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x84\x00\x00\x49\xbd\x4f\x60\x63\x87\x63\x88\x48\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x63\x89\x46\xf8\x00\x00\x00\x00\x63\x8a\x63\x8b\x00\x00\x00\x00\x49\x6a\x63\x8c\x00\x00\x4f\x8a\x00\x00\x54\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x92\x4f\xa8\x53\x49\x63\x90\x00\x00\x00\x00\x4f\x43\x63\x8d\x00\x00\x00\x00\x63\x8f\x45\x7b\x4c\x8d\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x63\x8e\x00\x00\x63\x93\x00\x00\x00\x00\x4b\x51\x00\x00\x00\x00\x63\x97\x00\x00\x63\x94\x00\x00\x00\x00\x00\x00\x54\x5e\x00\x00\x51\xba\x63\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xda\x63\x96\x63\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x63\x95\x63\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9e\x00\x00\x63\xa0\x00\x00\x00\x00\x63\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9c\x00\x00\x63\x9f\x50\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa2\x63\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa4\x54\xaf\x63\xa3\x00\x00\x00\x00\x00\x00\x63\xa7\x00\x00\x63\xa5\x00\x00\x00\x00\x00\x00\x63\xa6\x00\x00\x00\x00\x63\xa8\x00\x00\x63\xa9\x00\x00\x00\x00\x4d\xdf\x00\x00\x63\xaa\x00\x00\x00\x00\x63\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xac\x45\x58", /* 8980 */ "\x00\x00\x46\x55\x00\x00\x63\xad\x00\x00\x00\x00\x4d\xf2\x4b\xfa\x63\xae\x00\x00\x63\xaf\x45\xbb\x00\x00\x00\x00\x00\x00\x46\xfb\x00\x00\x00\x00\x00\x00\x63\xb0\x00\x00\x00\x00\x4a\x50\x53\xeb\x63\xb1\x00\x00\x4a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb4\x4e\xd0\x00\x00\x63\xb3\x48\x85\x00\x00\x63\xb5\x00\x00\x00\x00\x63\xb6\x00\x00\x00\x00\x63\xb7\x48\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb8\x00\x00\x00\x00\x63\xba\x00\x00\x63\xb9\x63\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbc\x00\x00\x53\x60\x63\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb7\x00\x00\x00\x00\x4c\xd1\x63\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbf\x00\x00\x00\x00\x00\x00\x63\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a00 */ "\x47\x9a\x00\x00\x4f\xc4\x63\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc9\x00\x00\x50\xf2\x00\x00\x63\xc4\x00\x00\x49\xd2\x00\x00\x63\xc3\x00\x00\x63\xc5\x4b\xc8\x00\x00\x00\x00\x63\xc2\x4a\xb6\x47\x94\x00\x00\x00\x00\x63\xc6\x00\x00\x63\xc7\x00\x00\x50\xef\x00\x00\x00\x00\x00\x00\x54\xcc\x00\x00\x63\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x71\x00\x00\x00\x00\x45\xe2\x00\x00\x00\x00\x00\x00\x4a\x9a\x00\x00\x4b\xad\x4c\xdf\x00\x00\x63\xc9\x63\xcb\x00\x00\x00\x00\x4d\x68\x4f\x66\x49\xba\x00\x00\x00\x00\x00\x00\x00\x00\x63\xca\x00\x00\x00\x00\x00\x00\x00\x00\x63\xce\x00\x00\x63\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x76\x55\xe3\x63\xcd\x00\x00\x4f\x88\x49\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcc\x00\x00\x00\x00\x4e\x90\x00\x00\x51\xc1\x00\x00\x63\xd3\x54\xfb\x00\x00\x00\x00\x49\x48\x00\x00\x00\x00\x4c\xb0\x00\x00\x50\xd3\x63\xd2\x63\xd1\x51\x8e\x00\x00\x4b\x5f\x47\x50\x4d\x8d\x4d\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd4\x00\x00\x00\x00\x63\xd0\x00\x00\x00\x00\x00\x00", /* 8a80 */ "\x00\x00\x00\x00\x63\xd6\x00\x00\x63\xd7\x63\xd5\x00\x00\x4e\xb4\x00\x00\x4d\x8c\x00\x00\x00\x00\x4b\x76\x4a\x7e\x00\x00\x00\x00\x00\x00\x63\xda\x00\x00\x4f\xa0\x00\x00\x4f\xa2\x00\x00\x00\x00\x4a\xcb\x00\x00\x63\xdd\x00\x00\x00\x00\x00\x00\x48\xe7\x00\x00\x46\xfd\x63\xd9\x00\x00\x63\xde\x4d\x91\x63\xdb\x63\xdc\x63\xdf\x63\xd8\x00\x00\x00\x00\x00\x00\x49\x52\x4a\x4f\x00\x00\x00\x00\x4b\x83\x00\x00\x49\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf2\x00\x00\x00\x00\x52\x65\x00\x00\x63\xe1\x46\x89\x00\x00\x00\x00\x63\xe3\x00\x00\x50\xb2\x00\x00\x00\x00\x49\x63\x00\x00\x00\x00\x00\x00\x4a\xe8\x63\xe0\x63\xe2\x00\x00\x4b\xc1\x00\x00\x00\x00\x51\x81\x00\x00\x00\x00\x00\x00\x48\xf3\x00\x00\x00\x00\x00\x00\x63\xe4\x63\xf2\x55\x70\x00\x00\x63\xf1\x63\xed\x63\xea\x63\xec\x63\xeb\x00\x00\x63\xe7\x00\x00\x52\x46\x63\xe6\x00\x00\x00\x00\x00\x00\x4e\x96\x00\x00\x4e\x9c\x4f\x9c\x00\x00\x00\x00\x63\xe8\x00\x00\x63\xe5\x00\x00\x00\x00\x63\xef\x63\xf0\x47\xe2\x00\x00\x55\xab\x00\x00\x00\x00\x00\x00\x4f\xe1\x00\x00", /* 8b00 */ "\x4f\x4d\x54\xe5\x55\x73\x00\x00\x4f\xe2\x00\x00\x00\x00\x63\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf3\x00\x00\x52\xf9\x00\x00\x63\xf7\x00\x00\x00\x00\x00\x00\x63\xe9\x00\x00\x63\xf6\x63\xf8\x00\x00\x49\x7c\x63\xf5\x4a\x6e\x00\x00\x4d\xbb\x00\x00\x00\x00\x63\xf9\x4d\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x63\xfd\x00\x00\x53\x81\x00\x00\x00\x00\x63\xfe\x55\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x87\x00\x00\x00\x00\x00\x00\x00\x00\x64\x41\x00\x00\x00\x00\x63\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x46\x00\x00\x00\x00\x64\x42\x00\x00\x64\x44\x64\x43\x00\x00\x00\x00\x00\x00\x64\x45\x00\x00\x00\x00\x64\x47\x00\x00\x4a\x75\x00\x00\x64\x49\x64\x48\x4e\x4f\x00\x00\x00\x00\x64\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x64\x4b\x64\x4d\x00\x00\x00\x00\x64\x4e\x47\x81\x61\x76\x4b\x7b\x00\x00\x64\x4a\x00\x00\x00\x00\x49\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x4f\x00\x00\x64\x50", /* 8b80 */ "\x64\x51\x00\x00\x00\x00\x51\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x88\x00\x00\x64\x52\x00\x00\x64\x53\x00\x00\x53\xfe\x00\x00\x64\x55\x64\x56\x00\x00\x00\x00\x64\x57\x00\x00\x00\x00\x64\x54\x64\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x81\x00\x00\x00\x00\x64\x59\x00\x00\x00\x00\x00\x00\x00\x00\x64\x5b\x00\x00\x64\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x99\x00\x00\x64\x5c\x00\x00\x46\x48\x00\x00\x64\x5d\x00\x00\x64\x5e\x00\x00\x64\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x60\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x94\x64\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x68\x53\x55\x64\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x63\x55\x93\x64\x64\x00\x00\x64\x65\x00\x00\x00\x00\x00\x00", /* 8c80 */ "\x00\x00\x00\x00\x64\x66\x00\x00\x00\x00\x64\x68\x00\x00\x00\x00\x00\x00\x64\x67\x64\x69\x00\x00\x50\x64\x64\x6a\x64\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x6d\x00\x00\x00\x00\x00\x00\x64\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x49\xea\x46\xb6\x00\x00\x49\xc8\x49\xaf\x4a\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa3\x4a\xeb\x4a\x5d\x64\x70\x49\xa1\x4b\xd2\x64\x6f\x64\x71\x4c\x62\x4d\xef\x00\x00\x64\x73\x64\x74\x48\x7f\x00\x00\x64\x76\x49\x74\x4a\xf4\x00\x00\x00\x00\x46\xd0\x50\x7b\x64\x72\x00\x00\x48\x72\x46\x41\x64\x75\x55\xf8\x4b\x4d\x50\x67\x00\x00\x00\x00\x46\x50\x64\x77\x00\x00\x4f\xfd\x00\x00\x00\x00\x64\x79\x64\x78\x00\x00\x00\x00\x53\x9e\x00\x00\x50\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7b\x4d\xee\x4f\x94\x00\x00\x4a\xad\x00\x00\x4f\x4f\x00\x00\x47\xe5\x64\x7a\x55\x66\x00\x00\x4f\xa7\x00\x00\x00\x00\x00\x00\x46\xec\x00\x00\x00\x00\x52\xc1\x00\x00\x00\x00\x64\x7c\x00\x00\x00\x00\x00\x00\x64\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7f\x64\x80\x4e\x8f\x64\x7e\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x53\x5a\x55\x74\x00\x00\x64\x81\x4c\x7c\x00\x00\x64\x82\x55\x84\x00\x00\x64\x84\x00\x00\x64\x83\x64\x86\x00\x00\x64\x85\x64\x87\x64\x88\x00\x00\x64\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xf9\x00\x00\x51\x51\x64\x8a\x00\x00\x00\x00\x00\x00\x53\xcc\x00\x00\x64\x8b\x00\x00\x00\x00\x4a\xaa\x64\x8c\x00\x00\x51\xc9\x50\xee\x00\x00\x64\x8d\x48\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d80 */ "\x00\x00\x64\x8f\x00\x00\x00\x00\x00\x00\x4a\x78\x00\x00\x00\x00\x00\x00\x00\x00\x46\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xed\x00\x00\x00\x00\x00\x00\x00\x00\x55\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x92\x00\x00\x00\x00\x00\x00\x64\x91\x00\x00\x00\x00\x00\x00\x64\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x98\x64\x96\x00\x00\x00\x00\x64\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x95\x00\x00\x00\x00\x00\x00\x64\x94\x64\x97\x00\x00\x4d\xc2\x00\x00\x64\x9b\x00\x00\x4c\xcd\x00\x00\x64\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x55\xcb\x00\x00\x64\x99\x64\x9a\x00\x00\x00\x00\x00\x00\x47\x84\x00\x00\x00\x00\x00\x00\x50\xb4\x00\x00\x50\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x9d\x00\x00\x00\x00\x64\x9f", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x9e\x64\xa0\x4c\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7c\x64\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa2\x64\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa7\x00\x00\x00\x00\x00\x00\x64\xa8\x64\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa5\x00\x00\x55\xa7\x00\x00\x00\x00\x64\xaa\x64\xae\x64\xab\x64\xa9\x00\x00\x64\xac\x00\x00\x00\x00\x00\x00\x64\xad\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb2\x00\x00\x00\x00\x00\x00\x64\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x68\x64\xb1\x00\x00\x00\x00\x64\xb3\x64\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb5\x00\x00\x52\xf6\x00\x00\x64\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb7\x00\x00\x00\x00\x00\x00", /* 8e80 */ "\x00\x00\x64\xb8\x00\x00\x00\x00\x64\xba\x64\xb9\x00\x00\x64\xb6\x00\x00\x00\x00\x64\xbc\x64\xbb\x00\x00\x4c\xa1\x00\x00\x00\x00\x00\x00\x64\xbe\x00\x00\x64\xbd\x64\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc2\x47\x9c\x50\x44\x00\x00\x00\x00\x53\x53\x53\x7a\x64\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc4\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc6\x64\xc5\x00\x00\x64\xc7\x00\x00\x46\x53\x64\xc8\x4d\xaa\x48\x97\x00\x00\x64\xc9\x00\x00\x00\x00\x4e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xca\x00\x00\x00\x00\x00\x00\x4c\xb1\x00\x00\x00\x00\x47\x52\x64\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa6\x00\x00\x00\x00\x64\xcd\x64\xcc\x48\xa6\x64\xcf\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x4a\x5a\x00\x00\x64\xd2\x00\x00\x00\x00\x00\x00\x4d\x6e\x64\xd0\x00\x00\x64\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xd4\x64\xd5\x4a\x68\x64\xd3\x00\x00\x00\x00\x00\x00\x64\xd7\x00\x00\x51\x5b\x64\xd6\x47\x87\x00\x00\x64\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xd9\x00\x00\x00\x00\x4e\xf4\x48\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa6\x00\x00\x00\x00\x00\x00\x64\xda\x00\x00\x00\x00\x00\x00\x00\x00\x46\x93\x64\xdc\x00\x00\x64\xdb\x00\x00\x00\x00\x64\xdf\x50\x6c\x00\x00\x00\x00\x64\xde\x00\x00\x50\xfe\x64\xdd\x64\xe1\x00\x00\x00\x00\x64\xe0\x00\x00\x00\x00\x64\xe2\x54\xee\x64\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe5\x00\x00\x00\x00\x50\xa9\x00\x00\x52\xe1\x64\xe6\x64\xe7\x64\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5e\x64\xe9\x00\x00\x4d\x74\x64\xea\x00\x00\x00\x00\x00\x00\x64\xeb\x00\x00\x00\x00\x00\x00\x64\xed\x64\xec\x00\x00\x00\x00\x00\x00\x00\x00\x64\xee\x61\x49\x64\xef\x47\xdf\x52\xe5\x48\x45\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf0\x00\x00\x00\x00\x45\xd5\x47\xf5\x48\x41\x00\x00\x00\x00\x54\x7e\x00\x00\x00\x00\x55\xdf\x00\x00\x49\xcd\x50\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa9\x00\x00\x00\x00\x46\x73\x00\x00\x00\x00\x48\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf4\x00\x00\x00\x00\x64\xf3\x53\x5d\x00\x00\x00\x00\x64\xf6\x4e\x9e\x49\xef\x00\x00\x53\xdf\x00\x00\x64\xf5\x4a\x9c\x00\x00\x00\x00\x00\x00\x64\xf7\x00\x00\x00\x00\x4e\x58\x64\xfa\x64\xf9\x54\xa9\x00\x00\x00\x00\x49\xd1\x00\x00\x00\x00", /* 9000 */ "\x4b\x49\x47\x44\x00\x00\x4c\x72\x00\x00\x64\xf8\x4b\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x65\x44\x00\x00\x65\x41\x64\xfd\x4b\xda\x50\xbb\x64\xfb\x00\x00\x51\x5e\x48\xf0\x64\xfc\x65\x43\x4f\xb3\x00\x00\x4f\xca\x45\xe3\x00\x00\x00\x00\x53\xb1\x65\x42\x48\xcd\x45\xb8\x64\xfe\x4d\xce\x47\x54\x00\x00\x00\x00\x00\x00\x65\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x77\x00\x00\x00\x00\x4a\xd3\x46\x69\x00\x00\x00\x00\x54\x85\x65\x46\x00\x00\x4a\xd6\x65\x47\x00\x00\x00\x00\x55\xac\x00\x00\x65\x4e\x00\x00\x00\x00\x54\xf8\x4c\xf7\x00\x00\x00\x00\x4c\x6d\x00\x00\x49\xec\x00\x00\x65\x4d\x4a\x8b\x46\xab\x00\x00\x50\x5d\x48\x8d\x65\x48\x65\x4a\x65\x4b\x65\x4c\x45\x50\x46\xa4\x49\xbc\x65\x4f\x00\x00\x65\x50\x52\xf3\x00\x00\x00\x00\x54\x55\x00\x00\x65\x51\x00\x00\x46\xe3\x54\x4c\x00\x00\x4e\xc2\x00\x00\x68\x82\x00\x00\x65\x53\x65\x52\x49\xcc\x00\x00\x00\x00\x00\x00\x51\x43\x54\x58\x65\x54\x00\x00\x00\x00\x65\x57\x00\x00\x00\x00\x52\x6e\x65\x55\x53\x5b\x48\x5d\x00\x00\x4c\xda\x00\x00\x52\x6b\x65\x59\x00\x00\x4c\xc4", /* 9080 */ "\x65\x5b\x53\x7b\x65\x58\x60\x45\x4d\xa9\x00\x00\x00\x00\x51\x86\x00\x00\x65\x5a\x50\xea\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5c\x00\x00\x4c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x46\x00\x00\x00\x00\x46\xc5\x00\x00\x51\xa8\x00\x00\x4e\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5e\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x65\x60\x00\x00\x00\x00\x4d\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x52\x00\x00\x00\x00\x00\x00\x45\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x63\x00\x00\x00\x00\x65\x64\x00\x00\x00\x00\x49\x9e\x65\x61\x00\x00\x65\x62\x00\x00\x00\x00\x00\x00\x45\x95\x00\x00\x00\x00\x00\x00\x00\x00\x51\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb7\x00\x00\x49\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x4f\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x65\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x68\x00\x00\x00\x00\x65\x67\x00\x00\x00\x00\x00\x00\x65\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x54\x00\x00\x00\x00\x65\x6c\x00\x00\x65\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x73\x65\x6d\x55\x48\x52\xbb\x47\xf3\x55\x91\x00\x00\x00\x00\x00\x00\x47\x58\x00\x00\x4e\x7c\x00\x00\x65\x6e\x00\x00\x65\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xae\x65\x70\x00\x00\x65\x71\x00\x00\x00\x00\x00\x00\x65\x72\x50\xbd\x00\x00\x51\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x74\x65\x73\x00\x00\x4d\x86\x00\x00\x51\xeb\x48\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9180 */ "\x00\x00\x00\x00\x65\x77\x00\x00\x00\x00\x00\x00\x00\x00\x51\xa9\x00\x00\x65\x76\x00\x00\x65\x75\x00\x00\x51\x6f\x00\x00\x00\x00\x51\x70\x00\x00\x53\x78\x00\x00\x00\x00\x00\x00\x00\x00\x51\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x78\x00\x00\x50\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7b\x65\x79\x50\x7f\x00\x00\x00\x00\x65\x7a\x00\x00\x51\xfa\x00\x00\x00\x00\x65\x7d\x65\x7c\x00\x00\x00\x00\x50\xc2\x00\x00\x65\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7f\x65\x80\x00\x00\x00\x00\x00\x00\x00\x00\x53\x46\x53\xbf\x4d\x79\x52\x52\x00\x00\x65\x81\x47\x6c\x45\xa3\x45\x69\x47\xb5\x65\x82\x45\x86\x00\x00\x00\x00\x00\x00\x00\x00\x65\x87\x65\x85\x4f\xf4\x00\x00\x65\x83\x65\x84\x4a\xcc\x49\x88\x65\x86\x65\x88\x00\x00\x65\x89\x00\x00\x4c\xe3\x65\x8d\x65\x8f\x53\x4a\x4b\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8a\x65\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8b\x65\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd0\x00\x00\x00\x00\x65\x92", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x90\x00\x00\x00\x00\x00\x00\x65\x95\x00\x00\x00\x00\x4e\x63\x53\x8f\x00\x00\x65\x93\x52\x69\x00\x00\x00\x00\x65\x94\x65\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x98\x00\x00\x00\x00\x65\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xae\x00\x00\x00\x00\x55\xbf\x00\x00\x65\xa6\x65\x9b\x00\x00\x65\x9f\x00\x00\x00\x00\x65\xa4\x65\x9e\x00\x00\x00\x00\x00\x00\x45\xd7\x65\x9a\x00\x00\x00\x00\x65\xa0\x65\x9c\x00\x00\x65\xa7\x00\x00\x00\x00\x65\xa1\x00\x00\x65\xa2\x65\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x99\x00\x00\x65\xa3\x65\xa9\x49\xd4\x00\x00\x00\x00\x53\x93\x00\x00\x00\x00\x00\x00\x4e\xa8\x00\x00\x65\x9d\x00\x00\x4f\xb4\x65\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xac\x65\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x83\x00\x00", /* 9280 */ "\x47\x8c\x00\x00\x00\x00\x4c\xe2\x00\x00\x48\xc0\x00\x00\x00\x00\x52\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xad\x00\x00\x65\xaf\x00\x00\x65\xb1\x65\xae\x00\x00\x4d\xdc\x00\x00\x4e\x80\x65\xb0\x65\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbb\x00\x00\x65\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb3\x65\xb7\x00\x00\x54\x49\x65\xbd\x00\x00\x65\xb9\x00\x00\x65\xb5\x00\x00\x65\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbc\x00\x00\x00\x00\x00\x00\x52\xc0\x00\x00\x00\x00\x65\xb4\x00\x00\x65\xb2\x53\x63\x00\x00\x00\x00\x4d\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbe\x48\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe7\x53\x94\x65\xc2\x65\xc5\x46\xa1\x00\x00\x00\x00\x65\xc9", /* 9300 */ "\x00\x00\x00\x00\x65\xce\x00\x00\x00\x00\x00\x00\x55\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc0\x53\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xef\x65\xc7\x65\xcb\x00\x00\x00\x00\x65\xcc\x65\xc8\x00\x00\x4e\x57\x65\xc3\x65\xca\x65\xcd\x00\x00\x65\xc1\x4b\x8e\x00\x00\x53\xf0\x00\x00\x00\x00\x52\x57\x4f\xe6\x00\x00\x52\x83\x50\xb1\x00\x00\x00\x00\x48\x86\x00\x00\x00\x00\x65\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbe\x65\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc4\x00\x00\x00\x00\x00\x00\x51\xf7\x00\x00\x00\x00\x4b\x48\x00\x00\x55\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xaa\x00\x00\x65\xd4\x65\xd5\x00\x00\x00\x00\x00\x00\x48\xc7\x52\xad\x00\x00\x00\x00\x00\x00\x65\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x70\x00\x00\x65\xd3\x00\x00\x65\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd2\x00\x00\x53\xbd\x00\x00", /* 9380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xda\x00\x00\x4d\x70\x51\x97\x00\x00\x00\x00\x54\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd8\x00\x00\x00\x00\x54\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6e\x65\xd9\x4c\x89\x00\x00\x65\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe2\x00\x00\x00\x00\x65\xdd\x00\x00\x65\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe5\x50\x41\x00\x00\x00\x00\x00\x00\x00\x00\x65\xdc\x65\xde\x65\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe3\x65\xe4\x00\x00\x00\x00\x4a\x8d\x00\x00\x00\x00\x65\xe6\x65\xe0\x00\x00\x00\x00\x65\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x65\xec\x00\x00\x00\x00\x00\x00\x65\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xcd\x00\x00\x00\x00\x65\xea\x65\xe9\x00\x00\x00\x00\x00\x00\x4c\xc8\x52\xcf\x65\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf0\x00\x00\x00\x00\x00\x00\x51\x56\x65\xee\x00\x00\x53\x88\x00\x00\x65\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf2\x00\x00\x00\x00\x65\xf5\x65\xf4\x00\x00\x00\x00\x65\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4e\x65\xf3\x52\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf8\x65\xf7\x00\x00\x00\x00\x65\xfb\x00\x00\x65\xf9\x00\x00\x65\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfd\x00\x00\x66\x41\x00\x00\x00\x00\x00\x00\x00\x00\x66\x44\x66\x43\x66\x45\x66\x42", /* 9480 */ "\x00\x00\x66\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9580 */ "\x46\xaa\x00\x00\x66\x47\x51\x9c\x00\x00\x00\x00\x00\x00\x66\x48\x00\x00\x4b\x7d\x66\x49\x46\xcd\x00\x00\x00\x00\x00\x00\x54\x5f\x00\x00\x4d\xd9\x66\x4a\x45\xc1\x66\x4b\x00\x00\x66\x4c\x00\x00\x66\x4d\x66\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4f\x00\x00\x45\xc5\x4a\xe9\x54\x9b\x51\x72\x00\x00\x66\x51\x66\x50\x00\x00\x00\x00\x00\x00\x00\x00\x66\x52\x00\x00\x00\x00\x00\x00\x00\x00\x51\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x55\x00\x00\x66\x54\x66\x53\x00\x00\x66\x56\x00\x00\x00\x00\x00\x00\x00\x00\x66\x59\x00\x00\x00\x00\x00\x00\x53\x64\x00\x00\x00\x00\x66\x57\x00\x00\x66\x5b\x66\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x5d\x66\x5c\x66\x5e\x00\x00\x4b\xcc\x00\x00\x00\x00\x00\x00\x66\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x66\x60\x66\x62\x00\x00\x00\x00\x66\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x86\x00\x00\x00\x00\x00\x00\x00\x00\x66\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x64\x00\x00\x45\x91\x00\x00\x00\x00\x00\x00\x66\x65\x66\x66\x00\x00\x00\x00\x47\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xef\x00\x00\x00\x00\x00\x00\x46\xae\x4f\xe8\x00\x00\x66\x67\x00\x00\x4b\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x6a\x66\x69\x49\xe5\x00\x00\x66\x68\x48\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x57\x66\x6b\x66\x6c\x52\x72\x66\x6d\x00\x00\x00\x00\x49\xd8\x4c\x84\x49\x6d\x4f\xfe\x66\x6e\x00\x00\x00\x00\x00\x00\x55\xc3\x00\x00\x66\x71\x00\x00\x00\x00\x00\x00\x4c\xd2\x00\x00\x66\x70\x4e\x61\x00\x00\x50\xc7\x4a\xb7\x66\x6f\x49\x61\x00\x00\x4a\x6c\x00\x00\x00\x00\x47\xbf\x00\x00\x00\x00", /* 9680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb9\x46\x5d\x00\x00\x4c\xe5\x00\x00\x4a\x93\x66\x73\x00\x00\x66\x72\x49\xa9\x4e\x76\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5a\x66\x76\x00\x00\x66\x77\x66\x75\x53\xc3\x00\x00\x47\x97\x4b\xf9\x66\x79\x00\x00\x00\x00\x4e\xae\x00\x00\x00\x00\x4c\xe0\x00\x00\x00\x00\x00\x00\x66\x7a\x65\x56\x00\x00\x66\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x66\x7f\x66\x7e\x66\x7c\x66\x7d\x00\x00\x66\x80\x00\x00\x66\x81\x55\x45\x66\x82\x66\x83\x00\x00\x4f\xda\x4e\xd5\x00\x00\x00\x00\x00\x00\x4f\x64\x51\xa4\x00\x00\x00\x00\x45\x70\x47\x45\x47\xa0\x4c\x4d\x00\x00\x54\x77\x00\x00\x66\x85\x52\xb7\x52\x5b\x66\x84\x00\x00\x00\x00\x4a\x8a\x00\x00\x00\x00\x00\x00\x66\x86\x63\x54\x00\x00\x00\x00\x66\x88\x00\x00\x51\xfb\x66\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x97\x49\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x49\xdd\x00\x00\x49\xbb\x52\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x90\x00\x00\x4a\xbc\x00\x00\x00\x00\x00\x00\x50\x69\x4b\xd6\x00\x00\x66\x89\x00\x00\x45\x82\x00\x00\x00\x00\x00\x00\x00\x00", /* 9700 */ "\x47\xfb\x00\x00\x00\x00\x00\x00\x66\x8a\x00\x00\x66\x8b\x4d\xde\x66\x8c\x00\x00\x4f\x4b\x00\x00\x00\x00\x66\x8e\x66\x90\x66\x92\x00\x00\x66\x91\x00\x00\x66\x8f\x00\x00\x00\x00\x66\x93\x00\x00\x00\x00\x66\x8d\x00\x00\x00\x00\x4d\xe8\x00\x00\x4e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x94\x00\x00\x00\x00\x4e\x48\x00\x00\x00\x00\x66\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x96\x00\x00\x4b\xc6\x66\x97\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcf\x66\x98\x00\x00\x66\x99\x00\x00\x66\x9a\x66\x9b\x00\x00\x00\x00\x00\x00\x66\xa0\x66\x9e\x66\x9d\x00\x00\x66\x9c\x00\x00\x66\x9f\x66\xa1\x00\x00\x00\x00\x00\x00\x66\xa2\x00\x00\x66\xa3\x00\x00\x66\xa4\x46\x4c\x00\x00\x00\x00\x66\xa5\x48\xc3\x00\x00\x00\x00\x46\x44\x00\x00\x00\x00\x66\xa6\x00\x00\x48\xe1\x00\x00\x66\xa7\x68\x52\x46\x91\x00\x00\x66\xa8\x00\x00\x66\xa9\x00\x00\x66\xaa\x4a\xa3\x00\x00\x53\xb5\x00\x00\x66\xab\x00\x00\x00\x00\x00\x00\x52\xce\x00\x00\x00\x00\x4d\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x66\xac\x66\xb0\x00\x00\x66\xae\x00\x00\x00\x00\x00\x00", /* 9780 */ "\x00\x00\x66\xaf\x00\x00\x00\x00\x54\x45\x66\xad\x52\x77\x00\x00\x00\x00\x00\x00\x00\x00\x66\xb1\x00\x00\x50\x4c\x00\x00\x66\xb2\x66\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe7\x00\x00\x00\x00\x00\x00\x66\xb4\x00\x00\x00\x00\x00\x00\x51\xed\x00\x00\x00\x00\x66\xb7\x00\x00\x00\x00\x66\xb6\x00\x00\x66\xb5\x00\x00\x00\x00\x63\xfc\x00\x00\x54\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xb8\x66\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xba\x00\x00\x00\x00\x66\xbb\x00\x00\x66\xbc\x00\x00\x00\x00\x66\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xbf\x4f\xdf\x00\x00\x00\x00\x00\x00\x66\xc0\x48\x4d\x00\x00\x66\xc2\x52\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x55\x77\x00\x00\x00\x00\x00\x00\x4a\x5c", /* 9800 */ "\x00\x00\x4c\xd9\x4d\x5b\x49\x46\x00\x00\x4a\x97\x47\xb2\x00\x00\x46\xb0\x00\x00\x00\x00\x00\x00\x54\x56\x00\x00\x00\x00\x66\xc3\x4d\x4a\x53\x9d\x55\x57\x51\x7a\x00\x00\x00\x00\x00\x00\x55\xe4\x4a\xcd\x00\x00\x66\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc6\x00\x00\x00\x00\x66\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb3\x47\xeb\x00\x00\x00\x00\x4e\xb3\x00\x00\x00\x00\x00\x00\x55\x76\x00\x00\x00\x00\x66\xc7\x50\xfb\x66\xc8\x00\x00\x53\xab\x4a\x7a\x66\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x66\xca\x47\xfe\x47\xf1\x54\x8e\x66\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x48\xb8\x4a\xe5\x00\x00\x66\xcb\x4c\x57\x00\x00\x55\xc1\x55\xc1\x00\x00\x00\x00\x46\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xcc\x00\x00\x4e\xee\x00\x00\x00\x00\x00\x00\x66\xcd\x00\x00\x00\x00\x00\x00\x66\xce\x66\xcf\x66\xd0\x00\x00\x66\xd2\x66\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xe7\x00\x00\x66\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd4\x00\x00\x66\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd8\x66\xd7\x00\x00\x66\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8a\x66\xda\x00\x00\x00\x00\x46\xb8\x00\x00\x00\x00\x53\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdc\x00\x00\x66\xde\x00\x00\x66\xdb\x5c\xca\x46\xb5\x00\x00\x00\x00\x4b\xa3\x00\x00\x52\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x8f\x4d\x49\x49\x57\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x66\xe0\x00\x00\x50\xbf\x00\x00\x00\x00\x00\x00\x54\xbc\x49\x79\x00\x00\x50\xa7\x00\x00\x00\x00\x00\x00\x55\xb3\x00\x00\x66\xe2\x55\x4b\x66\xe3\x00\x00\x00\x00\x00\x00\x66\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe1\x66\xe8\x00\x00\x66\xea\x66\xe7\x00\x00\x00\x00\x66\xe9\x00\x00\x00\x00\x66\xe5\x48\x62\x00\x00\x00\x00\x00\x00\x66\xeb\x00\x00\x66\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xed\x66\xee\x00\x00\x00\x00\x00\x00\x66\xef\x00\x00\x00\x00\x66\xf1\x00\x00\x00\x00\x00\x00\x66\xf0\x00\x00\x66\xf3\x66\xf5\x00\x00\x00\x00\x00\x00\x66\xf2\x66\xf4\x52\xe8\x00\x00\x00\x00\x66\xf6\x00\x00\x51\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xbe\x66\xf7\x66\xf8\x46\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfa\x00\x00\x00\x00\x4b\x85\x00\x00\x00\x00\x00\x00\x46\x64\x66\xfb\x66\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x52\xdf\x50\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe5\x00\x00\x00\x00\x4d\xe5\x49\xac\x4c\xfe\x00\x00\x4f\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf5\x67\x44\x49\xfc\x00\x00\x00\x00\x53\xbe\x00\x00\x00\x00\x67\x43\x00\x00\x00\x00\x67\x41\x00\x00\x67\x42\x00\x00\x66\xfe\x00\x00\x00\x00\x67\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x45\x67\x46\x00\x00\x00\x00\x67\x48\x67\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4b\x00\x00\x00\x00\x67\x4a\x00\x00\x00\x00\x00\x00\x4c\xc0", /* 9a00 */ "\x00\x00\x67\x4c\x00\x00\x00\x00\x00\x00\x67\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x58\x67\x4d\x00\x00\x00\x00\x4d\xd2\x48\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xda\x00\x00\x00\x00\x67\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x56\x00\x00\x67\x52\x00\x00\x67\x54\x67\x55\x00\x00\x67\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x58\x67\x59\x00\x00\x00\x00\x00\x00\x53\xda\x00\x00\x00\x00\x67\x57\x00\x00\x67\x5b\x00\x00\x00\x00\x4c\xd5\x67\x5a\x00\x00\x00\x00\x00\x00\x67\x5c\x00\x00\x00\x00\x67\x5d\x00\x00\x67\x60\x67\x5f\x00\x00\x00\x00\x00\x00\x67\x5e\x67\x61\x67\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x67\x63\x00\x00\x00\x00\x67\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9c\x00\x00\x00\x00\x00\x00\x67\x65\x00\x00\x00\x00\x00\x00\x67\x66\x00\x00\x00\x00\x00\x00\x52\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x67\x00\x00\x67\x6a\x00\x00\x67\x68\x67\x69\x00\x00\x00\x00\x00\x00\x45\x71\x67\x6b\x00\x00\x00\x00\x67\x6c\x00\x00\x67\x6d\x67\x6e\x00\x00\x00\x00\x67\x6f\x67\x70\x00\x00\x00\x00\x67\x71\x00\x00\x00\x00\x00\x00\x4c\xf6\x67\x73\x00\x00\x50\x9d\x67\x74\x67\x72\x00\x00\x67\x76\x00\x00\x00\x00\x67\x75\x00\x00\x00\x00\x67\x77\x00\x00\x00\x00\x00\x00\x67\x78\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7a\x00\x00\x67\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7c\x00\x00\x00\x00\x67\x7d\x67\x7e\x00\x00\x67\x7f\x00\x00\x67\x80\x67\x81\x67\x82\x67\x83\x00\x00\x00\x00\x00\x00\x67\x84\x67\x85\x00\x00\x67\x86\x67\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x88\x4a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x52\xcb\x50\xa8\x67\x8a\x67\x89\x4d\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x8b\x67\x8c\x53\x89\x00\x00\x67\x8d\x00\x00\x00\x00\x4d\xe2\x00\x00\x00\x00\x00\x00\x67\x8e\x00\x00\x48\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf4\x00\x00\x00\x00\x67\x91\x00\x00\x67\x90\x67\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b80 */ "\x00\x00\x00\x00\x00\x00\x67\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8e\x67\x93\x00\x00\x67\x95\x52\x8d\x67\x92\x00\x00\x00\x00\x67\x96\x67\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x98\x67\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9a\x00\x00\x55\xce\x4e\xb7\x00\x00\x53\x91\x4c\xe9\x00\x00\x00\x00\x67\x9b\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa0\x00\x00\x67\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa1\x00\x00\x00\x00\x4f\xc6\x67\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa2\x00\x00\x67\xa3\x67\xa4\x00\x00\x67\xa8\x00\x00\x4f\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x50\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa9\x67\xa6\x67\xa5\x67\xa7\x00\x00\x00\x00\x00\x00\x4d\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x51\x67\xab\x67\xac\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c00 */ "\x67\xb1\x00\x00\x00\x00\x00\x00\x67\xad\x00\x00\x67\xb5\x00\x00\x67\xb6\x67\xb2\x67\xb8\x00\x00\x67\xb4\x55\x71\x00\x00\x00\x00\x52\x93\x00\x00\x67\xb7\x67\xb3\x67\xb0\x67\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbc\x00\x00\x00\x00\x67\xbb\x67\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6e\x67\xb9\x55\xc8\x67\xbd\x00\x00\x67\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd5\x51\xf0\x54\xab\x00\x00\x00\x00\x67\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc0\x67\xbe\x55\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4c\x00\x00\x00\x00\x67\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc5\x00\x00\x67\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x79\x00\x00\x67\xc8\x00\x00\x4d\x95\x00\x00\x67\xc7\x67\xc9\x00\x00\x00\x00\x00\x00\x67\xca\x00\x00\x00\x00\x4e\xa6\x4b\x70\x00\x00\x54\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d00 */ "\x00\x00\x00\x00\x00\x00\x67\xcc\x00\x00\x00\x00\x67\xcd\x51\xa1\x54\xfc\x67\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x54\x64\x00\x00\x00\x00\x00\x00\x67\xd4\x00\x00\x00\x00\x67\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc3\x00\x00\x00\x00\x00\x00\x67\xd2\x00\x00\x00\x00\x00\x00\x67\xd1\x00\x00\x00\x00\x67\xcf\x00\x00\x4c\x54\x00\x00\x67\xce\x50\xba\x67\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd6\x00\x00\x00\x00\x67\xd8\x67\xd6\x00\x00\x67\xd5\x00\x00\x00\x00\x67\xd7\x00\x00\x67\xd9\x00\x00\x67\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xdf\x67\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xdd\x00\x00\x00\x00\x4b\xe7\x67\xdb\x67\xdc\x00\x00\x50\xfd\x55\x7e\x00\x00\x00\x00\x67\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe4\x51\x8a\x00\x00\x00\x00\x67\xe5\x67\xe2\x00\x00\x67\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe3\x00\x00\x53\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe9\x00\x00\x67\xea\x00\x00\x00\x00\x00\x00\x50\xe5\x00\x00\x00\x00\x67\xeb\x00\x00\x47\x7a\x00\x00\x00\x00\x00\x00\x67\xef\x00\x00\x67\xf0\x67\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xed\x67\xf3\x00\x00\x67\xec\x00\x00\x67\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf2\x00\x00\x00\x00\x00\x00\x67\xf6\x00\x00\x00\x00\x00\x00\x54\x64\x00\x00\x67\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf9\x00\x00\x67\xfa\x00\x00\x00\x00\x4b\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf7\x4b\x7a\x50\xaf\x00\x00\x00\x00\x67\xfb\x00\x00\x00\x00", /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xfe\x67\xfc\x67\xfd\x00\x00\x00\x00\x68\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x42\x00\x00\x00\x00\x4c\x7d\x68\x43\x00\x00\x00\x00\x4c\x7d\x68\x44\x00\x00\x46\x97", /* 9e80 */ "\x00\x00\x68\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x46\x00\x00\x00\x00\x68\x47\x68\x48\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4a\x51\xf9\x51\x9e\x00\x00\x68\x49\x00\x00\x4c\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4b\x00\x00\x51\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4c\x4a\xe0\x00\x00\x00\x00\x53\xb4\x68\x4e\x00\x00\x00\x00\x68\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x61\x55\x5f\x00\x00\x00\x00\x68\x4d\x52\x61\x55\x5f\x48\xa7\x68\x50\x00\x00\x68\x51\x4e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x53\x55\xae\x51\xa7\x68\x54\x68\x55\x68\x56\x46\x79\x00\x00\x68\x57\x00\x00\x00\x00\x00\x00\x5e\x90\x4d\xbc\x00\x00\x51\xdd\x68\x58\x68\x5a\x68\x59\x00\x00\x68\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5c\x00\x00\x00\x00\x68\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5f\x00\x00\x68\x60\x68\x61\x00\x00\x68\x62\x00\x00\x68\x63\x68\x64\x68\x65\x00\x00\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x66\x68\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xaf\x00\x00\x68\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xcb\x68\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xfd\x00\x00\x00\x00\x68\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x6d\x51\xf5\x00\x00\x00\x00\x68\x6e\x68\x6f\x00\x00\x00\x00\x68\x70\x00\x00\x68\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x73\x68\x74\x68\x75\x4c\x80\x68\x72\x00\x00\x00\x00\x68\x76\x68\x77\x00\x00\x00\x00\x68\x79\x00\x00\x68\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7b\x00\x00\x00\x00\x00\x00\x68\x7c\x68\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7e\x5f\xf7\x00\x00\x00\x00\x68\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x69\x41\x69\x42\x69\x43\x69\x44\x69\x45\x69\x46\x69\x47\x69\x48\x69\x49\x69\x4a\x69\x4b\x69\x4c\x69\x4d\x69\x4e\x69\x4f\x69\x50\x69\x51\x69\x52\x69\x53\x69\x54\x69\x55\x69\x56\x69\x57\x69\x58\x69\x59\x69\x5a\x69\x5b\x69\x5c\x69\x5d\x69\x5e\x69\x5f\x69\x60\x69\x61\x69\x62\x69\x63\x69\x64\x69\x65\x69\x66\x69\x67\x69\x68\x69\x69\x69\x6a\x69\x6b\x69\x6c\x69\x6d\x69\x6e\x69\x6f\x69\x70\x69\x71\x69\x72\x69\x73\x69\x74\x69\x75\x69\x76\x69\x77\x69\x78\x69\x79\x69\x7a\x69\x7b\x69\x7c\x69\x7d\x69\x7e\x69\x7f\x69\x80\x69\x81\x69\x82\x69\x83\x69\x84\x69\x85\x69\x86\x69\x87\x69\x88\x69\x89\x69\x8a\x69\x8b\x69\x8c\x69\x8d\x69\x8e\x69\x8f\x69\x90\x69\x91\x69\x92\x69\x93\x69\x94\x69\x95\x69\x96\x69\x97\x69\x98\x69\x99\x69\x9a\x69\x9b\x69\x9c\x69\x9d\x69\x9e\x69\x9f\x69\xa0\x69\xa1\x69\xa2\x69\xa3\x69\xa4\x69\xa5\x69\xa6\x69\xa7\x69\xa8\x69\xa9\x69\xaa\x69\xab\x69\xac\x69\xad\x69\xae\x69\xaf\x69\xb0\x69\xb1\x69\xb2\x69\xb3\x69\xb4\x69\xb5\x69\xb6\x69\xb7\x69\xb8\x69\xb9\x69\xba\x69\xbb\x69\xbc\x69\xbd\x69\xbe\x69\xbf\x69\xc0", /* e080 */ "\x69\xc1\x69\xc2\x69\xc3\x69\xc4\x69\xc5\x69\xc6\x69\xc7\x69\xc8\x69\xc9\x69\xca\x69\xcb\x69\xcc\x69\xcd\x69\xce\x69\xcf\x69\xd0\x69\xd1\x69\xd2\x69\xd3\x69\xd4\x69\xd5\x69\xd6\x69\xd7\x69\xd8\x69\xd9\x69\xda\x69\xdb\x69\xdc\x69\xdd\x69\xde\x69\xdf\x69\xe0\x69\xe1\x69\xe2\x69\xe3\x69\xe4\x69\xe5\x69\xe6\x69\xe7\x69\xe8\x69\xe9\x69\xea\x69\xeb\x69\xec\x69\xed\x69\xee\x69\xef\x69\xf0\x69\xf1\x69\xf2\x69\xf3\x69\xf4\x69\xf5\x69\xf6\x69\xf7\x69\xf8\x69\xf9\x69\xfa\x69\xfb\x69\xfc\x69\xfd\x69\xfe\x6a\x41\x6a\x42\x6a\x43\x6a\x44\x6a\x45\x6a\x46\x6a\x47\x6a\x48\x6a\x49\x6a\x4a\x6a\x4b\x6a\x4c\x6a\x4d\x6a\x4e\x6a\x4f\x6a\x50\x6a\x51\x6a\x52\x6a\x53\x6a\x54\x6a\x55\x6a\x56\x6a\x57\x6a\x58\x6a\x59\x6a\x5a\x6a\x5b\x6a\x5c\x6a\x5d\x6a\x5e\x6a\x5f\x6a\x60\x6a\x61\x6a\x62\x6a\x63\x6a\x64\x6a\x65\x6a\x66\x6a\x67\x6a\x68\x6a\x69\x6a\x6a\x6a\x6b\x6a\x6c\x6a\x6d\x6a\x6e\x6a\x6f\x6a\x70\x6a\x71\x6a\x72\x6a\x73\x6a\x74\x6a\x75\x6a\x76\x6a\x77\x6a\x78\x6a\x79\x6a\x7a\x6a\x7b\x6a\x7c\x6a\x7d\x6a\x7e\x6a\x7f\x6a\x80\x6a\x81\x6a\x82", /* e100 */ "\x6a\x83\x6a\x84\x6a\x85\x6a\x86\x6a\x87\x6a\x88\x6a\x89\x6a\x8a\x6a\x8b\x6a\x8c\x6a\x8d\x6a\x8e\x6a\x8f\x6a\x90\x6a\x91\x6a\x92\x6a\x93\x6a\x94\x6a\x95\x6a\x96\x6a\x97\x6a\x98\x6a\x99\x6a\x9a\x6a\x9b\x6a\x9c\x6a\x9d\x6a\x9e\x6a\x9f\x6a\xa0\x6a\xa1\x6a\xa2\x6a\xa3\x6a\xa4\x6a\xa5\x6a\xa6\x6a\xa7\x6a\xa8\x6a\xa9\x6a\xaa\x6a\xab\x6a\xac\x6a\xad\x6a\xae\x6a\xaf\x6a\xb0\x6a\xb1\x6a\xb2\x6a\xb3\x6a\xb4\x6a\xb5\x6a\xb6\x6a\xb7\x6a\xb8\x6a\xb9\x6a\xba\x6a\xbb\x6a\xbc\x6a\xbd\x6a\xbe\x6a\xbf\x6a\xc0\x6a\xc1\x6a\xc2\x6a\xc3\x6a\xc4\x6a\xc5\x6a\xc6\x6a\xc7\x6a\xc8\x6a\xc9\x6a\xca\x6a\xcb\x6a\xcc\x6a\xcd\x6a\xce\x6a\xcf\x6a\xd0\x6a\xd1\x6a\xd2\x6a\xd3\x6a\xd4\x6a\xd5\x6a\xd6\x6a\xd7\x6a\xd8\x6a\xd9\x6a\xda\x6a\xdb\x6a\xdc\x6a\xdd\x6a\xde\x6a\xdf\x6a\xe0\x6a\xe1\x6a\xe2\x6a\xe3\x6a\xe4\x6a\xe5\x6a\xe6\x6a\xe7\x6a\xe8\x6a\xe9\x6a\xea\x6a\xeb\x6a\xec\x6a\xed\x6a\xee\x6a\xef\x6a\xf0\x6a\xf1\x6a\xf2\x6a\xf3\x6a\xf4\x6a\xf5\x6a\xf6\x6a\xf7\x6a\xf8\x6a\xf9\x6a\xfa\x6a\xfb\x6a\xfc\x6a\xfd\x6a\xfe\x6b\x41\x6b\x42\x6b\x43\x6b\x44", /* e180 */ "\x6b\x45\x6b\x46\x6b\x47\x6b\x48\x6b\x49\x6b\x4a\x6b\x4b\x6b\x4c\x6b\x4d\x6b\x4e\x6b\x4f\x6b\x50\x6b\x51\x6b\x52\x6b\x53\x6b\x54\x6b\x55\x6b\x56\x6b\x57\x6b\x58\x6b\x59\x6b\x5a\x6b\x5b\x6b\x5c\x6b\x5d\x6b\x5e\x6b\x5f\x6b\x60\x6b\x61\x6b\x62\x6b\x63\x6b\x64\x6b\x65\x6b\x66\x6b\x67\x6b\x68\x6b\x69\x6b\x6a\x6b\x6b\x6b\x6c\x6b\x6d\x6b\x6e\x6b\x6f\x6b\x70\x6b\x71\x6b\x72\x6b\x73\x6b\x74\x6b\x75\x6b\x76\x6b\x77\x6b\x78\x6b\x79\x6b\x7a\x6b\x7b\x6b\x7c\x6b\x7d\x6b\x7e\x6b\x7f\x6b\x80\x6b\x81\x6b\x82\x6b\x83\x6b\x84\x6b\x85\x6b\x86\x6b\x87\x6b\x88\x6b\x89\x6b\x8a\x6b\x8b\x6b\x8c\x6b\x8d\x6b\x8e\x6b\x8f\x6b\x90\x6b\x91\x6b\x92\x6b\x93\x6b\x94\x6b\x95\x6b\x96\x6b\x97\x6b\x98\x6b\x99\x6b\x9a\x6b\x9b\x6b\x9c\x6b\x9d\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xa1\x6b\xa2\x6b\xa3\x6b\xa4\x6b\xa5\x6b\xa6\x6b\xa7\x6b\xa8\x6b\xa9\x6b\xaa\x6b\xab\x6b\xac\x6b\xad\x6b\xae\x6b\xaf\x6b\xb0\x6b\xb1\x6b\xb2\x6b\xb3\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x6b\xba\x6b\xbb\x6b\xbc\x6b\xbd\x6b\xbe\x6b\xbf\x6b\xc0\x6b\xc1\x6b\xc2\x6b\xc3\x6b\xc4", /* e200 */ "\x6b\xc5\x6b\xc6\x6b\xc7\x6b\xc8\x6b\xc9\x6b\xca\x6b\xcb\x6b\xcc\x6b\xcd\x6b\xce\x6b\xcf\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\x6b\xd4\x6b\xd5\x6b\xd6\x6b\xd7\x6b\xd8\x6b\xd9\x6b\xda\x6b\xdb\x6b\xdc\x6b\xdd\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x6b\xe9\x6b\xea\x6b\xeb\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\x6b\xfc\x6b\xfd\x6b\xfe\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\x6c\x46\x6c\x47\x6c\x48\x6c\x49\x6c\x4a\x6c\x4b\x6c\x4c\x6c\x4d\x6c\x4e\x6c\x4f\x6c\x50\x6c\x51\x6c\x52\x6c\x53\x6c\x54\x6c\x55\x6c\x56\x6c\x57\x6c\x58\x6c\x59\x6c\x5a\x6c\x5b\x6c\x5c\x6c\x5d\x6c\x5e\x6c\x5f\x6c\x60\x6c\x61\x6c\x62\x6c\x63\x6c\x64\x6c\x65\x6c\x66\x6c\x67\x6c\x68\x6c\x69\x6c\x6a\x6c\x6b\x6c\x6c\x6c\x6d\x6c\x6e\x6c\x6f\x6c\x70\x6c\x71\x6c\x72\x6c\x73\x6c\x74\x6c\x75\x6c\x76\x6c\x77\x6c\x78\x6c\x79\x6c\x7a\x6c\x7b\x6c\x7c\x6c\x7d\x6c\x7e\x6c\x7f\x6c\x80\x6c\x81\x6c\x82\x6c\x83\x6c\x84\x6c\x85\x6c\x86", /* e280 */ "\x6c\x87\x6c\x88\x6c\x89\x6c\x8a\x6c\x8b\x6c\x8c\x6c\x8d\x6c\x8e\x6c\x8f\x6c\x90\x6c\x91\x6c\x92\x6c\x93\x6c\x94\x6c\x95\x6c\x96\x6c\x97\x6c\x98\x6c\x99\x6c\x9a\x6c\x9b\x6c\x9c\x6c\x9d\x6c\x9e\x6c\x9f\x6c\xa0\x6c\xa1\x6c\xa2\x6c\xa3\x6c\xa4\x6c\xa5\x6c\xa6\x6c\xa7\x6c\xa8\x6c\xa9\x6c\xaa\x6c\xab\x6c\xac\x6c\xad\x6c\xae\x6c\xaf\x6c\xb0\x6c\xb1\x6c\xb2\x6c\xb3\x6c\xb4\x6c\xb5\x6c\xb6\x6c\xb7\x6c\xb8\x6c\xb9\x6c\xba\x6c\xbb\x6c\xbc\x6c\xbd\x6c\xbe\x6c\xbf\x6c\xc0\x6c\xc1\x6c\xc2\x6c\xc3\x6c\xc4\x6c\xc5\x6c\xc6\x6c\xc7\x6c\xc8\x6c\xc9\x6c\xca\x6c\xcb\x6c\xcc\x6c\xcd\x6c\xce\x6c\xcf\x6c\xd0\x6c\xd1\x6c\xd2\x6c\xd3\x6c\xd4\x6c\xd5\x6c\xd6\x6c\xd7\x6c\xd8\x6c\xd9\x6c\xda\x6c\xdb\x6c\xdc\x6c\xdd\x6c\xde\x6c\xdf\x6c\xe0\x6c\xe1\x6c\xe2\x6c\xe3\x6c\xe4\x6c\xe5\x6c\xe6\x6c\xe7\x6c\xe8\x6c\xe9\x6c\xea\x6c\xeb\x6c\xec\x6c\xed\x6c\xee\x6c\xef\x6c\xf0\x6c\xf1\x6c\xf2\x6c\xf3\x6c\xf4\x6c\xf5\x6c\xf6\x6c\xf7\x6c\xf8\x6c\xf9\x6c\xfa\x6c\xfb\x6c\xfc\x6c\xfd\x6c\xfe\x6d\x41\x6d\x42\x6d\x43\x6d\x44\x6d\x45\x6d\x46\x6d\x47\x6d\x48", /* e300 */ "\x6d\x49\x6d\x4a\x6d\x4b\x6d\x4c\x6d\x4d\x6d\x4e\x6d\x4f\x6d\x50\x6d\x51\x6d\x52\x6d\x53\x6d\x54\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x59\x6d\x5a\x6d\x5b\x6d\x5c\x6d\x5d\x6d\x5e\x6d\x5f\x6d\x60\x6d\x61\x6d\x62\x6d\x63\x6d\x64\x6d\x65\x6d\x66\x6d\x67\x6d\x68\x6d\x69\x6d\x6a\x6d\x6b\x6d\x6c\x6d\x6d\x6d\x6e\x6d\x6f\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x74\x6d\x75\x6d\x76\x6d\x77\x6d\x78\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7c\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x82\x6d\x83\x6d\x84\x6d\x85\x6d\x86\x6d\x87\x6d\x88\x6d\x89\x6d\x8a\x6d\x8b\x6d\x8c\x6d\x8d\x6d\x8e\x6d\x8f\x6d\x90\x6d\x91\x6d\x92\x6d\x93\x6d\x94\x6d\x95\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9b\x6d\x9c\x6d\x9d\x6d\x9e\x6d\x9f\x6d\xa0\x6d\xa1\x6d\xa2\x6d\xa3\x6d\xa4\x6d\xa5\x6d\xa6\x6d\xa7\x6d\xa8\x6d\xa9\x6d\xaa\x6d\xab\x6d\xac\x6d\xad\x6d\xae\x6d\xaf\x6d\xb0\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb4\x6d\xb5\x6d\xb6\x6d\xb7\x6d\xb8\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xbf\x6d\xc0\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc4\x6d\xc5\x6d\xc6\x6d\xc7\x6d\xc8", /* e380 */ "\x6d\xc9\x6d\xca\x6d\xcb\x6d\xcc\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd1\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd6\x6d\xd7\x6d\xd8\x6d\xd9\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdd\x6d\xde\x6d\xdf\x6d\xe0\x6d\xe1\x6d\xe2\x6d\xe3\x6d\xe4\x6d\xe5\x6d\xe6\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xeb\x6d\xec\x6d\xed\x6d\xee\x6d\xef\x6d\xf0\x6d\xf1\x6d\xf2\x6d\xf3\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf7\x6d\xf8\x6d\xf9\x6d\xfa\x6d\xfb\x6d\xfc\x6d\xfd\x6d\xfe\x6e\x41\x6e\x42\x6e\x43\x6e\x44\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4d\x6e\x4e\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x53\x6e\x54\x6e\x55\x6e\x56\x6e\x57\x6e\x58\x6e\x59\x6e\x5a\x6e\x5b\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x5f\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6b\x6e\x6c\x6e\x6d\x6e\x6e\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x7e\x6e\x7f\x6e\x80\x6e\x81\x6e\x82\x6e\x83\x6e\x84\x6e\x85\x6e\x86\x6e\x87\x6e\x88\x6e\x89\x6e\x8a", /* e400 */ "\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x8f\x6e\x90\x6e\x91\x6e\x92\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x98\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9c\x6e\x9d\x6e\x9e\x6e\x9f\x6e\xa0\x6e\xa1\x6e\xa2\x6e\xa3\x6e\xa4\x6e\xa5\x6e\xa6\x6e\xa7\x6e\xa8\x6e\xa9\x6e\xaa\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xaf\x6e\xb0\x6e\xb1\x6e\xb2\x6e\xb3\x6e\xb4\x6e\xb5\x6e\xb6\x6e\xb7\x6e\xb8\x6e\xb9\x6e\xba\x6e\xbb\x6e\xbc\x6e\xbd\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc1\x6e\xc2\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc7\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcb\x6e\xcc\x6e\xcd\x6e\xce\x6e\xcf\x6e\xd0\x6e\xd1\x6e\xd2\x6e\xd3\x6e\xd4\x6e\xd5\x6e\xd6\x6e\xd7\x6e\xd8\x6e\xd9\x6e\xda\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xde\x6e\xdf\x6e\xe0\x6e\xe1\x6e\xe2\x6e\xe3\x6e\xe4\x6e\xe5\x6e\xe6\x6e\xe7\x6e\xe8\x6e\xe9\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf4\x6e\xf5\x6e\xf6\x6e\xf7\x6e\xf8\x6e\xf9\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6f\x41\x6f\x42\x6f\x43\x6f\x44\x6f\x45\x6f\x46\x6f\x47\x6f\x48\x6f\x49\x6f\x4a\x6f\x4b\x6f\x4c", /* e480 */ "\x6f\x4d\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x58\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5c\x6f\x5d\x6f\x5e\x6f\x5f\x6f\x60\x6f\x61\x6f\x62\x6f\x63\x6f\x64\x6f\x65\x6f\x66\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6d\x6f\x6e\x6f\x6f\x6f\x70\x6f\x71\x6f\x72\x6f\x73\x6f\x74\x6f\x75\x6f\x76\x6f\x77\x6f\x78\x6f\x79\x6f\x7a\x6f\x7b\x6f\x7c\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x84\x6f\x85\x6f\x86\x6f\x87\x6f\x88\x6f\x89\x6f\x8a\x6f\x8b\x6f\x8c\x6f\x8d\x6f\x8e\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9c\x6f\x9d\x6f\x9e\x6f\x9f\x6f\xa0\x6f\xa1\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa7\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb3\x6f\xb4\x6f\xb5\x6f\xb6\x6f\xb7\x6f\xb8\x6f\xb9\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc0\x6f\xc1\x6f\xc2\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xc9\x6f\xca\x6f\xcb\x6f\xcc", /* e500 */ "\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd1\x6f\xd2\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xde\x6f\xdf\x6f\xe0\x6f\xe1\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea\x6f\xeb\x6f\xec\x6f\xed\x6f\xee\x6f\xef\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4c\x70\x4d\x70\x4e\x70\x4f\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5e\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6b\x70\x6c\x70\x6d\x70\x6e\x70\x6f\x70\x70\x70\x71\x70\x72\x70\x73\x70\x74\x70\x75\x70\x76\x70\x77\x70\x78\x70\x79\x70\x7a\x70\x7b\x70\x7c\x70\x7d\x70\x7e\x70\x7f\x70\x80\x70\x81\x70\x82\x70\x83\x70\x84\x70\x85\x70\x86\x70\x87\x70\x88\x70\x89\x70\x8a\x70\x8b\x70\x8c\x70\x8d\x70\x8e", /* e580 */ "\x70\x8f\x70\x90\x70\x91\x70\x92\x70\x93\x70\x94\x70\x95\x70\x96\x70\x97\x70\x98\x70\x99\x70\x9a\x70\x9b\x70\x9c\x70\x9d\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xab\x70\xac\x70\xad\x70\xae\x70\xaf\x70\xb0\x70\xb1\x70\xb2\x70\xb3\x70\xb4\x70\xb5\x70\xb6\x70\xb7\x70\xb8\x70\xb9\x70\xba\x70\xbb\x70\xbc\x70\xbd\x70\xbe\x70\xbf\x70\xc0\x70\xc1\x70\xc2\x70\xc3\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc8\x70\xc9\x70\xca\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xd8\x70\xd9\x70\xda\x70\xdb\x70\xdc\x70\xdd\x70\xde\x70\xdf\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe4\x70\xe5\x70\xe6\x70\xe7\x70\xe8\x70\xe9\x70\xea\x70\xeb\x70\xec\x70\xed\x70\xee\x70\xef\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf7\x70\xf8\x70\xf9\x70\xfa\x70\xfb\x70\xfc\x70\xfd\x70\xfe\x71\x41\x71\x42\x71\x43\x71\x44\x71\x45\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4a\x71\x4b\x71\x4c\x71\x4d\x71\x4e\x71\x4f\x71\x50", /* e600 */ "\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5c\x71\x5d\x71\x5e\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x64\x71\x65\x71\x66\x71\x67\x71\x68\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6e\x71\x6f\x71\x70\x71\x71\x71\x72\x71\x73\x71\x74\x71\x75\x71\x76\x71\x77\x71\x78\x71\x79\x71\x7a\x71\x7b\x71\x7c\x71\x7d\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x84\x71\x85\x71\x86\x71\x87\x71\x88\x71\x89\x71\x8a\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x8f\x71\x90\x71\x91\x71\x92\x71\x93\x71\x94\x71\x95\x71\x96\x71\x97\x71\x98\x71\x99\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\x9f\x71\xa0\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa8\x71\xa9\x71\xaa\x71\xab\x71\xac\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb3\x71\xb4\x71\xb5\x71\xb6\x71\xb7\x71\xb8\x71\xb9\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc3\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xce\x71\xcf\x71\xd0", /* e680 */ "\x71\xd1\x71\xd2\x71\xd3\x71\xd4\x71\xd5\x71\xd6\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe0\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe5\x71\xe6\x71\xe7\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xee\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8\x71\xf9\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x47\x72\x48\x72\x49\x72\x4a\x72\x4b\x72\x4c\x72\x4d\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x52\x72\x53\x72\x54\x72\x55\x72\x56\x72\x57\x72\x58\x72\x59\x72\x5a\x72\x5b\x72\x5c\x72\x5d\x72\x5e\x72\x5f\x72\x60\x72\x61\x72\x62\x72\x63\x72\x64\x72\x65\x72\x66\x72\x67\x72\x68\x72\x69\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x6e\x72\x6f\x72\x70\x72\x71\x72\x72\x72\x73\x72\x74\x72\x75\x72\x76\x72\x77\x72\x78\x72\x79\x72\x7a\x72\x7b\x72\x7c\x72\x7d\x72\x7e\x72\x7f\x72\x80\x72\x81\x72\x82\x72\x83\x72\x84\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8a\x72\x8b\x72\x8c\x72\x8d\x72\x8e\x72\x8f\x72\x90\x72\x91\x72\x92", /* e700 */ "\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\x9f\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xac\x72\xad\x72\xae\x72\xaf\x72\xb0\x72\xb1\x72\xb2\x72\xb3\x72\xb4\x72\xb5\x72\xb6\x72\xb7\x72\xb8\x72\xb9\x72\xba\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc1\x72\xc2\x72\xc3\x72\xc4\x72\xc5\x72\xc6\x72\xc7\x72\xc8\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcd\x72\xce\x72\xcf\x72\xd0\x72\xd1\x72\xd2\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd7\x72\xd8\x72\xd9\x72\xda\x72\xdb\x72\xdc\x72\xdd\x72\xde\x72\xdf\x72\xe0\x72\xe1\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xe8\x72\xe9\x72\xea\x72\xeb\x72\xec\x72\xed\x72\xee\x72\xef\x72\xf0\x72\xf1\x72\xf2\x72\xf3\x72\xf4\x72\xf5\x72\xf6\x72\xf7\x72\xf8\x72\xf9\x72\xfa\x72\xfb\x72\xfc\x72\xfd\x72\xfe\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4d\x73\x4e\x73\x4f\x73\x50\x73\x51\x73\x52\x73\x53\x73\x54", /* e780 */ "\x73\x55\x73\x56\x73\x57\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x60\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6c\x73\x6d\x73\x6e\x73\x6f\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c\x73\x7d\x73\x7e\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x84\x73\x85\x73\x86\x73\x87\x73\x88\x73\x89\x73\x8a\x73\x8b\x73\x8c\x73\x8d\x73\x8e\x73\x8f\x73\x90\x73\x91\x73\x92\x73\x93\x73\x94\x73\x95\x73\x96\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9b\x73\x9c\x73\x9d\x73\x9e\x73\x9f\x73\xa0\x73\xa1\x73\xa2\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xa9\x73\xaa\x73\xab\x73\xac\x73\xad\x73\xae\x73\xaf\x73\xb0\x73\xb1\x73\xb2\x73\xb3\x73\xb4\x73\xb5\x73\xb6\x73\xb7\x73\xb8\x73\xb9\x73\xba\x73\xbb\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc0\x73\xc1\x73\xc2\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xc8\x73\xc9\x73\xca\x73\xcb\x73\xcc\x73\xcd\x73\xce\x73\xcf\x73\xd0\x73\xd1\x73\xd2\x73\xd3\x73\xd4", /* e800 */ "\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xd9\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xde\x73\xdf\x73\xe0\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe5\x73\xe6\x73\xe7\x73\xe8\x73\xe9\x73\xea\x73\xeb\x73\xec\x73\xed\x73\xee\x73\xef\x73\xf0\x73\xf1\x73\xf2\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc\x73\xfd\x73\xfe\x74\x41\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x55\x74\x56\x74\x57\x74\x58\x74\x59\x74\x5a\x74\x5b\x74\x5c\x74\x5d\x74\x5e\x74\x5f\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6d\x74\x6e\x74\x6f\x74\x70\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x76\x74\x77\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7e\x74\x7f\x74\x80\x74\x81\x74\x82\x74\x83\x74\x84\x74\x85\x74\x86\x74\x87\x74\x88\x74\x89\x74\x8a\x74\x8b\x74\x8c\x74\x8d\x74\x8e\x74\x8f\x74\x90\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96", /* e880 */ "\x74\x97\x74\x98\x74\x99\x74\x9a\x74\x9b\x74\x9c\x74\x9d\x74\x9e\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xa7\x74\xa8\x74\xa9\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xba\x74\xbb\x74\xbc\x74\xbd\x74\xbe\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd2\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdc\x74\xdd\x74\xde\x74\xdf\x74\xe0\x74\xe1\x74\xe2\x74\xe3\x74\xe4\x74\xe5\x74\xe6\x74\xe7\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xee\x74\xef\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf4\x74\xf5\x74\xf6\x74\xf7\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x41\x75\x42\x75\x43\x75\x44\x75\x45\x75\x46\x75\x47\x75\x48\x75\x49\x75\x4a\x75\x4b\x75\x4c\x75\x4d\x75\x4e\x75\x4f\x75\x50\x75\x51\x75\x52\x75\x53\x75\x54\x75\x55\x75\x56\x75\x57\x75\x58", /* e900 */ "\x75\x59\x75\x5a\x75\x5b\x75\x5c\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x65\x75\x66\x75\x67\x75\x68\x75\x69\x75\x6a\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x72\x75\x73\x75\x74\x75\x75\x75\x76\x75\x77\x75\x78\x75\x79\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x7f\x75\x80\x75\x81\x75\x82\x75\x83\x75\x84\x75\x85\x75\x86\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8b\x75\x8c\x75\x8d\x75\x8e\x75\x8f\x75\x90\x75\x91\x75\x92\x75\x93\x75\x94\x75\x95\x75\x96\x75\x97\x75\x98\x75\x99\x75\x9a\x75\x9b\x75\x9c\x75\x9d\x75\x9e\x75\x9f\x75\xa0\x75\xa1\x75\xa2\x75\xa3\x75\xa4\x75\xa5\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xab\x75\xac\x75\xad\x75\xae\x75\xaf\x75\xb0\x75\xb1\x75\xb2\x75\xb3\x75\xb4\x75\xb5\x75\xb6\x75\xb7\x75\xb8\x75\xb9\x75\xba\x75\xbb\x75\xbc\x75\xbd\x75\xbe\x75\xbf\x75\xc0\x75\xc1\x75\xc2\x75\xc3\x75\xc4\x75\xc5\x75\xc6\x75\xc7\x75\xc8\x75\xc9\x75\xca\x75\xcb\x75\xcc\x75\xcd\x75\xce\x75\xcf\x75\xd0\x75\xd1\x75\xd2\x75\xd3\x75\xd4\x75\xd5\x75\xd6\x75\xd7\x75\xd8", /* e980 */ "\x75\xd9\x75\xda\x75\xdb\x75\xdc\x75\xdd\x75\xde\x75\xdf\x75\xe0\x75\xe1\x75\xe2\x75\xe3\x75\xe4\x75\xe5\x75\xe6\x75\xe7\x75\xe8\x75\xe9\x75\xea\x75\xeb\x75\xec\x75\xed\x75\xee\x75\xef\x75\xf0\x75\xf1\x75\xf2\x75\xf3\x75\xf4\x75\xf5\x75\xf6\x75\xf7\x75\xf8\x75\xf9\x75\xfa\x75\xfb\x75\xfc\x75\xfd\x75\xfe\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x80\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a", /* ea00 */ "\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x76\xfe\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c", /* ea80 */ "\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x80\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc", /* eb00 */ "\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x77\xfe\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x80\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e", /* eb80 */ "\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x78\xfe\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60", /* ec00 */ "\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x80\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0", /* ec80 */ "\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x79\xfe\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x80\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2", /* ed00 */ "\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7a\xfe\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64", /* ed80 */ "\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x80\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4", /* ee00 */ "\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7b\xfe\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x80\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6", /* ee80 */ "\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7c\xfe\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68", /* ef00 */ "\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x80\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8", /* ef80 */ "\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7d\xfe\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x80\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa", /* f000 */ "\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7e\xfe\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c", /* f080 */ "\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x80\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec", /* f100 */ "\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x7f\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x8e\x58\x77\x58\x82\x59\x80\x5b\xae\x5c\x66\x5c\x78\x5e\x49\x5e\x8a\x5f\x7a\x5f\xd2\x5f\xd5\x5f\xd9\x5f\xdd\x60\x59\x60\xad\x61\x77\x62\xb9\x62\xce\x62\xe2\x63\xee\x64\x8e\x64\xf1\x65\x49\x65\x66\x65\xb8\x65\xc6\x66\x78\x66\xdd\x66\xdf\x66\xe6\x67\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x00\x00\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x00\x00\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-300_P110-1997 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\x22\x12\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x22\x20\x22\xa5\x23\x12\x22\x02\x22\x07\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\x22\x61\x22\x52\x22\x6a\x22\x6b\x22\x1a\x22\x3d\x22\x1d\x22\x2b\x22\x2c\x22\x08\x22\x0b\x22\x86\x22\x87\x22\x82\x22\x83\x22\x2a\x22\x29\x22\x27\x22\x28\x21\xd2\x21\xd4\x22\x00\x22\x03\x21\x2b\x20\x30\x26\x6f\x26\x6d\x26\x6a\x20\x20\x20\x21\x00\xb6\x25\xef\x00\x00\x25\x00\x25\x02\x25\x0c\x25\x10", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\x30\x1c\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x25\x18\x25\x14\x25\x1c\x25\x2c\x25\x24\x25\x34\x25\x3c\x25\x01\x25\x03\x25\x0f\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x25\x13\x25\x1b\x25\x17\x25\x23\x25\x33\x25\x2b\x25\x3b\x25\x4b\x25\x20\x25\x2f\x25\x28\x25\x37\x25\x3f\x25\x1d\x25\x30\x25\x25\x25\x38\x25\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x14\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\x4e\xdd\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x66\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\xf8\x6f\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x67\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x8c\x4e\x09\x56\xdb\x4e\x94\x51\x6d\x4e\x03\x51\x6b\x4e\x5d\x53\x41\x76\x7e\x53\x43\x4e\x07\x51\x04\x90\xfd\x90\x53\x5e\x9c\x77\x0c\x5e\x02\x53\x3a\x75\x3a\x67\x51\x67\x71\x89\x7f\x53\x57\x53\x17\x59\x27\x4e\x2d\x5c\x0f\x4e\x0a\x4e\x0b\x5e\x74\x67\x08\x65\xe5\x75\x30\x5b\x50\x5c\x71\x67\x2c\x5d\xdd\x85\xe4\x91\xce\x5d\xe5\x69\x6d\x67\x28\x4e\x95\x90\xce\x5c\xf6\x96\xc4\x9a\xd8\x5c\xa1\x59\x2b\x53\x9f\x4e\xac\x4f\x50\x6b\x63\x67\x7e\x6a\x5f\x54\x8c\x88\xfd\x75\x37\x7f\x8e\x54\x09\x5d\x0e", /* 4580 */ "\x77\xf3\x8c\x37\x96\xfb\x95\x77\x6c\xbb\x6c\xa2\x91\xd1\x65\xb0\x53\xe3\x6a\x4b\x4e\x45\x79\x8f\x62\x40\x5e\x73\x51\x85\x56\xfd\x53\x16\x96\x2a\x5b\xae\x4e\xba\x4f\x5c\x90\xe8\x6e\x05\x6b\x21\x7f\xa9\x75\x1f\x4e\xe3\x51\xfa\x6c\x34\x68\xee\x51\x49\x52\xa0\x54\x08\x79\x5e\x67\x97\x91\xcd\x88\x4c\x4f\xe1\x66\x0e\x6d\x77\x5b\x89\x5e\x78\x4f\xdd\x59\x2a\x5b\xcc\x6c\x5f\x92\x34\x52\x4d\x77\xe5\x6b\x66\x4f\x0a\x66\x2d\x52\x06\x52\xdd\x75\x28\x5e\x83\x90\x20\x6c\x17\x62\x10\x89\x8b\x52\x29\x4f\x1a\x5b\x66\x5c\xa9\x75\x23\x95\x93\x57\x30\x81\xea\x82\x6f\x95\xa2\x61\x1b\x65\x3f\x5c\x3e\x8a\x08\x65\x87\x62\x4b\x72\x36\x65\xb9\x4e\x8b\x62\x38\x54\xc1\x55\x9c\x6e\x21\x5f\x18\x53\xe4\x8f\xba\x50\x09\x92\x44\x4e\x4b\x58\x34\x6d\x0b\x57\xce\x6d\x25\x7a\xcb\x5e\xa6\x53\x48\x4e\xca\x5f\x66\x8a\x2d\x90\x1a\x52\xd5\x5f\x8c\x59\x48\x5b\x9a\x6c\x60\x5c\x4b\x6d\x5c\x74\x06\x57\x42\x5b\x9f\x82\xf1\x76\x84\x53\xf8\x79\xc0\x6a\x2a\x54\x0d\x5b\x5d\x7a\xf9\x53\x5a\x52\x9b\x5e\xab\x84\x49\x68\x04\x6c\x38\x56\x68\x73\x89\x59\x1a\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\xc0\x77\x1f\x60\x75\x97\x59\x51\x86\x83\x02\x65\x4f\x8c\x4a\x51\x75\x6c\xd5\x76\x7a\x97\x52\x58\x97\x65\x99\x5f\xe0\x8c\xc7\x66\x42\x72\x69\x8e\xca\x5f\xb3\x89\x81\x5b\xfe\x58\x5a\x79\xcb\x76\x7d\x6c\xb3\x70\x2c\x6c\xb9\x96\x86\x85\x35\x5f\x53\x4f\xca\x5f\xd7\x66\x25\x79\x3e\x99\xac\x51\x65\x5e\xfa\x68\x39\x67\x49\x90\x32\x82\x08\x6d\x66\x7c\xbe\x54\x0c\x60\x27\x7c\x73\x80\x05\x52\xa9\x67\x9d\x8f\xd1\x76\xf4\x76\xee\x67\x65\x75\x3b\x76\xf8\x9e\xd2\x4e\x38\x82\x39\x75\x31\x58\xeb\x7b\x2c\x71\x8a", /* 4680 */ "\x7d\x19\x50\x65\x68\xb0\x82\xb3\x57\x1f\x67\x09\x5b\xb6\x7d\xda\x7d\x4c\x8a\xbf\x59\x29\x67\x1f\x7f\x6e\x6d\x45\x65\x89\x5f\x0f\x5f\x62\x97\x62\x7a\x2e\x8f\x38\x59\x16\x51\x43\x4f\x53\x9e\x7f\x5f\xa1\x59\x73\x5e\xb7\x4e\x16\x52\xc7\x58\x00\x59\x7d\x51\x50\x5b\xfa\x92\xfc\x72\x79\x57\xfc\x90\x54\x54\x11\x53\xd6\x7b\x49\x66\x7a\x56\xde\x95\x80\x90\x4b\x50\x99\x60\x1d\x96\x3f\x4e\x0d\x98\x08\x51\x68\x5b\xff\x55\x84\x67\x7f\x98\xef\x8c\x9e\x73\xfe\x98\xdf\x7d\x44\x98\x5e\x51\x6c\x67\x50\x99\x99\x55\x46\x7d\x50\x88\x68\x77\xe2\x6f\x5f\x79\xc1\x52\x36\x90\xa6\x6c\xbc\x7c\xf8\x5b\x8f\x7b\x56\x6c\xe2\x54\xe1\x65\x70\x95\x8b\x6e\x96\x6a\x39\x8c\xbb\x66\x0c\x5f\x37\x78\x14\x53\xcb\x5b\x87\x82\xe5\x83\xca\x63\x01\x82\xb1\x5f\x15\x7d\x00\x83\x52\x52\x25\x4f\xee\x8d\x8a\x4f\x4f\x85\xac\x6b\xdb\x90\x60\x55\x4f\x59\x65\x57\x8b\x5f\xc3\x76\x7b\x65\xe9\x67\xf3\x6d\x69\x8c\xea\x52\xd9\x6c\xc9\x5e\x38\x5b\x88\x57\xfa\x7b\xa1\x6c\xf0\x4f\x38\x67\x00\x4e\xe5\x6b\x4c\x88\xd5\x8d\x64\x8d\xb3\x89\x8f\x6d\x41\x8a\xa0\x66\x07\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xde\x71\x67\x58\x69\x90\x01\x96\xc5\x67\x2b\x54\xf2\x5c\xb8\x4e\x5f\x5c\x90\x52\x1d\x83\x28\x52\x47\x6b\xd4\x80\xfd\x8a\x71\x62\x95\x8e\xe2\x83\xc5\x90\x23\x4e\xd6\x6c\x11\x7d\x66\x91\x52\x7e\x41\x4f\xa1\x6e\x80\x67\x1d\x4e\xd8\x67\x61\x71\x21\x80\x03\x69\x7d\x4e\x3b\x61\x0f\x62\x26\x52\x07\x52\x64\x72\x47\x7d\x30\x6e\x08\x7a\x32\x5e\x03\x91\xcc\x5c\x5e\x7a\xe0\x59\x09\x4f\x55\x68\x5c\x5f\x7c\x67\xfb\x76\xca\x58\xf2\x4e\xc1\x6d\xf1\x53\xf0\x9c\xe5\x9d\xb4\x65\x2f\x65\x74\x89\xd2\x56\x09\x54\x73", /* 4780 */ "\x88\x5b\x8b\x70\x57\x27\x73\x87\x8d\xef\x70\x6b\x96\x1c\x8f\x1d\x70\xb9\x4e\x0e\x6e\x1b\x75\x51\x92\x80\x7a\x7a\x4e\xa4\x7f\xbd\x53\x4a\x53\xce\x59\x2e\x7d\xcf\x8a\x18\x66\x74\x69\xcb\x96\x9b\x68\x85\x53\x70\x8a\x00\x68\x17\x8e\xab\x66\xf8\x51\x4b\x7d\x20\x96\xc6\x7b\xc0\x51\x48\x6e\xdd\x6c\x7a\x65\x59\x7d\x14\x67\xf4\x63\xa5\x66\x1f\x77\x40\x75\x59\x66\x20\x5d\xf1\x75\x4c\x51\x77\x65\x6c\x7f\xa4\x98\x06\x51\x71\x6d\x3b\x91\xcf\x63\x07\x89\xe3\x5b\xa4\x67\x9c\x54\x04\x67\x1b\x96\x32\x7d\x04\x61\xb2\x96\x7d\x4e\x80\x56\xf3\x4e\x88\x82\x72\x7a\x0e\x69\x0d\x53\xef\x60\x52\x4f\x4d\x51\x78\x5f\xc5\x7d\x9a\x60\x25\x57\x28\x57\xa3\x54\x1b\x5e\xf6\x5d\x8b\x4f\x01\x68\x03\x67\x0d\x71\xb1\x52\x72\x53\x54\x6b\x69\x53\xf2\x51\x2a\x65\x8e\x62\x3f\x5b\x97\x68\x3c\x8f\xb0\x7b\x20\x57\x12\x8a\xf8\x81\x07\x55\x53\x8c\xe2\x5f\x25\x98\xa8\x5f\x97\x66\x13\x62\x53\x98\x2d\x65\xed\x6b\xb5\x52\xe2\x71\x36\x56\xe3\x98\x4d\x84\x3d\x91\x4d\x7a\x0b\x8f\xbb\x54\x3e\x61\x1f\x5b\xdb\x53\xcd\x7a\x14\x97\x00\x6e\x90\x6c\x96\x98\x4c\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xbc\x83\x49\x7b\x97\x76\xdb\x8f\xb2\x90\xa3\x77\x01\x69\xd8\x6b\xbf\x5c\x11\x4e\xcb\x53\xd7\x97\xf3\x7d\xe8\x59\xd4\x5e\x84\x4f\xc2\x72\xb6\x79\x3a\x5e\x97\x5a\x9b\x68\x2a\x6e\xcb\x68\xa8\x7e\x04\x53\xf3\x5d\xe6\x53\xca\x90\x78\x5c\x45\x60\xc5\x7d\xf4\x70\xad\x99\x28\x92\x71\x6a\x21\x6b\x8a\x7e\x3e\x4e\x9c\x7e\x4a\x4e\xf2\x58\x57\x6d\x88\x88\x53\x69\x1c\x67\x17\x5b\x85\x52\x9f\x5c\x1a\x8c\xbf\x60\xa6\x81\x02\x7b\xe0\x4f\x73\x7d\x21\x51\xa8\x68\x51\x78\xba\x72\x67\x4e\x26\x50\x24\x89\xb3\x8c\xb4", /* 4880 */ "\x7d\xad\x7d\x71\x5b\xbf\x4e\x21\x7c\xd6\x89\xaa\x93\x32\x6f\x84\x65\xbd\x5b\xb9\x98\xdb\x5c\x40\x79\x50\x90\x4e\x6c\x0f\x65\x39\x76\xe4\x7a\x4d\x6e\x0b\x5d\xfb\x6d\xf3\x5f\xdc\x4e\x89\x8e\xcd\x88\xc5\x91\x78\x7e\x54\x67\xd3\x5e\x1d\x7d\xbf\x7c\x89\x82\x2a\x75\x32\x54\x68\x4e\xd9\x5f\x85\x4f\x4e\x7d\xd1\x8e\xfd\x9e\xbb\x61\x76\x52\xb4\x78\xef\x4e\x39\x80\xb2\x96\x50\x5c\x0e\x65\x3e\x66\x43\x5e\xa7\x4e\xf6\x60\xf3\x9a\x13\x4e\xd5\x4f\x7f\x8f\x2a\x98\x54\x75\x6a\x5f\x35\x80\x5e\x4f\x9b\x6e\x6f\x6e\xb6\x68\x21\x92\x85\x92\xf3\x87\x8d\x97\x56\x51\x99\x5b\x8c\x6e\x2f\x93\x5b\x59\x1c\x51\x45\x9f\x8d\x7d\xb1\x83\xf1\x90\x1f\x52\xc9\x52\x37\x8d\x77\x64\x69\x53\xc2\x55\xb6\x7a\x42\x63\xa8\x8f\xd4\x80\x77\x6b\x62\x4f\x1d\x5e\x79\x74\x03\x6a\x29\x5c\x55\x5e\x61\x84\x5b\x5e\xad\x97\x5e\x53\xf7\x53\x58\x6b\x73\x62\xe1\x51\xe6\x8a\x9e\x66\x28\x57\xdf\x6d\xf5\x51\x8d\x50\xcd\x79\xd1\x9b\x5a\x7a\xef\x90\x14\x68\x48\x5b\x57\x8a\xd6\x51\x7c\x53\xc8\x63\x2f\x62\x80\x5f\xb9\x67\x2d\x7c\xfb\x5f\x93\x51\xb7\x61\x4b\x5c\xf0\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x31\x53\x9a\x50\x74\x6c\xe8\x6e\x2c\x98\x03\x4e\x57\x8a\x66\x57\x6a\x84\x29\x51\x5a\x6c\x7d\x5b\x9d\x60\x6d\x6a\x0b\x6e\x29\x65\x77\x8a\xac\x82\xb8\x54\x4a\x6b\x74\x82\x2c\x98\xfe\x79\x3c\x5c\x06\x96\xe3\x78\x02\x52\x24\x5f\x79\x5f\x71\x66\xfd\x5e\x2f\x96\x78\x93\x8c\x8a\xc7\x5f\x70\x60\xaa\x6a\x19\x75\x33\x5b\xb3\x6b\xcd\x88\xdc\x5e\x4c\x58\xf0\x96\x64\x7b\x39\x5a\x66\x4e\x7e\x7a\xf6\x82\x9d\x72\x5b\x8c\xb7\x79\xfb\x78\x5d\x83\x36\x52\xb9\x99\x0a\x52\xf2\x80\xa5\x8b\x19\x70\x89\x59\x0f\x58\x02", /* 4980 */ "\x67\xcf\x62\x55\x5e\x30\x71\x3c\x78\x6b\x80\x01\x7a\x76\x5b\xe9\x91\xdd\x65\xad\x5c\x04\x5d\xee\x5d\x50\x62\x98\x80\x10\x5b\xa3\x59\xcb\x5f\x8b\x6b\x8b\x66\x6f\x8c\x61\x90\xf7\x53\x53\x96\xe2\x85\xab\x6b\x7b\x80\x15\x64\xcd\x4e\xae\x4e\x91\x90\xe1\x52\xe4\x6c\x42\x8c\xab\x5b\x98\x59\xbb\x88\xcf\x77\x3c\x4f\x2f\x7a\xaf\x7b\xc9\x96\x8e\x63\xdb\x68\x42\x99\xc5\x68\xb6\x57\x47\x8c\xa1\x54\x7d\x73\x8b\x84\xb2\x90\xc1\x78\xe8\x7b\x11\x66\xf2\x69\x75\x58\x31\x63\xd0\x8a\x3c\x96\xea\x90\x55\x88\xc1\x99\x96\x75\xc5\x68\x50\x4f\x59\x74\xe6\x4e\xe4\x54\x39\x73\x2a\x67\x2a\x52\x5b\x8c\xa0\x4f\x34\x51\x00\x54\x2b\x90\x69\x8f\xc4\x5c\x3b\x5d\xcc\x7b\x54\x8f\xfd\x8a\x0e\x4e\x08\x92\x5b\x71\xc3\x8a\xb2\x70\xba\x96\x62\x67\x9a\x76\xae\x8b\x77\x7d\xbe\x96\xe8\x62\x11\x5b\xc4\x83\x7b\x62\xbc\x7d\x0d\x76\xe3\x7e\x2b\x96\x4d\x57\x2d\x7a\xdc\x7b\xc4\x6b\xba\x8c\x9d\x69\x8e\x90\x47\x6f\x14\x53\x60\x8f\xeb\x52\x87\x62\x4d\x65\x66\x7d\x1a\x7d\x42\x6b\xce\x7d\x79\x7e\x2e\x66\x6e\x79\x65\x50\x0b\x5c\x02\x99\xd2\x8a\x55\x75\x60\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x58\x80\x89\x50\xbe\x5e\x2b\x6d\xb2\x4f\x8b\x81\xe3\x81\xf3\x56\xe0\x7d\x99\x5d\xf2\x89\x9a\x6e\x9d\x6d\x17\x8a\xad\x89\x96\x73\x1b\x5d\xe8\x7d\xb2\x88\x8b\x4e\xfb\x5b\xc6\x88\x96\x6c\xc1\x84\x57\x8f\x03\x6b\xc5\x97\xff\x8c\xa9\x5e\x45\x82\xe6\x63\xaa\x5f\x81\x78\xc1\x82\x1e\x52\xaa\x7a\xaa\x59\x99\x62\x97\x8f\x14\x7f\xd2\x4f\xc3\x54\xc9\x96\x7a\x66\xf4\x8b\x1b\x5e\x72\x5f\xa9\x8a\x2a\x6d\x3e\x77\x63\x64\x83\x8b\x58\x61\x4e\x5a\x5a\x8d\x85\x71\xd0\x98\x3c\x72\xe9\x58\x3a\x5d\xfe\x8a\x8d\x67\xc4", /* 4a80 */ "\x7d\xe0\x4f\x11\x77\xed\x4f\x0f\x5b\xc5\x62\x9c\x5c\x3c\x53\x3b\x6d\xc0\x81\xfc\x96\xd1\x90\x4a\x6d\x6e\x93\xe1\x5c\x64\x98\xfc\x52\x4a\x6d\xfb\x85\x84\x96\x8a\x56\xfa\x58\x83\x77\x66\x98\x05\x4e\x73\x8c\x46\x8a\x31\x7d\xd2\x8f\xf0\x6d\x6a\x4f\x9d\x6b\x6f\x6b\x27\x62\xc5\x51\x1f\x97\x69\x53\x74\x9a\xa8\x67\x75\x88\x7f\x53\x05\x75\x70\x8d\x70\x86\x4e\x5c\xef\x8c\xde\x5f\xf5\x72\x5f\x76\x86\x60\x9f\x80\xcc\x59\xeb\x81\x31\x5e\x0c\x8a\x17\x96\x76\x82\xd7\x74\xb0\x84\xb8\x50\xd5\x96\xf2\x72\x48\x78\x34\x6d\xd1\x6e\x09\x67\xff\x6f\x54\x59\x15\x50\x0d\x72\xac\x9e\xc4\x7b\x46\x9b\x3c\x65\x63\x53\xbb\x8a\x98\x91\xdc\x98\x18\x6f\xc3\x65\xc5\x50\x1f\x7f\x8a\x6f\x64\x90\x31\x5f\x3e\x63\xf4\x90\x38\x8b\x66\x7b\xe4\x72\x06\x68\x43\x72\xec\x65\xcf\x82\xa6\x5b\xa2\x69\x60\x9e\xa6\x52\xdf\x67\x90\x63\x9b\x7d\x75\x98\x55\x5d\xf3\x58\x05\x8a\xcb\x95\xa3\x88\x63\x8c\xa8\x5b\x63\x5e\x8a\x54\x49\x78\x6c\x7d\x2b\x8c\xa2\x53\x52\x7d\x76\x8c\xb8\x70\x70\x54\x7c\x65\x45\x66\x76\x73\xb2\x56\xf2\x7b\xb1\x58\xa8\x7a\x81\x66\xae\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x87\x59\xff\x88\x40\x56\xf0\x7b\x51\x6d\xf7\x5f\x01\x93\x4b\x90\x00\x4f\xe3\x67\x5f\x4f\xbf\x8c\xc3\x52\x6f\x63\xa1\x54\x42\x89\x07\x69\x8a\x5e\x2d\x5a\x18\x75\x18\x51\x4d\x5e\x7e\x50\xb5\x5b\xdd\x68\xd2\x74\x5e\x69\xfb\x5f\xae\x55\xe3\x8a\x70\x5b\xf8\x58\x24\x83\x58\x5f\x13\x5e\x95\x70\x6f\x75\x1a\x7d\x05\x60\xe3\x7e\x70\x50\x12\x52\x38\x83\xef\x53\x73\x5f\x31\x6a\x2b\x9c\xf4\x53\xcc\x6d\x32\x4e\xab\x4e\x92\x84\x2c\x8a\x8c\x65\xe2\x6f\x01\x80\xa9\x9d\xf9\x8b\x72\x7b\x52\x95\x89\x6d\x74\x63\xa2", /* 4b80 */ "\x65\x90\x5b\xd2\x63\x19\x8a\xb0\x76\xdf\x99\xa8\x7a\x74\x82\x36\x88\x46\x80\x61\x65\x57\x59\x22\x96\x44\x88\xab\x93\x26\x7b\x4b\x62\xb5\x53\x71\x5e\x81\x5b\xdf\x4f\x75\x58\xc1\x70\x58\x7d\xca\x54\x38\x73\xe0\x52\xd8\x52\x08\x78\xd0\x6b\x23\x68\x38\x4e\x43\x69\x0e\x83\x77\x6e\xd1\x98\xf2\x81\x70\x88\x57\x8e\xf8\x79\x8e\x83\xdc\x8f\xce\x7e\x01\x55\x10\x4e\xa8\x8a\x33\x91\x62\x5e\xfb\x60\x6f\x4e\x86\x66\x4b\x63\x68\x52\x17\x80\x56\x51\xfd\x76\x42\x82\x1f\x96\x85\x50\xcf\x66\x2f\x4f\x3c\x4e\x59\x6a\x3d\x4e\x71\x52\x3a\x8a\xcf\x6a\x58\x66\xff\x67\x0b\x65\x3b\x97\x32\x5e\xc3\x8a\x13\x57\x82\x60\x4b\x86\x6b\x95\xd8\x60\xa9\x4e\x01\x63\xcf\x6f\xc0\x65\x9c\x8c\xac\x83\x05\x7c\xa7\x60\x50\x96\xf7\x5f\xcd\x64\x0d\x5b\x54\x90\x0f\x62\xd3\x59\xb9\x71\x59\x51\xac\x79\xf0\x55\x2f\x52\x75\x66\x97\x80\xf8\x4e\x98\x4e\xcf\x51\xcd\x9d\x5c\x51\x44\x7a\x93\x67\xf1\x58\x41\x7c\x21\x88\x61\x5c\x31\x68\xda\x91\xe7\x9d\xf2\x63\xee\x65\x75\x84\xee\x52\x3b\x6b\x32\x7c\x98\x59\x82\x96\x9c\x89\x87\x7c\x9f\x90\x06\x62\xdb\x66\xdc\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x55\x69\x82\x50\xac\x62\x3b\x5f\xd8\x63\xda\x75\xdb\x62\x7f\x61\x6e\x82\x66\x7c\x95\x71\x6e\x96\xc7\x7f\x6a\x54\x26\x52\x00\x83\xd3\x52\x11\x59\x4f\x9d\x28\x57\x4a\x66\xc7\x98\x58\x82\x0e\x66\x14\x73\x3f\x50\xb7\x65\x51\x5e\xb8\x5b\x6b\x55\xac\x5f\xeb\x63\x88\x8c\xaf\x67\x6f\x59\x51\x5a\x01\x71\xe5\x5d\xe3\x8c\x6a\x62\x71\x81\xf4\x5c\x3a\x5f\x92\x90\x45\x73\x84\x71\x49\x79\xd8\x79\x6d\x90\x03\x83\xcc\x5f\xb4\x5b\x8d\x62\x79\x64\xae\x7d\x18\x72\x3e\x5b\xee\x65\xe7\x8d\x08\x9e\x7c\x52\xe7\x5d\x07", /* 4c80 */ "\x9f\x62\x60\x69\x53\x6f\x66\x81\x96\x63\x5e\x3d\x62\xb1\x72\x2a\x6e\x4a\x93\xae\x79\xe6\x53\xe5\x80\x9d\x88\xfe\x53\xb3\x6c\x88\x6e\x7f\x51\x41\x90\x91\x6f\x6e\x84\xc4\x85\xea\x81\x29\x6b\xd2\x66\x3c\x7f\x72\x73\xc2\x5f\x1f\x79\x0e\x60\xb2\x72\xed\x58\xee\x81\x79\x8e\x8d\x5c\x65\x5d\xe7\x6c\x37\x6d\xe1\x86\x2d\x72\xaf\x8e\x0a\x7c\x92\x82\x18\x80\x33\x63\xa7\x92\x91\x50\x19\x81\x55\x8a\x69\x8e\xdf\x66\xb4\x81\x33\x75\x91\x6b\x20\x66\x69\x90\xf5\x4e\x32\x73\xea\x69\x3f\x76\x87\x70\x7d\x7d\x3a\x61\x48\x86\x07\x99\xff\x59\xc9\x78\x32\x78\x15\x90\x7f\x80\xa1\x5c\x3f\x66\xa2\x94\x18\x6d\x44\x5e\x55\x58\x54\x7b\x95\x8d\xe1\x4e\xa1\x8c\x5a\x81\xe8\x89\xe6\x96\x70\x52\x63\x74\xf6\x9a\x5a\x60\x12\x52\x0a\x74\x34\x98\x01\x90\x7a\x55\x04\x79\x56\x52\x30\x54\xb2\x8a\x34\x96\xa3\x4f\xf3\x92\x83\x91\xe3\x7d\x39\x96\x88\x4f\x51\x7d\x61\x5d\xba\x9b\xae\x5f\x80\x79\x5d\x85\x97\x8d\xa3\x7c\x60\x5c\x0a\x75\x65\x85\xa9\x63\xd6\x9e\x97\x7d\x22\x53\x75\x9a\xea\x90\x42\x6b\x3d\x7d\x0b\x63\x92\x80\xaa\x7d\xe9\x9f\x3b\x99\xc6\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x78\x67\x31\x55\x31\x63\x98\x78\x25\x5c\xb3\x5d\xe1\x92\xad\x98\xfd\x98\x10\x6c\xe3\x6b\x64\x53\x21\x6b\x53\x5e\x8f\x7a\xe5\x50\x2b\x6e\x56\x62\xbd\x82\x76\x6a\x9c\x4e\x18\x57\xf7\x75\x2b\x7c\x97\x82\xeb\x98\x02\x81\x1a\x73\xcd\x8f\x9b\x5c\x0b\x63\xe1\x73\x72\x81\x50\x80\xe1\x5b\x99\x76\xd7\x62\x91\x65\xec\x8a\x3a\x59\x47\x65\xe8\x6e\x7e\x66\x96\x55\xab\x8f\x09\x92\xed\x93\x96\x4e\xee\x75\x5c\x6f\x38\x8f\x9e\x79\x81\x5c\x01\x62\xe0\x9b\xe8\x91\xc8\x62\x76\x65\xcb\x8e\x0f\x8b\x21\x69\x9b\x62\x16", /* 4d80 */ "\x5a\x92\x90\xb8\x50\xda\x79\xdf\x6c\x41\x52\x70\x91\x75\x8b\x39\x68\x5d\x58\x75\x81\x9c\x5b\x9c\x8a\x89\x8a\x72\x9d\x8f\x63\x77\x59\x74\x8a\xa4\x52\xb1\x69\x62\x5c\x48\x9c\xe9\x67\x3a\x75\xb2\x6d\x1e\x4f\x0d\x7e\x6d\x7b\x48\x7f\xcc\x65\xe6\x59\xa5\x79\xe9\x62\x12\x6e\xde\x77\x0b\x8c\xa7\x65\xbc\x88\x5d\x6a\xdb\x5c\x4a\x80\x74\x90\x84\x8e\xcc\x65\xd7\x57\xf9\x70\x8e\x6f\x06\x5e\x7c\x77\xac\x4f\xf5\x59\x49\x81\xed\x9b\x45\x7f\xfc\x81\x78\x69\xfd\x6c\xca\x69\xc7\x79\xd2\x8b\x1d\x9e\xd9\x81\xd3\x7a\x3c\x79\x68\x6f\x5c\x63\xb2\x8d\xdd\x63\x83\x6e\x9c\x5e\x33\x61\xf8\x76\xbf\x64\x2c\x7d\xb4\x62\x47\x64\x58\x68\x16\x5f\x69\x90\x22\x7a\x1a\x82\xb9\x70\xc8\x9a\x12\x61\x63\x6f\xef\x53\xeb\x9d\x3b\x62\xfe\x60\xa0\x95\x91\x6d\x99\x61\x62\x92\x98\x63\x5c\x97\x07\x89\x72\x68\x3d\x51\xe1\x9b\x54\x60\x8c\x5b\x22\x99\xc4\x71\x26\x8a\x73\x97\x1c\x73\x96\x67\xd4\x60\xa3\x4e\x11\x4e\xf0\x8c\xdb\x8c\xb0\x79\x12\x97\x74\x89\x86\x51\x46\x57\xdc\x99\xd0\x80\xc3\x83\x38\x78\xa7\x86\xcd\x7f\x85\x50\x49\x82\x47\x69\x0b\x7c\x4d\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x5f\x26\x6e\x25\x68\x81\x93\x75\x5d\xfd\x53\x47\x97\x27\x64\x3a\x75\xc7\x6f\xa4\x73\xa9\x77\xe9\x94\x51\x8b\x5c\x80\x8c\x67\x4e\x4e\xad\x58\x2f\x75\x73\x8e\xd2\x6c\xe5\x93\x20\x8f\xf7\x7d\x33\x72\xc2\x82\x17\x74\x22\x82\xc5\x9a\x30\x77\x3a\x5f\x84\x96\x73\x64\xad\x92\x0d\x74\xdc\x60\xc7\x86\xed\x4f\xfa\x52\xa3\x6a\x3a\x77\x20\x53\x20\x61\xb6\x56\x74\x87\x76\x6c\xbf\x50\x5c\x60\x2a\x84\x66\x6b\x96\x6d\xbc\x97\xd3\x96\x8f\x68\x76\x60\xd1\x53\x78\x64\xa4\x51\xa0\x91\x54\x5d\xf4\x62\x9e\x5e\x63", /* 4e80 */ "\x92\x9a\x76\x93\x6c\x5a\x65\x97\x50\xe7\x7c\x82\x5f\x6b\x6c\xe1\x5f\x6c\x5a\xc1\x6f\x2c\x85\x2d\x64\x42\x57\x50\x58\xc7\x8c\xfc\x8a\x5e\x7a\x7f\x68\x9d\x7e\x26\x7a\x40\x73\x44\x8a\xeb\x4f\xd7\x7a\x63\x80\x36\x7d\xef\x80\xc6\x8a\xed\x73\x1f\x8f\xea\x4f\x0e\x75\x8b\x51\x8a\x67\x34\x5f\xd9\x61\xc7\x65\xaf\x9c\xf3\x5e\xca\x92\x62\x68\xdf\x6c\xb8\x80\xf4\x57\xcb\x6c\x99\x96\xa0\x5b\x64\x58\xf1\x68\xc4\x54\x10\x98\x30\x8a\x87\x4e\x5e\x61\x67\x9b\xab\x90\xaa\x55\xb0\x82\xbd\x59\x6a\x66\xf3\x82\x99\x58\x93\x71\x9f\x62\x84\x67\xd1\x90\x63\x5a\xcc\x6c\x57\x7c\xe7\x58\x51\x64\xb2\x58\xca\x83\x0e\x59\x68\x53\x02\x5a\x46\x87\x02\x60\x65\x72\xd9\x89\xa7\x66\x89\x66\xf9\x5d\x6f\x5b\xb0\x96\xbc\x63\x6e\x60\xdc\x79\x48\x51\xdd\x86\x06\x5e\xc9\x75\x54\x59\x6e\x6b\x04\x4f\x43\x7b\x94\x67\xda\x62\xdd\x62\x8a\x97\x1e\x62\xed\x6e\xc5\x50\x8d\x67\xb6\x80\xe4\x9e\xbf\x5e\xb5\x63\x8c\x85\xcd\x98\x67\x52\xc5\x60\x16\x68\xcb\x61\xd0\x57\x51\x8f\x29\x5f\xaa\x81\xa8\x7d\x62\x71\xc8\x54\xc0\x69\xcc\x6b\x3e\x65\xac\x63\xc3\x4f\x46\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x1b\x6b\x86\x88\xf8\x52\x03\x73\x2e\x66\x87\x7d\x17\x57\xf4\x57\x0f\x61\x8e\x97\x0a\x7c\x3f\x8b\x00\x78\x81\x8c\xe0\x54\x8b\x7b\x87\x74\x5b\x7c\x11\x88\x70\x53\x98\x54\x48\x6c\xf3\x6f\x22\x53\xf6\x88\xb4\x53\x01\x7a\x6b\x86\x95\x58\x6b\x5d\x29\x88\xc2\x62\xd2\x4e\x1e\x50\x36\x96\xc0\x73\x63\x8a\x3b\x51\x76\x71\x99\x7f\xe0\x88\x88\x7e\x1e\x4e\x4f\x84\xcb\x6f\x2b\x58\x59\x93\x6c\x53\xe9\x86\x5a\x91\x49\x86\xef\x5e\x06\x55\x07\x90\x2e\x67\x95\x84\x6c\x5b\xa5\x82\xa5\x84\x31\x6d\x8c\x63\xfa\x4e\xa5", /* 4f80 */ "\x51\xc6\x63\x28\x7f\x70\x5b\x5f\x5d\xbd\x99\xc8\x53\xec\x79\x85\x8a\x54\x79\x62\x88\xdf\x5b\x09\x4f\xb5\x4f\x91\x9b\x8e\x51\x92\x96\xf0\x6d\xaf\x62\x2f\x84\x90\x8c\xdc\x50\x75\x5c\xe0\x4e\x14\x4f\x83\x7c\x54\x84\xd1\x77\xb3\x8a\xee\x5c\xe8\x62\xf6\x66\x3b\x8a\x93\x85\x26\x8a\x95\x65\xfa\x67\x14\x53\xd4\x62\xab\x8c\xe6\x88\xf3\x5b\xe7\x86\x8a\x66\x8e\x58\x2a\x61\x70\x69\x6f\x9f\x13\x7a\x92\x78\x93\x6a\x7f\x90\x17\x92\x66\x7d\x10\x7b\xc7\x6e\xf4\x82\x1c\x5c\x3d\x62\xcd\x85\xc1\x6f\x02\x6e\x67\x66\x91\x85\xa6\x63\x7a\x82\x1b\x4f\x8d\x50\x91\x8a\x02\x62\xec\x9b\xc9\x7a\x3d\x7c\x9b\x50\xc5\x90\x19\x70\x8a\x7c\x8b\x64\xec\x66\x5f\x65\x62\x73\x2b\x53\x39\x67\xa0\x55\xa7\x6d\x2a\x7a\x3f\x64\xe6\x79\xa7\x67\xd8\x7b\x26\x96\xbb\x63\x11\x72\xa0\x5c\x6f\x70\x26\x97\xee\x60\xdf\x8a\xfe\x8b\x04\x84\x94\x9b\xd6\x82\xaf\x93\x2c\x66\x06\x96\x40\x5b\xc2\x86\xc7\x79\x49\x80\x17\x69\x19\x70\x92\x96\x3b\x7c\x7e\x59\xd3\x5b\x5c\x7d\x1b\x91\xd8\x6a\x80\x85\xe9\x69\x05\x6c\x93\x50\x2d\x4e\xa6\x7f\xc1\x61\xa4\x8c\xca\x96\x65\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\xd1\x53\xf1\x59\x8a\x8e\xac\x62\xd8\x68\x67\x71\xd5\x7b\x67\x50\x4f\x67\xd0\x82\xd1\x97\x8d\x74\x8b\x80\xba\x73\x36\x51\x4e\x81\x05\x90\xca\x58\x4a\x67\xfe\x6f\xf1\x5f\xfd\x76\xc6\x9a\x0e\x50\x7d\x96\x94\x5e\xf7\x7b\xb8\x90\x4d\x6c\x4e\x85\xfb\x81\x9d\x67\xaf\x56\x4c\x56\x06\x8c\x8c\x56\xda\x73\xed\x8c\xc4\x8f\xc5\x96\xf6\x6c\x50\x89\x44\x8f\x3f\x7d\x5e\x60\xe8\x72\xfc\x7d\x9c\x84\x63\x5c\xfb\x54\x46\x5d\x16\x6c\xa1\x81\xb3\x58\xfa\x5b\xb4\x81\x08\x54\x1f\x8c\xbc\x61\x82\x78\xa9\x6f\xe1\x91\xac", /* 5080 */ "\x76\xf2\x60\x20\x76\xfe\x84\xc9\x7f\x36\x4e\xc7\x75\x5d\x7a\x17\x84\xec\x75\xf4\x4f\x3a\x67\x6d\x74\x60\x62\xf3\x6f\x20\x79\xe4\x87\xf9\x60\x94\x62\x34\x66\xab\x82\x0c\x84\x99\x72\x3a\x5f\xcc\x61\x09\x70\xcf\x72\x61\x7a\x50\x50\x98\x9a\xed\x5d\x69\x60\x1c\x66\x67\x99\xb4\x5e\x7b\x64\x3e\x58\x30\x53\xc9\x7a\x9f\x99\x0c\x9b\x42\x8f\x5f\x7a\xae\x5b\x9b\x68\xa2\x62\x49\x79\x84\x9d\xfa\x54\x51\x93\x2f\x8a\xc4\x5f\x90\x8d\xf3\x5a\x2f\x80\xde\x6d\x29\x7a\x4f\x84\xbc\x9d\x2b\x90\x10\x6d\x38\x91\x6a\x6f\xc1\x99\x05\x6b\xbb\x5e\xb6\x91\xb8\x50\x76\x6f\x0f\x4e\x19\x54\x0f\x96\x75\x6c\x72\x51\xb4\x56\x31\x9f\x20\x66\xa6\x5f\x0a\x75\xab\x51\xf8\x67\x4f\x8d\xf5\x6c\x70\x8a\x6b\x75\x7f\x5c\xac\x68\x41\x8c\xd3\x9b\xdb\x84\x75\x68\x93\x84\x0c\x72\xdb\x75\x77\x85\x68\x78\x3a\x84\x7a\x5f\x10\x83\x1c\x68\x13\x6e\x1a\x9d\xaf\x51\xf9\x79\x80\x4e\x99\x5e\xe3\x90\x8a\x80\xaf\x59\xa8\x77\xdb\x8d\x74\x8a\x1f\x67\x3d\x53\x3f\x8a\x0a\x56\x18\x67\x56\x53\xd9\x4f\x10\x74\x09\x5a\x41\x4f\xf8\x79\xb0\x98\x38\x8e\x2a\x9d\x60\x8f\x44\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xa5\x75\xbe\x90\x6d\x86\x7b\x60\xbc\x51\xb6\x59\x37\x7d\x2f\x91\x6c\x69\xae\x7c\xe0\x79\x2a\x5d\x14\x64\xc1\x58\xec\x58\x9c\x8d\x66\x66\xd9\x61\xf2\x91\x2d\x6e\x58\x94\x35\x96\x5b\x72\x72\x5f\x6a\x5e\x9a\x8f\x1b\x5b\x95\x5c\x39\x90\x13\x83\x4f\x7c\xce\x62\x0a\x90\xed\x69\x1b\x6e\x15\x65\xdb\x66\xfe\x4e\x9f\x55\xaa\x7a\x83\x83\xe9\x8b\x83\x84\x6d\x83\xf0\x7f\x50\x91\x8d\x91\x90\x75\x8e\x95\xa5\x81\xe7\x75\xe2\x61\xa9\x8a\x50\x95\xb2\x53\xa8\x59\xf6\x98\x13\x78\x91\x7c\x17\x6b\x3a\x57\xe0\x62\x0e", /* 5180 */ "\x83\xd6\x8a\xd2\x75\xd4\x92\x7e\x59\xdc\x52\x89\x90\x87\x6f\xfe\x74\x73\x5c\x09\x9d\x6c\x84\xfc\x7c\xdf\x7b\xad\x8a\x6e\x59\x4e\x56\xca\x81\x9a\x79\x47\x66\x36\x53\xe1\x78\x87\x58\xcc\x93\x97\x6e\x13\x52\x56\x82\x8b\x9e\x9f\x95\x83\x65\x8c\x9e\x93\x73\x45\x6e\x26\x9d\x07\x59\x83\x7d\xac\x96\xc1\x61\xbe\x67\x62\x9e\xce\x90\xa8\x91\x87\x9f\x0e\x7c\x38\x51\xf1\x85\x99\x52\x4c\x54\x0e\x79\x01\x65\x5e\x66\x68\x5c\xe1\x75\x66\x76\xc8\x86\x79\x53\x1d\x55\x06\x79\x26\x89\x12\x77\xef\x7c\xc0\x57\x0b\x51\x5c\x7e\x8a\x53\x5c\x8a\x60\x65\xa7\x87\x66\x57\x66\x6a\xe8\x87\xfb\x5e\x16\x7a\xea\x8d\x73\x77\x1e\x73\x7a\x66\xe0\x94\x10\x81\x6b\x7b\x08\x91\xfc\x57\x37\x6f\xe4\x85\x6a\x7e\x55\x99\x57\x87\xba\x69\x4a\x81\x8f\x5e\xff\x89\x1c\x72\xd0\x98\x46\x9e\xdb\x8d\x99\x5d\xd6\x62\xb9\x64\xab\x4f\x76\x61\x3f\x68\xaf\x5f\x14\x80\x0c\x92\xf8\x7b\xc1\x52\xfe\x66\x4f\x91\x77\x51\xf6\x97\xa0\x83\x9e\x64\x7a\x9c\x3a\x68\x05\x7c\x4f\x68\x5f\x9b\x6f\x9f\x4b\x7f\xfb\x93\x48\x4f\xf6\x9e\x92\x91\xb1\x96\xdb\x5b\xe6\x6c\xcc\x7c\xfe\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x53\x68\x22\x66\xb9\x5b\xd4\x98\xf4\x8a\xe6\x81\x54\x78\x27\x74\xbd\x6e\xd3\x92\x88\x5a\x20\x5b\x8b\x86\xf8\x76\x0d\x86\x5c\x66\x41\x91\xc9\x55\x89\x7a\x4e\x59\xe5\x60\x42\x93\x2b\x5b\x5a\x84\x9c\x5c\x91\x96\xcd\x62\xd9\x67\x5c\x67\x87\x5e\x7d\x86\x50\x9e\xb9\x5c\xb1\x80\xce\x7a\x00\x8a\xbc\x57\x00\x80\x96\x7d\x72\x92\x11\x80\x98\x90\x7c\x77\x61\x87\x37\x90\x75\x81\x7a\x7c\x3e\x6e\xa2\x96\x5e\x7e\x90\x72\xd7\x58\xfd\x60\xb3\x97\x86\x7e\x88\x58\x7e\x6e\x20\x84\xdc\x69\x61\x77\xad\x51\x97\x65\x2a", /* 5280 */ "\x67\x77\x5d\xcd\x61\x01\x93\x2e\x59\x54\x63\x67\x79\x8d\x7a\xff\x80\xd6\x58\xb3\x61\x68\x6a\xc3\x74\x83\x9b\x92\x66\x0a\x64\x2d\x51\x18\x67\x63\x80\x9b\x9c\x10\x4f\xc9\x69\x53\x7a\x1c\x52\xff\x60\x55\x76\x8e\x81\x7f\x56\x42\x5f\x6d\x71\x94\x70\xbb\x74\x36\x80\x00\x88\x1f\x55\xda\x74\x35\x76\x90\x96\xeb\x66\xdd\x75\x1c\x63\x3d\x6e\xc9\x7c\x64\x7c\xa5\x6d\x35\x93\x5c\x70\x27\x5e\x25\x70\x1d\x54\xbd\x61\x1a\x69\x73\x6c\x6a\x55\x9a\x6d\x19\x96\xcc\x5b\xe1\x59\xfb\x69\x7c\x91\x4c\x77\x09\x85\x00\x7a\x46\x78\x72\x92\xe4\x8c\xed\x7c\xfa\x9d\x1b\x81\x4e\x9a\xc4\x68\xa0\x6d\xcb\x59\x18\x84\x0a\x56\x29\x9b\x41\x68\x97\x70\xb3\x97\x71\x94\x19\x67\xa2\x68\x02\x78\x95\x68\xa7\x50\xd6\x80\xb1\x5e\xf8\x82\xd4\x79\x7a\x67\xca\x7e\x61\x69\xcd\x51\xc4\x72\x3d\x68\x29\x99\xb3\x5f\x3c\x8f\x61\x68\x2b\x61\x55\x65\x91\x8f\xb1\x7e\x1b\x97\x98\x99\x52\x88\x77\x5b\x2c\x66\x31\x4f\xe0\x69\x39\x6a\xfb\x5b\xb5\x7a\xc8\x50\x26\x59\x44\x90\x59\x7b\x25\x7b\x4f\x8e\x74\x85\x43\x58\x58\x8b\x0e\x50\x39\x86\x54\x97\xf6\x75\x69\x72\xf8\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf7\x9d\x89\x50\x16\x51\xcc\x62\xcc\x91\xc6\x87\x55\x64\x9a\x88\xf4\x91\xe6\x68\x54\x69\x5a\x6c\x40\x7b\x6c\x67\x41\x77\xd7\x88\x23\x53\x84\x8e\xc0\x72\x80\x8c\x6b\x78\x8d\x71\x65\x82\x07\x68\xb1\x8d\x04\x90\x77\x70\x1e\x8f\xe6\x81\x0a\x81\xbf\x89\xdc\x68\xb3\x6a\xdf\x92\xea\x95\xc7\x79\x57\x7a\x20\x53\xa9\x8e\x5f\x78\x6f\x79\xb9\x5f\x27\x5e\xd6\x68\x53\x93\xac\x91\x9c\x69\x1a\x58\x06\x64\xb0\x7e\x6b\x7d\x8f\x68\xf2\x6e\xa5\x82\xdb\x91\x92\x52\x43\x8e\xb0\x90\x81\x72\x1b\x7d\xcb\x76\x56\x59\xac", /* 5380 */ "\x6f\xe0\x8b\x28\x80\xa2\x55\x44\x60\x70\x5f\x4a\x68\xc8\x63\x3a\x94\x38\x9b\x4f\x81\xe5\x6a\x17\x70\xdd\x69\xa7\x61\x4c\x92\x0e\x93\x10\x9b\xad\x52\xd7\x92\x5e\x92\xf9\x59\x93\x76\x96\x66\xfb\x57\x69\x73\xca\x76\x78\x6a\x1f\x7e\x9c\x98\x11\x8c\xd1\x58\x40\x63\x49\x87\x1c\x62\xd0\x60\xb4\x6b\x89\x86\xee\x57\x64\x58\x1d\x85\x49\x72\x35\x76\x52\x98\x3b\x82\x37\x53\x51\x5c\x24\x59\xbe\x58\x15\x90\x1d\x69\xb4\x83\x4a\x9e\xa9\x97\x6b\x80\x86\x53\xad\x60\x68\x4f\xae\x76\xc3\x6a\x05\x68\x9b\x93\x7e\x99\xd5\x91\xc7\x5c\x16\x58\x5e\x61\xa7\x96\x99\x4f\xdf\x82\x78\x9c\x52\x5f\x45\x61\x08\x7c\x8d\x80\x6f\x5d\xf7\x8d\x6b\x57\xb0\x98\xe2\x57\x03\x79\xbf\x59\x96\x79\x41\x54\x0a\x83\xdf\x9c\x39\x52\xd2\x6b\xd8\x86\xcb\x4e\xc0\x9a\x52\x53\x66\x80\x06\x73\x37\x64\x92\x8f\xed\x5a\xc9\x54\x20\x53\x7f\x4f\xaf\x80\x7e\x54\x3b\x75\x15\x7b\x18\x87\xec\x54\xb3\x70\x4c\x89\x97\x6c\xab\x85\xfa\x71\x30\x69\x6e\x93\x28\x74\x5a\x59\xd1\x6e\x5b\x61\x7e\x53\xe2\x83\x17\x76\xe7\x85\x23\x85\xaf\x69\x25\x5c\x60\x72\x59\x75\xd5\x8b\x90\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x07\x82\xad\x5c\x5b\x7b\xed\x97\x84\x6f\x70\x76\x4c\x88\xb7\x92\xd2\x4f\x36\x5e\xfe\x90\x61\x88\xe1\x84\x71\x71\x1a\x6d\x1b\x80\xb4\x74\xe2\x74\x33\x5a\x7f\x90\x5c\x98\x0c\x53\x19\x90\x6e\x6b\xb4\x85\xaa\x78\x97\x7a\xfa\x6a\xae\x89\x10\x95\x8f\x62\x0c\x4f\x3d\x4f\x7c\x79\xbe\x9d\xd7\x4e\xd4\x57\xa2\x51\xa5\x69\x00\x60\x89\x70\x7c\x7a\xe3\x89\x56\x93\xa7\x9c\x2d\x51\x12\x52\xfa\x7c\xca\x60\xf9\x70\x78\x81\xc6\x55\x9d\x69\x91\x96\xc9\x55\x3e\x80\x5a\x83\x04\x83\x32\x54\xfa\x56\x99\x8f\xbf\x56\x34", /* 5480 */ "\x67\x60\x52\x65\x84\x0e\x5e\x5f\x7b\x65\x90\x35\x83\x87\x6b\x4e\x58\xbe\x63\x09\x72\x7d\x97\xad\x69\xd0\x54\x6a\x98\x4e\x63\x2b\x71\x4e\x85\x57\x7c\xde\x63\x72\x68\xf9\x75\x11\x86\x02\x6e\xba\x5a\x3c\x7a\x84\x85\x1a\x95\xa4\x59\xd0\x60\xda\x51\xea\x5a\x29\x71\x69\x6f\x15\x69\x6b\x64\x14\x76\x26\x4e\x4e\x7d\xbb\x69\x34\x85\x21\x8f\xfa\x93\x54\x9c\x3b\x5f\x17\x5e\xd3\x82\x58\x89\x5f\x82\xe7\x52\xc3\x5c\x51\x83\xab\x78\x26\x79\xe1\x7f\xf0\x62\x6e\x60\xf0\x5c\xa8\x6f\x97\x71\xa8\x99\x09\x51\x32\x5e\x37\x5f\x04\x63\x7b\x67\x53\x68\xd7\x66\x52\x9c\xf6\x88\xb0\x52\xab\x4f\xc4\x4e\x3c\x67\xb3\x7c\x1e\x7f\x4d\x8a\x23\x64\x51\x71\xe6\x65\xa4\x6f\x09\x85\x3d\x50\x72\x7d\xba\x55\x5e\x7b\x04\x72\xfd\x6c\xd3\x84\x22\x62\x1f\x50\xad\x82\x35\x87\x18\x59\x19\x60\x28\x67\x7c\x6f\x23\x75\xb9\x69\x5c\x52\x0e\x80\x18\x8b\x01\x71\xed\x57\x13\x66\x0f\x83\xeb\x71\x64\x7d\x9b\x56\x17\x7d\x7d\x8f\x4d\x93\x18\x85\x69\x5d\x17\x67\x8c\x67\xde\x87\xc7\x79\xae\x58\x35\x84\x04\x90\x41\x7f\xd4\x6f\x51\x8a\x63\x9d\x08\x67\x0f\x93\x9a\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xac\x60\x2f\x64\xe2\x60\x8d\x96\xb7\x63\x57\x84\x61\x91\x4b\x75\xd8\x60\xe7\x99\x13\x9c\x57\x59\x84\x6d\xeb\x5e\x96\x70\x06\x9b\xf0\x58\xbb\x79\xb1\x60\xb6\x63\x3f\x5b\xf5\x98\x12\x55\x8b\x82\xd3\x51\x47\x61\x90\x79\x53\x79\xbd\x6c\x5d\x9e\xba\x9c\x48\x8d\xa8\x5e\xe0\x7d\x43\x5e\xfc\x85\x4e\x8c\xe4\x5a\xe1\x54\xe8\x50\x23\x52\xbe\x7d\xec\x85\x11\x66\x66\x6c\x3e\x72\x4c\x8a\xdc\x9c\x0d\x77\xa5\x8b\x02\x8d\x05\x6f\x11\x98\x34\x97\xfb\x50\xfb\x7f\x75\x5a\x03\x85\x13\x4f\xb6\x63\x4c\x9d\x61\x80\x8b", /* 5580 */ "\x52\x94\x65\xa1\x56\x7a\x59\x57\x8d\x0b\x6a\x35\x6a\xd3\x70\xf9\x86\x5e\x6f\xb1\x51\xe7\x7f\xeb\x59\xea\x5e\x87\x6b\x6a\x75\x4f\x71\x7d\x91\x4e\x7d\x2c\x8c\x79\x60\x62\x62\x1a\x7f\xa8\x5f\x1b\x6c\x8c\x86\xfe\x75\x62\x7b\x86\x9a\xb8\x66\x27\x7a\xba\x84\x4e\x6f\x81\x8b\x2c\x86\xa4\x6f\xeb\x7b\x8b\x7f\x77\x8f\x2f\x8e\x44\x7e\x23\x4e\x4d\x79\xa6\x8a\xfa\x90\x3c\x50\xd1\x9e\xcd\x5e\xdf\x75\x8f\x63\x1f\x53\xdb\x99\x10\x82\x6e\x62\xf7\x68\xfa\x72\x5d\x80\x3d\x58\xd5\x5c\x4d\x86\xd9\x54\x0b\x88\x05\x92\xf2\x92\x37\x5c\x62\x98\x5b\x86\xe4\x96\x6a\x72\x62\x69\x55\x6c\xd7\x69\x94\x9c\x2f\x77\xe7\x68\xc9\x8d\xe8\x6d\x6c\x67\xc1\x9b\xaa\x61\x9a\x63\xa9\x70\x15\x93\x06\x93\x4d\x6a\x61\x62\x58\x52\x83\x75\x25\x56\x87\x6c\x83\x68\x34\x64\x9e\x4e\x9b\x72\x52\x59\xe6\x8f\xc2\x5f\xbd\x6d\xd8\x85\xf7\x8a\x51\x98\x17\x99\xc1\x63\xa0\x7c\x81\x5b\x30\x81\x39\x54\x03\x7e\x82\x81\x06\x53\x2a\x6a\x8e\x7f\x6b\x54\xe9\x56\x78\x8a\xb9\x67\x15\x5b\xd3\x64\x78\x64\xfe\x6b\x1d\x8c\xc2\x51\xcb\x7e\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x0c\x4e\x10\x4e\x15\x4e\x28\x4e\x2a\x4e\x31\x4e\x36\x4e\x3f\x4e\x42\x4e\x56\x4e\x58\x4e\x62\x4e\x82\x4e\x85\x4e\x8a\x4e\x8e\x5f\x0d\x4e\x9e\x4e\xa0\x4e\xa2\x4e\xb0\x4e\xb3\x4e\xb6\x4e\xce\x4e\xcd\x4e\xc4\x4e\xc6\x4e\xc2\x4e\xe1\x4e\xd7\x4e\xde\x4e\xed\x4e\xdf\x4e\xfc\x4f\x09\x4f\x1c\x4f\x00\x4f\x03\x4f\x5a\x4f\x30\x4f\x5d\x4f\x39\x4f\x57\x4f\x47\x4f\x5e\x4f\x56\x4f\x5b\x4f\x92\x4f\x8a\x4f\x88\x4f\x8f\x4f\x9a\x4f\xad\x4f\x98\x4f\x7b\x4f\xab\x4f\x69\x4f\x70\x4f\x94\x4f\x6f\x4f\x86\x4f\x96\x4f\xd4", /* 5680 */ "\x4f\xce\x4f\xd8\x4f\xdb\x4f\xd1\x4f\xda\x4f\xd0\x4f\xcd\x4f\xe4\x4f\xe5\x50\x1a\x50\x40\x50\x28\x50\x14\x50\x2a\x50\x25\x50\x05\x50\x21\x50\x22\x50\x29\x50\x2c\x4f\xff\x4f\xfe\x4f\xef\x50\x11\x50\x1e\x50\x06\x50\x43\x50\x47\x50\x55\x50\x50\x50\x48\x50\x5a\x50\x56\x50\x0f\x50\x46\x50\x70\x50\x42\x50\x6c\x50\x78\x50\x80\x50\x94\x50\x9a\x50\x85\x50\xb4\x67\x03\x50\xb2\x50\xc9\x50\xca\x50\xb3\x50\xc2\x50\xf4\x50\xde\x50\xe5\x50\xd8\x50\xed\x50\xe3\x50\xee\x50\xf9\x50\xf5\x51\x09\x51\x01\x51\x02\x51\x1a\x51\x15\x51\x14\x51\x16\x51\x21\x51\x3a\x51\x37\x51\x3c\x51\x3b\x51\x3f\x51\x40\x51\x4a\x51\x4c\x51\x52\x51\x54\x51\x62\x51\x64\x51\x69\x51\x6a\x51\x6e\x51\x80\x51\x82\x56\xd8\x51\x8c\x51\x89\x51\x8f\x51\x91\x51\x93\x51\x95\x51\x96\x51\x9d\x51\xa4\x51\xa6\x51\xa2\x51\xa9\x51\xaa\x51\xab\x51\xb3\x51\xb1\x51\xb2\x51\xb0\x51\xb5\x51\xbe\x51\xbd\x51\xc5\x51\xc9\x51\xdb\x51\xe0\x51\xe9\x51\xec\x51\xed\x51\xf0\x51\xf5\x51\xfe\x52\x04\x52\x0b\x52\x14\x52\x15\x52\x27\x52\x2a\x52\x2e\x52\x33\x52\x39\x52\x44\x52\x4b\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x4f\x52\x5e\x52\x54\x52\x71\x52\x6a\x52\x73\x52\x74\x52\x69\x52\x7f\x52\x7d\x52\x8d\x52\x88\x52\x92\x52\x91\x52\x9c\x52\xa6\x52\xac\x52\xad\x52\xbc\x52\xb5\x52\xc1\x52\xc0\x52\xcd\x52\xdb\x52\xde\x52\xe3\x52\xe6\x52\xe0\x52\xf3\x52\xf5\x52\xf8\x52\xf9\x53\x00\x53\x06\x53\x07\x53\x08\x75\x38\x53\x0d\x53\x10\x53\x0f\x53\x15\x53\x1a\x53\x24\x53\x23\x53\x2f\x53\x31\x53\x33\x53\x38\x53\x40\x53\x45\x53\x46\x53\x49\x4e\x17\x53\x4d\x51\xd6\x82\x09\x53\x5e\x53\x69\x53\x6e\x53\x72\x53\x77\x53\x7b\x53\x82", /* 5780 */ "\x53\x93\x53\x96\x53\xa0\x53\xa6\x53\xa5\x53\xae\x53\xb0\x53\xb2\x53\xb6\x53\xc3\x7c\x12\x53\xdd\x53\xdf\x66\xfc\xfa\x0e\x71\xee\x53\xee\x53\xe8\x53\xed\x53\xfa\x54\x01\x54\x3d\x54\x40\x54\x2c\x54\x2d\x54\x3c\x54\x2e\x54\x36\x54\x29\x54\x1d\x54\x4e\x54\x8f\x54\x75\x54\x8e\x54\x5f\x54\x71\x54\x77\x54\x70\x54\x92\x54\x7b\x54\x80\x54\x9c\x54\x76\x54\x84\x54\x90\x54\x86\x54\x8a\x54\xc7\x54\xbc\x54\xaf\x54\xa2\x54\xb8\x54\xa5\x54\xac\x54\xc4\x54\xd8\x54\xc8\x54\xa8\x54\xab\x54\xc2\x54\xa4\x54\xa9\x54\xbe\x54\xe5\x54\xff\x54\xe6\x55\x0f\x55\x14\x54\xfd\x54\xee\x54\xed\x54\xe2\x55\x39\x55\x40\x55\x63\x55\x4c\x55\x2e\x55\x5c\x55\x45\x55\x56\x55\x57\x55\x38\x55\x33\x55\x5d\x55\x99\x55\x80\x55\x8a\x55\x9f\x55\x7b\x55\x7e\x55\x98\x55\x9e\x55\xae\x55\x7c\x55\x86\x55\x83\x55\xa9\x55\x87\x55\xa8\x55\xc5\x55\xdf\x55\xc4\x55\xdc\x55\xe4\x55\xd4\x55\xf9\x56\x14\x55\xf7\x56\x16\x55\xfe\x55\xfd\x56\x1b\x56\x4e\x56\x50\x56\x36\x56\x32\x56\x38\x56\x6b\x56\x64\x56\x86\x56\x2f\x56\x6c\x56\x6a\x71\xdf\x56\x94\x56\x8f\x56\x80\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8a\x56\xa0\x56\xa5\x56\xae\x56\xb6\x56\xb4\x56\xc8\x56\xc2\x56\xbc\x56\xc1\x56\xc3\x56\xc0\x56\xce\x56\xd3\x56\xd1\x56\xd7\x56\xee\x56\xf9\x56\xff\x57\x04\x57\x09\x57\x08\x57\x0d\x55\xc7\x57\x18\x57\x16\x57\x1c\x57\x26\x57\x38\x57\x4e\x57\x3b\x57\x59\x57\x40\x57\x4f\x57\x65\x57\x88\x57\x61\x57\x7f\x57\x89\x57\x93\x57\xa0\x57\xa4\x57\xb3\x57\xac\x57\xaa\x57\xc3\x57\xc6\x57\xc8\x57\xc0\x57\xd4\x57\xc7\x57\xd2\x57\xd3\x57\xd6\xfa\x0f\x58\x0a\x57\xe3\x58\x0b\x58\x19\x58\x21\x58\x4b\x58\x62\x6b\xc0", /* 5880 */ "\x58\x3d\x58\x52\xfa\x10\x58\x70\x58\x79\x58\x85\x58\x72\x58\x9f\x58\xab\x58\xb8\x58\x9e\x58\xae\x58\xb2\x58\xb9\x58\xba\x58\xc5\x58\xd3\x58\xd1\x58\xd7\x58\xd9\x58\xd8\x58\xde\x58\xdc\x58\xdf\x58\xe4\x58\xe5\x58\xef\x58\xf7\x58\xf9\x58\xfb\x58\xfc\x59\x02\x59\x0a\x59\x0b\x59\x10\x59\x1b\x68\xa6\x59\x25\x59\x2c\x59\x2d\x59\x32\x59\x38\x59\x3e\x59\x55\x59\x50\x59\x53\x59\x5a\x59\x58\x59\x5b\x59\x5d\x59\x63\x59\x62\x59\x60\x59\x67\x59\x6c\x59\x69\x59\x78\x59\x81\x59\x8d\x59\x9b\x59\x9d\x59\xa3\x59\xa4\x59\xb2\x59\xba\x59\xc6\x59\xe8\x59\xd9\x59\xda\x5a\x25\x5a\x1f\x5a\x11\x5a\x1c\x5a\x1a\x5a\x09\x5a\x40\x5a\x6c\x5a\x49\x5a\x35\x5a\x36\x5a\x62\x5a\x6a\x5a\x9a\x5a\xbc\x5a\xbe\x5a\xd0\x5a\xcb\x5a\xc2\x5a\xbd\x5a\xe3\x5a\xd7\x5a\xe6\x5a\xe9\x5a\xd6\x5a\xfa\x5a\xfb\x5b\x0c\x5b\x0b\x5b\x16\x5b\x32\x5b\x2a\x5b\x36\x5b\x3e\x5b\x43\x5b\x45\x5b\x40\x5b\x51\x5b\x55\x5b\x56\x65\x88\x5b\x5b\x5b\x65\x5b\x69\x5b\x70\x5b\x73\x5b\x75\x5b\x78\x5b\x7a\x5b\x80\x5b\x83\x5b\xa6\x5b\xb8\x5b\xc3\x5b\xc7\x5b\xc0\x5b\xc9\x75\x2f\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd0\x5b\xd8\x5b\xde\x5b\xec\x5b\xe4\x5b\xe2\x5b\xe5\x5b\xeb\x5b\xf0\x5b\xf3\x5b\xf6\x5c\x05\x5c\x07\x5c\x08\x5c\x0d\x5c\x13\x5c\x1e\x5c\x20\x5c\x22\x5c\x28\x5c\x38\x5c\x41\x5c\x46\x5c\x4e\x5c\x53\x5c\x50\x5b\x71\x5c\x6c\x5c\x6e\x5c\x76\x5c\x79\x5c\x8c\x5c\x94\x5c\xbe\x5c\xab\x5c\xbb\x5c\xb6\x5c\xb7\x5c\xa6\x5c\xba\x5c\xc5\x5c\xbc\x5c\xc7\x5c\xd9\x5c\xe9\x5c\xfd\x5c\xfa\x5c\xf5\x5c\xed\x5c\xea\x5d\x0b\x5d\x15\x5d\x1f\x5d\x1b\x5d\x11\x5d\x27\x5d\x22\x5d\x1a\x5d\x19\x5d\x18\x5d\x4c\x5d\x52\x5d\x53", /* 5980 */ "\xfa\x11\x5d\x5c\x5d\x4e\x5d\x4b\x5d\x42\x5d\x6c\x5d\x73\x5d\x6d\x5d\x76\x5d\x87\x5d\x84\x5d\x82\x5d\x8c\x5d\xa2\x5d\x9d\x5d\x90\x5d\xac\x5d\xae\x5d\xb7\x5d\xb8\x5d\xbc\x5d\xb9\x5d\xc9\x5d\xd0\x5d\xd3\x5d\xd2\x5d\xdb\x5d\xeb\x5d\xf5\x5e\x0b\x5e\x1a\x5e\x19\x5e\x11\x5e\x1b\x5e\x36\x5e\x44\x5e\x43\x5e\x40\x5e\x47\x5e\x4e\x5e\x57\x5e\x54\x5e\x62\x5e\x64\x5e\x75\x5e\x76\x5e\x7a\x5e\x7f\x5e\xa0\x5e\xc1\x5e\xc2\x5e\xc8\x5e\xd0\x5e\xcf\x5e\xdd\x5e\xda\x5e\xdb\x5e\xe2\x5e\xe1\x5e\xe8\x5e\xe9\x5e\xec\x5e\xf0\x5e\xf1\x5e\xf3\x5e\xf4\x5f\x03\x5f\x09\x5f\x0b\x5f\x11\x5f\x16\x5f\x21\x5f\x29\x5f\x2d\x5f\x2f\x5f\x34\x5f\x38\x5f\x41\x5f\x48\x5f\x4c\x5f\x4e\x5f\x51\x5f\x56\x5f\x57\x5f\x59\x5f\x5c\x5f\x5d\x5f\x61\x5f\x67\x5f\x73\x5f\x77\x5f\x83\x5f\x82\x5f\x7f\x5f\x8a\x5f\x88\x5f\x87\x5f\x91\x5f\x99\x5f\x9e\x5f\x98\x5f\xa0\x5f\xa8\x5f\xad\x5f\xb7\x5f\xbc\x5f\xd6\x5f\xfb\x5f\xe4\x5f\xf8\x5f\xf1\x5f\xf0\x5f\xdd\x5f\xde\x5f\xff\x60\x21\x60\x19\x60\x10\x60\x29\x60\x0e\x60\x31\x60\x1b\x60\x15\x60\x2b\x60\x26\x60\x0f\x60\x3a\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x5a\x60\x41\x60\x60\x60\x5d\x60\x6a\x60\x77\x60\x5f\x60\x4a\x60\x46\x60\x4d\x60\x63\x60\x43\x60\x64\x60\x6c\x60\x6b\x60\x59\x60\x85\x60\x81\x60\x83\x60\x9a\x60\x84\x60\x9b\x60\x8a\x60\x96\x60\x97\x60\x92\x60\xa7\x60\x8b\x60\xe1\x60\xb8\x60\xde\x60\xe0\x60\xd3\x60\xbd\x60\xc6\x60\xb5\x60\xd5\x60\xd8\x61\x20\x60\xf2\x61\x15\x61\x06\x60\xf6\x60\xf7\x61\x00\x60\xf4\x60\xfa\x61\x03\x61\x21\x60\xfb\x60\xf1\x61\x0d\x61\x0e\x61\x11\x61\x47\x61\x4d\x61\x37\x61\x28\x61\x27\x61\x3e\x61\x4a\x61\x30\x61\x3c", /* 5a80 */ "\x61\x2c\x61\x34\x61\x65\x61\x5d\x61\x3d\x61\x42\x61\x44\x61\x73\x61\x87\x61\x77\x61\x58\x61\x59\x61\x5a\x61\x6b\x61\x74\x61\x6f\x61\x71\x61\x5f\x61\x53\x61\x75\x61\x98\x61\x99\x61\x96\x61\xac\x61\x94\x61\x8a\x61\x91\x61\xab\x61\xae\x61\xcc\x61\xca\x61\xc9\x61\xc8\x61\xc3\x61\xc6\x61\xba\x61\xcb\x7f\x79\x61\xcd\x61\xe6\x61\xe3\x61\xf4\x61\xf7\x61\xf6\x61\xfd\x61\xfa\x61\xff\x61\xfc\x61\xfe\x62\x00\x62\x08\x62\x09\x62\x0d\x62\x13\x62\x14\x62\x1b\x62\x1e\x62\x21\x62\x2a\x62\x2e\x62\x30\x62\x32\x62\x33\x62\x41\x62\x4e\x62\x5e\x62\x63\x62\x5b\x62\x60\x62\x68\x62\x7c\x62\x82\x62\x89\x62\x92\x62\x7e\x62\x93\x62\x96\x62\x83\x62\x94\x62\xd7\x62\xd1\x62\xbb\x62\xcf\x62\xac\x62\xc6\x62\xc8\x62\xdc\x62\xd4\x62\xca\x62\xc2\x62\xa6\x62\xc7\x62\x9b\x62\xc9\x63\x0c\x62\xee\x62\xf1\x63\x27\x63\x02\x63\x08\x62\xef\x62\xf5\x62\xff\x63\x50\x63\x4d\x63\x3e\x63\x4f\x63\x96\x63\x8e\x63\x80\x63\xab\x63\x76\x63\xa3\x63\x8f\x63\x89\x63\x9f\x63\x6b\x63\x69\x63\xb5\x63\xbe\x63\xe9\x63\xc0\x63\xc6\x63\xf5\x63\xe3\x63\xc9\x63\xd2\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf6\x63\xc4\x64\x34\x64\x06\x64\x13\x64\x26\x64\x36\x64\x1c\x64\x17\x64\x28\x64\x0f\x64\x16\x64\x4e\x64\x67\x64\x6f\x64\x60\x64\x76\x64\xb9\x64\x9d\x64\xce\x64\x95\x64\xbb\x64\x93\x64\xa5\x64\xa9\x64\x88\x64\xbc\x64\xda\x64\xd2\x64\xc5\x64\xc7\x64\xd4\x64\xd8\x64\xc2\x64\xf1\x64\xe7\x64\xe0\x64\xe1\x64\xe3\x64\xef\x64\xf4\x64\xf6\x64\xf2\x64\xfa\x65\x00\x64\xfd\x65\x18\x65\x1c\x65\x1d\x65\x22\x65\x24\x65\x23\x65\x2b\x65\x2c\x65\x34\x65\x35\x65\x37\x65\x36\x65\x38\x75\x4b\x65\x48\x65\x4e\x65\x56", /* 5b80 */ "\x65\x4d\x65\x58\x65\x55\x65\x5d\x65\x72\x65\x78\x65\x82\x65\x83\x8b\x8a\x65\x9b\x65\x9f\x65\xab\x65\xb7\x65\xc3\x65\xc6\x65\xc1\x65\xc4\x65\xcc\x65\xd2\x65\xd9\x65\xe1\x65\xe0\x65\xf1\x66\x00\x66\x15\x66\x02\x67\x72\x66\x03\x65\xfb\x66\x09\x66\x3f\x66\x35\x66\x2e\x66\x1e\x66\x34\x66\x1c\x66\x24\x66\x44\x66\x49\x66\x65\x66\x57\x66\x5e\x66\x64\x66\x59\x66\x62\x66\x5d\xfa\x12\x66\x73\x66\x70\x66\x83\x66\x88\x66\x84\x66\x99\x66\x98\x66\xa0\x66\x9d\x66\xb2\x66\xc4\x66\xc1\x66\xbf\x66\xc9\x66\xbe\x66\xbc\x66\xb8\x66\xd6\x66\xda\x66\xe6\x66\xe9\x66\xf0\x66\xf5\x66\xf7\x66\xfa\x67\x0e\xf9\x29\x67\x16\x67\x1e\x7e\x22\x67\x26\x67\x27\x97\x38\x67\x2e\x67\x3f\x67\x36\x67\x37\x67\x38\x67\x46\x67\x5e\x67\x59\x67\x66\x67\x64\x67\x89\x67\x85\x67\x70\x67\xa9\x67\x6a\x67\x8b\x67\x73\x67\xa6\x67\xa1\x67\xbb\x67\xb7\x67\xef\x67\xb4\x67\xec\x67\xe9\x67\xb8\x67\xe7\x67\xe4\x68\x52\x67\xdd\x67\xe2\x67\xee\x67\xc0\x67\xce\x67\xb9\x68\x01\x67\xc6\x68\x1e\x68\x46\x68\x4d\x68\x40\x68\x44\x68\x32\x68\x4e\x68\x63\x68\x59\x68\x8e\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x77\x68\x7f\x68\x9f\x68\x7e\x68\x8f\x68\xad\x68\x94\x68\x83\x68\xbc\x68\xb9\x68\x74\x68\xb5\x68\xba\x69\x0f\x69\x01\x68\xca\x69\x08\x68\xd8\x69\x26\x68\xe1\x69\x0c\x68\xcd\x68\xd4\x68\xe7\x68\xd5\x69\x12\x68\xef\x69\x04\x68\xe3\x68\xe0\x68\xcf\x68\xc6\x69\x22\x69\x2a\x69\x21\x69\x23\x69\x28\xfa\x13\x69\x79\x69\x77\x69\x36\x69\x78\x69\x54\x69\x6a\x69\x74\x69\x68\x69\x3d\x69\x59\x69\x30\x69\x5e\x69\x5d\x69\x7e\x69\x81\x69\xb2\x69\xbf\xfa\x14\x69\x98\x69\xc1\x69\xd3\x69\xbe\x69\xce\x5b\xe8\x69\xca", /* 5c80 */ "\x69\xb1\x69\xdd\x69\xbb\x69\xc3\x69\xa0\x69\x9c\x69\x95\x69\xde\x6a\x2e\x69\xe8\x6a\x02\x6a\x1b\x69\xff\x69\xf9\x69\xf2\x69\xe7\x69\xe2\x6a\x1e\x69\xed\x6a\x14\x69\xeb\x6a\x0a\x6a\x22\x6a\x12\x6a\x23\x6a\x13\x6a\x30\x6a\x6b\x6a\x44\x6a\x0c\x6a\xa0\x6a\x36\x6a\x78\x6a\x47\x6a\x62\x6a\x59\x6a\x66\x6a\x48\x6a\x46\x6a\x38\x6a\x72\x6a\x73\x6a\x90\x6a\x8d\x6a\x84\x6a\xa2\x6a\xa3\x6a\x7e\x6a\x97\x6a\xac\x6a\xaa\x6a\xbb\x6a\xc2\x6a\xb8\x6a\xb3\x6a\xc1\x6a\xde\x6a\xe2\x6a\xd1\x6a\xda\x6a\xe4\x86\x16\x86\x17\x6a\xea\x6b\x05\x6b\x0a\x6a\xfa\x6b\x12\x6b\x16\x6b\x1f\x6b\x38\x6b\x37\x6b\x39\x76\xdc\x98\xee\x6b\x47\x6b\x43\x6b\x49\x6b\x50\x6b\x59\x6b\x54\x6b\x5b\x6b\x5f\x6b\x61\x6b\x78\x6b\x79\x6b\x7f\x6b\x80\x6b\x84\x6b\x83\x6b\x8d\x6b\x98\x6b\x95\x6b\x9e\x6b\xa4\x6b\xaa\x6b\xab\x6b\xaf\x6b\xb1\x6b\xb2\x6b\xb3\x6b\xb7\x6b\xbc\x6b\xc6\x6b\xcb\x6b\xd3\x6b\xd6\x6b\xdf\x6b\xec\x6b\xeb\x6b\xf3\x6b\xef\x6c\x08\x6c\x13\x6c\x14\x6c\x1b\x6c\x24\x6c\x23\x6c\x3f\x6c\x5e\x6c\x55\x6c\x5c\x6c\x62\x6c\x82\x6c\x8d\x6c\x86\x6c\x6f\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9a\x6c\x81\x6c\x9b\x6c\x7e\x6c\x68\x6c\x73\x6c\x92\x6c\x90\x6c\xc4\x6c\xf1\x6c\xbd\x6c\xc5\x6c\xae\x6c\xda\x6c\xdd\x6c\xb1\x6c\xbe\x6c\xba\x6c\xdb\x6c\xef\x6c\xd9\x6c\xea\x6d\x1f\x6d\x04\x6d\x36\x6d\x2b\x6d\x3d\x6d\x33\x6d\x12\x6d\x0c\x6d\x63\x6d\x87\x6d\x93\x6d\x6f\x6d\x64\x6d\x5a\x6d\x79\x6d\x59\x6d\x8e\x6d\x95\x6d\x9b\x6d\x85\x6d\x96\x6d\xf9\x6e\x0a\x6e\x2e\x6d\xb5\x6d\xe6\x6d\xc7\x6d\xac\x6d\xb8\x6d\xcf\x6d\xc6\x6d\xec\x6d\xde\x6d\xcc\x6d\xe8\x6d\xf8\x6d\xd2\x6d\xc5\x6d\xfa\x6d\xd9\x6d\xf2", /* 5d80 */ "\x6d\xfc\x6d\xe4\x6d\xd5\x6d\xea\x6d\xee\x6e\x2d\x6e\x6e\x6e\x19\x6e\x72\x6e\x5f\x6e\x39\x6e\x3e\x6e\x23\x6e\x6b\x6e\x5c\x6e\x2b\x6e\x76\x6e\x4d\x6e\x1f\x6e\x27\x6e\x43\x6e\x3c\x6e\x3a\x6e\x4e\x6e\x24\x6e\x1d\x6e\x38\x6e\x82\x6e\xaa\x6e\x98\x6e\xb7\x6e\xbd\x6e\xaf\x6e\xc4\x6e\xb2\x6e\xd4\x6e\xd5\x6e\x8f\x6e\xbf\x6e\xc2\x6e\x9f\x6f\x41\x6f\x45\x6e\xec\x6e\xf8\x6e\xfe\x6f\x3f\x6e\xf2\x6f\x31\x6e\xef\x6f\x32\x6e\xcc\x6e\xff\x6f\x3e\x6f\x13\x6e\xf7\x6f\x86\x6f\x7a\x6f\x78\x6f\x80\x6f\x6f\x6f\x5b\x6f\x6d\x6f\x74\x6f\x82\x6f\x88\x6f\x7c\x6f\x58\x6f\xc6\x6f\x8e\x6f\x91\x6f\x66\x6f\xb3\x6f\xa3\x6f\xb5\x6f\xa1\x6f\xb9\x6f\xdb\x6f\xaa\x6f\xc2\x6f\xdf\x6f\xd5\x6f\xec\x6f\xd8\x6f\xd4\x6f\xf5\x6f\xee\x70\x05\x70\x07\x70\x09\x70\x0b\x6f\xfa\x70\x11\x70\x01\x70\x0f\x70\x1b\x70\x1a\x70\x1f\x6f\xf3\x70\x28\x70\x18\x70\x30\x70\x3e\x70\x32\x70\x51\x70\x63\x70\x85\x70\x99\x70\xaf\x70\xab\x70\xac\x70\xb8\x70\xae\x70\xdf\x70\xcb\x70\xd9\x71\x09\x71\x0f\x71\x04\x70\xf1\x70\xfd\x71\x1c\x71\x19\x71\x5c\x71\x46\x71\x47\x71\x66\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x62\x71\x4c\x71\x56\x71\x6c\x71\x88\x71\x8f\x71\x84\x71\x95\xfa\x15\x71\xac\x71\xc1\x71\xb9\x71\xbe\x71\xd2\x71\xe7\x71\xc9\x71\xd4\x71\xd7\x71\xce\x71\xf5\x71\xe0\x71\xec\x71\xfb\x71\xfc\x71\xf9\x71\xfe\x71\xff\x72\x0d\x72\x10\x72\x28\x72\x2d\x72\x2c\x72\x30\x72\x32\x72\x3b\x72\x3c\x72\x3f\x72\x40\x72\x46\x72\x4b\x72\x58\x72\x74\x72\x7e\x72\x81\x72\x87\x72\x82\x72\x92\x72\x96\x72\xa2\x72\xa7\x72\xb1\x72\xb2\x72\xbe\x72\xc3\x72\xc6\x72\xc4\x72\xb9\x72\xce\x72\xd2\x72\xe2\x72\xe0\x72\xe1\x72\xf9", /* 5e80 */ "\x72\xf7\x73\x17\x73\x0a\x73\x1c\x73\x16\x73\x1d\x73\x24\x73\x34\x73\x29\x73\x2f\xfa\x16\x73\x25\x73\x3e\x73\x4f\x73\x4e\x73\x57\x9e\xd8\x73\x6a\x73\x68\x73\x70\x73\x77\x73\x78\x73\x75\x73\x7b\x73\xc8\x73\xbd\x73\xb3\x73\xce\x73\xbb\x73\xc0\x73\xc9\x73\xd6\x73\xe5\x73\xe3\x73\xd2\x73\xee\x73\xf1\x73\xde\x73\xf8\x74\x07\x73\xf5\x74\x05\x74\x26\x74\x2a\x74\x25\x74\x29\x74\x2e\x74\x32\x74\x3a\x74\x55\x74\x3f\x74\x5f\x74\x59\x74\x41\x74\x5c\x74\x69\x74\x70\x74\x63\x74\x6a\x74\x64\x74\x62\x74\x89\x74\x6f\x74\x7e\x74\x9f\x74\x9e\x74\xa2\x74\xa7\x74\xca\x74\xcf\x74\xd4\x74\xe0\x74\xe3\x74\xe7\x74\xe9\x74\xee\x74\xf0\x74\xf2\x74\xf1\x74\xf7\x74\xf8\x75\x01\x75\x04\x75\x03\x75\x05\x75\x0d\x75\x0c\x75\x0e\x75\x13\x75\x1e\x75\x26\x75\x2c\x75\x3c\x75\x44\x75\x4d\x75\x4a\x75\x49\x75\x46\x75\x5b\x75\x5a\x75\x64\x75\x67\x75\x6b\x75\x6f\x75\x74\x75\x6d\x75\x78\x75\x76\x75\x82\x75\x86\x75\x87\x75\x8a\x75\x89\x75\x94\x75\x9a\x75\x9d\x75\xa5\x75\xa3\x75\xc2\x75\xb3\x75\xc3\x75\xb5\x75\xbd\x75\xb8\x75\xbc\x75\xb1\x75\xcd\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xca\x75\xd2\x75\xd9\x75\xe3\x75\xde\x75\xfe\x75\xff\x75\xfc\x76\x01\x75\xf0\x75\xfa\x75\xf2\x75\xf3\x76\x0b\x76\x09\x76\x1f\x76\x27\x76\x20\x76\x21\x76\x22\x76\x24\x76\x34\x76\x30\x76\x3b\x76\x47\x76\x48\x76\x58\x76\x46\x76\x5c\x76\x61\x76\x62\x76\x68\x76\x69\x76\x67\x76\x6a\x76\x6c\x76\x70\x76\x72\x76\x76\x76\x7c\x76\x82\x76\x80\x76\x83\x76\x88\x76\x8b\x76\x99\x76\x9a\x76\x9c\x76\x9e\x76\x9b\x76\xa6\x76\xb0\x76\xb4\x76\xb8\x76\xb9\x76\xba\x76\xc2\xfa\x17\x76\xcd\x76\xd6\x76\xd2\x76\xde\x76\xe1", /* 5f80 */ "\x76\xe5\x76\xea\x86\x2f\x76\xfb\x77\x08\x77\x07\x77\x04\x77\x24\x77\x29\x77\x25\x77\x26\x77\x1b\x77\x37\x77\x38\x77\x46\x77\x47\x77\x5a\x77\x68\x77\x6b\x77\x5b\x77\x65\x77\x7f\x77\x7e\x77\x79\x77\x8e\x77\x8b\x77\x91\x77\xa0\x77\x9e\x77\xb0\x77\xb6\x77\xb9\x77\xbf\x77\xbc\x77\xbd\x77\xbb\x77\xc7\x77\xcd\x77\xda\x77\xdc\x77\xe3\x77\xee\x52\xaf\x77\xfc\x78\x0c\x78\x12\x78\x21\x78\x3f\x78\x20\x78\x45\x78\x4e\x78\x64\x78\x74\x78\x8e\x78\x7a\x78\x86\x78\x9a\x78\x7c\x78\x8c\x78\xa3\x78\xb5\x78\xaa\x78\xaf\x78\xd1\x78\xc6\x78\xcb\x78\xd4\x78\xbe\x78\xbc\x78\xc5\x78\xca\x78\xec\x78\xe7\x78\xda\x78\xfd\x78\xf4\x79\x07\x79\x11\x79\x19\x79\x2c\x79\x2b\x79\x30\xfa\x18\x79\x40\x79\x60\xfa\x19\x79\x5f\x79\x5a\x79\x55\xfa\x1a\x79\x7f\x79\x8a\x79\x94\xfa\x1b\x79\x9d\x79\x9b\x79\xaa\x79\xb3\x79\xba\x79\xc9\x79\xd5\x79\xe7\x79\xec\x79\xe3\x7a\x08\x7a\x0d\x7a\x18\x7a\x19\x7a\x1f\x7a\x31\x7a\x3e\x7a\x37\x7a\x3b\x7a\x43\x7a\x57\x7a\x49\x7a\x62\x7a\x61\x7a\x69\x9f\x9d\x7a\x70\x7a\x79\x7a\x7d\x7a\x88\x7a\x95\x7a\x98\x7a\x96\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x97\x7a\xa9\x7a\xb0\x7a\xb6\x90\x83\x7a\xc3\x7a\xbf\x7a\xc5\x7a\xc4\x7a\xc7\x7a\xca\x7a\xcd\x7a\xcf\x7a\xd2\x7a\xd1\x7a\xd5\x7a\xd3\x7a\xd9\x7a\xda\x7a\xdd\x7a\xe1\x7a\xe2\x7a\xe6\x7a\xe7\xfa\x1c\x7a\xeb\x7a\xed\x7a\xf0\x7a\xf8\x7b\x02\x7b\x0f\x7b\x0b\x7b\x0a\x7b\x06\x7b\x33\x7b\x36\x7b\x19\x7b\x1e\x7b\x35\x7b\x28\x7b\x50\x7b\x4d\x7b\x4c\x7b\x45\x7b\x5d\x7b\x75\x7b\x7a\x7b\x74\x7b\x70\x7b\x71\x7b\x6e\x7b\x9d\x7b\x98\x7b\x9f\x7b\x8d\x7b\x9c\x7b\x9a\x7b\x92\x7b\x8f\x7b\x99\x7b\xcf\x7b\xcb\x7b\xcc", /* 6080 */ "\x7b\xb4\x7b\xc6\x7b\x9e\x7b\xdd\x7b\xe9\x7b\xe6\x7b\xf7\x7b\xe5\x7c\x14\x7c\x00\x7c\x13\x7c\x07\x7b\xf3\x7c\x0d\x7b\xf6\x7c\x23\x7c\x27\x7c\x2a\x7c\x1f\x7c\x37\x7c\x2b\x7c\x3d\x7c\x40\x7c\x4c\x7c\x43\x7c\x56\x7c\x50\x7c\x58\x7c\x5f\x7c\x65\x7c\x6c\x7c\x75\x7c\x83\x7c\x90\x7c\xa4\x7c\xa2\x7c\xab\x7c\xa1\x7c\xad\x7c\xa8\x7c\xb3\x7c\xb2\x7c\xb1\x7c\xae\x7c\xb9\xfa\x1d\x7c\xbd\x7c\xc5\x7c\xc2\x7c\xd2\x7c\xe2\x7c\xd8\x7c\xdc\x7c\xef\x7c\xf2\x7c\xf4\x7c\xf6\x7d\x06\x7d\x02\x7d\x1c\x7d\x15\x7d\x0a\x7d\x45\x7d\x4b\x7d\x2e\x7d\x32\x7d\x3f\x7d\x35\x7d\x48\x7d\x46\x7d\x5c\x7d\x73\x7d\x56\x7d\x4e\x7d\x68\x7d\x6e\x7d\x4f\x7d\x63\x7d\x93\x7d\x89\x7d\x5b\x7d\xae\x7d\xa3\x7d\xb5\x7d\xb7\x7d\xc7\x7d\xbd\x7d\xab\x7d\xa2\x7d\xaf\x7d\xa0\x7d\xb8\x7d\x9f\x7d\xb0\x7d\xd5\x7d\xd8\x7d\xdd\x7d\xd6\x7d\xe4\x7d\xde\x7d\xfb\x7e\x0b\x7d\xf2\x7d\xe1\x7d\xdc\x7e\x05\x7e\x0a\x7e\x21\x7e\x12\x7e\x1f\x7e\x09\x7e\x3a\x7e\x46\x7e\x66\x7e\x31\x7e\x3d\x7e\x35\x7e\x3b\x7e\x39\x7e\x43\x7e\x37\x7e\x32\x7e\x5d\x7e\x56\x7e\x5e\x7e\x52\x7e\x59\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x5a\x7e\x67\x7e\x79\x7e\x6a\x7e\x69\x7e\x7c\x7e\x7b\x7e\x7d\x8f\xae\x7e\x7f\x7e\x83\x7e\x89\x7e\x8e\x7e\x8c\x7e\x92\x7e\x93\x7e\x94\x7e\x96\x7e\x9b\x7f\x38\x7f\x3a\x7f\x45\x7f\x47\x7f\x4c\x7f\x4e\x7f\x51\x7f\x55\x7f\x54\x7f\x58\x7f\x5f\x7f\x60\x7f\x68\x7f\x67\x7f\x69\x7f\x78\x7f\x82\x7f\x86\x7f\x83\x7f\x87\x7f\x88\x7f\x8c\x7f\x94\x7f\x9e\x7f\x9d\x7f\x9a\x7f\xa1\x7f\xa3\x7f\xaf\x7f\xae\x7f\xb2\x7f\xb9\x7f\xb6\x7f\xb8\x8b\x71\xfa\x1e\x7f\xc5\x7f\xc6\x7f\xca\x7f\xd5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xf3", /* 6180 */ "\x7f\xf9\x80\x04\x80\x0b\x80\x12\x80\x19\x80\x1c\x80\x21\x80\x28\x80\x3f\x80\x3b\x80\x4a\x80\x46\x80\x52\x80\x58\x80\x5f\x80\x62\x80\x68\x80\x73\x80\x72\x80\x70\x80\x76\x80\x79\x80\x7d\x80\x7f\x80\x84\x80\x85\x80\x93\x80\x9a\x80\xad\x51\x90\x80\xac\x80\xdb\x80\xe5\x80\xd9\x80\xdd\x80\xc4\x80\xda\x81\x09\x80\xef\x80\xf1\x81\x1b\x81\x23\x81\x2f\x81\x4b\x81\x46\x81\x3e\x81\x53\x81\x51\x81\x41\x81\x71\x81\x6e\x81\x65\x81\x5f\x81\x66\x81\x74\x81\x83\x81\x88\x81\x8a\x81\x80\x81\x82\x81\xa0\x81\x95\x81\xa3\x81\x93\x81\xb5\x81\xa4\x81\xa9\x81\xb8\x81\xb0\x81\xc8\x81\xbe\x81\xbd\x81\xc0\x81\xc2\x81\xba\x81\xc9\x81\xcd\x81\xd1\x81\xd8\x81\xd9\x81\xda\x81\xdf\x81\xe0\x81\xfa\x81\xfb\x81\xfe\x82\x01\x82\x02\x82\x05\x82\x0d\x82\x10\x82\x12\x82\x16\x82\x29\x82\x2b\x82\x2e\x82\x38\x82\x33\x82\x40\x82\x59\x82\x5a\x82\x5d\x82\x5f\x82\x64\x82\x62\x82\x68\x82\x6a\x82\x6b\x82\x71\x82\x77\x82\x7e\x82\x8d\x82\x92\x82\xab\x82\x9f\x82\xbb\x82\xac\x82\xe1\x82\xe3\x82\xdf\x83\x01\x82\xd2\x82\xf4\x82\xf3\x83\x03\x82\xfb\x82\xf9\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\xde\x83\x06\x82\xdc\x82\xfa\x83\x09\x82\xd9\x83\x35\x83\x62\x83\x34\x83\x16\x83\x31\x83\x40\x83\x39\x83\x50\x83\x45\x83\x2f\x83\x2b\x83\x18\x83\x9a\x83\xaa\x83\x9f\x83\xa2\x83\x96\x83\x23\x83\x8e\x83\x75\x83\x7f\x83\x8a\x83\x7c\x83\xb5\x83\x73\x83\x93\x83\xa0\x83\x85\x83\x89\x83\xa8\x83\xf4\x84\x13\x83\xc7\x83\xce\x83\xf7\x83\xfd\x84\x03\x83\xd8\x84\x0b\x83\xc1\x84\x07\x83\xe0\x83\xf2\x84\x0d\x84\x20\x83\xf6\x83\xbd\x83\xfb\x84\x2a\x84\x62\x84\x3c\x84\x84\x84\x77\x84\x6b\x84\x79\x84\x48\x84\x6e", /* 6280 */ "\x84\x82\x84\x69\x84\x46\x84\x6f\x84\x38\x84\x35\x84\xca\x84\xb9\x84\xbf\x84\x9f\x84\xb4\x84\xcd\x84\xbb\x84\xda\x84\xd0\x84\xc1\x84\xad\x84\xc6\x84\xd6\x84\xa1\x84\xd9\x84\xff\x84\xf4\x85\x17\x85\x18\x85\x2c\x85\x1f\x85\x15\x85\x14\x85\x06\x85\x53\x85\x5a\x85\x40\x85\x59\x85\x63\x85\x58\x85\x48\x85\x41\x85\x4a\x85\x4b\x85\x6b\x85\x55\x85\x80\x85\xa4\x85\x88\x85\x91\x85\x8a\x85\xa8\x85\x6d\x85\x94\x85\x9b\x85\xae\x85\x87\x85\x9c\x85\x77\x85\x7e\x85\x90\xfa\x1f\x82\x0a\x85\xb0\x85\xc9\x85\xba\x85\xcf\x85\xb9\x85\xd0\x85\xd5\x85\xdd\x85\xe5\x85\xdc\x85\xf9\x86\x0a\x86\x13\x86\x0b\x85\xfe\x86\x22\x86\x1a\x86\x30\x86\x3f\xfa\x20\x86\x4d\x4e\x55\x86\x55\x86\x5f\x86\x67\x86\x71\x86\x93\x86\xa3\x86\xa9\x86\x8b\x86\xaa\x86\x8c\x86\xb6\x86\xaf\x86\xc4\x86\xc6\x86\xb0\x86\xc9\x86\xce\xfa\x21\x86\xab\x86\xd4\x86\xde\x86\xe9\x86\xec\x86\xdf\x86\xdb\x87\x12\x87\x06\x87\x08\x87\x00\x87\x03\x86\xfb\x87\x11\x87\x09\x87\x0d\x86\xf9\x87\x0a\x87\x34\x87\x3f\x87\x3b\x87\x25\x87\x29\x87\x1a\x87\x5f\x87\x78\x87\x4c\x87\x4e\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x74\x87\x57\x87\x68\x87\x82\x87\x6a\x87\x60\x87\x6e\x87\x59\x87\x53\x87\x63\x87\x7f\x87\xa2\x87\xc6\x87\x9f\x87\xaf\x87\xcb\x87\xbd\x87\xc0\x87\xd0\x96\xd6\x87\xab\x87\xc4\x87\xb3\x87\xd2\x87\xbb\x87\xef\x87\xf2\x87\xe0\x88\x0e\x88\x07\x88\x0f\x88\x16\x88\x0d\x87\xfe\x87\xf6\x87\xf7\x88\x11\x88\x15\x88\x22\x88\x21\x88\x27\x88\x31\x88\x36\x88\x39\x88\x3b\x88\x42\x88\x44\x88\x4d\x88\x52\x88\x59\x88\x5e\x88\x62\x88\x6b\x88\x81\x88\x7e\x88\x75\x88\x7d\x88\x72\x88\x82\x88\x9e\x88\x97\x88\x92\x88\xae", /* 6380 */ "\x88\x99\x88\xa2\x88\x8d\x88\xa4\x88\xbf\x88\xb5\x88\xb1\x88\xc3\x88\xc4\x88\xd4\x88\xd8\x88\xd9\x88\xdd\x88\xf9\x89\x02\x88\xfc\x88\xf5\x88\xe8\x88\xf2\x89\x04\x89\x0c\x89\x2a\x89\x1d\x89\x0a\x89\x13\x89\x1e\x89\x25\x89\x2b\x89\x41\x89\x3b\x89\x36\x89\x43\x89\x38\x89\x4d\x89\x4c\x89\x60\x89\x5e\x89\x66\x89\x6a\x89\x64\x89\x6d\x89\x6f\x89\x74\x89\x77\x89\x7e\x89\x83\x89\x88\x89\x8a\x89\x93\x89\x98\x89\xa1\x89\xa9\x89\xa6\x89\xac\x89\xaf\x89\xb2\x89\xba\x89\xbf\x89\xbd\x89\xc0\x89\xda\x89\xdd\x89\xe7\x89\xf4\x89\xf8\x8a\x03\x8a\x16\x8a\x10\x8a\x0c\x8a\x12\x8a\x1b\x8a\x1d\x8a\x25\x8a\x36\x8a\x41\x8a\x37\x8a\x5b\x8a\x52\x8a\x46\x8a\x48\x8a\x7c\x8a\x6d\x8a\x6c\x8a\x62\x8a\x79\x8a\x85\x8a\x82\x8a\x84\x8a\xa8\x8a\xa1\x8a\x91\x8a\xa5\x8a\xa6\x8a\x9a\x8a\xa3\x8a\xa7\x8a\xcc\x8a\xbe\x8a\xcd\x8a\xc2\x8a\xda\x8a\xf3\x8a\xe7\x8a\xe4\x8a\xf1\x8b\x14\x8a\xe0\x8a\xe2\x8a\xe1\x8a\xdf\xfa\x22\x8a\xf6\x8a\xf7\x8a\xde\x8a\xdb\x8b\x0c\x8b\x07\x8b\x1a\x8b\x16\x8b\x10\x8b\x17\x8b\x20\x8b\x33\x8b\x41\x97\xab\x8b\x26\x8b\x2b\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x3e\x8b\x4c\x8b\x4f\x8b\x4e\x8b\x53\x8b\x49\x8b\x56\x8b\x5b\x8b\x5a\x8b\x74\x8b\x6b\x8b\x5f\x8b\x6c\x8b\x6f\x8b\x7d\x8b\x7f\x8b\x80\x8b\x8c\x8b\x8e\x8b\x99\x8b\x92\x8b\x93\x8b\x96\x8b\x9a\x8c\x3a\x8c\x41\x8c\x3f\x8c\x48\x8c\x4c\x8c\x4e\x8c\x50\x8c\x55\x8c\x62\x8c\x6c\x8c\x78\x8c\x7a\x8c\x7c\x8c\x82\x8c\x89\x8c\x85\x8c\x8a\x8c\x8d\x8c\x8e\x8c\x98\x8c\x94\x62\x1d\x8c\xad\x8c\xaa\x8c\xae\x8c\xbd\x8c\xb2\x8c\xb3\x8c\xc1\x8c\xb6\x8c\xc8\x8c\xce\x8c\xcd\x8c\xe3\x8c\xda\x8c\xf0\x8c\xf4\x8c\xfd\x8c\xfa", /* 6480 */ "\x8c\xfb\x8d\x07\x8d\x0a\x8d\x0f\x8d\x0d\x8d\x12\x8d\x10\x8d\x13\x8d\x14\x8d\x16\x8d\x67\x8d\x6d\x8d\x71\x8d\x76\xfa\x23\x8d\x81\x8d\xc2\x8d\xbe\x8d\xba\x8d\xcf\x8d\xda\x8d\xd6\x8d\xcc\x8d\xdb\x8d\xcb\x8d\xea\x8d\xeb\x8d\xdf\x8d\xe3\x8d\xfc\x8e\x08\x8d\xff\x8e\x09\x8e\x1d\x8e\x1e\x8e\x10\x8e\x1f\x8e\x42\x8e\x35\x8e\x30\x8e\x34\x8e\x4a\x8e\x47\x8e\x49\x8e\x4c\x8e\x50\x8e\x48\x8e\x59\x8e\x64\x8e\x60\x8e\x55\x8e\x63\x8e\x76\x8e\x72\x8e\x87\x8e\x7c\x8e\x81\x8e\x85\x8e\x84\x8e\x8b\x8e\x8a\x8e\x93\x8e\x91\x8e\x94\x8e\x99\x8e\xa1\x8e\xaa\x8e\xb1\x8e\xbe\x8e\xc6\x8e\xc5\x8e\xc8\x8e\xcb\x8e\xcf\x8e\xdb\x8e\xe3\x8e\xfc\x8e\xfb\x8e\xeb\x8e\xfe\x8f\x0a\x8f\x0c\x8f\x05\x8f\x15\x8f\x12\x8f\x13\x8f\x1c\x8f\x19\x8f\x1f\x8f\x26\x8f\x33\x8f\x3b\x8f\x39\x8f\x45\x8f\x42\x8f\x3e\x8f\x49\x8f\x46\x8f\x4c\x8f\x4e\x8f\x57\x8f\x5c\x8f\x62\x8f\x63\x8f\x64\x8f\x9c\x8f\x9f\x8f\xa3\x8f\xa8\x8f\xa7\x8f\xad\x8f\xaf\x8f\xb7\xfa\x24\x8f\xda\x8f\xe5\x8f\xe2\x8f\xef\x8f\xe9\x8f\xf4\x90\x05\x8f\xf9\x8f\xf8\x90\x11\x90\x15\x90\x0e\x90\x21\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x90\x1e\x90\x16\x90\x0b\x90\x27\x90\x36\x90\x39\x90\x4f\xfa\x25\x90\x50\x90\x51\x90\x52\x90\x49\x90\x3e\x90\x56\x90\x58\x90\x5e\x90\x68\x90\x67\x90\x6f\x90\x76\x96\xa8\x90\x72\x90\x82\x90\x7d\x90\x89\x90\x80\x90\x8f\x62\x48\x90\xaf\x90\xb1\x90\xb5\x90\xe2\x90\xe4\x90\xdb\x90\xde\x91\x02\xfa\x26\x91\x15\x91\x12\x91\x19\x91\x32\x91\x27\x91\x30\x91\x4a\x91\x56\x91\x58\x91\x63\x91\x65\x91\x69\x91\x73\x91\x72\x91\x8b\x91\x89\x91\x82\x91\xa2\x91\xab\x91\xaf\x91\xaa\x91\xb5\x91\xb4\x91\xba\x91\xc0", /* 6580 */ "\x91\xc1\x91\xcb\x91\xd0\x91\xda\x91\xdb\x91\xd7\x91\xde\x91\xd6\x91\xdf\x91\xe1\x91\xed\x91\xf5\x91\xee\x91\xe4\x91\xf6\x91\xe5\x92\x06\x92\x1e\x91\xff\x92\x10\x92\x14\x92\x0a\x92\x2c\x92\x15\x92\x29\x92\x57\x92\x45\x92\x3a\x92\x49\x92\x64\x92\x40\x92\x3c\x92\x48\x92\x4e\x92\x50\x92\x59\x92\x3f\x92\x51\x92\x39\x92\x4b\x92\x67\x92\x5a\x92\x9c\x92\xa7\x92\x77\x92\x78\x92\x96\x92\x93\x92\x9b\x92\x95\x92\xe9\x92\xcf\x92\xe7\x92\xd7\x92\xd9\x92\xd0\xfa\x27\x92\xd5\x92\xb9\x92\xb7\x92\xe0\x92\xd3\x93\x3a\x93\x35\x93\x0f\x93\x25\x92\xfa\x93\x21\x93\x44\x92\xfb\xfa\x28\x93\x19\x93\x1e\x92\xff\x93\x22\x93\x1a\x93\x1d\x93\x23\x93\x02\x93\x3b\x93\x70\x93\x60\x93\x7c\x93\x6e\x93\x56\x93\x57\x93\xb9\x93\xb0\x93\xa4\x93\xad\x93\x94\x93\xc8\x93\xd6\x93\xc6\x93\xd7\x93\xe8\x93\xe5\x93\xd8\x93\xc3\x93\xdd\x93\xde\x93\xd0\x93\xe4\x94\x1a\x93\xf8\x94\x14\x94\x13\x94\x21\x94\x03\x94\x07\x94\x36\x94\x2b\x94\x31\x94\x3a\x94\x41\x94\x52\x94\x45\x94\x44\x94\x48\x94\x5b\x94\x5a\x94\x60\x94\x62\x94\x5e\x94\x6a\x94\x75\x94\x70\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x77\x94\x7f\x94\x7d\x94\x7c\x94\x7e\x94\x81\x95\x82\x95\x87\x95\x8a\x95\x92\x95\x94\x95\x96\x95\x98\x95\x99\x95\xa0\x95\xa8\x95\xa7\x95\xad\x95\xbc\x95\xbb\x95\xb9\x95\xbe\x95\xca\x6f\xf6\x95\xc3\x95\xcd\x95\xcc\x95\xd5\x95\xd4\x95\xd6\x95\xdc\x95\xe1\x95\xe5\x95\xe2\x96\x21\x96\x28\x96\x2e\x96\x2f\x96\x42\x96\x4f\x96\x4c\x96\x4b\x96\x5c\x96\x5d\x96\x5f\x96\x66\x96\x77\x96\x72\x96\x6c\x96\x8d\x96\x8b\xf9\xdc\x96\x98\x96\x95\x96\x97\xfa\x29\x96\x9d\x96\xa7\x96\xaa\x96\xb1\x96\xb2\x96\xb0\x96\xaf", /* 6680 */ "\x96\xb4\x96\xb6\x96\xb8\x96\xb9\x96\xce\x96\xcb\x96\xd5\x96\xdc\x96\xd9\x96\xf9\x97\x04\x97\x06\x97\x08\x97\x19\x97\x0d\x97\x13\x97\x0e\x97\x11\x97\x0f\x97\x16\x97\x24\x97\x2a\x97\x30\x97\x33\x97\x39\x97\x3b\x97\x3d\x97\x3e\x97\x46\x97\x44\x97\x43\x97\x48\x97\x42\x97\x49\x97\x4d\x97\x4f\x97\x51\x97\x55\x97\x5c\x97\x60\x97\x64\x97\x66\x97\x68\x97\x6d\x97\x79\x97\x85\x97\x7c\x97\x81\x97\x7a\x97\x8b\x97\x8f\x97\x90\x97\x9c\x97\xa8\x97\xa6\x97\xa3\x97\xb3\x97\xb4\x97\xc3\x97\xc6\x97\xc8\x97\xcb\x97\xdc\x97\xed\x97\xf2\x7a\xdf\x97\xf5\x98\x0f\x98\x1a\x98\x24\x98\x21\x98\x37\x98\x3d\x98\x4f\x98\x4b\x98\x57\x98\x65\x98\x6b\x98\x6f\x98\x70\x98\x71\x98\x74\x98\x73\x98\xaa\x98\xaf\x98\xb1\x98\xb6\x98\xc4\x98\xc3\x98\xc6\x98\xdc\x98\xed\x98\xe9\xfa\x2a\x98\xeb\xfa\x2b\x99\x03\x99\x1d\x99\x12\x99\x14\x99\x18\x99\x27\xfa\x2c\x99\x21\x99\x1e\x99\x24\x99\x20\x99\x2c\x99\x2e\x99\x3d\x99\x3e\x99\x42\x99\x49\x99\x45\x99\x50\x99\x4b\x99\x51\x99\x4c\x99\x55\x99\x97\x99\x98\x99\x9e\x99\xa5\x99\xad\x99\xae\x99\xbc\x99\xdf\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xdb\x99\xdd\x99\xd8\x99\xd1\x99\xed\x99\xee\x99\xe2\x99\xf1\x99\xf2\x99\xfb\x99\xf8\x9a\x01\x9a\x0f\x9a\x05\x9a\x19\x9a\x2b\x9a\x37\x9a\x40\x9a\x45\x9a\x42\x9a\x43\x9a\x3e\x9a\x55\x9a\x4d\x9a\x4e\x9a\x5b\x9a\x57\x9a\x5f\x9a\x62\x9a\x69\x9a\x65\x9a\x64\x9a\x6a\x9a\x6b\x9a\xad\x9a\xb0\x9a\xbc\x9a\xc0\x9a\xcf\x9a\xd3\x9a\xd4\x9a\xd1\x9a\xd9\x9a\xdc\x9a\xde\x9a\xdf\x9a\xe2\x9a\xe3\x9a\xe6\x9a\xef\x9a\xeb\x9a\xee\x9a\xf4\x9a\xf1\x9a\xf7\x9a\xfb\x9b\x06\x9b\x18\x9b\x1a\x9b\x1f\x9b\x22\x9b\x23\x9b\x25", /* 6780 */ "\x9b\x27\x9b\x28\x9b\x29\x9b\x2a\x9b\x2e\x9b\x2f\x9b\x31\x9b\x32\x9b\x3b\x9b\x44\x9b\x43\x9b\x4d\x9b\x4e\x9b\x51\x9b\x58\x9b\x75\x9b\x74\x9b\x72\x9b\x93\x9b\x8f\x9b\x83\x9b\x91\x9b\x96\x9b\x97\x9b\x9f\x9b\xa0\x9b\xa8\x9b\xb1\x9b\xb4\x9b\xc0\x9b\xca\x9b\xbb\x9b\xb9\x9b\xc6\x9b\xcf\x9b\xd1\x9b\xd2\x9b\xe3\x9b\xe2\x9b\xe4\x9b\xd4\x9b\xe1\x9b\xf5\x9b\xf1\x9b\xf2\x9c\x04\x9c\x1b\x9c\x15\x9c\x14\x9c\x00\x9c\x09\x9c\x13\x9c\x0c\x9c\x06\x9c\x08\x9c\x12\x9c\x0a\x9c\x2e\x9c\x25\x9c\x24\x9c\x21\x9c\x30\x9c\x47\x9c\x32\x9c\x46\x9c\x3e\x9c\x5a\x9c\x60\x9c\x67\x9c\x76\x9c\x78\x9c\xeb\x9c\xe7\x9c\xec\x9c\xf0\x9d\x09\x9d\x03\x9d\x06\x9d\x2a\x9d\x26\x9d\x2c\x9d\x23\x9d\x1f\x9d\x15\x9d\x12\x9d\x41\x9d\x3f\x9d\x44\x9d\x3e\x9d\x46\x9d\x48\x9d\x5d\x9d\x5e\x9d\x59\x9d\x51\x9d\x50\x9d\x64\x9d\x72\x9d\x70\x9d\x87\x9d\x6b\x9d\x6f\x9d\x7a\x9d\x9a\x9d\xa4\x9d\xa9\x9d\xab\x9d\xb2\x9d\xc4\x9d\xc1\x9d\xbb\x9d\xb8\x9d\xba\x9d\xc6\x9d\xcf\x9d\xc2\xfa\x2d\x9d\xd9\x9d\xd3\x9d\xf8\x9d\xe6\x9d\xed\x9d\xef\x9d\xfd\x9e\x1a\x9e\x1b\x9e\x19\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x1e\x9e\x75\x9e\x79\x9e\x7d\x9e\x81\x9e\x88\x9e\x8b\x9e\x8c\x9e\x95\x9e\x91\x9e\x9d\x9e\xa5\x9e\xb8\x9e\xaa\x9e\xad\x9e\xbc\x9e\xbe\x97\x61\x9e\xcc\x9e\xcf\x9e\xd0\x9e\xd1\x9e\xd4\x9e\xdc\x9e\xde\x9e\xdd\x9e\xe0\x9e\xe5\x9e\xe8\x9e\xef\x9e\xf4\x9e\xf6\x9e\xf7\x9e\xf9\x9e\xfb\x9e\xfc\x9e\xfd\x9f\x07\x9f\x08\x76\xb7\x9f\x15\x9f\x21\x9f\x2c\x9f\x3e\x9f\x4a\x9f\x4e\x9f\x4f\x9f\x52\x9f\x54\x9f\x63\x9f\x5f\x9f\x60\x9f\x61\x9f\x66\x9f\x67\x9f\x6c\x9f\x6a\x9f\x77\x9f\x72\x9f\x76\x9f\x95\x9f\x9c\x9f\xa0", /* 6880 */ "\x5c\x2d\x69\xd9\x90\x65\x74\x76\x51\xdc\x71\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 6980 */ "\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc", /* 6a80 */ "\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba", /* 6b80 */ "\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78", /* 6c80 */ "\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36", /* 6d80 */ "\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4", /* 6e80 */ "\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2", /* 6f80 */ "\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70", /* 7080 */ "\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e", /* 7180 */ "\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec", /* 7280 */ "\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xe7\xa8\xe7\xa9\xe7\xaa", /* 7380 */ "\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe7\xff\xe8\x00\xe8\x01\xe8\x02\xe8\x03\xe8\x04\xe8\x05\xe8\x06\xe8\x07\xe8\x08\xe8\x09\xe8\x0a\xe8\x0b\xe8\x0c\xe8\x0d\xe8\x0e\xe8\x0f\xe8\x10\xe8\x11\xe8\x12\xe8\x13\xe8\x14\xe8\x15\xe8\x16\xe8\x17\xe8\x18\xe8\x19\xe8\x1a\xe8\x1b\xe8\x1c\xe8\x1d\xe8\x1e\xe8\x1f\xe8\x20\xe8\x21\xe8\x22\xe8\x23\xe8\x24\xe8\x25\xe8\x26\xe8\x27\xe8\x28\xe8\x29\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x2a\xe8\x2b\xe8\x2c\xe8\x2d\xe8\x2e\xe8\x2f\xe8\x30\xe8\x31\xe8\x32\xe8\x33\xe8\x34\xe8\x35\xe8\x36\xe8\x37\xe8\x38\xe8\x39\xe8\x3a\xe8\x3b\xe8\x3c\xe8\x3d\xe8\x3e\xe8\x3f\xe8\x40\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68", /* 7480 */ "\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe8\xff\xe9\x00\xe9\x01\xe9\x02\xe9\x03\xe9\x04\xe9\x05\xe9\x06\xe9\x07\xe9\x08\xe9\x09\xe9\x0a\xe9\x0b\xe9\x0c\xe9\x0d\xe9\x0e\xe9\x0f\xe9\x10\xe9\x11\xe9\x12\xe9\x13\xe9\x14\xe9\x15\xe9\x16\xe9\x17\xe9\x18\xe9\x19\xe9\x1a\xe9\x1b\xe9\x1c\xe9\x1d\xe9\x1e\xe9\x1f\xe9\x20\xe9\x21\xe9\x22\xe9\x23\xe9\x24\xe9\x25\xe9\x26", /* 7580 */ "\xe9\x27\xe9\x28\xe9\x29\xe9\x2a\xe9\x2b\xe9\x2c\xe9\x2d\xe9\x2e\xe9\x2f\xe9\x30\xe9\x31\xe9\x32\xe9\x33\xe9\x34\xe9\x35\xe9\x36\xe9\x37\xe9\x38\xe9\x39\xe9\x3a\xe9\x3b\xe9\x3c\xe9\x3d\xe9\x3e\xe9\x3f\xe9\x40\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xe9\x58\xe9\x59\xe9\x5a\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4", /* 7680 */ "\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xe9\xff\xea\x00\xea\x01\xea\x02\xea\x03\xea\x04\xea\x05\xea\x06\xea\x07\xea\x08\xea\x09\xea\x0a\xea\x0b\xea\x0c\xea\x0d\xea\x0e\xea\x0f\xea\x10\xea\x11\xea\x12\xea\x13\xea\x14\xea\x15\xea\x16\xea\x17\xea\x18\xea\x19\xea\x1a\xea\x1b\xea\x1c\xea\x1d\xea\x1e\xea\x1f\xea\x20\xea\x21\xea\x22\xea\x23\xea\x24\xea\x25\xea\x26\xea\x27\xea\x28\xea\x29\xea\x2a\xea\x2b\xea\x2c\xea\x2d\xea\x2e\xea\x2f\xea\x30\xea\x31\xea\x32\xea\x33\xea\x34\xea\x35\xea\x36\xea\x37\xea\x38\xea\x39\xea\x3a\xea\x3b\xea\x3c\xea\x3d\xea\x3e\xea\x3f\xea\x40\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2", /* 7780 */ "\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xea\xff\xeb\x00\xeb\x01\xeb\x02\xeb\x03\xeb\x04\xeb\x05\xeb\x06\xeb\x07\xeb\x08\xeb\x09\xeb\x0a\xeb\x0b\xeb\x0c\xeb\x0d\xeb\x0e\xeb\x0f\xeb\x10\xeb\x11\xeb\x12\xeb\x13\xeb\x14\xeb\x15\xeb\x16\xeb\x17\xeb\x18\xeb\x19\xeb\x1a\xeb\x1b\xeb\x1c\xeb\x1d\xeb\x1e\xeb\x1f\xeb\x20\xeb\x21\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x22\xeb\x23\xeb\x24\xeb\x25\xeb\x26\xeb\x27\xeb\x28\xeb\x29\xeb\x2a\xeb\x2b\xeb\x2c\xeb\x2d\xeb\x2e\xeb\x2f\xeb\x30\xeb\x31\xeb\x32\xeb\x33\xeb\x34\xeb\x35\xeb\x36\xeb\x37\xeb\x38\xeb\x39\xeb\x3a\xeb\x3b\xeb\x3c\xeb\x3d\xeb\x3e\xeb\x3f\xeb\x40\xeb\x41\xeb\x42\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d\xeb\x5e\xeb\x5f\xeb\x60", /* 7880 */ "\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xeb\xd7\xeb\xd8\xeb\xd9\xeb\xda\xeb\xdb\xeb\xdc\xeb\xdd\xeb\xde\xeb\xdf\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xeb\xf2\xeb\xf3\xeb\xf4\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe\xeb\xff\xec\x00\xec\x01\xec\x02\xec\x03\xec\x04\xec\x05\xec\x06\xec\x07\xec\x08\xec\x09\xec\x0a\xec\x0b\xec\x0c\xec\x0d\xec\x0e\xec\x0f\xec\x10\xec\x11\xec\x12\xec\x13\xec\x14\xec\x15\xec\x16\xec\x17\xec\x18\xec\x19\xec\x1a\xec\x1b\xec\x1c\xec\x1d\xec\x1e", /* 7980 */ "\xec\x1f\xec\x20\xec\x21\xec\x22\xec\x23\xec\x24\xec\x25\xec\x26\xec\x27\xec\x28\xec\x29\xec\x2a\xec\x2b\xec\x2c\xec\x2d\xec\x2e\xec\x2f\xec\x30\xec\x31\xec\x32\xec\x33\xec\x34\xec\x35\xec\x36\xec\x37\xec\x38\xec\x39\xec\x3a\xec\x3b\xec\x3c\xec\x3d\xec\x3e\xec\x3f\xec\x40\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc", /* 7a80 */ "\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xec\xff\xed\x00\xed\x01\xed\x02\xed\x03\xed\x04\xed\x05\xed\x06\xed\x07\xed\x08\xed\x09\xed\x0a\xed\x0b\xed\x0c\xed\x0d\xed\x0e\xed\x0f\xed\x10\xed\x11\xed\x12\xed\x13\xed\x14\xed\x15\xed\x16\xed\x17\xed\x18\xed\x19\xed\x1a\xed\x1b\xed\x1c\xed\x1d\xed\x1e\xed\x1f\xed\x20\xed\x21\xed\x22\xed\x23\xed\x24\xed\x25\xed\x26\xed\x27\xed\x28\xed\x29\xed\x2a\xed\x2b\xed\x2c\xed\x2d\xed\x2e\xed\x2f\xed\x30\xed\x31\xed\x32\xed\x33\xed\x34\xed\x35\xed\x36\xed\x37\xed\x38\xed\x39\xed\x3a\xed\x3b\xed\x3c\xed\x3d\xed\x3e\xed\x3f\xed\x40\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a", /* 7b80 */ "\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xed\xff\xee\x00\xee\x01\xee\x02\xee\x03\xee\x04\xee\x05\xee\x06\xee\x07\xee\x08\xee\x09\xee\x0a\xee\x0b\xee\x0c\xee\x0d\xee\x0e\xee\x0f\xee\x10\xee\x11\xee\x12\xee\x13\xee\x14\xee\x15\xee\x16\xee\x17\xee\x18\xee\x19\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x1a\xee\x1b\xee\x1c\xee\x1d\xee\x1e\xee\x1f\xee\x20\xee\x21\xee\x22\xee\x23\xee\x24\xee\x25\xee\x26\xee\x27\xee\x28\xee\x29\xee\x2a\xee\x2b\xee\x2c\xee\x2d\xee\x2e\xee\x2f\xee\x30\xee\x31\xee\x32\xee\x33\xee\x34\xee\x35\xee\x36\xee\x37\xee\x38\xee\x39\xee\x3a\xee\x3b\xee\x3c\xee\x3d\xee\x3e\xee\x3f\xee\x40\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58", /* 7c80 */ "\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xee\xff\xef\x00\xef\x01\xef\x02\xef\x03\xef\x04\xef\x05\xef\x06\xef\x07\xef\x08\xef\x09\xef\x0a\xef\x0b\xef\x0c\xef\x0d\xef\x0e\xef\x0f\xef\x10\xef\x11\xef\x12\xef\x13\xef\x14\xef\x15\xef\x16", /* 7d80 */ "\xef\x17\xef\x18\xef\x19\xef\x1a\xef\x1b\xef\x1c\xef\x1d\xef\x1e\xef\x1f\xef\x20\xef\x21\xef\x22\xef\x23\xef\x24\xef\x25\xef\x26\xef\x27\xef\x28\xef\x29\xef\x2a\xef\x2b\xef\x2c\xef\x2d\xef\x2e\xef\x2f\xef\x30\xef\x31\xef\x32\xef\x33\xef\x34\xef\x35\xef\x36\xef\x37\xef\x38\xef\x39\xef\x3a\xef\x3b\xef\x3c\xef\x3d\xef\x3e\xef\x3f\xef\x40\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xef\xd2\xef\xd3\xef\xd4", /* 7e80 */ "\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xef\xff\xf0\x00\xf0\x01\xf0\x02\xf0\x03\xf0\x04\xf0\x05\xf0\x06\xf0\x07\xf0\x08\xf0\x09\xf0\x0a\xf0\x0b\xf0\x0c\xf0\x0d\xf0\x0e\xf0\x0f\xf0\x10\xf0\x11\xf0\x12\xf0\x13\xf0\x14\xf0\x15\xf0\x16\xf0\x17\xf0\x18\xf0\x19\xf0\x1a\xf0\x1b\xf0\x1c\xf0\x1d\xf0\x1e\xf0\x1f\xf0\x20\xf0\x21\xf0\x22\xf0\x23\xf0\x24\xf0\x25\xf0\x26\xf0\x27\xf0\x28\xf0\x29\xf0\x2a\xf0\x2b\xf0\x2c\xf0\x2d\xf0\x2e\xf0\x2f\xf0\x30\xf0\x31\xf0\x32\xf0\x33\xf0\x34\xf0\x35\xf0\x36\xf0\x37\xf0\x38\xf0\x39\xf0\x3a\xf0\x3b\xf0\x3c\xf0\x3d\xf0\x3e\xf0\x3f\xf0\x40\xf0\x41\xf0\x42\xf0\x43\xf0\x44\xf0\x45\xf0\x46\xf0\x47\xf0\x48\xf0\x49\xf0\x4a\xf0\x4b\xf0\x4c\xf0\x4d\xf0\x4e\xf0\x4f\xf0\x50\xf0\x51\xf0\x52\xf0\x53\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x54\xf0\x55\xf0\x56\xf0\x57\xf0\x58\xf0\x59\xf0\x5a\xf0\x5b\xf0\x5c\xf0\x5d\xf0\x5e\xf0\x5f\xf0\x60\xf0\x61\xf0\x62\xf0\x63\xf0\x64\xf0\x65\xf0\x66\xf0\x67\xf0\x68\xf0\x69\xf0\x6a\xf0\x6b\xf0\x6c\xf0\x6d\xf0\x6e\xf0\x6f\xf0\x70\xf0\x71\xf0\x72\xf0\x73\xf0\x74\xf0\x75\xf0\x76\xf0\x77\xf0\x78\xf0\x79\xf0\x7a\xf0\x7b\xf0\x7c\xf0\x7d\xf0\x7e\xf0\x7f\xf0\x80\xf0\x81\xf0\x82\xf0\x83\xf0\x84\xf0\x85\xf0\x86\xf0\x87\xf0\x88\xf0\x89\xf0\x8a\xf0\x8b\xf0\x8c\xf0\x8d\xf0\x8e\xf0\x8f\xf0\x90\xf0\x91\xf0\x92", /* 7f80 */ "\xf0\x93\xf0\x94\xf0\x95\xf0\x96\xf0\x97\xf0\x98\xf0\x99\xf0\x9a\xf0\x9b\xf0\x9c\xf0\x9d\xf0\x9e\xf0\x9f\xf0\xa0\xf0\xa1\xf0\xa2\xf0\xa3\xf0\xa4\xf0\xa5\xf0\xa6\xf0\xa7\xf0\xa8\xf0\xa9\xf0\xaa\xf0\xab\xf0\xac\xf0\xad\xf0\xae\xf0\xaf\xf0\xb0\xf0\xb1\xf0\xb2\xf0\xb3\xf0\xb4\xf0\xb5\xf0\xb6\xf0\xb7\xf0\xb8\xf0\xb9\xf0\xba\xf0\xbb\xf0\xbc\xf0\xbd\xf0\xbe\xf0\xbf\xf0\xc0\xf0\xc1\xf0\xc2\xf0\xc3\xf0\xc4\xf0\xc5\xf0\xc6\xf0\xc7\xf0\xc8\xf0\xc9\xf0\xca\xf0\xcb\xf0\xcc\xf0\xcd\xf0\xce\xf0\xcf\xf0\xd0\xf0\xd1\xf0\xd2\xf0\xd3\xf0\xd4\xf0\xd5\xf0\xd6\xf0\xd7\xf0\xd8\xf0\xd9\xf0\xda\xf0\xdb\xf0\xdc\xf0\xdd\xf0\xde\xf0\xdf\xf0\xe0\xf0\xe1\xf0\xe2\xf0\xe3\xf0\xe4\xf0\xe5\xf0\xe6\xf0\xe7\xf0\xe8\xf0\xe9\xf0\xea\xf0\xeb\xf0\xec\xf0\xed\xf0\xee\xf0\xef\xf0\xf0\xf0\xf1\xf0\xf2\xf0\xf3\xf0\xf4\xf0\xf5\xf0\xf6\xf0\xf7\xf0\xf8\xf0\xf9\xf0\xfa\xf0\xfb\xf0\xfc\xf0\xfd\xf0\xfe\xf0\xff\xf1\x00\xf1\x01\xf1\x02\xf1\x03\xf1\x04\xf1\x05\xf1\x06\xf1\x07\xf1\x08\xf1\x09\xf1\x0a\xf1\x0b\xf1\x0c\xf1\x0d\xf1\x0e\xf1\x0f\xf1\x10\xf1\x11\x00\x00", /* 8000 */ NULL, /* 8080 */ NULL, /* 8100 */ NULL, /* 8180 */ NULL, /* 8200 */ NULL, /* 8280 */ NULL, /* 8300 */ NULL, /* 8380 */ NULL, /* 8400 */ NULL, /* 8480 */ NULL, /* 8500 */ NULL, /* 8580 */ NULL, /* 8600 */ NULL, /* 8680 */ NULL, /* 8700 */ NULL, /* 8780 */ NULL, /* 8800 */ NULL, /* 8880 */ NULL, /* 8900 */ NULL, /* 8980 */ NULL, /* 8a00 */ NULL, /* 8a80 */ NULL, /* 8b00 */ NULL, /* 8b80 */ NULL, /* 8c00 */ NULL, /* 8c80 */ NULL, /* 8d00 */ NULL, /* 8d80 */ NULL, /* 8e00 */ NULL, /* 8e80 */ NULL, /* 8f00 */ NULL, /* 8f80 */ NULL, /* 9000 */ NULL, /* 9080 */ NULL, /* 9100 */ NULL, /* 9180 */ NULL, /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ NULL, /* e080 */ NULL, /* e100 */ NULL, /* e180 */ NULL, /* e200 */ NULL, /* e280 */ NULL, /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp935", "0x04380345" /* 1080, 837 */, "gb2312.1980-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-837_P100-2000 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x88\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x44\x46\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x48\x46\x46\x46\x5a\x00\x00\x46\x4c\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x46\x50\x46\x4e\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x46\x54\x46\x52\x00\x00\x46\x59\x00\x00\x00\x00\x00\x00", /* 0100 */ "\x00\x00\x46\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x46\x4b\x00\x00\x46\x4f\x00\x00\x46\x53\x00\x00\x46\x55\x00\x00\x46\x56\x00\x00\x46\x57\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0200 */ NULL, /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x46\x00\x00\x45\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4a\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x8b\x00\x00\x44\xee\x44\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x66\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6b\x00\x00\x00\x00\x45\x77\x44\x4d\x00\x00\x45\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6d\x00\x00\x45\x63\x45\x64\x45\x68\x45\x67\x45\x71\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x45\x62\x45\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x75\x00\x00\x00\x00\x00\x00\x45\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x45\x73\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0", /* 2480 */ "\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2500 */ "\x46\xa4\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x45\x5b\x45\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x59\xba\x4b\xa0\x00\x00\x53\xde\x00\x00\x00\x00\x00\x00\x57\x93\x5b\x69\x54\xfc\x55\x6f\x58\x62\x5c\xa1\x49\xba\x5a\x8c\x00\x00\x5c\xa3\x4a\x94\x00\x00\x5c\x48\x54\x72\x5c\xa6\x55\xbf\x00\x00\x54\x91\x49\x9c\x59\xb4\x4a\xd3\x4b\xaa\x56\x5f\x5c\xa8\x00\x00\x00\x00\x00\x00\x4b\xa9\x00\x00\x51\x5d\x59\x6f\x00\x00\x55\x45\x5c\xac\x00\x00\x4c\xf5\x59\x5e\x62\x7c\x5b\xcf\x00\x00\x00\x00\x4c\x82\x00\x00\x4a\xad\x00\x00\x51\x79\x00\x00\x5c\xbb\x00\x00\x57\x89\x4b\x44\x57\xa9\x5b\xf6\x00\x00\x50\xf5\x4f\xd8\x5c\xae\x00\x00\x00\x00\x00\x00\x52\xca\x00\x00\x4f\xc2\x00\x00\x5c\xb0\x52\x54\x59\xe4\x00\x00\x5b\xad\x57\xd9\x5b\x47\x4d\xf4\x4c\x46\x50\xd5\x00\x00\x53\xb8\x53\x72\x54\x67\x00\x00\x4d\x74\x00\x00\x4a\x6b\x59\xd1\x00\x00\x00\x00\x5c\xbe\x4f\xc4\x53\xf1\x59\xb1\x58\x50\x58\x88\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe8\x00\x00\x00\x00\x5c\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf1\x51\xd1\x00\x00\x54\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x4c\x00\x00", /* 4e80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6b\x00\x00\x5a\x89\x5b\x9a\x00\x00\x55\xc1\x4b\xfd\x5c\xa0\x5a\x7a\x50\x98\x00\x00\x5a\xc5\x4e\x45\x5c\xc0\x57\xe4\x4f\xad\x00\x00\x00\x00\x5c\xa7\x00\x00\x59\x67\x58\xa8\x00\x00\x00\x00\x00\x00\x5c\xbc\x5d\x90\x57\x97\x50\x5a\x00\x00\x4f\x5b\x4d\xa4\x59\xdf\x49\xf9\x4d\xdf\x52\xb5\x00\x00\x58\x8e\x4f\xa8\x57\x44\x51\x61\x00\x00\x00\x00\x00\x00\x54\x77\x5d\x92\x00\x00\x5d\x95\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x5c\xe8\x00\x00\x00\x00\x00\x00\x59\xd9\x55\xb1\x54\xc9\x5c\xeb\x5c\xe9\x5c\xc5\x4f\x97\x53\xcc\x4a\x91\x00\x00\x5c\xea\x4f\x92\x4f\x8a\x00\x00\x54\xd3\x4a\xd2\x00\x00\x00\x00\x51\xd7\x00\x00\x49\xd5\x5c\x70\x55\xca\x56\x9c\x5b\x6c\x4c\xb5\x58\x69\x00\x00\x00\x00\x00\x00\x5d\x7a\x5c\xef\x54\x4a\x00\x00\x5c\xed\x00\x00\x4a\xf9\x51\x8f\x59\xd3\x00\x00\x00\x00\x5c\xec\x00\x00\x59\xc6\x5c\xee\x52\x67\x00\x00\x00\x00\x00\x00\x59\x97\x00\x00\x5b\xd8\x5c\xf1\x00\x00\x5c\xf4\x4e\xfd\x4e\xda\x00\x00\x00\x00\x00\x00\x54\xcd\x00\x00\x4c\x7d\x00\x00\x4c\x62", /* 4f00 */ "\x00\x00\x53\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf7\x59\xc0\x00\x00\x00\x00\x57\xe8\x4e\xbe\x4c\x9d\x4c\x45\x58\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd9\x5a\x65\x4e\x90\x4e\x82\x5c\xf0\x00\x00\x00\x00\x55\x41\x57\xaf\x4a\xaa\x00\x00\x5c\xf2\x00\x00\x55\x6b\x5c\xf5\x51\xd6\x5c\xf6\x00\x00\x00\x00\x57\xb0\x5c\xf8\x00\x00\x00\x00\x00\x00\x49\xad\x4d\x60\x00\x00\x5d\x43\x00\x00\x48\xe8\x00\x00\x51\x87\x00\x00\x55\x8d\x00\x00\x56\x65\x00\x00\x56\x66\x5d\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x89\x00\x00\x00\x00\x4b\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xba\x4b\x6d\x5c\x41\x5c\x95\x5a\x73\x00\x00\x56\xe4\x00\x00\x4d\xcd\x00\x00\x5d\x42\x5d\x7c\x5a\x81\x5c\xfc\x4c\x91\x5c\x98\x5c\xfd\x5c\xf9\x5d\x41\x52\xe2\x00\x00\x00\x00\x5a\x56\x5c\xf3\x5d\x7d\x00\x00\x5c\xfa\x00\x00\x53\x86\x00\x00\x00\x00\x50\xcf\x00\x00\x00\x00\x59\x91\x48\xda\x00\x00\x00\x00\x4e\xd0\x5d\x46\x00\x00\x5d\x45\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x4c\x5d\x4e\x00\x00\x5d\x4b\x55\xb8", /* 4f80 */ "\x00\x00\x00\x00\x00\x00\x5d\x49\x5b\xb5\x00\x00\x00\x00\x00\x00\x4a\x7e\x5d\x48\x00\x00\x50\xfc\x00\x00\x55\xcb\x00\x00\x5d\x4a\x00\x00\x5d\x47\x00\x00\x00\x00\x5d\x50\x00\x00\x00\x00\x4b\xb0\x00\x00\x00\x00\x00\x00\x4d\x49\x00\x00\x59\xbf\x00\x00\x00\x00\x58\x60\x00\x00\x00\x00\x51\xc1\x00\x00\x4f\x64\x5b\x8d\x49\xdf\x54\x68\x50\x8c\x5d\x4d\x00\x00\x5d\x4f\x00\x00\x57\xe9\x4d\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x84\x00\x00\x00\x00\x00\x00\x4a\xd8\x4b\xec\x5d\x54\x00\x00\x00\x00\x00\x00\x00\x00\x50\x41\x00\x00\x00\x00\x00\x00\x5d\x7e\x54\x6e\x50\xfd\x5d\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x77\x4c\x9e\x00\x00\x5d\x55\x00\x00\x5d\x57\x49\x43\x5a\x82\x5d\x59\x00\x00\x58\xc4\x00\x00\x5d\x56\x00\x00\x00\x00\x5d\x51\x00\x00\x5d\x52\x51\x49\x5d\x53\x00\x00\x00\x00\x4e\xf2\x58\xdd\x4c\xa8\x00\x00\x4f\xe2\x00\x00\x5d\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5a\x00\x00\x48\xb2\x00\x00\x00\x00\x00\x00\x5d\x62\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x64\x49\x56\x00\x00\x5d\x5f\x00\x00\x00\x00\x4b\x59\x00\x00\x4f\xf2\x00\x00\x00\x00\x00\x00\x56\xc7\x4d\xf1\x59\xcf\x00\x00\x5d\x63\x00\x00\x00\x00\x4f\x89\x00\x00\x4a\x4b\x00\x00\x00\x00\x00\x00\x5d\x65\x4f\xea\x00\x00\x5d\x66\x5d\x5b\x52\xde\x00\x00\x5d\x5e\x5d\x61\x5d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4e\x00\x00\x5b\xb4\x00\x00\x54\x84\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x68\x00\x00\x00\x00\x00\x00\x4e\xd8\x5d\x6a\x00\x00\x00\x00\x00\x00\x5d\x5c\x00\x00\x5d\x6b\x53\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x97\x00\x00\x57\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x5c\x57\x55\x00\x00\x00\x00\x00\x00\x5d\x6d\x00\x00\x00\x00\x5d\x67\x4a\x45", /* 5080 */ "\x50\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb4\x00\x00\x00\x00\x50\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf5\x00\x00\x5d\x6e\x00\x00\x5d\x6f\x4a\xa1\x5d\x70\x00\x00\x00\x00\x4a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x71\x55\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x72\x00\x00\x00\x00\x00\x00\x51\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x76\x55\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x75\x5d\x74\x5d\x77\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7b\x00\x00\x4f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa6\x00\x00\x00\x00\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x73\x5d\x78\x00\x00\x00\x00\x00\x00\x5d\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf8\x5c\xa2\x5a\xc9\x00\x00\x5a\xa9\x58\xd5\x4a\x85\x5b\x77\x00\x00\x58\x68\x4d\x83\x00\x00\x50\x6b\x00\x00\x52\x83\x00\x00\x00\x00\x00\x00\x4b\xd1\x00\x00\x00\x00\x57\x63\x5d\x8f\x5d\x91\x00\x00\x00\x00\x00\x00\x4b\x53\x00\x00\x4b\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa3\x00\x00\x00\x00\x54\xea\x00\x00\x00\x00\x54\xaa\x00\x00\x00\x00\x48\xca\x4d\x4b\x51\x9a\x5d\x83\x00\x00\x50\xbb\x4d\x52\x00\x00\x4d\x78\x58\xca\x49\x99\x53\xe3\x4f\xde\x4b\x85\x5c\x68\x00\x00\x59\x99\x4e\xe5\x55\xdd\x00\x00\x00\x00", /* 5180 */ "\x4e\xbc\x5d\x87\x5c\xe6\x00\x00\x00\x00\x52\xd9\x00\x00\x00\x00\x4c\xd3\x54\xbc\x00\x00\x00\x00\x49\xe0\x5a\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x52\x50\x00\x00\x00\x00\x52\x82\x5d\xa1\x54\xde\x00\x00\x58\xb3\x00\x00\x4f\xfb\x53\x49\x00\x00\x00\x00\x00\x00\x4d\x7a\x00\x00\x5d\xa2\x00\x00\x5a\xa8\x5d\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9c\x4b\xab\x00\x00\x00\x00\x4c\x8c\x49\x9a\x5d\x9d\x4a\x86\x4f\xf5\x00\x00\x50\x97\x59\xb0\x50\xe3\x00\x00\x00\x00\x00\x00\x4b\xb2\x5d\x9f\x5d\x9e\x00\x00\x00\x00\x4f\xba\x00\x00\x00\x00\x00\x00\x53\xdf\x00\x00\x5c\x5c\x5d\xa0\x00\x00\x51\x59\x00\x00\x4b\x93\x51\x89\x00\x00\x00\x00\x4e\xf4\x00\x00\x4a\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x7d\x00\x00\x52\xfc\x00\x00\x00\x00\x4e\xb7\x4c\x52\x00\x00\x00\x00\x4c\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8d\x00\x00\x53\xbd\x00\x00\x50\x4d\x4e\x6b\x00\x00\x00\x00\x4b\x6a\x00\x00\x5e\x69\x58\xd6\x00\x00\x57\x59\x48\xbb\x4a\x97\x4e\x98\x5e\x6a\x4d\xae\x00\x00\x5a\xe3", /* 5200 */ "\x4b\x56\x4b\x94\x5c\xd5\x54\xcf\x00\x00\x00\x00\x4c\x76\x54\x70\x5c\xd6\x00\x00\x50\x4f\x00\x00\x00\x00\x5e\x5b\x5c\xd7\x00\x00\x00\x00\x58\xcb\x4e\x4e\x00\x00\x00\x00\x00\x00\x66\x5e\x51\x70\x51\x96\x5a\xf1\x4c\xd4\x4a\xb3\x00\x00\x4a\x96\x00\x00\x00\x00\x55\x5e\x00\x00\x00\x00\x00\x00\x53\x70\x00\x00\x00\x00\x00\x00\x53\x79\x50\xfa\x00\x00\x49\x91\x00\x00\x5c\xd8\x4d\x6e\x00\x00\x4b\x5d\x00\x00\x00\x00\x5c\xd9\x00\x00\x00\x00\x5b\xc5\x56\x42\x54\xae\x55\x52\x4a\xcb\x50\x6c\x00\x00\x4d\x95\x00\x00\x5c\xda\x5c\xdb\x4b\xe6\x4e\xc0\x56\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x98\x00\x00\x5c\xdc\x54\x50\x00\x00\x00\x00\x4d\x70\x4f\x43\x00\x00\x00\x00\x56\xdd\x00\x00\x53\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdf\x00\x00\x5c\xdd\x00\x00\x00\x00\x5c\xde\x00\x00\x00\x00\x00\x00\x48\xfd\x00\x00\x4f\xe6\x00\x00\x55\xa2\x4e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb0\x00\x00\x00\x00\x4c\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe1\x00\x00\x4f\x6b", /* 5280 */ "\x00\x00\x5c\xe3\x5c\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe4\x00\x00\x00\x00\x5c\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x46\x00\x00\x54\xaf\x48\xeb\x4d\x46\x4e\xd2\x57\xf0\x5e\x5d\x51\x73\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xae\x5b\xf9\x53\x4c\x4f\x79\x5e\x5e\x5e\x5f\x00\x00\x00\x00\x00\x00\x50\xf7\x4f\xa1\x50\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x60\x55\xc5\x00\x00\x00\x00\x00\x00\x49\xa9\x00\x00\x00\x00\x00\x00\x5a\x62\x00\x00\x52\x84\x00\x00\x59\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x62\x00\x00\x50\xd4\x00\x00\x00\x00\x00\x00\x5e\x63\x00\x00\x50\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x89\x55\x77\x00\x00\x00\x00\x00\x00\x4d\x54\x57\xef", /* 5300 */ "\x5a\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x48\xfb\x4a\xd1\x00\x00\x58\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8a\x00\x00\x5f\xca\x5d\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xaf\x4e\x4f\x49\x51\x00\x00\x4a\x77\x5c\xcd\x00\x00\x00\x00\x5a\xd0\x00\x00\x00\x00\x4f\x53\x50\x90\x00\x00\x58\x5b\x00\x00\x00\x00\x5c\xcf\x00\x00\x00\x00\x00\x00\x4c\x6b\x00\x00\x00\x00\x00\x00\x5c\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa4\x54\x99\x59\xbc\x00\x00\x00\x00\x5c\xd1\x52\xe3\x00\x00\x55\xad\x00\x00\x54\x47\x00\x00\x5c\xa5\x00\x00\x55\x9e\x57\xe6\x4e\x7c\x48\xea\x00\x00\x00\x00\x00\x00\x4e\x4a\x58\xac\x00\x00\x49\x50\x5c\x85\x5c\x5f\x00\x00\x4b\x45\x51\xf3\x52\xce\x00\x00\x00\x00\x49\xa8\x00\x00\x49\xb6\x00\x00\x49\x86\x60\x52\x5b\x5c\x50\x48\x51\xab\x5c\xd4\x51\xb0\x00\x00\x5c\xd3\x57\xd3\x00\x00\x5d\xdf\x00\x00\x57\xbf\x00\x00\x00\x00\x5c\xb3\x52\x4e\x5a\x41\x57\xa2\x00\x00\x4e\xb3\x54\xb3\x51\xd0\x00\x00\x4f\xec\x58\xb5\x00\x00\x5d\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x54\x85", /* 5380 */ "\x00\x00\x00\x00\x4a\x47\x00\x00\x4b\xf1\x56\xfb\x50\xf9\x00\x00\x00\x00\x50\xf6\x00\x00\x59\x59\x59\x82\x5c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xdd\x00\x00\x00\x00\x50\xe4\x00\x00\x4d\xf0\x00\x00\x00\x00\x5c\xc7\x00\x00\x5a\xac\x00\x00\x00\x00\x58\x82\x5c\xc8\x00\x00\x5c\xc9\x58\x63\x00\x00\x4a\x99\x4f\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa4\x00\x00\x00\x00\x00\x00\x58\x78\x00\x00\x54\xfd\x49\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x76\x49\xe5\x4e\xaf\x5a\x71\x56\x4b\x4c\x54\x00\x00\x00\x00\x00\x00\x4c\x42\x00\x00\x00\x00\x55\xe4\x00\x00\x54\xa0\x55\xdb\x49\x85\x58\xef\x00\x00\x53\x71\x00\x00\x00\x00\x00\x00\x5e\x65\x4b\x9f\x00\x00\x00\x00\x50\x7a\x4d\x65\x4f\xe3\x51\x8e\x00\x00\x60\x56\x60\x55\x5b\xba\x4f\x70\x5b\x79\x48\xc7\x4b\xa2\x50\x69\x56\xa7\x60\x53\x55\xb6\x5a\x72\x00\x00\x5c\xce\x59\xb5\x4d\xc4\x56\x5e\x56\xbd\x00\x00\x60\x57\x4b\x91\x60\x54\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x5a\x96\x00\x00\x4a\x74\x4c\xf6\x00\x00\x60\x5a\x00\x00\x4d\xce\x4e\xa9\x4b\x96\x00\x00\x57\x4c\x52\x9c\x4d\xf2\x50\xf3\x57\x62\x58\x93\x60\x58\x58\x65\x00\x00\x51\xbf\x60\x59\x51\xef\x00\x00\x00\x00\x00\x00\x4f\xfc\x00\x00\x51\x7f\x57\x6c\x59\xf6\x4c\x6d\x60\x61\x00\x00\x60\x64\x00\x00\x00\x00\x4c\x92\x48\xc8\x4b\xd5\x4c\x74\x00\x00\x4d\xab\x56\xfc\x50\x74\x56\x51\x53\xf3\x00\x00\x5b\xa7\x60\x65\x00\x00\x57\xe1\x4a\x53\x00\x00\x00\x00\x57\xfb\x4a\xb4\x00\x00\x57\xc6\x4d\xef\x00\x00\x57\xe0\x00\x00\x59\x5d\x00\x00\x00\x00\x60\x60\x00\x00\x00\x00\x4a\xf3\x00\x00\x4a\x6a\x00\x00\x4c\xe5\x60\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc4\x00\x00\x60\x5c\x60\x5d\x60\x5e\x53\x5b\x60\x5f\x60\x62\x5a\xb0\x60\x63\x00\x00\x54\x5a\x57\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd7\x00\x00\x60\x6a\x00\x00\x60\x6f\x00\x00\x5b\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x69\x60\x7a\x57\xb5\x00\x00\x4d\xc6\x60\x6e\x60\x68\x53\x7e\x00\x00\x00\x00\x55\x8c\x4d\xf3\x52\x9d\x00\x00\x00\x00", /* 5480 */ "\x4f\xd6\x00\x00\x60\x66\x00\x00\x60\x6d\x00\x00\x53\x78\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x46\x4d\xcc\x00\x00\x4f\xcb\x5a\x5d\x4c\xbf\x00\x00\x5b\xe3\x00\x00\x60\x67\x4d\x5e\x50\x47\x00\x00\x00\x00\x51\x9d\x60\x6b\x60\x6c\x00\x00\x60\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x7b\x60\x86\x00\x00\x60\x77\x60\x76\x5c\x69\x60\x84\x60\x85\x63\x8c\x59\xa6\x60\x72\x00\x00\x50\x49\x00\x00\x5a\xda\x00\x00\x50\x68\x60\x74\x00\x00\x00\x00\x00\x00\x58\x6c\x00\x00\x00\x00\x60\x7d\x00\x00\x59\x6a\x00\x00\x60\x7e\x48\xa6\x53\xb6\x60\x73\x00\x00\x4d\xe4\x00\x00\x4b\xde\x57\x7b\x4d\x9f\x5a\xd4\x00\x00\x00\x00\x60\x7f\x58\x8d\x48\xa4\x60\x88\x60\x71\x59\x66\x60\x75\x60\x78\x60\x79\x60\x7c\x00\x00\x4e\x49\x00\x00\x60\x81\x60\x82\x00\x00\x60\x83\x60\x87\x60\x89\x5a\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe6\x53\x56\x60\x8b\x55\x7a\x51\x48\x52\xc3\x00\x00\x00\x00\x50\x7e\x58\x99\x00\x00\x00\x00\x00\x00\x5b\x7c\x60\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb7\x00\x00\x4d\xde\x60\x8d\x00\x00\x5e\x61", /* 5500 */ "\x00\x00\x59\x85\x00\x00\x00\x00\x00\x00\x00\x00\x56\x95\x4a\xbc\x00\x00\x48\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x92\x56\xc5\x60\x93\x00\x00\x00\x00\x60\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8c\x00\x00\x60\x90\x60\x91\x4e\x5d\x00\x00\x00\x00\x60\x94\x00\x00\x00\x00\x60\x95\x00\x00\x4e\x43\x00\x00\x55\xda\x57\xa7\x60\xa6\x4a\x4a\x00\x00\x60\xa5\x00\x00\x00\x00\x00\x00\x60\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9f\x00\x00\x57\x79\x60\x9d\x00\x00\x60\x9b\x00\x00\x50\x70\x5c\x64\x00\x00\x55\x6c\x00\x00\x00\x00\x60\x99\x48\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9c\x60\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x68\x00\x00\x00\x00\x53\xa0\x55\x56\x50\xb1\x60\x96\x00\x00\x00\x00\x53\x5e\x00\x00\x5c\xc3\x60\x9a\x52\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xa2\x60\xa3\x60\xa4\x58\xa4\x00\x00\x00\x00\x60\xb3\x56\xe3\x00\x00\x60\xb0\x00\x00", /* 5580 */ "\x50\x46\x60\xae\x57\xb8\x60\xaa\x55\x66\x00\x00\x00\x00\x50\xad\x60\xad\x4d\xec\x4d\xaf\x60\xa8\x00\x00\x00\x00\x00\x00\x60\x97\x00\x00\x60\xb2\x00\x00\x00\x00\x60\xb7\x00\x00\x00\x00\x00\x00\x4a\xac\x60\xb8\x00\x00\x00\x00\x58\x52\x4d\xc7\x00\x00\x60\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xab\x00\x00\x5a\xfa\x00\x00\x60\x98\x00\x00\x53\x88\x00\x00\x60\xac\x00\x00\x5a\x98\x00\x00\x60\xb5\x60\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc3\x58\xe0\x00\x00\x00\x00\x00\x00\x60\xbb\x00\x00\x00\x00\x60\xc8\x60\xc9\x00\x00\x00\x00\x00\x00\x60\xbd\x60\xa9\x55\x44\x60\xc0\x00\x00\x60\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc7\x60\xc2\x00\x00\x60\xb4\x00\x00\x57\xca\x00\x00\x56\x63\x60\xcc\x60\xc5\x60\xc1\x00\x00\x60\xca\x00\x00\x60\xb9\x60\xbe\x60\xbf\x00\x00\x00\x00\x60\xc4\x00\x00\x00\x00\x60\xc6\x60\xc7\x00\x00\x60\xcb\x00\x00\x60\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x74\x60\xd4\x00\x00", /* 5600 */ "\x60\xd5\x60\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcf\x4e\xcd\x00\x00\x00\x00\x60\xd0\x00\x00\x4c\xc1\x5c\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe9\x00\x00\x00\x00\x51\xee\x00\x00\x00\x00\x60\xce\x60\xbc\x00\x00\x00\x00\x00\x00\x60\xd3\x60\xd2\x00\x00\x00\x00\x60\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x60\xdb\x60\xd7\x00\x00\x00\x00\x00\x00\x5b\xf5\x4a\x50\x00\x00\x5c\x8d\x00\x00\x56\x5b\x00\x00\x00\x00\x60\xd9\x00\x00\x57\xfa\x00\x00\x00\x00\x00\x00\x4d\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe0\x60\xdc\x59\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe1\x00\x00\x00\x00\x60\xda\x60\xd8\x60\xde\x00\x00\x00\x00\x60\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xdd\x00\x00\x60\xe3\x00\x00\x00\x00\x00\x00\x53\xf6\x5c\xab\x5a\xea\x60\xe5\x55\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe6\x60\xe7\x00\x00\x00\x00\x00\x00", /* 5680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe8\x60\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xbe\x56\xe6\x00\x00\x00\x00\x00\x00\x60\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xeb\x00\x00\x00\x00\x60\xec\x00\x00\x00\x00\x54\x95\x56\x64\x00\x00\x60\xed\x4e\x78\x5c\xb5\x59\xf1\x60\xee\x57\x65\x00\x00\x4b\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf0\x00\x00\x5a\xaf\x00\x00\x00\x00\x50\xa6\x4a\xd0\x00\x00\x00\x00\x57\xa6\x60\xef\x00\x00\x00\x00\x00\x00\x60\xf1\x4d\x6c\x00\x00\x00\x00\x4d\x9b\x57\x5c\x60\xf2", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x53\xd3\x60\xf3\x00\x00\x5a\xb1\x00\x00\x54\xa5\x60\xf5\x60\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf6\x00\x00\x00\x00\x57\x61\x00\x00\x00\x00\x00\x00\x55\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd9\x5e\x77\x5e\x79\x00\x00\x5e\x78\x4d\x88\x5e\x7c\x5e\x7d\x4b\x78\x00\x00\x00\x00\x5e\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7b\x4a\x41\x5e\x7f\x00\x00\x00\x00\x4e\x99\x00\x00\x5b\xb6\x00\x00\x5e\x81\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf8\x00\x00\x00\x00\x4c\x5b\x00\x00\x5e\x70\x56\xad\x50\x52\x4e\x55\x5c\x99\x50\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8a\x00\x00\x00\x00\x4e\xe0\x56\xb2\x5e\x7e\x48\xd2\x57\xea\x4c\x78\x5c\x59\x53\xc1\x00\x00\x00\x00\x50\xa3\x00\x00\x56\xb8\x00\x00\x5e\x88\x5e\x82\x53\xb9\x5e\x84\x00\x00\x5e\x89\x00\x00\x53\x98\x00\x00\x00\x00\x00\x00\x5e\x8b\x00\x00\x00\x00\x5e\x8a\x50\x60\x00\x00\x00\x00\x00\x00\x5e\x87\x5e\x86\x00\x00\x00\x00\x00\x00", /* 5780 */ "\x00\x00\x00\x00\x4a\xb8\x50\xab\x51\xa1\x5e\x83\x5e\x85\x00\x00\x00\x00\x00\x00\x00\x00\x58\xcc\x5e\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdc\x5e\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x94\x5e\x72\x4d\x58\x5a\xaa\x5e\x8d\x00\x00\x50\x71\x5e\x91\x00\x00\x5e\x71\x00\x00\x4b\x87\x00\x00\x5e\x8c\x50\x86\x00\x00\x00\x00\x00\x00\x5e\x8f\x00\x00\x5e\x92\x00\x00\x00\x00\x00\x00\x5e\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x41\x48\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf0\x00\x00\x00\x00\x4a\x67\x5e\x90\x00\x00\x00\x00\x5e\x99\x00\x00\x53\xd1\x5e\x95\x00\x00\x00\x00\x5e\x96\x5e\x98\x5e\x97\x00\x00\x00\x00\x5e\x9f\x00\x00\x5a\x93\x49\xb9\x00\x00\x00\x00\x00\x00\x5e\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa3\x00\x00\x5e\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9b\x00\x00\x00\x00\x00\x00\x5e\x9d\x53\x81\x4e\x9a\x00\x00\x00\x00\x5e\xa2\x00\x00\x00\x00", /* 5800 */ "\x5e\xa4\x00\x00\x56\xc2\x00\x00\x00\x00\x00\x00\x4b\xd0\x5f\x60\x00\x00\x00\x00\x00\x00\x5e\xa0\x00\x00\x5e\xa1\x00\x00\x00\x00\x00\x00\x54\x55\x00\x00\x00\x00\x00\x00\x4b\xe8\x00\x00\x00\x00\x00\x00\x5e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa5\x00\x00\x5e\xa8\x49\x44\x00\x00\x00\x00\x4b\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x9b\x66\x94\x00\x00\x00\x00\x00\x00\x56\x7c\x00\x00\x00\x00\x56\x9f\x00\x00\x00\x00\x00\x00\x56\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xed\x5e\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x73\x00\x00", /* 5880 */ "\x5e\xae\x5e\xab\x00\x00\x4f\xb2\x00\x00\x55\xfa\x00\x00\x00\x00\x00\x00\x5e\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6a\x52\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x5d\x5e\xad\x00\x00\x00\x00\x00\x00\x5a\xf5\x58\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xaa\x4b\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x74\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7a\x00\x00\x00\x00\x00\x00\x5e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x76\x00\x00\x00\x00\x00\x00\x4d\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbe\x54\xc8\x00\x00\x5c\x53\x00\x00\x55\x9a\x00\x00\x00\x00\x50\x67\x00\x00\x00\x00\x4d\xf7\x00\x00\x00\x00\x59\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x61\xb9\x00\x00\x4a\xa5\x00\x00\x00\x00\x49\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb3\x00\x00\x58\x64\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x88\x58\x46\x57\x83\x00\x00\x00\x00\x5d\x8e\x4b\xdf\x00\x00\x59\xb8\x00\x00\x00\x00\x4d\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb8\x61\xb6\x00\x00\x4a\xf2\x00\x00\x56\xeb\x56\xaa\x4c\x93\x00\x00\x5c\xb1\x59\x8c\x4d\xba\x00\x00\x55\xa6\x00\x00\x00\x00\x57\x57\x00\x00\x00\x00\x59\xc3\x50\x85\x4e\xcf\x4b\xe0\x00\x00\x5f\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc5\x5e\x5c\x00\x00\x59\x79\x00\x00\x00\x00\x53\xe5\x52\xcd\x4c\x8f\x00\x00\x4c\x7c\x00\x00\x00\x00\x50\x9d\x5c\x81\x00\x00\x53\xf4\x00\x00\x00\x00\x49\x5c\x5f\xc7\x4f\x51\x56\xd6\x5f\xc9\x00\x00\x5f\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8d\x00\x00\x55\x7d\x00\x00\x00\x00\x48\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4e\x53\x4b\x00\x00\x52\xcb\x00\x00\x4e\xe8\x56\x9e\x00\x00\x00\x00\x00\x00\x4d\xc2\x00\x00\x00\x00", /* 5980 */ "\x00\x00\x63\x9a\x54\xe6\x63\x9b\x57\x9e\x00\x00\x5c\x51\x4c\xbd\x51\xe7\x00\x00\x54\xd0\x00\x00\x00\x00\x63\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc9\x4e\xca\x00\x00\x00\x00\x59\x9e\x63\xa0\x00\x00\x52\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9f\x63\xa4\x57\x77\x00\x00\x00\x00\x4c\x61\x63\x9d\x63\x9e\x63\xa2\x00\x00\x00\x00\x52\xdc\x63\xa7\x00\x00\x00\x00\x63\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x63\x00\x00\x53\xdd\x00\x00\x00\x00\x63\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb6\x00\x00\x00\x00\x00\x00\x63\xa1\x55\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x84\x4d\x63\x63\xa5\x58\xd4\x57\xae\x00\x00\x00\x00\x63\xa8\x63\xaf\x00\x00\x59\xa5\x00\x00\x4f\x4a\x63\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xae\x00\x00\x50\xd0\x00\x00\x00\x00\x59\xcb\x00\x00\x00\x00\x00\x00\x4e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb0\x00\x00\x59\xf5\x00\x00\x00\x00\x00\x00\x5c\x6b", /* 5a00 */ "\x00\x00\x57\x9f\x00\x00\x57\x7e\x51\xa5\x63\xaa\x63\xab\x4f\x5f\x63\xad\x63\xb2\x00\x00\x00\x00\x63\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb5\x00\x00\x63\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x52\xee\x00\x00\x00\x00\x00\x00\x52\xc7\x00\x00\x00\x00\x4f\xe9\x55\x90\x00\x00\x00\x00\x63\xb6\x00\x00\x4b\xef\x00\x00\x00\x00\x00\x00\x52\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8a\x63\xb3\x00\x00\x63\xb4\x00\x00\x54\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbc\x00\x00\x00\x00\x00\x00\x63\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc4\x00\x00\x00\x00\x57\x92\x63\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb9\x00\x00\x00\x00\x50\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x44\x63\xbe\x55\x95\x63\xc2\x00\x00\x00\x00\x63\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf5", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x64\x63\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc6\x58\x51\x00\x00\x66\x95\x00\x00\x00\x00\x63\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc4\x00\x00\x00\x00\x4e\xdd\x55\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb4\x00\x00\x00\x00\x58\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc7\x00\x00\x63\xc8\x00\x00\x63\xcd\x00\x00\x63\xcf\x00\x00\x00\x00\x00\x00\x63\xd0\x00\x00\x00\x00\x00\x00\x63\xca\x4b\x75\x00\x00\x63\xcb\x00\x00\x00\x00\x63\xce\x00\x00\x00\x00\x52\xda\x00\x00\x63\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd3\x63\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd4\x00\x00\x5d\x99\x00\x00\x00\x00\x63\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x73\x63\xdc\x00\x00\x63\xdd\x50\x77\x5a\xcf\x00\x00\x5c\x76\x4a\xe5\x56\x90\x63\xd9\x5c\xc2\x5c\x6e\x58\xa1\x00\x00\x52\x6f\x00\x00\x00\x00\x63\xde\x4e\xbd\x4d\x62\x63\xda\x59\x47\x00\x00\x00\x00\x4d\xa1\x51\xce\x00\x00\x5c\xaa\x00\x00\x00\x00\x00\x00\x55\xea\x63\x8f\x00\x00\x63\xdb\x00\x00\x4c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe5\x00\x00\x00\x00\x52\xf4\x00\x00\x00\x00", /* 5b80 */ "\x63\x52\x52\xfd\x00\x00\x56\x9d\x63\x53\x5b\x4c\x00\x00\x5a\x8f\x55\xd7\x48\xb1\x00\x00\x56\x6e\x57\x8b\x00\x00\x00\x00\x4d\xe9\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x63\x54\x00\x00\x5c\x7a\x4d\x79\x5b\xe5\x4b\xa7\x57\x91\x59\xca\x49\x46\x55\xb4\x00\x00\x4a\x89\x55\x94\x50\x6d\x58\xfa\x55\xd1\x63\x56\x4e\x62\x00\x00\x00\x00\x00\x00\x58\x7c\x4d\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd6\x00\x00\x00\x00\x4d\xa5\x59\x88\x58\x9d\x4e\xd1\x00\x00\x63\x57\x54\xdc\x00\x00\x00\x00\x00\x00\x50\x8e\x49\x97\x56\x7e\x00\x00\x00\x00\x4e\xc4\x00\x00\x4e\xc3\x59\xf9\x52\x7c\x50\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xba\x00\x00\x00\x00\x00\x00\x52\x62\x00\x00\x4d\xad\x5a\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7e\x52\xae\x49\xeb\x00\x00\x4d\x71\x00\x00\x00\x00\x63\x5b\x51\x68\x00\x00\x00\x00\x5b\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5c\x00\x00\x63\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xe6\x4b\xd3\x56\x62\x59\x50\x4b\x5c\x00\x00\x00\x00\x55\xd8", /* 5c00 */ "\x00\x00\x4c\x83\x00\x00\x00\x00\x55\x85\x00\x00\x4f\x4b\x00\x00\x00\x00\x57\xbd\x5c\x91\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa0\x00\x00\x55\x79\x00\x00\x00\x00\x4b\xfa\x63\xd7\x4e\xe1\x00\x00\x4a\x5e\x00\x00\x55\x70\x00\x00\x63\xd8\x4a\x42\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcb\x00\x00\x5a\x68\x5f\xcc\x00\x00\x59\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcc\x00\x00\x00\x00\x5f\xce\x00\x00\x00\x00\x00\x00\x55\xab\x59\xfb\x4a\x7f\x63\x8b\x52\xe0\x4f\xa0\x57\xb1\x52\xf1\x4f\xd5\x53\xa7\x49\xe2\x00\x00\x00\x00\x4f\xd2\x00\x00\x00\x00\x54\x9d\x56\xea\x4f\x8d\x57\xdc\x00\x00\x00\x00\x55\xb9\x53\xc0\x63\x8d\x58\xbb\x00\x00\x00\x00\x00\x00\x5b\x59\x00\x00\x00\x00\x00\x00\x63\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf3\x00\x00\x57\x60\x51\xc4\x00\x00\x63\x90\x00\x00\x51\xc3\x63\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x99\x57\x6d\x00\x00\x55\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd8\x61\x48\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8d", /* 5c80 */ "\x00\x00\x56\x8b\x53\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x4c\x00\x00\x00\x00\x00\x00\x61\x47\x61\x49\x00\x00\x00\x00\x61\x4a\x61\x4f\x00\x00\x00\x00\x49\xec\x00\x00\x61\x4b\x4c\xd9\x61\x4d\x61\x4e\x61\x50\x4b\x5a\x61\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x53\x61\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x72\x00\x00\x61\x56\x61\x55\x51\x8c\x00\x00\x00\x00\x00\x00\x61\x57\x00\x00\x5a\xbf\x00\x00\x61\x52\x00\x00\x61\x5a\x48\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x61\x54\x00\x00\x50\x9a\x00\x00\x61\x59\x00\x00\x00\x00\x61\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5f\x00\x00\x00\x00\x61\x5d\x61\x5f\x51\xcc\x00\x00\x4b\xea\x00\x00\x5a\x99\x00\x00\x00\x00\x54\x6d\x00\x00\x00\x00\x4c\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xfd\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x61\x60\x61\x61\x00\x00\x00\x00\x61\x67\x4a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xdd\x00\x00\x59\x62\x00\x00\x00\x00\x00\x00\x00\x00\x61\x68\x00\x00\x00\x00\x61\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x65\x00\x00\x61\x63\x61\x62\x00\x00\x49\x60\x00\x00\x00\x00\x00\x00\x5b\x58\x61\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6c\x61\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x9b\x00\x00\x00\x00\x61\x73\x61\x72\x54\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x69\x00\x00\x00\x00\x61\x6e\x00\x00\x61\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x74\x00\x00\x61\x71\x61\x6d\x00\x00\x00\x00\x61\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x61\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d80 */ "\x00\x00\x00\x00\x61\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x77\x00\x00\x00\x00\x00\x00\x61\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7d\x00\x00\x4a\xa7\x5b\xdc\x00\x00\x00\x00\x59\x52\x4a\x52\x00\x00\x00\x00\x4d\x44\x5c\x94\x54\x69\x4f\xdd\x4d\x4e\x00\x00\x57\xd6\x00\x00\x00\x00\x49\xed\x5e\x6f\x00\x00\x4e\xb9\x59\xd0\x56\x68\x48\xcc\x00\x00\x00\x00\x58\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x84\x4f\x8e\x00\x00", /* 5e00 */ "\x00\x00\x49\x72\x55\xcf\x49\xbb\x00\x00\x56\x47\x4c\x4b\x00\x00\x55\xa5\x00\x00\x00\x00\x00\x00\x58\x43\x00\x00\x00\x00\x60\xf7\x5b\x6a\x60\xfa\x00\x00\x00\x00\x60\xf9\x53\x61\x56\xfa\x00\x00\x51\x51\x60\xf8\x5b\xe2\x49\xae\x5b\xc3\x4b\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf7\x5b\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x4f\x48\xee\x00\x00\x00\x00\x60\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x41\x4a\x43\x00\x00\x00\x00\x60\xfc\x60\xfd\x52\x51\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7d\x00\x00\x61\x42\x4c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x43\x52\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x44\x00\x00\x00\x00\x61\x45\x00\x00\x00\x00\x61\x46\x4a\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc8\x53\xbc\x52\xe9\x00\x00\x49\xa1\x00\x00\x58\xd1\x00\x00\x64\x7b\x4e\x63\x5a\x77\x5a\x64\x00\x00\x4d\x84", /* 5e80 */ "\x61\xce\x00\x00\x00\x00\x00\x00\x5c\x4f\x00\x00\x54\x8d\x49\x73\x00\x00\x00\x00\x4a\xb1\x61\xd0\x00\x00\x00\x00\x00\x00\x58\xf1\x51\xad\x61\xcf\x00\x00\x50\x83\x5a\x46\x4b\x77\x61\xd1\x4b\x8b\x00\x00\x52\x8e\x4c\xfc\x00\x00\x4c\xad\x00\x00\x53\x73\x4c\x6f\x61\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd2\x4b\xc7\x5c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd7\x00\x00\x61\xd5\x55\xfb\x50\x55\x5a\x59\x61\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4e\x50\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xda\x61\xd9\x50\xa9\x00\x00\x00\x00\x51\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdc\x00\x00\x61\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x68\x00\x00\x59\x73\x57\x42\x00\x00\x00\x00\x4f\x48\x00\x00\x00\x00\x00\x00\x5f\xc2\x5c\xa4", /* 5f00 */ "\x50\x4a\x5e\x6d\x59\xeb\x53\xf9\x53\x4a\x00\x00\x00\x00\x00\x00\x5f\xc3\x00\x00\x49\x77\x60\x4e\x00\x00\x00\x00\x00\x00\x55\xbc\x00\x00\x60\x51\x00\x00\x4d\x4d\x00\x00\x59\xfc\x00\x00\x4c\xa4\x4d\xea\x00\x00\x00\x00\x4a\x7a\x00\x00\x00\x00\x00\x00\x4b\x7c\x5b\x65\x00\x00\x00\x00\x00\x00\x00\x00\x52\x76\x58\x72\x4e\x41\x00\x00\x63\x94\x63\x93\x00\x00\x00\x00\x63\x95\x00\x00\x57\x85\x00\x00\x54\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4f\x54\x5f\x00\x00\x63\x97\x00\x00\x00\x00\x00\x00\x66\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x87\x00\x00\x4d\x8a\x4b\x51\x00\x00\x51\xbb\x63\x89\x63\x88\x63\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x59\xcc\x00\x00\x00\x00\x00\x00\x61\x8b\x58\xcd\x00\x00\x57\x4e\x00\x00\x59\x86\x00\x00\x00\x00\x49\xc9\x49\x8c\x00\x00\x49\x93\x53\x8e\x00\x00\x00\x00\x5b\x63\x5a\x50\x00\x00\x61\x7c\x00\x00\x00\x00\x00\x00\x61\x7d\x00\x00\x59\xda\x00\x00\x4a\x59\x49\x6b\x00\x00\x00\x00\x00\x00", /* 5f80 */ "\x57\x9a\x5b\x98\x61\x7e\x00\x00\x4f\xb5\x4a\xfc\x00\x00\x61\x7f\x4d\xdb\x61\x81\x4e\x52\x51\xc8\x61\x82\x00\x00\x00\x00\x00\x00\x58\xeb\x00\x00\x57\x5d\x00\x00\x00\x00\x61\x83\x00\x00\x4b\x63\x53\x67\x61\x84\x00\x00\x00\x00\x61\x85\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x86\x00\x00\x59\x4d\x00\x00\x00\x00\x61\x87\x57\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x88\x00\x00\x4b\x62\x00\x00\x00\x00\x00\x00\x00\x00\x61\x89\x4e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc3\x61\xdf\x49\x78\x59\xe3\x00\x00\x00\x00\x61\xe0\x00\x00\x00\x00\x4e\xc8\x54\xcb\x00\x00\x61\xe2\x66\xfd\x66\xfc\x60\x4f\x00\x00\x00\x00\x00\x00\x61\xe1\x5b\xbd\x57\x9d\x52\x46\x00\x00\x00\x00\x00\x00\x62\x63\x00\x00\x00\x00\x5b\xd1\x61\xe6\x00\x00\x00\x00\x61\xe7\x00\x00\x00\x00\x5a\x67\x00\x00\x00\x00\x61\xeb\x50\x8d\x00\x00\x61\xec\x61\xe4\x00\x00\x00\x00\x4a\x60\x00\x00\x00\x00\x00\x00\x52\xed\x00\x00\x00\x00\x61\xed\x00\x00\x00\x00\x58\xc2\x00\x00\x4d\xf5\x61\xe8\x4c\x7e", /* 6000 */ "\x4e\x53\x56\xab\x56\x6b\x61\xe3\x61\xe5\x61\xe9\x61\xea\x00\x00\x00\x00\x00\x00\x61\xf6\x00\x00\x00\x00\x61\xf3\x5a\xf4\x61\xf2\x00\x00\x00\x00\x53\x4d\x00\x00\x5b\x9b\x53\x62\x49\xbf\x00\x00\x00\x00\x61\xee\x00\x00\x61\xf1\x51\x4f\x56\x5c\x00\x00\x00\x00\x4b\x41\x61\xf8\x00\x00\x00\x00\x00\x00\x4e\xb0\x61\xf0\x58\xd3\x5a\xb8\x61\xf4\x4d\x76\x61\xf5\x00\x00\x00\x00\x00\x00\x54\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x7c\x67\x41\x00\x00\x00\x00\x61\xf7\x00\x00\x67\x45\x61\xfd\x55\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x55\x00\x00\x4e\x70\x00\x00\x00\x00\x50\x76\x00\x00\x4d\xe2\x00\x00\x00\x00\x56\x41\x00\x00\x00\x00\x00\x00\x67\x46\x67\x43\x00\x00\x00\x00\x67\x42\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x76\x67\x47\x58\xf3\x00\x00\x00\x00\x67\x44\x4d\xdd\x4b\xf6\x62\x41\x4b\xb1\x56\xf0\x4d\x47\x00\x00\x58\x42\x54\x41\x00\x00\x00\x00\x50\x72\x00\x00\x00\x00\x4b\xf0\x00\x00\x61\xf9\x61\xfa\x61\xfc\x61\xfb\x52\xd4\x62\x42\x00\x00\x5a\x61", /* 6080 */ "\x00\x00\x00\x00\x00\x00\x62\x47\x54\x64\x00\x00\x00\x00\x00\x00\x00\x00\x58\x44\x00\x00\x00\x00\x62\x49\x4d\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x62\x48\x00\x00\x4e\x7a\x00\x00\x62\x43\x00\x00\x00\x00\x00\x00\x62\x44\x62\x4a\x00\x00\x62\x46\x00\x00\x57\xf1\x5a\x66\x00\x00\x00\x00\x4e\x5c\x00\x00\x00\x00\x5a\xc2\x00\x00\x52\xf9\x00\x00\x00\x00\x67\x48\x58\xfb\x62\x45\x00\x00\x52\x96\x00\x00\x62\x4d\x49\x4f\x00\x00\x62\x52\x00\x00\x00\x00\x00\x00\x4e\xc1\x00\x00\x00\x00\x62\x4c\x4b\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8a\x62\x50\x00\x00\x00\x00\x00\x00\x4f\xa9\x57\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x94\x00\x00\x00\x00\x00\x00\x56\xe7\x00\x00\x00\x00\x62\x4f\x00\x00\x62\x51\x00\x00\x58\x47\x62\x4e\x00\x00\x57\xa8\x4e\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8c\x4f\xe4\x49\xd1\x4a\x6d\x00\x00\x49\x59\x62\x4b\x49\xd0\x4b\x4c\x4d\x7f\x4b\xe7\x00\x00\x00\x00\x58\x8c\x62\x57\x00\x00\x4e\x6c\x00\x00\x00\x00\x54\xc6\x58\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6100 */ "\x62\x58\x4a\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x49\x00\x00\x5a\x9b\x5a\x85\x00\x00\x00\x00\x00\x00\x67\x4a\x62\x59\x59\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x55\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xcf\x62\x53\x00\x00\x00\x00\x62\x56\x4c\x7f\x00\x00\x62\x54\x50\xa1\x00\x00\x00\x00\x00\x00\x62\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc7\x00\x00\x62\x5b\x00\x00\x4e\x65\x00\x00\x55\x98\x00\x00\x00\x00\x55\x86\x00\x00\x00\x00\x00\x00\x52\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x51\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x7b\x50\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5c\x00\x00\x50\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x90\x00\x00\x00\x00\x5a\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5f\x4d\xa8\x67\x4c\x00\x00\x00\x00\x62\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb5\x00\x00\x00\x00\x00\x00\x4b\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb7\x00\x00\x48\xc2\x67\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4f\x50\xc0\x00\x00\x62\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb1", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x50\x00\x00\x4c\xe9\x00\x00\x57\xeb\x65\xa6\x58\xe6\x55\xf8\x54\xd5\x58\x57\x4a\x69\x57\xd1\x4f\x85\x00\x00\x00\x00\x62\x7e\x4e\x93\x65\xa7\x5b\x5d\x00\x00\x53\xdc\x65\xa8\x00\x00\x00\x00\x00\x00\x65\xa9\x00\x00\x65\xab\x65\xaa\x00\x00\x65\xad\x65\xac\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x78\x00\x00\x65\xae\x00\x00\x51\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc0\x4a\xf6\x00\x00\x00\x00\x4e\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe5\x66\xe4\x4c\x5f\x56\x9a\x49\x83\x00\x00\x66\xe6\x00\x00\x00\x00\x00\x00\x55\x68\x66\xe7\x66\xe8\x00\x00\x55\xd5\x5f\xcf\x49\xc4\x5a\xf9\x00\x00\x00\x00\x53\xca\x48\xc6\x4a\xf1\x54\xd2\x00\x00\x00\x00\x00\x00\x57\x70\x00\x00\x00\x00\x50\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x7b\x00\x00\x00\x00\x54\x44\x5b\xb3\x00\x00\x50\xa8\x5f\xd0\x55\x48\x59\x90\x53\x44\x48\xe6\x4a\x56\x54\xc4\x00\x00\x00\x00\x48\xe1\x00\x00\x00\x00\x4c\x97\x00\x00\x00\x00\x53\x9b\x00\x00\x00\x00\x4b\xf2\x00\x00\x5b\x72\x4a\x70", /* 6280 */ "\x4e\xbb\x00\x00\x00\x00\x00\x00\x4a\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf0\x48\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd5\x55\xe2\x5c\x45\x00\x00\x57\x56\x4b\xb5\x50\x59\x5b\x7b\x00\x00\x4c\xa6\x53\x77\x00\x00\x00\x00\x00\x00\x5f\xd1\x50\x79\x51\xd4\x54\x60\x00\x00\x4e\x44\x49\x48\x00\x00\x00\x00\x53\x8b\x00\x00\x00\x00\x53\x9c\x56\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x49\x47\x00\x00\x00\x00\x00\x00\x4b\x76\x00\x00\x00\x00\x00\x00\x52\xa7\x00\x00\x5f\xd2\x59\x5a\x4a\x8a\x00\x00\x52\x93\x00\x00\x00\x00\x4c\x98\x00\x00\x5b\xf3\x4b\x43\x49\xef\x52\xb3\x52\xe8\x50\xac\x5f\xd3\x00\x00\x48\xe7\x53\x64\x51\x81\x00\x00\x4d\x75\x00\x00\x4f\xdb\x57\x78\x48\xcd\x00\x00\x57\x6f\x5f\xd5\x4f\xcf\x5c\x5e\x5f\xd4\x5b\x70\x48\xdc\x00\x00\x00\x00\x52\xe1\x00\x00\x00\x00\x51\xa2\x4e\xef\x00\x00\x5a\x55\x50\xb8\x53\x41\x49\xa5\x5a\xf0\x00\x00\x00\x00\x50\xa7\x55\xc2\x5f\xd6\x5b\x9d\x00\x00\x4d\x50\x00\x00\x54\xac\x56\x49\x00\x00\x5f\xd8\x50\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x53\xb3\x5c\x47\x55\xaf\x52\xc2", /* 6300 */ "\x00\x00\x4a\x76\x4d\x72\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb7\x65\xfb\x48\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x50\x87\x00\x00\x00\x00\x56\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x57\x7a\x00\x00\x00\x00\x00\x00\x5b\xbe\x51\xcd\x00\x00\x57\xcd\x56\xa1\x58\xad\x52\xd2\x4b\x52\x5f\xd7\x5b\x96\x4e\xb6\x4e\x73\x00\x00\x00\x00\x48\xa3\x00\x00\x53\x52\x4a\xeb\x00\x00\x00\x00\x00\x00\x5b\x92\x00\x00\x00\x00\x65\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xd9\x57\x46\x00\x00\x00\x00\x57\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe5\x5f\xdb\x00\x00\x57\x51\x50\xa5\x00\x00\x00\x00\x5c\x5d\x00\x00\x5f\xda\x48\xc5\x4d\xb3\x55\x73\x52\xf2\x4f\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xcb\x56\x91\x00\x00\x4e\xf0\x4e\x5b\x4b\x57\x00\x00\x00\x00\x00\x00\x53\x96\x00\x00\x5f\xe5\x00\x00\x00\x00\x00\x00\x5f\xe2\x4f\xdc\x00\x00\x00\x00\x5f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb6\x4f\x7d\x00\x00\x00\x00\x5f\xdf\x52\xec\x00\x00\x00\x00\x00\x00\x00\x00", /* 6380 */ "\x58\x66\x00\x00\x4b\x81\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xdd\x55\xd9\x4b\x95\x5f\xe4\x00\x00\x5b\x66\x00\x00\x5f\xe0\x56\xcc\x53\xfd\x00\x00\x53\x65\x00\x00\x00\x00\x00\x00\x59\xb3\x00\x00\x4f\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd2\x00\x00\x56\xbc\x4a\x58\x00\x00\x4f\x73\x00\x00\x50\x78\x57\x66\x59\x7a\x4a\xea\x00\x00\x5f\xe3\x5f\xdc\x5f\xe6\x00\x00\x65\xfd\x00\x00\x00\x00\x51\xaf\x5f\xe1\x00\x00\x00\x00\x5b\xbf\x4b\x47\x00\x00\x49\xf3\x00\x00\x5f\xe7\x00\x00\x5f\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xec\x00\x00\x5f\xf0\x00\x00\x00\x00\x54\xdf\x00\x00\x00\x00\x00\x00\x5c\x82\x5f\xee\x52\x89\x56\xe0\x00\x00\x49\xe4\x00\x00\x00\x00\x00\x00\x59\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xed\x00\x00\x5f\xea\x57\xd4\x00\x00\x4a\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4b\x4f\xbd\x00\x00\x00\x00\x4f\x72\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe8\x00\x00\x5a\xad\x00\x00\x5f\xdd\x00\x00\x5f\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x50\xbe\x00\x00\x5f\xeb", /* 6400 */ "\x49\xf2\x4c\xe8\x51\xa6\x00\x00\x00\x00\x4f\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf4\x5f\xf7\x00\x00\x00\x00\x49\xaa\x4a\xa3\x00\x00\x00\x00\x4a\xe9\x55\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf5\x56\x71\x00\x00\x4c\xe2\x00\x00\x5f\xf6\x5f\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf8\x00\x00\x00\x00\x00\x00\x56\xc1\x00\x00\x48\xe0\x4a\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xae\x00\x00\x00\x00\x49\xea\x00\x00\x66\x41\x00\x00\x5f\xf3\x00\x00\x00\x00\x55\x84\x5f\xf2\x48\xd9\x59\xa0\x49\x98\x00\x00\x56\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xef\x00\x00\x56\x44\x00\x00\x00\x00\x00\x00\x5b\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xdc\x00\x00\x52\xa5\x00\x00\x00\x00\x00\x00\x5f\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9f\x52\xa0\x60\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6480 */ "\x00\x00\x00\x00\x51\x6c\x00\x00\x5f\xfb\x4f\xee\x00\x00\x53\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x65\x54\xf5\x00\x00\x00\x00\x56\x5a\x5f\xfd\x00\x00\x00\x00\x60\x44\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x57\x00\x00\x00\x00\x00\x00\x00\x00\x51\x63\x00\x00\x00\x00\x54\x6b\x49\xa4\x4a\xe8\x00\x00\x5c\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xeb\x00\x00\x60\x42\x60\x43\x00\x00\x60\x45\x00\x00\x4d\xb2\x00\x00\x00\x00\x00\x00\x60\x46\x00\x00\x50\xdd\x00\x00\x00\x00\x55\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xd8\x54\x87\x00\x00\x60\x47\x00\x00\x54\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x60\x48\x66\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x73\x00\x00\x00\x00\x00\x00\x60\x4a\x00\x00\x60\x49\x00\x00\x49\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6500 */ "\x53\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xef\x00\x00\x00\x00\x60\x4d\x5b\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb6\x66\x56\x55\xd4\x00\x00\x5c\xfb\x4c\xc3\x00\x00\x4d\x45\x00\x00\x00\x00\x4c\x65\x5b\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6a\x00\x00\x00\x00\x58\xa6\x6a\xcc\x00\x00\x00\x00\x4b\x70\x00\x00\x00\x00\x52\x95\x00\x00\x4f\xc7\x00\x00\x00\x00\x00\x00\x66\x57\x48\xbc\x00\x00\x00\x00\x4f\x6c\x00\x00\x51\x52\x00\x00\x49\x76\x4a\x48\x00\x00\x00\x00\x00\x00\x4c\xd1\x55\x42\x00\x00\x00\x00\x4b\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x66\x58\x4f\xb3\x00\x00\x00\x00\x00\x00\x55\xfc\x00\x00\x54\x63\x00\x00\x5b\x9c\x00\x00\x00\x00\x4c\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc3\x00\x00\x00\x00\x00\x00\x5b\x4b\x49\x94\x00\x00\x00\x00\x00\x00\x66\xb2\x48\xde\x00\x00\x66\xb4\x00\x00\x00\x00\x00\x00\x4b\xb6\x00\x00\x51\x6f\x00\x00\x6b\x9b\x58\xb0\x00\x00\x00\x00\x5b\x86\x00\x00\x57\xd2\x00\x00\x00\x00\x4f\x90\x4a\x83\x00\x00\x4c\xaa\x00\x00\x5b\x56\x00\x00\x67\x5d\x00\x00\x4b\xce\x00\x00\x56\x59\x58\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x5d\x00\x00\x00\x00\x66\xb5\x55\xa8\x00\x00\x00\x00\x00\x00\x53\x74\x00\x00\x66\xb8\x66\xb7\x51\xc2\x66\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfc\x66\xb9\x00\x00\x66\xba\x5c\x86\x00\x00\x00\x00\x66\xbb\x00\x00\x00\x00\x00\x00\x66\xbc\x53\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xdd\x00\x00\x4e\xc7\x00\x00\x00\x00\x54\xd4\x4b\x49\x4f\xc8\x5b\xbb\x5a\xe6\x00\x00\x00\x00\x59\x4e\x58\xf0\x65\xb7\x65\xb8\x65\xb9\x4d\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb0\x50\x96\x00\x00\x00\x00\x57\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6600 */ "\x65\xbf\x00\x00\x48\xb9\x65\xbd\x00\x00\x00\x00\x50\xa4\x00\x00\x00\x00\x00\x00\x65\xba\x00\x00\x49\xfc\x00\x00\x52\x98\x4e\x89\x00\x00\x00\x00\x00\x00\x59\xd6\x57\xf3\x65\xbe\x00\x00\x00\x00\x00\x00\x65\xbb\x00\x00\x00\x00\x00\x00\x65\xc2\x00\x00\x58\xc6\x5a\x53\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb9\x00\x00\x52\x61\x5c\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x71\x00\x00\x55\xc6\x00\x00\x65\xc4\x00\x00\x00\x00\x65\xc3\x65\xc6\x65\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xe6\x00\x00\x58\x74\x00\x00\x00\x00\x65\xca\x00\x00\x4e\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9b\x55\x6e\x00\x00\x00\x00\x65\xcb\x00\x00\x00\x00\x55\x59\x58\x9f\x65\xc9\x5a\xcd\x65\xcc\x65\xce\x00\x00\x00\x00\x57\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc8\x00\x00\x65\xcd\x00\x00\x00\x00\x57\xed\x00\x00\x4e\x7e\x00\x00\x4a\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd4\x4f\xaf\x57\xf9\x00\x00\x00\x00\x00\x00\x54\x88\x00\x00\x4f\xa6\x65\xcf\x00\x00\x00\x00\x5b\xc6\x00\x00\x00\x00\x00\x00\x51\x60\x00\x00", /* 6680 */ "\x00\x00\x00\x00\x5a\xdc\x00\x00\x65\xd0\x00\x00\x00\x00\x58\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x55\xed\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4f\x48\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd2\x6a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x49\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xee\x00\x00\x65\xd5\x65\xd6\x53\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd7\x00\x00\x00\x00\x65\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xba\x00\x00\x54\x9b\x59\xb6\x4c\xfb\x00\x00\x00\x00\x65\xc1\x00\x00\x49\xdb\x00\x00\x00\x00\x51\xfb\x00\x00\x5a\xf7\x56\xe5", /* 6700 */ "\x5c\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc1\x5a\x70\x66\x63\x53\x94\x00\x00\x4c\x9f\x00\x00\x00\x00\x66\x74\x00\x00\x00\x00\x00\x00\x56\x57\x66\x7e\x00\x00\x50\xc9\x00\x00\x00\x00\x00\x00\x57\x9c\x00\x00\x4a\x4f\x00\x00\x53\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x9d\x00\x00\x52\xbd\x00\x00\x57\xb3\x52\xa8\x49\x5e\x5a\xfc\x00\x00\x55\xf4\x00\x00\x5b\xeb\x00\x00\x00\x00\x53\xd2\x4b\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x9b\x00\x00\x00\x00\x58\xdf\x00\x00\x00\x00\x55\x51\x00\x00\x5a\xd2\x54\xa7\x00\x00\x00\x00\x4c\xca\x00\x00\x64\xbd\x55\x5c\x00\x00\x00\x00\x64\xba\x00\x00\x50\xed\x58\xd2\x49\xc3\x4a\xe4\x00\x00\x64\xbb\x00\x00\x00\x00\x5b\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc4\x00\x00\x64\xbc\x55\xf7\x4c\xdb\x56\xf4\x00\x00\x00\x00\x00\x00\x50\xb3\x00\x00\x00\x00\x59\x8f\x64\xbe\x64\xc1\x00\x00\x00\x00\x4d\xbb\x00\x00\x49\x4d\x4f\x7c\x00\x00\x65\xbc\x64\xc2\x00\x00\x64\xc5\x00\x00\x64\xca\x00\x00\x00\x00\x00\x00\x00\x00\x64\xcb\x00\x00\x56\x69\x48\xe4", /* 6780 */ "\x00\x00\x4e\xaa\x00\x00\x00\x00\x4d\x59\x00\x00\x00\x00\x64\xc0\x00\x00\x57\x98\x00\x00\x64\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8e\x00\x00\x51\x76\x64\xc3\x00\x00\x52\x56\x00\x00\x4d\x9c\x5b\xa5\x64\xc7\x00\x00\x00\x00\x00\x00\x55\xdf\x5a\xe5\x00\x00\x64\xbf\x00\x00\x64\xc4\x64\xc6\x00\x00\x54\x59\x4c\x84\x00\x00\x64\xc8\x00\x00\x50\x7d\x64\xd1\x00\x00\x00\x00\x64\xd6\x00\x00\x64\xd4\x4e\xdb\x4e\xce\x64\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xdd\x00\x00\x64\xd9\x49\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd7\x52\xb2\x4c\xcb\x53\xe1\x54\xbd\x54\xe0\x00\x00\x00\x00\x00\x00\x64\xce\x64\xd3\x64\xd5\x00\x00\x4d\x92\x64\xd7\x5c\x96\x00\x00\x52\xfa\x00\x00\x64\xdb\x00\x00\x00\x00\x49\xe8\x00\x00\x00\x00\x00\x00\x64\xd0\x00\x00\x00\x00\x4e\xec\x00\x00\x00\x00\x50\x62\x64\xcc\x5b\xf8\x00\x00\x51\x99\x49\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xde\x00\x00\x55\xc0", /* 6800 */ "\x64\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x44\x00\x00\x49\x8b\x5b\x5b\x64\xcd\x64\xcf\x4b\xaf\x64\xd2\x00\x00\x64\xdc\x50\xb7\x00\x00\x55\xf6\x00\x00\x56\x48\x00\x00\x00\x00\x53\xdb\x50\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe8\x00\x00\x00\x00\x00\x00\x58\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf1\x5b\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xdf\x64\xe0\x00\x00\x00\x00\x00\x00\x59\x9a\x4d\xca\x4c\xf8\x00\x00\x00\x00\x4c\xf0\x5a\xd3\x64\xee\x00\x00\x64\xed\x64\xeb\x4d\x91\x56\xd1\x64\xe5\x57\xa5\x50\x93\x00\x00\x48\xb7\x64\xf0\x64\xef\x00\x00\x5c\x60\x00\x00\x64\xe3\x00\x00\x57\x49\x55\x43\x00\x00\x4e\x58\x4f\x7b\x64\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe1\x64\xe2\x64\xe4\x4b\x55\x64\xe6\x54\x65\x64\xea\x64\xec\x4f\x50\x5c\x4e\x00\x00\x64\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf4\x00\x00\x57\x50\x64\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6880 */ "\x00\x00\x51\x5a\x00\x00\x64\xe7\x00\x00\x52\x57\x48\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf3\x00\x00\x00\x00\x00\x00\x64\xf6\x00\x00\x00\x00\x00\x00\x4d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x52\x6e\x57\xdf\x50\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x56\x94\x00\x00\x56\xdc\x58\xb4\x00\x00\x00\x00\x55\xe0\x00\x00\x64\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xeb\x00\x00\x64\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7e\x00\x00\x53\xe4\x00\x00\x4d\x98\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf3\x00\x00\x00\x00\x5c\x78\x00\x00\x00\x00\x4e\xab\x00\x00\x53\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc3\x00\x00\x00\x00\x65\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4d\x00\x00\x65\x42\x50\xe1\x00\x00\x00\x00\x00\x00\x50\x63\x00\x00\x00\x00\x00\x00\x64\xfd\x4d\x77\x00\x00\x64\xfa\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x65\x44\x00\x00\x00\x00\x00\x00\x59\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x43\x00\x00\x5b\xb1\x5c\x55\x00\x00\x65\x47\x00\x00\x4f\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfb\x64\xfc\x00\x00\x00\x00\x00\x00\x65\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x76\x00\x00\x00\x00\x59\xab\x00\x00\x00\x00\x00\x00\x65\x52\x00\x00\x00\x00\x00\x00\x00\x00\x65\x49\x00\x00\x00\x00\x00\x00\x4a\xa9\x00\x00\x4a\xba\x00\x00\x00\x00\x65\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa7\x00\x00\x00\x00\x65\x45\x00\x00\x00\x00\x4a\x9f\x00\x00\x00\x00\x65\x4c\x50\xe2\x00\x00\x65\x4a\x00\x00\x00\x00\x65\x59\x00\x00\x00\x00\x65\x58\x00\x00\x00\x00\x00\x00\x00\x00\x65\x4e\x00\x00\x00\x00\x64\xf9\x00\x00\x00\x00\x65\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4c\x65\x51\x65\x5a\x00\x00\x00\x00\x51\xa4\x00\x00\x00\x00\x00\x00", /* 6980 */ "\x65\x4f\x00\x00\x4c\xc4\x00\x00\x65\x4d\x00\x00\x5a\x7c\x65\x54\x65\x55\x65\x57\x00\x00\x00\x00\x00\x00\x65\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xc5\x65\x65\x00\x00\x00\x00\x65\x50\x00\x00\x00\x00\x65\x5b\x48\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5c\x5b\x45\x00\x00\x00\x00\x65\x5e\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x65\x61\x00\x00\x00\x00\x51\x92\x00\x00\x00\x00\x54\xb5\x00\x00\x00\x00\x00\x00\x65\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x63\x00\x00\x65\x53\x00\x00\x65\x56\x00\x00\x4e\x51\x00\x00\x00\x00\x00\x00\x65\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf6\x00\x00\x00\x00\x00\x00\x65\x64\x65\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xda\x00\x00\x65\x68", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6b\x65\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x61\x00\x00\x52\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x78\x00\x00\x4d\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x65\x69\x00\x00\x5a\x43\x00\x00\x00\x00\x00\x00\x65\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x77\x65\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6f\x00\x00\x00\x00\x54\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x79\x4a\x68\x00\x00\x65\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x91\x00\x00\x00\x00\x00\x00\x65\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x76\x00\x00\x00\x00\x65\x7a\x00\x00\x00\x00\x00\x00", /* 6a80 */ "\x56\xb3\x00\x00\x00\x00\x00\x00\x58\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x75\x00\x00\x65\x7c\x65\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7d\x00\x00\x65\x7f\x52\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x57\x4a\xcd\x4e\x56\x58\xbf\x66\xa2\x00\x00\x00\x00\x53\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa3\x00\x00\x66\xa4\x53\xda\x00\x00\x00\x00\x00\x00\x50\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa5\x00\x00\x00\x00\x66\xa6\x58\xa9\x00\x00\x54\x58\x00\x00\x00\x00\x4c\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb8\x5b\x9e\x4a\xca\x49\xbc\x57\xe3\x53\xe6\x00\x00\x00\x00\x57\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf4\x00\x00\x56\x60\x4e\xde\x00\x00\x00\x00\x00\x00", /* 6b80 */ "\x00\x00\x65\x83\x65\x84\x59\x8b\x65\x86\x00\x00\x4a\xf8\x65\x85\x00\x00\x59\x53\x55\xe1\x49\xcf\x00\x00\x65\x89\x00\x00\x00\x00\x00\x00\x00\x00\x65\x87\x65\x88\x00\x00\x00\x00\x5b\xb2\x00\x00\x00\x00\x00\x00\x65\x8a\x65\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xae\x53\x59\x4b\xcd\x00\x00\x59\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8f\x00\x00\x4e\x79\x66\xb0\x00\x00\x00\x00\x59\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe2\x00\x00\x52\xb7\x00\x00\x52\x5f\x00\x00\x00\x00\x4b\xbd\x5c\xb8\x49\x68\x49\x6f\x49\x71\x53\x9f\x00\x00\x49\x70\x00\x00\x52\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x44\x4d\xc0\x00\x00\x00\x00\x00\x00\x56\xb9\x00\x00\x00\x00\x00\x00\x66\x45\x00\x00\x66\x47\x00\x00\x00\x00\x00\x00\x66\x48\x00\x00\x00\x00\x00\x00\x66\x46\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x49\x66\x4b\x66\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4c\x00\x00\x55\xce\x5c\xb4\x52\x92\x00\x00\x52\x45\x53\xf7\x66\x4d\x52\xc9\x00\x00\x66\x4e\x66\x4f\x66\x50\x4c\x75\x00\x00\x00\x00\x00\x00\x4c\x9b\x00\x00\x66\x51\x54\x83\x00\x00\x66\x53\x00\x00\x4d\xa3\x59\x96\x48\xb0\x66\x52\x66\x54\x00\x00\x00\x00\x00\x00\x4b\x4a\x51\xc7\x54\x89\x00\x00\x66\x55\x00\x00\x56\x4e\x62\x7f\x00\x00\x00\x00\x5a\x60\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x7b\x00\x00\x00\x00\x57\x41\x5b\xac\x54\x94\x00\x00\x00\x00\x00\x00\x5d\x81\x4e\x84\x00\x00\x4d\xb9\x62\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x4b\x00\x00\x00\x00\x00\x00\x62\x81\x55\x67\x00\x00\x4d\xb8\x00\x00\x00\x00\x00\x00\x59\x54\x62\x82\x54\xe9\x4d\x4f\x4f\x4d\x4a\x78\x57\xda\x00\x00\x00\x00\x56\xbf\x00\x00\x00\x00\x00\x00\x62\x89\x62\x8a\x57\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xac\x00\x00\x4e\xb2\x00\x00\x62\x8b\x00\x00\x62\x8c\x00\x00\x00\x00\x58\xd9\x00\x00\x00\x00\x00\x00\x53\xfa\x4c\x7a\x00\x00", /* 6c80 */ "\x00\x00\x54\x7f\x59\xc9\x57\xd5\x00\x00\x62\x85\x62\x8d\x00\x00\x55\x93\x4a\x61\x00\x00\x00\x00\x62\x88\x00\x00\x00\x00\x53\xe2\x62\x86\x00\x00\x00\x00\x67\x53\x62\x87\x00\x00\x00\x00\x00\x00\x00\x00\x55\x53\x00\x00\x53\x87\x00\x00\x00\x00\x00\x00\x4d\x55\x00\x00\x52\x5b\x00\x00\x62\x84\x53\x5d\x51\x44\x51\xd8\x49\xd6\x00\x00\x62\x8e\x4e\x46\x52\xac\x00\x00\x62\x91\x4f\xd9\x00\x00\x00\x00\x62\x9c\x62\x96\x4d\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x70\x5a\x6d\x00\x00\x5b\xcd\x5b\x73\x4d\x61\x5b\x54\x59\x78\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb8\x54\x97\x00\x00\x00\x00\x00\x00\x54\xa9\x49\xb3\x00\x00\x52\x7a\x00\x00\x00\x00\x00\x00\x62\x8f\x00\x00\x00\x00\x62\x9d\x62\x90\x4c\x48\x62\x98\x62\x95\x00\x00\x00\x00\x00\x00\x4c\x5a\x00\x00\x00\x00\x53\x42\x00\x00\x62\x97\x53\x7d\x49\xa7\x53\xfb\x00\x00\x52\xdf\x00\x00\x00\x00\x5c\x42\x00\x00\x50\xe0\x62\x9a\x00\x00\x00\x00\x62\x9b\x62\x9e\x56\xa8\x62\x94\x00\x00\x5a\x5e\x00\x00\x49\x63\x67\x54\x62\x92\x62\x93\x00\x00\x62\x99\x58\xb9\x53\xc2\x5a\xf2\x62\x9f\x00\x00", /* 6d00 */ "\x00\x00\x4f\x81\x00\x00\x00\x00\x62\xa6\x00\x00\x00\x00\x62\xa5\x00\x00\x00\x00\x00\x00\x59\x94\x62\xa2\x00\x00\x62\xa8\x00\x00\x00\x00\x00\x00\x54\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x58\x54\x00\x00\x62\xa7\x62\xad\x51\xe4\x00\x00\x00\x00\x4b\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x93\x00\x00\x62\xa1\x00\x00\x00\x00\x4d\xe8\x62\xa9\x00\x00\x00\x00\x62\xab\x00\x00\x00\x00\x4b\xfc\x5b\xdd\x62\xb1\x00\x00\x62\xac\x00\x00\x00\x00\x00\x00\x62\xa0\x00\x00\x4e\x8f\x57\x7d\x54\x42\x53\x69\x00\x00\x00\x00\x51\x98\x00\x00\x62\xa3\x00\x00\x54\x53\x4f\x4c\x4f\x5d\x62\xa4\x00\x00\x5c\x67\x49\xe1\x00\x00\x62\xaa\x4e\xc2\x62\xae\x00\x00\x4e\x8c\x62\xaf\x53\x48\x62\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x84\x50\x43\x00\x00\x62\xb9\x00\x00\x62\xb6\x00\x00\x62\xba\x00\x00\x00\x00\x62\xbc\x00\x00\x00\x00\x53\xd5\x00\x00\x00\x00\x4d\xc5\x50\xca\x00\x00\x00\x00\x00\x00\x4c\xa0\x62\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa0\x00\x00\x00\x00\x4d\xa2\x4f\x9f\x00\x00\x00\x00\x00\x00\x62\xbb\x00\x00\x00\x00\x00\x00", /* 6d80 */ "\x00\x00\x00\x00\x57\x5f\x00\x00\x00\x00\x52\xf8\x00\x00\x00\x00\x58\x9c\x55\x87\x00\x00\x00\x00\x5a\x5f\x00\x00\x58\x71\x00\x00\x00\x00\x62\xb2\x00\x00\x62\xb7\x62\xb8\x56\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xcd\x00\x00\x50\xd3\x62\xb4\x51\x50\x62\xb5\x57\xcf\x00\x00\x4e\x61\x4b\x73\x00\x00\x54\xf2\x4f\x47\x5b\x67\x55\x4c\x4c\xa1\x62\xc9\x00\x00\x00\x00\x62\xcb\x59\x64\x00\x00\x00\x00\x59\xb9\x00\x00\x00\x00\x4d\xac\x00\x00\x00\x00\x4d\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc2\x4b\x8e\x00\x00\x00\x00\x00\x00\x5c\x6d\x62\xbf\x58\x9e\x62\xbe\x00\x00\x00\x00\x00\x00\x51\x7c\x56\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd6\x00\x00\x56\xd3\x62\xc7\x00\x00\x00\x00\x00\x00\x62\xc6\x62\xc0\x00\x00\x62\xc3\x4b\x4d\x00\x00\x00\x00\x5a\x79\x00\x00\x62\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf8\x4a\xe2\x00\x00\x4e\x54\x00\x00\x00\x00\x55\x8f\x00\x00\x4a\xbd\x00\x00\x00\x00\x00\x00\x4e\x8d\x00\x00\x59\x6d\x00\x00\x56\xec\x67\x55\x00\x00\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x86\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa7\x00\x00\x62\xca\x5c\x75\x62\xc1\x00\x00\x4f\x45\x62\xc4\x00\x00\x00\x00\x5a\x87\x00\x00\x62\xc8\x55\x99\x00\x00\x00\x00\x62\xbd\x00\x00\x00\x00\x5a\x86\x00\x00\x00\x00\x54\x9f\x4b\xc8\x00\x00\x5a\xfb\x49\xb2\x62\xd6\x00\x00\x00\x00\x00\x00\x57\xc1\x00\x00\x62\xcc\x00\x00\x57\xbb\x00\x00\x4c\xda\x00\x00\x00\x00\x62\xd5\x00\x00\x50\x6a\x00\x00\x00\x00\x00\x00\x5a\x6e\x00\x00\x52\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x68\x62\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x64\x62\xce\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x62\xd4\x00\x00\x4d\xfd\x00\x00\x58\x87\x00\x00\x00\x00\x5b\x5f\x00\x00\x00\x00\x00\x00\x62\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcf\x00\x00\x00\x00\x62\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x86\x55\xa9", /* 6e80 */ "\x00\x00\x00\x00\x00\x00\x50\xa2\x00\x00\x4f\x46\x62\xd2\x00\x00\x00\x00\x4c\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe6\x5a\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xda\x00\x00\x00\x00\x00\x00\x51\x90\x00\x00\x00\x00\x62\xe8\x00\x00\x00\x00\x59\xe6\x00\x00\x00\x00\x62\xde\x00\x00\x62\xdf\x00\x00\x00\x00\x58\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7d\x00\x00\x62\xd9\x62\xd0\x00\x00\x62\xe4\x00\x00\x54\xdb\x62\xe2\x00\x00\x00\x00\x52\xe6\x62\xe1\x00\x00\x62\xe0\x00\x00\x00\x00\x00\x00\x4a\x9d\x62\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x82\x00\x00\x00\x00\x00\x00\x5c\x6c\x00\x00\x00\x00\x00\x00\x62\xe5\x00\x00\x4e\x4c\x00\x00\x5c\x72\x56\xce\x66\x99\x00\x00\x62\xe3\x00\x00\x00\x00\x4d\x97\x00\x00\x00\x00\x00\x00\x5b\xcc\x62\xd8\x62\xdb\x51\xf9\x62\xdd\x00\x00\x51\xca\x50\xc3\x51\xcf\x00\x00\x49\x96\x56\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x62\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x53\xae\x00\x00\x00\x00\x00\x00\x53\xe0\x00\x00\x00\x00\x62\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xa8\x00\x00\x00\x00\x00\x00\x50\xeb\x59\x7d\x62\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xad\x00\x00\x00\x00\x00\x00\x62\xec\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf5\x62\xf3\x51\xfd\x00\x00\x62\xdc\x00\x00\x62\xef\x00\x00\x55\xfd\x00\x00\x5b\x64\x00\x00\x00\x00\x62\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xea\x62\xeb\x00\x00\x00\x00\x00\x00\x62\xf1\x00\x00\x57\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6b\x00\x00\x00\x00\x00\x00\x54\x51\x00\x00\x51\xb9\x00\x00\x00\x00\x00\x00\x62\xe9\x00\x00\x00\x00\x00\x00\x51\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb5\x4a\x51\x00\x00\x00\x00\x00\x00\x62\xfa\x00\x00\x62\xf2\x00\x00\x00\x00\x00\x00\x62\xf9\x00\x00\x62\xfc\x00\x00\x62\xfb\x00\x00\x00\x00\x00\x00", /* 6f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6e\x00\x00\x00\x00\x00\x00\x4a\x5a\x62\xf6\x00\x00\x00\x00\x62\xf8\x62\xf7\x53\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc3\x00\x00\x00\x00\x63\x44\x00\x00\x00\x00\x63\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xa3\x00\x00\x63\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xfd\x49\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x48\x00\x00\x63\x49\x63\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x47\x63\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4b\x63\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4f\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x81\x00\x00\x00\x00\x63\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x91\x66\xe0\x52\x91\x00\x00\x4b\x66\x4e\x72\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8a\x5a\xed\x00\x00\x4f\xc3\x00\x00\x00\x00\x00\x00\x5c\x66\x00\x00\x5a\xd5\x49\xd2", /* 7080 */ "\x66\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc0\x00\x00\x00\x00\x00\x00\x51\xae\x4a\xb5\x00\x00\x00\x00\x00\x00\x59\x77\x00\x00\x00\x00\x00\x00\x4a\x54\x00\x00\x54\xb1\x50\x5b\x66\xbf\x00\x00\x00\x00\x5b\xca\x00\x00\x00\x00\x66\xbe\x66\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc4\x4f\xe5\x56\xbe\x53\x7a\x4f\xbb\x00\x00\x66\xc5\x00\x00\x49\x9f\x00\x00\x00\x00\x00\x00\x66\xc3\x5b\x48\x4b\x84\x00\x00\x66\xc1\x51\x56\x4a\x84\x00\x00\x00\x00\x66\xc2\x56\x58\x50\xc2\x56\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x51\x72\x00\x00\x66\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe5\x50\xd2\x00\x00\x5b\xf1\x00\x00\x00\x00\x00\x00\x59\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x4c\x53\x55\x75\x66\xc6\x4e\x83\x00\x00\x56\xcb\x4f\x9e\x54\xc7\x00\x00\x58\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x8a\x00\x00\x53\x8c\x00\x00\x00\x00\x00\x00\x4c\x8a\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x69\x4d\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc8\x00\x00\x00\x00\x66\xc9\x00\x00\x4e\x60\x66\xca\x00\x00\x66\xe1\x49\x5a\x4c\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xcb\x59\x87\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x54\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd2\x00\x00\x4e\x6d\x00\x00\x4e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xce\x00\x00\x55\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x5a\x00\x00\x66\xe2\x5b\x75\x66\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf2\x00\x00\x00\x00\x00\x00\x66\xd1\x66\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd3\x00\x00\x66\xd4\x00\x00\x00\x00\x55\x5f\x00\x00\x00\x00", /* 7180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x58\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x59\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x54\xda\x00\x00\x00\x00\x00\x00\x66\xd5\x57\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xeb\x66\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd8\x00\x00\x00\x00\x00\x00\x48\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd6\x00\x00\x66\xd7\x00\x00\x00\x00\x00\x00\x66\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdb\x59\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xda\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xee\x00\x00\x66\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdf\x00\x00\x5c\x46\x00\x00\x53\x60\x00\x00\x00\x00\x00\x00\x66\x5c\x48\xad\x00\x00\x00\x00\x00\x00\x4f\xf3\x4c\xb7\x59\xae\x48\xd5\x4b\x9a\x00\x00\x5c\xb2\x00\x00\x56\x4c\x00\x00\x62\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xab\x48\xe5\x00\x00\x00\x00\x00\x00\x53\x66\x66\x59\x00\x00\x00\x00\x00\x00\x00\x00\x66\x5a\x00\x00\x00\x00\x00\x00\x66\x5b\x00\x00\x00\x00\x59\x60\x00\x00\x53\x43\x00\x00\x65\xf1\x00\x00\x52\xb1\x00\x00\x52\xb4\x50\xcd\x00\x00\x00\x00\x00\x00\x65\xf2\x52\xc0\x00\x00\x57\xee\x00\x00\x00\x00\x00\x00\x00\x00\x65\xef\x65\xf3\x00\x00\x00\x00\x55\x9d\x00\x00\x00\x00\x54\x43\x00\x00\x00\x00\x00\x00\x56\xd7\x57\xfd\x00\x00\x00\x00\x00\x00\x65\xf4\x65\xf5", /* 7280 */ "\x58\x4c\x50\xe6\x00\x00\x00\x00\x65\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbe\x65\xf7\x00\x00\x65\xf8\x00\x00\x65\xf9\x00\x00\x00\x00\x65\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xad\x61\x8c\x00\x00\x4c\x58\x61\x8d\x00\x00\x00\x00\x00\x00\x61\x8e\x00\x00\x5c\x54\x61\x8f\x61\x90\x5a\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x92\x50\x92\x61\x91\x4b\x72\x00\x00\x00\x00\x00\x00\x49\x57\x00\x00\x00\x00\x00\x00\x00\x00\x61\x94\x61\x93\x00\x00\x4d\xfb\x00\x00\x61\x95\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x57\x00\x00\x4f\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x52\xfb\x00\x00\x4d\xdc\x4f\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x96\x61\x98\x00\x00\x00\x00\x4b\xbf\x58\x61\x55\xa7\x61\x97\x5b\x99\x5a\x9d\x61\x99\x61\x9d\x61\x9a\x00\x00\x00\x00\x61\x9b\x50\xe9\x00\x00\x61\x9f\x61\xa0\x50\xc6\x00\x00\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x61\x9c\x00\x00\x61\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa4\x00\x00\x00\x00\x00\x00\x51\x74\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa2\x00\x00\x61\xa7\x49\xfd\x61\xa1\x00\x00\x00\x00\x00\x00\x52\x6d\x49\xc1\x61\xa6\x61\xa5\x00\x00\x00\x00\x61\xa3\x61\xa8\x00\x00\x00\x00\x61\xaa\x00\x00\x00\x00\x00\x00\x58\xc8\x5b\xec\x52\x48\x61\xab\x00\x00\x58\x77\x00\x00\x00\x00\x61\xad\x00\x00\x00\x00\x4d\xee\x00\x00\x00\x00\x65\x81\x61\xac\x61\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4b\x5a\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xaf\x00\x00\x00\x00\x61\xae\x00\x00\x65\x82\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb2\x56\xa0\x00\x00\x61\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb4\x00\x00", /* 7380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x00\x00\x00\x00\x51\xc9\x00\x00\x5a\x92\x00\x00\x57\x96\x00\x00\x00\x00\x64\x81\x00\x00\x00\x00\x64\x82\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe9\x00\x00\x00\x00\x00\x00\x64\x85\x00\x00\x00\x00\x64\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x87\x00\x00\x52\x55\x00\x00\x00\x00\x64\x83\x4e\x57\x58\x76\x00\x00\x51\x82\x64\x8a\x00\x00\x00\x00\x00\x00\x64\x89\x00\x00\x00\x00\x64\x95\x49\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8b\x00\x00\x64\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8d\x64\x8c\x55\x5a\x00\x00\x00\x00\x5b\x85\x00\x00\x64\x86\x4c\x49\x64\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x94\x00\x00\x5b\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8e\x00\x00\x64\x93\x00\x00\x64\x92\x00\x00\x00\x00\x00\x00\x48\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x64\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x54\x93\x00\x00\x50\xc4\x50\xec\x00\x00\x00\x00\x51\x91\x64\x91\x00\x00\x00\x00\x00\x00\x00\x00\x64\x97\x56\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x61\x00\x00\x00\x00\x64\x9b\x64\x9a\x00\x00\x64\x9c\x00\x00\x64\x98\x00\x00\x64\x9f\x00\x00\x64\x9e\x00\x00\x64\x9d\x00\x00\x00\x00\x51\x75\x54\x79\x53\x9e\x53\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa5\x00\x00\x64\xa4\x00\x00\x64\xa6\x4d\xf6\x64\x99\x64\xa3\x00\x00\x54\xef\x55\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa8\x00\x00\x00\x00\x4d\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9f\x64\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa9\x00\x00", /* 7480 */ "\x64\xac\x64\xad\x00\x00\x51\x47\x00\x00\x00\x00\x00\x00\x64\xae\x00\x00\x00\x00\x00\x00\x64\xaf\x00\x00\x00\x00\x64\xab\x00\x00\x64\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xaa\x00\x00\x64\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb4\x64\xb1\x64\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6f\x00\x00\x68\xab\x00\x00\x68\xac\x00\x00\x53\xaf\x48\xe9\x54\xbe\x00\x00\x57\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcc\x65\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb1\x00\x00\x53\xbe\x4a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb2", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9a\x00\x00\x65\xb3\x00\x00\x65\xb4\x00\x00\x65\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc9\x60\x50\x55\x96\x00\x00\x56\xef\x00\x00\x00\x00\x55\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9c\x00\x00\x00\x00\x5a\x63\x56\x46\x00\x00\x4c\xa5\x68\xad\x49\x62\x00\x00\x63\x58\x56\xee\x5a\x69\x4e\xd6\x55\x8b\x00\x00\x4b\x88\x00\x00\x52\xcf\x4b\x8a\x00\x00\x67\xad\x4e\x4d\x00\x00\x00\x00\x64\x7e\x00\x00\x67\xae\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x49\x00\x00\x00\x00\x67\xb1\x00\x00\x00\x00\x67\xb0\x4f\x88\x00\x00\x67\xaf\x57\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x51\x95\x5e\x6e\x67\xb2\x58\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd3\x53\xe7\x00\x00\x00\x00\x00\x00\x4c\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb3\x00\x00\x4a\x8c\x00\x00\x00\x00\x00\x00\x4e\x9c\x67\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7c", /* 7580 */ "\x00\x00\x00\x00\x00\x00\x67\xb5\x00\x00\x00\x00\x4f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x69\x83\x00\x00\x00\x00\x00\x00\x55\xe7\x00\x00\x59\xc8\x68\xd9\x00\x00\x68\xda\x00\x00\x68\xdb\x51\x66\x00\x00\x4c\xec\x4f\xcd\x00\x00\x00\x00\x68\xdd\x00\x00\x53\x51\x68\xdc\x59\x92\x00\x00\x68\xdf\x48\xcb\x4f\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xde\x68\xde\x00\x00\x4a\xae\x4c\x89\x68\xe5\x68\xe4\x53\xa2\x68\xe0\x68\xe1\x4a\xc2\x00\x00\x00\x00\x68\xe2\x5b\x8f\x00\x00\x00\x00\x56\xda\x4f\xd1\x4e\xb1\x00\x00\x00\x00\x00\x00\x68\xe7\x68\xe6\x68\xe3\x49\xa0\x00\x00\x5b\xa1\x5a\x58\x4f\xb6\x54\xab\x00\x00\x00\x00\x68\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x59\x98\x00\x00\x5b\xcb\x4d\xda\x68\xe8\x00\x00\x4b\xba\x00\x00\x00\x00\x57\x54\x00\x00\x00\x00\x53\xa5\x00\x00\x00\x00\x00\x00\x51\x41\x68\xea\x68\xed\x00\x00\x68\xec\x68\xef\x68\xeb\x00\x00\x4e\x5e\x68\xee\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb4\x68\xf1\x00\x00\x00\x00\x4a\x75\x00\x00\x00\x00\x00\x00\x00\x00\x49\x74\x00\x00\x00\x00\x68\xf2\x00\x00\x00\x00\x68\xf3", /* 7600 */ "\x68\xf5\x4a\xe0\x00\x00\x68\xf0\x00\x00\x68\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x68\xf9\x00\x00\x68\xf7\x00\x00\x00\x00\x00\x00\x68\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x68\xfc\x00\x00\x68\xf8\x68\xfb\x68\xfd\x00\x00\x69\x41\x00\x00\x00\x00\x00\x00\x57\xc0\x69\x44\x00\x00\x69\x43\x00\x00\x51\x97\x68\xfa\x55\xdc\x00\x00\x00\x00\x4a\xf0\x49\x92\x56\xb0\x00\x00\x69\x46\x00\x00\x00\x00\x69\x47\x00\x00\x00\x00\x69\x4c\x5b\x6e\x69\x49\x00\x00\x00\x00\x54\xb2\x00\x00\x00\x00\x00\x00\x69\x42\x00\x00\x69\x4b\x69\x48\x69\x45\x00\x00\x00\x00\x69\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xa8\x69\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4f\x00\x00\x69\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x50\x00\x00\x69\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x59\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x52\x00\x00\x00\x00\x00\x00\x69\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x90\x00\x00\x00\x00\x4b\x67\x00\x00\x48\xd6\x48\xd8\x00\x00", /* 7680 */ "\x00\x00\x00\x00\x5a\xec\x00\x00\x4b\x64\x00\x00\x4f\x74\x4e\x6a\x68\xa6\x00\x00\x00\x00\x4c\xdd\x00\x00\x00\x00\x68\xa7\x00\x00\x00\x00\x48\xa7\x00\x00\x68\xa8\x00\x00\x00\x00\x57\x8f\x00\x00\x00\x00\x68\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa3\x00\x00\x00\x00\x5b\xe4\x69\x85\x00\x00\x69\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x94\x00\x00\x00\x00\x5a\x7b\x00\x00\x00\x00\x5b\xd0\x53\x89\x00\x00\x5a\x4f\x00\x00\x59\xe5\x00\x00\x00\x00\x67\xc0\x48\xba\x5b\x55\x59\x6e\x4e\xdf\x4d\xcf\x00\x00\x50\x99\x00\x00\x4c\xc6\x4b\x61\x53\x6c\x00\x00\x00\x00\x55\xa1\x00\x00\x00\x00\x00\x00\x52\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xbe\x4b\xa1\x00\x00\x67\x8d\x52\x44\x00\x00\x5b\xb0\x00\x00\x00\x00\x00\x00\x58\x81\x67\x90\x00\x00\x00\x00\x53\x6e\x00\x00\x4b\xdb\x00\x00", /* 7700 */ "\x00\x00\x55\xa0\x00\x00\x00\x00\x67\x8e\x00\x00\x00\x00\x67\x91\x67\x92\x52\x5c\x00\x00\x50\x54\x00\x00\x67\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x95\x67\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x87\x52\x7f\x00\x00\x67\x94\x00\x00\x00\x00\x00\x00\x67\x97\x00\x00\x5b\x43\x59\x43\x00\x00\x00\x00\x00\x00\x67\x96\x00\x00\x52\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x98\x50\x95\x4f\xeb\x67\x99\x00\x00\x56\xf6\x00\x00\x59\x7b\x00\x00\x00\x00\x00\x00\x5c\x65\x5b\x97\x00\x00\x67\x9d\x00\x00\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9a\x67\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9e\x4f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x4f\x67\xa0\x4b\xbc\x00\x00\x67\xa1\x52\xbf\x00\x00\x67\x9f\x00\x00\x00\x00\x4f\x7e\x49\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc2\x00\x00\x00\x00\x00\x00\x67\xa4\x5c\xb9\x67\xa2", /* 7780 */ "\x67\xa5\x00\x00\x00\x00\x00\x00\x52\x8a\x4a\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa6\x67\xa3\x58\x59\x00\x00\x00\x00\x67\xa7\x51\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa8\x67\xa9\x00\x00\x5f\xaa\x00\x00\x00\x00\x53\xb2\x00\x00\x54\x66\x00\x00\x5b\xf4\x4b\x69\x00\x00\x56\x52\x00\x00\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x57\x4b\x00\x00\x67\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x50\x00\x00\x67\xac\x00\x00\x6b\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa2\x00\x00\x00\x00\x00\x00\x52\x4c\x69\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb7\x59\xd2\x00\x00\x5b\xa9\x00\x00\x68\x93\x00\x00\x4f\xd7\x00\x00\x4f\x63\x68\x94\x4b\xcb\x48\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x55\xae\x00\x00\x00\x00\x67\x56\x00\x00\x67\x57\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf8\x4c\x4f\x50\x94", /* 7800 */ "\x67\x58\x51\xea\x55\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x59\x00\x00\x00\x00\x53\xf5\x50\x53\x00\x00\x00\x00\x00\x00\x67\x5c\x53\x99\x00\x00\x59\x70\x00\x00\x5c\x49\x67\x5a\x67\x5b\x00\x00\x59\x83\x00\x00\x67\x5f\x67\x60\x00\x00\x67\x64\x00\x00\x00\x00\x00\x00\x67\x68\x00\x00\x67\x66\x67\x6e\x5b\x89\x00\x00\x67\x69\x00\x00\x00\x00\x67\x67\x67\x5e\x00\x00\x00\x00\x53\x8a\x00\x00\x00\x00\x00\x00\x53\xc5\x00\x00\x00\x00\x55\x8a\x5a\xd1\x67\x61\x67\x62\x67\x63\x67\x65\x00\x00\x50\xf8\x00\x00\x4a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x89\x00\x00\x67\x70\x00\x00\x00\x00\x00\x00\x00\x00\x67\x71\x00\x00\x67\x6a\x00\x00\x67\x6f\x00\x00\x57\xf7\x00\x00\x00\x00\x56\x56\x67\x6c\x67\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x72\x51\x93\x5a\x52\x67\x6b\x54\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xee\x00\x00\x00\x00\x00\x00\x00\x00\x53\x91\x00\x00\x00\x00\x00\x00", /* 7880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x76\x00\x00\x4b\x90\x00\x00\x00\x00\x51\xb4\x48\xac\x56\x8a\x00\x00\x00\x00\x49\x4e\x00\x00\x67\x74\x00\x00\x00\x00\x00\x00\x57\x8c\x4b\x83\x00\x00\x67\x75\x67\x73\x67\x77\x00\x00\x00\x00\x4b\x9b\x00\x00\x67\x78\x00\x00\x67\x79\x00\x00\x67\x7c\x00\x00\x49\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x97\x4e\xed\x67\x7a\x56\xbb\x49\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xea\x00\x00\x00\x00\x4a\xc4\x00\x00\x00\x00\x00\x00\x48\xf4\x00\x00\x00\x00\x00\x00\x67\x7f\x50\xd9\x4a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6d\x00\x00\x00\x00\x00\x00\x67\x7d\x50\x64\x00\x00\x00\x00\x00\x00\x67\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa4\x00\x00\x00\x00\x00\x00\x67\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x82\x00\x00\x67\x84\x00\x00\x00\x00\x51\x77\x00\x00\x00\x00\x4e\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x4f\x58\x00\x00\x00\x00\x00\x00\x67\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbd\x66\xe9\x50\xf0\x00\x00\x55\x88\x00\x00\x66\xea\x53\xed\x00\x00\x00\x00\x00\x00\x00\x00\x66\xeb\x00\x00\x53\xec\x66\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xef\x00\x00\x00\x00\x5c\x87\x66\xf2\x00\x00\x00\x00\x66\xf0\x66\xed\x66\xee\x5c\x43\x55\x92\x56\x8f\x66\xf3\x00\x00\x66\xf1\x00\x00\x00\x00\x58\x8a\x00\x00\x66\xf5\x53\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbf\x00\x00\x66\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x5b\x4e\x97\x00\x00\x66\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7980 */ "\x5d\x98\x4f\x9c\x00\x00\x00\x00\x51\xba\x66\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8e\x5c\xad\x50\xea\x00\x00\x54\x7d\x4d\xcb\x00\x00\x58\xe2\x56\x5d\x00\x00\x57\x5a\x00\x00\x00\x00\x4c\xd0\x00\x00\x00\x00\x49\x9d\x00\x00\x54\x90\x00\x00\x5b\xd5\x00\x00\x00\x00\x00\x00\x50\x66\x52\x8c\x00\x00\x00\x00\x68\x96\x00\x00\x00\x00\x52\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x83\x00\x00\x00\x00\x00\x00\x68\x98\x4a\x73\x00\x00\x54\x78\x59\x8e\x00\x00\x5b\xc7\x00\x00\x68\x99\x00\x00\x68\x97\x00\x00\x4e\x9e\x4a\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x75\x00\x00\x00\x00\x59\xc5\x00\x00\x4e\x81\x00\x00\x00\x00", /* 7a00 */ "\x58\x41\x00\x00\x68\x9d\x68\x9c\x00\x00\x00\x00\x68\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6c\x00\x00\x55\x74\x56\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x9f\x00\x00\x00\x00\x48\xdd\x00\x00\x00\x00\x5b\xc8\x00\x00\x00\x00\x00\x00\x68\x9e\x00\x00\x4a\x8e\x00\x00\x00\x00\x6b\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc7\x00\x00\x00\x00\x00\x00\x68\xa1\x00\x00\x68\xa0\x00\x00\x4b\x5e\x4e\xd9\x4e\x9d\x00\x00\x4c\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa5\x00\x00\x00\x00\x00\x00\x59\x48\x00\x00\x4f\xbe\x54\x8f\x69\x56\x69\x57\x50\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa8", /* 7a80 */ "\x69\x58\x57\x5b\x00\x00\x54\x74\x5b\x4d\x00\x00\x69\x59\x00\x00\x69\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6f\x00\x00\x00\x00\x00\x00\x59\xa3\x5b\xce\x00\x00\x00\x00\x69\x5b\x4f\x71\x4a\xaf\x4f\xbc\x00\x00\x00\x00\x00\x00\x4a\xdb\x57\xd0\x00\x00\x50\x7f\x69\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9b\x69\x5c\x00\x00\x69\x5f\x00\x00\x00\x00\x00\x00\x69\x5e\x69\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf9\x00\x00\x00\x00\x5b\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb9\x4f\xb8\x5b\x62\x00\x00\x00\x00\x50\x42\x00\x00\x57\x4f\x69\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7f\x00\x00\x4b\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf0\x6a\x63\x00\x00\x00\x00\x6a\x64\x00\x00\x4c\xcc", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x6a\x66\x6a\x67\x00\x00\x48\xc9\x00\x00\x6a\x65\x00\x00\x6a\x69\x56\x92\x00\x00\x00\x00\x00\x00\x6a\x6b\x00\x00\x58\xa5\x00\x00\x00\x00\x49\x6a\x6a\x68\x00\x00\x00\x00\x00\x00\x6a\x6f\x00\x00\x4b\x71\x00\x00\x00\x00\x6a\x77\x00\x00\x6a\x72\x00\x00\x00\x00\x00\x00\x6a\x74\x6a\x73\x4c\x9c\x00\x00\x49\x5f\x00\x00\x6a\x6e\x6a\x6a\x4b\x7a\x00\x00\x6a\x70\x00\x00\x00\x00\x6a\x71\x00\x00\x6a\x75\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x6d\x00\x00\x4e\xe2\x00\x00\x51\x9e\x00\x00\x6a\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x7a\x00\x00\x6a\x6c\x00\x00\x4b\x68\x00\x00\x4f\x8f\x6a\x7c\x00\x00\x00\x00\x4c\x44\x50\x91\x5b\xfd\x57\x52\x00\x00\x4a\xef\x00\x00\x49\xde\x00\x00\x6a\x78\x00\x00\x6a\x79\x55\x58\x00\x00\x6a\x7d\x00\x00\x00\x00\x6a\x7e\x00\x00\x6a\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x7f\x00\x00\x00\x00\x6a\x84\x6a\x83\x00\x00\x00\x00\x6a\x7b\x00\x00\x50\x8b\x00\x00\x4a\x90\x00\x00\x6a\x81\x00\x00\x00\x00\x54\x49\x00\x00", /* 7b80 */ "\x4e\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5f\x00\x00\x00\x00\x6a\x85\x00\x00\x00\x00\x00\x00\x49\xac\x4e\x9f\x00\x00\x56\x84\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8e\x6a\x8a\x00\x00\x00\x00\x00\x00\x4d\x7c\x6a\x8f\x00\x00\x00\x00\x00\x00\x6a\x86\x6a\x87\x6a\x8b\x51\xe0\x6a\x8d\x6a\x90\x6a\x89\x4e\xfc\x00\x00\x00\x00\x00\x00\x58\x85\x00\x00\x00\x00\x6a\x91\x00\x00\x00\x00\x00\x00\x6a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x4d\x53\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x94\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x92\x00\x00\x51\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdc\x6a\x96\x00\x00\x00\x00\x6a\x95\x00\x00\x00\x00\x00\x00\x4a\xda\x00\x00\x00\x00\x00\x00\x6a\x97\x6a\x98\x00\x00\x00\x00\x00\x00\x6a\x99\x00\x00\x00\x00\x00\x00\x50\xb9\x00\x00\x00\x00\x50\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x92\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x9c\x00\x00\x6a\x9b\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd7\x00\x00\x00\x00\x00\x00\x6a\x9f\x6a\x9a\x00\x00\x00\x00\x6a\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa2\x4e\x69\x00\x00\x00\x00\x6a\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xbd\x6a\xa5\x6a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x77\x5d\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdf\x6a\xcb\x5c\x71\x00\x00\x00\x00", /* 7c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xcd\x51\x43\x00\x00\x00\x00\x53\xc8\x00\x00\x4a\xd5\x5b\x53\x00\x00\x00\x00\x00\x00\x6a\xcf\x6a\xce\x6a\xd0\x56\x7a\x00\x00\x00\x00\x6a\xd1\x00\x00\x5a\xc0\x5b\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x81\x00\x00\x00\x00\x00\x00\x51\x58\x00\x00\x00\x00\x51\x5b\x6a\xd2\x4f\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xe1\x00\x00\x00\x00\x6a\xd3\x6a\xd4\x4f\xaa\x00\x00\x00\x00\x6a\xd5\x00\x00\x00\x00\x00\x00\x6a\xda\x00\x00\x6a\xd6\x6a\xd9\x00\x00\x4d\xfc\x00\x00\x6a\xd7\x6a\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe1\x56\xc6\x6a\xdb\x00\x00\x49\xd9\x00\x00\x00\x00\x52\x73\x00\x00\x00\x00\x5a\xe2\x50\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe8\x00\x00\x00\x00\x58\x55\x00\x00\x00\x00\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x78\x00\x00\x56\x98\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x95\x00\x00\x00\x00\x00\x00\x5c\x6f\x00\x00\x00\x00\x00\x00\x50\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e80 */ "\x00\x00\x00\x00\x5c\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xed\x00\x00\x00\x00\x00\x00\x63\xf8\x4f\xbf\x63\xf9\x4d\xeb\x63\xfa\x58\x6b\x63\xfb\x5a\xbb\x4e\xb5\x63\xfc\x63\xfd\x4e\xcc\x54\xd1\x57\xb2\x64\x41\x00\x00\x4a\xbe\x64\x42\x55\x54\x4c\xd8\x52\xc8\x00\x00\x5c\x7d\x51\xd9\x4c\x77\x5b\xbc\x57\xc5\x4c\x64\x00\x00\x00\x00\x53\x46\x64\x43\x58\x7f\x64\x44\x64\x45\x64\x46\x51\x57\x5c\x8a\x55\x91\x58\x58\x5b\xae\x5b\xd4\x64\x47\x48\xec\x64\x48\x64\x49\x55\x7c\x59\xee\x4f\xac\x64\x4a\x48\xf2\x54\xdd\x4f\x82\x64\x4b\x54\xc5\x00\x00\x64\x4c\x4e\x87\x4c\xf7\x59\x44\x64\x4d\x51\xe6\x4f\xf7\x4f\x6a\x57\x53\x64\x4e\x64\x4f\x4f\xed\x58\xe4\x00\x00\x56\x88\x56\xcf\x4e\xcb\x64\x50\x4e\xa7\x58\xf6\x64\x51\x00\x00\x58\xf7\x64\x52\x64\x53\x4a\xc1\x64\x54\x64\x55\x55\x9f\x57\xab\x52\x81\x64\x57\x49\x61\x4a\x92\x00\x00\x64\x58\x64\x59\x5c\x7b\x5b\x60\x64\x5a\x51\xcb", /* 7f00 */ "\x5c\x5a\x64\x5b\x64\x5c\x64\x5d\x4e\xe9\x52\x86\x50\xc1\x64\x5e\x64\x5f\x4e\xa8\x00\x00\x64\x60\x64\x61\x64\x56\x4b\xcf\x64\x62\x00\x00\x64\x63\x64\x64\x4e\x5a\x4b\x7e\x51\xc5\x49\x81\x64\x65\x5a\xb4\x64\x66\x4c\xbe\x64\x68\x64\x67\x4c\x8d\x00\x00\x64\x69\x49\xf7\x64\x6a\x64\x6b\x64\x6c\x64\x6d\x64\x6e\x64\x6f\x64\x70\x5a\x47\x56\x96\x64\x71\x64\x72\x64\x73\x64\x74\x55\x69\x64\x75\x64\x76\x64\x77\x64\x78\x64\x79\x4f\x69\x64\x7a\x6a\x5e\x00\x00\x4c\xd6\x00\x00\x54\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5f\x00\x00\x6a\x60\x6a\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7e\x57\x99\x00\x00\x00\x00\x5c\xe7\x4d\xb0\x00\x00\x51\xdd\x67\xb6\x00\x00\x4c\x43\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb8\x00\x00\x67\xb7\x48\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xba\x5b\x76\x5c\x90\x00\x00\x00\x00\x00\x00\x5b\xc2\x00\x00\x00\x00\x67\xbc\x55\xef\x00\x00\x67\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbf\x00\x00", /* 7f80 */ "\x00\x00\x67\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x93\x00\x00\x54\x5c\x00\x00\x52\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x88\x00\x00\x00\x00\x6a\xc5\x58\xde\x6a\xc6\x00\x00\x58\x7b\x00\x00\x00\x00\x54\xb9\x00\x00\x00\x00\x6a\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc8\x6a\xc9\x00\x00\x6a\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9b\x4c\xfd\x00\x00\x00\x00\x63\x92\x5a\x91\x00\x00\x6a\xdf\x00\x00\x57\xcb\x00\x00\x00\x00\x00\x00\x4a\x82\x00\x00\x00\x00\x00\x00\x00\x00\x69\x54\x00\x00\x59\xed\x00\x00\x6a\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x89\x6a\xe1\x00\x00\x00\x00\x54\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x74\x4a\xe3\x6a\xe3\x00\x00\x00\x00\x00\x00\x6a\xe2\x6a\xe4\x00\x00\x00\x00\x6a\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe6\x00\x00\x4d\xb1\x48\xbe\x00\x00\x6a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4d\x59\xec\x00\x00\x00\x00\x00\x00", /* 8000 */ "\x59\xaa\x50\xce\x00\x00\x50\x5c\x66\x43\x5b\x7f\x65\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x69\x94\x4b\xf7\x56\x43\x00\x00\x00\x00\x52\xcc\x00\x00\x69\x88\x00\x00\x69\x89\x4c\xfa\x69\x8a\x4d\xc3\x5a\xc4\x48\xd1\x00\x00\x00\x00\x69\x8b\x00\x00\x00\x00\x00\x00\x69\x8c\x00\x00\x69\x8d\x00\x00\x00\x00\x69\x8e\x69\x8f\x69\x90\x69\x92\x69\x91\x53\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x93\x00\x00\x4b\xf9\x00\x00\x69\x95\x59\xad\x5f\xc6\x56\x6a\x00\x00\x00\x00\x4a\x7c\x00\x00\x4b\x42\x00\x00\x4d\x42\x00\x00\x00\x00\x52\xf3\x69\x96\x00\x00\x00\x00\x69\x97\x00\x00\x00\x00\x00\x00\x51\x64\x51\x9c\x5b\xaf\x69\x98\x00\x00\x00\x00\x00\x00\x00\x00\x69\x99\x00\x00\x51\x4a\x00\x00\x00\x00\x00\x00\x53\xb7\x00\x00\x4f\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x9a\x4a\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x52", /* 8080 */ "\x67\x51\x00\x00\x00\x00\x56\x81\x59\xdd\x00\x00\x56\x61\x5b\x78\x00\x00\x54\xe1\x00\x00\x50\xde\x4e\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x61\x00\x00\x00\x00\x58\xa3\x00\x00\x5b\xe1\x00\x00\x4b\xc6\x4c\xd7\x66\x60\x4c\xcd\x00\x00\x66\x5f\x4a\x46\x4d\x69\x5b\xaa\x00\x00\x4c\x95\x4c\x6a\x00\x00\x00\x00\x00\x00\x4e\xe6\x4c\x5e\x66\x66\x00\x00\x66\x67\x48\xb8\x50\x6f\x00\x00\x66\x65\x5a\x9e\x00\x00\x66\x68\x00\x00\x00\x00\x66\x69\x00\x00\x00\x00\x4c\x6e\x00\x00\x66\x62\x66\x64\x55\x97\x5b\xd6\x5b\x6d\x58\xb1\x66\x6f\x57\xb7\x66\x70\x00\x00\x4b\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x53\x66\x72\x56\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x76\x66\x73\x00\x00\x66\x71\x53\x7f\x66\x6e\x55\xa3\x66\x75\x48\xfa\x00\x00\x00\x00\x4d\xf9\x00\x00\x00\x00\x5c\xb6\x69\x84\x00\x00\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x76\x63\xbf\x66\x79\x00\x00\x50\x89\x59\xc7\x66\x77\x66\x7c\x4c\xeb\x66\x78\x00\x00\x4f\x5a\x00\x00\x58\xd7\x00\x00\x48\xb6\x00\x00\x66\x7d\x52\xdb\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x5b\xab\x00\x00\x00\x00\x00\x00\x4a\xdf\x00\x00\x00\x00\x51\xf5\x4e\xb8\x00\x00\x00\x00\x66\x7a\x66\x7b\x5a\xdf\x53\xe9\x52\xd3\x66\x7f\x53\x47\x5d\x96\x00\x00\x49\xb0\x00\x00\x66\x85\x00\x00\x4f\x65\x00\x00\x00\x00\x00\x00\x66\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x84\x00\x00\x00\x00\x4c\xab\x00\x00\x57\x71\x66\x86\x00\x00\x00\x00\x00\x00\x66\x82\x00\x00\x51\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xf2\x00\x00\x66\x87\x00\x00\x50\xaf\x59\xb7\x66\x88\x00\x00\x00\x00\x00\x00\x4c\xae\x4c\xac\x00\x00\x66\x89\x54\x5b\x57\x94\x00\x00\x00\x00\x00\x00\x66\x8b\x66\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc7\x00\x00\x66\x93\x00\x00\x66\x8f\x00\x00\x00\x00\x00\x00\x66\x92\x54\xf8\x00\x00\x59\x9d\x66\x8d\x00\x00\x00\x00\x66\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb8\x58\x79\x52\xe4\x66\x90\x66\x91\x56\xd9\x57\x68", /* 8180 */ "\x48\xf1\x00\x00\x66\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x96\x00\x00\x49\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdf\x00\x00\x66\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x8d\x00\x00\x00\x00\x56\xc4\x52\xa3\x58\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x9a\x00\x00\x00\x00\x66\xa1\x00\x00\x53\x93\x00\x00\x66\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xde\x66\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6e\x66\xa0\x49\x7b\x5a\x57\x00\x00\x00\x00\x59\xdb\x00\x00\x00\x00\x00\x00\x66\x9e\x00\x00\x66\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5c\x00\x00\x00\x00\x00\x00\x65\xaf\x00\x00\x00\x00\x5c\x74\x00\x00\x6a\xaa\x4a\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc0\x5b\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8a\x4f\xc9\x00\x00\x6a\xa6\x00\x00", /* 8200 */ "\x59\xa7\x6a\xa7\x6a\xa8\x00\x00\x6a\xa9\x4f\xca\x5a\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x81\x55\x82\x00\x00\x00\x00\x6a\x62\x00\x00\x55\xe5\x00\x00\x56\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb5\x56\x54\x00\x00\x57\xe7\x5b\xda\x00\x00\x6a\xac\x6a\xad\x6a\xae\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xb1\x00\x00\x4d\xbc\x6a\xb2\x48\xe2\x6a\xaf\x00\x00\x6a\xb0\x4f\x42\x49\xd4\x00\x00\x6a\xb5\x6a\xb6\x4b\xe5\x49\xaf\x58\x6f\x6a\xb3\x4a\xab\x00\x00\x6a\xb4\x00\x00\x00\x00\x6a\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xb8\x00\x00\x00\x00\x57\x47\x00\x00\x6a\xb9\x00\x00\x6a\xba\x00\x00\x00\x00\x00\x00\x6a\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x72\x00\x00\x6a\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xdd\x51\x5c\x4e\xe7\x00\x00\x55\x4b\x59\x7e\x63\x96\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb2\x59\xd4\x00\x00\x00\x00\x5e\xb3\x48\xab\x5e\xb4", /* 8280 */ "\x00\x00\x00\x00\x4f\x7a\x00\x00\x5e\xb8\x00\x00\x00\x00\x00\x00\x5c\xc1\x00\x00\x5e\xb6\x5a\x94\x00\x00\x55\x76\x5e\xb9\x5e\xb5\x00\x00\x5e\xba\x52\x42\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbb\x5e\xc4\x5e\xbc\x00\x00\x00\x00\x57\xde\x5b\xa4\x00\x00\x5e\xce\x00\x00\x5e\xcc\x00\x00\x00\x00\x5e\xd1\x4f\x87\x51\xaa\x00\x00\x5e\xb7\x5e\xca\x5e\xcd\x5e\xbd\x4c\x72\x48\xc4\x5e\xc6\x58\xbd\x5e\xc0\x4e\x48\x00\x00\x4c\x5c\x5e\xcb\x00\x00\x00\x00\x5e\xc5\x5e\xbe\x54\x7b\x00\x00\x00\x00\x00\x00\x59\x5f\x5e\xbf\x00\x00\x00\x00\x5e\xc9\x00\x00\x00\x00\x5e\xcf\x00\x00\x00\x00\x57\xac\x5e\xc1\x00\x00\x5e\xc2\x5e\xc7\x5e\xc8\x49\xd3\x5e\xd0\x56\x75\x00\x00\x5a\xb6\x5e\xda\x5e\xde\x56\xa5\x5e\xe5\x00\x00\x52\x88\x5e\xdb\x00\x00\x00\x00\x50\x61\x5e\xd8\x00\x00\x48\xf9\x4d\x56\x5e\xe4\x5e\xd2\x00\x00\x5e\xc3\x5e\xd5\x54\xf3\x50\x81\x00\x00\x00\x00\x00\x00\x00\x00\x55\x5b\x00\x00\x00\x00\x00\x00\x49\x5d\x00\x00\x5a\x42\x00\x00\x00\x00\x5e\xd9\x00\x00\x00\x00\x5e\xd4\x00\x00\x53\xba\x00\x00\x5e\xdd\x00\x00\x00\x00\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x5c\x62\x52\x4f\x4c\x56\x54\x71\x52\x49\x5e\xe1\x5e\xd7\x5e\xea\x5e\xd3\x00\x00\x00\x00\x5e\xdc\x00\x00\x4f\xa4\x5e\xd6\x00\x00\x5e\xdf\x00\x00\x00\x00\x5e\xe2\x5e\xe3\x00\x00\x5e\xf7\x00\x00\x00\x00\x5e\xe0\x5f\x42\x5e\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xea\x4a\xc3\x00\x00\x00\x00\x52\x43\x49\xe6\x5e\xf9\x00\x00\x5e\xf1\x00\x00\x5e\xee\x00\x00\x5e\xfb\x5e\xed\x59\xef\x49\xe7\x00\x00\x54\xd6\x54\xe2\x5e\xfa\x00\x00\x5e\xec\x00\x00\x00\x00\x00\x00\x5e\xf6\x00\x00\x00\x00\x5e\xf4\x00\x00\x00\x00\x4f\xa2\x5e\xf3\x00\x00\x49\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf2\x4e\xf5\x5e\xe7\x4e\x64\x00\x00\x50\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xd3\x5e\xe8\x5e\xe9\x00\x00\x5e\xf0\x5e\xf5\x5e\xf8\x4b\x54\x00\x00\x54\xd8\x4e\x88\x5e\xfd\x5e\xfc\x5a\x4b\x5f\x41\x5f\x43\x5f\x45\x59\xf0\x5f\x44\x5f\x46\x5f\x47\x59\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc8\x5f\x49\x00\x00\x00\x00\x5f\x56\x5f\x51\x5f\x54\x00\x00\x00\x00", /* 8380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x50\x53\xcd\x00\x00\x00\x00\x50\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4f\x00\x00\x00\x00\x00\x00\x5e\xeb\x5f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x00\x00\x00\x00\x5e\xef\x5f\x4f\x00\x00\x5f\x58\x00\x00\x5f\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x59\x5f\x53\x5f\x4d\x52\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x48\x50\xb2\x51\x4b\x5f\x4a\x5f\x4b\x00\x00\x5f\x52\x4e\x92\x5f\x55\x5a\x48\x5f\x5a\x00\x00\x5f\x5b\x52\x47\x00\x00\x00\x00\x5f\x72\x5f\x5c\x00\x00\x00\x00\x00\x00\x5f\x71\x00\x00\x4d\x5d\x00\x00\x00\x00\x4f\xd4\x00\x00\x4f\xf9\x00\x00\x00\x00\x4d\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x6a\x00\x00\x5f\x65\x00\x00\x5f\x5f\x00\x00\x00\x00\x00\x00\x49\xca\x5f\x63\x00\x00\x5f\x6b\x49\xa3\x5f\x75\x00\x00\x00\x00\x00\x00\x5f\x5e\x00\x00\x00\x00\x00\x00\x53\xcf\x5f\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x74\x51\x83\x4c\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x6e\x5f\x6f\x00\x00\x00\x00\x00\x00\x5f\x64\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x5f\x5d\x00\x00\x5f\x6d\x56\xd0\x00\x00\x5f\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x62\x52\x68\x53\xbb\x57\xad\x5f\x6c\x00\x00\x5f\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x61\x00\x00\x00\x00\x00\x00\x5f\x66\x51\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x49\x5a\x4a\x5f\x73\x58\x95\x54\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x67\x00\x00\x00\x00\x00\x00\x5f\x81\x51\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf7\x00\x00\x5f\x79\x5f\x78\x4c\xef\x5f\x76\x00\x00\x00\x00\x00\x00\x00\x00\x53\xce\x00\x00\x4b\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x83\x00\x00\x4d\xf8\x5a\xe0\x5f\x88\x00\x00\x00\x00\x00\x00\x4a\xcf\x00\x00\x5f\x7a\x00\x00\x50\x9c\x5f\x84\x00\x00\x5f\x7f\x00\x00\x5f\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x4b\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x7b\x5f\x7c\x5f\x7e\x00\x00\x4f\x4f\x5f\x85\x00\x00\x5f\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x96\x00\x00\x52\x69\x00\x00\x00\x00\x56\x83\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe0\x00\x00\x00\x00\x53\xd0\x00\x00\x5f\x95\x00\x00\x00\x00\x00\x00\x5b\x95\x5f\x94\x5f\x91\x00\x00\x00\x00\x5f\x8d\x00\x00\x5f\x90\x00\x00\x5f\x89\x00\x00\x00\x00\x58\xed\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd7\x5f\x8f\x00\x00\x00\x00\x5f\x8a\x00\x00\x00\x00\x5f\x8b\x56\x93\x00\x00\x5f\x8e\x00\x00\x00\x00\x49\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb5\x00\x00\x4e\xba\x5f\x92\x00\x00\x00\x00\x5f\x98\x00\x00\x5f\x97\x5f\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x8f\x00\x00\x00\x00\x00\x00\x5f\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa3\x00\x00\x00\x00\x5f\xa2", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x99\x00\x00\x00\x00\x00\x00\x00\x00\x52\x90\x00\x00\x51\xfa\x00\x00\x00\x00\x00\x00\x5b\x82\x00\x00\x00\x00\x57\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9e\x00\x00\x49\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe7\x55\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x5e\x5f\x9b\x5f\x9d\x5f\x9f\x5f\xa1\x48\xa9\x49\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xab\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa5\x4f\x56\x54\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa0\x00\x00\x00\x00\x5f\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa7\x00\x00\x00\x00\x00\x00\x5f\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xac\x00\x00\x5a\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb2\x5f\xa9\x5f\xad\x00\x00\x00\x00\x50\xd8\x00\x00", /* 8580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x49\x41\x5f\xb5\x00\x00\x5f\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x46\x5f\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xae\x00\x00\x00\x00\x00\x00\x5f\xaf\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x5f\xb3\x55\xec\x5f\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb7\x00\x00\x5f\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xd7\x52\x8b\x00\x00\x00\x00\x5f\xb9\x00\x00\x53\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe4\x00\x00\x00\x00\x00\x00\x5f\xbc", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbd\x00\x00\x5f\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x5a\x00\x00\x00\x00\x00\x00\x5f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xad\x4e\x42\x51\xb1\x53\x50\x51\xc6\x00\x00\x00\x00\x69\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe8\x00\x00\x00\x00\x00\x00\x5a\x7d\x00\x00\x00\x00\x00\x00\x66\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x87\x69\xaf\x00\x00\x69\xb0\x00\x00\x00\x00\x55\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe6\x69\xb2\x69\xb4\x69\xb3\x56\x85\x58\x5a\x69\xb1", /* 8680 */ "\x55\xb3\x59\xce\x51\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x69\xb7\x48\xf5\x69\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xbd\x00\x00\x49\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x61\x69\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xbb\x5a\xe8\x00\x00\x00\x00\x69\xba\x69\xb5\x69\xbe\x69\xbc\x00\x00\x69\xb8\x00\x00\x00\x00\x69\xc6\x69\xc3\x69\xc5\x00\x00\x00\x00\x69\xc9\x69\xc1\x69\xbf\x00\x00\x00\x00\x00\x00\x69\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfa\x00\x00\x00\x00\x00\x00\x69\xc0\x00\x00\x54\x9a\x55\x7f\x00\x00\x69\xc7\x4d\x66\x4b\x50\x00\x00\x00\x00\x69\xc2\x69\xc8\x69\xcf\x69\xd5\x00\x00\x00\x00\x4e\x77\x00\x00\x00\x00\x00\x00\x69\xd4\x57\x7c\x00\x00\x5b\xea\x00\x00\x00\x00\x69\xd1\x69\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x69\xca\x00\x00\x00\x00\x00\x00\x69\xcd\x51\xf8\x00\x00\x5b\x7d\x69\xcb\x69\xcc\x69\xce\x69\xd2\x00\x00\x00\x00\x00\x00\x69\xd8\x5a\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe9\x00\x00", /* 8700 */ "\x55\xf0\x00\x00\x4c\x85\x69\xd6\x00\x00\x00\x00\x00\x00\x69\xd7\x69\xd9\x69\xdc\x69\xda\x00\x00\x00\x00\x69\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x59\x71\x69\xd0\x00\x00\x57\x69\x00\x00\x57\xce\x5b\xa8\x00\x00\x69\xe2\x00\x00\x52\x7b\x00\x00\x69\xdf\x00\x00\x00\x00\x50\xae\x69\xeb\x69\xdd\x00\x00\x69\xe0\x00\x00\x00\x00\x00\x00\x69\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x69\xe1\x00\x00\x00\x00\x69\xe6\x00\x00\x00\x00\x69\xe5\x00\x00\x00\x00\x69\xe8\x00\x00\x00\x00\x00\x00\x69\xde\x00\x00\x00\x00\x69\xe3\x69\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4c\x69\xe4\x49\xf4\x00\x00\x00\x00\x69\xf1\x00\x00\x58\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x69\xf4\x00\x00\x00\x00\x00\x00\x4e\x68\x00\x00\x69\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xef\x00\x00\x00\x00\x69\xf5\x69\xf7\x69\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xf2\x00\x00\x69\xf0\x00\x00\x00\x00\x00\x00\x4d\xfa\x00\x00\x4b\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x69\xee\x69\xf6\x69\xec\x69\xed\x00\x00", /* 8780 */ "\x00\x00\x00\x00\x69\xea\x6a\x46\x00\x00\x6a\x43\x00\x00\x00\x00\x6a\x42\x00\x00\x00\x00\x69\xf3\x00\x00\x54\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xfa\x00\x00\x00\x00\x00\x00\x6a\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xfc\x00\x00\x00\x00\x6a\x47\x6a\x49\x6a\x44\x00\x00\x69\xfb\x00\x00\x00\x00\x00\x00\x6a\x4b\x00\x00\x6a\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x00\x00\x6a\x4e\x00\x00\x00\x00\x6a\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x41\x00\x00\x00\x00\x00\x00\x6a\x51\x6a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x4f\x69\xfd\x6a\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x52\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x54\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x48\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x53\x00\x00\x00\x00\x00\x00\x6a\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x58\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x5d\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x57\x00\x00\x54\xe3\x6a\x56\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5b\x4a\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5c\x00\x00\x00\x00\x6a\x5d\x00\x00\x00\x00\x00\x00\x59\x4a\x00\x00\x00\x00\x00\x00\x6a\xab\x58\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xcf\x59\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x6e\x00\x00\x00\x00\x4f\x76\x00\x00\x59\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe1\x61\x8a\x59\xc1\x69\x62\x49\xb8\x00\x00\x00\x00\x49\x8e\x69\x63\x00\x00\x55\x60\x4a\x64\x00\x00\x5d\x93\x00\x00\x56\x45\x00\x00\x69\x64\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x65\x6a\xbf\x69\x66", /* 8880 */ "\x00\x00\x5a\xab\x69\x67\x00\x00\x48\xbf\x6a\xc0\x00\x00\x00\x00\x6a\xc1\x00\x00\x00\x00\x4a\xfb\x00\x00\x53\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x56\xba\x00\x00\x00\x00\x00\x00\x58\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x68\x00\x00\x5d\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x5b\x00\x00\x58\x4e\x00\x00\x00\x00\x00\x00\x4c\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc2\x51\x71\x00\x00\x00\x00\x5c\x50\x69\x69\x00\x00\x00\x00\x69\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6e\x00\x00\x00\x00\x00\x00\x5d\x97\x00\x00\x59\xe0\x5a\xa2\x00\x00\x00\x00\x6a\xc2\x54\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc3\x00\x00\x00\x00\x69\x6d\x69\x6f\x50\x84\x69\x70\x00\x00\x00\x00\x69\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x76\x69\x71\x00\x00\x55\x71\x53\x82\x00\x00\x00\x00\x00\x00\x51\xe2\x4d\x9d\x00\x00\x00\x00\x69\x73\x00\x00\x69\x75\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x4d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd5\x00\x00\x48\xfc\x69\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x78\x69\x72\x69\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x77\x00\x00\x00\x00\x00\x00\x54\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6a\x69\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5d\x00\x00\x00\x00\x00\x00\x69\x7c\x00\x00\x69\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x7f\x00\x00\x00\x00\x58\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc4\x4f\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x82\x00\x00\x00\x00\x00\x00\x57\xf6", /* 8980 */ "\x00\x00\x59\xa9\x00\x00\x69\x9c\x00\x00\x00\x00\x4c\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xfa\x4d\x7b\x00\x00\x4d\x87\x52\x79\x55\xd2\x65\xe7\x50\xbf\x4f\xf4\x65\xe8\x65\xe9\x65\xea\x00\x00\x65\xeb\x65\xec\x65\xed\x65\xee\x4f\x67\x00\x00\x00\x00\x00\x00\x6b\x9c\x00\x00\x00\x00\x00\x00\x6b\x9e\x00\x00\x6b\x9f\x00\x00\x6b\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x83\x00\x00\x6b\xa0\x4a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa1\x00\x00\x00\x00\x00\x00\x6b\xa2\x00\x00\x00\x00\x00\x00\x66\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a00 */ "\x59\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9f\x56\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8b80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa4\x4e\xc5\x4b\xa8\x4c\xbb\x54\xce\x4e\xa4\x5d\xa5\x5d\xa6\x56\xd5\x54\xc2\x5d\xa7\x53\xfc\x00\x00\x59\x55\x59\xe8\x59\x56\x4e\xc6\x00\x00\x4f\x52\x4e\x85\x5d\xa8\x5d\xa9\x59\x68\x5d\xaa\x58\xec\x4b\xee\x51\xda\x00\x00\x56\x6f\x4c\x8e\x55\x89\x4c\x63\x4f\xf6\x5b\xa3\x5d\xab\x5d\xac\x53\xbf\x5c\x88\x55\xb5\x00\x00\x5b\x49\x56\x7f\x5b\x90\x5d\xad\x5b\xde\x4a\xc9\x5d\xaf\x5d\xae\x00\x00\x59\xea\x5d\xb0\x5d\xb1\x5d\xb2\x55\xd3\x5d\xb3\x55\xaa\x5d\xb4\x5d\xb5\x4a\x6f\x5b\xee\x5d\xb6\x4e\x50\x4b\x4e\x5d\xb7\x5d\xb8\x4d\x8f\x59\x4f\x59\xe7\x5d\xb9\x4c\xc2\x58\x8b\x49\xee\x5d\xba\x5d\xbb\x00\x00\x4f\x8c\x57\xdb\x5a\x90\x5d\xbc\x57\xf2\x5d\xbd\x5a\x75\x4e\x86\x5d\xbe\x56\x55\x56\x70\x5d\xbf\x54\x8c\x5b\xed\x5d\xc0\x53\x55\x4b\xc0\x5d\xc1\x4c\x6c\x50\x6e\x5d\xc2", /* 8c00 */ "\x5d\xc3\x56\x4d\x5d\xc4\x4b\x98\x5d\xc5\x51\x62\x5c\x5b\x5d\xc6\x56\xb7\x00\x00\x59\xe9\x52\xb0\x5d\xc7\x4b\x9e\x4e\x71\x5d\xc8\x58\xb2\x5d\xc9\x5d\xca\x57\xbc\x5d\xcb\x5d\xcc\x5d\xcd\x49\xf6\x5d\xd0\x5d\xce\x59\x89\x5d\xcf\x52\x75\x5d\xd1\x00\x00\x5d\xd2\x5d\xd3\x5d\xd4\x58\xba\x59\xa4\x48\xf8\x5d\xd5\x54\x4b\x5d\xd6\x4f\x98\x52\x41\x5d\xd7\x5d\xd8\x52\x9e\x56\xb6\x5d\xd9\x5d\xda\x50\xbd\x53\xd6\x5d\xdb\x5d\xdc\x54\x54\x5d\xdd\x5d\xde\x4d\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb8\x6a\xf7\x00\x00\x6a\xf8\x00\x00\x00\x00\x57\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x59\x00\x00\x00\x00\x00\x00\x00\x00\x66\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x94\x4e\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xbf\x5a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x79\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x95\x49\x4a\x49\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c80 */ "\x00\x00\x00\x00\x6b\x96\x00\x00\x00\x00\x6b\x98\x00\x00\x00\x00\x00\x00\x4d\xd0\x6b\x97\x00\x00\x52\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x9a\x00\x00\x00\x00\x00\x00\x6b\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x54\x5b\x8b\x4c\xb9\x00\x00\x4d\x51\x49\xc5\x5a\xef\x58\x6d\x48\xdb\x5b\x6b\x4e\x96\x5b\xc9\x4c\x57\x56\xaf\x53\xb5\x49\x82\x4d\x5a\x5b\xfb\x4d\x82\x4c\x41\x4e\xf9\x65\xd9\x65\xda\x56\xf8\x4d\x94\x65\xdb\x4a\xfa\x52\x53\x4c\x71\x4d\xd7\x65\xdc\x5a\xf3\x65\xdd\x4e\xd5\x4e\x7f\x65\xde\x51\x7e\x51\xb7\x5a\xde\x5c\x6a\x65\xdf\x65\xe0\x65\xe3\x65\xe1\x65\xe2\x55\x7e\x4c\xb2\x4b\xc3\x65\xe4\x55\xe9\x55\x6d\x4a\xcc\x00\x00\x00\x00\x61\xd8\x53\x83\x65\xe5\x50\xb4\x00\x00\x5c\x58\x65\xe6\x5c\x4c\x54\xfb\x5c\xd2\x5c\xcc\x5a\xdd\x00\x00\x5a\xf8\x55\x64\x5a\x4e\x4c\xd2\x4a\x81\x00\x00\x55\x83\x6a\xf5\x00\x00\x00\x00\x00\x00\x4d\xd4\x00\x00\x6a\xf6\x00\x00\x00\x00\x5c\x7f\x00\x00\x00\x00\x6a\xf0\x4c\xaf\x5b\x74\x4c\xce\x53\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d80 */ "\x00\x00\x4a\x63\x00\x00\x00\x00\x6a\xf1\x4a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xbc\x54\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf3\x00\x00\x00\x00\x6a\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xca\x00\x00\x00\x00\x00\x00\x54\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf4\x00\x00\x5c\x84\x53\x5f\x6b\x60\x00\x00\x00\x00\x6b\x5b\x00\x00\x6b\x63\x00\x00\x6b\x62\x00\x00\x5b\xb9\x6b\x61\x00\x00\x00\x00\x00\x00\x5a\xbd\x6b\x64\x00\x00\x6b\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x48\xce\x4b\x99\x00\x00\x6b\x69\x6b\x6a\x00\x00\x53\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x65\x6b\x66\x00\x00\x00\x00\x6b\x67\x6b\x6b\x00\x00\x4f\xdf\x6b\x68\x4c\xf9\x00\x00\x00\x00\x00\x00\x6b\x70\x6b\x73\x00\x00\x00\x00\x00\x00\x50\x88\x00\x00\x4d\x93\x6b\x5c\x6b\x6d\x00\x00\x00\x00\x51\xb6\x00\x00\x00\x00\x00\x00\x56\xf7\x00\x00\x4e\xf8\x00\x00\x6b\x6e\x6b\x6f\x6b\x71\x4b\xe4\x6b\x72\x00\x00\x6b\x75\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5d\x00\x00\x00\x00\x00\x00\x6b\x74\x5a\x5b\x00\x00\x4a\x8d\x00\x00\x00\x00\x56\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x77\x4f\xe0\x6b\x78\x00\x00\x00\x00\x56\xde\x6b\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc7\x5c\x79\x00\x00\x6b\x79\x00\x00\x6b\x7a\x6b\x7c\x00\x00\x6b\x83\x00\x00\x00\x00\x00\x00\x6b\x81\x00\x00\x00\x00\x00\x00\x6b\x7f\x6b\x7d\x00\x00\x00\x00\x6b\x82\x00\x00\x00\x00\x6b\x7e\x6b\x85\x6b\x86\x00\x00\x56\xe2\x00\x00\x00\x00\x63\x5f\x4b\x58\x6b\x84\x6b\x89\x56\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x87\x6b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x64\x00\x00\x00\x00\x6b\x5f\x00\x00\x00\x00\x4b\x65\x49\xe3\x00\x00\x6b\x8d\x6b\x8a\x00\x00\x4b\xd6\x00\x00\x6b\x8e\x00\x00\x6b\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x8c\x00\x00\x00\x00\x4a\xd9", /* 8e80 */ "\x00\x00\x5a\xe9\x00\x00\x00\x00\x00\x00\x6b\x8f\x00\x00\x4a\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x90\x6b\x92\x00\x00\x00\x00\x00\x00\x6b\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x93\x00\x00\x6b\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x8e\x4d\x4a\x00\x00\x00\x00\x54\x9c\x00\x00\x00\x00\x4b\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x55\x5a\xfd\x4d\x8d\x58\xf8\x00\x00\x65\x8e\x5c\x4a\x65\x8f\x51\xd5\x54\xec\x4d\xe3\x65\x90\x65\x91\x65\x92\x5b\xe0\x65\x93\x65\x94\x65\x96\x65\x95\x65\x97\x65\x98\x54\x82\x65\x99\x5a\xd7\x65\x9a\x4f\x6e", /* 8f80 */ "\x00\x00\x65\x9b\x65\x9c\x4f\x6f\x65\x9d\x4c\xa7\x51\x5e\x65\x9e\x49\x52\x4e\x74\x4d\x96\x65\x9f\x00\x00\x65\xa0\x65\xa1\x65\xa2\x4c\x99\x4e\xac\x00\x00\x55\xe3\x60\xcd\x5a\xae\x58\x5d\x5b\x57\x65\xa3\x5b\x7e\x65\xa4\x58\xc0\x4d\x5c\x00\x00\x4a\xc6\x49\x79\x00\x00\x00\x00\x00\x00\x50\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x49\x87\x49\x88\x00\x00\x49\x89\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5d\x54\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x63\x61\x00\x00\x00\x00\x49\x7f\x00\x00\x00\x00\x00\x00\x51\x69\x4a\xee\x00\x00\x00\x00\x54\x48\x5a\x78\x00\x00\x53\xf8\x59\x58\x00\x00\x4d\x9e\x51\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4d\x00\x00\x5a\xca\x4f\x9d\x00\x00\x63\x62\x4c\x55\x63\x63\x00\x00\x00\x00\x4e\x59\x5b\x83\x00\x00\x4f\x99\x5a\xb5\x57\xa4\x51\x4c\x4a\x79\x00\x00\x00\x00\x56\xf5\x00\x00\x63\x66\x63\x64\x63\x68\x00\x00\x63\x6a\x63\x67\x4b\x6f\x53\xc7\x00\x00\x4b\x9d\x63\x65\x00\x00\x55\xf5\x00\x00\x00\x00\x63\x69\x00\x00\x00\x00\x00\x00\x52\x74\x49\x65\x4e\xa2\x00\x00\x00\x00\x00\x00\x5c\x57\x00\x00\x00\x00", /* 9000 */ "\x57\x6b\x56\x6d\x55\xc9\x56\xd2\x63\x6c\x63\x6b\x52\xe5\x00\x00\x00\x00\x59\x41\x59\x57\x63\x6d\x00\x00\x63\x70\x00\x00\x57\x58\x5b\xef\x63\x6f\x4b\x7d\x00\x00\x57\x5e\x00\x00\x63\x71\x4b\xb9\x00\x00\x00\x00\x57\x48\x4d\x85\x00\x00\x55\xc4\x4a\x71\x56\x79\x5a\xeb\x63\x72\x4c\x8b\x00\x00\x00\x00\x00\x00\x63\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x75\x4a\xfd\x63\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x73\x63\x74\x00\x00\x59\xdc\x00\x00\x00\x00\x51\xde\x49\x66\x00\x00\x5a\x83\x00\x00\x00\x00\x4b\xdc\x56\x8d\x00\x00\x63\x77\x00\x00\x00\x00\x5a\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x8a\x00\x00\x4b\xf3\x63\x7a\x63\x78\x63\x79\x4b\x60\x00\x00\x00\x00\x00\x00\x59\xc4\x63\x7c\x00\x00\x00\x00\x63\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7d\x54\x52\x00\x00\x59\xa2\x00\x00\x00\x00\x63\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe1\x5b\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x81\x5c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x82\x00\x00\x49\x7c", /* 9080 */ "\x59\x9c\x00\x00\x63\x83\x63\x85\x00\x00\x00\x00\x00\x00\x00\x00\x63\x84\x00\x00\x00\x00\x63\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd7\x00\x00\x4b\x6b\x00\x00\x64\x7f\x00\x00\x5d\xf4\x00\x00\x5d\xf7\x00\x00\x5d\xf5\x00\x00\x5d\xf6\x00\x00\x00\x00\x00\x00\x5d\xf9\x58\xce\x52\xc6\x00\x00\x00\x00\x48\xed\x00\x00\x00\x00\x00\x00\x58\xaf\x00\x00\x5d\xf8\x00\x00\x5a\x6a\x4d\xa9\x5e\x42\x54\x92\x00\x00\x5d\xfb\x5d\xfa\x55\x7b\x5d\xfc\x00\x00\x5e\x41\x5c\x7e\x5d\xfd\x51\x7a\x00\x00\x00\x00\x5e\x45\x00\x00\x00\x00\x5a\x95\x00\x00\x00\x00\x5e\x47\x5e\x44\x00\x00\x5e\x48\x00\x00\x00\x00\x4f\x5c\x00\x00\x00\x00\x00\x00\x50\xc8\x5e\x43\x5e\x46\x5b\xa2\x00\x00\x5e\x49\x00\x00\x00\x00\x00\x00\x5e\x4d\x00\x00\x00\x00\x00\x00\x5e\x4e\x5e\x4c\x4d\xc1\x00\x00\x00\x00\x00\x00\x50\x44\x5e\x4b\x00\x00\x00\x00\x00\x00\x5e\x4a\x5a\xc6\x49\xbe\x00\x00\x00\x00\x5e\x4f\x00\x00\x4d\x9a\x00\x00\x5e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5b\x00\x00\x00\x00\x00\x00\x4b\x46\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbb\x5e\x51\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x4b\xf4\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x54\x00\x00\x00\x00\x00\x00\x5e\x53\x5e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x57\x00\x00\x5e\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x59\x00\x00\x00\x00\x5e\x5a\x00\x00\x00\x00\x5a\x6f\x6a\xf9\x54\x96\x5c\x63\x53\x85\x6a\xfb\x6a\xfc\x6a\xfa\x00\x00\x4f\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x58\xee\x00\x00\x00\x00\x4c\x73\x00\x00\x00\x00\x5a\xcc\x56\xa9\x00\x00\x00\x00\x6b\x42\x6b\x41\x4d\xa7\x6a\xfd\x56\x76\x00\x00\x00\x00\x00\x00\x6b\x44\x50\xd1\x00\x00\x4a\x8b\x00\x00\x57\x4a\x6b\x45\x6b\x43\x4f\x54\x6b\x48\x00\x00\x6b\x49\x4f\x6d\x52\x58\x50\x82\x56\x82\x6b\x4a\x00\x00\x00\x00\x00\x00\x6b\x46\x6b\x47\x52\xef", /* 9180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x4c\x00\x00\x4a\xbb\x00\x00\x5c\x8e\x00\x00\x4a\xd6\x6b\x4b\x6b\x4e\x00\x00\x00\x00\x6b\x4d\x6b\x4f\x58\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x71\x54\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x50\x6b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x52\x00\x00\x00\x00\x6b\x53\x6b\x54\x6b\x55\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x57\x6b\x56\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc8\x00\x00\x5a\x74\x55\xcc\x00\x00\x50\xee\x5b\xd7\x59\xaf\x51\x5f\x00\x00\x4f\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9480 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc3\x67\xc4\x67\xc5\x5b\x8c\x4b\xa3\x67\xc7\x67\xc6\x67\xc8\x67\xc9\x54\x45\x67\xca\x67\xcb\x00\x00\x4c\x50\x4b\x97\x67\xcc\x67\xce\x00\x00\x67\xcd\x00\x00\x4c\xc5\x67\xcf\x67\xd0\x67\xd1\x4b\xda\x4a\x4e\x5b\xd2\x52\xc5\x49\x55\x4c\xd5\x67\xd2\x67\xd3\x5a\xbe\x54\x75\x4f\xfa\x57\xd8\x4d\x53\x67\xd5\x67\xd4\x67\xd7\x67\xd6\x53\x45\x67\xd8\x67\xd9\x54\x4e\x67\xda\x54\x4f\x67\xdb\x49\xa6\x67\xdc\x67\xdd\x67\xde\x67\xdf\x67\xe0\x5c\x8b\x67\xe1\x67\xe2\x4e\xd7\x67\xe3\x5a\x6b\x56\xf9\x49\xab\x51\x86\x67\xe4\x54\x46\x52\x4d\x00\x00\x67\xe5\x67\xe6\x67\xe7\x67\xe8\x67\xe9\x67\xea\x67\xeb\x00\x00\x67\xec\x67\xed\x67\xee\x00\x00\x00\x00\x67\xef\x67\xf0\x67\xf1\x67\xf3\x67\xf2\x00\x00\x67\xf4\x57\x4d\x51\xc0\x67\xf5\x67\xf6\x67\xf7\x5b\x41\x67\xf8\x58\x53\x67\xf9\x67\xfa\x00\x00\x67\xfb\x67\xfc\x68\x41\x67\xfd\x68\x42\x4c\xf4\x52\x9b\x68\x43\x68\x44\x4f\x62\x59\xbe\x49\xf8\x68\x45\x68\x46\x68\x47\x59\xf7\x68\x48\x5b\xfc\x68\x49\x53\xcb\x00\x00\x68\x4a\x68\x4b\x51\x54\x68\x4c", /* 9500 */ "\x58\x9b\x56\x99\x68\x4e\x68\x4d\x4a\x9b\x4d\x99\x68\x4f\x68\x50\x58\xe1\x68\x51\x68\x52\x4c\x87\x58\xbe\x68\x53\x68\x54\x68\x55\x54\xf0\x56\xdf\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x5b\x81\x68\x5b\x4a\xec\x52\x4a\x68\x5c\x00\x00\x68\x5d\x68\x5e\x68\x5f\x00\x00\x57\xfc\x68\x60\x51\xdf\x4a\xb7\x5c\x56\x4f\x96\x00\x00\x58\x67\x68\x63\x68\x61\x68\x62\x68\x64\x4b\xa6\x4e\xfb\x4f\xe1\x52\x6c\x68\x65\x68\x66\x00\x00\x68\x67\x68\x6f\x68\x68\x68\x69\x68\x6a\x54\x62\x68\x92\x4b\xcc\x68\x6b\x00\x00\x68\x6c\x68\x6d\x4b\xc5\x52\x5e\x68\x6e\x00\x00\x68\x70\x68\x71\x68\x72\x5b\x93\x00\x00\x68\x73\x52\xf6\x00\x00\x68\x74\x52\xf7\x68\x75\x68\x76\x4c\xe3\x48\xf6\x68\x77\x68\x78\x68\x79\x00\x00\x68\x7a\x68\x7b\x68\x7c\x68\x7d\x00\x00\x68\x7e\x4f\xb4\x68\x82\x68\x7f\x68\x81\x00\x00\x68\x83\x68\x84\x51\x6d\x68\x85\x68\x86\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x50\xd7\x00\x00\x68\x8e\x51\x4d\x68\x8f\x68\x90\x68\x91\x00\x00\x00\x00\x58\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x44", /* 9580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x65\x62\x65\x55\x61\x62\x66\x00\x00\x49\x75\x57\xc9\x4a\xb2\x54\xf1\x62\x67\x58\x70\x62\x68\x4e\xe3\x62\x69\x62\x6a\x52\x66\x5b\x42\x52\xd5\x4d\x8c\x57\xc4\x62\x6b\x52\x97\x62\x6c\x00\x00", /* 9600 */ "\x4c\x47\x4c\xf2\x4d\xd1\x62\x6d\x62\x6e\x5a\xc3\x62\x6f\x00\x00\x62\x70\x59\x6b\x62\x71\x62\x72\x62\x73\x62\x74\x59\x76\x62\x75\x49\xfa\x50\xba\x62\x76\x00\x00\x50\xaa\x62\x77\x62\x78\x62\x79\x00\x00\x62\x7a\x62\x7b\x00\x00\x4c\xb6\x5d\xe1\x00\x00\x4b\xd2\x00\x00\x5d\xe3\x5d\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe5\x00\x00\x00\x00\x00\x00\x54\xed\x00\x00\x00\x00\x5d\xe4\x4c\x60\x59\x95\x59\xf4\x5b\x94\x4f\x77\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x89\x5d\xe7\x5d\xe6\x00\x00\x48\xa1\x57\x73\x00\x00\x5d\xe8\x00\x00\x4c\xbc\x4e\xc9\x51\xbc\x51\xa3\x4a\x62\x5d\xe9\x00\x00\x51\xa9\x52\xaf\x4f\x55\x00\x00\x00\x00\x58\x7e\x00\x00\x00\x00\x00\x00\x5d\xea\x55\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7d\x00\x00\x00\x00\x00\x00\x5d\xeb\x00\x00\x4b\xb7\x5a\xb9\x00\x00\x4a\x9e\x00\x00\x00\x00\x5d\xec\x5a\xc8\x58\x75\x53\x84\x00\x00\x5d\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xee\x00\x00\x5d\xef\x51\x8b\x56\xd4\x58\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x88\x51\xa0\x00\x00\x5d\xf0\x00\x00\x00\x00\x56\x86\x00\x00\x5d\xf1\x00\x00\x56\x87\x59\xfd\x00\x00\x00\x00\x00\x00\x4c\xf3\x00\x00\x00\x00\x5d\xf2\x48\xae\x58\x56\x00\x00\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf3\x00\x00\x00\x00\x62\x64\x00\x00\x00\x00\x51\x45\x00\x00\x00\x00\x6b\xbe\x00\x00\x00\x00\x6b\xbf\x6b\xc0\x52\xd0\x00\x00\x54\xb7\x59\x84\x00\x00\x00\x00\x58\xda\x59\x65\x4e\xae\x4d\x6d\x00\x00\x68\x95\x00\x00\x00\x00\x4a\xc5\x5a\x5a\x6b\xc1\x4a\x9c\x00\x00\x00\x00\x6b\xc2\x00\x00\x00\x00\x4b\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8b\x6b\xa6\x59\x49\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa8\x00\x00\x00\x00\x00\x00\x6b\xa7\x00\x00\x00\x00\x51\x84\x50\xd6\x00\x00\x49\x42\x00\x00\x00\x00\x00\x00\x00\x00\x57\xec\x00\x00", /* 9700 */ "\x58\xe7\x6b\xaa\x00\x00\x00\x00\x58\x97\x00\x00\x6b\xa9\x5b\x91\x6b\xab\x52\x59\x00\x00\x00\x00\x00\x00\x4e\x95\x6b\xad\x6b\xac\x00\x00\x00\x00\x00\x00\x52\xdd\x00\x00\x00\x00\x51\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x4a\x00\x00\x58\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xae\x00\x00\x00\x00\x6b\xaf\x00\x00\x00\x00\x6b\xb0\x00\x00\x51\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd3\x53\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x81\x6b\xa5\x00\x00\x00\x00\x4f\xb7\x00\x00\x00\x00\x4f\xb1\x00\x00\x4b\x86\x00\x00\x00\x00\x4c\x67\x00\x00\x50\x5f\x52\x72\x52\x87\x00\x00\x00\x00\x5c\xcb\x00\x00\x00\x00\x00\x00\x4c\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9a\x59\x45\x00\x00\x48\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x50\x00\x00\x00\x00\x00\x00", /* 9780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xab\x00\x00\x48\xaf\x00\x00\x00\x00\x00\x00\x6c\x52\x6c\x53\x00\x00\x6c\x54\x00\x00\x00\x00\x00\x00\x54\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xce\x00\x00\x00\x00\x6c\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x56\x00\x00\x49\x7e\x00\x00\x6c\x55\x00\x00\x00\x00\x6c\x58\x00\x00\x6c\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa3\x54\xcc\x00\x00\x4d\xaa\x64\xb7\x64\xb8\x64\xb9\x4f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf3\x00\x00\x5a\xce\x55\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb2\x4b\xa4\x54\x8b\x69\x9d\x58\x8f\x56\x53\x58\xea\x64\x90\x57\x88\x4d\x6b\x4b\xd8", /* 9880 */ "\x69\x9e\x48\xe3\x56\x6c\x69\x9f\x5a\xa3\x51\xac\x51\x8d\x53\xc3\x4f\xb0\x69\xa0\x4e\xd4\x00\x00\x69\xa1\x69\xa2\x00\x00\x69\xa3\x59\xc2\x53\xb4\x00\x00\x57\x67\x69\xa4\x00\x00\x5a\x51\x50\x65\x56\xe1\x00\x00\x69\xa5\x69\xa6\x59\x75\x4b\xed\x69\xa7\x69\xa8\x4b\x7f\x69\xa9\x69\xaa\x00\x00\x49\xfb\x69\xab\x69\xac\x54\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x88\x00\x00\x00\x00\x66\xa8\x66\xa9\x66\xaa\x00\x00\x66\xab\x00\x00\x00\x00\x53\xad\x66\xac\x66\xad\x00\x00\x00\x00\x00\x00\x4c\x69\x55\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb7\x6c\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x70\x00\x00\x00\x00\x49\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x73\x6c\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xba\x00\x00\x4e\xa1\x00\x00\x61\xbb\x61\xbc\x61\xbd\x61\xbe\x61\xbf\x61\xc0\x4c\x59\x59\xfa\x4f\x44\x55\xcd\x49\x45\x56\x67\x00\x00\x61\xc1\x4b\xfb\x54\xc3\x61\xc2\x00\x00\x00\x00\x4f\x68\x00\x00\x49\x9e\x61\xc3\x00\x00\x4b\xf5", /* 9980 */ "\x61\xc4\x52\xd8\x00\x00\x00\x00\x61\xc5\x58\x7a\x4d\x7d\x61\xc6\x50\xa0\x00\x00\x61\xc7\x49\xf5\x00\x00\x61\xc8\x00\x00\x51\x94\x61\xc9\x61\xca\x51\xf7\x61\xcb\x61\xcc\x61\xcd\x55\xd6\x5c\xb7\x5d\x86\x58\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa4\x00\x00\x00\x00\x5e\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xec\x5a\xa5\x57\x74\x59\x51\x4a\x7b\x54\x9e\x00\x00\x49\xb4\x51\xbe\x63\xdf\x55\xba\x63\xe0\x63\xe1\x4f\xd3\x63\xe2\x5c\x44\x57\x75\x63\xe4\x4e\xdc\x63\xe3", /* 9a80 */ "\x63\xe5\x63\xe6\x51\xed\x00\x00\x4f\x5e\x63\xe7\x51\xe5\x4d\xa6\x63\xe8\x00\x00\x63\xe9\x4a\x72\x59\x8a\x00\x00\x00\x00\x50\x45\x63\xea\x53\xee\x63\xeb\x63\xec\x00\x00\x00\x00\x63\xed\x53\xac\x63\xee\x00\x00\x55\x47\x63\xef\x63\xf0\x63\xf1\x63\x59\x63\xf2\x63\xf3\x51\xe1\x63\xf4\x63\xf5\x5b\xe7\x63\xf6\x00\x00\x63\xf7\x4d\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x5b\x6c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x5e\x6c\x5c\x4d\xa0\x00\x00\x6c\x5f\x00\x00\x6c\x60\x00\x00\x00\x00\x00\x00\x6c\x62\x6c\x61\x6c\x64\x00\x00\x00\x00\x6c\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x65\x6c\x66\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x67\x00\x00\x56\x89\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x74\x00\x00\x6c\x75\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x76\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x78\x00\x00\x6c\x7a\x00\x00\x6c\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7b\x00\x00\x6c\x79\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x5c\x77\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7d\x00\x00\x00\x00\x00\x00\x6c\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7f\x00\x00\x00\x00\x00\x00\x6c\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6b\x00\x00\x00\x00\x5c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x98\x4d\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9e\x4e\x8b\x6c\x69\x53\xc6\x6c\x68\x00\x00\x6c\x6a\x6c\x6c\x6c\x6b\x00\x00\x00\x00\x00\x00\x6c\x6d\x00\x00\x57\xb9\x00\x00\x6c\x6e\x00\x00\x00\x00\x52\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b80 */ NULL, /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x84\x00\x00\x00\x00\x6b\xce", /* 9c80 */ "\x00\x00\x51\xb2\x6b\xcf\x00\x00\x00\x00\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\x00\x00\x00\x00\x6b\xd5\x00\x00\x49\x4b\x6b\xd6\x00\x00\x6b\xd7\x6b\xd8\x6b\xd9\x00\x00\x6b\xda\x6b\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xdc\x6b\xdd\x58\x6a\x00\x00\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x50\xef\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x00\x00\x6b\xe9\x00\x00\x6b\xea\x6b\xeb\x00\x00\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x4f\xa7\x00\x00\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xf9\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\x00\x00\x00\x00\x6b\xfc\x6b\xfd\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\x00\x00\x00\x00\x6c\x46\x6c\x47\x6c\x48\x49\x8f\x6c\x49\x6c\x4a\x6c\x4b\x00\x00\x00\x00\x6c\x4c\x6c\x4d\x51\x7b\x6c\x4e\x00\x00\x00\x00\x6c\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf0\x68\xae\x4e\xa5\x68\xaf\x52\x9a\x00\x00\x53\x58\x59\x5b\x00\x00\x68\xb0\x68\xb1\x68\xb2\x68\xb3\x68\xb4\x59\x5c\x00\x00\x59\x8d\x00\x00\x68\xb6\x68\xb5\x5a\xa6\x00\x00\x57\x72\x68\xb7\x68\xb9\x68\xb8\x68\xba\x68\xbb\x00\x00\x00\x00\x4c\xea\x68\xbc\x4d\xe7\x00\x00\x68\xbd\x68\xbe\x4f\xe8\x68\xbf\x4b\xeb\x68\xc0\x68\xc1\x68\xc2\x68\xc3\x54\xb4\x68\xc4\x68\xc5\x00\x00\x68\xc6\x53\x95\x00\x00\x68\xc7\x00\x00\x00\x00\x00\x00\x68\xc8\x00\x00\x68\xc9\x6c\x5d\x00\x00\x68\xca\x68\xcb\x68\xcc\x00\x00\x68\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x68\xce\x4d\xd6\x00\x00\x68\xcf\x68\xd0\x68\xd1\x68\xd2\x68\xd3\x68\xd4\x68\xd5\x68\xd7\x00\x00\x00\x00\x5a\x45\x68\xd6\x00\x00\x68\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5a\x51\xb8", /* 9e80 */ "\x00\x00\x00\x00\x6c\x85\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x86\x6c\x87\x00\x00\x00\x00\x6c\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x89\x51\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x8b\x00\x00\x6c\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xef\x00\x00\x00\x00\x00\x00\x6a\xee\x00\x00\x00\x00\x51\xe8\x00\x00\x6c\x82\x6c\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x85\x00\x00\x00\x00\x00\x00\x55\xf1\x50\xe7\x68\xa3\x00\x00\x4d\xd9\x00\x00\x00\x00\x54\x4d\x00\x00\x00\x00\x00\x00\x52\xab\x00\x00\x00\x00\x6c\x8d\x6c\x8e\x6c\x8f\x00\x00\x6c\x91\x6c\x90\x00\x00\x6c\x92\x00\x00\x00\x00\x6c\x95\x00\x00\x6c\x94\x00\x00\x6c\x93\x6c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x8a\x00\x00\x67\x8b\x67\x8c\x00\x00\x6b\xbb\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xbc\x00\x00\x6b\xbd\x4b\xa5\x00\x00\x5c\xbd\x00\x00\x00\x00\x4d\x64\x00\x00\x00\x00\x00\x00\x5c\xba\x00\x00\x5e\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf2\x00\x00\x6c\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x99\x00\x00\x00\x00\x6c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9c\x00\x00\x6c\x9b\x00\x00\x49\x67\x00\x00\x6c\x9d\x6c\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x66\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7d", /* 9f80 */ "\x6b\xb2\x00\x00\x00\x00\x6b\xb3\x51\x85\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x54\xa2\x6b\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9b\x4d\x48\x67\x89\x00\x00\x00\x00\x00\x00\x4d\x8b\x5d\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1", /* e080 */ "\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85", /* e100 */ "\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48", /* e180 */ "\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9", /* e200 */ "\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d", /* e280 */ "\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50", /* e300 */ "\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1", /* e380 */ "\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95", /* e400 */ "\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58", /* e480 */ "\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9", /* e500 */ "\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d", /* e580 */ "\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60", /* e600 */ "\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1", /* e680 */ "\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5", /* e700 */ "\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5b\x44\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-837_P100-2000 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x21\x6a\x21\x6b\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\xf8\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x15\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x64\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x65\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x16\x30\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x36\x22\x27\x22\x28\x22\x11\x22\x0f\x22\x2a\x22\x29\x22\x08\x22\x37\x22\x1a\x22\xa5\x22\x25\x22\x20\x23\x12\x22\x99\x22\x2b\x22\x2e\x22\x61\x22\x4c\x22\x48\x22\x3d\x22\x1d\x00\x00\x22\x6e\x22\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x20\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x88\x24\x89\x24\x8a\x24\x8b\x24\x8c\x24\x8d\x24\x8e\x24\x8f\x24\x90\x24\x91\x24\x92\x24\x93\x24\x94\x24\x95\x24\x96\x24\x97\x24\x98\x24\x99\x24\x9a\x24\x9b\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x24\x7e\x24\x7f\x24\x80\x24\x81\x24\x82\x24\x83\x24\x84\x24\x85\x24\x86\x24\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x20\x32\x21\x32\x22\x32\x23\x32\x24\x32\x25\x32\x26\x32\x27\x32\x28\x32\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xe1\x01\xce\x00\xe0\x01\x13\x00\xe9\x01\x1b\x00\xe8\x01\x2b\x00\xed\x01\xd0\x00\xec\x01\x4d\x00\xf3\x01\xd2\x00\xf2\x01\x6b\x00\xfa\x01\xd4\x00\xf9\x01\xd6\x01\xd8\x01\xda\x01\xdc\x00\xfc\x00\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f", /* 4680 */ "\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x25\x01\x25\x02\x25\x03\x25\x04\x25\x05\x25\x06\x25\x07\x25\x08\x25\x09\x25\x0a\x25\x0b\x25\x0c\x25\x0d\x25\x0e\x25\x0f\x25\x10\x25\x11\x25\x12\x25\x13\x25\x14\x25\x15\x25\x16\x25\x17\x25\x18\x25\x19\x25\x1a\x25\x1b\x25\x1c\x25\x1d\x25\x1e\x25\x1f\x25\x20\x25\x21\x25\x22\x25\x23\x25\x24\x25\x25\x25\x26\x25\x27\x25\x28\x25\x29\x25\x2a\x25\x2b\x25\x2c\x25\x2d\x25\x2e\x25\x2f\x25\x30\x25\x31\x25\x32\x25\x33\x25\x34\x25\x35\x25\x36\x25\x37\x25\x38\x25\x39\x25\x3a\x25\x3b\x25\x3c\x25\x3d\x25\x3e\x25\x3f\x25\x40\x25\x41\x25\x42\x25\x43\x25\x44\x25\x45\x25\x46\x25\x47\x25\x48\x25\x49\x25\x4a\x25\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4a\x96\x3f\x57\xc3\x63\x28\x54\xce\x55\x09\x54\xc0\x76\x91\x76\x4c\x85\x3c\x77\xee\x82\x7e\x78\x8d\x72\x31\x96\x98\x97\x8d\x6c\x28\x5b\x89\x4f\xfa\x63\x09\x66\x97\x5c\xb8\x80\xfa\x68\x48\x80\xae\x66\x02\x76\xce\x51\xf9\x65\x56\x71\xac\x7f\xf1\x88\x84\x50\xb2\x59\x65\x61\xca\x6f\xb3\x82\xad\x63\x4c\x62\x52\x53\xed\x54\x27\x7b\x06\x51\x6b\x75\xa4\x5d\xf4\x62\xd4\x8d\xcb\x97\x76\x62\x8a\x80\x19\x57\x5d\x97\x38\x7f\x62\x72\x38\x76\x7d\x67\xcf\x76\x7e\x64\x46\x4f\x70\x8d\x25\x62\xdc\x7a\x17\x65\x91\x73\xed\x64\x2c\x62\x73\x82\x2c\x98\x81\x67\x7f\x72\x48\x62\x6e\x62\xcc\x4f\x34\x74\xe3\x53\x4a\x52\x9e\x7e\xca\x90\xa6\x5e\x2e\x68\x86\x69\x9c\x81\x80\x7e\xd1\x68\xd2\x78\xc5\x86\x8c\x95\x51\x50\x8d\x8c\x24\x82\xde\x80\xde\x53\x05\x89\x12\x52\x65\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x84\x96\xf9\x4f\xdd\x58\x21\x99\x71\x5b\x9d\x62\xb1\x62\xa5\x66\xb4\x8c\x79\x9c\x8d\x72\x06\x67\x6f\x78\x91\x60\xb2\x53\x51\x53\x17\x8f\x88\x80\xcc\x8d\x1d\x94\xa1\x50\x0d\x72\xc8\x59\x07\x60\xeb\x71\x19\x88\xab\x59\x54\x82\xef\x67\x2c\x7b\x28\x5d\x29\x7e\xf7\x75\x2d\x6c\xf5\x8e\x66\x8f\xf8\x90\x3c\x9f\x3b\x6b\xd4\x91\x19\x7b\x14\x5f\x7c\x78\xa7\x84\xd6\x85\x3d\x6b\xd5\x6b\xd9\x6b\xd6\x5e\x01\x5e\x87\x75\xf9\x95\xed\x65\x5d\x5f\x0a\x5f\xc5\x8f\x9f\x58\xc1\x81\xc2\x90\x7f\x96\x5b\x97\xad\x8f\xb9", /* 4980 */ "\x00\x00\x7f\x16\x8d\x2c\x62\x41\x4f\xbf\x53\xd8\x53\x5e\x8f\xa8\x8f\xa9\x8f\xab\x90\x4d\x68\x07\x5f\x6a\x81\x98\x88\x68\x9c\xd6\x61\x8b\x52\x2b\x76\x2a\x5f\x6c\x65\x8c\x6f\xd2\x6e\xe8\x5b\xbe\x64\x48\x51\x75\x51\xb0\x67\xc4\x4e\x19\x79\xc9\x99\x7c\x70\xb3\x75\xc5\x5e\x76\x73\xbb\x83\xe0\x64\xad\x62\xe8\x94\xb5\x6c\xe2\x53\x5a\x52\xc3\x64\x0f\x94\xc2\x7b\x94\x4f\x2f\x5e\x1b\x82\x36\x81\x16\x81\x8a\x6e\x24\x6c\xca\x9a\x73\x63\x55\x53\x5c\x54\xfa\x88\x65\x57\xe0\x4e\x0d\x5e\x03\x6b\x65\x7c\x3f\x90\xe8\x60\x16\x64\xe6\x73\x1c\x88\xc1\x67\x50\x62\x4d\x8d\x22\x77\x6c\x8e\x29\x91\xc7\x5f\x69\x83\xdc\x85\x21\x99\x10\x53\xc2\x86\x95\x6b\x8b\x60\xed\x60\xe8\x70\x7f\x82\xcd\x82\x31\x4e\xd3\x6c\xa7\x85\xcf\x64\xcd\x7c\xd9\x69\xfd\x66\xf9\x83\x49\x53\x95\x7b\x56\x4f\xa7\x51\x8c\x6d\x4b\x5c\x42\x8e\x6d\x63\xd2\x53\xc9\x83\x2c\x83\x36\x67\xe5\x78\xb4\x64\x3d\x5b\xdf\x5c\x94\x5d\xee\x8b\xe7\x62\xc6\x67\xf4\x8c\x7a\x64\x00\x63\xba\x87\x49\x99\x8b\x8c\x17\x7f\x20\x94\xf2\x4e\xa7\x96\x10\x98\xa4\x66\x0c\x73\x16\x00\x00\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x3a\x5c\x1d\x5e\x38\x95\x7f\x50\x7f\x80\xa0\x53\x82\x65\x5e\x75\x45\x55\x31\x50\x21\x8d\x85\x62\x84\x94\x9e\x67\x1d\x56\x32\x6f\x6e\x5d\xe2\x54\x35\x70\x92\x8f\x66\x62\x6f\x64\xa4\x63\xa3\x5f\x7b\x6f\x88\x90\xf4\x81\xe3\x8f\xb0\x5c\x18\x66\x68\x5f\xf1\x6c\x89\x96\x48\x8d\x81\x88\x6c\x64\x91\x79\xf0\x57\xce\x6a\x59\x62\x10\x54\x48\x4e\x58\x7a\x0b\x60\xe9\x6f\x84\x8b\xda\x62\x7f\x90\x1e\x9a\x8b\x79\xe4\x54\x03\x75\xf4\x63\x01\x53\x19\x6c\x60\x8f\xdf\x5f\x1b\x9a\x70\x80\x3b\x9f\x7f\x4f\x88\x5c\x3a", /* 4a80 */ "\x00\x00\x8d\x64\x7f\xc5\x65\xa5\x70\xbd\x51\x45\x51\xb2\x86\x6b\x5d\x07\x5b\xa0\x62\xbd\x91\x6c\x75\x74\x8e\x0c\x7a\x20\x61\x01\x7b\x79\x4e\xc7\x7e\xf8\x77\x85\x4e\x11\x81\xed\x52\x1d\x51\xfa\x6a\x71\x53\xa8\x8e\x87\x95\x04\x96\xcf\x6e\xc1\x96\x64\x69\x5a\x78\x40\x50\xa8\x77\xd7\x64\x10\x89\xe6\x59\x04\x63\xe3\x5d\xdd\x7a\x7f\x69\x3d\x4f\x20\x82\x39\x55\x98\x4e\x32\x75\xae\x7a\x97\x5e\x62\x5e\x8a\x95\xef\x52\x1b\x54\x39\x70\x8a\x63\x76\x95\x24\x57\x82\x66\x25\x69\x3f\x91\x87\x55\x07\x6d\xf3\x7e\xaf\x88\x22\x62\x33\x7e\xf0\x75\xb5\x83\x28\x78\xc1\x96\xcc\x8f\x9e\x61\x48\x74\xf7\x8b\xcd\x6b\x64\x52\x3a\x8d\x50\x6b\x21\x80\x6a\x84\x71\x56\xf1\x53\x06\x4e\xce\x4e\x1b\x51\xd1\x7c\x97\x91\x8b\x7c\x07\x4f\xc3\x8e\x7f\x7b\xe1\x7a\x9c\x64\x67\x5d\x14\x50\xac\x81\x06\x76\x01\x7c\xb9\x6d\xec\x7f\xe0\x67\x51\x5b\x58\x5b\xf8\x78\xcb\x64\xae\x64\x13\x63\xaa\x63\x2b\x95\x19\x64\x2d\x8f\xbe\x7b\x54\x76\x29\x62\x53\x59\x27\x54\x46\x6b\x79\x50\xa3\x62\x34\x5e\x26\x6b\x86\x4e\xe3\x8d\x37\x88\x8b\x5f\x85\x90\x2e\x00\x00\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x20\x80\x3d\x62\xc5\x4e\x39\x53\x55\x90\xf8\x63\xb8\x80\xc6\x65\xe6\x6c\x2e\x4f\x46\x60\xee\x6d\xe1\x8b\xde\x5f\x39\x86\xcb\x5f\x53\x63\x21\x51\x5a\x83\x61\x68\x63\x52\x00\x63\x63\x8e\x48\x50\x12\x5c\x9b\x79\x77\x5b\xfc\x52\x30\x7a\x3b\x60\xbc\x90\x53\x76\xd7\x5f\xb7\x5f\x97\x76\x84\x8e\x6c\x70\x6f\x76\x7b\x7b\x49\x77\xaa\x51\xf3\x90\x93\x58\x24\x4f\x4e\x6e\xf4\x8f\xea\x65\x4c\x7b\x1b\x72\xc4\x6d\xa4\x7f\xdf\x5a\xe1\x62\xb5\x5e\x95\x57\x30\x84\x82\x7b\x2c\x5e\x1d\x5f\x1f\x90\x12\x7f\x14\x98\xa0", /* 4b80 */ "\x00\x00\x63\x82\x6e\xc7\x78\x98\x70\xb9\x51\x78\x97\x5b\x57\xab\x75\x35\x4f\x43\x75\x38\x5e\x97\x60\xe6\x59\x60\x6d\xc0\x6b\xbf\x78\x89\x53\xfc\x96\xd5\x51\xcb\x52\x01\x63\x89\x54\x0a\x94\x93\x8c\x03\x8d\xcc\x72\x39\x78\x9f\x87\x76\x8f\xed\x8c\x0d\x53\xe0\x4e\x01\x76\xef\x53\xee\x94\x89\x98\x76\x9f\x0e\x95\x2d\x5b\x9a\x8b\xa2\x4e\x22\x4e\x1c\x51\xac\x84\x63\x61\xc2\x52\xa8\x68\x0b\x4f\x97\x60\x6b\x51\xbb\x6d\x1e\x51\x5c\x62\x96\x65\x97\x96\x61\x8c\x46\x90\x17\x75\xd8\x90\xfd\x77\x63\x6b\xd2\x72\x8a\x72\xec\x8b\xfb\x58\x35\x77\x79\x8d\x4c\x67\x5c\x95\x40\x80\x9a\x5e\xa6\x6e\x21\x59\x92\x7a\xef\x77\xed\x95\x3b\x6b\xb5\x65\xad\x7f\x0e\x58\x06\x51\x51\x96\x1f\x5b\xf9\x58\xa9\x54\x28\x8e\x72\x65\x66\x98\x7f\x56\xe4\x94\x9d\x76\xfe\x90\x41\x63\x87\x54\xc6\x59\x1a\x59\x3a\x57\x9b\x8e\xb2\x67\x35\x8d\xfa\x82\x35\x52\x41\x60\xf0\x58\x15\x86\xfe\x5c\xe8\x9e\x45\x4f\xc4\x98\x9d\x8b\xb9\x5a\x25\x60\x76\x53\x84\x62\x7c\x90\x4f\x91\x02\x99\x7f\x60\x69\x80\x0c\x51\x3f\x80\x33\x5c\x14\x99\x75\x6d\x31\x4e\x8c\x00\x00\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x30\x53\xd1\x7f\x5a\x7b\x4f\x4f\x10\x4e\x4f\x96\x00\x6c\xd5\x73\xd0\x85\xe9\x5e\x06\x75\x6a\x7f\xfb\x6a\x0a\x77\xfe\x94\x92\x7e\x41\x51\xe1\x70\xe6\x53\xcd\x8f\xd4\x83\x03\x8d\x29\x72\xaf\x99\x6d\x6c\xdb\x57\x4a\x82\xb3\x65\xb9\x80\xaa\x62\x3f\x96\x32\x59\xa8\x4e\xff\x8b\xbf\x7e\xba\x65\x3e\x83\xf2\x97\x5e\x55\x61\x98\xde\x80\xa5\x53\x2a\x8b\xfd\x54\x20\x80\xba\x5e\x9f\x6c\xb8\x8d\x39\x82\xac\x91\x5a\x54\x29\x6c\x1b\x52\x06\x7e\xb7\x57\x5f\x71\x1a\x6c\x7e\x7c\x89\x59\x4b\x4e\xfd\x5f\xff\x61\x24", /* 4c80 */ "\x00\x00\x7c\xaa\x4e\x30\x5c\x01\x67\xab\x87\x02\x5c\xf0\x95\x0b\x98\xce\x75\xaf\x70\xfd\x90\x22\x51\xaf\x7f\x1d\x8b\xbd\x59\x49\x51\xe4\x4f\x5b\x54\x26\x59\x2b\x65\x77\x80\xa4\x5b\x75\x62\x76\x62\xc2\x8f\x90\x5e\x45\x6c\x1f\x7b\x26\x4f\x0f\x4f\xd8\x67\x0d\x6d\x6e\x6d\xaa\x79\x8f\x88\xb1\x5f\x17\x75\x2b\x62\x9a\x8f\x85\x4f\xef\x91\xdc\x65\xa7\x81\x2f\x81\x51\x5e\x9c\x81\x50\x8d\x74\x52\x6f\x89\x86\x8d\x4b\x59\x0d\x50\x85\x4e\xd8\x96\x1c\x72\x36\x81\x79\x8d\x1f\x5b\xcc\x8b\xa3\x96\x44\x59\x87\x7f\x1a\x54\x90\x56\x76\x56\x0e\x8b\xe5\x65\x39\x69\x82\x94\x99\x76\xd6\x6e\x89\x5e\x72\x75\x18\x67\x46\x67\xd1\x7a\xff\x80\x9d\x8d\x76\x61\x1f\x79\xc6\x65\x62\x8d\x63\x51\x88\x52\x1a\x94\xa2\x7f\x38\x80\x9b\x7e\xb2\x5c\x97\x6e\x2f\x67\x60\x7b\xd9\x76\x8b\x9a\xd8\x81\x8f\x7f\x94\x7c\xd5\x64\x1e\x95\x50\x7a\x3f\x54\x4a\x54\xe5\x6b\x4c\x64\x01\x62\x08\x9e\x3d\x80\xf3\x75\x99\x52\x72\x97\x69\x84\x5b\x68\x3c\x86\xe4\x96\x01\x96\x94\x94\xec\x4e\x2a\x54\x04\x7e\xd9\x68\x39\x8d\xdf\x80\x15\x66\xf4\x5e\x9a\x7f\xb9\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x80\x3f\x68\x97\x5d\xe5\x65\x3b\x52\x9f\x60\x6d\x9f\x9a\x4f\x9b\x8e\xac\x51\x6c\x5b\xab\x5f\x13\x5d\xe9\x6c\x5e\x62\xf1\x8d\x21\x51\x71\x94\xa9\x52\xfe\x6c\x9f\x82\xdf\x72\xd7\x57\xa2\x67\x84\x8d\x2d\x59\x1f\x8f\x9c\x83\xc7\x54\x95\x7b\x8d\x4f\x30\x6c\xbd\x5b\x64\x59\xd1\x9f\x13\x53\xe4\x86\xca\x9a\xa8\x8c\x37\x80\xa1\x65\x45\x98\x7e\x56\xfa\x96\xc7\x52\x2e\x74\xdc\x52\x50\x5b\xe1\x63\x02\x89\x02\x4e\x56\x62\xd0\x60\x2a\x68\xfa\x51\x73\x5b\x98\x51\xa0\x89\xc2\x7b\xa1\x99\x86\x7f\x50\x60\xef", /* 4d80 */ "\x00\x00\x70\x4c\x8d\x2f\x51\x49\x5e\x7f\x90\x1b\x74\x70\x89\xc4\x57\x2d\x78\x45\x5f\x52\x9f\x9f\x95\xfa\x8f\x68\x9b\x3c\x8b\xe1\x76\x78\x68\x42\x67\xdc\x8d\xea\x8d\x35\x52\x3d\x8f\x8a\x6e\xda\x68\xcd\x95\x05\x90\xed\x56\xfd\x67\x9c\x88\xf9\x8f\xc7\x54\xc8\x9a\xb8\x5b\x69\x6d\x77\x6c\x26\x4e\xa5\x5b\xb3\x9a\x87\x91\x63\x61\xa8\x90\xaf\x97\xe9\x54\x2b\x6d\xb5\x5b\xd2\x51\xfd\x55\x8a\x7f\x55\x7f\xf0\x64\xbc\x63\x4d\x65\xf1\x61\xbe\x60\x8d\x71\x0a\x6c\x57\x6c\x49\x59\x2f\x67\x6d\x82\x2a\x58\xd5\x56\x8e\x8c\x6a\x6b\xeb\x90\xdd\x59\x7d\x80\x17\x53\xf7\x6d\x69\x54\x75\x55\x9d\x83\x77\x83\xcf\x68\x38\x79\xbe\x54\x8c\x4f\x55\x54\x08\x76\xd2\x8c\x89\x96\x02\x6c\xb3\x6d\xb8\x8d\x6b\x89\x10\x9e\x64\x8d\x3a\x56\x3f\x9e\xd1\x75\xd5\x5f\x88\x72\xe0\x60\x68\x54\xfc\x4e\xa8\x6a\x2a\x88\x61\x60\x52\x8f\x70\x54\xc4\x70\xd8\x86\x79\x9e\x3f\x6d\x2a\x5b\x8f\x5f\x18\x7e\xa2\x55\x89\x4f\xaf\x73\x34\x54\x3c\x53\x9a\x50\x19\x54\x0e\x54\x7c\x4e\x4e\x5f\xfd\x74\x5a\x58\xf6\x84\x6b\x80\xe1\x87\x74\x72\xd0\x7c\xca\x6e\x56\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x27\x86\x4e\x55\x2c\x62\xa4\x4e\x92\x6c\xaa\x62\x37\x82\xb1\x54\xd7\x53\x4e\x73\x3e\x6e\xd1\x75\x3b\x52\x12\x53\x16\x8b\xdd\x69\xd0\x5f\x8a\x60\x00\x6d\xee\x57\x4f\x6b\x22\x73\xaf\x68\x53\x8f\xd8\x7f\x13\x63\x62\x60\xa3\x55\x24\x75\xea\x8c\x62\x71\x15\x6d\xa3\x5b\xa6\x5e\x7b\x83\x52\x61\x4c\x9e\xc4\x78\xfa\x87\x57\x7c\x27\x76\x87\x51\xf0\x60\xf6\x71\x4c\x66\x43\x5e\x4c\x60\x4d\x8c\x0e\x70\x70\x63\x25\x8f\x89\x5f\xbd\x60\x62\x86\xd4\x56\xde\x6b\xc1\x60\x94\x61\x67\x53\x49\x60\xe0\x66\x66\x8d\x3f", /* 4e80 */ "\x00\x00\x79\xfd\x4f\x1a\x70\xe9\x6c\x47\x8b\xb3\x8b\xf2\x7e\xd8\x83\x64\x66\x0f\x5a\x5a\x9b\x42\x6d\x51\x6d\xf7\x8c\x41\x6d\x3b\x4f\x19\x70\x6b\x83\xb7\x62\x16\x60\xd1\x97\x0d\x8d\x27\x79\x78\x51\xfb\x57\x3e\x57\xfa\x67\x3a\x75\x78\x7a\x3d\x79\xef\x7b\x95\x80\x8c\x99\x65\x8f\xf9\x6f\xc0\x8b\xa5\x9e\x21\x59\xec\x7e\xe9\x7f\x09\x54\x09\x67\x81\x68\xd8\x8f\x91\x7c\x4d\x96\xc6\x53\xca\x60\x25\x75\xbe\x6c\x72\x53\x73\x5a\xc9\x7e\xa7\x63\x24\x51\xe0\x81\x0a\x5d\xf1\x84\xdf\x62\x80\x51\x80\x5b\x63\x4f\x0e\x79\x6d\x52\x42\x60\xb8\x6d\x4e\x5b\xc4\x5b\xc2\x8b\xa1\x8b\xb0\x65\xe2\x5f\xcc\x96\x45\x59\x93\x7e\xe7\x7e\xaa\x56\x09\x67\xb7\x59\x39\x4f\x73\x5b\xb6\x52\xa0\x83\x5a\x98\x8a\x8d\x3e\x75\x32\x94\xbe\x50\x47\x7a\x3c\x4e\xf7\x67\xb6\x9a\x7e\x5a\xc1\x6b\x7c\x76\xd1\x57\x5a\x5c\x16\x7b\x3a\x95\xf4\x71\x4e\x51\x7c\x80\xa9\x82\x70\x59\x78\x7f\x04\x83\x27\x68\xc0\x67\xec\x78\xb1\x78\x77\x62\xe3\x63\x61\x7b\x80\x4f\xed\x52\x6a\x51\xcf\x83\x50\x69\xdb\x92\x74\x8d\xf5\x8d\x31\x89\xc1\x95\x2e\x7b\xad\x4e\xf6\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x65\x82\x30\x52\x51\x99\x6f\x6e\x10\x6e\x85\x6d\xa7\x5e\xfa\x50\xf5\x59\xdc\x5c\x06\x6d\x46\x6c\x5f\x75\x86\x84\x8b\x68\x68\x59\x56\x8b\xb2\x53\x20\x91\x71\x96\x4d\x85\x49\x69\x12\x79\x01\x71\x26\x80\xf6\x4e\xa4\x90\xca\x6d\x47\x9a\x84\x5a\x07\x56\xbc\x64\x05\x94\xf0\x77\xeb\x4f\xa5\x81\x1a\x72\xe1\x89\xd2\x99\x7a\x7f\x34\x7e\xde\x52\x7f\x65\x59\x91\x75\x8f\x7f\x8f\x83\x53\xeb\x7a\x96\x63\xed\x63\xa5\x76\x86\x79\xf8\x88\x57\x96\x36\x62\x2a\x52\xab\x82\x82\x68\x54\x67\x70\x63\x77\x77\x6b\x7a\xed", /* 4f80 */ "\x00\x00\x6d\x01\x7e\xd3\x89\xe3\x59\xd0\x62\x12\x85\xc9\x82\xa5\x75\x4c\x50\x1f\x4e\xcb\x75\xa5\x8b\xeb\x5c\x4a\x5d\xfe\x7b\x4b\x65\xa4\x91\xd1\x4e\xca\x6d\x25\x89\x5f\x7d\x27\x95\x26\x4e\xc5\x8c\x28\x8f\xdb\x97\x73\x66\x4b\x79\x81\x8f\xd1\x70\xec\x6d\x78\x5c\x3d\x52\xb2\x83\x46\x51\x62\x83\x0e\x77\x5b\x66\x76\x9c\xb8\x4e\xac\x60\xca\x7c\xbe\x7c\xb3\x7e\xcf\x4e\x95\x8b\x66\x66\x6f\x98\x88\x97\x59\x58\x83\x65\x6c\x95\x5c\x5f\x84\x75\xc9\x97\x56\x7a\xdf\x7a\xde\x51\xc0\x70\xaf\x7a\x98\x63\xea\x7a\x76\x7e\xa0\x73\x96\x97\xed\x4e\x45\x70\x78\x4e\x5d\x91\x52\x53\xa9\x65\x51\x65\xe7\x81\xfc\x82\x05\x54\x8e\x5c\x31\x75\x9a\x97\xa0\x62\xd8\x72\xd9\x75\xbd\x5c\x45\x9a\x79\x83\xca\x5c\x40\x54\x80\x77\xe9\x4e\x3e\x6c\xae\x80\x5a\x62\xd2\x63\x6e\x5d\xe8\x51\x77\x8d\xdd\x8e\x1e\x95\x2f\x4f\xf1\x53\xe5\x60\xe7\x70\xac\x52\x67\x63\x50\x9e\x43\x5a\x1f\x50\x26\x77\x37\x53\x77\x7e\xe2\x64\x85\x65\x2b\x62\x89\x63\x98\x50\x14\x72\x35\x89\xc9\x51\xb3\x8b\xc0\x7e\xdd\x57\x47\x83\xcc\x94\xa7\x51\x9b\x54\x1b\x5c\xfb\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x7a\xe3\x6d\x5a\x90\xe1\x9a\x8f\x55\x80\x54\x96\x53\x61\x54\xaf\x5f\x00\x63\xe9\x69\x77\x51\xef\x61\x68\x52\x0a\x58\x2a\x52\xd8\x57\x4e\x78\x0d\x77\x0b\x5e\xb7\x61\x77\x7c\xe0\x62\x5b\x62\x97\x4e\xa2\x70\x95\x80\x03\x62\xf7\x70\xe4\x97\x60\x57\x77\x82\xdb\x67\xef\x68\xf5\x78\xd5\x98\x97\x79\xd1\x58\xf3\x54\xb3\x53\xef\x6e\x34\x51\x4b\x52\x3b\x5b\xa2\x8b\xfe\x80\xaf\x55\x43\x57\xa6\x60\x73\x57\x51\x54\x2d\x7a\x7a\x60\x50\x5b\x54\x63\xa7\x62\xa0\x53\xe3\x62\x63\x5b\xc7\x67\xaf\x54\xed\x7a\x9f", /* 5080 */ "\x00\x00\x82\xe6\x91\x77\x5e\x93\x88\xe4\x59\x38\x57\xae\x63\x0e\x8d\xe8\x80\xef\x57\x57\x7b\x77\x4f\xa9\x5f\xeb\x5b\xbd\x6b\x3e\x53\x21\x7b\x50\x72\xc2\x68\x46\x77\xff\x77\x36\x65\xf7\x51\xb5\x4e\x8f\x76\xd4\x5c\xbf\x7a\xa5\x84\x75\x59\x4e\x9b\x41\x50\x80\x99\x88\x61\x27\x6e\x83\x57\x64\x66\x06\x63\x46\x56\xf0\x62\xec\x62\x69\x5e\xd3\x96\x14\x57\x83\x62\xc9\x55\x87\x87\x21\x81\x4a\x8f\xa3\x55\x66\x83\xb1\x67\x65\x8d\x56\x84\xdd\x5a\x6a\x68\x0f\x62\xe6\x7b\xee\x96\x11\x51\x70\x6f\x9c\x8c\x30\x63\xfd\x89\xc8\x61\xd2\x7f\x06\x70\xc2\x6e\xe5\x74\x05\x69\x94\x72\xfc\x5e\xca\x90\xce\x67\x17\x6d\x6a\x63\x5e\x52\xb3\x72\x62\x80\x01\x4f\x6c\x59\xe5\x91\x6a\x70\xd9\x6d\x9d\x52\xd2\x4e\x50\x96\xf7\x95\x6d\x85\x7e\x78\xca\x7d\x2f\x51\x21\x57\x92\x64\xc2\x80\x8b\x7c\x7b\x6c\xea\x68\xf1\x69\x5e\x51\xb7\x53\x98\x68\xa8\x72\x81\x9e\xce\x7b\xf1\x72\xf8\x79\xbb\x6f\x13\x74\x06\x67\x4e\x91\xcc\x9c\xa4\x79\x3c\x83\x89\x83\x54\x54\x0f\x68\x17\x4e\x3d\x53\x89\x52\xb1\x78\x3e\x53\x86\x52\x29\x50\x88\x4f\x8b\x4f\xd0\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe2\x7a\xcb\x7c\x92\x6c\xa5\x96\xb6\x52\x9b\x74\x83\x54\xe9\x4f\xe9\x80\x54\x83\xb2\x8f\xde\x95\x70\x5e\xc9\x60\x1c\x6d\x9f\x5e\x18\x65\x5b\x81\x38\x94\xfe\x60\x4b\x70\xbc\x7e\xc3\x7c\xae\x51\xc9\x68\x81\x7c\xb1\x82\x6f\x4e\x24\x8f\x86\x91\xcf\x66\x7e\x4e\xae\x8c\x05\x64\xa9\x80\x4a\x50\xda\x75\x97\x71\xce\x5b\xe5\x8f\xbd\x6f\x66\x4e\x86\x64\x82\x95\x63\x5e\xd6\x65\x99\x52\x17\x88\xc2\x70\xc8\x52\xa3\x73\x0e\x74\x33\x67\x97\x78\xf7\x97\x16\x4e\x34\x90\xbb\x9c\xde\x6d\xcb\x51\xdb\x8d\x41\x54\x1d", /* 5180 */ "\x00\x00\x62\xce\x73\xb2\x83\xf1\x96\xf6\x9f\x84\x94\xc3\x4f\x36\x7f\x9a\x51\xcc\x70\x75\x96\x75\x5c\xad\x98\x86\x53\xe6\x4e\xe4\x6e\x9c\x74\x09\x69\xb4\x78\x6b\x99\x8f\x75\x59\x52\x18\x76\x24\x6d\x41\x67\xf3\x51\x6d\x9f\x99\x80\x4b\x54\x99\x7b\x3c\x7a\xbf\x96\x86\x57\x84\x62\xe2\x96\x47\x69\x7c\x5a\x04\x64\x02\x7b\xd3\x6f\x0f\x96\x4b\x82\xa6\x53\x62\x98\x85\x5e\x90\x70\x89\x63\xb3\x53\x64\x86\x4f\x9c\x81\x9e\x93\x78\x8c\x97\x32\x8d\xef\x8d\x42\x9e\x7f\x6f\x5e\x79\x84\x5f\x55\x96\x46\x62\x2e\x9a\x74\x54\x15\x94\xdd\x4f\xa3\x65\xc5\x5c\x65\x5c\x61\x7f\x15\x86\x51\x6c\x2f\x5f\x8b\x73\x87\x6e\xe4\x7e\xff\x5c\xe6\x63\x1b\x5b\x6a\x6e\xe6\x53\x75\x4e\x71\x63\xa0\x75\x65\x62\xa1\x8f\x6e\x4f\x26\x4e\xd1\x6c\xa6\x7e\xb6\x8b\xba\x84\x1d\x87\xba\x7f\x57\x90\x3b\x95\x23\x7b\xa9\x9a\xa1\x88\xf8\x84\x3d\x6d\x1b\x9a\x86\x7e\xdc\x59\x88\x9e\xbb\x73\x9b\x78\x01\x86\x82\x9a\x6c\x9a\x82\x56\x1b\x54\x17\x57\xcb\x4e\x70\x9e\xa6\x53\x56\x8f\xc8\x81\x09\x77\x92\x99\x92\x86\xee\x6e\xe1\x85\x13\x66\xfc\x61\x62\x6f\x2b\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x29\x82\x92\x83\x2b\x76\xf2\x6c\x13\x5f\xd9\x83\xbd\x73\x2b\x83\x05\x95\x1a\x6b\xdb\x77\xdb\x94\xc6\x53\x6f\x83\x02\x51\x92\x5e\x3d\x8c\x8c\x8d\x38\x4e\x48\x73\xab\x67\x9a\x68\x85\x91\x76\x97\x09\x71\x64\x6c\xa1\x77\x09\x5a\x92\x95\x41\x6b\xcf\x7f\x8e\x66\x27\x5b\xd0\x59\xb9\x5a\x9a\x95\xe8\x95\xf7\x4e\xec\x84\x0c\x84\x99\x6a\xac\x76\xdf\x95\x30\x73\x1b\x68\xa6\x5b\x5f\x77\x2f\x91\x9a\x97\x61\x7c\xdc\x8f\xf7\x8c\x1c\x5f\x25\x7c\x73\x79\xd8\x89\xc5\x6c\xcc\x87\x1c\x5b\xc6\x5e\x42\x68\xc9\x77\x20", /* 5280 */ "\x00\x00\x7e\xf5\x51\x95\x51\x4d\x52\xc9\x5a\x29\x7f\x05\x97\x62\x82\xd7\x63\xcf\x77\x84\x85\xd0\x79\xd2\x6e\x3a\x5e\x99\x59\x99\x85\x11\x70\x6d\x6c\x11\x62\xbf\x76\xbf\x65\x4f\x60\xaf\x95\xfd\x66\x0e\x87\x9f\x9e\x23\x94\xed\x54\x0d\x54\x7d\x8c\x2c\x64\x78\x64\x79\x86\x11\x6a\x21\x81\x9c\x78\xe8\x64\x69\x9b\x54\x62\xb9\x67\x2b\x83\xab\x58\xa8\x9e\xd8\x6c\xab\x6f\x20\x5b\xde\x96\x4c\x8c\x0b\x72\x5f\x67\xd0\x62\xc7\x72\x61\x4e\xa9\x59\xc6\x6b\xcd\x58\x93\x66\xae\x5e\x55\x52\xdf\x61\x55\x67\x28\x76\xee\x77\x66\x72\x67\x7a\x46\x62\xff\x54\xea\x54\x50\x94\xa0\x90\xa3\x5a\x1c\x7e\xb3\x6c\x16\x4e\x43\x59\x76\x80\x10\x59\x48\x53\x57\x75\x37\x96\xbe\x56\xca\x63\x20\x81\x11\x60\x7c\x95\xf9\x6d\xd6\x54\x62\x99\x81\x51\x85\x5a\xe9\x80\xfd\x59\xae\x97\x13\x50\x2a\x6c\xe5\x5c\x3c\x62\xdf\x4f\x60\x53\x3f\x81\x7b\x90\x06\x6e\xba\x85\x2b\x62\xc8\x5e\x74\x78\xbe\x64\xb5\x63\x7b\x5f\xf5\x5a\x18\x91\x7f\x9e\x1f\x5c\x3f\x63\x4f\x80\x42\x5b\x7d\x55\x6e\x95\x4a\x95\x4d\x6d\x85\x60\xa8\x67\xe0\x72\xde\x51\xdd\x5b\x81\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe7\x6c\xde\x72\x5b\x62\x6d\x94\xae\x7e\xbd\x81\x13\x6d\x53\x51\x9c\x5f\x04\x59\x74\x52\xaa\x60\x12\x59\x73\x66\x96\x86\x50\x75\x9f\x63\x2a\x61\xe6\x7c\xef\x8b\xfa\x54\xe6\x6b\x27\x9e\x25\x6b\xb4\x85\xd5\x54\x55\x50\x76\x6c\xa4\x55\x6a\x8d\xb4\x72\x2c\x5e\x15\x60\x15\x74\x36\x62\xcd\x63\x92\x72\x4c\x5f\x98\x6e\x43\x6d\x3e\x65\x00\x6f\x58\x76\xd8\x78\xd0\x76\xfc\x75\x54\x52\x24\x53\xdb\x4e\x53\x5e\x9e\x65\xc1\x80\x2a\x80\xd6\x62\x9b\x54\x86\x52\x28\x70\xae\x88\x8d\x8d\xd1\x6c\xe1\x54\x78\x80\xda", /* 5380 */ "\x00\x00\x57\xf9\x88\xf4\x8d\x54\x96\x6a\x91\x4d\x4f\x69\x6c\x9b\x55\xb7\x76\xc6\x78\x30\x62\xa8\x70\xf9\x6f\x8e\x5f\x6d\x84\xec\x68\xda\x78\x7c\x7b\xf7\x81\xa8\x67\x0b\x9e\x4f\x63\x67\x78\xb0\x57\x6f\x78\x12\x97\x39\x62\x79\x62\xab\x52\x88\x74\x35\x6b\xd7\x55\x64\x81\x3e\x75\xb2\x76\xae\x53\x39\x75\xde\x50\xfb\x5c\x41\x8b\x6c\x7b\xc7\x50\x4f\x72\x47\x9a\x97\x98\xd8\x6f\x02\x74\xe2\x79\x68\x64\x87\x77\xa5\x62\xfc\x98\x91\x8d\x2b\x54\xc1\x80\x58\x4e\x52\x57\x6a\x82\xf9\x84\x0d\x5e\x73\x51\xed\x74\xf6\x8b\xc4\x5c\x4f\x57\x61\x6c\xfc\x98\x87\x5a\x46\x78\x34\x9b\x44\x8f\xeb\x7c\x95\x52\x56\x62\x51\x94\xfa\x4e\xc6\x83\x86\x84\x61\x83\xe9\x84\xb2\x57\xd4\x67\x34\x57\x03\x66\x6e\x6d\x66\x8c\x31\x66\xdd\x70\x11\x67\x1f\x6b\x3a\x68\x16\x62\x1a\x59\xbb\x4e\x03\x51\xc4\x6f\x06\x67\xd2\x6c\x8f\x51\x76\x68\xcb\x59\x47\x6b\x67\x75\x66\x5d\x0e\x81\x10\x9f\x50\x65\xd7\x79\x48\x79\x41\x9a\x91\x8d\x77\x5c\x82\x4e\x5e\x4f\x01\x54\x2f\x59\x51\x78\x0c\x56\x68\x6c\x14\x8f\xc4\x5f\x03\x6c\x7d\x6c\xe3\x8b\xab\x63\x90\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x70\x6d\x3d\x72\x75\x62\x66\x94\x8e\x94\xc5\x53\x43\x8f\xc1\x7b\x7e\x4e\xdf\x8c\x26\x4e\x7e\x9e\xd4\x94\xb1\x94\xb3\x52\x4d\x6f\x5c\x90\x63\x6d\x45\x8c\x34\x58\x11\x5d\x4c\x6b\x20\x6b\x49\x67\xaa\x54\x5b\x81\x54\x7f\x8c\x58\x99\x85\x37\x5f\x3a\x62\xa2\x6a\x47\x95\x39\x65\x72\x60\x84\x68\x65\x77\xa7\x4e\x54\x4f\xa8\x5d\xe7\x97\x98\x64\xac\x7f\xd8\x5c\xed\x4f\xcf\x7a\x8d\x52\x07\x83\x04\x4e\x14\x60\x2f\x7a\x83\x94\xa6\x4f\xb5\x4e\xb2\x79\xe6\x74\x34\x52\xe4\x82\xb9\x64\xd2\x79\xbd\x5b\xdd\x6c\x81", /* 5480 */ "\x00\x00\x97\x52\x8f\x7b\x6c\x22\x50\x3e\x53\x7f\x6e\x05\x64\xce\x66\x74\x6c\x30\x60\xc5\x98\x77\x8b\xf7\x5e\x86\x74\x3c\x7a\x77\x79\xcb\x4e\x18\x90\xb1\x74\x03\x6c\x42\x56\xda\x91\x4b\x6c\xc5\x8d\x8b\x53\x3a\x86\xc6\x66\xf2\x8e\xaf\x5c\x48\x9a\x71\x6e\x20\x53\xd6\x5a\x36\x9f\x8b\x8d\xa3\x53\xbb\x57\x08\x98\xa7\x67\x43\x91\x9b\x6c\xc9\x51\x68\x75\xca\x62\xf3\x72\xac\x52\x38\x52\x9d\x7f\x3a\x70\x94\x76\x38\x53\x74\x9e\x4a\x69\xb7\x78\x6e\x96\xc0\x88\xd9\x7f\xa4\x71\x36\x71\xc3\x51\x89\x67\xd3\x74\xe4\x58\xe4\x65\x18\x56\xb7\x8b\xa9\x99\x76\x62\x70\x7e\xd5\x60\xf9\x70\xed\x58\xec\x4e\xc1\x4e\xba\x5f\xcd\x97\xe7\x4e\xfb\x8b\xa4\x52\x03\x59\x8a\x7e\xab\x62\x54\x4e\xcd\x65\xe5\x62\x0e\x83\x38\x84\xc9\x83\x63\x87\x8d\x71\x94\x6e\xb6\x5b\xb9\x7e\xd2\x51\x97\x63\xc9\x67\xd4\x80\x89\x83\x39\x88\x15\x51\x12\x5b\x7a\x59\x82\x8f\xb1\x4e\x73\x6c\x5d\x51\x65\x89\x25\x8f\x6f\x96\x2e\x85\x4a\x74\x5e\x95\x10\x95\xf0\x6d\xa6\x82\xe5\x5f\x31\x64\x92\x6d\x12\x84\x28\x81\x6e\x9c\xc3\x58\x5e\x8d\x5b\x4e\x09\x53\xc1\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x1e\x65\x63\x68\x51\x55\xd3\x4e\x27\x64\x14\x9a\x9a\x62\x6b\x5a\xc2\x74\x5f\x82\x72\x6d\xa9\x68\xee\x50\xe7\x83\x8e\x78\x02\x67\x40\x52\x39\x6c\x99\x7e\xb1\x50\xbb\x55\x65\x71\x5e\x7b\x5b\x66\x52\x73\xca\x82\xeb\x67\x49\x5c\x71\x52\x20\x71\x7d\x88\x6b\x95\xea\x96\x55\x64\xc5\x8d\x61\x81\xb3\x55\x84\x6c\x55\x62\x47\x7f\x2e\x58\x92\x4f\x24\x55\x46\x8d\x4f\x66\x4c\x4e\x0a\x5c\x1a\x88\xf3\x68\xa2\x63\x4e\x7a\x0d\x70\xe7\x82\x8d\x52\xfa\x97\xf6\x5c\x11\x54\xe8\x90\xb5\x7e\xcd\x59\x62\x8d\x4a\x86\xc7", /* 5580 */ "\x00\x00\x82\x0c\x82\x0d\x8d\x66\x64\x44\x5c\x04\x61\x51\x6d\x89\x79\x3e\x8b\xbe\x78\x37\x75\x33\x54\x7b\x4f\x38\x8e\xab\x6d\xf1\x5a\x20\x7e\xc5\x79\x5e\x6c\x88\x5b\xa1\x5a\x76\x75\x1a\x80\xbe\x61\x4e\x6e\x17\x58\xf0\x75\x1f\x75\x25\x72\x72\x53\x47\x7e\xf3\x77\x01\x76\xdb\x52\x69\x80\xdc\x57\x23\x5e\x08\x59\x31\x72\xee\x65\xbd\x6e\x7f\x8b\xd7\x5c\x38\x86\x71\x53\x41\x77\xf3\x62\xfe\x65\xf6\x4e\xc0\x98\xdf\x86\x80\x5b\x9e\x8b\xc6\x53\xf2\x77\xe2\x4f\x7f\x5c\x4e\x9a\x76\x59\xcb\x5f\x0f\x79\x3a\x58\xeb\x4e\x16\x67\xff\x4e\x8b\x62\xed\x8a\x93\x90\x1d\x52\xbf\x66\x2f\x55\xdc\x56\x6c\x90\x02\x4e\xd5\x4f\x8d\x91\xca\x99\x70\x6c\x0f\x5e\x02\x60\x43\x5b\xa4\x89\xc6\x8b\xd5\x65\x36\x62\x4b\x99\x96\x5b\x88\x5b\xff\x63\x88\x55\x2e\x53\xd7\x76\x26\x51\x7d\x85\x2c\x67\xa2\x68\xb3\x6b\x8a\x62\x92\x8f\x93\x53\xd4\x82\x12\x6d\xd1\x75\x8f\x4e\x66\x8d\x4e\x5b\x70\x71\x9f\x85\xaf\x66\x91\x66\xd9\x7f\x72\x87\x00\x9e\xcd\x9f\x20\x5c\x5e\x67\x2f\x8f\xf0\x68\x11\x67\x5f\x62\x0d\x7a\xd6\x58\x85\x5e\xb6\x65\x70\x6f\x31\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x55\x52\x37\x80\x0d\x64\x54\x88\x70\x75\x29\x5e\x05\x68\x13\x62\xf4\x97\x1c\x53\xcc\x72\x3d\x8c\x01\x6c\x34\x77\x61\x7a\x0e\x54\x2e\x77\xac\x98\x7a\x82\x1c\x8b\xf4\x78\x55\x67\x14\x70\xc1\x65\xaf\x64\x95\x56\x36\x60\x1d\x79\xc1\x53\xf8\x4e\x1d\x6b\x7b\x80\x86\x5b\xfa\x55\xe3\x56\xdb\x4f\x3a\x4f\x3c\x99\x72\x5d\xf3\x67\x7e\x80\x38\x60\x02\x98\x82\x90\x01\x5b\x8b\x8b\xbc\x8b\xf5\x64\x1c\x82\x58\x64\xde\x55\xfd\x82\xcf\x91\x65\x4f\xd7\x7d\x20\x90\x1f\x7c\x9f\x50\xf3\x58\x51\x6e\xaf\x5b\xbf\x8b\xc9", /* 5680 */ "\x00\x00\x80\x83\x91\x78\x84\x9c\x7b\x97\x86\x7d\x96\x8b\x96\x8f\x7e\xe5\x9a\xd3\x78\x8e\x5c\x81\x7a\x57\x90\x42\x96\xa7\x79\x5f\x5b\x59\x63\x5f\x7b\x0b\x84\xd1\x68\xad\x55\x06\x7f\x29\x74\x10\x7d\x22\x95\x01\x62\x40\x58\x4c\x4e\xd6\x5b\x83\x59\x79\x58\x54\x73\x6d\x63\x1e\x8e\x4b\x8e\x0f\x80\xce\x82\xd4\x62\xac\x53\xf0\x6c\xf0\x91\x5e\x59\x2a\x60\x01\x6c\x70\x57\x4d\x64\x4a\x8d\x2a\x76\x2b\x6e\xe9\x57\x5b\x6a\x80\x75\xf0\x6f\x6d\x8c\x2d\x8c\x08\x57\x66\x6b\xef\x88\x92\x78\xb3\x63\xa2\x53\xf9\x70\xad\x6c\x64\x58\x58\x64\x2a\x58\x02\x68\xe0\x81\x9b\x55\x10\x7c\xd6\x50\x18\x8e\xba\x6d\xcc\x8d\x9f\x70\xeb\x63\x8f\x6d\x9b\x6e\xd4\x7e\xe6\x84\x04\x68\x43\x90\x03\x6d\xd8\x96\x76\x8b\xa8\x59\x57\x72\x79\x85\xe4\x81\x7e\x75\xbc\x8a\x8a\x68\xaf\x52\x54\x8e\x22\x95\x11\x63\xd0\x98\x98\x8e\x44\x55\x7c\x4f\x53\x66\xff\x56\x8f\x60\xd5\x6d\x95\x52\x43\x5c\x49\x59\x29\x6d\xfb\x58\x6b\x75\x30\x75\x1c\x60\x6c\x82\x14\x81\x46\x63\x11\x67\x61\x8f\xe2\x77\x3a\x8d\xf3\x8d\x34\x94\xc1\x5e\x16\x53\x85\x54\x2c\x70\xc3\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x40\x5e\xf7\x50\x5c\x4e\xad\x5e\xad\x63\x3a\x82\x47\x90\x1a\x68\x50\x91\x6e\x77\xb3\x54\x0c\x94\xdc\x5f\x64\x7a\xe5\x68\x76\x63\x45\x7b\x52\x7e\xdf\x75\xdb\x50\x77\x62\x95\x59\x34\x90\x0f\x51\xf8\x79\xc3\x7a\x81\x56\xfe\x5f\x92\x90\x14\x6d\x82\x5c\x60\x57\x1f\x54\x10\x51\x54\x6e\x4d\x56\xe2\x63\xa8\x98\x93\x81\x7f\x87\x15\x89\x2a\x90\x00\x54\x1e\x5c\x6f\x81\xc0\x62\xd6\x62\x58\x81\x31\x9e\x35\x96\x40\x9a\x6e\x9a\x7c\x69\x2d\x59\xa5\x62\xd3\x55\x3e\x63\x16\x54\xc7\x86\xd9\x6d\x3c\x5a\x03\x74\xe6", /* 5780 */ "\x00\x00\x88\x9c\x6b\x6a\x59\x16\x8c\x4c\x5f\x2f\x6e\x7e\x73\xa9\x98\x7d\x4e\x38\x70\xf7\x5b\x8c\x78\x97\x63\x3d\x66\x5a\x76\x96\x60\xcb\x5b\x9b\x5a\x49\x4e\x07\x81\x55\x6c\x6a\x73\x8b\x4e\xa1\x67\x89\x7f\x51\x5f\x80\x65\xfa\x67\x1b\x5f\xd8\x59\x84\x5a\x01\x5d\xcd\x5f\xae\x53\x71\x97\xe6\x8f\xdd\x68\x45\x56\xf4\x55\x2f\x60\xdf\x4e\x3a\x6f\x4d\x7e\xf4\x82\xc7\x84\x0e\x59\xd4\x4f\x1f\x4f\x2a\x5c\x3e\x7e\xac\x67\x2a\x85\x1a\x54\x73\x75\x4f\x80\xc3\x55\x82\x9b\x4f\x4f\x4d\x6e\x2d\x8c\x13\x5c\x09\x61\x70\x53\x6b\x76\x1f\x6e\x29\x86\x8a\x65\x87\x95\xfb\x7e\xb9\x54\x3b\x7a\x33\x7d\x0a\x95\xee\x55\xe1\x7f\xc1\x74\xee\x63\x1d\x87\x17\x6d\xa1\x7a\x9d\x62\x11\x65\xa1\x53\x67\x63\xe1\x6c\x83\x5d\xeb\x54\x5c\x94\xa8\x4e\x4c\x6c\x61\x8b\xec\x5c\x4b\x65\xe0\x82\x9c\x68\xa7\x54\x3e\x54\x34\x6b\xcb\x6b\x66\x4e\x94\x63\x42\x53\x48\x82\x1e\x4f\x0d\x4f\xae\x57\x5e\x62\x0a\x96\xfe\x66\x64\x72\x69\x52\xff\x52\xa1\x60\x9f\x8b\xef\x66\x14\x71\x99\x67\x90\x89\x7f\x78\x52\x77\xfd\x66\x70\x56\x3b\x54\x38\x95\x21\x72\x7a\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x60\x6f\x5e\x0c\x60\x89\x81\x9d\x59\x15\x60\xdc\x71\x84\x70\xef\x6e\xaa\x6c\x50\x72\x80\x6a\x84\x88\xad\x5e\x2d\x4e\x60\x5a\xb3\x55\x9c\x94\xe3\x6d\x17\x7c\xfb\x96\x99\x62\x0f\x7e\xc6\x77\x8e\x86\x7e\x53\x23\x97\x1e\x8f\x96\x66\x87\x5c\xe1\x4f\xa0\x72\xed\x4e\x0b\x53\xa6\x59\x0f\x54\x13\x63\x80\x95\x28\x51\x48\x4e\xd9\x9c\x9c\x7e\xa4\x54\xb8\x8d\x24\x88\x54\x82\x37\x95\xf2\x6d\x8e\x5f\x26\x5a\xcc\x66\x3e\x96\x69\x73\xb0\x73\x2e\x53\xbf\x81\x7a\x99\x85\x7f\xa1\x5b\xaa\x96\x77\x96\x50\x7e\xbf", /* 5880 */ "\x00\x00\x76\xf8\x53\xa2\x95\x76\x99\x99\x7b\xb1\x89\x44\x6e\x58\x4e\x61\x7f\xd4\x79\x65\x8b\xe6\x60\xf3\x54\xcd\x4e\xab\x98\x79\x5d\xf7\x6a\x61\x50\xcf\x54\x11\x8c\x61\x84\x27\x78\x5d\x97\x04\x52\x4a\x54\xee\x56\xa3\x95\x00\x6d\x88\x5b\xb5\x6d\xc6\x66\x53\x5c\x0f\x5b\x5d\x68\x21\x80\x96\x55\x78\x7b\x11\x65\x48\x69\x54\x4e\x9b\x6b\x47\x87\x4e\x97\x8b\x53\x4f\x63\x1f\x64\x3a\x90\xaa\x65\x9c\x80\xc1\x8c\x10\x51\x99\x68\xb0\x53\x78\x87\xf9\x61\xc8\x6c\xc4\x6c\xfb\x8c\x22\x5c\x51\x85\xaa\x82\xaf\x95\x0c\x6b\x23\x8f\x9b\x65\xb0\x5f\xfb\x5f\xc3\x4f\xe1\x88\x45\x66\x1f\x81\x65\x73\x29\x60\xfa\x51\x74\x52\x11\x57\x8b\x5f\x62\x90\xa2\x88\x4c\x91\x92\x5e\x78\x67\x4f\x60\x27\x59\xd3\x51\x44\x51\xf6\x80\xf8\x53\x08\x6c\x79\x96\xc4\x71\x8a\x4f\x11\x4f\xee\x7f\x9e\x67\x3d\x55\xc5\x95\x08\x79\xc0\x88\x96\x7e\xe3\x58\x9f\x62\x0c\x97\x00\x86\x5a\x56\x18\x98\x7b\x5f\x90\x8b\xb8\x84\xc4\x91\x57\x53\xd9\x65\xed\x5e\x8f\x75\x5c\x60\x64\x7d\x6e\x5a\x7f\x7e\xea\x7e\xed\x8f\x69\x55\xa7\x5b\xa3\x60\xac\x65\xcb\x73\x84\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x09\x76\x63\x77\x29\x7e\xda\x97\x74\x85\x9b\x5b\x66\x7a\x74\x96\xea\x88\x40\x52\xcb\x71\x8f\x5f\xaa\x65\xec\x8b\xe2\x5b\xfb\x9a\x6f\x5d\xe1\x6b\x89\x6c\x5b\x8b\xad\x8b\xaf\x90\x0a\x8f\xc5\x53\x8b\x62\xbc\x9e\x26\x9e\x2d\x54\x40\x4e\x2b\x82\xbd\x72\x59\x86\x9c\x5d\x16\x88\x59\x6d\xaf\x96\xc5\x54\xd1\x4e\x9a\x8b\xb6\x71\x09\x54\xbd\x96\x09\x70\xdf\x6d\xf9\x76\xd0\x4e\x25\x78\x14\x87\x12\x5c\xa9\x5e\xf6\x8a\x00\x98\x9c\x96\x0e\x70\x8e\x6c\xbf\x59\x44\x63\xa9\x77\x3c\x88\x4d\x6f\x14\x82\x73\x58\x30", /* 5980 */ "\x00\x00\x71\xd5\x53\x8c\x78\x1a\x96\xc1\x55\x01\x5f\x66\x71\x30\x5b\xb4\x8c\x1a\x9a\x8c\x6b\x83\x59\x2e\x9e\x2f\x79\xe7\x67\x68\x62\x6c\x4f\x6f\x75\xa1\x7f\x8a\x6d\x0b\x96\x33\x6c\x27\x4e\xf0\x75\xd2\x51\x7b\x68\x37\x6f\x3e\x90\x80\x81\x70\x59\x96\x74\x76\x64\x47\x5c\x27\x90\x65\x7a\x91\x8c\x23\x59\xda\x54\xac\x82\x00\x83\x6f\x89\x81\x80\x00\x69\x30\x56\x4e\x80\x36\x72\x37\x91\xce\x51\xb6\x4e\x5f\x98\x75\x63\x96\x4e\x1a\x53\xf6\x66\xf3\x81\x4b\x59\x1c\x6d\xb2\x4e\x00\x58\xf9\x53\x3b\x63\xd6\x94\xf1\x4f\x9d\x4f\x0a\x88\x63\x98\x90\x59\x37\x90\x57\x79\xfb\x4e\xea\x80\xf0\x75\x91\x6c\x82\x5b\x9c\x59\xe8\x5f\x5d\x69\x05\x86\x81\x50\x1a\x5d\xf2\x4e\x59\x77\xe3\x4e\xe5\x82\x7a\x62\x91\x66\x13\x90\x91\x5c\x79\x4e\xbf\x5f\x79\x81\xc6\x90\x38\x80\x84\x75\xab\x4e\xa6\x88\xd4\x61\x0f\x6b\xc5\x5f\xc6\x4e\x49\x76\xca\x6e\xa2\x8b\xe3\x8b\xae\x8c\x0a\x8b\xd1\x5f\x02\x7f\xfc\x7f\xcc\x7e\xce\x83\x35\x83\x6b\x56\xe0\x6b\xb7\x97\xf3\x96\x34\x59\xfb\x54\x1f\x94\xf6\x6d\xeb\x5b\xc5\x99\x6e\x5c\x39\x5f\x15\x96\x90\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x70\x82\xf1\x6a\x31\x5a\x74\x9e\x70\x5e\x94\x7f\x28\x83\xb9\x84\x24\x84\x25\x83\x67\x87\x47\x8f\xce\x8d\x62\x76\xc8\x5f\x71\x98\x96\x78\x6c\x66\x20\x54\xdf\x62\xe5\x4f\x63\x81\xc3\x75\xc8\x5e\xb8\x96\xcd\x8e\x0a\x86\xf9\x54\x8f\x6c\xf3\x6d\x8c\x6c\x38\x60\x7f\x52\xc7\x75\x28\x5e\x7d\x4f\x18\x60\xa0\x5f\xe7\x5c\x24\x75\x31\x90\xae\x94\xc0\x72\xb9\x6c\xb9\x6e\x38\x91\x49\x67\x09\x53\xcb\x53\xf3\x4f\x51\x91\xc9\x8b\xf1\x53\xc8\x5e\x7c\x8f\xc2\x6d\xe4\x4e\x8e\x76\xc2\x69\x86\x86\x5e\x61\x1a\x82\x06", /* 5a80 */ "\x00\x00\x4f\x59\x4f\xde\x90\x3e\x9c\x7c\x61\x09\x6e\x1d\x6e\x14\x96\x85\x4e\x88\x5a\x31\x96\xe8\x4e\x0e\x5c\x7f\x79\xb9\x5b\x87\x8b\xed\x7f\xbd\x73\x89\x57\xdf\x82\x8b\x90\xc1\x54\x01\x90\x47\x55\xbb\x5c\xea\x5f\xa1\x61\x08\x6b\x32\x72\xf1\x80\xb2\x8a\x89\x6d\x74\x5b\xd3\x88\xd5\x98\x84\x8c\x6b\x9a\x6d\x9e\x33\x6e\x0a\x51\xa4\x51\x43\x57\xa3\x88\x81\x53\x9f\x63\xf4\x8f\x95\x56\xed\x54\x58\x57\x06\x73\x3f\x6e\x90\x7f\x18\x8f\xdc\x82\xd1\x61\x3f\x60\x28\x96\x62\x66\xf0\x7e\xa6\x8d\x8a\x8d\xc3\x94\xa5\x5c\xb3\x7c\xa4\x67\x08\x60\xa6\x96\x05\x80\x18\x4e\x91\x90\xe7\x53\x00\x96\x68\x51\x41\x8f\xd0\x85\x74\x91\x5d\x66\x55\x97\xf5\x5b\x55\x53\x1d\x78\x38\x67\x42\x68\x3d\x54\xc9\x70\x7e\x5b\xb0\x8f\x7d\x51\x8d\x57\x28\x54\xb1\x65\x12\x66\x82\x8d\x5e\x8d\x43\x81\x0f\x84\x6c\x90\x6d\x7c\xdf\x51\xff\x85\xfb\x67\xa3\x65\xe9\x6f\xa1\x86\xa4\x8e\x81\x56\x6a\x90\x20\x76\x82\x70\x76\x71\xe5\x8d\x23\x62\xe9\x52\x19\x6c\xfd\x8d\x3c\x60\x0e\x58\x9e\x61\x8e\x66\xfe\x8d\x60\x62\x4e\x55\xb3\x6e\x23\x67\x2d\x8f\x67\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe1\x95\xf8\x77\x28\x68\x05\x69\xa8\x54\x8b\x4e\x4d\x70\xb8\x8b\xc8\x64\x58\x65\x8b\x5b\x85\x7a\x84\x50\x3a\x5b\xe8\x77\xbb\x6b\xe1\x8a\x79\x7c\x98\x6c\xbe\x76\xcf\x65\xa9\x8f\x97\x5d\x2d\x5c\x55\x86\x38\x68\x08\x53\x60\x62\x18\x7a\xd9\x6e\x5b\x7e\xfd\x6a\x1f\x7a\xe0\x5f\x70\x6f\x33\x5f\x20\x63\x8c\x6d\xa8\x67\x56\x4e\x08\x5e\x10\x8d\x26\x4e\xd7\x80\xc0\x76\x34\x96\x9c\x62\xdb\x66\x2d\x62\x7e\x6c\xbc\x8d\x75\x71\x67\x7f\x69\x51\x46\x80\x87\x53\xec\x90\x6e\x62\x98\x54\xf2\x86\xf0\x8f\x99\x80\x05", /* 5b80 */ "\x00\x00\x95\x17\x85\x17\x8f\xd9\x6d\x59\x73\xcd\x65\x9f\x77\x1f\x75\x04\x78\x27\x81\xfb\x8d\x1e\x94\x88\x4f\xa6\x67\x95\x75\xb9\x8b\xca\x97\x07\x63\x2f\x95\x47\x96\x35\x84\xb8\x63\x23\x77\x41\x5f\x81\x72\xf0\x4e\x89\x60\x14\x65\x74\x62\xef\x6b\x63\x65\x3f\x5e\x27\x75\xc7\x90\xd1\x8b\xc1\x82\x9d\x67\x9d\x65\x2f\x54\x31\x87\x18\x77\xe5\x80\xa2\x81\x02\x6c\x41\x4e\x4b\x7e\xc7\x80\x4c\x76\xf4\x69\x0d\x6b\x96\x62\x67\x50\x3c\x4f\x84\x57\x40\x63\x07\x6b\x62\x8d\xbe\x53\xea\x65\xe8\x7e\xb8\x5f\xd7\x63\x1a\x63\xb7\x81\xf3\x81\xf4\x7f\x6e\x5e\x1c\x5c\xd9\x52\x36\x66\x7a\x79\xe9\x7a\x1a\x8d\x28\x70\x99\x75\xd4\x6e\xde\x6c\xbb\x7a\x92\x4e\x2d\x76\xc5\x5f\xe0\x94\x9f\x88\x77\x7e\xc8\x79\xcd\x80\xbf\x91\xcd\x4e\xf2\x4f\x17\x82\x1f\x54\x68\x5d\xde\x6d\x32\x8b\xcc\x7c\xa5\x8f\x74\x80\x98\x5e\x1a\x54\x92\x76\xb1\x5b\x99\x66\x3c\x9a\xa4\x73\xe0\x68\x2a\x86\xdb\x67\x31\x73\x2a\x8b\xf8\x8b\xdb\x90\x10\x7a\xf9\x70\xdb\x71\x6e\x62\xc4\x77\xa9\x56\x31\x4e\x3b\x84\x57\x67\xf1\x52\xa9\x86\xc0\x8d\x2e\x94\xf8\x7b\x51\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x4f\x6c\xe8\x79\x5d\x9a\x7b\x62\x93\x72\x2a\x62\xfd\x4e\x13\x78\x16\x8f\x6c\x64\xb0\x8d\x5a\x7b\xc6\x68\x69\x5e\x84\x88\xc5\x59\x86\x64\x9e\x58\xee\x72\xb6\x69\x0e\x95\x25\x8f\xfd\x8d\x58\x57\x60\x7f\x00\x8c\x06\x51\xc6\x63\x49\x62\xd9\x53\x53\x68\x4c\x74\x22\x83\x01\x91\x4c\x55\x44\x77\x40\x70\x7c\x6d\x4a\x51\x79\x54\xa8\x8d\x44\x59\xff\x6e\xcb\x6d\xc4\x5b\x5c\x7d\x2b\x4e\xd4\x7c\x7d\x6e\xd3\x5b\x50\x81\xea\x6e\x0d\x5b\x57\x9b\x03\x68\xd5\x8e\x2a\x5b\x97\x7e\xfc\x60\x3b\x7e\xb5\x90\xb9\x8d\x70", /* 5c80 */ "\x00\x00\x59\x4f\x63\xcd\x79\xdf\x8d\xb3\x53\x52\x65\xcf\x79\x56\x8b\xc5\x96\x3b\x7e\xc4\x94\xbb\x7e\x82\x56\x34\x91\x89\x67\x00\x7f\x6a\x5c\x0a\x90\x75\x66\x28\x5d\xe6\x4f\x50\x67\xde\x50\x5a\x4f\x5c\x57\x50\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8d\x4e\x0c\x51\x40\x4e\x10\x5e\xff\x53\x45\x4e\x15\x4e\x98\x4e\x1e\x9b\x32\x5b\x6c\x56\x69\x4e\x28\x79\xba\x4e\x3f\x53\x15\x4e\x47\x59\x2d\x72\x3b\x53\x6e\x6c\x10\x56\xdf\x80\xe4\x99\x97\x6b\xd3\x77\x7e\x9f\x17\x4e\x36\x4e\x9f\x9f\x10\x4e\x5c\x4e\x69\x4e\x93\x82\x88\x5b\x5b\x55\x6c\x56\x0f\x4e\xc4\x53\x8d\x53\x9d\x53\xa3\x53\xa5\x53\xae\x97\x65\x8d\x5d\x53\x1a\x53\xf5\x53\x26\x53\x2e\x53\x3e\x8d\x5c\x53\x66\x53\x63\x52\x02\x52\x08\x52\x0e\x52\x2d\x52\x33\x52\x3f\x52\x40\x52\x4c\x52\x5e\x52\x61\x52\x5c\x84\xaf\x52\x7d\x52\x82\x52\x81\x52\x90\x52\x93\x51\x82\x7f\x54\x4e\xbb\x4e\xc3\x4e\xc9\x4e\xc2\x4e\xe8\x4e\xe1\x4e\xeb\x4e\xde\x4f\x1b\x4e\xf3\x4f\x22\x4f\x64\x4e\xf5\x4f\x25\x4f\x27\x4f\x09\x4f\x2b\x4f\x5e\x4f\x67\x65\x38\x4f\x5a\x4f\x5d\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x5f\x4f\x57\x4f\x32\x4f\x3d\x4f\x76\x4f\x74\x4f\x91\x4f\x89\x4f\x83\x4f\x8f\x4f\x7e\x4f\x7b\x4f\xaa\x4f\x7c\x4f\xac\x4f\x94\x4f\xe6\x4f\xe8\x4f\xea\x4f\xc5\x4f\xda\x4f\xe3\x4f\xdc\x4f\xd1\x4f\xdf\x4f\xf8\x50\x29\x50\x4c\x4f\xf3\x50\x2c\x50\x0f\x50\x2e\x50\x2d\x4f\xfe\x50\x1c\x50\x0c\x50\x25\x50\x28\x50\x7e\x50\x43\x50\x55\x50\x48\x50\x4e\x50\x6c\x50\x7b\x50\xa5\x50\xa7\x50\xa9\x50\xba\x50\xd6\x51\x06\x50\xed\x50\xec\x50\xe6\x50\xee\x51\x07\x51\x0b\x4e\xdd\x6c\x3d\x4f\x58\x4f\x65\x4f\xce\x9f\xa0", /* 5d80 */ "\x00\x00\x6c\x46\x7c\x74\x51\x6e\x5d\xfd\x9e\xc9\x99\x98\x51\x81\x59\x14\x52\xf9\x53\x0d\x8a\x07\x53\x10\x51\xeb\x59\x19\x51\x55\x4e\xa0\x51\x56\x4e\xb3\x88\x6e\x88\xa4\x4e\xb5\x81\x14\x88\xd2\x79\x80\x5b\x34\x88\x03\x7f\xb8\x51\xab\x51\xb1\x51\xbd\x51\xbc\x51\xc7\x51\x96\x51\xa2\x51\xa5\x8b\xa0\x8b\xa6\x8b\xa7\x8b\xaa\x8b\xb4\x8b\xb5\x8b\xb7\x8b\xc2\x8b\xc3\x8b\xcb\x8b\xcf\x8b\xce\x8b\xd2\x8b\xd3\x8b\xd4\x8b\xd6\x8b\xd8\x8b\xd9\x8b\xdc\x8b\xdf\x8b\xe0\x8b\xe4\x8b\xe8\x8b\xe9\x8b\xee\x8b\xf0\x8b\xf3\x8b\xf6\x8b\xf9\x8b\xfc\x8b\xff\x8c\x00\x8c\x02\x8c\x04\x8c\x07\x8c\x0c\x8c\x0f\x8c\x11\x8c\x12\x8c\x14\x8c\x15\x8c\x16\x8c\x19\x8c\x1b\x8c\x18\x8c\x1d\x8c\x1f\x8c\x20\x8c\x21\x8c\x25\x8c\x27\x8c\x2a\x8c\x2b\x8c\x2e\x8c\x2f\x8c\x32\x8c\x33\x8c\x35\x8c\x36\x53\x69\x53\x7a\x96\x1d\x96\x22\x96\x21\x96\x31\x96\x2a\x96\x3d\x96\x3c\x96\x42\x96\x49\x96\x54\x96\x5f\x96\x67\x96\x6c\x96\x72\x96\x74\x96\x88\x96\x8d\x96\x97\x96\xb0\x90\x97\x90\x9b\x90\x9d\x90\x99\x90\xac\x90\xa1\x90\xb4\x90\xb3\x90\xb6\x90\xba\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xb8\x90\xb0\x90\xcf\x90\xc5\x90\xbe\x90\xd0\x90\xc4\x90\xc7\x90\xd3\x90\xe6\x90\xe2\x90\xdc\x90\xd7\x90\xdb\x90\xeb\x90\xef\x90\xfe\x91\x04\x91\x22\x91\x1e\x91\x23\x91\x31\x91\x2f\x91\x39\x91\x43\x91\x46\x52\x0d\x59\x42\x52\xa2\x52\xac\x52\xad\x52\xbe\x54\xff\x52\xd0\x52\xd6\x52\xf0\x53\xdf\x71\xee\x77\xcd\x5e\xf4\x51\xf5\x51\xfc\x9b\x2f\x53\xb6\x5f\x01\x75\x5a\x5d\xef\x57\x4c\x57\xa9\x57\xa1\x58\x7e\x58\xbc\x58\xc5\x58\xd1\x57\x29\x57\x2c\x57\x2a\x57\x33\x57\x39\x57\x2e\x57\x2f\x57\x5c\x57\x3b", /* 5e80 */ "\x00\x00\x57\x42\x57\x69\x57\x85\x57\x6b\x57\x86\x57\x7c\x57\x7b\x57\x68\x57\x6d\x57\x76\x57\x73\x57\xad\x57\xa4\x57\x8c\x57\xb2\x57\xcf\x57\xa7\x57\xb4\x57\x93\x57\xa0\x57\xd5\x57\xd8\x57\xda\x57\xd9\x57\xd2\x57\xb8\x57\xf4\x57\xef\x57\xf8\x57\xe4\x57\xdd\x58\x0b\x58\x0d\x57\xfd\x57\xed\x58\x00\x58\x1e\x58\x19\x58\x44\x58\x20\x58\x65\x58\x6c\x58\x81\x58\x89\x58\x9a\x58\x80\x99\xa8\x9f\x19\x61\xff\x82\x79\x82\x7d\x82\x7f\x82\x8f\x82\x8a\x82\xa8\x82\x84\x82\x8e\x82\x91\x82\x97\x82\x99\x82\xab\x82\xb8\x82\xbe\x82\xb0\x82\xc8\x82\xca\x82\xe3\x82\x98\x82\xb7\x82\xae\x82\xcb\x82\xcc\x82\xc1\x82\xa9\x82\xb4\x82\xa1\x82\xaa\x82\x9f\x82\xc4\x82\xce\x82\xa4\x82\xe1\x83\x09\x82\xf7\x82\xe4\x83\x0f\x83\x07\x82\xdc\x82\xf4\x82\xd2\x82\xd8\x83\x0c\x82\xfb\x82\xd3\x83\x11\x83\x1a\x83\x06\x83\x14\x83\x15\x82\xe0\x82\xd5\x83\x1c\x83\x51\x83\x5b\x83\x5c\x83\x08\x83\x92\x83\x3c\x83\x34\x83\x31\x83\x9b\x83\x5e\x83\x2f\x83\x4f\x83\x47\x83\x43\x83\x5f\x83\x40\x83\x17\x83\x60\x83\x2d\x83\x3a\x83\x33\x83\x66\x83\x65\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x68\x83\x1b\x83\x69\x83\x6c\x83\x6a\x83\x6d\x83\x6e\x83\xb0\x83\x78\x83\xb3\x83\xb4\x83\xa0\x83\xaa\x83\x93\x83\x9c\x83\x85\x83\x7c\x83\xb6\x83\xa9\x83\x7d\x83\xb8\x83\x7b\x83\x98\x83\x9e\x83\xa8\x83\xba\x83\xbc\x83\xc1\x84\x01\x83\xe5\x83\xd8\x58\x07\x84\x18\x84\x0b\x83\xdd\x83\xfd\x83\xd6\x84\x1c\x84\x38\x84\x11\x84\x06\x83\xd4\x83\xdf\x84\x0f\x84\x03\x83\xf8\x83\xf9\x83\xea\x83\xc5\x83\xc0\x84\x26\x83\xf0\x83\xe1\x84\x5c\x84\x51\x84\x5a\x84\x59\x84\x73\x84\x87\x84\x88\x84\x7a\x84\x89\x84\x78", /* 5f80 */ "\x00\x00\x84\x3c\x84\x46\x84\x69\x84\x76\x84\x8c\x84\x8e\x84\x31\x84\x6d\x84\xc1\x84\xcd\x84\xd0\x84\xe6\x84\xbd\x84\xd3\x84\xca\x84\xbf\x84\xba\x84\xe0\x84\xa1\x84\xb9\x84\xb4\x84\x97\x84\xe5\x84\xe3\x85\x0c\x75\x0d\x85\x38\x84\xf0\x85\x39\x85\x1f\x85\x3a\x85\x56\x85\x3b\x84\xff\x84\xfc\x85\x59\x85\x48\x85\x68\x85\x64\x85\x5e\x85\x7a\x77\xa2\x85\x43\x85\x72\x85\x7b\x85\xa4\x85\xa8\x85\x87\x85\x8f\x85\x79\x85\xae\x85\x9c\x85\x85\x85\xb9\x85\xb7\x85\xb0\x85\xd3\x85\xc1\x85\xdc\x85\xff\x86\x27\x86\x05\x86\x29\x86\x16\x86\x3c\x5e\xfe\x5f\x08\x59\x3c\x59\x41\x80\x37\x59\x55\x59\x5a\x59\x58\x53\x0f\x5c\x22\x5c\x25\x5c\x2c\x5c\x34\x62\x4c\x62\x6a\x62\x9f\x62\xbb\x62\xca\x62\xda\x62\xd7\x62\xee\x63\x22\x62\xf6\x63\x39\x63\x4b\x63\x43\x63\xad\x63\xf6\x63\x71\x63\x7a\x63\x8e\x63\xb4\x63\x6d\x63\xac\x63\x8a\x63\x69\x63\xae\x63\xbc\x63\xf2\x63\xf8\x63\xe0\x63\xff\x63\xc4\x63\xde\x63\xce\x64\x52\x63\xc6\x63\xbe\x64\x45\x64\x41\x64\x0b\x64\x1b\x64\x20\x64\x0c\x64\x26\x64\x21\x64\x5e\x64\x84\x64\x6d\x64\x96\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7a\x64\xb7\x64\xb8\x64\x99\x64\xba\x64\xc0\x64\xd0\x64\xd7\x64\xe4\x64\xe2\x65\x09\x65\x25\x65\x2e\x5f\x0b\x5f\xd2\x75\x19\x5f\x11\x53\x5f\x53\xf1\x53\xfd\x53\xe9\x53\xe8\x53\xfb\x54\x12\x54\x16\x54\x06\x54\x4b\x54\x52\x54\x53\x54\x54\x54\x56\x54\x43\x54\x21\x54\x57\x54\x59\x54\x23\x54\x32\x54\x82\x54\x94\x54\x77\x54\x71\x54\x64\x54\x9a\x54\x9b\x54\x84\x54\x76\x54\x66\x54\x9d\x54\xd0\x54\xad\x54\xc2\x54\xb4\x54\xd2\x54\xa7\x54\xa6\x54\xd3\x54\xd4\x54\x72\x54\xa3\x54\xd5\x54\xbb\x54\xbf\x54\xcc", /* 6080 */ "\x00\x00\x54\xd9\x54\xda\x54\xdc\x54\xa9\x54\xaa\x54\xa4\x54\xdd\x54\xcf\x54\xde\x55\x1b\x54\xe7\x55\x20\x54\xfd\x55\x14\x54\xf3\x55\x22\x55\x23\x55\x0f\x55\x11\x55\x27\x55\x2a\x55\x67\x55\x8f\x55\xb5\x55\x49\x55\x6d\x55\x41\x55\x55\x55\x3f\x55\x50\x55\x3c\x55\x37\x55\x56\x55\x75\x55\x76\x55\x77\x55\x33\x55\x30\x55\x5c\x55\x8b\x55\xd2\x55\x83\x55\xb1\x55\xb9\x55\x88\x55\x81\x55\x9f\x55\x7e\x55\xd6\x55\x91\x55\x7b\x55\xdf\x55\xbd\x55\xbe\x55\x94\x55\x99\x55\xea\x55\xf7\x55\xc9\x56\x1f\x55\xd1\x55\xeb\x55\xec\x55\xd4\x55\xe6\x55\xdd\x55\xc4\x55\xef\x55\xe5\x55\xf2\x55\xf3\x55\xcc\x55\xcd\x55\xe8\x55\xf5\x55\xe4\x8f\x94\x56\x1e\x56\x08\x56\x0c\x56\x01\x56\x24\x56\x23\x55\xfe\x56\x00\x56\x27\x56\x2d\x56\x58\x56\x39\x56\x57\x56\x2c\x56\x4d\x56\x62\x56\x59\x56\x5c\x56\x4c\x56\x54\x56\x86\x56\x64\x56\x71\x56\x6b\x56\x7b\x56\x7c\x56\x85\x56\x93\x56\xaf\x56\xd4\x56\xd7\x56\xdd\x56\xe1\x56\xf5\x56\xeb\x56\xf9\x56\xff\x57\x04\x57\x0a\x57\x09\x57\x1c\x5e\x0f\x5e\x19\x5e\x14\x5e\x11\x5e\x31\x5e\x3b\x5e\x3c\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x37\x5e\x44\x5e\x54\x5e\x5b\x5e\x5e\x5e\x61\x5c\x8c\x5c\x7a\x5c\x8d\x5c\x90\x5c\x96\x5c\x88\x5c\x98\x5c\x99\x5c\x91\x5c\x9a\x5c\x9c\x5c\xb5\x5c\xa2\x5c\xbd\x5c\xac\x5c\xab\x5c\xb1\x5c\xa3\x5c\xc1\x5c\xb7\x5c\xc4\x5c\xd2\x5c\xe4\x5c\xcb\x5c\xe5\x5d\x02\x5d\x03\x5d\x27\x5d\x26\x5d\x2e\x5d\x24\x5d\x1e\x5d\x06\x5d\x1b\x5d\x58\x5d\x3e\x5d\x34\x5d\x3d\x5d\x6c\x5d\x5b\x5d\x6f\x5d\x5d\x5d\x6b\x5d\x4b\x5d\x4a\x5d\x69\x5d\x74\x5d\x82\x5d\x99\x5d\x9d\x8c\x73\x5d\xb7\x5d\xc5\x5f\x73\x5f\x77\x5f\x82\x5f\x87", /* 6180 */ "\x00\x00\x5f\x89\x5f\x8c\x5f\x95\x5f\x99\x5f\x9c\x5f\xa8\x5f\xad\x5f\xb5\x5f\xbc\x88\x62\x5f\x61\x72\xad\x72\xb0\x72\xb4\x72\xb7\x72\xb8\x72\xc3\x72\xc1\x72\xce\x72\xcd\x72\xd2\x72\xe8\x72\xef\x72\xe9\x72\xf2\x72\xf4\x72\xf7\x73\x01\x72\xf3\x73\x03\x72\xfa\x72\xfb\x73\x17\x73\x13\x73\x21\x73\x0a\x73\x1e\x73\x1d\x73\x15\x73\x22\x73\x39\x73\x25\x73\x2c\x73\x38\x73\x31\x73\x50\x73\x4d\x73\x57\x73\x60\x73\x6c\x73\x6f\x73\x7e\x82\x1b\x59\x25\x98\xe7\x59\x24\x59\x02\x99\x63\x99\x67\x99\x68\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x74\x99\x77\x99\x7d\x99\x80\x99\x84\x99\x87\x99\x8a\x99\x8d\x99\x90\x99\x91\x99\x93\x99\x94\x99\x95\x5e\x80\x5e\x91\x5e\x8b\x5e\x96\x5e\xa5\x5e\xa0\x5e\xb9\x5e\xb5\x5e\xbe\x5e\xb3\x8d\x53\x5e\xd2\x5e\xd1\x5e\xdb\x5e\xe8\x5e\xea\x81\xba\x5f\xc4\x5f\xc9\x5f\xd6\x5f\xcf\x60\x03\x5f\xee\x60\x04\x5f\xe1\x5f\xe4\x5f\xfe\x60\x05\x60\x06\x5f\xea\x5f\xed\x5f\xf8\x60\x19\x60\x35\x60\x26\x60\x1b\x60\x0f\x60\x0d\x60\x29\x60\x2b\x60\x0a\x60\x3f\x60\x21\x60\x78\x60\x79\x60\x7b\x60\x7a\x60\x42\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6a\x60\x7d\x60\x96\x60\x9a\x60\xad\x60\x9d\x60\x83\x60\x92\x60\x8c\x60\x9b\x60\xec\x60\xbb\x60\xb1\x60\xdd\x60\xd8\x60\xc6\x60\xda\x60\xb4\x61\x20\x61\x26\x61\x15\x61\x23\x60\xf4\x61\x00\x61\x0e\x61\x2b\x61\x4a\x61\x75\x61\xac\x61\x94\x61\xa7\x61\xb7\x61\xd4\x61\xf5\x5f\xdd\x96\xb3\x95\xe9\x95\xeb\x95\xf1\x95\xf3\x95\xf5\x95\xf6\x95\xfc\x95\xfe\x96\x03\x96\x04\x96\x06\x96\x08\x96\x0a\x96\x0b\x96\x0c\x96\x0d\x96\x0f\x96\x12\x96\x15\x96\x16\x96\x17\x96\x19\x96\x1a\x4e\x2c\x72\x3f\x62\x15\x6c\x35", /* 6280 */ "\x00\x00\x6c\x54\x6c\x5c\x6c\x4a\x6c\xa3\x6c\x85\x6c\x90\x6c\x94\x6c\x8c\x6c\x68\x6c\x69\x6c\x74\x6c\x76\x6c\x86\x6c\xa9\x6c\xd0\x6c\xd4\x6c\xad\x6c\xf7\x6c\xf8\x6c\xf1\x6c\xd7\x6c\xb2\x6c\xe0\x6c\xd6\x6c\xfa\x6c\xeb\x6c\xee\x6c\xb1\x6c\xd3\x6c\xef\x6c\xfe\x6d\x39\x6d\x27\x6d\x0c\x6d\x43\x6d\x48\x6d\x07\x6d\x04\x6d\x19\x6d\x0e\x6d\x2b\x6d\x4d\x6d\x2e\x6d\x35\x6d\x1a\x6d\x4f\x6d\x52\x6d\x54\x6d\x33\x6d\x91\x6d\x6f\x6d\x9e\x6d\xa0\x6d\x5e\x6d\x93\x6d\x94\x6d\x5c\x6d\x60\x6d\x7c\x6d\x63\x6e\x1a\x6d\xc7\x6d\xc5\x6d\xde\x6e\x0e\x6d\xbf\x6d\xe0\x6e\x11\x6d\xe6\x6d\xdd\x6d\xd9\x6e\x16\x6d\xab\x6e\x0c\x6d\xae\x6e\x2b\x6e\x6e\x6e\x4e\x6e\x6b\x6e\xb2\x6e\x5f\x6e\x86\x6e\x53\x6e\x54\x6e\x32\x6e\x25\x6e\x44\x6e\xdf\x6e\xb1\x6e\x98\x6e\xe0\x6f\x2d\x6e\xe2\x6e\xa5\x6e\xa7\x6e\xbd\x6e\xbb\x6e\xb7\x6e\xd7\x6e\xb4\x6e\xcf\x6e\x8f\x6e\xc2\x6e\x9f\x6f\x62\x6f\x46\x6f\x47\x6f\x24\x6f\x15\x6e\xf9\x6f\x2f\x6f\x36\x6f\x4b\x6f\x74\x6f\x2a\x6f\x09\x6f\x29\x6f\x89\x6f\x8d\x6f\x8c\x6f\x78\x6f\x72\x6f\x7c\x6f\x7a\x6f\xd1\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xc9\x6f\xa7\x6f\xb9\x6f\xb6\x6f\xc2\x6f\xe1\x6f\xee\x6f\xde\x6f\xe0\x6f\xef\x70\x1a\x70\x23\x70\x1b\x70\x39\x70\x35\x70\x4f\x70\x5e\x5b\x80\x5b\x84\x5b\x95\x5b\x93\x5b\xa5\x5b\xb8\x75\x2f\x9a\x9e\x64\x34\x5b\xe4\x5b\xee\x89\x30\x5b\xf0\x8e\x47\x8b\x07\x8f\xb6\x8f\xd3\x8f\xd5\x8f\xe5\x8f\xee\x8f\xe4\x8f\xe9\x8f\xe6\x8f\xf3\x8f\xe8\x90\x05\x90\x04\x90\x0b\x90\x26\x90\x11\x90\x0d\x90\x16\x90\x21\x90\x35\x90\x36\x90\x2d\x90\x2f\x90\x44\x90\x51\x90\x52\x90\x50\x90\x68\x90\x58\x90\x62\x90\x5b\x66\xb9", /* 6380 */ "\x00\x00\x90\x74\x90\x7d\x90\x82\x90\x88\x90\x83\x90\x8b\x5f\x50\x5f\x57\x5f\x56\x5f\x58\x5c\x3b\x54\xab\x5c\x50\x5c\x59\x5b\x71\x5c\x63\x5c\x66\x7f\xbc\x5f\x2a\x5f\x29\x5f\x2d\x82\x74\x5f\x3c\x9b\x3b\x5c\x6e\x59\x81\x59\x83\x59\x8d\x59\xa9\x59\xaa\x59\xa3\x59\x97\x59\xca\x59\xab\x59\x9e\x59\xa4\x59\xd2\x59\xb2\x59\xaf\x59\xd7\x59\xbe\x5a\x05\x5a\x06\x59\xdd\x5a\x08\x59\xe3\x59\xd8\x59\xf9\x5a\x0c\x5a\x09\x5a\x32\x5a\x34\x5a\x11\x5a\x23\x5a\x13\x5a\x40\x5a\x67\x5a\x4a\x5a\x55\x5a\x3c\x5a\x62\x5a\x75\x80\xec\x5a\xaa\x5a\x9b\x5a\x77\x5a\x7a\x5a\xbe\x5a\xeb\x5a\xb2\x5a\xd2\x5a\xd4\x5a\xb8\x5a\xe0\x5a\xe3\x5a\xf1\x5a\xd6\x5a\xe6\x5a\xd8\x5a\xdc\x5b\x09\x5b\x17\x5b\x16\x5b\x32\x5b\x37\x5b\x40\x5c\x15\x5c\x1c\x5b\x5a\x5b\x65\x5b\x73\x5b\x51\x5b\x53\x5b\x62\x9a\x75\x9a\x77\x9a\x78\x9a\x7a\x9a\x7f\x9a\x7d\x9a\x80\x9a\x81\x9a\x85\x9a\x88\x9a\x8a\x9a\x90\x9a\x92\x9a\x93\x9a\x96\x9a\x98\x9a\x9b\x9a\x9c\x9a\x9d\x9a\x9f\x9a\xa0\x9a\xa2\x9a\xa3\x9a\xa5\x9a\xa7\x7e\x9f\x7e\xa1\x7e\xa3\x7e\xa5\x7e\xa8\x7e\xa9\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xad\x7e\xb0\x7e\xbe\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc9\x7e\xcb\x7e\xcc\x7e\xd0\x7e\xd4\x7e\xd7\x7e\xdb\x7e\xe0\x7e\xe1\x7e\xe8\x7e\xeb\x7e\xee\x7e\xef\x7e\xf1\x7e\xf2\x7f\x0d\x7e\xf6\x7e\xfa\x7e\xfb\x7e\xfe\x7f\x01\x7f\x02\x7f\x03\x7f\x07\x7f\x08\x7f\x0b\x7f\x0c\x7f\x0f\x7f\x11\x7f\x12\x7f\x17\x7f\x19\x7f\x1c\x7f\x1b\x7f\x1f\x7f\x21\x7f\x22\x7f\x23\x7f\x24\x7f\x25\x7f\x26\x7f\x27\x7f\x2a\x7f\x2b\x7f\x2c\x7f\x2d\x7f\x2f\x7f\x30\x7f\x31\x7f\x32\x7f\x33\x7f\x35\x5e\x7a\x75\x7f\x5d\xdb\x75\x3e\x90\x95", /* 6480 */ "\x00\x00\x73\x8e\x73\x91\x73\xae\x73\xa2\x73\x9f\x73\xcf\x73\xc2\x73\xd1\x73\xb7\x73\xb3\x73\xc0\x73\xc9\x73\xc8\x73\xe5\x73\xd9\x98\x7c\x74\x0a\x73\xe9\x73\xe7\x73\xde\x73\xba\x73\xf2\x74\x0f\x74\x2a\x74\x5b\x74\x26\x74\x25\x74\x28\x74\x30\x74\x2e\x74\x2c\x74\x1b\x74\x1a\x74\x41\x74\x5c\x74\x57\x74\x55\x74\x59\x74\x77\x74\x6d\x74\x7e\x74\x9c\x74\x8e\x74\x80\x74\x81\x74\x87\x74\x8b\x74\x9e\x74\xa8\x74\xa9\x74\x90\x74\xa7\x74\xd2\x74\xba\x97\xea\x97\xeb\x97\xec\x67\x4c\x67\x53\x67\x5e\x67\x48\x67\x69\x67\xa5\x67\x87\x67\x6a\x67\x73\x67\x98\x67\xa7\x67\x75\x67\xa8\x67\x9e\x67\xad\x67\x8b\x67\x77\x67\x7c\x67\xf0\x68\x09\x67\xd8\x68\x0a\x67\xe9\x67\xb0\x68\x0c\x67\xd9\x67\xb5\x67\xda\x67\xb3\x67\xdd\x68\x00\x67\xc3\x67\xb8\x67\xe2\x68\x0e\x67\xc1\x67\xfd\x68\x32\x68\x33\x68\x60\x68\x61\x68\x4e\x68\x62\x68\x44\x68\x64\x68\x83\x68\x1d\x68\x55\x68\x66\x68\x41\x68\x67\x68\x40\x68\x3e\x68\x4a\x68\x49\x68\x29\x68\xb5\x68\x8f\x68\x74\x68\x77\x68\x93\x68\x6b\x68\xc2\x69\x6e\x68\xfc\x69\x1f\x69\x20\x68\xf9\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x24\x68\xf0\x69\x0b\x69\x01\x69\x57\x68\xe3\x69\x10\x69\x71\x69\x39\x69\x60\x69\x42\x69\x5d\x69\x84\x69\x6b\x69\x80\x69\x98\x69\x78\x69\x34\x69\xcc\x69\x87\x69\x88\x69\xce\x69\x89\x69\x66\x69\x63\x69\x79\x69\x9b\x69\xa7\x69\xbb\x69\xab\x69\xad\x69\xd4\x69\xb1\x69\xc1\x69\xca\x69\xdf\x69\x95\x69\xe0\x69\x8d\x69\xff\x6a\x2f\x69\xed\x6a\x17\x6a\x18\x6a\x65\x69\xf2\x6a\x44\x6a\x3e\x6a\xa0\x6a\x50\x6a\x5b\x6a\x35\x6a\x8e\x6a\x79\x6a\x3d\x6a\x28\x6a\x58\x6a\x7c\x6a\x91\x6a\x90\x6a\xa9\x6a\x97\x6a\xab", /* 6580 */ "\x00\x00\x73\x37\x73\x52\x6b\x81\x6b\x82\x6b\x87\x6b\x84\x6b\x92\x6b\x93\x6b\x8d\x6b\x9a\x6b\x9b\x6b\xa1\x6b\xaa\x8f\x6b\x8f\x6d\x8f\x71\x8f\x72\x8f\x73\x8f\x75\x8f\x76\x8f\x78\x8f\x77\x8f\x79\x8f\x7a\x8f\x7c\x8f\x7e\x8f\x81\x8f\x82\x8f\x84\x8f\x87\x8f\x8b\x8f\x8d\x8f\x8e\x8f\x8f\x8f\x98\x8f\x9a\x8e\xce\x62\x0b\x62\x17\x62\x1b\x62\x1f\x62\x22\x62\x21\x62\x25\x62\x24\x62\x2c\x81\xe7\x74\xef\x74\xf4\x74\xff\x75\x0f\x75\x11\x75\x13\x65\x34\x65\xee\x65\xef\x65\xf0\x66\x0a\x66\x19\x67\x72\x66\x03\x66\x15\x66\x00\x70\x85\x66\xf7\x66\x1d\x66\x34\x66\x31\x66\x36\x66\x35\x80\x06\x66\x5f\x66\x54\x66\x41\x66\x4f\x66\x56\x66\x61\x66\x57\x66\x77\x66\x84\x66\x8c\x66\xa7\x66\x9d\x66\xbe\x66\xdb\x66\xdc\x66\xe6\x66\xe9\x8d\x32\x8d\x33\x8d\x36\x8d\x3b\x8d\x3d\x8d\x40\x8d\x45\x8d\x46\x8d\x48\x8d\x49\x8d\x47\x8d\x4d\x8d\x55\x8d\x59\x89\xc7\x89\xca\x89\xcb\x89\xcc\x89\xce\x89\xcf\x89\xd0\x89\xd1\x72\x6e\x72\x9f\x72\x5d\x72\x66\x72\x6f\x72\x7e\x72\x7f\x72\x84\x72\x8b\x72\x8d\x72\x8f\x72\x92\x63\x08\x63\x32\x63\xb0\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x3f\x64\xd8\x80\x04\x6b\xea\x6b\xf3\x6b\xfd\x6b\xf5\x6b\xf9\x6c\x05\x6c\x07\x6c\x06\x6c\x0d\x6c\x15\x6c\x18\x6c\x19\x6c\x1a\x6c\x21\x6c\x29\x6c\x24\x6c\x2a\x6c\x32\x65\x35\x65\x55\x65\x6b\x72\x4d\x72\x52\x72\x56\x72\x30\x86\x62\x52\x16\x80\x9f\x80\x9c\x80\x93\x80\xbc\x67\x0a\x80\xbd\x80\xb1\x80\xab\x80\xad\x80\xb4\x80\xb7\x80\xe7\x80\xe8\x80\xe9\x80\xea\x80\xdb\x80\xc2\x80\xc4\x80\xd9\x80\xcd\x80\xd7\x67\x10\x80\xdd\x80\xeb\x80\xf1\x80\xf4\x80\xed\x81\x0d\x81\x0e\x80\xf2\x80\xfc\x67\x15\x81\x12", /* 6680 */ "\x00\x00\x8c\x5a\x81\x36\x81\x1e\x81\x2c\x81\x18\x81\x32\x81\x48\x81\x4c\x81\x53\x81\x74\x81\x59\x81\x5a\x81\x71\x81\x60\x81\x69\x81\x7c\x81\x7d\x81\x6d\x81\x67\x58\x4d\x5a\xb5\x81\x88\x81\x82\x81\x91\x6e\xd5\x81\xa3\x81\xaa\x81\xcc\x67\x26\x81\xca\x81\xbb\x81\xc1\x81\xa6\x6b\x24\x6b\x37\x6b\x39\x6b\x43\x6b\x46\x6b\x59\x98\xd1\x98\xd2\x98\xd3\x98\xd5\x98\xd9\x98\xda\x6b\xb3\x5f\x40\x6b\xc2\x89\xf3\x65\x90\x9f\x51\x65\x93\x65\xbc\x65\xc6\x65\xc4\x65\xc3\x65\xcc\x65\xce\x65\xd2\x65\xd6\x70\x80\x70\x9c\x70\x96\x70\x9d\x70\xbb\x70\xc0\x70\xb7\x70\xab\x70\xb1\x70\xe8\x70\xca\x71\x10\x71\x13\x71\x16\x71\x2f\x71\x31\x71\x73\x71\x5c\x71\x68\x71\x45\x71\x72\x71\x4a\x71\x78\x71\x7a\x71\x98\x71\xb3\x71\xb5\x71\xa8\x71\xa0\x71\xe0\x71\xd4\x71\xe7\x71\xf9\x72\x1d\x72\x28\x70\x6c\x71\x18\x71\x66\x71\xb9\x62\x3e\x62\x3d\x62\x43\x62\x48\x62\x49\x79\x3b\x79\x40\x79\x46\x79\x49\x79\x5b\x79\x5c\x79\x53\x79\x5a\x79\x62\x79\x57\x79\x60\x79\x6f\x79\x67\x79\x7a\x79\x85\x79\x8a\x79\x9a\x79\xa7\x79\xb3\x5f\xd1\x5f\xd0\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x3c\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\x59\x60\x63\x60\xab\x61\x06\x61\x0d\x61\x5d\x61\xa9\x61\x9d\x61\xcb\x61\xd1\x62\x06\x80\x80\x80\x7f\x6c\x93\x6c\xf6\x6d\xfc\x77\xf6\x77\xf8\x78\x00\x78\x09\x78\x17\x78\x18\x78\x11\x65\xab\x78\x2d\x78\x1c\x78\x1d\x78\x39\x78\x3a\x78\x3b\x78\x1f\x78\x3c\x78\x25\x78\x2c\x78\x23\x78\x29\x78\x4e\x78\x6d\x78\x56\x78\x57\x78\x26\x78\x50\x78\x47\x78\x4c\x78\x6a\x78\x9b\x78\x93\x78\x9a\x78\x87\x78\x9c\x78\xa1\x78\xa3\x78\xb2\x78\xb9\x78\xa5\x78\xd4\x78\xd9\x78\xc9", /* 6780 */ "\x00\x00\x78\xec\x78\xf2\x79\x05\x78\xf4\x79\x13\x79\x24\x79\x1e\x79\x34\x9f\x9b\x9e\xf9\x9e\xfb\x9e\xfc\x76\xf1\x77\x04\x77\x0d\x76\xf9\x77\x07\x77\x08\x77\x1a\x77\x22\x77\x19\x77\x2d\x77\x26\x77\x35\x77\x38\x77\x50\x77\x51\x77\x47\x77\x43\x77\x5a\x77\x68\x77\x62\x77\x65\x77\x7f\x77\x8d\x77\x7d\x77\x80\x77\x8c\x77\x91\x77\x9f\x77\xa0\x77\xb0\x77\xb5\x77\xbd\x75\x3a\x75\x40\x75\x4e\x75\x4b\x75\x48\x75\x5b\x75\x72\x75\x79\x75\x83\x7f\x58\x7f\x61\x7f\x5f\x8a\x48\x7f\x68\x7f\x74\x7f\x71\x7f\x79\x7f\x81\x7f\x7e\x76\xcd\x76\xe5\x88\x32\x94\x85\x94\x86\x94\x87\x94\x8b\x94\x8a\x94\x8c\x94\x8d\x94\x8f\x94\x90\x94\x94\x94\x97\x94\x95\x94\x9a\x94\x9b\x94\x9c\x94\xa3\x94\xa4\x94\xab\x94\xaa\x94\xad\x94\xac\x94\xaf\x94\xb0\x94\xb2\x94\xb4\x94\xb6\x94\xb7\x94\xb8\x94\xb9\x94\xba\x94\xbc\x94\xbd\x94\xbf\x94\xc4\x94\xc8\x94\xc9\x94\xca\x94\xcb\x94\xcc\x94\xcd\x94\xce\x94\xd0\x94\xd1\x94\xd2\x94\xd5\x94\xd6\x94\xd7\x94\xd9\x94\xd8\x94\xdb\x94\xde\x94\xdf\x94\xe0\x94\xe2\x94\xe4\x94\xe5\x94\xe7\x94\xe8\x94\xea\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe9\x94\xeb\x94\xee\x94\xef\x94\xf3\x94\xf4\x94\xf5\x94\xf7\x94\xf9\x94\xfc\x94\xfd\x94\xff\x95\x03\x95\x02\x95\x06\x95\x07\x95\x09\x95\x0a\x95\x0d\x95\x0e\x95\x0f\x95\x12\x95\x13\x95\x14\x95\x15\x95\x16\x95\x18\x95\x1b\x95\x1d\x95\x1e\x95\x1f\x95\x22\x95\x2a\x95\x2b\x95\x29\x95\x2c\x95\x31\x95\x32\x95\x34\x95\x36\x95\x37\x95\x38\x95\x3c\x95\x3e\x95\x3f\x95\x42\x95\x35\x95\x44\x95\x45\x95\x46\x95\x49\x95\x4c\x95\x4e\x95\x4f\x95\x52\x95\x53\x95\x54\x95\x56\x95\x57\x95\x58\x95\x59\x95\x5b\x95\x5e", /* 6880 */ "\x00\x00\x95\x5f\x95\x5d\x95\x61\x95\x62\x95\x64\x95\x65\x95\x66\x95\x67\x95\x68\x95\x69\x95\x6a\x95\x6b\x95\x6c\x95\x6f\x95\x71\x95\x72\x95\x73\x95\x3a\x77\xe7\x77\xec\x96\xc9\x79\xd5\x79\xed\x79\xe3\x79\xeb\x7a\x06\x5d\x47\x7a\x03\x7a\x02\x7a\x1e\x7a\x14\x7a\x39\x7a\x37\x7a\x51\x9e\xcf\x99\xa5\x7a\x70\x76\x88\x76\x8e\x76\x93\x76\x99\x76\xa4\x74\xde\x74\xe0\x75\x2c\x9e\x20\x9e\x22\x9e\x28\x9e\x29\x9e\x2a\x9e\x2b\x9e\x2c\x9e\x32\x9e\x31\x9e\x36\x9e\x38\x9e\x37\x9e\x39\x9e\x3a\x9e\x3e\x9e\x41\x9e\x42\x9e\x44\x9e\x46\x9e\x47\x9e\x48\x9e\x49\x9e\x4b\x9e\x4c\x9e\x4e\x9e\x51\x9e\x55\x9e\x57\x9e\x5a\x9e\x5b\x9e\x5c\x9e\x5e\x9e\x63\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x9e\x6b\x9e\x6c\x9e\x71\x9e\x6d\x9e\x73\x75\x92\x75\x94\x75\x96\x75\xa0\x75\x9d\x75\xac\x75\xa3\x75\xb3\x75\xb4\x75\xb8\x75\xc4\x75\xb1\x75\xb0\x75\xc3\x75\xc2\x75\xd6\x75\xcd\x75\xe3\x75\xe8\x75\xe6\x75\xe4\x75\xeb\x75\xe7\x76\x03\x75\xf1\x75\xfc\x75\xff\x76\x10\x76\x00\x76\x05\x76\x0c\x76\x17\x76\x0a\x76\x25\x76\x18\x76\x15\x76\x19\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x1b\x76\x3c\x76\x22\x76\x20\x76\x40\x76\x2d\x76\x30\x76\x3f\x76\x35\x76\x43\x76\x3e\x76\x33\x76\x4d\x76\x5e\x76\x54\x76\x5c\x76\x56\x76\x6b\x76\x6f\x7f\xca\x7a\xe6\x7a\x78\x7a\x79\x7a\x80\x7a\x86\x7a\x88\x7a\x95\x7a\xa6\x7a\xa0\x7a\xac\x7a\xa8\x7a\xad\x7a\xb3\x88\x64\x88\x69\x88\x72\x88\x7d\x88\x7f\x88\x82\x88\xa2\x88\xc6\x88\xb7\x88\xbc\x88\xc9\x88\xe2\x88\xce\x88\xe3\x88\xe5\x88\xf1\x89\x1a\x88\xfc\x88\xe8\x88\xfe\x88\xf0\x89\x21\x89\x19\x89\x13\x89\x1b\x89\x0a\x89\x34\x89\x2b\x89\x36\x89\x41", /* 6980 */ "\x00\x00\x89\x66\x89\x7b\x75\x8b\x80\xe5\x76\xb2\x76\xb4\x77\xdc\x80\x12\x80\x14\x80\x16\x80\x1c\x80\x20\x80\x22\x80\x25\x80\x26\x80\x27\x80\x29\x80\x28\x80\x31\x80\x0b\x80\x35\x80\x43\x80\x46\x80\x4d\x80\x52\x80\x69\x80\x71\x89\x83\x98\x78\x98\x80\x98\x83\x98\x89\x98\x8c\x98\x8d\x98\x8f\x98\x94\x98\x9a\x98\x9b\x98\x9e\x98\x9f\x98\xa1\x98\xa2\x98\xa5\x98\xa6\x86\x4d\x86\x54\x86\x6c\x86\x6e\x86\x7f\x86\x7a\x86\x7c\x86\x7b\x86\xa8\x86\x8d\x86\x8b\x86\xac\x86\x9d\x86\xa7\x86\xa3\x86\xaa\x86\x93\x86\xa9\x86\xb6\x86\xc4\x86\xb5\x86\xce\x86\xb0\x86\xba\x86\xb1\x86\xaf\x86\xc9\x86\xcf\x86\xb4\x86\xe9\x86\xf1\x86\xf2\x86\xed\x86\xf3\x86\xd0\x87\x13\x86\xde\x86\xf4\x86\xdf\x86\xd8\x86\xd1\x87\x03\x87\x07\x86\xf8\x87\x08\x87\x0a\x87\x0d\x87\x09\x87\x23\x87\x3b\x87\x1e\x87\x25\x87\x2e\x87\x1a\x87\x3e\x87\x48\x87\x34\x87\x31\x87\x29\x87\x37\x87\x3f\x87\x82\x87\x22\x87\x7d\x87\x7e\x87\x7b\x87\x60\x87\x70\x87\x4c\x87\x6e\x87\x8b\x87\x53\x87\x63\x87\x7c\x87\x64\x87\x59\x87\x65\x87\x93\x87\xaf\x87\xa8\x87\xd2\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xc6\x87\x88\x87\x85\x87\xad\x87\x97\x87\x83\x87\xab\x87\xe5\x87\xac\x87\xb5\x87\xb3\x87\xcb\x87\xd3\x87\xbd\x87\xd1\x87\xc0\x87\xca\x87\xdb\x87\xea\x87\xe0\x87\xee\x88\x16\x88\x13\x87\xfe\x88\x0a\x88\x1b\x88\x21\x88\x39\x88\x3c\x7f\x36\x7f\x42\x7f\x44\x7f\x45\x82\x10\x7a\xfa\x7a\xfd\x7b\x08\x7b\x03\x7b\x04\x7b\x15\x7b\x0a\x7b\x2b\x7b\x0f\x7b\x47\x7b\x38\x7b\x2a\x7b\x19\x7b\x2e\x7b\x31\x7b\x20\x7b\x25\x7b\x24\x7b\x33\x7b\x3e\x7b\x1e\x7b\x58\x7b\x5a\x7b\x45\x7b\x75\x7b\x4c\x7b\x5d\x7b\x60\x7b\x6e", /* 6a80 */ "\x00\x00\x7b\x7b\x7b\x62\x7b\x72\x7b\x71\x7b\x90\x7b\xa6\x7b\xa7\x7b\xb8\x7b\xac\x7b\x9d\x7b\xa8\x7b\x85\x7b\xaa\x7b\x9c\x7b\xa2\x7b\xab\x7b\xb4\x7b\xd1\x7b\xc1\x7b\xcc\x7b\xdd\x7b\xda\x7b\xe5\x7b\xe6\x7b\xea\x7c\x0c\x7b\xfe\x7b\xfc\x7c\x0f\x7c\x16\x7c\x0b\x7c\x1f\x7c\x2a\x7c\x26\x7c\x38\x7c\x41\x7c\x40\x81\xfe\x82\x01\x82\x02\x82\x04\x81\xec\x88\x44\x82\x21\x82\x22\x82\x23\x82\x2d\x82\x2f\x82\x28\x82\x2b\x82\x38\x82\x3b\x82\x33\x82\x34\x82\x3e\x82\x44\x82\x49\x82\x4b\x82\x4f\x82\x5a\x82\x5f\x82\x68\x88\x7e\x88\x85\x88\x88\x88\xd8\x88\xdf\x89\x5e\x7f\x9d\x7f\x9f\x7f\xa7\x7f\xaf\x7f\xb0\x7f\xb2\x7c\x7c\x65\x49\x7c\x91\x7c\x9d\x7c\x9c\x7c\x9e\x7c\xa2\x7c\xb2\x7c\xbc\x7c\xbd\x7c\xc1\x7c\xc7\x7c\xcc\x7c\xcd\x7c\xc8\x7c\xc5\x7c\xd7\x7c\xe8\x82\x6e\x66\xa8\x7f\xbf\x7f\xce\x7f\xd5\x7f\xe5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xee\x7f\xf3\x7c\xf8\x7d\x77\x7d\xa6\x7d\xae\x7e\x47\x7e\x9b\x9e\xb8\x9e\xb4\x8d\x73\x8d\x84\x8d\x94\x8d\x91\x8d\xb1\x8d\x67\x8d\x6d\x8c\x47\x8c\x49\x91\x4a\x91\x50\x91\x4e\x91\x4f\x91\x64\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x62\x91\x61\x91\x70\x91\x69\x91\x6f\x91\x7d\x91\x7e\x91\x72\x91\x74\x91\x79\x91\x8c\x91\x85\x91\x90\x91\x8d\x91\x91\x91\xa2\x91\xa3\x91\xaa\x91\xad\x91\xae\x91\xaf\x91\xb5\x91\xb4\x91\xba\x8c\x55\x9e\x7e\x8d\xb8\x8d\xeb\x8e\x05\x8e\x59\x8e\x69\x8d\xb5\x8d\xbf\x8d\xbc\x8d\xba\x8d\xc4\x8d\xd6\x8d\xd7\x8d\xda\x8d\xde\x8d\xce\x8d\xcf\x8d\xdb\x8d\xc6\x8d\xec\x8d\xf7\x8d\xf8\x8d\xe3\x8d\xf9\x8d\xfb\x8d\xe4\x8e\x09\x8d\xfd\x8e\x14\x8e\x1d\x8e\x1f\x8e\x2c\x8e\x2e\x8e\x23\x8e\x2f\x8e\x3a\x8e\x40\x8e\x39", /* 6b80 */ "\x00\x00\x8e\x35\x8e\x3d\x8e\x31\x8e\x49\x8e\x41\x8e\x42\x8e\x51\x8e\x52\x8e\x4a\x8e\x70\x8e\x76\x8e\x7c\x8e\x6f\x8e\x74\x8e\x85\x8e\x8f\x8e\x94\x8e\x90\x8e\x9c\x8e\x9e\x8c\x78\x8c\x82\x8c\x8a\x8c\x85\x8c\x98\x8c\x94\x65\x9b\x89\xd6\x89\xde\x89\xda\x89\xdc\x89\xe5\x89\xeb\x89\xef\x8a\x3e\x8b\x26\x97\x53\x96\xe9\x96\xf3\x96\xef\x97\x06\x97\x01\x97\x08\x97\x0f\x97\x0e\x97\x2a\x97\x2d\x97\x30\x97\x3e\x9f\x80\x9f\x83\x9f\x85\x9f\x86\x9f\x87\x9f\x88\x9f\x89\x9f\x8a\x9f\x8c\x9e\xfe\x9f\x0b\x9f\x0d\x96\xb9\x96\xbc\x96\xbd\x96\xce\x96\xd2\x77\xbf\x96\xe0\x92\x8e\x92\xae\x92\xc8\x93\x3e\x93\x6a\x93\xca\x93\x8f\x94\x3e\x94\x6b\x9c\x7f\x9c\x82\x9c\x85\x9c\x86\x9c\x87\x9c\x88\x7a\x23\x9c\x8b\x9c\x8e\x9c\x90\x9c\x91\x9c\x92\x9c\x94\x9c\x95\x9c\x9a\x9c\x9b\x9c\x9e\x9c\x9f\x9c\xa0\x9c\xa1\x9c\xa2\x9c\xa3\x9c\xa5\x9c\xa6\x9c\xa7\x9c\xa8\x9c\xa9\x9c\xab\x9c\xad\x9c\xae\x9c\xb0\x9c\xb1\x9c\xb2\x9c\xb3\x9c\xb4\x9c\xb5\x9c\xb6\x9c\xb7\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xca\x9c\xcb\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xcc\x9c\xcd\x9c\xce\x9c\xcf\x9c\xd0\x9c\xd3\x9c\xd4\x9c\xd5\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xdc\x9c\xdd\x9c\xdf\x9c\xe2\x97\x7c\x97\x85\x97\x91\x97\x92\x97\x94\x97\xaf\x97\xab\x97\xa3\x97\xb2\x97\xb4\x9a\xb1\x9a\xb0\x9a\xb7\x9e\x58\x9a\xb6\x9a\xba\x9a\xbc\x9a\xc1\x9a\xc0\x9a\xc5\x9a\xc2\x9a\xcb\x9a\xcc\x9a\xd1\x9b\x45\x9b\x43\x9b\x47\x9b\x49\x9b\x48\x9b\x4d\x9b\x51\x98\xe8\x99\x0d\x99\x2e\x99\x55\x99\x54\x9a\xdf\x9a\xe1\x9a\xe6\x9a\xef\x9a\xeb\x9a\xfb\x9a\xed\x9a\xf9\x9b\x08\x9b\x0f\x9b\x13\x9b\x1f", /* 6c80 */ "\x00\x00\x9b\x23\x9e\xbd\x9e\xbe\x7e\x3b\x9e\x82\x9e\x87\x9e\x88\x9e\x8b\x9e\x92\x93\xd6\x9e\x9d\x9e\x9f\x9e\xdb\x9e\xdc\x9e\xdd\x9e\xe0\x9e\xdf\x9e\xe2\x9e\xe9\x9e\xe7\x9e\xe5\x9e\xea\x9e\xef\x9f\x22\x9f\x2c\x9f\x2f\x9f\x39\x9f\x37\x9f\x3d\x9f\x3e\x9f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ NULL, /* 6d80 */ NULL, /* 6e00 */ NULL, /* 6e80 */ NULL, /* 6f00 */ NULL, /* 6f80 */ NULL, /* 7000 */ NULL, /* 7080 */ NULL, /* 7100 */ NULL, /* 7180 */ NULL, /* 7200 */ NULL, /* 7280 */ NULL, /* 7300 */ NULL, /* 7380 */ NULL, /* 7400 */ NULL, /* 7480 */ NULL, /* 7500 */ NULL, /* 7580 */ NULL, /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 7680 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* 7780 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* 7880 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* 7980 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* 7a80 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* 7b80 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* 7c80 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* 7d80 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* 7e80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* 7f80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* 8000 */ NULL, /* 8080 */ NULL, /* 8100 */ NULL, /* 8180 */ NULL, /* 8200 */ NULL, /* 8280 */ NULL, /* 8300 */ NULL, /* 8380 */ NULL, /* 8400 */ NULL, /* 8480 */ NULL, /* 8500 */ NULL, /* 8580 */ NULL, /* 8600 */ NULL, /* 8680 */ NULL, /* 8700 */ NULL, /* 8780 */ NULL, /* 8800 */ NULL, /* 8880 */ NULL, /* 8900 */ NULL, /* 8980 */ NULL, /* 8a00 */ NULL, /* 8a80 */ NULL, /* 8b00 */ NULL, /* 8b80 */ NULL, /* 8c00 */ NULL, /* 8c80 */ NULL, /* 8d00 */ NULL, /* 8d80 */ NULL, /* 8e00 */ NULL, /* 8e80 */ NULL, /* 8f00 */ NULL, /* 8f80 */ NULL, /* 9000 */ NULL, /* 9080 */ NULL, /* 9100 */ NULL, /* 9180 */ NULL, /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ NULL, /* e080 */ NULL, /* e100 */ NULL, /* e180 */ NULL, /* e200 */ NULL, /* e280 */ NULL, /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp937", "0x03a70343" /* 935, 835 */, "big5-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-937_P110-1999 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\xa1\x44\xed\x44\x4b\x00\x00\x00\x00\x44\xee\x00\x00\x43\x79\x46\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x53\x00\x00\x45\x51\x45\x52\x45\x54\x00\x00\x47\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x44\x4a\x44\x4a\x00\x00\x00\x00\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x43\x77\x43\x78\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x43\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x73\x00\x00\x44\x50\x44\xef\x00\x00\x42\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x42\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x46\xbb\x00\x00\x00\x00\x00\x00\x46\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x46\xd4\x46\xd5\x46\xd7\x46\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xef\x46\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6e\x00\x00\x43\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x43\x70\x00\x00\x43\x4e\x43\x71\x00\x00\x00\x00\x00\x00\x43\x4f\x43\x64\x00\x00\x00\x00\x43\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xda\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc5\x00\x00\x00\x00\x43\x61\x44\x4d\x46\xcc\x46\xcb\x00\x00\x00\x00\x42\x4f\x00\x00\x44\x7c\x00\x00\x43\x6c\x43\x6d\x46\xc8\x46\xc9\x46\xd0\x43\x63\x00\x00\x46\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa1\x43\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x46\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x43\x5d\x43\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x43\x68\x43\x69\x00\x00\x00\x00\x43\x66\x43\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xd2\x00\x00\x00\x00\x00\x00\x46\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8d\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x00\x00\x47\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x41\x46\x42\x46\x43\x46\x44\x46\x45\x46\x46\x46\x47\x46\x48\x46\x49\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x46\x52\x46\x53\x46\x54\x46\x55\x46\x56\x46\x57\x46\x58\x46\x59\x46\x5a\x00\x00\x00\x00", /* 2480 */ NULL, /* 2500 */ "\x46\x75\x43\xb7\x46\x76\x43\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x78\x00\x00\x00\x00\x43\xb9\x46\x79\x00\x00\x00\x00\x43\xe1\x46\x7a\x00\x00\x00\x00\x43\xe3\x46\x7b\x00\x00\x00\x00\x43\xe2\x46\x73\x43\xee\x00\x00\x00\x00\x43\xe9\x00\x00\x00\x00\x43\xe4\x46\x72\x43\xf0\x00\x00\x00\x00\x43\xeb\x00\x00\x00\x00\x43\xe6\x46\x71\x00\x00\x00\x00\x43\xea\x43\xef\x00\x00\x00\x00\x43\xe5\x46\x70\x00\x00\x00\x00\x43\xec\x43\xf1\x00\x00\x00\x00\x43\xe7\x46\x6f\x00\x00\x00\x00\x43\xed\x00\x00\x00\x00\x43\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x46\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x82\x00\x00\x00\x00\x46\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x83\x00\x00\x00\x00\x46\x7c\x46\x7d\x46\x7f\x46\x7e\x46\x89\x46\x8a\x46\x8b\x46\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x46\x60\x46\x61\x46\x62\x46\x63\x46\x64\x46\x65\x46\x66\x46\x67\x46\x6e\x46\x6d\x46\x6c\x46\x6b\x46\x6a\x46\x69\x46\x68\x00\x00\x00\x00\x00\x00\x00\x00\x46\x74\x46\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x85\x46\x86\x46\x88\x46\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x76\x00\x00\x00\x00\x43\x75\x00\x00\x43\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x46\xb9\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe9\x46\xea\x00\x00\x00\x00\x45\x41\x45\x42\x45\x43\x45\x44\x45\x45\x45\x46\x45\x47\x45\x48\x45\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x56\x45\x57\x45\x58\x45\x59\x45\x5a\x45\x5b\x45\x5c\x45\x5d\x45\x5e\x45\x5f\x45\x60\x45\x61\x45\x62\x45\x63\x45\x64\x45\x65\x45\x66\x45\x67\x45\x68\x45\x69\x45\x6a\x45\x6b\x45\x6c\x45\x6d\x45\x6e\x45\x6f\x45\x70\x45\x71\x45\x72\x45\x73\x45\x74\x45\x75\x45\x76\x45\x77\x45\x78\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3300 */ NULL, /* 3380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe2\x46\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xdd\x46\xde\x46\xdf\x00\x00\x00\x00\x46\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe0\x00\x00\x00\x00\x46\xcf\x46\xce\x00\x00\x00\x00\x46\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x4c\x41\x4c\x43\x00\x00\x4c\x44\x00\x00\x00\x00\x00\x00\x69\x46\x4c\x57\x4c\x55\x4c\x58\x4c\x56\x69\x47\x4c\x83\x69\x50\x69\x4e\x4c\x82\x4c\x81\x00\x00\x00\x00\x4c\xe1\x4c\xe0\x4c\xdf\x00\x00\x4c\xe2\x4c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa1\x4d\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xe3\x00\x00\x48\x42\x00\x00\x00\x00\x4c\x59\x00\x00\x4c\x84\x69\x51\x00\x00\x4c\x85\x69\x64\x4e\x8c\x6b\x52\x00\x00\x00\x00\x48\x43\x00\x00\x4c\x5a\x4c\x86\x00\x00\x4c\xe3\x69\x65\x00\x00\x00\x00\x48\x44\x00\x00\x00\x00\x69\x41\x4c\x45\x00\x00\x4c\x5c\x00\x00\x69\x48\x4c\x5d\x00\x00\x00\x00\x4c\x87\x00\x00\x4c\xe4\x4c\xe6\x4c\xe5\x00\x00\x00\x00\x4d\xa3\x4d\xa4\x00\x00\x00\x00\x4f\xe4\x00\x00\x53\xfd\x4c\x42\x00\x00\x00\x00\x69\x42\x4c\x46\x4c\x5f\x4c\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x92\x72\x6f", /* 4e80 */ "\x00\x00\x00\x00\x5b\xa9\x79\x77\x79\x78\x48\x46\x4c\x47\x00\x00\x4c\x89\x00\x00\x00\x00\x4f\xe6\x4c\x48\x69\x49\x4c\x60\x00\x00\x00\x00\x4c\x8a\x4c\x8c\x69\x52\x4c\x8d\x4c\x8b\x00\x00\x00\x00\x00\x00\x4d\xa6\x00\x00\x4f\xe7\x00\x00\x00\x00\x4f\xe8\x51\xe6\x48\x48\x4c\x61\x4c\x8e\x00\x00\x4d\xa7\x4d\xa9\x4d\xa8\x00\x00\x4e\x8d\x00\x00\x00\x00\x4f\xe9\x4f\xea\x51\xe7\x51\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x54\x41\x00\x00\x00\x00\x79\x79\x00\x00\x00\x00\x8f\x66\x4c\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x90\x4c\x8f\x69\x53\x4c\x91\x4c\x97\x00\x00\x4c\x92\x4c\x93\x69\x55\x69\x54\x4c\x95\x4c\x96\x00\x00\x4c\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe9\x4c\xea\x4c\xeb\x4c\xec\x4c\xe8\x4c\xef\x69\x6b\x00\x00\x69\x67\x69\x6a\x4c\xf0\x4d\x43\x00\x00\x69\x69\x00\x00\x4c\xed\x4c\xee\x4c\xe7\x00\x00\x00\x00\x69\x66\x69\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb6\x69\x90\x4d\xb3\x4d\xb7\x69\x9a\x69\x8e\x4d\xb4\x69\x92\x00\x00\x00\x00\x00\x00\x4d\xb5\x00\x00\x4d\xb8\x00\x00\x4d\xaa", /* 4f00 */ "\x69\x91\x4d\xb9\x69\x95\x00\x00\x69\x99\x69\x96\x00\x00\x00\x00\x69\x93\x4d\xab\x4d\xad\x4d\xba\x00\x00\x4d\xaf\x69\x8b\x4d\xb2\x4d\xb0\x4d\xb1\x69\x9b\x69\x98\x69\x8f\x4d\xae\x00\x00\x00\x00\x69\x8c\x4d\xac\x00\x00\x00\x00\x00\x00\x69\x94\x00\x00\x00\x00\x00\x00\x00\x00\x69\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x8d\x6a\x48\x00\x00\x4e\xa3\x4e\x96\x00\x00\x00\x00\x6a\x49\x4e\x93\x00\x00\x4e\xa5\x00\x00\x4e\x9b\x00\x00\x4e\x9a\x69\xfa\x4e\x9e\x4e\x99\x6a\x42\x6a\x4a\x00\x00\x6a\x46\x00\x00\x4e\x9c\x00\x00\x00\x00\x4e\x9f\x4e\x90\x4e\xa8\x69\xfc\x00\x00\x00\x00\x6b\x5e\x4e\x8e\x4e\xa4\x4e\x8f\x4e\x97\x4e\x98\x6a\x44\x69\xfd\x4e\x9d\x4e\x95\x69\xf9\x4e\x91\x6a\x47\x4e\xa6\x4e\xa9\x4e\x94\x4e\xa1\x4e\xa7\x4e\x92\x6a\x45\x4e\xa2\x6a\x4b\x69\xfb\x4e\xa0\x6a\x41\x00\x00\x00\x00\x6a\x43\x00\x00\x4f\xf8\x6b\x60\x6b\x6c\x4f\xf0\x00\x00\x6b\x6d\x4f\xeb\x4f\xf5\x00\x00\x00\x00\x4f\xee\x6b\x5a\x4f\xf6\x6b\x59\x6b\x5d\x6b\x64\x6b\x62\x50\x41\x4f\xf9\x6b\x54\x6b\x56\x4f\xfb\x4f\xef", /* 4f80 */ "\x6b\x57\x6b\x63\x6b\x6a\x4f\xf4\x6b\x5c\x6b\x55\x4f\xf3\x6b\x58\x4f\xf7\x6b\x5b\x00\x00\x4f\xf2\x00\x00\x4f\xed\x00\x00\x4f\xfc\x6b\x65\x4f\xfd\x6b\x69\x00\x00\x6b\x67\x6b\x6b\x4f\xfa\x6b\x5f\x6b\x53\x00\x00\x6b\x61\x4f\xf1\x6b\x66\x4f\xec\x6b\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf7\x51\xeb\x00\x00\x00\x00\x6d\x43\x6d\x4b\x00\x00\x51\xea\x51\xf2\x52\x41\x00\x00\x6d\x51\x6d\x4f\x6d\x4a\x00\x00\x00\x00\x00\x00\x51\xec\x6d\x50\x6d\x46\x51\xfa\x51\xf1\x51\xf9\x6d\x41\x00\x00\x6d\x4d\x00\x00\x6d\x44\x51\xf5\x6d\x45\x00\x00\x6c\xfd\x51\xfc\x51\xef\x51\xf8\x51\xee\x00\x00\x6d\x42\x6d\x47\x00\x00\x6d\x4e\x51\xf6\x51\xf3\x6d\x49\x51\xfb\x6d\x4c\x6d\x48\x51\xf0\x51\xfd\x51\xf4\x51\xed\x51\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x52\x00\x00\x54\x5b\x54\x45\x00\x00\x54\x55\x00\x00\x54\x5a\x6f\x93\x6f\x92\x6f\x97\x6f\x98\x54\x48\x00\x00\x54\x51\x00\x00\x00\x00\x00\x00\x54\x5e\x00\x00", /* 5000 */ "\x54\x52\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x8c\x54\x4b\x6f\x8d\x00\x00\x54\x60\x00\x00\x54\x57\x54\x42\x54\x43\x6f\xa0\x56\xa3\x00\x00\x54\x50\x54\x4f\x6f\x8e\x54\x53\x72\x7f\x54\x4a\x6f\x99\x54\x59\x54\x58\x54\x4e\x6f\x91\x6f\x9a\x00\x00\x6f\x8b\x54\x4d\x6f\x9b\x54\x56\x6f\x8f\x54\x44\x00\x00\x54\x47\x54\x46\x6f\x9c\x54\x54\x54\x49\x54\x5d\x54\x5f\x6f\x96\x54\x5c\x00\x00\x6f\x9e\x6f\x90\x6f\x9f\x00\x00\x6f\x94\x00\x00\x6f\x9d\x00\x00\x6f\x95\x00\x00\x00\x00\x00\x00\x00\x00\x54\x4c\x00\x00\x00\x00\x00\x00\x72\x88\x72\x7b\x00\x00\x56\x97\x00\x00\x72\x81\x72\x87\x56\x96\x72\x79\x56\x9a\x72\x7d\x72\x76\x56\x98\x72\x7a\x56\x9d\x56\xa2\x00\x00\x72\x8c\x00\x00\x72\x75\x00\x00\x56\x9e\x00\x00\x72\x8b\x00\x00\x00\x00\x56\x99\x72\x7c\x56\x95\x72\x77\x72\x73\x72\x82\x72\x74\x72\x72\x72\x7e\x72\x85\x72\x86\x56\x9b\x00\x00\x00\x00\x75\xc0\x72\x83\x72\x71\x72\x84\x00\x00\x56\xa5\x72\x89\x56\xa4\x72\x70\x00\x00\x72\x78\x72\x8a\x56\xa0\x56\x9f\x56\x9c\x56\xa1\x00\x00\x00\x00\x56\x93\x00\x00\x00\x00\x56\x94\x00\x00\x00\x00", /* 5080 */ "\x59\x4e\x00\x00\x75\xc3\x75\xbc\x00\x00\x59\x4b\x00\x00\x75\xc4\x00\x00\x00\x00\x00\x00\x75\xba\x75\xbd\x59\x4a\x75\xbe\x00\x00\x00\x00\x59\x4d\x75\xc2\x00\x00\x75\xb8\x75\xb7\x59\x4f\x00\x00\x59\x50\x59\x4c\x59\x51\x75\xb6\x75\xc1\x75\xbf\x75\xb9\x00\x00\x00\x00\x00\x00\x59\x49\x75\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb0\x5b\xaa\x79\x7d\x5b\xb3\x79\x84\x79\x87\x5b\xac\x5b\xad\x79\x81\x5b\xab\x79\x8a\x5b\xb1\x79\x8b\x00\x00\x79\x86\x5b\xb2\x00\x00\x79\x7a\x5b\xaf\x79\x7b\x00\x00\x79\x85\x79\x83\x00\x00\x79\x7e\x5b\xae\x79\x7c\x5b\xb4\x79\x82\x79\x89\x79\x7f\x79\x88\x00\x00\x00\x00\x5d\xfb\x5d\xf8\x00\x00\x5d\xf9\x00\x00\x7d\x43\x7c\xf8\x5d\xf7\x5d\xf4\x7c\xf9\x00\x00\x00\x00\x5d\xf6\x7c\xfc\x00\x00\x7d\x41\x00\x00\x00\x00\x7d\x48\x00\x00\x00\x00\x7d\x47\x7d\x42\x5d\xf3\x7c\xf7\x5d\xf1\x7c\xfa\x5d\xfc\x7c\xfd\x00\x00\x7d\x44\x5d\xf5\x5d\xf2\x7d\x46\x7d\x45\x5d\xfa\x00\x00\x7c\xfb\x00\x00\x60\x42\x80\x76\x00\x00\x80\x73\x60\x43\x00\x00\x60\x41\x00\x00\x80\x7a\x80\x77\x80\x70", /* 5100 */ "\x5f\xfd\x00\x00\x60\x44\x80\x71\x5f\xfc\x60\x47\x80\x74\x80\x75\x60\x45\x60\x46\x80\x7b\x80\x78\x80\x79\x00\x00\x00\x00\x00\x00\x62\x53\x83\xc3\x62\x50\x83\xc0\x62\x52\x62\x54\x00\x00\x83\xc1\x62\x51\x00\x00\x83\xc2\x00\x00\x83\xbf\x00\x00\x00\x00\x63\xc0\x86\xc8\x63\xc1\x86\xc6\x00\x00\x86\xc7\x86\xc5\x86\xc4\x00\x00\x00\x00\x86\xc9\x63\xbf\x00\x00\x00\x00\x89\x65\x89\x66\x00\x00\x80\x72\x89\x64\x63\xc2\x66\x4b\x8b\x5a\x8b\x5b\x00\x00\x67\x83\x67\x84\x8e\x70\x8e\x6f\x67\xd7\x67\xd6\x90\x41\x00\x00\x4c\x4a\x4c\x62\x4c\x99\x00\x00\x4c\x98\x4c\xf2\x4c\xf1\x4d\xbd\x4d\xbc\x4d\xbe\x4d\xbb\x00\x00\x4e\xab\x4e\xaa\x4e\xac\x00\x00\x00\x00\x00\x00\x00\x00\x50\x43\x00\x00\x50\x42\x50\x44\x00\x00\x52\x42\x00\x00\x46\xf1\x6f\xa1\x46\xf2\x56\xa6\x46\xf4\x46\xf3\x75\xc5\x00\x00\x46\xf5\x5d\xfd\x46\xf6\x00\x00\x4c\x4b\x00\x00\x4c\x9a\x4d\xbf\x50\x45\x00\x00\x4c\x4c\x4c\x9d\x4c\x9b\x4c\x9c\x00\x00\x00\x00\x4d\xc0\x00\x00\x00\x00\x00\x00\x4e\xad\x50\x47\x50\x46\x50\x48\x00\x00\x00\x00\x00\x00\x54\x61\x00\x00\x00\x00\x00\x00", /* 5180 */ "\x62\x55\x00\x00\x48\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4f\x00\x00\x4c\xf3\x4c\xf4\x00\x00\x00\x00\x4d\xc1\x00\x00\x6a\x4c\x00\x00\x52\x44\x52\x43\x6f\xa3\x6f\xa2\x56\xa7\x48\x4e\x4c\x9e\x69\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x6e\x00\x00\x52\x45\x00\x00\x54\x64\x00\x00\x54\x62\x54\x63\x00\x00\x00\x00\x00\x00\x00\x00\x62\x56\x48\x4f\x4c\xf5\x00\x00\x00\x00\x00\x00\x4d\xc2\x69\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xae\x4e\xaf\x00\x00\x6a\x4d\x00\x00\x00\x00\x6b\x6f\x50\x49\x6b\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xa5\x6f\xa6\x54\x67\x00\x00\x6f\xa7\x00\x00\x6f\xa4\x54\x68\x54\x66\x54\x65\x6f\xa8\x00\x00\x72\x8d\x00\x00\x00\x00\x00\x00\x75\xc6\x00\x00\x00\x00\x79\x8c\x7d\x49\x00\x00\x00\x00\x00\x00\x60\x48\x62\x57\x83\xc4\x00\x00\x4c\x4d\x4c\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xa8\x59\x53\x00\x00\x5e\x41\x00\x00\x69\x43\x4c\x9f\x00\x00\x4c\xf8\x4c\xf6\x4c\xf7\x00\x00\x00\x00\x50\x4a\x00\x00\x00\x00", /* 5200 */ "\x4c\x4e\x4c\x4f\x00\x00\x4c\x63\x00\x00\x00\x00\x4c\xa0\x4c\xa1\x4c\xa2\x69\x9e\x4c\xf9\x00\x00\x69\x6c\x00\x00\x4d\xc6\x00\x00\x69\x9f\x4d\xc4\x4d\xc5\x69\x9d\x00\x00\x00\x00\x4d\xc7\x4d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x4e\x51\xce\x6a\x4f\x00\x00\x00\x00\x6a\x50\x00\x00\x00\x00\x4e\xb1\x4e\xb0\x00\x00\x00\x00\x4e\xb4\x4e\xb2\x4e\xb3\x00\x00\x00\x00\x00\x00\x50\x50\x00\x00\x50\x4f\x6b\x75\x6b\x72\x6b\x73\x00\x00\x6b\x71\x50\x51\x50\x4d\x50\x4c\x00\x00\x50\x4e\x50\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x52\x00\x00\x52\x47\x6d\x53\x00\x00\x6b\x74\x52\x4c\x00\x00\x6d\x54\x52\x48\x52\x4b\x52\x4a\x52\x49\x52\x46\x00\x00\x00\x00\x00\x00\x6f\xab\x00\x00\x54\x6b\x6f\xae\x54\x69\x00\x00\x00\x00\x00\x00\x6f\xaa\x54\x6c\x54\x6a\x54\x6d\x6f\xac\x6f\xad\x00\x00\x6f\xa9\x6f\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x57\x56\xa9\x72\x8e\x72\x90\x72\x8f\x72\x91\x56\xaa\x00\x00\x00\x00\x59\x54\x00\x00\x59\x55\x59\x56\x00\x00\x5b\xb6\x79\x8e\x00\x00\x79\x8d\x79\x8f\x79\x90\x5b\xb7\x00\x00\x5b\xb5", /* 5280 */ "\x7d\x4a\x7d\x4b\x5e\x43\x5e\x42\x7e\xe2\x00\x00\x00\x00\x60\x49\x60\x4a\x60\x4b\x60\x4d\x80\x7c\x80\x7d\x60\x4c\x00\x00\x00\x00\x00\x00\x62\x58\x00\x00\x62\x59\x00\x00\x00\x00\x8b\x5c\x8e\x72\x8e\x71\x90\x42\x00\x00\x4c\x50\x00\x00\x00\x00\x00\x00\x4c\xfb\x4c\xfa\x00\x00\x00\x00\x4d\xc8\x00\x00\x00\x00\x69\xa0\x00\x00\x00\x00\x4e\xb6\x4e\xb7\x4e\xb5\x4e\xb8\x6a\x51\x6a\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x54\x6b\x76\x00\x00\x50\x53\x00\x00\x6d\x55\x52\x50\x6d\x56\x52\x4f\x00\x00\x00\x00\x00\x00\x52\x4d\x00\x00\x52\x4e\x00\x00\x00\x00\x00\x00\x6f\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x56\xab\x72\x93\x00\x00\x56\xae\x72\x92\x57\xaa\x56\xad\x56\xac\x00\x00\x59\x5a\x00\x00\x59\x59\x59\x58\x5b\xb8\x00\x00\x00\x00\x5b\xbb\x5b\xbc\x5b\xba\x00\x00\x5b\xb9\x00\x00\x00\x00\x7d\x4c\x00\x00\x7d\x4d\x00\x00\x00\x00\x00\x00\x80\x7f\x60\x4e\x80\x7e\x00\x00\x62\x5a\x86\xca\x63\xc3\x00\x00\x8b\x5d\x66\xdf\x48\x54\x4c\x64\x4c\xa3\x69\x57\x00\x00\x4c\xa4\x4c\xa5", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xfc\x4c\xfd\x00\x00\x4d\xc9\x6a\x53\x6b\x77\x6b\x78\x00\x00\x52\x51\x6f\xb1\x56\xb0\x56\xaf\x75\xc8\x75\xc7\x00\x00\x00\x00\x4c\x51\x4c\xa6\x4d\x41\x00\x00\x56\xb1\x69\x44\x00\x00\x69\x6d\x4d\x42\x00\x00\x69\xa2\x4d\xcb\x4d\xca\x69\xa1\x4e\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6e\x00\x00\x00\x00\x72\x94\x00\x00\x5b\xbd\x7d\x4e\x5e\x44\x00\x00\x00\x00\x83\xc5\x00\x00\x00\x00\x8c\xeb\x48\x57\x4c\xa7\x00\x00\x00\x00\x6b\x79\x6d\x57\x56\xb4\x56\xb2\x56\xb3\x4c\x52\x00\x00\x4c\x65\x45\x4b\x4c\xaa\x00\x00\x4c\xa9\x4c\xa8\x4d\x45\x4d\x44\x00\x00\x69\x6e\x69\xa3\x00\x00\x00\x00\x00\x00\x50\x58\x50\x55\x50\x57\x50\x56\x00\x00\x00\x00\x52\x52\x00\x00\x00\x00\x59\x5b\x00\x00\x4c\x53\x00\x00\x4c\xab\x00\x00\x4d\x47\x4d\x46\x00\x00\x6a\x54\x00\x00\x00\x00\x50\x59\x00\x00\x00\x00\x48\x5a\x00\x00\x00\x00\x69\x58\x00\x00\x4d\x49\x4d\x48\x4d\xcc\x4d\xcd\x6a\x55\x4e\xba\x00\x00\x4e\xbb\x00\x00\x50\x5a\x50\x5b\x50\x5c\x00\x00\x52\x53\x6d\x58\x00\x00\x00\x00\x54\x6f", /* 5380 */ "\x00\x00\x00\x00\x69\x45\x00\x00\x4c\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xa4\x00\x00\x00\x00\x00\x00\x6a\x56\x6a\x57\x00\x00\x00\x00\x6b\x7a\x00\x00\x6b\x7b\x00\x00\x6d\x5a\x6d\x59\x6d\x5c\x6d\x5b\x52\x54\x00\x00\x72\x95\x54\x71\x6f\xb2\x54\x70\x00\x00\x00\x00\x00\x00\x00\x00\x75\xc9\x59\x5c\x00\x00\x75\xca\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x4f\x5e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4f\x00\x00\x8b\x5e\x00\x00\x48\x5c\x00\x00\x00\x00\x69\x59\x00\x00\x4d\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x54\x4c\x66\x4c\xae\x4c\xad\x00\x00\x4c\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x50\x5d\x50\x5f\x00\x00\x00\x00\x00\x00\x52\x55\x00\x00\x00\x00\x00\x00\x54\x72\x00\x00\x83\xc6\x65\x5a\x4c\x67\x4d\x4c\x4d\x5b\x4d\x56\x00\x00\x4d\x51\x4d\x50\x4d\x57\x4d\x55\x4d\x4e\x4d\x5c\x4d\x4f\x4d\x4b\x4d\x5a\x4d\x59\x4d\x58\x4d\x4d\x00\x00\x4d\x54\x00\x00\x00\x00\x4d\x53\x00\x00\x00\x00\x4d\x5d\x4d\x52\x00\x00\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x4d\xd3\x00\x00\x4d\xd9\x4d\xd5\x00\x00\x4d\xdb\x69\xa5\x4d\xd8\x4d\xce\x4d\xd1\x4d\xd4\x4d\xd0\x4d\xd7\x4d\xda\x4d\xcf\x4d\xd2\x4d\xd6\x4d\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x60\x6a\x5d\x00\x00\x4e\xc8\x6a\x5e\x4e\xbc\x4e\xbe\x4e\xd6\x4e\xd1\x00\x00\x00\x00\x00\x00\x6a\x65\x6a\x5f\x4e\xc0\x4e\xc2\x6a\x64\x4e\xc9\x6a\x5a\x4e\xd5\x4e\xd7\x4e\xbd\x4e\xce\x00\x00\x6a\x58\x4e\xd4\x00\x00\x4e\xc5\x00\x00\x4e\xcf\x4e\xd0\x6a\x59\x4e\xcd\x4e\xcb\x00\x00\x4e\xcc\x4e\xd2\x6a\x61\x4e\xbf\x00\x00\x4e\xd3\x6a\x63\x4e\xc7\x4e\xc4\x00\x00\x6a\x5c\x4e\xc3\x6a\x66\x4e\xc6\x00\x00\x4e\xca\x00\x00\x00\x00\x00\x00\x4e\xc1\x6a\x62\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x8d\x6b\x8c\x50\x71\x6b\x8f\x6b\x91\x6b\x86\x6b\x89\x6b\x90\x50\x72\x00\x00\x00\x00\x6b\x83\x6b\x87\x00\x00\x00\x00\x6b\x8b\x6d\x6b\x50\x6d\x6d\x6f\x50\x60\x6b\x88\x50\x61\x50\x6e\x50\x67\x50\x63\x00\x00\x6b\x84\x50\x66\x50\x6b\x50\x74\x6b\x85\x6b\x7d", /* 5480 */ "\x50\x65\x6b\x7e\x6b\x81\x00\x00\x50\x68\x00\x00\x50\x6a\x6b\x7c\x6b\x82\x00\x00\x00\x00\x50\x73\x50\x6f\x6b\x8a\x50\x75\x00\x00\x50\x6c\x6b\x7f\x50\x69\x00\x00\x00\x00\x50\x64\x50\x62\x00\x00\x6b\x8e\x00\x00\x50\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x6a\x6d\x5e\x6d\x6d\x00\x00\x00\x00\x6d\x60\x52\x5c\x52\x6a\x52\x58\x52\x69\x52\x61\x52\x66\x52\x56\x6d\x5f\x6d\x65\x52\x65\x6d\x71\x52\x67\x00\x00\x52\x5d\x00\x00\x00\x00\x6d\x67\x6d\x64\x52\x5b\x00\x00\x6d\x5d\x52\x68\x6d\x6c\x52\x60\x6d\x6e\x52\x6b\x52\x57\x52\x62\x52\x5f\x6d\x62\x52\x63\x6d\x68\x6d\x69\x52\x5e\x52\x64\x52\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x52\x59\x6d\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x70\x00\x00\x6f\xc6\x54\x7f\x6f\xb4\x00\x00\x6f\xb9\x54\x78\x54\x84\x6f\xb7\x54\x73\x54\x7d\x54\x83\x6f\xbe\x00\x00\x54\x7e\x54\x82\x00\x00\x00\x00\x6f\xc1\x54\x79\x6f\xb8\x00\x00\x00\x00\x00\x00\x6f\xc4\x6f\xc5\x00\x00\x54\x7b\x6f\xc3\x54\x77\x54\x87\x00\x00\x6f\xbb", /* 5500 */ "\x00\x00\x54\x75\x00\x00\x6f\xc8\x6f\xbc\x6f\xc0\x54\x7a\x54\x86\x6f\xbd\x54\x81\x6f\xc2\x6f\xc9\x72\xa4\x00\x00\x6f\xc7\x54\x88\x54\x74\x6f\xbf\x6f\xb6\x00\x00\x54\x7c\x00\x00\x00\x00\x6f\xb5\x00\x00\x00\x00\x6f\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xb3\x54\x85\x00\x00\x00\x00\x72\x9c\x00\x00\x56\xc8\x72\xaa\x56\xc6\x56\xc3\x72\xa1\x56\xbf\x72\xa5\x56\xca\x72\x9b\x72\xa0\x72\x9f\x54\x76\x56\xc5\x72\xa8\x00\x00\x72\xab\x72\x98\x00\x00\x59\x6e\x00\x00\x72\xac\x56\xcb\x00\x00\x56\xbd\x56\xba\x72\xa3\x56\xb7\x00\x00\x72\xa9\x00\x00\x56\xbe\x72\xad\x00\x00\x72\x99\x72\xa7\x56\xc1\x72\x9a\x72\x9d\x72\xa2\x00\x00\x00\x00\x56\xc2\x56\xc0\x56\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc7\x00\x00\x56\xbb\x57\x97\x00\x00\x56\xbc\x72\x9e\x56\xc9\x56\xc4\x72\xa6\x56\xb9\x00\x00\x00\x00\x00\x00\x56\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x96\x72\x97\x75\xcf\x00\x00\x00\x00\x00\x00\x59\x5d\x59\x60\x75\xda\x59\x74\x75\xdd", /* 5580 */ "\x59\x5e\x75\xd6\x59\x64\x59\x6a\x5a\xc2\x00\x00\x00\x00\x59\x68\x75\xd3\x59\x75\x59\x61\x59\x69\x75\xdb\x79\x9e\x75\xe0\x75\xd4\x00\x00\x75\xcb\x75\xd8\x75\xd2\x59\x67\x75\xde\x00\x00\x00\x00\x59\x63\x59\x77\x59\x70\x00\x00\x59\x65\x59\x62\x00\x00\x59\x6d\x00\x00\x75\xdf\x75\xd1\x75\xd7\x75\xd9\x75\xcd\x75\xdc\x59\x5f\x75\xcc\x00\x00\x59\x66\x59\x76\x59\x72\x75\xce\x59\x6c\x00\x00\x00\x00\x59\x73\x59\x6f\x59\x6b\x00\x00\x75\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x71\x00\x00\x00\x00\x00\x00\x79\x9c\x79\x98\x00\x00\x79\xa7\x79\x91\x79\x9a\x5b\xcb\x5b\xcc\x5b\xc4\x79\xa3\x5b\xce\x79\x96\x79\x95\x79\x93\x79\xa5\x5b\xc2\x79\x9f\x79\x94\x5b\xc5\x79\x9d\x5b\xc0\x79\x99\x79\xa0\x79\xa2\x00\x00\x00\x00\x79\xa6\x5b\xc9\x79\x92\x5b\xc3\x79\x97\x00\x00\x5b\xbe\x00\x00\x5b\xca\x79\xa1\x5b\xc6\x5b\xc7\x5b\xcd\x5b\xc1\x46\xf7\x5b\xbf\x79\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc8\x00\x00\x00\x00\x79\xa4\x00\x00\x00\x00\x00\x00\x5e\x55\x5e\x50\x00\x00\x7d\x5e\x7d\x5a\x00\x00\x7d\x54\x5e\x4a\x5e\x46\x7d\x5d", /* 5600 */ "\x5e\x47\x7d\x57\x7d\x59\x00\x00\x7d\x5c\x00\x00\x5e\x4c\x00\x00\x5e\x53\x5e\x4d\x00\x00\x00\x00\x7d\x52\x5e\x4e\x5e\x4f\x7d\x55\x5e\x54\x00\x00\x7d\x53\x7d\x58\x5e\x4b\x7d\x51\x5e\x51\x5e\x49\x00\x00\x00\x00\x00\x00\x5e\x48\x7d\x56\x7d\x5b\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x50\x00\x00\x60\x56\x80\x91\x00\x00\x80\x8e\x00\x00\x60\x50\x60\x5c\x60\x5d\x00\x00\x60\x53\x80\x8c\x60\x55\x80\x84\x60\x5b\x00\x00\x80\x90\x60\x52\x80\x92\x60\x51\x00\x00\x80\x8d\x80\x8f\x60\x54\x80\x8b\x80\x85\x80\x82\x00\x00\x00\x00\x75\xd0\x80\x88\x00\x00\x80\x81\x80\x87\x80\x86\x00\x00\x80\x83\x00\x00\x60\x58\x00\x00\x00\x00\x00\x00\x00\x00\x60\x57\x00\x00\x00\x00\x00\x00\x60\x59\x80\x89\x62\x5b\x80\x8a\x00\x00\x00\x00\x00\x00\x83\xcf\x00\x00\x83\xc8\x00\x00\x62\x67\x83\xcc\x62\x5f\x62\x63\x83\xcb\x00\x00\x62\x62\x62\x5e\x62\x61\x62\x5c\x62\x66\x83\xcd\x83\xc9\x62\x65\x83\xc7\x62\x64\x83\xce\x83\xca\x60\x5a\x00\x00\x62\x68\x83\xd0\x62\x60\x62\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x86\xd1\x86\xd3", /* 5680 */ "\x63\xc5\x86\xd4\x86\xd2\x86\xd0\x86\xcf\x63\xc7\x86\xce\x63\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x86\xcc\x86\xcd\x63\xc4\x63\xc9\x63\xc6\x00\x00\x00\x00\x86\xcb\x00\x00\x65\x5b\x00\x00\x89\x69\x89\x67\x89\x6c\x89\x6a\x00\x00\x89\x68\x89\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4c\x8b\x61\x8b\x62\x66\xe0\x00\x00\x8b\x63\x8b\x5f\x8b\x64\x8b\x60\x65\x5c\x00\x00\x00\x00\x00\x00\x8c\xec\x8c\xee\x66\xe3\x8c\xed\x66\xe2\x66\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe4\x8e\x74\x8e\x75\x00\x00\x67\x86\x67\x85\x67\x87\x8e\x73\x00\x00\x8f\x68\x8f\x67\x00\x00\x67\xd8\x67\xda\x67\xd9\x8f\x69\x68\x54\x90\xb5\x00\x00\x00\x00\x00\x00\x68\x7d\x00\x00\x90\xb4\x90\xfd\x00\x00\x00\x00\x69\x4a\x00\x00\x00\x00\x4d\x5f\x4d\x5e\x00\x00\x4d\xdf\x4d\xde\x69\xa7\x4d\xdd\x69\xa6\x00\x00\x00\x00\x4e\xda\x6a\x69\x00\x00\x6a\x68\x00\x00\x00\x00\x4e\xd8\x4e\xdb\x00\x00\x00\x00\x6a\x67\x00\x00\x4e\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x92\x00\x00\x6b\x93\x50\x76\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6c", /* 5700 */ "\x00\x00\x6f\xca\x6f\xcb\x54\x89\x54\x8a\x00\x00\x00\x00\x72\xaf\x56\xcd\x56\xcf\x72\xae\x56\xce\x75\xe1\x59\x78\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcf\x5b\xd0\x79\xa8\x00\x00\x5e\x57\x00\x00\x5e\x56\x00\x00\x80\x93\x83\xd2\x83\xd1\x00\x00\x91\x7c\x4c\x68\x69\x5a\x00\x00\x69\x6f\x69\x70\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe2\x4d\xe6\x69\xa9\x00\x00\x4d\xe4\x4d\xe3\x69\xa8\x4d\xe5\x4d\xe1\x00\x00\x00\x00\x4d\xe0\x69\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xe5\x00\x00\x00\x00\x4e\xe2\x00\x00\x4e\xde\x6a\x6a\x00\x00\x00\x00\x00\x00\x6a\x6b\x00\x00\x4e\xe0\x00\x00\x6a\x6d\x4e\xdc\x6a\x6e\x6a\x6c\x4e\xdf\x4e\xe1\x4e\xe4\x4e\xe3\x4e\xdd\x6a\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x7b\x6b\xa0\x00\x00\x50\x7d\x00\x00\x50\x7c\x00\x00\x6b\xa1\x50\x7a\x50\x79\x6b\x97\x00\x00\x6b\x96\x00\x00\x6b\x94\x6b\x99\x6b\x98\x6b\x95\x6b\x9e\x6b\x9f\x6b\x9c\x6b\x9a\x50\x78\x00\x00\x00\x00\x00\x00\x6b\x9d\x50\x7e\x6b\xa2\x00\x00\x00\x00", /* 5780 */ "\x6b\x9b\x00\x00\x52\x6d\x50\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6e\x6d\x76\x00\x00\x00\x00\x6d\x7c\x00\x00\x00\x00\x00\x00\x52\x74\x6d\x7a\x6d\x81\x00\x00\x6d\x77\x6d\x7b\x6d\x7d\x6d\x7f\x6d\x79\x00\x00\x6d\x78\x6d\x73\x6d\x74\x52\x6f\x00\x00\x52\x71\x52\x70\x6d\x75\x6d\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x72\x6f\xd5\x00\x00\x6f\xd4\x6f\xd9\x6f\xd0\x00\x00\x6f\xd3\x6f\xd2\x00\x00\x6f\xd6\x00\x00\x6f\xda\x54\x8b\x54\x8e\x00\x00\x00\x00\x6f\xd1\x6f\xd7\x00\x00\x00\x00\x00\x00\x54\x8d\x6f\xcc\x00\x00\x52\x72\x72\xbd\x6f\xd8\x00\x00\x6f\xcf\x00\x00\x54\x8c\x6f\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\xb4\x00\x00\x00\x00\x56\xd0\x56\xd4\x72\xc4\x72\xb2\x72\xc0\x56\xd5\x72\xc2\x00\x00\x72\xc8\x00\x00\x72\xcc\x00\x00\x00\x00\x72\xc3\x72\xb7\x72\xbf\x00\x00\x72\xcd\x72\xcb\x72\xc1\x72\xbc\x72\xb5\x75\xe9\x72\xb3\x56\xd9\x72\xba\x56\xda\x56\xd6\x72\xb0\x72\xc6\x72\xb8\x00\x00\x00\x00", /* 5800 */ "\x72\xb6\x72\xc9\x56\xd7\x00\x00\x72\xcf\x56\xd1\x56\xd3\x72\xbe\x72\xb9\x54\x8f\x56\xd2\x72\xbb\x72\xca\x72\xce\x72\xc5\x00\x00\x72\xc7\x00\x00\x00\x00\x00\x00\x72\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe4\x00\x00\x75\xed\x75\xec\x59\x81\x75\xe5\x00\x00\x59\x82\x59\x7f\x00\x00\x75\xe7\x59\x7c\x75\xeb\x00\x00\x75\xe6\x75\xe8\x75\xe2\x59\x7a\x00\x00\x75\xf5\x75\xf4\x75\xf1\x59\x79\x59\x7d\x59\x7e\x6f\xcd\x75\xee\x59\x7b\x56\xd8\x75\xf0\x75\xe3\x75\xf3\x75\xf2\x00\x00\x75\xf6\x00\x00\x79\xb6\x00\x00\x75\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xea\x79\xae\x5b\xda\x5b\xdd\x5b\xd8\x79\xad\x79\xb1\x79\xac\x00\x00\x5b\xd2\x5b\xdc\x79\xa9\x5b\xd6\x79\xb0\x00\x00\x5b\xd4\x5b\xd3\x79\xb3\x5b\xd5\x79\xb5\x00\x00\x79\xb2\x5b\xd1\x00\x00\x00\x00\x00\x00\x5b\xdb\x79\xb7\x79\xab\x79\xb4\x00\x00\x00\x00\x79\xaa\x00\x00\x00\x00\x5b\xd7\x00\x00\x5b\xd9\x00\x00\x79\xaf\x00\x00\x79\xb8\x00\x00\x00\x00\x7d\x66\x5e\x58\x7d\x6c\x00\x00\x00\x00\x5e\x5d\x7d\x68\x7d\x6f\x7d\x60\x5e\x5f\x5e\x59\x7d\x65", /* 5880 */ "\x60\x5e\x7d\x64\x7d\x6d\x5e\x5a\x00\x00\x5e\x5e\x7d\x63\x7d\x69\x7d\x6e\x7d\x5f\x5e\x5c\x7d\x67\x00\x00\x00\x00\x7d\x6b\x7d\x71\x7d\x61\x7d\x6a\x00\x00\x5e\x5b\x7d\x70\x00\x00\x00\x00\x00\x00\x7d\x62\x00\x00\x00\x00\x00\x00\x60\x62\x80\x95\x60\x60\x60\x5f\x80\x97\x80\x9c\x00\x00\x80\x98\x00\x00\x80\x9b\x60\x65\x00\x00\x62\x4e\x60\x64\x00\x00\x80\x94\x80\x9a\x00\x00\x60\x63\x80\x99\x00\x00\x80\x96\x00\x00\x60\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\xd7\x00\x00\x83\xd9\x83\xd4\x62\x6a\x83\xd6\x00\x00\x62\x69\x83\xd8\x00\x00\x00\x00\x62\x6c\x83\xda\x62\x6b\x83\xd3\x83\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcd\x86\xd7\x00\x00\x63\xcc\x86\xd8\x63\xcb\x86\xd6\x63\xca\x86\xd5\x00\x00\x65\x5e\x65\x5d\x8b\x65\x8b\x67\x00\x00\x8b\x66\x66\x4d\x66\x4e\x00\x00\x00\x00\x66\x4f\x8c\xef\x66\xe5\x00\x00\x00\x00\x90\x44\x90\x43\x68\x7e\x00\x00\x4c\x69\x4c\xb0\x00\x00\x00\x00\x4e\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x82\x00\x00\x00\x00\x00\x00\x00\x00\x59\x83\x59\x84\x00\x00\x79\xb9\x5e\x60\x7d\x72\x80\x9d", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x69\x5b\x00\x00\x00\x00\x6a\x70\x00\x00\x00\x00\x00\x00\x48\x62\x00\x00\x6b\xa3\x6d\x83\x6f\xdb\x54\x90\x00\x00\x00\x00\x8b\x68\x00\x00\x67\x88\x4c\x6a\x4d\x60\x69\x71\x00\x00\x4d\xe7\x4d\xe8\x00\x00\x50\x7f\x00\x00\x00\x00\x00\x00\x56\xdb\x00\x00\x5e\x62\x00\x00\x5e\x63\x5e\x61\x00\x00\x4c\x6b\x00\x00\x4c\xb1\x4c\xb3\x4c\xb2\x69\x5c\x4c\xb4\x4d\x61\x69\x72\x00\x00\x4d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe9\x4d\xea\x00\x00\x00\x00\x00\x00\x69\xab\x00\x00\x4e\xe7\x00\x00\x6a\x71\x00\x00\x00\x00\x00\x00\x50\x84\x6b\xa4\x00\x00\x50\x82\x50\x83\x50\x81\x6f\xdc\x00\x00\x00\x00\x00\x00\x52\x78\x52\x77\x52\x79\x52\x76\x00\x00\x6d\x84\x50\x85\x52\x75\x00\x00\x54\x91\x54\x92\x00\x00\x54\x93\x00\x00\x72\xd0\x00\x00\x00\x00\x00\x00\x59\x85\x75\xf7\x56\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xde\x00\x00\x5e\x65\x5e\x64\x7d\x73\x00\x00\x60\x66\x62\x6d\x00\x00\x89\x6d\x8f\x6a\x90\x45\x4c\x6c\x4d\x63\x00\x00\x4d\x64\x69\xb1\x4d\xec\x4d\xef\x00\x00\x69\xaf\x69\xad\x4d\xee\x69\xb0\x69\xb2", /* 5980 */ "\x69\xac\x4d\xf1\x4d\xf0\x4d\xed\x4d\xeb\x69\xae\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf2\x00\x00\x00\x00\x4e\xef\x6a\x76\x6a\x79\x6a\x78\x00\x00\x4e\xe9\x4e\xf1\x00\x00\x00\x00\x4e\xee\x6a\x75\x6a\x73\x4e\xed\x00\x00\x00\x00\x00\x00\x4e\xe8\x4e\xeb\x00\x00\x6a\x74\x6a\x7b\x6a\x77\x4e\xec\x4e\xf0\x4e\xf3\x6a\x72\x6a\x7a\x4e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8a\x50\x92\x00\x00\x6b\xb0\x6b\xa9\x50\x93\x6b\xb4\x6b\xa5\x6b\xac\x00\x00\x00\x00\x50\x89\x6b\xa6\x50\x87\x6b\xad\x6b\xb1\x50\x86\x00\x00\x6b\xb2\x6b\xab\x00\x00\x6b\xae\x00\x00\x50\x95\x50\x8c\x6b\xb5\x6b\xb3\x00\x00\x50\x91\x50\x8f\x6b\xaa\x50\x8e\x6b\xa8\x6b\xa7\x50\x8d\x50\x8b\x50\x94\x50\x90\x50\x88\x00\x00\x6b\xaf\x00\x00\x52\x7b\x00\x00\x52\x83\x6d\x92\x52\x7a\x6d\x8a\x6d\x86\x00\x00\x6d\x96\x6d\x85\x00\x00\x52\x7d\x6d\x8f\x52\x81\x52\x84\x00\x00\x52\x7e\x6d\x93\x52\x82\x00\x00\x54\x9a\x6d\x99\x6d\x87\x00\x00\x00\x00\x6d\x89\x6d\x90\x6d\x94\x6d\x98\x6d\x95\x6d\x8e\x6d\x91\x00\x00\x00\x00\x6d\x8b\x52\x86\x6d\x8d\x6d\x8c\x6d\x97\x52\x7c", /* 5a00 */ "\x6d\x88\x52\x85\x00\x00\x52\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa0\x6f\xe4\x00\x00\x54\x9f\x00\x00\x00\x00\x6f\xe2\x00\x00\x54\x94\x00\x00\x54\x99\x00\x00\x6f\xe1\x6f\xde\x6f\xe3\x54\x95\x6f\xdd\x00\x00\x54\x98\x54\x96\x00\x00\x6f\xe5\x54\x97\x54\x9b\x00\x00\x00\x00\x54\x9c\x00\x00\x54\x9e\x00\x00\x00\x00\x00\x00\x54\x9d\x00\x00\x00\x00\x00\x00\x6f\xdf\x6f\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xe6\x00\x00\x72\xd7\x56\xdd\x76\x48\x72\xd6\x72\xe9\x00\x00\x00\x00\x56\xe3\x00\x00\x72\xe7\x00\x00\x56\xe2\x56\xde\x72\xf0\x72\xe0\x72\xe3\x00\x00\x56\xe6\x72\xed\x72\xe5\x56\xdf\x56\xe7\x00\x00\x72\xea\x72\xe8\x00\x00\x00\x00\x72\xd9\x72\xee\x72\xe2\x72\xdd\x00\x00\x72\xd3\x72\xef\x72\xdf\x72\xd2\x00\x00\x56\xe5\x72\xe4\x72\xf1\x72\xe1\x72\xd5\x72\xda\x72\xd1\x00\x00\x56\xe4\x00\x00\x72\xde\x72\xdb\x56\xe0\x72\xd4\x00\x00\x72\xec\x56\xe1\x00\x00\x72\xdc\x72\xd8\x00\x00\x00\x00\x72\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x86\x76\x41\x00\x00\x75\xfb\x76\x4f\x76\x43\x76\x50\x00\x00\x59\x88", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x76\x4c\x76\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x4a\x76\x4d\x76\x51\x00\x00\x72\xe6\x76\x53\x79\xcd\x00\x00\x59\x89\x76\x54\x75\xf9\x76\x46\x00\x00\x76\x4b\x00\x00\x00\x00\x59\x87\x59\x8a\x76\x52\x76\x55\x75\xfd\x75\xfa\x00\x00\x00\x00\x75\xfc\x00\x00\x00\x00\x76\x44\x76\x42\x59\x8b\x00\x00\x76\x4e\x00\x00\x00\x00\x76\x45\x00\x00\x76\x47\x75\xf8\x79\xc1\x79\xbf\x5b\xe7\x5b\xe5\x79\xc9\x79\xc0\x79\xca\x79\xc6\x79\xbe\x79\xcc\x79\xbd\x79\xc4\x5b\xe4\x5b\xe3\x5b\xe2\x79\xc2\x79\xc7\x5b\xdf\x5b\xe6\x00\x00\x79\xbb\x00\x00\x79\xc5\x79\xba\x79\xc3\x5b\xe0\x79\xc8\x79\xbc\x5b\xe1\x79\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x77\x5e\x6a\x5e\x69\x5e\x6b\x7d\x84\x7d\x79\x7d\x7f\x7d\x74\x7d\x83\x7d\x82\x7d\x86\x7d\x7e\x5e\x66\x7d\x7d\x5e\x6c\x00\x00\x7d\x76\x5e\x67\x00\x00\x7d\x85\x5e\x68\x7d\x78\x7d\x7b\x7d\x81\x7d\x7a\x7d\x75\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x7c\x80\x9f\x60\x6a\x80\xa2\x80\xa1\x80\xa4\x80\xa6\x00\x00\x60\x68\x00\x00\x80\xa0\x00\x00\x80\x9e", /* 5b00 */ "\x00\x00\x80\xa7\x80\xa5\x80\xa3\x00\x00\x80\xa9\x00\x00\x80\xa8\x60\x6c\x60\x67\x00\x00\x60\x69\x60\x6b\x00\x00\x00\x00\x80\xaa\x83\xe1\x00\x00\x00\x00\x83\xe0\x83\xdf\x00\x00\x83\xe2\x83\xdb\x00\x00\x83\xdc\x83\xe4\x83\xdd\x00\x00\x62\x6e\x83\xe6\x00\x00\x83\xe5\x83\xde\x00\x00\x86\xdc\x63\xd0\x86\xda\x86\xdf\x86\xde\x83\xe3\x00\x00\x63\xcf\x00\x00\x86\xdd\x86\xd9\x86\xe1\x86\xe0\x63\xce\x00\x00\x86\xdb\x00\x00\x62\x6f\x00\x00\x00\x00\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x89\x6e\x8b\x69\x8b\x6a\x8b\x6b\x66\xe6\x00\x00\x00\x00\x66\xe7\x00\x00\x8c\xf0\x00\x00\x8e\x77\x8e\x76\x00\x00\x00\x00\x8f\x6b\x8f\x6c\x90\x46\x90\xb6\x00\x00\x4c\x6d\x4c\x6e\x00\x00\x4c\x6f\x4c\xb5\x4d\x65\x69\xb3\x4d\xf2\x4d\xf3\x00\x00\x4e\xf6\x4e\xf7\x4e\xf5\x4e\xf4\x00\x00\x50\x96\x00\x00\x00\x00\x6b\xb6\x50\x98\x50\x97\x6b\xb7\x00\x00\x00\x00\x00\x00\x52\x87\x00\x00\x54\xa1\x6f\xe7\x00\x00\x72\xf3\x00\x00\x56\xe8\x59\x8d\x72\xf2\x59\x8c\x00\x00\x5e\x6d\x00\x00\x7d\x87\x62\x70\x00\x00\x63\xd1\x86\xe2\x00\x00\x66\xe8\x00\x00\x67\xdb", /* 5b80 */ "\x48\x67\x69\x73\x00\x00\x4d\x66\x69\x74\x4d\xf6\x00\x00\x4d\xf4\x4d\xf5\x4d\xf7\x00\x00\x4e\xf9\x4e\xf8\x00\x00\x6a\x7c\x4e\xfa\x00\x00\x00\x00\x6a\x7d\x6b\xb8\x00\x00\x6b\xb9\x00\x00\x50\x99\x50\x9b\x50\x9d\x50\x9a\x50\x9e\x50\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x8b\x52\x88\x52\x8a\x52\x8c\x52\x89\x6f\xe8\x6d\x9a\x00\x00\x00\x00\x00\x00\x6f\xea\x6f\xe9\x54\xa7\x00\x00\x54\xa3\x00\x00\x00\x00\x54\xa4\x54\xa6\x54\xa8\x54\xa5\x00\x00\x54\xaa\x54\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xed\x72\xf5\x72\xf4\x56\xec\x00\x00\x56\xeb\x56\xea\x56\xee\x56\xe9\x00\x00\x00\x00\x76\x5b\x76\x58\x59\x8f\x76\x57\x76\x5c\x00\x00\x59\x91\x76\x5a\x59\x8e\x59\x90\x76\x59\x00\x00\x79\xce\x00\x00\x79\xcf\x79\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6e\x5e\x76\x7d\x88\x5e\x70\x5e\x74\x7d\x89\x5e\x75\x5e\x71\x5e\x72\x5e\x6f\x5e\x73\x60\x6f\x76\x56\x60\x70\x60\x6e\x00\x00\x60\x6d\x83\xe7\x62\x71\x86\xe3\x86\xe4\x00\x00\x00\x00\x66\x50\x66\xe9\x00\x00\x4c\x70\x00\x00\x4d\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x52\x8d\x00\x00\x6f\xeb\x54\xab\x00\x00\x00\x00\x56\xf1\x56\xf0\x56\xef\x59\x92\x59\x93\x76\x5d\x5e\x77\x62\x72\x4c\x71\x69\x5d\x4c\xb6\x69\x75\x00\x00\x00\x00\x69\xb4\x4d\xf9\x00\x00\x00\x00\x00\x00\x50\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x79\xd1\x00\x00\x00\x00\x4c\x72\x00\x00\x4c\xb7\x69\xb5\x00\x00\x00\x00\x6a\x7e\x00\x00\x6a\x7f\x00\x00\x4e\xfb\x00\x00\x00\x00\x00\x00\x76\x5e\x59\x94\x00\x00\x79\xd2\x00\x00\x00\x00\x00\x00\x63\xd2\x4c\x73\x4c\x88\x4c\xb8\x69\x76\x4d\x67\x00\x00\x4f\x42\x4f\x41\x4e\xfc\x4e\xfd\x00\x00\x00\x00\x6b\xba\x50\xa1\x50\xa2\x6b\xbb\x50\xa0\x00\x00\x00\x00\x52\x91\x6d\x9b\x52\x90\x52\x8e\x52\x8f\x54\xae\x54\xac\x00\x00\x00\x00\x6f\xed\x54\xad\x6f\xec\x00\x00\x54\xa2\x72\xf6\x00\x00\x00\x00\x56\xf3\x56\xf4\x00\x00\x00\x00\x56\xf2\x00\x00\x5e\x78\x7d\x8a\x60\x71\x60\x72\x00\x00\x80\xab\x63\xd3\x89\x6f\x89\x70\x00\x00\x67\x89\x90\xb7\x69\x4c\x4c\xb9\x00\x00\x4c\x74\x00\x00\x69\x78\x69\x77\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfa\x69\xb7\x69\xb8\x69\xb6\x00\x00\x69\xb9\x00\x00", /* 5c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x88\x00\x00\x6a\x83\x6a\x85\x6a\x87\x6a\x84\x4f\x46\x6a\x81\x00\x00\x6a\x82\x4f\x43\x4f\x44\x6a\x86\x6a\x89\x4f\x45\x6a\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc9\x00\x00\x6b\xc3\x6b\xbe\x50\xa4\x6b\xc6\x6b\xc4\x6b\xbd\x6b\xca\x6b\xcd\x6b\xc8\x6b\xc1\x50\xa6\x6b\xc7\x50\xa7\x6b\xc2\x6b\xc5\x6b\xbc\x6b\xc0\x6b\xcc\x50\xa8\x00\x00\x50\xa9\x00\x00\x6b\xbf\x6b\xcb\x50\xa3\x50\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xac\x6d\xa5\x6d\xab\x6d\xa4\x6d\xa6\x6d\xa0\x6d\x9e\x00\x00\x6d\xad\x6d\xaa\x6d\x9c\x00\x00\x52\x93\x6d\xa8\x6d\xa9\x00\x00\x6d\xa7\x6d\x9f\x6d\x9d\x52\x92\x6d\xa3\x6d\xa1\x00\x00\x00\x00\x6d\xa2\x6d\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb3\x00\x00\x54\xb2\x00\x00\x6f\xee\x54\xaf\x6f\xf0\x00\x00\x54\xb4\x6f\xf1\x00\x00\x00\x00\x54\xb7\x00\x00\x54\xb5\x6f\xf2\x6d\xaf\x6f\xf4\x00\x00\x54\xb1\x00\x00\x54\xb0\x00\x00\x6f\xef", /* 5d00 */ "\x6f\xf3\x54\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x56\xf6\x56\xf5\x00\x00\x00\x00\x00\x00\x72\xf8\x72\xfc\x73\x41\x56\xf7\x73\x44\x00\x00\x56\xfb\x73\x46\x00\x00\x56\xfd\x00\x00\x56\xf9\x57\x44\x00\x00\x57\x41\x72\xfa\x56\xf8\x00\x00\x72\xf9\x72\xf7\x73\x48\x72\xfb\x00\x00\x56\xfa\x73\x47\x57\x42\x73\x43\x73\x42\x57\x43\x72\xfd\x56\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x73\x49\x00\x00\x73\x45\x76\x6d\x76\x74\x76\x69\x59\x97\x76\x65\x76\x75\x76\x5f\x76\x72\x76\x70\x76\x6a\x00\x00\x76\x73\x76\x6c\x00\x00\x76\x64\x76\x76\x76\x62\x76\x6f\x76\x60\x00\x00\x76\x77\x00\x00\x59\x98\x00\x00\x76\x71\x79\xd5\x76\x63\x59\x95\x00\x00\x76\x67\x00\x00\x59\x96\x76\x66\x76\x6b\x00\x00\x00\x00\x76\x68\x00\x00\x00\x00\x00\x00\x76\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x79\xd9\x00\x00\x00\x00\x00\x00\x79\xdc\x79\xd4\x00\x00\x79\xd6\x00\x00\x79\xdb\x79\xda\x5b\xe8\x00\x00\x76\x61\x79\xd8\x00\x00\x00\x00\x5b\xe9\x00\x00\x79\xd3\x79\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x91\x00\x00\x7d\x98\x7d\x8f\x00\x00\x7d\x96\x7d\x8d\x7d\x95\x7d\x99", /* 5d80 */ "\x7d\x8c\x7d\x90\x7d\x8b\x00\x00\x5e\x79\x00\x00\x7d\x8e\x5e\x7a\x7d\x94\x7d\x93\x7d\x92\x00\x00\x00\x00\x7d\x97\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaf\x80\xb1\x60\x74\x80\xb2\x00\x00\x80\xad\x00\x00\x80\xac\x80\xb6\x00\x00\x80\xb4\x60\x73\x80\xb7\x80\xae\x80\xb3\x80\xb5\x80\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x83\xeb\x83\xf0\x83\xea\x83\xef\x00\x00\x83\xe8\x83\xf2\x83\xee\x83\xf3\x83\xed\x83\xe9\x83\xf1\x00\x00\x83\xf4\x83\xec\x00\x00\x86\xe5\x63\xd7\x00\x00\x63\xd5\x00\x00\x63\xd4\x63\xd6\x00\x00\x00\x00\x89\x71\x00\x00\x8a\xc0\x8b\x6c\x00\x00\x00\x00\x8c\xf1\x8c\xf2\x00\x00\x66\xea\x00\x00\x8e\x78\x00\x00\x67\x8a\x00\x00\x8e\x79\x00\x00\x8f\x6e\x67\xdd\x00\x00\x67\xdc\x8f\x6d\x68\x55\x00\x00\x90\x47\x00\x00\x00\x00\x48\x6e\x00\x00\x4c\x75\x4d\xfb\x69\xba\x6a\x8b\x4f\xd5\x57\x45\x00\x00\x00\x00\x4c\x76\x4d\x6a\x4d\x69\x4d\x68\x00\x00\x00\x00\x4f\x47\x00\x00\x00\x00\x54\xb8\x00\x00\x79\xdd\x4c\x77\x4c\x78\x4c\x79\x4c\xba\x00\x00\x00\x00\x52\x94\x00\x00\x6d\xb0\x00\x00\x00\x00\x00\x00\x59\x99\x4c\x7a\x69\x5e", /* 5e00 */ "\x00\x00\x00\x00\x4d\x6b\x4d\x6c\x69\x79\x00\x00\x4d\xfc\x00\x00\x00\x00\x00\x00\x6a\x8c\x00\x00\x4f\x48\x00\x00\x6a\x8d\x00\x00\x00\x00\x50\xaf\x00\x00\x00\x00\x6b\xcf\x50\xad\x50\xac\x6b\xce\x50\xaa\x6b\xd0\x50\xab\x50\xae\x00\x00\x52\x95\x00\x00\x52\x97\x6d\xb4\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb5\x52\x96\x00\x00\x00\x00\x6f\xf6\x6f\xf5\x00\x00\x54\xba\x00\x00\x54\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x48\x73\x4b\x00\x00\x57\x47\x57\x49\x57\x46\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9b\x73\x4a\x00\x00\x59\x9c\x76\x79\x00\x00\x59\x9d\x76\x78\x59\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x79\xe0\x79\xe2\x5b\xea\x79\xe1\x79\xdf\x79\xde\x00\x00\x00\x00\x00\x00\x7d\x9c\x5e\x7f\x5e\x7d\x00\x00\x5e\x7e\x7d\x9a\x7d\x9b\x00\x00\x5e\x7b\x80\xbb\x80\xb9\x00\x00\x60\x76\x80\xba\x60\x77\x60\x75\x5e\x7c\x00\x00\x00\x00\x83\xf7\x83\xf5\x83\xf6\x80\xb8\x86\xe7\x63\xd8\x86\xe6\x89\x72\x89\x73\x83\xf8\x8b\x6d\x00\x00\x4c\x7b\x4d\x6d\x4e\x41\x69\xbb\x4d\xfd\x00\x00\x50\xb0\x5b\xeb\x48\x73\x4c\xbb\x4d\x6e\x52\x98\x59\x9e\x48\x74", /* 5e80 */ "\x69\x7a\x00\x00\x69\x7b\x00\x00\x69\xbc\x00\x00\x00\x00\x4f\x4a\x6a\x91\x6a\x8f\x4f\x4b\x6a\x8e\x6a\x90\x6a\x92\x00\x00\x4f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb4\x50\xb5\x50\xb2\x00\x00\x00\x00\x50\xb1\x6d\xb9\x50\xb3\x00\x00\x00\x00\x00\x00\x52\x99\x00\x00\x6d\xb8\x6d\xba\x6d\xb7\x6d\xbb\x52\x9a\x54\xbd\x6f\xf7\x00\x00\x6f\xf9\x54\xbb\x6f\xfa\x54\xbc\x6f\xf8\x00\x00\x6d\xb6\x73\x4c\x73\x4f\x73\x50\x73\x4d\x57\x4d\x57\x4c\x57\x4a\x57\x4b\x73\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x57\x4e\x00\x00\x00\x00\x59\xa0\x59\xa1\x00\x00\x59\xa2\x79\xe3\x79\xe5\x79\xe7\x5b\xed\x5b\xec\x59\x9f\x79\xe6\x79\xe4\x00\x00\x7d\xa0\x00\x00\x00\x00\x7d\x9e\x7d\xa4\x5e\x81\x7d\xa5\x7d\xa2\x5e\x82\x7d\x9f\x7d\x9d\x7d\xa3\x60\x79\x80\xbd\x7d\xa1\x60\x7b\x80\xbe\x60\x7a\x60\x7d\x80\xbf\x60\x78\x60\x7c\x00\x00\x83\xfd\x83\xfb\x83\xfa\x83\xfc\x83\xf9\x00\x00\x00\x00\x66\x52\x00\x00\x8c\xf3\x8c\xf4\x00\x00\x8e\x7a\x8f\x6f\x68\xa1\x48\x75\x00\x00\x50\xb6\x4f\x4c\x00\x00\x00\x00\x52\x9b\x00\x00\x00\x00\x00\x00\x4c\x7c\x4c\xbc", /* 5f00 */ "\x00\x00\x4d\x6f\x69\xbd\x00\x00\x4f\x4d\x6a\x93\x00\x00\x6d\xbc\x52\x9c\x00\x00\x5e\x83\x4c\x7d\x00\x00\x00\x00\x00\x00\x4e\x42\x00\x00\x00\x00\x5b\xee\x4c\x7e\x4c\xbd\x4c\xbe\x00\x00\x4d\x71\x4d\x70\x00\x00\x69\xbe\x4e\x43\x00\x00\x6a\x94\x00\x00\x4f\x4e\x00\x00\x00\x00\x6b\xd2\x6b\xd3\x6b\xd4\x00\x00\x50\xb7\x50\xb8\x6b\xd1\x50\xb9\x00\x00\x00\x00\x00\x00\x52\x9d\x6d\xbd\x00\x00\x6f\xfc\x54\xbe\x00\x00\x6f\xfb\x00\x00\x57\x4f\x73\x51\x57\x50\x73\x52\x00\x00\x00\x00\x00\x00\x59\xa3\x00\x00\x00\x00\x00\x00\x79\xe8\x00\x00\x00\x00\x7d\xa7\x7d\xa6\x00\x00\x5e\x84\x00\x00\x60\x7e\x80\xc0\x62\x73\x84\x41\x63\xd9\x00\x00\x67\xde\x90\x49\x48\x79\x00\x00\x00\x00\x00\x00\x6b\xd5\x00\x00\x6d\xbe\x57\x51\x76\x7a\x5b\xef\x00\x00\x00\x00\x00\x00\x65\x60\x65\x60\x00\x00\x00\x00\x48\x7a\x4f\x50\x00\x00\x4f\x4f\x52\x9e\x00\x00\x6f\xfd\x00\x00\x57\x53\x58\xa8\x57\x54\x57\x52\x59\xa4\x00\x00\x7d\xa8\x5e\x85\x60\x7f\x00\x00\x69\x4d\x69\xbf\x00\x00\x6a\x96\x4f\x51\x6a\x95\x4f\x52\x00\x00\x00\x00\x50\xbd\x6b\xd8\x6b\xd7\x50\xbc", /* 5f80 */ "\x50\xba\x50\xbb\x6b\xd6\x00\x00\x00\x00\x52\xa0\x6d\xbf\x52\xa3\x52\x9f\x52\xa5\x52\xa1\x52\xa2\x52\xa4\x00\x00\x00\x00\x00\x00\x54\xc1\x54\xc0\x54\xbf\x00\x00\x00\x00\x00\x00\x73\x54\x57\x55\x57\x58\x57\x56\x00\x00\x73\x53\x57\x5b\x00\x00\x57\x57\x73\x55\x57\x5a\x57\x59\x00\x00\x00\x00\x00\x00\x76\x7c\x76\x7b\x00\x00\x59\xa7\x59\xa5\x59\xa6\x76\x7d\x5b\xf0\x79\xea\x5b\xf1\x79\xe9\x00\x00\x00\x00\x80\xc1\x00\x00\x00\x00\x60\x82\x7d\xa9\x60\x81\x00\x00\x5e\x86\x00\x00\x86\xe9\x84\x42\x63\xda\x86\xe8\x8b\x6e\x8c\xf5\x8c\xf6\x00\x00\x4c\xbf\x00\x00\x4d\x72\x00\x00\x00\x00\x00\x00\x69\x7c\x00\x00\x00\x00\x4f\x54\x4f\x56\x00\x00\x69\xc2\x6a\x99\x6a\x98\x6a\x97\x00\x00\x69\xc1\x69\xc0\x4e\x45\x4f\x55\x4f\x53\x4e\x44\x00\x00\x00\x00\x00\x00\x50\xbe\x6b\xd9\x00\x00\x50\xbf\x6a\x9e\x00\x00\x6a\xa0\x6a\x9f\x6b\xda\x00\x00\x00\x00\x6a\x9b\x00\x00\x4f\x5a\x4f\x58\x00\x00\x6a\x9a\x6a\x9c\x6a\xa2\x00\x00\x4f\x57\x00\x00\x6a\x9d\x6a\xa6\x50\xc1\x00\x00\x6a\xa3\x4f\x59\x00\x00\x6a\xa1\x6a\xa4\x00\x00\x50\xc0\x00\x00\x50\xc2", /* 6000 */ "\x6a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xee\x6b\xe1\x6b\xdf\x6b\xed\x6b\xe8\x52\xaa\x50\xc3\x6b\xe9\x6b\xec\x52\xa6\x6b\xeb\x50\xc4\x50\xc9\x50\xc7\x6b\xe2\x00\x00\x6b\xdd\x6b\xe4\x50\xce\x6b\xef\x52\xa7\x6b\xe5\x00\x00\x52\xa8\x50\xca\x6b\xe7\x00\x00\x6d\xce\x52\xa9\x6b\xdc\x50\xcb\x52\xab\x50\xcc\x50\xc8\x50\xcd\x6b\xe6\x6b\xdb\x6b\xea\x50\xc5\x00\x00\x00\x00\x6b\xde\x6b\xe3\x6b\xe0\x50\xc6\x00\x00\x6d\xc0\x00\x00\x6d\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xcb\x70\x44\x6d\xcc\x52\xb1\x6d\xcf\x6d\xc5\x52\xb0\x6d\xc7\x00\x00\x6d\xc8\x00\x00\x00\x00\x6d\xca\x52\xac\x00\x00\x00\x00\x54\xc5\x00\x00\x00\x00\x6d\xc6\x6d\xc2\x54\xc6\x00\x00\x00\x00\x6d\xd0\x54\xc2\x70\x42\x6d\xc9\x00\x00\x70\x41\x6d\xc4\x6d\xcd\x00\x00\x00\x00\x52\xaf\x54\xc3\x52\xb5\x54\xc4\x6d\xd1\x70\x43\x52\xae\x54\xc8\x52\xb4\x52\xb3\x52\xb2\x54\xc7\x6d\xd2\x54\xc9\x52\xad\x00\x00\x6d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x5c", /* 6080 */ "\x70\x47\x70\x49\x00\x00\x70\x4b\x54\xca\x54\xd0\x73\x58\x70\x4f\x70\x46\x57\x5e\x73\x56\x00\x00\x54\xcf\x54\xcd\x70\x51\x00\x00\x73\x57\x00\x00\x70\x48\x00\x00\x54\xce\x70\x4c\x54\xd1\x70\x4e\x00\x00\x00\x00\x54\xcc\x70\x4d\x70\x50\x70\x4a\x00\x00\x54\xcb\x57\x5f\x00\x00\x70\x45\x57\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x57\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x5a\x73\x63\x59\xaa\x00\x00\x57\x62\x57\x67\x59\xab\x73\x65\x57\x6e\x76\x7f\x73\x5b\x57\x66\x57\x69\x57\x64\x73\x59\x73\x67\x73\x6a\x76\x8f\x00\x00\x73\x68\x76\x84\x57\x65\x57\x6c\x57\x70\x73\x62\x76\x7e\x73\x66\x57\x61\x76\x81\x73\x69\x76\x83\x73\x5e\x00\x00\x59\xa8\x00\x00\x73\x5c\x73\x5d\x57\x6b\x00\x00\x00\x00\x57\x6a\x73\x60\x57\x6f\x73\x64\x57\x68\x73\x61\x00\x00\x57\x6d\x59\xac\x59\xa9\x76\x82\x00\x00\x73\x5f\x00\x00\x57\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb1\x59\xb5\x76\x86\x5b\xf6\x59\xb3\x76\x8a\x59\xb7\x79\xeb\x76\x8c\x5b\xf8\x59\xaf\x59\xb2\x76\x8d\x00\x00\x76\x8e\x76\x94", /* 6100 */ "\x59\xb9\x5b\xf9\x00\x00\x76\x90\x76\x95\x76\x89\x5c\x46\x00\x00\x5b\xfa\x59\xb8\x76\x87\x76\x96\x00\x00\x5c\x45\x59\xb6\x5b\xf3\x76\x93\x00\x00\x59\xba\x76\x8b\x76\x85\x59\xb0\x76\x88\x00\x00\x76\x91\x00\x00\x5b\xf2\x5b\xf7\x59\xad\x76\x92\x00\x00\x5b\xf5\x00\x00\x00\x00\x00\x00\x59\xae\x00\x00\x00\x00\x00\x00\x5c\x44\x7d\xab\x79\xf6\x00\x00\x79\xee\x7d\xaa\x00\x00\x79\xf2\x79\xf4\x00\x00\x00\x00\x79\xf1\x00\x00\x5c\x43\x00\x00\x79\xf0\x5c\x47\x00\x00\x00\x00\x00\x00\x7d\xba\x00\x00\x00\x00\x5c\x42\x5e\x88\x79\xf7\x7d\xac\x00\x00\x00\x00\x5b\xfd\x79\xef\x79\xf3\x5e\x87\x5b\xf4\x79\xec\x79\xed\x5e\x89\x5b\xfc\x5c\x41\x5b\xfb\x79\xf5\x00\x00\x00\x00\x7d\xb0\x7d\xb1\x7d\xb6\x60\x87\x7d\xbd\x00\x00\x5e\x8f\x00\x00\x5e\x8e\x7d\xb8\x00\x00\x60\x86\x7d\xad\x5e\x8d\x00\x00\x7d\xbc\x5e\x8b\x5e\x8c\x00\x00\x7d\xb9\x80\xd2\x60\x84\x59\xb4\x00\x00\x7d\xbb\x60\x8b\x7d\xb3\x00\x00\x60\x85\x00\x00\x60\x8a\x7d\xae\x7d\xb2\x7d\xaf\x7d\xb5\x5e\x90\x60\x83\x5e\x8a\x00\x00\x80\xc4\x7d\xb7\x00\x00\x60\x89\x00\x00\x60\x8c\x00\x00", /* 6180 */ "\x7d\xb4\x00\x00\x60\x88\x80\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc8\x62\x77\x80\xc2\x84\x4e\x80\xd1\x60\x90\x00\x00\x60\x8e\x62\x75\x80\xce\x80\xca\x60\x94\x00\x00\x84\x45\x00\x00\x00\x00\x00\x00\x60\x92\x80\xc9\x00\x00\x84\x43\x00\x00\x80\xcd\x00\x00\x80\xd0\x80\xc7\x00\x00\x60\x93\x00\x00\x00\x00\x60\x8d\x84\x44\x62\x76\x80\xcf\x60\x8f\x60\x91\x80\xcc\x60\x95\x80\xcb\x80\xc6\x80\xc5\x62\x74\x80\xd3\x84\x47\x86\xeb\x62\x79\x00\x00\x84\x4d\x00\x00\x84\x4b\x00\x00\x86\xec\x00\x00\x62\x7a\x84\x4c\x00\x00\x84\x49\x63\xdc\x86\xea\x00\x00\x84\x46\x84\x48\x63\xdd\x62\x7c\x63\xdb\x62\x7b\x63\xdf\x84\x4a\x62\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x7c\x00\x00\x89\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xf2\x89\x75\x86\xee\x00\x00\x00\x00\x65\x61\x86\xf0\x86\xef\x63\xde\x86\xed\x86\xf1\x89\x7d\x89\x79\x89\x7b\x00\x00\x89\x76\x89\x77\x00\x00\x89\x7a\x89\x78\x66\x53\x00\x00\x00\x00\x66\x56\x66\x55\x66\x54\x66\xeb\x8c\xf7\x66\xec\x8b\x6f\x67\x8b\x8e\x7b\x67\x8c\x67\xdf", /* 6200 */ "\x68\x56\x90\x4a\x00\x00\x90\x4b\x90\x4c\x00\x00\x00\x00\x91\xaa\x4c\xc0\x69\x7d\x4d\x73\x00\x00\x4e\x47\x4e\x48\x4e\x46\x00\x00\x4e\x49\x4f\x5c\x4f\x5b\x00\x00\x6b\xf0\x50\xd0\x50\xcf\x00\x00\x00\x00\x70\x52\x57\x71\x57\x72\x00\x00\x00\x00\x00\x00\x59\xbb\x79\xf8\x5c\x48\x5c\x49\x79\xfa\x79\xfc\x79\xfb\x00\x00\x7d\xbf\x00\x00\x7d\xbe\x5e\x91\x7d\xc0\x00\x00\x80\xd4\x60\x96\x00\x00\x62\x7d\x00\x00\x63\xe0\x65\x62\x63\xe1\x00\x00\x4c\xc1\x00\x00\x00\x00\x00\x00\x6a\xa7\x00\x00\x00\x00\x6b\xf1\x50\xd2\x50\xd1\x50\xd3\x52\xb6\x6d\xd3\x6d\xd4\x00\x00\x00\x00\x70\x53\x54\xd2\x57\x73\x59\xbc\x76\x97\x4c\xc2\x00\x00\x4c\x7f\x4c\xc3\x00\x00\x69\x7e\x4d\x77\x4d\x76\x4d\x74\x4d\x75\x00\x00\x00\x00\x00\x00\x4e\x4c\x69\xca\x69\xcc\x4e\x4b\x69\xc4\x00\x00\x69\xc5\x00\x00\x69\xcb\x69\xc7\x69\xc9\x4e\x4a\x69\xc6\x69\xc3\x69\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x63\x4f\x6c\x4f\x6a\x6a\xb1\x6a\xae\x6a\xb6\x4f\x68\x6a\xb7\x00\x00\x4f\x61\x6a\xb4\x00\x00\x4f\x67\x6a\xb0\x6a\xaf\x4f\x65\x6a\xb5\x4f\x66\x50\xd4", /* 6280 */ "\x4f\x60\x6a\xb2\x00\x00\x6a\xa8\x4f\x5d\x00\x00\x4f\x70\x6a\xad\x6a\xb3\x4f\x62\x4f\x64\x00\x00\x6a\xa9\x00\x00\x6a\xaa\x6a\xab\x00\x00\x4f\x6f\x4f\x69\x4f\x6e\x6a\xac\x4f\x6d\x4f\x5f\x4f\x5e\x4f\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xe2\x6b\xfd\x6b\xf6\x50\xdd\x50\xf0\x6b\xf2\x6b\xf9\x6b\xfb\x6c\x41\x50\xeb\x00\x00\x6b\xfa\x6b\xf3\x50\xe9\x6b\xf7\x00\x00\x6c\x42\x50\xda\x00\x00\x6b\xfc\x50\xe4\x50\xe3\x6b\xf5\x50\xd8\x00\x00\x00\x00\x50\xd9\x00\x00\x50\xd7\x00\x00\x50\xef\x50\xe7\x50\xe1\x50\xd5\x6b\xf8\x50\xe0\x50\xd6\x50\xe8\x50\xf1\x6d\xd5\x50\xe5\x6b\xf4\x50\xdb\x50\xde\x50\xdf\x00\x00\x50\xed\x50\xee\x50\xec\x50\xe6\x50\xea\x50\xdc\x52\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xdb\x52\xc3\x52\xbb\x52\xbd\x52\xc2\x6d\xe7\x52\xc0\x70\x54\x54\xd3\x52\xc5\x6d\xd8\x6d\xe0\x52\xc1\x6d\xdf\x6d\xdc\x6d\xe4\x6d\xe6\x52\xba\x52\xbe\x52\xc4\x54\xd5", /* 6300 */ "\x6d\xe1\x52\xbc\x52\xc7\x6d\xda\x00\x00\x00\x00\x00\x00\x52\xbf\x54\xd4\x52\xb9\x00\x00\x6d\xd7\x6d\xde\x6d\xd6\x6d\xd9\x6d\xdd\x70\x55\x52\xc6\x00\x00\x6d\xe2\x6d\xe3\x6d\xe5\x52\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe3\x70\x61\x54\xe1\x54\xe2\x70\x57\x70\x67\x00\x00\x54\xd8\x00\x00\x00\x00\x73\x6b\x70\x69\x70\x63\x00\x00\x70\x5a\x00\x00\x70\x6c\x70\x5d\x54\xde\x73\x83\x70\x60\x54\xe0\x54\xd7\x00\x00\x70\x6e\x70\x62\x54\xda\x70\x5b\x70\x58\x70\x59\x54\xdb\x70\x68\x70\x6f\x54\xdd\x70\x5f\x70\x5e\x54\xe5\x54\xe4\x54\xd6\x54\xdc\x54\xdf\x70\x6b\x00\x00\x00\x00\x70\x65\x54\xd9\x70\x56\x70\x6d\x70\x64\x70\x66\x70\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x6c\x00\x00\x57\x7b\x57\x90\x57\x8f\x00\x00\x57\x84\x00\x00\x73\x7e\x73\x7a\x73\x77\x73\x8a\x57\x7e\x57\x76\x00\x00\x00\x00\x73\x7c\x59\xcc\x57\x7a\x73\x85\x00\x00\x57\x91\x57\x8e\x73\x81\x73\x6f\x00\x00\x00\x00", /* 6380 */ "\x57\x8d\x73\x87\x73\x6e\x57\x82\x57\x86\x73\x86\x00\x00\x73\x78\x57\x87\x57\x81\x73\x6d\x00\x00\x59\xbe\x73\x89\x73\x76\x57\x8c\x73\x79\x73\x88\x57\x8b\x00\x00\x76\x98\x00\x00\x57\x77\x73\x74\x57\x7c\x57\x88\x00\x00\x57\x83\x73\x7d\x73\x73\x73\x71\x73\x84\x57\x74\x57\x89\x57\x78\x59\xbd\x73\x82\x57\x79\x00\x00\x57\x75\x57\x85\x57\x7f\x57\x7d\x73\x75\x57\x8a\x73\x72\x73\x7f\x73\x7b\x76\x9a\x76\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x70\x76\xaa\x00\x00\x59\xc0\x00\x00\x76\xb0\x76\x9f\x76\xad\x79\xfd\x59\xc3\x76\xb1\x76\xb4\x59\xc2\x76\xa2\x76\xb3\x76\xb2\x59\xc4\x76\x9b\x59\xbf\x59\xc7\x00\x00\x59\xc5\x76\xaf\x00\x00\x76\xa5\x59\xc9\x76\xb6\x76\xae\x76\xb7\x59\xd1\x59\xcf\x76\xac\x76\xab\x00\x00\x76\xa9\x76\xa3\x59\xc8\x00\x00\x59\xc6\x70\x5c\x76\x9c\x00\x00\x7a\x5e\x76\x9d\x59\xc1\x59\xce\x7a\x42\x00\x00\x59\xca\x59\xcb\x76\x9e\x76\xb5\x7a\x41\x76\xa6\x76\xa1\x59\xcd\x76\xa7\x76\xa4\x00\x00\x00\x00\x59\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x58\x00\x00\x00\x00\x7a\x45\x7a\x58\x7a\x5d\x7a\x51\x5c\x54\x7a\x62\x5c\x51\x7a\x43\x00\x00\x7a\x44\x5c\x4a\x5c\x53\x7a\x4b\x5c\x56\x5c\x57\x7a\x4c\x00\x00\x7a\x59\x7a\x5f\x5c\x52\x00\x00\x5c\x4c\x7a\x4a\x7a\x46\x7a\x61\x7a\x4f\x7a\x50\x7a\x47\x7a\x5b\x7a\x52\x7a\x5c\x7a\x54\x00\x00\x5c\x4d\x7d\xc1\x5c\x50\x5c\x4e\x7a\x60\x7a\x57\x7a\x53\x00\x00\x00\x00\x7a\x48\x5e\x9b\x7a\x56\x5c\x55\x7a\x4e\x00\x00\x7a\x4d\x00\x00\x00\x00\x00\x00\x5c\x4f\x5c\x4b\x7d\xd6\x7a\x5a\x7a\x55\x00\x00\x7a\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xd1\x00\x00\x7d\xc2\x7d\xcd\x00\x00\x7d\xd4\x5e\x99\x59\xd0\x7d\xd2\x5e\x94\x00\x00\x00\x00\x00\x00\x5e\x93\x7d\xd9\x00\x00\x7d\xc3\x7d\xd0\x7d\xc4\x7d\xcf\x5e\x97\x7d\xd3\x76\xa8\x00\x00\x00\x00\x00\x00\x7d\xda\x7d\xcb\x5e\x9a\x80\xe2\x60\x97\x00\x00\x7d\xd8\x7d\xd7\x5e\x9c\x80\xd5\x60\x98\x80\xd6\x00\x00\x7d\xc7\x7d\xc8\x7d\xc5\x7d\xca\x7d\xc6\x7d\xdb\x5e\x96\x60\x99\x5e\x98\x5e\x9d\x00\x00\x7d\xc9\x00\x00\x7d\xd5", /* 6480 */ "\x00\x00\x00\x00\x7d\xce\x00\x00\x00\x00\x80\xd9\x00\x00\x5e\x92\x60\x9c\x84\x55\x80\xde\x80\xdd\x80\xdf\x00\x00\x00\x00\x80\xdc\x60\x9d\x68\xcb\x60\xa3\x60\xa0\x00\x00\x60\xa1\x80\xd7\x80\xda\x80\xe4\x60\xa9\x60\xa7\x00\x00\x80\xdb\x76\xa0\x60\x9a\x80\xe1\x80\xd8\x00\x00\x60\xaa\x80\xe0\x5e\x95\x60\x9f\x7d\xcc\x00\x00\x00\x00\x60\xa2\x00\x00\x60\xa6\x60\xa8\x60\xa5\x60\xa4\x00\x00\x60\x9e\x80\xe3\x60\x9b\x60\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x82\x62\x83\x84\x54\x62\x8c\x62\x89\x00\x00\x62\x7f\x62\x87\x84\x56\x62\x85\x62\x7e\x00\x00\x62\x86\x00\x00\x84\x53\x63\xe3\x62\x81\x00\x00\x62\x88\x63\xe2\x84\x52\x84\x51\x00\x00\x62\x8a\x00\x00\x62\x8b\x00\x00\x84\x50\x84\x4f\x63\xe4\x84\x59\x62\x84\x84\x57\x00\x00\x00\x00\x00\x00\x00\x00\x63\xe5\x00\x00\x63\xea\x86\xf5\x86\xf7\x00\x00\x63\xe7\x00\x00\x86\xf8\x86\xf4\x00\x00\x86\xf6\x63\xe8\x63\xeb\x00\x00\x86\xf3\x63\xe6\x63\xe9\x65\x64\x84\x58\x65\x63\x00\x00\x00\x00\x65\x69\x89\x82\x00\x00\x65\x67\x65\x68\x89\x85\x89\x81\x65\x65\x89\x7e", /* 6500 */ "\x66\x57\x89\x83\x00\x00\x89\x84\x89\x7f\x00\x00\x65\x66\x8b\x70\x00\x00\x8b\x73\x00\x00\x00\x00\x8b\x74\x8b\x72\x8b\x75\x66\x58\x8b\x71\x00\x00\x00\x00\x8c\xfb\x66\xee\x8c\xfa\x8c\xf9\x8c\xf8\x66\xed\x66\xef\x00\x00\x8e\x7c\x67\x8e\x67\x8d\x00\x00\x00\x00\x8f\x71\x8f\x70\x8f\x73\x68\x57\x67\xe0\x90\x4e\x8f\x72\x00\x00\x00\x00\x90\x4d\x68\x59\x68\x58\x68\x7f\x90\xb8\x91\x41\x4c\xc4\x00\x00\x00\x00\x76\xb8\x84\x5a\x48\x82\x00\x00\x4e\x4d\x6a\xb8\x4f\x73\x4f\x71\x00\x00\x4f\x72\x00\x00\x6c\x43\x50\xf2\x52\xc8\x00\x00\x6d\xe8\x00\x00\x6d\xe9\x00\x00\x52\xc9\x70\x71\x00\x00\x54\xe6\x54\xe7\x70\x70\x00\x00\x00\x00\x00\x00\x00\x00\x57\x98\x00\x00\x57\x94\x00\x00\x73\x8b\x57\x9b\x57\x9a\x57\x93\x57\x96\x57\x99\x57\x95\x00\x00\x00\x00\x76\xbc\x57\x92\x59\xd3\x00\x00\x00\x00\x00\x00\x59\xd5\x59\xd6\x76\xbb\x76\xbe\x59\xd4\x76\xb9\x76\xbd\x00\x00\x76\xba\x00\x00\x5c\x59\x00\x00\x00\x00\x7a\x63\x00\x00\x00\x00\x5e\x9e\x7d\xdc\x62\x8d\x60\xac\x80\xe5\x60\xad\x60\xae\x80\xe7\x80\xe6\x80\xe8\x84\x5c\x00\x00\x00\x00\x84\x5b", /* 6580 */ "\x86\xfa\x86\xf9\x63\xec\x63\xed\x8b\x76\x00\x00\x00\x00\x4c\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x76\xbf\x00\x00\x00\x00\x00\x00\x59\xd8\x59\xd7\x7a\x64\x00\x00\x89\x86\x67\x8f\x90\x4f\x4c\xc6\x00\x00\x54\xe8\x00\x00\x57\x9d\x57\x9c\x76\xc0\x76\xc1\x5c\x5a\x7d\xdd\x5e\x9f\x84\x5d\x00\x00\x4c\xc7\x4d\x78\x00\x00\x50\xf3\x6c\x44\x00\x00\x6d\xea\x52\xca\x57\x9e\x00\x00\x76\xc2\x59\xd9\x5c\x5b\x00\x00\x80\xe9\x80\xea\x00\x00\x00\x00\x86\xfb\x65\x6a\x91\x42\x4c\xc8\x00\x00\x6c\x45\x50\xf4\x52\xcb\x00\x00\x6d\xeb\x00\x00\x54\xe9\x70\x75\x70\x73\x70\x74\x54\xea\x70\x72\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa0\x57\xa1\x73\x8c\x57\xa2\x57\x9f\x76\xc3\x00\x00\x76\xc4\x7a\x65\x00\x00\x00\x00\x5e\xa1\x5e\xa0\x00\x00\x00\x00\x86\xfc\x89\x87\x00\x00\x8b\x78\x8b\x77\x8c\xfc\x48\x87\x69\x5f\x52\xcc\x00\x00\x00\x00\x4c\xc9\x4d\x79\x00\x00\x4e\x4f\x4e\x4e\x00\x00\x00\x00\x4e\x50\x4e\x51\x69\xce\x69\xcd\x6a\xb9\x4f\x74\x6a\xbc\x6a\xbb\x6a\xba\x6a\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x50\xf5\x6c\x4b\x6c\x47\x6c\x50\x00\x00\x00\x00", /* 6600 */ "\x50\xfc\x00\x00\x50\xfa\x6c\x4c\x6c\x48\x6c\x4f\x50\xf9\x51\x43\x6c\x4a\x6c\x46\x51\x42\x6c\x4d\x50\xf8\x6c\x4e\x50\xfb\x50\xfd\x6c\x52\x6c\x51\x6c\x49\x50\xf7\x50\xf6\x51\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xf0\x6d\xf6\x00\x00\x52\xd2\x52\xcf\x6d\xed\x6d\xf2\x00\x00\x52\xd5\x52\xcd\x6d\xf1\x52\xd0\x52\xd3\x00\x00\x00\x00\x6d\xf4\x00\x00\x52\xce\x6d\xf9\x52\xd1\x00\x00\x52\xd4\x6d\xee\x6d\xf3\x6d\xf7\x6d\xef\x6d\xec\x00\x00\x00\x00\x6d\xf8\x6d\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xf2\x54\xeb\x54\xee\x00\x00\x54\xf1\x00\x00\x70\x78\x00\x00\x54\xec\x70\x76\x00\x00\x54\xf0\x00\x00\x00\x00\x54\xed\x00\x00\x70\x79\x54\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x90\x57\xa4\x73\x8f\x73\x91\x57\xa3\x57\xa8\x70\x77\x00\x00\x73\x8e\x73\x92\x00\x00\x57\xa5\x73\x8d\x57\xa7\x00\x00\x57\xa6\x00\x00\x76\xcb\x00\x00\x76\xc6\x00\x00\x59\xda\x59\xde\x59\xdb\x76\xc9\x76\xcc\x00\x00\x59\xdc\x00\x00\x59\xdd\x59\xe2\x7a\x6e\x76\xca\x59\xe0\x76\xc7\x76\xc5\x00\x00\x59\xe1\x00\x00", /* 6680 */ "\x76\xc8\x00\x00\x00\x00\x00\x00\x5c\x61\x00\x00\x7a\x66\x5c\x5e\x5c\x5f\x5c\x5d\x7a\x6b\x7a\x6a\x7a\x67\x5c\x63\x00\x00\x00\x00\x7a\x69\x59\xdf\x00\x00\x00\x00\x7a\x6d\x7a\x68\x5c\x60\x5c\x5c\x5c\x62\x7a\x6c\x00\x00\x00\x00\x00\x00\x5e\xa4\x00\x00\x7d\xe0\x7d\xdf\x7d\xde\x5e\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa3\x80\xed\x80\xf0\x60\xb0\x00\x00\x00\x00\x60\xaf\x80\xf1\x80\xec\x60\xb2\x80\xee\x00\x00\x60\xb1\x80\xeb\x00\x00\x80\xef\x62\x93\x62\x90\x84\x66\x84\x65\x00\x00\x84\x64\x84\x5f\x00\x00\x84\x60\x00\x00\x00\x00\x00\x00\x62\x91\x00\x00\x62\x8e\x62\x92\x84\x5e\x62\x8f\x84\x61\x84\x62\x84\x67\x00\x00\x00\x00\x84\x63\x00\x00\x00\x00\x86\xfd\x00\x00\x00\x00\x00\x00\x63\xef\x00\x00\x89\x8a\x63\xee\x89\x88\x89\x89\x65\x6b\x66\x5a\x8b\x79\x00\x00\x66\x59\x00\x00\x00\x00\x8d\x41\x8d\x42\x00\x00\x66\xf0\x00\x00\x8c\xfd\x67\x90\x00\x00\x90\x50\x68\x5a\x90\xb9\x90\xba\x00\x00\x4c\xca\x00\x00\x4e\x52\x4e\x53\x4f\x75\x00\x00\x6c\x53\x52\xd6\x54\xf3\x57\xa9\x00\x00\x00\x00\x56\xb6\x00\x00\x59\xe3\x59\xe4", /* 6700 */ "\x59\x52\x76\xcd\x00\x00\x5c\x64\x7d\xe2\x7d\xe1\x00\x00\x00\x00\x4c\xcb\x4e\x54\x6c\x54\x51\x45\x00\x00\x51\x44\x00\x00\x6d\xfa\x6d\xfb\x00\x00\x70\x7a\x70\x7b\x54\xf4\x54\xf5\x00\x00\x54\xf6\x73\x93\x00\x00\x00\x00\x57\xab\x00\x00\x59\xe6\x00\x00\x59\xe5\x7a\x6f\x7b\xc2\x7d\xe3\x84\x68\x00\x00\x00\x00\x65\x6c\x66\xf1\x4c\xcc\x00\x00\x4d\x7c\x4d\x7d\x4d\x7b\x4d\x7e\x4d\x7a\x00\x00\x00\x00\x4e\x57\x00\x00\x69\xd6\x4e\x56\x4e\x58\x00\x00\x00\x00\x69\xd1\x69\xd0\x69\xd3\x69\xd2\x69\xd5\x4e\x55\x69\xcf\x69\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbe\x4f\x7f\x6a\xbf\x6a\xc3\x4f\x7e\x00\x00\x6a\xc7\x6a\xc2\x6a\xc5\x4f\x77\x4f\x78\x4f\x79\x4f\x7a\x00\x00\x4f\x82\x00\x00\x6a\xc1\x4f\x7c\x4f\x83\x00\x00\x6a\xc0\x6a\xc6\x00\x00\x4f\x7b\x6a\xc4\x4f\x7d\x4f\x76\x4f\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5a\x00\x00\x6c\x56\x51\x46\x00\x00\x51\x50\x51\x51\x51\x49\x51\x5b\x51\x4b\x6c\x5e\x51\x56\x6c\x59\x51\x4c\x6c\x68\x6c\x69\x6c\x61\x6c\x5a\x51\x59\x6c\x66\x51\x54\x51\x52", /* 6780 */ "\x00\x00\x6c\x67\x00\x00\x6c\x65\x6c\x5d\x6c\x55\x6c\x5c\x51\x4d\x00\x00\x51\x53\x00\x00\x51\x47\x6c\x60\x6c\x5f\x6c\x57\x00\x00\x51\x55\x6c\x63\x6c\x58\x51\x58\x6c\x6a\x51\x48\x00\x00\x51\x4f\x6c\x5b\x6c\x64\x51\x57\x00\x00\x51\x4a\x51\x4e\x00\x00\x6c\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x5e\x52\xde\x52\xeb\x00\x00\x6e\x59\x6e\x4f\x52\xe4\x6e\x4d\x52\xdd\x6e\x48\x52\xe7\x6e\x55\x6e\x42\x6e\x44\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x47\x6d\xfc\x6e\x54\x6e\x64\x52\xe2\x6e\x49\x6e\x5b\x00\x00\x6e\x41\x6e\x62\x6e\x63\x6e\x66\x6e\x5d\x6e\x4e\x6e\x56\x52\xe8\x52\xdb\x52\xe3\x52\xef\x52\xd8\x52\xda\x00\x00\x00\x00\x00\x00\x6e\x46\x52\xec\x52\xe5\x6e\x60\x6e\x43\x52\xee\x52\xe9\x6e\x4c\x00\x00\x00\x00\x52\xed\x6e\x53\x6e\x4b\x52\xe6\x6e\x5f\x6e\x57\x00\x00\x52\xe0\x6e\x65\x6e\x4a\x52\xdc\x6e\x5c\x6e\x52\x52\xe1\x6e\x58\x52\xd9\x6d\xfd\x52\xea\x55\x48\x52\xdf\x6e\x51\x6e\x50\x6e\x45\x00\x00\x6e\x61\x00\x00\x6e\x5a\x00\x00\x00\x00\x52\xd7", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x90\x55\x4f\x70\x91\x00\x00\x70\x85\x55\x44\x55\x50\x00\x00\x70\x7d\x00\x00\x70\x87\x70\x8f\x00\x00\x70\x7c\x70\x98\x54\xf7\x00\x00\x00\x00\x00\x00\x70\x97\x70\x92\x00\x00\x70\x93\x55\x42\x55\x4d\x70\x89\x00\x00\x70\x8a\x70\x94\x70\x8b\x00\x00\x70\x86\x70\x7f\x70\x81\x70\x8e\x70\x88\x00\x00\x00\x00\x54\xf8\x54\xfc\x70\x96\x70\x82\x55\x4b\x55\x47\x00\x00\x00\x00\x55\x4a\x55\x51\x54\xfd\x55\x4c\x70\x8d\x55\x4e\x54\xfa\x00\x00\x54\xf9\x70\x7e\x00\x00\x70\x83\x55\x45\x70\x95\x70\x8c\x70\x84\x55\x49\x55\x46\x00\x00\x54\xfb\x55\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\xa8\x00\x00\x73\x98\x73\x99\x73\x9d\x00\x00\x73\xac\x73\xa9\x00\x00\x73\xa2\x73\xa1\x57\xb2\x73\xa5\x73\xb4\x73\x94\x00\x00\x73\xb5\x73\xa7\x73\xb9\x73\xad\x57\xb1", /* 6880 */ "\x73\xab\x57\xac\x57\xc1\x57\xb7\x00\x00\x57\xbb\x57\xba\x73\x95\x00\x00\x73\xb2\x73\xb8\x73\xb0\x73\xb7\x00\x00\x00\x00\x73\xa4\x73\x96\x73\xb6\x73\xa6\x57\xaf\x57\xbc\x00\x00\x73\xaf\x57\xb5\x00\x00\x00\x00\x00\x00\x73\xae\x73\x97\x57\xbd\x00\x00\x57\xbf\x73\xb1\x57\xc0\x57\xae\x73\x9e\x73\xb3\x00\x00\x00\x00\x57\xb4\x57\xbe\x73\xa0\x73\xaa\x73\x9b\x73\x9f\x57\xb9\x73\x9a\x57\xad\x57\xb6\x57\xb3\x73\xa3\x55\x43\x76\xe4\x57\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb8\x00\x00\x76\xe7\x76\xfd\x76\xf2\x59\xfa\x00\x00\x59\xf5\x76\xe1\x59\xf6\x76\xf1\x00\x00\x76\xea\x76\xf7\x59\xf2\x76\xcf\x76\xf9\x59\xe8\x76\xd7\x59\xeb\x59\xea\x00\x00\x59\xfb\x00\x00\x76\xd1\x76\xf3\x76\xf4\x59\xed\x59\xe9\x76\xdf\x00\x00\x59\xf4\x76\xda\x00\x00\x76\xf5\x59\xf0\x76\xed\x76\xfa\x76\xd4\x76\xd9\x76\xd3\x00\x00\x59\xef\x76\xe6\x7a\x86\x76\xd5\x59\xf3\x76\xde\x76\xf6\x59\xee\x76\xdb\x76\xd8\x76\xe9\x59\xf1\x59\xe7\x59\xfd\x76\xec\x76\xeb\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x76\xd0\x59\xec\x76\xf8\x76\xe0\x76\xe2\x00\x00\x76\xef\x76\xee\x76\xce\x59\xf7\x59\xf9\x76\xd6\x76\xdd\x76\xe5\x59\xf8\x76\xdc\x76\xe8\x76\xfb\x00\x00\x76\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x76\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x9a\x5c\x6c\x00\x00\x7a\x98\x7a\x83\x7a\x88\x7a\x81\x00\x00\x7a\x94\x7a\x72\x7a\x79\x00\x00\x7a\x92\x7a\x9c\x7a\x84\x00\x00\x7a\x76\x7a\x8a\x7a\x8f\x7a\x7a\x00\x00\x7a\x8c\x7a\x77\x00\x00\x00\x00\x7a\x7e\x7a\x7f\x5c\x6e\x7a\x93\x7a\x91\x00\x00\x7a\x73\x7a\x96\x00\x00\x7a\x97\x7a\x99\x5c\x72\x5c\x6a\x00\x00\x73\x9c\x7a\x7b\x7a\x8e\x7a\x7c\x5c\x67\x5c\x77\x7a\x95\x5c\x75\x5c\x71\x7a\x71\x5c\x69\x00\x00\x7a\x74\x5c\x76\x00\x00\x7a\x85\x7a\x70\x00\x00\x5c\x6f\x7a\x89\x7a\x78\x5c\x70\x7a\x82\x5c\x66\x59\xfc\x7a\x8b\x76\xe3\x7a\x75\x00\x00\x00\x00\x7a\x90\x5c\x6b\x7a\x8d\x5c\x68\x7a\x87\x5c\x73\x7a\x7d\x7a\x9b\x00\x00\x00\x00\x00\x00\x00\x00", /* 6980 */ "\x00\x00\x00\x00\x5c\x6d\x7b\x4e\x00\x00\x00\x00\x5c\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xf1\x7d\xef\x00\x00\x7e\x48\x7d\xed\x00\x00\x7e\x42\x5c\x65\x5e\xa7\x7d\xe9\x7e\x47\x00\x00\x7d\xee\x7d\xfc\x5e\xac\x5e\xa5\x00\x00\x7e\x45\x00\x00\x7d\xe7\x7e\x44\x00\x00\x5e\xb7\x7d\xf8\x7e\x4b\x5e\xb5\x7d\xf0\x5e\xa6\x7d\xf2\x7e\x43\x5e\xaf\x7d\xeb\x5e\xb3\x5e\xa9\x7d\xf4\x7d\xea\x7d\xe4\x00\x00\x7e\x41\x5e\xb0\x7e\x4a\x7d\xe5\x5e\xad\x00\x00\x7d\xfa\x00\x00\x5e\xae\x7d\xec\x7d\xf7\x7d\xf3\x7d\xf5\x00\x00\x5e\xa8\x7e\x49\x5e\xb6\x7d\xf6\x00\x00\x7e\x4c\x00\x00\x00\x00\x7d\xe6\x7d\xfb\x5e\xab\x5e\xb4\x5e\xb2\x7d\xe8\x7d\xfd\x5e\xb1\x00\x00\x00\x00\x5e\xaa\x7d\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xfd\x00\x00\x80\xf9\x80\xf5\x81\x4c\x81\x49\x60\xb5\x00\x00\x00\x00\x81\x50\x80\xfc\x60\xc0\x81\x46\x00\x00\x00\x00\x80\xf8\x81\x45\x60\xbd\x81\x59\x00\x00\x81\x56\x81\x48\x80\xf6\x00\x00\x00\x00\x81\x4d\x81\x4f\x60\xb9\x81\x43\x80\xfb", /* 6a00 */ "\x80\xf2\x60\xb6\x60\xbe\x00\x00\x81\x52\x60\xbf\x80\xf3\x81\x58\x81\x4b\x81\x51\x60\xbc\x00\x00\x00\x00\x81\x4e\x00\x00\x81\x55\x00\x00\x60\xc1\x00\x00\x60\xbb\x81\x47\x80\xf7\x81\x5a\x80\xf4\x81\x53\x60\xb8\x00\x00\x81\x41\x00\x00\x81\x42\x60\xb7\x60\xb4\x80\xfa\x60\xba\x00\x00\x60\xb3\x00\x00\x81\x54\x81\x57\x81\x44\x84\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x6d\x00\x00\x84\x69\x62\xa0\x00\x00\x00\x00\x62\x95\x62\x9a\x62\x96\x84\x77\x84\x83\x62\x94\x84\x6f\x84\x78\x81\x4a\x84\x79\x00\x00\x00\x00\x62\x9b\x00\x00\x84\x89\x62\x9f\x62\xa2\x84\x6b\x00\x00\x62\x9e\x00\x00\x84\x87\x84\x88\x84\x7d\x84\x7c\x84\x74\x00\x00\x00\x00\x84\x7e\x84\x86\x84\x85\x00\x00\x62\x99\x62\x97\x84\x76\x84\x73\x00\x00\x84\x70\x84\x84\x62\xa1\x84\x82\x62\x9d\x62\x9c\x00\x00\x84\x7b\x00\x00\x84\x6a\x84\x6c\x84\x6e\x84\x81\x84\x7a\x62\x98\x00\x00\x84\x71\x00\x00\x84\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf7\x87\x52", /* 6a80 */ "\x63\xf0\x87\x43\x00\x00\x87\x4e\x63\xf2\x87\x55\x00\x00\x87\x4a\x00\x00\x87\x45\x00\x00\x00\x00\x87\x56\x87\x41\x87\x4c\x00\x00\x63\xf9\x87\x51\x87\x57\x87\x4b\x63\xf1\x87\x4d\x87\x42\x63\xf8\x00\x00\x00\x00\x87\x54\x87\x47\x63\xf4\x00\x00\x87\x49\x87\x46\x63\xfa\x87\x48\x63\xf3\x63\xf6\x87\x50\x87\x44\x87\x53\x00\x00\x87\x4f\x00\x00\x00\x00\x00\x00\x65\x6e\x89\x95\x65\x73\x65\x74\x00\x00\x00\x00\x00\x00\x65\x6d\x89\x94\x00\x00\x89\x91\x89\x92\x65\x71\x89\x8c\x89\x90\x65\x70\x00\x00\x89\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x65\x72\x65\x6f\x00\x00\x89\x8b\x89\x8f\x89\x93\x00\x00\x00\x00\x00\x00\x8b\x7f\x8b\x7c\x8b\x86\x00\x00\x8b\x85\x8b\x83\x8b\x7d\x00\x00\x66\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x7e\x66\x5d\x63\xf5\x8b\x82\x66\x5c\x8b\x87\x8b\x81\x8b\x7b\x89\x8e\x00\x00\x00\x00\x00\x00\x66\x5b\x00\x00\x8b\x7a\x8d\x46\x00\x00\x8d\x45\x8b\x84\x66\xf2\x00\x00\x8d\x49\x8d\x4a\x8d\x44\x8d\x48\x00\x00\x8d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x81\x8d\x47\x67\x93\x67\x91\x8e\x7e\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x8e\x82\x00\x00\x8e\x7d\x8e\x7f\x67\x92\x00\x00\x00\x00\x00\x00\x8f\x75\x8f\x76\x67\xe1\x8f\x74\x00\x00\x00\x00\x00\x00\x90\x53\x68\x5b\x90\x51\x90\x52\x90\xbb\x00\x00\x00\x00\x68\xa2\x91\x45\x91\x43\x91\x44\x91\x46\x00\x00\x00\x00\x00\x00\x91\xab\x00\x00\x4c\xcd\x4e\x59\x00\x00\x51\x5c\x00\x00\x6c\x6b\x00\x00\x00\x00\x6e\x67\x00\x00\x00\x00\x00\x00\x70\x99\x70\x9b\x00\x00\x70\x9a\x00\x00\x70\x9c\x57\xc2\x73\xbb\x70\x9d\x00\x00\x73\xba\x73\xbc\x73\xbd\x77\x41\x5a\x42\x77\x42\x77\x44\x5a\x43\x5a\x41\x77\x43\x00\x00\x7a\xa2\x7a\xa0\x7a\x9f\x00\x00\x7a\x9e\x7a\x9d\x5c\x78\x7a\xa1\x5e\xb8\x7e\x4d\x7e\x4f\x5e\xb9\x7e\x4e\x60\xc3\x00\x00\x60\xc2\x81\x5b\x00\x00\x00\x00\x84\x8b\x84\x8a\x84\x8c\x00\x00\x00\x00\x62\xa3\x00\x00\x87\x58\x63\xfb\x00\x00\x89\x96\x65\x75\x8b\x88\x67\xe2\x4c\xce\x4d\x7f\x4e\x5a\x4f\x84\x51\x5d\x51\x5e\x00\x00\x00\x00\x52\xf0\x00\x00\x00\x00\x70\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x79\x00\x00\x00\x00\x00\x00\x81\xda\x62\xa4\x65\x76\x4c\xcf\x00\x00\x4e\x5b\x00\x00\x00\x00\x6c\x6d\x51\x5f", /* 6b80 */ "\x6c\x6c\x00\x00\x6e\x68\x52\xf1\x6e\x69\x00\x00\x52\xf2\x00\x00\x70\xa0\x55\x53\x55\x52\x00\x00\x73\xc2\x73\xc0\x73\xc1\x73\xbf\x00\x00\x73\xbe\x00\x00\x00\x00\x77\x45\x77\x48\x5a\x45\x77\x46\x5a\x44\x77\x47\x00\x00\x7a\xa3\x00\x00\x00\x00\x7e\x50\x7e\x51\x7e\x52\x00\x00\x81\x5e\x81\x5d\x60\xc4\x81\x5c\x81\x5f\x84\x8d\x00\x00\x00\x00\x84\x8e\x84\x8f\x00\x00\x87\x59\x63\xfc\x65\x77\x8b\x89\x00\x00\x67\x94\x69\x60\x00\x00\x52\xf3\x6e\x6a\x55\x54\x00\x00\x00\x00\x57\xc3\x00\x00\x5a\x46\x77\x49\x00\x00\x5c\x7b\x5c\x7a\x00\x00\x00\x00\x7e\x53\x7e\x54\x60\xc5\x60\xc6\x84\x91\x84\x90\x89\x97\x90\x54\x4c\xd0\x69\x61\x4d\x81\x00\x00\x4f\x85\x6a\xc8\x00\x00\x52\xf4\x5c\x7c\x4c\xd1\x00\x00\x6e\x6b\x52\xf5\x6e\x6c\x00\x00\x63\xfd\x4c\xd2\x00\x00\x00\x00\x6c\x6e\x00\x00\x6e\x6d\x00\x00\x70\xa5\x70\xa4\x70\xa2\x00\x00\x70\xa1\x70\xa6\x70\xa3\x00\x00\x00\x00\x57\xc4\x57\xc5\x00\x00\x00\x00\x5a\x47\x77\x4a\x00\x00\x77\x4b\x77\x4c\x00\x00\x00\x00\x00\x00\x7a\xa8\x7a\xa9\x7a\xa7\x00\x00\x7a\xa5\x7a\xa6\x5c\x7d\x7e\x55\x81\x62", /* 6c00 */ "\x81\x61\x81\x60\x81\x63\x84\x93\x84\x92\x62\xa5\x84\x94\x00\x00\x64\x41\x87\x5a\x00\x00\x89\x98\x8b\x8a\x8f\x77\x00\x00\x4c\xd3\x4d\x83\x4d\x82\x00\x00\x51\x60\x69\x62\x69\x7f\x4e\x5c\x00\x00\x69\xd7\x6a\xc9\x6a\xca\x51\x61\x00\x00\x6c\x6f\x00\x00\x52\xf6\x6e\x6e\x6e\x6f\x00\x00\x55\x55\x55\x59\x70\xa7\x55\x58\x55\x56\x55\x57\x00\x00\x73\xc3\x57\xc6\x5a\x4a\x00\x00\x5a\x48\x5a\x49\x77\x4d\x00\x00\x00\x00\x5e\xba\x4c\xd4\x00\x00\x69\x81\x00\x00\x4d\x84\x00\x00\x00\x00\x69\x84\x00\x00\x00\x00\x4d\x87\x69\x83\x4d\x86\x4d\x85\x4f\x86\x69\x82\x00\x00\x00\x00\x69\xd8\x00\x00\x00\x00\x00\x00\x69\xdc\x69\xde\x69\xdf\x4e\x66\x4e\x67\x69\xdb\x4e\x62\x00\x00\x69\xd9\x00\x00\x69\xdd\x4e\x63\x00\x00\x4e\x5e\x00\x00\x4e\x5f\x00\x00\x4e\x65\x69\xda\x4e\x5d\x4f\x87\x4e\x60\x4e\x61\x4e\x64\x00\x00\x00\x00\x00\x00\x6a\xdb\x6a\xd9\x6a\xcc\x4f\x93\x6a\xd3\x4f\x8e\x6a\xcd\x00\x00\x6a\xd5\x00\x00\x6a\xd2\x4f\x91\x6a\xd1\x4f\x98\x6a\xda\x4f\x9a\x00\x00\x4f\x9c\x00\x00\x6a\xcb\x00\x00\x4f\x8f\x6a\xdc\x00\x00\x4f\x96\x4f\x99\x00\x00", /* 6c80 */ "\x6c\x87\x4f\x89\x4f\xa0\x4f\x97\x6a\xce\x4f\x8c\x4f\x9b\x6a\xd6\x4f\x8a\x4f\x8b\x6c\x85\x6a\xcf\x4f\x92\x4f\x9d\x6a\xdd\x6a\xd0\x4f\x90\x00\x00\x4f\x95\x6c\x70\x4f\x9e\x6a\xd7\x4f\x94\x00\x00\x4f\x9f\x4f\x88\x6a\xd4\x4f\x8d\x6a\xd8\x6c\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6d\x51\x7d\x6c\x77\x51\x74\x00\x00\x6c\x8d\x51\x65\x00\x00\x51\x68\x6c\x84\x00\x00\x6c\x75\x6c\x79\x51\x70\x51\x72\x6c\x7c\x51\x79\x51\x6b\x51\x69\x51\x6a\x51\x78\x6c\x89\x51\x73\x6c\x7b\x6c\x7d\x51\x71\x51\x76\x6c\x7e\x6c\x8c\x00\x00\x52\xf7\x51\x7c\x00\x00\x51\x66\x6c\x8b\x00\x00\x6c\x8f\x6c\x7a\x6c\x91\x6c\x82\x51\x6f\x6c\x76\x51\x6e\x51\x81\x51\x75\x00\x00\x6c\x74\x6e\x78\x51\x7b\x51\x7f\x6c\x83\x6c\x88\x00\x00\x51\x82\x51\x7a\x51\x6c\x51\x62\x00\x00\x51\x67\x00\x00\x6c\x78\x51\x63\x6c\x90\x00\x00\x6c\x72\x6c\x71\x6c\x7f\x6c\x73\x51\x7e\x55\x5a\x51\x77\x6c\x81\x51\x64\x00\x00\x53\x49\x00\x00\x00\x00\x00\x00\x6c\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x6e\x7f\x6e\x83\x00\x00\x6e\x86\x6e\x7a\x00\x00\x00\x00\x6e\x89\x6e\x8c\x6e\x8e\x6e\x77\x52\xf8\x52\xfd\x70\xac\x53\x50\x6e\x87\x6e\x8f\x6e\x7e\x6e\x76\x00\x00\x00\x00\x00\x00\x70\xc7\x53\x43\x6e\x84\x6e\x7b\x6e\x7d\x53\x48\x00\x00\x6e\x81\x53\x42\x6e\x73\x6e\x8a\x00\x00\x6e\x8d\x00\x00\x00\x00\x52\xfc\x00\x00\x53\x4b\x6e\x70\x53\x4d\x52\xfa\x53\x51\x6e\x8b\x6e\x72\x53\x4e\x70\xc1\x6c\x8a\x53\x41\x52\xf9\x6e\x79\x6e\x71\x53\x4f\x53\x47\x6e\x85\x53\x4c\x53\x4a\x6e\x7c\x53\x44\x6e\x74\x53\x45\x53\x46\x6e\x75\x6e\x88\x52\xfb\x6e\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xaf\x55\x62\x55\x67\x00\x00\x00\x00\x00\x00\x70\xb8\x70\xbe\x70\xba\x70\xad\x70\xb0\x70\xa9\x70\xaa\x55\x6e\x55\x5f\x70\xb9\x70\xc2\x55\x69\x55\x5b\x00\x00\x55\x64\x70\xb1\x55\x66\x70\xb2\x70\xbc\x00\x00\x00\x00\x00\x00\x55\x68\x70\xcb\x70\xab\x55\x61\x55\x60\x55\x6c\x70\xa8\x70\xc9\x70\xbd\x70\xca\x70\xc4\x70\xb6", /* 6d80 */ "\x70\xc5\x00\x00\x70\xbf\x70\xc8\x70\xc6\x55\x6d\x70\xb7\x55\x5e\x55\x5d\x55\x65\x55\x6b\x70\xc3\x55\x6a\x70\xb4\x57\xc7\x00\x00\x70\xcc\x70\xb3\x70\xae\x55\x63\x55\x6f\x55\x5c\x00\x00\x70\xbb\x70\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe9\x73\xc5\x73\xc9\x00\x00\x57\xd6\x57\xd4\x00\x00\x00\x00\x57\xcb\x73\xc7\x73\xc6\x57\xdf\x00\x00\x73\xcc\x57\xd9\x00\x00\x73\xde\x73\xea\x57\xc8\x73\xdb\x73\xd4\x57\xeb\x73\xc4\x00\x00\x73\xe0\x00\x00\x57\xe8\x57\xdc\x57\xe7\x57\xd2\x73\xd0\x73\xe2\x73\xda\x57\xd3\x57\xcd\x73\xe8\x00\x00\x73\xe1\x73\xe3\x57\xd5\x57\xdd\x73\xe5\x73\xce\x73\xdf\x73\xd3\x73\xe7\x57\xe2\x57\xca\x57\xe0\x73\xd8\x73\xd6\x73\xd7\x57\xd7\x73\xd2\x73\xd1\x57\xcc\x73\xcb\x73\xe9\x57\xce\x73\xd5\x57\xec\x00\x00\x57\xe6\x73\xca\x57\xe3\x57\xe1\x57\xea\x73\xdc\x57\xe5\x70\xb5\x73\xdd\x57\xe4\x73\xe4\x57\xc9\x73\xd9\x57\xdb\x73\xcd\x57\xda\x00\x00\x57\xd8\x57\xd0\x57\xcf\x77\x4e\x73\xe6\x00\x00\x00\x00", /* 6e00 */ "\x73\xcf\x00\x00\x00\x00\x77\x63\x00\x00\x57\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x67\x57\xde\x5a\x55\x77\x5d\x5a\x63\x00\x00\x77\x51\x5a\x52\x5a\x4e\x77\x6f\x5a\x54\x5a\x58\x5a\x53\x5a\x5c\x77\x73\x77\x6a\x00\x00\x00\x00\x77\x58\x5a\x61\x5a\x5b\x77\x64\x5a\x4b\x77\x70\x77\x69\x5a\x4f\x77\x5e\x5a\x5e\x77\x7b\x77\x7c\x00\x00\x5a\x4c\x77\x6e\x5a\x60\x77\x62\x77\x54\x77\x55\x5a\x64\x77\x59\x77\x60\x77\x5a\x00\x00\x5a\x62\x5a\x6a\x77\x56\x77\x4f\x77\x50\x00\x00\x77\x52\x5a\x51\x77\x5f\x00\x00\x5a\x5f\x5a\x68\x00\x00\x00\x00\x77\x61\x77\x79\x77\x71\x5a\x4d\x77\x77\x5a\x59\x00\x00\x5a\x57\x00\x00\x77\x7d\x5a\x56\x77\x67\x77\x5b\x77\x65\x5a\x6d\x77\x6b\x77\x68\x77\x57\x5a\x69\x77\x75\x77\x72\x77\x7a\x5a\x50\x77\x66\x5a\x6c\x00\x00\x77\x6d\x00\x00\x00\x00\x5a\x5a\x5a\x5d\x00\x00\x77\x6c\x5a\x6b\x77\x5c\x73\xc8\x00\x00\x00\x00\x77\x76\x77\x74\x77\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6e80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x53\x5a\x66\x00\x00\x00\x00\x00\x00\x7a\xc8\x7a\xc7\x7a\xad\x5c\x84\x00\x00\x7a\xc6\x7a\xb0\x7a\xb1\x00\x00\x5c\x8e\x7a\xcf\x5c\x89\x7a\xc5\x00\x00\x7a\xaa\x5c\x8f\x5c\x85\x7a\xb9\x7a\xaf\x7a\xb2\x7a\xca\x5c\x7e\x7a\xd1\x7a\xc9\x5c\x88\x7a\xbe\x5c\x93\x00\x00\x00\x00\x5c\x92\x5c\x8c\x00\x00\x00\x00\x7a\xd0\x5c\x7f\x7a\xbc\x7a\xb3\x7a\xc0\x7a\xcc\x5c\x94\x00\x00\x5c\x82\x7a\xbb\x91\xc7\x7a\xb4\x5c\x8b\x00\x00\x5c\x8a\x7a\xb7\x7a\xc1\x7a\xcb\x7a\xae\x7a\xb8\x5c\x83\x7a\xc2\x5c\x90\x5c\x87\x7a\xb5\x5c\x86\x7a\xac\x7a\xba\x7a\xce\x5a\x65\x5e\xd6\x7a\xbd\x7e\x56\x7a\xbf\x7a\xcd\x5c\x8d\x7a\xb6\x5c\x81\x5c\x91\x60\xd8\x7a\xab\x00\x00\x7a\xc4\x00\x00\x00\x00\x00\x00\x7a\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x72\x5e\xd3\x7e\x67\x7e\x6c\x5e\xc8\x00\x00\x7e\x58\x5e\xd5\x00\x00\x5e\xbf\x7e\x57\x7e\x78\x5e\xd7\x7e\x5b\x7e\x6b\x00\x00\x7e\x5d\x7e\x7b\x7e\x77\x5e\xbd\x5e\xc7", /* 6f00 */ "\x81\x7d\x5e\xd4\x5e\xc5\x7e\x59\x00\x00\x7e\x76\x5e\xc9\x7e\x73\x7e\x81\x7e\x5f\x7e\x68\x00\x00\x00\x00\x7e\x7e\x7e\x74\x5e\xc4\x00\x00\x00\x00\x7e\x66\x5e\xbe\x5e\xbc\x5e\xce\x00\x00\x00\x00\x7e\x64\x7e\x61\x7e\x62\x00\x00\x7e\x7a\x00\x00\x7e\x7f\x7e\x7d\x5e\xc2\x7e\x82\x5e\xc6\x5e\xcd\x00\x00\x7e\x5a\x81\x65\x7e\x63\x00\x00\x5e\xc0\x5e\xd2\x5e\xcf\x5e\xc3\x7e\x6d\x7e\x5e\x5e\xd0\x7e\x6f\x5e\xca\x5e\xcc\x5e\xbb\x00\x00\x7e\x71\x7e\x69\x7e\x5c\x5e\xcb\x7e\x79\x7e\x7c\x7e\x65\x7e\x70\x00\x00\x5e\xc1\x60\xc7\x7e\x6e\x81\x64\x00\x00\x7e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x60\x81\x6e\x81\x78\x60\xca\x81\x77\x81\x84\x60\xcc\x81\x75\x00\x00\x81\x79\x60\xd7\x00\x00\x81\x70\x60\xcf\x00\x00\x81\x7c\x84\x9c\x60\xdb\x60\xda\x81\x7e\x81\x6d\x81\x89\x60\xd5\x00\x00\x60\xcb\x81\x82\x00\x00\x81\x86\x81\x8b\x81\x7f\x81\x73\x60\xce\x60\xd1\x60\xd9\x60\xd4\x00\x00\x81\x76\x7e\x6a\x00\x00\x00\x00\x81\x72\x81\x8a\x60\xd0\x00\x00\x60\xd3\x81\x8c\x60\xc8\x81\x81\x81\x66\x81\x87", /* 6f80 */ "\x64\x4a\x00\x00\x81\x74\x00\x00\x60\xc9\x81\x6f\x60\xcd\x81\x67\x5e\xd1\x81\x6b\x00\x00\x81\x85\x81\x6c\x81\x6a\x60\xd2\x00\x00\x81\x83\x00\x00\x81\x69\x81\x7b\x81\x7a\x81\x88\x81\x71\x60\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x9f\x00\x00\x62\xb2\x62\xa8\x84\xab\x84\x97\x62\xaa\x84\xa3\x62\xb1\x62\xac\x84\xa1\x87\x5c\x84\xa7\x84\xad\x84\xa6\x84\x95\x84\xa4\x84\xaf\x84\xb1\x62\xa7\x84\xb0\x62\xad\x62\xb3\x00\x00\x62\xb0\x00\x00\x84\xaa\x62\xaf\x84\xa5\x00\x00\x84\x99\x84\x9e\x00\x00\x84\xa9\x62\xae\x62\xab\x62\xa6\x62\xa9\x84\x9d\x00\x00\x81\x68\x84\x98\x84\x9b\x84\xac\x84\xa0\x84\x96\x87\x5b\x84\xae\x84\x9a\x84\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x87\x5e\x64\x4e\x00\x00\x00\x00\x64\x42\x00\x00\x00\x00\x64\x46\x87\x60\x87\x66\x87\x64\x64\x44\x64\x45\x64\x4c\x87\x67\x87\x5f\x64\x47\x00\x00\x87\x63\x87\x62\x87\x68\x64\x4d\x00\x00\x64\x48\x64\x4b\x87\x61\x64\x4f\x64\x49\x64\x50\x64\x43\x87\x65\x00\x00\x87\x5d\x00\x00\x00\x00\x89\xa5\x00\x00\x00\x00\x65\x7c\x89\xa2\x89\xa4\x00\x00\x65\x7a\x89\xa0", /* 7000 */ "\x89\xa1\x89\x9c\x00\x00\x00\x00\x84\xa2\x89\x9d\x65\x7b\x89\x99\x00\x00\x65\x78\x89\xa6\x65\x79\x89\x9a\x89\x9b\x89\x9f\x65\x7e\x00\x00\x65\x7d\x00\x00\x00\x00\x89\x9e\x66\x64\x8b\x8e\x8b\x94\x66\x65\x8b\x8b\x66\x62\x66\x5f\x8b\x96\x66\x63\x00\x00\x66\x60\x8b\x8d\x8b\x90\x8b\x91\x8b\x92\x8b\x95\x00\x00\x89\xa3\x8b\x8c\x66\x61\x8b\x93\x8b\x97\x8b\x8f\x00\x00\x00\x00\x00\x00\x8d\x4d\x66\xf4\x8d\x50\x66\xf5\x8d\x58\x8d\x4f\x8d\x4c\x00\x00\x8d\x4e\x8d\x52\x8d\x55\x8d\x54\x8d\x57\x8d\x4b\x00\x00\x66\xf3\x8d\x53\x8d\x56\x8d\x59\x8d\x51\x8e\x83\x8e\x84\x8e\x88\x8e\x89\x00\x00\x8e\x86\x8e\x87\x8e\x85\x00\x00\x67\x95\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe3\x8f\x7b\x00\x00\x00\x00\x8f\x78\x8f\x79\x8f\x7a\x67\xe4\x00\x00\x90\x56\x90\x55\x00\x00\x90\xbe\x68\x81\x90\xbc\x90\xbf\x90\xbd\x91\x47\x68\xa3\x68\xb1\x91\x93\x91\x7d\x00\x00\x91\x92\x91\xc0\x91\xc1\x4c\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x68\x69\xe0\x00\x00\x00\x00\x6a\xde\x00\x00\x4f\xa1\x00\x00\x4f\xa4\x00\x00\x6a\xdf\x00\x00\x4f\xa2\x4f\xa3\x00\x00\x00\x00", /* 7080 */ "\x00\x00\x00\x00\x6c\x9a\x6c\x9c\x6c\x97\x6c\x94\x6c\x96\x00\x00\x00\x00\x00\x00\x51\x86\x00\x00\x00\x00\x00\x00\x51\x84\x00\x00\x00\x00\x6c\x98\x51\x85\x6c\x95\x6c\x92\x51\x83\x6c\x99\x00\x00\x6c\x93\x51\x87\x6c\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x91\x00\x00\x6e\x95\x00\x00\x00\x00\x53\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x98\x00\x00\x53\x52\x53\x55\x53\x57\x53\x59\x53\x56\x6e\x94\x6e\x93\x00\x00\x53\x54\x6e\x96\x6e\x97\x00\x00\x6e\x90\x53\x58\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x6e\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xda\x70\xdb\x70\xdc\x55\x74\x00\x00\x55\x70\x70\xd1\x00\x00\x70\xd9\x70\xde\x55\x75\x00\x00\x70\xcf\x70\xd5\x70\xce\x70\xd8\x00\x00\x00\x00\x70\xd4\x55\x71\x55\x73\x70\xdd\x00\x00\x70\xcd\x70\xd0\x70\xd6\x00\x00\x70\xd7\x70\xdf\x70\xd3\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf1\x73\xf1\x00\x00\x00\x00\x73\xf3\x73\xef\x00\x00\x73\xfb\x73\xed\x73\xfa\x57\xed\x73\xeb\x77\x82\x73\xf5\x57\xf0\x00\x00\x73\xf6", /* 7100 */ "\x73\xf9\x00\x00\x73\xfd\x00\x00\x73\xf2\x00\x00\x73\xf7\x00\x00\x00\x00\x57\xee\x57\xef\x73\xfc\x73\xf0\x73\xec\x74\x41\x00\x00\x73\xf4\x00\x00\x00\x00\x73\xf8\x00\x00\x00\x00\x00\x00\x73\xee\x00\x00\x5a\x6e\x5a\x6f\x77\x8c\x5a\x75\x00\x00\x77\x7f\x77\x89\x77\x7e\x5a\x72\x77\x87\x77\x85\x00\x00\x77\x86\x5a\x70\x00\x00\x77\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x83\x77\x81\x5a\x71\x77\x84\x77\x88\x00\x00\x00\x00\x00\x00\x5a\x73\x00\x00\x00\x00\x00\x00\x77\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xd7\x7a\xde\x7a\xe0\x7a\xe6\x00\x00\x5c\xa1\x7a\xd2\x00\x00\x5c\x99\x00\x00\x7a\xe1\x5c\x9e\x7a\xe7\x5c\x95\x00\x00\x7a\xe4\x00\x00\x7a\xd4\x7a\xe5\x7a\xd3\x00\x00\x5c\xa3\x00\x00\x7a\xdf\x5c\x96\x7a\xe8\x00\x00\x5c\x9b\x7a\xd8\x5c\xa0\x7a\xe3\x7a\xd6\x7a\xdd\x7a\xd9\x7a\xd5\x5c\x98\x5c\x9f\x5c\x9d\x5c\x9a\x5c\xa2\x5c\x97\x7a\xdc\x00\x00\x5c\x9c\x00\x00\x5a\x74\x00\x00\x7a\xe2\x00\x00\x7a\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xdb\x00\x00\x00\x00\x7e\x8a\x00\x00\x5e\xda\x00\x00\x00\x00", /* 7180 */ "\x7e\x86\x7e\x8c\x7e\x88\x00\x00\x5e\xdc\x7e\x87\x7e\x8b\x7e\x83\x00\x00\x7e\x85\x5e\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x89\x7e\x84\x00\x00\x5e\xdd\x00\x00\x5e\xd8\x00\x00\x00\x00\x7e\x8d\x00\x00\x5e\xd9\x81\x92\x81\x8f\x81\x9b\x81\x95\x81\x97\x60\xdc\x81\x91\x81\x99\x00\x00\x00\x00\x81\x98\x81\x96\x00\x00\x81\x9c\x60\xdf\x81\x93\x81\x9a\x00\x00\x60\xdd\x00\x00\x00\x00\x81\x8e\x81\x90\x60\xde\x81\x8d\x81\x9d\x00\x00\x81\x94\x00\x00\x00\x00\x84\xb5\x62\xba\x00\x00\x00\x00\x84\xc0\x84\xbe\x62\xb4\x84\xb4\x84\xb7\x84\xb8\x84\xb3\x62\xbe\x62\xbf\x84\xb2\x84\xc1\x84\xbc\x62\xb8\x62\xb5\x84\xbb\x84\xb9\x00\x00\x00\x00\x62\xbb\x84\xbd\x62\xb6\x00\x00\x62\xb7\x00\x00\x84\xba\x62\xb9\x84\xb6\x00\x00\x84\xbf\x62\xbc\x84\xc2\x84\xc3\x62\xbd\x00\x00\x00\x00\x64\x52\x64\x59\x87\x69\x87\x6f\x00\x00\x87\x6d\x64\x55\x64\x54\x64\x51\x87\x6b\x00\x00\x00\x00\x00\x00\x64\x57\x64\x56\x64\x53\x00\x00\x87\x6e\x87\x6a\x87\x6c\x00\x00\x64\x58\x00\x00\x00\x00\x00\x00\x65\x83\x89\xa9\x00\x00\x65\x7f\x65\x81\x89\xab\x65\x82\x89\xa8", /* 7200 */ "\x00\x00\x89\xa7\x8b\x9b\x89\xaa\x00\x00\x8b\x9c\x66\x66\x8b\x9a\x00\x00\x00\x00\x8b\x99\x00\x00\x8b\x98\x66\x67\x00\x00\x00\x00\x66\xf6\x00\x00\x00\x00\x8d\x5a\x8d\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x8c\x8e\x8b\x67\x96\x00\x00\x8e\x8a\x8f\x7c\x8f\x7d\x00\x00\x00\x00\x90\x57\x90\xc0\x00\x00\x00\x00\x91\x48\x91\xac\x68\xc5\x91\xb6\x4c\xd6\x00\x00\x51\x88\x51\x89\x00\x00\x00\x00\x53\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x64\x5a\x4c\xd7\x00\x00\x51\x8a\x55\x76\x5c\xa4\x4c\xd8\x00\x00\x57\xf2\x5e\xde\x69\x63\x00\x00\x6e\x99\x70\xe0\x00\x00\x7e\x8e\x00\x00\x64\x5b\x4c\xd9\x51\x8b\x6e\x9a\x6e\x9b\x77\x8d\x5a\x76\x00\x00\x00\x00\x7a\xe9\x00\x00\x00\x00\x5c\xa5\x7e\x8f\x00\x00\x00\x00\x60\xe0\x00\x00\x66\x68\x4c\xda\x77\x8e\x4c\xdb\x00\x00\x4e\x6a\x69\xe1\x4e\x69\x4f\xa7\x4f\xa6\x4f\xa5\x6a\xe0\x00\x00\x00\x00\x00\x00\x51\x8c\x00\x00\x51\x8d\x6c\x9d\x00\x00\x6e\x9c\x00\x00\x6e\x9f\x53\x5d\x6e\x9d\x00\x00\x53\x5c\x6e\x9e\x53\x5e\x00\x00\x70\xe3\x70\xe2\x70\xe1\x55\x77\x00\x00\x74\x43\x74\x44\x57\xf3\x74\x42\x74\x45", /* 7280 */ "\x5a\x78\x57\xf4\x00\x00\x00\x00\x5a\x77\x77\x92\x77\x91\x00\x00\x77\x8f\x77\x90\x00\x00\x77\x93\x7a\xeb\x7a\xea\x7a\xee\x00\x00\x7a\xed\x7a\xec\x5e\xdf\x7e\x92\x00\x00\x7e\x91\x5e\xe0\x7e\x90\x81\x9e\x00\x00\x81\x9f\x60\xe1\x00\x00\x84\xc4\x84\xc5\x00\x00\x00\x00\x8b\xa1\x66\x69\x8b\xa0\x8b\x9f\x8b\x9d\x8b\x9e\x67\x97\x8d\x5c\x8f\x7e\x91\x49\x00\x00\x4c\xdc\x00\x00\x69\x85\x4d\x88\x69\x86\x00\x00\x00\x00\x00\x00\x69\xe2\x69\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe6\x00\x00\x00\x00\x6a\xe2\x00\x00\x6a\xe1\x51\x8e\x6a\xe5\x4f\xa9\x6a\xe3\x4f\xa8\x6a\xe7\x6a\xe4\x00\x00\x00\x00\x6c\xa1\x6e\xa0\x6c\x9f\x6c\xa6\x00\x00\x51\x8f\x00\x00\x51\x92\x6c\xa7\x6c\xa3\x00\x00\x6c\xa4\x00\x00\x6c\x9e\x51\x91\x6c\xa0\x51\x90\x6c\xa5\x00\x00\x6c\xa2\x00\x00\x00\x00\x6e\xa4\x53\x60\x53\x61\x00\x00\x6e\xa7\x6e\xa1\x00\x00\x6e\xa6\x00\x00\x6e\xa2\x53\x5f\x6e\xa5\x6e\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xe9\x70\xe6\x00\x00\x70\xe8\x55\x7c\x55\x7b\x55\x79\x70\xe5\x70\xea\x55\x78\x55\x7a\x70\xe7\x74\x4d", /* 7300 */ "\x70\xe4\x70\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x48\x74\x4c\x00\x00\x74\x4b\x77\x95\x77\xa0\x00\x00\x00\x00\x74\x4e\x00\x00\x74\x49\x77\x94\x57\xf8\x00\x00\x00\x00\x57\xf7\x74\x47\x74\x4a\x57\xf9\x00\x00\x57\xf6\x57\xf5\x74\x46\x74\x4f\x00\x00\x00\x00\x00\x00\x77\x97\x77\x9e\x00\x00\x5a\x7a\x77\x9d\x77\x9a\x00\x00\x5a\x7c\x00\x00\x00\x00\x00\x00\x77\x9c\x00\x00\x00\x00\x77\x96\x77\x98\x77\x9b\x77\x99\x5a\x7b\x77\x9f\x5a\x79\x5c\xa6\x00\x00\x00\x00\x7a\xf2\x7a\xf1\x7a\xef\x00\x00\x5c\xa9\x5c\xa8\x7a\xf3\x00\x00\x7a\xf0\x7e\x93\x5e\xe1\x5c\xa7\x00\x00\x00\x00\x00\x00\x7a\xf5\x7a\xf4\x00\x00\x7e\x96\x7e\x94\x60\xe2\x00\x00\x5e\xe2\x7e\x95\x81\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe3\x81\xa0\x81\xa9\x81\xa8\x81\xa6\x00\x00\x81\xa5\x81\xa2\x81\xa3\x81\xa4\x81\xa7\x81\xaa\x00\x00\x00\x00\x84\xca\x84\xc7\x84\xc8\x62\xc0\x84\xc6\x84\xcc\x84\xcb\x84\xc9\x00\x00\x87\x71\x87\x72\x64\x5c\x00\x00\x64\x5d\x87\x70\x00\x00\x65\x85\x89\xac\x65\x84\x66\x6a\x00\x00\x66\x6b\x66\xf7\x8d\x5e\x8d\x5d\x8e\x8d\x8f\x7f", /* 7380 */ "\x67\xe5\x90\x59\x90\x58\x90\x5a\x4d\x89\x6e\xa8\x55\x7d\x57\xfa\x74\x50\x4d\x8a\x69\x87\x4c\xdd\x00\x00\x00\x00\x69\xe4\x00\x00\x00\x00\x00\x00\x6a\xec\x6a\xea\x6a\xeb\x6a\xe8\x4f\xaa\x6a\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xaf\x00\x00\x51\x95\x6c\xad\x6c\xa9\x6c\xac\x00\x00\x6c\xa8\x51\x97\x6c\xab\x00\x00\x51\x94\x51\x93\x00\x00\x51\x96\x6c\xae\x6c\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x53\x65\x53\x68\x6e\xb0\x6e\xaf\x6e\xae\x53\x62\x6e\xb7\x6e\xad\x00\x00\x53\x64\x70\xf0\x00\x00\x6e\xb4\x6e\xb2\x53\x67\x00\x00\x6e\xaa\x6e\xb5\x00\x00\x6e\xac\x6e\xb6\x6e\xb3\x6e\xab\x00\x00\x53\x63\x6e\xb8\x6e\xa9\x53\x66\x00\x00\x00\x00\x00\x00\x00\x00\x70\xf5\x70\xec\x70\xf7\x00\x00\x70\xef\x70\xfa\x70\xfb\x70\xed\x70\xf9\x70\xf6\x70\xf4\x70\xf8\x55\x84\x00\x00\x55\x82\x00\x00\x00\x00\x70\xf2\x00\x00\x70\xee\x00\x00\x70\xf1\x70\xfc\x70\xf3\x55\x83\x6e\xb1\x00\x00\x55\x7e\x55\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x5e\x74\x53\x74\x51\x00\x00\x74\x52\x00\x00\x74\x59\x00\x00\x74\x5a\x74\x56\x58\x42\x74\x5b", /* 7400 */ "\x74\x58\x74\x55\x00\x00\x57\xfd\x74\x54\x57\xfb\x58\x41\x74\x57\x74\x5f\x55\x7f\x57\xfc\x74\x5d\x74\x5c\x58\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xa5\x00\x00\x00\x00\x00\x00\x77\xa6\x5a\x87\x00\x00\x77\xac\x00\x00\x00\x00\x77\xae\x77\xa7\x5a\x81\x77\xab\x77\xaa\x5a\x82\x5a\x88\x00\x00\x5a\x89\x77\xad\x5a\x7e\x77\xa4\x77\xa2\x77\xa8\x77\xa1\x5a\x86\x77\xa3\x77\xa9\x77\xaf\x5a\x7f\x5a\x85\x5a\x83\x5a\x84\x00\x00\x00\x00\x00\x00\x5a\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb0\x7a\xfc\x5c\xaf\x7b\x43\x00\x00\x7a\xf6\x00\x00\x7b\x44\x00\x00\x00\x00\x00\x00\x7a\xf7\x7a\xf8\x00\x00\x7b\x45\x7b\x42\x7a\xfd\x7b\x41\x7a\xfa\x7a\xf9\x00\x00\x7b\x46\x5c\xac\x00\x00\x7a\xfb\x00\x00\x5c\xb1\x5c\xab\x5c\xb2\x5c\xb3\x00\x00\x5c\xae\x5c\xad\x00\x00\x00\x00\x7e\x97\x5e\xe4\x5e\xe3\x00\x00\x00\x00\x7e\x9c\x00\x00\x60\xe4\x5e\xe5\x00\x00\x00\x00\x5e\xe7\x7e\x9d\x5c\xaa\x5e\xe6\x7e\x99\x7e\x9b\x7e\x98\x00\x00\x7e\x9a\x00\x00\x00\x00\x00\x00\x81\xb4\x00\x00\x00\x00\x81\xb3\x81\xb0\x60\xe7\x84\xcd", /* 7480 */ "\x60\xe8\x81\xaf\x00\x00\x60\xe6\x00\x00\x81\xb1\x81\xae\x81\xab\x81\xb2\x81\xac\x81\xad\x60\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x87\x76\x00\x00\x84\xd1\x00\x00\x84\xd0\x84\xd2\x00\x00\x87\x73\x62\xc3\x00\x00\x84\xce\x00\x00\x62\xc1\x00\x00\x62\xc5\x62\xc4\x84\xcf\x84\xd3\x00\x00\x62\xc2\x00\x00\x87\x7a\x64\x60\x65\x86\x64\x61\x64\x5e\x87\x77\x87\x75\x00\x00\x87\x78\x00\x00\x87\x7b\x64\x5f\x87\x79\x87\x74\x00\x00\x00\x00\x89\xaf\x89\xb2\x8b\xa4\x89\xad\x00\x00\x8d\x5f\x89\xb3\x00\x00\x66\x6c\x89\xb1\x65\x87\x89\xae\x89\xb0\x89\xb4\x8b\xa5\x00\x00\x8b\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x66\x6d\x8b\xa2\x00\x00\x00\x00\x00\x00\x66\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x67\x99\x8f\x82\x67\x98\x8f\x84\x8f\x81\x8f\x83\x68\x5c\x90\xc1\x4d\x8b\x6c\xb0\x70\xfd\x71\x41\x58\x44\x7b\x47\x62\xc6\x66\x6e\x67\xe6\x90\xc2\x4d\x8c\x00\x00\x6c\xb1\x46\xf8\x00\x00\x00\x00\x6e\xb9\x00\x00\x6e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x42\x71\x43\x58\x45\x58\x46\x00\x00\x00\x00\x00\x00\x77\xb0\x00\x00\x7b\x4a\x7b\x49\x7b\x48", /* 7500 */ "\x7e\x9e\x00\x00\x7e\x9f\x7e\xa0\x5e\xe8\x00\x00\x00\x00\x81\xb6\x81\xb5\x00\x00\x00\x00\x84\xd4\x62\xc7\x62\xc8\x00\x00\x87\x7f\x87\x7c\x87\x7d\x87\x7e\x89\xb6\x89\xb5\x65\x88\x8b\xa6\x8e\x8e\x4d\x8d\x00\x00\x53\x69\x00\x00\x58\x47\x7b\x4b\x00\x00\x4d\x8e\x00\x00\x71\x44\x58\x48\x00\x00\x00\x00\x5a\x8a\x5a\x8b\x00\x00\x4d\x8f\x4d\x90\x69\xe5\x4f\xac\x4f\xab\x53\x6a\x6e\xbb\x77\xb1\x4d\x91\x4d\x92\x4d\x93\x4d\x94\x00\x00\x00\x00\x00\x00\x4f\xad\x4f\xae\x6a\xee\x6a\xed\x00\x00\x00\x00\x51\x98\x6c\xb4\x6c\xb2\x6c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xbc\x6e\xbd\x00\x00\x00\x00\x53\x6e\x53\x6c\x00\x00\x53\x6d\x53\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x55\x85\x00\x00\x00\x00\x00\x00\x00\x00\x55\x89\x55\x88\x71\x45\x55\x87\x55\x86\x00\x00\x71\x46\x00\x00\x00\x00\x58\x4b\x74\x61\x74\x60\x58\x49\x58\x4a\x00\x00\x00\x00\x00\x00\x5a\x8d\x5a\x8c\x77\xb3\x00\x00\x00\x00\x77\xb2\x58\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb4\x7b\x4d\x5c\xb5\x7b\x4c\x00\x00\x00\x00\x00\x00\x7e\xa1\x81\xb7\x60\xe9", /* 7580 */ "\x84\xd5\x00\x00\x00\x00\x00\x00\x87\x81\x00\x00\x66\x70\x66\x6f\x00\x00\x00\x00\x67\xe7\x4d\x95\x6c\xb5\x00\x00\x00\x00\x58\x4d\x7e\xa2\x5e\xe9\x48\xa8\x00\x00\x6a\xef\x6a\xf0\x00\x00\x00\x00\x6c\xb6\x51\x9a\x51\x9b\x00\x00\x00\x00\x51\x99\x00\x00\x00\x00\x00\x00\x00\x00\x53\x72\x53\x73\x53\x70\x53\x71\x00\x00\x6e\xbe\x00\x00\x00\x00\x6e\xbf\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x71\x47\x00\x00\x55\x8d\x55\x8e\x00\x00\x58\x50\x71\x4d\x00\x00\x55\x93\x55\x91\x71\x4e\x71\x49\x55\x90\x55\x8f\x55\x8a\x71\x4c\x71\x4b\x71\x48\x55\x92\x00\x00\x71\x4a\x55\x8b\x00\x00\x55\x8c\x00\x00\x00\x00\x58\x51\x74\x65\x74\x66\x58\x52\x74\x62\x74\x64\x74\x68\x74\x67\x74\x63\x00\x00\x58\x4e\x58\x4f\x00\x00\x77\xbb\x5a\x92\x5a\x91\x77\xb5\x5a\x8f\x00\x00\x77\xb8\x5a\x93\x77\xb9\x5a\x94\x77\xb6\x5a\x8e\x5a\x90\x77\xba\x00\x00\x77\xb7\x77\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x5a\x00\x00\x7b\x4f\x5c\xb7\x5c\xba\x5c\xb9\x5c\xbe\x5c\xbd\x7b\x5b\x7b\x59\x7b\x52\x7b\x56\x7b\x55\x5c\xbb\x7b\x58\x7b\x54\x7b\x5c\x7b\x53\x5c\xbc", /* 7600 */ "\x5c\xb6\x5c\xb8\x00\x00\x7b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xa4\x5e\xed\x7e\xa8\x5e\xec\x7e\xa5\x5e\xeb\x00\x00\x7b\x50\x7b\x57\x7e\xa7\x00\x00\x5e\xee\x7e\xa9\x7e\xa6\x7e\xa3\x00\x00\x00\x00\x81\xba\x81\xbe\x81\xc0\x81\xbc\x81\xbb\x81\xb9\x60\xec\x60\xea\x60\xef\x60\xf0\x81\xbd\x60\xed\x81\xb8\x60\xee\x5e\xea\x81\xbf\x60\xeb\x00\x00\x00\x00\x00\x00\x84\xd7\x00\x00\x84\xd6\x84\xde\x84\xd8\x84\xdd\x84\xda\x62\xc9\x84\xdc\x00\x00\x00\x00\x62\xca\x00\x00\x62\xcb\x00\x00\x84\xdb\x84\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x64\x63\x87\x82\x00\x00\x00\x00\x64\x62\x87\x85\x87\x83\x87\x84\x00\x00\x00\x00\x64\x64\x00\x00\x00\x00\x00\x00\x89\xba\x00\x00\x65\x8b\x89\xbb\x00\x00\x00\x00\x65\x89\x89\xbc\x65\x8a\x89\xb9\x89\xbd\x00\x00\x89\xb7\x00\x00\x00\x00\x66\x71\x8b\xa7\x66\x72\x66\xf9\x00\x00\x89\xb8\x66\xfa\x00\x00\x00\x00\x00\x00\x67\x9a\x8e\x8f\x00\x00\x67\xe9\x8f\x85\x67\xe8\x00\x00\x90\x5b\x68\x82\x68\x83\x00\x00\x00\x00\x91\xbc\x48\xa9\x00\x00\x53\x74\x6e\xc0\x00\x00\x5a\x95\x5a\x96\x4d\x96\x4e\x6b\x69\xe6", /* 7680 */ "\x00\x00\x6a\xf1\x4f\xaf\x00\x00\x51\x9c\x00\x00\x53\x75\x53\x76\x53\x77\x74\x6a\x71\x4f\x55\x94\x00\x00\x00\x00\x58\x53\x74\x69\x00\x00\x00\x00\x77\xbd\x5a\x98\x00\x00\x77\xbc\x5a\x97\x00\x00\x00\x00\x7b\x5d\x60\xf1\x81\xc4\x81\xc1\x81\xc2\x81\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x86\x00\x00\x89\xbe\x00\x00\x00\x00\x00\x00\x8d\x61\x8d\x60\x00\x00\x8f\x86\x4d\x97\x6c\xb7\x55\x95\x00\x00\x00\x00\x00\x00\x5a\x99\x7b\x5e\x00\x00\x00\x00\x7e\xaa\x00\x00\x60\xf2\x84\xdf\x00\x00\x89\xbf\x8d\x62\x4d\x98\x00\x00\x00\x00\x51\x9d\x53\x7a\x6e\xc1\x53\x7b\x53\x79\x00\x00\x53\x78\x71\x50\x55\x96\x00\x00\x00\x00\x55\x97\x55\x98\x00\x00\x00\x00\x00\x00\x58\x55\x74\x6b\x58\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xbe\x58\x56\x5a\x9a\x7b\x5f\x5c\xbf\x5c\xc0\x00\x00\x5e\xef\x00\x00\x5e\xf0\x60\xf3\x62\xcd\x84\xe0\x62\xcc\x00\x00\x87\x87\x64\x65\x00\x00\x89\xc0\x8d\x63\x4d\x99\x4f\xb0\x6c\xba\x6c\xb9\x51\x9e\x6c\xb8\x51\x9f\x6c\xbb\x00\x00\x6e\xc7\x53\x7e\x53\x7d\x6e\xc9\x6e\xc8\x53\x83\x00\x00\x53\x82\x00\x00", /* 7700 */ "\x00\x00\x53\x7c\x00\x00\x6e\xc3\x6e\xc4\x6e\xc5\x00\x00\x53\x84\x6e\xc2\x53\x7f\x6e\xc6\x53\x81\x00\x00\x00\x00\x00\x00\x00\x00\x71\x53\x71\x57\x71\x55\x71\x54\x00\x00\x71\x58\x00\x00\x00\x00\x00\x00\x71\x59\x71\x5a\x71\x52\x00\x00\x71\x51\x00\x00\x55\x9a\x55\x9b\x00\x00\x71\x5b\x71\x56\x00\x00\x74\x74\x00\x00\x71\x5c\x55\x9c\x55\x99\x00\x00\x00\x00\x00\x00\x74\x6e\x00\x00\x74\x6d\x00\x00\x74\x6f\x74\x70\x74\x72\x74\x71\x74\x76\x58\x5a\x58\x57\x58\x5b\x74\x6c\x58\x5c\x74\x75\x58\x59\x74\x73\x58\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xc1\x77\xc3\x77\xbf\x77\xc0\x00\x00\x00\x00\x77\xc4\x77\xc6\x77\xc7\x77\xc2\x77\xc5\x5a\x9b\x00\x00\x00\x00\x7b\x63\x00\x00\x7b\x68\x7b\x60\x7b\x64\x00\x00\x00\x00\x7b\x69\x7b\x65\x5c\xc1\x5c\xc9\x00\x00\x5c\xc4\x7b\x61\x7b\x62\x5e\xf4\x5c\xcc\x5c\xc5\x00\x00\x5c\xca\x5c\xc3\x7b\x67\x5c\xcb\x7b\x66\x5c\xc7\x5c\xc2\x5c\xc8\x7b\x6a\x7e\xaf\x7e\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc6\x00\x00\x00\x00\x7e\xac\x5e\xf2\x7e\xb2\x5e\xf3", /* 7780 */ "\x7e\xb0\x7e\xab\x7e\xae\x7e\xb3\x5e\xf1\x7e\xad\x00\x00\x60\xf5\x81\xc8\x81\xc7\x00\x00\x60\xf8\x60\xf6\x81\xc5\x60\xf4\x81\xc6\x00\x00\x60\xf7\x00\x00\x00\x00\x00\x00\x84\xe8\x00\x00\x84\xea\x00\x00\x84\xe9\x84\xe1\x84\xe5\x84\xe4\x84\xe2\x62\xcf\x62\xd0\x62\xce\x84\xe3\x84\xe6\x84\xe7\x00\x00\x62\xd1\x00\x00\x64\x6a\x87\x8f\x00\x00\x64\x67\x87\x89\x64\x69\x64\x6b\x00\x00\x00\x00\x64\x68\x87\x8e\x87\x8a\x64\x66\x87\x8d\x87\x88\x87\x8c\x87\x8b\x00\x00\x00\x00\x89\xc2\x65\x8e\x65\x8f\x65\x8c\x00\x00\x65\x8d\x00\x00\x00\x00\x89\xc1\x00\x00\x8b\xaa\x00\x00\x00\x00\x66\x73\x00\x00\x8b\xa8\x8b\xa9\x00\x00\x8d\x64\x8d\x67\x8d\x65\x8d\x66\x8e\x90\x00\x00\x00\x00\x67\x9b\x90\x5c\x90\xc3\x00\x00\x68\x84\x91\x4a\x91\x4b\x68\xb2\x4d\x9a\x53\x85\x00\x00\x77\xc8\x00\x00\x7b\x6b\x00\x00\x4d\x9b\x4f\xb1\x00\x00\x51\xa0\x00\x00\x6e\xca\x6e\xcb\x55\x9d\x00\x00\x00\x00\x77\xc9\x5a\x9c\x5c\xcd\x64\x6c\x87\x90\x8b\xab\x8d\x68\x4d\x9c\x00\x00\x00\x00\x00\x00\x6c\xc1\x6c\xbc\x6c\xbe\x6c\xc0\x6c\xbf\x6c\xbd\x51\xa1\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x53\x86\x6e\xd4\x00\x00\x6e\xcf\x6e\xcc\x00\x00\x00\x00\x6e\xd3\x00\x00\x00\x00\x53\x88\x53\x89\x6e\xd2\x6e\xd1\x6e\xd0\x6e\xcd\x6e\xce\x6e\xd5\x53\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa1\x00\x00\x55\xa7\x55\xa6\x71\x65\x71\x5f\x71\x5d\x00\x00\x55\xa4\x74\x7d\x55\x9f\x71\x62\x71\x66\x71\x68\x71\x64\x71\x5e\x55\xa5\x71\x63\x71\x61\x55\x9e\x71\x69\x55\xa8\x71\x67\x55\xa2\x71\x60\x00\x00\x55\xa3\x55\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5e\x00\x00\x74\x7e\x00\x00\x00\x00\x74\x77\x74\x79\x74\x7b\x00\x00\x74\x7c\x74\x7a\x58\x5f\x00\x00\x74\x7f\x00\x00\x74\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xcd\x5a\x9d\x77\xd5\x00\x00\x77\xca\x00\x00\x77\xd6\x00\x00\x77\xcb\x77\xcc\x00\x00\x00\x00\x77\xd4\x77\xd3\x77\xd0\x58\x5d\x5a\x9e\x77\xce\x77\xd1\x5a\x9f\x77\xd2\x77\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x76\x00\x00\x7b\x7a\x5c\xd4\x00\x00\x7e\xb9\x5c\xd7", /* 7880 */ "\x7b\x78\x00\x00\x00\x00\x7b\x75\x7b\x70\x7b\x72\x7b\x73\x7b\x6c\x00\x00\x5c\xd3\x00\x00\x00\x00\x5c\xd2\x00\x00\x5c\xce\x7b\x6f\x00\x00\x5c\xd5\x00\x00\x5c\xd6\x7b\x6e\x7b\x71\x7b\x79\x5c\xd0\x5c\xd1\x7b\x77\x7b\x6d\x00\x00\x00\x00\x00\x00\x7e\xbb\x5e\xf6\x7e\xbd\x7b\x74\x7e\xbf\x5e\xfa\x7e\xc0\x7e\xbc\x00\x00\x5e\xf7\x7e\xb8\x5e\xf9\x7e\xb5\x7e\xba\x7e\xbe\x7e\xb7\x00\x00\x00\x00\x5c\xcf\x00\x00\x7e\xb4\x5e\xf8\x7e\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xfb\x81\xca\x61\x42\x00\x00\x60\xfd\x00\x00\x00\x00\x5e\xf5\x00\x00\x81\xd1\x81\xd2\x60\xfa\x00\x00\x00\x00\x81\xd0\x81\xd3\x60\xfc\x60\xf9\x81\xcc\x81\xc9\x81\xce\x81\xcb\x61\x43\x81\xcd\x00\x00\x00\x00\x81\xcf\x61\x41\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x84\xf1\x00\x00\x84\xeb\x84\xef\x84\xf5\x84\xf6\x84\xf2\x84\xf3\x84\xf0\x00\x00\x84\xed\x00\x00\x62\xd5\x62\xd2\x84\xec\x84\xee\x00\x00\x62\xd4\x84\xf4\x00\x00\x64\x70\x00\x00\x00\x00\x87\x96\x87\x91\x64\x6f\x00\x00\x00\x00\x64\x6d\x00\x00\x87\x98\x64\x6e\x87\x94\x87\x95\x87\x92\x87\x99\x89\xc3", /* 7900 */ "\x00\x00\x64\x71\x87\x93\x00\x00\x87\x9a\x87\x97\x00\x00\x00\x00\x00\x00\x89\xc7\x00\x00\x00\x00\x89\xc4\x00\x00\x65\x90\x00\x00\x89\xc8\x89\xca\x89\xc9\x89\xc5\x89\xc6\x00\x00\x00\x00\x8b\xb0\x00\x00\x66\x74\x00\x00\x8b\xad\x8b\xaf\x8b\xac\x8b\xb1\x00\x00\x00\x00\x8b\xae\x00\x00\x8d\x6a\x8d\x6d\x8d\x69\x66\xfb\x8d\x6b\x8d\x6c\x8d\x6e\x66\xfc\x67\x41\x66\xfd\x8e\x91\x00\x00\x8e\x93\x00\x00\x8e\x92\x00\x00\x00\x00\x00\x00\x8f\x87\x00\x00\x00\x00\x90\xc4\x91\x4c\x4d\x9d\x00\x00\x00\x00\x6a\xf2\x51\xa2\x6c\xc3\x51\xa3\x51\xa4\x6c\xc2\x00\x00\x6e\xda\x6e\xd9\x53\x8a\x53\x8d\x53\x8c\x53\x8b\x6e\xd6\x6e\xd8\x6e\xd7\x00\x00\x00\x00\x71\x6c\x55\xaa\x71\x70\x71\x6f\x71\x6e\x71\x6a\x55\xa9\x55\xad\x55\xb0\x00\x00\x00\x00\x55\xb1\x71\x6b\x71\x6d\x55\xaf\x55\xae\x55\xac\x55\xab\x74\x87\x00\x00\x74\x85\x74\x81\x58\x60\x00\x00\x74\x82\x58\x61\x74\x83\x74\x84\x74\x86\x00\x00\x58\x62\x00\x00\x00\x00\x77\xda\x00\x00\x77\xd9\x77\xd8\x77\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x7e\x5c\xd8\x00\x00\x7b\x7b\x7b\x7d\x00\x00\x5c\xd9", /* 7980 */ "\x00\x00\x5c\xda\x7b\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xc9\x00\x00\x7e\xc2\x7e\xc3\x00\x00\x5e\xfd\x5e\xfb\x5e\xfc\x7e\xcb\x00\x00\x7e\xca\x7e\xc7\x7e\xc6\x7e\xc5\x7e\xc4\x7e\xc8\x7e\xc1\x00\x00\x81\xd4\x81\xd9\x81\xd7\x00\x00\x00\x00\x00\x00\x81\xd6\x81\xd5\x81\xd8\x00\x00\x84\xf7\x00\x00\x62\xd6\x64\x72\x87\x9c\x00\x00\x64\x73\x87\x9b\x89\xcc\x89\xcb\x65\x91\x00\x00\x8b\xb2\x66\x75\x8d\x6f\x67\xea\x8f\x88\x00\x00\x90\xc6\x90\xc5\x69\x88\x53\x8e\x53\x8f\x74\x88\x00\x00\x5c\xdc\x4d\x9e\x4f\xb4\x4f\xb3\x4f\xb2\x00\x00\x00\x00\x00\x00\x6c\xc4\x00\x00\x00\x00\x51\xa6\x51\xa5\x00\x00\x53\x92\x00\x00\x6e\xdc\x6e\xdf\x6e\xdd\x00\x00\x53\x90\x53\x91\x00\x00\x00\x00\x6e\xdb\x6e\xde\x00\x00\x55\xb8\x00\x00\x00\x00\x00\x00\x71\x77\x71\x79\x71\x78\x55\xb5\x71\x73\x00\x00\x00\x00\x55\xb3\x55\xb2\x00\x00\x55\xb6\x55\xb4\x00\x00\x55\xb7\x71\x76\x71\x71\x71\x72\x71\x75\x71\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x8b\x74\x8c\x74\x8a\x00\x00\x74\x89\x58\x63\x00\x00\x00\x00\x00\x00\x00\x00", /* 7a00 */ "\x5a\xa4\x00\x00\x77\xdb\x77\xdd\x77\xdf\x5a\xa3\x00\x00\x00\x00\x5a\xa1\x00\x00\x77\xdc\x5a\xa2\x77\xde\x5a\xa0\x00\x00\x00\x00\x7b\x89\x7b\x7f\x7b\x83\x7b\x87\x5c\xe0\x7b\x85\x00\x00\x7b\x84\x7b\x81\x7b\x82\x5c\xde\x7b\x88\x5c\xdd\x00\x00\x5c\xe2\x5c\xe1\x5c\xdf\x00\x00\x7b\x86\x00\x00\x00\x00\x00\x00\x7e\xd1\x00\x00\x7e\xd0\x00\x00\x00\x00\x7e\xcc\x00\x00\x00\x00\x5f\x41\x7e\xcf\x7e\xce\x5f\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x48\x00\x00\x81\xdb\x00\x00\x61\x49\x61\x45\x61\x47\x00\x00\x61\x44\x61\x46\x00\x00\x00\x00\x00\x00\x84\xf8\x00\x00\x62\xd9\x84\xfa\x84\xf9\x00\x00\x7e\xcd\x62\xdb\x62\xda\x62\xd7\x62\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xa1\x00\x00\x87\x9f\x64\x74\x87\xa0\x00\x00\x87\xa2\x87\x9e\x87\x9d\x00\x00\x00\x00\x89\xcd\x65\x94\x65\x92\x65\x93\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xb3\x8b\xb4\x66\x77\x00\x00\x66\x76\x8d\x71\x8d\x72\x8d\x70\x00\x00\x8f\x89\x8f\x8a\x00\x00\x00\x00\x4d\x9f\x69\xe7\x4f\xb5\x00\x00\x6c\xc5\x51\xa8\x51\xa7\x6c\xc6\x00\x00\x00\x00\x6e\xe1\x53\x93", /* 7a80 */ "\x6e\xe0\x53\x94\x00\x00\x00\x00\x55\xb9\x71\x7c\x71\x7a\x71\x81\x55\xba\x71\x7b\x71\x7f\x71\x7d\x71\x7e\x00\x00\x00\x00\x74\x8d\x74\x8f\x00\x00\x58\x64\x00\x00\x74\x8e\x58\x65\x5a\xa7\x5a\xa6\x5a\xa5\x77\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x8c\x5c\xe3\x5c\xe4\x00\x00\x7b\x8b\x7b\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xd2\x5f\x44\x5f\x43\x7e\xd3\x7e\xd4\x00\x00\x61\x4b\x61\x4a\x00\x00\x85\x41\x81\xdc\x81\xde\x81\xdd\x84\xfd\x84\xfb\x85\x42\x84\xfc\x00\x00\x62\xdc\x00\x00\x00\x00\x00\x00\x87\xa3\x64\x75\x87\xa4\x87\xa5\x00\x00\x00\x00\x65\x95\x65\x96\x00\x00\x67\x42\x00\x00\x00\x00\x68\x5d\x4d\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x82\x55\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x58\xfc\x00\x00\x00\x00\x5a\xa9\x77\xe2\x5a\xa8\x77\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x8d\x00\x00\x5f\x45\x7e\xd5\x5f\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x43\x8d\x73\x00\x00\x4e\x6c\x51\xa9\x6c\xc7\x00\x00\x53\x96\x00\x00\x53\x95", /* 7b00 */ "\x6e\xe3\x6e\xe4\x00\x00\x00\x00\x71\x84\x71\x86\x55\xbc\x00\x00\x71\x88\x71\x8b\x71\x89\x00\x00\x00\x00\x00\x00\x71\x8a\x71\x87\x71\x83\x55\xbd\x71\x8c\x71\x85\x00\x00\x00\x00\x00\x00\x00\x00\x74\x98\x58\x6b\x74\xa1\x58\x68\x00\x00\x74\x9a\x58\x6c\x00\x00\x58\x66\x00\x00\x74\x95\x74\xa2\x74\x96\x74\x93\x58\x6a\x00\x00\x58\x67\x00\x00\x74\x99\x74\x9c\x58\x69\x74\x9d\x58\x6d\x74\x9e\x74\x94\x74\x9b\x74\x9f\x74\x97\x74\x92\x74\x90\x00\x00\x00\x00\x74\xa0\x00\x00\x00\x00\x77\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x77\xe9\x00\x00\x00\x00\x00\x00\x77\xe5\x77\xeb\x5a\xac\x74\x91\x77\xe6\x5a\xaa\x77\xe3\x5a\xb1\x77\xe7\x5a\xb0\x77\xe8\x5a\xb2\x5a\xad\x5a\xb3\x5a\xae\x00\x00\x5a\xaf\x00\x00\x5a\xab\x00\x00\x77\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe7\x7b\x98\x00\x00\x7b\x9b\x7b\x8f\x7b\x94\x7b\x8e\x5c\xe9\x00\x00\x7b\x92\x00\x00\x00\x00\x00\x00\x7b\x90\x5c\xe8\x00\x00\x7b\x97\x7b\x96\x7b\x93\x7b\x95\x7b\x91\x5f\x4a\x7b\x9a\x5c\xe5\x7b\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7b80 */ "\x00\x00\x00\x00\x7e\xe5\x00\x00\x5f\x51\x7e\xe0\x00\x00\x5f\x50\x7e\xd6\x00\x00\x7e\xd8\x5f\x49\x7e\xdd\x7e\xdc\x7e\xdf\x5f\x4e\x7e\xda\x7e\xd9\x00\x00\x00\x00\x5f\x4d\x5f\x48\x7e\xdb\x5f\x4b\x7e\xe1\x7e\xe3\x00\x00\x7e\xde\x7e\xd7\x5f\x4c\x00\x00\x00\x00\x61\x53\x5f\x47\x00\x00\x00\x00\x7e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe2\x61\x4c\x00\x00\x81\xe4\x00\x00\x61\x4d\x00\x00\x00\x00\x61\x4f\x81\xe7\x00\x00\x81\xdf\x5f\x4f\x81\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe1\x00\x00\x5c\xe6\x61\x52\x00\x00\x00\x00\x61\x4e\x00\x00\x61\x50\x61\x51\x00\x00\x62\xdf\x81\xe6\x81\xe0\x61\x54\x00\x00\x81\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x4c\x85\x47\x00\x00\x00\x00\x85\x51\x62\xdd\x85\x49\x62\xe1\x85\x4f\x85\x46\x85\x43\x85\x52\x64\x7b\x62\xe2\x85\x4e\x85\x44\x62\xe0\x85\x48\x62\xe4\x85\x45\x85\x4a\x62\xe3\x85\x4d\x85\x50\x00\x00\x00\x00\x00\x00\x00\x00\x87\xb7\x87\xb8\x87\xa8\x87\xaf\x87\xad\x00\x00\x00\x00\x64\x79\x87\xb4\x85\x4b\x00\x00\x87\xab\x00\x00\x87\xb5\x64\x78\x87\xaa", /* 7c00 */ "\x87\xa9\x87\xb3\x87\xb0\x87\xb2\x00\x00\x87\xa6\x87\xb6\x64\x76\x00\x00\x87\xb1\x87\xba\x87\xae\x64\x7a\x64\x77\x87\xac\x87\xa7\x87\xb9\x62\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\xd0\x00\x00\x00\x00\x89\xce\x89\xd4\x65\x9a\x89\xd2\x89\xd1\x65\x9c\x89\xd7\x65\x9b\x00\x00\x89\xd8\x89\xd5\x65\x98\x89\xd6\x89\xcf\x65\x99\x65\x97\x8b\xb8\x89\xd3\x00\x00\x00\x00\x89\xd9\x00\x00\x00\x00\x8b\xb5\x00\x00\x00\x00\x00\x00\x66\x7c\x66\x7a\x8b\xb7\x00\x00\x8b\xb9\x8b\xb6\x66\x7b\x66\x78\x66\x79\x66\x7d\x00\x00\x00\x00\x67\x45\x00\x00\x8d\x78\x00\x00\x8d\x77\x8d\x75\x8d\x74\x8d\x76\x00\x00\x67\x44\x67\x46\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x8e\x95\x8e\x94\x00\x00\x00\x00\x8f\x8b\x00\x00\x8f\x8d\x8f\x8f\x8f\x8e\x8f\x8c\x00\x00\x00\x00\x67\xec\x67\xeb\x00\x00\x00\x00\x68\x5f\x68\x5e\x68\x60\x90\x5e\x90\x5d\x00\x00\x91\x4d\x90\xc7\x91\x4e\x68\xa4\x00\x00\x68\xa5\x91\x7e\x00\x00\x00\x00\x68\xca\x4e\x6d\x00\x00\x6c\xc8\x00\x00\x00\x00\x6e\xe6\x6e\xe7\x6e\xe5\x00\x00\x00\x00\x53\x97\x00\x00\x6e\xe8", /* 7c80 */ "\x6e\xe9\x6e\xea\x00\x00\x00\x00\x71\x8d\x71\x93\x00\x00\x00\x00\x71\x91\x55\xbe\x71\x8f\x00\x00\x71\x90\x71\x92\x00\x00\x00\x00\x00\x00\x71\x8e\x58\x6e\x00\x00\x74\xa3\x58\x70\x74\xa5\x58\x6f\x74\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xed\x5a\xb4\x00\x00\x77\xef\x77\xec\x74\xa6\x00\x00\x5a\xb5\x00\x00\x00\x00\x77\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x9e\x00\x00\x5c\xea\x7b\x9c\x5c\xeb\x7b\x9d\x5c\xec\x00\x00\x00\x00\x00\x00\x5f\x52\x7e\xe9\x7e\xe6\x7e\xe8\x5f\x53\x5f\x54\x7e\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe8\x00\x00\x00\x00\x81\xe9\x00\x00\x61\x55\x81\xeb\x81\xea\x00\x00\x46\xf9\x00\x00\x85\x56\x85\x57\x85\x53\x00\x00\x85\x54\x62\xe5\x62\xe6\x85\x55\x00\x00\x64\x82\x00\x00\x00\x00\x64\x7d\x64\x83\x64\x7e\x64\x81\x64\x7c\x00\x00\x64\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x65\x9d\x87\xbb\x00\x00\x8b\xbb\x00\x00\x8b\xba\x00\x00\x8d\x79\x67\x47\x67\x48\x8f\x91\x8e\x96\x00\x00\x8f\x90\x00\x00\x91\x4f\x91\x94\x4e\x6e\x00\x00\x00\x00\x4f\xb6\x00\x00\x6c\xc9\x51\xaa\x00\x00", /* 7d00 */ "\x53\x9a\x6e\xed\x53\x98\x6e\xeb\x53\x9d\x53\x99\x53\x9e\x53\x9c\x6e\xec\x53\x9b\x55\xc2\x55\xc1\x71\x9e\x55\xca\x71\x97\x71\x9d\x55\xc6\x71\x96\x71\x9c\x71\x9a\x55\xc5\x55\xc7\x71\x99\x55\xc0\x71\x98\x55\xcb\x55\xc8\x55\xcc\x55\xc9\x71\x95\x71\x94\x71\x9b\x55\xc3\x55\xbf\x55\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xb5\x74\xae\x00\x00\x5a\xba\x74\xad\x00\x00\x58\x74\x58\x7b\x58\x78\x58\x7e\x58\x7d\x58\x79\x00\x00\x74\xa7\x74\xaa\x00\x00\x74\xa9\x58\x75\x74\xab\x74\xb4\x58\x76\x74\xa8\x74\xb1\x74\xb2\x58\x77\x74\xaf\x58\x7c\x58\x72\x58\x7a\x74\xac\x58\x71\x74\xb0\x00\x00\x00\x00\x74\xb3\x00\x00\x00\x00\x00\x00\x78\x43\x77\xf7\x5a\xb7\x78\x41\x77\xfb\x77\xf3\x77\xfc\x5a\xb9\x77\xf4\x00\x00\x77\xf0\x00\x00\x00\x00\x5c\xf2\x77\xf9\x00\x00\x5a\xb6\x78\x42\x00\x00\x5a\xbd\x5a\xbf\x77\xf2\x00\x00\x00\x00\x5a\xbe\x77\xf5\x5a\xb8\x77\xfd\x77\xf6\x77\xfa\x00\x00\x77\xf8\x5a\xbb\x77\xf1\x5a\xc0\x58\x73\x5a\xbc\x5a\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xee\x7b\xa5\x7b\xa7\x7b\xa9\x7b\xad\x00\x00\x7b\xa3", /* 7d80 */ "\x7b\xa1\x5c\xf0\x00\x00\x7b\xa8\x7b\xac\x7b\xa4\x7b\xa0\x00\x00\x7b\x9f\x00\x00\x00\x00\x00\x00\x7b\xaa\x7b\xa2\x7b\xa6\x5c\xf1\x00\x00\x5c\xef\x7b\xae\x5c\xed\x7b\xab\x00\x00\x7e\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x7e\xf2\x61\x62\x7e\xfc\x5f\x5a\x7f\x43\x5f\x60\x7e\xed\x00\x00\x00\x00\x7e\xfd\x7e\xea\x00\x00\x7f\x42\x7e\xee\x00\x00\x5f\x67\x5f\x64\x7f\x41\x7e\xf8\x5f\x56\x5f\x5e\x5f\x5d\x00\x00\x5f\x5c\x5f\x62\x00\x00\x7e\xeb\x5f\x63\x7e\xf9\x5f\x5f\x5f\x55\x7e\xfb\x5f\x58\x5f\x59\x5f\x61\x7e\xf0\x7e\xef\x7e\xec\x00\x00\x7e\xf4\x7e\xf1\x7e\xf5\x5f\x66\x00\x00\x7f\x44\x5f\x5b\x7e\xf6\x7e\xf7\x00\x00\x7e\xf3\x00\x00\x00\x00\x00\x00\x5f\x65\x00\x00\x00\x00\x00\x00\x00\x00\x81\xf0\x61\x5a\x61\x63\x61\x5f\x81\xed\x00\x00\x61\x5c\x61\x60\x81\xf9\x61\x56\x81\xf1\x00\x00\x61\x5e\x00\x00\x00\x00\x81\xf4\x81\xef\x61\x5d\x61\x61\x81\xee\x00\x00\x61\x5b\x00\x00\x81\xf8\x61\x58\x81\xf7\x81\xf6\x61\x64\x80\xbc\x61\x57\x00\x00\x81\xf5\x81\xec\x00\x00\x61\x65\x81\xf3\x61\x59\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x81\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe9\x62\xee\x62\xe7\x85\x64\x85\x5b\x85\x67\x85\x5f\x85\x65\x62\xef\x62\xe8\x85\x58\x85\x5e\x85\x68\x85\x61\x85\x66\x85\x5a\x00\x00\x00\x00\x85\x62\x62\xea\x85\x60\x62\xed\x62\xec\x85\x5c\x85\x5d\x85\x59\x85\x63\x62\xeb\x85\x6a\x85\x69\x00\x00\x00\x00\x00\x00\x87\xc6\x87\xc2\x64\x8a\x00\x00\x87\xbc\x64\x84\x64\x94\x87\xc8\x64\x8c\x64\x88\x87\xbf\x64\x8f\x64\x92\x87\xca\x64\x87\x87\xc1\x64\x90\x87\xcc\x87\xc9\x87\xbd\x64\x8b\x64\x85\x64\x93\x87\xc4\x64\x8e\x87\xbe\x64\x89\x87\xcb\x64\x8d\x64\x86\x87\xc5\x64\x91\x87\xc3\x00\x00\x00\x00\x87\xc7\x00\x00\x00\x00\x00\x00\x89\xdb\x89\xe1\x65\xa3\x89\xe4\x65\x9e\x65\x9f\x89\xdc\x89\xe3\x89\xde\x65\xa4\x65\xa1\x00\x00\x89\xda\x00\x00\x65\xa0\x89\xe0\x89\xe2\x65\xa2\x89\xdf\x89\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xc5\x66\x82\x66\x83\x66\x7e\x00\x00\x66\x7f\x00\x00\x8b\xc1\x8b\xbf\x00\x00\x8b\xc3\x66\x85\x8b\xc4\x8b\xbd\x8b\xbc\x8b\xc0\x8b\xbe\x66\x81\x8b\xc2\x8d\x7a\x67\x4b\x67\x4a\x8d\x7b\x00\x00", /* 7e80 */ "\x8d\x7d\x8d\x7c\x67\x4c\x00\x00\x00\x00\x00\x00\x8e\x9b\x8e\x98\x8e\x99\x00\x00\x8e\x97\x8e\x9a\x67\x9e\x8e\x9c\x00\x00\x67\x9d\x00\x00\x8f\x92\x00\x00\x68\x61\x68\x63\x90\x5f\x68\x62\x90\xc8\x91\x51\x91\x53\x91\x50\x91\x52\x68\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6f\x00\x00\x53\x9f\x70\xd2\x55\xcd\x00\x00\x00\x00\x58\x7f\x78\x44\x78\x45\x00\x00\x00\x00\x00\x00\x85\x6b\x64\x95\x87\xcd\x00\x00\x00\x00\x65\xa5\x00\x00\x8b\xc7\x8b\xc6\x67\x4d\x8e\x9d\x00\x00\x8f\x93\x68\x85\x69\xe8\x00\x00\x00\x00\x51\xab\x4f\xb7\x00\x00\x00\x00\x6e\xee\x00\x00\x00\x00\x71\xa4\x71\x9f\x71\xa3\x71\xa1\x55\xce\x71\xa2\x71\xa0\x00\x00\x74\xb6\x00\x00\x78\x46\x78\x47\x7b\xb1\x7b\xb2\x5c\xf4\x5c\xf5\x7b\xb0\x7b\xb3\x7b\xaf\x5c\xf3\x00\x00\x5f\x68\x00\x00\x5c\xf6\x7f\x45\x00\x00\x61\x66\x81\xfa\x61\x67\x00\x00\x62\xf0\x85\x6e\x85\x6c\x85\x6d\x87\xd0\x87\xcf\x87\xce", /* 7f80 */ "\x00\x00\x00\x00\x00\x00\x8b\xc8\x00\x00\x66\x84\x8b\xc9\x8f\x94\x68\x86\x90\xc9\x4e\x70\x51\xad\x51\xac\x6e\xf0\x53\xa0\x00\x00\x00\x00\x6e\xef\x71\xa6\x00\x00\x55\xcf\x74\xb7\x71\xa5\x00\x00\x00\x00\x00\x00\x58\x82\x74\xba\x74\xb8\x74\xb9\x58\x81\x00\x00\x78\x49\x78\x4a\x78\x48\x00\x00\x5c\xf9\x7b\xb5\x7b\xb4\x7b\xb6\x5c\xf8\x5c\xf7\x00\x00\x00\x00\x81\xfb\x81\xfd\x00\x00\x61\x68\x81\xfc\x85\x6f\x62\xf1\x89\xe6\x00\x00\x89\xe5\x66\x86\x8b\xca\x66\x88\x66\x87\x8d\x7e\x8e\x9e\x67\x9f\x4e\x71\x6e\xf1\x53\xa1\x71\xa9\x55\xd1\x71\xa8\x71\xa7\x00\x00\x55\xd0\x00\x00\x74\xc0\x00\x00\x74\xc2\x74\xbb\x74\xbc\x58\x83\x74\xbd\x58\x84\x74\xc1\x74\xbe\x74\xbf\x58\x85\x00\x00\x5a\xc3\x5a\xc4\x00\x00\x78\x4b\x00\x00\x00\x00\x00\x00\x7b\xb7\x7b\xb8\x00\x00\x7f\x49\x5f\x6b\x5f\x69\x5f\x6a\x7f\x46\x7f\x47\x00\x00\x7f\x48\x82\x45\x00\x00\x82\x46\x61\x69\x82\x43\x82\x42\x82\x44\x82\x41\x62\xf4\x85\x70\x62\xf2\x62\xf3\x87\xd2\x64\x96\x87\xd1\x89\x55\x00\x00\x89\xe7\x89\xe8\x65\xa6\x00\x00\x65\xa7\x64\x97\x8b\xcb\x8b\xcc\x8d\x7f", /* 8000 */ "\x67\x4e\x4e\x72\x00\x00\x4e\x73\x53\xa2\x51\xae\x55\xd2\x6e\xf2\x00\x00\x00\x00\x00\x00\x5a\xc5\x4e\x74\x53\xa4\x6e\xf3\x6e\xf4\x53\xa3\x53\xa5\x4e\x75\x00\x00\x6e\xf5\x55\xd4\x71\xaa\x55\xd6\x55\xd3\x55\xd5\x00\x00\x74\xc5\x58\x86\x00\x00\x74\xc4\x74\xc3\x00\x00\x7b\xb9\x00\x00\x00\x00\x7f\x4a\x00\x00\x61\x6a\x00\x00\x62\xf5\x85\x72\x85\x71\x00\x00\x87\xd3\x00\x00\x00\x00\x00\x00\x8e\x9f\x00\x00\x00\x00\x4e\x76\x6a\xf3\x6c\xca\x53\xa6\x6e\xf6\x00\x00\x71\xac\x00\x00\x00\x00\x00\x00\x55\xd7\x71\xab\x55\xd8\x00\x00\x00\x00\x00\x00\x74\xc7\x00\x00\x00\x00\x58\x88\x74\xc6\x74\xc8\x00\x00\x58\x87\x00\x00\x00\x00\x00\x00\x00\x00\x78\x4d\x78\x4e\x78\x4c\x5a\xc6\x00\x00\x00\x00\x00\x00\x5c\xfa\x00\x00\x5c\xfb\x00\x00\x5f\x6d\x00\x00\x7f\x4c\x7f\x4b\x5f\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x47\x00\x00\x00\x00\x82\x48\x00\x00\x00\x00\x00\x00\x00\x00\x85\x73\x00\x00\x00\x00\x64\x9b\x64\x9a\x64\x98\x64\x99\x64\x9c\x00\x00\x89\xe9\x65\xa9\x65\xa8\x8b\xcd\x8d\x81\x00\x00\x00\x00\x00\x00\x67\xee\x67\xed\x4e\x77", /* 8080 */ "\x00\x00\x00\x00\x70\x9f\x00\x00\x5c\xfd\x5a\xc7\x5c\xfc\x5f\x6e\x00\x00\x4e\x78\x69\x89\x4e\x79\x4e\x7a\x00\x00\x00\x00\x6c\xcb\x6a\xf6\x00\x00\x6a\xf7\x4f\xb9\x00\x00\x6a\xf4\x4f\xb8\x00\x00\x4f\xbb\x6a\xf5\x4f\xbd\x4f\xbc\x6a\xf8\x4f\xba\x00\x00\x00\x00\x00\x00\x51\xb3\x51\xb1\x6c\xcd\x00\x00\x51\xb0\x00\x00\x00\x00\x00\x00\x51\xb5\x51\xb7\x51\xb4\x00\x00\x6c\xd0\x6c\xcc\x51\xb8\x00\x00\x51\xb2\x4f\xbe\x00\x00\x51\xb6\x6c\xcf\x00\x00\x00\x00\x6c\xce\x00\x00\x51\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xfc\x53\xaa\x53\xab\x6f\x41\x00\x00\x6e\xf8\x6e\xfb\x6f\x47\x6f\x45\x00\x00\x53\xac\x6f\x4b\x53\xaf\x6f\x48\x6e\xfd\x6e\xfa\x00\x00\x00\x00\x78\x50\x6f\x46\x53\xa7\x6f\x49\x6e\xf7\x6f\x43\x53\xa9\x53\xae\x6f\x44\x53\xb2\x53\xb0\x00\x00\x6e\xf9\x53\xad\x00\x00\x6f\x42\x53\xb1\x53\xa8\x6f\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xdd\x00\x00\x55\xe6\x55\xdb\x55\xd9\x71\xae\x55\xe1\x55\xde\x71\xb0\x00\x00\x00\x00\x55\xe0\x71\xaf\x71\xad\x71\xb2\x55\xe5\x55\xe3\x78\x4f\x00\x00", /* 8100 */ "\x71\xb3\x71\xb1\x55\xda\x00\x00\x00\x00\x55\xdc\x55\xdf\x00\x00\x55\xe2\x00\x00\x55\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xd2\x58\x8a\x00\x00\x74\xc9\x74\xcb\x00\x00\x74\xcc\x00\x00\x74\xd4\x74\xd0\x74\xce\x00\x00\x74\xd1\x74\xd5\x58\x8b\x58\x8f\x74\xca\x00\x00\x74\xd3\x00\x00\x58\x8d\x00\x00\x58\x8c\x74\xcf\x74\xcd\x00\x00\x58\x89\x58\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xcd\x78\x58\x00\x00\x00\x00\x78\x56\x5a\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x78\x51\x7b\xc7\x00\x00\x5a\xce\x78\x55\x00\x00\x00\x00\x78\x52\x5a\xca\x5a\xd0\x78\x57\x5a\xcc\x78\x54\x5f\x6f\x5a\xcb\x78\x53\x5a\xd1\x5a\xc9\x5a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xbf\x7b\xbd\x00\x00\x7b\xc3\x00\x00\x7b\xbb\x7b\xc8\x7b\xc0\x00\x00\x7b\xba\x5d\x44\x5d\x4a\x7b\xc5\x00\x00\x7b\xbe\x00\x00\x5d\x47\x00\x00\x00\x00\x5d\x45\x7b\xc6\x5d\x42\x5d\x41\x7b\xc1\x5d\x46\x5a\xd2\x00\x00\x7b\xc4\x7b\xbc\x5d\x43\x5d\x48\x5d\x49\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x74", /* 8180 */ "\x5f\x70\x00\x00\x5f\x75\x7f\x4f\x00\x00\x00\x00\x7f\x4e\x7f\x50\x5f\x72\x7f\x4d\x5f\x73\x7f\x53\x7f\x52\x7f\x51\x00\x00\x5f\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x4c\x00\x00\x82\x4f\x61\x70\x82\x4e\x61\x6f\x61\x6b\x61\x6c\x61\x6d\x82\x4b\x82\x4a\x61\x6e\x00\x00\x82\x4d\x82\x49\x00\x00\x00\x00\x85\x75\x85\x7f\x62\xf8\x62\xf7\x00\x00\x85\x79\x85\x7b\x00\x00\x85\x76\x00\x00\x85\x7a\x85\x74\x85\x7d\x62\xf6\x85\x7c\x85\x78\x00\x00\x85\x7e\x00\x00\x85\x77\x64\x9f\x87\xd4\x87\xda\x64\xa3\x64\xa5\x64\xa2\x64\xa1\x00\x00\x64\xa0\x64\x9e\x87\xd5\x87\xd8\x64\x9d\x87\xd9\x00\x00\x64\xa4\x87\xd7\x00\x00\x87\xd6\x65\xaa\x00\x00\x65\xab\x89\xec\x89\xea\x89\xeb\x00\x00\x00\x00\x8b\xcf\x00\x00\x8b\xce\x66\x89\x8d\x83\x67\x4f\x8d\x82\x00\x00\x8e\xa0\x8f\x95\x67\xef\x91\x54\x91\x55\x68\x64\x4e\x7b\x00\x00\x51\xb9\x78\x59\x5f\x76\x64\xa6\x87\xdb\x4e\x7c\x00\x00\x55\xe8\x55\xe7\x78\x5a\x00\x00\x00\x00\x00\x00\x85\x81\x4e\x7d\x53\xb3\x00\x00\x00\x00\x78\x5b\x78\x5c\x78\x5d\x5f\x77\x62\xf9\x4e\x7e\x00\x00\x51\xba\x6f\x4c", /* 8200 */ "\x55\xe9\x71\xb4\x58\x90\x00\x00\x78\x5e\x5d\x4b\x00\x00\x5f\x78\x62\xfa\x64\xa7\x65\xac\x8d\x84\x4e\x7f\x51\xbb\x00\x00\x00\x00\x55\xea\x74\xd6\x5a\xd3\x00\x00\x5f\x79\x7f\x54\x82\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x81\x5a\xd4\x7b\xc9\x5f\x7a\x4e\x82\x6c\xd1\x6f\x4d\x53\xb4\x00\x00\x00\x00\x71\xb6\x00\x00\x00\x00\x55\xed\x00\x00\x55\xeb\x55\xec\x55\xee\x00\x00\x00\x00\x71\xb5\x00\x00\x00\x00\x74\xdb\x74\xd8\x74\xda\x58\x91\x58\x93\x58\x92\x74\xd7\x58\x94\x74\xd9\x00\x00\x78\x5f\x78\x60\x00\x00\x78\x61\x7b\xcc\x00\x00\x7b\xcd\x00\x00\x7b\xcb\x7b\xce\x00\x00\x5d\x4c\x00\x00\x7b\xca\x00\x00\x5f\x7b\x00\x00\x00\x00\x82\x55\x82\x51\x82\x54\x82\x56\x82\x53\x82\x52\x00\x00\x85\x82\x85\x83\x85\x84\x62\xfb\x62\xfc\x87\xdd\x87\xdc\x87\xde\x00\x00\x89\xee\x89\xed\x00\x00\x8b\xd1\x00\x00\x8b\xd2\x8b\xd0\x00\x00\x67\x50\x00\x00\x8d\x85\x8d\x86\x00\x00\x8f\x96\x90\x60\x90\xca\x4e\x83\x4f\xbf\x00\x00\x64\xa8\x4e\x84\x00\x00\x74\xdc\x78\x62\x00\x00\x68\x8d\x69\xe9\x00\x00\x00\x00\x00\x00\x69\xea\x69\xec\x4e\x85\x69\xed", /* 8280 */ "\x69\xeb\x00\x00\x00\x00\x6b\x43\x6b\x44\x6a\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x42\x4f\xc1\x00\x00\x4f\xc2\x6a\xfc\x6a\xfa\x6a\xf9\x6a\xfd\x4f\xc0\x6b\x41\x6f\x4e\x00\x00\x00\x00\x00\x00\x6c\xd6\x51\xbe\x6c\xd5\x6c\xd7\x00\x00\x51\xbd\x6c\xdc\x51\xc1\x6c\xd2\x6c\xe0\x6c\xe6\x51\xc8\x6c\xe3\x51\xc5\x00\x00\x6c\xd9\x6c\xdf\x6c\xe1\x00\x00\x6c\xd4\x51\xc4\x51\xbf\x6c\xda\x51\xc6\x51\xc9\x51\xc3\x00\x00\x51\xbc\x6c\xde\x6c\xd8\x6c\xe5\x51\xcb\x51\xc7\x51\xc2\x6c\xdd\x55\xef\x6c\xdb\x51\xc0\x51\xca\x00\x00\x6c\xd3\x00\x00\x6c\xe2\x6c\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc5\x53\xbf\x53\xc7\x53\xc4\x6f\x55\x6f\x58\x53\xc0\x00\x00\x6f\x4f\x00\x00\x53\xb9\x53\xc3\x00\x00\x53\xc6\x53\xc8\x6f\x64\x6f\x5b\x00\x00\x53\xb8\x6f\x63\x53\xbc\x53\xba\x53\xb5\x6f\x53\x00\x00\x6f\x62\x6f\x57\x6f\x5a\x6f\x67\x00\x00\x53\xc9\x6f\x61\x53\xc1\x6f\x5c\x6f\x66\x6f\x59\x6f\x5d\x6f\x60\x00\x00\x00\x00\x6f\x51\x6f\x65\x6f\x5f\x00\x00\x00\x00\x6f\x50\x00\x00", /* 8300 */ "\x6f\x54\x53\xc2\x53\xbd\x53\xb6\x53\xbb\x53\xb7\x53\xca\x6f\x52\x71\xc7\x53\xbe\x00\x00\x00\x00\x6f\x5e\x6d\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\xca\x55\xfd\x00\x00\x71\xba\x00\x00\x71\xc5\x71\xc1\x00\x00\x71\xd4\x00\x00\x71\xcc\x00\x00\x71\xc2\x00\x00\x71\xcb\x71\xbc\x71\xc0\x71\xd7\x56\x43\x71\xcf\x71\xc6\x55\xf0\x71\xd5\x71\xb8\x00\x00\x71\xce\x00\x00\x56\x42\x55\xfa\x71\xb7\x55\xf8\x55\xf7\x55\xfc\x71\xcd\x55\xf4\x55\xfb\x6f\x56\x78\x63\x71\xc8\x00\x00\x00\x00\x71\xbe\x56\x41\x71\xbf\x71\xc3\x56\x44\x71\xb9\x71\xd1\x00\x00\x71\xd0\x71\xd8\x55\xf6\x55\xf3\x71\xd6\x71\xd2\x71\xc9\x71\xc4\x55\xf9\x55\xf5\x71\xbb\x55\xf1\x71\xd3\x55\xf2\x00\x00\x71\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xe2\x74\xe4\x74\xe9\x74\xfd\x58\xa2\x58\x98\x00\x00\x74\xe1\x58\xa3\x58\xa4\x74\xec\x74\xf3\x74\xf9", /* 8380 */ "\x00\x00\x74\xe6\x00\x00\x74\xed\x00\x00\x00\x00\x58\xa5\x74\xfb\x74\xf6\x58\xa0\x58\x9e\x74\xf2\x74\xee\x74\xe0\x58\x95\x74\xe5\x74\xdd\x00\x00\x58\x9d\x58\x9f\x74\xea\x74\xe7\x58\x9a\x74\xf7\x58\x97\x74\xe8\x75\x41\x74\xf0\x00\x00\x74\xef\x58\x96\x00\x00\x58\xa1\x00\x00\x58\x99\x74\xde\x74\xe3\x74\xf4\x74\xfa\x58\xa6\x74\xdf\x74\xeb\x74\xf1\x58\x9c\x00\x00\x00\x00\x74\xfc\x74\xf5\x74\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9b\x00\x00\x78\x73\x78\x67\x5a\xdc\x78\x85\x78\x8d\x78\x90\x5a\xda\x78\x6f\x78\x89\x78\x70\x78\x7e\x5a\xe7\x78\x7a\x5a\xe4\x00\x00\x78\x7b\x78\x64\x00\x00\x78\x8a\x00\x00\x00\x00\x5a\xed\x78\x87\x78\x7c\x78\x92\x78\x77\x7b\xee\x00\x00\x78\x95\x5a\xeb\x78\x75\x78\x82\x5a\xee\x5a\xd9\x78\x79\x78\x93\x78\x72\x78\x6b\x78\x76\x00\x00\x78\x6a\x78\x68\x5a\xd5\x78\x8b\x78\x71\x78\x8e\x00\x00\x78\x8f\x5a\xdd\x5a\xe2\x5a\xde\x5a\xe6\x78\x86\x5a\xdf\x78\x7d\x78\x6d\x00\x00\x5a\xd7\x78\x65\x78\x88\x78\x91\x78\x6c\x5a\xe5\x78\x96\x78\x78", /* 8400 */ "\x00\x00\x78\x74\x00\x00\x5a\xd6\x5a\xea\x00\x00\x78\x84\x5a\xec\x00\x00\x78\x7f\x5a\xe1\x5a\xdb\x5a\xe3\x5a\xd8\x5a\xe9\x78\x81\x78\x6e\x78\x83\x78\x69\x78\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xed\x00\x00\x7c\x46\x5c\xdb\x7b\xf2\x00\x00\x7b\xf0\x7b\xdb\x5d\x50\x7b\xeb\x7c\x42\x7b\xe7\x5d\x58\x7c\x41\x7b\xe5\x5a\xe8\x7b\xf5\x7b\xe6\x7b\xfc\x5d\x57\x5d\x4f\x00\x00\x7b\xd0\x7b\xd8\x00\x00\x7b\xf1\x7b\xe9\x7c\x45\x7b\xec\x5d\x5d\x7b\xfd\x00\x00\x5d\x54\x00\x00\x7b\xef\x7b\xf7\x7b\xdc\x7b\xf6\x00\x00\x7c\x4a\x7b\xd7\x7b\xf8\x00\x00\x7c\x48\x00\x00\x7b\xd1\x5a\xe0\x00\x00\x7b\xdf\x7b\xde\x5d\x56\x00\x00\x7b\xe2\x7b\xe4\x7b\xf3\x7c\x47\x5d\x59\x00\x00\x5d\x5a\x00\x00\x7b\xd6\x5d\x52\x7b\xda\x7c\x43\x5d\x5b\x00\x00\x5d\x53\x5d\x55\x5d\x5c\x7c\x49\x7b\xf9\x7b\xf4\x00\x00\x00\x00\x7b\xe1\x7b\xe0\x5d\x51\x7b\xd2\x5d\x4e\x7b\xea\x7b\xd3\x7b\xe8\x00\x00\x00\x00\x7b\xdd\x7c\x44\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x5d\x4d\x00\x00\x00\x00\x00\x00\x7b\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xd5\x7b\xfb\x7b\xd4\x5f\x89\x7f\x7c\x00\x00\x00\x00\x7f\x6b\x00\x00\x00\x00\x7f\x55\x7f\x73\x5f\x81\x7f\x64\x7f\x6e\x5f\x84\x7f\x67\x5f\x82\x7f\x58\x7f\x76\x7f\x57\x7f\x6a\x00\x00\x7f\x56\x00\x00\x00\x00\x7f\x68\x7f\x71\x7f\x6f\x7f\x63\x7f\x5e\x7f\x5c\x00\x00\x7f\x5d\x7f\x70\x7f\x7b\x7f\x65\x5f\x83\x00\x00\x7f\x60\x00\x00\x7f\x74\x00\x00\x5f\x86\x7f\x5f\x7f\x59\x7f\x69\x5f\x8a\x00\x00\x00\x00\x5f\x7d\x5f\x87\x7f\x61\x7f\x5b\x00\x00\x5f\x7f\x7b\xfa\x5f\x7e\x7f\x6c\x00\x00\x5f\x7c\x5f\x8c\x5f\x85\x7f\x6d\x7f\x62\x7f\x5a\x7f\x75\x7f\x66\x5f\x8b\x7f\x79\x5f\x88\x7f\x78\x00\x00\x7f\x72\x7f\x77\x00\x00\x00\x00\x00\x00\x7f\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x7e\x82\x7f\x82\x72\x82\x71\x82\x6d\x61\x7c\x00\x00\x61\x74\x82\x82\x82\x81\x7b\xcf\x82\x6a\x82\x6e\x82\x68\x00\x00\x82\x7b\x82\x6c\x00\x00\x82\x83\x82\x65\x82\x63\x82\x6f\x82\x79\x82\x74\x61\x7e", /* 8500 */ "\x82\x5a\x00\x00\x82\x78\x00\x00\x00\x00\x00\x00\x61\x7f\x7b\xe3\x82\x66\x82\x5d\x82\x60\x82\x87\x82\x67\x82\x5e\x82\x5c\x82\x59\x00\x00\x61\x78\x82\x70\x61\x77\x61\x7b\x82\x6b\x82\x73\x61\x71\x82\x84\x82\x88\x61\x73\x00\x00\x82\x62\x82\x76\x82\x7a\x82\x5f\x82\x85\x61\x7a\x00\x00\x61\x79\x82\x57\x61\x7d\x82\x7d\x82\x61\x82\x75\x82\x5b\x82\x69\x82\x64\x61\x75\x61\x76\x82\x77\x82\x89\x82\x86\x82\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x58\x00\x00\x61\x72\x85\x95\x00\x00\x85\x8c\x85\x8f\x00\x00\x63\x45\x85\x91\x85\x86\x85\x8d\x85\x93\x63\x42\x63\x46\x62\xfd\x00\x00\x00\x00\x85\x88\x85\x98\x00\x00\x00\x00\x85\x92\x00\x00\x85\x89\x85\xa1\x85\x9b\x85\x85\x87\xf1\x85\x8b\x63\x41\x00\x00\x85\x96\x00\x00\x85\xa0\x63\x49\x00\x00\x85\x9d\x85\x8a\x85\x90\x85\x94\x85\x8e\x85\xa2\x85\x9f\x85\x9c\x63\x43\x63\x44\x63\x48\x85\x87\x85\xa3\x63\x47\x85\x99\x00\x00\x00\x00\x85\x97\x00\x00\x00\x00\x00\x00\x85\x9a\x88\x41\x87\xeb\x87\xf0\x87\xfd\x87\xef\x87\xe7\x87\xec\x00\x00\x64\xab\x00\x00", /* 8580 */ "\x87\xe0\x87\xf8\x87\xfa\x87\xdf\x64\xaa\x87\xfc\x87\xf4\x64\xb1\x87\xfb\x87\xed\x64\xb3\x87\xe5\x85\x9e\x87\xf5\x87\xf2\x87\xe1\x88\x43\x64\xad\x00\x00\x00\x00\x64\xae\x87\xe3\x87\xf3\x00\x00\x88\x42\x87\xf6\x87\xe9\x64\xb0\x64\xac\x87\xf7\x87\xea\x88\x44\x87\xe4\x87\xee\x87\xf9\x87\xe6\x87\xe8\x00\x00\x65\xb5\x87\xe2\x64\xb2\x65\xae\x64\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x64\xaf\x65\xb2\x8a\x41\x00\x00\x89\xf4\x89\xef\x89\xf5\x8a\x42\x8a\x46\x8a\x45\x65\xb4\x65\xb3\x00\x00\x00\x00\x89\xf6\x8a\x47\x89\xf9\x89\xf1\x00\x00\x89\xf3\x89\xf2\x89\xf8\x89\xfd\x89\xf0\x89\xf7\x89\xfc\x65\xb1\x00\x00\x89\xfa\x00\x00\x65\xaf\x89\xfb\x65\xad\x65\xb0\x8b\xe2\x8a\x43\x00\x00\x00\x00\x66\x8d\x00\x00\x8b\xda\x8b\xde\x8b\xd6\x8b\xd9\x00\x00\x8b\xe1\x66\x8b\x8b\xe6\x8b\xdf\x00\x00\x8b\xd7\x8b\xe7\x8b\xe0\x66\x8e\x66\x8f\x8b\xe4\x00\x00\x8b\xd8\x66\x8a\x66\x8c\x8b\xd3\x8b\xdb\x8b\xd5\x00\x00\x8b\xe5\x8b\xe3\x8b\xd4\x8b\xdc\x00\x00\x00\x00\x00\x00\x8d\x8d\x66\x90\x8b\xdd\x67\x52\x67\x54\x67\x51\x00\x00\x8d\x92\x8d\x8a\x8d\x88", /* 8600 */ "\x8d\x8c\x8d\x89\x00\x00\x00\x00\x8d\x8e\x8d\x90\x67\x55\x67\x57\x00\x00\x8d\x8f\x67\x58\x67\x56\x8d\x91\x00\x00\x00\x00\x00\x00\x00\x00\x67\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa0\x8e\xa1\x8e\xa7\x67\xa2\x8d\x8b\x8e\xa6\x00\x00\x8e\xad\x8e\xa4\x8e\xab\x8e\xaa\x8d\x87\x8e\xa5\x8a\x44\x8e\xae\x8e\xa3\x8e\xa8\x00\x00\x8e\xac\x8e\xa2\x00\x00\x8f\x9a\x67\xa1\x8e\xa9\x00\x00\x00\x00\x90\x65\x8f\x9b\x8f\x99\x8f\x97\x8f\x98\x8f\x9c\x00\x00\x68\x65\x90\x63\x90\x61\x90\x66\x90\x64\x00\x00\x90\x67\x68\x66\x90\x62\x00\x00\x00\x00\x90\xcb\x00\x00\x00\x00\x91\x56\x91\x57\x91\x58\x00\x00\x00\x00\x91\xb7\x91\xad\x69\xee\x51\xcc\x00\x00\x53\xcb\x00\x00\x71\xda\x71\xd9\x56\x45\x58\xa7\x75\x43\x00\x00\x00\x00\x75\x42\x00\x00\x5a\xef\x5d\x5f\x00\x00\x5d\x5e\x5d\x60\x00\x00\x7f\x7d\x82\x8a\x85\xa4\x85\xa6\x85\xa5\x00\x00\x64\xb4\x88\x45\x8a\x48\x91\x95\x4e\x86\x00\x00\x6c\xe9\x6c\xea\x6c\xe8\x6c\xe7\x51\xcd\x00\x00\x6f\x6b\x6f\x69\x00\x00\x00\x00\x6f\x68\x00\x00\x53\xcc\x53\xce\x53\xcd\x6f\x6a\x00\x00\x00\x00\x00\x00", /* 8680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\xe6\x71\xe3\x71\xe1\x00\x00\x00\x00\x56\x46\x71\xe4\x56\x4b\x71\xde\x71\xed\x00\x00\x71\xef\x71\xdf\x00\x00\x56\x48\x71\xf0\x71\xeb\x71\xdd\x71\xe2\x71\xec\x71\xe8\x71\xe5\x00\x00\x56\x4d\x71\xee\x71\xe0\x00\x00\x00\x00\x71\xe9\x71\xdb\x56\x4c\x56\x49\x71\xe7\x00\x00\x71\xea\x71\xdc\x56\x4a\x56\x47\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb1\x75\x4a\x58\xb0\x00\x00\x75\x4d\x75\x50\x58\xad\x58\xab\x75\x45\x75\x4e\x75\x4c\x75\x49\x75\x51\x75\x52\x75\x54\x75\x55\x75\x44\x58\xaa\x75\x47\x75\x46\x75\x53\x58\xac\x75\x48\x58\xae\x58\xa9\x75\x4b\x58\xb2\x00\x00\x58\xaf\x75\x4f\x00\x00\x00\x00\x00\x00\x5a\xf6\x78\xa5\x00\x00\x78\x9a\x5a\xf3\x00\x00\x7c\x50\x78\xa3\x78\x97\x5a\xf1\x78\x9c\x5a\xf4\x78\xa0\x78\x9e\x5a\xf7\x5a\xf0\x00\x00\x00\x00\x78\x98\x78\x9b\x5a\xf5\x00\x00\x78\x99\x00\x00\x78\xa4\x78\xa2\x78\x9d\x78\x9f\x78\xa1\x5a\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x51\x7c\x57\x7c\x4d\x7c\x53\x5d\x61\x7c\x4f\x5d\x67\x00\x00\x00\x00\x5d\x66\x00\x00", /* 8700 */ "\x5d\x65\x7c\x56\x5d\x68\x5d\x69\x7c\x4c\x7c\x59\x5d\x6a\x5d\x64\x5d\x63\x7c\x55\x5d\x6b\x7c\x4b\x7c\x4e\x7c\x58\x7c\x54\x00\x00\x00\x00\x7f\x9e\x7f\x93\x5d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x93\x7f\x87\x7f\x9c\x7f\x88\x5f\x8e\x00\x00\x7f\x85\x00\x00\x7f\x8e\x7f\x86\x5f\x90\x7f\x7f\x7f\x9b\x5f\x91\x7f\x98\x7f\x99\x7f\x81\x5f\x96\x7f\x90\x00\x00\x7f\x8a\x7f\x91\x7f\x84\x00\x00\x7f\x9d\x7f\x95\x7f\x8f\x7f\x7e\x5f\x92\x7f\x96\x00\x00\x5f\x95\x7f\x9a\x00\x00\x7f\x94\x5f\x8f\x7f\x92\x00\x00\x7f\x8c\x5f\x8d\x7f\x83\x7f\x8b\x7f\x97\x7f\x89\x00\x00\x00\x00\x7f\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8a\x7c\x52\x82\x9c\x82\xa5\x82\x9b\x82\x97\x82\x94\x61\x8b\x82\x92\x5f\x94\x82\x8b\x61\x89\x82\x91\x61\x88\x82\x96\x82\x93\x82\xa3\x82\x9e\x82\x98\x82\x9d\x61\x84\x82\x95\x82\xa8\x82\x8c\x82\x8d\x82\xa4\x61\x85\x82\xa9\x61\x87\x82\xaa\x82\x9a\x7f\x82\x82\xa0\x82\x99\x82\xa2\x82\x9f\x00\x00\x00\x00\x00\x00\x82\x90\x61\x82\x82\xa7\x61\x83\x82\x8e\x61\x86\x85\xb0\x82\xa1\x82\xa6\x00\x00\x00\x00\x00\x00\x00\x00", /* 8780 */ "\x00\x00\x85\xad\x61\x81\x63\x4a\x85\xb7\x85\xb3\x00\x00\x85\xb1\x85\xac\x85\xbb\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x85\xa8\x85\xb4\x85\xb5\x85\xab\x85\xaa\x85\xb8\x00\x00\x85\xae\x85\xa9\x85\xaf\x00\x00\x85\xba\x85\xa7\x85\xb9\x85\xb6\x63\x4c\x63\x4b\x00\x00\x00\x00\x63\x4d\x85\xb2\x8a\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x47\x64\xba\x88\x4b\x88\x48\x88\x4f\x88\x55\x88\x4a\x00\x00\x88\x5e\x64\xb7\x88\x58\x88\x4d\x88\x59\x88\x54\x88\x5b\x88\x4c\x64\xbc\x64\xbb\x88\x4e\x88\x5c\x88\x46\x88\x5a\x64\xb5\x00\x00\x88\x52\x88\x51\x88\x56\x88\x49\x64\xb9\x00\x00\x64\xbd\x88\x50\x88\x57\x64\xbe\x88\x53\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb6\x64\xb8\x8a\x55\x8a\x53\x00\x00\x00\x00\x8a\x5a\x8a\x57\x8a\x5b\x00\x00\x8a\x4c\x8a\x54\x8a\x5f\x88\x5d\x8a\x50\x65\xb9\x82\x8f\x8a\x4b\x8a\x58\x8a\x52\x8a\x4f\x8a\x4a\x8a\x49\x8a\x5e\x00\x00\x8a\x4e\x8a\x4d\x65\xb7\x8a\x56\x00\x00\x65\xb6\x00\x00\x00\x00\x65\xb8\x8a\x51\x8a\x5d\x00\x00\x8b\xeb\x8b\xec\x00\x00\x66\x94\x8b\xe9\x66\x91\x8b\xf1\x00\x00\x66\x95\x8b\xf3", /* 8800 */ "\x8b\xe8\x8a\x5c\x8b\xf5\x8b\xea\x00\x00\x66\x92\x8b\xf0\x00\x00\x8b\xf2\x8b\xed\x8b\xf4\x8b\xef\x8b\xee\x66\x93\x00\x00\x00\x00\x8d\x94\x8d\x95\x00\x00\x8d\x97\x67\x59\x67\x5a\x8d\x98\x8d\x96\x00\x00\x8d\x93\x00\x00\x8e\xb1\x8e\xb4\x8e\xb0\x00\x00\x67\xa6\x8e\xb2\x67\xa5\x67\xa4\x67\xa3\x8e\xb3\x8f\xa1\x8f\x9f\x00\x00\x8f\x9e\x8e\xaf\x8f\xa0\x8e\xb5\x8f\x9d\x00\x00\x90\x6a\x90\x48\x90\x68\x68\x67\x90\x69\x90\x6b\x00\x00\x90\xce\x68\x87\x90\xcd\x90\xcc\x68\x88\x00\x00\x68\xa6\x91\x7f\x91\x97\x91\x96\x91\x98\x4e\x87\x6f\x6c\x00\x00\x71\xf1\x71\xf2\x00\x00\x00\x00\x00\x00\x78\xa6\x00\x00\x8e\xb6\x90\xcf\x4e\x88\x53\xcf\x6f\x6d\x00\x00\x00\x00\x00\x00\x75\x56\x58\xb3\x00\x00\x78\xa8\x78\xa7\x5a\xf8\x00\x00\x5d\x6c\x82\xab\x61\x8c\x00\x00\x61\x8d\x00\x00\x00\x00\x00\x00\x63\x4f\x68\x89\x4e\x89\x00\x00\x00\x00\x00\x00\x6f\x6e\x51\xcf\x6f\x70\x6f\x6f\x53\xd0\x00\x00\x71\xf3\x00\x00\x71\xfa\x56\x4e\x71\xf8\x71\xf6\x00\x00\x71\xfd\x71\xf4\x71\xf5\x56\x4f\x00\x00\x56\x53\x00\x00\x00\x00\x72\x41\x56\x52\x71\xfc\x71\xf9", /* 8880 */ "\x71\xf7\x56\x50\x56\x51\x71\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb5\x75\x57\x00\x00\x58\xba\x75\x67\x58\xb9\x75\x69\x00\x00\x00\x00\x75\x5d\x58\xb7\x75\x68\x00\x00\x75\x58\x58\xb8\x75\x64\x75\x60\x75\x62\x75\x5c\x75\x63\x00\x00\x00\x00\x58\xb4\x75\x5f\x00\x00\x75\x5e\x75\x5a\x00\x00\x75\x65\x00\x00\x00\x00\x75\x61\x75\x59\x00\x00\x75\x5b\x58\xb6\x75\x66\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xfb\x78\xb3\x00\x00\x00\x00\x00\x00\x78\xaf\x78\xb1\x78\xac\x78\xab\x78\xa9\x00\x00\x78\xb0\x78\xb2\x78\xae\x00\x00\x78\xad\x5a\xf9\x5a\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xb5\x5d\x74\x7c\x5b\x7c\x61\x7c\x5c\x7c\x5d\x00\x00\x7c\x62\x00\x00\x5d\x76\x00\x00\x5d\x6e\x5d\x75\x7c\x5a\x78\xaa\x5d\x71\x5d\x6f\x7c\x60\x7c\x5f\x5d\x70\x5d\x72\x7c\x5e\x5d\x6d\x00\x00\x5d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xa0\x5f\x9d\x00\x00\x00\x00\x7f\xab\x7f\xaa\x00\x00\x7f\xa5\x5f\x9f\x7f\xa9\x7f\xa1\x7f\xa2\x5f\x97\x5f\x99\x00\x00\x7f\xa7\x7f\x9f\x5f\x9b\x5f\x9a\x7f\xa3\x7f\xa8\x7f\xa6\x5f\x9c\x7f\xa4\x00\x00", /* 8900 */ "\x00\x00\x78\xb4\x5f\x98\x00\x00\x00\x00\x82\xac\x82\xb3\x61\x8f\x00\x00\x82\xb7\x61\x93\x82\xaf\x82\xad\x00\x00\x82\xb6\x00\x00\x61\x8e\x82\xb5\x61\x90\x61\x91\x82\xae\x61\x92\x82\xb4\x82\xb0\x82\xb1\x82\xb2\x5f\x9e\x00\x00\x00\x00\x00\x00\x85\xbc\x85\xc8\x00\x00\x63\x54\x85\xc3\x85\xc5\x00\x00\x63\x52\x85\xbd\x85\xc1\x00\x00\x85\xc4\x63\x50\x63\x53\x85\xc7\x85\xbf\x85\xc0\x85\xc6\x85\xbe\x85\xc2\x63\x51\x88\x60\x00\x00\x88\x5f\x64\xc0\x88\x65\x64\xc2\x00\x00\x00\x00\x64\xbf\x88\x61\x64\xc3\x88\x62\x00\x00\x00\x00\x88\x63\x88\x66\x00\x00\x64\xc1\x00\x00\x8a\x64\x00\x00\x00\x00\x8a\x67\x00\x00\x8a\x61\x8a\x63\x00\x00\x00\x00\x8a\x62\x8a\x65\x8a\x66\x88\x64\x8a\x60\x00\x00\x00\x00\x66\x98\x8b\xf9\x8b\xfc\x8c\x41\x8b\xf7\x8b\xf8\x8b\xfb\x8b\xfd\x66\x99\x66\x97\x66\x96\x8b\xfa\x8b\xf6\x8d\x99\x67\x5b\x00\x00\x8d\x9a\x00\x00\x00\x00\x8e\xb8\x67\xa7\x8e\xba\x67\xa8\x8e\xb7\x8e\xb9\x67\xf1\x00\x00\x8f\xa2\x67\xf0\x90\x6e\x90\x6d\x00\x00\x90\x6c\x00\x00\x00\x00\x91\x59\x91\x5a\x91\x5c\x91\x5b\x00\x00\x69\xef\x4e\x8a", /* 8980 */ "\x00\x00\x53\xd1\x75\x6a\x5a\xfc\x00\x00\x7c\x63\x65\xba\x00\x00\x8c\x42\x00\x00\x00\x00\x4f\xc3\x00\x00\x00\x00\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x58\xbb\x00\x00\x78\xb6\x5a\xfd\x78\xb8\x78\xb7\x00\x00\x00\x00\x7c\x64\x5d\x77\x7f\xac\x7f\xaf\x7f\xae\x00\x00\x7f\xad\x82\xb8\x82\xba\x82\xb9\x00\x00\x63\x56\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x64\xc4\x88\x67\x88\x69\x88\x68\x00\x00\x00\x00\x65\xbb\x00\x00\x00\x00\x00\x00\x8c\x44\x8c\x43\x00\x00\x8d\x9b\x67\x5c\x00\x00\x00\x00\x67\xa9\x8f\xa4\x8f\xa3\x68\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc4\x6f\x71\x53\xd2\x75\x6d\x75\x6b\x00\x00\x00\x00\x75\x6c\x78\xba\x78\xbb\x7c\x6b\x78\xb9\x00\x00\x7c\x65\x7c\x69\x7c\x68\x7c\x6a\x5d\x78\x7c\x67\x7c\x66\x7c\x6c\x00\x00\x7f\xb2\x7f\xb0\x00\x00\x7f\xb1\x82\xbd\x82\xbb\x00\x00\x00\x00\x82\xbc\x85\xc9\x88\x6a\x88\x6b\x65\xbc\x00\x00\x8c\x45\x8d\x9c\x67\x5d\x00\x00\x8e\xbb\x8f\xa5\x67\xf2\x00\x00\x90\x6f\x91\x5d", /* 8a00 */ "\x4f\xc5\x00\x00\x53\xd4\x53\xd5\x6f\x72\x00\x00\x00\x00\x6f\x73\x53\xd3\x00\x00\x56\x59\x00\x00\x56\x57\x00\x00\x56\x56\x56\x5d\x56\x55\x56\x5e\x72\x42\x56\x5b\x00\x00\x56\x58\x56\x5c\x56\x5a\x56\x54\x00\x00\x00\x00\x58\xc4\x00\x00\x58\xbe\x75\x71\x58\xc3\x00\x00\x00\x00\x58\xc5\x58\xbf\x00\x00\x58\xc0\x00\x00\x75\x6f\x00\x00\x00\x00\x58\xbd\x00\x00\x75\x70\x58\xc2\x00\x00\x00\x00\x75\x6e\x58\xc1\x00\x00\x00\x00\x5b\x4b\x00\x00\x5b\x4d\x00\x00\x00\x00\x78\xbe\x5b\x4c\x5b\x41\x5b\x45\x00\x00\x5d\x8c\x7c\x71\x78\xc0\x5b\x46\x00\x00\x00\x00\x78\xc3\x78\xc4\x5b\x4a\x00\x00\x78\xc6\x00\x00\x78\xc8\x00\x00\x78\xc9\x78\xbd\x78\xbc\x78\xca\x5b\x49\x78\xc7\x78\xc5\x00\x00\x5b\x47\x5b\x43\x5b\x4e\x78\xc1\x78\xc2\x78\xbf\x00\x00\x5b\x48\x00\x00\x00\x00\x5b\x44\x00\x00\x5b\x42\x7c\x70\x5d\x87\x5d\x82\x00\x00\x00\x00\x5d\x7c\x00\x00\x5d\x8d\x5d\x7d\x00\x00\x5d\x79\x5d\x89\x5d\x86\x5d\x88\x00\x00\x5d\x7e\x5d\x84\x5d\x7a\x5d\x7b\x7c\x78\x7c\x75\x7c\x6d\x7c\x72\x00\x00\x5d\x8a\x7c\x79\x5d\x8b\x5d\x81\x00\x00\x00\x00\x7c\x6f", /* 8a80 */ "\x00\x00\x7c\x77\x7c\x73\x7c\x76\x7c\x74\x5d\x85\x7c\x6e\x5d\x7f\x00\x00\x00\x00\x00\x00\x7f\xb5\x5f\xa1\x5f\xa4\x00\x00\x7f\xb7\x00\x00\x5f\xac\x7f\xb6\x5f\xa6\x00\x00\x61\x98\x7f\xb8\x00\x00\x5f\xab\x7f\xb4\x5f\xad\x00\x00\x00\x00\x00\x00\x5f\xa2\x00\x00\x5d\x83\x5f\xa5\x00\x00\x5f\xa3\x5f\xa7\x5f\xa9\x5f\xa0\x5f\xae\x5f\xaa\x00\x00\x5f\xa8\x7f\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x61\x9f\x00\x00\x61\x9b\x00\x00\x00\x00\x00\x00\x61\xa2\x00\x00\x82\xc0\x61\xa3\x82\xcc\x82\xc5\x61\x94\x82\xcd\x82\xc7\x61\x9e\x82\xc8\x00\x00\x61\x9d\x82\xcb\x61\x97\x82\xc9\x82\xbf\x61\x96\x85\xd4\x61\x9c\x00\x00\x61\x99\x00\x00\x61\xa1\x00\x00\x82\xbe\x00\x00\x82\xc2\x61\x95\x82\xc1\x82\xc3\x82\xc4\x61\xa0\x82\xc6\x82\xca\x82\xce\x00\x00\x61\xa4\x63\x5c\x85\xcf\x85\xd5\x85\xd2\x85\xca\x85\xd6\x85\xcb\x00\x00\x85\xd1\x00\x00\x63\x57\x63\x5d\x85\xd7\x00\x00\x00\x00\x63\x59\x00\x00\x63\x63\x63\x5e\x85\xd9\x85\xd3\x63\x5a\x85\xcc\x63\x64\x85\xcd\x85\xce\x63\x65\x63\x62\x61\x9a\x00\x00\x63\x58\x85\xda\x63\x66\x00\x00\x63\x5f\x85\xd8", /* 8b00 */ "\x63\x5b\x63\x60\x63\x61\x00\x00\x64\xcc\x88\x70\x88\x79\x88\x76\x88\x78\x00\x00\x64\xc9\x88\x71\x00\x00\x88\x77\x64\xc5\x88\x73\x64\xcd\x88\x6f\x88\x74\x88\x7b\x85\xd0\x88\x75\x88\x6e\x64\xc6\x88\x6d\x64\xc7\x88\x7c\x64\xc8\x88\x7a\x64\xcb\x88\x6c\x00\x00\x64\xca\x00\x00\x88\x72\x8a\x6a\x8a\x78\x8a\x73\x8a\x75\x8a\x69\x65\xbd\x00\x00\x8a\x68\x65\xc0\x65\xbf\x00\x00\x8a\x77\x8a\x6f\x8a\x6c\x8a\x72\x00\x00\x8a\x6b\x00\x00\x8a\x6d\x8a\x76\x8a\x74\x00\x00\x65\xbe\x8a\x7b\x8a\x79\x8a\x70\x8a\x7a\x8a\x71\x00\x00\x8c\x49\x66\x9a\x8c\x50\x00\x00\x00\x00\x8e\xbe\x66\xa1\x8a\x6e\x8c\x47\x66\x9d\x8c\x48\x8c\x4d\x00\x00\x00\x00\x66\x9f\x66\xa0\x8c\x46\x8c\x4f\x8c\x51\x8c\x4a\x8c\x4c\x8c\x4e\x8c\x4b\x8c\x52\x66\x9c\x66\xa2\x66\x9e\x00\x00\x66\x9b\x8d\x9f\x00\x00\x67\x62\x8d\x9d\x00\x00\x00\x00\x8d\xa1\x00\x00\x8d\xa2\x67\x60\x8d\xa3\x8d\xa0\x00\x00\x8d\x9e\x67\x63\x67\x5f\x8d\xa4\x00\x00\x67\x61\x67\x5e\x00\x00\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x67\xab\x8e\xbd\x8e\xbc\x8e\xbf\x8e\xc0\x00\x00\x67\xac\x8f\xa6\x8f\xab", /* 8b80 */ "\x67\xf3\x00\x00\x8f\xa8\x00\x00\x8f\xa7\x8f\xaa\x8f\xa9\x00\x00\x90\x73\x00\x00\x68\x68\x90\x72\x90\x70\x00\x00\x90\x71\x00\x00\x00\x00\x00\x00\x68\x8b\x68\x8a\x90\xd0\x90\xd1\x68\x8c\x00\x00\x91\x5e\x91\x5f\x68\xb3\x00\x00\x68\xb9\x00\x00\x91\x99\x91\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc6\x00\x00\x75\x72\x00\x00\x75\x73\x7c\x7a\x7f\xb9\x82\xcf\x64\xcf\x00\x00\x64\xce\x8a\x7c\x8c\x53\x00\x00\x90\x74\x4f\xc7\x72\x43\x56\x5f\x58\xc6\x7c\x7c\x7c\x7b\x61\xa5\x82\xd0\x61\xa6\x88\x7d\x65\xc1\x00\x00\x00\x00\x00\x00\x68\xc2\x4f\xc8\x6c\xeb\x72\x44\x00\x00\x00\x00\x58\xc7\x00\x00\x75\x74\x75\x75\x00\x00\x78\xcb\x00\x00\x5b\x4f\x5d\x8e\x00\x00\x7c\x7e\x7c\x7d\x7c\x7f\x00\x00\x7f\xba\x7f\xbb\x5f\xaf\x63\x67\x61\xa7\x63\x68\x00\x00\x88\x82\x88\x7e\x88\x81\x88\x7f\x64\xd0\x00\x00\x8a\x7d\x8c\x55\x8c\x54\x6b\x45\x56\x61\x56\x60\x72\x45\x00\x00\x75\x76\x00\x00\x00\x00", /* 8c80 */ "\x78\xcd\x78\xcc\x5b\x50\x00\x00\x7c\x82\x7c\x83\x7c\x81\x00\x00\x00\x00\x5d\x90\x5d\x8f\x00\x00\x5f\xb1\x5f\xb0\x00\x00\x82\xd1\x85\xdd\x85\xdb\x85\xdc\x63\x69\x88\x84\x88\x83\x00\x00\x8a\x81\x8a\x7f\x8a\x7e\x8c\x56\x00\x00\x91\x9a\x4f\xc9\x53\xd6\x00\x00\x53\xd7\x56\x62\x56\x63\x72\x47\x72\x46\x75\x77\x00\x00\x58\xcd\x58\xcb\x58\xc8\x58\xcc\x58\xca\x58\xc9\x00\x00\x00\x00\x5b\x51\x78\xd0\x00\x00\x5d\x95\x5b\x53\x5b\x58\x78\xd2\x5b\x5a\x5b\x59\x5b\x5c\x78\xd1\x78\xce\x5b\x56\x5b\x52\x5b\x54\x78\xcf\x5b\x5b\x5b\x57\x5b\x55\x5d\x97\x5d\x96\x5d\x94\x5d\x98\x00\x00\x5d\x92\x5d\x93\x00\x00\x5d\x91\x00\x00\x7c\x84\x00\x00\x00\x00\x7f\xbd\x00\x00\x5f\xb3\x5f\xb4\x5f\xb2\x00\x00\x7f\xbc\x00\x00\x7f\xbe\x00\x00\x82\xd4\x82\xd6\x00\x00\x61\xb0\x82\xd7\x61\xa9\x82\xd3\x61\xa8\x61\xb2\x61\xae\x61\xaf\x61\xab\x82\xd2\x61\xaa\x82\xd8\x82\xd5\x00\x00\x61\xb1\x00\x00\x61\xac\x61\xad\x85\xdf\x00\x00\x85\xe1\x85\xe0\x00\x00\x85\xe2\x63\x6a\x85\xde\x00\x00\x00\x00\x64\xd4\x88\x85\x64\xd1\x64\xd5\x64\xd3\x64\xd2\x8a\x82\x00\x00", /* 8d00 */ "\x8a\x85\x00\x00\x8a\x84\x00\x00\x8a\x83\x65\xc2\x8c\x57\x8c\x58\x66\xa3\x8c\x59\x66\xa4\x00\x00\x00\x00\x67\x65\x00\x00\x67\x64\x8e\xc1\x00\x00\x00\x00\x67\xad\x8e\xc2\x8f\xac\x67\xf4\x67\xf5\x00\x00\x90\x75\x00\x00\x68\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x00\x00\x58\xcf\x58\xce\x7c\x85\x7c\x86\x00\x00\x5f\xb5\x85\xe3\x61\xb3\x85\xe4\x88\x86\x4f\xcb\x00\x00\x6f\x74\x53\xd9\x53\xd8\x00\x00\x72\x48\x56\x64\x72\x49\x75\x7a\x00\x00\x75\x79\x00\x00\x75\x78\x00\x00\x00\x00", /* 8d80 */ "\x78\xd4\x5b\x5f\x00\x00\x00\x00\x78\xd3\x5b\x5e\x00\x00\x00\x00\x00\x00\x78\xd5\x5b\x5d\x00\x00\x7c\x88\x7c\x8b\x7c\x89\x7c\x8a\x7c\x8e\x7c\x87\x7c\x8f\x7c\x8c\x7c\x8d\x5f\xb7\x7f\xbf\x00\x00\x00\x00\x5f\xb6\x00\x00\x82\xdc\x82\xda\x00\x00\x00\x00\x61\xb4\x82\xd9\x82\xdb\x00\x00\x61\xb5\x00\x00\x85\xe5\x00\x00\x85\xe6\x64\xd6\x00\x00\x8c\x5b\x8c\x5d\x8c\x5a\x8c\x5c\x8d\xa5\x8e\xc3\x00\x00\x00\x00\x91\x81\x4f\xcc\x53\xda\x72\x4a\x72\x4c\x72\x4b\x00\x00\x75\x7d\x58\xd1\x00\x00\x75\x7b\x00\x00\x58\xd0\x75\x7e\x00\x00\x75\x7f\x75\x7c\x00\x00\x00\x00\x78\xe1\x5b\x67\x78\xd9\x78\xdf\x00\x00\x00\x00\x5b\x62\x5b\x65\x78\xd8\x5b\x60\x78\xdc\x7c\x95\x5b\x64\x00\x00\x78\xd7\x00\x00\x78\xdd\x78\xda\x78\xe0\x78\xd6\x78\xde\x5b\x63\x5b\x66\x78\xdb\x5b\x61\x00\x00\x5d\x9a\x7c\x91\x5d\x99\x7c\x98\x7c\x97\x5d\xa0\x00\x00\x5d\xa1\x7c\x99\x5d\x9b\x7c\x96\x5d\x9f\x7c\x9b\x7c\x92\x00\x00\x7c\x94\x5d\x9c\x7c\x90\x7c\x93\x7c\x9a\x5d\x9d\x7c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9e\x00\x00\x5f\xb8\x7f\xc4\x7f\xca\x7f\xc2", /* 8e00 */ "\x7f\xcb\x00\x00\x7f\xc1\x7f\xc6\x7f\xcc\x7f\xc9\x7f\xc8\x7f\xc7\x00\x00\x7f\xc0\x7f\xc5\x00\x00\x00\x00\x7f\xc3\x00\x00\x61\xba\x61\xb7\x82\xe5\x82\xea\x82\xec\x82\xe9\x82\xe2\x82\xe4\x82\xee\x82\xeb\x82\xe6\x82\xef\x82\xe3\x82\xed\x61\xb8\x61\xbe\x61\xbc\x82\xdd\x61\xbd\x61\xb9\x82\xde\x82\xe0\x82\xdf\x82\xe7\x82\xe8\x00\x00\x61\xbb\x00\x00\x61\xb6\x00\x00\x00\x00\x82\xe1\x00\x00\x85\xf0\x63\x6c\x00\x00\x85\xe7\x63\x6d\x63\x70\x85\xec\x00\x00\x85\xe9\x63\x6f\x00\x00\x00\x00\x85\xed\x85\xee\x85\xe8\x85\xf1\x85\xea\x85\xef\x63\x6e\x00\x00\x63\x6b\x85\xeb\x00\x00\x88\x8c\x64\xd9\x64\xd7\x64\xda\x64\xd8\x88\x8b\x88\x88\x88\x87\x00\x00\x88\x8a\x00\x00\x00\x00\x88\x89\x8a\x93\x65\xc8\x8a\x8a\x8a\x89\x00\x00\x65\xc3\x8a\x8f\x8a\x8e\x8a\x86\x8a\x91\x8a\x8b\x65\xc7\x8a\x88\x8a\x90\x8a\x87\x65\xc4\x65\xc6\x8a\x8c\x65\xc5\x8a\x8d\x00\x00\x8a\x92\x8c\x61\x00\x00\x66\xa9\x8c\x5e\x00\x00\x8c\x62\x00\x00\x00\x00\x66\xa6\x8c\x60\x66\xab\x00\x00\x66\xa8\x00\x00\x8c\x5f\x00\x00\x66\xaa\x8c\x63\x66\xa5\x00\x00\x00\x00\x00\x00", /* 8e80 */ "\x00\x00\x67\x67\x67\x69\x00\x00\x8d\xa8\x67\x68\x8d\xa6\x66\xa7\x8d\xa7\x67\x66\x67\xae\x67\xb0\x8e\xc5\x67\xaf\x8e\xc4\x00\x00\x8f\xb1\x67\xf6\x8f\xb0\x67\xf7\x8f\xae\x8f\xad\x8f\xb2\x8f\xb3\x90\x76\x00\x00\x8f\xaf\x00\x00\x00\x00\x90\xd5\x90\xd2\x90\xd3\x90\xd4\x68\xa8\x00\x00\x91\x62\x91\x61\x91\x60\x91\x82\x00\x00\x91\xae\x91\x9b\x68\xba\x4f\xcd\x56\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xbf\x00\x00\x00\x00\x85\xf2\x00\x00\x00\x00\x65\xc9\x00\x00\x8c\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x9c\x4f\xce\x51\xd0\x53\xdc\x53\xdb\x00\x00\x56\x68\x00\x00\x72\x4d\x56\x66\x72\x4e\x56\x67\x00\x00\x00\x00\x75\x85\x75\x81\x00\x00\x00\x00\x58\xd2\x75\x84\x75\x83\x75\x82\x58\xd3\x75\x86\x75\x87\x00\x00\x00\x00\x00\x00\x78\xe8\x78\xe6\x78\xea\x78\xeb\x78\xf1\x00\x00\x78\xed\x78\xef\x00\x00\x78\xe7\x78\xe2\x00\x00\x78\xee\x00\x00\x00\x00\x78\xf0\x78\xe9\x78\xec\x78\xe3\x5b\x69\x78\xe5\x78\xe4\x5b\x68\x5b\x6a\x00\x00\x5d\xa5\x7c\x9e", /* 8f00 */ "\x7c\xa0\x7c\x9f\x7c\xa4\x5d\xa3\x00\x00\x7c\xa1\x7c\x9d\x7c\xa2\x7c\xa3\x5d\xa4\x5d\xa6\x7c\xa5\x00\x00\x7f\xd0\x7f\xcf\x00\x00\x7f\xcd\x7f\xce\x5f\xba\x5f\xbc\x5f\xb9\x5f\xbb\x82\xf6\x82\xf7\x82\xf2\x00\x00\x82\xf3\x61\xc1\x61\xc6\x61\xc0\x61\xc7\x61\xc2\x82\xf4\x00\x00\x00\x00\x82\xf5\x82\xf1\x61\xc8\x61\xc4\x00\x00\x00\x00\x61\xc3\x61\xc5\x00\x00\x82\xf0\x00\x00\x85\xf4\x63\x72\x00\x00\x00\x00\x85\xf6\x63\x74\x85\xf9\x85\xf5\x85\xf3\x85\xf8\x63\x73\x85\xf7\x00\x00\x63\x71\x00\x00\x00\x00\x64\xdc\x64\xdf\x88\x8e\x00\x00\x64\xdd\x88\x8d\x64\xdb\x64\xde\x8a\x94\x8a\x95\x8a\x96\x65\xca\x00\x00\x8a\x97\x00\x00\x65\xcb\x66\xad\x8c\x67\x8c\x68\x8c\x66\x8c\x65\x8c\x69\x66\xac\x8d\xac\x8d\xaa\x8d\xab\x8d\xad\x8d\xa9\x8d\xae\x8e\xc7\x00\x00\x8e\xc8\x8e\xc6\x67\xb1\x8f\xb4\x67\xf8\x8f\xb5\x90\x78\x90\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcf\x5b\x6b\x00\x00\x00\x00\x5d\xa7\x00\x00\x00\x00\x00\x00\x5f\xbd\x00\x00\x00\x00\x63\x76\x00\x00\x63\x75\x00\x00\x00\x00\x00\x00\x00\x00\x66\xae\x67\x49\x67\xb2\x4f\xd0\x56\x69\x5d\xa8\x00\x00\x8c\x6a\x48\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x47\x00\x00\x00\x00\x4f\xd1\x00\x00\x4f\xd4\x4f\xd3\x4f\xd2\x00\x00\x00\x00\x6b\x46\x00\x00\x6c\xed\x00\x00\x6c\xef\x51\xd1\x00\x00\x00\x00\x51\xd3\x6c\xec\x6c\xee\x51\xd2\x6c\xf1\x6c\xf0\x6c\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x78\x6f\x76\x53\xdf\x6f\x75\x53\xe4\x53\xe1\x53\xde\x00\x00\x53\xe5\x00\x00\x53\xe0\x53\xe3\x00\x00\x53\xe2\x6f\x77\x00\x00\x53\xdd\x00\x00\x00\x00\x00\x00\x56\x6f\x72\x50\x72\x56\x56\x6c\x56\x73\x00\x00\x56\x6e\x72\x53\x72\x55\x56\x71\x72\x4f\x72\x52", /* 9000 */ "\x56\x6d\x56\x6a\x72\x51\x56\x70\x72\x54\x56\x72\x56\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x75\x89\x75\x8c\x58\xd5\x00\x00\x58\xdf\x58\xdb\x75\x8a\x00\x00\x00\x00\x58\xe3\x58\xdc\x58\xe1\x58\xd7\x00\x00\x58\xd4\x58\xd6\x58\xe2\x75\x8b\x58\xda\x58\xdd\x58\xd9\x58\xde\x75\x8d\x58\xe0\x58\xd8\x75\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xf2\x5b\x6c\x78\xf4\x00\x00\x5b\x6e\x5b\x70\x00\x00\x78\xf3\x5b\x6d\x5b\x71\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x5d\xae\x7c\xaa\x5d\xb6\x7c\xa7\x00\x00\x5d\xb7\x5d\xac\x00\x00\x7c\xa8\x00\x00\x00\x00\x5d\xb1\x00\x00\x7c\xa9\x5d\xaa\x5d\xa9\x00\x00\x5d\xb4\x5d\xb3\x5d\xb2\x5d\xb0\x5d\xb5\x7c\xa6\x5d\xab\x5d\xad\x5d\xaf\x00\x00\x00\x00\x5f\xbf\x5f\xc2\x00\x00\x5f\xc6\x5f\xc0\x5f\xc5\x5f\xc3\x00\x00\x5f\xbe\x00\x00\x5f\xc4\x5f\xc1\x00\x00\x00\x00\x00\x00\x82\xfb\x61\xcb\x61\xc9\x00\x00\x82\xfc\x00\x00\x61\xcc\x61\xca\x82\xfa\x82\xf9\x00\x00\x63\x7a\x82\xf8\x63\x78\x63\x77\x85\xfa\x61\xcd\x63\x79\x85\xfb\x63\x7c\x85\xfc\x63\x7b\x64\xe1\x88\x90\x64\xe0", /* 9080 */ "\x64\xe5\x64\xe3\x64\xe4\x65\xcd\x64\xe2\x88\x8f\x85\xfd\x65\xcc\x65\xce\x00\x00\x66\xaf\x66\xb0\x00\x00\x8d\xaf\x00\x00\x68\x6a\x68\x69\x4f\xd6\x00\x00\x00\x00\x69\xf4\x56\x74\x00\x00\x69\xf1\x69\xf2\x69\xf0\x00\x00\x69\xf3\x00\x00\x00\x00\x6b\x4b\x6b\x48\x6b\x4d\x6b\x49\x4f\xd7\x4f\xda\x00\x00\x6b\x4a\x4f\xd9\x6b\x4c\x00\x00\x00\x00\x4f\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xf5\x6c\xf7\x51\xd6\x6c\xf3\x6c\xf6\x6c\xf4\x51\xd4\x51\xd7\x00\x00\x51\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x7a\x6f\x7e\x6f\x7b\x00\x00\x53\xe8\x00\x00\x53\xe9\x00\x00\x6f\x7d\x00\x00\x6f\x7f\x6f\x82\x00\x00\x53\xe6\x6f\x81\x00\x00\x00\x00\x53\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x94\x6f\x7c\x72\x57\x72\x60\x72\x5e\x72\x59\x72\x5a\x72\x5f\x72\x61\x56\x76\x00\x00\x72\x5c\x72\x58\x56\x75\x56\x77\x72\x5b\x72\x62\x72\x5d\x00\x00\x00\x00\x58\xe4\x75\x97\x75\x8f\x75\x95\x75\x96\x58\xe5\x00\x00\x75\x8e\x75\x90\x6f\x79\x75\x92\x75\x93\x75\x91\x5b\x73\x00\x00\x00\x00\x00\x00\x78\xfb\x86\x41\x78\xfc\x78\xf9\x58\xe6\x5b\x75\x78\xf8", /* 9100 */ "\x79\x41\x78\xfd\x5b\x72\x79\x44\x78\xf7\x79\x43\x78\xf5\x79\x42\x78\xfa\x5b\x74\x00\x00\x7c\xb1\x00\x00\x7c\xac\x7c\xb2\x7c\xad\x7c\xab\x7c\xae\x5d\xb8\x00\x00\x7c\xb0\x00\x00\x7c\xaf\x5d\xb9\x5f\xc8\x5f\xc7\x7f\xd7\x7f\xda\x7f\xd2\x7f\xd6\x5f\xc9\x7f\xd5\x7f\xd3\x7f\xd9\x7f\xd4\x7f\xd1\x7f\xd8\x00\x00\x83\x45\x61\xd0\x8a\x98\x83\x42\x83\x43\x83\x41\x78\xf6\x61\xcf\x83\x46\x82\xfd\x61\xce\x61\xd1\x83\x44\x86\x42\x63\x7d\x86\x43\x86\x44\x00\x00\x88\x91\x64\xe6\x8a\x99\x8a\x9a\x00\x00\x00\x00\x8a\x9b\x8c\x6c\x8c\x6b\x8d\xb1\x00\x00\x8d\xb0\x8e\xca\x8e\xcb\x8e\xc9\x8f\xb6\x67\xf9\x4f\xdb\x53\xeb\x53\xea\x56\x7a\x56\x79\x72\x64\x72\x65\x72\x63\x00\x00\x56\x78\x75\x9b\x00\x00\x75\x9c\x75\x98\x58\xe7\x75\x99\x00\x00\x75\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x79\x47\x79\x49\x79\x45\x79\x48\x5b\x76\x79\x46\x5b\x77\x00\x00\x00\x00\x79\xf9\x5d\xbc\x5d\xbb\x00\x00\x5d\xba\x00\x00\x7c\xb3\x7c\xb4\x00\x00\x00\x00\x7f\xdc\x7f\xde\x5f\xcd\x5f\xca\x00\x00\x5f\xcc\x5f\xcb\x7f\xdd\x7f\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9180 */ "\x83\x4d\x83\x4a\x83\x4b\x61\xd5\x83\x4c\x83\x47\x83\x48\x61\xd2\x00\x00\x61\xd3\x83\x49\x61\xd4\x00\x00\x86\x48\x00\x00\x86\x49\x86\x46\x86\x47\x63\x7e\x86\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x95\x88\x92\x88\x94\x64\xe9\x88\x98\x64\xe8\x88\x96\x88\x99\x88\x97\x88\x93\x64\xe7\x00\x00\x8a\x9d\x00\x00\x8a\x9e\x8a\x9c\x00\x00\x8a\xa0\x65\xcf\x65\xd0\x8c\x6e\x66\xb2\x8a\x9f\x8c\x6d\x66\xb1\x8d\xb4\x8d\xb5\x67\x6a\x8d\xb3\x00\x00\x8d\xb2\x00\x00\x8e\xcc\x67\xb3\x00\x00\x90\x79\x90\xd7\x90\xd6\x00\x00\x68\x8f\x68\xa9\x90\xd8\x91\x83\x00\x00\x68\xbb\x4f\xdc\x51\xd8\x00\x00\x5d\xbd\x00\x00\x67\x6b\x4f\xdd\x53\xec\x58\xe8\x5b\x78\x65\xd1\x51\xd9\x00\x00\x6f\x84\x6f\x83\x72\x66\x00\x00\x56\x7d\x56\x7b\x56\x7f\x72\x68\x00\x00\x56\x7e\x56\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x72\x67\x58\xeb\x75\xa2\x00\x00\x58\xea\x58\xec\x75\xa7\x58\xee\x75\xa4\x75\xa5\x75\x9d\x58\xed\x75\xa8\x00\x00\x00\x00\x75\x9f\x00\x00\x75\xa0\x75\x9e\x58\xe9\x00\x00\x75\xa6\x75\xa1\x75\xa3\x00\x00\x00\x00\x00\x00\x79\x55\x00\x00\x79\x54", /* 9200 */ "\x79\x52\x79\x4a\x79\x59\x79\x4d\x79\x57\x79\x5e\x79\x56\x5b\x81\x00\x00\x5b\x7c\x79\x4b\x00\x00\x79\x51\x5b\x7e\x00\x00\x79\x50\x5b\x7f\x5b\x82\x79\x53\x00\x00\x5b\x79\x5b\x7a\x79\x5f\x79\x5d\x00\x00\x79\x5c\x79\x4e\x00\x00\x79\x5a\x00\x00\x5b\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x7b\x79\x5b\x79\x4c\x79\x4f\x79\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x44\x7c\xbe\x00\x00\x7c\xb7\x7c\xca\x7c\xd3\x7c\xba\x5d\xc8\x00\x00\x7c\xc7\x5d\xbe\x5d\xc0\x5d\xcc\x7c\xb8\x00\x00\x00\x00\x5d\xc1\x5d\xc3\x5d\xcd\x5d\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xcb\x7c\xc0\x00\x00\x7c\xb5\x5d\xc9\x7c\xbf\x5d\xc5\x7c\xd1\x5d\xca\x7c\xcf\x7c\xc3\x7c\xcd\x5d\xc7\x7c\xb6\x7c\xd0\x7c\xcb\x00\x00\x7c\xd2\x5d\xbf\x00\x00\x00\x00\x5d\xce\x5d\xc4\x00\x00\x00\x00\x7c\xbc\x00\x00\x7c\xc4\x7c\xc8\x00\x00\x7c\xcc\x5d\xc6\x7c\xbb\x7c\xb9\x7c\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x7c\xc2\x7c\xc1\x00\x00\x7c\xc6\x7c\xc9\x00\x00\x7c\xce\x00\x00\x00\x00\x00\x00\x7f\xe1\x00\x00\x5f\xce\x7f\xeb\x7f\xe3\x5f\xd3\x5f\xd7\x7f\xf4\x7f\xfc\x7f\xed", /* 9280 */ "\x5f\xcf\x00\x00\x7f\xf1\x7c\xbd\x00\x00\x5f\xd0\x7f\xf8\x7f\xfd\x7f\xf5\x00\x00\x7f\xf7\x80\x43\x7f\xf9\x7f\xe7\x7f\xf0\x00\x00\x00\x00\x5f\xd8\x00\x00\x5f\xd4\x7f\xe5\x7f\xf2\x5f\xd2\x7f\xec\x5f\xd1\x7f\xfa\x7f\xe9\x7f\xe2\x5f\xd5\x80\x42\x00\x00\x00\x00\x7f\xe4\x7f\xf6\x7f\xf3\x7f\xee\x7f\xe0\x7f\xdf\x7f\xe8\x7f\xfb\x5f\xd6\x80\x41\x7f\xe6\x7f\xea\x61\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe2\x61\xdd\x83\x6e\x83\x6b\x83\x53\x61\xd8\x00\x00\x00\x00\x00\x00\x61\xd7\x61\xde\x00\x00\x00\x00\x00\x00\x83\x51\x61\xdc\x83\x5d\x83\x4f\x83\x50\x61\xd6\x83\x6d\x61\xe0\x83\x60\x83\x65\x83\x5f\x86\x5b\x83\x5b\x83\x63\x83\x61\x83\x54\x83\x4e\x83\x69\x61\xdf\x83\x6a\x00\x00\x83\x64\x00\x00\x83\x59\x83\x57\x83\x52\x00\x00\x00\x00\x00\x00\x83\x5a\x83\x67\x83\x56\x83\x66\x83\x6c\x00\x00\x00\x00\x61\xdb\x00\x00\x83\x62\x83\x68\x83\x5e\x83\x58\x61\xd9\x00\x00\x00\x00\x00\x00\x7f\xef\x83\x5c\x61\xe1\x83\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x61\x63\x82\x86\x60\x86\x5d\x86\x70\x63\x86\x00\x00\x86\x6d\x86\x65", /* 9300 */ "\x86\x6f\x86\x56\x86\x63\x00\x00\x63\x88\x00\x00\x86\x4e\x00\x00\x86\x4c\x86\x6e\x00\x00\x86\x6c\x86\x6b\x86\x5a\x86\x59\x86\x4f\x63\x8a\x00\x00\x86\x55\x86\x5f\x86\x6a\x63\x8d\x86\x71\x00\x00\x64\xf1\x63\x8f\x63\x89\x86\x53\x00\x00\x86\x5c\x86\x4b\x86\x4d\x63\x7f\x63\x8c\x63\x85\x86\x54\x86\x64\x86\x5e\x63\x8b\x86\x4a\x64\xec\x86\x66\x86\x69\x63\x87\x00\x00\x86\x58\x63\x8e\x63\x84\x00\x00\x00\x00\x00\x00\x63\x83\x86\x62\x86\x68\x63\x81\x00\x00\x86\x51\x86\x67\x00\x00\x00\x00\x86\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x57\x88\x9f\x00\x00\x88\xa4\x64\xee\x64\xf0\x88\xaa\x64\xea\x88\xb9\x88\xb0\x88\xa5\x88\xa6\x88\xaf\x00\x00\x64\xf7\x88\xae\x88\x9e\x88\xad\x88\xa1\x88\xba\x64\xf6\x64\xf4\x88\xa2\x00\x00\x88\xb5\x00\x00\x88\xa7\x88\xb4\x00\x00\x88\xb6\x88\x9d\x64\xef\x00\x00\x88\xb7\x00\x00\x00\x00\x88\xab\x00\x00\x64\xf3\x88\xa8\x00\x00\x00\x00\x64\xf5\x88\xb1\x00\x00\x00\x00\x00\x00\x64\xed\x88\xa3\x88\xb2\x00\x00\x88\xac\x86\x50\x88\xb3\x88\xa0\x00\x00\x64\xf2\x00\x00", /* 9380 */ "\x88\xb8\x00\x00\x64\xeb\x88\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xae\x8a\xa7\x65\xd3\x00\x00\x8a\xa2\x8a\xb1\x8a\xa9\x88\xa9\x00\x00\x8a\xb3\x8a\xa3\x00\x00\x65\xd2\x8a\xad\x65\xd4\x65\xdc\x65\xda\x8a\xaf\x65\xdb\x8a\xa5\x00\x00\x8a\xa6\x8a\xab\x8a\xb0\x00\x00\x88\x9a\x65\xd5\x8a\xb8\x8a\xb5\x8a\xb9\x8a\xac\x8a\xa8\x8a\xb6\x8c\x79\x8a\xaa\x00\x00\x65\xd8\x00\x00\x65\xd7\x88\x9c\x65\xd9\x8a\xb2\x8a\xb4\x65\xd6\x8a\xb7\x8a\xa1\x00\x00\x8a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x83\x00\x00\x8c\x72\x66\xb6\x8c\x81\x00\x00\x00\x00\x8c\x70\x66\xb7\x00\x00\x8c\x7b\x00\x00\x8c\x77\x66\xbc\x8c\x82\x8c\x71\x8c\x74\x66\xb4\x8c\x84\x00\x00\x8c\x7c\x8c\x7f\x66\xba\x66\xbf\x66\xbd\x8c\x78\x8c\x73\x00\x00\x66\xb8\x66\xb9\x8c\x6f\x66\xb5\x00\x00\x66\xb3\x66\xbb\x8c\x7e\x66\xbe\x00\x00\x8c\x7a\x8c\x85\x66\xc0\x00\x00\x00\x00\x00\x00\x8c\x76\x00\x00\x8c\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xc2\x8d\xd0\x8d\xc4\x8d\xcb\x8c\x75\x8d\xc9\x8d\xb8\x8d\xce\x67\x6e\x8d\xbc\x8d\xcd", /* 9400 */ "\x8d\xc3\x00\x00\x00\x00\x67\x6d\x00\x00\x00\x00\x8d\xd2\x8d\xc5\x00\x00\x8d\xca\x8d\xcc\x8d\xb6\x8d\xcf\x8d\xc1\x8d\xc6\x8d\xba\x8d\xbe\x8d\xd1\x8d\xc8\x8d\xb7\x8d\xbb\x8d\xbd\x8d\xc7\x00\x00\x67\x6c\x8d\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbf\x8e\xd0\x8e\xd5\x67\xba\x8e\xd7\x00\x00\x67\xb4\x00\x00\x8e\xd3\x8e\xd9\x67\xb9\x67\xb5\x00\x00\x67\xb6\x8e\xcf\x8e\xd6\x67\xb8\x8e\xd4\x67\xb7\x8e\xce\x8e\xd2\x8e\xd1\x00\x00\x8e\xcd\x8e\xd8\x00\x00\x00\x00\x00\x00\x67\xfa\x8f\xbd\x8f\xc0\x8f\xbc\x8f\xbe\x8f\xbf\x8f\xb9\x8f\xba\x8f\xb7\x00\x00\x00\x00\x8f\xbb\x8f\xb8\x67\xfb\x67\xfc\x00\x00\x00\x00\x90\x7b\x00\x00\x90\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x7c\x90\x7e\x00\x00\x68\x6c\x00\x00\x90\x7a\x68\x6b\x68\x6d\x00\x00\x00\x00\x00\x00\x90\xda\x90\xdb\x68\x90\x90\xd9\x00\x00\x91\x64\x91\x63\x91\x65\x68\xab\x91\x66\x68\xaa\x91\x67\x91\x84\x91\x87\x91\x86\x68\xb4\x91\x85\x00\x00\x00\x00\x00\x00\x68\xbe\x68\xbc\x68\xbd\x68\xc3", /* 9480 */ "\x91\xb0\x91\xb1\x91\xaf\x91\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xda\x00\x00\x00\x00\x75\xa9\x79\x60\x83\x6f\x8c\x86\x00\x00\x00\x00", /* 9580 */ "\x51\xdb\x00\x00\x53\xed\x56\x81\x00\x00\x00\x00\x75\xaa\x00\x00\x75\xab\x58\xef\x00\x00\x5b\x85\x79\x62\x79\x61\x5b\x89\x5b\x84\x79\x63\x5b\x86\x5b\x88\x5b\x87\x5b\x83\x00\x00\x00\x00\x00\x00\x5d\xcf\x00\x00\x00\x00\x7c\xd7\x7c\xd5\x00\x00\x7c\xd6\x7c\xd4\x00\x00\x5f\xd9\x00\x00\x5f\xdc\x5f\xde\x5f\xdd\x00\x00\x00\x00\x5f\xda\x5f\xdb\x00\x00\x83\x71\x83\x70\x61\xe3\x83\x72\x00\x00\x83\x73\x61\xe4\x00\x00\x00\x00\x00\x00\x86\x79\x86\x77\x88\xc0\x00\x00\x86\x75\x86\x76\x63\x90\x86\x72\x86\x7a\x86\x74\x86\x78\x88\xbc\x00\x00\x00\x00\x88\xbe\x00\x00\x88\xbf\x64\xfc\x88\xbb\x64\xfb\x88\xbd\x64\xf8\x64\xf9\x64\xfa\x86\x73\x00\x00\x00\x00\x65\xdf\x8a\xbc\x8a\xba\x8a\xbb\x65\xdd\x65\xe0\x65\xde\x00\x00\x00\x00\x00\x00\x8c\x87\x8c\x88\x66\xc1\x00\x00\x8d\xd3\x8d\xd5\x8d\xd4\x67\x6f\x67\xbb\x8e\xdc\x8e\xdb\x8e\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x69\x8a\x00\x00\x69\xf7\x4e\x8b\x69\xf5\x69\xf8\x69\xf6\x00\x00\x00\x00\x00\x00\x6b\x4f\x00\x00\x4f\xe1\x00\x00\x4f\xe2\x6b\x51\x4f\xdf\x6b\x50\x6b\x4e\x4f\xe0\x4f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xf8\x6c\xfb\x51\xdf\x6c\xfa\x6c\xf9\x00\x00\x51\xde\x51\xdd\x00\x00\x51\xe1\x6c\xfc\x51\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x89\x53\xef\x53\xf0\x53\xf1\x6f\x8a\x6f\x86\x53\xee\x6f\x87\x00\x00\x6f\x88\x6f\x85\x00\x00\x00\x00\x00\x00\x56\x88\x00\x00\x00\x00\x56\x85\x72\x69\x56\x86\x56\x89\x72\x6a\x00\x00\x56\x84\x56\x82\x56\x83\x56\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf0\x75\xae\x58\xf8\x75\xad\x00\x00\x75\xb0\x58\xf4\x75\xaf\x5b\x91\x58\xf2\x58\xf5\x58\xf1\x58\xf6\x58\xf7\x58\xf3\x00\x00\x00\x00\x00\x00\x75\xac\x5b\x8d\x79\x65\x00\x00", /* 9680 */ "\x79\x69\x00\x00\x00\x00\x79\x68\x5b\x92\x5b\x8e\x5b\x8f\x79\x64\x79\x66\x79\x67\x5b\x8a\x5b\x8c\x00\x00\x5b\x90\x5b\x8b\x00\x00\x00\x00\x7c\xda\x7c\xd8\x7c\xd9\x5d\xd1\x5d\xd2\x00\x00\x7c\xdb\x5d\xd0\x5f\xdf\x00\x00\x5f\xe1\x5f\xe0\x00\x00\x80\x45\x00\x00\x00\x00\x80\x46\x83\x75\x00\x00\x83\x74\x00\x00\x00\x00\x63\x91\x63\x92\x86\x7b\x63\x93\x00\x00\x88\xc3\x00\x00\x88\xc1\x00\x00\x88\xc2\x64\xfd\x00\x00\x8a\xbd\x66\xc2\x00\x00\x48\xeb\x00\x00\x65\x41\x51\xe2\x00\x00\x56\x8a\x72\x6b\x00\x00\x00\x00\x75\xb1\x58\xf9\x5b\x93\x79\x6a\x79\x6c\x5b\x95\x5b\x94\x5b\x96\x5b\x97\x79\x6b\x5d\xd5\x5d\xd6\x5d\xd4\x5f\xe2\x5d\xd3\x7c\xdc\x00\x00\x00\x00\x00\x00\x5f\xe3\x83\x76\x86\x7c\x63\x94\x65\x42\x8a\xbe\x8a\xc2\x65\xe3\x8a\xbf\x65\xe4\x65\xe2\x8a\xc3\x65\xe5\x8a\xc1\x00\x00\x8c\x89\x65\xe1\x66\xc3\x00\x00\x90\xdc\x00\x00\x00\x00\x51\xe3\x58\xfb\x58\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x98\x79\x6e\x79\x6d\x5b\x99\x00\x00\x00\x00\x7c\xe0\x5d\xda\x5d\xd7\x7c\xdf\x5d\xd9\x7c\xdd\x5d\xd8\x00\x00\x7c\xde\x00\x00\x80\x47", /* 9700 */ "\x5f\xe4\x00\x00\x83\x79\x00\x00\x61\xe5\x83\x77\x61\xe6\x61\xe7\x83\x78\x61\xe8\x00\x00\x86\x7d\x00\x00\x63\x98\x63\x95\x63\x9a\x86\x7f\x63\x96\x86\x7e\x63\x99\x00\x00\x00\x00\x63\x97\x00\x00\x88\xc6\x88\xc8\x00\x00\x00\x00\x65\x43\x88\xc7\x65\x44\x88\xc5\x88\xc4\x00\x00\x8a\xc5\x8a\xc4\x65\xe6\x8a\xc6\x8c\x8e\x66\xc5\x8c\x8d\x8c\x8a\x66\xc4\x8c\x8b\x8c\x8c\x00\x00\x8d\xd6\x8d\xd7\x67\x70\x00\x00\x67\xbe\x00\x00\x00\x00\x8e\xdd\x00\x00\x00\x00\x67\xbc\x67\xbd\x8e\xde\x00\x00\x00\x00\x67\xfd\x68\x41\x8f\xc1\x00\x00\x00\x00\x68\x91\x90\xde\x68\x93\x00\x00\x90\xdd\x90\xdf\x68\x92\x91\x68\x00\x00\x91\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe4\x00\x00\x00\x00\x00\x00\x5d\xdb\x00\x00\x80\x48\x00\x00\x83\x7a\x63\x9b\x63\x9c\x00\x00\x51\xe5\x00\x00\x61\xe9\x66\xc6\x53\xf2\x00\x00\x00\x00\x00\x00\x63\x9d\x00\x00\x68\x6e\x53\xf3\x75\xb2\x00\x00\x79\x6f\x00\x00\x79\x71\x00\x00\x79\x70\x00\x00\x7c\xe4\x7c\xe1\x5d\xdc\x00\x00\x5d\xdd\x7c\xe2\x7c\xe3\x00\x00\x80\x4a\x80\x4f\x5f\xe5\x80\x49\x80\x4b\x80\x52", /* 9780 */ "\x80\x4d\x80\x51\x80\x4e\x80\x4c\x80\x50\x5f\xe6\x00\x00\x00\x00\x83\x7d\x00\x00\x83\x7b\x61\xeb\x00\x00\x61\xea\x83\x7c\x61\xec\x00\x00\x00\x00\x00\x00\x00\x00\x86\x83\x00\x00\x00\x00\x86\x82\x63\x9e\x86\x81\x88\xc9\x00\x00\x88\xcb\x88\xcd\x88\xcc\x00\x00\x65\x45\x88\xca\x8a\xcd\x65\xe7\x8a\xcb\x8a\xce\x65\xe8\x00\x00\x8a\xc9\x00\x00\x8a\xcc\x8a\xca\x8a\xc7\x65\xe9\x8a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x8f\x00\x00\x00\x00\x8c\x91\x8c\x90\x00\x00\x8d\xd8\x00\x00\x8d\xd9\x00\x00\x00\x00\x00\x00\x8e\xdf\x00\x00\x68\x43\x00\x00\x68\x42\x90\x7f\x90\x81\x68\x94\x90\xe0\x00\x00\x68\xb5\x00\x00\x53\xf4\x5b\x9a\x80\x54\x80\x53\x83\x7f\x83\x7e\x00\x00\x00\x00\x65\x46\x88\xcf\x88\xce\x8a\xd1\x8a\xcf\x8a\xd2\x8a\xd0\x00\x00\x00\x00\x66\xc7\x8c\x92\x8c\x93\x8c\x94\x00\x00\x8e\xe0\x00\x00\x8f\xc2\x00\x00\x90\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf5\x00\x00\x00\x00\x86\x84\x88\xd0\x00\x00\x53\xf6\x00\x00\x00\x00\x5f\xe7\x00\x00\x86\x85\x65\xea\x8a\xd3\x66\xc8\x00\x00\x8d\xda\x8d\xdb\x67\xbf", /* 9800 */ "\x90\x82\x53\xf7\x59\x41\x59\x42\x75\xb3\x5b\x9b\x5b\x9c\x79\x72\x5b\x9d\x00\x00\x5d\xe1\x00\x00\x5d\xe3\x7c\xe6\x7c\xe7\x7c\xe5\x5d\xde\x5d\xdf\x5d\xe2\x5d\xe0\x00\x00\x00\x00\x80\x55\x5f\xe8\x5f\xe9\x00\x00\x00\x00\x83\x87\x61\xef\x83\x82\x83\x81\x00\x00\x83\x86\x61\xed\x00\x00\x00\x00\x63\xa5\x00\x00\x83\x83\x83\x88\x83\x85\x83\x84\x00\x00\x61\xee\x00\x00\x63\xa3\x00\x00\x86\x87\x63\x9f\x00\x00\x86\x88\x00\x00\x00\x00\x86\x86\x00\x00\x63\xa2\x63\xa0\x63\xa4\x00\x00\x63\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\xd1\x00\x00\x88\xd6\x88\xd2\x88\xd5\x65\x47\x00\x00\x87\xc0\x88\xd4\x88\xd3\x00\x00\x65\xed\x65\xeb\x65\xee\x65\xec\x8a\xd4\x8a\xd5\x8a\xd6\x65\xef\x00\x00\x00\x00\x00\x00\x8c\x98\x66\xca\x8c\x96\x00\x00\x66\xcb\x8c\x95\x8c\x97\x66\xc9\x8d\xdf\x8d\xdc\x00\x00\x8d\xdd\x8d\xde\x8e\xe1\x67\xc1\x00\x00\x67\xc0\x00\x00\x8f\xc4\x8f\xc3\x68\x44\x00\x00\x00\x00\x00\x00\x68\x6f\x68\x95\x68\xac\x91\x69\x91\x9e\x91\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf8\x79\x73\x00\x00\x00\x00\x7c\xe8\x80\x56\x80\x57\x5f\xea\x00\x00\x5f\xeb\x83\x89\x61\xf0\x00\x00\x00\x00\x65\x48\x00\x00\x8a\xd7\x00\x00\x65\xf0\x8c\x9b\x66\xcc\x8c\x9a\x8c\x9c\x8c\x99\x8e\xe4\x8d\xe0\x8d\xe1\x00\x00\x67\x71\x00\x00\x8e\xe3\x00\x00\x00\x00\x8e\xe2\x00\x00\x8f\xc5\x91\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf9\x00\x00\x00\x00\x00\x00\x53\xfa\x00\x00\x00\x00\x56\x8b\x72\x6c\x00\x00\x75\xb4\x00\x00\x5b\x9e\x00\x00\x5b\xa1\x5b\x9f\x79\x74\x00\x00\x5b\xa3\x00\x00\x5b\xa0\x00\x00\x00\x00\x5b\xa2\x00\x00\x5d\xe5\x00\x00\x7c\xe9\x00\x00\x00\x00\x7c\xea\x83\x8b\x00\x00\x5d\xe4\x5d\xe6\x5d\xe7\x00\x00", /* 9900 */ "\x80\x59\x00\x00\x80\x58\x5f\xec\x00\x00\x5f\xed\x00\x00\x80\x5a\x83\x8a\x5f\xef\x61\xf1\x00\x00\x5f\xee\x00\x00\x00\x00\x00\x00\x63\xa6\x83\x8c\x61\xf3\x61\xf2\x83\x8d\x83\x90\x83\x8e\x83\x8f\x61\xf4\x00\x00\x63\xab\x63\xa9\x00\x00\x00\x00\x63\xa8\x86\x8a\x00\x00\x63\xaa\x00\x00\x00\x00\x86\x89\x88\xd7\x00\x00\x86\x8b\x63\xa7\x86\x8c\x88\xda\x88\xd8\x88\xd9\x88\xde\x65\xf4\x88\xdd\x88\xe0\x88\xdf\x88\xdc\x88\xdb\x00\x00\x65\x49\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xda\x00\x00\x8a\xd9\x65\xf3\x65\xf1\x65\xf2\x00\x00\x8a\xd8\x00\x00\x8c\x9f\x00\x00\x66\xcd\x00\x00\x8c\x9e\x8c\x9d\x66\xce\x00\x00\x8d\xe6\x8d\xe5\x00\x00\x8d\xe3\x00\x00\x8d\xe2\x67\x73\x67\x72\x8d\xe7\x8f\xc6\x68\x45\x8e\xe6\x67\xc2\x8e\xe5\x8d\xe4\x00\x00\x8f\xc7\x68\x70\x00\x00\x68\xad\x91\x6a\x00\x00\x91\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xfb\x75\xb5\x88\xe1\x53\xfc\x00\x00\x00\x00\x80\x5c\x80\x5b\x86\x8d\x00\x00\x00\x00\x88\xe3\x00\x00\x88\xe2\x00\x00\x65\xf5\x8c\xa0\x8c\xa1\x67\x74\x00\x00\x00\x00\x91\xa2\x56\x8c\x5b\xa5\x5b\xa4\x7c\xeb\x7c\xed\x5d\xe9\x7c\xec\x5d\xe8\x5d\xea\x7c\xee\x00\x00\x00\x00\x00\x00\x80\x5e\x80\x60\x80\x5f\x00\x00\x80\x62\x00\x00\x00\x00\x00\x00\x5f\xf0\x80\x61\x80\x5d\x00\x00\x00\x00\x00\x00\x80\x63\x00\x00\x83\x97\x00\x00\x83\x9a\x83\x9c\x83\x92\x83\x96\x83\x93\x61\xf6\x61\xf9\x61\xfb\x83\x94\x83\x95\x61\xfa\x83\x98\x83\x9b\x83\x99\x61\xfc\x00\x00\x61\xf8\x83\x91\x61\xf5\x00\x00\x61\xf7\x00\x00\x00\x00\x63\xad\x86\x93\x86\x91\x86\x90\x00\x00\x86\x96\x00\x00\x86\x95\x86\x94\x00\x00\x86\x8f\x63\xac\x86\x8e\x00\x00\x86\x92\x63\xae\x00\x00\x00\x00\x88\xe6\x00\x00\x88\xea\x88\xe7\x88\xe9\x88\xe8\x88\xe5\x88\xeb\x88\xee\x88\xec\x88\xed\x65\x4b", /* 9a00 */ "\x00\x00\x65\x4a\x88\xe4\x88\xef\x8a\xdf\x8a\xe2\x8a\xe4\x8a\xe3\x00\x00\x8a\xdd\x8a\xe1\x8a\xdc\x00\x00\x8a\xde\x65\xf6\x8a\xdb\x00\x00\x8a\xe0\x00\x00\x00\x00\x8c\xae\x8c\xa3\x66\xcf\x00\x00\x00\x00\x66\xd0\x8c\xa2\x8c\xa7\x8c\xad\x8c\xa5\x8c\xac\x00\x00\x8c\xa9\x00\x00\x8c\xa8\x8c\xab\x8c\xa6\x8c\xa4\x00\x00\x8c\xaa\x00\x00\x8d\xee\x8d\xec\x67\x75\x8d\xeb\x8d\xf1\x8d\xef\x00\x00\x67\x76\x8d\xea\x8d\xe8\x00\x00\x8d\xe9\x67\x78\x8d\xed\x67\x77\x8d\xf0\x8e\xe7\x8e\xed\x00\x00\x00\x00\x8e\xe8\x67\xc6\x8e\xee\x67\xc5\x8e\xec\x8e\xeb\x67\xc4\x8e\xea\x67\xc3\x8e\xe9\x00\x00\x8f\xcd\x8f\xcf\x8f\xce\x00\x00\x8f\xcb\x68\x47\x8f\xc8\x8f\xcc\x8f\xd1\x00\x00\x8f\xd0\x8f\xc9\x8f\xca\x68\x46\x90\x83\x68\x73\x00\x00\x90\x84\x68\x71\x68\x72\x00\x00\x00\x00\x90\xe2\x68\x96\x91\x88\x00\x00\x68\xb6\x00\x00\x91\xa3\x68\xb7\x91\xa4\x91\xa5\x91\xb3\x91\xb2\x68\xc6\x91\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8d\x00\x00\x00\x00\x7c\xf0\x00\x00\x7c\xef\x00\x00\x5f\xf1\x5f\xf2\x80\x64\x00\x00\x83\x9d\x86\x99\x00\x00\x00\x00\x61\xfd\x63\xaf\x86\x97\x00\x00\x86\x9a\x63\xb0\x00\x00\x88\xf0\x86\x98\x8a\xe5\x65\xf7\x8c\xaf\x00\x00\x00\x00\x00\x00\x8d\xf4\x8d\xf2\x00\x00\x00\x00\x8d\xf3\x00\x00\x00\x00\x8e\xef\x00\x00\x67\xc7\x8f\xd2\x68\x76\x68\x48\x68\x74\x68\x75\x90\xe3\x68\xae\x00\x00\x56\x8e\x00\x00\x00\x00\x00\x00\x8a\xe6\x00\x00\x00\x00\x72\x6d\x00\x00\x5d\xeb\x00\x00\x80\x65\x00\x00\x00\x00\x5f\xf3\x80\x66\x00\x00\x00\x00\x00\x00\x83\x9f\x83\x9e\x63\xb2\x62\x41\x62\x42\x00\x00\x83\xa2\x83\xa1\x83\xa0\x00\x00\x00\x00\x86\x9b\x86\x9e\x00\x00\x86\x9d\x86\x9c\x63\xb1\x88\xf4\x88\xf2\x88\xf1\x00\x00", /* 9b00 */ "\x00\x00\x88\xf3\x00\x00\x65\xf8\x8a\xe8\x8a\xe9\x65\xf9\x00\x00\x8a\xe7\x00\x00\x8c\xb1\x8c\xb0\x8c\xb3\x66\xd1\x8c\xb2\x00\x00\x8d\xf5\x8d\xf7\x8d\xf6\x00\x00\x00\x00\x8e\xf0\x8e\xf3\x8e\xf1\x8e\xf2\x8f\xd3\x68\x49\x00\x00\x00\x00\x00\x00\x90\x85\x90\x86\x90\x87\x00\x00\x68\x97\x68\xaf\x91\xa6\x56\x8f\x00\x00\x62\x43\x63\xb3\x8a\xea\x00\x00\x8f\xd4\x00\x00\x00\x00\x91\xb4\x72\x6e\x00\x00\x68\xc7\x56\x90\x86\x9f\x00\x00\x8a\xeb\x00\x00\x8c\xb4\x00\x00\x00\x00\x8e\xf4\x8f\xd5\x56\x91\x00\x00\x80\x67\x80\x68\x00\x00\x5f\xf4\x5f\xf5\x83\xa4\x62\x45\x62\x44\x83\xa3\x00\x00\x88\xf5\x00\x00\x8a\xec\x8a\xee\x8a\xed\x65\xfc\x65\xfb\x65\xfa\x00\x00\x67\xc9\x8e\xf5\x00\x00\x67\xc8\x8f\xd7\x8f\xd6\x00\x00\x68\x98\x90\xe4\x59\x43\x7c\xf1\x00\x00\x00\x00\x00\x00\x80\x6b\x80\x69\x80\x6a\x00\x00\x00\x00\x83\xad\x00\x00\x83\xa8\x83\xa5\x83\xac\x00\x00\x00\x00\x00\x00\x83\xae\x00\x00\x00\x00\x62\x47\x83\xab\x83\xa7\x00\x00\x00\x00\x83\xa6\x83\xaa\x83\xa9\x62\x46\x00\x00\x00\x00\x86\xaa\x86\xa5\x86\xa3\x86\xac\x86\xa4\x00\x00", /* 9b80 */ "\x86\xa0\x00\x00\x86\xa6\x00\x00\x00\x00\x86\xa1\x89\x41\x86\xa2\x86\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xa9\x63\xb4\x86\xa8\x86\xa7\x00\x00\x86\xab\x00\x00\x00\x00\x00\x00\x00\x00\x88\xf6\x88\xf9\x00\x00\x00\x00\x88\xf8\x00\x00\x89\x43\x88\xfb\x89\x42\x00\x00\x88\xfd\x88\xfc\x88\xfa\x00\x00\x88\xf7\x00\x00\x65\x4e\x65\x4d\x00\x00\x65\x4f\x65\x4c\x89\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xf4\x8a\xf7\x00\x00\x8a\xf5\x8a\xf9\x00\x00\x00\x00\x00\x00\x8a\xfa\x00\x00\x8a\xf2\x66\x44\x8a\xf3\x00\x00\x8a\xf1\x8a\xf8\x00\x00\x8a\xf0\x8a\xef\x66\x43\x66\x41\x65\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xf6\x8c\xbd\x8c\xc3\x66\xd4\x8c\xbe\x00\x00\x8c\xc1\x8c\xc5\x66\xd5\x8c\xc0\x00\x00\x8c\xb8\x00\x00\x8c\xb7\x8c\xc4\x8c\xbb\x00\x00\x8c\xb9\x8c\xc2\x8c\xba\x66\xd3\x66\xd2\x00\x00\x8c\xb5\x8c\xb6\x8c\xbf\x00\x00\x00\x00\x00\x00\x8c\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xfa\x8d\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x66\x42\x00\x00\x00\x00", /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xfb\x8e\x44\x8e\x42\x8d\xf9\x8e\x47\x00\x00\x8d\xf8\x00\x00\x67\x7a\x8e\x43\x00\x00\x00\x00\x00\x00\x8d\xfc\x67\x79\x8e\x46\x00\x00\x00\x00\x8e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x8e\xf8\x8e\xf7\x00\x00\x00\x00\x00\x00\x8f\x41\x00\x00\x8e\xfa\x8e\xfd\x67\xcb\x00\x00\x00\x00\x8e\xfb\x8e\xfc\x00\x00\x8e\xf6\x8e\xf9\x67\xca\x00\x00\x00\x00\x00\x00\x68\x4b\x8f\xe2\x8f\xdd\x8f\xe1\x00\x00\x8f\xe4\x8f\xe0\x00\x00\x8f\xdc\x00\x00\x68\x4d\x8f\xdf\x8f\xe3\x68\x4c\x8f\xda\x8e\x41\x8f\xde\x00\x00\x00\x00\x8f\xdb\x00\x00\x8f\xd8\x00\x00\x8f\xd9\x68\x4a\x90\x8b\x90\x8d\x90\x90\x90\x8c\x90\x91\x00\x00\x90\x8a\x00\x00\x90\x88\x00\x00\x68\x77\x90\x8e\x68\x79\x68\x78\x90\x89\x90\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x90\xe9\x68\x99\x90\xea\x00\x00\x90\xe8\x90\xe5\x00\x00\x00\x00\x90\xe7\x90\xe6\x91\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x91\x6d\x91\x6c\x00\x00\x00\x00\x91\x8b\x00\x00\x91\x8a\x91\x89\x91\x8c\x00\x00\x68\xbf\x68\xc0\x91\xba\x91\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x44\x79\x75\x7c\xf4\x00\x00\x5d\xec\x7c\xf2\x00\x00\x00\x00\x7c\xf3\x00\x00\x00\x00\x00\x00\x80\x6c\x80\x6d\x5f\xf8\x5f\xf6\x80\x6e\x5f\xf7\x83\xb3\x00\x00\x83\xb6\x83\xb0\x83\xb7\x83\xaf\x83\xb1\x00\x00\x83\xb2", /* 9d00 */ "\x83\xb5\x00\x00\x00\x00\x62\x4a\x83\xba\x83\xb9\x62\x48\x83\xb4\x83\xb8\x62\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xb7\x00\x00\x63\xb9\x00\x00\x86\xb2\x63\xb5\x00\x00\x86\xaf\x86\xb5\x86\xb8\x00\x00\x63\xba\x00\x00\x86\xb4\x86\xb1\x86\xb9\x86\xb0\x00\x00\x86\xb6\x63\xb6\x00\x00\x86\xae\x63\xb7\x00\x00\x63\xb8\x86\xb3\x00\x00\x00\x00\x00\x00\x89\x56\x89\x49\x89\x4a\x89\x4d\x89\x4b\x00\x00\x89\x45\x00\x00\x00\x00\x89\x48\x89\x52\x89\x4c\x00\x00\x00\x00\x65\x50\x00\x00\x89\x54\x89\x51\x65\x51\x89\x53\x89\x46\x89\x4f\x89\x50\x00\x00\x89\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x41\x8b\x43\x8b\x46\x00\x00\x00\x00\x8a\xfd\x00\x00\x66\x45\x8b\x48\x8a\xfc\x8b\x49\x00\x00\x8b\x45\x8b\x47\x8b\x4b\x8b\x44\x8b\x4c\x8b\x42\x8a\xfb\x66\x46\x00\x00\x8b\x4a\x66\x47\x66\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\x8c\xdf\x8c\xd6\x66\xd9\x8c\xd2\x66\xda\x00\x00\x00\x00\x8c\xdb\x8c\xd5\x8c\xcb\x66\xd8\x8c\xd8\x8c\xd3\x8c\xd4\x00\x00\x8c\xc6\x8c\xcd\x8c\xdc\x00\x00\x8c\xd9\x00\x00\x8c\xd1\x00\x00\x8c\xdd", /* 9d80 */ "\x8c\xcc\x8c\xc7\x8c\xda\x00\x00\x8c\xc9\x8c\xd7\x8c\xce\x8c\xde\x8c\xca\x66\xd6\x8c\xc8\x8c\xcf\x8c\xd0\x00\x00\x00\x00\x00\x00\x8e\x4e\x00\x00\x8e\x4c\x00\x00\x8e\x51\x00\x00\x8e\x5d\x8e\x54\x8e\x4d\x8e\x49\x8e\x56\x8e\x4f\x8e\x52\x8e\x4b\x8e\x59\x8e\x48\x8e\x50\x8e\x55\x8e\x57\x8e\x5a\x8e\x4a\x00\x00\x8e\x5e\x8e\x5f\x8e\x58\x8e\x5c\x8e\x53\x00\x00\x8f\x51\x8f\x54\x00\x00\x67\xcc\x00\x00\x8f\x53\x8f\x58\x8f\x56\x67\xcd\x8f\x4d\x8f\x43\x8f\x42\x67\xcf\x8f\x4f\x8f\x50\x8f\x4c\x8f\x44\x00\x00\x8f\x49\x8e\x5b\x00\x00\x8f\x45\x67\xce\x8f\x4b\x00\x00\x8f\x4a\x00\x00\x8f\x46\x8f\x52\x00\x00\x8f\x47\x8f\xe9\x8f\x55\x8f\x57\x8f\x4e\x8f\x48\x8f\xea\x8f\xec\x8f\xe6\x68\x4e\x00\x00\x8f\xf3\x8f\xf1\x68\x4f\x8f\xf0\x8f\xef\x8f\xe8\x8f\xe5\x8f\xeb\x8f\xf4\x8f\xe7\x8f\xed\x00\x00\x90\x9a\x90\x9f\x90\x95\x90\x98\x68\x7a\x90\x9c\x00\x00\x90\xa3\x8f\xee\x00\x00\x90\x96\x90\xa0\x90\xa4\x90\x9b\x90\x94\x90\x9e\x00\x00\x90\x9d\x90\xa2\x90\xa1\x8f\xf2\x90\x99\x90\x93\x90\x97\x68\x9a\x68\x9b\x90\x92\x00\x00\x90\xf5\x90\xec\x90\xf4", /* 9e00 */ "\x90\xf1\x90\xf2\x90\xeb\x90\xee\x90\xf6\x90\xf0\x90\xef\x90\xed\x00\x00\x90\xf3\x00\x00\x91\x6e\x00\x00\x91\x6f\x00\x00\x91\x71\x91\x70\x91\x73\x91\x72\x91\x8e\x91\x8d\x91\xa7\x00\x00\x91\xa8\x00\x00\x91\xb5\x68\xc4\x68\xc8\x00\x00\x91\xbf\x68\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x45\x00\x00\x00\x00\x00\x00\x67\x7b\x8f\x59\x00\x00\x68\x9c\x68\x9d\x00\x00\x59\x46", /* 9e80 */ "\x7c\xf5\x00\x00\x5d\xed\x83\xbb\x00\x00\x00\x00\x86\xbb\x86\xbc\x86\xba\x89\x58\x89\x57\x65\x52\x8b\x4e\x89\x59\x8b\x4d\x00\x00\x00\x00\x8c\xe1\x66\xdb\x66\xdd\x8c\xe0\x00\x00\x00\x00\x66\xdc\x00\x00\x8e\x60\x8e\x62\x8e\x61\x8f\x5a\x67\xd0\x00\x00\x68\x7b\x90\xf7\x91\x74\x00\x00\x00\x00\x91\xc2\x59\x47\x00\x00\x80\x6f\x00\x00\x62\x4b\x00\x00\x00\x00\x00\x00\x86\xbe\x86\xbd\x00\x00\x89\x5a\x00\x00\x00\x00\x00\x00\x66\xde\x67\x7c\x8f\xf5\x91\xbb\x00\x00\x00\x00\x00\x00\x59\x48\x5f\xf9\x00\x00\x62\x4c\x00\x00\x8c\xe2\x00\x00\x90\xa5\x5b\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x89\x5b\x00\x00\x00\x00\x00\x00\x68\xb0\x5b\xa7\x62\x4d\x65\x53\x90\xa6\x5b\xa8\x00\x00\x83\xbc\x63\xbc\x86\xbf\x86\xc0\x00\x00\x63\xbb\x00\x00\x89\x5c\x65\x57\x65\x55\x65\x56\x65\x54\x8b\x4f\x66\x48\x00\x00\x00\x00\x00\x00\x8e\x64\x8e\x63\x8e\x66\x8e\x65\x67\x7d\x00\x00\x00\x00\x8f\x5b\x00\x00\x8f\x5d\x8f\x5c\x67\xd1\x8f\xf6\x00\x00\x90\xa7\x90\xa8\x68\x7c\x91\x75\x91\x8f\x68\xc1\x00\x00\x79\x76\x86\xc1\x89\x5d\x8c\xe3\x7c\xf6\x00\x00\x89\x5e", /* 9f00 */ "\x8b\x51\x8b\x50\x00\x00\x00\x00\x00\x00\x00\x00\x90\xa9\x68\x9e\x00\x00\x91\x76\x91\x90\x00\x00\x00\x00\x00\x00\x5d\xee\x83\xbd\x83\xbe\x00\x00\x86\xc2\x5d\xef\x00\x00\x66\x49\x8b\x52\x00\x00\x8f\x5f\x67\xd2\x8f\x60\x8f\x5e\x90\xaa\x00\x00\x90\xf8\x00\x00\x5d\xf0\x00\x00\x89\x61\x89\x60\x89\x5f\x8b\x53\x00\x00\x00\x00\x8b\x57\x8b\x56\x8b\x55\x8b\x54\x66\x4a\x8c\xe4\x8e\x68\x67\x7e\x8e\x67\x8f\x61\x8f\xf9\x8f\xf8\x68\x50\x8f\xf7\x90\xad\x90\xac\x90\xab\x00\x00\x00\x00\x5f\xfa\x00\x00\x86\xc3\x65\x58\x00\x00\x8c\xe5\x8c\xe6\x8f\xfa\x90\xae\x00\x00\x00\x00\x90\xf9\x91\x77\x91\xa9\x91\xc4\x5f\xfb\x65\x59\x8b\x58\x8c\xe7\x8f\x62\x90\xaf\x00\x00\x00\x00\x62\x4f\x00\x00\x89\x62\x8b\x59\x8c\xe8\x8c\xe9\x8c\xea\x8e\x6d\x00\x00\x8e\x69\x67\xd3\x8e\x6c\x8e\x6b\x67\x7f\x8e\x6a\x67\x82\x00\x00\x67\x81\x8f\x64\x8f\x63\x67\xd4\x67\xd5\x00\x00\x00\x00\x68\x52\x8f\xfb\x68\x51\x00\x00\x90\xb2\x90\xb3\x90\xb1\x90\xb0\x68\xa0\x00\x00\x90\xfa\x90\xfb\x90\xfc\x68\x9f\x91\x78\x91\x7b\x91\x7a\x91\x79\x00\x00\x00\x00\x91\xc3\x00\x00", /* 9f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbd\x00\x00\x00\x00\x66\x51\x8e\x6e\x8f\x65\x00\x00\x68\x53\x8f\xfc\x00\x00\x00\x00\x91\xc5\x00\x00\x00\x00\x00\x00\x63\xbe\x00\x00\x00\x00\x00\x00\x89\x63\x00\x00\x8f\xfd\x00\x00\x91\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\xc2\x41\xc2\x42\xc2\x43\xc2\x44\xc2\x45\xc2\x46\xc2\x47\xc2\x48\xc2\x49\xc2\x4a\xc2\x4b\xc2\x4c\xc2\x4d\xc2\x4e\xc2\x4f\xc2\x50\xc2\x51\xc2\x52\xc2\x53\xc2\x54\xc2\x55\xc2\x56\xc2\x57\xc2\x58\xc2\x59\xc2\x5a\xc2\x5b\xc2\x5c\xc2\x5d\xc2\x5e\xc2\x5f\xc2\x60\xc2\x61\xc2\x62\xc2\x63\xc2\x64\xc2\x65\xc2\x66\xc2\x67\xc2\x68\xc2\x69\xc2\x6a\xc2\x6b\xc2\x6c\xc2\x6d\xc2\x6e\xc2\x6f\xc2\x70\xc2\x71\xc2\x72\xc2\x73\xc2\x74\xc2\x75\xc2\x76\xc2\x77\xc2\x78\xc2\x79\xc2\x7a\xc2\x7b\xc2\x7c\xc2\x7d\xc2\x7e\xc2\x7f\xc2\x81\xc2\x82\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\xc2\x88\xc2\x89\xc2\x8a\xc2\x8b\xc2\x8c\xc2\x8d\xc2\x8e\xc2\x8f\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\xc2\x95\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\xc2\xa3\xc2\xa4\xc2\xa5\xc2\xa6\xc2\xa7\xc2\xa8\xc2\xa9\xc2\xaa\xc2\xab\xc2\xac\xc2\xad\xc2\xae\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc2\xc0\xc2\xc1", /* e080 */ "\xc2\xc2\xc2\xc3\xc2\xc4\xc2\xc5\xc2\xc6\xc2\xc7\xc2\xc8\xc2\xc9\xc2\xca\xc2\xcb\xc2\xcc\xc2\xcd\xc2\xce\xc2\xcf\xc2\xd0\xc2\xd1\xc2\xd2\xc2\xd3\xc2\xd4\xc2\xd5\xc2\xd6\xc2\xd7\xc2\xd8\xc2\xd9\xc2\xda\xc2\xdb\xc2\xdc\xc2\xdd\xc2\xde\xc2\xdf\xc2\xe0\xc2\xe1\xc2\xe2\xc2\xe3\xc2\xe4\xc2\xe5\xc2\xe6\xc2\xe7\xc2\xe8\xc2\xe9\xc2\xea\xc2\xeb\xc2\xec\xc2\xed\xc2\xee\xc2\xef\xc2\xf0\xc2\xf1\xc2\xf2\xc2\xf3\xc2\xf4\xc2\xf5\xc2\xf6\xc2\xf7\xc2\xf8\xc2\xf9\xc2\xfa\xc2\xfb\xc2\xfc\xc2\xfd\xc3\x41\xc3\x42\xc3\x43\xc3\x44\xc3\x45\xc3\x46\xc3\x47\xc3\x48\xc3\x49\xc3\x4a\xc3\x4b\xc3\x4c\xc3\x4d\xc3\x4e\xc3\x4f\xc3\x50\xc3\x51\xc3\x52\xc3\x53\xc3\x54\xc3\x55\xc3\x56\xc3\x57\xc3\x58\xc3\x59\xc3\x5a\xc3\x5b\xc3\x5c\xc3\x5d\xc3\x5e\xc3\x5f\xc3\x60\xc3\x61\xc3\x62\xc3\x63\xc3\x64\xc3\x65\xc3\x66\xc3\x67\xc3\x68\xc3\x69\xc3\x6a\xc3\x6b\xc3\x6c\xc3\x6d\xc3\x6e\xc3\x6f\xc3\x70\xc3\x71\xc3\x72\xc3\x73\xc3\x74\xc3\x75\xc3\x76\xc3\x77\xc3\x78\xc3\x79\xc3\x7a\xc3\x7b\xc3\x7c\xc3\x7d\xc3\x7e\xc3\x7f\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85", /* e100 */ "\xc3\x86\xc3\x87\xc3\x88\xc3\x89\xc3\x8a\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\xc3\x90\xc3\x91\xc3\x92\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\xc3\x9d\xc3\x9e\xc3\x9f\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xb7\xc3\xb8\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf\xc3\xc0\xc3\xc1\xc3\xc2\xc3\xc3\xc3\xc4\xc3\xc5\xc3\xc6\xc3\xc7\xc3\xc8\xc3\xc9\xc3\xca\xc3\xcb\xc3\xcc\xc3\xcd\xc3\xce\xc3\xcf\xc3\xd0\xc3\xd1\xc3\xd2\xc3\xd3\xc3\xd4\xc3\xd5\xc3\xd6\xc3\xd7\xc3\xd8\xc3\xd9\xc3\xda\xc3\xdb\xc3\xdc\xc3\xdd\xc3\xde\xc3\xdf\xc3\xe0\xc3\xe1\xc3\xe2\xc3\xe3\xc3\xe4\xc3\xe5\xc3\xe6\xc3\xe7\xc3\xe8\xc3\xe9\xc3\xea\xc3\xeb\xc3\xec\xc3\xed\xc3\xee\xc3\xef\xc3\xf0\xc3\xf1\xc3\xf2\xc3\xf3\xc3\xf4\xc3\xf5\xc3\xf6\xc3\xf7\xc3\xf8\xc3\xf9\xc3\xfa\xc3\xfb\xc3\xfc\xc3\xfd\xc4\x41\xc4\x42\xc4\x43\xc4\x44\xc4\x45\xc4\x46\xc4\x47\xc4\x48", /* e180 */ "\xc4\x49\xc4\x4a\xc4\x4b\xc4\x4c\xc4\x4d\xc4\x4e\xc4\x4f\xc4\x50\xc4\x51\xc4\x52\xc4\x53\xc4\x54\xc4\x55\xc4\x56\xc4\x57\xc4\x58\xc4\x59\xc4\x5a\xc4\x5b\xc4\x5c\xc4\x5d\xc4\x5e\xc4\x5f\xc4\x60\xc4\x61\xc4\x62\xc4\x63\xc4\x64\xc4\x65\xc4\x66\xc4\x67\xc4\x68\xc4\x69\xc4\x6a\xc4\x6b\xc4\x6c\xc4\x6d\xc4\x6e\xc4\x6f\xc4\x70\xc4\x71\xc4\x72\xc4\x73\xc4\x74\xc4\x75\xc4\x76\xc4\x77\xc4\x78\xc4\x79\xc4\x7a\xc4\x7b\xc4\x7c\xc4\x7d\xc4\x7e\xc4\x7f\xc4\x81\xc4\x82\xc4\x83\xc4\x84\xc4\x85\xc4\x86\xc4\x87\xc4\x88\xc4\x89\xc4\x8a\xc4\x8b\xc4\x8c\xc4\x8d\xc4\x8e\xc4\x8f\xc4\x90\xc4\x91\xc4\x92\xc4\x93\xc4\x94\xc4\x95\xc4\x96\xc4\x97\xc4\x98\xc4\x99\xc4\x9a\xc4\x9b\xc4\x9c\xc4\x9d\xc4\x9e\xc4\x9f\xc4\xa0\xc4\xa1\xc4\xa2\xc4\xa3\xc4\xa4\xc4\xa5\xc4\xa6\xc4\xa7\xc4\xa8\xc4\xa9\xc4\xaa\xc4\xab\xc4\xac\xc4\xad\xc4\xae\xc4\xaf\xc4\xb0\xc4\xb1\xc4\xb2\xc4\xb3\xc4\xb4\xc4\xb5\xc4\xb6\xc4\xb7\xc4\xb8\xc4\xb9\xc4\xba\xc4\xbb\xc4\xbc\xc4\xbd\xc4\xbe\xc4\xbf\xc4\xc0\xc4\xc1\xc4\xc2\xc4\xc3\xc4\xc4\xc4\xc5\xc4\xc6\xc4\xc7\xc4\xc8\xc4\xc9", /* e200 */ "\xc4\xca\xc4\xcb\xc4\xcc\xc4\xcd\xc4\xce\xc4\xcf\xc4\xd0\xc4\xd1\xc4\xd2\xc4\xd3\xc4\xd4\xc4\xd5\xc4\xd6\xc4\xd7\xc4\xd8\xc4\xd9\xc4\xda\xc4\xdb\xc4\xdc\xc4\xdd\xc4\xde\xc4\xdf\xc4\xe0\xc4\xe1\xc4\xe2\xc4\xe3\xc4\xe4\xc4\xe5\xc4\xe6\xc4\xe7\xc4\xe8\xc4\xe9\xc4\xea\xc4\xeb\xc4\xec\xc4\xed\xc4\xee\xc4\xef\xc4\xf0\xc4\xf1\xc4\xf2\xc4\xf3\xc4\xf4\xc4\xf5\xc4\xf6\xc4\xf7\xc4\xf8\xc4\xf9\xc4\xfa\xc4\xfb\xc4\xfc\xc4\xfd\xc5\x41\xc5\x42\xc5\x43\xc5\x44\xc5\x45\xc5\x46\xc5\x47\xc5\x48\xc5\x49\xc5\x4a\xc5\x4b\xc5\x4c\xc5\x4d\xc5\x4e\xc5\x4f\xc5\x50\xc5\x51\xc5\x52\xc5\x53\xc5\x54\xc5\x55\xc5\x56\xc5\x57\xc5\x58\xc5\x59\xc5\x5a\xc5\x5b\xc5\x5c\xc5\x5d\xc5\x5e\xc5\x5f\xc5\x60\xc5\x61\xc5\x62\xc5\x63\xc5\x64\xc5\x65\xc5\x66\xc5\x67\xc5\x68\xc5\x69\xc5\x6a\xc5\x6b\xc5\x6c\xc5\x6d\xc5\x6e\xc5\x6f\xc5\x70\xc5\x71\xc5\x72\xc5\x73\xc5\x74\xc5\x75\xc5\x76\xc5\x77\xc5\x78\xc5\x79\xc5\x7a\xc5\x7b\xc5\x7c\xc5\x7d\xc5\x7e\xc5\x7f\xc5\x81\xc5\x82\xc5\x83\xc5\x84\xc5\x85\xc5\x86\xc5\x87\xc5\x88\xc5\x89\xc5\x8a\xc5\x8b\xc5\x8c\xc5\x8d", /* e280 */ "\xc5\x8e\xc5\x8f\xc5\x90\xc5\x91\xc5\x92\xc5\x93\xc5\x94\xc5\x95\xc5\x96\xc5\x97\xc5\x98\xc5\x99\xc5\x9a\xc5\x9b\xc5\x9c\xc5\x9d\xc5\x9e\xc5\x9f\xc5\xa0\xc5\xa1\xc5\xa2\xc5\xa3\xc5\xa4\xc5\xa5\xc5\xa6\xc5\xa7\xc5\xa8\xc5\xa9\xc5\xaa\xc5\xab\xc5\xac\xc5\xad\xc5\xae\xc5\xaf\xc5\xb0\xc5\xb1\xc5\xb2\xc5\xb3\xc5\xb4\xc5\xb5\xc5\xb6\xc5\xb7\xc5\xb8\xc5\xb9\xc5\xba\xc5\xbb\xc5\xbc\xc5\xbd\xc5\xbe\xc5\xbf\xc5\xc0\xc5\xc1\xc5\xc2\xc5\xc3\xc5\xc4\xc5\xc5\xc5\xc6\xc5\xc7\xc5\xc8\xc5\xc9\xc5\xca\xc5\xcb\xc5\xcc\xc5\xcd\xc5\xce\xc5\xcf\xc5\xd0\xc5\xd1\xc5\xd2\xc5\xd3\xc5\xd4\xc5\xd5\xc5\xd6\xc5\xd7\xc5\xd8\xc5\xd9\xc5\xda\xc5\xdb\xc5\xdc\xc5\xdd\xc5\xde\xc5\xdf\xc5\xe0\xc5\xe1\xc5\xe2\xc5\xe3\xc5\xe4\xc5\xe5\xc5\xe6\xc5\xe7\xc5\xe8\xc5\xe9\xc5\xea\xc5\xeb\xc5\xec\xc5\xed\xc5\xee\xc5\xef\xc5\xf0\xc5\xf1\xc5\xf2\xc5\xf3\xc5\xf4\xc5\xf5\xc5\xf6\xc5\xf7\xc5\xf8\xc5\xf9\xc5\xfa\xc5\xfb\xc5\xfc\xc5\xfd\xc6\x41\xc6\x42\xc6\x43\xc6\x44\xc6\x45\xc6\x46\xc6\x47\xc6\x48\xc6\x49\xc6\x4a\xc6\x4b\xc6\x4c\xc6\x4d\xc6\x4e\xc6\x4f\xc6\x50", /* e300 */ "\xc6\x51\xc6\x52\xc6\x53\xc6\x54\xc6\x55\xc6\x56\xc6\x57\xc6\x58\xc6\x59\xc6\x5a\xc6\x5b\xc6\x5c\xc6\x5d\xc6\x5e\xc6\x5f\xc6\x60\xc6\x61\xc6\x62\xc6\x63\xc6\x64\xc6\x65\xc6\x66\xc6\x67\xc6\x68\xc6\x69\xc6\x6a\xc6\x6b\xc6\x6c\xc6\x6d\xc6\x6e\xc6\x6f\xc6\x70\xc6\x71\xc6\x72\xc6\x73\xc6\x74\xc6\x75\xc6\x76\xc6\x77\xc6\x78\xc6\x79\xc6\x7a\xc6\x7b\xc6\x7c\xc6\x7d\xc6\x7e\xc6\x7f\xc6\x81\xc6\x82\xc6\x83\xc6\x84\xc6\x85\xc6\x86\xc6\x87\xc6\x88\xc6\x89\xc6\x8a\xc6\x8b\xc6\x8c\xc6\x8d\xc6\x8e\xc6\x8f\xc6\x90\xc6\x91\xc6\x92\xc6\x93\xc6\x94\xc6\x95\xc6\x96\xc6\x97\xc6\x98\xc6\x99\xc6\x9a\xc6\x9b\xc6\x9c\xc6\x9d\xc6\x9e\xc6\x9f\xc6\xa0\xc6\xa1\xc6\xa2\xc6\xa3\xc6\xa4\xc6\xa5\xc6\xa6\xc6\xa7\xc6\xa8\xc6\xa9\xc6\xaa\xc6\xab\xc6\xac\xc6\xad\xc6\xae\xc6\xaf\xc6\xb0\xc6\xb1\xc6\xb2\xc6\xb3\xc6\xb4\xc6\xb5\xc6\xb6\xc6\xb7\xc6\xb8\xc6\xb9\xc6\xba\xc6\xbb\xc6\xbc\xc6\xbd\xc6\xbe\xc6\xbf\xc6\xc0\xc6\xc1\xc6\xc2\xc6\xc3\xc6\xc4\xc6\xc5\xc6\xc6\xc6\xc7\xc6\xc8\xc6\xc9\xc6\xca\xc6\xcb\xc6\xcc\xc6\xcd\xc6\xce\xc6\xcf\xc6\xd0\xc6\xd1", /* e380 */ "\xc6\xd2\xc6\xd3\xc6\xd4\xc6\xd5\xc6\xd6\xc6\xd7\xc6\xd8\xc6\xd9\xc6\xda\xc6\xdb\xc6\xdc\xc6\xdd\xc6\xde\xc6\xdf\xc6\xe0\xc6\xe1\xc6\xe2\xc6\xe3\xc6\xe4\xc6\xe5\xc6\xe6\xc6\xe7\xc6\xe8\xc6\xe9\xc6\xea\xc6\xeb\xc6\xec\xc6\xed\xc6\xee\xc6\xef\xc6\xf0\xc6\xf1\xc6\xf2\xc6\xf3\xc6\xf4\xc6\xf5\xc6\xf6\xc6\xf7\xc6\xf8\xc6\xf9\xc6\xfa\xc6\xfb\xc6\xfc\xc6\xfd\xc7\x41\xc7\x42\xc7\x43\xc7\x44\xc7\x45\xc7\x46\xc7\x47\xc7\x48\xc7\x49\xc7\x4a\xc7\x4b\xc7\x4c\xc7\x4d\xc7\x4e\xc7\x4f\xc7\x50\xc7\x51\xc7\x52\xc7\x53\xc7\x54\xc7\x55\xc7\x56\xc7\x57\xc7\x58\xc7\x59\xc7\x5a\xc7\x5b\xc7\x5c\xc7\x5d\xc7\x5e\xc7\x5f\xc7\x60\xc7\x61\xc7\x62\xc7\x63\xc7\x64\xc7\x65\xc7\x66\xc7\x67\xc7\x68\xc7\x69\xc7\x6a\xc7\x6b\xc7\x6c\xc7\x6d\xc7\x6e\xc7\x6f\xc7\x70\xc7\x71\xc7\x72\xc7\x73\xc7\x74\xc7\x75\xc7\x76\xc7\x77\xc7\x78\xc7\x79\xc7\x7a\xc7\x7b\xc7\x7c\xc7\x7d\xc7\x7e\xc7\x7f\xc7\x81\xc7\x82\xc7\x83\xc7\x84\xc7\x85\xc7\x86\xc7\x87\xc7\x88\xc7\x89\xc7\x8a\xc7\x8b\xc7\x8c\xc7\x8d\xc7\x8e\xc7\x8f\xc7\x90\xc7\x91\xc7\x92\xc7\x93\xc7\x94\xc7\x95", /* e400 */ "\xc7\x96\xc7\x97\xc7\x98\xc7\x99\xc7\x9a\xc7\x9b\xc7\x9c\xc7\x9d\xc7\x9e\xc7\x9f\xc7\xa0\xc7\xa1\xc7\xa2\xc7\xa3\xc7\xa4\xc7\xa5\xc7\xa6\xc7\xa7\xc7\xa8\xc7\xa9\xc7\xaa\xc7\xab\xc7\xac\xc7\xad\xc7\xae\xc7\xaf\xc7\xb0\xc7\xb1\xc7\xb2\xc7\xb3\xc7\xb4\xc7\xb5\xc7\xb6\xc7\xb7\xc7\xb8\xc7\xb9\xc7\xba\xc7\xbb\xc7\xbc\xc7\xbd\xc7\xbe\xc7\xbf\xc7\xc0\xc7\xc1\xc7\xc2\xc7\xc3\xc7\xc4\xc7\xc5\xc7\xc6\xc7\xc7\xc7\xc8\xc7\xc9\xc7\xca\xc7\xcb\xc7\xcc\xc7\xcd\xc7\xce\xc7\xcf\xc7\xd0\xc7\xd1\xc7\xd2\xc7\xd3\xc7\xd4\xc7\xd5\xc7\xd6\xc7\xd7\xc7\xd8\xc7\xd9\xc7\xda\xc7\xdb\xc7\xdc\xc7\xdd\xc7\xde\xc7\xdf\xc7\xe0\xc7\xe1\xc7\xe2\xc7\xe3\xc7\xe4\xc7\xe5\xc7\xe6\xc7\xe7\xc7\xe8\xc7\xe9\xc7\xea\xc7\xeb\xc7\xec\xc7\xed\xc7\xee\xc7\xef\xc7\xf0\xc7\xf1\xc7\xf2\xc7\xf3\xc7\xf4\xc7\xf5\xc7\xf6\xc7\xf7\xc7\xf8\xc7\xf9\xc7\xfa\xc7\xfb\xc7\xfc\xc7\xfd\xc8\x41\xc8\x42\xc8\x43\xc8\x44\xc8\x45\xc8\x46\xc8\x47\xc8\x48\xc8\x49\xc8\x4a\xc8\x4b\xc8\x4c\xc8\x4d\xc8\x4e\xc8\x4f\xc8\x50\xc8\x51\xc8\x52\xc8\x53\xc8\x54\xc8\x55\xc8\x56\xc8\x57\xc8\x58", /* e480 */ "\xc8\x59\xc8\x5a\xc8\x5b\xc8\x5c\xc8\x5d\xc8\x5e\xc8\x5f\xc8\x60\xc8\x61\xc8\x62\xc8\x63\xc8\x64\xc8\x65\xc8\x66\xc8\x67\xc8\x68\xc8\x69\xc8\x6a\xc8\x6b\xc8\x6c\xc8\x6d\xc8\x6e\xc8\x6f\xc8\x70\xc8\x71\xc8\x72\xc8\x73\xc8\x74\xc8\x75\xc8\x76\xc8\x77\xc8\x78\xc8\x79\xc8\x7a\xc8\x7b\xc8\x7c\xc8\x7d\xc8\x7e\xc8\x7f\xc8\x81\xc8\x82\xc8\x83\xc8\x84\xc8\x85\xc8\x86\xc8\x87\xc8\x88\xc8\x89\xc8\x8a\xc8\x8b\xc8\x8c\xc8\x8d\xc8\x8e\xc8\x8f\xc8\x90\xc8\x91\xc8\x92\xc8\x93\xc8\x94\xc8\x95\xc8\x96\xc8\x97\xc8\x98\xc8\x99\xc8\x9a\xc8\x9b\xc8\x9c\xc8\x9d\xc8\x9e\xc8\x9f\xc8\xa0\xc8\xa1\xc8\xa2\xc8\xa3\xc8\xa4\xc8\xa5\xc8\xa6\xc8\xa7\xc8\xa8\xc8\xa9\xc8\xaa\xc8\xab\xc8\xac\xc8\xad\xc8\xae\xc8\xaf\xc8\xb0\xc8\xb1\xc8\xb2\xc8\xb3\xc8\xb4\xc8\xb5\xc8\xb6\xc8\xb7\xc8\xb8\xc8\xb9\xc8\xba\xc8\xbb\xc8\xbc\xc8\xbd\xc8\xbe\xc8\xbf\xc8\xc0\xc8\xc1\xc8\xc2\xc8\xc3\xc8\xc4\xc8\xc5\xc8\xc6\xc8\xc7\xc8\xc8\xc8\xc9\xc8\xca\xc8\xcb\xc8\xcc\xc8\xcd\xc8\xce\xc8\xcf\xc8\xd0\xc8\xd1\xc8\xd2\xc8\xd3\xc8\xd4\xc8\xd5\xc8\xd6\xc8\xd7\xc8\xd8\xc8\xd9", /* e500 */ "\xc8\xda\xc8\xdb\xc8\xdc\xc8\xdd\xc8\xde\xc8\xdf\xc8\xe0\xc8\xe1\xc8\xe2\xc8\xe3\xc8\xe4\xc8\xe5\xc8\xe6\xc8\xe7\xc8\xe8\xc8\xe9\xc8\xea\xc8\xeb\xc8\xec\xc8\xed\xc8\xee\xc8\xef\xc8\xf0\xc8\xf1\xc8\xf2\xc8\xf3\xc8\xf4\xc8\xf5\xc8\xf6\xc8\xf7\xc8\xf8\xc8\xf9\xc8\xfa\xc8\xfb\xc8\xfc\xc8\xfd\xc9\x41\xc9\x42\xc9\x43\xc9\x44\xc9\x45\xc9\x46\xc9\x47\xc9\x48\xc9\x49\xc9\x4a\xc9\x4b\xc9\x4c\xc9\x4d\xc9\x4e\xc9\x4f\xc9\x50\xc9\x51\xc9\x52\xc9\x53\xc9\x54\xc9\x55\xc9\x56\xc9\x57\xc9\x58\xc9\x59\xc9\x5a\xc9\x5b\xc9\x5c\xc9\x5d\xc9\x5e\xc9\x5f\xc9\x60\xc9\x61\xc9\x62\xc9\x63\xc9\x64\xc9\x65\xc9\x66\xc9\x67\xc9\x68\xc9\x69\xc9\x6a\xc9\x6b\xc9\x6c\xc9\x6d\xc9\x6e\xc9\x6f\xc9\x70\xc9\x71\xc9\x72\xc9\x73\xc9\x74\xc9\x75\xc9\x76\xc9\x77\xc9\x78\xc9\x79\xc9\x7a\xc9\x7b\xc9\x7c\xc9\x7d\xc9\x7e\xc9\x7f\xc9\x81\xc9\x82\xc9\x83\xc9\x84\xc9\x85\xc9\x86\xc9\x87\xc9\x88\xc9\x89\xc9\x8a\xc9\x8b\xc9\x8c\xc9\x8d\xc9\x8e\xc9\x8f\xc9\x90\xc9\x91\xc9\x92\xc9\x93\xc9\x94\xc9\x95\xc9\x96\xc9\x97\xc9\x98\xc9\x99\xc9\x9a\xc9\x9b\xc9\x9c\xc9\x9d", /* e580 */ "\xc9\x9e\xc9\x9f\xc9\xa0\xc9\xa1\xc9\xa2\xc9\xa3\xc9\xa4\xc9\xa5\xc9\xa6\xc9\xa7\xc9\xa8\xc9\xa9\xc9\xaa\xc9\xab\xc9\xac\xc9\xad\xc9\xae\xc9\xaf\xc9\xb0\xc9\xb1\xc9\xb2\xc9\xb3\xc9\xb4\xc9\xb5\xc9\xb6\xc9\xb7\xc9\xb8\xc9\xb9\xc9\xba\xc9\xbb\xc9\xbc\xc9\xbd\xc9\xbe\xc9\xbf\xc9\xc0\xc9\xc1\xc9\xc2\xc9\xc3\xc9\xc4\xc9\xc5\xc9\xc6\xc9\xc7\xc9\xc8\xc9\xc9\xc9\xca\xc9\xcb\xc9\xcc\xc9\xcd\xc9\xce\xc9\xcf\xc9\xd0\xc9\xd1\xc9\xd2\xc9\xd3\xc9\xd4\xc9\xd5\xc9\xd6\xc9\xd7\xc9\xd8\xc9\xd9\xc9\xda\xc9\xdb\xc9\xdc\xc9\xdd\xc9\xde\xc9\xdf\xc9\xe0\xc9\xe1\xc9\xe2\xc9\xe3\xc9\xe4\xc9\xe5\xc9\xe6\xc9\xe7\xc9\xe8\xc9\xe9\xc9\xea\xc9\xeb\xc9\xec\xc9\xed\xc9\xee\xc9\xef\xc9\xf0\xc9\xf1\xc9\xf2\xc9\xf3\xc9\xf4\xc9\xf5\xc9\xf6\xc9\xf7\xc9\xf8\xc9\xf9\xc9\xfa\xc9\xfb\xc9\xfc\xc9\xfd\xca\x41\xca\x42\xca\x43\xca\x44\xca\x45\xca\x46\xca\x47\xca\x48\xca\x49\xca\x4a\xca\x4b\xca\x4c\xca\x4d\xca\x4e\xca\x4f\xca\x50\xca\x51\xca\x52\xca\x53\xca\x54\xca\x55\xca\x56\xca\x57\xca\x58\xca\x59\xca\x5a\xca\x5b\xca\x5c\xca\x5d\xca\x5e\xca\x5f\xca\x60", /* e600 */ "\xca\x61\xca\x62\xca\x63\xca\x64\xca\x65\xca\x66\xca\x67\xca\x68\xca\x69\xca\x6a\xca\x6b\xca\x6c\xca\x6d\xca\x6e\xca\x6f\xca\x70\xca\x71\xca\x72\xca\x73\xca\x74\xca\x75\xca\x76\xca\x77\xca\x78\xca\x79\xca\x7a\xca\x7b\xca\x7c\xca\x7d\xca\x7e\xca\x7f\xca\x81\xca\x82\xca\x83\xca\x84\xca\x85\xca\x86\xca\x87\xca\x88\xca\x89\xca\x8a\xca\x8b\xca\x8c\xca\x8d\xca\x8e\xca\x8f\xca\x90\xca\x91\xca\x92\xca\x93\xca\x94\xca\x95\xca\x96\xca\x97\xca\x98\xca\x99\xca\x9a\xca\x9b\xca\x9c\xca\x9d\xca\x9e\xca\x9f\xca\xa0\xca\xa1\xca\xa2\xca\xa3\xca\xa4\xca\xa5\xca\xa6\xca\xa7\xca\xa8\xca\xa9\xca\xaa\xca\xab\xca\xac\xca\xad\xca\xae\xca\xaf\xca\xb0\xca\xb1\xca\xb2\xca\xb3\xca\xb4\xca\xb5\xca\xb6\xca\xb7\xca\xb8\xca\xb9\xca\xba\xca\xbb\xca\xbc\xca\xbd\xca\xbe\xca\xbf\xca\xc0\xca\xc1\xca\xc2\xca\xc3\xca\xc4\xca\xc5\xca\xc6\xca\xc7\xca\xc8\xca\xc9\xca\xca\xca\xcb\xca\xcc\xca\xcd\xca\xce\xca\xcf\xca\xd0\xca\xd1\xca\xd2\xca\xd3\xca\xd4\xca\xd5\xca\xd6\xca\xd7\xca\xd8\xca\xd9\xca\xda\xca\xdb\xca\xdc\xca\xdd\xca\xde\xca\xdf\xca\xe0\xca\xe1", /* e680 */ "\xca\xe2\xca\xe3\xca\xe4\xca\xe5\xca\xe6\xca\xe7\xca\xe8\xca\xe9\xca\xea\xca\xeb\xca\xec\xca\xed\xca\xee\xca\xef\xca\xf0\xca\xf1\xca\xf2\xca\xf3\xca\xf4\xca\xf5\xca\xf6\xca\xf7\xca\xf8\xca\xf9\xca\xfa\xca\xfb\xca\xfc\xca\xfd\xcb\x41\xcb\x42\xcb\x43\xcb\x44\xcb\x45\xcb\x46\xcb\x47\xcb\x48\xcb\x49\xcb\x4a\xcb\x4b\xcb\x4c\xcb\x4d\xcb\x4e\xcb\x4f\xcb\x50\xcb\x51\xcb\x52\xcb\x53\xcb\x54\xcb\x55\xcb\x56\xcb\x57\xcb\x58\xcb\x59\xcb\x5a\xcb\x5b\xcb\x5c\xcb\x5d\xcb\x5e\xcb\x5f\xcb\x60\xcb\x61\xcb\x62\xcb\x63\xcb\x64\xcb\x65\xcb\x66\xcb\x67\xcb\x68\xcb\x69\xcb\x6a\xcb\x6b\xcb\x6c\xcb\x6d\xcb\x6e\xcb\x6f\xcb\x70\xcb\x71\xcb\x72\xcb\x73\xcb\x74\xcb\x75\xcb\x76\xcb\x77\xcb\x78\xcb\x79\xcb\x7a\xcb\x7b\xcb\x7c\xcb\x7d\xcb\x7e\xcb\x7f\xcb\x81\xcb\x82\xcb\x83\xcb\x84\xcb\x85\xcb\x86\xcb\x87\xcb\x88\xcb\x89\xcb\x8a\xcb\x8b\xcb\x8c\xcb\x8d\xcb\x8e\xcb\x8f\xcb\x90\xcb\x91\xcb\x92\xcb\x93\xcb\x94\xcb\x95\xcb\x96\xcb\x97\xcb\x98\xcb\x99\xcb\x9a\xcb\x9b\xcb\x9c\xcb\x9d\xcb\x9e\xcb\x9f\xcb\xa0\xcb\xa1\xcb\xa2\xcb\xa3\xcb\xa4\xcb\xa5", /* e700 */ "\xcb\xa6\xcb\xa7\xcb\xa8\xcb\xa9\xcb\xaa\xcb\xab\xcb\xac\xcb\xad\xcb\xae\xcb\xaf\xcb\xb0\xcb\xb1\xcb\xb2\xcb\xb3\xcb\xb4\xcb\xb5\xcb\xb6\xcb\xb7\xcb\xb8\xcb\xb9\xcb\xba\xcb\xbb\xcb\xbc\xcb\xbd\xcb\xbe\xcb\xbf\xcb\xc0\xcb\xc1\xcb\xc2\xcb\xc3\xcb\xc4\xcb\xc5\xcb\xc6\xcb\xc7\xcb\xc8\xcb\xc9\xcb\xca\xcb\xcb\xcb\xcc\xcb\xcd\xcb\xce\xcb\xcf\xcb\xd0\xcb\xd1\xcb\xd2\xcb\xd3\xcb\xd4\xcb\xd5\xcb\xd6\xcb\xd7\xcb\xd8\xcb\xd9\xcb\xda\xcb\xdb\xcb\xdc\xcb\xdd\xcb\xde\xcb\xdf\xcb\xe0\xcb\xe1\xcb\xe2\xcb\xe3\xcb\xe4\xcb\xe5\xcb\xe6\xcb\xe7\xcb\xe8\xcb\xe9\xcb\xea\xcb\xeb\xcb\xec\xcb\xed\xcb\xee\xcb\xef\xcb\xf0\xcb\xf1\xcb\xf2\xcb\xf3\xcb\xf4\xcb\xf5\xcb\xf6\xcb\xf7\xcb\xf8\xcb\xf9\xcb\xfa\xcb\xfb\xcb\xfc\xcb\xfd\xcc\x41\xcc\x42\xcc\x43\xcc\x44\xcc\x45\xcc\x46\xcc\x47\xcc\x48\xcc\x49\xcc\x4a\xcc\x4b\xcc\x4c\xcc\x4d\xcc\x4e\xcc\x4f\xcc\x50\xcc\x51\xcc\x52\xcc\x53\xcc\x54\xcc\x55\xcc\x56\xcc\x57\xcc\x58\xcc\x59\xcc\x5a\xcc\x5b\xcc\x5c\xcc\x5d\xcc\x5e\xcc\x5f\xcc\x60\xcc\x61\xcc\x62\xcc\x63\xcc\x64\xcc\x65\xcc\x66\xcc\x67\xcc\x68", /* e780 */ "\xcc\x69\xcc\x6a\xcc\x6b\xcc\x6c\xcc\x6d\xcc\x6e\xcc\x6f\xcc\x70\xcc\x71\xcc\x72\xcc\x73\xcc\x74\xcc\x75\xcc\x76\xcc\x77\xcc\x78\xcc\x79\xcc\x7a\xcc\x7b\xcc\x7c\xcc\x7d\xcc\x7e\xcc\x7f\xcc\x81\xcc\x82\xcc\x83\xcc\x84\xcc\x85\xcc\x86\xcc\x87\xcc\x88\xcc\x89\xcc\x8a\xcc\x8b\xcc\x8c\xcc\x8d\xcc\x8e\xcc\x8f\xcc\x90\xcc\x91\xcc\x92\xcc\x93\xcc\x94\xcc\x95\xcc\x96\xcc\x97\xcc\x98\xcc\x99\xcc\x9a\xcc\x9b\xcc\x9c\xcc\x9d\xcc\x9e\xcc\x9f\xcc\xa0\xcc\xa1\xcc\xa2\xcc\xa3\xcc\xa4\xcc\xa5\xcc\xa6\xcc\xa7\xcc\xa8\xcc\xa9\xcc\xaa\xcc\xab\xcc\xac\xcc\xad\xcc\xae\xcc\xaf\xcc\xb0\xcc\xb1\xcc\xb2\xcc\xb3\xcc\xb4\xcc\xb5\xcc\xb6\xcc\xb7\xcc\xb8\xcc\xb9\xcc\xba\xcc\xbb\xcc\xbc\xcc\xbd\xcc\xbe\xcc\xbf\xcc\xc0\xcc\xc1\xcc\xc2\xcc\xc3\xcc\xc4\xcc\xc5\xcc\xc6\xcc\xc7\xcc\xc8\xcc\xc9\xcc\xca\xcc\xcb\xcc\xcc\xcc\xcd\xcc\xce\xcc\xcf\xcc\xd0\xcc\xd1\xcc\xd2\xcc\xd3\xcc\xd4\xcc\xd5\xcc\xd6\xcc\xd7\xcc\xd8\xcc\xd9\xcc\xda\xcc\xdb\xcc\xdc\xcc\xdd\xcc\xde\xcc\xdf\xcc\xe0\xcc\xe1\xcc\xe2\xcc\xe3\xcc\xe4\xcc\xe5\xcc\xe6\xcc\xe7\xcc\xe8\xcc\xe9", /* e800 */ "\xcc\xea\xcc\xeb\xcc\xec\xcc\xed\xcc\xee\xcc\xef\xcc\xf0\xcc\xf1\xcc\xf2\xcc\xf3\xcc\xf4\xcc\xf5\xcc\xf6\xcc\xf7\xcc\xf8\xcc\xf9\xcc\xfa\xcc\xfb\xcc\xfc\xcc\xfd\xcd\x41\xcd\x42\xcd\x43\xcd\x44\xcd\x45\xcd\x46\xcd\x47\xcd\x48\xcd\x49\xcd\x4a\xcd\x4b\xcd\x4c\xcd\x4d\xcd\x4e\xcd\x4f\xcd\x50\xcd\x51\xcd\x52\xcd\x53\xcd\x54\xcd\x55\xcd\x56\xcd\x57\xcd\x58\xcd\x59\xcd\x5a\xcd\x5b\xcd\x5c\xcd\x5d\xcd\x5e\xcd\x5f\xcd\x60\xcd\x61\xcd\x62\xcd\x63\xcd\x64\xcd\x65\xcd\x66\xcd\x67\xcd\x68\xcd\x69\xcd\x6a\xcd\x6b\xcd\x6c\xcd\x6d\xcd\x6e\xcd\x6f\xcd\x70\xcd\x71\xcd\x72\xcd\x73\xcd\x74\xcd\x75\xcd\x76\xcd\x77\xcd\x78\xcd\x79\xcd\x7a\xcd\x7b\xcd\x7c\xcd\x7d\xcd\x7e\xcd\x7f\xcd\x81\xcd\x82\xcd\x83\xcd\x84\xcd\x85\xcd\x86\xcd\x87\xcd\x88\xcd\x89\xcd\x8a\xcd\x8b\xcd\x8c\xcd\x8d\xcd\x8e\xcd\x8f\xcd\x90\xcd\x91\xcd\x92\xcd\x93\xcd\x94\xcd\x95\xcd\x96\xcd\x97\xcd\x98\xcd\x99\xcd\x9a\xcd\x9b\xcd\x9c\xcd\x9d\xcd\x9e\xcd\x9f\xcd\xa0\xcd\xa1\xcd\xa2\xcd\xa3\xcd\xa4\xcd\xa5\xcd\xa6\xcd\xa7\xcd\xa8\xcd\xa9\xcd\xaa\xcd\xab\xcd\xac\xcd\xad", /* e880 */ "\xcd\xae\xcd\xaf\xcd\xb0\xcd\xb1\xcd\xb2\xcd\xb3\xcd\xb4\xcd\xb5\xcd\xb6\xcd\xb7\xcd\xb8\xcd\xb9\xcd\xba\xcd\xbb\xcd\xbc\xcd\xbd\xcd\xbe\xcd\xbf\xcd\xc0\xcd\xc1\xcd\xc2\xcd\xc3\xcd\xc4\xcd\xc5\xcd\xc6\xcd\xc7\xcd\xc8\xcd\xc9\xcd\xca\xcd\xcb\xcd\xcc\xcd\xcd\xcd\xce\xcd\xcf\xcd\xd0\xcd\xd1\xcd\xd2\xcd\xd3\xcd\xd4\xcd\xd5\xcd\xd6\xcd\xd7\xcd\xd8\xcd\xd9\xcd\xda\xcd\xdb\xcd\xdc\xcd\xdd\xcd\xde\xcd\xdf\xcd\xe0\xcd\xe1\xcd\xe2\xcd\xe3\xcd\xe4\xcd\xe5\xcd\xe6\xcd\xe7\xcd\xe8\xcd\xe9\xcd\xea\xcd\xeb\xcd\xec\xcd\xed\xcd\xee\xcd\xef\xcd\xf0\xcd\xf1\xcd\xf2\xcd\xf3\xcd\xf4\xcd\xf5\xcd\xf6\xcd\xf7\xcd\xf8\xcd\xf9\xcd\xfa\xcd\xfb\xcd\xfc\xcd\xfd\xce\x41\xce\x42\xce\x43\xce\x44\xce\x45\xce\x46\xce\x47\xce\x48\xce\x49\xce\x4a\xce\x4b\xce\x4c\xce\x4d\xce\x4e\xce\x4f\xce\x50\xce\x51\xce\x52\xce\x53\xce\x54\xce\x55\xce\x56\xce\x57\xce\x58\xce\x59\xce\x5a\xce\x5b\xce\x5c\xce\x5d\xce\x5e\xce\x5f\xce\x60\xce\x61\xce\x62\xce\x63\xce\x64\xce\x65\xce\x66\xce\x67\xce\x68\xce\x69\xce\x6a\xce\x6b\xce\x6c\xce\x6d\xce\x6e\xce\x6f\xce\x70", /* e900 */ "\xce\x71\xce\x72\xce\x73\xce\x74\xce\x75\xce\x76\xce\x77\xce\x78\xce\x79\xce\x7a\xce\x7b\xce\x7c\xce\x7d\xce\x7e\xce\x7f\xce\x81\xce\x82\xce\x83\xce\x84\xce\x85\xce\x86\xce\x87\xce\x88\xce\x89\xce\x8a\xce\x8b\xce\x8c\xce\x8d\xce\x8e\xce\x8f\xce\x90\xce\x91\xce\x92\xce\x93\xce\x94\xce\x95\xce\x96\xce\x97\xce\x98\xce\x99\xce\x9a\xce\x9b\xce\x9c\xce\x9d\xce\x9e\xce\x9f\xce\xa0\xce\xa1\xce\xa2\xce\xa3\xce\xa4\xce\xa5\xce\xa6\xce\xa7\xce\xa8\xce\xa9\xce\xaa\xce\xab\xce\xac\xce\xad\xce\xae\xce\xaf\xce\xb0\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xce\xb5\xce\xb6\xce\xb7\xce\xb8\xce\xb9\xce\xba\xce\xbb\xce\xbc\xce\xbd\xce\xbe\xce\xbf\xce\xc0\xce\xc1\xce\xc2\xce\xc3\xce\xc4\xce\xc5\xce\xc6\xce\xc7\xce\xc8\xce\xc9\xce\xca\xce\xcb\xce\xcc\xce\xcd\xce\xce\xce\xcf\xce\xd0\xce\xd1\xce\xd2\xce\xd3\xce\xd4\xce\xd5\xce\xd6\xce\xd7\xce\xd8\xce\xd9\xce\xda\xce\xdb\xce\xdc\xce\xdd\xce\xde\xce\xdf\xce\xe0\xce\xe1\xce\xe2\xce\xe3\xce\xe4\xce\xe5\xce\xe6\xce\xe7\xce\xe8\xce\xe9\xce\xea\xce\xeb\xce\xec\xce\xed\xce\xee\xce\xef\xce\xf0\xce\xf1", /* e980 */ "\xce\xf2\xce\xf3\xce\xf4\xce\xf5\xce\xf6\xce\xf7\xce\xf8\xce\xf9\xce\xfa\xce\xfb\xce\xfc\xce\xfd\xcf\x41\xcf\x42\xcf\x43\xcf\x44\xcf\x45\xcf\x46\xcf\x47\xcf\x48\xcf\x49\xcf\x4a\xcf\x4b\xcf\x4c\xcf\x4d\xcf\x4e\xcf\x4f\xcf\x50\xcf\x51\xcf\x52\xcf\x53\xcf\x54\xcf\x55\xcf\x56\xcf\x57\xcf\x58\xcf\x59\xcf\x5a\xcf\x5b\xcf\x5c\xcf\x5d\xcf\x5e\xcf\x5f\xcf\x60\xcf\x61\xcf\x62\xcf\x63\xcf\x64\xcf\x65\xcf\x66\xcf\x67\xcf\x68\xcf\x69\xcf\x6a\xcf\x6b\xcf\x6c\xcf\x6d\xcf\x6e\xcf\x6f\xcf\x70\xcf\x71\xcf\x72\xcf\x73\xcf\x74\xcf\x75\xcf\x76\xcf\x77\xcf\x78\xcf\x79\xcf\x7a\xcf\x7b\xcf\x7c\xcf\x7d\xcf\x7e\xcf\x7f\xcf\x81\xcf\x82\xcf\x83\xcf\x84\xcf\x85\xcf\x86\xcf\x87\xcf\x88\xcf\x89\xcf\x8a\xcf\x8b\xcf\x8c\xcf\x8d\xcf\x8e\xcf\x8f\xcf\x90\xcf\x91\xcf\x92\xcf\x93\xcf\x94\xcf\x95\xcf\x96\xcf\x97\xcf\x98\xcf\x99\xcf\x9a\xcf\x9b\xcf\x9c\xcf\x9d\xcf\x9e\xcf\x9f\xcf\xa0\xcf\xa1\xcf\xa2\xcf\xa3\xcf\xa4\xcf\xa5\xcf\xa6\xcf\xa7\xcf\xa8\xcf\xa9\xcf\xaa\xcf\xab\xcf\xac\xcf\xad\xcf\xae\xcf\xaf\xcf\xb0\xcf\xb1\xcf\xb2\xcf\xb3\xcf\xb4\xcf\xb5", /* ea00 */ "\xcf\xb6\xcf\xb7\xcf\xb8\xcf\xb9\xcf\xba\xcf\xbb\xcf\xbc\xcf\xbd\xcf\xbe\xcf\xbf\xcf\xc0\xcf\xc1\xcf\xc2\xcf\xc3\xcf\xc4\xcf\xc5\xcf\xc6\xcf\xc7\xcf\xc8\xcf\xc9\xcf\xca\xcf\xcb\xcf\xcc\xcf\xcd\xcf\xce\xcf\xcf\xcf\xd0\xcf\xd1\xcf\xd2\xcf\xd3\xcf\xd4\xcf\xd5\xcf\xd6\xcf\xd7\xcf\xd8\xcf\xd9\xcf\xda\xcf\xdb\xcf\xdc\xcf\xdd\xcf\xde\xcf\xdf\xcf\xe0\xcf\xe1\xcf\xe2\xcf\xe3\xcf\xe4\xcf\xe5\xcf\xe6\xcf\xe7\xcf\xe8\xcf\xe9\xcf\xea\xcf\xeb\xcf\xec\xcf\xed\xcf\xee\xcf\xef\xcf\xf0\xcf\xf1\xcf\xf2\xcf\xf3\xcf\xf4\xcf\xf5\xcf\xf6\xcf\xf7\xcf\xf8\xcf\xf9\xcf\xfa\xcf\xfb\xcf\xfc\xcf\xfd\xd0\x41\xd0\x42\xd0\x43\xd0\x44\xd0\x45\xd0\x46\xd0\x47\xd0\x48\xd0\x49\xd0\x4a\xd0\x4b\xd0\x4c\xd0\x4d\xd0\x4e\xd0\x4f\xd0\x50\xd0\x51\xd0\x52\xd0\x53\xd0\x54\xd0\x55\xd0\x56\xd0\x57\xd0\x58\xd0\x59\xd0\x5a\xd0\x5b\xd0\x5c\xd0\x5d\xd0\x5e\xd0\x5f\xd0\x60\xd0\x61\xd0\x62\xd0\x63\xd0\x64\xd0\x65\xd0\x66\xd0\x67\xd0\x68\xd0\x69\xd0\x6a\xd0\x6b\xd0\x6c\xd0\x6d\xd0\x6e\xd0\x6f\xd0\x70\xd0\x71\xd0\x72\xd0\x73\xd0\x74\xd0\x75\xd0\x76\xd0\x77\xd0\x78", /* ea80 */ "\xd0\x79\xd0\x7a\xd0\x7b\xd0\x7c\xd0\x7d\xd0\x7e\xd0\x7f\xd0\x81\xd0\x82\xd0\x83\xd0\x84\xd0\x85\xd0\x86\xd0\x87\xd0\x88\xd0\x89\xd0\x8a\xd0\x8b\xd0\x8c\xd0\x8d\xd0\x8e\xd0\x8f\xd0\x90\xd0\x91\xd0\x92\xd0\x93\xd0\x94\xd0\x95\xd0\x96\xd0\x97\xd0\x98\xd0\x99\xd0\x9a\xd0\x9b\xd0\x9c\xd0\x9d\xd0\x9e\xd0\x9f\xd0\xa0\xd0\xa1\xd0\xa2\xd0\xa3\xd0\xa4\xd0\xa5\xd0\xa6\xd0\xa7\xd0\xa8\xd0\xa9\xd0\xaa\xd0\xab\xd0\xac\xd0\xad\xd0\xae\xd0\xaf\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5\xd0\xb6\xd0\xb7\xd0\xb8\xd0\xb9\xd0\xba\xd0\xbb\xd0\xbc\xd0\xbd\xd0\xbe\xd0\xbf\xd0\xc0\xd0\xc1\xd0\xc2\xd0\xc3\xd0\xc4\xd0\xc5\xd0\xc6\xd0\xc7\xd0\xc8\xd0\xc9\xd0\xca\xd0\xcb\xd0\xcc\xd0\xcd\xd0\xce\xd0\xcf\xd0\xd0\xd0\xd1\xd0\xd2\xd0\xd3\xd0\xd4\xd0\xd5\xd0\xd6\xd0\xd7\xd0\xd8\xd0\xd9\xd0\xda\xd0\xdb\xd0\xdc\xd0\xdd\xd0\xde\xd0\xdf\xd0\xe0\xd0\xe1\xd0\xe2\xd0\xe3\xd0\xe4\xd0\xe5\xd0\xe6\xd0\xe7\xd0\xe8\xd0\xe9\xd0\xea\xd0\xeb\xd0\xec\xd0\xed\xd0\xee\xd0\xef\xd0\xf0\xd0\xf1\xd0\xf2\xd0\xf3\xd0\xf4\xd0\xf5\xd0\xf6\xd0\xf7\xd0\xf8\xd0\xf9", /* eb00 */ "\xd0\xfa\xd0\xfb\xd0\xfc\xd0\xfd\xd1\x41\xd1\x42\xd1\x43\xd1\x44\xd1\x45\xd1\x46\xd1\x47\xd1\x48\xd1\x49\xd1\x4a\xd1\x4b\xd1\x4c\xd1\x4d\xd1\x4e\xd1\x4f\xd1\x50\xd1\x51\xd1\x52\xd1\x53\xd1\x54\xd1\x55\xd1\x56\xd1\x57\xd1\x58\xd1\x59\xd1\x5a\xd1\x5b\xd1\x5c\xd1\x5d\xd1\x5e\xd1\x5f\xd1\x60\xd1\x61\xd1\x62\xd1\x63\xd1\x64\xd1\x65\xd1\x66\xd1\x67\xd1\x68\xd1\x69\xd1\x6a\xd1\x6b\xd1\x6c\xd1\x6d\xd1\x6e\xd1\x6f\xd1\x70\xd1\x71\xd1\x72\xd1\x73\xd1\x74\xd1\x75\xd1\x76\xd1\x77\xd1\x78\xd1\x79\xd1\x7a\xd1\x7b\xd1\x7c\xd1\x7d\xd1\x7e\xd1\x7f\xd1\x81\xd1\x82\xd1\x83\xd1\x84\xd1\x85\xd1\x86\xd1\x87\xd1\x88\xd1\x89\xd1\x8a\xd1\x8b\xd1\x8c\xd1\x8d\xd1\x8e\xd1\x8f\xd1\x90\xd1\x91\xd1\x92\xd1\x93\xd1\x94\xd1\x95\xd1\x96\xd1\x97\xd1\x98\xd1\x99\xd1\x9a\xd1\x9b\xd1\x9c\xd1\x9d\xd1\x9e\xd1\x9f\xd1\xa0\xd1\xa1\xd1\xa2\xd1\xa3\xd1\xa4\xd1\xa5\xd1\xa6\xd1\xa7\xd1\xa8\xd1\xa9\xd1\xaa\xd1\xab\xd1\xac\xd1\xad\xd1\xae\xd1\xaf\xd1\xb0\xd1\xb1\xd1\xb2\xd1\xb3\xd1\xb4\xd1\xb5\xd1\xb6\xd1\xb7\xd1\xb8\xd1\xb9\xd1\xba\xd1\xbb\xd1\xbc\xd1\xbd", /* eb80 */ "\xd1\xbe\xd1\xbf\xd1\xc0\xd1\xc1\xd1\xc2\xd1\xc3\xd1\xc4\xd1\xc5\xd1\xc6\xd1\xc7\xd1\xc8\xd1\xc9\xd1\xca\xd1\xcb\xd1\xcc\xd1\xcd\xd1\xce\xd1\xcf\xd1\xd0\xd1\xd1\xd1\xd2\xd1\xd3\xd1\xd4\xd1\xd5\xd1\xd6\xd1\xd7\xd1\xd8\xd1\xd9\xd1\xda\xd1\xdb\xd1\xdc\xd1\xdd\xd1\xde\xd1\xdf\xd1\xe0\xd1\xe1\xd1\xe2\xd1\xe3\xd1\xe4\xd1\xe5\xd1\xe6\xd1\xe7\xd1\xe8\xd1\xe9\xd1\xea\xd1\xeb\xd1\xec\xd1\xed\xd1\xee\xd1\xef\xd1\xf0\xd1\xf1\xd1\xf2\xd1\xf3\xd1\xf4\xd1\xf5\xd1\xf6\xd1\xf7\xd1\xf8\xd1\xf9\xd1\xfa\xd1\xfb\xd1\xfc\xd1\xfd\xd2\x41\xd2\x42\xd2\x43\xd2\x44\xd2\x45\xd2\x46\xd2\x47\xd2\x48\xd2\x49\xd2\x4a\xd2\x4b\xd2\x4c\xd2\x4d\xd2\x4e\xd2\x4f\xd2\x50\xd2\x51\xd2\x52\xd2\x53\xd2\x54\xd2\x55\xd2\x56\xd2\x57\xd2\x58\xd2\x59\xd2\x5a\xd2\x5b\xd2\x5c\xd2\x5d\xd2\x5e\xd2\x5f\xd2\x60\xd2\x61\xd2\x62\xd2\x63\xd2\x64\xd2\x65\xd2\x66\xd2\x67\xd2\x68\xd2\x69\xd2\x6a\xd2\x6b\xd2\x6c\xd2\x6d\xd2\x6e\xd2\x6f\xd2\x70\xd2\x71\xd2\x72\xd2\x73\xd2\x74\xd2\x75\xd2\x76\xd2\x77\xd2\x78\xd2\x79\xd2\x7a\xd2\x7b\xd2\x7c\xd2\x7d\xd2\x7e\xd2\x7f\xd2\x81", /* ec00 */ "\xd2\x82\xd2\x83\xd2\x84\xd2\x85\xd2\x86\xd2\x87\xd2\x88\xd2\x89\xd2\x8a\xd2\x8b\xd2\x8c\xd2\x8d\xd2\x8e\xd2\x8f\xd2\x90\xd2\x91\xd2\x92\xd2\x93\xd2\x94\xd2\x95\xd2\x96\xd2\x97\xd2\x98\xd2\x99\xd2\x9a\xd2\x9b\xd2\x9c\xd2\x9d\xd2\x9e\xd2\x9f\xd2\xa0\xd2\xa1\xd2\xa2\xd2\xa3\xd2\xa4\xd2\xa5\xd2\xa6\xd2\xa7\xd2\xa8\xd2\xa9\xd2\xaa\xd2\xab\xd2\xac\xd2\xad\xd2\xae\xd2\xaf\xd2\xb0\xd2\xb1\xd2\xb2\xd2\xb3\xd2\xb4\xd2\xb5\xd2\xb6\xd2\xb7\xd2\xb8\xd2\xb9\xd2\xba\xd2\xbb\xd2\xbc\xd2\xbd\xd2\xbe\xd2\xbf\xd2\xc0\xd2\xc1\xd2\xc2\xd2\xc3\xd2\xc4\xd2\xc5\xd2\xc6\xd2\xc7\xd2\xc8\xd2\xc9\xd2\xca\xd2\xcb\xd2\xcc\xd2\xcd\xd2\xce\xd2\xcf\xd2\xd0\xd2\xd1\xd2\xd2\xd2\xd3\xd2\xd4\xd2\xd5\xd2\xd6\xd2\xd7\xd2\xd8\xd2\xd9\xd2\xda\xd2\xdb\xd2\xdc\xd2\xdd\xd2\xde\xd2\xdf\xd2\xe0\xd2\xe1\xd2\xe2\xd2\xe3\xd2\xe4\xd2\xe5\xd2\xe6\xd2\xe7\xd2\xe8\xd2\xe9\xd2\xea\xd2\xeb\xd2\xec\xd2\xed\xd2\xee\xd2\xef\xd2\xf0\xd2\xf1\xd2\xf2\xd2\xf3\xd2\xf4\xd2\xf5\xd2\xf6\xd2\xf7\xd2\xf8\xd2\xf9\xd2\xfa\xd2\xfb\xd2\xfc\xd2\xfd\xd3\x41\xd3\x42\xd3\x43\xd3\x44", /* ec80 */ "\xd3\x45\xd3\x46\xd3\x47\xd3\x48\xd3\x49\xd3\x4a\xd3\x4b\xd3\x4c\xd3\x4d\xd3\x4e\xd3\x4f\xd3\x50\xd3\x51\xd3\x52\xd3\x53\xd3\x54\xd3\x55\xd3\x56\xd3\x57\xd3\x58\xd3\x59\xd3\x5a\xd3\x5b\xd3\x5c\xd3\x5d\xd3\x5e\xd3\x5f\xd3\x60\xd3\x61\xd3\x62\xd3\x63\xd3\x64\xd3\x65\xd3\x66\xd3\x67\xd3\x68\xd3\x69\xd3\x6a\xd3\x6b\xd3\x6c\xd3\x6d\xd3\x6e\xd3\x6f\xd3\x70\xd3\x71\xd3\x72\xd3\x73\xd3\x74\xd3\x75\xd3\x76\xd3\x77\xd3\x78\xd3\x79\xd3\x7a\xd3\x7b\xd3\x7c\xd3\x7d\xd3\x7e\xd3\x7f\xd3\x81\xd3\x82\xd3\x83\xd3\x84\xd3\x85\xd3\x86\xd3\x87\xd3\x88\xd3\x89\xd3\x8a\xd3\x8b\xd3\x8c\xd3\x8d\xd3\x8e\xd3\x8f\xd3\x90\xd3\x91\xd3\x92\xd3\x93\xd3\x94\xd3\x95\xd3\x96\xd3\x97\xd3\x98\xd3\x99\xd3\x9a\xd3\x9b\xd3\x9c\xd3\x9d\xd3\x9e\xd3\x9f\xd3\xa0\xd3\xa1\xd3\xa2\xd3\xa3\xd3\xa4\xd3\xa5\xd3\xa6\xd3\xa7\xd3\xa8\xd3\xa9\xd3\xaa\xd3\xab\xd3\xac\xd3\xad\xd3\xae\xd3\xaf\xd3\xb0\xd3\xb1\xd3\xb2\xd3\xb3\xd3\xb4\xd3\xb5\xd3\xb6\xd3\xb7\xd3\xb8\xd3\xb9\xd3\xba\xd3\xbb\xd3\xbc\xd3\xbd\xd3\xbe\xd3\xbf\xd3\xc0\xd3\xc1\xd3\xc2\xd3\xc3\xd3\xc4\xd3\xc5", /* ed00 */ "\xd3\xc6\xd3\xc7\xd3\xc8\xd3\xc9\xd3\xca\xd3\xcb\xd3\xcc\xd3\xcd\xd3\xce\xd3\xcf\xd3\xd0\xd3\xd1\xd3\xd2\xd3\xd3\xd3\xd4\xd3\xd5\xd3\xd6\xd3\xd7\xd3\xd8\xd3\xd9\xd3\xda\xd3\xdb\xd3\xdc\xd3\xdd\xd3\xde\xd3\xdf\xd3\xe0\xd3\xe1\xd3\xe2\xd3\xe3\xd3\xe4\xd3\xe5\xd3\xe6\xd3\xe7\xd3\xe8\xd3\xe9\xd3\xea\xd3\xeb\xd3\xec\xd3\xed\xd3\xee\xd3\xef\xd3\xf0\xd3\xf1\xd3\xf2\xd3\xf3\xd3\xf4\xd3\xf5\xd3\xf6\xd3\xf7\xd3\xf8\xd3\xf9\xd3\xfa\xd3\xfb\xd3\xfc\xd3\xfd\xd4\x41\xd4\x42\xd4\x43\xd4\x44\xd4\x45\xd4\x46\xd4\x47\xd4\x48\xd4\x49\xd4\x4a\xd4\x4b\xd4\x4c\xd4\x4d\xd4\x4e\xd4\x4f\xd4\x50\xd4\x51\xd4\x52\xd4\x53\xd4\x54\xd4\x55\xd4\x56\xd4\x57\xd4\x58\xd4\x59\xd4\x5a\xd4\x5b\xd4\x5c\xd4\x5d\xd4\x5e\xd4\x5f\xd4\x60\xd4\x61\xd4\x62\xd4\x63\xd4\x64\xd4\x65\xd4\x66\xd4\x67\xd4\x68\xd4\x69\xd4\x6a\xd4\x6b\xd4\x6c\xd4\x6d\xd4\x6e\xd4\x6f\xd4\x70\xd4\x71\xd4\x72\xd4\x73\xd4\x74\xd4\x75\xd4\x76\xd4\x77\xd4\x78\xd4\x79\xd4\x7a\xd4\x7b\xd4\x7c\xd4\x7d\xd4\x7e\xd4\x7f\xd4\x81\xd4\x82\xd4\x83\xd4\x84\xd4\x85\xd4\x86\xd4\x87\xd4\x88\xd4\x89", /* ed80 */ "\xd4\x8a\xd4\x8b\xd4\x8c\xd4\x8d\xd4\x8e\xd4\x8f\xd4\x90\xd4\x91\xd4\x92\xd4\x93\xd4\x94\xd4\x95\xd4\x96\xd4\x97\xd4\x98\xd4\x99\xd4\x9a\xd4\x9b\xd4\x9c\xd4\x9d\xd4\x9e\xd4\x9f\xd4\xa0\xd4\xa1\xd4\xa2\xd4\xa3\xd4\xa4\xd4\xa5\xd4\xa6\xd4\xa7\xd4\xa8\xd4\xa9\xd4\xaa\xd4\xab\xd4\xac\xd4\xad\xd4\xae\xd4\xaf\xd4\xb0\xd4\xb1\xd4\xb2\xd4\xb3\xd4\xb4\xd4\xb5\xd4\xb6\xd4\xb7\xd4\xb8\xd4\xb9\xd4\xba\xd4\xbb\xd4\xbc\xd4\xbd\xd4\xbe\xd4\xbf\xd4\xc0\xd4\xc1\xd4\xc2\xd4\xc3\xd4\xc4\xd4\xc5\xd4\xc6\xd4\xc7\xd4\xc8\xd4\xc9\xd4\xca\xd4\xcb\xd4\xcc\xd4\xcd\xd4\xce\xd4\xcf\xd4\xd0\xd4\xd1\xd4\xd2\xd4\xd3\xd4\xd4\xd4\xd5\xd4\xd6\xd4\xd7\xd4\xd8\xd4\xd9\xd4\xda\xd4\xdb\xd4\xdc\xd4\xdd\xd4\xde\xd4\xdf\xd4\xe0\xd4\xe1\xd4\xe2\xd4\xe3\xd4\xe4\xd4\xe5\xd4\xe6\xd4\xe7\xd4\xe8\xd4\xe9\xd4\xea\xd4\xeb\xd4\xec\xd4\xed\xd4\xee\xd4\xef\xd4\xf0\xd4\xf1\xd4\xf2\xd4\xf3\xd4\xf4\xd4\xf5\xd4\xf6\xd4\xf7\xd4\xf8\xd4\xf9\xd4\xfa\xd4\xfb\xd4\xfc\xd4\xfd\xd5\x41\xd5\x42\xd5\x43\xd5\x44\xd5\x45\xd5\x46\xd5\x47\xd5\x48\xd5\x49\xd5\x4a\xd5\x4b\xd5\x4c", /* ee00 */ "\xd5\x4d\xd5\x4e\xd5\x4f\xd5\x50\xd5\x51\xd5\x52\xd5\x53\xd5\x54\xd5\x55\xd5\x56\xd5\x57\xd5\x58\xd5\x59\xd5\x5a\xd5\x5b\xd5\x5c\xd5\x5d\xd5\x5e\xd5\x5f\xd5\x60\xd5\x61\xd5\x62\xd5\x63\xd5\x64\xd5\x65\xd5\x66\xd5\x67\xd5\x68\xd5\x69\xd5\x6a\xd5\x6b\xd5\x6c\xd5\x6d\xd5\x6e\xd5\x6f\xd5\x70\xd5\x71\xd5\x72\xd5\x73\xd5\x74\xd5\x75\xd5\x76\xd5\x77\xd5\x78\xd5\x79\xd5\x7a\xd5\x7b\xd5\x7c\xd5\x7d\xd5\x7e\xd5\x7f\xd5\x81\xd5\x82\xd5\x83\xd5\x84\xd5\x85\xd5\x86\xd5\x87\xd5\x88\xd5\x89\xd5\x8a\xd5\x8b\xd5\x8c\xd5\x8d\xd5\x8e\xd5\x8f\xd5\x90\xd5\x91\xd5\x92\xd5\x93\xd5\x94\xd5\x95\xd5\x96\xd5\x97\xd5\x98\xd5\x99\xd5\x9a\xd5\x9b\xd5\x9c\xd5\x9d\xd5\x9e\xd5\x9f\xd5\xa0\xd5\xa1\xd5\xa2\xd5\xa3\xd5\xa4\xd5\xa5\xd5\xa6\xd5\xa7\xd5\xa8\xd5\xa9\xd5\xaa\xd5\xab\xd5\xac\xd5\xad\xd5\xae\xd5\xaf\xd5\xb0\xd5\xb1\xd5\xb2\xd5\xb3\xd5\xb4\xd5\xb5\xd5\xb6\xd5\xb7\xd5\xb8\xd5\xb9\xd5\xba\xd5\xbb\xd5\xbc\xd5\xbd\xd5\xbe\xd5\xbf\xd5\xc0\xd5\xc1\xd5\xc2\xd5\xc3\xd5\xc4\xd5\xc5\xd5\xc6\xd5\xc7\xd5\xc8\xd5\xc9\xd5\xca\xd5\xcb\xd5\xcc\xd5\xcd", /* ee80 */ "\xd5\xce\xd5\xcf\xd5\xd0\xd5\xd1\xd5\xd2\xd5\xd3\xd5\xd4\xd5\xd5\xd5\xd6\xd5\xd7\xd5\xd8\xd5\xd9\xd5\xda\xd5\xdb\xd5\xdc\xd5\xdd\xd5\xde\xd5\xdf\xd5\xe0\xd5\xe1\xd5\xe2\xd5\xe3\xd5\xe4\xd5\xe5\xd5\xe6\xd5\xe7\xd5\xe8\xd5\xe9\xd5\xea\xd5\xeb\xd5\xec\xd5\xed\xd5\xee\xd5\xef\xd5\xf0\xd5\xf1\xd5\xf2\xd5\xf3\xd5\xf4\xd5\xf5\xd5\xf6\xd5\xf7\xd5\xf8\xd5\xf9\xd5\xfa\xd5\xfb\xd5\xfc\xd5\xfd\xd6\x41\xd6\x42\xd6\x43\xd6\x44\xd6\x45\xd6\x46\xd6\x47\xd6\x48\xd6\x49\xd6\x4a\xd6\x4b\xd6\x4c\xd6\x4d\xd6\x4e\xd6\x4f\xd6\x50\xd6\x51\xd6\x52\xd6\x53\xd6\x54\xd6\x55\xd6\x56\xd6\x57\xd6\x58\xd6\x59\xd6\x5a\xd6\x5b\xd6\x5c\xd6\x5d\xd6\x5e\xd6\x5f\xd6\x60\xd6\x61\xd6\x62\xd6\x63\xd6\x64\xd6\x65\xd6\x66\xd6\x67\xd6\x68\xd6\x69\xd6\x6a\xd6\x6b\xd6\x6c\xd6\x6d\xd6\x6e\xd6\x6f\xd6\x70\xd6\x71\xd6\x72\xd6\x73\xd6\x74\xd6\x75\xd6\x76\xd6\x77\xd6\x78\xd6\x79\xd6\x7a\xd6\x7b\xd6\x7c\xd6\x7d\xd6\x7e\xd6\x7f\xd6\x81\xd6\x82\xd6\x83\xd6\x84\xd6\x85\xd6\x86\xd6\x87\xd6\x88\xd6\x89\xd6\x8a\xd6\x8b\xd6\x8c\xd6\x8d\xd6\x8e\xd6\x8f\xd6\x90\xd6\x91", /* ef00 */ "\xd6\x92\xd6\x93\xd6\x94\xd6\x95\xd6\x96\xd6\x97\xd6\x98\xd6\x99\xd6\x9a\xd6\x9b\xd6\x9c\xd6\x9d\xd6\x9e\xd6\x9f\xd6\xa0\xd6\xa1\xd6\xa2\xd6\xa3\xd6\xa4\xd6\xa5\xd6\xa6\xd6\xa7\xd6\xa8\xd6\xa9\xd6\xaa\xd6\xab\xd6\xac\xd6\xad\xd6\xae\xd6\xaf\xd6\xb0\xd6\xb1\xd6\xb2\xd6\xb3\xd6\xb4\xd6\xb5\xd6\xb6\xd6\xb7\xd6\xb8\xd6\xb9\xd6\xba\xd6\xbb\xd6\xbc\xd6\xbd\xd6\xbe\xd6\xbf\xd6\xc0\xd6\xc1\xd6\xc2\xd6\xc3\xd6\xc4\xd6\xc5\xd6\xc6\xd6\xc7\xd6\xc8\xd6\xc9\xd6\xca\xd6\xcb\xd6\xcc\xd6\xcd\xd6\xce\xd6\xcf\xd6\xd0\xd6\xd1\xd6\xd2\xd6\xd3\xd6\xd4\xd6\xd5\xd6\xd6\xd6\xd7\xd6\xd8\xd6\xd9\xd6\xda\xd6\xdb\xd6\xdc\xd6\xdd\xd6\xde\xd6\xdf\xd6\xe0\xd6\xe1\xd6\xe2\xd6\xe3\xd6\xe4\xd6\xe5\xd6\xe6\xd6\xe7\xd6\xe8\xd6\xe9\xd6\xea\xd6\xeb\xd6\xec\xd6\xed\xd6\xee\xd6\xef\xd6\xf0\xd6\xf1\xd6\xf2\xd6\xf3\xd6\xf4\xd6\xf5\xd6\xf6\xd6\xf7\xd6\xf8\xd6\xf9\xd6\xfa\xd6\xfb\xd6\xfc\xd6\xfd\xd7\x41\xd7\x42\xd7\x43\xd7\x44\xd7\x45\xd7\x46\xd7\x47\xd7\x48\xd7\x49\xd7\x4a\xd7\x4b\xd7\x4c\xd7\x4d\xd7\x4e\xd7\x4f\xd7\x50\xd7\x51\xd7\x52\xd7\x53\xd7\x54", /* ef80 */ "\xd7\x55\xd7\x56\xd7\x57\xd7\x58\xd7\x59\xd7\x5a\xd7\x5b\xd7\x5c\xd7\x5d\xd7\x5e\xd7\x5f\xd7\x60\xd7\x61\xd7\x62\xd7\x63\xd7\x64\xd7\x65\xd7\x66\xd7\x67\xd7\x68\xd7\x69\xd7\x6a\xd7\x6b\xd7\x6c\xd7\x6d\xd7\x6e\xd7\x6f\xd7\x70\xd7\x71\xd7\x72\xd7\x73\xd7\x74\xd7\x75\xd7\x76\xd7\x77\xd7\x78\xd7\x79\xd7\x7a\xd7\x7b\xd7\x7c\xd7\x7d\xd7\x7e\xd7\x7f\xd7\x81\xd7\x82\xd7\x83\xd7\x84\xd7\x85\xd7\x86\xd7\x87\xd7\x88\xd7\x89\xd7\x8a\xd7\x8b\xd7\x8c\xd7\x8d\xd7\x8e\xd7\x8f\xd7\x90\xd7\x91\xd7\x92\xd7\x93\xd7\x94\xd7\x95\xd7\x96\xd7\x97\xd7\x98\xd7\x99\xd7\x9a\xd7\x9b\xd7\x9c\xd7\x9d\xd7\x9e\xd7\x9f\xd7\xa0\xd7\xa1\xd7\xa2\xd7\xa3\xd7\xa4\xd7\xa5\xd7\xa6\xd7\xa7\xd7\xa8\xd7\xa9\xd7\xaa\xd7\xab\xd7\xac\xd7\xad\xd7\xae\xd7\xaf\xd7\xb0\xd7\xb1\xd7\xb2\xd7\xb3\xd7\xb4\xd7\xb5\xd7\xb6\xd7\xb7\xd7\xb8\xd7\xb9\xd7\xba\xd7\xbb\xd7\xbc\xd7\xbd\xd7\xbe\xd7\xbf\xd7\xc0\xd7\xc1\xd7\xc2\xd7\xc3\xd7\xc4\xd7\xc5\xd7\xc6\xd7\xc7\xd7\xc8\xd7\xc9\xd7\xca\xd7\xcb\xd7\xcc\xd7\xcd\xd7\xce\xd7\xcf\xd7\xd0\xd7\xd1\xd7\xd2\xd7\xd3\xd7\xd4\xd7\xd5", /* f000 */ "\xd7\xd6\xd7\xd7\xd7\xd8\xd7\xd9\xd7\xda\xd7\xdb\xd7\xdc\xd7\xdd\xd7\xde\xd7\xdf\xd7\xe0\xd7\xe1\xd7\xe2\xd7\xe3\xd7\xe4\xd7\xe5\xd7\xe6\xd7\xe7\xd7\xe8\xd7\xe9\xd7\xea\xd7\xeb\xd7\xec\xd7\xed\xd7\xee\xd7\xef\xd7\xf0\xd7\xf1\xd7\xf2\xd7\xf3\xd7\xf4\xd7\xf5\xd7\xf6\xd7\xf7\xd7\xf8\xd7\xf9\xd7\xfa\xd7\xfb\xd7\xfc\xd7\xfd\xd8\x41\xd8\x42\xd8\x43\xd8\x44\xd8\x45\xd8\x46\xd8\x47\xd8\x48\xd8\x49\xd8\x4a\xd8\x4b\xd8\x4c\xd8\x4d\xd8\x4e\xd8\x4f\xd8\x50\xd8\x51\xd8\x52\xd8\x53\xd8\x54\xd8\x55\xd8\x56\xd8\x57\xd8\x58\xd8\x59\xd8\x5a\xd8\x5b\xd8\x5c\xd8\x5d\xd8\x5e\xd8\x5f\xd8\x60\xd8\x61\xd8\x62\xd8\x63\xd8\x64\xd8\x65\xd8\x66\xd8\x67\xd8\x68\xd8\x69\xd8\x6a\xd8\x6b\xd8\x6c\xd8\x6d\xd8\x6e\xd8\x6f\xd8\x70\xd8\x71\xd8\x72\xd8\x73\xd8\x74\xd8\x75\xd8\x76\xd8\x77\xd8\x78\xd8\x79\xd8\x7a\xd8\x7b\xd8\x7c\xd8\x7d\xd8\x7e\xd8\x7f\xd8\x81\xd8\x82\xd8\x83\xd8\x84\xd8\x85\xd8\x86\xd8\x87\xd8\x88\xd8\x89\xd8\x8a\xd8\x8b\xd8\x8c\xd8\x8d\xd8\x8e\xd8\x8f\xd8\x90\xd8\x91\xd8\x92\xd8\x93\xd8\x94\xd8\x95\xd8\x96\xd8\x97\xd8\x98\xd8\x99", /* f080 */ "\xd8\x9a\xd8\x9b\xd8\x9c\xd8\x9d\xd8\x9e\xd8\x9f\xd8\xa0\xd8\xa1\xd8\xa2\xd8\xa3\xd8\xa4\xd8\xa5\xd8\xa6\xd8\xa7\xd8\xa8\xd8\xa9\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae\xd8\xaf\xd8\xb0\xd8\xb1\xd8\xb2\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba\xd8\xbb\xd8\xbc\xd8\xbd\xd8\xbe\xd8\xbf\xd8\xc0\xd8\xc1\xd8\xc2\xd8\xc3\xd8\xc4\xd8\xc5\xd8\xc6\xd8\xc7\xd8\xc8\xd8\xc9\xd8\xca\xd8\xcb\xd8\xcc\xd8\xcd\xd8\xce\xd8\xcf\xd8\xd0\xd8\xd1\xd8\xd2\xd8\xd3\xd8\xd4\xd8\xd5\xd8\xd6\xd8\xd7\xd8\xd8\xd8\xd9\xd8\xda\xd8\xdb\xd8\xdc\xd8\xdd\xd8\xde\xd8\xdf\xd8\xe0\xd8\xe1\xd8\xe2\xd8\xe3\xd8\xe4\xd8\xe5\xd8\xe6\xd8\xe7\xd8\xe8\xd8\xe9\xd8\xea\xd8\xeb\xd8\xec\xd8\xed\xd8\xee\xd8\xef\xd8\xf0\xd8\xf1\xd8\xf2\xd8\xf3\xd8\xf4\xd8\xf5\xd8\xf6\xd8\xf7\xd8\xf8\xd8\xf9\xd8\xfa\xd8\xfb\xd8\xfc\xd8\xfd\xd9\x41\xd9\x42\xd9\x43\xd9\x44\xd9\x45\xd9\x46\xd9\x47\xd9\x48\xd9\x49\xd9\x4a\xd9\x4b\xd9\x4c\xd9\x4d\xd9\x4e\xd9\x4f\xd9\x50\xd9\x51\xd9\x52\xd9\x53\xd9\x54\xd9\x55\xd9\x56\xd9\x57\xd9\x58\xd9\x59\xd9\x5a\xd9\x5b\xd9\x5c", /* f100 */ "\xd9\x5d\xd9\x5e\xd9\x5f\xd9\x60\xd9\x61\xd9\x62\xd9\x63\xd9\x64\xd9\x65\xd9\x66\xd9\x67\xd9\x68\xd9\x69\xd9\x6a\xd9\x6b\xd9\x6c\xd9\x6d\xd9\x6e\xd9\x6f\xd9\x70\xd9\x71\xd9\x72\xd9\x73\xd9\x74\xd9\x75\xd9\x76\xd9\x77\xd9\x78\xd9\x79\xd9\x7a\xd9\x7b\xd9\x7c\xd9\x7d\xd9\x7e\xd9\x7f\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x88\xd9\x89\xd9\x8a\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f\xd9\x90\xd9\x91\xd9\x92\xd9\x93\xd9\x94\xd9\x95\xd9\x96\xd9\x97\xd9\x98\xd9\x99\xd9\x9a\xd9\x9b\xd9\x9c\xd9\x9d\xd9\x9e\xd9\x9f\xd9\xa0\xd9\xa1\xd9\xa2\xd9\xa3\xd9\xa4\xd9\xa5\xd9\xa6\xd9\xa7\xd9\xa8\xd9\xa9\xd9\xaa\xd9\xab\xd9\xac\xd9\xad\xd9\xae\xd9\xaf\xd9\xb0\xd9\xb1\xd9\xb2\xd9\xb3\xd9\xb4\xd9\xb5\xd9\xb6\xd9\xb7\xd9\xb8\xd9\xb9\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf\xd9\xc0\xd9\xc1\xd9\xc2\xd9\xc3\xd9\xc4\xd9\xc5\xd9\xc6\xd9\xc7\xd9\xc8\xd9\xc9\xd9\xca\xd9\xcb\xd9\xcc\xd9\xcd\xd9\xce\xd9\xcf\xd9\xd0\xd9\xd1\xd9\xd2\xd9\xd3\xd9\xd4\xd9\xd5\xd9\xd6\xd9\xd7\xd9\xd8\xd9\xd9\xd9\xda\xd9\xdb\xd9\xdc\xd9\xdd", /* f180 */ "\xd9\xde\xd9\xdf\xd9\xe0\xd9\xe1\xd9\xe2\xd9\xe3\xd9\xe4\xd9\xe5\xd9\xe6\xd9\xe7\xd9\xe8\xd9\xe9\xd9\xea\xd9\xeb\xd9\xec\xd9\xed\xd9\xee\xd9\xef\xd9\xf0\xd9\xf1\xd9\xf2\xd9\xf3\xd9\xf4\xd9\xf5\xd9\xf6\xd9\xf7\xd9\xf8\xd9\xf9\xd9\xfa\xd9\xfb\xd9\xfc\xd9\xfd\xda\x41\xda\x42\xda\x43\xda\x44\xda\x45\xda\x46\xda\x47\xda\x48\xda\x49\xda\x4a\xda\x4b\xda\x4c\xda\x4d\xda\x4e\xda\x4f\xda\x50\xda\x51\xda\x52\xda\x53\xda\x54\xda\x55\xda\x56\xda\x57\xda\x58\xda\x59\xda\x5a\xda\x5b\xda\x5c\xda\x5d\xda\x5e\xda\x5f\xda\x60\xda\x61\xda\x62\xda\x63\xda\x64\xda\x65\xda\x66\xda\x67\xda\x68\xda\x69\xda\x6a\xda\x6b\xda\x6c\xda\x6d\xda\x6e\xda\x6f\xda\x70\xda\x71\xda\x72\xda\x73\xda\x74\xda\x75\xda\x76\xda\x77\xda\x78\xda\x79\xda\x7a\xda\x7b\xda\x7c\xda\x7d\xda\x7e\xda\x7f\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87\xda\x88\xda\x89\xda\x8a\xda\x8b\xda\x8c\xda\x8d\xda\x8e\xda\x8f\xda\x90\xda\x91\xda\x92\xda\x93\xda\x94\xda\x95\xda\x96\xda\x97\xda\x98\xda\x99\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f\xda\xa0\xda\xa1", /* f200 */ "\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8\xda\xa9\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9\xda\xba\xda\xbb\xda\xbc\xda\xbd\xda\xbe\xda\xbf\xda\xc0\xda\xc1\xda\xc2\xda\xc3\xda\xc4\xda\xc5\xda\xc6\xda\xc7\xda\xc8\xda\xc9\xda\xca\xda\xcb\xda\xcc\xda\xcd\xda\xce\xda\xcf\xda\xd0\xda\xd1\xda\xd2\xda\xd3\xda\xd4\xda\xd5\xda\xd6\xda\xd7\xda\xd8\xda\xd9\xda\xda\xda\xdb\xda\xdc\xda\xdd\xda\xde\xda\xdf\xda\xe0\xda\xe1\xda\xe2\xda\xe3\xda\xe4\xda\xe5\xda\xe6\xda\xe7\xda\xe8\xda\xe9\xda\xea\xda\xeb\xda\xec\xda\xed\xda\xee\xda\xef\xda\xf0\xda\xf1\xda\xf2\xda\xf3\xda\xf4\xda\xf5\xda\xf6\xda\xf7\xda\xf8\xda\xf9\xda\xfa\xda\xfb\xda\xfc\xda\xfd\xdb\x41\xdb\x42\xdb\x43\xdb\x44\xdb\x45\xdb\x46\xdb\x47\xdb\x48\xdb\x49\xdb\x4a\xdb\x4b\xdb\x4c\xdb\x4d\xdb\x4e\xdb\x4f\xdb\x50\xdb\x51\xdb\x52\xdb\x53\xdb\x54\xdb\x55\xdb\x56\xdb\x57\xdb\x58\xdb\x59\xdb\x5a\xdb\x5b\xdb\x5c\xdb\x5d\xdb\x5e\xdb\x5f\xdb\x60\xdb\x61\xdb\x62\xdb\x63\xdb\x64", /* f280 */ "\xdb\x65\xdb\x66\xdb\x67\xdb\x68\xdb\x69\xdb\x6a\xdb\x6b\xdb\x6c\xdb\x6d\xdb\x6e\xdb\x6f\xdb\x70\xdb\x71\xdb\x72\xdb\x73\xdb\x74\xdb\x75\xdb\x76\xdb\x77\xdb\x78\xdb\x79\xdb\x7a\xdb\x7b\xdb\x7c\xdb\x7d\xdb\x7e\xdb\x7f\xdb\x81\xdb\x82\xdb\x83\xdb\x84\xdb\x85\xdb\x86\xdb\x87\xdb\x88\xdb\x89\xdb\x8a\xdb\x8b\xdb\x8c\xdb\x8d\xdb\x8e\xdb\x8f\xdb\x90\xdb\x91\xdb\x92\xdb\x93\xdb\x94\xdb\x95\xdb\x96\xdb\x97\xdb\x98\xdb\x99\xdb\x9a\xdb\x9b\xdb\x9c\xdb\x9d\xdb\x9e\xdb\x9f\xdb\xa0\xdb\xa1\xdb\xa2\xdb\xa3\xdb\xa4\xdb\xa5\xdb\xa6\xdb\xa7\xdb\xa8\xdb\xa9\xdb\xaa\xdb\xab\xdb\xac\xdb\xad\xdb\xae\xdb\xaf\xdb\xb0\xdb\xb1\xdb\xb2\xdb\xb3\xdb\xb4\xdb\xb5\xdb\xb6\xdb\xb7\xdb\xb8\xdb\xb9\xdb\xba\xdb\xbb\xdb\xbc\xdb\xbd\xdb\xbe\xdb\xbf\xdb\xc0\xdb\xc1\xdb\xc2\xdb\xc3\xdb\xc4\xdb\xc5\xdb\xc6\xdb\xc7\xdb\xc8\xdb\xc9\xdb\xca\xdb\xcb\xdb\xcc\xdb\xcd\xdb\xce\xdb\xcf\xdb\xd0\xdb\xd1\xdb\xd2\xdb\xd3\xdb\xd4\xdb\xd5\xdb\xd6\xdb\xd7\xdb\xd8\xdb\xd9\xdb\xda\xdb\xdb\xdb\xdc\xdb\xdd\xdb\xde\xdb\xdf\xdb\xe0\xdb\xe1\xdb\xe2\xdb\xe3\xdb\xe4\xdb\xe5", /* f300 */ "\xdb\xe6\xdb\xe7\xdb\xe8\xdb\xe9\xdb\xea\xdb\xeb\xdb\xec\xdb\xed\xdb\xee\xdb\xef\xdb\xf0\xdb\xf1\xdb\xf2\xdb\xf3\xdb\xf4\xdb\xf5\xdb\xf6\xdb\xf7\xdb\xf8\xdb\xf9\xdb\xfa\xdb\xfb\xdb\xfc\xdb\xfd\xdc\x41\xdc\x42\xdc\x43\xdc\x44\xdc\x45\xdc\x46\xdc\x47\xdc\x48\xdc\x49\xdc\x4a\xdc\x4b\xdc\x4c\xdc\x4d\xdc\x4e\xdc\x4f\xdc\x50\xdc\x51\xdc\x52\xdc\x53\xdc\x54\xdc\x55\xdc\x56\xdc\x57\xdc\x58\xdc\x59\xdc\x5a\xdc\x5b\xdc\x5c\xdc\x5d\xdc\x5e\xdc\x5f\xdc\x60\xdc\x61\xdc\x62\xdc\x63\xdc\x64\xdc\x65\xdc\x66\xdc\x67\xdc\x68\xdc\x69\xdc\x6a\xdc\x6b\xdc\x6c\xdc\x6d\xdc\x6e\xdc\x6f\xdc\x70\xdc\x71\xdc\x72\xdc\x73\xdc\x74\xdc\x75\xdc\x76\xdc\x77\xdc\x78\xdc\x79\xdc\x7a\xdc\x7b\xdc\x7c\xdc\x7d\xdc\x7e\xdc\x7f\xdc\x81\xdc\x82\xdc\x83\xdc\x84\xdc\x85\xdc\x86\xdc\x87\xdc\x88\xdc\x89\xdc\x8a\xdc\x8b\xdc\x8c\xdc\x8d\xdc\x8e\xdc\x8f\xdc\x90\xdc\x91\xdc\x92\xdc\x93\xdc\x94\xdc\x95\xdc\x96\xdc\x97\xdc\x98\xdc\x99\xdc\x9a\xdc\x9b\xdc\x9c\xdc\x9d\xdc\x9e\xdc\x9f\xdc\xa0\xdc\xa1\xdc\xa2\xdc\xa3\xdc\xa4\xdc\xa5\xdc\xa6\xdc\xa7\xdc\xa8\xdc\xa9", /* f380 */ "\xdc\xaa\xdc\xab\xdc\xac\xdc\xad\xdc\xae\xdc\xaf\xdc\xb0\xdc\xb1\xdc\xb2\xdc\xb3\xdc\xb4\xdc\xb5\xdc\xb6\xdc\xb7\xdc\xb8\xdc\xb9\xdc\xba\xdc\xbb\xdc\xbc\xdc\xbd\xdc\xbe\xdc\xbf\xdc\xc0\xdc\xc1\xdc\xc2\xdc\xc3\xdc\xc4\xdc\xc5\xdc\xc6\xdc\xc7\xdc\xc8\xdc\xc9\xdc\xca\xdc\xcb\xdc\xcc\xdc\xcd\xdc\xce\xdc\xcf\xdc\xd0\xdc\xd1\xdc\xd2\xdc\xd3\xdc\xd4\xdc\xd5\xdc\xd6\xdc\xd7\xdc\xd8\xdc\xd9\xdc\xda\xdc\xdb\xdc\xdc\xdc\xdd\xdc\xde\xdc\xdf\xdc\xe0\xdc\xe1\xdc\xe2\xdc\xe3\xdc\xe4\xdc\xe5\xdc\xe6\xdc\xe7\xdc\xe8\xdc\xe9\xdc\xea\xdc\xeb\xdc\xec\xdc\xed\xdc\xee\xdc\xef\xdc\xf0\xdc\xf1\xdc\xf2\xdc\xf3\xdc\xf4\xdc\xf5\xdc\xf6\xdc\xf7\xdc\xf8\xdc\xf9\xdc\xfa\xdc\xfb\xdc\xfc\xdc\xfd\xdd\x41\xdd\x42\xdd\x43\xdd\x44\xdd\x45\xdd\x46\xdd\x47\xdd\x48\xdd\x49\xdd\x4a\xdd\x4b\xdd\x4c\xdd\x4d\xdd\x4e\xdd\x4f\xdd\x50\xdd\x51\xdd\x52\xdd\x53\xdd\x54\xdd\x55\xdd\x56\xdd\x57\xdd\x58\xdd\x59\xdd\x5a\xdd\x5b\xdd\x5c\xdd\x5d\xdd\x5e\xdd\x5f\xdd\x60\xdd\x61\xdd\x62\xdd\x63\xdd\x64\xdd\x65\xdd\x66\xdd\x67\xdd\x68\xdd\x69\xdd\x6a\xdd\x6b\xdd\x6c", /* f400 */ "\xdd\x6d\xdd\x6e\xdd\x6f\xdd\x70\xdd\x71\xdd\x72\xdd\x73\xdd\x74\xdd\x75\xdd\x76\xdd\x77\xdd\x78\xdd\x79\xdd\x7a\xdd\x7b\xdd\x7c\xdd\x7d\xdd\x7e\xdd\x7f\xdd\x81\xdd\x82\xdd\x83\xdd\x84\xdd\x85\xdd\x86\xdd\x87\xdd\x88\xdd\x89\xdd\x8a\xdd\x8b\xdd\x8c\xdd\x8d\xdd\x8e\xdd\x8f\xdd\x90\xdd\x91\xdd\x92\xdd\x93\xdd\x94\xdd\x95\xdd\x96\xdd\x97\xdd\x98\xdd\x99\xdd\x9a\xdd\x9b\xdd\x9c\xdd\x9d\xdd\x9e\xdd\x9f\xdd\xa0\xdd\xa1\xdd\xa2\xdd\xa3\xdd\xa4\xdd\xa5\xdd\xa6\xdd\xa7\xdd\xa8\xdd\xa9\xdd\xaa\xdd\xab\xdd\xac\xdd\xad\xdd\xae\xdd\xaf\xdd\xb0\xdd\xb1\xdd\xb2\xdd\xb3\xdd\xb4\xdd\xb5\xdd\xb6\xdd\xb7\xdd\xb8\xdd\xb9\xdd\xba\xdd\xbb\xdd\xbc\xdd\xbd\xdd\xbe\xdd\xbf\xdd\xc0\xdd\xc1\xdd\xc2\xdd\xc3\xdd\xc4\xdd\xc5\xdd\xc6\xdd\xc7\xdd\xc8\xdd\xc9\xdd\xca\xdd\xcb\xdd\xcc\xdd\xcd\xdd\xce\xdd\xcf\xdd\xd0\xdd\xd1\xdd\xd2\xdd\xd3\xdd\xd4\xdd\xd5\xdd\xd6\xdd\xd7\xdd\xd8\xdd\xd9\xdd\xda\xdd\xdb\xdd\xdc\xdd\xdd\xdd\xde\xdd\xdf\xdd\xe0\xdd\xe1\xdd\xe2\xdd\xe3\xdd\xe4\xdd\xe5\xdd\xe6\xdd\xe7\xdd\xe8\xdd\xe9\xdd\xea\xdd\xeb\xdd\xec\xdd\xed", /* f480 */ "\xdd\xee\xdd\xef\xdd\xf0\xdd\xf1\xdd\xf2\xdd\xf3\xdd\xf4\xdd\xf5\xdd\xf6\xdd\xf7\xdd\xf8\xdd\xf9\xdd\xfa\xdd\xfb\xdd\xfc\xdd\xfd\xde\x41\xde\x42\xde\x43\xde\x44\xde\x45\xde\x46\xde\x47\xde\x48\xde\x49\xde\x4a\xde\x4b\xde\x4c\xde\x4d\xde\x4e\xde\x4f\xde\x50\xde\x51\xde\x52\xde\x53\xde\x54\xde\x55\xde\x56\xde\x57\xde\x58\xde\x59\xde\x5a\xde\x5b\xde\x5c\xde\x5d\xde\x5e\xde\x5f\xde\x60\xde\x61\xde\x62\xde\x63\xde\x64\xde\x65\xde\x66\xde\x67\xde\x68\xde\x69\xde\x6a\xde\x6b\xde\x6c\xde\x6d\xde\x6e\xde\x6f\xde\x70\xde\x71\xde\x72\xde\x73\xde\x74\xde\x75\xde\x76\xde\x77\xde\x78\xde\x79\xde\x7a\xde\x7b\xde\x7c\xde\x7d\xde\x7e\xde\x7f\xde\x81\xde\x82\xde\x83\xde\x84\xde\x85\xde\x86\xde\x87\xde\x88\xde\x89\xde\x8a\xde\x8b\xde\x8c\xde\x8d\xde\x8e\xde\x8f\xde\x90\xde\x91\xde\x92\xde\x93\xde\x94\xde\x95\xde\x96\xde\x97\xde\x98\xde\x99\xde\x9a\xde\x9b\xde\x9c\xde\x9d\xde\x9e\xde\x9f\xde\xa0\xde\xa1\xde\xa2\xde\xa3\xde\xa4\xde\xa5\xde\xa6\xde\xa7\xde\xa8\xde\xa9\xde\xaa\xde\xab\xde\xac\xde\xad\xde\xae\xde\xaf\xde\xb0\xde\xb1", /* f500 */ "\xde\xb2\xde\xb3\xde\xb4\xde\xb5\xde\xb6\xde\xb7\xde\xb8\xde\xb9\xde\xba\xde\xbb\xde\xbc\xde\xbd\xde\xbe\xde\xbf\xde\xc0\xde\xc1\xde\xc2\xde\xc3\xde\xc4\xde\xc5\xde\xc6\xde\xc7\xde\xc8\xde\xc9\xde\xca\xde\xcb\xde\xcc\xde\xcd\xde\xce\xde\xcf\xde\xd0\xde\xd1\xde\xd2\xde\xd3\xde\xd4\xde\xd5\xde\xd6\xde\xd7\xde\xd8\xde\xd9\xde\xda\xde\xdb\xde\xdc\xde\xdd\xde\xde\xde\xdf\xde\xe0\xde\xe1\xde\xe2\xde\xe3\xde\xe4\xde\xe5\xde\xe6\xde\xe7\xde\xe8\xde\xe9\xde\xea\xde\xeb\xde\xec\xde\xed\xde\xee\xde\xef\xde\xf0\xde\xf1\xde\xf2\xde\xf3\xde\xf4\xde\xf5\xde\xf6\xde\xf7\xde\xf8\xde\xf9\xde\xfa\xde\xfb\xde\xfc\xde\xfd\xdf\x41\xdf\x42\xdf\x43\xdf\x44\xdf\x45\xdf\x46\xdf\x47\xdf\x48\xdf\x49\xdf\x4a\xdf\x4b\xdf\x4c\xdf\x4d\xdf\x4e\xdf\x4f\xdf\x50\xdf\x51\xdf\x52\xdf\x53\xdf\x54\xdf\x55\xdf\x56\xdf\x57\xdf\x58\xdf\x59\xdf\x5a\xdf\x5b\xdf\x5c\xdf\x5d\xdf\x5e\xdf\x5f\xdf\x60\xdf\x61\xdf\x62\xdf\x63\xdf\x64\xdf\x65\xdf\x66\xdf\x67\xdf\x68\xdf\x69\xdf\x6a\xdf\x6b\xdf\x6c\xdf\x6d\xdf\x6e\xdf\x6f\xdf\x70\xdf\x71\xdf\x72\xdf\x73\xdf\x74", /* f580 */ "\xdf\x75\xdf\x76\xdf\x77\xdf\x78\xdf\x79\xdf\x7a\xdf\x7b\xdf\x7c\xdf\x7d\xdf\x7e\xdf\x7f\xdf\x81\xdf\x82\xdf\x83\xdf\x84\xdf\x85\xdf\x86\xdf\x87\xdf\x88\xdf\x89\xdf\x8a\xdf\x8b\xdf\x8c\xdf\x8d\xdf\x8e\xdf\x8f\xdf\x90\xdf\x91\xdf\x92\xdf\x93\xdf\x94\xdf\x95\xdf\x96\xdf\x97\xdf\x98\xdf\x99\xdf\x9a\xdf\x9b\xdf\x9c\xdf\x9d\xdf\x9e\xdf\x9f\xdf\xa0\xdf\xa1\xdf\xa2\xdf\xa3\xdf\xa4\xdf\xa5\xdf\xa6\xdf\xa7\xdf\xa8\xdf\xa9\xdf\xaa\xdf\xab\xdf\xac\xdf\xad\xdf\xae\xdf\xaf\xdf\xb0\xdf\xb1\xdf\xb2\xdf\xb3\xdf\xb4\xdf\xb5\xdf\xb6\xdf\xb7\xdf\xb8\xdf\xb9\xdf\xba\xdf\xbb\xdf\xbc\xdf\xbd\xdf\xbe\xdf\xbf\xdf\xc0\xdf\xc1\xdf\xc2\xdf\xc3\xdf\xc4\xdf\xc5\xdf\xc6\xdf\xc7\xdf\xc8\xdf\xc9\xdf\xca\xdf\xcb\xdf\xcc\xdf\xcd\xdf\xce\xdf\xcf\xdf\xd0\xdf\xd1\xdf\xd2\xdf\xd3\xdf\xd4\xdf\xd5\xdf\xd6\xdf\xd7\xdf\xd8\xdf\xd9\xdf\xda\xdf\xdb\xdf\xdc\xdf\xdd\xdf\xde\xdf\xdf\xdf\xe0\xdf\xe1\xdf\xe2\xdf\xe3\xdf\xe4\xdf\xe5\xdf\xe6\xdf\xe7\xdf\xe8\xdf\xe9\xdf\xea\xdf\xeb\xdf\xec\xdf\xed\xdf\xee\xdf\xef\xdf\xf0\xdf\xf1\xdf\xf2\xdf\xf3\xdf\xf4\xdf\xf5", /* f600 */ "\xdf\xf6\xdf\xf7\xdf\xf8\xdf\xf9\xdf\xfa\xdf\xfb\xdf\xfc\xdf\xfd\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9", /* f680 */ "\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc\xe0\xfd\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c", /* f700 */ "\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd", /* f780 */ "\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1", /* f800 */ "\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\x00\x00\x00\x00\x44\x5c\x46\xa8\x46\xa9\x46\xaa\x46\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4b\x7a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x41\x46\xa7\x47\x49\x46\xb6\x46\xbc\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xa4\x46\xa5\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xa0\x46\xa1\x46\xa2\x46\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x46\xbe\x46\xbf\x46\xc2\x46\xc3\x46\xc0\x46\xc1\x46\xbd\x47\x42\x47\x43\x47\x44\x00\x00\x47\x45\x47\x46\x47\x47\x47\x48\x47\x4a\x47\x4b\x47\x4c\x47\x4d\x47\x4e\x47\x4f\x47\x50\x47\x53\x47\x54\x46\xc4\x47\x55\x47\x56\x47\x57\x47\x58\x47\x59\x00\x00\x47\x5a\x47\x5b\x47\x5c\x47\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x46\xb8\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x00\x00\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x47\x51\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-937_P110-1999 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\x27\x3d\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x35\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x3e\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x20\x27\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x23\x12\x22\x02\x22\x07\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\x00\x00\x00\x00\x22\x6a\x22\x6b\x00\x00\x22\x3d\x22\x1d\x00\x00\x22\x2c\x22\x08\x22\x0b\x22\x86\x22\x87\x22\x82\x22\x83\x00\x00\x00\x00\x22\x27\x22\x28\x21\xd2\x21\xd4\x22\x00\x22\x03\x21\x2b\x20\x30\x26\x6f\x26\x6d\x26\x6a\x20\x20\x20\x21\x00\xb6\x25\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x01\x25\x03\x25\x0f\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x25\x13\x25\x1b\x25\x17\x25\x23\x25\x33\x25\x2b\x25\x3b\x25\x4b\x25\x20\x25\x2f\x25\x28\x25\x37\x25\x3f\x25\x1d\x25\x30\x25\x25\x25\x38\x25\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x14\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x20\x32\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x02\xba\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x66\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x67\x22\x35\x26\x40\x00\xd7\x00\xf7\x22\x25\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x00\xb4\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x21\x30\x22\x30\x23\x30\x24\x30\x25\x30\x26\x30\x27\x30\x28\x30\x29\x53\x41\x53\x44\x53\x45\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xca\x02\xc7\x02\xcb\x02\xd9\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ NULL, /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x81\x25\x82\x25\x83\x25\x84\x25\x85\x25\x86\x25\x87\x25\x88\x25\x8f\x25\x8e\x25\x8d\x25\x8c\x25\x8b\x25\x8a\x25\x89\x25\x3c\x25\x34\x25\x2c\x25\x24\x25\x1c\x25\x94\x25\x00\x25\x02\x25\x95\x25\x0c\x25\x10\x25\x14\x25\x18\x25\x6d\x25\x6e\x25\x70\x25\x6f", /* 4680 */ "\x00\x00\x25\x50\x25\x5e\x25\x6a\x25\x61\x25\xe2\x25\xe3\x25\xe5\x25\xe4\x25\x71\x25\x72\x25\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x41\xfe\x42\xfe\x43\xfe\x44\xfe\x3b\xfe\x3c\x00\x00\xfe\x31\xf8\x3f\xf8\x40\xf8\x41\xf8\x42\xfe\x35\xfe\x36\xfe\x37\xfe\x38\xfe\x39\xfe\x3a\xfe\x3d\xfe\x3e\xfe\x3f\xfe\x40\xfe\x33\x25\x74\xff\x0a\x30\x03\x32\xa3\x21\x05\xfe\x34\xfe\x4f\xfe\x49\xfe\x4a\xfe\x4d\xfe\x4e\xfe\x4b\xfe\x4c\xfe\x61\x22\x1a\x22\x52\x22\x61\x22\x29\x22\x2a\x22\xa5\x22\x20\x22\x1f\x22\xbf\x33\xd2\x33\xd1\x22\x2b\x22\x2e\x22\x95\x22\x99\x21\x96\x21\x97\x21\x99\x21\x98\x00\x00\x00\x00\x22\x15\x21\x09\x33\xd5\x33\x9c\x33\x9d\x33\x9e\x33\xce\x33\xa1\x33\x8e\x33\x8f\x33\xc4\x00\xb7\x00\x00\x00\x00\x00\x00\x30\x1d\x30\x1e\x00\x00\x00\x00\x00\x00\x21\xe7\x21\xb8\x21\xb9\x51\x59\x51\x5b\x51\x5e\x51\x5d\x51\x61\x51\x63\x55\xe7\x74\xe9\x7c\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x30\xfe\x50\xfe\x51\xfe\x52\xfe\x54\xfe\x55\xfe\x56\xfe\x57\xfe\x32\xfe\x58\xfe\x59\xfe\x5a\xfe\x5b\xfe\x5c\xfe\x5d\xfe\x5e\xff\xe3\x02\xcd\xfe\x5f\xfe\x60\xfe\x62\xfe\x63\xfe\x64\xfe\x65\xfe\x66\xfe\x68\xfe\x69\xfe\x6a\xfe\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4780 */ "\x00\x00\x24\x00\x24\x01\x24\x02\x24\x03\x24\x04\x24\x05\x24\x06\x24\x07\x24\x08\x24\x09\x24\x0a\x24\x0b\x24\x0c\x24\x0d\x24\x0e\x24\x0f\x24\x10\x24\x11\x24\x12\x24\x13\x24\x14\x24\x15\x24\x16\x24\x17\x24\x18\x24\x19\x24\x1a\x24\x1b\x24\x1c\x24\x1d\x24\x1e\x24\x1f\x24\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x28\x4e\x36\x4e\x3f\x4e\x59\x4e\x85\x4e\x8c\x4e\xa0\x4e\xba\x51\x3f\x51\x65\x51\x6b\x51\x82\x51\x96\x51\xab\x51\xe0\x51\xf5\x52\x00\x52\x9b\x52\xf9\x53\x15\x53\x1a\x53\x38\x53\x41\x53\x5c\x53\x69\x53\x82\x53\xb6\x53\xc8\x53\xe3\x56\xd7\x57\x1f\x58\xeb\x59\x0a\x59\x15\x59\x27\x59\x73\x5b\x50\x5b\x80\x5b\xf8\x5c\x0f\x5c\x22\x5c\x38\x5c\x6e\x5c\x71\x5d\xdb\x5d\xe5\x5d\xf1\x5d\xfe\x5e\x72\x5e\x7a\x5e\x7f\x5e\xf4\x5e\xfe\x5f\x0b\x5f\x13\x5f\x50\x5f\x61\x5f\x73\x5f\xc3\x62\x08\x62\x36\x62\x4b", /* 4880 */ "\x00\x00\x65\x2f\x65\x34\x65\x87\x65\x97\x65\xa4\x65\xb9\x65\xe0\x65\xe5\x66\xf0\x67\x08\x67\x28\x6b\x20\x6b\x62\x6b\x79\x6b\xb3\x6b\xcb\x6b\xd4\x6b\xdb\x6c\x0f\x6c\x14\x6c\x34\x70\x6b\x72\x2a\x72\x36\x72\x3b\x72\x3f\x72\x47\x72\x59\x72\x5b\x72\xac\x73\x84\x73\x89\x74\xdc\x74\xe6\x75\x18\x75\x1f\x75\x28\x75\x30\x75\x8b\x75\x92\x76\x76\x76\x7d\x76\xae\x76\xbf\x76\xee\x77\xdb\x77\xe2\x77\xf3\x79\x3a\x79\xb8\x79\xbe\x7a\x74\x7a\xcb\x7a\xf9\x7c\x73\x7c\xf8\x7f\x36\x7f\x51\x7f\x8a\x7f\xbd\x80\x01\x80\x0c\x80\x12\x80\x33\x80\x7f\x80\x89\x81\xe3\x81\xea\x81\xf3\x81\xfc\x82\x0c\x82\x1b\x82\x1f\x82\x6e\x82\x72\x82\x78\x86\x4d\x86\x6b\x88\x40\x88\x4c\x88\x63\x89\x7e\x89\x8b\x89\xd2\x8a\x00\x8c\x37\x8c\x46\x8c\x55\x8c\x78\x8c\x9d\x8d\x64\x8d\x70\x8d\xb3\x8e\xab\x8e\xca\x8f\x9b\x8f\xb0\x8f\xb5\x90\x91\x91\x49\x91\xc6\x91\xcc\x91\xd1\x95\x77\x95\x80\x96\x1c\x96\xb6\x96\xb9\x96\xe8\x97\x52\x97\x5e\x97\x62\x97\x69\x97\xcb\x97\xed\x97\xf3\x98\x01\x98\xa8\x98\xdb\x98\xdf\x99\x96\x99\x99\x99\xac\x9a\xa8\x9a\xd8\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xdf\x9b\x25\x9b\x2f\x9b\x32\x9b\x3c\x9b\x5a\x9c\xe5\x9e\x75\x9e\x7f\x9e\xa5\x9e\xbb\x9e\xc3\x9e\xcd\x9e\xd1\x9e\xf9\x9e\xfd\x9f\x0e\x9f\x13\x9f\x20\x9f\x3b\x9f\x4a\x9f\x52\x9f\x8d\x9f\x9c\x9f\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x59\x4e\x01\x4e\x03\x4e\x43\x4e\x5d\x4e\x86\x4e\x8c\x4e\xba\x51\x3f\x51\x65\x51\x6b\x51\xe0\x52\x00\x52\x01\x52\x9b\x53\x15\x53\x41\x53\x5c\x53\xc8\x4e\x09\x4e\x0b\x4e\x08\x4e\x0a\x4e\x2b\x4e\x38\x51\xe1\x4e\x45\x4e\x48\x4e\x5f\x4e\x5e\x4e\x8e\x4e\xa1\x51\x40\x52\x03\x52\xfa\x53\x43\x53\xc9\x53\xe3\x57\x1f\x58\xeb\x59\x15\x59\x27\x59\x73\x5b\x50\x5b\x51\x5b\x53\x5b\xf8\x5c\x0f\x5c\x22\x5c\x38\x5c\x71\x5d\xdd\x5d\xe5\x5d\xf1\x5d\xf2\x5d\xf3\x5d\xfe\x5e\x72\x5e\xfe\x5f\x0b\x5f\x13\x62\x4d", /* 4c80 */ "\x00\x00\x4e\x11\x4e\x10\x4e\x0d\x4e\x2d\x4e\x30\x4e\x39\x4e\x4b\x5c\x39\x4e\x88\x4e\x91\x4e\x95\x4e\x92\x4e\x94\x4e\xa2\x4e\xc1\x4e\xc0\x4e\xc3\x4e\xc6\x4e\xc7\x4e\xcd\x4e\xca\x4e\xcb\x4e\xc4\x51\x43\x51\x41\x51\x67\x51\x6d\x51\x6e\x51\x6c\x51\x97\x51\xf6\x52\x06\x52\x07\x52\x08\x52\xfb\x52\xfe\x52\xff\x53\x16\x53\x39\x53\x48\x53\x47\x53\x45\x53\x5e\x53\x84\x53\xcb\x53\xca\x53\xcd\x58\xec\x59\x29\x59\x2b\x59\x2a\x59\x2d\x5b\x54\x5c\x11\x5c\x24\x5c\x3a\x5c\x6f\x5d\xf4\x5e\x7b\x5e\xff\x5f\x14\x5f\x15\x5f\xc3\x62\x08\x62\x36\x62\x4b\x62\x4e\x65\x2f\x65\x87\x65\x97\x65\xa4\x65\xb9\x65\xe5\x66\xf0\x67\x08\x67\x28\x6b\x20\x6b\x62\x6b\x79\x6b\xcb\x6b\xd4\x6b\xdb\x6c\x0f\x6c\x34\x70\x6b\x72\x2a\x72\x36\x72\x3b\x72\x47\x72\x59\x72\x5b\x72\xac\x73\x8b\x4e\x19\x4e\x16\x4e\x15\x4e\x14\x4e\x18\x4e\x3b\x4e\x4d\x4e\x4f\x4e\x4e\x4e\xe5\x4e\xd8\x4e\xd4\x4e\xd5\x4e\xd6\x4e\xd7\x4e\xe3\x4e\xe4\x4e\xd9\x4e\xde\x51\x45\x51\x44\x51\x89\x51\x8a\x51\xac\x51\xf9\x51\xfa\x51\xf8\x52\x0a\x52\xa0\x52\x9f\x53\x05\x53\x06\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x17\x53\x1d\x4e\xdf\x53\x4a\x53\x49\x53\x61\x53\x60\x53\x6f\x53\x6e\x53\xbb\x53\xef\x53\xe4\x53\xf3\x53\xec\x53\xee\x53\xe9\x53\xe8\x53\xfc\x53\xf8\x53\xf5\x53\xeb\x53\xe6\x53\xea\x53\xf2\x53\xf1\x53\xf0\x53\xe5\x53\xed\x53\xfb\x56\xdb\x56\xda\x59\x16\x59\x2e\x59\x31\x59\x74\x59\x76\x5b\x55\x5b\x83\x5c\x3c\x5d\xe8\x5d\xe7\x5d\xe6\x5e\x02\x5e\x03\x5e\x73\x5e\x7c\x5f\x01\x5f\x18\x5f\x17\x5f\xc5\x62\x0a\x62\x53\x62\x54\x62\x52\x62\x51\x65\xa5\x65\xe6\x67\x2e\x67\x2c\x67\x2a\x67\x2b\x67\x2d\x6b\x63", /* 4d80 */ "\x00\x00\x6b\xcd\x6c\x11\x6c\x10\x6c\x38\x6c\x41\x6c\x40\x6c\x3e\x72\xaf\x73\x84\x73\x89\x74\xdc\x74\xe6\x75\x18\x75\x1f\x75\x28\x75\x29\x75\x30\x75\x31\x75\x32\x75\x33\x75\x8b\x76\x7d\x76\xae\x76\xbf\x76\xee\x77\xdb\x77\xe2\x77\xf3\x79\x3a\x79\xbe\x7a\x74\x7a\xcb\x4e\x1e\x4e\x1f\x4e\x52\x4e\x53\x4e\x69\x4e\x99\x4e\xa4\x4e\xa6\x4e\xa5\x4e\xff\x4f\x09\x4f\x19\x4f\x0a\x4f\x15\x4f\x0d\x4f\x10\x4f\x11\x4f\x0f\x4e\xf2\x4e\xf6\x4e\xfb\x4e\xf0\x4e\xf3\x4e\xfd\x4f\x01\x4f\x0b\x51\x49\x51\x47\x51\x46\x51\x48\x51\x68\x51\x71\x51\x8d\x51\xb0\x52\x17\x52\x11\x52\x12\x52\x0e\x52\x16\x52\xa3\x53\x08\x53\x21\x53\x20\x53\x70\x53\x71\x54\x09\x54\x0f\x54\x0c\x54\x0a\x54\x10\x54\x01\x54\x0b\x54\x04\x54\x11\x54\x0d\x54\x08\x54\x03\x54\x0e\x54\x06\x54\x12\x56\xe0\x56\xde\x56\xdd\x57\x33\x57\x30\x57\x28\x57\x2d\x57\x2c\x57\x2f\x57\x29\x59\x19\x59\x1a\x59\x37\x59\x38\x59\x84\x59\x78\x59\x83\x59\x7d\x59\x79\x59\x82\x59\x81\x5b\x57\x5b\x58\x5b\x87\x5b\x88\x5b\x85\x5b\x89\x5b\xfa\x5c\x16\x5c\x79\x5d\xde\x5e\x06\x5e\x76\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x74\x5f\x0f\x5f\x1b\x5f\xd9\x5f\xd6\x62\x0e\x62\x0c\x62\x0d\x62\x10\x62\x63\x62\x5b\x62\x58\x65\x36\x65\xe9\x65\xe8\x65\xec\x65\xed\x66\xf2\x66\xf3\x67\x09\x67\x3d\x67\x34\x67\x31\x67\x35\x6b\x21\x6b\x64\x6b\x7b\x6c\x16\x6c\x5d\x6c\x57\x6c\x59\x6c\x5f\x6c\x60\x6c\x50\x6c\x55\x6c\x61\x6c\x5b\x6c\x4d\x6c\x4e\x70\x70\x72\x5f\x72\x5d\x76\x7e\x7a\xf9\x7c\x73\x7c\xf8\x7f\x36\x7f\x8a\x7f\xbd\x80\x01\x80\x03\x80\x0c\x80\x12\x80\x33\x80\x7f\x80\x89\x80\x8b\x80\x8c\x81\xe3\x81\xea\x81\xf3\x81\xfc\x82\x0c", /* 4e80 */ "\x00\x00\x82\x1b\x82\x1f\x82\x6e\x82\x72\x82\x7e\x86\x6b\x88\x40\x88\x4c\x88\x63\x89\x7f\x96\x21\x4e\x32\x4e\xa8\x4f\x4d\x4f\x4f\x4f\x47\x4f\x57\x4f\x5e\x4f\x34\x4f\x5b\x4f\x55\x4f\x30\x4f\x50\x4f\x51\x4f\x3d\x4f\x3a\x4f\x38\x4f\x43\x4f\x54\x4f\x3c\x4f\x46\x4f\x63\x4f\x5c\x4f\x60\x4f\x2f\x4f\x4e\x4f\x36\x4f\x59\x4f\x5d\x4f\x48\x4f\x5a\x51\x4c\x51\x4b\x51\x4d\x51\x75\x51\xb6\x51\xb7\x52\x25\x52\x24\x52\x29\x52\x2a\x52\x28\x52\xab\x52\xa9\x52\xaa\x52\xac\x53\x23\x53\x73\x53\x75\x54\x1d\x54\x2d\x54\x1e\x54\x3e\x54\x26\x54\x4e\x54\x27\x54\x46\x54\x43\x54\x33\x54\x48\x54\x42\x54\x1b\x54\x29\x54\x4a\x54\x39\x54\x3b\x54\x38\x54\x2e\x54\x35\x54\x36\x54\x20\x54\x3c\x54\x40\x54\x31\x54\x2b\x54\x1f\x54\x2c\x56\xea\x56\xf0\x56\xe4\x56\xeb\x57\x4a\x57\x51\x57\x40\x57\x4d\x57\x47\x57\x4e\x57\x3e\x57\x50\x57\x4f\x57\x3b\x58\xef\x59\x3e\x59\x9d\x59\x92\x59\xa8\x59\x9e\x59\xa3\x59\x99\x59\x96\x59\x8d\x59\xa4\x59\x93\x59\x8a\x59\xa5\x5b\x5d\x5b\x5c\x5b\x5a\x5b\x5b\x5b\x8c\x5b\x8b\x5b\x8f\x5c\x2c\x5c\x40\x5c\x41\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x3f\x5c\x3e\x5c\x90\x5c\x91\x5c\x94\x5c\x8c\x5d\xeb\x5e\x0c\x5e\x8f\x5e\x87\x5e\x8a\x5e\xf7\x5f\x04\x5f\x1f\x5f\x64\x5f\x62\x5f\x77\x5f\x79\x5f\xd8\x5f\xcc\x5f\xd7\x5f\xcd\x5f\xf1\x5f\xeb\x5f\xf8\x5f\xea\x62\x12\x62\x11\x62\x84\x62\x97\x62\x96\x62\x80\x62\x76\x62\x89\x62\x6d\x62\x8a\x62\x7c\x62\x7e\x62\x79\x62\x73\x62\x92\x62\x6f\x62\x98\x62\x6e\x62\x95\x62\x93\x62\x91\x62\x86\x65\x39\x65\x3b\x65\x38\x65\xf1\x66\xf4\x67\x5f\x67\x4e\x67\x4f\x67\x50\x67\x51\x67\x5c\x67\x56\x67\x5e\x67\x49\x67\x46", /* 4f80 */ "\x00\x00\x67\x60\x67\x53\x67\x57\x6b\x65\x6b\xcf\x6c\x42\x6c\x5e\x6c\x99\x6c\x81\x6c\x88\x6c\x89\x6c\x85\x6c\x9b\x6c\x6a\x6c\x7a\x6c\x90\x6c\x70\x6c\x8c\x6c\x68\x6c\x96\x6c\x92\x6c\x7d\x6c\x83\x6c\x72\x6c\x7e\x6c\x74\x6c\x86\x6c\x76\x6c\x8d\x6c\x94\x6c\x98\x6c\x82\x70\x76\x70\x7c\x70\x7d\x70\x78\x72\x62\x72\x61\x72\x60\x72\xc4\x72\xc2\x73\x96\x75\x2c\x75\x2b\x75\x37\x75\x38\x76\x82\x76\xef\x77\xe3\x79\xc1\x79\xc0\x79\xbf\x7a\x76\x7c\xfb\x7f\x55\x80\x96\x80\x93\x80\x9d\x80\x98\x80\x9b\x80\x9a\x80\xb2\x82\x6f\x82\x92\x82\x8b\x82\x8d\x89\x8b\x89\xd2\x8a\x00\x8c\x37\x8c\x46\x8c\x55\x8c\x9d\x8d\x64\x8d\x70\x8d\xb3\x8e\xab\x8e\xca\x8f\x9b\x8f\xb0\x8f\xc2\x8f\xc6\x8f\xc5\x8f\xc4\x5d\xe1\x90\x91\x90\xa2\x90\xaa\x90\xa6\x90\xa3\x91\x49\x91\xc6\x91\xcc\x96\x32\x96\x2e\x96\x31\x96\x2a\x96\x2c\x4e\x26\x4e\x56\x4e\x73\x4e\x8b\x4e\x9b\x4e\x9e\x4e\xab\x4e\xac\x4f\x6f\x4f\x9d\x4f\x8d\x4f\x73\x4f\x7f\x4f\x6c\x4f\x9b\x4f\x8b\x4f\x86\x4f\x83\x4f\x70\x4f\x75\x4f\x88\x4f\x69\x4f\x7b\x4f\x96\x4f\x7e\x4f\x8f\x4f\x91\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7a\x51\x54\x51\x52\x51\x55\x51\x69\x51\x77\x51\x76\x51\x78\x51\xbd\x51\xfd\x52\x3b\x52\x38\x52\x37\x52\x3a\x52\x30\x52\x2e\x52\x36\x52\x41\x52\xbe\x52\xbb\x53\x52\x53\x54\x53\x53\x53\x51\x53\x66\x53\x77\x53\x78\x53\x79\x53\xd6\x53\xd4\x53\xd7\x54\x73\x54\x75\x54\x96\x54\x78\x54\x95\x54\x80\x54\x7b\x54\x77\x54\x84\x54\x92\x54\x86\x54\x7c\x54\x90\x54\x71\x54\x76\x54\x8c\x54\x9a\x54\x62\x54\x68\x54\x8b\x54\x7d\x54\x8e\x56\xfa\x57\x83\x57\x77\x57\x6a\x57\x69\x57\x61\x57\x66\x57\x64\x57\x7c\x59\x1c", /* 5080 */ "\x00\x00\x59\x49\x59\x47\x59\x48\x59\x44\x59\x54\x59\xbe\x59\xbb\x59\xd4\x59\xb9\x59\xae\x59\xd1\x59\xc6\x59\xd0\x59\xcd\x59\xcb\x59\xd3\x59\xca\x59\xaf\x59\xb3\x59\xd2\x59\xc5\x5b\x5f\x5b\x64\x5b\x63\x5b\x97\x5b\x9a\x5b\x98\x5b\x9c\x5b\x99\x5b\x9b\x5c\x1a\x5c\x48\x5c\x45\x5c\x46\x5c\xb7\x5c\xa1\x5c\xb8\x5c\xa9\x5c\xab\x5c\xb1\x5c\xb3\x5e\x18\x5e\x1a\x5e\x16\x5e\x15\x5e\x1b\x5e\x11\x5e\x78\x5e\x9a\x5e\x97\x5e\x9c\x5e\x95\x5e\x96\x5e\xf6\x5f\x26\x5f\x27\x5f\x29\x5f\x80\x5f\x81\x5f\x7f\x5f\x7c\x5f\xdd\x5f\xe0\x5f\xfd\x5f\xf5\x5f\xff\x60\x0f\x60\x14\x60\x2f\x60\x35\x60\x16\x60\x2a\x60\x15\x60\x21\x60\x27\x60\x29\x60\x2b\x60\x1b\x62\x16\x62\x15\x62\x3f\x62\x3e\x62\x40\x62\x7f\x62\xc9\x62\xcc\x62\xc4\x62\xbf\x62\xc2\x62\xb9\x62\xd2\x62\xdb\x62\xab\x62\xd3\x62\xd4\x62\xcb\x62\xc8\x62\xa8\x62\xbd\x62\xbc\x62\xd0\x62\xd9\x62\xc7\x62\xcd\x62\xb5\x62\xda\x62\xb1\x62\xd8\x62\xd6\x62\xd7\x62\xc6\x62\xac\x62\xce\x65\x3e\x65\xa7\x65\xbc\x65\xfa\x66\x14\x66\x13\x66\x0c\x66\x06\x66\x02\x66\x0e\x66\x00\x66\x0f\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x15\x66\x0a\x66\x07\x67\x0d\x67\x0b\x67\x6d\x67\x8b\x67\x95\x67\x71\x67\x9c\x67\x73\x67\x77\x67\x87\x67\x9d\x67\x97\x67\x6f\x67\x70\x67\x7f\x67\x89\x67\x7e\x67\x90\x67\x75\x67\x9a\x67\x93\x67\x7c\x67\x6a\x67\x72\x6b\x23\x6b\x66\x6b\x67\x6b\x7f\x6c\x13\x6c\x1b\x6c\xe3\x6c\xe8\x6c\xf3\x6c\xb1\x6c\xcc\x6c\xe5\x6c\xb3\x6c\xbd\x6c\xbe\x6c\xbc\x6c\xe2\x6c\xab\x6c\xd5\x6c\xd3\x6c\xb8\x6c\xc4\x6c\xb9\x6c\xc1\x6c\xae\x6c\xd7\x6c\xc5\x6c\xf1\x6c\xbf\x6c\xbb\x6c\xe1\x6c\xdb\x6c\xca\x6c\xac\x6c\xef\x6c\xdc", /* 5180 */ "\x00\x00\x6c\xd6\x6c\xe0\x70\x95\x70\x8e\x70\x92\x70\x8a\x70\x99\x72\x2c\x72\x2d\x72\x38\x72\x48\x72\x67\x72\x69\x72\xc0\x72\xce\x72\xd9\x72\xd7\x72\xd0\x73\xa9\x73\xa8\x73\x9f\x73\xab\x73\xa5\x75\x3d\x75\x9d\x75\x99\x75\x9a\x76\x84\x76\xc2\x76\xf2\x76\xf4\x77\xe5\x77\xfd\x79\x3e\x79\x40\x79\x41\x79\xc9\x79\xc8\x7a\x7a\x7a\x79\x7a\xfa\x7c\xfe\x7f\x54\x7f\x8c\x7f\x8b\x80\x05\x80\xba\x80\xa5\x80\xa2\x80\xb1\x80\xa1\x80\xab\x80\xa9\x80\xb4\x80\xaa\x80\xaf\x81\xe5\x81\xfe\x82\x0d\x82\xb3\x82\x9d\x82\x99\x82\xad\x82\xbd\x82\x9f\x82\xb9\x82\xb1\x82\xac\x82\xa5\x82\xaf\x82\xb8\x82\xa3\x82\xb0\x82\xbe\x82\xb7\x86\x4e\x86\x71\x52\x1d\x88\x68\x8e\xcb\x8f\xce\x8f\xd4\x8f\xd1\x90\xb5\x90\xb8\x90\xb1\x90\xb6\x91\xc7\x91\xd1\x95\x77\x95\x80\x96\x1c\x96\x40\x96\x3f\x96\x3b\x96\x44\x96\x42\x96\xb9\x96\xe8\x97\x52\x97\x5e\x4e\x9f\x4e\xad\x4e\xae\x4f\xe1\x4f\xb5\x4f\xaf\x4f\xbf\x4f\xe0\x4f\xd1\x4f\xcf\x4f\xdd\x4f\xc3\x4f\xb6\x4f\xd8\x4f\xdf\x4f\xca\x4f\xd7\x4f\xae\x4f\xd0\x4f\xc4\x4f\xc2\x4f\xda\x4f\xce\x4f\xde\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb7\x51\x57\x51\x92\x51\x91\x51\xa0\x52\x4e\x52\x43\x52\x4a\x52\x4d\x52\x4c\x52\x4b\x52\x47\x52\xc7\x52\xc9\x52\xc3\x52\xc1\x53\x0d\x53\x57\x53\x7b\x53\x9a\x53\xdb\x54\xac\x54\xc0\x54\xa8\x54\xce\x54\xc9\x54\xb8\x54\xa6\x54\xb3\x54\xc7\x54\xc2\x54\xbd\x54\xaa\x54\xc1\x54\xc4\x54\xc8\x54\xaf\x54\xab\x54\xb1\x54\xbb\x54\xa9\x54\xa7\x54\xbf\x56\xff\x57\x82\x57\x8b\x57\xa0\x57\xa3\x57\xa2\x57\xce\x57\xae\x57\x93\x59\x55\x59\x51\x59\x4f\x59\x4e\x59\x50\x59\xdc\x59\xd8\x59\xff\x59\xe3\x59\xe8\x5a\x03", /* 5280 */ "\x00\x00\x59\xe5\x59\xea\x59\xda\x59\xe6\x5a\x01\x59\xfb\x5b\x69\x5b\xa3\x5b\xa6\x5b\xa4\x5b\xa2\x5b\xa5\x5c\x01\x5c\x4e\x5c\x4f\x5c\x4d\x5c\x4b\x5c\xd9\x5c\xd2\x5d\xf7\x5e\x1d\x5e\x25\x5e\x1f\x5e\x7d\x5e\xa0\x5e\xa6\x5e\xfa\x5f\x08\x5f\x2d\x5f\x65\x5f\x88\x5f\x85\x5f\x8a\x5f\x8b\x5f\x87\x5f\x8c\x5f\x89\x60\x12\x60\x1d\x60\x20\x60\x25\x60\x0e\x60\x28\x60\x4d\x60\x70\x60\x68\x60\x62\x60\x46\x60\x43\x60\x6c\x60\x6b\x60\x6a\x60\x64\x62\x41\x62\xdc\x63\x16\x63\x09\x62\xfc\x62\xed\x63\x01\x62\xee\x62\xfd\x63\x07\x62\xf1\x62\xf7\x62\xef\x62\xec\x62\xfe\x62\xf4\x63\x11\x63\x02\x65\x3f\x65\x45\x65\xab\x65\xbd\x65\xe2\x66\x25\x66\x2d\x66\x20\x66\x27\x66\x2f\x66\x1f\x66\x28\x66\x31\x66\x24\x66\xf7\x67\xff\x67\xd3\x67\xf1\x67\xd4\x67\xd0\x67\xec\x67\xb6\x67\xaf\x67\xf5\x67\xe9\x67\xef\x67\xc4\x67\xd1\x67\xb4\x67\xda\x67\xe5\x67\xb8\x67\xcf\x67\xde\x67\xf3\x67\xb0\x67\xd9\x67\xe2\x67\xdd\x67\xd2\x6b\x6a\x6b\x83\x6b\x86\x6b\xb5\x6b\xd2\x6b\xd7\x6c\x1f\x6c\xc9\x6d\x0b\x6d\x32\x6d\x2a\x6d\x41\x6d\x25\x6d\x0c\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x31\x6d\x1e\x6d\x17\x6d\x3b\x6d\x3d\x6d\x3e\x6d\x36\x6d\x1b\x6c\xf5\x6d\x39\x6d\x27\x6d\x38\x6d\x29\x6d\x2e\x6d\x35\x6d\x0e\x6d\x2b\x70\xab\x70\xba\x70\xb3\x70\xac\x70\xaf\x70\xad\x70\xb8\x70\xae\x70\xa4\x72\x30\x72\x72\x72\x6f\x72\x74\x72\xe9\x72\xe0\x72\xe1\x73\xb7\x73\xca\x73\xbb\x73\xb2\x73\xcd\x73\xc0\x73\xb3\x75\x1a\x75\x2d\x75\x4f\x75\x4c\x75\x4e\x75\x4b\x75\xab\x75\xa4\x75\xa5\x75\xa2\x75\xa3\x76\x78\x76\x86\x76\x87\x76\x88\x76\xc8\x76\xc6\x76\xc3\x76\xc5\x77\x01\x76\xf9\x76\xf8\x77\x09", /* 5380 */ "\x00\x00\x77\x0b\x76\xfe\x76\xfc\x77\x07\x77\xdc\x78\x02\x78\x14\x78\x0c\x78\x0d\x79\x46\x79\x49\x79\x48\x79\x47\x79\xb9\x79\xba\x79\xd1\x79\xd2\x79\xcb\x7a\x7f\x7a\x81\x7a\xff\x7a\xfd\x7c\x7d\x7d\x02\x7d\x05\x7d\x00\x7d\x09\x7d\x07\x7d\x04\x7d\x06\x7f\x38\x7f\x8e\x7f\xbf\x80\x04\x80\x10\x80\x0d\x80\x11\x80\x36\x80\xd6\x80\xe5\x80\xda\x80\xc3\x80\xc4\x80\xcc\x80\xe1\x80\xdb\x80\xce\x80\xde\x80\xe4\x80\xdd\x81\xf4\x82\x22\x82\xe7\x83\x03\x83\x05\x82\xe3\x82\xdb\x82\xe6\x83\x04\x82\xe5\x83\x02\x83\x09\x82\xd2\x82\xd7\x82\xf1\x83\x01\x82\xdc\x82\xd4\x82\xd1\x82\xde\x82\xd3\x82\xdf\x82\xef\x83\x06\x86\x50\x86\x79\x86\x7b\x86\x7a\x88\x4d\x88\x6b\x89\x81\x89\xd4\x8a\x08\x8a\x02\x8a\x03\x8c\x9e\x8c\xa0\x8d\x74\x8d\x73\x8d\xb4\x8e\xcd\x8e\xcc\x8f\xf0\x8f\xe6\x8f\xe2\x8f\xea\x8f\xe5\x8f\xed\x8f\xeb\x8f\xe4\x8f\xe8\x90\xca\x90\xce\x90\xc1\x90\xc3\x91\x4b\x91\x4a\x91\xcd\x95\x82\x96\x50\x96\x4b\x96\x4c\x96\x4d\x97\x62\x97\x69\x97\xcb\x97\xed\x97\xf3\x98\x01\x98\xa8\x98\xdb\x98\xdf\x99\x96\x99\x99\x4e\x58\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb3\x50\x0c\x50\x0d\x50\x23\x4f\xef\x50\x26\x50\x25\x4f\xf8\x50\x29\x50\x16\x50\x06\x50\x3c\x50\x1f\x50\x1a\x50\x12\x50\x11\x4f\xfa\x50\x00\x50\x14\x50\x28\x4f\xf1\x50\x21\x50\x0b\x50\x19\x50\x18\x4f\xf3\x4f\xee\x50\x2d\x50\x2a\x4f\xfe\x50\x2b\x50\x09\x51\x7c\x51\xa4\x51\xa5\x51\xa2\x51\xcd\x51\xcc\x51\xc6\x51\xcb\x52\x56\x52\x5c\x52\x54\x52\x5b\x52\x5d\x53\x2a\x53\x7f\x53\x9f\x53\x9d\x53\xdf\x54\xe8\x55\x10\x55\x01\x55\x37\x54\xfc\x54\xe5\x54\xf2\x55\x06\x54\xfa\x55\x14\x54\xe9\x54\xed\x54\xe1", /* 5480 */ "\x00\x00\x55\x09\x54\xee\x54\xea\x54\xe6\x55\x27\x55\x07\x54\xfd\x55\x0f\x57\x03\x57\x04\x57\xc2\x57\xd4\x57\xcb\x57\xc3\x58\x09\x59\x0f\x59\x57\x59\x58\x59\x5a\x5a\x11\x5a\x18\x5a\x1c\x5a\x1f\x5a\x1b\x5a\x13\x59\xec\x5a\x20\x5a\x23\x5a\x29\x5a\x25\x5a\x0c\x5a\x09\x5b\x6b\x5c\x58\x5b\xb0\x5b\xb3\x5b\xb6\x5b\xb4\x5b\xae\x5b\xb5\x5b\xb9\x5b\xb8\x5c\x04\x5c\x51\x5c\x55\x5c\x50\x5c\xed\x5c\xfd\x5c\xfb\x5c\xea\x5c\xe8\x5c\xf0\x5c\xf6\x5d\x01\x5c\xf4\x5d\xee\x5e\x2d\x5e\x2b\x5e\xab\x5e\xad\x5e\xa7\x5f\x31\x5f\x92\x5f\x91\x5f\x90\x60\x59\x60\x63\x60\x65\x60\x50\x60\x55\x60\x6d\x60\x69\x60\x6f\x60\x84\x60\x9f\x60\x9a\x60\x8d\x60\x94\x60\x8c\x60\x85\x60\x96\x62\x47\x62\xf3\x63\x08\x62\xff\x63\x4e\x63\x3e\x63\x2f\x63\x55\x63\x42\x63\x46\x63\x4f\x63\x49\x63\x3a\x63\x50\x63\x3d\x63\x2a\x63\x2b\x63\x28\x63\x4d\x63\x4c\x65\x48\x65\x49\x65\x99\x65\xc1\x65\xc5\x66\x42\x66\x49\x66\x4f\x66\x43\x66\x52\x66\x4c\x66\x45\x66\x41\x66\xf8\x67\x14\x67\x15\x67\x17\x68\x21\x68\x38\x68\x48\x68\x46\x68\x53\x68\x39\x68\x42\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x54\x68\x29\x68\xb3\x68\x17\x68\x4c\x68\x51\x68\x3d\x67\xf4\x68\x50\x68\x40\x68\x3c\x68\x43\x68\x2a\x68\x45\x68\x13\x68\x18\x68\x41\x6b\x8a\x6b\x89\x6b\xb7\x6c\x23\x6c\x27\x6c\x28\x6c\x26\x6c\x24\x6c\xf0\x6d\x6a\x6d\x95\x6d\x88\x6d\x87\x6d\x66\x6d\x78\x6d\x77\x6d\x59\x6d\x93\x6d\x6c\x6d\x89\x6d\x6e\x6d\x5a\x6d\x74\x6d\x69\x6d\x8c\x6d\x8a\x6d\x79\x6d\x85\x6d\x65\x6d\x94\x70\xca\x70\xd8\x70\xe4\x70\xd9\x70\xc8\x70\xcf\x72\x39\x72\x79\x72\xfc\x72\xf9\x72\xfd\x72\xf8\x72\xf7\x73\x86\x73\xed\x74\x09", /* 5580 */ "\x00\x00\x73\xee\x73\xe0\x73\xea\x73\xde\x75\x54\x75\x5d\x75\x5c\x75\x5a\x75\x59\x75\xbe\x75\xc5\x75\xc7\x75\xb2\x75\xb3\x75\xbd\x75\xbc\x75\xb9\x75\xc2\x75\xb8\x76\x8b\x76\xb0\x76\xca\x76\xcd\x76\xce\x77\x29\x77\x1f\x77\x20\x77\x28\x77\xe9\x78\x30\x78\x27\x78\x38\x78\x1d\x78\x34\x78\x37\x78\x25\x78\x2d\x78\x20\x78\x1f\x78\x32\x79\x55\x79\x50\x79\x60\x79\x5f\x79\x56\x79\x5e\x79\x5d\x79\x57\x79\x5a\x79\xe4\x79\xe3\x79\xe7\x79\xdf\x79\xe6\x79\xe9\x79\xd8\x7a\x84\x7a\x88\x7a\xd9\x7b\x06\x7b\x11\x7c\x89\x7d\x21\x7d\x17\x7d\x0b\x7d\x0a\x7d\x20\x7d\x22\x7d\x14\x7d\x10\x7d\x15\x7d\x1a\x7d\x1c\x7d\x0d\x7d\x19\x7d\x1b\x7f\x3a\x7f\x5f\x7f\x94\x7f\xc5\x7f\xc1\x80\x06\x80\x18\x80\x15\x80\x19\x80\x17\x80\x3d\x80\x3f\x80\xf1\x81\x02\x80\xf0\x81\x05\x80\xed\x80\xf4\x81\x06\x80\xf8\x80\xf3\x81\x08\x80\xfd\x81\x0a\x80\xfc\x80\xef\x81\xed\x81\xec\x82\x00\x82\x10\x82\x2a\x82\x2b\x82\x28\x82\x2c\x82\xbb\x83\x2b\x83\x52\x83\x54\x83\x4a\x83\x38\x83\x50\x83\x49\x83\x35\x83\x34\x83\x4f\x83\x32\x83\x39\x83\x36\x83\x17\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x40\x83\x31\x83\x28\x83\x43\x86\x54\x86\x8a\x86\xaa\x86\x93\x86\xa4\x86\xa9\x86\x8c\x86\xa3\x86\x9c\x88\x70\x88\x77\x88\x81\x88\x82\x88\x7d\x88\x79\x8a\x18\x8a\x10\x8a\x0e\x8a\x0c\x8a\x15\x8a\x0a\x8a\x17\x8a\x13\x8a\x16\x8a\x0f\x8a\x11\x8c\x48\x8c\x7a\x8c\x79\x8c\xa1\x8c\xa2\x8d\x77\x8e\xac\x8e\xd2\x8e\xd4\x8e\xcf\x8f\xb1\x90\x01\x90\x06\x8f\xf7\x90\x00\x8f\xfa\x8f\xf4\x90\x03\x8f\xfd\x90\x05\x8f\xf8\x90\x95\x90\xe1\x90\xdd\x90\xe2\x91\x52\x91\x4d\x91\x4c\x91\xd8\x91\xdd\x91\xd7\x91\xdc\x91\xd9", /* 5680 */ "\x00\x00\x95\x83\x96\x62\x96\x63\x96\x61\x96\x5b\x96\x5d\x96\x64\x96\x58\x96\x5e\x96\xbb\x98\xe2\x99\xac\x9a\xa8\x9a\xd8\x9b\x25\x9b\x32\x9b\x3c\x4e\x7e\x50\x7a\x50\x7d\x50\x5c\x50\x47\x50\x43\x50\x4c\x50\x5a\x50\x49\x50\x65\x50\x76\x50\x4e\x50\x55\x50\x75\x50\x74\x50\x77\x50\x4f\x50\x0f\x50\x6f\x50\x6d\x51\x5c\x51\x95\x51\xf0\x52\x6a\x52\x6f\x52\xd2\x52\xd9\x52\xd8\x52\xd5\x53\x10\x53\x0f\x53\x19\x53\x3f\x53\x40\x53\x3e\x53\xc3\x66\xfc\x55\x46\x55\x6a\x55\x66\x55\x44\x55\x5e\x55\x61\x55\x43\x55\x4a\x55\x31\x55\x56\x55\x4f\x55\x55\x55\x2f\x55\x64\x55\x38\x55\x2e\x55\x5c\x55\x2c\x55\x63\x55\x33\x55\x41\x55\x57\x57\x08\x57\x0b\x57\x09\x57\xdf\x58\x05\x58\x0a\x58\x06\x57\xe0\x57\xe4\x57\xfa\x58\x02\x58\x35\x57\xf7\x57\xf9\x59\x20\x59\x62\x5a\x36\x5a\x41\x5a\x49\x5a\x66\x5a\x6a\x5a\x40\x5a\x3c\x5a\x62\x5a\x5a\x5a\x46\x5a\x4a\x5b\x70\x5b\xc7\x5b\xc5\x5b\xc4\x5b\xc2\x5b\xbf\x5b\xc6\x5c\x09\x5c\x08\x5c\x07\x5c\x60\x5c\x5c\x5c\x5d\x5d\x07\x5d\x06\x5d\x0e\x5d\x1b\x5d\x16\x5d\x22\x5d\x11\x5d\x29\x5d\x14\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x19\x5d\x24\x5d\x27\x5d\x17\x5d\xe2\x5e\x38\x5e\x36\x5e\x33\x5e\x37\x5e\xb7\x5e\xb8\x5e\xb6\x5e\xb5\x5e\xbe\x5f\x35\x5f\x37\x5f\x57\x5f\x6c\x5f\x69\x5f\x6b\x5f\x97\x5f\x99\x5f\x9e\x5f\x98\x5f\xa1\x5f\xa0\x5f\x9c\x60\x7f\x60\xa3\x60\x89\x60\xa0\x60\xa8\x60\xcb\x60\xb4\x60\xe6\x60\xbd\x60\xc5\x60\xbb\x60\xb5\x60\xdc\x60\xbc\x60\xd8\x60\xd5\x60\xc6\x60\xdf\x60\xb8\x60\xda\x60\xc7\x62\x1a\x62\x1b\x62\x48\x63\xa0\x63\xa7\x63\x72\x63\x96\x63\xa2\x63\xa5\x63\x77\x63\x67\x63\x98\x63\xaa\x63\x71\x63\xa9", /* 5780 */ "\x00\x00\x63\x89\x63\x83\x63\x9b\x63\x6b\x63\xa8\x63\x84\x63\x88\x63\x99\x63\xa1\x63\xac\x63\x92\x63\x8f\x63\x80\x63\x7b\x63\x69\x63\x68\x63\x7a\x65\x5d\x65\x56\x65\x51\x65\x59\x65\x57\x55\x5f\x65\x4f\x65\x58\x65\x55\x65\x54\x65\x9c\x65\x9b\x65\xac\x65\xcf\x65\xcb\x65\xcc\x65\xce\x66\x5d\x66\x5a\x66\x64\x66\x68\x66\x66\x66\x5e\x66\xf9\x52\xd7\x67\x1b\x68\x81\x68\xaf\x68\xa2\x68\x93\x68\xb5\x68\x7f\x68\x76\x68\xb1\x68\xa7\x68\x97\x68\xb0\x68\x83\x68\xc4\x68\xad\x68\x86\x68\x85\x68\x94\x68\x9d\x68\xa8\x68\x9f\x68\xa1\x68\x82\x6b\x32\x6b\xba\x6b\xeb\x6b\xec\x6c\x2b\x6d\x8e\x6d\xbc\x6d\xf3\x6d\xd9\x6d\xb2\x6d\xe1\x6d\xcc\x6d\xe4\x6d\xfb\x6d\xfa\x6e\x05\x6d\xc7\x6d\xcb\x6d\xaf\x6d\xd1\x6d\xae\x6d\xde\x6d\xf9\x6d\xb8\x6d\xf7\x6d\xf5\x6d\xc5\x6d\xd2\x6e\x1a\x6d\xb5\x6d\xda\x6d\xeb\x6d\xd8\x6d\xea\x6d\xf1\x6d\xee\x6d\xe8\x6d\xc6\x6d\xc4\x6d\xaa\x6d\xec\x6d\xbf\x6d\xe6\x70\xf9\x71\x09\x71\x0a\x70\xfd\x70\xef\x72\x3d\x72\x7d\x72\x81\x73\x1c\x73\x1b\x73\x16\x73\x13\x73\x19\x73\x87\x74\x05\x74\x0a\x74\x03\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x73\xfe\x74\x0d\x74\xe0\x74\xf6\x74\xf7\x75\x1c\x75\x22\x75\x65\x75\x66\x75\x62\x75\x70\x75\x8f\x75\xd4\x75\xd5\x75\xb5\x75\xca\x75\xcd\x76\x8e\x76\xd4\x76\xd2\x76\xdb\x77\x37\x77\x3e\x77\x3c\x77\x36\x77\x38\x77\x3a\x78\x6b\x78\x43\x78\x4e\x79\x65\x79\x68\x79\x6d\x79\xfb\x7a\x92\x7a\x95\x7b\x20\x7b\x28\x7b\x1b\x7b\x2c\x7b\x26\x7b\x19\x7b\x1e\x7b\x2e\x7c\x92\x7c\x97\x7c\x95\x7d\x46\x7d\x43\x7d\x71\x7d\x2e\x7d\x39\x7d\x3c\x7d\x40\x7d\x30\x7d\x33\x7d\x44\x7d\x2f\x7d\x42\x7d\x32\x7d\x31\x7f\x3d", /* 5880 */ "\x00\x00\x7f\x9e\x7f\x9a\x7f\xcc\x7f\xce\x7f\xd2\x80\x1c\x80\x4a\x80\x46\x81\x2f\x81\x16\x81\x23\x81\x2b\x81\x29\x81\x30\x81\x24\x82\x02\x82\x35\x82\x37\x82\x36\x82\x39\x83\x8e\x83\x9e\x83\x98\x83\x78\x83\xa2\x83\x96\x83\xbd\x83\xab\x83\x92\x83\x8a\x83\x93\x83\x89\x83\xa0\x83\x77\x83\x7b\x83\x7c\x83\x86\x83\xa7\x86\x55\x5f\x6a\x86\xc7\x86\xc0\x86\xb6\x86\xc4\x86\xb5\x86\xc6\x86\xcb\x86\xb1\x86\xaf\x86\xc9\x88\x53\x88\x9e\x88\x88\x88\xab\x88\x92\x88\x96\x88\x8d\x88\x8b\x89\x93\x89\x8f\x8a\x2a\x8a\x1d\x8a\x23\x8a\x25\x8a\x31\x8a\x2d\x8a\x1f\x8a\x1b\x8a\x22\x8c\x49\x8c\x5a\x8c\xa9\x8c\xac\x8c\xab\x8c\xa8\x8c\xaa\x8c\xa7\x8d\x67\x8d\x66\x8d\xbe\x8d\xba\x8e\xdb\x8e\xdf\x90\x19\x90\x0d\x90\x1a\x90\x17\x90\x23\x90\x1f\x90\x1d\x90\x10\x90\x15\x90\x1e\x90\x20\x90\x0f\x90\x22\x90\x16\x90\x1b\x90\x14\x90\xe8\x90\xed\x90\xfd\x91\x57\x91\xce\x91\xf5\x91\xe6\x91\xe3\x91\xe7\x91\xed\x91\xe9\x95\x89\x96\x6a\x96\x75\x96\x73\x96\x78\x96\x70\x96\x74\x96\x76\x96\x77\x96\x6c\x96\xc0\x96\xea\x96\xe9\x7a\xe0\x7a\xdf\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x02\x98\x03\x9b\x5a\x9c\xe5\x9e\x75\x9e\x7f\x9e\xa5\x9e\xbb\x50\xa2\x50\x8d\x50\x85\x50\x99\x50\x91\x50\x80\x50\x96\x50\x98\x50\x9a\x67\x00\x51\xf1\x52\x72\x52\x74\x52\x75\x52\x69\x52\xde\x52\xdd\x52\xdb\x53\x5a\x53\xa5\x55\x7b\x55\x80\x55\xa7\x55\x7c\x55\x8a\x55\x9d\x55\x98\x55\x82\x55\x9c\x55\xaa\x55\x94\x55\x87\x55\x8b\x55\x83\x55\xb3\x55\xae\x55\x9f\x55\x3e\x55\xb2\x55\x9a\x55\xbb\x55\xac\x55\xb1\x55\x7e\x55\x89\x55\xab\x55\x99\x57\x0d\x58\x2f\x58\x2a\x58\x34\x58\x24\x58\x30\x58\x31\x58\x21", /* 5980 */ "\x00\x00\x58\x1d\x58\x20\x58\xf9\x58\xfa\x59\x60\x5a\x77\x5a\x9a\x5a\x7f\x5a\x92\x5a\x9b\x5a\xa7\x5b\x73\x5b\x71\x5b\xd2\x5b\xcc\x5b\xd3\x5b\xd0\x5c\x0a\x5c\x0b\x5c\x31\x5d\x4c\x5d\x50\x5d\x34\x5d\x47\x5d\xfd\x5e\x45\x5e\x3d\x5e\x40\x5e\x43\x5e\x7e\x5e\xca\x5e\xc1\x5e\xc2\x5e\xc4\x5f\x3c\x5f\x6d\x5f\xa9\x5f\xaa\x5f\xa8\x60\xd1\x60\xe1\x60\xb2\x60\xb6\x60\xe0\x61\x1c\x61\x23\x60\xfa\x61\x15\x60\xf0\x60\xfb\x60\xf4\x61\x68\x60\xf1\x61\x0e\x60\xf6\x61\x09\x61\x00\x61\x12\x62\x1f\x62\x49\x63\xa3\x63\x8c\x63\xcf\x63\xc0\x63\xe9\x63\xc9\x63\xc6\x63\xcd\x63\xd2\x63\xe3\x63\xd0\x63\xe1\x63\xd6\x63\xed\x63\xee\x63\x76\x63\xf4\x63\xea\x63\xdb\x64\x52\x63\xda\x63\xf9\x65\x5e\x65\x66\x65\x62\x65\x63\x65\x91\x65\x90\x65\xaf\x66\x6e\x66\x70\x66\x74\x66\x76\x66\x6f\x66\x91\x66\x7a\x66\x7e\x66\x77\x66\xfe\x66\xff\x67\x1f\x67\x1d\x68\xfa\x68\xd5\x68\xe0\x68\xd8\x68\xd7\x69\x05\x68\xdf\x68\xf5\x68\xee\x68\xe7\x68\xf9\x68\xd2\x68\xf2\x68\xe3\x68\xcb\x68\xcd\x69\x0d\x69\x12\x69\x0e\x68\xc9\x68\xda\x69\x6e\x68\xfb\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x3e\x6b\x3a\x6b\x3d\x6b\x98\x6b\x96\x6b\xbc\x6b\xef\x6c\x2e\x6c\x2f\x6c\x2c\x6e\x2f\x6e\x38\x6e\x54\x6e\x21\x6e\x32\x6e\x67\x6e\x4a\x6e\x20\x6e\x25\x6e\x23\x6e\x1b\x6e\x5b\x6e\x58\x6e\x24\x6e\x56\x6e\x6e\x6e\x2d\x6e\x26\x6e\x6f\x6e\x34\x6e\x4d\x6e\x3a\x6e\x2c\x6e\x43\x6e\x1d\x6e\x3e\x6e\xcb\x6e\x89\x6e\x19\x6e\x4e\x6e\x63\x6e\x44\x6e\x72\x6e\x69\x6e\x5f\x71\x19\x71\x1a\x71\x26\x71\x30\x71\x21\x71\x36\x71\x6e\x71\x1c\x72\x4c\x72\x84\x72\x80\x73\x36\x73\x25\x73\x34\x73\x29\x74\x3a\x74\x2a\x74\x33", /* 5a80 */ "\x00\x00\x74\x22\x74\x25\x74\x35\x74\x36\x74\x34\x74\x2f\x74\x1b\x74\x26\x74\x28\x75\x25\x75\x26\x75\x6b\x75\x6a\x75\xe2\x75\xdb\x75\xe3\x75\xd9\x75\xd8\x75\xde\x75\xe0\x76\x7b\x76\x7c\x76\x96\x76\x93\x76\xb4\x76\xdc\x77\x4f\x77\xed\x78\x5d\x78\x6c\x78\x6f\x7a\x0d\x7a\x08\x7a\x0b\x7a\x05\x7a\x00\x7a\x98\x7a\x97\x7a\x96\x7a\xe5\x7a\xe3\x7b\x49\x7b\x56\x7b\x46\x7b\x50\x7b\x52\x7b\x54\x7b\x4d\x7b\x4b\x7b\x4f\x7b\x51\x7c\x9f\x7c\xa5\x7d\x5e\x7d\x50\x7d\x68\x7d\x55\x7d\x2b\x7d\x6e\x7d\x72\x7d\x61\x7d\x66\x7d\x62\x7d\x70\x7d\x73\x55\x84\x7f\xd4\x7f\xd5\x80\x0b\x80\x52\x80\x85\x81\x55\x81\x54\x81\x4b\x81\x51\x81\x4e\x81\x39\x81\x46\x81\x3e\x81\x4c\x81\x53\x81\x74\x82\x12\x82\x1c\x83\xe9\x84\x03\x83\xf8\x84\x0d\x83\xe0\x83\xc5\x84\x0b\x83\xc1\x83\xef\x83\xf1\x83\xf4\x84\x57\x84\x0a\x83\xf0\x84\x0c\x83\xcc\x83\xfd\x83\xf2\x83\xca\x84\x38\x84\x0e\x84\x04\x83\xdc\x84\x07\x83\xd4\x83\xdf\x86\x5b\x86\xdf\x86\xd9\x86\xed\x86\xd4\x86\xdb\x86\xe4\x86\xd0\x86\xde\x88\x57\x88\xc1\x88\xc2\x88\xb1\x89\x83\x89\x96\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x3b\x8a\x60\x8a\x55\x8a\x5e\x8a\x3c\x8a\x41\x8a\x54\x8a\x5b\x8a\x50\x8a\x46\x8a\x34\x8a\x3a\x8a\x36\x8a\x56\x8c\x61\x8c\x82\x8c\xaf\x8c\xbc\x8c\xb3\x8c\xbd\x8c\xc1\x8c\xbb\x8c\xc0\x8c\xb4\x8c\xb7\x8c\xb6\x8c\xbf\x8c\xb8\x8d\x8a\x8d\x85\x8d\x81\x8d\xce\x8d\xdd\x8d\xcb\x8d\xda\x8d\xd1\x8d\xcc\x8d\xdb\x8d\xc6\x8e\xfb\x8e\xf8\x8e\xfc\x8f\x9c\x90\x2e\x90\x35\x90\x31\x90\x38\x90\x32\x90\x36\x91\x02\x90\xf5\x91\x09\x90\xfe\x91\x63\x91\x65\x91\xcf\x92\x14\x92\x15\x92\x23\x92\x09\x92\x1e\x92\x0d\x92\x10", /* 5b80 */ "\x00\x00\x92\x07\x92\x11\x95\x94\x95\x8f\x95\x8b\x95\x91\x95\x93\x95\x92\x95\x8e\x96\x8a\x96\x8e\x96\x8b\x96\x7d\x96\x85\x96\x86\x96\x8d\x96\x72\x96\x84\x96\xc1\x96\xc5\x96\xc4\x96\xc6\x96\xc7\x96\xef\x96\xf2\x97\xcc\x98\x05\x98\x06\x98\x08\x98\xe7\x98\xea\x98\xef\x98\xe9\x98\xf2\x98\xed\x99\xae\x99\xad\x9e\xc3\x9e\xcd\x9e\xd1\x4e\x82\x50\xad\x50\xb5\x50\xb2\x50\xb3\x50\xc5\x50\xbe\x50\xac\x50\xb7\x50\xbb\x50\xaf\x50\xc7\x52\x7f\x52\x77\x52\x7d\x52\xdf\x52\xe6\x52\xe4\x52\xe2\x52\xe3\x53\x2f\x55\xdf\x55\xe8\x55\xd3\x55\xe6\x55\xce\x55\xdc\x55\xc7\x55\xd1\x55\xe3\x55\xe4\x55\xef\x55\xda\x55\xe1\x55\xc5\x55\xc6\x55\xe5\x55\xc9\x57\x12\x57\x13\x58\x5e\x58\x51\x58\x58\x58\x57\x58\x5a\x58\x54\x58\x6b\x58\x4c\x58\x6d\x58\x4a\x58\x62\x58\x52\x58\x4b\x59\x67\x5a\xc1\x5a\xc9\x5a\xcc\x5a\xbe\x5a\xbd\x5a\xbc\x5a\xb3\x5a\xc2\x5a\xb2\x5d\x69\x5d\x6f\x5e\x4c\x5e\x79\x5e\xc9\x5e\xc8\x5f\x12\x5f\x59\x5f\xac\x5f\xae\x61\x1a\x61\x0f\x61\x48\x61\x1f\x60\xf3\x61\x1b\x60\xf9\x61\x01\x61\x08\x61\x4e\x61\x4c\x61\x44\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x4d\x61\x3e\x61\x34\x61\x27\x61\x0d\x61\x06\x61\x37\x62\x21\x62\x22\x64\x13\x64\x3e\x64\x1e\x64\x2a\x64\x2d\x64\x3d\x64\x2c\x64\x0f\x64\x1c\x64\x14\x64\x0d\x64\x36\x64\x16\x64\x17\x64\x06\x65\x6c\x65\x9f\x65\xb0\x66\x97\x66\x89\x66\x87\x66\x88\x66\x96\x66\x84\x66\x98\x66\x8d\x67\x03\x69\x94\x69\x6d\x69\x5a\x69\x77\x69\x60\x69\x54\x69\x75\x69\x30\x69\x82\x69\x4a\x69\x68\x69\x6b\x69\x5e\x69\x53\x69\x79\x69\x86\x69\x5d\x69\x63\x69\x5b\x6b\x47\x6b\x72\x6b\xc0\x6b\xbf\x6b\xd3\x6b\xfd\x6e\xa2\x6e\xaf", /* 5c80 */ "\x00\x00\x6e\xd3\x6e\xb6\x6e\xc2\x6e\x90\x6e\x9d\x6e\xc7\x6e\xc5\x6e\xa5\x6e\x98\x6e\xbc\x6e\xba\x6e\xab\x6e\xd1\x6e\x96\x6e\x9c\x6e\xc4\x6e\xd4\x6e\xaa\x6e\xa7\x6e\xb4\x71\x4e\x71\x59\x71\x69\x71\x64\x71\x49\x71\x67\x71\x5c\x71\x6c\x71\x66\x71\x4c\x71\x65\x71\x5e\x71\x46\x71\x68\x71\x56\x72\x3a\x72\x52\x73\x37\x73\x45\x73\x3f\x73\x3e\x74\x6f\x74\x5a\x74\x55\x74\x5f\x74\x5e\x74\x41\x74\x3f\x74\x59\x74\x5b\x74\x5c\x75\x76\x75\x78\x76\x00\x75\xf0\x76\x01\x75\xf2\x75\xf1\x75\xfa\x75\xff\x75\xf4\x75\xf3\x76\xde\x76\xdf\x77\x5b\x77\x6b\x77\x66\x77\x5e\x77\x63\x77\x79\x77\x6a\x77\x6c\x77\x5c\x77\x65\x77\x68\x77\x62\x77\xee\x78\x8e\x78\xb0\x78\x97\x78\x98\x78\x8c\x78\x89\x78\x7c\x78\x91\x78\x93\x78\x7f\x79\x7a\x79\x7f\x79\x81\x84\x2c\x79\xbd\x7a\x1c\x7a\x1a\x7a\x20\x7a\x14\x7a\x1f\x7a\x1e\x7a\x9f\x7a\xa0\x7b\x77\x7b\xc0\x7b\x60\x7b\x6e\x7b\x67\x7c\xb1\x7c\xb3\x7c\xb5\x7d\x93\x7d\x79\x7d\x91\x7d\x81\x7d\x8f\x7d\x5b\x7f\x6e\x7f\x69\x7f\x6a\x7f\x72\x7f\xa9\x7f\xa8\x7f\xa4\x80\x56\x80\x58\x80\x86\x80\x84\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x71\x81\x70\x81\x78\x81\x65\x81\x6e\x81\x73\x81\x6b\x81\x79\x81\x7a\x81\x66\x82\x05\x82\x47\x84\x82\x84\x77\x84\x3d\x84\x31\x84\x75\x84\x66\x84\x6b\x84\x49\x84\x6c\x84\x5b\x84\x3c\x84\x35\x84\x61\x84\x63\x84\x69\x84\x6d\x84\x46\x86\x5e\x86\x5c\x86\x5f\x86\xf9\x87\x13\x87\x08\x87\x07\x87\x00\x86\xfe\x86\xfb\x87\x02\x87\x03\x87\x06\x87\x0a\x88\x59\x88\xdf\x88\xd4\x88\xd9\x88\xdc\x88\xd8\x88\xdd\x88\xe1\x88\xca\x88\xd5\x88\xd2\x89\x9c\x89\xe3\x8a\x6b\x8a\x72\x8a\x73\x8a\x66\x8a\x69\x8a\x70\x8a\x87", /* 5d80 */ "\x00\x00\x8a\x7c\x8a\x63\x8a\xa0\x8a\x71\x8a\x85\x8a\x6d\x8a\x62\x8a\x6e\x8a\x6c\x8a\x79\x8a\x7b\x8a\x3e\x8a\x68\x8c\x62\x8c\x8a\x8c\x89\x8c\xca\x8c\xc7\x8c\xc8\x8c\xc4\x8c\xb2\x8c\xc3\x8c\xc2\x8c\xc5\x8d\xe1\x8d\xdf\x8d\xe8\x8d\xef\x8d\xf3\x8d\xfa\x8d\xea\x8d\xe4\x8d\xe6\x8e\xb2\x8f\x03\x8f\x09\x8e\xfe\x8f\x0a\x8f\x9f\x8f\xb2\x90\x4b\x90\x4a\x90\x53\x90\x42\x90\x54\x90\x3c\x90\x55\x90\x50\x90\x47\x90\x4f\x90\x4e\x90\x4d\x90\x51\x90\x3e\x90\x41\x91\x12\x91\x17\x91\x6c\x91\x6a\x91\x69\x91\xc9\x92\x37\x92\x57\x92\x38\x92\x3d\x92\x40\x92\x3e\x92\x5b\x92\x4b\x92\x64\x92\x51\x92\x34\x92\x49\x92\x4d\x92\x45\x92\x39\x92\x3f\x92\x5a\x95\x98\x96\x98\x96\x94\x96\x95\x96\xcd\x96\xcb\x96\xc9\x96\xca\x96\xf7\x96\xfb\x96\xf9\x96\xf6\x97\x56\x97\x74\x97\x76\x98\x10\x98\x11\x98\x13\x98\x0a\x98\x12\x98\x0c\x98\xfc\x98\xf4\x98\xfd\x98\xfe\x99\xb3\x99\xb1\x99\xb4\x9a\xe1\x9c\xe9\x9e\x82\x9f\x0e\x9f\x13\x9f\x20\x50\xe7\x50\xee\x50\xe5\x50\xd6\x50\xed\x50\xda\x50\xd5\x50\xcf\x50\xd1\x50\xf1\x50\xce\x50\xe9\x51\x62\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf3\x52\x83\x52\x82\x53\x31\x53\xad\x55\xfe\x56\x00\x56\x1b\x56\x17\x55\xfd\x56\x14\x56\x06\x56\x09\x56\x0d\x56\x0e\x55\xf7\x56\x16\x56\x1f\x56\x08\x56\x10\x55\xf6\x57\x18\x57\x16\x58\x75\x58\x7e\x58\x83\x58\x93\x58\x8a\x58\x79\x58\x85\x58\x7d\x58\xfd\x59\x25\x59\x22\x59\x24\x59\x6a\x59\x69\x5a\xe1\x5a\xe6\x5a\xe9\x5a\xd7\x5a\xd6\x5a\xd8\x5a\xe3\x5b\x75\x5b\xde\x5b\xe7\x5b\xe1\x5b\xe5\x5b\xe6\x5b\xe8\x5b\xe2\x5b\xe4\x5b\xdf\x5c\x0d\x5c\x62\x5d\x84\x5d\x87\x5e\x5b\x5e\x63\x5e\x55\x5e\x57\x5e\x54", /* 5e80 */ "\x00\x00\x5e\xd3\x5e\xd6\x5f\x0a\x5f\x46\x5f\x70\x5f\xb9\x61\x47\x61\x3f\x61\x4b\x61\x77\x61\x62\x61\x63\x61\x5f\x61\x5a\x61\x58\x61\x75\x62\x2a\x64\x87\x64\x58\x64\x54\x64\xa4\x64\x78\x64\x5f\x64\x7a\x64\x51\x64\x67\x64\x34\x64\x6d\x64\x7b\x65\x72\x65\xa1\x65\xd7\x65\xd6\x66\xa2\x66\xa8\x66\x9d\x69\x9c\x69\xa8\x69\x95\x69\xc1\x69\xae\x69\xd3\x69\xcb\x69\x9b\x69\xb7\x69\xbb\x69\xab\x69\xb4\x69\xd0\x69\xcd\x69\xad\x69\xcc\x69\xa6\x69\xc3\x69\xa3\x6b\x49\x6b\x4c\x6c\x33\x6f\x33\x6f\x14\x6e\xfe\x6f\x13\x6e\xf4\x6f\x29\x6f\x3e\x6f\x20\x6f\x2c\x6f\x0f\x6f\x02\x6f\x22\x6e\xff\x6e\xef\x6f\x06\x6f\x31\x6f\x38\x6f\x32\x6f\x23\x6f\x15\x6f\x2b\x6f\x2f\x6f\x88\x6f\x2a\x6e\xec\x6f\x01\x6e\xf2\x6e\xcc\x6e\xf7\x71\x94\x71\x99\x71\x7d\x71\x8a\x71\x84\x71\x92\x72\x3e\x72\x92\x72\x96\x73\x44\x73\x50\x74\x64\x74\x63\x74\x6a\x74\x70\x74\x6d\x75\x04\x75\x91\x76\x27\x76\x0d\x76\x0b\x76\x09\x76\x13\x76\xe1\x76\xe3\x77\x84\x77\x7d\x77\x7f\x77\x61\x78\xc1\x78\x9f\x78\xa7\x78\xb3\x78\xa9\x78\xa3\x79\x8e\x79\x8f\x79\x8d\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x2e\x7a\x31\x7a\xaa\x7a\xa9\x7a\xed\x7a\xef\x7b\xa1\x7b\x95\x7b\x8b\x7b\x75\x7b\x97\x7b\x9d\x7b\x94\x7b\x8f\x7b\xb8\x7b\x87\x7b\x84\x7c\xb9\x7c\xbd\x7c\xbe\x7d\xbb\x7d\xb0\x7d\x9c\x7d\xbd\x7d\xbe\x7d\xa0\x7d\xca\x7d\xb4\x7d\xb2\x7d\xb1\x7d\xba\x7d\xa2\x7d\xbf\x7d\xb5\x7d\xb8\x7d\xad\x7d\xd2\x7d\xc7\x7d\xac\x7f\x70\x7f\xe0\x7f\xe1\x7f\xdf\x80\x5e\x80\x5a\x80\x87\x81\x50\x81\x80\x81\x8f\x81\x88\x81\x8a\x81\x7f\x81\x82\x81\xe7\x81\xfa\x82\x07\x82\x14\x82\x1e\x82\x4b\x84\xc9\x84\xbf\x84\xc6\x84\xc4", /* 5f80 */ "\x00\x00\x84\x99\x84\x9e\x84\xb2\x84\x9c\x84\xcb\x84\xb8\x84\xc0\x84\xd3\x84\x90\x84\xbc\x84\xd1\x84\xca\x87\x3f\x87\x1c\x87\x3b\x87\x22\x87\x25\x87\x34\x87\x18\x87\x55\x87\x37\x87\x29\x88\xf3\x89\x02\x88\xf4\x88\xf9\x88\xf8\x88\xfd\x88\xe8\x89\x1a\x88\xef\x8a\xa6\x8a\x8c\x8a\x9e\x8a\xa3\x8a\x8d\x8a\xa1\x8a\x93\x8a\xa4\x8a\xaa\x8a\xa5\x8a\xa8\x8a\x98\x8a\x91\x8a\x9a\x8a\xa7\x8c\x6a\x8c\x8d\x8c\x8c\x8c\xd3\x8c\xd1\x8c\xd2\x8d\x6b\x8d\x99\x8d\x95\x8d\xfc\x8f\x14\x8f\x12\x8f\x15\x8f\x13\x8f\xa3\x90\x60\x90\x58\x90\x5c\x90\x63\x90\x59\x90\x5e\x90\x62\x90\x5d\x90\x5b\x91\x19\x91\x18\x91\x1e\x91\x75\x91\x78\x91\x77\x91\x74\x92\x78\x92\x80\x92\x85\x92\x98\x92\x96\x92\x7b\x92\x93\x92\x9c\x92\xa8\x92\x7c\x92\x91\x95\xa1\x95\xa8\x95\xa9\x95\xa3\x95\xa5\x95\xa4\x96\x99\x96\x9c\x96\x9b\x96\xcc\x96\xd2\x97\x00\x97\x7c\x97\x85\x97\xf6\x98\x17\x98\x18\x98\xaf\x98\xb1\x99\x03\x99\x05\x99\x0c\x99\x09\x99\xc1\x9a\xaf\x9a\xb0\x9a\xe6\x9b\x41\x9b\x42\x9c\xf4\x9c\xf6\x9c\xf3\x9e\xbc\x9f\x3b\x9f\x4a\x51\x04\x51\x00\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xfb\x50\xf5\x50\xf9\x51\x02\x51\x08\x51\x09\x51\x05\x51\xdc\x52\x87\x52\x88\x52\x89\x52\x8d\x52\x8a\x52\xf0\x53\xb2\x56\x2e\x56\x3b\x56\x39\x56\x32\x56\x3f\x56\x34\x56\x29\x56\x53\x56\x4e\x56\x57\x56\x74\x56\x36\x56\x2f\x56\x30\x58\x80\x58\x9f\x58\x9e\x58\xb3\x58\x9c\x58\xae\x58\xa9\x58\xa6\x59\x6d\x5b\x09\x5a\xfb\x5b\x0b\x5a\xf5\x5b\x0c\x5b\x08\x5b\xee\x5b\xec\x5b\xe9\x5b\xeb\x5c\x64\x5c\x65\x5d\x9d\x5d\x94\x5e\x62\x5e\x5f\x5e\x61\x5e\xe2\x5e\xda\x5e\xdf\x5e\xdd\x5e\xe3\x5e\xe0\x5f\x48\x5f\x71", /* 6080 */ "\x00\x00\x5f\xb7\x5f\xb5\x61\x76\x61\x67\x61\x6e\x61\x5d\x61\x55\x61\x82\x61\x7c\x61\x70\x61\x6b\x61\x7e\x61\xa7\x61\x90\x61\xab\x61\x8e\x61\xac\x61\x9a\x61\xa4\x61\x94\x61\xae\x62\x2e\x64\x69\x64\x6f\x64\x79\x64\x9e\x64\xb2\x64\x88\x64\x90\x64\xb0\x64\xa5\x64\x93\x64\x95\x64\xa9\x64\x92\x64\xae\x64\xad\x64\xab\x64\x9a\x64\xac\x64\x99\x64\xa2\x64\xb3\x65\x75\x65\x77\x65\x78\x66\xae\x66\xab\x66\xb4\x66\xb1\x6a\x23\x6a\x1f\x69\xe8\x6a\x01\x6a\x1e\x6a\x19\x69\xfd\x6a\x21\x6a\x13\x6a\x0a\x69\xf3\x6a\x02\x6a\x05\x69\xed\x6a\x11\x6b\x50\x6b\x4e\x6b\xa4\x6b\xc5\x6b\xc6\x6f\x3f\x6f\x7c\x6f\x84\x6f\x51\x6f\x66\x6f\x54\x6f\x86\x6f\x6d\x6f\x5b\x6f\x78\x6f\x6e\x6f\x8e\x6f\x7a\x6f\x70\x6f\x64\x6f\x97\x6f\x58\x6e\xd5\x6f\x6f\x6f\x60\x6f\x5f\x71\x9f\x71\xac\x71\xb1\x71\xa8\x72\x56\x72\x9b\x73\x4e\x73\x57\x74\x69\x74\x8b\x74\x83\x74\x7e\x74\x80\x75\x7f\x76\x20\x76\x29\x76\x1f\x76\x24\x76\x26\x76\x21\x76\x22\x76\x9a\x76\xba\x76\xe4\x77\x8e\x77\x87\x77\x8c\x77\x91\x77\x8b\x78\xcb\x78\xc5\x78\xba\x78\xca\x78\xbe\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xd5\x78\xbc\x78\xd0\x7a\x3f\x7a\x3c\x7a\x40\x7a\x3d\x7a\x37\x7a\x3b\x7a\xaf\x7a\xae\x7b\xad\x7b\xb1\x7b\xc4\x7b\xb4\x7b\xc6\x7b\xc7\x7b\xc1\x7b\xa0\x7b\xcc\x7c\xca\x7d\xe0\x7d\xf4\x7d\xef\x7d\xfb\x7d\xd8\x7d\xec\x7d\xdd\x7d\xe8\x7d\xe3\x7d\xda\x7d\xde\x7d\xe9\x7d\x9e\x7d\xd9\x7d\xf2\x7d\xf9\x7f\x75\x7f\x77\x7f\xaf\x7f\xe9\x80\x26\x81\x9b\x81\x9c\x81\x9d\x81\xa0\x81\x9a\x81\x98\x85\x17\x85\x3d\x85\x1a\x84\xee\x85\x2c\x85\x2d\x85\x13\x85\x11\x85\x23\x85\x21\x85\x14\x84\xec\x85\x25\x84\xff\x85\x06", /* 6180 */ "\x00\x00\x87\x82\x87\x74\x87\x76\x87\x60\x87\x66\x87\x78\x87\x68\x87\x59\x87\x57\x87\x4c\x87\x53\x88\x5b\x88\x5d\x89\x10\x89\x07\x89\x12\x89\x13\x89\x15\x89\x0a\x8a\xbc\x8a\xd2\x8a\xc7\x8a\xc4\x8a\x95\x8a\xcb\x8a\xf8\x8a\xb2\x8a\xc9\x8a\xc2\x8a\xbf\x8a\xb0\x8a\xd6\x8a\xcd\x8a\xb6\x8a\xb9\x8a\xdb\x8c\x4c\x8c\x4e\x8c\x6c\x8c\xe0\x8c\xde\x8c\xe6\x8c\xe4\x8c\xec\x8c\xed\x8c\xe2\x8c\xe3\x8c\xdc\x8c\xea\x8c\xe1\x8d\x6d\x8d\x9f\x8d\xa3\x8e\x2b\x8e\x10\x8e\x1d\x8e\x22\x8e\x0f\x8e\x29\x8e\x1f\x8e\x21\x8e\x1e\x8e\xba\x8f\x1d\x8f\x1b\x8f\x1f\x8f\x29\x8f\x26\x8f\x2a\x8f\x1c\x8f\x1e\x8f\x25\x90\x69\x90\x6e\x90\x68\x90\x6d\x90\x77\x91\x30\x91\x2d\x91\x27\x91\x31\x91\x87\x91\x89\x91\x8b\x91\x83\x92\xc5\x92\xbb\x92\xb7\x92\xea\x92\xac\x92\xe4\x92\xc1\x92\xb3\x92\xbc\x92\xd2\x92\xc7\x92\xf0\x92\xb2\x95\xad\x95\xb1\x97\x04\x97\x06\x97\x07\x97\x09\x97\x60\x97\x8d\x97\x8b\x97\x8f\x98\x21\x98\x2b\x98\x1c\x98\xb3\x99\x0a\x99\x13\x99\x12\x99\x18\x99\xdd\x99\xd0\x99\xdf\x99\xdb\x99\xd1\x99\xd5\x99\xd2\x99\xd9\x9a\xb7\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xee\x9a\xef\x9b\x27\x9b\x45\x9b\x44\x9b\x77\x9b\x6f\x9d\x06\x9d\x09\x9d\x03\x9e\xa9\x9e\xbe\x9e\xce\x58\xa8\x9f\x52\x51\x12\x51\x18\x51\x14\x51\x10\x51\x15\x51\x80\x51\xaa\x51\xdd\x52\x91\x52\x93\x52\xf3\x56\x59\x56\x6b\x56\x79\x56\x69\x56\x64\x56\x78\x56\x6a\x56\x68\x56\x65\x56\x71\x56\x6f\x56\x6c\x56\x62\x56\x76\x58\xc1\x58\xbe\x58\xc7\x58\xc5\x59\x6e\x5b\x1d\x5b\x34\x5b\x78\x5b\xf0\x5c\x0e\x5f\x4a\x61\xb2\x61\x91\x61\xa9\x61\x8a\x61\xcd\x61\xb6\x61\xbe\x61\xca\x61\xc8\x62\x30\x64\xc5\x64\xc1", /* 6280 */ "\x00\x00\x64\xcb\x64\xbb\x64\xbc\x64\xda\x64\xc4\x64\xc7\x64\xc2\x64\xcd\x64\xbf\x64\xd2\x64\xd4\x64\xbe\x65\x74\x66\xc6\x66\xc9\x66\xb9\x66\xc4\x66\xc7\x66\xb8\x6a\x3d\x6a\x38\x6a\x3a\x6a\x59\x6a\x6b\x6a\x58\x6a\x39\x6a\x44\x6a\x62\x6a\x61\x6a\x4b\x6a\x47\x6a\x35\x6a\x5f\x6a\x48\x6b\x59\x6b\x77\x6c\x05\x6f\xc2\x6f\xb1\x6f\xa1\x6f\xc3\x6f\xa4\x6f\xc1\x6f\xa7\x6f\xb3\x6f\xc0\x6f\xb9\x6f\xb6\x6f\xa6\x6f\xa0\x6f\xb4\x71\xbe\x71\xc9\x71\xd0\x71\xd2\x71\xc8\x71\xd5\x71\xb9\x71\xce\x71\xd9\x71\xdc\x71\xc3\x71\xc4\x73\x68\x74\x9c\x74\xa3\x74\x98\x74\x9f\x74\x9e\x74\xe2\x75\x0c\x75\x0d\x76\x34\x76\x38\x76\x3a\x76\xe7\x76\xe5\x77\xa0\x77\x9e\x77\x9f\x77\xa5\x78\xe8\x78\xda\x78\xec\x78\xe7\x79\xa6\x7a\x4d\x7a\x4e\x7a\x46\x7a\x4c\x7a\x4b\x7a\xba\x7b\xd9\x7c\x11\x7b\xc9\x7b\xe4\x7b\xdb\x7b\xe1\x7b\xe9\x7b\xe6\x7c\xd5\x7c\xd6\x7e\x0a\x7e\x11\x7e\x08\x7e\x1b\x7e\x23\x7e\x1e\x7e\x1d\x7e\x09\x7e\x10\x7f\x79\x7f\xb2\x7f\xf0\x7f\xf1\x7f\xee\x80\x28\x81\xb3\x81\xa9\x81\xa8\x81\xfb\x82\x08\x82\x58\x82\x59\x85\x4a\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x59\x85\x48\x85\x68\x85\x69\x85\x43\x85\x49\x85\x6d\x85\x6a\x85\x5e\x87\x83\x87\x9f\x87\x9e\x87\xa2\x87\x8d\x88\x61\x89\x2a\x89\x32\x89\x25\x89\x2b\x89\x21\x89\xaa\x89\xa6\x8a\xe6\x8a\xfa\x8a\xeb\x8a\xf1\x8b\x00\x8a\xdc\x8a\xe7\x8a\xee\x8a\xfe\x8b\x01\x8b\x02\x8a\xf7\x8a\xed\x8a\xf3\x8a\xf6\x8a\xfc\x8c\x6b\x8c\x6d\x8c\x93\x8c\xf4\x8e\x44\x8e\x31\x8e\x34\x8e\x42\x8e\x39\x8e\x35\x8f\x3b\x8f\x2f\x8f\x38\x8f\x33\x8f\xa8\x8f\xa6\x90\x75\x90\x74\x90\x78\x90\x72\x90\x7c\x90\x7a\x91\x34\x91\x92\x93\x20", /* 6380 */ "\x00\x00\x93\x36\x92\xf8\x93\x33\x93\x2f\x93\x22\x92\xfc\x93\x2b\x93\x04\x93\x1a\x93\x10\x93\x26\x93\x21\x93\x15\x93\x2e\x93\x19\x95\xbb\x96\xa7\x96\xa8\x96\xaa\x96\xd5\x97\x0e\x97\x11\x97\x16\x97\x0d\x97\x13\x97\x0f\x97\x5b\x97\x5c\x97\x66\x97\x98\x98\x30\x98\x38\x98\x3b\x98\x37\x98\x2d\x98\x39\x98\x24\x99\x10\x99\x28\x99\x1e\x99\x1b\x99\x21\x99\x1a\x99\xed\x99\xe2\x99\xf1\x9a\xb8\x9a\xbc\x9a\xfb\x9a\xed\x9b\x28\x9b\x91\x9d\x15\x9d\x23\x9d\x26\x9d\x28\x9d\x12\x9d\x1b\x9e\xd8\x9e\xd4\x9f\x8d\x9f\x9c\x51\x2a\x51\x1f\x51\x21\x51\x32\x52\xf5\x56\x8e\x56\x80\x56\x90\x56\x85\x56\x87\x56\x8f\x58\xd5\x58\xd3\x58\xd1\x58\xce\x5b\x30\x5b\x2a\x5b\x24\x5b\x7a\x5c\x37\x5c\x68\x5d\xbc\x5d\xba\x5d\xbd\x5d\xb8\x5e\x6b\x5f\x4c\x5f\xbd\x61\xc9\x61\xc2\x61\xc7\x61\xe6\x61\xcb\x62\x32\x62\x34\x64\xce\x64\xca\x64\xd8\x64\xe0\x64\xf0\x64\xe6\x64\xec\x64\xf1\x64\xe2\x64\xed\x65\x82\x65\x83\x66\xd9\x66\xd6\x6a\x80\x6a\x94\x6a\x84\x6a\xa2\x6a\x9c\x6a\xdb\x6a\xa3\x6a\x7e\x6a\x97\x6a\x90\x6a\xa0\x6b\x5c\x6b\xae\x6b\xda\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x08\x6f\xd8\x6f\xf1\x6f\xdf\x6f\xe0\x6f\xdb\x6f\xe4\x6f\xeb\x6f\xef\x6f\x80\x6f\xec\x6f\xe1\x6f\xe9\x6f\xd5\x6f\xee\x6f\xf0\x71\xe7\x71\xdf\x71\xee\x71\xe6\x71\xe5\x71\xed\x71\xec\x71\xf4\x71\xe0\x72\x35\x72\x46\x73\x70\x73\x72\x74\xa9\x74\xb0\x74\xa6\x74\xa8\x76\x46\x76\x42\x76\x4c\x76\xea\x77\xb3\x77\xaa\x77\xb0\x77\xac\x77\xa7\x77\xad\x77\xef\x78\xf7\x78\xfa\x78\xf4\x78\xef\x79\x01\x79\xa7\x79\xaa\x7a\x57\x7a\xbf\x7c\x07\x7c\x0d\x7b\xfe\x7b\xf7\x7c\x0c\x7b\xe0\x7c\xe0\x7c\xdc\x7c\xde\x7c\xe2", /* 6480 */ "\x00\x00\x7c\xdf\x7c\xd9\x7c\xdd\x7e\x2e\x7e\x3e\x7e\x46\x7e\x37\x7e\x32\x7e\x43\x7e\x2b\x7e\x3d\x7e\x31\x7e\x45\x7e\x41\x7e\x34\x7e\x39\x7e\x48\x7e\x35\x7e\x3f\x7e\x2f\x7f\x44\x7f\xf3\x7f\xfc\x80\x71\x80\x72\x80\x70\x80\x6f\x80\x73\x81\xc6\x81\xc3\x81\xba\x81\xc2\x81\xc0\x81\xbf\x81\xbd\x81\xc9\x81\xbe\x81\xe8\x82\x09\x82\x71\x85\xaa\x85\x84\x85\x7e\x85\x9c\x85\x91\x85\x94\x85\xaf\x85\x9b\x85\x87\x85\xa8\x85\x8a\x86\x67\x87\xc0\x87\xd1\x87\xb3\x87\xd2\x87\xc6\x87\xab\x87\xbb\x87\xba\x87\xc8\x87\xcb\x89\x3b\x89\x36\x89\x44\x89\x38\x89\x3d\x89\xac\x8b\x0e\x8b\x17\x8b\x19\x8b\x1b\x8b\x0a\x8b\x20\x8b\x1d\x8b\x04\x8b\x10\x8c\x41\x8c\x3f\x8c\x73\x8c\xfa\x8c\xfd\x8c\xfc\x8c\xf8\x8c\xfb\x8d\xa8\x8e\x49\x8e\x4b\x8e\x48\x8e\x4a\x8f\x44\x8f\x3e\x8f\x42\x8f\x45\x8f\x3f\x90\x7f\x90\x7d\x90\x84\x90\x81\x90\x82\x90\x80\x91\x39\x91\xa3\x91\x9e\x91\x9c\x93\x4d\x93\x82\x93\x28\x93\x75\x93\x4a\x93\x65\x93\x4b\x93\x18\x93\x7e\x93\x6c\x93\x5b\x93\x70\x93\x5a\x93\x54\x95\xca\x95\xcb\x95\xcc\x95\xc8\x95\xc6\x96\xb1\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xb8\x96\xd6\x97\x1c\x97\x1e\x97\xa0\x97\xd3\x98\x46\x98\xb6\x99\x35\x9a\x01\x99\xff\x9b\xae\x9b\xab\x9b\xaa\x9b\xad\x9d\x3b\x9d\x3f\x9e\x8b\x9e\xcf\x9e\xde\x9e\xdc\x9e\xdd\x9e\xdb\x9f\x3e\x9f\x4b\x53\xe2\x56\x95\x56\xae\x58\xd9\x58\xd8\x5b\x38\x5f\x5e\x61\xe3\x62\x33\x64\xf4\x64\xf2\x64\xfe\x65\x06\x64\xfa\x64\xfb\x64\xf7\x65\xb7\x66\xdc\x67\x26\x6a\xb3\x6a\xac\x6a\xc3\x6a\xbb\x6a\xb8\x6a\xc2\x6a\xae\x6a\xaf\x6b\x5f\x6b\x78\x6b\xaf\x70\x09\x70\x0b\x6f\xfe\x70\x06\x6f\xfa\x70\x11\x70\x0f\x71\xfb", /* 6580 */ "\x00\x00\x71\xfc\x71\xfe\x71\xf8\x73\x77\x73\x75\x74\xa7\x74\xbf\x75\x15\x76\x56\x76\x58\x76\x52\x77\xbd\x77\xbf\x77\xbb\x77\xbc\x79\x0e\x79\xae\x7a\x61\x7a\x62\x7a\x60\x7a\xc4\x7a\xc5\x7c\x2b\x7c\x27\x7c\x2a\x7c\x1e\x7c\x23\x7c\x21\x7c\xe7\x7e\x54\x7e\x55\x7e\x5e\x7e\x5a\x7e\x61\x7e\x52\x7e\x59\x7f\x48\x7f\xf9\x7f\xfb\x80\x77\x80\x76\x81\xcd\x81\xcf\x82\x0a\x85\xcf\x85\xa9\x85\xcd\x85\xd0\x85\xc9\x85\xb0\x85\xba\x85\xb9\x85\xa6\x87\xef\x87\xec\x87\xf2\x87\xe0\x89\x86\x89\xb2\x89\xf4\x8b\x28\x8b\x39\x8b\x2c\x8b\x2b\x8c\x50\x8d\x05\x8e\x59\x8e\x63\x8e\x66\x8e\x64\x8e\x5f\x8e\x55\x8e\xc0\x8f\x49\x8f\x4d\x90\x87\x90\x83\x90\x88\x91\xab\x91\xac\x91\xd0\x93\x94\x93\x8a\x93\x96\x93\xa2\x93\xb3\x93\xae\x93\xac\x93\xb0\x93\x98\x93\x9a\x93\x97\x95\xd4\x95\xd6\x95\xd0\x95\xd5\x96\xe2\x96\xdc\x96\xd9\x96\xdb\x96\xde\x97\x24\x97\xa3\x97\xa6\x97\xad\x97\xf9\x98\x4d\x98\x4f\x98\x4c\x98\x4e\x98\x53\x98\xba\x99\x3e\x99\x3f\x99\x3d\x99\x2e\x99\xa5\x9a\x0e\x9a\xc1\x9b\x03\x9b\x06\x9b\x4f\x9b\x4e\x9b\x4d\x9b\xca\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xc9\x9b\xfd\x9b\xc8\x9b\xc0\x9d\x51\x9d\x5d\x9d\x60\x9e\xe0\x9f\x15\x9f\x2c\x51\x33\x56\xa5\x58\xde\x58\xdf\x58\xe2\x5b\xf5\x9f\x90\x5e\xec\x61\xf2\x61\xf7\x61\xf6\x61\xf5\x65\x00\x65\x0f\x66\xe0\x66\xdd\x6a\xe5\x6a\xdd\x6a\xda\x6a\xd3\x70\x1b\x70\x1f\x70\x28\x70\x1a\x70\x1d\x70\x15\x70\x18\x72\x06\x72\x0d\x72\x58\x72\xa2\x73\x78\x73\x7a\x74\xbd\x74\xca\x74\xe3\x75\x87\x75\x86\x76\x5f\x76\x61\x77\xc7\x79\x19\x79\xb1\x7a\x6b\x7a\x69\x7c\x3e\x7c\x3f\x7c\x38\x7c\x3d\x7c\x37\x7c\x40\x7e\x6b\x7e\x6d", /* 6680 */ "\x00\x00\x7e\x79\x7e\x69\x7e\x6a\x7f\x85\x7e\x73\x7f\xb6\x7f\xb9\x7f\xb8\x81\xd8\x85\xe9\x85\xdd\x85\xea\x85\xd5\x85\xe4\x85\xe5\x85\xf7\x87\xfb\x88\x05\x88\x0d\x87\xf9\x87\xfe\x89\x60\x89\x5f\x89\x56\x89\x5e\x8b\x41\x8b\x5c\x8b\x58\x8b\x49\x8b\x5a\x8b\x4e\x8b\x4f\x8b\x46\x8b\x59\x8d\x08\x8d\x0a\x8e\x7c\x8e\x72\x8e\x87\x8e\x76\x8e\x6c\x8e\x7a\x8e\x74\x8f\x54\x8f\x4e\x8f\xad\x90\x8a\x90\x8b\x91\xb1\x91\xae\x93\xe1\x93\xd1\x93\xdf\x93\xc3\x93\xc8\x93\xdc\x93\xdd\x93\xd6\x93\xe2\x93\xcd\x93\xd8\x93\xe4\x93\xd7\x93\xe8\x95\xdc\x96\xb4\x96\xe3\x97\x2a\x97\x27\x97\x61\x97\xdc\x97\xfb\x98\x5e\x98\x58\x98\x5b\x98\xbc\x99\x45\x99\x49\x9a\x16\x9a\x19\x9b\x0d\x9b\xe8\x9b\xe7\x9b\xd6\x9b\xdb\x9d\x89\x9d\x61\x9d\x72\x9d\x6a\x9d\x6c\x9e\x92\x9e\x97\x9e\x93\x9e\xb4\x52\xf8\x56\xa8\x56\xb7\x56\xb6\x56\xb4\x56\xbc\x58\xe4\x5b\x40\x5b\x43\x5b\x7d\x5b\xf6\x5d\xc9\x61\xf8\x61\xfa\x65\x18\x65\x14\x65\x19\x66\xe6\x67\x27\x6a\xec\x70\x3e\x70\x30\x70\x32\x72\x10\x73\x7b\x74\xcf\x76\x62\x76\x65\x79\x26\x79\x2a\x79\x2c\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x2b\x7a\xc7\x7a\xf6\x7c\x4c\x7c\x43\x7c\x4d\x7c\xef\x7c\xf0\x8f\xae\x7e\x7d\x7e\x7c\x7e\x82\x7f\x4c\x80\x00\x81\xda\x82\x66\x85\xfb\x85\xf9\x86\x11\x85\xfa\x86\x06\x86\x0b\x86\x07\x86\x0a\x88\x14\x88\x15\x89\x64\x89\xba\x89\xf8\x8b\x70\x8b\x6c\x8b\x66\x8b\x6f\x8b\x5f\x8b\x6b\x8d\x0f\x8d\x0d\x8e\x89\x8e\x81\x8e\x85\x8e\x82\x91\xb4\x91\xcb\x94\x18\x94\x03\x93\xfd\x95\xe1\x97\x30\x98\xc4\x99\x52\x99\x51\x99\xa8\x9a\x2b\x9a\x30\x9a\x37\x9a\x35\x9c\x13\x9c\x0d\x9e\x79\x9e\xb5\x9e\xe8\x9f\x2f\x9f\x5f", /* 6780 */ "\x00\x00\x9f\x63\x9f\x61\x51\x37\x51\x38\x56\xc1\x56\xc0\x56\xc2\x59\x14\x5c\x6c\x5d\xcd\x61\xfc\x61\xfe\x65\x1d\x65\x1c\x65\x95\x66\xe9\x6a\xfb\x6b\x04\x6a\xfa\x6b\xb2\x70\x4c\x72\x1b\x72\xa7\x74\xd6\x74\xd4\x76\x69\x77\xd3\x7c\x50\x7e\x8f\x7e\x8c\x7f\xbc\x86\x17\x86\x2d\x86\x1a\x88\x23\x88\x22\x88\x21\x88\x1f\x89\x6a\x89\x6c\x89\xbd\x8b\x74\x8b\x77\x8b\x7d\x8d\x13\x8e\x8a\x8e\x8d\x8e\x8b\x8f\x5f\x8f\xaf\x91\xba\x94\x2e\x94\x33\x94\x35\x94\x3a\x94\x38\x94\x32\x94\x2b\x95\xe2\x97\x38\x97\x39\x97\x32\x97\xff\x98\x67\x98\x65\x99\x57\x9a\x45\x9a\x43\x9a\x40\x9a\x3e\x9a\xcf\x9b\x54\x9b\x51\x9c\x2d\x9c\x25\x9d\xaf\x9d\xb4\x9d\xc2\x9d\xb8\x9e\x9d\x9e\xef\x9f\x19\x9f\x5c\x9f\x66\x9f\x67\x51\x3c\x51\x3b\x56\xc8\x56\xca\x56\xc9\x5b\x7f\x5d\xd4\x5d\xd2\x5f\x4e\x61\xff\x65\x24\x6b\x0a\x6b\x61\x70\x51\x70\x58\x73\x80\x74\xe4\x75\x8a\x76\x6e\x76\x6c\x79\xb3\x7c\x60\x7c\x5f\x80\x7e\x80\x7d\x81\xdf\x89\x72\x89\x6f\x89\xfc\x8b\x80\x8d\x16\x8d\x17\x8e\x91\x8e\x93\x8f\x61\x91\x48\x94\x44\x94\x51\x94\x52\x97\x3d\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x3e\x97\xc3\x97\xc1\x98\x6b\x99\x55\x9a\x55\x9a\x4d\x9a\xd2\x9b\x1a\x9c\x49\x9c\x31\x9c\x3e\x9c\x3b\x9d\xd3\x9d\xd7\x9f\x34\x9f\x6c\x9f\x6a\x9f\x94\x56\xcc\x5d\xd6\x62\x00\x65\x23\x65\x2b\x65\x2a\x66\xec\x6b\x10\x74\xda\x7a\xca\x7c\x64\x7c\x63\x7c\x65\x7e\x93\x7e\x96\x7e\x94\x81\xe2\x86\x38\x86\x3f\x88\x31\x8b\x8a\x90\x90\x90\x8f\x94\x63\x94\x60\x94\x64\x97\x68\x98\x6f\x99\x5c\x9a\x5a\x9a\x5b\x9a\x57\x9a\xd3\x9a\xd4\x9a\xd1\x9c\x54\x9c\x57\x9c\x56\x9d\xe5\x9e\x9f\x9e\xf4\x56\xd1\x58\xe9\x65\x2c", /* 6880 */ "\x00\x00\x70\x5e\x76\x71\x76\x72\x77\xd7\x7f\x50\x7f\x88\x88\x36\x88\x39\x88\x62\x8b\x93\x8b\x92\x8b\x96\x82\x77\x8d\x1b\x91\xc0\x94\x6a\x97\x42\x97\x48\x97\x44\x97\xc6\x98\x70\x9a\x5f\x9b\x22\x9b\x58\x9c\x5f\x9d\xf9\x9d\xfa\x9e\x7c\x9e\x7d\x9f\x07\x9f\x77\x9f\x72\x5e\xf3\x6b\x16\x70\x63\x7c\x6c\x7c\x6e\x88\x3b\x89\xc0\x8e\xa1\x91\xc1\x94\x72\x94\x70\x98\x71\x99\x5e\x9a\xd6\x9b\x23\x9e\xcc\x70\x64\x77\xda\x8b\x9a\x94\x77\x97\xc9\x9a\x62\x9a\x65\x7e\x9c\x8b\x9c\x8e\xaa\x91\xc5\x94\x7d\x94\x7e\x94\x7c\x9c\x77\x9c\x78\x9e\xf7\x8c\x54\x94\x7f\x9e\x1a\x72\x28\x9a\x6a\x9b\x31\x9e\x1b\x9e\x1e\x7c\x72\x64\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x42\x4e\x5c\x51\xf5\x53\x1a\x53\x82\x4e\x07\x4e\x0c\x4e\x47\x4e\x8d\x56\xd7\xfa\x0c\x5c\x6e\x5f\x73\x4e\x0f\x51\x87\x4e\x0e\x4e\x2e\x4e\x93\x4e\xc2\x4e\xc9\x4e\xc8\x51\x98\x52\xfc\x53\x6c\x53\xb9\x57\x20\x59\x03\x59\x2c\x5c\x10\x5d\xff\x65\xe1\x6b\xb3\x6b\xcc\x6c\x14\x72\x3f\x4e\x31\x4e\x3c\x4e\xe8\x4e\xdc\x4e\xe9\x4e\xe1\x4e\xdd\x4e\xda\x52\x0c\x53\x1c\x53\x4c\x57\x22\x57\x23\x59\x17\x59\x2f\x5b\x81\x5b\x84\x5c\x12\x5c\x3b\x5c\x74\x5c\x73\x5e\x04\x5e\x80\x5e\x82\x5f\xc9\x62\x09\x62\x50\x6c\x15", /* 6980 */ "\x00\x00\x6c\x36\x6c\x43\x6c\x3f\x6c\x3b\x72\xae\x72\xb0\x73\x8a\x79\xb8\x80\x8a\x96\x1e\x4f\x0e\x4f\x18\x4f\x2c\x4e\xf5\x4f\x14\x4e\xf1\x4f\x00\x4e\xf7\x4f\x08\x4f\x1d\x4f\x02\x4f\x05\x4f\x22\x4f\x13\x4f\x04\x4e\xf4\x4f\x12\x51\xb1\x52\x13\x52\x09\x52\x10\x52\xa6\x53\x22\x53\x1f\x53\x4d\x53\x8a\x54\x07\x56\xe1\x56\xdf\x57\x2e\x57\x2a\x57\x34\x59\x3c\x59\x80\x59\x7c\x59\x85\x59\x7b\x59\x7e\x59\x77\x59\x7f\x5b\x56\x5c\x15\x5c\x25\x5c\x7c\x5c\x7a\x5c\x7b\x5c\x7e\x5d\xdf\x5e\x75\x5e\x84\x5f\x02\x5f\x1a\x5f\x74\x5f\xd5\x5f\xd4\x5f\xcf\x62\x65\x62\x5c\x62\x5e\x62\x64\x62\x61\x62\x66\x62\x62\x62\x59\x62\x60\x62\x5a\x65\xef\x65\xee\x67\x3e\x67\x39\x67\x38\x67\x3b\x67\x3a\x67\x3f\x67\x3c\x67\x33\x6c\x18\x6c\x46\x6c\x52\x6c\x5c\x6c\x4f\x6c\x4a\x6c\x54\x6c\x4b\x6c\x4c\x70\x71\x72\x5e\x72\xb4\x72\xb5\x73\x8e\x75\x2a\x76\x7f\x7a\x75\x7f\x51\x82\x78\x82\x7c\x82\x80\x82\x7d\x82\x7f\x86\x4d\x89\x7e\x90\x99\x90\x97\x90\x98\x90\x9b\x90\x94\x96\x22\x96\x24\x96\x20\x96\x23\x4f\x56\x4f\x3b\x4f\x62\x4f\x49\x4f\x53\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x64\x4f\x3e\x4f\x67\x4f\x52\x4f\x5f\x4f\x41\x4f\x58\x4f\x2d\x4f\x33\x4f\x3f\x4f\x61\x51\x8f\x51\xb9\x52\x1c\x52\x1e\x52\x21\x52\xad\x52\xae\x53\x09\x53\x63\x53\x72\x53\x8e\x53\x8f\x54\x30\x54\x37\x54\x2a\x54\x54\x54\x45\x54\x19\x54\x1c\x54\x25\x54\x18\x54\x3d\x54\x4f\x54\x41\x54\x28\x54\x24\x54\x47\x56\xee\x56\xe7\x56\xe5\x57\x41\x57\x45\x57\x4c\x57\x49\x57\x4b\x57\x52\x59\x06\x59\x40\x59\xa6\x59\x98\x59\xa0\x59\x97\x59\x8e\x59\xa2\x59\x90\x59\x8f\x59\xa7\x59\xa1\x5b\x8e\x5b\x92\x5c\x28\x5c\x2a", /* 6a80 */ "\x00\x00\x5c\x8d\x5c\x8f\x5c\x88\x5c\x8b\x5c\x89\x5c\x92\x5c\x8a\x5c\x86\x5c\x93\x5c\x95\x5d\xe0\x5e\x0a\x5e\x0e\x5e\x8b\x5e\x89\x5e\x8c\x5e\x88\x5e\x8d\x5f\x05\x5f\x1d\x5f\x78\x5f\x76\x5f\xd2\x5f\xd1\x5f\xd0\x5f\xed\x5f\xe8\x5f\xee\x5f\xf3\x5f\xe1\x5f\xe4\x5f\xe3\x5f\xfa\x5f\xef\x5f\xf7\x5f\xfb\x60\x00\x5f\xf4\x62\x3a\x62\x83\x62\x8c\x62\x8e\x62\x8f\x62\x94\x62\x87\x62\x71\x62\x7b\x62\x7a\x62\x70\x62\x81\x62\x88\x62\x77\x62\x7d\x62\x72\x62\x74\x65\x37\x65\xf0\x65\xf4\x65\xf3\x65\xf2\x65\xf5\x67\x45\x67\x47\x67\x59\x67\x55\x67\x4c\x67\x48\x67\x5d\x67\x4d\x67\x5a\x67\x4b\x6b\xd0\x6c\x19\x6c\x1a\x6c\x78\x6c\x67\x6c\x6b\x6c\x84\x6c\x8b\x6c\x8f\x6c\x71\x6c\x6f\x6c\x69\x6c\x9a\x6c\x6d\x6c\x87\x6c\x95\x6c\x9c\x6c\x66\x6c\x73\x6c\x65\x6c\x7b\x6c\x8e\x70\x74\x70\x7a\x72\x63\x72\xbf\x72\xbd\x72\xc3\x72\xc6\x72\xc1\x72\xba\x72\xc5\x73\x95\x73\x97\x73\x93\x73\x94\x73\x92\x75\x3a\x75\x39\x75\x94\x75\x95\x76\x81\x79\x3d\x80\x34\x80\x95\x80\x99\x80\x90\x80\x92\x80\x9c\x82\x90\x82\x8f\x82\x85\x82\x8e\x82\x91\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x93\x82\x8a\x82\x83\x82\x84\x8c\x78\x8f\xc9\x8f\xbf\x90\x9f\x90\xa1\x90\xa5\x90\x9e\x90\xa7\x90\xa0\x96\x30\x96\x28\x96\x2f\x96\x2d\x4e\x33\x4f\x98\x4f\x7c\x4f\x85\x4f\x7d\x4f\x80\x4f\x87\x4f\x76\x4f\x74\x4f\x89\x4f\x84\x4f\x77\x4f\x4c\x4f\x97\x4f\x6a\x4f\x9a\x4f\x79\x4f\x81\x4f\x78\x4f\x90\x4f\x9c\x4f\x94\x4f\x9e\x4f\x92\x4f\x82\x4f\x95\x4f\x6b\x4f\x6e\x51\x9e\x51\xbc\x51\xbe\x52\x35\x52\x32\x52\x33\x52\x46\x52\x31\x52\xbc\x53\x0a\x53\x0b\x53\x3c\x53\x92\x53\x94\x54\x87\x54\x7f\x54\x81\x54\x91", /* 6b80 */ "\x00\x00\x54\x82\x54\x88\x54\x6b\x54\x7a\x54\x7e\x54\x65\x54\x6c\x54\x74\x54\x66\x54\x8d\x54\x6f\x54\x61\x54\x60\x54\x98\x54\x63\x54\x67\x54\x64\x56\xf7\x56\xf9\x57\x6f\x57\x72\x57\x6d\x57\x6b\x57\x71\x57\x70\x57\x76\x57\x80\x57\x75\x57\x7b\x57\x73\x57\x74\x57\x62\x57\x68\x57\x7d\x59\x0c\x59\x45\x59\xb5\x59\xba\x59\xcf\x59\xce\x59\xb2\x59\xcc\x59\xc1\x59\xb6\x59\xbc\x59\xc3\x59\xd6\x59\xb1\x59\xbd\x59\xc0\x59\xc8\x59\xb4\x59\xc7\x5b\x62\x5b\x65\x5b\x93\x5b\x95\x5c\x44\x5c\x47\x5c\xae\x5c\xa4\x5c\xa0\x5c\xb5\x5c\xaf\x5c\xa8\x5c\xac\x5c\x9f\x5c\xa3\x5c\xad\x5c\xa2\x5c\xaa\x5c\xa7\x5c\x9d\x5c\xa5\x5c\xb6\x5c\xb0\x5c\xa6\x5e\x17\x5e\x14\x5e\x19\x5f\x28\x5f\x22\x5f\x23\x5f\x24\x5f\x54\x5f\x82\x5f\x7e\x5f\x7d\x5f\xde\x5f\xe5\x60\x2d\x60\x26\x60\x19\x60\x32\x60\x0b\x60\x34\x60\x0a\x60\x17\x60\x33\x60\x1a\x60\x1e\x60\x2c\x60\x22\x60\x0d\x60\x10\x60\x2e\x60\x13\x60\x11\x60\x0c\x60\x09\x60\x1c\x62\x14\x62\x3d\x62\xad\x62\xb4\x62\xd1\x62\xbe\x62\xaa\x62\xb6\x62\xca\x62\xae\x62\xb3\x62\xaf\x62\xbb\x62\xa9\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb0\x62\xb8\x65\x3d\x65\xa8\x65\xbb\x66\x09\x65\xfc\x66\x04\x66\x12\x66\x08\x65\xfb\x66\x03\x66\x0b\x66\x0d\x66\x05\x65\xfd\x66\x11\x66\x10\x66\xf6\x67\x0a\x67\x85\x67\x6c\x67\x8e\x67\x92\x67\x76\x67\x7b\x67\x98\x67\x86\x67\x84\x67\x74\x67\x8d\x67\x8c\x67\x7a\x67\x9f\x67\x91\x67\x99\x67\x83\x67\x7d\x67\x81\x67\x78\x67\x79\x67\x94\x6b\x25\x6b\x80\x6b\x7e\x6b\xde\x6c\x1d\x6c\x93\x6c\xec\x6c\xeb\x6c\xee\x6c\xd9\x6c\xb6\x6c\xd4\x6c\xad\x6c\xe7\x6c\xb7\x6c\xd0\x6c\xc2\x6c\xba\x6c\xc3\x6c\xc6\x6c\xed", /* 6c80 */ "\x00\x00\x6c\xf2\x6c\xd2\x6c\xdd\x6c\xb4\x6c\x8a\x6c\x9d\x6c\x80\x6c\xde\x6c\xc0\x6d\x30\x6c\xcd\x6c\xc7\x6c\xb0\x6c\xf9\x6c\xcf\x6c\xe9\x6c\xd1\x70\x94\x70\x98\x70\x85\x70\x93\x70\x86\x70\x84\x70\x91\x70\x96\x70\x82\x70\x9a\x70\x83\x72\x6a\x72\xd6\x72\xcb\x72\xd8\x72\xc9\x72\xdc\x72\xd2\x72\xd4\x72\xda\x72\xcc\x72\xd1\x73\xa4\x73\xa1\x73\xad\x73\xa6\x73\xa2\x73\xa0\x73\xac\x73\x9d\x74\xdd\x74\xe8\x75\x3f\x75\x40\x75\x3e\x75\x8c\x75\x98\x76\xaf\x76\xf3\x76\xf1\x76\xf0\x76\xf5\x77\xf8\x77\xfc\x77\xf9\x77\xfb\x77\xfa\x77\xf7\x79\x42\x79\x3f\x79\xc5\x7a\x78\x7a\x7b\x7a\xfb\x7c\x75\x7c\xfd\x80\x35\x80\x8f\x80\xae\x80\xa3\x80\xb8\x80\xb5\x80\xad\x82\x20\x82\xa0\x82\xc0\x82\xab\x82\x9a\x82\x98\x82\x9b\x82\xb5\x82\xa7\x82\xae\x82\xbc\x82\x9e\x82\xba\x82\xb4\x82\xa8\x82\xa1\x82\xa9\x82\xc2\x82\xa4\x82\xc3\x82\xb6\x82\xa2\x86\x70\x86\x6f\x86\x6d\x86\x6e\x8c\x56\x8f\xd2\x8f\xcb\x8f\xd3\x8f\xcd\x8f\xd6\x8f\xd5\x8f\xd7\x90\xb2\x90\xb4\x90\xaf\x90\xb3\x90\xb0\x96\x39\x96\x3d\x96\x3c\x96\x3a\x96\x43\x4f\xcd\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc5\x4f\xd3\x4f\xb2\x4f\xc9\x4f\xcb\x4f\xc1\x4f\xd4\x4f\xdc\x4f\xd9\x4f\xbb\x4f\xb3\x4f\xdb\x4f\xc7\x4f\xd6\x4f\xba\x4f\xc0\x4f\xb9\x4f\xec\x52\x44\x52\x49\x52\xc0\x52\xc2\x53\x3d\x53\x7c\x53\x97\x53\x96\x53\x99\x53\x98\x54\xba\x54\xa1\x54\xad\x54\xa5\x54\xcf\x54\xc3\x83\x0d\x54\xb7\x54\xae\x54\xd6\x54\xb6\x54\xc5\x54\xc6\x54\xa0\x54\x70\x54\xbc\x54\xa2\x54\xbe\x54\x72\x54\xde\x54\xb0\x57\xb5\x57\x9e\x57\x9f\x57\xa4\x57\x8c\x57\x97\x57\x9d\x57\x9b\x57\x94\x57\x98\x57\x8f\x57\x99\x57\xa5\x57\x9a", /* 6d80 */ "\x00\x00\x57\x95\x58\xf4\x59\x0d\x59\x53\x59\xe1\x59\xde\x59\xee\x5a\x00\x59\xf1\x59\xdd\x59\xfa\x59\xfd\x59\xfc\x59\xf6\x59\xe4\x59\xf2\x59\xf7\x59\xdb\x59\xe9\x59\xf3\x59\xf5\x59\xe0\x59\xfe\x59\xf4\x59\xed\x5b\xa8\x5c\x4c\x5c\xd0\x5c\xd8\x5c\xcc\x5c\xd7\x5c\xcb\x5c\xdb\x5c\xde\x5c\xda\x5c\xc9\x5c\xc7\x5c\xca\x5c\xd6\x5c\xd3\x5c\xd4\x5c\xcf\x5c\xc8\x5c\xc6\x5c\xce\x5c\xdf\x5c\xf8\x5d\xf9\x5e\x21\x5e\x22\x5e\x23\x5e\x20\x5e\x24\x5e\xb0\x5e\xa4\x5e\xa2\x5e\x9b\x5e\xa3\x5e\xa5\x5f\x07\x5f\x2e\x5f\x56\x5f\x86\x60\x37\x60\x39\x60\x54\x60\x72\x60\x5e\x60\x45\x60\x53\x60\x47\x60\x49\x60\x5b\x60\x4c\x60\x40\x60\x42\x60\x5f\x60\x24\x60\x44\x60\x58\x60\x66\x60\x6e\x62\x42\x62\x43\x62\xcf\x63\x0d\x63\x0b\x62\xf5\x63\x0e\x63\x03\x62\xeb\x62\xf9\x63\x0f\x63\x0c\x62\xf8\x62\xf6\x63\x00\x63\x13\x63\x14\x62\xfa\x63\x15\x62\xfb\x62\xf0\x65\x41\x65\x43\x65\xaa\x65\xbf\x66\x36\x66\x21\x66\x32\x66\x35\x66\x1c\x66\x26\x66\x22\x66\x33\x66\x2b\x66\x3a\x66\x1d\x66\x34\x66\x39\x66\x2e\x67\x0f\x67\x10\x67\xc1\x67\xf2\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc8\x67\xba\x67\xdc\x67\xbb\x67\xf8\x67\xd8\x67\xc0\x67\xb7\x67\xc5\x67\xeb\x67\xe4\x67\xdf\x67\xb5\x67\xcd\x67\xb3\x67\xf7\x67\xf6\x67\xee\x67\xe3\x67\xc2\x67\xb9\x67\xce\x67\xe7\x67\xf0\x67\xb2\x67\xfc\x67\xc6\x67\xed\x67\xcc\x67\xae\x67\xe6\x67\xdb\x67\xfa\x67\xc9\x67\xca\x67\xc3\x67\xea\x67\xcb\x6b\x28\x6b\x82\x6b\x84\x6b\xb6\x6b\xd6\x6b\xd8\x6b\xe0\x6c\x20\x6c\x21\x6d\x28\x6d\x34\x6d\x2d\x6d\x1f\x6d\x3c\x6d\x3f\x6d\x12\x6d\x0a\x6c\xda\x6d\x33\x6d\x04\x6d\x19\x6d\x3a\x6d\x1a\x6d\x11\x6d\x00", /* 6e80 */ "\x00\x00\x6d\x1d\x6d\x42\x6d\x01\x6d\x18\x6d\x37\x6d\x03\x6d\x0f\x6d\x40\x6d\x07\x6d\x20\x6d\x2c\x6d\x08\x6d\x22\x6d\x09\x6d\x10\x70\xb7\x70\x9f\x70\xbe\x70\xb1\x70\xb0\x70\xa1\x70\xb4\x70\xb5\x70\xa9\x72\x41\x72\x49\x72\x4a\x72\x6c\x72\x70\x72\x73\x72\x6e\x72\xca\x72\xe4\x72\xe8\x72\xeb\x72\xdf\x72\xea\x72\xe6\x72\xe3\x73\x85\x73\xcc\x73\xc2\x73\xc8\x73\xc5\x73\xb9\x73\xb6\x73\xb5\x73\xb4\x73\xeb\x73\xbf\x73\xc7\x73\xbe\x73\xc3\x73\xc6\x73\xb8\x73\xcb\x74\xec\x74\xee\x75\x2e\x75\x47\x75\x48\x75\xa7\x75\xaa\x76\x79\x76\xc4\x77\x08\x77\x03\x77\x04\x77\x05\x77\x0a\x76\xf7\x76\xfb\x76\xfa\x77\xe7\x77\xe8\x78\x06\x78\x11\x78\x12\x78\x05\x78\x10\x78\x0f\x78\x0e\x78\x09\x78\x03\x78\x13\x79\x4a\x79\x4c\x79\x4b\x79\x45\x79\x44\x79\xd5\x79\xcd\x79\xcf\x79\xd6\x79\xce\x7a\x80\x7a\x7e\x7a\xd1\x7b\x00\x7b\x01\x7c\x7a\x7c\x78\x7c\x79\x7c\x7f\x7c\x80\x7c\x81\x7d\x03\x7d\x08\x7d\x01\x7f\x58\x7f\x91\x7f\x8d\x7f\xbe\x80\x07\x80\x0e\x80\x0f\x80\x14\x80\x37\x80\xd8\x80\xc7\x80\xe0\x80\xd1\x80\xc8\x80\xc2\x80\xd0\x00\x00\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc5\x80\xe3\x80\xd9\x80\xdc\x80\xca\x80\xd5\x80\xc9\x80\xcf\x80\xd7\x80\xe6\x80\xcd\x81\xff\x82\x21\x82\x94\x82\xd9\x82\xfe\x82\xf9\x83\x07\x82\xe8\x83\x00\x82\xd5\x83\x3a\x82\xeb\x82\xd6\x82\xf4\x82\xec\x82\xe1\x82\xf2\x82\xf5\x83\x0c\x82\xfb\x82\xf6\x82\xf0\x82\xea\x82\xe4\x82\xe0\x82\xfa\x82\xf3\x82\xed\x86\x77\x86\x74\x86\x7c\x86\x73\x88\x41\x88\x4e\x88\x67\x88\x6a\x88\x69\x89\xd3\x8a\x04\x8a\x07\x8d\x72\x8f\xe3\x8f\xe1\x8f\xee\x8f\xe0\x90\xf1\x90\xbd\x90\xbf\x90\xd5\x90\xc5\x90\xbe\x90\xc7", /* 6f80 */ "\x00\x00\x90\xcb\x90\xc8\x91\xd4\x91\xd3\x96\x54\x96\x4f\x96\x51\x96\x53\x96\x4a\x96\x4e\x50\x1e\x50\x05\x50\x07\x50\x13\x50\x22\x50\x30\x50\x1b\x4f\xf5\x4f\xf4\x50\x33\x50\x37\x50\x2c\x4f\xf6\x4f\xf7\x50\x17\x50\x1c\x50\x20\x50\x27\x50\x35\x50\x2f\x50\x31\x50\x0e\x51\x5a\x51\x94\x51\x93\x51\xca\x51\xc4\x51\xc5\x51\xc8\x51\xce\x52\x61\x52\x5a\x52\x52\x52\x5e\x52\x5f\x52\x55\x52\x62\x52\xcd\x53\x0e\x53\x9e\x55\x26\x54\xe2\x55\x17\x55\x12\x54\xe7\x54\xf3\x54\xe4\x55\x1a\x54\xff\x55\x04\x55\x08\x54\xeb\x55\x11\x55\x05\x54\xf1\x55\x0a\x54\xfb\x54\xf7\x54\xf8\x54\xe0\x55\x0e\x55\x03\x55\x0b\x57\x01\x57\x02\x57\xcc\x58\x32\x57\xd5\x57\xd2\x57\xba\x57\xc6\x57\xbd\x57\xbc\x57\xb8\x57\xb6\x57\xbf\x57\xc7\x57\xd0\x57\xb9\x57\xc1\x59\x0e\x59\x4a\x5a\x19\x5a\x16\x5a\x2d\x5a\x2e\x5a\x15\x5a\x0f\x5a\x17\x5a\x0a\x5a\x1e\x5a\x33\x5b\x6c\x5b\xa7\x5b\xad\x5b\xac\x5c\x03\x5c\x56\x5c\x54\x5c\xec\x5c\xff\x5c\xee\x5c\xf1\x5c\xf7\x5d\x00\x5c\xf9\x5e\x29\x5e\x28\x5e\xa8\x5e\xae\x5e\xaa\x5e\xac\x5f\x33\x5f\x30\x5f\x67\x00\x00\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\xa2\x60\x88\x60\x80\x60\x92\x60\x81\x60\x9d\x60\x83\x60\x95\x60\x9b\x60\x97\x60\x87\x60\x9c\x60\x8e\x62\x19\x62\x46\x62\xf2\x63\x10\x63\x56\x63\x2c\x63\x44\x63\x45\x63\x36\x63\x43\x63\xe4\x63\x39\x63\x4b\x63\x4a\x63\x3c\x63\x29\x63\x41\x63\x34\x63\x58\x63\x54\x63\x59\x63\x2d\x63\x47\x63\x33\x63\x5a\x63\x51\x63\x38\x63\x57\x63\x40\x63\x48\x65\x4a\x65\x46\x65\xc6\x65\xc3\x65\xc4\x65\xc2\x66\x4a\x66\x5f\x66\x47\x66\x51\x67\x12\x67\x13\x68\x1f\x68\x1a\x68\x49\x68\x32", /* 7080 */ "\x00\x00\x68\x33\x68\x3b\x68\x4b\x68\x4f\x68\x16\x68\x31\x68\x1c\x68\x35\x68\x2b\x68\x2d\x68\x2f\x68\x4e\x68\x44\x68\x34\x68\x1d\x68\x12\x68\x14\x68\x26\x68\x28\x68\x2e\x68\x4d\x68\x3a\x68\x25\x68\x20\x6b\x2c\x6b\x2f\x6b\x2d\x6b\x31\x6b\x34\x6b\x6d\x80\x82\x6b\x88\x6b\xe6\x6b\xe4\x6b\xe8\x6b\xe3\x6b\xe2\x6b\xe7\x6c\x25\x6d\x7a\x6d\x63\x6d\x64\x6d\x76\x6d\x0d\x6d\x61\x6d\x92\x6d\x58\x6d\x62\x6d\x6d\x6d\x6f\x6d\x91\x6d\x8d\x6d\xef\x6d\x7f\x6d\x86\x6d\x5e\x6d\x67\x6d\x60\x6d\x97\x6d\x70\x6d\x7c\x6d\x5f\x6d\x82\x6d\x98\x6d\x2f\x6d\x68\x6d\x8b\x6d\x7e\x6d\x80\x6d\x84\x6d\x16\x6d\x83\x6d\x7b\x6d\x7d\x6d\x75\x6d\x90\x70\xdc\x70\xd3\x70\xd1\x70\xdd\x70\xcb\x7f\x39\x70\xe2\x70\xd7\x70\xd2\x70\xde\x70\xe0\x70\xd4\x70\xcd\x70\xc5\x70\xc6\x70\xc7\x70\xda\x70\xce\x70\xe1\x72\x42\x72\x78\x72\x77\x72\x76\x73\x00\x72\xfa\x72\xf4\x72\xfe\x72\xf6\x72\xf3\x72\xfb\x73\x01\x73\xd3\x73\xd9\x73\xe5\x73\xd6\x73\xbc\x73\xe7\x73\xe3\x73\xe9\x73\xdc\x73\xd2\x73\xdb\x73\xd4\x73\xdd\x73\xda\x73\xd7\x73\xd8\x73\xe8\x74\xde\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xdf\x74\xf4\x74\xf5\x75\x21\x75\x5b\x75\x5f\x75\xb0\x75\xc1\x75\xbb\x75\xc4\x75\xc0\x75\xbf\x75\xb6\x75\xba\x76\x8a\x76\xc9\x77\x1d\x77\x1b\x77\x10\x77\x13\x77\x12\x77\x23\x77\x11\x77\x15\x77\x19\x77\x1a\x77\x22\x77\x27\x78\x23\x78\x2c\x78\x22\x78\x35\x78\x2f\x78\x28\x78\x2e\x78\x2b\x78\x21\x78\x29\x78\x33\x78\x2a\x78\x31\x79\x54\x79\x5b\x79\x4f\x79\x5c\x79\x53\x79\x52\x79\x51\x79\xeb\x79\xec\x79\xe0\x79\xee\x79\xed\x79\xea\x79\xdc\x79\xde\x79\xdd\x7a\x86\x7a\x89\x7a\x85\x7a\x8b\x7a\x8c\x7a\x8a", /* 7180 */ "\x00\x00\x7a\x87\x7a\xd8\x7b\x10\x7b\x04\x7b\x13\x7b\x05\x7b\x0f\x7b\x08\x7b\x0a\x7b\x0e\x7b\x09\x7b\x12\x7c\x84\x7c\x91\x7c\x8a\x7c\x8c\x7c\x88\x7c\x8d\x7c\x85\x7d\x1e\x7d\x1d\x7d\x11\x7d\x0e\x7d\x18\x7d\x16\x7d\x13\x7d\x1f\x7d\x12\x7d\x0f\x7d\x0c\x7f\x5c\x7f\x61\x7f\x5e\x7f\x60\x7f\x5d\x7f\x5b\x7f\x96\x7f\x92\x7f\xc3\x7f\xc2\x7f\xc0\x80\x16\x80\x3e\x80\x39\x80\xfa\x80\xf2\x80\xf9\x80\xf5\x81\x01\x80\xfb\x81\x00\x82\x01\x82\x2f\x82\x25\x83\x33\x83\x2d\x83\x44\x83\x19\x83\x51\x83\x25\x83\x56\x83\x3f\x83\x41\x83\x26\x83\x1c\x83\x22\x83\x42\x83\x4e\x83\x1b\x83\x2a\x83\x08\x83\x3c\x83\x4d\x83\x16\x83\x24\x83\x20\x83\x37\x83\x2f\x83\x29\x83\x47\x83\x45\x83\x4c\x83\x53\x83\x1e\x83\x2c\x83\x4b\x83\x27\x83\x48\x86\x53\x86\x52\x86\xa2\x86\xa8\x86\x96\x86\x8d\x86\x91\x86\x9e\x86\x87\x86\x97\x86\x86\x86\x8b\x86\x9a\x86\x85\x86\xa5\x86\x99\x86\xa1\x86\xa7\x86\x95\x86\x98\x86\x8e\x86\x9d\x86\x90\x86\x94\x88\x43\x88\x44\x88\x6d\x88\x75\x88\x76\x88\x72\x88\x80\x88\x71\x88\x7f\x88\x6f\x88\x83\x88\x7e\x88\x74\x00\x00\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x7c\x8a\x12\x8c\x47\x8c\x57\x8c\x7b\x8c\xa4\x8c\xa3\x8d\x76\x8d\x78\x8d\xb5\x8d\xb7\x8d\xb6\x8e\xd1\x8e\xd3\x8f\xfe\x8f\xf5\x90\x02\x8f\xff\x8f\xfb\x90\x04\x8f\xfc\x8f\xf6\x90\xd6\x90\xe0\x90\xd9\x90\xda\x90\xe3\x90\xdf\x90\xe5\x90\xd8\x90\xdb\x90\xd7\x90\xdc\x90\xe4\x91\x50\x91\x4e\x91\x4f\x91\xd5\x91\xe2\x91\xda\x96\x5c\x96\x5f\x96\xbc\x98\xe3\x9a\xdf\x9b\x2f\x4e\x7f\x50\x70\x50\x6a\x50\x61\x50\x5e\x50\x60\x50\x53\x50\x4b\x50\x5d\x50\x72\x50\x48\x50\x4d\x50\x41\x50\x5b\x50\x4a\x50\x62\x50\x15", /* 7280 */ "\x00\x00\x50\x45\x50\x5f\x50\x69\x50\x6b\x50\x63\x50\x64\x50\x46\x50\x40\x50\x6e\x50\x73\x50\x57\x50\x51\x51\xd0\x52\x6b\x52\x6d\x52\x6c\x52\x6e\x52\xd6\x52\xd3\x53\x2d\x53\x9c\x55\x75\x55\x76\x55\x3c\x55\x4d\x55\x50\x55\x34\x55\x2a\x55\x51\x55\x62\x55\x36\x55\x35\x55\x30\x55\x52\x55\x45\x55\x0c\x55\x32\x55\x65\x55\x4e\x55\x39\x55\x48\x55\x2d\x55\x3b\x55\x40\x55\x4b\x57\x0a\x57\x07\x57\xfb\x58\x14\x57\xe2\x57\xf6\x57\xdc\x57\xf4\x58\x00\x57\xed\x57\xfd\x58\x08\x57\xf8\x58\x0b\x57\xf3\x57\xcf\x58\x07\x57\xee\x57\xe3\x57\xf2\x57\xe5\x57\xec\x57\xe1\x58\x0e\x57\xfc\x58\x10\x57\xe7\x58\x01\x58\x0c\x57\xf1\x57\xe9\x57\xf0\x58\x0d\x58\x04\x59\x5c\x5a\x60\x5a\x58\x5a\x55\x5a\x67\x5a\x5e\x5a\x38\x5a\x35\x5a\x6d\x5a\x50\x5a\x5f\x5a\x65\x5a\x6c\x5a\x53\x5a\x64\x5a\x57\x5a\x43\x5a\x5d\x5a\x52\x5a\x44\x5a\x5b\x5a\x48\x5a\x8e\x5a\x3e\x5a\x4d\x5a\x39\x5a\x4c\x5a\x70\x5a\x69\x5a\x47\x5a\x51\x5a\x56\x5a\x42\x5a\x5c\x5b\x72\x5b\x6e\x5b\xc1\x5b\xc0\x5c\x59\x5d\x1e\x5d\x0b\x5d\x1d\x5d\x1a\x5d\x20\x5d\x0c\x5d\x28\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x0d\x5d\x26\x5d\x25\x5d\x0f\x5d\x30\x5d\x12\x5d\x23\x5d\x1f\x5d\x2e\x5e\x3e\x5e\x34\x5e\xb1\x5e\xb4\x5e\xb9\x5e\xb2\x5e\xb3\x5f\x36\x5f\x38\x5f\x9b\x5f\x96\x5f\x9f\x60\x8a\x60\x90\x60\x86\x60\xbe\x60\xb0\x60\xba\x60\xd3\x60\xd4\x60\xcf\x60\xe4\x60\xd9\x60\xdd\x60\xc8\x60\xb1\x60\xdb\x60\xb7\x60\xca\x60\xbf\x60\xc3\x60\xcd\x60\xc0\x63\x32\x63\x65\x63\x8a\x63\x82\x63\x7d\x63\xbd\x63\x9e\x63\xad\x63\x9d\x63\x97\x63\xab\x63\x8e\x63\x6f\x63\x87\x63\x90\x63\x6e\x63\xaf\x63\x75\x63\x9c\x63\x6d\x63\xae", /* 7380 */ "\x00\x00\x63\x7c\x63\xa4\x63\x3b\x63\x9f\x63\x78\x63\x85\x63\x81\x63\x91\x63\x8d\x63\x70\x65\x53\x65\xcd\x66\x65\x66\x61\x66\x5b\x66\x59\x66\x5c\x66\x62\x67\x18\x68\x79\x68\x87\x68\x90\x68\x9c\x68\x6d\x68\x6e\x68\xae\x68\xab\x69\x56\x68\x6f\x68\xa3\x68\xac\x68\xa9\x68\x75\x68\x74\x68\xb2\x68\x8f\x68\x77\x68\x92\x68\x7c\x68\x6b\x68\x72\x68\xaa\x68\x80\x68\x71\x68\x7e\x68\x9b\x68\x96\x68\x8b\x68\xa0\x68\x89\x68\xa4\x68\x78\x68\x7b\x68\x91\x68\x8c\x68\x8a\x68\x7d\x6b\x36\x6b\x33\x6b\x37\x6b\x38\x6b\x91\x6b\x8f\x6b\x8d\x6b\x8e\x6b\x8c\x6c\x2a\x6d\xc0\x6d\xab\x6d\xb4\x6d\xb3\x6e\x74\x6d\xac\x6d\xe9\x6d\xe2\x6d\xb7\x6d\xf6\x6d\xd4\x6e\x00\x6d\xc8\x6d\xe0\x6d\xdf\x6d\xd6\x6d\xbe\x6d\xe5\x6d\xdc\x6d\xdd\x6d\xdb\x6d\xf4\x6d\xca\x6d\xbd\x6d\xed\x6d\xf0\x6d\xba\x6d\xd5\x6d\xc2\x6d\xcf\x6d\xc9\x6d\xd0\x6d\xf2\x6d\xd3\x6d\xfd\x6d\xd7\x6d\xcd\x6d\xe3\x6d\xbb\x70\xfa\x71\x0d\x70\xf7\x71\x17\x70\xf4\x71\x0c\x70\xf0\x71\x04\x70\xf3\x71\x10\x70\xfc\x70\xff\x71\x06\x71\x13\x71\x00\x70\xf8\x70\xf6\x71\x0b\x71\x02\x00\x00\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x0e\x72\x7e\x72\x7b\x72\x7c\x72\x7f\x73\x1d\x73\x17\x73\x07\x73\x11\x73\x18\x73\x0a\x73\x08\x72\xff\x73\x0f\x73\x1e\x73\x88\x73\xf6\x73\xf8\x73\xf5\x74\x04\x74\x01\x73\xfd\x74\x07\x74\x00\x73\xfa\x73\xfc\x73\xff\x74\x0c\x74\x0b\x73\xf4\x74\x08\x75\x64\x75\x63\x75\xce\x75\xd2\x75\xcf\x75\xcb\x75\xcc\x75\xd1\x75\xd0\x76\x8f\x76\x89\x76\xd3\x77\x39\x77\x2f\x77\x2d\x77\x31\x77\x32\x77\x34\x77\x33\x77\x3d\x77\x25\x77\x3b\x77\x35\x78\x48\x78\x52\x78\x49\x78\x4d\x78\x4a\x78\x4c\x78\x26\x78\x45\x78\x50", /* 7480 */ "\x00\x00\x79\x64\x79\x67\x79\x69\x79\x6a\x79\x63\x79\x6b\x79\x61\x79\xbb\x79\xfa\x79\xf8\x79\xf6\x79\xf7\x7a\x8f\x7a\x94\x7a\x90\x7b\x35\x7b\x47\x7b\x34\x7b\x25\x7b\x30\x7b\x22\x7b\x24\x7b\x33\x7b\x18\x7b\x2a\x7b\x1d\x7b\x31\x7b\x2b\x7b\x2d\x7b\x2f\x7b\x32\x7b\x38\x7b\x1a\x7b\x23\x7c\x94\x7c\x98\x7c\x96\x7c\xa3\x7d\x35\x7d\x3d\x7d\x38\x7d\x36\x7d\x3a\x7d\x45\x7d\x2c\x7d\x29\x7d\x41\x7d\x47\x7d\x3e\x7d\x3f\x7d\x4a\x7d\x3b\x7d\x28\x7f\x63\x7f\x95\x7f\x9c\x7f\x9d\x7f\x9b\x7f\xca\x7f\xcb\x7f\xcd\x7f\xd0\x7f\xd1\x7f\xc7\x7f\xcf\x7f\xc9\x80\x1f\x80\x1e\x80\x1b\x80\x47\x80\x43\x80\x48\x81\x18\x81\x25\x81\x19\x81\x1b\x81\x2d\x81\x1f\x81\x2c\x81\x1e\x81\x21\x81\x15\x81\x27\x81\x1d\x81\x22\x82\x11\x82\x38\x82\x33\x82\x3a\x82\x34\x82\x32\x82\x74\x83\x90\x83\xa3\x83\xa8\x83\x8d\x83\x7a\x83\x73\x83\xa4\x83\x74\x83\x8f\x83\x81\x83\x95\x83\x99\x83\x75\x83\x94\x83\xa9\x83\x7d\x83\x83\x83\x8c\x83\x9d\x83\x9b\x83\xaa\x83\x8b\x83\x7e\x83\xa5\x83\xaf\x83\x88\x83\x97\x83\xb0\x83\x7f\x83\xa6\x83\x87\x83\xae\x83\x76\x00\x00\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x9a\x86\x59\x86\x56\x86\xbf\x86\xb7\x86\xc2\x86\xc1\x86\xc5\x86\xba\x86\xb0\x86\xc8\x86\xb9\x86\xb3\x86\xb8\x86\xcc\x86\xb4\x86\xbb\x86\xbc\x86\xc3\x86\xbd\x86\xbe\x88\x52\x88\x89\x88\x95\x88\xa8\x88\xa2\x88\xaa\x88\x9a\x88\x91\x88\xa1\x88\x9f\x88\x98\x88\xa7\x88\x99\x88\x9b\x88\x97\x88\xa4\x88\xac\x88\x8c\x88\x93\x88\x8e\x89\x82\x89\xd6\x89\xd9\x89\xd5\x8a\x30\x8a\x27\x8a\x2c\x8a\x1e\x8c\x39\x8c\x3b\x8c\x5c\x8c\x5d\x8c\x7d\x8c\xa5\x8d\x7d\x8d\x7b\x8d\x79\x8d\xbc\x8d\xc2\x8d\xb9\x8d\xbf\x8d\xc1", /* 7580 */ "\x00\x00\x8e\xd8\x8e\xde\x8e\xdd\x8e\xdc\x8e\xd7\x8e\xe0\x8e\xe1\x90\x24\x90\x0b\x90\x11\x90\x1c\x90\x0c\x90\x21\x90\xef\x90\xea\x90\xf0\x90\xf4\x90\xf2\x90\xf3\x90\xd4\x90\xeb\x90\xec\x90\xe9\x91\x56\x91\x58\x91\x5a\x91\x53\x91\x55\x91\xec\x91\xf4\x91\xf1\x91\xf3\x91\xf8\x91\xe4\x91\xf9\x91\xea\x91\xeb\x91\xf7\x91\xe8\x91\xee\x95\x7a\x95\x86\x95\x88\x96\x7c\x96\x6d\x96\x6b\x96\x71\x96\x6f\x96\xbf\x97\x6a\x98\x04\x98\xe5\x99\x97\x50\x9b\x50\x95\x50\x94\x50\x9e\x50\x8b\x50\xa3\x50\x83\x50\x8c\x50\x8e\x50\x9d\x50\x68\x50\x9c\x50\x92\x50\x82\x50\x87\x51\x5f\x51\xd4\x53\x12\x53\x11\x53\xa4\x53\xa7\x55\x91\x55\xa8\x55\xa5\x55\xad\x55\x77\x56\x45\x55\xa2\x55\x93\x55\x88\x55\x8f\x55\xb5\x55\x81\x55\xa3\x55\x92\x55\xa4\x55\x7d\x55\x8c\x55\xa6\x55\x7f\x55\x95\x55\xa1\x55\x8e\x57\x0c\x58\x29\x58\x37\x58\x19\x58\x1e\x58\x27\x58\x23\x58\x28\x57\xf5\x58\x48\x58\x25\x58\x1c\x58\x1b\x58\x33\x58\x3f\x58\x36\x58\x2e\x58\x39\x58\x38\x58\x2d\x58\x2c\x58\x3b\x59\x61\x5a\xaf\x5a\x94\x5a\x9f\x5a\x7a\x5a\xa2\x5a\x9e\x00\x00\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x78\x5a\xa6\x5a\x7c\x5a\xa5\x5a\xac\x5a\x95\x5a\xae\x5a\x37\x5a\x84\x5a\x8a\x5a\x97\x5a\x83\x5a\x8b\x5a\xa9\x5a\x7b\x5a\x7d\x5a\x8c\x5a\x9c\x5a\x8f\x5a\x93\x5a\x9d\x5b\xea\x5b\xcd\x5b\xcb\x5b\xd4\x5b\xd1\x5b\xca\x5b\xce\x5c\x0c\x5c\x30\x5d\x37\x5d\x43\x5d\x6b\x5d\x41\x5d\x4b\x5d\x3f\x5d\x35\x5d\x51\x5d\x4e\x5d\x55\x5d\x33\x5d\x3a\x5d\x52\x5d\x3d\x5d\x31\x5d\x59\x5d\x42\x5d\x39\x5d\x49\x5d\x38\x5d\x3c\x5d\x32\x5d\x36\x5d\x40\x5d\x45\x5e\x44\x5e\x41\x5f\x58\x5f\xa6\x5f\xa5\x5f\xab\x60\xc9\x60\xb9", /* 7680 */ "\x00\x00\x60\xcc\x60\xe2\x60\xce\x60\xc4\x61\x14\x60\xf2\x61\x0a\x61\x16\x61\x05\x60\xf5\x61\x13\x60\xf8\x60\xfc\x60\xfe\x60\xc1\x61\x03\x61\x18\x61\x1d\x61\x10\x60\xff\x61\x04\x61\x0b\x62\x4a\x63\x94\x63\xb1\x63\xb0\x63\xce\x63\xe5\x63\xe8\x63\xef\x63\xc3\x64\x9d\x63\xf3\x63\xca\x63\xe0\x63\xf6\x63\xd5\x63\xf2\x63\xf5\x64\x61\x63\xdf\x63\xbe\x63\xdd\x63\xdc\x63\xc4\x63\xd8\x63\xd3\x63\xc2\x63\xc7\x63\xcc\x63\xcb\x63\xc8\x63\xf0\x63\xd7\x63\xd9\x65\x32\x65\x67\x65\x6a\x65\x64\x65\x5c\x65\x68\x65\x65\x65\x8c\x65\x9d\x65\x9e\x65\xae\x65\xd0\x65\xd2\x66\x7c\x66\x6c\x66\x7b\x66\x80\x66\x71\x66\x79\x66\x6a\x66\x72\x67\x01\x69\x0c\x68\xd3\x69\x04\x68\xdc\x69\x2a\x68\xec\x68\xea\x68\xf1\x69\x0f\x68\xd6\x68\xf7\x68\xeb\x68\xe4\x68\xf6\x69\x13\x69\x10\x68\xf3\x68\xe1\x69\x07\x68\xcc\x69\x08\x69\x70\x68\xb4\x69\x11\x68\xef\x68\xc6\x69\x14\x68\xf8\x68\xd0\x68\xfd\x68\xfc\x68\xe8\x69\x0b\x69\x0a\x69\x17\x68\xce\x68\xc8\x68\xdd\x68\xde\x68\xe6\x68\xf4\x68\xd1\x69\x06\x68\xd4\x68\xe9\x69\x15\x69\x25\x68\xc7\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x39\x6b\x3b\x6b\x3f\x6b\x3c\x6b\x94\x6b\x97\x6b\x99\x6b\x95\x6b\xbd\x6b\xf0\x6b\xf2\x6b\xf3\x6c\x30\x6d\xfc\x6e\x46\x6e\x47\x6e\x1f\x6e\x49\x6e\x88\x6e\x3c\x6e\x3d\x6e\x45\x6e\x62\x6e\x2b\x6e\x3f\x6e\x41\x6e\x5d\x6e\x73\x6e\x1c\x6e\x33\x6e\x4b\x6e\x40\x6e\x51\x6e\x3b\x6e\x03\x6e\x2e\x6e\x5e\x6e\x68\x6e\x5c\x6e\x61\x6e\x31\x6e\x28\x6e\x60\x6e\x71\x6e\x6b\x6e\x39\x6e\x22\x6e\x30\x6e\x53\x6e\x65\x6e\x27\x6e\x78\x6e\x64\x6e\x77\x6e\x55\x6e\x79\x6e\x52\x6e\x66\x6e\x35\x6e\x36\x6e\x5a\x71\x20\x71\x1e", /* 7780 */ "\x00\x00\x71\x2f\x70\xfb\x71\x2e\x71\x31\x71\x23\x71\x25\x71\x22\x71\x32\x71\x1f\x71\x28\x71\x3a\x71\x1b\x72\x4b\x72\x5a\x72\x88\x72\x89\x72\x86\x72\x85\x72\x8b\x73\x12\x73\x0b\x73\x30\x73\x22\x73\x31\x73\x33\x73\x27\x73\x32\x73\x2d\x73\x26\x73\x23\x73\x35\x73\x0c\x74\x2e\x74\x2c\x74\x30\x74\x2b\x74\x16\x74\x1a\x74\x21\x74\x2d\x74\x31\x74\x24\x74\x23\x74\x1d\x74\x29\x74\x20\x74\x32\x74\xfb\x75\x2f\x75\x6f\x75\x6c\x75\xe7\x75\xda\x75\xe1\x75\xe6\x75\xdd\x75\xdf\x75\xe4\x75\xd7\x76\x95\x76\x92\x76\xda\x77\x46\x77\x47\x77\x44\x77\x4d\x77\x45\x77\x4a\x77\x4e\x77\x4b\x77\x4c\x77\xde\x77\xec\x78\x60\x78\x64\x78\x65\x78\x5c\x78\x6d\x78\x71\x78\x6a\x78\x6e\x78\x70\x78\x69\x78\x68\x78\x5e\x78\x62\x79\x74\x79\x73\x79\x72\x79\x70\x7a\x02\x7a\x0a\x7a\x03\x7a\x0c\x7a\x04\x7a\x99\x7a\xe6\x7a\xe4\x7b\x4a\x7b\x3b\x7b\x44\x7b\x48\x7b\x4c\x7b\x4e\x7b\x40\x7b\x58\x7b\x45\x7c\xa2\x7c\x9e\x7c\xa8\x7c\xa1\x7d\x58\x7d\x6f\x7d\x63\x7d\x53\x7d\x56\x7d\x67\x7d\x6a\x7d\x4f\x7d\x6d\x7d\x5c\x7d\x6b\x7d\x52\x7d\x54\x7d\x69\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x51\x7d\x5f\x7d\x4e\x7f\x3e\x7f\x3f\x7f\x65\x7f\x66\x7f\xa2\x7f\xa0\x7f\xa1\x7f\xd7\x80\x51\x80\x4f\x80\x50\x80\xfe\x80\xd4\x81\x43\x81\x4a\x81\x52\x81\x4f\x81\x47\x81\x3d\x81\x4d\x81\x3a\x81\xe6\x81\xee\x81\xf7\x81\xf8\x81\xf9\x82\x04\x82\x3c\x82\x3d\x82\x3f\x82\x75\x83\x3b\x83\xcf\x83\xf9\x84\x23\x83\xc0\x83\xe8\x84\x12\x83\xe7\x83\xe4\x83\xfc\x83\xf6\x84\x10\x83\xc6\x83\xc8\x83\xeb\x83\xe3\x83\xbf\x84\x01\x83\xdd\x83\xe5\x83\xd8\x83\xff\x83\xe1\x83\xcb\x83\xce\x83\xd6\x83\xf5\x83\xc9\x84\x09", /* 7880 */ "\x00\x00\x84\x0f\x83\xde\x84\x11\x84\x06\x83\xc2\x83\xf3\x83\xd5\x83\xfa\x83\xc7\x83\xd1\x83\xea\x84\x13\x83\xc3\x83\xec\x83\xee\x83\xc4\x83\xfb\x83\xd7\x83\xe2\x84\x1b\x83\xdb\x83\xfe\x86\xd8\x86\xe2\x86\xe6\x86\xd3\x86\xe3\x86\xda\x86\xea\x86\xdd\x86\xeb\x86\xdc\x86\xec\x86\xe9\x86\xd7\x86\xe8\x86\xd1\x88\x48\x88\x56\x88\x55\x88\xba\x88\xd7\x88\xb9\x88\xb8\x88\xc0\x88\xbe\x88\xb6\x88\xbc\x88\xb7\x88\xbd\x88\xb2\x89\x01\x88\xc9\x89\x95\x89\x98\x89\x97\x89\xdd\x89\xda\x89\xdb\x8a\x4e\x8a\x4d\x8a\x39\x8a\x59\x8a\x40\x8a\x57\x8a\x58\x8a\x44\x8a\x45\x8a\x52\x8a\x48\x8a\x51\x8a\x4a\x8a\x4c\x8a\x4f\x8c\x5f\x8c\x81\x8c\x80\x8c\xba\x8c\xbe\x8c\xb0\x8c\xb9\x8c\xb5\x8d\x84\x8d\x80\x8d\x89\x8d\xd8\x8d\xd3\x8d\xcd\x8d\xc7\x8d\xd6\x8d\xdc\x8d\xcf\x8d\xd5\x8d\xd9\x8d\xc8\x8d\xd7\x8d\xc5\x8e\xef\x8e\xf7\x8e\xfa\x8e\xf9\x8e\xe6\x8e\xee\x8e\xe5\x8e\xf5\x8e\xe7\x8e\xe8\x8e\xf6\x8e\xeb\x8e\xf1\x8e\xec\x8e\xf4\x8e\xe9\x90\x2d\x90\x34\x90\x2f\x91\x06\x91\x2c\x91\x04\x90\xff\x90\xfc\x91\x08\x90\xf9\x90\xfb\x91\x01\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x00\x91\x07\x91\x05\x91\x03\x91\x61\x91\x64\x91\x5f\x91\x62\x91\x60\x92\x01\x92\x0a\x92\x25\x92\x03\x92\x1a\x92\x26\x92\x0f\x92\x0c\x92\x00\x92\x12\x91\xff\x91\xfd\x92\x06\x92\x04\x92\x27\x92\x02\x92\x1c\x92\x24\x92\x19\x92\x17\x92\x05\x92\x16\x95\x7b\x95\x8d\x95\x8c\x95\x90\x96\x87\x96\x7e\x96\x88\x96\x89\x96\x83\x96\x80\x96\xc2\x96\xc8\x96\xc3\x96\xf1\x96\xf0\x97\x6c\x97\x70\x97\x6e\x98\x07\x98\xa9\x98\xeb\x9c\xe6\x9e\xf9\x4e\x83\x4e\x84\x4e\xb6\x50\xbd\x50\xbf\x50\xc6\x50\xae\x50\xc4\x50\xca", /* 7980 */ "\x00\x00\x50\xb4\x50\xc8\x50\xc2\x50\xb0\x50\xc1\x50\xba\x50\xb1\x50\xcb\x50\xc9\x50\xb6\x50\xb8\x51\xd7\x52\x7a\x52\x78\x52\x7b\x52\x7c\x55\xc3\x55\xdb\x55\xcc\x55\xd0\x55\xcb\x55\xca\x55\xdd\x55\xc0\x55\xd4\x55\xc4\x55\xe9\x55\xbf\x55\xd2\x55\x8d\x55\xcf\x55\xd5\x55\xe2\x55\xd6\x55\xc8\x55\xf2\x55\xcd\x55\xd9\x55\xc2\x57\x14\x58\x53\x58\x68\x58\x64\x58\x4f\x58\x4d\x58\x49\x58\x6f\x58\x55\x58\x4e\x58\x5d\x58\x59\x58\x65\x58\x5b\x58\x3d\x58\x63\x58\x71\x58\xfc\x5a\xc7\x5a\xc4\x5a\xcb\x5a\xba\x5a\xb8\x5a\xb1\x5a\xb5\x5a\xb0\x5a\xbf\x5a\xc8\x5a\xbb\x5a\xc6\x5a\xb7\x5a\xc0\x5a\xca\x5a\xb4\x5a\xb6\x5a\xcd\x5a\xb9\x5a\x90\x5b\xd6\x5b\xd8\x5b\xd9\x5c\x1f\x5c\x33\x5d\x71\x5d\x63\x5d\x4a\x5d\x65\x5d\x72\x5d\x6c\x5d\x5e\x5d\x68\x5d\x67\x5d\x62\x5d\xf0\x5e\x4f\x5e\x4e\x5e\x4a\x5e\x4d\x5e\x4b\x5e\xc5\x5e\xcc\x5e\xc6\x5e\xcb\x5e\xc7\x5f\x40\x5f\xaf\x5f\xad\x60\xf7\x61\x49\x61\x4a\x61\x2b\x61\x45\x61\x36\x61\x32\x61\x2e\x61\x46\x61\x2f\x61\x4f\x61\x29\x61\x40\x62\x20\x91\x68\x62\x23\x62\x25\x62\x24\x63\xc5\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf1\x63\xeb\x64\x10\x64\x12\x64\x09\x64\x20\x64\x24\x64\x33\x64\x43\x64\x1f\x64\x15\x64\x18\x64\x39\x64\x37\x64\x22\x64\x23\x64\x0c\x64\x26\x64\x30\x64\x28\x64\x41\x64\x35\x64\x2f\x64\x0a\x64\x1a\x64\x40\x64\x25\x64\x27\x64\x0b\x63\xe7\x64\x1b\x64\x2e\x64\x21\x64\x0e\x65\x6f\x65\x92\x65\xd3\x66\x86\x66\x8c\x66\x95\x66\x90\x66\x8b\x66\x8a\x66\x99\x66\x94\x66\x78\x67\x20\x69\x66\x69\x5f\x69\x38\x69\x4e\x69\x62\x69\x71\x69\x3f\x69\x45\x69\x6a\x69\x39\x69\x42\x69\x57\x69\x59\x69\x7a\x69\x48\x69\x49", /* 7a80 */ "\x00\x00\x69\x35\x69\x6c\x69\x33\x69\x3d\x69\x65\x68\xf0\x69\x78\x69\x34\x69\x69\x69\x40\x69\x6f\x69\x44\x69\x76\x69\x58\x69\x41\x69\x74\x69\x4c\x69\x3b\x69\x4b\x69\x37\x69\x5c\x69\x4f\x69\x51\x69\x32\x69\x52\x69\x2f\x69\x7b\x69\x3c\x6b\x46\x6b\x45\x6b\x43\x6b\x42\x6b\x48\x6b\x41\x6b\x9b\xfa\x0d\x6b\xfb\x6b\xfc\x6b\xf9\x6b\xf7\x6b\xf8\x6e\x9b\x6e\xd6\x6e\xc8\x6e\x8f\x6e\xc0\x6e\x9f\x6e\x93\x6e\x94\x6e\xa0\x6e\xb1\x6e\xb9\x6e\xc6\x6e\xd2\x6e\xbd\x6e\xc1\x6e\x9e\x6e\xc9\x6e\xb7\x6e\xb0\x6e\xcd\x6e\xa6\x6e\xcf\x6e\xb2\x6e\xbe\x6e\xc3\x6e\xdc\x6e\xd8\x6e\x99\x6e\x92\x6e\x8e\x6e\x8d\x6e\xa4\x6e\xa1\x6e\xbf\x6e\xb3\x6e\xd0\x6e\xca\x6e\x97\x6e\xae\x6e\xa3\x71\x47\x71\x54\x71\x52\x71\x63\x71\x60\x71\x41\x71\x5d\x71\x62\x71\x72\x71\x78\x71\x6a\x71\x61\x71\x42\x71\x58\x71\x43\x71\x4b\x71\x70\x71\x5f\x71\x50\x71\x53\x71\x44\x71\x4d\x71\x5a\x72\x4f\x72\x8d\x72\x8c\x72\x91\x72\x90\x72\x8e\x73\x3c\x73\x42\x73\x3b\x73\x3a\x73\x40\x73\x4a\x73\x49\x74\x44\x74\x4a\x74\x4b\x74\x52\x74\x51\x74\x57\x74\x40\x74\x4f\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x50\x74\x4e\x74\x42\x74\x46\x74\x4d\x74\x54\x74\xe1\x74\xff\x74\xfe\x74\xfd\x75\x1d\x75\x79\x75\x77\x69\x83\x75\xef\x76\x0f\x76\x03\x75\xf7\x75\xfe\x75\xfc\x75\xf9\x75\xf8\x76\x10\x75\xfb\x75\xf6\x75\xed\x75\xf5\x75\xfd\x76\x99\x76\xb5\x76\xdd\x77\x55\x77\x5f\x77\x60\x77\x52\x77\x56\x77\x5a\x77\x69\x77\x67\x77\x54\x77\x59\x77\x6d\x77\xe0\x78\x87\x78\x9a\x78\x94\x78\x8f\x78\x84\x78\x95\x78\x85\x78\x86\x78\xa1\x78\x83\x78\x79\x78\x99\x78\x80\x78\x96\x78\x7b\x79\x7c\x79\x82\x79\x7d\x79\x79\x7a\x11", /* 7b80 */ "\x00\x00\x7a\x18\x7a\x19\x7a\x12\x7a\x17\x7a\x15\x7a\x22\x7a\x13\x7a\x1b\x7a\x10\x7a\xa3\x7a\xa2\x7a\x9e\x7a\xeb\x7b\x66\x7b\x64\x7b\x6d\x7b\x74\x7b\x69\x7b\x72\x7b\x65\x7b\x73\x7b\x71\x7b\x70\x7b\x61\x7b\x78\x7b\x76\x7b\x63\x7c\xb2\x7c\xb4\x7c\xaf\x7d\x88\x7d\x86\x7d\x80\x7d\x8d\x7d\x7f\x7d\x85\x7d\x7a\x7d\x8e\x7d\x7b\x7d\x83\x7d\x7c\x7d\x8c\x7d\x94\x7d\x84\x7d\x7d\x7d\x92\x7f\x6d\x7f\x6b\x7f\x67\x7f\x68\x7f\x6c\x7f\xa6\x7f\xa5\x7f\xa7\x7f\xdb\x7f\xdc\x80\x21\x81\x64\x81\x60\x81\x77\x81\x5c\x81\x69\x81\x5b\x81\x62\x81\x72\x67\x21\x81\x5e\x81\x76\x81\x67\x81\x6f\x81\x44\x81\x61\x82\x1d\x82\x49\x82\x44\x82\x40\x82\x42\x82\x45\x84\xf1\x84\x3f\x84\x56\x84\x76\x84\x79\x84\x8f\x84\x8d\x84\x65\x84\x51\x84\x40\x84\x86\x84\x67\x84\x30\x84\x4d\x84\x7d\x84\x5a\x84\x59\x84\x74\x84\x73\x84\x5d\x85\x07\x84\x5e\x84\x37\x84\x3a\x84\x34\x84\x7a\x84\x43\x84\x78\x84\x32\x84\x45\x84\x29\x83\xd9\x84\x4b\x84\x2f\x84\x42\x84\x2d\x84\x5f\x84\x70\x84\x39\x84\x4e\x84\x4c\x84\x52\x84\x6f\x84\xc5\x84\x8e\x84\x3b\x84\x47\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x36\x84\x33\x84\x68\x84\x7e\x84\x44\x84\x2b\x84\x60\x84\x54\x84\x6e\x84\x50\x87\x0b\x87\x04\x86\xf7\x87\x0c\x86\xfa\x86\xd6\x86\xf5\x87\x4d\x86\xf8\x87\x0e\x87\x09\x87\x01\x86\xf6\x87\x0d\x87\x05\x88\xd6\x88\xcb\x88\xcd\x88\xce\x88\xde\x88\xdb\x88\xda\x88\xcc\x88\xd0\x89\x85\x89\x9b\x89\xdf\x89\xe5\x89\xe4\x89\xe1\x89\xe0\x89\xe2\x89\xdc\x89\xe6\x8a\x76\x8a\x86\x8a\x7f\x8a\x61\x8a\x3f\x8a\x77\x8a\x82\x8a\x84\x8a\x75\x8a\x83\x8a\x81\x8a\x74\x8a\x7a\x8c\x3c\x8c\x4b\x8c\x4a\x8c\x65\x8c\x64\x8c\x66", /* 7c80 */ "\x00\x00\x8c\x86\x8c\x84\x8c\x85\x8c\xcc\x8d\x68\x8d\x69\x8d\x91\x8d\x8c\x8d\x8e\x8d\x8f\x8d\x8d\x8d\x93\x8d\x94\x8d\x90\x8d\x92\x8d\xf0\x8d\xe0\x8d\xec\x8d\xf1\x8d\xee\x8d\xd0\x8d\xe9\x8d\xe3\x8d\xe2\x8d\xe7\x8d\xf2\x8d\xeb\x8d\xf4\x8f\x06\x8e\xff\x8f\x01\x8f\x00\x8f\x05\x8f\x07\x8f\x08\x8f\x02\x8f\x0b\x90\x52\x90\x3f\x90\x44\x90\x49\x90\x3d\x91\x10\x91\x0d\x91\x0f\x91\x11\x91\x16\x91\x14\x91\x0b\x91\x0e\x91\x6e\x91\x6f\x92\x48\x92\x52\x92\x30\x92\x3a\x92\x66\x92\x33\x92\x65\x92\x5e\x92\x83\x92\x2e\x92\x4a\x92\x46\x92\x6d\x92\x6c\x92\x4f\x92\x60\x92\x67\x92\x6f\x92\x36\x92\x61\x92\x70\x92\x31\x92\x54\x92\x63\x92\x50\x92\x72\x92\x4e\x92\x53\x92\x4c\x92\x56\x92\x32\x95\x9f\x95\x9c\x95\x9e\x95\x9b\x96\x92\x96\x93\x96\x91\x96\x97\x96\xce\x96\xfa\x96\xfd\x96\xf8\x96\xf5\x97\x73\x97\x77\x97\x78\x97\x72\x98\x0f\x98\x0d\x98\x0e\x98\xac\x98\xf6\x98\xf9\x99\xaf\x99\xb2\x99\xb0\x99\xb5\x9a\xad\x9a\xab\x9b\x5b\x9c\xea\x9c\xed\x9c\xe7\x9e\x80\x9e\xfd\x50\xe6\x50\xd4\x50\xd7\x50\xe8\x50\xf3\x50\xdb\x50\xea\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdd\x50\xe4\x50\xd3\x50\xec\x50\xf0\x50\xef\x50\xe3\x50\xe0\x51\xd8\x52\x80\x52\x81\x52\xe9\x52\xeb\x53\x30\x53\xac\x56\x27\x56\x15\x56\x0c\x56\x12\x55\xfc\x56\x0f\x56\x1c\x56\x01\x56\x13\x56\x02\x55\xfa\x56\x1d\x56\x04\x55\xff\x55\xf9\x58\x89\x58\x7c\x58\x90\x58\x98\x58\x86\x58\x81\x58\x7f\x58\x74\x58\x8b\x58\x7a\x58\x87\x58\x91\x58\x8e\x58\x76\x58\x82\x58\x88\x58\x7b\x58\x94\x58\x8f\x58\xfe\x59\x6b\x5a\xdc\x5a\xee\x5a\xe5\x5a\xd5\x5a\xea\x5a\xda\x5a\xed\x5a\xeb\x5a\xf3\x5a\xe2\x5a\xe0\x5a\xdb", /* 7d80 */ "\x00\x00\x5a\xec\x5a\xde\x5a\xdd\x5a\xd9\x5a\xe8\x5a\xdf\x5b\x77\x5b\xe0\x5b\xe3\x5c\x63\x5d\x82\x5d\x80\x5d\x7d\x5d\x86\x5d\x7a\x5d\x81\x5d\x77\x5d\x8a\x5d\x89\x5d\x88\x5d\x7e\x5d\x7c\x5d\x8d\x5d\x79\x5d\x7f\x5e\x58\x5e\x59\x5e\x53\x5e\xd8\x5e\xd1\x5e\xd7\x5e\xce\x5e\xdc\x5e\xd5\x5e\xd9\x5e\xd2\x5e\xd4\x5f\x44\x5f\x43\x5f\x6f\x5f\xb6\x61\x2c\x61\x28\x61\x41\x61\x5e\x61\x71\x61\x73\x61\x52\x61\x53\x61\x72\x61\x6c\x61\x80\x61\x74\x61\x54\x61\x7a\x61\x5b\x61\x65\x61\x3b\x61\x6a\x61\x61\x61\x56\x62\x29\x62\x27\x62\x2b\x64\x2b\x64\x4d\x64\x5b\x64\x5d\x64\x74\x64\x76\x64\x72\x64\x73\x64\x7d\x64\x75\x64\x66\x64\xa6\x64\x4e\x64\x82\x64\x5e\x64\x5c\x64\x4b\x64\x53\x64\x60\x64\x50\x64\x7f\x64\x3f\x64\x6c\x64\x6b\x64\x59\x64\x65\x64\x77\x65\x73\x65\xa0\x66\xa1\x66\xa0\x66\x9f\x67\x05\x67\x04\x67\x22\x69\xb1\x69\xb6\x69\xc9\x69\xa0\x69\xce\x69\x96\x69\xb0\x69\xac\x69\xbc\x69\x91\x69\x99\x69\x8e\x69\xa7\x69\x8d\x69\xa9\x69\xbe\x69\xaf\x69\xbf\x69\xc4\x69\xbd\x69\xa4\x69\xd4\x69\xb9\x69\xca\x69\x9a\x69\xcf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xb3\x69\x93\x69\xaa\x69\xa1\x69\x9e\x69\xd9\x69\x97\x69\x90\x69\xc2\x69\xb5\x69\xa5\x69\xc6\x6b\x4a\x6b\x4d\x6b\x4b\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xc3\x6b\xc4\x6b\xfe\x6e\xce\x6e\xf5\x6e\xf1\x6f\x03\x6f\x25\x6e\xf8\x6f\x37\x6e\xfb\x6f\x2e\x6f\x09\x6f\x4e\x6f\x19\x6f\x1a\x6f\x27\x6f\x18\x6f\x3b\x6f\x12\x6e\xed\x6f\x0a\x6f\x36\x6f\x73\x6e\xf9\x6e\xee\x6f\x2d\x6f\x40\x6f\x30\x6f\x3c\x6f\x35\x6e\xeb\x6f\x07\x6f\x0e\x6f\x43\x6f\x05\x6e\xfd\x6e\xf6\x6f\x39\x6f\x1c\x6e\xfc\x6f\x3a\x6f\x1f\x6f\x0d\x6f\x1e", /* 7e80 */ "\x00\x00\x6f\x08\x6f\x21\x71\x87\x71\x90\x71\x89\x71\x80\x71\x85\x71\x82\x71\x8f\x71\x7b\x71\x86\x71\x81\x71\x97\x72\x44\x72\x53\x72\x97\x72\x95\x72\x93\x73\x43\x73\x4d\x73\x51\x73\x4c\x74\x62\x74\x73\x74\x71\x74\x75\x74\x72\x74\x67\x74\x6e\x75\x00\x75\x02\x75\x03\x75\x7d\x75\x90\x76\x16\x76\x08\x76\x0c\x76\x15\x76\x11\x76\x0a\x76\x14\x76\xb8\x77\x81\x77\x7c\x77\x85\x77\x82\x77\x6e\x77\x80\x77\x6f\x77\x7e\x77\x83\x78\xb2\x78\xaa\x78\xb4\x78\xad\x78\xa8\x78\x7e\x78\xab\x78\x9e\x78\xa5\x78\xa0\x78\xac\x78\xa2\x78\xa4\x79\x98\x79\x8a\x79\x8b\x79\x96\x79\x95\x79\x94\x79\x93\x79\x97\x79\x88\x79\x92\x79\x90\x7a\x2b\x7a\x4a\x7a\x30\x7a\x2f\x7a\x28\x7a\x26\x7a\xa8\x7a\xab\x7a\xac\x7a\xee\x7b\x88\x7b\x9c\x7b\x8a\x7b\x91\x7b\x90\x7b\x96\x7b\x8d\x7b\x8c\x7b\x9b\x7b\x8e\x7b\x85\x7b\x98\x52\x84\x7b\x99\x7b\xa4\x7b\x82\x7c\xbb\x7c\xbf\x7c\xbc\x7c\xba\x7d\xa7\x7d\xb7\x7d\xc2\x7d\xa3\x7d\xaa\x7d\xc1\x7d\xc0\x7d\xc5\x7d\x9d\x7d\xce\x7d\xc4\x7d\xc6\x7d\xcb\x7d\xcc\x7d\xaf\x7d\xb9\x7d\x96\x7d\xbc\x7d\x9f\x7d\xa6\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xae\x7d\xa9\x7d\xa1\x7d\xc9\x7f\x73\x7f\xe2\x7f\xe3\x7f\xe5\x7f\xde\x80\x24\x80\x5d\x80\x5c\x81\x89\x81\x86\x81\x83\x81\x87\x81\x8d\x81\x8c\x81\x8b\x82\x15\x84\x97\x84\xa4\x84\xa1\x84\x9f\x84\xba\x84\xce\x84\xc2\x84\xac\x84\xae\x84\xab\x84\xb9\x84\xb4\x84\xc1\x84\xcd\x84\xaa\x84\x9a\x84\xb1\x84\xd0\x84\x9d\x84\xa7\x84\xbb\x84\xa2\x84\x94\x84\xc7\x84\xcc\x84\x9b\x84\xa9\x84\xaf\x84\xa8\x84\xd6\x84\x98\x84\xb6\x84\xcf\x84\xa0\x84\xd7\x84\xd4\x84\xd2\x84\xdb\x84\xb0\x84\x91\x86\x61\x87\x33\x87\x23", /* 7f80 */ "\x00\x00\x87\x28\x87\x6b\x87\x40\x87\x2e\x87\x1e\x87\x21\x87\x19\x87\x1b\x87\x43\x87\x2c\x87\x41\x87\x3e\x87\x46\x87\x20\x87\x32\x87\x2a\x87\x2d\x87\x3c\x87\x12\x87\x3a\x87\x31\x87\x35\x87\x42\x87\x26\x87\x27\x87\x38\x87\x24\x87\x1a\x87\x30\x87\x11\x88\xf7\x88\xe7\x88\xf1\x88\xf2\x88\xfa\x88\xfe\x88\xee\x88\xfc\x88\xf6\x88\xfb\x88\xf0\x88\xec\x88\xeb\x89\x9d\x89\xa1\x89\x9f\x89\x9e\x89\xe9\x89\xeb\x89\xe8\x8a\xab\x8a\x99\x8a\x8b\x8a\x92\x8a\x8f\x8a\x96\x8c\x3d\x8c\x68\x8c\x69\x8c\xd5\x8c\xcf\x8c\xd7\x8d\x96\x8e\x09\x8e\x02\x8d\xff\x8e\x0d\x8d\xfd\x8e\x0a\x8e\x03\x8e\x07\x8e\x06\x8e\x05\x8d\xfe\x8e\x00\x8e\x04\x8f\x10\x8f\x11\x8f\x0e\x8f\x0d\x91\x23\x91\x1c\x91\x20\x91\x22\x91\x1f\x91\x1d\x91\x1a\x91\x24\x91\x21\x91\x1b\x91\x7a\x91\x72\x91\x79\x91\x73\x92\xa5\x92\xa4\x92\x76\x92\x9b\x92\x7a\x92\xa0\x92\x94\x92\xaa\x92\x8d\x92\xa6\x92\x9a\x92\xab\x92\x79\x92\x97\x92\x7f\x92\xa3\x92\xee\x92\x8e\x92\x82\x92\x95\x92\xa2\x92\x7d\x92\x88\x92\xa1\x92\x8a\x92\x86\x92\x8c\x92\x99\x92\xa7\x92\x7e\x92\x87\x00\x00\x00\x00", /* 8000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\xa9\x92\x9d\x92\x8b\x92\x2d\x96\x9e\x96\xa1\x96\xff\x97\x58\x97\x7d\x97\x7a\x97\x7e\x97\x83\x97\x80\x97\x82\x97\x7b\x97\x84\x97\x81\x97\x7f\x97\xce\x97\xcd\x98\x16\x98\xad\x98\xae\x99\x02\x99\x00\x99\x07\x99\x9d\x99\x9c\x99\xc3\x99\xb9\x99\xbb\x99\xba\x99\xc2\x99\xbd\x99\xc7\x9a\xb1\x9a\xe3\x9a\xe7\x9b\x3e\x9b\x3f\x9b\x60\x9b\x61\x9b\x5f\x9c\xf1\x9c\xf2\x9c\xf5\x9e\xa7\x50\xff\x51\x03\x51\x30\x50\xf8\x51\x06\x51\x07\x50\xf6\x50\xfe\x51\x0b\x51\x0c\x50\xfd\x51\x0a\x52\x8b\x52\x8c\x52\xf1\x52\xef", /* 8080 */ "\x00\x00\x56\x48\x56\x42\x56\x4c\x56\x35\x56\x41\x56\x4a\x56\x49\x56\x46\x56\x58\x56\x5a\x56\x40\x56\x33\x56\x3d\x56\x2c\x56\x3e\x56\x38\x56\x2a\x56\x3a\x57\x1a\x58\xab\x58\x9d\x58\xb1\x58\xa0\x58\xa3\x58\xaf\x58\xac\x58\xa5\x58\xa1\x58\xff\x5a\xff\x5a\xf4\x5a\xfd\x5a\xf7\x5a\xf6\x5b\x03\x5a\xf8\x5b\x02\x5a\xf9\x5b\x01\x5b\x07\x5b\x05\x5b\x0f\x5c\x67\x5d\x99\x5d\x97\x5d\x9f\x5d\x92\x5d\xa2\x5d\x93\x5d\x95\x5d\xa0\x5d\x9c\x5d\xa1\x5d\x9a\x5d\x9e\x5e\x69\x5e\x5d\x5e\x60\x5e\x5c\x7d\xf3\x5e\xdb\x5e\xde\x5e\xe1\x5f\x49\x5f\xb2\x61\x8b\x61\x83\x61\x79\x61\xb1\x61\xb0\x61\xa2\x61\x89\x61\x9b\x61\x93\x61\xaf\x61\xad\x61\x9f\x61\x92\x61\xaa\x61\xa1\x61\x8d\x61\x66\x61\xb3\x62\x2d\x64\x6e\x64\x70\x64\x96\x64\xa0\x64\x85\x64\x97\x64\x9c\x64\x8f\x64\x8b\x64\x8a\x64\x8c\x64\xa3\x64\x9f\x64\x68\x64\xb1\x64\x98\x65\x76\x65\x7a\x65\x79\x65\x7b\x65\xb2\x65\xb3\x66\xb5\x66\xb0\x66\xa9\x66\xb2\x66\xb7\x66\xaa\x66\xaf\x6a\x00\x6a\x06\x6a\x17\x69\xe5\x69\xf8\x6a\x15\x69\xf1\x69\xe4\x6a\x20\x69\xff\x69\xec\x69\xe2\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1b\x6a\x1d\x69\xfe\x6a\x27\x69\xf2\x69\xee\x6a\x14\x69\xf7\x69\xe7\x6a\x40\x6a\x08\x69\xe6\x69\xfb\x6a\x0d\x69\xfc\x69\xeb\x6a\x09\x6a\x04\x6a\x18\x6a\x25\x6a\x0f\x69\xf6\x6a\x26\x6a\x07\x69\xf4\x6a\x16\x6b\x51\x6b\xa5\x6b\xa3\x6b\xa2\x6b\xa6\x6c\x01\x6c\x00\x6b\xff\x6c\x02\x6f\x41\x6f\x26\x6f\x7e\x6f\x87\x6f\xc6\x6f\x92\x6f\x8d\x6f\x89\x6f\x8c\x6f\x62\x6f\x4f\x6f\x85\x6f\x5a\x6f\x96\x6f\x76\x6f\x6c\x6f\x82\x6f\x55\x6f\x72\x6f\x52\x6f\x50\x6f\x57\x6f\x94\x6f\x93\x6f\x5d\x6f\x00\x6f\x61\x6f\x6b", /* 8180 */ "\x00\x00\x6f\x7d\x6f\x67\x6f\x90\x6f\x53\x6f\x8b\x6f\x69\x6f\x7f\x6f\x95\x6f\x63\x6f\x77\x6f\x6a\x6f\x7b\x71\xb2\x71\xaf\x71\x9b\x71\xb0\x71\xa0\x71\x9a\x71\xa9\x71\xb5\x71\x9d\x71\xa5\x71\x9e\x71\xa4\x71\xa1\x71\xaa\x71\x9c\x71\xa7\x71\xb3\x72\x98\x72\x9a\x73\x58\x73\x52\x73\x5e\x73\x5f\x73\x60\x73\x5d\x73\x5b\x73\x61\x73\x5a\x73\x59\x73\x62\x74\x87\x74\x89\x74\x8a\x74\x86\x74\x81\x74\x7d\x74\x85\x74\x88\x74\x7c\x74\x79\x75\x08\x75\x07\x75\x7e\x76\x25\x76\x1e\x76\x19\x76\x1d\x76\x1c\x76\x23\x76\x1a\x76\x28\x76\x1b\x76\x9c\x76\x9d\x76\x9e\x76\x9b\x77\x8d\x77\x8f\x77\x89\x77\x88\x78\xcd\x78\xbb\x78\xcf\x78\xcc\x78\xd1\x78\xce\x78\xd4\x78\xc8\x78\xc3\x78\xc4\x78\xc9\x79\x9a\x79\xa1\x79\xa0\x79\x9c\x79\xa2\x79\x9b\x6b\x76\x7a\x39\x7a\xb2\x7a\xb4\x7a\xb3\x7b\xb7\x7b\xcb\x7b\xbe\x7b\xac\x7b\xce\x7b\xaf\x7b\xb9\x7b\xca\x7b\xb5\x7c\xc5\x7c\xc8\x7c\xcc\x7c\xcb\x7d\xf7\x7d\xdb\x7d\xea\x7d\xe7\x7d\xd7\x7d\xe1\x7e\x03\x7d\xfa\x7d\xe6\x7d\xf6\x7d\xf1\x7d\xf0\x7d\xee\x7d\xdf\x7f\x76\x7f\xac\x7f\xb0\x7f\xad\x00\x00\x00\x00", /* 8200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xed\x7f\xeb\x7f\xea\x7f\xec\x7f\xe6\x7f\xe8\x80\x64\x80\x67\x81\xa3\x81\x9f\x81\x9e\x81\x95\x81\xa2\x81\x99\x81\x97\x82\x16\x82\x4f\x82\x53\x82\x52\x82\x50\x82\x4e\x82\x51\x85\x24\x85\x3b\x85\x0f\x85\x00\x85\x29\x85\x0e\x85\x09\x85\x0d\x85\x1f\x85\x0a\x85\x27\x85\x1c\x84\xfb\x85\x2b\x84\xfa\x85\x08\x85\x0c\x84\xf4\x85\x2a\x84\xf2\x85\x15\x84\xf7\x84\xeb\x84\xf3\x84\xfc\x85\x12\x84\xea\x84\xe9\x85\x16\x84\xfe\x85\x28\x85\x1d\x85\x2e\x85\x02\x84\xfd\x85\x1e\x84\xf6\x85\x31\x85\x26\x84\xe7\x84\xe8", /* 8280 */ "\x00\x00\x84\xf0\x84\xef\x84\xf9\x85\x18\x85\x20\x85\x30\x85\x0b\x85\x19\x85\x2f\x86\x62\x87\x56\x87\x63\x87\x64\x87\x77\x87\xe1\x87\x73\x87\x58\x87\x54\x87\x5b\x87\x52\x87\x61\x87\x5a\x87\x51\x87\x5e\x87\x6d\x87\x6a\x87\x50\x87\x4e\x87\x5f\x87\x5d\x87\x6f\x87\x6c\x87\x7a\x87\x6e\x87\x5c\x87\x65\x87\x4f\x87\x7b\x87\x75\x87\x62\x87\x67\x87\x69\x88\x5a\x89\x05\x89\x0c\x89\x14\x89\x0b\x89\x17\x89\x18\x89\x19\x89\x06\x89\x16\x89\x11\x89\x0e\x89\x09\x89\xa2\x89\xa4\x89\xa3\x89\xed\x89\xf0\x89\xec\x8a\xcf\x8a\xc6\x8a\xb8\x8a\xd3\x8a\xd1\x8a\xd4\x8a\xd5\x8a\xbb\x8a\xd7\x8a\xbe\x8a\xc0\x8a\xc5\x8a\xd8\x8a\xc3\x8a\xba\x8a\xbd\x8a\xd9\x8c\x3e\x8c\x4d\x8c\x8f\x8c\xe5\x8c\xdf\x8c\xd9\x8c\xe8\x8c\xda\x8c\xdd\x8c\xe7\x8d\xa0\x8d\x9c\x8d\xa1\x8d\x9b\x8e\x20\x8e\x23\x8e\x25\x8e\x24\x8e\x2e\x8e\x15\x8e\x1b\x8e\x16\x8e\x11\x8e\x19\x8e\x26\x8e\x27\x8e\x14\x8e\x12\x8e\x18\x8e\x13\x8e\x1c\x8e\x17\x8e\x1a\x8f\x2c\x8f\x24\x8f\x18\x8f\x1a\x8f\x20\x8f\x23\x8f\x16\x8f\x17\x90\x73\x90\x70\x90\x6f\x90\x67\x90\x6b\x91\x2f\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x2b\x91\x29\x91\x2a\x91\x32\x91\x26\x91\x2e\x91\x85\x91\x86\x91\x8a\x91\x81\x91\x82\x91\x84\x91\x80\x92\xd0\x92\xc3\x92\xc4\x92\xc0\x92\xd9\x92\xb6\x92\xcf\x92\xf1\x92\xdf\x92\xd8\x92\xe9\x92\xd7\x92\xdd\x92\xcc\x92\xef\x92\xc2\x92\xe8\x92\xca\x92\xc8\x92\xce\x92\xe6\x92\xcd\x92\xd5\x92\xc9\x92\xe0\x92\xde\x92\xe7\x92\xd1\x92\xd3\x92\xb5\x92\xe1\x92\xc6\x92\xb4\x95\x7c\x95\xac\x95\xab\x95\xae\x95\xb0\x96\xa4\x96\xa2\x96\xd3\x97\x05\x97\x08\x97\x02\x97\x5a\x97\x8a\x97\x8e\x97\x88\x97\xd0\x97\xcf", /* 8380 */ "\x00\x00\x98\x1e\x98\x1d\x98\x26\x98\x29\x98\x28\x98\x20\x98\x1b\x98\x27\x98\xb2\x99\x08\x98\xfa\x99\x11\x99\x14\x99\x16\x99\x17\x99\x15\x99\xdc\x99\xcd\x99\xcf\x99\xd3\x99\xd4\x99\xce\x99\xc9\x99\xd6\x99\xd8\x99\xcb\x99\xd7\x99\xcc\x9a\xb3\x9a\xec\x9a\xeb\x9a\xf3\x9a\xf2\x9a\xf1\x9b\x46\x9b\x43\x9b\x67\x9b\x74\x9b\x71\x9b\x66\x9b\x76\x9b\x75\x9b\x70\x9b\x68\x9b\x64\x9b\x6c\x9c\xfc\x9c\xfa\x9c\xfd\x9c\xff\x9c\xf7\x9d\x07\x9d\x00\x9c\xf9\x9c\xfb\x9d\x08\x9d\x05\x9d\x04\x9e\x83\x9e\xd3\x9f\x0f\x9f\x10\x51\x1c\x51\x13\x51\x17\x51\x1a\x51\x11\x51\xde\x53\x34\x53\xe1\x56\x70\x56\x60\x56\x6e\x56\x73\x56\x66\x56\x63\x56\x6d\x56\x72\x56\x5e\x56\x77\x57\x1c\x57\x1b\x58\xc8\x58\xbd\x58\xc9\x58\xbf\x58\xba\x58\xc2\x58\xbc\x58\xc6\x5b\x17\x5b\x19\x5b\x1b\x5b\x21\x5b\x14\x5b\x13\x5b\x10\x5b\x16\x5b\x28\x5b\x1a\x5b\x20\x5b\x1e\x5b\xef\x5d\xac\x5d\xb1\x5d\xa9\x5d\xa7\x5d\xb5\x5d\xb0\x5d\xae\x5d\xaa\x5d\xa8\x5d\xb2\x5d\xad\x5d\xaf\x5d\xb4\x5e\x67\x5e\x68\x5e\x66\x5e\x6f\x5e\xe9\x5e\xe7\x5e\xe6\x5e\xe8\x5e\xe5\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4b\x5f\xbc\x61\x9d\x61\xa8\x61\x96\x61\xc5\x61\xb4\x61\xc6\x61\xc1\x61\xcc\x61\xba\x61\xbf\x61\xb8\x61\x8c\x64\xd7\x64\xd6\x64\xd0\x64\xcf\x64\xc9\x64\xbd\x64\x89\x64\xc3\x64\xdb\x64\xf3\x64\xd9\x65\x33\x65\x7f\x65\x7c\x65\xa2\x66\xc8\x66\xbe\x66\xc0\x66\xca\x66\xcb\x66\xcf\x66\xbd\x66\xbb\x66\xba\x66\xcc\x67\x23\x6a\x34\x6a\x66\x6a\x49\x6a\x67\x6a\x32\x6a\x68\x6a\x3e\x6a\x5d\x6a\x6d\x6a\x76\x6a\x5b\x6a\x51\x6a\x28\x6a\x5a\x6a\x3b\x6a\x3f\x6a\x41\x6a\x6a\x6a\x64\x6a\x50\x6a\x4f\x6a\x54\x6a\x6f", /* 8480 */ "\x00\x00\x6a\x69\x6a\x60\x6a\x3c\x6a\x5e\x6a\x56\x6a\x55\x6a\x4d\x6a\x4e\x6a\x46\x6b\x55\x6b\x54\x6b\x56\x6b\xa7\x6b\xaa\x6b\xab\x6b\xc8\x6b\xc7\x6c\x04\x6c\x03\x6c\x06\x6f\xad\x6f\xcb\x6f\xa3\x6f\xc7\x6f\xbc\x6f\xce\x6f\xc8\x6f\x5e\x6f\xc4\x6f\xbd\x6f\x9e\x6f\xca\x6f\xa8\x70\x04\x6f\xa5\x6f\xae\x6f\xba\x6f\xac\x6f\xaa\x6f\xcf\x6f\xbf\x6f\xb8\x6f\xa2\x6f\xc9\x6f\xab\x6f\xcd\x6f\xaf\x6f\xb2\x6f\xb0\x71\xc5\x71\xc2\x71\xbf\x71\xb8\x71\xd6\x71\xc0\x71\xc1\x71\xcb\x71\xd4\x71\xca\x71\xc7\x71\xcf\x71\xbd\x71\xd8\x71\xbc\x71\xc6\x71\xda\x71\xdb\x72\x9d\x72\x9e\x73\x69\x73\x66\x73\x67\x73\x6c\x73\x65\x73\x6b\x73\x6a\x74\x7f\x74\x9a\x74\xa0\x74\x94\x74\x92\x74\x95\x74\xa1\x75\x0b\x75\x80\x76\x2f\x76\x2d\x76\x31\x76\x3d\x76\x33\x76\x3c\x76\x35\x76\x32\x76\x30\x76\xbb\x76\xe6\x77\x9a\x77\x9d\x77\xa1\x77\x9c\x77\x9b\x77\xa2\x77\xa3\x77\x95\x77\x99\x77\x97\x78\xdd\x78\xe9\x78\xe5\x78\xea\x78\xde\x78\xe3\x78\xdb\x78\xe1\x78\xe2\x78\xed\x78\xdf\x78\xe0\x79\xa4\x7a\x44\x7a\x48\x7a\x47\x7a\xb6\x7a\xb8\x7a\xb5\x00\x00\x00\x00", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xb1\x7a\xb7\x7b\xde\x7b\xe3\x7b\xe7\x7b\xdd\x7b\xd5\x7b\xe5\x7b\xda\x7b\xe8\x7b\xf9\x7b\xd4\x7b\xea\x7b\xe2\x7b\xdc\x7b\xeb\x7b\xd8\x7b\xdf\x7c\xd2\x7c\xd4\x7c\xd7\x7c\xd0\x7c\xd1\x7e\x12\x7e\x21\x7e\x17\x7e\x0c\x7e\x1f\x7e\x20\x7e\x13\x7e\x0e\x7e\x1c\x7e\x15\x7e\x1a\x7e\x22\x7e\x0b\x7e\x0f\x7e\x16\x7e\x0d\x7e\x14\x7e\x25\x7e\x24\x7f\x43\x7f\x7b\x7f\x7c\x7f\x7a\x7f\xb1\x7f\xef\x80\x2a\x80\x29\x80\x6c\x81\xb1\x81\xa6\x81\xae\x81\xb9\x81\xb5\x81\xab\x81\xb0\x81\xac\x81\xb4\x81\xb2\x81\xb7\x81\xa7", /* 8580 */ "\x00\x00\x81\xf2\x82\x55\x82\x56\x82\x57\x85\x56\x85\x45\x85\x6b\x85\x4d\x85\x53\x85\x61\x85\x58\x85\x40\x85\x46\x85\x64\x85\x41\x85\x62\x85\x44\x85\x51\x85\x47\x85\x63\x85\x3e\x85\x5b\x85\x71\x85\x4e\x85\x6e\x85\x75\x85\x55\x85\x67\x85\x60\x85\x8c\x85\x66\x85\x5d\x85\x54\x85\x65\x85\x6c\x86\x63\x86\x65\x86\x64\x87\x9b\x87\x8f\x87\x97\x87\x93\x87\x92\x87\x88\x87\x81\x87\x96\x87\x98\x87\x79\x87\x87\x87\xa3\x87\x85\x87\x90\x87\x91\x87\x9d\x87\x84\x87\x94\x87\x9c\x87\x9a\x87\x89\x89\x1e\x89\x26\x89\x30\x89\x2d\x89\x2e\x89\x27\x89\x31\x89\x22\x89\x29\x89\x23\x89\x2f\x89\x2c\x89\x1f\x89\xf1\x8a\xe0\x8a\xe2\x8a\xf2\x8a\xf4\x8a\xf5\x8a\xdd\x8b\x14\x8a\xe4\x8a\xdf\x8a\xf0\x8a\xc8\x8a\xde\x8a\xe1\x8a\xe8\x8a\xff\x8a\xef\x8a\xfb\x8c\x91\x8c\x92\x8c\x90\x8c\xf5\x8c\xee\x8c\xf1\x8c\xf0\x8c\xf3\x8d\x6c\x8d\x6e\x8d\xa5\x8d\xa7\x8e\x33\x8e\x3e\x8e\x38\x8e\x40\x8e\x45\x8e\x36\x8e\x3c\x8e\x3d\x8e\x41\x8e\x30\x8e\x3f\x8e\xbd\x8f\x36\x8f\x2e\x8f\x35\x8f\x32\x8f\x39\x8f\x37\x8f\x34\x90\x76\x90\x79\x90\x7b\x90\x86\x00\x00\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xfa\x91\x33\x91\x35\x91\x36\x91\x93\x91\x90\x91\x91\x91\x8d\x91\x8f\x93\x27\x93\x1e\x93\x08\x93\x1f\x93\x06\x93\x0f\x93\x7a\x93\x38\x93\x3c\x93\x1b\x93\x23\x93\x12\x93\x01\x93\x46\x93\x2d\x93\x0e\x93\x0d\x92\xcb\x93\x1d\x92\xfa\x93\x25\x93\x13\x92\xf9\x92\xf7\x93\x34\x93\x02\x93\x24\x92\xff\x93\x29\x93\x39\x93\x35\x93\x2a\x93\x14\x93\x0c\x93\x0b\x92\xfe\x93\x09\x93\x00\x92\xfb\x93\x16\x95\xbc\x95\xcd\x95\xbe\x95\xb9\x95\xba\x95\xb6\x95\xbf\x95\xb5\x95\xbd\x96\xa9\x96\xd4\x97\x0b\x97\x12\x97\x10", /* 8680 */ "\x00\x00\x97\x99\x97\x97\x97\x94\x97\xf0\x97\xf8\x98\x35\x98\x2f\x98\x32\x99\x24\x99\x1f\x99\x27\x99\x29\x99\x9e\x99\xee\x99\xec\x99\xe5\x99\xe4\x99\xf0\x99\xe3\x99\xea\x99\xe9\x99\xe7\x9a\xb9\x9a\xbf\x9a\xb4\x9a\xbb\x9a\xf6\x9a\xfa\x9a\xf9\x9a\xf7\x9b\x33\x9b\x80\x9b\x85\x9b\x87\x9b\x7c\x9b\x7e\x9b\x7b\x9b\x82\x9b\x93\x9b\x92\x9b\x90\x9b\x7a\x9b\x95\x9b\x7d\x9b\x88\x9d\x25\x9d\x17\x9d\x20\x9d\x1e\x9d\x14\x9d\x29\x9d\x1d\x9d\x18\x9d\x22\x9d\x10\x9d\x19\x9d\x1f\x9e\x88\x9e\x86\x9e\x87\x9e\xae\x9e\xad\x9e\xd5\x9e\xd6\x9e\xfa\x9f\x12\x9f\x3d\x51\x26\x51\x25\x51\x22\x51\x24\x51\x20\x51\x29\x52\xf4\x56\x93\x56\x8c\x56\x8d\x56\x86\x56\x84\x56\x83\x56\x7e\x56\x82\x56\x7f\x56\x81\x58\xd6\x58\xd4\x58\xcf\x58\xd2\x5b\x2d\x5b\x25\x5b\x32\x5b\x23\x5b\x2c\x5b\x27\x5b\x26\x5b\x2f\x5b\x2e\x5b\x7b\x5b\xf1\x5b\xf2\x5d\xb7\x5e\x6c\x5e\x6a\x5f\xbe\x5f\xbb\x61\xc3\x61\xb5\x61\xbc\x61\xe7\x61\xe0\x61\xe5\x61\xe4\x61\xe8\x61\xde\x64\xef\x64\xe9\x64\xe3\x64\xeb\x64\xe4\x64\xe8\x65\x81\x65\x80\x65\xb6\x65\xda\x66\xd2\x00\x00\x00\x00", /* 8700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8d\x6a\x96\x6a\x81\x6a\xa5\x6a\x89\x6a\x9f\x6a\x9b\x6a\xa1\x6a\x9e\x6a\x87\x6a\x93\x6a\x8e\x6a\x95\x6a\x83\x6a\xa8\x6a\xa4\x6a\x91\x6a\x7f\x6a\xa6\x6a\x9a\x6a\x85\x6a\x8c\x6a\x92\x6b\x5b\x6b\xad\x6c\x09\x6f\xcc\x6f\xa9\x6f\xf4\x6f\xd4\x6f\xe3\x6f\xdc\x6f\xed\x6f\xe7\x6f\xe6\x6f\xde\x6f\xf2\x6f\xdd\x6f\xe2\x6f\xe8\x71\xe1\x71\xf1\x71\xe8\x71\xf2\x71\xe4\x71\xf0\x71\xe2\x73\x73\x73\x6e\x73\x6f\x74\x97\x74\xb2\x74\xab\x74\x90\x74\xaa\x74\xad\x74\xb1\x74\xa5\x74\xaf\x75\x10\x75\x11\x75\x12\x75\x0f", /* 8780 */ "\x00\x00\x75\x84\x76\x43\x76\x48\x76\x49\x76\x47\x76\xa4\x76\xe9\x77\xb5\x77\xab\x77\xb2\x77\xb7\x77\xb6\x77\xb4\x77\xb1\x77\xa8\x77\xf0\x78\xf3\x78\xfd\x79\x02\x78\xfb\x78\xfc\x78\xf2\x79\x05\x78\xf9\x78\xfe\x79\x04\x79\xab\x79\xa8\x7a\x5c\x7a\x5b\x7a\x56\x7a\x58\x7a\x54\x7a\x5a\x7a\xbe\x7a\xc0\x7a\xc1\x7c\x05\x7c\x0f\x7b\xf2\x7c\x00\x7b\xff\x7b\xfb\x7c\x0e\x7b\xf4\x7c\x0b\x7b\xf3\x7c\x02\x7c\x09\x7c\x03\x7c\x01\x7b\xf8\x7b\xfd\x7c\x06\x7b\xf0\x7b\xf1\x7c\x10\x7c\x0a\x7c\xe8\x7e\x2d\x7e\x3c\x7e\x42\x7e\x33\x98\x48\x7e\x38\x7e\x2a\x7e\x49\x7e\x40\x7e\x47\x7e\x29\x7e\x4c\x7e\x30\x7e\x3b\x7e\x36\x7e\x44\x7e\x3a\x7f\x45\x7f\x7f\x7f\x7e\x7f\x7d\x7f\xf4\x7f\xf2\x80\x2c\x81\xbb\x81\xc4\x81\xcc\x81\xca\x81\xc5\x81\xc7\x81\xbc\x81\xe9\x82\x5b\x82\x5a\x82\x5c\x85\x83\x85\x80\x85\x8f\x85\xa7\x85\x95\x85\xa0\x85\x8b\x85\xa3\x85\x7b\x85\xa4\x85\x9a\x85\x9e\x85\x77\x85\x7c\x85\x89\x85\xa1\x85\x7a\x85\x78\x85\x57\x85\x8e\x85\x96\x85\x86\x85\x8d\x85\x99\x85\x9d\x85\x81\x85\xa2\x85\x82\x85\x88\x85\x85\x85\x79\x00\x00\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x76\x85\x98\x85\x90\x85\x9f\x86\x68\x87\xbe\x87\xaa\x87\xad\x87\xc5\x87\xb0\x87\xac\x87\xb9\x87\xb5\x87\xbc\x87\xae\x87\xc9\x87\xc3\x87\xc2\x87\xcc\x87\xb7\x87\xaf\x87\xc4\x87\xca\x87\xb4\x87\xb6\x87\xbf\x87\xb8\x87\xbd\x87\xde\x87\xb2\x89\x35\x89\x33\x89\x3c\x89\x3e\x89\x41\x89\x52\x89\x37\x89\x42\x89\xad\x89\xaf\x89\xae\x89\xf2\x89\xf3\x8b\x1e\x8b\x18\x8b\x16\x8b\x11\x8b\x05\x8b\x0b\x8b\x22\x8b\x0f\x8b\x12\x8b\x15\x8b\x07\x8b\x0d\x8b\x08\x8b\x06\x8b\x1c\x8b\x13\x8b\x1a\x8c\x4f\x8c\x70\x8c\x72", /* 8880 */ "\x00\x00\x8c\x71\x8c\x6f\x8c\x95\x8c\x94\x8c\xf9\x8d\x6f\x8e\x4e\x8e\x4d\x8e\x53\x8e\x50\x8e\x4c\x8e\x47\x8f\x43\x8f\x40\x90\x85\x90\x7e\x91\x38\x91\x9a\x91\xa2\x91\x9b\x91\x99\x91\x9f\x91\xa1\x91\x9d\x91\xa0\x93\xa1\x93\x83\x93\xaf\x93\x64\x93\x56\x93\x47\x93\x7c\x93\x58\x93\x5c\x93\x76\x93\x49\x93\x50\x93\x51\x93\x60\x93\x6d\x93\x8f\x93\x4c\x93\x6a\x93\x79\x93\x57\x93\x55\x93\x52\x93\x4f\x93\x71\x93\x77\x93\x7b\x93\x61\x93\x5e\x93\x63\x93\x67\x93\x80\x93\x4e\x93\x59\x95\xc7\x95\xc0\x95\xc9\x95\xc3\x95\xc5\x95\xb7\x96\xae\x96\xb0\x96\xac\x97\x20\x97\x1f\x97\x18\x97\x1d\x97\x19\x97\x9a\x97\xa1\x97\x9c\x97\x9e\x97\x9d\x97\xd5\x97\xd4\x97\xf1\x98\x41\x98\x44\x98\x4a\x98\x49\x98\x45\x98\x43\x99\x25\x99\x2b\x99\x2c\x99\x2a\x99\x33\x99\x32\x99\x2f\x99\x2d\x99\x31\x99\x30\x99\x98\x99\xa3\x99\xa1\x9a\x02\x99\xfa\x99\xf4\x99\xf7\x99\xf9\x99\xf8\x99\xf6\x99\xfb\x99\xfd\x99\xfe\x99\xfc\x9a\x03\x9a\xbe\x9a\xfe\x9a\xfd\x9b\x01\x9a\xfc\x9b\x48\x9b\x9a\x9b\xa8\x9b\x9e\x9b\x9b\x9b\xa6\x9b\xa1\x9b\xa5\x9b\xa4\x00\x00\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x86\x9b\xa2\x9b\xa0\x9b\xaf\x9d\x33\x9d\x41\x9d\x67\x9d\x36\x9d\x2e\x9d\x2f\x9d\x31\x9d\x38\x9d\x30\x9d\x45\x9d\x42\x9d\x43\x9d\x3e\x9d\x37\x9d\x40\x9d\x3d\x7f\xf5\x9d\x2d\x9e\x8a\x9e\x89\x9e\x8d\x9e\xb0\x9e\xc8\x9e\xda\x9e\xfb\x9e\xff\x9f\x24\x9f\x23\x9f\x22\x9f\x54\x9f\xa0\x51\x31\x51\x2d\x51\x2e\x56\x98\x56\x9c\x56\x97\x56\x9a\x56\x9d\x56\x99\x59\x70\x5b\x3c\x5c\x69\x5c\x6a\x5d\xc0\x5e\x6d\x5e\x6e\x61\xd8\x61\xdf\x61\xed\x61\xee\x61\xf1\x61\xea\x61\xf0\x61\xeb\x61\xd6\x61\xe9\x64\xff\x65\x04", /* 8980 */ "\x00\x00\x64\xfd\x64\xf8\x65\x01\x65\x03\x64\xfc\x65\x94\x65\xdb\x66\xda\x66\xdb\x66\xd8\x6a\xc5\x6a\xb9\x6a\xbd\x6a\xe1\x6a\xc6\x6a\xba\x6a\xb6\x6a\xb7\x6a\xc7\x6a\xb4\x6a\xad\x6b\x5e\x6b\xc9\x6c\x0b\x70\x07\x70\x0c\x70\x0d\x70\x01\x70\x05\x70\x14\x70\x0e\x6f\xff\x70\x00\x6f\xfb\x70\x26\x6f\xfc\x6f\xf7\x70\x0a\x72\x01\x71\xff\x71\xf9\x72\x03\x71\xfd\x73\x76\x74\xb8\x74\xc0\x74\xb5\x74\xc1\x74\xbe\x74\xb6\x74\xbb\x74\xc2\x75\x14\x75\x13\x76\x5c\x76\x64\x76\x59\x76\x50\x76\x53\x76\x57\x76\x5a\x76\xa6\x76\xbd\x76\xec\x77\xc2\x77\xba\x78\xff\x79\x0c\x79\x13\x79\x14\x79\x09\x79\x10\x79\x12\x79\x11\x79\xad\x79\xac\x7a\x5f\x7c\x1c\x7c\x29\x7c\x19\x7c\x20\x7c\x1f\x7c\x2d\x7c\x1d\x7c\x26\x7c\x28\x7c\x22\x7c\x25\x7c\x30\x7e\x5c\x7e\x50\x7e\x56\x7e\x63\x7e\x58\x7e\x62\x7e\x5f\x7e\x51\x7e\x60\x7e\x57\x7e\x53\x7f\xb5\x7f\xb3\x7f\xf7\x7f\xf8\x80\x75\x81\xd1\x81\xd2\x81\xd0\x82\x5f\x82\x5e\x85\xb4\x85\xc6\x85\xc0\x85\xc3\x85\xc2\x85\xb3\x85\xb5\x85\xbd\x85\xc7\x85\xc4\x85\xbf\x85\xcb\x85\xce\x85\xc8\x85\xc5\x00\x00\x00\x00", /* 8a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\xb1\x85\xb6\x85\xd2\x86\x24\x85\xb8\x85\xb7\x85\xbe\x86\x69\x87\xe7\x87\xe6\x87\xe2\x87\xdb\x87\xeb\x87\xea\x87\xe5\x87\xdf\x87\xf3\x87\xe4\x87\xd4\x87\xdc\x87\xd3\x87\xed\x87\xd8\x87\xe3\x87\xa4\x87\xd7\x87\xd9\x88\x01\x87\xf4\x87\xe8\x87\xdd\x89\x53\x89\x4b\x89\x4f\x89\x4c\x89\x46\x89\x50\x89\x51\x89\x49\x8b\x2a\x8b\x27\x8b\x23\x8b\x33\x8b\x30\x8b\x35\x8b\x47\x8b\x2f\x8b\x3c\x8b\x3e\x8b\x31\x8b\x25\x8b\x37\x8b\x26\x8b\x36\x8b\x2e\x8b\x24\x8b\x3b\x8b\x3d\x8b\x3a\x8c\x42\x8c\x75\x8c\x99\x8c\x98", /* 8a80 */ "\x00\x00\x8c\x97\x8c\xfe\x8d\x04\x8d\x02\x8d\x00\x8e\x5c\x8e\x62\x8e\x60\x8e\x57\x8e\x56\x8e\x5e\x8e\x65\x8e\x67\x8e\x5b\x8e\x5a\x8e\x61\x8e\x5d\x8e\x69\x8e\x54\x8f\x46\x8f\x47\x8f\x48\x8f\x4b\x91\x28\x91\x3a\x91\x3b\x91\x3e\x91\xa8\x91\xa5\x91\xa7\x91\xaf\x91\xaa\x93\xb5\x93\x8c\x93\x92\x93\xb7\x93\x9b\x93\x9d\x93\x89\x93\xa7\x93\x8e\x93\xaa\x93\x9e\x93\xa6\x93\x95\x93\x88\x93\x99\x93\x9f\x93\x8d\x93\xb1\x93\x91\x93\xb2\x93\xa4\x93\xa8\x93\xb4\x93\xa3\x93\xa5\x95\xd2\x95\xd3\x95\xd1\x96\xb3\x96\xd7\x96\xda\x5d\xc2\x96\xdf\x96\xd8\x96\xdd\x97\x23\x97\x22\x97\x25\x97\xac\x97\xae\x97\xa8\x97\xab\x97\xa4\x97\xaa\x97\xa2\x97\xa5\x97\xd7\x97\xd9\x97\xd6\x97\xd8\x97\xfa\x98\x50\x98\x51\x98\x52\x98\xb8\x99\x41\x99\x3c\x99\x3a\x9a\x0f\x9a\x0b\x9a\x09\x9a\x0d\x9a\x04\x9a\x11\x9a\x0a\x9a\x05\x9a\x07\x9a\x06\x9a\xc0\x9a\xdc\x9b\x08\x9b\x04\x9b\x05\x9b\x29\x9b\x35\x9b\x4a\x9b\x4c\x9b\x4b\x9b\xc7\x9b\xc6\x9b\xc3\x9b\xbf\x9b\xc1\x9b\xb5\x9b\xb8\x9b\xd3\x9b\xb6\x9b\xc4\x9b\xb9\x9b\xbd\x9d\x5c\x9d\x53\x9d\x4f\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x4a\x9d\x5b\x9d\x4b\x9d\x59\x9d\x56\x9d\x4c\x9d\x57\x9d\x52\x9d\x54\x9d\x5f\x9d\x58\x9d\x5a\x9e\x8e\x9e\x8c\x9e\xdf\x9f\x01\x9f\x00\x9f\x16\x9f\x25\x9f\x2b\x9f\x2a\x9f\x29\x9f\x28\x9f\x4c\x9f\x55\x51\x34\x51\x35\x52\x96\x52\xf7\x53\xb4\x56\xab\x56\xad\x56\xa6\x56\xa7\x56\xaa\x56\xac\x58\xda\x58\xdd\x58\xdb\x59\x12\x5b\x3d\x5b\x3e\x5b\x3f\x5d\xc3\x5e\x70\x5f\xbf\x61\xfb\x65\x07\x65\x10\x65\x0d\x65\x09\x65\x0c\x65\x0e\x65\x84\x65\xde\x65\xdd\x66\xde\x6a\xe7\x6a\xe0\x6a\xcc\x6a\xd1\x6a\xd9\x6a\xcb", /* 8b80 */ "\x00\x00\x6a\xdf\x6a\xdc\x6a\xd0\x6a\xeb\x6a\xcf\x6a\xcd\x6a\xde\x6b\x60\x6b\xb0\x6c\x0c\x70\x19\x70\x27\x70\x20\x70\x16\x70\x2b\x70\x21\x70\x22\x70\x23\x70\x29\x70\x17\x70\x24\x70\x1c\x70\x2a\x72\x0c\x72\x0a\x72\x07\x72\x02\x72\x05\x72\xa5\x72\xa6\x72\xa4\x72\xa3\x72\xa1\x74\xcb\x74\xc5\x74\xb7\x74\xc3\x75\x16\x76\x60\x77\xc9\x77\xca\x77\xc4\x77\xf1\x79\x1d\x79\x1b\x79\x21\x79\x1c\x79\x17\x79\x1e\x79\xb0\x7a\x67\x7a\x68\x7c\x33\x7c\x3c\x7c\x39\x7c\x2c\x7c\x3b\x7c\xec\x7c\xea\x7e\x76\x7e\x75\x7e\x78\x7e\x70\x7e\x77\x7e\x6f\x7e\x7a\x7e\x72\x7e\x74\x7e\x68\x7f\x4b\x7f\x4a\x7f\x83\x7f\x86\x7f\xb7\x7f\xfd\x7f\xfe\x80\x78\x81\xd7\x81\xd5\x82\x64\x82\x61\x82\x63\x85\xeb\x85\xf1\x85\xed\x85\xd9\x85\xe1\x85\xe8\x85\xda\x85\xd7\x85\xec\x85\xf2\x85\xf8\x85\xd8\x85\xdf\x85\xe3\x85\xdc\x85\xd1\x85\xf0\x85\xe6\x85\xef\x85\xde\x85\xe2\x88\x00\x87\xfa\x88\x03\x87\xf6\x87\xf7\x88\x09\x88\x0c\x88\x0b\x88\x06\x87\xfc\x88\x08\x87\xff\x88\x0a\x88\x02\x89\x62\x89\x5a\x89\x5b\x89\x57\x89\x61\x89\x5c\x89\x58\x89\x5d\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x59\x89\x88\x89\xb7\x89\xb6\x89\xf6\x8b\x50\x8b\x48\x8b\x4a\x8b\x40\x8b\x53\x8b\x56\x8b\x54\x8b\x4b\x8b\x55\x8b\x51\x8b\x42\x8b\x52\x8b\x57\x8c\x43\x8c\x77\x8c\x76\x8c\x9a\x8d\x06\x8d\x07\x8d\x09\x8d\xac\x8d\xaa\x8d\xad\x8d\xab\x8e\x6d\x8e\x78\x8e\x73\x8e\x6a\x8e\x6f\x8e\x7b\x8e\xc2\x8f\x52\x8f\x51\x8f\x4f\x8f\x50\x8f\x53\x8f\xb4\x91\x40\x91\x3f\x91\xb0\x91\xad\x93\xde\x93\xc7\x93\xcf\x93\xc2\x93\xda\x93\xd0\x93\xf9\x93\xec\x93\xcc\x93\xd9\x93\xa9\x93\xe6\x93\xca\x93\xd4\x93\xee\x93\xe3\x93\xd5", /* 8c80 */ "\x00\x00\x93\xc4\x93\xce\x93\xc0\x93\xd2\x93\xe7\x95\x7d\x95\xda\x95\xdb\x96\xe1\x97\x29\x97\x2b\x97\x2c\x97\x28\x97\x26\x97\xb3\x97\xb7\x97\xb6\x97\xdd\x97\xde\x97\xdf\x98\x5c\x98\x59\x98\x5d\x98\x57\x98\xbf\x98\xbd\x98\xbb\x98\xbe\x99\x48\x99\x47\x99\x43\x99\xa6\x99\xa7\x9a\x1a\x9a\x15\x9a\x25\x9a\x1d\x9a\x24\x9a\x1b\x9a\x22\x9a\x20\x9a\x27\x9a\x23\x9a\x1e\x9a\x1c\x9a\x14\x9a\xc2\x9b\x0b\x9b\x0a\x9b\x0e\x9b\x0c\x9b\x37\x9b\xea\x9b\xeb\x9b\xe0\x9b\xde\x9b\xe4\x9b\xe6\x9b\xe2\x9b\xf0\x9b\xd4\x9b\xd7\x9b\xec\x9b\xdc\x9b\xd9\x9b\xe5\x9b\xd5\x9b\xe1\x9b\xda\x9d\x77\x9d\x81\x9d\x8a\x9d\x84\x9d\x88\x9d\x71\x9d\x80\x9d\x78\x9d\x86\x9d\x8b\x9d\x8c\x9d\x7d\x9d\x6b\x9d\x74\x9d\x75\x9d\x70\x9d\x69\x9d\x85\x9d\x73\x9d\x7b\x9d\x82\x9d\x6f\x9d\x79\x9d\x7f\x9d\x87\x9d\x68\x9e\x94\x9e\x91\x9e\xc0\x9e\xfc\x9f\x2d\x9f\x40\x9f\x41\x9f\x4d\x9f\x56\x9f\x57\x9f\x58\x53\x37\x56\xb2\x56\xb5\x56\xb3\x58\xe3\x5b\x45\x5d\xc6\x5d\xc7\x5e\xee\x5e\xef\x5f\xc0\x5f\xc1\x61\xf9\x65\x17\x65\x16\x65\x15\x65\x13\x65\xdf\x66\xe8\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe3\x66\xe4\x6a\xf3\x6a\xf0\x6a\xea\x6a\xe8\x6a\xf9\x6a\xf1\x6a\xee\x6a\xef\x70\x3c\x70\x35\x70\x2f\x70\x37\x70\x34\x70\x31\x70\x42\x70\x38\x70\x3f\x70\x3a\x70\x39\x70\x40\x70\x3b\x70\x33\x70\x41\x72\x13\x72\x14\x72\xa8\x73\x7d\x73\x7c\x74\xba\x76\xab\x76\xaa\x76\xbe\x76\xed\x77\xcc\x77\xce\x77\xcf\x77\xcd\x77\xf2\x79\x25\x79\x23\x79\x27\x79\x28\x79\x24\x79\x29\x79\xb2\x7a\x6e\x7a\x6c\x7a\x6d\x7a\xf7\x7c\x49\x7c\x48\x7c\x4a\x7c\x47\x7c\x45\x7c\xee\x7e\x7b\x7e\x7e\x7e\x81\x7e\x80\x7f\xba\x7f\xff", /* 8d80 */ "\x00\x00\x80\x79\x81\xdb\x81\xd9\x82\x0b\x82\x68\x82\x69\x86\x22\x85\xff\x86\x01\x85\xfe\x86\x1b\x86\x00\x85\xf6\x86\x04\x86\x09\x86\x05\x86\x0c\x85\xfd\x88\x19\x88\x10\x88\x11\x88\x17\x88\x13\x88\x16\x89\x63\x89\x66\x89\xb9\x89\xf7\x8b\x60\x8b\x6a\x8b\x5d\x8b\x68\x8b\x63\x8b\x65\x8b\x67\x8b\x6d\x8d\xae\x8e\x86\x8e\x88\x8e\x84\x8f\x59\x8f\x56\x8f\x57\x8f\x55\x8f\x58\x8f\x5a\x90\x8d\x91\x43\x91\x41\x91\xb7\x91\xb5\x91\xb2\x91\xb3\x94\x0b\x94\x13\x93\xfb\x94\x20\x94\x0f\x94\x14\x93\xfe\x94\x15\x94\x10\x94\x28\x94\x19\x94\x0d\x93\xf5\x94\x00\x93\xf7\x94\x07\x94\x0e\x94\x16\x94\x12\x93\xfa\x94\x09\x93\xf8\x94\x0a\x93\xff\x93\xfc\x94\x0c\x93\xf6\x94\x11\x94\x06\x95\xde\x95\xe0\x95\xdf\x97\x2e\x97\x2f\x97\xb9\x97\xbb\x97\xfd\x97\xfe\x98\x60\x98\x62\x98\x63\x98\x5f\x98\xc1\x98\xc2\x99\x50\x99\x4e\x99\x59\x99\x4c\x99\x4b\x99\x53\x9a\x32\x9a\x34\x9a\x31\x9a\x2c\x9a\x2a\x9a\x36\x9a\x29\x9a\x2e\x9a\x38\x9a\x2d\x9a\xc7\x9a\xca\x9a\xc6\x9b\x10\x9b\x12\x9b\x11\x9c\x0b\x9c\x08\x9b\xf7\x9c\x05\x9c\x12\x9b\xf8\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x40\x9c\x07\x9c\x0e\x9c\x06\x9c\x17\x9c\x14\x9c\x09\x9d\x9f\x9d\x99\x9d\xa4\x9d\x9d\x9d\x92\x9d\x98\x9d\x90\x9d\x9b\x9d\xa0\x9d\x94\x9d\x9c\x9d\xaa\x9d\x97\x9d\xa1\x9d\x9a\x9d\xa2\x9d\xa8\x9d\x9e\x9d\xa3\x9d\xbf\x9d\xa9\x9d\x96\x9d\xa6\x9d\xa7\x9e\x99\x9e\x9b\x9e\x9a\x9e\xe5\x9e\xe4\x9e\xe7\x9e\xe6\x9f\x30\x9f\x2e\x9f\x5b\x9f\x60\x9f\x5e\x9f\x5d\x9f\x59\x9f\x91\x51\x3a\x51\x39\x52\x98\x52\x97\x56\xc3\x56\xbd\x56\xbe\x5b\x48\x5b\x47\x5d\xcb\x5d\xcf\x5e\xf1\x61\xfd\x65\x1b\x6b\x02\x6a\xfc\x6b\x03", /* 8e80 */ "\x00\x00\x6a\xf8\x6b\x00\x70\x43\x70\x44\x70\x4a\x70\x48\x70\x49\x70\x45\x70\x46\x72\x1d\x72\x1a\x72\x19\x73\x7e\x75\x17\x76\x6a\x77\xd0\x79\x2d\x79\x31\x79\x2f\x7c\x54\x7c\x53\x7c\xf2\x7e\x8a\x7e\x87\x7e\x88\x7e\x8b\x7e\x86\x7e\x8d\x7f\x4d\x7f\xbb\x80\x30\x81\xdd\x86\x18\x86\x2a\x86\x26\x86\x1f\x86\x23\x86\x1c\x86\x19\x86\x27\x86\x2e\x86\x21\x86\x20\x86\x29\x86\x1e\x86\x25\x88\x29\x88\x1d\x88\x1b\x88\x20\x88\x24\x88\x1c\x88\x2b\x88\x4a\x89\x6d\x89\x69\x89\x6e\x89\x6b\x89\xfa\x8b\x79\x8b\x78\x8b\x45\x8b\x7a\x8b\x7b\x8d\x10\x8d\x14\x8d\xaf\x8e\x8e\x8e\x8c\x8f\x5e\x8f\x5b\x8f\x5d\x91\x46\x91\x44\x91\x45\x91\xb9\x94\x3f\x94\x3b\x94\x36\x94\x29\x94\x3d\x94\x3c\x94\x30\x94\x39\x94\x2a\x94\x37\x94\x2c\x94\x40\x94\x31\x95\xe5\x95\xe4\x95\xe3\x97\x35\x97\x3a\x97\xbf\x97\xe1\x98\x64\x98\xc9\x98\xc6\x98\xc0\x99\x58\x99\x56\x9a\x39\x9a\x3d\x9a\x46\x9a\x44\x9a\x42\x9a\x41\x9a\x3a\x9a\x3f\x9a\xcd\x9b\x15\x9b\x17\x9b\x18\x9b\x16\x9b\x3a\x9b\x52\x9c\x2b\x9c\x1d\x9c\x1c\x9c\x2c\x9c\x23\x9c\x28\x9c\x29\x9c\x24\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x21\x9d\xb7\x9d\xb6\x9d\xbc\x9d\xc1\x9d\xc7\x9d\xca\x9d\xcf\x9d\xbe\x9d\xc5\x9d\xc3\x9d\xbb\x9d\xb5\x9d\xce\x9d\xb9\x9d\xba\x9d\xac\x9d\xc8\x9d\xb1\x9d\xad\x9d\xcc\x9d\xb3\x9d\xcd\x9d\xb2\x9e\x7a\x9e\x9c\x9e\xeb\x9e\xee\x9e\xed\x9f\x1b\x9f\x18\x9f\x1a\x9f\x31\x9f\x4e\x9f\x65\x9f\x64\x9f\x92\x4e\xb9\x56\xc6\x56\xc5\x56\xcb\x59\x71\x5b\x4b\x5b\x4c\x5d\xd5\x5d\xd1\x5e\xf2\x65\x21\x65\x20\x65\x26\x65\x22\x6b\x0b\x6b\x08\x6b\x09\x6c\x0d\x70\x55\x70\x56\x70\x57\x70\x52\x72\x1e\x72\x1f\x72\xa9\x73\x7f", /* 8f80 */ "\x00\x00\x74\xd8\x74\xd5\x74\xd9\x74\xd7\x76\x6d\x76\xad\x79\x35\x79\xb4\x7a\x70\x7a\x71\x7c\x57\x7c\x5c\x7c\x59\x7c\x5b\x7c\x5a\x7c\xf4\x7c\xf1\x7e\x91\x7f\x4f\x7f\x87\x81\xde\x82\x6b\x86\x34\x86\x35\x86\x33\x86\x2c\x86\x32\x86\x36\x88\x2c\x88\x28\x88\x26\x88\x2a\x88\x25\x89\x71\x89\xbf\x89\xbe\x89\xfb\x8b\x7e\x8b\x84\x8b\x82\x8b\x86\x8b\x85\x8b\x7f\x8d\x15\x8e\x95\x8e\x94\x8e\x9a\x8e\x92\x8e\x90\x8e\x96\x8e\x97\x8f\x60\x8f\x62\x91\x47\x94\x4c\x94\x50\x94\x4a\x94\x4b\x94\x4f\x94\x47\x94\x45\x94\x48\x94\x49\x94\x46\x97\x3f\x97\xe3\x98\x6a\x98\x69\x98\xcb\x99\x54\x99\x5b\x9a\x4e\x9a\x53\x9a\x54\x9a\x4c\x9a\x4f\x9a\x48\x9a\x4a\x9a\x49\x9a\x52\x9a\x50\x9a\xd0\x9b\x19\x9b\x2b\x9b\x3b\x9b\x56\x9b\x55\x9c\x46\x9c\x48\x9c\x3f\x9c\x44\x9c\x39\x9c\x33\x9c\x41\x9c\x3c\x9c\x37\x9c\x34\x9c\x32\x9c\x3d\x9c\x36\x9d\xdb\x9d\xd2\x9d\xde\x9d\xda\x9d\xcb\x9d\xd0\x9d\xdc\x9d\xd1\x9d\xdf\x9d\xe9\x9d\xd9\x9d\xd8\x9d\xd6\x9d\xf5\x9d\xd5\x9d\xdd\x9e\xb6\x9e\xf0\x9f\x35\x9f\x33\x9f\x32\x9f\x42\x9f\x6b\x9f\x95\x9f\xa2\x00\x00\x00\x00", /* 9000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x3d\x52\x99\x58\xe8\x58\xe7\x59\x72\x5b\x4d\x5d\xd8\x88\x2f\x5f\x4f\x62\x01\x62\x03\x62\x04\x65\x29\x65\x25\x65\x96\x66\xeb\x6b\x11\x6b\x12\x6b\x0f\x6b\xca\x70\x5b\x70\x5a\x72\x22\x73\x82\x73\x81\x73\x83\x76\x70\x77\xd4\x7c\x67\x7c\x66\x7e\x95\x82\x6c\x86\x3a\x86\x40\x86\x39\x86\x3c\x86\x31\x86\x3b\x86\x3e\x88\x30\x88\x32\x88\x2e\x88\x33\x89\x76\x89\x74\x89\x73\x89\xfe\x8b\x8c\x8b\x8e\x8b\x8b\x8b\x88\x8c\x45\x8d\x19\x8e\x98\x8f\x64\x8f\x63\x91\xbc\x94\x62\x94\x55\x94\x5d\x94\x57\x94\x5e\x97\xc4", /* 9080 */ "\x00\x00\x97\xc5\x98\x00\x9a\x56\x9a\x59\x9b\x1e\x9b\x1f\x9b\x20\x9c\x52\x9c\x58\x9c\x50\x9c\x4a\x9c\x4d\x9c\x4b\x9c\x55\x9c\x59\x9c\x4c\x9c\x4e\x9d\xfb\x9d\xf7\x9d\xef\x9d\xe3\x9d\xeb\x9d\xf8\x9d\xe4\x9d\xf6\x9d\xe1\x9d\xee\x9d\xe6\x9d\xf2\x9d\xf0\x9d\xe2\x9d\xec\x9d\xf4\x9d\xf3\x9d\xe8\x9d\xed\x9e\xc2\x9e\xd0\x9e\xf2\x9e\xf3\x9f\x06\x9f\x1c\x9f\x38\x9f\x37\x9f\x36\x9f\x43\x9f\x4f\x9f\x71\x9f\x70\x9f\x6e\x9f\x6f\x56\xd3\x56\xcd\x5b\x4e\x5c\x6d\x65\x2d\x66\xed\x66\xee\x6b\x13\x70\x5f\x70\x61\x70\x5d\x70\x60\x72\x23\x74\xdb\x74\xe5\x77\xd5\x79\x38\x79\xb7\x79\xb6\x7c\x6a\x7e\x97\x7f\x89\x82\x6d\x86\x43\x88\x38\x88\x37\x88\x35\x88\x4b\x8b\x94\x8b\x95\x8e\x9e\x8e\x9f\x8e\xa0\x8e\x9d\x91\xbe\x91\xbd\x91\xc2\x94\x6b\x94\x68\x94\x69\x96\xe5\x97\x46\x97\x43\x97\x47\x97\xc7\x97\xe5\x9a\x5e\x9a\xd5\x9b\x59\x9c\x63\x9c\x67\x9c\x66\x9c\x62\x9c\x5e\x9c\x60\x9e\x02\x9d\xfe\x9e\x07\x9e\x03\x9e\x06\x9e\x05\x9e\x00\x9e\x01\x9e\x09\x9d\xff\x9d\xfd\x9e\x04\x9e\xa0\x9f\x1e\x9f\x46\x9f\x74\x9f\x75\x9f\x76\x56\xd4\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x2e\x65\xb8\x6b\x18\x6b\x19\x6b\x17\x6b\x1a\x70\x62\x72\x26\x72\xaa\x77\xd8\x77\xd9\x79\x39\x7c\x69\x7c\x6b\x7c\xf6\x7e\x9a\x7e\x98\x7e\x9b\x7e\x99\x81\xe0\x81\xe1\x86\x46\x86\x47\x86\x48\x89\x79\x89\x7a\x89\x7c\x89\x7b\x89\xff\x8b\x98\x8b\x99\x8e\xa5\x8e\xa4\x8e\xa3\x94\x6e\x94\x6d\x94\x6f\x94\x71\x94\x73\x97\x49\x98\x72\x99\x5f\x9c\x68\x9c\x6e\x9c\x6d\x9e\x0b\x9e\x0d\x9e\x10\x9e\x0f\x9e\x12\x9e\x11\x9e\xa1\x9e\xf5\x9f\x09\x9f\x47\x9f\x78\x9f\x7b\x9f\x7a\x9f\x79\x57\x1e\x70\x66\x7c\x6f\x88\x3c", /* 9180 */ "\x00\x00\x8d\xb2\x8e\xa6\x91\xc3\x94\x74\x94\x78\x94\x76\x94\x75\x9a\x60\x9c\x74\x9c\x73\x9c\x71\x9c\x75\x9e\x14\x9e\x13\x9e\xf6\x9f\x0a\x9f\xa4\x70\x68\x70\x65\x7c\xf7\x86\x6a\x88\x3e\x88\x3d\x88\x3f\x8b\x9e\x8c\x9c\x8e\xa9\x8e\xc9\x97\x4b\x98\x73\x98\x74\x98\xcc\x99\x61\x99\xab\x9a\x64\x9a\x66\x9a\x67\x9b\x24\x9e\x15\x9e\x17\x9f\x48\x62\x07\x6b\x1e\x72\x27\x86\x4c\x8e\xa8\x94\x82\x94\x80\x94\x81\x9a\x69\x9a\x68\x9b\x2e\x9e\x19\x72\x29\x86\x4b\x8b\x9f\x94\x83\x9c\x79\x9e\xb7\x76\x75\x9a\x6b\x9c\x7a\x9e\x1d\x70\x69\x70\x6a\x9e\xa4\x9f\x7e\x9f\x49\x9f\x98\x69\x1e\x6e\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* c280 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* c300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* c380 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* c400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* c480 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* c500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* c580 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* c600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* c680 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* c700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* c780 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* c800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* c880 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* c900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* c980 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* ca00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* ca80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* cb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* cb80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* cc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96", /* cc80 */ "\x00\x00\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xe7\xa8\xe7\xa9\xe7\xaa\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe7\xff\xe8\x00\xe8\x01\xe8\x02\xe8\x03\xe8\x04\xe8\x05\xe8\x06\xe8\x07\xe8\x08\xe8\x09\xe8\x0a\xe8\x0b\xe8\x0c\xe8\x0d\xe8\x0e\xe8\x0f\xe8\x10\xe8\x11\xe8\x12\xe8\x13\x00\x00\x00\x00", /* cd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x14\xe8\x15\xe8\x16\xe8\x17\xe8\x18\xe8\x19\xe8\x1a\xe8\x1b\xe8\x1c\xe8\x1d\xe8\x1e\xe8\x1f\xe8\x20\xe8\x21\xe8\x22\xe8\x23\xe8\x24\xe8\x25\xe8\x26\xe8\x27\xe8\x28\xe8\x29\xe8\x2a\xe8\x2b\xe8\x2c\xe8\x2d\xe8\x2e\xe8\x2f\xe8\x30\xe8\x31\xe8\x32\xe8\x33\xe8\x34\xe8\x35\xe8\x36\xe8\x37\xe8\x38\xe8\x39\xe8\x3a\xe8\x3b\xe8\x3c\xe8\x3d\xe8\x3e\xe8\x3f\xe8\x40\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52", /* cd80 */ "\x00\x00\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\x00\x00\x00\x00", /* ce00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe8\xff\xe9\x00\xe9\x01\xe9\x02\xe9\x03\xe9\x04\xe9\x05\xe9\x06\xe9\x07\xe9\x08\xe9\x09\xe9\x0a\xe9\x0b\xe9\x0c\xe9\x0d\xe9\x0e", /* ce80 */ "\x00\x00\xe9\x0f\xe9\x10\xe9\x11\xe9\x12\xe9\x13\xe9\x14\xe9\x15\xe9\x16\xe9\x17\xe9\x18\xe9\x19\xe9\x1a\xe9\x1b\xe9\x1c\xe9\x1d\xe9\x1e\xe9\x1f\xe9\x20\xe9\x21\xe9\x22\xe9\x23\xe9\x24\xe9\x25\xe9\x26\xe9\x27\xe9\x28\xe9\x29\xe9\x2a\xe9\x2b\xe9\x2c\xe9\x2d\xe9\x2e\xe9\x2f\xe9\x30\xe9\x31\xe9\x32\xe9\x33\xe9\x34\xe9\x35\xe9\x36\xe9\x37\xe9\x38\xe9\x39\xe9\x3a\xe9\x3b\xe9\x3c\xe9\x3d\xe9\x3e\xe9\x3f\xe9\x40\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xe9\x58\xe9\x59\xe9\x5a\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\x00\x00\x00\x00", /* cf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca", /* cf80 */ "\x00\x00\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xe9\xff\xea\x00\xea\x01\xea\x02\xea\x03\xea\x04\xea\x05\xea\x06\xea\x07\xea\x08\xea\x09\xea\x0a\xea\x0b\xea\x0c\xea\x0d\xea\x0e\xea\x0f\xea\x10\xea\x11\xea\x12\xea\x13\xea\x14\xea\x15\xea\x16\xea\x17\xea\x18\xea\x19\xea\x1a\xea\x1b\xea\x1c\xea\x1d\xea\x1e\xea\x1f\xea\x20\xea\x21\xea\x22\xea\x23\xea\x24\xea\x25\xea\x26\xea\x27\xea\x28\xea\x29\xea\x2a\xea\x2b\xea\x2c\xea\x2d\xea\x2e\xea\x2f\xea\x30\xea\x31\xea\x32\xea\x33\xea\x34\xea\x35\xea\x36\xea\x37\xea\x38\xea\x39\xea\x3a\xea\x3b\xea\x3c\xea\x3d\xea\x3e\xea\x3f\xea\x40\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\x00\x00\x00\x00", /* d000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86", /* d080 */ "\x00\x00\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xea\xff\xeb\x00\xeb\x01\xeb\x02\xeb\x03\x00\x00\x00\x00", /* d100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x04\xeb\x05\xeb\x06\xeb\x07\xeb\x08\xeb\x09\xeb\x0a\xeb\x0b\xeb\x0c\xeb\x0d\xeb\x0e\xeb\x0f\xeb\x10\xeb\x11\xeb\x12\xeb\x13\xeb\x14\xeb\x15\xeb\x16\xeb\x17\xeb\x18\xeb\x19\xeb\x1a\xeb\x1b\xeb\x1c\xeb\x1d\xeb\x1e\xeb\x1f\xeb\x20\xeb\x21\xeb\x22\xeb\x23\xeb\x24\xeb\x25\xeb\x26\xeb\x27\xeb\x28\xeb\x29\xeb\x2a\xeb\x2b\xeb\x2c\xeb\x2d\xeb\x2e\xeb\x2f\xeb\x30\xeb\x31\xeb\x32\xeb\x33\xeb\x34\xeb\x35\xeb\x36\xeb\x37\xeb\x38\xeb\x39\xeb\x3a\xeb\x3b\xeb\x3c\xeb\x3d\xeb\x3e\xeb\x3f\xeb\x40\xeb\x41\xeb\x42", /* d180 */ "\x00\x00\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d\xeb\x5e\xeb\x5f\xeb\x60\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\x00\x00\x00\x00", /* d200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xeb\xd7\xeb\xd8\xeb\xd9\xeb\xda\xeb\xdb\xeb\xdc\xeb\xdd\xeb\xde\xeb\xdf\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xeb\xf2\xeb\xf3\xeb\xf4\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe", /* d280 */ "\x00\x00\xeb\xff\xec\x00\xec\x01\xec\x02\xec\x03\xec\x04\xec\x05\xec\x06\xec\x07\xec\x08\xec\x09\xec\x0a\xec\x0b\xec\x0c\xec\x0d\xec\x0e\xec\x0f\xec\x10\xec\x11\xec\x12\xec\x13\xec\x14\xec\x15\xec\x16\xec\x17\xec\x18\xec\x19\xec\x1a\xec\x1b\xec\x1c\xec\x1d\xec\x1e\xec\x1f\xec\x20\xec\x21\xec\x22\xec\x23\xec\x24\xec\x25\xec\x26\xec\x27\xec\x28\xec\x29\xec\x2a\xec\x2b\xec\x2c\xec\x2d\xec\x2e\xec\x2f\xec\x30\xec\x31\xec\x32\xec\x33\xec\x34\xec\x35\xec\x36\xec\x37\xec\x38\xec\x39\xec\x3a\xec\x3b\xec\x3c\xec\x3d\xec\x3e\xec\x3f\xec\x40\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\x00\x00\x00\x00", /* d300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba", /* d380 */ "\x00\x00\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xec\xff\xed\x00\xed\x01\xed\x02\xed\x03\xed\x04\xed\x05\xed\x06\xed\x07\xed\x08\xed\x09\xed\x0a\xed\x0b\xed\x0c\xed\x0d\xed\x0e\xed\x0f\xed\x10\xed\x11\xed\x12\xed\x13\xed\x14\xed\x15\xed\x16\xed\x17\xed\x18\xed\x19\xed\x1a\xed\x1b\xed\x1c\xed\x1d\xed\x1e\xed\x1f\xed\x20\xed\x21\xed\x22\xed\x23\xed\x24\xed\x25\xed\x26\xed\x27\xed\x28\xed\x29\xed\x2a\xed\x2b\xed\x2c\xed\x2d\xed\x2e\xed\x2f\xed\x30\xed\x31\xed\x32\xed\x33\xed\x34\xed\x35\xed\x36\xed\x37\x00\x00\x00\x00", /* d400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x38\xed\x39\xed\x3a\xed\x3b\xed\x3c\xed\x3d\xed\x3e\xed\x3f\xed\x40\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76", /* d480 */ "\x00\x00\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\x00\x00\x00\x00", /* d500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xed\xff\xee\x00\xee\x01\xee\x02\xee\x03\xee\x04\xee\x05\xee\x06\xee\x07\xee\x08\xee\x09\xee\x0a\xee\x0b\xee\x0c\xee\x0d\xee\x0e\xee\x0f\xee\x10\xee\x11\xee\x12\xee\x13\xee\x14\xee\x15\xee\x16\xee\x17\xee\x18\xee\x19\xee\x1a\xee\x1b\xee\x1c\xee\x1d\xee\x1e\xee\x1f\xee\x20\xee\x21\xee\x22\xee\x23\xee\x24\xee\x25\xee\x26\xee\x27\xee\x28\xee\x29\xee\x2a\xee\x2b\xee\x2c\xee\x2d\xee\x2e\xee\x2f\xee\x30\xee\x31\xee\x32", /* d580 */ "\x00\x00\xee\x33\xee\x34\xee\x35\xee\x36\xee\x37\xee\x38\xee\x39\xee\x3a\xee\x3b\xee\x3c\xee\x3d\xee\x3e\xee\x3f\xee\x40\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\x00\x00\x00\x00", /* d600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee", /* d680 */ "\x00\x00\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xee\xff\xef\x00\xef\x01\xef\x02\xef\x03\xef\x04\xef\x05\xef\x06\xef\x07\xef\x08\xef\x09\xef\x0a\xef\x0b\xef\x0c\xef\x0d\xef\x0e\xef\x0f\xef\x10\xef\x11\xef\x12\xef\x13\xef\x14\xef\x15\xef\x16\xef\x17\xef\x18\xef\x19\xef\x1a\xef\x1b\xef\x1c\xef\x1d\xef\x1e\xef\x1f\xef\x20\xef\x21\xef\x22\xef\x23\xef\x24\xef\x25\xef\x26\xef\x27\xef\x28\xef\x29\xef\x2a\xef\x2b\xef\x2c\xef\x2d\xef\x2e\xef\x2f\xef\x30\xef\x31\xef\x32\xef\x33\xef\x34\xef\x35\xef\x36\xef\x37\xef\x38\xef\x39\xef\x3a\xef\x3b\xef\x3c\xef\x3d\xef\x3e\xef\x3f\xef\x40\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\x00\x00\x00\x00", /* d700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa", /* d780 */ "\x00\x00\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xef\xd2\xef\xd3\xef\xd4\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xef\xff\xf0\x00\xf0\x01\xf0\x02\xf0\x03\xf0\x04\xf0\x05\xf0\x06\xf0\x07\xf0\x08\xf0\x09\xf0\x0a\xf0\x0b\xf0\x0c\xf0\x0d\xf0\x0e\xf0\x0f\xf0\x10\xf0\x11\xf0\x12\xf0\x13\xf0\x14\xf0\x15\xf0\x16\xf0\x17\xf0\x18\xf0\x19\xf0\x1a\xf0\x1b\xf0\x1c\xf0\x1d\xf0\x1e\xf0\x1f\xf0\x20\xf0\x21\xf0\x22\xf0\x23\xf0\x24\xf0\x25\xf0\x26\xf0\x27\x00\x00\x00\x00", /* d800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x28\xf0\x29\xf0\x2a\xf0\x2b\xf0\x2c\xf0\x2d\xf0\x2e\xf0\x2f\xf0\x30\xf0\x31\xf0\x32\xf0\x33\xf0\x34\xf0\x35\xf0\x36\xf0\x37\xf0\x38\xf0\x39\xf0\x3a\xf0\x3b\xf0\x3c\xf0\x3d\xf0\x3e\xf0\x3f\xf0\x40\xf0\x41\xf0\x42\xf0\x43\xf0\x44\xf0\x45\xf0\x46\xf0\x47\xf0\x48\xf0\x49\xf0\x4a\xf0\x4b\xf0\x4c\xf0\x4d\xf0\x4e\xf0\x4f\xf0\x50\xf0\x51\xf0\x52\xf0\x53\xf0\x54\xf0\x55\xf0\x56\xf0\x57\xf0\x58\xf0\x59\xf0\x5a\xf0\x5b\xf0\x5c\xf0\x5d\xf0\x5e\xf0\x5f\xf0\x60\xf0\x61\xf0\x62\xf0\x63\xf0\x64\xf0\x65\xf0\x66", /* d880 */ "\x00\x00\xf0\x67\xf0\x68\xf0\x69\xf0\x6a\xf0\x6b\xf0\x6c\xf0\x6d\xf0\x6e\xf0\x6f\xf0\x70\xf0\x71\xf0\x72\xf0\x73\xf0\x74\xf0\x75\xf0\x76\xf0\x77\xf0\x78\xf0\x79\xf0\x7a\xf0\x7b\xf0\x7c\xf0\x7d\xf0\x7e\xf0\x7f\xf0\x80\xf0\x81\xf0\x82\xf0\x83\xf0\x84\xf0\x85\xf0\x86\xf0\x87\xf0\x88\xf0\x89\xf0\x8a\xf0\x8b\xf0\x8c\xf0\x8d\xf0\x8e\xf0\x8f\xf0\x90\xf0\x91\xf0\x92\xf0\x93\xf0\x94\xf0\x95\xf0\x96\xf0\x97\xf0\x98\xf0\x99\xf0\x9a\xf0\x9b\xf0\x9c\xf0\x9d\xf0\x9e\xf0\x9f\xf0\xa0\xf0\xa1\xf0\xa2\xf0\xa3\xf0\xa4\xf0\xa5\xf0\xa6\xf0\xa7\xf0\xa8\xf0\xa9\xf0\xaa\xf0\xab\xf0\xac\xf0\xad\xf0\xae\xf0\xaf\xf0\xb0\xf0\xb1\xf0\xb2\xf0\xb3\xf0\xb4\xf0\xb5\xf0\xb6\xf0\xb7\xf0\xb8\xf0\xb9\xf0\xba\xf0\xbb\xf0\xbc\xf0\xbd\xf0\xbe\xf0\xbf\xf0\xc0\xf0\xc1\xf0\xc2\xf0\xc3\xf0\xc4\xf0\xc5\xf0\xc6\xf0\xc7\xf0\xc8\xf0\xc9\xf0\xca\xf0\xcb\xf0\xcc\xf0\xcd\xf0\xce\xf0\xcf\xf0\xd0\xf0\xd1\xf0\xd2\xf0\xd3\xf0\xd4\xf0\xd5\xf0\xd6\xf0\xd7\xf0\xd8\xf0\xd9\xf0\xda\xf0\xdb\xf0\xdc\xf0\xdd\xf0\xde\xf0\xdf\xf0\xe0\xf0\xe1\xf0\xe2\xf0\xe3\x00\x00\x00\x00", /* d900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xe4\xf0\xe5\xf0\xe6\xf0\xe7\xf0\xe8\xf0\xe9\xf0\xea\xf0\xeb\xf0\xec\xf0\xed\xf0\xee\xf0\xef\xf0\xf0\xf0\xf1\xf0\xf2\xf0\xf3\xf0\xf4\xf0\xf5\xf0\xf6\xf0\xf7\xf0\xf8\xf0\xf9\xf0\xfa\xf0\xfb\xf0\xfc\xf0\xfd\xf0\xfe\xf0\xff\xf1\x00\xf1\x01\xf1\x02\xf1\x03\xf1\x04\xf1\x05\xf1\x06\xf1\x07\xf1\x08\xf1\x09\xf1\x0a\xf1\x0b\xf1\x0c\xf1\x0d\xf1\x0e\xf1\x0f\xf1\x10\xf1\x11\xf1\x12\xf1\x13\xf1\x14\xf1\x15\xf1\x16\xf1\x17\xf1\x18\xf1\x19\xf1\x1a\xf1\x1b\xf1\x1c\xf1\x1d\xf1\x1e\xf1\x1f\xf1\x20\xf1\x21\xf1\x22", /* d980 */ "\x00\x00\xf1\x23\xf1\x24\xf1\x25\xf1\x26\xf1\x27\xf1\x28\xf1\x29\xf1\x2a\xf1\x2b\xf1\x2c\xf1\x2d\xf1\x2e\xf1\x2f\xf1\x30\xf1\x31\xf1\x32\xf1\x33\xf1\x34\xf1\x35\xf1\x36\xf1\x37\xf1\x38\xf1\x39\xf1\x3a\xf1\x3b\xf1\x3c\xf1\x3d\xf1\x3e\xf1\x3f\xf1\x40\xf1\x41\xf1\x42\xf1\x43\xf1\x44\xf1\x45\xf1\x46\xf1\x47\xf1\x48\xf1\x49\xf1\x4a\xf1\x4b\xf1\x4c\xf1\x4d\xf1\x4e\xf1\x4f\xf1\x50\xf1\x51\xf1\x52\xf1\x53\xf1\x54\xf1\x55\xf1\x56\xf1\x57\xf1\x58\xf1\x59\xf1\x5a\xf1\x5b\xf1\x5c\xf1\x5d\xf1\x5e\xf1\x5f\xf1\x60\xf1\x61\xf1\x62\xf1\x63\xf1\x64\xf1\x65\xf1\x66\xf1\x67\xf1\x68\xf1\x69\xf1\x6a\xf1\x6b\xf1\x6c\xf1\x6d\xf1\x6e\xf1\x6f\xf1\x70\xf1\x71\xf1\x72\xf1\x73\xf1\x74\xf1\x75\xf1\x76\xf1\x77\xf1\x78\xf1\x79\xf1\x7a\xf1\x7b\xf1\x7c\xf1\x7d\xf1\x7e\xf1\x7f\xf1\x80\xf1\x81\xf1\x82\xf1\x83\xf1\x84\xf1\x85\xf1\x86\xf1\x87\xf1\x88\xf1\x89\xf1\x8a\xf1\x8b\xf1\x8c\xf1\x8d\xf1\x8e\xf1\x8f\xf1\x90\xf1\x91\xf1\x92\xf1\x93\xf1\x94\xf1\x95\xf1\x96\xf1\x97\xf1\x98\xf1\x99\xf1\x9a\xf1\x9b\xf1\x9c\xf1\x9d\xf1\x9e\xf1\x9f\x00\x00\x00\x00", /* da00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\xa0\xf1\xa1\xf1\xa2\xf1\xa3\xf1\xa4\xf1\xa5\xf1\xa6\xf1\xa7\xf1\xa8\xf1\xa9\xf1\xaa\xf1\xab\xf1\xac\xf1\xad\xf1\xae\xf1\xaf\xf1\xb0\xf1\xb1\xf1\xb2\xf1\xb3\xf1\xb4\xf1\xb5\xf1\xb6\xf1\xb7\xf1\xb8\xf1\xb9\xf1\xba\xf1\xbb\xf1\xbc\xf1\xbd\xf1\xbe\xf1\xbf\xf1\xc0\xf1\xc1\xf1\xc2\xf1\xc3\xf1\xc4\xf1\xc5\xf1\xc6\xf1\xc7\xf1\xc8\xf1\xc9\xf1\xca\xf1\xcb\xf1\xcc\xf1\xcd\xf1\xce\xf1\xcf\xf1\xd0\xf1\xd1\xf1\xd2\xf1\xd3\xf1\xd4\xf1\xd5\xf1\xd6\xf1\xd7\xf1\xd8\xf1\xd9\xf1\xda\xf1\xdb\xf1\xdc\xf1\xdd\xf1\xde", /* da80 */ "\x00\x00\xf1\xdf\xf1\xe0\xf1\xe1\xf1\xe2\xf1\xe3\xf1\xe4\xf1\xe5\xf1\xe6\xf1\xe7\xf1\xe8\xf1\xe9\xf1\xea\xf1\xeb\xf1\xec\xf1\xed\xf1\xee\xf1\xef\xf1\xf0\xf1\xf1\xf1\xf2\xf1\xf3\xf1\xf4\xf1\xf5\xf1\xf6\xf1\xf7\xf1\xf8\xf1\xf9\xf1\xfa\xf1\xfb\xf1\xfc\xf1\xfd\xf1\xfe\xf1\xff\xf2\x00\xf2\x01\xf2\x02\xf2\x03\xf2\x04\xf2\x05\xf2\x06\xf2\x07\xf2\x08\xf2\x09\xf2\x0a\xf2\x0b\xf2\x0c\xf2\x0d\xf2\x0e\xf2\x0f\xf2\x10\xf2\x11\xf2\x12\xf2\x13\xf2\x14\xf2\x15\xf2\x16\xf2\x17\xf2\x18\xf2\x19\xf2\x1a\xf2\x1b\xf2\x1c\xf2\x1d\xf2\x1e\xf2\x1f\xf2\x20\xf2\x21\xf2\x22\xf2\x23\xf2\x24\xf2\x25\xf2\x26\xf2\x27\xf2\x28\xf2\x29\xf2\x2a\xf2\x2b\xf2\x2c\xf2\x2d\xf2\x2e\xf2\x2f\xf2\x30\xf2\x31\xf2\x32\xf2\x33\xf2\x34\xf2\x35\xf2\x36\xf2\x37\xf2\x38\xf2\x39\xf2\x3a\xf2\x3b\xf2\x3c\xf2\x3d\xf2\x3e\xf2\x3f\xf2\x40\xf2\x41\xf2\x42\xf2\x43\xf2\x44\xf2\x45\xf2\x46\xf2\x47\xf2\x48\xf2\x49\xf2\x4a\xf2\x4b\xf2\x4c\xf2\x4d\xf2\x4e\xf2\x4f\xf2\x50\xf2\x51\xf2\x52\xf2\x53\xf2\x54\xf2\x55\xf2\x56\xf2\x57\xf2\x58\xf2\x59\xf2\x5a\xf2\x5b\x00\x00\x00\x00", /* db00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x5c\xf2\x5d\xf2\x5e\xf2\x5f\xf2\x60\xf2\x61\xf2\x62\xf2\x63\xf2\x64\xf2\x65\xf2\x66\xf2\x67\xf2\x68\xf2\x69\xf2\x6a\xf2\x6b\xf2\x6c\xf2\x6d\xf2\x6e\xf2\x6f\xf2\x70\xf2\x71\xf2\x72\xf2\x73\xf2\x74\xf2\x75\xf2\x76\xf2\x77\xf2\x78\xf2\x79\xf2\x7a\xf2\x7b\xf2\x7c\xf2\x7d\xf2\x7e\xf2\x7f\xf2\x80\xf2\x81\xf2\x82\xf2\x83\xf2\x84\xf2\x85\xf2\x86\xf2\x87\xf2\x88\xf2\x89\xf2\x8a\xf2\x8b\xf2\x8c\xf2\x8d\xf2\x8e\xf2\x8f\xf2\x90\xf2\x91\xf2\x92\xf2\x93\xf2\x94\xf2\x95\xf2\x96\xf2\x97\xf2\x98\xf2\x99\xf2\x9a", /* db80 */ "\x00\x00\xf2\x9b\xf2\x9c\xf2\x9d\xf2\x9e\xf2\x9f\xf2\xa0\xf2\xa1\xf2\xa2\xf2\xa3\xf2\xa4\xf2\xa5\xf2\xa6\xf2\xa7\xf2\xa8\xf2\xa9\xf2\xaa\xf2\xab\xf2\xac\xf2\xad\xf2\xae\xf2\xaf\xf2\xb0\xf2\xb1\xf2\xb2\xf2\xb3\xf2\xb4\xf2\xb5\xf2\xb6\xf2\xb7\xf2\xb8\xf2\xb9\xf2\xba\xf2\xbb\xf2\xbc\xf2\xbd\xf2\xbe\xf2\xbf\xf2\xc0\xf2\xc1\xf2\xc2\xf2\xc3\xf2\xc4\xf2\xc5\xf2\xc6\xf2\xc7\xf2\xc8\xf2\xc9\xf2\xca\xf2\xcb\xf2\xcc\xf2\xcd\xf2\xce\xf2\xcf\xf2\xd0\xf2\xd1\xf2\xd2\xf2\xd3\xf2\xd4\xf2\xd5\xf2\xd6\xf2\xd7\xf2\xd8\xf2\xd9\xf2\xda\xf2\xdb\xf2\xdc\xf2\xdd\xf2\xde\xf2\xdf\xf2\xe0\xf2\xe1\xf2\xe2\xf2\xe3\xf2\xe4\xf2\xe5\xf2\xe6\xf2\xe7\xf2\xe8\xf2\xe9\xf2\xea\xf2\xeb\xf2\xec\xf2\xed\xf2\xee\xf2\xef\xf2\xf0\xf2\xf1\xf2\xf2\xf2\xf3\xf2\xf4\xf2\xf5\xf2\xf6\xf2\xf7\xf2\xf8\xf2\xf9\xf2\xfa\xf2\xfb\xf2\xfc\xf2\xfd\xf2\xfe\xf2\xff\xf3\x00\xf3\x01\xf3\x02\xf3\x03\xf3\x04\xf3\x05\xf3\x06\xf3\x07\xf3\x08\xf3\x09\xf3\x0a\xf3\x0b\xf3\x0c\xf3\x0d\xf3\x0e\xf3\x0f\xf3\x10\xf3\x11\xf3\x12\xf3\x13\xf3\x14\xf3\x15\xf3\x16\xf3\x17\x00\x00\x00\x00", /* dc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x18\xf3\x19\xf3\x1a\xf3\x1b\xf3\x1c\xf3\x1d\xf3\x1e\xf3\x1f\xf3\x20\xf3\x21\xf3\x22\xf3\x23\xf3\x24\xf3\x25\xf3\x26\xf3\x27\xf3\x28\xf3\x29\xf3\x2a\xf3\x2b\xf3\x2c\xf3\x2d\xf3\x2e\xf3\x2f\xf3\x30\xf3\x31\xf3\x32\xf3\x33\xf3\x34\xf3\x35\xf3\x36\xf3\x37\xf3\x38\xf3\x39\xf3\x3a\xf3\x3b\xf3\x3c\xf3\x3d\xf3\x3e\xf3\x3f\xf3\x40\xf3\x41\xf3\x42\xf3\x43\xf3\x44\xf3\x45\xf3\x46\xf3\x47\xf3\x48\xf3\x49\xf3\x4a\xf3\x4b\xf3\x4c\xf3\x4d\xf3\x4e\xf3\x4f\xf3\x50\xf3\x51\xf3\x52\xf3\x53\xf3\x54\xf3\x55\xf3\x56", /* dc80 */ "\x00\x00\xf3\x57\xf3\x58\xf3\x59\xf3\x5a\xf3\x5b\xf3\x5c\xf3\x5d\xf3\x5e\xf3\x5f\xf3\x60\xf3\x61\xf3\x62\xf3\x63\xf3\x64\xf3\x65\xf3\x66\xf3\x67\xf3\x68\xf3\x69\xf3\x6a\xf3\x6b\xf3\x6c\xf3\x6d\xf3\x6e\xf3\x6f\xf3\x70\xf3\x71\xf3\x72\xf3\x73\xf3\x74\xf3\x75\xf3\x76\xf3\x77\xf3\x78\xf3\x79\xf3\x7a\xf3\x7b\xf3\x7c\xf3\x7d\xf3\x7e\xf3\x7f\xf3\x80\xf3\x81\xf3\x82\xf3\x83\xf3\x84\xf3\x85\xf3\x86\xf3\x87\xf3\x88\xf3\x89\xf3\x8a\xf3\x8b\xf3\x8c\xf3\x8d\xf3\x8e\xf3\x8f\xf3\x90\xf3\x91\xf3\x92\xf3\x93\xf3\x94\xf3\x95\xf3\x96\xf3\x97\xf3\x98\xf3\x99\xf3\x9a\xf3\x9b\xf3\x9c\xf3\x9d\xf3\x9e\xf3\x9f\xf3\xa0\xf3\xa1\xf3\xa2\xf3\xa3\xf3\xa4\xf3\xa5\xf3\xa6\xf3\xa7\xf3\xa8\xf3\xa9\xf3\xaa\xf3\xab\xf3\xac\xf3\xad\xf3\xae\xf3\xaf\xf3\xb0\xf3\xb1\xf3\xb2\xf3\xb3\xf3\xb4\xf3\xb5\xf3\xb6\xf3\xb7\xf3\xb8\xf3\xb9\xf3\xba\xf3\xbb\xf3\xbc\xf3\xbd\xf3\xbe\xf3\xbf\xf3\xc0\xf3\xc1\xf3\xc2\xf3\xc3\xf3\xc4\xf3\xc5\xf3\xc6\xf3\xc7\xf3\xc8\xf3\xc9\xf3\xca\xf3\xcb\xf3\xcc\xf3\xcd\xf3\xce\xf3\xcf\xf3\xd0\xf3\xd1\xf3\xd2\xf3\xd3\x00\x00\x00\x00", /* dd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xd4\xf3\xd5\xf3\xd6\xf3\xd7\xf3\xd8\xf3\xd9\xf3\xda\xf3\xdb\xf3\xdc\xf3\xdd\xf3\xde\xf3\xdf\xf3\xe0\xf3\xe1\xf3\xe2\xf3\xe3\xf3\xe4\xf3\xe5\xf3\xe6\xf3\xe7\xf3\xe8\xf3\xe9\xf3\xea\xf3\xeb\xf3\xec\xf3\xed\xf3\xee\xf3\xef\xf3\xf0\xf3\xf1\xf3\xf2\xf3\xf3\xf3\xf4\xf3\xf5\xf3\xf6\xf3\xf7\xf3\xf8\xf3\xf9\xf3\xfa\xf3\xfb\xf3\xfc\xf3\xfd\xf3\xfe\xf3\xff\xf4\x00\xf4\x01\xf4\x02\xf4\x03\xf4\x04\xf4\x05\xf4\x06\xf4\x07\xf4\x08\xf4\x09\xf4\x0a\xf4\x0b\xf4\x0c\xf4\x0d\xf4\x0e\xf4\x0f\xf4\x10\xf4\x11\xf4\x12", /* dd80 */ "\x00\x00\xf4\x13\xf4\x14\xf4\x15\xf4\x16\xf4\x17\xf4\x18\xf4\x19\xf4\x1a\xf4\x1b\xf4\x1c\xf4\x1d\xf4\x1e\xf4\x1f\xf4\x20\xf4\x21\xf4\x22\xf4\x23\xf4\x24\xf4\x25\xf4\x26\xf4\x27\xf4\x28\xf4\x29\xf4\x2a\xf4\x2b\xf4\x2c\xf4\x2d\xf4\x2e\xf4\x2f\xf4\x30\xf4\x31\xf4\x32\xf4\x33\xf4\x34\xf4\x35\xf4\x36\xf4\x37\xf4\x38\xf4\x39\xf4\x3a\xf4\x3b\xf4\x3c\xf4\x3d\xf4\x3e\xf4\x3f\xf4\x40\xf4\x41\xf4\x42\xf4\x43\xf4\x44\xf4\x45\xf4\x46\xf4\x47\xf4\x48\xf4\x49\xf4\x4a\xf4\x4b\xf4\x4c\xf4\x4d\xf4\x4e\xf4\x4f\xf4\x50\xf4\x51\xf4\x52\xf4\x53\xf4\x54\xf4\x55\xf4\x56\xf4\x57\xf4\x58\xf4\x59\xf4\x5a\xf4\x5b\xf4\x5c\xf4\x5d\xf4\x5e\xf4\x5f\xf4\x60\xf4\x61\xf4\x62\xf4\x63\xf4\x64\xf4\x65\xf4\x66\xf4\x67\xf4\x68\xf4\x69\xf4\x6a\xf4\x6b\xf4\x6c\xf4\x6d\xf4\x6e\xf4\x6f\xf4\x70\xf4\x71\xf4\x72\xf4\x73\xf4\x74\xf4\x75\xf4\x76\xf4\x77\xf4\x78\xf4\x79\xf4\x7a\xf4\x7b\xf4\x7c\xf4\x7d\xf4\x7e\xf4\x7f\xf4\x80\xf4\x81\xf4\x82\xf4\x83\xf4\x84\xf4\x85\xf4\x86\xf4\x87\xf4\x88\xf4\x89\xf4\x8a\xf4\x8b\xf4\x8c\xf4\x8d\xf4\x8e\xf4\x8f\x00\x00\x00\x00", /* de00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x90\xf4\x91\xf4\x92\xf4\x93\xf4\x94\xf4\x95\xf4\x96\xf4\x97\xf4\x98\xf4\x99\xf4\x9a\xf4\x9b\xf4\x9c\xf4\x9d\xf4\x9e\xf4\x9f\xf4\xa0\xf4\xa1\xf4\xa2\xf4\xa3\xf4\xa4\xf4\xa5\xf4\xa6\xf4\xa7\xf4\xa8\xf4\xa9\xf4\xaa\xf4\xab\xf4\xac\xf4\xad\xf4\xae\xf4\xaf\xf4\xb0\xf4\xb1\xf4\xb2\xf4\xb3\xf4\xb4\xf4\xb5\xf4\xb6\xf4\xb7\xf4\xb8\xf4\xb9\xf4\xba\xf4\xbb\xf4\xbc\xf4\xbd\xf4\xbe\xf4\xbf\xf4\xc0\xf4\xc1\xf4\xc2\xf4\xc3\xf4\xc4\xf4\xc5\xf4\xc6\xf4\xc7\xf4\xc8\xf4\xc9\xf4\xca\xf4\xcb\xf4\xcc\xf4\xcd\xf4\xce", /* de80 */ "\x00\x00\xf4\xcf\xf4\xd0\xf4\xd1\xf4\xd2\xf4\xd3\xf4\xd4\xf4\xd5\xf4\xd6\xf4\xd7\xf4\xd8\xf4\xd9\xf4\xda\xf4\xdb\xf4\xdc\xf4\xdd\xf4\xde\xf4\xdf\xf4\xe0\xf4\xe1\xf4\xe2\xf4\xe3\xf4\xe4\xf4\xe5\xf4\xe6\xf4\xe7\xf4\xe8\xf4\xe9\xf4\xea\xf4\xeb\xf4\xec\xf4\xed\xf4\xee\xf4\xef\xf4\xf0\xf4\xf1\xf4\xf2\xf4\xf3\xf4\xf4\xf4\xf5\xf4\xf6\xf4\xf7\xf4\xf8\xf4\xf9\xf4\xfa\xf4\xfb\xf4\xfc\xf4\xfd\xf4\xfe\xf4\xff\xf5\x00\xf5\x01\xf5\x02\xf5\x03\xf5\x04\xf5\x05\xf5\x06\xf5\x07\xf5\x08\xf5\x09\xf5\x0a\xf5\x0b\xf5\x0c\xf5\x0d\xf5\x0e\xf5\x0f\xf5\x10\xf5\x11\xf5\x12\xf5\x13\xf5\x14\xf5\x15\xf5\x16\xf5\x17\xf5\x18\xf5\x19\xf5\x1a\xf5\x1b\xf5\x1c\xf5\x1d\xf5\x1e\xf5\x1f\xf5\x20\xf5\x21\xf5\x22\xf5\x23\xf5\x24\xf5\x25\xf5\x26\xf5\x27\xf5\x28\xf5\x29\xf5\x2a\xf5\x2b\xf5\x2c\xf5\x2d\xf5\x2e\xf5\x2f\xf5\x30\xf5\x31\xf5\x32\xf5\x33\xf5\x34\xf5\x35\xf5\x36\xf5\x37\xf5\x38\xf5\x39\xf5\x3a\xf5\x3b\xf5\x3c\xf5\x3d\xf5\x3e\xf5\x3f\xf5\x40\xf5\x41\xf5\x42\xf5\x43\xf5\x44\xf5\x45\xf5\x46\xf5\x47\xf5\x48\xf5\x49\xf5\x4a\xf5\x4b\x00\x00\x00\x00", /* df00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x4c\xf5\x4d\xf5\x4e\xf5\x4f\xf5\x50\xf5\x51\xf5\x52\xf5\x53\xf5\x54\xf5\x55\xf5\x56\xf5\x57\xf5\x58\xf5\x59\xf5\x5a\xf5\x5b\xf5\x5c\xf5\x5d\xf5\x5e\xf5\x5f\xf5\x60\xf5\x61\xf5\x62\xf5\x63\xf5\x64\xf5\x65\xf5\x66\xf5\x67\xf5\x68\xf5\x69\xf5\x6a\xf5\x6b\xf5\x6c\xf5\x6d\xf5\x6e\xf5\x6f\xf5\x70\xf5\x71\xf5\x72\xf5\x73\xf5\x74\xf5\x75\xf5\x76\xf5\x77\xf5\x78\xf5\x79\xf5\x7a\xf5\x7b\xf5\x7c\xf5\x7d\xf5\x7e\xf5\x7f\xf5\x80\xf5\x81\xf5\x82\xf5\x83\xf5\x84\xf5\x85\xf5\x86\xf5\x87\xf5\x88\xf5\x89\xf5\x8a", /* df80 */ "\x00\x00\xf5\x8b\xf5\x8c\xf5\x8d\xf5\x8e\xf5\x8f\xf5\x90\xf5\x91\xf5\x92\xf5\x93\xf5\x94\xf5\x95\xf5\x96\xf5\x97\xf5\x98\xf5\x99\xf5\x9a\xf5\x9b\xf5\x9c\xf5\x9d\xf5\x9e\xf5\x9f\xf5\xa0\xf5\xa1\xf5\xa2\xf5\xa3\xf5\xa4\xf5\xa5\xf5\xa6\xf5\xa7\xf5\xa8\xf5\xa9\xf5\xaa\xf5\xab\xf5\xac\xf5\xad\xf5\xae\xf5\xaf\xf5\xb0\xf5\xb1\xf5\xb2\xf5\xb3\xf5\xb4\xf5\xb5\xf5\xb6\xf5\xb7\xf5\xb8\xf5\xb9\xf5\xba\xf5\xbb\xf5\xbc\xf5\xbd\xf5\xbe\xf5\xbf\xf5\xc0\xf5\xc1\xf5\xc2\xf5\xc3\xf5\xc4\xf5\xc5\xf5\xc6\xf5\xc7\xf5\xc8\xf5\xc9\xf5\xca\xf5\xcb\xf5\xcc\xf5\xcd\xf5\xce\xf5\xcf\xf5\xd0\xf5\xd1\xf5\xd2\xf5\xd3\xf5\xd4\xf5\xd5\xf5\xd6\xf5\xd7\xf5\xd8\xf5\xd9\xf5\xda\xf5\xdb\xf5\xdc\xf5\xdd\xf5\xde\xf5\xdf\xf5\xe0\xf5\xe1\xf5\xe2\xf5\xe3\xf5\xe4\xf5\xe5\xf5\xe6\xf5\xe7\xf5\xe8\xf5\xe9\xf5\xea\xf5\xeb\xf5\xec\xf5\xed\xf5\xee\xf5\xef\xf5\xf0\xf5\xf1\xf5\xf2\xf5\xf3\xf5\xf4\xf5\xf5\xf5\xf6\xf5\xf7\xf5\xf8\xf5\xf9\xf5\xfa\xf5\xfb\xf5\xfc\xf5\xfd\xf5\xfe\xf5\xff\xf6\x00\xf6\x01\xf6\x02\xf6\x03\xf6\x04\xf6\x05\xf6\x06\xf6\x07\x00\x00\x00\x00", /* e000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x08\xf6\x09\xf6\x0a\xf6\x0b\xf6\x0c\xf6\x0d\xf6\x0e\xf6\x0f\xf6\x10\xf6\x11\xf6\x12\xf6\x13\xf6\x14\xf6\x15\xf6\x16\xf6\x17\xf6\x18\xf6\x19\xf6\x1a\xf6\x1b\xf6\x1c\xf6\x1d\xf6\x1e\xf6\x1f\xf6\x20\xf6\x21\xf6\x22\xf6\x23\xf6\x24\xf6\x25\xf6\x26\xf6\x27\xf6\x28\xf6\x29\xf6\x2a\xf6\x2b\xf6\x2c\xf6\x2d\xf6\x2e\xf6\x2f\xf6\x30\xf6\x31\xf6\x32\xf6\x33\xf6\x34\xf6\x35\xf6\x36\xf6\x37\xf6\x38\xf6\x39\xf6\x3a\xf6\x3b\xf6\x3c\xf6\x3d\xf6\x3e\xf6\x3f\xf6\x40\xf6\x41\xf6\x42\xf6\x43\xf6\x44\xf6\x45\xf6\x46", /* e080 */ "\x00\x00\xf6\x47\xf6\x48\xf6\x49\xf6\x4a\xf6\x4b\xf6\x4c\xf6\x4d\xf6\x4e\xf6\x4f\xf6\x50\xf6\x51\xf6\x52\xf6\x53\xf6\x54\xf6\x55\xf6\x56\xf6\x57\xf6\x58\xf6\x59\xf6\x5a\xf6\x5b\xf6\x5c\xf6\x5d\xf6\x5e\xf6\x5f\xf6\x60\xf6\x61\xf6\x62\xf6\x63\xf6\x64\xf6\x65\xf6\x66\xf6\x67\xf6\x68\xf6\x69\xf6\x6a\xf6\x6b\xf6\x6c\xf6\x6d\xf6\x6e\xf6\x6f\xf6\x70\xf6\x71\xf6\x72\xf6\x73\xf6\x74\xf6\x75\xf6\x76\xf6\x77\xf6\x78\xf6\x79\xf6\x7a\xf6\x7b\xf6\x7c\xf6\x7d\xf6\x7e\xf6\x7f\xf6\x80\xf6\x81\xf6\x82\xf6\x83\xf6\x84\xf6\x85\xf6\x86\xf6\x87\xf6\x88\xf6\x89\xf6\x8a\xf6\x8b\xf6\x8c\xf6\x8d\xf6\x8e\xf6\x8f\xf6\x90\xf6\x91\xf6\x92\xf6\x93\xf6\x94\xf6\x95\xf6\x96\xf6\x97\xf6\x98\xf6\x99\xf6\x9a\xf6\x9b\xf6\x9c\xf6\x9d\xf6\x9e\xf6\x9f\xf6\xa0\xf6\xa1\xf6\xa2\xf6\xa3\xf6\xa4\xf6\xa5\xf6\xa6\xf6\xa7\xf6\xa8\xf6\xa9\xf6\xaa\xf6\xab\xf6\xac\xf6\xad\xf6\xae\xf6\xaf\xf6\xb0\xf6\xb1\xf6\xb2\xf6\xb3\xf6\xb4\xf6\xb5\xf6\xb6\xf6\xb7\xf6\xb8\xf6\xb9\xf6\xba\xf6\xbb\xf6\xbc\xf6\xbd\xf6\xbe\xf6\xbf\xf6\xc0\xf6\xc1\xf6\xc2\xf6\xc3\x00\x00\x00\x00", /* e100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xc4\xf6\xc5\xf6\xc6\xf6\xc7\xf6\xc8\xf6\xc9\xf6\xca\xf6\xcb\xf6\xcc\xf6\xcd\xf6\xce\xf6\xcf\xf6\xd0\xf6\xd1\xf6\xd2\xf6\xd3\xf6\xd4\xf6\xd5\xf6\xd6\xf6\xd7\xf6\xd8\xf6\xd9\xf6\xda\xf6\xdb\xf6\xdc\xf6\xdd\xf6\xde\xf6\xdf\xf6\xe0\xf6\xe1\xf6\xe2\xf6\xe3\xf6\xe4\xf6\xe5\xf6\xe6\xf6\xe7\xf6\xe8\xf6\xe9\xf6\xea\xf6\xeb\xf6\xec\xf6\xed\xf6\xee\xf6\xef\xf6\xf0\xf6\xf1\xf6\xf2\xf6\xf3\xf6\xf4\xf6\xf5\xf6\xf6\xf6\xf7\xf6\xf8\xf6\xf9\xf6\xfa\xf6\xfb\xf6\xfc\xf6\xfd\xf6\xfe\xf6\xff\xf7\x00\xf7\x01\xf7\x02", /* e180 */ "\x00\x00\xf7\x03\xf7\x04\xf7\x05\xf7\x06\xf7\x07\xf7\x08\xf7\x09\xf7\x0a\xf7\x0b\xf7\x0c\xf7\x0d\xf7\x0e\xf7\x0f\xf7\x10\xf7\x11\xf7\x12\xf7\x13\xf7\x14\xf7\x15\xf7\x16\xf7\x17\xf7\x18\xf7\x19\xf7\x1a\xf7\x1b\xf7\x1c\xf7\x1d\xf7\x1e\xf7\x1f\xf7\x20\xf7\x21\xf7\x22\xf7\x23\xf7\x24\xf7\x25\xf7\x26\xf7\x27\xf7\x28\xf7\x29\xf7\x2a\xf7\x2b\xf7\x2c\xf7\x2d\xf7\x2e\xf7\x2f\xf7\x30\xf7\x31\xf7\x32\xf7\x33\xf7\x34\xf7\x35\xf7\x36\xf7\x37\xf7\x38\xf7\x39\xf7\x3a\xf7\x3b\xf7\x3c\xf7\x3d\xf7\x3e\xf7\x3f\xf7\x40\xf7\x41\xf7\x42\xf7\x43\xf7\x44\xf7\x45\xf7\x46\xf7\x47\xf7\x48\xf7\x49\xf7\x4a\xf7\x4b\xf7\x4c\xf7\x4d\xf7\x4e\xf7\x4f\xf7\x50\xf7\x51\xf7\x52\xf7\x53\xf7\x54\xf7\x55\xf7\x56\xf7\x57\xf7\x58\xf7\x59\xf7\x5a\xf7\x5b\xf7\x5c\xf7\x5d\xf7\x5e\xf7\x5f\xf7\x60\xf7\x61\xf7\x62\xf7\x63\xf7\x64\xf7\x65\xf7\x66\xf7\x67\xf7\x68\xf7\x69\xf7\x6a\xf7\x6b\xf7\x6c\xf7\x6d\xf7\x6e\xf7\x6f\xf7\x70\xf7\x71\xf7\x72\xf7\x73\xf7\x74\xf7\x75\xf7\x76\xf7\x77\xf7\x78\xf7\x79\xf7\x7a\xf7\x7b\xf7\x7c\xf7\x7d\xf7\x7e\xf7\x7f\x00\x00\x00\x00", /* e200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x80\xf7\x81\xf7\x82\xf7\x83\xf7\x84\xf7\x85\xf7\x86\xf7\x87\xf7\x88\xf7\x89\xf7\x8a\xf7\x8b\xf7\x8c\xf7\x8d\xf7\x8e\xf7\x8f\xf7\x90\xf7\x91\xf7\x92\xf7\x93\xf7\x94\xf7\x95\xf7\x96\xf7\x97\xf7\x98\xf7\x99\xf7\x9a\xf7\x9b\xf7\x9c\xf7\x9d\xf7\x9e\xf7\x9f\xf7\xa0\xf7\xa1\xf7\xa2\xf7\xa3\xf7\xa4\xf7\xa5\xf7\xa6\xf7\xa7\xf7\xa8\xf7\xa9\xf7\xaa\xf7\xab\xf7\xac\xf7\xad\xf7\xae\xf7\xaf\xf7\xb0\xf7\xb1\xf7\xb2\xf7\xb3\xf7\xb4\xf7\xb5\xf7\xb6\xf7\xb7\xf7\xb8\xf7\xb9\xf7\xba\xf7\xbb\xf7\xbc\xf7\xbd\xf7\xbe", /* e280 */ "\x00\x00\xf7\xbf\xf7\xc0\xf7\xc1\xf7\xc2\xf7\xc3\xf7\xc4\xf7\xc5\xf7\xc6\xf7\xc7\xf7\xc8\xf7\xc9\xf7\xca\xf7\xcb\xf7\xcc\xf7\xcd\xf7\xce\xf7\xcf\xf7\xd0\xf7\xd1\xf7\xd2\xf7\xd3\xf7\xd4\xf7\xd5\xf7\xd6\xf7\xd7\xf7\xd8\xf7\xd9\xf7\xda\xf7\xdb\xf7\xdc\xf7\xdd\xf7\xde\xf7\xdf\xf7\xe0\xf7\xe1\xf7\xe2\xf7\xe3\xf7\xe4\xf7\xe5\xf7\xe6\xf7\xe7\xf7\xe8\xf7\xe9\xf7\xea\xf7\xeb\xf7\xec\xf7\xed\xf7\xee\xf7\xef\xf7\xf0\xf7\xf1\xf7\xf2\xf7\xf3\xf7\xf4\xf7\xf5\xf7\xf6\xf7\xf7\xf7\xf8\xf7\xf9\xf7\xfa\xf7\xfb\xf7\xfc\xf7\xfd\xf7\xfe\xf7\xff\xf8\x00\xf8\x01\xf8\x02\xf8\x03\xf8\x04\xf8\x05\xf8\x06\xf8\x07\xf8\x08\xf8\x09\xf8\x0a\xf8\x0b\xf8\x0c\xf8\x0d\xf8\x0e\xf8\x0f\xf8\x10\xf8\x11\xf8\x12\xf8\x13\xf8\x14\xf8\x15\xf8\x16\xf8\x17\xf8\x18\xf8\x19\xf8\x1a\xf8\x1b\xf8\x1c\xf8\x1d\xf8\x1e\xf8\x1f\xf8\x20\xf8\x21\xf8\x22\xf8\x23\xf8\x24\xf8\x25\xf8\x26\xf8\x27\xf8\x28\xf8\x29\xf8\x2a\xf8\x2b\xf8\x2c\xf8\x2d\xf8\x2e\xf8\x2f\xf8\x30\xf8\x31\xf8\x32\xf8\x33\xf8\x34\xf8\x35\xf8\x36\xf8\x37\xf8\x38\xf8\x39\xf8\x3a\xf8\x3b\x00\x00\x00\x00", /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp1388", "0x03a90345" /* 937, 837 */, "gb18030.2000-1,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-1388_P103-2001 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x88\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x00\x00\x43\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x44\x46\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x48\x46\x46\x46\x5a\x00\x00\x46\x4c\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x46\x50\x46\x4e\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x46\x54\x46\x52\x00\x00\x46\x59\x00\x00\x00\x00\x00\x00", /* 0100 */ "\x00\x00\x46\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5d\x00\x00\x00\x00\x00\x00\x46\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x46\x4b\x00\x00\x46\x4f\x00\x00\x46\x53\x00\x00\x46\x55\x00\x00\x46\x56\x00\x00\x46\x57\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x46\x00\x00\x45\x45\xcd\x41\xcd\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ "\x47\x5d\x47\x5e\x47\x5f\x47\x60\x47\x61\x47\x62\x47\x63\x47\x64\x47\x65\x47\x66\x47\x67\x47\x68\x47\x69\x47\x6a\x47\x6b\x47\x6c\x47\x6d\x47\x6e\x47\x6f\x47\x70\x47\x71\x47\x72\x47\x73\x47\x74\x47\x75\x47\x76\x47\x77\x47\x78\x47\x79\x47\x7a\x47\x7b\x47\x7c\x47\x7d\x47\x7e\x47\x7f\x47\x80\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8d\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x47\xa1\x47\xa2\x47\xa3\x47\xa4\x47\xa5\x47\xa6\x47\xa7\x47\xa8\x47\xa9\x47\xaa\x47\xab\x47\xac\x47\xad\x47\xae\x47\xaf\x47\xb0\x47\xb1\x47\xb2\x47\xb3\x47\xb4\x47\xb5\x47\xb6\x47\xb7\x47\xb8\x47\xb9\x47\xba\x47\xbb\x47\xbc\x47\xbd\x47\xbe\x47\xbf\x47\xc0\x47\xc1\x47\xc2\x47\xc3\x47\xc4\x47\xc5\x47\xc6\x47\xc7\x47\xc8\x47\xc9\x47\xca\x47\xcb\x47\xcc\x47\xcd\x47\xce\x47\xcf\x47\xd0\x47\xd1\x47\xd2\x47\xd3\x47\xd4\x47\xd5\x47\xd6\x47\xd7\x47\xd8\x47\xd9\x47\xda\x47\xdb\x47\xdc", /* 0680 */ "\x47\xdd\x47\xde\x47\xdf\x47\xe0\x47\xe1\x47\xe2\x47\xe3\x47\xe4\x47\xe5\x47\xe6\x47\xe7\x47\xe8\x47\xe9\x47\xea\x47\xeb\x47\xec\x47\xed\x47\xee\x47\xef\x47\xf0\x47\xf1\x47\xf2\x47\xf3\x47\xf4\x47\xf5\x47\xf6\x47\xf7\x47\xf8\x47\xf9\x47\xfa\x47\xfb\x47\xfc\x47\xfd\x47\xfe\x48\x41\x48\x42\x48\x43\x48\x44\x48\x45\x48\x46\x48\x47\x48\x48\x48\x49\x48\x4a\x48\x4b\x48\x4c\x48\x4d\x48\x4e\x48\x4f\x48\x50\x48\x51\x48\x52\x48\x53\x48\x54\x48\x55\x48\x56\x48\x57\x48\x58\x48\x59\x48\x5a\x48\x5b\x48\x5c\x48\x5d\x48\x5e\x48\x5f\x48\x60\x48\x61\x48\x62\x48\x63\x48\x64\x48\x65\x48\x66\x48\x67\x48\x68\x48\x69\x48\x6a\x48\x6b\x48\x6c\x48\x6d\x48\x6e\x48\x6f\x48\x70\x48\x71\x48\x72\x48\x73\x48\x74\x48\x75\x48\x76\x48\x77\x48\x78\x48\x79\x48\x7a\x48\x7b\x48\x7c\x48\x7d\x48\x7e\x48\x7f\x48\x80\x48\x81\x48\x82\x48\x83\x48\x84\x48\x85\x48\x86\x48\x87\x48\x88\x48\x89\x48\x8a\x48\x8b\x48\x8c\x48\x8d\x48\x8e\x48\x8f\x48\x90\x48\x91\x48\x92\x48\x93\x48\x94\x48\x95\x48\x96\x48\x97\x48\x98\x48\x99\x48\x9a\x48\x9b\x48\x9c\x48\x9d\x48\x9e", /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ "\x6d\x41\x6d\x42\x6d\x43\x6d\x44\x6d\x45\x6d\x46\x6d\x47\x6d\x48\x6d\x49\x6d\x4a\x6d\x4b\x6d\x4c\x6d\x4d\x6d\x4e\x6d\x4f\x6d\x50\x6d\x51\x6d\x52\x6d\x53\x6d\x54\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x59\x6d\x5a\x6d\x5b\x6d\x5c\x6d\x5d\x6d\x5e\x6d\x5f\x6d\x60\x6d\x61\x6d\x62\x6d\x63\x6d\x64\x6d\x65\x6d\x66\x6d\x67\x6d\x68\x6d\x69\x6d\x6a\x6d\x6b\x6d\x6c\x6d\x6d\x6d\x6e\x6d\x6f\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x74\x6d\x75\x6d\x76\x6d\x77\x6d\x78\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7c\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x82\x6d\x83\x6d\x84\x6d\x85\x6d\x86\x6d\x87\x6d\x88\x6d\x89\x6d\x8a\x6d\x8b\x6d\x8c\x6d\x8d\x6d\x8e\x6d\x8f\x6d\x90\x6d\x91\x6d\x92\x6d\x93\x6d\x94\x6d\x95\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9b\x6d\x9c\x6d\x9d\x6d\x9e\x6d\x9f\x6d\xa0\x6d\xa1\x6d\xa2\x6d\xa3\x6d\xa4\x6d\xa5\x6d\xa6\x6d\xa7\x6d\xa8\x6d\xa9\x6d\xaa\x6d\xab\x6d\xac\x6d\xad\x6d\xae\x6d\xaf\x6d\xb0\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb4\x6d\xb5\x6d\xb6\x6d\xb7\x6d\xb8\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xbf\x6d\xc0", /* 0f80 */ "\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc4\x6d\xc5\x6d\xc6\x6d\xc7\x6d\xc8\x6d\xc9\x6d\xca\x6d\xcb\x6d\xcc\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd1\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd6\x6d\xd7\x6d\xd8\x6d\xd9\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdd\x6d\xde\x6d\xdf\x6d\xe0\x6d\xe1\x6d\xe2\x6d\xe3\x6d\xe4\x6d\xe5\x6d\xe6\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xeb\x6d\xec\x6d\xed\x6d\xee\x6d\xef\x6d\xf0\x6d\xf1\x6d\xf2\x6d\xf3\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf7\x6d\xf8\x6d\xf9\x6d\xfa\x6d\xfb\x6d\xfc\x6d\xfd\x6d\xfe\x6e\x41\x6e\x42\x6e\x43\x6e\x44\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4d\x6e\x4e\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x53\x6e\x54\x6e\x55\x6e\x56\x6e\x57\x6e\x58\x6e\x59\x6e\x5a\x6e\x5b\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x5f\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6b\x6e\x6c\x6e\x6d\x6e\x6e\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x7e\x6e\x7f\x6e\x80\x6e\x81\x6e\x82", /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ "\x6e\x83\x6e\x84\x6e\x85\x6e\x86\x6e\x87\x6e\x88\x6e\x89\x6e\x8a\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x8f\x6e\x90\x6e\x91\x6e\x92\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x98\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9c\x6e\x9d\x6e\x9e\x6e\x9f\x6e\xa0\x6e\xa1\x6e\xa2\x6e\xa3\x6e\xa4\x6e\xa5\x6e\xa6\x6e\xa7\x6e\xa8\x6e\xa9\x6e\xaa\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xaf\x6e\xb0\x6e\xb1\x6e\xb2\x6e\xb3\x6e\xb4\x6e\xb5\x6e\xb6\x6e\xb7\x6e\xb8\x6e\xb9\x6e\xba\x6e\xbb\x6e\xbc\x6e\xbd\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc1\x6e\xc2\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc7\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcb\x6e\xcc\x6e\xcd\x6e\xce\x6e\xcf\x6e\xd0\x6e\xd1\x6e\xd2\x6e\xd3\x6e\xd4\x6e\xd5\x6e\xd6\x6e\xd7\x6e\xd8\x6e\xd9\x6e\xda\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xde\x6e\xdf\x6e\xe0\x6e\xe1\x6e\xe2\x6e\xe3\x6e\xe4\x6e\xe5\x6e\xe6\x6e\xe7\x6e\xe8\x6e\xe9\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf4\x6e\xf5\x6e\xf6\x6e\xf7\x6e\xf8\x6e\xf9\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6f\x41\x6f\x42\x6f\x43\x6f\x44", /* 1880 */ "\x6f\x45\x6f\x46\x6f\x47\x6f\x48\x6f\x49\x6f\x4a\x6f\x4b\x6f\x4c\x6f\x4d\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x58\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5c\x6f\x5d\x6f\x5e\x6f\x5f\x6f\x60\x6f\x61\x6f\x62\x6f\x63\x6f\x64\x6f\x65\x6f\x66\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6d\x6f\x6e\x6f\x6f\x6f\x70\x6f\x71\x6f\x72\x6f\x73\x6f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\xcd\x44\xcd\x45\x44\x4a\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x8b\x00\x00\x44\xee\x44\xef\x00\x00\xcd\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\xcd\x47\x00\x00\x00\x00\x00\x00\xcd\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\xcd\x49\xcd\x4a\xcd\x4b\xcd\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x66\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\xcd\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6b\x00\x00\x00\x00\x45\x77\x44\x4d\xcd\x4e\x45\x6e\x00\x00\x00\x00\xcd\x4f\x00\x00\x45\x6d\x00\x00\x45\x63\x45\x64\x45\x68\x45\x67\x45\x71\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x45\x62\x45\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x75\x00\x00\x00\x00\x00\x00\x45\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x45\x73\x00\x00\x00\x00\x44\x67\x44\x77\xcd\x51\xcd\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x90\x00\x00\x00\x00\x00\x00\x45\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0", /* 2480 */ "\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2500 */ "\x46\xa4\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x54\xcd\x55\xcd\x56\xcd\x57\xcd\x58\xcd\x59\xcd\x5a\xcd\x5b\xcd\x5c\xcd\x5d\xcd\x5e\xcd\x5f\xcd\x60\xcd\x61\xcd\x62\xcd\x63\xcd\x64\xcd\x65\xcd\x66\xcd\x67\xcd\x68\xcd\x69\xcd\x6a\xcd\x6b\xcd\x6c\xcd\x6d\xcd\x6e\xcd\x6f\xcd\x70\xcd\x71\xcd\x72\xcd\x73\xcd\x74\xcd\x75\xcd\x76\xcd\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\xcd\x78\xcd\x79\xcd\x7a\xcd\x7b\xcd\x7c\xcd\x7d\xcd\x7e\xcd\x7f\xcd\x81\xcd\x82\xcd\x83\xcd\x84\xcd\x85\xcd\x86\xcd\x87\x00\x00\x00\x00\x00\x00\xcd\x88\xcd\x89\xcd\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x8b\xcd\x8c\xcd\x8d\xcd\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\xcd\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ "\x00\x00\xce\x56\x00\x00\x00\x00\xce\x5a\x00\x00\x00\x00\x00\x00\xce\x5d\x00\x00\x00\x00\xce\x5e\xce\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x71\x00\x00\x00\x00\xce\x74\x00\x00\x00\x00\x00\x00\xce\x77\x00\x00\x00\x00\x00\x00\x00\x00\xce\x79\x00\x00\x00\x00\xce\x7a\xce\x7b\x00\x00\x00\x00\x00\x00\xce\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2f00 */ NULL, /* 2f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xca\xcd\xcb\xcd\xcc\xcd\xcd\xcd\xce\xcd\xcf\xcd\xd0\xcd\xd1\xcd\xd2\xcd\xd3\xcd\xd4\xcd\xd5\x00\x00\x00\x00\x00\x00\x00\x00", /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x45\x5b\x45\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x91\xcd\x92\x00\x00\x00\x00\xcd\x93\xcd\x94\xcd\x95\xcd\x96\xcd\x97\xcd\x98\xcd\x99\xcd\x9a\xcd\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xc9\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3300 */ NULL, /* 3380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9d\xcd\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9f\xcd\xa0\xcd\xa1\x00\x00\x00\x00\xcd\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa4\x00\x00\x00\x00\xcd\xa5\xcd\xa6\x00\x00\x00\x00\xcd\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3400 */ "\xcf\x41\xcf\x42\xcf\x43\xcf\x44\xcf\x45\xcf\x46\xcf\x47\xcf\x48\xcf\x49\xcf\x4a\xcf\x4b\xcf\x4c\xcf\x4d\xcf\x4e\xcf\x4f\xcf\x50\xcf\x51\xcf\x52\xcf\x53\xcf\x54\xcf\x55\xcf\x56\xcf\x57\xcf\x58\xcf\x59\xcf\x5a\xcf\x5b\xcf\x5c\xcf\x5d\xcf\x5e\xcf\x5f\xcf\x60\xcf\x61\xcf\x62\xcf\x63\xcf\x64\xcf\x65\xcf\x66\xcf\x67\xcf\x68\xcf\x69\xcf\x6a\xcf\x6b\xcf\x6c\xcf\x6d\xcf\x6e\xcf\x6f\xcf\x70\xcf\x71\xcf\x72\xcf\x73\xcf\x74\xcf\x75\xcf\x76\xcf\x77\xcf\x78\xcf\x79\xcf\x7a\xcf\x7b\xcf\x7c\xcf\x7d\xcf\x7e\xcf\x7f\xcf\x80\xcf\x81\xcf\x82\xcf\x83\xcf\x84\xcf\x85\xcf\x86\xcf\x87\xce\x5c\xcf\x88\xcf\x89\xcf\x8a\xcf\x8b\xcf\x8c\xcf\x8d\xcf\x8e\xcf\x8f\xcf\x90\xcf\x91\xcf\x92\xcf\x93\xcf\x94\xcf\x95\xcf\x96\xcf\x97\xcf\x98\xcf\x99\xcf\x9a\xcf\x9b\xcf\x9c\xcf\x9d\xcf\x9e\xcf\x9f\xcf\xa0\xcf\xa1\xcf\xa2\xcf\xa3\xcf\xa4\xcf\xa5\xcf\xa6\xcf\xa7\xcf\xa8\xcf\xa9\xcf\xaa\xcf\xab\xcf\xac\xcf\xad\xcf\xae\xcf\xaf\xcf\xb0\xcf\xb1\xcf\xb2\xce\x5b\xcf\xb3\xcf\xb4\xcf\xb5\xcf\xb6\xcf\xb7\xcf\xb8\xcf\xb9\xcf\xba\xcf\xbb\xcf\xbc\xcf\xbd\xcf\xbe", /* 3480 */ "\xcf\xbf\xcf\xc0\xcf\xc1\xcf\xc2\xcf\xc3\xcf\xc4\xcf\xc5\xcf\xc6\xcf\xc7\xcf\xc8\xcf\xc9\xcf\xca\xcf\xcb\xcf\xcc\xcf\xcd\xcf\xce\xcf\xcf\xcf\xd0\xcf\xd1\xcf\xd2\xcf\xd3\xcf\xd4\xcf\xd5\xcf\xd6\xcf\xd7\xcf\xd8\xcf\xd9\xcf\xda\xcf\xdb\xcf\xdc\xcf\xdd\xcf\xde\xcf\xdf\xcf\xe0\xcf\xe1\xcf\xe2\xcf\xe3\xcf\xe4\xcf\xe5\xcf\xe6\xcf\xe7\xcf\xe8\xcf\xe9\xcf\xea\xcf\xeb\xcf\xec\xcf\xed\xcf\xee\xcf\xef\xcf\xf0\xcf\xf1\xcf\xf2\xcf\xf3\xcf\xf4\xcf\xf5\xcf\xf6\xcf\xf7\xcf\xf8\xcf\xf9\xcf\xfa\xcf\xfb\xcf\xfc\xcf\xfd\xcf\xfe\xd0\x41\xd0\x42\xd0\x43\xd0\x44\xd0\x45\xd0\x46\xd0\x47\xd0\x48\xd0\x49\xd0\x4a\xd0\x4b\xd0\x4c\xd0\x4d\xd0\x4e\xd0\x4f\xd0\x50\xd0\x51\xd0\x52\xd0\x53\xd0\x54\xd0\x55\xd0\x56\xd0\x57\xd0\x58\xd0\x59\xd0\x5a\xd0\x5b\xd0\x5c\xd0\x5d\xd0\x5e\xd0\x5f\xd0\x60\xd0\x61\xd0\x62\xd0\x63\xd0\x64\xd0\x65\xd0\x66\xd0\x67\xd0\x68\xd0\x69\xd0\x6a\xd0\x6b\xd0\x6c\xd0\x6d\xd0\x6e\xd0\x6f\xd0\x70\xd0\x71\xd0\x72\xd0\x73\xd0\x74\xd0\x75\xd0\x76\xd0\x77\xd0\x78\xd0\x79\xd0\x7a\xd0\x7b\xd0\x7c\xd0\x7d\xd0\x7e\xd0\x7f\xd0\x80", /* 3500 */ "\xd0\x81\xd0\x82\xd0\x83\xd0\x84\xd0\x85\xd0\x86\xd0\x87\xd0\x88\xd0\x89\xd0\x8a\xd0\x8b\xd0\x8c\xd0\x8d\xd0\x8e\xd0\x8f\xd0\x90\xd0\x91\xd0\x92\xd0\x93\xd0\x94\xd0\x95\xd0\x96\xd0\x97\xd0\x98\xd0\x99\xd0\x9a\xd0\x9b\xd0\x9c\xd0\x9d\xd0\x9e\xd0\x9f\xd0\xa0\xd0\xa1\xd0\xa2\xd0\xa3\xd0\xa4\xd0\xa5\xd0\xa6\xd0\xa7\xd0\xa8\xd0\xa9\xd0\xaa\xd0\xab\xd0\xac\xd0\xad\xd0\xae\xd0\xaf\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5\xd0\xb6\xd0\xb7\xd0\xb8\xd0\xb9\xd0\xba\xd0\xbb\xd0\xbc\xd0\xbd\xd0\xbe\xd0\xbf\xd0\xc0\xd0\xc1\xd0\xc2\xd0\xc3\xd0\xc4\xd0\xc5\xd0\xc6\xd0\xc7\xd0\xc8\xd0\xc9\xd0\xca\xd0\xcb\xd0\xcc\xd0\xcd\xd0\xce\xd0\xcf\xd0\xd0\xd0\xd1\xd0\xd2\xd0\xd3\xd0\xd4\xd0\xd5\xd0\xd6\xd0\xd7\xd0\xd8\xd0\xd9\xd0\xda\xd0\xdb\xd0\xdc\xd0\xdd\xd0\xde\xd0\xdf\xd0\xe0\xd0\xe1\xd0\xe2\xd0\xe3\xd0\xe4\xd0\xe5\xd0\xe6\xd0\xe7\xd0\xe8\xd0\xe9\xd0\xea\xd0\xeb\xd0\xec\xd0\xed\xd0\xee\xd0\xef\xd0\xf0\xd0\xf1\xd0\xf2\xd0\xf3\xd0\xf4\xd0\xf5\xd0\xf6\xd0\xf7\xd0\xf8\xd0\xf9\xd0\xfa\xd0\xfb\xd0\xfc\xd0\xfd\xd0\xfe\xd1\x41\xd1\x42", /* 3580 */ "\xd1\x43\xd1\x44\xd1\x45\xd1\x46\xd1\x47\xd1\x48\xd1\x49\xd1\x4a\xd1\x4b\xd1\x4c\xd1\x4d\xd1\x4e\xd1\x4f\xd1\x50\xd1\x51\xd1\x52\xd1\x53\xd1\x54\xd1\x55\xd1\x56\xd1\x57\xd1\x58\xd1\x59\xd1\x5a\xd1\x5b\xd1\x5c\xd1\x5d\xd1\x5e\xd1\x5f\xd1\x60\xce\x60\xd1\x61\xd1\x62\xd1\x63\xd1\x64\xd1\x65\xd1\x66\xd1\x67\xd1\x68\xd1\x69\xd1\x6a\xd1\x6b\xd1\x6c\xd1\x6d\xd1\x6e\xd1\x6f\xd1\x70\xd1\x71\xd1\x72\xd1\x73\xd1\x74\xd1\x75\xd1\x76\xd1\x77\xd1\x78\xd1\x79\xd1\x7a\xd1\x7b\xd1\x7c\xd1\x7d\xd1\x7e\xd1\x7f\xd1\x80\xd1\x81\xd1\x82\xd1\x83\xd1\x84\xd1\x85\xd1\x86\xd1\x87\xd1\x88\xd1\x89\xd1\x8a\xd1\x8b\xd1\x8c\xd1\x8d\xd1\x8e\xd1\x8f\xd1\x90\xd1\x91\xd1\x92\xd1\x93\xd1\x94\xd1\x95\xd1\x96\xd1\x97\xd1\x98\xd1\x99\xd1\x9a\xd1\x9b\xd1\x9c\xd1\x9d\xd1\x9e\xd1\x9f\xd1\xa0\xd1\xa1\xd1\xa2\xd1\xa3\xd1\xa4\xd1\xa5\xd1\xa6\xd1\xa7\xd1\xa8\xd1\xa9\xd1\xaa\xd1\xab\xd1\xac\xd1\xad\xd1\xae\xd1\xaf\xd1\xb0\xd1\xb1\xd1\xb2\xd1\xb3\xd1\xb4\xd1\xb5\xd1\xb6\xd1\xb7\xd1\xb8\xd1\xb9\xd1\xba\xd1\xbb\xd1\xbc\xd1\xbd\xd1\xbe\xd1\xbf\xd1\xc0\xd1\xc1", /* 3600 */ "\xd1\xc2\xd1\xc3\xd1\xc4\xd1\xc5\xd1\xc6\xd1\xc7\xd1\xc8\xd1\xc9\xd1\xca\xd1\xcb\xd1\xcc\xd1\xcd\xd1\xce\xd1\xcf\xce\x62\xd1\xd0\xd1\xd1\xd1\xd2\xd1\xd3\xd1\xd4\xd1\xd5\xd1\xd6\xd1\xd7\xd1\xd8\xd1\xd9\xd1\xda\xce\x61\xd1\xdb\xd1\xdc\xd1\xdd\xd1\xde\xd1\xdf\xd1\xe0\xd1\xe1\xd1\xe2\xd1\xe3\xd1\xe4\xd1\xe5\xd1\xe6\xd1\xe7\xd1\xe8\xd1\xe9\xd1\xea\xd1\xeb\xd1\xec\xd1\xed\xd1\xee\xd1\xef\xd1\xf0\xd1\xf1\xd1\xf2\xd1\xf3\xd1\xf4\xd1\xf5\xd1\xf6\xd1\xf7\xd1\xf8\xd1\xf9\xd1\xfa\xd1\xfb\xd1\xfc\xd1\xfd\xd1\xfe\xd2\x41\xd2\x42\xd2\x43\xd2\x44\xd2\x45\xd2\x46\xd2\x47\xd2\x48\xd2\x49\xd2\x4a\xd2\x4b\xd2\x4c\xd2\x4d\xd2\x4e\xd2\x4f\xd2\x50\xd2\x51\xd2\x52\xd2\x53\xd2\x54\xd2\x55\xd2\x56\xd2\x57\xd2\x58\xd2\x59\xd2\x5a\xd2\x5b\xd2\x5c\xd2\x5d\xd2\x5e\xd2\x5f\xd2\x60\xd2\x61\xd2\x62\xd2\x63\xd2\x64\xd2\x65\xd2\x66\xd2\x67\xd2\x68\xd2\x69\xd2\x6a\xd2\x6b\xd2\x6c\xd2\x6d\xd2\x6e\xd2\x6f\xd2\x70\xd2\x71\xd2\x72\xd2\x73\xd2\x74\xd2\x75\xd2\x76\xd2\x77\xd2\x78\xd2\x79\xd2\x7a\xd2\x7b\xd2\x7c\xd2\x7d\xd2\x7e\xd2\x7f\xd2\x80\xd2\x81", /* 3680 */ "\xd2\x82\xd2\x83\xd2\x84\xd2\x85\xd2\x86\xd2\x87\xd2\x88\xd2\x89\xd2\x8a\xd2\x8b\xd2\x8c\xd2\x8d\xd2\x8e\xd2\x8f\xd2\x90\xd2\x91\xd2\x92\xd2\x93\xd2\x94\xd2\x95\xd2\x96\xd2\x97\xd2\x98\xd2\x99\xd2\x9a\xd2\x9b\xd2\x9c\xd2\x9d\xd2\x9e\xd2\x9f\xd2\xa0\xd2\xa1\xd2\xa2\xd2\xa3\xd2\xa4\xd2\xa5\xd2\xa6\xd2\xa7\xd2\xa8\xd2\xa9\xd2\xaa\xd2\xab\xd2\xac\xd2\xad\xd2\xae\xd2\xaf\xd2\xb0\xd2\xb1\xd2\xb2\xd2\xb3\xd2\xb4\xd2\xb5\xd2\xb6\xd2\xb7\xd2\xb8\xd2\xb9\xd2\xba\xd2\xbb\xd2\xbc\xd2\xbd\xd2\xbe\xd2\xbf\xd2\xc0\xd2\xc1\xd2\xc2\xd2\xc3\xd2\xc4\xd2\xc5\xd2\xc6\xd2\xc7\xd2\xc8\xd2\xc9\xd2\xca\xd2\xcb\xd2\xcc\xd2\xcd\xd2\xce\xd2\xcf\xd2\xd0\xd2\xd1\xd2\xd2\xd2\xd3\xd2\xd4\xd2\xd5\xd2\xd6\xd2\xd7\xd2\xd8\xd2\xd9\xd2\xda\xd2\xdb\xd2\xdc\xd2\xdd\xd2\xde\xd2\xdf\xd2\xe0\xd2\xe1\xd2\xe2\xd2\xe3\xd2\xe4\xd2\xe5\xd2\xe6\xd2\xe7\xd2\xe8\xd2\xe9\xd2\xea\xd2\xeb\xd2\xec\xd2\xed\xd2\xee\xd2\xef\xd2\xf0\xd2\xf1\xd2\xf2\xd2\xf3\xd2\xf4\xd2\xf5\xd2\xf6\xd2\xf7\xd2\xf8\xd2\xf9\xd2\xfa\xd2\xfb\xd2\xfc\xd2\xfd\xd2\xfe\xd3\x41\xd3\x42\xd3\x43", /* 3700 */ "\xd3\x44\xd3\x45\xd3\x46\xd3\x47\xd3\x48\xd3\x49\xd3\x4a\xd3\x4b\xd3\x4c\xd3\x4d\xd3\x4e\xd3\x4f\xd3\x50\xd3\x51\xd3\x52\xd3\x53\xd3\x54\xd3\x55\xd3\x56\xd3\x57\xd3\x58\xd3\x59\xd3\x5a\xd3\x5b\xd3\x5c\xd3\x5d\xd3\x5e\xd3\x5f\xd3\x60\xd3\x61\xd3\x62\xd3\x63\xd3\x64\xd3\x65\xd3\x66\xd3\x67\xd3\x68\xd3\x69\xd3\x6a\xd3\x6b\xd3\x6c\xd3\x6d\xd3\x6e\xd3\x6f\xd3\x70\xd3\x71\xd3\x72\xd3\x73\xd3\x74\xd3\x75\xd3\x76\xd3\x77\xd3\x78\xd3\x79\xd3\x7a\xd3\x7b\xd3\x7c\xd3\x7d\xd3\x7e\xd3\x7f\xd3\x80\xd3\x81\xd3\x82\xd3\x83\xd3\x84\xd3\x85\xd3\x86\xd3\x87\xd3\x88\xd3\x89\xd3\x8a\xd3\x8b\xd3\x8c\xd3\x8d\xd3\x8e\xd3\x8f\xd3\x90\xd3\x91\xd3\x92\xd3\x93\xd3\x94\xd3\x95\xd3\x96\xd3\x97\xd3\x98\xd3\x99\xd3\x9a\xd3\x9b\xd3\x9c\xd3\x9d\xd3\x9e\xd3\x9f\xd3\xa0\xd3\xa1\xd3\xa2\xd3\xa3\xd3\xa4\xd3\xa5\xd3\xa6\xd3\xa7\xd3\xa8\xd3\xa9\xd3\xaa\xd3\xab\xd3\xac\xd3\xad\xd3\xae\xd3\xaf\xd3\xb0\xd3\xb1\xd3\xb2\xd3\xb3\xd3\xb4\xd3\xb5\xd3\xb6\xd3\xb7\xd3\xb8\xd3\xb9\xd3\xba\xd3\xbb\xd3\xbc\xd3\xbd\xd3\xbe\xd3\xbf\xd3\xc0\xd3\xc1\xd3\xc2\xd3\xc3", /* 3780 */ "\xd3\xc4\xd3\xc5\xd3\xc6\xd3\xc7\xd3\xc8\xd3\xc9\xd3\xca\xd3\xcb\xd3\xcc\xd3\xcd\xd3\xce\xd3\xcf\xd3\xd0\xd3\xd1\xd3\xd2\xd3\xd3\xd3\xd4\xd3\xd5\xd3\xd6\xd3\xd7\xd3\xd8\xd3\xd9\xd3\xda\xd3\xdb\xd3\xdc\xd3\xdd\xd3\xde\xd3\xdf\xd3\xe0\xd3\xe1\xd3\xe2\xd3\xe3\xd3\xe4\xd3\xe5\xd3\xe6\xd3\xe7\xd3\xe8\xd3\xe9\xd3\xea\xd3\xeb\xd3\xec\xd3\xed\xd3\xee\xd3\xef\xd3\xf0\xd3\xf1\xd3\xf2\xd3\xf3\xd3\xf4\xd3\xf5\xd3\xf6\xd3\xf7\xd3\xf8\xd3\xf9\xd3\xfa\xd3\xfb\xd3\xfc\xd3\xfd\xd3\xfe\xd4\x41\xd4\x42\xd4\x43\xd4\x44\xd4\x45\xd4\x46\xd4\x47\xd4\x48\xd4\x49\xd4\x4a\xd4\x4b\xd4\x4c\xd4\x4d\xd4\x4e\xd4\x4f\xd4\x50\xd4\x51\xd4\x52\xd4\x53\xd4\x54\xd4\x55\xd4\x56\xd4\x57\xd4\x58\xd4\x59\xd4\x5a\xd4\x5b\xd4\x5c\xd4\x5d\xd4\x5e\xd4\x5f\xd4\x60\xd4\x61\xd4\x62\xd4\x63\xd4\x64\xd4\x65\xd4\x66\xd4\x67\xd4\x68\xd4\x69\xd4\x6a\xd4\x6b\xd4\x6c\xd4\x6d\xd4\x6e\xd4\x6f\xd4\x70\xd4\x71\xd4\x72\xd4\x73\xd4\x74\xd4\x75\xd4\x76\xd4\x77\xd4\x78\xd4\x79\xd4\x7a\xd4\x7b\xd4\x7c\xd4\x7d\xd4\x7e\xd4\x7f\xd4\x80\xd4\x81\xd4\x82\xd4\x83\xd4\x84\xd4\x85", /* 3800 */ "\xd4\x86\xd4\x87\xd4\x88\xd4\x89\xd4\x8a\xd4\x8b\xd4\x8c\xd4\x8d\xd4\x8e\xd4\x8f\xd4\x90\xd4\x91\xd4\x92\xd4\x93\xd4\x94\xd4\x95\xd4\x96\xd4\x97\xd4\x98\xd4\x99\xd4\x9a\xd4\x9b\xd4\x9c\xd4\x9d\xd4\x9e\xd4\x9f\xd4\xa0\xd4\xa1\xd4\xa2\xd4\xa3\xd4\xa4\xd4\xa5\xd4\xa6\xd4\xa7\xd4\xa8\xd4\xa9\xd4\xaa\xd4\xab\xd4\xac\xd4\xad\xd4\xae\xd4\xaf\xd4\xb0\xd4\xb1\xd4\xb2\xd4\xb3\xd4\xb4\xd4\xb5\xd4\xb6\xd4\xb7\xd4\xb8\xd4\xb9\xd4\xba\xd4\xbb\xd4\xbc\xd4\xbd\xd4\xbe\xd4\xbf\xd4\xc0\xd4\xc1\xd4\xc2\xd4\xc3\xd4\xc4\xd4\xc5\xd4\xc6\xd4\xc7\xd4\xc8\xd4\xc9\xd4\xca\xd4\xcb\xd4\xcc\xd4\xcd\xd4\xce\xd4\xcf\xd4\xd0\xd4\xd1\xd4\xd2\xd4\xd3\xd4\xd4\xd4\xd5\xd4\xd6\xd4\xd7\xd4\xd8\xd4\xd9\xd4\xda\xd4\xdb\xd4\xdc\xd4\xdd\xd4\xde\xd4\xdf\xd4\xe0\xd4\xe1\xd4\xe2\xd4\xe3\xd4\xe4\xd4\xe5\xd4\xe6\xd4\xe7\xd4\xe8\xd4\xe9\xd4\xea\xd4\xeb\xd4\xec\xd4\xed\xd4\xee\xd4\xef\xd4\xf0\xd4\xf1\xd4\xf2\xd4\xf3\xd4\xf4\xd4\xf5\xd4\xf6\xd4\xf7\xd4\xf8\xd4\xf9\xd4\xfa\xd4\xfb\xd4\xfc\xd4\xfd\xd4\xfe\xd5\x41\xd5\x42\xd5\x43\xd5\x44\xd5\x45\xd5\x46\xd5\x47", /* 3880 */ "\xd5\x48\xd5\x49\xd5\x4a\xd5\x4b\xd5\x4c\xd5\x4d\xd5\x4e\xd5\x4f\xd5\x50\xd5\x51\xd5\x52\xd5\x53\xd5\x54\xd5\x55\xd5\x56\xd5\x57\xd5\x58\xd5\x59\xd5\x5a\xd5\x5b\xd5\x5c\xd5\x5d\xd5\x5e\xd5\x5f\xd5\x60\xd5\x61\xd5\x62\xd5\x63\xd5\x64\xd5\x65\xd5\x66\xd5\x67\xd5\x68\xd5\x69\xd5\x6a\xd5\x6b\xd5\x6c\xd5\x6d\xd5\x6e\xd5\x6f\xd5\x70\xd5\x71\xd5\x72\xd5\x73\xd5\x74\xd5\x75\xd5\x76\xd5\x77\xd5\x78\xd5\x79\xd5\x7a\xd5\x7b\xd5\x7c\xd5\x7d\xd5\x7e\xd5\x7f\xd5\x80\xd5\x81\xd5\x82\xd5\x83\xd5\x84\xd5\x85\xd5\x86\xd5\x87\xd5\x88\xd5\x89\xd5\x8a\xd5\x8b\xd5\x8c\xd5\x8d\xd5\x8e\xd5\x8f\xd5\x90\xd5\x91\xd5\x92\xd5\x93\xd5\x94\xd5\x95\xd5\x96\xd5\x97\xd5\x98\xd5\x99\xd5\x9a\xd5\x9b\xd5\x9c\xd5\x9d\xd5\x9e\xd5\x9f\xd5\xa0\xd5\xa1\xd5\xa2\xd5\xa3\xd5\xa4\xd5\xa5\xd5\xa6\xd5\xa7\xd5\xa8\xd5\xa9\xd5\xaa\xd5\xab\xd5\xac\xd5\xad\xd5\xae\xd5\xaf\xd5\xb0\xd5\xb1\xd5\xb2\xd5\xb3\xd5\xb4\xd5\xb5\xd5\xb6\xd5\xb7\xd5\xb8\xd5\xb9\xd5\xba\xd5\xbb\xd5\xbc\xd5\xbd\xd5\xbe\xd5\xbf\xd5\xc0\xd5\xc1\xd5\xc2\xd5\xc3\xd5\xc4\xd5\xc5\xd5\xc6\xd5\xc7", /* 3900 */ "\xd5\xc8\xd5\xc9\xd5\xca\xd5\xcb\xd5\xcc\xd5\xcd\xd5\xce\xd5\xcf\xd5\xd0\xd5\xd1\xd5\xd2\xd5\xd3\xd5\xd4\xd5\xd5\xd5\xd6\xd5\xd7\xd5\xd8\xd5\xd9\xd5\xda\xd5\xdb\xd5\xdc\xd5\xdd\xd5\xde\xd5\xdf\xce\x66\xd5\xe0\xd5\xe1\xd5\xe2\xd5\xe3\xd5\xe4\xd5\xe5\xd5\xe6\xd5\xe7\xd5\xe8\xd5\xe9\xd5\xea\xd5\xeb\xd5\xec\xd5\xed\xd5\xee\xd5\xef\xd5\xf0\xd5\xf1\xd5\xf2\xd5\xf3\xd5\xf4\xd5\xf5\xd5\xf6\xd5\xf7\xd5\xf8\xd5\xf9\xd5\xfa\xd5\xfb\xd5\xfc\xd5\xfd\xd5\xfe\xd6\x41\xd6\x42\xd6\x43\xd6\x44\xd6\x45\xd6\x46\xd6\x47\xd6\x48\xd6\x49\xd6\x4a\xd6\x4b\xd6\x4c\xd6\x4d\xd6\x4e\xd6\x4f\xd6\x50\xd6\x51\xd6\x52\xd6\x53\xd6\x54\xd6\x55\xd6\x56\xd6\x57\xd6\x58\xd6\x59\xd6\x5a\xd6\x5b\xd6\x5c\xd6\x5d\xd6\x5e\xd6\x5f\xd6\x60\xd6\x61\xd6\x62\xd6\x63\xd6\x64\xd6\x65\xd6\x66\xd6\x67\xd6\x68\xd6\x69\xd6\x6a\xd6\x6b\xd6\x6c\xd6\x6d\xd6\x6e\xd6\x6f\xd6\x70\xd6\x71\xd6\x72\xd6\x73\xd6\x74\xd6\x75\xd6\x76\xce\x65\xd6\x77\xd6\x78\xd6\x79\xd6\x7a\xd6\x7b\xd6\x7c\xd6\x7d\xd6\x7e\xd6\x7f\xd6\x80\xd6\x81\xd6\x82\xd6\x83\xd6\x84\xd6\x85\xd6\x86\xd6\x87", /* 3980 */ "\xd6\x88\xd6\x89\xd6\x8a\xd6\x8b\xd6\x8c\xd6\x8d\xd6\x8e\xd6\x8f\xd6\x90\xd6\x91\xd6\x92\xd6\x93\xd6\x94\xd6\x95\xd6\x96\xd6\x97\xd6\x98\xd6\x99\xd6\x9a\xd6\x9b\xd6\x9c\xd6\x9d\xd6\x9e\xd6\x9f\xd6\xa0\xd6\xa1\xd6\xa2\xd6\xa3\xd6\xa4\xd6\xa5\xd6\xa6\xd6\xa7\xd6\xa8\xd6\xa9\xd6\xaa\xd6\xab\xd6\xac\xd6\xad\xd6\xae\xd6\xaf\xd6\xb0\xd6\xb1\xd6\xb2\xd6\xb3\xd6\xb4\xd6\xb5\xd6\xb6\xd6\xb7\xd6\xb8\xd6\xb9\xd6\xba\xd6\xbb\xd6\xbc\xd6\xbd\xd6\xbe\xd6\xbf\xd6\xc0\xd6\xc1\xd6\xc2\xd6\xc3\xd6\xc4\xd6\xc5\xd6\xc6\xd6\xc7\xd6\xc8\xd6\xc9\xd6\xca\xd6\xcb\xd6\xcc\xd6\xcd\xd6\xce\xd6\xcf\xd6\xd0\xd6\xd1\xd6\xd2\xd6\xd3\xd6\xd4\xd6\xd5\xd6\xd6\xce\x68\xce\x6b\xd6\xd7\xd6\xd8\xd6\xd9\xd6\xda\xd6\xdb\xd6\xdc\xd6\xdd\xd6\xde\xd6\xdf\xd6\xe0\xd6\xe1\xd6\xe2\xd6\xe3\xd6\xe4\xce\x69\xd6\xe5\xd6\xe6\xd6\xe7\xd6\xe8\xd6\xe9\xd6\xea\xd6\xeb\xd6\xec\xd6\xed\xd6\xee\xd6\xef\xd6\xf0\xd6\xf1\xd6\xf2\xd6\xf3\xd6\xf4\xd6\xf5\xd6\xf6\xd6\xf7\xd6\xf8\xd6\xf9\xd6\xfa\xd6\xfb\xd6\xfc\xd6\xfd\xd6\xfe\xd7\x41\xd7\x42\xd7\x43\xd7\x44\xd7\x45\xd7\x46", /* 3a00 */ "\xd7\x47\xd7\x48\xd7\x49\xd7\x4a\xd7\x4b\xd7\x4c\xd7\x4d\xd7\x4e\xd7\x4f\xd7\x50\xd7\x51\xd7\x52\xd7\x53\xd7\x54\xd7\x55\xd7\x56\xd7\x57\xd7\x58\xd7\x59\xd7\x5a\xd7\x5b\xd7\x5c\xd7\x5d\xd7\x5e\xd7\x5f\xd7\x60\xd7\x61\xd7\x62\xd7\x63\xd7\x64\xd7\x65\xd7\x66\xd7\x67\xd7\x68\xd7\x69\xd7\x6a\xd7\x6b\xd7\x6c\xd7\x6d\xd7\x6e\xd7\x6f\xd7\x70\xd7\x71\xd7\x72\xd7\x73\xd7\x74\xd7\x75\xd7\x76\xd7\x77\xd7\x78\xd7\x79\xd7\x7a\xd7\x7b\xd7\x7c\xd7\x7d\xd7\x7e\xd7\x7f\xd7\x80\xd7\x81\xd7\x82\xd7\x83\xd7\x84\xd7\x85\xd7\x86\xd7\x87\xd7\x88\xd7\x89\xd7\x8a\xd7\x8b\xd7\x8c\xd7\x8d\xd7\x8e\xd7\x8f\xd7\x90\xd7\x91\xd7\x92\xd7\x93\xd7\x94\xd7\x95\xd7\x96\xd7\x97\xd7\x98\xd7\x99\xd7\x9a\xd7\x9b\xd7\x9c\xd7\x9d\xd7\x9e\xd7\x9f\xd7\xa0\xd7\xa1\xd7\xa2\xd7\xa3\xd7\xa4\xd7\xa5\xd7\xa6\xd7\xa7\xd7\xa8\xd7\xa9\xd7\xaa\xd7\xab\xd7\xac\xd7\xad\xd7\xae\xd7\xaf\xd7\xb0\xd7\xb1\xd7\xb2\xd7\xb3\xd7\xb4\xd7\xb5\xd7\xb6\xd7\xb7\xd7\xb8\xd7\xb9\xce\x6a\xd7\xba\xd7\xbb\xd7\xbc\xd7\xbd\xd7\xbe\xd7\xbf\xd7\xc0\xd7\xc1\xd7\xc2\xd7\xc3\xd7\xc4\xd7\xc5", /* 3a80 */ "\xd7\xc6\xd7\xc7\xd7\xc8\xd7\xc9\xd7\xca\xd7\xcb\xd7\xcc\xd7\xcd\xd7\xce\xd7\xcf\xd7\xd0\xd7\xd1\xd7\xd2\xd7\xd3\xd7\xd4\xd7\xd5\xd7\xd6\xd7\xd7\xd7\xd8\xd7\xd9\xd7\xda\xd7\xdb\xd7\xdc\xd7\xdd\xd7\xde\xd7\xdf\xd7\xe0\xd7\xe1\xd7\xe2\xd7\xe3\xd7\xe4\xd7\xe5\xd7\xe6\xd7\xe7\xd7\xe8\xd7\xe9\xd7\xea\xd7\xeb\xd7\xec\xd7\xed\xd7\xee\xd7\xef\xd7\xf0\xd7\xf1\xd7\xf2\xd7\xf3\xd7\xf4\xd7\xf5\xd7\xf6\xd7\xf7\xd7\xf8\xd7\xf9\xd7\xfa\xd7\xfb\xd7\xfc\xd7\xfd\xd7\xfe\xd8\x41\xd8\x42\xd8\x43\xd8\x44\xd8\x45\xd8\x46\xd8\x47\xd8\x48\xd8\x49\xd8\x4a\xd8\x4b\xd8\x4c\xd8\x4d\xd8\x4e\xd8\x4f\xd8\x50\xd8\x51\xd8\x52\xd8\x53\xd8\x54\xd8\x55\xd8\x56\xd8\x57\xd8\x58\xd8\x59\xd8\x5a\xd8\x5b\xd8\x5c\xd8\x5d\xd8\x5e\xd8\x5f\xd8\x60\xd8\x61\xd8\x62\xd8\x63\xd8\x64\xd8\x65\xd8\x66\xd8\x67\xd8\x68\xd8\x69\xd8\x6a\xd8\x6b\xd8\x6c\xd8\x6d\xd8\x6e\xd8\x6f\xd8\x70\xd8\x71\xd8\x72\xd8\x73\xd8\x74\xd8\x75\xd8\x76\xd8\x77\xd8\x78\xd8\x79\xd8\x7a\xd8\x7b\xd8\x7c\xd8\x7d\xd8\x7e\xd8\x7f\xd8\x80\xd8\x81\xd8\x82\xd8\x83\xd8\x84\xd8\x85\xd8\x86\xd8\x87", /* 3b00 */ "\xd8\x88\xd8\x89\xd8\x8a\xd8\x8b\xd8\x8c\xd8\x8d\xd8\x8e\xd8\x8f\xd8\x90\xd8\x91\xd8\x92\xd8\x93\xd8\x94\xd8\x95\xd8\x96\xd8\x97\xd8\x98\xd8\x99\xd8\x9a\xd8\x9b\xd8\x9c\xd8\x9d\xd8\x9e\xd8\x9f\xd8\xa0\xd8\xa1\xd8\xa2\xd8\xa3\xd8\xa4\xd8\xa5\xd8\xa6\xd8\xa7\xd8\xa8\xd8\xa9\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae\xd8\xaf\xd8\xb0\xd8\xb1\xd8\xb2\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba\xd8\xbb\xd8\xbc\xd8\xbd\xd8\xbe\xd8\xbf\xd8\xc0\xd8\xc1\xd8\xc2\xd8\xc3\xd8\xc4\xd8\xc5\xd8\xc6\xd8\xc7\xd8\xc8\xd8\xc9\xd8\xca\xd8\xcb\xd8\xcc\xd8\xcd\xd8\xce\xd8\xcf\xd8\xd0\xd8\xd1\xd8\xd2\xd8\xd3\xd8\xd4\xd8\xd5\xce\x6e\xd8\xd6\xd8\xd7\xd8\xd8\xd8\xd9\xd8\xda\xd8\xdb\xd8\xdc\xd8\xdd\xd8\xde\xd8\xdf\xd8\xe0\xd8\xe1\xd8\xe2\xd8\xe3\xd8\xe4\xd8\xe5\xd8\xe6\xd8\xe7\xd8\xe8\xd8\xe9\xd8\xea\xd8\xeb\xd8\xec\xd8\xed\xd8\xee\xd8\xef\xd8\xf0\xd8\xf1\xd8\xf2\xd8\xf3\xd8\xf4\xd8\xf5\xd8\xf6\xd8\xf7\xd8\xf8\xd8\xf9\xd8\xfa\xd8\xfb\xd8\xfc\xd8\xfd\xd8\xfe\xd9\x41\xd9\x42\xd9\x43\xd9\x44\xd9\x45\xd9\x46\xd9\x47\xd9\x48", /* 3b80 */ "\xd9\x49\xd9\x4a\xd9\x4b\xd9\x4c\xd9\x4d\xd9\x4e\xd9\x4f\xd9\x50\xd9\x51\xd9\x52\xd9\x53\xd9\x54\xd9\x55\xd9\x56\xd9\x57\xd9\x58\xd9\x59\xd9\x5a\xd9\x5b\xd9\x5c\xd9\x5d\xd9\x5e\xd9\x5f\xd9\x60\xd9\x61\xd9\x62\xd9\x63\xd9\x64\xd9\x65\xd9\x66\xd9\x67\xd9\x68\xd9\x69\xd9\x6a\xd9\x6b\xd9\x6c\xd9\x6d\xd9\x6e\xd9\x6f\xd9\x70\xd9\x71\xd9\x72\xd9\x73\xd9\x74\xd9\x75\xd9\x76\xd9\x77\xd9\x78\xd9\x79\xd9\x7a\xd9\x7b\xd9\x7c\xd9\x7d\xd9\x7e\xd9\x7f\xd9\x80\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x88\xd9\x89\xd9\x8a\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f\xd9\x90\xd9\x91\xd9\x92\xd9\x93\xd9\x94\xd9\x95\xd9\x96\xd9\x97\xd9\x98\xd9\x99\xd9\x9a\xd9\x9b\xd9\x9c\xd9\x9d\xd9\x9e\xd9\x9f\xd9\xa0\xd9\xa1\xd9\xa2\xd9\xa3\xd9\xa4\xd9\xa5\xd9\xa6\xd9\xa7\xd9\xa8\xd9\xa9\xd9\xaa\xd9\xab\xd9\xac\xd9\xad\xd9\xae\xd9\xaf\xd9\xb0\xd9\xb1\xd9\xb2\xd9\xb3\xd9\xb4\xd9\xb5\xd9\xb6\xd9\xb7\xd9\xb8\xd9\xb9\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf\xd9\xc0\xd9\xc1\xd9\xc2\xd9\xc3\xd9\xc4\xd9\xc5\xd9\xc6\xd9\xc7\xd9\xc8", /* 3c00 */ "\xd9\xc9\xd9\xca\xd9\xcb\xd9\xcc\xd9\xcd\xd9\xce\xd9\xcf\xd9\xd0\xd9\xd1\xd9\xd2\xd9\xd3\xd9\xd4\xd9\xd5\xd9\xd6\xd9\xd7\xd9\xd8\xd9\xd9\xd9\xda\xd9\xdb\xd9\xdc\xd9\xdd\xd9\xde\xd9\xdf\xd9\xe0\xd9\xe1\xd9\xe2\xd9\xe3\xd9\xe4\xd9\xe5\xd9\xe6\xd9\xe7\xd9\xe8\xd9\xe9\xd9\xea\xd9\xeb\xd9\xec\xd9\xed\xd9\xee\xd9\xef\xd9\xf0\xd9\xf1\xd9\xf2\xd9\xf3\xd9\xf4\xd9\xf5\xd9\xf6\xd9\xf7\xd9\xf8\xd9\xf9\xd9\xfa\xd9\xfb\xd9\xfc\xd9\xfd\xd9\xfe\xda\x41\xda\x42\xda\x43\xda\x44\xda\x45\xda\x46\xda\x47\xda\x48\xda\x49\xda\x4a\xda\x4b\xda\x4c\xda\x4d\xda\x4e\xda\x4f\xda\x50\xda\x51\xda\x52\xda\x53\xda\x54\xda\x55\xda\x56\xda\x57\xda\x58\xda\x59\xda\x5a\xda\x5b\xda\x5c\xda\x5d\xda\x5e\xda\x5f\xda\x60\xda\x61\xda\x62\xda\x63\xda\x64\xda\x65\xda\x66\xda\x67\xda\x68\xda\x69\xda\x6a\xda\x6b\xda\x6c\xda\x6d\xda\x6e\xda\x6f\xda\x70\xda\x71\xda\x72\xda\x73\xda\x74\xda\x75\xda\x76\xda\x77\xda\x78\xce\x6f\xda\x79\xda\x7a\xda\x7b\xda\x7c\xda\x7d\xda\x7e\xda\x7f\xda\x80\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87\xda\x88\xda\x89", /* 3c80 */ "\xda\x8a\xda\x8b\xda\x8c\xda\x8d\xda\x8e\xda\x8f\xda\x90\xda\x91\xda\x92\xda\x93\xda\x94\xda\x95\xda\x96\xda\x97\xda\x98\xda\x99\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f\xda\xa0\xda\xa1\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8\xda\xa9\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9\xda\xba\xda\xbb\xda\xbc\xda\xbd\xda\xbe\xda\xbf\xda\xc0\xda\xc1\xda\xc2\xda\xc3\xda\xc4\xda\xc5\xda\xc6\xda\xc7\xda\xc8\xda\xc9\xda\xca\xda\xcb\xda\xcc\xda\xcd\xda\xce\xda\xcf\xda\xd0\xda\xd1\xda\xd2\xda\xd3\xda\xd4\xda\xd5\xda\xd6\xda\xd7\xda\xd8\xda\xd9\xda\xda\xda\xdb\xda\xdc\xda\xdd\xda\xde\xda\xdf\xda\xe0\xda\xe1\xda\xe2\xda\xe3\xda\xe4\xda\xe5\xda\xe6\xda\xe7\xda\xe8\xda\xe9\xce\x70\xda\xea\xda\xeb\xda\xec\xda\xed\xda\xee\xda\xef\xda\xf0\xda\xf1\xda\xf2\xda\xf3\xda\xf4\xda\xf5\xda\xf6\xda\xf7\xda\xf8\xda\xf9\xda\xfa\xda\xfb\xda\xfc\xda\xfd\xda\xfe\xdb\x41\xdb\x42\xdb\x43\xdb\x44\xdb\x45\xdb\x46\xdb\x47\xdb\x48\xdb\x49\xdb\x4a", /* 3d00 */ "\xdb\x4b\xdb\x4c\xdb\x4d\xdb\x4e\xdb\x4f\xdb\x50\xdb\x51\xdb\x52\xdb\x53\xdb\x54\xdb\x55\xdb\x56\xdb\x57\xdb\x58\xdb\x59\xdb\x5a\xdb\x5b\xdb\x5c\xdb\x5d\xdb\x5e\xdb\x5f\xdb\x60\xdb\x61\xdb\x62\xdb\x63\xdb\x64\xdb\x65\xdb\x66\xdb\x67\xdb\x68\xdb\x69\xdb\x6a\xdb\x6b\xdb\x6c\xdb\x6d\xdb\x6e\xdb\x6f\xdb\x70\xdb\x71\xdb\x72\xdb\x73\xdb\x74\xdb\x75\xdb\x76\xdb\x77\xdb\x78\xdb\x79\xdb\x7a\xdb\x7b\xdb\x7c\xdb\x7d\xdb\x7e\xdb\x7f\xdb\x80\xdb\x81\xdb\x82\xdb\x83\xdb\x84\xdb\x85\xdb\x86\xdb\x87\xdb\x88\xdb\x89\xdb\x8a\xdb\x8b\xdb\x8c\xdb\x8d\xdb\x8e\xdb\x8f\xdb\x90\xdb\x91\xdb\x92\xdb\x93\xdb\x94\xdb\x95\xdb\x96\xdb\x97\xdb\x98\xdb\x99\xdb\x9a\xdb\x9b\xdb\x9c\xdb\x9d\xdb\x9e\xdb\x9f\xdb\xa0\xdb\xa1\xdb\xa2\xdb\xa3\xdb\xa4\xdb\xa5\xdb\xa6\xdb\xa7\xdb\xa8\xdb\xa9\xdb\xaa\xdb\xab\xdb\xac\xdb\xad\xdb\xae\xdb\xaf\xdb\xb0\xdb\xb1\xdb\xb2\xdb\xb3\xdb\xb4\xdb\xb5\xdb\xb6\xdb\xb7\xdb\xb8\xdb\xb9\xdb\xba\xdb\xbb\xdb\xbc\xdb\xbd\xdb\xbe\xdb\xbf\xdb\xc0\xdb\xc1\xdb\xc2\xdb\xc3\xdb\xc4\xdb\xc5\xdb\xc6\xdb\xc7\xdb\xc8\xdb\xc9\xdb\xca", /* 3d80 */ "\xdb\xcb\xdb\xcc\xdb\xcd\xdb\xce\xdb\xcf\xdb\xd0\xdb\xd1\xdb\xd2\xdb\xd3\xdb\xd4\xdb\xd5\xdb\xd6\xdb\xd7\xdb\xd8\xdb\xd9\xdb\xda\xdb\xdb\xdb\xdc\xdb\xdd\xdb\xde\xdb\xdf\xdb\xe0\xdb\xe1\xdb\xe2\xdb\xe3\xdb\xe4\xdb\xe5\xdb\xe6\xdb\xe7\xdb\xe8\xdb\xe9\xdb\xea\xdb\xeb\xdb\xec\xdb\xed\xdb\xee\xdb\xef\xdb\xf0\xdb\xf1\xdb\xf2\xdb\xf3\xdb\xf4\xdb\xf5\xdb\xf6\xdb\xf7\xdb\xf8\xdb\xf9\xdb\xfa\xdb\xfb\xdb\xfc\xdb\xfd\xdb\xfe\xdc\x41\xdc\x42\xdc\x43\xdc\x44\xdc\x45\xdc\x46\xdc\x47\xdc\x48\xdc\x49\xdc\x4a\xdc\x4b\xdc\x4c\xdc\x4d\xdc\x4e\xdc\x4f\xdc\x50\xdc\x51\xdc\x52\xdc\x53\xdc\x54\xdc\x55\xdc\x56\xdc\x57\xdc\x58\xdc\x59\xdc\x5a\xdc\x5b\xdc\x5c\xdc\x5d\xdc\x5e\xdc\x5f\xdc\x60\xdc\x61\xdc\x62\xdc\x63\xdc\x64\xdc\x65\xdc\x66\xdc\x67\xdc\x68\xdc\x69\xdc\x6a\xdc\x6b\xdc\x6c\xdc\x6d\xdc\x6e\xdc\x6f\xdc\x70\xdc\x71\xdc\x72\xdc\x73\xdc\x74\xdc\x75\xdc\x76\xdc\x77\xdc\x78\xdc\x79\xdc\x7a\xdc\x7b\xdc\x7c\xdc\x7d\xdc\x7e\xdc\x7f\xdc\x80\xdc\x81\xdc\x82\xdc\x83\xdc\x84\xdc\x85\xdc\x86\xdc\x87\xdc\x88\xdc\x89\xdc\x8a\xdc\x8b\xdc\x8c", /* 3e00 */ "\xdc\x8d\xdc\x8e\xdc\x8f\xdc\x90\xdc\x91\xdc\x92\xdc\x93\xdc\x94\xdc\x95\xdc\x96\xdc\x97\xdc\x98\xdc\x99\xdc\x9a\xdc\x9b\xdc\x9c\xdc\x9d\xdc\x9e\xdc\x9f\xdc\xa0\xdc\xa1\xdc\xa2\xdc\xa3\xdc\xa4\xdc\xa5\xdc\xa6\xdc\xa7\xdc\xa8\xdc\xa9\xdc\xaa\xdc\xab\xdc\xac\xdc\xad\xdc\xae\xdc\xaf\xdc\xb0\xdc\xb1\xdc\xb2\xdc\xb3\xdc\xb4\xdc\xb5\xdc\xb6\xdc\xb7\xdc\xb8\xdc\xb9\xdc\xba\xdc\xbb\xdc\xbc\xdc\xbd\xdc\xbe\xdc\xbf\xdc\xc0\xdc\xc1\xdc\xc2\xdc\xc3\xdc\xc4\xdc\xc5\xdc\xc6\xdc\xc7\xdc\xc8\xdc\xc9\xdc\xca\xdc\xcb\xdc\xcc\xdc\xcd\xdc\xce\xdc\xcf\xdc\xd0\xdc\xd1\xdc\xd2\xdc\xd3\xdc\xd4\xdc\xd5\xdc\xd6\xdc\xd7\xdc\xd8\xdc\xd9\xdc\xda\xdc\xdb\xdc\xdc\xdc\xdd\xdc\xde\xdc\xdf\xdc\xe0\xdc\xe1\xdc\xe2\xdc\xe3\xdc\xe4\xdc\xe5\xdc\xe6\xdc\xe7\xdc\xe8\xdc\xe9\xdc\xea\xdc\xeb\xdc\xec\xdc\xed\xdc\xee\xdc\xef\xdc\xf0\xdc\xf1\xdc\xf2\xdc\xf3\xdc\xf4\xdc\xf5\xdc\xf6\xdc\xf7\xdc\xf8\xdc\xf9\xdc\xfa\xdc\xfb\xdc\xfc\xdc\xfd\xdc\xfe\xdd\x41\xdd\x42\xdd\x43\xdd\x44\xdd\x45\xdd\x46\xdd\x47\xdd\x48\xdd\x49\xdd\x4a\xdd\x4b\xdd\x4c\xdd\x4d\xdd\x4e", /* 3e80 */ "\xdd\x4f\xdd\x50\xdd\x51\xdd\x52\xdd\x53\xdd\x54\xdd\x55\xdd\x56\xdd\x57\xdd\x58\xdd\x59\xdd\x5a\xdd\x5b\xdd\x5c\xdd\x5d\xdd\x5e\xdd\x5f\xdd\x60\xdd\x61\xdd\x62\xdd\x63\xdd\x64\xdd\x65\xdd\x66\xdd\x67\xdd\x68\xdd\x69\xdd\x6a\xdd\x6b\xdd\x6c\xdd\x6d\xdd\x6e\xdd\x6f\xdd\x70\xdd\x71\xdd\x72\xdd\x73\xdd\x74\xdd\x75\xdd\x76\xdd\x77\xdd\x78\xdd\x79\xdd\x7a\xdd\x7b\xdd\x7c\xdd\x7d\xdd\x7e\xdd\x7f\xdd\x80\xdd\x81\xdd\x82\xdd\x83\xdd\x84\xdd\x85\xdd\x86\xdd\x87\xdd\x88\xdd\x89\xdd\x8a\xdd\x8b\xdd\x8c\xdd\x8d\xdd\x8e\xdd\x8f\xdd\x90\xdd\x91\xdd\x92\xdd\x93\xdd\x94\xdd\x95\xdd\x96\xdd\x97\xdd\x98\xdd\x99\xdd\x9a\xdd\x9b\xdd\x9c\xdd\x9d\xdd\x9e\xdd\x9f\xdd\xa0\xdd\xa1\xdd\xa2\xdd\xa3\xdd\xa4\xdd\xa5\xdd\xa6\xdd\xa7\xdd\xa8\xdd\xa9\xdd\xaa\xdd\xab\xdd\xac\xdd\xad\xdd\xae\xdd\xaf\xdd\xb0\xdd\xb1\xdd\xb2\xdd\xb3\xdd\xb4\xdd\xb5\xdd\xb6\xdd\xb7\xdd\xb8\xdd\xb9\xdd\xba\xdd\xbb\xdd\xbc\xdd\xbd\xdd\xbe\xdd\xbf\xdd\xc0\xdd\xc1\xdd\xc2\xdd\xc3\xdd\xc4\xdd\xc5\xdd\xc6\xdd\xc7\xdd\xc8\xdd\xc9\xdd\xca\xdd\xcb\xdd\xcc\xdd\xcd\xdd\xce", /* 3f00 */ "\xdd\xcf\xdd\xd0\xdd\xd1\xdd\xd2\xdd\xd3\xdd\xd4\xdd\xd5\xdd\xd6\xdd\xd7\xdd\xd8\xdd\xd9\xdd\xda\xdd\xdb\xdd\xdc\xdd\xdd\xdd\xde\xdd\xdf\xdd\xe0\xdd\xe1\xdd\xe2\xdd\xe3\xdd\xe4\xdd\xe5\xdd\xe6\xdd\xe7\xdd\xe8\xdd\xe9\xdd\xea\xdd\xeb\xdd\xec\xdd\xed\xdd\xee\xdd\xef\xdd\xf0\xdd\xf1\xdd\xf2\xdd\xf3\xdd\xf4\xdd\xf5\xdd\xf6\xdd\xf7\xdd\xf8\xdd\xf9\xdd\xfa\xdd\xfb\xdd\xfc\xdd\xfd\xdd\xfe\xde\x41\xde\x42\xde\x43\xde\x44\xde\x45\xde\x46\xde\x47\xde\x48\xde\x49\xde\x4a\xde\x4b\xde\x4c\xde\x4d\xde\x4e\xde\x4f\xde\x50\xde\x51\xde\x52\xde\x53\xde\x54\xde\x55\xde\x56\xde\x57\xde\x58\xde\x59\xde\x5a\xde\x5b\xde\x5c\xde\x5d\xde\x5e\xde\x5f\xde\x60\xde\x61\xde\x62\xde\x63\xde\x64\xde\x65\xde\x66\xde\x67\xde\x68\xde\x69\xde\x6a\xde\x6b\xde\x6c\xde\x6d\xde\x6e\xde\x6f\xde\x70\xde\x71\xde\x72\xde\x73\xde\x74\xde\x75\xde\x76\xde\x77\xde\x78\xde\x79\xde\x7a\xde\x7b\xde\x7c\xde\x7d\xde\x7e\xde\x7f\xde\x80\xde\x81\xde\x82\xde\x83\xde\x84\xde\x85\xde\x86\xde\x87\xde\x88\xde\x89\xde\x8a\xde\x8b\xde\x8c\xde\x8d\xde\x8e\xde\x8f\xde\x90", /* 3f80 */ "\xde\x91\xde\x92\xde\x93\xde\x94\xde\x95\xde\x96\xde\x97\xde\x98\xde\x99\xde\x9a\xde\x9b\xde\x9c\xde\x9d\xde\x9e\xde\x9f\xde\xa0\xde\xa1\xde\xa2\xde\xa3\xde\xa4\xde\xa5\xde\xa6\xde\xa7\xde\xa8\xde\xa9\xde\xaa\xde\xab\xde\xac\xde\xad\xde\xae\xde\xaf\xde\xb0\xde\xb1\xde\xb2\xde\xb3\xde\xb4\xde\xb5\xde\xb6\xde\xb7\xde\xb8\xde\xb9\xde\xba\xde\xbb\xde\xbc\xde\xbd\xde\xbe\xde\xbf\xde\xc0\xde\xc1\xde\xc2\xde\xc3\xde\xc4\xde\xc5\xde\xc6\xde\xc7\xde\xc8\xde\xc9\xde\xca\xde\xcb\xde\xcc\xde\xcd\xde\xce\xde\xcf\xde\xd0\xde\xd1\xde\xd2\xde\xd3\xde\xd4\xde\xd5\xde\xd6\xde\xd7\xde\xd8\xde\xd9\xde\xda\xde\xdb\xde\xdc\xde\xdd\xde\xde\xde\xdf\xde\xe0\xde\xe1\xde\xe2\xde\xe3\xde\xe4\xde\xe5\xde\xe6\xde\xe7\xde\xe8\xde\xe9\xde\xea\xde\xeb\xde\xec\xde\xed\xde\xee\xde\xef\xde\xf0\xde\xf1\xde\xf2\xde\xf3\xde\xf4\xde\xf5\xde\xf6\xde\xf7\xde\xf8\xde\xf9\xde\xfa\xde\xfb\xde\xfc\xde\xfd\xde\xfe\xdf\x41\xdf\x42\xdf\x43\xdf\x44\xdf\x45\xdf\x46\xdf\x47\xdf\x48\xdf\x49\xdf\x4a\xdf\x4b\xdf\x4c\xdf\x4d\xdf\x4e\xdf\x4f\xdf\x50\xdf\x51\xdf\x52", /* 4000 */ "\xdf\x53\xdf\x54\xdf\x55\xdf\x56\xdf\x57\xdf\x58\xdf\x59\xdf\x5a\xdf\x5b\xdf\x5c\xdf\x5d\xdf\x5e\xdf\x5f\xdf\x60\xdf\x61\xdf\x62\xdf\x63\xdf\x64\xdf\x65\xdf\x66\xdf\x67\xdf\x68\xdf\x69\xdf\x6a\xdf\x6b\xdf\x6c\xdf\x6d\xdf\x6e\xdf\x6f\xdf\x70\xdf\x71\xdf\x72\xdf\x73\xdf\x74\xdf\x75\xdf\x76\xdf\x77\xdf\x78\xdf\x79\xdf\x7a\xdf\x7b\xdf\x7c\xdf\x7d\xdf\x7e\xdf\x7f\xdf\x80\xdf\x81\xdf\x82\xdf\x83\xdf\x84\xdf\x85\xdf\x86\xdf\x87\xdf\x88\xdf\x89\xdf\x8a\xdf\x8b\xdf\x8c\xdf\x8d\xdf\x8e\xdf\x8f\xdf\x90\xdf\x91\xdf\x92\xdf\x93\xdf\x94\xdf\x95\xdf\x96\xdf\x97\xdf\x98\xdf\x99\xdf\x9a\xdf\x9b\xdf\x9c\xdf\x9d\xdf\x9e\xdf\x9f\xdf\xa0\xdf\xa1\xdf\xa2\xdf\xa3\xdf\xa4\xdf\xa5\xdf\xa6\xdf\xa7\xdf\xa8\xce\x75\xdf\xa9\xdf\xaa\xdf\xab\xdf\xac\xdf\xad\xdf\xae\xdf\xaf\xdf\xb0\xdf\xb1\xdf\xb2\xdf\xb3\xdf\xb4\xdf\xb5\xdf\xb6\xdf\xb7\xdf\xb8\xdf\xb9\xdf\xba\xdf\xbb\xdf\xbc\xdf\xbd\xdf\xbe\xdf\xbf\xdf\xc0\xdf\xc1\xdf\xc2\xdf\xc3\xdf\xc4\xdf\xc5\xdf\xc6\xdf\xc7\xdf\xc8\xdf\xc9\xdf\xca\xdf\xcb\xdf\xcc\xdf\xcd\xdf\xce\xdf\xcf\xdf\xd0\xdf\xd1", /* 4080 */ "\xdf\xd2\xdf\xd3\xdf\xd4\xdf\xd5\xdf\xd6\xdf\xd7\xdf\xd8\xdf\xd9\xdf\xda\xdf\xdb\xdf\xdc\xdf\xdd\xdf\xde\xdf\xdf\xdf\xe0\xdf\xe1\xdf\xe2\xdf\xe3\xdf\xe4\xdf\xe5\xdf\xe6\xdf\xe7\xdf\xe8\xdf\xe9\xdf\xea\xdf\xeb\xdf\xec\xdf\xed\xdf\xee\xdf\xef\xdf\xf0\xdf\xf1\xdf\xf2\xdf\xf3\xdf\xf4\xdf\xf5\xdf\xf6\xdf\xf7\xdf\xf8\xdf\xf9\xdf\xfa\xdf\xfb\xdf\xfc\xdf\xfd\xdf\xfe\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93", /* 4100 */ "\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xce\x76\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54", /* 4180 */ "\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4", /* 4200 */ "\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96", /* 4280 */ "\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58", /* 4300 */ "\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xce\x78\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7", /* 4380 */ "\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xce\x7e\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xce\x7d\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xce\x81\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96", /* 4400 */ "\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58", /* 4480 */ "\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xce\x82\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7", /* 4500 */ "\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99", /* 4580 */ "\xe6\x9a\xe6\x9b\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b", /* 4600 */ "\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xce\x84\xe7\xa8\xe7\xa9\xe7\xaa\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xce\x83\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9", /* 4680 */ "\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b", /* 4700 */ "\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xce\x86\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xce\x87\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xce\x88\xe9\x58\xe9\x59\xe9\x5a", /* 4780 */ "\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xce\x89\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9", /* 4800 */ "\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b", /* 4880 */ "\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xeb\x41\xeb\x42\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d", /* 4900 */ "\xeb\x5e\xeb\x5f\xeb\x60\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xce\x8b\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xce\x8c\xeb\xd7\xeb\xd8\xce\x8d\xeb\xd9\xeb\xda", /* 4980 */ "\xeb\xdb\xeb\xdc\xce\x8e\xce\x8f\xeb\xdd\xce\x90\xce\x91\xeb\xde\xeb\xdf\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xce\x93\xeb\xf2\xeb\xf3\xeb\xf4\xce\x92\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xce\x95\xce\x94\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94", /* 4a00 */ "\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56", /* 4a80 */ "\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6", /* 4b00 */ "\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98", /* 4b80 */ "\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a", /* 4c00 */ "\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xce\x9c\xef\xd2\xef\xd3\xef\xd4\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9", /* 4c80 */ "\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xce\x99\xce\x9a\xce\x9b\xce\x9d\xce\x98\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xf6\x41\xf6\x42\xf6\x43\xf6\x44\xf6\x45\xf6\x46\xf6\x47\xf6\x48\xf6\x49\xf6\x4a\xf6\x4b\xf6\x4c\xf6\x4d\xf6\x4e\xf6\x4f\xf6\x50\xf6\x51\xf6\x52\xf6\x53\xf6\x54\xf6\x55\xf6\x56\xf6\x57\xf6\x58\xf6\x59\xf6\x5a\xf6\x5b\xf6\x5c\xf6\x5d\xf6\x5e\xf6\x5f\xf6\x60\xf6\x61\xf6\x62\xf6\x63\xf6\x64\xf6\x65\xf6\x66\xf6\x67\xf6\x68\xf6\x69\xf6\x6a\xf6\x6b\xf6\x6c\xf6\x6d\xf6\x6e\xf6\x6f\xf6\x70\xf6\x71\xf6\x72\xf6\x73\xf6\x74\xf6\x75\xf6\x76\xf6\x77\xf6\x78\xf6\x79\xf6\x7a\xf6\x7b\xf6\x7c\xf6\x7d\xf6\x7e\xf6\x7f\xf6\x80\xf6\x81\xf6\x82\xf6\x83\xf6\x84\xf6\x85\xf6\x86\xf6\x87\xf6\x88\xf6\x89\xf6\x8a\xf6\x8b\xf6\x8c\xf6\x8d\xf6\x8e\xf6\x8f\xf6\x90\xf6\x91\xf6\x92\xf6\x93\xf6\x94\xf6\x95\xf6\x96", /* 4d00 */ "\xf6\x97\xf6\x98\xf6\x99\xf6\x9a\xf6\x9b\xf6\x9c\xf6\x9d\xf6\x9e\xf6\x9f\xf6\xa0\xf6\xa1\xf6\xa2\xf6\xa3\xf6\xa4\xf6\xa5\xf6\xa6\xf6\xa7\xf6\xa8\xf6\xa9\xce\x9e\xce\x9f\xce\xa0\xce\xa1\xce\xa2\xce\xa3\xce\xa4\xf6\xaa\xf6\xab\xf6\xac\xf6\xad\xf6\xae\xf6\xaf\xf6\xb0\xf6\xb1\xf6\xb2\xf6\xb3\xf6\xb4\xf6\xb5\xf6\xb6\xf6\xb7\xf6\xb8\xf6\xb9\xf6\xba\xf6\xbb\xf6\xbc\xf6\xbd\xf6\xbe\xf6\xbf\xf6\xc0\xf6\xc1\xf6\xc2\xf6\xc3\xf6\xc4\xf6\xc5\xf6\xc6\xf6\xc7\xf6\xc8\xf6\xc9\xf6\xca\xf6\xcb\xf6\xcc\xf6\xcd\xf6\xce\xf6\xcf\xf6\xd0\xf6\xd1\xf6\xd2\xf6\xd3\xf6\xd4\xf6\xd5\xf6\xd6\xf6\xd7\xf6\xd8\xf6\xd9\xf6\xda\xf6\xdb\xf6\xdc\xf6\xdd\xf6\xde\xf6\xdf\xf6\xe0\xf6\xe1\xf6\xe2\xf6\xe3\xf6\xe4\xf6\xe5\xf6\xe6\xf6\xe7\xf6\xe8\xf6\xe9\xf6\xea\xf6\xeb\xf6\xec\xf6\xed\xf6\xee\xf6\xef\xf6\xf0\xf6\xf1\xf6\xf2\xf6\xf3\xf6\xf4\xf6\xf5\xf6\xf6\xf6\xf7\xf6\xf8\xf6\xf9\xf6\xfa\xf6\xfb\xf6\xfc\xf6\xfd\xf6\xfe\xf7\x41\xf7\x42\xf7\x43\xf7\x44\xf7\x45\xf7\x46\xf7\x47\xf7\x48\xf7\x49\xf7\x4a\xf7\x4b\xf7\x4c\xf7\x4d\xf7\x4e\xf7\x4f\xf7\x50\xf7\x51", /* 4d80 */ "\xf7\x52\xf7\x53\xf7\x54\xf7\x55\xf7\x56\xf7\x57\xf7\x58\xf7\x59\xf7\x5a\xf7\x5b\xf7\x5c\xf7\x5d\xf7\x5e\xf7\x5f\xf7\x60\xf7\x61\xf7\x62\xf7\x63\xf7\x64\xf7\x65\xf7\x66\xf7\x67\xf7\x68\xf7\x69\xf7\x6a\xf7\x6b\xf7\x6c\xf7\x6d\xf7\x6e\xf7\x6f\xf7\x70\xf7\x71\xf7\x72\xf7\x73\xf7\x74\xf7\x75\xf7\x76\xf7\x77\xf7\x78\xf7\x79\xf7\x7a\xf7\x7b\xf7\x7c\xf7\x7d\xf7\x7e\xf7\x7f\xce\xa5\xf7\x80\xf7\x81\xf7\x82\xf7\x83\xf7\x84\xf7\x85\xf7\x86\xf7\x87\xf7\x88\xf7\x89\xf7\x8a\xf7\x8b\xf7\x8c\xf7\x8d\xf7\x8e\xf7\x8f\xf7\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4e00 */ "\x59\xba\x4b\xa0\x81\x41\x53\xde\x81\x42\x81\x43\x81\x44\x57\x93\x5b\x69\x54\xfc\x55\x6f\x58\x62\x5c\xa1\x49\xba\x5a\x8c\x81\x45\x5c\xa3\x4a\x94\x81\x46\x5c\x48\x54\x72\x5c\xa6\x55\xbf\x81\x47\x54\x91\x49\x9c\x59\xb4\x4a\xd3\x4b\xaa\x56\x5f\x5c\xa8\x81\x48\x81\x49\x81\x4a\x4b\xa9\x81\x4b\x51\x5d\x59\x6f\x81\x4c\x55\x45\x5c\xac\x81\x4d\x4c\xf5\x59\x5e\x62\x7c\x5b\xcf\x81\x4e\x81\x4f\x4c\x82\x81\x50\x4a\xad\x81\x51\x51\x79\x81\x52\x5c\xbb\x81\x53\x57\x89\x4b\x44\x57\xa9\x5b\xf6\x81\x54\x50\xf5\x4f\xd8\x5c\xae\x81\x55\x81\x56\x81\x57\x52\xca\x81\x58\x4f\xc2\x81\x59\x5c\xb0\x52\x54\x59\xe4\x81\x5a\x5b\xad\x57\xd9\x5b\x47\x4d\xf4\x4c\x46\x50\xd5\x81\x5b\x53\xb8\x53\x72\x54\x67\x81\x5c\x4d\x74\x81\x5d\x4a\x6b\x59\xd1\x81\x5e\x81\x5f\x5c\xbe\x4f\xc4\x53\xf1\x59\xb1\x58\x50\x58\x88\x81\x60\x81\x61\x81\x62\x81\x63\x55\xe8\x81\x64\x81\x65\x5c\xbf\x81\x66\x81\x67\x81\x68\x81\x69\x81\x6a\x81\x6b\x51\xf1\x51\xd1\x81\x6c\x54\xe8\x81\x6d\x81\x6e\x81\x6f\x81\x70\x81\x71\x81\x72\x81\x73\x81\x74\x81\x75\x81\x76\x54\x4c\x81\x77", /* 4e80 */ "\x81\x78\x81\x79\x81\x7a\x81\x7b\x81\x7c\x81\x7d\x51\x6b\x81\x7e\x5a\x89\x5b\x9a\x81\x7f\x55\xc1\x4b\xfd\x5c\xa0\x5a\x7a\x50\x98\x81\x81\x5a\xc5\x4e\x45\x5c\xc0\x57\xe4\x4f\xad\x81\x82\x81\x83\x5c\xa7\x81\x84\x59\x67\x58\xa8\x81\x85\x81\x86\x81\x87\x5c\xbc\x5d\x90\x57\x97\x50\x5a\x81\x88\x4f\x5b\x4d\xa4\x59\xdf\x49\xf9\x4d\xdf\x52\xb5\x81\x89\x58\x8e\x4f\xa8\x57\x44\x51\x61\x81\x8a\x81\x8b\x81\x8c\x54\x77\x5d\x92\x81\x8d\x5d\x95\x81\x8e\x81\x8f\x81\x90\x81\x91\x54\xca\x5c\xe8\x81\x92\x81\x93\x81\x94\x59\xd9\x55\xb1\x54\xc9\x5c\xeb\x5c\xe9\x5c\xc5\x4f\x97\x53\xcc\x4a\x91\x81\x95\x5c\xea\x4f\x92\x4f\x8a\x81\x96\x54\xd3\x4a\xd2\x81\x97\x81\x98\x51\xd7\x81\x99\x49\xd5\x5c\x70\x55\xca\x56\x9c\x5b\x6c\x4c\xb5\x58\x69\x81\x9a\x81\x9b\x81\x9c\x5d\x7a\x5c\xef\x54\x4a\x81\x9d\x5c\xed\x81\x9e\x4a\xf9\x51\x8f\x59\xd3\x81\x9f\x81\xa0\x5c\xec\x81\xa1\x59\xc6\x5c\xee\x52\x67\x81\xa2\x81\xa3\x81\xa4\x59\x97\x81\xa5\x5b\xd8\x5c\xf1\x81\xa6\x5c\xf4\x4e\xfd\x4e\xda\x81\xa7\x81\xa8\x81\xa9\x54\xcd\x81\xaa\x4c\x7d\x81\xab\x4c\x62", /* 4f00 */ "\x81\xac\x53\xf2\x81\xad\x81\xae\x81\xaf\x81\xb0\x81\xb1\x81\xb2\x81\xb3\x5c\xf7\x59\xc0\x81\xb4\x81\xb5\x57\xe8\x4e\xbe\x4c\x9d\x4c\x45\x58\xdc\x81\xb6\x81\xb7\x81\xb8\x81\xb9\x81\xba\x5b\xd9\x5a\x65\x4e\x90\x4e\x82\x5c\xf0\x81\xbb\x81\xbc\x55\x41\x57\xaf\x4a\xaa\x81\xbd\x5c\xf2\x81\xbe\x55\x6b\x5c\xf5\x51\xd6\x5c\xf6\x81\xbf\x81\xc0\x57\xb0\x5c\xf8\x81\xc1\x81\xc2\x81\xc3\x49\xad\x4d\x60\x81\xc4\x5d\x43\x81\xc5\x48\xe8\x81\xc6\x51\x87\x81\xc7\x55\x8d\x81\xc8\x56\x65\x81\xc9\x56\x66\x5d\x44\x81\xca\x81\xcb\x81\xcc\x81\xcd\x81\xce\x4b\x89\x81\xcf\x81\xd0\x4b\x4b\x81\xd1\x81\xd2\x81\xd3\x81\xd4\x81\xd5\x81\xd6\x57\xba\x4b\x6d\x5c\x41\x5c\x95\x5a\x73\x81\xd7\x56\xe4\x81\xd8\x4d\xcd\x81\xd9\x5d\x42\x5d\x7c\x5a\x81\x5c\xfc\x4c\x91\x5c\x98\x5c\xfd\x5c\xf9\x5d\x41\x52\xe2\x81\xda\x81\xdb\x5a\x56\x5c\xf3\x5d\x7d\x81\xdc\x5c\xfa\x81\xdd\x53\x86\x81\xde\x81\xdf\x50\xcf\x81\xe0\x81\xe1\x59\x91\x48\xda\x81\xe2\x81\xe3\x4e\xd0\x5d\x46\x81\xe4\x5d\x45\x81\xe5\x81\xe6\x81\xe7\x81\xe8\x5d\x4c\x5d\x4e\x81\xe9\x5d\x4b\x55\xb8", /* 4f80 */ "\x81\xea\x81\xeb\x81\xec\x5d\x49\x5b\xb5\x81\xed\x81\xee\x81\xef\x4a\x7e\x5d\x48\x81\xf0\x50\xfc\x81\xf1\x55\xcb\x81\xf2\x5d\x4a\x81\xf3\x5d\x47\x81\xf4\x81\xf5\x5d\x50\x81\xf6\x81\xf7\x4b\xb0\x81\xf8\x81\xf9\x81\xfa\x4d\x49\x81\xfb\x59\xbf\x81\xfc\x81\xfd\x58\x60\x82\x41\x82\x42\x51\xc1\x82\x43\x4f\x64\x5b\x8d\x49\xdf\x54\x68\x50\x8c\x5d\x4d\x82\x44\x5d\x4f\x82\x45\x57\xe9\x4d\xed\x82\x46\x82\x47\x82\x48\x82\x49\x82\x4a\x54\x76\x82\x4b\x82\x4c\x82\x4d\x82\x4e\x82\x4f\x82\x50\x82\x51\x82\x52\x82\x53\x49\x84\x82\x54\x82\x55\x82\x56\x4a\xd8\x4b\xec\x5d\x54\x82\x57\x82\x58\x82\x59\x82\x5a\x50\x41\x82\x5b\x82\x5c\x82\x5d\x5d\x7e\x54\x6e\x50\xfd\x5d\x58\x82\x5e\x82\x5f\x82\x60\x82\x61\x82\x62\x56\x77\x4c\x9e\x82\x63\x5d\x55\x82\x64\x5d\x57\x49\x43\x5a\x82\x5d\x59\x82\x65\x58\xc4\x82\x66\x5d\x56\x82\x67\x82\x68\x5d\x51\x82\x69\x5d\x52\x51\x49\x5d\x53\x82\x6a\x82\x6b\x4e\xf2\x58\xdd\x4c\xa8\x82\x6c\x4f\xe2\x82\x6d\x5d\x5d\x82\x6e\x82\x6f\x82\x70\x82\x71\x5d\x5a\x82\x72\x48\xb2\x82\x73\x82\x74\x82\x75\x5d\x62\x82\x76", /* 5000 */ "\x82\x77\x82\x78\x82\x79\x82\x7a\x82\x7b\x82\x7c\x82\x7d\x82\x7e\x82\x7f\x82\x81\x82\x82\x82\x83\x5d\x64\x49\x56\x82\x84\x5d\x5f\x82\x85\x82\x86\x4b\x59\x82\x87\x4f\xf2\x82\x88\x82\x89\x82\x8a\x56\xc7\x4d\xf1\x59\xcf\x82\x8b\x5d\x63\x82\x8c\x82\x8d\x4f\x89\x82\x8e\x4a\x4b\x82\x8f\x82\x90\x82\x91\x5d\x65\x4f\xea\x82\x92\x5d\x66\x5d\x5b\x52\xde\x82\x93\x5d\x5e\x5d\x61\x5d\x60\x82\x94\x82\x95\x82\x96\x82\x97\x82\x98\x82\x99\x82\x9a\x82\x9b\x82\x9c\x82\x9d\x82\x9e\x5b\x4e\x82\x9f\x5b\xb4\x82\xa0\x54\x84\x82\xa1\x82\xa2\x82\xa3\x82\xa4\x5d\x68\x82\xa5\x82\xa6\x82\xa7\x4e\xd8\x5d\x6a\x82\xa8\x82\xa9\x82\xaa\x5d\x5c\x82\xab\x5d\x6b\x53\xaa\x82\xac\x82\xad\x82\xae\x82\xaf\x82\xb0\x5d\x69\x82\xb1\x82\xb2\x82\xb3\x82\xb4\x5c\x97\x82\xb5\x57\x43\x82\xb6\x82\xb7\x82\xb8\x82\xb9\x82\xba\x82\xbb\x82\xbc\x82\xbd\x4f\x41\x82\xbe\x82\xbf\x82\xc0\x82\xc1\x82\xc2\x82\xc3\x5d\x6c\x82\xc4\x82\xc5\x82\xc6\x82\xc7\x82\xc8\x82\xc9\x82\xca\x82\xcb\x82\xcc\x53\x5c\x57\x55\x82\xcd\x82\xce\x82\xcf\x5d\x6d\x82\xd0\x82\xd1\x5d\x67\x4a\x45", /* 5080 */ "\x50\x9f\x82\xd2\x82\xd3\x82\xd4\x82\xd5\x4c\xb4\x82\xd6\x82\xd7\x50\xfb\x82\xd8\x82\xd9\x82\xda\x82\xdb\x48\xf7\x82\xdc\x82\xdd\x82\xde\x82\xdf\x82\xe0\x82\xe1\x82\xe2\x82\xe3\x82\xe4\x82\xe5\x82\xe6\x82\xe7\x82\xe8\x82\xe9\x82\xea\x82\xeb\x82\xec\x82\xed\x82\xee\x82\xef\x82\xf0\x4a\xf5\x82\xf1\x5d\x6e\x82\xf2\x5d\x6f\x4a\xa1\x5d\x70\x82\xf3\x82\xf4\x4a\xde\x82\xf5\x82\xf6\x82\xf7\x82\xf8\x82\xf9\x48\xc0\x82\xfa\x82\xfb\x82\xfc\x82\xfd\x83\x41\x83\x42\x83\x43\x5d\x71\x55\x55\x83\x44\x83\x45\x83\x46\x83\x47\x83\x48\x83\x49\x83\x4a\x83\x4b\x83\x4c\x83\x4d\x83\x4e\x83\x4f\x83\x50\x83\x51\x83\x52\x83\x53\x83\x54\x83\x55\x83\x56\x58\x92\x83\x57\x83\x58\x83\x59\x83\x5a\x83\x5b\x83\x5c\x5d\x72\x83\x5d\x83\x5e\x83\x5f\x51\x65\x83\x60\x83\x61\x83\x62\x83\x63\x83\x64\x83\x65\x83\x66\x83\x67\x83\x68\x83\x69\x83\x6a\x5d\x76\x55\x4e\x83\x6b\x83\x6c\x83\x6d\x83\x6e\x5d\x75\x5d\x74\x5d\x77\x83\x6f\x83\x70\x83\x71\x83\x72\x56\x7b\x83\x73\x4f\x49\x83\x74\x83\x75\x83\x76\x83\x77\x83\x78\x53\xa6\x83\x79\x83\x7a\x83\x7b\x83\x7c", /* 5100 */ "\x83\x7d\x83\x7e\x83\x7f\x83\x81\x83\x82\x83\x83\x5d\x73\x5d\x78\x83\x84\x83\x85\x83\x86\x5d\x79\x83\x87\x83\x88\x83\x89\x83\x8a\x83\x8b\x83\x8c\x54\xe4\x83\x8d\x83\x8e\x83\x8f\x83\x90\x83\x91\x83\x92\x83\x93\x83\x94\x83\x95\x83\x96\x83\x97\x83\x98\x83\x99\x83\x9a\x50\xdb\x83\x9b\x83\x9c\x83\x9d\x83\x9e\x83\x9f\x83\xa0\x83\xa1\x83\xa2\x83\xa3\x83\xa4\x83\xa5\x83\xa6\x83\xa7\x83\xa8\x83\xa9\x83\xaa\x83\xab\x83\xac\x83\xad\x83\xae\x83\xaf\x83\xb0\x83\xb1\x83\xb2\x83\xb3\x83\xb4\x83\xb5\x83\xb6\x83\xb7\x4b\xf8\x5c\xa2\x5a\xc9\x83\xb8\x5a\xa9\x58\xd5\x4a\x85\x5b\x77\x83\xb9\x58\x68\x4d\x83\x83\xba\x50\x6b\x83\xbb\x52\x83\x83\xbc\x83\xbd\x83\xbe\x4b\xd1\x83\xbf\x83\xc0\x57\x63\x5d\x8f\x5d\x91\x83\xc1\x83\xc2\x83\xc3\x4b\x53\x83\xc4\x4b\xb4\x83\xc5\x83\xc6\x83\xc7\x83\xc8\x83\xc9\x4f\xa3\x83\xca\x83\xcb\x54\xea\x83\xcc\x83\xcd\x54\xaa\x83\xce\x83\xcf\x48\xca\x4d\x4b\x51\x9a\x5d\x83\x83\xd0\x50\xbb\x4d\x52\x83\xd1\x4d\x78\x58\xca\x49\x99\x53\xe3\x4f\xde\x4b\x85\x5c\x68\x83\xd2\x59\x99\x4e\xe5\x55\xdd\x83\xd3\x83\xd4", /* 5180 */ "\x4e\xbc\x5d\x87\x5c\xe6\x83\xd5\x83\xd6\x52\xd9\x83\xd7\x83\xd8\x4c\xd3\x54\xbc\x83\xd9\x83\xda\x49\xe0\x5a\xd8\x83\xdb\x83\xdc\x83\xdd\x83\xde\x52\x50\x83\xdf\x83\xe0\x52\x82\x5d\xa1\x54\xde\x83\xe1\x58\xb3\x83\xe2\x4f\xfb\x53\x49\x83\xe3\x83\xe4\x83\xe5\x4d\x7a\x83\xe6\x5d\xa2\x83\xe7\x5a\xa8\x5d\xa3\x83\xe8\x83\xe9\x83\xea\x83\xeb\x83\xec\x5d\x9c\x4b\xab\x83\xed\x83\xee\x4c\x8c\x49\x9a\x5d\x9d\x4a\x86\x4f\xf5\x83\xef\x50\x97\x59\xb0\x50\xe3\x83\xf0\x83\xf1\x83\xf2\x4b\xb2\x5d\x9f\x5d\x9e\x83\xf3\x83\xf4\x4f\xba\x83\xf5\x83\xf6\x83\xf7\x53\xdf\x83\xf8\x5c\x5c\x5d\xa0\x83\xf9\x51\x59\x83\xfa\x4b\x93\x51\x89\x83\xfb\x83\xfc\x4e\xf4\x83\xfd\x4a\xd4\x84\x41\x84\x42\x84\x43\x84\x44\x84\x45\x84\x46\x84\x47\x84\x48\x84\x49\x51\x7d\x84\x4a\x52\xfc\x84\x4b\x84\x4c\x4e\xb7\x4c\x52\x84\x4d\x84\x4e\x4c\x90\x84\x4f\x84\x50\x84\x51\x84\x52\x84\x53\x84\x54\x5d\x8d\x84\x55\x53\xbd\x84\x56\x50\x4d\x4e\x6b\x84\x57\x84\x58\x4b\x6a\x84\x59\x5e\x69\x58\xd6\x84\x5a\x57\x59\x48\xbb\x4a\x97\x4e\x98\x5e\x6a\x4d\xae\x84\x5b\x5a\xe3", /* 5200 */ "\x4b\x56\x4b\x94\x5c\xd5\x54\xcf\x84\x5c\x84\x5d\x4c\x76\x54\x70\x5c\xd6\x84\x5e\x50\x4f\x84\x5f\x84\x60\x5e\x5b\x5c\xd7\x84\x61\x84\x62\x58\xcb\x4e\x4e\x84\x63\x84\x64\x84\x65\x66\x5e\x51\x70\x51\x96\x5a\xf1\x4c\xd4\x4a\xb3\x84\x66\x4a\x96\x84\x67\x84\x68\x55\x5e\x84\x69\x84\x6a\x84\x6b\x53\x70\x84\x6c\x84\x6d\x84\x6e\x53\x79\x50\xfa\x84\x6f\x49\x91\x84\x70\x5c\xd8\x4d\x6e\x84\x71\x4b\x5d\x84\x72\x84\x73\x5c\xd9\x84\x74\x84\x75\x5b\xc5\x56\x42\x54\xae\x55\x52\x4a\xcb\x50\x6c\x84\x76\x4d\x95\x84\x77\x5c\xda\x5c\xdb\x4b\xe6\x4e\xc0\x56\xe9\x84\x78\x84\x79\x84\x7a\x84\x7b\x84\x7c\x84\x7d\x58\x98\x84\x7e\x5c\xdc\x54\x50\x84\x7f\x84\x81\x4d\x70\x4f\x43\x84\x82\x84\x83\x56\xdd\x84\x84\x53\xc9\x84\x85\x84\x86\x84\x87\x84\x88\x84\x89\x5c\xdf\x84\x8a\x5c\xdd\x84\x8b\x84\x8c\x5c\xde\x84\x8d\x84\x8e\x84\x8f\x48\xfd\x84\x90\x4f\xe6\x84\x91\x55\xa2\x4e\xf3\x84\x92\x84\x93\x84\x94\x84\x95\x4c\xb0\x84\x96\x84\x97\x4c\xed\x84\x98\x84\x99\x84\x9a\x84\x9b\x84\x9c\x84\x9d\x84\x9e\x84\x9f\x84\xa0\x84\xa1\x5c\xe1\x84\xa2\x4f\x6b", /* 5280 */ "\x84\xa3\x5c\xe3\x5c\xe2\x84\xa4\x84\xa5\x84\xa6\x84\xa7\x84\xa8\x53\x9d\x84\xa9\x84\xaa\x84\xab\x84\xac\x84\xad\x84\xae\x84\xaf\x5c\xe4\x84\xb0\x84\xb1\x5c\xe5\x84\xb2\x84\xb3\x84\xb4\x84\xb5\x84\xb6\x84\xb7\x84\xb8\x51\x46\x84\xb9\x54\xaf\x48\xeb\x4d\x46\x4e\xd2\x57\xf0\x5e\x5d\x51\x73\x84\xba\x84\xbb\x84\xbc\x84\xbd\x4b\xae\x5b\xf9\x53\x4c\x4f\x79\x5e\x5e\x5e\x5f\x84\xbe\x84\xbf\x84\xc0\x50\xf7\x4f\xa1\x50\xcc\x84\xc1\x84\xc2\x84\xc3\x84\xc4\x84\xc5\x84\xc6\x84\xc7\x84\xc8\x84\xc9\x84\xca\x5e\x60\x55\xc5\x84\xcb\x84\xcc\x84\xcd\x49\xa9\x84\xce\x84\xcf\x84\xd0\x5a\x62\x84\xd1\x52\x84\x84\xd2\x59\x4b\x84\xd3\x84\xd4\x84\xd5\x84\xd6\x5e\x62\x84\xd7\x50\xd4\x84\xd8\x84\xd9\x84\xda\x5e\x63\x84\xdb\x50\x51\x84\xdc\x84\xdd\x84\xde\x84\xdf\x84\xe0\x84\xe1\x52\xbb\x84\xe2\x84\xe3\x84\xe4\x84\xe5\x54\x7a\x84\xe6\x84\xe7\x84\xe8\x84\xe9\x84\xea\x84\xeb\x84\xec\x84\xed\x84\xee\x84\xef\x84\xf0\x5e\x64\x84\xf1\x84\xf2\x84\xf3\x84\xf4\x84\xf5\x84\xf6\x84\xf7\x84\xf8\x5d\x89\x55\x77\x84\xf9\x84\xfa\x84\xfb\x4d\x54\x57\xef", /* 5300 */ "\x5a\xc7\x84\xfc\x84\xfd\x85\x41\x85\x42\x48\xfb\x4a\xd1\x85\x43\x58\xd8\x85\x44\x85\x45\x85\x46\x85\x47\x5d\x8a\x85\x48\x5f\xca\x5d\x8c\x85\x49\x85\x4a\x85\x4b\x85\x4c\x5c\xaf\x4e\x4f\x49\x51\x85\x4d\x4a\x77\x5c\xcd\x85\x4e\x85\x4f\x5a\xd0\x85\x50\x85\x51\x4f\x53\x50\x90\x85\x52\x58\x5b\x85\x53\x85\x54\x5c\xcf\x85\x55\x85\x56\x85\x57\x4c\x6b\x85\x58\x85\x59\x85\x5a\x5c\xd0\x85\x5b\x85\x5c\x85\x5d\x85\x5e\x85\x5f\x85\x60\x85\x61\x85\x62\x85\x63\x85\x64\x53\xa4\x54\x99\x59\xbc\x85\x65\x85\x66\x5c\xd1\x52\xe3\x85\x67\x55\xad\x85\x68\x54\x47\x85\x69\x5c\xa5\x85\x6a\x55\x9e\x57\xe6\x4e\x7c\x48\xea\x85\x6b\x85\x6c\x85\x6d\x4e\x4a\x58\xac\x85\x6e\x49\x50\x5c\x85\x5c\x5f\x85\x6f\x4b\x45\x51\xf3\x52\xce\x85\x70\x85\x71\x49\xa8\x85\x72\x49\xb6\x85\x73\x49\x86\x60\x52\x5b\x5c\x50\x48\x51\xab\x5c\xd4\x51\xb0\x85\x74\x5c\xd3\x57\xd3\x85\x75\x5d\xdf\x85\x76\x57\xbf\x85\x77\x85\x78\x5c\xb3\x52\x4e\x5a\x41\x57\xa2\x85\x79\x4e\xb3\x54\xb3\x51\xd0\x85\x7a\x4f\xec\x58\xb5\x85\x7b\x5d\xe0\x85\x7c\x85\x7d\x85\x7e\x85\x7f\x54\x85", /* 5380 */ "\x85\x81\x85\x82\x4a\x47\x85\x83\x4b\xf1\x56\xfb\x50\xf9\x85\x84\x85\x85\x50\xf6\x85\x86\x59\x59\x59\x82\x5c\xc6\x85\x87\x85\x88\x85\x89\x85\x8a\x85\x8b\x85\x8c\x85\x8d\x49\xdd\x85\x8e\x85\x8f\x50\xe4\x85\x90\x4d\xf0\x85\x91\x85\x92\x5c\xc7\x85\x93\x5a\xac\x85\x94\x85\x95\x58\x82\x5c\xc8\x85\x96\x5c\xc9\x58\x63\x85\x97\x4a\x99\x4f\xc6\x85\x98\x85\x99\x85\x9a\x85\x9b\x5c\xca\x85\x9c\x85\x9d\x85\x9e\x85\x9f\x85\xa0\x85\xa1\x85\xa2\x5e\x6c\x85\xa3\x85\xa4\x85\xa5\x85\xa6\x54\xa4\x85\xa7\x85\xa8\x85\xa9\x58\x78\x85\xaa\x54\xfd\x49\xcd\x85\xab\x85\xac\x85\xad\x85\xae\x85\xaf\x5a\x76\x49\xe5\x4e\xaf\x5a\x71\x56\x4b\x4c\x54\x85\xb0\x85\xb1\x85\xb2\x4c\x42\x85\xb3\x85\xb4\x55\xe4\x85\xb5\x54\xa0\x55\xdb\x49\x85\x58\xef\x85\xb6\x53\x71\x85\xb7\x85\xb8\x85\xb9\x5e\x65\x4b\x9f\x85\xba\x85\xbb\x50\x7a\x4d\x65\x4f\xe3\x51\x8e\x85\xbc\x60\x56\x60\x55\x5b\xba\x4f\x70\x5b\x79\x48\xc7\x4b\xa2\x50\x69\x56\xa7\x60\x53\x55\xb6\x5a\x72\x85\xbd\x5c\xce\x59\xb5\x4d\xc4\x56\x5e\x56\xbd\x85\xbe\x60\x57\x4b\x91\x60\x54\x85\xbf\x85\xc0", /* 5400 */ "\x85\xc1\x5a\x96\x85\xc2\x4a\x74\x4c\xf6\x85\xc3\x60\x5a\x85\xc4\x4d\xce\x4e\xa9\x4b\x96\x85\xc5\x57\x4c\x52\x9c\x4d\xf2\x50\xf3\x57\x62\x58\x93\x60\x58\x58\x65\x85\xc6\x51\xbf\x60\x59\x51\xef\x85\xc7\x85\xc8\x85\xc9\x4f\xfc\x85\xca\x51\x7f\x57\x6c\x59\xf6\x4c\x6d\x60\x61\x85\xcb\x60\x64\x85\xcc\x85\xcd\x4c\x92\x48\xc8\x4b\xd5\x4c\x74\x85\xce\x4d\xab\x56\xfc\x50\x74\x56\x51\x53\xf3\x85\xcf\x5b\xa7\x60\x65\x85\xd0\x57\xe1\x4a\x53\x85\xd1\x85\xd2\x57\xfb\x4a\xb4\x85\xd3\x57\xc6\x4d\xef\x85\xd4\x57\xe0\x85\xd5\x59\x5d\x85\xd6\x85\xd7\x60\x60\x85\xd8\x85\xd9\x4a\xf3\x85\xda\x4a\x6a\x85\xdb\x4c\xe5\x60\x5b\x85\xdc\x85\xdd\x85\xde\x85\xdf\x52\xc4\x85\xe0\x60\x5c\x60\x5d\x60\x5e\x53\x5b\x60\x5f\x60\x62\x5a\xb0\x60\x63\x85\xe1\x54\x5a\x57\xd7\x85\xe2\x85\xe3\x85\xe4\x85\xe5\x85\xe6\x52\xd7\x85\xe7\x60\x6a\x85\xe8\x60\x6f\x85\xe9\x5b\xdb\x85\xea\x85\xeb\x85\xec\x85\xed\x85\xee\x85\xef\x85\xf0\x85\xf1\x60\x69\x60\x7a\x57\xb5\x85\xf2\x4d\xc6\x60\x6e\x60\x68\x53\x7e\x85\xf3\x85\xf4\x55\x8c\x4d\xf3\x52\x9d\x85\xf5\x85\xf6", /* 5480 */ "\x4f\xd6\x85\xf7\x60\x66\x85\xf8\x60\x6d\x85\xf9\x53\x78\x85\xfa\x85\xfb\x85\xfc\x85\xfd\x5b\x46\x4d\xcc\x86\x41\x4f\xcb\x5a\x5d\x4c\xbf\x86\x42\x5b\xe3\x86\x43\x60\x67\x4d\x5e\x50\x47\x86\x44\x86\x45\x51\x9d\x60\x6b\x60\x6c\x86\x46\x60\x70\x86\x47\x86\x48\x86\x49\x86\x4a\x86\x4b\x60\x7b\x60\x86\x86\x4c\x60\x77\x60\x76\x5c\x69\x60\x84\x60\x85\x63\x8c\x59\xa6\x60\x72\x86\x4d\x50\x49\x86\x4e\x5a\xda\x86\x4f\x50\x68\x60\x74\x86\x50\x86\x51\x86\x52\x58\x6c\x86\x53\x86\x54\x60\x7d\x86\x55\x59\x6a\x86\x56\x60\x7e\x48\xa6\x53\xb6\x60\x73\x86\x57\x4d\xe4\x86\x58\x4b\xde\x57\x7b\x4d\x9f\x5a\xd4\x86\x59\x86\x5a\x60\x7f\x58\x8d\x48\xa4\x60\x88\x60\x71\x59\x66\x60\x75\x60\x78\x60\x79\x60\x7c\x86\x5b\x4e\x49\x86\x5c\x60\x81\x60\x82\x86\x5d\x60\x83\x60\x87\x60\x89\x5a\x54\x86\x5e\x86\x5f\x86\x60\x86\x61\x86\x62\x4c\xe6\x53\x56\x60\x8b\x55\x7a\x51\x48\x52\xc3\x86\x63\x86\x64\x50\x7e\x58\x99\x86\x65\x86\x66\x86\x67\x5b\x7c\x60\x8f\x86\x68\x86\x69\x86\x6a\x86\x6b\x86\x6c\x86\x6d\x49\xb7\x86\x6e\x4d\xde\x60\x8d\x86\x6f\x5e\x61", /* 5500 */ "\x86\x70\x59\x85\x86\x71\x86\x72\x86\x73\x86\x74\x56\x95\x4a\xbc\x86\x75\x48\xa5\x86\x76\x86\x77\x86\x78\x86\x79\x86\x7a\x60\x92\x56\xc5\x60\x93\x86\x7b\x86\x7c\x60\x8e\x86\x7d\x86\x7e\x86\x7f\x86\x81\x86\x82\x86\x83\x60\x8a\x86\x84\x86\x85\x86\x86\x86\x87\x60\x8c\x86\x88\x60\x90\x60\x91\x4e\x5d\x86\x89\x86\x8a\x60\x94\x86\x8b\x86\x8c\x60\x95\x86\x8d\x4e\x43\x86\x8e\x55\xda\x57\xa7\x60\xa6\x4a\x4a\x86\x8f\x60\xa5\x86\x90\x86\x91\x86\x92\x60\xa0\x86\x93\x86\x94\x86\x95\x86\x96\x60\x9f\x86\x97\x57\x79\x60\x9d\x86\x98\x60\x9b\x86\x99\x50\x70\x5c\x64\x86\x9a\x55\x6c\x86\x9b\x86\x9c\x60\x99\x48\xa0\x86\x9d\x86\x9e\x86\x9f\x86\xa0\x86\xa1\x60\x9e\x86\xa2\x86\xa3\x86\xa4\x86\xa5\x60\x9c\x60\xa1\x86\xa6\x86\xa7\x86\xa8\x86\xa9\x86\xaa\x60\xa7\x86\xab\x86\xac\x86\xad\x86\xae\x4c\x68\x86\xaf\x86\xb0\x53\xa0\x55\x56\x50\xb1\x60\x96\x86\xb1\x86\xb2\x53\x5e\x86\xb3\x5c\xc3\x60\x9a\x52\xf5\x86\xb4\x86\xb5\x86\xb6\x86\xb7\x86\xb8\x86\xb9\x60\xa2\x60\xa3\x60\xa4\x58\xa4\x86\xba\x86\xbb\x60\xb3\x56\xe3\x86\xbc\x60\xb0\x86\xbd", /* 5580 */ "\x50\x46\x60\xae\x57\xb8\x60\xaa\x55\x66\x86\xbe\x86\xbf\x50\xad\x60\xad\x4d\xec\x4d\xaf\x60\xa8\x86\xc0\x86\xc1\x86\xc2\x60\x97\x86\xc3\x60\xb2\x86\xc4\x86\xc5\x60\xb7\x86\xc6\x86\xc7\x86\xc8\x4a\xac\x60\xb8\x86\xc9\x86\xca\x58\x52\x4d\xc7\x86\xcb\x60\xaf\x86\xcc\x86\xcd\x86\xce\x86\xcf\x86\xd0\x86\xd1\x86\xd2\x58\xf9\x86\xd3\x86\xd4\x86\xd5\x86\xd6\x86\xd7\x86\xd8\x86\xd9\x86\xda\x86\xdb\x60\xab\x86\xdc\x5a\xfa\x86\xdd\x60\x98\x86\xde\x53\x88\x86\xdf\x60\xac\x86\xe0\x5a\x98\x86\xe1\x60\xb5\x60\xb6\x86\xe2\x86\xe3\x86\xe4\x86\xe5\x86\xe6\x60\xc3\x58\xe0\x86\xe7\x86\xe8\x86\xe9\x60\xbb\x86\xea\x86\xeb\x60\xc8\x60\xc9\x86\xec\x86\xed\x86\xee\x60\xbd\x60\xa9\x55\x44\x60\xc0\x86\xef\x60\xb1\x86\xf0\x86\xf1\x86\xf2\x86\xf3\x86\xf4\x55\xc7\x60\xc2\x86\xf5\x60\xb4\x86\xf6\x57\xca\x86\xf7\x56\x63\x60\xcc\x60\xc5\x60\xc1\x86\xf8\x60\xca\x86\xf9\x60\xb9\x60\xbe\x60\xbf\x86\xfa\x86\xfb\x60\xc4\x86\xfc\x86\xfd\x60\xc6\x60\xc7\x87\x41\x60\xcb\x87\x42\x60\xba\x87\x43\x87\x44\x87\x45\x87\x46\x87\x47\x56\x74\x60\xd4\x87\x48", /* 5600 */ "\x60\xd5\x60\xd1\x87\x49\x87\x4a\x87\x4b\x87\x4c\x87\x4d\x87\x4e\x60\xcf\x4e\xcd\x87\x4f\x87\x50\x60\xd0\x87\x51\x4c\xc1\x5c\xc4\x87\x52\x87\x53\x87\x54\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x58\xe9\x87\x5a\x87\x5b\x51\xee\x87\x5c\x87\x5d\x60\xce\x60\xbc\x87\x5e\x87\x5f\x87\x60\x60\xd3\x60\xd2\x87\x61\x87\x62\x60\xd6\x87\x63\x87\x64\x87\x65\x87\x66\x60\xdb\x60\xd7\x87\x67\x87\x68\x87\x69\x5b\xf5\x4a\x50\x87\x6a\x5c\x8d\x87\x6b\x56\x5b\x87\x6c\x87\x6d\x60\xd9\x87\x6e\x57\xfa\x87\x6f\x87\x70\x87\x71\x4d\xd8\x87\x72\x87\x73\x87\x74\x87\x75\x87\x76\x87\x77\x87\x78\x87\x79\x87\x7a\x87\x7b\x87\x7c\x87\x7d\x60\xe0\x60\xdc\x59\xac\x87\x7e\x87\x7f\x87\x81\x87\x82\x87\x83\x60\xe1\x87\x84\x87\x85\x60\xda\x60\xd8\x60\xde\x87\x86\x87\x87\x60\xdf\x87\x88\x87\x89\x87\x8a\x87\x8b\x87\x8c\x60\xdd\x87\x8d\x60\xe3\x87\x8e\x87\x8f\x87\x90\x53\xf6\x5c\xab\x5a\xea\x60\xe5\x55\xc8\x87\x91\x87\x92\x87\x93\x87\x94\x60\xe4\x87\x95\x87\x96\x87\x97\x87\x98\x4c\xc0\x87\x99\x87\x9a\x87\x9b\x87\x9c\x60\xe6\x60\xe7\x87\x9d\x87\x9e\x87\x9f", /* 5680 */ "\x87\xa0\x87\xa1\x87\xa2\x87\xa3\x87\xa4\x60\xe8\x60\xe2\x87\xa5\x87\xa6\x87\xa7\x87\xa8\x87\xa9\x87\xaa\x87\xab\x4d\xbe\x56\xe6\x87\xac\x87\xad\x87\xae\x60\xe9\x87\xaf\x87\xb0\x87\xb1\x87\xb2\x87\xb3\x87\xb4\x87\xb5\x87\xb6\x87\xb7\x87\xb8\x87\xb9\x87\xba\x87\xbb\x87\xbc\x87\xbd\x58\x9a\x87\xbe\x87\xbf\x87\xc0\x87\xc1\x87\xc2\x87\xc3\x87\xc4\x87\xc5\x87\xc6\x87\xc7\x87\xc8\x60\xea\x87\xc9\x87\xca\x87\xcb\x87\xcc\x87\xcd\x87\xce\x87\xcf\x54\xc1\x87\xd0\x87\xd1\x87\xd2\x87\xd3\x4f\x60\x87\xd4\x87\xd5\x87\xd6\x87\xd7\x87\xd8\x87\xd9\x87\xda\x87\xdb\x87\xdc\x87\xdd\x87\xde\x87\xdf\x87\xe0\x52\xd1\x87\xe1\x87\xe2\x87\xe3\x87\xe4\x87\xe5\x87\xe6\x87\xe7\x87\xe8\x87\xe9\x60\xeb\x87\xea\x87\xeb\x60\xec\x87\xec\x87\xed\x54\x95\x56\x64\x87\xee\x60\xed\x4e\x78\x5c\xb5\x59\xf1\x60\xee\x57\x65\x87\xef\x4b\xd9\x87\xf0\x87\xf1\x87\xf2\x87\xf3\x87\xf4\x87\xf5\x60\xf0\x87\xf6\x5a\xaf\x87\xf7\x87\xf8\x50\xa6\x4a\xd0\x87\xf9\x87\xfa\x57\xa6\x60\xef\x87\xfb\x87\xfc\x87\xfd\x60\xf1\x4d\x6c\x88\x41\x88\x42\x4d\x9b\x57\x5c\x60\xf2", /* 5700 */ "\x88\x43\x88\x44\x88\x45\x53\xd3\x60\xf3\x88\x46\x5a\xb1\x88\x47\x54\xa5\x60\xf5\x60\xf4\x88\x48\x88\x49\x88\x4a\x88\x4b\x88\x4c\x88\x4d\x88\x4e\x88\x4f\x88\x50\x88\x51\x88\x52\x88\x53\x88\x54\x88\x55\x88\x56\x88\x57\x88\x58\x60\xf6\x88\x59\x88\x5a\x57\x61\x88\x5b\x88\x5c\x88\x5d\x55\xa4\x88\x5e\x88\x5f\x88\x60\x88\x61\x5a\xd9\x5e\x77\x5e\x79\x88\x62\x5e\x78\x4d\x88\x5e\x7c\x5e\x7d\x4b\x78\x88\x63\x88\x64\x5e\x7a\x88\x65\x88\x66\x88\x67\x88\x68\x88\x69\x5e\x7b\x4a\x41\x5e\x7f\x88\x6a\x88\x6b\x4e\x99\x88\x6c\x5b\xb6\x88\x6d\x5e\x81\x88\x6e\x88\x6f\x88\x70\x88\x71\x4f\xf8\x88\x72\x88\x73\x4c\x5b\x88\x74\x5e\x70\x56\xad\x50\x52\x4e\x55\x5c\x99\x50\x73\x88\x75\x88\x76\x88\x77\x88\x78\x88\x79\x50\x8a\x88\x7a\x88\x7b\x4e\xe0\x56\xb2\x5e\x7e\x48\xd2\x57\xea\x4c\x78\x5c\x59\x53\xc1\x88\x7c\x88\x7d\x50\xa3\x88\x7e\x56\xb8\x88\x7f\x5e\x88\x5e\x82\x53\xb9\x5e\x84\x88\x81\x5e\x89\x88\x82\x53\x98\x88\x83\x88\x84\x88\x85\x5e\x8b\x88\x86\x88\x87\x5e\x8a\x50\x60\x88\x88\x88\x89\x88\x8a\x5e\x87\x5e\x86\x88\x8b\x88\x8c\x88\x8d", /* 5780 */ "\x88\x8e\x88\x8f\x4a\xb8\x50\xab\x51\xa1\x5e\x83\x5e\x85\x88\x90\x88\x91\x88\x92\x88\x93\x58\xcc\x5e\x8e\x88\x94\x88\x95\x88\x96\x88\x97\x88\x98\x50\xdc\x5e\x93\x88\x99\x88\x9a\x88\x9b\x88\x9c\x88\x9d\x88\x9e\x88\x9f\x4b\xe1\x88\xa0\x88\xa1\x88\xa2\x88\xa3\x5e\x94\x5e\x72\x4d\x58\x5a\xaa\x5e\x8d\x88\xa4\x50\x71\x5e\x91\x88\xa5\x5e\x71\x88\xa6\x4b\x87\x88\xa7\x5e\x8c\x50\x86\x88\xa8\x88\xa9\x88\xaa\x5e\x8f\x88\xab\x5e\x92\x88\xac\x88\xad\x88\xae\x5e\x9a\x88\xaf\x88\xb0\x88\xb1\x88\xb2\x88\xb3\x88\xb4\x88\xb5\x88\xb6\x88\xb7\x4d\x41\x48\xa2\x88\xb8\x88\xb9\x88\xba\x88\xbb\x88\xbc\x88\xbd\x88\xbe\x51\xf0\x88\xbf\x88\xc0\x4a\x67\x5e\x90\x88\xc1\x88\xc2\x5e\x99\x88\xc3\x53\xd1\x5e\x95\x88\xc4\x88\xc5\x5e\x96\x5e\x98\x5e\x97\x88\xc6\x88\xc7\x5e\x9f\x88\xc8\x5a\x93\x49\xb9\x88\xc9\x88\xca\x88\xcb\x5e\x9e\x88\xcc\x88\xcd\x88\xce\x88\xcf\x88\xd0\x88\xd1\x88\xd2\x88\xd3\x5e\xa3\x88\xd4\x5e\x9c\x88\xd5\x88\xd6\x88\xd7\x88\xd8\x5e\x9b\x88\xd9\x88\xda\x88\xdb\x5e\x9d\x53\x81\x4e\x9a\x88\xdc\x88\xdd\x5e\xa2\x88\xde\x88\xdf", /* 5800 */ "\x5e\xa4\x88\xe0\x56\xc2\x88\xe1\x88\xe2\x88\xe3\x4b\xd0\x5f\x60\x88\xe4\x88\xe5\x88\xe6\x5e\xa0\x88\xe7\x5e\xa1\x88\xe8\x88\xe9\x88\xea\x54\x55\x88\xeb\x88\xec\x88\xed\x4b\xe8\x88\xee\x88\xef\x88\xf0\x5e\xa6\x88\xf1\x88\xf2\x88\xf3\x88\xf4\x5e\xa5\x88\xf5\x5e\xa8\x49\x44\x88\xf6\x88\xf7\x4b\x6c\x88\xf8\x88\xf9\x88\xfa\x88\xfb\x88\xfc\x50\x50\x88\xfd\x89\x41\x89\x42\x89\x43\x89\x44\x59\x7f\x89\x45\x89\x46\x89\x47\x89\x48\x4b\xc1\x89\x49\x89\x4a\x89\x4b\x89\x4c\x89\x4d\x89\x4e\x89\x4f\x89\x50\x89\x51\x89\x52\x89\x53\x89\x54\x89\x55\x89\x56\x5e\xa7\x89\x57\x89\x58\x89\x59\x89\x5a\x89\x5b\x89\x5c\x89\x5d\x56\x9b\x66\x94\x89\x5e\x89\x5f\x89\x60\x56\x7c\x89\x61\x89\x62\x56\x9f\x89\x63\x89\x64\x89\x65\x56\xc0\x89\x66\x89\x67\x89\x68\x89\x69\x89\x6a\x54\xfa\x89\x6b\x89\x6c\x89\x6d\x89\x6e\x89\x6f\x89\x70\x5e\xa9\x89\x71\x89\x72\x89\x73\x89\x74\x89\x75\x56\xed\x5e\xaa\x89\x76\x89\x77\x89\x78\x89\x79\x89\x7a\x89\x7b\x89\x7c\x89\x7d\x89\x7e\x89\x7f\x89\x81\x89\x82\x89\x83\x89\x84\x89\x85\x89\x86\x89\x87\x5e\x73\x89\x88", /* 5880 */ "\x5e\xae\x5e\xab\x89\x89\x4f\xb2\x89\x8a\x55\xfa\x89\x8b\x89\x8c\x89\x8d\x5e\xac\x89\x8e\x89\x8f\x89\x90\x89\x91\x89\x92\x89\x93\x89\x94\x89\x95\x55\x6a\x52\xb8\x89\x96\x89\x97\x89\x98\x89\x99\x89\x9a\x54\x5d\x5e\xad\x89\x9b\x89\x9c\x89\x9d\x5a\xf5\x58\xe5\x89\x9e\x89\x9f\x89\xa0\x89\xa1\x89\xa2\x89\xa3\x89\xa4\x89\xa5\x52\xaa\x4b\xd4\x89\xa6\x89\xa7\x89\xa8\x89\xa9\x89\xaa\x89\xab\x89\xac\x89\xad\x89\xae\x89\xaf\x89\xb0\x89\xb1\x89\xb2\x89\xb3\x89\xb4\x89\xb5\x89\xb6\x89\xb7\x5e\x74\x89\xb8\x89\xb9\x89\xba\x89\xbb\x49\x7a\x89\xbc\x89\xbd\x89\xbe\x5e\x75\x89\xbf\x89\xc0\x89\xc1\x89\xc2\x89\xc3\x89\xc4\x89\xc5\x89\xc6\x89\xc7\x89\xc8\x89\xc9\x5e\x76\x89\xca\x89\xcb\x89\xcc\x4d\xbd\x89\xcd\x89\xce\x89\xcf\x89\xd0\x89\xd1\x89\xd2\x89\xd3\x89\xd4\x89\xd5\x89\xd6\x89\xd7\x89\xd8\x89\xd9\x89\xda\x54\xbf\x89\xdb\x89\xdc\x89\xdd\x89\xde\x89\xdf\x89\xe0\x55\xbe\x54\xc8\x89\xe1\x5c\x53\x89\xe2\x55\x9a\x89\xe3\x89\xe4\x50\x67\x89\xe5\x89\xe6\x4d\xf7\x89\xe7\x89\xe8\x59\xbb\x89\xe9\x89\xea\x89\xeb\x89\xec\x89\xed\x89\xee", /* 5900 */ "\x89\xef\x89\xf0\x61\xb9\x89\xf1\x4a\xa5\x89\xf2\x89\xf3\x49\x58\x89\xf4\x89\xf5\x89\xf6\x89\xf7\x89\xf8\x4c\xb3\x89\xf9\x58\x64\x89\xfa\x89\xfb\x89\xfc\x89\xfd\x5d\x88\x58\x46\x57\x83\x8a\x41\x8a\x42\x5d\x8e\x4b\xdf\x8a\x43\x59\xb8\x8a\x44\x8a\x45\x4d\x5b\x8a\x46\x8a\x47\x8a\x48\x8a\x49\x61\xb8\x61\xb6\x8a\x4a\x4a\xf2\x8a\x4b\x56\xeb\x56\xaa\x4c\x93\x8a\x4c\x5c\xb1\x59\x8c\x4d\xba\x8a\x4d\x55\xa6\x8a\x4e\x8a\x4f\x57\x57\x8a\x50\x8a\x51\x59\xc3\x50\x85\x4e\xcf\x4b\xe0\x8a\x52\x5f\xc4\x8a\x53\x8a\x54\x8a\x55\x8a\x56\x5f\xc5\x5e\x5c\x8a\x57\x59\x79\x8a\x58\x8a\x59\x53\xe5\x52\xcd\x4c\x8f\x8a\x5a\x4c\x7c\x8a\x5b\x8a\x5c\x50\x9d\x5c\x81\x8a\x5d\x53\xf4\x8a\x5e\x8a\x5f\x49\x5c\x5f\xc7\x4f\x51\x56\xd6\x5f\xc9\x8a\x60\x5f\xc8\x8a\x61\x8a\x62\x8a\x63\x8a\x64\x8a\x65\x4b\x8d\x8a\x66\x55\x7d\x8a\x67\x8a\x68\x48\xc1\x8a\x69\x8a\x6a\x8a\x6b\x8a\x6c\x8a\x6d\x8a\x6e\x8a\x6f\x8a\x70\x8a\x71\x8a\x72\x8a\x73\x8a\x74\x8a\x75\x53\x4e\x53\x4b\x8a\x76\x52\xcb\x8a\x77\x4e\xe8\x56\x9e\x8a\x78\x8a\x79\x8a\x7a\x4d\xc2\x8a\x7b\x8a\x7c", /* 5980 */ "\x8a\x7d\x63\x9a\x54\xe6\x63\x9b\x57\x9e\x8a\x7e\x5c\x51\x4c\xbd\x51\xe7\x8a\x7f\x54\xd0\x8a\x81\x8a\x82\x63\x9c\x8a\x83\x8a\x84\x8a\x85\x8a\x86\x4b\xc9\x4e\xca\x8a\x87\x8a\x88\x59\x9e\x63\xa0\x8a\x89\x52\x8f\x8a\x8a\x8a\x8b\x8a\x8c\x8a\x8d\x63\xa3\x8a\x8e\x8a\x8f\x8a\x90\x8a\x91\x63\x9f\x63\xa4\x57\x77\x8a\x92\x8a\x93\x4c\x61\x63\x9d\x63\x9e\x63\xa2\x8a\x94\x8a\x95\x52\xdc\x63\xa7\x8a\x96\x8a\x97\x63\xa6\x8a\x98\x8a\x99\x8a\x9a\x8a\x9b\x8a\x9c\x8a\x9d\x52\x63\x8a\x9e\x53\xdd\x8a\x9f\x8a\xa0\x63\xa9\x8a\xa1\x8a\xa2\x8a\xa3\x8a\xa4\x8a\xa5\x8a\xa6\x8a\xa7\x52\xb6\x8a\xa8\x8a\xa9\x8a\xaa\x63\xa1\x55\xbb\x8a\xab\x8a\xac\x8a\xad\x8a\xae\x4f\x84\x4d\x63\x63\xa5\x58\xd4\x57\xae\x8a\xaf\x8a\xb0\x63\xa8\x63\xaf\x8a\xb1\x59\xa5\x8a\xb2\x4f\x4a\x63\xac\x8a\xb3\x8a\xb4\x8a\xb5\x8a\xb6\x8a\xb7\x63\xae\x8a\xb8\x50\xd0\x8a\xb9\x8a\xba\x59\xcb\x8a\xbb\x8a\xbc\x8a\xbd\x4e\xa6\x8a\xbe\x8a\xbf\x8a\xc0\x8a\xc1\x8a\xc2\x8a\xc3\x8a\xc4\x8a\xc5\x8a\xc6\x8a\xc7\x8a\xc8\x8a\xc9\x63\xb0\x8a\xca\x59\xf5\x8a\xcb\x8a\xcc\x8a\xcd\x5c\x6b", /* 5a00 */ "\x8a\xce\x57\x9f\x8a\xcf\x57\x7e\x51\xa5\x63\xaa\x63\xab\x4f\x5f\x63\xad\x63\xb2\x8a\xd0\x8a\xd1\x63\xb1\x8a\xd2\x8a\xd3\x8a\xd4\x8a\xd5\x63\xb5\x8a\xd6\x63\xb7\x8a\xd7\x8a\xd8\x8a\xd9\x8a\xda\x52\xee\x8a\xdb\x8a\xdc\x8a\xdd\x52\xc7\x8a\xde\x8a\xdf\x4f\xe9\x55\x90\x8a\xe0\x8a\xe1\x63\xb6\x8a\xe2\x4b\xef\x8a\xe3\x8a\xe4\x8a\xe5\x52\x85\x8a\xe6\x8a\xe7\x8a\xe8\x8a\xe9\x8a\xea\x8a\xeb\x8a\xec\x5a\x8a\x63\xb3\x8a\xed\x63\xb4\x8a\xee\x54\xa1\x8a\xef\x8a\xf0\x8a\xf1\x8a\xf2\x8a\xf3\x63\xbc\x8a\xf4\x8a\xf5\x8a\xf6\x63\xb8\x8a\xf7\x8a\xf8\x8a\xf9\x8a\xfa\x8a\xfb\x53\xc4\x8a\xfc\x8a\xfd\x57\x92\x63\xba\x8b\x41\x8b\x42\x8b\x43\x8b\x44\x8b\x45\x8b\x46\x8b\x47\x8b\x48\x8b\x49\x8b\x4a\x63\xbb\x8b\x4b\x8b\x4c\x8b\x4d\x8b\x4e\x4e\x8a\x8b\x4f\x8b\x50\x8b\x51\x8b\x52\x8b\x53\x8b\x54\x8b\x55\x63\xbd\x8b\x56\x8b\x57\x8b\x58\x8b\x59\x63\xb9\x8b\x5a\x8b\x5b\x50\xb6\x8b\x5c\x8b\x5d\x8b\x5e\x8b\x5f\x8b\x60\x8b\x61\x8b\x62\x8b\x63\x8b\x64\x5a\x44\x63\xbe\x55\x95\x63\xc2\x8b\x65\x8b\x66\x63\xc3\x8b\x67\x8b\x68\x8b\x69\x8b\x6a\x58\xf5", /* 5a80 */ "\x8b\x6b\x8b\x6c\x8b\x6d\x8b\x6e\x8b\x6f\x8b\x70\x8b\x71\x8b\x72\x8b\x73\x8b\x74\x8b\x75\x8b\x76\x8b\x77\x8b\x78\x8b\x79\x8b\x7a\x8b\x7b\x8b\x7c\x52\x5d\x8b\x7d\x8b\x7e\x8b\x7f\x8b\x81\x8b\x82\x8b\x83\x8b\x84\x52\x64\x63\xc1\x8b\x85\x8b\x86\x8b\x87\x8b\x88\x8b\x89\x8b\x8a\x8b\x8b\x8b\x8c\x8b\x8d\x8b\x8e\x8b\x8f\x8b\x90\x8b\x91\x8b\x92\x63\xc0\x8b\x93\x8b\x94\x8b\x95\x8b\x96\x8b\x97\x8b\x98\x8b\x99\x63\xc6\x58\x51\x8b\x9a\x66\x95\x8b\x9b\x8b\x9c\x63\xc9\x8b\x9d\x8b\x9e\x8b\x9f\x8b\xa0\x8b\xa1\x63\xc4\x8b\xa2\x8b\xa3\x4e\xdd\x55\x49\x8b\xa4\x8b\xa5\x8b\xa6\x8b\xa7\x8b\xa8\x8b\xa9\x4e\xb4\x8b\xaa\x8b\xab\x58\x73\x8b\xac\x8b\xad\x8b\xae\x8b\xaf\x8b\xb0\x63\xc7\x8b\xb1\x63\xc8\x8b\xb2\x63\xcd\x8b\xb3\x63\xcf\x8b\xb4\x8b\xb5\x8b\xb6\x63\xd0\x8b\xb7\x8b\xb8\x8b\xb9\x63\xca\x4b\x75\x8b\xba\x63\xcb\x8b\xbb\x8b\xbc\x63\xce\x8b\xbd\x8b\xbe\x52\xda\x8b\xbf\x63\xc5\x8b\xc0\x8b\xc1\x8b\xc2\x8b\xc3\x8b\xc4\x63\xcc\x8b\xc5\x8b\xc6\x8b\xc7\x8b\xc8\x8b\xc9\x8b\xca\x8b\xcb\x8b\xcc\x8b\xcd\x8b\xce\x8b\xcf\x8b\xd0\x8b\xd1\x8b\xd2", /* 5b00 */ "\x8b\xd3\x8b\xd4\x8b\xd5\x8b\xd6\x8b\xd7\x8b\xd8\x8b\xd9\x8b\xda\x8b\xdb\x63\xd1\x8b\xdc\x8b\xdd\x8b\xde\x8b\xdf\x8b\xe0\x8b\xe1\x8b\xe2\x8b\xe3\x8b\xe4\x8b\xe5\x8b\xe6\x8b\xe7\x63\xd3\x63\xd2\x8b\xe8\x8b\xe9\x8b\xea\x8b\xeb\x8b\xec\x8b\xed\x8b\xee\x8b\xef\x8b\xf0\x8b\xf1\x8b\xf2\x8b\xf3\x8b\xf4\x8b\xf5\x8b\xf6\x8b\xf7\x8b\xf8\x8b\xf9\x8b\xfa\x8b\xfb\x8b\xfc\x8b\xfd\x8c\x41\x8c\x42\x8c\x43\x8c\x44\x63\xd4\x8c\x45\x5d\x99\x8c\x46\x8c\x47\x63\xd5\x8c\x48\x8c\x49\x8c\x4a\x8c\x4b\x8c\x4c\x8c\x4d\x8c\x4e\x8c\x4f\x63\xd6\x8c\x50\x8c\x51\x8c\x52\x8c\x53\x8c\x54\x8c\x55\x8c\x56\x8c\x57\x8c\x58\x8c\x59\x8c\x5a\x8c\x5b\x8c\x5c\x8c\x5d\x8c\x5e\x5c\x73\x63\xdc\x8c\x5f\x63\xdd\x50\x77\x5a\xcf\x8c\x60\x5c\x76\x4a\xe5\x56\x90\x63\xd9\x5c\xc2\x5c\x6e\x58\xa1\x8c\x61\x52\x6f\x8c\x62\x8c\x63\x63\xde\x4e\xbd\x4d\x62\x63\xda\x59\x47\x8c\x64\x8c\x65\x4d\xa1\x51\xce\x8c\x66\x5c\xaa\x8c\x67\x8c\x68\x8c\x69\x55\xea\x63\x8f\x8c\x6a\x63\xdb\x8c\x6b\x4c\x96\x8c\x6c\x8c\x6d\x8c\x6e\x8c\x6f\x54\xe5\x8c\x70\x8c\x71\x52\xf4\x8c\x72\x8c\x73", /* 5b80 */ "\x63\x52\x52\xfd\x8c\x74\x56\x9d\x63\x53\x5b\x4c\x8c\x75\x5a\x8f\x55\xd7\x48\xb1\x8c\x76\x56\x6e\x57\x8b\x8c\x77\x8c\x78\x4d\xe9\x8c\x79\x8c\x7a\x8c\x7b\x63\x55\x8c\x7c\x63\x54\x8c\x7d\x5c\x7a\x4d\x79\x5b\xe5\x4b\xa7\x57\x91\x59\xca\x49\x46\x55\xb4\x8c\x7e\x4a\x89\x55\x94\x50\x6d\x58\xfa\x55\xd1\x63\x56\x4e\x62\x8c\x7f\x8c\x81\x8c\x82\x58\x7c\x4d\x4c\x8c\x83\x8c\x84\x8c\x85\x8c\x86\x5a\xd6\x8c\x87\x8c\x88\x4d\xa5\x59\x88\x58\x9d\x4e\xd1\x8c\x89\x63\x57\x54\xdc\x8c\x8a\x8c\x8b\x8c\x8c\x50\x8e\x49\x97\x56\x7e\x8c\x8d\x8c\x8e\x4e\xc4\x8c\x8f\x4e\xc3\x59\xf9\x52\x7c\x50\x7c\x8c\x90\x8c\x91\x8c\x92\x8c\x93\x4c\xba\x8c\x94\x8c\x95\x8c\x96\x52\x62\x8c\x97\x4d\xad\x5a\xa1\x8c\x98\x8c\x99\x8c\x9a\x8c\x9b\x8c\x9c\x8c\x9d\x8c\x9e\x8c\x9f\x8c\xa0\x54\x7e\x52\xae\x49\xeb\x8c\xa1\x4d\x71\x8c\xa2\x8c\xa3\x63\x5b\x51\x68\x8c\xa4\x8c\xa5\x5b\x4f\x8c\xa6\x8c\xa7\x8c\xa8\x8c\xa9\x8c\xaa\x63\x5c\x8c\xab\x63\x5e\x8c\xac\x8c\xad\x8c\xae\x8c\xaf\x8c\xb0\x8c\xb1\x8c\xb2\x4a\xe6\x4b\xd3\x56\x62\x59\x50\x4b\x5c\x8c\xb3\x8c\xb4\x55\xd8", /* 5c00 */ "\x8c\xb5\x4c\x83\x8c\xb6\x8c\xb7\x55\x85\x8c\xb8\x4f\x4b\x8c\xb9\x8c\xba\x57\xbd\x5c\x91\x8c\xbb\x8c\xbc\x8c\xbd\x8c\xbe\x58\xa0\x8c\xbf\x55\x79\x8c\xc0\x8c\xc1\x4b\xfa\x63\xd7\x4e\xe1\x8c\xc2\x4a\x5e\x8c\xc3\x55\x70\x8c\xc4\x63\xd8\x4a\x42\x8c\xc5\x8c\xc6\x8c\xc7\x8c\xc8\x5f\xcb\x8c\xc9\x5a\x68\x5f\xcc\x8c\xca\x59\xa1\x8c\xcb\x8c\xcc\x8c\xcd\x8c\xce\x5f\xcd\x8c\xcf\x8c\xd0\x8c\xd1\x8c\xd2\x4f\xcc\x8c\xd3\x8c\xd4\x5f\xce\x8c\xd5\x8c\xd6\x8c\xd7\x55\xab\x59\xfb\x4a\x7f\x63\x8b\x52\xe0\x4f\xa0\x57\xb1\x52\xf1\x4f\xd5\x53\xa7\x49\xe2\x8c\xd8\x8c\xd9\x4f\xd2\x8c\xda\x8c\xdb\x54\x9d\x56\xea\x4f\x8d\x57\xdc\x8c\xdc\x8c\xdd\x55\xb9\x53\xc0\x63\x8d\x58\xbb\x8c\xde\x8c\xdf\x8c\xe0\x5b\x59\x8c\xe1\x8c\xe2\x8c\xe3\x63\x8e\x8c\xe4\x8c\xe5\x8c\xe6\x8c\xe7\x55\xf3\x8c\xe8\x57\x60\x51\xc4\x8c\xe9\x63\x90\x8c\xea\x51\xc3\x63\x91\x8c\xeb\x8c\xec\x8c\xed\x8c\xee\x8c\xef\x8c\xf0\x8c\xf1\x63\x99\x57\x6d\x8c\xf2\x55\x5d\x8c\xf3\x8c\xf4\x8c\xf5\x8c\xf6\x8c\xf7\x8c\xf8\x8c\xf9\x59\xd8\x61\x48\x8c\xfa\x8c\xfb\x8c\xfc\x8c\xfd\x5a\x8d", /* 5c80 */ "\x8d\x41\x56\x8b\x53\xf0\x8d\x42\x8d\x43\x8d\x44\x8d\x45\x8d\x46\x61\x4c\x8d\x47\x8d\x48\x8d\x49\x61\x47\x61\x49\x8d\x4a\x8d\x4b\x61\x4a\x61\x4f\x8d\x4c\x8d\x4d\x49\xec\x8d\x4e\x61\x4b\x4c\xd9\x61\x4d\x61\x4e\x61\x50\x4b\x5a\x61\x51\x8d\x4f\x8d\x50\x8d\x51\x8d\x52\x8d\x53\x61\x53\x61\x58\x8d\x54\x8d\x55\x8d\x56\x8d\x57\x8d\x58\x59\x72\x8d\x59\x61\x56\x61\x55\x51\x8c\x8d\x5a\x8d\x5b\x8d\x5c\x61\x57\x8d\x5d\x5a\xbf\x8d\x5e\x61\x52\x8d\x5f\x61\x5a\x48\xb5\x8d\x60\x8d\x61\x8d\x62\x8d\x63\x61\x54\x8d\x64\x50\x9a\x8d\x65\x61\x59\x8d\x66\x8d\x67\x61\x5b\x8d\x68\x8d\x69\x8d\x6a\x8d\x6b\x8d\x6c\x8d\x6d\x61\x5e\x8d\x6e\x8d\x6f\x8d\x70\x8d\x71\x8d\x72\x8d\x73\x61\x5c\x8d\x74\x8d\x75\x8d\x76\x8d\x77\x8d\x78\x8d\x79\x5b\xc4\x8d\x7a\x8d\x7b\x8d\x7c\x8d\x7d\x8d\x7e\x8d\x7f\x8d\x81\x58\x5f\x8d\x82\x8d\x83\x61\x5d\x61\x5f\x51\xcc\x8d\x84\x4b\xea\x8d\x85\x5a\x99\x8d\x86\x8d\x87\x54\x6d\x8d\x88\x8d\x89\x4c\x86\x8d\x8a\x8d\x8b\x8d\x8c\x8d\x8d\x8d\x8e\x8d\x8f\x8d\x90\x8d\x91\x8d\x92\x8d\x93\x4f\xfd\x8d\x94\x8d\x95\x8d\x96\x8d\x97", /* 5d00 */ "\x8d\x98\x8d\x99\x61\x60\x61\x61\x8d\x9a\x8d\x9b\x61\x67\x4a\x88\x8d\x9c\x8d\x9d\x8d\x9e\x8d\x9f\x8d\xa0\x8d\xa1\x53\xe8\x8d\xa2\x8d\xa3\x8d\xa4\x8d\xa5\x8d\xa6\x4a\xdd\x8d\xa7\x59\x62\x8d\xa8\x8d\xa9\x8d\xaa\x8d\xab\x61\x68\x8d\xac\x8d\xad\x61\x66\x8d\xae\x8d\xaf\x8d\xb0\x8d\xb1\x8d\xb2\x61\x65\x8d\xb3\x61\x63\x61\x62\x8d\xb4\x49\x60\x8d\xb5\x8d\xb6\x8d\xb7\x5b\x58\x61\x64\x8d\xb8\x8d\xb9\x8d\xba\x8d\xbb\x8d\xbc\x61\x6b\x8d\xbd\x8d\xbe\x8d\xbf\x8d\xc0\x8d\xc1\x8d\xc2\x8d\xc3\x8d\xc4\x61\x6c\x61\x6a\x8d\xc5\x8d\xc6\x8d\xc7\x8d\xc8\x8d\xc9\x8d\xca\x8d\xcb\x8d\xcc\x68\x9b\x8d\xcd\x8d\xce\x61\x73\x61\x72\x54\x56\x8d\xcf\x8d\xd0\x8d\xd1\x8d\xd2\x8d\xd3\x8d\xd4\x8d\xd5\x8d\xd6\x8d\xd7\x8d\xd8\x8d\xd9\x61\x69\x8d\xda\x8d\xdb\x61\x6e\x8d\xdc\x61\x70\x8d\xdd\x8d\xde\x8d\xdf\x8d\xe0\x8d\xe1\x8d\xe2\x8d\xe3\x8d\xe4\x8d\xe5\x8d\xe6\x8d\xe7\x61\x74\x8d\xe8\x61\x71\x61\x6d\x8d\xe9\x8d\xea\x61\x6f\x8d\xeb\x8d\xec\x8d\xed\x8d\xee\x61\x75\x8d\xef\x8d\xf0\x8d\xf1\x8d\xf2\x8d\xf3\x8d\xf4\x8d\xf5\x8d\xf6\x8d\xf7\x8d\xf8\x8d\xf9", /* 5d80 */ "\x8d\xfa\x8d\xfb\x61\x76\x8d\xfc\x8d\xfd\x8e\x41\x8e\x42\x8e\x43\x8e\x44\x8e\x45\x8e\x46\x8e\x47\x8e\x48\x8e\x49\x8e\x4a\x8e\x4b\x8e\x4c\x8e\x4d\x8e\x4e\x8e\x4f\x8e\x50\x8e\x51\x8e\x52\x8e\x53\x8e\x54\x61\x77\x8e\x55\x8e\x56\x8e\x57\x61\x78\x8e\x58\x8e\x59\x8e\x5a\x8e\x5b\x8e\x5c\x8e\x5d\x8e\x5e\x8e\x5f\x8e\x60\x8e\x61\x8e\x62\x8e\x63\x8e\x64\x8e\x65\x8e\x66\x8e\x67\x8e\x68\x8e\x69\x8e\x6a\x8e\x6b\x8e\x6c\x8e\x6d\x8e\x6e\x8e\x6f\x8e\x70\x61\x7a\x8e\x71\x8e\x72\x8e\x73\x8e\x74\x8e\x75\x8e\x76\x8e\x77\x8e\x78\x8e\x79\x8e\x7a\x8e\x7b\x8e\x7c\x8e\x7d\x61\x7b\x8e\x7e\x8e\x7f\x8e\x81\x8e\x82\x8e\x83\x8e\x84\x8e\x85\x57\xa0\x8e\x86\x8e\x87\x8e\x88\x8e\x89\x8e\x8a\x8e\x8b\x8e\x8c\x8e\x8d\x8e\x8e\x8e\x8f\x8e\x90\x8e\x91\x8e\x92\x64\x7d\x8e\x93\x4a\xa7\x5b\xdc\x8e\x94\x8e\x95\x59\x52\x4a\x52\x8e\x96\x8e\x97\x4d\x44\x5c\x94\x54\x69\x4f\xdd\x4d\x4e\x8e\x98\x57\xd6\x8e\x99\x8e\x9a\x49\xed\x5e\x6f\x8e\x9b\x4e\xb9\x59\xd0\x56\x68\x48\xcc\x8e\x9c\x8e\x9d\x58\x90\x8e\x9e\x8e\x9f\x8e\xa0\x8e\xa1\x8e\xa2\x5d\x84\x4f\x8e\x8e\xa3", /* 5e00 */ "\x8e\xa4\x49\x72\x55\xcf\x49\xbb\x8e\xa5\x56\x47\x4c\x4b\x8e\xa6\x55\xa5\x8e\xa7\x8e\xa8\x8e\xa9\x58\x43\x8e\xaa\x8e\xab\x60\xf7\x5b\x6a\x60\xfa\x8e\xac\x8e\xad\x60\xf9\x53\x61\x56\xfa\x8e\xae\x51\x51\x60\xf8\x5b\xe2\x49\xae\x5b\xc3\x4b\x7b\x8e\xaf\x8e\xb0\x8e\xb1\x8e\xb2\x8e\xb3\x8e\xb4\x8e\xb5\x8e\xb6\x4a\xf7\x5b\xa0\x8e\xb7\x8e\xb8\x8e\xb9\x8e\xba\x8e\xbb\x58\x4f\x48\xee\x8e\xbc\x8e\xbd\x60\xfb\x8e\xbe\x8e\xbf\x8e\xc0\x8e\xc1\x8e\xc2\x61\x41\x4a\x43\x8e\xc3\x8e\xc4\x60\xfc\x60\xfd\x52\x51\x8e\xc5\x8e\xc6\x8e\xc7\x8e\xc8\x52\x7d\x8e\xc9\x61\x42\x4c\x9a\x8e\xca\x8e\xcb\x8e\xcc\x8e\xcd\x8e\xce\x8e\xcf\x4e\x6f\x8e\xd0\x8e\xd1\x8e\xd2\x8e\xd3\x8e\xd4\x8e\xd5\x8e\xd6\x61\x43\x52\xba\x8e\xd7\x8e\xd8\x8e\xd9\x8e\xda\x8e\xdb\x61\x44\x8e\xdc\x8e\xdd\x61\x45\x8e\xde\x8e\xdf\x61\x46\x4a\xb0\x8e\xe0\x8e\xe1\x8e\xe2\x8e\xe3\x8e\xe4\x8e\xe5\x8e\xe6\x8e\xe7\x8e\xe8\x8e\xe9\x8e\xea\x8e\xeb\x8e\xec\x8e\xed\x8e\xee\x4c\xc8\x53\xbc\x52\xe9\x8e\xef\x49\xa1\x8e\xf0\x58\xd1\x8e\xf1\x64\x7b\x4e\x63\x5a\x77\x5a\x64\x8e\xf2\x4d\x84", /* 5e80 */ "\x61\xce\x8e\xf3\x8e\xf4\x8e\xf5\x5c\x4f\x8e\xf6\x54\x8d\x49\x73\x8e\xf7\x8e\xf8\x4a\xb1\x61\xd0\x8e\xf9\x8e\xfa\x8e\xfb\x58\xf1\x51\xad\x61\xcf\x8e\xfc\x50\x83\x5a\x46\x4b\x77\x61\xd1\x4b\x8b\x8e\xfd\x52\x8e\x4c\xfc\x8f\x41\x4c\xad\x8f\x42\x53\x73\x4c\x6f\x61\xd3\x8f\x43\x8f\x44\x8f\x45\x8f\x46\x61\xd2\x4b\xc7\x5c\x9a\x8f\x47\x8f\x48\x8f\x49\x8f\x4a\x8f\x4b\x57\x45\x8f\x4c\x8f\x4d\x8f\x4e\x8f\x4f\x8f\x50\x61\xd7\x8f\x51\x61\xd5\x55\xfb\x50\x55\x5a\x59\x61\xd4\x8f\x52\x8f\x53\x8f\x54\x8f\x55\x61\xd6\x8f\x56\x8f\x57\x8f\x58\x8f\x59\x8f\x5a\x8f\x5b\x8f\x5c\x8f\x5d\x8f\x5e\x8f\x5f\x51\x4e\x50\xc7\x8f\x60\x8f\x61\x8f\x62\x8f\x63\x8f\x64\x8f\x65\x61\xda\x61\xd9\x50\xa9\x8f\x66\x8f\x67\x51\x6e\x8f\x68\x8f\x69\x8f\x6a\x8f\x6b\x61\xdb\x8f\x6c\x8f\x6d\x8f\x6e\x8f\x6f\x8f\x70\x8f\x71\x8f\x72\x8f\x73\x8f\x74\x8f\x75\x8f\x76\x8f\x77\x61\xdc\x8f\x78\x61\xdd\x8f\x79\x8f\x7a\x8f\x7b\x8f\x7c\x8f\x7d\x8f\x7e\x8f\x7f\x8f\x81\x8f\x82\x5e\x68\x8f\x83\x59\x73\x57\x42\x8f\x84\x8f\x85\x4f\x48\x8f\x86\x8f\x87\x8f\x88\x5f\xc2\x5c\xa4", /* 5f00 */ "\x50\x4a\x5e\x6d\x59\xeb\x53\xf9\x53\x4a\x8f\x89\x8f\x8a\x8f\x8b\x5f\xc3\x8f\x8c\x49\x77\x60\x4e\x8f\x8d\x8f\x8e\x8f\x8f\x55\xbc\x8f\x90\x60\x51\x8f\x91\x4d\x4d\x8f\x92\x59\xfc\x8f\x93\x4c\xa4\x4d\xea\x8f\x94\x8f\x95\x4a\x7a\x8f\x96\x8f\x97\x8f\x98\x4b\x7c\x5b\x65\x8f\x99\x8f\x9a\x8f\x9b\x8f\x9c\x52\x76\x58\x72\x4e\x41\x8f\x9d\x63\x94\x63\x93\x8f\x9e\x8f\x9f\x63\x95\x8f\xa0\x57\x85\x8f\xa1\x54\xf4\x8f\xa2\x8f\xa3\x8f\xa4\x8f\xa5\x8f\xa6\x8f\xa7\x8f\xa8\x4b\x4f\x54\x5f\x8f\xa9\x63\x97\x8f\xaa\x8f\xab\x8f\xac\x66\xaf\x8f\xad\x8f\xae\x8f\xaf\x8f\xb0\x8f\xb1\x8f\xb2\x8f\xb3\x8f\xb4\x8f\xb5\x8f\xb6\x8f\xb7\x8f\xb8\x8f\xb9\x8f\xba\x8f\xbb\x63\x87\x8f\xbc\x4d\x8a\x4b\x51\x8f\xbd\x51\xbb\x63\x89\x63\x88\x63\x8a\x8f\xbe\x8f\xbf\x8f\xc0\x8f\xc1\x59\xcc\x8f\xc2\x8f\xc3\x8f\xc4\x61\x8b\x58\xcd\x8f\xc5\x57\x4e\x8f\xc6\x59\x86\x8f\xc7\x8f\xc8\x49\xc9\x49\x8c\x8f\xc9\x49\x93\x53\x8e\x8f\xca\x8f\xcb\x5b\x63\x5a\x50\x8f\xcc\x61\x7c\x8f\xcd\x8f\xce\x8f\xcf\x61\x7d\x8f\xd0\x59\xda\x8f\xd1\x4a\x59\x49\x6b\x8f\xd2\x8f\xd3\x8f\xd4", /* 5f80 */ "\x57\x9a\x5b\x98\x61\x7e\x8f\xd5\x4f\xb5\x4a\xfc\x8f\xd6\x61\x7f\x4d\xdb\x61\x81\x4e\x52\x51\xc8\x61\x82\x8f\xd7\x8f\xd8\x8f\xd9\x58\xeb\x8f\xda\x57\x5d\x8f\xdb\x8f\xdc\x61\x83\x8f\xdd\x4b\x63\x53\x67\x61\x84\x8f\xde\x8f\xdf\x61\x85\x8f\xe0\x8f\xe1\x8f\xe2\x8f\xe3\x5a\x9a\x8f\xe4\x8f\xe5\x8f\xe6\x8f\xe7\x8f\xe8\x8f\xe9\x61\x86\x8f\xea\x59\x4d\x8f\xeb\x8f\xec\x61\x87\x57\xa1\x8f\xed\x8f\xee\x8f\xef\x8f\xf0\x8f\xf1\x8f\xf2\x61\x88\x8f\xf3\x4b\x62\x8f\xf4\x8f\xf5\x8f\xf6\x8f\xf7\x61\x89\x4e\x75\x8f\xf8\x8f\xf9\x8f\xfa\x8f\xfb\x8f\xfc\x58\xc3\x61\xdf\x49\x78\x59\xe3\x8f\xfd\x90\x41\x61\xe0\x90\x42\x90\x43\x4e\xc8\x54\xcb\x90\x44\x61\xe2\x66\xfd\x66\xfc\x60\x4f\x90\x45\x90\x46\x90\x47\x61\xe1\x5b\xbd\x57\x9d\x52\x46\x90\x48\x90\x49\x90\x4a\x62\x63\x90\x4b\x90\x4c\x5b\xd1\x61\xe6\x90\x4d\x90\x4e\x61\xe7\x90\x4f\x90\x50\x5a\x67\x90\x51\x90\x52\x61\xeb\x50\x8d\x90\x53\x61\xec\x61\xe4\x90\x54\x90\x55\x4a\x60\x90\x56\x90\x57\x90\x58\x52\xed\x90\x59\x90\x5a\x61\xed\x90\x5b\x90\x5c\x58\xc2\x90\x5d\x4d\xf5\x61\xe8\x4c\x7e", /* 6000 */ "\x4e\x53\x56\xab\x56\x6b\x61\xe3\x61\xe5\x61\xe9\x61\xea\x90\x5e\x90\x5f\x90\x60\x61\xf6\x90\x61\x90\x62\x61\xf3\x5a\xf4\x61\xf2\x90\x63\x90\x64\x53\x4d\x90\x65\x5b\x9b\x53\x62\x49\xbf\x90\x66\x90\x67\x61\xee\x90\x68\x61\xf1\x51\x4f\x56\x5c\x90\x69\x90\x6a\x4b\x41\x61\xf8\x90\x6b\x90\x6c\x90\x6d\x4e\xb0\x61\xf0\x58\xd3\x5a\xb8\x61\xf4\x4d\x76\x61\xf5\x90\x6e\x90\x6f\x90\x70\x54\x73\x90\x71\x90\x72\x90\x73\x90\x74\x90\x75\x61\xef\x90\x76\x90\x77\x90\x78\x90\x79\x90\x7a\x5c\x7c\x67\x41\x90\x7b\x90\x7c\x61\xf7\x90\x7d\x67\x45\x61\xfd\x55\xd0\x90\x7e\x90\x7f\x90\x81\x90\x82\x90\x83\x90\x84\x90\x85\x51\x55\x90\x86\x4e\x70\x90\x87\x90\x88\x50\x76\x90\x89\x4d\xe2\x90\x8a\x90\x8b\x56\x41\x90\x8c\x90\x8d\x90\x8e\x67\x46\x67\x43\x90\x8f\x90\x90\x67\x42\x90\x91\x90\x92\x90\x93\x90\x94\x4e\x76\x67\x47\x58\xf3\x90\x95\x90\x96\x67\x44\x4d\xdd\x4b\xf6\x62\x41\x4b\xb1\x56\xf0\x4d\x47\x90\x97\x58\x42\x54\x41\x90\x98\x90\x99\x50\x72\x90\x9a\x90\x9b\x4b\xf0\x90\x9c\x61\xf9\x61\xfa\x61\xfc\x61\xfb\x52\xd4\x62\x42\x90\x9d\x5a\x61", /* 6080 */ "\x90\x9e\x90\x9f\x90\xa0\x62\x47\x54\x64\x90\xa1\x90\xa2\x90\xa3\x90\xa4\x58\x44\x90\xa5\x90\xa6\x62\x49\x4d\xb6\x90\xa7\x90\xa8\x90\xa9\x90\xaa\x62\x48\x90\xab\x4e\x7a\x90\xac\x62\x43\x90\xad\x90\xae\x90\xaf\x62\x44\x62\x4a\x90\xb0\x62\x46\x90\xb1\x57\xf1\x5a\x66\x90\xb2\x90\xb3\x4e\x5c\x90\xb4\x90\xb5\x5a\xc2\x90\xb6\x52\xf9\x90\xb7\x90\xb8\x67\x48\x58\xfb\x62\x45\x90\xb9\x52\x96\x90\xba\x62\x4d\x49\x4f\x90\xbb\x62\x52\x90\xbc\x90\xbd\x90\xbe\x4e\xc1\x90\xbf\x90\xc0\x62\x4c\x4b\x5f\x90\xc1\x90\xc2\x90\xc3\x90\xc4\x90\xc5\x90\xc6\x90\xc7\x90\xc8\x54\x8a\x62\x50\x90\xc9\x90\xca\x90\xcb\x4f\xa9\x57\x90\x90\xcc\x90\xcd\x90\xce\x90\xcf\x90\xd0\x4e\x94\x90\xd1\x90\xd2\x90\xd3\x56\xe7\x90\xd4\x90\xd5\x62\x4f\x90\xd6\x62\x51\x90\xd7\x58\x47\x62\x4e\x90\xd8\x57\xa8\x4e\x7d\x90\xd9\x90\xda\x90\xdb\x90\xdc\x90\xdd\x4b\x8c\x4f\xe4\x49\xd1\x4a\x6d\x90\xde\x49\x59\x62\x4b\x49\xd0\x4b\x4c\x4d\x7f\x4b\xe7\x90\xdf\x90\xe0\x58\x8c\x62\x57\x90\xe1\x4e\x6c\x90\xe2\x90\xe3\x54\xc6\x58\xc9\x90\xe4\x90\xe5\x90\xe6\x90\xe7\x90\xe8", /* 6100 */ "\x62\x58\x4a\x8f\x90\xe9\x90\xea\x90\xeb\x90\xec\x67\x49\x90\xed\x5a\x9b\x5a\x85\x90\xee\x90\xef\x90\xf0\x67\x4a\x62\x59\x59\xe1\x90\xf1\x90\xf2\x90\xf3\x90\xf4\x90\xf5\x62\x55\x90\xf6\x90\xf7\x90\xf8\x90\xf9\x5a\x7e\x90\xfa\x90\xfb\x90\xfc\x90\xfd\x4c\xcf\x62\x53\x91\x41\x91\x42\x62\x56\x4c\x7f\x91\x43\x62\x54\x50\xa1\x91\x44\x91\x45\x91\x46\x62\x5a\x91\x47\x91\x48\x91\x49\x91\x4a\x91\x4b\x91\x4c\x91\x4d\x91\x4e\x91\x4f\x91\x50\x91\x51\x91\x52\x91\x53\x91\x54\x91\x55\x91\x56\x91\x57\x91\x58\x91\x59\x5a\xb7\x91\x5a\x91\x5b\x91\x5c\x91\x5d\x91\x5e\x91\x5f\x91\x60\x91\x61\x4a\xc7\x91\x62\x62\x5b\x91\x63\x4e\x65\x91\x64\x55\x98\x91\x65\x91\x66\x55\x86\x91\x67\x91\x68\x91\x69\x52\xbc\x91\x6a\x91\x6b\x91\x6c\x91\x6d\x91\x6e\x91\x6f\x91\x70\x67\x4b\x91\x71\x91\x72\x91\x73\x91\x74\x51\xfc\x91\x75\x91\x76\x91\x77\x91\x78\x4e\x7b\x50\x4e\x91\x79\x91\x7a\x91\x7b\x91\x7c\x91\x7d\x91\x7e\x91\x7f\x57\xbe\x91\x81\x91\x82\x91\x83\x91\x84\x62\x5c\x91\x85\x50\x56\x91\x86\x91\x87\x91\x88\x91\x89\x91\x8a\x91\x8b\x91\x8c\x91\x8d", /* 6180 */ "\x91\x8e\x91\x8f\x91\x90\x91\x91\x91\x92\x91\x93\x91\x94\x91\x95\x91\x96\x91\x97\x91\x98\x49\x90\x91\x99\x91\x9a\x5a\xf6\x91\x9b\x91\x9c\x91\x9d\x91\x9e\x91\x9f\x62\x5e\x91\xa0\x91\xa1\x91\xa2\x91\xa3\x91\xa4\x91\xa5\x91\xa6\x91\xa7\x67\x4d\x91\xa8\x91\xa9\x91\xaa\x91\xab\x91\xac\x91\xad\x91\xae\x91\xaf\x91\xb0\x62\x5f\x4d\xa8\x67\x4c\x91\xb1\x91\xb2\x62\x5d\x91\xb3\x91\xb4\x91\xb5\x91\xb6\x91\xb7\x91\xb8\x91\xb9\x91\xba\x91\xbb\x91\xbc\x62\x60\x91\xbd\x91\xbe\x91\xbf\x91\xc0\x91\xc1\x91\xc2\x4d\xb5\x91\xc3\x91\xc4\x91\xc5\x4b\xad\x91\xc6\x91\xc7\x91\xc8\x91\xc9\x91\xca\x58\xb7\x91\xcb\x48\xc2\x67\x4e\x91\xcc\x91\xcd\x91\xce\x91\xcf\x91\xd0\x67\x4f\x50\xc0\x91\xd1\x62\x61\x91\xd2\x91\xd3\x91\xd4\x91\xd5\x91\xd6\x91\xd7\x91\xd8\x91\xd9\x91\xda\x91\xdb\x91\xdc\x91\xdd\x91\xde\x91\xdf\x91\xe0\x91\xe1\x91\xe2\x53\x53\x91\xe3\x91\xe4\x91\xe5\x91\xe6\x91\xe7\x91\xe8\x91\xe9\x91\xea\x91\xeb\x91\xec\x91\xed\x91\xee\x91\xef\x91\xf0\x62\x62\x91\xf1\x91\xf2\x91\xf3\x91\xf4\x91\xf5\x91\xf6\x91\xf7\x91\xf8\x91\xf9\x5e\xb1", /* 6200 */ "\x91\xfa\x91\xfb\x91\xfc\x91\xfd\x92\x41\x92\x42\x67\x50\x92\x43\x4c\xe9\x92\x44\x57\xeb\x65\xa6\x58\xe6\x55\xf8\x54\xd5\x58\x57\x4a\x69\x57\xd1\x4f\x85\x92\x45\x92\x46\x62\x7e\x4e\x93\x65\xa7\x5b\x5d\x92\x47\x53\xdc\x65\xa8\x92\x48\x92\x49\x92\x4a\x65\xa9\x92\x4b\x65\xab\x65\xaa\x92\x4c\x65\xad\x65\xac\x92\x4d\x92\x4e\x92\x4f\x92\x50\x4f\x78\x92\x51\x65\xae\x92\x52\x51\xbd\x92\x53\x92\x54\x92\x55\x92\x56\x4a\xc0\x4a\xf6\x92\x57\x92\x58\x4e\x47\x92\x59\x92\x5a\x92\x5b\x92\x5c\x92\x5d\x66\xe5\x66\xe4\x4c\x5f\x56\x9a\x49\x83\x92\x5e\x66\xe6\x92\x5f\x92\x60\x92\x61\x55\x68\x66\xe7\x66\xe8\x92\x62\x55\xd5\x5f\xcf\x49\xc4\x5a\xf9\x92\x63\x92\x64\x53\xca\x48\xc6\x4a\xf1\x54\xd2\x92\x65\x92\x66\x92\x67\x57\x70\x92\x68\x92\x69\x50\x58\x92\x6a\x92\x6b\x92\x6c\x92\x6d\x92\x6e\x92\x6f\x92\x70\x50\x7b\x92\x71\x92\x72\x54\x44\x5b\xb3\x92\x73\x50\xa8\x5f\xd0\x55\x48\x59\x90\x53\x44\x48\xe6\x4a\x56\x54\xc4\x92\x74\x92\x75\x48\xe1\x92\x76\x92\x77\x4c\x97\x92\x78\x92\x79\x53\x9b\x92\x7a\x92\x7b\x4b\xf2\x92\x7c\x5b\x72\x4a\x70", /* 6280 */ "\x4e\xbb\x92\x7d\x92\x7e\x92\x7f\x4a\x4d\x92\x81\x92\x82\x92\x83\x92\x84\x4f\xf0\x48\xd0\x92\x85\x92\x86\x92\x87\x92\x88\x92\x89\x92\x8a\x59\xd5\x55\xe2\x5c\x45\x92\x8b\x57\x56\x4b\xb5\x50\x59\x5b\x7b\x92\x8c\x4c\xa6\x53\x77\x92\x8d\x92\x8e\x92\x8f\x5f\xd1\x50\x79\x51\xd4\x54\x60\x92\x90\x4e\x44\x49\x48\x92\x91\x92\x92\x53\x8b\x92\x93\x92\x94\x53\x9c\x56\xa6\x92\x95\x92\x96\x92\x97\x92\x98\x49\x47\x92\x99\x92\x9a\x92\x9b\x4b\x76\x92\x9c\x92\x9d\x92\x9e\x52\xa7\x92\x9f\x5f\xd2\x59\x5a\x4a\x8a\x92\xa0\x52\x93\x92\xa1\x92\xa2\x4c\x98\x92\xa3\x5b\xf3\x4b\x43\x49\xef\x52\xb3\x52\xe8\x50\xac\x5f\xd3\x92\xa4\x48\xe7\x53\x64\x51\x81\x92\xa5\x4d\x75\x92\xa6\x4f\xdb\x57\x78\x48\xcd\x92\xa7\x57\x6f\x5f\xd5\x4f\xcf\x5c\x5e\x5f\xd4\x5b\x70\x48\xdc\x92\xa8\x92\xa9\x52\xe1\x92\xaa\x92\xab\x51\xa2\x4e\xef\x92\xac\x5a\x55\x50\xb8\x53\x41\x49\xa5\x5a\xf0\x92\xad\x92\xae\x50\xa7\x55\xc2\x5f\xd6\x5b\x9d\x92\xaf\x4d\x50\x92\xb0\x54\xac\x56\x49\x92\xb1\x5f\xd8\x50\x5d\x92\xb2\x92\xb3\x92\xb4\x92\xb5\x53\xb3\x5c\x47\x55\xaf\x52\xc2", /* 6300 */ "\x92\xb6\x4a\x76\x4d\x72\x92\xb7\x92\xb8\x92\xb9\x92\xba\x5b\xb7\x65\xfb\x48\xb3\x92\xbb\x92\xbc\x92\xbd\x92\xbe\x50\x87\x92\xbf\x92\xc0\x56\xf3\x92\xc1\x92\xc2\x92\xc3\x92\xc4\x57\x7a\x92\xc5\x92\xc6\x92\xc7\x5b\xbe\x51\xcd\x92\xc8\x57\xcd\x56\xa1\x58\xad\x52\xd2\x4b\x52\x5f\xd7\x5b\x96\x4e\xb6\x4e\x73\x92\xc9\x92\xca\x48\xa3\x92\xcb\x53\x52\x4a\xeb\x92\xcc\x92\xcd\x92\xce\x5b\x92\x92\xcf\x92\xd0\x65\xfc\x92\xd1\x92\xd2\x92\xd3\x92\xd4\x92\xd5\x92\xd6\x5f\xd9\x57\x46\x92\xd7\x92\xd8\x57\x8d\x92\xd9\x92\xda\x92\xdb\x92\xdc\x57\xe5\x5f\xdb\x92\xdd\x57\x51\x50\xa5\x92\xde\x92\xdf\x5c\x5d\x92\xe0\x5f\xda\x48\xc5\x4d\xb3\x55\x73\x52\xf2\x4f\xe7\x92\xe1\x92\xe2\x92\xe3\x92\xe4\x49\xb5\x92\xe5\x92\xe6\x92\xe7\x92\xe8\x92\xe9\x92\xea\x92\xeb\x92\xec\x50\xcb\x56\x91\x92\xed\x4e\xf0\x4e\x5b\x4b\x57\x92\xee\x92\xef\x92\xf0\x53\x96\x92\xf1\x5f\xe5\x92\xf2\x92\xf3\x92\xf4\x5f\xe2\x4f\xdc\x92\xf5\x92\xf6\x5f\xde\x92\xf7\x92\xf8\x92\xf9\x92\xfa\x4a\xb6\x4f\x7d\x92\xfb\x92\xfc\x5f\xdf\x52\xec\x92\xfd\x93\x41\x93\x42\x93\x43", /* 6380 */ "\x58\x66\x93\x44\x4b\x81\x93\x45\x93\x46\x93\x47\x93\x48\x4b\xdd\x55\xd9\x4b\x95\x5f\xe4\x93\x49\x5b\x66\x93\x4a\x5f\xe0\x56\xcc\x53\xfd\x93\x4b\x53\x65\x93\x4c\x93\x4d\x93\x4e\x59\xb3\x93\x4f\x4f\xf1\x93\x50\x93\x51\x93\x52\x93\x53\x93\x54\x93\x55\x93\x56\x51\xd2\x93\x57\x56\xbc\x4a\x58\x93\x58\x4f\x73\x93\x59\x50\x78\x57\x66\x59\x7a\x4a\xea\x93\x5a\x5f\xe3\x5f\xdc\x5f\xe6\x93\x5b\x65\xfd\x93\x5c\x93\x5d\x51\xaf\x5f\xe1\x93\x5e\x93\x5f\x5b\xbf\x4b\x47\x93\x60\x49\xf3\x93\x61\x5f\xe7\x93\x62\x5f\xf1\x93\x63\x93\x64\x93\x65\x93\x66\x93\x67\x5f\xec\x93\x68\x5f\xf0\x93\x69\x93\x6a\x54\xdf\x93\x6b\x93\x6c\x93\x6d\x5c\x82\x5f\xee\x52\x89\x56\xe0\x93\x6e\x49\xe4\x93\x6f\x93\x70\x93\x71\x59\xbd\x93\x72\x93\x73\x93\x74\x93\x75\x93\x76\x93\x77\x93\x78\x5f\xed\x93\x79\x5f\xea\x57\xd4\x93\x7a\x4a\xa6\x93\x7b\x93\x7c\x93\x7d\x93\x7e\x93\x7f\x50\x4b\x4f\xbd\x93\x81\x93\x82\x4f\x72\x93\x83\x93\x84\x93\x85\x93\x86\x5f\xe8\x93\x87\x5a\xad\x93\x88\x5f\xdd\x93\x89\x5f\xe9\x93\x8a\x93\x8b\x93\x8c\x93\x8d\x50\xbe\x93\x8e\x5f\xeb", /* 6400 */ "\x49\xf2\x4c\xe8\x51\xa6\x93\x8f\x93\x90\x4f\x61\x93\x91\x93\x92\x93\x93\x93\x94\x93\x95\x5f\xf4\x5f\xf7\x93\x96\x93\x97\x49\xaa\x4a\xa3\x93\x98\x93\x99\x4a\xe9\x55\x46\x93\x9a\x93\x9b\x93\x9c\x93\x9d\x93\x9e\x93\x9f\x5f\xf5\x56\x71\x93\xa0\x4c\xe2\x93\xa1\x5f\xf6\x5f\xf9\x93\xa2\x93\xa3\x93\xa4\x93\xa5\x5f\xf8\x93\xa6\x93\xa7\x93\xa8\x56\xc1\x93\xa9\x48\xe0\x4a\xed\x93\xaa\x93\xab\x93\xac\x93\xad\x93\xae\x93\xaf\x63\x5a\x93\xb0\x93\xb1\x93\xb2\x93\xb3\x93\xb4\x58\xae\x93\xb5\x93\xb6\x49\xea\x93\xb7\x66\x41\x93\xb8\x5f\xf3\x93\xb9\x93\xba\x55\x84\x5f\xf2\x48\xd9\x59\xa0\x49\x98\x93\xbb\x56\xae\x93\xbc\x93\xbd\x93\xbe\x93\xbf\x93\xc0\x93\xc1\x93\xc2\x5f\xef\x93\xc3\x56\x44\x93\xc4\x93\xc5\x93\xc6\x5b\x4a\x93\xc7\x93\xc8\x93\xc9\x93\xca\x93\xcb\x5f\xfa\x93\xcc\x93\xcd\x93\xce\x93\xcf\x93\xd0\x93\xd1\x93\xd2\x93\xd3\x4a\xdc\x93\xd4\x52\xa5\x93\xd5\x93\xd6\x93\xd7\x5f\xfc\x93\xd8\x93\xd9\x93\xda\x93\xdb\x93\xdc\x93\xdd\x93\xde\x93\xdf\x93\xe0\x93\xe1\x52\x9f\x52\xa0\x60\x41\x93\xe2\x93\xe3\x93\xe4\x93\xe5\x93\xe6", /* 6480 */ "\x93\xe7\x93\xe8\x51\x6c\x93\xe9\x5f\xfb\x4f\xee\x93\xea\x53\xb1\x93\xeb\x93\xec\x93\xed\x93\xee\x93\xef\x93\xf0\x93\xf1\x93\xf2\x93\xf3\x4a\x65\x54\xf5\x93\xf4\x93\xf5\x56\x5a\x5f\xfd\x93\xf6\x93\xf7\x60\x44\x93\xf8\x93\xf9\x93\xfa\x93\xfb\x5c\x52\x93\xfc\x93\xfd\x94\x41\x94\x42\x94\x43\x4a\x57\x94\x44\x94\x45\x94\x46\x94\x47\x51\x63\x94\x48\x94\x49\x54\x6b\x49\xa4\x4a\xe8\x94\x4a\x5c\x4b\x94\x4b\x94\x4c\x94\x4d\x94\x4e\x52\xeb\x94\x4f\x60\x42\x60\x43\x94\x50\x60\x45\x94\x51\x4d\xb2\x94\x52\x94\x53\x94\x54\x60\x46\x94\x55\x50\xdd\x94\x56\x94\x57\x55\x63\x94\x58\x94\x59\x94\x5a\x94\x5b\x94\x5c\x94\x5d\x94\x5e\x49\xd8\x54\x87\x94\x5f\x60\x47\x94\x60\x54\x7c\x94\x61\x94\x62\x94\x63\x94\x64\x60\x48\x66\x42\x94\x65\x94\x66\x94\x67\x94\x68\x94\x69\x56\x73\x94\x6a\x94\x6b\x94\x6c\x60\x4a\x94\x6d\x60\x49\x94\x6e\x49\xc0\x94\x6f\x94\x70\x94\x71\x94\x72\x94\x73\x94\x74\x94\x75\x94\x76\x94\x77\x94\x78\x94\x79\x94\x7a\x94\x7b\x94\x7c\x94\x7d\x94\x7e\x94\x7f\x94\x81\x94\x82\x94\x83\x94\x84\x94\x85\x94\x86\x94\x87\x94\x88", /* 6500 */ "\x53\x6a\x94\x89\x94\x8a\x94\x8b\x94\x8c\x94\x8d\x94\x8e\x94\x8f\x94\x90\x60\x4b\x94\x91\x94\x92\x94\x93\x94\x94\x94\x95\x94\x96\x94\x97\x94\x98\x5a\xdb\x94\x99\x94\x9a\x94\x9b\x94\x9c\x94\x9d\x54\xc0\x94\x9e\x94\x9f\x94\xa0\x94\xa1\x94\xa2\x94\xa3\x94\xa4\x94\xa5\x94\xa6\x94\xa7\x94\xa8\x94\xa9\x60\x4c\x94\xaa\x94\xab\x94\xac\x94\xad\x94\xae\x4f\xef\x94\xaf\x94\xb0\x60\x4d\x5b\xa6\x94\xb1\x94\xb2\x94\xb3\x94\xb4\x65\xb6\x66\x56\x55\xd4\x94\xb5\x5c\xfb\x4c\xc3\x94\xb6\x4d\x45\x94\xb7\x94\xb8\x4c\x65\x5b\x9f\x94\xb9\x94\xba\x94\xbb\x94\xbc\x94\xbd\x4d\x6a\x94\xbe\x94\xbf\x58\xa6\x6a\xcc\x94\xc0\x94\xc1\x4b\x70\x94\xc2\x94\xc3\x52\x95\x94\xc4\x4f\xc7\x94\xc5\x94\xc6\x94\xc7\x66\x57\x48\xbc\x94\xc8\x94\xc9\x4f\x6c\x94\xca\x51\x52\x94\xcb\x49\x76\x4a\x48\x94\xcc\x94\xcd\x94\xce\x4c\xd1\x55\x42\x94\xcf\x94\xd0\x4b\xd7\x94\xd1\x94\xd2\x94\xd3\x94\xd4\x66\x58\x4f\xb3\x94\xd5\x94\xd6\x94\xd7\x55\xfc\x94\xd8\x54\x63\x94\xd9\x5b\x9c\x94\xda\x94\xdb\x4c\x94\x94\xdc\x94\xdd\x94\xde\x94\xdf\x94\xe0\x94\xe1\x94\xe2\x94\xe3", /* 6580 */ "\x94\xe4\x94\xe5\x94\xe6\x94\xe7\x94\xe8\x94\xe9\x94\xea\x57\xc3\x94\xeb\x94\xec\x94\xed\x5b\x4b\x49\x94\x94\xee\x94\xef\x94\xf0\x66\xb2\x48\xde\x94\xf1\x66\xb4\x94\xf2\x94\xf3\x94\xf4\x4b\xb6\x94\xf5\x51\x6f\x94\xf6\x6b\x9b\x58\xb0\x94\xf7\x94\xf8\x5b\x86\x94\xf9\x57\xd2\x94\xfa\x94\xfb\x4f\x90\x4a\x83\x94\xfc\x4c\xaa\x94\xfd\x5b\x56\x95\x41\x67\x5d\x95\x42\x4b\xce\x95\x43\x56\x59\x58\xc1\x95\x44\x95\x45\x95\x46\x95\x47\x95\x48\x95\x49\x95\x4a\x95\x4b\x4c\x5d\x95\x4c\x95\x4d\x66\xb5\x55\xa8\x95\x4e\x95\x4f\x95\x50\x53\x74\x95\x51\x66\xb8\x66\xb7\x51\xc2\x66\xb6\x95\x52\x95\x53\x95\x54\x95\x55\x58\xfc\x66\xb9\x95\x56\x66\xba\x5c\x86\x95\x57\x95\x58\x66\xbb\x95\x59\x95\x5a\x95\x5b\x66\xbc\x53\xeb\x95\x5c\x95\x5d\x95\x5e\x95\x5f\x95\x60\x95\x61\x95\x62\x95\x63\x57\xdd\x95\x64\x4e\xc7\x95\x65\x95\x66\x54\xd4\x4b\x49\x4f\xc8\x5b\xbb\x5a\xe6\x95\x67\x95\x68\x59\x4e\x58\xf0\x65\xb7\x65\xb8\x65\xb9\x4d\xb4\x95\x69\x95\x6a\x95\x6b\x95\x6c\x55\xb0\x50\x96\x95\x6d\x95\x6e\x57\x9b\x95\x6f\x95\x70\x95\x71\x95\x72\x95\x73", /* 6600 */ "\x65\xbf\x95\x74\x48\xb9\x65\xbd\x95\x75\x95\x76\x50\xa4\x95\x77\x95\x78\x95\x79\x65\xba\x95\x7a\x49\xfc\x95\x7b\x52\x98\x4e\x89\x95\x7c\x95\x7d\x95\x7e\x59\xd6\x57\xf3\x65\xbe\x95\x7f\x95\x81\x95\x82\x65\xbb\x95\x83\x95\x84\x95\x85\x65\xc2\x95\x86\x58\xc6\x5a\x53\x95\x87\x95\x88\x95\x89\x95\x8a\x4a\xb9\x95\x8b\x52\x61\x5c\x93\x95\x8c\x95\x8d\x95\x8e\x95\x8f\x5b\x71\x95\x90\x55\xc6\x95\x91\x65\xc4\x95\x92\x95\x93\x65\xc3\x65\xc6\x65\xc5\x95\x94\x95\x95\x95\x96\x95\x97\x95\x98\x5b\xe6\x95\x99\x58\x74\x95\x9a\x95\x9b\x65\xca\x95\x9c\x4e\x6e\x95\x9d\x95\x9e\x95\x9f\x95\xa0\x95\xa1\x95\xa2\x95\xa3\x4f\x9b\x55\x6e\x95\xa4\x95\xa5\x65\xcb\x95\xa6\x95\xa7\x55\x59\x58\x9f\x65\xc9\x5a\xcd\x65\xcc\x65\xce\x95\xa8\x95\xa9\x57\x8e\x95\xaa\x95\xab\x95\xac\x95\xad\x65\xc8\x95\xae\x65\xcd\x95\xaf\x95\xb0\x57\xed\x95\xb1\x4e\x7e\x95\xb2\x4a\x5f\x95\xb3\x95\xb4\x95\xb5\x95\xb6\x95\xb7\x53\xd4\x4f\xaf\x57\xf9\x95\xb8\x95\xb9\x95\xba\x54\x88\x95\xbb\x4f\xa6\x65\xcf\x95\xbc\x95\xbd\x5b\xc6\x95\xbe\x95\xbf\x95\xc0\x51\x60\x95\xc1", /* 6680 */ "\x95\xc2\x95\xc3\x5a\xdc\x95\xc4\x65\xd0\x95\xc5\x95\xc6\x58\x5e\x95\xc7\x95\xc8\x95\xc9\x95\xca\x65\xd1\x95\xcb\x95\xcc\x95\xcd\x95\xce\x55\xed\x95\xcf\x95\xd0\x95\xd1\x95\xd2\x53\x4f\x48\xb4\x95\xd3\x95\xd4\x95\xd5\x95\xd6\x95\xd7\x65\xd3\x95\xd8\x95\xd9\x95\xda\x95\xdb\x95\xdc\x95\xdd\x95\xde\x95\xdf\x95\xe0\x65\xd2\x6a\xde\x95\xe1\x95\xe2\x95\xe3\x95\xe4\x95\xe5\x52\xb9\x95\xe6\x95\xe7\x95\xe8\x95\xe9\x95\xea\x49\x49\x95\xeb\x95\xec\x95\xed\x95\xee\x63\x7f\x95\xef\x95\xf0\x95\xf1\x95\xf2\x65\xd4\x95\xf3\x95\xf4\x95\xf5\x95\xf6\x95\xf7\x95\xf8\x95\xf9\x95\xfa\x95\xfb\x95\xfc\x95\xfd\x96\x41\x96\x42\x96\x43\x96\x44\x96\x45\x96\x46\x96\x47\x96\x48\x96\x49\x96\x4a\x96\x4b\x96\x4c\x96\x4d\x96\x4e\x96\x4f\x55\xee\x96\x50\x65\xd5\x65\xd6\x53\xd7\x96\x51\x96\x52\x96\x53\x96\x54\x96\x55\x96\x56\x96\x57\x96\x58\x65\xd7\x96\x59\x96\x5a\x65\xd8\x96\x5b\x96\x5c\x96\x5d\x96\x5e\x96\x5f\x96\x60\x5a\xba\x96\x61\x54\x9b\x59\xb6\x4c\xfb\x96\x62\x96\x63\x65\xc1\x96\x64\x49\xdb\x96\x65\x96\x66\x51\xfb\x96\x67\x5a\xf7\x56\xe5", /* 6700 */ "\x5c\x8f\x96\x68\x96\x69\x96\x6a\x96\x6b\x96\x6c\x96\x6d\x96\x6e\x5a\xc1\x5a\x70\x66\x63\x53\x94\x96\x6f\x4c\x9f\x96\x70\x96\x71\x66\x74\x96\x72\x96\x73\x96\x74\x56\x57\x66\x7e\x96\x75\x50\xc9\x96\x76\x96\x77\x96\x78\x57\x9c\x96\x79\x4a\x4f\x96\x7a\x53\xd9\x96\x7b\x96\x7c\x96\x7d\x96\x7e\x96\x7f\x96\x81\x66\x9d\x96\x82\x52\xbd\x96\x83\x57\xb3\x52\xa8\x49\x5e\x5a\xfc\x96\x84\x55\xf4\x96\x85\x5b\xeb\x96\x86\x96\x87\x53\xd2\x4b\xe3\x96\x88\x96\x89\x96\x8a\x96\x8b\x4e\x9b\x96\x8c\x96\x8d\x58\xdf\x96\x8e\x96\x8f\x55\x51\x96\x90\x5a\xd2\x54\xa7\x96\x91\x96\x92\x4c\xca\x96\x93\x64\xbd\x55\x5c\x96\x94\x96\x95\x64\xba\x96\x96\x50\xed\x58\xd2\x49\xc3\x4a\xe4\x96\x97\x64\xbb\x96\x98\x96\x99\x5b\x68\x96\x9a\x96\x9b\x96\x9c\x96\x9d\x96\x9e\x4b\xc4\x96\x9f\x64\xbc\x55\xf7\x4c\xdb\x56\xf4\x96\xa0\x96\xa1\x96\xa2\x50\xb3\x96\xa3\x96\xa4\x59\x8f\x64\xbe\x64\xc1\x96\xa5\x96\xa6\x4d\xbb\x96\xa7\x49\x4d\x4f\x7c\x96\xa8\x65\xbc\x64\xc2\x96\xa9\x64\xc5\x96\xaa\x64\xca\x96\xab\x96\xac\x96\xad\x96\xae\x64\xcb\x96\xaf\x56\x69\x48\xe4", /* 6780 */ "\x96\xb0\x4e\xaa\x96\xb1\x96\xb2\x4d\x59\x96\xb3\x96\xb4\x64\xc0\x96\xb5\x57\x98\x96\xb6\x64\xc9\x96\xb7\x96\xb8\x96\xb9\x96\xba\x57\xf5\x96\xbb\x96\xbc\x96\xbd\x96\xbe\x5b\x8e\x96\xbf\x51\x76\x64\xc3\x96\xc0\x52\x56\x96\xc1\x4d\x9c\x5b\xa5\x64\xc7\x96\xc2\x96\xc3\x96\xc4\x55\xdf\x5a\xe5\x96\xc5\x64\xbf\x96\xc6\x64\xc4\x64\xc6\x96\xc7\x54\x59\x4c\x84\x96\xc8\x64\xc8\x96\xc9\x50\x7d\x64\xd1\x96\xca\x96\xcb\x64\xd6\x96\xcc\x64\xd4\x4e\xdb\x4e\xce\x64\xda\x96\xcd\x96\xce\x96\xcf\x96\xd0\x96\xd1\x96\xd2\x96\xd3\x96\xd4\x64\xdd\x96\xd5\x64\xd9\x49\x9b\x96\xd6\x96\xd7\x96\xd8\x96\xd9\x96\xda\x96\xdb\x96\xdc\x96\xdd\x96\xde\x96\xdf\x48\xd7\x52\xb2\x4c\xcb\x53\xe1\x54\xbd\x54\xe0\x96\xe0\x96\xe1\x96\xe2\x64\xce\x64\xd3\x64\xd5\x96\xe3\x4d\x92\x64\xd7\x5c\x96\x96\xe4\x52\xfa\x96\xe5\x64\xdb\x96\xe6\x96\xe7\x49\xe8\x96\xe8\x96\xe9\x96\xea\x64\xd0\x96\xeb\x96\xec\x4e\xec\x96\xed\x96\xee\x50\x62\x64\xcc\x5b\xf8\x96\xef\x51\x99\x49\xf0\x96\xf0\x96\xf1\x96\xf2\x96\xf3\x96\xf4\x96\xf5\x96\xf6\x96\xf7\x64\xde\x96\xf8\x55\xc0", /* 6800 */ "\x64\xd8\x96\xf9\x96\xfa\x96\xfb\x96\xfc\x5b\x44\x96\xfd\x49\x8b\x5b\x5b\x64\xcd\x64\xcf\x4b\xaf\x64\xd2\x97\x41\x64\xdc\x50\xb7\x97\x42\x55\xf6\x97\x43\x56\x48\x97\x44\x97\x45\x53\xdb\x50\xf4\x97\x46\x97\x47\x97\x48\x97\x49\x97\x4a\x64\xe8\x97\x4b\x97\x4c\x97\x4d\x58\xa2\x97\x4e\x97\x4f\x97\x50\x97\x51\x97\x52\x97\x53\x97\x54\x64\xf1\x5b\xe9\x97\x55\x97\x56\x97\x57\x97\x58\x97\x59\x97\x5a\x97\x5b\x64\xdf\x64\xe0\x97\x5c\x97\x5d\x97\x5e\x59\x9a\x4d\xca\x4c\xf8\x97\x5f\x97\x60\x4c\xf0\x5a\xd3\x64\xee\x97\x61\x64\xed\x64\xeb\x4d\x91\x56\xd1\x64\xe5\x57\xa5\x50\x93\x97\x62\x48\xb7\x64\xf0\x64\xef\x97\x63\x5c\x60\x97\x64\x64\xe3\x97\x65\x57\x49\x55\x43\x97\x66\x4e\x58\x4f\x7b\x64\xe9\x97\x67\x97\x68\x97\x69\x97\x6a\x97\x6b\x97\x6c\x97\x6d\x97\x6e\x97\x6f\x97\x70\x64\xe1\x64\xe2\x64\xe4\x4b\x55\x64\xe6\x54\x65\x64\xea\x64\xec\x4f\x50\x5c\x4e\x97\x71\x64\xf7\x97\x72\x97\x73\x97\x74\x97\x75\x97\x76\x97\x77\x97\x78\x97\x79\x64\xf4\x97\x7a\x57\x50\x64\xf5\x97\x7b\x97\x7c\x97\x7d\x97\x7e\x97\x7f\x97\x81\x97\x82\x97\x83", /* 6880 */ "\x97\x84\x51\x5a\x97\x85\x64\xe7\x97\x86\x52\x57\x48\xef\x97\x87\x97\x88\x97\x89\x97\x8a\x97\x8b\x97\x8c\x97\x8d\x97\x8e\x64\xf3\x97\x8f\x97\x90\x97\x91\x64\xf6\x97\x92\x97\x93\x97\x94\x4d\x43\x97\x95\x97\x96\x97\x97\x97\x98\x97\x99\x97\x9a\x97\x9b\x97\x9c\x97\x9d\x97\x9e\x55\x72\x97\x9f\x97\xa0\x97\xa1\x52\x6e\x57\xdf\x50\xe5\x97\xa2\x97\xa3\x97\xa4\x97\xa5\x56\x94\x97\xa6\x56\xdc\x58\xb4\x97\xa7\x97\xa8\x55\xe0\x97\xa9\x64\xf2\x97\xaa\x97\xab\x97\xac\x97\xad\x97\xae\x97\xaf\x97\xb0\x97\xb1\x97\xb2\x97\xb3\x4e\xeb\x97\xb4\x64\xf8\x97\xb5\x97\xb6\x97\xb7\x97\xb8\x97\xb9\x97\xba\x52\x7e\x97\xbb\x53\xe4\x97\xbc\x4d\x98\x97\xbd\x97\xbe\x97\xbf\x97\xc0\x48\xf3\x97\xc1\x97\xc2\x5c\x78\x97\xc3\x97\xc4\x4e\xab\x97\xc5\x53\x90\x97\xc6\x97\xc7\x97\xc8\x97\xc9\x97\xca\x56\xc3\x97\xcb\x97\xcc\x65\x46\x97\xcd\x97\xce\x97\xcf\x97\xd0\x97\xd1\x97\xd2\x97\xd3\x97\xd4\x97\xd5\x97\xd6\x55\x4d\x97\xd7\x65\x42\x50\xe1\x97\xd8\x97\xd9\x97\xda\x50\x63\x97\xdb\x97\xdc\x97\xdd\x64\xfd\x4d\x77\x97\xde\x64\xfa\x97\xdf\x97\xe0\x97\xe1", /* 6900 */ "\x97\xe2\x65\x44\x97\xe3\x97\xe4\x97\xe5\x59\xcd\x97\xe6\x97\xe7\x97\xe8\x97\xe9\x97\xea\x65\x43\x97\xeb\x5b\xb1\x5c\x55\x97\xec\x65\x47\x97\xed\x4f\x57\x97\xee\x97\xef\x97\xf0\x97\xf1\x97\xf2\x97\xf3\x97\xf4\x97\xf5\x97\xf6\x97\xf7\x97\xf8\x97\xf9\x64\xfb\x64\xfc\x97\xfa\x97\xfb\x97\xfc\x65\x41\x97\xfd\x98\x41\x98\x42\x98\x43\x98\x44\x98\x45\x98\x46\x98\x47\x57\x76\x98\x48\x98\x49\x59\xab\x98\x4a\x98\x4b\x98\x4c\x65\x52\x98\x4d\x98\x4e\x98\x4f\x98\x50\x65\x49\x98\x51\x98\x52\x98\x53\x4a\xa9\x98\x54\x4a\xba\x98\x55\x98\x56\x65\x4b\x98\x57\x98\x58\x98\x59\x98\x5a\x98\x5b\x98\x5c\x98\x5d\x98\x5e\x98\x5f\x98\x60\x98\x61\x98\x62\x98\x63\x98\x64\x98\x65\x98\x66\x98\x67\x58\xa7\x98\x68\x98\x69\x65\x45\x98\x6a\x98\x6b\x4a\x9f\x98\x6c\x98\x6d\x65\x4c\x50\xe2\x98\x6e\x65\x4a\x98\x6f\x98\x70\x65\x59\x98\x71\x98\x72\x65\x58\x98\x73\x98\x74\x98\x75\x98\x76\x65\x4e\x98\x77\x98\x78\x64\xf9\x98\x79\x98\x7a\x65\x48\x98\x7b\x98\x7c\x98\x7d\x98\x7e\x98\x7f\x50\x4c\x65\x51\x65\x5a\x98\x81\x98\x82\x51\xa4\x98\x83\x98\x84\x98\x85", /* 6980 */ "\x65\x4f\x98\x86\x4c\xc4\x98\x87\x65\x4d\x98\x88\x5a\x7c\x65\x54\x65\x55\x65\x57\x98\x89\x98\x8a\x98\x8b\x65\x67\x98\x8c\x98\x8d\x98\x8e\x98\x8f\x98\x90\x98\x91\x50\xc5\x65\x65\x98\x92\x98\x93\x65\x50\x98\x94\x98\x95\x65\x5b\x48\xf0\x98\x96\x98\x97\x98\x98\x98\x99\x98\x9a\x98\x9b\x98\x9c\x98\x9d\x98\x9e\x98\x9f\x65\x5c\x5b\x45\x98\xa0\x98\xa1\x65\x5e\x98\xa2\x65\x5f\x98\xa3\x98\xa4\x98\xa5\x65\x61\x98\xa6\x98\xa7\x51\x92\x98\xa8\x98\xa9\x54\xb5\x98\xaa\x98\xab\x98\xac\x65\x5d\x98\xad\x98\xae\x98\xaf\x98\xb0\x98\xb1\x65\x62\x98\xb2\x98\xb3\x98\xb4\x98\xb5\x98\xb6\x98\xb7\x98\xb8\x98\xb9\x65\x63\x98\xba\x65\x53\x98\xbb\x65\x56\x98\xbc\x4e\x51\x98\xbd\x98\xbe\x98\xbf\x65\x60\x98\xc0\x98\xc1\x98\xc2\x98\xc3\x98\xc4\x98\xc5\x4e\xf6\x98\xc6\x98\xc7\x98\xc8\x65\x64\x65\x66\x98\xc9\x98\xca\x98\xcb\x98\xcc\x98\xcd\x98\xce\x98\xcf\x98\xd0\x98\xd1\x98\xd2\x98\xd3\x98\xd4\x65\x6a\x98\xd5\x98\xd6\x98\xd7\x98\xd8\x65\x6e\x98\xd9\x98\xda\x98\xdb\x98\xdc\x98\xdd\x98\xde\x98\xdf\x98\xe0\x98\xe1\x98\xe2\x49\xda\x98\xe3\x65\x68", /* 6a00 */ "\x98\xe4\x98\xe5\x98\xe6\x98\xe7\x98\xe8\x98\xe9\x98\xea\x98\xeb\x98\xec\x98\xed\x4c\x4e\x98\xee\x98\xef\x98\xf0\x98\xf1\x98\xf2\x98\xf3\x98\xf4\x98\xf5\x98\xf6\x98\xf7\x98\xf8\x98\xf9\x65\x6b\x65\x6c\x98\xfa\x98\xfb\x98\xfc\x98\xfd\x99\x41\x99\x42\x5b\x61\x99\x43\x52\xa2\x99\x44\x99\x45\x99\x46\x99\x47\x99\x48\x99\x49\x65\x78\x99\x4a\x4d\xe0\x99\x4b\x99\x4c\x99\x4d\x99\x4e\x65\x69\x99\x4f\x5a\x43\x99\x50\x99\x51\x99\x52\x65\x74\x99\x53\x99\x54\x99\x55\x99\x56\x99\x57\x99\x58\x99\x59\x65\x77\x65\x70\x99\x5a\x99\x5b\x99\x5c\x99\x5d\x99\x5e\x65\x6f\x99\x5f\x99\x60\x54\x61\x99\x61\x99\x62\x99\x63\x99\x64\x99\x65\x99\x66\x99\x67\x99\x68\x65\x72\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x6d\x99\x6e\x99\x6f\x65\x79\x4a\x68\x99\x70\x65\x73\x99\x71\x99\x72\x99\x73\x99\x74\x99\x75\x58\x91\x99\x76\x99\x77\x99\x78\x65\x6d\x99\x79\x99\x7a\x99\x7b\x99\x7c\x99\x7d\x99\x7e\x99\x7f\x99\x81\x99\x82\x99\x83\x99\x84\x4a\x98\x99\x85\x99\x86\x99\x87\x99\x88\x99\x89\x99\x8a\x99\x8b\x65\x76\x99\x8c\x99\x8d\x65\x7a\x99\x8e\x99\x8f\x99\x90", /* 6a80 */ "\x56\xb3\x99\x91\x99\x92\x99\x93\x58\x4d\x99\x94\x99\x95\x99\x96\x99\x97\x99\x98\x99\x99\x99\x9a\x99\x9b\x99\x9c\x65\x75\x99\x9d\x65\x7c\x65\x7b\x99\x9e\x99\x9f\x99\xa0\x99\xa1\x99\xa2\x65\x7e\x99\xa3\x99\xa4\x99\xa5\x99\xa6\x99\xa7\x99\xa8\x99\xa9\x99\xaa\x65\x71\x99\xab\x99\xac\x99\xad\x99\xae\x99\xaf\x99\xb0\x99\xb1\x99\xb2\x65\x7d\x99\xb3\x65\x7f\x52\x6a\x99\xb4\x99\xb5\x99\xb6\x99\xb7\x99\xb8\x99\xb9\x99\xba\x99\xbb\x99\xbc\x99\xbd\x99\xbe\x99\xbf\x99\xc0\x99\xc1\x99\xc2\x99\xc3\x99\xc4\x99\xc5\x99\xc6\x99\xc7\x99\xc8\x99\xc9\x99\xca\x99\xcb\x99\xcc\x99\xcd\x99\xce\x99\xcf\x99\xd0\x99\xd1\x99\xd2\x99\xd3\x99\xd4\x99\xd5\x99\xd6\x99\xd7\x99\xd8\x99\xd9\x99\xda\x99\xdb\x99\xdc\x99\xdd\x99\xde\x99\xdf\x99\xe0\x99\xe1\x99\xe2\x99\xe3\x99\xe4\x99\xe5\x99\xe6\x99\xe7\x99\xe8\x99\xe9\x99\xea\x99\xeb\x99\xec\x99\xed\x99\xee\x99\xef\x99\xf0\x99\xf1\x99\xf2\x99\xf3\x99\xf4\x99\xf5\x99\xf6\x99\xf7\x99\xf8\x99\xf9\x99\xfa\x99\xfb\x99\xfc\x99\xfd\x9a\x41\x9a\x42\x9a\x43\x9a\x44\x9a\x45\x9a\x46\x9a\x47\x9a\x48\x9a\x49", /* 6b00 */ "\x9a\x4a\x9a\x4b\x9a\x4c\x9a\x4d\x9a\x4e\x9a\x4f\x9a\x50\x9a\x51\x9a\x52\x9a\x53\x9a\x54\x9a\x55\x9a\x56\x9a\x57\x9a\x58\x9a\x59\x9a\x5a\x9a\x5b\x9a\x5c\x9a\x5d\x9a\x5e\x9a\x5f\x9a\x60\x9a\x61\x9a\x62\x9a\x63\x9a\x64\x9a\x65\x9a\x66\x9a\x67\x9a\x68\x9a\x69\x54\x57\x4a\xcd\x4e\x56\x58\xbf\x66\xa2\x9a\x6a\x9a\x6b\x53\x57\x9a\x6c\x9a\x6d\x9a\x6e\x9a\x6f\x9a\x70\x9a\x71\x9a\x72\x9a\x73\x9a\x74\x9a\x75\x5a\x9c\x9a\x76\x9a\x77\x9a\x78\x9a\x79\x66\xa3\x9a\x7a\x66\xa4\x53\xda\x9a\x7b\x9a\x7c\x9a\x7d\x50\x8f\x9a\x7e\x9a\x7f\x9a\x81\x9a\x82\x66\xa5\x9a\x83\x9a\x84\x66\xa6\x58\xa9\x9a\x85\x54\x58\x9a\x86\x9a\x87\x4c\xe7\x9a\x88\x9a\x89\x9a\x8a\x9a\x8b\x9a\x8c\x9a\x8d\x9a\x8e\x9a\x8f\x9a\x90\x9a\x91\x9a\x92\x9a\x93\x66\xa7\x9a\x94\x9a\x95\x9a\x96\x9a\x97\x9a\x98\x9a\x99\x9a\x9a\x9a\x9b\x5b\xb8\x5b\x9e\x4a\xca\x49\xbc\x57\xe3\x53\xe6\x9a\x9c\x9a\x9d\x57\x82\x9a\x9e\x9a\x9f\x9a\xa0\x9a\xa1\x9a\xa2\x9a\xa3\x9a\xa4\x9a\xa5\x9a\xa6\x9a\xa7\x9a\xa8\x9a\xa9\x9a\xaa\x9a\xab\x4a\xf4\x9a\xac\x56\x60\x4e\xde\x9a\xad\x9a\xae\x9a\xaf", /* 6b80 */ "\x9a\xb0\x65\x83\x65\x84\x59\x8b\x65\x86\x9a\xb1\x4a\xf8\x65\x85\x9a\xb2\x59\x53\x55\xe1\x49\xcf\x9a\xb3\x65\x89\x9a\xb4\x9a\xb5\x9a\xb6\x9a\xb7\x65\x87\x65\x88\x9a\xb8\x9a\xb9\x5b\xb2\x9a\xba\x9a\xbb\x9a\xbc\x65\x8a\x65\x8b\x9a\xbd\x9a\xbe\x9a\xbf\x9a\xc0\x9a\xc1\x65\x8c\x9a\xc2\x9a\xc3\x9a\xc4\x9a\xc5\x9a\xc6\x9a\xc7\x9a\xc8\x9a\xc9\x65\x8d\x9a\xca\x9a\xcb\x9a\xcc\x9a\xcd\x9a\xce\x9a\xcf\x9a\xd0\x9a\xd1\x66\xae\x53\x59\x4b\xcd\x9a\xd2\x59\xf2\x9a\xd3\x9a\xd4\x9a\xd5\x9a\xd6\x9a\xd7\x9a\xd8\x9a\xd9\x4b\x8f\x9a\xda\x4e\x79\x66\xb0\x9a\xdb\x9a\xdc\x59\xe2\x9a\xdd\x9a\xde\x9a\xdf\x9a\xe0\x9a\xe1\x57\xe2\x9a\xe2\x52\xb7\x9a\xe3\x52\x5f\x9a\xe4\x9a\xe5\x4b\xbd\x5c\xb8\x49\x68\x49\x6f\x49\x71\x53\x9f\x9a\xe6\x49\x70\x9a\xe7\x52\x4b\x9a\xe8\x9a\xe9\x9a\xea\x9a\xeb\x9a\xec\x5b\x51\x9a\xed\x9a\xee\x9a\xef\x9a\xf0\x9a\xf1\x9a\xf2\x9a\xf3\x9a\xf4\x66\x44\x4d\xc0\x9a\xf5\x9a\xf6\x9a\xf7\x56\xb9\x9a\xf8\x9a\xf9\x9a\xfa\x66\x45\x9a\xfb\x66\x47\x9a\xfc\x9a\xfd\x9b\x41\x66\x48\x9b\x42\x9b\x43\x9b\x44\x66\x46\x9b\x45\x9b\x46", /* 6c00 */ "\x9b\x47\x9b\x48\x9b\x49\x9b\x4a\x9b\x4b\x66\x49\x66\x4b\x66\x4a\x9b\x4c\x9b\x4d\x9b\x4e\x9b\x4f\x9b\x50\x66\x4c\x9b\x51\x55\xce\x5c\xb4\x52\x92\x9b\x52\x52\x45\x53\xf7\x66\x4d\x52\xc9\x9b\x53\x66\x4e\x66\x4f\x66\x50\x4c\x75\x9b\x54\x9b\x55\x9b\x56\x4c\x9b\x9b\x57\x66\x51\x54\x83\x9b\x58\x66\x53\x9b\x59\x4d\xa3\x59\x96\x48\xb0\x66\x52\x66\x54\x9b\x5a\x9b\x5b\x9b\x5c\x4b\x4a\x51\xc7\x54\x89\x9b\x5d\x66\x55\x9b\x5e\x56\x4e\x62\x7f\x9b\x5f\x9b\x60\x5a\x60\x9b\x61\x9b\x62\x9b\x63\x9b\x64\x5d\x7b\x9b\x65\x9b\x66\x57\x41\x5b\xac\x54\x94\x9b\x67\x9b\x68\x9b\x69\x5d\x81\x4e\x84\x9b\x6a\x4d\xb9\x62\x83\x9b\x6b\x9b\x6c\x9b\x6d\x9b\x6e\x9b\x6f\x58\x4b\x9b\x70\x9b\x71\x9b\x72\x62\x81\x55\x67\x9b\x73\x4d\xb8\x9b\x74\x9b\x75\x9b\x76\x59\x54\x62\x82\x54\xe9\x4d\x4f\x4f\x4d\x4a\x78\x57\xda\x9b\x77\x9b\x78\x56\xbf\x9b\x79\x9b\x7a\x9b\x7b\x62\x89\x62\x8a\x57\x95\x9b\x7c\x9b\x7d\x9b\x7e\x9b\x7f\x9b\x81\x56\xac\x9b\x82\x4e\xb2\x9b\x83\x62\x8b\x9b\x84\x62\x8c\x9b\x85\x9b\x86\x58\xd9\x9b\x87\x9b\x88\x9b\x89\x53\xfa\x4c\x7a\x9b\x8a", /* 6c80 */ "\x9b\x8b\x54\x7f\x59\xc9\x57\xd5\x9b\x8c\x62\x85\x62\x8d\x9b\x8d\x55\x93\x4a\x61\x9b\x8e\x9b\x8f\x62\x88\x9b\x90\x9b\x91\x53\xe2\x62\x86\x9b\x92\x9b\x93\x67\x53\x62\x87\x9b\x94\x9b\x95\x9b\x96\x9b\x97\x55\x53\x9b\x98\x53\x87\x9b\x99\x9b\x9a\x9b\x9b\x4d\x55\x9b\x9c\x52\x5b\x9b\x9d\x62\x84\x53\x5d\x51\x44\x51\xd8\x49\xd6\x9b\x9e\x62\x8e\x4e\x46\x52\xac\x9b\x9f\x62\x91\x4f\xd9\x9b\xa0\x9b\xa1\x62\x9c\x62\x96\x4d\xd2\x9b\xa2\x9b\xa3\x9b\xa4\x9b\xa5\x4c\x70\x5a\x6d\x9b\xa6\x5b\xcd\x5b\x73\x4d\x61\x5b\x54\x59\x78\x9b\xa7\x9b\xa8\x9b\xa9\x9b\xaa\x58\xb8\x54\x97\x9b\xab\x9b\xac\x9b\xad\x54\xa9\x49\xb3\x9b\xae\x52\x7a\x9b\xaf\x9b\xb0\x9b\xb1\x62\x8f\x9b\xb2\x9b\xb3\x62\x9d\x62\x90\x4c\x48\x62\x98\x62\x95\x9b\xb4\x9b\xb5\x9b\xb6\x4c\x5a\x9b\xb7\x9b\xb8\x53\x42\x9b\xb9\x62\x97\x53\x7d\x49\xa7\x53\xfb\x9b\xba\x52\xdf\x9b\xbb\x9b\xbc\x5c\x42\x9b\xbd\x50\xe0\x62\x9a\x9b\xbe\x9b\xbf\x62\x9b\x62\x9e\x56\xa8\x62\x94\x9b\xc0\x5a\x5e\x9b\xc1\x49\x63\x67\x54\x62\x92\x62\x93\x9b\xc2\x62\x99\x58\xb9\x53\xc2\x5a\xf2\x62\x9f\x9b\xc3", /* 6d00 */ "\x9b\xc4\x4f\x81\x9b\xc5\x9b\xc6\x62\xa6\x9b\xc7\x9b\xc8\x62\xa5\x9b\xc9\x9b\xca\x9b\xcb\x59\x94\x62\xa2\x9b\xcc\x62\xa8\x9b\xcd\x9b\xce\x9b\xcf\x54\xf6\x9b\xd0\x9b\xd1\x9b\xd2\x9b\xd3\x58\x54\x9b\xd4\x62\xa7\x62\xad\x51\xe4\x9b\xd5\x9b\xd6\x4b\xb3\x9b\xd7\x9b\xd8\x9b\xd9\x9b\xda\x9b\xdb\x9b\xdc\x4f\x93\x9b\xdd\x62\xa1\x9b\xde\x9b\xdf\x4d\xe8\x62\xa9\x9b\xe0\x9b\xe1\x62\xab\x9b\xe2\x9b\xe3\x4b\xfc\x5b\xdd\x62\xb1\x9b\xe4\x62\xac\x9b\xe5\x9b\xe6\x9b\xe7\x62\xa0\x9b\xe8\x4e\x8f\x57\x7d\x54\x42\x53\x69\x9b\xe9\x9b\xea\x51\x98\x9b\xeb\x62\xa3\x9b\xec\x54\x53\x4f\x4c\x4f\x5d\x62\xa4\x9b\xed\x5c\x67\x49\xe1\x9b\xee\x62\xaa\x4e\xc2\x62\xae\x9b\xef\x4e\x8c\x62\xaf\x53\x48\x62\xb0\x9b\xf0\x9b\xf1\x9b\xf2\x9b\xf3\x5b\x84\x50\x43\x9b\xf4\x62\xb9\x9b\xf5\x62\xb6\x9b\xf6\x62\xba\x9b\xf7\x9b\xf8\x62\xbc\x9b\xf9\x9b\xfa\x53\xd5\x9b\xfb\x9b\xfc\x4d\xc5\x50\xca\x9b\xfd\x9c\x41\x9c\x42\x4c\xa0\x62\xb3\x9c\x43\x9c\x44\x9c\x45\x9c\x46\x5a\xa0\x9c\x47\x9c\x48\x4d\xa2\x4f\x9f\x9c\x49\x9c\x4a\x9c\x4b\x62\xbb\x9c\x4c\x9c\x4d\x9c\x4e", /* 6d80 */ "\x9c\x4f\x9c\x50\x57\x5f\x9c\x51\x9c\x52\x52\xf8\x9c\x53\x9c\x54\x58\x9c\x55\x87\x9c\x55\x9c\x56\x5a\x5f\x9c\x57\x58\x71\x9c\x58\x9c\x59\x62\xb2\x9c\x5a\x62\xb7\x62\xb8\x56\xe8\x9c\x5b\x9c\x5c\x9c\x5d\x9c\x5e\x9c\x5f\x56\xcd\x9c\x60\x50\xd3\x62\xb4\x51\x50\x62\xb5\x57\xcf\x9c\x61\x4e\x61\x4b\x73\x9c\x62\x54\xf2\x4f\x47\x5b\x67\x55\x4c\x4c\xa1\x62\xc9\x9c\x63\x9c\x64\x62\xcb\x59\x64\x9c\x65\x9c\x66\x59\xb9\x9c\x67\x9c\x68\x4d\xac\x9c\x69\x9c\x6a\x4d\xd3\x9c\x6b\x9c\x6c\x9c\x6d\x9c\x6e\x9c\x6f\x9c\x70\x62\xc2\x4b\x8e\x9c\x71\x9c\x72\x9c\x73\x5c\x6d\x62\xbf\x58\x9e\x62\xbe\x9c\x74\x9c\x75\x9c\x76\x51\x7c\x56\xc9\x9c\x77\x9c\x78\x9c\x79\x9c\x7a\x55\xe6\x9c\x7b\x9c\x7c\x9c\x7d\x9c\x7e\x52\xd6\x9c\x7f\x56\xd3\x62\xc7\x9c\x81\x9c\x82\x9c\x83\x62\xc6\x62\xc0\x9c\x84\x62\xc3\x4b\x4d\x9c\x85\x9c\x86\x5a\x79\x9c\x87\x62\xc5\x9c\x88\x9c\x89\x9c\x8a\x9c\x8b\x59\xf8\x4a\xe2\x9c\x8c\x4e\x54\x9c\x8d\x9c\x8e\x55\x8f\x9c\x8f\x4a\xbd\x9c\x90\x9c\x91\x9c\x92\x4e\x8d\x9c\x93\x59\x6d\x9c\x94\x56\xec\x67\x55\x9c\x95\x9c\x96\x9c\x97", /* 6e00 */ "\x9c\x98\x9c\x99\x9c\x9a\x9c\x9b\x9c\x9c\x54\x86\x9c\x9d\x9c\x9e\x9c\x9f\x9c\xa0\x5a\xa7\x9c\xa1\x62\xca\x5c\x75\x62\xc1\x9c\xa2\x4f\x45\x62\xc4\x9c\xa3\x9c\xa4\x5a\x87\x9c\xa5\x62\xc8\x55\x99\x9c\xa6\x9c\xa7\x62\xbd\x9c\xa8\x9c\xa9\x5a\x86\x9c\xaa\x9c\xab\x54\x9f\x4b\xc8\x9c\xac\x5a\xfb\x49\xb2\x62\xd6\x9c\xad\x9c\xae\x9c\xaf\x57\xc1\x9c\xb0\x62\xcc\x9c\xb1\x57\xbb\x9c\xb2\x4c\xda\x9c\xb3\x9c\xb4\x62\xd5\x9c\xb5\x50\x6a\x9c\xb6\x9c\xb7\x9c\xb8\x5a\x6e\x9c\xb9\x52\x8d\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xbe\x9c\xbf\x9c\xc0\x9c\xc1\x53\x68\x62\xd7\x9c\xc2\x9c\xc3\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xc8\x9c\xc9\x57\x64\x62\xce\x9c\xca\x9c\xcb\x9c\xcc\x9c\xcd\x62\xd3\x62\xd4\x9c\xce\x4d\xfd\x9c\xcf\x58\x87\x9c\xd0\x9c\xd1\x5b\x5f\x9c\xd2\x9c\xd3\x9c\xd4\x62\xd1\x9c\xd5\x9c\xd6\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xda\x9c\xdb\x9c\xdc\x9c\xdd\x9c\xde\x9c\xdf\x62\xcf\x9c\xe0\x9c\xe1\x62\xcd\x9c\xe2\x9c\xe3\x9c\xe4\x9c\xe5\x9c\xe6\x9c\xe7\x9c\xe8\x9c\xe9\x9c\xea\x9c\xeb\x9c\xec\x9c\xed\x9c\xee\x9c\xef\x9c\xf0\x57\x86\x55\xa9", /* 6e80 */ "\x9c\xf1\x9c\xf2\x9c\xf3\x50\xa2\x9c\xf4\x4f\x46\x62\xd2\x9c\xf5\x9c\xf6\x4c\xc7\x9c\xf7\x9c\xf8\x9c\xf9\x9c\xfa\x9c\xfb\x62\xe6\x5a\xb3\x9c\xfc\x9c\xfd\x9d\x41\x9d\x42\x9d\x43\x9d\x44\x9d\x45\x62\xda\x9d\x46\x9d\x47\x9d\x48\x51\x90\x9d\x49\x9d\x4a\x62\xe8\x9d\x4b\x9d\x4c\x59\xe6\x9d\x4d\x9d\x4e\x62\xde\x9d\x4f\x62\xdf\x9d\x50\x9d\x51\x58\x4a\x9d\x52\x9d\x53\x9d\x54\x9d\x55\x56\x7d\x9d\x56\x62\xd9\x62\xd0\x9d\x57\x62\xe4\x9d\x58\x54\xdb\x62\xe2\x9d\x59\x9d\x5a\x52\xe6\x62\xe1\x9d\x5b\x62\xe0\x9d\x5c\x9d\x5d\x9d\x5e\x4a\x9d\x62\xe7\x9d\x5f\x9d\x60\x9d\x61\x9d\x62\x4b\x82\x9d\x63\x9d\x64\x9d\x65\x5c\x6c\x9d\x66\x9d\x67\x9d\x68\x62\xe5\x9d\x69\x4e\x4c\x9d\x6a\x5c\x72\x56\xce\x66\x99\x9d\x6b\x62\xe3\x9d\x6c\x9d\x6d\x4d\x97\x9d\x6e\x9d\x6f\x9d\x70\x5b\xcc\x62\xd8\x62\xdb\x51\xf9\x62\xdd\x9d\x71\x51\xca\x50\xc3\x51\xcf\x9d\x72\x49\x96\x56\xb1\x9d\x73\x9d\x74\x9d\x75\x9d\x76\x9d\x77\x9d\x78\x9d\x79\x9d\x7a\x9d\x7b\x9d\x7c\x4b\x6e\x9d\x7d\x9d\x7e\x9d\x7f\x9d\x81\x62\xee\x9d\x82\x9d\x83\x9d\x84\x9d\x85\x9d\x86\x9d\x87", /* 6f00 */ "\x9d\x88\x9d\x89\x53\xae\x9d\x8a\x9d\x8b\x9d\x8c\x53\xe0\x9d\x8d\x9d\x8e\x62\xf4\x9d\x8f\x9d\x90\x9d\x91\x9d\x92\x9d\x93\x51\xa8\x9d\x94\x9d\x95\x9d\x96\x50\xeb\x59\x7d\x62\xed\x9d\x97\x9d\x98\x9d\x99\x9d\x9a\x9d\x9b\x9d\x9c\x9d\x9d\x9d\x9e\x9d\x9f\x9d\xa0\x52\xad\x9d\xa1\x9d\xa2\x9d\xa3\x62\xec\x9d\xa4\x9d\xa5\x9d\xa6\x9d\xa7\x62\xf5\x62\xf3\x51\xfd\x9d\xa8\x62\xdc\x9d\xa9\x62\xef\x9d\xaa\x55\xfd\x9d\xab\x5b\x64\x9d\xac\x9d\xad\x62\xf0\x9d\xae\x9d\xaf\x9d\xb0\x9d\xb1\x9d\xb2\x9d\xb3\x9d\xb4\x59\x9b\x9d\xb5\x9d\xb6\x9d\xb7\x9d\xb8\x9d\xb9\x9d\xba\x9d\xbb\x62\xea\x62\xeb\x9d\xbc\x9d\xbd\x9d\xbe\x62\xf1\x9d\xbf\x57\xaa\x9d\xc0\x9d\xc1\x9d\xc2\x9d\xc3\x9d\xc4\x9d\xc5\x9d\xc6\x9d\xc7\x9d\xc8\x9d\xc9\x53\x6b\x9d\xca\x9d\xcb\x9d\xcc\x54\x51\x9d\xcd\x51\xb9\x9d\xce\x9d\xcf\x9d\xd0\x62\xe9\x9d\xd1\x9d\xd2\x9d\xd3\x51\x6a\x9d\xd4\x9d\xd5\x9d\xd6\x9d\xd7\x9d\xd8\x9d\xd9\x56\xb5\x4a\x51\x9d\xda\x9d\xdb\x9d\xdc\x62\xfa\x9d\xdd\x62\xf2\x9d\xde\x9d\xdf\x9d\xe0\x62\xf9\x9d\xe1\x62\xfc\x9d\xe2\x62\xfb\x9d\xe3\x9d\xe4\x9d\xe5", /* 6f80 */ "\x9d\xe6\x9d\xe7\x9d\xe8\x9d\xe9\x4a\x6e\x9d\xea\x9d\xeb\x9d\xec\x4a\x5a\x62\xf6\x9d\xed\x9d\xee\x62\xf8\x62\xf7\x53\x8d\x9d\xef\x9d\xf0\x9d\xf1\x9d\xf2\x9d\xf3\x9d\xf4\x9d\xf5\x9d\xf6\x9d\xf7\x9d\xf8\x9d\xf9\x9d\xfa\x9d\xfb\x50\xbc\x9d\xfc\x9d\xfd\x9e\x41\x9e\x42\x5a\xe7\x9e\x43\x9e\x44\x9e\x45\x9e\x46\x9e\x47\x63\x42\x9e\x48\x9e\x49\x9e\x4a\x9e\x4b\x9e\x4c\x9e\x4d\x9e\x4e\x9e\x4f\x9e\x50\x9e\x51\x9e\x52\x48\xc3\x9e\x53\x9e\x54\x63\x44\x9e\x55\x9e\x56\x63\x43\x9e\x57\x9e\x58\x9e\x59\x9e\x5a\x9e\x5b\x9e\x5c\x4e\xa3\x9e\x5d\x63\x45\x9e\x5e\x9e\x5f\x9e\x60\x9e\x61\x9e\x62\x9e\x63\x63\x41\x9e\x64\x9e\x65\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x62\xfd\x49\x95\x9e\x6b\x9e\x6c\x9e\x6d\x9e\x6e\x9e\x6f\x9e\x70\x9e\x71\x9e\x72\x9e\x73\x9e\x74\x9e\x75\x63\x48\x9e\x76\x63\x49\x63\x46\x9e\x77\x9e\x78\x9e\x79\x9e\x7a\x9e\x7b\x9e\x7c\x9e\x7d\x9e\x7e\x9e\x7f\x9e\x81\x9e\x82\x9e\x83\x63\x47\x63\x4a\x9e\x84\x9e\x85\x9e\x86\x9e\x87\x9e\x88\x9e\x89\x9e\x8a\x9e\x8b\x9e\x8c\x9e\x8d\x9e\x8e\x9e\x8f\x9e\x90\x9e\x91\x9e\x92\x9e\x93", /* 7000 */ "\x9e\x94\x9e\x95\x9e\x96\x9e\x97\x9e\x98\x9e\x99\x9e\x9a\x9e\x9b\x9e\x9c\x9e\x9d\x9e\x9e\x9e\x9f\x9e\xa0\x9e\xa1\x9e\xa2\x9e\xa3\x9e\xa4\x53\xd8\x9e\xa5\x9e\xa6\x9e\xa7\x9e\xa8\x9e\xa9\x9e\xaa\x9e\xab\x9e\xac\x63\x4b\x63\x4d\x9e\xad\x9e\xae\x9e\xaf\x9e\xb0\x9e\xb1\x9e\xb2\x9e\xb3\x63\x4c\x9e\xb4\x9e\xb5\x9e\xb6\x9e\xb7\x9e\xb8\x9e\xb9\x9e\xba\x9e\xbb\x9e\xbc\x9e\xbd\x9e\xbe\x9e\xbf\x9e\xc0\x9e\xc1\x9e\xc2\x9e\xc3\x9e\xc4\x63\x4f\x9e\xc5\x9e\xc6\x9e\xc7\x63\x4e\x9e\xc8\x9e\xc9\x9e\xca\x9e\xcb\x9e\xcc\x9e\xcd\x9e\xce\x9e\xcf\x9e\xd0\x9e\xd1\x9e\xd2\x9e\xd3\x9e\xd4\x9e\xd5\x9e\xd6\x9e\xd7\x9e\xd8\x9e\xd9\x4d\x81\x9e\xda\x9e\xdb\x63\x50\x9e\xdc\x9e\xdd\x9e\xde\x9e\xdf\x9e\xe0\x9e\xe1\x9e\xe2\x9e\xe3\x9e\xe4\x9e\xe5\x9e\xe6\x9e\xe7\x9e\xe8\x9e\xe9\x63\x51\x9e\xea\x9e\xeb\x9e\xec\x9e\xed\x9e\xee\x9e\xef\x9e\xf0\x9e\xf1\x9e\xf2\x9e\xf3\x9e\xf4\x9e\xf5\x4e\x91\x66\xe0\x52\x91\x9e\xf6\x4b\x66\x4e\x72\x9e\xf7\x9e\xf8\x9e\xf9\x9e\xfa\x51\x8a\x5a\xed\x9e\xfb\x4f\xc3\x9e\xfc\x9e\xfd\x9f\x41\x5c\x66\x9f\x42\x5a\xd5\x49\xd2", /* 7080 */ "\x66\xbd\x9f\x43\x9f\x44\x9f\x45\x9f\x46\x65\xc0\x9f\x47\x9f\x48\x9f\x49\x51\xae\x4a\xb5\x9f\x4a\x9f\x4b\x9f\x4c\x59\x77\x9f\x4d\x9f\x4e\x9f\x4f\x4a\x54\x9f\x50\x54\xb1\x50\x5b\x66\xbf\x9f\x51\x9f\x52\x5b\xca\x9f\x53\x9f\x54\x66\xbe\x66\xc0\x9f\x55\x9f\x56\x9f\x57\x9f\x58\x9f\x59\x9f\x5a\x9f\x5b\x9f\x5c\x9f\x5d\x9f\x5e\x9f\x5f\x9f\x60\x9f\x61\x66\xc4\x4f\xe5\x56\xbe\x53\x7a\x4f\xbb\x9f\x62\x66\xc5\x9f\x63\x49\x9f\x9f\x64\x9f\x65\x9f\x66\x66\xc3\x5b\x48\x4b\x84\x9f\x67\x66\xc1\x51\x56\x4a\x84\x9f\x68\x9f\x69\x66\xc2\x56\x58\x50\xc2\x56\xfd\x9f\x6a\x9f\x6b\x9f\x6c\x9f\x6d\x51\x72\x9f\x6e\x66\xc7\x9f\x6f\x9f\x70\x9f\x71\x9f\x72\x9f\x73\x9f\x74\x9f\x75\x9f\x76\x9f\x77\x9f\x78\x9f\x79\x9f\x7a\x9f\x7b\x4d\xe5\x50\xd2\x9f\x7c\x5b\xf1\x9f\x7d\x9f\x7e\x9f\x7f\x59\x6c\x9f\x81\x9f\x82\x9f\x83\x9f\x84\x50\x5e\x9f\x85\x4c\x53\x55\x75\x66\xc6\x4e\x83\x9f\x86\x56\xcb\x4f\x9e\x54\xc7\x9f\x87\x58\x49\x9f\x88\x9f\x89\x9f\x8a\x9f\x8b\x9f\x8c\x9f\x8d\x9f\x8e\x57\x8a\x9f\x8f\x53\x8c\x9f\x90\x9f\x91\x9f\x92\x4c\x8a\x9f\x93\x9f\x94", /* 7100 */ "\x9f\x95\x9f\x96\x9f\x97\x9f\x98\x9f\x99\x9f\x9a\x9f\x9b\x9f\x9c\x9f\x9d\x59\x69\x4d\xb7\x9f\x9e\x9f\x9f\x9f\xa0\x9f\xa1\x9f\xa2\x66\xc8\x9f\xa3\x9f\xa4\x66\xc9\x9f\xa5\x4e\x60\x66\xca\x9f\xa6\x66\xe1\x49\x5a\x4c\x79\x9f\xa7\x9f\xa8\x9f\xa9\x9f\xaa\x9f\xab\x9f\xac\x9f\xad\x9f\xae\x9f\xaf\x9f\xb0\x9f\xb1\x4f\x59\x9f\xb2\x9f\xb3\x9f\xb4\x9f\xb5\x9f\xb6\x9f\xb7\x9f\xb8\x9f\xb9\x66\xcb\x59\x87\x66\xcc\x9f\xba\x9f\xbb\x9f\xbc\x9f\xbd\x54\xba\x9f\xbe\x9f\xbf\x9f\xc0\x9f\xc1\x9f\xc2\x9f\xc3\x9f\xc4\x9f\xc5\x9f\xc6\x9f\xc7\x9f\xc8\x9f\xc9\x9f\xca\x9f\xcb\x66\xd0\x9f\xcc\x9f\xcd\x9f\xce\x9f\xcf\x66\xd2\x9f\xd0\x4e\x6d\x9f\xd1\x4e\xe4\x9f\xd2\x9f\xd3\x9f\xd4\x9f\xd5\x9f\xd6\x9f\xd7\x9f\xd8\x9f\xd9\x9f\xda\x9f\xdb\x9f\xdc\x9f\xdd\x9f\xde\x66\xce\x9f\xdf\x55\x57\x9f\xe0\x9f\xe1\x9f\xe2\x9f\xe3\x9f\xe4\x52\x5a\x9f\xe5\x66\xe2\x5b\x75\x66\xcf\x9f\xe6\x9f\xe7\x9f\xe8\x9f\xe9\x9f\xea\x5b\xf2\x9f\xeb\x9f\xec\x9f\xed\x66\xd1\x66\xcd\x9f\xee\x9f\xef\x9f\xf0\x9f\xf1\x66\xd3\x9f\xf2\x66\xd4\x9f\xf3\x9f\xf4\x55\x5f\x9f\xf5\x9f\xf6", /* 7180 */ "\x9f\xf7\x9f\xf8\x9f\xf9\x9f\xfa\x58\x48\x9f\xfb\x9f\xfc\x9f\xfd\xa0\x41\xa0\x42\x58\xdb\xa0\x43\xa0\x44\xa0\x45\xa0\x46\x59\x4c\xa0\x47\xa0\x48\xa0\x49\xa0\x4a\x54\xda\xa0\x4b\xa0\x4c\xa0\x4d\x66\xd5\x57\xf4\xa0\x4e\xa0\x4f\xa0\x50\xa0\x51\xa0\x52\x55\xeb\x66\xd9\xa0\x53\xa0\x54\xa0\x55\xa0\x56\xa0\x57\xa0\x58\xa0\x59\x66\xd8\xa0\x5a\xa0\x5b\xa0\x5c\x48\xbd\xa0\x5d\xa0\x5e\xa0\x5f\xa0\x60\xa0\x61\xa0\x62\x66\xd6\xa0\x63\x66\xd7\xa0\x64\xa0\x65\xa0\x66\x66\xe3\xa0\x67\xa0\x68\xa0\x69\xa0\x6a\xa0\x6b\xa0\x6c\xa0\x6d\xa0\x6e\xa0\x6f\x54\xbb\xa0\x70\xa0\x71\xa0\x72\xa0\x73\xa0\x74\xa0\x75\xa0\x76\xa0\x77\xa0\x78\xa0\x79\x51\x67\xa0\x7a\xa0\x7b\xa0\x7c\xa0\x7d\xa0\x7e\x66\xdb\x59\x81\xa0\x7f\xa0\x81\xa0\x82\xa0\x83\xa0\x84\xa0\x85\xa0\x86\xa0\x87\xa0\x88\xa0\x89\x66\xda\xa0\x8a\xa0\x8b\xa0\x8c\xa0\x8d\x5a\xee\xa0\x8e\x66\xdc\xa0\x8f\xa0\x90\xa0\x91\xa0\x92\xa0\x93\xa0\x94\x5e\x66\xa0\x95\xa0\x96\xa0\x97\xa0\x98\xa0\x99\xa0\x9a\xa0\x9b\xa0\x9c\xa0\x9d\xa0\x9e\x66\xdd\xa0\x9f\xa0\xa0\xa0\xa1\xa0\xa2\xa0\xa3\xa0\xa4", /* 7200 */ "\xa0\xa5\xa0\xa6\xa0\xa7\xa0\xa8\xa0\xa9\xa0\xaa\x49\x4c\xa0\xab\xa0\xac\xa0\xad\xa0\xae\xa0\xaf\xa0\xb0\xa0\xb1\xa0\xb2\xa0\xb3\xa0\xb4\xa0\xb5\xa0\xb6\xa0\xb7\xa0\xb8\xa0\xb9\xa0\xba\xa0\xbb\xa0\xbc\xa0\xbd\xa0\xbe\xa0\xbf\xa0\xc0\x66\xde\xa0\xc1\xa0\xc2\xa0\xc3\xa0\xc4\xa0\xc5\xa0\xc6\xa0\xc7\xa0\xc8\xa0\xc9\xa0\xca\x66\xdf\xa0\xcb\x5c\x46\xa0\xcc\x53\x60\xa0\xcd\xa0\xce\xa0\xcf\x66\x5c\x48\xad\xa0\xd0\xa0\xd1\xa0\xd2\x4f\xf3\x4c\xb7\x59\xae\x48\xd5\x4b\x9a\xa0\xd3\x5c\xb2\xa0\xd4\x56\x4c\xa0\xd5\x62\x7d\xa0\xd6\xa0\xd7\xa0\xd8\xa0\xd9\xa0\xda\xa0\xdb\xa0\xdc\x53\xab\x48\xe5\xa0\xdd\xa0\xde\xa0\xdf\x53\x66\x66\x59\xa0\xe0\xa0\xe1\xa0\xe2\xa0\xe3\x66\x5a\xa0\xe4\xa0\xe5\xa0\xe6\x66\x5b\xa0\xe7\xa0\xe8\x59\x60\xa0\xe9\x53\x43\xa0\xea\x65\xf1\xa0\xeb\x52\xb1\xa0\xec\x52\xb4\x50\xcd\xa0\xed\xa0\xee\xa0\xef\x65\xf2\x52\xc0\xa0\xf0\x57\xee\xa0\xf1\xa0\xf2\xa0\xf3\xa0\xf4\x65\xef\x65\xf3\xa0\xf5\xa0\xf6\x55\x9d\xa0\xf7\xa0\xf8\x54\x43\xa0\xf9\xa0\xfa\xa0\xfb\x56\xd7\x57\xfd\xa0\xfc\xa0\xfd\xa1\x41\x65\xf4\x65\xf5", /* 7280 */ "\x58\x4c\x50\xe6\xa1\x42\xa1\x43\x65\xf6\xa1\x44\xa1\x45\xa1\x46\xa1\x47\xa1\x48\x4b\xbe\x65\xf7\xa1\x49\x65\xf8\xa1\x4a\x65\xf9\xa1\x4b\xa1\x4c\x65\xfa\xa1\x4d\xa1\x4e\xa1\x4f\xa1\x50\xa1\x51\xa1\x52\xa1\x53\xa1\x54\xa1\x55\xa1\x56\xa1\x57\xa1\x58\x65\xf0\xa1\x59\xa1\x5a\xa1\x5b\xa1\x5c\xa1\x5d\xa1\x5e\xa1\x5f\xa1\x60\xa1\x61\xa1\x62\xa1\x63\xa1\x64\x54\xad\x61\x8c\xa1\x65\x4c\x58\x61\x8d\xa1\x66\xa1\x67\xa1\x68\x61\x8e\xa1\x69\x5c\x54\x61\x8f\x61\x90\x5a\x6c\xa1\x6a\xa1\x6b\xa1\x6c\xa1\x6d\xa1\x6e\xa1\x6f\xa1\x70\x61\x92\x50\x92\x61\x91\x4b\x72\xa1\x71\xa1\x72\xa1\x73\x49\x57\xa1\x74\xa1\x75\xa1\x76\xa1\x77\x61\x94\x61\x93\xa1\x78\x4d\xfb\xa1\x79\x61\x95\xa1\x7a\xa1\x7b\xa1\x7c\xa1\x7d\x4d\x57\xa1\x7e\x4f\xd0\xa1\x7f\xa1\x81\xa1\x82\xa1\x83\x52\xfb\xa1\x84\x4d\xdc\x4f\x66\xa1\x85\xa1\x86\xa1\x87\xa1\x88\xa1\x89\xa1\x8a\x61\x96\x61\x98\xa1\x8b\xa1\x8c\x4b\xbf\x58\x61\x55\xa7\x61\x97\x5b\x99\x5a\x9d\x61\x99\x61\x9d\x61\x9a\xa1\x8d\xa1\x8e\x61\x9b\x50\xe9\xa1\x8f\x61\x9f\x61\xa0\x50\xc6\xa1\x90\xa1\x91\xa1\x92", /* 7300 */ "\xa1\x93\x61\x9c\xa1\x94\x61\x9e\xa1\x95\xa1\x96\xa1\x97\xa1\x98\xa1\x99\xa1\x9a\x61\xa4\xa1\x9b\xa1\x9c\xa1\x9d\x51\x74\xa1\x9e\xa1\x9f\xa1\xa0\xa1\xa1\x61\xa2\xa1\xa2\x61\xa7\x49\xfd\x61\xa1\xa1\xa3\xa1\xa4\xa1\xa5\x52\x6d\x49\xc1\x61\xa6\x61\xa5\xa1\xa6\xa1\xa7\x61\xa3\x61\xa8\xa1\xa8\xa1\xa9\x61\xaa\xa1\xaa\xa1\xab\xa1\xac\x58\xc8\x5b\xec\x52\x48\x61\xab\xa1\xad\x58\x77\xa1\xae\xa1\xaf\x61\xad\xa1\xb0\xa1\xb1\x4d\xee\xa1\xb2\xa1\xb3\x65\x81\x61\xac\x61\xa9\xa1\xb4\xa1\xb5\xa1\xb6\xa1\xb7\x4e\x4b\x5a\xb2\xa1\xb8\xa1\xb9\xa1\xba\xa1\xbb\xa1\xbc\xa1\xbd\xa1\xbe\xa1\xbf\xa1\xc0\xa1\xc1\xa1\xc2\xa1\xc3\xa1\xc4\x61\xaf\xa1\xc5\xa1\xc6\x61\xae\xa1\xc7\x65\x82\xa1\xc8\xa1\xc9\xa1\xca\xa1\xcb\x61\xb0\xa1\xcc\xa1\xcd\xa1\xce\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xd2\xa1\xd3\x61\xb1\xa1\xd4\xa1\xd5\xa1\xd6\xa1\xd7\xa1\xd8\xa1\xd9\xa1\xda\xa1\xdb\xa1\xdc\xa1\xdd\xa1\xde\x61\xb2\x56\xa0\xa1\xdf\x61\xb3\xa1\xe0\xa1\xe1\xa1\xe2\xa1\xe3\xa1\xe4\xa1\xe5\xa1\xe6\xa1\xe7\xa1\xe8\xa1\xe9\xa1\xea\xa1\xeb\xa1\xec\xa1\xed\x61\xb4\xa1\xee", /* 7380 */ "\xa1\xef\xa1\xf0\xa1\xf1\xa1\xf2\x58\xfd\xa1\xf3\xa1\xf4\x51\xc9\xa1\xf5\x5a\x92\xa1\xf6\x57\x96\xa1\xf7\xa1\xf8\x64\x81\xa1\xf9\xa1\xfa\x64\x82\xa1\xfb\xa1\xfc\xa1\xfd\xa2\x41\x4f\xc0\xa2\x42\xa2\x43\xa2\x44\xa2\x45\x51\xe9\xa2\x46\xa2\x47\xa2\x48\x64\x85\xa2\x49\xa2\x4a\x64\x84\xa2\x4b\xa2\x4c\xa2\x4d\xa2\x4e\xa2\x4f\xa2\x50\x57\x87\xa2\x51\x52\x55\xa2\x52\xa2\x53\x64\x83\x4e\x57\x58\x76\xa2\x54\x51\x82\x64\x8a\xa2\x55\xa2\x56\xa2\x57\x64\x89\xa2\x58\xa2\x59\x64\x95\x49\xa2\xa2\x5a\xa2\x5b\xa2\x5c\xa2\x5d\x64\x8b\xa2\x5e\x64\x87\xa2\x5f\xa2\x60\xa2\x61\xa2\x62\xa2\x63\x64\x8d\x64\x8c\x55\x5a\xa2\x64\xa2\x65\x5b\x85\xa2\x66\x64\x86\x4c\x49\x64\x88\xa2\x67\xa2\x68\xa2\x69\xa2\x6a\xa2\x6b\xa2\x6c\xa2\x6d\x64\x8f\xa2\x6e\xa2\x6f\xa2\x70\xa2\x71\x64\x94\xa2\x72\x5b\xe8\xa2\x73\xa2\x74\xa2\x75\xa2\x76\x64\x8e\xa2\x77\x64\x93\xa2\x78\x64\x92\xa2\x79\xa2\x7a\xa2\x7b\x48\xdf\xa2\x7c\xa2\x7d\xa2\x7e\xa2\x7f\x64\x96\xa2\x81\xa2\x82\xa2\x83\xa2\x84\xa2\x85\xa2\x86\xa2\x87\xa2\x88\xa2\x89\xa2\x8a\xa2\x8b\xa2\x8c\xa2\x8d", /* 7400 */ "\xa2\x8e\xa2\x8f\xa2\x90\x54\x93\xa2\x91\x50\xc4\x50\xec\xa2\x92\xa2\x93\x51\x91\x64\x91\xa2\x94\xa2\x95\xa2\x96\xa2\x97\x64\x97\x56\x97\xa2\x98\xa2\x99\xa2\x9a\xa2\x9b\xa2\x9c\xa2\x9d\xa2\x9e\xa2\x9f\xa2\xa0\x64\xa1\x64\xa0\xa2\xa1\xa2\xa2\xa2\xa3\xa2\xa4\xa2\xa5\xa2\xa6\x5c\x61\xa2\xa7\xa2\xa8\x64\x9b\x64\x9a\xa2\xa9\x64\x9c\xa2\xaa\x64\x98\xa2\xab\x64\x9f\xa2\xac\x64\x9e\xa2\xad\x64\x9d\xa2\xae\xa2\xaf\x51\x75\x54\x79\x53\x9e\x53\x63\xa2\xb0\xa2\xb1\xa2\xb2\xa2\xb3\xa2\xb4\x54\x8e\xa2\xb5\xa2\xb6\xa2\xb7\xa2\xb8\x64\xa2\xa2\xb9\xa2\xba\xa2\xbb\xa2\xbc\xa2\xbd\xa2\xbe\xa2\xbf\xa2\xc0\xa2\xc1\xa2\xc2\xa2\xc3\xa2\xc4\xa2\xc5\xa2\xc6\xa2\xc7\xa2\xc8\xa2\xc9\xa2\xca\xa2\xcb\x64\xa5\xa2\xcc\x64\xa4\xa2\xcd\x64\xa6\x4d\xf6\x64\x99\x64\xa3\xa2\xce\x54\xef\x55\x4a\xa2\xcf\xa2\xd0\xa2\xd1\xa2\xd2\xa2\xd3\xa2\xd4\xa2\xd5\xa2\xd6\xa2\xd7\xa2\xd8\xa2\xd9\xa2\xda\xa2\xdb\x64\xa8\xa2\xdc\xa2\xdd\x4d\x86\xa2\xde\xa2\xdf\xa2\xe0\xa2\xe1\xa2\xe2\x59\x9f\x64\xa7\xa2\xe3\xa2\xe4\xa2\xe5\xa2\xe6\xa2\xe7\xa2\xe8\x64\xa9\xa2\xe9", /* 7480 */ "\x64\xac\x64\xad\xa2\xea\x51\x47\xa2\xeb\xa2\xec\xa2\xed\x64\xae\xa2\xee\xa2\xef\xa2\xf0\x64\xaf\xa2\xf1\xa2\xf2\x64\xab\xa2\xf3\x64\xb3\xa2\xf4\xa2\xf5\xa2\xf6\xa2\xf7\xa2\xf8\xa2\xf9\xa2\xfa\xa2\xfb\xa2\xfc\xa2\xfd\xa3\x41\x64\xaa\xa3\x42\x64\xb0\xa3\x43\xa3\x44\xa3\x45\xa3\x46\xa3\x47\xa3\x48\xa3\x49\xa3\x4a\x64\xb4\x64\xb1\x64\xb2\xa3\x4b\xa3\x4c\xa3\x4d\xa3\x4e\xa3\x4f\xa3\x50\xa3\x51\xa3\x52\xa3\x53\xa3\x54\xa3\x55\xa3\x56\xa3\x57\xa3\x58\xa3\x59\xa3\x5a\x64\xb6\xa3\x5b\xa3\x5c\xa3\x5d\xa3\x5e\xa3\x5f\xa3\x60\xa3\x61\xa3\x62\xa3\x63\xa3\x64\xa3\x65\xa3\x66\xa3\x67\xa3\x68\xa3\x69\xa3\x6a\xa3\x6b\xa3\x6c\xa3\x6d\xa3\x6e\xa3\x6f\xa3\x70\xa3\x71\x64\xb5\xa3\x72\xa3\x73\xa3\x74\xa3\x75\xa3\x76\xa3\x77\xa3\x78\xa3\x79\xa3\x7a\x4d\x6f\xa3\x7b\x68\xab\xa3\x7c\x68\xac\xa3\x7d\x53\xaf\x48\xe9\x54\xbe\xa3\x7e\x57\x7f\xa3\x7f\xa3\x81\xa3\x82\xa3\x83\xa3\x84\xa3\x85\xa3\x86\x57\xcc\x65\xb0\xa3\x87\xa3\x88\xa3\x89\xa3\x8a\x65\xb1\xa3\x8b\x53\xbe\x4a\xc8\xa3\x8c\xa3\x8d\xa3\x8e\xa3\x8f\xa3\x90\xa3\x91\xa3\x92\x65\xb2", /* 7500 */ "\xa3\x93\xa3\x94\xa3\x95\xa3\x96\x5b\x88\xa3\x97\xa3\x98\xa3\x99\xa3\x9a\xa3\x9b\xa3\x9c\xa3\x9d\xa3\x9e\x5f\x9a\xa3\x9f\x65\xb3\xa3\xa0\x65\xb4\xa3\xa1\x65\xb5\xa3\xa2\xa3\xa3\xa3\xa4\xa3\xa5\x4c\xc9\x60\x50\x55\x96\xa3\xa6\x56\xef\xa3\xa7\xa3\xa8\x55\x9b\xa3\xa9\xa3\xaa\xa3\xab\xa3\xac\xa3\xad\x55\x9c\xa3\xae\xa3\xaf\x5a\x63\x56\x46\xa3\xb0\x4c\xa5\x68\xad\x49\x62\xa3\xb1\x63\x58\x56\xee\x5a\x69\x4e\xd6\x55\x8b\xa3\xb2\x4b\x88\xa3\xb3\x52\xcf\x4b\x8a\xa3\xb4\x67\xad\x4e\x4d\xa3\xb5\xa3\xb6\x64\x7e\xa3\xb7\x67\xae\xa3\xb8\xa3\xb9\xa3\xba\xa3\xbb\x4a\x49\xa3\xbc\xa3\xbd\x67\xb1\xa3\xbe\xa3\xbf\x67\xb0\x4f\x88\xa3\xc0\x67\xaf\x57\xb6\xa3\xc1\xa3\xc2\xa3\xc3\xa3\xc4\x53\x6f\xa3\xc5\xa3\xc6\xa3\xc7\xa3\xc8\x51\x95\x5e\x6e\x67\xb2\x58\xf2\xa3\xc9\xa3\xca\xa3\xcb\xa3\xcc\xa3\xcd\xa3\xce\xa3\xcf\xa3\xd0\x51\xd3\x53\xe7\xa3\xd1\xa3\xd2\xa3\xd3\x4c\x4c\xa3\xd4\xa3\xd5\xa3\xd6\xa3\xd7\xa3\xd8\xa3\xd9\xa3\xda\x67\xb3\xa3\xdb\x4a\x8c\xa3\xdc\xa3\xdd\xa3\xde\x4e\x9c\x67\xb4\xa3\xdf\xa3\xe0\xa3\xe1\xa3\xe2\xa3\xe3\x64\x7c", /* 7580 */ "\xa3\xe4\xa3\xe5\xa3\xe6\x67\xb5\xa3\xe7\xa3\xe8\x4f\x4e\xa3\xe9\xa3\xea\xa3\xeb\xa3\xec\x69\x83\xa3\xed\xa3\xee\xa3\xef\x55\xe7\xa3\xf0\x59\xc8\x68\xd9\xa3\xf1\x68\xda\xa3\xf2\x68\xdb\x51\x66\xa3\xf3\x4c\xec\x4f\xcd\xa3\xf4\xa3\xf5\x68\xdd\xa3\xf6\x53\x51\x68\xdc\x59\x92\xa3\xf7\x68\xdf\x48\xcb\x4f\x8b\xa3\xf8\xa3\xf9\xa3\xfa\xa3\xfb\xa3\xfc\x59\xde\x68\xde\xa3\xfd\x4a\xae\x4c\x89\x68\xe5\x68\xe4\x53\xa2\x68\xe0\x68\xe1\x4a\xc2\xa4\x41\xa4\x42\x68\xe2\x5b\x8f\xa4\x43\xa4\x44\x56\xda\x4f\xd1\x4e\xb1\xa4\x45\xa4\x46\xa4\x47\x68\xe7\x68\xe6\x68\xe3\x49\xa0\xa4\x48\x5b\xa1\x5a\x58\x4f\xb6\x54\xab\xa4\x49\xa4\x4a\x68\xe9\xa4\x4b\xa4\x4c\xa4\x4d\xa4\x4e\x59\x98\xa4\x4f\x5b\xcb\x4d\xda\x68\xe8\xa4\x50\x4b\xba\xa4\x51\xa4\x52\x57\x54\xa4\x53\xa4\x54\x53\xa5\xa4\x55\xa4\x56\xa4\x57\x51\x41\x68\xea\x68\xed\xa4\x58\x68\xec\x68\xef\x68\xeb\xa4\x59\x4e\x5e\x68\xee\xa4\x5a\xa4\x5b\xa4\x5c\xa4\x5d\x56\xb4\x68\xf1\xa4\x5e\xa4\x5f\x4a\x75\xa4\x60\xa4\x61\xa4\x62\xa4\x63\x49\x74\xa4\x64\xa4\x65\x68\xf2\xa4\x66\xa4\x67\x68\xf3", /* 7600 */ "\x68\xf5\x4a\xe0\xa4\x68\x68\xf0\xa4\x69\x68\xf6\xa4\x6a\xa4\x6b\xa4\x6c\xa4\x6d\x68\xf9\xa4\x6e\x68\xf7\xa4\x6f\xa4\x70\xa4\x71\x68\xf4\xa4\x72\xa4\x73\xa4\x74\xa4\x75\x68\xfc\xa4\x76\x68\xf8\x68\xfb\x68\xfd\xa4\x77\x69\x41\xa4\x78\xa4\x79\xa4\x7a\x57\xc0\x69\x44\xa4\x7b\x69\x43\xa4\x7c\x51\x97\x68\xfa\x55\xdc\xa4\x7d\xa4\x7e\x4a\xf0\x49\x92\x56\xb0\xa4\x7f\x69\x46\xa4\x81\xa4\x82\x69\x47\xa4\x83\xa4\x84\x69\x4c\x5b\x6e\x69\x49\xa4\x85\xa4\x86\x54\xb2\xa4\x87\xa4\x88\xa4\x89\x69\x42\xa4\x8a\x69\x4b\x69\x48\x69\x45\xa4\x8b\xa4\x8c\x69\x4a\xa4\x8d\xa4\x8e\xa4\x8f\xa4\x90\xa4\x91\xa4\x92\xa4\x93\xa4\x94\x48\xa8\x69\x4d\xa4\x95\xa4\x96\xa4\x97\xa4\x98\xa4\x99\xa4\x9a\x69\x4f\xa4\x9b\x69\x51\xa4\x9c\xa4\x9d\xa4\x9e\xa4\x9f\xa4\xa0\x69\x50\xa4\xa1\x69\x4e\xa4\xa2\xa4\xa3\xa4\xa4\xa4\xa5\x59\x42\xa4\xa6\xa4\xa7\xa4\xa8\xa4\xa9\xa4\xaa\xa4\xab\xa4\xac\x69\x52\xa4\xad\xa4\xae\xa4\xaf\x69\x53\xa4\xb0\xa4\xb1\xa4\xb2\xa4\xb3\xa4\xb4\xa4\xb5\xa4\xb6\xa4\xb7\x4d\x90\xa4\xb8\xa4\xb9\x4b\x67\xa4\xba\x48\xd6\x48\xd8\xa4\xbb", /* 7680 */ "\xa4\xbc\xa4\xbd\x5a\xec\xa4\xbe\x4b\x64\xa4\xbf\x4f\x74\x4e\x6a\x68\xa6\xa4\xc0\xa4\xc1\x4c\xdd\xa4\xc2\xa4\xc3\x68\xa7\xa4\xc4\xa4\xc5\x48\xa7\xa4\xc6\x68\xa8\xa4\xc7\xa4\xc8\x57\x8f\xa4\xc9\xa4\xca\x68\xa9\xa4\xcb\xa4\xcc\xa4\xcd\xa4\xce\xa4\xcf\xa4\xd0\xa4\xd1\xa4\xd2\xa4\xd3\xa4\xd4\x68\xaa\xa4\xd5\xa4\xd6\xa4\xd7\xa4\xd8\xa4\xd9\xa4\xda\xa4\xdb\xa4\xdc\xa4\xdd\x53\xa3\xa4\xde\xa4\xdf\x5b\xe4\x69\x85\xa4\xe0\x69\x86\xa4\xe1\xa4\xe2\xa4\xe3\xa4\xe4\xa4\xe5\xa4\xe6\xa4\xe7\xa4\xe8\xa4\xe9\xa4\xea\x52\x94\xa4\xeb\xa4\xec\x5a\x7b\xa4\xed\xa4\xee\x5b\xd0\x53\x89\xa4\xef\x5a\x4f\xa4\xf0\x59\xe5\xa4\xf1\xa4\xf2\x67\xc0\x48\xba\x5b\x55\x59\x6e\x4e\xdf\x4d\xcf\xa4\xf3\x50\x99\xa4\xf4\x4c\xc6\x4b\x61\x53\x6c\xa4\xf5\xa4\xf6\x55\xa1\xa4\xf7\xa4\xf8\xa4\xf9\x52\x6b\xa4\xfa\xa4\xfb\xa4\xfc\xa4\xfd\xa5\x41\x67\xc1\xa5\x42\xa5\x43\xa5\x44\xa5\x45\xa5\x46\xa5\x47\xa5\x48\xa5\x49\x52\xbe\x4b\xa1\xa5\x4a\x67\x8d\x52\x44\xa5\x4b\x5b\xb0\xa5\x4c\xa5\x4d\xa5\x4e\x58\x81\x67\x90\xa5\x4f\xa5\x50\x53\x6e\xa5\x51\x4b\xdb\xa5\x52", /* 7700 */ "\xa5\x53\x55\xa0\xa5\x54\xa5\x55\x67\x8e\xa5\x56\xa5\x57\x67\x91\x67\x92\x52\x5c\xa5\x58\x50\x54\xa5\x59\x67\x8f\xa5\x5a\xa5\x5b\xa5\x5c\xa5\x5d\xa5\x5e\xa5\x5f\xa5\x60\xa5\x61\xa5\x62\xa5\x63\xa5\x64\x67\x95\x67\x93\xa5\x65\xa5\x66\xa5\x67\xa5\x68\x5b\x87\x52\x7f\xa5\x69\x67\x94\xa5\x6a\xa5\x6b\xa5\x6c\x67\x97\xa5\x6d\x5b\x43\x59\x43\xa5\x6e\xa5\x6f\xa5\x70\x67\x96\xa5\x71\x52\x70\xa5\x72\xa5\x73\xa5\x74\xa5\x75\xa5\x76\x67\x98\x50\x95\x4f\xeb\x67\x99\xa5\x77\x56\xf6\xa5\x78\x59\x7b\xa5\x79\xa5\x7a\xa5\x7b\x5c\x65\x5b\x97\xa5\x7c\x67\x9d\xa5\x7d\xa5\x7e\xa5\x7f\x67\x9c\xa5\x81\xa5\x82\xa5\x83\xa5\x84\xa5\x85\xa5\x86\xa5\x87\xa5\x88\x67\x9a\x67\x9b\xa5\x89\xa5\x8a\xa5\x8b\xa5\x8c\xa5\x8d\xa5\x8e\xa5\x8f\xa5\x90\x67\x9e\x4f\xa5\xa5\x91\xa5\x92\xa5\x93\xa5\x94\xa5\x95\x56\x4f\x67\xa0\x4b\xbc\xa5\x96\x67\xa1\x52\xbf\xa5\x97\x67\x9f\xa5\x98\xa5\x99\x4f\x7e\x49\xc6\xa5\x9a\xa5\x9b\xa5\x9c\xa5\x9d\xa5\x9e\xa5\x9f\xa5\xa0\xa5\xa1\xa5\xa2\xa5\xa3\xa5\xa4\xa5\xa5\x4b\xc2\xa5\xa6\xa5\xa7\xa5\xa8\x67\xa4\x5c\xb9\x67\xa2", /* 7780 */ "\x67\xa5\xa5\xa9\xa5\xaa\xa5\xab\x52\x8a\x4a\x93\xa5\xac\xa5\xad\xa5\xae\xa5\xaf\xa5\xb0\xa5\xb1\x67\xa6\x67\xa3\x58\x59\xa5\xb2\xa5\xb3\x67\xa7\x51\xf6\xa5\xb4\xa5\xb5\xa5\xb6\xa5\xb7\xa5\xb8\xa5\xb9\xa5\xba\xa5\xbb\xa5\xbc\xa5\xbd\xa5\xbe\xa5\xbf\x67\xa8\x67\xa9\xa5\xc0\x5f\xaa\xa5\xc1\xa5\xc2\x53\xb2\xa5\xc3\x54\x66\xa5\xc4\x5b\xf4\x4b\x69\xa5\xc5\x56\x52\xa5\xc6\xa5\xc7\xa5\xc8\x67\xaa\xa5\xc9\xa5\xca\x57\x4b\xa5\xcb\x67\xab\xa5\xcc\xa5\xcd\xa5\xce\xa5\xcf\xa5\xd0\x5b\x50\xa5\xd1\x67\xac\xa5\xd2\x6b\xc3\xa5\xd3\xa5\xd4\xa5\xd5\xa5\xd6\xa5\xd7\xa5\xd8\xa5\xd9\xa5\xda\xa5\xdb\xa5\xdc\xa5\xdd\xa5\xde\xa5\xdf\x5e\x67\xa5\xe0\xa5\xe1\xa5\xe2\xa5\xe3\xa5\xe4\xa5\xe5\xa5\xe6\xa5\xe7\xa5\xe8\x4a\xa2\xa5\xe9\xa5\xea\xa5\xeb\x52\x4c\x69\x87\xa5\xec\xa5\xed\xa5\xee\xa5\xef\xa5\xf0\x55\xb7\x59\xd2\xa5\xf1\x5b\xa9\xa5\xf2\x68\x93\xa5\xf3\x4f\xd7\xa5\xf4\x4f\x63\x68\x94\x4b\xcb\x48\xaa\xa5\xf5\xa5\xf6\xa5\xf7\xa5\xf8\x55\xae\xa5\xf9\xa5\xfa\x67\x56\xa5\xfb\x67\x57\xa5\xfc\xa5\xfd\xa6\x41\xa6\x42\x57\xf8\x4c\x4f\x50\x94", /* 7800 */ "\x67\x58\x51\xea\x55\x50\xa6\x43\xa6\x44\xa6\x45\xa6\x46\xa6\x47\xa6\x48\x67\x59\xa6\x49\xa6\x4a\x53\xf5\x50\x53\xa6\x4b\xa6\x4c\xa6\x4d\x67\x5c\x53\x99\xa6\x4e\x59\x70\xa6\x4f\x5c\x49\x67\x5a\x67\x5b\xa6\x50\x59\x83\xa6\x51\x67\x5f\x67\x60\xa6\x52\x67\x64\xa6\x53\xa6\x54\xa6\x55\x67\x68\xa6\x56\x67\x66\x67\x6e\x5b\x89\xa6\x57\x67\x69\xa6\x58\xa6\x59\x67\x67\x67\x5e\xa6\x5a\xa6\x5b\x53\x8a\xa6\x5c\xa6\x5d\xa6\x5e\x53\xc5\xa6\x5f\xa6\x60\x55\x8a\x5a\xd1\x67\x61\x67\x62\x67\x63\x67\x65\xa6\x61\x50\xf8\xa6\x62\x4a\xa0\xa6\x63\xa6\x64\xa6\x65\xa6\x66\x4d\x89\xa6\x67\x67\x70\xa6\x68\xa6\x69\xa6\x6a\xa6\x6b\x67\x71\xa6\x6c\x67\x6a\xa6\x6d\x67\x6f\xa6\x6e\x57\xf7\xa6\x6f\xa6\x70\x56\x56\x67\x6c\x67\x6d\xa6\x71\xa6\x72\xa6\x73\xa6\x74\xa6\x75\x58\x96\xa6\x76\xa6\x77\xa6\x78\xa6\x79\xa6\x7a\xa6\x7b\xa6\x7c\xa6\x7d\xa6\x7e\xa6\x7f\xa6\x81\xa6\x82\x67\x72\x51\x93\x5a\x52\x67\x6b\x54\xb6\xa6\x83\xa6\x84\xa6\x85\xa6\x86\xa6\x87\xa6\x88\xa6\x89\xa6\x8a\x4e\xee\xa6\x8b\xa6\x8c\xa6\x8d\xa6\x8e\x53\x91\xa6\x8f\xa6\x90\xa6\x91", /* 7880 */ "\xa6\x92\xa6\x93\xa6\x94\xa6\x95\xa6\x96\xa6\x97\xa6\x98\x67\x76\xa6\x99\x4b\x90\xa6\x9a\xa6\x9b\x51\xb4\x48\xac\x56\x8a\xa6\x9c\xa6\x9d\x49\x4e\xa6\x9e\x67\x74\xa6\x9f\xa6\xa0\xa6\xa1\x57\x8c\x4b\x83\xa6\xa2\x67\x75\x67\x73\x67\x77\xa6\xa3\xa6\xa4\x4b\x9b\xa6\xa5\x67\x78\xa6\xa6\x67\x79\xa6\xa7\x67\x7c\xa6\xa8\x49\x6c\xa6\xa9\xa6\xaa\xa6\xab\xa6\xac\xa6\xad\xa6\xae\xa6\xaf\xa6\xb0\x53\x97\x4e\xed\x67\x7a\x56\xbb\x49\xe9\xa6\xb1\xa6\xb2\xa6\xb3\xa6\xb4\x67\x7b\xa6\xb5\xa6\xb6\xa6\xb7\xa6\xb8\x52\xea\xa6\xb9\xa6\xba\x4a\xc4\xa6\xbb\xa6\xbc\xa6\xbd\x48\xf4\xa6\xbe\xa6\xbf\xa6\xc0\x67\x7f\x50\xd9\x4a\xe7\xa6\xc1\xa6\xc2\xa6\xc3\xa6\xc4\x53\x6d\xa6\xc5\xa6\xc6\xa6\xc7\x67\x7d\x50\x64\xa6\xc8\xa6\xc9\xa6\xca\x67\x7e\xa6\xcb\xa6\xcc\xa6\xcd\xa6\xce\xa6\xcf\xa6\xd0\xa6\xd1\xa6\xd2\xa6\xd3\xa6\xd4\xa6\xd5\xa6\xd6\xa6\xd7\xa6\xd8\x52\xa4\xa6\xd9\xa6\xda\xa6\xdb\x67\x81\xa6\xdc\xa6\xdd\xa6\xde\xa6\xdf\xa6\xe0\x67\x82\xa6\xe1\x67\x84\xa6\xe2\xa6\xe3\x51\x77\xa6\xe4\xa6\xe5\x4e\x67\xa6\xe6\xa6\xe7\xa6\xe8\xa6\xe9\xa6\xea", /* 7900 */ "\xa6\xeb\x4f\x58\xa6\xec\xa6\xed\xa6\xee\x67\x83\xa6\xef\xa6\xf0\xa6\xf1\xa6\xf2\xa6\xf3\xa6\xf4\xa6\xf5\xa6\xf6\xa6\xf7\xa6\xf8\xa6\xf9\xa6\xfa\xa6\xfb\x67\x85\xa6\xfc\xa6\xfd\xa7\x41\xa7\x42\xa7\x43\xa7\x44\xa7\x45\xa7\x46\xa7\x47\xa7\x48\x67\x87\xa7\x49\xa7\x4a\xa7\x4b\xa7\x4c\xa7\x4d\x67\x86\xa7\x4e\xa7\x4f\xa7\x50\xa7\x51\xa7\x52\xa7\x53\xa7\x54\xa7\x55\xa7\x56\xa7\x57\xa7\x58\xa7\x59\xa7\x5a\xa7\x5b\xa7\x5c\x67\x88\xa7\x5d\xa7\x5e\xa7\x5f\xa7\x60\xa7\x61\x55\xbd\x66\xe9\x50\xf0\xa7\x62\x55\x88\xa7\x63\x66\xea\x53\xed\xa7\x64\xa7\x65\xa7\x66\xa7\x67\x66\xeb\xa7\x68\x53\xec\x66\xec\xa7\x69\xa7\x6a\xa7\x6b\xa7\x6c\xa7\x6d\xa7\x6e\xa7\x6f\xa7\x70\xa7\x71\x66\xef\xa7\x72\xa7\x73\x5c\x87\x66\xf2\xa7\x74\xa7\x75\x66\xf0\x66\xed\x66\xee\x5c\x43\x55\x92\x56\x8f\x66\xf3\xa7\x76\x66\xf1\xa7\x77\xa7\x78\x58\x8a\xa7\x79\x66\xf5\x53\xb0\xa7\x7a\xa7\x7b\xa7\x7c\xa7\x7d\x4e\xbf\xa7\x7e\x66\xf4\xa7\x7f\xa7\x81\xa7\x82\xa7\x83\xa7\x84\xa7\x85\xa7\x86\x4b\x5b\x4e\x97\xa7\x87\x66\xf6\xa7\x88\xa7\x89\xa7\x8a\xa7\x8b\xa7\x8c", /* 7980 */ "\x5d\x98\x4f\x9c\xa7\x8d\xa7\x8e\x51\xba\x66\xf7\xa7\x8f\xa7\x90\xa7\x91\xa7\x92\x66\xf8\xa7\x93\xa7\x94\xa7\x95\xa7\x96\x4c\xa2\xa7\x97\xa7\x98\xa7\x99\xa7\x9a\xa7\x9b\xa7\x9c\xa7\x9d\xa7\x9e\xa7\x9f\xa7\xa0\x66\xf9\xa7\xa1\xa7\xa2\xa7\xa3\xa7\xa4\xa7\xa5\xa7\xa6\xa7\xa7\xa7\xa8\xa7\xa9\xa7\xaa\xa7\xab\xa7\xac\x66\xfa\xa7\xad\xa7\xae\xa7\xaf\xa7\xb0\xa7\xb1\xa7\xb2\xa7\xb3\xa7\xb4\xa7\xb5\xa7\xb6\xa7\xb7\x66\xfb\xa7\xb8\xa7\xb9\xa7\xba\xa7\xbb\xa7\xbc\x5a\x8e\x5c\xad\x50\xea\xa7\xbd\x54\x7d\x4d\xcb\xa7\xbe\x58\xe2\x56\x5d\xa7\xbf\x57\x5a\xa7\xc0\xa7\xc1\x4c\xd0\xa7\xc2\xa7\xc3\x49\x9d\xa7\xc4\x54\x90\xa7\xc5\x5b\xd5\xa7\xc6\xa7\xc7\xa7\xc8\x50\x66\x52\x8c\xa7\xc9\xa7\xca\x68\x96\xa7\xcb\xa7\xcc\x52\x78\xa7\xcd\xa7\xce\xa7\xcf\xa7\xd0\xa7\xd1\xa7\xd2\x5c\x83\xa7\xd3\xa7\xd4\xa7\xd5\x68\x98\x4a\x73\xa7\xd6\x54\x78\x59\x8e\xa7\xd7\x5b\xc7\xa7\xd8\x68\x99\xa7\xd9\x68\x97\xa7\xda\x4e\x9e\x4a\x66\xa7\xdb\xa7\xdc\xa7\xdd\xa7\xde\xa7\xdf\xa7\xe0\xa7\xe1\x4f\x75\xa7\xe2\xa7\xe3\x59\xc5\xa7\xe4\x4e\x81\xa7\xe5\xa7\xe6", /* 7a00 */ "\x58\x41\xa7\xe7\x68\x9d\x68\x9c\xa7\xe8\xa7\xe9\x68\x9a\xa7\xea\xa7\xeb\xa7\xec\xa7\xed\x4a\x6c\xa7\xee\x55\x74\x56\x50\xa7\xef\xa7\xf0\xa7\xf1\xa7\xf2\xa7\xf3\x68\x9f\xa7\xf4\xa7\xf5\x48\xdd\xa7\xf6\xa7\xf7\x5b\xc8\xa7\xf8\xa7\xf9\xa7\xfa\x68\x9e\xa7\xfb\x4a\x8e\xa7\xfc\xa7\xfd\x6b\xd4\xa8\x41\xa8\x42\xa8\x43\xa8\x44\xa8\x45\xa8\x46\xa8\x47\xa8\x48\xa8\x49\xa8\x4a\xa8\x4b\xa8\x4c\xa8\x4d\xa8\x4e\xa8\x4f\x57\xc7\xa8\x50\xa8\x51\xa8\x52\x68\xa1\xa8\x53\x68\xa0\xa8\x54\x4b\x5e\x4e\xd9\x4e\x9d\xa8\x55\x4c\xe4\xa8\x56\xa8\x57\xa8\x58\xa8\x59\xa8\x5a\xa8\x5b\x52\xc1\xa8\x5c\xa8\x5d\xa8\x5e\xa8\x5f\xa8\x60\xa8\x61\xa8\x62\xa8\x63\xa8\x64\xa8\x65\x68\xa2\xa8\x66\xa8\x67\xa8\x68\xa8\x69\xa8\x6a\x56\x8c\xa8\x6b\xa8\x6c\xa8\x6d\xa8\x6e\xa8\x6f\xa8\x70\xa8\x71\xa8\x72\xa8\x73\xa8\x74\xa8\x75\xa8\x76\xa8\x77\xa8\x78\xa8\x79\xa8\x7a\xa8\x7b\xa8\x7c\xa8\x7d\xa8\x7e\xa8\x7f\xa8\x81\xa8\x82\xa8\x83\x68\xa5\xa8\x84\xa8\x85\xa8\x86\x59\x48\xa8\x87\x4f\xbe\x54\x8f\x69\x56\x69\x57\x50\x75\xa8\x88\xa8\x89\xa8\x8a\xa8\x8b\x4a\xa8", /* 7a80 */ "\x69\x58\x57\x5b\xa8\x8c\x54\x74\x5b\x4d\xa8\x8d\x69\x59\xa8\x8e\x69\x5a\xa8\x8f\xa8\x90\xa8\x91\xa8\x92\x54\x6f\xa8\x93\xa8\x94\xa8\x95\x59\xa3\x5b\xce\xa8\x96\xa8\x97\x69\x5b\x4f\x71\x4a\xaf\x4f\xbc\xa8\x98\xa8\x99\xa8\x9a\x4a\xdb\x57\xd0\xa8\x9b\x50\x7f\x69\x5d\xa8\x9c\xa8\x9d\xa8\x9e\xa8\x9f\x50\x9b\x69\x5c\xa8\xa0\x69\x5f\xa8\xa1\xa8\xa2\xa8\xa3\x69\x5e\x69\x60\xa8\xa4\xa8\xa5\xa8\xa6\xa8\xa7\xa8\xa8\x69\x61\xa8\xa9\xa8\xaa\xa8\xab\xa8\xac\xa8\xad\xa8\xae\xa8\xaf\xa8\xb0\xa8\xb1\xa8\xb2\xa8\xb3\x51\x9f\xa8\xb4\xa8\xb5\xa8\xb6\xa8\xb7\xa8\xb8\xa8\xb9\xa8\xba\xa8\xbb\xa8\xbc\xa8\xbd\xa8\xbe\x51\x42\xa8\xbf\xa8\xc0\xa8\xc1\xa8\xc2\xa8\xc3\xa8\xc4\xa8\xc5\xa8\xc6\xa8\xc7\xa8\xc8\x55\xf9\xa8\xc9\xa8\xca\x5b\x5e\xa8\xcb\xa8\xcc\xa8\xcd\xa8\xce\x4f\xb9\x4f\xb8\x5b\x62\xa8\xcf\xa8\xd0\x50\x42\xa8\xd1\x57\x4f\x69\x55\xa8\xd2\xa8\xd3\xa8\xd4\xa8\xd5\xa8\xd6\xa8\xd7\x4f\x7f\xa8\xd8\x4b\xca\xa8\xd9\xa8\xda\xa8\xdb\xa8\xdc\xa8\xdd\xa8\xde\xa8\xdf\xa8\xe0\xa8\xe1\x5b\xf0\x6a\x63\xa8\xe2\xa8\xe3\x6a\x64\xa8\xe4\x4c\xcc", /* 7b00 */ "\xa8\xe5\xa8\xe6\xa8\xe7\x6a\x66\x6a\x67\xa8\xe8\x48\xc9\xa8\xe9\x6a\x65\xa8\xea\x6a\x69\x56\x92\xa8\xeb\xa8\xec\xa8\xed\x6a\x6b\xa8\xee\x58\xa5\xa8\xef\xa8\xf0\x49\x6a\x6a\x68\xa8\xf1\xa8\xf2\xa8\xf3\x6a\x6f\xa8\xf4\x4b\x71\xa8\xf5\xa8\xf6\x6a\x77\xa8\xf7\x6a\x72\xa8\xf8\xa8\xf9\xa8\xfa\x6a\x74\x6a\x73\x4c\x9c\xa8\xfb\x49\x5f\xa8\xfc\x6a\x6e\x6a\x6a\x4b\x7a\xa8\xfd\x6a\x70\xa9\x41\xa9\x42\x6a\x71\xa9\x43\x6a\x75\xa9\x44\xa9\x45\xa9\x46\xa9\x47\x6a\x6d\xa9\x48\x4e\xe2\xa9\x49\x51\x9e\xa9\x4a\x6a\x76\xa9\x4b\xa9\x4c\xa9\x4d\xa9\x4e\xa9\x4f\xa9\x50\x6a\x7a\xa9\x51\x6a\x6c\xa9\x52\x4b\x68\xa9\x53\x4f\x8f\x6a\x7c\xa9\x54\xa9\x55\x4c\x44\x50\x91\x5b\xfd\x57\x52\xa9\x56\x4a\xef\xa9\x57\x49\xde\xa9\x58\x6a\x78\xa9\x59\x6a\x79\x55\x58\xa9\x5a\x6a\x7d\xa9\x5b\xa9\x5c\x6a\x7e\xa9\x5d\x6a\x82\xa9\x5e\xa9\x5f\xa9\x60\xa9\x61\xa9\x62\xa9\x63\xa9\x64\xa9\x65\xa9\x66\xa9\x67\xa9\x68\x6a\x7f\xa9\x69\xa9\x6a\x6a\x84\x6a\x83\xa9\x6b\xa9\x6c\x6a\x7b\xa9\x6d\x50\x8b\xa9\x6e\x4a\x90\xa9\x6f\x6a\x81\xa9\x70\xa9\x71\x54\x49\xa9\x72", /* 7b80 */ "\x4e\xf1\xa9\x73\xa9\x74\xa9\x75\xa9\x76\x6a\x8c\xa9\x77\xa9\x78\xa9\x79\xa9\x7a\xa9\x7b\xa9\x7c\xa9\x7d\x4d\x5f\xa9\x7e\xa9\x7f\x6a\x85\xa9\x81\xa9\x82\xa9\x83\x49\xac\x4e\x9f\xa9\x84\x56\x84\xa9\x85\xa9\x86\xa9\x87\xa9\x88\x6a\x8e\x6a\x8a\xa9\x89\xa9\x8a\xa9\x8b\x4d\x7c\x6a\x8f\xa9\x8c\xa9\x8d\xa9\x8e\x6a\x86\x6a\x87\x6a\x8b\x51\xe0\x6a\x8d\x6a\x90\x6a\x89\x4e\xfc\xa9\x8f\xa9\x90\xa9\x91\x58\x85\xa9\x92\xa9\x93\x6a\x91\xa9\x94\xa9\x95\xa9\x96\x6a\x88\xa9\x97\xa9\x98\xa9\x99\xa9\x9a\xa9\x9b\xa9\x9c\xa9\x9d\xa9\x9e\x6a\x93\xa9\x9f\xa9\xa0\xa9\xa1\xa9\xa2\x5c\x4d\x53\xa9\xa9\xa3\xa9\xa4\xa9\xa5\xa9\xa6\x6a\x94\xa9\xa7\xa9\xa8\xa9\xa9\xa9\xaa\x6a\x92\xa9\xab\x51\xa7\xa9\xac\xa9\xad\xa9\xae\xa9\xaf\xa9\xb0\x4c\xdc\x6a\x96\xa9\xb1\xa9\xb2\x6a\x95\xa9\xb3\xa9\xb4\xa9\xb5\x4a\xda\xa9\xb6\xa9\xb7\xa9\xb8\x6a\x97\x6a\x98\xa9\xb9\xa9\xba\xa9\xbb\x6a\x99\xa9\xbc\xa9\xbd\xa9\xbe\x50\xb9\xa9\xbf\xa9\xc0\x50\xe8\xa9\xc1\xa9\xc2\xa9\xc3\xa9\xc4\xa9\xc5\x53\x92\xa9\xc6\xa9\xc7\xa9\xc8\xa9\xc9\x6a\x9c\xa9\xca\x6a\x9b\xa9\xcb", /* 7c00 */ "\xa9\xcc\xa9\xcd\xa9\xce\xa9\xcf\xa9\xd0\xa9\xd1\xa9\xd2\x4a\xd7\xa9\xd3\xa9\xd4\xa9\xd5\x6a\x9f\x6a\x9a\xa9\xd6\xa9\xd7\x6a\x9d\xa9\xd8\xa9\xd9\xa9\xda\xa9\xdb\xa9\xdc\xa9\xdd\x6a\x9e\xa9\xde\xa9\xdf\xa9\xe0\xa9\xe1\xa9\xe2\xa9\xe3\xa9\xe4\xa9\xe5\x6a\xa0\xa9\xe6\xa9\xe7\xa9\xe8\xa9\xe9\xa9\xea\xa9\xeb\x6a\xa2\x4e\x69\xa9\xec\xa9\xed\x6a\xa1\xa9\xee\xa9\xef\xa9\xf0\xa9\xf1\xa9\xf2\xa9\xf3\xa9\xf4\xa9\xf5\xa9\xf6\xa9\xf7\xa9\xf8\xa9\xf9\xa9\xfa\x6a\xa3\xa9\xfb\xa9\xfc\xa9\xfd\xaa\x41\xaa\x42\xaa\x43\x49\xbd\x6a\xa5\x6a\xa4\xaa\x44\xaa\x45\xaa\x46\xaa\x47\xaa\x48\xaa\x49\xaa\x4a\xaa\x4b\xaa\x4c\xaa\x4d\xaa\x4e\x4e\xad\xaa\x4f\xaa\x50\xaa\x51\xaa\x52\xaa\x53\xaa\x54\xaa\x55\xaa\x56\xaa\x57\xaa\x58\xaa\x59\xaa\x5a\xaa\x5b\xaa\x5c\xaa\x5d\xaa\x5e\xaa\x5f\xaa\x60\xaa\x61\xaa\x62\xaa\x63\xaa\x64\xaa\x65\xaa\x66\xaa\x67\xaa\x68\xaa\x69\xaa\x6a\xaa\x6b\xaa\x6c\xaa\x6d\xaa\x6e\xaa\x6f\xaa\x70\xaa\x71\xaa\x72\xaa\x73\x52\x77\x5d\x82\xaa\x74\xaa\x75\xaa\x76\xaa\x77\xaa\x78\xaa\x79\x50\xdf\x6a\xcb\x5c\x71\xaa\x7a\xaa\x7b", /* 7c80 */ "\xaa\x7c\xaa\x7d\xaa\x7e\xaa\x7f\xaa\x81\xaa\x82\xaa\x83\xaa\x84\xaa\x85\x4c\x7b\xaa\x86\xaa\x87\xaa\x88\xaa\x89\xaa\x8a\xaa\x8b\xaa\x8c\x6a\xcd\x51\x43\xaa\x8d\xaa\x8e\x53\xc8\xaa\x8f\x4a\xd5\x5b\x53\xaa\x90\xaa\x91\xaa\x92\x6a\xcf\x6a\xce\x6a\xd0\x56\x7a\xaa\x93\xaa\x94\x6a\xd1\xaa\x95\x5a\xc0\x5b\xdf\xaa\x96\xaa\x97\xaa\x98\xaa\x99\x4c\x81\xaa\x9a\xaa\x9b\xaa\x9c\x51\x58\xaa\x9d\xaa\x9e\x51\x5b\x6a\xd2\x4f\xab\xaa\x9f\xaa\xa0\xaa\xa1\xaa\xa2\xaa\xa3\x4a\xe1\xaa\xa4\xaa\xa5\x6a\xd3\x6a\xd4\x4f\xaa\xaa\xa6\xaa\xa7\x6a\xd5\xaa\xa8\xaa\xa9\xaa\xaa\x6a\xda\xaa\xab\x6a\xd6\x6a\xd9\xaa\xac\x4d\xfc\xaa\xad\x6a\xd7\x6a\xd8\xaa\xae\xaa\xaf\xaa\xb0\xaa\xb1\xaa\xb2\xaa\xb3\xaa\xb4\x4c\xe1\x56\xc6\x6a\xdb\xaa\xb5\x49\xd9\xaa\xb6\xaa\xb7\x52\x73\xaa\xb8\xaa\xb9\x5a\xe2\x50\x57\xaa\xba\xaa\xbb\xaa\xbc\xaa\xbd\xaa\xbe\xaa\xbf\xaa\xc0\x6a\xdc\xaa\xc1\xaa\xc2\xaa\xc3\xaa\xc4\xaa\xc5\xaa\xc6\x53\x54\xaa\xc7\xaa\xc8\xaa\xc9\xaa\xca\xaa\xcb\xaa\xcc\xaa\xcd\xaa\xce\x6a\xe8\xaa\xcf\xaa\xd0\x58\x55\xaa\xd1\xaa\xd2\xaa\xd3\xaa\xd4", /* 7d00 */ "\xaa\xd5\xaa\xd6\xaa\xd7\xaa\xd8\xaa\xd9\xaa\xda\xaa\xdb\xaa\xdc\xaa\xdd\xaa\xde\x57\xc8\xaa\xdf\xaa\xe0\xaa\xe1\xaa\xe2\xaa\xe3\xaa\xe4\xaa\xe5\xaa\xe6\xaa\xe7\xaa\xe8\xaa\xe9\xaa\xea\xaa\xeb\xaa\xec\xaa\xed\xaa\xee\xaa\xef\xaa\xf0\xaa\xf1\xaa\xf2\xaa\xf3\x56\x78\xaa\xf4\x56\x98\xaa\xf5\xaa\xf6\xaa\xf7\xaa\xf8\x4f\x95\xaa\xf9\xaa\xfa\xaa\xfb\x5c\x6f\xaa\xfc\xaa\xfd\xab\x41\x50\xda\xab\x42\xab\x43\xab\x44\xab\x45\xab\x46\xab\x47\xab\x48\xab\x49\xab\x4a\xab\x4b\xab\x4c\xab\x4d\xab\x4e\xab\x4f\xab\x50\xab\x51\xab\x52\xab\x53\xab\x54\xab\x55\xab\x56\xab\x57\xab\x58\xab\x59\xab\x5a\xab\x5b\xab\x5c\xab\x5d\xab\x5e\xab\x5f\xab\x60\xab\x61\xab\x62\xab\x63\xab\x64\xab\x65\xab\x66\xab\x67\xab\x68\xab\x69\xab\x6a\xab\x6b\xab\x6c\xab\x6d\xab\x6e\xab\x6f\xab\x70\xab\x71\xab\x72\xab\x73\xab\x74\xab\x75\xab\x76\xab\x77\xab\x78\xab\x79\xab\x7a\xab\x7b\xab\x7c\xab\x7d\xab\x7e\xab\x7f\x58\xf4\xab\x81\xab\x82\xab\x83\xab\x84\xab\x85\xab\x86\xab\x87\xab\x88\x6a\xe9\xab\x89\xab\x8a\xab\x8b\xab\x8c\xab\x8d\xab\x8e\xab\x8f\xab\x90", /* 7d80 */ "\xab\x91\xab\x92\xab\x93\xab\x94\xab\x95\xab\x96\xab\x97\xab\x98\xab\x99\xab\x9a\xab\x9b\xab\x9c\xab\x9d\xab\x9e\xab\x9f\xab\xa0\xab\xa1\xab\xa2\xab\xa3\xab\xa4\xab\xa5\xab\xa6\xab\xa7\xab\xa8\xab\xa9\xab\xaa\xab\xab\xab\xac\xab\xad\xab\xae\xab\xaf\xab\xb0\xab\xb1\xab\xb2\xab\xb3\xab\xb4\xab\xb5\xab\xb6\x6a\xea\xab\xb7\xab\xb8\xab\xb9\xab\xba\xab\xbb\xab\xbc\xab\xbd\x6a\xeb\xab\xbe\xab\xbf\xab\xc0\xab\xc1\xab\xc2\xab\xc3\xab\xc4\xab\xc5\xab\xc6\xab\xc7\xab\xc8\xab\xc9\xab\xca\xab\xcb\xab\xcc\xab\xcd\xab\xce\xab\xcf\xab\xd0\xab\xd1\xab\xd2\xab\xd3\xab\xd4\xab\xd5\xab\xd6\xab\xd7\xab\xd8\xab\xd9\xab\xda\xab\xdb\xab\xdc\xab\xdd\xab\xde\xab\xdf\xab\xe0\xab\xe1\xab\xe2\xab\xe3\xab\xe4\xab\xe5\xab\xe6\xab\xe7\xab\xe8\xab\xe9\xab\xea\xab\xeb\xab\xec\xab\xed\xab\xee\xab\xef\xab\xf0\xab\xf1\xab\xf2\xab\xf3\xab\xf4\xab\xf5\xab\xf6\xab\xf7\xab\xf8\xab\xf9\xab\xfa\xab\xfb\xab\xfc\xab\xfd\xac\x41\xac\x42\xac\x43\xac\x44\xac\x45\xac\x46\xac\x47\xac\x48\xac\x49\xac\x4a\xac\x4b\xac\x4c\xac\x4d\xac\x4e\xac\x4f\xac\x50\xac\x51", /* 7e00 */ "\xac\x52\xac\x53\xac\x54\xac\x55\xac\x56\xac\x57\xac\x58\xac\x59\xac\x5a\xac\x5b\xac\x5c\xac\x5d\xac\x5e\xac\x5f\xac\x60\xac\x61\xac\x62\xac\x63\xac\x64\xac\x65\xac\x66\xac\x67\xac\x68\xac\x69\xac\x6a\xac\x6b\xac\x6c\xac\x6d\xac\x6e\xac\x6f\xac\x70\xac\x71\xac\x72\xac\x73\xac\x74\xac\x75\xac\x76\xac\x77\xac\x78\xac\x79\xac\x7a\xac\x7b\xac\x7c\xac\x7d\xac\x7e\xac\x7f\xac\x81\xac\x82\xac\x83\xac\x84\xac\x85\xac\x86\xac\x87\xac\x88\xac\x89\xac\x8a\xac\x8b\xac\x8c\xac\x8d\x6c\x84\xac\x8e\xac\x8f\xac\x90\xac\x91\xac\x92\x4c\x51\xac\x93\xac\x94\xac\x95\xac\x96\xac\x97\x6a\xec\xac\x98\xac\x99\xac\x9a\xac\x9b\xac\x9c\xac\x9d\xac\x9e\xac\x9f\xac\xa0\xac\xa1\xac\xa2\xac\xa3\xac\xa4\xac\xa5\xac\xa6\xac\xa7\xac\xa8\xac\xa9\xac\xaa\xac\xab\xac\xac\xac\xad\xac\xae\xac\xaf\xac\xb0\xac\xb1\xac\xb2\xac\xb3\xac\xb4\xac\xb5\xac\xb6\xac\xb7\xac\xb8\xac\xb9\xac\xba\xac\xbb\xac\xbc\xac\xbd\xac\xbe\xac\xbf\xac\xc0\xac\xc1\xac\xc2\xac\xc3\xac\xc4\xac\xc5\xac\xc6\xac\xc7\xac\xc8\xac\xc9\xac\xca\xac\xcb\xac\xcc\xac\xcd\xac\xce\xac\xcf", /* 7e80 */ "\xac\xd0\xac\xd1\x5c\x8c\xac\xd2\xac\xd3\xac\xd4\xac\xd5\xac\xd6\xac\xd7\xac\xd8\xac\xd9\xac\xda\xac\xdb\xac\xdc\xac\xdd\xac\xde\xac\xdf\xac\xe0\xac\xe1\xac\xe2\xac\xe3\xac\xe4\xac\xe5\xac\xe6\xac\xe7\xac\xe8\xac\xe9\x6a\xed\xac\xea\xac\xeb\xac\xec\x63\xf8\x4f\xbf\x63\xf9\x4d\xeb\x63\xfa\x58\x6b\x63\xfb\x5a\xbb\x4e\xb5\x63\xfc\x63\xfd\x4e\xcc\x54\xd1\x57\xb2\x64\x41\xac\xed\x4a\xbe\x64\x42\x55\x54\x4c\xd8\x52\xc8\xac\xee\x5c\x7d\x51\xd9\x4c\x77\x5b\xbc\x57\xc5\x4c\x64\xac\xef\xac\xf0\x53\x46\x64\x43\x58\x7f\x64\x44\x64\x45\x64\x46\x51\x57\x5c\x8a\x55\x91\x58\x58\x5b\xae\x5b\xd4\x64\x47\x48\xec\x64\x48\x64\x49\x55\x7c\x59\xee\x4f\xac\x64\x4a\x48\xf2\x54\xdd\x4f\x82\x64\x4b\x54\xc5\xac\xf1\x64\x4c\x4e\x87\x4c\xf7\x59\x44\x64\x4d\x51\xe6\x4f\xf7\x4f\x6a\x57\x53\x64\x4e\x64\x4f\x4f\xed\x58\xe4\xac\xf2\x56\x88\x56\xcf\x4e\xcb\x64\x50\x4e\xa7\x58\xf6\x64\x51\xac\xf3\x58\xf7\x64\x52\x64\x53\x4a\xc1\x64\x54\x64\x55\x55\x9f\x57\xab\x52\x81\x64\x57\x49\x61\x4a\x92\xac\xf4\x64\x58\x64\x59\x5c\x7b\x5b\x60\x64\x5a\x51\xcb", /* 7f00 */ "\x5c\x5a\x64\x5b\x64\x5c\x64\x5d\x4e\xe9\x52\x86\x50\xc1\x64\x5e\x64\x5f\x4e\xa8\xac\xf5\x64\x60\x64\x61\x64\x56\x4b\xcf\x64\x62\xac\xf6\x64\x63\x64\x64\x4e\x5a\x4b\x7e\x51\xc5\x49\x81\x64\x65\x5a\xb4\x64\x66\x4c\xbe\x64\x68\x64\x67\x4c\x8d\xac\xf7\x64\x69\x49\xf7\x64\x6a\x64\x6b\x64\x6c\x64\x6d\x64\x6e\x64\x6f\x64\x70\x5a\x47\x56\x96\x64\x71\x64\x72\x64\x73\x64\x74\x55\x69\x64\x75\x64\x76\x64\x77\x64\x78\x64\x79\x4f\x69\x64\x7a\x6a\x5e\xac\xf8\x4c\xd6\xac\xf9\x54\xb0\xac\xfa\xac\xfb\xac\xfc\xac\xfd\xad\x41\xad\x42\xad\x43\x6a\x5f\xad\x44\x6a\x60\x6a\x61\xad\x45\xad\x46\xad\x47\xad\x48\xad\x49\xad\x4a\xad\x4b\xad\x4c\xad\x4d\xad\x4e\x4d\x7e\x57\x99\xad\x4f\xad\x50\x5c\xe7\x4d\xb0\xad\x51\x51\xdd\x67\xb6\xad\x52\x4c\x43\xad\x53\xad\x54\xad\x55\xad\x56\x67\xb8\xad\x57\x67\xb7\x48\xd4\xad\x58\xad\x59\xad\x5a\xad\x5b\xad\x5c\x67\xba\x5b\x76\x5c\x90\xad\x5d\xad\x5e\xad\x5f\x5b\xc2\xad\x60\xad\x61\x67\xbc\x55\xef\xad\x62\x67\xbb\xad\x63\xad\x64\xad\x65\xad\x66\x67\xbd\xad\x67\xad\x68\xad\x69\xad\x6a\x67\xbf\xad\x6b", /* 7f80 */ "\xad\x6c\x67\xbe\xad\x6d\xad\x6e\xad\x6f\xad\x70\xad\x71\xad\x72\xad\x73\xad\x74\x59\x93\xad\x75\x54\x5c\xad\x76\x52\x60\xad\x77\xad\x78\xad\x79\xad\x7a\xad\x7b\x4c\xe0\xad\x7c\xad\x7d\xad\x7e\xad\x7f\xad\x81\x51\x88\xad\x82\xad\x83\x6a\xc5\x58\xde\x6a\xc6\xad\x84\x58\x7b\xad\x85\xad\x86\x54\xb9\xad\x87\xad\x88\x6a\xc7\xad\x89\xad\x8a\xad\x8b\xad\x8c\xad\x8d\xad\x8e\xad\x8f\x6a\xc8\x6a\xc9\xad\x90\x6a\xca\xad\x91\xad\x92\xad\x93\xad\x94\xad\x95\x5d\x9b\x4c\xfd\xad\x96\xad\x97\x63\x92\x5a\x91\xad\x98\x6a\xdf\xad\x99\x57\xcb\xad\x9a\xad\x9b\xad\x9c\x4a\x82\xad\x9d\xad\x9e\xad\x9f\xad\xa0\x69\x54\xad\xa1\x59\xed\xad\xa2\x6a\xe0\xad\xa3\xad\xa4\xad\xa5\xad\xa6\xad\xa7\x58\x89\x6a\xe1\xad\xa8\xad\xa9\x54\x6c\xad\xaa\xad\xab\xad\xac\xad\xad\xad\xae\xad\xaf\x4b\x74\x4a\xe3\x6a\xe3\xad\xb0\xad\xb1\xad\xb2\x6a\xe2\x6a\xe4\xad\xb3\xad\xb4\x6a\xe5\xad\xb5\xad\xb6\xad\xb7\xad\xb8\x6a\xe6\xad\xb9\x4d\xb1\x48\xbe\xad\xba\x6a\xe7\xad\xbb\xad\xbc\xad\xbd\xad\xbe\xad\xbf\xad\xc0\xad\xc1\x4c\x4d\x59\xec\xad\xc2\xad\xc3\xad\xc4", /* 8000 */ "\x59\xaa\x50\xce\xad\xc5\x50\x5c\x66\x43\x5b\x7f\x65\xc7\xad\xc6\xad\xc7\xad\xc8\xad\xc9\x69\x94\x4b\xf7\x56\x43\xad\xca\xad\xcb\x52\xcc\xad\xcc\x69\x88\xad\xcd\x69\x89\x4c\xfa\x69\x8a\x4d\xc3\x5a\xc4\x48\xd1\xad\xce\xad\xcf\x69\x8b\xad\xd0\xad\xd1\xad\xd2\x69\x8c\xad\xd3\x69\x8d\xad\xd4\xad\xd5\x69\x8e\x69\x8f\x69\x90\x69\x92\x69\x91\x53\x75\xad\xd6\xad\xd7\xad\xd8\xad\xd9\xad\xda\xad\xdb\x69\x93\xad\xdc\x4b\xf9\xad\xdd\x69\x95\x59\xad\x5f\xc6\x56\x6a\xad\xde\xad\xdf\x4a\x7c\xad\xe0\x4b\x42\xad\xe1\x4d\x42\xad\xe2\xad\xe3\x52\xf3\x69\x96\xad\xe4\xad\xe5\x69\x97\xad\xe6\xad\xe7\xad\xe8\x51\x64\x51\x9c\x5b\xaf\x69\x98\xad\xe9\xad\xea\xad\xeb\xad\xec\x69\x99\xad\xed\x51\x4a\xad\xee\xad\xef\xad\xf0\x53\xb7\xad\xf1\x4f\xda\xad\xf2\xad\xf3\xad\xf4\xad\xf5\xad\xf6\xad\xf7\xad\xf8\xad\xf9\xad\xfa\xad\xfb\xad\xfc\xad\xfd\xae\x41\xae\x42\x69\x9a\x4a\xce\xae\x43\xae\x44\xae\x45\xae\x46\xae\x47\xae\x48\x69\x9b\xae\x49\xae\x4a\xae\x4b\xae\x4c\xae\x4d\xae\x4e\xae\x4f\xae\x50\xae\x51\xae\x52\xae\x53\xae\x54\xae\x55\x67\x52", /* 8080 */ "\x67\x51\xae\x56\xae\x57\x56\x81\x59\xdd\xae\x58\x56\x61\x5b\x78\xae\x59\x54\xe1\xae\x5a\x50\xde\x4e\xa0\xae\x5b\xae\x5c\xae\x5d\xae\x5e\xae\x5f\xae\x60\x66\x61\xae\x61\xae\x62\x58\xa3\xae\x63\x5b\xe1\xae\x64\x4b\xc6\x4c\xd7\x66\x60\x4c\xcd\xae\x65\x66\x5f\x4a\x46\x4d\x69\x5b\xaa\xae\x66\x4c\x95\x4c\x6a\xae\x67\xae\x68\xae\x69\x4e\xe6\x4c\x5e\x66\x66\xae\x6a\x66\x67\x48\xb8\x50\x6f\xae\x6b\x66\x65\x5a\x9e\xae\x6c\x66\x68\xae\x6d\xae\x6e\x66\x69\xae\x6f\xae\x70\x4c\x6e\xae\x71\x66\x62\x66\x64\x55\x97\x5b\xd6\x5b\x6d\x58\xb1\x66\x6f\x57\xb7\x66\x70\xae\x72\x4b\x48\xae\x73\xae\x74\xae\x75\xae\x76\xae\x77\x49\x53\x66\x72\x56\xa4\xae\x78\xae\x79\xae\x7a\xae\x7b\xae\x7c\xae\x7d\xae\x7e\x53\x76\x66\x73\xae\x7f\x66\x71\x53\x7f\x66\x6e\x55\xa3\x66\x75\x48\xfa\xae\x81\xae\x82\x4d\xf9\xae\x83\xae\x84\x5c\xb6\x69\x84\xae\x85\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x76\x63\xbf\x66\x79\xae\x86\x50\x89\x59\xc7\x66\x77\x66\x7c\x4c\xeb\x66\x78\xae\x87\x4f\x5a\xae\x88\x58\xd7\xae\x89\x48\xb6\xae\x8a\x66\x7d\x52\xdb\xae\x8b\xae\x8c", /* 8100 */ "\xae\x8d\xae\x8e\x5b\xab\xae\x8f\xae\x90\xae\x91\x4a\xdf\xae\x92\xae\x93\x51\xf5\x4e\xb8\xae\x94\xae\x95\x66\x7a\x66\x7b\x5a\xdf\x53\xe9\x52\xd3\x66\x7f\x53\x47\x5d\x96\xae\x96\x49\xb0\xae\x97\x66\x85\xae\x98\x4f\x65\xae\x99\xae\x9a\xae\x9b\x66\x83\xae\x9c\xae\x9d\xae\x9e\xae\x9f\xae\xa0\xae\xa1\xae\xa2\xae\xa3\xae\xa4\xae\xa5\xae\xa6\xae\xa7\xae\xa8\x66\x84\xae\xa9\xae\xaa\x4c\xab\xae\xab\x57\x71\x66\x86\xae\xac\xae\xad\xae\xae\x66\x82\xae\xaf\x51\x53\xae\xb0\xae\xb1\xae\xb2\xae\xb3\xae\xb4\x53\xa1\xae\xb5\xae\xb6\xae\xb7\xae\xb8\xae\xb9\xae\xba\xae\xbb\x56\xf2\xae\xbc\x66\x87\xae\xbd\x50\xaf\x59\xb7\x66\x88\xae\xbe\xae\xbf\xae\xc0\x4c\xae\x4c\xac\xae\xc1\x66\x89\x54\x5b\x57\x94\xae\xc2\xae\xc3\xae\xc4\x66\x8b\x66\x8c\xae\xc5\xae\xc6\xae\xc7\xae\xc8\xae\xc9\x66\x8e\xae\xca\xae\xcb\xae\xcc\xae\xcd\x58\xc7\xae\xce\x66\x93\xae\xcf\x66\x8f\xae\xd0\xae\xd1\xae\xd2\x66\x92\x54\xf8\xae\xd3\x59\x9d\x66\x8d\xae\xd4\xae\xd5\x66\x8a\xae\xd6\xae\xd7\xae\xd8\xae\xd9\x4c\xb8\x58\x79\x52\xe4\x66\x90\x66\x91\x56\xd9\x57\x68", /* 8180 */ "\x48\xf1\xae\xda\x66\x97\xae\xdb\xae\xdc\xae\xdd\xae\xde\xae\xdf\x66\x96\xae\xe0\x49\xb1\xae\xe1\xae\xe2\xae\xe3\xae\xe4\x4c\xdf\xae\xe5\x66\x98\xae\xe6\xae\xe7\xae\xe8\xae\xe9\xae\xea\xae\xeb\x49\x8d\xae\xec\xae\xed\x56\xc4\x52\xa3\x58\x45\xae\xee\xae\xef\xae\xf0\xae\xf1\xae\xf2\x66\x9a\xae\xf3\xae\xf4\x66\xa1\xae\xf5\x53\x93\xae\xf6\x66\x9b\xae\xf7\xae\xf8\xae\xf9\xae\xfa\xae\xfb\xae\xfc\xae\xfd\xaf\x41\x55\x65\xaf\x42\xaf\x43\xaf\x44\xaf\x45\xaf\x46\xaf\x47\x61\xde\x66\x9f\xaf\x48\xaf\x49\xaf\x4a\xaf\x4b\x57\x6e\x66\xa0\x49\x7b\x5a\x57\xaf\x4c\xaf\x4d\x59\xdb\xaf\x4e\xaf\x4f\xaf\x50\x66\x9e\xaf\x51\x66\x9c\xaf\x52\xaf\x53\xaf\x54\xaf\x55\xaf\x56\xaf\x57\xaf\x58\xaf\x59\xaf\x5a\xaf\x5b\xaf\x5c\xaf\x5d\xaf\x5e\xaf\x5f\xaf\x60\xaf\x61\xaf\x62\xaf\x63\xaf\x64\xaf\x65\xaf\x66\xaf\x67\x4a\x5c\xaf\x68\xaf\x69\xaf\x6a\x65\xaf\xaf\x6b\xaf\x6c\x5c\x74\xaf\x6d\x6a\xaa\x4a\x95\xaf\x6e\xaf\x6f\xaf\x70\xaf\x71\xaf\x72\x5b\xc0\x5b\xc1\xaf\x73\xaf\x74\xaf\x75\xaf\x76\xaf\x77\xaf\x78\x5b\x8a\x4f\xc9\xaf\x79\x6a\xa6\xaf\x7a", /* 8200 */ "\x59\xa7\x6a\xa7\x6a\xa8\xaf\x7b\x6a\xa9\x4f\xca\x5a\x7f\xaf\x7c\xaf\x7d\xaf\x7e\xaf\x7f\xaf\x81\x55\x81\x55\x82\xaf\x82\xaf\x83\x6a\x62\xaf\x84\x55\xe5\xaf\x85\x56\xf1\xaf\x86\xaf\x87\xaf\x88\xaf\x89\xaf\x8a\xaf\x8b\x61\xb5\x56\x54\xaf\x8c\x57\xe7\x5b\xda\xaf\x8d\x6a\xac\x6a\xad\x6a\xae\xaf\x8e\xaf\x8f\xaf\x90\xaf\x91\x6a\xb1\xaf\x92\x4d\xbc\x6a\xb2\x48\xe2\x6a\xaf\xaf\x93\x6a\xb0\x4f\x42\x49\xd4\xaf\x94\x6a\xb5\x6a\xb6\x4b\xe5\x49\xaf\x58\x6f\x6a\xb3\x4a\xab\xaf\x95\x6a\xb4\xaf\x96\xaf\x97\x6a\xb7\xaf\x98\xaf\x99\xaf\x9a\xaf\x9b\xaf\x9c\x6a\xb8\xaf\x9d\xaf\x9e\x57\x47\xaf\x9f\x6a\xb9\xaf\xa0\x6a\xba\xaf\xa1\xaf\xa2\xaf\xa3\x6a\xbb\xaf\xa4\xaf\xa5\xaf\xa6\xaf\xa7\xaf\xa8\xaf\xa9\xaf\xaa\xaf\xab\x56\x72\xaf\xac\x6a\xbc\xaf\xad\xaf\xae\xaf\xaf\xaf\xb0\x6a\xbd\xaf\xb1\xaf\xb2\xaf\xb3\xaf\xb4\xaf\xb5\xaf\xb6\xaf\xb7\xaf\xb8\x6a\xbe\xaf\xb9\xaf\xba\xaf\xbb\xaf\xbc\xaf\xbd\x6a\xdd\x51\x5c\x4e\xe7\xaf\xbe\x55\x4b\x59\x7e\x63\x96\xaf\xbf\xaf\xc0\xaf\xc1\xaf\xc2\x5e\xb2\x59\xd4\xaf\xc3\xaf\xc4\x5e\xb3\x48\xab\x5e\xb4", /* 8280 */ "\xaf\xc5\xaf\xc6\x4f\x7a\xaf\xc7\x5e\xb8\xaf\xc8\xaf\xc9\xaf\xca\x5c\xc1\xaf\xcb\x5e\xb6\x5a\x94\xaf\xcc\x55\x76\x5e\xb9\x5e\xb5\xaf\xcd\x5e\xba\x52\x42\xaf\xce\xaf\xcf\xaf\xd0\xaf\xd1\x5e\xbb\x5e\xc4\x5e\xbc\xaf\xd2\xaf\xd3\x57\xde\x5b\xa4\xaf\xd4\x5e\xce\xaf\xd5\x5e\xcc\xaf\xd6\xaf\xd7\x5e\xd1\x4f\x87\x51\xaa\xaf\xd8\x5e\xb7\x5e\xca\x5e\xcd\x5e\xbd\x4c\x72\x48\xc4\x5e\xc6\x58\xbd\x5e\xc0\x4e\x48\xaf\xd9\x4c\x5c\x5e\xcb\xaf\xda\xaf\xdb\x5e\xc5\x5e\xbe\x54\x7b\xaf\xdc\xaf\xdd\xaf\xde\x59\x5f\x5e\xbf\xaf\xdf\xaf\xe0\x5e\xc9\xaf\xe1\xaf\xe2\x5e\xcf\xaf\xe3\xaf\xe4\x57\xac\x5e\xc1\xaf\xe5\x5e\xc2\x5e\xc7\x5e\xc8\x49\xd3\x5e\xd0\x56\x75\xaf\xe6\x5a\xb6\x5e\xda\x5e\xde\x56\xa5\x5e\xe5\xaf\xe7\x52\x88\x5e\xdb\xaf\xe8\xaf\xe9\x50\x61\x5e\xd8\xaf\xea\x48\xf9\x4d\x56\x5e\xe4\x5e\xd2\xaf\xeb\x5e\xc3\x5e\xd5\x54\xf3\x50\x81\xaf\xec\xaf\xed\xaf\xee\xaf\xef\x55\x5b\xaf\xf0\xaf\xf1\xaf\xf2\x49\x5d\xaf\xf3\x5a\x42\xaf\xf4\xaf\xf5\x5e\xd9\xaf\xf6\xaf\xf7\x5e\xd4\xaf\xf8\x53\xba\xaf\xf9\x5e\xdd\xaf\xfa\xaf\xfb\xaf\xfc\xaf\xfd", /* 8300 */ "\xb0\x41\x5c\x62\x52\x4f\x4c\x56\x54\x71\x52\x49\x5e\xe1\x5e\xd7\x5e\xea\x5e\xd3\xb0\x42\xb0\x43\x5e\xdc\xb0\x44\x4f\xa4\x5e\xd6\xb0\x45\x5e\xdf\xb0\x46\xb0\x47\x5e\xe2\x5e\xe3\xb0\x48\x5e\xf7\xb0\x49\xb0\x4a\x5e\xe0\x5f\x42\x5e\xe6\xb0\x4b\xb0\x4c\xb0\x4d\xb0\x4e\xb0\x4f\xb0\x50\xb0\x51\xb0\x52\xb0\x53\xb0\x54\x4e\xea\x4a\xc3\xb0\x55\xb0\x56\x52\x43\x49\xe6\x5e\xf9\xb0\x57\x5e\xf1\xb0\x58\x5e\xee\xb0\x59\x5e\xfb\x5e\xed\x59\xef\x49\xe7\xb0\x5a\x54\xd6\x54\xe2\x5e\xfa\xb0\x5b\x5e\xec\xb0\x5c\xb0\x5d\xb0\x5e\x5e\xf6\xb0\x5f\xb0\x60\x5e\xf4\xb0\x61\xb0\x62\x4f\xa2\x5e\xf3\xb0\x63\x49\xdc\xb0\x64\xb0\x65\xb0\x66\xb0\x67\xb0\x68\x5e\xf2\x4e\xf5\x5e\xe7\x4e\x64\xb0\x69\x50\xf2\xb0\x6a\xb0\x6b\xb0\x6c\xb0\x6d\xb0\x6e\x4e\xd3\x5e\xe8\x5e\xe9\xb0\x6f\x5e\xf0\x5e\xf5\x5e\xf8\x4b\x54\xb0\x70\x54\xd8\x4e\x88\x5e\xfd\x5e\xfc\x5a\x4b\x5f\x41\x5f\x43\x5f\x45\x59\xf0\x5f\x44\x5f\x46\x5f\x47\x59\xa8\xb0\x71\xb0\x72\xb0\x73\xb0\x74\xb0\x75\xb0\x76\xb0\x77\x4d\xc8\x5f\x49\xb0\x78\xb0\x79\x5f\x56\x5f\x51\x5f\x54\xb0\x7a\xb0\x7b", /* 8380 */ "\xb0\x7c\xb0\x7d\xb0\x7e\xb0\x7f\xb0\x81\x5f\x50\x53\xcd\xb0\x82\xb0\x83\x50\xf1\xb0\x84\xb0\x85\xb0\x86\xb0\x87\x55\x4f\xb0\x88\xb0\x89\xb0\x8a\x5e\xeb\x5f\x4e\xb0\x8b\xb0\x8c\xb0\x8d\xb0\x8e\x5f\x57\xb0\x8f\xb0\x90\x5e\xef\x5f\x4f\xb0\x91\x5f\x58\xb0\x92\x5f\x4c\xb0\x93\xb0\x94\xb0\x95\xb0\x96\xb0\x97\xb0\x98\xb0\x99\x5f\x59\x5f\x53\x5f\x4d\x52\xa9\xb0\x9a\xb0\x9b\xb0\x9c\xb0\x9d\x5f\x48\x50\xb2\x51\x4b\x5f\x4a\x5f\x4b\xb0\x9e\x5f\x52\x4e\x92\x5f\x55\x5a\x48\x5f\x5a\xb0\x9f\x5f\x5b\x52\x47\xb0\xa0\xb0\xa1\x5f\x72\x5f\x5c\xb0\xa2\xb0\xa3\xb0\xa4\x5f\x71\xb0\xa5\x4d\x5d\xb0\xa6\xb0\xa7\x4f\xd4\xb0\xa8\x4f\xf9\xb0\xa9\xb0\xaa\x4d\xc9\xb0\xab\xb0\xac\xb0\xad\xb0\xae\x5f\x6a\xb0\xaf\x5f\x65\xb0\xb0\x5f\x5f\xb0\xb1\xb0\xb2\xb0\xb3\x49\xca\x5f\x63\xb0\xb4\x5f\x6b\x49\xa3\x5f\x75\xb0\xb5\xb0\xb6\xb0\xb7\x5f\x5e\xb0\xb8\xb0\xb9\xb0\xba\x53\xcf\x5f\x70\xb0\xbb\xb0\xbc\xb0\xbd\xb0\xbe\xb0\xbf\x5f\x74\x51\x83\x4c\x66\xb0\xc0\xb0\xc1\xb0\xc2\xb0\xc3\xb0\xc4\x5f\x6e\x5f\x6f\xb0\xc5\xb0\xc6\xb0\xc7\x5f\x64\xb0\xc8\xb0\xc9", /* 8400 */ "\xb0\xca\x5f\x5d\xb0\xcb\x5f\x6d\x56\xd0\xb0\xcc\x5f\x69\xb0\xcd\xb0\xce\xb0\xcf\xb0\xd0\x5f\x62\x52\x68\x53\xbb\x57\xad\x5f\x6c\xb0\xd1\x5f\x68\xb0\xd2\xb0\xd3\xb0\xd4\xb0\xd5\xb0\xd6\xb0\xd7\x5f\x61\xb0\xd8\xb0\xd9\xb0\xda\x5f\x66\x51\xdb\xb0\xdb\xb0\xdc\xb0\xdd\xb0\xde\xb0\xdf\xb0\xe0\x5a\x49\x5a\x4a\x5f\x73\x58\x95\x54\xf7\xb0\xe1\xb0\xe2\xb0\xe3\xb0\xe4\xb0\xe5\xb0\xe6\xb0\xe7\xb0\xe8\x5f\x87\xb0\xe9\xb0\xea\xb0\xeb\xb0\xec\xb0\xed\xb0\xee\x5f\x67\xb0\xef\xb0\xf0\xb0\xf1\x5f\x81\x51\xe3\xb0\xf2\xb0\xf3\xb0\xf4\xb0\xf5\xb0\xf6\xb0\xf7\xb0\xf8\xb0\xf9\x5f\x82\xb0\xfa\xb0\xfb\xb0\xfc\xb0\xfd\xb1\x41\xb1\x42\xb1\x43\xb1\x44\xb1\x45\xb1\x46\x5f\x77\xb1\x47\xb1\x48\xb1\x49\xb1\x4a\xb1\x4b\x5b\xf7\xb1\x4c\x5f\x79\x5f\x78\x4c\xef\x5f\x76\xb1\x4d\xb1\x4e\xb1\x4f\xb1\x50\x53\xce\xb1\x51\x4b\xac\xb1\x52\xb1\x53\xb1\x54\xb1\x55\xb1\x56\x5f\x83\xb1\x57\x4d\xf8\x5a\xe0\x5f\x88\xb1\x58\xb1\x59\xb1\x5a\x4a\xcf\xb1\x5b\x5f\x7a\xb1\x5c\x50\x9c\x5f\x84\xb1\x5d\x5f\x7f\xb1\x5e\x5f\x7d\xb1\x5f\xb1\x60\xb1\x61\xb1\x62\xb1\x63", /* 8480 */ "\xb1\x64\xb1\x65\x4b\x79\xb1\x66\xb1\x67\xb1\x68\xb1\x69\x5f\x7b\x5f\x7c\x5f\x7e\xb1\x6a\x4f\x4f\x5f\x85\xb1\x6b\x5f\x86\xb1\x6c\xb1\x6d\xb1\x6e\xb1\x6f\xb1\x70\xb1\x71\xb1\x72\xb1\x73\x5f\x96\xb1\x74\x52\x69\xb1\x75\xb1\x76\x56\x83\xb1\x77\xb1\x78\xb1\x79\xb1\x7a\x5f\x93\xb1\x7b\xb1\x7c\xb1\x7d\xb1\x7e\xb1\x7f\xb1\x81\xb1\x82\xb1\x83\xb1\x84\xb1\x85\xb1\x86\xb1\x87\xb1\x88\x5c\xe0\xb1\x89\xb1\x8a\x53\xd0\xb1\x8b\x5f\x95\xb1\x8c\xb1\x8d\xb1\x8e\x5b\x95\x5f\x94\x5f\x91\xb1\x8f\xb1\x90\x5f\x8d\xb1\x91\x5f\x90\xb1\x92\x5f\x89\xb1\x93\xb1\x94\x58\xed\xb1\x95\xb1\x96\xb1\x97\xb1\x98\x54\xd7\x5f\x8f\xb1\x99\xb1\x9a\x5f\x8a\xb1\x9b\xb1\x9c\x5f\x8b\x56\x93\xb1\x9d\x5f\x8e\xb1\x9e\xb1\x9f\x49\x6d\xb1\xa0\xb1\xa1\xb1\xa2\xb1\xa3\xb1\xa4\xb1\xa5\x50\xb5\xb1\xa6\x4e\xba\x5f\x92\xb1\xa7\xb1\xa8\x5f\x98\xb1\xa9\x5f\x97\x5f\x8c\xb1\xaa\xb1\xab\xb1\xac\xb1\xad\xb1\xae\x53\x8f\xb1\xaf\xb1\xb0\xb1\xb1\x5f\x9c\xb1\xb2\xb1\xb3\xb1\xb4\xb1\xb5\xb1\xb6\xb1\xb7\xb1\xb8\xb1\xb9\xb1\xba\xb1\xbb\xb1\xbc\x5f\xa3\xb1\xbd\xb1\xbe\x5f\xa2", /* 8500 */ "\xb1\xbf\xb1\xc0\xb1\xc1\xb1\xc2\xb1\xc3\xb1\xc4\xb1\xc5\xb1\xc6\xb1\xc7\xb1\xc8\xb1\xc9\xb1\xca\x5f\x99\xb1\xcb\xb1\xcc\xb1\xcd\xb1\xce\x52\x90\xb1\xcf\x51\xfa\xb1\xd0\xb1\xd1\xb1\xd2\x5b\x82\xb1\xd3\xb1\xd4\x57\xb4\xb1\xd5\xb1\xd6\xb1\xd7\xb1\xd8\x5f\x9e\xb1\xd9\x49\xcb\xb1\xda\xb1\xdb\xb1\xdc\xb1\xdd\xb1\xde\xb1\xdf\xb1\xe0\xb1\xe1\xb1\xe2\x52\xe7\x55\xde\xb1\xe3\xb1\xe4\xb1\xe5\xb1\xe6\xb1\xe7\xb1\xe8\xb1\xe9\xb1\xea\xb1\xeb\xb1\xec\x54\x5e\x5f\x9b\x5f\x9d\x5f\x9f\x5f\xa1\x48\xa9\x49\x6e\xb1\xed\xb1\xee\xb1\xef\xb1\xf0\xb1\xf1\x5f\xab\xb1\xf2\xb1\xf3\xb1\xf4\xb1\xf5\x5f\xa5\x4f\x56\x54\xee\xb1\xf6\xb1\xf7\xb1\xf8\xb1\xf9\xb1\xfa\xb1\xfb\xb1\xfc\xb1\xfd\xb2\x41\xb2\x42\xb2\x43\x5f\xa0\xb2\x44\xb2\x45\x5f\xa4\xb2\x46\xb2\x47\xb2\x48\xb2\x49\x5f\xa8\xb2\x4a\xb2\x4b\xb2\x4c\xb2\x4d\xb2\x4e\x5f\xa7\xb2\x4f\xb2\x50\xb2\x51\x5f\xa6\xb2\x52\xb2\x53\xb2\x54\xb2\x55\xb2\x56\xb2\x57\xb2\x58\xb2\x59\xb2\x5a\x5f\xac\xb2\x5b\x5a\xcb\xb2\x5c\xb2\x5d\xb2\x5e\xb2\x5f\x5f\xb2\x5f\xa9\x5f\xad\xb2\x60\xb2\x61\x50\xd8\xb2\x62", /* 8580 */ "\xb2\x63\xb2\x64\xb2\x65\xb2\x66\x49\x41\x5f\xb5\xb2\x67\x5f\xb0\xb2\x68\xb2\x69\xb2\x6a\xb2\x6b\xb2\x6c\xb2\x6d\xb2\x6e\x5f\xb1\xb2\x6f\xb2\x70\xb2\x71\xb2\x72\xb2\x73\xb2\x74\xb2\x75\xb2\x76\xb2\x77\xb2\x78\xb2\x79\x59\x46\x5f\xb4\xb2\x7a\xb2\x7b\xb2\x7c\xb2\x7d\xb2\x7e\xb2\x7f\xb2\x81\x5f\xae\xb2\x82\xb2\x83\xb2\x84\x5f\xaf\xb2\x85\x58\xbc\xb2\x86\xb2\x87\xb2\x88\x5f\xb3\x55\xec\x5f\xb8\xb2\x89\xb2\x8a\xb2\x8b\xb2\x8c\xb2\x8d\xb2\x8e\x5f\xb7\xb2\x8f\x5f\xb6\xb2\x90\xb2\x91\xb2\x92\xb2\x93\xb2\x94\xb2\x95\xb2\x96\x5f\xba\xb2\x97\xb2\x98\xb2\x99\xb2\x9a\xb2\x9b\xb2\x9c\xb2\x9d\x4f\x86\xb2\x9e\xb2\x9f\xb2\xa0\xb2\xa1\xb2\xa2\x49\xd7\x52\x8b\xb2\xa3\xb2\xa4\x5f\xb9\xb2\xa5\x53\x5a\xb2\xa6\xb2\xa7\xb2\xa8\xb2\xa9\xb2\xaa\xb2\xab\x5f\xbb\xb2\xac\xb2\xad\xb2\xae\xb2\xaf\xb2\xb0\xb2\xb1\xb2\xb2\x56\xd8\xb2\xb3\xb2\xb4\xb2\xb5\xb2\xb6\x4c\x4a\xb2\xb7\xb2\xb8\xb2\xb9\xb2\xba\xb2\xbb\xb2\xbc\xb2\xbd\xb2\xbe\xb2\xbf\xb2\xc0\xb2\xc1\xb2\xc2\xb2\xc3\xb2\xc4\xb2\xc5\xb2\xc6\xb2\xc7\x5a\xe4\xb2\xc8\xb2\xc9\xb2\xca\x5f\xbc", /* 8600 */ "\xb2\xcb\xb2\xcc\xb2\xcd\xb2\xce\xb2\xcf\x5f\xbe\xb2\xd0\xb2\xd1\xb2\xd2\xb2\xd3\xb2\xd4\xb2\xd5\xb2\xd6\xb2\xd7\xb2\xd8\xb2\xd9\xb2\xda\x52\xa1\xb2\xdb\xb2\xdc\xb2\xdd\xb2\xde\x5f\xc0\xb2\xdf\xb2\xe0\xb2\xe1\xb2\xe2\xb2\xe3\xb2\xe4\xb2\xe5\xb2\xe6\xb2\xe7\xb2\xe8\xb2\xe9\xb2\xea\xb2\xeb\xb2\xec\xb2\xed\xb2\xee\x5f\xbd\xb2\xef\x5f\xbf\xb2\xf0\xb2\xf1\xb2\xf2\xb2\xf3\xb2\xf4\xb2\xf5\xb2\xf6\xb2\xf7\xb2\xf8\xb2\xf9\xb2\xfa\xb2\xfb\xb2\xfc\xb2\xfd\x5b\x5a\xb3\x41\xb3\x42\xb3\x43\x5f\xc1\xb3\x44\xb3\x45\xb3\x46\xb3\x47\xb3\x48\xb3\x49\xb3\x4a\xb3\x4b\xb3\x4c\xb3\x4d\xb3\x4e\xb3\x4f\xb3\x50\xb3\x51\xb3\x52\xb3\x53\x69\xad\x4e\x42\x51\xb1\x53\x50\x51\xc6\xb3\x54\xb3\x55\x69\xae\xb3\x56\xb3\x57\xb3\x58\xb3\x59\xb3\x5a\x58\xe8\xb3\x5b\xb3\x5c\xb3\x5d\x5a\x7d\xb3\x5e\xb3\x5f\xb3\x60\x66\x5d\xb3\x61\xb3\x62\xb3\x63\xb3\x64\xb3\x65\xb3\x66\xb3\x67\xb3\x68\x4a\x87\x69\xaf\xb3\x69\x69\xb0\xb3\x6a\xb3\x6b\x55\xac\xb3\x6c\xb3\x6d\xb3\x6e\xb3\x6f\xb3\x70\xb3\x71\xb3\x72\x4d\xe6\x69\xb2\x69\xb4\x69\xb3\x56\x85\x58\x5a\x69\xb1", /* 8680 */ "\x55\xb3\x59\xce\x51\xeb\xb3\x73\xb3\x74\xb3\x75\xb3\x76\xb3\x77\xb3\x78\xb3\x79\x57\xc2\x69\xb7\x48\xf5\x69\xb6\xb3\x7a\xb3\x7b\xb3\x7c\xb3\x7d\xb3\x7e\x69\xbd\xb3\x7f\x49\xce\xb3\x81\xb3\x82\xb3\x83\xb3\x84\xb3\x85\xb3\x86\x59\x61\x69\xb9\xb3\x87\xb3\x88\xb3\x89\xb3\x8a\xb3\x8b\x69\xbb\x5a\xe8\xb3\x8c\xb3\x8d\x69\xba\x69\xb5\x69\xbe\x69\xbc\xb3\x8e\x69\xb8\xb3\x8f\xb3\x90\x69\xc6\x69\xc3\x69\xc5\xb3\x91\xb3\x92\x69\xc9\x69\xc1\x69\xbf\xb3\x93\xb3\x94\xb3\x95\x69\xc4\xb3\x96\xb3\x97\xb3\x98\xb3\x99\xb3\x9a\x5b\xfa\xb3\x9b\xb3\x9c\xb3\x9d\x69\xc0\xb3\x9e\x54\x9a\x55\x7f\xb3\x9f\x69\xc7\x4d\x66\x4b\x50\xb3\xa0\xb3\xa1\x69\xc2\x69\xc8\x69\xcf\x69\xd5\xb3\xa2\xb3\xa3\x4e\x77\xb3\xa4\xb3\xa5\xb3\xa6\x69\xd4\x57\x7c\xb3\xa7\x5b\xea\xb3\xa8\xb3\xa9\x69\xd1\x69\xd3\xb3\xaa\xb3\xab\xb3\xac\xb3\xad\x4c\xf1\xb3\xae\xb3\xaf\xb3\xb0\xb3\xb1\x69\xca\xb3\xb2\xb3\xb3\xb3\xb4\x69\xcd\x51\xf8\xb3\xb5\x5b\x7d\x69\xcb\x69\xcc\x69\xce\x69\xd2\xb3\xb6\xb3\xb7\xb3\xb8\x69\xd8\x5a\x5c\xb3\xb9\xb3\xba\xb3\xbb\xb3\xbc\x4b\xe9\xb3\xbd", /* 8700 */ "\x55\xf0\xb3\xbe\x4c\x85\x69\xd6\xb3\xbf\xb3\xc0\xb3\xc1\x69\xd7\x69\xd9\x69\xdc\x69\xda\xb3\xc2\xb3\xc3\x69\xdb\xb3\xc4\xb3\xc5\xb3\xc6\xb3\xc7\x59\x71\x69\xd0\xb3\xc8\x57\x69\xb3\xc9\x57\xce\x5b\xa8\xb3\xca\x69\xe2\xb3\xcb\x52\x7b\xb3\xcc\x69\xdf\xb3\xcd\xb3\xce\x50\xae\x69\xeb\x69\xdd\xb3\xcf\x69\xe0\xb3\xd0\xb3\xd1\xb3\xd2\x69\xe7\xb3\xd3\xb3\xd4\xb3\xd5\xb3\xd6\x69\xe1\xb3\xd7\xb3\xd8\x69\xe6\xb3\xd9\xb3\xda\x69\xe5\xb3\xdb\xb3\xdc\x69\xe8\xb3\xdd\xb3\xde\xb3\xdf\x69\xde\xb3\xe0\xb3\xe1\x69\xe3\x69\xe9\xb3\xe2\xb3\xe3\xb3\xe4\xb3\xe5\xb3\xe6\xb3\xe7\xb3\xe8\x5a\x4c\x69\xe4\x49\xf4\xb3\xe9\xb3\xea\x69\xf1\xb3\xeb\x58\xaa\xb3\xec\xb3\xed\xb3\xee\xb3\xef\x69\xf4\xb3\xf0\xb3\xf1\xb3\xf2\x4e\x68\xb3\xf3\x69\xf8\xb3\xf4\xb3\xf5\xb3\xf6\xb3\xf7\xb3\xf8\xb3\xf9\x69\xef\xb3\xfa\xb3\xfb\x69\xf5\x69\xf7\x69\xf9\xb3\xfc\xb3\xfd\xb4\x41\xb4\x42\xb4\x43\xb4\x44\xb4\x45\xb4\x46\x69\xf2\xb4\x47\x69\xf0\xb4\x48\xb4\x49\xb4\x4a\x4d\xfa\xb4\x4b\x4b\x9c\xb4\x4c\xb4\x4d\xb4\x4e\xb4\x4f\x69\xee\x69\xf6\x69\xec\x69\xed\xb4\x50", /* 8780 */ "\xb4\x51\xb4\x52\x69\xea\x6a\x46\xb4\x53\x6a\x43\xb4\x54\xb4\x55\x6a\x42\xb4\x56\xb4\x57\x69\xf3\xb4\x58\x54\xd9\xb4\x59\xb4\x5a\xb4\x5b\xb4\x5c\xb4\x5d\x69\xfa\xb4\x5e\xb4\x5f\xb4\x60\x6a\x45\xb4\x61\xb4\x62\xb4\x63\xb4\x64\xb4\x65\xb4\x66\xb4\x67\x52\x99\xb4\x68\xb4\x69\xb4\x6a\xb4\x6b\xb4\x6c\xb4\x6d\xb4\x6e\xb4\x6f\x69\xfc\xb4\x70\xb4\x71\x6a\x47\x6a\x49\x6a\x44\xb4\x72\x69\xfb\xb4\x73\xb4\x74\xb4\x75\x6a\x4b\xb4\x76\x6a\x4a\xb4\x77\xb4\x78\xb4\x79\xb4\x7a\x51\xdc\xb4\x7b\xb4\x7c\x6a\x4e\xb4\x7d\xb4\x7e\x6a\x50\xb4\x7f\xb4\x81\xb4\x82\xb4\x83\xb4\x84\x6a\x41\xb4\x85\xb4\x86\xb4\x87\x6a\x51\x6a\x4c\xb4\x88\xb4\x89\xb4\x8a\xb4\x8b\xb4\x8c\x6a\x4f\x69\xfd\x6a\x4d\xb4\x8d\xb4\x8e\xb4\x8f\xb4\x90\xb4\x91\xb4\x92\xb4\x93\x6a\x52\xb4\x94\xb4\x95\xb4\x96\xb4\x97\x6a\x54\xb4\x98\xb4\x99\xb4\x9a\xb4\x9b\x6a\x48\xb4\x9c\xb4\x9d\xb4\x9e\xb4\x9f\x6a\x53\xb4\xa0\xb4\xa1\xb4\xa2\x6a\x55\xb4\xa3\xb4\xa4\xb4\xa5\xb4\xa6\xb4\xa7\xb4\xa8\xb4\xa9\xb4\xaa\xb4\xab\xb4\xac\x58\xb6\xb4\xad\xb4\xae\xb4\xaf\xb4\xb0\x6a\x58\xb4\xb1", /* 8800 */ "\xb4\xb2\xb4\xb3\xb4\xb4\x5d\x9a\xb4\xb5\xb4\xb6\xb4\xb7\xb4\xb8\xb4\xb9\xb4\xba\x6a\x59\xb4\xbb\xb4\xbc\xb4\xbd\xb4\xbe\xb4\xbf\xb4\xc0\xb4\xc1\xb4\xc2\x6a\x57\xb4\xc3\x54\xe3\x6a\x56\xb4\xc4\xb4\xc5\xb4\xc6\xb4\xc7\x6a\x5a\xb4\xc8\xb4\xc9\xb4\xca\xb4\xcb\xb4\xcc\x6a\x5b\x4a\xbf\xb4\xcd\xb4\xce\xb4\xcf\xb4\xd0\xb4\xd1\xb4\xd2\xb4\xd3\xb4\xd4\xb4\xd5\xb4\xd6\xb4\xd7\xb4\xd8\xb4\xd9\xb4\xda\xb4\xdb\x67\xc2\xb4\xdc\xb4\xdd\xb4\xde\xb4\xdf\xb4\xe0\xb4\xe1\x6a\x5c\xb4\xe2\xb4\xe3\x6a\x5d\xb4\xe4\xb4\xe5\xb4\xe6\x59\x4a\xb4\xe7\xb4\xe8\xb4\xe9\x6a\xab\x58\xc5\xb4\xea\xb4\xeb\xb4\xec\xb4\xed\xb4\xee\xb4\xef\x58\xcf\x59\x7c\xb4\xf0\xb4\xf1\xb4\xf2\xb4\xf3\xb4\xf4\xb4\xf5\x58\x6e\xb4\xf6\xb4\xf7\x4f\x76\xb4\xf8\x59\x63\xb4\xf9\xb4\xfa\xb4\xfb\xb4\xfc\xb4\xfd\xb5\x41\xb5\x42\x4d\xe1\x61\x8a\x59\xc1\x69\x62\x49\xb8\xb5\x43\xb5\x44\x49\x8e\x69\x63\xb5\x45\x55\x60\x4a\x64\xb5\x46\x5d\x93\xb5\x47\x56\x45\xb5\x48\x69\x64\xb5\x49\xb5\x4a\xb5\x4b\xb5\x4c\x5b\xd3\xb5\x4d\xb5\x4e\xb5\x4f\xb5\x50\xb5\x51\x69\x65\x6a\xbf\x69\x66", /* 8880 */ "\xb5\x52\x5a\xab\x69\x67\xb5\x53\x48\xbf\x6a\xc0\xb5\x54\xb5\x55\x6a\xc1\xb5\x56\xb5\x57\x4a\xfb\xb5\x58\x53\x7b\xb5\x59\xb5\x5a\xb5\x5b\xb5\x5c\x56\xba\xb5\x5d\xb5\x5e\xb5\x5f\x58\xe3\xb5\x60\xb5\x61\xb5\x62\xb5\x63\xb5\x64\x57\x81\xb5\x65\xb5\x66\xb5\x67\xb5\x68\xb5\x69\x69\x68\xb5\x6a\x5d\x94\xb5\x6b\xb5\x6c\xb5\x6d\xb5\x6e\xb5\x6f\xb5\x70\x49\x5b\xb5\x71\x58\x4e\xb5\x72\xb5\x73\xb5\x74\x4c\xa3\xb5\x75\xb5\x76\xb5\x77\xb5\x78\xb5\x79\x69\x6a\xb5\x7a\xb5\x7b\xb5\x7c\xb5\x7d\x69\x6b\xb5\x7e\xb5\x7f\xb5\x81\xb5\x82\x49\xc2\x51\x71\xb5\x83\xb5\x84\x5c\x50\x69\x69\xb5\x85\xb5\x86\x69\x6c\xb5\x87\xb5\x88\xb5\x89\xb5\x8a\x69\x6e\xb5\x8b\xb5\x8c\xb5\x8d\x5d\x97\xb5\x8e\x59\xe0\x5a\xa2\xb5\x8f\xb5\x90\x6a\xc2\x54\xb8\xb5\x91\xb5\x92\xb5\x93\xb5\x94\xb5\x95\x6a\xc3\xb5\x96\xb5\x97\x69\x6d\x69\x6f\x50\x84\x69\x70\xb5\x98\xb5\x99\x69\x74\xb5\x9a\xb5\x9b\xb5\x9c\xb5\x9d\xb5\x9e\xb5\x9f\xb5\xa0\x69\x76\x69\x71\xb5\xa1\x55\x71\x53\x82\xb5\xa2\xb5\xa3\xb5\xa4\x51\xe2\x4d\x9d\xb5\xa5\xb5\xa6\x69\x73\xb5\xa7\x69\x75\xb5\xa8", /* 8900 */ "\xb5\xa9\xb5\xaa\x4d\x73\xb5\xab\xb5\xac\xb5\xad\xb5\xae\xb5\xaf\xb5\xb0\xb5\xb1\x69\x7b\xb5\xb2\xb5\xb3\xb5\xb4\xb5\xb5\xb5\xb6\x4d\xd5\xb5\xb7\x48\xfc\x69\x79\xb5\xb8\xb5\xb9\xb5\xba\xb5\xbb\xb5\xbc\x69\x78\x69\x72\x69\x7a\xb5\xbd\xb5\xbe\xb5\xbf\xb5\xc0\xb5\xc1\x69\x77\xb5\xc2\xb5\xc3\xb5\xc4\x54\xeb\xb5\xc5\xb5\xc6\xb5\xc7\xb5\xc8\x57\x6a\x69\x7d\xb5\xc9\xb5\xca\xb5\xcb\xb5\xcc\x63\x5d\xb5\xcd\xb5\xce\xb5\xcf\x69\x7c\xb5\xd0\x69\x7e\xb5\xd1\xb5\xd2\xb5\xd3\xb5\xd4\xb5\xd5\xb5\xd6\xb5\xd7\xb5\xd8\xb5\xd9\xb5\xda\x69\x7f\xb5\xdb\xb5\xdc\x58\x86\xb5\xdd\xb5\xde\xb5\xdf\xb5\xe0\xb5\xe1\xb5\xe2\xb5\xe3\xb5\xe4\xb5\xe5\xb5\xe6\xb5\xe7\xb5\xe8\xb5\xe9\xb5\xea\xb5\xeb\xb5\xec\xb5\xed\xb5\xee\xb5\xef\xb5\xf0\xb5\xf1\xb5\xf2\xb5\xf3\xb5\xf4\xb5\xf5\x6a\xc4\x4f\x94\xb5\xf6\xb5\xf7\xb5\xf8\xb5\xf9\xb5\xfa\xb5\xfb\x69\x81\xb5\xfc\xb5\xfd\xb6\x41\xb6\x42\xb6\x43\xb6\x44\xb6\x45\xb6\x46\xb6\x47\xb6\x48\xb6\x49\xb6\x4a\xb6\x4b\xb6\x4c\xb6\x4d\xb6\x4e\xb6\x4f\xb6\x50\xb6\x51\xb6\x52\x69\x82\xb6\x53\xb6\x54\xb6\x55\x57\xf6", /* 8980 */ "\xb6\x56\x59\xa9\xb6\x57\x69\x9c\xb6\x58\xb6\x59\x4c\xb1\xb6\x5a\xb6\x5b\xb6\x5c\xb6\x5d\xb6\x5e\xb6\x5f\xb6\x60\xb6\x61\xb6\x62\xb6\x63\xb6\x64\xb6\x65\xb6\x66\xb6\x67\xb6\x68\xb6\x69\xb6\x6a\xb6\x6b\xb6\x6c\xb6\x6d\xb6\x6e\xb6\x6f\xb6\x70\xb6\x71\xb6\x72\xb6\x73\xb6\x74\xb6\x75\xb6\x76\xb6\x77\xb6\x78\xb6\x79\xb6\x7a\xb6\x7b\xb6\x7c\xb6\x7d\xb6\x7e\xb6\x7f\xb6\x81\xb6\x82\xb6\x83\xb6\x84\xb6\x85\xb6\x86\xb6\x87\xb6\x88\xb6\x89\xb6\x8a\xb6\x8b\xb6\x8c\xb6\x8d\xb6\x8e\xb6\x8f\xb6\x90\xb6\x91\xb6\x92\xb6\x93\xb6\x94\x4e\xfa\x4d\x7b\xb6\x95\x4d\x87\x52\x79\x55\xd2\x65\xe7\x50\xbf\x4f\xf4\x65\xe8\x65\xe9\x65\xea\xb6\x96\x65\xeb\x65\xec\x65\xed\x65\xee\x4f\x67\xb6\x97\xb6\x98\xb6\x99\x6b\x9c\xb6\x9a\xb6\x9b\xb6\x9c\x6b\x9e\xb6\x9d\x6b\x9f\xb6\x9e\x6b\x9d\xb6\x9f\xb6\xa0\xb6\xa1\xb6\xa2\x4f\x83\xb6\xa3\x6b\xa0\x4a\xa4\xb6\xa4\xb6\xa5\xb6\xa6\xb6\xa7\x6b\xa1\xb6\xa8\xb6\xa9\xb6\xaa\x6b\xa2\xb6\xab\xb6\xac\xb6\xad\x66\xb1\xb6\xae\xb6\xaf\xb6\xb0\xb6\xb1\xb6\xb2\xb6\xb3\xb6\xb4\xb6\xb5\xb6\xb6\xb6\xb7\xb6\xb8\xb6\xb9", /* 8a00 */ "\x59\x74\xb6\xba\xb6\xbb\xb6\xbc\xb6\xbd\xb6\xbe\xb6\xbf\x5d\x8b\xb6\xc0\xb6\xc1\xb6\xc2\xb6\xc3\xb6\xc4\xb6\xc5\xb6\xc6\xb6\xc7\xb6\xc8\xb6\xc9\xb6\xca\xb6\xcb\xb6\xcc\xb6\xcd\xb6\xce\xb6\xcf\xb6\xd0\xb6\xd1\xb6\xd2\xb6\xd3\xb6\xd4\xb6\xd5\xb6\xd6\xb6\xd7\xb6\xd8\xb6\xd9\xb6\xda\xb6\xdb\xb6\xdc\xb6\xdd\xb6\xde\xb6\xdf\xb6\xe0\xb6\xe1\xb6\xe2\xb6\xe3\xb6\xe4\xb6\xe5\xb6\xe6\xb6\xe7\xb6\xe8\xb6\xe9\xb6\xea\xb6\xeb\xb6\xec\xb6\xed\xb6\xee\xb6\xef\xb6\xf0\xb6\xf1\xb6\xf2\xb6\xf3\xb6\xf4\xb6\xf5\x6b\xa3\xb6\xf6\xb6\xf7\xb6\xf8\xb6\xf9\xb6\xfa\xb6\xfb\xb6\xfc\xb6\xfd\xb7\x41\x67\xb9\xb7\x42\xb7\x43\xb7\x44\xb7\x45\xb7\x46\xb7\x47\xb7\x48\xb7\x49\xb7\x4a\xb7\x4b\xb7\x4c\xb7\x4d\xb7\x4e\xb7\x4f\xb7\x50\xb7\x51\xb7\x52\xb7\x53\xb7\x54\xb7\x55\xb7\x56\xb7\x57\xb7\x58\xb7\x59\xb7\x5a\xb7\x5b\xb7\x5c\xb7\x5d\xb7\x5e\xb7\x5f\xb7\x60\xb7\x61\xb7\x62\xb7\x63\xb7\x64\xb7\x65\xb7\x66\xb7\x67\xb7\x68\xb7\x69\xb7\x6a\xb7\x6b\xb7\x6c\xb7\x6d\xb7\x6e\xb7\x6f\xb7\x70\xb7\x71\x5b\x52\xb7\x72\xb7\x73\xb7\x74\xb7\x75\xb7\x76\xb7\x77", /* 8a80 */ "\xb7\x78\xb7\x79\xb7\x7a\xb7\x7b\xb7\x7c\xb7\x7d\xb7\x7e\xb7\x7f\xb7\x81\x5a\x9f\x56\xdb\xb7\x82\xb7\x83\xb7\x84\xb7\x85\xb7\x86\xb7\x87\xb7\x88\xb7\x89\x55\xc3\xb7\x8a\xb7\x8b\xb7\x8c\xb7\x8d\xb7\x8e\xb7\x8f\xb7\x90\xb7\x91\xb7\x92\xb7\x93\xb7\x94\xb7\x95\xb7\x96\xb7\x97\xb7\x98\xb7\x99\xb7\x9a\xb7\x9b\xb7\x9c\xb7\x9d\xb7\x9e\xb7\x9f\xb7\xa0\xb7\xa1\xb7\xa2\xb7\xa3\xb7\xa4\xb7\xa5\xb7\xa6\xb7\xa7\xb7\xa8\xb7\xa9\xb7\xaa\xb7\xab\xb7\xac\xb7\xad\xb7\xae\xb7\xaf\xb7\xb0\xb7\xb1\xb7\xb2\xb7\xb3\xb7\xb4\xb7\xb5\xb7\xb6\xb7\xb7\xb7\xb8\xb7\xb9\xb7\xba\xb7\xbb\xb7\xbc\xb7\xbd\xb7\xbe\xb7\xbf\xb7\xc0\xb7\xc1\xb7\xc2\xb7\xc3\xb7\xc4\xb7\xc5\xb7\xc6\xb7\xc7\xb7\xc8\xb7\xc9\xb7\xca\xb7\xcb\xb7\xcc\xb7\xcd\xb7\xce\xb7\xcf\xb7\xd0\xb7\xd1\xb7\xd2\xb7\xd3\xb7\xd4\xb7\xd5\xb7\xd6\xb7\xd7\xb7\xd8\xb7\xd9\xb7\xda\xb7\xdb\xb7\xdc\xb7\xdd\xb7\xde\xb7\xdf\xb7\xe0\xb7\xe1\xb7\xe2\xb7\xe3\xb7\xe4\xb7\xe5\xb7\xe6\xb7\xe7\xb7\xe8\xb7\xe9\xb7\xea\xb7\xeb\xb7\xec\xb7\xed\xb7\xee\xb7\xef\xb7\xf0\xb7\xf1\xb7\xf2\xb7\xf3\xb7\xf4\xb7\xf5", /* 8b00 */ "\xb7\xf6\xb7\xf7\xb7\xf8\xb7\xf9\xb7\xfa\xb7\xfb\xb7\xfc\x63\x60\xb7\xfd\xb8\x41\xb8\x42\xb8\x43\xb8\x44\xb8\x45\xb8\x46\xb8\x47\xb8\x48\xb8\x49\xb8\x4a\xb8\x4b\xb8\x4c\xb8\x4d\xb8\x4e\xb8\x4f\xb8\x50\xb8\x51\xb8\x52\xb8\x53\xb8\x54\xb8\x55\xb8\x56\xb8\x57\xb8\x58\xb8\x59\xb8\x5a\xb8\x5b\xb8\x5c\xb8\x5d\x6b\xa4\xb8\x5e\xb8\x5f\xb8\x60\xb8\x61\xb8\x62\xb8\x63\xb8\x64\xb8\x65\xb8\x66\xb8\x67\xb8\x68\xb8\x69\xb8\x6a\xb8\x6b\xb8\x6c\xb8\x6d\xb8\x6e\xb8\x6f\xb8\x70\xb8\x71\xb8\x72\xb8\x73\xb8\x74\xb8\x75\xb8\x76\xb8\x77\xb8\x78\xb8\x79\xb8\x7a\xb8\x7b\xb8\x7c\xb8\x7d\xb8\x7e\xb8\x7f\xb8\x81\xb8\x82\xb8\x83\xb8\x84\xb8\x85\xb8\x86\xb8\x87\xb8\x88\xb8\x89\xb8\x8a\xb8\x8b\xb8\x8c\xb8\x8d\xb8\x8e\xb8\x8f\xb8\x90\xb8\x91\xb8\x92\xb8\x93\xb8\x94\xb8\x95\xb8\x96\xb8\x97\xb8\x98\xb8\x99\xb8\x9a\xb8\x9b\xb8\x9c\xb8\x9d\x4f\xae\xb8\x9e\xb8\x9f\xb8\xa0\xb8\xa1\xb8\xa2\x53\xa8\xb8\xa3\xb8\xa4\xb8\xa5\xb8\xa6\xb8\xa7\xb8\xa8\xb8\xa9\xb8\xaa\xb8\xab\xb8\xac\xb8\xad\xb8\xae\xb8\xaf\xb8\xb0\xb8\xb1\xb8\xb2\xb8\xb3\xb8\xb4\xb8\xb5", /* 8b80 */ "\xb8\xb6\xb8\xb7\xb8\xb8\xb8\xb9\xb8\xba\xb8\xbb\xb8\xbc\xb8\xbd\xb8\xbe\xb8\xbf\xb8\xc0\xb8\xc1\xb8\xc2\xb8\xc3\xb8\xc4\xb8\xc5\xb8\xc6\xb8\xc7\xb8\xc8\xb8\xc9\xb8\xca\xb8\xcb\xb8\xcc\xb8\xcd\xb8\xce\xb8\xcf\xb8\xd0\xb8\xd1\xb8\xd2\xb8\xd3\xb8\xd4\xb8\xd5\x5d\xa4\x4e\xc5\x4b\xa8\x4c\xbb\x54\xce\x4e\xa4\x5d\xa5\x5d\xa6\x56\xd5\x54\xc2\x5d\xa7\x53\xfc\xb8\xd6\x59\x55\x59\xe8\x59\x56\x4e\xc6\xb8\xd7\x4f\x52\x4e\x85\x5d\xa8\x5d\xa9\x59\x68\x5d\xaa\x58\xec\x4b\xee\x51\xda\xb8\xd8\x56\x6f\x4c\x8e\x55\x89\x4c\x63\x4f\xf6\x5b\xa3\x5d\xab\x5d\xac\x53\xbf\x5c\x88\x55\xb5\xb8\xd9\x5b\x49\x56\x7f\x5b\x90\x5d\xad\x5b\xde\x4a\xc9\x5d\xaf\x5d\xae\xb8\xda\x59\xea\x5d\xb0\x5d\xb1\x5d\xb2\x55\xd3\x5d\xb3\x55\xaa\x5d\xb4\x5d\xb5\x4a\x6f\x5b\xee\x5d\xb6\x4e\x50\x4b\x4e\x5d\xb7\x5d\xb8\x4d\x8f\x59\x4f\x59\xe7\x5d\xb9\x4c\xc2\x58\x8b\x49\xee\x5d\xba\x5d\xbb\xb8\xdb\x4f\x8c\x57\xdb\x5a\x90\x5d\xbc\x57\xf2\x5d\xbd\x5a\x75\x4e\x86\x5d\xbe\x56\x55\x56\x70\x5d\xbf\x54\x8c\x5b\xed\x5d\xc0\x53\x55\x4b\xc0\x5d\xc1\x4c\x6c\x50\x6e\x5d\xc2", /* 8c00 */ "\x5d\xc3\x56\x4d\x5d\xc4\x4b\x98\x5d\xc5\x51\x62\x5c\x5b\x5d\xc6\x56\xb7\xb8\xdc\x59\xe9\x52\xb0\x5d\xc7\x4b\x9e\x4e\x71\x5d\xc8\x58\xb2\x5d\xc9\x5d\xca\x57\xbc\x5d\xcb\x5d\xcc\x5d\xcd\x49\xf6\x5d\xd0\x5d\xce\x59\x89\x5d\xcf\x52\x75\x5d\xd1\xb8\xdd\x5d\xd2\x5d\xd3\x5d\xd4\x58\xba\x59\xa4\x48\xf8\x5d\xd5\x54\x4b\x5d\xd6\x4f\x98\x52\x41\x5d\xd7\x5d\xd8\x52\x9e\x56\xb6\x5d\xd9\x5d\xda\x50\xbd\x53\xd6\x5d\xdb\x5d\xdc\x54\x54\x5d\xdd\x5d\xde\x4d\x68\xb8\xde\xb8\xdf\xb8\xe0\xb8\xe1\xb8\xe2\xb8\xe3\xb8\xe4\xb8\xe5\xb8\xe6\x4e\x8e\xb8\xe7\xb8\xe8\xb8\xe9\xb8\xea\x4b\xb8\x6a\xf7\xb8\xeb\x6a\xf8\xb8\xec\xb8\xed\x57\x84\xb8\xee\xb8\xef\xb8\xf0\xb8\xf1\xb8\xf2\xb8\xf3\xb8\xf4\xb8\xf5\x6b\x59\xb8\xf6\xb8\xf7\xb8\xf8\xb8\xf9\x66\x81\xb8\xfa\xb8\xfb\xb8\xfc\xb8\xfd\xb9\x41\xb9\x42\x58\x94\x4e\x5f\xb9\x43\xb9\x44\xb9\x45\xb9\x46\xb9\x47\xb9\x48\xb9\x49\x4d\xbf\x5a\xa4\xb9\x4a\xb9\x4b\xb9\x4c\xb9\x4d\xb9\x4e\xb9\x4f\xb9\x50\x61\x79\xb9\x51\xb9\x52\xb9\x53\xb9\x54\x6b\x95\x49\x4a\x49\xf1\xb9\x55\xb9\x56\xb9\x57\xb9\x58\xb9\x59", /* 8c80 */ "\xb9\x5a\xb9\x5b\x6b\x96\xb9\x5c\xb9\x5d\x6b\x98\xb9\x5e\xb9\x5f\xb9\x60\x4d\xd0\x6b\x97\xb9\x61\x52\x52\xb9\x62\xb9\x63\xb9\x64\xb9\x65\xb9\x66\xb9\x67\xb9\x68\x6b\x9a\xb9\x69\xb9\x6a\xb9\x6b\x6b\x99\xb9\x6c\xb9\x6d\xb9\x6e\xb9\x6f\xb9\x70\xb9\x71\xb9\x72\xb9\x73\xb9\x74\xb9\x75\xb9\x76\xb9\x77\xb9\x78\xb9\x79\xb9\x7a\xb9\x7b\xb9\x7c\xb9\x7d\xb9\x7e\xb9\x7f\xb9\x81\xb9\x82\xb9\x83\xb9\x84\xb9\x85\xb9\x86\xb9\x87\xb9\x88\xb9\x89\xb9\x8a\xb9\x8b\xb9\x8c\xb9\x8d\xb9\x8e\xb9\x8f\xb9\x90\xb9\x91\xb9\x92\xb9\x93\xb9\x94\xb9\x95\xb9\x96\xb9\x97\xb9\x98\xb9\x99\xb9\x9a\xb9\x9b\xb9\x9c\xb9\x9d\xb9\x9e\xb9\x9f\xb9\xa0\xb9\xa1\xb9\xa2\xb9\xa3\xb9\xa4\xb9\xa5\xb9\xa6\xb9\xa7\xb9\xa8\xb9\xa9\xb9\xaa\xb9\xab\xb9\xac\xb9\xad\xb9\xae\xb9\xaf\xb9\xb0\xb9\xb1\xb9\xb2\xb9\xb3\xb9\xb4\xb9\xb5\xb9\xb6\xb9\xb7\xb9\xb8\xb9\xb9\xb9\xba\xb9\xbb\xb9\xbc\xb9\xbd\xb9\xbe\xb9\xbf\xb9\xc0\xb9\xc1\xb9\xc2\xb9\xc3\xb9\xc4\xb9\xc5\xb9\xc6\xb9\xc7\xb9\xc8\xb9\xc9\xb9\xca\xb9\xcb\xb9\xcc\xb9\xcd\xb9\xce\xb9\xcf\xb9\xd0\xb9\xd1\xb9\xd2\xb9\xd3", /* 8d00 */ "\xb9\xd4\xb9\xd5\xb9\xd6\xb9\xd7\xb9\xd8\xb9\xd9\xb9\xda\xb9\xdb\xb9\xdc\xb9\xdd\xb9\xde\xb9\xdf\xb9\xe0\xb9\xe1\xb9\xe2\xb9\xe3\xb9\xe4\xb9\xe5\xb9\xe6\xb9\xe7\xb9\xe8\xb9\xe9\xb9\xea\xb9\xeb\xb9\xec\xb9\xed\xb9\xee\xb9\xef\xb9\xf0\x49\x54\x5b\x8b\x4c\xb9\xb9\xf1\x4d\x51\x49\xc5\x5a\xef\x58\x6d\x48\xdb\x5b\x6b\x4e\x96\x5b\xc9\x4c\x57\x56\xaf\x53\xb5\x49\x82\x4d\x5a\x5b\xfb\x4d\x82\x4c\x41\x4e\xf9\x65\xd9\x65\xda\x56\xf8\x4d\x94\x65\xdb\x4a\xfa\x52\x53\x4c\x71\x4d\xd7\x65\xdc\x5a\xf3\x65\xdd\x4e\xd5\x4e\x7f\x65\xde\x51\x7e\x51\xb7\x5a\xde\x5c\x6a\x65\xdf\x65\xe0\x65\xe3\x65\xe1\x65\xe2\x55\x7e\x4c\xb2\x4b\xc3\x65\xe4\x55\xe9\x55\x6d\x4a\xcc\xb9\xf2\xb9\xf3\x61\xd8\x53\x83\x65\xe5\x50\xb4\xb9\xf4\x5c\x58\x65\xe6\x5c\x4c\x54\xfb\x5c\xd2\x5c\xcc\x5a\xdd\xb9\xf5\x5a\xf8\x55\x64\x5a\x4e\x4c\xd2\x4a\x81\xb9\xf6\x55\x83\x6a\xf5\xb9\xf7\xb9\xf8\xb9\xf9\x4d\xd4\xb9\xfa\x6a\xf6\xb9\xfb\xb9\xfc\x5c\x7f\xb9\xfd\xba\x41\x6a\xf0\x4c\xaf\x5b\x74\x4c\xce\x53\xef\xba\x42\xba\x43\xba\x44\xba\x45\xba\x46\xba\x47\xba\x48\xba\x49", /* 8d80 */ "\xba\x4a\x4a\x63\xba\x4b\xba\x4c\x6a\xf1\x4a\x4c\xba\x4d\xba\x4e\xba\x4f\xba\x50\x5a\xbc\x54\x98\xba\x51\xba\x52\xba\x53\xba\x54\xba\x55\x6a\xf3\xba\x56\xba\x57\x6a\xf2\xba\x58\xba\x59\xba\x5a\xba\x5b\xba\x5c\xba\x5d\xba\x5e\xba\x5f\xba\x60\xba\x61\x56\xca\xba\x62\xba\x63\xba\x64\x54\xa3\xba\x65\xba\x66\xba\x67\xba\x68\xba\x69\xba\x6a\xba\x6b\xba\x6c\xba\x6d\xba\x6e\xba\x6f\xba\x70\xba\x71\x6a\xf4\xba\x72\x5c\x84\x53\x5f\x6b\x60\xba\x73\xba\x74\x6b\x5b\xba\x75\x6b\x63\xba\x76\x6b\x62\xba\x77\x5b\xb9\x6b\x61\xba\x78\xba\x79\xba\x7a\x5a\xbd\x6b\x64\xba\x7b\x6b\x6c\xba\x7c\xba\x7d\xba\x7e\xba\x7f\x48\xce\x4b\x99\xba\x81\x6b\x69\x6b\x6a\xba\x82\x53\x7c\xba\x83\xba\x84\xba\x85\xba\x86\x6b\x65\x6b\x66\xba\x87\xba\x88\x6b\x67\x6b\x6b\xba\x89\x4f\xdf\x6b\x68\x4c\xf9\xba\x8a\xba\x8b\xba\x8c\x6b\x70\x6b\x73\xba\x8d\xba\x8e\xba\x8f\x50\x88\xba\x90\x4d\x93\x6b\x5c\x6b\x6d\xba\x91\xba\x92\x51\xb6\xba\x93\xba\x94\xba\x95\x56\xf7\xba\x96\x4e\xf8\xba\x97\x6b\x6e\x6b\x6f\x6b\x71\x4b\xe4\x6b\x72\xba\x98\x6b\x75\xba\x99\xba\x9a", /* 8e00 */ "\xba\x9b\xba\x9c\xba\x9d\xba\x9e\xba\x9f\x6b\x5d\xba\xa0\xba\xa1\xba\xa2\x6b\x74\x5a\x5b\xba\xa3\x4a\x8d\xba\xa4\xba\xa5\x56\xa3\xba\xa6\xba\xa7\xba\xa8\xba\xa9\x6b\x76\xba\xaa\xba\xab\xba\xac\xba\xad\xba\xae\xba\xaf\xba\xb0\xba\xb1\x6b\x77\x4f\xe0\x6b\x78\xba\xb2\xba\xb3\x56\xde\x6b\x7b\xba\xb4\xba\xb5\xba\xb6\xba\xb7\xba\xb8\x49\xc7\x5c\x79\xba\xb9\x6b\x79\xba\xba\x6b\x7a\x6b\x7c\xba\xbb\x6b\x83\xba\xbc\xba\xbd\xba\xbe\x6b\x81\xba\xbf\xba\xc0\xba\xc1\x6b\x7f\x6b\x7d\xba\xc2\xba\xc3\x6b\x82\xba\xc4\xba\xc5\x6b\x7e\x6b\x85\x6b\x86\xba\xc6\x56\xe2\xba\xc7\xba\xc8\x63\x5f\x4b\x58\x6b\x84\x6b\x89\x56\xa2\xba\xc9\xba\xca\xba\xcb\xba\xcc\xba\xcd\x6b\x87\x6b\x88\xba\xce\xba\xcf\xba\xd0\xba\xd1\xba\xd2\xba\xd3\x6b\x5e\xba\xd4\xba\xd5\xba\xd6\xba\xd7\xba\xd8\xba\xd9\xba\xda\xba\xdb\xba\xdc\xba\xdd\xba\xde\xba\xdf\x49\x64\xba\xe0\xba\xe1\x6b\x5f\xba\xe2\xba\xe3\x4b\x65\x49\xe3\xba\xe4\x6b\x8d\x6b\x8a\xba\xe5\x4b\xd6\xba\xe6\x6b\x8e\xba\xe7\x6b\x8b\xba\xe8\xba\xe9\xba\xea\xba\xeb\xba\xec\x6b\x8c\xba\xed\xba\xee\x4a\xd9", /* 8e80 */ "\xba\xef\x5a\xe9\xba\xf0\xba\xf1\xba\xf2\x6b\x8f\xba\xf3\x4a\x9a\xba\xf4\xba\xf5\xba\xf6\xba\xf7\xba\xf8\xba\xf9\xba\xfa\x6b\x90\x6b\x92\xba\xfb\xba\xfc\xba\xfd\x6b\x91\xbb\x41\xbb\x42\xbb\x43\xbb\x44\xbb\x45\xbb\x46\xbb\x47\x6b\x93\xbb\x48\x6b\x94\xbb\x49\xbb\x4a\xbb\x4b\xbb\x4c\xbb\x4d\xbb\x4e\xbb\x4f\xbb\x50\xbb\x51\xbb\x52\xbb\x53\xbb\x54\x55\x8e\x4d\x4a\xbb\x55\xbb\x56\x54\x9c\xbb\x57\xbb\x58\x4b\xe2\xbb\x59\xbb\x5a\xbb\x5b\xbb\x5c\xbb\x5d\xbb\x5e\xbb\x5f\x56\xc8\xbb\x60\xbb\x61\xbb\x62\xbb\x63\xbb\x64\xbb\x65\xbb\x66\xbb\x67\xbb\x68\xbb\x69\xbb\x6a\xbb\x6b\xbb\x6c\xbb\x6d\xbb\x6e\xbb\x6f\xbb\x70\xbb\x71\xbb\x72\x65\xa5\xbb\x73\xbb\x74\xbb\x75\xbb\x76\xbb\x77\xbb\x78\xbb\x79\xbb\x7a\xbb\x7b\xbb\x7c\xbb\x7d\xbb\x7e\xbb\x7f\xbb\x81\xbb\x82\xbb\x83\xbb\x84\xbb\x85\xbb\x86\xbb\x87\xbb\x88\xbb\x89\xbb\x8a\xbb\x8b\xbb\x8c\xbb\x8d\xbb\x8e\xbb\x8f\xbb\x90\xbb\x91\xbb\x92\xbb\x93\xbb\x94\xbb\x95\xbb\x96\xbb\x97\xbb\x98\xbb\x99\xbb\x9a\xbb\x9b\xbb\x9c\xbb\x9d\xbb\x9e\xbb\x9f\xbb\xa0\xbb\xa1\xbb\xa2\xbb\xa3\xbb\xa4", /* 8f00 */ "\xbb\xa5\xbb\xa6\xbb\xa7\xbb\xa8\xbb\xa9\xbb\xaa\xbb\xab\xbb\xac\xbb\xad\xbb\xae\xbb\xaf\xbb\xb0\xbb\xb1\xbb\xb2\xbb\xb3\xbb\xb4\xbb\xb5\xbb\xb6\xbb\xb7\xbb\xb8\xbb\xb9\xbb\xba\xbb\xbb\xbb\xbc\xbb\xbd\xbb\xbe\xbb\xbf\xbb\xc0\xbb\xc1\xbb\xc2\xbb\xc3\xbb\xc4\xbb\xc5\xbb\xc6\xbb\xc7\xbb\xc8\xbb\xc9\xbb\xca\xbb\xcb\xbb\xcc\xbb\xcd\xbb\xce\xbb\xcf\xbb\xd0\xbb\xd1\xbb\xd2\xbb\xd3\xbb\xd4\xbb\xd5\xbb\xd6\xbb\xd7\xbb\xd8\xbb\xd9\xbb\xda\xbb\xdb\xbb\xdc\xbb\xdd\xbb\xde\xbb\xdf\xbb\xe0\xbb\xe1\xbb\xe2\xbb\xe3\xbb\xe4\xbb\xe5\xbb\xe6\xbb\xe7\xbb\xe8\xbb\xe9\xbb\xea\xbb\xeb\xbb\xec\xbb\xed\xbb\xee\xbb\xef\xbb\xf0\xbb\xf1\xbb\xf2\xbb\xf3\xbb\xf4\xbb\xf5\xbb\xf6\xbb\xf7\xbb\xf8\xbb\xf9\xbb\xfa\xbb\xfb\xbb\xfc\xbb\xfd\xbc\x41\xbc\x42\xbc\x43\xbc\x44\xbc\x45\xbc\x46\xbc\x47\xbc\x48\xbc\x49\xbc\x4a\xbc\x4b\xbc\x4c\xbc\x4d\x4a\x55\x5a\xfd\x4d\x8d\x58\xf8\xbc\x4e\x65\x8e\x5c\x4a\x65\x8f\x51\xd5\x54\xec\x4d\xe3\x65\x90\x65\x91\x65\x92\x5b\xe0\x65\x93\x65\x94\x65\x96\x65\x95\x65\x97\x65\x98\x54\x82\x65\x99\x5a\xd7\x65\x9a\x4f\x6e", /* 8f80 */ "\xbc\x4f\x65\x9b\x65\x9c\x4f\x6f\x65\x9d\x4c\xa7\x51\x5e\x65\x9e\x49\x52\x4e\x74\x4d\x96\x65\x9f\xbc\x50\x65\xa0\x65\xa1\x65\xa2\x4c\x99\x4e\xac\xbc\x51\x55\xe3\x60\xcd\x5a\xae\x58\x5d\x5b\x57\x65\xa3\x5b\x7e\x65\xa4\x58\xc0\x4d\x5c\xbc\x52\x4a\xc6\x49\x79\xbc\x53\xbc\x54\xbc\x55\x50\xb0\xbc\x56\xbc\x57\xbc\x58\xbc\x59\x49\x87\x49\x88\xbc\x5a\x49\x89\xbc\x5b\xbc\x5c\xbc\x5d\xbc\x5e\x4a\x5d\x54\xe7\xbc\x5f\xbc\x60\xbc\x61\xbc\x62\x63\x61\xbc\x63\xbc\x64\x49\x7f\xbc\x65\xbc\x66\xbc\x67\x51\x69\x4a\xee\xbc\x68\xbc\x69\x54\x48\x5a\x78\xbc\x6a\x53\xf8\x59\x58\xbc\x6b\x4d\x9e\x51\xf4\xbc\x6c\xbc\x6d\xbc\x6e\xbc\x6f\xbc\x70\x5a\x4d\xbc\x71\x5a\xca\x4f\x9d\xbc\x72\x63\x62\x4c\x55\x63\x63\xbc\x73\xbc\x74\x4e\x59\x5b\x83\xbc\x75\x4f\x99\x5a\xb5\x57\xa4\x51\x4c\x4a\x79\xbc\x76\xbc\x77\x56\xf5\xbc\x78\x63\x66\x63\x64\x63\x68\xbc\x79\x63\x6a\x63\x67\x4b\x6f\x53\xc7\xbc\x7a\x4b\x9d\x63\x65\xbc\x7b\x55\xf5\xbc\x7c\xbc\x7d\x63\x69\xbc\x7e\xbc\x7f\xbc\x81\x52\x74\x49\x65\x4e\xa2\xbc\x82\xbc\x83\xbc\x84\x5c\x57\xbc\x85\xbc\x86", /* 9000 */ "\x57\x6b\x56\x6d\x55\xc9\x56\xd2\x63\x6c\x63\x6b\x52\xe5\xbc\x87\xbc\x88\x59\x41\x59\x57\x63\x6d\xbc\x89\x63\x70\xbc\x8a\x57\x58\x5b\xef\x63\x6f\x4b\x7d\xbc\x8b\x57\x5e\xbc\x8c\x63\x71\x4b\xb9\xbc\x8d\xbc\x8e\x57\x48\x4d\x85\xbc\x8f\x55\xc4\x4a\x71\x56\x79\x5a\xeb\x63\x72\x4c\x8b\xbc\x90\xbc\x91\xbc\x92\x63\x6e\xbc\x93\xbc\x94\xbc\x95\xbc\x96\xbc\x97\xbc\x98\x63\x75\x4a\xfd\x63\x76\xbc\x99\xbc\x9a\xbc\x9b\xbc\x9c\xbc\x9d\x63\x73\x63\x74\xbc\x9e\x59\xdc\xbc\x9f\xbc\xa0\x51\xde\x49\x66\xbc\xa1\x5a\x83\xbc\xa2\xbc\xa3\x4b\xdc\x56\x8d\xbc\xa4\x63\x77\xbc\xa5\xbc\xa6\x5a\x97\xbc\xa7\xbc\xa8\xbc\xa9\xbc\xaa\xbc\xab\x49\x8a\xbc\xac\x4b\xf3\x63\x7a\x63\x78\x63\x79\x4b\x60\xbc\xad\xbc\xae\xbc\xaf\x59\xc4\x63\x7c\xbc\xb0\xbc\xb1\x63\x7e\xbc\xb2\xbc\xb3\xbc\xb4\xbc\xb5\xbc\xb6\xbc\xb7\x63\x7d\x54\x52\xbc\xb8\x59\xa2\xbc\xb9\xbc\xba\x63\x7b\xbc\xbb\xbc\xbc\xbc\xbd\xbc\xbe\x5a\xe1\x5b\x7a\xbc\xbf\xbc\xc0\xbc\xc1\xbc\xc2\xbc\xc3\x63\x81\x5c\x92\xbc\xc4\xbc\xc5\xbc\xc6\xbc\xc7\xbc\xc8\xbc\xc9\xbc\xca\x63\x82\xbc\xcb\x49\x7c", /* 9080 */ "\x59\x9c\xbc\xcc\x63\x83\x63\x85\xbc\xcd\xbc\xce\xbc\xcf\xbc\xd0\x63\x84\xbc\xd1\xbc\xd2\x63\x86\xbc\xd3\xbc\xd4\xbc\xd5\xbc\xd6\xbc\xd7\x59\xd7\xbc\xd8\x4b\x6b\xbc\xd9\x64\x7f\xbc\xda\x5d\xf4\xbc\xdb\x5d\xf7\xbc\xdc\x5d\xf5\xbc\xdd\x5d\xf6\xbc\xde\xbc\xdf\xbc\xe0\x5d\xf9\x58\xce\x52\xc6\xbc\xe1\xbc\xe2\x48\xed\xbc\xe3\xbc\xe4\xbc\xe5\x58\xaf\xbc\xe6\x5d\xf8\xbc\xe7\x5a\x6a\x4d\xa9\x5e\x42\x54\x92\xbc\xe8\x5d\xfb\x5d\xfa\x55\x7b\x5d\xfc\xbc\xe9\x5e\x41\x5c\x7e\x5d\xfd\x51\x7a\xbc\xea\xbc\xeb\x5e\x45\xbc\xec\xbc\xed\x5a\x95\xbc\xee\xbc\xef\x5e\x47\x5e\x44\xbc\xf0\x5e\x48\xbc\xf1\xbc\xf2\x4f\x5c\xbc\xf3\xbc\xf4\xbc\xf5\x50\xc8\x5e\x43\x5e\x46\x5b\xa2\xbc\xf6\x5e\x49\xbc\xf7\xbc\xf8\xbc\xf9\x5e\x4d\xbc\xfa\xbc\xfb\xbc\xfc\x5e\x4e\x5e\x4c\x4d\xc1\xbc\xfd\xbd\x41\xbd\x42\x50\x44\x5e\x4b\xbd\x43\xbd\x44\xbd\x45\x5e\x4a\x5a\xc6\x49\xbe\xbd\x46\xbd\x47\x5e\x4f\xbd\x48\x4d\x9a\xbd\x49\x5e\x50\xbd\x4a\xbd\x4b\xbd\x4c\xbd\x4d\x4a\x5b\xbd\x4e\xbd\x4f\xbd\x50\x4b\x46\xbd\x51\xbd\x52\xbd\x53\xbd\x54\x4b\xbb\x5e\x51\xbd\x55", /* 9100 */ "\xbd\x56\xbd\x57\x4b\xf4\xbd\x58\x5e\x52\xbd\x59\xbd\x5a\xbd\x5b\xbd\x5c\xbd\x5d\xbd\x5e\xbd\x5f\xbd\x60\xbd\x61\xbd\x62\xbd\x63\xbd\x64\xbd\x65\xbd\x66\xbd\x67\xbd\x68\xbd\x69\xbd\x6a\xbd\x6b\xbd\x6c\x49\x69\xbd\x6d\xbd\x6e\xbd\x6f\xbd\x70\x5e\x54\xbd\x71\xbd\x72\xbd\x73\x5e\x53\x5e\x55\xbd\x74\xbd\x75\xbd\x76\xbd\x77\xbd\x78\xbd\x79\xbd\x7a\xbd\x7b\xbd\x7c\xbd\x7d\xbd\x7e\x5e\x57\xbd\x7f\x5e\x56\xbd\x81\xbd\x82\xbd\x83\xbd\x84\xbd\x85\xbd\x86\xbd\x87\x5e\x58\xbd\x88\xbd\x89\xbd\x8a\xbd\x8b\xbd\x8c\xbd\x8d\xbd\x8e\xbd\x8f\xbd\x90\x5e\x59\xbd\x91\xbd\x92\x5e\x5a\xbd\x93\xbd\x94\x5a\x6f\x6a\xf9\x54\x96\x5c\x63\x53\x85\x6a\xfb\x6a\xfc\x6a\xfa\xbd\x95\x4f\xc5\xbd\x96\xbd\x97\xbd\x98\xbd\x99\x58\xee\xbd\x9a\xbd\x9b\x4c\x73\xbd\x9c\xbd\x9d\x5a\xcc\x56\xa9\xbd\x9e\xbd\x9f\x6b\x42\x6b\x41\x4d\xa7\x6a\xfd\x56\x76\xbd\xa0\xbd\xa1\xbd\xa2\x6b\x44\x50\xd1\xbd\xa3\x4a\x8b\xbd\xa4\x57\x4a\x6b\x45\x6b\x43\x4f\x54\x6b\x48\xbd\xa5\x6b\x49\x4f\x6d\x52\x58\x50\x82\x56\x82\x6b\x4a\xbd\xa6\xbd\xa7\xbd\xa8\x6b\x46\x6b\x47\x52\xef", /* 9180 */ "\xbd\xa9\xbd\xaa\xbd\xab\xbd\xac\xbd\xad\x6b\x4c\xbd\xae\x4a\xbb\xbd\xaf\x5c\x8e\xbd\xb0\x4a\xd6\x6b\x4b\x6b\x4e\xbd\xb1\xbd\xb2\x6b\x4d\x6b\x4f\x58\xd0\xbd\xb3\xbd\xb4\xbd\xb5\xbd\xb6\xbd\xb7\xbd\xb8\xbd\xb9\x52\x71\x54\xa8\xbd\xba\xbd\xbb\xbd\xbc\xbd\xbd\xbd\xbe\xbd\xbf\x6b\x50\x6b\x51\xbd\xc0\xbd\xc1\xbd\xc2\xbd\xc3\xbd\xc4\xbd\xc5\x6b\x52\xbd\xc6\xbd\xc7\x6b\x53\x6b\x54\x6b\x55\xbd\xc8\xbd\xc9\xbd\xca\xbd\xcb\x6b\x57\x6b\x56\xbd\xcc\xbd\xcd\xbd\xce\xbd\xcf\x6b\x58\xbd\xd0\xbd\xd1\xbd\xd2\xbd\xd3\xbd\xd4\xbd\xd5\xbd\xd6\xbd\xd7\xbd\xd8\xbd\xd9\xbd\xda\xbd\xdb\x49\xc8\xbd\xdc\x5a\x74\x55\xcc\xbd\xdd\x50\xee\x5b\xd7\x59\xaf\x51\x5f\xbd\xde\x4f\x91\xbd\xdf\xbd\xe0\xbd\xe1\xbd\xe2\xbd\xe3\xbd\xe4\xbd\xe5\xbd\xe6\xbd\xe7\xbd\xe8\x4c\xa9\xbd\xe9\xbd\xea\xbd\xeb\xbd\xec\xbd\xed\xbd\xee\xbd\xef\xbd\xf0\xbd\xf1\xbd\xf2\xbd\xf3\xbd\xf4\xbd\xf5\xbd\xf6\xbd\xf7\xbd\xf8\xbd\xf9\xbd\xfa\xbd\xfb\xbd\xfc\xbd\xfd\xbe\x41\xbe\x42\xbe\x43\xbe\x44\xbe\x45\xbe\x46\xbe\x47\xbe\x48\xbe\x49\xbe\x4a\xbe\x4b\xbe\x4c\xbe\x4d\xbe\x4e", /* 9200 */ "\xbe\x4f\xbe\x50\xbe\x51\xbe\x52\xbe\x53\xbe\x54\xbe\x55\xbe\x56\xbe\x57\xbe\x58\xbe\x59\xbe\x5a\xbe\x5b\xbe\x5c\xbe\x5d\xbe\x5e\xbe\x5f\xbe\x60\xbe\x61\xbe\x62\xbe\x63\xbe\x64\xbe\x65\xbe\x66\xbe\x67\xbe\x68\xbe\x69\xbe\x6a\xbe\x6b\xbe\x6c\xbe\x6d\xbe\x6e\xbe\x6f\xbe\x70\xbe\x71\xbe\x72\xbe\x73\xbe\x74\xbe\x75\xbe\x76\xbe\x77\xbe\x78\xbe\x79\xbe\x7a\xbe\x7b\xbe\x7c\xbe\x7d\xbe\x7e\xbe\x7f\xbe\x81\xbe\x82\xbe\x83\xbe\x84\xbe\x85\xbe\x86\xbe\x87\xbe\x88\xbe\x89\xbe\x8a\xbe\x8b\xbe\x8c\xbe\x8d\xbe\x8e\xbe\x8f\xbe\x90\xbe\x91\xbe\x92\xbe\x93\xbe\x94\xbe\x95\xbe\x96\xbe\x97\xbe\x98\xbe\x99\xbe\x9a\xbe\x9b\xbe\x9c\xbe\x9d\xbe\x9e\xbe\x9f\xbe\xa0\xbe\xa1\xbe\xa2\xbe\xa3\xbe\xa4\xbe\xa5\xbe\xa6\xbe\xa7\xbe\xa8\xbe\xa9\xbe\xaa\xbe\xab\xbe\xac\xbe\xad\xbe\xae\xbe\xaf\xbe\xb0\xbe\xb1\xbe\xb2\xbe\xb3\xbe\xb4\xbe\xb5\xbe\xb6\xbe\xb7\xbe\xb8\xbe\xb9\xbe\xba\xbe\xbb\xbe\xbc\xbe\xbd\xbe\xbe\xbe\xbf\xbe\xc0\xbe\xc1\xbe\xc2\xbe\xc3\x4e\xf7\xbe\xc4\xbe\xc5\xbe\xc6\xbe\xc7\xbe\xc8\xbe\xc9\xbe\xca\xbe\xcb\xbe\xcc\xbe\xcd\xbe\xce", /* 9280 */ "\xbe\xcf\xbe\xd0\xbe\xd1\xbe\xd2\xbe\xd3\xbe\xd4\xbe\xd5\xbe\xd6\xbe\xd7\xbe\xd8\xbe\xd9\xbe\xda\xbe\xdb\xbe\xdc\x6b\xc5\xbe\xdd\xbe\xde\xbe\xdf\xbe\xe0\xbe\xe1\xbe\xe2\xbe\xe3\xbe\xe4\xbe\xe5\xbe\xe6\xbe\xe7\xbe\xe8\xbe\xe9\xbe\xea\xbe\xeb\xbe\xec\xbe\xed\xbe\xee\xbe\xef\xbe\xf0\xbe\xf1\xbe\xf2\xbe\xf3\xbe\xf4\xbe\xf5\xbe\xf6\xbe\xf7\xbe\xf8\xbe\xf9\xbe\xfa\xbe\xfb\x6b\xc6\xbe\xfc\xbe\xfd\xbf\x41\xbf\x42\xbf\x43\xbf\x44\xbf\x45\xbf\x46\xbf\x47\xbf\x48\xbf\x49\xbf\x4a\xbf\x4b\xbf\x4c\xbf\x4d\xbf\x4e\xbf\x4f\xbf\x50\xbf\x51\xbf\x52\xbf\x53\xbf\x54\xbf\x55\xbf\x56\xbf\x57\x6b\xc7\xbf\x58\xbf\x59\xbf\x5a\xbf\x5b\xbf\x5c\xbf\x5d\xbf\x5e\xbf\x5f\xbf\x60\xbf\x61\xbf\x62\xbf\x63\xbf\x64\xbf\x65\xbf\x66\xbf\x67\xbf\x68\xbf\x69\xbf\x6a\xbf\x6b\xbf\x6c\xbf\x6d\xbf\x6e\xbf\x6f\xbf\x70\xbf\x71\xbf\x72\xbf\x73\xbf\x74\xbf\x75\xbf\x76\xbf\x77\xbf\x78\xbf\x79\xbf\x7a\xbf\x7b\xbf\x7c\xbf\x7d\xbf\x7e\xbf\x7f\xbf\x81\xbf\x82\xbf\x83\xbf\x84\xbf\x85\xbf\x86\xbf\x87\xbf\x88\xbf\x89\xbf\x8a\xbf\x8b\xbf\x8c\xbf\x8d\xbf\x8e\xbf\x8f", /* 9300 */ "\xbf\x90\xbf\x91\xbf\x92\xbf\x93\xbf\x94\xbf\x95\xbf\x96\xbf\x97\xbf\x98\xbf\x99\xbf\x9a\xbf\x9b\xbf\x9c\xbf\x9d\xbf\x9e\xbf\x9f\xbf\xa0\xbf\xa1\xbf\xa2\xbf\xa3\xbf\xa4\xbf\xa5\xbf\xa6\xbf\xa7\xbf\xa8\xbf\xa9\xbf\xaa\xbf\xab\xbf\xac\xbf\xad\xbf\xae\xbf\xaf\xbf\xb0\xbf\xb1\xbf\xb2\xbf\xb3\xbf\xb4\xbf\xb5\xbf\xb6\xbf\xb7\xbf\xb8\xbf\xb9\xbf\xba\xbf\xbb\xbf\xbc\xbf\xbd\xbf\xbe\xbf\xbf\xbf\xc0\xbf\xc1\xbf\xc2\xbf\xc3\xbf\xc4\xbf\xc5\xbf\xc6\xbf\xc7\xbf\xc8\xbf\xc9\xbf\xca\xbf\xcb\xbf\xcc\xbf\xcd\x6b\xc8\xbf\xce\xbf\xcf\xbf\xd0\xbf\xd1\xbf\xd2\xbf\xd3\xbf\xd4\xbf\xd5\xbf\xd6\xbf\xd7\xbf\xd8\xbf\xd9\xbf\xda\xbf\xdb\xbf\xdc\xbf\xdd\xbf\xde\xbf\xdf\xbf\xe0\xbf\xe1\xbf\xe2\xbf\xe3\xbf\xe4\xbf\xe5\xbf\xe6\xbf\xe7\xbf\xe8\xbf\xe9\xbf\xea\xbf\xeb\xbf\xec\xbf\xed\xbf\xee\xbf\xef\xbf\xf0\xbf\xf1\xbf\xf2\xbf\xf3\xbf\xf4\xbf\xf5\xbf\xf6\xbf\xf7\xbf\xf8\x6b\xc9\xbf\xf9\xbf\xfa\xbf\xfb\xbf\xfc\xbf\xfd\xc0\x41\xc0\x42\xc0\x43\xc0\x44\xc0\x45\xc0\x46\xc0\x47\xc0\x48\xc0\x49\xc0\x4a\xc0\x4b\xc0\x4c\xc0\x4d\xc0\x4e\xc0\x4f\xc0\x50", /* 9380 */ "\xc0\x51\xc0\x52\xc0\x53\xc0\x54\xc0\x55\xc0\x56\xc0\x57\xc0\x58\xc0\x59\xc0\x5a\xc0\x5b\xc0\x5c\xc0\x5d\xc0\x5e\xc0\x5f\x6b\xcb\xc0\x60\xc0\x61\xc0\x62\xc0\x63\xc0\x64\xc0\x65\xc0\x66\xc0\x67\xc0\x68\xc0\x69\xc0\x6a\xc0\x6b\xc0\x6c\xc0\x6d\xc0\x6e\xc0\x6f\xc0\x70\xc0\x71\xc0\x72\xc0\x73\xc0\x74\xc0\x75\xc0\x76\xc0\x77\xc0\x78\xc0\x79\xc0\x7a\xc0\x7b\xc0\x7c\xc0\x7d\xc0\x7e\xc0\x7f\xc0\x81\xc0\x82\xc0\x83\xc0\x84\xc0\x85\xc0\x86\xc0\x87\xc0\x88\xc0\x89\xc0\x8a\xc0\x8b\xc0\x8c\xc0\x8d\xc0\x8e\xc0\x8f\xc0\x90\xc0\x91\xc0\x92\xc0\x93\xc0\x94\xc0\x95\xc0\x96\xc0\x97\xc0\x98\xc0\x99\xc0\x9a\x6b\xca\xc0\x9b\xc0\x9c\xc0\x9d\xc0\x9e\xc0\x9f\xc0\xa0\xc0\xa1\xc0\xa2\xc0\xa3\xc0\xa4\xc0\xa5\x6c\x8a\xc0\xa6\xc0\xa7\xc0\xa8\xc0\xa9\xc0\xaa\xc0\xab\xc0\xac\xc0\xad\xc0\xae\xc0\xaf\xc0\xb0\xc0\xb1\xc0\xb2\xc0\xb3\xc0\xb4\xc0\xb5\xc0\xb6\xc0\xb7\xc0\xb8\xc0\xb9\xc0\xba\xc0\xbb\xc0\xbc\xc0\xbd\xc0\xbe\xc0\xbf\xc0\xc0\xc0\xc1\xc0\xc2\xc0\xc3\xc0\xc4\xc0\xc5\xc0\xc6\xc0\xc7\xc0\xc8\xc0\xc9\xc0\xca\xc0\xcb\xc0\xcc\xc0\xcd\xc0\xce", /* 9400 */ "\xc0\xcf\xc0\xd0\xc0\xd1\xc0\xd2\xc0\xd3\xc0\xd4\xc0\xd5\xc0\xd6\xc0\xd7\xc0\xd8\xc0\xd9\xc0\xda\xc0\xdb\xc0\xdc\xc0\xdd\xc0\xde\xc0\xdf\xc0\xe0\xc0\xe1\xc0\xe2\xc0\xe3\xc0\xe4\xc0\xe5\xc0\xe6\xc0\xe7\xc0\xe8\xc0\xe9\xc0\xea\xc0\xeb\xc0\xec\xc0\xed\xc0\xee\xc0\xef\xc0\xf0\xc0\xf1\xc0\xf2\xc0\xf3\xc0\xf4\xc0\xf5\xc0\xf6\xc0\xf7\xc0\xf8\xc0\xf9\xc0\xfa\xc0\xfb\xc0\xfc\xc0\xfd\xc1\x41\xc1\x42\xc1\x43\xc1\x44\xc1\x45\xc1\x46\xc1\x47\xc1\x48\xc1\x49\xc1\x4a\xc1\x4b\xc1\x4c\xc1\x4d\xc1\x4e\xc1\x4f\x6b\xcc\xc1\x50\xc1\x51\xc1\x52\xc1\x53\xc1\x54\xc1\x55\xc1\x56\xc1\x57\xc1\x58\xc1\x59\xc1\x5a\xc1\x5b\xc1\x5c\xc1\x5d\xc1\x5e\xc1\x5f\xc1\x60\xc1\x61\xc1\x62\xc1\x63\xc1\x64\xc1\x65\xc1\x66\xc1\x67\xc1\x68\xc1\x69\xc1\x6a\xc1\x6b\xc1\x6c\xc1\x6d\xc1\x6e\xc1\x6f\xc1\x70\xc1\x71\xc1\x72\xc1\x73\xc1\x74\xc1\x75\xc1\x76\xc1\x77\xc1\x78\xc1\x79\xc1\x7a\xc1\x7b\x6b\xcd\xc1\x7c\xc1\x7d\xc1\x7e\xc1\x7f\xc1\x81\xc1\x82\xc1\x83\xc1\x84\xc1\x85\xc1\x86\xc1\x87\xc1\x88\xc1\x89\xc1\x8a\xc1\x8b\xc1\x8c\xc1\x8d\xc1\x8e\xc1\x8f\xc1\x90", /* 9480 */ "\xc1\x91\xc1\x92\xc1\x93\xc1\x94\xc1\x95\x67\xc3\x67\xc4\x67\xc5\x5b\x8c\x4b\xa3\x67\xc7\x67\xc6\x67\xc8\x67\xc9\x54\x45\x67\xca\x67\xcb\xc1\x96\x4c\x50\x4b\x97\x67\xcc\x67\xce\xc1\x97\x67\xcd\xc1\x98\x4c\xc5\x67\xcf\x67\xd0\x67\xd1\x4b\xda\x4a\x4e\x5b\xd2\x52\xc5\x49\x55\x4c\xd5\x67\xd2\x67\xd3\x5a\xbe\x54\x75\x4f\xfa\x57\xd8\x4d\x53\x67\xd5\x67\xd4\x67\xd7\x67\xd6\x53\x45\x67\xd8\x67\xd9\x54\x4e\x67\xda\x54\x4f\x67\xdb\x49\xa6\x67\xdc\x67\xdd\x67\xde\x67\xdf\x67\xe0\x5c\x8b\x67\xe1\x67\xe2\x4e\xd7\x67\xe3\x5a\x6b\x56\xf9\x49\xab\x51\x86\x67\xe4\x54\x46\x52\x4d\xc1\x99\x67\xe5\x67\xe6\x67\xe7\x67\xe8\x67\xe9\x67\xea\x67\xeb\xc1\x9a\x67\xec\x67\xed\x67\xee\xc1\x9b\xc1\x9c\x67\xef\x67\xf0\x67\xf1\x67\xf3\x67\xf2\xc1\x9d\x67\xf4\x57\x4d\x51\xc0\x67\xf5\x67\xf6\x67\xf7\x5b\x41\x67\xf8\x58\x53\x67\xf9\x67\xfa\xc1\x9e\x67\xfb\x67\xfc\x68\x41\x67\xfd\x68\x42\x4c\xf4\x52\x9b\x68\x43\x68\x44\x4f\x62\x59\xbe\x49\xf8\x68\x45\x68\x46\x68\x47\x59\xf7\x68\x48\x5b\xfc\x68\x49\x53\xcb\xc1\x9f\x68\x4a\x68\x4b\x51\x54\x68\x4c", /* 9500 */ "\x58\x9b\x56\x99\x68\x4e\x68\x4d\x4a\x9b\x4d\x99\x68\x4f\x68\x50\x58\xe1\x68\x51\x68\x52\x4c\x87\x58\xbe\x68\x53\x68\x54\x68\x55\x54\xf0\x56\xdf\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x5b\x81\x68\x5b\x4a\xec\x52\x4a\x68\x5c\xc1\xa0\x68\x5d\x68\x5e\x68\x5f\xc1\xa1\x57\xfc\x68\x60\x51\xdf\x4a\xb7\x5c\x56\x4f\x96\xc1\xa2\x58\x67\x68\x63\x68\x61\x68\x62\x68\x64\x4b\xa6\x4e\xfb\x4f\xe1\x52\x6c\x68\x65\x68\x66\xc1\xa3\x68\x67\x68\x6f\x68\x68\x68\x69\x68\x6a\x54\x62\x68\x92\x4b\xcc\x68\x6b\xc1\xa4\x68\x6c\x68\x6d\x4b\xc5\x52\x5e\x68\x6e\xc1\xa5\x68\x70\x68\x71\x68\x72\x5b\x93\xc1\xa6\x68\x73\x52\xf6\xc1\xa7\x68\x74\x52\xf7\x68\x75\x68\x76\x4c\xe3\x48\xf6\x68\x77\x68\x78\x68\x79\xc1\xa8\x68\x7a\x68\x7b\x68\x7c\x68\x7d\xc1\xa9\x68\x7e\x4f\xb4\x68\x82\x68\x7f\x68\x81\xc1\xaa\x68\x83\x68\x84\x51\x6d\x68\x85\x68\x86\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x50\xd7\xc1\xab\x68\x8e\x51\x4d\x68\x8f\x68\x90\x68\x91\xc1\xac\xc1\xad\x58\x83\xc1\xae\xc1\xaf\xc1\xb0\xc1\xb1\xc1\xb2\xc1\xb3\xc1\xb4\xc1\xb5\x4a\x44", /* 9580 */ "\xc1\xb6\xc1\xb7\xc1\xb8\xc1\xb9\xc1\xba\xc1\xbb\xc1\xbc\xc1\xbd\xc1\xbe\xc1\xbf\xc1\xc0\xc1\xc1\xc1\xc2\xc1\xc3\xc1\xc4\xc1\xc5\xc1\xc6\xc1\xc7\xc1\xc8\xc1\xc9\xc1\xca\xc1\xcb\xc1\xcc\xc1\xcd\xc1\xce\xc1\xcf\xc1\xd0\xc1\xd1\xc1\xd2\xc1\xd3\xc1\xd4\xc1\xd5\xc1\xd6\xc1\xd7\xc1\xd8\xc1\xd9\xc1\xda\xc1\xdb\xc1\xdc\xc1\xdd\xc1\xde\xc1\xdf\xc1\xe0\xc1\xe1\xc1\xe2\xc1\xe3\xc1\xe4\xc1\xe5\xc1\xe6\xc1\xe7\xc1\xe8\xc1\xe9\xc1\xea\xc1\xeb\xc1\xec\xc1\xed\xc1\xee\xc1\xef\xc1\xf0\xc1\xf1\xc1\xf2\xc1\xf3\xc1\xf4\xc1\xf5\xc1\xf6\xc1\xf7\xc1\xf8\xc1\xf9\xc1\xfa\xc1\xfb\xc1\xfc\xc1\xfd\xc2\x41\xc2\x42\xc2\x43\xc2\x44\xc2\x45\xc2\x46\xc2\x47\xc2\x48\xc2\x49\xc2\x4a\xc2\x4b\xc2\x4c\xc2\x4d\xc2\x4e\xc2\x4f\xc2\x50\xc2\x51\xc2\x52\xc2\x53\xc2\x54\xc2\x55\xc2\x56\xc2\x57\xc2\x58\xc2\x59\xc2\x5a\xc2\x5b\xc2\x5c\xc2\x5d\xc2\x5e\xc2\x5f\xc2\x60\x52\x65\x62\x65\x55\x61\x62\x66\xc2\x61\x49\x75\x57\xc9\x4a\xb2\x54\xf1\x62\x67\x58\x70\x62\x68\x4e\xe3\x62\x69\x62\x6a\x52\x66\x5b\x42\x52\xd5\x4d\x8c\x57\xc4\x62\x6b\x52\x97\x62\x6c\xc2\x62", /* 9600 */ "\x4c\x47\x4c\xf2\x4d\xd1\x62\x6d\x62\x6e\x5a\xc3\x62\x6f\xc2\x63\x62\x70\x59\x6b\x62\x71\x62\x72\x62\x73\x62\x74\x59\x76\x62\x75\x49\xfa\x50\xba\x62\x76\xc2\x64\x50\xaa\x62\x77\x62\x78\x62\x79\xc2\x65\x62\x7a\x62\x7b\xc2\x66\x4c\xb6\x5d\xe1\xc2\x67\x4b\xd2\xc2\x68\x5d\xe3\x5d\xe2\xc2\x69\xc2\x6a\xc2\x6b\xc2\x6c\xc2\x6d\xc2\x6e\xc2\x6f\x5d\xe5\xc2\x70\xc2\x71\xc2\x72\x54\xed\xc2\x73\xc2\x74\x5d\xe4\x4c\x60\x59\x95\x59\xf4\x5b\x94\x4f\x77\xc2\x75\xc2\x76\xc2\x77\xc2\x78\x5c\x89\x5d\xe7\x5d\xe6\xc2\x79\x48\xa1\x57\x73\xc2\x7a\x5d\xe8\xc2\x7b\x4c\xbc\x4e\xc9\x51\xbc\x51\xa3\x4a\x62\x5d\xe9\xc2\x7c\x51\xa9\x52\xaf\x4f\x55\xc2\x7d\xc2\x7e\x58\x7e\xc2\x7f\xc2\x81\xc2\x82\x5d\xea\x55\x62\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\x49\x7d\xc2\x88\xc2\x89\xc2\x8a\x5d\xeb\xc2\x8b\x4b\xb7\x5a\xb9\xc2\x8c\x4a\x9e\xc2\x8d\xc2\x8e\x5d\xec\x5a\xc8\x58\x75\x53\x84\xc2\x8f\x5d\xed\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\x5d\xee\xc2\x95\x5d\xef\x51\x8b\x56\xd4\x58\x7d\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d", /* 9680 */ "\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\x5a\x88\x51\xa0\xc2\xa3\x5d\xf0\xc2\xa4\xc2\xa5\x56\x86\xc2\xa6\x5d\xf1\xc2\xa7\x56\x87\x59\xfd\xc2\xa8\xc2\xa9\xc2\xaa\x4c\xf3\xc2\xab\xc2\xac\x5d\xf2\x48\xae\x58\x56\xc2\xad\xc2\xae\x5b\x6f\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\x56\x8e\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc2\xc0\x5d\xf3\xc2\xc1\xc2\xc2\x62\x64\xc2\xc3\xc2\xc4\x51\x45\xc2\xc5\xc2\xc6\x6b\xbe\xc2\xc7\xc2\xc8\x6b\xbf\x6b\xc0\x52\xd0\xc2\xc9\x54\xb7\x59\x84\xc2\xca\xc2\xcb\x58\xda\x59\x65\x4e\xae\x4d\x6d\xc2\xcc\x68\x95\xc2\xcd\xc2\xce\x4a\xc5\x5a\x5a\x6b\xc1\x4a\x9c\xc2\xcf\xc2\xd0\x6b\xc2\xc2\xd1\xc2\xd2\x4b\x92\xc2\xd3\xc2\xd4\xc2\xd5\xc2\xd6\xc2\xd7\xc2\xd8\xc2\xd9\xc2\xda\xc2\xdb\xc2\xdc\x6b\xc4\xc2\xdd\xc2\xde\xc2\xdf\xc2\xe0\xc2\xe1\xc2\xe2\xc2\xe3\x5a\x8b\x6b\xa6\x59\x49\xc2\xe4\xc2\xe5\xc2\xe6\xc2\xe7\x6b\xa8\xc2\xe8\xc2\xe9\xc2\xea\x6b\xa7\xc2\xeb\xc2\xec\x51\x84\x50\xd6\xc2\xed\x49\x42\xc2\xee\xc2\xef\xc2\xf0\xc2\xf1\x57\xec\xc2\xf2", /* 9700 */ "\x58\xe7\x6b\xaa\xc2\xf3\xc2\xf4\x58\x97\xc2\xf5\x6b\xa9\x5b\x91\x6b\xab\x52\x59\xc2\xf6\xc2\xf7\xc2\xf8\x4e\x95\x6b\xad\x6b\xac\xc2\xf9\xc2\xfa\xc2\xfb\x52\xdd\xc2\xfc\xc2\xfd\x51\x78\xc3\x41\xc3\x42\xc3\x43\xc3\x44\xc3\x45\x56\x4a\xc3\x46\x58\x5c\xc3\x47\xc3\x48\xc3\x49\xc3\x4a\xc3\x4b\xc3\x4c\xc3\x4d\xc3\x4e\xc3\x4f\xc3\x50\xc3\x51\x6b\xae\xc3\x52\xc3\x53\x6b\xaf\xc3\x54\xc3\x55\x6b\xb0\xc3\x56\x51\xb5\xc3\x57\xc3\x58\xc3\x59\xc3\x5a\xc3\x5b\x48\xd3\x53\x9a\xc3\x5c\xc3\x5d\xc3\x5e\xc3\x5f\x6b\xb1\xc3\x60\xc3\x61\xc3\x62\xc3\x63\xc3\x64\xc3\x65\xc3\x66\xc3\x67\xc3\x68\xc3\x69\xc3\x6a\xc3\x6b\xc3\x6c\xc3\x6d\xc3\x6e\xc3\x6f\xc3\x70\xc3\x71\xc3\x72\x54\x81\x6b\xa5\xc3\x73\xc3\x74\x4f\xb7\xc3\x75\xc3\x76\x4f\xb1\xc3\x77\x4b\x86\xc3\x78\xc3\x79\x4c\x67\xc3\x7a\x50\x5f\x52\x72\x52\x87\xc3\x7b\xc3\x7c\x5c\xcb\xc3\x7d\xc3\x7e\xc3\x7f\x4c\xee\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85\xc3\x86\xc3\x87\xc3\x88\xc3\x89\x4f\x9a\x59\x45\xc3\x8a\x48\xcf\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\x6c\x50\xc3\x90\xc3\x91\xc3\x92", /* 9780 */ "\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\x6c\x51\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\x58\xab\xc3\x9d\x48\xaf\xc3\x9e\xc3\x9f\xc3\xa0\x6c\x52\x6c\x53\xc3\xa1\x6c\x54\xc3\xa2\xc3\xa3\xc3\xa4\x54\x6a\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\x4f\xce\xc3\xac\xc3\xad\x6c\x57\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\x6c\x56\xc3\xb5\x49\x7e\xc3\xb6\x6c\x55\xc3\xb7\xc3\xb8\x6c\x58\xc3\xb9\x6c\x59\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf\xc3\xc0\xc3\xc1\xc3\xc2\xc3\xc3\xc3\xc4\xc3\xc5\xc3\xc6\xc3\xc7\xc3\xc8\xc3\xc9\xc3\xca\xc3\xcb\xc3\xcc\xc3\xcd\xc3\xce\xc3\xcf\xc3\xd0\xc3\xd1\xc3\xd2\xc3\xd3\xc3\xd4\xc3\xd5\xc3\xd6\xc3\xd7\xc3\xd8\xc3\xd9\xc3\xda\xc3\xdb\xc3\xdc\xc3\xdd\xc3\xde\xc3\xdf\xc3\xe0\xc3\xe1\xc3\xe2\xc3\xe3\xc3\xe4\xc3\xe5\xc3\xe6\xc3\xe7\xc3\xe8\xc3\xe9\xc3\xea\x57\xa3\x54\xcc\xc3\xeb\x4d\xaa\x64\xb7\x64\xb8\x64\xb9\x4f\xc1\xc3\xec\xc3\xed\xc3\xee\xc3\xef\xc3\xf0\x59\xf3\xc3\xf1\x5a\xce\x55\x78\xc3\xf2\xc3\xf3\xc3\xf4\xc3\xf5\xc3\xf6\xc3\xf7\xc3\xf8\xc3\xf9\xc3\xfa", /* 9800 */ "\xc3\xfb\xc3\xfc\xc3\xfd\xc4\x41\xc4\x42\xc4\x43\xc4\x44\xc4\x45\xc4\x46\xc4\x47\xc4\x48\xc4\x49\xc4\x4a\xc4\x4b\xc4\x4c\xc4\x4d\xc4\x4e\xc4\x4f\xc4\x50\xc4\x51\xc4\x52\xc4\x53\xc4\x54\xc4\x55\xc4\x56\xc4\x57\xc4\x58\xc4\x59\xc4\x5a\xc4\x5b\xc4\x5c\xc4\x5d\xc4\x5e\xc4\x5f\xc4\x60\xc4\x61\xc4\x62\xc4\x63\xc4\x64\xc4\x65\xc4\x66\xc4\x67\xc4\x68\xc4\x69\xc4\x6a\xc4\x6b\xc4\x6c\xc4\x6d\xc4\x6e\xc4\x6f\xc4\x70\xc4\x71\xc4\x72\xc4\x73\xc4\x74\xc4\x75\xc4\x76\xc4\x77\xc4\x78\xc4\x79\xc4\x7a\xc4\x7b\xc4\x7c\xc4\x7d\xc4\x7e\xc4\x7f\xc4\x81\xc4\x82\xc4\x83\xc4\x84\xc4\x85\xc4\x86\xc4\x87\xc4\x88\xc4\x89\xc4\x8a\xc4\x8b\xc4\x8c\xc4\x8d\xc4\x8e\xc4\x8f\xc4\x90\xc4\x91\xc4\x92\xc4\x93\xc4\x94\xc4\x95\xc4\x96\xc4\x97\xc4\x98\xc4\x99\xc4\x9a\xc4\x9b\xc4\x9c\xc4\x9d\xc4\x9e\xc4\x9f\xc4\xa0\xc4\xa1\xc4\xa2\xc4\xa3\xc4\xa4\xc4\xa5\xc4\xa6\xc4\xa7\xc4\xa8\xc4\xa9\xc4\xaa\xc4\xab\xc4\xac\xc4\xad\xc4\xae\xc4\xaf\xc4\xb0\xc4\xb1\xc4\xb2\xc4\xb3\x59\xb2\x4b\xa4\x54\x8b\x69\x9d\x58\x8f\x56\x53\x58\xea\x64\x90\x57\x88\x4d\x6b\x4b\xd8", /* 9880 */ "\x69\x9e\x48\xe3\x56\x6c\x69\x9f\x5a\xa3\x51\xac\x51\x8d\x53\xc3\x4f\xb0\x69\xa0\x4e\xd4\xc4\xb4\x69\xa1\x69\xa2\xc4\xb5\x69\xa3\x59\xc2\x53\xb4\xc4\xb6\x57\x67\x69\xa4\xc4\xb7\x5a\x51\x50\x65\x56\xe1\xc4\xb8\x69\xa5\x69\xa6\x59\x75\x4b\xed\x69\xa7\x69\xa8\x4b\x7f\x69\xa9\x69\xaa\xc4\xb9\x49\xfb\x69\xab\x69\xac\x54\xa6\xc4\xba\xc4\xbb\xc4\xbc\xc4\xbd\xc4\xbe\xc4\xbf\xc4\xc0\xc4\xc1\xc4\xc2\xc4\xc3\xc4\xc4\xc4\xc5\xc4\xc6\xc4\xc7\xc4\xc8\xc4\xc9\xc4\xca\xc4\xcb\xc4\xcc\xc4\xcd\xc4\xce\xc4\xcf\xc4\xd0\xc4\xd1\xc4\xd2\xc4\xd3\xc4\xd4\xc4\xd5\xc4\xd6\xc4\xd7\xc4\xd8\xc4\xd9\xc4\xda\xc4\xdb\xc4\xdc\xc4\xdd\xc4\xde\xc4\xdf\x4c\x88\xc4\xe0\xc4\xe1\x66\xa8\x66\xa9\x66\xaa\xc4\xe2\x66\xab\xc4\xe3\xc4\xe4\x53\xad\x66\xac\x66\xad\xc4\xe5\xc4\xe6\xc4\xe7\x4c\x69\x55\xb2\xc4\xe8\xc4\xe9\xc4\xea\xc4\xeb\xc4\xec\xc4\xed\xc4\xee\x61\xb7\x6c\x6f\xc4\xef\xc4\xf0\xc4\xf1\xc4\xf2\xc4\xf3\xc4\xf4\xc4\xf5\xc4\xf6\xc4\xf7\xc4\xf8\xc4\xf9\xc4\xfa\xc4\xfb\xc4\xfc\xc4\xfd\xc5\x41\xc5\x42\xc5\x43\xc5\x44\xc5\x45\xc5\x46\xc5\x47\xc5\x48", /* 9900 */ "\xc5\x49\xc5\x4a\xc5\x4b\xc5\x4c\xc5\x4d\xc5\x4e\xc5\x4f\xc5\x50\xc5\x51\xc5\x52\xc5\x53\xc5\x54\xc5\x55\x6c\x70\xc5\x56\xc5\x57\x49\xcc\xc5\x58\xc5\x59\xc5\x5a\xc5\x5b\xc5\x5c\xc5\x5d\xc5\x5e\xc5\x5f\xc5\x60\xc5\x61\xc5\x62\xc5\x63\xc5\x64\xc5\x65\xc5\x66\xc5\x67\xc5\x68\xc5\x69\xc5\x6a\xc5\x6b\xc5\x6c\xc5\x6d\xc5\x6e\xc5\x6f\xc5\x70\xc5\x71\xc5\x72\xc5\x73\xc5\x74\x6c\x71\xc5\x75\xc5\x76\xc5\x77\xc5\x78\xc5\x79\xc5\x7a\xc5\x7b\xc5\x7c\xc5\x7d\xc5\x7e\xc5\x7f\xc5\x81\xc5\x82\xc5\x83\xc5\x84\xc5\x85\xc5\x86\xc5\x87\xc5\x88\xc5\x89\xc5\x8a\xc5\x8b\xc5\x8c\xc5\x8d\xc5\x8e\xc5\x8f\xc5\x90\xc5\x91\xc5\x92\xc5\x93\xc5\x94\xc5\x95\xc5\x96\xc5\x97\xc5\x98\xc5\x99\xc5\x9a\x6c\x73\x6c\x72\xc5\x9b\xc5\x9c\xc5\x9d\xc5\x9e\xc5\x9f\xc5\xa0\xc5\xa1\xc5\xa2\xc5\xa3\xc5\xa4\xc5\xa5\xc5\xa6\xc5\xa7\x61\xba\xc5\xa8\x4e\xa1\xc5\xa9\x61\xbb\x61\xbc\x61\xbd\x61\xbe\x61\xbf\x61\xc0\x4c\x59\x59\xfa\x4f\x44\x55\xcd\x49\x45\x56\x67\xc5\xaa\x61\xc1\x4b\xfb\x54\xc3\x61\xc2\xc5\xab\xc5\xac\x4f\x68\xc5\xad\x49\x9e\x61\xc3\xc5\xae\x4b\xf5", /* 9980 */ "\x61\xc4\x52\xd8\xc5\xaf\xc5\xb0\x61\xc5\x58\x7a\x4d\x7d\x61\xc6\x50\xa0\xc5\xb1\x61\xc7\x49\xf5\xc5\xb2\x61\xc8\xc5\xb3\x51\x94\x61\xc9\x61\xca\x51\xf7\x61\xcb\x61\xcc\x61\xcd\x55\xd6\x5c\xb7\x5d\x86\x58\x84\xc5\xb4\xc5\xb5\xc5\xb6\xc5\xb7\xc5\xb8\xc5\xb9\xc5\xba\xc5\xbb\xc5\xbc\xc5\xbd\xc5\xbe\x68\xa4\xc5\xbf\xc5\xc0\x5e\xaf\xc5\xc1\xc5\xc2\xc5\xc3\xc5\xc4\xc5\xc5\xc5\xc6\xc5\xc7\xc5\xc8\xc5\xc9\xc5\xca\xc5\xcb\xc5\xcc\xc5\xcd\xc5\xce\xc5\xcf\xc5\xd0\xc5\xd1\xc5\xd2\xc5\xd3\xc5\xd4\xc5\xd5\xc5\xd6\xc5\xd7\xc5\xd8\xc5\xd9\xc5\xda\xc5\xdb\xc5\xdc\xc5\xdd\xc5\xde\xc5\xdf\xc5\xe0\xc5\xe1\xc5\xe2\xc5\xe3\xc5\xe4\xc5\xe5\xc5\xe6\xc5\xe7\xc5\xe8\xc5\xe9\xc5\xea\xc5\xeb\xc5\xec\xc5\xed\xc5\xee\xc5\xef\xc5\xf0\xc5\xf1\xc5\xf2\xc5\xf3\xc5\xf4\xc5\xf5\xc5\xf6\xc5\xf7\xc5\xf8\xc5\xf9\xc5\xfa\xc5\xfb\xc5\xfc\xc5\xfd\xc6\x41\xc6\x42\xc6\x43\xc6\x44\xc6\x45\xc6\x46\xc6\x47\xc6\x48\xc6\x49\xc6\x4a\xc6\x4b\xc6\x4c\xc6\x4d\xc6\x4e\xc6\x4f\xc6\x50\xc6\x51\xc6\x52\xc6\x53\xc6\x54\xc6\x55\xc6\x56\xc6\x57\xc6\x58\xc6\x59\xc6\x5a", /* 9a00 */ "\xc6\x5b\xc6\x5c\xc6\x5d\xc6\x5e\xc6\x5f\xc6\x60\xc6\x61\xc6\x62\xc6\x63\xc6\x64\xc6\x65\xc6\x66\xc6\x67\xc6\x68\xc6\x69\xc6\x6a\xc6\x6b\xc6\x6c\xc6\x6d\xc6\x6e\xc6\x6f\xc6\x70\xc6\x71\xc6\x72\xc6\x73\xc6\x74\xc6\x75\xc6\x76\xc6\x77\xc6\x78\xc6\x79\xc6\x7a\xc6\x7b\xc6\x7c\xc6\x7d\xc6\x7e\xc6\x7f\xc6\x81\xc6\x82\xc6\x83\xc6\x84\xc6\x85\xc6\x86\xc6\x87\xc6\x88\xc6\x89\xc6\x8a\xc6\x8b\xc6\x8c\xc6\x8d\xc6\x8e\xc6\x8f\xc6\x90\xc6\x91\xc6\x92\xc6\x93\xc6\x94\xc6\x95\xc6\x96\xc6\x97\xc6\x98\xc6\x99\xc6\x9a\xc6\x9b\xc6\x9c\xc6\x9d\xc6\x9e\xc6\x9f\xc6\xa0\xc6\xa1\xc6\xa2\xc6\xa3\xc6\xa4\xc6\xa5\xc6\xa6\xc6\xa7\xc6\xa8\xc6\xa9\xc6\xaa\xc6\xab\xc6\xac\xc6\xad\xc6\xae\xc6\xaf\xc6\xb0\xc6\xb1\xc6\xb2\xc6\xb3\xc6\xb4\xc6\xb5\xc6\xb6\xc6\xb7\xc6\xb8\xc6\xb9\xc6\xba\xc6\xbb\xc6\xbc\xc6\xbd\xc6\xbe\xc6\xbf\xc6\xc0\xc6\xc1\xc6\xc2\xc6\xc3\xc6\xc4\xc6\xc5\xc6\xc6\xc6\xc7\x51\xec\x5a\xa5\x57\x74\x59\x51\x4a\x7b\x54\x9e\xc6\xc8\x49\xb4\x51\xbe\x63\xdf\x55\xba\x63\xe0\x63\xe1\x4f\xd3\x63\xe2\x5c\x44\x57\x75\x63\xe4\x4e\xdc\x63\xe3", /* 9a80 */ "\x63\xe5\x63\xe6\x51\xed\xc6\xc9\x4f\x5e\x63\xe7\x51\xe5\x4d\xa6\x63\xe8\xc6\xca\x63\xe9\x4a\x72\x59\x8a\xc6\xcb\xc6\xcc\x50\x45\x63\xea\x53\xee\x63\xeb\x63\xec\xc6\xcd\xc6\xce\x63\xed\x53\xac\x63\xee\xc6\xcf\x55\x47\x63\xef\x63\xf0\x63\xf1\x63\x59\x63\xf2\x63\xf3\x51\xe1\x63\xf4\x63\xf5\x5b\xe7\x63\xf6\xc6\xd0\x63\xf7\x4d\x67\xc6\xd1\xc6\xd2\xc6\xd3\xc6\xd4\xc6\xd5\xc6\xd6\xc6\xd7\x6c\x5b\x6c\x5a\xc6\xd8\xc6\xd9\xc6\xda\xc6\xdb\x6c\x5e\x6c\x5c\x4d\xa0\xc6\xdc\x6c\x5f\xc6\xdd\x6c\x60\xc6\xde\xc6\xdf\xc6\xe0\x6c\x62\x6c\x61\x6c\x64\xc6\xe1\xc6\xe2\x6c\x63\xc6\xe3\xc6\xe4\xc6\xe5\xc6\xe6\xc6\xe7\x6c\x65\x6c\x66\xc6\xe8\xc6\xe9\xc6\xea\xc6\xeb\x6c\x67\xc6\xec\x56\x89\xc6\xed\xc6\xee\xc6\xef\xc6\xf0\x4c\xde\xc6\xf1\xc6\xf2\xc6\xf3\xc6\xf4\xc6\xf5\xc6\xf6\x6c\x74\xc6\xf7\x6c\x75\xc6\xf8\xc6\xf9\xc6\xfa\xc6\xfb\x6c\x76\xc6\xfc\xc6\xfd\xc7\x41\xc7\x42\x6c\x78\xc7\x43\x6c\x7a\xc7\x44\x6c\x77\xc7\x45\xc7\x46\xc7\x47\xc7\x48\xc7\x49\xc7\x4a\xc7\x4b\xc7\x4c\xc7\x4d\x6c\x7b\xc7\x4e\x6c\x79\xc7\x4f\xc7\x50\xc7\x51\xc7\x52", /* 9b00 */ "\xc7\x53\xc7\x54\xc7\x55\x5c\x77\xc7\x56\xc7\x57\xc7\x58\xc7\x59\x6c\x7c\xc7\x5a\xc7\x5b\xc7\x5c\xc7\x5d\xc7\x5e\xc7\x5f\x6c\x7d\xc7\x60\xc7\x61\xc7\x62\x6c\x7e\xc7\x63\xc7\x64\xc7\x65\xc7\x66\xc7\x67\xc7\x68\xc7\x69\xc7\x6a\xc7\x6b\xc7\x6c\xc7\x6d\x6c\x7f\xc7\x6e\xc7\x6f\xc7\x70\x6c\x81\xc7\x71\xc7\x72\xc7\x73\xc7\x74\xc7\x75\xc7\x76\xc7\x77\xc7\x78\xc7\x79\xc7\x7a\xc7\x7b\x5e\x6b\xc7\x7c\xc7\x7d\x5c\xa9\xc7\x7e\xc7\x7f\xc7\x81\xc7\x82\xc7\x83\xc7\x84\xc7\x85\xc7\x86\x63\x98\x4d\x8e\xc7\x87\xc7\x88\xc7\x89\xc7\x8a\x50\x9e\x4e\x8b\x6c\x69\x53\xc6\x6c\x68\xc7\x8b\x6c\x6a\x6c\x6c\x6c\x6b\xc7\x8c\xc7\x8d\xc7\x8e\x6c\x6d\xc7\x8f\x57\xb9\xc7\x90\x6c\x6e\xc7\x91\xc7\x92\x52\xa6\xc7\x93\xc7\x94\xc7\x95\xc7\x96\xc7\x97\xc7\x98\xc7\x99\xc7\x9a\xc7\x9b\xc7\x9c\xc7\x9d\xc7\x9e\xc7\x9f\xc7\xa0\xc7\xa1\xc7\xa2\xc7\xa3\xc7\xa4\xc7\xa5\xc7\xa6\xc7\xa7\xc7\xa8\xc7\xa9\xc7\xaa\xc7\xab\xc7\xac\xc7\xad\xc7\xae\xc7\xaf\xc7\xb0\xc7\xb1\xc7\xb2\xc7\xb3\xc7\xb4\xc7\xb5\xc7\xb6\xc7\xb7\xc7\xb8\xc7\xb9\xc7\xba\xc7\xbb\xc7\xbc\xc7\xbd", /* 9b80 */ "\xc7\xbe\xc7\xbf\xc7\xc0\xc7\xc1\xc7\xc2\xc7\xc3\xc7\xc4\xc7\xc5\xc7\xc6\xc7\xc7\xc7\xc8\xc7\xc9\xc7\xca\xc7\xcb\xc7\xcc\xc7\xcd\xc7\xce\xc7\xcf\xc7\xd0\xc7\xd1\xc7\xd2\xc7\xd3\xc7\xd4\xc7\xd5\xc7\xd6\xc7\xd7\xc7\xd8\xc7\xd9\xc7\xda\xc7\xdb\xc7\xdc\xc7\xdd\xc7\xde\xc7\xdf\xc7\xe0\xc7\xe1\xc7\xe2\xc7\xe3\xc7\xe4\xc7\xe5\xc7\xe6\xc7\xe7\xc7\xe8\xc7\xe9\xc7\xea\xc7\xeb\xc7\xec\xc7\xed\xc7\xee\xc7\xef\xc7\xf0\xc7\xf1\xc7\xf2\xc7\xf3\xc7\xf4\xc7\xf5\xc7\xf6\xc7\xf7\xc7\xf8\xc7\xf9\xc7\xfa\xc7\xfb\xc7\xfc\xc7\xfd\xc8\x41\xc8\x42\xc8\x43\xc8\x44\xc8\x45\xc8\x46\xc8\x47\xc8\x48\xc8\x49\xc8\x4a\xc8\x4b\xc8\x4c\xc8\x4d\xc8\x4e\xc8\x4f\xc8\x50\xc8\x51\xc8\x52\xc8\x53\xc8\x54\xc8\x55\xc8\x56\xc8\x57\xc8\x58\xc8\x59\xc8\x5a\xc8\x5b\xc8\x5c\xc8\x5d\xc8\x5e\xc8\x5f\xc8\x60\xc8\x61\xc8\x62\xc8\x63\xc8\x64\xc8\x65\xc8\x66\xc8\x67\xc8\x68\xc8\x69\xc8\x6a\xc8\x6b\xc8\x6c\xc8\x6d\xc8\x6e\xc8\x6f\xc8\x70\xc8\x71\xc8\x72\xc8\x73\xc8\x74\xc8\x75\xc8\x76\xc8\x77\xc8\x78\xc8\x79\xc8\x7a\xc8\x7b\xc8\x7c\xc8\x7d\xc8\x7e\xc8\x7f\xc8\x81", /* 9c00 */ "\xc8\x82\xc8\x83\xc8\x84\xc8\x85\xc8\x86\xc8\x87\xc8\x88\xc8\x89\xc8\x8a\xc8\x8b\xc8\x8c\xc8\x8d\xc8\x8e\xc8\x8f\xc8\x90\xc8\x91\xc8\x92\xc8\x93\xc8\x94\xc8\x95\xc8\x96\xc8\x97\xc8\x98\xc8\x99\xc8\x9a\xc8\x9b\xc8\x9c\xc8\x9d\xc8\x9e\xc8\x9f\xc8\xa0\xc8\xa1\xc8\xa2\xc8\xa3\xc8\xa4\xc8\xa5\xc8\xa6\xc8\xa7\xc8\xa8\xc8\xa9\xc8\xaa\xc8\xab\xc8\xac\xc8\xad\xc8\xae\xc8\xaf\xc8\xb0\xc8\xb1\xc8\xb2\xc8\xb3\xc8\xb4\xc8\xb5\xc8\xb6\xc8\xb7\xc8\xb8\xc8\xb9\xc8\xba\xc8\xbb\xc8\xbc\xc8\xbd\xc8\xbe\xc8\xbf\xc8\xc0\xc8\xc1\xc8\xc2\xc8\xc3\xc8\xc4\xc8\xc5\xc8\xc6\xc8\xc7\xc8\xc8\xc8\xc9\xc8\xca\xc8\xcb\xc8\xcc\xc8\xcd\xc8\xce\xc8\xcf\xc8\xd0\xc8\xd1\xc8\xd2\xc8\xd3\xc8\xd4\xc8\xd5\xc8\xd6\xc8\xd7\xc8\xd8\xc8\xd9\xc8\xda\xc8\xdb\xc8\xdc\xc8\xdd\xc8\xde\xc8\xdf\xc8\xe0\xc8\xe1\xc8\xe2\xc8\xe3\xc8\xe4\xc8\xe5\xc8\xe6\xc8\xe7\xc8\xe8\xc8\xe9\xc8\xea\xc8\xeb\xc8\xec\xc8\xed\xc8\xee\xc8\xef\xc8\xf0\xc8\xf1\xc8\xf2\xc8\xf3\xc8\xf4\xc8\xf5\xc8\xf6\xc8\xf7\xc8\xf8\xc8\xf9\xc8\xfa\xc8\xfb\xc8\xfc\xc8\xfd\x5a\x84\xc9\x41\xc9\x42\x6b\xce", /* 9c80 */ "\xc9\x43\x51\xb2\x6b\xcf\xc9\x44\xc9\x45\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\xc9\x46\xc9\x47\x6b\xd5\xc9\x48\x49\x4b\x6b\xd6\xc9\x49\x6b\xd7\x6b\xd8\x6b\xd9\xc9\x4a\x6b\xda\x6b\xdb\xc9\x4b\xc9\x4c\xc9\x4d\xc9\x4e\x6b\xdc\x6b\xdd\x58\x6a\xc9\x4f\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x50\xef\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\xc9\x50\x6b\xe9\xc9\x51\x6b\xea\x6b\xeb\xc9\x52\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x4f\xa7\xc9\x53\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\xc9\x54\xc9\x55\xc9\x56\xc9\x57\xc9\x58\x54\xf9\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\xc9\x59\xc9\x5a\x6b\xfc\x6b\xfd\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\xc9\x5b\xc9\x5c\x6c\x46\x6c\x47\x6c\x48\x49\x8f\x6c\x49\x6c\x4a\x6c\x4b\xc9\x5d\xc9\x5e\x6c\x4c\x6c\x4d\x51\x7b\x6c\x4e\xc9\x5f\xc9\x60\x6c\x4f\xc9\x61\xc9\x62\xc9\x63\xc9\x64\xc9\x65\xc9\x66\xc9\x67\xc9\x68\xc9\x69\xc9\x6a\xc9\x6b\xc9\x6c\xc9\x6d\xc9\x6e\xc9\x6f\xc9\x70\xc9\x71\xc9\x72\xc9\x73\xc9\x74\xc9\x75\xc9\x76\xc9\x77\xc9\x78\xc9\x79\xc9\x7a\xc9\x7b\xc9\x7c\xc9\x7d", /* 9d00 */ "\xc9\x7e\xc9\x7f\xc9\x81\xc9\x82\xc9\x83\xc9\x84\xc9\x85\xc9\x86\xc9\x87\xc9\x88\xc9\x89\xc9\x8a\xc9\x8b\xc9\x8c\xc9\x8d\xc9\x8e\xc9\x8f\xc9\x90\xc9\x91\xc9\x92\xc9\x93\xc9\x94\xc9\x95\xc9\x96\xc9\x97\xc9\x98\xc9\x99\xc9\x9a\xc9\x9b\xc9\x9c\xc9\x9d\xc9\x9e\xc9\x9f\xc9\xa0\xc9\xa1\xc9\xa2\xc9\xa3\xc9\xa4\xc9\xa5\xc9\xa6\xc9\xa7\xc9\xa8\xc9\xa9\xc9\xaa\xc9\xab\xc9\xac\xc9\xad\xc9\xae\xc9\xaf\xc9\xb0\xc9\xb1\xc9\xb2\xc9\xb3\xc9\xb4\xc9\xb5\xc9\xb6\xc9\xb7\xc9\xb8\xc9\xb9\xc9\xba\xc9\xbb\xc9\xbc\xc9\xbd\xc9\xbe\xc9\xbf\xc9\xc0\xc9\xc1\xc9\xc2\xc9\xc3\xc9\xc4\xc9\xc5\xc9\xc6\xc9\xc7\xc9\xc8\xc9\xc9\xc9\xca\xc9\xcb\xc9\xcc\xc9\xcd\xc9\xce\xc9\xcf\xc9\xd0\xc9\xd1\xc9\xd2\xc9\xd3\xc9\xd4\xc9\xd5\xc9\xd6\xc9\xd7\xc9\xd8\xc9\xd9\xc9\xda\xc9\xdb\xc9\xdc\xc9\xdd\xc9\xde\xc9\xdf\xc9\xe0\xc9\xe1\xc9\xe2\xc9\xe3\xc9\xe4\xc9\xe5\xc9\xe6\xc9\xe7\xc9\xe8\xc9\xe9\xc9\xea\xc9\xeb\xc9\xec\xc9\xed\xc9\xee\xc9\xef\xc9\xf0\xc9\xf1\xc9\xf2\xc9\xf3\xc9\xf4\xc9\xf5\xc9\xf6\xc9\xf7\xc9\xf8\xc9\xf9\xc9\xfa\xc9\xfb\xc9\xfc\xc9\xfd\xca\x41", /* 9d80 */ "\xca\x42\xca\x43\xca\x44\xca\x45\xca\x46\xca\x47\xca\x48\xca\x49\xca\x4a\xca\x4b\xca\x4c\xca\x4d\xca\x4e\xca\x4f\xca\x50\xca\x51\xca\x52\xca\x53\xca\x54\xca\x55\xca\x56\xca\x57\xca\x58\xca\x59\xca\x5a\xca\x5b\xca\x5c\xca\x5d\xca\x5e\xca\x5f\xca\x60\xca\x61\xca\x62\xca\x63\xca\x64\xca\x65\xca\x66\xca\x67\xca\x68\xca\x69\xca\x6a\xca\x6b\xca\x6c\xca\x6d\xca\x6e\xca\x6f\xca\x70\xca\x71\xca\x72\xca\x73\xca\x74\xca\x75\xca\x76\xca\x77\xca\x78\xca\x79\xca\x7a\xca\x7b\xca\x7c\xca\x7d\xca\x7e\xca\x7f\xca\x81\xca\x82\xca\x83\xca\x84\xca\x85\xca\x86\xca\x87\xca\x88\xca\x89\xca\x8a\xca\x8b\xca\x8c\xca\x8d\xca\x8e\xca\x8f\xca\x90\xca\x91\xca\x92\xca\x93\xca\x94\xca\x95\xca\x96\xca\x97\xca\x98\xca\x99\xca\x9a\xca\x9b\xca\x9c\xca\x9d\xca\x9e\xca\x9f\xca\xa0\xca\xa1\xca\xa2\xca\xa3\xca\xa4\xca\xa5\xca\xa6\xca\xa7\xca\xa8\xca\xa9\xca\xaa\xca\xab\xca\xac\xca\xad\xca\xae\xca\xaf\xca\xb0\xca\xb1\xca\xb2\xca\xb3\xca\xb4\xca\xb5\xca\xb6\xca\xb7\xca\xb8\xca\xb9\xca\xba\xca\xbb\xca\xbc\xca\xbd\xca\xbe\xca\xbf\xca\xc0\xca\xc1\xca\xc2", /* 9e00 */ "\xca\xc3\xca\xc4\xca\xc5\xca\xc6\xca\xc7\xca\xc8\xca\xc9\xca\xca\xca\xcb\xca\xcc\xca\xcd\xca\xce\xca\xcf\xca\xd0\xca\xd1\xca\xd2\xca\xd3\xca\xd4\xca\xd5\xca\xd6\xca\xd7\xca\xd8\xca\xd9\xca\xda\xca\xdb\xca\xdc\xca\xdd\xca\xde\xca\xdf\xca\xe0\xca\xe1\x52\xf0\x68\xae\x4e\xa5\x68\xaf\x52\x9a\xca\xe2\x53\x58\x59\x5b\xca\xe3\x68\xb0\x68\xb1\x68\xb2\x68\xb3\x68\xb4\x59\x5c\xca\xe4\x59\x8d\xca\xe5\x68\xb6\x68\xb5\x5a\xa6\xca\xe6\x57\x72\x68\xb7\x68\xb9\x68\xb8\x68\xba\x68\xbb\xca\xe7\xca\xe8\x4c\xea\x68\xbc\x4d\xe7\xca\xe9\x68\xbd\x68\xbe\x4f\xe8\x68\xbf\x4b\xeb\x68\xc0\x68\xc1\x68\xc2\x68\xc3\x54\xb4\x68\xc4\x68\xc5\xca\xea\x68\xc6\x53\x95\xca\xeb\x68\xc7\xca\xec\xca\xed\xca\xee\x68\xc8\xca\xef\x68\xc9\x6c\x5d\xca\xf0\x68\xca\x68\xcb\x68\xcc\xca\xf1\x68\xcd\xca\xf2\xca\xf3\xca\xf4\xca\xf5\x68\xce\x4d\xd6\xca\xf6\x68\xcf\x68\xd0\x68\xd1\x68\xd2\x68\xd3\x68\xd4\x68\xd5\x68\xd7\xca\xf7\xca\xf8\x5a\x45\x68\xd6\xca\xf9\x68\xd8\xca\xfa\xca\xfb\xca\xfc\xca\xfd\xcb\x41\xcb\x42\xcb\x43\xcb\x44\xcb\x45\xcb\x46\x6b\x5a\x51\xb8", /* 9e80 */ "\xcb\x47\xcb\x48\x6c\x85\xcb\x49\xcb\x4a\xcb\x4b\xcb\x4c\x6c\x86\x6c\x87\xcb\x4d\xcb\x4e\x6c\x88\xcb\x4f\xcb\x50\xcb\x51\xcb\x52\xcb\x53\xcb\x54\x6c\x89\x51\xb3\xcb\x55\xcb\x56\xcb\x57\xcb\x58\xcb\x59\xcb\x5a\xcb\x5b\xcb\x5c\xcb\x5d\x6c\x8b\xcb\x5e\x6c\x8c\xcb\x5f\xcb\x60\xcb\x61\xcb\x62\xcb\x63\xcb\x64\x51\xf2\xcb\x65\xcb\x66\xcb\x67\xcb\x68\xcb\x69\xcb\x6a\xcb\x6b\xcb\x6c\xcb\x6d\xcb\x6e\xcb\x6f\xcb\x70\xcb\x71\x6a\xef\xcb\x72\xcb\x73\xcb\x74\x6a\xee\xcb\x75\xcb\x76\x51\xe8\xcb\x77\x6c\x82\x6c\x83\xcb\x78\xcb\x79\xcb\x7a\xcb\x7b\xcb\x7c\x4e\x66\xcb\x7d\xcb\x7e\xcb\x7f\xcb\x81\x5d\x85\xcb\x82\xcb\x83\xcb\x84\x55\xf1\x50\xe7\x68\xa3\xcb\x85\x4d\xd9\xcb\x86\xcb\x87\x54\x4d\xcb\x88\xcb\x89\xcb\x8a\x52\xab\xcb\x8b\xcb\x8c\x6c\x8d\x6c\x8e\x6c\x8f\xcb\x8d\x6c\x91\x6c\x90\xcb\x8e\x6c\x92\xcb\x8f\xcb\x90\x6c\x95\xcb\x91\x6c\x94\xcb\x92\x6c\x93\x6c\x96\xcb\x93\xcb\x94\xcb\x95\xcb\x96\x6c\x97\xcb\x97\xcb\x98\xcb\x99\xcb\x9a\xcb\x9b\xcb\x9c\xcb\x9d\xcb\x9e\xcb\x9f\x67\x8a\xcb\xa0\x67\x8b\x67\x8c\xcb\xa1\x6b\xbb\xcb\xa2", /* 9f00 */ "\xcb\xa3\xcb\xa4\xcb\xa5\xcb\xa6\xcb\xa7\xcb\xa8\xcb\xa9\xcb\xaa\xcb\xab\xcb\xac\xcb\xad\x6b\xbc\xcb\xae\x6b\xbd\x4b\xa5\xcb\xaf\x5c\xbd\xcb\xb0\xcb\xb1\x4d\x64\xcb\xb2\xcb\xb3\xcb\xb4\x5c\xba\xcb\xb5\x5e\xb0\xcb\xb6\xcb\xb7\xcb\xb8\xcb\xb9\xcb\xba\xcb\xbb\x55\xf2\xcb\xbc\x6c\x98\xcb\xbd\xcb\xbe\xcb\xbf\xcb\xc0\xcb\xc1\xcb\xc2\xcb\xc3\xcb\xc4\xcb\xc5\x6c\x99\xcb\xc6\xcb\xc7\x6c\x9a\xcb\xc8\xcb\xc9\xcb\xca\xcb\xcb\xcb\xcc\xcb\xcd\xcb\xce\x6c\x9c\xcb\xcf\x6c\x9b\xcb\xd0\x49\x67\xcb\xd1\x6c\x9d\x6c\x9e\xcb\xd2\xcb\xd3\xcb\xd4\xcb\xd5\xcb\xd6\x6c\x9f\xcb\xd7\xcb\xd8\xcb\xd9\xcb\xda\xcb\xdb\xcb\xdc\xcb\xdd\xcb\xde\xcb\xdf\xcb\xe0\xcb\xe1\x53\xea\x66\xb3\xcb\xe2\xcb\xe3\xcb\xe4\xcb\xe5\xcb\xe6\xcb\xe7\xcb\xe8\xcb\xe9\xcb\xea\xcb\xeb\xcb\xec\xcb\xed\xcb\xee\xcb\xef\xcb\xf0\xcb\xf1\xcb\xf2\xcb\xf3\xcb\xf4\xcb\xf5\xcb\xf6\xcb\xf7\xcb\xf8\xcb\xf9\xcb\xfa\xcb\xfb\xcb\xfc\xcb\xfd\xcc\x41\xcc\x42\xcc\x43\xcc\x44\xcc\x45\xcc\x46\xcc\x47\xcc\x48\xcc\x49\xcc\x4a\xcc\x4b\xcc\x4c\xcc\x4d\xcc\x4e\xcc\x4f\xcc\x50\xcc\x51\x4a\x7d", /* 9f80 */ "\x6b\xb2\xcc\x52\xcc\x53\x6b\xb3\x51\x85\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x54\xa2\x6b\xba\xcc\x54\xcc\x55\xcc\x56\xcc\x57\xcc\x58\xcc\x59\xcc\x5a\xcc\x5b\xcc\x5c\xcc\x5d\xcc\x5e\xcc\x5f\x51\x9b\x4d\x48\x67\x89\xcc\x60\xcc\x61\xcc\x62\x4d\x8b\x5d\x7f\xcc\x63\xcc\x64\xcc\x65\xcc\x66\xcc\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ "\x6f\x75\x6f\x76\x6f\x77\x6f\x78\x6f\x79\x6f\x7a\x6f\x7b\x6f\x7c\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x84\x6f\x85\x6f\x86\x6f\x87\x6f\x88\x6f\x89\x6f\x8a\x6f\x8b\x6f\x8c\x6f\x8d\x6f\x8e\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9c\x6f\x9d\x6f\x9e\x6f\x9f\x6f\xa0\x6f\xa1\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa7\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb3\x6f\xb4\x6f\xb5\x6f\xb6\x6f\xb7\x6f\xb8\x6f\xb9\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc0\x6f\xc1\x6f\xc2\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xc9\x6f\xca\x6f\xcb\x6f\xcc\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd1\x6f\xd2\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xde\x6f\xdf\x6f\xe0\x6f\xe1\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea\x6f\xeb\x6f\xec\x6f\xed\x6f\xee\x6f\xef\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4", /* a080 */ "\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4c\x70\x4d\x70\x4e\x70\x4f\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5e\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6b\x70\x6c\x70\x6d\x70\x6e\x70\x6f\x70\x70\x70\x71\x70\x72\x70\x73\x70\x74\x70\x75\x70\x76\x70\x77\x70\x78\x70\x79\x70\x7a\x70\x7b\x70\x7c\x70\x7d\x70\x7e\x70\x7f\x70\x80\x70\x81\x70\x82\x70\x83\x70\x84\x70\x85\x70\x86\x70\x87\x70\x88\x70\x89\x70\x8a\x70\x8b\x70\x8c\x70\x8d\x70\x8e\x70\x8f\x70\x90\x70\x91\x70\x92\x70\x93\x70\x94\x70\x95\x70\x96\x70\x97\x70\x98\x70\x99\x70\x9a\x70\x9b\x70\x9c\x70\x9d\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xab\x70\xac\x70\xad\x70\xae\x70\xaf\x70\xb0\x70\xb1\x70\xb2\x70\xb3\x70\xb4\x70\xb5\x70\xb6", /* a100 */ "\x70\xb7\x70\xb8\x70\xb9\x70\xba\x70\xbb\x70\xbc\x70\xbd\x70\xbe\x70\xbf\x70\xc0\x70\xc1\x70\xc2\x70\xc3\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc8\x70\xc9\x70\xca\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xd8\x70\xd9\x70\xda\x70\xdb\x70\xdc\x70\xdd\x70\xde\x70\xdf\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe4\x70\xe5\x70\xe6\x70\xe7\x70\xe8\x70\xe9\x70\xea\x70\xeb\x70\xec\x70\xed\x70\xee\x70\xef\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf7\x70\xf8\x70\xf9\x70\xfa\x70\xfb\x70\xfc\x70\xfd\x70\xfe\x71\x41\x71\x42\x71\x43\x71\x44\x71\x45\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4a\x71\x4b\x71\x4c\x71\x4d\x71\x4e\x71\x4f\x71\x50\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5c\x71\x5d\x71\x5e\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x64\x71\x65\x71\x66\x71\x67\x71\x68\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6e\x71\x6f\x71\x70\x71\x71\x71\x72\x71\x73\x71\x74\x71\x75\x71\x76\x71\x77\x71\x78", /* a180 */ "\x71\x79\x71\x7a\x71\x7b\x71\x7c\x71\x7d\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x84\x71\x85\x71\x86\x71\x87\x71\x88\x71\x89\x71\x8a\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x8f\x71\x90\x71\x91\x71\x92\x71\x93\x71\x94\x71\x95\x71\x96\x71\x97\x71\x98\x71\x99\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\x9f\x71\xa0\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa8\x71\xa9\x71\xaa\x71\xab\x71\xac\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb3\x71\xb4\x71\xb5\x71\xb6\x71\xb7\x71\xb8\x71\xb9\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc3\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xce\x71\xcf\x71\xd0\x71\xd1\x71\xd2\x71\xd3\x71\xd4\x71\xd5\x71\xd6\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe0\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe5\x71\xe6\x71\xe7\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xee\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8", /* a200 */ "\x71\xf9\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x47\x72\x48\x72\x49\x72\x4a\x72\x4b\x72\x4c\x72\x4d\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x52\x72\x53\x72\x54\x72\x55\x72\x56\x72\x57\x72\x58\x72\x59\x72\x5a\x72\x5b\x72\x5c\x72\x5d\x72\x5e\x72\x5f\x72\x60\x72\x61\x72\x62\x72\x63\x72\x64\x72\x65\x72\x66\x72\x67\x72\x68\x72\x69\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x6e\x72\x6f\x72\x70\x72\x71\x72\x72\x72\x73\x72\x74\x72\x75\x72\x76\x72\x77\x72\x78\x72\x79\x72\x7a\x72\x7b\x72\x7c\x72\x7d\x72\x7e\x72\x7f\x72\x80\x72\x81\x72\x82\x72\x83\x72\x84\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8a\x72\x8b\x72\x8c\x72\x8d\x72\x8e\x72\x8f\x72\x90\x72\x91\x72\x92\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\x9f\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xac\x72\xad\x72\xae\x72\xaf\x72\xb0\x72\xb1\x72\xb2\x72\xb3\x72\xb4\x72\xb5\x72\xb6\x72\xb7\x72\xb8\x72\xb9\x72\xba", /* a280 */ "\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc1\x72\xc2\x72\xc3\x72\xc4\x72\xc5\x72\xc6\x72\xc7\x72\xc8\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcd\x72\xce\x72\xcf\x72\xd0\x72\xd1\x72\xd2\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd7\x72\xd8\x72\xd9\x72\xda\x72\xdb\x72\xdc\x72\xdd\x72\xde\x72\xdf\x72\xe0\x72\xe1\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xe8\x72\xe9\x72\xea\x72\xeb\x72\xec\x72\xed\x72\xee\x72\xef\x72\xf0\x72\xf1\x72\xf2\x72\xf3\x72\xf4\x72\xf5\x72\xf6\x72\xf7\x72\xf8\x72\xf9\x72\xfa\x72\xfb\x72\xfc\x72\xfd\x72\xfe\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4d\x73\x4e\x73\x4f\x73\x50\x73\x51\x73\x52\x73\x53\x73\x54\x73\x55\x73\x56\x73\x57\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x60\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6c\x73\x6d\x73\x6e\x73\x6f\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c", /* a300 */ "\x73\x7d\x73\x7e\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x84\x73\x85\x73\x86\x73\x87\x73\x88\x73\x89\x73\x8a\x73\x8b\x73\x8c\x73\x8d\x73\x8e\x73\x8f\x73\x90\x73\x91\x73\x92\x73\x93\x73\x94\x73\x95\x73\x96\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9b\x73\x9c\x73\x9d\x73\x9e\x73\x9f\x73\xa0\x73\xa1\x73\xa2\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xa9\x73\xaa\x73\xab\x73\xac\x73\xad\x73\xae\x73\xaf\x73\xb0\x73\xb1\x73\xb2\x73\xb3\x73\xb4\x73\xb5\x73\xb6\x73\xb7\x73\xb8\x73\xb9\x73\xba\x73\xbb\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc0\x73\xc1\x73\xc2\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xc8\x73\xc9\x73\xca\x73\xcb\x73\xcc\x73\xcd\x73\xce\x73\xcf\x73\xd0\x73\xd1\x73\xd2\x73\xd3\x73\xd4\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xd9\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xde\x73\xdf\x73\xe0\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe5\x73\xe6\x73\xe7\x73\xe8\x73\xe9\x73\xea\x73\xeb\x73\xec\x73\xed\x73\xee\x73\xef\x73\xf0\x73\xf1\x73\xf2\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc", /* a380 */ "\x73\xfd\x73\xfe\x74\x41\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x55\x74\x56\x74\x57\x74\x58\x74\x59\x74\x5a\x74\x5b\x74\x5c\x74\x5d\x74\x5e\x74\x5f\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6d\x74\x6e\x74\x6f\x74\x70\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x76\x74\x77\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7e\x74\x7f\x74\x80\x74\x81\x74\x82\x74\x83\x74\x84\x74\x85\x74\x86\x74\x87\x74\x88\x74\x89\x74\x8a\x74\x8b\x74\x8c\x74\x8d\x74\x8e\x74\x8f\x74\x90\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96\x74\x97\x74\x98\x74\x99\x74\x9a\x74\x9b\x74\x9c\x74\x9d\x74\x9e\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xa7\x74\xa8\x74\xa9\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xba\x74\xbb\x74\xbc\x74\xbd\x74\xbe", /* a400 */ "\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd2\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdc\x74\xdd\x74\xde\x74\xdf\x74\xe0\x74\xe1\x74\xe2\x74\xe3\x74\xe4\x74\xe5\x74\xe6\x74\xe7\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xee\x74\xef\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf4\x74\xf5\x74\xf6\x74\xf7\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x41\x75\x42\x75\x43\x75\x44\x75\x45\x75\x46\x75\x47\x75\x48\x75\x49\x75\x4a\x75\x4b\x75\x4c\x75\x4d\x75\x4e\x75\x4f\x75\x50\x75\x51\x75\x52\x75\x53\x75\x54\x75\x55\x75\x56\x75\x57\x75\x58\x75\x59\x75\x5a\x75\x5b\x75\x5c\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x65\x75\x66\x75\x67\x75\x68\x75\x69\x75\x6a\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x72\x75\x73\x75\x74\x75\x75\x75\x76\x75\x77\x75\x78\x75\x79\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x7f\x75\x80", /* a480 */ "\x75\x81\x75\x82\x75\x83\x75\x84\x75\x85\x75\x86\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8b\x75\x8c\x75\x8d\x75\x8e\x75\x8f\x75\x90\x75\x91\x75\x92\x75\x93\x75\x94\x75\x95\x75\x96\x75\x97\x75\x98\x75\x99\x75\x9a\x75\x9b\x75\x9c\x75\x9d\x75\x9e\x75\x9f\x75\xa0\x75\xa1\x75\xa2\x75\xa3\x75\xa4\x75\xa5\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xab\x75\xac\x75\xad\x75\xae\x75\xaf\x75\xb0\x75\xb1\x75\xb2\x75\xb3\x75\xb4\x75\xb5\x75\xb6\x75\xb7\x75\xb8\x75\xb9\x75\xba\x75\xbb\x75\xbc\x75\xbd\x75\xbe\x75\xbf\x75\xc0\x75\xc1\x75\xc2\x75\xc3\x75\xc4\x75\xc5\x75\xc6\x75\xc7\x75\xc8\x75\xc9\x75\xca\x75\xcb\x75\xcc\x75\xcd\x75\xce\x75\xcf\x75\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1", /* e080 */ "\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85", /* e100 */ "\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48", /* e180 */ "\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9", /* e200 */ "\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d", /* e280 */ "\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50", /* e300 */ "\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1", /* e380 */ "\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95", /* e400 */ "\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58", /* e480 */ "\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9", /* e500 */ "\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d", /* e580 */ "\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60", /* e600 */ "\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1", /* e680 */ "\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5", /* e700 */ "\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x80\x41\x80\x42\x80\x43\x80\x44\x80\x45\x80\x46\x80\x47\x80\x48\x80\x49\x80\x4a\x80\x4b\x80\x4c\x80\x4d\x80\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x90\xfc\x91\xfc\x92\xfc\x93\xfc\x94\xfc\x95\xfc\x96\xfc\x97\xfc\x98\xfc\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x57\xce\x58\xce\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x67\x00\x00\x00\x00\x00\x00\x00\x00\xce\x6c\xce\x6d\x00\x00\x00\x00\x00\x00\x00\x00\xce\x72\xce\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x96\xce\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5b\x44\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x46\xce\x47\xce\x48\xce\x49\x00\x00\xce\x4a\x00\x00\xce\x4b\xce\x4c\x00\x00\x00\x00\x00\x00\xce\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x4e\xce\x4f\xce\x50\x00\x00\xce\x51\xce\x52\x00\x00\x00\x00\xce\x53\xce\x54\xce\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x47\xf8\x48\xf8\x49\xf8\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x6b\xf8\x6c\xf8\x6d\xf8\x6e\x00\x00\x00\x00", /* fb80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x7f\xf8\x80\xf8\x81\xf8\x82\xf8\x83\xf8\x84\xf8\x85\xf8\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x9b\xf8\x9c\xf8\x9d\xf8\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xc4\xf8\xc5\xf8\xc6\xf8\xc7\xf8\xc8\xf8\xc9\xf8\xca\xf8\xcb\xf8\xcc\xf8\xcd\xf8\xce\xf8\xcf\xf8\xd0\xf8\xd1\xf8\xd2\xf8\xd3\xf8\xd4\xf8\xd5\xf8\xd6\xf8\xd7\xf8\xd8\xf8\xd9\xf8\xda\xf8\xdb\xf8\xdc\xf8\xdd\xf8\xde\xf8\xdf\xf8\xe0\xf8\xe1\xf8\xe2\xf8\xe3\xf8\xe4\xf8\xe5\xf8\xe6\xf8\xe7\xf8\xe8\xf8\xe9\xf8\xea\xf8\xeb\xf8\xec\xf8\xed\xf8\xee\xf8\xef\xf8\xf0", /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa8\x47\x51\x00\x00\x47\x52\x47\x53\x47\x41\x47\x42\x47\x4f\x47\x50\x47\x43\x47\x44\x47\x4d\x47\x4e\x47\x47\x47\x48\x47\x45\x47\x46\x47\x49\x47\x4a\x47\x4b\x47\x4c\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa9\xcd\xaa\xcd\xab\xcd\xac\xcd\xad\xcd\xae\xcd\xaf\xcd\xb0\xcd\xb1\xcd\xb2\x00\x00\xcd\xb3\xcd\xb4\xcd\xb5\xcd\xb6\x00\x00\xcd\xb7\xcd\xb8\xcd\xb9\xcd\xba\xcd\xbb\xcd\xbc\xcd\xbd\xcd\xbe\xcd\xbf\xcd\xc0\xcd\xc1\xcd\xc2\xcd\xc3\xcd\xc4\x00\x00\xcd\xc5\xcd\xc6\xcd\xc7\xcd\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fe80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xd0\xfb\xd1\xfb\xd2\xfb\xd3\xfb\xd4\xfb\xd5\xfb\xd6\xfb\xd7\xfb\xd8\xfb\xd9\x00\x00\x00\x00\xfb\xdc\xfb\xdd\xfb\xde\xfb\xdf\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xe4\xfb\xe5\xfb\xe6\xfb\xe7\xfb\xe8\xfb\xe9\xfb\xea\xfb\xeb\xfb\xec\xfb\xed\xfb\xee\xfb\xef\xfb\xf0\xfb\xf1\x00\x00\x00\x00\xfb\xf4\xfb\xf5\xfb\xf6\xfb\xf7\xfb\xf8\xfb\xf9\xfb\xfa\xfb\xfb\xfb\xfc\xfb\xfd\xfb\xfe\xfc\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x52\xfc\x53\xfc\x54\xfc\x55\xfc\x56\xfc\x57\xfc\x58\xfc\x59\xfc\x5a\xfc\x5b\xfc\x5c\xfc\x5d\xfc\x5e\xfc\x5f\xfc\x60\xfc\x61\xfc\x62\xfc\x63\xfc\x64\xfc\x65\xfc\x66\xfc\x67\xfc\x68\xfc\x69\xfc\x6a\xfc\x6b\xfc\x6c\xfc\x6d\xfc\x6e\xfc\x6f\xfc\x70\xfc\x71\xfc\x72\xfc\x73\xfc\x74\xfc\x75\xfc\x76\xfc\x77\xfc\x78\xfc\x79\xfc\x7a\xfc\x7b\xfc\x7c\xfc\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x84\xfc\x85\x00\x00\x00\x00\x00\x00", /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-1388_P103-2001 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x21\x6a\x21\x6b\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\xf8\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x15\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x64\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x65\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x16\x30\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x36\x22\x27\x22\x28\x22\x11\x22\x0f\x22\x2a\x22\x29\x22\x08\x22\x37\x22\x1a\x22\xa5\x22\x25\x22\x20\x23\x12\x22\x99\x22\x2b\x22\x2e\x22\x61\x22\x4c\x22\x48\x22\x3d\x22\x1d\x00\x00\x22\x6e\x22\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x20\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x88\x24\x89\x24\x8a\x24\x8b\x24\x8c\x24\x8d\x24\x8e\x24\x8f\x24\x90\x24\x91\x24\x92\x24\x93\x24\x94\x24\x95\x24\x96\x24\x97\x24\x98\x24\x99\x24\x9a\x24\x9b\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x24\x7e\x24\x7f\x24\x80\x24\x81\x24\x82\x24\x83\x24\x84\x24\x85\x24\x86\x24\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x20\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x20\x32\x21\x32\x22\x32\x23\x32\x24\x32\x25\x32\x26\x32\x27\x32\x28\x32\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xe1\x01\xce\x00\xe0\x01\x13\x00\xe9\x01\x1b\x00\xe8\x01\x2b\x00\xed\x01\xd0\x00\xec\x01\x4d\x00\xf3\x01\xd2\x00\xf2\x01\x6b\x00\xfa\x01\xd4\x00\xf9\x01\xd6\x01\xd8\x01\xda\x01\xdc\x00\xfc\x00\xea\x02\x51\xe7\xc7\x01\x44\x01\x48\x01\xf9\x02\x61\x00\x00\x00\x00\x00\x00\x00\x00\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f", /* 4680 */ "\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x25\x01\x25\x02\x25\x03\x25\x04\x25\x05\x25\x06\x25\x07\x25\x08\x25\x09\x25\x0a\x25\x0b\x25\x0c\x25\x0d\x25\x0e\x25\x0f\x25\x10\x25\x11\x25\x12\x25\x13\x25\x14\x25\x15\x25\x16\x25\x17\x25\x18\x25\x19\x25\x1a\x25\x1b\x25\x1c\x25\x1d\x25\x1e\x25\x1f\x25\x20\x25\x21\x25\x22\x25\x23\x25\x24\x25\x25\x25\x26\x25\x27\x25\x28\x25\x29\x25\x2a\x25\x2b\x25\x2c\x25\x2d\x25\x2e\x25\x2f\x25\x30\x25\x31\x25\x32\x25\x33\x25\x34\x25\x35\x25\x36\x25\x37\x25\x38\x25\x39\x25\x3a\x25\x3b\x25\x3c\x25\x3d\x25\x3e\x25\x3f\x25\x40\x25\x41\x25\x42\x25\x43\x25\x44\x25\x45\x25\x46\x25\x47\x25\x48\x25\x49\x25\x4a\x25\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x35\xfe\x36\xfe\x39\xfe\x3a\xfe\x3f\xfe\x40\xfe\x3d\xfe\x3e\xfe\x41\xfe\x42\xfe\x43\xfe\x44\xfe\x3b\xfe\x3c\xfe\x37\xfe\x38\xfe\x31\xfe\x33\xfe\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x06\x01\x06\x02\x06\x03\x06\x04\x06\x05\x06\x06\x06\x07\x06\x08\x06\x09\x06\x0a\x06\x0b\x06\x0c\x06\x0d\x06\x0e\x06\x0f\x06\x10\x06\x11\x06\x12\x06\x13\x06\x14\x06\x15\x06\x16\x06\x17\x06\x18\x06\x19\x06\x1a\x06\x1b\x06\x1c\x06\x1d\x06\x1e\x06\x1f\x06\x20\x06\x21\x06\x22", /* 4780 */ "\x06\x23\x06\x24\x06\x25\x06\x26\x06\x27\x06\x28\x06\x29\x06\x2a\x06\x2b\x06\x2c\x06\x2d\x06\x2e\x06\x2f\x06\x30\x06\x31\x06\x32\x06\x33\x06\x34\x06\x35\x06\x36\x06\x37\x06\x38\x06\x39\x06\x3a\x06\x3b\x06\x3c\x06\x3d\x06\x3e\x06\x3f\x06\x40\x06\x41\x06\x42\x06\x43\x06\x44\x06\x45\x06\x46\x06\x47\x06\x48\x06\x49\x06\x4a\x06\x4b\x06\x4c\x06\x4d\x06\x4e\x06\x4f\x06\x50\x06\x51\x06\x52\x06\x53\x06\x54\x06\x55\x06\x56\x06\x57\x06\x58\x06\x59\x06\x5a\x06\x5b\x06\x5c\x06\x5d\x06\x5e\x06\x5f\x06\x60\x06\x61\x06\x62\x06\x63\x06\x64\x06\x65\x06\x66\x06\x67\x06\x68\x06\x69\x06\x6a\x06\x6b\x06\x6c\x06\x6d\x06\x6e\x06\x6f\x06\x70\x06\x71\x06\x72\x06\x73\x06\x74\x06\x75\x06\x76\x06\x77\x06\x78\x06\x79\x06\x7a\x06\x7b\x06\x7c\x06\x7d\x06\x7e\x06\x7f\x06\x80\x06\x81\x06\x82\x06\x83\x06\x84\x06\x85\x06\x86\x06\x87\x06\x88\x06\x89\x06\x8a\x06\x8b\x06\x8c\x06\x8d\x06\x8e\x06\x8f\x06\x90\x06\x91\x06\x92\x06\x93\x06\x94\x06\x95\x06\x96\x06\x97\x06\x98\x06\x99\x06\x9a\x06\x9b\x06\x9c\x06\x9d\x06\x9e\x06\x9f\x06\xa0\x06\xa1\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\xa2\x06\xa3\x06\xa4\x06\xa5\x06\xa6\x06\xa7\x06\xa8\x06\xa9\x06\xaa\x06\xab\x06\xac\x06\xad\x06\xae\x06\xaf\x06\xb0\x06\xb1\x06\xb2\x06\xb3\x06\xb4\x06\xb5\x06\xb6\x06\xb7\x06\xb8\x06\xb9\x06\xba\x06\xbb\x06\xbc\x06\xbd\x06\xbe\x06\xbf\x06\xc0\x06\xc1\x06\xc2\x06\xc3\x06\xc4\x06\xc5\x06\xc6\x06\xc7\x06\xc8\x06\xc9\x06\xca\x06\xcb\x06\xcc\x06\xcd\x06\xce\x06\xcf\x06\xd0\x06\xd1\x06\xd2\x06\xd3\x06\xd4\x06\xd5\x06\xd6\x06\xd7\x06\xd8\x06\xd9\x06\xda\x06\xdb\x06\xdc\x06\xdd\x06\xde\x06\xdf\x06\xe0", /* 4880 */ "\x06\xe1\x06\xe2\x06\xe3\x06\xe4\x06\xe5\x06\xe6\x06\xe7\x06\xe8\x06\xe9\x06\xea\x06\xeb\x06\xec\x06\xed\x06\xee\x06\xef\x06\xf0\x06\xf1\x06\xf2\x06\xf3\x06\xf4\x06\xf5\x06\xf6\x06\xf7\x06\xf8\x06\xf9\x06\xfa\x06\xfb\x06\xfc\x06\xfd\x06\xfe\x06\xff\x00\x00\x55\x4a\x96\x3f\x57\xc3\x63\x28\x54\xce\x55\x09\x54\xc0\x76\x91\x76\x4c\x85\x3c\x77\xee\x82\x7e\x78\x8d\x72\x31\x96\x98\x97\x8d\x6c\x28\x5b\x89\x4f\xfa\x63\x09\x66\x97\x5c\xb8\x80\xfa\x68\x48\x80\xae\x66\x02\x76\xce\x51\xf9\x65\x56\x71\xac\x7f\xf1\x88\x84\x50\xb2\x59\x65\x61\xca\x6f\xb3\x82\xad\x63\x4c\x62\x52\x53\xed\x54\x27\x7b\x06\x51\x6b\x75\xa4\x5d\xf4\x62\xd4\x8d\xcb\x97\x76\x62\x8a\x80\x19\x57\x5d\x97\x38\x7f\x62\x72\x38\x76\x7d\x67\xcf\x76\x7e\x64\x46\x4f\x70\x8d\x25\x62\xdc\x7a\x17\x65\x91\x73\xed\x64\x2c\x62\x73\x82\x2c\x98\x81\x67\x7f\x72\x48\x62\x6e\x62\xcc\x4f\x34\x74\xe3\x53\x4a\x52\x9e\x7e\xca\x90\xa6\x5e\x2e\x68\x86\x69\x9c\x81\x80\x7e\xd1\x68\xd2\x78\xc5\x86\x8c\x95\x51\x50\x8d\x8c\x24\x82\xde\x80\xde\x53\x05\x89\x12\x52\x65\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x84\x96\xf9\x4f\xdd\x58\x21\x99\x71\x5b\x9d\x62\xb1\x62\xa5\x66\xb4\x8c\x79\x9c\x8d\x72\x06\x67\x6f\x78\x91\x60\xb2\x53\x51\x53\x17\x8f\x88\x80\xcc\x8d\x1d\x94\xa1\x50\x0d\x72\xc8\x59\x07\x60\xeb\x71\x19\x88\xab\x59\x54\x82\xef\x67\x2c\x7b\x28\x5d\x29\x7e\xf7\x75\x2d\x6c\xf5\x8e\x66\x8f\xf8\x90\x3c\x9f\x3b\x6b\xd4\x91\x19\x7b\x14\x5f\x7c\x78\xa7\x84\xd6\x85\x3d\x6b\xd5\x6b\xd9\x6b\xd6\x5e\x01\x5e\x87\x75\xf9\x95\xed\x65\x5d\x5f\x0a\x5f\xc5\x8f\x9f\x58\xc1\x81\xc2\x90\x7f\x96\x5b\x97\xad\x8f\xb9", /* 4980 */ "\x00\x00\x7f\x16\x8d\x2c\x62\x41\x4f\xbf\x53\xd8\x53\x5e\x8f\xa8\x8f\xa9\x8f\xab\x90\x4d\x68\x07\x5f\x6a\x81\x98\x88\x68\x9c\xd6\x61\x8b\x52\x2b\x76\x2a\x5f\x6c\x65\x8c\x6f\xd2\x6e\xe8\x5b\xbe\x64\x48\x51\x75\x51\xb0\x67\xc4\x4e\x19\x79\xc9\x99\x7c\x70\xb3\x75\xc5\x5e\x76\x73\xbb\x83\xe0\x64\xad\x62\xe8\x94\xb5\x6c\xe2\x53\x5a\x52\xc3\x64\x0f\x94\xc2\x7b\x94\x4f\x2f\x5e\x1b\x82\x36\x81\x16\x81\x8a\x6e\x24\x6c\xca\x9a\x73\x63\x55\x53\x5c\x54\xfa\x88\x65\x57\xe0\x4e\x0d\x5e\x03\x6b\x65\x7c\x3f\x90\xe8\x60\x16\x64\xe6\x73\x1c\x88\xc1\x67\x50\x62\x4d\x8d\x22\x77\x6c\x8e\x29\x91\xc7\x5f\x69\x83\xdc\x85\x21\x99\x10\x53\xc2\x86\x95\x6b\x8b\x60\xed\x60\xe8\x70\x7f\x82\xcd\x82\x31\x4e\xd3\x6c\xa7\x85\xcf\x64\xcd\x7c\xd9\x69\xfd\x66\xf9\x83\x49\x53\x95\x7b\x56\x4f\xa7\x51\x8c\x6d\x4b\x5c\x42\x8e\x6d\x63\xd2\x53\xc9\x83\x2c\x83\x36\x67\xe5\x78\xb4\x64\x3d\x5b\xdf\x5c\x94\x5d\xee\x8b\xe7\x62\xc6\x67\xf4\x8c\x7a\x64\x00\x63\xba\x87\x49\x99\x8b\x8c\x17\x7f\x20\x94\xf2\x4e\xa7\x96\x10\x98\xa4\x66\x0c\x73\x16\x00\x00\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x3a\x5c\x1d\x5e\x38\x95\x7f\x50\x7f\x80\xa0\x53\x82\x65\x5e\x75\x45\x55\x31\x50\x21\x8d\x85\x62\x84\x94\x9e\x67\x1d\x56\x32\x6f\x6e\x5d\xe2\x54\x35\x70\x92\x8f\x66\x62\x6f\x64\xa4\x63\xa3\x5f\x7b\x6f\x88\x90\xf4\x81\xe3\x8f\xb0\x5c\x18\x66\x68\x5f\xf1\x6c\x89\x96\x48\x8d\x81\x88\x6c\x64\x91\x79\xf0\x57\xce\x6a\x59\x62\x10\x54\x48\x4e\x58\x7a\x0b\x60\xe9\x6f\x84\x8b\xda\x62\x7f\x90\x1e\x9a\x8b\x79\xe4\x54\x03\x75\xf4\x63\x01\x53\x19\x6c\x60\x8f\xdf\x5f\x1b\x9a\x70\x80\x3b\x9f\x7f\x4f\x88\x5c\x3a", /* 4a80 */ "\x00\x00\x8d\x64\x7f\xc5\x65\xa5\x70\xbd\x51\x45\x51\xb2\x86\x6b\x5d\x07\x5b\xa0\x62\xbd\x91\x6c\x75\x74\x8e\x0c\x7a\x20\x61\x01\x7b\x79\x4e\xc7\x7e\xf8\x77\x85\x4e\x11\x81\xed\x52\x1d\x51\xfa\x6a\x71\x53\xa8\x8e\x87\x95\x04\x96\xcf\x6e\xc1\x96\x64\x69\x5a\x78\x40\x50\xa8\x77\xd7\x64\x10\x89\xe6\x59\x04\x63\xe3\x5d\xdd\x7a\x7f\x69\x3d\x4f\x20\x82\x39\x55\x98\x4e\x32\x75\xae\x7a\x97\x5e\x62\x5e\x8a\x95\xef\x52\x1b\x54\x39\x70\x8a\x63\x76\x95\x24\x57\x82\x66\x25\x69\x3f\x91\x87\x55\x07\x6d\xf3\x7e\xaf\x88\x22\x62\x33\x7e\xf0\x75\xb5\x83\x28\x78\xc1\x96\xcc\x8f\x9e\x61\x48\x74\xf7\x8b\xcd\x6b\x64\x52\x3a\x8d\x50\x6b\x21\x80\x6a\x84\x71\x56\xf1\x53\x06\x4e\xce\x4e\x1b\x51\xd1\x7c\x97\x91\x8b\x7c\x07\x4f\xc3\x8e\x7f\x7b\xe1\x7a\x9c\x64\x67\x5d\x14\x50\xac\x81\x06\x76\x01\x7c\xb9\x6d\xec\x7f\xe0\x67\x51\x5b\x58\x5b\xf8\x78\xcb\x64\xae\x64\x13\x63\xaa\x63\x2b\x95\x19\x64\x2d\x8f\xbe\x7b\x54\x76\x29\x62\x53\x59\x27\x54\x46\x6b\x79\x50\xa3\x62\x34\x5e\x26\x6b\x86\x4e\xe3\x8d\x37\x88\x8b\x5f\x85\x90\x2e\x00\x00\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x20\x80\x3d\x62\xc5\x4e\x39\x53\x55\x90\xf8\x63\xb8\x80\xc6\x65\xe6\x6c\x2e\x4f\x46\x60\xee\x6d\xe1\x8b\xde\x5f\x39\x86\xcb\x5f\x53\x63\x21\x51\x5a\x83\x61\x68\x63\x52\x00\x63\x63\x8e\x48\x50\x12\x5c\x9b\x79\x77\x5b\xfc\x52\x30\x7a\x3b\x60\xbc\x90\x53\x76\xd7\x5f\xb7\x5f\x97\x76\x84\x8e\x6c\x70\x6f\x76\x7b\x7b\x49\x77\xaa\x51\xf3\x90\x93\x58\x24\x4f\x4e\x6e\xf4\x8f\xea\x65\x4c\x7b\x1b\x72\xc4\x6d\xa4\x7f\xdf\x5a\xe1\x62\xb5\x5e\x95\x57\x30\x84\x82\x7b\x2c\x5e\x1d\x5f\x1f\x90\x12\x7f\x14\x98\xa0", /* 4b80 */ "\x00\x00\x63\x82\x6e\xc7\x78\x98\x70\xb9\x51\x78\x97\x5b\x57\xab\x75\x35\x4f\x43\x75\x38\x5e\x97\x60\xe6\x59\x60\x6d\xc0\x6b\xbf\x78\x89\x53\xfc\x96\xd5\x51\xcb\x52\x01\x63\x89\x54\x0a\x94\x93\x8c\x03\x8d\xcc\x72\x39\x78\x9f\x87\x76\x8f\xed\x8c\x0d\x53\xe0\x4e\x01\x76\xef\x53\xee\x94\x89\x98\x76\x9f\x0e\x95\x2d\x5b\x9a\x8b\xa2\x4e\x22\x4e\x1c\x51\xac\x84\x63\x61\xc2\x52\xa8\x68\x0b\x4f\x97\x60\x6b\x51\xbb\x6d\x1e\x51\x5c\x62\x96\x65\x97\x96\x61\x8c\x46\x90\x17\x75\xd8\x90\xfd\x77\x63\x6b\xd2\x72\x8a\x72\xec\x8b\xfb\x58\x35\x77\x79\x8d\x4c\x67\x5c\x95\x40\x80\x9a\x5e\xa6\x6e\x21\x59\x92\x7a\xef\x77\xed\x95\x3b\x6b\xb5\x65\xad\x7f\x0e\x58\x06\x51\x51\x96\x1f\x5b\xf9\x58\xa9\x54\x28\x8e\x72\x65\x66\x98\x7f\x56\xe4\x94\x9d\x76\xfe\x90\x41\x63\x87\x54\xc6\x59\x1a\x59\x3a\x57\x9b\x8e\xb2\x67\x35\x8d\xfa\x82\x35\x52\x41\x60\xf0\x58\x15\x86\xfe\x5c\xe8\x9e\x45\x4f\xc4\x98\x9d\x8b\xb9\x5a\x25\x60\x76\x53\x84\x62\x7c\x90\x4f\x91\x02\x99\x7f\x60\x69\x80\x0c\x51\x3f\x80\x33\x5c\x14\x99\x75\x6d\x31\x4e\x8c\x00\x00\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x30\x53\xd1\x7f\x5a\x7b\x4f\x4f\x10\x4e\x4f\x96\x00\x6c\xd5\x73\xd0\x85\xe9\x5e\x06\x75\x6a\x7f\xfb\x6a\x0a\x77\xfe\x94\x92\x7e\x41\x51\xe1\x70\xe6\x53\xcd\x8f\xd4\x83\x03\x8d\x29\x72\xaf\x99\x6d\x6c\xdb\x57\x4a\x82\xb3\x65\xb9\x80\xaa\x62\x3f\x96\x32\x59\xa8\x4e\xff\x8b\xbf\x7e\xba\x65\x3e\x83\xf2\x97\x5e\x55\x61\x98\xde\x80\xa5\x53\x2a\x8b\xfd\x54\x20\x80\xba\x5e\x9f\x6c\xb8\x8d\x39\x82\xac\x91\x5a\x54\x29\x6c\x1b\x52\x06\x7e\xb7\x57\x5f\x71\x1a\x6c\x7e\x7c\x89\x59\x4b\x4e\xfd\x5f\xff\x61\x24", /* 4c80 */ "\x00\x00\x7c\xaa\x4e\x30\x5c\x01\x67\xab\x87\x02\x5c\xf0\x95\x0b\x98\xce\x75\xaf\x70\xfd\x90\x22\x51\xaf\x7f\x1d\x8b\xbd\x59\x49\x51\xe4\x4f\x5b\x54\x26\x59\x2b\x65\x77\x80\xa4\x5b\x75\x62\x76\x62\xc2\x8f\x90\x5e\x45\x6c\x1f\x7b\x26\x4f\x0f\x4f\xd8\x67\x0d\x6d\x6e\x6d\xaa\x79\x8f\x88\xb1\x5f\x17\x75\x2b\x62\x9a\x8f\x85\x4f\xef\x91\xdc\x65\xa7\x81\x2f\x81\x51\x5e\x9c\x81\x50\x8d\x74\x52\x6f\x89\x86\x8d\x4b\x59\x0d\x50\x85\x4e\xd8\x96\x1c\x72\x36\x81\x79\x8d\x1f\x5b\xcc\x8b\xa3\x96\x44\x59\x87\x7f\x1a\x54\x90\x56\x76\x56\x0e\x8b\xe5\x65\x39\x69\x82\x94\x99\x76\xd6\x6e\x89\x5e\x72\x75\x18\x67\x46\x67\xd1\x7a\xff\x80\x9d\x8d\x76\x61\x1f\x79\xc6\x65\x62\x8d\x63\x51\x88\x52\x1a\x94\xa2\x7f\x38\x80\x9b\x7e\xb2\x5c\x97\x6e\x2f\x67\x60\x7b\xd9\x76\x8b\x9a\xd8\x81\x8f\x7f\x94\x7c\xd5\x64\x1e\x95\x50\x7a\x3f\x54\x4a\x54\xe5\x6b\x4c\x64\x01\x62\x08\x9e\x3d\x80\xf3\x75\x99\x52\x72\x97\x69\x84\x5b\x68\x3c\x86\xe4\x96\x01\x96\x94\x94\xec\x4e\x2a\x54\x04\x7e\xd9\x68\x39\x8d\xdf\x80\x15\x66\xf4\x5e\x9a\x7f\xb9\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x80\x3f\x68\x97\x5d\xe5\x65\x3b\x52\x9f\x60\x6d\x9f\x9a\x4f\x9b\x8e\xac\x51\x6c\x5b\xab\x5f\x13\x5d\xe9\x6c\x5e\x62\xf1\x8d\x21\x51\x71\x94\xa9\x52\xfe\x6c\x9f\x82\xdf\x72\xd7\x57\xa2\x67\x84\x8d\x2d\x59\x1f\x8f\x9c\x83\xc7\x54\x95\x7b\x8d\x4f\x30\x6c\xbd\x5b\x64\x59\xd1\x9f\x13\x53\xe4\x86\xca\x9a\xa8\x8c\x37\x80\xa1\x65\x45\x98\x7e\x56\xfa\x96\xc7\x52\x2e\x74\xdc\x52\x50\x5b\xe1\x63\x02\x89\x02\x4e\x56\x62\xd0\x60\x2a\x68\xfa\x51\x73\x5b\x98\x51\xa0\x89\xc2\x7b\xa1\x99\x86\x7f\x50\x60\xef", /* 4d80 */ "\x00\x00\x70\x4c\x8d\x2f\x51\x49\x5e\x7f\x90\x1b\x74\x70\x89\xc4\x57\x2d\x78\x45\x5f\x52\x9f\x9f\x95\xfa\x8f\x68\x9b\x3c\x8b\xe1\x76\x78\x68\x42\x67\xdc\x8d\xea\x8d\x35\x52\x3d\x8f\x8a\x6e\xda\x68\xcd\x95\x05\x90\xed\x56\xfd\x67\x9c\x88\xf9\x8f\xc7\x54\xc8\x9a\xb8\x5b\x69\x6d\x77\x6c\x26\x4e\xa5\x5b\xb3\x9a\x87\x91\x63\x61\xa8\x90\xaf\x97\xe9\x54\x2b\x6d\xb5\x5b\xd2\x51\xfd\x55\x8a\x7f\x55\x7f\xf0\x64\xbc\x63\x4d\x65\xf1\x61\xbe\x60\x8d\x71\x0a\x6c\x57\x6c\x49\x59\x2f\x67\x6d\x82\x2a\x58\xd5\x56\x8e\x8c\x6a\x6b\xeb\x90\xdd\x59\x7d\x80\x17\x53\xf7\x6d\x69\x54\x75\x55\x9d\x83\x77\x83\xcf\x68\x38\x79\xbe\x54\x8c\x4f\x55\x54\x08\x76\xd2\x8c\x89\x96\x02\x6c\xb3\x6d\xb8\x8d\x6b\x89\x10\x9e\x64\x8d\x3a\x56\x3f\x9e\xd1\x75\xd5\x5f\x88\x72\xe0\x60\x68\x54\xfc\x4e\xa8\x6a\x2a\x88\x61\x60\x52\x8f\x70\x54\xc4\x70\xd8\x86\x79\x9e\x3f\x6d\x2a\x5b\x8f\x5f\x18\x7e\xa2\x55\x89\x4f\xaf\x73\x34\x54\x3c\x53\x9a\x50\x19\x54\x0e\x54\x7c\x4e\x4e\x5f\xfd\x74\x5a\x58\xf6\x84\x6b\x80\xe1\x87\x74\x72\xd0\x7c\xca\x6e\x56\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x27\x86\x4e\x55\x2c\x62\xa4\x4e\x92\x6c\xaa\x62\x37\x82\xb1\x54\xd7\x53\x4e\x73\x3e\x6e\xd1\x75\x3b\x52\x12\x53\x16\x8b\xdd\x69\xd0\x5f\x8a\x60\x00\x6d\xee\x57\x4f\x6b\x22\x73\xaf\x68\x53\x8f\xd8\x7f\x13\x63\x62\x60\xa3\x55\x24\x75\xea\x8c\x62\x71\x15\x6d\xa3\x5b\xa6\x5e\x7b\x83\x52\x61\x4c\x9e\xc4\x78\xfa\x87\x57\x7c\x27\x76\x87\x51\xf0\x60\xf6\x71\x4c\x66\x43\x5e\x4c\x60\x4d\x8c\x0e\x70\x70\x63\x25\x8f\x89\x5f\xbd\x60\x62\x86\xd4\x56\xde\x6b\xc1\x60\x94\x61\x67\x53\x49\x60\xe0\x66\x66\x8d\x3f", /* 4e80 */ "\x00\x00\x79\xfd\x4f\x1a\x70\xe9\x6c\x47\x8b\xb3\x8b\xf2\x7e\xd8\x83\x64\x66\x0f\x5a\x5a\x9b\x42\x6d\x51\x6d\xf7\x8c\x41\x6d\x3b\x4f\x19\x70\x6b\x83\xb7\x62\x16\x60\xd1\x97\x0d\x8d\x27\x79\x78\x51\xfb\x57\x3e\x57\xfa\x67\x3a\x75\x78\x7a\x3d\x79\xef\x7b\x95\x80\x8c\x99\x65\x8f\xf9\x6f\xc0\x8b\xa5\x9e\x21\x59\xec\x7e\xe9\x7f\x09\x54\x09\x67\x81\x68\xd8\x8f\x91\x7c\x4d\x96\xc6\x53\xca\x60\x25\x75\xbe\x6c\x72\x53\x73\x5a\xc9\x7e\xa7\x63\x24\x51\xe0\x81\x0a\x5d\xf1\x84\xdf\x62\x80\x51\x80\x5b\x63\x4f\x0e\x79\x6d\x52\x42\x60\xb8\x6d\x4e\x5b\xc4\x5b\xc2\x8b\xa1\x8b\xb0\x65\xe2\x5f\xcc\x96\x45\x59\x93\x7e\xe7\x7e\xaa\x56\x09\x67\xb7\x59\x39\x4f\x73\x5b\xb6\x52\xa0\x83\x5a\x98\x8a\x8d\x3e\x75\x32\x94\xbe\x50\x47\x7a\x3c\x4e\xf7\x67\xb6\x9a\x7e\x5a\xc1\x6b\x7c\x76\xd1\x57\x5a\x5c\x16\x7b\x3a\x95\xf4\x71\x4e\x51\x7c\x80\xa9\x82\x70\x59\x78\x7f\x04\x83\x27\x68\xc0\x67\xec\x78\xb1\x78\x77\x62\xe3\x63\x61\x7b\x80\x4f\xed\x52\x6a\x51\xcf\x83\x50\x69\xdb\x92\x74\x8d\xf5\x8d\x31\x89\xc1\x95\x2e\x7b\xad\x4e\xf6\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x65\x82\x30\x52\x51\x99\x6f\x6e\x10\x6e\x85\x6d\xa7\x5e\xfa\x50\xf5\x59\xdc\x5c\x06\x6d\x46\x6c\x5f\x75\x86\x84\x8b\x68\x68\x59\x56\x8b\xb2\x53\x20\x91\x71\x96\x4d\x85\x49\x69\x12\x79\x01\x71\x26\x80\xf6\x4e\xa4\x90\xca\x6d\x47\x9a\x84\x5a\x07\x56\xbc\x64\x05\x94\xf0\x77\xeb\x4f\xa5\x81\x1a\x72\xe1\x89\xd2\x99\x7a\x7f\x34\x7e\xde\x52\x7f\x65\x59\x91\x75\x8f\x7f\x8f\x83\x53\xeb\x7a\x96\x63\xed\x63\xa5\x76\x86\x79\xf8\x88\x57\x96\x36\x62\x2a\x52\xab\x82\x82\x68\x54\x67\x70\x63\x77\x77\x6b\x7a\xed", /* 4f80 */ "\x00\x00\x6d\x01\x7e\xd3\x89\xe3\x59\xd0\x62\x12\x85\xc9\x82\xa5\x75\x4c\x50\x1f\x4e\xcb\x75\xa5\x8b\xeb\x5c\x4a\x5d\xfe\x7b\x4b\x65\xa4\x91\xd1\x4e\xca\x6d\x25\x89\x5f\x7d\x27\x95\x26\x4e\xc5\x8c\x28\x8f\xdb\x97\x73\x66\x4b\x79\x81\x8f\xd1\x70\xec\x6d\x78\x5c\x3d\x52\xb2\x83\x46\x51\x62\x83\x0e\x77\x5b\x66\x76\x9c\xb8\x4e\xac\x60\xca\x7c\xbe\x7c\xb3\x7e\xcf\x4e\x95\x8b\x66\x66\x6f\x98\x88\x97\x59\x58\x83\x65\x6c\x95\x5c\x5f\x84\x75\xc9\x97\x56\x7a\xdf\x7a\xde\x51\xc0\x70\xaf\x7a\x98\x63\xea\x7a\x76\x7e\xa0\x73\x96\x97\xed\x4e\x45\x70\x78\x4e\x5d\x91\x52\x53\xa9\x65\x51\x65\xe7\x81\xfc\x82\x05\x54\x8e\x5c\x31\x75\x9a\x97\xa0\x62\xd8\x72\xd9\x75\xbd\x5c\x45\x9a\x79\x83\xca\x5c\x40\x54\x80\x77\xe9\x4e\x3e\x6c\xae\x80\x5a\x62\xd2\x63\x6e\x5d\xe8\x51\x77\x8d\xdd\x8e\x1e\x95\x2f\x4f\xf1\x53\xe5\x60\xe7\x70\xac\x52\x67\x63\x50\x9e\x43\x5a\x1f\x50\x26\x77\x37\x53\x77\x7e\xe2\x64\x85\x65\x2b\x62\x89\x63\x98\x50\x14\x72\x35\x89\xc9\x51\xb3\x8b\xc0\x7e\xdd\x57\x47\x83\xcc\x94\xa7\x51\x9b\x54\x1b\x5c\xfb\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x7a\xe3\x6d\x5a\x90\xe1\x9a\x8f\x55\x80\x54\x96\x53\x61\x54\xaf\x5f\x00\x63\xe9\x69\x77\x51\xef\x61\x68\x52\x0a\x58\x2a\x52\xd8\x57\x4e\x78\x0d\x77\x0b\x5e\xb7\x61\x77\x7c\xe0\x62\x5b\x62\x97\x4e\xa2\x70\x95\x80\x03\x62\xf7\x70\xe4\x97\x60\x57\x77\x82\xdb\x67\xef\x68\xf5\x78\xd5\x98\x97\x79\xd1\x58\xf3\x54\xb3\x53\xef\x6e\x34\x51\x4b\x52\x3b\x5b\xa2\x8b\xfe\x80\xaf\x55\x43\x57\xa6\x60\x73\x57\x51\x54\x2d\x7a\x7a\x60\x50\x5b\x54\x63\xa7\x62\xa0\x53\xe3\x62\x63\x5b\xc7\x67\xaf\x54\xed\x7a\x9f", /* 5080 */ "\x00\x00\x82\xe6\x91\x77\x5e\x93\x88\xe4\x59\x38\x57\xae\x63\x0e\x8d\xe8\x80\xef\x57\x57\x7b\x77\x4f\xa9\x5f\xeb\x5b\xbd\x6b\x3e\x53\x21\x7b\x50\x72\xc2\x68\x46\x77\xff\x77\x36\x65\xf7\x51\xb5\x4e\x8f\x76\xd4\x5c\xbf\x7a\xa5\x84\x75\x59\x4e\x9b\x41\x50\x80\x99\x88\x61\x27\x6e\x83\x57\x64\x66\x06\x63\x46\x56\xf0\x62\xec\x62\x69\x5e\xd3\x96\x14\x57\x83\x62\xc9\x55\x87\x87\x21\x81\x4a\x8f\xa3\x55\x66\x83\xb1\x67\x65\x8d\x56\x84\xdd\x5a\x6a\x68\x0f\x62\xe6\x7b\xee\x96\x11\x51\x70\x6f\x9c\x8c\x30\x63\xfd\x89\xc8\x61\xd2\x7f\x06\x70\xc2\x6e\xe5\x74\x05\x69\x94\x72\xfc\x5e\xca\x90\xce\x67\x17\x6d\x6a\x63\x5e\x52\xb3\x72\x62\x80\x01\x4f\x6c\x59\xe5\x91\x6a\x70\xd9\x6d\x9d\x52\xd2\x4e\x50\x96\xf7\x95\x6d\x85\x7e\x78\xca\x7d\x2f\x51\x21\x57\x92\x64\xc2\x80\x8b\x7c\x7b\x6c\xea\x68\xf1\x69\x5e\x51\xb7\x53\x98\x68\xa8\x72\x81\x9e\xce\x7b\xf1\x72\xf8\x79\xbb\x6f\x13\x74\x06\x67\x4e\x91\xcc\x9c\xa4\x79\x3c\x83\x89\x83\x54\x54\x0f\x68\x17\x4e\x3d\x53\x89\x52\xb1\x78\x3e\x53\x86\x52\x29\x50\x88\x4f\x8b\x4f\xd0\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe2\x7a\xcb\x7c\x92\x6c\xa5\x96\xb6\x52\x9b\x74\x83\x54\xe9\x4f\xe9\x80\x54\x83\xb2\x8f\xde\x95\x70\x5e\xc9\x60\x1c\x6d\x9f\x5e\x18\x65\x5b\x81\x38\x94\xfe\x60\x4b\x70\xbc\x7e\xc3\x7c\xae\x51\xc9\x68\x81\x7c\xb1\x82\x6f\x4e\x24\x8f\x86\x91\xcf\x66\x7e\x4e\xae\x8c\x05\x64\xa9\x80\x4a\x50\xda\x75\x97\x71\xce\x5b\xe5\x8f\xbd\x6f\x66\x4e\x86\x64\x82\x95\x63\x5e\xd6\x65\x99\x52\x17\x88\xc2\x70\xc8\x52\xa3\x73\x0e\x74\x33\x67\x97\x78\xf7\x97\x16\x4e\x34\x90\xbb\x9c\xde\x6d\xcb\x51\xdb\x8d\x41\x54\x1d", /* 5180 */ "\x00\x00\x62\xce\x73\xb2\x83\xf1\x96\xf6\x9f\x84\x94\xc3\x4f\x36\x7f\x9a\x51\xcc\x70\x75\x96\x75\x5c\xad\x98\x86\x53\xe6\x4e\xe4\x6e\x9c\x74\x09\x69\xb4\x78\x6b\x99\x8f\x75\x59\x52\x18\x76\x24\x6d\x41\x67\xf3\x51\x6d\x9f\x99\x80\x4b\x54\x99\x7b\x3c\x7a\xbf\x96\x86\x57\x84\x62\xe2\x96\x47\x69\x7c\x5a\x04\x64\x02\x7b\xd3\x6f\x0f\x96\x4b\x82\xa6\x53\x62\x98\x85\x5e\x90\x70\x89\x63\xb3\x53\x64\x86\x4f\x9c\x81\x9e\x93\x78\x8c\x97\x32\x8d\xef\x8d\x42\x9e\x7f\x6f\x5e\x79\x84\x5f\x55\x96\x46\x62\x2e\x9a\x74\x54\x15\x94\xdd\x4f\xa3\x65\xc5\x5c\x65\x5c\x61\x7f\x15\x86\x51\x6c\x2f\x5f\x8b\x73\x87\x6e\xe4\x7e\xff\x5c\xe6\x63\x1b\x5b\x6a\x6e\xe6\x53\x75\x4e\x71\x63\xa0\x75\x65\x62\xa1\x8f\x6e\x4f\x26\x4e\xd1\x6c\xa6\x7e\xb6\x8b\xba\x84\x1d\x87\xba\x7f\x57\x90\x3b\x95\x23\x7b\xa9\x9a\xa1\x88\xf8\x84\x3d\x6d\x1b\x9a\x86\x7e\xdc\x59\x88\x9e\xbb\x73\x9b\x78\x01\x86\x82\x9a\x6c\x9a\x82\x56\x1b\x54\x17\x57\xcb\x4e\x70\x9e\xa6\x53\x56\x8f\xc8\x81\x09\x77\x92\x99\x92\x86\xee\x6e\xe1\x85\x13\x66\xfc\x61\x62\x6f\x2b\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x29\x82\x92\x83\x2b\x76\xf2\x6c\x13\x5f\xd9\x83\xbd\x73\x2b\x83\x05\x95\x1a\x6b\xdb\x77\xdb\x94\xc6\x53\x6f\x83\x02\x51\x92\x5e\x3d\x8c\x8c\x8d\x38\x4e\x48\x73\xab\x67\x9a\x68\x85\x91\x76\x97\x09\x71\x64\x6c\xa1\x77\x09\x5a\x92\x95\x41\x6b\xcf\x7f\x8e\x66\x27\x5b\xd0\x59\xb9\x5a\x9a\x95\xe8\x95\xf7\x4e\xec\x84\x0c\x84\x99\x6a\xac\x76\xdf\x95\x30\x73\x1b\x68\xa6\x5b\x5f\x77\x2f\x91\x9a\x97\x61\x7c\xdc\x8f\xf7\x8c\x1c\x5f\x25\x7c\x73\x79\xd8\x89\xc5\x6c\xcc\x87\x1c\x5b\xc6\x5e\x42\x68\xc9\x77\x20", /* 5280 */ "\x00\x00\x7e\xf5\x51\x95\x51\x4d\x52\xc9\x5a\x29\x7f\x05\x97\x62\x82\xd7\x63\xcf\x77\x84\x85\xd0\x79\xd2\x6e\x3a\x5e\x99\x59\x99\x85\x11\x70\x6d\x6c\x11\x62\xbf\x76\xbf\x65\x4f\x60\xaf\x95\xfd\x66\x0e\x87\x9f\x9e\x23\x94\xed\x54\x0d\x54\x7d\x8c\x2c\x64\x78\x64\x79\x86\x11\x6a\x21\x81\x9c\x78\xe8\x64\x69\x9b\x54\x62\xb9\x67\x2b\x83\xab\x58\xa8\x9e\xd8\x6c\xab\x6f\x20\x5b\xde\x96\x4c\x8c\x0b\x72\x5f\x67\xd0\x62\xc7\x72\x61\x4e\xa9\x59\xc6\x6b\xcd\x58\x93\x66\xae\x5e\x55\x52\xdf\x61\x55\x67\x28\x76\xee\x77\x66\x72\x67\x7a\x46\x62\xff\x54\xea\x54\x50\x94\xa0\x90\xa3\x5a\x1c\x7e\xb3\x6c\x16\x4e\x43\x59\x76\x80\x10\x59\x48\x53\x57\x75\x37\x96\xbe\x56\xca\x63\x20\x81\x11\x60\x7c\x95\xf9\x6d\xd6\x54\x62\x99\x81\x51\x85\x5a\xe9\x80\xfd\x59\xae\x97\x13\x50\x2a\x6c\xe5\x5c\x3c\x62\xdf\x4f\x60\x53\x3f\x81\x7b\x90\x06\x6e\xba\x85\x2b\x62\xc8\x5e\x74\x78\xbe\x64\xb5\x63\x7b\x5f\xf5\x5a\x18\x91\x7f\x9e\x1f\x5c\x3f\x63\x4f\x80\x42\x5b\x7d\x55\x6e\x95\x4a\x95\x4d\x6d\x85\x60\xa8\x67\xe0\x72\xde\x51\xdd\x5b\x81\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe7\x6c\xde\x72\x5b\x62\x6d\x94\xae\x7e\xbd\x81\x13\x6d\x53\x51\x9c\x5f\x04\x59\x74\x52\xaa\x60\x12\x59\x73\x66\x96\x86\x50\x75\x9f\x63\x2a\x61\xe6\x7c\xef\x8b\xfa\x54\xe6\x6b\x27\x9e\x25\x6b\xb4\x85\xd5\x54\x55\x50\x76\x6c\xa4\x55\x6a\x8d\xb4\x72\x2c\x5e\x15\x60\x15\x74\x36\x62\xcd\x63\x92\x72\x4c\x5f\x98\x6e\x43\x6d\x3e\x65\x00\x6f\x58\x76\xd8\x78\xd0\x76\xfc\x75\x54\x52\x24\x53\xdb\x4e\x53\x5e\x9e\x65\xc1\x80\x2a\x80\xd6\x62\x9b\x54\x86\x52\x28\x70\xae\x88\x8d\x8d\xd1\x6c\xe1\x54\x78\x80\xda", /* 5380 */ "\x00\x00\x57\xf9\x88\xf4\x8d\x54\x96\x6a\x91\x4d\x4f\x69\x6c\x9b\x55\xb7\x76\xc6\x78\x30\x62\xa8\x70\xf9\x6f\x8e\x5f\x6d\x84\xec\x68\xda\x78\x7c\x7b\xf7\x81\xa8\x67\x0b\x9e\x4f\x63\x67\x78\xb0\x57\x6f\x78\x12\x97\x39\x62\x79\x62\xab\x52\x88\x74\x35\x6b\xd7\x55\x64\x81\x3e\x75\xb2\x76\xae\x53\x39\x75\xde\x50\xfb\x5c\x41\x8b\x6c\x7b\xc7\x50\x4f\x72\x47\x9a\x97\x98\xd8\x6f\x02\x74\xe2\x79\x68\x64\x87\x77\xa5\x62\xfc\x98\x91\x8d\x2b\x54\xc1\x80\x58\x4e\x52\x57\x6a\x82\xf9\x84\x0d\x5e\x73\x51\xed\x74\xf6\x8b\xc4\x5c\x4f\x57\x61\x6c\xfc\x98\x87\x5a\x46\x78\x34\x9b\x44\x8f\xeb\x7c\x95\x52\x56\x62\x51\x94\xfa\x4e\xc6\x83\x86\x84\x61\x83\xe9\x84\xb2\x57\xd4\x67\x34\x57\x03\x66\x6e\x6d\x66\x8c\x31\x66\xdd\x70\x11\x67\x1f\x6b\x3a\x68\x16\x62\x1a\x59\xbb\x4e\x03\x51\xc4\x6f\x06\x67\xd2\x6c\x8f\x51\x76\x68\xcb\x59\x47\x6b\x67\x75\x66\x5d\x0e\x81\x10\x9f\x50\x65\xd7\x79\x48\x79\x41\x9a\x91\x8d\x77\x5c\x82\x4e\x5e\x4f\x01\x54\x2f\x59\x51\x78\x0c\x56\x68\x6c\x14\x8f\xc4\x5f\x03\x6c\x7d\x6c\xe3\x8b\xab\x63\x90\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x70\x6d\x3d\x72\x75\x62\x66\x94\x8e\x94\xc5\x53\x43\x8f\xc1\x7b\x7e\x4e\xdf\x8c\x26\x4e\x7e\x9e\xd4\x94\xb1\x94\xb3\x52\x4d\x6f\x5c\x90\x63\x6d\x45\x8c\x34\x58\x11\x5d\x4c\x6b\x20\x6b\x49\x67\xaa\x54\x5b\x81\x54\x7f\x8c\x58\x99\x85\x37\x5f\x3a\x62\xa2\x6a\x47\x95\x39\x65\x72\x60\x84\x68\x65\x77\xa7\x4e\x54\x4f\xa8\x5d\xe7\x97\x98\x64\xac\x7f\xd8\x5c\xed\x4f\xcf\x7a\x8d\x52\x07\x83\x04\x4e\x14\x60\x2f\x7a\x83\x94\xa6\x4f\xb5\x4e\xb2\x79\xe6\x74\x34\x52\xe4\x82\xb9\x64\xd2\x79\xbd\x5b\xdd\x6c\x81", /* 5480 */ "\x00\x00\x97\x52\x8f\x7b\x6c\x22\x50\x3e\x53\x7f\x6e\x05\x64\xce\x66\x74\x6c\x30\x60\xc5\x98\x77\x8b\xf7\x5e\x86\x74\x3c\x7a\x77\x79\xcb\x4e\x18\x90\xb1\x74\x03\x6c\x42\x56\xda\x91\x4b\x6c\xc5\x8d\x8b\x53\x3a\x86\xc6\x66\xf2\x8e\xaf\x5c\x48\x9a\x71\x6e\x20\x53\xd6\x5a\x36\x9f\x8b\x8d\xa3\x53\xbb\x57\x08\x98\xa7\x67\x43\x91\x9b\x6c\xc9\x51\x68\x75\xca\x62\xf3\x72\xac\x52\x38\x52\x9d\x7f\x3a\x70\x94\x76\x38\x53\x74\x9e\x4a\x69\xb7\x78\x6e\x96\xc0\x88\xd9\x7f\xa4\x71\x36\x71\xc3\x51\x89\x67\xd3\x74\xe4\x58\xe4\x65\x18\x56\xb7\x8b\xa9\x99\x76\x62\x70\x7e\xd5\x60\xf9\x70\xed\x58\xec\x4e\xc1\x4e\xba\x5f\xcd\x97\xe7\x4e\xfb\x8b\xa4\x52\x03\x59\x8a\x7e\xab\x62\x54\x4e\xcd\x65\xe5\x62\x0e\x83\x38\x84\xc9\x83\x63\x87\x8d\x71\x94\x6e\xb6\x5b\xb9\x7e\xd2\x51\x97\x63\xc9\x67\xd4\x80\x89\x83\x39\x88\x15\x51\x12\x5b\x7a\x59\x82\x8f\xb1\x4e\x73\x6c\x5d\x51\x65\x89\x25\x8f\x6f\x96\x2e\x85\x4a\x74\x5e\x95\x10\x95\xf0\x6d\xa6\x82\xe5\x5f\x31\x64\x92\x6d\x12\x84\x28\x81\x6e\x9c\xc3\x58\x5e\x8d\x5b\x4e\x09\x53\xc1\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x1e\x65\x63\x68\x51\x55\xd3\x4e\x27\x64\x14\x9a\x9a\x62\x6b\x5a\xc2\x74\x5f\x82\x72\x6d\xa9\x68\xee\x50\xe7\x83\x8e\x78\x02\x67\x40\x52\x39\x6c\x99\x7e\xb1\x50\xbb\x55\x65\x71\x5e\x7b\x5b\x66\x52\x73\xca\x82\xeb\x67\x49\x5c\x71\x52\x20\x71\x7d\x88\x6b\x95\xea\x96\x55\x64\xc5\x8d\x61\x81\xb3\x55\x84\x6c\x55\x62\x47\x7f\x2e\x58\x92\x4f\x24\x55\x46\x8d\x4f\x66\x4c\x4e\x0a\x5c\x1a\x88\xf3\x68\xa2\x63\x4e\x7a\x0d\x70\xe7\x82\x8d\x52\xfa\x97\xf6\x5c\x11\x54\xe8\x90\xb5\x7e\xcd\x59\x62\x8d\x4a\x86\xc7", /* 5580 */ "\x00\x00\x82\x0c\x82\x0d\x8d\x66\x64\x44\x5c\x04\x61\x51\x6d\x89\x79\x3e\x8b\xbe\x78\x37\x75\x33\x54\x7b\x4f\x38\x8e\xab\x6d\xf1\x5a\x20\x7e\xc5\x79\x5e\x6c\x88\x5b\xa1\x5a\x76\x75\x1a\x80\xbe\x61\x4e\x6e\x17\x58\xf0\x75\x1f\x75\x25\x72\x72\x53\x47\x7e\xf3\x77\x01\x76\xdb\x52\x69\x80\xdc\x57\x23\x5e\x08\x59\x31\x72\xee\x65\xbd\x6e\x7f\x8b\xd7\x5c\x38\x86\x71\x53\x41\x77\xf3\x62\xfe\x65\xf6\x4e\xc0\x98\xdf\x86\x80\x5b\x9e\x8b\xc6\x53\xf2\x77\xe2\x4f\x7f\x5c\x4e\x9a\x76\x59\xcb\x5f\x0f\x79\x3a\x58\xeb\x4e\x16\x67\xff\x4e\x8b\x62\xed\x8a\x93\x90\x1d\x52\xbf\x66\x2f\x55\xdc\x56\x6c\x90\x02\x4e\xd5\x4f\x8d\x91\xca\x99\x70\x6c\x0f\x5e\x02\x60\x43\x5b\xa4\x89\xc6\x8b\xd5\x65\x36\x62\x4b\x99\x96\x5b\x88\x5b\xff\x63\x88\x55\x2e\x53\xd7\x76\x26\x51\x7d\x85\x2c\x67\xa2\x68\xb3\x6b\x8a\x62\x92\x8f\x93\x53\xd4\x82\x12\x6d\xd1\x75\x8f\x4e\x66\x8d\x4e\x5b\x70\x71\x9f\x85\xaf\x66\x91\x66\xd9\x7f\x72\x87\x00\x9e\xcd\x9f\x20\x5c\x5e\x67\x2f\x8f\xf0\x68\x11\x67\x5f\x62\x0d\x7a\xd6\x58\x85\x5e\xb6\x65\x70\x6f\x31\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x55\x52\x37\x80\x0d\x64\x54\x88\x70\x75\x29\x5e\x05\x68\x13\x62\xf4\x97\x1c\x53\xcc\x72\x3d\x8c\x01\x6c\x34\x77\x61\x7a\x0e\x54\x2e\x77\xac\x98\x7a\x82\x1c\x8b\xf4\x78\x55\x67\x14\x70\xc1\x65\xaf\x64\x95\x56\x36\x60\x1d\x79\xc1\x53\xf8\x4e\x1d\x6b\x7b\x80\x86\x5b\xfa\x55\xe3\x56\xdb\x4f\x3a\x4f\x3c\x99\x72\x5d\xf3\x67\x7e\x80\x38\x60\x02\x98\x82\x90\x01\x5b\x8b\x8b\xbc\x8b\xf5\x64\x1c\x82\x58\x64\xde\x55\xfd\x82\xcf\x91\x65\x4f\xd7\x7d\x20\x90\x1f\x7c\x9f\x50\xf3\x58\x51\x6e\xaf\x5b\xbf\x8b\xc9", /* 5680 */ "\x00\x00\x80\x83\x91\x78\x84\x9c\x7b\x97\x86\x7d\x96\x8b\x96\x8f\x7e\xe5\x9a\xd3\x78\x8e\x5c\x81\x7a\x57\x90\x42\x96\xa7\x79\x5f\x5b\x59\x63\x5f\x7b\x0b\x84\xd1\x68\xad\x55\x06\x7f\x29\x74\x10\x7d\x22\x95\x01\x62\x40\x58\x4c\x4e\xd6\x5b\x83\x59\x79\x58\x54\x73\x6d\x63\x1e\x8e\x4b\x8e\x0f\x80\xce\x82\xd4\x62\xac\x53\xf0\x6c\xf0\x91\x5e\x59\x2a\x60\x01\x6c\x70\x57\x4d\x64\x4a\x8d\x2a\x76\x2b\x6e\xe9\x57\x5b\x6a\x80\x75\xf0\x6f\x6d\x8c\x2d\x8c\x08\x57\x66\x6b\xef\x88\x92\x78\xb3\x63\xa2\x53\xf9\x70\xad\x6c\x64\x58\x58\x64\x2a\x58\x02\x68\xe0\x81\x9b\x55\x10\x7c\xd6\x50\x18\x8e\xba\x6d\xcc\x8d\x9f\x70\xeb\x63\x8f\x6d\x9b\x6e\xd4\x7e\xe6\x84\x04\x68\x43\x90\x03\x6d\xd8\x96\x76\x8b\xa8\x59\x57\x72\x79\x85\xe4\x81\x7e\x75\xbc\x8a\x8a\x68\xaf\x52\x54\x8e\x22\x95\x11\x63\xd0\x98\x98\x8e\x44\x55\x7c\x4f\x53\x66\xff\x56\x8f\x60\xd5\x6d\x95\x52\x43\x5c\x49\x59\x29\x6d\xfb\x58\x6b\x75\x30\x75\x1c\x60\x6c\x82\x14\x81\x46\x63\x11\x67\x61\x8f\xe2\x77\x3a\x8d\xf3\x8d\x34\x94\xc1\x5e\x16\x53\x85\x54\x2c\x70\xc3\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x40\x5e\xf7\x50\x5c\x4e\xad\x5e\xad\x63\x3a\x82\x47\x90\x1a\x68\x50\x91\x6e\x77\xb3\x54\x0c\x94\xdc\x5f\x64\x7a\xe5\x68\x76\x63\x45\x7b\x52\x7e\xdf\x75\xdb\x50\x77\x62\x95\x59\x34\x90\x0f\x51\xf8\x79\xc3\x7a\x81\x56\xfe\x5f\x92\x90\x14\x6d\x82\x5c\x60\x57\x1f\x54\x10\x51\x54\x6e\x4d\x56\xe2\x63\xa8\x98\x93\x81\x7f\x87\x15\x89\x2a\x90\x00\x54\x1e\x5c\x6f\x81\xc0\x62\xd6\x62\x58\x81\x31\x9e\x35\x96\x40\x9a\x6e\x9a\x7c\x69\x2d\x59\xa5\x62\xd3\x55\x3e\x63\x16\x54\xc7\x86\xd9\x6d\x3c\x5a\x03\x74\xe6", /* 5780 */ "\x00\x00\x88\x9c\x6b\x6a\x59\x16\x8c\x4c\x5f\x2f\x6e\x7e\x73\xa9\x98\x7d\x4e\x38\x70\xf7\x5b\x8c\x78\x97\x63\x3d\x66\x5a\x76\x96\x60\xcb\x5b\x9b\x5a\x49\x4e\x07\x81\x55\x6c\x6a\x73\x8b\x4e\xa1\x67\x89\x7f\x51\x5f\x80\x65\xfa\x67\x1b\x5f\xd8\x59\x84\x5a\x01\x5d\xcd\x5f\xae\x53\x71\x97\xe6\x8f\xdd\x68\x45\x56\xf4\x55\x2f\x60\xdf\x4e\x3a\x6f\x4d\x7e\xf4\x82\xc7\x84\x0e\x59\xd4\x4f\x1f\x4f\x2a\x5c\x3e\x7e\xac\x67\x2a\x85\x1a\x54\x73\x75\x4f\x80\xc3\x55\x82\x9b\x4f\x4f\x4d\x6e\x2d\x8c\x13\x5c\x09\x61\x70\x53\x6b\x76\x1f\x6e\x29\x86\x8a\x65\x87\x95\xfb\x7e\xb9\x54\x3b\x7a\x33\x7d\x0a\x95\xee\x55\xe1\x7f\xc1\x74\xee\x63\x1d\x87\x17\x6d\xa1\x7a\x9d\x62\x11\x65\xa1\x53\x67\x63\xe1\x6c\x83\x5d\xeb\x54\x5c\x94\xa8\x4e\x4c\x6c\x61\x8b\xec\x5c\x4b\x65\xe0\x82\x9c\x68\xa7\x54\x3e\x54\x34\x6b\xcb\x6b\x66\x4e\x94\x63\x42\x53\x48\x82\x1e\x4f\x0d\x4f\xae\x57\x5e\x62\x0a\x96\xfe\x66\x64\x72\x69\x52\xff\x52\xa1\x60\x9f\x8b\xef\x66\x14\x71\x99\x67\x90\x89\x7f\x78\x52\x77\xfd\x66\x70\x56\x3b\x54\x38\x95\x21\x72\x7a\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x60\x6f\x5e\x0c\x60\x89\x81\x9d\x59\x15\x60\xdc\x71\x84\x70\xef\x6e\xaa\x6c\x50\x72\x80\x6a\x84\x88\xad\x5e\x2d\x4e\x60\x5a\xb3\x55\x9c\x94\xe3\x6d\x17\x7c\xfb\x96\x99\x62\x0f\x7e\xc6\x77\x8e\x86\x7e\x53\x23\x97\x1e\x8f\x96\x66\x87\x5c\xe1\x4f\xa0\x72\xed\x4e\x0b\x53\xa6\x59\x0f\x54\x13\x63\x80\x95\x28\x51\x48\x4e\xd9\x9c\x9c\x7e\xa4\x54\xb8\x8d\x24\x88\x54\x82\x37\x95\xf2\x6d\x8e\x5f\x26\x5a\xcc\x66\x3e\x96\x69\x73\xb0\x73\x2e\x53\xbf\x81\x7a\x99\x85\x7f\xa1\x5b\xaa\x96\x77\x96\x50\x7e\xbf", /* 5880 */ "\x00\x00\x76\xf8\x53\xa2\x95\x76\x99\x99\x7b\xb1\x89\x44\x6e\x58\x4e\x61\x7f\xd4\x79\x65\x8b\xe6\x60\xf3\x54\xcd\x4e\xab\x98\x79\x5d\xf7\x6a\x61\x50\xcf\x54\x11\x8c\x61\x84\x27\x78\x5d\x97\x04\x52\x4a\x54\xee\x56\xa3\x95\x00\x6d\x88\x5b\xb5\x6d\xc6\x66\x53\x5c\x0f\x5b\x5d\x68\x21\x80\x96\x55\x78\x7b\x11\x65\x48\x69\x54\x4e\x9b\x6b\x47\x87\x4e\x97\x8b\x53\x4f\x63\x1f\x64\x3a\x90\xaa\x65\x9c\x80\xc1\x8c\x10\x51\x99\x68\xb0\x53\x78\x87\xf9\x61\xc8\x6c\xc4\x6c\xfb\x8c\x22\x5c\x51\x85\xaa\x82\xaf\x95\x0c\x6b\x23\x8f\x9b\x65\xb0\x5f\xfb\x5f\xc3\x4f\xe1\x88\x45\x66\x1f\x81\x65\x73\x29\x60\xfa\x51\x74\x52\x11\x57\x8b\x5f\x62\x90\xa2\x88\x4c\x91\x92\x5e\x78\x67\x4f\x60\x27\x59\xd3\x51\x44\x51\xf6\x80\xf8\x53\x08\x6c\x79\x96\xc4\x71\x8a\x4f\x11\x4f\xee\x7f\x9e\x67\x3d\x55\xc5\x95\x08\x79\xc0\x88\x96\x7e\xe3\x58\x9f\x62\x0c\x97\x00\x86\x5a\x56\x18\x98\x7b\x5f\x90\x8b\xb8\x84\xc4\x91\x57\x53\xd9\x65\xed\x5e\x8f\x75\x5c\x60\x64\x7d\x6e\x5a\x7f\x7e\xea\x7e\xed\x8f\x69\x55\xa7\x5b\xa3\x60\xac\x65\xcb\x73\x84\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x09\x76\x63\x77\x29\x7e\xda\x97\x74\x85\x9b\x5b\x66\x7a\x74\x96\xea\x88\x40\x52\xcb\x71\x8f\x5f\xaa\x65\xec\x8b\xe2\x5b\xfb\x9a\x6f\x5d\xe1\x6b\x89\x6c\x5b\x8b\xad\x8b\xaf\x90\x0a\x8f\xc5\x53\x8b\x62\xbc\x9e\x26\x9e\x2d\x54\x40\x4e\x2b\x82\xbd\x72\x59\x86\x9c\x5d\x16\x88\x59\x6d\xaf\x96\xc5\x54\xd1\x4e\x9a\x8b\xb6\x71\x09\x54\xbd\x96\x09\x70\xdf\x6d\xf9\x76\xd0\x4e\x25\x78\x14\x87\x12\x5c\xa9\x5e\xf6\x8a\x00\x98\x9c\x96\x0e\x70\x8e\x6c\xbf\x59\x44\x63\xa9\x77\x3c\x88\x4d\x6f\x14\x82\x73\x58\x30", /* 5980 */ "\x00\x00\x71\xd5\x53\x8c\x78\x1a\x96\xc1\x55\x01\x5f\x66\x71\x30\x5b\xb4\x8c\x1a\x9a\x8c\x6b\x83\x59\x2e\x9e\x2f\x79\xe7\x67\x68\x62\x6c\x4f\x6f\x75\xa1\x7f\x8a\x6d\x0b\x96\x33\x6c\x27\x4e\xf0\x75\xd2\x51\x7b\x68\x37\x6f\x3e\x90\x80\x81\x70\x59\x96\x74\x76\x64\x47\x5c\x27\x90\x65\x7a\x91\x8c\x23\x59\xda\x54\xac\x82\x00\x83\x6f\x89\x81\x80\x00\x69\x30\x56\x4e\x80\x36\x72\x37\x91\xce\x51\xb6\x4e\x5f\x98\x75\x63\x96\x4e\x1a\x53\xf6\x66\xf3\x81\x4b\x59\x1c\x6d\xb2\x4e\x00\x58\xf9\x53\x3b\x63\xd6\x94\xf1\x4f\x9d\x4f\x0a\x88\x63\x98\x90\x59\x37\x90\x57\x79\xfb\x4e\xea\x80\xf0\x75\x91\x6c\x82\x5b\x9c\x59\xe8\x5f\x5d\x69\x05\x86\x81\x50\x1a\x5d\xf2\x4e\x59\x77\xe3\x4e\xe5\x82\x7a\x62\x91\x66\x13\x90\x91\x5c\x79\x4e\xbf\x5f\x79\x81\xc6\x90\x38\x80\x84\x75\xab\x4e\xa6\x88\xd4\x61\x0f\x6b\xc5\x5f\xc6\x4e\x49\x76\xca\x6e\xa2\x8b\xe3\x8b\xae\x8c\x0a\x8b\xd1\x5f\x02\x7f\xfc\x7f\xcc\x7e\xce\x83\x35\x83\x6b\x56\xe0\x6b\xb7\x97\xf3\x96\x34\x59\xfb\x54\x1f\x94\xf6\x6d\xeb\x5b\xc5\x99\x6e\x5c\x39\x5f\x15\x96\x90\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x70\x82\xf1\x6a\x31\x5a\x74\x9e\x70\x5e\x94\x7f\x28\x83\xb9\x84\x24\x84\x25\x83\x67\x87\x47\x8f\xce\x8d\x62\x76\xc8\x5f\x71\x98\x96\x78\x6c\x66\x20\x54\xdf\x62\xe5\x4f\x63\x81\xc3\x75\xc8\x5e\xb8\x96\xcd\x8e\x0a\x86\xf9\x54\x8f\x6c\xf3\x6d\x8c\x6c\x38\x60\x7f\x52\xc7\x75\x28\x5e\x7d\x4f\x18\x60\xa0\x5f\xe7\x5c\x24\x75\x31\x90\xae\x94\xc0\x72\xb9\x6c\xb9\x6e\x38\x91\x49\x67\x09\x53\xcb\x53\xf3\x4f\x51\x91\xc9\x8b\xf1\x53\xc8\x5e\x7c\x8f\xc2\x6d\xe4\x4e\x8e\x76\xc2\x69\x86\x86\x5e\x61\x1a\x82\x06", /* 5a80 */ "\x00\x00\x4f\x59\x4f\xde\x90\x3e\x9c\x7c\x61\x09\x6e\x1d\x6e\x14\x96\x85\x4e\x88\x5a\x31\x96\xe8\x4e\x0e\x5c\x7f\x79\xb9\x5b\x87\x8b\xed\x7f\xbd\x73\x89\x57\xdf\x82\x8b\x90\xc1\x54\x01\x90\x47\x55\xbb\x5c\xea\x5f\xa1\x61\x08\x6b\x32\x72\xf1\x80\xb2\x8a\x89\x6d\x74\x5b\xd3\x88\xd5\x98\x84\x8c\x6b\x9a\x6d\x9e\x33\x6e\x0a\x51\xa4\x51\x43\x57\xa3\x88\x81\x53\x9f\x63\xf4\x8f\x95\x56\xed\x54\x58\x57\x06\x73\x3f\x6e\x90\x7f\x18\x8f\xdc\x82\xd1\x61\x3f\x60\x28\x96\x62\x66\xf0\x7e\xa6\x8d\x8a\x8d\xc3\x94\xa5\x5c\xb3\x7c\xa4\x67\x08\x60\xa6\x96\x05\x80\x18\x4e\x91\x90\xe7\x53\x00\x96\x68\x51\x41\x8f\xd0\x85\x74\x91\x5d\x66\x55\x97\xf5\x5b\x55\x53\x1d\x78\x38\x67\x42\x68\x3d\x54\xc9\x70\x7e\x5b\xb0\x8f\x7d\x51\x8d\x57\x28\x54\xb1\x65\x12\x66\x82\x8d\x5e\x8d\x43\x81\x0f\x84\x6c\x90\x6d\x7c\xdf\x51\xff\x85\xfb\x67\xa3\x65\xe9\x6f\xa1\x86\xa4\x8e\x81\x56\x6a\x90\x20\x76\x82\x70\x76\x71\xe5\x8d\x23\x62\xe9\x52\x19\x6c\xfd\x8d\x3c\x60\x0e\x58\x9e\x61\x8e\x66\xfe\x8d\x60\x62\x4e\x55\xb3\x6e\x23\x67\x2d\x8f\x67\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe1\x95\xf8\x77\x28\x68\x05\x69\xa8\x54\x8b\x4e\x4d\x70\xb8\x8b\xc8\x64\x58\x65\x8b\x5b\x85\x7a\x84\x50\x3a\x5b\xe8\x77\xbb\x6b\xe1\x8a\x79\x7c\x98\x6c\xbe\x76\xcf\x65\xa9\x8f\x97\x5d\x2d\x5c\x55\x86\x38\x68\x08\x53\x60\x62\x18\x7a\xd9\x6e\x5b\x7e\xfd\x6a\x1f\x7a\xe0\x5f\x70\x6f\x33\x5f\x20\x63\x8c\x6d\xa8\x67\x56\x4e\x08\x5e\x10\x8d\x26\x4e\xd7\x80\xc0\x76\x34\x96\x9c\x62\xdb\x66\x2d\x62\x7e\x6c\xbc\x8d\x75\x71\x67\x7f\x69\x51\x46\x80\x87\x53\xec\x90\x6e\x62\x98\x54\xf2\x86\xf0\x8f\x99\x80\x05", /* 5b80 */ "\x00\x00\x95\x17\x85\x17\x8f\xd9\x6d\x59\x73\xcd\x65\x9f\x77\x1f\x75\x04\x78\x27\x81\xfb\x8d\x1e\x94\x88\x4f\xa6\x67\x95\x75\xb9\x8b\xca\x97\x07\x63\x2f\x95\x47\x96\x35\x84\xb8\x63\x23\x77\x41\x5f\x81\x72\xf0\x4e\x89\x60\x14\x65\x74\x62\xef\x6b\x63\x65\x3f\x5e\x27\x75\xc7\x90\xd1\x8b\xc1\x82\x9d\x67\x9d\x65\x2f\x54\x31\x87\x18\x77\xe5\x80\xa2\x81\x02\x6c\x41\x4e\x4b\x7e\xc7\x80\x4c\x76\xf4\x69\x0d\x6b\x96\x62\x67\x50\x3c\x4f\x84\x57\x40\x63\x07\x6b\x62\x8d\xbe\x53\xea\x65\xe8\x7e\xb8\x5f\xd7\x63\x1a\x63\xb7\x81\xf3\x81\xf4\x7f\x6e\x5e\x1c\x5c\xd9\x52\x36\x66\x7a\x79\xe9\x7a\x1a\x8d\x28\x70\x99\x75\xd4\x6e\xde\x6c\xbb\x7a\x92\x4e\x2d\x76\xc5\x5f\xe0\x94\x9f\x88\x77\x7e\xc8\x79\xcd\x80\xbf\x91\xcd\x4e\xf2\x4f\x17\x82\x1f\x54\x68\x5d\xde\x6d\x32\x8b\xcc\x7c\xa5\x8f\x74\x80\x98\x5e\x1a\x54\x92\x76\xb1\x5b\x99\x66\x3c\x9a\xa4\x73\xe0\x68\x2a\x86\xdb\x67\x31\x73\x2a\x8b\xf8\x8b\xdb\x90\x10\x7a\xf9\x70\xdb\x71\x6e\x62\xc4\x77\xa9\x56\x31\x4e\x3b\x84\x57\x67\xf1\x52\xa9\x86\xc0\x8d\x2e\x94\xf8\x7b\x51\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x4f\x6c\xe8\x79\x5d\x9a\x7b\x62\x93\x72\x2a\x62\xfd\x4e\x13\x78\x16\x8f\x6c\x64\xb0\x8d\x5a\x7b\xc6\x68\x69\x5e\x84\x88\xc5\x59\x86\x64\x9e\x58\xee\x72\xb6\x69\x0e\x95\x25\x8f\xfd\x8d\x58\x57\x60\x7f\x00\x8c\x06\x51\xc6\x63\x49\x62\xd9\x53\x53\x68\x4c\x74\x22\x83\x01\x91\x4c\x55\x44\x77\x40\x70\x7c\x6d\x4a\x51\x79\x54\xa8\x8d\x44\x59\xff\x6e\xcb\x6d\xc4\x5b\x5c\x7d\x2b\x4e\xd4\x7c\x7d\x6e\xd3\x5b\x50\x81\xea\x6e\x0d\x5b\x57\x9b\x03\x68\xd5\x8e\x2a\x5b\x97\x7e\xfc\x60\x3b\x7e\xb5\x90\xb9\x8d\x70", /* 5c80 */ "\x00\x00\x59\x4f\x63\xcd\x79\xdf\x8d\xb3\x53\x52\x65\xcf\x79\x56\x8b\xc5\x96\x3b\x7e\xc4\x94\xbb\x7e\x82\x56\x34\x91\x89\x67\x00\x7f\x6a\x5c\x0a\x90\x75\x66\x28\x5d\xe6\x4f\x50\x67\xde\x50\x5a\x4f\x5c\x57\x50\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8d\x4e\x0c\x51\x40\x4e\x10\x5e\xff\x53\x45\x4e\x15\x4e\x98\x4e\x1e\x9b\x32\x5b\x6c\x56\x69\x4e\x28\x79\xba\x4e\x3f\x53\x15\x4e\x47\x59\x2d\x72\x3b\x53\x6e\x6c\x10\x56\xdf\x80\xe4\x99\x97\x6b\xd3\x77\x7e\x9f\x17\x4e\x36\x4e\x9f\x9f\x10\x4e\x5c\x4e\x69\x4e\x93\x82\x88\x5b\x5b\x55\x6c\x56\x0f\x4e\xc4\x53\x8d\x53\x9d\x53\xa3\x53\xa5\x53\xae\x97\x65\x8d\x5d\x53\x1a\x53\xf5\x53\x26\x53\x2e\x53\x3e\x8d\x5c\x53\x66\x53\x63\x52\x02\x52\x08\x52\x0e\x52\x2d\x52\x33\x52\x3f\x52\x40\x52\x4c\x52\x5e\x52\x61\x52\x5c\x84\xaf\x52\x7d\x52\x82\x52\x81\x52\x90\x52\x93\x51\x82\x7f\x54\x4e\xbb\x4e\xc3\x4e\xc9\x4e\xc2\x4e\xe8\x4e\xe1\x4e\xeb\x4e\xde\x4f\x1b\x4e\xf3\x4f\x22\x4f\x64\x4e\xf5\x4f\x25\x4f\x27\x4f\x09\x4f\x2b\x4f\x5e\x4f\x67\x65\x38\x4f\x5a\x4f\x5d\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x5f\x4f\x57\x4f\x32\x4f\x3d\x4f\x76\x4f\x74\x4f\x91\x4f\x89\x4f\x83\x4f\x8f\x4f\x7e\x4f\x7b\x4f\xaa\x4f\x7c\x4f\xac\x4f\x94\x4f\xe6\x4f\xe8\x4f\xea\x4f\xc5\x4f\xda\x4f\xe3\x4f\xdc\x4f\xd1\x4f\xdf\x4f\xf8\x50\x29\x50\x4c\x4f\xf3\x50\x2c\x50\x0f\x50\x2e\x50\x2d\x4f\xfe\x50\x1c\x50\x0c\x50\x25\x50\x28\x50\x7e\x50\x43\x50\x55\x50\x48\x50\x4e\x50\x6c\x50\x7b\x50\xa5\x50\xa7\x50\xa9\x50\xba\x50\xd6\x51\x06\x50\xed\x50\xec\x50\xe6\x50\xee\x51\x07\x51\x0b\x4e\xdd\x6c\x3d\x4f\x58\x4f\x65\x4f\xce\x9f\xa0", /* 5d80 */ "\x00\x00\x6c\x46\x7c\x74\x51\x6e\x5d\xfd\x9e\xc9\x99\x98\x51\x81\x59\x14\x52\xf9\x53\x0d\x8a\x07\x53\x10\x51\xeb\x59\x19\x51\x55\x4e\xa0\x51\x56\x4e\xb3\x88\x6e\x88\xa4\x4e\xb5\x81\x14\x88\xd2\x79\x80\x5b\x34\x88\x03\x7f\xb8\x51\xab\x51\xb1\x51\xbd\x51\xbc\x51\xc7\x51\x96\x51\xa2\x51\xa5\x8b\xa0\x8b\xa6\x8b\xa7\x8b\xaa\x8b\xb4\x8b\xb5\x8b\xb7\x8b\xc2\x8b\xc3\x8b\xcb\x8b\xcf\x8b\xce\x8b\xd2\x8b\xd3\x8b\xd4\x8b\xd6\x8b\xd8\x8b\xd9\x8b\xdc\x8b\xdf\x8b\xe0\x8b\xe4\x8b\xe8\x8b\xe9\x8b\xee\x8b\xf0\x8b\xf3\x8b\xf6\x8b\xf9\x8b\xfc\x8b\xff\x8c\x00\x8c\x02\x8c\x04\x8c\x07\x8c\x0c\x8c\x0f\x8c\x11\x8c\x12\x8c\x14\x8c\x15\x8c\x16\x8c\x19\x8c\x1b\x8c\x18\x8c\x1d\x8c\x1f\x8c\x20\x8c\x21\x8c\x25\x8c\x27\x8c\x2a\x8c\x2b\x8c\x2e\x8c\x2f\x8c\x32\x8c\x33\x8c\x35\x8c\x36\x53\x69\x53\x7a\x96\x1d\x96\x22\x96\x21\x96\x31\x96\x2a\x96\x3d\x96\x3c\x96\x42\x96\x49\x96\x54\x96\x5f\x96\x67\x96\x6c\x96\x72\x96\x74\x96\x88\x96\x8d\x96\x97\x96\xb0\x90\x97\x90\x9b\x90\x9d\x90\x99\x90\xac\x90\xa1\x90\xb4\x90\xb3\x90\xb6\x90\xba\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xb8\x90\xb0\x90\xcf\x90\xc5\x90\xbe\x90\xd0\x90\xc4\x90\xc7\x90\xd3\x90\xe6\x90\xe2\x90\xdc\x90\xd7\x90\xdb\x90\xeb\x90\xef\x90\xfe\x91\x04\x91\x22\x91\x1e\x91\x23\x91\x31\x91\x2f\x91\x39\x91\x43\x91\x46\x52\x0d\x59\x42\x52\xa2\x52\xac\x52\xad\x52\xbe\x54\xff\x52\xd0\x52\xd6\x52\xf0\x53\xdf\x71\xee\x77\xcd\x5e\xf4\x51\xf5\x51\xfc\x9b\x2f\x53\xb6\x5f\x01\x75\x5a\x5d\xef\x57\x4c\x57\xa9\x57\xa1\x58\x7e\x58\xbc\x58\xc5\x58\xd1\x57\x29\x57\x2c\x57\x2a\x57\x33\x57\x39\x57\x2e\x57\x2f\x57\x5c\x57\x3b", /* 5e80 */ "\x00\x00\x57\x42\x57\x69\x57\x85\x57\x6b\x57\x86\x57\x7c\x57\x7b\x57\x68\x57\x6d\x57\x76\x57\x73\x57\xad\x57\xa4\x57\x8c\x57\xb2\x57\xcf\x57\xa7\x57\xb4\x57\x93\x57\xa0\x57\xd5\x57\xd8\x57\xda\x57\xd9\x57\xd2\x57\xb8\x57\xf4\x57\xef\x57\xf8\x57\xe4\x57\xdd\x58\x0b\x58\x0d\x57\xfd\x57\xed\x58\x00\x58\x1e\x58\x19\x58\x44\x58\x20\x58\x65\x58\x6c\x58\x81\x58\x89\x58\x9a\x58\x80\x99\xa8\x9f\x19\x61\xff\x82\x79\x82\x7d\x82\x7f\x82\x8f\x82\x8a\x82\xa8\x82\x84\x82\x8e\x82\x91\x82\x97\x82\x99\x82\xab\x82\xb8\x82\xbe\x82\xb0\x82\xc8\x82\xca\x82\xe3\x82\x98\x82\xb7\x82\xae\x82\xcb\x82\xcc\x82\xc1\x82\xa9\x82\xb4\x82\xa1\x82\xaa\x82\x9f\x82\xc4\x82\xce\x82\xa4\x82\xe1\x83\x09\x82\xf7\x82\xe4\x83\x0f\x83\x07\x82\xdc\x82\xf4\x82\xd2\x82\xd8\x83\x0c\x82\xfb\x82\xd3\x83\x11\x83\x1a\x83\x06\x83\x14\x83\x15\x82\xe0\x82\xd5\x83\x1c\x83\x51\x83\x5b\x83\x5c\x83\x08\x83\x92\x83\x3c\x83\x34\x83\x31\x83\x9b\x83\x5e\x83\x2f\x83\x4f\x83\x47\x83\x43\x83\x5f\x83\x40\x83\x17\x83\x60\x83\x2d\x83\x3a\x83\x33\x83\x66\x83\x65\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x68\x83\x1b\x83\x69\x83\x6c\x83\x6a\x83\x6d\x83\x6e\x83\xb0\x83\x78\x83\xb3\x83\xb4\x83\xa0\x83\xaa\x83\x93\x83\x9c\x83\x85\x83\x7c\x83\xb6\x83\xa9\x83\x7d\x83\xb8\x83\x7b\x83\x98\x83\x9e\x83\xa8\x83\xba\x83\xbc\x83\xc1\x84\x01\x83\xe5\x83\xd8\x58\x07\x84\x18\x84\x0b\x83\xdd\x83\xfd\x83\xd6\x84\x1c\x84\x38\x84\x11\x84\x06\x83\xd4\x83\xdf\x84\x0f\x84\x03\x83\xf8\x83\xf9\x83\xea\x83\xc5\x83\xc0\x84\x26\x83\xf0\x83\xe1\x84\x5c\x84\x51\x84\x5a\x84\x59\x84\x73\x84\x87\x84\x88\x84\x7a\x84\x89\x84\x78", /* 5f80 */ "\x00\x00\x84\x3c\x84\x46\x84\x69\x84\x76\x84\x8c\x84\x8e\x84\x31\x84\x6d\x84\xc1\x84\xcd\x84\xd0\x84\xe6\x84\xbd\x84\xd3\x84\xca\x84\xbf\x84\xba\x84\xe0\x84\xa1\x84\xb9\x84\xb4\x84\x97\x84\xe5\x84\xe3\x85\x0c\x75\x0d\x85\x38\x84\xf0\x85\x39\x85\x1f\x85\x3a\x85\x56\x85\x3b\x84\xff\x84\xfc\x85\x59\x85\x48\x85\x68\x85\x64\x85\x5e\x85\x7a\x77\xa2\x85\x43\x85\x72\x85\x7b\x85\xa4\x85\xa8\x85\x87\x85\x8f\x85\x79\x85\xae\x85\x9c\x85\x85\x85\xb9\x85\xb7\x85\xb0\x85\xd3\x85\xc1\x85\xdc\x85\xff\x86\x27\x86\x05\x86\x29\x86\x16\x86\x3c\x5e\xfe\x5f\x08\x59\x3c\x59\x41\x80\x37\x59\x55\x59\x5a\x59\x58\x53\x0f\x5c\x22\x5c\x25\x5c\x2c\x5c\x34\x62\x4c\x62\x6a\x62\x9f\x62\xbb\x62\xca\x62\xda\x62\xd7\x62\xee\x63\x22\x62\xf6\x63\x39\x63\x4b\x63\x43\x63\xad\x63\xf6\x63\x71\x63\x7a\x63\x8e\x63\xb4\x63\x6d\x63\xac\x63\x8a\x63\x69\x63\xae\x63\xbc\x63\xf2\x63\xf8\x63\xe0\x63\xff\x63\xc4\x63\xde\x63\xce\x64\x52\x63\xc6\x63\xbe\x64\x45\x64\x41\x64\x0b\x64\x1b\x64\x20\x64\x0c\x64\x26\x64\x21\x64\x5e\x64\x84\x64\x6d\x64\x96\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7a\x64\xb7\x64\xb8\x64\x99\x64\xba\x64\xc0\x64\xd0\x64\xd7\x64\xe4\x64\xe2\x65\x09\x65\x25\x65\x2e\x5f\x0b\x5f\xd2\x75\x19\x5f\x11\x53\x5f\x53\xf1\x53\xfd\x53\xe9\x53\xe8\x53\xfb\x54\x12\x54\x16\x54\x06\x54\x4b\x54\x52\x54\x53\x54\x54\x54\x56\x54\x43\x54\x21\x54\x57\x54\x59\x54\x23\x54\x32\x54\x82\x54\x94\x54\x77\x54\x71\x54\x64\x54\x9a\x54\x9b\x54\x84\x54\x76\x54\x66\x54\x9d\x54\xd0\x54\xad\x54\xc2\x54\xb4\x54\xd2\x54\xa7\x54\xa6\x54\xd3\x54\xd4\x54\x72\x54\xa3\x54\xd5\x54\xbb\x54\xbf\x54\xcc", /* 6080 */ "\x00\x00\x54\xd9\x54\xda\x54\xdc\x54\xa9\x54\xaa\x54\xa4\x54\xdd\x54\xcf\x54\xde\x55\x1b\x54\xe7\x55\x20\x54\xfd\x55\x14\x54\xf3\x55\x22\x55\x23\x55\x0f\x55\x11\x55\x27\x55\x2a\x55\x67\x55\x8f\x55\xb5\x55\x49\x55\x6d\x55\x41\x55\x55\x55\x3f\x55\x50\x55\x3c\x55\x37\x55\x56\x55\x75\x55\x76\x55\x77\x55\x33\x55\x30\x55\x5c\x55\x8b\x55\xd2\x55\x83\x55\xb1\x55\xb9\x55\x88\x55\x81\x55\x9f\x55\x7e\x55\xd6\x55\x91\x55\x7b\x55\xdf\x55\xbd\x55\xbe\x55\x94\x55\x99\x55\xea\x55\xf7\x55\xc9\x56\x1f\x55\xd1\x55\xeb\x55\xec\x55\xd4\x55\xe6\x55\xdd\x55\xc4\x55\xef\x55\xe5\x55\xf2\x55\xf3\x55\xcc\x55\xcd\x55\xe8\x55\xf5\x55\xe4\x8f\x94\x56\x1e\x56\x08\x56\x0c\x56\x01\x56\x24\x56\x23\x55\xfe\x56\x00\x56\x27\x56\x2d\x56\x58\x56\x39\x56\x57\x56\x2c\x56\x4d\x56\x62\x56\x59\x56\x5c\x56\x4c\x56\x54\x56\x86\x56\x64\x56\x71\x56\x6b\x56\x7b\x56\x7c\x56\x85\x56\x93\x56\xaf\x56\xd4\x56\xd7\x56\xdd\x56\xe1\x56\xf5\x56\xeb\x56\xf9\x56\xff\x57\x04\x57\x0a\x57\x09\x57\x1c\x5e\x0f\x5e\x19\x5e\x14\x5e\x11\x5e\x31\x5e\x3b\x5e\x3c\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x37\x5e\x44\x5e\x54\x5e\x5b\x5e\x5e\x5e\x61\x5c\x8c\x5c\x7a\x5c\x8d\x5c\x90\x5c\x96\x5c\x88\x5c\x98\x5c\x99\x5c\x91\x5c\x9a\x5c\x9c\x5c\xb5\x5c\xa2\x5c\xbd\x5c\xac\x5c\xab\x5c\xb1\x5c\xa3\x5c\xc1\x5c\xb7\x5c\xc4\x5c\xd2\x5c\xe4\x5c\xcb\x5c\xe5\x5d\x02\x5d\x03\x5d\x27\x5d\x26\x5d\x2e\x5d\x24\x5d\x1e\x5d\x06\x5d\x1b\x5d\x58\x5d\x3e\x5d\x34\x5d\x3d\x5d\x6c\x5d\x5b\x5d\x6f\x5d\x5d\x5d\x6b\x5d\x4b\x5d\x4a\x5d\x69\x5d\x74\x5d\x82\x5d\x99\x5d\x9d\x8c\x73\x5d\xb7\x5d\xc5\x5f\x73\x5f\x77\x5f\x82\x5f\x87", /* 6180 */ "\x00\x00\x5f\x89\x5f\x8c\x5f\x95\x5f\x99\x5f\x9c\x5f\xa8\x5f\xad\x5f\xb5\x5f\xbc\x88\x62\x5f\x61\x72\xad\x72\xb0\x72\xb4\x72\xb7\x72\xb8\x72\xc3\x72\xc1\x72\xce\x72\xcd\x72\xd2\x72\xe8\x72\xef\x72\xe9\x72\xf2\x72\xf4\x72\xf7\x73\x01\x72\xf3\x73\x03\x72\xfa\x72\xfb\x73\x17\x73\x13\x73\x21\x73\x0a\x73\x1e\x73\x1d\x73\x15\x73\x22\x73\x39\x73\x25\x73\x2c\x73\x38\x73\x31\x73\x50\x73\x4d\x73\x57\x73\x60\x73\x6c\x73\x6f\x73\x7e\x82\x1b\x59\x25\x98\xe7\x59\x24\x59\x02\x99\x63\x99\x67\x99\x68\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x74\x99\x77\x99\x7d\x99\x80\x99\x84\x99\x87\x99\x8a\x99\x8d\x99\x90\x99\x91\x99\x93\x99\x94\x99\x95\x5e\x80\x5e\x91\x5e\x8b\x5e\x96\x5e\xa5\x5e\xa0\x5e\xb9\x5e\xb5\x5e\xbe\x5e\xb3\x8d\x53\x5e\xd2\x5e\xd1\x5e\xdb\x5e\xe8\x5e\xea\x81\xba\x5f\xc4\x5f\xc9\x5f\xd6\x5f\xcf\x60\x03\x5f\xee\x60\x04\x5f\xe1\x5f\xe4\x5f\xfe\x60\x05\x60\x06\x5f\xea\x5f\xed\x5f\xf8\x60\x19\x60\x35\x60\x26\x60\x1b\x60\x0f\x60\x0d\x60\x29\x60\x2b\x60\x0a\x60\x3f\x60\x21\x60\x78\x60\x79\x60\x7b\x60\x7a\x60\x42\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6a\x60\x7d\x60\x96\x60\x9a\x60\xad\x60\x9d\x60\x83\x60\x92\x60\x8c\x60\x9b\x60\xec\x60\xbb\x60\xb1\x60\xdd\x60\xd8\x60\xc6\x60\xda\x60\xb4\x61\x20\x61\x26\x61\x15\x61\x23\x60\xf4\x61\x00\x61\x0e\x61\x2b\x61\x4a\x61\x75\x61\xac\x61\x94\x61\xa7\x61\xb7\x61\xd4\x61\xf5\x5f\xdd\x96\xb3\x95\xe9\x95\xeb\x95\xf1\x95\xf3\x95\xf5\x95\xf6\x95\xfc\x95\xfe\x96\x03\x96\x04\x96\x06\x96\x08\x96\x0a\x96\x0b\x96\x0c\x96\x0d\x96\x0f\x96\x12\x96\x15\x96\x16\x96\x17\x96\x19\x96\x1a\x4e\x2c\x72\x3f\x62\x15\x6c\x35", /* 6280 */ "\x00\x00\x6c\x54\x6c\x5c\x6c\x4a\x6c\xa3\x6c\x85\x6c\x90\x6c\x94\x6c\x8c\x6c\x68\x6c\x69\x6c\x74\x6c\x76\x6c\x86\x6c\xa9\x6c\xd0\x6c\xd4\x6c\xad\x6c\xf7\x6c\xf8\x6c\xf1\x6c\xd7\x6c\xb2\x6c\xe0\x6c\xd6\x6c\xfa\x6c\xeb\x6c\xee\x6c\xb1\x6c\xd3\x6c\xef\x6c\xfe\x6d\x39\x6d\x27\x6d\x0c\x6d\x43\x6d\x48\x6d\x07\x6d\x04\x6d\x19\x6d\x0e\x6d\x2b\x6d\x4d\x6d\x2e\x6d\x35\x6d\x1a\x6d\x4f\x6d\x52\x6d\x54\x6d\x33\x6d\x91\x6d\x6f\x6d\x9e\x6d\xa0\x6d\x5e\x6d\x93\x6d\x94\x6d\x5c\x6d\x60\x6d\x7c\x6d\x63\x6e\x1a\x6d\xc7\x6d\xc5\x6d\xde\x6e\x0e\x6d\xbf\x6d\xe0\x6e\x11\x6d\xe6\x6d\xdd\x6d\xd9\x6e\x16\x6d\xab\x6e\x0c\x6d\xae\x6e\x2b\x6e\x6e\x6e\x4e\x6e\x6b\x6e\xb2\x6e\x5f\x6e\x86\x6e\x53\x6e\x54\x6e\x32\x6e\x25\x6e\x44\x6e\xdf\x6e\xb1\x6e\x98\x6e\xe0\x6f\x2d\x6e\xe2\x6e\xa5\x6e\xa7\x6e\xbd\x6e\xbb\x6e\xb7\x6e\xd7\x6e\xb4\x6e\xcf\x6e\x8f\x6e\xc2\x6e\x9f\x6f\x62\x6f\x46\x6f\x47\x6f\x24\x6f\x15\x6e\xf9\x6f\x2f\x6f\x36\x6f\x4b\x6f\x74\x6f\x2a\x6f\x09\x6f\x29\x6f\x89\x6f\x8d\x6f\x8c\x6f\x78\x6f\x72\x6f\x7c\x6f\x7a\x6f\xd1\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xc9\x6f\xa7\x6f\xb9\x6f\xb6\x6f\xc2\x6f\xe1\x6f\xee\x6f\xde\x6f\xe0\x6f\xef\x70\x1a\x70\x23\x70\x1b\x70\x39\x70\x35\x70\x4f\x70\x5e\x5b\x80\x5b\x84\x5b\x95\x5b\x93\x5b\xa5\x5b\xb8\x75\x2f\x9a\x9e\x64\x34\x5b\xe4\x5b\xee\x89\x30\x5b\xf0\x8e\x47\x8b\x07\x8f\xb6\x8f\xd3\x8f\xd5\x8f\xe5\x8f\xee\x8f\xe4\x8f\xe9\x8f\xe6\x8f\xf3\x8f\xe8\x90\x05\x90\x04\x90\x0b\x90\x26\x90\x11\x90\x0d\x90\x16\x90\x21\x90\x35\x90\x36\x90\x2d\x90\x2f\x90\x44\x90\x51\x90\x52\x90\x50\x90\x68\x90\x58\x90\x62\x90\x5b\x66\xb9", /* 6380 */ "\x00\x00\x90\x74\x90\x7d\x90\x82\x90\x88\x90\x83\x90\x8b\x5f\x50\x5f\x57\x5f\x56\x5f\x58\x5c\x3b\x54\xab\x5c\x50\x5c\x59\x5b\x71\x5c\x63\x5c\x66\x7f\xbc\x5f\x2a\x5f\x29\x5f\x2d\x82\x74\x5f\x3c\x9b\x3b\x5c\x6e\x59\x81\x59\x83\x59\x8d\x59\xa9\x59\xaa\x59\xa3\x59\x97\x59\xca\x59\xab\x59\x9e\x59\xa4\x59\xd2\x59\xb2\x59\xaf\x59\xd7\x59\xbe\x5a\x05\x5a\x06\x59\xdd\x5a\x08\x59\xe3\x59\xd8\x59\xf9\x5a\x0c\x5a\x09\x5a\x32\x5a\x34\x5a\x11\x5a\x23\x5a\x13\x5a\x40\x5a\x67\x5a\x4a\x5a\x55\x5a\x3c\x5a\x62\x5a\x75\x80\xec\x5a\xaa\x5a\x9b\x5a\x77\x5a\x7a\x5a\xbe\x5a\xeb\x5a\xb2\x5a\xd2\x5a\xd4\x5a\xb8\x5a\xe0\x5a\xe3\x5a\xf1\x5a\xd6\x5a\xe6\x5a\xd8\x5a\xdc\x5b\x09\x5b\x17\x5b\x16\x5b\x32\x5b\x37\x5b\x40\x5c\x15\x5c\x1c\x5b\x5a\x5b\x65\x5b\x73\x5b\x51\x5b\x53\x5b\x62\x9a\x75\x9a\x77\x9a\x78\x9a\x7a\x9a\x7f\x9a\x7d\x9a\x80\x9a\x81\x9a\x85\x9a\x88\x9a\x8a\x9a\x90\x9a\x92\x9a\x93\x9a\x96\x9a\x98\x9a\x9b\x9a\x9c\x9a\x9d\x9a\x9f\x9a\xa0\x9a\xa2\x9a\xa3\x9a\xa5\x9a\xa7\x7e\x9f\x7e\xa1\x7e\xa3\x7e\xa5\x7e\xa8\x7e\xa9\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xad\x7e\xb0\x7e\xbe\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc9\x7e\xcb\x7e\xcc\x7e\xd0\x7e\xd4\x7e\xd7\x7e\xdb\x7e\xe0\x7e\xe1\x7e\xe8\x7e\xeb\x7e\xee\x7e\xef\x7e\xf1\x7e\xf2\x7f\x0d\x7e\xf6\x7e\xfa\x7e\xfb\x7e\xfe\x7f\x01\x7f\x02\x7f\x03\x7f\x07\x7f\x08\x7f\x0b\x7f\x0c\x7f\x0f\x7f\x11\x7f\x12\x7f\x17\x7f\x19\x7f\x1c\x7f\x1b\x7f\x1f\x7f\x21\x7f\x22\x7f\x23\x7f\x24\x7f\x25\x7f\x26\x7f\x27\x7f\x2a\x7f\x2b\x7f\x2c\x7f\x2d\x7f\x2f\x7f\x30\x7f\x31\x7f\x32\x7f\x33\x7f\x35\x5e\x7a\x75\x7f\x5d\xdb\x75\x3e\x90\x95", /* 6480 */ "\x00\x00\x73\x8e\x73\x91\x73\xae\x73\xa2\x73\x9f\x73\xcf\x73\xc2\x73\xd1\x73\xb7\x73\xb3\x73\xc0\x73\xc9\x73\xc8\x73\xe5\x73\xd9\x98\x7c\x74\x0a\x73\xe9\x73\xe7\x73\xde\x73\xba\x73\xf2\x74\x0f\x74\x2a\x74\x5b\x74\x26\x74\x25\x74\x28\x74\x30\x74\x2e\x74\x2c\x74\x1b\x74\x1a\x74\x41\x74\x5c\x74\x57\x74\x55\x74\x59\x74\x77\x74\x6d\x74\x7e\x74\x9c\x74\x8e\x74\x80\x74\x81\x74\x87\x74\x8b\x74\x9e\x74\xa8\x74\xa9\x74\x90\x74\xa7\x74\xd2\x74\xba\x97\xea\x97\xeb\x97\xec\x67\x4c\x67\x53\x67\x5e\x67\x48\x67\x69\x67\xa5\x67\x87\x67\x6a\x67\x73\x67\x98\x67\xa7\x67\x75\x67\xa8\x67\x9e\x67\xad\x67\x8b\x67\x77\x67\x7c\x67\xf0\x68\x09\x67\xd8\x68\x0a\x67\xe9\x67\xb0\x68\x0c\x67\xd9\x67\xb5\x67\xda\x67\xb3\x67\xdd\x68\x00\x67\xc3\x67\xb8\x67\xe2\x68\x0e\x67\xc1\x67\xfd\x68\x32\x68\x33\x68\x60\x68\x61\x68\x4e\x68\x62\x68\x44\x68\x64\x68\x83\x68\x1d\x68\x55\x68\x66\x68\x41\x68\x67\x68\x40\x68\x3e\x68\x4a\x68\x49\x68\x29\x68\xb5\x68\x8f\x68\x74\x68\x77\x68\x93\x68\x6b\x68\xc2\x69\x6e\x68\xfc\x69\x1f\x69\x20\x68\xf9\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x24\x68\xf0\x69\x0b\x69\x01\x69\x57\x68\xe3\x69\x10\x69\x71\x69\x39\x69\x60\x69\x42\x69\x5d\x69\x84\x69\x6b\x69\x80\x69\x98\x69\x78\x69\x34\x69\xcc\x69\x87\x69\x88\x69\xce\x69\x89\x69\x66\x69\x63\x69\x79\x69\x9b\x69\xa7\x69\xbb\x69\xab\x69\xad\x69\xd4\x69\xb1\x69\xc1\x69\xca\x69\xdf\x69\x95\x69\xe0\x69\x8d\x69\xff\x6a\x2f\x69\xed\x6a\x17\x6a\x18\x6a\x65\x69\xf2\x6a\x44\x6a\x3e\x6a\xa0\x6a\x50\x6a\x5b\x6a\x35\x6a\x8e\x6a\x79\x6a\x3d\x6a\x28\x6a\x58\x6a\x7c\x6a\x91\x6a\x90\x6a\xa9\x6a\x97\x6a\xab", /* 6580 */ "\x00\x00\x73\x37\x73\x52\x6b\x81\x6b\x82\x6b\x87\x6b\x84\x6b\x92\x6b\x93\x6b\x8d\x6b\x9a\x6b\x9b\x6b\xa1\x6b\xaa\x8f\x6b\x8f\x6d\x8f\x71\x8f\x72\x8f\x73\x8f\x75\x8f\x76\x8f\x78\x8f\x77\x8f\x79\x8f\x7a\x8f\x7c\x8f\x7e\x8f\x81\x8f\x82\x8f\x84\x8f\x87\x8f\x8b\x8f\x8d\x8f\x8e\x8f\x8f\x8f\x98\x8f\x9a\x8e\xce\x62\x0b\x62\x17\x62\x1b\x62\x1f\x62\x22\x62\x21\x62\x25\x62\x24\x62\x2c\x81\xe7\x74\xef\x74\xf4\x74\xff\x75\x0f\x75\x11\x75\x13\x65\x34\x65\xee\x65\xef\x65\xf0\x66\x0a\x66\x19\x67\x72\x66\x03\x66\x15\x66\x00\x70\x85\x66\xf7\x66\x1d\x66\x34\x66\x31\x66\x36\x66\x35\x80\x06\x66\x5f\x66\x54\x66\x41\x66\x4f\x66\x56\x66\x61\x66\x57\x66\x77\x66\x84\x66\x8c\x66\xa7\x66\x9d\x66\xbe\x66\xdb\x66\xdc\x66\xe6\x66\xe9\x8d\x32\x8d\x33\x8d\x36\x8d\x3b\x8d\x3d\x8d\x40\x8d\x45\x8d\x46\x8d\x48\x8d\x49\x8d\x47\x8d\x4d\x8d\x55\x8d\x59\x89\xc7\x89\xca\x89\xcb\x89\xcc\x89\xce\x89\xcf\x89\xd0\x89\xd1\x72\x6e\x72\x9f\x72\x5d\x72\x66\x72\x6f\x72\x7e\x72\x7f\x72\x84\x72\x8b\x72\x8d\x72\x8f\x72\x92\x63\x08\x63\x32\x63\xb0\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x3f\x64\xd8\x80\x04\x6b\xea\x6b\xf3\x6b\xfd\x6b\xf5\x6b\xf9\x6c\x05\x6c\x07\x6c\x06\x6c\x0d\x6c\x15\x6c\x18\x6c\x19\x6c\x1a\x6c\x21\x6c\x29\x6c\x24\x6c\x2a\x6c\x32\x65\x35\x65\x55\x65\x6b\x72\x4d\x72\x52\x72\x56\x72\x30\x86\x62\x52\x16\x80\x9f\x80\x9c\x80\x93\x80\xbc\x67\x0a\x80\xbd\x80\xb1\x80\xab\x80\xad\x80\xb4\x80\xb7\x80\xe7\x80\xe8\x80\xe9\x80\xea\x80\xdb\x80\xc2\x80\xc4\x80\xd9\x80\xcd\x80\xd7\x67\x10\x80\xdd\x80\xeb\x80\xf1\x80\xf4\x80\xed\x81\x0d\x81\x0e\x80\xf2\x80\xfc\x67\x15\x81\x12", /* 6680 */ "\x00\x00\x8c\x5a\x81\x36\x81\x1e\x81\x2c\x81\x18\x81\x32\x81\x48\x81\x4c\x81\x53\x81\x74\x81\x59\x81\x5a\x81\x71\x81\x60\x81\x69\x81\x7c\x81\x7d\x81\x6d\x81\x67\x58\x4d\x5a\xb5\x81\x88\x81\x82\x81\x91\x6e\xd5\x81\xa3\x81\xaa\x81\xcc\x67\x26\x81\xca\x81\xbb\x81\xc1\x81\xa6\x6b\x24\x6b\x37\x6b\x39\x6b\x43\x6b\x46\x6b\x59\x98\xd1\x98\xd2\x98\xd3\x98\xd5\x98\xd9\x98\xda\x6b\xb3\x5f\x40\x6b\xc2\x89\xf3\x65\x90\x9f\x51\x65\x93\x65\xbc\x65\xc6\x65\xc4\x65\xc3\x65\xcc\x65\xce\x65\xd2\x65\xd6\x70\x80\x70\x9c\x70\x96\x70\x9d\x70\xbb\x70\xc0\x70\xb7\x70\xab\x70\xb1\x70\xe8\x70\xca\x71\x10\x71\x13\x71\x16\x71\x2f\x71\x31\x71\x73\x71\x5c\x71\x68\x71\x45\x71\x72\x71\x4a\x71\x78\x71\x7a\x71\x98\x71\xb3\x71\xb5\x71\xa8\x71\xa0\x71\xe0\x71\xd4\x71\xe7\x71\xf9\x72\x1d\x72\x28\x70\x6c\x71\x18\x71\x66\x71\xb9\x62\x3e\x62\x3d\x62\x43\x62\x48\x62\x49\x79\x3b\x79\x40\x79\x46\x79\x49\x79\x5b\x79\x5c\x79\x53\x79\x5a\x79\x62\x79\x57\x79\x60\x79\x6f\x79\x67\x79\x7a\x79\x85\x79\x8a\x79\x9a\x79\xa7\x79\xb3\x5f\xd1\x5f\xd0\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x3c\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\x59\x60\x63\x60\xab\x61\x06\x61\x0d\x61\x5d\x61\xa9\x61\x9d\x61\xcb\x61\xd1\x62\x06\x80\x80\x80\x7f\x6c\x93\x6c\xf6\x6d\xfc\x77\xf6\x77\xf8\x78\x00\x78\x09\x78\x17\x78\x18\x78\x11\x65\xab\x78\x2d\x78\x1c\x78\x1d\x78\x39\x78\x3a\x78\x3b\x78\x1f\x78\x3c\x78\x25\x78\x2c\x78\x23\x78\x29\x78\x4e\x78\x6d\x78\x56\x78\x57\x78\x26\x78\x50\x78\x47\x78\x4c\x78\x6a\x78\x9b\x78\x93\x78\x9a\x78\x87\x78\x9c\x78\xa1\x78\xa3\x78\xb2\x78\xb9\x78\xa5\x78\xd4\x78\xd9\x78\xc9", /* 6780 */ "\x00\x00\x78\xec\x78\xf2\x79\x05\x78\xf4\x79\x13\x79\x24\x79\x1e\x79\x34\x9f\x9b\x9e\xf9\x9e\xfb\x9e\xfc\x76\xf1\x77\x04\x77\x0d\x76\xf9\x77\x07\x77\x08\x77\x1a\x77\x22\x77\x19\x77\x2d\x77\x26\x77\x35\x77\x38\x77\x50\x77\x51\x77\x47\x77\x43\x77\x5a\x77\x68\x77\x62\x77\x65\x77\x7f\x77\x8d\x77\x7d\x77\x80\x77\x8c\x77\x91\x77\x9f\x77\xa0\x77\xb0\x77\xb5\x77\xbd\x75\x3a\x75\x40\x75\x4e\x75\x4b\x75\x48\x75\x5b\x75\x72\x75\x79\x75\x83\x7f\x58\x7f\x61\x7f\x5f\x8a\x48\x7f\x68\x7f\x74\x7f\x71\x7f\x79\x7f\x81\x7f\x7e\x76\xcd\x76\xe5\x88\x32\x94\x85\x94\x86\x94\x87\x94\x8b\x94\x8a\x94\x8c\x94\x8d\x94\x8f\x94\x90\x94\x94\x94\x97\x94\x95\x94\x9a\x94\x9b\x94\x9c\x94\xa3\x94\xa4\x94\xab\x94\xaa\x94\xad\x94\xac\x94\xaf\x94\xb0\x94\xb2\x94\xb4\x94\xb6\x94\xb7\x94\xb8\x94\xb9\x94\xba\x94\xbc\x94\xbd\x94\xbf\x94\xc4\x94\xc8\x94\xc9\x94\xca\x94\xcb\x94\xcc\x94\xcd\x94\xce\x94\xd0\x94\xd1\x94\xd2\x94\xd5\x94\xd6\x94\xd7\x94\xd9\x94\xd8\x94\xdb\x94\xde\x94\xdf\x94\xe0\x94\xe2\x94\xe4\x94\xe5\x94\xe7\x94\xe8\x94\xea\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe9\x94\xeb\x94\xee\x94\xef\x94\xf3\x94\xf4\x94\xf5\x94\xf7\x94\xf9\x94\xfc\x94\xfd\x94\xff\x95\x03\x95\x02\x95\x06\x95\x07\x95\x09\x95\x0a\x95\x0d\x95\x0e\x95\x0f\x95\x12\x95\x13\x95\x14\x95\x15\x95\x16\x95\x18\x95\x1b\x95\x1d\x95\x1e\x95\x1f\x95\x22\x95\x2a\x95\x2b\x95\x29\x95\x2c\x95\x31\x95\x32\x95\x34\x95\x36\x95\x37\x95\x38\x95\x3c\x95\x3e\x95\x3f\x95\x42\x95\x35\x95\x44\x95\x45\x95\x46\x95\x49\x95\x4c\x95\x4e\x95\x4f\x95\x52\x95\x53\x95\x54\x95\x56\x95\x57\x95\x58\x95\x59\x95\x5b\x95\x5e", /* 6880 */ "\x00\x00\x95\x5f\x95\x5d\x95\x61\x95\x62\x95\x64\x95\x65\x95\x66\x95\x67\x95\x68\x95\x69\x95\x6a\x95\x6b\x95\x6c\x95\x6f\x95\x71\x95\x72\x95\x73\x95\x3a\x77\xe7\x77\xec\x96\xc9\x79\xd5\x79\xed\x79\xe3\x79\xeb\x7a\x06\x5d\x47\x7a\x03\x7a\x02\x7a\x1e\x7a\x14\x7a\x39\x7a\x37\x7a\x51\x9e\xcf\x99\xa5\x7a\x70\x76\x88\x76\x8e\x76\x93\x76\x99\x76\xa4\x74\xde\x74\xe0\x75\x2c\x9e\x20\x9e\x22\x9e\x28\x9e\x29\x9e\x2a\x9e\x2b\x9e\x2c\x9e\x32\x9e\x31\x9e\x36\x9e\x38\x9e\x37\x9e\x39\x9e\x3a\x9e\x3e\x9e\x41\x9e\x42\x9e\x44\x9e\x46\x9e\x47\x9e\x48\x9e\x49\x9e\x4b\x9e\x4c\x9e\x4e\x9e\x51\x9e\x55\x9e\x57\x9e\x5a\x9e\x5b\x9e\x5c\x9e\x5e\x9e\x63\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x9e\x6b\x9e\x6c\x9e\x71\x9e\x6d\x9e\x73\x75\x92\x75\x94\x75\x96\x75\xa0\x75\x9d\x75\xac\x75\xa3\x75\xb3\x75\xb4\x75\xb8\x75\xc4\x75\xb1\x75\xb0\x75\xc3\x75\xc2\x75\xd6\x75\xcd\x75\xe3\x75\xe8\x75\xe6\x75\xe4\x75\xeb\x75\xe7\x76\x03\x75\xf1\x75\xfc\x75\xff\x76\x10\x76\x00\x76\x05\x76\x0c\x76\x17\x76\x0a\x76\x25\x76\x18\x76\x15\x76\x19\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x1b\x76\x3c\x76\x22\x76\x20\x76\x40\x76\x2d\x76\x30\x76\x3f\x76\x35\x76\x43\x76\x3e\x76\x33\x76\x4d\x76\x5e\x76\x54\x76\x5c\x76\x56\x76\x6b\x76\x6f\x7f\xca\x7a\xe6\x7a\x78\x7a\x79\x7a\x80\x7a\x86\x7a\x88\x7a\x95\x7a\xa6\x7a\xa0\x7a\xac\x7a\xa8\x7a\xad\x7a\xb3\x88\x64\x88\x69\x88\x72\x88\x7d\x88\x7f\x88\x82\x88\xa2\x88\xc6\x88\xb7\x88\xbc\x88\xc9\x88\xe2\x88\xce\x88\xe3\x88\xe5\x88\xf1\x89\x1a\x88\xfc\x88\xe8\x88\xfe\x88\xf0\x89\x21\x89\x19\x89\x13\x89\x1b\x89\x0a\x89\x34\x89\x2b\x89\x36\x89\x41", /* 6980 */ "\x00\x00\x89\x66\x89\x7b\x75\x8b\x80\xe5\x76\xb2\x76\xb4\x77\xdc\x80\x12\x80\x14\x80\x16\x80\x1c\x80\x20\x80\x22\x80\x25\x80\x26\x80\x27\x80\x29\x80\x28\x80\x31\x80\x0b\x80\x35\x80\x43\x80\x46\x80\x4d\x80\x52\x80\x69\x80\x71\x89\x83\x98\x78\x98\x80\x98\x83\x98\x89\x98\x8c\x98\x8d\x98\x8f\x98\x94\x98\x9a\x98\x9b\x98\x9e\x98\x9f\x98\xa1\x98\xa2\x98\xa5\x98\xa6\x86\x4d\x86\x54\x86\x6c\x86\x6e\x86\x7f\x86\x7a\x86\x7c\x86\x7b\x86\xa8\x86\x8d\x86\x8b\x86\xac\x86\x9d\x86\xa7\x86\xa3\x86\xaa\x86\x93\x86\xa9\x86\xb6\x86\xc4\x86\xb5\x86\xce\x86\xb0\x86\xba\x86\xb1\x86\xaf\x86\xc9\x86\xcf\x86\xb4\x86\xe9\x86\xf1\x86\xf2\x86\xed\x86\xf3\x86\xd0\x87\x13\x86\xde\x86\xf4\x86\xdf\x86\xd8\x86\xd1\x87\x03\x87\x07\x86\xf8\x87\x08\x87\x0a\x87\x0d\x87\x09\x87\x23\x87\x3b\x87\x1e\x87\x25\x87\x2e\x87\x1a\x87\x3e\x87\x48\x87\x34\x87\x31\x87\x29\x87\x37\x87\x3f\x87\x82\x87\x22\x87\x7d\x87\x7e\x87\x7b\x87\x60\x87\x70\x87\x4c\x87\x6e\x87\x8b\x87\x53\x87\x63\x87\x7c\x87\x64\x87\x59\x87\x65\x87\x93\x87\xaf\x87\xa8\x87\xd2\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xc6\x87\x88\x87\x85\x87\xad\x87\x97\x87\x83\x87\xab\x87\xe5\x87\xac\x87\xb5\x87\xb3\x87\xcb\x87\xd3\x87\xbd\x87\xd1\x87\xc0\x87\xca\x87\xdb\x87\xea\x87\xe0\x87\xee\x88\x16\x88\x13\x87\xfe\x88\x0a\x88\x1b\x88\x21\x88\x39\x88\x3c\x7f\x36\x7f\x42\x7f\x44\x7f\x45\x82\x10\x7a\xfa\x7a\xfd\x7b\x08\x7b\x03\x7b\x04\x7b\x15\x7b\x0a\x7b\x2b\x7b\x0f\x7b\x47\x7b\x38\x7b\x2a\x7b\x19\x7b\x2e\x7b\x31\x7b\x20\x7b\x25\x7b\x24\x7b\x33\x7b\x3e\x7b\x1e\x7b\x58\x7b\x5a\x7b\x45\x7b\x75\x7b\x4c\x7b\x5d\x7b\x60\x7b\x6e", /* 6a80 */ "\x00\x00\x7b\x7b\x7b\x62\x7b\x72\x7b\x71\x7b\x90\x7b\xa6\x7b\xa7\x7b\xb8\x7b\xac\x7b\x9d\x7b\xa8\x7b\x85\x7b\xaa\x7b\x9c\x7b\xa2\x7b\xab\x7b\xb4\x7b\xd1\x7b\xc1\x7b\xcc\x7b\xdd\x7b\xda\x7b\xe5\x7b\xe6\x7b\xea\x7c\x0c\x7b\xfe\x7b\xfc\x7c\x0f\x7c\x16\x7c\x0b\x7c\x1f\x7c\x2a\x7c\x26\x7c\x38\x7c\x41\x7c\x40\x81\xfe\x82\x01\x82\x02\x82\x04\x81\xec\x88\x44\x82\x21\x82\x22\x82\x23\x82\x2d\x82\x2f\x82\x28\x82\x2b\x82\x38\x82\x3b\x82\x33\x82\x34\x82\x3e\x82\x44\x82\x49\x82\x4b\x82\x4f\x82\x5a\x82\x5f\x82\x68\x88\x7e\x88\x85\x88\x88\x88\xd8\x88\xdf\x89\x5e\x7f\x9d\x7f\x9f\x7f\xa7\x7f\xaf\x7f\xb0\x7f\xb2\x7c\x7c\x65\x49\x7c\x91\x7c\x9d\x7c\x9c\x7c\x9e\x7c\xa2\x7c\xb2\x7c\xbc\x7c\xbd\x7c\xc1\x7c\xc7\x7c\xcc\x7c\xcd\x7c\xc8\x7c\xc5\x7c\xd7\x7c\xe8\x82\x6e\x66\xa8\x7f\xbf\x7f\xce\x7f\xd5\x7f\xe5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xee\x7f\xf3\x7c\xf8\x7d\x77\x7d\xa6\x7d\xae\x7e\x47\x7e\x9b\x9e\xb8\x9e\xb4\x8d\x73\x8d\x84\x8d\x94\x8d\x91\x8d\xb1\x8d\x67\x8d\x6d\x8c\x47\x8c\x49\x91\x4a\x91\x50\x91\x4e\x91\x4f\x91\x64\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x62\x91\x61\x91\x70\x91\x69\x91\x6f\x91\x7d\x91\x7e\x91\x72\x91\x74\x91\x79\x91\x8c\x91\x85\x91\x90\x91\x8d\x91\x91\x91\xa2\x91\xa3\x91\xaa\x91\xad\x91\xae\x91\xaf\x91\xb5\x91\xb4\x91\xba\x8c\x55\x9e\x7e\x8d\xb8\x8d\xeb\x8e\x05\x8e\x59\x8e\x69\x8d\xb5\x8d\xbf\x8d\xbc\x8d\xba\x8d\xc4\x8d\xd6\x8d\xd7\x8d\xda\x8d\xde\x8d\xce\x8d\xcf\x8d\xdb\x8d\xc6\x8d\xec\x8d\xf7\x8d\xf8\x8d\xe3\x8d\xf9\x8d\xfb\x8d\xe4\x8e\x09\x8d\xfd\x8e\x14\x8e\x1d\x8e\x1f\x8e\x2c\x8e\x2e\x8e\x23\x8e\x2f\x8e\x3a\x8e\x40\x8e\x39", /* 6b80 */ "\x00\x00\x8e\x35\x8e\x3d\x8e\x31\x8e\x49\x8e\x41\x8e\x42\x8e\x51\x8e\x52\x8e\x4a\x8e\x70\x8e\x76\x8e\x7c\x8e\x6f\x8e\x74\x8e\x85\x8e\x8f\x8e\x94\x8e\x90\x8e\x9c\x8e\x9e\x8c\x78\x8c\x82\x8c\x8a\x8c\x85\x8c\x98\x8c\x94\x65\x9b\x89\xd6\x89\xde\x89\xda\x89\xdc\x89\xe5\x89\xeb\x89\xef\x8a\x3e\x8b\x26\x97\x53\x96\xe9\x96\xf3\x96\xef\x97\x06\x97\x01\x97\x08\x97\x0f\x97\x0e\x97\x2a\x97\x2d\x97\x30\x97\x3e\x9f\x80\x9f\x83\x9f\x85\x9f\x86\x9f\x87\x9f\x88\x9f\x89\x9f\x8a\x9f\x8c\x9e\xfe\x9f\x0b\x9f\x0d\x96\xb9\x96\xbc\x96\xbd\x96\xce\x96\xd2\x77\xbf\x96\xe0\x92\x8e\x92\xae\x92\xc8\x93\x3e\x93\x6a\x93\xca\x93\x8f\x94\x3e\x94\x6b\x9c\x7f\x9c\x82\x9c\x85\x9c\x86\x9c\x87\x9c\x88\x7a\x23\x9c\x8b\x9c\x8e\x9c\x90\x9c\x91\x9c\x92\x9c\x94\x9c\x95\x9c\x9a\x9c\x9b\x9c\x9e\x9c\x9f\x9c\xa0\x9c\xa1\x9c\xa2\x9c\xa3\x9c\xa5\x9c\xa6\x9c\xa7\x9c\xa8\x9c\xa9\x9c\xab\x9c\xad\x9c\xae\x9c\xb0\x9c\xb1\x9c\xb2\x9c\xb3\x9c\xb4\x9c\xb5\x9c\xb6\x9c\xb7\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xca\x9c\xcb\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xcc\x9c\xcd\x9c\xce\x9c\xcf\x9c\xd0\x9c\xd3\x9c\xd4\x9c\xd5\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xdc\x9c\xdd\x9c\xdf\x9c\xe2\x97\x7c\x97\x85\x97\x91\x97\x92\x97\x94\x97\xaf\x97\xab\x97\xa3\x97\xb2\x97\xb4\x9a\xb1\x9a\xb0\x9a\xb7\x9e\x58\x9a\xb6\x9a\xba\x9a\xbc\x9a\xc1\x9a\xc0\x9a\xc5\x9a\xc2\x9a\xcb\x9a\xcc\x9a\xd1\x9b\x45\x9b\x43\x9b\x47\x9b\x49\x9b\x48\x9b\x4d\x9b\x51\x98\xe8\x99\x0d\x99\x2e\x99\x55\x99\x54\x9a\xdf\x9a\xe1\x9a\xe6\x9a\xef\x9a\xeb\x9a\xfb\x9a\xed\x9a\xf9\x9b\x08\x9b\x0f\x9b\x13\x9b\x1f", /* 6c80 */ "\x00\x00\x9b\x23\x9e\xbd\x9e\xbe\x7e\x3b\x9e\x82\x9e\x87\x9e\x88\x9e\x8b\x9e\x92\x93\xd6\x9e\x9d\x9e\x9f\x9e\xdb\x9e\xdc\x9e\xdd\x9e\xe0\x9e\xdf\x9e\xe2\x9e\xe9\x9e\xe7\x9e\xe5\x9e\xea\x9e\xef\x9f\x22\x9f\x2c\x9f\x2f\x9f\x39\x9f\x37\x9f\x3d\x9f\x3e\x9f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x0f\x01\x0f\x02\x0f\x03\x0f\x04\x0f\x05\x0f\x06\x0f\x07\x0f\x08\x0f\x09\x0f\x0a\x0f\x0b\x0f\x0c\x0f\x0d\x0f\x0e\x0f\x0f\x0f\x10\x0f\x11\x0f\x12\x0f\x13\x0f\x14\x0f\x15\x0f\x16\x0f\x17\x0f\x18\x0f\x19\x0f\x1a\x0f\x1b\x0f\x1c\x0f\x1d\x0f\x1e\x0f\x1f\x0f\x20\x0f\x21\x0f\x22\x0f\x23\x0f\x24\x0f\x25\x0f\x26\x0f\x27\x0f\x28\x0f\x29\x0f\x2a\x0f\x2b\x0f\x2c\x0f\x2d\x0f\x2e\x0f\x2f\x0f\x30\x0f\x31\x0f\x32\x0f\x33\x0f\x34\x0f\x35\x0f\x36\x0f\x37\x0f\x38\x0f\x39\x0f\x3a\x0f\x3b\x0f\x3c\x0f\x3d\x0f\x3e", /* 6d80 */ "\x0f\x3f\x0f\x40\x0f\x41\x0f\x42\x0f\x43\x0f\x44\x0f\x45\x0f\x46\x0f\x47\x0f\x48\x0f\x49\x0f\x4a\x0f\x4b\x0f\x4c\x0f\x4d\x0f\x4e\x0f\x4f\x0f\x50\x0f\x51\x0f\x52\x0f\x53\x0f\x54\x0f\x55\x0f\x56\x0f\x57\x0f\x58\x0f\x59\x0f\x5a\x0f\x5b\x0f\x5c\x0f\x5d\x0f\x5e\x0f\x5f\x0f\x60\x0f\x61\x0f\x62\x0f\x63\x0f\x64\x0f\x65\x0f\x66\x0f\x67\x0f\x68\x0f\x69\x0f\x6a\x0f\x6b\x0f\x6c\x0f\x6d\x0f\x6e\x0f\x6f\x0f\x70\x0f\x71\x0f\x72\x0f\x73\x0f\x74\x0f\x75\x0f\x76\x0f\x77\x0f\x78\x0f\x79\x0f\x7a\x0f\x7b\x0f\x7c\x0f\x7d\x0f\x7e\x0f\x7f\x0f\x80\x0f\x81\x0f\x82\x0f\x83\x0f\x84\x0f\x85\x0f\x86\x0f\x87\x0f\x88\x0f\x89\x0f\x8a\x0f\x8b\x0f\x8c\x0f\x8d\x0f\x8e\x0f\x8f\x0f\x90\x0f\x91\x0f\x92\x0f\x93\x0f\x94\x0f\x95\x0f\x96\x0f\x97\x0f\x98\x0f\x99\x0f\x9a\x0f\x9b\x0f\x9c\x0f\x9d\x0f\x9e\x0f\x9f\x0f\xa0\x0f\xa1\x0f\xa2\x0f\xa3\x0f\xa4\x0f\xa5\x0f\xa6\x0f\xa7\x0f\xa8\x0f\xa9\x0f\xaa\x0f\xab\x0f\xac\x0f\xad\x0f\xae\x0f\xaf\x0f\xb0\x0f\xb1\x0f\xb2\x0f\xb3\x0f\xb4\x0f\xb5\x0f\xb6\x0f\xb7\x0f\xb8\x0f\xb9\x0f\xba\x0f\xbb\x0f\xbc\x0f\xbd\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\xbe\x0f\xbf\x0f\xc0\x0f\xc1\x0f\xc2\x0f\xc3\x0f\xc4\x0f\xc5\x0f\xc6\x0f\xc7\x0f\xc8\x0f\xc9\x0f\xca\x0f\xcb\x0f\xcc\x0f\xcd\x0f\xce\x0f\xcf\x0f\xd0\x0f\xd1\x0f\xd2\x0f\xd3\x0f\xd4\x0f\xd5\x0f\xd6\x0f\xd7\x0f\xd8\x0f\xd9\x0f\xda\x0f\xdb\x0f\xdc\x0f\xdd\x0f\xde\x0f\xdf\x0f\xe0\x0f\xe1\x0f\xe2\x0f\xe3\x0f\xe4\x0f\xe5\x0f\xe6\x0f\xe7\x0f\xe8\x0f\xe9\x0f\xea\x0f\xeb\x0f\xec\x0f\xed\x0f\xee\x0f\xef\x0f\xf0\x0f\xf1\x0f\xf2\x0f\xf3\x0f\xf4\x0f\xf5\x0f\xf6\x0f\xf7\x0f\xf8\x0f\xf9\x0f\xfa\x0f\xfb\x0f\xfc", /* 6e80 */ "\x0f\xfd\x0f\xfe\x0f\xff\x18\x00\x18\x01\x18\x02\x18\x03\x18\x04\x18\x05\x18\x06\x18\x07\x18\x08\x18\x09\x18\x0a\x18\x0b\x18\x0c\x18\x0d\x18\x0e\x18\x0f\x18\x10\x18\x11\x18\x12\x18\x13\x18\x14\x18\x15\x18\x16\x18\x17\x18\x18\x18\x19\x18\x1a\x18\x1b\x18\x1c\x18\x1d\x18\x1e\x18\x1f\x18\x20\x18\x21\x18\x22\x18\x23\x18\x24\x18\x25\x18\x26\x18\x27\x18\x28\x18\x29\x18\x2a\x18\x2b\x18\x2c\x18\x2d\x18\x2e\x18\x2f\x18\x30\x18\x31\x18\x32\x18\x33\x18\x34\x18\x35\x18\x36\x18\x37\x18\x38\x18\x39\x18\x3a\x18\x3b\x18\x3c\x18\x3d\x18\x3e\x18\x3f\x18\x40\x18\x41\x18\x42\x18\x43\x18\x44\x18\x45\x18\x46\x18\x47\x18\x48\x18\x49\x18\x4a\x18\x4b\x18\x4c\x18\x4d\x18\x4e\x18\x4f\x18\x50\x18\x51\x18\x52\x18\x53\x18\x54\x18\x55\x18\x56\x18\x57\x18\x58\x18\x59\x18\x5a\x18\x5b\x18\x5c\x18\x5d\x18\x5e\x18\x5f\x18\x60\x18\x61\x18\x62\x18\x63\x18\x64\x18\x65\x18\x66\x18\x67\x18\x68\x18\x69\x18\x6a\x18\x6b\x18\x6c\x18\x6d\x18\x6e\x18\x6f\x18\x70\x18\x71\x18\x72\x18\x73\x18\x74\x18\x75\x18\x76\x18\x77\x18\x78\x18\x79\x18\x7a\x18\x7b\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x7c\x18\x7d\x18\x7e\x18\x7f\x18\x80\x18\x81\x18\x82\x18\x83\x18\x84\x18\x85\x18\x86\x18\x87\x18\x88\x18\x89\x18\x8a\x18\x8b\x18\x8c\x18\x8d\x18\x8e\x18\x8f\x18\x90\x18\x91\x18\x92\x18\x93\x18\x94\x18\x95\x18\x96\x18\x97\x18\x98\x18\x99\x18\x9a\x18\x9b\x18\x9c\x18\x9d\x18\x9e\x18\x9f\x18\xa0\x18\xa1\x18\xa2\x18\xa3\x18\xa4\x18\xa5\x18\xa6\x18\xa7\x18\xa8\x18\xa9\x18\xaa\x18\xab\x18\xac\x18\xad\x18\xae\x18\xaf\xa0\x00\xa0\x01\xa0\x02\xa0\x03\xa0\x04\xa0\x05\xa0\x06\xa0\x07\xa0\x08\xa0\x09\xa0\x0a", /* 6f80 */ "\xa0\x0b\xa0\x0c\xa0\x0d\xa0\x0e\xa0\x0f\xa0\x10\xa0\x11\xa0\x12\xa0\x13\xa0\x14\xa0\x15\xa0\x16\xa0\x17\xa0\x18\xa0\x19\xa0\x1a\xa0\x1b\xa0\x1c\xa0\x1d\xa0\x1e\xa0\x1f\xa0\x20\xa0\x21\xa0\x22\xa0\x23\xa0\x24\xa0\x25\xa0\x26\xa0\x27\xa0\x28\xa0\x29\xa0\x2a\xa0\x2b\xa0\x2c\xa0\x2d\xa0\x2e\xa0\x2f\xa0\x30\xa0\x31\xa0\x32\xa0\x33\xa0\x34\xa0\x35\xa0\x36\xa0\x37\xa0\x38\xa0\x39\xa0\x3a\xa0\x3b\xa0\x3c\xa0\x3d\xa0\x3e\xa0\x3f\xa0\x40\xa0\x41\xa0\x42\xa0\x43\xa0\x44\xa0\x45\xa0\x46\xa0\x47\xa0\x48\xa0\x49\xa0\x4a\xa0\x4b\xa0\x4c\xa0\x4d\xa0\x4e\xa0\x4f\xa0\x50\xa0\x51\xa0\x52\xa0\x53\xa0\x54\xa0\x55\xa0\x56\xa0\x57\xa0\x58\xa0\x59\xa0\x5a\xa0\x5b\xa0\x5c\xa0\x5d\xa0\x5e\xa0\x5f\xa0\x60\xa0\x61\xa0\x62\xa0\x63\xa0\x64\xa0\x65\xa0\x66\xa0\x67\xa0\x68\xa0\x69\xa0\x6a\xa0\x6b\xa0\x6c\xa0\x6d\xa0\x6e\xa0\x6f\xa0\x70\xa0\x71\xa0\x72\xa0\x73\xa0\x74\xa0\x75\xa0\x76\xa0\x77\xa0\x78\xa0\x79\xa0\x7a\xa0\x7b\xa0\x7c\xa0\x7d\xa0\x7e\xa0\x7f\xa0\x80\xa0\x81\xa0\x82\xa0\x83\xa0\x84\xa0\x85\xa0\x86\xa0\x87\xa0\x88\xa0\x89\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x8a\xa0\x8b\xa0\x8c\xa0\x8d\xa0\x8e\xa0\x8f\xa0\x90\xa0\x91\xa0\x92\xa0\x93\xa0\x94\xa0\x95\xa0\x96\xa0\x97\xa0\x98\xa0\x99\xa0\x9a\xa0\x9b\xa0\x9c\xa0\x9d\xa0\x9e\xa0\x9f\xa0\xa0\xa0\xa1\xa0\xa2\xa0\xa3\xa0\xa4\xa0\xa5\xa0\xa6\xa0\xa7\xa0\xa8\xa0\xa9\xa0\xaa\xa0\xab\xa0\xac\xa0\xad\xa0\xae\xa0\xaf\xa0\xb0\xa0\xb1\xa0\xb2\xa0\xb3\xa0\xb4\xa0\xb5\xa0\xb6\xa0\xb7\xa0\xb8\xa0\xb9\xa0\xba\xa0\xbb\xa0\xbc\xa0\xbd\xa0\xbe\xa0\xbf\xa0\xc0\xa0\xc1\xa0\xc2\xa0\xc3\xa0\xc4\xa0\xc5\xa0\xc6\xa0\xc7\xa0\xc8", /* 7080 */ "\xa0\xc9\xa0\xca\xa0\xcb\xa0\xcc\xa0\xcd\xa0\xce\xa0\xcf\xa0\xd0\xa0\xd1\xa0\xd2\xa0\xd3\xa0\xd4\xa0\xd5\xa0\xd6\xa0\xd7\xa0\xd8\xa0\xd9\xa0\xda\xa0\xdb\xa0\xdc\xa0\xdd\xa0\xde\xa0\xdf\xa0\xe0\xa0\xe1\xa0\xe2\xa0\xe3\xa0\xe4\xa0\xe5\xa0\xe6\xa0\xe7\xa0\xe8\xa0\xe9\xa0\xea\xa0\xeb\xa0\xec\xa0\xed\xa0\xee\xa0\xef\xa0\xf0\xa0\xf1\xa0\xf2\xa0\xf3\xa0\xf4\xa0\xf5\xa0\xf6\xa0\xf7\xa0\xf8\xa0\xf9\xa0\xfa\xa0\xfb\xa0\xfc\xa0\xfd\xa0\xfe\xa0\xff\xa1\x00\xa1\x01\xa1\x02\xa1\x03\xa1\x04\xa1\x05\xa1\x06\xa1\x07\xa1\x08\xa1\x09\xa1\x0a\xa1\x0b\xa1\x0c\xa1\x0d\xa1\x0e\xa1\x0f\xa1\x10\xa1\x11\xa1\x12\xa1\x13\xa1\x14\xa1\x15\xa1\x16\xa1\x17\xa1\x18\xa1\x19\xa1\x1a\xa1\x1b\xa1\x1c\xa1\x1d\xa1\x1e\xa1\x1f\xa1\x20\xa1\x21\xa1\x22\xa1\x23\xa1\x24\xa1\x25\xa1\x26\xa1\x27\xa1\x28\xa1\x29\xa1\x2a\xa1\x2b\xa1\x2c\xa1\x2d\xa1\x2e\xa1\x2f\xa1\x30\xa1\x31\xa1\x32\xa1\x33\xa1\x34\xa1\x35\xa1\x36\xa1\x37\xa1\x38\xa1\x39\xa1\x3a\xa1\x3b\xa1\x3c\xa1\x3d\xa1\x3e\xa1\x3f\xa1\x40\xa1\x41\xa1\x42\xa1\x43\xa1\x44\xa1\x45\xa1\x46\xa1\x47\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x48\xa1\x49\xa1\x4a\xa1\x4b\xa1\x4c\xa1\x4d\xa1\x4e\xa1\x4f\xa1\x50\xa1\x51\xa1\x52\xa1\x53\xa1\x54\xa1\x55\xa1\x56\xa1\x57\xa1\x58\xa1\x59\xa1\x5a\xa1\x5b\xa1\x5c\xa1\x5d\xa1\x5e\xa1\x5f\xa1\x60\xa1\x61\xa1\x62\xa1\x63\xa1\x64\xa1\x65\xa1\x66\xa1\x67\xa1\x68\xa1\x69\xa1\x6a\xa1\x6b\xa1\x6c\xa1\x6d\xa1\x6e\xa1\x6f\xa1\x70\xa1\x71\xa1\x72\xa1\x73\xa1\x74\xa1\x75\xa1\x76\xa1\x77\xa1\x78\xa1\x79\xa1\x7a\xa1\x7b\xa1\x7c\xa1\x7d\xa1\x7e\xa1\x7f\xa1\x80\xa1\x81\xa1\x82\xa1\x83\xa1\x84\xa1\x85\xa1\x86", /* 7180 */ "\xa1\x87\xa1\x88\xa1\x89\xa1\x8a\xa1\x8b\xa1\x8c\xa1\x8d\xa1\x8e\xa1\x8f\xa1\x90\xa1\x91\xa1\x92\xa1\x93\xa1\x94\xa1\x95\xa1\x96\xa1\x97\xa1\x98\xa1\x99\xa1\x9a\xa1\x9b\xa1\x9c\xa1\x9d\xa1\x9e\xa1\x9f\xa1\xa0\xa1\xa1\xa1\xa2\xa1\xa3\xa1\xa4\xa1\xa5\xa1\xa6\xa1\xa7\xa1\xa8\xa1\xa9\xa1\xaa\xa1\xab\xa1\xac\xa1\xad\xa1\xae\xa1\xaf\xa1\xb0\xa1\xb1\xa1\xb2\xa1\xb3\xa1\xb4\xa1\xb5\xa1\xb6\xa1\xb7\xa1\xb8\xa1\xb9\xa1\xba\xa1\xbb\xa1\xbc\xa1\xbd\xa1\xbe\xa1\xbf\xa1\xc0\xa1\xc1\xa1\xc2\xa1\xc3\xa1\xc4\xa1\xc5\xa1\xc6\xa1\xc7\xa1\xc8\xa1\xc9\xa1\xca\xa1\xcb\xa1\xcc\xa1\xcd\xa1\xce\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xd2\xa1\xd3\xa1\xd4\xa1\xd5\xa1\xd6\xa1\xd7\xa1\xd8\xa1\xd9\xa1\xda\xa1\xdb\xa1\xdc\xa1\xdd\xa1\xde\xa1\xdf\xa1\xe0\xa1\xe1\xa1\xe2\xa1\xe3\xa1\xe4\xa1\xe5\xa1\xe6\xa1\xe7\xa1\xe8\xa1\xe9\xa1\xea\xa1\xeb\xa1\xec\xa1\xed\xa1\xee\xa1\xef\xa1\xf0\xa1\xf1\xa1\xf2\xa1\xf3\xa1\xf4\xa1\xf5\xa1\xf6\xa1\xf7\xa1\xf8\xa1\xf9\xa1\xfa\xa1\xfb\xa1\xfc\xa1\xfd\xa1\xfe\xa1\xff\xa2\x00\xa2\x01\xa2\x02\xa2\x03\xa2\x04\xa2\x05\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x06\xa2\x07\xa2\x08\xa2\x09\xa2\x0a\xa2\x0b\xa2\x0c\xa2\x0d\xa2\x0e\xa2\x0f\xa2\x10\xa2\x11\xa2\x12\xa2\x13\xa2\x14\xa2\x15\xa2\x16\xa2\x17\xa2\x18\xa2\x19\xa2\x1a\xa2\x1b\xa2\x1c\xa2\x1d\xa2\x1e\xa2\x1f\xa2\x20\xa2\x21\xa2\x22\xa2\x23\xa2\x24\xa2\x25\xa2\x26\xa2\x27\xa2\x28\xa2\x29\xa2\x2a\xa2\x2b\xa2\x2c\xa2\x2d\xa2\x2e\xa2\x2f\xa2\x30\xa2\x31\xa2\x32\xa2\x33\xa2\x34\xa2\x35\xa2\x36\xa2\x37\xa2\x38\xa2\x39\xa2\x3a\xa2\x3b\xa2\x3c\xa2\x3d\xa2\x3e\xa2\x3f\xa2\x40\xa2\x41\xa2\x42\xa2\x43\xa2\x44", /* 7280 */ "\xa2\x45\xa2\x46\xa2\x47\xa2\x48\xa2\x49\xa2\x4a\xa2\x4b\xa2\x4c\xa2\x4d\xa2\x4e\xa2\x4f\xa2\x50\xa2\x51\xa2\x52\xa2\x53\xa2\x54\xa2\x55\xa2\x56\xa2\x57\xa2\x58\xa2\x59\xa2\x5a\xa2\x5b\xa2\x5c\xa2\x5d\xa2\x5e\xa2\x5f\xa2\x60\xa2\x61\xa2\x62\xa2\x63\xa2\x64\xa2\x65\xa2\x66\xa2\x67\xa2\x68\xa2\x69\xa2\x6a\xa2\x6b\xa2\x6c\xa2\x6d\xa2\x6e\xa2\x6f\xa2\x70\xa2\x71\xa2\x72\xa2\x73\xa2\x74\xa2\x75\xa2\x76\xa2\x77\xa2\x78\xa2\x79\xa2\x7a\xa2\x7b\xa2\x7c\xa2\x7d\xa2\x7e\xa2\x7f\xa2\x80\xa2\x81\xa2\x82\xa2\x83\xa2\x84\xa2\x85\xa2\x86\xa2\x87\xa2\x88\xa2\x89\xa2\x8a\xa2\x8b\xa2\x8c\xa2\x8d\xa2\x8e\xa2\x8f\xa2\x90\xa2\x91\xa2\x92\xa2\x93\xa2\x94\xa2\x95\xa2\x96\xa2\x97\xa2\x98\xa2\x99\xa2\x9a\xa2\x9b\xa2\x9c\xa2\x9d\xa2\x9e\xa2\x9f\xa2\xa0\xa2\xa1\xa2\xa2\xa2\xa3\xa2\xa4\xa2\xa5\xa2\xa6\xa2\xa7\xa2\xa8\xa2\xa9\xa2\xaa\xa2\xab\xa2\xac\xa2\xad\xa2\xae\xa2\xaf\xa2\xb0\xa2\xb1\xa2\xb2\xa2\xb3\xa2\xb4\xa2\xb5\xa2\xb6\xa2\xb7\xa2\xb8\xa2\xb9\xa2\xba\xa2\xbb\xa2\xbc\xa2\xbd\xa2\xbe\xa2\xbf\xa2\xc0\xa2\xc1\xa2\xc2\xa2\xc3\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\xc4\xa2\xc5\xa2\xc6\xa2\xc7\xa2\xc8\xa2\xc9\xa2\xca\xa2\xcb\xa2\xcc\xa2\xcd\xa2\xce\xa2\xcf\xa2\xd0\xa2\xd1\xa2\xd2\xa2\xd3\xa2\xd4\xa2\xd5\xa2\xd6\xa2\xd7\xa2\xd8\xa2\xd9\xa2\xda\xa2\xdb\xa2\xdc\xa2\xdd\xa2\xde\xa2\xdf\xa2\xe0\xa2\xe1\xa2\xe2\xa2\xe3\xa2\xe4\xa2\xe5\xa2\xe6\xa2\xe7\xa2\xe8\xa2\xe9\xa2\xea\xa2\xeb\xa2\xec\xa2\xed\xa2\xee\xa2\xef\xa2\xf0\xa2\xf1\xa2\xf2\xa2\xf3\xa2\xf4\xa2\xf5\xa2\xf6\xa2\xf7\xa2\xf8\xa2\xf9\xa2\xfa\xa2\xfb\xa2\xfc\xa2\xfd\xa2\xfe\xa2\xff\xa3\x00\xa3\x01\xa3\x02", /* 7380 */ "\xa3\x03\xa3\x04\xa3\x05\xa3\x06\xa3\x07\xa3\x08\xa3\x09\xa3\x0a\xa3\x0b\xa3\x0c\xa3\x0d\xa3\x0e\xa3\x0f\xa3\x10\xa3\x11\xa3\x12\xa3\x13\xa3\x14\xa3\x15\xa3\x16\xa3\x17\xa3\x18\xa3\x19\xa3\x1a\xa3\x1b\xa3\x1c\xa3\x1d\xa3\x1e\xa3\x1f\xa3\x20\xa3\x21\xa3\x22\xa3\x23\xa3\x24\xa3\x25\xa3\x26\xa3\x27\xa3\x28\xa3\x29\xa3\x2a\xa3\x2b\xa3\x2c\xa3\x2d\xa3\x2e\xa3\x2f\xa3\x30\xa3\x31\xa3\x32\xa3\x33\xa3\x34\xa3\x35\xa3\x36\xa3\x37\xa3\x38\xa3\x39\xa3\x3a\xa3\x3b\xa3\x3c\xa3\x3d\xa3\x3e\xa3\x3f\xa3\x40\xa3\x41\xa3\x42\xa3\x43\xa3\x44\xa3\x45\xa3\x46\xa3\x47\xa3\x48\xa3\x49\xa3\x4a\xa3\x4b\xa3\x4c\xa3\x4d\xa3\x4e\xa3\x4f\xa3\x50\xa3\x51\xa3\x52\xa3\x53\xa3\x54\xa3\x55\xa3\x56\xa3\x57\xa3\x58\xa3\x59\xa3\x5a\xa3\x5b\xa3\x5c\xa3\x5d\xa3\x5e\xa3\x5f\xa3\x60\xa3\x61\xa3\x62\xa3\x63\xa3\x64\xa3\x65\xa3\x66\xa3\x67\xa3\x68\xa3\x69\xa3\x6a\xa3\x6b\xa3\x6c\xa3\x6d\xa3\x6e\xa3\x6f\xa3\x70\xa3\x71\xa3\x72\xa3\x73\xa3\x74\xa3\x75\xa3\x76\xa3\x77\xa3\x78\xa3\x79\xa3\x7a\xa3\x7b\xa3\x7c\xa3\x7d\xa3\x7e\xa3\x7f\xa3\x80\xa3\x81\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x82\xa3\x83\xa3\x84\xa3\x85\xa3\x86\xa3\x87\xa3\x88\xa3\x89\xa3\x8a\xa3\x8b\xa3\x8c\xa3\x8d\xa3\x8e\xa3\x8f\xa3\x90\xa3\x91\xa3\x92\xa3\x93\xa3\x94\xa3\x95\xa3\x96\xa3\x97\xa3\x98\xa3\x99\xa3\x9a\xa3\x9b\xa3\x9c\xa3\x9d\xa3\x9e\xa3\x9f\xa3\xa0\xa3\xa1\xa3\xa2\xa3\xa3\xa3\xa4\xa3\xa5\xa3\xa6\xa3\xa7\xa3\xa8\xa3\xa9\xa3\xaa\xa3\xab\xa3\xac\xa3\xad\xa3\xae\xa3\xaf\xa3\xb0\xa3\xb1\xa3\xb2\xa3\xb3\xa3\xb4\xa3\xb5\xa3\xb6\xa3\xb7\xa3\xb8\xa3\xb9\xa3\xba\xa3\xbb\xa3\xbc\xa3\xbd\xa3\xbe\xa3\xbf\xa3\xc0", /* 7480 */ "\xa3\xc1\xa3\xc2\xa3\xc3\xa3\xc4\xa3\xc5\xa3\xc6\xa3\xc7\xa3\xc8\xa3\xc9\xa3\xca\xa3\xcb\xa3\xcc\xa3\xcd\xa3\xce\xa3\xcf\xa3\xd0\xa3\xd1\xa3\xd2\xa3\xd3\xa3\xd4\xa3\xd5\xa3\xd6\xa3\xd7\xa3\xd8\xa3\xd9\xa3\xda\xa3\xdb\xa3\xdc\xa3\xdd\xa3\xde\xa3\xdf\xa3\xe0\xa3\xe1\xa3\xe2\xa3\xe3\xa3\xe4\xa3\xe5\xa3\xe6\xa3\xe7\xa3\xe8\xa3\xe9\xa3\xea\xa3\xeb\xa3\xec\xa3\xed\xa3\xee\xa3\xef\xa3\xf0\xa3\xf1\xa3\xf2\xa3\xf3\xa3\xf4\xa3\xf5\xa3\xf6\xa3\xf7\xa3\xf8\xa3\xf9\xa3\xfa\xa3\xfb\xa3\xfc\xa3\xfd\xa3\xfe\xa3\xff\xa4\x00\xa4\x01\xa4\x02\xa4\x03\xa4\x04\xa4\x05\xa4\x06\xa4\x07\xa4\x08\xa4\x09\xa4\x0a\xa4\x0b\xa4\x0c\xa4\x0d\xa4\x0e\xa4\x0f\xa4\x10\xa4\x11\xa4\x12\xa4\x13\xa4\x14\xa4\x15\xa4\x16\xa4\x17\xa4\x18\xa4\x19\xa4\x1a\xa4\x1b\xa4\x1c\xa4\x1d\xa4\x1e\xa4\x1f\xa4\x20\xa4\x21\xa4\x22\xa4\x23\xa4\x24\xa4\x25\xa4\x26\xa4\x27\xa4\x28\xa4\x29\xa4\x2a\xa4\x2b\xa4\x2c\xa4\x2d\xa4\x2e\xa4\x2f\xa4\x30\xa4\x31\xa4\x32\xa4\x33\xa4\x34\xa4\x35\xa4\x36\xa4\x37\xa4\x38\xa4\x39\xa4\x3a\xa4\x3b\xa4\x3c\xa4\x3d\xa4\x3e\xa4\x3f\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x40\xa4\x41\xa4\x42\xa4\x43\xa4\x44\xa4\x45\xa4\x46\xa4\x47\xa4\x48\xa4\x49\xa4\x4a\xa4\x4b\xa4\x4c\xa4\x4d\xa4\x4e\xa4\x4f\xa4\x50\xa4\x51\xa4\x52\xa4\x53\xa4\x54\xa4\x55\xa4\x56\xa4\x57\xa4\x58\xa4\x59\xa4\x5a\xa4\x5b\xa4\x5c\xa4\x5d\xa4\x5e\xa4\x5f\xa4\x60\xa4\x61\xa4\x62\xa4\x63\xa4\x64\xa4\x65\xa4\x66\xa4\x67\xa4\x68\xa4\x69\xa4\x6a\xa4\x6b\xa4\x6c\xa4\x6d\xa4\x6e\xa4\x6f\xa4\x70\xa4\x71\xa4\x72\xa4\x73\xa4\x74\xa4\x75\xa4\x76\xa4\x77\xa4\x78\xa4\x79\xa4\x7a\xa4\x7b\xa4\x7c\xa4\x7d\xa4\x7e", /* 7580 */ "\xa4\x7f\xa4\x80\xa4\x81\xa4\x82\xa4\x83\xa4\x84\xa4\x85\xa4\x86\xa4\x87\xa4\x88\xa4\x89\xa4\x8a\xa4\x8b\xa4\x8c\xa4\x8d\xa4\x8e\xa4\x8f\xa4\x90\xa4\x91\xa4\x92\xa4\x93\xa4\x94\xa4\x95\xa4\x96\xa4\x97\xa4\x98\xa4\x99\xa4\x9a\xa4\x9b\xa4\x9c\xa4\x9d\xa4\x9e\xa4\x9f\xa4\xa0\xa4\xa1\xa4\xa2\xa4\xa3\xa4\xa4\xa4\xa5\xa4\xa6\xa4\xa7\xa4\xa8\xa4\xa9\xa4\xaa\xa4\xab\xa4\xac\xa4\xad\xa4\xae\xa4\xaf\xa4\xb0\xa4\xb1\xa4\xb2\xa4\xb3\xa4\xb4\xa4\xb5\xa4\xb6\xa4\xb7\xa4\xb8\xa4\xb9\xa4\xba\xa4\xbb\xa4\xbc\xa4\xbd\xa4\xbe\xa4\xbf\xa4\xc0\xa4\xc1\xa4\xc2\xa4\xc3\xa4\xc4\xa4\xc5\xa4\xc6\xa4\xc7\xa4\xc8\xa4\xc9\xa4\xca\xa4\xcb\xa4\xcc\xa4\xcd\xa4\xce\xa4\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 7680 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* 7780 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* 7880 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* 7980 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* 7a80 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* 7b80 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* 7c80 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* 7d80 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* 7e80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* 7f80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* 8000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8080 */ NULL, /* 8100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x02\x4e\x04\x4e\x05\x4e\x06\x4e\x0f\x4e\x12\x4e\x17\x4e\x1f\x4e\x20\x4e\x21\x4e\x23\x4e\x26\x4e\x29\x4e\x2e\x4e\x2f\x4e\x31\x4e\x33\x4e\x35\x4e\x37\x4e\x3c\x4e\x40\x4e\x41\x4e\x42\x4e\x44\x4e\x46\x4e\x4a\x4e\x51\x4e\x55\x4e\x57\x4e\x5a\x4e\x5b\x4e\x62\x4e\x63\x4e\x64\x4e\x65\x4e\x67\x4e\x68\x4e\x6a\x4e\x6b\x4e\x6c\x4e\x6d\x4e\x6e\x4e\x6f\x4e\x72\x4e\x74\x4e\x75\x4e\x76\x4e\x77\x4e\x78\x4e\x79\x4e\x7a\x4e\x7b\x4e\x7c\x4e\x7d\x4e\x7f\x4e\x80\x4e\x81\x4e\x82\x4e\x83\x4e\x84\x4e\x85\x4e\x87\x4e\x8a", /* 8180 */ "\x00\x00\x4e\x90\x4e\x96\x4e\x97\x4e\x99\x4e\x9c\x4e\x9d\x4e\x9e\x4e\xa3\x4e\xaa\x4e\xaf\x4e\xb0\x4e\xb1\x4e\xb4\x4e\xb6\x4e\xb7\x4e\xb8\x4e\xb9\x4e\xbc\x4e\xbd\x4e\xbe\x4e\xc8\x4e\xcc\x4e\xcf\x4e\xd0\x4e\xd2\x4e\xda\x4e\xdb\x4e\xdc\x4e\xe0\x4e\xe2\x4e\xe6\x4e\xe7\x4e\xe9\x4e\xed\x4e\xee\x4e\xef\x4e\xf1\x4e\xf4\x4e\xf8\x4e\xf9\x4e\xfa\x4e\xfc\x4e\xfe\x4f\x00\x4f\x02\x4f\x03\x4f\x04\x4f\x05\x4f\x06\x4f\x07\x4f\x08\x4f\x0b\x4f\x0c\x4f\x12\x4f\x13\x4f\x14\x4f\x15\x4f\x16\x4f\x1c\x4f\x1d\x4f\x21\x4f\x23\x4f\x28\x4f\x29\x4f\x2c\x4f\x2d\x4f\x2e\x4f\x31\x4f\x33\x4f\x35\x4f\x37\x4f\x39\x4f\x3b\x4f\x3e\x4f\x3f\x4f\x40\x4f\x41\x4f\x42\x4f\x44\x4f\x45\x4f\x47\x4f\x48\x4f\x49\x4f\x4a\x4f\x4b\x4f\x4c\x4f\x52\x4f\x54\x4f\x56\x4f\x61\x4f\x62\x4f\x66\x4f\x68\x4f\x6a\x4f\x6b\x4f\x6d\x4f\x6e\x4f\x71\x4f\x72\x4f\x75\x4f\x77\x4f\x78\x4f\x79\x4f\x7a\x4f\x7d\x4f\x80\x4f\x81\x4f\x82\x4f\x85\x4f\x86\x4f\x87\x4f\x8a\x4f\x8c\x4f\x8e\x4f\x90\x4f\x92\x4f\x93\x4f\x95\x4f\x96\x4f\x98\x4f\x99\x4f\x9a\x4f\x9c\x4f\x9e\x4f\x9f\x00\x00\x00\x00", /* 8200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa1\x4f\xa2\x4f\xa4\x4f\xab\x4f\xad\x4f\xb0\x4f\xb1\x4f\xb2\x4f\xb3\x4f\xb4\x4f\xb6\x4f\xb7\x4f\xb8\x4f\xb9\x4f\xba\x4f\xbb\x4f\xbc\x4f\xbd\x4f\xbe\x4f\xc0\x4f\xc1\x4f\xc2\x4f\xc6\x4f\xc7\x4f\xc8\x4f\xc9\x4f\xcb\x4f\xcc\x4f\xcd\x4f\xd2\x4f\xd3\x4f\xd4\x4f\xd5\x4f\xd6\x4f\xd9\x4f\xdb\x4f\xe0\x4f\xe2\x4f\xe4\x4f\xe5\x4f\xe7\x4f\xeb\x4f\xec\x4f\xf0\x4f\xf2\x4f\xf4\x4f\xf5\x4f\xf6\x4f\xf7\x4f\xf9\x4f\xfb\x4f\xfc\x4f\xfd\x4f\xff\x50\x00\x50\x01\x50\x02\x50\x03\x50\x04\x50\x05\x50\x06\x50\x07\x50\x08", /* 8280 */ "\x00\x00\x50\x09\x50\x0a\x50\x0b\x50\x0e\x50\x10\x50\x11\x50\x13\x50\x15\x50\x16\x50\x17\x50\x1b\x50\x1d\x50\x1e\x50\x20\x50\x22\x50\x23\x50\x24\x50\x27\x50\x2b\x50\x2f\x50\x30\x50\x31\x50\x32\x50\x33\x50\x34\x50\x35\x50\x36\x50\x37\x50\x38\x50\x39\x50\x3b\x50\x3d\x50\x3f\x50\x40\x50\x41\x50\x42\x50\x44\x50\x45\x50\x46\x50\x49\x50\x4a\x50\x4b\x50\x4d\x50\x50\x50\x51\x50\x52\x50\x53\x50\x54\x50\x56\x50\x57\x50\x58\x50\x59\x50\x5b\x50\x5d\x50\x5e\x50\x5f\x50\x60\x50\x61\x50\x62\x50\x63\x50\x64\x50\x66\x50\x67\x50\x68\x50\x69\x50\x6a\x50\x6b\x50\x6d\x50\x6e\x50\x6f\x50\x70\x50\x71\x50\x72\x50\x73\x50\x74\x50\x75\x50\x78\x50\x79\x50\x7a\x50\x7c\x50\x7d\x50\x81\x50\x82\x50\x83\x50\x84\x50\x86\x50\x87\x50\x89\x50\x8a\x50\x8b\x50\x8c\x50\x8e\x50\x8f\x50\x90\x50\x91\x50\x92\x50\x93\x50\x94\x50\x95\x50\x96\x50\x97\x50\x98\x50\x99\x50\x9a\x50\x9b\x50\x9c\x50\x9d\x50\x9e\x50\x9f\x50\xa0\x50\xa1\x50\xa2\x50\xa4\x50\xa6\x50\xaa\x50\xab\x50\xad\x50\xae\x50\xaf\x50\xb0\x50\xb1\x50\xb3\x50\xb4\x50\xb5\x50\xb6\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb7\x50\xb8\x50\xb9\x50\xbc\x50\xbd\x50\xbe\x50\xbf\x50\xc0\x50\xc1\x50\xc2\x50\xc3\x50\xc4\x50\xc5\x50\xc6\x50\xc7\x50\xc8\x50\xc9\x50\xca\x50\xcb\x50\xcc\x50\xcd\x50\xce\x50\xd0\x50\xd1\x50\xd2\x50\xd3\x50\xd4\x50\xd5\x50\xd7\x50\xd8\x50\xd9\x50\xdb\x50\xdc\x50\xdd\x50\xde\x50\xdf\x50\xe0\x50\xe1\x50\xe2\x50\xe3\x50\xe4\x50\xe5\x50\xe8\x50\xe9\x50\xea\x50\xeb\x50\xef\x50\xf0\x50\xf1\x50\xf2\x50\xf4\x50\xf6\x50\xf7\x50\xf8\x50\xf9\x50\xfa\x50\xfc\x50\xfd\x50\xfe\x50\xff\x51\x00\x51\x01\x51\x02", /* 8380 */ "\x00\x00\x51\x03\x51\x04\x51\x05\x51\x08\x51\x09\x51\x0a\x51\x0c\x51\x0d\x51\x0e\x51\x0f\x51\x10\x51\x11\x51\x13\x51\x14\x51\x15\x51\x16\x51\x17\x51\x18\x51\x19\x51\x1a\x51\x1b\x51\x1c\x51\x1d\x51\x1e\x51\x1f\x51\x20\x51\x22\x51\x23\x51\x24\x51\x25\x51\x26\x51\x27\x51\x28\x51\x29\x51\x2a\x51\x2b\x51\x2c\x51\x2d\x51\x2e\x51\x2f\x51\x30\x51\x31\x51\x32\x51\x33\x51\x34\x51\x35\x51\x36\x51\x37\x51\x38\x51\x39\x51\x3a\x51\x3b\x51\x3c\x51\x3d\x51\x3e\x51\x42\x51\x47\x51\x4a\x51\x4c\x51\x4e\x51\x4f\x51\x50\x51\x52\x51\x53\x51\x57\x51\x58\x51\x59\x51\x5b\x51\x5d\x51\x5e\x51\x5f\x51\x60\x51\x61\x51\x63\x51\x64\x51\x66\x51\x67\x51\x69\x51\x6a\x51\x6f\x51\x72\x51\x7a\x51\x7e\x51\x7f\x51\x83\x51\x84\x51\x86\x51\x87\x51\x8a\x51\x8b\x51\x8e\x51\x8f\x51\x90\x51\x91\x51\x93\x51\x94\x51\x98\x51\x9a\x51\x9d\x51\x9e\x51\x9f\x51\xa1\x51\xa3\x51\xa6\x51\xa7\x51\xa8\x51\xa9\x51\xaa\x51\xad\x51\xae\x51\xb4\x51\xb8\x51\xb9\x51\xba\x51\xbe\x51\xbf\x51\xc1\x51\xc2\x51\xc3\x51\xc5\x51\xc8\x51\xca\x51\xcd\x51\xce\x51\xd0\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd2\x51\xd3\x51\xd4\x51\xd5\x51\xd6\x51\xd7\x51\xd8\x51\xd9\x51\xda\x51\xdc\x51\xde\x51\xdf\x51\xe2\x51\xe3\x51\xe5\x51\xe6\x51\xe7\x51\xe8\x51\xe9\x51\xea\x51\xec\x51\xee\x51\xf1\x51\xf2\x51\xf4\x51\xf7\x51\xfe\x52\x04\x52\x05\x52\x09\x52\x0b\x52\x0c\x52\x0f\x52\x10\x52\x13\x52\x14\x52\x15\x52\x1c\x52\x1e\x52\x1f\x52\x21\x52\x22\x52\x23\x52\x25\x52\x26\x52\x27\x52\x2a\x52\x2c\x52\x2f\x52\x31\x52\x32\x52\x34\x52\x35\x52\x3c\x52\x3e\x52\x44\x52\x45\x52\x46\x52\x47\x52\x48\x52\x49\x52\x4b\x52\x4e", /* 8480 */ "\x00\x00\x52\x4f\x52\x52\x52\x53\x52\x55\x52\x57\x52\x58\x52\x59\x52\x5a\x52\x5b\x52\x5d\x52\x5f\x52\x60\x52\x62\x52\x63\x52\x64\x52\x66\x52\x68\x52\x6b\x52\x6c\x52\x6d\x52\x6e\x52\x70\x52\x71\x52\x73\x52\x74\x52\x75\x52\x76\x52\x77\x52\x78\x52\x79\x52\x7a\x52\x7b\x52\x7c\x52\x7e\x52\x80\x52\x83\x52\x84\x52\x85\x52\x86\x52\x87\x52\x89\x52\x8a\x52\x8b\x52\x8c\x52\x8d\x52\x8e\x52\x8f\x52\x91\x52\x92\x52\x94\x52\x95\x52\x96\x52\x97\x52\x98\x52\x99\x52\x9a\x52\x9c\x52\xa4\x52\xa5\x52\xa6\x52\xa7\x52\xae\x52\xaf\x52\xb0\x52\xb4\x52\xb5\x52\xb6\x52\xb7\x52\xb8\x52\xb9\x52\xba\x52\xbb\x52\xbc\x52\xbd\x52\xc0\x52\xc1\x52\xc2\x52\xc4\x52\xc5\x52\xc6\x52\xc8\x52\xca\x52\xcc\x52\xcd\x52\xce\x52\xcf\x52\xd1\x52\xd3\x52\xd4\x52\xd5\x52\xd7\x52\xd9\x52\xda\x52\xdb\x52\xdc\x52\xdd\x52\xde\x52\xe0\x52\xe1\x52\xe2\x52\xe3\x52\xe5\x52\xe6\x52\xe7\x52\xe8\x52\xe9\x52\xea\x52\xeb\x52\xec\x52\xed\x52\xee\x52\xef\x52\xf1\x52\xf2\x52\xf3\x52\xf4\x52\xf5\x52\xf6\x52\xf7\x52\xf8\x52\xfb\x52\xfc\x52\xfd\x53\x01\x53\x02\x00\x00\x00\x00", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x03\x53\x04\x53\x07\x53\x09\x53\x0a\x53\x0b\x53\x0c\x53\x0e\x53\x11\x53\x12\x53\x13\x53\x14\x53\x18\x53\x1b\x53\x1c\x53\x1e\x53\x1f\x53\x22\x53\x24\x53\x25\x53\x27\x53\x28\x53\x29\x53\x2b\x53\x2c\x53\x2d\x53\x2f\x53\x30\x53\x31\x53\x32\x53\x33\x53\x34\x53\x35\x53\x36\x53\x37\x53\x38\x53\x3c\x53\x3d\x53\x40\x53\x42\x53\x44\x53\x46\x53\x4b\x53\x4c\x53\x4d\x53\x50\x53\x54\x53\x58\x53\x59\x53\x5b\x53\x5d\x53\x65\x53\x68\x53\x6a\x53\x6c\x53\x6d\x53\x72\x53\x76\x53\x79\x53\x7b\x53\x7c\x53\x7d\x53\x7e", /* 8580 */ "\x00\x00\x53\x80\x53\x81\x53\x83\x53\x87\x53\x88\x53\x8a\x53\x8e\x53\x8f\x53\x90\x53\x91\x53\x92\x53\x93\x53\x94\x53\x96\x53\x97\x53\x99\x53\x9b\x53\x9c\x53\x9e\x53\xa0\x53\xa1\x53\xa4\x53\xa7\x53\xaa\x53\xab\x53\xac\x53\xad\x53\xaf\x53\xb0\x53\xb1\x53\xb2\x53\xb3\x53\xb4\x53\xb5\x53\xb7\x53\xb8\x53\xb9\x53\xba\x53\xbc\x53\xbd\x53\xbe\x53\xc0\x53\xc3\x53\xc4\x53\xc5\x53\xc6\x53\xc7\x53\xce\x53\xcf\x53\xd0\x53\xd2\x53\xd3\x53\xd5\x53\xda\x53\xdc\x53\xdd\x53\xde\x53\xe1\x53\xe2\x53\xe7\x53\xf4\x53\xfa\x53\xfe\x53\xff\x54\x00\x54\x02\x54\x05\x54\x07\x54\x0b\x54\x14\x54\x18\x54\x19\x54\x1a\x54\x1c\x54\x22\x54\x24\x54\x25\x54\x2a\x54\x30\x54\x33\x54\x36\x54\x37\x54\x3a\x54\x3d\x54\x3f\x54\x41\x54\x42\x54\x44\x54\x45\x54\x47\x54\x49\x54\x4c\x54\x4d\x54\x4e\x54\x4f\x54\x51\x54\x5a\x54\x5d\x54\x5e\x54\x5f\x54\x60\x54\x61\x54\x63\x54\x65\x54\x67\x54\x69\x54\x6a\x54\x6b\x54\x6c\x54\x6d\x54\x6e\x54\x6f\x54\x70\x54\x74\x54\x79\x54\x7a\x54\x7e\x54\x7f\x54\x81\x54\x83\x54\x85\x54\x87\x54\x88\x54\x89\x54\x8a\x00\x00\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8d\x54\x91\x54\x93\x54\x97\x54\x98\x54\x9c\x54\x9e\x54\x9f\x54\xa0\x54\xa1\x54\xa2\x54\xa5\x54\xae\x54\xb0\x54\xb2\x54\xb5\x54\xb6\x54\xb7\x54\xb9\x54\xba\x54\xbc\x54\xbe\x54\xc3\x54\xc5\x54\xca\x54\xcb\x54\xd6\x54\xd8\x54\xdb\x54\xe0\x54\xe1\x54\xe2\x54\xe3\x54\xe4\x54\xeb\x54\xec\x54\xef\x54\xf0\x54\xf1\x54\xf4\x54\xf5\x54\xf6\x54\xf7\x54\xf8\x54\xf9\x54\xfb\x54\xfe\x55\x00\x55\x02\x55\x03\x55\x04\x55\x05\x55\x08\x55\x0a\x55\x0b\x55\x0c\x55\x0d\x55\x0e\x55\x12\x55\x13\x55\x15\x55\x16\x55\x17", /* 8680 */ "\x00\x00\x55\x18\x55\x19\x55\x1a\x55\x1c\x55\x1d\x55\x1e\x55\x1f\x55\x21\x55\x25\x55\x26\x55\x28\x55\x29\x55\x2b\x55\x2d\x55\x32\x55\x34\x55\x35\x55\x36\x55\x38\x55\x39\x55\x3a\x55\x3b\x55\x3d\x55\x40\x55\x42\x55\x45\x55\x47\x55\x48\x55\x4b\x55\x4c\x55\x4d\x55\x4e\x55\x4f\x55\x51\x55\x52\x55\x53\x55\x54\x55\x57\x55\x58\x55\x59\x55\x5a\x55\x5b\x55\x5d\x55\x5e\x55\x5f\x55\x60\x55\x62\x55\x63\x55\x68\x55\x69\x55\x6b\x55\x6f\x55\x70\x55\x71\x55\x72\x55\x73\x55\x74\x55\x79\x55\x7a\x55\x7d\x55\x7f\x55\x85\x55\x86\x55\x8c\x55\x8d\x55\x8e\x55\x90\x55\x92\x55\x93\x55\x95\x55\x96\x55\x97\x55\x9a\x55\x9b\x55\x9e\x55\xa0\x55\xa1\x55\xa2\x55\xa3\x55\xa4\x55\xa5\x55\xa6\x55\xa8\x55\xa9\x55\xaa\x55\xab\x55\xac\x55\xad\x55\xae\x55\xaf\x55\xb0\x55\xb2\x55\xb4\x55\xb6\x55\xb8\x55\xba\x55\xbc\x55\xbf\x55\xc0\x55\xc1\x55\xc2\x55\xc3\x55\xc6\x55\xc7\x55\xc8\x55\xca\x55\xcb\x55\xce\x55\xcf\x55\xd0\x55\xd5\x55\xd7\x55\xd8\x55\xd9\x55\xda\x55\xdb\x55\xde\x55\xe0\x55\xe2\x55\xe7\x55\xe9\x55\xed\x55\xee\x55\xf0\x55\xf1\x00\x00\x00\x00", /* 8700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf4\x55\xf6\x55\xf8\x55\xf9\x55\xfa\x55\xfb\x55\xfc\x55\xff\x56\x02\x56\x03\x56\x04\x56\x05\x56\x06\x56\x07\x56\x0a\x56\x0b\x56\x0d\x56\x10\x56\x11\x56\x12\x56\x13\x56\x14\x56\x15\x56\x16\x56\x17\x56\x19\x56\x1a\x56\x1c\x56\x1d\x56\x20\x56\x21\x56\x22\x56\x25\x56\x26\x56\x28\x56\x29\x56\x2a\x56\x2b\x56\x2e\x56\x2f\x56\x30\x56\x33\x56\x35\x56\x37\x56\x38\x56\x3a\x56\x3c\x56\x3d\x56\x3e\x56\x40\x56\x41\x56\x42\x56\x43\x56\x44\x56\x45\x56\x46\x56\x47\x56\x48\x56\x49\x56\x4a\x56\x4b\x56\x4f\x56\x50", /* 8780 */ "\x00\x00\x56\x51\x56\x52\x56\x53\x56\x55\x56\x56\x56\x5a\x56\x5b\x56\x5d\x56\x5e\x56\x5f\x56\x60\x56\x61\x56\x63\x56\x65\x56\x66\x56\x67\x56\x6d\x56\x6e\x56\x6f\x56\x70\x56\x72\x56\x73\x56\x74\x56\x75\x56\x77\x56\x78\x56\x79\x56\x7a\x56\x7d\x56\x7e\x56\x7f\x56\x80\x56\x81\x56\x82\x56\x83\x56\x84\x56\x87\x56\x88\x56\x89\x56\x8a\x56\x8b\x56\x8c\x56\x8d\x56\x90\x56\x91\x56\x92\x56\x94\x56\x95\x56\x96\x56\x97\x56\x98\x56\x99\x56\x9a\x56\x9b\x56\x9c\x56\x9d\x56\x9e\x56\x9f\x56\xa0\x56\xa1\x56\xa2\x56\xa4\x56\xa5\x56\xa6\x56\xa7\x56\xa8\x56\xa9\x56\xaa\x56\xab\x56\xac\x56\xad\x56\xae\x56\xb0\x56\xb1\x56\xb2\x56\xb3\x56\xb4\x56\xb5\x56\xb6\x56\xb8\x56\xb9\x56\xba\x56\xbb\x56\xbd\x56\xbe\x56\xbf\x56\xc0\x56\xc1\x56\xc2\x56\xc3\x56\xc4\x56\xc5\x56\xc6\x56\xc7\x56\xc8\x56\xc9\x56\xcb\x56\xcc\x56\xcd\x56\xce\x56\xcf\x56\xd0\x56\xd1\x56\xd2\x56\xd3\x56\xd5\x56\xd6\x56\xd8\x56\xd9\x56\xdc\x56\xe3\x56\xe5\x56\xe6\x56\xe7\x56\xe8\x56\xe9\x56\xea\x56\xec\x56\xee\x56\xef\x56\xf2\x56\xf3\x56\xf6\x56\xf7\x56\xf8\x00\x00\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xfb\x56\xfc\x57\x00\x57\x01\x57\x02\x57\x05\x57\x07\x57\x0b\x57\x0c\x57\x0d\x57\x0e\x57\x0f\x57\x10\x57\x11\x57\x12\x57\x13\x57\x14\x57\x15\x57\x16\x57\x17\x57\x18\x57\x19\x57\x1a\x57\x1b\x57\x1d\x57\x1e\x57\x20\x57\x21\x57\x22\x57\x24\x57\x25\x57\x26\x57\x27\x57\x2b\x57\x31\x57\x32\x57\x34\x57\x35\x57\x36\x57\x37\x57\x38\x57\x3c\x57\x3d\x57\x3f\x57\x41\x57\x43\x57\x44\x57\x45\x57\x46\x57\x48\x57\x49\x57\x4b\x57\x52\x57\x53\x57\x54\x57\x55\x57\x56\x57\x58\x57\x59\x57\x62\x57\x63\x57\x65\x57\x67", /* 8880 */ "\x00\x00\x57\x6c\x57\x6e\x57\x70\x57\x71\x57\x72\x57\x74\x57\x75\x57\x78\x57\x79\x57\x7a\x57\x7d\x57\x7e\x57\x7f\x57\x80\x57\x81\x57\x87\x57\x88\x57\x89\x57\x8a\x57\x8d\x57\x8e\x57\x8f\x57\x90\x57\x91\x57\x94\x57\x95\x57\x96\x57\x97\x57\x98\x57\x99\x57\x9a\x57\x9c\x57\x9d\x57\x9e\x57\x9f\x57\xa5\x57\xa8\x57\xaa\x57\xac\x57\xaf\x57\xb0\x57\xb1\x57\xb3\x57\xb5\x57\xb6\x57\xb7\x57\xb9\x57\xba\x57\xbb\x57\xbc\x57\xbd\x57\xbe\x57\xbf\x57\xc0\x57\xc1\x57\xc4\x57\xc5\x57\xc6\x57\xc7\x57\xc8\x57\xc9\x57\xca\x57\xcc\x57\xcd\x57\xd0\x57\xd1\x57\xd3\x57\xd6\x57\xd7\x57\xdb\x57\xdc\x57\xde\x57\xe1\x57\xe2\x57\xe3\x57\xe5\x57\xe6\x57\xe7\x57\xe8\x57\xe9\x57\xea\x57\xeb\x57\xec\x57\xee\x57\xf0\x57\xf1\x57\xf2\x57\xf3\x57\xf5\x57\xf6\x57\xf7\x57\xfb\x57\xfc\x57\xfe\x57\xff\x58\x01\x58\x03\x58\x04\x58\x05\x58\x08\x58\x09\x58\x0a\x58\x0c\x58\x0e\x58\x0f\x58\x10\x58\x12\x58\x13\x58\x14\x58\x16\x58\x17\x58\x18\x58\x1a\x58\x1b\x58\x1c\x58\x1d\x58\x1f\x58\x22\x58\x23\x58\x25\x58\x26\x58\x27\x58\x28\x58\x29\x58\x2b\x00\x00\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x2c\x58\x2d\x58\x2e\x58\x2f\x58\x31\x58\x32\x58\x33\x58\x34\x58\x36\x58\x37\x58\x38\x58\x39\x58\x3a\x58\x3b\x58\x3c\x58\x3d\x58\x3e\x58\x3f\x58\x40\x58\x41\x58\x42\x58\x43\x58\x45\x58\x46\x58\x47\x58\x48\x58\x49\x58\x4a\x58\x4b\x58\x4e\x58\x4f\x58\x50\x58\x52\x58\x53\x58\x55\x58\x56\x58\x57\x58\x59\x58\x5a\x58\x5b\x58\x5c\x58\x5d\x58\x5f\x58\x60\x58\x61\x58\x62\x58\x63\x58\x64\x58\x66\x58\x67\x58\x68\x58\x69\x58\x6a\x58\x6d\x58\x6e\x58\x6f\x58\x70\x58\x71\x58\x72\x58\x73\x58\x74\x58\x75\x58\x76", /* 8980 */ "\x00\x00\x58\x77\x58\x78\x58\x79\x58\x7a\x58\x7b\x58\x7c\x58\x7d\x58\x7f\x58\x82\x58\x84\x58\x86\x58\x87\x58\x88\x58\x8a\x58\x8b\x58\x8c\x58\x8d\x58\x8e\x58\x8f\x58\x90\x58\x91\x58\x94\x58\x95\x58\x96\x58\x97\x58\x98\x58\x9b\x58\x9c\x58\x9d\x58\xa0\x58\xa1\x58\xa2\x58\xa3\x58\xa4\x58\xa5\x58\xa6\x58\xa7\x58\xaa\x58\xab\x58\xac\x58\xad\x58\xae\x58\xaf\x58\xb0\x58\xb1\x58\xb2\x58\xb3\x58\xb4\x58\xb5\x58\xb6\x58\xb7\x58\xb8\x58\xb9\x58\xba\x58\xbb\x58\xbd\x58\xbe\x58\xbf\x58\xc0\x58\xc2\x58\xc3\x58\xc4\x58\xc6\x58\xc7\x58\xc8\x58\xc9\x58\xca\x58\xcb\x58\xcc\x58\xcd\x58\xce\x58\xcf\x58\xd0\x58\xd2\x58\xd3\x58\xd4\x58\xd6\x58\xd7\x58\xd8\x58\xd9\x58\xda\x58\xdb\x58\xdc\x58\xdd\x58\xde\x58\xdf\x58\xe0\x58\xe1\x58\xe2\x58\xe3\x58\xe5\x58\xe6\x58\xe7\x58\xe8\x58\xe9\x58\xea\x58\xed\x58\xef\x58\xf1\x58\xf2\x58\xf4\x58\xf5\x58\xf7\x58\xf8\x58\xfa\x58\xfb\x58\xfc\x58\xfd\x58\xfe\x58\xff\x59\x00\x59\x01\x59\x03\x59\x05\x59\x06\x59\x08\x59\x09\x59\x0a\x59\x0b\x59\x0c\x59\x0e\x59\x10\x59\x11\x59\x12\x59\x13\x00\x00\x00\x00", /* 8a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x17\x59\x18\x59\x1b\x59\x1d\x59\x1e\x59\x20\x59\x21\x59\x22\x59\x23\x59\x26\x59\x28\x59\x2c\x59\x30\x59\x32\x59\x33\x59\x35\x59\x36\x59\x3b\x59\x3d\x59\x3e\x59\x3f\x59\x40\x59\x43\x59\x45\x59\x46\x59\x4a\x59\x4c\x59\x4d\x59\x50\x59\x52\x59\x53\x59\x59\x59\x5b\x59\x5c\x59\x5d\x59\x5e\x59\x5f\x59\x61\x59\x63\x59\x64\x59\x66\x59\x67\x59\x68\x59\x69\x59\x6a\x59\x6b\x59\x6c\x59\x6d\x59\x6e\x59\x6f\x59\x70\x59\x71\x59\x72\x59\x75\x59\x77\x59\x7a\x59\x7b\x59\x7c\x59\x7e\x59\x7f\x59\x80\x59\x85\x59\x89", /* 8a80 */ "\x00\x00\x59\x8b\x59\x8c\x59\x8e\x59\x8f\x59\x90\x59\x91\x59\x94\x59\x95\x59\x98\x59\x9a\x59\x9b\x59\x9c\x59\x9d\x59\x9f\x59\xa0\x59\xa1\x59\xa2\x59\xa6\x59\xa7\x59\xac\x59\xad\x59\xb0\x59\xb1\x59\xb3\x59\xb4\x59\xb5\x59\xb6\x59\xb7\x59\xb8\x59\xba\x59\xbc\x59\xbd\x59\xbf\x59\xc0\x59\xc1\x59\xc2\x59\xc3\x59\xc4\x59\xc5\x59\xc7\x59\xc8\x59\xc9\x59\xcc\x59\xcd\x59\xce\x59\xcf\x59\xd5\x59\xd6\x59\xd9\x59\xdb\x59\xde\x59\xdf\x59\xe0\x59\xe1\x59\xe2\x59\xe4\x59\xe6\x59\xe7\x59\xe9\x59\xea\x59\xeb\x59\xed\x59\xee\x59\xef\x59\xf0\x59\xf1\x59\xf2\x59\xf3\x59\xf4\x59\xf5\x59\xf6\x59\xf7\x59\xf8\x59\xfa\x59\xfc\x59\xfd\x59\xfe\x5a\x00\x5a\x02\x5a\x0a\x5a\x0b\x5a\x0d\x5a\x0e\x5a\x0f\x5a\x10\x5a\x12\x5a\x14\x5a\x15\x5a\x16\x5a\x17\x5a\x19\x5a\x1a\x5a\x1b\x5a\x1d\x5a\x1e\x5a\x21\x5a\x22\x5a\x24\x5a\x26\x5a\x27\x5a\x28\x5a\x2a\x5a\x2b\x5a\x2c\x5a\x2d\x5a\x2e\x5a\x2f\x5a\x30\x5a\x33\x5a\x35\x5a\x37\x5a\x38\x5a\x39\x5a\x3a\x5a\x3b\x5a\x3d\x5a\x3e\x5a\x3f\x5a\x41\x5a\x42\x5a\x43\x5a\x44\x5a\x45\x5a\x47\x5a\x48\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4b\x5a\x4c\x5a\x4d\x5a\x4e\x5a\x4f\x5a\x50\x5a\x51\x5a\x52\x5a\x53\x5a\x54\x5a\x56\x5a\x57\x5a\x58\x5a\x59\x5a\x5b\x5a\x5c\x5a\x5d\x5a\x5e\x5a\x5f\x5a\x60\x5a\x61\x5a\x63\x5a\x64\x5a\x65\x5a\x66\x5a\x68\x5a\x69\x5a\x6b\x5a\x6c\x5a\x6d\x5a\x6e\x5a\x6f\x5a\x70\x5a\x71\x5a\x72\x5a\x73\x5a\x78\x5a\x79\x5a\x7b\x5a\x7c\x5a\x7d\x5a\x7e\x5a\x80\x5a\x81\x5a\x82\x5a\x83\x5a\x84\x5a\x85\x5a\x86\x5a\x87\x5a\x88\x5a\x89\x5a\x8a\x5a\x8b\x5a\x8c\x5a\x8d\x5a\x8e\x5a\x8f\x5a\x90\x5a\x91\x5a\x93\x5a\x94\x5a\x95", /* 8b80 */ "\x00\x00\x5a\x96\x5a\x97\x5a\x98\x5a\x99\x5a\x9c\x5a\x9d\x5a\x9e\x5a\x9f\x5a\xa0\x5a\xa1\x5a\xa2\x5a\xa3\x5a\xa4\x5a\xa5\x5a\xa6\x5a\xa7\x5a\xa8\x5a\xa9\x5a\xab\x5a\xac\x5a\xad\x5a\xae\x5a\xaf\x5a\xb0\x5a\xb1\x5a\xb4\x5a\xb6\x5a\xb7\x5a\xb9\x5a\xba\x5a\xbb\x5a\xbc\x5a\xbd\x5a\xbf\x5a\xc0\x5a\xc3\x5a\xc4\x5a\xc5\x5a\xc6\x5a\xc7\x5a\xc8\x5a\xca\x5a\xcb\x5a\xcd\x5a\xce\x5a\xcf\x5a\xd0\x5a\xd1\x5a\xd3\x5a\xd5\x5a\xd7\x5a\xd9\x5a\xda\x5a\xdb\x5a\xdd\x5a\xde\x5a\xdf\x5a\xe2\x5a\xe4\x5a\xe5\x5a\xe7\x5a\xe8\x5a\xea\x5a\xec\x5a\xed\x5a\xee\x5a\xef\x5a\xf0\x5a\xf2\x5a\xf3\x5a\xf4\x5a\xf5\x5a\xf6\x5a\xf7\x5a\xf8\x5a\xf9\x5a\xfa\x5a\xfb\x5a\xfc\x5a\xfd\x5a\xfe\x5a\xff\x5b\x00\x5b\x01\x5b\x02\x5b\x03\x5b\x04\x5b\x05\x5b\x06\x5b\x07\x5b\x08\x5b\x0a\x5b\x0b\x5b\x0c\x5b\x0d\x5b\x0e\x5b\x0f\x5b\x10\x5b\x11\x5b\x12\x5b\x13\x5b\x14\x5b\x15\x5b\x18\x5b\x19\x5b\x1a\x5b\x1b\x5b\x1c\x5b\x1d\x5b\x1e\x5b\x1f\x5b\x20\x5b\x21\x5b\x22\x5b\x23\x5b\x24\x5b\x25\x5b\x26\x5b\x27\x5b\x28\x5b\x29\x5b\x2a\x5b\x2b\x5b\x2c\x5b\x2d\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x2e\x5b\x2f\x5b\x30\x5b\x31\x5b\x33\x5b\x35\x5b\x36\x5b\x38\x5b\x39\x5b\x3a\x5b\x3b\x5b\x3c\x5b\x3d\x5b\x3e\x5b\x3f\x5b\x41\x5b\x42\x5b\x43\x5b\x44\x5b\x45\x5b\x46\x5b\x47\x5b\x48\x5b\x49\x5b\x4a\x5b\x4b\x5b\x4c\x5b\x4d\x5b\x4e\x5b\x4f\x5b\x52\x5b\x56\x5b\x5e\x5b\x60\x5b\x61\x5b\x67\x5b\x68\x5b\x6b\x5b\x6d\x5b\x6e\x5b\x6f\x5b\x72\x5b\x74\x5b\x76\x5b\x77\x5b\x78\x5b\x79\x5b\x7b\x5b\x7c\x5b\x7e\x5b\x7f\x5b\x82\x5b\x86\x5b\x8a\x5b\x8d\x5b\x8e\x5b\x90\x5b\x91\x5b\x92\x5b\x94\x5b\x96\x5b\x9f\x5b\xa7", /* 8c80 */ "\x00\x00\x5b\xa8\x5b\xa9\x5b\xac\x5b\xad\x5b\xae\x5b\xaf\x5b\xb1\x5b\xb2\x5b\xb7\x5b\xba\x5b\xbb\x5b\xbc\x5b\xc0\x5b\xc1\x5b\xc3\x5b\xc8\x5b\xc9\x5b\xca\x5b\xcb\x5b\xcd\x5b\xce\x5b\xcf\x5b\xd1\x5b\xd4\x5b\xd5\x5b\xd6\x5b\xd7\x5b\xd8\x5b\xd9\x5b\xda\x5b\xdb\x5b\xdc\x5b\xe0\x5b\xe2\x5b\xe3\x5b\xe6\x5b\xe7\x5b\xe9\x5b\xea\x5b\xeb\x5b\xec\x5b\xed\x5b\xef\x5b\xf1\x5b\xf2\x5b\xf3\x5b\xf4\x5b\xf5\x5b\xf6\x5b\xf7\x5b\xfd\x5b\xfe\x5c\x00\x5c\x02\x5c\x03\x5c\x05\x5c\x07\x5c\x08\x5c\x0b\x5c\x0c\x5c\x0d\x5c\x0e\x5c\x10\x5c\x12\x5c\x13\x5c\x17\x5c\x19\x5c\x1b\x5c\x1e\x5c\x1f\x5c\x20\x5c\x21\x5c\x23\x5c\x26\x5c\x28\x5c\x29\x5c\x2a\x5c\x2b\x5c\x2d\x5c\x2e\x5c\x2f\x5c\x30\x5c\x32\x5c\x33\x5c\x35\x5c\x36\x5c\x37\x5c\x43\x5c\x44\x5c\x46\x5c\x47\x5c\x4c\x5c\x4d\x5c\x52\x5c\x53\x5c\x54\x5c\x56\x5c\x57\x5c\x58\x5c\x5a\x5c\x5b\x5c\x5c\x5c\x5d\x5c\x5f\x5c\x62\x5c\x64\x5c\x67\x5c\x68\x5c\x69\x5c\x6a\x5c\x6b\x5c\x6c\x5c\x6d\x5c\x70\x5c\x72\x5c\x73\x5c\x74\x5c\x75\x5c\x76\x5c\x77\x5c\x78\x5c\x7b\x5c\x7c\x5c\x7d\x5c\x7e\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x80\x5c\x83\x5c\x84\x5c\x85\x5c\x86\x5c\x87\x5c\x89\x5c\x8a\x5c\x8b\x5c\x8e\x5c\x8f\x5c\x92\x5c\x93\x5c\x95\x5c\x9d\x5c\x9e\x5c\x9f\x5c\xa0\x5c\xa1\x5c\xa4\x5c\xa5\x5c\xa6\x5c\xa7\x5c\xa8\x5c\xaa\x5c\xae\x5c\xaf\x5c\xb0\x5c\xb2\x5c\xb4\x5c\xb6\x5c\xb9\x5c\xba\x5c\xbb\x5c\xbc\x5c\xbe\x5c\xc0\x5c\xc2\x5c\xc3\x5c\xc5\x5c\xc6\x5c\xc7\x5c\xc8\x5c\xc9\x5c\xca\x5c\xcc\x5c\xcd\x5c\xce\x5c\xcf\x5c\xd0\x5c\xd1\x5c\xd3\x5c\xd4\x5c\xd5\x5c\xd6\x5c\xd7\x5c\xd8\x5c\xda\x5c\xdb\x5c\xdc\x5c\xdd\x5c\xde\x5c\xdf", /* 8d80 */ "\x00\x00\x5c\xe0\x5c\xe2\x5c\xe3\x5c\xe7\x5c\xe9\x5c\xeb\x5c\xec\x5c\xee\x5c\xef\x5c\xf1\x5c\xf2\x5c\xf3\x5c\xf4\x5c\xf5\x5c\xf6\x5c\xf7\x5c\xf8\x5c\xf9\x5c\xfa\x5c\xfc\x5c\xfd\x5c\xfe\x5c\xff\x5d\x00\x5d\x01\x5d\x04\x5d\x05\x5d\x08\x5d\x09\x5d\x0a\x5d\x0b\x5d\x0c\x5d\x0d\x5d\x0f\x5d\x10\x5d\x11\x5d\x12\x5d\x13\x5d\x15\x5d\x17\x5d\x18\x5d\x19\x5d\x1a\x5d\x1c\x5d\x1d\x5d\x1f\x5d\x20\x5d\x21\x5d\x22\x5d\x23\x5d\x25\x5d\x28\x5d\x2a\x5d\x2b\x5d\x2c\x5d\x2f\x5d\x30\x5d\x31\x5d\x32\x5d\x33\x5d\x35\x5d\x36\x5d\x37\x5d\x38\x5d\x39\x5d\x3a\x5d\x3b\x5d\x3c\x5d\x3f\x5d\x40\x5d\x41\x5d\x42\x5d\x43\x5d\x44\x5d\x45\x5d\x46\x5d\x48\x5d\x49\x5d\x4d\x5d\x4e\x5d\x4f\x5d\x50\x5d\x51\x5d\x52\x5d\x53\x5d\x54\x5d\x55\x5d\x56\x5d\x57\x5d\x59\x5d\x5a\x5d\x5c\x5d\x5e\x5d\x5f\x5d\x60\x5d\x61\x5d\x62\x5d\x63\x5d\x64\x5d\x65\x5d\x66\x5d\x67\x5d\x68\x5d\x6a\x5d\x6d\x5d\x6e\x5d\x70\x5d\x71\x5d\x72\x5d\x73\x5d\x75\x5d\x76\x5d\x77\x5d\x78\x5d\x79\x5d\x7a\x5d\x7b\x5d\x7c\x5d\x7d\x5d\x7e\x5d\x7f\x5d\x80\x5d\x81\x5d\x83\x5d\x84\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x85\x5d\x86\x5d\x87\x5d\x88\x5d\x89\x5d\x8a\x5d\x8b\x5d\x8c\x5d\x8d\x5d\x8e\x5d\x8f\x5d\x90\x5d\x91\x5d\x92\x5d\x93\x5d\x94\x5d\x95\x5d\x96\x5d\x97\x5d\x98\x5d\x9a\x5d\x9b\x5d\x9c\x5d\x9e\x5d\x9f\x5d\xa0\x5d\xa1\x5d\xa2\x5d\xa3\x5d\xa4\x5d\xa5\x5d\xa6\x5d\xa7\x5d\xa8\x5d\xa9\x5d\xaa\x5d\xab\x5d\xac\x5d\xad\x5d\xae\x5d\xaf\x5d\xb0\x5d\xb1\x5d\xb2\x5d\xb3\x5d\xb4\x5d\xb5\x5d\xb6\x5d\xb8\x5d\xb9\x5d\xba\x5d\xbb\x5d\xbc\x5d\xbd\x5d\xbe\x5d\xbf\x5d\xc0\x5d\xc1\x5d\xc2\x5d\xc3\x5d\xc4\x5d\xc6\x5d\xc7", /* 8e80 */ "\x00\x00\x5d\xc8\x5d\xc9\x5d\xca\x5d\xcb\x5d\xcc\x5d\xce\x5d\xcf\x5d\xd0\x5d\xd1\x5d\xd2\x5d\xd3\x5d\xd4\x5d\xd5\x5d\xd6\x5d\xd7\x5d\xd8\x5d\xd9\x5d\xda\x5d\xdc\x5d\xdf\x5d\xe0\x5d\xe3\x5d\xe4\x5d\xea\x5d\xec\x5d\xed\x5d\xf0\x5d\xf5\x5d\xf6\x5d\xf8\x5d\xf9\x5d\xfa\x5d\xfb\x5d\xfc\x5d\xff\x5e\x00\x5e\x04\x5e\x07\x5e\x09\x5e\x0a\x5e\x0b\x5e\x0d\x5e\x0e\x5e\x12\x5e\x13\x5e\x17\x5e\x1e\x5e\x1f\x5e\x20\x5e\x21\x5e\x22\x5e\x23\x5e\x24\x5e\x25\x5e\x28\x5e\x29\x5e\x2a\x5e\x2b\x5e\x2c\x5e\x2f\x5e\x30\x5e\x32\x5e\x33\x5e\x34\x5e\x35\x5e\x36\x5e\x39\x5e\x3a\x5e\x3e\x5e\x3f\x5e\x40\x5e\x41\x5e\x43\x5e\x46\x5e\x47\x5e\x48\x5e\x49\x5e\x4a\x5e\x4b\x5e\x4d\x5e\x4e\x5e\x4f\x5e\x50\x5e\x51\x5e\x52\x5e\x53\x5e\x56\x5e\x57\x5e\x58\x5e\x59\x5e\x5a\x5e\x5c\x5e\x5d\x5e\x5f\x5e\x60\x5e\x63\x5e\x64\x5e\x65\x5e\x66\x5e\x67\x5e\x68\x5e\x69\x5e\x6a\x5e\x6b\x5e\x6c\x5e\x6d\x5e\x6e\x5e\x6f\x5e\x70\x5e\x71\x5e\x75\x5e\x77\x5e\x79\x5e\x7e\x5e\x81\x5e\x82\x5e\x83\x5e\x85\x5e\x88\x5e\x89\x5e\x8c\x5e\x8d\x5e\x8e\x5e\x92\x5e\x98\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9b\x5e\x9d\x5e\xa1\x5e\xa2\x5e\xa3\x5e\xa4\x5e\xa8\x5e\xa9\x5e\xaa\x5e\xab\x5e\xac\x5e\xae\x5e\xaf\x5e\xb0\x5e\xb1\x5e\xb2\x5e\xb4\x5e\xba\x5e\xbb\x5e\xbc\x5e\xbd\x5e\xbf\x5e\xc0\x5e\xc1\x5e\xc2\x5e\xc3\x5e\xc4\x5e\xc5\x5e\xc6\x5e\xc7\x5e\xc8\x5e\xcb\x5e\xcc\x5e\xcd\x5e\xce\x5e\xcf\x5e\xd0\x5e\xd4\x5e\xd5\x5e\xd7\x5e\xd8\x5e\xd9\x5e\xda\x5e\xdc\x5e\xdd\x5e\xde\x5e\xdf\x5e\xe0\x5e\xe1\x5e\xe2\x5e\xe3\x5e\xe4\x5e\xe5\x5e\xe6\x5e\xe7\x5e\xe9\x5e\xeb\x5e\xec\x5e\xed\x5e\xee\x5e\xef\x5e\xf0\x5e\xf1", /* 8f80 */ "\x00\x00\x5e\xf2\x5e\xf3\x5e\xf5\x5e\xf8\x5e\xf9\x5e\xfb\x5e\xfc\x5e\xfd\x5f\x05\x5f\x06\x5f\x07\x5f\x09\x5f\x0c\x5f\x0d\x5f\x0e\x5f\x10\x5f\x12\x5f\x14\x5f\x16\x5f\x19\x5f\x1a\x5f\x1c\x5f\x1d\x5f\x1e\x5f\x21\x5f\x22\x5f\x23\x5f\x24\x5f\x28\x5f\x2b\x5f\x2c\x5f\x2e\x5f\x30\x5f\x32\x5f\x33\x5f\x34\x5f\x35\x5f\x36\x5f\x37\x5f\x38\x5f\x3b\x5f\x3d\x5f\x3e\x5f\x3f\x5f\x41\x5f\x42\x5f\x43\x5f\x44\x5f\x45\x5f\x46\x5f\x47\x5f\x48\x5f\x49\x5f\x4a\x5f\x4b\x5f\x4c\x5f\x4d\x5f\x4e\x5f\x4f\x5f\x51\x5f\x54\x5f\x59\x5f\x5a\x5f\x5b\x5f\x5c\x5f\x5e\x5f\x5f\x5f\x60\x5f\x63\x5f\x65\x5f\x67\x5f\x68\x5f\x6b\x5f\x6e\x5f\x6f\x5f\x72\x5f\x74\x5f\x75\x5f\x76\x5f\x78\x5f\x7a\x5f\x7d\x5f\x7e\x5f\x7f\x5f\x83\x5f\x86\x5f\x8d\x5f\x8e\x5f\x8f\x5f\x91\x5f\x93\x5f\x94\x5f\x96\x5f\x9a\x5f\x9b\x5f\x9d\x5f\x9e\x5f\x9f\x5f\xa0\x5f\xa2\x5f\xa3\x5f\xa4\x5f\xa5\x5f\xa6\x5f\xa7\x5f\xa9\x5f\xab\x5f\xac\x5f\xaf\x5f\xb0\x5f\xb1\x5f\xb2\x5f\xb3\x5f\xb4\x5f\xb6\x5f\xb8\x5f\xb9\x5f\xba\x5f\xbb\x5f\xbe\x5f\xbf\x5f\xc0\x5f\xc1\x5f\xc2\x5f\xc7\x00\x00\x00\x00", /* 9000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc8\x5f\xca\x5f\xcb\x5f\xce\x5f\xd3\x5f\xd4\x5f\xd5\x5f\xda\x5f\xdb\x5f\xdc\x5f\xde\x5f\xdf\x5f\xe2\x5f\xe3\x5f\xe5\x5f\xe6\x5f\xe8\x5f\xe9\x5f\xec\x5f\xef\x5f\xf0\x5f\xf2\x5f\xf3\x5f\xf4\x5f\xf6\x5f\xf7\x5f\xf9\x5f\xfa\x5f\xfc\x60\x07\x60\x08\x60\x09\x60\x0b\x60\x0c\x60\x10\x60\x11\x60\x13\x60\x17\x60\x18\x60\x1a\x60\x1e\x60\x1f\x60\x22\x60\x23\x60\x24\x60\x2c\x60\x2d\x60\x2e\x60\x30\x60\x31\x60\x32\x60\x33\x60\x34\x60\x36\x60\x37\x60\x38\x60\x39\x60\x3a\x60\x3d\x60\x3e\x60\x40\x60\x44\x60\x45", /* 9080 */ "\x00\x00\x60\x46\x60\x47\x60\x48\x60\x49\x60\x4a\x60\x4c\x60\x4e\x60\x4f\x60\x51\x60\x53\x60\x54\x60\x56\x60\x57\x60\x58\x60\x5b\x60\x5c\x60\x5e\x60\x5f\x60\x60\x60\x61\x60\x65\x60\x66\x60\x6e\x60\x71\x60\x72\x60\x74\x60\x75\x60\x77\x60\x7e\x60\x80\x60\x81\x60\x82\x60\x85\x60\x86\x60\x87\x60\x88\x60\x8a\x60\x8b\x60\x8e\x60\x8f\x60\x90\x60\x91\x60\x93\x60\x95\x60\x97\x60\x98\x60\x99\x60\x9c\x60\x9e\x60\xa1\x60\xa2\x60\xa4\x60\xa5\x60\xa7\x60\xa9\x60\xaa\x60\xae\x60\xb0\x60\xb3\x60\xb5\x60\xb6\x60\xb7\x60\xb9\x60\xba\x60\xbd\x60\xbe\x60\xbf\x60\xc0\x60\xc1\x60\xc2\x60\xc3\x60\xc4\x60\xc7\x60\xc8\x60\xc9\x60\xcc\x60\xcd\x60\xce\x60\xcf\x60\xd0\x60\xd2\x60\xd3\x60\xd4\x60\xd6\x60\xd7\x60\xd9\x60\xdb\x60\xde\x60\xe1\x60\xe2\x60\xe3\x60\xe4\x60\xe5\x60\xea\x60\xf1\x60\xf2\x60\xf5\x60\xf7\x60\xf8\x60\xfb\x60\xfc\x60\xfd\x60\xfe\x60\xff\x61\x02\x61\x03\x61\x04\x61\x05\x61\x07\x61\x0a\x61\x0b\x61\x0c\x61\x10\x61\x11\x61\x12\x61\x13\x61\x14\x61\x16\x61\x17\x61\x18\x61\x19\x61\x1b\x61\x1c\x61\x1d\x61\x1e\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x21\x61\x22\x61\x25\x61\x28\x61\x29\x61\x2a\x61\x2c\x61\x2d\x61\x2e\x61\x2f\x61\x30\x61\x31\x61\x32\x61\x33\x61\x34\x61\x35\x61\x36\x61\x37\x61\x38\x61\x39\x61\x3a\x61\x3b\x61\x3c\x61\x3d\x61\x3e\x61\x40\x61\x41\x61\x42\x61\x43\x61\x44\x61\x45\x61\x46\x61\x47\x61\x49\x61\x4b\x61\x4d\x61\x4f\x61\x50\x61\x52\x61\x53\x61\x54\x61\x56\x61\x57\x61\x58\x61\x59\x61\x5a\x61\x5b\x61\x5c\x61\x5e\x61\x5f\x61\x60\x61\x61\x61\x63\x61\x64\x61\x65\x61\x66\x61\x69\x61\x6a\x61\x6b\x61\x6c\x61\x6d\x61\x6e\x61\x6f", /* 9180 */ "\x00\x00\x61\x71\x61\x72\x61\x73\x61\x74\x61\x76\x61\x78\x61\x79\x61\x7a\x61\x7b\x61\x7c\x61\x7d\x61\x7e\x61\x7f\x61\x80\x61\x81\x61\x82\x61\x83\x61\x84\x61\x85\x61\x86\x61\x87\x61\x88\x61\x89\x61\x8a\x61\x8c\x61\x8d\x61\x8f\x61\x90\x61\x91\x61\x92\x61\x93\x61\x95\x61\x96\x61\x97\x61\x98\x61\x99\x61\x9a\x61\x9b\x61\x9c\x61\x9e\x61\x9f\x61\xa0\x61\xa1\x61\xa2\x61\xa3\x61\xa4\x61\xa5\x61\xa6\x61\xaa\x61\xab\x61\xad\x61\xae\x61\xaf\x61\xb0\x61\xb1\x61\xb2\x61\xb3\x61\xb4\x61\xb5\x61\xb6\x61\xb8\x61\xb9\x61\xba\x61\xbb\x61\xbc\x61\xbd\x61\xbf\x61\xc0\x61\xc1\x61\xc3\x61\xc4\x61\xc5\x61\xc6\x61\xc7\x61\xc9\x61\xcc\x61\xcd\x61\xce\x61\xcf\x61\xd0\x61\xd3\x61\xd5\x61\xd6\x61\xd7\x61\xd8\x61\xd9\x61\xda\x61\xdb\x61\xdc\x61\xdd\x61\xde\x61\xdf\x61\xe0\x61\xe1\x61\xe2\x61\xe3\x61\xe4\x61\xe5\x61\xe7\x61\xe8\x61\xe9\x61\xea\x61\xeb\x61\xec\x61\xed\x61\xee\x61\xef\x61\xf0\x61\xf1\x61\xf2\x61\xf3\x61\xf4\x61\xf6\x61\xf7\x61\xf8\x61\xf9\x61\xfa\x61\xfb\x61\xfc\x61\xfd\x61\xfe\x62\x00\x62\x01\x62\x02\x62\x03\x00\x00\x00\x00", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x04\x62\x05\x62\x07\x62\x09\x62\x13\x62\x14\x62\x19\x62\x1c\x62\x1d\x62\x1e\x62\x20\x62\x23\x62\x26\x62\x27\x62\x28\x62\x29\x62\x2b\x62\x2d\x62\x2f\x62\x30\x62\x31\x62\x32\x62\x35\x62\x36\x62\x38\x62\x39\x62\x3a\x62\x3b\x62\x3c\x62\x42\x62\x44\x62\x45\x62\x46\x62\x4a\x62\x4f\x62\x50\x62\x55\x62\x56\x62\x57\x62\x59\x62\x5a\x62\x5c\x62\x5d\x62\x5e\x62\x5f\x62\x60\x62\x61\x62\x62\x62\x64\x62\x65\x62\x68\x62\x71\x62\x72\x62\x74\x62\x75\x62\x77\x62\x78\x62\x7a\x62\x7b\x62\x7d\x62\x81\x62\x82\x62\x83", /* 9280 */ "\x00\x00\x62\x85\x62\x86\x62\x87\x62\x88\x62\x8b\x62\x8c\x62\x8d\x62\x8e\x62\x8f\x62\x90\x62\x94\x62\x99\x62\x9c\x62\x9d\x62\x9e\x62\xa3\x62\xa6\x62\xa7\x62\xa9\x62\xaa\x62\xad\x62\xae\x62\xaf\x62\xb0\x62\xb2\x62\xb3\x62\xb4\x62\xb6\x62\xb7\x62\xb8\x62\xba\x62\xbe\x62\xc0\x62\xc1\x62\xc3\x62\xcb\x62\xcf\x62\xd1\x62\xd5\x62\xdd\x62\xde\x62\xe0\x62\xe1\x62\xe4\x62\xea\x62\xeb\x62\xf0\x62\xf2\x62\xf5\x62\xf8\x62\xf9\x62\xfa\x62\xfb\x63\x00\x63\x03\x63\x04\x63\x05\x63\x06\x63\x0a\x63\x0b\x63\x0c\x63\x0d\x63\x0f\x63\x10\x63\x12\x63\x13\x63\x14\x63\x15\x63\x17\x63\x18\x63\x19\x63\x1c\x63\x26\x63\x27\x63\x29\x63\x2c\x63\x2d\x63\x2e\x63\x30\x63\x31\x63\x33\x63\x34\x63\x35\x63\x36\x63\x37\x63\x38\x63\x3b\x63\x3c\x63\x3e\x63\x3f\x63\x40\x63\x41\x63\x44\x63\x47\x63\x48\x63\x4a\x63\x51\x63\x52\x63\x53\x63\x54\x63\x56\x63\x57\x63\x58\x63\x59\x63\x5a\x63\x5b\x63\x5c\x63\x5d\x63\x60\x63\x64\x63\x65\x63\x66\x63\x68\x63\x6a\x63\x6b\x63\x6c\x63\x6f\x63\x70\x63\x72\x63\x73\x63\x74\x63\x75\x63\x78\x63\x79\x63\x7c\x00\x00\x00\x00", /* 9300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7d\x63\x7e\x63\x7f\x63\x81\x63\x83\x63\x84\x63\x85\x63\x86\x63\x8b\x63\x8d\x63\x91\x63\x93\x63\x94\x63\x95\x63\x97\x63\x99\x63\x9a\x63\x9b\x63\x9c\x63\x9d\x63\x9e\x63\x9f\x63\xa1\x63\xa4\x63\xa6\x63\xab\x63\xaf\x63\xb1\x63\xb2\x63\xb5\x63\xb6\x63\xb9\x63\xbb\x63\xbd\x63\xbf\x63\xc0\x63\xc1\x63\xc2\x63\xc3\x63\xc5\x63\xc7\x63\xc8\x63\xca\x63\xcb\x63\xcc\x63\xd1\x63\xd3\x63\xd4\x63\xd5\x63\xd7\x63\xd8\x63\xd9\x63\xda\x63\xdb\x63\xdc\x63\xdd\x63\xdf\x63\xe2\x63\xe4\x63\xe5\x63\xe6\x63\xe7\x63\xe8", /* 9380 */ "\x00\x00\x63\xeb\x63\xec\x63\xee\x63\xef\x63\xf0\x63\xf1\x63\xf3\x63\xf5\x63\xf7\x63\xf9\x63\xfa\x63\xfb\x63\xfc\x63\xfe\x64\x03\x64\x04\x64\x06\x64\x07\x64\x08\x64\x09\x64\x0a\x64\x0d\x64\x0e\x64\x11\x64\x12\x64\x15\x64\x16\x64\x17\x64\x18\x64\x19\x64\x1a\x64\x1d\x64\x1f\x64\x22\x64\x23\x64\x24\x64\x25\x64\x27\x64\x28\x64\x29\x64\x2b\x64\x2e\x64\x2f\x64\x30\x64\x31\x64\x32\x64\x33\x64\x35\x64\x36\x64\x37\x64\x38\x64\x39\x64\x3b\x64\x3c\x64\x3e\x64\x40\x64\x42\x64\x43\x64\x49\x64\x4b\x64\x4c\x64\x4d\x64\x4e\x64\x4f\x64\x50\x64\x51\x64\x53\x64\x55\x64\x56\x64\x57\x64\x59\x64\x5a\x64\x5b\x64\x5c\x64\x5d\x64\x5f\x64\x60\x64\x61\x64\x62\x64\x63\x64\x64\x64\x65\x64\x66\x64\x68\x64\x6a\x64\x6b\x64\x6c\x64\x6e\x64\x6f\x64\x70\x64\x71\x64\x72\x64\x73\x64\x74\x64\x75\x64\x76\x64\x77\x64\x7b\x64\x7c\x64\x7d\x64\x7e\x64\x7f\x64\x80\x64\x81\x64\x83\x64\x86\x64\x88\x64\x89\x64\x8a\x64\x8b\x64\x8c\x64\x8d\x64\x8e\x64\x8f\x64\x90\x64\x93\x64\x94\x64\x97\x64\x98\x64\x9a\x64\x9b\x64\x9c\x64\x9d\x64\x9f\x64\xa0\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa2\x64\xa3\x64\xa5\x64\xa6\x64\xa7\x64\xa8\x64\xaa\x64\xab\x64\xaf\x64\xb1\x64\xb2\x64\xb3\x64\xb4\x64\xb6\x64\xb9\x64\xbb\x64\xbd\x64\xbe\x64\xbf\x64\xc1\x64\xc3\x64\xc4\x64\xc6\x64\xc7\x64\xc8\x64\xc9\x64\xca\x64\xcb\x64\xcc\x64\xcf\x64\xd1\x64\xd3\x64\xd4\x64\xd5\x64\xd6\x64\xd9\x64\xda\x64\xdb\x64\xdc\x64\xdd\x64\xdf\x64\xe0\x64\xe1\x64\xe3\x64\xe5\x64\xe7\x64\xe8\x64\xe9\x64\xea\x64\xeb\x64\xec\x64\xed\x64\xee\x64\xef\x64\xf0\x64\xf1\x64\xf2\x64\xf3\x64\xf4\x64\xf5\x64\xf6\x64\xf7", /* 9480 */ "\x00\x00\x64\xf8\x64\xf9\x64\xfa\x64\xfb\x64\xfc\x64\xfd\x64\xfe\x64\xff\x65\x01\x65\x02\x65\x03\x65\x04\x65\x05\x65\x06\x65\x07\x65\x08\x65\x0a\x65\x0b\x65\x0c\x65\x0d\x65\x0e\x65\x0f\x65\x10\x65\x11\x65\x13\x65\x14\x65\x15\x65\x16\x65\x17\x65\x19\x65\x1a\x65\x1b\x65\x1c\x65\x1d\x65\x1e\x65\x1f\x65\x20\x65\x21\x65\x22\x65\x23\x65\x24\x65\x26\x65\x27\x65\x28\x65\x29\x65\x2a\x65\x2c\x65\x2d\x65\x30\x65\x31\x65\x32\x65\x33\x65\x37\x65\x3a\x65\x3c\x65\x3d\x65\x40\x65\x41\x65\x42\x65\x43\x65\x44\x65\x46\x65\x47\x65\x4a\x65\x4b\x65\x4d\x65\x4e\x65\x50\x65\x52\x65\x53\x65\x54\x65\x57\x65\x58\x65\x5a\x65\x5c\x65\x5f\x65\x60\x65\x61\x65\x64\x65\x65\x65\x67\x65\x68\x65\x69\x65\x6a\x65\x6d\x65\x6e\x65\x6f\x65\x71\x65\x73\x65\x75\x65\x76\x65\x78\x65\x79\x65\x7a\x65\x7b\x65\x7c\x65\x7d\x65\x7e\x65\x7f\x65\x80\x65\x81\x65\x82\x65\x83\x65\x84\x65\x85\x65\x86\x65\x88\x65\x89\x65\x8a\x65\x8d\x65\x8e\x65\x8f\x65\x92\x65\x94\x65\x95\x65\x96\x65\x98\x65\x9a\x65\x9d\x65\x9e\x65\xa0\x65\xa2\x65\xa3\x65\xa6\x65\xa8\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xaa\x65\xac\x65\xae\x65\xb1\x65\xb2\x65\xb3\x65\xb4\x65\xb5\x65\xb6\x65\xb7\x65\xb8\x65\xba\x65\xbb\x65\xbe\x65\xbf\x65\xc0\x65\xc2\x65\xc7\x65\xc8\x65\xc9\x65\xca\x65\xcd\x65\xd0\x65\xd1\x65\xd3\x65\xd4\x65\xd5\x65\xd8\x65\xd9\x65\xda\x65\xdb\x65\xdc\x65\xdd\x65\xde\x65\xdf\x65\xe1\x65\xe3\x65\xe4\x65\xea\x65\xeb\x65\xf2\x65\xf3\x65\xf4\x65\xf5\x65\xf8\x65\xf9\x65\xfb\x65\xfc\x65\xfd\x65\xfe\x65\xff\x66\x01\x66\x04\x66\x05\x66\x07\x66\x08\x66\x09\x66\x0b\x66\x0d\x66\x10\x66\x11\x66\x12\x66\x16", /* 9580 */ "\x00\x00\x66\x17\x66\x18\x66\x1a\x66\x1b\x66\x1c\x66\x1e\x66\x21\x66\x22\x66\x23\x66\x24\x66\x26\x66\x29\x66\x2a\x66\x2b\x66\x2c\x66\x2e\x66\x30\x66\x32\x66\x33\x66\x37\x66\x38\x66\x39\x66\x3a\x66\x3b\x66\x3d\x66\x3f\x66\x40\x66\x42\x66\x44\x66\x45\x66\x46\x66\x47\x66\x48\x66\x49\x66\x4a\x66\x4d\x66\x4e\x66\x50\x66\x51\x66\x58\x66\x59\x66\x5b\x66\x5c\x66\x5d\x66\x5e\x66\x60\x66\x62\x66\x63\x66\x65\x66\x67\x66\x69\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x71\x66\x72\x66\x73\x66\x75\x66\x78\x66\x79\x66\x7b\x66\x7c\x66\x7d\x66\x7f\x66\x80\x66\x81\x66\x83\x66\x85\x66\x86\x66\x88\x66\x89\x66\x8a\x66\x8b\x66\x8d\x66\x8e\x66\x8f\x66\x90\x66\x92\x66\x93\x66\x94\x66\x95\x66\x98\x66\x99\x66\x9a\x66\x9b\x66\x9c\x66\x9e\x66\x9f\x66\xa0\x66\xa1\x66\xa2\x66\xa3\x66\xa4\x66\xa5\x66\xa6\x66\xa9\x66\xaa\x66\xab\x66\xac\x66\xad\x66\xaf\x66\xb0\x66\xb1\x66\xb2\x66\xb3\x66\xb5\x66\xb6\x66\xb7\x66\xb8\x66\xba\x66\xbb\x66\xbc\x66\xbd\x66\xbf\x66\xc0\x66\xc1\x66\xc2\x66\xc3\x66\xc4\x66\xc5\x66\xc6\x66\xc7\x66\xc8\x66\xc9\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xca\x66\xcb\x66\xcc\x66\xcd\x66\xce\x66\xcf\x66\xd0\x66\xd1\x66\xd2\x66\xd3\x66\xd4\x66\xd5\x66\xd6\x66\xd7\x66\xd8\x66\xda\x66\xde\x66\xdf\x66\xe0\x66\xe1\x66\xe2\x66\xe3\x66\xe4\x66\xe5\x66\xe7\x66\xe8\x66\xea\x66\xeb\x66\xec\x66\xed\x66\xee\x66\xef\x66\xf1\x66\xf5\x66\xf6\x66\xf8\x66\xfa\x66\xfb\x66\xfd\x67\x01\x67\x02\x67\x03\x67\x04\x67\x05\x67\x06\x67\x07\x67\x0c\x67\x0e\x67\x0f\x67\x11\x67\x12\x67\x13\x67\x16\x67\x18\x67\x19\x67\x1a\x67\x1c\x67\x1e\x67\x20\x67\x21\x67\x22\x67\x23\x67\x24", /* 9680 */ "\x00\x00\x67\x25\x67\x27\x67\x29\x67\x2e\x67\x30\x67\x32\x67\x33\x67\x36\x67\x37\x67\x38\x67\x39\x67\x3b\x67\x3c\x67\x3e\x67\x3f\x67\x41\x67\x44\x67\x45\x67\x47\x67\x4a\x67\x4b\x67\x4d\x67\x52\x67\x54\x67\x55\x67\x57\x67\x58\x67\x59\x67\x5a\x67\x5b\x67\x5d\x67\x62\x67\x63\x67\x64\x67\x66\x67\x67\x67\x6b\x67\x6c\x67\x6e\x67\x71\x67\x74\x67\x76\x67\x78\x67\x79\x67\x7a\x67\x7b\x67\x7d\x67\x80\x67\x82\x67\x83\x67\x85\x67\x86\x67\x88\x67\x8a\x67\x8c\x67\x8d\x67\x8e\x67\x8f\x67\x91\x67\x92\x67\x93\x67\x94\x67\x96\x67\x99\x67\x9b\x67\x9f\x67\xa0\x67\xa1\x67\xa4\x67\xa6\x67\xa9\x67\xac\x67\xae\x67\xb1\x67\xb2\x67\xb4\x67\xb9\x67\xba\x67\xbb\x67\xbc\x67\xbd\x67\xbe\x67\xbf\x67\xc0\x67\xc2\x67\xc5\x67\xc6\x67\xc7\x67\xc8\x67\xc9\x67\xca\x67\xcb\x67\xcc\x67\xcd\x67\xce\x67\xd5\x67\xd6\x67\xd7\x67\xdb\x67\xdf\x67\xe1\x67\xe3\x67\xe4\x67\xe6\x67\xe7\x67\xe8\x67\xea\x67\xeb\x67\xed\x67\xee\x67\xf2\x67\xf5\x67\xf6\x67\xf7\x67\xf8\x67\xf9\x67\xfa\x67\xfb\x67\xfc\x67\xfe\x68\x01\x68\x02\x68\x03\x68\x04\x68\x06\x00\x00\x00\x00", /* 9700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x0d\x68\x10\x68\x12\x68\x14\x68\x15\x68\x18\x68\x19\x68\x1a\x68\x1b\x68\x1c\x68\x1e\x68\x1f\x68\x20\x68\x22\x68\x23\x68\x24\x68\x25\x68\x26\x68\x27\x68\x28\x68\x2b\x68\x2c\x68\x2d\x68\x2e\x68\x2f\x68\x30\x68\x31\x68\x34\x68\x35\x68\x36\x68\x3a\x68\x3b\x68\x3f\x68\x47\x68\x4b\x68\x4d\x68\x4f\x68\x52\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x68\x5b\x68\x5c\x68\x5d\x68\x5e\x68\x5f\x68\x6a\x68\x6c\x68\x6d\x68\x6e\x68\x6f\x68\x70\x68\x71\x68\x72\x68\x73\x68\x75\x68\x78\x68\x79\x68\x7a\x68\x7b\x68\x7c", /* 9780 */ "\x00\x00\x68\x7d\x68\x7e\x68\x7f\x68\x80\x68\x82\x68\x84\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x68\x8e\x68\x90\x68\x91\x68\x92\x68\x94\x68\x95\x68\x96\x68\x98\x68\x99\x68\x9a\x68\x9b\x68\x9c\x68\x9d\x68\x9e\x68\x9f\x68\xa0\x68\xa1\x68\xa3\x68\xa4\x68\xa5\x68\xa9\x68\xaa\x68\xab\x68\xac\x68\xae\x68\xb1\x68\xb2\x68\xb4\x68\xb6\x68\xb7\x68\xb8\x68\xb9\x68\xba\x68\xbb\x68\xbc\x68\xbd\x68\xbe\x68\xbf\x68\xc1\x68\xc3\x68\xc4\x68\xc5\x68\xc6\x68\xc7\x68\xc8\x68\xca\x68\xcc\x68\xce\x68\xcf\x68\xd0\x68\xd1\x68\xd3\x68\xd4\x68\xd6\x68\xd7\x68\xd9\x68\xdb\x68\xdc\x68\xdd\x68\xde\x68\xdf\x68\xe1\x68\xe2\x68\xe4\x68\xe5\x68\xe6\x68\xe7\x68\xe8\x68\xe9\x68\xea\x68\xeb\x68\xec\x68\xed\x68\xef\x68\xf2\x68\xf3\x68\xf4\x68\xf6\x68\xf7\x68\xf8\x68\xfb\x68\xfd\x68\xfe\x68\xff\x69\x00\x69\x02\x69\x03\x69\x04\x69\x06\x69\x07\x69\x08\x69\x09\x69\x0a\x69\x0c\x69\x0f\x69\x11\x69\x13\x69\x14\x69\x15\x69\x16\x69\x17\x69\x18\x69\x19\x69\x1a\x69\x1b\x69\x1c\x69\x1d\x69\x1e\x69\x21\x69\x22\x69\x23\x69\x25\x00\x00\x00\x00", /* 9800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x26\x69\x27\x69\x28\x69\x29\x69\x2a\x69\x2b\x69\x2c\x69\x2e\x69\x2f\x69\x31\x69\x32\x69\x33\x69\x35\x69\x36\x69\x37\x69\x38\x69\x3a\x69\x3b\x69\x3c\x69\x3e\x69\x40\x69\x41\x69\x43\x69\x44\x69\x45\x69\x46\x69\x47\x69\x48\x69\x49\x69\x4a\x69\x4b\x69\x4c\x69\x4d\x69\x4e\x69\x4f\x69\x50\x69\x51\x69\x52\x69\x53\x69\x55\x69\x56\x69\x58\x69\x59\x69\x5b\x69\x5c\x69\x5f\x69\x61\x69\x62\x69\x64\x69\x65\x69\x67\x69\x68\x69\x69\x69\x6a\x69\x6c\x69\x6d\x69\x6f\x69\x70\x69\x72\x69\x73\x69\x74\x69\x75\x69\x76", /* 9880 */ "\x00\x00\x69\x7a\x69\x7b\x69\x7d\x69\x7e\x69\x7f\x69\x81\x69\x83\x69\x85\x69\x8a\x69\x8b\x69\x8c\x69\x8e\x69\x8f\x69\x90\x69\x91\x69\x92\x69\x93\x69\x96\x69\x97\x69\x99\x69\x9a\x69\x9d\x69\x9e\x69\x9f\x69\xa0\x69\xa1\x69\xa2\x69\xa3\x69\xa4\x69\xa5\x69\xa6\x69\xa9\x69\xaa\x69\xac\x69\xae\x69\xaf\x69\xb0\x69\xb2\x69\xb3\x69\xb5\x69\xb6\x69\xb8\x69\xb9\x69\xba\x69\xbc\x69\xbd\x69\xbe\x69\xbf\x69\xc0\x69\xc2\x69\xc3\x69\xc4\x69\xc5\x69\xc6\x69\xc7\x69\xc8\x69\xc9\x69\xcb\x69\xcd\x69\xcf\x69\xd1\x69\xd2\x69\xd3\x69\xd5\x69\xd6\x69\xd7\x69\xd8\x69\xd9\x69\xda\x69\xdc\x69\xdd\x69\xde\x69\xe1\x69\xe2\x69\xe3\x69\xe4\x69\xe5\x69\xe6\x69\xe7\x69\xe8\x69\xe9\x69\xea\x69\xeb\x69\xec\x69\xee\x69\xef\x69\xf0\x69\xf1\x69\xf3\x69\xf4\x69\xf5\x69\xf6\x69\xf7\x69\xf8\x69\xf9\x69\xfa\x69\xfb\x69\xfc\x69\xfe\x6a\x00\x6a\x01\x6a\x02\x6a\x03\x6a\x04\x6a\x05\x6a\x06\x6a\x07\x6a\x08\x6a\x09\x6a\x0b\x6a\x0c\x6a\x0d\x6a\x0e\x6a\x0f\x6a\x10\x6a\x11\x6a\x12\x6a\x13\x6a\x14\x6a\x15\x6a\x16\x6a\x19\x6a\x1a\x6a\x1b\x6a\x1c\x00\x00\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1d\x6a\x1e\x6a\x20\x6a\x22\x6a\x23\x6a\x24\x6a\x25\x6a\x26\x6a\x27\x6a\x29\x6a\x2b\x6a\x2c\x6a\x2d\x6a\x2e\x6a\x30\x6a\x32\x6a\x33\x6a\x34\x6a\x36\x6a\x37\x6a\x38\x6a\x39\x6a\x3a\x6a\x3b\x6a\x3c\x6a\x3f\x6a\x40\x6a\x41\x6a\x42\x6a\x43\x6a\x45\x6a\x46\x6a\x48\x6a\x49\x6a\x4a\x6a\x4b\x6a\x4c\x6a\x4d\x6a\x4e\x6a\x4f\x6a\x51\x6a\x52\x6a\x53\x6a\x54\x6a\x55\x6a\x56\x6a\x57\x6a\x5a\x6a\x5c\x6a\x5d\x6a\x5e\x6a\x5f\x6a\x60\x6a\x62\x6a\x63\x6a\x64\x6a\x66\x6a\x67\x6a\x68\x6a\x69\x6a\x6a\x6a\x6b\x6a\x6c", /* 9980 */ "\x00\x00\x6a\x6d\x6a\x6e\x6a\x6f\x6a\x70\x6a\x72\x6a\x73\x6a\x74\x6a\x75\x6a\x76\x6a\x77\x6a\x78\x6a\x7a\x6a\x7b\x6a\x7d\x6a\x7e\x6a\x7f\x6a\x81\x6a\x82\x6a\x83\x6a\x85\x6a\x86\x6a\x87\x6a\x88\x6a\x89\x6a\x8a\x6a\x8b\x6a\x8c\x6a\x8d\x6a\x8f\x6a\x92\x6a\x93\x6a\x94\x6a\x95\x6a\x96\x6a\x98\x6a\x99\x6a\x9a\x6a\x9b\x6a\x9c\x6a\x9d\x6a\x9e\x6a\x9f\x6a\xa1\x6a\xa2\x6a\xa3\x6a\xa4\x6a\xa5\x6a\xa6\x6a\xa7\x6a\xa8\x6a\xaa\x6a\xad\x6a\xae\x6a\xaf\x6a\xb0\x6a\xb1\x6a\xb2\x6a\xb3\x6a\xb4\x6a\xb5\x6a\xb6\x6a\xb7\x6a\xb8\x6a\xb9\x6a\xba\x6a\xbb\x6a\xbc\x6a\xbd\x6a\xbe\x6a\xbf\x6a\xc0\x6a\xc1\x6a\xc2\x6a\xc3\x6a\xc4\x6a\xc5\x6a\xc6\x6a\xc7\x6a\xc8\x6a\xc9\x6a\xca\x6a\xcb\x6a\xcc\x6a\xcd\x6a\xce\x6a\xcf\x6a\xd0\x6a\xd1\x6a\xd2\x6a\xd3\x6a\xd4\x6a\xd5\x6a\xd6\x6a\xd7\x6a\xd8\x6a\xd9\x6a\xda\x6a\xdb\x6a\xdc\x6a\xdd\x6a\xde\x6a\xdf\x6a\xe0\x6a\xe1\x6a\xe2\x6a\xe3\x6a\xe4\x6a\xe5\x6a\xe6\x6a\xe7\x6a\xe8\x6a\xe9\x6a\xea\x6a\xeb\x6a\xec\x6a\xed\x6a\xee\x6a\xef\x6a\xf0\x6a\xf1\x6a\xf2\x6a\xf3\x6a\xf4\x6a\xf5\x6a\xf6\x00\x00\x00\x00", /* 9a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf7\x6a\xf8\x6a\xf9\x6a\xfa\x6a\xfb\x6a\xfc\x6a\xfd\x6a\xfe\x6a\xff\x6b\x00\x6b\x01\x6b\x02\x6b\x03\x6b\x04\x6b\x05\x6b\x06\x6b\x07\x6b\x08\x6b\x09\x6b\x0a\x6b\x0b\x6b\x0c\x6b\x0d\x6b\x0e\x6b\x0f\x6b\x10\x6b\x11\x6b\x12\x6b\x13\x6b\x14\x6b\x15\x6b\x16\x6b\x17\x6b\x18\x6b\x19\x6b\x1a\x6b\x1b\x6b\x1c\x6b\x1d\x6b\x1e\x6b\x1f\x6b\x25\x6b\x26\x6b\x28\x6b\x29\x6b\x2a\x6b\x2b\x6b\x2c\x6b\x2d\x6b\x2e\x6b\x2f\x6b\x30\x6b\x31\x6b\x33\x6b\x34\x6b\x35\x6b\x36\x6b\x38\x6b\x3b\x6b\x3c\x6b\x3d\x6b\x3f\x6b\x40", /* 9a80 */ "\x00\x00\x6b\x41\x6b\x42\x6b\x44\x6b\x45\x6b\x48\x6b\x4a\x6b\x4b\x6b\x4d\x6b\x4e\x6b\x4f\x6b\x50\x6b\x51\x6b\x52\x6b\x53\x6b\x54\x6b\x55\x6b\x56\x6b\x57\x6b\x58\x6b\x5a\x6b\x5b\x6b\x5c\x6b\x5d\x6b\x5e\x6b\x5f\x6b\x60\x6b\x61\x6b\x68\x6b\x69\x6b\x6b\x6b\x6c\x6b\x6d\x6b\x6e\x6b\x6f\x6b\x70\x6b\x71\x6b\x72\x6b\x73\x6b\x74\x6b\x75\x6b\x76\x6b\x77\x6b\x78\x6b\x7a\x6b\x7d\x6b\x7e\x6b\x7f\x6b\x80\x6b\x85\x6b\x88\x6b\x8c\x6b\x8e\x6b\x8f\x6b\x90\x6b\x91\x6b\x94\x6b\x95\x6b\x97\x6b\x98\x6b\x99\x6b\x9c\x6b\x9d\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xa2\x6b\xa3\x6b\xa4\x6b\xa5\x6b\xa6\x6b\xa7\x6b\xa8\x6b\xa9\x6b\xab\x6b\xac\x6b\xad\x6b\xae\x6b\xaf\x6b\xb0\x6b\xb1\x6b\xb2\x6b\xb6\x6b\xb8\x6b\xb9\x6b\xba\x6b\xbb\x6b\xbc\x6b\xbd\x6b\xbe\x6b\xc0\x6b\xc3\x6b\xc4\x6b\xc6\x6b\xc7\x6b\xc8\x6b\xc9\x6b\xca\x6b\xcc\x6b\xce\x6b\xd0\x6b\xd1\x6b\xd8\x6b\xda\x6b\xdc\x6b\xdd\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe2\x6b\xe3\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x6b\xe9\x6b\xec\x6b\xed\x6b\xee\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf4\x6b\xf6\x6b\xf7\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xf8\x6b\xfa\x6b\xfb\x6b\xfc\x6b\xfe\x6b\xff\x6c\x00\x6c\x01\x6c\x02\x6c\x03\x6c\x04\x6c\x08\x6c\x09\x6c\x0a\x6c\x0b\x6c\x0c\x6c\x0e\x6c\x12\x6c\x17\x6c\x1c\x6c\x1d\x6c\x1e\x6c\x20\x6c\x23\x6c\x25\x6c\x2b\x6c\x2c\x6c\x2d\x6c\x31\x6c\x33\x6c\x36\x6c\x37\x6c\x39\x6c\x3a\x6c\x3b\x6c\x3c\x6c\x3e\x6c\x3f\x6c\x43\x6c\x44\x6c\x45\x6c\x48\x6c\x4b\x6c\x4c\x6c\x4d\x6c\x4e\x6c\x4f\x6c\x51\x6c\x52\x6c\x53\x6c\x56\x6c\x58\x6c\x59\x6c\x5a\x6c\x62\x6c\x63\x6c\x65\x6c\x66\x6c\x67\x6c\x6b\x6c\x6c\x6c\x6d\x6c\x6e", /* 9b80 */ "\x00\x00\x6c\x6f\x6c\x71\x6c\x73\x6c\x75\x6c\x77\x6c\x78\x6c\x7a\x6c\x7b\x6c\x7c\x6c\x7f\x6c\x80\x6c\x84\x6c\x87\x6c\x8a\x6c\x8b\x6c\x8d\x6c\x8e\x6c\x91\x6c\x92\x6c\x95\x6c\x96\x6c\x97\x6c\x98\x6c\x9a\x6c\x9c\x6c\x9d\x6c\x9e\x6c\xa0\x6c\xa2\x6c\xa8\x6c\xac\x6c\xaf\x6c\xb0\x6c\xb4\x6c\xb5\x6c\xb6\x6c\xb7\x6c\xba\x6c\xc0\x6c\xc1\x6c\xc2\x6c\xc3\x6c\xc6\x6c\xc7\x6c\xc8\x6c\xcb\x6c\xcd\x6c\xce\x6c\xcf\x6c\xd1\x6c\xd2\x6c\xd8\x6c\xd9\x6c\xda\x6c\xdc\x6c\xdd\x6c\xdf\x6c\xe4\x6c\xe6\x6c\xe7\x6c\xe9\x6c\xec\x6c\xed\x6c\xf2\x6c\xf4\x6c\xf9\x6c\xff\x6d\x00\x6d\x02\x6d\x03\x6d\x05\x6d\x06\x6d\x08\x6d\x09\x6d\x0a\x6d\x0d\x6d\x0f\x6d\x10\x6d\x11\x6d\x13\x6d\x14\x6d\x15\x6d\x16\x6d\x18\x6d\x1c\x6d\x1d\x6d\x1f\x6d\x20\x6d\x21\x6d\x22\x6d\x23\x6d\x24\x6d\x26\x6d\x28\x6d\x29\x6d\x2c\x6d\x2d\x6d\x2f\x6d\x30\x6d\x34\x6d\x36\x6d\x37\x6d\x38\x6d\x3a\x6d\x3f\x6d\x40\x6d\x42\x6d\x44\x6d\x49\x6d\x4c\x6d\x50\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x5b\x6d\x5d\x6d\x5f\x6d\x61\x6d\x62\x6d\x64\x6d\x65\x6d\x67\x6d\x68\x6d\x6b\x00\x00\x00\x00", /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x6c\x6d\x6d\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x75\x6d\x76\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x83\x6d\x84\x6d\x86\x6d\x87\x6d\x8a\x6d\x8b\x6d\x8d\x6d\x8f\x6d\x90\x6d\x92\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9c\x6d\xa2\x6d\xa5\x6d\xac\x6d\xad\x6d\xb0\x6d\xb1\x6d\xb3\x6d\xb4\x6d\xb6\x6d\xb7\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc8\x6d\xc9\x6d\xca\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd7", /* 9c80 */ "\x00\x00\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdf\x6d\xe2\x6d\xe3\x6d\xe5\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xed\x6d\xef\x6d\xf0\x6d\xf2\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf8\x6d\xfa\x6d\xfd\x6d\xfe\x6d\xff\x6e\x00\x6e\x01\x6e\x02\x6e\x03\x6e\x04\x6e\x06\x6e\x07\x6e\x08\x6e\x09\x6e\x0b\x6e\x0f\x6e\x12\x6e\x13\x6e\x15\x6e\x18\x6e\x19\x6e\x1b\x6e\x1c\x6e\x1e\x6e\x1f\x6e\x22\x6e\x26\x6e\x27\x6e\x28\x6e\x2a\x6e\x2c\x6e\x2e\x6e\x30\x6e\x31\x6e\x33\x6e\x35\x6e\x36\x6e\x37\x6e\x39\x6e\x3b\x6e\x3c\x6e\x3d\x6e\x3e\x6e\x3f\x6e\x40\x6e\x41\x6e\x42\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x55\x6e\x57\x6e\x59\x6e\x5a\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6c\x6e\x6d\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x80\x6e\x81\x6e\x82\x6e\x84\x6e\x87\x6e\x88\x6e\x8a\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x91\x6e\x92\x00\x00\x00\x00", /* 9d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9d\x6e\x9e\x6e\xa0\x6e\xa1\x6e\xa3\x6e\xa4\x6e\xa6\x6e\xa8\x6e\xa9\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xb0\x6e\xb3\x6e\xb5\x6e\xb8\x6e\xb9\x6e\xbc\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcc\x6e\xcd\x6e\xce\x6e\xd0\x6e\xd2\x6e\xd6\x6e\xd8\x6e\xd9\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xe3\x6e\xe7\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf5\x6e\xf6\x6e\xf7", /* 9d80 */ "\x00\x00\x6e\xf8\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6e\xff\x6f\x00\x6f\x01\x6f\x03\x6f\x04\x6f\x05\x6f\x07\x6f\x08\x6f\x0a\x6f\x0b\x6f\x0c\x6f\x0d\x6f\x0e\x6f\x10\x6f\x11\x6f\x12\x6f\x16\x6f\x17\x6f\x18\x6f\x19\x6f\x1a\x6f\x1b\x6f\x1c\x6f\x1d\x6f\x1e\x6f\x1f\x6f\x21\x6f\x22\x6f\x23\x6f\x25\x6f\x26\x6f\x27\x6f\x28\x6f\x2c\x6f\x2e\x6f\x30\x6f\x32\x6f\x34\x6f\x35\x6f\x37\x6f\x38\x6f\x39\x6f\x3a\x6f\x3b\x6f\x3c\x6f\x3d\x6f\x3f\x6f\x40\x6f\x41\x6f\x42\x6f\x43\x6f\x44\x6f\x45\x6f\x48\x6f\x49\x6f\x4a\x6f\x4c\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5d\x6f\x5f\x6f\x60\x6f\x61\x6f\x63\x6f\x64\x6f\x65\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6f\x6f\x70\x6f\x71\x6f\x73\x6f\x75\x6f\x76\x6f\x77\x6f\x79\x6f\x7b\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x85\x6f\x86\x6f\x87\x6f\x8a\x6f\x8b\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9d\x6f\x9e\x00\x00\x00\x00", /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x9f\x6f\xa0\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb4\x6f\xb5\x6f\xb7\x6f\xb8\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc1\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xca\x6f\xcb\x6f\xcc\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xdf\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea", /* 9e80 */ "\x00\x00\x6f\xeb\x6f\xec\x6f\xed\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x6f\xff\x70\x00\x70\x01\x70\x02\x70\x03\x70\x04\x70\x05\x70\x06\x70\x07\x70\x08\x70\x09\x70\x0a\x70\x0b\x70\x0c\x70\x0d\x70\x0e\x70\x0f\x70\x10\x70\x12\x70\x13\x70\x14\x70\x15\x70\x16\x70\x17\x70\x18\x70\x19\x70\x1c\x70\x1d\x70\x1e\x70\x1f\x70\x20\x70\x21\x70\x22\x70\x24\x70\x25\x70\x26\x70\x27\x70\x28\x70\x29\x70\x2a\x70\x2b\x70\x2c\x70\x2d\x70\x2e\x70\x2f\x70\x30\x70\x31\x70\x32\x70\x33\x70\x34\x70\x36\x70\x37\x70\x38\x70\x3a\x70\x3b\x70\x3c\x70\x3d\x70\x3e\x70\x3f\x70\x40\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4d\x70\x4e\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6e\x70\x71\x70\x72\x70\x73\x70\x74\x70\x77\x70\x79\x70\x7a\x00\x00\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x7b\x70\x7d\x70\x81\x70\x82\x70\x83\x70\x84\x70\x86\x70\x87\x70\x88\x70\x8b\x70\x8c\x70\x8d\x70\x8f\x70\x90\x70\x91\x70\x93\x70\x97\x70\x98\x70\x9a\x70\x9b\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xb0\x70\xb2\x70\xb4\x70\xb5\x70\xb6\x70\xba\x70\xbe\x70\xbf\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc9\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xda\x70\xdc\x70\xdd\x70\xde", /* 9f80 */ "\x00\x00\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe5\x70\xea\x70\xee\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf8\x70\xfa\x70\xfb\x70\xfc\x70\xfe\x70\xff\x71\x00\x71\x01\x71\x02\x71\x03\x71\x04\x71\x05\x71\x06\x71\x07\x71\x08\x71\x0b\x71\x0c\x71\x0d\x71\x0e\x71\x0f\x71\x11\x71\x12\x71\x14\x71\x17\x71\x1b\x71\x1c\x71\x1d\x71\x1e\x71\x1f\x71\x20\x71\x21\x71\x22\x71\x23\x71\x24\x71\x25\x71\x27\x71\x28\x71\x29\x71\x2a\x71\x2b\x71\x2c\x71\x2d\x71\x2e\x71\x32\x71\x33\x71\x34\x71\x35\x71\x37\x71\x38\x71\x39\x71\x3a\x71\x3b\x71\x3c\x71\x3d\x71\x3e\x71\x3f\x71\x40\x71\x41\x71\x42\x71\x43\x71\x44\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4b\x71\x4d\x71\x4f\x71\x50\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5d\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x65\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6f\x71\x70\x71\x71\x71\x74\x71\x75\x71\x76\x71\x77\x71\x79\x71\x7b\x71\x7c\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x85\x71\x86\x71\x87\x00\x00\x00\x00", /* a000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x88\x71\x89\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x90\x71\x91\x71\x92\x71\x93\x71\x95\x71\x96\x71\x97\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa9\x71\xaa\x71\xab\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb4\x71\xb6\x71\xb7\x71\xb8\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xcf\x71\xd0\x71\xd1\x71\xd2\x71\xd3\x71\xd6", /* a080 */ "\x00\x00\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe6\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x71\xff\x72\x00\x72\x01\x72\x02\x72\x03\x72\x04\x72\x05\x72\x07\x72\x08\x72\x09\x72\x0a\x72\x0b\x72\x0c\x72\x0d\x72\x0e\x72\x0f\x72\x10\x72\x11\x72\x12\x72\x13\x72\x14\x72\x15\x72\x16\x72\x17\x72\x18\x72\x19\x72\x1a\x72\x1b\x72\x1c\x72\x1e\x72\x1f\x72\x20\x72\x21\x72\x22\x72\x23\x72\x24\x72\x25\x72\x26\x72\x27\x72\x29\x72\x2b\x72\x2d\x72\x2e\x72\x2f\x72\x32\x72\x33\x72\x34\x72\x3a\x72\x3c\x72\x3e\x72\x40\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x49\x72\x4a\x72\x4b\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x53\x72\x54\x72\x55\x72\x57\x72\x58\x72\x5a\x72\x5c\x72\x5e\x72\x60\x72\x63\x72\x64\x72\x65\x72\x68\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x70\x72\x71\x72\x73\x72\x74\x72\x76\x72\x77\x72\x78\x72\x7b\x72\x7c\x00\x00\x00\x00", /* a100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x7d\x72\x82\x72\x83\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8c\x72\x8e\x72\x90\x72\x91\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xae\x72\xb1\x72\xb2\x72\xb3\x72\xb5\x72\xba\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc5\x72\xc6\x72\xc7\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcf\x72\xd1\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd8\x72\xda", /* a180 */ "\x00\x00\x72\xdb\x72\xdc\x72\xdd\x72\xdf\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xea\x72\xeb\x72\xf5\x72\xf6\x72\xf9\x72\xfd\x72\xfe\x72\xff\x73\x00\x73\x02\x73\x04\x73\x05\x73\x06\x73\x07\x73\x08\x73\x09\x73\x0b\x73\x0c\x73\x0d\x73\x0f\x73\x10\x73\x11\x73\x12\x73\x14\x73\x18\x73\x19\x73\x1a\x73\x1f\x73\x20\x73\x23\x73\x24\x73\x26\x73\x27\x73\x28\x73\x2d\x73\x2f\x73\x30\x73\x32\x73\x33\x73\x35\x73\x36\x73\x3a\x73\x3b\x73\x3c\x73\x3d\x73\x40\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4e\x73\x4f\x73\x51\x73\x53\x73\x54\x73\x55\x73\x56\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6e\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c\x73\x7d\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x85\x73\x86\x73\x88\x73\x8a\x73\x8c\x73\x8d\x73\x8f\x73\x90\x73\x92\x73\x93\x73\x94\x00\x00\x00\x00", /* a200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x95\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9c\x73\x9d\x73\x9e\x73\xa0\x73\xa1\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xaa\x73\xac\x73\xad\x73\xb1\x73\xb4\x73\xb5\x73\xb6\x73\xb8\x73\xb9\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc1\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xcb\x73\xcc\x73\xce\x73\xd2\x73\xd3\x73\xd4\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xdf\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe6\x73\xe8\x73\xea\x73\xeb\x73\xec\x73\xee\x73\xef\x73\xf0\x73\xf1", /* a280 */ "\x00\x00\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc\x73\xfd\x73\xfe\x73\xff\x74\x00\x74\x01\x74\x02\x74\x04\x74\x07\x74\x08\x74\x0b\x74\x0c\x74\x0d\x74\x0e\x74\x11\x74\x12\x74\x13\x74\x14\x74\x15\x74\x16\x74\x17\x74\x18\x74\x19\x74\x1c\x74\x1d\x74\x1e\x74\x1f\x74\x20\x74\x21\x74\x23\x74\x24\x74\x27\x74\x29\x74\x2b\x74\x2d\x74\x2f\x74\x31\x74\x32\x74\x37\x74\x38\x74\x39\x74\x3a\x74\x3b\x74\x3d\x74\x3e\x74\x3f\x74\x40\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x56\x74\x58\x74\x5d\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6e\x74\x6f\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7f\x74\x82\x74\x84\x74\x85\x74\x86\x74\x88\x74\x89\x74\x8a\x74\x8c\x74\x8d\x74\x8f\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96\x74\x97\x74\x98\x74\x99\x74\x9a\x00\x00\x00\x00", /* a300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x9b\x74\x9d\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xbb\x74\xbc\x74\xbd\x74\xbe\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdd\x74\xdf\x74\xe1\x74\xe5\x74\xe7", /* a380 */ "\x00\x00\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf5\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x00\x75\x01\x75\x02\x75\x03\x75\x05\x75\x06\x75\x07\x75\x08\x75\x09\x75\x0a\x75\x0b\x75\x0c\x75\x0e\x75\x10\x75\x12\x75\x14\x75\x15\x75\x16\x75\x17\x75\x1b\x75\x1d\x75\x1e\x75\x20\x75\x21\x75\x22\x75\x23\x75\x24\x75\x26\x75\x27\x75\x2a\x75\x2e\x75\x34\x75\x36\x75\x39\x75\x3c\x75\x3d\x75\x3f\x75\x41\x75\x42\x75\x43\x75\x44\x75\x46\x75\x47\x75\x49\x75\x4a\x75\x4d\x75\x50\x75\x51\x75\x52\x75\x53\x75\x55\x75\x56\x75\x57\x75\x58\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x67\x75\x68\x75\x69\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x73\x75\x75\x75\x76\x75\x77\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x80\x75\x81\x75\x82\x75\x84\x75\x85\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8c\x75\x8d\x75\x8e\x75\x90\x75\x93\x75\x95\x75\x98\x75\x9b\x75\x9c\x75\x9e\x75\xa2\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xad\x00\x00\x00\x00", /* a400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xb6\x75\xb7\x75\xba\x75\xbb\x75\xbf\x75\xc0\x75\xc1\x75\xc6\x75\xcb\x75\xcc\x75\xce\x75\xcf\x75\xd0\x75\xd1\x75\xd3\x75\xd7\x75\xd9\x75\xda\x75\xdc\x75\xdd\x75\xdf\x75\xe0\x75\xe1\x75\xe5\x75\xe9\x75\xec\x75\xed\x75\xee\x75\xef\x75\xf2\x75\xf3\x75\xf5\x75\xf6\x75\xf7\x75\xf8\x75\xfa\x75\xfb\x75\xfd\x75\xfe\x76\x02\x76\x04\x76\x06\x76\x07\x76\x08\x76\x09\x76\x0b\x76\x0d\x76\x0e\x76\x0f\x76\x11\x76\x12\x76\x13\x76\x14\x76\x16\x76\x1a\x76\x1c\x76\x1d\x76\x1e\x76\x21\x76\x23\x76\x27\x76\x28\x76\x2c", /* a480 */ "\x00\x00\x76\x2e\x76\x2f\x76\x31\x76\x32\x76\x36\x76\x37\x76\x39\x76\x3a\x76\x3b\x76\x3d\x76\x41\x76\x42\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x55\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5d\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6c\x76\x6d\x76\x6e\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x79\x76\x7a\x76\x7c\x76\x7f\x76\x80\x76\x81\x76\x83\x76\x85\x76\x89\x76\x8a\x76\x8c\x76\x8d\x76\x8f\x76\x90\x76\x92\x76\x94\x76\x95\x76\x97\x76\x98\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xaf\x76\xb0\x76\xb3\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xc0\x76\xc1\x76\xc3\x76\xc4\x76\xc7\x76\xc9\x76\xcb\x76\xcc\x76\xd3\x76\xd5\x76\xd9\x76\xda\x76\xdc\x76\xdd\x76\xde\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x00\x00\x00\x00", /* a500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\xe4\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xf0\x76\xf3\x76\xf5\x76\xf6\x76\xf7\x76\xfa\x76\xfb\x76\xfd\x76\xff\x77\x00\x77\x02\x77\x03\x77\x05\x77\x06\x77\x0a\x77\x0c\x77\x0e\x77\x0f\x77\x10\x77\x11\x77\x12\x77\x13\x77\x14\x77\x15\x77\x16\x77\x17\x77\x18\x77\x1b\x77\x1c\x77\x1d\x77\x1e\x77\x21\x77\x23\x77\x24\x77\x25\x77\x27\x77\x2a\x77\x2b\x77\x2c\x77\x2e\x77\x30\x77\x31\x77\x32\x77\x33\x77\x34\x77\x39\x77\x3b\x77\x3d\x77\x3e\x77\x3f\x77\x42\x77\x44\x77\x45\x77\x46", /* a580 */ "\x00\x00\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x64\x77\x67\x77\x69\x77\x6a\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x7a\x77\x7b\x77\x7c\x77\x81\x77\x82\x77\x83\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8f\x77\x90\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\xa1\x77\xa3\x77\xa4\x77\xa6\x77\xa8\x77\xab\x77\xad\x77\xae\x77\xaf\x77\xb1\x77\xb2\x77\xb4\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbc\x77\xbe\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd8\x77\xd9\x77\xda\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe4\x77\xe6\x77\xe8\x77\xea\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf4\x77\xf5\x77\xf7\x77\xf9\x77\xfa\x00\x00\x00\x00", /* a600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xfb\x77\xfc\x78\x03\x78\x04\x78\x05\x78\x06\x78\x07\x78\x08\x78\x0a\x78\x0b\x78\x0e\x78\x0f\x78\x10\x78\x13\x78\x15\x78\x19\x78\x1b\x78\x1e\x78\x20\x78\x21\x78\x22\x78\x24\x78\x28\x78\x2a\x78\x2b\x78\x2e\x78\x2f\x78\x31\x78\x32\x78\x33\x78\x35\x78\x36\x78\x3d\x78\x3f\x78\x41\x78\x42\x78\x43\x78\x44\x78\x46\x78\x48\x78\x49\x78\x4a\x78\x4b\x78\x4d\x78\x4f\x78\x51\x78\x53\x78\x54\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67", /* a680 */ "\x00\x00\x78\x68\x78\x69\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7d\x78\x7e\x78\x7f\x78\x80\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x88\x78\x8a\x78\x8b\x78\x8f\x78\x90\x78\x92\x78\x94\x78\x95\x78\x96\x78\x99\x78\x9d\x78\x9e\x78\xa0\x78\xa2\x78\xa4\x78\xa6\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbf\x78\xc0\x78\xc2\x78\xc3\x78\xc4\x78\xc6\x78\xc7\x78\xc8\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd1\x78\xd2\x78\xd3\x78\xd6\x78\xd7\x78\xd8\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe9\x78\xea\x78\xeb\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf3\x78\xf5\x78\xf6\x78\xf8\x78\xf9\x78\xfb\x78\xfc\x78\xfd\x78\xfe\x78\xff\x79\x00\x79\x02\x79\x03\x79\x04\x79\x06\x79\x07\x79\x08\x79\x09\x79\x0a\x79\x0b\x79\x0c\x79\x0d\x79\x0e\x79\x0f\x79\x10\x79\x11\x79\x12\x79\x14\x79\x15\x00\x00\x00\x00", /* a700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x16\x79\x17\x79\x18\x79\x19\x79\x1a\x79\x1b\x79\x1c\x79\x1d\x79\x1f\x79\x20\x79\x21\x79\x22\x79\x23\x79\x25\x79\x26\x79\x27\x79\x28\x79\x29\x79\x2a\x79\x2b\x79\x2c\x79\x2d\x79\x2e\x79\x2f\x79\x30\x79\x31\x79\x32\x79\x33\x79\x35\x79\x36\x79\x37\x79\x38\x79\x39\x79\x3d\x79\x3f\x79\x42\x79\x43\x79\x44\x79\x45\x79\x47\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x54\x79\x55\x79\x58\x79\x59\x79\x61\x79\x63\x79\x64\x79\x66\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6e\x79\x70", /* a780 */ "\x00\x00\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x79\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x82\x79\x83\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8b\x79\x8c\x79\x8d\x79\x8e\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xbc\x79\xbf\x79\xc2\x79\xc4\x79\xc5\x79\xc7\x79\xc8\x79\xca\x79\xcc\x79\xce\x79\xcf\x79\xd0\x79\xd3\x79\xd4\x79\xd6\x79\xd7\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xe0\x79\xe1\x79\xe2\x79\xe5\x79\xe8\x79\xea\x79\xec\x79\xee\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf9\x79\xfa\x79\xfc\x79\xfe\x79\xff\x7a\x01\x7a\x04\x7a\x05\x7a\x07\x7a\x08\x7a\x09\x7a\x0a\x7a\x0c\x7a\x0f\x7a\x10\x7a\x11\x7a\x12\x7a\x13\x7a\x15\x7a\x16\x7a\x18\x7a\x19\x7a\x1b\x7a\x1c\x7a\x1d\x7a\x1f\x7a\x21\x7a\x22\x00\x00\x00\x00", /* a800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x24\x7a\x25\x7a\x26\x7a\x27\x7a\x28\x7a\x29\x7a\x2a\x7a\x2b\x7a\x2c\x7a\x2d\x7a\x2e\x7a\x2f\x7a\x30\x7a\x31\x7a\x32\x7a\x34\x7a\x35\x7a\x36\x7a\x38\x7a\x3a\x7a\x3e\x7a\x40\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c", /* a880 */ "\x00\x00\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x71\x7a\x72\x7a\x73\x7a\x75\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x82\x7a\x85\x7a\x87\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8e\x7a\x8f\x7a\x90\x7a\x93\x7a\x94\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9e\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa7\x7a\xa9\x7a\xaa\x7a\xab\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd7\x7a\xd8\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xe1\x7a\xe2\x7a\xe4\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xee\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xfb\x7a\xfc\x7a\xfe\x7b\x00\x7b\x01\x7b\x02\x7b\x05\x7b\x07\x7b\x09\x7b\x0c\x7b\x0d\x7b\x0e\x7b\x10\x7b\x12\x7b\x13\x7b\x16\x7b\x17\x7b\x18\x7b\x1a\x7b\x1c\x7b\x1d\x7b\x1f\x7b\x21\x7b\x22\x7b\x23\x7b\x27\x7b\x29\x7b\x2d\x00\x00\x00\x00", /* a900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x2f\x7b\x30\x7b\x32\x7b\x34\x7b\x35\x7b\x36\x7b\x37\x7b\x39\x7b\x3b\x7b\x3d\x7b\x3f\x7b\x40\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x46\x7b\x48\x7b\x4a\x7b\x4d\x7b\x4e\x7b\x53\x7b\x55\x7b\x57\x7b\x59\x7b\x5c\x7b\x5e\x7b\x5f\x7b\x61\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6f\x7b\x70\x7b\x73\x7b\x74\x7b\x76\x7b\x78\x7b\x7a\x7b\x7c\x7b\x7d\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8e\x7b\x8f", /* a980 */ "\x00\x00\x7b\x91\x7b\x92\x7b\x93\x7b\x96\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb2\x7b\xb3\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd2\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xdb\x7b\xdc\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xeb\x7b\xec\x7b\xed\x7b\xef\x7b\xf0\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfd\x7b\xff\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x7c\x04\x7c\x05\x7c\x06\x7c\x08\x7c\x09\x7c\x0a\x7c\x0d\x7c\x0e\x7c\x10\x7c\x11\x7c\x12\x7c\x13\x7c\x14\x7c\x15\x7c\x17\x7c\x18\x7c\x19\x7c\x1a\x7c\x1b\x7c\x1c\x7c\x1d\x7c\x1e\x7c\x20\x7c\x21\x7c\x22\x7c\x23\x7c\x24\x7c\x25\x7c\x28\x7c\x29\x7c\x2b\x7c\x2c\x7c\x2d\x7c\x2e\x7c\x2f\x7c\x30\x7c\x31\x7c\x32\x7c\x33\x7c\x34\x7c\x35\x7c\x36\x7c\x37\x7c\x39\x7c\x3a\x7c\x3b\x00\x00\x00\x00", /* aa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x3c\x7c\x3d\x7c\x3e\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7e\x7c\x7f\x7c\x80\x7c\x81\x7c\x82\x7c\x83", /* aa80 */ "\x00\x00\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x93\x7c\x94\x7c\x96\x7c\x99\x7c\x9a\x7c\x9b\x7c\xa0\x7c\xa1\x7c\xa3\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xab\x7c\xac\x7c\xad\x7c\xaf\x7c\xb0\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xba\x7c\xbb\x7c\xbf\x7c\xc0\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc6\x7c\xc9\x7c\xcb\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd8\x7c\xda\x7c\xdb\x7c\xdd\x7c\xde\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf9\x7c\xfa\x7c\xfc\x7c\xfd\x7c\xfe\x7c\xff\x7d\x00\x7d\x01\x7d\x02\x7d\x03\x7d\x04\x7d\x05\x7d\x06\x7d\x07\x7d\x08\x7d\x09\x7d\x0b\x7d\x0c\x7d\x0d\x7d\x0e\x7d\x0f\x7d\x10\x7d\x11\x7d\x12\x7d\x13\x7d\x14\x7d\x15\x7d\x16\x7d\x17\x7d\x18\x7d\x19\x7d\x1a\x7d\x1b\x7d\x1c\x7d\x1d\x7d\x1e\x7d\x1f\x7d\x21\x7d\x23\x7d\x24\x7d\x25\x7d\x26\x7d\x28\x7d\x29\x7d\x2a\x7d\x2c\x7d\x2d\x00\x00\x00\x00", /* ab00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x2e\x7d\x30\x7d\x31\x7d\x32\x7d\x33\x7d\x34\x7d\x35\x7d\x36\x7d\x37\x7d\x38\x7d\x39\x7d\x3a\x7d\x3b\x7d\x3c\x7d\x3d\x7d\x3e\x7d\x3f\x7d\x40\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d", /* ab80 */ "\x00\x00\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x80\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x00\x00\x00\x00", /* ac00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7d\xfe\x7d\xff\x7e\x00\x7e\x01\x7e\x02\x7e\x03\x7e\x04\x7e\x05\x7e\x06\x7e\x07\x7e\x08\x7e\x09\x7e\x0a\x7e\x0b\x7e\x0c\x7e\x0d\x7e\x0e\x7e\x0f\x7e\x10\x7e\x11\x7e\x12\x7e\x13\x7e\x14\x7e\x15\x7e\x16\x7e\x17\x7e\x18\x7e\x19\x7e\x1a\x7e\x1b\x7e\x1c\x7e\x1d\x7e\x1e\x7e\x1f\x7e\x20\x7e\x21\x7e\x22\x7e\x23\x7e\x24\x7e\x25\x7e\x26\x7e\x27\x7e\x28\x7e\x29\x7e\x2a\x7e\x2b\x7e\x2c\x7e\x2d", /* ac80 */ "\x00\x00\x7e\x2e\x7e\x2f\x7e\x30\x7e\x31\x7e\x32\x7e\x33\x7e\x34\x7e\x35\x7e\x36\x7e\x37\x7e\x38\x7e\x39\x7e\x3a\x7e\x3c\x7e\x3d\x7e\x3e\x7e\x3f\x7e\x40\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x80\x7e\x81\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9c\x7e\x9d\x7e\x9e\x7e\xae\x7e\xb4\x7e\xbb\x7e\xbc\x7e\xd6\x7e\xe4\x7e\xec\x7e\xf9\x7f\x0a\x7f\x10\x7f\x1e\x7f\x37\x7f\x39\x7f\x3b\x7f\x3c\x7f\x3d\x7f\x3e\x00\x00\x00\x00", /* ad00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x3f\x7f\x40\x7f\x41\x7f\x43\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x52\x7f\x53\x7f\x56\x7f\x59\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x60\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6f\x7f\x70\x7f\x73\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7f\x7f\x80\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8b\x7f\x8d\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x95\x7f\x96\x7f\x97\x7f\x98", /* ad80 */ "\x00\x00\x7f\x99\x7f\x9b\x7f\x9c\x7f\xa0\x7f\xa2\x7f\xa3\x7f\xa5\x7f\xa6\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xb1\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xba\x7f\xbb\x7f\xbe\x7f\xc0\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xcb\x7f\xcd\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd6\x7f\xd7\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe7\x7f\xe8\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xef\x7f\xf2\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfd\x7f\xfe\x7f\xff\x80\x02\x80\x07\x80\x08\x80\x09\x80\x0a\x80\x0e\x80\x0f\x80\x11\x80\x13\x80\x1a\x80\x1b\x80\x1d\x80\x1e\x80\x1f\x80\x21\x80\x23\x80\x24\x80\x2b\x80\x2c\x80\x2d\x80\x2e\x80\x2f\x80\x30\x80\x32\x80\x34\x80\x39\x80\x3a\x80\x3c\x80\x3e\x80\x40\x80\x41\x80\x44\x80\x45\x80\x47\x80\x48\x80\x49\x80\x4e\x80\x4f\x80\x50\x80\x51\x80\x53\x80\x55\x80\x56\x80\x57\x80\x59\x80\x5b\x80\x5c\x80\x5d\x80\x5e\x80\x5f\x80\x60\x80\x61\x80\x62\x80\x63\x80\x64\x80\x65\x80\x66\x00\x00\x00\x00", /* ae00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x67\x80\x68\x80\x6b\x80\x6c\x80\x6d\x80\x6e\x80\x6f\x80\x70\x80\x72\x80\x73\x80\x74\x80\x75\x80\x76\x80\x77\x80\x78\x80\x79\x80\x7a\x80\x7b\x80\x7c\x80\x7d\x80\x7e\x80\x81\x80\x82\x80\x85\x80\x88\x80\x8a\x80\x8d\x80\x8e\x80\x8f\x80\x90\x80\x91\x80\x92\x80\x94\x80\x95\x80\x97\x80\x99\x80\x9e\x80\xa3\x80\xa6\x80\xa7\x80\xa8\x80\xac\x80\xb0\x80\xb3\x80\xb5\x80\xb6\x80\xb8\x80\xb9\x80\xbb\x80\xc5\x80\xc7\x80\xc8\x80\xc9\x80\xca\x80\xcb\x80\xcf\x80\xd0\x80\xd1\x80\xd2\x80\xd3\x80\xd4\x80\xd5\x80\xd8", /* ae80 */ "\x00\x00\x80\xdf\x80\xe0\x80\xe2\x80\xe3\x80\xe6\x80\xee\x80\xf5\x80\xf7\x80\xf9\x80\xfb\x80\xfe\x80\xff\x81\x00\x81\x01\x81\x03\x81\x04\x81\x05\x81\x07\x81\x08\x81\x0b\x81\x0c\x81\x15\x81\x17\x81\x19\x81\x1b\x81\x1c\x81\x1d\x81\x1f\x81\x20\x81\x21\x81\x22\x81\x23\x81\x24\x81\x25\x81\x26\x81\x27\x81\x28\x81\x29\x81\x2a\x81\x2b\x81\x2d\x81\x2e\x81\x30\x81\x33\x81\x34\x81\x35\x81\x37\x81\x39\x81\x3a\x81\x3b\x81\x3c\x81\x3d\x81\x3f\x81\x40\x81\x41\x81\x42\x81\x43\x81\x44\x81\x45\x81\x47\x81\x49\x81\x4d\x81\x4e\x81\x4f\x81\x52\x81\x56\x81\x57\x81\x58\x81\x5b\x81\x5c\x81\x5d\x81\x5e\x81\x5f\x81\x61\x81\x62\x81\x63\x81\x64\x81\x66\x81\x68\x81\x6a\x81\x6b\x81\x6c\x81\x6f\x81\x72\x81\x73\x81\x75\x81\x76\x81\x77\x81\x78\x81\x81\x81\x83\x81\x84\x81\x85\x81\x86\x81\x87\x81\x89\x81\x8b\x81\x8c\x81\x8d\x81\x8e\x81\x90\x81\x92\x81\x93\x81\x94\x81\x95\x81\x96\x81\x97\x81\x99\x81\x9a\x81\x9e\x81\x9f\x81\xa0\x81\xa1\x81\xa2\x81\xa4\x81\xa5\x81\xa7\x81\xa9\x81\xab\x81\xac\x81\xad\x81\xae\x81\xaf\x81\xb0\x81\xb1\x00\x00\x00\x00", /* af00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xb2\x81\xb4\x81\xb5\x81\xb6\x81\xb7\x81\xb8\x81\xb9\x81\xbc\x81\xbd\x81\xbe\x81\xbf\x81\xc4\x81\xc5\x81\xc7\x81\xc8\x81\xc9\x81\xcb\x81\xcd\x81\xce\x81\xcf\x81\xd0\x81\xd1\x81\xd2\x81\xd3\x81\xd4\x81\xd5\x81\xd6\x81\xd7\x81\xd8\x81\xd9\x81\xda\x81\xdb\x81\xdc\x81\xdd\x81\xde\x81\xdf\x81\xe0\x81\xe1\x81\xe2\x81\xe4\x81\xe5\x81\xe6\x81\xe8\x81\xe9\x81\xeb\x81\xee\x81\xef\x81\xf0\x81\xf1\x81\xf2\x81\xf5\x81\xf6\x81\xf7\x81\xf8\x81\xf9\x81\xfa\x81\xfd\x81\xff\x82\x03\x82\x07\x82\x08\x82\x09\x82\x0a", /* af80 */ "\x00\x00\x82\x0b\x82\x0e\x82\x0f\x82\x11\x82\x13\x82\x15\x82\x16\x82\x17\x82\x18\x82\x19\x82\x1a\x82\x1d\x82\x20\x82\x24\x82\x25\x82\x26\x82\x27\x82\x29\x82\x2e\x82\x32\x82\x3a\x82\x3c\x82\x3d\x82\x3f\x82\x40\x82\x41\x82\x42\x82\x43\x82\x45\x82\x46\x82\x48\x82\x4a\x82\x4c\x82\x4d\x82\x4e\x82\x50\x82\x51\x82\x52\x82\x53\x82\x54\x82\x55\x82\x56\x82\x57\x82\x59\x82\x5b\x82\x5c\x82\x5d\x82\x5e\x82\x60\x82\x61\x82\x62\x82\x63\x82\x64\x82\x65\x82\x66\x82\x67\x82\x69\x82\x6a\x82\x6b\x82\x6c\x82\x6d\x82\x71\x82\x75\x82\x76\x82\x77\x82\x78\x82\x7b\x82\x7c\x82\x80\x82\x81\x82\x83\x82\x85\x82\x86\x82\x87\x82\x89\x82\x8c\x82\x90\x82\x93\x82\x94\x82\x95\x82\x96\x82\x9a\x82\x9b\x82\x9e\x82\xa0\x82\xa2\x82\xa3\x82\xa7\x82\xb2\x82\xb5\x82\xb6\x82\xba\x82\xbb\x82\xbc\x82\xbf\x82\xc0\x82\xc2\x82\xc3\x82\xc5\x82\xc6\x82\xc9\x82\xd0\x82\xd6\x82\xd9\x82\xda\x82\xdd\x82\xe2\x82\xe7\x82\xe8\x82\xe9\x82\xea\x82\xec\x82\xed\x82\xee\x82\xf0\x82\xf2\x82\xf3\x82\xf5\x82\xf6\x82\xf8\x82\xfa\x82\xfc\x82\xfd\x82\xfe\x82\xff\x00\x00\x00\x00", /* b000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x83\x0a\x83\x0b\x83\x0d\x83\x10\x83\x12\x83\x13\x83\x16\x83\x18\x83\x19\x83\x1d\x83\x1e\x83\x1f\x83\x20\x83\x21\x83\x22\x83\x23\x83\x24\x83\x25\x83\x26\x83\x29\x83\x2a\x83\x2e\x83\x30\x83\x32\x83\x37\x83\x3b\x83\x3d\x83\x3e\x83\x3f\x83\x41\x83\x42\x83\x44\x83\x45\x83\x48\x83\x4a\x83\x4b\x83\x4c\x83\x4d\x83\x4e\x83\x53\x83\x55\x83\x56\x83\x57\x83\x58\x83\x59\x83\x5d\x83\x62\x83\x70\x83\x71\x83\x72\x83\x73\x83\x74\x83\x75\x83\x76\x83\x79\x83\x7a\x83\x7e\x83\x7f\x83\x80\x83\x81\x83\x82\x83\x83", /* b080 */ "\x00\x00\x83\x84\x83\x87\x83\x88\x83\x8a\x83\x8b\x83\x8c\x83\x8d\x83\x8f\x83\x90\x83\x91\x83\x94\x83\x95\x83\x96\x83\x97\x83\x99\x83\x9a\x83\x9d\x83\x9f\x83\xa1\x83\xa2\x83\xa3\x83\xa4\x83\xa5\x83\xa6\x83\xa7\x83\xac\x83\xad\x83\xae\x83\xaf\x83\xb5\x83\xbb\x83\xbe\x83\xbf\x83\xc2\x83\xc3\x83\xc4\x83\xc6\x83\xc8\x83\xc9\x83\xcb\x83\xcd\x83\xce\x83\xd0\x83\xd1\x83\xd2\x83\xd3\x83\xd5\x83\xd7\x83\xd9\x83\xda\x83\xdb\x83\xde\x83\xe2\x83\xe3\x83\xe4\x83\xe6\x83\xe7\x83\xe8\x83\xeb\x83\xec\x83\xed\x83\xee\x83\xef\x83\xf3\x83\xf4\x83\xf5\x83\xf6\x83\xf7\x83\xfa\x83\xfb\x83\xfc\x83\xfe\x83\xff\x84\x00\x84\x02\x84\x05\x84\x07\x84\x08\x84\x09\x84\x0a\x84\x10\x84\x12\x84\x13\x84\x14\x84\x15\x84\x16\x84\x17\x84\x19\x84\x1a\x84\x1b\x84\x1e\x84\x1f\x84\x20\x84\x21\x84\x22\x84\x23\x84\x29\x84\x2a\x84\x2b\x84\x2c\x84\x2d\x84\x2e\x84\x2f\x84\x30\x84\x32\x84\x33\x84\x34\x84\x35\x84\x36\x84\x37\x84\x39\x84\x3a\x84\x3b\x84\x3e\x84\x3f\x84\x40\x84\x41\x84\x42\x84\x43\x84\x44\x84\x45\x84\x47\x84\x48\x84\x49\x84\x4a\x00\x00\x00\x00", /* b100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x4b\x84\x4c\x84\x4d\x84\x4e\x84\x4f\x84\x50\x84\x52\x84\x53\x84\x54\x84\x55\x84\x56\x84\x58\x84\x5d\x84\x5e\x84\x5f\x84\x60\x84\x62\x84\x64\x84\x65\x84\x66\x84\x67\x84\x68\x84\x6a\x84\x6e\x84\x6f\x84\x70\x84\x72\x84\x74\x84\x77\x84\x79\x84\x7b\x84\x7c\x84\x7d\x84\x7e\x84\x7f\x84\x80\x84\x81\x84\x83\x84\x84\x84\x85\x84\x86\x84\x8a\x84\x8d\x84\x8f\x84\x90\x84\x91\x84\x92\x84\x93\x84\x94\x84\x95\x84\x96\x84\x98\x84\x9a\x84\x9b\x84\x9d\x84\x9e\x84\x9f\x84\xa0\x84\xa2\x84\xa3\x84\xa4\x84\xa5\x84\xa6", /* b180 */ "\x00\x00\x84\xa7\x84\xa8\x84\xa9\x84\xaa\x84\xab\x84\xac\x84\xad\x84\xae\x84\xb0\x84\xb1\x84\xb3\x84\xb5\x84\xb6\x84\xb7\x84\xbb\x84\xbc\x84\xbe\x84\xc0\x84\xc2\x84\xc3\x84\xc5\x84\xc6\x84\xc7\x84\xc8\x84\xcb\x84\xcc\x84\xce\x84\xcf\x84\xd2\x84\xd4\x84\xd5\x84\xd7\x84\xd8\x84\xd9\x84\xda\x84\xdb\x84\xdc\x84\xde\x84\xe1\x84\xe2\x84\xe4\x84\xe7\x84\xe8\x84\xe9\x84\xea\x84\xeb\x84\xed\x84\xee\x84\xef\x84\xf1\x84\xf2\x84\xf3\x84\xf4\x84\xf5\x84\xf6\x84\xf7\x84\xf8\x84\xf9\x84\xfa\x84\xfb\x84\xfd\x84\xfe\x85\x00\x85\x01\x85\x02\x85\x03\x85\x04\x85\x05\x85\x06\x85\x07\x85\x08\x85\x09\x85\x0a\x85\x0b\x85\x0d\x85\x0e\x85\x0f\x85\x10\x85\x12\x85\x14\x85\x15\x85\x16\x85\x18\x85\x19\x85\x1b\x85\x1c\x85\x1d\x85\x1e\x85\x20\x85\x22\x85\x23\x85\x24\x85\x25\x85\x26\x85\x27\x85\x28\x85\x29\x85\x2a\x85\x2d\x85\x2e\x85\x2f\x85\x30\x85\x31\x85\x32\x85\x33\x85\x34\x85\x35\x85\x36\x85\x3e\x85\x3f\x85\x40\x85\x41\x85\x42\x85\x44\x85\x45\x85\x46\x85\x47\x85\x4b\x85\x4c\x85\x4d\x85\x4e\x85\x4f\x85\x50\x85\x51\x85\x52\x00\x00\x00\x00", /* b200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x53\x85\x54\x85\x55\x85\x57\x85\x58\x85\x5a\x85\x5b\x85\x5c\x85\x5d\x85\x5f\x85\x60\x85\x61\x85\x62\x85\x63\x85\x65\x85\x66\x85\x67\x85\x69\x85\x6a\x85\x6b\x85\x6c\x85\x6d\x85\x6e\x85\x6f\x85\x70\x85\x71\x85\x73\x85\x75\x85\x76\x85\x77\x85\x78\x85\x7c\x85\x7d\x85\x7f\x85\x80\x85\x81\x85\x82\x85\x83\x85\x86\x85\x88\x85\x89\x85\x8a\x85\x8b\x85\x8c\x85\x8d\x85\x8e\x85\x90\x85\x91\x85\x92\x85\x93\x85\x94\x85\x95\x85\x96\x85\x97\x85\x98\x85\x99\x85\x9a\x85\x9d\x85\x9e\x85\x9f\x85\xa0\x85\xa1\x85\xa2", /* b280 */ "\x00\x00\x85\xa3\x85\xa5\x85\xa6\x85\xa7\x85\xa9\x85\xab\x85\xac\x85\xad\x85\xb1\x85\xb2\x85\xb3\x85\xb4\x85\xb5\x85\xb6\x85\xb8\x85\xba\x85\xbb\x85\xbc\x85\xbd\x85\xbe\x85\xbf\x85\xc0\x85\xc2\x85\xc3\x85\xc4\x85\xc5\x85\xc6\x85\xc7\x85\xc8\x85\xca\x85\xcb\x85\xcc\x85\xcd\x85\xce\x85\xd1\x85\xd2\x85\xd4\x85\xd6\x85\xd7\x85\xd8\x85\xd9\x85\xda\x85\xdb\x85\xdd\x85\xde\x85\xdf\x85\xe0\x85\xe1\x85\xe2\x85\xe3\x85\xe5\x85\xe6\x85\xe7\x85\xe8\x85\xea\x85\xeb\x85\xec\x85\xed\x85\xee\x85\xef\x85\xf0\x85\xf1\x85\xf2\x85\xf3\x85\xf4\x85\xf5\x85\xf6\x85\xf7\x85\xf8\x85\xf9\x85\xfa\x85\xfc\x85\xfd\x85\xfe\x86\x00\x86\x01\x86\x02\x86\x03\x86\x04\x86\x06\x86\x07\x86\x08\x86\x09\x86\x0a\x86\x0b\x86\x0c\x86\x0d\x86\x0e\x86\x0f\x86\x10\x86\x12\x86\x13\x86\x14\x86\x15\x86\x17\x86\x18\x86\x19\x86\x1a\x86\x1b\x86\x1c\x86\x1d\x86\x1e\x86\x1f\x86\x20\x86\x21\x86\x22\x86\x23\x86\x24\x86\x25\x86\x26\x86\x28\x86\x2a\x86\x2b\x86\x2c\x86\x2d\x86\x2e\x86\x2f\x86\x30\x86\x31\x86\x32\x86\x33\x86\x34\x86\x35\x86\x36\x86\x37\x00\x00\x00\x00", /* b300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x39\x86\x3a\x86\x3b\x86\x3d\x86\x3e\x86\x3f\x86\x40\x86\x41\x86\x42\x86\x43\x86\x44\x86\x45\x86\x46\x86\x47\x86\x48\x86\x49\x86\x4a\x86\x4b\x86\x4c\x86\x52\x86\x53\x86\x55\x86\x56\x86\x57\x86\x58\x86\x59\x86\x5b\x86\x5c\x86\x5d\x86\x5f\x86\x60\x86\x61\x86\x63\x86\x64\x86\x65\x86\x66\x86\x67\x86\x68\x86\x69\x86\x6a\x86\x6d\x86\x6f\x86\x70\x86\x72\x86\x73\x86\x74\x86\x75\x86\x76\x86\x77\x86\x78\x86\x83\x86\x84\x86\x85\x86\x86\x86\x87\x86\x88\x86\x89\x86\x8e\x86\x8f\x86\x90\x86\x91\x86\x92\x86\x94", /* b380 */ "\x00\x00\x86\x96\x86\x97\x86\x98\x86\x99\x86\x9a\x86\x9b\x86\x9e\x86\x9f\x86\xa0\x86\xa1\x86\xa2\x86\xa5\x86\xa6\x86\xab\x86\xad\x86\xae\x86\xb2\x86\xb3\x86\xb7\x86\xb8\x86\xb9\x86\xbb\x86\xbc\x86\xbd\x86\xbe\x86\xbf\x86\xc1\x86\xc2\x86\xc3\x86\xc5\x86\xc8\x86\xcc\x86\xcd\x86\xd2\x86\xd3\x86\xd5\x86\xd6\x86\xd7\x86\xda\x86\xdc\x86\xdd\x86\xe0\x86\xe1\x86\xe2\x86\xe3\x86\xe5\x86\xe6\x86\xe7\x86\xe8\x86\xea\x86\xeb\x86\xec\x86\xef\x86\xf5\x86\xf6\x86\xf7\x86\xfa\x86\xfb\x86\xfc\x86\xfd\x86\xff\x87\x01\x87\x04\x87\x05\x87\x06\x87\x0b\x87\x0c\x87\x0e\x87\x0f\x87\x10\x87\x11\x87\x14\x87\x16\x87\x19\x87\x1b\x87\x1d\x87\x1f\x87\x20\x87\x24\x87\x26\x87\x27\x87\x28\x87\x2a\x87\x2b\x87\x2c\x87\x2d\x87\x2f\x87\x30\x87\x32\x87\x33\x87\x35\x87\x36\x87\x38\x87\x39\x87\x3a\x87\x3c\x87\x3d\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46\x87\x4a\x87\x4b\x87\x4d\x87\x4f\x87\x50\x87\x51\x87\x52\x87\x54\x87\x55\x87\x56\x87\x58\x87\x5a\x87\x5b\x87\x5c\x87\x5d\x87\x5e\x87\x5f\x87\x61\x87\x62\x87\x66\x87\x67\x00\x00\x00\x00", /* b400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x68\x87\x69\x87\x6a\x87\x6b\x87\x6c\x87\x6d\x87\x6f\x87\x71\x87\x72\x87\x73\x87\x75\x87\x77\x87\x78\x87\x79\x87\x7a\x87\x7f\x87\x80\x87\x81\x87\x84\x87\x86\x87\x87\x87\x89\x87\x8a\x87\x8c\x87\x8e\x87\x8f\x87\x90\x87\x91\x87\x92\x87\x94\x87\x95\x87\x96\x87\x98\x87\x99\x87\x9a\x87\x9b\x87\x9c\x87\x9d\x87\x9e\x87\xa0\x87\xa1\x87\xa2\x87\xa3\x87\xa4\x87\xa5\x87\xa6\x87\xa7\x87\xa9\x87\xaa\x87\xae\x87\xb0\x87\xb1\x87\xb2\x87\xb4\x87\xb6\x87\xb7\x87\xb8\x87\xb9\x87\xbb\x87\xbc\x87\xbe\x87\xbf\x87\xc1", /* b480 */ "\x00\x00\x87\xc2\x87\xc3\x87\xc4\x87\xc5\x87\xc7\x87\xc8\x87\xc9\x87\xcc\x87\xcd\x87\xce\x87\xcf\x87\xd0\x87\xd4\x87\xd5\x87\xd6\x87\xd7\x87\xd8\x87\xd9\x87\xda\x87\xdc\x87\xdd\x87\xde\x87\xdf\x87\xe1\x87\xe2\x87\xe3\x87\xe4\x87\xe6\x87\xe7\x87\xe8\x87\xe9\x87\xeb\x87\xec\x87\xed\x87\xef\x87\xf0\x87\xf1\x87\xf2\x87\xf3\x87\xf4\x87\xf5\x87\xf6\x87\xf7\x87\xf8\x87\xfa\x87\xfb\x87\xfc\x87\xfd\x87\xff\x88\x00\x88\x01\x88\x02\x88\x04\x88\x05\x88\x06\x88\x07\x88\x08\x88\x09\x88\x0b\x88\x0c\x88\x0d\x88\x0e\x88\x0f\x88\x10\x88\x11\x88\x12\x88\x14\x88\x17\x88\x18\x88\x19\x88\x1a\x88\x1c\x88\x1d\x88\x1e\x88\x1f\x88\x20\x88\x23\x88\x24\x88\x25\x88\x26\x88\x27\x88\x28\x88\x29\x88\x2a\x88\x2b\x88\x2c\x88\x2d\x88\x2e\x88\x2f\x88\x30\x88\x31\x88\x33\x88\x34\x88\x35\x88\x36\x88\x37\x88\x38\x88\x3a\x88\x3b\x88\x3d\x88\x3e\x88\x3f\x88\x41\x88\x42\x88\x43\x88\x46\x88\x47\x88\x48\x88\x49\x88\x4a\x88\x4b\x88\x4e\x88\x4f\x88\x50\x88\x51\x88\x52\x88\x53\x88\x55\x88\x56\x88\x58\x88\x5a\x88\x5b\x88\x5c\x88\x5d\x88\x5e\x00\x00\x00\x00", /* b500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x5f\x88\x60\x88\x66\x88\x67\x88\x6a\x88\x6d\x88\x6f\x88\x71\x88\x73\x88\x74\x88\x75\x88\x76\x88\x78\x88\x79\x88\x7a\x88\x7b\x88\x7c\x88\x80\x88\x83\x88\x86\x88\x87\x88\x89\x88\x8a\x88\x8c\x88\x8e\x88\x8f\x88\x90\x88\x91\x88\x93\x88\x94\x88\x95\x88\x97\x88\x98\x88\x99\x88\x9a\x88\x9b\x88\x9d\x88\x9e\x88\x9f\x88\xa0\x88\xa1\x88\xa3\x88\xa5\x88\xa6\x88\xa7\x88\xa8\x88\xa9\x88\xaa\x88\xac\x88\xae\x88\xaf\x88\xb0\x88\xb2\x88\xb3\x88\xb4\x88\xb5\x88\xb6\x88\xb8\x88\xb9\x88\xba\x88\xbb\x88\xbd\x88\xbe", /* b580 */ "\x00\x00\x88\xbf\x88\xc0\x88\xc3\x88\xc4\x88\xc7\x88\xc8\x88\xca\x88\xcb\x88\xcc\x88\xcd\x88\xcf\x88\xd0\x88\xd1\x88\xd3\x88\xd6\x88\xd7\x88\xda\x88\xdb\x88\xdc\x88\xdd\x88\xde\x88\xe0\x88\xe1\x88\xe6\x88\xe7\x88\xe9\x88\xea\x88\xeb\x88\xec\x88\xed\x88\xee\x88\xef\x88\xf2\x88\xf5\x88\xf6\x88\xf7\x88\xfa\x88\xfb\x88\xfd\x88\xff\x89\x00\x89\x01\x89\x03\x89\x04\x89\x05\x89\x06\x89\x07\x89\x08\x89\x09\x89\x0b\x89\x0c\x89\x0d\x89\x0e\x89\x0f\x89\x11\x89\x14\x89\x15\x89\x16\x89\x17\x89\x18\x89\x1c\x89\x1d\x89\x1e\x89\x1f\x89\x20\x89\x22\x89\x23\x89\x24\x89\x26\x89\x27\x89\x28\x89\x29\x89\x2c\x89\x2d\x89\x2e\x89\x2f\x89\x31\x89\x32\x89\x33\x89\x35\x89\x37\x89\x38\x89\x39\x89\x3a\x89\x3b\x89\x3c\x89\x3d\x89\x3e\x89\x3f\x89\x40\x89\x42\x89\x43\x89\x45\x89\x46\x89\x47\x89\x48\x89\x49\x89\x4a\x89\x4b\x89\x4c\x89\x4d\x89\x4e\x89\x4f\x89\x50\x89\x51\x89\x52\x89\x53\x89\x54\x89\x55\x89\x56\x89\x57\x89\x58\x89\x59\x89\x5a\x89\x5b\x89\x5c\x89\x5d\x89\x60\x89\x61\x89\x62\x89\x63\x89\x64\x89\x65\x89\x67\x89\x68\x00\x00\x00\x00", /* b600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x69\x89\x6a\x89\x6b\x89\x6c\x89\x6d\x89\x6e\x89\x6f\x89\x70\x89\x71\x89\x72\x89\x73\x89\x74\x89\x75\x89\x76\x89\x77\x89\x78\x89\x79\x89\x7a\x89\x7c\x89\x7d\x89\x7e\x89\x80\x89\x82\x89\x84\x89\x85\x89\x87\x89\x88\x89\x89\x89\x8a\x89\x8b\x89\x8c\x89\x8d\x89\x8e\x89\x8f\x89\x90\x89\x91\x89\x92\x89\x93\x89\x94\x89\x95\x89\x96\x89\x97\x89\x98\x89\x99\x89\x9a\x89\x9b\x89\x9c\x89\x9d\x89\x9e\x89\x9f\x89\xa0\x89\xa1\x89\xa2\x89\xa3\x89\xa4\x89\xa5\x89\xa6\x89\xa7\x89\xa8\x89\xa9\x89\xaa\x89\xab\x89\xac", /* b680 */ "\x00\x00\x89\xad\x89\xae\x89\xaf\x89\xb0\x89\xb1\x89\xb2\x89\xb3\x89\xb4\x89\xb5\x89\xb6\x89\xb7\x89\xb8\x89\xb9\x89\xba\x89\xbb\x89\xbc\x89\xbd\x89\xbe\x89\xbf\x89\xc0\x89\xc3\x89\xcd\x89\xd3\x89\xd4\x89\xd5\x89\xd7\x89\xd8\x89\xd9\x89\xdb\x89\xdd\x89\xdf\x89\xe0\x89\xe1\x89\xe2\x89\xe4\x89\xe7\x89\xe8\x89\xe9\x89\xea\x89\xec\x89\xed\x89\xee\x89\xf0\x89\xf1\x89\xf2\x89\xf4\x89\xf5\x89\xf6\x89\xf7\x89\xf8\x89\xf9\x89\xfa\x89\xfb\x89\xfc\x89\xfd\x89\xfe\x89\xff\x8a\x01\x8a\x02\x8a\x03\x8a\x04\x8a\x05\x8a\x06\x8a\x08\x8a\x09\x8a\x0a\x8a\x0b\x8a\x0c\x8a\x0d\x8a\x0e\x8a\x0f\x8a\x10\x8a\x11\x8a\x12\x8a\x13\x8a\x14\x8a\x15\x8a\x16\x8a\x17\x8a\x18\x8a\x19\x8a\x1a\x8a\x1b\x8a\x1c\x8a\x1d\x8a\x1e\x8a\x1f\x8a\x20\x8a\x21\x8a\x22\x8a\x23\x8a\x24\x8a\x25\x8a\x26\x8a\x27\x8a\x28\x8a\x29\x8a\x2a\x8a\x2b\x8a\x2c\x8a\x2d\x8a\x2e\x8a\x2f\x8a\x30\x8a\x31\x8a\x32\x8a\x33\x8a\x34\x8a\x35\x8a\x36\x8a\x37\x8a\x38\x8a\x39\x8a\x3a\x8a\x3b\x8a\x3c\x8a\x3d\x8a\x3f\x8a\x40\x8a\x41\x8a\x42\x8a\x43\x8a\x44\x8a\x45\x8a\x46\x00\x00\x00\x00", /* b700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x47\x8a\x49\x8a\x4a\x8a\x4b\x8a\x4c\x8a\x4d\x8a\x4e\x8a\x4f\x8a\x50\x8a\x51\x8a\x52\x8a\x53\x8a\x54\x8a\x55\x8a\x56\x8a\x57\x8a\x58\x8a\x59\x8a\x5a\x8a\x5b\x8a\x5c\x8a\x5d\x8a\x5e\x8a\x5f\x8a\x60\x8a\x61\x8a\x62\x8a\x63\x8a\x64\x8a\x65\x8a\x66\x8a\x67\x8a\x68\x8a\x69\x8a\x6a\x8a\x6b\x8a\x6c\x8a\x6d\x8a\x6e\x8a\x6f\x8a\x70\x8a\x71\x8a\x72\x8a\x73\x8a\x74\x8a\x75\x8a\x76\x8a\x77\x8a\x78\x8a\x7a\x8a\x7b\x8a\x7c\x8a\x7d\x8a\x7e\x8a\x7f\x8a\x80\x8a\x81\x8a\x82\x8a\x83\x8a\x84\x8a\x85\x8a\x86\x8a\x87", /* b780 */ "\x00\x00\x8a\x88\x8a\x8b\x8a\x8c\x8a\x8d\x8a\x8e\x8a\x8f\x8a\x90\x8a\x91\x8a\x92\x8a\x94\x8a\x95\x8a\x96\x8a\x97\x8a\x98\x8a\x99\x8a\x9a\x8a\x9b\x8a\x9c\x8a\x9d\x8a\x9e\x8a\x9f\x8a\xa0\x8a\xa1\x8a\xa2\x8a\xa3\x8a\xa4\x8a\xa5\x8a\xa6\x8a\xa7\x8a\xa8\x8a\xa9\x8a\xaa\x8a\xab\x8a\xac\x8a\xad\x8a\xae\x8a\xaf\x8a\xb0\x8a\xb1\x8a\xb2\x8a\xb3\x8a\xb4\x8a\xb5\x8a\xb6\x8a\xb7\x8a\xb8\x8a\xb9\x8a\xba\x8a\xbb\x8a\xbc\x8a\xbd\x8a\xbe\x8a\xbf\x8a\xc0\x8a\xc1\x8a\xc2\x8a\xc3\x8a\xc4\x8a\xc5\x8a\xc6\x8a\xc7\x8a\xc8\x8a\xc9\x8a\xca\x8a\xcb\x8a\xcc\x8a\xcd\x8a\xce\x8a\xcf\x8a\xd0\x8a\xd1\x8a\xd2\x8a\xd3\x8a\xd4\x8a\xd5\x8a\xd6\x8a\xd7\x8a\xd8\x8a\xd9\x8a\xda\x8a\xdb\x8a\xdc\x8a\xdd\x8a\xde\x8a\xdf\x8a\xe0\x8a\xe1\x8a\xe2\x8a\xe3\x8a\xe4\x8a\xe5\x8a\xe6\x8a\xe7\x8a\xe8\x8a\xe9\x8a\xea\x8a\xeb\x8a\xec\x8a\xed\x8a\xee\x8a\xef\x8a\xf0\x8a\xf1\x8a\xf2\x8a\xf3\x8a\xf4\x8a\xf5\x8a\xf6\x8a\xf7\x8a\xf8\x8a\xf9\x8a\xfa\x8a\xfb\x8a\xfc\x8a\xfd\x8a\xfe\x8a\xff\x8b\x00\x8b\x01\x8b\x02\x8b\x03\x8b\x04\x8b\x05\x8b\x06\x8b\x08\x00\x00\x00\x00", /* b800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x09\x8b\x0a\x8b\x0b\x8b\x0c\x8b\x0d\x8b\x0e\x8b\x0f\x8b\x10\x8b\x11\x8b\x12\x8b\x13\x8b\x14\x8b\x15\x8b\x16\x8b\x17\x8b\x18\x8b\x19\x8b\x1a\x8b\x1b\x8b\x1c\x8b\x1d\x8b\x1e\x8b\x1f\x8b\x20\x8b\x21\x8b\x22\x8b\x23\x8b\x24\x8b\x25\x8b\x27\x8b\x28\x8b\x29\x8b\x2a\x8b\x2b\x8b\x2c\x8b\x2d\x8b\x2e\x8b\x2f\x8b\x30\x8b\x31\x8b\x32\x8b\x33\x8b\x34\x8b\x35\x8b\x36\x8b\x37\x8b\x38\x8b\x39\x8b\x3a\x8b\x3b\x8b\x3c\x8b\x3d\x8b\x3e\x8b\x3f\x8b\x40\x8b\x41\x8b\x42\x8b\x43\x8b\x44\x8b\x45\x8b\x46\x8b\x47\x8b\x48", /* b880 */ "\x00\x00\x8b\x49\x8b\x4a\x8b\x4b\x8b\x4c\x8b\x4d\x8b\x4e\x8b\x4f\x8b\x50\x8b\x51\x8b\x52\x8b\x53\x8b\x54\x8b\x55\x8b\x56\x8b\x57\x8b\x58\x8b\x59\x8b\x5a\x8b\x5b\x8b\x5c\x8b\x5d\x8b\x5e\x8b\x5f\x8b\x60\x8b\x61\x8b\x62\x8b\x63\x8b\x64\x8b\x65\x8b\x67\x8b\x68\x8b\x69\x8b\x6a\x8b\x6b\x8b\x6d\x8b\x6e\x8b\x6f\x8b\x70\x8b\x71\x8b\x72\x8b\x73\x8b\x74\x8b\x75\x8b\x76\x8b\x77\x8b\x78\x8b\x79\x8b\x7a\x8b\x7b\x8b\x7c\x8b\x7d\x8b\x7e\x8b\x7f\x8b\x80\x8b\x81\x8b\x82\x8b\x83\x8b\x84\x8b\x85\x8b\x86\x8b\x87\x8b\x88\x8b\x89\x8b\x8a\x8b\x8b\x8b\x8c\x8b\x8d\x8b\x8e\x8b\x8f\x8b\x90\x8b\x91\x8b\x92\x8b\x93\x8b\x94\x8b\x95\x8b\x96\x8b\x97\x8b\x98\x8b\x99\x8b\x9a\x8b\x9b\x8b\x9c\x8b\x9d\x8b\x9e\x8b\x9f\x8b\xac\x8b\xb1\x8b\xbb\x8b\xc7\x8b\xd0\x8b\xea\x8c\x09\x8c\x1e\x8c\x38\x8c\x39\x8c\x3a\x8c\x3b\x8c\x3c\x8c\x3d\x8c\x3e\x8c\x3f\x8c\x40\x8c\x42\x8c\x43\x8c\x44\x8c\x45\x8c\x48\x8c\x4a\x8c\x4b\x8c\x4d\x8c\x4e\x8c\x4f\x8c\x50\x8c\x51\x8c\x52\x8c\x53\x8c\x54\x8c\x56\x8c\x57\x8c\x58\x8c\x59\x8c\x5b\x8c\x5c\x8c\x5d\x8c\x5e\x00\x00\x00\x00", /* b900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x5f\x8c\x60\x8c\x63\x8c\x64\x8c\x65\x8c\x66\x8c\x67\x8c\x68\x8c\x69\x8c\x6c\x8c\x6d\x8c\x6e\x8c\x6f\x8c\x70\x8c\x71\x8c\x72\x8c\x74\x8c\x75\x8c\x76\x8c\x77\x8c\x7b\x8c\x7c\x8c\x7d\x8c\x7e\x8c\x7f\x8c\x80\x8c\x81\x8c\x83\x8c\x84\x8c\x86\x8c\x87\x8c\x88\x8c\x8b\x8c\x8d\x8c\x8e\x8c\x8f\x8c\x90\x8c\x91\x8c\x92\x8c\x93\x8c\x95\x8c\x96\x8c\x97\x8c\x99\x8c\x9a\x8c\x9b\x8c\x9c\x8c\x9d\x8c\x9e\x8c\x9f\x8c\xa0\x8c\xa1\x8c\xa2\x8c\xa3\x8c\xa4\x8c\xa5\x8c\xa6\x8c\xa7\x8c\xa8\x8c\xa9\x8c\xaa\x8c\xab\x8c\xac", /* b980 */ "\x00\x00\x8c\xad\x8c\xae\x8c\xaf\x8c\xb0\x8c\xb1\x8c\xb2\x8c\xb3\x8c\xb4\x8c\xb5\x8c\xb6\x8c\xb7\x8c\xb8\x8c\xb9\x8c\xba\x8c\xbb\x8c\xbc\x8c\xbd\x8c\xbe\x8c\xbf\x8c\xc0\x8c\xc1\x8c\xc2\x8c\xc3\x8c\xc4\x8c\xc5\x8c\xc6\x8c\xc7\x8c\xc8\x8c\xc9\x8c\xca\x8c\xcb\x8c\xcc\x8c\xcd\x8c\xce\x8c\xcf\x8c\xd0\x8c\xd1\x8c\xd2\x8c\xd3\x8c\xd4\x8c\xd5\x8c\xd6\x8c\xd7\x8c\xd8\x8c\xd9\x8c\xda\x8c\xdb\x8c\xdc\x8c\xdd\x8c\xde\x8c\xdf\x8c\xe0\x8c\xe1\x8c\xe2\x8c\xe3\x8c\xe4\x8c\xe5\x8c\xe6\x8c\xe7\x8c\xe8\x8c\xe9\x8c\xea\x8c\xeb\x8c\xec\x8c\xed\x8c\xee\x8c\xef\x8c\xf0\x8c\xf1\x8c\xf2\x8c\xf3\x8c\xf4\x8c\xf5\x8c\xf6\x8c\xf7\x8c\xf8\x8c\xf9\x8c\xfa\x8c\xfb\x8c\xfc\x8c\xfd\x8c\xfe\x8c\xff\x8d\x00\x8d\x01\x8d\x02\x8d\x03\x8d\x04\x8d\x05\x8d\x06\x8d\x07\x8d\x08\x8d\x09\x8d\x0a\x8d\x0b\x8d\x0c\x8d\x0d\x8d\x0e\x8d\x0f\x8d\x10\x8d\x11\x8d\x12\x8d\x13\x8d\x14\x8d\x15\x8d\x16\x8d\x17\x8d\x18\x8d\x19\x8d\x1a\x8d\x1b\x8d\x1c\x8d\x20\x8d\x51\x8d\x52\x8d\x57\x8d\x5f\x8d\x65\x8d\x68\x8d\x69\x8d\x6a\x8d\x6c\x8d\x6e\x8d\x6f\x8d\x71\x00\x00\x00\x00", /* ba00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x72\x8d\x78\x8d\x79\x8d\x7a\x8d\x7b\x8d\x7c\x8d\x7d\x8d\x7e\x8d\x7f\x8d\x80\x8d\x82\x8d\x83\x8d\x86\x8d\x87\x8d\x88\x8d\x89\x8d\x8c\x8d\x8d\x8d\x8e\x8d\x8f\x8d\x90\x8d\x92\x8d\x93\x8d\x95\x8d\x96\x8d\x97\x8d\x98\x8d\x99\x8d\x9a\x8d\x9b\x8d\x9c\x8d\x9d\x8d\x9e\x8d\xa0\x8d\xa1\x8d\xa2\x8d\xa4\x8d\xa5\x8d\xa6\x8d\xa7\x8d\xa8\x8d\xa9\x8d\xaa\x8d\xab\x8d\xac\x8d\xad\x8d\xae\x8d\xaf\x8d\xb0\x8d\xb2\x8d\xb6\x8d\xb7\x8d\xb9\x8d\xbb\x8d\xbd\x8d\xc0\x8d\xc1\x8d\xc2\x8d\xc5\x8d\xc7\x8d\xc8\x8d\xc9\x8d\xca", /* ba80 */ "\x00\x00\x8d\xcd\x8d\xd0\x8d\xd2\x8d\xd3\x8d\xd4\x8d\xd5\x8d\xd8\x8d\xd9\x8d\xdc\x8d\xe0\x8d\xe1\x8d\xe2\x8d\xe5\x8d\xe6\x8d\xe7\x8d\xe9\x8d\xed\x8d\xee\x8d\xf0\x8d\xf1\x8d\xf2\x8d\xf4\x8d\xf6\x8d\xfc\x8d\xfe\x8d\xff\x8e\x00\x8e\x01\x8e\x02\x8e\x03\x8e\x04\x8e\x06\x8e\x07\x8e\x08\x8e\x0b\x8e\x0d\x8e\x0e\x8e\x10\x8e\x11\x8e\x12\x8e\x13\x8e\x15\x8e\x16\x8e\x17\x8e\x18\x8e\x19\x8e\x1a\x8e\x1b\x8e\x1c\x8e\x20\x8e\x21\x8e\x24\x8e\x25\x8e\x26\x8e\x27\x8e\x28\x8e\x2b\x8e\x2d\x8e\x30\x8e\x32\x8e\x33\x8e\x34\x8e\x36\x8e\x37\x8e\x38\x8e\x3b\x8e\x3c\x8e\x3e\x8e\x3f\x8e\x43\x8e\x45\x8e\x46\x8e\x4c\x8e\x4d\x8e\x4e\x8e\x4f\x8e\x50\x8e\x53\x8e\x54\x8e\x55\x8e\x56\x8e\x57\x8e\x58\x8e\x5a\x8e\x5b\x8e\x5c\x8e\x5d\x8e\x5e\x8e\x5f\x8e\x60\x8e\x61\x8e\x62\x8e\x63\x8e\x64\x8e\x65\x8e\x67\x8e\x68\x8e\x6a\x8e\x6b\x8e\x6e\x8e\x71\x8e\x73\x8e\x75\x8e\x77\x8e\x78\x8e\x79\x8e\x7a\x8e\x7b\x8e\x7d\x8e\x7e\x8e\x80\x8e\x82\x8e\x83\x8e\x84\x8e\x86\x8e\x88\x8e\x89\x8e\x8a\x8e\x8b\x8e\x8c\x8e\x8d\x8e\x8e\x8e\x91\x8e\x92\x8e\x93\x00\x00\x00\x00", /* bb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x95\x8e\x96\x8e\x97\x8e\x98\x8e\x99\x8e\x9a\x8e\x9b\x8e\x9d\x8e\x9f\x8e\xa0\x8e\xa1\x8e\xa2\x8e\xa3\x8e\xa4\x8e\xa5\x8e\xa6\x8e\xa7\x8e\xa8\x8e\xa9\x8e\xaa\x8e\xad\x8e\xae\x8e\xb0\x8e\xb1\x8e\xb3\x8e\xb4\x8e\xb5\x8e\xb6\x8e\xb7\x8e\xb8\x8e\xb9\x8e\xbb\x8e\xbc\x8e\xbd\x8e\xbe\x8e\xbf\x8e\xc0\x8e\xc1\x8e\xc2\x8e\xc3\x8e\xc4\x8e\xc5\x8e\xc6\x8e\xc7\x8e\xc8\x8e\xc9\x8e\xca\x8e\xcb\x8e\xcc\x8e\xcd\x8e\xcf\x8e\xd0\x8e\xd1\x8e\xd2\x8e\xd3\x8e\xd4\x8e\xd5\x8e\xd6\x8e\xd7\x8e\xd8\x8e\xd9\x8e\xda\x8e\xdb", /* bb80 */ "\x00\x00\x8e\xdc\x8e\xdd\x8e\xde\x8e\xdf\x8e\xe0\x8e\xe1\x8e\xe2\x8e\xe3\x8e\xe4\x8e\xe5\x8e\xe6\x8e\xe7\x8e\xe8\x8e\xe9\x8e\xea\x8e\xeb\x8e\xec\x8e\xed\x8e\xee\x8e\xef\x8e\xf0\x8e\xf1\x8e\xf2\x8e\xf3\x8e\xf4\x8e\xf5\x8e\xf6\x8e\xf7\x8e\xf8\x8e\xf9\x8e\xfa\x8e\xfb\x8e\xfc\x8e\xfd\x8e\xfe\x8e\xff\x8f\x00\x8f\x01\x8f\x02\x8f\x03\x8f\x04\x8f\x05\x8f\x06\x8f\x07\x8f\x08\x8f\x09\x8f\x0a\x8f\x0b\x8f\x0c\x8f\x0d\x8f\x0e\x8f\x0f\x8f\x10\x8f\x11\x8f\x12\x8f\x13\x8f\x14\x8f\x15\x8f\x16\x8f\x17\x8f\x18\x8f\x19\x8f\x1a\x8f\x1b\x8f\x1c\x8f\x1d\x8f\x1e\x8f\x1f\x8f\x20\x8f\x21\x8f\x22\x8f\x23\x8f\x24\x8f\x25\x8f\x26\x8f\x27\x8f\x28\x8f\x29\x8f\x2a\x8f\x2b\x8f\x2c\x8f\x2d\x8f\x2e\x8f\x2f\x8f\x30\x8f\x31\x8f\x32\x8f\x33\x8f\x34\x8f\x35\x8f\x36\x8f\x37\x8f\x38\x8f\x39\x8f\x3a\x8f\x3b\x8f\x3c\x8f\x3d\x8f\x3e\x8f\x3f\x8f\x40\x8f\x41\x8f\x42\x8f\x43\x8f\x44\x8f\x45\x8f\x46\x8f\x47\x8f\x48\x8f\x49\x8f\x4a\x8f\x4b\x8f\x4c\x8f\x4d\x8f\x4e\x8f\x4f\x8f\x50\x8f\x51\x8f\x52\x8f\x53\x8f\x54\x8f\x55\x8f\x56\x8f\x57\x8f\x58\x00\x00\x00\x00", /* bc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x59\x8f\x5a\x8f\x5b\x8f\x5c\x8f\x5d\x8f\x5e\x8f\x5f\x8f\x60\x8f\x61\x8f\x62\x8f\x63\x8f\x64\x8f\x65\x8f\x6a\x8f\x80\x8f\x8c\x8f\x92\x8f\x9d\x8f\xa0\x8f\xa1\x8f\xa2\x8f\xa4\x8f\xa5\x8f\xa6\x8f\xa7\x8f\xaa\x8f\xac\x8f\xad\x8f\xae\x8f\xaf\x8f\xb2\x8f\xb3\x8f\xb4\x8f\xb5\x8f\xb7\x8f\xb8\x8f\xba\x8f\xbb\x8f\xbc\x8f\xbf\x8f\xc0\x8f\xc3\x8f\xc6\x8f\xc9\x8f\xca\x8f\xcb\x8f\xcc\x8f\xcd\x8f\xcf\x8f\xd2\x8f\xd6\x8f\xd7\x8f\xda\x8f\xe0\x8f\xe1\x8f\xe3\x8f\xe7\x8f\xec\x8f\xef\x8f\xf1\x8f\xf2\x8f\xf4\x8f\xf5", /* bc80 */ "\x00\x00\x8f\xf6\x8f\xfa\x8f\xfb\x8f\xfc\x8f\xfe\x8f\xff\x90\x07\x90\x08\x90\x0c\x90\x0e\x90\x13\x90\x15\x90\x18\x90\x19\x90\x1c\x90\x23\x90\x24\x90\x25\x90\x27\x90\x28\x90\x29\x90\x2a\x90\x2b\x90\x2c\x90\x30\x90\x31\x90\x32\x90\x33\x90\x34\x90\x37\x90\x39\x90\x3a\x90\x3d\x90\x3f\x90\x40\x90\x43\x90\x45\x90\x46\x90\x48\x90\x49\x90\x4a\x90\x4b\x90\x4c\x90\x4e\x90\x54\x90\x55\x90\x56\x90\x59\x90\x5a\x90\x5c\x90\x5d\x90\x5e\x90\x5f\x90\x60\x90\x61\x90\x64\x90\x66\x90\x67\x90\x69\x90\x6a\x90\x6b\x90\x6c\x90\x6f\x90\x70\x90\x71\x90\x72\x90\x73\x90\x76\x90\x77\x90\x78\x90\x79\x90\x7a\x90\x7b\x90\x7c\x90\x7e\x90\x81\x90\x84\x90\x85\x90\x86\x90\x87\x90\x89\x90\x8a\x90\x8c\x90\x8d\x90\x8e\x90\x8f\x90\x90\x90\x92\x90\x94\x90\x96\x90\x98\x90\x9a\x90\x9c\x90\x9e\x90\x9f\x90\xa0\x90\xa4\x90\xa5\x90\xa7\x90\xa8\x90\xa9\x90\xab\x90\xad\x90\xb2\x90\xb7\x90\xbc\x90\xbd\x90\xbf\x90\xc0\x90\xc2\x90\xc3\x90\xc6\x90\xc8\x90\xc9\x90\xcb\x90\xcc\x90\xcd\x90\xd2\x90\xd4\x90\xd5\x90\xd6\x90\xd8\x90\xd9\x90\xda\x90\xde\x00\x00\x00\x00", /* bd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xdf\x90\xe0\x90\xe3\x90\xe4\x90\xe5\x90\xe9\x90\xea\x90\xec\x90\xee\x90\xf0\x90\xf1\x90\xf2\x90\xf3\x90\xf5\x90\xf6\x90\xf7\x90\xf9\x90\xfa\x90\xfb\x90\xfc\x90\xff\x91\x00\x91\x01\x91\x03\x91\x05\x91\x06\x91\x07\x91\x08\x91\x09\x91\x0a\x91\x0b\x91\x0c\x91\x0d\x91\x0e\x91\x0f\x91\x10\x91\x11\x91\x12\x91\x13\x91\x14\x91\x15\x91\x16\x91\x17\x91\x18\x91\x1a\x91\x1b\x91\x1c\x91\x1d\x91\x1f\x91\x20\x91\x21\x91\x24\x91\x25\x91\x26\x91\x27\x91\x28\x91\x29\x91\x2a\x91\x2b\x91\x2c\x91\x2d\x91\x2e\x91\x30", /* bd80 */ "\x00\x00\x91\x32\x91\x33\x91\x34\x91\x35\x91\x36\x91\x37\x91\x38\x91\x3a\x91\x3b\x91\x3c\x91\x3d\x91\x3e\x91\x3f\x91\x40\x91\x41\x91\x42\x91\x44\x91\x45\x91\x47\x91\x48\x91\x51\x91\x53\x91\x54\x91\x55\x91\x56\x91\x58\x91\x59\x91\x5b\x91\x5c\x91\x5f\x91\x60\x91\x66\x91\x67\x91\x68\x91\x6b\x91\x6d\x91\x73\x91\x7a\x91\x7b\x91\x7c\x91\x80\x91\x81\x91\x82\x91\x83\x91\x84\x91\x86\x91\x88\x91\x8a\x91\x8e\x91\x8f\x91\x93\x91\x94\x91\x95\x91\x96\x91\x97\x91\x98\x91\x99\x91\x9c\x91\x9d\x91\x9e\x91\x9f\x91\xa0\x91\xa1\x91\xa4\x91\xa5\x91\xa6\x91\xa7\x91\xa8\x91\xa9\x91\xab\x91\xac\x91\xb0\x91\xb1\x91\xb2\x91\xb3\x91\xb6\x91\xb7\x91\xb8\x91\xb9\x91\xbb\x91\xbc\x91\xbd\x91\xbe\x91\xbf\x91\xc0\x91\xc1\x91\xc2\x91\xc3\x91\xc4\x91\xc5\x91\xc6\x91\xc8\x91\xcb\x91\xd0\x91\xd2\x91\xd3\x91\xd4\x91\xd5\x91\xd6\x91\xd7\x91\xd8\x91\xd9\x91\xda\x91\xdb\x91\xdd\x91\xde\x91\xdf\x91\xe0\x91\xe1\x91\xe2\x91\xe3\x91\xe4\x91\xe5\x91\xe6\x91\xe7\x91\xe8\x91\xe9\x91\xea\x91\xeb\x91\xec\x91\xed\x91\xee\x91\xef\x91\xf0\x91\xf1\x00\x00\x00\x00", /* be00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xf2\x91\xf3\x91\xf4\x91\xf5\x91\xf6\x91\xf7\x91\xf8\x91\xf9\x91\xfa\x91\xfb\x91\xfc\x91\xfd\x91\xfe\x91\xff\x92\x00\x92\x01\x92\x02\x92\x03\x92\x04\x92\x05\x92\x06\x92\x07\x92\x08\x92\x09\x92\x0a\x92\x0b\x92\x0c\x92\x0d\x92\x0e\x92\x0f\x92\x10\x92\x11\x92\x12\x92\x13\x92\x14\x92\x15\x92\x16\x92\x17\x92\x18\x92\x19\x92\x1a\x92\x1b\x92\x1c\x92\x1d\x92\x1e\x92\x1f\x92\x20\x92\x21\x92\x22\x92\x23\x92\x24\x92\x25\x92\x26\x92\x27\x92\x28\x92\x29\x92\x2a\x92\x2b\x92\x2c\x92\x2d\x92\x2e\x92\x2f\x92\x30", /* be80 */ "\x00\x00\x92\x31\x92\x32\x92\x33\x92\x34\x92\x35\x92\x36\x92\x37\x92\x38\x92\x39\x92\x3a\x92\x3b\x92\x3c\x92\x3d\x92\x3e\x92\x3f\x92\x40\x92\x41\x92\x42\x92\x43\x92\x44\x92\x45\x92\x46\x92\x47\x92\x48\x92\x49\x92\x4a\x92\x4b\x92\x4c\x92\x4d\x92\x4e\x92\x4f\x92\x50\x92\x51\x92\x52\x92\x53\x92\x54\x92\x55\x92\x56\x92\x57\x92\x58\x92\x59\x92\x5a\x92\x5b\x92\x5c\x92\x5d\x92\x5e\x92\x5f\x92\x60\x92\x61\x92\x62\x92\x63\x92\x64\x92\x65\x92\x66\x92\x67\x92\x68\x92\x69\x92\x6a\x92\x6b\x92\x6c\x92\x6d\x92\x6e\x92\x6f\x92\x70\x92\x71\x92\x72\x92\x73\x92\x75\x92\x76\x92\x77\x92\x78\x92\x79\x92\x7a\x92\x7b\x92\x7c\x92\x7d\x92\x7e\x92\x7f\x92\x80\x92\x81\x92\x82\x92\x83\x92\x84\x92\x85\x92\x86\x92\x87\x92\x88\x92\x89\x92\x8a\x92\x8b\x92\x8c\x92\x8d\x92\x8f\x92\x90\x92\x91\x92\x92\x92\x93\x92\x94\x92\x95\x92\x96\x92\x97\x92\x98\x92\x99\x92\x9a\x92\x9b\x92\x9c\x92\x9d\x92\x9e\x92\x9f\x92\xa0\x92\xa1\x92\xa2\x92\xa3\x92\xa4\x92\xa5\x92\xa6\x92\xa7\x92\xa8\x92\xa9\x92\xaa\x92\xab\x92\xac\x92\xad\x92\xaf\x92\xb0\x00\x00\x00\x00", /* bf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\xb1\x92\xb2\x92\xb3\x92\xb4\x92\xb5\x92\xb6\x92\xb7\x92\xb8\x92\xb9\x92\xba\x92\xbb\x92\xbc\x92\xbd\x92\xbe\x92\xbf\x92\xc0\x92\xc1\x92\xc2\x92\xc3\x92\xc4\x92\xc5\x92\xc6\x92\xc7\x92\xc9\x92\xca\x92\xcb\x92\xcc\x92\xcd\x92\xce\x92\xcf\x92\xd0\x92\xd1\x92\xd2\x92\xd3\x92\xd4\x92\xd5\x92\xd6\x92\xd7\x92\xd8\x92\xd9\x92\xda\x92\xdb\x92\xdc\x92\xdd\x92\xde\x92\xdf\x92\xe0\x92\xe1\x92\xe2\x92\xe3\x92\xe4\x92\xe5\x92\xe6\x92\xe7\x92\xe8\x92\xe9\x92\xea\x92\xeb\x92\xec\x92\xed\x92\xee\x92\xef\x92\xf0", /* bf80 */ "\x00\x00\x92\xf1\x92\xf2\x92\xf3\x92\xf4\x92\xf5\x92\xf6\x92\xf7\x92\xf8\x92\xf9\x92\xfa\x92\xfb\x92\xfc\x92\xfd\x92\xfe\x92\xff\x93\x00\x93\x01\x93\x02\x93\x03\x93\x04\x93\x05\x93\x06\x93\x07\x93\x08\x93\x09\x93\x0a\x93\x0b\x93\x0c\x93\x0d\x93\x0e\x93\x0f\x93\x10\x93\x11\x93\x12\x93\x13\x93\x14\x93\x15\x93\x16\x93\x17\x93\x18\x93\x19\x93\x1a\x93\x1b\x93\x1c\x93\x1d\x93\x1e\x93\x1f\x93\x20\x93\x21\x93\x22\x93\x23\x93\x24\x93\x25\x93\x26\x93\x27\x93\x28\x93\x29\x93\x2a\x93\x2b\x93\x2c\x93\x2d\x93\x2e\x93\x2f\x93\x30\x93\x31\x93\x32\x93\x33\x93\x34\x93\x35\x93\x36\x93\x37\x93\x38\x93\x39\x93\x3a\x93\x3b\x93\x3c\x93\x3d\x93\x3f\x93\x40\x93\x41\x93\x42\x93\x43\x93\x44\x93\x45\x93\x46\x93\x47\x93\x48\x93\x49\x93\x4a\x93\x4b\x93\x4c\x93\x4d\x93\x4e\x93\x4f\x93\x50\x93\x51\x93\x52\x93\x53\x93\x54\x93\x55\x93\x56\x93\x57\x93\x58\x93\x59\x93\x5a\x93\x5b\x93\x5c\x93\x5d\x93\x5e\x93\x5f\x93\x60\x93\x61\x93\x62\x93\x63\x93\x64\x93\x65\x93\x66\x93\x67\x93\x68\x93\x69\x93\x6b\x93\x6c\x93\x6d\x93\x6e\x93\x6f\x00\x00\x00\x00", /* c000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x70\x93\x71\x93\x72\x93\x73\x93\x74\x93\x75\x93\x76\x93\x77\x93\x78\x93\x79\x93\x7a\x93\x7b\x93\x7c\x93\x7d\x93\x7e\x93\x7f\x93\x80\x93\x81\x93\x82\x93\x83\x93\x84\x93\x85\x93\x86\x93\x87\x93\x88\x93\x89\x93\x8a\x93\x8b\x93\x8c\x93\x8d\x93\x8e\x93\x90\x93\x91\x93\x92\x93\x93\x93\x94\x93\x95\x93\x96\x93\x97\x93\x98\x93\x99\x93\x9a\x93\x9b\x93\x9c\x93\x9d\x93\x9e\x93\x9f\x93\xa0\x93\xa1\x93\xa2\x93\xa3\x93\xa4\x93\xa5\x93\xa6\x93\xa7\x93\xa8\x93\xa9\x93\xaa\x93\xab\x93\xac\x93\xad\x93\xae\x93\xaf", /* c080 */ "\x00\x00\x93\xb0\x93\xb1\x93\xb2\x93\xb3\x93\xb4\x93\xb5\x93\xb6\x93\xb7\x93\xb8\x93\xb9\x93\xba\x93\xbb\x93\xbc\x93\xbd\x93\xbe\x93\xbf\x93\xc0\x93\xc1\x93\xc2\x93\xc3\x93\xc4\x93\xc5\x93\xc6\x93\xc7\x93\xc8\x93\xc9\x93\xcb\x93\xcc\x93\xcd\x93\xce\x93\xcf\x93\xd0\x93\xd1\x93\xd2\x93\xd3\x93\xd4\x93\xd5\x93\xd7\x93\xd8\x93\xd9\x93\xda\x93\xdb\x93\xdc\x93\xdd\x93\xde\x93\xdf\x93\xe0\x93\xe1\x93\xe2\x93\xe3\x93\xe4\x93\xe5\x93\xe6\x93\xe7\x93\xe8\x93\xe9\x93\xea\x93\xeb\x93\xec\x93\xed\x93\xee\x93\xef\x93\xf0\x93\xf1\x93\xf2\x93\xf3\x93\xf4\x93\xf5\x93\xf6\x93\xf7\x93\xf8\x93\xf9\x93\xfa\x93\xfb\x93\xfc\x93\xfd\x93\xfe\x93\xff\x94\x00\x94\x01\x94\x02\x94\x03\x94\x04\x94\x05\x94\x06\x94\x07\x94\x08\x94\x09\x94\x0a\x94\x0b\x94\x0c\x94\x0d\x94\x0e\x94\x0f\x94\x10\x94\x11\x94\x12\x94\x13\x94\x14\x94\x15\x94\x16\x94\x17\x94\x18\x94\x19\x94\x1a\x94\x1b\x94\x1c\x94\x1d\x94\x1e\x94\x1f\x94\x20\x94\x21\x94\x22\x94\x23\x94\x24\x94\x25\x94\x26\x94\x27\x94\x28\x94\x29\x94\x2a\x94\x2b\x94\x2c\x94\x2d\x94\x2e\x00\x00\x00\x00", /* c100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x2f\x94\x30\x94\x31\x94\x32\x94\x33\x94\x34\x94\x35\x94\x36\x94\x37\x94\x38\x94\x39\x94\x3a\x94\x3b\x94\x3c\x94\x3d\x94\x3f\x94\x40\x94\x41\x94\x42\x94\x43\x94\x44\x94\x45\x94\x46\x94\x47\x94\x48\x94\x49\x94\x4a\x94\x4b\x94\x4c\x94\x4d\x94\x4e\x94\x4f\x94\x50\x94\x51\x94\x52\x94\x53\x94\x54\x94\x55\x94\x56\x94\x57\x94\x58\x94\x59\x94\x5a\x94\x5b\x94\x5c\x94\x5d\x94\x5e\x94\x5f\x94\x60\x94\x61\x94\x62\x94\x63\x94\x64\x94\x65\x94\x66\x94\x67\x94\x68\x94\x69\x94\x6a\x94\x6c\x94\x6d\x94\x6e\x94\x6f", /* c180 */ "\x00\x00\x94\x70\x94\x71\x94\x72\x94\x73\x94\x74\x94\x75\x94\x76\x94\x77\x94\x78\x94\x79\x94\x7a\x94\x7b\x94\x7c\x94\x7d\x94\x7e\x94\x7f\x94\x80\x94\x81\x94\x82\x94\x83\x94\x84\x94\x91\x94\x96\x94\x98\x94\xc7\x94\xcf\x94\xd3\x94\xd4\x94\xda\x94\xe6\x94\xfb\x95\x1c\x95\x20\x95\x27\x95\x33\x95\x3d\x95\x43\x95\x48\x95\x4b\x95\x55\x95\x5a\x95\x60\x95\x6e\x95\x74\x95\x75\x95\x77\x95\x78\x95\x79\x95\x7a\x95\x7b\x95\x7c\x95\x7d\x95\x7e\x95\x80\x95\x81\x95\x82\x95\x83\x95\x84\x95\x85\x95\x86\x95\x87\x95\x88\x95\x89\x95\x8a\x95\x8b\x95\x8c\x95\x8d\x95\x8e\x95\x8f\x95\x90\x95\x91\x95\x92\x95\x93\x95\x94\x95\x95\x95\x96\x95\x97\x95\x98\x95\x99\x95\x9a\x95\x9b\x95\x9c\x95\x9d\x95\x9e\x95\x9f\x95\xa0\x95\xa1\x95\xa2\x95\xa3\x95\xa4\x95\xa5\x95\xa6\x95\xa7\x95\xa8\x95\xa9\x95\xaa\x95\xab\x95\xac\x95\xad\x95\xae\x95\xaf\x95\xb0\x95\xb1\x95\xb2\x95\xb3\x95\xb4\x95\xb5\x95\xb6\x95\xb7\x95\xb8\x95\xb9\x95\xba\x95\xbb\x95\xbc\x95\xbd\x95\xbe\x95\xbf\x95\xc0\x95\xc1\x95\xc2\x95\xc3\x95\xc4\x95\xc5\x95\xc6\x95\xc7\x00\x00\x00\x00", /* c200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\xc8\x95\xc9\x95\xca\x95\xcb\x95\xcc\x95\xcd\x95\xce\x95\xcf\x95\xd0\x95\xd1\x95\xd2\x95\xd3\x95\xd4\x95\xd5\x95\xd6\x95\xd7\x95\xd8\x95\xd9\x95\xda\x95\xdb\x95\xdc\x95\xdd\x95\xde\x95\xdf\x95\xe0\x95\xe1\x95\xe2\x95\xe3\x95\xe4\x95\xe5\x95\xe6\x95\xe7\x95\xec\x95\xff\x96\x07\x96\x13\x96\x18\x96\x1b\x96\x1e\x96\x20\x96\x23\x96\x24\x96\x25\x96\x26\x96\x27\x96\x28\x96\x29\x96\x2b\x96\x2c\x96\x2d\x96\x2f\x96\x30\x96\x37\x96\x38\x96\x39\x96\x3a\x96\x3e\x96\x41\x96\x43\x96\x4a\x96\x4e\x96\x4f\x96\x51", /* c280 */ "\x00\x00\x96\x52\x96\x53\x96\x56\x96\x57\x96\x58\x96\x59\x96\x5a\x96\x5c\x96\x5d\x96\x5e\x96\x60\x96\x63\x96\x65\x96\x66\x96\x6b\x96\x6d\x96\x6e\x96\x6f\x96\x70\x96\x71\x96\x73\x96\x78\x96\x79\x96\x7a\x96\x7b\x96\x7c\x96\x7d\x96\x7e\x96\x7f\x96\x80\x96\x81\x96\x82\x96\x83\x96\x84\x96\x87\x96\x89\x96\x8a\x96\x8c\x96\x8e\x96\x91\x96\x92\x96\x93\x96\x95\x96\x96\x96\x9a\x96\x9b\x96\x9d\x96\x9e\x96\x9f\x96\xa0\x96\xa1\x96\xa2\x96\xa3\x96\xa4\x96\xa5\x96\xa6\x96\xa8\x96\xa9\x96\xaa\x96\xab\x96\xac\x96\xad\x96\xae\x96\xaf\x96\xb1\x96\xb2\x96\xb4\x96\xb5\x96\xb7\x96\xb8\x96\xba\x96\xbb\x96\xbf\x96\xc2\x96\xc3\x96\xc8\x96\xca\x96\xcb\x96\xd0\x96\xd1\x96\xd3\x96\xd4\x96\xd6\x96\xd7\x96\xd8\x96\xd9\x96\xda\x96\xdb\x96\xdc\x96\xdd\x96\xde\x96\xdf\x96\xe1\x96\xe2\x96\xe3\x96\xe4\x96\xe5\x96\xe6\x96\xe7\x96\xeb\x96\xec\x96\xed\x96\xee\x96\xf0\x96\xf1\x96\xf2\x96\xf4\x96\xf5\x96\xf8\x96\xfa\x96\xfb\x96\xfc\x96\xfd\x96\xff\x97\x02\x97\x03\x97\x05\x97\x0a\x97\x0b\x97\x0c\x97\x10\x97\x11\x97\x12\x97\x14\x97\x15\x00\x00\x00\x00", /* c300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x17\x97\x18\x97\x19\x97\x1a\x97\x1b\x97\x1d\x97\x1f\x97\x20\x97\x21\x97\x22\x97\x23\x97\x24\x97\x25\x97\x26\x97\x27\x97\x28\x97\x29\x97\x2b\x97\x2c\x97\x2e\x97\x2f\x97\x31\x97\x33\x97\x34\x97\x35\x97\x36\x97\x37\x97\x3a\x97\x3b\x97\x3c\x97\x3d\x97\x3f\x97\x40\x97\x41\x97\x42\x97\x43\x97\x44\x97\x45\x97\x46\x97\x47\x97\x48\x97\x49\x97\x4a\x97\x4b\x97\x4c\x97\x4d\x97\x4e\x97\x4f\x97\x50\x97\x51\x97\x54\x97\x55\x97\x57\x97\x58\x97\x5a\x97\x5c\x97\x5d\x97\x5f\x97\x63\x97\x64\x97\x66\x97\x67\x97\x68", /* c380 */ "\x00\x00\x97\x6a\x97\x6b\x97\x6c\x97\x6d\x97\x6e\x97\x6f\x97\x70\x97\x71\x97\x72\x97\x75\x97\x77\x97\x78\x97\x79\x97\x7a\x97\x7b\x97\x7d\x97\x7e\x97\x7f\x97\x80\x97\x81\x97\x82\x97\x83\x97\x84\x97\x86\x97\x87\x97\x88\x97\x89\x97\x8a\x97\x8c\x97\x8e\x97\x8f\x97\x90\x97\x93\x97\x95\x97\x96\x97\x97\x97\x99\x97\x9a\x97\x9b\x97\x9c\x97\x9d\x97\x9e\x97\x9f\x97\xa1\x97\xa2\x97\xa4\x97\xa5\x97\xa6\x97\xa7\x97\xa8\x97\xa9\x97\xaa\x97\xac\x97\xae\x97\xb0\x97\xb1\x97\xb3\x97\xb5\x97\xb6\x97\xb7\x97\xb8\x97\xb9\x97\xba\x97\xbb\x97\xbc\x97\xbd\x97\xbe\x97\xbf\x97\xc0\x97\xc1\x97\xc2\x97\xc3\x97\xc4\x97\xc5\x97\xc6\x97\xc7\x97\xc8\x97\xc9\x97\xca\x97\xcb\x97\xcc\x97\xcd\x97\xce\x97\xcf\x97\xd0\x97\xd1\x97\xd2\x97\xd3\x97\xd4\x97\xd5\x97\xd6\x97\xd7\x97\xd8\x97\xd9\x97\xda\x97\xdb\x97\xdc\x97\xdd\x97\xde\x97\xdf\x97\xe0\x97\xe1\x97\xe2\x97\xe3\x97\xe4\x97\xe5\x97\xe8\x97\xee\x97\xef\x97\xf0\x97\xf1\x97\xf2\x97\xf4\x97\xf7\x97\xf8\x97\xf9\x97\xfa\x97\xfb\x97\xfc\x97\xfd\x97\xfe\x97\xff\x98\x00\x98\x01\x98\x02\x00\x00\x00\x00", /* c400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x03\x98\x04\x98\x05\x98\x06\x98\x07\x98\x08\x98\x09\x98\x0a\x98\x0b\x98\x0c\x98\x0d\x98\x0e\x98\x0f\x98\x10\x98\x11\x98\x12\x98\x13\x98\x14\x98\x15\x98\x16\x98\x17\x98\x18\x98\x19\x98\x1a\x98\x1b\x98\x1c\x98\x1d\x98\x1e\x98\x1f\x98\x20\x98\x21\x98\x22\x98\x23\x98\x24\x98\x25\x98\x26\x98\x27\x98\x28\x98\x29\x98\x2a\x98\x2b\x98\x2c\x98\x2d\x98\x2e\x98\x2f\x98\x30\x98\x31\x98\x32\x98\x33\x98\x34\x98\x35\x98\x36\x98\x37\x98\x38\x98\x39\x98\x3a\x98\x3b\x98\x3c\x98\x3d\x98\x3e\x98\x3f\x98\x40\x98\x41", /* c480 */ "\x00\x00\x98\x42\x98\x43\x98\x44\x98\x45\x98\x46\x98\x47\x98\x48\x98\x49\x98\x4a\x98\x4b\x98\x4c\x98\x4d\x98\x4e\x98\x4f\x98\x50\x98\x51\x98\x52\x98\x53\x98\x54\x98\x55\x98\x56\x98\x57\x98\x58\x98\x59\x98\x5a\x98\x5b\x98\x5c\x98\x5d\x98\x5e\x98\x5f\x98\x60\x98\x61\x98\x62\x98\x63\x98\x64\x98\x65\x98\x66\x98\x67\x98\x68\x98\x69\x98\x6a\x98\x6b\x98\x6c\x98\x6d\x98\x6e\x98\x6f\x98\x70\x98\x71\x98\x72\x98\x73\x98\x74\x98\x8b\x98\x8e\x98\x92\x98\x95\x98\x99\x98\xa3\x98\xa8\x98\xa9\x98\xaa\x98\xab\x98\xac\x98\xad\x98\xae\x98\xaf\x98\xb0\x98\xb1\x98\xb2\x98\xb3\x98\xb4\x98\xb5\x98\xb6\x98\xb7\x98\xb8\x98\xb9\x98\xba\x98\xbb\x98\xbc\x98\xbd\x98\xbe\x98\xbf\x98\xc0\x98\xc1\x98\xc2\x98\xc3\x98\xc4\x98\xc5\x98\xc6\x98\xc7\x98\xc8\x98\xc9\x98\xca\x98\xcb\x98\xcc\x98\xcd\x98\xcf\x98\xd0\x98\xd4\x98\xd6\x98\xd7\x98\xdb\x98\xdc\x98\xdd\x98\xe0\x98\xe1\x98\xe2\x98\xe3\x98\xe4\x98\xe5\x98\xe6\x98\xe9\x98\xea\x98\xeb\x98\xec\x98\xed\x98\xee\x98\xef\x98\xf0\x98\xf1\x98\xf2\x98\xf3\x98\xf4\x98\xf5\x98\xf6\x98\xf7\x00\x00\x00\x00", /* c500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\xf8\x98\xf9\x98\xfa\x98\xfb\x98\xfc\x98\xfd\x98\xfe\x98\xff\x99\x00\x99\x01\x99\x02\x99\x03\x99\x04\x99\x05\x99\x06\x99\x07\x99\x08\x99\x09\x99\x0a\x99\x0b\x99\x0c\x99\x0e\x99\x0f\x99\x11\x99\x12\x99\x13\x99\x14\x99\x15\x99\x16\x99\x17\x99\x18\x99\x19\x99\x1a\x99\x1b\x99\x1c\x99\x1d\x99\x1e\x99\x1f\x99\x20\x99\x21\x99\x22\x99\x23\x99\x24\x99\x25\x99\x26\x99\x27\x99\x28\x99\x29\x99\x2a\x99\x2b\x99\x2c\x99\x2d\x99\x2f\x99\x30\x99\x31\x99\x32\x99\x33\x99\x34\x99\x35\x99\x36\x99\x37\x99\x38\x99\x39", /* c580 */ "\x00\x00\x99\x3a\x99\x3b\x99\x3c\x99\x3d\x99\x3e\x99\x3f\x99\x40\x99\x41\x99\x42\x99\x43\x99\x44\x99\x45\x99\x46\x99\x47\x99\x48\x99\x49\x99\x4a\x99\x4b\x99\x4c\x99\x4d\x99\x4e\x99\x4f\x99\x50\x99\x51\x99\x52\x99\x53\x99\x56\x99\x57\x99\x58\x99\x59\x99\x5a\x99\x5b\x99\x5c\x99\x5d\x99\x5e\x99\x5f\x99\x60\x99\x61\x99\x62\x99\x64\x99\x66\x99\x73\x99\x78\x99\x79\x99\x7b\x99\x7e\x99\x82\x99\x83\x99\x89\x99\x8c\x99\x8e\x99\x9a\x99\x9b\x99\x9c\x99\x9d\x99\x9e\x99\x9f\x99\xa0\x99\xa1\x99\xa2\x99\xa3\x99\xa4\x99\xa6\x99\xa7\x99\xa9\x99\xaa\x99\xab\x99\xac\x99\xad\x99\xae\x99\xaf\x99\xb0\x99\xb1\x99\xb2\x99\xb3\x99\xb4\x99\xb5\x99\xb6\x99\xb7\x99\xb8\x99\xb9\x99\xba\x99\xbb\x99\xbc\x99\xbd\x99\xbe\x99\xbf\x99\xc0\x99\xc1\x99\xc2\x99\xc3\x99\xc4\x99\xc5\x99\xc6\x99\xc7\x99\xc8\x99\xc9\x99\xca\x99\xcb\x99\xcc\x99\xcd\x99\xce\x99\xcf\x99\xd0\x99\xd1\x99\xd2\x99\xd3\x99\xd4\x99\xd5\x99\xd6\x99\xd7\x99\xd8\x99\xd9\x99\xda\x99\xdb\x99\xdc\x99\xdd\x99\xde\x99\xdf\x99\xe0\x99\xe1\x99\xe2\x99\xe3\x99\xe4\x99\xe5\x00\x00\x00\x00", /* c600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xe6\x99\xe7\x99\xe8\x99\xe9\x99\xea\x99\xeb\x99\xec\x99\xed\x99\xee\x99\xef\x99\xf0\x99\xf1\x99\xf2\x99\xf3\x99\xf4\x99\xf5\x99\xf6\x99\xf7\x99\xf8\x99\xf9\x99\xfa\x99\xfb\x99\xfc\x99\xfd\x99\xfe\x99\xff\x9a\x00\x9a\x01\x9a\x02\x9a\x03\x9a\x04\x9a\x05\x9a\x06\x9a\x07\x9a\x08\x9a\x09\x9a\x0a\x9a\x0b\x9a\x0c\x9a\x0d\x9a\x0e\x9a\x0f\x9a\x10\x9a\x11\x9a\x12\x9a\x13\x9a\x14\x9a\x15\x9a\x16\x9a\x17\x9a\x18\x9a\x19\x9a\x1a\x9a\x1b\x9a\x1c\x9a\x1d\x9a\x1e\x9a\x1f\x9a\x20\x9a\x21\x9a\x22\x9a\x23\x9a\x24", /* c680 */ "\x00\x00\x9a\x25\x9a\x26\x9a\x27\x9a\x28\x9a\x29\x9a\x2a\x9a\x2b\x9a\x2c\x9a\x2d\x9a\x2e\x9a\x2f\x9a\x30\x9a\x31\x9a\x32\x9a\x33\x9a\x34\x9a\x35\x9a\x36\x9a\x37\x9a\x38\x9a\x39\x9a\x3a\x9a\x3b\x9a\x3c\x9a\x3d\x9a\x3e\x9a\x3f\x9a\x40\x9a\x41\x9a\x42\x9a\x43\x9a\x44\x9a\x45\x9a\x46\x9a\x47\x9a\x48\x9a\x49\x9a\x4a\x9a\x4b\x9a\x4c\x9a\x4d\x9a\x4e\x9a\x4f\x9a\x50\x9a\x51\x9a\x52\x9a\x53\x9a\x54\x9a\x55\x9a\x56\x9a\x57\x9a\x58\x9a\x59\x9a\x5a\x9a\x5b\x9a\x5c\x9a\x5d\x9a\x5e\x9a\x5f\x9a\x60\x9a\x61\x9a\x62\x9a\x63\x9a\x64\x9a\x65\x9a\x66\x9a\x67\x9a\x68\x9a\x69\x9a\x6a\x9a\x6b\x9a\x72\x9a\x83\x9a\x89\x9a\x8d\x9a\x8e\x9a\x94\x9a\x95\x9a\x99\x9a\xa6\x9a\xa9\x9a\xaa\x9a\xab\x9a\xac\x9a\xad\x9a\xae\x9a\xaf\x9a\xb2\x9a\xb3\x9a\xb4\x9a\xb5\x9a\xb9\x9a\xbb\x9a\xbd\x9a\xbe\x9a\xbf\x9a\xc3\x9a\xc4\x9a\xc6\x9a\xc7\x9a\xc8\x9a\xc9\x9a\xca\x9a\xcd\x9a\xce\x9a\xcf\x9a\xd0\x9a\xd2\x9a\xd4\x9a\xd5\x9a\xd6\x9a\xd7\x9a\xd9\x9a\xda\x9a\xdb\x9a\xdc\x9a\xdd\x9a\xde\x9a\xe0\x9a\xe2\x9a\xe3\x9a\xe4\x9a\xe5\x9a\xe7\x9a\xe8\x00\x00\x00\x00", /* c700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xe9\x9a\xea\x9a\xec\x9a\xee\x9a\xf0\x9a\xf1\x9a\xf2\x9a\xf3\x9a\xf4\x9a\xf5\x9a\xf6\x9a\xf7\x9a\xf8\x9a\xfa\x9a\xfc\x9a\xfd\x9a\xfe\x9a\xff\x9b\x00\x9b\x01\x9b\x02\x9b\x04\x9b\x05\x9b\x06\x9b\x07\x9b\x09\x9b\x0a\x9b\x0b\x9b\x0c\x9b\x0d\x9b\x0e\x9b\x10\x9b\x11\x9b\x12\x9b\x14\x9b\x15\x9b\x16\x9b\x17\x9b\x18\x9b\x19\x9b\x1a\x9b\x1b\x9b\x1c\x9b\x1d\x9b\x1e\x9b\x20\x9b\x21\x9b\x22\x9b\x24\x9b\x25\x9b\x26\x9b\x27\x9b\x28\x9b\x29\x9b\x2a\x9b\x2b\x9b\x2c\x9b\x2d\x9b\x2e\x9b\x30\x9b\x31\x9b\x33\x9b\x34", /* c780 */ "\x00\x00\x9b\x35\x9b\x36\x9b\x37\x9b\x38\x9b\x39\x9b\x3a\x9b\x3d\x9b\x3e\x9b\x3f\x9b\x40\x9b\x46\x9b\x4a\x9b\x4b\x9b\x4c\x9b\x4e\x9b\x50\x9b\x52\x9b\x53\x9b\x55\x9b\x56\x9b\x57\x9b\x58\x9b\x59\x9b\x5a\x9b\x5b\x9b\x5c\x9b\x5d\x9b\x5e\x9b\x5f\x9b\x60\x9b\x61\x9b\x62\x9b\x63\x9b\x64\x9b\x65\x9b\x66\x9b\x67\x9b\x68\x9b\x69\x9b\x6a\x9b\x6b\x9b\x6c\x9b\x6d\x9b\x6e\x9b\x6f\x9b\x70\x9b\x71\x9b\x72\x9b\x73\x9b\x74\x9b\x75\x9b\x76\x9b\x77\x9b\x78\x9b\x79\x9b\x7a\x9b\x7b\x9b\x7c\x9b\x7d\x9b\x7e\x9b\x7f\x9b\x80\x9b\x81\x9b\x82\x9b\x83\x9b\x84\x9b\x85\x9b\x86\x9b\x87\x9b\x88\x9b\x89\x9b\x8a\x9b\x8b\x9b\x8c\x9b\x8d\x9b\x8e\x9b\x8f\x9b\x90\x9b\x91\x9b\x92\x9b\x93\x9b\x94\x9b\x95\x9b\x96\x9b\x97\x9b\x98\x9b\x99\x9b\x9a\x9b\x9b\x9b\x9c\x9b\x9d\x9b\x9e\x9b\x9f\x9b\xa0\x9b\xa1\x9b\xa2\x9b\xa3\x9b\xa4\x9b\xa5\x9b\xa6\x9b\xa7\x9b\xa8\x9b\xa9\x9b\xaa\x9b\xab\x9b\xac\x9b\xad\x9b\xae\x9b\xaf\x9b\xb0\x9b\xb1\x9b\xb2\x9b\xb3\x9b\xb4\x9b\xb5\x9b\xb6\x9b\xb7\x9b\xb8\x9b\xb9\x9b\xba\x9b\xbb\x9b\xbc\x9b\xbd\x9b\xbe\x9b\xbf\x00\x00\x00\x00", /* c800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xc0\x9b\xc1\x9b\xc2\x9b\xc3\x9b\xc4\x9b\xc5\x9b\xc6\x9b\xc7\x9b\xc8\x9b\xc9\x9b\xca\x9b\xcb\x9b\xcc\x9b\xcd\x9b\xce\x9b\xcf\x9b\xd0\x9b\xd1\x9b\xd2\x9b\xd3\x9b\xd4\x9b\xd5\x9b\xd6\x9b\xd7\x9b\xd8\x9b\xd9\x9b\xda\x9b\xdb\x9b\xdc\x9b\xdd\x9b\xde\x9b\xdf\x9b\xe0\x9b\xe1\x9b\xe2\x9b\xe3\x9b\xe4\x9b\xe5\x9b\xe6\x9b\xe7\x9b\xe8\x9b\xe9\x9b\xea\x9b\xeb\x9b\xec\x9b\xed\x9b\xee\x9b\xef\x9b\xf0\x9b\xf1\x9b\xf2\x9b\xf3\x9b\xf4\x9b\xf5\x9b\xf6\x9b\xf7\x9b\xf8\x9b\xf9\x9b\xfa\x9b\xfb\x9b\xfc\x9b\xfd\x9b\xfe", /* c880 */ "\x00\x00\x9b\xff\x9c\x00\x9c\x01\x9c\x02\x9c\x03\x9c\x04\x9c\x05\x9c\x06\x9c\x07\x9c\x08\x9c\x09\x9c\x0a\x9c\x0b\x9c\x0c\x9c\x0d\x9c\x0e\x9c\x0f\x9c\x10\x9c\x11\x9c\x12\x9c\x13\x9c\x14\x9c\x15\x9c\x16\x9c\x17\x9c\x18\x9c\x19\x9c\x1a\x9c\x1b\x9c\x1c\x9c\x1d\x9c\x1e\x9c\x1f\x9c\x20\x9c\x21\x9c\x22\x9c\x23\x9c\x24\x9c\x25\x9c\x26\x9c\x27\x9c\x28\x9c\x29\x9c\x2a\x9c\x2b\x9c\x2c\x9c\x2d\x9c\x2e\x9c\x2f\x9c\x30\x9c\x31\x9c\x32\x9c\x33\x9c\x34\x9c\x35\x9c\x36\x9c\x37\x9c\x38\x9c\x39\x9c\x3a\x9c\x3b\x9c\x3c\x9c\x3d\x9c\x3e\x9c\x3f\x9c\x40\x9c\x41\x9c\x42\x9c\x43\x9c\x44\x9c\x45\x9c\x46\x9c\x47\x9c\x48\x9c\x49\x9c\x4a\x9c\x4b\x9c\x4c\x9c\x4d\x9c\x4e\x9c\x4f\x9c\x50\x9c\x51\x9c\x52\x9c\x53\x9c\x54\x9c\x55\x9c\x56\x9c\x57\x9c\x58\x9c\x59\x9c\x5a\x9c\x5b\x9c\x5c\x9c\x5d\x9c\x5e\x9c\x5f\x9c\x60\x9c\x61\x9c\x62\x9c\x63\x9c\x64\x9c\x65\x9c\x66\x9c\x67\x9c\x68\x9c\x69\x9c\x6a\x9c\x6b\x9c\x6c\x9c\x6d\x9c\x6e\x9c\x6f\x9c\x70\x9c\x71\x9c\x72\x9c\x73\x9c\x74\x9c\x75\x9c\x76\x9c\x77\x9c\x78\x9c\x79\x9c\x7a\x9c\x7b\x00\x00\x00\x00", /* c900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x7d\x9c\x7e\x9c\x80\x9c\x83\x9c\x84\x9c\x89\x9c\x8a\x9c\x8c\x9c\x8f\x9c\x93\x9c\x96\x9c\x97\x9c\x98\x9c\x99\x9c\x9d\x9c\xaa\x9c\xac\x9c\xaf\x9c\xb9\x9c\xbe\x9c\xbf\x9c\xc0\x9c\xc1\x9c\xc2\x9c\xc8\x9c\xc9\x9c\xd1\x9c\xd2\x9c\xda\x9c\xdb\x9c\xe0\x9c\xe1\x9c\xe3\x9c\xe4\x9c\xe5\x9c\xe6\x9c\xe7\x9c\xe8\x9c\xe9\x9c\xea\x9c\xeb\x9c\xec\x9c\xed\x9c\xee\x9c\xef\x9c\xf0\x9c\xf1\x9c\xf2\x9c\xf3\x9c\xf4\x9c\xf5\x9c\xf6\x9c\xf7\x9c\xf8\x9c\xf9\x9c\xfa\x9c\xfb\x9c\xfc\x9c\xfd\x9c\xfe\x9c\xff\x9d\x00\x9d\x01", /* c980 */ "\x00\x00\x9d\x02\x9d\x03\x9d\x04\x9d\x05\x9d\x06\x9d\x07\x9d\x08\x9d\x09\x9d\x0a\x9d\x0b\x9d\x0c\x9d\x0d\x9d\x0e\x9d\x0f\x9d\x10\x9d\x11\x9d\x12\x9d\x13\x9d\x14\x9d\x15\x9d\x16\x9d\x17\x9d\x18\x9d\x19\x9d\x1a\x9d\x1b\x9d\x1c\x9d\x1d\x9d\x1e\x9d\x1f\x9d\x20\x9d\x21\x9d\x22\x9d\x23\x9d\x24\x9d\x25\x9d\x26\x9d\x27\x9d\x28\x9d\x29\x9d\x2a\x9d\x2b\x9d\x2c\x9d\x2d\x9d\x2e\x9d\x2f\x9d\x30\x9d\x31\x9d\x32\x9d\x33\x9d\x34\x9d\x35\x9d\x36\x9d\x37\x9d\x38\x9d\x39\x9d\x3a\x9d\x3b\x9d\x3c\x9d\x3d\x9d\x3e\x9d\x3f\x9d\x40\x9d\x41\x9d\x42\x9d\x43\x9d\x44\x9d\x45\x9d\x46\x9d\x47\x9d\x48\x9d\x49\x9d\x4a\x9d\x4b\x9d\x4c\x9d\x4d\x9d\x4e\x9d\x4f\x9d\x50\x9d\x51\x9d\x52\x9d\x53\x9d\x54\x9d\x55\x9d\x56\x9d\x57\x9d\x58\x9d\x59\x9d\x5a\x9d\x5b\x9d\x5c\x9d\x5d\x9d\x5e\x9d\x5f\x9d\x60\x9d\x61\x9d\x62\x9d\x63\x9d\x64\x9d\x65\x9d\x66\x9d\x67\x9d\x68\x9d\x69\x9d\x6a\x9d\x6b\x9d\x6c\x9d\x6d\x9d\x6e\x9d\x6f\x9d\x70\x9d\x71\x9d\x72\x9d\x73\x9d\x74\x9d\x75\x9d\x76\x9d\x77\x9d\x78\x9d\x79\x9d\x7a\x9d\x7b\x9d\x7c\x9d\x7d\x9d\x7e\x00\x00\x00\x00", /* ca00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x7f\x9d\x80\x9d\x81\x9d\x82\x9d\x83\x9d\x84\x9d\x85\x9d\x86\x9d\x87\x9d\x88\x9d\x89\x9d\x8a\x9d\x8b\x9d\x8c\x9d\x8d\x9d\x8e\x9d\x8f\x9d\x90\x9d\x91\x9d\x92\x9d\x93\x9d\x94\x9d\x95\x9d\x96\x9d\x97\x9d\x98\x9d\x99\x9d\x9a\x9d\x9b\x9d\x9c\x9d\x9d\x9d\x9e\x9d\x9f\x9d\xa0\x9d\xa1\x9d\xa2\x9d\xa3\x9d\xa4\x9d\xa5\x9d\xa6\x9d\xa7\x9d\xa8\x9d\xa9\x9d\xaa\x9d\xab\x9d\xac\x9d\xad\x9d\xae\x9d\xaf\x9d\xb0\x9d\xb1\x9d\xb2\x9d\xb3\x9d\xb4\x9d\xb5\x9d\xb6\x9d\xb7\x9d\xb8\x9d\xb9\x9d\xba\x9d\xbb\x9d\xbc\x9d\xbd", /* ca80 */ "\x00\x00\x9d\xbe\x9d\xbf\x9d\xc0\x9d\xc1\x9d\xc2\x9d\xc3\x9d\xc4\x9d\xc5\x9d\xc6\x9d\xc7\x9d\xc8\x9d\xc9\x9d\xca\x9d\xcb\x9d\xcc\x9d\xcd\x9d\xce\x9d\xcf\x9d\xd0\x9d\xd1\x9d\xd2\x9d\xd3\x9d\xd4\x9d\xd5\x9d\xd6\x9d\xd7\x9d\xd8\x9d\xd9\x9d\xda\x9d\xdb\x9d\xdc\x9d\xdd\x9d\xde\x9d\xdf\x9d\xe0\x9d\xe1\x9d\xe2\x9d\xe3\x9d\xe4\x9d\xe5\x9d\xe6\x9d\xe7\x9d\xe8\x9d\xe9\x9d\xea\x9d\xeb\x9d\xec\x9d\xed\x9d\xee\x9d\xef\x9d\xf0\x9d\xf1\x9d\xf2\x9d\xf3\x9d\xf4\x9d\xf5\x9d\xf6\x9d\xf7\x9d\xf8\x9d\xf9\x9d\xfa\x9d\xfb\x9d\xfc\x9d\xfd\x9d\xfe\x9d\xff\x9e\x00\x9e\x01\x9e\x02\x9e\x03\x9e\x04\x9e\x05\x9e\x06\x9e\x07\x9e\x08\x9e\x09\x9e\x0a\x9e\x0b\x9e\x0c\x9e\x0d\x9e\x0e\x9e\x0f\x9e\x10\x9e\x11\x9e\x12\x9e\x13\x9e\x14\x9e\x15\x9e\x16\x9e\x17\x9e\x18\x9e\x19\x9e\x1a\x9e\x1b\x9e\x1c\x9e\x1d\x9e\x1e\x9e\x24\x9e\x27\x9e\x2e\x9e\x30\x9e\x34\x9e\x3b\x9e\x3c\x9e\x40\x9e\x4d\x9e\x50\x9e\x52\x9e\x53\x9e\x54\x9e\x56\x9e\x59\x9e\x5d\x9e\x5f\x9e\x60\x9e\x61\x9e\x62\x9e\x65\x9e\x6e\x9e\x6f\x9e\x72\x9e\x74\x9e\x75\x9e\x76\x9e\x77\x00\x00\x00\x00", /* cb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x78\x9e\x79\x9e\x7a\x9e\x7b\x9e\x7c\x9e\x7d\x9e\x80\x9e\x81\x9e\x83\x9e\x84\x9e\x85\x9e\x86\x9e\x89\x9e\x8a\x9e\x8c\x9e\x8d\x9e\x8e\x9e\x8f\x9e\x90\x9e\x91\x9e\x94\x9e\x95\x9e\x96\x9e\x97\x9e\x98\x9e\x99\x9e\x9a\x9e\x9b\x9e\x9c\x9e\x9e\x9e\xa0\x9e\xa1\x9e\xa2\x9e\xa3\x9e\xa4\x9e\xa5\x9e\xa7\x9e\xa8\x9e\xa9\x9e\xaa\x9e\xab\x9e\xac\x9e\xad\x9e\xae\x9e\xaf\x9e\xb0\x9e\xb1\x9e\xb2\x9e\xb3\x9e\xb5\x9e\xb6\x9e\xb7\x9e\xb9\x9e\xba\x9e\xbc\x9e\xbf\x9e\xc0\x9e\xc1\x9e\xc2\x9e\xc3\x9e\xc5\x9e\xc6\x9e\xc7", /* cb80 */ "\x00\x00\x9e\xc8\x9e\xca\x9e\xcb\x9e\xcc\x9e\xd0\x9e\xd2\x9e\xd3\x9e\xd5\x9e\xd6\x9e\xd7\x9e\xd9\x9e\xda\x9e\xde\x9e\xe1\x9e\xe3\x9e\xe4\x9e\xe6\x9e\xe8\x9e\xeb\x9e\xec\x9e\xed\x9e\xee\x9e\xf0\x9e\xf1\x9e\xf2\x9e\xf3\x9e\xf4\x9e\xf5\x9e\xf6\x9e\xf7\x9e\xf8\x9e\xfa\x9e\xfd\x9e\xff\x9f\x00\x9f\x01\x9f\x02\x9f\x03\x9f\x04\x9f\x05\x9f\x06\x9f\x07\x9f\x08\x9f\x09\x9f\x0a\x9f\x0c\x9f\x0f\x9f\x11\x9f\x12\x9f\x14\x9f\x15\x9f\x16\x9f\x18\x9f\x1a\x9f\x1b\x9f\x1c\x9f\x1d\x9f\x1e\x9f\x1f\x9f\x21\x9f\x23\x9f\x24\x9f\x25\x9f\x26\x9f\x27\x9f\x28\x9f\x29\x9f\x2a\x9f\x2b\x9f\x2d\x9f\x2e\x9f\x30\x9f\x31\x9f\x32\x9f\x33\x9f\x34\x9f\x35\x9f\x36\x9f\x38\x9f\x3a\x9f\x3c\x9f\x3f\x9f\x40\x9f\x41\x9f\x42\x9f\x43\x9f\x45\x9f\x46\x9f\x47\x9f\x48\x9f\x49\x9f\x4a\x9f\x4b\x9f\x4c\x9f\x4d\x9f\x4e\x9f\x4f\x9f\x52\x9f\x53\x9f\x54\x9f\x55\x9f\x56\x9f\x57\x9f\x58\x9f\x59\x9f\x5a\x9f\x5b\x9f\x5c\x9f\x5d\x9f\x5e\x9f\x5f\x9f\x60\x9f\x61\x9f\x62\x9f\x63\x9f\x64\x9f\x65\x9f\x66\x9f\x67\x9f\x68\x9f\x69\x9f\x6a\x9f\x6b\x9f\x6c\x9f\x6d\x00\x00\x00\x00", /* cc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x6e\x9f\x6f\x9f\x70\x9f\x71\x9f\x72\x9f\x73\x9f\x74\x9f\x75\x9f\x76\x9f\x77\x9f\x78\x9f\x79\x9f\x7a\x9f\x7b\x9f\x7c\x9f\x7d\x9f\x7e\x9f\x81\x9f\x82\x9f\x8d\x9f\x8e\x9f\x8f\x9f\x90\x9f\x91\x9f\x92\x9f\x93\x9f\x94\x9f\x95\x9f\x96\x9f\x97\x9f\x98\x9f\x9c\x9f\x9d\x9f\x9e\x9f\xa1\x9f\xa2\x9f\xa3\x9f\xa4\x9f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* cc80 */ NULL, /* cd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xca\x02\xcb\x02\xd9\x20\x13\x20\x14\x20\x35\x21\x05\x21\x09\x21\x96\x21\x97\x21\x98\x21\x99\x22\x15\x22\x1f\x22\x23\x22\x52\x22\x66\x22\x67\x22\xbf\x25\x50\x25\x51\x25\x52\x25\x53\x25\x54\x25\x55\x25\x56\x25\x57\x25\x58\x25\x59\x25\x5a\x25\x5b\x25\x5c\x25\x5d\x25\x5e\x25\x5f\x25\x60\x25\x61\x25\x62\x25\x63\x25\x64\x25\x65\x25\x66\x25\x67\x25\x68\x25\x69\x25\x6a\x25\x6b\x25\x6c\x25\x6d\x25\x6e\x25\x6f\x25\x70\x25\x71\x25\x72\x25\x73\x25\x81\x25\x82\x25\x83\x25\x84\x25\x85\x25\x86\x25\x87\x25\x88", /* cd80 */ "\x00\x00\x25\x89\x25\x8a\x25\x8b\x25\x8c\x25\x8d\x25\x8e\x25\x8f\x25\x93\x25\x94\x25\x95\x25\xe2\x25\xe3\x25\xe4\x25\xe5\x26\x09\x22\x95\x30\x1d\x30\x1e\x30\x21\x30\x22\x30\x23\x30\x24\x30\x25\x30\x26\x30\x27\x30\x28\x30\x29\x32\xa3\x33\x8e\x33\x8f\x33\x9c\x33\x9d\x33\x9e\x33\xa1\x33\xc4\x33\xce\x33\xd1\x33\xd2\x33\xd5\xfe\x30\xfe\x49\xfe\x4a\xfe\x4b\xfe\x4c\xfe\x4d\xfe\x4e\xfe\x4f\xfe\x50\xfe\x51\xfe\x52\xfe\x54\xfe\x55\xfe\x56\xfe\x57\xfe\x59\xfe\x5a\xfe\x5b\xfe\x5c\xfe\x5d\xfe\x5e\xfe\x5f\xfe\x60\xfe\x61\xfe\x62\xfe\x63\xfe\x64\xfe\x65\xfe\x66\xfe\x68\xfe\x69\xfe\x6a\xfe\x6b\x30\x3e\x2f\xf0\x2f\xf1\x2f\xf2\x2f\xf3\x2f\xf4\x2f\xf5\x2f\xf6\x2f\xf7\x2f\xf8\x2f\xf9\x2f\xfa\x2f\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ce00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x2c\xf9\x79\xf9\x95\xf9\xe7\xf9\xf1\xfa\x0c\xfa\x0d\xfa\x0e\xfa\x0f\xfa\x11\xfa\x13\xfa\x14\xfa\x18\xfa\x1f\xfa\x20\xfa\x21\xfa\x23\xfa\x24\xfa\x27\xfa\x28\xfa\x29\x2e\x81\xe8\x16\xe8\x17\xe8\x18\x2e\x84\x34\x73\x34\x47\x2e\x88\x2e\x8b\xe8\x1e\x35\x9e\x36\x1a\x36\x0e\x2e\x8c\x2e\x97\x39\x6e\x39\x18\xe8\x26\x39\xcf\x39\xdf\x3a\x73\x39\xd0\xe8\x2b\xe8\x2c\x3b\x4e\x3c\x6e\x3c\xe0\x2e\xa7\xe8\x31\xe8\x32\x2e\xaa\x40\x56\x41\x5f\x2e\xae\x43\x37\x2e\xb3\x2e\xb6\x2e\xb7\xe8\x3b\x43\xb1\x43\xac\x2e\xbb", /* ce80 */ "\x00\x00\x43\xdd\x44\xd6\x46\x61\x46\x4c\xe8\x43\x47\x23\x47\x29\x47\x7c\x47\x8d\x2e\xca\x49\x47\x49\x7a\x49\x7d\x49\x82\x49\x83\x49\x85\x49\x86\x49\x9f\x49\x9b\x49\xb7\x49\xb6\xe8\x54\xe8\x55\x4c\xa3\x4c\x9f\x4c\xa0\x4c\xa1\x4c\x77\x4c\xa2\x4d\x13\x4d\x14\x4d\x15\x4d\x16\x4d\x17\x4d\x18\x4d\x19\x4d\xae\xe8\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* cf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x34\x01\x34\x02\x34\x03\x34\x04\x34\x05\x34\x06\x34\x07\x34\x08\x34\x09\x34\x0a\x34\x0b\x34\x0c\x34\x0d\x34\x0e\x34\x0f\x34\x10\x34\x11\x34\x12\x34\x13\x34\x14\x34\x15\x34\x16\x34\x17\x34\x18\x34\x19\x34\x1a\x34\x1b\x34\x1c\x34\x1d\x34\x1e\x34\x1f\x34\x20\x34\x21\x34\x22\x34\x23\x34\x24\x34\x25\x34\x26\x34\x27\x34\x28\x34\x29\x34\x2a\x34\x2b\x34\x2c\x34\x2d\x34\x2e\x34\x2f\x34\x30\x34\x31\x34\x32\x34\x33\x34\x34\x34\x35\x34\x36\x34\x37\x34\x38\x34\x39\x34\x3a\x34\x3b\x34\x3c\x34\x3d\x34\x3e", /* cf80 */ "\x34\x3f\x34\x40\x34\x41\x34\x42\x34\x43\x34\x44\x34\x45\x34\x46\x34\x48\x34\x49\x34\x4a\x34\x4b\x34\x4c\x34\x4d\x34\x4e\x34\x4f\x34\x50\x34\x51\x34\x52\x34\x53\x34\x54\x34\x55\x34\x56\x34\x57\x34\x58\x34\x59\x34\x5a\x34\x5b\x34\x5c\x34\x5d\x34\x5e\x34\x5f\x34\x60\x34\x61\x34\x62\x34\x63\x34\x64\x34\x65\x34\x66\x34\x67\x34\x68\x34\x69\x34\x6a\x34\x6b\x34\x6c\x34\x6d\x34\x6e\x34\x6f\x34\x70\x34\x71\x34\x72\x34\x74\x34\x75\x34\x76\x34\x77\x34\x78\x34\x79\x34\x7a\x34\x7b\x34\x7c\x34\x7d\x34\x7e\x34\x7f\x34\x80\x34\x81\x34\x82\x34\x83\x34\x84\x34\x85\x34\x86\x34\x87\x34\x88\x34\x89\x34\x8a\x34\x8b\x34\x8c\x34\x8d\x34\x8e\x34\x8f\x34\x90\x34\x91\x34\x92\x34\x93\x34\x94\x34\x95\x34\x96\x34\x97\x34\x98\x34\x99\x34\x9a\x34\x9b\x34\x9c\x34\x9d\x34\x9e\x34\x9f\x34\xa0\x34\xa1\x34\xa2\x34\xa3\x34\xa4\x34\xa5\x34\xa6\x34\xa7\x34\xa8\x34\xa9\x34\xaa\x34\xab\x34\xac\x34\xad\x34\xae\x34\xaf\x34\xb0\x34\xb1\x34\xb2\x34\xb3\x34\xb4\x34\xb5\x34\xb6\x34\xb7\x34\xb8\x34\xb9\x34\xba\x34\xbb\x34\xbc\x34\xbd\x34\xbe\x34\xbf\x00\x00", /* d000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\xc0\x34\xc1\x34\xc2\x34\xc3\x34\xc4\x34\xc5\x34\xc6\x34\xc7\x34\xc8\x34\xc9\x34\xca\x34\xcb\x34\xcc\x34\xcd\x34\xce\x34\xcf\x34\xd0\x34\xd1\x34\xd2\x34\xd3\x34\xd4\x34\xd5\x34\xd6\x34\xd7\x34\xd8\x34\xd9\x34\xda\x34\xdb\x34\xdc\x34\xdd\x34\xde\x34\xdf\x34\xe0\x34\xe1\x34\xe2\x34\xe3\x34\xe4\x34\xe5\x34\xe6\x34\xe7\x34\xe8\x34\xe9\x34\xea\x34\xeb\x34\xec\x34\xed\x34\xee\x34\xef\x34\xf0\x34\xf1\x34\xf2\x34\xf3\x34\xf4\x34\xf5\x34\xf6\x34\xf7\x34\xf8\x34\xf9\x34\xfa\x34\xfb\x34\xfc\x34\xfd\x34\xfe", /* d080 */ "\x34\xff\x35\x00\x35\x01\x35\x02\x35\x03\x35\x04\x35\x05\x35\x06\x35\x07\x35\x08\x35\x09\x35\x0a\x35\x0b\x35\x0c\x35\x0d\x35\x0e\x35\x0f\x35\x10\x35\x11\x35\x12\x35\x13\x35\x14\x35\x15\x35\x16\x35\x17\x35\x18\x35\x19\x35\x1a\x35\x1b\x35\x1c\x35\x1d\x35\x1e\x35\x1f\x35\x20\x35\x21\x35\x22\x35\x23\x35\x24\x35\x25\x35\x26\x35\x27\x35\x28\x35\x29\x35\x2a\x35\x2b\x35\x2c\x35\x2d\x35\x2e\x35\x2f\x35\x30\x35\x31\x35\x32\x35\x33\x35\x34\x35\x35\x35\x36\x35\x37\x35\x38\x35\x39\x35\x3a\x35\x3b\x35\x3c\x35\x3d\x35\x3e\x35\x3f\x35\x40\x35\x41\x35\x42\x35\x43\x35\x44\x35\x45\x35\x46\x35\x47\x35\x48\x35\x49\x35\x4a\x35\x4b\x35\x4c\x35\x4d\x35\x4e\x35\x4f\x35\x50\x35\x51\x35\x52\x35\x53\x35\x54\x35\x55\x35\x56\x35\x57\x35\x58\x35\x59\x35\x5a\x35\x5b\x35\x5c\x35\x5d\x35\x5e\x35\x5f\x35\x60\x35\x61\x35\x62\x35\x63\x35\x64\x35\x65\x35\x66\x35\x67\x35\x68\x35\x69\x35\x6a\x35\x6b\x35\x6c\x35\x6d\x35\x6e\x35\x6f\x35\x70\x35\x71\x35\x72\x35\x73\x35\x74\x35\x75\x35\x76\x35\x77\x35\x78\x35\x79\x35\x7a\x35\x7b\x35\x7c\x35\x7d\x00\x00", /* d100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x7e\x35\x7f\x35\x80\x35\x81\x35\x82\x35\x83\x35\x84\x35\x85\x35\x86\x35\x87\x35\x88\x35\x89\x35\x8a\x35\x8b\x35\x8c\x35\x8d\x35\x8e\x35\x8f\x35\x90\x35\x91\x35\x92\x35\x93\x35\x94\x35\x95\x35\x96\x35\x97\x35\x98\x35\x99\x35\x9a\x35\x9b\x35\x9c\x35\x9d\x35\x9f\x35\xa0\x35\xa1\x35\xa2\x35\xa3\x35\xa4\x35\xa5\x35\xa6\x35\xa7\x35\xa8\x35\xa9\x35\xaa\x35\xab\x35\xac\x35\xad\x35\xae\x35\xaf\x35\xb0\x35\xb1\x35\xb2\x35\xb3\x35\xb4\x35\xb5\x35\xb6\x35\xb7\x35\xb8\x35\xb9\x35\xba\x35\xbb\x35\xbc\x35\xbd", /* d180 */ "\x35\xbe\x35\xbf\x35\xc0\x35\xc1\x35\xc2\x35\xc3\x35\xc4\x35\xc5\x35\xc6\x35\xc7\x35\xc8\x35\xc9\x35\xca\x35\xcb\x35\xcc\x35\xcd\x35\xce\x35\xcf\x35\xd0\x35\xd1\x35\xd2\x35\xd3\x35\xd4\x35\xd5\x35\xd6\x35\xd7\x35\xd8\x35\xd9\x35\xda\x35\xdb\x35\xdc\x35\xdd\x35\xde\x35\xdf\x35\xe0\x35\xe1\x35\xe2\x35\xe3\x35\xe4\x35\xe5\x35\xe6\x35\xe7\x35\xe8\x35\xe9\x35\xea\x35\xeb\x35\xec\x35\xed\x35\xee\x35\xef\x35\xf0\x35\xf1\x35\xf2\x35\xf3\x35\xf4\x35\xf5\x35\xf6\x35\xf7\x35\xf8\x35\xf9\x35\xfa\x35\xfb\x35\xfc\x35\xfd\x35\xfe\x35\xff\x36\x00\x36\x01\x36\x02\x36\x03\x36\x04\x36\x05\x36\x06\x36\x07\x36\x08\x36\x09\x36\x0a\x36\x0b\x36\x0c\x36\x0d\x36\x0f\x36\x10\x36\x11\x36\x12\x36\x13\x36\x14\x36\x15\x36\x16\x36\x17\x36\x18\x36\x19\x36\x1b\x36\x1c\x36\x1d\x36\x1e\x36\x1f\x36\x20\x36\x21\x36\x22\x36\x23\x36\x24\x36\x25\x36\x26\x36\x27\x36\x28\x36\x29\x36\x2a\x36\x2b\x36\x2c\x36\x2d\x36\x2e\x36\x2f\x36\x30\x36\x31\x36\x32\x36\x33\x36\x34\x36\x35\x36\x36\x36\x37\x36\x38\x36\x39\x36\x3a\x36\x3b\x36\x3c\x36\x3d\x36\x3e\x00\x00", /* d200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x3f\x36\x40\x36\x41\x36\x42\x36\x43\x36\x44\x36\x45\x36\x46\x36\x47\x36\x48\x36\x49\x36\x4a\x36\x4b\x36\x4c\x36\x4d\x36\x4e\x36\x4f\x36\x50\x36\x51\x36\x52\x36\x53\x36\x54\x36\x55\x36\x56\x36\x57\x36\x58\x36\x59\x36\x5a\x36\x5b\x36\x5c\x36\x5d\x36\x5e\x36\x5f\x36\x60\x36\x61\x36\x62\x36\x63\x36\x64\x36\x65\x36\x66\x36\x67\x36\x68\x36\x69\x36\x6a\x36\x6b\x36\x6c\x36\x6d\x36\x6e\x36\x6f\x36\x70\x36\x71\x36\x72\x36\x73\x36\x74\x36\x75\x36\x76\x36\x77\x36\x78\x36\x79\x36\x7a\x36\x7b\x36\x7c\x36\x7d", /* d280 */ "\x36\x7e\x36\x7f\x36\x80\x36\x81\x36\x82\x36\x83\x36\x84\x36\x85\x36\x86\x36\x87\x36\x88\x36\x89\x36\x8a\x36\x8b\x36\x8c\x36\x8d\x36\x8e\x36\x8f\x36\x90\x36\x91\x36\x92\x36\x93\x36\x94\x36\x95\x36\x96\x36\x97\x36\x98\x36\x99\x36\x9a\x36\x9b\x36\x9c\x36\x9d\x36\x9e\x36\x9f\x36\xa0\x36\xa1\x36\xa2\x36\xa3\x36\xa4\x36\xa5\x36\xa6\x36\xa7\x36\xa8\x36\xa9\x36\xaa\x36\xab\x36\xac\x36\xad\x36\xae\x36\xaf\x36\xb0\x36\xb1\x36\xb2\x36\xb3\x36\xb4\x36\xb5\x36\xb6\x36\xb7\x36\xb8\x36\xb9\x36\xba\x36\xbb\x36\xbc\x36\xbd\x36\xbe\x36\xbf\x36\xc0\x36\xc1\x36\xc2\x36\xc3\x36\xc4\x36\xc5\x36\xc6\x36\xc7\x36\xc8\x36\xc9\x36\xca\x36\xcb\x36\xcc\x36\xcd\x36\xce\x36\xcf\x36\xd0\x36\xd1\x36\xd2\x36\xd3\x36\xd4\x36\xd5\x36\xd6\x36\xd7\x36\xd8\x36\xd9\x36\xda\x36\xdb\x36\xdc\x36\xdd\x36\xde\x36\xdf\x36\xe0\x36\xe1\x36\xe2\x36\xe3\x36\xe4\x36\xe5\x36\xe6\x36\xe7\x36\xe8\x36\xe9\x36\xea\x36\xeb\x36\xec\x36\xed\x36\xee\x36\xef\x36\xf0\x36\xf1\x36\xf2\x36\xf3\x36\xf4\x36\xf5\x36\xf6\x36\xf7\x36\xf8\x36\xf9\x36\xfa\x36\xfb\x36\xfc\x00\x00", /* d300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\xfd\x36\xfe\x36\xff\x37\x00\x37\x01\x37\x02\x37\x03\x37\x04\x37\x05\x37\x06\x37\x07\x37\x08\x37\x09\x37\x0a\x37\x0b\x37\x0c\x37\x0d\x37\x0e\x37\x0f\x37\x10\x37\x11\x37\x12\x37\x13\x37\x14\x37\x15\x37\x16\x37\x17\x37\x18\x37\x19\x37\x1a\x37\x1b\x37\x1c\x37\x1d\x37\x1e\x37\x1f\x37\x20\x37\x21\x37\x22\x37\x23\x37\x24\x37\x25\x37\x26\x37\x27\x37\x28\x37\x29\x37\x2a\x37\x2b\x37\x2c\x37\x2d\x37\x2e\x37\x2f\x37\x30\x37\x31\x37\x32\x37\x33\x37\x34\x37\x35\x37\x36\x37\x37\x37\x38\x37\x39\x37\x3a\x37\x3b", /* d380 */ "\x37\x3c\x37\x3d\x37\x3e\x37\x3f\x37\x40\x37\x41\x37\x42\x37\x43\x37\x44\x37\x45\x37\x46\x37\x47\x37\x48\x37\x49\x37\x4a\x37\x4b\x37\x4c\x37\x4d\x37\x4e\x37\x4f\x37\x50\x37\x51\x37\x52\x37\x53\x37\x54\x37\x55\x37\x56\x37\x57\x37\x58\x37\x59\x37\x5a\x37\x5b\x37\x5c\x37\x5d\x37\x5e\x37\x5f\x37\x60\x37\x61\x37\x62\x37\x63\x37\x64\x37\x65\x37\x66\x37\x67\x37\x68\x37\x69\x37\x6a\x37\x6b\x37\x6c\x37\x6d\x37\x6e\x37\x6f\x37\x70\x37\x71\x37\x72\x37\x73\x37\x74\x37\x75\x37\x76\x37\x77\x37\x78\x37\x79\x37\x7a\x37\x7b\x37\x7c\x37\x7d\x37\x7e\x37\x7f\x37\x80\x37\x81\x37\x82\x37\x83\x37\x84\x37\x85\x37\x86\x37\x87\x37\x88\x37\x89\x37\x8a\x37\x8b\x37\x8c\x37\x8d\x37\x8e\x37\x8f\x37\x90\x37\x91\x37\x92\x37\x93\x37\x94\x37\x95\x37\x96\x37\x97\x37\x98\x37\x99\x37\x9a\x37\x9b\x37\x9c\x37\x9d\x37\x9e\x37\x9f\x37\xa0\x37\xa1\x37\xa2\x37\xa3\x37\xa4\x37\xa5\x37\xa6\x37\xa7\x37\xa8\x37\xa9\x37\xaa\x37\xab\x37\xac\x37\xad\x37\xae\x37\xaf\x37\xb0\x37\xb1\x37\xb2\x37\xb3\x37\xb4\x37\xb5\x37\xb6\x37\xb7\x37\xb8\x37\xb9\x37\xba\x00\x00", /* d400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\xbb\x37\xbc\x37\xbd\x37\xbe\x37\xbf\x37\xc0\x37\xc1\x37\xc2\x37\xc3\x37\xc4\x37\xc5\x37\xc6\x37\xc7\x37\xc8\x37\xc9\x37\xca\x37\xcb\x37\xcc\x37\xcd\x37\xce\x37\xcf\x37\xd0\x37\xd1\x37\xd2\x37\xd3\x37\xd4\x37\xd5\x37\xd6\x37\xd7\x37\xd8\x37\xd9\x37\xda\x37\xdb\x37\xdc\x37\xdd\x37\xde\x37\xdf\x37\xe0\x37\xe1\x37\xe2\x37\xe3\x37\xe4\x37\xe5\x37\xe6\x37\xe7\x37\xe8\x37\xe9\x37\xea\x37\xeb\x37\xec\x37\xed\x37\xee\x37\xef\x37\xf0\x37\xf1\x37\xf2\x37\xf3\x37\xf4\x37\xf5\x37\xf6\x37\xf7\x37\xf8\x37\xf9", /* d480 */ "\x37\xfa\x37\xfb\x37\xfc\x37\xfd\x37\xfe\x37\xff\x38\x00\x38\x01\x38\x02\x38\x03\x38\x04\x38\x05\x38\x06\x38\x07\x38\x08\x38\x09\x38\x0a\x38\x0b\x38\x0c\x38\x0d\x38\x0e\x38\x0f\x38\x10\x38\x11\x38\x12\x38\x13\x38\x14\x38\x15\x38\x16\x38\x17\x38\x18\x38\x19\x38\x1a\x38\x1b\x38\x1c\x38\x1d\x38\x1e\x38\x1f\x38\x20\x38\x21\x38\x22\x38\x23\x38\x24\x38\x25\x38\x26\x38\x27\x38\x28\x38\x29\x38\x2a\x38\x2b\x38\x2c\x38\x2d\x38\x2e\x38\x2f\x38\x30\x38\x31\x38\x32\x38\x33\x38\x34\x38\x35\x38\x36\x38\x37\x38\x38\x38\x39\x38\x3a\x38\x3b\x38\x3c\x38\x3d\x38\x3e\x38\x3f\x38\x40\x38\x41\x38\x42\x38\x43\x38\x44\x38\x45\x38\x46\x38\x47\x38\x48\x38\x49\x38\x4a\x38\x4b\x38\x4c\x38\x4d\x38\x4e\x38\x4f\x38\x50\x38\x51\x38\x52\x38\x53\x38\x54\x38\x55\x38\x56\x38\x57\x38\x58\x38\x59\x38\x5a\x38\x5b\x38\x5c\x38\x5d\x38\x5e\x38\x5f\x38\x60\x38\x61\x38\x62\x38\x63\x38\x64\x38\x65\x38\x66\x38\x67\x38\x68\x38\x69\x38\x6a\x38\x6b\x38\x6c\x38\x6d\x38\x6e\x38\x6f\x38\x70\x38\x71\x38\x72\x38\x73\x38\x74\x38\x75\x38\x76\x38\x77\x38\x78\x00\x00", /* d500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x79\x38\x7a\x38\x7b\x38\x7c\x38\x7d\x38\x7e\x38\x7f\x38\x80\x38\x81\x38\x82\x38\x83\x38\x84\x38\x85\x38\x86\x38\x87\x38\x88\x38\x89\x38\x8a\x38\x8b\x38\x8c\x38\x8d\x38\x8e\x38\x8f\x38\x90\x38\x91\x38\x92\x38\x93\x38\x94\x38\x95\x38\x96\x38\x97\x38\x98\x38\x99\x38\x9a\x38\x9b\x38\x9c\x38\x9d\x38\x9e\x38\x9f\x38\xa0\x38\xa1\x38\xa2\x38\xa3\x38\xa4\x38\xa5\x38\xa6\x38\xa7\x38\xa8\x38\xa9\x38\xaa\x38\xab\x38\xac\x38\xad\x38\xae\x38\xaf\x38\xb0\x38\xb1\x38\xb2\x38\xb3\x38\xb4\x38\xb5\x38\xb6\x38\xb7", /* d580 */ "\x38\xb8\x38\xb9\x38\xba\x38\xbb\x38\xbc\x38\xbd\x38\xbe\x38\xbf\x38\xc0\x38\xc1\x38\xc2\x38\xc3\x38\xc4\x38\xc5\x38\xc6\x38\xc7\x38\xc8\x38\xc9\x38\xca\x38\xcb\x38\xcc\x38\xcd\x38\xce\x38\xcf\x38\xd0\x38\xd1\x38\xd2\x38\xd3\x38\xd4\x38\xd5\x38\xd6\x38\xd7\x38\xd8\x38\xd9\x38\xda\x38\xdb\x38\xdc\x38\xdd\x38\xde\x38\xdf\x38\xe0\x38\xe1\x38\xe2\x38\xe3\x38\xe4\x38\xe5\x38\xe6\x38\xe7\x38\xe8\x38\xe9\x38\xea\x38\xeb\x38\xec\x38\xed\x38\xee\x38\xef\x38\xf0\x38\xf1\x38\xf2\x38\xf3\x38\xf4\x38\xf5\x38\xf6\x38\xf7\x38\xf8\x38\xf9\x38\xfa\x38\xfb\x38\xfc\x38\xfd\x38\xfe\x38\xff\x39\x00\x39\x01\x39\x02\x39\x03\x39\x04\x39\x05\x39\x06\x39\x07\x39\x08\x39\x09\x39\x0a\x39\x0b\x39\x0c\x39\x0d\x39\x0e\x39\x0f\x39\x10\x39\x11\x39\x12\x39\x13\x39\x14\x39\x15\x39\x16\x39\x17\x39\x19\x39\x1a\x39\x1b\x39\x1c\x39\x1d\x39\x1e\x39\x1f\x39\x20\x39\x21\x39\x22\x39\x23\x39\x24\x39\x25\x39\x26\x39\x27\x39\x28\x39\x29\x39\x2a\x39\x2b\x39\x2c\x39\x2d\x39\x2e\x39\x2f\x39\x30\x39\x31\x39\x32\x39\x33\x39\x34\x39\x35\x39\x36\x39\x37\x00\x00", /* d600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x38\x39\x39\x39\x3a\x39\x3b\x39\x3c\x39\x3d\x39\x3e\x39\x3f\x39\x40\x39\x41\x39\x42\x39\x43\x39\x44\x39\x45\x39\x46\x39\x47\x39\x48\x39\x49\x39\x4a\x39\x4b\x39\x4c\x39\x4d\x39\x4e\x39\x4f\x39\x50\x39\x51\x39\x52\x39\x53\x39\x54\x39\x55\x39\x56\x39\x57\x39\x58\x39\x59\x39\x5a\x39\x5b\x39\x5c\x39\x5d\x39\x5e\x39\x5f\x39\x60\x39\x61\x39\x62\x39\x63\x39\x64\x39\x65\x39\x66\x39\x67\x39\x68\x39\x69\x39\x6a\x39\x6b\x39\x6c\x39\x6d\x39\x6f\x39\x70\x39\x71\x39\x72\x39\x73\x39\x74\x39\x75\x39\x76\x39\x77", /* d680 */ "\x39\x78\x39\x79\x39\x7a\x39\x7b\x39\x7c\x39\x7d\x39\x7e\x39\x7f\x39\x80\x39\x81\x39\x82\x39\x83\x39\x84\x39\x85\x39\x86\x39\x87\x39\x88\x39\x89\x39\x8a\x39\x8b\x39\x8c\x39\x8d\x39\x8e\x39\x8f\x39\x90\x39\x91\x39\x92\x39\x93\x39\x94\x39\x95\x39\x96\x39\x97\x39\x98\x39\x99\x39\x9a\x39\x9b\x39\x9c\x39\x9d\x39\x9e\x39\x9f\x39\xa0\x39\xa1\x39\xa2\x39\xa3\x39\xa4\x39\xa5\x39\xa6\x39\xa7\x39\xa8\x39\xa9\x39\xaa\x39\xab\x39\xac\x39\xad\x39\xae\x39\xaf\x39\xb0\x39\xb1\x39\xb2\x39\xb3\x39\xb4\x39\xb5\x39\xb6\x39\xb7\x39\xb8\x39\xb9\x39\xba\x39\xbb\x39\xbc\x39\xbd\x39\xbe\x39\xbf\x39\xc0\x39\xc1\x39\xc2\x39\xc3\x39\xc4\x39\xc5\x39\xc6\x39\xc7\x39\xc8\x39\xc9\x39\xca\x39\xcb\x39\xcc\x39\xcd\x39\xce\x39\xd1\x39\xd2\x39\xd3\x39\xd4\x39\xd5\x39\xd6\x39\xd7\x39\xd8\x39\xd9\x39\xda\x39\xdb\x39\xdc\x39\xdd\x39\xde\x39\xe0\x39\xe1\x39\xe2\x39\xe3\x39\xe4\x39\xe5\x39\xe6\x39\xe7\x39\xe8\x39\xe9\x39\xea\x39\xeb\x39\xec\x39\xed\x39\xee\x39\xef\x39\xf0\x39\xf1\x39\xf2\x39\xf3\x39\xf4\x39\xf5\x39\xf6\x39\xf7\x39\xf8\x39\xf9\x00\x00", /* d700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\xfa\x39\xfb\x39\xfc\x39\xfd\x39\xfe\x39\xff\x3a\x00\x3a\x01\x3a\x02\x3a\x03\x3a\x04\x3a\x05\x3a\x06\x3a\x07\x3a\x08\x3a\x09\x3a\x0a\x3a\x0b\x3a\x0c\x3a\x0d\x3a\x0e\x3a\x0f\x3a\x10\x3a\x11\x3a\x12\x3a\x13\x3a\x14\x3a\x15\x3a\x16\x3a\x17\x3a\x18\x3a\x19\x3a\x1a\x3a\x1b\x3a\x1c\x3a\x1d\x3a\x1e\x3a\x1f\x3a\x20\x3a\x21\x3a\x22\x3a\x23\x3a\x24\x3a\x25\x3a\x26\x3a\x27\x3a\x28\x3a\x29\x3a\x2a\x3a\x2b\x3a\x2c\x3a\x2d\x3a\x2e\x3a\x2f\x3a\x30\x3a\x31\x3a\x32\x3a\x33\x3a\x34\x3a\x35\x3a\x36\x3a\x37\x3a\x38", /* d780 */ "\x3a\x39\x3a\x3a\x3a\x3b\x3a\x3c\x3a\x3d\x3a\x3e\x3a\x3f\x3a\x40\x3a\x41\x3a\x42\x3a\x43\x3a\x44\x3a\x45\x3a\x46\x3a\x47\x3a\x48\x3a\x49\x3a\x4a\x3a\x4b\x3a\x4c\x3a\x4d\x3a\x4e\x3a\x4f\x3a\x50\x3a\x51\x3a\x52\x3a\x53\x3a\x54\x3a\x55\x3a\x56\x3a\x57\x3a\x58\x3a\x59\x3a\x5a\x3a\x5b\x3a\x5c\x3a\x5d\x3a\x5e\x3a\x5f\x3a\x60\x3a\x61\x3a\x62\x3a\x63\x3a\x64\x3a\x65\x3a\x66\x3a\x67\x3a\x68\x3a\x69\x3a\x6a\x3a\x6b\x3a\x6c\x3a\x6d\x3a\x6e\x3a\x6f\x3a\x70\x3a\x71\x3a\x72\x3a\x74\x3a\x75\x3a\x76\x3a\x77\x3a\x78\x3a\x79\x3a\x7a\x3a\x7b\x3a\x7c\x3a\x7d\x3a\x7e\x3a\x7f\x3a\x80\x3a\x81\x3a\x82\x3a\x83\x3a\x84\x3a\x85\x3a\x86\x3a\x87\x3a\x88\x3a\x89\x3a\x8a\x3a\x8b\x3a\x8c\x3a\x8d\x3a\x8e\x3a\x8f\x3a\x90\x3a\x91\x3a\x92\x3a\x93\x3a\x94\x3a\x95\x3a\x96\x3a\x97\x3a\x98\x3a\x99\x3a\x9a\x3a\x9b\x3a\x9c\x3a\x9d\x3a\x9e\x3a\x9f\x3a\xa0\x3a\xa1\x3a\xa2\x3a\xa3\x3a\xa4\x3a\xa5\x3a\xa6\x3a\xa7\x3a\xa8\x3a\xa9\x3a\xaa\x3a\xab\x3a\xac\x3a\xad\x3a\xae\x3a\xaf\x3a\xb0\x3a\xb1\x3a\xb2\x3a\xb3\x3a\xb4\x3a\xb5\x3a\xb6\x3a\xb7\x3a\xb8\x00\x00", /* d800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\xb9\x3a\xba\x3a\xbb\x3a\xbc\x3a\xbd\x3a\xbe\x3a\xbf\x3a\xc0\x3a\xc1\x3a\xc2\x3a\xc3\x3a\xc4\x3a\xc5\x3a\xc6\x3a\xc7\x3a\xc8\x3a\xc9\x3a\xca\x3a\xcb\x3a\xcc\x3a\xcd\x3a\xce\x3a\xcf\x3a\xd0\x3a\xd1\x3a\xd2\x3a\xd3\x3a\xd4\x3a\xd5\x3a\xd6\x3a\xd7\x3a\xd8\x3a\xd9\x3a\xda\x3a\xdb\x3a\xdc\x3a\xdd\x3a\xde\x3a\xdf\x3a\xe0\x3a\xe1\x3a\xe2\x3a\xe3\x3a\xe4\x3a\xe5\x3a\xe6\x3a\xe7\x3a\xe8\x3a\xe9\x3a\xea\x3a\xeb\x3a\xec\x3a\xed\x3a\xee\x3a\xef\x3a\xf0\x3a\xf1\x3a\xf2\x3a\xf3\x3a\xf4\x3a\xf5\x3a\xf6\x3a\xf7", /* d880 */ "\x3a\xf8\x3a\xf9\x3a\xfa\x3a\xfb\x3a\xfc\x3a\xfd\x3a\xfe\x3a\xff\x3b\x00\x3b\x01\x3b\x02\x3b\x03\x3b\x04\x3b\x05\x3b\x06\x3b\x07\x3b\x08\x3b\x09\x3b\x0a\x3b\x0b\x3b\x0c\x3b\x0d\x3b\x0e\x3b\x0f\x3b\x10\x3b\x11\x3b\x12\x3b\x13\x3b\x14\x3b\x15\x3b\x16\x3b\x17\x3b\x18\x3b\x19\x3b\x1a\x3b\x1b\x3b\x1c\x3b\x1d\x3b\x1e\x3b\x1f\x3b\x20\x3b\x21\x3b\x22\x3b\x23\x3b\x24\x3b\x25\x3b\x26\x3b\x27\x3b\x28\x3b\x29\x3b\x2a\x3b\x2b\x3b\x2c\x3b\x2d\x3b\x2e\x3b\x2f\x3b\x30\x3b\x31\x3b\x32\x3b\x33\x3b\x34\x3b\x35\x3b\x36\x3b\x37\x3b\x38\x3b\x39\x3b\x3a\x3b\x3b\x3b\x3c\x3b\x3d\x3b\x3e\x3b\x3f\x3b\x40\x3b\x41\x3b\x42\x3b\x43\x3b\x44\x3b\x45\x3b\x46\x3b\x47\x3b\x48\x3b\x49\x3b\x4a\x3b\x4b\x3b\x4c\x3b\x4d\x3b\x4f\x3b\x50\x3b\x51\x3b\x52\x3b\x53\x3b\x54\x3b\x55\x3b\x56\x3b\x57\x3b\x58\x3b\x59\x3b\x5a\x3b\x5b\x3b\x5c\x3b\x5d\x3b\x5e\x3b\x5f\x3b\x60\x3b\x61\x3b\x62\x3b\x63\x3b\x64\x3b\x65\x3b\x66\x3b\x67\x3b\x68\x3b\x69\x3b\x6a\x3b\x6b\x3b\x6c\x3b\x6d\x3b\x6e\x3b\x6f\x3b\x70\x3b\x71\x3b\x72\x3b\x73\x3b\x74\x3b\x75\x3b\x76\x3b\x77\x00\x00", /* d900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x78\x3b\x79\x3b\x7a\x3b\x7b\x3b\x7c\x3b\x7d\x3b\x7e\x3b\x7f\x3b\x80\x3b\x81\x3b\x82\x3b\x83\x3b\x84\x3b\x85\x3b\x86\x3b\x87\x3b\x88\x3b\x89\x3b\x8a\x3b\x8b\x3b\x8c\x3b\x8d\x3b\x8e\x3b\x8f\x3b\x90\x3b\x91\x3b\x92\x3b\x93\x3b\x94\x3b\x95\x3b\x96\x3b\x97\x3b\x98\x3b\x99\x3b\x9a\x3b\x9b\x3b\x9c\x3b\x9d\x3b\x9e\x3b\x9f\x3b\xa0\x3b\xa1\x3b\xa2\x3b\xa3\x3b\xa4\x3b\xa5\x3b\xa6\x3b\xa7\x3b\xa8\x3b\xa9\x3b\xaa\x3b\xab\x3b\xac\x3b\xad\x3b\xae\x3b\xaf\x3b\xb0\x3b\xb1\x3b\xb2\x3b\xb3\x3b\xb4\x3b\xb5\x3b\xb6", /* d980 */ "\x3b\xb7\x3b\xb8\x3b\xb9\x3b\xba\x3b\xbb\x3b\xbc\x3b\xbd\x3b\xbe\x3b\xbf\x3b\xc0\x3b\xc1\x3b\xc2\x3b\xc3\x3b\xc4\x3b\xc5\x3b\xc6\x3b\xc7\x3b\xc8\x3b\xc9\x3b\xca\x3b\xcb\x3b\xcc\x3b\xcd\x3b\xce\x3b\xcf\x3b\xd0\x3b\xd1\x3b\xd2\x3b\xd3\x3b\xd4\x3b\xd5\x3b\xd6\x3b\xd7\x3b\xd8\x3b\xd9\x3b\xda\x3b\xdb\x3b\xdc\x3b\xdd\x3b\xde\x3b\xdf\x3b\xe0\x3b\xe1\x3b\xe2\x3b\xe3\x3b\xe4\x3b\xe5\x3b\xe6\x3b\xe7\x3b\xe8\x3b\xe9\x3b\xea\x3b\xeb\x3b\xec\x3b\xed\x3b\xee\x3b\xef\x3b\xf0\x3b\xf1\x3b\xf2\x3b\xf3\x3b\xf4\x3b\xf5\x3b\xf6\x3b\xf7\x3b\xf8\x3b\xf9\x3b\xfa\x3b\xfb\x3b\xfc\x3b\xfd\x3b\xfe\x3b\xff\x3c\x00\x3c\x01\x3c\x02\x3c\x03\x3c\x04\x3c\x05\x3c\x06\x3c\x07\x3c\x08\x3c\x09\x3c\x0a\x3c\x0b\x3c\x0c\x3c\x0d\x3c\x0e\x3c\x0f\x3c\x10\x3c\x11\x3c\x12\x3c\x13\x3c\x14\x3c\x15\x3c\x16\x3c\x17\x3c\x18\x3c\x19\x3c\x1a\x3c\x1b\x3c\x1c\x3c\x1d\x3c\x1e\x3c\x1f\x3c\x20\x3c\x21\x3c\x22\x3c\x23\x3c\x24\x3c\x25\x3c\x26\x3c\x27\x3c\x28\x3c\x29\x3c\x2a\x3c\x2b\x3c\x2c\x3c\x2d\x3c\x2e\x3c\x2f\x3c\x30\x3c\x31\x3c\x32\x3c\x33\x3c\x34\x3c\x35\x00\x00", /* da00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x36\x3c\x37\x3c\x38\x3c\x39\x3c\x3a\x3c\x3b\x3c\x3c\x3c\x3d\x3c\x3e\x3c\x3f\x3c\x40\x3c\x41\x3c\x42\x3c\x43\x3c\x44\x3c\x45\x3c\x46\x3c\x47\x3c\x48\x3c\x49\x3c\x4a\x3c\x4b\x3c\x4c\x3c\x4d\x3c\x4e\x3c\x4f\x3c\x50\x3c\x51\x3c\x52\x3c\x53\x3c\x54\x3c\x55\x3c\x56\x3c\x57\x3c\x58\x3c\x59\x3c\x5a\x3c\x5b\x3c\x5c\x3c\x5d\x3c\x5e\x3c\x5f\x3c\x60\x3c\x61\x3c\x62\x3c\x63\x3c\x64\x3c\x65\x3c\x66\x3c\x67\x3c\x68\x3c\x69\x3c\x6a\x3c\x6b\x3c\x6c\x3c\x6d\x3c\x6f\x3c\x70\x3c\x71\x3c\x72\x3c\x73\x3c\x74\x3c\x75", /* da80 */ "\x3c\x76\x3c\x77\x3c\x78\x3c\x79\x3c\x7a\x3c\x7b\x3c\x7c\x3c\x7d\x3c\x7e\x3c\x7f\x3c\x80\x3c\x81\x3c\x82\x3c\x83\x3c\x84\x3c\x85\x3c\x86\x3c\x87\x3c\x88\x3c\x89\x3c\x8a\x3c\x8b\x3c\x8c\x3c\x8d\x3c\x8e\x3c\x8f\x3c\x90\x3c\x91\x3c\x92\x3c\x93\x3c\x94\x3c\x95\x3c\x96\x3c\x97\x3c\x98\x3c\x99\x3c\x9a\x3c\x9b\x3c\x9c\x3c\x9d\x3c\x9e\x3c\x9f\x3c\xa0\x3c\xa1\x3c\xa2\x3c\xa3\x3c\xa4\x3c\xa5\x3c\xa6\x3c\xa7\x3c\xa8\x3c\xa9\x3c\xaa\x3c\xab\x3c\xac\x3c\xad\x3c\xae\x3c\xaf\x3c\xb0\x3c\xb1\x3c\xb2\x3c\xb3\x3c\xb4\x3c\xb5\x3c\xb6\x3c\xb7\x3c\xb8\x3c\xb9\x3c\xba\x3c\xbb\x3c\xbc\x3c\xbd\x3c\xbe\x3c\xbf\x3c\xc0\x3c\xc1\x3c\xc2\x3c\xc3\x3c\xc4\x3c\xc5\x3c\xc6\x3c\xc7\x3c\xc8\x3c\xc9\x3c\xca\x3c\xcb\x3c\xcc\x3c\xcd\x3c\xce\x3c\xcf\x3c\xd0\x3c\xd1\x3c\xd2\x3c\xd3\x3c\xd4\x3c\xd5\x3c\xd6\x3c\xd7\x3c\xd8\x3c\xd9\x3c\xda\x3c\xdb\x3c\xdc\x3c\xdd\x3c\xde\x3c\xdf\x3c\xe1\x3c\xe2\x3c\xe3\x3c\xe4\x3c\xe5\x3c\xe6\x3c\xe7\x3c\xe8\x3c\xe9\x3c\xea\x3c\xeb\x3c\xec\x3c\xed\x3c\xee\x3c\xef\x3c\xf0\x3c\xf1\x3c\xf2\x3c\xf3\x3c\xf4\x3c\xf5\x00\x00", /* db00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\xf6\x3c\xf7\x3c\xf8\x3c\xf9\x3c\xfa\x3c\xfb\x3c\xfc\x3c\xfd\x3c\xfe\x3c\xff\x3d\x00\x3d\x01\x3d\x02\x3d\x03\x3d\x04\x3d\x05\x3d\x06\x3d\x07\x3d\x08\x3d\x09\x3d\x0a\x3d\x0b\x3d\x0c\x3d\x0d\x3d\x0e\x3d\x0f\x3d\x10\x3d\x11\x3d\x12\x3d\x13\x3d\x14\x3d\x15\x3d\x16\x3d\x17\x3d\x18\x3d\x19\x3d\x1a\x3d\x1b\x3d\x1c\x3d\x1d\x3d\x1e\x3d\x1f\x3d\x20\x3d\x21\x3d\x22\x3d\x23\x3d\x24\x3d\x25\x3d\x26\x3d\x27\x3d\x28\x3d\x29\x3d\x2a\x3d\x2b\x3d\x2c\x3d\x2d\x3d\x2e\x3d\x2f\x3d\x30\x3d\x31\x3d\x32\x3d\x33\x3d\x34", /* db80 */ "\x3d\x35\x3d\x36\x3d\x37\x3d\x38\x3d\x39\x3d\x3a\x3d\x3b\x3d\x3c\x3d\x3d\x3d\x3e\x3d\x3f\x3d\x40\x3d\x41\x3d\x42\x3d\x43\x3d\x44\x3d\x45\x3d\x46\x3d\x47\x3d\x48\x3d\x49\x3d\x4a\x3d\x4b\x3d\x4c\x3d\x4d\x3d\x4e\x3d\x4f\x3d\x50\x3d\x51\x3d\x52\x3d\x53\x3d\x54\x3d\x55\x3d\x56\x3d\x57\x3d\x58\x3d\x59\x3d\x5a\x3d\x5b\x3d\x5c\x3d\x5d\x3d\x5e\x3d\x5f\x3d\x60\x3d\x61\x3d\x62\x3d\x63\x3d\x64\x3d\x65\x3d\x66\x3d\x67\x3d\x68\x3d\x69\x3d\x6a\x3d\x6b\x3d\x6c\x3d\x6d\x3d\x6e\x3d\x6f\x3d\x70\x3d\x71\x3d\x72\x3d\x73\x3d\x74\x3d\x75\x3d\x76\x3d\x77\x3d\x78\x3d\x79\x3d\x7a\x3d\x7b\x3d\x7c\x3d\x7d\x3d\x7e\x3d\x7f\x3d\x80\x3d\x81\x3d\x82\x3d\x83\x3d\x84\x3d\x85\x3d\x86\x3d\x87\x3d\x88\x3d\x89\x3d\x8a\x3d\x8b\x3d\x8c\x3d\x8d\x3d\x8e\x3d\x8f\x3d\x90\x3d\x91\x3d\x92\x3d\x93\x3d\x94\x3d\x95\x3d\x96\x3d\x97\x3d\x98\x3d\x99\x3d\x9a\x3d\x9b\x3d\x9c\x3d\x9d\x3d\x9e\x3d\x9f\x3d\xa0\x3d\xa1\x3d\xa2\x3d\xa3\x3d\xa4\x3d\xa5\x3d\xa6\x3d\xa7\x3d\xa8\x3d\xa9\x3d\xaa\x3d\xab\x3d\xac\x3d\xad\x3d\xae\x3d\xaf\x3d\xb0\x3d\xb1\x3d\xb2\x3d\xb3\x00\x00", /* dc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\xb4\x3d\xb5\x3d\xb6\x3d\xb7\x3d\xb8\x3d\xb9\x3d\xba\x3d\xbb\x3d\xbc\x3d\xbd\x3d\xbe\x3d\xbf\x3d\xc0\x3d\xc1\x3d\xc2\x3d\xc3\x3d\xc4\x3d\xc5\x3d\xc6\x3d\xc7\x3d\xc8\x3d\xc9\x3d\xca\x3d\xcb\x3d\xcc\x3d\xcd\x3d\xce\x3d\xcf\x3d\xd0\x3d\xd1\x3d\xd2\x3d\xd3\x3d\xd4\x3d\xd5\x3d\xd6\x3d\xd7\x3d\xd8\x3d\xd9\x3d\xda\x3d\xdb\x3d\xdc\x3d\xdd\x3d\xde\x3d\xdf\x3d\xe0\x3d\xe1\x3d\xe2\x3d\xe3\x3d\xe4\x3d\xe5\x3d\xe6\x3d\xe7\x3d\xe8\x3d\xe9\x3d\xea\x3d\xeb\x3d\xec\x3d\xed\x3d\xee\x3d\xef\x3d\xf0\x3d\xf1\x3d\xf2", /* dc80 */ "\x3d\xf3\x3d\xf4\x3d\xf5\x3d\xf6\x3d\xf7\x3d\xf8\x3d\xf9\x3d\xfa\x3d\xfb\x3d\xfc\x3d\xfd\x3d\xfe\x3d\xff\x3e\x00\x3e\x01\x3e\x02\x3e\x03\x3e\x04\x3e\x05\x3e\x06\x3e\x07\x3e\x08\x3e\x09\x3e\x0a\x3e\x0b\x3e\x0c\x3e\x0d\x3e\x0e\x3e\x0f\x3e\x10\x3e\x11\x3e\x12\x3e\x13\x3e\x14\x3e\x15\x3e\x16\x3e\x17\x3e\x18\x3e\x19\x3e\x1a\x3e\x1b\x3e\x1c\x3e\x1d\x3e\x1e\x3e\x1f\x3e\x20\x3e\x21\x3e\x22\x3e\x23\x3e\x24\x3e\x25\x3e\x26\x3e\x27\x3e\x28\x3e\x29\x3e\x2a\x3e\x2b\x3e\x2c\x3e\x2d\x3e\x2e\x3e\x2f\x3e\x30\x3e\x31\x3e\x32\x3e\x33\x3e\x34\x3e\x35\x3e\x36\x3e\x37\x3e\x38\x3e\x39\x3e\x3a\x3e\x3b\x3e\x3c\x3e\x3d\x3e\x3e\x3e\x3f\x3e\x40\x3e\x41\x3e\x42\x3e\x43\x3e\x44\x3e\x45\x3e\x46\x3e\x47\x3e\x48\x3e\x49\x3e\x4a\x3e\x4b\x3e\x4c\x3e\x4d\x3e\x4e\x3e\x4f\x3e\x50\x3e\x51\x3e\x52\x3e\x53\x3e\x54\x3e\x55\x3e\x56\x3e\x57\x3e\x58\x3e\x59\x3e\x5a\x3e\x5b\x3e\x5c\x3e\x5d\x3e\x5e\x3e\x5f\x3e\x60\x3e\x61\x3e\x62\x3e\x63\x3e\x64\x3e\x65\x3e\x66\x3e\x67\x3e\x68\x3e\x69\x3e\x6a\x3e\x6b\x3e\x6c\x3e\x6d\x3e\x6e\x3e\x6f\x3e\x70\x3e\x71\x00\x00", /* dd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x72\x3e\x73\x3e\x74\x3e\x75\x3e\x76\x3e\x77\x3e\x78\x3e\x79\x3e\x7a\x3e\x7b\x3e\x7c\x3e\x7d\x3e\x7e\x3e\x7f\x3e\x80\x3e\x81\x3e\x82\x3e\x83\x3e\x84\x3e\x85\x3e\x86\x3e\x87\x3e\x88\x3e\x89\x3e\x8a\x3e\x8b\x3e\x8c\x3e\x8d\x3e\x8e\x3e\x8f\x3e\x90\x3e\x91\x3e\x92\x3e\x93\x3e\x94\x3e\x95\x3e\x96\x3e\x97\x3e\x98\x3e\x99\x3e\x9a\x3e\x9b\x3e\x9c\x3e\x9d\x3e\x9e\x3e\x9f\x3e\xa0\x3e\xa1\x3e\xa2\x3e\xa3\x3e\xa4\x3e\xa5\x3e\xa6\x3e\xa7\x3e\xa8\x3e\xa9\x3e\xaa\x3e\xab\x3e\xac\x3e\xad\x3e\xae\x3e\xaf\x3e\xb0", /* dd80 */ "\x3e\xb1\x3e\xb2\x3e\xb3\x3e\xb4\x3e\xb5\x3e\xb6\x3e\xb7\x3e\xb8\x3e\xb9\x3e\xba\x3e\xbb\x3e\xbc\x3e\xbd\x3e\xbe\x3e\xbf\x3e\xc0\x3e\xc1\x3e\xc2\x3e\xc3\x3e\xc4\x3e\xc5\x3e\xc6\x3e\xc7\x3e\xc8\x3e\xc9\x3e\xca\x3e\xcb\x3e\xcc\x3e\xcd\x3e\xce\x3e\xcf\x3e\xd0\x3e\xd1\x3e\xd2\x3e\xd3\x3e\xd4\x3e\xd5\x3e\xd6\x3e\xd7\x3e\xd8\x3e\xd9\x3e\xda\x3e\xdb\x3e\xdc\x3e\xdd\x3e\xde\x3e\xdf\x3e\xe0\x3e\xe1\x3e\xe2\x3e\xe3\x3e\xe4\x3e\xe5\x3e\xe6\x3e\xe7\x3e\xe8\x3e\xe9\x3e\xea\x3e\xeb\x3e\xec\x3e\xed\x3e\xee\x3e\xef\x3e\xf0\x3e\xf1\x3e\xf2\x3e\xf3\x3e\xf4\x3e\xf5\x3e\xf6\x3e\xf7\x3e\xf8\x3e\xf9\x3e\xfa\x3e\xfb\x3e\xfc\x3e\xfd\x3e\xfe\x3e\xff\x3f\x00\x3f\x01\x3f\x02\x3f\x03\x3f\x04\x3f\x05\x3f\x06\x3f\x07\x3f\x08\x3f\x09\x3f\x0a\x3f\x0b\x3f\x0c\x3f\x0d\x3f\x0e\x3f\x0f\x3f\x10\x3f\x11\x3f\x12\x3f\x13\x3f\x14\x3f\x15\x3f\x16\x3f\x17\x3f\x18\x3f\x19\x3f\x1a\x3f\x1b\x3f\x1c\x3f\x1d\x3f\x1e\x3f\x1f\x3f\x20\x3f\x21\x3f\x22\x3f\x23\x3f\x24\x3f\x25\x3f\x26\x3f\x27\x3f\x28\x3f\x29\x3f\x2a\x3f\x2b\x3f\x2c\x3f\x2d\x3f\x2e\x3f\x2f\x00\x00", /* de00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x30\x3f\x31\x3f\x32\x3f\x33\x3f\x34\x3f\x35\x3f\x36\x3f\x37\x3f\x38\x3f\x39\x3f\x3a\x3f\x3b\x3f\x3c\x3f\x3d\x3f\x3e\x3f\x3f\x3f\x40\x3f\x41\x3f\x42\x3f\x43\x3f\x44\x3f\x45\x3f\x46\x3f\x47\x3f\x48\x3f\x49\x3f\x4a\x3f\x4b\x3f\x4c\x3f\x4d\x3f\x4e\x3f\x4f\x3f\x50\x3f\x51\x3f\x52\x3f\x53\x3f\x54\x3f\x55\x3f\x56\x3f\x57\x3f\x58\x3f\x59\x3f\x5a\x3f\x5b\x3f\x5c\x3f\x5d\x3f\x5e\x3f\x5f\x3f\x60\x3f\x61\x3f\x62\x3f\x63\x3f\x64\x3f\x65\x3f\x66\x3f\x67\x3f\x68\x3f\x69\x3f\x6a\x3f\x6b\x3f\x6c\x3f\x6d\x3f\x6e", /* de80 */ "\x3f\x6f\x3f\x70\x3f\x71\x3f\x72\x3f\x73\x3f\x74\x3f\x75\x3f\x76\x3f\x77\x3f\x78\x3f\x79\x3f\x7a\x3f\x7b\x3f\x7c\x3f\x7d\x3f\x7e\x3f\x7f\x3f\x80\x3f\x81\x3f\x82\x3f\x83\x3f\x84\x3f\x85\x3f\x86\x3f\x87\x3f\x88\x3f\x89\x3f\x8a\x3f\x8b\x3f\x8c\x3f\x8d\x3f\x8e\x3f\x8f\x3f\x90\x3f\x91\x3f\x92\x3f\x93\x3f\x94\x3f\x95\x3f\x96\x3f\x97\x3f\x98\x3f\x99\x3f\x9a\x3f\x9b\x3f\x9c\x3f\x9d\x3f\x9e\x3f\x9f\x3f\xa0\x3f\xa1\x3f\xa2\x3f\xa3\x3f\xa4\x3f\xa5\x3f\xa6\x3f\xa7\x3f\xa8\x3f\xa9\x3f\xaa\x3f\xab\x3f\xac\x3f\xad\x3f\xae\x3f\xaf\x3f\xb0\x3f\xb1\x3f\xb2\x3f\xb3\x3f\xb4\x3f\xb5\x3f\xb6\x3f\xb7\x3f\xb8\x3f\xb9\x3f\xba\x3f\xbb\x3f\xbc\x3f\xbd\x3f\xbe\x3f\xbf\x3f\xc0\x3f\xc1\x3f\xc2\x3f\xc3\x3f\xc4\x3f\xc5\x3f\xc6\x3f\xc7\x3f\xc8\x3f\xc9\x3f\xca\x3f\xcb\x3f\xcc\x3f\xcd\x3f\xce\x3f\xcf\x3f\xd0\x3f\xd1\x3f\xd2\x3f\xd3\x3f\xd4\x3f\xd5\x3f\xd6\x3f\xd7\x3f\xd8\x3f\xd9\x3f\xda\x3f\xdb\x3f\xdc\x3f\xdd\x3f\xde\x3f\xdf\x3f\xe0\x3f\xe1\x3f\xe2\x3f\xe3\x3f\xe4\x3f\xe5\x3f\xe6\x3f\xe7\x3f\xe8\x3f\xe9\x3f\xea\x3f\xeb\x3f\xec\x3f\xed\x00\x00", /* df00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xee\x3f\xef\x3f\xf0\x3f\xf1\x3f\xf2\x3f\xf3\x3f\xf4\x3f\xf5\x3f\xf6\x3f\xf7\x3f\xf8\x3f\xf9\x3f\xfa\x3f\xfb\x3f\xfc\x3f\xfd\x3f\xfe\x3f\xff\x40\x00\x40\x01\x40\x02\x40\x03\x40\x04\x40\x05\x40\x06\x40\x07\x40\x08\x40\x09\x40\x0a\x40\x0b\x40\x0c\x40\x0d\x40\x0e\x40\x0f\x40\x10\x40\x11\x40\x12\x40\x13\x40\x14\x40\x15\x40\x16\x40\x17\x40\x18\x40\x19\x40\x1a\x40\x1b\x40\x1c\x40\x1d\x40\x1e\x40\x1f\x40\x20\x40\x21\x40\x22\x40\x23\x40\x24\x40\x25\x40\x26\x40\x27\x40\x28\x40\x29\x40\x2a\x40\x2b\x40\x2c", /* df80 */ "\x40\x2d\x40\x2e\x40\x2f\x40\x30\x40\x31\x40\x32\x40\x33\x40\x34\x40\x35\x40\x36\x40\x37\x40\x38\x40\x39\x40\x3a\x40\x3b\x40\x3c\x40\x3d\x40\x3e\x40\x3f\x40\x40\x40\x41\x40\x42\x40\x43\x40\x44\x40\x45\x40\x46\x40\x47\x40\x48\x40\x49\x40\x4a\x40\x4b\x40\x4c\x40\x4d\x40\x4e\x40\x4f\x40\x50\x40\x51\x40\x52\x40\x53\x40\x54\x40\x55\x40\x57\x40\x58\x40\x59\x40\x5a\x40\x5b\x40\x5c\x40\x5d\x40\x5e\x40\x5f\x40\x60\x40\x61\x40\x62\x40\x63\x40\x64\x40\x65\x40\x66\x40\x67\x40\x68\x40\x69\x40\x6a\x40\x6b\x40\x6c\x40\x6d\x40\x6e\x40\x6f\x40\x70\x40\x71\x40\x72\x40\x73\x40\x74\x40\x75\x40\x76\x40\x77\x40\x78\x40\x79\x40\x7a\x40\x7b\x40\x7c\x40\x7d\x40\x7e\x40\x7f\x40\x80\x40\x81\x40\x82\x40\x83\x40\x84\x40\x85\x40\x86\x40\x87\x40\x88\x40\x89\x40\x8a\x40\x8b\x40\x8c\x40\x8d\x40\x8e\x40\x8f\x40\x90\x40\x91\x40\x92\x40\x93\x40\x94\x40\x95\x40\x96\x40\x97\x40\x98\x40\x99\x40\x9a\x40\x9b\x40\x9c\x40\x9d\x40\x9e\x40\x9f\x40\xa0\x40\xa1\x40\xa2\x40\xa3\x40\xa4\x40\xa5\x40\xa6\x40\xa7\x40\xa8\x40\xa9\x40\xaa\x40\xab\x40\xac\x00\x00", /* e000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xad\x40\xae\x40\xaf\x40\xb0\x40\xb1\x40\xb2\x40\xb3\x40\xb4\x40\xb5\x40\xb6\x40\xb7\x40\xb8\x40\xb9\x40\xba\x40\xbb\x40\xbc\x40\xbd\x40\xbe\x40\xbf\x40\xc0\x40\xc1\x40\xc2\x40\xc3\x40\xc4\x40\xc5\x40\xc6\x40\xc7\x40\xc8\x40\xc9\x40\xca\x40\xcb\x40\xcc\x40\xcd\x40\xce\x40\xcf\x40\xd0\x40\xd1\x40\xd2\x40\xd3\x40\xd4\x40\xd5\x40\xd6\x40\xd7\x40\xd8\x40\xd9\x40\xda\x40\xdb\x40\xdc\x40\xdd\x40\xde\x40\xdf\x40\xe0\x40\xe1\x40\xe2\x40\xe3\x40\xe4\x40\xe5\x40\xe6\x40\xe7\x40\xe8\x40\xe9\x40\xea\x40\xeb", /* e080 */ "\x40\xec\x40\xed\x40\xee\x40\xef\x40\xf0\x40\xf1\x40\xf2\x40\xf3\x40\xf4\x40\xf5\x40\xf6\x40\xf7\x40\xf8\x40\xf9\x40\xfa\x40\xfb\x40\xfc\x40\xfd\x40\xfe\x40\xff\x41\x00\x41\x01\x41\x02\x41\x03\x41\x04\x41\x05\x41\x06\x41\x07\x41\x08\x41\x09\x41\x0a\x41\x0b\x41\x0c\x41\x0d\x41\x0e\x41\x0f\x41\x10\x41\x11\x41\x12\x41\x13\x41\x14\x41\x15\x41\x16\x41\x17\x41\x18\x41\x19\x41\x1a\x41\x1b\x41\x1c\x41\x1d\x41\x1e\x41\x1f\x41\x20\x41\x21\x41\x22\x41\x23\x41\x24\x41\x25\x41\x26\x41\x27\x41\x28\x41\x29\x41\x2a\x41\x2b\x41\x2c\x41\x2d\x41\x2e\x41\x2f\x41\x30\x41\x31\x41\x32\x41\x33\x41\x34\x41\x35\x41\x36\x41\x37\x41\x38\x41\x39\x41\x3a\x41\x3b\x41\x3c\x41\x3d\x41\x3e\x41\x3f\x41\x40\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x41\x59\x41\x5a\x41\x5b\x41\x5c\x41\x5d\x41\x5e\x41\x60\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x00\x00", /* e100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x41\x79\x41\x7a\x41\x7b\x41\x7c\x41\x7d\x41\x7e\x41\x7f\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x86\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x41\xa1\x41\xa2\x41\xa3\x41\xa4\x41\xa5\x41\xa6\x41\xa7\x41\xa8\x41\xa9\x41\xaa", /* e180 */ "\x41\xab\x41\xac\x41\xad\x41\xae\x41\xaf\x41\xb0\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x41\xbb\x41\xbc\x41\xbd\x41\xbe\x41\xbf\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc6\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\xe1\x41\xe2\x41\xe3\x41\xe4\x41\xe5\x41\xe6\x41\xe7\x41\xe8\x41\xe9\x41\xea\x41\xeb\x41\xec\x41\xed\x41\xee\x41\xef\x41\xf0\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x41\xfd\x41\xfe\x41\xff\x42\x00\x42\x01\x42\x02\x42\x03\x42\x04\x42\x05\x42\x06\x42\x07\x42\x08\x42\x09\x42\x0a\x42\x0b\x42\x0c\x42\x0d\x42\x0e\x42\x0f\x42\x10\x42\x11\x42\x12\x42\x13\x42\x14\x42\x15\x42\x16\x42\x17\x42\x18\x42\x19\x42\x1a\x42\x1b\x42\x1c\x42\x1d\x42\x1e\x42\x1f\x42\x20\x42\x21\x42\x22\x42\x23\x42\x24\x42\x25\x42\x26\x42\x27\x42\x28\x42\x29\x00\x00", /* e200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x2a\x42\x2b\x42\x2c\x42\x2d\x42\x2e\x42\x2f\x42\x30\x42\x31\x42\x32\x42\x33\x42\x34\x42\x35\x42\x36\x42\x37\x42\x38\x42\x39\x42\x3a\x42\x3b\x42\x3c\x42\x3d\x42\x3e\x42\x3f\x42\x40\x42\x41\x42\x42\x42\x43\x42\x44\x42\x45\x42\x46\x42\x47\x42\x48\x42\x49\x42\x4a\x42\x4b\x42\x4c\x42\x4d\x42\x4e\x42\x4f\x42\x50\x42\x51\x42\x52\x42\x53\x42\x54\x42\x55\x42\x56\x42\x57\x42\x58\x42\x59\x42\x5a\x42\x5b\x42\x5c\x42\x5d\x42\x5e\x42\x5f\x42\x60\x42\x61\x42\x62\x42\x63\x42\x64\x42\x65\x42\x66\x42\x67\x42\x68", /* e280 */ "\x42\x69\x42\x6a\x42\x6b\x42\x6c\x42\x6d\x42\x6e\x42\x6f\x42\x70\x42\x71\x42\x72\x42\x73\x42\x74\x42\x75\x42\x76\x42\x77\x42\x78\x42\x79\x42\x7a\x42\x7b\x42\x7c\x42\x7d\x42\x7e\x42\x7f\x42\x80\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x8a\x42\x8b\x42\x8c\x42\x8d\x42\x8e\x42\x8f\x42\x90\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\x9a\x42\x9b\x42\x9c\x42\x9d\x42\x9e\x42\x9f\x42\xa0\x42\xa1\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xaa\x42\xab\x42\xac\x42\xad\x42\xae\x42\xaf\x42\xb0\x42\xb1\x42\xb2\x42\xb3\x42\xb4\x42\xb5\x42\xb6\x42\xb7\x42\xb8\x42\xb9\x42\xba\x42\xbb\x42\xbc\x42\xbd\x42\xbe\x42\xbf\x42\xc0\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xca\x42\xcb\x42\xcc\x42\xcd\x42\xce\x42\xcf\x42\xd0\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xda\x42\xdb\x42\xdc\x42\xdd\x42\xde\x42\xdf\x42\xe0\x42\xe1\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x00\x00", /* e300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\xe8\x42\xe9\x42\xea\x42\xeb\x42\xec\x42\xed\x42\xee\x42\xef\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\xfa\x42\xfb\x42\xfc\x42\xfd\x42\xfe\x42\xff\x43\x00\x43\x01\x43\x02\x43\x03\x43\x04\x43\x05\x43\x06\x43\x07\x43\x08\x43\x09\x43\x0a\x43\x0b\x43\x0c\x43\x0d\x43\x0e\x43\x0f\x43\x10\x43\x11\x43\x12\x43\x13\x43\x14\x43\x15\x43\x16\x43\x17\x43\x18\x43\x19\x43\x1a\x43\x1b\x43\x1c\x43\x1d\x43\x1e\x43\x1f\x43\x20\x43\x21\x43\x22\x43\x23\x43\x24\x43\x25\x43\x26", /* e380 */ "\x43\x27\x43\x28\x43\x29\x43\x2a\x43\x2b\x43\x2c\x43\x2d\x43\x2e\x43\x2f\x43\x30\x43\x31\x43\x32\x43\x33\x43\x34\x43\x35\x43\x36\x43\x38\x43\x39\x43\x3a\x43\x3b\x43\x3c\x43\x3d\x43\x3e\x43\x3f\x43\x40\x43\x41\x43\x42\x43\x43\x43\x44\x43\x45\x43\x46\x43\x47\x43\x48\x43\x49\x43\x4a\x43\x4b\x43\x4c\x43\x4d\x43\x4e\x43\x4f\x43\x50\x43\x51\x43\x52\x43\x53\x43\x54\x43\x55\x43\x56\x43\x57\x43\x58\x43\x59\x43\x5a\x43\x5b\x43\x5c\x43\x5d\x43\x5e\x43\x5f\x43\x60\x43\x61\x43\x62\x43\x63\x43\x64\x43\x65\x43\x66\x43\x67\x43\x68\x43\x69\x43\x6a\x43\x6b\x43\x6c\x43\x6d\x43\x6e\x43\x6f\x43\x70\x43\x71\x43\x72\x43\x73\x43\x74\x43\x75\x43\x76\x43\x77\x43\x78\x43\x79\x43\x7a\x43\x7b\x43\x7c\x43\x7d\x43\x7e\x43\x7f\x43\x80\x43\x81\x43\x82\x43\x83\x43\x84\x43\x85\x43\x86\x43\x87\x43\x88\x43\x89\x43\x8a\x43\x8b\x43\x8c\x43\x8d\x43\x8e\x43\x8f\x43\x90\x43\x91\x43\x92\x43\x93\x43\x94\x43\x95\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9b\x43\x9c\x43\x9d\x43\x9e\x43\x9f\x43\xa0\x43\xa1\x43\xa2\x43\xa3\x43\xa4\x43\xa5\x43\xa6\x00\x00", /* e400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa7\x43\xa8\x43\xa9\x43\xaa\x43\xab\x43\xad\x43\xae\x43\xaf\x43\xb0\x43\xb2\x43\xb3\x43\xb4\x43\xb5\x43\xb6\x43\xb7\x43\xb8\x43\xb9\x43\xba\x43\xbb\x43\xbc\x43\xbd\x43\xbe\x43\xbf\x43\xc0\x43\xc1\x43\xc2\x43\xc3\x43\xc4\x43\xc5\x43\xc6\x43\xc7\x43\xc8\x43\xc9\x43\xca\x43\xcb\x43\xcc\x43\xcd\x43\xce\x43\xcf\x43\xd0\x43\xd1\x43\xd2\x43\xd3\x43\xd4\x43\xd5\x43\xd6\x43\xd7\x43\xd8\x43\xd9\x43\xda\x43\xdb\x43\xdc\x43\xde\x43\xdf\x43\xe0\x43\xe1\x43\xe2\x43\xe3\x43\xe4\x43\xe5\x43\xe6\x43\xe7\x43\xe8", /* e480 */ "\x43\xe9\x43\xea\x43\xeb\x43\xec\x43\xed\x43\xee\x43\xef\x43\xf0\x43\xf1\x43\xf2\x43\xf3\x43\xf4\x43\xf5\x43\xf6\x43\xf7\x43\xf8\x43\xf9\x43\xfa\x43\xfb\x43\xfc\x43\xfd\x43\xfe\x43\xff\x44\x00\x44\x01\x44\x02\x44\x03\x44\x04\x44\x05\x44\x06\x44\x07\x44\x08\x44\x09\x44\x0a\x44\x0b\x44\x0c\x44\x0d\x44\x0e\x44\x0f\x44\x10\x44\x11\x44\x12\x44\x13\x44\x14\x44\x15\x44\x16\x44\x17\x44\x18\x44\x19\x44\x1a\x44\x1b\x44\x1c\x44\x1d\x44\x1e\x44\x1f\x44\x20\x44\x21\x44\x22\x44\x23\x44\x24\x44\x25\x44\x26\x44\x27\x44\x28\x44\x29\x44\x2a\x44\x2b\x44\x2c\x44\x2d\x44\x2e\x44\x2f\x44\x30\x44\x31\x44\x32\x44\x33\x44\x34\x44\x35\x44\x36\x44\x37\x44\x38\x44\x39\x44\x3a\x44\x3b\x44\x3c\x44\x3d\x44\x3e\x44\x3f\x44\x40\x44\x41\x44\x42\x44\x43\x44\x44\x44\x45\x44\x46\x44\x47\x44\x48\x44\x49\x44\x4a\x44\x4b\x44\x4c\x44\x4d\x44\x4e\x44\x4f\x44\x50\x44\x51\x44\x52\x44\x53\x44\x54\x44\x55\x44\x56\x44\x57\x44\x58\x44\x59\x44\x5a\x44\x5b\x44\x5c\x44\x5d\x44\x5e\x44\x5f\x44\x60\x44\x61\x44\x62\x44\x63\x44\x64\x44\x65\x44\x66\x44\x67\x00\x00", /* e500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x69\x44\x6a\x44\x6b\x44\x6c\x44\x6d\x44\x6e\x44\x6f\x44\x70\x44\x71\x44\x72\x44\x73\x44\x74\x44\x75\x44\x76\x44\x77\x44\x78\x44\x79\x44\x7a\x44\x7b\x44\x7c\x44\x7d\x44\x7e\x44\x7f\x44\x80\x44\x81\x44\x82\x44\x83\x44\x84\x44\x85\x44\x86\x44\x87\x44\x88\x44\x89\x44\x8a\x44\x8b\x44\x8c\x44\x8d\x44\x8e\x44\x8f\x44\x90\x44\x91\x44\x92\x44\x93\x44\x94\x44\x95\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9b\x44\x9c\x44\x9d\x44\x9e\x44\x9f\x44\xa0\x44\xa1\x44\xa2\x44\xa3\x44\xa4\x44\xa5\x44\xa6", /* e580 */ "\x44\xa7\x44\xa8\x44\xa9\x44\xaa\x44\xab\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xb0\x44\xb1\x44\xb2\x44\xb3\x44\xb4\x44\xb5\x44\xb6\x44\xb7\x44\xb8\x44\xb9\x44\xba\x44\xbb\x44\xbc\x44\xbd\x44\xbe\x44\xbf\x44\xc0\x44\xc1\x44\xc2\x44\xc3\x44\xc4\x44\xc5\x44\xc6\x44\xc7\x44\xc8\x44\xc9\x44\xca\x44\xcb\x44\xcc\x44\xcd\x44\xce\x44\xcf\x44\xd0\x44\xd1\x44\xd2\x44\xd3\x44\xd4\x44\xd5\x44\xd7\x44\xd8\x44\xd9\x44\xda\x44\xdb\x44\xdc\x44\xdd\x44\xde\x44\xdf\x44\xe0\x44\xe1\x44\xe2\x44\xe3\x44\xe4\x44\xe5\x44\xe6\x44\xe7\x44\xe8\x44\xe9\x44\xea\x44\xeb\x44\xec\x44\xed\x44\xee\x44\xef\x44\xf0\x44\xf1\x44\xf2\x44\xf3\x44\xf4\x44\xf5\x44\xf6\x44\xf7\x44\xf8\x44\xf9\x44\xfa\x44\xfb\x44\xfc\x44\xfd\x44\xfe\x44\xff\x45\x00\x45\x01\x45\x02\x45\x03\x45\x04\x45\x05\x45\x06\x45\x07\x45\x08\x45\x09\x45\x0a\x45\x0b\x45\x0c\x45\x0d\x45\x0e\x45\x0f\x45\x10\x45\x11\x45\x12\x45\x13\x45\x14\x45\x15\x45\x16\x45\x17\x45\x18\x45\x19\x45\x1a\x45\x1b\x45\x1c\x45\x1d\x45\x1e\x45\x1f\x45\x20\x45\x21\x45\x22\x45\x23\x45\x24\x45\x25\x45\x26\x00\x00", /* e600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x27\x45\x28\x45\x29\x45\x2a\x45\x2b\x45\x2c\x45\x2d\x45\x2e\x45\x2f\x45\x30\x45\x31\x45\x32\x45\x33\x45\x34\x45\x35\x45\x36\x45\x37\x45\x38\x45\x39\x45\x3a\x45\x3b\x45\x3c\x45\x3d\x45\x3e\x45\x3f\x45\x40\x45\x41\x45\x42\x45\x43\x45\x44\x45\x45\x45\x46\x45\x47\x45\x48\x45\x49\x45\x4a\x45\x4b\x45\x4c\x45\x4d\x45\x4e\x45\x4f\x45\x50\x45\x51\x45\x52\x45\x53\x45\x54\x45\x55\x45\x56\x45\x57\x45\x58\x45\x59\x45\x5a\x45\x5b\x45\x5c\x45\x5d\x45\x5e\x45\x5f\x45\x60\x45\x61\x45\x62\x45\x63\x45\x64\x45\x65", /* e680 */ "\x45\x66\x45\x67\x45\x68\x45\x69\x45\x6a\x45\x6b\x45\x6c\x45\x6d\x45\x6e\x45\x6f\x45\x70\x45\x71\x45\x72\x45\x73\x45\x74\x45\x75\x45\x76\x45\x77\x45\x78\x45\x79\x45\x7a\x45\x7b\x45\x7c\x45\x7d\x45\x7e\x45\x7f\x45\x80\x45\x81\x45\x82\x45\x83\x45\x84\x45\x85\x45\x86\x45\x87\x45\x88\x45\x89\x45\x8a\x45\x8b\x45\x8c\x45\x8d\x45\x8e\x45\x8f\x45\x90\x45\x91\x45\x92\x45\x93\x45\x94\x45\x95\x45\x96\x45\x97\x45\x98\x45\x99\x45\x9a\x45\x9b\x45\x9c\x45\x9d\x45\x9e\x45\x9f\x45\xa0\x45\xa1\x45\xa2\x45\xa3\x45\xa4\x45\xa5\x45\xa6\x45\xa7\x45\xa8\x45\xa9\x45\xaa\x45\xab\x45\xac\x45\xad\x45\xae\x45\xaf\x45\xb0\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xd9\x45\xda\x45\xdb\x45\xdc\x45\xdd\x45\xde\x45\xdf\x45\xe0\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x00\x00", /* e700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x45\xeb\x45\xec\x45\xed\x45\xee\x45\xef\x45\xf0\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x45\xfb\x45\xfc\x45\xfd\x45\xfe\x45\xff\x46\x00\x46\x01\x46\x02\x46\x03\x46\x04\x46\x05\x46\x06\x46\x07\x46\x08\x46\x09\x46\x0a\x46\x0b\x46\x0c\x46\x0d\x46\x0e\x46\x0f\x46\x10\x46\x11\x46\x12\x46\x13\x46\x14\x46\x15\x46\x16\x46\x17\x46\x18\x46\x19\x46\x1a\x46\x1b\x46\x1c\x46\x1d\x46\x1e\x46\x1f\x46\x20\x46\x21\x46\x22\x46\x23", /* e780 */ "\x46\x24\x46\x25\x46\x26\x46\x27\x46\x28\x46\x29\x46\x2a\x46\x2b\x46\x2c\x46\x2d\x46\x2e\x46\x2f\x46\x30\x46\x31\x46\x32\x46\x33\x46\x34\x46\x35\x46\x36\x46\x37\x46\x38\x46\x39\x46\x3a\x46\x3b\x46\x3c\x46\x3d\x46\x3e\x46\x3f\x46\x40\x46\x41\x46\x42\x46\x43\x46\x44\x46\x45\x46\x46\x46\x47\x46\x48\x46\x49\x46\x4a\x46\x4b\x46\x4d\x46\x4e\x46\x4f\x46\x50\x46\x51\x46\x52\x46\x53\x46\x54\x46\x55\x46\x56\x46\x57\x46\x58\x46\x59\x46\x5a\x46\x5b\x46\x5c\x46\x5d\x46\x5e\x46\x5f\x46\x60\x46\x62\x46\x63\x46\x64\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x46\x8a\x46\x8b\x46\x8c\x46\x8d\x46\x8e\x46\x8f\x46\x90\x46\x91\x46\x92\x46\x93\x46\x94\x46\x95\x46\x96\x46\x97\x46\x98\x46\x99\x46\x9a\x46\x9b\x46\x9c\x46\x9d\x46\x9e\x46\x9f\x46\xa0\x46\xa1\x46\xa2\x46\xa3\x46\xa4\x00\x00", /* e800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3", /* e880 */ "\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x46\xf0\x46\xf1\x46\xf2\x46\xf3\x46\xf4\x46\xf5\x46\xf6\x46\xf7\x46\xf8\x46\xf9\x46\xfa\x46\xfb\x46\xfc\x46\xfd\x46\xfe\x46\xff\x47\x00\x47\x01\x47\x02\x47\x03\x47\x04\x47\x05\x47\x06\x47\x07\x47\x08\x47\x09\x47\x0a\x47\x0b\x47\x0c\x47\x0d\x47\x0e\x47\x0f\x47\x10\x47\x11\x47\x12\x47\x13\x47\x14\x47\x15\x47\x16\x47\x17\x47\x18\x47\x19\x47\x1a\x47\x1b\x47\x1c\x47\x1d\x47\x1e\x47\x1f\x47\x20\x47\x21\x47\x22\x47\x24\x47\x25\x47\x26\x47\x27\x47\x28\x47\x2a\x47\x2b\x47\x2c\x47\x2d\x47\x2e\x47\x2f\x47\x30\x47\x31\x47\x32\x47\x33\x47\x34\x47\x35\x47\x36\x47\x37\x47\x38\x47\x39\x47\x3a\x47\x3b\x47\x3c\x47\x3d\x47\x3e\x47\x3f\x47\x40\x47\x41\x47\x42\x47\x43\x47\x44\x47\x45\x47\x46\x47\x47\x47\x48\x47\x49\x47\x4a\x47\x4b\x47\x4c\x47\x4d\x47\x4e\x47\x4f\x47\x50\x47\x51\x47\x52\x47\x53\x47\x54\x47\x55\x47\x56\x47\x57\x47\x58\x47\x59\x47\x5a\x47\x5b\x47\x5c\x47\x5d\x47\x5e\x47\x5f\x47\x60\x47\x61\x47\x62\x47\x63\x47\x64\x00\x00", /* e900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x65\x47\x66\x47\x67\x47\x68\x47\x69\x47\x6a\x47\x6b\x47\x6c\x47\x6d\x47\x6e\x47\x6f\x47\x70\x47\x71\x47\x72\x47\x73\x47\x74\x47\x75\x47\x76\x47\x77\x47\x78\x47\x79\x47\x7a\x47\x7b\x47\x7d\x47\x7e\x47\x7f\x47\x80\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x47\xa1\x47\xa2\x47\xa3\x47\xa4\x47\xa5", /* e980 */ "\x47\xa6\x47\xa7\x47\xa8\x47\xa9\x47\xaa\x47\xab\x47\xac\x47\xad\x47\xae\x47\xaf\x47\xb0\x47\xb1\x47\xb2\x47\xb3\x47\xb4\x47\xb5\x47\xb6\x47\xb7\x47\xb8\x47\xb9\x47\xba\x47\xbb\x47\xbc\x47\xbd\x47\xbe\x47\xbf\x47\xc0\x47\xc1\x47\xc2\x47\xc3\x47\xc4\x47\xc5\x47\xc6\x47\xc7\x47\xc8\x47\xc9\x47\xca\x47\xcb\x47\xcc\x47\xcd\x47\xce\x47\xcf\x47\xd0\x47\xd1\x47\xd2\x47\xd3\x47\xd4\x47\xd5\x47\xd6\x47\xd7\x47\xd8\x47\xd9\x47\xda\x47\xdb\x47\xdc\x47\xdd\x47\xde\x47\xdf\x47\xe0\x47\xe1\x47\xe2\x47\xe3\x47\xe4\x47\xe5\x47\xe6\x47\xe7\x47\xe8\x47\xe9\x47\xea\x47\xeb\x47\xec\x47\xed\x47\xee\x47\xef\x47\xf0\x47\xf1\x47\xf2\x47\xf3\x47\xf4\x47\xf5\x47\xf6\x47\xf7\x47\xf8\x47\xf9\x47\xfa\x47\xfb\x47\xfc\x47\xfd\x47\xfe\x47\xff\x48\x00\x48\x01\x48\x02\x48\x03\x48\x04\x48\x05\x48\x06\x48\x07\x48\x08\x48\x09\x48\x0a\x48\x0b\x48\x0c\x48\x0d\x48\x0e\x48\x0f\x48\x10\x48\x11\x48\x12\x48\x13\x48\x14\x48\x15\x48\x16\x48\x17\x48\x18\x48\x19\x48\x1a\x48\x1b\x48\x1c\x48\x1d\x48\x1e\x48\x1f\x48\x20\x48\x21\x48\x22\x48\x23\x48\x24\x00\x00", /* ea00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x25\x48\x26\x48\x27\x48\x28\x48\x29\x48\x2a\x48\x2b\x48\x2c\x48\x2d\x48\x2e\x48\x2f\x48\x30\x48\x31\x48\x32\x48\x33\x48\x34\x48\x35\x48\x36\x48\x37\x48\x38\x48\x39\x48\x3a\x48\x3b\x48\x3c\x48\x3d\x48\x3e\x48\x3f\x48\x40\x48\x41\x48\x42\x48\x43\x48\x44\x48\x45\x48\x46\x48\x47\x48\x48\x48\x49\x48\x4a\x48\x4b\x48\x4c\x48\x4d\x48\x4e\x48\x4f\x48\x50\x48\x51\x48\x52\x48\x53\x48\x54\x48\x55\x48\x56\x48\x57\x48\x58\x48\x59\x48\x5a\x48\x5b\x48\x5c\x48\x5d\x48\x5e\x48\x5f\x48\x60\x48\x61\x48\x62\x48\x63", /* ea80 */ "\x48\x64\x48\x65\x48\x66\x48\x67\x48\x68\x48\x69\x48\x6a\x48\x6b\x48\x6c\x48\x6d\x48\x6e\x48\x6f\x48\x70\x48\x71\x48\x72\x48\x73\x48\x74\x48\x75\x48\x76\x48\x77\x48\x78\x48\x79\x48\x7a\x48\x7b\x48\x7c\x48\x7d\x48\x7e\x48\x7f\x48\x80\x48\x81\x48\x82\x48\x83\x48\x84\x48\x85\x48\x86\x48\x87\x48\x88\x48\x89\x48\x8a\x48\x8b\x48\x8c\x48\x8d\x48\x8e\x48\x8f\x48\x90\x48\x91\x48\x92\x48\x93\x48\x94\x48\x95\x48\x96\x48\x97\x48\x98\x48\x99\x48\x9a\x48\x9b\x48\x9c\x48\x9d\x48\x9e\x48\x9f\x48\xa0\x48\xa1\x48\xa2\x48\xa3\x48\xa4\x48\xa5\x48\xa6\x48\xa7\x48\xa8\x48\xa9\x48\xaa\x48\xab\x48\xac\x48\xad\x48\xae\x48\xaf\x48\xb0\x48\xb1\x48\xb2\x48\xb3\x48\xb4\x48\xb5\x48\xb6\x48\xb7\x48\xb8\x48\xb9\x48\xba\x48\xbb\x48\xbc\x48\xbd\x48\xbe\x48\xbf\x48\xc0\x48\xc1\x48\xc2\x48\xc3\x48\xc4\x48\xc5\x48\xc6\x48\xc7\x48\xc8\x48\xc9\x48\xca\x48\xcb\x48\xcc\x48\xcd\x48\xce\x48\xcf\x48\xd0\x48\xd1\x48\xd2\x48\xd3\x48\xd4\x48\xd5\x48\xd6\x48\xd7\x48\xd8\x48\xd9\x48\xda\x48\xdb\x48\xdc\x48\xdd\x48\xde\x48\xdf\x48\xe0\x48\xe1\x48\xe2\x00\x00", /* eb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xe3\x48\xe4\x48\xe5\x48\xe6\x48\xe7\x48\xe8\x48\xe9\x48\xea\x48\xeb\x48\xec\x48\xed\x48\xee\x48\xef\x48\xf0\x48\xf1\x48\xf2\x48\xf3\x48\xf4\x48\xf5\x48\xf6\x48\xf7\x48\xf8\x48\xf9\x48\xfa\x48\xfb\x48\xfc\x48\xfd\x48\xfe\x48\xff\x49\x00\x49\x01\x49\x02\x49\x03\x49\x04\x49\x05\x49\x06\x49\x07\x49\x08\x49\x09\x49\x0a\x49\x0b\x49\x0c\x49\x0d\x49\x0e\x49\x0f\x49\x10\x49\x11\x49\x12\x49\x13\x49\x14\x49\x15\x49\x16\x49\x17\x49\x18\x49\x19\x49\x1a\x49\x1b\x49\x1c\x49\x1d\x49\x1e\x49\x1f\x49\x20\x49\x21", /* eb80 */ "\x49\x22\x49\x23\x49\x24\x49\x25\x49\x26\x49\x27\x49\x28\x49\x29\x49\x2a\x49\x2b\x49\x2c\x49\x2d\x49\x2e\x49\x2f\x49\x30\x49\x31\x49\x32\x49\x33\x49\x34\x49\x35\x49\x36\x49\x37\x49\x38\x49\x39\x49\x3a\x49\x3b\x49\x3c\x49\x3d\x49\x3e\x49\x3f\x49\x40\x49\x41\x49\x42\x49\x43\x49\x44\x49\x45\x49\x46\x49\x48\x49\x49\x49\x4a\x49\x4b\x49\x4c\x49\x4d\x49\x4e\x49\x4f\x49\x50\x49\x51\x49\x52\x49\x53\x49\x54\x49\x55\x49\x56\x49\x57\x49\x58\x49\x59\x49\x5a\x49\x5b\x49\x5c\x49\x5d\x49\x5e\x49\x5f\x49\x60\x49\x61\x49\x62\x49\x63\x49\x64\x49\x65\x49\x66\x49\x67\x49\x68\x49\x69\x49\x6a\x49\x6b\x49\x6c\x49\x6d\x49\x6e\x49\x6f\x49\x70\x49\x71\x49\x72\x49\x73\x49\x74\x49\x75\x49\x76\x49\x77\x49\x78\x49\x79\x49\x7b\x49\x7c\x49\x7e\x49\x7f\x49\x80\x49\x81\x49\x84\x49\x87\x49\x88\x49\x89\x49\x8a\x49\x8b\x49\x8c\x49\x8d\x49\x8e\x49\x8f\x49\x90\x49\x91\x49\x92\x49\x93\x49\x94\x49\x95\x49\x96\x49\x97\x49\x98\x49\x99\x49\x9a\x49\x9c\x49\x9d\x49\x9e\x49\xa0\x49\xa1\x49\xa2\x49\xa3\x49\xa4\x49\xa5\x49\xa6\x49\xa7\x49\xa8\x49\xa9\x00\x00", /* ec00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xaa\x49\xab\x49\xac\x49\xad\x49\xae\x49\xaf\x49\xb0\x49\xb1\x49\xb2\x49\xb3\x49\xb4\x49\xb5\x49\xb8\x49\xb9\x49\xba\x49\xbb\x49\xbc\x49\xbd\x49\xbe\x49\xbf\x49\xc0\x49\xc1\x49\xc2\x49\xc3\x49\xc4\x49\xc5\x49\xc6\x49\xc7\x49\xc8\x49\xc9\x49\xca\x49\xcb\x49\xcc\x49\xcd\x49\xce\x49\xcf\x49\xd0\x49\xd1\x49\xd2\x49\xd3\x49\xd4\x49\xd5\x49\xd6\x49\xd7\x49\xd8\x49\xd9\x49\xda\x49\xdb\x49\xdc\x49\xdd\x49\xde\x49\xdf\x49\xe0\x49\xe1\x49\xe2\x49\xe3\x49\xe4\x49\xe5\x49\xe6\x49\xe7\x49\xe8\x49\xe9\x49\xea", /* ec80 */ "\x49\xeb\x49\xec\x49\xed\x49\xee\x49\xef\x49\xf0\x49\xf1\x49\xf2\x49\xf3\x49\xf4\x49\xf5\x49\xf6\x49\xf7\x49\xf8\x49\xf9\x49\xfa\x49\xfb\x49\xfc\x49\xfd\x49\xfe\x49\xff\x4a\x00\x4a\x01\x4a\x02\x4a\x03\x4a\x04\x4a\x05\x4a\x06\x4a\x07\x4a\x08\x4a\x09\x4a\x0a\x4a\x0b\x4a\x0c\x4a\x0d\x4a\x0e\x4a\x0f\x4a\x10\x4a\x11\x4a\x12\x4a\x13\x4a\x14\x4a\x15\x4a\x16\x4a\x17\x4a\x18\x4a\x19\x4a\x1a\x4a\x1b\x4a\x1c\x4a\x1d\x4a\x1e\x4a\x1f\x4a\x20\x4a\x21\x4a\x22\x4a\x23\x4a\x24\x4a\x25\x4a\x26\x4a\x27\x4a\x28\x4a\x29\x4a\x2a\x4a\x2b\x4a\x2c\x4a\x2d\x4a\x2e\x4a\x2f\x4a\x30\x4a\x31\x4a\x32\x4a\x33\x4a\x34\x4a\x35\x4a\x36\x4a\x37\x4a\x38\x4a\x39\x4a\x3a\x4a\x3b\x4a\x3c\x4a\x3d\x4a\x3e\x4a\x3f\x4a\x40\x4a\x41\x4a\x42\x4a\x43\x4a\x44\x4a\x45\x4a\x46\x4a\x47\x4a\x48\x4a\x49\x4a\x4a\x4a\x4b\x4a\x4c\x4a\x4d\x4a\x4e\x4a\x4f\x4a\x50\x4a\x51\x4a\x52\x4a\x53\x4a\x54\x4a\x55\x4a\x56\x4a\x57\x4a\x58\x4a\x59\x4a\x5a\x4a\x5b\x4a\x5c\x4a\x5d\x4a\x5e\x4a\x5f\x4a\x60\x4a\x61\x4a\x62\x4a\x63\x4a\x64\x4a\x65\x4a\x66\x4a\x67\x4a\x68\x4a\x69\x00\x00", /* ed00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6a\x4a\x6b\x4a\x6c\x4a\x6d\x4a\x6e\x4a\x6f\x4a\x70\x4a\x71\x4a\x72\x4a\x73\x4a\x74\x4a\x75\x4a\x76\x4a\x77\x4a\x78\x4a\x79\x4a\x7a\x4a\x7b\x4a\x7c\x4a\x7d\x4a\x7e\x4a\x7f\x4a\x80\x4a\x81\x4a\x82\x4a\x83\x4a\x84\x4a\x85\x4a\x86\x4a\x87\x4a\x88\x4a\x89\x4a\x8a\x4a\x8b\x4a\x8c\x4a\x8d\x4a\x8e\x4a\x8f\x4a\x90\x4a\x91\x4a\x92\x4a\x93\x4a\x94\x4a\x95\x4a\x96\x4a\x97\x4a\x98\x4a\x99\x4a\x9a\x4a\x9b\x4a\x9c\x4a\x9d\x4a\x9e\x4a\x9f\x4a\xa0\x4a\xa1\x4a\xa2\x4a\xa3\x4a\xa4\x4a\xa5\x4a\xa6\x4a\xa7\x4a\xa8", /* ed80 */ "\x4a\xa9\x4a\xaa\x4a\xab\x4a\xac\x4a\xad\x4a\xae\x4a\xaf\x4a\xb0\x4a\xb1\x4a\xb2\x4a\xb3\x4a\xb4\x4a\xb5\x4a\xb6\x4a\xb7\x4a\xb8\x4a\xb9\x4a\xba\x4a\xbb\x4a\xbc\x4a\xbd\x4a\xbe\x4a\xbf\x4a\xc0\x4a\xc1\x4a\xc2\x4a\xc3\x4a\xc4\x4a\xc5\x4a\xc6\x4a\xc7\x4a\xc8\x4a\xc9\x4a\xca\x4a\xcb\x4a\xcc\x4a\xcd\x4a\xce\x4a\xcf\x4a\xd0\x4a\xd1\x4a\xd2\x4a\xd3\x4a\xd4\x4a\xd5\x4a\xd6\x4a\xd7\x4a\xd8\x4a\xd9\x4a\xda\x4a\xdb\x4a\xdc\x4a\xdd\x4a\xde\x4a\xdf\x4a\xe0\x4a\xe1\x4a\xe2\x4a\xe3\x4a\xe4\x4a\xe5\x4a\xe6\x4a\xe7\x4a\xe8\x4a\xe9\x4a\xea\x4a\xeb\x4a\xec\x4a\xed\x4a\xee\x4a\xef\x4a\xf0\x4a\xf1\x4a\xf2\x4a\xf3\x4a\xf4\x4a\xf5\x4a\xf6\x4a\xf7\x4a\xf8\x4a\xf9\x4a\xfa\x4a\xfb\x4a\xfc\x4a\xfd\x4a\xfe\x4a\xff\x4b\x00\x4b\x01\x4b\x02\x4b\x03\x4b\x04\x4b\x05\x4b\x06\x4b\x07\x4b\x08\x4b\x09\x4b\x0a\x4b\x0b\x4b\x0c\x4b\x0d\x4b\x0e\x4b\x0f\x4b\x10\x4b\x11\x4b\x12\x4b\x13\x4b\x14\x4b\x15\x4b\x16\x4b\x17\x4b\x18\x4b\x19\x4b\x1a\x4b\x1b\x4b\x1c\x4b\x1d\x4b\x1e\x4b\x1f\x4b\x20\x4b\x21\x4b\x22\x4b\x23\x4b\x24\x4b\x25\x4b\x26\x4b\x27\x00\x00", /* ee00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x28\x4b\x29\x4b\x2a\x4b\x2b\x4b\x2c\x4b\x2d\x4b\x2e\x4b\x2f\x4b\x30\x4b\x31\x4b\x32\x4b\x33\x4b\x34\x4b\x35\x4b\x36\x4b\x37\x4b\x38\x4b\x39\x4b\x3a\x4b\x3b\x4b\x3c\x4b\x3d\x4b\x3e\x4b\x3f\x4b\x40\x4b\x41\x4b\x42\x4b\x43\x4b\x44\x4b\x45\x4b\x46\x4b\x47\x4b\x48\x4b\x49\x4b\x4a\x4b\x4b\x4b\x4c\x4b\x4d\x4b\x4e\x4b\x4f\x4b\x50\x4b\x51\x4b\x52\x4b\x53\x4b\x54\x4b\x55\x4b\x56\x4b\x57\x4b\x58\x4b\x59\x4b\x5a\x4b\x5b\x4b\x5c\x4b\x5d\x4b\x5e\x4b\x5f\x4b\x60\x4b\x61\x4b\x62\x4b\x63\x4b\x64\x4b\x65\x4b\x66", /* ee80 */ "\x4b\x67\x4b\x68\x4b\x69\x4b\x6a\x4b\x6b\x4b\x6c\x4b\x6d\x4b\x6e\x4b\x6f\x4b\x70\x4b\x71\x4b\x72\x4b\x73\x4b\x74\x4b\x75\x4b\x76\x4b\x77\x4b\x78\x4b\x79\x4b\x7a\x4b\x7b\x4b\x7c\x4b\x7d\x4b\x7e\x4b\x7f\x4b\x80\x4b\x81\x4b\x82\x4b\x83\x4b\x84\x4b\x85\x4b\x86\x4b\x87\x4b\x88\x4b\x89\x4b\x8a\x4b\x8b\x4b\x8c\x4b\x8d\x4b\x8e\x4b\x8f\x4b\x90\x4b\x91\x4b\x92\x4b\x93\x4b\x94\x4b\x95\x4b\x96\x4b\x97\x4b\x98\x4b\x99\x4b\x9a\x4b\x9b\x4b\x9c\x4b\x9d\x4b\x9e\x4b\x9f\x4b\xa0\x4b\xa1\x4b\xa2\x4b\xa3\x4b\xa4\x4b\xa5\x4b\xa6\x4b\xa7\x4b\xa8\x4b\xa9\x4b\xaa\x4b\xab\x4b\xac\x4b\xad\x4b\xae\x4b\xaf\x4b\xb0\x4b\xb1\x4b\xb2\x4b\xb3\x4b\xb4\x4b\xb5\x4b\xb6\x4b\xb7\x4b\xb8\x4b\xb9\x4b\xba\x4b\xbb\x4b\xbc\x4b\xbd\x4b\xbe\x4b\xbf\x4b\xc0\x4b\xc1\x4b\xc2\x4b\xc3\x4b\xc4\x4b\xc5\x4b\xc6\x4b\xc7\x4b\xc8\x4b\xc9\x4b\xca\x4b\xcb\x4b\xcc\x4b\xcd\x4b\xce\x4b\xcf\x4b\xd0\x4b\xd1\x4b\xd2\x4b\xd3\x4b\xd4\x4b\xd5\x4b\xd6\x4b\xd7\x4b\xd8\x4b\xd9\x4b\xda\x4b\xdb\x4b\xdc\x4b\xdd\x4b\xde\x4b\xdf\x4b\xe0\x4b\xe1\x4b\xe2\x4b\xe3\x4b\xe4\x4b\xe5\x00\x00", /* ef00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe6\x4b\xe7\x4b\xe8\x4b\xe9\x4b\xea\x4b\xeb\x4b\xec\x4b\xed\x4b\xee\x4b\xef\x4b\xf0\x4b\xf1\x4b\xf2\x4b\xf3\x4b\xf4\x4b\xf5\x4b\xf6\x4b\xf7\x4b\xf8\x4b\xf9\x4b\xfa\x4b\xfb\x4b\xfc\x4b\xfd\x4b\xfe\x4b\xff\x4c\x00\x4c\x01\x4c\x02\x4c\x03\x4c\x04\x4c\x05\x4c\x06\x4c\x07\x4c\x08\x4c\x09\x4c\x0a\x4c\x0b\x4c\x0c\x4c\x0d\x4c\x0e\x4c\x0f\x4c\x10\x4c\x11\x4c\x12\x4c\x13\x4c\x14\x4c\x15\x4c\x16\x4c\x17\x4c\x18\x4c\x19\x4c\x1a\x4c\x1b\x4c\x1c\x4c\x1d\x4c\x1e\x4c\x1f\x4c\x20\x4c\x21\x4c\x22\x4c\x23\x4c\x24", /* ef80 */ "\x4c\x25\x4c\x26\x4c\x27\x4c\x28\x4c\x29\x4c\x2a\x4c\x2b\x4c\x2c\x4c\x2d\x4c\x2e\x4c\x2f\x4c\x30\x4c\x31\x4c\x32\x4c\x33\x4c\x34\x4c\x35\x4c\x36\x4c\x37\x4c\x38\x4c\x39\x4c\x3a\x4c\x3b\x4c\x3c\x4c\x3d\x4c\x3e\x4c\x3f\x4c\x40\x4c\x41\x4c\x42\x4c\x43\x4c\x44\x4c\x45\x4c\x46\x4c\x47\x4c\x48\x4c\x49\x4c\x4a\x4c\x4b\x4c\x4c\x4c\x4d\x4c\x4e\x4c\x4f\x4c\x50\x4c\x51\x4c\x52\x4c\x53\x4c\x54\x4c\x55\x4c\x56\x4c\x57\x4c\x58\x4c\x59\x4c\x5a\x4c\x5b\x4c\x5c\x4c\x5d\x4c\x5e\x4c\x5f\x4c\x60\x4c\x61\x4c\x62\x4c\x63\x4c\x64\x4c\x65\x4c\x66\x4c\x67\x4c\x68\x4c\x69\x4c\x6a\x4c\x6b\x4c\x6c\x4c\x6d\x4c\x6e\x4c\x6f\x4c\x70\x4c\x71\x4c\x72\x4c\x73\x4c\x74\x4c\x75\x4c\x76\x4c\x78\x4c\x79\x4c\x7a\x4c\x7b\x4c\x7c\x4c\x7d\x4c\x7e\x4c\x7f\x4c\x80\x4c\x81\x4c\x82\x4c\x83\x4c\x84\x4c\x85\x4c\x86\x4c\x87\x4c\x88\x4c\x89\x4c\x8a\x4c\x8b\x4c\x8c\x4c\x8d\x4c\x8e\x4c\x8f\x4c\x90\x4c\x91\x4c\x92\x4c\x93\x4c\x94\x4c\x95\x4c\x96\x4c\x97\x4c\x98\x4c\x99\x4c\x9a\x4c\x9b\x4c\x9c\x4c\x9d\x4c\x9e\x4c\xa4\x4c\xa5\x4c\xa6\x4c\xa7\x4c\xa8\x4c\xa9\x00\x00", /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xaa\x4c\xab\x4c\xac\x4c\xad\x4c\xae\x4c\xaf\x4c\xb0\x4c\xb1\x4c\xb2\x4c\xb3\x4c\xb4\x4c\xb5\x4c\xb6\x4c\xb7\x4c\xb8\x4c\xb9\x4c\xba\x4c\xbb\x4c\xbc\x4c\xbd\x4c\xbe\x4c\xbf\x4c\xc0\x4c\xc1\x4c\xc2\x4c\xc3\x4c\xc4\x4c\xc5\x4c\xc6\x4c\xc7\x4c\xc8\x4c\xc9\x4c\xca\x4c\xcb\x4c\xcc\x4c\xcd\x4c\xce\x4c\xcf\x4c\xd0\x4c\xd1\x4c\xd2\x4c\xd3\x4c\xd4\x4c\xd5\x4c\xd6\x4c\xd7\x4c\xd8\x4c\xd9\x4c\xda\x4c\xdb\x4c\xdc\x4c\xdd\x4c\xde\x4c\xdf\x4c\xe0\x4c\xe1\x4c\xe2\x4c\xe3\x4c\xe4\x4c\xe5\x4c\xe6\x4c\xe7\x4c\xe8", /* f680 */ "\x4c\xe9\x4c\xea\x4c\xeb\x4c\xec\x4c\xed\x4c\xee\x4c\xef\x4c\xf0\x4c\xf1\x4c\xf2\x4c\xf3\x4c\xf4\x4c\xf5\x4c\xf6\x4c\xf7\x4c\xf8\x4c\xf9\x4c\xfa\x4c\xfb\x4c\xfc\x4c\xfd\x4c\xfe\x4c\xff\x4d\x00\x4d\x01\x4d\x02\x4d\x03\x4d\x04\x4d\x05\x4d\x06\x4d\x07\x4d\x08\x4d\x09\x4d\x0a\x4d\x0b\x4d\x0c\x4d\x0d\x4d\x0e\x4d\x0f\x4d\x10\x4d\x11\x4d\x12\x4d\x1a\x4d\x1b\x4d\x1c\x4d\x1d\x4d\x1e\x4d\x1f\x4d\x20\x4d\x21\x4d\x22\x4d\x23\x4d\x24\x4d\x25\x4d\x26\x4d\x27\x4d\x28\x4d\x29\x4d\x2a\x4d\x2b\x4d\x2c\x4d\x2d\x4d\x2e\x4d\x2f\x4d\x30\x4d\x31\x4d\x32\x4d\x33\x4d\x34\x4d\x35\x4d\x36\x4d\x37\x4d\x38\x4d\x39\x4d\x3a\x4d\x3b\x4d\x3c\x4d\x3d\x4d\x3e\x4d\x3f\x4d\x40\x4d\x41\x4d\x42\x4d\x43\x4d\x44\x4d\x45\x4d\x46\x4d\x47\x4d\x48\x4d\x49\x4d\x4a\x4d\x4b\x4d\x4c\x4d\x4d\x4d\x4e\x4d\x4f\x4d\x50\x4d\x51\x4d\x52\x4d\x53\x4d\x54\x4d\x55\x4d\x56\x4d\x57\x4d\x58\x4d\x59\x4d\x5a\x4d\x5b\x4d\x5c\x4d\x5d\x4d\x5e\x4d\x5f\x4d\x60\x4d\x61\x4d\x62\x4d\x63\x4d\x64\x4d\x65\x4d\x66\x4d\x67\x4d\x68\x4d\x69\x4d\x6a\x4d\x6b\x4d\x6c\x4d\x6d\x4d\x6e\x00\x00", /* f700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6f\x4d\x70\x4d\x71\x4d\x72\x4d\x73\x4d\x74\x4d\x75\x4d\x76\x4d\x77\x4d\x78\x4d\x79\x4d\x7a\x4d\x7b\x4d\x7c\x4d\x7d\x4d\x7e\x4d\x7f\x4d\x80\x4d\x81\x4d\x82\x4d\x83\x4d\x84\x4d\x85\x4d\x86\x4d\x87\x4d\x88\x4d\x89\x4d\x8a\x4d\x8b\x4d\x8c\x4d\x8d\x4d\x8e\x4d\x8f\x4d\x90\x4d\x91\x4d\x92\x4d\x93\x4d\x94\x4d\x95\x4d\x96\x4d\x97\x4d\x98\x4d\x99\x4d\x9a\x4d\x9b\x4d\x9c\x4d\x9d\x4d\x9e\x4d\x9f\x4d\xa0\x4d\xa1\x4d\xa2\x4d\xa3\x4d\xa4\x4d\xa5\x4d\xa6\x4d\xa7\x4d\xa8\x4d\xa9\x4d\xaa\x4d\xab\x4d\xac\x4d\xad", /* f780 */ "\x4d\xaf\x4d\xb0\x4d\xb1\x4d\xb2\x4d\xb3\x4d\xb4\x4d\xb5\x4d\xb6\x4d\xb7\x4d\xb8\x4d\xb9\x4d\xba\x4d\xbb\x4d\xbc\x4d\xbd\x4d\xbe\x4d\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x56\xfb\x57\xfb\x58\xfb\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x7a\xfb\x7b\xfb\x7c\xfb\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x8e", /* f880 */ "\xfb\x8f\xfb\x90\xfb\x91\xfb\x92\xfb\x93\xfb\x94\xfb\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xaa\xfb\xab\xfb\xac\xfb\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xd3\xfb\xd4\xfb\xd5\xfb\xd6\xfb\xd7\xfb\xd8\xfb\xd9\xfb\xda\xfb\xdb\xfb\xdc\xfb\xdd\xfb\xde\xfb\xdf\xfb\xe0\xfb\xe1\xfb\xe2\xfb\xe3\xfb\xe4\xfb\xe5\xfb\xe6\xfb\xe7\xfb\xe8\xfb\xe9\xfb\xea\xfb\xeb\xfb\xec\xfb\xed\xfb\xee\xfb\xef\xfb\xf0\xfb\xf1\xfb\xf2\xfb\xf3\xfb\xf4\xfb\xf5\xfb\xf6\xfb\xf7\xfb\xf8\xfb\xf9\xfb\xfa\xfb\xfb\xfb\xfc\xfb\xfd\xfb\xfe\xfb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x89\xfe\x8a\xfe\x8b\xfe\x8c\xfe\x8d\xfe\x8e\xfe\x8f\xfe\x90\xfe\x91\xfe\x92\x00\x00\x00\x00\xfe\x95\xfe\x96\xfe\x97\xfe\x98\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x9d\xfe\x9e\xfe\x9f\xfe\xa0\xfe\xa1\xfe\xa2\xfe\xa3\xfe\xa4\xfe\xa5\xfe\xa6\xfe\xa7\xfe\xa8\xfe\xa9\xfe\xaa\x00\x00\x00\x00\xfe\xad\xfe\xae\xfe\xaf\xfe\xb0\xfe\xb1\xfe\xb2\xfe\xb3\xfe\xb4\xfe\xb5\xfe\xb6\xfe\xb7\x00\x00", /* fc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xc9\xfe\xca\xfe\xcb\xfe\xcc\xfe\xcd\xfe\xce\xfe\xcf\xfe\xd0\xfe\xd1\xfe\xd2\xfe\xd3\xfe\xd4\xfe\xd5\xfe\xd6\xfe\xd7\xfe\xd8\xfe\xd9\xfe\xda\xfe\xdb\xfe\xdc\xfe\xdd\xfe\xde\xfe\xdf\xfe\xe0\xfe\xe1\xfe\xe2\xfe\xe3\xfe\xe4\xfe\xe5\xfe\xe6\xfe\xe7\xfe\xe8\xfe\xe9\xfe\xea\xfe\xeb\xfe\xec\xfe\xed\xfe\xee\xfe\xef\xfe\xf0\xfe\xf1\xfe\xf2\xfe\xf3\xfe\xf4\x00\x00\x00\x00", /* fc80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfb\xfe\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { NULL } }; /* Code page aliases. */ typedef struct { char *alias; char *canon; } cpalias_t; cpalias_t cpaliases16[] = { { "chinese-gb18030", "cp1388" }, { "cp1027", "cp930" }, /* historical error */ { "cp290", "cp930" }, /* historical error */ { "cp936", "cp935" }, /* historical error */ { "japanese-1027", "cp930" }, /* historical error */ { "japanese-290", "cp930" }, /* historical error */ { "japanese-kana", "cp930" }, { "japanese-latin", "cp930" }, /* 930 and 939 DBCS are the same */ { "simplified-chinese", "cp935" }, { "traditional-chinese", "cp937" }, { NULL, NULL } }; static uni16_t *cur_uni16 = NULL; void charset_list_dbcs(void) { int i; int j; char *sep = ""; printf("DBCS host code pages (with aliases):\n"); for (i = 0; uni16[i].name != NULL; i++) { Boolean any = False; char *asep = " ("; printf("%s%s", sep, uni16[i].name); for (j = 0; cpaliases16[j].alias != NULL; j++) { if (!strcmp(cpaliases16[j].canon, uni16[i].name)) { printf("%s%s", asep, cpaliases16[j].alias); asep = ", "; any = True; } } if (any) printf(")"); sep = ", "; } printf("\n"); } /* * Translate a single DBCS EBCDIC character to Unicode. * * If EUO_BLANK_UNDEF is set, undisplayable characters are returned as * wide spaces (U+3000); otherwise they are returned as 0. */ ucs4_t ebcdic_dbcs_to_unicode(ebc_t c, unsigned flags) { int row, col; int ix; if (cur_uni16 == NULL || c < 0x100) return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; if (c == 0x4040) return 0x3000; row = (c >> 7) & 0x1ff; if (cur_uni16->ebc2u[row] == NULL) return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; col = (c & 0x7f) * 2; ix = ((cur_uni16->ebc2u[row][col] & 0xff) << 8) | (cur_uni16->ebc2u[row][col + 1] & 0xff); if (ix) return ix; else return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; } /* * Map a UCS-4 character to a DBCS EBCDIC character. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic_dbcs(ucs4_t u) { int row, col; int ix; if (cur_uni16 == NULL || !u) return 0; if (u == 0x3000) return 0x4040; row = (u >> 7) & 0x1ff; if (cur_uni16->u2ebc[row] == NULL) return 0; col = (u & 0x7f) * 2; ix = ((cur_uni16->u2ebc[row][col] & 0xff) << 8) | (cur_uni16->u2ebc[row][col + 1] & 0xff); return ix; } /* * Set the EBCDIC-to-Unicode DBCS translation table. * Returns 0 for success, -1 for failure. */ int set_uni_dbcs(const char *csname, const char **codepage, const char **display_charsets) { int i; const char *realname = csname; int rc = -1; /* Search for an alias. */ for (i = 0; cpaliases16[i].alias != NULL; i++) { if (!strcasecmp(csname, cpaliases16[i].alias)) { realname = cpaliases16[i].canon; break; } } /* Search for a match. */ for (i = 0; uni16[i].name != NULL; i++) { if (!strcasecmp(realname, uni16[i].name)) { cur_uni16 = &uni16[i]; *codepage = uni16[i].codepage; *display_charsets = uni16[i].display_charset; rc = 0; break; } } /* * If this fails (which we sometimes do on purpose), forget any * old setting. */ if (rc == -1) cur_uni16 = NULL; return rc; } #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/3270ds.h0000644000175000017500000003372511254565704015372 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES AND GTRC * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, JEFF * SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * 3270ds.h * * Header file for the 3270 Data Stream Protocol. */ /* 3270 commands */ #define CMD_W 0x01 /* write */ #define CMD_RB 0x02 /* read buffer */ #define CMD_NOP 0x03 /* no-op */ #define CMD_EW 0x05 /* erase/write */ #define CMD_RM 0x06 /* read modified */ #define CMD_EWA 0x0d /* erase/write alternate */ #define CMD_RMA 0x0e /* read modified all */ #define CMD_EAU 0x0f /* erase all unprotected */ #define CMD_WSF 0x11 /* write structured field */ /* SNA 3270 commands */ #define SNA_CMD_RMA 0x6e /* read modified all */ #define SNA_CMD_EAU 0x6f /* erase all unprotected */ #define SNA_CMD_EWA 0x7e /* erase/write alternate */ #define SNA_CMD_W 0xf1 /* write */ #define SNA_CMD_RB 0xf2 /* read buffer */ #define SNA_CMD_WSF 0xf3 /* write structured field */ #define SNA_CMD_EW 0xf5 /* erase/write */ #define SNA_CMD_RM 0xf6 /* read modified */ /* 3270 orders */ #define ORDER_PT 0x05 /* program tab */ #define ORDER_GE 0x08 /* graphic escape */ #define ORDER_SBA 0x11 /* set buffer address */ #define ORDER_EUA 0x12 /* erase unprotected to address */ #define ORDER_IC 0x13 /* insert cursor */ #define ORDER_SF 0x1d /* start field */ #define ORDER_SA 0x28 /* set attribute */ #define ORDER_SFE 0x29 /* start field extended */ #define ORDER_YALE 0x2b /* Yale sub command */ #define ORDER_MF 0x2c /* modify field */ #define ORDER_RA 0x3c /* repeat to address */ #define FCORDER_NULL 0x00 /* format control: null */ #define FCORDER_FF 0x0c /* form feed */ #define FCORDER_CR 0x0d /* carriage return */ #define FCORDER_SO 0x0e /* shift out (DBCS subfield) */ #define FCORDER_SI 0x0f /* shift in (DBCS end) */ #define FCORDER_NL 0x15 /* new line */ #define FCORDER_EM 0x19 /* end of medium */ #define FCORDER_DUP 0x1c /* duplicate */ #define FCORDER_FM 0x1e /* field mark */ #define FCORDER_SUB 0x3f /* substitute */ #define FCORDER_EO 0xff /* eight ones */ /* SCS control code, some overlap orders */ #define SCS_BS 0x16 /* Back Space */ #define SCS_BEL 0x2f /* Bell Function */ #define SCS_CR 0x0d /* Carriage Return */ #define SCS_ENP 0x14 /* Enable Presentation */ #define SCS_FF 0x0c /* Forms Feed */ #define SCS_GE 0x08 /* Graphic Escape */ #define SCS_HT 0x05 /* Horizontal Tab */ #define SCS_INP 0x24 /* Inhibit Presentation */ #define SCS_IRS 0x1e /* Interchange-Record Separator */ #define SCS_LF 0x25 /* Line Feed */ #define SCS_NL 0x15 /* New Line */ #define SCS_SA 0x28 /* Set Attribute: */ #define SCS_SA_RESET 0x00 /* Reset all */ #define SCS_SA_HIGHLIGHT 0x41 /* Highlighting */ #define SCS_SA_CS 0x42 /* Character set */ #define SCS_SA_GRID 0xc2 /* Grid */ #define SCS_SET 0x2b /* Set: */ #define SCS_SHF 0xc1 /* Horizontal format */ #define SCS_SLD 0xc6 /* Line Density */ #define SCS_SVF 0xc2 /* Vertical Format */ #define SCS_SO 0x0e /* Shift out (DBCS subfield start) */ #define SCS_SI 0x0f /* Shift in (DBCS subfield end) */ #define SCS_TRN 0x35 /* Transparent */ #define SCS_VCS 0x04 /* Vertical Channel Select */ #define SCS_VT 0x0b /* Vertical Tab */ /* Structured fields */ #define SF_READ_PART 0x01 /* read partition */ #define SF_RP_QUERY 0x02 /* query */ #define SF_RP_QLIST 0x03 /* query list */ #define SF_RPQ_LIST 0x00 /* QCODE list */ #define SF_RPQ_EQUIV 0x40 /* equivalent+ QCODE list */ #define SF_RPQ_ALL 0x80 /* all */ #define SF_ERASE_RESET 0x03 /* erase/reset */ #define SF_ER_DEFAULT 0x00 /* default */ #define SF_ER_ALT 0x80 /* alternate */ #define SF_SET_REPLY_MODE 0x09 /* set reply mode */ #define SF_SRM_FIELD 0x00 /* field */ #define SF_SRM_XFIELD 0x01 /* extended field */ #define SF_SRM_CHAR 0x02 /* character */ #define SF_CREATE_PART 0x0c /* create partition */ #define CPFLAG_PROT 0x40 /* protected flag */ #define CPFLAG_COPY_PS 0x20 /* local copy to presentation space */ #define CPFLAG_BASE 0x07 /* base character set index */ #define SF_OUTBOUND_DS 0x40 /* outbound 3270 DS */ #define SF_TRANSFER_DATA 0xd0 /* file transfer open request */ /* Query replies */ #define QR_SUMMARY 0x80 /* summary */ #define QR_USABLE_AREA 0x81 /* usable area */ #define QR_IMAGE 0x82 /* image */ #define QR_TEXT_PART 0x83 /* text partitions */ #define QR_ALPHA_PART 0x84 /* alphanumeric partitions */ #define QR_CHARSETS 0x85 /* character sets */ #define QR_COLOR 0x86 /* color */ #define QR_HIGHLIGHTING 0x87 /* highlighting */ #define QR_REPLY_MODES 0x88 /* reply modes */ #define QR_FIELD_VAL 0x8a /* field validation */ #define QR_MSR_CTL 0x8b /* MSR control */ #define QR_OUTLINING 0x8c /* field outlining */ #define QR_PART_CHAR 0x8e /* partition characteristics */ #define QR_OEM_AUX 0x8f /* OEM auxiliary device */ #define QR_FMT_PRES 0x90 /* format presentation */ #define QR_DBCS_ASIA 0x91 /* DBCS-Asia */ #define QR_SAVE_RESTORE 0x92 /* save/restore format */ #define QR_PC3270 0x93 /* PC3270 */ #define QR_FMT_SAD 0x94 /* format storage auxiliary device */ #define QR_DDM 0x95 /* distributed data management */ #define QR_STG_POOLS 0x96 /* storage pools */ #define QR_DIA 0x97 /* document interchange architecture */ #define QR_DATA_CHAIN 0x98 /* data chaining */ #define QR_AUX_DEVICE 0x99 /* auxiliary device */ #define QR_3270_IPDS 0x9a /* 3270 IPDS */ #define QR_PDDS 0x9c /* product defined data stream */ #define QR_IBM_AUX 0x9e /* IBM auxiliary device */ #define QR_BEGIN_EOF 0x9f /* begin/end of file */ #define QR_DEVICE_CHAR 0xa0 /* device characteristics */ #define QR_RPQNAMES 0xa1 /* RPQ names */ #define QR_DATA_STREAMS 0xa2 /* data streams */ #define QR_IMP_PART 0xa6 /* implicit partition */ #define QR_PAPER_FEED 0xa7 /* paper feed techniques */ #define QR_TRANSPARENCY 0xa8 /* transparency */ #define QR_SPC 0xa9 /* settable printer characteristics */ #define QR_IOCA_AD 0xaa /* IOCA auxiliary device */ #define QR_CPR 0xab /* cooperative proc. requestor */ #define QR_SEGMENT 0xb0 /* segment */ #define QR_PROCEDURE 0xb1 /* procedure */ #define QR_LINE_TYPE 0xb2 /* line type */ #define QR_PORT 0xb3 /* port */ #define QR_GCOLOR 0xb4 /* graphic color */ #define QR_XDR 0xb5 /* extended drawing routine */ #define QR_GSS 0xb6 /* graphic symbol sets */ #define QR_NULL 0xff /* null */ #define BA_TO_ROW(ba) ((ba) / COLS) #define BA_TO_COL(ba) ((ba) % COLS) #define ROWCOL_TO_BA(r,c) (((r) * COLS) + c) #define INC_BA(ba) { (ba) = ((ba) + 1) % (COLS * ROWS); } #define DEC_BA(ba) { (ba) = (ba) ? (ba - 1) : ((COLS*ROWS) - 1); } /* Field attributes. */ #define FA_PRINTABLE 0xc0 /* these make the character "printable" */ #define FA_PROTECT 0x20 /* unprotected (0) / protected (1) */ #define FA_NUMERIC 0x10 /* alphanumeric (0) /numeric (1) */ #define FA_INTENSITY 0x0c /* display/selector pen detectable: */ #define FA_INT_NORM_NSEL 0x00 /* 00 normal, non-detect */ #define FA_INT_NORM_SEL 0x04 /* 01 normal, detectable */ #define FA_INT_HIGH_SEL 0x08 /* 10 intensified, detectable */ #define FA_INT_ZERO_NSEL 0x0c /* 11 nondisplay, non-detect */ #define FA_RESERVED 0x02 /* must be 0 */ #define FA_MODIFY 0x01 /* modified (1) */ /* Bits in the field attribute that are stored. */ #define FA_MASK (FA_PROTECT | FA_NUMERIC | FA_INTENSITY | FA_MODIFY) /* Tests for various attribute properties. */ #define FA_IS_MODIFIED(c) ((c) & FA_MODIFY) #define FA_IS_NUMERIC(c) ((c) & FA_NUMERIC) #define FA_IS_PROTECTED(c) ((c) & FA_PROTECT) #define FA_IS_SKIP(c) (((c) & FA_PROTECT) && ((c) & FA_NUMERIC)) #define FA_IS_ZERO(c) \ (((c) & FA_INTENSITY) == FA_INT_ZERO_NSEL) #define FA_IS_HIGH(c) \ (((c) & FA_INTENSITY) == FA_INT_HIGH_SEL) #define FA_IS_NORMAL(c) \ ( \ ((c) & FA_INTENSITY) == FA_INT_NORM_NSEL \ || \ ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \ ) #define FA_IS_SELECTABLE(c) \ ( \ ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \ || \ ((c) & FA_INTENSITY) == FA_INT_HIGH_SEL \ ) #define FA_IS_INTENSE(c) \ ((c & FA_INT_HIGH_SEL) == FA_INT_HIGH_SEL) /* Extended attributes */ #define XA_ALL 0x00 #define XA_3270 0xc0 #define XA_VALIDATION 0xc1 #define XAV_FILL 0x04 #define XAV_ENTRY 0x02 #define XAV_TRIGGER 0x01 #define XA_OUTLINING 0xc2 #define XAO_UNDERLINE 0x01 #define XAO_RIGHT 0x02 #define XAO_OVERLINE 0x04 #define XAO_LEFT 0x08 #define XA_HIGHLIGHTING 0x41 #define XAH_DEFAULT 0x00 #define XAH_NORMAL 0xf0 #define XAH_BLINK 0xf1 #define XAH_REVERSE 0xf2 #define XAH_UNDERSCORE 0xf4 #define XAH_INTENSIFY 0xf8 #define XA_FOREGROUND 0x42 #define XAC_DEFAULT 0x00 #define XA_CHARSET 0x43 #define XA_BACKGROUND 0x45 #define XA_TRANSPARENCY 0x46 #define XAT_DEFAULT 0x00 #define XAT_OR 0xf0 #define XAT_XOR 0xf1 #define XAT_OPAQUE 0xff #define XA_INPUT_CONTROL 0xfe #define XAI_DISABLED 0x00 #define XAI_ENABLED 0x01 /* WCC definitions */ #define WCC_RESET(c) ((c) & 0x40) #define WCC_START_PRINTER(c) ((c) & 0x08) #define WCC_SOUND_ALARM(c) ((c) & 0x04) #define WCC_KEYBOARD_RESTORE(c) ((c) & 0x02) #define WCC_RESET_MDT(c) ((c) & 0x01) /* AIDs */ #define AID_NO 0x60 /* no AID generated */ #define AID_QREPLY 0x61 #define AID_ENTER 0x7d #define AID_PF1 0xf1 #define AID_PF2 0xf2 #define AID_PF3 0xf3 #define AID_PF4 0xf4 #define AID_PF5 0xf5 #define AID_PF6 0xf6 #define AID_PF7 0xf7 #define AID_PF8 0xf8 #define AID_PF9 0xf9 #define AID_PF10 0x7a #define AID_PF11 0x7b #define AID_PF12 0x7c #define AID_PF13 0xc1 #define AID_PF14 0xc2 #define AID_PF15 0xc3 #define AID_PF16 0xc4 #define AID_PF17 0xc5 #define AID_PF18 0xc6 #define AID_PF19 0xc7 #define AID_PF20 0xc8 #define AID_PF21 0xc9 #define AID_PF22 0x4a #define AID_PF23 0x4b #define AID_PF24 0x4c #define AID_OICR 0xe6 #define AID_MSR_MHS 0xe7 #define AID_SELECT 0x7e #define AID_PA1 0x6c #define AID_PA2 0x6e #define AID_PA3 0x6b #define AID_CLEAR 0x6d #define AID_SYSREQ 0xf0 #define AID_SF 0x88 #define SFID_QREPLY 0x81 /* Colors */ #define HOST_COLOR_NEUTRAL_BLACK 0 #define HOST_COLOR_BLUE 1 #define HOST_COLOR_RED 2 #define HOST_COLOR_PINK 3 #define HOST_COLOR_GREEN 4 #define HOST_COLOR_TURQUOISE 5 #define HOST_COLOR_YELLOW 6 #define HOST_COLOR_NEUTRAL_WHITE 7 #define HOST_COLOR_BLACK 8 #define HOST_COLOR_DEEP_BLUE 9 #define HOST_COLOR_ORANGE 10 #define HOST_COLOR_PURPLE 11 #define HOST_COLOR_PALE_GREEN 12 #define HOST_COLOR_PALE_TURQUOISE 13 #define HOST_COLOR_GREY 14 #define HOST_COLOR_WHITE 15 /* Data stream manipulation macros. */ #define MASK32 0xff000000U #define MASK24 0x00ff0000U #define MASK16 0x0000ff00U #define MASK08 0x000000ffU #define MINUS1 0xffffffffU #define SET16(ptr, val) { \ *((ptr)++) = ((val) & MASK16) >> 8; \ *((ptr)++) = ((val) & MASK08); \ } #define GET16(val, ptr) { \ (val) = *((ptr)+1); \ (val) += *(ptr) << 8; \ } #define SET32(ptr, val) { \ *((ptr)++) = ((val) & MASK32) >> 24; \ *((ptr)++) = ((val) & MASK24) >> 16; \ *((ptr)++) = ((val) & MASK16) >> 8; \ *((ptr)++) = ((val) & MASK08); \ } #define HIGH8(s) (((s) >> 8) & 0xff) #define LOW8(s) ((s) & 0xff) /* Other EBCDIC control codes. */ #define EBC_null 0x00 #define EBC_ff 0x0c #define EBC_cr 0x0d #define EBC_so 0x0e #define EBC_si 0x0f #define EBC_nl 0x15 #define EBC_em 0x19 #define EBC_dup 0x1c #define EBC_fm 0x1e #define EBC_sub 0x3f #define EBC_space 0x40 #define EBC_nobreakspace 0x41 #define EBC_period 0x4b #define EBC_ampersand 0x50 #define EBC_underscore 0x6d #define EBC_greater 0x6e #define EBC_question 0x6f #define EBC_Yacute 0xad #define EBC_diaeresis 0xbd #define EBC_minus 0xca #define EBC_0 0xf0 #define EBC_9 0xf9 #define EBC_eo 0xff #define EBC_less 0x4c #define EBC_greaer 0x6e #define EBC_P 0xd7 #define EBC_M 0xd4 #define EBC_U 0xe4 /* Unicode private-use definitions. */ #define UPRIV_GE_00 0xf700 /* first GE */ #define UPRIV_GE_ff 0xf7ff /* last GE */ #define UPRIV_sub 0xf8fc #define UPRIV_eo 0xf8fd #define UPRIV_fm 0xf8fe #define UPRIV_dup 0xf8ff /* BIND definitions. */ #define BIND_RU 0x31 #define BIND_OFF_MAXRU_SEC 10 #define BIND_OFF_MAXRU_PRI 11 #define BIND_OFF_RD 20 #define BIND_OFF_CD 21 #define BIND_OFF_RA 22 #define BIND_OFF_CA 23 #define BIND_OFF_SSIZE 24 #define BIND_OFF_PLU_NAME_LEN 27 #define BIND_PLU_NAME_MAX 8 #define BIND_OFF_PLU_NAME 28 /* Screen sizes. */ #define MODEL_2_ROWS 24 #define MODEL_2_COLS 80 #define MODEL_3_ROWS 32 #define MODEL_3_COLS 80 #define MODEL_4_ROWS 43 #define MODEL_4_COLS 80 #define MODEL_5_ROWS 27 #define MODEL_5_COLS 132 ibm-3270-3.3.10ga4/tcl3270/proxy.h0000644000175000017500000000367311254565704015630 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxy.h * Common definitions for proxy. */ #define PROXY_PASSTHRU "passthru" #define PORT_PASSTHRU "3514" #define PROXY_HTTP "http" #define PORT_HTTP "3128" #define PROXY_TELNET "telnet" #define PROXY_SOCKS4 "socks4" #define PORT_SOCKS4 "1080" #define PROXY_SOCKS4A "socks4a" #define PORT_SOCKS4A "1080" #define PROXY_SOCKS5 "socks5" #define PORT_SOCKS5 "1080" #define PROXY_SOCKS5D "socks5d" #define PORT_SOCKS5D "1080" ibm-3270-3.3.10ga4/tcl3270/proxyc.h0000644000175000017500000000334311254565704015765 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxyc.h * Declarations for proxy.c. */ extern int proxy_setup(char **phost, char **pport); extern int proxy_negotiate(int type, int fd, char *host, unsigned short port); extern char *proxy_type_name(int type); ibm-3270-3.3.10ga4/tcl3270/see.c0000644000175000017500000002356011254565704015213 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * see.c * 3270 data stream decode functions. * */ #include "globals.h" #if defined(X3270_TRACE) /*[*/ #include #include #include #include #include "3270ds.h" #include "tablesc.h" #include "utf8c.h" #include "seec.h" #include "unicodec.h" const char * unknown(unsigned char value) { static char buf[64]; (void) sprintf(buf, "unknown[0x%x]", value); return buf; } const char * see_ebc(unsigned char ch) { static char buf[8]; char mb[16]; ucs4_t uc; switch (ch) { case FCORDER_NULL: return "NULL"; case FCORDER_SUB: return "SUB"; case FCORDER_DUP: return "DUP"; case FCORDER_FM: return "FM"; case FCORDER_FF: return "FF"; case FCORDER_CR: return "CR"; case FCORDER_NL: return "NL"; case FCORDER_EM: return "EM"; case FCORDER_EO: return "EO"; case FCORDER_SI: return "SI"; case FCORDER_SO: return "SO"; } if (ebcdic_to_multibyte_x(ch, CS_BASE, mb, sizeof(mb), EUO_NONE, &uc) && (mb[0] != ' ' || ch == 0x40)) strcpy(buf, mb); else (void) sprintf(buf, "X'%02X'", ch); return buf; } const char * see_aid(unsigned char code) { switch (code) { case AID_NO: return "NoAID"; case AID_ENTER: return "Enter"; case AID_PF1: return "PF1"; case AID_PF2: return "PF2"; case AID_PF3: return "PF3"; case AID_PF4: return "PF4"; case AID_PF5: return "PF5"; case AID_PF6: return "PF6"; case AID_PF7: return "PF7"; case AID_PF8: return "PF8"; case AID_PF9: return "PF9"; case AID_PF10: return "PF10"; case AID_PF11: return "PF11"; case AID_PF12: return "PF12"; case AID_PF13: return "PF13"; case AID_PF14: return "PF14"; case AID_PF15: return "PF15"; case AID_PF16: return "PF16"; case AID_PF17: return "PF17"; case AID_PF18: return "PF18"; case AID_PF19: return "PF19"; case AID_PF20: return "PF20"; case AID_PF21: return "PF21"; case AID_PF22: return "PF22"; case AID_PF23: return "PF23"; case AID_PF24: return "PF24"; case AID_OICR: return "OICR"; case AID_MSR_MHS: return "MSR_MHS"; case AID_SELECT: return "Select"; case AID_PA1: return "PA1"; case AID_PA2: return "PA2"; case AID_PA3: return "PA3"; case AID_CLEAR: return "Clear"; case AID_SYSREQ: return "SysReq"; case AID_QREPLY: return "QueryReplyAID"; default: return unknown(code); } } const char * see_attr(unsigned char fa) { static char buf[256]; const char *paren = "("; buf[0] = '\0'; if (fa & FA_PROTECT) { (void) strcat(buf, paren); (void) strcat(buf, "protected"); paren = ","; if (fa & FA_NUMERIC) { (void) strcat(buf, paren); (void) strcat(buf, "skip"); paren = ","; } } else if (fa & FA_NUMERIC) { (void) strcat(buf, paren); (void) strcat(buf, "numeric"); paren = ","; } switch (fa & FA_INTENSITY) { case FA_INT_NORM_NSEL: break; case FA_INT_NORM_SEL: (void) strcat(buf, paren); (void) strcat(buf, "detectable"); paren = ","; break; case FA_INT_HIGH_SEL: (void) strcat(buf, paren); (void) strcat(buf, "intensified"); paren = ","; break; case FA_INT_ZERO_NSEL: (void) strcat(buf, paren); (void) strcat(buf, "nondisplay"); paren = ","; break; } if (fa & FA_MODIFY) { (void) strcat(buf, paren); (void) strcat(buf, "modified"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(default)"); return buf; } static const char * see_highlight(unsigned char setting) { switch (setting) { case XAH_DEFAULT: return "default"; case XAH_NORMAL: return "normal"; case XAH_BLINK: return "blink"; case XAH_REVERSE: return "reverse"; case XAH_UNDERSCORE: return "underscore"; case XAH_INTENSIFY: return "intensify"; default: return unknown(setting); } } const char * see_color(unsigned char setting) { static const char *color_name[] = { "neutralBlack", "blue", "red", "pink", "green", "turquoise", "yellow", "neutralWhite", "black", "deepBlue", "orange", "purple", "paleGreen", "paleTurquoise", "grey", "white" }; if (setting == XAC_DEFAULT) return "default"; else if (setting < 0xf0) return unknown(setting); else return color_name[setting - 0xf0]; } static const char * see_transparency(unsigned char setting) { switch (setting) { case XAT_DEFAULT: return "default"; case XAT_OR: return "or"; case XAT_XOR: return "xor"; case XAT_OPAQUE: return "opaque"; default: return unknown(setting); } } static const char * see_validation(unsigned char setting) { static char buf[64]; const char *paren = "("; (void) strcpy(buf, ""); if (setting & XAV_FILL) { (void) strcat(buf, paren); (void) strcat(buf, "fill"); paren = ","; } if (setting & XAV_ENTRY) { (void) strcat(buf, paren); (void) strcat(buf, "entry"); paren = ","; } if (setting & XAV_TRIGGER) { (void) strcat(buf, paren); (void) strcat(buf, "trigger"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(none)"); return buf; } static const char * see_outline(unsigned char setting) { static char buf[64]; const char *paren = "("; (void) strcpy(buf, ""); if (setting & XAO_UNDERLINE) { (void) strcat(buf, paren); (void) strcat(buf, "underline"); paren = ","; } if (setting & XAO_RIGHT) { (void) strcat(buf, paren); (void) strcat(buf, "right"); paren = ","; } if (setting & XAO_OVERLINE) { (void) strcat(buf, paren); (void) strcat(buf, "overline"); paren = ","; } if (setting & XAO_LEFT) { (void) strcat(buf, paren); (void) strcat(buf, "left"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(none)"); return buf; } static const char * see_input_control(unsigned char setting) { switch (setting) { case XAI_DISABLED: return "disabled"; case XAI_ENABLED: return "enabled"; default: return unknown(setting); } } const char * see_efa(unsigned char efa, unsigned char value) { static char buf[64]; switch (efa) { case XA_ALL: (void) sprintf(buf, " all(%x)", value); break; case XA_3270: (void) sprintf(buf, " 3270%s", see_attr(value)); break; case XA_VALIDATION: (void) sprintf(buf, " validation%s", see_validation(value)); break; case XA_OUTLINING: (void) sprintf(buf, " outlining(%s)", see_outline(value)); break; case XA_HIGHLIGHTING: (void) sprintf(buf, " highlighting(%s)", see_highlight(value)); break; case XA_FOREGROUND: (void) sprintf(buf, " foreground(%s)", see_color(value)); break; case XA_CHARSET: (void) sprintf(buf, " charset(%x)", value); break; case XA_BACKGROUND: (void) sprintf(buf, " background(%s)", see_color(value)); break; case XA_TRANSPARENCY: (void) sprintf(buf, " transparency(%s)", see_transparency(value)); break; case XA_INPUT_CONTROL: (void) sprintf(buf, " input-control(%s)", see_input_control(value)); break; default: (void) sprintf(buf, " %s[0x%x]", unknown(efa), value); break; } return buf; } const char * see_efa_only(unsigned char efa) { switch (efa) { case XA_ALL: return "all"; case XA_3270: return "3270"; case XA_VALIDATION: return "validation"; case XA_OUTLINING: return "outlining"; case XA_HIGHLIGHTING: return "highlighting"; case XA_FOREGROUND: return "foreground"; case XA_CHARSET: return "charset"; case XA_BACKGROUND: return "background"; case XA_TRANSPARENCY: return "transparency"; default: return unknown(efa); } } const char * see_qcode(unsigned char id) { static char buf[64]; switch (id) { case QR_CHARSETS: return "CharacterSets"; case QR_IMP_PART: return "ImplicitPartition"; case QR_SUMMARY: return "Summary"; case QR_USABLE_AREA: return "UsableArea"; case QR_COLOR: return "Color"; case QR_HIGHLIGHTING: return "Highlighting"; case QR_REPLY_MODES: return "ReplyModes"; case QR_DBCS_ASIA: return "DbcsAsia"; case QR_ALPHA_PART: return "AlphanumericPartitions"; case QR_DDM: return "DistributedDataManagement"; case QR_RPQNAMES: return "RPQNames"; default: (void) sprintf(buf, "unknown[0x%x]", id); return buf; } } #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/xl.h0000644000175000017500000000325211254565704015063 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xl.h * DBCS translation table structure. */ typedef struct { unsigned n; unsigned short *data; } xl_t; #define XL_SIZE(e) ((sizeof(e)/sizeof(e[0]))/3) ibm-3270-3.3.10ga4/tcl3270/togglesc.h0000644000175000017500000000365611254565704016257 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * toggles.c * Global declarations for toggles.c. */ extern void do_toggle(int); extern void initialize_toggles(void); extern void shutdown_toggles(void); extern void Toggle_action(Widget, XEvent *, String *, Cardinal *); ibm-3270-3.3.10ga4/tcl3270/X11/0000755000175000017500000000000011261530021014614 5ustar bastianbastianibm-3270-3.3.10ga4/tcl3270/X11/keysym.h0000644000175000017500000002131011254565673016332 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* X11 keysyms used by c3270, s3270 and tcl3270 */ #if !defined(_x11_keysym_h) /*[*/ #define _x11_keysym_h 1 /* Latin-1 Keysyms */ #define XK_space 0x020 #define XK_exclam 0x021 #define XK_quotedbl 0x022 #define XK_numbersign 0x023 #define XK_dollar 0x024 #define XK_percent 0x025 #define XK_ampersand 0x026 #define XK_apostrophe 0x027 #define XK_quoteright 0x027 #define XK_parenleft 0x028 #define XK_parenright 0x029 #define XK_asterisk 0x02a #define XK_plus 0x02b #define XK_comma 0x02c #define XK_minus 0x02d #define XK_period 0x02e #define XK_slash 0x02f #define XK_0 0x030 #define XK_1 0x031 #define XK_2 0x032 #define XK_3 0x033 #define XK_4 0x034 #define XK_5 0x035 #define XK_6 0x036 #define XK_7 0x037 #define XK_8 0x038 #define XK_9 0x039 #define XK_colon 0x03a #define XK_semicolon 0x03b #define XK_less 0x03c #define XK_equal 0x03d #define XK_greater 0x03e #define XK_question 0x03f #define XK_at 0x040 #define XK_A 0x041 #define XK_B 0x042 #define XK_C 0x043 #define XK_D 0x044 #define XK_E 0x045 #define XK_F 0x046 #define XK_G 0x047 #define XK_H 0x048 #define XK_I 0x049 #define XK_J 0x04a #define XK_K 0x04b #define XK_L 0x04c #define XK_M 0x04d #define XK_N 0x04e #define XK_O 0x04f #define XK_P 0x050 #define XK_Q 0x051 #define XK_R 0x052 #define XK_S 0x053 #define XK_T 0x054 #define XK_U 0x055 #define XK_V 0x056 #define XK_W 0x057 #define XK_X 0x058 #define XK_Y 0x059 #define XK_Z 0x05a #define XK_bracketleft 0x05b #define XK_backslash 0x05c #define XK_bracketright 0x05d #define XK_asciicircum 0x05e #define XK_underscore 0x05f #define XK_grave 0x060 #define XK_quoteleft 0x060 #define XK_a 0x061 #define XK_b 0x062 #define XK_c 0x063 #define XK_d 0x064 #define XK_e 0x065 #define XK_f 0x066 #define XK_g 0x067 #define XK_h 0x068 #define XK_i 0x069 #define XK_j 0x06a #define XK_k 0x06b #define XK_l 0x06c #define XK_m 0x06d #define XK_n 0x06e #define XK_o 0x06f #define XK_p 0x070 #define XK_q 0x071 #define XK_r 0x072 #define XK_s 0x073 #define XK_t 0x074 #define XK_u 0x075 #define XK_v 0x076 #define XK_w 0x077 #define XK_x 0x078 #define XK_y 0x079 #define XK_z 0x07a #define XK_braceleft 0x07b #define XK_bar 0x07c #define XK_braceright 0x07d #define XK_asciitilde 0x07e #define XK_nobreakspace 0x0a0 #define XK_exclamdown 0x0a1 #define XK_cent 0x0a2 #define XK_sterling 0x0a3 #define XK_currency 0x0a4 #define XK_yen 0x0a5 #define XK_brokenbar 0x0a6 #define XK_section 0x0a7 #define XK_diaeresis 0x0a8 #define XK_copyright 0x0a9 #define XK_ordfeminine 0x0aa #define XK_guillemotleft 0x0ab #define XK_notsign 0x0ac #define XK_hyphen 0x0ad #define XK_registered 0x0ae #define XK_macron 0x0af #define XK_degree 0x0b0 #define XK_plusminus 0x0b1 #define XK_twosuperior 0x0b2 #define XK_threesuperior 0x0b3 #define XK_acute 0x0b4 #define XK_mu 0x0b5 #define XK_paragraph 0x0b6 #define XK_periodcentered 0x0b7 #define XK_cedilla 0x0b8 #define XK_onesuperior 0x0b9 #define XK_masculine 0x0ba #define XK_guillemotright 0x0bb #define XK_onequarter 0x0bc #define XK_onehalf 0x0bd #define XK_threequarters 0x0be #define XK_questiondown 0x0bf #define XK_Agrave 0x0c0 #define XK_Aacute 0x0c1 #define XK_Acircumflex 0x0c2 #define XK_Atilde 0x0c3 #define XK_Adiaeresis 0x0c4 #define XK_Aring 0x0c5 #define XK_AE 0x0c6 #define XK_Ccedilla 0x0c7 #define XK_Egrave 0x0c8 #define XK_Eacute 0x0c9 #define XK_Ecircumflex 0x0ca #define XK_Ediaeresis 0x0cb #define XK_Igrave 0x0cc #define XK_Iacute 0x0cd #define XK_Icircumflex 0x0ce #define XK_Idiaeresis 0x0cf #define XK_ETH 0x0d0 #define XK_Eth 0x0d0 #define XK_Ntilde 0x0d1 #define XK_Ograve 0x0d2 #define XK_Oacute 0x0d3 #define XK_Ocircumflex 0x0d4 #define XK_Otilde 0x0d5 #define XK_Odiaeresis 0x0d6 #define XK_multiply 0x0d7 #define XK_Ooblique 0x0d8 #define XK_Ugrave 0x0d9 #define XK_Uacute 0x0da #define XK_Ucircumflex 0x0db #define XK_Udiaeresis 0x0dc #define XK_Yacute 0x0dd #define XK_THORN 0x0de #define XK_Thorn 0x0de #define XK_ssharp 0x0df #define XK_agrave 0x0e0 #define XK_aacute 0x0e1 #define XK_acircumflex 0x0e2 #define XK_atilde 0x0e3 #define XK_adiaeresis 0x0e4 #define XK_aring 0x0e5 #define XK_ae 0x0e6 #define XK_ccedilla 0x0e7 #define XK_egrave 0x0e8 #define XK_eacute 0x0e9 #define XK_ecircumflex 0x0ea #define XK_ediaeresis 0x0eb #define XK_igrave 0x0ec #define XK_iacute 0x0ed #define XK_icircumflex 0x0ee #define XK_idiaeresis 0x0ef #define XK_eth 0x0f0 #define XK_ntilde 0x0f1 #define XK_ograve 0x0f2 #define XK_oacute 0x0f3 #define XK_ocircumflex 0x0f4 #define XK_otilde 0x0f5 #define XK_odiaeresis 0x0f6 #define XK_division 0x0f7 #define XK_oslash 0x0f8 #define XK_ugrave 0x0f9 #define XK_uacute 0x0fa #define XK_ucircumflex 0x0fb #define XK_udiaeresis 0x0fc #define XK_yacute 0x0fd #define XK_thorn 0x0fe #define XK_ydiaeresis 0x0ff #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/toggles.c0000644000175000017500000001326411254565704016103 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * toggles.c * This module handles toggles. */ #include "globals.h" #include "appres.h" #include "ansic.h" #include "actionsc.h" #include "ctlrc.h" #include "menubarc.h" #include "popupsc.h" #include "screenc.h" #include "trace_dsc.h" #include "togglesc.h" /* * Generic toggle stuff */ static void do_toggle_reason(int ix, enum toggle_type reason) { struct toggle *t = &appres.toggle[ix]; /* * Change the value, call the internal update routine, and reset the * menu label(s). */ toggle_toggle(t); if (t->upcall != NULL) t->upcall(t, reason); #if defined(X3270_MENUS) /*[*/ menubar_retoggle(t); #endif /*]*/ } void do_toggle(int ix) { do_toggle_reason(ix, TT_INTERACTIVE); } /* * Called from system initialization code to handle initial toggle settings. */ void initialize_toggles(void) { #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ appres.toggle[MONOCASE].upcall = toggle_monocase; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ appres.toggle[ALT_CURSOR].upcall = toggle_altCursor; appres.toggle[CURSOR_BLINK].upcall = toggle_cursorBlink; appres.toggle[SHOW_TIMING].upcall = toggle_showTiming; appres.toggle[CURSOR_POS].upcall = toggle_cursorPos; appres.toggle[MARGINED_PASTE].upcall = toggle_nop; appres.toggle[RECTANGLE_SELECT].upcall = toggle_nop; appres.toggle[SCROLL_BAR].upcall = toggle_scrollBar; appres.toggle[CROSSHAIR].upcall = toggle_crosshair; appres.toggle[VISIBLE_CONTROL].upcall = toggle_visible_control; #endif /*]*/ #if defined(X3270_TRACE) /*[*/ appres.toggle[DS_TRACE].upcall = toggle_dsTrace; appres.toggle[SCREEN_TRACE].upcall = toggle_screenTrace; appres.toggle[EVENT_TRACE].upcall = toggle_eventTrace; #endif /*]*/ #if defined(X3270_ANSI) /*[*/ appres.toggle[LINE_WRAP].upcall = toggle_lineWrap; #endif /*]*/ appres.toggle[BLANK_FILL].upcall = toggle_nop; #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ appres.toggle[AID_WAIT].upcall = toggle_nop; #endif /*]*/ #if defined(C3270) /*[*/ appres.toggle[UNDERSCORE].upcall = toggle_underscore; #endif /*]*/ #if defined(X3270_TRACE) /*[*/ if (toggled(DS_TRACE)) appres.toggle[DS_TRACE].upcall(&appres.toggle[DS_TRACE], TT_INITIAL); if (toggled(EVENT_TRACE)) appres.toggle[EVENT_TRACE].upcall(&appres.toggle[EVENT_TRACE], TT_INITIAL); if (toggled(SCREEN_TRACE)) appres.toggle[SCREEN_TRACE].upcall(&appres.toggle[SCREEN_TRACE], TT_INITIAL); #endif /*]*/ } /* * Called from system exit code to handle toggles. */ void shutdown_toggles(void) { #if defined(X3270_TRACE) /*[*/ /* Clean up the data stream trace monitor window. */ if (toggled(DS_TRACE)) { appres.toggle[DS_TRACE].value = False; toggle_dsTrace(&appres.toggle[DS_TRACE], TT_FINAL); } if (toggled(EVENT_TRACE)) { appres.toggle[EVENT_TRACE].value = False; toggle_dsTrace(&appres.toggle[EVENT_TRACE], TT_FINAL); } /* Clean up the screen trace file. */ if (toggled(SCREEN_TRACE)) { appres.toggle[SCREEN_TRACE].value = False; toggle_screenTrace(&appres.toggle[SCREEN_TRACE], TT_FINAL); } #endif /*]*/ } void Toggle_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int j; int ix; action_debug(Toggle_action, event, params, num_params); if (check_usage(Toggle_action, *num_params, 1, 2) < 0) return; for (j = 0; toggle_names[j].name != NULL; j++) { if (!strcasecmp(params[0], toggle_names[j].name)) { ix = toggle_names[j].index; break; } } if (toggle_names[j].name == NULL) { popup_an_error("%s: Unknown toggle name '%s'", action_name(Toggle_action), params[0]); return; } if (*num_params == 1) { do_toggle_reason(ix, TT_ACTION); } else if (!strcasecmp(params[1], "set")) { if (!toggled(ix)) { do_toggle_reason(ix, TT_ACTION); } } else if (!strcasecmp(params[1], "clear")) { if (toggled(ix)) { do_toggle_reason(ix, TT_ACTION); } } else { popup_an_error("%s: Unknown keyword '%s' (must be 'set' or " "'clear')", action_name(Toggle_action), params[1]); } } ibm-3270-3.3.10ga4/tcl3270/sf.c0000644000175000017500000005524711254565704015056 0ustar bastianbastian/* * Copyright (c) 1994-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell nor their * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * sf.c * This module handles 3270 structured fields. * */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include "3270ds.h" #include "appres.h" #include "screen.h" #include "ctlr.h" #include "resources.h" #include "charsetc.h" #include "ctlrc.h" #if defined(X3270_FT) /*[*/ #include "ft_dftc.h" #endif /*]*/ #include "kybdc.h" #include "screenc.h" #include "seec.h" #include "sfc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utilc.h" /* #define X3270_COMPAT 1 make x3270 compatible with all of the other emulators */ #define SW_3279_2 0x09 #define SH_3279_2 0x0c #define Xr_3279_2 0x000a02e5 #define Yr_3279_2 0x0002006f /* Externals: ctlr.c */ extern Boolean screen_alt; extern unsigned char reply_mode; extern int crm_nattr; extern unsigned char crm_attr[]; /* Statics */ static Boolean qr_in_progress = False; static enum pds sf_read_part(unsigned char buf[], unsigned buflen); static enum pds sf_erase_reset(unsigned char buf[], int buflen); static enum pds sf_set_reply_mode(unsigned char buf[], int buflen); static enum pds sf_create_partition(unsigned char buf[], int buflen); static enum pds sf_outbound_ds(unsigned char buf[], int buflen); static void query_reply_start(void); static void do_query_reply(unsigned char code); static void query_reply_end(void); typedef void qr_single_fn_t(void); typedef Boolean qr_multi_fn_t(unsigned *subindex, Boolean *more); static qr_single_fn_t do_qr_summary, do_qr_usable_area, do_qr_alpha_part, do_qr_charsets, do_qr_color, do_qr_highlighting, do_qr_reply_modes, do_qr_imp_part, do_qr_null; extern qr_single_fn_t do_qr_rpqnames; #if defined(X3270_DBCS) /*[*/ static qr_single_fn_t do_qr_dbcs_asia; #endif /*]*/ #if defined(X3270_FT) /*[*/ static qr_single_fn_t do_qr_ddm; #endif /*]*/ static struct reply { unsigned char code; qr_single_fn_t *single_fn; qr_multi_fn_t *multi_fn; } replies[] = { { QR_SUMMARY, do_qr_summary, NULL }, /* 0x80 */ { QR_USABLE_AREA, do_qr_usable_area, NULL }, /* 0x81 */ { QR_ALPHA_PART, do_qr_alpha_part, NULL }, /* 0x84 */ { QR_CHARSETS, do_qr_charsets, NULL }, /* 0x85 */ { QR_COLOR, do_qr_color, NULL }, /* 0x86 */ { QR_HIGHLIGHTING, do_qr_highlighting, NULL }, /* 0x87 */ { QR_REPLY_MODES, do_qr_reply_modes, NULL }, /* 0x88 */ #if defined(X3270_DBCS) /*[*/ { QR_DBCS_ASIA, do_qr_dbcs_asia, NULL }, /* 0x91 */ #endif /*]*/ #if defined(X3270_FT) /*[*/ { QR_DDM, do_qr_ddm, NULL }, /* 0x95 */ #endif /*]*/ { QR_RPQNAMES, do_qr_rpqnames, NULL }, /* 0xa1 */ { QR_IMP_PART, do_qr_imp_part, NULL }, /* 0xa6 */ /* QR_NULL must be last in the table */ { QR_NULL, do_qr_null, NULL }, /* 0xff */ }; /* * NSR_ALL is the number of query replies supported, including NULL. * NSR is the number of query replies supported, except for NULL. */ #define NSR_ALL (sizeof(replies)/sizeof(struct reply)) #define NSR (NSR_ALL - 1) /* * Process a 3270 Write Structured Field command */ enum pds write_structured_field(unsigned char buf[], int buflen) { unsigned short fieldlen; unsigned char *cp = buf; Boolean first = True; enum pds rv = PDS_OKAY_NO_OUTPUT; enum pds rv_this = PDS_OKAY_NO_OUTPUT; Boolean bad_cmd = False; /* Skip the WSF command itself. */ cp++; buflen--; /* Interpret fields. */ while (buflen > 0) { if (first) trace_ds(" "); else trace_ds("< WriteStructuredField "); first = False; /* Pick out the field length. */ if (buflen < 2) { trace_ds("error: single byte at end of message\n"); return rv ? rv : PDS_BAD_CMD; } fieldlen = (cp[0] << 8) + cp[1]; if (fieldlen == 0) fieldlen = buflen; if (fieldlen < 3) { trace_ds("error: field length %d too small\n", fieldlen); return rv ? rv : PDS_BAD_CMD; } if ((int)fieldlen > buflen) { trace_ds("error: field length %d exceeds remaining " "message length %d\n", fieldlen, buflen); return rv ? rv : PDS_BAD_CMD; } /* Dispatch on the ID. */ switch (cp[2]) { case SF_READ_PART: trace_ds("ReadPartition"); rv_this = sf_read_part(cp, (int)fieldlen); break; case SF_ERASE_RESET: trace_ds("EraseReset"); rv_this = sf_erase_reset(cp, (int)fieldlen); break; case SF_SET_REPLY_MODE: trace_ds("SetReplyMode"); rv_this = sf_set_reply_mode(cp, (int)fieldlen); break; case SF_CREATE_PART: trace_ds("CreatePartition"); rv_this = sf_create_partition(cp, (int)fieldlen); break; case SF_OUTBOUND_DS: trace_ds("OutboundDS"); rv_this = sf_outbound_ds(cp, (int)fieldlen); break; #if defined(X3270_FT) /*[*/ case SF_TRANSFER_DATA: /* File transfer data */ trace_ds("FileTransferData"); ft_dft_data(cp, (int)fieldlen); break; #endif /*]*/ default: trace_ds("unsupported ID 0x%02x\n", cp[2]); rv_this = PDS_BAD_CMD; break; } /* * Accumulate errors or output flags. * One real ugliness here is that if we have already * generated some output, then we have already positively * acknowledged the request, so if we fail here, we have no * way to return the error indication. */ if (rv_this < 0) bad_cmd = True; else rv |= rv_this; /* Skip to the next field. */ cp += fieldlen; buflen -= fieldlen; } if (first) trace_ds(" (null)\n"); if (bad_cmd && !rv) return PDS_BAD_CMD; else return rv; } static enum pds sf_read_part(unsigned char buf[], unsigned buflen) { unsigned char partition; unsigned i; int any = 0; const char *comma = ""; if (buflen < 5) { trace_ds(" error: field length %d too small\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; trace_ds("(0x%02x)", partition); switch (buf[4]) { case SF_RP_QUERY: trace_ds(" Query"); if (partition != 0xff) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); query_reply_start(); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(replies[i].code); } query_reply_end(); break; case SF_RP_QLIST: trace_ds(" QueryList "); if (partition != 0xff) { trace_ds("error: illegal partition\n"); return PDS_BAD_CMD; } if (buflen < 6) { trace_ds("error: missing request type\n"); return PDS_BAD_CMD; } query_reply_start(); switch (buf[5]) { case SF_RPQ_LIST: trace_ds("List("); if (buflen < 7) { trace_ds(")\n"); do_query_reply(QR_NULL); } else { for (i = 6; i < buflen; i++) { trace_ds("%s%s", comma, see_qcode(buf[i])); comma = ","; } trace_ds(")\n"); for (i = 0; i < NSR; i++) { if (memchr((char *)&buf[6], (char)replies[i].code, buflen-6) #if defined(X3270_DBCS) /*[*/ && (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ ) { do_query_reply(replies[i].code); any++; } } if (!any) { do_query_reply(QR_NULL); } } break; case SF_RPQ_EQUIV: trace_ds("Equivlent+List("); for (i = 6; i < buflen; i++) { trace_ds("%s%s", comma, see_qcode(buf[i])); comma = ","; } trace_ds(")\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(replies[i].code); break; case SF_RPQ_ALL: trace_ds("All\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(replies[i].code); break; default: trace_ds("unknown request type 0x%02x\n", buf[5]); return PDS_BAD_CMD; } query_reply_end(); break; case SNA_CMD_RMA: trace_ds(" ReadModifiedAll"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); ctlr_read_modified(AID_QREPLY, True); break; case SNA_CMD_RB: trace_ds(" ReadBuffer"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); ctlr_read_buffer(AID_QREPLY); break; case SNA_CMD_RM: trace_ds(" ReadModified"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); ctlr_read_modified(AID_QREPLY, False); break; default: trace_ds(" unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_OUTPUT; } static enum pds sf_erase_reset(unsigned char buf[], int buflen) { if (buflen != 4) { trace_ds(" error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } switch (buf[3]) { case SF_ER_DEFAULT: trace_ds(" Default\n"); ctlr_erase(False); break; case SF_ER_ALT: trace_ds(" Alternate\n"); ctlr_erase(True); break; default: trace_ds(" unknown type 0x%02x\n", buf[3]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static enum pds sf_set_reply_mode(unsigned char buf[], int buflen) { unsigned char partition; int i; const char *comma = "("; if (buflen < 5) { trace_ds(" error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; trace_ds("(0x%02x)", partition); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } switch (buf[4]) { case SF_SRM_FIELD: trace_ds(" Field\n"); break; case SF_SRM_XFIELD: trace_ds(" ExtendedField\n"); break; case SF_SRM_CHAR: trace_ds(" Character"); break; default: trace_ds(" unknown mode 0x%02x\n", buf[4]); return PDS_BAD_CMD; } reply_mode = buf[4]; if (buf[4] == SF_SRM_CHAR) { crm_nattr = buflen - 5; for (i = 5; i < buflen; i++) { crm_attr[i - 5] = buf[i]; trace_ds("%s%s", comma, see_efa_only(buf[i])); comma = ","; } trace_ds("%s\n", crm_nattr ? ")" : ""); } return PDS_OKAY_NO_OUTPUT; } static enum pds sf_create_partition(unsigned char buf[], int buflen) { unsigned char pid; unsigned char uom; /* unit of measure */ unsigned char am; /* addressing mode */ unsigned char flags; /* flags */ unsigned short h; /* height of presentation space */ unsigned short w; /* width of presentation space */ unsigned short rv; /* viewport origin row */ unsigned short cv; /* viewport origin column */ unsigned short hv; /* viewport height */ unsigned short wv; /* viewport width */ unsigned short rw; /* window origin row */ unsigned short cw; /* window origin column */ unsigned short rs; /* scroll rows */ /* hole */ unsigned short pw; /* character cell point width */ unsigned short ph; /* character cell point height */ #if defined(X3270_TRACE) /*[*/ static const char *bit4[16] = { "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" }; #endif /*]*/ if (buflen > 3) { trace_ds("("); /* Partition. */ pid = buf[3]; trace_ds("pid=0x%02x", pid); if (pid != 0x00) { trace_ds(") error: illegal partition\n"); return PDS_BAD_CMD; } } else pid = 0x00; if (buflen > 4) { uom = (buf[4] & 0xf0) >> 4; trace_ds(",uom=B'%s'", bit4[uom]); if (uom != 0x0 && uom != 0x02) { trace_ds(") error: illegal units\n"); return PDS_BAD_CMD; } am = buf[4] & 0x0f; trace_ds(",am=B'%s'", bit4[am]); if (am > 0x2) { trace_ds(") error: illegal a-mode\n"); return PDS_BAD_CMD; } } else { uom = 0; am = 0; } if (buflen > 5) { flags = buf[5]; trace_ds(",flags=0x%02x", flags); } else flags = 0; if (buflen > 7) { GET16(h, &buf[6]); trace_ds(",h=%d", h); } else h = maxROWS; if (buflen > 9) { GET16(w, &buf[8]); trace_ds(",w=%d", w); } else w = maxCOLS; if (buflen > 11) { GET16(rv, &buf[10]); trace_ds(",rv=%d", rv); } else rv = 0; if (buflen > 13) { GET16(cv, &buf[12]); trace_ds(",cv=%d", cv); } else cv = 0; if (buflen > 15) { GET16(hv, &buf[14]); trace_ds(",hv=%d", hv); } else hv = (h > maxROWS)? maxROWS: h; if (buflen > 17) { GET16(wv, &buf[16]); trace_ds(",wv=%d", wv); } else wv = (w > maxCOLS)? maxCOLS: w; if (buflen > 19) { GET16(rw, &buf[18]); trace_ds(",rw=%d", rw); } else rw = 0; if (buflen > 21) { GET16(cw, &buf[20]); trace_ds(",cw=%d", cw); } else cw = 0; if (buflen > 23) { GET16(rs, &buf[22]); trace_ds(",rs=%d", rs); } else rs = (h > hv)? 1: 0; if (buflen > 27) { GET16(pw, &buf[26]); trace_ds(",pw=%d", pw); } else pw = *char_width; if (buflen > 29) { GET16(ph, &buf[28]); trace_ds(",ph=%d", ph); } else ph = *char_height; trace_ds(")\n"); cursor_move(0); buffer_addr = 0; return PDS_OKAY_NO_OUTPUT; } static enum pds sf_outbound_ds(unsigned char buf[], int buflen) { enum pds rv; if (buflen < 5) { trace_ds(" error: field length %d too short\n", buflen); return PDS_BAD_CMD; } trace_ds("(0x%02x)", buf[3]); if (buf[3] != 0x00) { trace_ds(" error: illegal partition 0x%0x\n", buf[3]); return PDS_BAD_CMD; } switch (buf[4]) { case SNA_CMD_W: trace_ds(" Write"); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, False)) < 0) return rv; } else trace_ds("\n"); break; case SNA_CMD_EW: trace_ds(" EraseWrite"); ctlr_erase(screen_alt); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, True)) < 0) return rv; } else trace_ds("\n"); break; case SNA_CMD_EWA: trace_ds(" EraseWriteAlternate"); ctlr_erase(screen_alt); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, True)) < 0) return rv; } else trace_ds("\n"); break; case SNA_CMD_EAU: trace_ds(" EraseAllUnprotected\n"); ctlr_erase_all_unprotected(); break; default: trace_ds(" unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static void query_reply_start(void) { obptr = obuf; space3270out(1); *obptr++ = AID_SF; qr_in_progress = True; } static void do_query_reply(unsigned char code) { unsigned i; unsigned subindex = 0; Boolean more = False; /* Find the right entry in the reply table. */ for (i = 0; i < NSR_ALL; i++) { if (replies[i].code == code) break; } if (i >= NSR_ALL || (replies[i].single_fn == NULL && replies[i].multi_fn == NULL)) return; if (qr_in_progress) { trace_ds("> StructuredField\n"); qr_in_progress = False; } do { int obptr0 = obptr - obuf; Boolean full = True; space3270out(4); obptr += 2; /* skip length for now */ *obptr++ = SFID_QREPLY; *obptr++ = code; more = False; if (replies[i].single_fn) replies[i].single_fn(); else full = replies[i].multi_fn(&subindex, &more); if (full) { int len; unsigned char *obptr_len; /* Fill in the length. */ obptr_len = obuf + obptr0; len = (obptr - obuf) - obptr0; SET16(obptr_len, len); } else { /* Back over the header. */ obptr -= 4; } } while (more); } static void do_qr_null(void) { trace_ds("> QueryReply(Null)\n"); } static void do_qr_summary(void) { unsigned i; const char *comma = ""; trace_ds("> QueryReply(Summary("); space3270out(NSR); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) { #endif /*]*/ trace_ds("%s%s", comma, see_qcode(replies[i].code)); comma = ","; *obptr++ = replies[i].code; #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ } trace_ds("))\n"); } static void do_qr_usable_area(void) { trace_ds("> QueryReply(UsableArea)\n"); space3270out(19); *obptr++ = 0x01; /* 12/14-bit addressing */ *obptr++ = 0x00; /* no special character features */ SET16(obptr, maxCOLS); /* usable width */ SET16(obptr, maxROWS); /* usable height */ *obptr++ = 0x01; /* units (mm) */ SET32(obptr, Xr_3279_2); /* Xr, canned from 3279-2 */ SET32(obptr, Yr_3279_2); /* Yr, canned from 3279-2 */ /* * If we ever implement graphics, these will * need to change. */ *obptr++ = SW_3279_2; /* AW, canned from 3279-2 */ *obptr++ = SH_3279_2; /* AH, canned from 3279-2 */ SET16(obptr, maxCOLS*maxROWS); /* buffer, questionable */ } static void do_qr_color(void) { int i; int color_max; trace_ds("> QueryReply(Color)\n"); color_max = (appres.color8 || !appres.m3279)? 8: 16; space3270out(4 + 2*15); *obptr++ = 0x00; /* no options */ *obptr++ = color_max; /* report on 8 or 16 colors */ *obptr++ = 0x00; /* default color: */ *obptr++ = 0xf0 + HOST_COLOR_GREEN; /* green */ for (i = 0xf1; i < 0xf1 + color_max - 1; i++) { *obptr++ = i; if (appres.m3279) *obptr++ = i; else *obptr++ = 0x00; } #if defined(X3270_COMPAT) || !defined(X3270_DISPLAY) /*[*/ /* Add background color. */ if (appres.m3279) { space3270out(4); *obptr++ = 4; /* length */ *obptr++ = 0x02; /* background color */ *obptr++ = 0x00; /* attribute */ *obptr++ = 0xf0; /* default color */ } #endif /*]*/ } static void do_qr_highlighting(void) { trace_ds("> QueryReply(Highlighting)\n"); space3270out(11); *obptr++ = 5; /* report on 5 pairs */ *obptr++ = XAH_DEFAULT; /* default: */ *obptr++ = XAH_NORMAL; /* normal */ *obptr++ = XAH_BLINK; /* blink: */ *obptr++ = XAH_BLINK; /* blink */ *obptr++ = XAH_REVERSE; /* reverse: */ *obptr++ = XAH_REVERSE; /* reverse */ *obptr++ = XAH_UNDERSCORE; /* underscore: */ *obptr++ = XAH_UNDERSCORE; /* underscore */ *obptr++ = XAH_INTENSIFY; /* intensify: */ *obptr++ = XAH_INTENSIFY; /* intensify */ } static void do_qr_reply_modes(void) { trace_ds("> QueryReply(ReplyModes)\n"); space3270out(3); *obptr++ = SF_SRM_FIELD; *obptr++ = SF_SRM_XFIELD; *obptr++ = SF_SRM_CHAR; } #if defined(X3270_DBCS) /*[*/ static void do_qr_dbcs_asia(void) { /* XXX: Should we support this, even when not in DBCS mode? */ trace_ds("> QueryReply(DbcsAsia)\n"); space3270out(7); *obptr++ = 0x00; /* flags (none) */ *obptr++ = 0x03; /* field length 3 */ *obptr++ = 0x01; /* SI/SO supported */ *obptr++ = 0x80; /* character set ID 0x80 */ *obptr++ = 0x03; /* field length 3 */ *obptr++ = 0x02; /* input control */ *obptr++ = 0x01; /* creation supported */ } #endif /*]*/ static void do_qr_alpha_part(void) { trace_ds("> QueryReply(AlphanumericPartitions)\n"); space3270out(4); *obptr++ = 0; /* 1 partition */ SET16(obptr, maxROWS*maxCOLS); /* buffer space */ *obptr++ = 0; /* no special features */ } static void do_qr_charsets(void) { trace_ds("> QueryReply(CharacterSets)\n"); space3270out(64); #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x8e; /* flags: GE, CGCSGID, DBCS */ else #endif /*]*/ *obptr++ = 0x82; /* flags: GE, CGCSGID present */ *obptr++ = 0x00; /* more flags */ *obptr++ = SW_3279_2; /* SDW, canned from 3279-2 */ *obptr++ = SH_3279_2; /* SDW, canned from 3279-2 */ *obptr++ = 0x00; /* no load PS */ *obptr++ = 0x00; *obptr++ = 0x00; *obptr++ = 0x00; #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x0b; /* DL (11 bytes) */ else #endif /*]*/ *obptr++ = 0x07; /* DL (7 bytes) */ *obptr++ = 0x00; /* SET 0: */ #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x00; /* FLAGS: non-load, single- plane, single-byte */ else #endif /*]*/ *obptr++ = 0x10; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ *obptr++ = 0x00; /* LCID 0 */ #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x00; /* SW 0 */ *obptr++ = 0x00; /* SH 0 */ *obptr++ = 0x00; /* SUBSN */ *obptr++ = 0x00; /* SUBSN */ } #endif /*]*/ SET32(obptr, cgcsgid); /* CGCSGID */ /* special 3270 font, includes APL */ *obptr++ = 0x01;/* SET 1: */ if (appres.apl_mode) *obptr++ = 0x00; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ else *obptr++ = 0x10; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ *obptr++ = 0xf1; /* LCID */ #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x00; /* SW 0 */ *obptr++ = 0x00; /* SH 0 */ *obptr++ = 0x00; /* SUBSN */ *obptr++ = 0x00; /* SUBSN */ } #endif /*]*/ *obptr++ = 0x03; /* CGCSGID: 3179-style APL2 */ *obptr++ = 0xc3; *obptr++ = 0x01; *obptr++ = 0x36; #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x80; /* SET 0x80: */ *obptr++ = 0x20; /* FLAGS: DBCS */ *obptr++ = 0xf8; /* LCID: 0xf8 */ *obptr++ = SW_3279_2 * 2; /* SW, canned from 3279-2 */ *obptr++ = SH_3279_2; /* SH, canned from 3279-2 */ *obptr++ = 0x41; /* SUBSN */ *obptr++ = 0x7f; /* SUBSN */ SET32(obptr, cgcsgid_dbcs); /* CGCSGID */ } #endif /*]*/ } #if defined(X3270_FT) /*[*/ static void do_qr_ddm(void) { set_dft_buffersize(); trace_ds("> QueryReply(DistributedDataManagement)\n"); space3270out(8); SET16(obptr,0); /* set reserved field to 0 */ SET16(obptr, dft_buffersize); /* set inbound length limit INLIM */ SET16(obptr, dft_buffersize); /* set outbound length limit OUTLIM */ SET16(obptr, 0x0101); /* NSS=01, DDMSS=01 */ } #endif /*]*/ static void do_qr_imp_part(void) { trace_ds("> QueryReply(ImplicitPartition)\n"); space3270out(13); *obptr++ = 0x0; /* reserved */ *obptr++ = 0x0; *obptr++ = 0x0b; /* length of display size */ *obptr++ = 0x01; /* "implicit partition size" */ *obptr++ = 0x00; /* reserved */ SET16(obptr, 80); /* implicit partition width */ SET16(obptr, 24); /* implicit partition height */ SET16(obptr, maxCOLS); /* alternate height */ SET16(obptr, maxROWS); /* alternate width */ } static void query_reply_end(void) { net_output(); kybd_inhibit(True); } ibm-3270-3.3.10ga4/tcl3270/macrosc.h0000644000175000017500000001232411254565704016067 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * macrosc.h * Global declarations for macros.c. */ /* macro definition */ struct macro_def { char *name; char **parents; char *action; struct macro_def *next; }; extern struct macro_def *macro_defs; extern Boolean macro_output; extern void abort_script(void); extern void Abort_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void AnsiText_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void AsciiField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Ascii_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) /*[*/ extern void cancel_if_idle_command(void); #else /*][*/ #define cancel_if_idle_command() #endif /*]*/ extern void Bell_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CloseScript_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ContinueScript_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EbcdicField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Ebcdic_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Execute_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void execute_action_option(Widget w, XtPointer client_data, XtPointer call_data); extern void Expect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ extern void plugin_aid(unsigned char aid); #else /*][*/ #define plugin_aid(a) #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ extern void Plugin_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #endif /*]*/ extern void login_macro(char *s); extern void macros_init(void); extern void Macro_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void macro_command(struct macro_def *m); extern void PauseScript_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void peer_script_init(void); extern void ps_set(char *s, Boolean is_hex); extern void Printer_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void push_command(char *); extern void push_idle(char *); extern void push_keymap_action(char *); extern void push_macro(char *, Boolean); extern void Query_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ReadBuffer_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Script_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) /*[*/ extern void sms_accumulate_time(struct timeval *, struct timeval *); #else /*][*/ #define sms_accumulate_time(a, b) #endif /*]*/ extern Boolean sms_active(void); extern void sms_connect_wait(void); extern void sms_continue(void); extern void sms_error(const char *msg); extern void sms_host_output(void); extern void sms_info(const char *fmt, ...) printflike(1, 2); extern void sms_init(void); extern Boolean sms_in_macro(void); extern Boolean sms_redirect(void); extern void sms_store(unsigned char c); #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ extern void Snap_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #endif /*]*/ #if defined(TCL3270) /*[*/ extern void Status_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #endif /*]*/ extern void Source_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Wait_action(Widget w, XEvent *event, String *params, Cardinal *num_params); ibm-3270-3.3.10ga4/tcl3270/Makefile.in0000644000175000017500000000653611254565711016342 0ustar bastianbastian# Copyright (c) 1993-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Makefile for tcl3270 (tcl-based scripted 3270 emulator) # @configure_input@ RM = rm -f CC = @CC@ all:: tcl3270 SRCS = actions.c ansi.c apl.c charset.c ctlr.c ft.c ft_cut.c \ ft_dft.c glue.c host.c idle.c kybd.c print.c proxy.c readres.c \ resolver.c resources.c rpq.c see.c sf.c tables.c tcl3270.c telnet.c \ toggles.c trace_ds.c unicode.c unicode_dbcs.c utf8.c util.c xio.c \ XtGlue.c VOBJS = actions.o ansi.o apl.o charset.o ctlr.o fallbacks.o ft.o ft_cut.o \ ft_dft.o glue.o host.o idle.o kybd.o print.o proxy.o readres.o \ resolver.o resources.o rpq.o see.o sf.o tables.o tcl3270.o telnet.o \ toggles.o trace_ds.o unicode.o unicode_dbcs.o utf8.o util.o xio.o \ XtGlue.o OBJS1 = $(VOBJS) version.o LIBDIR = @libdir@ exec_prefix = @exec_prefix@ prefix = @prefix@ sysconfdir = @sysconfdir@ datarootdir = @datarootdir@ LIBX3270DIR = @LIBX3270DIR@ MANDIR = @mandir@ BINDIR = @bindir@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ #CDEBUGFLAGS = -g -Wall XCPPFLAGS = -I. -DLIBX3270DIR=\"$(LIBX3270DIR)\" @CPPFLAGS@ @XANSI@ @XPRECOMP@ CFLAGS = @CFLAGS@ $(XCPPFLAGS) $(CDEBUGFLAGS) LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ version.o: $(VOBJS) version.txt mkversion.sh @chmod +x mkversion.sh version.txt sh ./mkversion.sh $(CC) tcl3270 fallbacks.c: mkfb X3270.xad $(RM) $@ ./mkfb -c X3270.xad $@ tcl3270: $(OBJS1) $(CC) -o $@ $(OBJS1) $(LDFLAGS) $(LIBS) install:: tcl3270 [ -d $(DESTDIR)$(BINDIR) ] || \ mkdir -p $(DESTDIR)$(BINDIR) $(INSTALL_PROGRAM) tcl3270 $(DESTDIR)$(BINDIR)/tcl3270 install.man: [ -d $(DESTDIR)$(MANDIR)/man1 ] || \ mkdir -p $(DESTDIR)$(MANDIR)/man1 $(INSTALL_DATA) tcl3270.man $(DESTDIR)$(MANDIR)/man1/tcl3270.1 clean:: $(RM) tcl3270 *.o depend: gccmakedep $(XCPPFLAGS) -s "# DO NOT DELETE" $(SRCS) # ------------------------------------------------------------------------- # dependencies generated by makedepend # DO NOT DELETE ibm-3270-3.3.10ga4/tcl3270/cg.h0000644000175000017500000001735111254565704015036 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * cg.h * * Character encoding for the 3270 character generator font, * using the same suffixes as Latin-1 XK_xxx keysyms. * * Charaters that represent unique EBCDIC or status line codes * are noted with comments. */ #define CG_null 0x00 /* EBCDIC 00 */ #define CG_nobreakspace 0x01 #define CG_ff 0x02 /* EBCDIC 0C */ #define CG_cr 0x03 /* EBCDIC 0D */ #define CG_nl 0x04 /* EBCDIC 15 */ #define CG_em 0x05 /* EBCDIC 19 */ #define CG_eightones 0x06 /* EBCDIC FF */ #define CG_hyphen 0x07 #define CG_greater 0x08 #define CG_less 0x09 #define CG_bracketleft 0x0a #define CG_bracketright 0x0b #define CG_parenleft 0x0c #define CG_parenright 0x0d #define CG_braceleft 0x0e #define CG_braceright 0x0f #define CG_space 0x10 #define CG_equal 0x11 #define CG_apostrophe 0x12 #define CG_quotedbl 0x13 #define CG_slash 0x14 #define CG_backslash 0x15 #define CG_bar 0x16 #define CG_brokenbar 0x17 #define CG_question 0x18 #define CG_exclam 0x19 #define CG_dollar 0x1a #define CG_cent 0x1b #define CG_sterling 0x1c #define CG_yen 0x1d #define CG_paragraph 0x1e #define CG_currency 0x1f #define CG_0 0x20 #define CG_1 0x21 #define CG_2 0x22 #define CG_3 0x23 #define CG_4 0x24 #define CG_5 0x25 #define CG_6 0x26 #define CG_7 0x27 #define CG_8 0x28 #define CG_9 0x29 #define CG_ssharp 0x2a #define CG_section 0x2b #define CG_numbersign 0x2c #define CG_at 0x2d #define CG_percent 0x2e #define CG_underscore 0x2f #define CG_ampersand 0x30 #define CG_minus 0x31 #define CG_period 0x32 #define CG_comma 0x33 #define CG_colon 0x34 #define CG_plus 0x35 #define CG_notsign 0x36 #define CG_macron 0x37 #define CG_degree 0x38 #define CG_periodcentered 0x39 #define CG_asciicircum 0x3a #define CG_asciitilde 0x3b #define CG_diaeresis 0x3c #define CG_grave 0x3d #define CG_acute 0x3e #define CG_cedilla 0x3f #define CG_agrave 0x40 #define CG_egrave 0x41 #define CG_igrave 0x42 #define CG_ograve 0x43 #define CG_ugrave 0x44 #define CG_atilde 0x45 #define CG_otilde 0x46 #define CG_ydiaeresis 0x47 #define CG_Yacute 0x48 #define CG_yacute 0x49 #define CG_eacute 0x4a #define CG_onequarter 0x4b #define CG_onehalf 0x4c #define CG_threequarters 0x4d #define CG_udiaeresis 0x4e #define CG_udiaeresis 0x4e #define CG_ccedilla 0x4f #define CG_adiaeresis 0x50 #define CG_ediaeresis 0x51 #define CG_idiaeresis 0x52 #define CG_odiaeresis 0x53 #define CG_mu 0x54 #define CG_acircumflex 0x55 #define CG_ecircumflex 0x56 #define CG_icircumflex 0x57 #define CG_ocircumflex 0x58 #define CG_ucircumflex 0x59 #define CG_aacute 0x5a #define CG_multiply 0x5b #define CG_iacute 0x5c #define CG_oacute 0x5d #define CG_uacute 0x5e #define CG_ntilde 0x5f #define CG_Agrave 0x60 #define CG_Egrave 0x61 #define CG_Igrave 0x62 #define CG_Ograve 0x63 #define CG_Ugrave 0x64 #define CG_Atilde 0x65 #define CG_Otilde 0x66 #define CG_onesuperior 0x67 #define CG_twosuperior 0x68 #define CG_threesuperior 0x69 #define CG_ordfeminine 0x6a #define CG_masculine 0x6b #define CG_guillemotleft 0x6c #define CG_guillemotright 0x6d #define CG_exclamdown 0x6e #define CG_questiondown 0x6f #define CG_Adiaeresis 0x70 #define CG_Ediaeresis 0x71 #define CG_Idiaeresis 0x72 #define CG_Odiaeresis 0x73 #define CG_Udiaeresis 0x74 #define CG_Acircumflex 0x75 #define CG_Ecircumflex 0x76 #define CG_Icircumflex 0x77 #define CG_Ocircumflex 0x78 #define CG_Ucircumflex 0x79 #define CG_Aacute 0x7a #define CG_Eacute 0x7b #define CG_Iacute 0x7c #define CG_Oacute 0x7d #define CG_Uacute 0x7e #define CG_Ntilde 0x7f #define CG_a 0x80 #define CG_b 0x81 #define CG_c 0x82 #define CG_d 0x83 #define CG_e 0x84 #define CG_f 0x85 #define CG_g 0x86 #define CG_h 0x87 #define CG_i 0x88 #define CG_j 0x89 #define CG_k 0x8a #define CG_l 0x8b #define CG_m 0x8c #define CG_n 0x8d #define CG_o 0x8e #define CG_p 0x8f #define CG_q 0x90 #define CG_r 0x91 #define CG_s 0x92 #define CG_t 0x93 #define CG_u 0x94 #define CG_v 0x95 #define CG_w 0x96 #define CG_x 0x97 #define CG_y 0x98 #define CG_z 0x99 #define CG_ae 0x9a #define CG_oslash 0x9b #define CG_aring 0x9c #define CG_division 0x9d #define CG_fm 0x9e /* EBCDIC 1E */ #define CG_dup 0x9f /* EBCDIC 1C */ #define CG_A 0xa0 #define CG_B 0xa1 #define CG_C 0xa2 #define CG_D 0xa3 #define CG_E 0xa4 #define CG_F 0xa5 #define CG_G 0xa6 #define CG_H 0xa7 #define CG_I 0xa8 #define CG_J 0xa9 #define CG_K 0xaa #define CG_L 0xab #define CG_M 0xac #define CG_N 0xad #define CG_O 0xae #define CG_P 0xaf #define CG_Q 0xb0 #define CG_R 0xb1 #define CG_S 0xb2 #define CG_T 0xb3 #define CG_U 0xb4 #define CG_V 0xb5 #define CG_W 0xb6 #define CG_X 0xb7 #define CG_Y 0xb8 #define CG_Z 0xb9 #define CG_AE 0xba #define CG_Ooblique 0xbb #define CG_Aring 0xbc #define CG_Ccedilla 0xbd #define CG_semicolon 0xbe #define CG_asterisk 0xbf /* codes 0xc0 through 0xcf are for field attributes */ #define CG_copyright 0xd0 #define CG_registered 0xd1 #define CG_boxA 0xd2 /* status boxed A */ #define CG_insert 0xd3 /* status insert mode indicator */ #define CG_boxB 0xd4 /* status boxed B */ #define CG_box6 0xd5 /* status boxed 6 */ #define CG_plusminus 0xd6 #define CG_ETH 0xd7 #define CG_rightarrow 0xd8 #define CG_THORN 0xd9 #define CG_upshift 0xda /* status upshift indicator */ #define CG_human 0xdb /* status illegal position indicator */ #define CG_underB 0xdc /* status underlined B */ #define CG_downshift 0xdd /* status downshift indicator */ #define CG_boxquestion 0xde /* status boxed question mark */ #define CG_boxsolid 0xdf /* status solid block */ /* codes 0xe0 through 0xef are for field attributes */ #define CG_badcommhi 0xf0 /* status bad communication indicator */ #define CG_commhi 0xf1 /* status communication indicator */ #define CG_commjag 0xf2 /* status communication indicator */ #define CG_commlo 0xf3 /* status communication indicator */ #define CG_clockleft 0xf4 /* status wait symbol */ #define CG_clockright 0xf5 /* status wait symbol */ #define CG_lock 0xf6 /* status keyboard lock X symbol */ #define CG_eth 0xf7 #define CG_leftarrow 0xf8 #define CG_thorn 0xf9 #define CG_keyleft 0xfa /* status key lock indicator */ #define CG_keyright 0xfb /* status key lock indicator */ #define CG_box4 0xfc /* status boxed 4 */ #define CG_underA 0xfd /* status underlined A */ #define CG_magcard 0xfe /* status magnetic card indicator */ #define CG_boxhuman 0xff /* status boxed position indicator */ ibm-3270-3.3.10ga4/tcl3270/kybd.c0000644000175000017500000030143611256300017015353 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * kybd.c * This module handles the keyboard for the 3270 emulator. */ #include "globals.h" #if defined(X3270_DISPLAY) /*[*/ #include #endif #define XK_3270 #if defined(X3270_APL) /*[*/ #define XK_APL #endif /*]*/ #include #include #include "3270ds.h" #include "appres.h" #include "ctlr.h" #if defined(X3270_DISPLAY) /*[*/ #include "keysym2ucs.h" #endif /*]*/ #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "aplc.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "hostc.h" #include "idlec.h" #include "keymapc.h" #include "keypadc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "printc.h" #include "screenc.h" #if defined(X3270_DISPLAY) /*[*/ #include "selectc.h" #endif /*]*/ #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include #endif /*]*/ /*#define KYBDLOCK_TRACE 1*/ /* Statics */ static enum { NONE, COMPOSE, FIRST } composing = NONE; static unsigned char pf_xlate[] = { AID_PF1, AID_PF2, AID_PF3, AID_PF4, AID_PF5, AID_PF6, AID_PF7, AID_PF8, AID_PF9, AID_PF10, AID_PF11, AID_PF12, AID_PF13, AID_PF14, AID_PF15, AID_PF16, AID_PF17, AID_PF18, AID_PF19, AID_PF20, AID_PF21, AID_PF22, AID_PF23, AID_PF24 }; static unsigned char pa_xlate[] = { AID_PA1, AID_PA2, AID_PA3 }; #define PF_SZ (sizeof(pf_xlate)/sizeof(pf_xlate[0])) #define PA_SZ (sizeof(pa_xlate)/sizeof(pa_xlate[0])) static unsigned long unlock_id; static time_t unlock_delay_time; Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped); static Boolean flush_ta(void); static void key_AID(unsigned char aid_code); static void kybdlock_set(unsigned int bits, const char *cause); static KeySym MyStringToKeysym(char *s, enum keytype *keytypep, ucs4_t *ucs4); #if defined(X3270_DBCS) /*[*/ Boolean key_WCharacter(unsigned char code[], Boolean *skipped); #endif /*]*/ static Boolean insert = False; /* insert mode */ static Boolean reverse = False; /* reverse-input mode */ /* Globals */ unsigned int kybdlock = KL_NOT_CONNECTED; unsigned char aid = AID_NO; /* current attention ID */ /* Composite key mappings. */ struct akeysym { KeySym keysym; enum keytype keytype; }; static struct akeysym cc_first; static struct composite { struct akeysym k1, k2; struct akeysym translation; } *composites = NULL; static int n_composites = 0; #define ak_eq(k1, k2) (((k1).keysym == (k2).keysym) && \ ((k1).keytype == (k2).keytype)) static struct ta { struct ta *next; XtActionProc fn; char *parm1; char *parm2; } *ta_head = (struct ta *) NULL, *ta_tail = (struct ta *) NULL; static char dxl[] = "0123456789abcdef"; #define FROM_HEX(c) (strchr(dxl, tolower(c)) - dxl) extern Widget *screen; #define KYBDLOCK_IS_OERR (kybdlock && !(kybdlock & ~KL_OERR_MASK)) /* * Put an action on the typeahead queue. */ static void enq_ta(XtActionProc fn, char *parm1, char *parm2) { struct ta *ta; /* If no connection, forget it. */ if (!CONNECTED) { trace_event(" dropped (not connected)\n"); return; } /* If operator error, complain and drop it. */ if (kybdlock & KL_OERR_MASK) { ring_bell(); trace_event(" dropped (operator error)\n"); return; } /* If scroll lock, complain and drop it. */ if (kybdlock & KL_SCROLLED) { ring_bell(); trace_event(" dropped (scrolled)\n"); return; } /* If typeahead disabled, complain and drop it. */ if (!appres.typeahead) { trace_event(" dropped (no typeahead)\n"); return; } ta = (struct ta *) Malloc(sizeof(*ta)); ta->next = (struct ta *) NULL; ta->fn = fn; ta->parm1 = ta->parm2 = CN; if (parm1) { ta->parm1 = NewString(parm1); if (parm2) ta->parm2 = NewString(parm2); } if (ta_head) ta_tail->next = ta; else { ta_head = ta; status_typeahead(True); } ta_tail = ta; trace_event(" action queued (kybdlock 0x%x)\n", kybdlock); } /* * Execute an action from the typeahead queue. */ Boolean run_ta(void) { struct ta *ta; if (kybdlock || (ta = ta_head) == (struct ta *)NULL) return False; if ((ta_head = ta->next) == (struct ta *)NULL) { ta_tail = (struct ta *)NULL; status_typeahead(False); } action_internal(ta->fn, IA_TYPEAHEAD, ta->parm1, ta->parm2); Free(ta->parm1); Free(ta->parm2); Free(ta); return True; } /* * Flush the typeahead queue. * Returns whether or not anything was flushed. */ static Boolean flush_ta(void) { struct ta *ta, *next; Boolean any = False; for (ta = ta_head; ta != (struct ta *) NULL; ta = next) { Free(ta->parm1); Free(ta->parm2); next = ta->next; Free(ta); any = True; } ta_head = ta_tail = (struct ta *) NULL; status_typeahead(False); return any; } /* Decode keyboard lock bits. */ static char * kybdlock_decode(char *how, unsigned int bits) { static char buf[1024]; char *s = buf; char *space = ""; if (bits == (unsigned int)-1) return "all"; if (bits & KL_OERR_MASK) { s += sprintf(s, "%sOERR(", how); switch(bits & KL_OERR_MASK) { case KL_OERR_PROTECTED: s += sprintf(s, "PROTECTED"); break; case KL_OERR_NUMERIC: s += sprintf(s, "NUMERIC"); break; case KL_OERR_OVERFLOW: s += sprintf(s, "OVERFLOW"); break; case KL_OERR_DBCS: s += sprintf(s, "DBCS"); break; default: s += sprintf(s, "?%d", bits & KL_OERR_MASK); break; } s += sprintf(s, ")"); space = " "; } if (bits & KL_NOT_CONNECTED) { s += sprintf(s, "%s%sNOT_CONNECTED", space, how); space = " "; } if (bits & KL_AWAITING_FIRST) { s += sprintf(s, "%s%sAWAITING_FIRST", space, how); space = " "; } if (bits & KL_OIA_TWAIT) { s += sprintf(s, "%s%sOIA_TWAIT", space, how); space = " "; } if (bits & KL_OIA_LOCKED) { s += sprintf(s, "%s%sOIA_LOCKED", space, how); space = " "; } if (bits & KL_DEFERRED_UNLOCK) { s += sprintf(s, "%s%sDEFERRED_UNLOCK", space, how); space = " "; } if (bits & KL_ENTER_INHIBIT) { s += sprintf(s, "%s%sENTER_INHIBIT", space, how); space = " "; } if (bits & KL_SCROLLED) { s += sprintf(s, "%s%sSCROLLED", space, how); space = " "; } if (bits & KL_OIA_MINUS) { s += sprintf(s, "%s%sOIA_MINUS", space, how); space = " "; } return buf; } /* Set bits in the keyboard lock. */ static void kybdlock_set(unsigned int bits, const char *cause _is_unused) { unsigned int n; trace_event("Keyboard lock(%s) %s\n", cause, kybdlock_decode("+", bits)); n = kybdlock | bits; if (n != kybdlock) { #if defined(KYBDLOCK_TRACE) /*[*/ trace_event(" %s: kybdlock |= 0x%04x, 0x%04x -> 0x%04x\n", cause, bits, kybdlock, n); #endif /*]*/ if ((kybdlock ^ bits) & KL_DEFERRED_UNLOCK) { /* Turned on deferred unlock. */ unlock_delay_time = time(NULL); } kybdlock = n; status_kybdlock(); } } /* Clear bits in the keyboard lock. */ void kybdlock_clr(unsigned int bits, const char *cause _is_unused) { unsigned int n; if (kybdlock & bits) trace_event("Keyboard unlock(%s) %s\n", cause, kybdlock_decode("-", kybdlock & bits)); n = kybdlock & ~bits; if (n != kybdlock) { #if defined(KYBDLOCK_TRACE) /*[*/ trace_event(" %s: kybdlock &= ~0x%04x, 0x%04x -> 0x%04x\n", cause, bits, kybdlock, n); #endif /*]*/ if ((kybdlock ^ n) & KL_DEFERRED_UNLOCK) { /* Turned off deferred unlock. */ unlock_delay_time = 0; } kybdlock = n; status_kybdlock(); } } /* * Set or clear enter-inhibit mode. */ void kybd_inhibit(Boolean inhibit) { if (inhibit) { kybdlock_set(KL_ENTER_INHIBIT, "kybd_inhibit"); if (kybdlock == KL_ENTER_INHIBIT) status_reset(); } else { kybdlock_clr(KL_ENTER_INHIBIT, "kybd_inhibit"); if (!kybdlock) status_reset(); } } /* * Called when a host connects or disconnects. */ static void kybd_connect(Boolean connected) { if ((kybdlock & KL_DEFERRED_UNLOCK) && unlock_id) { RemoveTimeOut(unlock_id); unlock_id = 0; } kybdlock_clr(-1, "kybd_connect"); if (connected) { /* Wait for any output or a WCC(restore) from the host */ kybdlock_set(KL_AWAITING_FIRST, "kybd_connect"); } else { kybdlock_set(KL_NOT_CONNECTED, "kybd_connect"); (void) flush_ta(); } } /* * Called when we switch between 3270 and ANSI modes. */ static void kybd_in3270(Boolean in3270 _is_unused) { if ((kybdlock & KL_DEFERRED_UNLOCK) && unlock_id) { RemoveTimeOut(unlock_id); unlock_id = 0; } switch ((int)cstate) { case CONNECTED_INITIAL_E: /* * Either we just negotiated TN3270E, or we just processed * and UNBIND from the host. In either case, we are now * awaiting a first unlock from the host, or a transition to * 3270, NVT or SSCP-LU mode. */ kybdlock_set(KL_AWAITING_FIRST, "kybd_in3270"); break; case CONNECTED_ANSI: case CONNECTED_NVT: case CONNECTED_SSCP: /* * We just transitioned to ANSI, TN3270E NVT or TN3270E SSCP-LU * mode. Remove all lock bits. */ kybdlock_clr(-1, "kybd_in3270"); break; default: /* * We just transitioned into or out of 3270 mode. * Remove all lock bits except AWAITING_FIRST. */ kybdlock_clr(~KL_AWAITING_FIRST, "kybd_in3270"); break; } /* There might be a macro pending. */ if (CONNECTED) ps_process(); } /* * Called to initialize the keyboard logic. */ void kybd_init(void) { /* Register interest in connect and disconnect events. */ register_schange(ST_CONNECT, kybd_connect); register_schange(ST_3270_MODE, kybd_in3270); } /* * Toggle insert mode. */ static void insert_mode(Boolean on) { insert = on; status_insert_mode(on); } /* * Toggle reverse mode. */ static void reverse_mode(Boolean on) { #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif /*]*/ { reverse = on; status_reverse_mode(on); } } /* * Lock the keyboard because of an operator error. */ static void operator_error(int error_type) { if (sms_redirect()) popup_an_error("Keyboard locked"); if (appres.oerr_lock || sms_redirect()) { status_oerr(error_type); mcursor_locked(); kybdlock_set((unsigned int)error_type, "operator_error"); (void) flush_ta(); } else { ring_bell(); } } /* * Handle an AID (Attention IDentifier) key. This is the common stuff that * gets executed for all AID keys (PFs, PAs, Clear and etc). */ static void key_AID(unsigned char aid_code) { #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { register unsigned i; if (aid_code == AID_ENTER) { net_sendc('\r'); return; } for (i = 0; i < PF_SZ; i++) if (aid_code == pf_xlate[i]) { ansi_send_pf(i+1); return; } for (i = 0; i < PA_SZ; i++) if (aid_code == pa_xlate[i]) { ansi_send_pa(i+1); return; } return; } #endif /*]*/ #if defined(X3270_PLUGIN) /*[*/ plugin_aid(aid_code); #endif /*]*/ if (IN_SSCP) { if (kybdlock & KL_OIA_MINUS) return; switch (aid_code) { case AID_CLEAR: /* Handled locally. */ break; case AID_ENTER: /* * Act as if the host had written our input, and * send it as a Read Modified. */ buffer_addr = cursor_addr; aid = aid_code; ctlr_read_modified(aid, False); status_ctlr_done(); break; default: /* Everything else is invalid in SSCP-LU mode. */ status_minus(); kybdlock_set(KL_OIA_MINUS, "key_AID"); return; } return; } status_twait(); mcursor_waiting(); insert_mode(False); kybdlock_set(KL_OIA_TWAIT | KL_OIA_LOCKED, "key_AID"); aid = aid_code; ctlr_read_modified(aid, False); ticking_start(False); status_ctlr_done(); } void PF_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { unsigned k; action_debug(PF_action, event, params, num_params); if (check_usage(PF_action, *num_params, 1, 1) < 0) return; k = atoi(params[0]); if (k < 1 || k > PF_SZ) { popup_an_error("%s: Invalid argument '%s'", action_name(PF_action), params[0]); cancel_if_idle_command(); return; } reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(PF_action, params[0], CN); else key_AID(pf_xlate[k-1]); } void PA_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { unsigned k; action_debug(PA_action, event, params, num_params); if (check_usage(PA_action, *num_params, 1, 1) < 0) return; k = atoi(params[0]); if (k < 1 || k > PA_SZ) { popup_an_error("%s: Invalid argument '%s'", action_name(PA_action), params[0]); cancel_if_idle_command(); return; } reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(PA_action, params[0], CN); else key_AID(pa_xlate[k-1]); } /* * ATTN key, per RFC 2355. Sends IP, regardless. */ void Attn_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Attn_action, event, params, num_params); if (check_usage(Attn_action, *num_params, 0, 0) < 0) return; if (!IN_3270) return; reset_idle_timer(); if (IN_E) { if (net_bound()) { net_interrupt(); } else { status_minus(); kybdlock_set(KL_OIA_MINUS, "Attn_action"); } } else { net_break(); } } /* * IAC IP, which works for 5250 System Request and interrupts the program * on an AS/400, even when the keyboard is locked. * * This is now the same as the Attn action. */ void Interrupt_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Interrupt_action, event, params, num_params); if (check_usage(Interrupt_action, *num_params, 0, 0) < 0) return; if (!IN_3270) return; reset_idle_timer(); net_interrupt(); } /* * Prepare for an insert of 'count' bytes. * Returns True if the insert is legal, False otherwise. */ static Boolean ins_prep(int faddr, int baddr, int count, Boolean *no_room) { int next_faddr; int xaddr; int need; int ntb; int tb_start = -1; int copy_len; *no_room = False; /* Find the end of the field. */ if (faddr == -1) { /* Unformatted. Use the end of the line. */ next_faddr = (((baddr / COLS) + 1) * COLS) % (ROWS*COLS); } else { next_faddr = faddr; INC_BA(next_faddr); while (next_faddr != faddr && !ea_buf[next_faddr].fa) { INC_BA(next_faddr); } } /* Are there enough NULLs or trailing blanks available? */ xaddr = baddr; need = count; ntb = 0; while (need && (xaddr != next_faddr)) { if (ea_buf[xaddr].cc == EBC_null) need--; else if (toggled(BLANK_FILL) && ((ea_buf[xaddr].cc == EBC_space) || (ea_buf[xaddr].cc == EBC_underscore))) { if (tb_start == -1) tb_start = xaddr; ntb++; } else { tb_start = -1; ntb = 0; } INC_BA(xaddr); } #if defined(_ST) /*[*/ printf("need %d at %d, tb_start at %d\n", count, baddr, tb_start); #endif /*]*/ if (need - ntb > 0) { if (!reverse) { operator_error(KL_OERR_OVERFLOW); return False; } else { *no_room = True; return True; } } /* * Shift the buffer to the right until we've consumed the available * (and needed) NULLs. */ need = count; xaddr = baddr; while (need && (xaddr != next_faddr)) { int n_nulls = 0; int first_null = -1; while (need && ((ea_buf[xaddr].cc == EBC_null) || (tb_start >= 0 && xaddr >= tb_start))) { need--; n_nulls++; if (first_null == -1) first_null = xaddr; INC_BA(xaddr); } if (n_nulls) { int to; /* Shift right n_nulls worth. */ copy_len = first_null - baddr; if (copy_len < 0) copy_len += ROWS*COLS; to = (baddr + n_nulls) % (ROWS*COLS); #if defined(_ST) /*[*/ printf("found %d NULLs at %d\n", n_nulls, first_null); printf("copying %d from %d to %d\n", copy_len, to, first_null); #endif /*]*/ if (copy_len) ctlr_wrapping_memmove(to, baddr, copy_len); } INC_BA(xaddr); } return True; } #define GE_WFLAG 0x100 #define PASTE_WFLAG 0x200 static void key_Character_wrapper(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params _is_unused) { int code; Boolean with_ge = False; Boolean pasting = False; char mb[16]; ucs4_t uc; code = atoi(params[0]); if (code & GE_WFLAG) { with_ge = True; code &= ~GE_WFLAG; } if (code & PASTE_WFLAG) { pasting = True; code &= ~PASTE_WFLAG; } ebcdic_to_multibyte_x(code, with_ge? CS_GE: CS_BASE, mb, sizeof(mb), EUO_BLANK_UNDEF, &uc); trace_event(" %s -> Key(%s\"%s\")\n", ia_name[(int) ia_cause], with_ge ? "GE " : "", mb); (void) key_Character(code, with_ge, pasting, NULL); } /* * Handle an ordinary displayable character key. Lots of stuff to handle * insert-mode, protected fields and etc. */ /*static*/ Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) { register int baddr, faddr, xaddr; register unsigned char fa; enum dbcs_why why = DBCS_FIELD; Boolean no_room = False; reset_idle_timer(); if (skipped != NULL) *skipped = False; if (kybdlock) { char codename[64]; (void) sprintf(codename, "%d", code | (with_ge ? GE_WFLAG : 0) | (pasting ? PASTE_WFLAG : 0)); enq_ta(key_Character_wrapper, codename, CN); return False; } baddr = cursor_addr; faddr = find_field_attribute(baddr); fa = get_field_attribute(baddr); if (ea_buf[baddr].fa || FA_IS_PROTECTED(fa)) { operator_error(KL_OERR_PROTECTED); return False; } if (appres.numeric_lock && FA_IS_NUMERIC(fa) && !((code >= EBC_0 && code <= EBC_9) || code == EBC_minus || code == EBC_period)) { operator_error(KL_OERR_NUMERIC); return False; } /* Can't put an SBCS in a DBCS field. */ if (ea_buf[faddr].cs == CS_DBCS) { operator_error(KL_OERR_DBCS); return False; } /* If it's an SI (end of DBCS subfield), move over one position. */ if (ea_buf[baddr].cc == EBC_si) { INC_BA(baddr); if (baddr == faddr) { operator_error(KL_OERR_OVERFLOW); return False; } } /* Add the character. */ if (ea_buf[baddr].cc == EBC_so) { if (insert) { if (!ins_prep(faddr, baddr, 1, &no_room)) return False; } else { Boolean was_si = False; /* * Overwriting an SO (start of DBCS subfield). * If it's followed by an SI, replace the SO/SI * pair with x/space. If not, replace it and * the following DBCS character with * x/space/SO. */ xaddr = baddr; INC_BA(xaddr); was_si = (ea_buf[xaddr].cc == EBC_si); ctlr_add(xaddr, EBC_space, CS_BASE); ctlr_add_fg(xaddr, 0); #if defined(X3270_ANSI) /*[*/ ctlr_add_bg(xaddr, 0); #endif /*]*/ if (!was_si) { INC_BA(xaddr); ctlr_add(xaddr, EBC_so, CS_BASE); ctlr_add_fg(xaddr, 0); #if defined(X3270_ANSI) /*[*/ ctlr_add_bg(xaddr, 0); #endif /*]*/ } } } else switch (ctlr_lookleft_state(baddr, &why)) { case DBCS_RIGHT: DEC_BA(baddr); /* fall through... */ case DBCS_LEFT: if (why == DBCS_ATTRIBUTE) { if (insert) { if (!ins_prep(faddr, baddr, 1, &no_room)) return False; } else { /* * Replace single DBCS char with * x/space. */ xaddr = baddr; INC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); } } else { Boolean was_si; if (insert) { /* * Inserting SBCS into a DBCS subfield. * If this is the first position, we * can just insert one character in * front of the SO. Otherwise, we'll * need room for SI (to end subfield), * the character, and SO (to begin the * subfield again). */ xaddr = baddr; DEC_BA(xaddr); if (ea_buf[xaddr].cc == EBC_so) { DEC_BA(baddr); if (!ins_prep(faddr, baddr, 1, &no_room)) return False; } else { if (!ins_prep(faddr, baddr, 3, &no_room)) return False; xaddr = baddr; ctlr_add(xaddr, EBC_si, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); INC_BA(xaddr); INC_BA(baddr); INC_BA(xaddr); ctlr_add(xaddr, EBC_so, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); } } else { /* Overwriting part of a subfield. */ xaddr = baddr; ctlr_add(xaddr, EBC_si, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); INC_BA(xaddr); INC_BA(baddr); INC_BA(xaddr); was_si = (ea_buf[xaddr].cc == EBC_si); ctlr_add(xaddr, EBC_space, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); if (!was_si) { INC_BA(xaddr); ctlr_add(xaddr, EBC_so, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); } } } break; default: case DBCS_NONE: if ((reverse || insert) && !ins_prep(faddr, baddr, 1, &no_room)) return False; break; } if (no_room) { do { INC_BA(baddr); } while (ea_buf[baddr].fa); } else { ctlr_add(baddr, (unsigned char)code, (unsigned char)(with_ge ? CS_GE : 0)); ctlr_add_fg(baddr, 0); ctlr_add_gr(baddr, 0); if (!reverse) INC_BA(baddr); } /* Replace leading nulls with blanks, if desired. */ if (formatted && toggled(BLANK_FILL)) { register int baddr_fill = baddr; DEC_BA(baddr_fill); while (baddr_fill != faddr) { /* Check for backward line wrap. */ if ((baddr_fill % COLS) == COLS - 1) { Boolean aborted = True; register int baddr_scan = baddr_fill; /* * Check the field within the preceeding line * for NULLs. */ while (baddr_scan != faddr) { if (ea_buf[baddr_scan].cc != EBC_null) { aborted = False; break; } if (!(baddr_scan % COLS)) break; DEC_BA(baddr_scan); } if (aborted) break; } if (ea_buf[baddr_fill].cc == EBC_null) ctlr_add(baddr_fill, EBC_space, 0); DEC_BA(baddr_fill); } } mdt_set(cursor_addr); /* * Implement auto-skip, and don't land on attribute bytes. * This happens for all pasted data (even DUP), and for all * keyboard-generated data except DUP. */ if (pasting || (code != EBC_dup)) { while (ea_buf[baddr].fa) { if (skipped != NULL) *skipped = True; if (FA_IS_SKIP(ea_buf[baddr].fa)) baddr = next_unprotected(baddr); else INC_BA(baddr); } cursor_move(baddr); } (void) ctlr_dbcs_postprocess(); return True; } #if defined(X3270_DBCS) /*[*/ static void key_WCharacter_wrapper(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params _is_unused) { int code; unsigned char codebuf[2]; code = atoi(params[0]); trace_event(" %s -> Key(0x%04x)\n", ia_name[(int) ia_cause], code); codebuf[0] = (code >> 8) & 0xff; codebuf[1] = code & 0xff; (void) key_WCharacter(codebuf, NULL); } /* * Input a DBCS character. * Returns True if a character was stored in the buffer, False otherwise. */ Boolean key_WCharacter(unsigned char code[], Boolean *skipped) { int baddr; register unsigned char fa; int faddr; enum dbcs_state d; int xaddr; Boolean done = False; Boolean no_si = False; Boolean no_room = False; extern unsigned char reply_mode; /* XXX */ reset_idle_timer(); if (kybdlock) { char codename[64]; (void) sprintf(codename, "%d", (code[0] << 8) | code[1]); enq_ta(key_WCharacter_wrapper, codename, CN); return False; } if (skipped != NULL) *skipped = False; /* In DBCS mode? */ #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif /*]*/ { trace_event("DBCS character received when not in DBCS mode, " "ignoring.\n"); return True; } #if defined(X3270_ANSI) /*[*/ /* In ANSI mode? */ if (IN_ANSI) { char mb[16]; (void) ebcdic_to_multibyte((code[0] << 8) | code[1], mb, sizeof(mb)); net_sends(mb); return True; } #endif /*]*/ baddr = cursor_addr; fa = get_field_attribute(baddr); faddr = find_field_attribute(baddr); /* Protected? */ if (ea_buf[baddr].fa || FA_IS_PROTECTED(fa)) { operator_error(KL_OERR_PROTECTED); return False; } /* Numeric? */ if (appres.numeric_lock && FA_IS_NUMERIC(fa)) { operator_error(KL_OERR_NUMERIC); return False; } /* * Figure our what to do based on the DBCS state of the buffer. * Leaves baddr pointing to the next unmodified position. */ retry: switch (d = ctlr_dbcs_state(baddr)) { case DBCS_RIGHT: case DBCS_RIGHT_WRAP: /* Back up one position and process it as a LEFT. */ DEC_BA(baddr); /* fall through... */ case DBCS_LEFT: case DBCS_LEFT_WRAP: /* Overwrite the existing character. */ if (insert) { if (!ins_prep(faddr, baddr, 2, &no_room)) { return False; } } ctlr_add(baddr, code[0], ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[1], ea_buf[baddr].cs); INC_BA(baddr); done = True; break; case DBCS_SB: /* Back up one position and process it as an SI. */ DEC_BA(baddr); /* fall through... */ case DBCS_SI: /* Extend the subfield to the right. */ if (insert) { if (!ins_prep(faddr, baddr, 2, &no_room)) { return False; } } else { /* Don't overwrite a field attribute or an SO. */ xaddr = baddr; INC_BA(xaddr); /* C1 */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) no_si = True; INC_BA(xaddr); /* SI */ if (ea_buf[xaddr].fa || ea_buf[xaddr].cc == EBC_so) break; } ctlr_add(baddr, code[0], ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[1], ea_buf[baddr].cs); if (!no_si) { INC_BA(baddr); ctlr_add(baddr, EBC_si, ea_buf[baddr].cs); } done = True; break; case DBCS_DEAD: break; case DBCS_NONE: if (ea_buf[faddr].ic) { Boolean extend_left = False; /* Is there room? */ if (insert) { if (!ins_prep(faddr, baddr, 4, &no_room)) { return False; } } else { xaddr = baddr; /* baddr, SO */ if (ea_buf[xaddr].cc == EBC_so) { /* * (baddr), where we would have put the * SO, is already an SO. Move to * (baddr+1) and try again. */ #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 0\n"); #endif /*]*/ INC_BA(baddr); goto retry; } INC_BA(xaddr); /* baddr+1, C0 */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) { enum dbcs_state e; /* * (baddr+1), where we would have put * the left side of the DBCS, is a SO. * If there's room, we can extend the * subfield to the left. If not, we're * stuck. */ DEC_BA(xaddr); DEC_BA(xaddr); e = ctlr_dbcs_state(xaddr); if (e == DBCS_NONE || e == DBCS_SB) { extend_left = True; no_si = True; #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 1, " "extend left\n"); #endif /*]*/ } else { /* * Won't actually happen, * because this implies that * the buffer addr at baddr * is an SB. */ #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 1, " "no room on left, " "fail\n"); #endif /*]*/ break; } } INC_BA(xaddr); /* baddr+2, C1 */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) { /* * (baddr+2), where we want to put the * right half of the DBCS character, is * a SO. This is a natural extension * to the left -- just make sure we * don't write an SI. */ no_si = True; #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 2, no SI\n"); #endif /*]*/ } /* * Check the fourth position only if we're * not doing an extend-left. */ if (!no_si) { INC_BA(xaddr); /* baddr+3, SI */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) { /* * (baddr+3), where we want to * put an * SI, is an SO. Forget it. */ #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 3, " "retry right\n"); INC_BA(baddr); goto retry; #endif /*]*/ break; } } } /* Yes, add it. */ if (extend_left) DEC_BA(baddr); ctlr_add(baddr, EBC_so, ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[0], ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[1], ea_buf[baddr].cs); if (!no_si) { INC_BA(baddr); ctlr_add(baddr, EBC_si, ea_buf[baddr].cs); } done = True; } else if (reply_mode == SF_SRM_CHAR) { /* Use the character attribute. */ if (insert) { if (!ins_prep(faddr, baddr, 2, &no_room)) { return False; } } else { xaddr = baddr; INC_BA(xaddr); if (ea_buf[xaddr].fa) break; } ctlr_add(baddr, code[0], CS_DBCS); INC_BA(baddr); ctlr_add(baddr, code[1], CS_DBCS); INC_BA(baddr); done = True; } break; } if (done) { /* Implement blank fill mode. */ if (toggled(BLANK_FILL)) { xaddr = faddr; INC_BA(xaddr); while (xaddr != baddr) { if (ea_buf[xaddr].cc == EBC_null) ctlr_add(xaddr, EBC_space, CS_BASE); else break; INC_BA(xaddr); } } mdt_set(cursor_addr); /* Implement auto-skip. */ while (ea_buf[baddr].fa) { if (skipped != NULL) *skipped = True; if (FA_IS_SKIP(ea_buf[baddr].fa)) baddr = next_unprotected(baddr); else INC_BA(baddr); } cursor_move(baddr); (void) ctlr_dbcs_postprocess(); return True; } else { operator_error(KL_OERR_DBCS); return False; } } #endif /*]*/ /* * Handle an ordinary character key, given its Unicode value. */ static void key_UCharacter(ucs4_t ucs4, enum keytype keytype, enum iaction cause, Boolean *skipped) { register int i; struct akeysym ak; reset_idle_timer(); if (skipped != NULL) *skipped = False; ak.keysym = ucs4; ak.keytype = keytype; switch (composing) { case NONE: break; case COMPOSE: for (i = 0; i < n_composites; i++) if (ak_eq(composites[i].k1, ak) || ak_eq(composites[i].k2, ak)) break; if (i < n_composites) { cc_first.keysym = ucs4; cc_first.keytype = keytype; composing = FIRST; status_compose(True, ucs4, keytype); } else { ring_bell(); composing = NONE; status_compose(False, 0, KT_STD); } return; case FIRST: composing = NONE; status_compose(False, 0, KT_STD); for (i = 0; i < n_composites; i++) if ((ak_eq(composites[i].k1, cc_first) && ak_eq(composites[i].k2, ak)) || (ak_eq(composites[i].k1, ak) && ak_eq(composites[i].k2, cc_first))) break; if (i < n_composites) { ucs4 = composites[i].translation.keysym; keytype = composites[i].translation.keytype; } else { ring_bell(); return; } break; } trace_event(" %s -> Key(U+%04x)\n", ia_name[(int) cause], ucs4); if (IN_3270) { ebc_t ebc; Boolean ge; if (ucs4 < ' ') { trace_event(" dropped (control char)\n"); return; } ebc = unicode_to_ebcdic_ge(ucs4, &ge); if (ebc == 0) { trace_event(" dropped (no EBCDIC translation)\n"); return; } #if defined(X3270_DBCS) /*[*/ if (ebc & 0xff00) { unsigned char code[2]; code[0] = (ebc & 0xff00)>> 8; code[1] = ebc & 0xff; (void) key_WCharacter(code, skipped); } else #endif /*]*/ (void) key_Character(ebc, (keytype == KT_GE) || ge, False, skipped); } #if defined(X3270_ANSI) /*[*/ else if (IN_ANSI) { char mb[16]; unicode_to_multibyte(ucs4, mb, sizeof(mb)); net_sends(mb); } #endif /*]*/ else { trace_event(" dropped (not connected)\n"); } } #if defined(X3270_DISPLAY) /*[*/ /* * Handle an ordinary character key, given its NULL-terminated multibyte * representation. */ static void key_ACharacter(char *mb, enum keytype keytype, enum iaction cause, Boolean *skipped) { ucs4_t ucs4; int consumed; enum me_fail error; reset_idle_timer(); if (skipped != NULL) *skipped = False; /* Convert the multibyte string to UCS4. */ ucs4 = multibyte_to_unicode(mb, strlen(mb), &consumed, &error); if (ucs4 == 0) { trace_event(" %s -> Key(?)\n", ia_name[(int) cause]); trace_event(" dropped (invalid multibyte sequence)\n"); return; } key_UCharacter(ucs4, keytype, cause, skipped); } #endif /*]*/ /* * Simple toggles. */ #if defined(X3270_DISPLAY) /*[*/ void AltCursor_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(AltCursor_action, event, params, num_params); if (check_usage(AltCursor_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); do_toggle(ALT_CURSOR); } #endif /*]*/ void MonoCase_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(MonoCase_action, event, params, num_params); if (check_usage(MonoCase_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); do_toggle(MONOCASE); } /* * Flip the display left-to-right */ void Flip_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Flip_action, event, params, num_params); if (check_usage(Flip_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif /*]*/ screen_flip(); } /* * Tab forward to next field. */ void Tab_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Tab_action, event, params, num_params); if (check_usage(Tab_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Tab"); status_reset(); } else { enq_ta(Tab_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_sendc('\t'); return; } #endif /*]*/ cursor_move(next_unprotected(cursor_addr)); } /* * Tab backward to previous field. */ void BackTab_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr, nbaddr; int sbaddr; action_debug(BackTab_action, event, params, num_params); if (check_usage(BackTab_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "BackTab"); status_reset(); } else { enq_ta(BackTab_action, CN, CN); return; } } if (!IN_3270) return; baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].fa) /* at bof */ DEC_BA(baddr); sbaddr = baddr; while (True) { nbaddr = baddr; INC_BA(nbaddr); if (ea_buf[baddr].fa && !FA_IS_PROTECTED(ea_buf[baddr].fa) && !ea_buf[nbaddr].fa) break; DEC_BA(baddr); if (baddr == sbaddr) { cursor_move(0); return; } } INC_BA(baddr); cursor_move(baddr); } /* * Deferred keyboard unlock. */ static void defer_unlock(void) { kybdlock_clr(KL_DEFERRED_UNLOCK, "defer_unlock"); status_reset(); if (CONNECTED) ps_process(); } /* * Reset keyboard lock. */ void do_reset(Boolean explicit) { /* * If explicit (from the keyboard) and there is typeahead or * a half-composed key, simply flush it. */ if (explicit #if defined(X3270_FT) /*[*/ || ft_state != FT_NONE #endif /*]*/ ) { Boolean half_reset = False; if (flush_ta()) half_reset = True; if (composing != NONE) { composing = NONE; status_compose(False, 0, KT_STD); half_reset = True; } if (half_reset) return; } /* Always clear insert mode. */ insert_mode(False); /* Otherwise, if not connect, reset is a no-op. */ if (!CONNECTED) return; /* * Remove any deferred keyboard unlock. We will either unlock the * keyboard now, or want to defer further into the future. */ if ((kybdlock & KL_DEFERRED_UNLOCK) && unlock_id) { RemoveTimeOut(unlock_id); unlock_id = 0; } /* * If explicit (from the keyboard), unlock the keyboard now. * Otherwise (from the host), schedule a deferred keyboard unlock. */ if (explicit #if defined(X3270_FT) /*[*/ || ft_state != FT_NONE #endif /*]*/ || (!appres.unlock_delay && !sms_in_macro()) || (unlock_delay_time != 0 && (time(NULL) - unlock_delay_time) > 1) || !appres.unlock_delay_ms) { kybdlock_clr(-1, "do_reset"); } else if (kybdlock & (KL_DEFERRED_UNLOCK | KL_OIA_TWAIT | KL_OIA_LOCKED | KL_AWAITING_FIRST)) { kybdlock_clr(~KL_DEFERRED_UNLOCK, "do_reset"); kybdlock_set(KL_DEFERRED_UNLOCK, "do_reset"); unlock_id = AddTimeOut(appres.unlock_delay_ms, defer_unlock); trace_event("Deferring keyboard unlock %dms\n", appres.unlock_delay_ms); } /* Clean up other modes. */ status_reset(); mcursor_normal(); composing = NONE; status_compose(False, 0, KT_STD); } void Reset_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Reset_action, event, params, num_params); if (check_usage(Reset_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); do_reset(True); } /* * Move to first unprotected field on screen. */ void Home_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Home_action, event, params, num_params); if (check_usage(Home_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Home_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_home(); return; } #endif /*]*/ if (!formatted) { cursor_move(0); return; } cursor_move(next_unprotected(ROWS*COLS-1)); } /* * Cursor left 1 position. */ static void do_left(void) { register int baddr; enum dbcs_state d; baddr = cursor_addr; DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) { DEC_BA(baddr); } else if (IS_LEFT(d)) { DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) DEC_BA(baddr); } cursor_move(baddr); } void Left_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Left_action, event, params, num_params); if (check_usage(Left_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Left"); status_reset(); } else { enq_ta(Left_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_left(); return; } #endif /*]*/ if (!flipped) do_left(); else { register int baddr; baddr = cursor_addr; INC_BA(baddr); cursor_move(baddr); } } /* * Delete char key. * Returns "True" if succeeds, "False" otherwise. */ static Boolean do_delete(void) { register int baddr, end_baddr; int xaddr; register unsigned char fa; int ndel; register int i; baddr = cursor_addr; /* Can't delete a field attribute. */ fa = get_field_attribute(baddr); if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return False; } if (ea_buf[baddr].cc == EBC_so || ea_buf[baddr].cc == EBC_si) { /* * Can't delete SO or SI, unless it's adjacent to its * opposite. */ xaddr = baddr; INC_BA(xaddr); if (ea_buf[xaddr].cc == SOSI(ea_buf[baddr].cc)) { ndel = 2; } else { operator_error(KL_OERR_PROTECTED); return False; } } else if (IS_DBCS(ea_buf[baddr].db)) { if (IS_RIGHT(ea_buf[baddr].db)) DEC_BA(baddr); ndel = 2; } else ndel = 1; /* find next fa */ if (formatted) { end_baddr = baddr; do { INC_BA(end_baddr); if (ea_buf[end_baddr].fa) break; } while (end_baddr != baddr); DEC_BA(end_baddr); } else { if ((baddr % COLS) == COLS - ndel) return True; end_baddr = baddr + (COLS - (baddr % COLS)) - 1; } /* Shift the remainder of the field left. */ if (end_baddr > baddr) { ctlr_bcopy(baddr + ndel, baddr, end_baddr - (baddr + ndel) + 1, 0); } else if (end_baddr != baddr) { /* XXX: Need to verify this. */ ctlr_bcopy(baddr + ndel, baddr, ((ROWS * COLS) - 1) - (baddr + ndel) + 1, 0); ctlr_bcopy(0, (ROWS * COLS) - ndel, ndel, 0); ctlr_bcopy(ndel, 0, end_baddr - ndel + 1, 0); } /* NULL fill at the end. */ for (i = 0; i < ndel; i++) ctlr_add(end_baddr - i, EBC_null, 0); /* Set the MDT for this field. */ mdt_set(cursor_addr); /* Patch up the DBCS state for display. */ (void) ctlr_dbcs_postprocess(); return True; } void Delete_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Delete_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(Delete_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_sendc('\177'); return; } #endif /*]*/ if (!do_delete()) return; if (reverse) { int baddr = cursor_addr; DEC_BA(baddr); if (!ea_buf[baddr].fa) cursor_move(baddr); } } /* * 3270-style backspace. */ void BackSpace_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(BackSpace_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(BackSpace_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_erase(); return; } #endif /*]*/ if (reverse) (void) do_delete(); else if (!flipped) do_left(); else { register int baddr; baddr = cursor_addr; DEC_BA(baddr); cursor_move(baddr); } } /* * Destructive backspace, like Unix "erase". */ static void do_erase(void) { int baddr, faddr; enum dbcs_state d; baddr = cursor_addr; faddr = find_field_attribute(baddr); if (faddr == baddr || FA_IS_PROTECTED(ea_buf[baddr].fa)) { operator_error(KL_OERR_PROTECTED); return; } if (baddr && faddr == baddr - 1) return; do_left(); /* * If we are now on an SI, move left again. */ if (ea_buf[cursor_addr].cc == EBC_si) { baddr = cursor_addr; DEC_BA(baddr); cursor_move(baddr); } /* * If we landed on the right-hand side of a DBCS character, move to the * left-hand side. * This ensures that if this is the end of a DBCS subfield, we will * land on the SI, instead of on the character following. */ d = ctlr_dbcs_state(cursor_addr); if (IS_RIGHT(d)) { baddr = cursor_addr; DEC_BA(baddr); cursor_move(baddr); } /* * Try to delete this character. */ if (!do_delete()) return; /* * If we've just erased the last character of a DBCS subfield, erase * the SO/SI pair as well. */ baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].cc == EBC_so && ea_buf[cursor_addr].cc == EBC_si) { cursor_move(baddr); (void) do_delete(); } } void Erase_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Erase_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(Erase_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_erase(); return; } #endif /*]*/ if (reverse) do_delete(); else do_erase(); } /* * Cursor right 1 position. */ void Right_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; enum dbcs_state d; action_debug(Right_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Right"); status_reset(); } else { enq_ta(Right_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_right(); return; } #endif /*]*/ if (!flipped) { baddr = cursor_addr; INC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) INC_BA(baddr); cursor_move(baddr); } else do_left(); } /* * Cursor left 2 positions. */ void Left2_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; enum dbcs_state d; action_debug(Left2_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Left2"); status_reset(); } else { enq_ta(Left2_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ baddr = cursor_addr; DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) DEC_BA(baddr); DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) DEC_BA(baddr); cursor_move(baddr); } /* * Cursor to previous word. */ void PreviousWord_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; int baddr0; unsigned char c; Boolean prot; action_debug(PreviousWord_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(PreviousWord_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (!formatted) return; baddr = cursor_addr; prot = FA_IS_PROTECTED(get_field_attribute(baddr)); /* Skip to before this word, if in one now. */ if (!prot) { c = ea_buf[baddr].cc; while (!ea_buf[baddr].fa && c != EBC_space && c != EBC_null) { DEC_BA(baddr); if (baddr == cursor_addr) return; c = ea_buf[baddr].cc; } } baddr0 = baddr; /* Find the end of the preceding word. */ do { c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) { DEC_BA(baddr); prot = FA_IS_PROTECTED(get_field_attribute(baddr)); continue; } if (!prot && c != EBC_space && c != EBC_null) break; DEC_BA(baddr); } while (baddr != baddr0); if (baddr == baddr0) return; /* Go it its front. */ for (;;) { DEC_BA(baddr); c = ea_buf[baddr].cc; if (ea_buf[baddr].fa || c == EBC_space || c == EBC_null) { break; } } INC_BA(baddr); cursor_move(baddr); } /* * Cursor right 2 positions. */ void Right2_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; enum dbcs_state d; action_debug(Right2_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Right2"); status_reset(); } else { enq_ta(Right2_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ baddr = cursor_addr; INC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) INC_BA(baddr); INC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) INC_BA(baddr); cursor_move(baddr); } /* Find the next unprotected word, or -1 */ static int nu_word(int baddr) { int baddr0 = baddr; unsigned char c; Boolean prot; prot = FA_IS_PROTECTED(get_field_attribute(baddr)); do { c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) prot = FA_IS_PROTECTED(ea_buf[baddr].fa); else if (!prot && c != EBC_space && c != EBC_null) return baddr; INC_BA(baddr); } while (baddr != baddr0); return -1; } /* Find the next word in this field, or -1 */ static int nt_word(int baddr) { int baddr0 = baddr; unsigned char c; Boolean in_word = True; do { c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) return -1; if (in_word) { if (c == EBC_space || c == EBC_null) in_word = False; } else { if (c != EBC_space && c != EBC_null) return baddr; } INC_BA(baddr); } while (baddr != baddr0); return -1; } /* * Cursor to next unprotected word. */ void NextWord_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; unsigned char c; action_debug(NextWord_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(NextWord_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (!formatted) return; /* If not in an unprotected field, go to the next unprotected word. */ if (ea_buf[cursor_addr].fa || FA_IS_PROTECTED(get_field_attribute(cursor_addr))) { baddr = nu_word(cursor_addr); if (baddr != -1) cursor_move(baddr); return; } /* If there's another word in this field, go to it. */ baddr = nt_word(cursor_addr); if (baddr != -1) { cursor_move(baddr); return; } /* If in a word, go to just after its end. */ c = ea_buf[cursor_addr].cc; if (c != EBC_space && c != EBC_null) { baddr = cursor_addr; do { c = ea_buf[baddr].cc; if (c == EBC_space || c == EBC_null) { cursor_move(baddr); return; } else if (ea_buf[baddr].fa) { baddr = nu_word(baddr); if (baddr != -1) cursor_move(baddr); return; } INC_BA(baddr); } while (baddr != cursor_addr); } /* Otherwise, go to the next unprotected word. */ else { baddr = nu_word(cursor_addr); if (baddr != -1) cursor_move(baddr); } } /* * Cursor up 1 position. */ void Up_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; action_debug(Up_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Up"); status_reset(); } else { enq_ta(Up_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_up(); return; } #endif /*]*/ baddr = cursor_addr - COLS; if (baddr < 0) baddr = (cursor_addr + (ROWS * COLS)) - COLS; cursor_move(baddr); } /* * Cursor down 1 position. */ void Down_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; action_debug(Down_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Down"); status_reset(); } else { enq_ta(Down_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_down(); return; } #endif /*]*/ baddr = (cursor_addr + COLS) % (COLS * ROWS); cursor_move(baddr); } /* * Cursor to first field on next line or any lines after that. */ void Newline_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr, faddr; register unsigned char fa; action_debug(Newline_action, event, params, num_params); if (check_usage(Newline_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Newline_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_sendc('\n'); return; } #endif /*]*/ baddr = (cursor_addr + COLS) % (COLS * ROWS); /* down */ baddr = (baddr / COLS) * COLS; /* 1st col */ faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (faddr != baddr && !FA_IS_PROTECTED(fa)) cursor_move(baddr); else cursor_move(next_unprotected(baddr)); } /* * DUP key */ void Dup_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Dup_action, event, params, num_params); if (check_usage(Dup_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Dup_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (key_Character(EBC_dup, False, False, NULL)) cursor_move(next_unprotected(cursor_addr)); } /* * FM key */ void FieldMark_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(FieldMark_action, event, params, num_params); if (check_usage(FieldMark_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(FieldMark_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ (void) key_Character(EBC_fm, False, False, NULL); } /* * Vanilla AID keys. */ void Enter_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Enter_action, event, params, num_params); if (check_usage(Enter_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(Enter_action, CN, CN); else key_AID(AID_ENTER); } void SysReq_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(SysReq_action, event, params, num_params); if (check_usage(SysReq_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (IN_ANSI) return; #if defined(X3270_TN3270E) /*[*/ if (IN_E) { net_abort(); } else #endif /*]*/ { if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(SysReq_action, CN, CN); else key_AID(AID_SYSREQ); } } /* * Clear AID key */ void Clear_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Clear_action, event, params, num_params); if (check_usage(Clear_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; if (kybdlock && CONNECTED) { enq_ta(Clear_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_clear(); return; } #endif /*]*/ buffer_addr = 0; ctlr_clear(True); cursor_move(0); if (CONNECTED) key_AID(AID_CLEAR); } /* * Cursor Select key (light pen simulator). */ static void lightpen_select(int baddr) { int faddr; register unsigned char fa; int designator; #if defined(X3270_DBCS) /*[*/ int designator2; #endif /*]*/ faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (!FA_IS_SELECTABLE(fa)) { ring_bell(); return; } designator = faddr; INC_BA(designator); #if defined(X3270_DBCS) /*[*/ if (dbcs) { if (ea_buf[baddr].cs == CS_DBCS) { designator2 = designator; INC_BA(designator2); if ((ea_buf[designator].db != DBCS_LEFT && ea_buf[designator].db != DBCS_LEFT_WRAP) && (ea_buf[designator2].db != DBCS_RIGHT && ea_buf[designator2].db != DBCS_RIGHT_WRAP)) { ring_bell(); return; } if (ea_buf[designator].cc == 0x42 && ea_buf[designator2].cc == EBC_greater) { ctlr_add(designator2, EBC_question, CS_DBCS); mdt_clear(faddr); } else if (ea_buf[designator].cc == 0x42 && ea_buf[designator2].cc == EBC_question) { ctlr_add(designator2, EBC_greater, CS_DBCS); mdt_clear(faddr); } else if ((ea_buf[designator].cc == EBC_space && ea_buf[designator2].cc == EBC_space) || (ea_buf[designator].cc == EBC_null && ea_buf[designator2].cc == EBC_null)) { ctlr_add(designator2, EBC_greater, CS_DBCS); mdt_set(faddr); key_AID(AID_SELECT); } else if (ea_buf[designator].cc == 0x42 && ea_buf[designator2].cc == EBC_ampersand) { mdt_set(faddr); key_AID(AID_ENTER); } else { ring_bell(); } return; } } #endif /*]*/ switch (ea_buf[designator].cc) { case EBC_greater: /* > */ ctlr_add(designator, EBC_question, 0); /* change to ? */ mdt_clear(faddr); break; case EBC_question: /* ? */ ctlr_add(designator, EBC_greater, 0); /* change to > */ mdt_set(faddr); break; case EBC_space: /* space */ case EBC_null: /* null */ mdt_set(faddr); key_AID(AID_SELECT); break; case EBC_ampersand: /* & */ mdt_set(faddr); key_AID(AID_ENTER); break; default: ring_bell(); break; } } /* * Cursor Select key (light pen simulator) -- at the current cursor location. */ void CursorSelect_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(CursorSelect_action, event, params, num_params); if (check_usage(CursorSelect_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(CursorSelect_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ lightpen_select(cursor_addr); } #if defined(X3270_DISPLAY) /*[*/ /* * Cursor Select mouse action (light pen simulator). */ void MouseSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(MouseSelect_action, event, params, num_params); if (check_usage(MouseSelect_action, *num_params, 0, 0) < 0) return; if (w != *screen) return; reset_idle_timer(); if (kybdlock) return; #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ lightpen_select(mouse_baddr(w, event)); } #endif /*]*/ /* * Erase End Of Field Key. */ void EraseEOF_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; register unsigned char fa; enum dbcs_state d; enum dbcs_why why = DBCS_FIELD; action_debug(EraseEOF_action, event, params, num_params); if (check_usage(EraseEOF_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(EraseEOF_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ baddr = cursor_addr; fa = get_field_attribute(baddr); if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return; } if (formatted) { /* erase to next field attribute */ do { ctlr_add(baddr, EBC_null, 0); INC_BA(baddr); } while (!ea_buf[baddr].fa); mdt_set(cursor_addr); } else { /* erase to end of screen */ do { ctlr_add(baddr, EBC_null, 0); INC_BA(baddr); } while (baddr != 0); } /* If the cursor was in a DBCS subfield, re-create the SI. */ d = ctlr_lookleft_state(cursor_addr, &why); if (IS_DBCS(d) && why == DBCS_SUBFIELD) { if (d == DBCS_RIGHT) { baddr = cursor_addr; DEC_BA(baddr); ea_buf[baddr].cc = EBC_si; } else ea_buf[cursor_addr].cc = EBC_si; } (void) ctlr_dbcs_postprocess(); } /* * Erase all Input Key. */ void EraseInput_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr, sbaddr; unsigned char fa; Boolean f; action_debug(EraseInput_action, event, params, num_params); if (check_usage(EraseInput_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(EraseInput_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (formatted) { /* find first field attribute */ baddr = 0; do { if (ea_buf[baddr].fa) break; INC_BA(baddr); } while (baddr != 0); sbaddr = baddr; f = False; do { fa = ea_buf[baddr].fa; if (!FA_IS_PROTECTED(fa)) { mdt_clear(baddr); do { INC_BA(baddr); if (!f) { cursor_move(baddr); f = True; } if (!ea_buf[baddr].fa) { ctlr_add(baddr, EBC_null, 0); } } while (!ea_buf[baddr].fa); } else { /* skip protected */ do { INC_BA(baddr); } while (!ea_buf[baddr].fa); } } while (baddr != sbaddr); if (!f) cursor_move(0); } else { ctlr_clear(True); cursor_move(0); } } /* * Delete word key. Backspaces the cursor until it hits the front of a word, * deletes characters until it hits a blank or null, and deletes all of these * but the last. * * Which is to say, does a ^W. */ void DeleteWord_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; register unsigned char fa; action_debug(DeleteWord_action, event, params, num_params); if (check_usage(DeleteWord_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(DeleteWord_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_werase(); return; } #endif /*]*/ if (!formatted) return; baddr = cursor_addr; fa = get_field_attribute(baddr); /* Make sure we're on a modifiable field. */ if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return; } /* Backspace over any spaces to the left of the cursor. */ for (;;) { baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].fa) return; if (ea_buf[baddr].cc == EBC_null || ea_buf[baddr].cc == EBC_space) do_erase(); else break; } /* Backspace until the character to the left of the cursor is blank. */ for (;;) { baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].fa) return; if (ea_buf[baddr].cc == EBC_null || ea_buf[baddr].cc == EBC_space) break; else do_erase(); } } /* * Delete field key. Similar to EraseEOF, but it wipes out the entire field * rather than just to the right of the cursor, and it leaves the cursor at * the front of the field. * * Which is to say, does a ^U. */ void DeleteField_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; register unsigned char fa; action_debug(DeleteField_action, event, params, num_params); if (check_usage(DeleteField_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(DeleteField_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_kill(); return; } #endif /*]*/ if (!formatted) return; baddr = cursor_addr; fa = get_field_attribute(baddr); if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return; } while (!ea_buf[baddr].fa) DEC_BA(baddr); INC_BA(baddr); mdt_set(cursor_addr); cursor_move(baddr); while (!ea_buf[baddr].fa) { ctlr_add(baddr, EBC_null, 0); INC_BA(baddr); } } /* * Set insert mode key. */ void Insert_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Insert_action, event, params, num_params); if (check_usage(Insert_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Insert_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ insert_mode(True); } /* * Toggle insert mode key. */ void ToggleInsert_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(ToggleInsert_action, event, params, num_params); if (check_usage(ToggleInsert_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(ToggleInsert_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (insert) insert_mode(False); else insert_mode(True); } /* * Toggle reverse mode key. */ void ToggleReverse_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(ToggleReverse_action, event, params, num_params); if (check_usage(ToggleReverse_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(ToggleReverse_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ reverse_mode(!reverse); } /* * Move the cursor to the first blank after the last nonblank in the * field, or if the field is full, to the last character in the field. */ void FieldEnd_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int baddr, faddr; unsigned char fa, c; int last_nonblank = -1; action_debug(FieldEnd_action, event, params, num_params); if (check_usage(FieldEnd_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(FieldEnd_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (!formatted) return; baddr = cursor_addr; faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (faddr == baddr || FA_IS_PROTECTED(fa)) return; baddr = faddr; while (True) { INC_BA(baddr); c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) break; if (c != EBC_null && c != EBC_space) last_nonblank = baddr; } if (last_nonblank == -1) { baddr = faddr; INC_BA(baddr); } else { baddr = last_nonblank; INC_BA(baddr); if (ea_buf[baddr].fa) baddr = last_nonblank; } cursor_move(baddr); } /* * MoveCursor action. Depending on arguments, this is either a move to the * mouse cursor position, or to an absolute location. */ void MoveCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { register int baddr; int row, col; action_debug(MoveCursor_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (*num_params == 2) enq_ta(MoveCursor_action, params[0], params[1]); return; } switch (*num_params) { #if defined(X3270_DISPLAY) /*[*/ case 0: /* mouse click, presumably */ if (w != *screen) return; cursor_move(mouse_baddr(w, event)); break; #endif /*]*/ case 2: /* probably a macro call */ row = atoi(params[0]); col = atoi(params[1]); if (!IN_3270) { row--; col--; } if (row < 0) row = 0; if (col < 0) col = 0; baddr = ((row * COLS) + col) % (ROWS * COLS); cursor_move(baddr); break; default: /* couln't say */ popup_an_error("%s requires 0 or 2 arguments", action_name(MoveCursor_action)); cancel_if_idle_command(); break; } } #if defined(X3270_DBCS) && defined(X3270_DISPLAY) /*[*/ /* * Run a KeyPress through XIM. * Returns True if there is further processing to do, False otherwise. */ static Boolean xim_lookup(XKeyEvent *event) { static char *buf = NULL; static int buf_len = 0, rlen; KeySym k; Status status; extern XIC ic; int i; Boolean rv = False; #define BASE_BUFSIZE 50 if (ic == NULL) return True; if (buf == NULL) { buf_len = BASE_BUFSIZE; buf = Malloc(buf_len); } for (;;) { memset(buf, '\0', buf_len); rlen = XmbLookupString(ic, event, buf, buf_len - 1, &k, &status); if (status != XBufferOverflow) break; buf_len += BASE_BUFSIZE; buf = Realloc(buf, buf_len); } switch (status) { case XLookupNone: rv = False; break; case XLookupKeySym: rv = True; break; case XLookupChars: trace_event("%d XIM char%s:", rlen, (rlen != 1)? "s": ""); for (i = 0; i < rlen; i++) { trace_event(" %02x", buf[i] & 0xff); } trace_event("\n"); buf[rlen] = '\0'; key_ACharacter(buf, KT_STD, ia_cause, NULL); rv = False; break; case XLookupBoth: rv = True; break; } return rv; } #endif /*]*/ /* * Key action. */ void Key_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; KeySym k; enum keytype keytype; ucs4_t ucs4; action_debug(Key_action, event, params, num_params); reset_idle_timer(); for (i = 0; i < *num_params; i++) { char *s = params[i]; k = MyStringToKeysym(s, &keytype, &ucs4); if (k == NoSymbol && !ucs4) { popup_an_error("%s: Nonexistent or invalid KeySym: %s", action_name(Key_action), s); cancel_if_idle_command(); continue; } if (k & ~0xff) { /* * Can't pass symbolic KeySyms that aren't in the * range 0x01..0xff. */ popup_an_error("%s: Invalid KeySym: %s", action_name(Key_action), s); cancel_if_idle_command(); continue; } if (k != NoSymbol) key_UCharacter(k, keytype, IA_KEY, NULL); else key_UCharacter(ucs4, keytype, IA_KEY, NULL); } } /* * String action. */ void String_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; int len = 0; char *s; action_debug(String_action, event, params, num_params); reset_idle_timer(); /* Determine the total length of the strings. */ for (i = 0; i < *num_params; i++) len += strlen(params[i]); if (!len) return; /* Allocate a block of memory and copy them in. */ s = Malloc(len + 1); s[0] = '\0'; for (i = 0; i < *num_params; i++) { strcat(s, params[i]); } /* Set a pending string. */ ps_set(s, False); Free(s); } /* * HexString action. */ void HexString_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; int len = 0; char *s; char *t; action_debug(HexString_action, event, params, num_params); reset_idle_timer(); /* Determine the total length of the strings. */ for (i = 0; i < *num_params; i++) { t = params[i]; if (!strncmp(t, "0x", 2) || !strncmp(t, "0X", 2)) t += 2; len += strlen(t); } if (!len) return; /* Allocate a block of memory and copy them in. */ s = Malloc(len + 1); *s = '\0'; for (i = 0; i < *num_params; i++) { t = params[i]; if (!strncmp(t, "0x", 2) || !strncmp(t, "0X", 2)) t += 2; (void) strcat(s, t); } /* Set a pending string. */ ps_set(s, True); } /* * Dual-mode action for the "asciicircum" ("^") key: * If in ANSI mode, pass through untranslated. * If in 3270 mode, translate to "notsign". * This action is obsoleted by the use of 3270-mode and NVT-mode keymaps, but * is still defined here for backwards compatibility with old keymaps. */ void CircumNot_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(CircumNot_action, event, params, num_params); if (check_usage(CircumNot_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (IN_3270 && composing == NONE) key_UCharacter(0xac, KT_STD, IA_KEY, NULL); else key_UCharacter('^', KT_STD, IA_KEY, NULL); } /* PA key action for String actions */ static void do_pa(unsigned n) { if (n < 1 || n > PA_SZ) { popup_an_error("Unknown PA key %d", n); cancel_if_idle_command(); return; } if (kybdlock) { char nn[3]; (void) sprintf(nn, "%d", n); enq_ta(PA_action, nn, CN); return; } key_AID(pa_xlate[n-1]); } /* PF key action for String actions */ static void do_pf(unsigned n) { if (n < 1 || n > PF_SZ) { popup_an_error("Unknown PF key %d", n); cancel_if_idle_command(); return; } if (kybdlock) { char nn[3]; (void) sprintf(nn, "%d", n); enq_ta(PF_action, nn, CN); return; } key_AID(pf_xlate[n-1]); } /* * Set or clear the keyboard scroll lock. */ void kybd_scroll_lock(Boolean lock) { if (!IN_3270) return; if (lock) kybdlock_set(KL_SCROLLED, "kybd_scroll_lock"); else kybdlock_clr(KL_SCROLLED, "kybd_scroll_lock"); } /* * Move the cursor back within the legal paste area. * Returns a Boolean indicating success. */ static Boolean remargin(int lmargin) { Boolean ever = False; int baddr, b0 = 0; int faddr; unsigned char fa; baddr = cursor_addr; while (BA_TO_COL(baddr) < lmargin) { baddr = ROWCOL_TO_BA(BA_TO_ROW(baddr), lmargin); if (!ever) { b0 = baddr; ever = True; } faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (faddr == baddr || FA_IS_PROTECTED(fa)) { baddr = next_unprotected(baddr); if (baddr <= b0) return False; } } cursor_move(baddr); return True; } /* * Pretend that a sequence of keys was entered at the keyboard. * * "Pasting" means that the sequence came from the X clipboard. Returns are * ignored; newlines mean "move to beginning of next line"; tabs and formfeeds * become spaces. Backslashes are not special, but ASCII ESC characters are * used to signify 3270 Graphic Escapes. * * "Not pasting" means that the sequence is a login string specified in the * hosts file, or a parameter to the String action. Returns are "move to * beginning of next line"; newlines mean "Enter AID" and the termination of * processing the string. Backslashes are processed as in C. * * Returns the number of unprocessed characters. */ int emulate_uinput(ucs4_t *ws, int xlen, Boolean pasting) { enum { BASE, BACKSLASH, BACKX, BACKE, BACKP, BACKPA, BACKPF, OCTAL, HEX, EBC, XGE } state = BASE; int literal = 0; int nc = 0; enum iaction ia = pasting ? IA_PASTE : IA_STRING; int orig_addr = cursor_addr; int orig_col = BA_TO_COL(cursor_addr); Boolean skipped = False; ucs4_t c; /* * In the switch statements below, "break" generally means "consume * this character," while "continue" means "rescan this character." */ while (xlen) { /* * It isn't possible to unlock the keyboard from a string, * so if the keyboard is locked, it's fatal */ if (kybdlock) { trace_event(" keyboard locked, string dropped\n"); return 0; } if (pasting && IN_3270) { /* Check for cursor wrap to top of screen. */ if (cursor_addr < orig_addr) return xlen-1; /* wrapped */ /* Jump cursor over left margin. */ if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { if (!remargin(orig_col)) return xlen-1; skipped = True; } } c = *ws; switch (state) { case BASE: switch (c) { case '\b': action_internal(Left_action, ia, CN, CN); skipped = False; break; case '\f': if (pasting) { key_UCharacter(' ', KT_STD, ia, &skipped); } else { action_internal(Clear_action, ia, CN, CN); skipped = False; if (IN_3270) return xlen-1; } break; case '\n': if (pasting) { if (!skipped) action_internal(Newline_action, ia, CN, CN); skipped = False; } else { action_internal(Enter_action, ia, CN, CN); skipped = False; if (IN_3270) return xlen-1; } break; case '\r': if (!pasting) { action_internal(Newline_action, ia, CN, CN); skipped = False; } break; case '\t': action_internal(Tab_action, ia, CN, CN); skipped = False; break; case '\\': /* backslashes are NOT special when pasting */ if (!pasting) state = BACKSLASH; else key_UCharacter((unsigned char)c, KT_STD, ia, &skipped); break; case '\033': /* ESC is special only when pasting */ if (pasting) state = XGE; break; case '[': /* APL left bracket */ if (pasting && appres.apl_mode) key_UCharacter(XK_Yacute, KT_GE, ia, &skipped); else key_UCharacter((unsigned char)c, KT_STD, ia, &skipped); break; case ']': /* APL right bracket */ if (pasting && appres.apl_mode) key_UCharacter(XK_diaeresis, KT_GE, ia, &skipped); else key_UCharacter((unsigned char)c, KT_STD, ia, &skipped); break; case UPRIV_fm: /* private-use FM */ if (pasting) key_Character(EBC_fm, False, True, &skipped); break; case UPRIV_dup: /* private-use DUP */ if (pasting) key_Character(EBC_dup, False, True, &skipped); break; case UPRIV_eo: /* private-use EO */ if (pasting) key_Character(EBC_eo, False, True, &skipped); break; case UPRIV_sub: /* private-use SUB */ if (pasting) key_Character(EBC_sub, False, True, &skipped); break; default: if (pasting && (c >= UPRIV_GE_00 && c <= UPRIV_GE_ff)) key_Character(c - UPRIV_GE_00, KT_GE, ia, &skipped); else key_UCharacter(c, KT_STD, ia, &skipped); break; } break; case BACKSLASH: /* last character was a backslash */ switch (c) { case 'a': popup_an_error("%s: Bell not supported", action_name(String_action)); cancel_if_idle_command(); state = BASE; break; case 'b': action_internal(Left_action, ia, CN, CN); skipped = False; state = BASE; break; case 'f': action_internal(Clear_action, ia, CN, CN); skipped = False; state = BASE; if (IN_3270) return xlen-1; else break; case 'n': action_internal(Enter_action, ia, CN, CN); skipped = False; state = BASE; if (IN_3270) return xlen-1; else break; case 'p': state = BACKP; break; case 'r': action_internal(Newline_action, ia, CN, CN); skipped = False; state = BASE; break; case 't': action_internal(Tab_action, ia, CN, CN); skipped = False; state = BASE; break; case 'T': action_internal(BackTab_action, ia, CN, CN); skipped = False; state = BASE; break; case 'v': popup_an_error("%s: Vertical tab not supported", action_name(String_action)); cancel_if_idle_command(); state = BASE; break; case 'u': case 'x': state = BACKX; break; case 'e': state = BACKE; break; case '\\': key_UCharacter((unsigned char) c, KT_STD, ia, &skipped); state = BASE; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': state = OCTAL; literal = 0; nc = 0; continue; default: state = BASE; continue; } break; case BACKP: /* last two characters were "\p" */ switch (c) { case 'a': literal = 0; nc = 0; state = BACKPA; break; case 'f': literal = 0; nc = 0; state = BACKPF; break; default: popup_an_error("%s: Unknown character " "after \\p", action_name(String_action)); cancel_if_idle_command(); state = BASE; break; } break; case BACKPF: /* last three characters were "\pf" */ if (nc < 2 && isdigit(c)) { literal = (literal * 10) + (c - '0'); nc++; } else if (!nc) { popup_an_error("%s: Unknown character " "after \\pf", action_name(String_action)); cancel_if_idle_command(); state = BASE; } else { do_pf(literal); skipped = False; if (IN_3270) { return xlen; } state = BASE; continue; } break; case BACKPA: /* last three characters were "\pa" */ if (nc < 1 && isdigit(c)) { literal = (literal * 10) + (c - '0'); nc++; } else if (!nc) { popup_an_error("%s: Unknown character " "after \\pa", action_name(String_action)); cancel_if_idle_command(); state = BASE; } else { do_pa(literal); skipped = False; if (IN_3270) return xlen-1; state = BASE; continue; } break; case BACKX: /* last two characters were "\x" or "\u" */ if (isxdigit(c)) { state = HEX; literal = 0; nc = 0; continue; } else { popup_an_error("%s: Missing hex digits after \\x", action_name(String_action)); cancel_if_idle_command(); state = BASE; continue; } case BACKE: /* last two characters were "\e" */ if (isxdigit(c)) { state = EBC; literal = 0; nc = 0; continue; } else { popup_an_error("%s: Missing hex digits after \\e", action_name(String_action)); cancel_if_idle_command(); state = BASE; continue; } case OCTAL: /* have seen \ and one or more octal digits */ if (nc < 3 && isdigit(c) && c < '8') { literal = (literal * 8) + FROM_HEX(c); nc++; break; } else { key_UCharacter((unsigned char) literal, KT_STD, ia, &skipped); state = BASE; continue; } case HEX: /* have seen \x and one or more hex digits */ if (nc < 4 && isxdigit(c)) { literal = (literal * 16) + FROM_HEX(c); nc++; break; } else { key_UCharacter((unsigned char) literal, KT_STD, ia, &skipped); state = BASE; continue; } case EBC: /* have seen \e and one or more hex digits */ if (nc < 4 && isxdigit(c)) { literal = (literal * 16) + FROM_HEX(c); nc++; break; } else { trace_event(" %s -> Key(X'%02X')\n", ia_name[(int) ia], literal); if (!(literal & ~0xff)) key_Character((unsigned char) literal, False, True, &skipped); else { #if defined(X3270_DBCS) /*[*/ unsigned char code[2]; code[0] = (literal >> 8) & 0xff; code[1] = literal & 0xff; key_WCharacter(code, &skipped); #else /*][*/ popup_an_error("%s: EBCDIC code > 255", action_name(String_action)); cancel_if_idle_command(); #endif /*]*/ } state = BASE; continue; } case XGE: /* have seen ESC */ switch (c) { case ';': /* FM */ key_Character(EBC_fm, False, True, &skipped); break; case '*': /* DUP */ key_Character(EBC_dup, False, True, &skipped); break; default: key_UCharacter((unsigned char) c, KT_GE, ia, &skipped); break; } state = BASE; break; } ws++; xlen--; } switch (state) { case BASE: if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { (void) remargin(orig_col); } break; case OCTAL: case HEX: key_UCharacter((unsigned char) literal, KT_STD, ia, &skipped); state = BASE; if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { (void) remargin(orig_col); } break; case EBC: /* XXX: line below added after 3.3.7p7 */ trace_event(" %s -> Key(X'%02X')\n", ia_name[(int) ia], literal); key_Character((unsigned char) literal, False, True, &skipped); state = BASE; if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { (void) remargin(orig_col); } break; case BACKPF: if (nc > 0) { do_pf(literal); state = BASE; } break; case BACKPA: if (nc > 0) { do_pa(literal); state = BASE; } break; default: popup_an_error("%s: Missing data after \\", action_name(String_action)); cancel_if_idle_command(); break; } return xlen; } /* Multibyte version of emulate_uinput. */ int emulate_input(char *s, int len, Boolean pasting) { static ucs4_t *w_ibuf = NULL; static size_t w_ibuf_len = 0; int xlen; /* Convert from a multi-byte string to a Unicode string. */ if ((size_t)(len + 1) > w_ibuf_len) { w_ibuf_len = len + 1; w_ibuf = (ucs4_t *)Realloc(w_ibuf, w_ibuf_len * sizeof(ucs4_t)); } xlen = multibyte_to_unicode_string(s, len, w_ibuf, w_ibuf_len); if (xlen < 0) { return 0; /* failed */ } /* Process it as Unicode. */ return emulate_uinput(w_ibuf, xlen, pasting); } /* * Pretend that a sequence of hexadecimal characters was entered at the * keyboard. The input is a sequence of hexadecimal bytes, 2 characters * per byte. If connected in ANSI mode, these are treated as ASCII * characters; if in 3270 mode, they are considered EBCDIC. * * Graphic Escapes are handled as \E. */ void hex_input(char *s) { char *t; Boolean escaped; #if defined(X3270_ANSI) /*[*/ unsigned char *xbuf = (unsigned char *)NULL; unsigned char *tbuf = (unsigned char *)NULL; int nbytes = 0; #endif /*]*/ /* Validate the string. */ if (strlen(s) % 2) { popup_an_error("%s: Odd number of characters in specification", action_name(HexString_action)); cancel_if_idle_command(); return; } t = s; escaped = False; while (*t) { if (isxdigit(*t) && isxdigit(*(t + 1))) { escaped = False; #if defined(X3270_ANSI) /*[*/ nbytes++; #endif /*]*/ } else if (!strncmp(t, "\\E", 2) || !strncmp(t, "\\e", 2)) { if (escaped) { popup_an_error("%s: Double \\E", action_name(HexString_action)); cancel_if_idle_command(); return; } if (!IN_3270) { popup_an_error("%s: \\E in ANSI mode", action_name(HexString_action)); cancel_if_idle_command(); return; } escaped = True; } else { popup_an_error("%s: Illegal character in specification", action_name(HexString_action)); cancel_if_idle_command(); return; } t += 2; } if (escaped) { popup_an_error("%s: Nothing follows \\E", action_name(HexString_action)); cancel_if_idle_command(); return; } #if defined(X3270_ANSI) /*[*/ /* Allocate a temporary buffer. */ if (!IN_3270 && nbytes) tbuf = xbuf = (unsigned char *)Malloc(nbytes); #endif /*]*/ /* Pump it in. */ t = s; escaped = False; while (*t) { if (isxdigit(*t) && isxdigit(*(t + 1))) { unsigned c; c = (FROM_HEX(*t) * 16) + FROM_HEX(*(t + 1)); if (IN_3270) key_Character(c, escaped, True, NULL); #if defined(X3270_ANSI) /*[*/ else *tbuf++ = (unsigned char)c; #endif /*]*/ escaped = False; } else if (!strncmp(t, "\\E", 2) || !strncmp(t, "\\e", 2)) { escaped = True; } t += 2; } #if defined(X3270_ANSI) /*[*/ if (!IN_3270 && nbytes) { net_hexansi_out(xbuf, nbytes); Free(xbuf); } #endif /*]*/ } void ignore_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(ignore_action, event, params, num_params); reset_idle_timer(); } #if defined(X3270_FT) /*[*/ /* * Set up the cursor and input field for command input. * Returns the length of the input field, or 0 if there is no field * to set up. */ int kybd_prime(void) { int baddr; register unsigned char fa; int len = 0; /* * No point in trying if the screen isn't formatted, the keyboard * is locked, or we aren't in 3270 mode. */ if (!formatted || kybdlock || !IN_3270) return 0; fa = get_field_attribute(cursor_addr); if (ea_buf[cursor_addr].fa || FA_IS_PROTECTED(fa)) { /* * The cursor is not in an unprotected field. Find the * next one. */ baddr = next_unprotected(cursor_addr); /* If there isn't any, give up. */ if (!baddr) return 0; /* Move the cursor there. */ } else { /* Already in an unprotected field. Find its start. */ baddr = cursor_addr; while (!ea_buf[baddr].fa) { DEC_BA(baddr); } INC_BA(baddr); } /* Move the cursor to the beginning of the field. */ cursor_move(baddr); /* Erase it. */ while (!ea_buf[baddr].fa) { ctlr_add(baddr, 0, 0); len++; INC_BA(baddr); } /* Return the field length. */ return len; } #endif /*]*/ /* * Translate a keysym name to a keysym, including APL and extended * characters. */ static KeySym MyStringToKeysym(char *s, enum keytype *keytypep, ucs4_t *ucs4) { KeySym k; int consumed; enum me_fail error; /* No UCS-4 yet. */ *ucs4 = 0L; #if defined(X3270_APL) /*[*/ /* Look for my contrived APL symbols. */ if (!strncmp(s, "apl_", 4)) { int is_ge; k = APLStringToKeysym(s, &is_ge); if (is_ge) *keytypep = KT_GE; else *keytypep = KT_STD; return k; } else #endif /*]*/ { /* Look for a standard X11 keysym. */ k = StringToKeysym(s); *keytypep = KT_STD; if (k != NoSymbol) return k; } /* Look for "euro". */ if (!strcasecmp(s, "euro")) { *ucs4 = 0x20ac; return NoSymbol; } /* Look for U+nnnn of 0xXXXX. */ if (!strncasecmp(s, "U+", 2) || !strncasecmp(s, "0x", 2)) { *ucs4 = strtoul(s + 2, NULL, 16); return NoSymbol; } /* Look for a valid local multibyte character. */ *ucs4 = multibyte_to_unicode(s, strlen(s), &consumed, &error); if ((size_t)consumed != strlen(s)) *ucs4 = 0; return NoSymbol; } #if defined(X3270_DISPLAY) /*[*/ /* * X-dependent code starts here. */ /* * Translate a keymap (from an XQueryKeymap or a KeymapNotify event) into * a bitmap of Shift, Meta or Alt keys pressed. */ #define key_is_down(kc, bitmap) (kc && ((bitmap)[(kc)/8] & (1<<((kc)%8)))) int state_from_keymap(char keymap[32]) { static Boolean initted = False; static KeyCode kc_Shift_L, kc_Shift_R; static KeyCode kc_Meta_L, kc_Meta_R; static KeyCode kc_Alt_L, kc_Alt_R; int pseudo_state = 0; if (!initted) { kc_Shift_L = XKeysymToKeycode(display, XK_Shift_L); kc_Shift_R = XKeysymToKeycode(display, XK_Shift_R); kc_Meta_L = XKeysymToKeycode(display, XK_Meta_L); kc_Meta_R = XKeysymToKeycode(display, XK_Meta_R); kc_Alt_L = XKeysymToKeycode(display, XK_Alt_L); kc_Alt_R = XKeysymToKeycode(display, XK_Alt_R); initted = True; } if (key_is_down(kc_Shift_L, keymap) || key_is_down(kc_Shift_R, keymap)) pseudo_state |= ShiftKeyDown; if (key_is_down(kc_Meta_L, keymap) || key_is_down(kc_Meta_R, keymap)) pseudo_state |= MetaKeyDown; if (key_is_down(kc_Alt_L, keymap) || key_is_down(kc_Alt_R, keymap)) pseudo_state |= AltKeyDown; return pseudo_state; } #undef key_is_down /* * Process shift keyboard events. The code has to look for the raw Shift keys, * rather than using the handy "state" field in the event structure. This is * because the event state is the state _before_ the key was pressed or * released. This isn't enough information to distinguish between "left * shift released" and "left shift released, right shift still held down" * events, for example. * * This function is also called as part of Focus event processing. */ void PA_Shift_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { char keys[32]; #if defined(INTERNAL_ACTION_DEBUG) /*[*/ action_debug(PA_Shift_action, event, params, num_params); #endif /*]*/ XQueryKeymap(display, keys); shift_event(state_from_keymap(keys)); } #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ static Boolean build_composites(void) { char *c, *c0, *c1; char *ln; char ksname[3][64]; char junk[2]; KeySym k[3]; enum keytype a[3]; int i; struct composite *cp; if (appres.compose_map == CN) { popup_an_error("%s: No %s defined", action_name(Compose_action), ResComposeMap); return False; } c0 = get_fresource("%s.%s", ResComposeMap, appres.compose_map); if (c0 == CN) { popup_an_error("%s: Cannot find %s \"%s\"", action_name(Compose_action), ResComposeMap, appres.compose_map); return False; } c1 = c = NewString(c0); /* will be modified by strtok */ while ((ln = strtok(c, "\n"))) { Boolean okay = True; c = NULL; if (sscanf(ln, " %63[^+ \t] + %63[^= \t] =%63s%1s", ksname[0], ksname[1], ksname[2], junk) != 3) { popup_an_error("%s: Invalid syntax: %s", action_name(Compose_action), ln); continue; } for (i = 0; i < 3; i++) { ucs4_t ucs4; k[i] = MyStringToKeysym(ksname[i], &a[i], &ucs4); if (k[i] == NoSymbol) { /* For now, ignore UCS4. XXX: Fix this. */ popup_an_error("%s: Invalid KeySym: \"%s\"", action_name(Compose_action), ksname[i]); okay = False; break; } } if (!okay) continue; composites = (struct composite *) Realloc((char *)composites, (n_composites + 1) * sizeof(struct composite)); cp = composites + n_composites; cp->k1.keysym = k[0]; cp->k1.keytype = a[0]; cp->k2.keysym = k[1]; cp->k2.keytype = a[1]; cp->translation.keysym = k[2]; cp->translation.keytype = a[2]; n_composites++; } Free(c1); return True; } /* * Called by the toolkit when the "Compose" key is pressed. "Compose" is * implemented by pressing and releasing three keys: "Compose" and two * data keys. For example, "Compose" "s" "s" gives the German "ssharp" * character, and "Compose" "C", "," gives a capital "C" with a cedilla * (symbol Ccedilla). * * The mechanism breaks down a little when the user presses "Compose" and * then a non-data key. Oh well. */ void Compose_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Compose_action, event, params, num_params); if (check_usage(Compose_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (!composites && !build_composites()) return; if (composing == NONE) { composing = COMPOSE; status_compose(True, 0, KT_STD); } } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* * Called by the toolkit for any key without special actions. */ void Default_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { XKeyEvent *kevent = (XKeyEvent *)event; char buf[32]; KeySym ks; int ll; action_debug(Default_action, event, params, num_params); if (check_usage(Default_action, *num_params, 0, 0) < 0) return; switch (event->type) { case KeyPress: #if defined(X3270_DBCS) /*[*/ if (!xim_lookup((XKeyEvent *)event)) return; #endif /*]*/ ll = XLookupString(kevent, buf, 32, &ks, (XComposeStatus *) 0); buf[ll] = '\0'; if (ll > 1) { key_ACharacter(buf, KT_STD, IA_DEFAULT, NULL); return; } if (ll == 1) { /* Remap certain control characters. */ if (!IN_ANSI) switch (buf[0]) { case '\t': action_internal(Tab_action, IA_DEFAULT, CN, CN); break; case '\177': action_internal(Delete_action, IA_DEFAULT, CN, CN); break; case '\b': action_internal(Erase_action, IA_DEFAULT, CN, CN); break; case '\r': action_internal(Enter_action, IA_DEFAULT, CN, CN); break; case '\n': action_internal(Newline_action, IA_DEFAULT, CN, CN); break; default: key_ACharacter(buf, KT_STD, IA_DEFAULT, NULL); break; } else { key_ACharacter(buf, KT_STD, IA_DEFAULT, NULL); } return; } /* Pick some other reasonable defaults. */ switch (ks) { case XK_Up: action_internal(Up_action, IA_DEFAULT, CN, CN); break; case XK_Down: action_internal(Down_action, IA_DEFAULT, CN, CN); break; case XK_Left: action_internal(Left_action, IA_DEFAULT, CN, CN); break; case XK_Right: action_internal(Right_action, IA_DEFAULT, CN, CN); break; case XK_Insert: #if defined(XK_KP_Insert) /*[*/ case XK_KP_Insert: #endif /*]*/ action_internal(Insert_action, IA_DEFAULT, CN, CN); break; case XK_Delete: action_internal(Delete_action, IA_DEFAULT, CN, CN); break; case XK_Home: action_internal(Home_action, IA_DEFAULT, CN, CN); break; case XK_Tab: action_internal(Tab_action, IA_DEFAULT, CN, CN); break; #if defined(XK_ISO_Left_Tab) /*[*/ case XK_ISO_Left_Tab: action_internal(BackTab_action, IA_DEFAULT, CN, CN); break; #endif /*]*/ case XK_Clear: action_internal(Clear_action, IA_DEFAULT, CN, CN); break; case XK_Sys_Req: action_internal(SysReq_action, IA_DEFAULT, CN, CN); break; #if defined(XK_EuroSign) /*[*/ case XK_EuroSign: action_internal(Key_action, IA_DEFAULT, "currency", CN); break; #endif /*]*/ #if defined(XK_3270_Duplicate) /*[*/ /* Funky 3270 keysyms. */ case XK_3270_Duplicate: action_internal(Dup_action, IA_DEFAULT, CN, CN); break; case XK_3270_FieldMark: action_internal(FieldMark_action, IA_DEFAULT, CN, CN); break; case XK_3270_Right2: action_internal(Right2_action, IA_DEFAULT, CN, CN); break; case XK_3270_Left2: action_internal(Left2_action, IA_DEFAULT, CN, CN); break; case XK_3270_BackTab: action_internal(BackTab_action, IA_DEFAULT, CN, CN); break; case XK_3270_EraseEOF: action_internal(EraseEOF_action, IA_DEFAULT, CN, CN); break; case XK_3270_EraseInput: action_internal(EraseInput_action, IA_DEFAULT, CN, CN); break; case XK_3270_Reset: action_internal(Reset_action, IA_DEFAULT, CN, CN); break; case XK_3270_PA1: action_internal(PA_action, IA_DEFAULT, "1", CN); break; case XK_3270_PA2: action_internal(PA_action, IA_DEFAULT, "2", CN); break; case XK_3270_PA3: action_internal(PA_action, IA_DEFAULT, "3", CN); break; case XK_3270_Attn: action_internal(Attn_action, IA_DEFAULT, CN, CN); break; case XK_3270_AltCursor: action_internal(AltCursor_action, IA_DEFAULT, CN, CN); break; case XK_3270_CursorSelect: action_internal(CursorSelect_action, IA_DEFAULT, CN, CN); break; case XK_3270_Enter: action_internal(Enter_action, IA_DEFAULT, CN, CN); break; #endif /*]*/ #if defined(X3270_APL) /*[*/ /* Funky APL keysyms. */ case XK_downcaret: action_internal(Key_action, IA_DEFAULT, "apl_downcaret", CN); break; case XK_upcaret: action_internal(Key_action, IA_DEFAULT, "apl_upcaret", CN); break; case XK_overbar: action_internal(Key_action, IA_DEFAULT, "apl_overbar", CN); break; case XK_downtack: action_internal(Key_action, IA_DEFAULT, "apl_downtack", CN); break; case XK_upshoe: action_internal(Key_action, IA_DEFAULT, "apl_upshoe", CN); break; case XK_downstile: action_internal(Key_action, IA_DEFAULT, "apl_downstile", CN); break; case XK_underbar: action_internal(Key_action, IA_DEFAULT, "apl_underbar", CN); break; case XK_jot: action_internal(Key_action, IA_DEFAULT, "apl_jot", CN); break; case XK_quad: action_internal(Key_action, IA_DEFAULT, "apl_quad", CN); break; case XK_uptack: action_internal(Key_action, IA_DEFAULT, "apl_uptack", CN); break; case XK_circle: action_internal(Key_action, IA_DEFAULT, "apl_circle", CN); break; case XK_upstile: action_internal(Key_action, IA_DEFAULT, "apl_upstile", CN); break; case XK_downshoe: action_internal(Key_action, IA_DEFAULT, "apl_downshoe", CN); break; case XK_rightshoe: action_internal(Key_action, IA_DEFAULT, "apl_rightshoe", CN); break; case XK_leftshoe: action_internal(Key_action, IA_DEFAULT, "apl_leftshoe", CN); break; case XK_lefttack: action_internal(Key_action, IA_DEFAULT, "apl_lefttack", CN); break; case XK_righttack: action_internal(Key_action, IA_DEFAULT, "apl_righttack", CN); break; #endif /*]*/ default: if (ks >= XK_F1 && ks <= XK_F24) { (void) sprintf(buf, "%ld", ks - XK_F1 + 1); action_internal(PF_action, IA_DEFAULT, buf, CN); } else { ucs4_t ucs4; ucs4 = keysym2ucs(ks); if (ucs4 != (ucs4_t)-1) { key_UCharacter(ucs4, KT_STD, IA_KEY, NULL); } else { trace_event( " %s: dropped (unknown keysym)\n", action_name(Default_action)); } } break; } break; case ButtonPress: case ButtonRelease: trace_event(" %s: dropped (no action configured)\n", action_name(Default_action)); break; default: trace_event(" %s: dropped (unknown event type)\n", action_name(Default_action)); break; } } /* * Set or clear a temporary keymap. * * TemporaryKeymap(x) toggle keymap "x" (add "x" to the keymap, or if * "x" was already added, remove it) * TemporaryKeymap() removes the previous keymap, if any * TemporaryKeymap(None) removes the previous keymap, if any */ void TemporaryKeymap_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(TemporaryKeymap_action, event, params, num_params); reset_idle_timer(); if (check_usage(TemporaryKeymap_action, *num_params, 0, 1) < 0) return; if (*num_params == 0 || !strcmp(params[0], "None")) { (void) temporary_keymap(CN); return; } if (temporary_keymap(params[0]) < 0) { popup_an_error("%s: Can't find %s %s", action_name(TemporaryKeymap_action), ResKeymap, params[0]); cancel_if_idle_command(); } } #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/telnet.c0000644000175000017500000023661011254565704015734 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, * GA 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC * nor their contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES AND * GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, * DON RUSSELL, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * telnet.c * This module initializes and manages a telnet socket to * the given IBM host. */ #include "globals.h" #if defined(_WIN32) /*[*/ #include #include #else /*][*/ #include #include #include #endif /*]*/ #define TELCMDS 1 #define TELOPTS 1 #include "arpa_telnet.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #if defined(HAVE_LIBSSL) /*[*/ #include #include #endif /*]*/ #include "tn3270e.h" #include "3270ds.h" #include "appres.h" #include "ansic.h" #include "ctlrc.h" #include "hostc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "proxyc.h" #include "resolverc.h" #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include "w3miscc.h" #include "xioc.h" #if !defined(TELOPT_NAWS) /*[*/ #define TELOPT_NAWS 31 #endif /*]*/ #if !defined(TELOPT_STARTTLS) /*[*/ #define TELOPT_STARTTLS 46 #endif /*]*/ #define TLS_FOLLOWS 1 #define BUFSZ 16384 #define TRACELINE 72 #define N_OPTS 256 /* Globals */ char *hostname = CN; time_t ns_time; int ns_brcvd; int ns_rrcvd; int ns_bsent; int ns_rsent; unsigned char *obuf; /* 3270 output buffer */ unsigned char *obptr = (unsigned char *) NULL; int linemode = 1; #if defined(LOCAL_PROCESS) /*[*/ Boolean local_process = False; #endif /*]*/ char *termtype; /* Externals */ extern struct timeval ds_ts; /* Statics */ static int sock = -1; /* active socket */ #if defined(_WIN32) /*[*/ static HANDLE sock_handle = NULL; #endif /*]*/ static unsigned char myopts[N_OPTS], hisopts[N_OPTS]; /* telnet option flags */ static unsigned char *ibuf = (unsigned char *) NULL; /* 3270 input buffer */ static unsigned char *ibptr; static int ibuf_size = 0; /* size of ibuf */ static unsigned char *obuf_base = (unsigned char *)NULL; static int obuf_size = 0; static unsigned char *netrbuf = (unsigned char *)NULL; /* network input buffer */ static unsigned char *sbbuf = (unsigned char *)NULL; /* telnet sub-option buffer */ static unsigned char *sbptr; static unsigned char telnet_state; static int syncing; #if !defined(_WIN32) /*[*/ static unsigned long output_id = 0L; #endif /*]*/ static char ttype_tmpval[13]; #if defined(X3270_TN3270E) /*[*/ static unsigned long e_funcs; /* negotiated TN3270E functions */ #define E_OPT(n) (1 << (n)) static unsigned short e_xmit_seq; /* transmit sequence number */ static int response_required; #endif /*]*/ #if defined(X3270_ANSI) /*[*/ static int ansi_data = 0; static unsigned char *lbuf = (unsigned char *)NULL; /* line-mode input buffer */ static unsigned char *lbptr; static int lnext = 0; static int backslashed = 0; static int t_valid = 0; static char vintr; static char vquit; static char verase; static char vkill; static char veof; static char vwerase; static char vrprnt; static char vlnext; #endif /*]*/ static int tn3270e_negotiated = 0; static enum { E_NONE, E_3270, E_NVT, E_SSCP } tn3270e_submode = E_NONE; static int tn3270e_bound = 0; static unsigned char *bind_image = NULL; static int bind_image_len = 0; static char *plu_name = NULL; static int maxru_sec = 0; static int maxru_pri = 0; static int bind_rd = 0; static int bind_cd = 0; static int bind_ra = 0; static int bind_ca = 0; static char **lus = (char **)NULL; static char **curr_lu = (char **)NULL; static char *try_lu = CN; static int proxy_type = 0; static char *proxy_host = CN; static char *proxy_portname = CN; static unsigned short proxy_port = 0; static int telnet_fsm(unsigned char c); static void net_rawout(unsigned const char *buf, int len); static void check_in3270(void); static void store3270in(unsigned char c); static void check_linemode(Boolean init); static int non_blocking(Boolean on); static void net_connected(void); #if defined(X3270_TN3270E) /*[*/ static int tn3270e_negotiate(void); #endif /*]*/ static int process_eor(void); #if defined(X3270_TN3270E) /*[*/ #if defined(X3270_TRACE) /*[*/ static const char *tn3270e_function_names(const unsigned char *, int); #endif /*]*/ static void tn3270e_subneg_send(unsigned char, unsigned long); static unsigned long tn3270e_fdecode(const unsigned char *, int); static void tn3270e_ack(void); static void tn3270e_nak(enum pds); #endif /*]*/ #if defined(X3270_ANSI) /*[*/ static void do_data(char c); static void do_intr(char c); static void do_quit(char c); static void do_cerase(char c); static void do_werase(char c); static void do_kill(char c); static void do_rprnt(char c); static void do_eof(char c); static void do_eol(char c); static void do_lnext(char c); static char parse_ctlchar(char *s); static void cooked_init(void); #endif /*]*/ #if defined(X3270_TRACE) /*[*/ static const char *cmd(int c); static const char *opt(unsigned char c); static const char *nnn(int c); #else /*][*/ #if defined(__GNUC__) /*[*/ #else /*][*/ #endif /*]*/ #define cmd(x) 0 #define opt(x) 0 #define nnn(x) 0 #endif /*]*/ /* telnet states */ #define TNS_DATA 0 /* receiving data */ #define TNS_IAC 1 /* got an IAC */ #define TNS_WILL 2 /* got an IAC WILL */ #define TNS_WONT 3 /* got an IAC WONT */ #define TNS_DO 4 /* got an IAC DO */ #define TNS_DONT 5 /* got an IAC DONT */ #define TNS_SB 6 /* got an IAC SB */ #define TNS_SB_IAC 7 /* got an IAC after an IAC SB */ /* telnet predefined messages */ static unsigned char do_opt[] = { IAC, DO, '_' }; static unsigned char dont_opt[] = { IAC, DONT, '_' }; static unsigned char will_opt[] = { IAC, WILL, '_' }; static unsigned char wont_opt[] = { IAC, WONT, '_' }; #if defined(X3270_TN3270E) /*[*/ static unsigned char functions_req[] = { IAC, SB, TELOPT_TN3270E, TN3270E_OP_FUNCTIONS }; #endif /*]*/ #if defined(X3270_TRACE) /*[*/ static const char *telquals[2] = { "IS", "SEND" }; #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ #if defined(X3270_TRACE) /*[*/ static const char *reason_code[8] = { "CONN-PARTNER", "DEVICE-IN-USE", "INV-ASSOCIATE", "INV-NAME", "INV-DEVICE-TYPE", "TYPE-NAME-ERROR", "UNKNOWN-ERROR", "UNSUPPORTED-REQ" }; #define rsn(n) (((n) <= TN3270E_REASON_UNSUPPORTED_REQ) ? \ reason_code[(n)] : "??") #endif /*]*/ static const char *function_name[5] = { "BIND-IMAGE", "DATA-STREAM-CTL", "RESPONSES", "SCS-CTL-CODES", "SYSREQ" }; #define fnn(n) (((n) <= TN3270E_FUNC_SYSREQ) ? \ function_name[(n)] : "??") #if defined(X3270_TRACE) /*[*/ static const char *data_type[9] = { "3270-DATA", "SCS-DATA", "RESPONSE", "BIND-IMAGE", "UNBIND", "NVT-DATA", "REQUEST", "SSCP-LU-DATA", "PRINT-EOJ" }; #define e_dt(n) (((n) <= TN3270E_DT_PRINT_EOJ) ? \ data_type[(n)] : "??") static const char *req_flag[1] = { " ERR-COND-CLEARED" }; #define e_rq(fn, n) (((fn) == TN3270E_DT_REQUEST) ? \ (((n) <= TN3270E_RQF_ERR_COND_CLEARED) ? \ req_flag[(n)] : " ??") : "") static const char *hrsp_flag[3] = { "NO-RESPONSE", "ERROR-RESPONSE", "ALWAYS-RESPONSE" }; #define e_hrsp(n) (((n) <= TN3270E_RSF_ALWAYS_RESPONSE) ? \ hrsp_flag[(n)] : "??") static const char *trsp_flag[2] = { "POSITIVE-RESPONSE", "NEGATIVE-RESPONSE" }; #define e_trsp(n) (((n) <= TN3270E_RSF_NEGATIVE_RESPONSE) ? \ trsp_flag[(n)] : "??") #define e_rsp(fn, n) (((fn) == TN3270E_DT_RESPONSE) ? e_trsp(n) : e_hrsp(n)) #endif /*]*/ #endif /*]*/ #if defined(C3270) && defined(C3270_80_132) /*[*/ #define XMIT_ROWS ((appres.altscreen != CN)? MODEL_2_ROWS: maxROWS) #define XMIT_COLS ((appres.altscreen != CN)? MODEL_2_COLS: maxCOLS) #else /*][*/ #define XMIT_ROWS maxROWS #define XMIT_COLS maxCOLS #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ Boolean secure_connection = False; static SSL_CTX *ssl_ctx; static SSL *ssl_con; static Boolean need_tls_follows = False; static void ssl_init(void); #if OPENSSL_VERSION_NUMBER >= 0x00907000L /*[*/ #define INFO_CONST const #else /*][*/ #define INFO_CONST #endif /*]*/ static void client_info_callback(INFO_CONST SSL *s, int where, int ret); static void continue_tls(unsigned char *sbbuf, int len); #endif /*]*/ #if !defined(_WIN32) /*[*/ static void output_possible(void); #endif /*]*/ #if defined(_WIN32) /*[*/ #define socket_errno() WSAGetLastError() #define SE_EWOULDBLOCK WSAEWOULDBLOCK #define SE_ECONNRESET WSAECONNRESET #define SE_EINTR WSAEINTR #define SE_EAGAIN WSAEINPROGRESS #define SE_EPIPE WSAECONNABORTED #define SE_EINPROGRESS WSAEINPROGRESS #define SOCK_CLOSE(s) closesocket(s) #define SOCK_IOCTL(s, f, v) ioctlsocket(s, f, (DWORD *)v) #else /*][*/ #define socket_errno() errno #define SE_EWOULDBLOCK EWOULDBLOCK #define SE_ECONNRESET ECONNRESET #define SE_EINTR EINTR #define SE_EAGAIN EAGAIN #define SE_EPIPE EPIPE #if defined(EINPROGRESS) /*[*/ #define SE_EINPROGRESS EINPROGRESS #endif /*]*/ #define SOCK_CLOSE(s) close(s) #define SOCK_IOCTL ioctl #endif /*]*/ #define NUM_HA 4 static union { struct sockaddr sa; struct sockaddr_in sin; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sin6; #endif /*]*/ } haddr[4]; static socklen_t ha_len[NUM_HA] = { sizeof(haddr[0]), sizeof(haddr[0]), sizeof(haddr[0]), sizeof(haddr[0]) }; static int num_ha = 0; static int ha_ix = 0; #if defined(_WIN32) /*[*/ void popup_a_sockerr(char *fmt, ...) { va_list args; char buffer[4096]; va_start(args, fmt); vsprintf(buffer, fmt, args); va_end(args); popup_an_error("%s: %s", buffer, win32_strerror(socket_errno())); } #else /*][*/ void popup_a_sockerr(char *fmt, ...) { va_list args; char buffer[4096]; va_start(args, fmt); vsprintf(buffer, fmt, args); va_end(args); popup_an_errno(errno, "%s", buffer); } #endif /*]*/ /* Connect to one of the addresses in haddr[]. */ static int connect_to(int ix, Boolean noisy, Boolean *pending) { int on = 1; char hn[256]; char pn[256]; char errmsg[1024]; #if defined(OMTU) /*[*/ int mtu = OMTU; #endif /*]*/ # define close_fail { (void) SOCK_CLOSE(sock); sock = -1; return -1; } /* create the socket */ if ((sock = socket(haddr[ix].sa.sa_family, SOCK_STREAM, 0)) == -1) { popup_a_sockerr("socket"); return -1; } /* set options for inline out-of-band data and keepalives */ if (setsockopt(sock, SOL_SOCKET, SO_OOBINLINE, (char *)&on, sizeof(on)) < 0) { popup_a_sockerr("setsockopt(SO_OOBINLINE)"); close_fail; } if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (char *)&on, sizeof(on)) < 0) { popup_a_sockerr("setsockopt(SO_KEEPALIVE)"); close_fail; } #if defined(OMTU) /*[*/ if (setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (char *)&mtu, sizeof(mtu)) < 0) { popup_a_sockerr("setsockopt(SO_SNDBUF)"); close_fail; } #endif /*]*/ /* set the socket to be non-delaying */ #if defined(_WIN32) /*[*/ if (non_blocking(False) < 0) #else /*][*/ if (non_blocking(True) < 0) #endif /*]*/ close_fail; #if !defined(_WIN32) /*[*/ /* don't share the socket with our children */ (void) fcntl(sock, F_SETFD, 1); #endif /*]*/ /* init ssl */ #if defined(HAVE_LIBSSL) /*[*/ if (ssl_host) ssl_init(); #endif /*]*/ if (numeric_host_and_port(&haddr[ix].sa, ha_len[ix], hn, sizeof(hn), pn, sizeof(pn), errmsg, sizeof(errmsg)) == 0) { trace_dsn("Trying %s, port %s...\n", hn, pn); #if defined(C3270) /*[*/ printf("Trying %s, port %s...\n", hn, pn); fflush(stdout); #endif /*]*/ } /* connect */ if (connect(sock, &haddr[ix].sa, ha_len[ix]) == -1) { if (socket_errno() == SE_EWOULDBLOCK #if defined(SE_EINPROGRESS) /*[*/ || socket_errno() == SE_EINPROGRESS #endif /*]*/ ) { trace_dsn("Connection pending.\n"); *pending = True; #if !defined(_WIN32) /*[*/ output_id = AddOutput(sock, output_possible); #endif /*]*/ } else { if (noisy) popup_a_sockerr("Connect to %s, port %d", hostname, current_port); close_fail; } } else { if (non_blocking(False) < 0) close_fail; net_connected(); } /* all done */ #if defined(_WIN32) /*[*/ if (sock_handle == NULL) { char ename[256]; sprintf(ename, "wc3270-%d", getpid()); sock_handle = CreateEvent(NULL, TRUE, FALSE, ename); if (sock_handle == NULL) { fprintf(stderr, "Cannot create socket handle: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } } if (WSAEventSelect(sock, sock_handle, FD_READ | FD_CONNECT | FD_CLOSE) != 0) { fprintf(stderr, "WSAEventSelect failed: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } return (int)sock_handle; #else /*][*/ return sock; #endif /*]*/ } /* * net_connect * Establish a telnet socket to the given host passed as an argument. * Called only once and is responsible for setting up the telnet * variables. Returns the file descriptor of the connected socket. */ int net_connect(const char *host, char *portname, Boolean ls, Boolean *resolving, Boolean *pending) { struct servent *sp; struct hostent *hp; char passthru_haddr[8]; int passthru_len = 0; unsigned short passthru_port = 0; char errmsg[1024]; int s; if (netrbuf == (unsigned char *)NULL) netrbuf = (unsigned char *)Malloc(BUFSZ); #if defined(X3270_ANSI) /*[*/ if (!t_valid) { vintr = parse_ctlchar(appres.intr); vquit = parse_ctlchar(appres.quit); verase = parse_ctlchar(appres.erase); vkill = parse_ctlchar(appres.kill); veof = parse_ctlchar(appres.eof); vwerase = parse_ctlchar(appres.werase); vrprnt = parse_ctlchar(appres.rprnt); vlnext = parse_ctlchar(appres.lnext); t_valid = 1; } #endif /*]*/ *resolving = False; *pending = False; Replace(hostname, NewString(host)); /* set up temporary termtype */ if (appres.termname == CN) { if (std_ds_host) { (void) sprintf(ttype_tmpval, "IBM-327%c-%d", appres.m3279 ? '9' : '8', model_num); termtype = ttype_tmpval; } else { termtype = full_model_name; } } /* get the passthru host and port number */ if (passthru_host) { const char *hn; hn = getenv("INTERNET_HOST"); if (hn == CN) hn = "internet-gateway"; hp = gethostbyname(hn); if (hp == (struct hostent *) 0) { popup_an_error("Unknown passthru host: %s", hn); return -1; } (void) memmove(passthru_haddr, hp->h_addr, hp->h_length); passthru_len = hp->h_length; sp = getservbyname("telnet-passthru","tcp"); if (sp != (struct servent *)NULL) passthru_port = sp->s_port; else passthru_port = htons(3514); } else if (appres.proxy != CN && !proxy_type) { proxy_type = proxy_setup(&proxy_host, &proxy_portname); if (proxy_type > 0) { unsigned long lport; char *ptr; struct servent *sp; lport = strtoul(portname, &ptr, 0); if (ptr == portname || *ptr != '\0' || lport == 0L || lport & ~0xffff) { if (!(sp = getservbyname(portname, "tcp"))) { popup_an_error("Unknown port number " "or service: %s", portname); return -1; } current_port = ntohs(sp->s_port); } else current_port = (unsigned short)lport; } if (proxy_type < 0) return -1; } /* fill in the socket address of the given host */ (void) memset((char *) &haddr, 0, sizeof(haddr)); if (passthru_host) { /* * XXX: We don't try multiple addresses for the passthru * host. */ haddr[0].sin.sin_family = AF_INET; (void) memmove(&haddr[0].sin.sin_addr, passthru_haddr, passthru_len); haddr[0].sin.sin_port = passthru_port; ha_len[0] = sizeof(struct sockaddr_in); num_ha = 1; ha_ix = 0; } else if (proxy_type > 0) { /* * XXX: We don't try multiple addresses for a proxy * host. */ if (resolve_host_and_port(proxy_host, proxy_portname, 0, &proxy_port, &haddr[0].sa, &ha_len[0], errmsg, sizeof(errmsg), NULL) < 0) { popup_an_error("%s", errmsg); return -1; } num_ha = 1; ha_ix = 0; } else { #if defined(LOCAL_PROCESS) /*[*/ if (ls) { local_process = True; } else { #endif /*]*/ int i; int last = False; #if defined(LOCAL_PROCESS) /*[*/ local_process = False; #endif /*]*/ num_ha = 0; for (i = 0; i < NUM_HA && !last; i++) { if (resolve_host_and_port(host, portname, i, ¤t_port, &haddr[i].sa, &ha_len[i], errmsg, sizeof(errmsg), &last) < 0) { popup_an_error("%s", errmsg); return -1; } num_ha++; } ha_ix = 0; #if defined(LOCAL_PROCESS) /*[*/ } #endif /*]*/ } #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { int amaster; struct winsize w; w.ws_row = XMIT_ROWS; w.ws_col = XMIT_COLS; w.ws_xpixel = 0; w.ws_ypixel = 0; switch (forkpty(&amaster, NULL, NULL, &w)) { case -1: /* failed */ popup_an_errno(errno, "forkpty"); close_fail; case 0: /* child */ putenv("TERM=xterm"); if (strchr(host, ' ') != CN) { (void) execlp("/bin/sh", "sh", "-c", host, NULL); } else { char *arg1; arg1 = strrchr(host, '/'); (void) execlp(host, (arg1 == CN) ? host : arg1 + 1, NULL); } perror(host); _exit(1); break; default: /* parent */ sock = amaster; #if !defined(_WIN32) /*[*/ (void) fcntl(sock, F_SETFD, 1); #endif /*]*/ net_connected(); host_in3270(CONNECTED_ANSI); break; } return sock; } #endif /*]*/ /* Try each of the haddrs. */ while (ha_ix < num_ha) { if ((s = connect_to(ha_ix, (ha_ix == num_ha - 1), pending)) >= 0) return s; ha_ix++; } /* Ran out. */ return -1; } #undef close_fail /* Set up the LU list. */ static void setup_lus(void) { char *lu; char *comma; int n_lus = 1; int i; connected_lu = CN; connected_type = CN; if (!luname[0]) { Replace(lus, NULL); curr_lu = (char **)NULL; try_lu = CN; return; } /* * Count the commas in the LU name. That plus one is the * number of LUs to try. */ lu = luname; while ((comma = strchr(lu, ',')) != CN) { n_lus++; lu++; } /* * Allocate enough memory to construct an argv[] array for * the LUs. */ Replace(lus, (char **)Malloc((n_lus+1) * sizeof(char *) + strlen(luname) + 1)); /* Copy each LU into the array. */ lu = (char *)(lus + n_lus + 1); (void) strcpy(lu, luname); i = 0; do { lus[i++] = lu; comma = strchr(lu, ','); if (comma != CN) { *comma = '\0'; lu = comma + 1; } } while (comma != CN); lus[i] = CN; curr_lu = lus; try_lu = *curr_lu; } static void net_connected(void) { if (proxy_type > 0) { /* Negotiate with the proxy. */ trace_dsn("Connected to proxy server %s, port %u.\n", proxy_host, proxy_port); if (proxy_negotiate(proxy_type, sock, hostname, current_port) < 0) { host_disconnect(True); return; } } trace_dsn("Connected to %s, port %u%s.\n", hostname, current_port, ssl_host? " via SSL": ""); #if defined(HAVE_LIBSSL) /*[*/ /* Set up SSL. */ if (ssl_host && !secure_connection) { if (SSL_set_fd(ssl_con, sock) != 1) { trace_dsn("Can't set fd!\n"); } if (SSL_connect(ssl_con) != 1) { /* * No need to trace the error, it was already * displayed. */ host_disconnect(True); return; } secure_connection = True; trace_dsn("TLS/SSL tunneled connection complete. " "Connection is now secure.\n"); /* Tell everyone else again. */ host_connected(); } #endif /*]*/ /* set up telnet options */ (void) memset((char *) myopts, 0, sizeof(myopts)); (void) memset((char *) hisopts, 0, sizeof(hisopts)); #if defined(X3270_TN3270E) /*[*/ e_funcs = E_OPT(TN3270E_FUNC_BIND_IMAGE) | E_OPT(TN3270E_FUNC_RESPONSES) | E_OPT(TN3270E_FUNC_SYSREQ); e_xmit_seq = 0; response_required = TN3270E_RSF_NO_RESPONSE; #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ need_tls_follows = False; #endif /*]*/ telnet_state = TNS_DATA; ibptr = ibuf; /* clear statistics and flags */ (void) time(&ns_time); ns_brcvd = 0; ns_rrcvd = 0; ns_bsent = 0; ns_rsent = 0; syncing = 0; tn3270e_negotiated = 0; tn3270e_submode = E_NONE; tn3270e_bound = 0; setup_lus(); check_linemode(True); /* write out the passthru hostname and port nubmer */ if (passthru_host) { char *buf; buf = Malloc(strlen(hostname) + 32); (void) sprintf(buf, "%s %d\r\n", hostname, current_port); (void) send(sock, buf, strlen(buf), 0); Free(buf); } } /* * connection_complete * The connection appears to be complete (output is possible or input * appeared ready but recv() returned EWOULDBLOCK). Complete the * connection-completion processing. */ static void connection_complete(void) { #if !defined(_WIN32) /*[*/ if (non_blocking(False) < 0) { host_disconnect(True); return; } #endif /*]*/ host_connected(); net_connected(); } #if !defined(_WIN32) /*[*/ /* * output_possible * Output is possible on the socket. Used only when a connection is * pending, to determine that the connection is complete. */ static void output_possible(void) { if (HALF_CONNECTED) { connection_complete(); } if (output_id) { RemoveInput(output_id); output_id = 0L; } } #endif /*]*/ /* * net_disconnect * Shut down the socket. */ void net_disconnect(void) { #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { SSL_shutdown(ssl_con); SSL_free(ssl_con); ssl_con = NULL; } secure_connection = False; #endif /*]*/ if (CONNECTED) (void) shutdown(sock, 2); (void) SOCK_CLOSE(sock); sock = -1; trace_dsn("SENT disconnect\n"); /* We're not connected to an LU any more. */ status_lu(CN); #if !defined(_WIN32) /*[*/ /* We have no more interest in output buffer space. */ if (output_id != 0L) { RemoveInput(output_id); output_id = 0L; } #endif /*]*/ } /* * net_input * Called by the toolkit whenever there is input available on the * socket. Reads the data, processes the special telnet commands * and calls process_ds to process the 3270 data stream. */ void net_input(void) { register unsigned char *cp; int nr; #if defined(HAVE_LIBSSL) /*[*/ Boolean ignore_ssl = False; #endif /*]*/ #if defined(_WIN32) /*[*/ for (;;) #endif /*]*/ { if (sock < 0) return; #if defined(_WIN32) /*[*/ if (HALF_CONNECTED) { if (connect(sock, &haddr[ha_ix].sa, sizeof(haddr[0])) < 0) { int err = GetLastError(); switch (err) { case WSAEISCONN: connection_complete(); /* and go get data...? */ break; case WSAEALREADY: case WSAEWOULDBLOCK: case WSAEINVAL: return; default: fprintf(stderr, "second connect() failed: %s\n", win32_strerror(err)); x3270_exit(1); } } } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ ansi_data = 0; #endif /*]*/ #if defined(_WIN32) /*[*/ (void) ResetEvent(sock_handle); #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { /* * OpenSSL does not like getting refused connections * when it hasn't done any I/O yet. So peek ahead to * see if it's worth getting it involved at all. */ if (HALF_CONNECTED && (nr = recv(sock, (char *) netrbuf, 1, MSG_PEEK)) <= 0) ignore_ssl = True; else nr = SSL_read(ssl_con, (char *) netrbuf, BUFSZ); } else #else /*][*/ #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ if (local_process) nr = read(sock, (char *) netrbuf, BUFSZ); else #endif /*]*/ nr = recv(sock, (char *) netrbuf, BUFSZ, 0); if (nr < 0) { if (socket_errno() == SE_EWOULDBLOCK) { return; } #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL && !ignore_ssl) { unsigned long e; char err_buf[120]; e = ERR_get_error(); if (e != 0) (void) ERR_error_string(e, err_buf); else strcpy(err_buf, "unknown error"); trace_dsn("RCVD SSL_read error %ld (%s)\n", e, err_buf); popup_an_error("SSL_read:\n%s", err_buf); host_disconnect(True); return; } #endif /*]*/ if (HALF_CONNECTED && socket_errno() == SE_EAGAIN) { connection_complete(); return; } #if defined(LOCAL_PROCESS) /*[*/ if (errno == EIO && local_process) { trace_dsn("RCVD local process disconnect\n"); host_disconnect(False); return; } #endif /*]*/ trace_dsn("RCVD socket error %d (%s)\n", socket_errno(), #if !defined(_WIN32) /*[*/ strerror(errno) #else /*][*/ win32_strerror(GetLastError()) #endif /*]*/ ); if (HALF_CONNECTED) { if (ha_ix == num_ha - 1) { popup_a_sockerr("Connect to %s, " "port %d", hostname, current_port); } else { Boolean dummy; int s; net_disconnect(); #if defined(HAVE_LIBSSL) /*[*/ if (ssl_host) ssl_init(); #endif /*]*/ while (++ha_ix < num_ha) { s = connect_to(ha_ix, (ha_ix == num_ha - 1), &dummy); if (s >= 0) { host_newfd(s); return; } } } } else if (socket_errno() != SE_ECONNRESET) { popup_a_sockerr("Socket read"); } host_disconnect(True); return; } else if (nr == 0) { /* Host disconnected. */ trace_dsn("RCVD disconnect\n"); host_disconnect(False); return; } /* Process the data. */ if (HALF_CONNECTED) { if (non_blocking(False) < 0) { host_disconnect(True); return; } host_connected(); net_connected(); } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', netrbuf, nr); #endif /*]*/ ns_brcvd += nr; for (cp = netrbuf; cp < (netrbuf + nr); cp++) { #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { /* More to do here, probably. */ if (IN_NEITHER) { /* now can assume ANSI mode */ host_in3270(CONNECTED_ANSI); hisopts[TELOPT_ECHO] = 1; check_linemode(False); kybdlock_clr(KL_AWAITING_FIRST, "telnet_fsm"); status_reset(); ps_process(); } ansi_process((unsigned int) *cp); } else { #endif /*]*/ if (telnet_fsm(*cp)) { (void) ctlr_dbcs_postprocess(); host_disconnect(True); return; } #if defined(LOCAL_PROCESS) /*[*/ } #endif /*]*/ } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { (void) ctlr_dbcs_postprocess(); } if (ansi_data) { trace_dsn("\n"); ansi_data = 0; } #endif /*]*/ #if defined(X3270_TRACE) /*[*/ /* See if it's time to roll over the trace file. */ trace_rollover_check(); #endif /*]*/ } } /* * set16 * Put a 16-bit value in a buffer. * Returns the number of bytes required. */ static int set16(char *buf, int n) { char *b0 = buf; n %= 256 * 256; if ((n / 256) == IAC) *(unsigned char *)buf++ = IAC; *buf++ = (n / 256); n %= 256; if (n == IAC) *(unsigned char *)buf++ = IAC; *buf++ = n; return buf - b0; } /* * send_naws * Send a Telnet window size sub-option negotation. */ static void send_naws(void) { char naws_msg[14]; int naws_len = 0; (void) sprintf(naws_msg, "%c%c%c", IAC, SB, TELOPT_NAWS); naws_len += 3; naws_len += set16(naws_msg + naws_len, XMIT_COLS); naws_len += set16(naws_msg + naws_len, XMIT_ROWS); (void) sprintf(naws_msg + naws_len, "%c%c", IAC, SE); naws_len += 2; net_rawout((unsigned char *)naws_msg, naws_len); trace_dsn("SENT %s NAWS %d %d %s\n", cmd(SB), XMIT_COLS, XMIT_ROWS, cmd(SE)); } /* Advance 'try_lu' to the next desired LU name. */ static void next_lu(void) { if (curr_lu != (char **)NULL && (try_lu = *++curr_lu) == CN) curr_lu = (char **)NULL; } /* * telnet_fsm * Telnet finite-state machine. * Returns 0 for okay, -1 for errors. */ static int telnet_fsm(unsigned char c) { #if defined(X3270_ANSI) /*[*/ char *see_chr; int sl; #endif /*]*/ switch (telnet_state) { case TNS_DATA: /* normal data processing */ if (c == IAC) { /* got a telnet command */ telnet_state = TNS_IAC; #if defined(X3270_ANSI) /*[*/ if (ansi_data) { trace_dsn("\n"); ansi_data = 0; } #endif /*]*/ break; } if (IN_NEITHER) { /* now can assume ANSI mode */ #if defined(X3270_ANSI)/*[*/ if (linemode) cooked_init(); #endif /*]*/ host_in3270(CONNECTED_ANSI); kybdlock_clr(KL_AWAITING_FIRST, "telnet_fsm"); status_reset(); ps_process(); } if (IN_ANSI && !IN_E) { #if defined(X3270_ANSI) /*[*/ if (!ansi_data) { trace_dsn("<.. "); ansi_data = 4; } see_chr = ctl_see((int) c); ansi_data += (sl = strlen(see_chr)); if (ansi_data >= TRACELINE) { trace_dsn(" ...\n... "); ansi_data = 4 + sl; } trace_dsn("%s", see_chr); if (!syncing) { if (linemode && appres.onlcr && c == '\n') ansi_process((unsigned int) '\r'); ansi_process((unsigned int) c); sms_store(c); } #endif /*]*/ } else { store3270in(c); } break; case TNS_IAC: /* process a telnet command */ if (c != EOR && c != IAC) { trace_dsn("RCVD %s ", cmd(c)); } switch (c) { case IAC: /* escaped IAC, insert it */ if (IN_ANSI && !IN_E) { #if defined(X3270_ANSI) /*[*/ if (!ansi_data) { trace_dsn("<.. "); ansi_data = 4; } see_chr = ctl_see((int) c); ansi_data += (sl = strlen(see_chr)); if (ansi_data >= TRACELINE) { trace_dsn(" ...\n ..."); ansi_data = 4 + sl; } trace_dsn("%s", see_chr); ansi_process((unsigned int) c); sms_store(c); #endif /*]*/ } else store3270in(c); telnet_state = TNS_DATA; break; case EOR: /* eor, process accumulated input */ if (IN_3270 || (IN_E && tn3270e_negotiated)) { ns_rrcvd++; if (process_eor()) return -1; } else Warning("EOR received when not in 3270 mode, " "ignored."); trace_dsn("RCVD EOR\n"); ibptr = ibuf; telnet_state = TNS_DATA; break; case WILL: telnet_state = TNS_WILL; break; case WONT: telnet_state = TNS_WONT; break; case DO: telnet_state = TNS_DO; break; case DONT: telnet_state = TNS_DONT; break; case SB: telnet_state = TNS_SB; if (sbbuf == (unsigned char *)NULL) sbbuf = (unsigned char *)Malloc(1024); sbptr = sbbuf; break; case DM: trace_dsn("\n"); if (syncing) { syncing = 0; x_except_on(sock); } telnet_state = TNS_DATA; break; case GA: case NOP: trace_dsn("\n"); telnet_state = TNS_DATA; break; default: trace_dsn("???\n"); telnet_state = TNS_DATA; break; } break; case TNS_WILL: /* telnet WILL DO OPTION command */ trace_dsn("%s\n", opt(c)); switch (c) { case TELOPT_SGA: case TELOPT_BINARY: case TELOPT_EOR: case TELOPT_TTYPE: case TELOPT_ECHO: #if defined(X3270_TN3270E) /*[*/ case TELOPT_TN3270E: #endif /*]*/ if (c != TELOPT_TN3270E || !non_tn3270e_host) { if (!hisopts[c]) { hisopts[c] = 1; do_opt[2] = c; net_rawout(do_opt, sizeof(do_opt)); trace_dsn("SENT %s %s\n", cmd(DO), opt(c)); /* * For UTS, volunteer to do EOR when * they do. */ if (c == TELOPT_EOR && !myopts[c]) { myopts[c] = 1; will_opt[2] = c; net_rawout(will_opt, sizeof(will_opt)); trace_dsn("SENT %s %s\n", cmd(WILL), opt(c)); } check_in3270(); check_linemode(False); } break; } default: dont_opt[2] = c; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(c)); break; } telnet_state = TNS_DATA; break; case TNS_WONT: /* telnet WONT DO OPTION command */ trace_dsn("%s\n", opt(c)); if (hisopts[c]) { hisopts[c] = 0; dont_opt[2] = c; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(c)); check_in3270(); check_linemode(False); } telnet_state = TNS_DATA; break; case TNS_DO: /* telnet PLEASE DO OPTION command */ trace_dsn("%s\n", opt(c)); switch (c) { case TELOPT_BINARY: case TELOPT_EOR: case TELOPT_TTYPE: case TELOPT_SGA: case TELOPT_NAWS: case TELOPT_TM: #if defined(X3270_TN3270E) /*[*/ case TELOPT_TN3270E: #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ case TELOPT_STARTTLS: #endif /*]*/ if (c == TELOPT_TN3270E && non_tn3270e_host) goto wont; if (c == TELOPT_TM && !appres.bsd_tm) goto wont; if (!myopts[c]) { if (c != TELOPT_TM) myopts[c] = 1; will_opt[2] = c; net_rawout(will_opt, sizeof(will_opt)); trace_dsn("SENT %s %s\n", cmd(WILL), opt(c)); check_in3270(); check_linemode(False); } if (c == TELOPT_NAWS) send_naws(); #if defined(HAVE_LIBSSL) /*[*/ if (c == TELOPT_STARTTLS) { static unsigned char follows_msg[] = { IAC, SB, TELOPT_STARTTLS, TLS_FOLLOWS, IAC, SE }; /* * Send IAC SB STARTTLS FOLLOWS IAC SE * to announce that what follows is TLS. */ net_rawout(follows_msg, sizeof(follows_msg)); trace_dsn("SENT %s %s FOLLOWS %s\n", cmd(SB), opt(TELOPT_STARTTLS), cmd(SE)); need_tls_follows = True; } #endif /*]*/ break; default: wont: wont_opt[2] = c; net_rawout(wont_opt, sizeof(wont_opt)); trace_dsn("SENT %s %s\n", cmd(WONT), opt(c)); break; } telnet_state = TNS_DATA; break; case TNS_DONT: /* telnet PLEASE DON'T DO OPTION command */ trace_dsn("%s\n", opt(c)); if (myopts[c]) { myopts[c] = 0; wont_opt[2] = c; net_rawout(wont_opt, sizeof(wont_opt)); trace_dsn("SENT %s %s\n", cmd(WONT), opt(c)); check_in3270(); check_linemode(False); } telnet_state = TNS_DATA; break; case TNS_SB: /* telnet sub-option string command */ if (c == IAC) telnet_state = TNS_SB_IAC; else *sbptr++ = c; break; case TNS_SB_IAC: /* telnet sub-option string command */ *sbptr++ = c; if (c == SE) { telnet_state = TNS_DATA; if (sbbuf[0] == TELOPT_TTYPE && sbbuf[1] == TELQUAL_SEND) { int tt_len, tb_len; char *tt_out; trace_dsn("%s %s\n", opt(sbbuf[0]), telquals[sbbuf[1]]); if (lus != (char **)NULL && try_lu == CN) { /* None of the LUs worked. */ popup_an_error("Cannot connect to " "specified LU"); return -1; } tt_len = strlen(termtype); if (try_lu != CN && *try_lu) { tt_len += strlen(try_lu) + 1; connected_lu = try_lu; } else connected_lu = CN; status_lu(connected_lu); tb_len = 4 + tt_len + 2; tt_out = Malloc(tb_len + 1); (void) sprintf(tt_out, "%c%c%c%c%s%s%s%c%c", IAC, SB, TELOPT_TTYPE, TELQUAL_IS, termtype, (try_lu != CN && *try_lu) ? "@" : "", (try_lu != CN && *try_lu) ? try_lu : "", IAC, SE); net_rawout((unsigned char *)tt_out, tb_len); trace_dsn("SENT %s %s %s %.*s %s\n", cmd(SB), opt(TELOPT_TTYPE), telquals[TELQUAL_IS], tt_len, tt_out + 4, cmd(SE)); Free(tt_out); /* Advance to the next LU name. */ next_lu(); } #if defined(X3270_TN3270E) /*[*/ else if (myopts[TELOPT_TN3270E] && sbbuf[0] == TELOPT_TN3270E) { if (tn3270e_negotiate()) return -1; } #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ else if (need_tls_follows && myopts[TELOPT_STARTTLS] && sbbuf[0] == TELOPT_STARTTLS) { continue_tls(sbbuf, sbptr - sbbuf); } #endif /*]*/ } else { telnet_state = TNS_SB; } break; } return 0; } #if defined(X3270_TN3270E) /*[*/ /* Send a TN3270E terminal type request. */ static void tn3270e_request(void) { int tt_len, tb_len; char *tt_out; char *t; tt_len = strlen(termtype); if (try_lu != CN && *try_lu) tt_len += strlen(try_lu) + 1; tb_len = 5 + tt_len + 2; tt_out = Malloc(tb_len + 1); t = tt_out; t += sprintf(tt_out, "%c%c%c%c%c%s", IAC, SB, TELOPT_TN3270E, TN3270E_OP_DEVICE_TYPE, TN3270E_OP_REQUEST, termtype); /* Convert 3279 to 3278, per the RFC. */ if (tt_out[12] == '9') tt_out[12] = '8'; if (try_lu != CN && *try_lu) t += sprintf(t, "%c%s", TN3270E_OP_CONNECT, try_lu); (void) sprintf(t, "%c%c", IAC, SE); net_rawout((unsigned char *)tt_out, tb_len); trace_dsn("SENT %s %s DEVICE-TYPE REQUEST %.*s%s%s " "%s\n", cmd(SB), opt(TELOPT_TN3270E), (int)strlen(termtype), tt_out + 5, (try_lu != CN && *try_lu) ? " CONNECT " : "", (try_lu != CN && *try_lu) ? try_lu : "", cmd(SE)); Free(tt_out); } /* * Back off of TN3270E. */ static void backoff_tn3270e(const char *why) { trace_dsn("Aborting TN3270E: %s\n", why); /* Tell the host 'no'. */ wont_opt[2] = TELOPT_TN3270E; net_rawout(wont_opt, sizeof(wont_opt)); trace_dsn("SENT %s %s\n", cmd(WONT), opt(TELOPT_TN3270E)); /* Restore the LU list; we may need to run it again in TN3270 mode. */ setup_lus(); /* Reset our internal state. */ myopts[TELOPT_TN3270E] = 0; check_in3270(); } /* * Negotiation of TN3270E options. * Returns 0 if okay, -1 if we have to give up altogether. */ static int tn3270e_negotiate(void) { #define LU_MAX 32 static char reported_lu[LU_MAX+1]; static char reported_type[LU_MAX+1]; int sblen; unsigned long e_rcvd; /* Find out how long the subnegotiation buffer is. */ for (sblen = 0; ; sblen++) { if (sbbuf[sblen] == SE) break; } trace_dsn("TN3270E "); switch (sbbuf[1]) { case TN3270E_OP_SEND: if (sbbuf[2] == TN3270E_OP_DEVICE_TYPE) { /* Host wants us to send our device type. */ trace_dsn("SEND DEVICE-TYPE SE\n"); tn3270e_request(); } else { trace_dsn("SEND ??%u SE\n", sbbuf[2]); } break; case TN3270E_OP_DEVICE_TYPE: /* Device type negotiation. */ trace_dsn("DEVICE-TYPE "); switch (sbbuf[2]) { case TN3270E_OP_IS: { int tnlen, snlen; /* Device type success. */ /* Isolate the terminal type and session. */ tnlen = 0; while (sbbuf[3+tnlen] != SE && sbbuf[3+tnlen] != TN3270E_OP_CONNECT) tnlen++; snlen = 0; if (sbbuf[3+tnlen] == TN3270E_OP_CONNECT) { while(sbbuf[3+tnlen+1+snlen] != SE) snlen++; } trace_dsn("IS %.*s CONNECT %.*s SE\n", tnlen, &sbbuf[3], snlen, &sbbuf[3+tnlen+1]); /* Remember the LU. */ if (tnlen) { if (tnlen > LU_MAX) tnlen = LU_MAX; (void)strncpy(reported_type, (char *)&sbbuf[3], tnlen); reported_type[tnlen] = '\0'; connected_type = reported_type; } if (snlen) { if (snlen > LU_MAX) snlen = LU_MAX; (void)strncpy(reported_lu, (char *)&sbbuf[3+tnlen+1], snlen); reported_lu[snlen] = '\0'; connected_lu = reported_lu; status_lu(connected_lu); } /* Tell them what we can do. */ tn3270e_subneg_send(TN3270E_OP_REQUEST, e_funcs); break; } case TN3270E_OP_REJECT: /* Device type failure. */ trace_dsn("REJECT REASON %s SE\n", rsn(sbbuf[4])); if (sbbuf[4] == TN3270E_REASON_INV_DEVICE_TYPE || sbbuf[4] == TN3270E_REASON_UNSUPPORTED_REQ) { backoff_tn3270e("Host rejected device type or " "request type"); break; } next_lu(); if (try_lu != CN) { /* Try the next LU. */ tn3270e_request(); } else if (lus != (char **)NULL) { /* No more LUs to try. Give up. */ backoff_tn3270e("Host rejected resource(s)"); } else { backoff_tn3270e("Device type rejected"); } break; default: trace_dsn("??%u SE\n", sbbuf[2]); break; } break; case TN3270E_OP_FUNCTIONS: /* Functions negotiation. */ trace_dsn("FUNCTIONS "); switch (sbbuf[2]) { case TN3270E_OP_REQUEST: /* Host is telling us what functions they want. */ trace_dsn("REQUEST %s SE\n", tn3270e_function_names(sbbuf+3, sblen-3)); e_rcvd = tn3270e_fdecode(sbbuf+3, sblen-3); if ((e_rcvd == e_funcs) || (e_funcs & ~e_rcvd)) { /* They want what we want, or less. Done. */ e_funcs = e_rcvd; tn3270e_subneg_send(TN3270E_OP_IS, e_funcs); tn3270e_negotiated = 1; trace_dsn("TN3270E option negotiation " "complete.\n"); check_in3270(); } else { /* * They want us to do something we can't. * Request the common subset. */ e_funcs &= e_rcvd; tn3270e_subneg_send(TN3270E_OP_REQUEST, e_funcs); } break; case TN3270E_OP_IS: /* They accept our last request, or a subset thereof. */ trace_dsn("IS %s SE\n", tn3270e_function_names(sbbuf+3, sblen-3)); e_rcvd = tn3270e_fdecode(sbbuf+3, sblen-3); if (e_rcvd != e_funcs) { if (e_funcs & ~e_rcvd) { /* * They've removed something. This is * technically illegal, but we can * live with it. */ e_funcs = e_rcvd; } else { /* * They've added something. Abandon * TN3270E, they're brain dead. */ backoff_tn3270e("Host illegally added " "function(s)"); break; } } tn3270e_negotiated = 1; trace_dsn("TN3270E option negotiation complete.\n"); check_in3270(); break; default: trace_dsn("??%u SE\n", sbbuf[2]); break; } break; default: trace_dsn("??%u SE\n", sbbuf[1]); } /* Good enough for now. */ return 0; } #if defined(X3270_TRACE) /*[*/ /* Expand a string of TN3270E function codes into text. */ static const char * tn3270e_function_names(const unsigned char *buf, int len) { int i; static char text_buf[1024]; char *s = text_buf; if (!len) return("(null)"); for (i = 0; i < len; i++) { s += sprintf(s, "%s%s", (s == text_buf) ? "" : " ", fnn(buf[i])); } return text_buf; } #endif /*]*/ /* Expand the current TN3270E function codes into text. */ const char * tn3270e_current_opts(void) { int i; static char text_buf[1024]; char *s = text_buf; if (!e_funcs || !IN_E) return CN; for (i = 0; i < 32; i++) { if (e_funcs & E_OPT(i)) s += sprintf(s, "%s%s", (s == text_buf) ? "" : " ", fnn(i)); } return text_buf; } /* Transmit a TN3270E FUNCTIONS REQUEST or FUNCTIONS IS message. */ static void tn3270e_subneg_send(unsigned char op, unsigned long funcs) { unsigned char proto_buf[7 + 32]; int proto_len; int i; /* Construct the buffers. */ (void) memcpy(proto_buf, functions_req, 4); proto_buf[4] = op; proto_len = 5; for (i = 0; i < 32; i++) { if (funcs & E_OPT(i)) proto_buf[proto_len++] = i; } /* Complete and send out the protocol message. */ proto_buf[proto_len++] = IAC; proto_buf[proto_len++] = SE; net_rawout(proto_buf, proto_len); /* Complete and send out the trace text. */ trace_dsn("SENT %s %s FUNCTIONS %s %s %s\n", cmd(SB), opt(TELOPT_TN3270E), (op == TN3270E_OP_REQUEST)? "REQUEST": "IS", tn3270e_function_names(proto_buf + 5, proto_len - 7), cmd(SE)); } /* Translate a string of TN3270E functions into a bit-map. */ static unsigned long tn3270e_fdecode(const unsigned char *buf, int len) { unsigned long r = 0L; int i; /* Note that this code silently ignores options >= 32. */ for (i = 0; i < len; i++) { if (buf[i] < 32) r |= E_OPT(buf[i]); } return r; } #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ static int maxru(unsigned char c) { if (!(c & 0x80)) return 0; return ((c >> 4) & 0x0f) * (1 << (c & 0xf)); } static void process_bind(unsigned char *buf, int buflen) { int namelen, i; int dest_ix = 0; /* Save the raw image. */ if (bind_image != NULL) Free(bind_image); bind_image = (unsigned char *)Malloc(buflen); memcpy(bind_image, buf, buflen); bind_image_len = buflen; /* Clean up the derived state. */ if (plu_name == CN) plu_name = Malloc(mb_max_len(BIND_PLU_NAME_MAX)); (void) memset(plu_name, '\0', mb_max_len(BIND_PLU_NAME_MAX)); maxru_sec = 0; maxru_pri = 0; bind_rd = 0; bind_cd = 0; bind_ra = 0; bind_ca = 0; /* Make sure it's a BIND. */ if (buflen < 1 || buf[0] != BIND_RU) { return; } /* Extract the maximum RUs. */ if (buflen > BIND_OFF_MAXRU_SEC) maxru_sec = maxru(buf[BIND_OFF_MAXRU_SEC]); if (buflen > BIND_OFF_MAXRU_PRI) maxru_pri = maxru(buf[BIND_OFF_MAXRU_PRI]); /* Extract the screen size. */ if (buflen > BIND_OFF_SSIZE) { int bind_ss = buf[BIND_OFF_SSIZE]; switch (bind_ss) { case 0x00: case 0x02: bind_rd = MODEL_2_ROWS; bind_cd = MODEL_2_COLS; bind_ra = MODEL_2_ROWS; bind_ca = MODEL_2_COLS; break; case 0x03: bind_rd = MODEL_2_ROWS; bind_cd = MODEL_2_COLS; bind_ra = maxROWS; bind_ca = maxCOLS; break; case 0x7e: bind_rd = buf[BIND_OFF_RD]; bind_cd = buf[BIND_OFF_CD]; bind_ra = buf[BIND_OFF_RD]; bind_ca = buf[BIND_OFF_CD]; break; case 0x7f: bind_rd = buf[BIND_OFF_RD]; bind_cd = buf[BIND_OFF_CD]; bind_ra = buf[BIND_OFF_RA]; bind_ca = buf[BIND_OFF_CA]; break; default: break; } } /* Validate and implement the screen size. */ if (bind_rd > maxROWS || bind_cd > maxCOLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Default Rows-Cols %ux%u > Maximum %ux%u", bind_rd, bind_cd, maxROWS, maxCOLS); } else if (bind_rd < MODEL_2_ROWS || bind_cd < MODEL_2_COLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Default Rows-Cols %ux%u < Minimum %ux%u", bind_rd, bind_cd, MODEL_2_ROWS, MODEL_2_COLS); } else if (bind_ra > maxROWS || bind_ca > maxCOLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Alternate Rows-Cols %ux%u > Maximum %ux%u", bind_ra, bind_ca, maxROWS, maxCOLS); } else if (bind_ra < MODEL_2_ROWS || bind_ca < MODEL_2_COLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Alternate Rows-Cols %ux%u < Minimum %ux%u", bind_ra, bind_ca, MODEL_2_ROWS, MODEL_2_COLS); } else { defROWS = bind_rd; defCOLS = bind_cd; altROWS = bind_ra; altCOLS = bind_ca; } ctlr_erase(False); /* Extract the PLU name. */ if (buflen > BIND_OFF_PLU_NAME_LEN) { namelen = buf[BIND_OFF_PLU_NAME_LEN]; if (namelen > BIND_PLU_NAME_MAX) namelen = BIND_PLU_NAME_MAX; if ((namelen > 0) && (buflen > BIND_OFF_PLU_NAME + namelen)) { for (i = 0; i < namelen; i++) { int nx; nx = ebcdic_to_multibyte( buf[BIND_OFF_PLU_NAME + i], plu_name + dest_ix, mb_max_len(1)); if (nx > 1) dest_ix += nx - 1; } } } } #endif /*]*/ static int process_eor(void) { if (syncing || !(ibptr - ibuf)) return(0); #if defined(X3270_TN3270E) /*[*/ if (IN_E) { tn3270e_header *h = (tn3270e_header *)ibuf; unsigned char *s; enum pds rv; trace_dsn("RCVD TN3270E(%s%s %s %u)\n", e_dt(h->data_type), e_rq(h->data_type, h->request_flag), e_rsp(h->data_type, h->response_flag), h->seq_number[0] << 8 | h->seq_number[1]); switch (h->data_type) { case TN3270E_DT_3270_DATA: if ((e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE)) && !tn3270e_bound) return 0; tn3270e_submode = E_3270; check_in3270(); response_required = h->response_flag; rv = process_ds(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); if (rv < 0 && response_required != TN3270E_RSF_NO_RESPONSE) tn3270e_nak(rv); else if (rv == PDS_OKAY_NO_OUTPUT && response_required == TN3270E_RSF_ALWAYS_RESPONSE) tn3270e_ack(); response_required = TN3270E_RSF_NO_RESPONSE; return 0; case TN3270E_DT_BIND_IMAGE: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; process_bind(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); trace_ds("< BIND PLU-name '%s' " "MaxSec-RU %d MaxPri-RU %d " "Rows-Cols Default %dx%d Alternate %dx%d\n", plu_name, maxru_sec, maxru_pri, bind_rd, bind_cd, bind_ra, bind_ca); tn3270e_bound = 1; check_in3270(); return 0; case TN3270E_DT_UNBIND: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; tn3270e_bound = 0; /* * Undo any screen-sizing effects from a previous BIND. */ defROWS = MODEL_2_ROWS; defCOLS = MODEL_2_COLS; altROWS = maxROWS; altCOLS = maxCOLS; ctlr_erase(False); if (tn3270e_submode == E_3270) tn3270e_submode = E_NONE; check_in3270(); return 0; case TN3270E_DT_NVT_DATA: /* In tn3270e NVT mode */ tn3270e_submode = E_NVT; check_in3270(); for (s = ibuf; s < ibptr; s++) { ansi_process(*s++); } return 0; case TN3270E_DT_SSCP_LU_DATA: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; tn3270e_submode = E_SSCP; check_in3270(); ctlr_write_sscp_lu(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); return 0; default: /* Should do something more extraordinary here. */ return 0; } } else #endif /*]*/ { (void) process_ds(ibuf, ibptr - ibuf); } return 0; } /* * net_exception * Called when there is an exceptional condition on the socket. */ void net_exception(void) { #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { trace_dsn("RCVD exception\n"); } else #endif /*[*/ { trace_dsn("RCVD urgent data indication\n"); if (!syncing) { syncing = 1; x_except_off(); } } } /* * Flavors of Network Output: * * 3270 mode * net_output send a 3270 record * * ANSI mode; call each other in turn * net_sendc net_cookout for 1 byte * net_sends net_cookout for a null-terminated string * net_cookout send user data with cooked-mode processing, ANSI mode * net_cookedout send user data, ANSI mode, already cooked * net_rawout send telnet protocol data, ANSI mode * */ /* * net_rawout * Send out raw telnet data. We assume that there will always be enough * space to buffer what we want to transmit, so we don't handle EAGAIN or * EWOULDBLOCK. */ static void net_rawout(unsigned const char *buf, int len) { int nw; #if defined(X3270_TRACE) /*[*/ trace_netdata('>', buf, len); #endif /*]*/ while (len) { #if defined(OMTU) /*[*/ int n2w = len; int pause = 0; if (n2w > OMTU) { n2w = OMTU; pause = 1; } #else # define n2w len #endif #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) nw = SSL_write(ssl_con, (const char *) buf, n2w); else #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ if (local_process) nw = write(sock, (const char *) buf, n2w); else #endif /*]*/ nw = send(sock, (const char *) buf, n2w, 0); if (nw < 0) { #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { unsigned long e; char err_buf[120]; e = ERR_get_error(); (void) ERR_error_string(e, err_buf); trace_dsn("RCVD SSL_write error %ld (%s)\n", e, err_buf); popup_an_error("SSL_write:\n%s", err_buf); host_disconnect(False); return; } #endif /*]*/ trace_dsn("RCVD socket error %d (%s)\n", socket_errno(), #if !defined(_WIN32) /*[*/ strerror(errno) #else /*][*/ win32_strerror(GetLastError()) #endif /*]*/ ); if (socket_errno() == SE_EPIPE || socket_errno() == SE_ECONNRESET) { host_disconnect(False); return; } else if (socket_errno() == SE_EINTR) { goto bot; } else { popup_a_sockerr("Socket write"); host_disconnect(True); return; } } ns_bsent += nw; len -= nw; buf += nw; bot: #if defined(OMTU) /*[*/ if (pause) sleep(1); #endif /*]*/ ; } } #if defined(X3270_ANSI) /*[*/ /* * net_hexansi_out * Send uncontrolled user data to the host in ANSI mode, performing IAC * and CR quoting as necessary. */ void net_hexansi_out(unsigned char *buf, int len) { unsigned char *tbuf; unsigned char *xbuf; if (!len) return; #if defined(X3270_TRACE) /*[*/ /* Trace the data. */ if (toggled(DS_TRACE)) { int i; trace_dsn(">"); for (i = 0; i < len; i++) trace_dsn(" %s", ctl_see((int) *(buf+i))); trace_dsn("\n"); } #endif /*]*/ /* Expand it. */ tbuf = xbuf = (unsigned char *)Malloc(2*len); while (len) { unsigned char c = *buf++; *tbuf++ = c; len--; if (c == IAC) *tbuf++ = IAC; else if (c == '\r' && (!len || *buf != '\n')) *tbuf++ = '\0'; } /* Send it to the host. */ net_rawout(xbuf, tbuf - xbuf); Free(xbuf); } /* * net_cookedout * Send user data out in ANSI mode, without cooked-mode processing. */ static void net_cookedout(const char *buf, int len) { #if defined(X3270_TRACE) /*[*/ if (toggled(DS_TRACE)) { int i; trace_dsn(">"); for (i = 0; i < len; i++) trace_dsn(" %s", ctl_see((int) *(buf+i))); trace_dsn("\n"); } #endif /*]*/ net_rawout((unsigned const char *) buf, len); } /* * net_cookout * Send output in ANSI mode, including cooked-mode processing if * appropriate. */ static void net_cookout(const char *buf, int len) { if (!IN_ANSI || (kybdlock & KL_AWAITING_FIRST)) return; if (linemode) { register int i; char c; for (i = 0; i < len; i++) { c = buf[i]; /* Input conversions. */ if (!lnext && c == '\r' && appres.icrnl) c = '\n'; else if (!lnext && c == '\n' && appres.inlcr) c = '\r'; /* Backslashes. */ if (c == '\\' && !backslashed) backslashed = 1; else backslashed = 0; /* Control chars. */ if (c == '\n') do_eol(c); else if (c == vintr) do_intr(c); else if (c == vquit) do_quit(c); else if (c == verase) do_cerase(c); else if (c == vkill) do_kill(c); else if (c == vwerase) do_werase(c); else if (c == vrprnt) do_rprnt(c); else if (c == veof) do_eof(c); else if (c == vlnext) do_lnext(c); else if (c == 0x08 || c == 0x7f) /* Yes, a hack. */ do_cerase(c); else do_data(c); } return; } else net_cookedout(buf, len); } /* * Cooked mode input processing. */ static void cooked_init(void) { if (lbuf == (unsigned char *)NULL) lbuf = (unsigned char *)Malloc(BUFSZ); lbptr = lbuf; lnext = 0; backslashed = 0; } static void ansi_process_s(const char *data) { while (*data) ansi_process((unsigned int) *data++); } static void forward_data(void) { net_cookedout((char *) lbuf, lbptr - lbuf); cooked_init(); } static void do_data(char c) { if (lbptr+1 < lbuf + BUFSZ) { *lbptr++ = c; if (c == '\r') *lbptr++ = '\0'; if (c == '\t') ansi_process((unsigned int) c); else ansi_process_s(ctl_see((int) c)); } else ansi_process_s("\007"); lnext = 0; backslashed = 0; } static void do_intr(char c) { if (lnext) { do_data(c); return; } ansi_process_s(ctl_see((int) c)); cooked_init(); net_interrupt(); } static void do_quit(char c) { if (lnext) { do_data(c); return; } ansi_process_s(ctl_see((int) c)); cooked_init(); net_break(); } static void do_cerase(char c) { int len; if (backslashed) { lbptr--; ansi_process_s("\b"); do_data(c); return; } if (lnext) { do_data(c); return; } if (lbptr > lbuf) { len = strlen(ctl_see((int) *--lbptr)); while (len--) ansi_process_s("\b \b"); } } static void do_werase(char c) { int any = 0; int len; if (lnext) { do_data(c); return; } while (lbptr > lbuf) { char ch; ch = *--lbptr; if (ch == ' ' || ch == '\t') { if (any) { ++lbptr; break; } } else any = 1; len = strlen(ctl_see((int) ch)); while (len--) ansi_process_s("\b \b"); } } static void do_kill(char c) { int i, len; if (backslashed) { lbptr--; ansi_process_s("\b"); do_data(c); return; } if (lnext) { do_data(c); return; } while (lbptr > lbuf) { len = strlen(ctl_see((int) *--lbptr)); for (i = 0; i < len; i++) ansi_process_s("\b \b"); } } static void do_rprnt(char c) { unsigned char *p; if (lnext) { do_data(c); return; } ansi_process_s(ctl_see((int) c)); ansi_process_s("\r\n"); for (p = lbuf; p < lbptr; p++) ansi_process_s(ctl_see((int) *p)); } static void do_eof(char c) { if (backslashed) { lbptr--; ansi_process_s("\b"); do_data(c); return; } if (lnext) { do_data(c); return; } do_data(c); forward_data(); } static void do_eol(char c) { if (lnext) { do_data(c); return; } if (lbptr+2 >= lbuf + BUFSZ) { ansi_process_s("\007"); return; } *lbptr++ = '\r'; *lbptr++ = '\n'; ansi_process_s("\r\n"); forward_data(); } static void do_lnext(char c) { if (lnext) { do_data(c); return; } lnext = 1; ansi_process_s("^\b"); } #endif /*]*/ /* * check_in3270 * Check for switches between NVT, SSCP-LU and 3270 modes. */ static void check_in3270(void) { enum cstate new_cstate = NOT_CONNECTED; #if defined(X3270_TRACE) /*[*/ static const char *state_name[] = { "unconnected", "resolving", "pending", "initial connection", "TN3270 NVT", "TN3270 3270", "TN3270E", "TN3270E NVT", "TN3270E SSCP-LU", "TN3270E 3270" }; #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ if (myopts[TELOPT_TN3270E]) { if (!tn3270e_negotiated) new_cstate = CONNECTED_INITIAL_E; else switch (tn3270e_submode) { case E_NONE: new_cstate = CONNECTED_INITIAL_E; break; case E_NVT: new_cstate = CONNECTED_NVT; break; case E_3270: new_cstate = CONNECTED_TN3270E; break; case E_SSCP: new_cstate = CONNECTED_SSCP; break; } } else #endif /*]*/ if (myopts[TELOPT_BINARY] && myopts[TELOPT_EOR] && myopts[TELOPT_TTYPE] && hisopts[TELOPT_BINARY] && hisopts[TELOPT_EOR]) { new_cstate = CONNECTED_3270; } else if (cstate == CONNECTED_INITIAL) { /* Nothing has happened, yet. */ return; } else { new_cstate = CONNECTED_INITIAL; } if (new_cstate != cstate) { #if defined(X3270_TN3270E) /*[*/ int was_in_e = IN_E; #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ /* * If we've now switched between non-TN3270E mode and * TN3270E mode, reset the LU list so we can try again * in the new mode. */ if (lus != (char **)NULL && was_in_e != IN_E) { curr_lu = lus; try_lu = *curr_lu; } #endif /*]*/ /* Allocate the initial 3270 input buffer. */ if (new_cstate >= CONNECTED_INITIAL && !ibuf_size) { ibuf = (unsigned char *)Malloc(BUFSIZ); ibuf_size = BUFSIZ; ibptr = ibuf; } #if defined(X3270_ANSI) /*[*/ /* Reinitialize line mode. */ if ((new_cstate == CONNECTED_ANSI && linemode) || new_cstate == CONNECTED_NVT) cooked_init(); #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ /* If we fell out of TN3270E, remove the state. */ if (!myopts[TELOPT_TN3270E]) { tn3270e_negotiated = 0; tn3270e_submode = E_NONE; tn3270e_bound = 0; } #endif /*]*/ trace_dsn("Now operating in %s mode.\n", state_name[new_cstate]); host_in3270(new_cstate); } } /* * store3270in * Store a character in the 3270 input buffer, checking for buffer * overflow and reallocating ibuf if necessary. */ static void store3270in(unsigned char c) { if (ibptr - ibuf >= ibuf_size) { ibuf_size += BUFSIZ; ibuf = (unsigned char *)Realloc((char *)ibuf, ibuf_size); ibptr = ibuf + ibuf_size - BUFSIZ; } *ibptr++ = c; } /* * space3270out * Ensure that more characters will fit in the 3270 output buffer. * Allocates the buffer in BUFSIZ chunks. * Allocates hidden space at the front of the buffer for TN3270E. */ void space3270out(int n) { unsigned nc = 0; /* amount of data currently in obuf */ unsigned more = 0; if (obuf_size) nc = obptr - obuf; while ((nc + n + EH_SIZE) > (obuf_size + more)) { more += BUFSIZ; } if (more) { obuf_size += more; obuf_base = (unsigned char *)Realloc((char *)obuf_base, obuf_size); obuf = obuf_base + EH_SIZE; obptr = obuf + nc; } } /* * check_linemode * Set the global variable 'linemode', which says whether we are in * character-by-character mode or line mode. */ static void check_linemode(Boolean init) { int wasline = linemode; /* * The next line is a deliberate kluge to effectively ignore the SGA * option. If the host will echo for us, we assume * character-at-a-time; otherwise we assume fully cooked by us. * * This allows certain IBM hosts which volunteer SGA but refuse * ECHO to operate more-or-less normally, at the expense of * implementing the (hopefully useless) "character-at-a-time, local * echo" mode. * * We still implement "switch to line mode" and "switch to character * mode" properly by asking for both SGA and ECHO to be off or on, but * we basically ignore the reply for SGA. */ linemode = !hisopts[TELOPT_ECHO] /* && !hisopts[TELOPT_SGA] */; if (init || linemode != wasline) { st_changed(ST_LINE_MODE, linemode); if (!init) { trace_dsn("Operating in %s mode.\n", linemode ? "line" : "character-at-a-time"); } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI && linemode) cooked_init(); #endif /*]*/ } } #if defined(X3270_TRACE) /*[*/ /* * nnn * Expands a number to a character string, for displaying unknown telnet * commands and options. */ static const char * nnn(int c) { static char buf[64]; (void) sprintf(buf, "%d", c); return buf; } /* * cmd * Expands a TELNET command into a character string. */ static const char * cmd(int c) { if (TELCMD_OK(c)) return TELCMD(c); else return nnn(c); } /* * opt * Expands a TELNET option into a character string. */ static const char * opt(unsigned char c) { if (TELOPT_OK(c)) return TELOPT(c); else if (c == TELOPT_TN3270E) return "TN3270E"; #if defined(HAVE_LIBSSL) /*[*/ else if (c == TELOPT_STARTTLS) return "START-TLS"; #endif /*]*/ else return nnn((int)c); } #define LINEDUMP_MAX 32 void trace_netdata(char direction, unsigned const char *buf, int len) { int offset; struct timeval ts; double tdiff; if (!toggled(DS_TRACE)) return; (void) gettimeofday(&ts, (struct timezone *)NULL); if (IN_3270) { tdiff = ((1.0e6 * (double)(ts.tv_sec - ds_ts.tv_sec)) + (double)(ts.tv_usec - ds_ts.tv_usec)) / 1.0e6; trace_dsn("%c +%gs\n", direction, tdiff); } ds_ts = ts; for (offset = 0; offset < len; offset++) { if (!(offset % LINEDUMP_MAX)) trace_dsn("%s%c 0x%-3x ", (offset ? "\n" : ""), direction, offset); trace_dsn("%02x", buf[offset]); } trace_dsn("\n"); } #endif /*]*/ /* * net_output * Send 3270 output over the network: * - Prepend TN3270E header * - Expand IAC to IAC IAC * - Append IAC EOR */ void net_output(void) { static unsigned char *xobuf = NULL; static int xobuf_len = 0; int need_resize = 0; unsigned char *nxoptr, *xoptr; #if defined(X3270_TN3270E) /*[*/ #define BSTART ((IN_TN3270E || IN_SSCP) ? obuf_base : obuf) #else /*][*/ #define BSTART obuf #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ /* Set the TN3720E header. */ if (IN_TN3270E || IN_SSCP) { tn3270e_header *h = (tn3270e_header *)obuf_base; /* Check for sending a TN3270E response. */ if (response_required == TN3270E_RSF_ALWAYS_RESPONSE) { tn3270e_ack(); response_required = TN3270E_RSF_NO_RESPONSE; } /* Set the outbound TN3270E header. */ h->data_type = IN_TN3270E ? TN3270E_DT_3270_DATA : TN3270E_DT_SSCP_LU_DATA; h->request_flag = 0; h->response_flag = 0; h->seq_number[0] = (e_xmit_seq >> 8) & 0xff; h->seq_number[1] = e_xmit_seq & 0xff; trace_dsn("SENT TN3270E(%s NO-RESPONSE %u)\n", IN_TN3270E ? "3270-DATA" : "SSCP-LU-DATA", e_xmit_seq); if (e_funcs & E_OPT(TN3270E_FUNC_RESPONSES)) e_xmit_seq = (e_xmit_seq + 1) & 0x7fff; } #endif /*]*/ /* Reallocate the expanded output buffer. */ while (xobuf_len < (obptr - BSTART + 1) * 2) { xobuf_len += BUFSZ; need_resize++; } if (need_resize) { Replace(xobuf, (unsigned char *)Malloc(xobuf_len)); } /* Copy and expand IACs. */ xoptr = xobuf; nxoptr = BSTART; while (nxoptr < obptr) { if ((*xoptr++ = *nxoptr++) == IAC) { *xoptr++ = IAC; } } /* Append the IAC EOR and transmit. */ *xoptr++ = IAC; *xoptr++ = EOR; net_rawout(xobuf, xoptr - xobuf); trace_dsn("SENT EOR\n"); ns_rsent++; #undef BSTART } #if defined(X3270_TN3270E) /*[*/ /* Send a TN3270E positive response to the server. */ static void tn3270e_ack(void) { unsigned char rsp_buf[10]; tn3270e_header *h_in = (tn3270e_header *)ibuf; int rsp_len = 0; rsp_len = 0; rsp_buf[rsp_len++] = TN3270E_DT_RESPONSE; /* data_type */ rsp_buf[rsp_len++] = 0; /* request_flag */ rsp_buf[rsp_len++] = TN3270E_RSF_POSITIVE_RESPONSE; /* response_flag */ rsp_buf[rsp_len++] = h_in->seq_number[0]; /* seq_number[0] */ if (h_in->seq_number[0] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = h_in->seq_number[1]; /* seq_number[1] */ if (h_in->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = TN3270E_POS_DEVICE_END; rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; trace_dsn("SENT TN3270E(RESPONSE POSITIVE-RESPONSE " "%u) DEVICE-END\n", h_in->seq_number[0] << 8 | h_in->seq_number[1]); net_rawout(rsp_buf, rsp_len); } /* Send a TN3270E negative response to the server. */ static void tn3270e_nak(enum pds rv) { unsigned char rsp_buf[10]; tn3270e_header *h_in = (tn3270e_header *)ibuf; int rsp_len = 0; char *neg = NULL; rsp_buf[rsp_len++] = TN3270E_DT_RESPONSE; /* data_type */ rsp_buf[rsp_len++] = 0; /* request_flag */ rsp_buf[rsp_len++] = TN3270E_RSF_NEGATIVE_RESPONSE; /* response_flag */ rsp_buf[rsp_len++] = h_in->seq_number[0]; /* seq_number[0] */ if (h_in->seq_number[0] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = h_in->seq_number[1]; /* seq_number[1] */ if (h_in->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; switch (rv) { default: case PDS_BAD_CMD: rsp_buf[rsp_len++] = TN3270E_NEG_COMMAND_REJECT; neg = "COMMAND-REJECT"; break; case PDS_BAD_ADDR: rsp_buf[rsp_len++] = TN3270E_NEG_OPERATION_CHECK; neg = "OPERATION-CHECK"; break; } rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; trace_dsn("SENT TN3270E(RESPONSE NEGATIVE-RESPONSE %u) %s\n", h_in->seq_number[0] << 8 | h_in->seq_number[1], neg); net_rawout(rsp_buf, rsp_len); } #if defined(X3270_TRACE) /*[*/ /* Add a dummy TN3270E header to the output buffer. */ Boolean net_add_dummy_tn3270e(void) { tn3270e_header *h; if (!IN_E || tn3270e_submode == E_NONE) return False; space3270out(EH_SIZE); h = (tn3270e_header *)obptr; switch (tn3270e_submode) { case E_NONE: break; case E_NVT: h->data_type = TN3270E_DT_NVT_DATA; break; case E_SSCP: h->data_type = TN3270E_DT_SSCP_LU_DATA; break; case E_3270: h->data_type = TN3270E_DT_3270_DATA; break; } h->request_flag = 0; h->response_flag = TN3270E_RSF_NO_RESPONSE; h->seq_number[0] = 0; h->seq_number[1] = 0; obptr += EH_SIZE; return True; } #endif /*]*/ #endif /*]*/ #if defined(X3270_TRACE) /*[*/ /* * Add IAC EOR to a buffer. */ void net_add_eor(unsigned char *buf, int len) { buf[len++] = IAC; buf[len++] = EOR; } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ /* * net_sendc * Send a character of user data over the network in ANSI mode. */ void net_sendc(char c) { if (c == '\r' && !linemode #if defined(LOCAL_PROCESS) /*[*/ && !local_process #endif /*]*/ ) { /* CR must be quoted */ net_cookout("\r\0", 2); } else { net_cookout(&c, 1); } } /* * net_sends * Send a null-terminated string of user data in ANSI mode. */ void net_sends(const char *s) { net_cookout(s, strlen(s)); } /* * net_send_erase * Sends the KILL character in ANSI mode. */ void net_send_erase(void) { net_cookout(&verase, 1); } /* * net_send_kill * Sends the KILL character in ANSI mode. */ void net_send_kill(void) { net_cookout(&vkill, 1); } /* * net_send_werase * Sends the WERASE character in ANSI mode. */ void net_send_werase(void) { net_cookout(&vwerase, 1); } #endif /*]*/ #if defined(X3270_MENUS) /*[*/ /* * External entry points to negotiate line or character mode. */ void net_linemode(void) { if (!CONNECTED) return; if (hisopts[TELOPT_ECHO]) { dont_opt[2] = TELOPT_ECHO; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(TELOPT_ECHO)); } if (hisopts[TELOPT_SGA]) { dont_opt[2] = TELOPT_SGA; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(TELOPT_SGA)); } } void net_charmode(void) { if (!CONNECTED) return; if (!hisopts[TELOPT_ECHO]) { do_opt[2] = TELOPT_ECHO; net_rawout(do_opt, sizeof(do_opt)); trace_dsn("SENT %s %s\n", cmd(DO), opt(TELOPT_ECHO)); } if (!hisopts[TELOPT_SGA]) { do_opt[2] = TELOPT_SGA; net_rawout(do_opt, sizeof(do_opt)); trace_dsn("SENT %s %s\n", cmd(DO), opt(TELOPT_SGA)); } } #endif /*]*/ /* * net_break * Send telnet break, which is used to implement 3270 ATTN. * */ void net_break(void) { static unsigned char buf[] = { IAC, BREAK }; /* I don't know if we should first send TELNET synch ? */ net_rawout(buf, sizeof(buf)); trace_dsn("SENT BREAK\n"); } /* * net_interrupt * Send telnet IP. * */ void net_interrupt(void) { static unsigned char buf[] = { IAC, IP }; /* I don't know if we should first send TELNET synch ? */ net_rawout(buf, sizeof(buf)); trace_dsn("SENT IP\n"); } /* * net_abort * Send telnet AO. * */ #if defined(X3270_TN3270E) /*[*/ void net_abort(void) { static unsigned char buf[] = { IAC, AO }; if (e_funcs & E_OPT(TN3270E_FUNC_SYSREQ)) { /* * I'm not sure yet what to do here. Should the host respond * to the AO by sending us SSCP-LU data (and putting us into * SSCP-LU mode), or should we put ourselves in it? * Time, and testers, will tell. */ switch (tn3270e_submode) { case E_NONE: case E_NVT: break; case E_SSCP: net_rawout(buf, sizeof(buf)); trace_dsn("SENT AO\n"); if (tn3270e_bound || !(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) { tn3270e_submode = E_3270; check_in3270(); } break; case E_3270: net_rawout(buf, sizeof(buf)); trace_dsn("SENT AO\n"); tn3270e_submode = E_SSCP; check_in3270(); break; } } } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ /* * parse_ctlchar * Parse an stty control-character specification. * A cheap, non-complaining implementation. */ static char parse_ctlchar(char *s) { if (!s || !*s) return 0; if ((int) strlen(s) > 1) { if (*s != '^') return 0; else if (*(s+1) == '?') return 0177; else return *(s+1) - '@'; } else return *s; } #endif /*]*/ #if (defined(X3270_MENUS) || defined(C3270)) && defined(X3270_ANSI) /*[*/ /* * net_linemode_chars * Report line-mode characters. */ struct ctl_char * net_linemode_chars(void) { static struct ctl_char c[9]; c[0].name = "intr"; (void) strcpy(c[0].value, ctl_see(vintr)); c[1].name = "quit"; (void) strcpy(c[1].value, ctl_see(vquit)); c[2].name = "erase"; (void) strcpy(c[2].value, ctl_see(verase)); c[3].name = "kill"; (void) strcpy(c[3].value, ctl_see(vkill)); c[4].name = "eof"; (void) strcpy(c[4].value, ctl_see(veof)); c[5].name = "werase"; (void) strcpy(c[5].value, ctl_see(vwerase)); c[6].name = "rprnt"; (void) strcpy(c[6].value, ctl_see(vrprnt)); c[7].name = "lnext"; (void) strcpy(c[7].value, ctl_see(vlnext)); c[8].name = 0; return c; } #endif /*]*/ #if defined(X3270_TRACE) /*[*/ /* * Construct a string to reproduce the current TELNET options. * Returns a Boolean indicating whether it is necessary. */ Boolean net_snap_options(void) { Boolean any = False; int i; static unsigned char ttype_str[] = { IAC, DO, TELOPT_TTYPE, IAC, SB, TELOPT_TTYPE, TELQUAL_SEND, IAC, SE }; if (!CONNECTED) return False; obptr = obuf; /* Do TTYPE first. */ if (myopts[TELOPT_TTYPE]) { unsigned j; space3270out(sizeof(ttype_str)); for (j = 0; j < sizeof(ttype_str); j++) *obptr++ = ttype_str[j]; } /* Do the other options. */ for (i = 0; i < N_OPTS; i++) { space3270out(6); if (i == TELOPT_TTYPE) continue; if (hisopts[i]) { *obptr++ = IAC; *obptr++ = WILL; *obptr++ = (unsigned char)i; any = True; } if (myopts[i]) { *obptr++ = IAC; *obptr++ = DO; *obptr++ = (unsigned char)i; any = True; } } #if defined(X3270_TN3270E) /*[*/ /* If we're in TN3270E mode, snap the subnegotations as well. */ if (myopts[TELOPT_TN3270E]) { any = True; space3270out(5 + ((connected_type != CN) ? strlen(connected_type) : 0) + ((connected_lu != CN) ? + strlen(connected_lu) : 0) + 2); *obptr++ = IAC; *obptr++ = SB; *obptr++ = TELOPT_TN3270E; *obptr++ = TN3270E_OP_DEVICE_TYPE; *obptr++ = TN3270E_OP_IS; if (connected_type != CN) { (void) memcpy(obptr, connected_type, strlen(connected_type)); obptr += strlen(connected_type); } if (connected_lu != CN) { *obptr++ = TN3270E_OP_CONNECT; (void) memcpy(obptr, connected_lu, strlen(connected_lu)); obptr += strlen(connected_lu); } *obptr++ = IAC; *obptr++ = SE; space3270out(38); (void) memcpy(obptr, functions_req, 4); obptr += 4; *obptr++ = TN3270E_OP_IS; for (i = 0; i < 32; i++) { if (e_funcs & E_OPT(i)) *obptr++ = i; } *obptr++ = IAC; *obptr++ = SE; if (tn3270e_bound) { tn3270e_header *h; int i; int xlen = 0; for (i = 0; i < bind_image_len; i++) { if (bind_image[i] == 0xff) xlen++; } space3270out(EH_SIZE + bind_image_len + xlen + 3); h = (tn3270e_header *)obptr; h->data_type = TN3270E_DT_BIND_IMAGE; h->request_flag = 0; h->response_flag = 0; h->seq_number[0] = 0; h->seq_number[1] = 0; obptr += EH_SIZE; for (i = 0; i < bind_image_len; i++) { if (bind_image[i] == 0xff) *obptr++ = 0xff; *obptr++ = bind_image[i]; } *obptr++ = IAC; *obptr++ = EOR; } } #endif /*]*/ return any; } #endif /*]*/ /* * Set blocking/non-blocking mode on the socket. On error, pops up an error * message, but does not close the socket. */ static int non_blocking(Boolean on) { #if !defined(BLOCKING_CONNECT_ONLY) /*[*/ # if defined(FIONBIO) /*[*/ int i = on ? 1 : 0; if (SOCK_IOCTL(sock, FIONBIO, &i) < 0) { popup_a_sockerr("ioctl(FIONBIO)"); return -1; } # else /*][*/ int f; if ((f = fcntl(sock, F_GETFL, 0)) == -1) { popup_an_errno(errno, "fcntl(F_GETFL)"); return -1; } if (on) f |= O_NDELAY; else f &= ~O_NDELAY; if (fcntl(sock, F_SETFL, f) < 0) { popup_an_errno(errno, "fcntl(F_SETFL)"); return -1; } # endif /*]*/ #endif /*]*/ return 0; } #if defined(HAVE_LIBSSL) /*[*/ /* Initialize the OpenSSL library. */ static void ssl_init(void) { static Boolean ssl_initted = False; if (!ssl_initted) { SSL_load_error_strings(); SSL_library_init(); ssl_initted = True; ssl_ctx = SSL_CTX_new(SSLv23_method()); if (ssl_ctx == NULL) { popup_an_error("SSL_CTX_new failed"); ssl_host = False; return; } SSL_CTX_set_options(ssl_ctx, SSL_OP_ALL); } ssl_con = SSL_new(ssl_ctx); if (ssl_con == NULL) { popup_an_error("SSL_new failed"); ssl_host = False; } SSL_set_verify(ssl_con, 0/*xxx*/, NULL); SSL_CTX_set_info_callback(ssl_ctx, client_info_callback); /* XXX: May need to get key file and password. */ if (appres.cert_file) { if (!(SSL_CTX_use_certificate_chain_file(ssl_ctx, appres.cert_file))) { unsigned long e; char err_buf[120]; e = ERR_get_error(); (void) ERR_error_string(e, err_buf); popup_an_error("SSL_CTX_use_certificate_chain_file(" "\"%s\") failed:\n%s", appres.cert_file, err_buf); } } SSL_CTX_set_default_verify_paths(ssl_ctx); } /* Callback for tracing protocol negotiation. */ static void client_info_callback(INFO_CONST SSL *s, int where, int ret) { if (where == SSL_CB_CONNECT_LOOP) { trace_dsn("SSL_connect: %s %s\n", SSL_state_string(s), SSL_state_string_long(s)); } else if (where == SSL_CB_CONNECT_EXIT) { if (ret == 0) { trace_dsn("SSL_connect: failed in %s\n", SSL_state_string_long(s)); } else if (ret < 0) { unsigned long e; char err_buf[1024]; err_buf[0] = '\n'; e = ERR_get_error(); if (e != 0) (void) ERR_error_string(e, err_buf + 1); #if defined(_WIN32) /*[*/ else if (GetLastError() != 0) strcpy(err_buf + 1, win32_strerror(GetLastError())); #else /*][*/ else if (errno != 0) strcpy(err_buf + 1, strerror(errno)); #endif /*]*/ else err_buf[0] = '\0'; trace_dsn("SSL_connect: error in %s%s\n", SSL_state_string_long(s), err_buf); popup_an_error("SSL_connect: error in %s%s", SSL_state_string_long(s), err_buf); } } } /* Process a STARTTLS subnegotiation. */ static void continue_tls(unsigned char *sbbuf, int len) { int rv; /* Whatever happens, we're not expecting another SB STARTTLS. */ need_tls_follows = False; /* Make sure the option is FOLLOWS. */ if (len < 2 || sbbuf[1] != TLS_FOLLOWS) { /* Trace the junk. */ trace_dsn("%s ? %s\n", opt(TELOPT_STARTTLS), cmd(SE)); popup_an_error("TLS negotiation failure"); net_disconnect(); return; } /* Trace what we got. */ trace_dsn("%s FOLLOWS %s\n", opt(TELOPT_STARTTLS), cmd(SE)); /* Initialize the SSL library. */ ssl_init(); if (ssl_con == NULL) { /* Failed. */ net_disconnect(); return; } /* Set up the TLS/SSL connection. */ if (SSL_set_fd(ssl_con, sock) != 1) { trace_dsn("Can't set fd!\n"); } #if defined(_WIN32) /*[*/ /* Make the socket blocking for SSL. */ (void) WSAEventSelect(sock, sock_handle, 0); (void) non_blocking(False); #endif /*]*/ rv = SSL_connect(ssl_con); #if defined(_WIN32) /*[*/ /* Make the socket non-blocking again for event processing. */ (void) WSAEventSelect(sock, sock_handle, FD_READ | FD_CONNECT | FD_CLOSE); #endif /*]*/ if (rv != 1) { /* Error already displayed. */ trace_dsn("continue_tls: SSL_connect failed\n"); net_disconnect(); return; } secure_connection = True; /* Success. */ trace_dsn("TLS/SSL negotiated connection complete. " "Connection is now secure.\n"); /* Tell the world that we are (still) connected, now in secure mode. */ host_connected(); } #endif /*]*/ /* Return the current BIND application name, if any. */ const char * net_query_bind_plu_name(void) { #if defined(X3270_TN3270E) /*[*/ /* * Return the PLU name, if we're in TN3270E 3270 mode and have * negotiated the BIND-IMAGE option. */ if ((cstate == CONNECTED_TN3270E) && (e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return plu_name? plu_name: ""; else return ""; #else /*][*/ /* No TN3270E, no BIND negotiation. */ return ""; #endif /*]*/ } /* Return the current connection state. */ const char * net_query_connection_state(void) { if (CONNECTED) { #if defined(X3270_TN3270E) /*[*/ if (IN_E) { switch (tn3270e_submode) { default: case E_NONE: if (tn3270e_bound) return "tn3270e bound"; else return "tn3270e unbound"; case E_3270: return "tn3270e lu-lu"; case E_NVT: return "tn3270e nvt"; case E_SSCP: return "tn3270 sscp-lu"; } } else #endif /*]*/ { if (IN_3270) return "tn3270 3270"; else return "tn3270 nvt"; } } else if (HALF_CONNECTED) return "connecting"; else return ""; } /* Return the LU name. */ const char * net_query_lu_name(void) { if (CONNECTED && connected_lu != CN) return connected_lu; else return ""; } /* Return the hostname and port. */ const char * net_query_host(void) { static char *s = CN; if (CONNECTED) { Free(s); #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { s = xs_buffer("process %s", hostname); } else #endif /*]*/ { s = xs_buffer("host %s %u %s", hostname, current_port, #if defined(HAVE_LIBSSL) /*[*/ secure_connection? "encrypted": #endif /*]*/ "unencrypted" ); } return s; } else return ""; } /* Return the local address for the socket. */ int net_getsockname(void *buf, int *len) { if (sock < 0) return -1; return getsockname(sock, buf, (socklen_t *)(void *)len); } /* Return a text version of the current proxy type, or NULL. */ char * net_proxy_type(void) { if (proxy_type > 0) return proxy_type_name(proxy_type); else return NULL; } /* Return the current proxy host, or NULL. */ char * net_proxy_host(void) { if (proxy_type > 0) return proxy_host; else return NULL; } /* Return the current proxy port, or NULL. */ char * net_proxy_port(void) { if (proxy_type > 0) return proxy_portname; else return NULL; } /* Return the SNA binding state. */ Boolean net_bound(void) { return (IN_E && tn3270e_bound); } ibm-3270-3.3.10ga4/tcl3270/ft_dft.c0000644000175000017500000004317111254565704015705 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * ft_dft.c * File transfer: DFT-style data processing functions */ #include "globals.h" #if defined(X3270_FT) /*[*/ #include "appres.h" #include "3270ds.h" #include "ft_dft_ds.h" #include "actionsc.h" #include "charsetc.h" #include "kybdc.h" #include "ft_dftc.h" #include "ftc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include extern unsigned char aid; /* Macros. */ #define OPEN_MSG "FT:MSG" /* Open request for message */ #define END_TRANSFER "TRANS03" /* Message for xfer complete */ #define DFT_MIN_BUF 256 #define DFT_MAX_BUF 32768 #define DFT_MAX_UNGETC 32 /* Typedefs. */ struct data_buffer { char sf_length[2]; /* SF length = 0x0023 */ char sf_d0; /* 0xD0 */ char sf_request_type[2]; /* request type */ char compress_indic[2]; /* 0xc080 */ char begin_data; /* 0x61 */ char data_length[2]; /* Data Length in 3270 byte order+5 */ char data[256]; /* The actual data */ }; /* Globals. */ int dft_buffersize = 0; /* Buffer size (LIMIN, LIMOUT) */ /* Statics. */ static Boolean message_flag = False; /* Open Request for msg received */ static int dft_eof; static unsigned long recnum; static char *abort_string = CN; static unsigned char *dft_savebuf = NULL; static int dft_savebuf_len = 0; static int dft_savebuf_max = 0; static unsigned char dft_ungetc_cache[DFT_MAX_UNGETC]; static size_t dft_ungetc_count = 0; static void dft_abort(const char *s, unsigned short code); static void dft_close_request(void); static void dft_data_insert(struct data_buffer *data_bufr); static void dft_get_request(void); static void dft_insert_request(void); static void dft_open_request(unsigned short len, unsigned char *cp); static void dft_set_cur_req(void); /* Process a Transfer Data structured field from the host. */ void ft_dft_data(unsigned char *data, int length _is_unused) { struct data_buffer *data_bufr = (struct data_buffer *)data; unsigned short data_length, data_type; unsigned char *cp; if (ft_state == FT_NONE) { trace_ds(" (no transfer in progress)\n"); return; } /* Get the length. */ cp = (unsigned char *)(data_bufr->sf_length); GET16(data_length, cp); /* Get the function type. */ cp = (unsigned char *)(data_bufr->sf_request_type); GET16(data_type, cp); /* Handle the requests */ switch (data_type) { case TR_OPEN_REQ: dft_open_request(data_length, cp); break; case TR_INSERT_REQ: /* Insert Request */ dft_insert_request(); break; case TR_DATA_INSERT: dft_data_insert(data_bufr); break; case TR_SET_CUR_REQ: dft_set_cur_req(); break; case TR_GET_REQ: dft_get_request(); break; case TR_CLOSE_REQ: dft_close_request(); break; default: trace_ds(" Unsupported(0x%04x)\n", data_type); break; } } /* Process an Open request. */ static void dft_open_request(unsigned short len, unsigned char *cp) { char *name = "?"; char namebuf[8]; char *s; unsigned short recsz = 0; if (len == 0x23) { name = (char *)cp + 25; } else if (len == 0x29) { unsigned char *recszp; recszp = cp + 27; GET16(recsz, recszp); name = (char *)cp + 31; } else { dft_abort(get_message("ftDftUknownOpen"), TR_OPEN_REQ); return; } (void) memcpy(namebuf, name, 7); namebuf[7] = '\0'; s = &namebuf[6]; while (s >= namebuf && *s == ' ') { *s-- = '\0'; } if (recsz) { trace_ds(" Open('%s',recsz=%u)\n", namebuf, recsz); } else { trace_ds(" Open('%s')\n", namebuf); } if (!strcmp(namebuf, OPEN_MSG)) message_flag = True; else { message_flag = False; ft_running(False); } dft_eof = False; recnum = 1; dft_ungetc_count = 0; /* Acknowledge the Open. */ trace_ds("> WriteStructuredField FileTransferData OpenAck\n"); obptr = obuf; space3270out(6); *obptr++ = AID_SF; SET16(obptr, 5); *obptr++ = SF_TRANSFER_DATA; SET16(obptr, 9); net_output(); } /* Process an Insert request. */ static void dft_insert_request(void) { trace_ds(" Insert\n"); /* Doesn't currently do anything. */ } /* Process a Data Insert request. */ static void dft_data_insert(struct data_buffer *data_bufr) { /* Received a data buffer, get the length and process it */ int my_length; unsigned char *cp; if (!message_flag && ft_state == FT_ABORT_WAIT) { dft_abort(get_message("ftUserCancel"), TR_DATA_INSERT); return; } cp = (unsigned char *) (data_bufr->data_length); /* Get the data length in native format. */ GET16(my_length, cp); /* Adjust for 5 extra count */ my_length -= 5; trace_ds(" Data(rec=%lu) %d bytes\n", recnum, my_length); /* * First, check to see if we have message data or file data. * Message data will result in a popup. */ if (message_flag) { /* Data is from a message */ unsigned char *msgp; unsigned char *dollarp; /* Get storage to copy the message. */ msgp = (unsigned char *)Malloc(my_length + 1); /* Copy the message. */ memcpy(msgp, data_bufr->data, my_length); /* Null terminate the string. */ dollarp = (unsigned char *)memchr(msgp, '$', my_length); if (dollarp != NULL) *dollarp = '\0'; else *(msgp + my_length) = '\0'; /* If transfer completed ok, use our msg. */ if (memcmp(msgp, END_TRANSFER, strlen(END_TRANSFER)) == 0) { Free(msgp); ft_complete((String)NULL); } else if (ft_state == FT_ABORT_SENT && abort_string != CN) { Free(msgp); ft_complete(abort_string); Replace(abort_string, CN); } else { ft_complete((char *)msgp); Free(msgp); } } else if (my_length > 0) { int rv = 1; /* Write the data out to the file. */ if (ascii_flag && (remap_flag || cr_flag)) { size_t obuf_len = 4 * my_length; char *ob0 = Malloc(obuf_len); char *ob = ob0; unsigned char *s = (unsigned char *)data_bufr->data; unsigned len = my_length; int nx; /* Copy and convert data_bufr->data to ob0. */ while (len-- && obuf_len) { unsigned char c = *s++; /* Strip CR's and ^Z's. */ if (cr_flag && ((c == '\r' || c == 0x1a))) { continue; } if (!remap_flag) { *ob++ = c; obuf_len--; continue; } /* * Convert to local multi-byte. * We do that by inverting the host's * EBCDIC-to-ASCII map, getting back to * EBCDIC, and converting to multi-byte * from there. */ #if defined(X3270_DBCS) /*[*/ switch (ft_dbcs_state) { case FT_DBCS_NONE: if (c == EBC_so) { ft_dbcs_state = FT_DBCS_SO; continue; } /* * fall through to non-DBCS case below */ break; case FT_DBCS_SO: if (c == EBC_si) ft_dbcs_state = FT_DBCS_NONE; else { ft_dbcs_byte1 = i_asc2ft[c]; ft_dbcs_state = FT_DBCS_LEFT; } continue; case FT_DBCS_LEFT: if (c == EBC_si) { ft_dbcs_state = FT_DBCS_NONE; continue; } nx = ebcdic_to_multibyte( (ft_dbcs_byte1 << 8) | i_asc2ft[c], (char *)ob, obuf_len); if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; ft_dbcs_state = FT_DBCS_SO; continue; } #endif /*]*/ if (c < 0x20 || (c >= 0x80 && c < 0xa0 && c != 0x9f)) { /* * Control code, treat it as Unicode. * * Note that IND$FILE and the VM 'TYPE' * command think that EBCDIC X'E1' is * a control code; IND$FILE maps it * onto ASCII 0x9f. So we skip it * explicitly and treat it as printable * here. */ nx = unicode_to_multibyte(c, ob, obuf_len); } else if (c == 0xff) { /* * IND$FILE maps X'FF' to 0xff. We * want U+009F. */ nx = unicode_to_multibyte(0x9f, ob, obuf_len); } else { /* Displayable character, remap. */ c = i_asc2ft[c]; nx = ebcdic_to_multibyte(c, (char *)ob, obuf_len); } if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; } /* Write the result to the file. */ if (ob - ob0) { rv = fwrite(ob0, ob - ob0, (size_t)1, ft_local_file); ft_length += ob - ob0; } Free(ob0); } else { /* Write the buffer to the file directly. */ rv = fwrite((char *)data_bufr->data, my_length, (size_t)1, ft_local_file); ft_length += my_length; } if (!rv) { /* write failed */ char *buf; buf = xs_buffer("write(%s): %s", ft_local_filename, strerror(errno)); dft_abort(buf, TR_DATA_INSERT); Free(buf); } /* Add up amount transferred. */ ft_update_length(); } /* Send an acknowledgement frame back. */ trace_ds("> WriteStructuredField FileTransferData DataAck(rec=%lu)\n", recnum); obptr = obuf; space3270out(12); *obptr++ = AID_SF; SET16(obptr, 11); *obptr++ = SF_TRANSFER_DATA; SET16(obptr, TR_NORMAL_REPLY); SET16(obptr, TR_RECNUM_HDR); SET32(obptr, recnum); recnum++; net_output(); } /* Process a Set Cursor request. */ static void dft_set_cur_req(void) { trace_ds(" SetCursor\n"); /* Currently doesn't do anything. */ } #if defined(X3270_DBCS) /*[*/ /* Store a byte inthe input buffer or ungetc cache. */ static void store_inbyte(unsigned char c, unsigned char **bufptr, size_t *numbytes) { if (*numbytes) { *(*bufptr) = c; (*bufptr)++; (*numbytes)--; } else { dft_ungetc_cache[dft_ungetc_count++] = c; } } #endif /*]*/ /* * Read a character from a local file in ASCII mode. * Stores the data in 'bufptr' and returns the number of bytes stored. * Returns -1 for EOF. */ /*static*/ size_t dft_ascii_read(unsigned char *bufptr, size_t numbytes) { char inbuf[16]; int in_ix = 0; char c; enum me_fail error; ebc_t e; int consumed; ucs4_t u; /* Belt-n-suspenders. */ if (!numbytes) return 0; /* Return data from the ungetc cache first. */ if (dft_ungetc_count) { size_t nm = dft_ungetc_count; if (nm > numbytes) nm = numbytes; memcpy(bufptr, dft_ungetc_cache, nm); if (dft_ungetc_count > nm) memmove(dft_ungetc_cache, &dft_ungetc_cache[nm], dft_ungetc_count - nm); dft_ungetc_count -= nm; return nm; } if (remap_flag) { /* Read bytes until we have a legal multibyte sequence. */ do { int consumed; c = fgetc(ft_local_file); if (c == EOF) { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { *bufptr = EBC_si; ft_last_dbcs = False; return 1; } #endif /*]*/ return -1; } error = ME_NONE; inbuf[in_ix++] = c; (void) multibyte_to_unicode(inbuf, in_ix, &consumed, &error); if (error == ME_INVALID) { #if defined(EILSEQ) /*[*/ errno = EILSEQ; #else /*][*/ errno = EINVAL; #endif /*]*/ return -1; } } while (error == ME_SHORT); } else { /* Get a byte from the file. */ c = fgetc(ft_local_file); if (c == EOF) return -1; } /* Expand NL to CR/LF. */ if (cr_flag && !ft_last_cr && c == '\n') { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { *bufptr = EBC_si; dft_ungetc_cache[0] = '\r'; dft_ungetc_cache[1] = '\n'; dft_ungetc_count = 2; ft_last_dbcs = False; return 1; } else #endif /*]*/ { *bufptr = '\r'; dft_ungetc_cache[0] = '\n'; dft_ungetc_count = 1; } return 1; } ft_last_cr = (c == '\r'); /* The no-remap case is pretty simple. */ if (!remap_flag) { *bufptr = c; return 1; } /* * Translate, inverting the host's fixed EBCDIC-to-ASCII conversion * table and applying the host code page. * Control codes are treated as Unicode and mapped directly. * We also handle DBCS here. */ u = multibyte_to_unicode(inbuf, in_ix, &consumed, &error); if (u < 0x20 || ((u >= 0x80 && u < 0x9f))) e = i_asc2ft[u]; else if (u == 0x9f) e = 0xff; else e = unicode_to_ebcdic(u); if (e & 0xff00) { #if defined(X3270_DBCS) /*[*/ unsigned char *bp0 = bufptr; if (!ft_last_dbcs) store_inbyte(EBC_so, &bufptr, &numbytes); store_inbyte(i_ft2asc[(e >> 8) & 0xff], &bufptr, &numbytes); store_inbyte(i_ft2asc[e & 0xff], &bufptr, &numbytes); ft_last_dbcs = True; return bufptr - bp0; #else /*][*/ *bufptr = '?'; return 1; #endif /*]*/ } else { unsigned char nc = e? i_ft2asc[e]: '?'; #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { *bufptr = EBC_si; dft_ungetc_cache[0] = nc; dft_ungetc_count = 1; ft_last_dbcs = False; } else #endif /*]*/ *bufptr = nc; return 1; } } /* Process a Get request. */ static void dft_get_request(void) { size_t numbytes; size_t numread; size_t total_read = 0; unsigned char *bufptr; trace_ds(" Get\n"); if (!message_flag && ft_state == FT_ABORT_WAIT) { dft_abort(get_message("ftUserCancel"), TR_GET_REQ); return; } /* Read a buffer's worth. */ set_dft_buffersize(); space3270out(dft_buffersize); numbytes = dft_buffersize - 27; /* always read 5 bytes less than we're allowed */ bufptr = obuf + 17; while (!dft_eof && numbytes) { if (ascii_flag && (remap_flag || cr_flag)) { numread = dft_ascii_read(bufptr, numbytes); if (numread == (size_t)-1) { dft_eof = True; break; } bufptr += numread; numbytes -= numread; total_read += numread; } else { /* Binary read. */ numread = fread(bufptr, 1, numbytes, ft_local_file); if (numread <= 0) { break; } bufptr += numread; numbytes -= numread; total_read += numread; if (feof(ft_local_file)) dft_eof = True; if (feof(ft_local_file) || ferror(ft_local_file)) { break; } } } /* Check for read error. */ if (ferror(ft_local_file)) { char *buf; buf = xs_buffer("read(%s): %s", ft_local_filename, strerror(errno)); dft_abort(buf, TR_GET_REQ); Free(buf); return; } /* Set up SF header for Data or EOF. */ obptr = obuf; *obptr++ = AID_SF; obptr += 2; /* skip SF length for now */ *obptr++ = SF_TRANSFER_DATA; if (total_read) { trace_ds("> WriteStructuredField FileTransferData Data(rec=%lu) %d bytes\n", recnum, (int)total_read); SET16(obptr, TR_GET_REPLY); SET16(obptr, TR_RECNUM_HDR); SET32(obptr, recnum); recnum++; SET16(obptr, TR_NOT_COMPRESSED); *obptr++ = TR_BEGIN_DATA; SET16(obptr, total_read + 5); obptr += total_read; ft_length += total_read; } else { trace_ds("> WriteStructuredField FileTransferData EOF\n"); *obptr++ = HIGH8(TR_GET_REQ); *obptr++ = TR_ERROR_REPLY; SET16(obptr, TR_ERROR_HDR); SET16(obptr, TR_ERR_EOF); dft_eof = True; } /* Set the SF length. */ bufptr = obuf + 1; SET16(bufptr, obptr - (obuf + 1)); /* Save the data. */ dft_savebuf_len = obptr - obuf; if (dft_savebuf_len > dft_savebuf_max) { dft_savebuf_max = dft_savebuf_len; Replace(dft_savebuf, (unsigned char *)Malloc(dft_savebuf_max)); } (void) memcpy(dft_savebuf, obuf, dft_savebuf_len); aid = AID_SF; /* Write the data. */ net_output(); ft_update_length(); } /* Process a Close request. */ static void dft_close_request(void) { /* * Recieved a close request from the system. * Return a close acknowledgement. */ trace_ds(" Close\n"); trace_ds("> WriteStructuredField FileTransferData CloseAck\n"); obptr = obuf; space3270out(6); *obptr++ = AID_SF; SET16(obptr, 5); /* length */ *obptr++ = SF_TRANSFER_DATA; SET16(obptr, TR_CLOSE_REPLY); net_output(); } /* Abort a transfer. */ static void dft_abort(const char *s, unsigned short code) { Replace(abort_string, NewString(s)); trace_ds("> WriteStructuredField FileTransferData Error\n"); obptr = obuf; space3270out(10); *obptr++ = AID_SF; SET16(obptr, 9); /* length */ *obptr++ = SF_TRANSFER_DATA; *obptr++ = HIGH8(code); *obptr++ = TR_ERROR_REPLY; SET16(obptr, TR_ERROR_HDR); SET16(obptr, TR_ERR_CMDFAIL); net_output(); /* Update the pop-up and state. */ ft_aborting(); } /* Processes a Read Modified command when there is upload data pending. */ void dft_read_modified(void) { if (dft_savebuf_len) { trace_ds("> WriteStructuredField FileTransferData\n"); obptr = obuf; space3270out(dft_savebuf_len); memcpy(obptr, dft_savebuf, dft_savebuf_len); obptr += dft_savebuf_len; net_output(); } } /* Update the buffersize for generating a Query Reply. */ void set_dft_buffersize(void) { if (dft_buffersize == 0) { dft_buffersize = appres.dft_buffer_size; if (dft_buffersize == 0) dft_buffersize = DFT_BUF; } if (dft_buffersize > DFT_MAX_BUF) dft_buffersize = DFT_MAX_BUF; if (dft_buffersize < DFT_MIN_BUF) dft_buffersize = DFT_MIN_BUF; } #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/ansic.h0000644000175000017500000000453411254565704015541 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ansic.h * Global declarations for ansi.c. */ #if defined(X3270_ANSI) /*[*/ extern void ansi_init(void); extern void ansi_process(unsigned int c); extern void ansi_send_clear(void); extern void ansi_send_down(void); extern void ansi_send_home(void); extern void ansi_send_left(void); extern void ansi_send_pa(int nn); extern void ansi_send_pf(int nn); extern void ansi_send_right(void); extern void ansi_send_up(void); extern void ansi_snap(void); extern void ansi_snap_modes(void); extern void toggle_lineWrap(struct toggle *t, enum toggle_type type); #else /*][*/ #define ansi_init() #define ansi_process(n) #define ansi_send_clear() #define ansi_send_down() #define ansi_send_home() #define ansi_send_left() #define ansi_send_pa(n) #define ansi_send_pf(n) #define ansi_send_right() #define ansi_send_up() #define ansi_snap() #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/ft_cut_ds.h0000644000175000017500000000727411254565704016422 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Data Stream definitions for CUT-style file transfers. */ /* Primary Area */ #define O_FRAME_TYPE 0 /* offset to frame type */ #define FT_CONTROL_CODE 0xc3 /* frame type: control code (host->) */ #define O_CC_FRAME_SEQ 1 /* offset to frame sequence */ #define O_CC_STATUS_CODE 2 /* offset to status code */ #define SC_HOST_ACK 0x8181 /* ack of IND$FILE command */ #define SC_XFER_COMPLETE 0x8189 /* file transfer complete */ #define SC_ABORT_FILE 0x8194 /* abort, file error */ #define SC_ABORT_XMIT 0x8198 /* abort, transmission error */ #define O_CC_MESSAGE 4 /* offset of message text */ #define FT_DATA_REQUEST 0xc2 /* frame type: data request (host->) */ #define O_DR_SF 1 /* offset to start field */ #define O_DR_DATA_CODE 2 /* offset to data code */ #define O_DR_FRAME_SEQ 3 /* offset to frame sequence */ #define FT_RETRANSMIT 0x4c /* frame type: retransmit (host->) */ #define FT_DATA 0xc1 /* frame type: data (bidirectional) */ #define O_DT_FRAME_SEQ 1 /* offset to frame sequence */ #define O_DT_CSUM 2 /* offset to checksum */ #define O_DT_LEN 3 /* offset to length */ #define O_DT_DATA 5 /* offset to data */ /* Response Area */ #define O_RESPONSE 1914 /* offset to response area */ #define RO_FRAME_TYPE (O_RESPONSE+1) /* response frame type */ #define RFT_RETRANSMIT 0x4c /* response frame type: retransmit */ #define RFT_CONTROL_CODE 0xc3 /* response frame type: control code */ #define RO_FRAME_SEQ (O_RESPONSE+2) /* response frame sequence */ #define RO_REASON_CODE (O_RESPONSE+3) /* response reason code */ /* Special Data */ #define EOF_DATA1 0x5c /* special data for EOF */ #define EOF_DATA2 0xa9 /* Acknowledgement AIDs */ #define ACK_OK AID_ENTER #define ACK_RETRANSMIT AID_PF1 #define ACK_RESYNC_VM AID_CLEAR #define ACK_RESYNC_TSO AID_PA2 #define ACK_ABORT AID_PF2 /* Data area for uploads. */ #define O_UP_DATA_CODE 2 /* offset to data code */ #define O_UP_FRAME_SEQ 3 /* offset to frame sequence */ #define O_UP_CSUM 4 /* offset to checksum */ #define O_UP_LEN 5 /* offset to length */ #define O_UP_DATA 7 /* offset to start of data */ #define O_UP_MAX (1919 - O_UP_DATA) /* max upload data */ ibm-3270-3.3.10ga4/tcl3270/trace_dsc.h0000644000175000017500000000505511254565704016372 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * trace_dsc.h * Global declarations for trace_ds.c. */ #if defined(X3270_TRACE) /*[*/ extern Boolean trace_skipping; extern char *tracefile_name; const char *rcba(int baddr); void toggle_dsTrace(struct toggle *t, enum toggle_type tt); void toggle_eventTrace(struct toggle *t, enum toggle_type tt); void toggle_screenTrace(struct toggle *t, enum toggle_type tt); void trace_ansi_disc(void); void trace_char(char c); void trace_ds(const char *fmt, ...) printflike(1, 2); void trace_ds_nb(const char *fmt, ...) printflike(1, 2); void trace_dsn(const char *fmt, ...) printflike(1, 2); void trace_event(const char *fmt, ...) printflike(1, 2); void trace_screen(void); void trace_rollover_check(void); #else /*][*/ #define rcba 0 && #if defined(__GNUC__) /*[*/ #define trace_ds(format, args...) #define trace_dsn(format, args...) #define trace_ds_nb(format, args...) #define trace_event(format, args...) #else /*][*/ #define trace_ds 0 && #define trace_ds_nb 0 && #define trace_dsn 0 && #define trace_event 0 && #define rcba 0 && #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/actionsc.h0000644000175000017500000000465711254565704016255 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * actionsc.h * Global declarations for actions.c. */ /* types of internal actions */ enum iaction { IA_STRING, IA_PASTE, IA_REDRAW, IA_KEYPAD, IA_DEFAULT, IA_KEY, IA_MACRO, IA_SCRIPT, IA_PEEK, IA_TYPEAHEAD, IA_FT, IA_COMMAND, IA_KEYMAP, IA_IDLE }; extern enum iaction ia_cause; extern int actioncount; extern XtActionsRec *actions; extern const char *ia_name[]; #if defined(X3270_TRACE) /*[*/ extern void action_debug(XtActionProc action, XEvent *event, String *params, Cardinal *num_params); #else /*][*/ #define action_debug(a, e, p, n) #endif /*]*/ extern void action_init(void); extern void action_internal(XtActionProc action, enum iaction cause, const char *parm1, const char *parm2); extern const char *action_name(XtActionProc action); extern int check_usage(XtActionProc action, Cardinal nargs, Cardinal nargs_min, Cardinal nargs_max); extern Boolean event_is_meta(int state); ibm-3270-3.3.10ga4/tcl3270/tcl3270.c0000644000175000017500000011362111254565711015531 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, * GA 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor their * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR * GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tclAppInit.c -- * * Provides a default version of the main program and Tcl_AppInit * procedure for Tcl applications (without Tk). * * Copyright (c) 1993 The Regents of the University of California. * Copyright (c) 1994-1997 Sun Microsystems, Inc. * Copyright (c) 1998-1999 by Scriptics Corporation. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * RCS: @(#) $Id: tcl3270.c,v 1.35 2007/07/17 15:58:53 pdm Exp $ */ /* * tcl3270.c * A tcl-based 3270 Terminal Emulator * Main proceudre. */ #include "tcl.h" #include "globals.h" #include #include #include #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "ctlr.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "screenc.h" #include "selectc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" /* * The following variable is a special hack that is needed in order for * Sun shared libraries to be used for Tcl. */ #if defined(_sun) /*[*/ extern int matherr(); int *tclDummyMathPtr = (int *) matherr; #endif /*]*/ static Tcl_ObjCmdProc x3270_cmd; static Tcl_ObjCmdProc Rows_cmd, Cols_cmd; static enum { NOT_WAITING, /* Not waiting */ AWAITING_CONNECT, /* Connect (negotiation completion) */ AWAITING_RESET, /* Keyboard locked */ AWAITING_FT, /* File transfer in progress */ AWAITING_IFIELD, /* Wait InputField */ AWAITING_3270, /* Wait 3270Mode */ AWAITING_NVT, /* Wait NVTMode */ AWAITING_OUTPUT, /* Wait Output */ AWAITING_SOUTPUT, /* Snap Wait */ AWAITING_DISCONNECT, /* Wait Disconnect */ AWAITING_UNLOCK /* Wait Unlock */ } waiting = NOT_WAITING; static const char *wait_name[] = { "not waiting", "connection incomplete", "keyboard locked", "file transfer in progress", "need input field", "need 3270 mode", "need NVT mode", "need host output", "need snap host output", "need host disconnect", "need keyboard unlock" }; static const char *unwait_name[] = { "wasn't waiting", "connection complete", "keyboard unlocked", "file transfer complete", "input field found", "in 3270 mode", "in NVT mode", "host generated output", "host generated snap output", "host disconnected", "keyboard unlocked" }; static unsigned long wait_id = 0L; static unsigned long command_timeout_id = 0L; static int cmd_ret; static char *action = NULL; static Boolean interactive = False; /* Local prototypes. */ static void ps_clear(void); static int tcl3270_main(int argc, const char *argv[]); static void negotiate(void); static char *tc_scatv(char *s); static void snap_save(void); static void wait_timed_out(void); /* Macros.c stuff. */ static Boolean in_cmd = False; static Tcl_Interp *sms_interp; static Boolean output_wait_needed = False; static char *pending_string = NULL; static char *pending_string_ptr = NULL; static Boolean pending_hex = False; Boolean macro_output = False; /* Is the keyboard is locked due to user input? */ #define KBWAIT (kybdlock & (KL_OIA_LOCKED|KL_OIA_TWAIT|KL_DEFERRED_UNLOCK)) #define CKBWAIT (appres.toggle[AID_WAIT].value && KBWAIT) /* Is it safe to continue a script waiting for an input field? */ #define INPUT_OKAY ( \ IN_SSCP || \ (IN_3270 && formatted && cursor_addr && !CKBWAIT) || \ (IN_ANSI && !(kybdlock & KL_AWAITING_FIRST)) \ ) /* Is is safe to continue a script waiting for the connection to complete? */ #define CONNECT_DONE (IN_SSCP || IN_3270 || IN_ANSI) /* Shorthand macro to unlock the current action. */ #define UNBLOCK() { \ trace_event("Unblocked %s (%s)\n", action, unwait_name[waiting]); \ waiting = NOT_WAITING; \ if (wait_id != 0L) { \ RemoveTimeOut(wait_id); \ wait_id = 0L; \ } \ } /* *---------------------------------------------------------------------- * * main -- * * This is the main program for the application. * * Results: * None: Tcl_Main never returns here, so this procedure never * returns either. * * Side effects: * Whatever the application does. * *---------------------------------------------------------------------- */ int main(int argc, char **argv) { Tcl_Main(argc, argv, Tcl_AppInit); return 0; } /* *---------------------------------------------------------------------- * * Tcl_AppInit -- * * This procedure performs application-specific initialization. * Most applications, especially those that incorporate additional * packages, will have their own version of this procedure. * * Results: * Returns a standard Tcl completion code, and leaves an error * message in the interp's result if an error occurs. * * Side effects: * Depends on the startup script. * *---------------------------------------------------------------------- */ int Tcl_AppInit(Tcl_Interp *interp) { const char *s0, *s; int tcl_argc; const char **tcl_argv; int argc; const char **argv; int i; Tcl_Obj *argv_obj; char argc_buf[32]; if (Tcl_Init(interp) == TCL_ERROR) { return TCL_ERROR; } /* Use argv and argv0 to figure out our command-line arguments. */ s0 = Tcl_GetVar(interp, "argv0", 0); if (s0 == NULL) return TCL_ERROR; s = Tcl_GetVar(interp, "argv", 0); if (s == NULL) return TCL_ERROR; (void) Tcl_SplitList(interp, s, &tcl_argc, &tcl_argv); argc = tcl_argc + 1; argv = (const char **)Malloc((argc + 1) * sizeof(char *)); argv[0] = s0; for (i = 0; i < tcl_argc; i++) { argv[1 + i] = tcl_argv[i]; } argv[argc] = NULL; /* Find out if we're interactive. */ s = Tcl_GetVar(interp, "tcl_interactive", 0); interactive = (s != NULL && !strcmp(s, "1")); /* Call main. */ if (tcl3270_main(argc, argv) == TCL_ERROR) return TCL_ERROR; /* Replace tcl's argc and argv with whatever was left. */ argv_obj = Tcl_NewListObj(0, NULL); for (i = 1; argv[i] != NULL; i++) { Tcl_ListObjAppendElement(interp, argv_obj, Tcl_NewStringObj(argv[i], strlen(argv[i]))); } Tcl_SetVar2Ex(interp, "argv", NULL, argv_obj, 0); (void) sprintf(argc_buf, "%d", i?i-1:0); Tcl_SetVar(interp, "argc", argc_buf, 0); /* * Call the init procedures for included packages. Each call should * look like this: * * if (Mod_Init(interp) == TCL_ERROR) { * return TCL_ERROR; * } * * where "Mod" is the name of the module. */ /* * Call Tcl_CreateCommands for the application-specific commands, if * they weren't already created by the init procedures called above. */ action_init(); for (i = 0; i < actioncount; i++) { if (Tcl_CreateObjCommand(interp, actions[i].string, x3270_cmd, NULL, NULL) == NULL) { return TCL_ERROR; } } if (Tcl_CreateObjCommand(interp, "Rows", Rows_cmd, NULL, NULL) == NULL) return TCL_ERROR; if (Tcl_CreateObjCommand(interp, "Cols", Cols_cmd, NULL, NULL) == NULL) return TCL_ERROR; /* * Specify a user-specific startup file to invoke if the application * is run interactively. Typically the startup file is "~/.apprc" * where "app" is the name of the application. If this line is deleted * then no user-specific startup file will be run under any conditions. */ #if 0 Tcl_SetVar(interp, "tcl_rcFileName", "~/.tclshrc", TCL_GLOBAL_ONLY); #endif return TCL_OK; } void usage(char *msg) { const char *sn = ""; if (!strcmp(programname, "tcl3270")) sn = " [scriptname]"; if (msg != CN) fprintf(stderr, "%s\n", msg); fprintf(stderr, "Usage: %s%s [tcl3270-options] [host] [-- script-args]\n" " is [ps:][LUname@]hostname[:port]\n", programname, sn); fprintf(stderr, "Options:\n"); cmdline_help(False); exit(1); } /* * Called when the host connects, disconnects, or changes modes. * When we connect or change modes, clear the screen. * When we disconnect, clear the pending string, so we don't keep trying to * feed it to a dead host. */ static void main_connect(Boolean ignored) { if (CONNECTED) { ctlr_erase(True); /* Check for various wait conditions. */ switch (waiting) { case AWAITING_CONNECT: if (CONNECT_DONE) UNBLOCK(); break; case AWAITING_3270: if (IN_3270) UNBLOCK(); break; case AWAITING_NVT: if (IN_ANSI) UNBLOCK(); break; default: /* Nothing we can figure out here. */ break; } } else { if (appres.disconnect_clear) ctlr_erase(True); ps_clear(); /* Cause (almost) any pending Wait command to fail. */ if (waiting != NOT_WAITING) { if (waiting == AWAITING_DISCONNECT) { UNBLOCK(); } else { trace_event("Unblocked %s (was '%s') -- " "failure\n", action, wait_name[waiting]); popup_an_error("Host disconnected"); waiting = NOT_WAITING; } } } } /* Initialization procedure for tcl3270. */ static int tcl3270_main(int argc, const char *argv[]) { const char *cl_hostname = CN; argc = parse_command_line(argc, (const char **)argv, &cl_hostname); if (charset_init(appres.charset) != CS_OKAY) { xs_warning("Cannot find charset \"%s\"", appres.charset); (void) charset_init(CN); } ctlr_init(-1); ctlr_reinit(-1); kybd_init(); ansi_init(); #if defined(X3270_FT) /*[*/ ft_init(); #endif /*]*/ register_schange(ST_CONNECT, main_connect); register_schange(ST_3270_MODE, main_connect); /* Make sure we don't fall over any SIGPIPEs. */ (void) signal(SIGPIPE, SIG_IGN); /* Handle initial toggle settings. */ #if defined(X3270_TRACE) /*[*/ if (!appres.debug_tracing) { appres.toggle[DS_TRACE].value = False; appres.toggle[EVENT_TRACE].value = False; } #endif /*]*/ initialize_toggles(); /* Connect to the host, and wait for negotiation to complete. */ if (cl_hostname != CN) { action = NewString("[initial connection]"); if (host_connect(cl_hostname) < 0) exit(1); if (CONNECTED || HALF_CONNECTED) { sms_connect_wait(); negotiate(); } } return TCL_OK; } /* Replacements for the logic in macros.c. */ /* Process the pending string (set by the String command). */ static void process_pending_string(void) { if (pending_string_ptr == NULL || waiting != NOT_WAITING) return; if (pending_hex) { hex_input(pending_string_ptr); ps_clear(); } else { int len = strlen(pending_string_ptr); int len_left; len_left = emulate_input(pending_string_ptr, len, False); if (len_left) { pending_string_ptr += len - len_left; return; } else ps_clear(); } if (CKBWAIT) { trace_event("Blocked %s (keyboard locked)\n", action); waiting = AWAITING_RESET; } } /* Clear out the pending string. */ static void ps_clear(void) { if (pending_string != NULL) { pending_string_ptr = NULL; Replace(pending_string, NULL); } } /* Command timeout function. */ static void command_timed_out(void) { popup_an_error("Command timed out after %ds.\n", appres.command_timeout); command_timeout_id = 0L; /* Let the command complete unsuccessfully. */ UNBLOCK(); } /* The tcl "x3270" command: The root of all 3270 access. */ static int x3270_cmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { int i; unsigned j; unsigned count; char **argv = NULL; int old_mode; /* Set up ugly global variables. */ in_cmd = True; sms_interp = interp; /* Synchronously run any pending I/O's and timeouts. Ugly. */ old_mode = Tcl_SetServiceMode(TCL_SERVICE_ALL); while (process_events(False)) ; (void) Tcl_SetServiceMode(old_mode); /* Verify minimal command syntax. */ if (objc < 1) { Tcl_SetResult(interp, "Missing action name", TCL_STATIC); return TCL_ERROR; } /* Look up the action. */ Replace(action, NewString(Tcl_GetString(objv[0]))); for (i = 0; i < actioncount; i++) { if (!strcmp(action, actions[i].string)) break; } if (i >= actioncount) { Tcl_SetResult(interp, "No such action", TCL_STATIC); return TCL_ERROR; } /* Stage the arguments. */ count = objc - 1; if (count) { argv = (char **)Malloc(count*sizeof(char *)); for (j = 0; j < count; j++) { argv[j] = Tcl_GetString(objv[j + 1]); } } #if defined(X3270_TRACE) /*[*/ /* Trace what we're about to do. */ if (toggled(EVENT_TRACE)) { trace_event("Running %s", action); for (j = 0; j < count; j++) { char *s; s = tc_scatv(argv[j]); trace_event(" %s", s); Free(s); } trace_event("\n"); } #endif /*]*/ /* Set up more ugly global variables and run the action. */ ia_cause = IA_SCRIPT; cmd_ret = TCL_OK; (*actions[i].proc)((Widget)NULL, (XEvent *)NULL, argv, &count); /* Set implicit wait state. */ #if defined(X3270_FT) /*[*/ if (ft_state != FT_NONE) waiting = AWAITING_FT; else #endif /*]*/ if ((waiting == NOT_WAITING) && CKBWAIT) waiting = AWAITING_RESET; if (waiting != NOT_WAITING) { trace_event("Blocked %s (%s)\n", action, wait_name[waiting]); if (appres.command_timeout) { command_timeout_id = AddTimeOut( appres.command_timeout * 1000, command_timed_out); } } /* * Process responses and push any pending string, until * we can proceed. */ process_pending_string(); old_mode = Tcl_SetServiceMode(TCL_SERVICE_ALL); while (waiting != NOT_WAITING) { /* Process pending file I/O. */ (void) process_events(True); /* * Check for the completion of output-related wait conditions. */ switch (waiting) { case AWAITING_IFIELD: if (INPUT_OKAY) UNBLOCK(); break; case AWAITING_RESET: if (!CKBWAIT) UNBLOCK(); break; #if defined(X3270_FT) /*[*/ case AWAITING_FT: if (ft_state == FT_NONE) UNBLOCK(); break; #endif /*]*/ case AWAITING_UNLOCK: if (!KBWAIT) UNBLOCK(); default: break; } /* Push more string text in. */ process_pending_string(); } if (command_timeout_id != 0L) { RemoveTimeOut(command_timeout_id); command_timeout_id = 0L; } #if defined(X3270_TRACE) /*[*/ if (toggled(EVENT_TRACE)) { const char *s; # define TRUNC_LEN 40 char s_trunc[TRUNC_LEN + 1]; s = Tcl_GetStringResult(interp); trace_event("Completed %s (%s)", action, (cmd_ret == TCL_OK) ? "ok" : "error"); if (s != CN && *s) { char buf[1024]; strncpy(s_trunc, s, TRUNC_LEN); s_trunc[TRUNC_LEN] = '\0'; trace_event(" -> \"%s\"", scatv(s_trunc, buf, sizeof(buf))); if (strlen(s) > TRUNC_LEN) trace_event("...(%d chars)", (int)strlen(s)); } trace_event("\n"); } #endif /*]*/ (void) Tcl_SetServiceMode(old_mode); in_cmd = False; sms_interp = NULL; if (argv) Free(argv); return cmd_ret; } /* Do initial connect negotiation. */ void negotiate(void) { int old_mode; old_mode = Tcl_SetServiceMode(TCL_SERVICE_ALL); while (CKBWAIT || (waiting == AWAITING_CONNECT && !CONNECT_DONE)) { (void) process_events(True); if (!PCONNECTED) exit(1); } (void) Tcl_SetServiceMode(old_mode); } /* Indicates whether errors should go to stderr, or be returned to tcl. */ Boolean sms_redirect(void) { return in_cmd; } /* Returns an error to tcl. */ void sms_error(const char *s) { Tcl_SetResult(sms_interp, (char *)s, TCL_VOLATILE); cmd_ret = TCL_ERROR; } /* For now, a no-op. Used to implement 'Expect'. */ void sms_store(unsigned char c) { } /* Set the pending string. Used by the 'String' action. */ void ps_set(char *s, Boolean is_hex) { Replace(pending_string, NewString(s)); pending_string_ptr = pending_string; pending_hex = is_hex; } /* Signal a new connection. */ void sms_connect_wait(void) { waiting = AWAITING_CONNECT; } /* Signal host output. */ void sms_host_output(void) { /* Release the script, if it is waiting now. */ switch (waiting) { case AWAITING_SOUTPUT: snap_save(); /* fall through... */ case AWAITING_OUTPUT: UNBLOCK(); break; default: break; } /* If there was no script waiting, ensure that it won't later. */ output_wait_needed = False; } /* More no-ops. */ void login_macro(char *s) { } void sms_continue(void) { } /* Data query actions. */ static void dump_range(int first, int len, Boolean in_ascii, struct ea *buf, int rel_rows _is_unused, int rel_cols) { register int i; Tcl_Obj *o = NULL; Tcl_Obj *row = NULL; Boolean is_zero = False; /* * The client has now 'looked' at the screen, so should they later * execute 'Wait(output)', they will actually need to wait for output * from the host. output_wait_needed is cleared by sms_host_output, * which is called from the write logic in ctlr.c. */ if (buf == ea_buf) output_wait_needed = True; is_zero = FA_IS_ZERO(get_field_attribute(first)); for (i = 0; i < len; i++) { /* Check for a new row. */ if (i && !((first + i) % rel_cols)) { /* Done with this row. */ if (o == NULL) o = Tcl_NewListObj(0, NULL); Tcl_ListObjAppendElement(sms_interp, o, row); row = NULL; } if (!row) { if (in_ascii) row = Tcl_NewObj(); else row = Tcl_NewListObj(0, NULL); } if (in_ascii) { int len; char mb[16]; ucs4_t uc; mb[0] = ' '; mb[1] = '\0'; len = 2; if (buf[first + i].fa) { is_zero = FA_IS_ZERO(buf[first + i].fa); /* leave mb[] as " " */ } else if (is_zero) { /* leave mb[] as " " */ } else #if defined(X3270_DBCS) /*[*/ if (IS_LEFT(ctlr_dbcs_state(first + i))) { len = ebcdic_to_multibyte( (buf[first + i].cc << 8) | buf[first + i + 1].cc, mb, sizeof(mb)); } else if (IS_RIGHT(ctlr_dbcs_state(first + i))) { continue; } else #endif /*]*/ { len = ebcdic_to_multibyte_x(buf[first + i].cc, buf[first + i].cs & CS_MASK, mb, sizeof(mb), EUO_BLANK_UNDEF, &uc); } if (len > 0) Tcl_AppendToObj(row, mb, len - 1); } else { char s[5]; (void) sprintf(s, "0x%02x", buf[first + i].cc); Tcl_ListObjAppendElement(sms_interp, row, Tcl_NewStringObj(s, -1)); } } /* Return it. */ if (row) { if (o) { Tcl_ListObjAppendElement(sms_interp, o, row); Tcl_SetObjResult(sms_interp, o); } else Tcl_SetObjResult(sms_interp, row); } } static void dump_rectangle(int start_row, int start_col, int rows, int cols, Boolean in_ascii, struct ea *buf, int rel_cols) { register int r, c; Tcl_Obj *o = NULL; Tcl_Obj *row = NULL; /* * The client has now 'looked' at the screen, so should they later * execute 'Wait(output)', they will actually need to wait for output * from the host. output_wait_needed is cleared by sms_host_output, * which is called from the write logic in ctlr.c. */ if (buf == ea_buf) output_wait_needed = True; if (!rows || !cols) return; for (r = start_row; r < start_row + rows; r++) { /* New row. */ if (o == NULL) o = Tcl_NewListObj(0, NULL); if (row != NULL) Tcl_ListObjAppendElement(sms_interp, o, row); if (in_ascii) row = Tcl_NewObj(); else row = Tcl_NewListObj(0, NULL); for (c = start_col; c < start_col + cols; c++) { int loc = (r * rel_cols) + c; if (in_ascii) { int len; char mb[16]; ucs4_t uc; if (FA_IS_ZERO(get_field_attribute(loc))) { mb[0] = ' '; mb[1] = '\0'; len = 2; } else #if defined(X3270_DBCS) /*[*/ if (IS_LEFT(ctlr_dbcs_state(loc))) { len = ebcdic_to_multibyte( (buf[loc].cc << 8) | buf[loc + 1].cc, mb, sizeof(mb)); } else if (IS_RIGHT(ctlr_dbcs_state(loc))) { continue; } else #endif /*]*/ { len = ebcdic_to_multibyte_x( buf[loc].cc, buf[loc].cs & CS_MASK, mb, sizeof(mb), EUO_BLANK_UNDEF, &uc); } if (len > 0) Tcl_AppendToObj(row, mb, len - 1); } else { char s[5]; (void) sprintf(s, "0x%02x", buf[loc].cc); Tcl_ListObjAppendElement(sms_interp, row, Tcl_NewStringObj(s, -1)); } } } /* Return it. */ if (row) { if (o) { Tcl_ListObjAppendElement(sms_interp, o, row); Tcl_SetObjResult(sms_interp, o); } else Tcl_SetObjResult(sms_interp, row); } } static void dump_fixed(String params[], Cardinal count, const char *name, Boolean in_ascii, struct ea *buf, int rel_rows, int rel_cols, int caddr) { int row, col, len, rows = 0, cols = 0; switch (count) { case 0: /* everything */ row = 0; col = 0; len = rel_rows*rel_cols; break; case 1: /* from cursor, for n */ row = caddr / rel_cols; col = caddr % rel_cols; len = atoi(params[0]); break; case 3: /* from (row,col), for n */ row = atoi(params[0]); col = atoi(params[1]); len = atoi(params[2]); break; case 4: /* from (row,col), for rows x cols */ row = atoi(params[0]); col = atoi(params[1]); rows = atoi(params[2]); cols = atoi(params[3]); len = 0; break; default: popup_an_error("%s requires 0, 1, 3 or 4 arguments", name); return; } if ( (row < 0 || row > rel_rows || col < 0 || col > rel_cols || len < 0) || ((count < 4) && ((row * rel_cols) + col + len > rel_rows * rel_cols)) || ((count == 4) && (cols < 0 || rows < 0 || col + cols > rel_cols || row + rows > rel_rows)) ) { popup_an_error("%s: Invalid argument", name); return; } if (count < 4) dump_range((row * rel_cols) + col, len, in_ascii, buf, rel_rows, rel_cols); else dump_rectangle(row, col, rows, cols, in_ascii, buf, rel_cols); } static void dump_field(Cardinal count, const char *name, Boolean in_ascii) { int start, baddr; int len = 0; if (count != 0) { popup_an_error("%s requires 0 arguments", name); return; } if (!formatted) { popup_an_error("%s: Screen is not formatted", name); return; } start = find_field_attribute(cursor_addr); INC_BA(start); baddr = start; do { if (ea_buf[baddr].fa) break; len++; INC_BA(baddr); } while (baddr != start); dump_range(start, len, in_ascii, ea_buf, ROWS, COLS); } void Ascii_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { dump_fixed(params, *num_params, action_name(Ascii_action), True, ea_buf, ROWS, COLS, cursor_addr); } void AsciiField_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params) { dump_field(*num_params, action_name(AsciiField_action), True); } void Ebcdic_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { dump_fixed(params, *num_params, action_name(Ebcdic_action), False, ea_buf, ROWS, COLS, cursor_addr); } void EbcdicField_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params) { dump_field(*num_params, action_name(EbcdicField_action), False); } /* "Status" action, returns the s3270 prompt. */ static char * status_string(void) { char kb_stat; char fmt_stat; char prot_stat; char *connect_stat = NULL; char em_mode; char s[1024]; char *r; if (!kybdlock) kb_stat = 'U'; else if (!CONNECTED || KBWAIT) kb_stat = 'L'; else kb_stat = 'E'; if (formatted) fmt_stat = 'F'; else fmt_stat = 'U'; if (!formatted) prot_stat = 'U'; else { unsigned char fa; fa = get_field_attribute(cursor_addr); if (FA_IS_PROTECTED(fa)) prot_stat = 'P'; else prot_stat = 'U'; } if (CONNECTED) connect_stat = xs_buffer("C(%s)", current_host); else connect_stat = NewString("N"); if (CONNECTED) { if (IN_ANSI) { extern int linemode; /* XXX */ if (linemode) em_mode = 'L'; else em_mode = 'C'; } else if (IN_SSCP) em_mode = 'S'; else if (IN_3270) em_mode = 'I'; else em_mode = 'P'; } else em_mode = 'N'; (void) sprintf(s, "%c %c %c %s %c %d %d %d %d %d", kb_stat, fmt_stat, prot_stat, connect_stat, em_mode, model_num, ROWS, COLS, cursor_addr / COLS, cursor_addr % COLS); r = NewString(s); Free(connect_stat); return r; } void Status_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { char *s; s = status_string(); Tcl_SetResult(sms_interp, s, TCL_VOLATILE); Free(s); } static unsigned char calc_cs(unsigned char cs) { switch (cs & CS_MASK) { case CS_APL: return 0xf1; case CS_LINEDRAW: return 0xf2; case CS_DBCS: return 0xf8; default: return 0x00; } } /* * Internals of the ReadBuffer action. * Operates on the supplied 'buf' parameter, which might be the live * screen buffer 'ea_buf' or a copy saved with 'Snap'. */ static void do_read_buffer(String *params, Cardinal num_params, struct ea *buf) { Tcl_Obj *o = NULL; Tcl_Obj *row = NULL; register int baddr; unsigned char current_fg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; char field_buf[1024]; Boolean in_ebcdic = False; if (num_params > 0) { if (num_params > 1) { popup_an_error("%s: extra agruments", action_name(ReadBuffer_action)); return; } if (!strncasecmp(params[0], "Ascii", strlen(params[0]))) in_ebcdic = False; else if (!strncasecmp(params[0], "Ebcdic", strlen(params[0]))) in_ebcdic = True; else { popup_an_error("%s: first parameter must be " "Ascii or Ebcdic", action_name(ReadBuffer_action)); return; } } baddr = 0; do { if (!(baddr % COLS)) { /* New row. */ if (o == NULL) o = Tcl_NewListObj(0, NULL); if (row != NULL) Tcl_ListObjAppendElement(sms_interp, o, row); row = Tcl_NewListObj(0, NULL); } if (buf[baddr].fa) { char *s = field_buf; s += sprintf(s, "SF(%02x=%02x", XA_3270, buf[baddr].fa); if (buf[baddr].fg) s += sprintf(s, ",%02x=%02x", XA_FOREGROUND, buf[baddr].fg); if (buf[baddr].gr) s += sprintf(s, ",%02x=%02x", XA_HIGHLIGHTING, buf[baddr].gr | 0xf0); if (buf[baddr].cs & CS_MASK) s += sprintf(s, ",%02x=%02x", XA_CHARSET, calc_cs(buf[baddr].cs)); s += sprintf(s, ")"); Tcl_ListObjAppendElement(sms_interp, row, Tcl_NewStringObj(field_buf, -1)); } else { if (buf[baddr].fg != current_fg) { sprintf(field_buf, "SA(%02x=%02x)", XA_FOREGROUND, buf[baddr].fg); Tcl_ListObjAppendElement(sms_interp, row, Tcl_NewStringObj(field_buf, -1)); current_fg = buf[baddr].fg; } if (buf[baddr].gr != current_gr) { sprintf(field_buf, "SA(%02x=%02x)", XA_HIGHLIGHTING, buf[baddr].gr | 0xf0); Tcl_ListObjAppendElement(sms_interp, row, Tcl_NewStringObj(field_buf, -1)); current_gr = buf[baddr].gr; } if ((buf[baddr].cs & ~CS_GE) != (current_cs & ~CS_GE)) { sprintf(field_buf, "SA(%02x=%02x)", XA_CHARSET, calc_cs(buf[baddr].cs)); Tcl_ListObjAppendElement(sms_interp, row, Tcl_NewStringObj(field_buf, -1)); current_cs = buf[baddr].cs; } if (in_ebcdic) { if (buf[baddr].cs & CS_GE) sprintf(field_buf, "GE(%02x)", buf[baddr].cc); else sprintf(field_buf, "%02x", buf[baddr].cc); Tcl_ListObjAppendElement(sms_interp, row, Tcl_NewStringObj(field_buf, -1)); } else { int len; char mb[16]; int j; ucs4_t uc; #if defined(X3270_DBCS) /*[*/ if (IS_LEFT(ctlr_dbcs_state(baddr))) { len = ebcdic_to_multibyte( (buf[baddr].cc << 8) | buf[baddr + 1].cc, mb, sizeof(mb)); field_buf[0] = '\0'; for (j = 0; j < len - 1; j++) sprintf(strchr(field_buf, '\0'), "%02x", mb[j] & 0xff); } else if (IS_RIGHT(ctlr_dbcs_state(baddr))) { strcpy(field_buf, " -"); } else #endif /*]*/ if (buf[baddr].cc == EBC_null) strcpy(field_buf, "00"); else { len = ebcdic_to_multibyte_x( buf[baddr].cc, buf[baddr].cs & CS_MASK, mb, sizeof(mb), EUO_BLANK_UNDEF, &uc); field_buf[0] = '\0'; for (j = 0; j < len - 1; j++) sprintf(strchr(field_buf, '\0'), "%02x", mb[j] & 0xff); } Tcl_ListObjAppendElement(sms_interp, row, Tcl_NewStringObj(field_buf, -1)); } } INC_BA(baddr); } while (baddr != 0); if (row) { if (o) { Tcl_ListObjAppendElement(sms_interp, o, row); Tcl_SetObjResult(sms_interp, o); } else Tcl_SetObjResult(sms_interp, row); } } /* * ReadBuffer action. */ void ReadBuffer_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { do_read_buffer(params, *num_params, ea_buf); } /* * "Snap" action, maintains a snapshot for consistent multi-field comparisons: * * Snap Save * updates the saved image from the live image * Snap Rows * returns the number of rows * Snap Cols * returns the number of columns * Snap Staus * Snap Ascii ... * Snap AsciiField (not yet) * Snap Ebcdic ... * Snap EbcdicField (not yet) * runs the named command * Snap Wait [tmo] Output * waits for the screen to change */ static char *snap_status = NULL; static struct ea *snap_buf = NULL; static int snap_rows = 0; static int snap_cols = 0; static int snap_field_start = -1; static int snap_field_length = -1; static int snap_caddr = 0; static void snap_save(void) { output_wait_needed = True; Replace(snap_status, status_string()); Replace(snap_buf, (struct ea *)Malloc(sizeof(struct ea) * ROWS*COLS)); (void) memcpy(snap_buf, ea_buf, sizeof(struct ea) * ROWS*COLS); snap_rows = ROWS; snap_cols = COLS; if (!formatted) { snap_field_start = -1; snap_field_length = -1; } else { int baddr; snap_field_length = 0; snap_field_start = find_field_attribute(cursor_addr); INC_BA(snap_field_start); baddr = snap_field_start; do { if (ea_buf[baddr].fa) break; snap_field_length++; INC_BA(baddr); } while (baddr != snap_field_start); } snap_caddr = cursor_addr; } void Snap_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { char nbuf[16]; if (*num_params == 0) { snap_save(); return; } /* Handle 'Snap Wait' separately. */ if (!strcasecmp(params[0], action_name(Wait_action))) { long tmo = -1; char *ptr; unsigned maxp = 0; if (*num_params > 1 && (tmo = strtol(params[1], &ptr, 10)) >= 0 && ptr != params[0] && *ptr == '\0') { maxp = 3; } else { tmo = -1; maxp = 2; } if (*num_params > maxp) { popup_an_error("Too many arguments to %s %s", action_name(Snap_action), action_name(Wait_action)); return; } if (*num_params < maxp) { popup_an_error("Too few arguments to %s %s", action_name(Snap_action), action_name(Wait_action)); return; } if (strcasecmp(params[*num_params - 1], "Output")) { popup_an_error("Unknown parameter to %s %s", action_name(Snap_action), action_name(Wait_action)); return; } /* Must be connected. */ if (!(CONNECTED || HALF_CONNECTED)) { popup_an_error("%s: Not connected", action_name(Snap_action)); return; } /* * Make sure we need to wait. * If we don't, then Snap Wait Output is equivalen to Snap Save. */ if (!output_wait_needed) { snap_save(); return; } /* Set the new state. */ waiting = AWAITING_SOUTPUT; /* Set up a timeout, if they want one. */ if (tmo >= 0) wait_id = AddTimeOut(tmo? (tmo * 1000): 1, wait_timed_out); return; } if (!strcasecmp(params[0], "Save")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } snap_save(); } else if (!strcasecmp(params[0], "Status")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } if (snap_status == NULL) { popup_an_error("No saved state"); return; } Tcl_SetResult(sms_interp, snap_status, TCL_VOLATILE); } else if (!strcasecmp(params[0], "Rows")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } if (snap_status == NULL) { popup_an_error("No saved state"); return; } (void) sprintf(nbuf, "%d", snap_rows); Tcl_SetResult(sms_interp, nbuf, TCL_VOLATILE); } else if (!strcasecmp(params[0], "Cols")) { if (*num_params != 1) popup_an_error("extra argument(s)"); (void) sprintf(nbuf, "%d", snap_cols); Tcl_SetResult(sms_interp, nbuf, TCL_VOLATILE); } else if (!strcasecmp(params[0], action_name(Ascii_action))) { if (snap_status == NULL) { popup_an_error("No saved state"); return; } dump_fixed(params + 1, *num_params - 1, action_name(Ascii_action), True, snap_buf, snap_rows, snap_cols, snap_caddr); } else if (!strcasecmp(params[0], action_name(Ebcdic_action))) { if (snap_status == NULL) { popup_an_error("No saved state"); return; } dump_fixed(params + 1, *num_params - 1, action_name(Ebcdic_action), False, snap_buf, snap_rows, snap_cols, snap_caddr); } else if (!strcasecmp(params[0], action_name(ReadBuffer_action))) { if (snap_status == NULL) { popup_an_error("No saved state"); return; } do_read_buffer(params + 1, *num_params - 1, snap_buf); } else { popup_an_error("%s: Argument must be Save, Status, Rows, Cols, " "%s, %s, %s or %s", action_name(Snap_action), action_name(Wait_action), action_name(Ascii_action), action_name(Ebcdic_action), action_name(ReadBuffer_action)); } } static void wait_timed_out(void) { popup_an_error("Wait timed out"); wait_id = 0L; UNBLOCK(); } void Wait_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { long tmo = -1; char *ptr; Cardinal np; String *pr; if (*num_params > 0 && (tmo = strtol(params[0], &ptr, 10)) >= 0 && ptr != params[0] && *ptr == '\0') { np = *num_params - 1; pr = params + 1; } else { tmo = -1; np = *num_params; pr = params; } if (np == 0) { if (!CONNECTED) { popup_an_error("Not connected"); return; } if (!INPUT_OKAY) waiting = AWAITING_IFIELD; return; } if (np != 1) { popup_an_error("Too many parameters"); return; } if (!strcasecmp(pr[0], "InputField")) { /* Same as no parameters. */ if (!CONNECTED) { popup_an_error("Not connected"); return; } if (!INPUT_OKAY) waiting = AWAITING_IFIELD; } else if (!strcasecmp(pr[0], "Output")) { if (!CONNECTED) { popup_an_error("Not connected"); return; } if (output_wait_needed) waiting = AWAITING_OUTPUT; } else if (!strcasecmp(pr[0], "3270") || !strcasecmp(pr[0], "3270Mode")) { if (!CONNECTED) { popup_an_error("Not connected"); return; } if (!IN_3270) waiting = AWAITING_3270; } else if (!strcasecmp(pr[0], "ansi") || !strcasecmp(pr[0], "NVTMode")) { if (!CONNECTED) { popup_an_error("Not connected"); return; } if (!IN_ANSI) waiting = AWAITING_NVT; } else if (!strcasecmp(pr[0], "Disconnect")) { if (CONNECTED) waiting = AWAITING_DISCONNECT; } else if (!strcasecmp(pr[0], "Unlock")) { if (CONNECTED && KBWAIT) waiting = AWAITING_UNLOCK; } else { popup_an_error("Unknown Wait type: %s", pr[0]); return; } if (waiting != NOT_WAITING && tmo >= 0) wait_id = AddTimeOut(tmo? (tmo * 1000L): 1, wait_timed_out); } static int Rows_cmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { char buf[32]; if (objc > 1) { Tcl_SetResult(interp, "Too many arguments", TCL_STATIC); return TCL_ERROR; } (void) sprintf(buf, "%d", ROWS); Tcl_SetResult(interp, buf, TCL_VOLATILE); return TCL_OK; } static int Cols_cmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { char buf[32]; if (objc > 1) { Tcl_SetResult(interp, "Too many arguments", TCL_STATIC); return TCL_ERROR; } (void) sprintf(buf, "%d", COLS); Tcl_SetResult(interp, buf, TCL_VOLATILE); return TCL_OK; } /* Generate a response to a script command. */ void sms_info(const char *fmt, ...) { va_list args; char buf[4096]; va_start(args, fmt); (void) vsprintf(buf, fmt, args); va_end(args); Tcl_AppendResult(sms_interp, buf, NULL); } /* * Return True if there is a pending macro. */ Boolean sms_in_macro(void) { return pending_string != NULL; } /* Like fcatv, but goes to a dynamically-allocated buffer. */ static char * tc_scatv(char *s) { #define ALLOC_INC 1024 char *buf; int buflen; int bufused = 0; char c; #define add_space(n) \ if (bufused + (n) >= buflen) { \ buflen += ALLOC_INC; \ buf = Realloc(buf, buflen); \ } \ bufused += (n); buf = Malloc(ALLOC_INC); buflen = ALLOC_INC; *buf = '\0'; while ((c = *s++)) { switch (c) { case '\n': add_space(2); (void) strcat(buf, "\\n"); break; case '\t': add_space(2); (void) strcat(buf, "\\t"); break; case '\b': add_space(2); (void) strcat(buf, "\\b"); break; case '\f': add_space(2); (void) strcat(buf, "\\f"); break; case ' ': add_space(2); (void) strcat(buf, "\\ "); break; default: if ((c & 0x7f) < ' ') { add_space(4); (void) sprintf(buf + bufused, "\\%03o", c & 0xff); break; } else { add_space(1); *(buf + bufused - 1) = c; *(buf + bufused) = '\0'; } } } return buf; #undef add_space } ibm-3270-3.3.10ga4/tcl3270/objects.h0000644000175000017500000000346311254565704016075 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * objects.h * x3270 object names. */ #define ObjConfirmButton "confirmButton" #define ObjConfirm2Button "confirm2Button" #define ObjCancelButton "cancelButton" #define ObjDialog "dialog" #define ObjSmallLabel "smallLabel" #define ObjNameLabel "nameLabel" #define ObjDataLabel "dataLabel" ibm-3270-3.3.10ga4/tcl3270/appres.h0000644000175000017500000001527511254565704015742 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * appres.h * Application resource definitions for x3270, c3270, s3270 and * tcl3270. */ /* Toggles */ enum toggle_type { TT_INITIAL, TT_INTERACTIVE, TT_ACTION, TT_FINAL }; struct toggle { Boolean value; /* toggle value */ Boolean changed; /* has the value changed since init */ Widget w[2]; /* the menu item widgets */ const char *label[2]; /* labels */ void (*upcall)(struct toggle *, enum toggle_type); /* change value */ }; #define MONOCASE 0 #define ALT_CURSOR 1 #define CURSOR_BLINK 2 #define SHOW_TIMING 3 #define CURSOR_POS 4 #if defined(X3270_TRACE) /*[*/ #define DS_TRACE 5 #endif /*]*/ #define SCROLL_BAR 6 #if defined(X3270_ANSI) /*[*/ #define LINE_WRAP 7 #endif /*]*/ #define BLANK_FILL 8 #if defined(X3270_TRACE) /*[*/ #define SCREEN_TRACE 9 #define EVENT_TRACE 10 #endif /*]*/ #define MARGINED_PASTE 11 #define RECTANGLE_SELECT 12 #if defined(X3270_DISPLAY) /*[*/ #define CROSSHAIR 13 #define VISIBLE_CONTROL 14 #endif /*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ #define AID_WAIT 15 #endif /*]*/ #if defined(C3270) /*[*/ #define UNDERSCORE 16 #endif /*]*/ #define N_TOGGLES 17 #define toggled(ix) (appres.toggle[ix].value) #define toggle_toggle(t) \ { (t)->value = !(t)->value; (t)->changed = True; } /* Application resources */ typedef struct { /* Basic colors */ #if defined(X3270_DISPLAY) /*[*/ Pixel foreground; Pixel background; #endif /*]*/ /* Options (not toggles) */ #if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) /*[*/ Boolean mono; #endif /*]*/ Boolean extended; Boolean m3279; Boolean modified_sel; Boolean once; #if defined(X3270_DISPLAY) || (defined(C3270) && defined(_WIN32)) /*[*/ Boolean visual_bell; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ Boolean menubar; Boolean active_icon; Boolean label_icon; Boolean invert_kpshift; Boolean use_cursor_color; Boolean allow_resize; Boolean no_other; Boolean visual_select; Boolean suppress_host; Boolean suppress_font_menu; # if defined(X3270_KEYPAD) /*[*/ Boolean keypad_on; # endif /*]*/ #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ Boolean do_confirms; Boolean reconnect; #endif /*]*/ #if defined(C3270) /*[*/ Boolean all_bold_on; Boolean curses_keypad; Boolean cbreak_mode; Boolean no_prompt; #if !defined(_WIN32) /*[*/ Boolean reverse_video; #endif /*]*/ #if defined(_WIN32) /*[*/ Boolean auto_shortcut; #endif /*]*/ #endif /*]*/ Boolean apl_mode; Boolean scripted; Boolean numeric_lock; Boolean secure; Boolean oerr_lock; Boolean typeahead; Boolean debug_tracing; Boolean disconnect_clear; Boolean highlight_bold; Boolean color8; Boolean bsd_tm; Boolean unlock_delay; #if defined(X3270_SCRIPT) /*[*/ Boolean socket; int script_port; #endif /*]*/ /* Named resources */ #if defined(X3270_KEYPAD) /*[*/ char *keypad; #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ char *key_map; char *compose_map; char *printer_lu; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ char *efontname; char *fixed_size; char *icon_font; char *icon_label_font; int save_lines; char *normal_name; char *select_name; char *bold_name; char *colorbg_name; char *keypadbg_name; char *selbg_name; char *cursor_color_name; char *color_scheme; int bell_volume; char *char_class; int modified_sel_color; int visual_select_color; #if defined(X3270_DBCS) /*[*/ char *input_method; char *preedit_type; #endif /*]*/ #endif /*]*/ #if defined(X3270_DBCS) /*[*/ char *dbcs_cgcsgid; #endif /*]*/ #if defined(C3270) /*[*/ char *meta_escape; char *all_bold; char *altscreen; char *defscreen; Boolean acs; Boolean ascii_box_draw; # if !defined(_WIN32) /*[*/ Boolean mouse; # endif /*]*/ #endif /*]*/ char *conf_dir; char *model; char *hostsfile; char *port; char *charset; char *sbcs_cgcsgid; char *termname; char *login_macro; char *macros; #if defined(X3270_TRACE) /*[*/ char *trace_dir; char *trace_file; char *screentrace_file; char *trace_file_size; # if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ Boolean trace_monitor; # endif /*]*/ #endif /*]*/ char *oversize; #if defined(X3270_FT) /*[*/ char *ft_command; int dft_buffer_size; #endif /*]*/ char *connectfile_name; char *idle_command; Boolean idle_command_enabled; char *idle_timeout; #if defined(X3270_SCRIPT) /*[*/ char *plugin_command; #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ char *cert_file; #endif /*]*/ char *proxy; #if defined(TCL3270) /*[*/ int command_timeout; #endif /*]*/ int unlock_delay_ms; /* Toggles */ struct toggle toggle[N_TOGGLES]; #if defined(X3270_DISPLAY) /*[*/ /* Simple widget resources */ Cursor normal_mcursor; Cursor wait_mcursor; Cursor locked_mcursor; #endif /*]*/ #if defined(X3270_ANSI) /*[*/ /* Line-mode TTY parameters */ Boolean icrnl; Boolean inlcr; Boolean onlcr; char *erase; char *kill; char *werase; char *rprnt; char *lnext; char *intr; char *quit; char *eof; #endif /*]*/ char *hostname; #if defined(WC3270) /*[*/ char *title; #endif /*]*/ #if defined(WS3270) /*[*/ int local_cp; #endif /*]*/ #if defined(USE_APP_DEFAULTS) /*[*/ /* App-defaults version */ char *ad_version; #endif /*]*/ } AppRes, *AppResptr; extern AppRes appres; ibm-3270-3.3.10ga4/tcl3270/html/0000755000175000017500000000000011261530021015207 5ustar bastianbastianibm-3270-3.3.10ga4/tcl3270/html/Intro.html0000644000175000017500000000221611254565710017210 0ustar bastianbastian tcl3270 Introduction

tcl3270 Introduction

tcl3270 is a scripted IBM 3270 terminal emulator. It can be used to communicate with any IBM host that supports 3270-style connections over TELNET. It can also communicate with hosts that use line-by-line ASCII mode to do initial login negotiation before switching to full-screen 3270 mode.

tcl3270 emulates one of four models of an IBM 3278 or 3279 terminal. The difference between the various models is the screen size. The emulation is not quite complete; tcl3270 understands extended field orders but does not implement some of the extended attributes (outlining, extended validation, etc.). It does not support 3179G bit-mapped graphics (GDDM).

tcl3270 supports the APL character set and several international character sets. Many APL and international symbols may be entered by their X11 symbol names. ibm-3270-3.3.10ga4/tcl3270/html/tcl3270-man.html0000644000175000017500000012026211261527766017775 0ustar bastianbastian tcl3270 Manual Page

tcl3270 Manual Page

Contents

Name
Synopsis
Description
Options
Character Sets
NVT (ANSI) Mode
Toggles
Commands
File Transfer
The PrintText Action
Nested Scripts
Passthru
Proxy
Resources
See Also
Copyrights
Version

Name

tcl3270 - IBM host access tool

Synopsis

tcl3270 [script] [options] [host] [-- script-arg...]
tcl3270 [options] [script] session-file.tcl3270 [-- script-arg...]

Description

tcl3270 opens a telnet connection to an IBM host, then allows a tcl script to control the host login session. It is derived from x3270(1), an X-windows IBM 3270 emulator. It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection), and supports IND$FILE file transfer.

The full syntax for host is:

[prefix:]...[LUname@]hostname[:port]

Prepending a P: onto hostname causes the connection to go through the telnet-passthru service rather than directly to the host. See PASSTHRU below.

Prepending an S: onto hostname removes the "extended data stream" option reported to the host. See -tn below for further information.

Prepending an N: onto hostname turns off TN3270E support for the session.

Prepending an L: onto hostname causes tcl3270 to first create an SSL tunnel to the host, and then create a TN3270 session inside the tunnel. (This function is supported only if tcl3270 was built with SSL/TLS support). Note that TLS-encrypted sessions using the TELNET START-TLS option are negotiated with the host automatically; for these sessions the L: prefix should not be used.

A specific Logical Unit (LU) name to use may be specified by prepending it to the hostname with an `@'. Multiple LU names to try can be separated by commas. An empty LU can be placed in the list with an extra comma. (Note that the LU name is used for different purposes by different kinds of hosts. For example, CICS uses the LU name as the Terminal ID.)

The hostname may optionally be placed inside square-bracket characters `[' and `]'. This will prevent any colon `:' characters in the hostname from being interpreted as indicating option prefixes or port numbers. This allows numeric IPv6 addresses to be used as hostnames.

On systems that support the forkpty library call, the hostname may be replaced with -e and a command string. This will cause tcl3270 to connect to a local child process, such as a shell.

The port to connect to defaults to telnet. This can be overridden with the -port option, or by appending a port to the hostname with a colon `:'. (For compatability with previous versions of tcl3270 and with tn3270(1), the port may also be specified as a second, separate argument.)

Options

tcl3270 understands the following options:
-charset name
Specifies an EBCDIC host character set. See CHARACTER SETS below.
-clear toggle
Sets the initial value of toggle to false. The list of toggle names is under TOGGLES below.
-im method
Specifies the name of the input method to use for multi-byte input. (Supported only when tcl3270 is compiled with DBCS support.)
-km name
Specifies the local encoding method for multi-byte text. name is an encoding name recognized by the ICU library. (Supported only when tcl3270 is compiled with DBCS support, and necessary only when tcl3270 cannot figure it out from the locale.)
-model name
The model of 3270 display to be emulated. The model name is in two parts, either of which may be omitted:

The first part is the base model, which is either 3278 or 3279. 3278 specifies a monochrome (green on black) 3270 display; 3279 specifies a color 3270 display.

The second part is the model number, which specifies the number of rows and columns. Model 4 is the default.

Model Number
Columns
Rows
2
80
24
3
80
32
4
80
43
5
132
27

Note: Technically, there is no such 3270 display as a 3279-4 or 3279-5, but most hosts seem to work with them anyway.

The default model is 3278-4.

-oversize colsxrows
Makes the screen larger than the default for the chosen model number. This option has effect only in combination with extended data stream support (controlled by the "tcl3270.extended" resource), and only if the host supports the Query Reply structured field. The number of columns multiplied by the number of rows must not exceed 16383 (3fff hex), the limit of 14-bit 3270 buffer addressing.
-port n
Specifies a different TCP port to connect to. n can be a name from /etc/services like telnet, or a number. This option changes the default port number used for all connections. (The positional parameter affects only the initial connection.)
-proxy type:host[:port]
Causes tcl3270 to connect via the specified proxy, instead of using a direct connection. The host can be an IP address or hostname. The optional port can be a number or a service name. For a list of supported proxy types, see PROXY below.
-set toggle
Sets the initial value of toggle to true. The list of toggle names is under TOGGLES below. The -p option of x3270if causes it to use this socket, instead of pipes specified by environment variables.
-tn name
Specifies the terminal name to be transmitted over the telnet connection. The default name is IBM-model_name-E, for example, IBM-3278-4-E.

Some hosts are confused by the -E suffix on the terminal name, and will ignore the extra screen area on models 3, 4 and 5. Prepending an s: on the hostname, or setting the "tcl3270.extended" resource to "false", removes the -E from the terminal name when connecting to such hosts.

The name can also be specified with the "tcl3270.termName" resource.

-trace
Turns on data stream and event tracing at startup. The default trace file name is /tmp/x3trc.process_id.
-tracefile file
Specifies a file to save data stream and event traces into.
-tracefilesize size
Places a limit on the size of a trace file. If this option is not specified, or is specified as 0 or none, the trace file will be unlimited. If specified, the trace file cannot already exist, and the (silently enforced) minimum size is 64 Kbytes. The value of size can have a K or M suffix, indicating kilobytes or megabytes respectively.
-v Display the version and build options for tcl3270
and exit.
-xrm "tcl3270.resource: value"
Sets the value of the named resource to value. Resources control less common tcl3270 options, and are defined under RESOURCES below.
--
Terminates the list of tcl3270 options. Whatever follows will be available to the script in the $argv tcl variable.

Character Sets

The -charset option or the "tcl3270.charset" resource controls the EBCDIC host character set used by tcl3270. Available sets include:

Charset Name
Host Code Page
Character Set
belgian
500
iso8859-1
belgian-euro
1148
iso8859-15
bracket
037
iso8859-1
brazilian
275
iso8859-1
chinese-gb18030
1388
iso8859-1 + iso10646-1
cp1047
1047
iso8859-1
cp870
870
iso8859-2
finnish
278
iso8859-1
finnish-euro
1143
iso8859-15
french
297
iso8859-1
french-euro
1147
iso8859-15
german
273
iso8859-1
german-euro
1141
iso8859-15
greek
423
iso8859-7
hebrew
424
iso8859-8
icelandic
871
iso8859-1
icelandic-euro
1149
iso8859-15
italian
280
iso8859-1
italian-euro
1144
iso8859-15
japanese-kana
930
jisx0201.1976-0 + jisx0208.1983-0
japanese-latin
939
jisx0201.1976-0 + jisx0208.1983-0
norwegian
277
iso8859-1
norwegian-euro
1142
iso8859-15
russian
880
koi8-r
simplified-chinese
935
iso8859-1 + gb2312.1980-0
slovenian
870
iso8859-2
spanish
284
iso8859-1
spanish-euro
1145
iso8859-15
thai
1160
iso8859-11 tis620.2529-0
traditional-chinese
937
iso8859-1 + Big5-0
turkish
1026
iso8859-9
uk
285
iso8859-1
uk-euro
1146
iso8859-15
us-euro
1140
iso8859-15
us-intl
037
iso8859-1

The default character set is bracket, which is useful for common U.S. IBM hosts which use EBCDIC codes AD and BD for the `[' and `]' characters, respectively.

Note that any of the host code pages listed above can be specified by adding cp to the host code page, e.g., cp037 for host code page 037. Also note that the code pages available for a given version of tcl3270 are displayed by the -v command-line option.

NVT (ANSI) Mode

Some hosts use an ASCII front-end to do initial login negotiation, then later switch to 3270 mode. tcl3270 will emulate an ANSI X.64 terminal until the host places it in 3270 mode (telnet BINARY and SEND EOR modes, or TN3270E mode negotiation).

If the host later negotiates to stop functioning in 3270 mode, tcl3270 will return to ANSI emulation.

In NVT mode, tcl3270 supports both character-at-a-time mode and line mode operation. You may select the mode with a menu option. When in line mode, the special characters and operational characteristics are defined by resources:

Mode/Character Resource Default
Translate CR to NL tcl3270.icrnl true
Translate NL to CR tcl3270.inlcr false
Erase previous character tcl3270.erase ^?
Erase entire line tcl3270.kill ^U
Erase previous word tcl3270.werase ^W
Redisplay line tcl3270.rprnt ^R
Ignore special meaning of next character tcl3270.lnext ^V
Interrupt tcl3270.intr ^C
Quit tcl3270.quit ^\
End of file tcl3270.eof ^D

Toggles

tcl3270 has a number of configurable modes which may be selected by the -set and -clear options.
monoCase
If set, tcl3270 operates in uppercase-only mode.
blankFill
If set, tcl3270 behaves in some un-3270-like ways. First, when a character is typed into a field, all nulls in the field to the left of that character are changed to blanks. This eliminates a common 3270 data-entry surprise. Second, in insert mode, trailing blanks in a field are treated like nulls, eliminating the annoying `lock-up' that often occurs when inserting into an field with (apparent) space at the end.
lineWrap
If set, the ANSI terminal emulator automatically assumes a NEWLINE character when it reaches the end of a line.

The names of the toggles for use with the -set and -clear options are as follows:

Option Name
Monocase monoCase
Blank Fill blankFill
Track Cursor cursorPos
Trace Data Stream dsTrace
Trace Events eventTrace
Save Screen(s) in File screenTrace
Wraparound lineWrap

These names are also used as the first parameter to the Toggle action.

Commands

tcl3270 supports the following additional tcl commands:

Actions marked with an asterisk (*) may block, sending data to the host and possibly waiting for a response.

Ascii return entire screen contents as text
Ascii length return screen contents at cursor as text
Ascii row col length return screen contents as text
Ascii row col rows cols return screen region as text
AsciiField return current field as text
*Attn attention key
BackSpace move cursor left (or send ASCII BS)
BackTab tab to start of previous input field
CircumNot input "^" in NVT mode, or "¬" in 3270 mode
*Clear clear screen
Cols report screen size
*Connect host connect to host
*CursorSelect Cursor Select AID
Delete delete character under cursor (or send ASCII DEL)
DeleteField delete the entire field
DeleteWord delete the current or previous word
*Disconnect disconnect from host
Down move cursor down
Dup duplicate field
Ebcdic return entire screen contents in EBCDIC
Ebcdic length return screen contents at cursor in EBCDIC
Ebcdic row col length return screen contents in EBCDIC
Ebcdic row col rows cols return screen region in EBCDIC
EbcdicField return current field in EBCDIC
*Enter Enter AID (or send ASCII CR)
Erase erase previous character (or send ASCII BS)
EraseEOF erase to end of current field
EraseInput erase all input fields
FieldEnd move cursor to end of field
FieldMark mark field
HexString hex_digits insert control-character string
Home move cursor to first input field
Insert set insert mode
*Interrupt send TELNET IP to host
Key keysym insert key keysym
Key 0xxx insert key with character code xx
Left move cursor left
Left2 move cursor left 2 positions
MonoCase toggle uppercase-only mode
MoveCursor row col move cursor to (row,col)
Newline move cursor to first field on next line (or send ASCII LF)
NextWord move cursor to next word
*PA n Program Attention AID (n from 1 to 3)
*PF n Program Function AID (n from 1 to 24)
PreviousWord move cursor to previous word
Quit exit tcl3270
Redraw redraw window
Reset reset locked keyboard
Right move cursor right
Right2 move cursor right 2 positions
ReadBuffer Ascii dump screen buffer as text
ReadBuffer Ebcdic dump screen buffer in EBCDIC
Rows report screen size
Snap same as Snap Save
Snap Ascii report saved screen data (see Ascii)
Snap Cols report saved screen size
Snap Ebcdic report saved screen data (see Ebcdic)
Snap ReadBuffer report saved screen data (see ReadBuffer)
Snap Rows report saved screen size
Snap Save save screen image
Snap Status report saved connection status
*Snap Wait [timeout] Output wait for host output and save screen image
Status report connection status
*String string insert string (simple macro facility)
*SysReq System Request AID
Tab move cursor to next input field
set|clear]>Toggle option[ toggle an option
ToggleInsert toggle insert mode
ToggleReverse toggle reverse-input mode
*Transfer option=value... file transfer
Up move cursor up
*Wait [timeout] 3270mode wait for 3270 mode
*Wait [timeout] Disconnect wait for host to disconnect
*Wait [timeout] InputField wait for valid input field
*Wait [timeout] NVTMode wait for NVT mode
*Wait [timeout] Output wait for more host output

File Transfer

The Transfer command implements IND$FILE file transfer. This command requires that the IND$FILE program be installed on the IBM host, and that the 3270 cursor be located in a field that will accept a TSO or VM/CMS command.

Because of the complexity and number of options for file transfer, the parameters to the Transfer command take the unique form of option=value, and can appear in any order. Note that if the value contains spaces (such as a VM/CMS file name), then the entire parameter must be quoted, e.g., "HostFile=xxx foo a". The options are:

Option Required? Default Other Values
Direction No receive send
HostFile Yes    
LocalFile Yes    
Host No tso vm
Mode No ascii binary
Cr No remove add, keep
Remap No yes no
Exist No keep replace, append
Recfm No   fixed, variable, undefined
Lrecl No    
Blksize No    
Allocation No   tracks, cylinders, avblock
PrimarySpace No    
SecondarySpace No    
BufferSize No 4096  

The option details are as follows.

Direction
send to send a file to the host, receive to receive a file from the host.
HostFile
The name of the file on the host.
LocalFile
The name of the file on the local workstation.
Host
The type of host (which dictates the form of the IND$FILE command): tso (the default) or vm.
Mode
Use ascii (the default) for a text file, which will be translated between EBCDIC and ASCII as necessary. Use binary for non-text files.
Cr
Controls how Newline characters are handled when transferring Mode=ascii files. remove (the default) strips Newline characters in local files before transferring them to the host. add adds Newline characters to each host file record before transferring it to the local workstation. keep preserves Newline characters when transferring a local file to the host.
Remap
Controls text translation for Mode=ascii files. The value yes (the default) causes tcl3270 to remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page. The value no causes tcl3270 to pass the text to or from the host as-is, leaving all translation to the IND$FILE program on the host.
Exist
Controls what happens when the destination file already exists. keep (the default) preserves the file, causing the Transfer command to fail. replace overwrites the destination file with the source file. append appends the source file to the destination file.
Recfm
Controls the record format of files created on the host. fixed creates a file with fixed-length records. variable creates a file with variable-length records. undefined creates a file with undefined-length records (TSO hosts only). The Lrecl option controls the record length or maximum record length for Recfm=fixed and Recfm=variable files, respectively.
Lrecl
Specifies the record length (or maximum record length) for files created on the host.
Blksize
Specifies the block size for files created on the host. (TSO hosts only.)
Allocation
Specifies the units for the TSO host PrimarySpace and SecondarySpace options: tracks, cylinders or avblock.
PrimarySpace
Primary allocation for a file created on a TSO host. The units are given by the Allocation option.
SecondarySpace
Secondary allocation for a file created on a TSO host. The units are given by the Allocation option.
BufferSize
Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them.

The PrintText Action

The PrintText produces screen snapshots in a number of different forms. The default form wth no arguments sends a copy of the screen to the default printer. A single argument is the command to use to print, e.g., lpr. Multiple arguments can include keywords to control the output of PrintText:
file filename
Save the output in a file.
html
Save the output as HTML. This option implies file.
rtf
Save the output as RichText. This option implies file. The font defaults to Courier New and the point size defaults to 8. These can be overridden by the printTextFont and printTextSize resources, respectively.
string
Return the output as a string. This can only be used from scripts.
modi
Render modified fields in italics.
caption text
Add the specified text as a caption above the output. Within text, the special sequence %T% will be replaced with a timestamp.
command command
Directs the output to a command. This allows one or more of the other keywords to be specified, while still sending the output to the printer.

Nested Scripts

The String Command
The simplest method for nested scripts is provided via the String command. The arguments to String are one or more double-quoted strings which are inserted directly as if typed. The C backslash conventions are honored as follows. (Entries marked * mean that after sending the AID code to the host, tcl3270 will wait for the host to unlock the keyboard before further processing the string.)
\b Left
\exxxx EBCDIC character in hex
\f Clear*
\n Enter*
\pan PA(n)*
\pfnn PF(nn)*
\r Newline
\t Tab
\T BackTab
\uxxxx Unicode character in hex
\xxxxx Unicode character in hex

Note that the numeric values for the \e, \u and \x sequences can be abbreviated to 2 digits. Note also that EBCDIC codes greater than 255 and some Unicode character codes represent DBCS characters, which will work only if tcl3270 is built with DBCS support and the host allows DBCS input in the current field.

Note: The strings are in ASCII and converted to EBCDIC, so beware of inserting control codes.

There is also an alternate form of the String command, HexString, which is used to enter non-printing data. The argument to HexString is a string of hexadecimal digits, two per character. A leading 0x or 0X is optional. In 3270 mode, the hexadecimal data represent EBCDIC characters, which are entered into the current field. In NVT mode, the hexadecimal data represent ASCII characters, which are sent directly to the host.

Passthru

tcl3270 supports the Sun telnet-passthru service provided by the in.telnet-gw server. This allows outbound telnet connections through a firewall machine. When a p: is prepended to a hostname, tcl3270 acts much like the itelnet(1) command. It contacts the machine named internet-gateway at the port defined in /etc/services as telnet-passthru (which defaults to 3514). It then passes the requested hostname and port to the in.telnet-gw server.

Proxy

The -proxy option or the tcl3270.proxy resource causes tcl3270 to use a proxy server to connect to the host. The syntax of the option or resource is:
type:host[:port]
The supported values for type are:
Proxy Type
Protocol
Default Port
http
RFC 2817 HTTP tunnel (squid)
3128
passthru
Sun in.telnet-gw
none
socks4
SOCKS version 4
1080
socks5
SOCKS version 5 (RFC 1928)
1080
telnet
No protocol (just send connect host port)
none

The special types socks4a and socks5d can also be used to force the proxy server to do the hostname resolution for the SOCKS protocol.

Resources

Certain tcl3270 options can be configured via resources. Resources are defined by -xrm options. The definitions are similar to X11 resources, and use a similar syntax. The resources available in tcl3270 are:

Resource Default Option Purpose
blankFill False -set blankFill Blank Fill mode
charset bracket -charset EBCDIC character set
dbcsCgcsgid     Override DBCS CGCSGID
dsTrace False -trace Data stream tracing
eof ^D   NVT-mode EOF character
erase ^H   NVT-mode erase character
extended True   Use 3270 extended data stream
eventTrace False -trace Event tracing
icrnl False   Map CR to NL on NVT-mode input
inlcr False   Map NL to CR in NVT-mode input
intr ^C   NVT-mode interrupt character
kill ^U   NVT-mode kill character
lineWrap False -set lineWrap NVT line wrap mode
lnext ^V   NVT-mode lnext character
m3279 (note 1) -model 3279 (color) emulation
monoCase False -set monoCase Mono-case mode
numericLock False   Lock keyboard for numeric field error
oerrLock False   Lock keyboard for input error
oversize   -oversize Oversize screen dimensions
port telnet -port Non-default TCP port
quit ^\   NVT-mode quit character
rprnt ^R   NVT-mode reprint character
sbcsCgcsgid     Override SBCS CGCSGID
secure False   Disable "dangerous" options
termName (note 2) -tn TELNET terminal type string
traceDir /tmp   Directory for trace files
traceFile (note 3) -tracefile File for trace output
werase ^W   NVT-mode word-erase character

Note 1: m3279 defaults to False. It can be forced to True with the proper -model option.

Note 2: The default terminal type string is constructed from the model number, color emulation, and extended data stream modes. E.g., a model 2 with color emulation and the extended data stream option would be sent as IBM-3279-2-E. Note also that when TN3270E mode is used, the terminal type is always sent as 3278, but this does not affect color capabilities.

Note 3: The default trace file is x3trc.pid in the directory specified by the traceDir resource.

If more than one -xrm option is given for the same resource, the last one on the command line is used.

See Also

x3270(1), s3270(1), c3270(1), telnet(1), tn3270(1)
Data Stream Programmer's Reference, IBM GA23-0059
Character Set Reference, IBM GA27-3831
RFC 1576, TN3270 Current Practices
RFC 1646, TN3270 Extensions for LUname and Printer Selection
RFC 2355, TN3270 Enhancements

Copyrights

Copyright © 1993-2009, Paul Mattes.
Copyright © 2004-2005, Don Russell.
Copyright © 2004, Dick Altenbern.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

*
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
*
Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Version

tcl3270 3.3.10ga4
This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/tcl3270/html/Resources.html0000644000175000017500000007412711261527766020110 0ustar bastianbastian tcl3270 Resources

tcl3270 Resources

Resources are used to configure tcl3270. Resources are named items with string, integer or Boolean values.

Resource definitions come from the following sources:

  • Default values are compiled into tcl3270.
  • If a session file foo.tcl3270 is specified on the command line, its contents are applied. These definitions override resource values defined by compiled-in defaults.
  • Command-line options override all other resource definitions. If more than one command-line option sets a resource, the last one is used.
Many resources have their own command-line switches, which are listed below. Those that do not can still be set from the command-line via the -xrm command-line option. For example the tcl3270.bsdTm resource can be set by the following command-line option:
     -xrm 'tcl3270.bsdTm: true'
 
Note that -xrm is supported on all of the 3270 emulators, not just on x3270.

Resource File Syntax

A resource file (session file) has the following syntax.
  • Each definition consists of:
        tcl3270.resource-name: value
      
  • Comment lines begin with !.
  • Line continuation is indicated by a backshash (\) character at the end of a line.

Alphabetical Resource List

Name: tcl3270.aidWait
Type: Boolean
Default: false
Command Line: -set aidWait , -clear aidWait
Description:

When true, tcl3270 will not block a script after executing an AID action (Enter, Clear, PF or PA). It is then script's responsibility to poll tcl3270's status until it shows that the keyboard is no longer unlocked.

Name: tcl3270.blankFill
Type: Boolean
Default: false
Command Line: -set blankFill , -clear blankFill
Description:

When true, in 3270 mode tcl3270 will automatically convert trailing blanks in a field to NULLs in order to insert a character, and will automatically convert leading NULLs to blanks so that input data is not squeezed to the left. This works around some of the quirkier behavior of real 3270 terminals.

Name: tcl3270.bsdTm
Type: Boolean
Default: false
Description:

Defines tcl3270's response to the TELNET DO TIMING MARK option. When set to false, tcl3270 will respond to DO TIMING MARK with WONT TIMING MARK, which is consistent with most modern TELNET clients. When true, tcl3270 will respond with WILL TIMING MARK, which is consistent with the old BSD telnet command and with previous versions of tcl3270. In either case, tcl3270 will never respond to a DONT TIMING MARK option.

Name: tcl3270.certFile
Type: String
Command Line: -certfile
Description:

Gives the name of a certificate file, used by the OpenSSL library.

Name: tcl3270.charset
Type: String
Default: bracket
Command Line: -charset
Description:

This defines the host EBCDIC character set, that is, what glyph (image) is displayed for each EBCDIC code sent by the host, and what EBCDIC code is sent to the host for each character typed on the keyboard. This is more correctly referred to as the host code page.

To display the character sets supported by tcl3270, use the -v command-line option.

Name: tcl3270.color8
Type: Boolean
Default: false
Description:

If true, tcl3270 will respond to a Query(Color) with a list of 8 supported colors. If false, it will send a list of 16 colors. The 8-color setting is required for some hosts which abort a session if 16 colors are reported.

Name: tcl3270.commandTimeout
Type: Integer
Description:

Defines the number of seconds to wait for a command to complete before failing it with a timeout error.

Name: tcl3270.confDir
Type: String
Default: /usr/local/etc/x3270
Description:

Defines the tcl3270 configuration directory, where tcl3270 will search for the ibm_hosts file by default. (See tcl3270.hostsFile.)

Name: tcl3270.dbcsCgcsgid
Type: String
Description:

Overrides the compiled-in value of the CGCSGID for the current host character set, which will be reported to the host in response to a Query(Character Sets). The value is an integer, which can be prefixed with '0x' to be in hexadecimal. The upper 16 bits are the GCSGID (character set) and the lower 16 bits are the CPGID (code page). This value applies only to the double-byte (DBCS) character set. Use tcl3270.sbcsCgcsgid for the single-byte (SBCS) character set.

Name: tcl3270.dftBufferSize
Type: Integer
Default: 4096
Description:

Specifies the default buffer size for DFT IND$FILE file transfers. This value can be overridden in the File Transfer dialog and by a parameter to the Transfer action.

Name: tcl3270.dsTrace
Type: Boolean
Default: false
Command Line: -trace , -set dsTrace , -clear dsTrace
Description:

When true, tcl3270 writes a hexadecimal representation of all network traffic (and its interpretation) into a file, which defaults to /tmp/x3trc.pid. The directory prefix is defined by tcl3270.traceDir. If tcl3270.traceFile is defined, it gives the entire pathname and tcl3270.traceDir is ignored.

Name: tcl3270.eof
Type: String
Default: ^D
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when tcl3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current line of input to be forwarded to the host without a trailing CR/LF sequence.

Name: tcl3270.erase
Type: String
Default: ^?
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (tcl3270 gathers a line of input before forwarding it ot the host), entering this character at the keyboard will cause tcl3270 to discard the last character on the input line.

When connected in character-at-a-time mode (tcl3270 sends each keystroke to the host as it is entered), this is the character that will be sent to the host by the Erase action.

Name: tcl3270.eventTrace
Type: Boolean
Default: false
Command Line: -set eventTrace , -clear eventTrace
Description:

When true, tcl3270 traces information about keyboard and mouse events into a file. The default file name is /tmp/x3trc.pid. The directory prefix is defined by tcl3270.traceDir. If tcl3270.traceFile is defined, it gives the entire pathname and tcl3270.traceDir is ignored.

Name: tcl3270.extended
Type: Boolean
Default: false
Command Line: -extended
Description:

Deprecated resource -- replaced by tcl3270.model syntax

Indicates support for the 3270 Extended Data Stream.

Name: tcl3270.hostname
Type: String
Description:

Gives the name of the host to connect to. The name can include the usual options (prefixes to specify special connection options, LU names, and port). A hostname specified on the command line takes precedence over tcl3270.hostName.

The most common use of tcl3270.hostName is in session files, where a file is used to pass all of the options to establish a tcl3270 session.

Name: tcl3270.hostsFile
Type: String
Default: /usr/local/etc/x3270/ibm_hosts
Description:

The pathname of a file containing hostname aliases. The file can also be used to define a set of actions to perform when connecting to a host.

The format of the file is explained on the ibm_hosts manual page. The default pathname is actually ibm_hosts in the directory defined by tcl3270.confDir.

Name: tcl3270.icrnl
Type: Boolean
Default: true
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. It controls whether input carriage returns are mapped to newlines.

Name: tcl3270.inlcr
Type: Boolean
Default: false
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. It controls whether input newlines are mapped to carriage returns.

Name: tcl3270.intr
Type: String
Default: ^C
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When this character is typed on the keyboard, the TELNET IP (Interrupt Process) sequence is sent to the host.

Name: tcl3270.kill
Type: String
Default: ^U
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when tcl3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current input line to be erased.

When connected in character-at-a-time mode (when tcl3270 sends each keystroke to the host), this is the ASCII character that is sent to the host by the DeleteField action.

Name: tcl3270.lineWrap
Type: Boolean
Default: true
Command Line: -set lineWrap , -clear lineWrap
Description:

This setting is used only in NVT mode. When true, tcl3270 will automatically insert a CR/LF sequence when output reaches the end of a line. When false, output will pile up at the end of each line until the host sends a CR/LF sequence.

Name: tcl3270.loginMacro
Type: String
Description:

Defines a sequence of commands to run as soon as a host connection is established. Usually these would be commands used to navigate through login screens, such String, Tab and Enter.

If a tcl3270.hostsFile is in use and a matching entry is found, the login macro from that entry will be used in preference to the tcl3270.loginMacro.

Name: tcl3270.lnext
Type: String
Default: ^V
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when tcl3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard removes any special meaning from the next character entered.

Name: tcl3270.m3279
Type: Boolean
Default: false
Command Line: -color
Description:

Deprecated resource -- replaced by tcl3270.model syntax

Indicates support for color (a 3279 terminal).

Name: tcl3270.model
Type: String
Default: 3279-4-E
Command Line: -model
Description:

The terminal model that tcl3270 is emulating. The model is in three parts, separated by dashes; each part is optional.

  • 3278 or 3279
    3278 specifies a monochrome (green) 3270 display.
    3279 specifies a color 3270 display.
  • 2, 3, 4 or 5
    The model number, which determines the size of the screen.
    Model 2 has 24 rows and 80 columns.
    Model 3 has 32 rows and 80 columns.
    Model 4 has 43 rows and 80 columns.
    Model 5 has 27 rows and 132 columns.
    The default is 4.
  • E
    An optional suffix which indicates support for the 3270 Extended Data Stream (color, extended attributes, Query Reply). 3279 implies E.

Name: tcl3270.monoCase
Type: Boolean
Default: false
Command Line: -set monoCase , -clear monoCase
Description:

When true, causes tcl3270 to run in uppercase-only mode.

Name: tcl3270.numericLock
Type: Boolean
Default: false
Description:

When true, causes tcl3270 to lock the keyboard when non-numeric data is entered into fields with the Numeric attribute.

Name: tcl3270.onlcr
Type: Boolean
Default: true
Description:

Used only in NVT line-at-a-time mode; similar to the stty parameter of the same name. It controls whether output newlines are mapped to CR/LF sequences.

Name: tcl3270.oerrLock
Type: Boolean
Default: true
Description:

If true, operator errors (typing into protected fields, insert overflow, etc.) will cause the keyboard to lock with an error message in the OIA (status line). If false, these errors will simply cause the terminal bell will ring, without any keyboard lock or message.

Name: tcl3270.once
Type: Boolean
Default: false
Command Line: -once
Description:

When true, tcl3270 will exit as soon as a host disconnects. The default is false if no hostname is specified on the command line, true otherwise.

Name: tcl3270.oversize
Type: String
Command Line: -oversize
Description:

Sets the screen dimensions to be larger than the default for the chosen model. Its value is a string in the format colsxrows. It is used only if the tcl3270.model includes the "-E" (extended data stream) suffix, and only if the specified dimensions are larger than the model number defaults. Also, only hosts that support the Query Reply structured field will function properly with tcl3270 in this mode.

Name: tcl3270.port
Type: String
Default: telnet
Command Line: -port
Description:

The name of the default TCP port for tcl3270 to connect to. This can be either a symbolic name from /etc/services, or an integer.

Name: tcl3270.proxy
Type: String
Command Line: -proxy
Description:

Defines a proxy server that tcl3270 will use to connect to hosts. The value is of the form type:server[:port], where options for type are described on the tcl3270 manual page.

Name: tcl3270.quit
Type: String
Default: ^\
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when tcl3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the TELNET BREAK sequence to be sent to the host.

Name: tcl3270.rprnt
Type: String
Default: ^R
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when tcl3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current input line to be redisplayed.

Name: tcl3270.sbcsCgcsgid
Type: String
Description:

Overrides the compiled-in value of the CGCSGID for the current host character set. The value is an integer, which can be prefixed with '0x' to be in hexadecimal. The upper 16 bits are the GCSGID (character set) and the lower 16 bits are the CPGID (code page). This value applies only to the single-byte (SBCS) character set. Use tcl3270.dbcsCgcsgid for the double-byte (DBCS) character set.

Name: tcl3270.screenTrace
Type: Boolean
Default: false
Command Line: -set screenTrace , -clear screenTrace
Description:

When true, tcl3270 will save an ASCII version of the screen image in a file every time it changes. The file name defaults to /tmp/x3scr.pid. The directory prefix is defined by the tcl3270.traceDir resource. If the tcl3270.screenTraceFile resource is defined, it defines the file name and tcl3270.traceDir is ignored.

Name: tcl3270.screenTraceFile
Type: String
Description:

If defined, gives the name of the file that screen traces will be written into.

Name: tcl3270.scriptPort
Type: Integer
Command Line: -scriptport
Description:

If defined, tcl3270 will accept script connections on the specified local TCP port. The rules for the commands passed over these connections are documented in the x3270-script manual page.

Name: tcl3270.socket
Type: Boolean
Default: false
Command Line: -socket
Description:

When true, tcl3270 will create a Unix-domain socket than can be used by an external script to control the session. The name of the socket is /tmp/x3sck.pid. The -p option of the x3270if command can be used to connect to this socket.

Name: tcl3270.suppressActions
Type: String
Description:

A list of whitespace-separated action names, with or without parentheses, which are to be ignored. The actions will be completely inaccessible, whether by keymaps, scripts, macros or the Execute an Action menu option. This resource is intended to be used as a security precaution for users who can define their own keymaps, but who do not have access to resource definitions or command-line options.

Name: tcl3270.termName
Type: String
Command Line: -tn
Description:

An alternate name to be sent in response to the host's TELNET DO OPTION TERMINAL-NAME request. The default is IBM-, followed by the value of tcl3270.model.

Name: tcl3270.traceDir
Type: String
Default: /tmp
Description:

Defines the directory that trace files are written into.

Name: tcl3270.traceFile
Type: String
Command Line: -tracefile
Description:

If defined, gives the name of the file that data stream and event traces will be written into.

Name: tcl3270.traceFileSize
Type: String
Command Line: -tracefilesize
Description:

If defined, gives a limit on the size of the file that data stream and event traces will be written into. If not defined, or defined as 0, there will be no limit on the size of the file. The value is a number, followed by an optional suffix. If the suffix is K (e.g., 128K), the value will be multiplied by 1024. If the suffix is M, the value will be multiplied by (1024*1024). The size limit enforced at operation boundaries, not per byte, so the actual file may grow slightly larger. When the file size exceeds the limit, the second half of the file will be written over the first, so that in steady state, the file size will vary between half the tcl3270.traceFileSize and the entire tcl3270.traceFileSize.

Name: tcl3270.unlockDelay
Type: Boolean
Default: true
Description:

When tcl3270 sends the host an AID (the Enter, Clear, PF or PA actions), it locks the keyboard until the host sends a reply to unlock it. Some hosts unlock the keyboard before they are actually finished processing the command, which can cause scripts to malfunction subtly. To avoid this, tcl3270 implements a hack to briefly delay actually unlocking the keyboard. When tcl3270.unlockDelay is true, the keyboard unlock will be delayed for tcl3270.unlockDelayMs milliseconds. Setting it to false removes this delay, except when executing a macro.

Name: tcl3270.unlockDelayMs
Type: Integer
Default: 350
Description:

Overrides the default value for the unlock delay (the delay between the host unlocking the keyboard and tcl3270 actually performing the unlock). The value is in milliseconds; use 0 to turn off the delay completely, including for macros.

Name: tcl3270.werase
Type: String
Default: ^W
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when tcl3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard erases the last word of input.

When connected in character-at-a-time mode (when tcl3270 sends each keystroke to the host), this is the ASCII character that is sent to the host by the DeleteWord action.

Index of All Resources

aidWait blankFill bsdTm certFile
charset color8 commandTimeout confDir
dbcsCgcsgid dftBufferSize dsTrace eof
erase eventTrace extended hostname
hostsFile icrnl inlcr intr
kill lineWrap loginMacro lnext
m3279 model monoCase numericLock
onlcr oerrLock once oversize
port proxy quit rprnt
sbcsCgcsgid screenTrace screenTraceFile scriptPort
socket suppressActions termName traceDir
traceFile traceFileSize unlockDelay unlockDelayMs
werase

Basic Configuration Resources

charset hostname model port
proxy

NVT-Mode Resources

eof erase icrnl inlcr
intr kill lineWrap lnext
onlcr quit rprnt werase

Protocol Resources

bsdTm color8 dbcsCgcsgid dftBufferSize
sbcsCgcsgid termName

Terminal Interaction Resources

blankFill numericLock oerrLock

Security Resources

certFile suppressActions

Tracing Resources

dsTrace eventTrace screenTrace screenTraceFile
traceDir traceFile traceFileSize

Other Resources

aidWait commandTimeout confDir hostsFile
loginMacro monoCase once oversize
scriptPort socket unlockDelay unlockDelayMs

Deprecated Resources

extended m3279

tcl3270 verson 3.3.10ga4 Fri Oct 2 20:59:18 CDT 2009 ibm-3270-3.3.10ga4/tcl3270/html/FAQ.html0000644000175000017500000000444611254565710016533 0ustar bastianbastian tcl3270 Frequently Asked Questions

tcl3270 Frequently Asked Questions

If you have a problem building, installing, or running tcl3270, please browse through this file first.

Build/Run Questions

Unresolved Symbols

The tcl library is often installed as a shared library, so in order to run tcl3270, you need to have the library diectory in your LD_LIBRARY_PATH envronment variable.

General Questions

Am I allowed to use it?

Yes. Full copyright information is in the Lineage file, but the gist is that anyone is free to use the code, and anyone is free to sell copies of the code.

You are also free to modify it and to redistribute it, provided you preserve the existing copyright notices.

Getting Help

If you are still having a problem with tcl3270, feel free to send e-mail to Paul Mattes, Paul.Mattes@usa.net No guarantees are made about responses to particular problems, but a patches are usually forthcoming in a few days. It will also get you on an x3270 mailing list, which also includes information on tcl3270, and where you can find out about new releases and bug fixes.

When you send a question about tcl3270, please include the following information. It makes it much easier to narrow down the problem.

  1. The version of tcl3270 you are using, including all patches, e.g., "3.2.9".
  2. What kind of machine you are running on, e.g., "Sun SPARC-10".
  3. What operating system you are running, and what version, e.g., "SunOS 4.1.3_U1" or "Irix 5.2". The "uname -a" command will usually provide this information.
Complaints, suggestions, requests for enhancements, and porting experiences are also welcome. Code changes for bug fixes and enhancements are also welcome, provided that you don't mind your code being placed (often anonymously) under the x3270 license. ibm-3270-3.3.10ga4/tcl3270/html/ReleaseNotes.html0000644000175000017500000016452011261527766020524 0ustar bastianbastian tcl3270 Release Notes

Changes in x3270, c3270, wc3270, s3270, tcl3270, pr3287 and wpr3287 3.3

3.3 is the current development line for the x3270 suite.

Changes in version 3.3.10ga4, 2. October 2009

  • [all x3270] Improved the File Transfer summary display.
  • [all x3270] Removed the keyboard lock when processing an Enter AID in SSCP-LU mode.
  • [x3270] Fixed a build problem when DBCS support is disabled.
  • [c3270] Made the special keymap key names (e.g., PRINT) case-insensitive.
  • [c3270] Fixed a problem with keyboard input in ISO 8859 locales.
  • [x3270] Increased the maximum number of fonts scanned to 50000.

Changes in version 3.3.10ga3, 15. September 2009

  • [x3270] Fixed some bugs in the xmkmf-free build.

Changes in version 3.3.10alpha2, 10. September 2009

  • [c3270] Added the ability to move the 3270 cursor with the mouse, if the terminal supports it. Add a Mouse resource, which can be set to False to disable it.
  • [all 3270] Added a Translate keyword to the Transfer action's parameters and an additional question to the interactive c3270/wc3270 Transfer dialog, to allow the automatic remapping of text (usually done to get the most accurate translation) to be disabled.
  • Restored the pop-up window that displays trace files.

Changes in version 3.3.10alpha1, 3. September 2009

  • [3270] Allow the program to be built without xmkmf.
  • [all 3270] Fixed the mapping of EBCDIC X'FF' to U+009F in ASCII-mode file transfers.
  • [all 3270] Fixed a crash in CUT-mode binary file sends, and corrected the local fopen() flags when receiving a binary file.
  • [x3270] Added the APL up- and down-arrow characters (↑ and ↓) to the 12-point fonts (thanks to Paul Scott for the fix).
  • [all 3270] Script comments are now allowed (any input line beginning with # or !).
  • [wc3270] Added support for the Enhanced keymap modifier (EnhancedReturn is the keypad Enter key. Also added Enter, PageUp and PageDown as aliases for the Windows keys RETURN, PRIOR and NEXT.
  • [wc3270] Added oversize, font size and background color support to the Session Wizard.
  • [x3270] Fixed a problem with ignored -set and -clear options.
  • [c3270 and wc3270] Added support for the -oversize auto option, which allows the emulator to use the entire area of the terminal or console window it is running in.
  • [x3270] Removed the huge delay at start-up.
  • [x3270, c3270, s3270 and wc3270] Added support for TCP-socket-based scripting via the -scriptport option. For wc3270, this is the first time that scripting has been available.
  • [all 3270 except x3270] Added support for the screenTraceFile resource.
  • [all 3270] Fixed a file descriptor leak with the -socket option.
  • [all 3270] Fixed a crash with the Toggle action and undefined toggles.
  • [wc3270] Implemented no-install mode (allowing wc3270 to run without installing the software) and auto-shortcut mode (where wc3270 automatically creates a temporary shortcut file to match a session file and runs it).
  • [all 3270] When a hostname resolves to multiple addresses, try each until one works.
  • [all 3270] Corrected an issue where the keyboard would lock on the first screen when connecting to hosts like Hercules.
  • [wc3270] Added mappings of the Page Up and Page Down keys to PF(7) and PF(8) respectively.
  • [wc3270, ws3270] Removed the .dll files from the distribution.
  • [c3270] Corrected an issue with cursor and function keys not being recognized if they are the first key pressed.
  • [all 3270] BIND image screen sizing is now observed.
  • [pr3287 and wpr3287] Corrected the -charset documentation on the manual page.
  • [all 3270] Resurrected flipped-screen mode via the Flip and ToggleReverse actions.
  • [all 3270] Added a Seconds form to the Wait action, allowing a script or macro to delay itself an arbitrary length of time.
  • [wc3270] Modified the PrintText action so that Wordpad is started minimized.

Changes in version 3.3.9ga11, 25. March 2009

  • [x3270 and c3270] Re-enable the ibm_hosts file (it was accidentally being ignored).
  • [all but wc3270] Don't crash when there is no iconv translation for the locale codeset.
  • [all but x3270] Fixed a build failure in glue.c when DBCS was disabled.
  • [wc3270] Corrected the default keymap so that the uppercase versions of the Alt mapping also work.
  • [wc3270] Corrected the documentation of the printTextFont and printTextSize resources.
  • [c3270] Corrected a number of errors in parsing CursesColorForxxx resources.
  • [c3270] Added support for -rv, which puts c3270 into black-on-white mode.
  • [c3270] Added support for 16-color terminals, with the -color8 option overriding this and forcing 8-color support only. On a 16-color terminal, -allbold is no longer the default.
  • [c3270, wc3270, s3270 and tcl3270] Ensured that command-line parameters override session files.
  • [c3270] Made session files replace profiles, rather than just overridding any common definitions. This is more intuitive and consistent with x3270.

Changes in version 3.3.9ga11, 27. February 2009

Common Changes

  • Improved hostname parsing. Now backslashes can be used to quote any character, and square brackets can be used to quote any element (LU name, host name, or port).
  • Fixed a number of compiler warnings from newer versions of gcc and a number of small memory leaks.
  • Overhauled the host code pages and CGCSGIDs for DBCS. Added sbcsCgcsgid and dbcsCgcsgid resources to override the compiled-in values.
  • Added a caption text option to the PrintText action, which will place the specified caption above the screen image. Within the text, the string %T% is interpolated to a timestamp.
  • Improved the state dump when tracing starts to include NVT and SSCP-LU state and the SNA BIND image.
  • Updated the copyright and licensing notices (now a standard BSD license).
  • Added support for carriage-return (0x0d) characters in the String action, which imply the Newline action.
  • Changed the Attn action so that it sends an IAC BREAK in TN3270 mode, and locks the keyboard in TN3270E mode when the session is not SNA bound.
  • Added Traditional Chinese (host code page 937) support.
  • Extended the String action's \e and \x sequences to accept 4-digit hex values, thus allowing EBCDIC DBCS input and arbitrary Unicode input. Also added \u as an alias for \x.

Changes to x3270

  • Fixed a crash when pasting an empty selection.
  • Made the Query Reply response for x3270 identical to the other tools.
  • Included fonts for Traditional Chinese.

Changes to x3270 and c3270

  • Removed the nested copy of pr3287. from the source. pr3287 must now be built separately from its own package.

Changes to wc3270

  • Corrected a problem with color mapping in the OIA.
  • Changed the New Session Wizard to the Session Wizard and gave it the ability to edit existing session files and re-create missing session files. Note that this ability is limited to session files created with 3.3.9beta10 or later.
  • Added a wc3270.printer.codepage resource to set the Windows code page for the associated pr3287 printer session.
  • Simplified the operation of the New Session Wizard, so it asks fewer questions.
  • Added a pager to interactive mode.
  • Made the PrintText font and point size configurable via the printTextFont and printTextSize resources.
  • Changed the default 'blue' color for created shortcuts to a somewhat lighter shade, to make it more readable.
  • Changed the Session Wizard to specify the code page and proper font when creating shortcuts for DBCS sessions. This should allow DBCS to work on Windows 2000 and Vista.
  • Included ws3270 in the wc3270 release.

Changes to c3270 and wc3270

  • Added feedback for the progress of file transfers.
  • Implemented the Info action, which writes a message to the OIA (the line below the display).
  • Added a no-prompt mode, via the -noprompt command-line option and the noPrompt resource .
  • Added automatic reconnect, via the -reconnect command-line option and the reconnect resource.

Changes to ws3270 (formerly available as a pre-release)

  • Fixed a bug which resulted in all command timings being displayed as '-'.
  • Added the -localcp option and localCP resource to change the Windows code page used for local workstation I/O.
  • Added DBCS support and support for building using Microsoft tools.

Changes to pr3287 and wpr3287

  • Fixed a serious character-mapping bug.
  • Added DBCS support.

Changes to specific versions

  • [c3270, s3270, s3270, ws3270 and x3270] Added support for session files.
  • [All except wc3270 and ws3270] Extended the rtf option of the PrintText to non-Windows platforms.
  • [All except x3270] Fixed a number of issues with -xrm option processing and keymap display when backslash sequences were used.

Changes in version 3.3.8p2, 13 December 2008

  • [wc3270] Corrected the handling of 8-bit and DBCS characters in the PrintText action.
  • [tcl3270] Extended configure to find the Tcl library version automatically.
  • [wc3270] Corrected a problem which caused mouse clicks not to be recognized (not moving the cursor) if NumLock was set.
  • [all] Corrected the configure script to recognize a separately-installed iconv library even if the iconv() function is defined in libc.
  • [wc3270] Restored the bell sound, and added a visualBell resource to disable it.

Changes in version 3.3.8p1, 20 October 2008

  • [wc3270] Restored the Ctrl-] mapping for the Escape action, which had been inadvertently removed.
  • [wc3270] wc3270 now starts successfully on Windows Vista.
  • [c3270] On platforms that require the iconv library, c3270 once again recognizes ncurses names in keymaps.
  • [x3270] The module keysym2ucs.c now builds on FreeBSD.
  • [x3270] Selections now work properly on platforms that do not support XA_UTF8_STRING.

Changes in version 3.3.8, 11 October 2008

Version 3.3.8 includes a significant internal change, using Unicode for all translations between the host and the local workstation. This change should be transparent, but users who depended on certain behaviors of the old implementation may see unexpected differences.

Common Changes

  • Many more EBCDIC characters, such as Graphics Escape line-drawing and APL characters, are now properly displayed (even without special 3270 fonts), traced, cut/pasted with other applications, and returned by scripting actions like Ascii.
  • With two exceptions, the locale's encoding is now observed consistently when reading keymaps, generating trace files, etc. The exceptions are:
    • tcl3270 always uses UTF-8, per the internal Tcl convention.
    • Because Cygwin doesn't really support locales, the Windows ANSI code page is used as the local encoding instead.
    • Stateful encodings such as ISO 2022 are untested and very likely do not work.
  • The ICU library is no longer used, and ICU .cnv files are no longer included with the code.
  • Translation to/from the local encoding requires one of two facilities: Either libc must support __STDC_ISO_10646__ (wchar_ts are defined to be unicode values, as on Linux and Windows), or there must be an iconv library that can translate between UTF-8 and all local encodings.
  • DBCS support is enabled by default, except on Windows. It can be explicitly disabled in the configure script to reduce the size of the executable (removing several large translation tables).
  • The -v/--verbose option has been added to display build and copyright information.
  • The Thai host code page has changed from 838 to 1160.

Changes Common to the 3270 Terminal Emulators

  • The Key action now accepts Unicode arguments in the form U+nnnn, removing possible ambiguity from translating from the
  • Added a Source action to read script commands from a file.
  • Added a 10 second timeout to the start of the Transfer action.
  • Added an unlockDelayMs resource to change the number of milliseconds of delay before atually unlocking the keyboard after the host requests it. The default is 350; use 0 to disable the delay altogether.
  • IND$FILE file transfer now transfers DBCS text files properly.

Changes Common to 3287 Printer Emulators

  • Added direct support for all x3270 host character sets via the -charset option.
  • Added -trnpre and -trnpost options to specify files containing transparent data to send to the printer before and after each print job, respectively.

Product-Speific Changes

  • [x3270] Commands entered into the Print Screen Text dialog are now saved by the Save Changed Options in File option.
  • [x3270] Fixed some bad interactions between the pop-up keypad and the GNOME window manager.
  • [x3270] The Euro fonts have been folded into the standard fonts.
  • [x3270] The font menu is now arranged hierarchically by foundry and family.
  • [c3270] Added an underscore toggle to allow underlined fields to be displayed even on consoles with no native underlining support, by substituting underscore '_' characters for blanks and nulls in underlined fields.
  • [c3270] Overhauled Meta and Alt key support. Removed support for the archaic Meta modifier in keymaps (it was an alias for setting bit 0x80 in each key). Replaced it with an Alt modifier, which matches the ESC sequence sent for the Alt key by many terminals, and which can be combined with full 8-bit input characters.
  • [c3270] Changed the interpretation of keymaps so that keys and symbols are matched in Unicode. That is, keymap text is converted from the current locale's encoding to Unicode before matching, and input character codes are converted to Unicode before matching. This eliminates the difficulty in creating keymaps and interpreting traces in non-Latin-1 locales -- needing to translate from the accidental interpretation of 8-bit values as Latin-1 when they are not -- but with the side-effect of rendering some carefully-crafted existing keymaps invalid. Keymaps can also be written using Unicode U+nnnn notation.
  • [c3270] Changed the metaEscape resource so that auto means on, instead of using the terminfo km resource.
  • [c3270] Added an acs resource to control the use of curses ACS codes. If c3270.acs is set to true (the default), c3270 will use curses ACS codes for line-drawing characters. If set to false, it will display line-drawing characters with Unicode.
  • [wc3270] Added an underscore toggle to control how underlined and blinking fields are displayed. If it is set (the default), underlined fields are displayed by substituting underscore (_) characters for blanks and nulls, and blinking fields actually blink. If it is clear, underlined and blinking fields are displayed with highlighted backgrounds, which is compatible with previous verions of wc3270.
  • [wc3270] Left-clicking with the mouse will now move the cursor to that location.
  • [wc3270] The PrintText action now works, and is mapped by default to the sequence Alt <Key>p. The printer.name resource defines the default printer to use.
  • [wc3270] The PrintText action can now be used to produce a RichText snapshot of the screen contents, via the rtf keyword.
  • [wc3270] The program longer attempts to set the console code page, which was error-prone and unnecessary.
  • [wc3270] The idle command feature now works, controlled by the idleCommand, idleCommandEnabled and idleTimeout resources.
  • [wc3270] The program no longer attempts to set the console code page, which could lead to hangs on Vista.
  • [wc3270] The installation now creates a program group item to explore the wc3270 Application Data directory.
  • [wc3270] Corrected a problem with console color overrides, which prevented reverse-video mode (white background) from working properly. For now, the recommended method for enabling reverse video mode is to add these lines to your session file:
          wc3270.consoleColorForHostColor0: 15
          wc3270.consoleColorForHostColor7: 0
  • [wc3270] wc3270 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.
  • [tcl3270] Added a commandTimeout resource to force any Tcl3270 command to time out after the specified number of seconds. (Thanks to Mark Young.)
  • [tcl3270] Fixed a per-command memory leak. (Thanks to Mark Young.)
  • [wpr3287] Added a -printercp option to specify a particular code page for printer output.
  • [wpr3287] wpr3287 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.

Changes in x3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in x3270 3.3.7p7, 4. July 2008

  • Bug Fixes:
    • Corrected input of 8-bit characters when x3270 is run in a UTF-8 locale.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.
  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.

Changes in x3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Fixed an issue with Idle commands, which would cause x3270 to exit with a Not Found error as soon as the idle command fired.

Changes in x3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed the annoying delay when x3270 starts with an error pop-up.
    • Shortened the manpage so that it displays on non-groff platforms. The full text is still available in the HTML version.
    • Plugged a number of memory leaks.
    • x3270 will now compile on platforms that do not support IPv6, such as Cygwin.
    • x3270 will no longer crash or spin when the -script option is used.
    • Shifted function keys should work again (they map to PF13-PF24).
    • The screen can now be resized larger, as well as smaller.
    • Removed the dependency on <bitmaps/gray>, which required installing an obscure X11 development package on some platforms.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added a SelectAll action, mapped to Ctrl-A.

Changes in c3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.
    • Allowed c3270 to build under SLES 10's unusual ncurses configuration.

Changes in c3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in c3270 3.3.7p4, 29. February 2008

  • Bug Fixes:
    • Fixed c3270's configure script again, so it will build on systems without the ncurses library.
    • Enabled idle command functionality, which had been accidentally disabled.

Changes in c3270 3.3.7p1, 28. December 2007

  • Bug Fixes:
    • c3270's configure script would not detect missing ncurses header files, and c3270 would not build if ncursesw was not installed.

Changes in c3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • c3270 will now display characters such as the notsign ¬ properly in terminal windows in UTF-8 locales. Note that this display support requires an ncurses or curses library that supports wide characters.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added display of the host code page and locale codeset to the show status command.
    • Added support for changing the color mappings. The curses color for a given host color can be specified with the resource c3270.cursesColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a curses color number (0 through 7).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      c3270.cursesColorForDefault
      c3270.cursesColorForIntensified
      c3270.cursesColorForProtected
      c3270.cursesColorForProtectedIntensified
             
      The value for each of these is a curses color number (0 through 7).

Changes in wc3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed idle command support.

Changes in wc3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Fixed a problem with transferring binary files, where 0x0d characters might be acidentally added to or removed from the data.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in wc3270 3.3.7p5, 11. April 2008

  • Bug Fixes:
    • After installation is complete, get rid of mkshort.exe, which shares its name (but not its functionality) with a computer surveillance application.
    • Corrected several issues with key event processing and the default keymap.

Changes in wc3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Changed the New Session Wizard to create the Application Data directory, so wc3270 can be run by any user, not just the one that installed it.
    • Changed the default window title from the pathname of the session to just the session name.

Changes in wc3270 3.3.7p2, 15. January 2008

  • Bug Fixes:
    • Fixed an embarassing problem that kept wpr3287 from starting.

Changes in wc3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed line-drawing characters.
    • Enabled IPv6 support for Windows XP and later.
    • Set the input code page correctly, so that keyboard input works correctly when there is a mismatch between the default Windows code page and the code page implied by the wc3270 character set option.
  • New Features:
    • Added limited support for Windows 98. wc3270 will install and run on Windows 98, but internationalization support is limited -- the only supported host code page is 37, and the only supported Windows code page is 437. This is expected to improve in the future.
    • Added a wc3270.highlightUnderline resource to control highlighting of underlined and blinking text. (Set to false to disable background highlighting.)
    • Moved session files, keymaps and trace files to the Application Data directory. (wc3270 will still look in its installation directory for session files and keymaps, after first searching the Application Data directory.) This makes wc3270 a better Windows citizen in general, and a better Vista citizen in particular.
    • Added support for changing the color mappings. The console color for a given host color can be specified with the resource wc3270.consoleColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a console color number (0 through 15).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      wc3270.hostColorForDefault
      wc3270.hostColorForIntensified
      wc3270.hostColorForProtected
      wc3270.hostColorForProtectedIntensified
             
      The value for each of these is a host color number; the actual color displayed is defined by the corresponding wc3270.consoleColorForHostColorn resource.
    • Added a new cp1153 character set. It implements host code page 1153 and uses Windows code page 1250, used primarily in Central Europe.
    • Added display of the Windows code page to the character set screen in the New Session Wizard.
    • Added display of the host and Windows code pages to the show status command.

Changes in s3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in s3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in s3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer(Ascii) actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

      NOTE: If you were were previously running s3270 in a UTF-8 locale, this is an incompatible change. To ensure the previous behavior, set your locale to C before starting s3270.

Changes in tcl3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in tcl3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in tcl3270 3.3.7p3, 22. Febuary 2008

  • Bug Fixes:
    • Fixed a problem with non-ASCII characters returned by the Ascii command.
    • Fixed a problem with the Connect command, which resulted in subsequent actions not blocking properly.

Changes in tcl3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

Changes in pr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in pr3287 3.3.7, 25. December 2007

  • Enhancements:
    • Added proxy support via the -proxy option.

Changes in wpr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in wpr3287 3.3.7, 25. December 2007

(none)

Changes in x3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Fixed the highlighted attribute for individual regions of the screen (versus the highlighted field attribute); it had been accidentally disabled.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Pseudo-Color mode is no more. This was the mode that x3270 used when a 3278 model was specified, or if the m3279 resource were set to False. Pseudo-Color assigned colors to regions of the screen based on intensity and light-pen selectability, and did not support 3279 colors. Now turning off color or selecting a 3278 results in something that looks like a 3278 (i.e., it's green). To resurrect Pseudo-Color mode, set the following resources:
        x3270.inputColor: orange
        x3270.boldColor: cyan

Changes in c3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Got local process (-e) support to work again.
    • Fixed -mono -allbold mode.
    • c3270 now paints the entire screen, not just the areas it intends to use, so there are no uninitialized regions.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for the 3270 background color attribute.
    • Added more mappings to the 3270 default keymap (IC -> ToggleInsert, Ctrl<Key>U -> DeleteField, etc.).
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Like x3270 and wc3270, -model 3278 now specifies a green-screen 3278 (if the terminal supports color), and like x3270, -mono specifies that any color capabilities reported by the terminal should be ignored.

Changes in wc3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Restored line-drawing character support.
    • Restored background color support in NVT mode.
    • Corrected some screen rendering issues.
    • Fixed screen trace (-set screenTrace).
    • Removed the -mono option and mono resource.
  • New Features:
    • Added the Spanish character set, CP 284.
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for setting the window title, either automatically, or via the -title option or wc3270.title resource.
    • Added gray background highlighting of underlined and blinking text. Windows consoles don't support these attributes, but at least they can be distinguished from other text now.
    • Added background color support in 3270 mode.
    • Added a window to monitor trace output.
    • Greatly improved key event tracing.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in s3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in tcl3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in wc3270 3.3.5p9, 10. June 2007

  • Bug Fixes:
    • The shortcut cursor size property is now obeyed.
    • The -model 3278 option now works correctly.
  • New Features:
    • Added secure connection status to the status line and the show status command.
    • Reverse video is now supported.
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added a keymap tutorial to the documentation.

Changes in wc3270 3.3.5p8, 29. April 2007

  • Bug Fixes:
    • Fixed a hang when wpr3287 exits unexpectedly.
    • Improved behavior when input comes from multiple sources, such as when pasting text.
    • Greatly improved screen update speed.
  • New Features:
    • Added wpr3287 support back to the wizard. It was in the GUI version, but was never in the text version.
    • Integrated new back-end printer support in wpr3287, including a new wc3270.printer.name resource.
    • Added a Paste() action, mapped to Ctrl-V, to do multi-line paste properly.
    • Added a .wc3270km suffix to keymap files.
    • Added keymap support to the wizard.
    • Added interactive prompting to the Transfer() action.

Changes in wpr3287 3.3.5p8, 29. April 2007

  • New Features:
    • Added direct support for Windows printers, instead of relying on the DOS PRINT command. This included changing the -command option to a -printer option, to specify the Windows printer to use as a back end.

Changes in x3270 3.3.5p6, 7. April 2007

  • Bug Fixes:
    • x3270 will now build with ICU 3.6.
    • A long-standing screen update bug is finally fixed.
    • The unused x3270hist.pl script is no longer installed.

Changes in c3270 3.3.5p4, 7. April 2007

  • Bug Fixes:
    • c3270 can now be built without File Transfer support.
    • The unused x3270hist.pl script is no longer installed.

Changes in wc3270 3.3.5p3, 2. March 2007

  • Bug Fixes:
    • Reverted the wc3270 New Session Wizard to the non-GUI version, because the GUI version, built with Microsoft Visual C++ 2005 Express Edition, had too many dependencies (latest service pack, .NET framework) on the target machine.

Changes in wc3270 3.3.5p2, 16. February 2007

  • Bug Fixes:
    • Ensured that the desktop shortcuts specify Lucida Console, so non-ASCII-7 characters are displayed properly.
  • New Features:
    • Added a file association for the .wc3270 suffix.
    • Replaced the console version of the New Session Wizard with a proper GUI version.

Changes in wc3270 3.3.5p1, 6. February 2007

  • Bug Fixes:
    • Added the working directory to the desktop links created by the setup program.
  • New Features:
    • Added printer session (wpr3287) support.

Changes in x3270 3.3.5, 1. February 2007

  • Bug Fixes:
    • Fixed a crash when the user's home directory or the ~/.x3270connect file wasn't writeable.
    • Fixed some endcases when pasting text that wraps lines and a field skip is encountered.
    • Fixed the handling of SI characters in cut/pasted text.
    • Allow the use of ICU version 3.0 or greater.
    • Fixed a scripting hang when the host disconnects during Wait(output)).
    • Turned the unlockDelay option back on by default.
    • Fixed a problem where unlockDelay could result in the keyboard never unlocking, if the host unlocked the keyboard often enough.
    • Added a workaround for very old snprintf() implementations.
    • Fixed a problem with DBCS input corrupting existing DBCS subfields.
    • Fixed a problem with the Wait action in the expect glue. (Thanks to Jason Howk for the fix.)
    • Enlarged the input buffer in x3270if. (Thanks to Igor Klingen for the fix.)
    • Fixed a SIGCHLD handler issue on AIX.
    • Fixed a problem with CR/LF translation on ASCII file transfers.
  • New Features:
    • Added a -socket option to x3270, s3270 and c3270 to allow a script to connect to a Unix-domain socket to control the emulator, and added a -p option to x3270if to connect to the socket.
    • Added optional support for plugins, with a first plugin to implement command history on VM/CMS and TSO hosts.
    • Allow arbitrary color names (#rrggbb) to be used in color schemes.
    • Added support for hierarchical macro menus.
    • Added an XkSelector resource to allow transparent support of non-English keyboards.
    • Added preliminary support the 16-bit display fonts and the Persian character set.
    • Added Title and WindowState actions to allow the x3270 window title and icon state to bw changed respectively.

Changes in x3270 3.3.4, 10. April 2005

  • Bug Fixes:
    • The code once again builds on Cygwin and other systems not supporting IPv6.
    • The -xrm option works again in x3270.
    • The -name X Toolkit option works with x3270, though not yet with app-defaults files.
    • Removed spurious 'no child' error messages from pr3287 on some systems.
    • Removed unintended blank-line suppression from the output of PrintText html string.
    • Restored some missing keymap definitions (rlx, ow) and some missing lines from other keymap definitions (apl).
    • Restored the automatic keyboard unlock delay when processing a macro or string. This allows macros and strings with embedded AID sequences to work with hosts that unlock the keyboard before they finish processing a command. Scripts are presumed to be able to figure out when the host is finished, or can set the unlockDelay resource to true get the delay all the time.
    • Fixed an apparent hang (actually just extreme slowness) when the host sends a message larger than 4 Kbytes on an SSL tunnel.
    • Removed spurious 'Wait timed out' errors in the Wait action.
  • New Features:
    • Added a newer, more flexible version of Don Russell's RPQNAMES support.
    • Added support for IPv6.
    • Added an oldclick keymap to restore the pre-3.3 mouse click behavior.

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta2, 1. February 2005

  • Bug Fixes:
    • Reduced the Resident Set Size (RSS) of x3270 from about 40 MBytes to less than 4 MBytes. This was a bug in how compiled-in app-defaults files were generated.
    • Got separate app-defaults files (configure --enable-app-defaults) to work again.
    • Fixed a crash when a login macro is used in NVT mode or when the host un-negotiates TN3270E mode.
    • Fixed the titles of the Copyright and Configuration pop-ups.
    • Temporarily disabled the RPQNAMES Query Reply. It was causing IBM QMF to crash. It can be re-enabled by adding #define X3270_RPQNAMES 1 to conf.h. Hopefully a proper fix can be found shortly.
  • New Features:

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta1, 31. December 2004

  • Bug Fixes:
    • The Transfer() action did not work at all -- it generated (null) as the name of the IND$FILE command. Also improved its behavior when invoked from a script or macro in x3270 and c3270.
    • Corrected the definition of the hebrew (code page 424) character set, removing undefined characters.
    • Corrected the display character set for the brazilian (code page 275) character set.
    • Corrected the character set definition logic so that undefined ASCII codes are truly undefined in NVT mode.
    • Corrected the ibm_hosts file (the hostsFile resource or the -hostsfile option). Variable and tilde substitution are now performed on the value, and if a non-default value is specified and the file does not exist, an error pop-up is generated.
    • Added a pause to make sure that c3270 start-up error messages will be seen.
    • Got the c3270 default field colors right, and made all-bold mode actually make all the fields bold.
    • Fixed the default primary/alternate screen size (it was alternate, it's supposed to be primary).
    • Fixed c3270 color support with ncurses and 80/132 screen-size switching. Sometimes only one of the screen sizes had color.
    • Fixed a memory leak in pr3287 when the -reconnect option is used. (Thanks to Marcelo Lemos for the fix.)
    • Fixed the output of NVT-mode ANSI line-drawing characters in the Ascii() scripting action. These were formerly all output as blanks; now they are output in the same was as x3270 3.2.
    • Fixed the display of NVT-mode ANSI line-drawing characters when x3270 is using a 3270 font.
    • Fixed the display of DBCS blanks, which sometimes displayed as 'undefined' characters.
    • Fixed DBCS character display with fonts whose maximum bounds are larger than their reported line-spacing bounds.
    • Fixed make depend.
    • Fixed x3270_glue.expect, which got confused when there was a whitespace-delimited double-quote in the emulator output.
    • Fixed crashes when the entire File or Options menus were suppressed.
    • Fixed a scripting hang when an UNBIND command arrived while an AID was pending.
    • Fixed a problem with the incomplete processing of a NULLing Program Tab order, which could leave formatting artifacts on the screen.
    • Removed <subchar1> clauses in two of the .ucm files that prevents later versions of ICU's makeconv from accepting them, and removed DOS carriage-return characters from the CP837 .ucm file.
    • Corrected some DFT-mode file upload problems: corrected the data length, and corrected an empty-buffer problem when the file size was an even multiple of the buffer size.
    • Corrected a DBCS conversion problem with ICU 3.0.
    • Added variable buffer-size support to DFT file transfers.
    • Corrected a line-drawing character bug in c3270.
    • Fixed a buffer overflow problem in the ReadBuffer action.
    • Fixed garbage characters generated for APL data by the Ascii and ReadBuffer actions.
    • Allow 0 timeouts in Wait actions.
  • New Features:
    • Added command-line options to the pr3287 trace file.
    • Added support for dead keys (acute, grave, circumflex, tilde, diaeresis) to the x3270 default keymap, and improved the Latin-1 compose map. (Thanks to Marcelo Lemos for the change.)
    • Added new actions for improved mouse interactions, and made them the default. Button 1 now moves the cursor, without the Shift key.
    • Added support for DBCS in pr3287, but only when started from an x3270 or c3270 session.
    • Added Don Russell's RPQNAMES support.
    • Removed Minolta-copyrighted 5250 code, because of licensing problems.
    • Added an aidWait toggle to allow AID script actions (Clear, Enter, PA and PF) to complete immediately without waiting for the host to unlock the keyboard, and a Wait(Unlock) action action to block a script until the keyboard is unlocked, regardless of the state of the new toggle.
    • Removed the old scripting hack that delayed actually unlocking the keyboard for 50ms after the host indicates that it should be unlocked. Added an unlockDelay resource, which can be set to true to turn the delay hack back on.
    • Added a dftBufferSize resource to set the default DFT buffer size.
    • Added an x3270 Save Screen Text menu option to save the screen image in a file, optionally in HTML.
    • Added options to the PrintText action to save to a file, to save HTML, and to return the text as script data.

Changes in x3270, c3270, s3270 and tcl3270 3.3.2, 1. December 2003

  • Bug Fixes:
    • Corrected an x3270 screen-redraw crash when using fixedSize and xim.
    • Corrected a problem in x3270_glue.expect, which caused Tcl syntax errors if a string began with a dash. Thanks to David Taylor for the fix.
    • Fixed a problem with x3270 DBCS input when using a single DBCS/SBCS character set.
    • Made DBCS encoding recognition automatic wherever possible, leaving the -km option for cases when x3270 can't figure it out from the locale.
    • Made c3270's configure more robust when it can't find one or the other of libncurses or ncurses.h.
    • Got automatic pr3287 start-up (-printerlu) working again in c3270.
    • Fixed an s3270 crash which made s3270 3.3.1alpha10 pretty much useless.
  • New Features:
    • Added support for Cyrillic keysyms to the x3270 Default() action.
    • Added an 'unlocked' icon for unencrypted connections, if x3270 is built with SSL/TLS support.
    • Error messages are now written to the trace file.
    • The response to the TELNET TIMING MARK option has been changed to make it compatible with the majority of TELNET clients. The response to DO TIMING MARK is now WONT TIMING MARK. To restore the previous behavior (responding with WILL TIMING MARK, originally derived from the BSD TELNET client), set the resource x3270.bsdTm to true.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha10, 29. August 2003

  • Bug Fixes:
    • Made nondisplay fields invisible to the Ascii() action.
    • Corrected start-field values at the beginning of data stream traces and in the 3270 Read Buffer response.
    • Corrected a tight loop in the macro error cancellation logic.
    • Corrected a crash when connecting to a host and there is no menu bar visible.
    • Corrected x3270 crashes in monochrome mode (-mono) and pseudo-color mode (-model 3278).
  • New Features:
    • Added a ReadBuffer() action to dump the entire contents of the 3270 buffer, including field attributes and extended attributes.
    • Added support for suppress resources for each menu item. If set to True, that menu item will not appear.
    • Added a suppressActions resource, a list of the names of actions to disable. This is primarily for controlled environments where the user does not have access to the x3270 command line, but can edit keymap definitions.
    • Added a Setverbose function to x3270_glue.expect to allow verbosity to be changed on the fly. (Courtesy of David Taylor.)
    • Added the ability to define resources in an environment variable, $X3270RDB. The environment variable overrides values set in the profile file, but is overridden by command-line options.
    • Added a fixedSize resource to force the x3270 main window to a particular size. fixedSize has the form widthxheight, in pixels. The 3270 display will float in the center of the window, if need be.
    • Added a new x3270 keypad position (x3270.keypad): insideRight. This positions the keypad on top of the upper right-hand corner of the x3270 window, just under the keypad button on the menu bar.

Changes in pr3287 3.3.1alpha10, 10. August 2003

  • Enhancements:
    • Added support for the -tracedir option, to specify a directory to store trace files in.
    • Added support the the -eojtimeout option, to automatically flush any pending print job after a specified period of inactivity.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha9, 24. July 2003

  • Bug Fixes:
    • DBCS character set names are displayed in the x3270 Options->Font menu only when DBCS support is built into x3270.
    • Removed the concept of 'per-host' resources. Use profiles for this.
    • Fixed idle commands. They were pretty much hopeless in 3.3.1alpha8 and 3.2.20.
    • Fixed a Unicode conversion crash.
    • Fixed a bug in processing the Modify Field order, which would cause the character set attribute for the field to be accidentally reset to the default.
  • New Features:
    • x3270 user-specified lists (character sets, hosts, fonts, color schemes) can now be organized into sub-lists. The name Bob>Fred>Tony specifies that there is a sub-list called Bob, which contains a sub-list Fred, which contains the item Tony.
    • The TELNET START-TLS option is now supported.

Changes in pr3287 3.3.1alpha9, 30. July 2003

  • Bug Fixes:
    • Ignore SIGINT in the print job process, so that killing an interactive pr3287 with ^C won't cause buffered data to be lost.
    • Fixed a problem with losing a byte of data after an SHF order.
    • Fixed the SCS HT order, which was completely broken.
  • Enhancements:
    • Added support for SIGUSR1 to flush the print job.
    • Added support for the TELNET START-TLS option.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha8, 15. April 2003

  • Bug Fixes:
    • Builds cleanly on Linux with -Wall -ansi -pedantic.
    • Builds without OpenSSL libraries being present.
    • Correctly records Field Attributes in the initial screen snapshot in a Data Stream Trace file.
    • Auto-Skip fields work properly.
    • "Dead" positions in DBCS fields are handled correctly.
    • Invalid host DBCS characters are handled better and are displayed in the Data Stream Trace file.
    • The Erase action now works properly with DBCS characters.
    • The x3270 Visible Control Characters toggle now works properly.
    • The EBCDIC notsign '¬' can now be entered in c3270 with Ctrl-A, ^ (it formerly caused an error message).
  • New Features:
    • The Erase action is now the default for the BackSpace key in x3270.
    • Ctrl-A, a is now mapped onto the Attn action in the c3270 default 3270 keymap.
    • Four more Japanese host code pages have been added: 930, 939, 1390 and 1399. This uses new support for combined SBCS/DBCS code pages.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1, 14. February 2003

  • Bug Fixes:
    • (Same as x3270 3.2.20)
  • New Features:
    • DBCS support for Simplfied Chinese and Japanese, including x3270 integration with XIM.
    • Tunneled SSL support added (entire Telnet session inside of an SSL tunnel). Uses the OpenSSL library. Toggled with an 'L:' prefix on the hostname.
    • A Visible Control Characters toggle replaces x3270's 3270d Debug Font.
    • About x3270 pop-up split into three smaller pieces.
ibm-3270-3.3.10ga4/tcl3270/html/Build.html0000644000175000017500000001114211254565710017152 0ustar bastianbastian tcl3270 Build and Install Instructions

tcl3270 Build and Install Instructions

To build tcl3270, type:
    ./configure
    make
To install tcl3270 in the default install directory (/usr/local/bin), type:
    make install

Notes on the Tcl Library

tcl3270 uses the tclsh command to determine the version of the Tcl library to use. When you run the configure script, make sure that your $PATH points to the version of tclsh that corresponds to the version of the Tcl library you want tcl3270 to use.

Notes for Solaris 2.x and Sun's C Compiler

Do not use Sun's BSD-compatibility compiler, /usr/ucb/cc. This is good advice in general, but in particular, tcl3270 will not build with it. You must have a directory containing gcc (preferred) or Sun's standard compiler in your $PATH ahead of /usr/ucb.

Building on FreeBSD

FreeBSD's iconv library is installed in /usr/local, so the the following options must be passed to the configure script:
       ./configure LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include

Summary of configure Options

The tcl3270 configure script accepts the following options:
 
--help Print a help message.
--prefix=prefix Install architecture-independent files under prefix (defaults to /usr/local)
--exec-prefix=eprefix Install architecture-dependent files (executables) under eprefix (defaults to same as prefix)
--bindir=dir Install user executables (tcl3270) in dir (defaults to eprefix/bin)
--sysconfdir=dir Install configuration files (character sets) in dir/x3270 (defaults to prefix/etc).
--with-tcl=version Use a different version of the Tcl library. The default is 8.4.
--with-tclx
--with-tclx=version
Use the Extended Tcl library. The TclX library must be the same version as the Tcl library.
If an explicit version is specified, this changes the Tcl library version as well.
--disable-ansi Leave out NVT (ANSI) support.
Note that NVT support is required for TN3270E support.
--disable-apl Leave out APL character support.
--enable-dbcs
Build in DBCS (Double Byte Character Set) support.
--disable-ft Leave out IND$FILE file transfer support.
--disable-local-process Leave out local process (connecting to "-e shell_command") support.
This will be automatically disabled if the local system does not support the forkpty() library call.
--disable-printer Leave out printer session (pr3287) support.
--disable-ssl
Leave out SSL (Secure Sockets Layer) support.  SSL support requires the OpenSSL library.
--with-ssl=dir
Specify the directory where the OpenSSL library is installed.
--disable-tn3270e Leave out TN3270E support.
--disable-trace Leave out tracing support.

Leaving out all of the optional features will result in a smaller binary.



ibm-3270-3.3.10ga4/tcl3270/html/Lineage.html0000644000175000017500000000446211254565710017466 0ustar bastianbastian tcl3270 Lineage

tcl3270 Lineage

Here is the official copyright notice for tcl3270 3.3. It is a standard 3-element BSD license.

Copyright © 1993-2009, Paul Mattes.
Copyright © 2004-2005, Don Russell.
Copyright © 2004, Dick Altenbern.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

ibm-3270-3.3.10ga4/tcl3270/html/README.html0000644000175000017500000000370511254565710017056 0ustar bastianbastian tcl3270 3.3 General Release

tcl3270 3.3 General Release

tcl3270 is a scripted IBM 3278/3279 terminal emulator.

Documentation is in the html directory. The files are:

Intro
What tcl3270 is
Lineage
Where tcl3270 came from (copyright stuff)
Build
How to build and install tcl3270
FAQ
Frequently Asked Questions (what to do when something goes wrong)
ReleaseNotes
What's new in this release
Resources
A complete list of tcl3270 resources (configuration items)
There is also a hypertext version of the tcl3270 man page. Please read Build before going ahead and building the program. Also, if you have a problem, scan through FAQ; there are lots of interesting answers there.

Updates to tcl3270, as well as the current status of development and bugs, are available from the x3270 Web Page.

Feel free to send comments, criticism, suggestions, complaints, etc., to Paul Mattes, Paul.Mattes@usa.net. Requests will be addressed as time and resources permit.

There is also an x3270 mailing list, which also includes information about tcl3270, and which receives news about new releases. Send a message to Paul.Mattes@usa.net (a real person, with an automatic responses for certain subject lines) to get on the list. ibm-3270-3.3.10ga4/tcl3270/config.sub0000755000175000017500000010115311254565704016251 0ustar bastianbastian#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ibm-3270-3.3.10ga4/tcl3270/unicode.c0000644000175000017500000025016111254565704016064 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * unicode.c * A Windows console-based 3270 Terminal Emulator * EBCDIC/Unicode translation functions */ #include "globals.h" #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #include "3270ds.h" #if !defined(PR3287) /*[*/ #include "appres.h" #endif /*]*/ #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" #if !defined(PR3287) /*[*/ #include "utilc.h" #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(USE_ICONV) /*[*/ iconv_t i_u2mb = (iconv_t)-1; iconv_t i_mb2u = (iconv_t)-1; #if !defined(_LIBICONV_VERSION) || _LIBICONV_VERSION < 0x0108 /*[*/ typedef char *ici_t; /* old iconv */ #else /*][*/ typedef const char *ici_t; /* new iconv */ #endif /*]*/ #endif /*]*/ #define DEFAULT_CSNAME "us" #if defined(_WIN32) /*[*/ # if defined(WS3270) /*[*/ # define LOCAL_CODEPAGE appres.local_cp # else /*[*/ # define LOCAL_CODEPAGE CP_ACP # endif /*]*/ #endif /*]*/ /* * EBCDIC-to-Unicode translation tables. * Each table maps EBCDIC codes X'41' through X'FE' to UCS-2. * Other codes are mapped programmatically. */ #define UT_SIZE 190 #define UT_OFFSET 0x41 typedef struct { char *name; unsigned short code[UT_SIZE]; const char *host_codepage; const char *cgcsgid; const char *display_charset; } uni_t; static uni_t uni[] = { { "cp037", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp273", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "273", "273", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp275", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00c9, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x00c7, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e7, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e3, 0x003a, 0x00d5, 0x00c3, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f5, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e9, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "275", "275", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp277", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "277", "277", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp278", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "278", "278", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp280", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "280", "280", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp284", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "284", "284", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp285", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "285", "285", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp297", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "297", "297", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp424", { 0x5d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x05ea, 0x0000, 0x0000, 0x00a0, 0x0000, 0x0000, 0x0000, 0x21d4, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x00b8, 0x0000, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000 }, "424", "0x03ad01a8", "3270cg-8,iso10646-1,iso8859-8" }, { "cp500", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "500", "500", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp870", { 0x00a0, 0x00e2, 0x00e4, 0x0163, 0x00e1, 0x0103, 0x010d, 0x00e7, 0x0107, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x0119, 0x00eb, 0x016f, 0x00ed, 0x00ee, 0x013e, 0x013a, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x02dd, 0x00c1, 0x0102, 0x010c, 0x00c7, 0x0106, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x02c7, 0x00c9, 0x0118, 0x00cb, 0x016e, 0x00cd, 0x00ce, 0x013d, 0x0139, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x015b, 0x0148, 0x0111, 0x00fd, 0x0159, 0x015f, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00b8, 0x02db, 0x00a4, 0x0105, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x015a, 0x0147, 0x0110, 0x00dd, 0x0158, 0x015e, 0x00b7, 0x0104, 0x017c, 0x0162, 0x017b, 0x00a7, 0x017e, 0x017a, 0x017d, 0x0179, 0x0141, 0x0143, 0x0160, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x0155, 0x00f3, 0x0151, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x011a, 0x0171, 0x00fc, 0x0165, 0x00fa, 0x011b, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x010f, 0x00d4, 0x00d6, 0x0154, 0x00d3, 0x0150, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x010e, 0x0170, 0x00dc, 0x0164, 0x00da }, "870", "0x03bf0366", "iso10646-1,iso8859-2" }, { "cp871", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00fe, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00de, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "871", "871", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp875", { 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a8, 0x0386, 0x0388, 0x0389, 0x2207, 0x038a, 0x038c, 0x038e, 0x038f, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x00b4, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x00a3, 0x03ac, 0x03ad, 0x03ae, 0x0390, 0x03af, 0x03cc, 0x03cd, 0x03b0, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x03c9, 0x03ca, 0x03cb, 0x2018, 0x2015, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b1, 0x00bd, 0x0000, 0x00b7, 0x2019, 0x00a6, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00a7, 0x0000, 0x0000, 0x00ab, 0x00ac, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00a9, 0x0000, 0x0000, 0x00bb }, "875", "0x0464036b", "3270cg-7,iso10646-1,iso8859-7" }, { "cp880", { 0x0000, 0x0452, 0x0453, 0x0451, 0x0000, 0x0455, 0x0456, 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x0000, 0x045f, 0x042a, 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0403, 0x0401, 0x0000, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x040a, 0x040b, 0x040c, 0x0000, 0x0000, 0x040f, 0x044e, 0x0430, 0x0431, 0x0000, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0000, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0000, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x0000, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x005c, 0x00a4, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427 }, "880", "0x03bf0370", "iso10646-1,koi8-r" }, #if defined(X3270_DBCS) /*[*/ { "cp930", { /* 0x40 */ 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67, /* 0x48 */ 0xff68, 0xff69, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 0x50 */ 0x0026, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, 0x0000, /* 0x58 */ 0xff70, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, /* 0x60 */ 0x002d, 0x002f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, /* 0x68 */ 0x0067, 0x0068, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 0x70 */ 0x005b, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, /* 0x78 */ 0x0070, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 0x80 */ 0x005d, 0xff67, 0xff68, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 0x88 */ 0xff78, 0xff79, 0xff7a, 0x0071, 0xff7b, 0xff7c, 0xff7d, 0xff7e, /* 0x90 */ 0xff7f, 0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, /* 0x98 */ 0xff87, 0xff88, 0xff89, 0x0072, 0x0000, 0xff8a, 0xff8b, 0xff8c, /* 0xa0 */ 0x007e, 0x00af, 0xff8d, 0xff8e, 0xff8f, 0xff90, 0xff91, 0xff92, /* 0xa8 */ 0xff93, 0xff94, 0xff95, 0x0073, 0xff96, 0xff97, 0xff98, 0xff99, /* 0xb0 */ 0x005e, 0x00a2, 0x005c, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* 0xb8 */ 0x0079, 0x007a, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f, /* 0xc0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0xc8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xd0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* 0xd8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xe0 */ 0x0024, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* 0xe8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xf0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0xf8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } , "930", "0x04940122" /* 1172, 0290 */, "iso10646-1,jisx0201.1976-0" }, { "cp935", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "935", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp937", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "937", "0x04970025" /* 1175, 037 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp939", { /* 40 */ 0x0000, 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, /* 48 */ 0xff67, 0xff68, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 50 */ 0x0026, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, /* 58 */ 0xff70, 0xff71, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, /* 60 */ 0x002d, 0x002f, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 68 */ 0xff78, 0xff79, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 70 */ 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, 0xff80, 0xff81, /* 78 */ 0xff82, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 80 */ 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 88 */ 0x0068, 0x0069, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, 0xff88, /* 90 */ 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, /* 98 */ 0x0071, 0x0072, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, /* a0 */ 0x00af, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* a8 */ 0x0079, 0x007a, 0xff8f, 0xff90, 0xff91, 0x005b, 0xff92, 0xff93, /* b0 */ 0x005e, 0x00a3, 0x00a5, 0xff94, 0xff95, 0xff96, 0xff97, 0xff98, /* b8 */ 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0x005d, 0xff9e, 0xff9f, /* c0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* c8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* d8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x005c, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* e8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* f8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "939", "0x04940403" /* 1172, 1027 */, "iso10646-1,jisx0201.1976-0" }, #endif /*]*/ { "cp1026", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x007d, 0x0060, 0x00a6, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x02db, 0x00c6, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x005d, 0x0024, 0x0040, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x2014, 0x00a8, 0x00b4, 0x00d7, 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0x00ff, 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da }, "1026", "0x04800402", "iso10646-1,iso8859-9" }, { "cp1047", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x00ac, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1047", "1047", "iso10646-1,iso8859-1" }, { "cp1140", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1140", "0x02b70474" /* 695, 1140 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1141", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "1141", "0x02b70475" /* 695, 1141 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1142", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1142", "0x02b70476" /* 695, 1142 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1143", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1143", "0x02b70477" /* 695, 1143 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1144", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1144", "0x02b70478" /* 695, 1144 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1145", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1145", "0x02b70478" /* 695, 1145 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1146", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1146", "0x02b7047a" /* 695, 1146 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1147", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1147", "0x02b7047a" /* 695, 1147 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1148", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1148", "0x02b7047c" /* 695, 1148 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1149", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00de, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x20ac, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00fe, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1149", "0x02b7047d" /* 695, 1149 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1160", { 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, 0x005b, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0e48, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x005d, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x005e, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0e3f, 0x0e4e, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0e4f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, 0x0e5a, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e5b, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, 0x0e58, 0x0e59, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0e49, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0e3a, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x005c, 0x0e4a, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4b, 0x20ac }, "1160", "0x05730488" /* 1395, 1160 */, "iso10646-1,iso8859-11" }, #if defined(X3270_DBCS) /*[*/ { "cp1388", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "1388", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, #endif /*]*/ { "apl", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,iso10646-1" }, { "bracket", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37+", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { NULL } }; /* Code page aliases. */ typedef struct { char *alias; char *canon; } cpalias_t; cpalias_t cpaliases[] = { { "belgian", "cp500" }, { "belgian-euro", "cp1148" }, { "brazilian", "cp275" }, #if defined(X3270_DBCS) /*[*/ { "chinese-gb18030","cp1388" }, { "cp1027", "cp939" }, /* historical error */ { "cp290", "cp930" }, /* historical error */ #endif /*]*/ { "cp37", "cp037" }, #if defined(X3270_DBCS) /*[*/ { "cp836", "cp935" }, /* historical error */ #endif /*]*/ { "finnish", "cp278" }, { "finnish-euro", "cp1143" }, { "french", "cp297" }, { "french-euro", "cp1147" }, { "german", "cp273" }, { "german-euro", "cp1141" }, { "greek", "cp875" }, { "hebrew", "cp424" }, { "icelandic", "cp871" }, { "icelandic-euro", "cp1149" }, { "italian", "cp280" }, { "italian-euro", "cp1144" }, #if defined(X3270_DBCS) /*[*/ { "japanese-1027", "cp939" }, /* historical error */ { "japanese-290", "cp930" }, /* historical error */ { "japanese-kana", "cp930" }, { "japanese-latin", "cp939" }, #endif /*]*/ { "norwegian", "cp277" }, { "norwegian-euro", "cp1142" }, { "oldibm", "bracket" }, { "bracket437", "bracket" }, { "polish", "cp870" }, { "russian", "cp880" }, #if defined(X3270_DBCS) /*[*/ { "simplified-chinese","cp935" }, #endif /*]*/ { "slovenian", "cp870" }, { "spanish", "cp284" }, { "spanish-euro", "cp1145" }, { "thai", "cp1160" }, #if defined(X3270_DBCS) /*[*/ { "traditional-chinese", "cp937" }, #endif /*]*/ { "turkish", "cp1026" }, { "uk", "cp285" }, { "uk-euro", "cp1146" }, { DEFAULT_CSNAME, "cp037" }, { "us-euro", "cp1140" }, { "us-intl", "cp037" }, { NULL, NULL } }; static uni_t *cur_uni = NULL; void charset_list(void) { int i; int j; char *sep = ""; printf("SBCS host code pages (with aliases):\n"); for (i = 0; uni[i].name != NULL; i++) { Boolean any = False; char *asep = " ("; printf("%s%s", sep, uni[i].name); for (j = 0; cpaliases[j].alias != NULL; j++) { if (!strcmp(cpaliases[j].canon, uni[i].name)) { printf("%s%s", asep, cpaliases[j].alias); asep = ", "; any = True; } } if (any) printf(")"); sep = ", "; } printf("\n"); #if defined(X3270_DBCS) /*[*/ charset_list_dbcs(); #endif /*]*/ } /* * Translate a single EBCDIC character in an arbitrary character set to * Unicode. Note that CS_DBCS is never used -- use CS_BASE and pass an * EBCDIC character > 0xff. * * Returns 0 for no translation. */ ucs4_t ebcdic_to_unicode(ebc_t c, unsigned char cs, unsigned flags) { int iuc; ucs4_t uc; #if 0 /* I'm not sure why this was put in, but it breaks display of DUP and FM. Hopefully I'll figure out why it was put in in the first place and I can put it back under the right conditions. */ /* Control characters become blanks. */ if (c <= 0x41 || c == 0xff) uc = 0; #endif /* * We do not pay attention to BLANK_UNDEF -- we always return 0 * for undefined characters. */ flags &= ~EUO_BLANK_UNDEF; /* Dispatch on the character set. */ if ((cs & CS_GE) || ((cs & CS_MASK) == CS_APL)) { iuc = apl_to_unicode(c, flags); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs == CS_LINEDRAW) { iuc = linedraw_to_unicode(c /* XXX: flags */); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs != CS_BASE) uc = 0; else uc = ebcdic_base_to_unicode(c, flags); return uc; } /* * Translate a single EBCDIC character in the base or DBCS character sets to * Unicode. * * EBCDIC 'FM' and 'DUP' characters are treated specially. If EUO_UPRIV * is set, they are returned as U+f8fe and U+feff (private-use) respectively * so they can be displayed with overscores in the special 3270 font; * otherwise they are returned as '*' and ';'. * EBCDIC 'EO' and 'SUB' are special-cased to U+25cf and U+25a0, respectively. * * If EUO_BLANK_UNDEF is set, other undisplayable characters are returned as * spaces; otherwise they are returned as 0. */ ucs4_t ebcdic_base_to_unicode(ebc_t c, unsigned flags) { #if defined(X3270_DBCS) /*[*/ if (c & 0xff00) return ebcdic_dbcs_to_unicode(c, flags); #endif /*]*/ if (c == 0x40) return 0x0020; if (c >= UT_OFFSET && c < 0xff) { ebc_t uc = cur_uni->code[c - UT_OFFSET]; return uc? uc: ((flags & EUO_BLANK_UNDEF)? ' ': 0); } else switch (c) { case EBC_fm: return (flags & EUO_UPRIV)? UPRIV_fm: ';'; case EBC_dup: return (flags & EUO_UPRIV)? UPRIV_dup: '*'; case EBC_eo: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_eo: 0x25cf; /* solid circle */ case EBC_sub: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_sub: 0x25a0; /* solid block */ default: if (flags & EUO_BLANK_UNDEF) return ' '; else return 0; } } /* * Map a UCS-4 character to an EBCDIC character. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic(ucs4_t u) { int i; #if defined(X3270_DBCS) /*[*/ ebc_t d; #endif /*]*/ if (!u) return 0; if (u == 0x0020) return 0x40; for (i = 0; i < UT_SIZE; i++) { if (cur_uni->code[i] == u) { return UT_OFFSET + i; } } #if defined(X3270_DBCS) /*[*/ /* See if it's DBCS. */ d = unicode_to_ebcdic_dbcs(u); if (d) return d; #endif /*]*/ return 0; } /* * Map a UCS-4 character to an EBCDIC character, possibly including APL (GE) * characters. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic_ge(ucs4_t u, Boolean *ge) { ebc_t e; *ge = False; e = unicode_to_ebcdic(u); if (e) return e; /* Handle GEs. Yes, this is slow, but I'm lazy. */ for (e = 0x70; e <= 0xfe; e++) { if ((ucs4_t)apl_to_unicode(e, EUO_NONE) == u) { *ge = True; return e; } } return 0; } /* * Set the SBCS EBCDIC-to-Unicode translation table. * Returns 0 for success, -1 for failure. */ int set_uni(const char *csname, const char **host_codepage, const char **cgcsgid, const char **display_charsets) { int i; const char *realname; int rc = -1; Boolean cannot_fail = False; /* * If the csname is NULL, this is a fallback to the default * and the iconv lookup cannot fail. */ if (csname == NULL) { csname = DEFAULT_CSNAME; cannot_fail = True; } realname = csname; /* Search for an alias. */ for (i = 0; cpaliases[i].alias != NULL; i++) { if (!strcasecmp(csname, cpaliases[i].alias)) { realname = cpaliases[i].canon; break; } } /* Search for a match. */ for (i = 0; uni[i].name != NULL; i++) { if (!strcasecmp(realname, uni[i].name)) { cur_uni = &uni[i]; *host_codepage = uni[i].host_codepage; *cgcsgid = uni[i].cgcsgid; *display_charsets = uni[i].display_charset; rc = 0; break; } } if (cannot_fail && rc == -1) Error("Cannot find default charset definition"); #if defined(USE_ICONV) /*[*/ /* * wchar_t's are not Unicode, so getting to/from Unicode is only half * the battle. We need to use iconv() to get between Unicode to the * local multi-byte representation. We'll explicitly use UTF-8, which * appears to be the most broadly-supported translation. */ if (rc == 0) { if (!is_utf8) { /* * If iconv doesn't support the locale's codeset, then * this box is hosed. */ i_u2mb = iconv_open(locale_codeset, "UTF-8"); if (i_u2mb == (iconv_t)(-1)) rc = -1; else { i_mb2u = iconv_open("UTF-8", locale_codeset); if (i_mb2u == (iconv_t)(-1)) { iconv_close(i_u2mb); rc = -1; } } } if (rc == -1 && cannot_fail) { /* Try again with plain-old ASCII. */ #if defined(PR3287) /*[*/ Warning("Cannot find iconv translation from locale " "codeset to UTF-8, using ASCII"); #else /*][*/ xs_warning("Cannot find iconv translation from locale " "codeset '%s' to UTF-8, using ASCII", locale_codeset); #endif /*]*/ i_u2mb = iconv_open("ASCII", "UTF-8"); if (i_u2mb == (iconv_t)-1) Error("No iconv UTF-8 to ASCII translation"); i_mb2u = iconv_open("UTF-8", "ASCII"); if (i_mb2u == (iconv_t)-1) Error("No iconv ASCII to UTF-8 translation"); rc = 0; } } #endif /*]*/ return rc; } /* * Translate an x3270 font line-drawing character (the first two rows of a * standard X11 fixed-width font) to Unicode. * * Returns -1 if there is no translation. */ int linedraw_to_unicode(ebc_t c) { static ebc_t ld2uc[32] = { /* 00 */ 0x2588, 0x25c6, 0x2592, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, /* 08 */ 0x00b1, 0x0000, 0x0000, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, /* 10 */ 0x002d, 0x002d, 0x2500, 0x002d, 0x005f, 0x251c, 0x2524, 0x2534, /* 18 */ 0x252c, 0x2502, 0x2264, 0x2265, 0x03c0, 0x2260, 0x00a3, 0x2022 }; if (c < 32 && ld2uc[c] != 0x0000) return ld2uc[c]; else return -1; } int apl_to_unicode(ebc_t c, unsigned flags) { static ebc_t apl2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x25c6, 0x22c0, 0x00a8, 0x223b, 0x2378, 0x2377, 0x22a2, 0x22a3, /* 78 */ 0x2228, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x23b8, 0x23b9, 0x2502, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x2191, 0x2193, 0x2264, 0x2308, 0x230a, 0x2192, /* 90 */ 0x2395, 0x258c, 0x2590, 0x2580, 0x2584, 0x25a0, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x2283, 0x2282, 0x00a4, 0x25cb, 0x00b1, 0x2190, /* a0 */ 0x00af, 0x00b0, 0x2500, 0x2022, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x22c2, 0x22c3, 0x22a5, 0x005b, 0x2265, 0x2218, /* b0 */ 0x03b1, 0x03b5, 0x03b9, 0x03c1, 0x03c9, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x2207, 0x2206, 0x22a4, 0x005d, 0x2260, 0x2502, /* c0 */ 0x007b, 0x207c, 0x002b, 0x220e, 0x2514, 0x250c, 0x251c, 0x2534, /* c8 */ 0x00a7, 0x0000, 0x2372, 0x2371, 0x2337, 0x233d, 0x2342, 0x2349, /* d0 */ 0x007d, 0x207e, 0x002d, 0x253c, 0x2518, 0x2510, 0x2524, 0x252c, /* d8 */ 0x00b6, 0x0000, 0x2336, 0x0021, 0x2352, 0x234b, 0x235e, 0x235d, /* e0 */ 0x2261, 0x2081, 0x0282, 0x0283, 0x2364, 0x2365, 0x236a, 0x20ac, /* e8 */ 0x0000, 0x0000, 0x233f, 0x2240, 0x2235, 0x2296, 0x2339, 0x2355, /* f0 */ 0x2070, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x2075, 0x2076, 0x2077, /* f8 */ 0x2078, 0x2079, 0x0000, 0x236b, 0x2359, 0x235f, 0x234e, 0x0000 }; #if defined(C3270) /*[*/ static ebc_t apla2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x0000, 0x0000, 0x00a8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x0000, 0x0000, 0x007c, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 90 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x00a4, 0x0000, 0x00b1, 0x0000, /* a0 */ 0x00af, 0x00b0, 0x002d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x0000, 0x0000, /* b0 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x0000, 0x0000, 0x0000, 0x005d, 0x0000, 0x007c, /* c0 */ 0x007b, 0x0000, 0x002b, 0x0000, 0x002b, 0x002b, 0x002b, 0x002b, /* c8 */ 0x00a7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x0000, 0x002d, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, /* d8 */ 0x00b6, 0x0000, 0x0000, 0x0021, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x0000, 0x0000, 0x0282, 0x0283, 0x0000, 0x0000, 0x0000, 0x0000, /* e8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0000, 0x00b9, 0x00b2, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000, /* f8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; #endif /*]*/ #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) { if (c < 256 && apla2uc[c] != 0x0000) { #if defined(_WIN32) /*[*/ /* Windows DBCS fonts make U+0080..U+00ff wide, too. */ if (apla2uc[c] > 0x7f) return -1; #endif /*]*/ return apla2uc[c]; } else return -1; } #endif /*]*/ if (c < 256 && apl2uc[c] != 0x0000) return apl2uc[c]; else return -1; } /* * Translate an EBCDIC character to the current locale's multi-byte * representation. * * Returns the number of bytes in the multi-byte representation, including * the terminating NULL. mb[] should be big enough to include the NULL * in the result. * * Also returns in 'ucp' the UCS-4 Unicode value of the EBCDIC character. * * Note that 'ebc' is an ebc_t (uint16_t), not an unsigned char. This is * so that DBCS values can be passed in as 16 bits (with the first byte * in the high-order bits). There is no ambiguity because all valid EBCDIC * DBCS characters have a nonzero first byte. * * Returns 0 if EUO_BLANK_UNDEF is clear and there is no printable EBCDIC * translation for 'ebc'. * * Returns '?' in mb[] if there is no local multi-byte representation of * the EBCDIC character. */ int ebcdic_to_multibyte_x(ebc_t ebc, unsigned char cs, char mb[], int mb_len, unsigned flags, ucs4_t *ucp) { ucs4_t uc; #if defined(_WIN32) /*[*/ int nc; BOOL udc; wchar_t wuc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; wchar_t wuc; #else /*][*/ char u8b[7]; size_t nu8; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; #endif /*]*/ /* Translate from EBCDIC to Unicode. */ uc = ebcdic_to_unicode(ebc, cs, flags); if (ucp != NULL) *ucp = uc; if (uc == 0) { if (flags & EUO_BLANK_UNDEF) { mb[0] = ' '; mb[1] = '\0'; return 2; } else { return 0; } } /* Translate from Unicode to local multibyte. */ #if defined(_WIN32) /*[*/ /* * wchar_t's are Unicode. */ wuc = uc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc != 0) { mb[nc++] = '\0'; return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #elif defined(UNICODE_WCHAR) /*][*/ /* * wchar_t's are Unicode. * If 'is_utf8' is set, use unicode_to_utf8(). This allows us to set * 'is_utf8' directly, ignoring the locale, for Tcl. * Otherwise, use wctomb(). */ if (is_utf8) { nc = unicode_to_utf8(uc, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } wuc = uc; nc = wctomb(mb, uc); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ /* * Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(uc, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc < 0 || inbytesleft == nu8) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc < 0) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } /* Commonest version of ebcdic_to_multibyte_x: * cs is CS_BASE * EUO_BLANK_UNDEF is set * ucp is ignored */ int ebcdic_to_multibyte(ebc_t ebc, char mb[], int mb_len) { return ebcdic_to_multibyte_x(ebc, CS_BASE, mb, mb_len, EUO_BLANK_UNDEF, NULL); } /* * Convert an EBCDIC string to a multibyte string. * Makes lots of assumptions: standard character set, EUO_BLANK_UNDEF. * Returns the length of the multibyte string. */ int ebcdic_to_multibyte_string(unsigned char *ebc, size_t ebc_len, char mb[], size_t mb_len) { int nmb = 0; while (ebc_len && mb_len) { int xlen; xlen = ebcdic_to_multibyte(*ebc, mb, mb_len); if (xlen) { mb += xlen - 1; mb_len -= (xlen - 1); nmb += xlen - 1; } ebc++; ebc_len--; } return nmb; } /* * Return the maximum buffer length needed to translate 'len' EBCDIC characters * in the current locale. */ int mb_max_len(int len) { #if defined(_WIN32) /*[*/ /* * On Windows, it's 1:1 (we don't do DBCS, and we don't support locales * like UTF-8). */ return len + 1; #elif defined(UNICODE_WCHAR) /*][*/ /* Allocate enough space for shift-state transitions. */ return (MB_CUR_MAX * (len * 2)) + 1; #else /*]*/ if (is_utf8) return (len * 6) + 1; else /* * We don't actually know. Guess that MB_CUR_MAX is 16, and compute * as for UNICODE_WCHAR. */ return (16 * (len * 2)) + 1; #endif /*]*/ } /* * Translate a multi-byte character in the current locale to UCS-4. * * Returns a UCS-4 character or 0, indicating an error in translation. * Also returns the number of characters consumed. */ ucs4_t multibyte_to_unicode(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { size_t nw; ucs4_t ucs4; #if defined(_WIN32) /*[*/ wchar_t wc[3]; int i; /* Use MultiByteToWideChar() to get from the ANSI codepage to UTF-16. */ for (i = 1; i <= mb_len; i++) { nw = MultiByteToWideChar(LOCAL_CODEPAGE, MB_ERR_INVALID_CHARS, mb, i, wc, 3); if (nw != 0) break; } if (i > mb_len) { *errorp = ME_INVALID; return 0; } *consumedp = i; ucs4 = wc[0]; #elif defined(UNICODE_WCHAR) /*][*/ wchar_t wc[3]; /* wchar_t's are Unicode. */ if (is_utf8) { int nc; /* * Use utf8_to_unicode() instead of mbtowc(), so we can set is_utf8 * directly and ignore the locale for Tcl. */ nc = utf8_to_unicode(mb, mb_len, &ucs4); if (nc > 0) { *errorp = ME_NONE; *consumedp = nc; return ucs4; } else if (nc == 0) { *errorp = ME_SHORT; return 0; } else { *errorp = ME_INVALID; return 0; } } /* mbtowc() will translate to Unicode. */ nw = mbtowc(wc, mb, mb_len); if (nw == (size_t)-1) { if (errno == EILSEQ) *errorp = ME_INVALID; else *errorp = ME_SHORT; nw = mbtowc(NULL, NULL, 0); return 0; } /* * Reset the shift state. * XXX: Doing this will ruin the shift state if this function is called * repeatedly to process a string. There should probably be a parameter * passed in to control whether or not to reset the shift state, or * perhaps there should be a function to translate a string. */ *consumedp = nw; nw = mbtowc(NULL, NULL, 0); ucs4 = wc[0]; #else /*][*/ /* wchar_t's have unknown encoding. */ if (!is_utf8) { ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; char utf8buf[16]; size_t ibl; /* Translate from local MB to UTF-8 using iconv(). */ for (ibl = 1; ibl <= mb_len; ibl++) { inbuf = (ici_t)mb; outbuf = utf8buf; inbytesleft = ibl; outbytesleft = sizeof(utf8buf); nw = iconv(i_mb2u, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nw < 0) { if (errno == EILSEQ) { *errorp = ME_INVALID; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } else { if (ibl == mb_len) { *errorp = ME_SHORT; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } } } else break; } *consumedp = ibl - inbytesleft; /* Translate from UTF-8 to UCS-4. */ (void) utf8_to_unicode(utf8buf, sizeof(utf8buf) - outbytesleft, &ucs4); } else { /* Translate from UTF-8 to UCS-4. */ nw = utf8_to_unicode(mb, mb_len, &ucs4); if (nw < 0) { *errorp = ME_INVALID; return 0; } if (nw == 0) { *errorp = ME_SHORT; return 0; } *consumedp = nw; } #endif /*]*/ /* Translate from UCS4 to EBCDIC. */ return ucs4; } /* * Convert a multi-byte string to a UCS-4 string. * Does not NULL-terminate the result. * Returns the number of UCS-4 characters stored. */ int multibyte_to_unicode_string(char *mb, size_t mb_len, ucs4_t *ucs4, size_t u_len) { int consumed; enum me_fail error; int nr = 0; error = ME_NONE; while (u_len && mb_len && (*ucs4++ = multibyte_to_unicode(mb, mb_len, &consumed, &error)) != 0) { u_len--; mb += consumed; mb_len -= consumed; nr++; } if (error != ME_NONE) return -1; else return nr; } /* * Translate a multi-byte character in the current locale to an EBCDIC * character. * * Returns an 8-bit (SBCS) or 16-bit (DBCS) EBCDIC character, or 0, indicating * an error in translation. Also returns the number of characters consumed. */ ebc_t multibyte_to_ebcdic(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { ucs4_t ucs4; ucs4 = multibyte_to_unicode(mb, mb_len, consumedp, errorp); if (ucs4 == 0) return 0; return unicode_to_ebcdic(ucs4); } /* * Convert a local multi-byte string to an EBCDIC string. * Returns the length of the resulting EBCDIC string, or -1 if there is a * conversion error. */ int multibyte_to_ebcdic_string(char *mb, size_t mb_len, unsigned char *ebc, size_t ebc_len, enum me_fail *errorp) { int ne = 0; Boolean in_dbcs = False; while (mb_len > 0 && ebc_len > 0) { ebc_t e; int consumed; e = multibyte_to_ebcdic(mb, mb_len, &consumed, errorp); if (e == 0) return -1; if (e & 0xff00) { /* DBCS. */ if (!in_dbcs) { /* Make sure there's room for SO, b1, b2, SI. */ if (ebc_len < 4) return ne; *ebc++ = EBC_so; ebc_len++; ne++; in_dbcs = True; } /* Make sure there's room for b1, b2, SI. */ if (ebc_len < 3) { *ebc++ = EBC_si; ne++; return ne; } *ebc++ = (e >> 8) & 0xff; *ebc++ = e & 0xff; ebc_len -= 2; ne += 2; } else { /* SBCS. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; if (!--ebc_len) return ne; in_dbcs = False; } *ebc++ = e & 0xff; ebc_len--; ne++; } mb += consumed; mb_len -= consumed; } /* * Terminate the DBCS string, if we end inside it. * We're guaranteed to have space for the SI; we checked before adding * the last DBCS character. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; } return ne; } /* * Translate a UCS-4 character to a local multi-byte string. */ int unicode_to_multibyte(ucs4_t ucs4, char *mb, size_t mb_len) { #if defined(_WIN32) /*[*/ wchar_t wuc = ucs4; BOOL udc; int nc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc > 0) mb[nc++] = '\0'; return nc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; if (is_utf8) { nc = unicode_to_utf8(ucs4, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } nc = wctomb(mb, ucs4); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ int nu8; char u8b[16]; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; /* Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(ucs4, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } ibm-3270-3.3.10ga4/tcl3270/localdefs.h0000644000175000017500000000520311254565711016370 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * localdefs.h * Local definitions for tcl3270. * * This file contains definitions for environment-specific * facilities, such as memory allocation, I/O registration, * and timers. */ /* Identify ourselves. */ #define TCL3270 1 /* These first definitions were cribbed from X11 -- but no X code is used. */ #define False 0 #define True 1 typedef void *XtPointer; typedef void *Widget; typedef void *XEvent; typedef char Boolean; typedef char *String; typedef unsigned int Cardinal; typedef unsigned long KeySym; #define Bool int typedef void (*XtActionProc)( Widget /* widget */, XEvent* /* event */, String* /* params */, Cardinal* /* num_params */ ); typedef struct _XtActionsRec{ String string; XtActionProc proc; } XtActionsRec; #define XtNumber(n) (sizeof(n)/sizeof((n)[0])) #define NoSymbol 0L /* These are local functions with similar semantics to X functions. */ extern void *Malloc(size_t); extern void Free(void *); extern void *Calloc(size_t, size_t); extern void *Realloc(void *, size_t); extern char *NewString(const char *); extern void Warning(const char *s); extern void Error(const char *s); ibm-3270-3.3.10ga4/tcl3270/hostc.h0000644000175000017500000000472011254565704015561 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * hostc.h * Global declarations for host.c. */ struct host { char *name; char **parents; char *hostname; enum { PRIMARY, ALIAS, RECENT } entry_type; char *loginstring; time_t connect_time; struct host *prev, *next; }; extern struct host *hosts; extern void Connect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Disconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Reconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); /* Host connect/disconnect and state change. */ extern void hostfile_init(void); extern void host_cancel_reconnect(void); extern int host_connect(const char *n); extern void host_connected(void); extern void host_disconnect(Boolean disable); extern void host_in3270(enum cstate); extern void host_newfd(int s); extern void register_schange(int tx, void (*func)(Boolean)); extern void st_changed(int tx, Boolean mode); ibm-3270-3.3.10ga4/tcl3270/aplc.h0000644000175000017500000000316211254565704015357 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * aplc.h * Global declarations for apl.c. */ extern KeySym APLStringToKeysym(char *s, int *is_gep); ibm-3270-3.3.10ga4/tcl3270/resources.h0000644000175000017500000003537711254565704016467 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resources.h * x3270/c3270/s3270/tcl3270 resource and option names. */ /* Resources. */ #define ResAcs "acs" #define ResActiveIcon "activeIcon" #define ResAdVersion "adVersion" #define ResAidWait "aidWait" #define ResAllBold "allBold" #define ResAllowResize "allowResize" #define ResAltCursor "altCursor" #define ResAltScreen "altScreen" #define ResAplMode "aplMode" #define ResAsciiBoxDraw "asciiBoxDraw" #define ResAssocCommand "printer.assocCommandLine" #define ResAutoShortcut "autoShortcut" #define ResBaselevelTranslations "baselevelTranslations" #define ResBellVolume "bellVolume" #define ResBlankFill "blankFill" #define ResBoldColor "boldColor" #define ResBsdTm "bsdTm" #define ResCbreak "cbreak" #define ResCertFile "certFile" #define ResCharClass "charClass" #define ResCharset "charset" #define ResCharsetList "charsetList" #define ResColor8 "color8" #define ResColorBackground "colorBackground" #define ResColorScheme "colorScheme" #define ResCommandTimeout "commandTimeout" #define ResComposeMap "composeMap" #define ResConfDir "confDir" #define ResConnectFileName "connectFileName" #define ResConsoleColorForHostColor "consoleColorForHostColor" #define ResCrosshair "crosshair" #define ResCursesColorFor "cursesColorFor" #define ResCursesColorForDefault ResCursesColorFor "Default" #define ResCursesColorForHostColor ResCursesColorFor "HostColor" #define ResCursesColorForIntensified ResCursesColorFor "Intensified" #define ResCursesColorForProtected ResCursesColorFor "Protected" #define ResCursesColorForProtectedIntensified ResCursesColorFor "ProtectedIntensified" #define ResCursesKeypad "cursesKeypad" #define ResCursorBlink "cursorBlink" #define ResCursorColor "cursorColor" #define ResCursorPos "cursorPos" #define ResDebugTracing "debugTracing" #define ResDefScreen "defScreen" #define ResDftBufferSize "dftBufferSize" #define ResDisconnectClear "disconnectClear" #define ResDoConfirms "doConfirms" #define ResDbcsCgcsgid "dbcsCgcsgid" #define ResDsTrace "dsTrace" #define ResEmulatorFont "emulatorFont" #define ResEof "eof" #define ResErase "erase" #define ResEventTrace "eventTrace" #define ResExtended "extended" #define ResFixedSize "fixedSize" #define ResHighlightBold "highlightBold" #define ResHostColorFor "hostColorFor" #define ResHostColorForDefault ResHostColorFor "Default" #define ResHostColorForIntensified ResHostColorFor "Intensified" #define ResHostColorForProtected ResHostColorFor "Protected" #define ResHostColorForProtectedIntensified ResHostColorFor "ProtectedIntensified" #define ResHostname "hostname" #define ResHostsFile "hostsFile" #define ResIconFont "iconFont" #define ResIconLabelFont "iconLabelFont" #define ResIcrnl "icrnl" #define ResIdleCommand "idleCommand" #define ResIdleCommandEnabled "idleCommandEnabled" #define ResIdleTimeout "idleTimeout" #define ResInlcr "inlcr" #define ResInputColor "inputColor" #define ResInputMethod "inputMethod" #define ResIntr "intr" #define ResInvertKeypadShift "invertKeypadShift" #define ResKeymap "keymap" #define ResKeypad "keypad" #define ResKeypadBackground "keypadBackground" #define ResKeypadOn "keypadOn" #define ResKill "kill" #define ResLabelIcon "labelIcon" #define ResLineWrap "lineWrap" #define ResLnext "lnext" #define ResLocalCp "localCp" #define ResLoginMacro "loginMacro" #define ResLockedCursor "lockedCursor" #define ResLuCommandLine "printer.luCommandLine" #define ResM3279 "m3279" #define ResMacros "macros" #define ResMarginedPaste "marginedPaste" #define ResMenuBar "menuBar" #define ResMetaEscape "metaEscape" #define ResModel "model" #define ResModifiedSel "modifiedSel" #define ResModifiedSelColor "modifiedSelColor" #define ResMono "mono" #define ResMonoCase "monoCase" #define ResMouse "mouse" #define ResNoOther "noOther" #define ResNoPrompt "noPrompt" #define ResNormalColor "normalColor" #define ResNormalCursor "normalCursor" #define ResNumericLock "numericLock" #define ResOerrLock "oerrLock" #define ResOnce "once" #define ResOnlcr "onlcr" #define ResOversize "oversize" #define ResPluginCommand "pluginCommand" #define ResPort "port" #define ResPreeditType "preeditType" #define ResPrinterCodepage "printer.codepage" #define ResPrinterCommand "printer.command" #define ResPrinterLu "printerLu" #define ResPrinterName "printer.name" #define ResProxy "proxy" #define ResQuit "quit" #define ResReconnect "reconnect" #define ResRectangleSelect "rectangleSelect" #define ResReverseVideo "reverseVideo" #define ResRprnt "rprnt" #define ResSaveLines "saveLines" #define ResSchemeList "schemeList" #define ResScreenTrace "screenTrace" #define ResScreenTraceFile "screenTraceFile" #define ResScripted "scripted" #define ResScriptPort "scriptPort" #define ResScrollBar "scrollBar" #define ResSecure "secure" #define ResSelectBackground "selectBackground" #define ResSbcsCgcsgid "sbcsCgcsgid" #define ResShowTiming "showTiming" #define ResSocket "socket" #define ResSuppressActions "suppressActions" #define ResSuppressHost "suppressHost" #define ResSuppressFontMenu "suppressFontMenu" #define ResSuppress "suppress" #define ResTermName "termName" #define ResTitle "title" #define ResTraceDir "traceDir" #define ResTraceFile "traceFile" #define ResTraceFileSize "traceFileSize" #define ResTraceMonitor "traceMonitor" #define ResTypeahead "typeahead" #define ResUnderscore "underscore" #define ResUnlockDelay "unlockDelay" #define ResUnlockDelayMs "unlockDelayMs" #define ResUseCursorColor "useCursorColor" #define ResV "v" #define ResVisibleControl "visibleControl" #define ResVisualBell "visualBell" #define ResVisualSelect "visualSelect" #define ResVisualSelectColor "visualSelectColor" #define ResWaitCursor "waitCursor" #define ResWerase "werase" /* Dotted resource names. */ #define DotActiveIcon "." ResActiveIcon #define DotAplMode "." ResAplMode #define DotCertFile "." ResCertFile #define DotCbreak "." ResCbreak #define DotCharClass "." ResCharClass #define DotCharset "." ResCharset #define DotColorScheme "." ResColorScheme #define DotDsTrace "." ResDsTrace #define DotEmulatorFont "." ResEmulatorFont #define DotExtended "." ResExtended #define DotInputMethod "." ResInputMethod #define DotKeymap "." ResKeymap #define DotKeypadOn "." ResKeypadOn #define DotM3279 "." ResM3279 #define DotModel "." ResModel #define DotMono "." ResMono #define DotOnce "." ResOnce #define DotOversize "." ResOversize #define DotPort "." ResPort #define DotPreeditType "." ResPreeditType #define DotPrinterLu "." ResPrinterLu #define DotProxy "." ResProxy #define DotReconnect "." ResReconnect #define DotSaveLines "." ResSaveLines #define DotScripted "." ResScripted #define DotScriptPort "." ResScriptPort #define DotScrollBar "." ResScrollBar #define DotSocket "." ResSocket #define DotTermName "." ResTermName #define DotTitle "." ResTitle #define DotTraceFile "." ResTraceFile #define DotTraceFileSize "." ResTraceFileSize #define DotV "." ResV /* Resource classes. */ #define ClsActiveIcon "ActiveIcon" #define ClsAdVersion "AdVersion" #define ClsAidWait "AidWait" #define ClsAllBold "AllBold" #define ClsAllowResize "AllowResize" #define ClsAltCursor "AltCursor" #define ClsAplMode "AplMode" #define ClsBaselevelTranslations "BaselevelTranslations" #define ClsBellVolume "BellVolume" #define ClsBlankFill "BlankFill" #define ClsBoldColor "BoldColor" #define ClsBsdTm "BsdTm" #define ClsCbreak "Cbreak" #define ClsCertFile "CertFile" #define ClsCharClass "CharClass" #define ClsCharset "Charset" #define ClsColor8 "Color8" #define ClsColorBackground "ColorBackground" #define ClsColorScheme "ColorScheme" #define ClsComposeMap "ComposeMap" #define ClsConfDir "ConfDir" #define ClsConnectFileName "ConnectFileName" #define ClsCrosshair "Crosshair" #define ClsCursorBlink "CursorBlink" #define ClsCursorColor "CursorColor" #define ClsCursorPos "CursorPos" #define ClsDbcsCgcsgid "DbcsCgcsgid" #define ClsDebugTracing "DebugTracing" #define ClsDftBufferSize "DftBufferSize" #define ClsDisconnectClear "DisconnectClear" #define ClsDoConfirms "DoConfirms" #define ClsDsTrace "DsTrace" #define ClsEmulatorFont "EmulatorFont" #define ClsEof "Eof" #define ClsErase "Erase" #define ClsEventTrace "EventTrace" #define ClsExtended "Extended" #define ClsFixedSize "FixedSize" #define ClsFtCommand "FtCommand" #define ClsHighlightBold "HighlightBold" #define ClsHostname "Hostname" #define ClsHostsFile "HostsFile" #define ClsIconFont "IconFont" #define ClsIconLabelFont "IconLabelFont" #define ClsIcrnl "Icrnl" #define ClsIdleCommand "IdleCommand" #define ClsIdleCommandEnabled "IdleCommandEnabled" #define ClsIdleTimeout "IdleTimeout" #define ClsInlcr "Inlcr" #define ClsInputColor "InputColor" #define ClsInputMethod "InputMethod" #define ClsIntr "Intr" #define ClsInvertKeypadShift "InvertKeypadShift" #define ClsKeymap "Keymap" #define ClsKeypad "Keypad" #define ClsKeypadBackground "KeypadBackground" #define ClsKeypadOn "KeypadOn" #define ClsKill "Kill" #define ClsLabelIcon "LabelIcon" #define ClsLineWrap "LineWrap" #define ClsLnext "Lnext" #define ClsLockedCursor "LockedCursor" #define ClsM3279 "M3279" #define ClsMacros "Macros" #define ClsMarginedPaste "MarginedPaste" #define ClsMenuBar "MenuBar" #define ClsMetaEscape "MetaEscape" #define ClsModel "Model" #define ClsModifiedSel "ModifiedSel" #define ClsModifiedSelColor "ModifiedSelColor" #define ClsMono "Mono" #define ClsMonoCase "MonoCase" #define ClsNoOther "NoOther" #define ClsNormalColor "NormalColor" #define ClsNormalCursor "NormalCursor" #define ClsNumericLock "NumericLock" #define ClsOerrLock "OerrLock" #define ClsOnce "Once" #define ClsOnlcr "Onlcr" #define ClsOversize "Oversize" #define ClsPluginCommand "PluginCommand" #define ClsPort "Port" #define ClsPreeditType "PreeditType" #define ClsPrinterLu "PrinterLu" #define ClsProxy "Proxy" #define ClsQuit "Quit" #define ClsReconnect "Reconnect" #define ClsRectangleSelect "RectangleSelect" #define ClsRprnt "Rprnt" #define ClsSaveLines "SaveLines" #define ClsSbcsCgcsgid "SbcsSgcsgid" #define ClsScreenTrace "ScreenTrace" #define ClsScreenTraceFile "ScreenTraceFile" #define ClsScripted "Scripted" #define ClsScriptPort "ScriptPort" #define ClsScrollBar "ScrollBar" #define ClsSecure "Secure" #define ClsSelectBackground "SelectBackground" #define ClsShowTiming "ShowTiming" #define ClsSocket "Socket" #define ClsSuppressHost "SuppressHost" #define ClsSuppressFontMenu "SuppressFontMenu" #define ClsTermName "TermName" #define ClsTraceDir "TraceDir" #define ClsTraceFile "TraceFile" #define ClsTraceFileSize "TraceFileSize" #define ClsTraceMonitor "TraceMonitor" #define ClsTypeahead "Typeahead" #define ClsUnlockDelay "UnlockDelay" #define ClsUnlockDelayMs "UnlockDelayMs" #define ClsUseCursorColor "UseCursorColor" #define ClsVisibleControl "VisibleControl" #define ClsVisualBell "VisualBell" #define ClsVisualSelect "VisualSelect" #define ClsVisualSelectColor "VisualSelectColor" #define ClsWaitCursor "WaitCursor" #define ClsWerase "Werase" /* Options. */ #define OptActiveIcon "-activeicon" #define OptAllBold "-allbold" #define OptAltScreen "-altscreen" #define OptAplMode "-apl" #define OptCbreak "-cbreak" #define OptCertFile "-certificate" #define OptCharClass "-cc" #define OptCharset "-charset" #define OptClear "-clear" #define OptColorScheme "-scheme" #define OptDefScreen "-defscreen" #define OptDsTrace "-trace" #define OptEmulatorFont "-efont" #define OptExtended "-extended" #define OptHostsFile "-hostsfile" #define OptIconName "-iconname" #define OptIconX "-iconx" #define OptIconY "-icony" #define OptInputMethod "-im" #define OptKeymap "-keymap" #define OptKeypadOn "-keypad" #define OptLocalCp "-localcp" #define OptLocalProcess "-e" #define OptM3279 "-color" #define OptModel "-model" #define OptMono "-mono" #define OptNoPrompt "-noprompt" #define OptNoScrollBar "+sb" #define OptOnce "-once" #define OptOversize "-oversize" #define OptPort "-port" #define OptPreeditType "-pt" #define OptPrinterLu "-printerlu" #define OptProxy "-proxy" #define OptReconnect "-reconnect" #define OptReverseVideo "-rv" #define OptSaveLines "-sl" #define OptSecure "-secure" #define OptScripted "-script" #define OptScriptPort "-scriptport" #define OptScrollBar "-sb" #define OptSet "-set" #define OptSocket "-socket" #define OptAutoShortcut "-S" #define OptNoAutoShortcut "+S" #define OptTermName "-tn" #define OptTitle "-title" #define OptTraceFile "-tracefile" #define OptTraceFileSize "-tracefilesize" #define OptV "-v" #define OptVersion "--version" /* Miscellaneous values. */ #define ResTrue "true" #define ResFalse "false" #define KpLeft "left" #define KpRight "right" #define KpBottom "bottom" #define KpIntegral "integral" #define KpInsideRight "insideRight" #define Apl "apl" /* Resources that are gotten explicitly. */ #define ResComposeMap "composeMap" #define ResEmulatorFontList "emulatorFontList" #define ResKeyHeight "keyHeight" #define ResKeyWidth "keyWidth" #define ResLargeKeyWidth "largeKeyWidth" #define ResMessage "message" #define ResNvt "nvt" #define ResPaWidth "paWidth" #define ResPfWidth "pfWidth" #define ResPrintTextCommand "printTextCommand" #define ResPrintTextFont "printTextFont" #define ResPrintTextSize "printTextSize" #define ResPrintWindowCommand "printWindowCommand" #define ResTraceCommand "traceCommand" #define ResUser "user" ibm-3270-3.3.10ga4/tcl3270/kybdc.h0000644000175000017500000001572211254565704015541 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * kybdc.h * Global declarations for kybd.c. */ /* keyboard lock states */ extern unsigned int kybdlock; #define KL_OERR_MASK 0x000f #define KL_OERR_PROTECTED 1 #define KL_OERR_NUMERIC 2 #define KL_OERR_OVERFLOW 3 #define KL_OERR_DBCS 4 #define KL_NOT_CONNECTED 0x0010 #define KL_AWAITING_FIRST 0x0020 #define KL_OIA_TWAIT 0x0040 #define KL_OIA_LOCKED 0x0080 #define KL_DEFERRED_UNLOCK 0x0100 #define KL_ENTER_INHIBIT 0x0200 #define KL_SCROLLED 0x0400 #define KL_OIA_MINUS 0x0800 /* actions */ extern void AltCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Attn_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void BackSpace_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void BackTab_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CircumNot_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Clear_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Compose_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CursorSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Default_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void DeleteField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void DeleteWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Delete_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Down_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Dup_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Enter_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EraseEOF_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EraseInput_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Erase_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void FieldEnd_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void FieldMark_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Flip_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void HexString_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Home_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ignore_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Insert_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Interrupt_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Key_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Left2_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Left_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MonoCase_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MouseSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MoveCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Newline_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void NextWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PA_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PA_Shift_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PF_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PreviousWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Reset_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Right2_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Right_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void String_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void SysReq_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Tab_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void TemporaryKeymap_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ToggleInsert_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ToggleReverse_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Up_action(Widget w, XEvent *event, String *params, Cardinal *num_params); /* other functions */ extern void do_reset(Boolean explicit); extern int emulate_input(char *s, int len, Boolean pasting); extern int emulate_uinput(ucs4_t *s, int len, Boolean pasting); extern void hex_input(char *s); extern void kybdlock_clr(unsigned int bits, const char *cause); extern void kybd_inhibit(Boolean inhibit); extern void kybd_init(void); extern int kybd_prime(void); extern void kybd_scroll_lock(Boolean lock); extern Boolean run_ta(void); extern int state_from_keymap(char keymap[32]); ibm-3270-3.3.10ga4/tcl3270/gluec.h0000644000175000017500000000427511254565704015545 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * gluec.h * Declarations for glue.c and XtGlue.c */ /* glue.c */ extern int parse_command_line(int argc, const char **argv, const char **cl_hostname); extern void parse_xrm(const char *arg, const char *where); extern char *safe_string(const char *s); extern Boolean process_events(Boolean block); extern void cmdline_help(Boolean as_action); struct host_color { char *name; int index; }; extern struct host_color host_color[]; /* XtGlue.c */ extern void (*Warning_redirect)(const char *); #if !defined(_WIN32) /*[*/ extern int select_setup(int *nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval **timeout, struct timeval *timebuf); #endif /*]*/ ibm-3270-3.3.10ga4/tcl3270/printc.h0000644000175000017500000000432611254565704015742 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * printc.h * Global declarations for print.c. */ typedef enum { P_TEXT, P_HTML, P_RTF } ptype_t; #define FPS_EVEN_IF_EMPTY 0x1 #define FPS_MODIFIED_ITALIC 0x2 extern Boolean fprint_screen(FILE *f, ptype_t ptype, unsigned opts, char *caption); extern void PrintText_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PrintWindow_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void print_text_option(Widget w, XtPointer client_data, XtPointer call_data); extern void print_window_option(Widget w, XtPointer client_data, XtPointer call_data); extern void save_text_option(Widget w, XtPointer client_data, XtPointer call_data); ibm-3270-3.3.10ga4/tcl3270/LICENSE0000644000175000017500000000342611254565711015275 0ustar bastianbastianCopyright (c) 1993-2009, Paul Mattes. Copyright (c) 2004-2005, Don Russell. Copyright (c) 2004, Dick Altenbern. Copyright (c) 1990, Jeff Sparkes. Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES, DICK ALTENBERN AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ibm-3270-3.3.10ga4/tcl3270/savec.h0000644000175000017500000000314211254565673015544 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of savec.h */ #define save_yourself() extern char *command_string; ibm-3270-3.3.10ga4/tcl3270/README0000644000175000017500000000221611254565711015144 0ustar bastianbastiantcl3270 3.3 Release tcl3270 is a tcl-based scripted IBM 3278/3279 terminal emulator. Documentation is in the html directory. The files are: Intro What tcl3270 is Lineage Where tcl3270 came from (copyright stuff) Build How to build and install tcl3270 FAQ Frequently Asked Questions (what to do when something goes wrong) New What's new in this release There is also a hypertext version of the tcl3270 man page. Please read Build before going ahead and building the program. Also, if you have a problem, scan through FAQ; there are lots of interesting answers there. Updates to tcl3270, as well as the current status of development and bugs, are available from the x3270 Web Page, http://x3270.sourceforge.net/. Feel free to send comments, criticism, suggestions, complaints, etc., to Paul Mattes, Paul.Mattes@usa.net. Requests will be addressed as time and resources permit. There is also an x3270 mailing list, which also includes information about tcl3270, and which receives news about new releases. Send a message to Paul.Mattes@usa.net (a real person, with an automatic responses for certain subject lines) to get on the list. ibm-3270-3.3.10ga4/tcl3270/ft_dftc.h0000644000175000017500000000335411254565704016054 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ extern void ft_dft_data(unsigned char *data, int length); extern void dft_read_modified(void); extern void set_dft_buffersize(void); ibm-3270-3.3.10ga4/tcl3270/install-sh0000755000175000017500000001267111254565704016300 0ustar bastianbastian#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else : fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=$mkdirprog fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then : else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else : fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else : fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else : fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else : fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 ibm-3270-3.3.10ga4/tcl3270/utilc.h0000644000175000017500000000644711256026610015557 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utilc.h * Global declarations for util.c. */ extern void add_resource(const char *name, const char *value); extern char *ctl_see(int c); extern char *do_subst(const char *s, Boolean do_vars, Boolean do_tilde); extern void fcatv(FILE *f, char *s); extern const char *get_message(const char *key); extern char *get_fresource(const char *fmt, ...) printflike(1, 2); extern char *get_resource(const char *name); extern char *scatv(const char *s, char *buf, size_t len); extern int split_dbcs_resource(const char *value, char sep, char **part1, char **part2); extern int split_dresource(char **st, char **left, char **right); extern int split_lresource(char **st, char **value); extern char *strip_whitespace(const char *s); extern char *xs_buffer(const char *fmt, ...) printflike(1, 2); extern void xs_error(const char *fmt, ...) printflike(1, 2); extern void xs_warning(const char *fmt, ...) printflike(1, 2); extern unsigned long AddInput(int, void (*)(void)); extern unsigned long AddExcept(int, void (*)(void)); extern unsigned long AddOutput(int, void (*)(void)); extern void RemoveInput(unsigned long); extern unsigned long AddTimeOut(unsigned long msec, void (*fn)(void)); extern void RemoveTimeOut(unsigned long cookie); extern KeySym StringToKeysym(char *s); extern char *KeysymToString(KeySym k); extern int read_resource_file(const char *filename, Boolean fatal); extern Boolean split_hier(char *label, char **base, char ***parents); typedef struct { char *buf; int alloc_len; int cur_len; } rpf_t; extern void rpf_init(rpf_t *r); extern void rpf_reset(rpf_t *r); extern void rpf(rpf_t *r, char *fmt, ...) printflike(2, 3); extern void rpf_free(rpf_t *r); extern const char *build_options(void); extern void dump_version(void); extern const char *display_scale(double d, char *buf, size_t buflen); ibm-3270-3.3.10ga4/tcl3270/tablesc.h0000644000175000017500000000334711254565704016062 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tablesc.h * Global declarations for tables.c. */ extern const unsigned char asc2cg0[256]; extern const unsigned char ebc2cg0[256]; extern const unsigned char ebc2asc0[256]; extern const unsigned char asc2ebc0[256]; ibm-3270-3.3.10ga4/wc3270/0000755000175000017500000000000011261530022014073 5ustar bastianbastianibm-3270-3.3.10ga4/wc3270/selectc.h0000644000175000017500000000316611254565673015722 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of selectc.h */ #define unselect(baddr, len) #define area_is_selected(baddr, len) False ibm-3270-3.3.10ga4/wc3270/Makefile0000755000175000017500000001143311254565671015564 0ustar bastianbastian# Copyright (c) 2007-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Makefile for wc3270 # Figure out if they've installed MinGW OpenSSL. SSLDIR = /usr/local/mingw-openssl HAVE_OPENSSL = $(shell [ -d $(SSLDIR) ] && echo yes) ifeq ($(HAVE_OPENSSL),yes) SSLCPP = -DHAVE_LIBSSL=1 -I$(SSLDIR)/include SSLLIB = -L$(SSLDIR)/lib -lssl -lcrypto -lwsock32 -ladvapi32 -lgdi32 -luser32 endif # Set command paths and mkfb (which has to run locally) based on whether # compiling natively on Cygwin, or cross-compiling on Linux. ifeq ($(CROSS),1) MKFB = mkfb CC = i586-mingw32msvc-gcc NATIVECC = gcc WINDRES = i586-mingw32msvc-windres NO_CYGWIN = else MKFB = mkfb.exe CC = gcc NATIVECC = gcc WINDRES = windres NO_CYGWIN = -mno-cygwin endif XCPPFLAGS = -D_WIN32 -DWC3270 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 -DWINVER=0x500 CFLAGS = $(EXTRA_FLAGS) $(NO_CYGWIN) -g -Wall -Werror $(XCPPFLAGS) -I. $(SSLCPP) SRCS = XtGlue.c actions.c ansi.c apl.c c3270.c charset.c ctlr.c \ ft.c ft_cut.c ft_dft.c glue.c help.c host.c icmd.c idle.c kybd.c \ macros.c print.c printer.c proxy.c readres.c resources.c rpq.c \ screen.c see.c sf.c tables.c telnet.c toggles.c trace_ds.c unicode.c \ unicode_dbcs.c utf8.c util.c xio.c fallbacks.c keymap.c w3misc.c \ winvers.c windirs.c resolver.c relink.c shortcut.c VOBJS = XtGlue.o actions.o ansi.o apl.o c3270.o charset.o ctlr.o \ fallbacks.o ft.o ft_cut.o ft_dft.o glue.o help.o host.o icmd.o idle.o \ keymap.o kybd.o macros.o print.o printer.o proxy.o readres.o \ resolver.o resources.o rpq.o screen.o see.o sf.o tables.o telnet.o \ toggles.o trace_ds.o unicode.o unicode_dbcs.o utf8.o util.o xio.o \ w3misc.c winvers.o windirs.o wc3270res.o relink.o shortcut.o OBJECTS = $(VOBJS) version.o WOBJECTS = wizard.o wc3270res.o wversion.o shortcut.o winvers.o windirs.o \ relink.o LIBS = $(SSLLIB) -lws2_32 -lole32 -luuid SHRTLIBS = -lole32 -luuid WIZLIBS = -lole32 -luuid -lwinspool DLLFLAGS = $(EXTRA_FLAGS) -mno-cygwin -shared -Wl,--export-all-symbols -Wl,--enable-auto-import PROGS = wc3270.exe mkshort.exe wc3270wiz.exe catf.exe ead3270.exe x3270if.exe all: $(PROGS) wc3270.exe : XCPPFLAGS += -DWIN32_LEAN_AND_MEAN version.o: $(VOBJS) version.txt mkversion.sh Makefile @chmod +x mkversion.sh version.txt sh ./mkversion.sh $(CC) wc3270 fallbacks.c: $(MKFB) X3270.xad Makefile $(RM) $@ ./$(MKFB) -c X3270.xad $@ $(MKFB): mkfb.c Makefile $(NATIVECC) -g -o $(MKFB) -D_WIN32 mkfb.c wc3270res.o: wc3270.rc wc3270.ico Makefile $(WINDRES) -i wc3270.rc -o wc3270res.o wc3270.exe: $(OBJECTS) Makefile $(CC) -o wc3270.exe $(CFLAGS) $(OBJECTS) $(LIBS) mkshort.exe: mkshort.o shortcut.o winvers.o Makefile $(CC) -o mkshort.exe $(CFLAGS) \ mkshort.o shortcut.o winvers.o $(SHRTLIBS) wversion.o: version.txt mkwversion.sh @chmod +x mkwversion.sh version.txt sh ./mkwversion.sh $(CC) wc3270wiz.exe: $(WOBJECTS) $(CC) -o wc3270wiz.exe $(CFLAGS) $(WOBJECTS) $(WIZLIBS) catf.exe: catf.c $(CC) -o catf.exe $(CFLAGS) catf.c ead3270.exe: ead3270.o windirs.o $(CC) -o $@ $(CFLAGS) ead3270.o windirs.o ead3270.o: ead3270.c $(CC) $(CFLAGS) -c ead3270.c x3270if.exe: x3270if.o w3misc.o $(CC) -o $@ $(CFLAGS) x3270if.o w3misc.o -lws2_32 clean: rm -f *.o mkfb mkfb.exe fallbacks.c clobber: clean rm -f $(PROGS) depend: gccmakedep -fMakefile $(XCPPFLAGS) -s "# DO NOT DELETE" $(SRCS) # ------------------------------------------------------------------------- # dependencies generated by makedepend # DO NOT DELETE ibm-3270-3.3.10ga4/wc3270/xio.c0000644000175000017500000000752211254565704015065 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, * GA 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor their * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR * GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xio.c * Low-level I/O setup functions and exit code. */ #include "globals.h" #include "actionsc.h" #include "hostc.h" #include "telnetc.h" #include "togglesc.h" #include "utilc.h" #include "xioc.h" /* Statics. */ static unsigned long ns_read_id; static unsigned long ns_exception_id; static Boolean reading = False; static Boolean excepting = False; /* * Called to set up input on a new network connection. */ void x_add_input(int net_sock) { ns_exception_id = AddExcept(net_sock, net_exception); excepting = True; ns_read_id = AddInput(net_sock, net_input); reading = True; } /* * Called when an exception is received to disable further exceptions. */ void x_except_off(void) { if (excepting) { RemoveInput(ns_exception_id); excepting = False; } } /* * Called when exception processing is complete to re-enable exceptions. * This includes removing and restoring reading, so the exceptions are always * processed first. */ void x_except_on(int net_sock) { if (excepting) return; if (reading) RemoveInput(ns_read_id); ns_exception_id = AddExcept(net_sock, net_exception); excepting = True; if (reading) ns_read_id = AddInput(net_sock, net_input); } /* * Called to disable input on a closing network connection. */ void x_remove_input(void) { if (reading) { RemoveInput(ns_read_id); reading = False; } if (excepting) { RemoveInput(ns_exception_id); excepting = False; } } /* * Application exit, with cleanup. */ void x3270_exit(int n) { static Boolean already_exiting = 0; /* Handle unintentional recursion. */ if (already_exiting) return; already_exiting = True; /* Turn off toggle-related activity. */ shutdown_toggles(); /* Shut down the socket gracefully. */ host_disconnect(False); /* Tell anyone else who's interested. */ st_changed(ST_EXITING, True); #if defined(WC3270) /*[*/ if (n) { char buf[2]; printf("\n[Press ] "); fflush(stdout); (void) fgets(buf, sizeof(buf), stdin); } #endif /*]*/ exit(n); } void Quit_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Quit_action, event, params, num_params); if (!w || !CONNECTED) { x3270_exit(0); } } ibm-3270-3.3.10ga4/wc3270/resolverc.h0000644000175000017500000000361311254565704016274 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resolverc.h * Hostname resolution. */ extern int resolve_host_and_port(const char *host, char *portname, int ix, unsigned short *pport, struct sockaddr *sa, socklen_t *sa_len, char *errmsg, int em_size, int *lastp); extern int numeric_host_and_port(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, char *errmsg, int em_len); ibm-3270-3.3.10ga4/wc3270/resources.c0000644000175000017500000001175711254565673016312 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include #include "localdefs.h" extern String fallbacks[]; /* s3270 substitute Xt resource database. */ #if defined(C3270) /*[*/ /* * These should be properly #ifdef'd in X3270.xad, but it would turn it into * spaghetti. */ static struct { char *name; char *value; } rdb[] = { { "message.hour", "hour" }, { "message.hours", "hours" }, { "message.minute", "minute" }, { "message.bindPluName", "BIND PLU name:" }, { "message.buildDisabled", "disabled" }, { "message.buildEnabled", "enabled" }, { "message.buildOpts", "Build options:" }, { "message.byte", "byte" }, { "message.bytes", "bytes" }, { "message.characterSet", "EBCDIC character set:" }, { "message.charMode", "NVT character mode" }, { "message.columns", "columns" }, { "message.connectedTo", "Connected to:" }, { "message.connectionPending", "Connection pending to:" }, { "message.dbcsCgcsgid", "Host DBCS CGCSGID:" }, { "message.defaultCharacterSet", "Default (us) EBCDIC character set" }, { "message.dsMode", "3270 mode" }, { "message.extendedDs", "extended data stream" }, { "message.fullColor", "color" }, { "message.hostCodePage", "Host code page:" }, { "message.keyboardMap", "Keyboard map:" }, { "message.lineMode", "NVT line mode" }, { "message.localeCodeset", "Locale codeset:" }, { "message.luName", "LU name:" }, { "message.minute", "minute" }, { "message.minutes", "minutes" }, { "message.model", "Model" }, { "message.mono", "monochrome" }, { "message.notConnected", "Not connected" }, { "message.port", "Port:" }, { "message.proxyType", "Proxy type:" }, { "message.Received", "Received" }, { "message.received", "received" }, { "message.record", "record" }, { "message.records", "records" }, { "message.rows", "rows" }, { "message.sbcsCgcsgid", "Host SBCS CGCSGID:" }, { "message.second", "second" }, { "message.seconds", "seconds" }, { "message.secure", "via TLS/SSL" }, { "message.sent", "Sent" }, { "message.server", "Server:" }, { "message.specialCharacters", "Special characters:" }, { "message.sscpMode", "SSCP-LU mode" }, { "message.standardDs", "standard data stream" }, { "message.terminalName", "Terminal name:" }, { "message.tn3270eNoOpts", "No TN3270E options" }, { "message.tn3270eOpts", "TN3270E options:" }, #if defined(_WIN32) /*[*/ { "message.windowsCodePage", "Windows code page:" }, #endif /*][*/ { NULL, NULL } }; #endif /*]*/ static struct dresource { struct dresource *next; const char *name; char *value; } *drdb = NULL, **drdb_next = &drdb; void add_resource(const char *name, char *value) { struct dresource *d; for (d = drdb; d != NULL; d = d->next) { if (!strcmp(d->name, name)) { d->value = value; return; } } d = Malloc(sizeof(struct dresource)); d->next = NULL; d->name = name; d->value = value; *drdb_next = d; drdb_next = &d->next; } char * get_resource(const char *name) { struct dresource *d; int i; for (d = drdb; d != NULL; d = d->next) { if (!strcmp(d->name, name)) { return d->value; } } for (i = 0; fallbacks[i] != NULL; i++) { if (!strncmp(fallbacks[i], name, strlen(name)) && *(fallbacks[i] + strlen(name)) == ':') { return fallbacks[i] + strlen(name) + 2; } } #if defined(C3270) /*[*/ for (i = 0; rdb[i].name != (char *)NULL; i++) { if (!strcmp(rdb[i].name, name)) { return rdb[i].value; } } #endif /*]*/ return NULL; } ibm-3270-3.3.10ga4/wc3270/screen.c0000644000175000017500000015127411254565671015554 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * screen.c * A Windows console-based 3270 Terminal Emulator * Screen drawing */ #include "globals.h" #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "ctlr.h" #include "actionsc.h" #include "ctlrc.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "screenc.h" #include "tablesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include "w3miscc.h" #include "xioc.h" #include #include #include "winversc.h" #define STATUS_PUSH_MS 5000 extern int screen_changed; extern char *profile_name; #if defined(X3270_DBCS) /*[*/ # if !defined(COMMON_LVB_LEAD_BYTE) /*[*/ # define COMMON_LVB_LEAD_BYTE 0x100 # endif /*]*/ # if !defined(COMMON_LVB_TRAILING_BYTE) /*[*/ # define COMMON_LVB_TRAILING_BYTE 0x200 # endif /*]*/ #endif /*]*/ #define MAX_COLORS 16 /* N.B.: "neutral black" means black on a screen (white-on-black device) and * white on a printer (black-on-white device). * "neutral white" means white on a screen (white-on-black device) and * black on a printer (black-on-white device). */ static int cmap_fg[MAX_COLORS] = { 0, /* neutral black */ FOREGROUND_INTENSITY | FOREGROUND_BLUE, /* blue */ FOREGROUND_INTENSITY | FOREGROUND_RED, /* red */ FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE, /* pink */ FOREGROUND_INTENSITY | FOREGROUND_GREEN, /* green */ FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE, /* turquoise */ FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED, /* yellow */ FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE, /* neutral white */ 0, /* black */ FOREGROUND_BLUE, /* deep blue */ FOREGROUND_INTENSITY | FOREGROUND_RED, /* orange */ FOREGROUND_RED | FOREGROUND_BLUE, /* purple */ FOREGROUND_GREEN, /* pale green */ FOREGROUND_GREEN | FOREGROUND_BLUE, /* pale turquoise */ FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE, /* gray */ FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE, /* white */ }; static int cmap_bg[MAX_COLORS] = { 0, /* neutral black */ BACKGROUND_INTENSITY | BACKGROUND_BLUE, /* blue */ BACKGROUND_INTENSITY | BACKGROUND_RED, /* red */ BACKGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_BLUE, /* pink */ BACKGROUND_INTENSITY | BACKGROUND_GREEN, /* green */ BACKGROUND_INTENSITY | BACKGROUND_GREEN | BACKGROUND_BLUE, /* turquoise */ BACKGROUND_INTENSITY | BACKGROUND_GREEN | BACKGROUND_RED, /* yellow */ BACKGROUND_INTENSITY | BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_BLUE, /* neutral white */ 0, /* black */ BACKGROUND_BLUE, /* deep blue */ BACKGROUND_INTENSITY | BACKGROUND_RED, /* orange */ BACKGROUND_RED | BACKGROUND_BLUE, /* purple */ BACKGROUND_GREEN, /* pale green */ BACKGROUND_GREEN | BACKGROUND_BLUE, /* pale turquoise */ BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE, /* gray */ BACKGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE, /* white */ }; static int field_colors[4] = { HOST_COLOR_GREEN, /* default */ HOST_COLOR_RED, /* intensified */ HOST_COLOR_BLUE, /* protected */ HOST_COLOR_NEUTRAL_WHITE /* protected, intensified */ }; static int defattr = 0; static unsigned long input_id; Boolean escaped = True; Boolean isendwin = True; enum ts { TS_AUTO, TS_ON, TS_OFF }; enum ts ab_mode = TS_AUTO; int windows_cp = 0; #if defined(MAYBE_SOMETIME) /*[*/ /* * A bit of a cheat. We know that Windows console attributes are really just * colors, with bits 0-3 for foreground and bits 4-7 for background. That * leaves 8 bits we can play with for our own devious purposes, as long as we * don't accidentally pass one of those bits to Windows. * * The attributes we define are: * WCATTR_UNDERLINE: The character is underlined. Windows does not support * underlining, but we do, by displaying underlined spaces as underscores. * Some people may find this absolutely maddening. */ #endif /*]*/ static CHAR_INFO *onscreen; /* what's on the screen now */ static CHAR_INFO *toscreen; /* what's supposed to be on the screen */ static int onscreen_valid = FALSE; /* is onscreen valid? */ static int status_row = 0; /* Row to display the status line on */ static int status_skip = 0; /* Row to blank above the status line */ static void kybd_input(void); static void kybd_input2(INPUT_RECORD *ir); static void draw_oia(void); static void status_connect(Boolean ignored); static void status_3270_mode(Boolean ignored); static void status_printer(Boolean on); static int get_color_pair(int fg, int bg); static int color_from_fa(unsigned char fa); static void screen_connect(Boolean connected); static void set_status_row(int screen_rows, int emulator_rows); static Boolean ts_value(const char *s, enum ts *tsp); static void relabel(Boolean ignored); static void init_user_colors(void); static void init_user_attribute_colors(void); static HWND GetConsoleHwnd(void); static HANDLE chandle; /* console input handle */ static HANDLE cohandle; /* console screen buffer handle */ static HANDLE *sbuf; /* dynamically-allocated screen buffer */ static HWND console_window; static int console_rows; static int console_cols; static int screen_swapped = FALSE; static Boolean blink_on = True; /* are we displaying them or not? */ static Boolean blink_ticking = False; /* is the timeout pending? */ static unsigned long blink_id = 0; /* timeout ID */ static Boolean blink_wasticking = False; static void blink_em(void); /* * Console event handler. */ BOOL WINAPI cc_handler(DWORD type) { if (type == CTRL_C_EVENT) { char *action; /* Process it as a Ctrl-C. */ trace_event("Control-C received via Console Event Handler%s\n", escaped? " (should be ignored)": ""); if (escaped) return TRUE; action = lookup_key(0x03, LEFT_CTRL_PRESSED); if (action != CN) { if (strcmp(action, "[ignore]")) push_keymap_action(action); } else { String params[2]; Cardinal one; params[0] = "0x03"; params[1] = CN; one = 1; Key_action(NULL, NULL, params, &one); } return TRUE; } else { /* Let Windows have its way with it. */ return FALSE; } } /* * Get a handle for the console. */ static HANDLE initscr(void) { CONSOLE_SCREEN_BUFFER_INFO info; size_t buffer_size; CONSOLE_CURSOR_INFO cursor_info; /* Get a handle to the console. */ chandle = CreateFile("CONIN$", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); if (chandle == NULL) { fprintf(stderr, "CreateFile(CONIN$) failed: %s\n", win32_strerror(GetLastError())); return NULL; } if (SetConsoleMode(chandle, ENABLE_PROCESSED_INPUT | ENABLE_MOUSE_INPUT) == 0) { fprintf(stderr, "SetConsoleMode failed: %s\n", win32_strerror(GetLastError())); return NULL; } cohandle = CreateFile("CONOUT$", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if (cohandle == NULL) { fprintf(stderr, "CreateFile(CONOUT$) failed: %s\n", win32_strerror(GetLastError())); return NULL; } console_window = GetConsoleHwnd(); /* Get its dimensions. */ if (GetConsoleScreenBufferInfo(cohandle, &info) == 0) { fprintf(stderr, "GetConsoleScreenBufferInfo failed: %s\n", win32_strerror(GetLastError())); return NULL; } console_rows = info.srWindow.Bottom - info.srWindow.Top + 1; console_cols = info.srWindow.Right - info.srWindow.Left + 1; /* Get its cursor configuration. */ if (GetConsoleCursorInfo(cohandle, &cursor_info) == 0) { fprintf(stderr, "GetConsoleCursorInfo failed: %s\n", win32_strerror(GetLastError())); return NULL; } /* Create the screen buffer. */ sbuf = CreateConsoleScreenBuffer( GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CONSOLE_TEXTMODE_BUFFER, NULL); if (sbuf == NULL) { fprintf(stderr, "CreateConsoleScreenBuffer failed: %s\n", win32_strerror(GetLastError())); return NULL; } /* Set its cursor state. */ if (SetConsoleCursorInfo(sbuf, &cursor_info) == 0) { fprintf(stderr, "SetConsoleScreenBufferInfo failed: %s\n", win32_strerror(GetLastError())); return NULL; } /* Define a console handler. */ if (!SetConsoleCtrlHandler(cc_handler, TRUE)) { fprintf(stderr, "SetConsoleCtrlHandler failed: %s\n", win32_strerror(GetLastError())); return NULL; } /* Allocate and initialize the onscreen and toscreen buffers. */ buffer_size = sizeof(CHAR_INFO) * console_rows * console_cols; onscreen = (CHAR_INFO *)Malloc(buffer_size); (void) memset(onscreen, '\0', buffer_size); onscreen_valid = FALSE; toscreen = (CHAR_INFO *)Malloc(buffer_size); (void) memset(toscreen, '\0', buffer_size); /* More will no doubt follow. */ return chandle; } /* * Vitrual curses functions. */ static int cur_row = 0; static int cur_col = 0; static int cur_attr = 0; static void move(int row, int col) { cur_row = row; cur_col = col; } static void attrset(int a) { cur_attr = a; } static void addch(int c) { CHAR_INFO *ch = &toscreen[(cur_row * console_cols) + cur_col]; /* Save the desired character. */ if (ch->Char.UnicodeChar != c || ch->Attributes != cur_attr) { ch->Char.UnicodeChar = c; ch->Attributes = cur_attr; } /* Increment and wrap. */ if (++cur_col >= console_cols) { cur_col = 0; if (++cur_row >= console_rows) cur_row = 0; } } static void printw(char *fmt, ...) { va_list ap; char buf[1024]; char *s; va_start(ap, fmt); vsprintf(buf, fmt, ap); for (s = buf; *s; s++) { addch(*s); } va_end(ap); } static void mvprintw(int row, int col, char *fmt, ...) { va_list ap; char buf[1024]; char *s; va_start(ap, fmt); cur_row = row; cur_col = col; vsprintf(buf, fmt, ap); for (s = buf; *s; s++) { addch(*s); } va_end(ap); } static int ix(int row, int col) { return (row * console_cols) + col; } static char *done_array = NULL; static void none_done(void) { if (done_array == NULL) { done_array = Malloc(console_rows * console_cols); } memset(done_array, '\0', console_rows * console_cols); } static int is_done(int row, int col) { return done_array[ix(row, col)]; } static void mark_done(int start_row, int end_row, int start_col, int end_col) { int row; for (row = start_row; row <= end_row; row++) { memset(&done_array[ix(row, start_col)], 1, end_col - start_col + 1); } } static int tos_a(int row, int col) { return toscreen[ix(row, col)].Attributes; } #if defined(DEBUG_SCREEN_DRAW) /*[*/ static int changed(int row, int col) { return !onscreen_valid || memcmp(&onscreen[ix(row, col)], &toscreen[ix(row, col)], sizeof(CHAR_INFO)); } #endif /*]*/ /* Windows 98 version of WriteConsoleOutputW(). */ static BOOL Win98WriteConsoleOutputW(HANDLE hConsoleOutput, const CHAR_INFO* lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, PSMALL_RECT lpWriteRegion) { CHAR_INFO *lpCopy; size_t s; int row, col; BOOL rc; /* Copy lpBuffer. */ s = dwBufferSize.X * dwBufferSize.Y * sizeof(CHAR_INFO); lpCopy = (CHAR_INFO *)Malloc(s); /* * Scan the specified region, translating Unicode to the OEM code * page (what console output expects). */ for (row = lpWriteRegion->Top; row <= lpWriteRegion->Bottom; row++) { for (col = lpWriteRegion->Left; col <= lpWriteRegion->Right; col++) { const CHAR_INFO *c = &lpBuffer[ix(row, col)]; CHAR_INFO *d = &lpCopy[ix(row, col)]; unsigned char ch; int nc; BOOL udc; nc = WideCharToMultiByte(CP_OEMCP, 0, &c->Char.UnicodeChar, 1, (char *)&ch, 1, "?", &udc); *d = *c; d->Char.UnicodeChar = 0; d->Char.AsciiChar = ch; } } /* Do the Ascii version. */ rc = WriteConsoleOutputA(hConsoleOutput, lpCopy, dwBufferSize, dwBufferCoord, lpWriteRegion); /* Done. */ Free(lpCopy); return rc; } /* * Draw a rectangle of homogeneous text. */ static void hdraw(int row, int lrow, int col, int lcol) { COORD bufferSize; COORD bufferCoord; SMALL_RECT writeRegion; int xrow; int rc; #if defined(DEBUG_SCREEN_DRAW) /*[*/ /* * Trace what we've been asked to draw. * Drawn areas are 'h', done areas are 'd'. */ { int trow, tcol; trace_event("hdraw row %d-%d col %d-%d attr 0x%x:\n", row, lrow, col, lcol, tos_a(row, col)); for (trow = 0; trow < console_rows; trow++) { for (tcol = 0; tcol < console_cols; tcol++) { if (trow >= row && trow <= lrow && tcol >= col && tcol <= lcol) trace_event("h"); else if (is_done(trow, tcol)) trace_event("d"); else trace_event("."); } trace_event("\n"); } } #endif /*]*/ /* Write it. */ bufferSize.X = console_cols; bufferSize.Y = console_rows; bufferCoord.X = col; bufferCoord.Y = row; writeRegion.Left = col; writeRegion.Top = row; writeRegion.Right = lcol; writeRegion.Bottom = lrow; if (is_nt) rc = WriteConsoleOutputW(sbuf, toscreen, bufferSize, bufferCoord, &writeRegion); else rc = Win98WriteConsoleOutputW(sbuf, toscreen, bufferSize, bufferCoord, &writeRegion); if (rc == 0) { fprintf(stderr, "WriteConsoleOutput failed: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } /* Sync 'onscreen'. */ for (xrow = row; xrow <= lrow; xrow++) { memcpy(&onscreen[ix(xrow, col)], &toscreen[ix(xrow, col)], sizeof(CHAR_INFO) * (lcol - col + 1)); } /* Mark the region as done. */ mark_done(row, lrow, col, lcol); } /* * Draw a rectanglar region from 'toscreen' onto the screen, without regard to * what is already there. * If the attributes for the entire region are the same, we can draw it in * one go; otherwise we will need to break it into little pieces (fairly * stupidly) with common attributes. * When done, copy the region from 'toscreen' to 'onscreen'. */ static void draw_rect(int pc_start, int pc_end, int pr_start, int pr_end) { int a; int ul_row, ul_col, xrow, xcol, lr_row, lr_col; #if defined(DEBUG_SCREEN_DRAW) /*[*/ /* * Trace what we've been asked to draw. * Modified areas are 'r', unmodified (excess) areas are 'x'. */ { int trow, tcol; trace_event("draw_rect row %d-%d col %d-%d\n", pr_start, pr_end, pc_start, pc_end); for (trow = 0; trow < console_rows; trow++) { for (tcol = 0; tcol < console_cols; tcol++) { if (trow >= pr_start && trow <= pr_end && tcol >= pc_start && tcol <= pc_end) { if (changed(trow, tcol)) trace_event("r"); else trace_event("x"); } else trace_event("."); } trace_event("\n"); } } #endif /*]*/ for (ul_row = pr_start; ul_row <= pr_end; ul_row++) { for (ul_col = pc_start; ul_col <= pc_end; ul_col++) { int col_found = 0; if (is_done(ul_row, ul_col)) continue; /* * [ul_row,ul_col] is the upper left-hand corner of an * undrawn region. * * Find the the lower right-hand corner of the * rectangle with common attributes. */ a = tos_a(ul_row, ul_col); lr_col = pc_end; lr_row = pr_end; for (xrow = ul_row; !col_found && xrow <= pr_end; xrow++) { if (is_done(xrow, ul_col) || tos_a(xrow, ul_col) != a) { lr_row = xrow - 1; break; } for (xcol = ul_col; xcol <= lr_col; xcol++) { if (is_done(xrow, xcol) || tos_a(xrow, xcol) != a) { lr_col = xcol - 1; lr_row = xrow; col_found = 1; break; } } } if (tos_a(ul_row, ul_col) & COMMON_LVB_LEAD_BYTE) continue; hdraw(ul_row, lr_row, ul_col, lr_col); if (tos_a(ul_row, ul_col) & COMMON_LVB_TRAILING_BYTE) hdraw(ul_row, lr_row, ul_col-1, lr_col-1); } } } /* * Compare 'onscreen' (what's on the screen right now) with 'toscreen' (what * we want on the screen) and draw what's changed. Hopefully it will be in * a reasonably optimized fashion. * * Windows lets us draw a rectangular areas with one call, provided that the * whole area has the same attributes. We will take advantage of this where * it is relatively easy to figure out, by walking row by row, holding on to * and widening a vertical band of modified columns and drawing only when we * hit a row that needs no modifications. This will cause us to miss some * easy-seeming cases that require recognizing multiple bands per row. */ static void sync_onscreen(void) { int row; int col; int pending = FALSE; /* is there a draw pending? */ int pc_start, pc_end; /* first and last columns in pending band */ int pr_start; /* first row in pending band */ /* Clear out the 'what we've seen' array. */ none_done(); #if defined(DEBUG_SCREEN_DRAW) /*[*/ /* * Trace what's been modified. * Modified areas are 'm'. */ { int trow, tcol; trace_event("sync_onscreen:\n"); for (trow = 0; trow < console_rows; trow++) { for (tcol = 0; tcol < console_cols; tcol++) { if (changed(trow, tcol)) trace_event("m"); else trace_event("."); } trace_event("\n"); } } #endif /*]*/ /* Sometimes you have to draw everything. */ if (!onscreen_valid) { draw_rect(0, console_cols - 1, 0, console_rows - 1); onscreen_valid = TRUE; return; } for (row = 0; row < console_rows; row++) { /* Check the whole row for a match first. */ if (!memcmp(&onscreen[ix(row, 0)], &toscreen[ix(row, 0)], sizeof(CHAR_INFO) * console_cols)) { if (pending) { draw_rect(pc_start, pc_end, pr_start, row - 1); pending = FALSE; } continue; } for (col = 0; col < console_cols; col++) { if (memcmp(&onscreen[ix(row, col)], &toscreen[ix(row, col)], sizeof(CHAR_INFO))) { /* * This column differs. * Start or expand the band, and start pending. */ if (!pending || col < pc_start) pc_start = col; if (!pending || col > pc_end) pc_end = col; if (!pending) { pr_start = row; pending = TRUE; } } } } if (pending) draw_rect(pc_start, pc_end, pr_start, console_rows - 1); } /* Repaint the screen. */ static void refresh(void) { COORD coord; isendwin = False; /* * Draw the differences between 'onscreen' and 'toscreen' into * sbuf. */ sync_onscreen(); /* Move the cursor. */ coord.X = cur_col; coord.Y = cur_row; #if defined(X3270_DBCS) /*[*/ if (onscreen[ix(cur_row, cur_col)].Attributes & COMMON_LVB_TRAILING_BYTE) { coord.X--; } #endif /*]*/ if (SetConsoleCursorPosition(sbuf, coord) == 0) { fprintf(stderr, "\nrefresh: SetConsoleCursorPosition(x=%d,y=%d) " "failed: %s\n", coord.X, coord.Y, win32_strerror(GetLastError())); x3270_exit(1); } /* Swap in this buffer. */ if (screen_swapped == FALSE) { if (SetConsoleActiveScreenBuffer(sbuf) == 0) { fprintf(stderr, "\nSetConsoleActiveScreenBuffer failed: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } screen_swapped = TRUE; } /* Start blinking again. */ if (blink_wasticking) { blink_wasticking = False; blink_id = AddTimeOut(750, blink_em); } } /* Set the console to 'cooked' mode. */ static void set_console_cooked(void) { if (SetConsoleMode(chandle, ENABLE_ECHO_INPUT | ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT | ENABLE_MOUSE_INPUT) == 0) { fprintf(stderr, "\nSetConsoleMode(CONIN$) failed: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } if (SetConsoleMode(cohandle, ENABLE_PROCESSED_OUTPUT | ENABLE_WRAP_AT_EOL_OUTPUT) == 0) { fprintf(stderr, "\nSetConsoleMode(CONOUT$) failed: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } } /* Go back to the original screen. */ static void endwin(void) { if (isendwin) return; isendwin = True; if (blink_ticking) { RemoveTimeOut(blink_id); blink_id = 0; blink_ticking = False; blink_on = True; blink_wasticking = True; } set_console_cooked(); /* Swap in the original buffer. */ if (SetConsoleActiveScreenBuffer(cohandle) == 0) { fprintf(stderr, "\nSetConsoleActiveScreenBuffer failed: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } screen_swapped = FALSE; } /* Initialize the screen. */ void screen_init(void) { int want_ov_rows = ov_rows; int want_ov_cols = ov_cols; Boolean oversize = False; /* Disallow altscreen/defscreen. */ if ((appres.altscreen != CN) || (appres.defscreen != CN)) { (void) fprintf(stderr, "altscreen/defscreen not supported\n"); x3270_exit(1); } /* Initialize the console. */ if (initscr() == NULL) { (void) fprintf(stderr, "Can't initialize terminal.\n"); x3270_exit(1); } windows_cp = GetConsoleCP(); /* * Respect the console size we are given. */ while (console_rows < maxROWS || console_cols < maxCOLS) { /* * First, cancel any oversize. This will get us to the correct * model number, if there is any. */ if ((ov_cols && ov_cols > console_cols) || (ov_rows && ov_rows > console_rows)) { ov_cols = 0; ov_rows = 0; oversize = True; continue; } /* If we're at the smallest screen now, give up. */ if (model_num == 2) { (void) fprintf(stderr, "Emulator won't fit on a %dx%d " "display.\n", console_rows, console_cols); x3270_exit(1); } /* Try a smaller model. */ set_rows_cols(model_num - 1, 0, 0); } /* * Now, if they wanted an oversize, but didn't get it, try applying it * again. */ if (oversize) { if (want_ov_rows > console_rows - 2) want_ov_rows = console_rows - 2; if (want_ov_rows < maxROWS) want_ov_rows = maxROWS; if (want_ov_cols > console_cols) want_ov_cols = console_cols; set_rows_cols(model_num, want_ov_cols, want_ov_rows); } /* * Finally, if they want automatic oversize, see if that's possible. */ if (ov_auto && (maxROWS < console_rows - 2 || maxCOLS < console_cols)) set_rows_cols(model_num, console_cols, console_rows - 2); /* Figure out where the status line goes, if it fits. */ /* Start out in altscreen mode. */ set_status_row(console_rows, maxROWS); /* Set up callbacks for state changes. */ register_schange(ST_CONNECT, screen_connect); register_schange(ST_CONNECT, status_connect); register_schange(ST_3270_MODE, status_3270_mode); register_schange(ST_PRINTER, status_printer); register_schange(ST_HALF_CONNECT, relabel); register_schange(ST_CONNECT, relabel); register_schange(ST_3270_MODE, relabel); /* See about all-bold behavior. */ if (appres.all_bold_on) ab_mode = TS_ON; else if (!ts_value(appres.all_bold, &ab_mode)) (void) fprintf(stderr, "invalid %s value: '%s', " "assuming 'auto'\n", ResAllBold, appres.all_bold); if (ab_mode == TS_AUTO) ab_mode = appres.m3279? TS_ON: TS_OFF; /* If the want monochrome, assume they want green. */ if (!appres.m3279) { defattr |= FOREGROUND_GREEN; if (ab_mode == TS_ON) defattr |= FOREGROUND_INTENSITY; } /* Pull in the user's color mappings. */ init_user_colors(); init_user_attribute_colors(); /* Set up the controller. */ ctlr_init(-1); ctlr_reinit(-1); /* Set the window label. */ if (appres.title != CN) screen_title(appres.title); else if (profile_name != CN) screen_title(profile_name); else screen_title("wc3270"); /* Finish screen initialization. */ set_console_cooked(); } static void screen_connect(Boolean connected) { static Boolean initted = False; if (!initted && connected) { initted = True; screen_resume(); } } /* Calculate where the status line goes now. */ static void set_status_row(int screen_rows, int emulator_rows) { if (screen_rows < emulator_rows + 1) { status_row = status_skip = 0; } else if (screen_rows == emulator_rows + 1) { status_skip = 0; status_row = emulator_rows; } else { status_skip = screen_rows - 2; status_row = screen_rows - 1; } } /* * Parse a tri-state resource value. * Returns True for success, False for failure. */ static Boolean ts_value(const char *s, enum ts *tsp) { *tsp = TS_AUTO; if (s != CN && s[0]) { int sl = strlen(s); if (!strncasecmp(s, "true", sl)) *tsp = TS_ON; else if (!strncasecmp(s, "false", sl)) *tsp = TS_OFF; else if (strncasecmp(s, "auto", sl)) return False; } return True; } /* Allocate a color pair. */ static int get_color_pair(int fg, int bg) { int mfg = fg & 0xf; int mbg = bg & 0xf; if (mfg >= MAX_COLORS) mfg = 0; if (mbg >= MAX_COLORS) mbg = 0; return cmap_fg[mfg] | cmap_bg[mbg]; } /* * Initialize the user-specified attribute color mappings. */ static void init_user_attribute_color(int *a, const char *resname) { char *r; unsigned long l; char *ptr; int i; if ((r = get_resource(resname)) == CN) return; for (i = 0; host_color[i].name != CN; i++) { if (!strcasecmp(r, host_color[i].name)) { *a = host_color[i].index; return; } } l = strtoul(r, &ptr, 0); if (ptr == r || *ptr != '\0' || l >= MAX_COLORS) { xs_warning("Invalid %s value: %s", resname, r); return; } *a = (int)l; } static void init_user_attribute_colors(void) { init_user_attribute_color(&field_colors[0], ResHostColorForDefault); init_user_attribute_color(&field_colors[1], ResHostColorForIntensified); init_user_attribute_color(&field_colors[2], ResHostColorForProtected); init_user_attribute_color(&field_colors[3], ResHostColorForProtectedIntensified); } /* * Map a field attribute to a 3270 color index. * Applies only to m3270 mode -- does not work for mono. */ static int color3270_from_fa(unsigned char fa) { # define DEFCOLOR_MAP(f) \ ((((f) & FA_PROTECT) >> 4) | (((f) & FA_INT_HIGH_SEL) >> 3)) return field_colors[DEFCOLOR_MAP(fa)]; } /* Map a field attribute to its default colors. */ static int color_from_fa(unsigned char fa) { if (appres.m3279) { int fg; fg = color3270_from_fa(fa); return get_color_pair(fg, HOST_COLOR_NEUTRAL_BLACK); } else return FOREGROUND_GREEN | (((ab_mode == TS_ON) || FA_IS_HIGH(fa))? FOREGROUND_INTENSITY: 0) | cmap_bg[HOST_COLOR_NEUTRAL_BLACK]; } static int reverse_colors(int a) { int rv = 0; /* Move foreground colors to background colors. */ if (a & FOREGROUND_RED) rv |= BACKGROUND_RED; if (a & FOREGROUND_BLUE) rv |= BACKGROUND_BLUE; if (a & FOREGROUND_GREEN) rv |= BACKGROUND_GREEN; if (a & FOREGROUND_INTENSITY) rv |= BACKGROUND_INTENSITY; /* And vice versa. */ if (a & BACKGROUND_RED) rv |= FOREGROUND_RED; if (a & BACKGROUND_BLUE) rv |= FOREGROUND_BLUE; if (a & BACKGROUND_GREEN) rv |= FOREGROUND_GREEN; if (a & BACKGROUND_INTENSITY) rv |= FOREGROUND_INTENSITY; return rv; } /* * Set up the user-specified color mappings. */ static void init_user_color(const char *name, int ix) { char *r; unsigned long l; char *ptr; r = get_fresource("%s%s", ResConsoleColorForHostColor, name); if (r == CN) r = get_fresource("%s%d", ResConsoleColorForHostColor, ix); if (r == CN) return; l = strtoul(r, &ptr, 0); if (ptr != r && *ptr == '\0' && l <= 15) { cmap_fg[ix] = (int)l; cmap_bg[ix] = (int)l << 4; return; } xs_warning("Invalid %s value '%s'", ResConsoleColorForHostColor, r); } static void init_user_colors(void) { int i; for (i = 0; host_color[i].name != CN; i++) { init_user_color(host_color[i].name, host_color[i].index); } if (appres.m3279) defattr = cmap_fg[HOST_COLOR_NEUTRAL_WHITE] | cmap_bg[HOST_COLOR_NEUTRAL_BLACK]; else defattr = cmap_fg[HOST_COLOR_PALE_GREEN] | cmap_bg[HOST_COLOR_NEUTRAL_BLACK]; } /* * Find the display attributes for a baddr, fa_addr and fa. */ static int calc_attrs(int baddr, int fa_addr, int fa, Boolean *underlined, Boolean *blinking) { int fg, bg, gr, a; /* Compute the color. */ /* Monochrome is easy, and so is color if nothing is specified. */ if (!appres.m3279 || (!ea_buf[baddr].fg && !ea_buf[fa_addr].fg && !ea_buf[baddr].bg && !ea_buf[fa_addr].bg)) { a = color_from_fa(fa); } else { /* The current location or the fa specifies the fg or bg. */ if (ea_buf[baddr].fg) fg = ea_buf[baddr].fg & 0x0f; else if (ea_buf[fa_addr].fg) fg = ea_buf[fa_addr].fg & 0x0f; else fg = color3270_from_fa(fa); if (ea_buf[baddr].bg) bg = ea_buf[baddr].bg & 0x0f; else if (ea_buf[fa_addr].bg) bg = ea_buf[fa_addr].bg & 0x0f; else bg = HOST_COLOR_NEUTRAL_BLACK; a = get_color_pair(fg, bg); } /* Compute the display attributes. */ if (ea_buf[baddr].gr) gr = ea_buf[baddr].gr; else if (ea_buf[fa_addr].gr) gr = ea_buf[fa_addr].gr; else gr = 0; if (!toggled(UNDERSCORE) && appres.m3279 && (gr & (GR_BLINK | GR_UNDERLINE)) && !(gr & GR_REVERSE) && !bg) { a |= BACKGROUND_INTENSITY; } if (!appres.m3279 && ((gr & GR_INTENSIFY) || (ab_mode == TS_ON) || FA_IS_HIGH(fa))) { a |= FOREGROUND_INTENSITY; } if (gr & GR_REVERSE) a = reverse_colors(a); if (toggled(UNDERSCORE) && (gr & GR_UNDERLINE)) *underlined = True; else *underlined = False; if (toggled(UNDERSCORE) && (gr & GR_BLINK)) *blinking = True; else *blinking = False; return a; } /* * Blink timeout handler. */ static void blink_em(void) { trace_event("blink timeout\n"); /* We're not ticking any more. */ blink_id = 0; blink_ticking = False; blink_wasticking = False; /* Swap blink state and redraw the screen. */ blink_on = !blink_on; screen_changed = True; screen_disp(False); } /* * Map a character onto itself or a space, depending on whether it is supposed * to blink and the current global blink state. * Note that blinked-off spaces are underscores, if in underscore mode. * Also sets up the timeout for the next blink if needed. */ static int blinkmap(Boolean blinking, Boolean underlined, int c) { if (!blinking) return c; if (!blink_ticking) { blink_id = AddTimeOut(500, blink_em); blink_ticking = True; } return blink_on? c: (underlined? '_': ' '); } /* Display what's in the buffer. */ void screen_disp(Boolean erasing _is_unused) { int row, col; int a; Boolean a_underlined = False; Boolean a_blinking = False; int c; unsigned char fa; #if defined(X3270_DBCS) /*[*/ enum dbcs_state d; #endif /*]*/ int fa_addr; /* This may be called when it isn't time. */ if (escaped) return; if (!screen_changed) { /* Draw the status line. */ if (status_row) { draw_oia(); } /* Move the cursor. */ if (flipped) move(cursor_addr / cCOLS, cCOLS-1 - (cursor_addr % cCOLS)); else move(cursor_addr / cCOLS, cursor_addr % cCOLS); if (status_row) refresh(); else { COORD coord; coord.X = cur_col; coord.Y = cur_row; #if defined(X3270_DBCS) /*[*/ if (onscreen[ix(cur_row, cur_col)].Attributes & COMMON_LVB_TRAILING_BYTE) { coord.X--; } #endif /*]*/ if (SetConsoleCursorPosition(sbuf, coord) == 0) { fprintf(stderr, "\nscreen_disp: " "SetConsoleCursorPosition(x=%d,y=%d) " "failed: %s\n", coord.X, coord.Y, win32_strerror(GetLastError())); x3270_exit(1); } } return; } fa = get_field_attribute(0); fa_addr = find_field_attribute(0); /* may be -1, that's okay */ a = calc_attrs(0, fa_addr, fa, &a_underlined, &a_blinking); for (row = 0; row < ROWS; row++) { int baddr; if (!flipped) move(row, 0); for (col = 0; col < cCOLS; col++) { Boolean underlined = False; Boolean blinking = False; if (flipped) move(row, cCOLS-1 - col); baddr = row*cCOLS+col; if (ea_buf[baddr].fa) { /* Field attribute. */ fa_addr = baddr; fa = ea_buf[baddr].fa; a = calc_attrs(baddr, baddr, fa, &a_underlined, &a_blinking); attrset(defattr); addch(' '); } else if (FA_IS_ZERO(fa)) { /* Blank. */ attrset(a); addch(' '); } else { /* Normal text. */ if (!(ea_buf[baddr].gr || ea_buf[baddr].fg || ea_buf[baddr].bg)) { attrset(a); underlined = a_underlined; blinking = a_blinking; } else { int b; Boolean b_underlined; Boolean b_blinking; /* * Override some of the field * attributes. */ b = calc_attrs(baddr, fa_addr, fa, &b_underlined, &b_blinking); attrset(b); underlined = b_underlined; blinking = b_blinking; } #if defined(X3270_DBCS) /*[*/ d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) { int xaddr = baddr; INC_BA(xaddr); c = ebcdic_to_unicode( (ea_buf[baddr].cc << 8) | ea_buf[xaddr].cc, CS_BASE, EUO_NONE); if (c == 0) c = ' '; cur_attr |= COMMON_LVB_LEAD_BYTE; addch(c); cur_attr &= ~COMMON_LVB_LEAD_BYTE; cur_attr |= COMMON_LVB_TRAILING_BYTE; addch(' '); cur_attr &= ~COMMON_LVB_TRAILING_BYTE; } else if (!IS_RIGHT(d)) { #endif /*]*/ c = ebcdic_to_unicode(ea_buf[baddr].cc, ea_buf[baddr].cs, appres.ascii_box_draw? EUO_ASCII_BOX: 0); if (c == 0) c = ' '; if (underlined && c == ' ') c = '_'; if (toggled(MONOCASE) && iswlower(c)) c = towupper(c); addch(blinkmap(blinking, underlined, c)); #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ } } } if (status_row) draw_oia(); attrset(defattr); if (flipped) move(cursor_addr / cCOLS, cCOLS-1 - (cursor_addr % cCOLS)); else move(cursor_addr / cCOLS, cursor_addr % cCOLS); refresh(); screen_changed = FALSE; } static const char * decode_state(int state, Boolean limited, const char *skip) { static char buf[128]; char *s = buf; char *space = ""; *s = '\0'; if (skip == CN) skip = ""; if (state & LEFT_CTRL_PRESSED) { state &= ~LEFT_CTRL_PRESSED; if (strcasecmp(skip, "LeftCtrl")) { s += sprintf(s, "%sLeftCtrl", space); space = " "; } } if (state & RIGHT_CTRL_PRESSED) { state &= ~RIGHT_CTRL_PRESSED; if (strcasecmp(skip, "RightCtrl")) { s += sprintf(s, "%sRightCtrl", space); space = " "; } } if (state & LEFT_ALT_PRESSED) { state &= ~LEFT_ALT_PRESSED; if (strcasecmp(skip, "LeftAlt")) { s += sprintf(s, "%sLeftAlt", space); space = " "; } } if (state & RIGHT_ALT_PRESSED) { state &= ~RIGHT_ALT_PRESSED; if (strcasecmp(skip, "RightAlt")) { s += sprintf(s, "%sRightAlt", space); space = " "; } } if (state & SHIFT_PRESSED) { state &= ~SHIFT_PRESSED; if (strcasecmp(skip, "Shift")) { s += sprintf(s, "%sShift", space); space = " "; } } if (state & NUMLOCK_ON) { state &= ~NUMLOCK_ON; if (!limited) { s += sprintf(s, "%sNumLock", space); space = " "; } } if (state & SCROLLLOCK_ON) { state &= ~SCROLLLOCK_ON; if (!limited) { s += sprintf(s, "%sScrollLock", space); space = " "; } } if (state & ENHANCED_KEY) { state &= ~ENHANCED_KEY; if (!limited) { s += sprintf(s, "%sEnhanced", space); space = " "; } } if (state & !limited) { s += sprintf(s, "%s?0x%x", space, state); } if (!buf[0]) { return "none"; } return buf; } /* Windows 98 version of ReadConsoleInputW(). */ static BOOL Win98ReadConsoleInputW(HANDLE h, INPUT_RECORD *ir, DWORD len, DWORD *nr) { BOOL r; /* Call the 8-bit version. */ r = ReadConsoleInputA(h, ir, len, nr); if (!r) return r; /* * Translate the 8-bit input character to Unicode. * We assume that console input uses the OEM code page. */ if ((ir->EventType == KEY_EVENT) && (ir->Event.KeyEvent.uChar.AsciiChar)) { int nc; WCHAR w; nc = MultiByteToWideChar(CP_OEMCP, 0, &ir->Event.KeyEvent.uChar.AsciiChar, 1, &w, 1); if (nc != 1) return 1; ir->Event.KeyEvent.uChar.UnicodeChar = w; } return r; } /* Keyboard input. */ static void kybd_input(void) { int rc; INPUT_RECORD ir; DWORD nr; const char *s; /* Get the next input event. */ if (is_nt) rc = ReadConsoleInputW(chandle, &ir, 1, &nr); else rc = Win98ReadConsoleInputW(chandle, &ir, 1, &nr); if (rc == 0) { fprintf(stderr, "ReadConsoleInput failed: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } if (nr == 0) return; switch (ir.EventType) { case FOCUS_EVENT: trace_event("Focus\n"); /* * When we get a focus event, the system may have (incorrectly) * redrawn our window. Do it again ourselves. */ onscreen_valid = FALSE; refresh(); break; case KEY_EVENT: if (!ir.Event.KeyEvent.bKeyDown) { /*trace_event("KeyUp\n");*/ return; } s = lookup_cname(ir.Event.KeyEvent.wVirtualKeyCode << 16, False); if (s == NULL) s = "?"; trace_event("Key%s vkey 0x%x (%s) scan 0x%x char U+%04x state 0x%x (%s)\n", ir.Event.KeyEvent.bKeyDown? "Down": "Up", ir.Event.KeyEvent.wVirtualKeyCode, s, ir.Event.KeyEvent.wVirtualScanCode, ir.Event.KeyEvent.uChar.UnicodeChar, (int)ir.Event.KeyEvent.dwControlKeyState, decode_state(ir.Event.KeyEvent.dwControlKeyState, False, CN)); if (!ir.Event.KeyEvent.bKeyDown) { return; } kybd_input2(&ir); break; case MENU_EVENT: trace_event("Menu\n"); break; case MOUSE_EVENT: trace_event("Mouse (%d,%d) ButtonState 0x%lx ControlKeyState 0x%lx EventFlags 0x%lx\n", ir.Event.MouseEvent.dwMousePosition.X, ir.Event.MouseEvent.dwMousePosition.Y, ir.Event.MouseEvent.dwButtonState, ir.Event.MouseEvent.dwControlKeyState, ir.Event.MouseEvent.dwEventFlags); /* * Really simple -- if it's a simple left-click, move the * cursor. We can get fancier later. */ if ((ir.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) && /*(ir.Event.MouseEvent.dwControlKeyState == 0) &&*/ (ir.Event.MouseEvent.dwEventFlags == 0) && (ir.Event.MouseEvent.dwMousePosition.X < COLS) && (ir.Event.MouseEvent.dwMousePosition.Y < ROWS)) { if (flipped) cursor_move( (COLS - ir.Event.MouseEvent.dwMousePosition.X) + (ir.Event.MouseEvent.dwMousePosition.Y * COLS)); else cursor_move( ir.Event.MouseEvent.dwMousePosition.X + (ir.Event.MouseEvent.dwMousePosition.Y * COLS)); } break; case WINDOW_BUFFER_SIZE_EVENT: trace_event("WindowBufferSize\n"); break; default: trace_event("Unknown input event %d\n", ir.EventType); break; } } static void trace_as_keymap(unsigned long xk, KEY_EVENT_RECORD *e) { const char *s; char buf[256]; buf[0] = '\0'; sprintf(buf, "[xk 0x%lx] ", xk); s = decode_state(e->dwControlKeyState, True, NULL); if (strcmp(s, "none")) { strcat(buf, s); strcat(buf, " "); } if (xk & 0xffff0000) { const char *n = lookup_cname(xk, False); sprintf(strchr(buf, '\0'), "%s", n? n: "???"); } else if (xk > 0x7f) { wchar_t w = xk; char c; BOOL udc = FALSE; /* * Translate to the ANSI codepage for storage in the trace * file. It will be converted to OEM by 'catf' for display * in the trace window. */ (void) WideCharToMultiByte(CP_ACP, 0, &w, 1, &c, 1, "?", &udc); if (udc) { sprintf(strchr(buf, '\0'), "U+%04lx", xk); } else { sprintf(strchr(buf, '\0'), "%c", (unsigned char)xk); } } else if (xk < ' ') { /* assume dwControlKeyState includes Ctrl... */ sprintf(strchr(buf, '\0'), "%c", (unsigned char)xk + '@'); } else if (xk == ' ') { strcat(strchr(buf, '\0'), "space"); } else if (xk == ':') { strcat(strchr(buf, '\0'), "colon"); } else { sprintf(strchr(buf, '\0'), "%c", (unsigned char)xk); } trace_event(" %s ->", buf); } static void kybd_input2(INPUT_RECORD *ir) { int k; char buf[16]; unsigned long xk; char *action; /* * Translate the INPUT_RECORD into an integer we can match keymaps * against. * * If VK and ASCII are the same and are a control char, use VK. * If VK is 0x6x, use VK. These are aliases like ADD and NUMPAD0. * Otherwise, if there's Unicode, use it. * Otherwise, use VK. */ if ((ir->Event.KeyEvent.wVirtualKeyCode == ir->Event.KeyEvent.uChar.AsciiChar) && ir->Event.KeyEvent.wVirtualKeyCode < ' ') xk = (ir->Event.KeyEvent.wVirtualKeyCode << 16) & 0xffff0000; else if ((ir->Event.KeyEvent.wVirtualKeyCode & 0xf0) == 0x60) xk = (ir->Event.KeyEvent.wVirtualKeyCode << 16) & 0xffff0000; else if (ir->Event.KeyEvent.uChar.UnicodeChar) xk = ir->Event.KeyEvent.uChar.UnicodeChar; else xk = (ir->Event.KeyEvent.wVirtualKeyCode << 16) & 0xffff0000; if (xk) { trace_as_keymap(xk, &ir->Event.KeyEvent); action = lookup_key(xk, ir->Event.KeyEvent.dwControlKeyState); if (action != CN) { if (strcmp(action, "[ignore]")) push_keymap_action(action); return; } } ia_cause = IA_DEFAULT; k = ir->Event.KeyEvent.wVirtualKeyCode; /* These first cases apply to both 3270 and NVT modes. */ switch (k) { case VK_ESCAPE: action_internal(Escape_action, IA_DEFAULT, CN, CN); return; case VK_UP: action_internal(Up_action, IA_DEFAULT, CN, CN); return; case VK_DOWN: action_internal(Down_action, IA_DEFAULT, CN, CN); return; case VK_LEFT: action_internal(Left_action, IA_DEFAULT, CN, CN); return; case VK_RIGHT: action_internal(Right_action, IA_DEFAULT, CN, CN); return; case VK_HOME: action_internal(Home_action, IA_DEFAULT, CN, CN); return; case VK_ADD: k = '+'; break; case VK_SUBTRACT: k = '+'; break; case VK_NUMPAD0: k = '0'; break; case VK_NUMPAD1: k = '1'; break; case VK_NUMPAD2: k = '2'; break; case VK_NUMPAD3: k = '3'; break; case VK_NUMPAD4: k = '4'; break; case VK_NUMPAD5: k = '5'; break; case VK_NUMPAD6: k = '6'; break; case VK_NUMPAD7: k = '7'; break; case VK_NUMPAD8: k = '8'; break; case VK_NUMPAD9: k = '9'; break; default: break; } /* Then look for 3270-only cases. */ if (IN_3270) switch(k) { /* These cases apply only to 3270 mode. */ case VK_TAB: action_internal(Tab_action, IA_DEFAULT, CN, CN); return; case VK_DELETE: action_internal(Delete_action, IA_DEFAULT, CN, CN); return; case VK_BACK: action_internal(BackSpace_action, IA_DEFAULT, CN, CN); return; case VK_RETURN: action_internal(Enter_action, IA_DEFAULT, CN, CN); return; default: break; } /* Do some NVT-only translations. */ if (IN_ANSI) switch(k) { case VK_DELETE: k = 0x7f; break; case VK_BACK: k = '\b'; break; } /* Catch PF keys. */ if (k >= VK_F1 && k <= VK_F24) { (void) sprintf(buf, "%d", k - VK_F1 + 1); action_internal(PF_action, IA_DEFAULT, buf, CN); return; } /* Then any other character. */ if (ir->Event.KeyEvent.uChar.UnicodeChar) { char ks[7]; String params[2]; Cardinal one; (void) sprintf(ks, "U+%04x", ir->Event.KeyEvent.uChar.UnicodeChar); params[0] = ks; params[1] = CN; one = 1; Key_action(NULL, NULL, params, &one); } else { trace_event(" dropped (no default)\n"); } } void screen_suspend(void) { static Boolean need_to_scroll = False; if (!isendwin) endwin(); if (!escaped) { escaped = True; if (need_to_scroll) printf("\n"); else need_to_scroll = True; RemoveInput(input_id); } } void screen_resume(void) { escaped = False; screen_disp(False); onscreen_valid = FALSE; refresh(); input_id = AddInput((int)chandle, kybd_input); } void cursor_move(int baddr) { cursor_addr = baddr; } void toggle_monocase(struct toggle *t _is_unused, enum toggle_type tt _is_unused) { screen_changed = True; screen_disp(False); } void toggle_underscore(struct toggle *t _is_unused, enum toggle_type tt _is_unused) { screen_changed = True; screen_disp(False); } /* Status line stuff. */ static Boolean status_ta = False; static Boolean status_rm = False; static Boolean status_im = False; static Boolean status_secure = False; static Boolean oia_boxsolid = False; static Boolean oia_undera = True; static Boolean oia_compose = False; static Boolean oia_printer = False; static unsigned char oia_compose_char = 0; static enum keytype oia_compose_keytype = KT_STD; #define LUCNT 8 static char oia_lu[LUCNT+1]; static char *status_msg = ""; static char *saved_status_msg = NULL; static unsigned long saved_status_timeout; static void cancel_status_push(void) { saved_status_msg = NULL; if (saved_status_timeout) { RemoveTimeOut(saved_status_timeout); saved_status_timeout = 0; } } void status_ctlr_done(void) { oia_undera = True; } void status_insert_mode(Boolean on) { status_im = on; } static void status_pop(void) { status_msg = saved_status_msg; saved_status_msg = NULL; saved_status_timeout = 0; } void status_push(char *msg) { if (saved_status_msg != NULL) { /* Already showing something. */ RemoveTimeOut(saved_status_timeout); } else { saved_status_msg = status_msg; } saved_status_timeout = AddTimeOut(STATUS_PUSH_MS, status_pop); status_msg = msg; } void status_minus(void) { cancel_status_push(); status_msg = "X -f"; } void status_oerr(int error_type) { cancel_status_push(); switch (error_type) { case KL_OERR_PROTECTED: status_msg = "X Protected"; break; case KL_OERR_NUMERIC: status_msg = "X Numeric"; break; case KL_OERR_OVERFLOW: status_msg = "X Overflow"; break; } } void status_reset(void) { cancel_status_push(); if (!CONNECTED) status_msg = "X Disconnect"; else if (kybdlock & KL_ENTER_INHIBIT) status_msg = "X Inhibit"; else if (kybdlock & KL_DEFERRED_UNLOCK) status_msg = "X"; else status_msg = ""; } void status_reverse_mode(Boolean on) { status_rm = on; } void status_syswait(void) { cancel_status_push(); status_msg = "X SYSTEM"; } void status_twait(void) { cancel_status_push(); oia_undera = False; status_msg = "X Wait"; } void status_typeahead(Boolean on) { status_ta = on; } void status_compose(Boolean on, unsigned char c, enum keytype keytype) { oia_compose = on; oia_compose_char = c; oia_compose_keytype = keytype; } void status_lu(const char *lu) { if (lu != NULL) { (void) strncpy(oia_lu, lu, LUCNT); oia_lu[LUCNT] = '\0'; } else (void) memset(oia_lu, '\0', sizeof(oia_lu)); } static void status_connect(Boolean connected) { cancel_status_push(); if (connected) { oia_boxsolid = IN_3270 && !IN_SSCP; if (kybdlock & KL_AWAITING_FIRST) status_msg = "X"; else status_msg = ""; #if defined(HAVE_LIBSSL) /*[*/ status_secure = secure_connection; #endif /*]*/ } else { oia_boxsolid = False; status_msg = "X Disconnected"; status_secure = False; } } static void status_3270_mode(Boolean ignored _is_unused) { oia_boxsolid = IN_3270 && !IN_SSCP; if (oia_boxsolid) oia_undera = True; } static void status_printer(Boolean on) { oia_printer = on; } static void draw_oia(void) { int rmargin; int i, j; rmargin = maxCOLS - 1; /* Make sure the status line region is filled in properly. */ attrset(defattr); move(maxROWS, 0); for (i = maxROWS; i < status_row; i++) { for (j = 0; j <= rmargin; j++) { printw(" "); } } move(status_row, 0); for (i = 0; i <= rmargin; i++) { printw(" "); } if (appres.m3279) attrset(cmap_fg[HOST_COLOR_NEUTRAL_BLACK] | cmap_bg[HOST_COLOR_GREY]); else attrset(reverse_colors(defattr)); mvprintw(status_row, 0, "4"); if (oia_undera) printw("%c", IN_E? 'B': 'A'); else printw(" "); if (IN_ANSI) printw("N"); else if (oia_boxsolid) printw(" "); else if (IN_SSCP) printw("S"); else printw("?"); if (appres.m3279) attrset(cmap_fg[HOST_COLOR_GREY] | cmap_bg[HOST_COLOR_NEUTRAL_BLACK]); else attrset(defattr); mvprintw(status_row, 8, "%-35.35s", status_msg); mvprintw(status_row, rmargin-36, "%c%c %c %c%c%c", oia_compose? 'C': ' ', oia_compose? oia_compose_char: ' ', status_ta? 'T': ' ', status_rm? 'R': ' ', status_im? 'I': ' ', oia_printer? 'P': ' '); if (status_secure) { attrset(cmap_fg[HOST_COLOR_GREEN] | cmap_bg[HOST_COLOR_NEUTRAL_BLACK]); printw("S"); if (appres.m3279) attrset(cmap_fg[HOST_COLOR_GREY] | cmap_bg[HOST_COLOR_NEUTRAL_BLACK]); else attrset(defattr); } else printw(" "); mvprintw(status_row, rmargin-25, "%s", oia_lu); mvprintw(status_row, rmargin-7, "%03d/%03d", cursor_addr/cCOLS + 1, cursor_addr%cCOLS + 1); } void Redraw_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { if (!escaped) { onscreen_valid = FALSE; refresh(); } } void ring_bell(void) { /* * Always flash the window. * Unless they specified visualBell, beep too. */ if (console_window != NULL) { FLASHWINFO w; memset(&w, '\0', sizeof(FLASHWINFO)); w.cbSize = sizeof(FLASHWINFO); w.hwnd = console_window; w.dwFlags = FLASHW_ALL; w.uCount = 2; w.dwTimeout = 250; /* 1/4s */ FlashWindowEx(&w); } if (!appres.visual_bell) { MessageBeep(-1); } } void screen_flip(void) { flipped = !flipped; screen_changed = True; screen_disp(False); } void screen_132(void) { } void screen_80(void) { } /* * Windows-specific Paste action, that takes advantage of the existing x3270 * instrastructure for multi-line paste. */ void Paste_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { HGLOBAL hglb; LPTSTR lptstr; UINT format = is_nt? CF_UNICODETEXT: CF_TEXT; action_debug(Paste_action, event, params, num_params); if (check_usage(Paste_action, *num_params, 0, 0) < 0) return; if (!IsClipboardFormatAvailable(format)) return; if (!OpenClipboard(NULL)) return; hglb = GetClipboardData(format); if (hglb != NULL) { lptstr = GlobalLock(hglb); if (lptstr != NULL) { if (is_nt) { int sl = 0; wchar_t *w = (wchar_t *)lptstr; ucs4_t *u; ucs4_t *us; int i; for (i = 0; *w != 0x0000; i++, w++) { sl++; } us = u = Malloc(sl * sizeof(ucs4_t)); /* * Expand from UCS-2 to UCS-4. * XXX: It isn't UCS-2, it's UTF-16. */ w = (wchar_t *)lptstr; for (i = 0; i < sl; i++) { *us++ = *w++; } emulate_uinput(u, sl, True); Free(u); } else { emulate_input(lptstr, strlen(lptstr), True); } GlobalUnlock(hglb); } } CloseClipboard(); } /* Set the window title. */ void screen_title(char *text) { (void) SetConsoleTitle(text); } void Title_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Title_action, event, params, num_params); if (check_usage(Title_action, *num_params, 1, 1) < 0) return; screen_title(params[0]); } static void relabel(Boolean ignored _is_unused) { char *title; if (appres.title != CN) return; if (PCONNECTED) { char *hostname; if (profile_name != CN) hostname = profile_name; else hostname = reconnect_host; title = Malloc(10 + (PCONNECTED ? strlen(hostname) : 0)); (void) sprintf(title, "%s - wc3270", hostname); screen_title(title); Free(title); } else { screen_title("wc3270"); } } /* Get the window handle for the console. */ static HWND GetConsoleHwnd(void) { #define MY_BUFSIZE 1024 // Buffer size for console window titles. HWND hwndFound; // This is what is returned to the caller. char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated // WindowTitle. char pszOldWindowTitle[MY_BUFSIZE]; // Contains original // WindowTitle. // // Fetch current window title. GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE); // Format a "unique" NewWindowTitle. wsprintf(pszNewWindowTitle,"%d/%d", GetTickCount(), GetCurrentProcessId()); // Change current window title. SetConsoleTitle(pszNewWindowTitle); // Ensure window title has been updated. Sleep(40); // Look for NewWindowTitle. hwndFound=FindWindow(NULL, pszNewWindowTitle); // Restore original window title. SetConsoleTitle(pszOldWindowTitle); return(hwndFound); } /* * Read and discard a (printable) key-down event from the console. * Returns True if the key is 'q'. */ Boolean screen_wait_for_key(void) { INPUT_RECORD ir; DWORD nr; /* Get the next keyboard input event. */ do { ReadConsoleInputA(chandle, &ir, 1, &nr); } while ((ir.EventType != KEY_EVENT) || !ir.Event.KeyEvent.bKeyDown || (ir.Event.KeyEvent.uChar.AsciiChar & 0xff) < ' '); return (ir.Event.KeyEvent.uChar.AsciiChar == 'q') || (ir.Event.KeyEvent.uChar.AsciiChar == 'Q'); } ibm-3270-3.3.10ga4/wc3270/XtGlue.c0000644000175000017500000004265611254565704015505 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* glue for missing Xt code */ #include "globals.h" #if defined(_WIN32) /*[*/ #include "appres.h" #include "trace_dsc.h" #include "xioc.h" #endif /*]*/ #include #include #include #include #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #if defined(_WIN32) /*[*/ #include #else /*][*/ #if defined(SEPARATE_SELECT_H) /*[*/ #include #endif /*]*/ #endif /*]*/ #define InputReadMask 0x1 #define InputExceptMask 0x2 #define InputWriteMask 0x4 #define MILLION 1000000L void (*Warning_redirect)(const char *) = NULL; void Error(const char *s) { fprintf(stderr, "Error: %s\n", s); #if defined(WC3270) /*[*/ x3270_exit(1); #else /*][*/ exit(1); #endif /*]*/ } void Warning(const char *s) { #if defined(C3270) /*[*/ extern Boolean any_error_output; #endif /*]*/ if (Warning_redirect != NULL) (*Warning_redirect)(s); else fprintf(stderr, "Warning: %s\n", s); #if defined(C3270) /*[*/ any_error_output = True; #endif /*]*/ } void * Malloc(size_t len) { char *r; r = malloc(len); if (r == (char *)NULL) Error("Out of memory"); return r; } void * Calloc(size_t nelem, size_t elsize) { char *r; r = malloc(nelem * elsize); if (r == (char *)NULL) Error("Out of memory"); return memset(r, '\0', nelem * elsize); } void * Realloc(void *p, size_t len) { p = realloc(p, len); if (p == NULL) Error("Out of memory"); return p; } void Free(void *p) { if (p != NULL) free(p); } char * NewString(const char *s) { return strcpy(Malloc(strlen(s) + 1), s); } static struct { /*const*/ char *name; /* not const because of ancient X11 API */ KeySym keysym; } latin1[] = { { "space", XK_space }, { "exclam", XK_exclam }, { "quotedbl", XK_quotedbl }, { "numbersign", XK_numbersign }, { "dollar", XK_dollar }, { "percent", XK_percent }, { "ampersand", XK_ampersand }, { "apostrophe", XK_apostrophe }, { "quoteright", XK_quoteright }, { "parenleft", XK_parenleft }, { "parenright", XK_parenright }, { "asterisk", XK_asterisk }, { "plus", XK_plus }, { "comma", XK_comma }, { "minus", XK_minus }, { "period", XK_period }, { "slash", XK_slash }, { "0", XK_0 }, { "1", XK_1 }, { "2", XK_2 }, { "3", XK_3 }, { "4", XK_4 }, { "5", XK_5 }, { "6", XK_6 }, { "7", XK_7 }, { "8", XK_8 }, { "9", XK_9 }, { "colon", XK_colon }, { "semicolon", XK_semicolon }, { "less", XK_less }, { "equal", XK_equal }, { "greater", XK_greater }, { "question", XK_question }, { "at", XK_at }, { "A", XK_A }, { "B", XK_B }, { "C", XK_C }, { "D", XK_D }, { "E", XK_E }, { "F", XK_F }, { "G", XK_G }, { "H", XK_H }, { "I", XK_I }, { "J", XK_J }, { "K", XK_K }, { "L", XK_L }, { "M", XK_M }, { "N", XK_N }, { "O", XK_O }, { "P", XK_P }, { "Q", XK_Q }, { "R", XK_R }, { "S", XK_S }, { "T", XK_T }, { "U", XK_U }, { "V", XK_V }, { "W", XK_W }, { "X", XK_X }, { "Y", XK_Y }, { "Z", XK_Z }, { "bracketleft", XK_bracketleft }, { "backslash", XK_backslash }, { "bracketright", XK_bracketright }, { "asciicircum", XK_asciicircum }, { "underscore", XK_underscore }, { "grave", XK_grave }, { "quoteleft", XK_quoteleft }, { "a", XK_a }, { "b", XK_b }, { "c", XK_c }, { "d", XK_d }, { "e", XK_e }, { "f", XK_f }, { "g", XK_g }, { "h", XK_h }, { "i", XK_i }, { "j", XK_j }, { "k", XK_k }, { "l", XK_l }, { "m", XK_m }, { "n", XK_n }, { "o", XK_o }, { "p", XK_p }, { "q", XK_q }, { "r", XK_r }, { "s", XK_s }, { "t", XK_t }, { "u", XK_u }, { "v", XK_v }, { "w", XK_w }, { "x", XK_x }, { "y", XK_y }, { "z", XK_z }, { "braceleft", XK_braceleft }, { "bar", XK_bar }, { "braceright", XK_braceright }, { "asciitilde", XK_asciitilde }, { "nobreakspace", XK_nobreakspace }, { "exclamdown", XK_exclamdown }, { "cent", XK_cent }, { "sterling", XK_sterling }, { "currency", XK_currency }, { "yen", XK_yen }, { "brokenbar", XK_brokenbar }, { "section", XK_section }, { "diaeresis", XK_diaeresis }, { "copyright", XK_copyright }, { "ordfeminine", XK_ordfeminine }, { "guillemotleft", XK_guillemotleft }, { "notsign", XK_notsign }, { "hyphen", XK_hyphen }, { "registered", XK_registered }, { "macron", XK_macron }, { "degree", XK_degree }, { "plusminus", XK_plusminus }, { "twosuperior", XK_twosuperior }, { "threesuperior", XK_threesuperior }, { "acute", XK_acute }, { "mu", XK_mu }, { "paragraph", XK_paragraph }, { "periodcentered", XK_periodcentered }, { "cedilla", XK_cedilla }, { "onesuperior", XK_onesuperior }, { "masculine", XK_masculine }, { "guillemotright", XK_guillemotright }, { "onequarter", XK_onequarter }, { "onehalf", XK_onehalf }, { "threequarters", XK_threequarters }, { "questiondown", XK_questiondown }, { "Agrave", XK_Agrave }, { "Aacute", XK_Aacute }, { "Acircumflex", XK_Acircumflex }, { "Atilde", XK_Atilde }, { "Adiaeresis", XK_Adiaeresis }, { "Aring", XK_Aring }, { "AE", XK_AE }, { "Ccedilla", XK_Ccedilla }, { "Egrave", XK_Egrave }, { "Eacute", XK_Eacute }, { "Ecircumflex", XK_Ecircumflex }, { "Ediaeresis", XK_Ediaeresis }, { "Igrave", XK_Igrave }, { "Iacute", XK_Iacute }, { "Icircumflex", XK_Icircumflex }, { "Idiaeresis", XK_Idiaeresis }, { "ETH", XK_ETH }, { "Eth", XK_Eth }, { "Ntilde", XK_Ntilde }, { "Ograve", XK_Ograve }, { "Oacute", XK_Oacute }, { "Ocircumflex", XK_Ocircumflex }, { "Otilde", XK_Otilde }, { "Odiaeresis", XK_Odiaeresis }, { "multiply", XK_multiply }, { "Ooblique", XK_Ooblique }, { "Ugrave", XK_Ugrave }, { "Uacute", XK_Uacute }, { "Ucircumflex", XK_Ucircumflex }, { "Udiaeresis", XK_Udiaeresis }, { "Yacute", XK_Yacute }, { "THORN", XK_THORN }, { "Thorn", XK_Thorn }, { "ssharp", XK_ssharp }, { "agrave", XK_agrave }, { "aacute", XK_aacute }, { "acircumflex", XK_acircumflex }, { "atilde", XK_atilde }, { "adiaeresis", XK_adiaeresis }, { "aring", XK_aring }, { "ae", XK_ae }, { "ccedilla", XK_ccedilla }, { "egrave", XK_egrave }, { "eacute", XK_eacute }, { "ecircumflex", XK_ecircumflex }, { "ediaeresis", XK_ediaeresis }, { "igrave", XK_igrave }, { "iacute", XK_iacute }, { "icircumflex", XK_icircumflex }, { "idiaeresis", XK_idiaeresis }, { "eth", XK_eth }, { "ntilde", XK_ntilde }, { "ograve", XK_ograve }, { "oacute", XK_oacute }, { "ocircumflex", XK_ocircumflex }, { "otilde", XK_otilde }, { "odiaeresis", XK_odiaeresis }, { "division", XK_division }, { "oslash", XK_oslash }, { "ugrave", XK_ugrave }, { "uacute", XK_uacute }, { "ucircumflex", XK_ucircumflex }, { "udiaeresis", XK_udiaeresis }, { "yacute", XK_yacute }, { "thorn", XK_thorn }, { "ydiaeresis", XK_ydiaeresis }, /* * The following are, umm, hacks to allow symbolic names for * control codes. */ #if !defined(_WIN32) /*[*/ { "BackSpace", 0x08 }, { "Tab", 0x09 }, { "Linefeed", 0x0a }, { "Return", 0x0d }, { "Escape", 0x1b }, { "Delete", 0x7f }, #endif /*]*/ { (char *)NULL, NoSymbol } }; KeySym StringToKeysym(char *s) { int i; if (strlen(s) == 1 && (*(unsigned char *)s & 0x7f) > ' ') return (KeySym)*(unsigned char *)s; for (i = 0; latin1[i].name != (char *)NULL; i++) { if (!strcmp(s, latin1[i].name)) return latin1[i].keysym; } return NoSymbol; } char * KeysymToString(KeySym k) { int i; for (i = 0; latin1[i].name != (char *)NULL; i++) { if (latin1[i].keysym == k) return latin1[i].name; } return (char *)NULL; } /* Timeouts. */ #if defined(_WIN32) /*[*/ static void ms_ts(unsigned long long *u) { FILETIME t; /* Get the system time, in 100ns units. */ GetSystemTimeAsFileTime(&t); memcpy(u, &t, sizeof(unsigned long long)); /* Divide by 10,000 to get ms. */ *u /= 10000ULL; } #endif /*]*/ typedef struct timeout { struct timeout *next; #if defined(_WIN32) /*[*/ unsigned long long ts; #else /*][*/ struct timeval tv; #endif /*]*/ void (*proc)(void); Boolean in_play; } timeout_t; #define TN (timeout_t *)NULL static timeout_t *timeouts = TN; unsigned long AddTimeOut(unsigned long interval_ms, void (*proc)(void)) { timeout_t *t_new; timeout_t *t; timeout_t *prev = TN; t_new = (timeout_t *)Malloc(sizeof(timeout_t)); t_new->proc = proc; t_new->in_play = False; #if defined(_WIN32) /*[*/ ms_ts(&t_new->ts); t_new->ts += interval_ms; #else /*][*/ (void) gettimeofday(&t_new->tv, NULL); t_new->tv.tv_sec += interval_ms / 1000L; t_new->tv.tv_usec += (interval_ms % 1000L) * 1000L; if (t_new->tv.tv_usec > MILLION) { t_new->tv.tv_sec += t_new->tv.tv_usec / MILLION; t_new->tv.tv_usec %= MILLION; } #endif /*]*/ /* Find where to insert this item. */ for (t = timeouts; t != TN; t = t->next) { #if defined(_WIN32) /*[*/ if (t->ts > t_new->ts) #else /*][*/ if (t->tv.tv_sec > t_new->tv.tv_sec || (t->tv.tv_sec == t_new->tv.tv_sec && t->tv.tv_usec > t_new->tv.tv_usec)) #endif /*]*/ break; prev = t; } /* Insert it. */ if (prev == TN) { /* Front. */ t_new->next = timeouts; timeouts = t_new; } else if (t == TN) { /* Rear. */ t_new->next = TN; prev->next = t_new; } else { /* Middle. */ t_new->next = t; prev->next = t_new; } return (unsigned long)t_new; } void RemoveTimeOut(unsigned long timer) { timeout_t *st = (timeout_t *)timer; timeout_t *t; timeout_t *prev = TN; if (st->in_play) return; for (t = timeouts; t != TN; t = t->next) { if (t == st) { if (prev != TN) prev->next = t->next; else timeouts = t->next; Free(t); return; } prev = t; } } /* Input events. */ typedef struct input { struct input *next; int source; int condition; void (*proc)(void); } input_t; static input_t *inputs = (input_t *)NULL; static Boolean inputs_changed = False; unsigned long AddInput(int source, void (*fn)(void)) { input_t *ip; ip = (input_t *)Malloc(sizeof(input_t)); ip->source = source; ip->condition = InputReadMask; ip->proc = fn; ip->next = inputs; inputs = ip; inputs_changed = True; return (unsigned long)ip; } unsigned long AddExcept(int source, void (*fn)(void)) { #if defined(_WIN32) /*[*/ return 0; #else /*][*/ input_t *ip; ip = (input_t *)Malloc(sizeof(input_t)); ip->source = source; ip->condition = InputExceptMask; ip->proc = fn; ip->next = inputs; inputs = ip; inputs_changed = True; return (unsigned long)ip; #endif /*]*/ } #if !defined(_WIN32) /*[*/ unsigned long AddOutput(int source, void (*fn)(void)) { input_t *ip; ip = (input_t *)Malloc(sizeof(input_t)); ip->source = source; ip->condition = InputWriteMask; ip->proc = fn; ip->next = inputs; inputs = ip; inputs_changed = True; return (unsigned long)ip; } #endif /*]*/ void RemoveInput(unsigned long id) { input_t *ip; input_t *prev = (input_t *)NULL; for (ip = inputs; ip != (input_t *)NULL; ip = ip->next) { if (ip == (input_t *)id) break; prev = ip; } if (ip == (input_t *)NULL) return; if (prev != (input_t *)NULL) prev->next = ip->next; else inputs = ip->next; Free(ip); inputs_changed = True; } #if !defined(_WIN32) /*[*/ /* * Modify the passed-in parameters so they reflect the values needed for * select(). */ int select_setup(int *nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval **timeout, struct timeval *timebuf) { input_t *ip; int r = 0; for (ip = inputs; ip != (input_t *)NULL; ip = ip->next) { if ((unsigned long)ip->condition & InputReadMask) { FD_SET(ip->source, readfds); if (ip->source >= *nfds) *nfds = ip->source + 1; r = 1; } if ((unsigned long)ip->condition & InputWriteMask) { FD_SET(ip->source, writefds); if (ip->source >= *nfds) *nfds = ip->source + 1; r = 1; } if ((unsigned long)ip->condition & InputExceptMask) { FD_SET(ip->source, exceptfds); if (ip->source >= *nfds) *nfds = ip->source + 1; r = 1; } } if (timeouts != TN) { struct timeval now, twait; (void) gettimeofday(&now, (void *)NULL); twait.tv_sec = timeouts->tv.tv_sec - now.tv_sec; twait.tv_usec = timeouts->tv.tv_usec - now.tv_usec; if (twait.tv_usec < 0L) { twait.tv_sec--; twait.tv_usec += MILLION; } if (twait.tv_sec < 0L) twait.tv_sec = twait.tv_usec = 0L; if (*timeout == NULL) { /* No timeout yet -- we're it. */ *timebuf = twait; *timeout = timebuf; r = 1; } else if (twait.tv_sec < (*timeout)->tv_sec || (twait.tv_sec == (*timeout)->tv_sec && twait.tv_usec < (*timeout)->tv_usec)) { /* We're sooner than what they're waiting for. */ **timeout = twait; r = 1; } } return r; } #endif /*]*/ #if defined(_WIN32) /*[*/ #define MAX_HA 256 #endif /*]*/ /* Event dispatcher. */ Boolean process_events(Boolean block) { #if defined(_WIN32) /*[*/ HANDLE ha[MAX_HA]; DWORD nha; DWORD tmo; DWORD ret; unsigned long long now; int i; #else /*][*/ fd_set rfds, wfds, xfds; int ns; struct timeval now, twait, *tp; #endif /*]*/ input_t *ip, *ip_next; struct timeout *t; Boolean any_events; Boolean processed_any = False; processed_any = False; retry: /* If we've processed any input, then don't block again. */ if (processed_any) block = False; any_events = False; #if defined(_WIN32) /*[*/ nha = 0; #else /*][*/ FD_ZERO(&rfds); FD_ZERO(&wfds); FD_ZERO(&xfds); #endif /*]*/ for (ip = inputs; ip != (input_t *)NULL; ip = ip->next) { if ((unsigned long)ip->condition & InputReadMask) { #if defined(_WIN32) /*[*/ ha[nha++] = (HANDLE)ip->source; #else /*][*/ FD_SET(ip->source, &rfds); #endif /*]*/ any_events = True; } #if !defined(_WIN32) /*[*/ if ((unsigned long)ip->condition & InputWriteMask) { FD_SET(ip->source, &wfds); any_events = True; } if ((unsigned long)ip->condition & InputExceptMask) { FD_SET(ip->source, &xfds); any_events = True; } #endif /*]*/ } if (block) { if (timeouts != TN) { #if defined(_WIN32) /*[*/ ms_ts(&now); if (now > timeouts->ts) tmo = 0; else tmo = timeouts->ts - now; #else /*][*/ (void) gettimeofday(&now, (void *)NULL); twait.tv_sec = timeouts->tv.tv_sec - now.tv_sec; twait.tv_usec = timeouts->tv.tv_usec - now.tv_usec; if (twait.tv_usec < 0L) { twait.tv_sec--; twait.tv_usec += MILLION; } if (twait.tv_sec < 0L) twait.tv_sec = twait.tv_usec = 0L; tp = &twait; #endif /*]*/ any_events = True; } else { #if defined(_WIN32) /*[*/ tmo = INFINITE; #else /*][*/ tp = (struct timeval *)NULL; #endif /*]*/ } } else { #if defined(_WIN32) /*[*/ tmo = 1; #else /*][*/ twait.tv_sec = twait.tv_usec = 0L; tp = &twait; #endif /*]*/ } if (!any_events) return processed_any; #if defined(_WIN32) /*[*/ ret = WaitForMultipleObjects(nha, ha, FALSE, tmo); if (ret == WAIT_FAILED) { #else /*][*/ ns = select(FD_SETSIZE, &rfds, &wfds, &xfds, tp); if (ns < 0) { if (errno != EINTR) Warning("process_events: select() failed"); #endif /*]*/ return processed_any; } inputs_changed = False; #if defined(_WIN32) /*[*/ for (i = 0, ip = inputs; ip != (input_t *)NULL; ip = ip_next, i++) { #else /*][*/ for (ip = inputs; ip != (input_t *)NULL; ip = ip_next) { #endif /*]*/ ip_next = ip->next; if (((unsigned long)ip->condition & InputReadMask) && #if defined(_WIN32) /*[*/ ret == WAIT_OBJECT_0 + i) { #else /*][*/ FD_ISSET(ip->source, &rfds)) { #endif /*]*/ (*ip->proc)(); processed_any = True; if (inputs_changed) goto retry; } #if !defined(_WIN32) /*[*/ if (((unsigned long)ip->condition & InputWriteMask) && FD_ISSET(ip->source, &wfds)) { (*ip->proc)(); processed_any = True; if (inputs_changed) goto retry; } if (((unsigned long)ip->condition & InputExceptMask) && FD_ISSET(ip->source, &xfds)) { (*ip->proc)(); processed_any = True; if (inputs_changed) goto retry; } #endif /*]*/ } /* See what's expired. */ if (timeouts != TN) { #if defined(_WIN32) /*[*/ ms_ts(&now); #else /*][*/ (void) gettimeofday(&now, (void *)NULL); #endif /*]*/ while ((t = timeouts) != TN) { #if defined(_WIN32) /*[*/ if (t->ts <= now) { #else /*][*/ if (t->tv.tv_sec < now.tv_sec || (t->tv.tv_sec == now.tv_sec && t->tv.tv_usec < now.tv_usec)) { #endif /*]*/ timeouts = t->next; t->in_play = True; (*t->proc)(); processed_any = True; Free(t); } else break; } } if (inputs_changed) goto retry; return processed_any; } ibm-3270-3.3.10ga4/wc3270/screen.h0000644000175000017500000000316111254565673015552 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of screen.h */ #define SELECTED(baddr) False extern int *char_width, *char_height; ibm-3270-3.3.10ga4/wc3270/utf8.c0000644000175000017500000001545611254565704015161 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utf8.c * 3270 Terminal Emulator * UTF-8 conversions */ #include "globals.h" #include "popupsc.h" #include "utf8c.h" char *locale_codeset = CN; Boolean is_utf8 = False; /* * Save the codeset from the locale, and set globals based on known values. */ void set_codeset(char *codeset_name) { #if !defined(TCL3270) /*[*/ is_utf8 = (!strcasecmp(codeset_name, "utf-8") || !strcasecmp(codeset_name, "utf8") || !strcasecmp(codeset_name, "utf_8")); #else /*][*/ /* * tcl3270 is always in UTF-8 mode, because it needs to * supply UTF-8 strings to libtcl and vice-versa. */ is_utf8 = True; #endif /*]*/ Replace(locale_codeset, NewString(codeset_name)); } /* * Convert from UCS-4 to UTF-8. * Returns: * >0: length of converted character * -1: invalid UCS-4 */ int unicode_to_utf8(ucs4_t ucs4, char *utf8) { if (ucs4 & 0x80000000) return -1; if (ucs4 <= 0x0000007f) { utf8[0] = ucs4 & 0x7f; /* 7 bits */ return 1; } else if (ucs4 <= 0x000007ff) { utf8[0] = 0xc0 | ((ucs4 >> 6) & 0x1f); /* upper 5 bits */ utf8[1] = 0x80 | (ucs4 & 0x3f); /* lower 6 bits */ return 2; } else if (ucs4 <= 0x0000ffff) { utf8[0] = 0xe0 | ((ucs4 >> 12) & 0x0f); /* upper 4 bits */ utf8[1] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 3; } else if (ucs4 <= 0x001fffff) { utf8[0] = 0xf0 | ((ucs4 >> 18) & 0x07); /* upper 3 bits */ utf8[1] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 4; } else if (ucs4 <= 0x03ffffff) { utf8[0] = 0xf8 | ((ucs4 >> 24) & 0x03); /* upper 2 bits */ utf8[1] = 0x80 | ((ucs4 >> 18) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[4] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 5; } else { utf8[0] = 0xfc | ((ucs4 >> 30) & 0x01); /* upper 1 bit */ utf8[1] = 0x80 | ((ucs4 >> 24) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 18) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[4] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[5] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 6; } } /* * Convert at most 'len' bytes from a UTF-8 string to one UCS-4 character. * Returns: * >0: Number of characters consumed. * 0: Incomplete sequence. * -1: Invalid sequence. * -2: Illegal (too-long) encoding. * -3: Invalid lead byte. * * An invalid sequence can be either improperly composed, or using the wrong * encoding length (often used to get past spam filters and such). */ int utf8_to_unicode(const char *utf8, int len, ucs4_t *ucs4) { /* No input is by definition incomplete. */ if (!len) return 0; /* See if it's ASCII-7. */ if ((utf8[0] & 0xff) < 0x80) { *ucs4 = utf8[0] & 0x7f; return 1; } /* Now check for specific UTF-8 leading bytes. */ if ((utf8[0] & 0xe0) == 0xc0) { /* 110xxxxx 10xxxxxx * 0x00000080-0x000007ff */ if (len < 2) return 0; if ((utf8[1] & 0xc0) != 0x80) return -1; *ucs4 = ((utf8[0] << 6) & 0x7c0) | (utf8[1] & 0x03f); if (*ucs4 < 0x00000080) return -1; return 2; } if ((utf8[0] & 0xf0) == 0xe0) { /* 1110xxxx 10xxxxxx 10xxxxxx * 0x00000800-0x0000ffff */ if (len < 3) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 12) & 0xf000) | ((utf8[1] << 6) & 0x0fc0) | ((utf8[2]) & 0x003f); if (*ucs4 < 0x00000800) return -2; return 3; } if ((utf8[0] & 0xf8) == 0xf0) { /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x00010000-0x001fffff */ if (len < 4) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 18) & 0x1c0000) | ((utf8[1] << 12) & 0x03f000) | ((utf8[2] << 6) & 0x000fc0) | ((utf8[3]) & 0x00003f); if (*ucs4 < 0x00010000) return -2; return 4; } if ((utf8[0] & 0xfc) == 0xf8) { /* 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x00200000-0x03ffffff */ if (len < 5) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80) || ((utf8[4] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 24) & 0x3000000) | ((utf8[1] << 18) & 0x0fc0000) | ((utf8[2] << 12) & 0x003f000) | ((utf8[3] << 6) & 0x0000fc0) | ((utf8[4]) & 0x000003f); if (*ucs4 < 0x00200000) return -2; return 5; } if ((utf8[0] & 0xfe) == 0xfc) { /* 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x04000000-0x7fffffff */ if (len < 6) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80) || ((utf8[4] & 0xc0) != 0x80) || ((utf8[5] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 30) & 0x40000000) | ((utf8[1] << 24) & 0x3f000000) | ((utf8[2] << 18) & 0x00fc0000) | ((utf8[3] << 12) & 0x0003f000) | ((utf8[4] << 6) & 0x00000fc0) | ((utf8[5]) & 0x0000003f); if (*ucs4 < 0x04000000) return -2; return 6; } return -3; } ibm-3270-3.3.10ga4/wc3270/screenc.h0000644000175000017500000000626411254565674015725 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* c3270 version of screenc.h */ #define blink_start() #define display_heightMM() 100 #define display_height() 1 #define display_widthMM() 100 #define display_width() 1 #define mcursor_locked() #define mcursor_normal() #define mcursor_waiting() #define screen_obscured() False #define screen_scroll() extern void cursor_move(int baddr); extern void ring_bell(void); extern void screen_132(void); extern void screen_80(void); extern void screen_disp(Boolean erasing); extern void screen_init(void); extern void screen_flip(void); extern void screen_resume(void); extern void screen_suspend(void); extern FILE *start_pager(void); #if defined(WC3270) /*[*/ extern void pager_output(const char *s); extern Boolean screen_wait_for_key(void); #endif /*]*/ extern void toggle_monocase(struct toggle *t, enum toggle_type tt); extern Boolean escaped; extern void Escape_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Help_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Redraw_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Trace_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Show_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(WC3270) /*[*/ extern void Paste_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Title_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void screen_title(char *text); extern int windows_cp; #endif /*]*/ #if defined(C3270) /*[*/ extern void toggle_underscore(struct toggle *t, enum toggle_type type); #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/help.c0000644000175000017500000003437111254565674015226 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * Help.c * Help information for c3270. */ #include "globals.h" #include "appres.h" #include "resources.h" #include "actionsc.h" #include "gluec.h" #include "popupsc.h" #include "screenc.h" #define P_3270 0x0001 /* 3270 actions */ #define P_SCRIPTING 0x0002 /* scripting actions */ #define P_INTERACTIVE 0x0004 /* interactive (command-prompt) actions */ #define P_OPTIONS 0x0008 /* command-line options */ #define P_TRANSFER 0x0010 /* file transfer options */ #if defined(WC3270) /*[*/ #define PROGRAM "wc3270" #else /*][*/ #define PROGRAM "c3270" #endif /*]*/ static struct { const char *name; const char *args; int purpose; const char *help; } cmd_help[] = { #if defined(X3270_SCRIPT) /*[*/ { "Abort", CN, P_SCRIPTING, "Abort pending scripts and macros" }, { "AnsiText", CN, P_SCRIPTING, "Dump pending NVT text" }, #endif /*]*/ { "Ascii", CN, P_SCRIPTING, "Screen contents in ASCII" }, { "Ascii", "", P_SCRIPTING, " bytes of screen contents from cursor, in ASCII" }, { "Ascii", " ", P_SCRIPTING, " bytes of screen contents from ,, in ASCII" }, { "Ascii", " ", P_SCRIPTING, "x of screen contents from ,, in ASCII" }, { "AsciiField", CN, P_SCRIPTING, "Contents of current field, in ASCII" }, { "Attn", CN, P_3270, "Send 3270 ATTN sequence (TELNET IP)" }, { "BackSpace", CN, P_3270, "Move cursor left" }, { "BackTab", CN, P_3270, "Move to previous field" }, #if defined(X3270_SCRIPT) /*[*/ { "Bell", CN, P_SCRIPTING, "Ring the terminal bell" }, #endif /*]*/ { "CircumNot", CN, P_3270, "Send ~ in NVT mode, \254 in 3270 mode" }, { "Clear", CN, P_3270, "Send CLEAR AID (clear screen)" }, { "Close", CN, P_INTERACTIVE, "Alias for 'Disconnect'" }, #if defined(X3270_SCRIPT) /*[*/ { "CloseScript", CN, P_SCRIPTING, "Exit peer script" }, #endif /*]*/ { "Compose", CN, P_INTERACTIVE, "Interpret next two keystrokes according to the compose map" }, { "Connect", "[@][:]", P_INTERACTIVE, "Open connection to " }, #if defined(LOCAL_PROCESS) /*[*/ { "Connect", "-e [ [...]]", P_INTERACTIVE, "Open connection to a local shell or command" }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "ContinueScript", CN, P_SCRIPTING, "Resume paused script" }, #endif /*]*/ { "CursorSelect", CN, P_3270, "Light pen select at cursor location" }, { "Delete", CN, P_3270, "Delete character at cursor" }, { "DeleteField", CN, P_3270, "Erase field at cursor location (^U)" }, { "DeleteWord", CN, P_3270, "Erase word before cursor location (^W)" }, { "Disconnect", CN, P_INTERACTIVE, "Close connection to host" }, { "Down", CN, P_3270, "Move cursor down" }, { "Dup", CN, P_3270, "3270 DUP key (X'1C')" }, { "Ebcdic", CN, P_SCRIPTING, "Screen contents in EBCDIC" }, { "Ebcdic", "", P_SCRIPTING, " bytes of screen contents from cursor, in EBCDIC" }, { "Ebcdic", " ", P_SCRIPTING, " bytes of screen contents from ,, in EBCDIC" }, { "Ebcdic", " ", P_SCRIPTING, "x of screen contents from ,, in EBCDIC" }, { "EbcdicField", CN, P_SCRIPTING, "Contents of current field, in EBCDIC" }, { "Enter", CN, P_3270, "Send ENTER AID" }, { "Erase", CN, P_3270, "Destructive backspace" }, { "EraseEOF", CN, P_3270, "Erase from cursor to end of field" }, { "EraseInput", CN, P_3270, "Erase all input fields" }, { "Escape", CN, P_INTERACTIVE, "Escape to " #if defined(WC3270) /*[*/ "'wc3270>'" #else /*][*/ "'c3270>'" #endif /*]*/ " prompt" }, #if defined(X3270_SCRIPT) /*[*/ { "Execute", "", P_SCRIPTING, "Execute a shell command" }, #endif /*]*/ { "Exit", CN, P_INTERACTIVE, "Exit " #if defined(WC3270) /*[*/ "wc3270" #else /*][*/ "c3270" #endif /*]*/ }, #if defined(X3270_SCRIPT) /*[*/ { "Expect", "", P_SCRIPTING, "Wait for NVT output" }, #endif /*]*/ { "FieldEnd", CN, P_3270, "Move to end of field" }, { "FieldMark", CN, P_3270, "3270 FIELD MARK key (X'1E')" }, { "Flip", CN, P_3270, "Flip display left-to-right" }, { "Help", "all|interactive|3270|scripting|transfer|", P_INTERACTIVE, "Get help" }, { "HexString", "", P_3270|P_SCRIPTING, "Input field data in hex" }, { "Home", CN, P_3270, "Move cursor to first field" }, { "ignore", CN, P_3270, "Do nothing" }, { "Info", "", P_SCRIPTING|P_INTERACTIVE, "Display text in OIA" }, { "Insert", CN, P_3270, "Set 3270 insert mode" }, { "Interrupt", CN, P_3270, "In NVT mode, send IAC IP" }, { "Key", "|0x", P_3270, "Input one character" }, { "Left", CN, P_3270, "Move cursr left" }, { "Left2", CN, P_3270, "Move cursor left 2 columns" }, #if defined(X3270_SCRIPT) /*[*/ { "Macro", "", P_SCRIPTING, "Execute a predefined macro" }, #endif /*]*/ { "MonoCase", CN, P_3270, "Toggle monocase mode" }, { "MoveCursor", " ", P_3270|P_SCRIPTING, "Move cursor to specific location" }, { "Newline", CN, P_3270, "Move cursor to first field in next row" }, { "NextWord", CN, P_3270, "Move cursor to next word" }, { "Open", CN, P_INTERACTIVE, "Alias for 'Connect'" }, { "PA", "", P_3270, "Send 3270 Program Attention" }, #if defined(WC3270) /*[*/ { "Paste", CN, P_3270, "Paste clipboard contents" }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "PauseScript", CN, P_SCRIPTING, "Pause script until ResumeScript" }, #endif /*]*/ { "PF", "", P_3270, "Send 3270 PF AID" }, { "PreviousWord", CN, P_3270, "Move cursor to previous word" }, { "Printer", "Start[,lu]|Stop", P_3270|P_SCRIPTING|P_INTERACTIVE, #if defined(WC3270) /*[*/ "Start or stop wpr3287 printer session" }, #else /*][*/ "Start or stop pr3287 printer session" }, #endif /*]*/ { "PrintText", #if defined(WC3270) /*[*/ "", #else /*][*/ "", #endif /*]*/ P_SCRIPTING|P_INTERACTIVE, "Dump screen image to printer" }, #if defined(X3270_SCRIPT) /*[*/ { "Query", "", P_SCRIPTING|P_INTERACTIVE, "Query operational parameters" }, #endif /*]*/ { "Quit", CN, P_INTERACTIVE, "Exit " PROGRAM }, #if defined(X3270_SCRIPT) /*[*/ { "ReadBuffer", "ASCII|EBCDIC", P_SCRIPTING, "Dump display buffer" }, #endif /*]*/ { "Redraw", CN, P_INTERACTIVE|P_3270, "Redraw screen" }, { "Reset", CN, P_3270, "Clear keyboard lock" }, { "Right", CN, P_3270, "Move cursor right" }, { "Right2", CN, P_3270, "Move cursor right 2 columns" }, #if defined(X3270_SCRIPT) /*[*/ { "Script", " [...]", P_SCRIPTING, "Run a child script" }, #endif /*]*/ { "Show", CN, P_INTERACTIVE, "Display status and settings" }, #if defined(X3270_SCRIPT) /*[*/ { "Snap", "", P_SCRIPTING, "Screen snapshot manipulation" }, #endif /*]*/ { "Source", "", P_SCRIPTING|P_INTERACTIVE, "Read actions from file" }, { "String", "", P_3270|P_SCRIPTING, "Input a string" }, { "SysReq", CN, P_3270, "Send 3270 Attention (TELNET ABORT or SYSREQ AID)" }, { "Tab", CN, P_3270, "Move cursor to next field" }, #if defined(WC3270) /*[*/ { "Title", "", P_SCRIPTING|P_INTERACTIVE, "Change window title" }, #endif /*]*/ { "Toggle", " [set|clear]", P_INTERACTIVE|P_SCRIPTING, "Change a toggle" }, { "ToggleInsert", CN, P_3270, "Set or clear 3270 insert mode" }, { "ToggleReverse", CN, P_3270, "Set or clear reverse-input mode" }, { "Trace", "[data|keyboard] on|off []", P_INTERACTIVE, "Configure tracing" }, { "Transfer", "[]", P_INTERACTIVE, "IND$FILE file transfer (see 'help file-transfer')" }, { "Up", CN, P_3270, "Move cursor up" }, #if defined(X3270_SCRIPT) /*[*/ { "Wait", "", P_SCRIPTING, "Wait for host events" }, #endif /*]*/ { CN, CN, 0, CN } }; static const char *ft_help[] = { "Syntax:", " To be prompted interactively for parameters:", " Transfer", " To specify parameters on the command line:", " Transfer =...", "Keywords:", " Direction=send|receive default 'receive'", " HostFile= required", " LocalFile= required", " Host=tso|vm default 'tso'", " Mode=ascii|binary default 'ascii'", " Cr=remove|add|keep default 'remove'", " Remap=yes|no default 'yes'", " Exist=keep|replace|append default 'keep'", " Recfm=fixed|variable|undefined for Direction=send", " Lrecl= for Direction=send", " Blksize= for Direction=send Host=tso", " Allocation=tracks|cylinders|avblock for Direction=send Host=tso", " PrimarySpace= for Direction=send Host=tso", " SecondarySpace= for Direction=send Host=tso", "Note that to embed a space in a value, you must quote the keyword, e.g.:", " Transfer Direction=send LocalFile=/tmp/foo \"HostFile=foo text a\" Host=vm", NULL }; static struct { const char *name; int flag; const char *text; const char **block; void (*fn)(Boolean); } help_subcommand[] = { { "all", #if defined(X3270_SCRIPT) /*[*/ -1, #else /*][*/ ~P_SCRIPTING, #endif /*]*/ CN, NULL, NULL }, { "3270", P_3270, CN, NULL, NULL }, { "interactive", P_INTERACTIVE, CN, NULL, NULL }, { "options", P_OPTIONS, CN, NULL, &cmdline_help }, #if defined(X3270_SCRIPT) /*[*/ { "scripting", P_SCRIPTING, CN, NULL, NULL }, #endif /*]*/ #if defined(X3270_FT) /*[*/ { "file-transfer", P_TRANSFER, CN, ft_help, NULL }, #endif /*]*/ { CN, 0, CN } }; /* c3270-specific actions. */ void Help_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int i; int overall = -1; int match = 0; action_debug(Help_action, event, params, num_params); if (*num_params != 1) { action_output( " help all all commands\n" " help 3270 3270 commands\n" " help interactive interactive (command-prompt) commands\n" " help help for one \n" " help options command-line options\n" #if defined(X3270_SCRIPT) /*[*/ " help scripting scripting commands\n" #endif /*]*/ #if defined(X3270_FT) /*[*/ " help file-transfer file transfer options\n" ); #endif /*]*/ return; } if (!strcmp(params[0], "verify")) { int j; Boolean any = False; for (i = 0; cmd_help[i].name; i++) { Boolean found = False; for (j = 0; j < actioncount; j++) { if (!strcasecmp(cmd_help[i].name, actions[j].string)) { found = True; break; } } if (!found) { action_output("Help for nonexistent action: %s", cmd_help[i].name); any = True; } } if (!any) action_output("No orphaned help messages."); any = False; for (j = 0; j < actioncount; j++) { Boolean found = False; for (i = 0; cmd_help[i].name; i++) { if (!strcasecmp(cmd_help[i].name, actions[j].string)) { found = True; break; } } if (!found) { action_output("No Help for %s", actions[j].string); any = True; } } if (!any) printf("No orphaned actions.\n"); return; } for (i = 0; help_subcommand[i].name != CN; i++) { if (!strncasecmp(help_subcommand[i].name, params[0], strlen(params[0]))) { match = help_subcommand[i].flag; overall = i; break; } } if (match) { for (i = 0; cmd_help[i].name != CN; i++) { if (!strncasecmp(cmd_help[i].name, params[0], strlen(params[0]))) { action_output("Ambiguous: matches '%s' and " "one or more commands", help_subcommand[overall].name); return; } } if (help_subcommand[overall].text != CN) { action_output("%s", help_subcommand[overall].text); return; } if (help_subcommand[overall].block != NULL) { int j; for (j = 0; help_subcommand[overall].block[j] != CN; j++) { action_output("%s", help_subcommand[overall].block[j]); } return; } if (help_subcommand[overall].fn != NULL) { (*help_subcommand[overall].fn)(True); return; } for (i = 0; cmd_help[i].name != CN; i++) { if (cmd_help[i].purpose & match) { action_output(" %s %s\n %s", cmd_help[i].name, cmd_help[i].args? cmd_help[i].args: "", cmd_help[i].help? cmd_help[i].help: ""); } } } else { Boolean any = False; for (i = 0; cmd_help[i].name != CN; i++) { #if !defined(X3270_SCRIPT) /*[*/ if (cmd_help[i].purpose == P_SCRIPTING) continue; #endif /*]*/ if (!strncasecmp(cmd_help[i].name, params[0], strlen(params[0]))) { action_output(" %s %s\n %s", cmd_help[i].name, cmd_help[i].args? cmd_help[i].args: "", cmd_help[i].help? cmd_help[i].help: ""); any = True; } } if (!any) action_output("No such command: %s", params[0]); } } ibm-3270-3.3.10ga4/wc3270/tn3270e.h0000644000175000017500000000704311254565704015373 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tn3270e.h * * Header file for the TN3270E Protocol, RFC 2355. */ /* Negotiation operations. */ #define TN3270E_OP_ASSOCIATE 0 #define TN3270E_OP_CONNECT 1 #define TN3270E_OP_DEVICE_TYPE 2 #define TN3270E_OP_FUNCTIONS 3 #define TN3270E_OP_IS 4 #define TN3270E_OP_REASON 5 #define TN3270E_OP_REJECT 6 #define TN3270E_OP_REQUEST 7 #define TN3270E_OP_SEND 8 /* Negotiation reason-codes. */ #define TN3270E_REASON_CONN_PARTNER 0 #define TN3270E_REASON_DEVICE_IN_USE 1 #define TN3270E_REASON_INV_ASSOCIATE 2 #define TN3270E_REASON_INV_DEVICE_NAME 3 #define TN3270E_REASON_INV_DEVICE_TYPE 4 #define TN3270E_REASON_TYPE_NAME_ERROR 5 #define TN3270E_REASON_UNKNOWN_ERROR 6 #define TN3270E_REASON_UNSUPPORTED_REQ 7 /* Negotiation function Names. */ #define TN3270E_FUNC_BIND_IMAGE 0 #define TN3270E_FUNC_DATA_STREAM_CTL 1 #define TN3270E_FUNC_RESPONSES 2 #define TN3270E_FUNC_SCS_CTL_CODES 3 #define TN3270E_FUNC_SYSREQ 4 /* Header data type names. */ #define TN3270E_DT_3270_DATA 0x00 #define TN3270E_DT_SCS_DATA 0x01 #define TN3270E_DT_RESPONSE 0x02 #define TN3270E_DT_BIND_IMAGE 0x03 #define TN3270E_DT_UNBIND 0x04 #define TN3270E_DT_NVT_DATA 0x05 #define TN3270E_DT_REQUEST 0x06 #define TN3270E_DT_SSCP_LU_DATA 0x07 #define TN3270E_DT_PRINT_EOJ 0x08 /* Header request flags. */ #define TN3270E_RQF_ERR_COND_CLEARED 0x00 /* Header response flags. */ #define TN3270E_RSF_NO_RESPONSE 0x00 #define TN3270E_RSF_ERROR_RESPONSE 0x01 #define TN3270E_RSF_ALWAYS_RESPONSE 0x02 #define TN3270E_RSF_POSITIVE_RESPONSE 0x00 #define TN3270E_RSF_NEGATIVE_RESPONSE 0x01 /* Header response data. */ #define TN3270E_POS_DEVICE_END 0x00 #define TN3270E_NEG_COMMAND_REJECT 0x00 #define TN3270E_NEG_INTERVENTION_REQUIRED 0x01 #define TN3270E_NEG_OPERATION_CHECK 0x02 #define TN3270E_NEG_COMPONENT_DISCONNECTED 0x03 /* TN3270E data header. */ typedef struct { unsigned char data_type; unsigned char request_flag; unsigned char response_flag; unsigned char seq_number[2]; /* actually, 16 bits, unaligned (!) */ } tn3270e_header; #define EH_SIZE 5 ibm-3270-3.3.10ga4/wc3270/readres.c0000644000175000017500000001320211254565704015703 0ustar bastianbastian/* * Copyright (c) 2009, Paul Mattes. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * readres.c * A displayless 3270 Terminal Emulator * Resource file reader. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "readresc.h" #include "screenc.h" #include "selectc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include #include "winversc.h" #endif /*]*/ #if !defined(ME) /*[*/ # if defined(C3270) /*[*/ # if defined(WC3270) /*[*/ # define ME "wc3270" # else /*][*/ # define ME "c3270" # endif /*]*/ # elif defined(S3270) /*[*/ # if defined(WS3270) /*[*/ # define ME "ws3270" # else /*][*/ # define ME "s3270" # endif /*]*/ # elif defined(TCL3270) /*][*/ # define ME "tcl3270" # endif /*]*/ #endif /*]*/ /* * Make sure a resource definition begins with the application name, then * split it into the name and the value. */ int validate_and_split_resource(const char *where, const char *arg, const char **left, unsigned *rnlenp, const char **right) { unsigned match_len; unsigned rnlen; const char *s = arg; static char me_dot[] = ME "."; static char me_star[] = ME "*"; /* Enforce "-3270." or "-3270*" or "*". */ if (!strncmp(s, me_dot, sizeof(me_dot)-1)) match_len = sizeof(me_dot)-1; else if (!strncmp(arg, me_star, sizeof(me_star)-1)) match_len = sizeof(me_star)-1; else if (arg[0] == '*') match_len = 1; else { xs_warning("%s: Invalid resource syntax '%.*s', name must " "begin with '%s'", where, (int)(sizeof(me_dot)-1), arg, me_dot); return -1; } /* Separate the parts. */ s = arg + match_len; while (*s && *s != ':' && !isspace(*s)) s++; rnlen = s - (arg + match_len); if (!rnlen) { xs_warning("%s: Invalid resource syntax, missing resource " "name", where); return -1; } while (isspace(*s)) s++; if (*s != ':') { xs_warning("%s: Invalid resource syntax, missing ':'", where); return -1; } s++; while (isspace(*s)) s++; /* Return what we got. */ *left = arg + match_len; *rnlenp = rnlen; *right = s; return 0; } /* Read resources from a file. */ int read_resource_filex(const char *filename, Boolean fatal, rrf_t *rrf) { FILE *f; int ilen; char buf[4096]; char *where; int lno = 0; f = fopen(filename, "r"); if (f == NULL) { if (fatal) xs_warning("Cannot open '%s': %s", filename, strerror(errno)); return -1; } /* Merge in what's in the file into the resource database. */ where = Malloc(strlen(filename) + 64); ilen = 0; while (fgets(buf + ilen, sizeof(buf) - ilen, f) != CN || ilen) { char *s; unsigned sl; Boolean bsl = False; lno++; /* Stip any trailing newline. */ sl = strlen(buf + ilen); if (sl && (buf + ilen)[sl-1] == '\n') (buf + ilen)[--sl] = '\0'; /* Check for a trailing backslash. */ s = buf + ilen; if ((sl > 0) && (s[sl - 1] == '\\')) { s[sl - 1] = '\0'; bsl = True; } /* Skip leading whitespace. */ s = buf; while (isspace(*s)) s++; /* If this line is a continuation, try again. */ if (bsl) { ilen += strlen(buf + ilen); if ((unsigned)ilen >= sizeof(buf) - 1) { (void) sprintf(where, "%s:%d: Line too long\n", filename, lno); Warning(where); break; } continue; } /* Skip comments. */ if (*s == '!') { ilen = 0; continue; } if (*s == '#') { (void) sprintf(where, "%s:%d: Invalid profile " "syntax ('#' ignored)", filename, lno); Warning(where); ilen = 0; continue; } /* Strip trailing whitespace and check for empty lines. */ sl = strlen(s); while (sl && isspace(s[sl-1])) s[--sl] = '\0'; if (!sl) { ilen = 0; continue; } /* Digest it. */ (void) sprintf(where, "%s:%d", filename, lno); parse_xrm(s, where); /* Get ready for the next iteration. */ ilen = 0; } Free(where); fclose(f); return 0; } ibm-3270-3.3.10ga4/wc3270/w3miscc.h0000644000175000017500000000372511254565704015644 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * w3misc.c * Miscellaneous Win32 functions. */ #if defined(_WIN32) /*[*/ #if defined(_WS2TCPIP_H) /*[*/ extern const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt); #endif /*]*/ extern int sockstart(void); extern const char *win32_strerror(int e); #if defined(_MSC_VER) /*[*/ extern int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg; extern int optind, opterr, optopt; #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/arpa_telnet.h0000644000175000017500000001140211254565704016561 0ustar bastianbastian/* @(#)telnet.h 1.7 88/08/19 SMI; from UCB 5.1 5/30/85 */ /* * Copyright (c) 1983 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */ /* * Definitions for the TELNET protocol. */ #ifndef _arpa_telnet_h #define _arpa_telnet_h #define IAC 255 /* interpret as command: */ #define DONT 254 /* you are not to use option */ #define DO 253 /* please, you use option */ #define WONT 252 /* I won't use option */ #define WILL 251 /* I will use option */ #define SB 250 /* interpret as subnegotiation */ #define GA 249 /* you may reverse the line */ #define EL 248 /* erase the current line */ #define EC 247 /* erase the current character */ #define AYT 246 /* are you there */ #define AO 245 /* abort output--but let prog finish */ #define IP 244 /* interrupt process--permanently */ #define BREAK 243 /* break */ #define DM 242 /* data mark--for connect. cleaning */ #define NOP 241 /* nop */ #define SE 240 /* end sub negotiation */ #define EOR 239 /* end of record (transparent mode) */ #define SUSP 237 /* suspend process */ #define xEOF 236 /* end of file */ #define SYNCH 242 /* for telfunc calls */ #ifdef TELCMDS const char *telcmds[] = { "EOF", "SUSP", "ABORT", "EOR", "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0 }; #endif #define TELCMD_FIRST xEOF #define TELCMD_LAST IAC #define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \ (unsigned int)(x) >= TELCMD_FIRST) #define TELCMD(x) telcmds[(x)-TELCMD_FIRST] /* telnet options */ #define TELOPT_BINARY 0 /* 8-bit data path */ #define TELOPT_ECHO 1 /* echo */ #define TELOPT_RCP 2 /* prepare to reconnect */ #define TELOPT_SGA 3 /* suppress go ahead */ #define TELOPT_NAMS 4 /* approximate message size */ #define TELOPT_STATUS 5 /* give status */ #define TELOPT_TM 6 /* timing mark */ #define TELOPT_RCTE 7 /* remote controlled transmission and echo */ #define TELOPT_NAOL 8 /* negotiate about output line width */ #define TELOPT_NAOP 9 /* negotiate about output page size */ #define TELOPT_NAOCRD 10 /* negotiate about CR disposition */ #define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */ #define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */ #define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */ #define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */ #define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */ #define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */ #define TELOPT_XASCII 17 /* extended ascic character set */ #define TELOPT_LOGOUT 18 /* force logout */ #define TELOPT_BM 19 /* byte macro */ #define TELOPT_DET 20 /* data entry terminal */ #define TELOPT_SUPDUP 21 /* supdup protocol */ #define TELOPT_SUPDUPOUTPUT 22 /* supdup output */ #define TELOPT_SNDLOC 23 /* send location */ #define TELOPT_TTYPE 24 /* terminal type */ #define TELOPT_EOR 25 /* end or record */ #define TELOPT_TUID 26 /* TACACS user identification */ #define TELOPT_OUTMRK 27 /* output marking */ #define TELOPT_TTYLOC 28 /* terminal location number */ #define TELOPT_3270REGIME 29 /* 3270 regime */ #define TELOPT_X3PAD 30 /* X.3 PAD */ #define TELOPT_NAWS 31 /* window size */ #define TELOPT_TSPEED 32 /* terminal speed */ #define TELOPT_LFLOW 33 /* remote flow control */ #define TELOPT_LINEMODE 34 /* linemode option */ #define TELOPT_XDISPLOC 35 /* X Display Location */ #define TELOPT_OLD_ENVIRON 36 /* old - Environment variables */ #define TELOPT_AUTHENTICATION 37/* authenticate */ #define TELOPT_ENCRYPT 38 /* encryption option */ #define TELOPT_NEW_ENVIRON 39 /* new - environment variables */ #define TELOPT_TN3270E 40 /* extended 3270 regime */ #define TELOPT_EXOPL 255 /* extended-options-list */ #define NTELOPTS (1+TELOPT_TN3270E) #ifdef TELOPTS const char *telopts[NTELOPTS+1] = { "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME", "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP", "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS", "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO", "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT", "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD", "TACACS UID", "OUTPUT MARKING", "TTYLOC", "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW", "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION", "ENCRYPT", "NEW-ENVIRON", "TN3270E", 0 }; #define TELOPT_FIRST TELOPT_BINARY #define TELOPT_LAST TELOPT_TN3270E #define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST) #define TELOPT(x) telopts[(x)-TELOPT_FIRST] #endif /* sub-option qualifiers */ #define TELQUAL_IS 0 /* option is... */ #define TELQUAL_SEND 1 /* send option */ #endif /*!_arpa_telnet_h*/ ibm-3270-3.3.10ga4/wc3270/printer.c0000644000175000017500000004172111254565704015750 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * printer.c * Printer session support */ #include "globals.h" #if (defined(C3270) || defined(X3270_DISPLAY)) && defined(X3270_PRINTER) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #endif /*]*/ #if defined(_WIN32) /*[*/ #include "windows.h" #endif /*]*/ #include #include #include #include #include "3270ds.h" #include "appres.h" #include "objects.h" #include "resources.h" #include "ctlr.h" #include "charsetc.h" #include "ctlrc.h" #include "hostc.h" #include "menubarc.h" #include "popupsc.h" #include "printerc.h" #include "printc.h" #include "savec.h" #if defined(C3270) /*[*/ #include "screenc.h" #endif /*]*/ #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utilc.h" #include "w3miscc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #define PRINTER_BUF 1024 /* Statics */ static int printer_pid = -1; #if defined(_WIN32) /*[*/ static HANDLE printer_handle = NULL; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ static Widget lu_shell = (Widget)NULL; #endif /*]*/ static struct pr3o { int fd; /* file descriptor */ unsigned long input_id; /* input ID */ unsigned long timeout_id; /* timeout ID */ int count; /* input count */ char buf[PRINTER_BUF]; /* input buffer */ } printer_stdout = { -1, 0L, 0L, 0 }, printer_stderr = { -1, 0L, 0L, 0 }; #if !defined(_WIN32) /*[*/ static void printer_output(void); static void printer_error(void); static void printer_otimeout(void); static void printer_etimeout(void); static void printer_dump(struct pr3o *p, Boolean is_err, Boolean is_dead); #endif /*]*/ static void printer_host_connect(Boolean connected _is_unused); static void printer_exiting(Boolean b _is_unused); /* Globals */ /* * Printer initialization function. */ void printer_init(void) { /* Register interest in host connects and mode changes. */ register_schange(ST_CONNECT, printer_host_connect); register_schange(ST_3270_MODE, printer_host_connect); register_schange(ST_EXITING, printer_exiting); } /* * Printer Start-up function * If 'lu' is non-NULL, then use the specific-LU form. * If not, use the assoc form. */ void printer_start(const char *lu) { const char *cmdlineName; const char *cmdline; #if !defined(_WIN32) /*[*/ const char *cmd; #else /*][*/ const char *printerName; #endif /*]*/ int cmd_len = 0; const char *s; char *cmd_text; char c; char charset_cmd[256]; /* -charset */ char *proxy_cmd = CN; /* -proxy */ #if defined(_WIN32) /*[*/ char *pcp_res = CN; char *printercp = CN; /* -printercp */ STARTUPINFO startupinfo; PROCESS_INFORMATION process_information; char *subcommand; char *space; #else /*][*/ int stdout_pipe[2]; int stderr_pipe[2]; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* Make sure the popups are initted. */ printer_popup_init(); #endif /*]*/ /* Can't start two. */ if (printer_pid != -1) { popup_an_error("printer is already running"); return; } /* Gotta be in 3270 mode. */ if (!IN_3270) { popup_an_error("Not in 3270 mode"); return; } /* Select the command line to use. */ if (lu == CN) { /* Associate with the current session. */ /* Gotta be in TN3270E mode. */ if (!IN_TN3270E) { popup_an_error("Not in TN3270E mode"); return; } /* Gotta be connected to an LU. */ if (connected_lu == CN) { popup_an_error("Not connected to a specific LU"); return; } lu = connected_lu; cmdlineName = ResAssocCommand; } else { /* Specific LU passed in. */ cmdlineName = ResLuCommandLine; } /* Fetch the command line and command resources. */ cmdline = get_resource(cmdlineName); if (cmdline == CN) { popup_an_error("%s resource not defined", cmdlineName); return; } #if !defined(_WIN32) /*[*/ cmd = get_resource(ResPrinterCommand); if (cmd == CN) { popup_an_error(ResPrinterCommand " resource not defined"); return; } #else /*][*/ printerName = get_resource(ResPrinterName); #endif /*]*/ /* Construct the charset option. */ (void) sprintf(charset_cmd, "-charset %s", get_charset_name()); /* Construct proxy option. */ if (appres.proxy != CN) { #if !defined(_WIN32) /*[*/ proxy_cmd = xs_buffer("-proxy \"%s\"", appres.proxy); #else /*][ */ proxy_cmd = xs_buffer("-proxy %s", appres.proxy); #endif /*]*/ } #if defined(_WIN32) /*[*/ pcp_res = get_resource(ResPrinterCodepage); if (pcp_res) printercp = xs_buffer("-printercp %s", pcp_res); #endif /*]*/ /* Construct the command line. */ /* Figure out how long it will be. */ cmd_len = strlen(cmdline) + 1; s = cmdline; while ((s = strstr(s, "%L%")) != CN) { cmd_len += strlen(lu) - 3; s += 3; } s = cmdline; while ((s = strstr(s, "%H%")) != CN) { cmd_len += strlen(qualified_host) - 3; s += 3; } #if !defined(_WIN32) /*[*/ s = cmdline; while ((s = strstr(s, "%C%")) != CN) { cmd_len += strlen(cmd) - 3; s += 3; } #endif /*]*/ s = cmdline; while ((s = strstr(s, "%R%")) != CN) { cmd_len += strlen(charset_cmd) - 3; s += 3; } s = cmdline; while ((s = strstr(s, "%P%")) != CN) { cmd_len += (proxy_cmd? strlen(proxy_cmd): 0) - 3; s += 3; } #if defined(_WIN32) /*[*/ s = cmdline; while ((s = strstr(s, "%I%")) != CN) { cmd_len += (printercp? strlen(printercp): 0) - 3; s += 3; } #endif /*]*/ /* Allocate a string buffer and substitute into it. */ cmd_text = Malloc(cmd_len); cmd_text[0] = '\0'; for (s = cmdline; (c = *s) != '\0'; s++) { char buf1[2]; if (c == '%') { if (!strncmp(s+1, "L%", 2)) { (void) strcat(cmd_text, lu); s += 2; continue; } else if (!strncmp(s+1, "H%", 2)) { (void) strcat(cmd_text, qualified_host); s += 2; continue; #if !defined(_WIN32) /*[*/ } else if (!strncmp(s+1, "C%", 2)) { (void) strcat(cmd_text, cmd); s += 2; continue; #endif /*]*/ } else if (!strncmp(s+1, "R%", 2)) { (void) strcat(cmd_text, charset_cmd); s += 2; continue; } else if (!strncmp(s+1, "P%", 2)) { if (proxy_cmd != CN) (void) strcat(cmd_text, proxy_cmd); s += 2; continue; #if defined(_WIN32) /*[*/ } else if (!strncmp(s+1, "I%", 2)) { if (printercp != CN) (void) strcat(cmd_text, printercp); s += 2; continue; #endif /*]*/ } } buf1[0] = c; buf1[1] = '\0'; (void) strcat(cmd_text, buf1); } trace_dsn("Printer command line: %s\n", cmd_text); #if !defined(_WIN32) /*[*/ /* Make pipes for printer's stdout and stderr. */ if (pipe(stdout_pipe) < 0) { popup_an_errno(errno, "pipe() failed"); Free(cmd_text); if (proxy_cmd != CN) Free(proxy_cmd); return; } (void) fcntl(stdout_pipe[0], F_SETFD, 1); if (pipe(stderr_pipe) < 0) { popup_an_errno(errno, "pipe() failed"); (void) close(stdout_pipe[0]); (void) close(stdout_pipe[1]); Free(cmd_text); if (proxy_cmd != CN) Free(proxy_cmd); return; } (void) fcntl(stderr_pipe[0], F_SETFD, 1); /* Fork and exec the printer session. */ trace_dsn("Printer command line: %s\n", cmd_text); switch (printer_pid = fork()) { case 0: /* child process */ (void) dup2(stdout_pipe[1], 1); (void) close(stdout_pipe[1]); (void) dup2(stderr_pipe[1], 2); (void) close(stderr_pipe[1]); if (setsid() < 0) { perror("setsid"); _exit(1); } (void) execlp("/bin/sh", "sh", "-c", cmd_text, CN); (void) perror("exec(printer)"); _exit(1); default: /* parent process */ (void) close(stdout_pipe[1]); printer_stdout.fd = stdout_pipe[0]; (void) close(stderr_pipe[1]); printer_stderr.fd = stderr_pipe[0]; printer_stdout.input_id = AddInput(printer_stdout.fd, printer_output); printer_stderr.input_id = AddInput(printer_stderr.fd, printer_error); ++children; break; case -1: /* error */ popup_an_errno(errno, "fork()"); (void) close(stdout_pipe[0]); (void) close(stdout_pipe[1]); (void) close(stderr_pipe[0]); (void) close(stderr_pipe[1]); break; } #else /*][*/ /* Pass the command via the environment. */ if (printerName != NULL) { static char pn_buf[1024]; sprintf(pn_buf, "PRINTER=%s", printerName); putenv(pn_buf); } /* Create the wpr3287 process. */ (void) memset(&startupinfo, '\0', sizeof(STARTUPINFO)); startupinfo.cb = sizeof(STARTUPINFO); (void) memset(&process_information, '\0', sizeof(PROCESS_INFORMATION)); subcommand = NewString(cmd_text); strcpy(subcommand, cmd_text); space = strchr(subcommand, ' '); if (space) { *space = '\0'; } if (!strcasecmp(subcommand, "wpr3287.exe") || !strcasecmp(subcommand, "wpr3287")) { char *pc; pc = xs_buffer("%s%s", instdir, subcommand); Free(subcommand); subcommand = pc; if (space) pc = xs_buffer("\"%s\" %s", subcommand, space + 1); else pc = xs_buffer("\"%s%s\"", instdir, cmd_text); Free(cmd_text); cmd_text = pc; } trace_dsn("Printer command line: %s\n", cmd_text); if (CreateProcess( subcommand, cmd_text, NULL, NULL, FALSE, 0, /* creation flags */ NULL, NULL, &startupinfo, &process_information) == 0) { popup_an_error("CreateProcess(%s) failed: %s", subcommand, win32_strerror(GetLastError())); } printer_handle = process_information.hProcess; CloseHandle(process_information.hThread); printer_pid = process_information.dwProcessId; Free(subcommand); #endif /*]*/ Free(cmd_text); if (proxy_cmd != CN) Free(proxy_cmd); #if defined(_WIN32) /*[*/ if (printercp != CN) Free(printercp); #endif /*]*/ /* Tell everyone else. */ st_changed(ST_PRINTER, True); } #if !defined(_WIN32) /*[*/ /* There's data from the printer session. */ static void printer_data(struct pr3o *p, Boolean is_err) { int space; int nr; static char exitmsg[] = "Printer session exited"; /* Read whatever there is. */ space = PRINTER_BUF - p->count - 1; nr = read(p->fd, p->buf + p->count, space); /* Handle read errors and end-of-file. */ if (nr < 0) { popup_an_errno(errno, "printer session pipe input"); printer_stop(); return; } if (nr == 0) { if (printer_stderr.timeout_id != 0L) { /* * Append a termination error message to whatever the * printer process said, and pop it up. */ p = &printer_stderr; space = PRINTER_BUF - p->count - 1; if (p->count && *(p->buf + p->count - 1) != '\n') { *(p->buf + p->count) = '\n'; p->count++; space--; } (void) strncpy(p->buf + p->count, exitmsg, space); p->count += strlen(exitmsg); if (p->count >= PRINTER_BUF) p->count = PRINTER_BUF - 1; printer_dump(p, True, True); } else { popup_an_error("%s", exitmsg); } printer_stop(); return; } /* Add it to the buffer, and add a NULL. */ p->count += nr; p->buf[p->count] = '\0'; /* * If there's no more room in the buffer, dump it now. Otherwise, * give it a second to generate more output. */ if (p->count >= PRINTER_BUF - 1) { printer_dump(p, is_err, False); } else if (p->timeout_id == 0L) { p->timeout_id = AddTimeOut(1000, is_err? printer_etimeout: printer_otimeout); } } /* The printer process has some output for us. */ static void printer_output(void) { printer_data(&printer_stdout, False); } /* The printer process has some error output for us. */ static void printer_error(void) { printer_data(&printer_stderr, True); } /* Timeout from printer output or error output. */ static void printer_timeout(struct pr3o *p, Boolean is_err) { /* Forget the timeout ID. */ p->timeout_id = 0L; /* Dump the output. */ printer_dump(p, is_err, False); } /* Timeout from printer output. */ static void printer_otimeout(void) { printer_timeout(&printer_stdout, False); } /* Timeout from printer error output. */ static void printer_etimeout(void) { printer_timeout(&printer_stderr, True); } /* Dump pending printer process output. */ static void printer_dump(struct pr3o *p, Boolean is_err, Boolean is_dead) { if (p->count) { /* * Strip any trailing newline, and make sure the buffer is * NULL terminated. */ if (p->buf[p->count - 1] == '\n') p->buf[--(p->count)] = '\0'; else if (p->buf[p->count]) p->buf[p->count] = '\0'; /* Dump it and clear the buffer. */ #if defined(X3270_DISPLAY) /*[*/ popup_printer_output(is_err, is_dead? NULL: printer_stop, "%s", p->buf); #else /*][*/ action_output("%s", p->buf); #endif p->count = 0; } } #endif /*]*/ #if defined(_WIN32) /*[*/ /* Check for an exited printer session. */ void printer_check(void) { DWORD exit_code; if (printer_pid != -1 && GetExitCodeProcess(printer_handle, &exit_code) != 0 && exit_code != STILL_ACTIVE) { printer_pid = -1; CloseHandle(printer_handle); printer_handle = NULL; st_changed(ST_PRINTER, False); popup_an_error("Printer process exited with status %ld", exit_code); } } #endif /*]*/ /* Close the printer session. */ void printer_stop(void) { /* Remove inputs. */ if (printer_stdout.input_id) { RemoveInput(printer_stdout.input_id); printer_stdout.input_id = 0L; } if (printer_stderr.input_id) { RemoveInput(printer_stderr.input_id); printer_stderr.input_id = 0L; } /* Cancel timeouts. */ if (printer_stdout.timeout_id) { RemoveTimeOut(printer_stdout.timeout_id); printer_stdout.timeout_id = 0L; } if (printer_stderr.timeout_id) { RemoveTimeOut(printer_stderr.timeout_id); printer_stderr.timeout_id = 0L; } /* Clear buffers. */ printer_stdout.count = 0; printer_stderr.count = 0; /* Kill the process. */ if (printer_pid != -1) { #if !defined(_WIN32) /*[*/ (void) kill(-printer_pid, SIGTERM); #else /*][*/ TerminateProcess(printer_handle, 0); #endif /*]*/ printer_pid = -1; #if defined(_WIN32) /*[*/ printer_handle = NULL; #endif /*]*/ } /* Tell everyone else. */ st_changed(ST_PRINTER, False); } /* The emulator is exiting. Make sure the printer session is cleaned up. */ static void printer_exiting(Boolean b _is_unused) { printer_stop(); } #if defined(X3270_DISPLAY) /*[*/ /* Callback for "OK" button on printer specific-LU popup */ static void lu_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { char *lu; if (w) { lu = XawDialogGetValueString((Widget)client_data); if (lu == CN || *lu == '\0') { popup_an_error("Must supply an LU"); return; } else XtPopdown(lu_shell); } else lu = (char *)client_data; printer_start(lu); } #endif /*]*/ /* Host connect/disconnect/3270-mode event. */ static void printer_host_connect(Boolean connected _is_unused) { if (IN_3270) { char *printer_lu = appres.printer_lu; if (printer_lu != CN && !printer_running()) { if (!strcmp(printer_lu, ".")) { if (IN_TN3270E) { /* Associate with TN3270E session. */ trace_dsn("Starting associated printer " "session.\n"); printer_start(CN); } } else { /* Specific LU. */ trace_dsn("Starting %s printer session.\n", printer_lu); printer_start(printer_lu); } } else if (!IN_E && printer_lu != CN && !strcmp(printer_lu, ".") && printer_running()) { /* Stop an automatic associated printer. */ trace_dsn("Stopping printer session.\n"); printer_stop(); } } else if (printer_running()) { /* * We're no longer in 3270 mode, then we can no longer have a * printer session. This may cause some fireworks if there is * a print job pending when we do this, so some sort of awful * timeout may be needed. */ trace_dsn("Stopping printer session.\n"); printer_stop(); } } #if defined(X3270_DISPLAY) /*[*/ /* Pop up the LU dialog box. */ void printer_lu_dialog(void) { if (lu_shell == NULL) lu_shell = create_form_popup("printerLu", lu_callback, (XtCallbackProc)NULL, FORM_NO_WHITE); popup_popup(lu_shell, XtGrabExclusive); } #endif /*]*/ Boolean printer_running(void) { return printer_pid != -1; } #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/util.c0000644000175000017500000005021611256027015015227 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * util.c * Utility functions for x3270/c3270/s3270/tcl3270 */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include "resources.h" #include "charsetc.h" #include "utilc.h" #define my_isspace(c) isspace((unsigned char)c) /* * Cheesy internal version of sprintf that allocates its own memory. */ static char * xs_vsprintf(const char *fmt, va_list args) { char *r = CN; #if defined(HAVE_VASPRINTF) /*[*/ int nw; nw = vasprintf(&r, fmt, args); if (nw < 0 || r == CN) Error("Out of memory"); return r; #else /*][*/ char buf[16384]; int nc; nc = vsprintf(buf, fmt, args); if (nc > sizeof(buf)) Error("Internal buffer overflow"); r = Malloc(nc + 1); return strcpy(r, buf); #endif /*]*/ } /* * Common helper functions to insert strings, through a template, into a new * buffer. * 'format' is assumed to be a printf format string with '%s's in it. */ char * xs_buffer(const char *fmt, ...) { va_list args; char *r; va_start(args, fmt); r = xs_vsprintf(fmt, args); va_end(args); return r; } /* Common uses of xs_buffer. */ void xs_warning(const char *fmt, ...) { va_list args; char *r; va_start(args, fmt); r = xs_vsprintf(fmt, args); va_end(args); Warning(r); Free(r); } void xs_error(const char *fmt, ...) { va_list args; char *r; va_start(args, fmt); r = xs_vsprintf(fmt, args); va_end(args); Error(r); Free(r); } /* Prettyprinter for strings with unprintable data. */ void fcatv(FILE *f, char *s) { char c; while ((c = *s++)) { switch (c) { case '\n': (void) fprintf(f, "\\n"); break; case '\t': (void) fprintf(f, "\\t"); break; case '\b': (void) fprintf(f, "\\b"); break; default: if ((c & 0x7f) < ' ') (void) fprintf(f, "\\%03o", c & 0xff); else fputc(c, f); break; } } } /* String version of fcatv. */ char * scatv(const char *s, char *buf, size_t len) { char c; char *dst = buf; while ((c = *s++) && len > 0) { char cbuf[5]; char *t = cbuf; /* Expand this character. */ switch (c) { case '\n': (void) strcpy(cbuf, "\\n"); break; case '\t': (void) strcpy(cbuf, "\\t"); break; case '\b': (void) strcpy(cbuf, "\\b"); break; default: if ((c & 0x7f) < ' ') (void) sprintf(cbuf, "\\%03o", c & 0xff); else { cbuf[0] = c; cbuf[1] = '\0'; } break; } /* Copy as much as will fit. */ while ((c = *t++) && len > 0) { *dst++ = c; len--; } } if (len > 0) *dst = '\0'; return buf; } /* * Definition resource splitter, for resources of the repeating form: * left: right\n * * Can be called iteratively to parse a list. * Returns 1 for success, 0 for EOF, -1 for error. * * Note: Modifies the input string. */ int split_dresource(char **st, char **left, char **right) { char *s = *st; char *t; Boolean quote; /* Skip leading white space. */ while (my_isspace(*s)) s++; /* If nothing left, EOF. */ if (!*s) return 0; /* There must be a left-hand side. */ if (*s == ':') return -1; /* Scan until an unquoted colon is found. */ *left = s; for (; *s && *s != ':' && *s != '\n'; s++) if (*s == '\\' && *(s+1) == ':') s++; if (*s != ':') return -1; /* Stip white space before the colon. */ for (t = s-1; my_isspace(*t); t--) *t = '\0'; /* Terminate the left-hand side. */ *(s++) = '\0'; /* Skip white space after the colon. */ while (*s != '\n' && my_isspace(*s)) s++; /* There must be a right-hand side. */ if (!*s || *s == '\n') return -1; /* Scan until an unquoted newline is found. */ *right = s; quote = False; for (; *s; s++) { if (*s == '\\' && *(s+1) == '"') s++; else if (*s == '"') quote = !quote; else if (!quote && *s == '\n') break; } /* Strip white space before the newline. */ if (*s) { t = s; *st = s+1; } else { t = s-1; *st = s; } while (my_isspace(*t)) *t-- = '\0'; /* Done. */ return 1; } /* * Split a DBCS resource into its parts. * Returns the number of parts found: * -1 error (empty sub-field) * 0 nothing found * 1 one and just one thing found * 2 two things found * 3 more than two things found */ int split_dbcs_resource(const char *value, char sep, char **part1, char **part2) { int n_parts = 0; const char *s = value; const char *f_start = CN; /* start of sub-field */ const char *f_end = CN; /* end of sub-field */ char c; char **rp; *part1 = CN; *part2 = CN; for( ; ; ) { c = *s; if (c == sep || c == '\0') { if (f_start == CN) return -1; if (f_end == CN) f_end = s; if (f_end == f_start) { if (c == sep) { if (*part1) { Free(*part1); *part1 = NULL; } if (*part2) { Free(*part2); *part2 = NULL; } return -1; } else return n_parts; } switch (n_parts) { case 0: rp = part1; break; case 1: rp = part2; break; default: return 3; } *rp = Malloc(f_end - f_start + 1); strncpy(*rp, f_start, f_end - f_start); (*rp)[f_end - f_start] = '\0'; f_end = CN; f_start = CN; n_parts++; if (c == '\0') return n_parts; } else if (isspace(c)) { if (f_end == CN) f_end = s; } else { if (f_start == CN) f_start = s; f_end = CN; } s++; } } #if defined(X3270_DISPLAY) /*[*/ /* * List resource splitter, for lists of elements speparated by newlines. * * Can be called iteratively. * Returns 1 for success, 0 for EOF, -1 for error. */ int split_lresource(char **st, char **value) { char *s = *st; char *t; Boolean quote; /* Skip leading white space. */ while (my_isspace(*s)) s++; /* If nothing left, EOF. */ if (!*s) return 0; /* Save starting point. */ *value = s; /* Scan until an unquoted newline is found. */ quote = False; for (; *s; s++) { if (*s == '\\' && *(s+1) == '"') s++; else if (*s == '"') quote = !quote; else if (!quote && *s == '\n') break; } /* Strip white space before the newline. */ if (*s) { t = s; *st = s+1; } else { t = s-1; *st = s; } while (my_isspace(*t)) *t-- = '\0'; /* Done. */ return 1; } #endif /*]*/ const char * get_message(const char *key) { static char namebuf[128]; char *r; (void) sprintf(namebuf, "%s.%s", ResMessage, key); if ((r = get_resource(namebuf)) != CN) return r; else { (void) sprintf(namebuf, "[missing \"%s\" message]", key); return namebuf; } } #define ex_getenv getenv /* Variable and tilde substitution functions. */ static char * var_subst(const char *s) { enum { VS_BASE, VS_QUOTE, VS_DOLLAR, VS_BRACE, VS_VN, VS_VNB, VS_EOF } state = VS_BASE; char c; int o_len = strlen(s) + 1; char *ob; char *o; const char *vn_start = CN; if (strchr(s, '$') == CN) return NewString(s); o_len = strlen(s) + 1; ob = Malloc(o_len); o = ob; # define LBR '{' # define RBR '}' while (state != VS_EOF) { c = *s; switch (state) { case VS_BASE: if (c == '\\') state = VS_QUOTE; else if (c == '$') state = VS_DOLLAR; else *o++ = c; break; case VS_QUOTE: if (c == '$') { *o++ = c; o_len--; } else { *o++ = '\\'; *o++ = c; } state = VS_BASE; break; case VS_DOLLAR: if (c == LBR) state = VS_BRACE; else if (isalpha(c) || c == '_') { vn_start = s; state = VS_VN; } else { *o++ = '$'; *o++ = c; state = VS_BASE; } break; case VS_BRACE: if (isalpha(c) || c == '_') { vn_start = s; state = VS_VNB; } else { *o++ = '$'; *o++ = LBR; *o++ = c; state = VS_BASE; } break; case VS_VN: case VS_VNB: if (!(isalnum(c) || c == '_')) { int vn_len; char *vn; char *vv; vn_len = s - vn_start; if (state == VS_VNB && c != RBR) { *o++ = '$'; *o++ = LBR; (void) strncpy(o, vn_start, vn_len); o += vn_len; state = VS_BASE; continue; /* rescan */ } vn = Malloc(vn_len + 1); (void) strncpy(vn, vn_start, vn_len); vn[vn_len] = '\0'; if ((vv = ex_getenv(vn))) { *o = '\0'; o_len = o_len - 1 /* '$' */ - (state == VS_VNB) /* { */ - vn_len /* name */ - (state == VS_VNB) /* } */ + strlen(vv); ob = Realloc(ob, o_len); o = strchr(ob, '\0'); (void) strcpy(o, vv); o += strlen(vv); } Free(vn); if (state == VS_VNB) { state = VS_BASE; break; } else { /* Rescan this character */ state = VS_BASE; continue; } } break; case VS_EOF: break; } s++; if (c == '\0') state = VS_EOF; } return ob; } #if !defined(_WIN32) /*[*/ /* * Do tilde (home directory) substitution on a string. Returns a malloc'd * result. */ static char * tilde_subst(const char *s) { char *slash; const char *name; const char *rest; struct passwd *p; char *r; char *mname = CN; /* Does it start with a "~"? */ if (*s != '~') return NewString(s); /* Terminate with "/". */ slash = strchr(s, '/'); if (slash) { int len = slash - s; mname = Malloc(len + 1); (void) strncpy(mname, s, len); mname[len] = '\0'; name = mname; rest = slash; } else { name = s; rest = strchr(name, '\0'); } /* Look it up. */ if (!strcmp(name, "~")) /* this user */ p = getpwuid(getuid()); else /* somebody else */ p = getpwnam(name + 1); /* Free any temporary copy. */ Free(mname); /* Substitute and return. */ if (p == (struct passwd *)NULL) r = NewString(s); else { r = Malloc(strlen(p->pw_dir) + strlen(rest) + 1); (void) strcpy(r, p->pw_dir); (void) strcat(r, rest); } return r; } #endif /*]*/ char * do_subst(const char *s, Boolean do_vars, Boolean do_tilde) { if (!do_vars && !do_tilde) return NewString(s); if (do_vars) { char *t; t = var_subst(s); #if !defined(_WIN32) /*[*/ if (do_tilde) { char *u; u = tilde_subst(t); Free(t); return u; } #endif /*]*/ return t; } #if !defined(_WIN32) /*[*/ return tilde_subst(s); #else /*][*/ return NewString(s); #endif /*]*/ } /* * ctl_see * Expands a character in the manner of "cat -v". */ char * ctl_see(int c) { static char buf[64]; char *p = buf; c &= 0xff; if ((c & 0x80) && (c <= 0xa0)) { *p++ = 'M'; *p++ = '-'; c &= 0x7f; } if (c >= ' ' && c != 0x7f) { *p++ = c; } else { *p++ = '^'; if (c == 0x7f) { *p++ = '?'; } else { *p++ = c + '@'; } } *p = '\0'; return buf; } /* A version of get_resource that accepts sprintf arguments. */ char * get_fresource(const char *fmt, ...) { va_list args; char *name; char *r; va_start(args, fmt); name = xs_vsprintf(fmt, args); va_end(args); r = get_resource(name); Free(name); return r; } /* * Whitespace stripper. */ char * strip_whitespace(const char *s) { char *t = NewString(s); while (*t && my_isspace(*t)) t++; if (*t) { char *u = t + strlen(t) - 1; while (my_isspace(*u)) { *u-- = '\0'; } } return t; } /* * Hierarchy (a>b>c) splitter. */ Boolean split_hier(char *label, char **base, char ***parents) { int n_parents = 0; char *gt; char *lp; label = NewString(label); for (lp = label; (gt = strchr(lp, '>')) != CN; lp = gt + 1) { if (gt == lp) return False; n_parents++; } if (!*lp) return False; if (n_parents) { *parents = (char **)Calloc(n_parents + 1, sizeof(char *)); for (n_parents = 0, lp = label; (gt = strchr(lp, '>')) != CN; lp = gt + 1) { (*parents)[n_parents++] = lp; *gt = '\0'; } *base = lp; } else { (*parents) = NULL; (*base) = label; } return True; } /* * Incremental, reallocing version of snprintf. */ #define RPF_BLKSIZE 4096 #define SP_TMP_LEN 16384 /* Initialize an RPF structure. */ void rpf_init(rpf_t *r) { r->buf = NULL; r->alloc_len = 0; r->cur_len = 0; } /* Reset an initialized RPF structure (re-use with length 0). */ void rpf_reset(rpf_t *r) { r->cur_len = 0; } /* Append a string to a dynamically-allocated buffer. */ void rpf(rpf_t *r, char *fmt, ...) { va_list a; Boolean need_realloc = False; int ns; char tbuf[SP_TMP_LEN]; /* Figure out how much space would be needed. */ va_start(a, fmt); ns = vsprintf(tbuf, fmt, a); /* XXX: dangerous, but so is vsnprintf */ va_end(a); if (ns >= SP_TMP_LEN) Error("rpf overrun"); /* Make sure we have that. */ while (r->alloc_len - r->cur_len < ns + 1) { r->alloc_len += RPF_BLKSIZE; need_realloc = True; } if (need_realloc) { r->buf = Realloc(r->buf, r->alloc_len); } /* Scribble onto the end of that. */ (void) strcpy(r->buf + r->cur_len, tbuf); r->cur_len += ns; } /* Free resources associated with an RPF. */ void rpf_free(rpf_t *r) { Free(r->buf); r->buf = NULL; r->alloc_len = 0; r->cur_len = 0; } #if defined(X3270_DISPLAY) /*[*/ /* Glue between x3270 and the X libraries. */ /* * A way to work around problems with Xt resources. It seems to be impossible * to get arbitrarily named resources. Someday this should be hacked to * add classes too. */ char * get_resource(const char *name) { XrmValue value; char *type; char *str; char *r = CN; str = xs_buffer("%s.%s", XtName(toplevel), name); if ((XrmGetResource(rdb, str, 0, &type, &value) == True) && *value.addr) r = value.addr; XtFree(str); return r; } /* * Input callbacks. */ typedef void voidfn(void); typedef struct iorec { voidfn *fn; XtInputId id; struct iorec *next; } iorec_t; static iorec_t *iorecs = NULL; static void io_fn(XtPointer closure, int *source _is_unused, XtInputId *id) { iorec_t *iorec; for (iorec = iorecs; iorec != NULL; iorec = iorec->next) { if (iorec->id == *id) { (*iorec->fn)(); break; } } } unsigned long AddInput(int sock, voidfn *fn) { iorec_t *iorec; iorec = (iorec_t *)XtMalloc(sizeof(iorec_t)); iorec->fn = fn; iorec->id = XtAppAddInput(appcontext, sock, (XtPointer) XtInputReadMask, io_fn, NULL); iorec->next = iorecs; iorecs = iorec; return iorec->id; } unsigned long AddExcept(int sock, voidfn *fn) { iorec_t *iorec; iorec = (iorec_t *)XtMalloc(sizeof(iorec_t)); iorec->fn = fn; iorec->id = XtAppAddInput(appcontext, sock, (XtPointer) XtInputExceptMask, io_fn, NULL); iorec->next = iorecs; iorecs = iorec; return iorec->id; } unsigned long AddOutput(int sock, voidfn *fn) { iorec_t *iorec; iorec = (iorec_t *)XtMalloc(sizeof(iorec_t)); iorec->fn = fn; iorec->id = XtAppAddInput(appcontext, sock, (XtPointer) XtInputWriteMask, io_fn, NULL); iorec->next = iorecs; iorecs = iorec; return iorec->id; } void RemoveInput(unsigned long cookie) { iorec_t *iorec; iorec_t *prev = NULL; for (iorec = iorecs; iorec != NULL; iorec = iorec->next) { if (iorec->id == (XtInputId)cookie) { break; } prev = iorec; } if (iorec != NULL) { XtRemoveInput((XtInputId)cookie); if (prev != NULL) prev->next = iorec->next; else iorecs = iorec->next; XtFree((XtPointer)iorec); } } /* * Timer callbacks. */ typedef struct torec { voidfn *fn; XtIntervalId id; struct torec *next; } torec_t; static torec_t *torecs = NULL; static void to_fn(XtPointer closure, XtIntervalId *id) { torec_t *torec; torec_t *prev = NULL; voidfn *fn = NULL; for (torec = torecs; torec != NULL; torec = torec->next) { if (torec->id == *id) { break; } prev = torec; } if (torec != NULL) { /* Remember the record. */ fn = torec->fn; /* Free the record. */ if (prev != NULL) prev->next = torec->next; else torecs = torec->next; XtFree((XtPointer)torec); /* Call the function. */ (*fn)(); } } unsigned long AddTimeOut(unsigned long msec, voidfn *fn) { torec_t *torec; torec = (torec_t *)XtMalloc(sizeof(torec_t)); torec->fn = fn; torec->id = XtAppAddTimeOut(appcontext, msec, to_fn, NULL); torec->next = torecs; torecs = torec; return (unsigned long)torec->id; } void RemoveTimeOut(unsigned long cookie) { torec_t *torec; torec_t *prev = NULL; for (torec = torecs; torec != NULL; torec = torec->next) { if (torec->id == (XtIntervalId)cookie) { break; } prev = torec; } if (torec != NULL) { XtRemoveTimeOut((XtIntervalId)cookie); if (prev != NULL) prev->next = torec->next; else torecs = torec->next; XtFree((XtPointer)torec); } else { Error("RemoveTimeOut: Can't find"); } } KeySym StringToKeysym(char *s) { return XStringToKeysym(s); } #endif /*]*/ /* Return configuration options. */ const char * build_options(void) { return "Build options:" #if defined(X3270_ANSI) /*[*/ " --enable-ansi" #else /*][*/ " --disable-ansi" #endif /*]*/ #if defined(X3270_APL) /*[*/ " --enable-apl" #else /*][*/ " --disable-apl" #endif /*]*/ #if defined(X3270_DBCS) /*[*/ " --enable-dbcs" #else /*][*/ " --disable-dbcs" #endif /*]*/ #if defined(X3270_FT) /*[*/ " --enable-ft" #else /*][*/ " --disable-ft" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ # if defined(X3270_KEYPAD) /*[*/ " --enable-keypad" # else /*][*/ " --disable-keypad" # endif /*]*/ #endif /*]*/ #if defined(X3270_LOCAL_PROCESS) /*[*/ " --enable-local-process" #else /*][*/ " --disable-local-process" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ # if defined(X3270_MENUS) /*[*/ " --enable-menus" # else /*][*/ " --disable-menus" # endif /*]*/ #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_PRINTER) /*[*/ " --enable-printer" # else /*][*/ " --disable-printer" # endif /*]*/ #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_SCRIPT) /*[*/ " --enable-script" # else /*][*/ " --disable-script" # endif /*]*/ #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ " --enable-tn3270e" #else /*][*/ " --disable-tn3270e" #endif /*]*/ #if defined(X3270_TRACE) /*[*/ " --enable-trace" #else /*][*/ " --disable-trace" #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ " --with-ssl" #else /*][*/ " --without-ssl" #endif /*]*/ #if defined(C3270) /*[*/ # if defined(HAVE_LIBREADLINE) /*[*/ " --with-readline" # else /*][*/ " --without-readline" # endif /*]*/ # if !defined(_WIN32) /*[*/ # if defined(CURSES_WIDE) /*[*/ " --with-curses-wide" # else /*][*/ " --without-curses-wide" # endif /*]*/ # endif /*]*/ #endif /*]*/ #if defined(USE_ICONV) /*[*/ " --with-iconv" #endif /*]*/ ; } void dump_version(void) { printf("%s\n%s\n", build, build_options()); charset_list(); printf("\n" "Copyright 1989-2009, Paul Mattes, GTRC and others.\n" "See the source code or documentation for licensing details.\n" "Distributed WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); exit(0); } /* Scale a number for display. */ const char * display_scale(double d, char *buf, size_t buflen) { if (d >= 1000000.0) snprintf(buf, buflen, "%.3g M", d / 1000000.0); else if (d >= 1000.0) snprintf(buf, buflen, "%.3g K", d / 1000.0); else snprintf(buf, buflen, "%.3g ", d); /* Don't trust snprintf. */ buf[buflen - 1] = '\0'; return buf; } ibm-3270-3.3.10ga4/wc3270/ft_cutc.h0000644000175000017500000000304511254565704015716 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ extern void ft_cut_data(void); ibm-3270-3.3.10ga4/wc3270/Msc/0000755000175000017500000000000011261530022014615 5ustar bastianbastianibm-3270-3.3.10ga4/wc3270/Msc/Makefile0000755000175000017500000001443511254565671016313 0ustar bastianbastian# Copyright (c) 2007-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # nmake Makefile for wc3270 # Set command paths. MKFB = mkfb.exe CC = cl /nologo RC = rc RM = erase # To build with a statically-linked OpenSSL library, uncomment the following # three lines (substituting your OpenSSL install location in the first). #SSLDIR = C:\where\openssl\is\installed #SSLDEF = /DHAVE_LIBSSL=1 /I$(SSLDIR)\include #SSLLIB = $(SSLDIR)\lib\ssleay32.lib $(SSLDIR)\lib\libeay32.lib gdi32.lib XCPPFLAGS = /D_WIN32 /DWC3270 /D_WIN32_WINNT=0x0500 /D_WIN32_IE=0x0500 /DWINVER=0x500 /D_CRT_SECURE_NO_DEPRECATE $(SSLDEF) CFLAGS = $(EXTRA_FLAGS) $(XCPPFLAGS) -I. VOBJS = XtGlue.obj actions.obj ansi.obj apl.obj c3270.obj charset.obj \ ctlr.obj fallbacks.obj ft.obj ft_cut.obj ft_dft.obj glue.obj help.obj \ host.obj icmd.obj idle.obj keymap.obj kybd.obj macros.obj print.obj \ printer.obj proxy.obj readres.obj relink.obj resolver.obj \ resources.obj rpq.obj screen.obj see.obj sf.obj shortcut.obj \ tables.obj telnet.obj toggles.obj trace_ds.obj unicode.obj \ unicode_dbcs.obj utf8.obj util.obj xio.obj w3misc.obj winvers.obj \ windirs.obj wc3270.RES OBJECTS = $(VOBJS) version.obj WOBJECTS = wizard.obj wc3270.RES wversion.obj shortcut.obj winvers.obj \ windirs.obj relink.obj LIBS = $(SSLLIB) ws2_32.lib advapi32.lib user32.lib shell32.lib ole32.lib SHRTLIBS = ole32.lib WIZLIBS = ole32.lib winspool.lib advapi32.lib PROGS = wc3270.exe mkshort.exe wc3270wiz.exe catf.exe ead3270.exe x3270if.exe all: $(PROGS) version.obj: $(VOBJS) version.txt mkversion.exe Msc\Makefile mkversion.exe $(CC) $(CFLAGS) /c version.c mkversion.exe: Msc\mkversion.c $(CC) $(CFLAGS) /Fe$@ Msc\mkversion.c fallbacks.c: $(MKFB) X3270.xad Msc\Makefile $(MKFB) -c X3270.xad $@ fallbacks.obj: fallbacks.c $(CC) $(CFLAGS) /c fallbacks.c $(MKFB): mkfb.c Msc\Makefile $(CC) /Fe$(MKFB) /D_WIN32 /D_CRT_SECURE_NO_DEPRECATE mkfb.c wc3270.RES: wc3270.rc wc3270.ico Msc\Makefile $(RC) wc3270.rc wc3270.exe: $(OBJECTS) Msc\Makefile $(CC) /Fewc3270.exe $(CFLAGS) $(OBJECTS) $(LIBS) mkshort.exe: mkshort.obj shortcut.obj winvers.obj Msc\Makefile $(CC) /Femkshort.exe $(CFLAGS) \ mkshort.obj shortcut.obj winvers.obj $(SHRTLIBS) wversion.obj: version.txt mkversion.exe mkversion.exe -w $(CC) $(CFLAGS) /c wversion.c wc3270wiz.exe: $(WOBJECTS) $(CC) /Fewc3270wiz.exe $(CFLAGS) $(WOBJECTS) $(WIZLIBS) catf.exe: catf.c $(CC) /Fecatf.exe $(CFLAGS) catf.c ead3270.exe: ead3270.obj windirs.obj $(CC) /Fe$@ $(CFLAGS) ead3270.obj windirs.obj advapi32.lib ead3270.obj: ead3270.c $(CC) $(CFLAGS) /c ead3270.c x3270if.exe: x3270if.obj w3misc.obj $(CC) /Fe$@ $(CFLAGS) x3270if.obj w3misc.obj ws2_32.lib x3270if.obj: x3270if.c $(CC) $(CFLAGS) /c x3270if.c clean: erase *.obj *.RES *.exp *.lib $(MKFB) fallbacks.c mkversion.exe version.c wversion.c clobber: clean erase $(PROGS) XtGlue.obj: XtGlue.c $(CC) $(CFLAGS) /c XtGlue.c actions.obj: actions.c $(CC) $(CFLAGS) /c actions.c ansi.obj: ansi.c $(CC) $(CFLAGS) /c ansi.c apl.obj: apl.c $(CC) $(CFLAGS) /c apl.c c3270.obj: c3270.c $(CC) $(CFLAGS) /c c3270.c charset.obj: charset.c $(CC) $(CFLAGS) /c charset.c ctlr.obj: ctlr.c $(CC) $(CFLAGS) /c ctlr.c ft.obj: ft.c $(CC) $(CFLAGS) /c ft.c ft_cut.obj: ft.c $(CC) $(CFLAGS) /c ft_cut.c ft_dft.obj: ft_dft.c $(CC) $(CFLAGS) /c ft_dft.c glue.obj: glue.c $(CC) $(CFLAGS) /c glue.c help.obj: help.c $(CC) $(CFLAGS) /c help.c host.obj: host.c $(CC) $(CFLAGS) /c host.c icmd.obj: icmd.c $(CC) $(CFLAGS) /c icmd.c idle.obj: idle.c $(CC) $(CFLAGS) /c idle.c keymap.obj: keymap.c $(CC) $(CFLAGS) /c keymap.c kybd.obj: kybd.c $(CC) $(CFLAGS) /c kybd.c macros.obj: macros.c $(CC) $(CFLAGS) /c macros.c print.obj: print.c $(CC) $(CFLAGS) /c print.c printer.obj: printer.c $(CC) $(CFLAGS) /c printer.c proxy.obj: proxy.c $(CC) $(CFLAGS) /c proxy.c readres.obj: readres.c $(CC) $(CFLAGS) /c readres.c relink.obj: relink.c $(CC) $(CFLAGS) /c relink.c resolver.obj: resolver.c $(CC) $(CFLAGS) /c resolver.c resources.obj: resources.c $(CC) $(CFLAGS) /c resources.c rpq.obj: rpq.c $(CC) $(CFLAGS) /c rpq.c screen.obj: screen.c $(CC) $(CFLAGS) /c screen.c see.obj: see.c $(CC) $(CFLAGS) /c see.c sf.obj: sf.c $(CC) $(CFLAGS) /c sf.c tables.obj: tables.c $(CC) $(CFLAGS) /c tables.c telnet.obj: telnet.c $(CC) $(CFLAGS) /c telnet.c toggles.obj: toggles.c $(CC) $(CFLAGS) /c toggles.c trace_ds.obj: trace_ds.c $(CC) $(CFLAGS) /c trace_ds.c unicode.obj: unicode.c $(CC) $(CFLAGS) /c unicode.c unicode_dbcs.obj: unicode_dbcs.c $(CC) $(CFLAGS) /c unicode_dbcs.c utf8.obj: utf8.c $(CC) $(CFLAGS) /c utf8.c util.obj: util.c $(CC) $(CFLAGS) /c util.c xio.obj: xio.c $(CC) $(CFLAGS) /c xio.c winvers.obj: winvers.c $(CC) $(CFLAGS) /c winvers.c windirs.obj: windirs.c $(CC) $(CFLAGS) /c windirs.c mkshort.obj: mkshort.c $(CC) $(CFLAGS) /c mkshort.c shortcut.obj: shortcut.c $(CC) $(CFLAGS) /c shortcut.c wizard.obj: wizard.c $(CC) $(CFLAGS) /c wizard.c w3misc.obj: w3misc.c $(CC) $(CFLAGS) /c w3misc.c ibm-3270-3.3.10ga4/wc3270/Msc/deprecated.h0000644000175000017500000000342311254565675017120 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * Redefinitions of POSIX functions that MSC doesn't like the names of. */ #define close _close #define fdopen _fdopen #define fileno _fileno #define getcwd _getcwd #define open _open #define putenv _putenv #define snprintf _snprintf #define unlink _unlink ibm-3270-3.3.10ga4/wc3270/Msc/mkversion.c0000755000175000017500000001172711254565675017041 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * This program is a C-language encapsulation of all but the last line of: * * #! /bin/sh * # Create version.o from version.txt * * # Ensure that 'date' emits 7-bit U.S. ASCII. * LANG=C * LC_ALL=C * export LANG LC_ALL * * set -e * * . ./version.txt * builddate=`date` * sccsdate=`date +%Y/%m/%d` * user=${LOGNAME-$USER} * * # Create an all numeric timestamp for rpqnames. * # rpq.c will return this string of numbers in bcd format * # It is OK to change the length (+ or -), but use * # decimal (0-9) digits only. Length must be even number of digits. * rpq_timestamp=`date +%Y%m%d%H%M%S` * * trap 'rm -f version.c' 0 1 2 15 * * cat <version.c * char *build = "${2-x3270} v$version $builddate $user"; * char *app_defaults_version = "$adversion"; * static char sccsid[] = "@(#)${2-x3270} v$version $sccsdate $user"; * * const char *build_rpq_timestamp = "$rpq_timestamp"; * const char *build_rpq_version = "$version"; * EOF */ #include #include #include #include static char * NewString(char *s) { char *t = malloc(strlen(s) + 1); if (t == NULL) { fprintf(stderr, "out of memory\n"); exit(1); } return strcpy(t, s); } int main(int argc, char *argv[]) { FILE *f; char buf[1024]; char *version = NULL; char *adversion = NULL; char *user; __time64_t t; char *builddate; struct tm *tm; char sccsdate[128]; char rpqtime[128]; int is_w = 0; char *ofile = "version.c"; char *progname = "wc3270"; if (argc > 1 && !strcmp(argv[1], "-w")) { is_w = 1; ofile = "wversion.c"; argv++; argc--; } if (argc > 1) progname = argv[1]; /* Read up version.txt. */ f = fopen("version.txt", "r"); if (f == NULL) { perror("version.txt"); return 1; } while (fgets(buf, sizeof(buf), f) != NULL) { if (!strncmp(buf, "version=\"", 9)) { char *q; version = NewString(buf + 9); q = strchr(version, '"'); if (q == NULL) { fprintf(stderr, "syntax error in version.txt\n"); return 1; } *q = '\0'; } else if (!strncmp(buf, "adversion=\"", 11)) { char *q; adversion = NewString(buf + 11); q = strchr(adversion, '"'); if (q == NULL) { fprintf(stderr, "syntax error in version.txt\n"); return 1; } *q = '\0'; } } fclose(f); if (version == NULL || adversion == NULL) { fprintf(stderr, "missing version= or adversion= in version.txt\n"); return 1; } /* Grab the username. */ user = getenv("USERNAME"); if (user == NULL) { fprintf(stderr, "No %USERNAME%?\n"); return 1; } /* Format the dates. */ _time64(&t); builddate = NewString(_ctime64(&t)); builddate[strlen(builddate) - 1] = '\0'; tm = _localtime64(&t); sprintf(sccsdate, "%d/%02d/%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday); sprintf(rpqtime, "%02d%02d%02d%02d%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); /* Create the code. */ f = fopen(ofile, "w"); if (f == NULL) { perror(ofile); return 1; } if (is_w) { fprintf(f, "char *wversion = \"%s\";\n", version); } else { fprintf(f, "char *build = \"%s v%s %s %s\";\n", progname, version, builddate, user); fprintf(f, "char *app_defaults_version = \"%s\";\n", adversion); fprintf(f, "static char sccsid[] = \"@(#)%s v%s %s %s\";\n", progname, version, sccsdate, user); fprintf(f, "const char *build_rpq_timestamp = \"%s\";\n", rpqtime); fprintf(f, "const char *build_rpq_version = \"%s\";\n", version); } fclose(f); return 0; } ibm-3270-3.3.10ga4/wc3270/Msc/README.txt0000644000175000017500000000123411254565671016337 0ustar bastianbastianThis directory contains files needed to build wc3270 with command-line Microsoft tools: Makefile Makefile for nmake. To use this Makefile, cd to the directory above this one and run: nmake /f Msc\Makefile mkversion.c C-language replacement for mkversion.sh and mkwversion.sh. deprecated.h #defines to work around some MS-deprecated POSIX function names. Official releases of wc3270 are built and tested with MinGW, not the Microsoft tools. These files are provided as-is, with no guarantee that the resulting executables and DLLs will function properly. Also note that the resulting executable will not include SSL support. ibm-3270-3.3.10ga4/wc3270/printerc.h0000644000175000017500000000351011254565704016112 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * printerc.h * Printer session support */ extern void printer_init(void); extern void printer_lu_dialog(void); extern void printer_start(const char *lu); extern void printer_stop(void); extern Boolean printer_running(void); #if defined(_WIN32) /*[*/ extern void printer_check(void); #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/apl.c0000644000175000017500000001647611254565704015052 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * apl.c * This module handles APL-specific actions. */ #include "globals.h" #if defined(X3270_APL) /*[*/ #include #include "aplc.h" /* * APL keysym translation. * * This code looks a little odd because of how an APL font is implemented. * An APL font has APL graphics in place of the various accented letters and * special symbols in a regular font. APL keysym translation consists of * taking the keysym name for an APL symbol (these names are meaningful only to * x3270) and translating it into the keysym for the regular symbol that the * desired APL symbol _replaces_. * * For example, an APL font has the APL "jot" symbol where a regular font has * the "registered" symbol. So we take the keysym name "jot" and translate it * into the keysym XK_registered. When the XK_registered symbol is displayed * with an APL font, it appears as a "jot". * * The specification of which APL symbols replace which regular symbols is in * IBM GA27-3831, 3174 Establishment Controller Character Set Reference. * * In addition, several standard characters have different names for APL, * for example, "period" becomes "dot". These are included in the table as * well. */ static struct { const char *name; KeySym keysym; int is_ge; } axl[] = { { "Aunderbar", XK_nobreakspace, 1 }, { "Bunderbar", XK_acircumflex, 1 }, { "Cunderbar", XK_adiaeresis, 1 }, { "Dunderbar", XK_agrave, 1 }, { "Eunderbar", XK_aacute, 1 }, { "Funderbar", XK_atilde, 1 }, { "Gunderbar", XK_aring, 1 }, { "Hunderbar", XK_ccedilla, 1 }, { "Iunderbar", XK_ntilde, 1 }, { "Junderbar", XK_eacute, 1 }, { "Kunderbar", XK_ecircumflex, 1 }, { "Lunderbar", XK_ediaeresis, 1 }, { "Munderbar", XK_egrave, 1 }, { "Nunderbar", XK_iacute, 1 }, { "Ounderbar", XK_icircumflex, 1 }, { "Punderbar", XK_idiaeresis, 1 }, { "Qunderbar", XK_igrave, 1 }, { "Runderbar", XK_ssharp, 1 }, { "Sunderbar", XK_Acircumflex, 1 }, { "Tunderbar", XK_Adiaeresis, 1 }, { "Uunderbar", XK_Agrave, 1 }, { "Vunderbar", XK_Aacute, 1 }, { "Wunderbar", XK_Atilde, 1 }, { "Xunderbar", XK_Aring, 1 }, { "Yunderbar", XK_Ccedilla, 1 }, { "Zunderbar", XK_Ntilde, 1 }, { "alpha", XK_asciicircum, 1 }, { "bar", XK_minus, 0 }, { "braceleft", XK_braceleft, 1 }, { "braceright", XK_braceright, 1 }, { "bracketleft", XK_Yacute, 1 }, { "bracketright", XK_diaeresis, 1 }, { "circle", XK_cedilla, 1 }, { "circlebar", XK_Ograve, 1 }, { "circleslope", XK_otilde, 1 }, { "circlestar", XK_Ugrave, 1 }, { "circlestile", XK_ograve, 1 }, { "colon", XK_colon, 0 }, { "comma", XK_comma, 0 }, { "commabar", XK_W, 1 }, /* soliton */ { "del", XK_bracketleft, 1 }, { "delstile", XK_udiaeresis, 1 }, { "delta", XK_bracketright, 1 }, { "deltastile", XK_ugrave, 1 }, { "deltaunderbar", XK_Udiaeresis, 1 }, { "deltilde", XK_Ucircumflex, 1 }, { "diaeresis", XK_Ecircumflex, 1 }, { "diaeresiscircle", XK_V, 1 }, /* soliton */ { "diaeresisdot", XK_Odiaeresis, 1 }, { "diaeresisjot", XK_U, 1 }, /* soliton */ { "diamond", XK_oslash, 1 }, { "dieresis", XK_Ecircumflex, 1 }, { "dieresisdot", XK_Odiaeresis, 1 }, { "divide", XK_onehalf, 1 }, { "dot", XK_period, 0 }, { "downarrow", XK_guillemotright, 1 }, { "downcaret", XK_Igrave, 1 }, { "downcarettilde", XK_ocircumflex, 1 }, { "downshoe", XK_questiondown, 1 }, { "downstile", XK_thorn, 1 }, { "downtack", XK_ETH, 1 }, { "downtackjot", XK_Uacute, 1 }, { "downtackup", XK_onesuperior, 1 }, { "downtackuptack", XK_onesuperior, 1 }, { "epsilon", XK_sterling, 1 }, { "epsilonunderbar", XK_Iacute, 1 }, { "equal", XK_equal, 0 }, { "equalunderbar", XK_backslash, 1 }, { "euro", XK_X, 1 }, /* soliton */ { "greater", XK_greater, 0 }, { "iota", XK_yen, 1 }, { "iotaunderbar", XK_Egrave, 1 }, { "jot", XK_registered, 1 }, { "leftarrow", XK_currency, 1 }, { "leftbracket", XK_Yacute, 1 }, { "leftparen", XK_parenleft, 0 }, { "leftshoe", XK_masculine, 1 }, { "lefttack", XK_Icircumflex, 1 }, { "less", XK_less, 0 }, { "multiply", XK_paragraph, 1 }, { "notequal", XK_acute, 1 }, { "notgreater", XK_eth, 1 }, { "notless", XK_THORN, 1 }, { "omega", XK_copyright, 1 }, { "overbar", XK_mu, 1 }, { "plus", XK_plus, 0 }, { "plusminus", XK_AE, 1 }, { "quad", XK_degree, 1 }, { "quaddivide", XK_Oacute, 1 }, { "quadjot", XK_Ediaeresis, 1 }, { "quadquote", XK_uacute, 1 }, { "quadslope", XK_oacute, 1 }, { "query", XK_question, 0 }, { "quote", XK_apostrophe, 0 }, { "quotedot", XK_ucircumflex, 1 }, { "rho", XK_periodcentered, 1 }, { "rightarrow", XK_plusminus, 1 }, { "rightbracket", XK_diaeresis, 1 }, { "rightparen", XK_parenright, 0 }, { "rightshoe", XK_ordfeminine, 1 }, { "righttack", XK_Idiaeresis, 1 }, { "semicolon", XK_semicolon, 0 }, { "slash", XK_slash, 0 }, { "slashbar", XK_twosuperior, 1 }, { "slope", XK_onequarter, 1 }, { "slopebar", XK_Ocircumflex, 1 }, { "slopequad", XK_oacute, 1 }, { "splat", XK_ae, 1 }, { "squad", XK_odiaeresis, 1 }, { "star", XK_asterisk, 0 }, { "stile", XK_multiply, 1 }, { "tilde", XK_Ooblique, 1 }, { "times", XK_paragraph, 1 }, { "underbar", XK_underscore, 0 }, { "uparrow", XK_guillemotleft, 1 }, { "upcaret", XK_Eacute, 1 }, { "upcarettilde", XK_hyphen, 1 }, { "upshoe", XK_exclamdown, 1 }, { "upshoejot", XK_ydiaeresis, 1 }, { "upstile", XK_yacute, 1 }, { "uptack", XK_macron, 1 }, { "uptackjot", XK_Otilde, 1 }, { 0, 0 } }; /* * Translation from APL ksysym names to indirect APL keysyms. */ KeySym APLStringToKeysym(char *s, int *is_gep) { register int i; if (strncmp(s, "apl_", 4)) return NoSymbol; s += 4; for (i = 0; axl[i].name; i++) if (!strcmp(axl[i].name, s)) { *is_gep = axl[i].is_ge; return axl[i].keysym; } return NoSymbol; } #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/statusc.h0000644000175000017500000000417711254565674015772 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* c3270 verson of statusc.h */ #define status_kybdlock() #define status_script(on) #define status_timing(t0, t1) #define status_untiming() extern void status_compose(Boolean on, unsigned char c, enum keytype keytype); extern void status_ctlr_done(void); extern void status_insert_mode(Boolean on); extern void status_lu(const char *); extern void status_minus(void); extern void status_oerr(int error_type); extern void status_reset(void); extern void status_reverse_mode(Boolean on); extern void status_syswait(void); extern void status_twait(void); extern void status_typeahead(Boolean on); extern void status_push(char *msg); ibm-3270-3.3.10ga4/wc3270/childc.h0000644000175000017500000000341211254565704015513 0ustar bastianbastian/* * Copyright (c) 2001-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * childc.h * Global declarations for child.c. */ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ extern int fork_child(void); extern void child_ignore_output(void); #else /*][*/ #define fork_child() fork() #define child_ignore_output() #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/shlobj_missing.h0000644000175000017500000000266011254565671017306 0ustar bastianbastian#if !defined(_MSC_VER) /*[*/ /* IShellLinkDataList, missing from mingw's . */ extern const GUID IID_IShellLinkDataList; #define INTERFACE IShellLinkDataList DECLARE_INTERFACE_(IShellLinkDataList, IUnknown) { STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(AddDataBlock)(THIS_ VOID*) PURE; STDMETHOD(CopyDataBlock)(THIS_ DWORD,VOID**) PURE; STDMETHOD(RemoveDataBlock)(THIS_ DWORD) PURE; STDMETHOD(GetFlags)(THIS_ DWORD*) PURE; STDMETHOD(SetFlags)(THIS_ DWORD) PURE; }; #undef INTERFACE typedef struct tagDATABLOCKHEADER { DWORD cbSize; DWORD dwSignature; } DATABLOCK_HEADER, *LPDATABLOCK_HEADER, *LPDBLIST; typedef struct { DATABLOCK_HEADER dbh; WORD wFillAttribute; WORD wPopupFillAttribute; COORD dwScreenBufferSize; COORD dwWindowSize; COORD dwWindowOrigin; DWORD nFont; DWORD nInputBufferSize; COORD dwFontSize; UINT uFontFamily; UINT uFontWeight; WCHAR FaceName[LF_FACESIZE]; UINT uCursorSize; BOOL bFullScreen; BOOL bQuickEdit; BOOL bInsertMode; BOOL bAutoPosition; UINT uHistoryBufferSize; UINT uNumberOfHistoryBuffers; BOOL bHistoryNoDup; COLORREF ColorTable[16]; } NT_CONSOLE_PROPS, *LPNT_CONSOLE_PROPS; #define NT_CONSOLE_PROPS_SIG 0xA0000002 typedef struct { DATABLOCK_HEADER dbh; UINT uCodePage; } NT_FE_CONSOLE_PROPS, *LPNT_FE_CONSOLE_PROPS; #define NT_FE_CONSOLE_PROPS_SIG 0xA0000004 #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/charset.c0000644000175000017500000002167211254565704015721 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * charset.c * This module handles character sets. */ #include "globals.h" #include "3270ds.h" #include "resources.h" #include "appres.h" #include "cg.h" #include "charsetc.h" #include "kybdc.h" #include "popupsc.h" #if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) /*[*/ #include "screenc.h" #endif /*]*/ #include "tablesc.h" #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" #include "utilc.h" #include #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(__CYGWIN__) /*[*/ #include #undef _WIN32 #endif /*]*/ /* Globals. */ Boolean charset_changed = False; #define DEFAULT_CGEN 0x02b90000 #define DEFAULT_CSET 0x00000025 unsigned long cgcsgid = DEFAULT_CGEN | DEFAULT_CSET; unsigned long cgcsgid_dbcs = 0L; char *default_display_charset = "3270cg-1a,3270cg-1,iso8859-1"; /* Statics. */ static enum cs_result charset_init2(char *csname, const char *codepage, const char *cgcsgid, const char *display_charsets); static void set_cgcsgids(const char *spec); static int set_cgcsgid(char *spec, unsigned long *idp); static void set_host_codepage(char *codepage); static void set_charset_name(char *csname); static char *host_codepage = CN; static char *charset_name = CN; /* * Change character sets. */ enum cs_result charset_init(char *csname) { enum cs_result rc; #if !defined(_WIN32) /*[*/ char *codeset_name; #endif /*]*/ const char *codepage; const char *cgcsgid; const char *display_charsets; #if defined(X3270_DBCS) /*[*/ const char *dbcs_cgcsgid = NULL; const char *dbcs_display_charsets = NULL; Boolean need_free = False; #endif /*]*/ #if !defined(_WIN32) /*[*/ /* Get all of the locale stuff right. */ setlocale(LC_ALL, ""); /* Figure out the locale code set (character set encoding). */ codeset_name = nl_langinfo(CODESET); #if defined(__CYGWIN__) /*[*/ /* * Cygwin's locale support is quite limited. If the locale * indicates "US-ASCII", which appears to be the only supported * encoding, ignore it and use the Windows ANSI code page, which * observation indicates is what is actually supported. * * Hopefully at some point Cygwin will start returning something * meaningful here and this logic will stop triggering. */ if (!strcmp(codeset_name, "US-ASCII")) codeset_name = xs_buffer("CP%d", GetACP()); #endif /*]*/ set_codeset(codeset_name); #endif /*]*/ /* Do nothing, successfully. */ if (csname == CN || !strcasecmp(csname, "us")) { set_cgcsgids(CN); set_host_codepage(CN); set_charset_name(CN); #if defined(X3270_DISPLAY) /*[*/ (void) screen_new_display_charsets(default_display_charset, "us"); #endif /*]*/ (void) set_uni(CN, &codepage, &cgcsgid, &display_charsets); #if defined(X3270_DBCS) /*[*/ (void) set_uni_dbcs("", NULL, NULL); #endif /*]*/ return CS_OKAY; } if (set_uni(csname, &codepage, &cgcsgid, &display_charsets) < 0) return CS_NOTFOUND; if (appres.sbcs_cgcsgid != CN) cgcsgid = appres.sbcs_cgcsgid; /* override */ #if defined(X3270_DBCS) /*[*/ if (set_uni_dbcs(csname, &dbcs_cgcsgid, &dbcs_display_charsets) == 0) { if (appres.dbcs_cgcsgid != CN) dbcs_cgcsgid = appres.dbcs_cgcsgid; /* override */ cgcsgid = xs_buffer("%s+%s", cgcsgid, dbcs_cgcsgid); display_charsets = xs_buffer("%s+%s", display_charsets, dbcs_display_charsets); need_free = True; } #endif /*]*/ rc = charset_init2(csname, codepage, cgcsgid, display_charsets); #if defined(X3270_DBCS) /*[*/ if (need_free) { Free((char *)cgcsgid); Free((char *)display_charsets); } #endif /*]*/ if (rc != CS_OKAY) { return rc; } return CS_OKAY; } /* Set a CGCSGID. Return 0 for success, -1 for failure. */ static int set_cgcsgid(char *spec, unsigned long *r) { unsigned long cp; char *ptr; if (spec != CN && (cp = strtoul(spec, &ptr, 0)) && ptr != spec && *ptr == '\0') { if (!(cp & ~0xffffL)) *r = DEFAULT_CGEN | cp; else *r = cp; return 0; } else return -1; } /* Set the CGCSGIDs. */ static void set_cgcsgids(const char *spec) { int n_ids = 0; char *spec_copy; char *buf; char *token; if (spec != CN) { buf = spec_copy = NewString(spec); while (n_ids >= 0 && (token = strtok(buf, "+")) != CN) { unsigned long *idp = NULL; buf = CN; switch (n_ids) { case 0: idp = &cgcsgid; break; #if defined(X3270_DBCS) /*[*/ case 1: idp = &cgcsgid_dbcs; break; #endif /*]*/ default: popup_an_error("Extra CGCSGID(s), ignoring"); break; } if (idp == NULL) break; if (set_cgcsgid(token, idp) < 0) { popup_an_error("Invalid CGCSGID '%s', ignoring", token); n_ids = -1; break; } n_ids++; } Free(spec_copy); if (n_ids > 0) return; } if (appres.sbcs_cgcsgid != CN) cgcsgid = strtoul(appres.sbcs_cgcsgid, NULL, 0); else cgcsgid = DEFAULT_CGEN | DEFAULT_CSET; #if defined(X3270_DBCS) /*[*/ if (appres.dbcs_cgcsgid != CN) cgcsgid_dbcs = strtoul(appres.dbcs_cgcsgid, NULL, 0); else cgcsgid_dbcs = 0L; #endif /*]*/ } /* Set the host codepage. */ static void set_host_codepage(char *codepage) { if (codepage == CN) { Replace(host_codepage, NewString("037")); return; } if (host_codepage == CN || strcmp(host_codepage, codepage)) { Replace(host_codepage, NewString(codepage)); } } /* Set the global charset name. */ static void set_charset_name(char *csname) { if (csname == CN) { Replace(charset_name, NewString("us")); charset_changed = False; return; } if ((charset_name != CN && strcmp(charset_name, csname)) || (appres.charset != CN && strcmp(appres.charset, csname))) { Replace(charset_name, NewString(csname)); charset_changed = True; } } /* Character set init, part 2. */ static enum cs_result charset_init2(char *csname, const char *codepage, const char *cgcsgid, const char *display_charsets) { const char *rcs = display_charsets; int n_rcs = 0; char *rcs_copy, *buf, *token; /* Isolate the pieces. */ buf = rcs_copy = NewString(rcs); while ((token = strtok(buf, "+")) != CN) { buf = CN; switch (n_rcs) { case 0: #if defined(X3270_DBCS) /*[*/ case 1: #endif /*]*/ break; default: popup_an_error("Extra charset value(s), ignoring"); break; } n_rcs++; } Free(rcs_copy); #if defined(X3270_DBCS) /*[*/ /* Can't swap DBCS modes while connected. */ if (IN_3270 && (n_rcs == 2) != dbcs) { popup_an_error("Can't change DBCS modes while connected"); return CS_ILLEGAL; } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ if (!screen_new_display_charsets( rcs? rcs: default_display_charset, csname)) { return CS_PREREQ; } #else /*][*/ #if defined(X3270_DBCS) /*[*/ if (n_rcs > 1) dbcs = True; else dbcs = False; #endif /*]*/ #endif /*]*/ /* Set up the cgcsgids. */ set_cgcsgids(cgcsgid); /* Set up the host code page. */ set_host_codepage((char *)codepage); /* Set up the character set name. */ set_charset_name(csname); return CS_OKAY; } /* Return the current host codepage. */ char * get_host_codepage(void) { return (host_codepage != CN)? host_codepage: "037"; } /* Return the current character set name. */ char * get_charset_name(void) { return (charset_name != CN)? charset_name: ((appres.charset != CN)? appres.charset: "us"); } ibm-3270-3.3.10ga4/wc3270/ft_cut.c0000644000175000017500000004436311254565704015556 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ft_cut.c * File transfer, data movement logic, CUT version */ #include #include "globals.h" #if defined(X3270_FT) /*[*/ #include "appres.h" #include "ctlr.h" #include "3270ds.h" #include "actionsc.h" #include "charsetc.h" #include "ctlrc.h" #include "ft_cutc.h" #include "ft_cut_ds.h" #include "ftc.h" #include "kybdc.h" #include "popupsc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" static Boolean cut_xfer_in_progress = False; /* Data stream conversion tables. */ #define NQ 4 /* number of quadrants */ #define NE 77 /* number of elements per quadrant */ #define OTHER_2 2 /* "OTHER 2" quadrant (includes NULL) */ #define XLATE_NULL 0xc1 /* translation of NULL */ static char alphas[NE + 1] = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%&_()<+,-./:>?"; static struct { unsigned char selector; unsigned char xlate[NE]; } conv[NQ] = { { 0x5e, /* ';' */ { 0x40,0xc1,0xc2,0xc3, 0xc4,0xc5,0xc6,0xc7, 0xc8,0xc9,0xd1,0xd2, 0xd3,0xd4,0xd5,0xd6, 0xd7,0xd8,0xd9,0xe2, 0xe3,0xe4,0xe5,0xe6, 0xe7,0xe8,0xe9,0x81, 0x82,0x83,0x84,0x85, 0x86,0x87,0x88,0x89, 0x91,0x92,0x93,0x94, 0x95,0x96,0x97,0x98, 0x99,0xa2,0xa3,0xa4, 0xa5,0xa6,0xa7,0xa8, 0xa9,0xf0,0xf1,0xf2, 0xf3,0xf4,0xf5,0xf6, 0xf7,0xf8,0xf9,0x6c, 0x50,0x6d,0x4d,0x5d, 0x4c,0x4e,0x6b,0x60, 0x4b,0x61,0x7a,0x6e, 0x6f } }, { 0x7e, /* '=' */ { 0x20,0x41,0x42,0x43, 0x44,0x45,0x46,0x47, 0x48,0x49,0x4a,0x4b, 0x4c,0x4d,0x4e,0x4f, 0x50,0x51,0x52,0x53, 0x54,0x55,0x56,0x57, 0x58,0x59,0x5a,0x61, 0x62,0x63,0x64,0x65, 0x66,0x67,0x68,0x69, 0x6a,0x6b,0x6c,0x6d, 0x6e,0x6f,0x70,0x71, 0x72,0x73,0x74,0x75, 0x76,0x77,0x78,0x79, 0x7a,0x30,0x31,0x32, 0x33,0x34,0x35,0x36, 0x37,0x38,0x39,0x25, 0x26,0x27,0x28,0x29, 0x2a,0x2b,0x2c,0x2d, 0x2e,0x2f,0x3a,0x3b, 0x3f } }, { 0x5c, /* '*' */ { 0x00,0x00,0x01,0x02, 0x03,0x04,0x05,0x06, 0x07,0x08,0x09,0x0a, 0x0b,0x0c,0x0d,0x0e, 0x0f,0x10,0x11,0x12, 0x13,0x14,0x15,0x16, 0x17,0x18,0x19,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x3c,0x3d,0x3e, 0x00,0xfa,0xfb,0xfc, 0xfd,0xfe,0xff,0x7b, 0x7c,0x7d,0x7e,0x7f, 0x1a,0x1b,0x1c,0x1d, 0x1e,0x1f,0x00,0x00, 0x00 } }, { 0x7d, /* '\'' */ { 0x00,0xa0,0xa1,0xea, 0xeb,0xec,0xed,0xee, 0xef,0xe0,0xe1,0xaa, 0xab,0xac,0xad,0xae, 0xaf,0xb0,0xb1,0xb2, 0xb3,0xb4,0xb5,0xb6, 0xb7,0xb8,0xb9,0x80, 0x00,0xca,0xcb,0xcc, 0xcd,0xce,0xcf,0xc0, 0x00,0x8a,0x8b,0x8c, 0x8d,0x8e,0x8f,0x90, 0x00,0xda,0xdb,0xdc, 0xdd,0xde,0xdf,0xd0, 0x00,0x00,0x21,0x22, 0x23,0x24,0x5b,0x5c, 0x00,0x5e,0x5f,0x00, 0x9c,0x9d,0x9e,0x9f, 0xba,0xbb,0xbc,0xbd, 0xbe,0xbf,0x9a,0x9b, 0x00 } } }; static char table6[] = "abcdefghijklmnopqrstuvwxyz&-.,:+ABCDEFGHIJKLMNOPQRSTUVWXYZ012345"; static int quadrant = -1; static unsigned long expanded_length; static char *saved_errmsg = CN; #define XLATE_NBUF 32 static int xlate_buffered = 0; /* buffer count */ static int xlate_buf_ix = 0; /* buffer index */ static unsigned char xlate_buf[XLATE_NBUF]; /* buffer */ static void cut_control_code(void); static void cut_data_request(void); static void cut_retransmit(void); static void cut_data(void); static void cut_ack(void); static void cut_abort(const char *s, unsigned short reason); static unsigned from6(unsigned char c); /*static*/ int xlate_getc(void); /* * Convert a buffer for uploading (host->local). * Returns the length of the converted data. * If there is a conversion error, calls cut_abort() and returns -1. */ static int upload_convert(unsigned char *buf, int len, unsigned char *obuf, int obuf_len) { unsigned char *ob0 = obuf; unsigned char *ob = ob0; int nx; while (len-- && obuf_len) { unsigned char c = *buf++; char *ixp; int ix; int oq = -1; retry: if (quadrant < 0) { /* Find the quadrant. */ for (quadrant = 0; quadrant < NQ; quadrant++) { if (c == conv[quadrant].selector) break; } if (quadrant >= NQ) { cut_abort(get_message("ftCutConversionError"), SC_ABORT_XMIT); return -1; } continue; } /* Make sure it's in a valid range. */ if (c < 0x40 || c > 0xf9) { cut_abort(get_message("ftCutConversionError"), SC_ABORT_XMIT); return -1; } /* Translate to a quadrant index. */ ixp = strchr(alphas, ebc2asc0[c]); if (ixp == (char *)NULL) { /* Try a different quadrant. */ oq = quadrant; quadrant = -1; goto retry; } ix = ixp - alphas; /* * See if it's mapped by that quadrant, handling NULLs * specially. */ if (quadrant != OTHER_2 && c != XLATE_NULL && !conv[quadrant].xlate[ix]) { /* Try a different quadrant. */ oq = quadrant; quadrant = -1; goto retry; } /* Map it. */ c = conv[quadrant].xlate[ix]; if (ascii_flag && cr_flag && (c == '\r' || c == 0x1a)) continue; if (!(ascii_flag && remap_flag)) { /* No further translation necessary. */ *ob++ = c; obuf_len--; continue; } /* * Convert to local multi-byte. * We do that by inverting the host's EBCDIC-to-ASCII map, * getting back to EBCDIC, and converting to multi-byte from * there. */ #if defined(X3270_DBCS) /*[*/ switch (ft_dbcs_state) { case FT_DBCS_NONE: if (c == EBC_so) { ft_dbcs_state = FT_DBCS_SO; continue; } /* fall through to non-DBCS case below */ break; case FT_DBCS_SO: if (c == EBC_si) ft_dbcs_state = FT_DBCS_NONE; else { ft_dbcs_byte1 = i_asc2ft[c]; ft_dbcs_state = FT_DBCS_LEFT; } continue; case FT_DBCS_LEFT: if (c == EBC_si) { ft_dbcs_state = FT_DBCS_NONE; continue; } nx = ebcdic_to_multibyte((ft_dbcs_byte1 << 8) | i_asc2ft[c], (char *)ob, obuf_len); if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; ft_dbcs_state = FT_DBCS_SO; continue; } #endif /*]*/ if (c < 0x20 || ((c >= 0x80 && c < 0xa0 && c != 0x9f))) { /* * Control code, treat it as Unicode. * * Note that IND$FILE and the VM 'TYPE' command think * that EBCDIC X'E1' is a control code; IND$FILE maps * it onto ASCII 0x9f. So we skip it explicitly and * treat it as printable here. */ nx = unicode_to_multibyte(c, (char *)ob, obuf_len); } else if (c == 0xff) { nx = unicode_to_multibyte(0x9f, (char *)ob, obuf_len); } else { /* Displayable character, remap. */ c = i_asc2ft[c]; nx = ebcdic_to_multibyte(c, (char *)ob, obuf_len); } if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; } return ob - ob0; } /* * Store a download (local->host) character. * Returns the number of bytes stored. */ static int store_download(unsigned char c, unsigned char *ob) { unsigned char *ixp; unsigned ix; int oq; /* Quadrant already defined. */ if (quadrant >= 0) { ixp = (unsigned char *)memchr(conv[quadrant].xlate, c, NE); if (ixp != (unsigned char *)NULL) { ix = ixp - conv[quadrant].xlate; *ob++ = asc2ebc0[(int)alphas[ix]]; return 1; } } /* Locate a quadrant. */ oq = quadrant; for (quadrant = 0; quadrant < NQ; quadrant++) { if (quadrant == oq) continue; ixp = (unsigned char *)memchr(conv[quadrant].xlate, c, NE); if (ixp == (unsigned char *)NULL) continue; ix = ixp - conv[quadrant].xlate; *ob++ = conv[quadrant].selector; *ob++ = asc2ebc0[(int)alphas[ix]]; return 2; } quadrant = -1; fprintf(stderr, "Oops\n"); return 0; } /* Convert a buffer for downloading (local->host). */ /*static*/ int download_convert(unsigned const char *buf, unsigned len, unsigned char *xobuf) { unsigned char *ob0 = xobuf; unsigned char *ob = ob0; while (len) { unsigned char c = *buf; int consumed; enum me_fail error; ebc_t e; ucs4_t u; /* Handle nulls separately. */ if (!c) { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { ob += store_download(EBC_si, ob); ft_last_dbcs = False; } #endif /*]*/ if (quadrant != OTHER_2) { quadrant = OTHER_2; *ob++ = conv[quadrant].selector; } *ob++ = XLATE_NULL; buf++; len--; continue; } if (!(ascii_flag && remap_flag)) { ob += store_download(c, ob); buf++; len--; continue; } /* * Translate. * * The host uses a fixed EBCDIC-to-ASCII translation table, * which was derived empirically into i_ft2asc/i_asc2ft. * Invert that so that when the host applies its conversion, * it gets the right EBCDIC code. * * DBCS is a guess at this point, assuming that SO and SI * are unmodified by IND$FILE. */ u = multibyte_to_unicode((const char *)buf, len, &consumed, &error); if (u < 0x20 || ((u >= 0x80 && u < 0x9f))) e = i_asc2ft[u]; else if (u == 0x9f) e = 0xff; else e = unicode_to_ebcdic(u); if (e & 0xff00) { #if defined(X3270_DBCS) /*[*/ if (!ft_last_dbcs) ob += store_download(EBC_so, ob); ob += store_download(i_ft2asc[(e >> 8) & 0xff], ob); ob += store_download(i_ft2asc[e & 0xff], ob); ft_last_dbcs = True; #else /*][*/ ob += store_download('?', ob); #endif /*]*/ } else { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { ob += store_download(EBC_si, ob); ft_last_dbcs = False; } #endif /*]*/ if (e == 0) { ob += store_download('?', ob); } else { ob += store_download(i_ft2asc[e], ob); } } buf += consumed; len -= consumed; } return ob - ob0; } /* * Main entry point from ctlr.c. * We have received what looks like an appropriate message from the host. */ void ft_cut_data(void) { switch (ea_buf[O_FRAME_TYPE].cc) { case FT_CONTROL_CODE: cut_control_code(); break; case FT_DATA_REQUEST: cut_data_request(); break; case FT_RETRANSMIT: cut_retransmit(); break; case FT_DATA: cut_data(); break; default: trace_ds("< FT unknown 0x%02x\n", ea_buf[O_FRAME_TYPE].cc); cut_abort(get_message("ftCutUnknownFrame"), SC_ABORT_XMIT); break; } } /* * Process a control code from the host. */ static void cut_control_code(void) { unsigned short code; char *buf; char *bp; int i; trace_ds("< FT CONTROL_CODE "); code = (ea_buf[O_CC_STATUS_CODE].cc << 8) | ea_buf[O_CC_STATUS_CODE + 1].cc; switch (code) { case SC_HOST_ACK: trace_ds("HOST_ACK\n"); cut_xfer_in_progress = True; expanded_length = 0; quadrant = -1; xlate_buffered = 0; cut_ack(); ft_running(True); break; case SC_XFER_COMPLETE: trace_ds("XFER_COMPLETE\n"); cut_ack(); cut_xfer_in_progress = False; ft_complete((String)NULL); break; case SC_ABORT_FILE: case SC_ABORT_XMIT: trace_ds("ABORT\n"); cut_xfer_in_progress = False; cut_ack(); if (ft_state == FT_ABORT_SENT && saved_errmsg != CN) { buf = saved_errmsg; saved_errmsg = CN; } else { int mb_len = 161; bp = buf = Malloc(mb_len); for (i = 0; i < 80; i++) { int xlen; xlen = ebcdic_to_multibyte( ea_buf[O_CC_MESSAGE + i].cc, bp, mb_len); if (xlen) { bp += xlen - 1; mb_len -= xlen - 1; } } *bp-- = '\0'; while (bp >= buf && *bp == ' ') *bp-- = '\0'; if (bp >= buf && *bp == '$') *bp-- = '\0'; while (bp >= buf && *bp == ' ') *bp-- = '\0'; if (!*buf) strcpy(buf, get_message("ftHostCancel")); } ft_complete(buf); Free(buf); break; default: trace_ds("unknown 0x%04x\n", code); cut_abort(get_message("ftCutUnknownControl"), SC_ABORT_XMIT); break; } } /* * Process a data request from the host. */ static void cut_data_request(void) { unsigned char seq = ea_buf[O_DR_FRAME_SEQ].cc; int count; unsigned char cs; int c; int i; unsigned char attr; trace_ds("< FT DATA_REQUEST %u\n", from6(seq)); if (ft_state == FT_ABORT_WAIT) { cut_abort(get_message("ftUserCancel"), SC_ABORT_FILE); return; } /* Copy data into the screen buffer. */ count = 0; while (count < O_UP_MAX && (c = xlate_getc()) != EOF) { ctlr_add(O_UP_DATA + count, c, 0); count++; } /* Check for errors. */ if (ferror(ft_local_file)) { int j; char *msg; /* Clean out any data we may have written. */ for (j = 0; j < count; j++) ctlr_add(O_UP_DATA + j, 0, 0); /* Abort the transfer. */ msg = xs_buffer("read(%s): %s", ft_local_filename, strerror(errno)); cut_abort(msg, SC_ABORT_FILE); Free(msg); return; } /* Send special data for EOF. */ if (!count && feof(ft_local_file)) { ctlr_add(O_UP_DATA, EOF_DATA1, 0); ctlr_add(O_UP_DATA+1, EOF_DATA2, 0); count = 2; } /* Compute the other fields. */ ctlr_add(O_UP_FRAME_SEQ, seq, 0); cs = 0; for (i = 0; i < count; i++) cs ^= ea_buf[O_UP_DATA + i].cc; ctlr_add(O_UP_CSUM, asc2ebc0[(int)table6[cs & 0x3f]], 0); ctlr_add(O_UP_LEN, asc2ebc0[(int)table6[(count >> 6) & 0x3f]], 0); ctlr_add(O_UP_LEN+1, asc2ebc0[(int)table6[count & 0x3f]], 0); /* XXX: Change the data field attribute so it doesn't display. */ attr = ea_buf[O_DR_SF].fa; attr = (attr & ~FA_INTENSITY) | FA_INT_ZERO_NSEL; ctlr_add_fa(O_DR_SF, attr, 0); /* Send it up to the host. */ trace_ds("> FT DATA %u\n", from6(seq)); ft_update_length(); expanded_length += count; action_internal(Enter_action, IA_FT, CN, CN); } /* * (Improperly) process a retransmit from the host. */ static void cut_retransmit(void) { trace_ds("< FT RETRANSMIT\n"); cut_abort(get_message("ftCutRetransmit"), SC_ABORT_XMIT); } /* * Convert an encoded integer. */ static unsigned from6(unsigned char c) { char *p; c = ebc2asc0[c]; p = strchr(table6, c); if (p == CN) return 0; return p - table6; } /* * Process data from the host. */ static void cut_data(void) { static unsigned char cvbuf[O_RESPONSE - O_DT_DATA]; static unsigned char cvobuf[4 * (O_RESPONSE - O_DT_DATA)]; unsigned short raw_length; int conv_length; register int i; trace_ds("< FT DATA\n"); if (ft_state == FT_ABORT_WAIT) { cut_abort(get_message("ftUserCancel"), SC_ABORT_FILE); return; } /* Copy and convert the data. */ raw_length = from6(ea_buf[O_DT_LEN].cc) << 6 | from6(ea_buf[O_DT_LEN + 1].cc); if ((int)raw_length > O_RESPONSE - O_DT_DATA) { cut_abort(get_message("ftCutOversize"), SC_ABORT_XMIT); return; } for (i = 0; i < (int)raw_length; i++) cvbuf[i] = ea_buf[O_DT_DATA + i].cc; if (raw_length == 2 && cvbuf[0] == EOF_DATA1 && cvbuf[1] == EOF_DATA2) { trace_ds("< FT EOF\n"); cut_ack(); return; } conv_length = upload_convert(cvbuf, raw_length, cvobuf, sizeof(cvobuf)); if (conv_length < 0) return; /* Write it to the file. */ if (fwrite((char *)cvobuf, conv_length, 1, ft_local_file) == 0) { char *msg; msg = xs_buffer("write(%s): %s", ft_local_filename, strerror(errno)); cut_abort(msg, SC_ABORT_FILE); Free(msg); } else { ft_length += conv_length; ft_update_length(); cut_ack(); } } /* * Acknowledge a host command. */ static void cut_ack(void) { trace_ds("> FT ACK\n"); action_internal(Enter_action, IA_FT, CN, CN); } /* * Abort a transfer in progress. */ static void cut_abort(const char *s, unsigned short reason) { /* Save the error message. */ Replace(saved_errmsg, NewString(s)); /* Send the abort sequence. */ ctlr_add(RO_FRAME_TYPE, RFT_CONTROL_CODE, 0); ctlr_add(RO_FRAME_SEQ, ea_buf[O_DT_FRAME_SEQ].cc, 0); ctlr_add(RO_REASON_CODE, HIGH8(reason), 0); ctlr_add(RO_REASON_CODE+1, LOW8(reason), 0); trace_ds("> FT CONTROL_CODE ABORT\n"); action_internal(PF_action, IA_FT, "2", CN); /* Update the in-progress pop-up. */ ft_aborting(); } /* * Get the next translated character from the local file. * Returns the character (in EBCDIC), or EOF. */ /*static*/ int xlate_getc(void) { int r; int c; unsigned char cbuf[32]; int nc; int consumed; enum me_fail error; char mb[16]; int mb_len = 0; /* If there is a data buffered, return it. */ if (xlate_buffered) { r = xlate_buf[xlate_buf_ix]; xlate_buf_ix++; xlate_buffered--; return r; } if (ascii_flag) { /* * Get the next (possibly multi-byte) character from the file. */ do { c = fgetc(ft_local_file); if (c == EOF) { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { ft_last_dbcs = False; return EBC_si; } #endif /*]*/ return c; } ft_length++; mb[mb_len++] = c; error = ME_NONE; (void) multibyte_to_unicode(mb, mb_len, &consumed, &error); if (error == ME_INVALID) return -1; } while (error == ME_SHORT); /* Expand it. */ if (ascii_flag && cr_flag && !ft_last_cr && c == '\n') { nc = download_convert((unsigned const char *)"\r", 1, cbuf); } else { nc = 0; ft_last_cr = (c == '\r'); } } else { /* Binary, just read it. */ c = fgetc(ft_local_file); if (c == EOF) return c; mb[0] = c; mb_len = 1; nc = 0; ft_length++; } /* Convert it. */ nc += download_convert((unsigned char *)mb, mb_len, &cbuf[nc]); /* Return it and buffer what's left. */ r = cbuf[0]; if (nc > 1) { int i; for (i = 1; i < nc; i++) xlate_buf[xlate_buffered++] = cbuf[i]; xlate_buf_ix = 0; } return r; } #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/version.txt0000755000175000017500000000004611261527637016346 0ustar bastianbastianversion="3.3.10ga4" adversion="3.3.4" ibm-3270-3.3.10ga4/wc3270/readresc.h0000644000175000017500000000355611254565704016066 0ustar bastianbastian/* * Copyright (c) 2009, Paul Mattes. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * readresc.h * A displayless 3270 Terminal Emulator * Header for resource file reader. */ typedef void (rrf_t)(const char *, const char *); extern int validate_and_split_resource(const char *where, const char *arg, const char **left, unsigned *rnlenp, const char **right); extern int read_resource_filex(const char *filename, Boolean fatal, rrf_t *rrf); ibm-3270-3.3.10ga4/wc3270/actions.c0000644000175000017500000005370511254565704015732 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * actions.c * The X actions table and action debugging code. */ #include "globals.h" #include "appres.h" #include "actionsc.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "printc.h" #include "resources.h" #include "selectc.h" #include "togglesc.h" #include "trace_dsc.h" #include "utilc.h" #include "xioc.h" #if defined(X3270_FT) /*[*/ #include "ftc.h" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ #include "keypadc.h" #include "menubarc.h" #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) || defined(WC3270) /*[*/ #include "screenc.h" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ #include #define MODMAP_SIZE 8 #define MAP_SIZE 13 #define MAX_MODS_PER 4 static struct { const char *name[MAX_MODS_PER]; unsigned int mask; Boolean is_meta; } skeymask[MAP_SIZE] = { { { "Shift" }, ShiftMask, False }, { { (char *)NULL } /* Lock */, LockMask, False }, { { "Ctrl" }, ControlMask, False }, { { CN }, Mod1Mask, False }, { { CN }, Mod2Mask, False }, { { CN }, Mod3Mask, False }, { { CN }, Mod4Mask, False }, { { CN }, Mod5Mask, False }, { { "Button1" }, Button1Mask, False }, { { "Button2" }, Button2Mask, False }, { { "Button3" }, Button3Mask, False }, { { "Button4" }, Button4Mask, False }, { { "Button5" }, Button5Mask, False } }; static Boolean know_mods = False; #endif /*]*/ XtActionsRec all_actions[] = { #if defined(C3270) && defined(X3270_SCRIPT) /*[*/ { "Abort", Abort_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "AltCursor", AltCursor_action }, #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ { "Compose", Compose_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "Cut", Cut_action }, { "Default", Default_action }, { "HandleMenu", HandleMenu_action }, { "HardPrint", PrintText_action }, { "HexString", HexString_action }, #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ { "Info", Info_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "Keymap", TemporaryKeymap_action }, { PA_PFX "ConfigureNotify", PA_ConfigureNotify_action }, { PA_END, PA_End_action }, #endif /*]*/ #if defined(C3270) /*[*/ { "Escape", Escape_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { PA_PFX "EnterLeave", PA_EnterLeave_action }, { PA_PFX "Expose", PA_Expose_action }, { PA_PFX "Focus", PA_Focus_action }, { PA_PFX "GraphicsExpose", PA_GraphicsExpose_action }, { PA_PFX "KeymapNotify", PA_KeymapNotify_action }, # if defined(X3270_TRACE) /*[*/ { PA_KEYMAP_TRACE, PA_KeymapTrace_action }, # endif /*]*/ { PA_PFX "Shift", PA_Shift_action }, { PA_PFX "StateChanged", PA_StateChanged_action }, { PA_PFX "VisibilityNotify",PA_VisibilityNotify_action }, { PA_PFX "WMProtocols", PA_WMProtocols_action }, { PA_PFX "confirm", PA_confirm_action }, { "PrintWindow", PrintWindow_action }, #endif /*]*/ { "PrintText", PrintText_action }, #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ { "Flip", Flip_action }, { "Redraw", Redraw_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "SetFont", SetFont_action }, { "TemporaryKeymap", TemporaryKeymap_action }, # if defined(X3270_FT) && defined(X3270_MENUS) /*[*/ { PA_PFX "dialog-next", PA_dialog_next_action }, { PA_PFX "dialog-focus", PA_dialog_focus_action }, # endif /*]*/ { "insert-selection", insert_selection_action }, { "move-select", move_select_action }, { "select-end", select_end_action }, { "select-extend", select_extend_action }, { "select-start", select_start_action }, { "set-select", set_select_action }, { "start-extend", start_extend_action }, #endif /*]*/ #if defined(X3270_SCRIPT) || defined(S3270) /*[*/ { "AnsiText", AnsiText_action }, #endif /*]*/ { "Ascii", Ascii_action }, { "AsciiField", AsciiField_action }, { "Attn", Attn_action }, { "BackSpace", BackSpace_action }, { "BackTab", BackTab_action }, #if defined(X3270_SCRIPT) && (defined(X3270_DISPLAY) || defined(C3270)) /*[*/ { "Bell", Bell_action }, #endif /*]*/ { "CircumNot", CircumNot_action }, { "Clear", Clear_action }, #if defined(C3270) /*[*/ { "Close", Disconnect_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "CloseScript", CloseScript_action }, #endif /*]*/ { "Connect", Connect_action }, #if defined(X3270_SCRIPT) /*[*/ { "ContinueScript", ContinueScript_action }, #endif /*]*/ { "CursorSelect", CursorSelect_action }, { "Delete", Delete_action }, { "DeleteField", DeleteField_action }, { "DeleteWord", DeleteWord_action }, { "Disconnect", Disconnect_action }, { "Down", Down_action }, { "Dup", Dup_action }, { "Ebcdic", Ebcdic_action }, { "EbcdicField", EbcdicField_action }, { "Enter", Enter_action }, { "Erase", Erase_action }, { "EraseEOF", EraseEOF_action }, { "EraseInput", EraseInput_action }, #if defined(X3270_SCRIPT) /*[*/ { "Execute", Execute_action }, #endif /*]*/ #if defined(C3270) || defined(WC3270) /*[*/ { "Exit", Quit_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "Expect", Expect_action }, #endif /*]*/ { "FieldEnd", FieldEnd_action }, { "FieldMark", FieldMark_action }, { "HexString", HexString_action}, #if defined(C3270) || defined(WC3270) /*[*/ { "Help", Help_action}, #endif/*]*/ #if defined(X3270_SCRIPT) /*[*/ { "Plugin", Plugin_action}, #endif/*]*/ { "Home", Home_action }, { "Insert", Insert_action }, { "Interrupt", Interrupt_action }, { "Key", Key_action }, #if defined(X3270_DISPLAY) /*[*/ { "KybdSelect", KybdSelect_action }, #endif /*]*/ { "Left", Left_action }, { "Left2", Left2_action }, #if defined(X3270_SCRIPT) || defined(S3270) /*[*/ { "Macro", Macro_action }, #endif /*]*/ { "MonoCase", MonoCase_action }, #if defined(X3270_DISPLAY) /*[*/ { "MouseSelect", MouseSelect_action }, #endif /*]*/ { "MoveCursor", MoveCursor_action }, { "Newline", Newline_action }, { "NextWord", NextWord_action }, #if defined(C3270) || defined(WC3270) /*[*/ { "Open", Connect_action }, #endif /*]*/ { "PA", PA_action }, { "PF", PF_action }, #if defined(WC3270) /*[*/ { "Paste", Paste_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "PauseScript", PauseScript_action }, #endif /*]*/ { "PreviousWord", PreviousWord_action }, #if defined(X3270_PRINTER) /*[*/ { "Printer", Printer_action }, #endif /*]*/ #if defined(X3270_SCRIPT) || defined(S3270) /*[*/ { "Query", Query_action }, #endif /*]*/ { "Quit", Quit_action }, #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ { "ReadBuffer", ReadBuffer_action }, #endif /*]*/ #if defined(X3270_MENUS) /*[*/ { "Reconnect", Reconnect_action }, #endif /*]*/ { "Reset", Reset_action }, { "Right", Right_action }, { "Right2", Right2_action }, #if defined(X3270_DISPLAY) /*[*/ { "SelectAll", SelectAll_action }, { "SelectDown", SelectDown_action }, { "SelectMotion", SelectMotion_action }, { "SelectUp", SelectUp_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "Script", Script_action }, #endif /*]*/ #if defined(C3270) /*[*/ { "Show", Show_action }, #endif/*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ { "Snap", Snap_action }, #endif /*]*/ #if !defined(TCL3270) /*[*/ { "Source", Source_action }, #endif /*]*/ #if defined(TCL3270) /*[*/ { "Status", Status_action }, #endif /*]*/ { "String", String_action }, { "SysReq", SysReq_action }, { "Tab", Tab_action }, #if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ { "Title", Title_action }, #endif /*]*/ { "Toggle", Toggle_action }, { "ToggleInsert", ToggleInsert_action }, { "ToggleReverse", ToggleReverse_action }, #if defined(C3270) && defined(X3270_TRACE) /*[*/ { "Trace", Trace_action }, #endif/*]*/ #if defined(X3270_FT) /*[*/ { "Transfer", Transfer_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "Unselect", Unselect_action }, #endif /*]*/ { "Up", Up_action }, #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ { "Wait", Wait_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "WindowState", WindowState_action }, #endif /*]*/ { "ignore", ignore_action } }; int actioncount = XtNumber(all_actions); XtActionsRec *actions = NULL; /* Actions that are aliases for other actions. */ static char *aliased_actions[] = { "Close", "HardPrint", "Open", NULL }; enum iaction ia_cause; const char *ia_name[] = { "String", "Paste", "Screen redraw", "Keypad", "Default", "Key", "Macro", "Script", "Peek", "Typeahead", "File transfer", "Command", "Keymap", "Idle" }; /* No-op action for suppressed actions. */ static void suppressed_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(suppressed_action, event, params, num_params); } /* Look up an action name in the suppressed actions resource. */ static Boolean action_suppressed(String name, char *suppress) { char *s = suppress; char *t; while ((t = strstr(s, name)) != CN) { char b; char e = s[strlen(name)]; if (t == suppress) b = '\0'; else b = *(t - 1); if ((b == '\0' || b == ')' || isspace(b)) && (e == '\0' || e == '(' || isspace(e))) return True; s += strlen(name); } return False; } /* * Action table initialization. * Uses the suppressActions resource to prune the actions table. */ void action_init(void) { char *suppress; int i; /* See if there are any filters at all. */ suppress = get_resource(ResSuppressActions); if (suppress == CN) { actions = all_actions; return; } /* Yes, we'll need to copy the table and prune it. */ actions = (XtActionsRec *)Malloc(sizeof(all_actions)); memcpy(actions, all_actions, sizeof(all_actions)); for (i = 0; i < actioncount; i++) { if (action_suppressed(actions[i].string, suppress)) actions[i].proc = suppressed_action; } } /* * Return a name for an action. */ const char * action_name(XtActionProc action) { register int i; /* * XXX: It would be better if the real name could be displayed, with a * message indicating it is suppressed. */ if (action == suppressed_action) return "(suppressed)"; for (i = 0; i < actioncount; i++) if (actions[i].proc == action) { int j; Boolean aliased = False; for (j = 0; aliased_actions[j] != CN; j++) { if (!strcmp(aliased_actions[j], actions[i].string)) { aliased = True; break; } } if (!aliased) return actions[i].string; } return "(unknown)"; } #if defined(X3270_DISPLAY) /*[*/ /* * Search the modifier map to learn the modifier bits for Meta, Alt, Hyper and * Super. */ static void learn_modifiers(void) { XModifierKeymap *mm; int i, j, k; static char *default_modname[] = { CN, CN, "Ctrl", "Mod1", "Mod2", "Mod3", "Mod4", "Mod5", "Button1", "Button2", "Button3", "Button4", "Button5" }; mm = XGetModifierMapping(display); for (i = 0; i < MODMAP_SIZE; i++) { for (j = 0; j < mm->max_keypermod; j++) { KeyCode kc; const char *name = CN; Boolean is_meta = False; kc = mm->modifiermap[(i * mm->max_keypermod) + j]; if (!kc) continue; switch(XKeycodeToKeysym(display, kc, 0)) { case XK_Meta_L: case XK_Meta_R: name = "Meta"; is_meta = True; break; case XK_Alt_L: case XK_Alt_R: name = "Alt"; break; case XK_Super_L: case XK_Super_R: name = "Super"; break; case XK_Hyper_L: case XK_Hyper_R: name = "Hyper"; break; default: break; } if (name == CN) continue; if (is_meta) skeymask[i].is_meta = True; for (k = 0; k < MAX_MODS_PER; k++) { if (skeymask[i].name[k] == CN) break; else if (!strcmp(skeymask[i].name[k], name)) k = MAX_MODS_PER; } if (k >= MAX_MODS_PER) continue; skeymask[i].name[k] = name; } } for (i = 0; i < MODMAP_SIZE; i++) { if (skeymask[i].name[0] == CN) { skeymask[i].name[0] = default_modname[i]; } } XFreeModifiermap(mm); } #if defined(X3270_TRACE) /*[*/ /* * Return the symbolic name for the modifier combination (i.e., "Meta" instead * of "Mod2". Note that because it is possible to map multiple keysyms to the * same modifier bit, the answer may be ambiguous; we return the combinations * iteratively. */ static char * key_symbolic_state(unsigned int state, int *iteration) { static char rs[64]; static int ix[MAP_SIZE]; static int ix_ix[MAP_SIZE]; static int n_ix = 0; static int leftover = 0; const char *comma = ""; int i; if (!know_mods) { learn_modifiers(); know_mods = True; } if (*iteration == 0) { /* First time, build the table. */ n_ix = 0; for (i = 0; i < MAP_SIZE; i++) { if (skeymask[i].name[0] != CN && (state & skeymask[i].mask)) { ix[i] = 0; state &= ~skeymask[i].mask; ix_ix[n_ix++] = i; } else ix[i] = MAX_MODS_PER; } leftover = state; } /* Construct this result. */ rs[0] = '\0'; for (i = 0; i < n_ix; i++) { (void) strcat(rs, comma); (void) strcat(rs, skeymask[ix_ix[i]].name[ix[ix_ix[i]]]); comma = " "; } #if defined(VERBOSE_EVENTS) /*[*/ if (leftover) (void) sprintf(strchr(rs, '\0'), "%s?%d", comma, state); #endif /*]*/ /* * Iterate to the next. * This involves treating each slot like an n-ary number, where n is * the number of elements in the slot, iterating until the highest- * ordered slot rolls back over to 0. */ if (n_ix) { i = n_ix - 1; ix[ix_ix[i]]++; while (i >= 0 && (ix[ix_ix[i]] >= MAX_MODS_PER || skeymask[ix_ix[i]].name[ix[ix_ix[i]]] == CN)) { ix[ix_ix[i]] = 0; i = i - 1; if (i >= 0) ix[ix_ix[i]]++; } *iteration = i >= 0; } else *iteration = 0; return rs; } #endif /*]*/ /* Return whether or not an KeyPress event state includes the Meta key. */ Boolean event_is_meta(int state) { int i; /* Learn the modifier map. */ if (!know_mods) { learn_modifiers(); know_mods = True; } for (i = 0; i < MAP_SIZE; i++) { if (skeymask[i].name[0] != CN && skeymask[i].is_meta && (state & skeymask[i].mask)) { return True; } } return False; } #if defined(VERBOSE_EVENTS) /*[*/ static char * key_state(unsigned int state) { static char rs[64]; const char *comma = ""; static struct { const char *name; unsigned int mask; } keymask[] = { { "Shift", ShiftMask }, { "Lock", LockMask }, { "Control", ControlMask }, { "Mod1", Mod1Mask }, { "Mod2", Mod2Mask }, { "Mod3", Mod3Mask }, { "Mod4", Mod4Mask }, { "Mod5", Mod5Mask }, { "Button1", Button1Mask }, { "Button2", Button2Mask }, { "Button3", Button3Mask }, { "Button4", Button4Mask }, { "Button5", Button5Mask }, { CN, 0 }, }; int i; rs[0] = '\0'; for (i = 0; keymask[i].name; i++) { if (state & keymask[i].mask) { (void) strcat(rs, comma); (void) strcat(rs, keymask[i].name); comma = "|"; state &= ~keymask[i].mask; } } if (!rs[0]) (void) sprintf(rs, "%d", state); else if (state) (void) sprintf(strchr(rs, '\0'), "%s?%d", comma, state); return rs; } #endif /*]*/ #endif /*]*/ /* * Check the number of argument to an action, and possibly pop up a usage * message. * * Returns 0 if the argument count is correct, -1 otherwise. */ int check_usage(XtActionProc action, Cardinal nargs, Cardinal nargs_min, Cardinal nargs_max) { if (nargs >= nargs_min && nargs <= nargs_max) return 0; if (nargs_min == nargs_max) popup_an_error("%s requires %d argument%s", action_name(action), nargs_min, nargs_min == 1 ? "" : "s"); else popup_an_error("%s requires %d or %d arguments", action_name(action), nargs_min, nargs_max); cancel_if_idle_command(); return -1; } /* * Display an action debug message */ #if defined(X3270_TRACE) /*[*/ #define KSBUF 256 void action_debug(XtActionProc action, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; char pbuf[1024]; #if defined(X3270_DISPLAY) /*[*/ XKeyEvent *kevent; KeySym ks; XButtonEvent *bevent; XMotionEvent *mevent; XConfigureEvent *cevent; XClientMessageEvent *cmevent; XExposeEvent *exevent; const char *press = "Press"; const char *direction = "Down"; char dummystr[KSBUF+1]; char *atom_name; int ambiguous = 0; int state; const char *symname = ""; char snbuf[11]; #endif /*]*/ if (!toggled(EVENT_TRACE)) return; if (event == (XEvent *)NULL) { trace_event(" %s", ia_name[(int)ia_cause]); } #if defined(X3270_DISPLAY) /*[*/ else switch (event->type) { case KeyRelease: press = "Release"; case KeyPress: kevent = (XKeyEvent *)event; (void) XLookupString(kevent, dummystr, KSBUF, &ks, NULL); state = kevent->state; /* * If the keysym is a printable ASCII character, ignore the * Shift key. */ if (ks != ' ' && !(ks & ~0xff) && isprint(ks)) state &= ~ShiftMask; if (ks == NoSymbol) symname = "NoSymbol"; else if ((symname = XKeysymToString(ks)) == CN) { (void) sprintf(snbuf, "0x%lx", (unsigned long)ks); symname = snbuf; } do { int was_ambiguous = ambiguous; trace_event("%s ':%s%s'", was_ambiguous? " or": "Event", key_symbolic_state(state, &ambiguous), press, symname); } while (ambiguous); /* * If the keysym is an alphanumeric ASCII character, show the * case-insensitive alternative, sans the colon. */ if (!(ks & ~0xff) && isalpha(ks)) { ambiguous = 0; do { int was_ambiguous = ambiguous; trace_event(" %s '%s%s'", was_ambiguous? "or": "(case-insensitive:", key_symbolic_state(state, &ambiguous), press, symname); } while (ambiguous); trace_event(")"); } #if defined(VERBOSE_EVENTS) /*[*/ trace_event("\nKey%s [state %s, keycode %d, keysym " "0x%lx \"%s\"]", press, key_state(kevent->state), kevent->keycode, ks, symname); #endif /*]*/ break; case ButtonRelease: press = "Release"; direction = "Up"; case ButtonPress: bevent = (XButtonEvent *)event; do { int was_ambiguous = ambiguous; trace_event("%s '%s'", was_ambiguous? " or": "Event", key_symbolic_state(bevent->state, &ambiguous), bevent->button, direction); } while (ambiguous); #if defined(VERBOSE_EVENTS) /*[*/ trace_event("\nButton%s [state %s, button %d]", press, key_state(bevent->state), bevent->button); #endif /*]*/ break; case MotionNotify: mevent = (XMotionEvent *)event; do { int was_ambiguous = ambiguous; trace_event("%s '%s'", was_ambiguous? " or": "Event", key_symbolic_state(mevent->state, &ambiguous)); } while (ambiguous); #if defined(VERBOSE_EVENTS) /*[*/ trace_event("\nMotionNotify [state %s]", key_state(mevent->state)); #endif /*]*/ break; case EnterNotify: trace_event("EnterNotify"); break; case LeaveNotify: trace_event("LeaveNotify"); break; case FocusIn: trace_event("FocusIn"); break; case FocusOut: trace_event("FocusOut"); break; case KeymapNotify: trace_event("KeymapNotify"); break; case Expose: exevent = (XExposeEvent *)event; trace_event("Expose [%dx%d+%d+%d]", exevent->width, exevent->height, exevent->x, exevent->y); break; case PropertyNotify: trace_event("PropertyNotify"); break; case ClientMessage: cmevent = (XClientMessageEvent *)event; atom_name = XGetAtomName(display, (Atom)cmevent->data.l[0]); trace_event("ClientMessage [%s]", (atom_name == CN) ? "(unknown)" : atom_name); break; case ConfigureNotify: cevent = (XConfigureEvent *)event; trace_event("ConfigureNotify [%dx%d+%d+%d]", cevent->width, cevent->height, cevent->x, cevent->y); break; default: trace_event("Event %d", event->type); break; } if (keymap_trace != CN) trace_event(" via %s -> %s(", keymap_trace, action_name(action)); else #endif /*]*/ trace_event(" -> %s(", action_name(action)); for (i = 0; i < *num_params; i++) { trace_event("%s\"%s\"", i ? ", " : "", scatv(params[i], pbuf, sizeof(pbuf))); } trace_event(")\n"); trace_rollover_check(); } #endif /*]*/ /* * Wrapper for calling an action internally. */ void action_internal(XtActionProc action, enum iaction cause, const char *parm1, const char *parm2) { Cardinal count = 0; String parms[2]; /* Duplicate the parms, because XtActionProc doesn't grok 'const'. */ if (parm1 != CN) { parms[0] = NewString(parm1); count++; if (parm2 != CN) { parms[1] = NewString(parm2); count++; } } ia_cause = cause; (*action)((Widget) NULL, (XEvent *) NULL, count ? parms : (String *) NULL, &count); /* Free the parm copies. */ switch (count) { case 2: Free(parms[1]); /* fall through... */ case 1: Free(parms[0]); break; default: break; } } ibm-3270-3.3.10ga4/wc3270/mkversion.sh0000755000175000017500000000462111254565673016500 0ustar bastianbastian#! /bin/sh # # Copyright (c) 1999-2009, Paul Mattes. # Copyright (c) 2005, Don Russell. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor # the names of their contributors may be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Create version.o from version.txt #set -x # Ensure that 'date' emits 7-bit U.S. ASCII. LANG=C LC_ALL=C export LANG LC_ALL set -e . ./version.txt builddate=`date` sccsdate=`date +%Y/%m/%d` user=${LOGNAME-$USER} # Create an all numeric timestamp for rpqnames. # rpq.c will return this string of numbers in bcd format # It is OK to change the length (+ or -), but use # decimal (0-9) digits only. Length must be even number of digits. rpq_timestamp=`date +%Y%m%d%H%M%S` trap 'rm -f version.c' 0 1 2 15 cat <version.c char *build = "${2-x3270} v$version $builddate $user"; char *app_defaults_version = "$adversion"; static char sccsid[] = "@(#)${2-x3270} v$version $sccsdate $user"; const char *build_rpq_timestamp = "$rpq_timestamp"; const char *build_rpq_version = "$version"; EOF ${1-cc} -c version.c ibm-3270-3.3.10ga4/wc3270/host.c0000644000175000017500000006224611254565704015247 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * host.c * This module handles the ibm_hosts file, connecting to and * disconnecting from hosts, and state changes on the host * connection. */ #include "globals.h" #include "appres.h" #include "resources.h" #include "actionsc.h" #include "hostc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utilc.h" #include "xioc.h" #include #define RECONNECT_MS 2000 /* 2 sec before reconnecting to host */ #define RECONNECT_ERR_MS 5000 /* 5 sec before reconnecting to host */ #define MAX_RECENT 5 enum cstate cstate = NOT_CONNECTED; Boolean std_ds_host = False; Boolean no_login_host = False; Boolean non_tn3270e_host = False; Boolean passthru_host = False; Boolean ssl_host = False; #define LUNAME_SIZE 16 char luname[LUNAME_SIZE+1]; char *connected_lu = CN; char *connected_type = CN; Boolean ever_3270 = False; char *current_host = CN; char *full_current_host = CN; unsigned short current_port; char *reconnect_host = CN; char *qualified_host = CN; struct host *hosts = (struct host *)NULL; static struct host *last_host = (struct host *)NULL; static Boolean auto_reconnect_inprogress = False; static int net_sock = -1; #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ static unsigned long reconnect_id = 0; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ static void save_recent(const char *); #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ static void try_reconnect(void); #endif /*]*/ static char * stoken(char **s) { char *r; char *ss = *s; if (!*ss) return NULL; r = ss; while (*ss && *ss != ' ' && *ss != '\t') ss++; if (*ss) { *ss++ = '\0'; while (*ss == ' ' || *ss == '\t') ss++; } *s = ss; return r; } /* * Read the host file */ void hostfile_init(void) { FILE *hf; char buf[1024]; static Boolean hostfile_initted = False; struct host *h; char *hostfile_name; if (hostfile_initted) return; hostfile_initted = True; hostfile_name = appres.hostsfile; if (hostfile_name == CN) hostfile_name = xs_buffer("%s/ibm_hosts", appres.conf_dir); else hostfile_name = do_subst(appres.hostsfile, True, True); hf = fopen(hostfile_name, "r"); if (hf != (FILE *)NULL) { while (fgets(buf, sizeof(buf), hf)) { char *s = buf; char *name, *entry_type, *hostname; char *slash; if (strlen(buf) > (unsigned)1 && buf[strlen(buf) - 1] == '\n') { buf[strlen(buf) - 1] = '\0'; } while (isspace(*s)) s++; if (!*s || *s == '#') continue; name = stoken(&s); entry_type = stoken(&s); hostname = stoken(&s); if (!name || !entry_type || !hostname) { popup_an_error("Bad %s syntax, entry skipped", ResHostsFile); continue; } h = (struct host *)Malloc(sizeof(*h)); if (!split_hier(NewString(name), &h->name, &h->parents)) { Free(h); continue; } h->hostname = NewString(hostname); /* * Quick syntax extension to allow the hosts file to * specify a port as host/port. */ if ((slash = strchr(h->hostname, '/'))) *slash = ':'; if (!strcmp(entry_type, "primary")) h->entry_type = PRIMARY; else h->entry_type = ALIAS; if (*s) h->loginstring = NewString(s); else h->loginstring = CN; h->prev = last_host; h->next = (struct host *)NULL; if (last_host) last_host->next = h; else hosts = h; last_host = h; } (void) fclose(hf); } else if (appres.hostsfile != CN) { popup_an_errno(errno, "Cannot open " ResHostsFile " '%s'", appres.hostsfile); } Free(hostfile_name); #if defined(X3270_DISPLAY) /*[*/ /* * Read the recent-connection file, and prepend it to the hosts list. */ save_recent(CN); #endif /*]*/ } /* * Look up a host in the list. Turns aliases into real hostnames, and * finds loginstrings. */ static int hostfile_lookup(const char *name, char **hostname, char **loginstring) { struct host *h; hostfile_init(); for (h = hosts; h != (struct host *)NULL; h = h->next) { if (h->entry_type == RECENT) continue; if (!strcmp(name, h->name)) { *hostname = h->hostname; if (h->loginstring != CN) { *loginstring = h->loginstring; } else { *loginstring = appres.login_macro; } return 1; } } return 0; } #if defined(LOCAL_PROCESS) /*[*/ /* Recognize and translate "-e" options. */ static const char * parse_localprocess(const char *s) { int sl = strlen(OptLocalProcess); if (!strncmp(s, OptLocalProcess, sl)) { if (s[sl] == ' ') return(s + sl + 1); else if (s[sl] == '\0') { char *r; r = getenv("SHELL"); if (r != CN) return r; else return "/bin/sh"; } } return CN; } #endif /*]*/ static char *pfxstr = "AaCcLlNnPpSs"; /* * A new hostname parser. A bit more general. * Allows backslashes to quote anything. * Allows [ ] to quote : and @ inside any name (LU, host or port). * * Because the syntax is so awful, it needs to be picked apart explicitly. * Returns 0 for success, -1 for syntax error. */ static int new_split_host(char *raw, char **lu, char **host, char **port, unsigned *prefixes) { char *start = raw; int sl = strlen(raw); char *s; char *uq = NULL; int uq_len = 0; char *qmap = NULL; char *rqmap; char *errmsg = "nonspecific"; int rc = -1; Boolean quoted = False; int bracketed = 0; int n_ch = 0; int n_at = 0; int n_colon = 0; char *part[3] = { NULL, NULL, NULL }; int part_ix = 0; char *pfx; *lu = NULL; *host = NULL; *port = NULL; *prefixes = 0; /* Trim leading and trailing blanks. */ while (sl && isspace(*start)) { start++; sl--; } while (sl && isspace(start[sl - 1])) sl--; if (!sl) { errmsg = "empty string"; goto done; } /* * 'start' now points to the start of the string, and sl is its length. */ /* * Create a bit-map of quoted characters. * This includes and character preceded by \, and any : or @ inside * unquoted [ and ]. * This can fail if an unquoted [ is found inside a [ ], or if an * unquoted [ is not terminated, or if whitespace is found. * Backslashes and unquoted square brackets are deleted at this point. * Leaves a filtered copy of the string in uq[]. */ uq = Malloc(sl + 1); qmap = Malloc(sl + 1); memset(qmap, ' ', sl); qmap[sl] = '\0'; rqmap = qmap; for (s = start; s - start < sl; s++) { if (isspace(*s)) { errmsg = "contains whitespace"; goto done; } if (quoted) { qmap[uq_len] = '+'; quoted = False; uq[uq_len++] = *s; continue; } else if (*s == '\\') { quoted = True; continue; } if (bracketed) { if (*s == ':' || *s == '@') qmap[uq_len] = '+'; /* add the character below */ else if (*s == '[') { errmsg = "nested '['"; goto done; } else if (*s == ']') { /* * What follows has to be the end of the * string, or an unquoted ':' or a '@'. */ if ((s - start) == sl - 1 || *(s + 1) == '@' || *(s + 1) == ':') bracketed = 0; else { errmsg = "text following ']'"; goto done; } continue; } } else if (*s == '[') { /* * Make sure that what came before is the beginning of * the string or an unquoted : or @. */ if (uq_len == 0 || (qmap[uq_len - 1] == ' ' && (uq[uq_len - 1] == ':' || uq[uq_len - 1] == '@'))) bracketed = 1; else { errmsg = "text preceding '['"; goto done; } continue; } uq[uq_len++] = *s; } if (quoted) { errmsg = "dangling '\\'"; goto done; } if (bracketed) { errmsg = "missing ']'"; goto done; } if (!uq_len) { errmsg = "empty hostname"; goto done; } uq[uq_len] = '\0'; /* Trim off prefixes. */ s = uq; while ((pfx = strchr(pfxstr, *s)) != NULL && qmap[(s + 1) - uq] == ' ' && *(s + 1) == ':') { *prefixes |= 1 << ((pfx - pfxstr) / 2); s += 2; rqmap += 2; } start = s; /* * Now check for syntax: [LUname@]hostname[:port] * So more than one @, more than one :, : before @, or no text before @ * or :, or no text after : are all syntax errors. * This also lets us figure out which elements are there. */ while (*s) { if (rqmap[s - start] == ' ') { if (*s == '@') { if (n_ch == 0) { errmsg = "empty LU name"; goto done; } if (n_colon > 0) { errmsg = "'@' after ':'"; goto done; } if (n_at > 0) { errmsg = "double '@'"; goto done; } n_at++; n_ch = 0; } else if (*s == ':') { if (n_ch == 0) { errmsg = "empty hostname"; goto done; } if (n_colon > 0) { errmsg = "double ':'"; goto done; } n_colon++; n_ch = 0; } else n_ch++; } else n_ch++; s++; } if (!n_ch) { if (n_colon) errmsg = "empty port"; else errmsg = "empty hostname"; goto done; } /* * The syntax is clean, and we know what parts there are. * Split them out. */ if (n_at) { *lu = Malloc(uq_len + 1); part[0] = *lu; } *host = Malloc(uq_len + 1); part[1] = *host; if (n_colon) { *port = Malloc(uq_len + 1); part[2] = *port; } s = start; n_ch = 0; while (*s) { if (rqmap[s - start] == ' ' && (*s == '@' || *s == ':')) { part[part_ix][n_ch] = '\0'; part_ix++; n_ch = 0; } else { while (part[part_ix] == NULL) part_ix++; part[part_ix][n_ch++] = *s; } s++; } part[part_ix][n_ch] = '\0'; /* Success! */ rc = 0; done: if (uq != NULL) Free(uq); if (qmap != NULL) Free(qmap); if (rc < 0) popup_an_error("Hostname syntax error: %s", errmsg); return rc; } /* * Strip qualifiers from a hostname. * Returns the hostname part in a newly-malloc'd string. * 'needed' is returned True if anything was actually stripped. * Returns NULL if there is a syntax error. */ static char * split_host(char *s, Boolean *ansi, Boolean *std_ds, Boolean *passthru, Boolean *non_e, Boolean *secure, Boolean *no_login, char *xluname, char **port, Boolean *needed) { char *lu; char *host; unsigned prefixes; Boolean *pfxptr[6]; int i; *needed = False; /* Call the sane, new version. */ if (new_split_host(s, &lu, &host, port, &prefixes) < 0) return NULL; else { if (lu) { strncpy(xluname, lu, LUNAME_SIZE); xluname[LUNAME_SIZE] = '\0'; } else *xluname = '\0'; pfxptr[0] = ansi; /* A: */ pfxptr[1] = no_login; /* C: */ pfxptr[2] = secure; /* L: */ pfxptr[3] = non_e; /* N: */ pfxptr[4] = passthru; /* P: */ pfxptr[5] = std_ds; /* S: */ for (i = 0; i < 6; i++) if (prefixes & (1 << i)) *pfxptr[i] = True; *needed = (strcmp(s, host) != 0); return host; } } /* * Network connect/disconnect operations, combined with X input operations. * * Returns 0 for success, -1 for error. * Sets 'reconnect_host', 'current_host' and 'full_current_host' as * side-effects. */ int host_connect(const char *n) { char nb[2048]; /* name buffer */ char *s; /* temporary */ const char *chost; /* to whom we will connect */ char *target_name; char *ps = CN; char *port = CN; Boolean resolving; Boolean pending; static Boolean ansi_host; const char *localprocess_cmd = NULL; Boolean has_colons = False; if (CONNECTED || auto_reconnect_inprogress) return 0; /* Skip leading blanks. */ while (*n == ' ') n++; if (!*n) { popup_an_error("Invalid (empty) hostname"); return -1; } /* Save in a modifiable buffer. */ (void) strcpy(nb, n); /* Strip trailing blanks. */ s = nb + strlen(nb) - 1; while (*s == ' ') *s-- = '\0'; /* Remember this hostname, as the last hostname we connected to. */ Replace(reconnect_host, NewString(nb)); #if defined(X3270_DISPLAY) /*[*/ /* Remember this hostname in the recent connection list and file. */ save_recent(nb); #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ if ((localprocess_cmd = parse_localprocess(nb)) != CN) { chost = localprocess_cmd; port = appres.port; } else #endif /*]*/ { Boolean needed; /* Strip off and remember leading qualifiers. */ if ((s = split_host(nb, &ansi_host, &std_ds_host, &passthru_host, &non_tn3270e_host, &ssl_host, &no_login_host, luname, &port, &needed)) == CN) return -1; /* Look up the name in the hosts file. */ if (!needed && hostfile_lookup(s, &target_name, &ps)) { /* * Rescan for qualifiers. * Qualifiers, LU names, and ports are all overridden * by the hosts file. */ Free(s); if (!(s = split_host(target_name, &ansi_host, &std_ds_host, &passthru_host, &non_tn3270e_host, &ssl_host, &no_login_host, luname, &port, &needed))) return -1; } chost = s; /* Default the port. */ if (port == CN) port = appres.port; } /* * Store the original name in globals, even if we fail the connect * later: * current_host is the hostname part, stripped of qualifiers, luname * and port number * full_current_host is the entire string, for use in reconnecting */ if (n != full_current_host) { Replace(full_current_host, NewString(n)); } Replace(current_host, CN); if (localprocess_cmd != CN) { if (full_current_host[strlen(OptLocalProcess)] != '\0') current_host = NewString(full_current_host + strlen(OptLocalProcess) + 1); else current_host = NewString("default shell"); } else { current_host = s; } has_colons = (strchr(chost, ':') != NULL); Replace(qualified_host, xs_buffer("%s%s%s%s:%s", ssl_host? "L:": "", has_colons? "[": "", chost, has_colons? "]": "", port)); /* Attempt contact. */ ever_3270 = False; net_sock = net_connect(chost, port, localprocess_cmd != CN, &resolving, &pending); if (net_sock < 0 && !resolving) { #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_DISPLAY) /*[*/ if (appres.once) { /* Exit when the error pop-up pops down. */ exiting = True; } else # endif /*]*/ if (appres.reconnect) { auto_reconnect_inprogress = True; reconnect_id = AddTimeOut(RECONNECT_ERR_MS, try_reconnect); } #endif /*]*/ /* Redundantly signal a disconnect. */ st_changed(ST_CONNECT, False); return -1; } /* Still thinking about it? */ if (resolving) { cstate = RESOLVING; st_changed(ST_RESOLVING, True); return 0; } /* Success. */ /* Set pending string. */ if (ps == CN) ps = appres.login_macro; if (ps != CN) login_macro(ps); /* Prepare Xt for I/O. */ x_add_input(net_sock); /* Set state and tell the world. */ if (pending) { cstate = PENDING; st_changed(ST_HALF_CONNECT, True); } else { cstate = CONNECTED_INITIAL; st_changed(ST_CONNECT, True); #if defined(X3270_DISPLAY) /*[*/ if (appres.reconnect && error_popup_visible()) popdown_an_error(); #endif /*]*/ } return 0; } #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ /* * Reconnect to the last host. */ static void host_reconnect(void) { if (auto_reconnect_inprogress || current_host == CN || CONNECTED || HALF_CONNECTED) return; if (host_connect(reconnect_host) >= 0) auto_reconnect_inprogress = False; } /* * Called from timer to attempt an automatic reconnection. */ static void try_reconnect(void) { auto_reconnect_inprogress = False; host_reconnect(); } /* * Cancel any pending reconnect attempt. */ void host_cancel_reconnect(void) { if (auto_reconnect_inprogress) { RemoveTimeOut(reconnect_id); auto_reconnect_inprogress = False; } } #endif /*]*/ void host_disconnect(Boolean failed) { if (CONNECTED || HALF_CONNECTED) { x_remove_input(); net_disconnect(); net_sock = -1; #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_DISPLAY) /*[*/ if (appres.once) { if (error_popup_visible()) { /* * If there is an error pop-up, exit when it * pops down. */ exiting = True; } else { /* Exit now. */ x3270_exit(0); return; } } else # endif /*]*/ if (appres.reconnect && !auto_reconnect_inprogress) { /* Schedule an automatic reconnection. */ auto_reconnect_inprogress = True; reconnect_id = AddTimeOut(failed? RECONNECT_ERR_MS: RECONNECT_MS, try_reconnect); } #endif /*]*/ /* * Remember a disconnect from ANSI mode, to keep screen tracing * in sync. */ #if defined(X3270_TRACE) /*[*/ if (IN_ANSI && toggled(SCREEN_TRACE)) trace_ansi_disc(); #endif /*]*/ cstate = NOT_CONNECTED; /* Propagate the news to everyone else. */ st_changed(ST_CONNECT, False); } } /* The host has entered 3270 or ANSI mode, or switched between them. */ void host_in3270(enum cstate new_cstate) { Boolean now3270 = (new_cstate == CONNECTED_3270 || new_cstate == CONNECTED_SSCP || new_cstate == CONNECTED_TN3270E); cstate = new_cstate; ever_3270 = now3270; st_changed(ST_3270_MODE, now3270); } void host_connected(void) { cstate = CONNECTED_INITIAL; st_changed(ST_CONNECT, True); #if defined(X3270_DISPLAY) /*[*/ if (appres.reconnect && error_popup_visible()) popdown_an_error(); #endif /*]*/ } /* Swap out net_sock. */ void host_newfd(int s) { /* Shut off the old. */ x_remove_input(); /* Turn on the new. */ net_sock = s; x_add_input(net_sock); } #if defined(X3270_DISPLAY) /*[*/ /* Comparison function for the qsort. */ static int host_compare(const void *e1, const void *e2) { const struct host *h1 = *(const struct host **)e1; const struct host *h2 = *(const struct host **)e2; int r; if (h1->connect_time > h2->connect_time) r = -1; else if (h1->connect_time < h2->connect_time) r = 1; else r = 0; #if defined(CFDEBUG) /*[*/ printf("%s %ld %d %s %ld\n", h1->name, h1->connect_time, r, h2->name, h2->connect_time); #endif /*]*/ return r; } #endif /*]*/ #if defined(CFDEBUG) /*[*/ static void dump_array(const char *when, struct host **array, int nh) { int i; printf("%s\n", when); for (i = 0; i < nh; i++) { printf(" %15s %ld\n", array[i]->name, array[i]->connect_time); } } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* Save the most recent host in the recent host list. */ static void save_recent(const char *hn) { char *lcf_name = CN; FILE *lcf = (FILE *)NULL; struct host *h; struct host *rest = (struct host *)NULL; int n_ent = 0; struct host *h_array[(MAX_RECENT * 2) + 1]; int nh = 0; int i, j; time_t t = time((time_t *)NULL); /* Allocate a new entry. */ if (hn != CN) { h = (struct host *)Malloc(sizeof(*h)); h->name = NewString(hn); h->parents = NULL; h->hostname = NewString(hn); h->entry_type = RECENT; h->loginstring = CN; h->connect_time = t; h_array[nh++] = h; } /* Put the existing entries into the array. */ for (h = hosts; h != (struct host *)NULL; h = h->next) { if (h->entry_type != RECENT) break; h_array[nh++] = h; } /* Save the ibm_hosts entries for later. */ rest = h; if (rest != (struct host *)NULL) rest->prev = (struct host *)NULL; /* * Read the last-connection file, to capture the any changes made by * other instances of x3270. */ if (appres.connectfile_name != CN && strcasecmp(appres.connectfile_name, "none")) { lcf_name = do_subst(appres.connectfile_name, True, True); lcf = fopen(lcf_name, "r"); } if (lcf != (FILE *)NULL) { char buf[1024]; while (fgets(buf, sizeof(buf), lcf) != CN) { int sl; time_t connect_time; char *ptr; /* Pick apart the entry. */ sl = strlen(buf); if (buf[sl - 1] == '\n') buf[sl-- - 1] = '\0'; if (!sl || buf[0] == '#' || (connect_time = strtoul(buf, &ptr, 10)) == 0L || ptr == buf || *ptr != ' ' || !*(ptr + 1)) continue; h = (struct host *)Malloc(sizeof(*h)); h->name = NewString(ptr + 1); h->parents = NULL; h->hostname = NewString(ptr + 1); h->entry_type = RECENT; h->loginstring = CN; h->connect_time = connect_time; h_array[nh++] = h; if (nh > (MAX_RECENT * 2) + 1) break; } fclose(lcf); } /* Sort the array, in reverse order by connect time. */ #if defined(CFDEBUG) /*[*/ dump_array("before", h_array, nh); #endif /*]*/ qsort(h_array, nh, sizeof(struct host *), host_compare); #if defined(CFDEBUG) /*[*/ dump_array("after", h_array, nh); #endif /*]*/ /* * Filter out duplicate host names, and limit the array to * MAX_RECENT entries total. */ hosts = (struct host *)NULL; last_host = (struct host *)NULL; for (i = 0; i < nh; i++) { h = h_array[i]; if (h == (struct host *)NULL) continue; h->next = (struct host *)NULL; if (last_host != (struct host *)NULL) last_host->next = h; h->prev = last_host; last_host = h; if (hosts == (struct host *)NULL) hosts = h; n_ent++; /* Zap the duplicates. */ for (j = i+1; j < nh; j++) { if (h_array[j] && (n_ent >= MAX_RECENT || !strcmp(h_array[i]->name, h_array[j]->name))) { #if defined(CFDEBUG) /*[*/ printf("%s is a dup of %s\n", h_array[j]->name, h_array[i]->name); #endif /*]*/ Free(h_array[j]->name); Free(h_array[j]->hostname); Free(h_array[j]); h_array[j] = (struct host *)NULL; } } } /* Re-attach the ibm_hosts entries to the end. */ if (rest != (struct host *)NULL) { if (last_host != (struct host *)NULL) { last_host->next = rest; } else { hosts = rest; } rest->prev = last_host; } /* If there's been a change, rewrite the file. */ if (hn != CN && appres.connectfile_name != CN && strcasecmp(appres.connectfile_name, "none")) { lcf = fopen(lcf_name, "w"); if (lcf != (FILE *)NULL) { fprintf(lcf, "# Created %s# by %s\n", ctime(&t), build); for (h = hosts; h != (struct host *)NULL; h = h->next) { if (h->entry_type != RECENT) break; (void) fprintf(lcf, "%lu %s\n", h->connect_time, h->name); } fclose(lcf); } } if (lcf_name != CN) Free(lcf_name); } #endif /*]*/ /* Support for state change callbacks. */ struct st_callback { struct st_callback *next; void (*func)(Boolean); }; static struct st_callback *st_callbacks[N_ST]; static struct st_callback *st_last[N_ST]; /* Register a function interested in a state change. */ void register_schange(int tx, void (*func)(Boolean)) { struct st_callback *st; st = (struct st_callback *)Malloc(sizeof(*st)); st->func = func; st->next = (struct st_callback *)NULL; if (st_last[tx] != (struct st_callback *)NULL) st_last[tx]->next = st; else st_callbacks[tx] = st; st_last[tx] = st; } /* Signal a state change. */ void st_changed(int tx, Boolean mode) { struct st_callback *st; for (st = st_callbacks[tx]; st != (struct st_callback *)NULL; st = st->next) { (*st->func)(mode); } } /* Explicit connect/disconnect actions. */ void Connect_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Connect_action, event, params, num_params); if (check_usage(Connect_action, *num_params, 1, 1) < 0) return; if (CONNECTED || HALF_CONNECTED) { popup_an_error("Already connected"); return; } (void) host_connect(params[0]); /* * If called from a script and the connection was successful (or * half-successful), pause the script until we are connected and * we have identified the host type. */ if (!w && (CONNECTED || HALF_CONNECTED)) sms_connect_wait(); } #if defined(X3270_MENUS) /*[*/ void Reconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Reconnect_action, event, params, num_params); if (check_usage(Reconnect_action, *num_params, 0, 0) < 0) return; if (CONNECTED || HALF_CONNECTED) { popup_an_error("Already connected"); return; } if (current_host == CN) { popup_an_error("No previous host to connect to"); return; } host_reconnect(); /* * If called from a script and the connection was successful (or * half-successful), pause the script until we are connected and * we have identified the host type. */ if (!w && (CONNECTED || HALF_CONNECTED)) sms_connect_wait(); } #endif /*]*/ void Disconnect_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Disconnect_action, event, params, num_params); if (check_usage(Disconnect_action, *num_params, 0, 0) < 0) return; host_disconnect(False); } ibm-3270-3.3.10ga4/wc3270/glue.c0000644000175000017500000011252011254565704015215 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * glue.c * A displayless 3270 Terminal Emulator * Glue for missing parts. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "readresc.h" #include "screenc.h" #include "selectc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include "xioc.h" #if defined(_WIN32) /*[*/ #include #include "winversc.h" #endif /*]*/ extern void usage(char *); #define LAST_ARG "--" #if defined(C3270) /*[*/ # if defined(WC3270) /*[*/ # define SESSION_SFX ".wc3270" # define SESSION_SSFX ".wc3" # else /*][*/ # define SESSION_SFX ".c3270" # endif /*]*/ #elif defined(S3270) /*[*/ # if defined(WS3270) /*[*/ # define SESSION_SFX ".ws3270" # define SESSION_SSFX ".ws3" # else /*][*/ # define SESSION_SFX ".s3270" # endif /*]*/ #elif defined(TCL3270) /*[*/ # define SESSION_SFX ".tcl3270" #endif /*]*/ #define SESSION_SFX_LEN (int)(sizeof(SESSION_SFX) - 1) #if defined(_WIN32) /*[*/ # define SESSION_SSFX_LEN (int)(sizeof(SESSION_SSFX) - 1) #endif /*]*/ #if defined(C3270) /*[*/ extern Boolean merge_profile(void); extern Boolean any_error_output; #endif /*]*/ /* Statics */ static void no_minus(const char *arg); #if defined(LOCAL_PROCESS) /*[*/ static void parse_local_process(int *argcp, const char **argv, const char **cmds); #endif /*]*/ static void set_appres_defaults(void); static void parse_options(int *argcp, const char **argv); static void parse_set_clear(int *argcp, const char **argv); static int parse_model_number(char *m); /* Globals */ const char *programname; char full_model_name[13] = "IBM-"; char *model_name = &full_model_name[4]; AppRes appres; int children = 0; Boolean exiting = False; char *command_string = CN; static Boolean sfont = False; Boolean *standard_font = &sfont; char *profile_name = CN; char *profile_path = CN; struct toggle_name toggle_names[] = { #if defined(C3270) /*[*/ { ResMonoCase, MONOCASE }, #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { ResDsTrace, DS_TRACE }, #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResLineWrap, LINE_WRAP }, #endif /*]*/ { ResBlankFill, BLANK_FILL }, #if defined(X3270_TRACE) /*[*/ { ResScreenTrace, SCREEN_TRACE }, { ResEventTrace, EVENT_TRACE }, #endif /*]*/ #if defined(C3270) /*[*/ { ResMarginedPaste, MARGINED_PASTE }, #endif /*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ { ResAidWait, AID_WAIT }, #endif /*]*/ #if defined(C3270) /*[*/ { ResUnderscore, UNDERSCORE }, #endif /*]*/ { NULL, 0 } }; int parse_command_line(int argc, const char **argv, const char **cl_hostname) { int cl, i; int ovc, ovr; int hn_argc; int model_number; int sl; int xcmd_len = 0; char *xcmd; int xargc; const char **xargv; Boolean read_session_or_profile = False; /* Figure out who we are */ #if defined(_WIN32) /*[*/ programname = strrchr(argv[0], '\\'); #else /*][*/ programname = strrchr(argv[0], '/'); #endif /*]*/ if (programname) ++programname; else programname = argv[0]; /* Save the command string for tracing purposes. */ cl = strlen(programname); for (i = 0; i < argc; i++) { cl += 1 + strlen(argv[i]); } cl++; command_string = Malloc(cl); (void) strcpy(command_string, programname); for (i = 0; i < argc; i++) { (void) strcat(strcat(command_string, " "), argv[i]); } /* * Save the command-line options so they can be reapplied after * the session file or profile has been read in. */ xcmd_len = 0; for (i = 0; i < argc; i++) xcmd_len += strlen(argv[i]) + 1; xcmd = Malloc(xcmd_len + 1); xargv = (const char **)Malloc((argc + 1) * sizeof(char *)); xcmd_len = 0; for (i = 0; i < argc; i++) { xargv[i] = xcmd + xcmd_len; (void) strcpy(xcmd + xcmd_len, argv[i]); xcmd_len += strlen(argv[i]) + 1; } xargv[i] = CN; *(xcmd + xcmd_len) = '\0'; xargc = argc; #if defined(LOCAL_PROCESS) /*[*/ /* Pick out the -e option. */ parse_local_process(&argc, argv, cl_hostname); #endif /*]*/ /* Set the defaults. */ set_appres_defaults(); /* Parse command-line options. */ parse_options(&argc, argv); /* Pick out the remaining -set and -clear toggle options. */ parse_set_clear(&argc, argv); /* Now figure out if there's a hostname. */ for (hn_argc = 1; hn_argc < argc; hn_argc++) { if (!strcmp(argv[hn_argc], LAST_ARG)) break; } /* Verify command-line syntax. */ switch (hn_argc) { case 1: break; case 2: no_minus(argv[1]); *cl_hostname = argv[1]; break; case 3: no_minus(argv[1]); no_minus(argv[2]); *cl_hostname = xs_buffer("%s:%s", argv[1], argv[2]); break; default: usage("Too many command-line arguments"); break; } /* Delete the host name and any "--". */ if (argv[hn_argc] != CN && !strcmp(argv[hn_argc], LAST_ARG)) hn_argc++; if (hn_argc > 1) { for (i = 1; i < argc - hn_argc + 2; i++) { argv[i] = argv[i + hn_argc - 1]; } } /* Merge in the session. */ if (*cl_hostname != CN && (((sl = strlen(*cl_hostname)) > SESSION_SFX_LEN && !strcasecmp(*cl_hostname + sl - SESSION_SFX_LEN, SESSION_SFX)) #if defined(_WIN32) /*[*/ || ((sl = strlen(*cl_hostname)) > SESSION_SSFX_LEN && !strcasecmp(*cl_hostname + sl - SESSION_SSFX_LEN, SESSION_SSFX)) #endif /*]*/ )) { const char *pname; if (read_resource_file(*cl_hostname, True) < 0) x3270_exit(1); read_session_or_profile = True; pname = strrchr(*cl_hostname, '\\'); if (pname != CN) pname++; else pname = *cl_hostname; profile_name = NewString(pname); Replace(profile_path, NewString(profile_name)); sl = strlen(profile_name); if (sl > SESSION_SFX_LEN && !strcasecmp(profile_name + sl - SESSION_SFX_LEN, SESSION_SFX)) { profile_name[sl - SESSION_SFX_LEN] = '\0'; #if defined(_WIN32) /*[*/ } else if (sl > SESSION_SSFX_LEN && !strcasecmp(profile_name + sl - SESSION_SSFX_LEN, SESSION_SSFX)) { profile_name[sl - SESSION_SSFX_LEN] = '\0'; #endif /*]*/ } *cl_hostname = appres.hostname; /* might be NULL */ #if defined(C3270) && !defined(_WIN32) /*[*/ } else { /* Read in the profile only if there's no sesson file. */ read_session_or_profile = merge_profile(); #endif /*]*/ } /* * Now parse the command-line arguments again, so they take * precedence over the session file or profile. */ if (read_session_or_profile) { parse_options(&xargc, xargv); parse_set_clear(&xargc, xargv); } /* Can't free xcmd, parts of it are still in use. */ Free((char *)xargv); /* * All right, we have all of the resources defined. * Sort out the contradictory and implicit settings. */ /* * Sort out model and color modes, based on the model number resource. */ model_number = parse_model_number(appres.model); if (model_number < 0) { popup_an_error("Invalid model number: %s", appres.model); model_number = 0; } if (!model_number) { #if defined(RESTRICT_3279) /*[*/ model_number = 3; #else /*][*/ model_number = 4; #endif /*]*/ } #if defined(C3270) && !defined(_WIN32) /*[*/ if (appres.mono) appres.m3279 = False; #endif /*]*/ if (!appres.extended) appres.oversize = CN; #if defined(RESTRICT_3279) /*[*/ if (appres.m3279 && model_number == 4) model_number = 3; #endif /*]*/ ovc = 0; ovr = 0; if (appres.extended && appres.oversize != CN) { #if defined(C3270) /*[*/ if (!strcasecmp(appres.oversize, "auto")) { ovc = -1; ovr = -1; } else #endif /*]*/ { int x_ovc, x_ovr; char junk; if (sscanf(appres.oversize, "%dx%d%c", &x_ovc, &x_ovr, &junk) == 2) { ovc = x_ovc; ovr = x_ovr; } } } set_rows_cols(model_number, ovc, ovr); if (appres.termname != CN) termtype = appres.termname; else termtype = full_model_name; if (appres.apl_mode) appres.charset = Apl; if (*cl_hostname == CN) appres.once = False; if (appres.conf_dir == CN) appres.conf_dir = LIBX3270DIR; return argc; } static void no_minus(const char *arg) { if (arg[0] == '-') usage(xs_buffer("Unknown or incomplete option: %s", arg)); } #if defined(LOCAL_PROCESS) /*[*/ /* * Pick out the -e option. */ static void parse_local_process(int *argcp, const char **argv, const char **cmds) { int i, j; int e_len = -1; char *cmds_buf = NULL; for (i = 1; i < *argcp; i++) { if (strcmp(argv[i], OptLocalProcess)) continue; /* Matched. Copy 'em. */ e_len = strlen(OptLocalProcess) + 1; for (j = i+1; j < *argcp; j++) { e_len += 1 + strlen(argv[j]); } e_len++; cmds_buf = Malloc(e_len); (void) strcpy(cmds_buf, OptLocalProcess); for (j = i+1; j < *argcp; j++) { (void) strcat(strcat(cmds_buf, " "), argv[j]); } /* Stamp out the remaining args. */ *argcp = i; argv[i] = CN; break; } *cmds = cmds_buf; } #endif /*]*/ static void set_appres_defaults(void) { /* Set the defaults. */ #if defined(C3270) && !defined(_WIN32) /*[*/ appres.mono = False; #endif /*]*/ appres.extended = True; #if defined(C3270) /*[*/ appres.m3279 = True; #else /*][*/ appres.m3279 = False; #endif /*]*/ appres.modified_sel = False; appres.apl_mode = False; #if defined(C3270) || defined(TCL3270) /*[*/ appres.scripted = False; #else /*][*/ appres.scripted = True; #endif /*]*/ appres.numeric_lock = False; appres.secure = False; #if defined(C3270) /*[*/ appres.oerr_lock = True; #else /*][*/ appres.oerr_lock = False; #endif /*]*/ appres.typeahead = True; appres.debug_tracing = True; #if defined(C3270) /*[*/ appres.compose_map = "latin1"; appres.do_confirms = True; appres.reconnect = False; #endif /*]*/ appres.model = "4"; appres.hostsfile = CN; appres.port = "telnet"; #if !defined(_WIN32) /*[*/ appres.charset = "bracket"; #else /*][*/ if (is_nt) appres.charset = "bracket"; else appres.charset = "bracket437"; #endif /*]*/ appres.termname = CN; appres.macros = CN; #if defined(X3270_TRACE) && !defined(_WIN32) /*[*/ appres.trace_dir = "/tmp"; #endif /*]*/ #if defined(WC3270) /*[*/ appres.trace_monitor = True; #endif /*]*/ appres.oversize = CN; #if defined(C3270) /*[*/ appres.meta_escape = "auto"; appres.curses_keypad = True; appres.cbreak_mode = False; appres.ascii_box_draw = False; # if defined(C3270) && !defined(_WIN32) /*[*/ appres.mouse = True; # endif /*]*/ #if defined(CURSES_WIDE) /*[*/ appres.acs = True; #endif /*]*/ #endif /*]*/ #if defined(X3270_ANSI) /*[*/ appres.icrnl = True; appres.inlcr = False; appres.onlcr = True; appres.erase = "^H"; appres.kill = "^U"; appres.werase = "^W"; appres.rprnt = "^R"; appres.lnext = "^V"; appres.intr = "^C"; appres.quit = "^\\"; appres.eof = "^D"; #endif /*]*/ appres.unlock_delay = True; appres.unlock_delay_ms = 350; #if defined(X3270_FT) /*[*/ appres.dft_buffer_size = DFT_BUF; #endif /*]*/ #if defined(C3270) /*[*/ appres.toggle[CURSOR_POS].value = True; #endif /*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ appres.toggle[AID_WAIT].value = True; #endif /*]*/ #if defined(C3270) && defined(_WIN32) /*[*/ appres.toggle[UNDERSCORE].value = True; #endif /*]*/ #if defined(C3270) && defined(X3270_SCRIPT) /*[*/ appres.plugin_command = "x3270hist.pl"; #endif /*]*/ #if defined(WS3270) /*[*/ appres.local_cp = GetACP(); #endif /*]*/ } #if defined (C3270) /*[*/ # if defined(WIN32) /*[*/ # define APPNAME "wc3270" # else /*][*/ # define APPNAME "c3270" # endif /*]*/ #elif defined(S3270) /*[*/ # if defined(WIN32) /*[*/ # define APPNAME "ws3270" # else /*][*/ # define APPNAME "s3270" # endif /*]*/ #elif defined(TCL3270) /*[*/ # define APPNAME "tcl3270" #else # error "Unknwon application" #endif /*]*/ #if defined(_WIN32) /*[*/ # define PR3287_NAME "wpr3287" #else /*][*/ # define PR3287_NAME "pr3287" #endif /*]*/ #define offset(n) (void *)&appres.n #define toggle_offset(index) offset(toggle[index].value) static struct { const char *name; enum { OPT_BOOLEAN, OPT_STRING, OPT_XRM, OPT_SKIP2, OPT_NOP, OPT_INT, OPT_V, OPT_DONE } type; Boolean flag; const char *res_name; void *aoff; char *help_opts; char *help_text; } opts[] = { #if defined(C3270) /*[*/ { OptAllBold, OPT_BOOLEAN, True, ResAllBold, offset(all_bold_on), CN, "Display all text in bold" }, #endif /*]*/ #if defined(C3270) && !defined(_WIN32) /*[*/ { OptAltScreen,OPT_STRING, False, ResAltScreen, offset(altscreen), "", "Specify string to switch terminal from 80-column mode to 132-column mode" }, #endif /*]*/ #if defined(WC3270) /*[*/ { OptAutoShortcut,OPT_BOOLEAN, True, ResAutoShortcut,offset(auto_shortcut), CN, "Run in auto-shortcut mode" }, #endif /*]*/ { OptAplMode, OPT_BOOLEAN, True, ResAplMode, offset(apl_mode), CN, "Turn on APL mode" }, #if defined(C3270) && !defined(_WIN32) /*[*/ { OptCbreak, OPT_BOOLEAN, True, ResCbreak, offset(cbreak_mode), CN, "Force terminal CBREAK mode" }, #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ { OptCertFile, OPT_STRING, False, ResCertFile, offset(cert_file), "", "Specify OpenSSL certificate file" }, #endif /*]*/ { OptCharset, OPT_STRING, False, ResCharset, offset(charset), "", "Use host ECBDIC character set (code page) "}, { OptClear, OPT_SKIP2, False, NULL, NULL, "", "Turn on " }, #if defined(C3270) && !defined(_WIN32) /*[*/ { OptDefScreen,OPT_STRING, False, ResDefScreen, offset(defscreen), "", "Specify string to switch terminal from 80-column mode to 132-column mode" }, #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ { OptLocalProcess,OPT_SKIP2,False, NULL, NULL, " [...]", "Run instead of making TELNET conection" }, #endif /*]*/ { OptHostsFile,OPT_STRING, False, ResHostsFile, offset(hostsfile), "", "Use as the ibm_hosts file" }, #if defined(C3270) /*[*/ { OptKeymap, OPT_STRING, False, ResKeymap, offset(key_map), "[,...]", "Keyboard map name(s)" }, #endif /*]*/ #if defined(WS3270) /*[*/ { OptLocalCp, OPT_INT, False, ResLocalCp, offset(local_cp), "", "Use instead of ANSI codepage for local I/O" }, #endif /*]*/ { OptModel, OPT_STRING, False, ResModel, offset(model), "[327{8,9}-]", "Emulate a 3278 or 3279 model " }, #if defined(C3270) /*[*/ # if !defined(_WIN32) /*[*/ { OptMono, OPT_BOOLEAN, True, ResMono, offset(mono), CN, "Do not use terminal color capabilities" }, # endif /*]*/ #if defined(WC3270) /*[*/ { OptNoAutoShortcut,OPT_BOOLEAN,False,ResAutoShortcut,offset(auto_shortcut), CN, "Do not run in auto-shortcut mode" }, #endif /*]*/ { OptNoPrompt, OPT_BOOLEAN, True, ResNoPrompt, offset(no_prompt), CN, "Suppress interactive mode (" APPNAME "> prompt)" }, #endif /*]*/ { OptOnce, OPT_BOOLEAN, True, ResOnce, offset(once), CN, "Exit as soon as the host disconnects" }, { OptOversize, OPT_STRING, False, ResOversize, offset(oversize), "x", "Specify larger screen" }, { OptPort, OPT_STRING, False, ResPort, offset(port), "", "Specify default TELNET port" }, #if defined(C3270) /*[*/ { OptPrinterLu,OPT_STRING, False, ResPrinterLu, offset(printer_lu), "", "Automatically start a "PR3287_NAME" printer session to " }, { OptReconnect,OPT_BOOLEAN, True, ResReconnect, offset(reconnect), CN, "Reconnect to host as soon as it disconnects" }, #if !defined(_WIN32) /*[*/ { OptReverseVideo,OPT_BOOLEAN,True,ResReverseVideo,offset(reverse_video), CN, "Switch to black-on-white mode" }, #endif /*]*/ #endif /*]*/ { OptProxy, OPT_STRING, False, ResProxy, offset(proxy), ":[:]", "Secify proxy type and server" }, #if defined(S3270) /*[*/ { OptScripted, OPT_NOP, False, ResScripted, NULL, CN, "Turn on scripting" }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { OptScriptPort,OPT_INT, True, ResScriptPort, offset(script_port), "", "TCP port to listen on for script commands" }, #endif /*]*/ #if defined(C3270) /*[*/ { OptSecure, OPT_BOOLEAN, True, ResSecure, offset(secure), CN, "Restrict potentially-destructive user actions" }, #endif /*]*/ { OptSet, OPT_SKIP2, False, NULL, NULL, "", "Turn on " }, #if defined(X3270_SCRIPT) /*[*/ { OptSocket, OPT_BOOLEAN, True, ResSocket, offset(socket), CN, "Create socket for script control" }, #endif /*]*/ { OptTermName, OPT_STRING, False, ResTermName, offset(termname), "", "Send as TELNET terminal name" }, #if defined(WC3270) /*[*/ { OptTitle, OPT_STRING, False, ResTitle, offset(title), "", "Set window title to " }, #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { OptDsTrace, OPT_BOOLEAN, True, ResDsTrace, toggle_offset(DS_TRACE), CN, "Enable tracing" }, { OptTraceFile,OPT_STRING, False, ResTraceFile, offset(trace_file), "", "Write traces to " }, { OptTraceFileSize,OPT_STRING,False,ResTraceFileSize,offset(trace_file_size), "[KM]", "Limit trace file to bytes" }, #endif /*]*/ { OptV, OPT_V, False, NULL, NULL, CN, "Display build options and character sets" }, { OptVersion, OPT_V, False, NULL, NULL, CN, "Display build options and character sets" }, { "-xrm", OPT_XRM, False, NULL, NULL, "'" APPNAME ".: '", "Set to " }, { LAST_ARG, OPT_DONE, False, NULL, NULL, CN, "Terminate argument list" }, { CN, OPT_SKIP2, False, NULL, NULL, CN, CN } }; /* * Pick out command-line options and set up appres. */ static void parse_options(int *argcp, const char **argv) { int i, j; int argc_out = 0; const char **argv_out = (const char **) Malloc((*argcp + 1) * sizeof(char *)); /* Parse the command-line options. */ argv_out[argc_out++] = argv[0]; for (i = 1; i < *argcp; i++) { for (j = 0; opts[j].name != CN; j++) { if (!strcmp(argv[i], opts[j].name)) break; } if (opts[j].name == CN) { argv_out[argc_out++] = argv[i]; continue; } switch (opts[j].type) { case OPT_BOOLEAN: *(Boolean *)opts[j].aoff = opts[j].flag; if (opts[j].res_name != CN) add_resource(NewString(opts[j].name), opts[j].flag? "True": "False"); break; case OPT_STRING: if (i == *argcp - 1) /* missing arg */ continue; *(const char **)opts[j].aoff = argv[++i]; if (opts[j].res_name != CN) add_resource(NewString(opts[j].res_name), NewString(argv[i])); break; case OPT_XRM: if (i == *argcp - 1) /* missing arg */ continue; parse_xrm(argv[++i], "-xrm"); break; case OPT_SKIP2: argv_out[argc_out++] = argv[i++]; if (i < *argcp) argv_out[argc_out++] = argv[i]; break; case OPT_NOP: break; case OPT_INT: if (i == *argcp - 1) /* missing arg */ continue; *(int *)opts[j].aoff = atoi(argv[++i]); if (opts[j].res_name != CN) add_resource(NewString(opts[j].name), NewString(argv[i])); break; case OPT_V: dump_version(); break; case OPT_DONE: while (i < *argcp) argv_out[argc_out++] = argv[i++]; break; } } *argcp = argc_out; argv_out[argc_out] = CN; (void) memcpy((char *)argv, (char *)argv_out, (argc_out + 1) * sizeof(char *)); Free((char *)argv_out); #if defined(X3270_TRACE) /*[*/ /* One isn't very useful without the other. */ if (appres.toggle[DS_TRACE].value) appres.toggle[EVENT_TRACE].value = True; #endif /*]*/ } /* Disply command-line help. */ void cmdline_help (Boolean as_action) { int i; for (i = 0; opts[i].name != CN; i++) { if (as_action) { action_output(" %s%s%s", opts[i].name, opts[i].help_opts? " ": "", opts[i].help_opts? opts[i].help_opts: ""); action_output(" %s", opts[i].help_text); } else fprintf(stderr, " %s%s%s\n %s\n", opts[i].name, opts[i].help_opts? " ": "", opts[i].help_opts? opts[i].help_opts: "", opts[i].help_text); } } /* * Pick out -set and -clear toggle options. */ static void parse_set_clear(int *argcp, const char **argv) { int i, j; int argc_out = 0; const char **argv_out = (const char **) Malloc((*argcp + 1) * sizeof(char *)); argv_out[argc_out++] = argv[0]; for (i = 1; i < *argcp; i++) { Boolean is_set = False; if (!strcmp(argv[i], OptSet)) is_set = True; else if (strcmp(argv[i], OptClear)) { argv_out[argc_out++] = argv[i]; continue; } if (i == *argcp - 1) /* missing arg */ continue; /* Delete the argument. */ i++; for (j = 0; toggle_names[j].name != NULL; j++) if (!strcmp(argv[i], toggle_names[j].name)) { appres.toggle[toggle_names[j].index].value = is_set; break; } if (toggle_names[j].name == NULL) usage("Unknown toggle name"); } *argcp = argc_out; argv_out[argc_out] = CN; (void) memcpy((char *)argv, (char *)argv_out, (argc_out + 1) * sizeof(char *)); Free((char *)argv_out); } /* * Parse the model number. * Returns -1 (error), 0 (default), or the specified number. */ static int parse_model_number(char *m) { int sl; int n; sl = strlen(m); /* An empty model number is no good. */ if (!sl) { return 0; } if (sl > 1) { /* * If it's longer than one character, it needs to start with * '327[89]', and it sets the m3279 resource. */ if (!strncmp(m, "3278", 4)) { appres.m3279 = False; } else if (!strncmp(m, "3279", 4)) { appres.m3279 = True; } else { return -1; } m += 4; sl -= 4; /* Check more syntax. -E is allowed, but ignored. */ switch (m[0]) { case '\0': /* Use default model number. */ return 0; case '-': /* Model number specified. */ m++; sl--; break; default: return -1; } switch (sl) { case 1: /* n */ break; case 3: /* n-E */ if (strcasecmp(m + 1, "-E")) { return -1; } break; default: return -1; } } /* Check the numeric model number. */ n = atoi(m); if (n >= 2 && n <= 5) { return n; } else { return -1; } } /* * Parse '-xrm' options. * Understands only: * {c,s,tcl}3270.: value * Asterisks and class names need not apply. */ static struct { const char *name; void *address; enum resource_type { XRM_STRING, XRM_BOOLEAN, XRM_INT } type; } resources[] = { #if defined(C3270) /*[*/ { ResAllBold, offset(all_bold), XRM_STRING }, { ResAltScreen, offset(altscreen), XRM_STRING }, #endif /*]*/ #if defined(WC3270) /*[*/ { ResAutoShortcut,offset(auto_shortcut),XRM_BOOLEAN }, #endif /*]*/ { ResBsdTm, offset(bsd_tm), XRM_BOOLEAN }, #if defined(HAVE_LIBSSL) /*[*/ { ResCertFile, offset(cert_file), XRM_STRING }, #endif /*]*/ { ResCharset, offset(charset), XRM_STRING }, { ResColor8, offset(color8), XRM_BOOLEAN }, #if defined(TCL3270) /*[*/ { ResCommandTimeout, offset(command_timeout), XRM_INT }, #endif /*]*/ { ResConfDir, offset(conf_dir), XRM_STRING }, #if defined(X3270_DBCS) /*[*/ { ResDbcsCgcsgid, offset(dbcs_cgcsgid), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResDefScreen, offset(defscreen), XRM_STRING }, #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResEof, offset(eof), XRM_STRING }, { ResErase, offset(erase), XRM_STRING }, #endif /*]*/ { ResExtended, offset(extended), XRM_BOOLEAN }, #if defined(X3270_FT) /*[*/ { ResDftBufferSize,offset(dft_buffer_size),XRM_INT }, #endif /*]*/ { ResHostname, offset(hostname), XRM_STRING }, { ResHostsFile, offset(hostsfile), XRM_STRING }, #if defined(X3270_ANSI) /*[*/ { ResIcrnl, offset(icrnl), XRM_BOOLEAN }, { ResInlcr, offset(inlcr), XRM_BOOLEAN }, { ResOnlcr, offset(onlcr), XRM_BOOLEAN }, { ResIntr, offset(intr), XRM_STRING }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { ResPluginCommand, offset(plugin_command), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResIdleCommand,offset(idle_command), XRM_STRING }, { ResIdleCommandEnabled,offset(idle_command_enabled), XRM_BOOLEAN }, { ResIdleTimeout,offset(idle_timeout), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResKeymap, offset(key_map), XRM_STRING }, { ResMetaEscape,offset(meta_escape), XRM_STRING }, { ResCursesKeypad,offset(curses_keypad),XRM_BOOLEAN }, { ResCbreak, offset(cbreak_mode), XRM_BOOLEAN }, { ResAsciiBoxDraw,offset(ascii_box_draw), XRM_BOOLEAN }, #if defined(CURSES_WIDE) /*[*/ { ResAcs, offset(acs), XRM_BOOLEAN }, #endif /*]*/ #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResKill, offset(kill), XRM_STRING }, { ResLnext, offset(lnext), XRM_STRING }, #endif /*]*/ #if defined(WS3270) /*[*/ { ResLocalCp, offset(local_cp), XRM_INT }, #endif /*]*/ { ResLoginMacro,offset(login_macro), XRM_STRING }, { ResM3279, offset(m3279), XRM_BOOLEAN }, { ResModel, offset(model), XRM_STRING }, { ResModifiedSel, offset(modified_sel), XRM_BOOLEAN }, #if defined(C3270) /*[*/ # if !defined(_WIN32) /*[*/ { ResMono, offset(mono), XRM_BOOLEAN }, { ResMouse, offset(mouse), XRM_BOOLEAN }, # endif /*]*/ { ResNoPrompt, offset(no_prompt), XRM_BOOLEAN }, #endif /*]*/ { ResNumericLock, offset(numeric_lock), XRM_BOOLEAN }, { ResOerrLock, offset(oerr_lock), XRM_BOOLEAN }, { ResOversize, offset(oversize), XRM_STRING }, { ResPort, offset(port), XRM_STRING }, #if defined(C3270) /*[*/ { ResPrinterLu, offset(printer_lu), XRM_STRING }, #endif /*]*/ { ResProxy, offset(proxy), XRM_STRING }, #if defined(X3270_ANSI) /*[*/ { ResQuit, offset(quit), XRM_STRING }, { ResRprnt, offset(rprnt), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResReconnect, offset(reconnect), XRM_BOOLEAN }, #if !defined(_WIN32) /*[*/ { ResReverseVideo,offset(reverse_video),XRM_BOOLEAN }, #endif /*]*/ #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { ResScreenTraceFile,offset(screentrace_file),XRM_STRING }, #endif /*]*/ { ResSecure, offset(secure), XRM_BOOLEAN }, { ResSbcsCgcsgid, offset(sbcs_cgcsgid), XRM_STRING }, #if defined(X3270_SCRIPT) /*[*/ { ResScriptPort,offset(script_port), XRM_INT }, #endif /*]*/ { ResTermName, offset(termname), XRM_STRING }, #if defined(WC3270) /*[*/ { ResTitle, offset(title), XRM_STRING }, #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { ResTraceDir, offset(trace_dir), XRM_STRING }, { ResTraceFile, offset(trace_file), XRM_STRING }, { ResTraceFileSize,offset(trace_file_size),XRM_STRING }, #if defined(WC3270) /*[*/ { ResTraceMonitor,offset(trace_monitor),XRM_BOOLEAN }, #endif /*]*/ #endif /*]*/ { ResTypeahead, offset(typeahead), XRM_BOOLEAN }, { ResUnlockDelay,offset(unlock_delay), XRM_BOOLEAN }, { ResUnlockDelayMs,offset(unlock_delay_ms),XRM_INT }, #if defined(WC3270) /*[*/ { ResVisualBell,offset(visual_bell), XRM_BOOLEAN }, #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResWerase, offset(werase), XRM_STRING }, #endif /*]*/ { CN, 0, XRM_STRING } }; /* * Compare two strings, allowing the second to differ by uppercasing the * first character of the second. */ static int strncapcmp(const char *known, const char *unknown, unsigned unk_len) { if (unk_len != strlen(known)) return -1; if (!strncmp(known, unknown, unk_len)) return 0; if (unk_len > 1 && unknown[0] == toupper(known[0]) && !strncmp(known + 1, unknown + 1, unk_len - 1)) return 0; return -1; } #if defined(C3270) /*[*/ struct host_color host_color[] = { { "NeutralBlack", HOST_COLOR_NEUTRAL_BLACK }, { "Blue", HOST_COLOR_BLUE }, { "Red", HOST_COLOR_RED }, { "Pink", HOST_COLOR_PINK }, { "Green", HOST_COLOR_GREEN }, { "Turquoise", HOST_COLOR_TURQUOISE }, { "Yellow", HOST_COLOR_YELLOW }, { "NeutralWhite", HOST_COLOR_NEUTRAL_WHITE }, { "Black", HOST_COLOR_BLACK }, { "DeepBlue", HOST_COLOR_DEEP_BLUE }, { "Orange", HOST_COLOR_ORANGE }, { "Purple", HOST_COLOR_PURPLE }, { "PaleGreen", HOST_COLOR_PALE_GREEN }, { "PaleTurquoise", HOST_COLOR_PALE_TURQUOISE }, { "Grey", HOST_COLOR_GREY }, { "Gray", HOST_COLOR_GREY }, /* alias */ { "White", HOST_COLOR_WHITE }, { CN, 0 } }; /* * Validate a resource that is fetched explicitly, rather than via appres. */ static int valid_explicit(const char *resname, unsigned len) { static struct { char *name; enum { V_FLAT, V_WILD, V_COLOR } type; } explicit_resources[] = { { ResKeymap, V_WILD }, { ResAssocCommand, V_FLAT }, { ResLuCommandLine, V_FLAT }, #if defined(_WIN32) /*[*/ { ResPrinterCodepage, V_FLAT }, { ResPrinterCommand, V_FLAT }, { ResPrinterName, V_FLAT }, { ResPrintTextFont, V_FLAT }, { ResPrintTextSize, V_FLAT }, { ResHostColorForDefault, V_FLAT }, { ResHostColorForIntensified, V_FLAT }, { ResHostColorForProtected, V_FLAT }, { ResHostColorForProtectedIntensified,V_FLAT }, { ResConsoleColorForHostColor, V_COLOR }, #else /*][*/ { ResPrintTextCommand, V_FLAT }, { ResCursesColorForDefault, V_FLAT }, { ResCursesColorForIntensified, V_FLAT }, { ResCursesColorForProtected, V_FLAT }, { ResCursesColorForProtectedIntensified,V_FLAT }, { ResCursesColorForHostColor, V_COLOR }, #endif /*]*/ { NULL, V_WILD } }; int i; int j; for (i = 0; explicit_resources[i].name != CN; i++) { unsigned sl = strlen(explicit_resources[i].name); switch (explicit_resources[i].type) { case V_FLAT: /* Exact match. */ if (len == sl && !strncmp(explicit_resources[i].name, resname, sl)) return 0; break; case V_WILD: /* xxx.* match. */ if (len > sl + 1 && resname[sl] == '.' && !strncmp(explicit_resources[i].name, resname, sl)) return 0; break; case V_COLOR: /* xxx or xxx match. */ for (j = 0; host_color[j].name != CN; j++) { char *x; x = xs_buffer("%s%s", explicit_resources[i].name, host_color[j].name); if (strlen(x) == len && !strncmp(x, resname, len)) { Free(x); return 0; } Free(x); x = xs_buffer("%s%d", explicit_resources[i].name, host_color[j].index); if (strlen(x) == len && !strncmp(x, resname, len)) { Free(x); return 0; } Free(x); } break; } } return -1; } #endif /*]*/ void parse_xrm(const char *arg, const char *where) { const char *name; unsigned rnlen; const char *s; int i; char *t; void *address = NULL; enum resource_type type = XRM_STRING; Boolean quoted; char c; #if defined(C3270) /*[*/ char *hide; Boolean arbitrary = False; #endif /*]*/ /* Validate and split. */ if (validate_and_split_resource(where, arg, &name, &rnlen, &s) < 0) return; /* Look up the name. */ for (i = 0; resources[i].name != CN; i++) { if (!strncapcmp(resources[i].name, name, rnlen)) { address = resources[i].address; type = resources[i].type; break; } } if (address == NULL) { for (i = 0; toggle_names[i].name != NULL; i++) { if (!strncapcmp(toggle_names[i].name, name, rnlen)) { address = &appres.toggle[toggle_names[i].index].value; type = XRM_BOOLEAN; break; } } } #if defined(C3270) /*[*/ if (address == NULL && valid_explicit(name, rnlen) == 0) { /* * Handle resources that are accessed only via get_resource(). */ address = &hide; type = XRM_STRING; arbitrary = True; } #endif /*]*/ if (address == NULL) { xs_warning("%s: Unknown resource name: %.*s", where, (int)rnlen, name); return; } switch (type) { case XRM_BOOLEAN: if (!strcasecmp(s, "true") || !strcasecmp(s, "t") || !strcmp(s, "1")) { *(Boolean *)address = True; } else if (!strcasecmp(s, "false") || !strcasecmp(s, "f") || !strcmp(s, "0")) { *(Boolean *)address = False; } else { xs_warning("%s: Invalid Boolean value: %s", where, s); } break; case XRM_STRING: t = Malloc(strlen(s) + 1); *(char **)address = t; quoted = False; while ((c = *s++) != '\0') { if (quoted) { switch (c) { case 'b': *t++ = '\b'; break; case 'f': *t++ = '\f'; break; case 'n': *t++ = '\n'; break; case 'r': *t++ = '\r'; break; case 't': *t++ = '\t'; break; default: /* Leave other backslashes intact. */ *t++ = '\\'; *t++ = c; break; } quoted = False; } else if (c == '\\') { quoted = True; } else { *t++ = c; } } *t = '\0'; break; case XRM_INT: { long n; char *ptr; n = strtol(s, &ptr, 0); if (*ptr != '\0') { xs_warning("%s: Invalid Integer value: %s", where, s); } else { *(int *)address = (int)n; } break; } } #if defined(C3270) /*[*/ /* Add a new, arbitrarily-named resource. */ if (arbitrary) { char *rsname; rsname = Malloc(rnlen + 1); (void) strncpy(rsname, name, rnlen); rsname[rnlen] = '\0'; add_resource(rsname, hide); } #endif /*]*/ } /* * Clean up a string for display (undo what parse_xrm does). */ char * safe_string(const char *s) { char *t = Malloc(1); int tlen = 1; *t = '\0'; /* * Translate the string to UCS4 a character at a time. * If the result is a control code or backslash, expand it. * Otherwise, translate it back to the local encoding and * append it to the output. */ while (*s) { ucs4_t u; int consumed; enum me_fail error; u = multibyte_to_unicode(s, strlen(s), &consumed, &error); if (u == 0) break; if (u < ' ') { char c = 0; int inc = 0; switch (u) { case '\b': c = 'b'; inc = 2; break; case '\f': c = 'f'; inc = 2; break; case '\n': c = 'n'; inc = 2; break; case '\r': c = 'r'; inc = 2; break; case '\t': c = 't'; inc = 2; break; default: inc = 6; break; } t = Realloc(t, tlen + inc); if (inc == 2) { *(t + tlen - 1) = '\\'; *(t + tlen) = c; } else { sprintf(t, "\\u%04x", u); } tlen += inc; } else { t = Realloc(t, tlen + consumed); memcpy(t + tlen - 1, s, consumed); tlen += consumed; } s += consumed; } *(t + tlen - 1) = '\0'; return t; } /* Read resources from a file. */ int read_resource_file(const char *filename, Boolean fatal) { return read_resource_filex(filename, fatal, parse_xrm); } /* Screen globals. */ static int cw = 7; int *char_width = &cw; static int ch = 7; int *char_height = &ch; Boolean visible_control = False; Boolean flipped = False; /* Replacements for functions in popups.c. */ #include Boolean error_popup_visible = False; static char vmsgbuf[4096]; /* Pop up an error dialog. */ void popup_an_error(const char *fmt, ...) { va_list args; char *s; int sl; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); /* * Multi-line messages are fine for X pop-ups, but they're no fun for * text applications. */ s = vmsgbuf; while ((s = strchr(s, '\n')) != NULL) { *s++ = ' '; } while ((sl = strlen(vmsgbuf)) > 0 && vmsgbuf[sl-1] == ' ') { vmsgbuf[--sl] = '\0'; } if (sms_redirect()) { sms_error(vmsgbuf); return; } else { #if defined(C3270) || defined(WC3270) /*[*/ screen_suspend(); any_error_output = True; #endif /*]*/ (void) fprintf(stderr, "%s\n", vmsgbuf); macro_output = True; } } /* Pop up an error dialog, based on an error number. */ void popup_an_errno(int errn, const char *fmt, ...) { va_list args; char *s; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); s = NewString(vmsgbuf); if (errn > 0) popup_an_error("%s:\n%s", s, strerror(errn)); else popup_an_error("%s", s); Free(s); } void action_output(const char *fmt, ...) { va_list args; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); if (sms_redirect()) { sms_info("%s", vmsgbuf); return; } else { FILE *aout; #if defined(C3270) /*[*/ screen_suspend(); aout = start_pager(); any_error_output = True; #else /*][*/ aout = stdout; #endif /*]*/ #if defined(WC3270) /*[*/ pager_output(vmsgbuf); #else /*][*/ (void) fprintf(aout, "%s\n", vmsgbuf); #endif /*]*/ macro_output = True; } } ibm-3270-3.3.10ga4/wc3270/icmd.c0000644000175000017500000003256611254565674015216 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * icmd.c * A curses-based 3270 Terminal Emulator * Interactive commands */ #include "globals.h" #include "charsetc.h" #include "icmdc.h" #include "utf8c.h" #if defined(_WIN32) /*[*/ #include #endif /*]*/ /* Support functions for interactive commands. */ /* * Get a buffer full of input. * Trims white space in the result. * Returns NULL if there is an input error or if the input is 'quit'. */ static char * get_input(char *buf, int size) { int sl; char *s; fflush(stdout); /* Get the raw input. */ if (fgets(buf, size, stdin) == NULL) return NULL; /* Trim trailing white space. */ sl = strlen(buf); while (sl && isspace(buf[sl - 1])) buf[--sl] = '\0'; /* Trim leading white space. */ s = buf; while (*s && isspace(*s)) { s++; sl--; } if (s != buf) memmove(buf, s, sl + 1); /* Check for 'quit'. */ if (!strcasecmp(buf, "quit")) return NULL; return buf; } /* Get a yes, no or quit. Returns 0 for no, 1 for yes, -1 for quit or error. */ static int getyn(int defval) { char buf[64]; for (;;) { if (get_input(buf, sizeof(buf)) == NULL) return -1; if (!buf[0]) return defval; if (!strncasecmp(buf, "yes", strlen(buf))) return 1; else if (!strncasecmp(buf, "no", strlen(buf))) return 0; else { printf("Please answer 'yes', 'no' or 'quit': "); } } } /* * Get a numeric value. Returns the number for good input, -1 for quit or * error. */ static int getnum(int defval) { char buf[64]; unsigned long u; char *ptr; for (;;) { if (get_input(buf, sizeof(buf)) == NULL) return -1; if (!buf[0]) return defval; u = strtoul(buf, &ptr, 10); if (*ptr == '\0') return (int)u; printf("Please enter a number or 'quit': "); } } /* * Interactive file transfer command. * Called from Transfer_action. Returns a new set of params. * Returns 0 for success, -1 for failure. */ int interactive_transfer(String **params, Cardinal *num_params) { char inbuf[1024]; static String kw_ret[14]; static char kw[13][1024]; char hostfile[1024]; char localfile[1024]; int kw_ix = 0; int receive = 1; int tso = 1; int ascii = 1; int remap = 1; int n; enum { CR_REMOVE, CR_ADD, CR_KEEP } cr_mode = CR_REMOVE; enum { FE_KEEP, FE_REPLACE, FE_APPEND } fe_mode = FE_KEEP; enum { RF_NONE, RF_FIXED, RF_VARIABLE, RF_UNDEFINED } rf_mode = RF_NONE; enum { AT_NONE, AT_TRACKS, AT_CYLINDERS, AT_AVBLOCK } at_mode = AT_NONE; int lrecl = 0; int primary_space = 0, secondary_space = 0; int i; printf("\n\ File Transfer\n\ \n\ Type 'quit' at any prompt to abort this dialog.\n\ \n\ Note: In order to initiate a file transfer, the 3270 cursor must be\n\ positioned on an input field that can accept the IND$FILE command, i.e.,\n\ at VM/CMS or TSO command prompt.\n"); printf("\nContinue? (y/n) [y] "); if (getyn(1) <= 0) return -1; printf(" 'send' means copy a file from this workstation to the host.\n"); printf(" 'receive' means copy a file from the host to this workstation.\n"); for (;;) { printf("Direction (send/receive) [receive]: "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0] || !strncasecmp(inbuf, "receive", strlen(inbuf))) break; if (!strncasecmp(inbuf, "send", strlen(inbuf))) { strcpy(kw[kw_ix++], "Direction=send"); receive = 0; break; } } for (;;) { printf("Name of source file on %s: ", receive? "the host": "this workstation"); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (inbuf[0]) { if (receive) { sprintf(kw[kw_ix++], "HostFile=%s", inbuf); strcpy(hostfile, inbuf); } else { sprintf(kw[kw_ix++], "LocalFile=%s", inbuf); strcpy(localfile, inbuf); } break; } } for (;;) { printf("Name of destination file on %s: ", receive? "this workstation": "the host"); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (inbuf[0]) { if (receive) { sprintf(kw[kw_ix++], "LocalFile=%s", inbuf); strcpy(localfile, inbuf); } else { sprintf(kw[kw_ix++], "HostFile=%s", inbuf); strcpy(hostfile, inbuf); } break; } } for (;;) { printf("Host type: (tso/vm) [tso] "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0] || !strncasecmp(inbuf, "tso", strlen(inbuf))) break; if (!strncasecmp(inbuf, "vm", strlen(inbuf))) { strcpy(kw[kw_ix++], "Host=vm"); tso = 0; break; } } printf("\ An 'ascii' transfer does automatic translation between EBCDIC on the host and\n\ ASCII on the workstation.\n\ A 'binary' transfer does no data translation.\n"); for (;;) { printf("Transfer mode: (ascii/binary) [ascii] "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0] || !strncasecmp(inbuf, "ascii", strlen(inbuf))) break; if (!strncasecmp(inbuf, "binary", strlen(inbuf))) { strcpy(kw[kw_ix++], "Mode=binary"); ascii = 0; break; } } if (ascii) { printf("\ For ASCII transfers, carriage return (CR) characters can be handled specially.\n\ 'remove' means that CRs will be removed during the transfer.\n\ 'add' means that CRs will be added to each record during the transfer.\n\ 'keep' means that no special action is taken with CRs.\n"); for (;;) { printf("CR handling: (remove/add/keep) [remove] "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0] || !strncasecmp(inbuf, "remove", strlen(inbuf))) break; if (!strncasecmp(inbuf, "add", strlen(inbuf))) { strcpy(kw[kw_ix++], "Cr=add"); cr_mode = CR_ADD; break; } if (!strncasecmp(inbuf, "keep", strlen(inbuf))) { strcpy(kw[kw_ix++], "Cr=keep"); cr_mode = CR_KEEP; break; } } printf("\ For ASCII transfers, " #if defined(WC3270) /*[*/ "wc3270" #else /*][*/ "c3270" #endif /*]*/ " can either remap the text to ensure as\n\ accurate a translation between " #if defined(WC3270) /*[*/ "Windows code page %d" #else /*][*/ "%s" #endif /*]*/ " and EBCDIC code\n\ page %s as possible, or it can transfer text as-is and leave all\n\ translation to the IND$FILE program on the host.\n\ 'yes' means that text will be translated.\n\ 'no' means that text will be transferred as-is.\n", #if defined(WC3270) /*[*/ GetACP(), #else /*][*/ locale_codeset, #endif /*]*/ get_host_codepage()); for (;;) { printf("Remap character set: (yes/no) [yes] "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0] || !strncasecmp(inbuf, "yes", strlen(inbuf))) break; if (!strncasecmp(inbuf, "no", strlen(inbuf))) { strcpy(kw[kw_ix++], "Remap=no"); remap = 0; break; } } } if (receive) { printf("\ If the destination file exists, you can choose to keep it (and abort the\n\ transfer), replace it, or append the source file to it.\n"); for (;;) { printf("Action if destination file exists: " "(keep/replace/append) [keep] "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0] || !strncasecmp(inbuf, "keep", strlen(inbuf))) break; if (!strncasecmp(inbuf, "replace", strlen(inbuf))) { strcpy(kw[kw_ix++], "Exist=replace"); fe_mode = FE_REPLACE; break; } if (!strncasecmp(inbuf, "append", strlen(inbuf))) { strcpy(kw[kw_ix++], "Exist=append"); fe_mode = FE_APPEND; break; } } } if (!receive) { for (;;) { printf("[optional] Destinaton file record format (fixed/variable/undefined): "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0]) break; if (!strncasecmp(inbuf, "fixed", strlen(inbuf))) { sprintf(kw[kw_ix++], "Recfm=fixed"); rf_mode = RF_FIXED; break; } if (!strncasecmp(inbuf, "variable", strlen(inbuf))) { sprintf(kw[kw_ix++], "Recfm=variable"); rf_mode = RF_VARIABLE; break; } if (!strncasecmp(inbuf, "undefined", strlen(inbuf))) { sprintf(kw[kw_ix++], "Recfm=undefined"); rf_mode = RF_UNDEFINED; break; } } printf("[optional] Destination file logical record length: "); n = getnum(0); if (n < 0) return -1; if (n > 0) { sprintf(kw[kw_ix++], "Lrecl=%d", n); lrecl = n; } if (tso) { printf("[optional] Destination file block size: "); n = getnum(0); if (n < 0) return -1; if (n > 0) sprintf(kw[kw_ix++], "Blksize=%d", n); for (;;) { printf("[optional] Destination file allocation type (tracks/cylinders/avblock): "); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0]) break; if (!strncasecmp(inbuf, "tracks", strlen(inbuf))) { strcpy(kw[kw_ix++], "Allocation=tracks"); at_mode = AT_TRACKS; break; } if (!strncasecmp(inbuf, "cylinders", strlen(inbuf))) { strcpy(kw[kw_ix++], "Allocation=cylinders"); at_mode = AT_CYLINDERS; break; } if (!strncasecmp(inbuf, "avblock", strlen(inbuf))) { strcpy(kw[kw_ix++], "Allocation=avblock"); at_mode = AT_AVBLOCK; break; } } printf("[optional] Destination file primary space: "); n = getnum(0); if (n < 0) return -1; if (n > 0) { sprintf(kw[kw_ix++], "PrimarySpace=%d", n); primary_space = n; } printf("[optional] Destination file secondary space: "); n = getnum(0); if (n < 0) return -1; if (n > 0) { sprintf(kw[kw_ix++], "SecondarySpace=%d", n); secondary_space = n; } } } printf("\nFile Transfer Summary:\n"); if (receive) { printf(" Source file on Host: %s\n", hostfile); printf(" Destination file on Workstation: %s\n", localfile); } else { printf(" Source file on workstation: %s\n", localfile); printf(" Destination file on Host: %s\n", hostfile); } printf(" Transfer mode: %s", ascii? "ASCII": "Binary"); if (ascii) { switch (cr_mode) { case CR_REMOVE: printf(", remove CRs"); break; case CR_ADD: printf(", add CRs"); break; case CR_KEEP: break; } if (remap) printf(", remap text\n"); else printf(", don't remap text\n"); } else printf("\n"); if (receive) { printf(" If destination file exists, "); switch (fe_mode) { case FE_KEEP: printf("abort the transfer\n"); break; case FE_REPLACE: printf("replace it\n"); break; case FE_APPEND: printf("append to it\n"); break; } } if (!receive && (rf_mode != RF_NONE || lrecl || primary_space || secondary_space)) { printf(" Destination file:\n"); switch (rf_mode) { case RF_NONE: break; case RF_FIXED: printf(" Record format: fixed\n"); break; case RF_VARIABLE: printf(" Record format: variable\n"); break; case RF_UNDEFINED: printf(" Record format: undefined\n"); break; } if (lrecl) printf(" Logical record length: %d\n", lrecl); if (primary_space || secondary_space) { printf(" Allocation:"); if (primary_space) printf(" primary %d", primary_space); if (secondary_space) printf(" secondary %d", secondary_space); switch (at_mode) { case AT_NONE: break; case AT_TRACKS: printf(" tracks"); break; case AT_CYLINDERS: printf(" cylinders"); break; case AT_AVBLOCK: printf(" avblock"); break; } printf("\n"); } } printf("\nContinue? (y/n) [y] "); if (getyn(1) <= 0) return -1; /* Let it go. */ #if defined(FT_DEBUG) /*[*/ printf("transfer"); #endif /*]*/ for (i = 0; i < kw_ix; i++) { kw_ret[i] = (String)kw[i]; #if defined(FT_DEBUG) /*[*/ if (strchr(kw_ret[i], ' ') != NULL) printf(" \"%s\"", kw_ret[i]); else printf(" %s", kw_ret[i]); #endif /*]*/ } #if defined(FT_DEBUG) /*[*/ printf("\n"); fflush(stdout); #endif /*]*/ kw_ret[i] = NULL; *params = kw_ret; *num_params = kw_ix; return 0; } ibm-3270-3.3.10ga4/wc3270/relink.c0000644000175000017500000002221511254565671015551 0ustar bastianbastian/* * Copyright (c) 2006-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * relink.c * A Windows console-based 3270 Terminal Emulator * Utility functions to read a session file and create a * compatible shortcut. */ #include "globals.h" #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "ctlr.h" #include "actionsc.h" #include "ctlrc.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "screenc.h" #include "tablesc.h" #include "trace_dsc.h" #include "utilc.h" #include "xioc.h" #include #include #include #include #include "shlobj_missing.h" #include "winversc.h" #include "shortcutc.h" #include "windirsc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #include "relinkc.h" charsets_t charsets[] = { { "belgian", "500", 0, L"1252" }, { "belgian-euro", "1148", 0, L"1252" }, { "bracket", "37*", 0, L"1252" }, { "brazilian", "275", 0, L"1252" }, { "cp1047", "1047", 0, L"1252" }, { "cp870", "870", 0, L"1250" }, { "chinese-gb18030", "1388", 1, L"936" }, { "finnish", "278", 0, L"1252" }, { "finnish-euro", "1143", 0, L"1252" }, { "french", "297", 0, L"1252" }, { "french-euro", "1147", 0, L"1252" }, { "german", "273", 0, L"1252" }, { "german-euro", "1141", 0, L"1252" }, { "greek", "875", 0, L"1253" }, { "hebrew", "424", 0, L"1255" }, { "icelandic", "871", 0, L"1252" }, { "icelandic-euro", "1149", 0, L"1252" }, { "italian", "280", 0, L"1252" }, { "italian-euro", "1144", 0, L"1252" }, { "japanese-kana", "930", 1, L"932" }, { "japanese-latin", "939", 1, L"932" }, { "norwegian", "277", 0, L"1252" }, { "norwegian-euro", "1142", 0, L"1252" }, { "russian", "880", 0, L"1251" }, { "simplified-chinese", "935", 1, L"936" }, { "spanish", "284", 0, L"1252" }, { "spanish-euro", "1145", 0, L"1252" }, { "thai", "838", 0, L"1252" }, { "traditional-chinese","937", 1, L"950" }, { "turkish", "1026", 0, L"1254" }, { "uk", "285", 0, L"1252" }, { "uk-euro", "1146", 0, L"1252" }, { "us-euro", "1140", 0, L"1252" }, { "us-intl", "37", 0, L"1252" }, { NULL, NULL, 0, NULL } }; size_t num_charsets = (sizeof(charsets) / sizeof(charsets[0])) - 1; /* model 2 3 4 5 */ static int wrows[6] = { 0, 0, 25, 33, 44, 28 }; static int wcols[6] = { 0, 0, 80, 80, 80, 132 }; char *user_settings = NULL; static wchar_t * reg_font_from_cset(char *cset, int *codepage) { int i, j; wchar_t *cpname = NULL; wchar_t data[1024]; DWORD dlen; HKEY key; static wchar_t font[1024]; DWORD type; *codepage = 0; /* Search the table for a match. */ for (i = 0; charsets[i].name != NULL; i++) { if (!strcmp(cset, charsets[i].name)) { cpname = charsets[i].codepage; break; } } /* If no match, use Lucida Console. */ if (cpname == NULL) return L"Lucida Console"; /* * Look in the registry for the console font associated with the * Windows code page. */ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows NT\\CurrentVersion\\" "Console\\TrueTypeFont", 0, KEY_READ, &key) != ERROR_SUCCESS) { printf("RegOpenKey failed -- cannot find font\n"); return L"Lucida Console"; } dlen = sizeof(data); if (RegQueryValueExW(key, cpname, NULL, &type, (LPVOID)data, &dlen) != ERROR_SUCCESS) { /* No codepage-specific match, try the default. */ dlen = sizeof(data); if (RegQueryValueExW(key, L"0", NULL, &type, (LPVOID)data, &dlen) != ERROR_SUCCESS) { RegCloseKey(key); printf("RegQueryValueEx failed -- cannot find font\n"); return L"Lucida Console"; } } RegCloseKey(key); if (type == REG_MULTI_SZ) { for (i = 0; i < dlen/sizeof(wchar_t); i++) { if (data[i] == 0x0000) break; } if (i+1 >= dlen/sizeof(wchar_t) || data[i+1] == 0x0000) { printf("Bad registry value -- cannot find font\n"); return L"Lucida Console"; } i++; } else i = 0; for (j = 0; i < dlen; i++, j++) { if (j == 0 && data[i] == L'*') i++; if ((font[j] = data[i]) == 0x0000) break; } *codepage = _wtoi(cpname); return font; } /* Convert a hexadecimal digit to a nybble. */ static unsigned hex(char c) { static char *digits = "0123456789abcdef"; char *pos; pos = strchr(digits, c); if (pos == NULL) return 0; /* XXX */ return pos - digits; } //#define DEBUG_EDIT 1 /* * Read an existing session file. * Returns 1 for success (file read and editable), 0 for failure. */ int read_session(FILE *f, session_t *s) { char buf[1024]; int saw_hex = 0; int saw_star = 0; unsigned long csum; unsigned long fcsum = 0; int ver; int s_off = 0; /* * Look for the checksum and version. Verify the version. * * XXX: It might be a good idea to validate each '!x' line and * make sure that the length is right. */ while (fgets(buf, sizeof(buf), f) != NULL) { if (buf[0] == '!' && buf[1] == 'x') saw_hex = 1; else if (buf[0] == '!' && buf[1] == '*') saw_star = 1; else if (buf[0] == '!' && buf[1] == 'c') { if (sscanf(buf + 2, "%lx %d", &csum, &ver) != 2) { #if defined(DEBUG_EDIT) /*[*/ printf("[bad !c line '%s']\n", buf); #endif /*]*/ return 0; } if (ver > WIZARD_VER) { #if defined(DEBUG_EDIT) /*[*/ printf("[bad ver %d > %d]\n", ver, WIZARD_VER); #endif /*]*/ return 0; } } } if (!saw_hex || !saw_star) { #if defined(DEBUG_EDIT) /*[*/ printf("[missing%s%s]\n", saw_hex? "": "hex", saw_star? "": "star"); #endif /*]*/ return 0; } /* Checksum from the top up to the '!c' line. */ fflush(f); fseek(f, 0, SEEK_SET); fcsum = 0; while (fgets(buf, sizeof(buf), f) != NULL) { char *t; if (buf[0] == '!' && buf[1] == 'c') break; for (t = buf; *t; t++) fcsum += *t & 0xff; } if (fcsum != csum) { #if defined(DEBUG_EDIT) /*[*/ printf("[checksum mismatch, want 0x%08lx got 0x%08lx]\n", csum, fcsum); #endif /*]*/ return 0; } /* Once more, with feeling. Scribble onto the session structure. */ fflush(f); fseek(f, 0, SEEK_SET); s_off = 0; while (fgets(buf, sizeof(buf), f) != NULL) { if (buf[0] == '!' && buf[1] == 'x') { char *t; for (t = buf + 2; *t; t += 2) { if (*t == '\n') break; if (s_off > sizeof(*s)) { #if defined(DEBUG_EDIT) /*[*/ printf("[s overflow: %d > %d]\n", s_off, sizeof(*s)); #endif /*]*/ return 0; } ((char *)s)[s_off++] = (hex(*t) << 4) | hex(*(t + 1)); } } else if (buf[0] == '!' && buf[1] == 'c') break; } /* * Read the balance of the file into a temporary buffer, ignoring * the '!*' line. */ saw_star = 0; while (fgets(buf, sizeof(buf), f) != NULL) { if (!saw_star) { if (buf[0] == '!' && buf[1] == '*') saw_star = 1; continue; } if (user_settings == NULL) { user_settings = malloc(strlen(buf) + 1); user_settings[0] = '\0'; } else user_settings = realloc(user_settings, strlen(user_settings) + strlen(buf) + 1); if (user_settings == NULL) { #if defined(DEBUG_EDIT) /*[*/ printf("out of memory]\n"); #endif /*]*/ return 0; } strcat(user_settings, buf); } /* Success */ return 1; } HRESULT create_shortcut(session_t *session, char *exepath, char *linkpath, char *args, char *workingdir) { wchar_t *font; int codepage = 0; font = reg_font_from_cset(session->charset, &codepage); return CreateLink( exepath, /* path to executable */ linkpath, /* where to put the link */ "wc3270 session", /* description */ args, /* arguments */ workingdir, /* working directory */ wrows[session->model], wcols[session->model], /* console rows, columns */ font, /* font */ 0, /* point size */ codepage); /* code page */ } ibm-3270-3.3.10ga4/wc3270/tables.c0000644000175000017500000002171311254565704015536 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * tables.c * Translation tables between the three character sets: * EBCDIC * ASCII (ISO Latin-1) * Character Generator ("3270" font) */ #include "globals.h" #include "tablesc.h" const unsigned char asc2cg0[256] = { /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*20*/ 0x10, 0x19, 0x13, 0x2c, 0x1a, 0x2e, 0x30, 0x12, /*28*/ 0x0d, 0x0c, 0xbf, 0x35, 0x33, 0x31, 0x32, 0x14, /*30*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /*38*/ 0x28, 0x29, 0x34, 0xbe, 0x09, 0x11, 0x08, 0x18, /*40*/ 0x2d, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*48*/ 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, /*50*/ 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, /*58*/ 0xb7, 0xb8, 0xb9, 0x0a, 0x15, 0x0b, 0x3a, 0x2f, /*60*/ 0x3d, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /*68*/ 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, /*70*/ 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*78*/ 0x97, 0x98, 0x99, 0x0f, 0x16, 0x0e, 0x3b, 0x00, /*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*a0*/ 0x01, 0x6e, 0x1b, 0x1c, 0x1f, 0x1d, 0x17, 0x2b, /*a8*/ 0x3c, 0xd0, 0x6a, 0x6c, 0x36, 0x07, 0xd1, 0x37, /*b0*/ 0x38, 0xd6, 0x68, 0x69, 0x3e, 0x54, 0x1e, 0x39, /*b8*/ 0x3f, 0x67, 0x6b, 0x6d, 0x4b, 0x4c, 0x4d, 0x6f, /*c0*/ 0x60, 0x7a, 0x75, 0x65, 0x70, 0xbc, 0xba, 0xbd, /*c8*/ 0x61, 0x7b, 0x76, 0x71, 0x62, 0x7c, 0x77, 0x72, /*d0*/ 0xd7, 0x7f, 0x63, 0x7d, 0x78, 0x66, 0x73, 0x5b, /*d8*/ 0xbb, 0x64, 0x7e, 0x79, 0x74, 0x48, 0xd9, 0x2a, /*e0*/ 0x40, 0x5a, 0x55, 0x45, 0x50, 0x9c, 0x9a, 0x4f, /*e8*/ 0x41, 0x4a, 0x56, 0x51, 0x42, 0x5c, 0x57, 0x52, /*f0*/ 0xf7, 0x5f, 0x43, 0x5d, 0x58, 0x46, 0x53, 0x9d, /*f8*/ 0x9b, 0x44, 0x5e, 0x59, 0x4e, 0x49, 0xf9, 0x47 }; const unsigned char ebc2cg0[256] = { /*00*/ 0x00, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*08*/ 0xdf, 0xdf, 0xdf, 0xdf, 0x02, 0x03, 0x00, 0x00, /*10*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0x04, 0xdf, 0xdf, /*18*/ 0xdf, 0x05, 0xdf, 0xdf, 0x9f, 0xdf, 0x9e, 0xdf, /*20*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*28*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*30*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*38*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*40*/ 0x10, 0x01, 0x55, 0x50, 0x40, 0x5a, 0x45, 0x9c, /*48*/ 0x4f, 0x5f, 0x1b, 0x32, 0x09, 0x0d, 0x35, 0x16, /*50*/ 0x30, 0x4a, 0x56, 0x51, 0x41, 0x5c, 0x57, 0x52, /*58*/ 0x42, 0x2a, 0x19, 0x1a, 0xbf, 0x0c, 0xbe, 0x36, /*60*/ 0x31, 0x14, 0x75, 0x70, 0x60, 0x7a, 0x65, 0xbc, /*68*/ 0xbd, 0x7f, 0x17, 0x33, 0x2e, 0x2f, 0x08, 0x18, /*70*/ 0x9b, 0x7b, 0x76, 0x71, 0x61, 0x7c, 0x77, 0x72, /*78*/ 0x62, 0x3d, 0x34, 0x2c, 0x2d, 0x12, 0x11, 0x13, /*80*/ 0xbb, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /*88*/ 0x87, 0x88, 0x6c, 0x6d, 0xf7, 0x49, 0xf9, 0xd6, /*90*/ 0x38, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /*98*/ 0x90, 0x91, 0x6a, 0x6b, 0x9a, 0x3f, 0xba, 0x1f, /*a0*/ 0x54, 0x3b, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /*a8*/ 0x98, 0x99, 0x6e, 0x6f, 0xd7, 0x48, 0xd9, 0xd1, /*b0*/ 0x3a, 0x1c, 0x1d, 0x39, 0xd0, 0x2b, 0x1e, 0x4b, /*b8*/ 0x4c, 0x4d, 0x0a, 0x0b, 0x37, 0x3c, 0x3e, 0x5b, /*c0*/ 0x0f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*c8*/ 0xa7, 0xa8, 0x07, 0x58, 0x53, 0x43, 0x5d, 0x46, /*d0*/ 0x0e, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /*d8*/ 0xb0, 0xb1, 0x67, 0x59, 0x4e, 0x44, 0x5e, 0x47, /*e0*/ 0x15, 0x9d, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /*e8*/ 0xb8, 0xb9, 0x68, 0x78, 0x73, 0x63, 0x7d, 0x66, /*f0*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /*f8*/ 0x28, 0x29, 0x69, 0x79, 0x74, 0x64, 0x7e, 0x06 }; const unsigned char ebc2asc0[256] = { /*00*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*08*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*10*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*18*/ 0x20, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x3b, 0x20, /*20*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*28*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*30*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*38*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*40*/ 0x20, 0x20, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, /*48*/ 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /*50*/ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, /*58*/ 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0xac, /*60*/ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, /*68*/ 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /*70*/ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, /*78*/ 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /*80*/ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /*88*/ 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /*90*/ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /*98*/ 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /*a0*/ 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /*a8*/ 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, /*b0*/ 0x5e, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, /*b8*/ 0xbd, 0xbe, 0x5b, 0x5d, 0xaf, 0xa8, 0xb4, 0xd7, /*c0*/ 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /*c8*/ 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /*d0*/ 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /*d8*/ 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, /*e0*/ 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /*e8*/ 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /*f8*/ 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x20 }; const unsigned char asc2ebc0[256] = { /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*20*/ 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /*28*/ 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /*30*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /*38*/ 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /*40*/ 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /*48*/ 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /*50*/ 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /*58*/ 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /*60*/ 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /*68*/ 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*70*/ 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*78*/ 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x00, /*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*a0*/ 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /*a8*/ 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, /*b0*/ 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /*b8*/ 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /*c0*/ 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /*c8*/ 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /*d0*/ 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /*d8*/ 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /*e0*/ 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /*e8*/ 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /*f0*/ 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /*f8*/ 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf }; ibm-3270-3.3.10ga4/wc3270/ctlr.h0000644000175000017500000000362711254565704015241 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ctlr.h * External declarations for ctlr.c data structures. */ extern int buffer_addr; /* buffer address */ extern int cursor_addr; /* cursor address */ extern struct ea *ea_buf; /* 3270 device buffer */ extern struct ea *aea_buf; /* alternate 3270 device buffer */ extern Boolean formatted; /* contains at least one field? */ extern Boolean is_altbuffer; /* in alternate-buffer mode? */ ibm-3270-3.3.10ga4/wc3270/xioc.h0000644000175000017500000000350711254565704015234 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xioc.h * Global declarations for xio.c. */ extern void Quit_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void x3270_exit(int n); extern void x_add_input(int net_sock); extern void x_except_off(void); extern void x_except_on(int net_sock); extern void x_remove_input(void); ibm-3270-3.3.10ga4/wc3270/ansi.c0000644000175000017500000016035711254565704015226 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ansi.c * ANSI terminal emulation. */ #include "globals.h" #if defined(X3270_ANSI) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #endif /*]*/ #include "appres.h" #include "ctlr.h" #include "3270ds.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "hostc.h" #include "screenc.h" #include "scrollc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #define MB_MAX 16 #define PE_MAX 1024 #define SC 1 /* save cursor position */ #define RC 2 /* restore cursor position */ #define NL 3 /* new line */ #define UP 4 /* cursor up */ #define E2 5 /* second level of ESC processing */ #define rS 6 /* reset */ #define IC 7 /* insert chars */ #define DN 8 /* cursor down */ #define RT 9 /* cursor right */ #define LT 10 /* cursor left */ #define CM 11 /* cursor motion */ #define ED 12 /* erase in display */ #define EL 13 /* erase in line */ #define IL 14 /* insert lines */ #define DL 15 /* delete lines */ #define DC 16 /* delete characters */ #define SG 17 /* set graphic rendition */ #define BL 18 /* ring bell */ #define NP 19 /* new page */ #define BS 20 /* backspace */ #define CR 21 /* carriage return */ #define LF 22 /* line feed */ #define HT 23 /* horizontal tab */ #define E1 24 /* first level of ESC processing */ #define Xx 25 /* undefined control character (nop) */ #define Pc 26 /* printing character */ #define Sc 27 /* semicolon (after ESC [) */ #define Dg 28 /* digit (after ESC [ or ESC [ ?) */ #define RI 29 /* reverse index */ #define DA 30 /* send device attributes */ #define SM 31 /* set mode */ #define RM 32 /* reset mode */ #define DO 33 /* return terminal ID (obsolete) */ #define SR 34 /* device status report */ #define CS 35 /* character set designate */ #define E3 36 /* third level of ESC processing */ #define DS 37 /* DEC private set */ #define DR 38 /* DEC private reset */ #define DV 39 /* DEC private save */ #define DT 40 /* DEC private restore */ #define SS 41 /* set scrolling region */ #define TM 42 /* text mode (ESC ]) */ #define T2 43 /* semicolon (after ESC ]) */ #define TX 44 /* text parameter (after ESC ] n ;) */ #define TB 45 /* text parameter done (ESC ] n ; xxx BEL) */ #define TS 46 /* tab set */ #define TC 47 /* tab clear */ #define C2 48 /* character set designate (finish) */ #define G0 49 /* select G0 character set */ #define G1 50 /* select G1 character set */ #define G2 51 /* select G2 character set */ #define G3 52 /* select G3 character set */ #define S2 53 /* select G2 for next character */ #define S3 54 /* select G3 for next character */ #define MB 55 /* process multi-byte character */ static enum state { DATA = 0, ESC = 1, CSDES = 2, N1 = 3, DECP = 4, TEXT = 5, TEXT2 = 6, MBPEND = 7 } state = DATA; static enum state ansi_data_mode(int, int); static enum state dec_save_cursor(int, int); static enum state dec_restore_cursor(int, int); static enum state ansi_newline(int, int); static enum state ansi_cursor_up(int, int); static enum state ansi_esc2(int, int); static enum state ansi_reset(int, int); static enum state ansi_insert_chars(int, int); static enum state ansi_cursor_down(int, int); static enum state ansi_cursor_right(int, int); static enum state ansi_cursor_left(int, int); static enum state ansi_cursor_motion(int, int); static enum state ansi_erase_in_display(int, int); static enum state ansi_erase_in_line(int, int); static enum state ansi_insert_lines(int, int); static enum state ansi_delete_lines(int, int); static enum state ansi_delete_chars(int, int); static enum state ansi_sgr(int, int); static enum state ansi_bell(int, int); static enum state ansi_newpage(int, int); static enum state ansi_backspace(int, int); static enum state ansi_cr(int, int); static enum state ansi_lf(int, int); static enum state ansi_htab(int, int); static enum state ansi_escape(int, int); static enum state ansi_nop(int, int); static enum state ansi_printing(int, int); static enum state ansi_semicolon(int, int); static enum state ansi_digit(int, int); static enum state ansi_reverse_index(int, int); static enum state ansi_send_attributes(int, int); static enum state ansi_set_mode(int, int); static enum state ansi_reset_mode(int, int); static enum state dec_return_terminal_id(int, int); static enum state ansi_status_report(int, int); static enum state ansi_cs_designate(int, int); static enum state ansi_esc3(int, int); static enum state dec_set(int, int); static enum state dec_reset(int, int); static enum state dec_save(int, int); static enum state dec_restore(int, int); static enum state dec_scrolling_region(int, int); static enum state xterm_text_mode(int, int); static enum state xterm_text_semicolon(int, int); static enum state xterm_text(int, int); static enum state xterm_text_do(int, int); static enum state ansi_htab_set(int, int); static enum state ansi_htab_clear(int, int); static enum state ansi_cs_designate2(int, int); static enum state ansi_select_g0(int, int); static enum state ansi_select_g1(int, int); static enum state ansi_select_g2(int, int); static enum state ansi_select_g3(int, int); static enum state ansi_one_g2(int, int); static enum state ansi_one_g3(int, int); static enum state ansi_multibyte(int, int); typedef enum state (*afn_t)(int, int); static afn_t ansi_fn[] = { /* 0 */ &ansi_data_mode, /* 1 */ &dec_save_cursor, /* 2 */ &dec_restore_cursor, /* 3 */ &ansi_newline, /* 4 */ &ansi_cursor_up, /* 5 */ &ansi_esc2, /* 6 */ &ansi_reset, /* 7 */ &ansi_insert_chars, /* 8 */ &ansi_cursor_down, /* 9 */ &ansi_cursor_right, /* 10 */ &ansi_cursor_left, /* 11 */ &ansi_cursor_motion, /* 12 */ &ansi_erase_in_display, /* 13 */ &ansi_erase_in_line, /* 14 */ &ansi_insert_lines, /* 15 */ &ansi_delete_lines, /* 16 */ &ansi_delete_chars, /* 17 */ &ansi_sgr, /* 18 */ &ansi_bell, /* 19 */ &ansi_newpage, /* 20 */ &ansi_backspace, /* 21 */ &ansi_cr, /* 22 */ &ansi_lf, /* 23 */ &ansi_htab, /* 24 */ &ansi_escape, /* 25 */ &ansi_nop, /* 26 */ &ansi_printing, /* 27 */ &ansi_semicolon, /* 28 */ &ansi_digit, /* 29 */ &ansi_reverse_index, /* 30 */ &ansi_send_attributes, /* 31 */ &ansi_set_mode, /* 32 */ &ansi_reset_mode, /* 33 */ &dec_return_terminal_id, /* 34 */ &ansi_status_report, /* 35 */ &ansi_cs_designate, /* 36 */ &ansi_esc3, /* 37 */ &dec_set, /* 38 */ &dec_reset, /* 39 */ &dec_save, /* 40 */ &dec_restore, /* 41 */ &dec_scrolling_region, /* 42 */ &xterm_text_mode, /* 43 */ &xterm_text_semicolon, /* 44 */ &xterm_text, /* 45 */ &xterm_text_do, /* 46 */ &ansi_htab_set, /* 47 */ &ansi_htab_clear, /* 48 */ &ansi_cs_designate2, /* 49 */ &ansi_select_g0, /* 50 */ &ansi_select_g1, /* 51 */ &ansi_select_g2, /* 52 */ &ansi_select_g3, /* 53 */ &ansi_one_g2, /* 54 */ &ansi_one_g3, /* 55 */ &ansi_multibyte, }; static unsigned char st[8][256] = { /* * State table for base processing (state == DATA) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,BL,BS,HT,LF,LF,NP,CR,G1,G0, /* 10 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,E1,Xx,Xx,Xx,Xx, /* 20 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 30 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 40 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 50 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 60 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 70 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Xx, /* 80 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx, /* 90 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx, /* a0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* b0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* c0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* d0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* e0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* f0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc }, /* * State table for ESC processing (state == ESC) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0,CS,CS,CS,CS, 0, 0, 0, 0, /* 30 */ 0, 0, 0, 0, 0, 0, 0,SC,RC, 0, 0, 0, 0, 0, 0, 0, /* 40 */ 0, 0, 0, 0, 0,NL, 0, 0,TS, 0, 0, 0, 0,RI,S2,S3, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,E2, 0,TM, 0, 0, /* 60 */ 0, 0, 0,rS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,G2,G3, /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC ()*+ C processing (state == CSDES) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ C2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 40 */ 0,C2,C2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC [ processing (state == N1) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg, 0,Sc, 0, 0, 0,E3, /* 40 */ IC,UP,DN,RT,LT, 0, 0, 0,CM, 0,ED,EL,IL,DL, 0, 0, /* 50 */ DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0,DA, 0, 0,CM,TC,SM, 0, 0, 0,RM,SG,SR, 0, /* 70 */ 0, 0,SS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC [ ? processing (state == DECP) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg, 0, 0, 0, 0, 0, 0, /* 40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0, 0, 0, 0, 0, 0,DS, 0, 0, 0,DR, 0, 0, 0, /* 70 */ 0, 0,DT,DV, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC ] processing (state == TEXT) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg, 0,T2, 0, 0, 0, 0, /* 40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC ] n ; processing (state == TEXT2) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0,TB, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 30 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 40 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 50 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 60 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 70 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,Xx, /* 80 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 90 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* a0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* b0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* c0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* d0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* e0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* f0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX }, /* * State table for multi-byte characters (state == MBPEND) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 10 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 20 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 30 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 40 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 50 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 60 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 70 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 80 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 90 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* a0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* b0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* c0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* d0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* e0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* f0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB }, }; /* Character sets. */ #define CS_G0 0 #define CS_G1 1 #define CS_G2 2 #define CS_G3 3 /* Character set designations. */ #define CSD_LD 0 #define CSD_UK 1 #define CSD_US 2 static int saved_cursor = 0; #define NN 20 static int n[NN], nx = 0; #define NT 256 static char text[NT + 1]; static int tx = 0; static int ansi_ch; static unsigned char gr = 0; static unsigned char saved_gr = 0; static unsigned char fg = 0; static unsigned char saved_fg = 0; static unsigned char bg = 0; static unsigned char saved_bg = 0; static int cset = CS_G0; static int saved_cset = CS_G0; static int csd[4] = { CSD_US, CSD_US, CSD_US, CSD_US }; static int saved_csd[4] = { CSD_US, CSD_US, CSD_US, CSD_US }; static int once_cset = -1; static int insert_mode = 0; static int auto_newline_mode = 0; static int appl_cursor = 0; static int saved_appl_cursor = 0; static int wraparound_mode = 1; static int saved_wraparound_mode = 1; static int rev_wraparound_mode = 0; static int saved_rev_wraparound_mode = 0; static int allow_wide_mode = 0; static int saved_allow_wide_mode = 0; static int wide_mode = 0; static int saved_wide_mode = 0; static Boolean saved_altbuffer = False; static int scroll_top = -1; static int scroll_bottom = -1; static unsigned char *tabs = (unsigned char *) NULL; static char gnnames[] = "()*+"; static char csnames[] = "0AB"; static int cs_to_change; static int pmi = 0; static char pending_mbs[MB_MAX]; static int pe = 0; static unsigned char ped[PE_MAX]; static Boolean held_wrap = False; static void ansi_scroll(void); static enum state ansi_data_mode(int ig1 _is_unused, int ig2 _is_unused) { return DATA; } static enum state dec_save_cursor(int ig1 _is_unused, int ig2 _is_unused) { int i; saved_cursor = cursor_addr; saved_cset = cset; for (i = 0; i < 4; i++) saved_csd[i] = csd[i]; saved_fg = fg; saved_bg = bg; saved_gr = gr; return DATA; } static enum state dec_restore_cursor(int ig1 _is_unused, int ig2 _is_unused) { int i; cset = saved_cset; for (i = 0; i < 4; i++) csd[i] = saved_csd[i]; fg = saved_fg; bg = saved_bg; gr = saved_gr; cursor_move(saved_cursor); held_wrap = False; return DATA; } static enum state ansi_newline(int ig1 _is_unused, int ig2 _is_unused) { int nc; cursor_move(cursor_addr - (cursor_addr % COLS)); nc = cursor_addr + COLS; if (nc < scroll_bottom * COLS) cursor_move(nc); else ansi_scroll(); held_wrap = False; return DATA; } static enum state ansi_cursor_up(int nn, int ig2 _is_unused) { int rr; if (nn < 1) nn = 1; rr = cursor_addr / COLS; if (rr - nn < 0) cursor_move(cursor_addr % COLS); else cursor_move(cursor_addr - (nn * COLS)); held_wrap = False; return DATA; } static enum state ansi_esc2(int ig1 _is_unused, int ig2 _is_unused) { register int i; for (i = 0; i < NN; i++) n[i] = 0; nx = 0; return N1; } static enum state ansi_reset(int ig1 _is_unused, int ig2 _is_unused) { int i; static Boolean first = True; gr = 0; saved_gr = 0; fg = 0; saved_fg = 0; bg = 0; saved_bg = 0; cset = CS_G0; saved_cset = CS_G0; csd[0] = csd[1] = csd[2] = csd[3] = CSD_US; saved_csd[0] = saved_csd[1] = saved_csd[2] = saved_csd[3] = CSD_US; once_cset = -1; saved_cursor = 0; insert_mode = 0; auto_newline_mode = 0; appl_cursor = 0; saved_appl_cursor = 0; wraparound_mode = 1; saved_wraparound_mode = 1; rev_wraparound_mode = 0; saved_rev_wraparound_mode = 0; allow_wide_mode = 0; saved_allow_wide_mode = 0; wide_mode = 0; allow_wide_mode = 0; saved_altbuffer = False; scroll_top = 1; scroll_bottom = ROWS; Replace(tabs, (unsigned char *)Malloc((COLS+7)/8)); for (i = 0; i < (COLS+7)/8; i++) tabs[i] = 0x01; held_wrap = False; if (!first) { ctlr_altbuffer(True); ctlr_aclear(0, ROWS * COLS, 1); ctlr_altbuffer(False); ctlr_clear(False); screen_80(); } first = False; pmi = 0; return DATA; } static enum state ansi_insert_chars(int nn, int ig2 _is_unused) { int cc = cursor_addr % COLS; /* current col */ int mc = COLS - cc; /* max chars that can be inserted */ int ns; /* chars that are shifting */ if (nn < 1) nn = 1; if (nn > mc) nn = mc; /* Move the surviving chars right */ ns = mc - nn; if (ns) ctlr_bcopy(cursor_addr, cursor_addr + nn, ns, 1); /* Clear the middle of the line */ ctlr_aclear(cursor_addr, nn, 1); return DATA; } static enum state ansi_cursor_down(int nn, int ig2 _is_unused) { int rr; if (nn < 1) nn = 1; rr = cursor_addr / COLS; if (rr + nn >= ROWS) cursor_move((ROWS-1)*COLS + (cursor_addr%COLS)); else cursor_move(cursor_addr + (nn * COLS)); held_wrap = False; return DATA; } static enum state ansi_cursor_right(int nn, int ig2 _is_unused) { int cc; if (nn < 1) nn = 1; cc = cursor_addr % COLS; if (cc == COLS-1) return DATA; if (cc + nn >= COLS) nn = COLS - 1 - cc; cursor_move(cursor_addr + nn); held_wrap = False; return DATA; } static enum state ansi_cursor_left(int nn, int ig2 _is_unused) { int cc; if (held_wrap) { held_wrap = False; return DATA; } if (nn < 1) nn = 1; cc = cursor_addr % COLS; if (!cc) return DATA; if (nn > cc) nn = cc; cursor_move(cursor_addr - nn); return DATA; } static enum state ansi_cursor_motion(int n1, int n2) { if (n1 < 1) n1 = 1; if (n1 > ROWS) n1 = ROWS; if (n2 < 1) n2 = 1; if (n2 > COLS) n2 = COLS; cursor_move((n1 - 1) * COLS + (n2 - 1)); held_wrap = False; return DATA; } static enum state ansi_erase_in_display(int nn, int ig2 _is_unused) { switch (nn) { case 0: /* below */ ctlr_aclear(cursor_addr, (ROWS * COLS) - cursor_addr, 1); break; case 1: /* above */ ctlr_aclear(0, cursor_addr + 1, 1); break; case 2: /* all (without moving cursor) */ if (cursor_addr == 0 && !is_altbuffer) scroll_save(ROWS, True); ctlr_aclear(0, ROWS * COLS, 1); break; } return DATA; } static enum state ansi_erase_in_line(int nn, int ig2 _is_unused) { int nc = cursor_addr % COLS; switch (nn) { case 0: /* to right */ ctlr_aclear(cursor_addr, COLS - nc, 1); break; case 1: /* to left */ ctlr_aclear(cursor_addr - nc, nc+1, 1); break; case 2: /* all */ ctlr_aclear(cursor_addr - nc, COLS, 1); break; } return DATA; } static enum state ansi_insert_lines(int nn, int ig2 _is_unused) { int rr = cursor_addr / COLS; /* current row */ int mr = scroll_bottom - rr; /* rows left at and below this one */ int ns; /* rows that are shifting */ /* If outside of the scrolling region, do nothing */ if (rr < scroll_top - 1 || rr >= scroll_bottom) return DATA; if (nn < 1) nn = 1; if (nn > mr) nn = mr; /* Move the victims down */ ns = mr - nn; if (ns) ctlr_bcopy(rr * COLS, (rr + nn) * COLS, ns * COLS, 1); /* Clear the middle of the screen */ ctlr_aclear(rr * COLS, nn * COLS, 1); return DATA; } static enum state ansi_delete_lines(int nn, int ig2 _is_unused) { int rr = cursor_addr / COLS; /* current row */ int mr = scroll_bottom - rr; /* max rows that can be deleted */ int ns; /* rows that are shifting */ /* If outside of the scrolling region, do nothing */ if (rr < scroll_top - 1 || rr >= scroll_bottom) return DATA; if (nn < 1) nn = 1; if (nn > mr) nn = mr; /* Move the surviving rows up */ ns = mr - nn; if (ns) ctlr_bcopy((rr + nn) * COLS, rr * COLS, ns * COLS, 1); /* Clear the rest of the screen */ ctlr_aclear((rr + ns) * COLS, nn * COLS, 1); return DATA; } static enum state ansi_delete_chars(int nn, int ig2 _is_unused) { int cc = cursor_addr % COLS; /* current col */ int mc = COLS - cc; /* max chars that can be deleted */ int ns; /* chars that are shifting */ if (nn < 1) nn = 1; if (nn > mc) nn = mc; /* Move the surviving chars left */ ns = mc - nn; if (ns) ctlr_bcopy(cursor_addr + nn, cursor_addr, ns, 1); /* Clear the end of the line */ ctlr_aclear(cursor_addr + ns, nn, 1); return DATA; } static enum state ansi_sgr(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 0: gr = 0; fg = 0; bg = 0; break; case 1: gr |= GR_INTENSIFY; break; case 4: gr |= GR_UNDERLINE; break; case 5: gr |= GR_BLINK; break; case 7: gr |= GR_REVERSE; break; case 30: fg = 0xf0; /* black */ break; case 31: fg = 0xf2; /* red */ break; case 32: fg = 0xf4; /* green */ break; case 33: fg = 0xf6; /* yellow */ break; case 34: fg = 0xf1; /* blue */ break; case 35: fg = 0xf3; /* magenta */ break; case 36: #if defined(WC3270) /*[*/ fg = 0xf6; /* turquoise */ #else /*][*/ fg = 0xfd; /* cyan */ #endif /*]*/ break; case 37: #if defined(WC3270) /*[*/ fg = 0xf7; /* white */ #else /*][*/ fg = 0xff; /* white */ #endif /*]*/ break; case 39: fg = 0; /* default */ break; case 40: bg = 0xf0; /* black */ break; case 41: bg = 0xf2; /* red */ break; case 42: bg = 0xf4; /* green */ break; case 43: bg = 0xf6; /* yellow */ break; case 44: bg = 0xf1; /* blue */ break; case 45: bg = 0xf3; /* magenta */ break; case 46: #if defined(WC3270) /*[*/ bg = 0xf6; /* turquoise */ #else /*][*/ bg = 0xfd; /* cyan */ #endif /*]*/ break; case 47: #if defined(WC3270) /*[*/ bg = 0xf7; /* white */ #else /*][*/ bg = 0xff; /* white */ #endif /*]*/ break; case 49: bg = 0; /* default */ break; } return DATA; } static enum state ansi_bell(int ig1 _is_unused, int ig2 _is_unused) { ring_bell(); return DATA; } static enum state ansi_newpage(int ig1 _is_unused, int ig2 _is_unused) { ctlr_clear(False); return DATA; } static enum state ansi_backspace(int ig1 _is_unused, int ig2 _is_unused) { if (held_wrap) { held_wrap = False; return DATA; } if (rev_wraparound_mode) { if (cursor_addr > (scroll_top - 1) * COLS) cursor_move(cursor_addr - 1); } else { if (cursor_addr % COLS) cursor_move(cursor_addr - 1); } return DATA; } static enum state ansi_cr(int ig1 _is_unused, int ig2 _is_unused) { if (cursor_addr % COLS) cursor_move(cursor_addr - (cursor_addr % COLS)); if (auto_newline_mode) (void) ansi_lf(0, 0); held_wrap = False; return DATA; } static enum state ansi_lf(int ig1 _is_unused, int ig2 _is_unused) { int nc = cursor_addr + COLS; held_wrap = False; /* If we're below the scrolling region, don't scroll. */ if ((cursor_addr / COLS) >= scroll_bottom) { if (nc < ROWS * COLS) cursor_move(nc); return DATA; } if (nc < scroll_bottom * COLS) cursor_move(nc); else ansi_scroll(); return DATA; } static enum state ansi_htab(int ig1 _is_unused, int ig2 _is_unused) { int col = cursor_addr % COLS; int i; held_wrap = False; if (col == COLS-1) return DATA; for (i = col+1; i < COLS-1; i++) if (tabs[i/8] & 1<<(i%8)) break; cursor_move(cursor_addr - col + i); return DATA; } static enum state ansi_escape(int ig1 _is_unused, int ig2 _is_unused) { return ESC; } static enum state ansi_nop(int ig1 _is_unused, int ig2 _is_unused) { return DATA; } #define PWRAP { \ nc = cursor_addr + 1; \ if (nc < scroll_bottom * COLS) \ cursor_move(nc); \ else { \ if (cursor_addr / COLS >= scroll_bottom) \ cursor_move(cursor_addr / COLS * COLS); \ else { \ ansi_scroll(); \ cursor_move(nc - COLS); \ } \ } \ } static enum state ansi_printing(int ig1 _is_unused, int ig2 _is_unused) { int nc; unsigned short ebc_ch; #if defined(X3270_DBCS) /*[*/ enum dbcs_state d; #endif /*]*/ if ((pmi == 0) && (ansi_ch & 0x80)) { char mbs[2]; int consumed; enum me_fail fail; unsigned long ucs4; mbs[0] = (char)ansi_ch; mbs[1] = '\0'; ucs4 = multibyte_to_unicode(mbs, 1, &consumed, &fail); if (ucs4 == 0) { switch (fail) { case ME_SHORT: /* Start munching multi-byte. */ pmi = 0; pending_mbs[pmi++] = (char)ansi_ch; return MBPEND; case ME_INVALID: default: /* Invalid multi-byte -> '?' */ ansi_ch = '?'; break; } } else { ansi_ch = ucs4; } } pmi = 0; /* Translate to EBCDIC to see if it's DBCS. */ ebc_ch = unicode_to_ebcdic(ansi_ch); if (ebc_ch & ~0xff) { #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif { ansi_ch = '?'; ebc_ch = asc2ebc0['?']; } } if (held_wrap) { PWRAP; held_wrap = False; } if (insert_mode) (void) ansi_insert_chars(1, 0); #if defined(X3270_DBCS) /*[*/ d = ctlr_dbcs_state(cursor_addr); #endif /*]*/ switch (csd[(once_cset != -1) ? once_cset : cset]) { case CSD_LD: /* line drawing "0" */ if (ansi_ch >= 0x5f && ansi_ch <= 0x7e) ctlr_add(cursor_addr, (unsigned char)(ansi_ch - 0x5f), CS_LINEDRAW); else if (ebc_ch & ~0xff) ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); else ctlr_add(cursor_addr, ebc_ch, CS_BASE); break; case CSD_UK: /* UK "A" */ if (ansi_ch == '#') ctlr_add(cursor_addr, 0x1e, CS_LINEDRAW); else if (ebc_ch & ~0xff) ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); else ctlr_add(cursor_addr, ebc_ch, CS_BASE); break; case CSD_US: /* US "B" */ #if !defined(X3270_DBCS) /*[*/ if (ebc_ch & ~0xff) ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); else ctlr_add(cursor_addr, ebc_ch, CS_BASE); #else /*][*/ if (ebc_ch & ~0xff) { /* Add a DBCS character to the buffer. */ if (!dbcs) { /* Not currently using a DBCS character set. */ ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); break; } /* Get past the last column. */ if ((cursor_addr % COLS) == (COLS-1)) { if (!wraparound_mode) return DATA; ctlr_add(cursor_addr, EBC_space, CS_BASE); ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); cursor_addr = cursor_addr + 1; d = ctlr_dbcs_state(cursor_addr); } /* Add the left half. */ ctlr_add(cursor_addr, (ebc_ch >> 8) & 0xff, CS_DBCS); ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); /* Handle unaligned DBCS overwrite. */ if (d == DBCS_RIGHT || d == DBCS_RIGHT_WRAP) { int xaddr; xaddr = cursor_addr; DEC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ea_buf[xaddr].db = DBCS_NONE; } /* Add the right half. */ INC_BA(cursor_addr); ctlr_add(cursor_addr, ebc_ch & 0xff, CS_DBCS); ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); /* Handle cursor wrap. */ if (wraparound_mode) { if (!((cursor_addr + 1) % COLS)) { held_wrap = True; } else { PWRAP; } } else { if ((cursor_addr % COLS) != (COLS - 1)) cursor_move(cursor_addr + 1); } (void) ctlr_dbcs_postprocess(); return DATA; } /* Add an SBCS character to the buffer. */ ctlr_add(cursor_addr, ebc_ch, CS_BASE); #endif /*]*/ break; } #if defined(X3270_DBCS) /*[*/ /* Handle conflicts with existing DBCS characters. */ if (d == DBCS_RIGHT || d == DBCS_RIGHT_WRAP) { int xaddr; xaddr = cursor_addr; DEC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ea_buf[xaddr].db = DBCS_NONE; ea_buf[cursor_addr].db = DBCS_NONE; (void) ctlr_dbcs_postprocess(); } if (d == DBCS_LEFT || d == DBCS_LEFT_WRAP) { int xaddr; xaddr = cursor_addr; INC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ea_buf[xaddr].db = DBCS_NONE; ea_buf[cursor_addr].db = DBCS_NONE; (void) ctlr_dbcs_postprocess(); } #endif /*]*/ once_cset = -1; ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); if (wraparound_mode) { /* * There is a fascinating behavior of xterm which we will * attempt to emulate here. When a character is printed in the * last column, the cursor sticks there, rather than wrapping * to the next line. Another printing character will put the * cursor in column 2 of the next line. One cursor-left * sequence won't budge it; two will. Saving and restoring * the cursor won't move the cursor, but will cancel all of * the above behaviors... * * In my opinion, very strange, but among other things, 'vi' * depends on it! */ if (!((cursor_addr + 1) % COLS)) { held_wrap = True; } else { PWRAP; } } else { if ((cursor_addr % COLS) != (COLS - 1)) cursor_move(cursor_addr + 1); } return DATA; } static enum state ansi_multibyte(int ig1, int ig2) { unsigned long ucs4; int consumed; enum me_fail fail; afn_t fn; if (pmi >= MB_MAX - 2) { /* String too long. */ pmi = 0; ansi_ch = '?'; return ansi_printing(ig1, ig2); } pending_mbs[pmi++] = (char)ansi_ch; pending_mbs[pmi] = '\0'; ucs4 = multibyte_to_unicode(pending_mbs, pmi, &consumed, &fail); if (ucs4 != 0) { /* Success! */ ansi_ch = ucs4; return ansi_printing(ig1, ig2); } if (fail == ME_SHORT) { /* Go get more. */ return MBPEND; } /* Failure. */ /* Replace the sequence with '?'. */ ucs4 = ansi_ch; /* save for later */ pmi = 0; ansi_ch = '?'; (void) ansi_printing(ig1, ig2); /* * Reprocess whatever we choked on (especially if it's a control * character). */ ansi_ch = ucs4; state = DATA; fn = ansi_fn[st[(int)DATA][ansi_ch]]; return (*fn)(n[0], n[1]); } static enum state ansi_semicolon(int ig1 _is_unused, int ig2 _is_unused) { if (nx >= NN) return DATA; nx++; return state; } static enum state ansi_digit(int ig1 _is_unused, int ig2 _is_unused) { n[nx] = (n[nx] * 10) + (ansi_ch - '0'); return state; } static enum state ansi_reverse_index(int ig1 _is_unused, int ig2 _is_unused) { int rr = cursor_addr / COLS; /* current row */ int np = (scroll_top - 1) - rr; /* number of rows in the scrolling region, above this line */ int ns; /* number of rows to scroll */ int nn = 1; /* number of rows to index */ held_wrap = False; /* If the cursor is above the scrolling region, do a simple margined cursor up. */ if (np < 0) { (void) ansi_cursor_up(nn, 0); return DATA; } /* Split the number of lines to scroll into ns */ if (nn > np) { ns = nn - np; nn = np; } else ns = 0; /* Move the cursor up without scrolling */ if (nn) (void) ansi_cursor_up(nn, 0); /* Insert lines at the top for backward scroll */ if (ns) (void) ansi_insert_lines(ns, 0); return DATA; } static enum state ansi_send_attributes(int nn, int ig2 _is_unused) { if (!nn) net_sends("\033[?1;2c"); return DATA; } static enum state dec_return_terminal_id(int ig1 _is_unused, int ig2 _is_unused) { return ansi_send_attributes(0, 0); } static enum state ansi_set_mode(int nn, int ig2 _is_unused) { switch (nn) { case 4: insert_mode = 1; break; case 20: auto_newline_mode = 1; break; } return DATA; } static enum state ansi_reset_mode(int nn, int ig2 _is_unused) { switch (nn) { case 4: insert_mode = 0; break; case 20: auto_newline_mode = 0; break; } return DATA; } static enum state ansi_status_report(int nn, int ig2 _is_unused) { static char cpr[11]; switch (nn) { case 5: net_sends("\033[0n"); break; case 6: (void) sprintf(cpr, "\033[%d;%dR", (cursor_addr/COLS) + 1, (cursor_addr%COLS) + 1); net_sends(cpr); break; } return DATA; } static enum state ansi_cs_designate(int ig1 _is_unused, int ig2 _is_unused) { cs_to_change = strchr(gnnames, ansi_ch) - gnnames; return CSDES; } static enum state ansi_cs_designate2(int ig1 _is_unused, int ig2 _is_unused) { csd[cs_to_change] = strchr(csnames, ansi_ch) - csnames; return DATA; } static enum state ansi_select_g0(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G0; return DATA; } static enum state ansi_select_g1(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G1; return DATA; } static enum state ansi_select_g2(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G2; return DATA; } static enum state ansi_select_g3(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G3; return DATA; } static enum state ansi_one_g2(int ig1 _is_unused, int ig2 _is_unused) { once_cset = CS_G2; return DATA; } static enum state ansi_one_g3(int ig1 _is_unused, int ig2 _is_unused) { once_cset = CS_G3; return DATA; } static enum state ansi_esc3(int ig1 _is_unused, int ig2 _is_unused) { return DECP; } static enum state dec_set(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* application cursor keys */ appl_cursor = 1; break; case 2: /* set G0-G3 */ csd[0] = csd[1] = csd[2] = csd[3] = CSD_US; break; case 3: /* 132-column mode */ if (allow_wide_mode) { wide_mode = 1; screen_132(); } break; case 7: /* wraparound mode */ wraparound_mode = 1; break; case 40: /* allow 80/132 switching */ allow_wide_mode = 1; break; case 45: /* reverse-wraparound mode */ rev_wraparound_mode = 1; break; case 47: /* alt buffer */ case 1049: ctlr_altbuffer(True); break; } return DATA; } static enum state dec_reset(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* normal cursor keys */ appl_cursor = 0; break; case 3: /* 132-column mode */ if (allow_wide_mode) { wide_mode = 0; screen_80(); } break; case 7: /* no wraparound mode */ wraparound_mode = 0; break; case 40: /* allow 80/132 switching */ allow_wide_mode = 0; break; case 45: /* no reverse-wraparound mode */ rev_wraparound_mode = 0; break; case 47: /* alt buffer */ case 1049: ctlr_altbuffer(False); break; } return DATA; } static enum state dec_save(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* application cursor keys */ saved_appl_cursor = appl_cursor; break; case 3: /* 132-column mode */ saved_wide_mode = wide_mode; break; case 7: /* wraparound mode */ saved_wraparound_mode = wraparound_mode; break; case 40: /* allow 80/132 switching */ saved_allow_wide_mode = allow_wide_mode; break; case 45: /* reverse-wraparound mode */ saved_rev_wraparound_mode = rev_wraparound_mode; break; case 47: /* alt buffer */ case 1049: saved_altbuffer = is_altbuffer; break; } return DATA; } static enum state dec_restore(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* application cursor keys */ appl_cursor = saved_appl_cursor; break; case 3: /* 132-column mode */ if (allow_wide_mode) { wide_mode = saved_wide_mode; if (wide_mode) screen_132(); else screen_80(); } break; case 7: /* wraparound mode */ wraparound_mode = saved_wraparound_mode; break; case 40: /* allow 80/132 switching */ allow_wide_mode = saved_allow_wide_mode; break; case 45: /* reverse-wraparound mode */ rev_wraparound_mode = saved_rev_wraparound_mode; break; case 47: /* alt buffer */ case 1049: /* alt buffer */ ctlr_altbuffer(saved_altbuffer); break; } return DATA; } static enum state dec_scrolling_region(int top, int bottom) { if (top < 1) top = 1; if (bottom > ROWS) bottom = ROWS; if (top <= bottom && (top > 1 || bottom < ROWS)) { scroll_top = top; scroll_bottom = bottom; cursor_move(0); } else { scroll_top = 1; scroll_bottom = ROWS; } return DATA; } static enum state xterm_text_mode(int ig1 _is_unused, int ig2 _is_unused) { nx = 0; n[0] = 0; return TEXT; } static enum state xterm_text_semicolon(int ig1 _is_unused, int ig2 _is_unused) { tx = 0; return TEXT2; } static enum state xterm_text(int ig1 _is_unused, int ig2 _is_unused) { if (tx < NT) text[tx++] = ansi_ch; return state; } static enum state xterm_text_do(int ig1 _is_unused, int ig2 _is_unused) { #if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ text[tx] = '\0'; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ switch (n[0]) { case 0: /* icon name and window title */ XtVaSetValues(toplevel, XtNiconName, text, NULL); XtVaSetValues(toplevel, XtNtitle, text, NULL); break; case 1: /* icon name */ XtVaSetValues(toplevel, XtNiconName, text, NULL); break; case 2: /* window_title */ XtVaSetValues(toplevel, XtNtitle, text, NULL); break; case 50: /* font */ screen_newfont(text, False, False); break; default: break; } #endif /*]*/ #if defined(WC3270) /*[*/ switch (n[0]) { case 0: /* icon name and window title */ case 2: /* window_title */ screen_title(text); break; default: break; } #endif /*]*/ return DATA; } static enum state ansi_htab_set(int ig1 _is_unused, int ig2 _is_unused) { register int col = cursor_addr % COLS; tabs[col/8] |= 1<<(col%8); return DATA; } static enum state ansi_htab_clear(int nn, int ig2 _is_unused) { register int col, i; switch (nn) { case 0: col = cursor_addr % COLS; tabs[col/8] &= ~(1<<(col%8)); break; case 3: for (i = 0; i < (COLS+7)/8; i++) tabs[i] = 0; break; } return DATA; } /* * Scroll the screen or the scrolling region. */ static void ansi_scroll(void) { held_wrap = False; /* Save the top line */ if (scroll_top == 1 && scroll_bottom == ROWS) { if (!is_altbuffer) scroll_save(1, False); ctlr_scroll(); return; } /* Scroll all but the last line up */ if (scroll_bottom > scroll_top) ctlr_bcopy(scroll_top * COLS, (scroll_top - 1) * COLS, (scroll_bottom - scroll_top) * COLS, 1); /* Clear the last line */ ctlr_aclear((scroll_bottom - 1) * COLS, COLS, 1); } /* Callback for when we enter ANSI mode. */ static void ansi_in3270(Boolean in3270) { if (!in3270) (void) ansi_reset(0, 0); } /* * External entry points */ void ansi_init(void) { register_schange(ST_3270_MODE, ansi_in3270); } void ansi_process(unsigned int c) { afn_t fn; c &= 0xff; ansi_ch = c; scroll_to_bottom(); #if defined(X3270_TRACE) /*[*/ if (toggled(SCREEN_TRACE)) trace_char((char)c); #endif /*]*/ fn = ansi_fn[st[(int)state][c]]; state = (*fn)(n[0], n[1]); /* Saving pending escape data. */ if (state == DATA) pe = 0; else if (pe < PE_MAX) ped[pe++] = c; } void ansi_send_up(void) { if (appl_cursor) net_sends("\033OA"); else net_sends("\033[A"); } void ansi_send_down(void) { if (appl_cursor) net_sends("\033OB"); else net_sends("\033[B"); } void ansi_send_right(void) { if (appl_cursor) net_sends("\033OC"); else net_sends("\033[C"); } void ansi_send_left(void) { if (appl_cursor) net_sends("\033OD"); else net_sends("\033[D"); } void ansi_send_home(void) { net_sends("\033[H"); } void ansi_send_clear(void) { net_sends("\033[2K"); } void ansi_send_pf(int nn) { static char fn_buf[6]; static int code[] = { /* * F1 through F12 are VT220 codes. (Note the discontinuity -- * \E[16~ is missing) */ 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 23, 24, /* * F13 through F20 are defined for xterm. */ 25, 26, 28, 29, 31, 32, 33, 34, /* * F21 through F24 are x3270 extensions. */ 35, 36, 37, 38 }; if (nn < 1 || (unsigned)nn > sizeof(code)/sizeof(code[0])) return; (void) sprintf(fn_buf, "\033[%d~", code[nn-1]); net_sends(fn_buf); } void ansi_send_pa(int nn) { static char fn_buf[4]; static char code[4] = { 'P', 'Q', 'R', 'S' }; if (nn < 1 || nn > 4) return; (void) sprintf(fn_buf, "\033O%c", code[nn-1]); net_sends(fn_buf); } void toggle_lineWrap(struct toggle *t _is_unused, enum toggle_type type _is_unused) { if (toggled(LINE_WRAP)) wraparound_mode = 1; else wraparound_mode = 0; } #if defined(X3270_TRACE) /*[*/ /* Emit an SGR command. */ static void emit_sgr(int mode) { space3270out((mode < 10)? 4: 5); *obptr++ = 0x1b; *obptr++ = '['; if (mode > 9) *obptr++ = '0' + (mode / 10); *obptr++ = '0' + (mode % 10); *obptr++ = 'm'; } /* Emit a DEC Private Mode command. */ static void emit_decpriv(int mode, char op) { space3270out((mode < 10)? 5: 6); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '?'; if (mode > 9) *obptr++ = '0' + (mode / 10); *obptr++ = '0' + (mode % 10); *obptr++ = op; } /* Emit a CUP (cursor position) command. */ static void emit_cup(int baddr) { if (baddr) { char cup_buf[11]; int sl; sl = sprintf(cup_buf, "\033[%d;%dH", (baddr / COLS) + 1, (baddr % COLS) + 1); space3270out(sl); strcpy((char *)obptr, cup_buf); obptr += sl; } else { space3270out(3); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = 'H'; } } /* Emit spaces or a CUP, whichever is shorter. */ static int ansi_dump_spaces(int spaces, int baddr) { if (spaces) { char cup_buf[11]; int sl; /* * Move the cursor, if it takes less space than * expanding the spaces. * It is possible to optimize this further with clever * CU[UDFB] sequences, but not (yet) worth the effort. */ sl = sprintf(cup_buf, "\033[%d;%dH", (baddr / COLS) + 1, (baddr % COLS) + 1); if (sl < spaces) { space3270out(sl); strcpy((char *)obptr, cup_buf); obptr += sl; } else { space3270out(spaces); while (spaces--) *obptr++ = ' '; } } return 0; } /* * Snap the provided screen buffer (primary or alternate). * This is (mostly) optimized to draw the minimum necessary, assuming a * blank screen. */ static void ansi_snap_one(struct ea *buf) { int baddr; int cur_gr = 0; int cur_fg = 0; int cur_bg = 0; int spaces = 0; static int uncolor_table[16] = { /* 0xf0 */ 0, /* 0xf1 */ 4, /* 0xf2 */ 1, /* 0xf3 */ 5, /* 0xf4 */ 2, /* 0xf5 */ 0, /* can't happen */ #if defined(WC3270) /*[*/ /* 0xf6 */ 6, #else /*][*/ /* 0xf6 */ 3, #endif /*]*/ #if defined(WC3270) /*[*/ /* 0xf7 */ 7, #else /*][*/ /* 0xf7 */ 0, /* can't happen */ #endif /*]*/ /* 0xf8 */ 0, /* can't happen */ /* 0xf9 */ 0, /* can't happen */ /* 0xfa */ 0, /* can't happen */ /* 0xfb */ 0, /* can't happen */ /* 0xfc */ 0, /* can't happen */ #if defined(WC3270) /*[*/ /* 0xfd */ 0, /* can't happen */ #else /*][*/ /* 0xfd */ 6, /* can't happen */ #endif /*]*/ /* 0xfe */ 0, /* can't happen */ #if defined(WC3270) /*[*/ /* 0xff */ 0, /* can't happen */ #else /*][*/ /* 0xff */ 7, /* can't happen */ #endif /*]*/ }; char mb[16]; int len; int xlen; int i; enum dbcs_state d; int c; int last_sgr = 0; #define EMIT_SGR(n) { emit_sgr(n); last_sgr = (n); } /* Draw what's on the screen. */ baddr = 0; do { int xgr = buf[baddr].gr; /* Set the attributes. */ if (xgr != cur_gr) { spaces = ansi_dump_spaces(spaces, baddr); if ((xgr ^ cur_gr) & cur_gr) { /* * Something turned off. Turn everything off, * then turn the remaining modes on below. */ EMIT_SGR(0); xgr = 0; } else { /* * Clear the bits in xgr that are already set * in cur_gr. Turn on the new modes. */ xgr &= ~cur_gr; } /* Turn on the attributes remaining in xgr. */ if (xgr & GR_INTENSIFY) EMIT_SGR(1); if (xgr & GR_UNDERLINE) EMIT_SGR(4); if (xgr & GR_BLINK) EMIT_SGR(5); if (xgr & GR_REVERSE) EMIT_SGR(7); cur_gr = buf[baddr].gr; } /* Set the colors. */ if (buf[baddr].fg != cur_fg) { spaces = ansi_dump_spaces(spaces, baddr); if (buf[baddr].fg) c = uncolor_table[buf[baddr].fg & 0x0f]; else c = 9; EMIT_SGR(30 + c); cur_fg = buf[baddr].fg; } if (buf[baddr].bg != cur_bg) { spaces = ansi_dump_spaces(spaces, baddr); if (buf[baddr].bg) c = uncolor_table[buf[baddr].bg & 0x0f]; else c = 9; EMIT_SGR(40 + c); cur_bg = buf[baddr].bg; } /* Expand the current character to multibyte. */ d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) { int xaddr = baddr; INC_BA(xaddr); len = ebcdic_to_multibyte(buf[baddr].cc << 8 | buf[xaddr].cc, mb, sizeof(mb)); } else if (IS_RIGHT(d)) { len = 0; } else { len = ebcdic_to_multibyte(buf[baddr].cc, mb, sizeof(mb)); } if (len > 0) len--; /* terminating NUL */ xlen = 0; for (i = 0; i < len; i++) { if ((mb[i] & 0xff) == 0xff) xlen++; } /* Optimize for white space. */ if (!cur_fg && !cur_bg && !cur_gr && ((len + xlen) == 1) && (mb[0] == ' ')) { spaces++; } else { if (spaces) spaces = ansi_dump_spaces(spaces, baddr); /* Emit the current character. */ space3270out(len + xlen); for (i = 0; i < len; i++) { if ((mb[i] & 0xff) == 0xff) *obptr++ = 0xff; *obptr++ = mb[i]; } } INC_BA(baddr); } while (baddr != 0); /* Remove any attributes we set above. */ if (last_sgr != 0) emit_sgr(0); } /* Snap the contents of the screen buffers in NVT mode. */ void ansi_snap(void) { /* * Note that ea_buf is the live buffer, and aea_buf is the other * buffer. So the task here is to draw the other buffer first, * then switch modes and draw the live one. */ if (is_altbuffer) { /* Draw the primary screen first. */ ansi_snap_one(aea_buf); emit_cup(0); /* Switch to the alternate. */ emit_decpriv(47, 'h'); /* Draw the secondary, and stay in alternate mode. */ ansi_snap_one(ea_buf); } else { int i; int any = 0; static struct ea zea = { 0, 0, 0, 0, 0, 0, 0, 0 }; /* See if aea_buf has anything in it. */ for (i = 0; i < ROWS * COLS; i++) { if (memcmp(&aea_buf[i], &zea, sizeof(struct ea))) { any = 1; break; } } if (any) { /* Switch to the alternate. */ emit_decpriv(47, 'h'); /* Draw the alternate screen. */ ansi_snap_one(aea_buf); emit_cup(0); /* Switch to the primary. */ emit_decpriv(47, 'l'); } /* Draw the primary, and stay in primary mode. */ ansi_snap_one(ea_buf); } } /* * Snap the non-default terminal modes. * This is a subtle piece of logic, and may harbor a few bugs yet. */ void ansi_snap_modes(void) { int i; static char csdsel[4] = "()*+"; /* Set up the saved cursor (cursor, fg, bg, gr, cset, csd). */ if (saved_cursor != 0 || saved_fg != 0 || saved_bg != 0 || saved_gr != 0 || saved_cset != CS_G0 || saved_csd[0] != CSD_US || saved_csd[1] != CSD_US || saved_csd[2] != CSD_US || saved_csd[3] != CSD_US) { if (saved_cursor != 0) emit_cup(saved_cursor); if (saved_fg != 0) emit_sgr(30 + saved_fg); if (saved_bg != 0) emit_sgr(40 + saved_bg); if (saved_gr != 0) { if (saved_gr & GR_INTENSIFY) emit_sgr(1); if (saved_gr & GR_UNDERLINE) emit_sgr(4); if (saved_gr & GR_BLINK) emit_sgr(5); if (saved_gr & GR_REVERSE) emit_sgr(7); } if (saved_cset != CS_G0) { switch (saved_cset) { case CS_G1: space3270out(1); *obptr++ = 0x0e; break; case CS_G2: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'N'; break; case CS_G3: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'O'; break; default: break; } } for (i = 0; i < 4; i++) { if (saved_csd[i] != CSD_US) { space3270out(3); *obptr++ = 0x1b; *obptr++ = csdsel[i]; *obptr++ = gnnames[saved_csd[i]]; } } /* Emit a SAVE CURSOR to stash these away. */ space3270out(2); *obptr++ = 0x1b; *obptr++ = '7'; } /* Now set the above to their current values, except for the cursor. */ if (fg != saved_fg) emit_sgr(30 + fg); if (bg != saved_bg) emit_sgr(40 + bg); if (gr != saved_gr) { emit_sgr(0); if (gr & GR_INTENSIFY) emit_sgr(1); if (gr & GR_UNDERLINE) emit_sgr(4); if (gr & GR_BLINK) emit_sgr(5); if (gr & GR_REVERSE) emit_sgr(7); } if (cset != saved_cset) { switch (cset) { case CS_G0: space3270out(1); *obptr++ = 0x0f; break; case CS_G1: space3270out(1); *obptr++ = 0x0e; break; case CS_G2: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'n'; break; case CS_G3: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'o'; break; default: break; } } for (i = 0; i < 4; i++) { if (csd[i] != saved_csd[i]) { space3270out(3); *obptr++ = 0x1b; *obptr++ = csdsel[i]; *obptr++ = gnnames[csd[i]]; } } /* * Handle appl_cursor, wrapaparound_mode, rev_wraparound_mode, * allow_wide_mode, wide_mode and altbuffer, both the saved values and * the current ones. */ if (saved_appl_cursor) { emit_decpriv(1, 'h'); /* set */ emit_decpriv(1, 's'); /* save */ if (!appl_cursor) emit_decpriv(1, 'l'); /* reset */ } else if (appl_cursor) { emit_decpriv(1, 'h'); /* set */ } if (saved_wide_mode) { emit_decpriv(3, 'h'); /* set */ emit_decpriv(3, 's'); /* save */ if (!wide_mode) emit_decpriv(3, 'l'); /* reset */ } else if (wide_mode) { emit_decpriv(3, 'h'); /* set */ } if (saved_wraparound_mode == 0) { emit_decpriv(7, 'h'); /* set (no-wraparound mode) */ emit_decpriv(7, 's'); /* save */ if (wraparound_mode) emit_decpriv(7, 'l'); /* reset */ } else if (!wraparound_mode) { emit_decpriv(7, 'h'); /* set (no-wraparound mode) */ } if (saved_allow_wide_mode) { emit_decpriv(40, 'h'); /* set */ emit_decpriv(40, 's'); /* save */ if (!allow_wide_mode) emit_decpriv(40, 'l'); /* reset */ } else if (allow_wide_mode) { emit_decpriv(40, 'h'); /* set */ } if (saved_rev_wraparound_mode) { emit_decpriv(45, 'h'); /* set (rev--wraparound mode) */ emit_decpriv(45, 's'); /* save */ if (!rev_wraparound_mode) emit_decpriv(45, 'l'); /* reset */ } else if (rev_wraparound_mode) { emit_decpriv(45, 'h'); /* set (rev-wraparound mode) */ } if (saved_altbuffer) { emit_decpriv(47, 'h'); /* set */ emit_decpriv(47, 's'); /* save */ if (!is_altbuffer) emit_decpriv(47, 'l'); /* reset */ } /* else not necessary to set it now -- it was already set when the screen was drawn */ /* * Now take care of auto_newline, insert mode, the scroll region * and tabs. */ if (auto_newline_mode) { space3270out(4); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '4'; *obptr++ = 'h'; } if (insert_mode) { space3270out(5); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '2'; *obptr++ = '0'; *obptr++ = 'h'; } if (scroll_top != 1 || scroll_bottom != ROWS) { space3270out(10); obptr += sprintf((char *)obptr, "\033[%d;%dr", scroll_top, scroll_bottom); } if (tabs) { unsigned char *deftabs; deftabs = (unsigned char *)Malloc((COLS+7)/8); for (i = 0; i < (COLS+7)/8; i++) deftabs[i] = 0x01; for (i = 0; i < COLS; i++) { if (tabs[i/8] & 1<<(i%8)) { if (!(deftabs[i/8] & 1<<(i%8))) { /* Tab was cleared. */ space3270out(15); obptr += sprintf((char *)obptr, "\033[%d;%dH", (cursor_addr / COLS) + 1, ((cursor_addr + i) % COLS) + 1); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '0'; *obptr++ = 'g'; } } else { if (deftabs[i/8] & 1<<(i%8)) { /* Tab was set. */ space3270out(13); obptr += sprintf((char *)obptr, "\033[%d;%dH", (cursor_addr / COLS) + 1, ((cursor_addr + i) % COLS) + 1); *obptr++ = 0x1b; *obptr++ = 'H'; } } } } /* * We're done moving the cursor for other purposes (saving it, * messing with tabs). Put it where it should be now. */ emit_cup(cursor_addr); /* Now add any pending single-character CS change. */ switch (once_cset) { case CS_G2: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'N'; break; case CS_G3: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'O'; break; default: break; } /* Now add any incomplete escape sequence. */ if (pe) { int xlen = 0; for (i = 0; i < pe; i++) if (ped[i] == 0xff) xlen++; space3270out(pe + xlen); for (i = 0; i < pe; i++) { if (ped[i] == 0xff) *obptr++ = 0xff; *obptr++ = ped[i]; } } /* Last, emit any incomplete multi-byte data. */ if (pmi) { space3270out(pmi); for (i = 0; i < pmi; i++) { *obptr++ = pending_mbs[i]; } } } #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/proxy.c0000644000175000017500000005361611254565704015454 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxy.c * This module implements various kinds of proxies. */ #include "globals.h" #if !defined(PR3287) /*[*/ #include "appres.h" #include "resources.h" #endif /*]*/ #if defined(_WIN32) /*[*/ #include #include #else /*][*/ #include #include #include #include #include #if defined(HAVE_SYS_SELECT_H) /*[*/ #include /* fd_set declaration */ #endif /*]*/ #endif /*]*/ #include "3270ds.h" #include "popupsc.h" #include "proxy.h" #include "proxyc.h" #include "resolverc.h" #include "telnetc.h" #include "trace_dsc.h" #include "w3miscc.h" #if defined(PR3287) /*[*/ extern char *proxy_spec; #endif /*]*/ #if defined(_WIN32) /*[*/ typedef unsigned long in_addr_t; #endif /*]*/ /* * Supported proxy types. * * At some point we will add SOCKS. */ enum { PT_NONE, PT_PASSTHRU, /* Sun telnet-passthru */ PT_HTTP, /* RFC 2817 CONNECT tunnel */ PT_TELNET, /* 'connect host port' proxy */ PT_SOCKS4, /* SOCKS version 4 (or 4A if necessary) */ PT_SOCKS4A, /* SOCKS version 4A (force remote name resolution) */ PT_SOCKS5, /* SOCKS version 5 (RFC 1928) */ PT_SOCKS5D, /* SOCKS version 5 (force remote name resolution) */ PT_MAX } proxytype_t; /* proxy type names -- keep these in sync with proxytype_t! */ char *type_name[] = { "unknown", "passthru", "HTTP", "TELNET", "SOCKS4", "SOCKS4A", "SOCKS5", "SOCKS5D" }; static int parse_host_port(char *s, char **phost, char **pport); static int proxy_passthru(int fd, char *host, unsigned short port); static int proxy_http(int fd, char *host, unsigned short port); static int proxy_telnet(int fd, char *host, unsigned short port); static int proxy_socks4(int fd, char *host, unsigned short port, int force_a); static int proxy_socks5(int fd, char *host, unsigned short port, int force_d); char * proxy_type_name(int type) { if (type < 1 || type >= PT_MAX) return "unknown"; else return type_name[type]; } /* * Resolve the type, hostname and port for a proxy. * Returns -1 for failure, 0 for no proxy, >0 (the proxy type) for success. */ int proxy_setup(char **phost, char **pport) { char *proxy; char *colon; int sl; #if defined(PR3287) /*[*/ proxy = proxy_spec; #else /*][*/ proxy = appres.proxy; #endif /*]*/ if (proxy == CN) return PT_NONE; if ((colon = strchr(proxy, ':')) == CN || (colon == proxy)) { popup_an_error("Invalid proxy syntax"); return -1; } sl = colon - proxy; if (sl == strlen(PROXY_PASSTHRU) && !strncasecmp(proxy, PROXY_PASSTHRU, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_PASSTHRU); return PT_PASSTHRU; } if (sl == strlen(PROXY_HTTP) && !strncasecmp(proxy, PROXY_HTTP, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_HTTP); return PT_HTTP; } if (sl == strlen(PROXY_TELNET) && !strncasecmp(proxy, PROXY_TELNET, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) { popup_an_error("Must specify port for telnet proxy"); return -1; } return PT_TELNET; } if (sl == strlen(PROXY_SOCKS4) && !strncasecmp(proxy, PROXY_SOCKS4, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS4); return PT_SOCKS4; } if (sl == strlen(PROXY_SOCKS4A) && !strncasecmp(proxy, PROXY_SOCKS4A, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS4A); return PT_SOCKS4A; } if (sl == strlen(PROXY_SOCKS5) && !strncasecmp(proxy, PROXY_SOCKS5, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS5); return PT_SOCKS5; } if (sl == strlen(PROXY_SOCKS5D) && !strncasecmp(proxy, PROXY_SOCKS5D, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS5D); return PT_SOCKS5D; } popup_an_error("Invalid proxy type '%.*s'", sl, proxy); return -1; } /* * Parse host[:port] from a string. * 'host' can be in square brackets to allow numeric IPv6 addresses. * Returns the host name and port name in heap memory. * Returns -1 for failure, 0 for success. */ static int parse_host_port(char *s, char **phost, char **pport) { char *colon; char *hstart; int hlen; if (*s == '[') { char *rbrack; /* Hostname in square brackets. */ hstart = s + 1; rbrack = strchr(s, ']'); if (rbrack == CN || rbrack == s + 1 || (*(rbrack + 1) != '\0' && *(rbrack + 1) != ':')) { popup_an_error("Invalid proxy hostname syntax"); return -1; } if (*(rbrack + 1) == ':') colon = rbrack + 1; else colon = NULL; hlen = rbrack - (s + 1); } else { hstart = s; colon = strchr(s, ':'); if (colon == s) { popup_an_error("Invalid proxy hostname syntax"); return -1; } if (colon == NULL) hlen = strlen(s); else hlen = colon - s; } /* Parse the port. */ if (colon == CN || !*(colon + 1)) *pport = CN; else *pport = NewString(colon + 1); /* Copy out the hostname. */ *phost = Malloc(hlen + 1); strncpy(*phost, hstart, hlen); (*phost)[hlen] = '\0'; return 0; } /* * Negotiate with the proxy server. * Returns -1 for failure, 0 for success. */ int proxy_negotiate(int type, int fd, char *host, unsigned short port) { switch (type) { case PT_NONE: return 0; case PT_PASSTHRU: return proxy_passthru(fd, host, port); case PT_HTTP: return proxy_http(fd, host, port); case PT_TELNET: return proxy_telnet(fd, host, port); case PT_SOCKS4: return proxy_socks4(fd, host, port, 0); case PT_SOCKS4A: return proxy_socks4(fd, host, port, 1); case PT_SOCKS5: return proxy_socks5(fd, host, port, 0); case PT_SOCKS5D: return proxy_socks5(fd, host, port, 1); default: return -1; } } /* Sun PASSTHRU proxy. */ static int proxy_passthru(int fd, char *host, unsigned short port) { char *buf; buf = Malloc(strlen(host) + 32); (void) sprintf(buf, "%s %u\r\n", host, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("Passthru Proxy: xmit '%.*s'", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("Passthru Proxy: send error"); Free(buf); return -1; } Free(buf); return 0; } /* HTTP (RFC 2817 CONNECT tunnel) proxy. */ static int proxy_http(int fd, char *host, unsigned short port) { char *buf; char *colon; char rbuf[1024]; int nr; int nread = 0; char *space; /* Send the CONNECT request. */ buf = Malloc(64 + strlen(host)); colon = strchr(host, ':'); sprintf(buf, "CONNECT %s%s%s:%u HTTP/1.1\r\n", (colon? "[": ""), host, (colon? "]": ""), port); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } sprintf(buf, "Host: %s%s%s:%u\r\n", (colon? "[": ""), host, (colon? "]": ""), port); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } strcpy(buf, "\r\n"); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit ''\n"); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } Free(buf); /* * Process the reply. * Read a byte at a time until \n or EOF. */ for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("HTTP Proxy: server timeout"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ return -1; } nr = recv(fd, &rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("HTTP Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ return -1; } if (nr == 0) { #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ popup_an_error("HTTP Proxy: unexpected EOF"); return -1; } if (rbuf[nread] == '\r') continue; if (rbuf[nread] == '\n') break; if ((size_t)++nread >= sizeof(rbuf)) { nread = sizeof(rbuf) - 1; break; } } rbuf[nread] = '\0'; #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)rbuf, nread); trace_dsn("HTTP Proxy: recv '%s'\n", rbuf); #endif /*]*/ if (strncmp(rbuf, "HTTP/", 5) || (space = strchr(rbuf, ' ')) == CN) { popup_an_error("HTTP Proxy: unrecognized reply"); return -1; } if (*(space + 1) != '2') { popup_an_error("HTTP Proxy: CONNECT failed:\n%s", rbuf); return -1; } return 0; } /* TELNET proxy. */ static int proxy_telnet(int fd, char *host, unsigned short port) { char *buf; buf = Malloc(strlen(host) + 32); (void) sprintf(buf, "connect %s %u\r\n", host, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("TELNET Proxy: xmit '%.*s'", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("TELNET Proxy: send error"); Free(buf); return -1; } Free(buf); return 0; } /* SOCKS version 4 proxy. */ static int proxy_socks4(int fd, char *host, unsigned short port, int force_a) { struct hostent *hp; struct in_addr ipaddr; int use_4a = 0; char *user; char *buf; char *s; char rbuf[8]; int nr; int nread = 0; unsigned short rport; /* Resolve the hostname to an IPv4 address. */ if (force_a) use_4a = 1; else { hp = gethostbyname(host); if (hp != NULL) { memcpy(&ipaddr, hp->h_addr, hp->h_length); } else { ipaddr.s_addr = inet_addr(host); if (ipaddr.s_addr == (in_addr_t)-1) use_4a = 1; } } /* Resolve the username. */ user = getenv("USER"); if (user == CN) user = "nobody"; /* Send the request to the server. */ if (use_4a) { buf = Malloc(32 + strlen(user) + strlen(host)); s = buf; *s++ = 0x04; *s++ = 0x01; SET16(s, port); SET32(s, 0x00000001); strcpy(s, user); s += strlen(user) + 1; strcpy(s, host); s += strlen(host) + 1; #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS4 Proxy: version 4 connect port %u " "address 0.0.0.1 user '%s' host '%s'\n", port, user, host); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { popup_a_sockerr("SOCKS4 Proxy: send error"); Free(buf); return -1; } Free(buf); } else { unsigned long u; buf = Malloc(32 + strlen(user)); s = buf; *s++ = 0x04; *s++ = 0x01; SET16(s, port); u = ntohl(ipaddr.s_addr); SET32(s, u); strcpy(s, user); s += strlen(user) + 1; #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS4 Proxy: xmit version 4 connect port %u " "address %s user '%s'\n", port, inet_ntoa(ipaddr), user); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { Free(buf); popup_a_sockerr("SOCKS4 Proxy: send error"); return -1; } Free(buf); } /* * Process the reply. * Read 8 bytes of response. */ for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS4 Proxy: server timeout"); return -1; } nr = recv(fd, &rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS4 Proxy: receive error"); return -1; } if (nr == 0) break; if ((size_t)++nread >= sizeof(rbuf)) break; } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)rbuf, nread); if (use_4a) { struct in_addr a; rport = (rbuf[2] << 8) | rbuf[3]; memcpy(&a, &rbuf[4], 4); trace_dsn("SOCKS4 Proxy: recv status 0x%02x port %u " "address %s\n", rbuf[1], rport, inet_ntoa(a)); } else trace_dsn("SOCKS4 Proxy: recv status 0x%02x\n", rbuf[1]); #endif /*]*/ switch (rbuf[1]) { case 0x5a: break; case 0x5b: popup_an_error("SOCKS4 Proxy: request rejected or failed"); return -1; case 0x5c: popup_an_error("SOCKS4 Proxy: client is not reachable"); return -1; case 0x5d: popup_an_error("SOCKS4 Proxy: userid error"); return -1; default: popup_an_error("SOCKS4 Proxy: unknown status 0x%02x", rbuf[1]); return -1; } return 0; } /* SOCKS version 5 (RFC 1928) proxy. */ static int proxy_socks5(int fd, char *host, unsigned short port, int force_d) { union { struct sockaddr sa; struct sockaddr_in sin; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sin6; #endif /*]*/ } ha; socklen_t ha_len = 0; int use_name = 0; char *buf; char *s; unsigned char rbuf[8]; int nr; int nread = 0; int n2read = 0; char nbuf[256]; int done = 0; #if defined(X3270_TRACE) /*[*/ char *atype_name[] = { "", "IPv4", "", "domainname", "IPv6" }; unsigned char *portp; unsigned short rport; #endif /*]*/ if (force_d) use_name = 1; else { char errmsg[1024]; int rv; /* Resolve the hostname. */ rv = resolve_host_and_port(host, CN, 0, &rport, &ha.sa, &ha_len, errmsg, sizeof(errmsg), NULL); if (rv == -2) use_name = 1; else if (rv < 0) { popup_an_error("SOCKS5 proxy: %s/%u: %s", host, port, errmsg); return -1; } } /* Send the authentication request to the server. */ strcpy((char *)rbuf, "\005\001\000"); #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: xmit version 5 nmethods 1 (no auth)\n"); trace_netdata('>', rbuf, 3); #endif /*]*/ if (send(fd, (char *)rbuf, 3, 0) < 0) { popup_a_sockerr("SOCKS5 Proxy: send error"); return -1; } /* * Wait for the server reply. * Read 2 bytes of response. */ nread = 0; for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS5 Proxy: server timeout"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } nr = recv(fd, (char *)&rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS5 Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } if (nr == 0) { popup_a_sockerr("SOCKS5 Proxy: unexpected EOF"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } if (++nread >= 2) break; } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', rbuf, nread); #endif /*]*/ if (rbuf[0] != 0x05 || (rbuf[1] != 0 && rbuf[1] != 0xff)) { popup_an_error("SOCKS5 Proxy: bad authentication response"); return -1; } #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: recv version %d method %d\n", rbuf[0], rbuf[1]); #endif /*]*/ if (rbuf[1] == 0xff) { popup_an_error("SOCKS5 Proxy: authentication failure"); return -1; } /* Send the request to the server. */ buf = Malloc(32 + strlen(host)); s = buf; *s++ = 0x05; /* protocol version 5 */ *s++ = 0x01; /* CONNECT */ *s++ = 0x00; /* reserved */ if (use_name) { *s++ = 0x03; /* domain name */ *s++ = strlen(host); strcpy(s, host); s += strlen(host); } else if (ha.sa.sa_family == AF_INET) { *s++ = 0x01; /* IPv4 */ memcpy(s, &ha.sin.sin_addr, 4); s += 4; strcpy(nbuf, inet_ntoa(ha.sin.sin_addr)); #if defined(AF_INET6) /*[*/ } else { *s++ = 0x04; /* IPv6 */ memcpy(s, &ha.sin6.sin6_addr, sizeof(struct in6_addr)); s += sizeof(struct in6_addr); (void) inet_ntop(AF_INET6, &ha.sin6.sin6_addr, nbuf, sizeof(nbuf)); #endif /*]*/ } SET16(s, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: xmit version 5 connect %s %s port %u\n", use_name? "domainname": ((ha.sa.sa_family == AF_INET)? "IPv4": "IPv6"), use_name? host: nbuf, port); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { popup_a_sockerr("SOCKS5 Proxy: send error"); Free(buf); return -1; } Free(buf); /* * Process the reply. * Only the first two bytes of the response are interesting; * skip the rest. */ nread = 0; done = 0; buf = NULL; while (!done) { fd_set rfds; struct timeval tv; unsigned char r; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS5 Proxy: server timeout"); return -1; } nr = recv(fd, (char *)&r, 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS5 Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } if (nr == 0) { popup_an_error("SOCKS5 Proxy: unexpected EOF"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } buf = Realloc(buf, nread + 1); buf[nread] = r; switch (nread++) { case 0: if (r != 0x05) { popup_an_error("SOCKS5 Proxy: incorrect " "reply version 0x%02x", r); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } break; case 1: #if defined(X3270_TRACE) /*[*/ if (r != 0x00) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ switch (r) { case 0x00: break; case 0x01: popup_an_error("SOCKS5 Proxy: server failure"); return -1; case 0x02: popup_an_error("SOCKS5 Proxy: connection not " "allowed"); return -1; case 0x03: popup_an_error("SOCKS5 Proxy: network " "unreachable"); return -1; case 0x04: popup_an_error("SOCKS5 Proxy: host " "unreachable"); return -1; case 0x05: popup_an_error("SOCKS5 Proxy: connection " "refused"); return -1; case 0x06: popup_an_error("SOCKS5 Proxy: ttl expired"); return -1; case 0x07: popup_an_error("SOCKS5 Proxy: command not " "supported"); return -1; case 0x08: popup_an_error("SOCKS5 Proxy: address type " "not supported"); return -1; default: popup_an_error("SOCKS5 Proxy: unknown server " "error 0x%02x", r); return -1; } break; case 2: break; case 3: switch (r) { case 0x01: n2read = 6; break; case 0x03: n2read = -1; break; #if defined(AF_INET6) /*[*/ case 0x04: n2read = sizeof(struct in6_addr) + 2; break; #endif /*]*/ default: popup_an_error("SOCKS5 Proxy: unknown server " "address type 0x%02x", r); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } break; default: if (n2read == -1) n2read = r + 2; else if (!--n2read) done = 1; break; } } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)buf, nread); switch (buf[3]) { case 0x01: /* IPv4 */ memcpy(&ha.sin.sin_addr, &buf[4], 4); strcpy(nbuf, inet_ntoa(ha.sin.sin_addr)); portp = (unsigned char *)&buf[4 + 4]; break; case 0x03: /* domainname */ strncpy(nbuf, &buf[5], buf[4]); nbuf[(unsigned char)buf[4]] = '\0'; portp = (unsigned char *)&buf[5 + (unsigned char)buf[4]]; break; #if defined(AF_INET6) /*[*/ case 0x04: /* IPv6 */ memcpy(&ha.sin6.sin6_addr, &buf[4], sizeof(struct in6_addr)); (void) inet_ntop(AF_INET6, &ha.sin6.sin6_addr, nbuf, sizeof(nbuf)); portp = (unsigned char *)&buf[4 + sizeof(struct in6_addr)]; break; #endif /*]*/ default: /* can't happen */ nbuf[0] = '\0'; portp = (unsigned char *)buf; break; } rport = (*portp << 8) + *(portp + 1); trace_dsn("SOCKS5 Proxy: recv version %d status 0x%02x address %s %s " "port %u\n", buf[0], buf[1], atype_name[(unsigned char)buf[3]], nbuf, rport); #endif /*]*/ Free(buf); return 0; } ibm-3270-3.3.10ga4/wc3270/wizard.c0000644000175000017500000014613211254565671015572 0ustar bastianbastian/* * Copyright (c) 2006-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * wizard.c * A Windows console-based 3270 Terminal Emulator * Session creation wizard */ #include "globals.h" #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "ctlr.h" #include "actionsc.h" #include "ctlrc.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "proxy.h" #include "resources.h" #include "screenc.h" #include "tablesc.h" #include "trace_dsc.h" #include "utilc.h" #include "xioc.h" #include #include #include #include #include "shlobj_missing.h" #include "winversc.h" #include "shortcutc.h" #include "windirsc.h" #include "relinkc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #define LEGAL_CNAME "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \ "abcedfghijklmnopqrstuvwxyz" \ "0123456789_- " #define KEYMAP_SUFFIX ".wc3270km" #define KS_LEN strlen(KEYMAP_SUFFIX) #define KM_3270 ".3270" #define LEN_3270 strlen(KM_3270) #define KM_NVT ".nvt" #define LEN_NVT strlen(KM_NVT) #define KM_DESC "!description: " #define LEN_DESC strlen(KM_DESC) #define SESS_SUFFIX ".wc3270" #define SESS_LEN strlen(SESS_SUFFIX) #define CHOICE_NONE "none" #define DISPLAY_NONE "(none)" extern char *wversion; /* Aliases for obsolete character set names. */ struct { char *alias; char *real; } charset_alias[] = { { "japanese-290", "japanese-kana" }, { "japanese-1027", "japanese-latin" }, { NULL, NULL } }; #define CS_WIDTH 19 #define CP_WIDTH 8 #define WP_WIDTH 6 #define CS_COLS 2 /* 2 3 4 5 */ int wrows[6] = { 0, 0, MODEL_2_ROWS + 1, MODEL_3_ROWS + 1, MODEL_4_ROWS + 1, MODEL_5_ROWS + 1 }; int wcols[6] = { 0, 0, MODEL_2_COLS, MODEL_3_COLS, MODEL_4_COLS, MODEL_5_COLS }; #define MAX_PRINTERS 256 PRINTER_INFO_1 printer_info[MAX_PRINTERS]; int num_printers = 0; char default_printer[1024]; static struct { char *name; char *description; } builtin_keymaps[] = { { "rctrl", "Map PC Right Ctrl key to 3270 'Enter' and PC Enter key to 3270 'Newline'" }, { NULL, NULL } }; static struct { char *name; char *protocol; char *port; } proxies[] = { { PROXY_HTTP, "HTTP tunnel (RFC 2817, e.g., squid)", PORT_HTTP }, { PROXY_PASSTHRU,"Sun telnet-passthru", NULL }, { PROXY_SOCKS4, "SOCKS version 4", PORT_SOCKS4 }, { PROXY_SOCKS5, "SOCKS version 5 (RFC 1928)", PORT_SOCKS5 }, { PROXY_TELNET, "None (just send 'connect host port')", NULL }, { NULL, NULL, NULL } }; int create_session_file(session_t *s, char *path); static char *mya = NULL; static char *installdir = NULL; static char *desktop = NULL; char * get_input(char *buf, int bufsize) { char *s; int sl; /* Make sure all of the output gets out. */ fflush(stdout); /* Get the raw input from stdin. */ if (fgets(buf, bufsize, stdin) == NULL) return NULL; /* Trim leading whitespace. */ s = buf; sl = strlen(buf); while (*s && isspace(*s)) { s++; sl--; } if (s != buf) memmove(buf, s, sl + 1); /* Trim trailing whitespace. */ while (sl && isspace(buf[--sl])) buf[sl] = '\0'; return buf; } int getyn(int defval) { char yn[STR_SIZE]; if (get_input(yn, STR_SIZE) == NULL) { return -1; } if (!yn[0]) return defval; if (!strncasecmp(yn, "yes", strlen(yn))) return 1; if (!strncasecmp(yn, "no", strlen(yn))) return 0; printf("Please answer (y)es or (n)o.\n\n"); return -2; } void enum_printers(void) { DWORD needed = 0; DWORD returned = 0; /* Get the default printer name. */ default_printer[0] = '\0'; if (GetProfileString("windows", "device", "", default_printer, sizeof(default_printer)) != 0) { char *comma; if ((comma = strchr(default_printer, ',')) != NULL) *comma = '\0'; } /* Get the list of printers. */ if (EnumPrinters( PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS, NULL, 1, (LPBYTE)&printer_info, sizeof(printer_info), &needed, &returned) == 0) return; num_printers = returned; } /* Get an 'other' printer name. */ int get_printer_name(char *defname, char *printername) { for (;;) { printf("\nEnter Windows printer name: [%s] ", defname[0]? defname: "use system default"); fflush(stdout); if (get_input(printername, STR_SIZE) == NULL) return -1; if (!printername[0]) { if (defname[0]) strcpy(printername, defname); break; } if (!strcmp(printername, "default")) { printername[0] = '\0'; } if (strchr(printername, '!') || strchr(printername, ',')) { printf("Invalid printer name.\n"); continue; } else { break; } } return 0; } typedef struct km { struct km *next; char name[MAX_PATH]; char description[STR_SIZE]; char *def_both; char *def_3270; char *def_nvt; } km_t; km_t *km_first = NULL; km_t *km_last = NULL; /* Save a keymap name. If it is unique, return its node. */ km_t * save_keymap_name(char *path, char *keymap_name, char *description) { km_t *km; int sl; km_t *kms; FILE *f; enum { KMF_BOTH, KMF_3270, KMF_NVT } km_mode = KMF_BOTH; char **def = NULL; km = (km_t *)malloc(sizeof(km_t)); if (km == NULL) { fprintf(stderr, "Not enough memory\n"); return NULL; } memset(km, '\0', sizeof(km_t)); strcpy(km->name, keymap_name); km->description[0] = '\0'; sl = strlen(km->name); /* Slice off the '.wc3270km' suffix. */ if (sl > KS_LEN && !strcasecmp(km->name + sl - KS_LEN, KEYMAP_SUFFIX)) { km->name[sl - KS_LEN] = '\0'; sl -= KS_LEN; } /* Slice off any '.3270' or '.nvt' before that. */ if (sl > LEN_3270 && !strcasecmp(km->name + sl - LEN_3270, KM_3270)) { km->name[sl - LEN_3270] = '\0'; sl -= LEN_3270; km_mode = KMF_3270; } else if (sl > LEN_NVT && !strcasecmp(km->name + sl - LEN_NVT, KM_NVT)) { km->name[sl - LEN_NVT] = '\0'; sl -= LEN_NVT; km_mode = KMF_NVT; } for (kms = km_first; kms != NULL; kms = kms->next) { if (!strcasecmp(kms->name, km->name)) break; } if (kms != NULL) { free(km); km = kms; } else { km->next = NULL; if (km_last != NULL) km_last->next = km; else km_first = km; km_last = km; } /* Check if we've already seen this keymap. */ switch (km_mode) { case KMF_BOTH: def = &km->def_both; break; case KMF_3270: def = &km->def_3270; break; case KMF_NVT: def = &km->def_nvt; break; } if (*def != NULL) return km; if (description != NULL) { strcpy(km->description, description); return km; } /* Dig for a description and save the definition. */ if (path != NULL) { f = fopen(path, "r"); if (f != NULL) { char buf[STR_SIZE]; while (fgets(buf, STR_SIZE, f) != NULL) { int any = 0; sl = strlen(buf); if (sl > 0 && buf[sl - 1] == '\n') buf[--sl] = '\0'; if (!strncasecmp(buf, KM_DESC, LEN_DESC)) { strncpy(km->description, buf + LEN_DESC, sl - LEN_DESC + 1); continue; } if (buf[0] == '!' || !buf[0]) continue; if (*def == NULL) *def = malloc(strlen(buf) + 2); else { *def = realloc(*def, strlen(*def) + 5 + strlen(buf) + 1); any = 1; } if (*def == NULL) { fprintf(stderr, "Out of memory\n"); exit(1); } if (!any) strcat(strcpy(*def, " "), buf); else strcat(strcat(*def, "\\n\\\n "), buf); } fclose(f); } } return km; } static void save_keymaps(void) { int i; char dpath[MAX_PATH]; char fpath[MAX_PATH]; HANDLE h; WIN32_FIND_DATA find_data; for (i = 0; builtin_keymaps[i].name != NULL; i++) { (void) save_keymap_name(NULL, builtin_keymaps[i].name, builtin_keymaps[i].description); } sprintf(dpath, "%s*.wc3270km", mya); h = FindFirstFile(dpath, &find_data); if (h != INVALID_HANDLE_VALUE) { do { sprintf(fpath, "%s%s", mya, find_data.cFileName); (void) save_keymap_name(fpath, find_data.cFileName, NULL); } while (FindNextFile(h, &find_data) != 0); FindClose(h); } sprintf(dpath, "%s*.wc3270km", installdir); h = FindFirstFile(dpath, &find_data); if (h != INVALID_HANDLE_VALUE) { do { sprintf(fpath, "%s%s", installdir, find_data.cFileName); (void) save_keymap_name(fpath, find_data.cFileName, NULL); } while (FindNextFile(h, &find_data) != 0); FindClose(h); } } void new_screen(session_t *s, char *title) { system("cls"); printf( "wc3270 Session Wizard %s\n", wversion); if (s->session[0]) printf("\nSession: %s\n", s->session); printf("\n%s\n", title); } /* Introductory screen. */ int intro(session_t *s) { int rc; new_screen(s, "\ Overview\n\ \n\ This wizard sets up a new wc3270 session, or allows you to modify an existing\n\ session.\n\ \n\ It creates or edits a session file in your wc3270 Application Data directory\n\ and can create or re-create a shortcut on your desktop."); for (;;) { printf("\nContinue? (y/n) [y] "); fflush(stdout); rc = getyn(1); if (rc == -1 || rc == 0) return -1; if (rc == 1) break; } return 0; } /* * Session name screen. * Parameters: * session_name[in] If NULL, prompt for one * If non-NULL and does not end in .wc3270, take this as * the session name, and fail if it contains invalid * characters * If non-NULL and ends in .wc3270, take this as the path * to the session file * s[out] Session structure to fill in with name and (if the * file exists) current contents * path[out] Pathname of session file * * Returns: 0 file does not exist * 1 file does exist and is editable, edit it * 2 file does exist and is editable, do not edit it * 3 file exists but is uneditable, overwrite it * -1 bail, end of file * -2 bail, uneditable and they don't want to overwrite it */ int get_session(char *session_name, session_t *s, char *path) { FILE *f; int rc; int editable; if (session_name != NULL) { size_t sl = strlen(session_name); size_t slen = sizeof(s->session); /* * Session file pathname or session name specified on the * command line. */ if (sl > SESS_LEN && !strcasecmp(session_name + sl - SESS_LEN, SESS_SUFFIX)) { char *bsl; char *colon; /* Pathname. */ path[MAX_PATH - 1] = '\0'; bsl = strrchr(session_name, '\\'); colon = strrchr(session_name, ':'); if (bsl == NULL && colon == NULL) { /* No directory or drive prefix (cwd). */ if (sl - SESS_LEN + 1 < slen) slen = sl - SESS_LEN + 1; strncpy(s->session, session_name, slen); s->session[slen - 1] = '\0'; /* Try AppData. */ snprintf(path, MAX_PATH, "%s%s", mya, session_name); path[MAX_PATH - 1] = '\0'; if (access(path, 0) < 0) { /* Not there. Try installdir. */ snprintf(path, MAX_PATH, "%s%s", installdir, session_name); path[MAX_PATH - 1] = '\0'; if (access(path, 0) < 0) { /* Not there. Try cwd. */ strncpy(path, session_name, MAX_PATH); path[MAX_PATH - 1] = '\0'; if (access(path, 0) < 0) { /* * Put the new one in * AppData. */ snprintf(path, MAX_PATH, "%s%s", mya, session_name); path[MAX_PATH - 1] = '\0'; } /* else use the one in '.' */ } /* else use the one in installdir */ } /* else use the one in AppData */ } else { /* * Pathname. Copy what's between [:\] and * ".wc3270". */ char *start; strncpy(path, session_name, MAX_PATH); if (bsl != NULL && colon == NULL) start = bsl + 1; else if (bsl == NULL && colon != NULL) start = colon + 1; else if (bsl > colon) start = bsl + 1; else start = colon + 1; if (strlen(start) - SESS_LEN + 1 < slen) slen = strlen(start) - SESS_LEN + 1; strncpy(s->session, start, slen); s->session[slen - 1] = '\0'; } } else { /* Session name. */ strncpy(s->session, session_name, slen); s->session[slen - 1] = '\0'; sprintf(path, "%s%s.wc3270", mya, s->session); } /* Validate the session name. */ if (strspn(s->session, LEGAL_CNAME) != strlen(s->session)) { fprintf(stdout, "\ \nIllegal character(s).\n\ Session names can only have letters, numbers, spaces, underscore '_'\n\ and dash '-')\n"); return -1; } } else { /* Get the session name interactively. */ new_screen(s, "\ Session Name\n\ \n\ This is a unique name for the wc3270 session. It is the name of the file\n\ containing the session configuration parameters and the name of the desktop\n\ shortcut."); for (;;) { printf("\nEnter session name: "); fflush(stdout); if (get_input(s->session, sizeof(s->session)) == NULL) { return -1; } if (!s->session[0]) continue; if (strspn(s->session, LEGAL_CNAME) != strlen(s->session)) { fprintf(stdout, "\ \nIllegal character(s).\n\ Session names can only have letters, numbers, spaces, underscore '_'\n\ and dash '-')\n"); continue; } break; } sprintf(path, "%s%s.wc3270", mya, s->session); } f = fopen(path, "r"); if (f != NULL) { editable = read_session(f, s); fclose(f); if (editable) { for (;;) { printf("\nSession '%s' exists. Edit it? " "(y/n) [y] ", s->session); fflush(stdout); rc = getyn(1); if (rc == -1) return -1; if (rc == 0) return 2; /* do not edit */ if (rc == 1) return 1; /* edit it */ } } else { for (;;) { printf("\nSession '%s' already exists but " "cannot be edited. Replace it? " "(y/n) [n] ", s->session); fflush(stdout); rc = getyn(0); if (rc == -1) return -1; if (rc == 0) return -2; /* don't overwrite */ if (rc == 1) return 3; /* overwrite */ } } } else { /* * Set the auto-shortcut flag in all new session files, * but not in old ones. This will prevent unintended * interactions with old shortcuts that don't specify +S, but * will allow new session files to be started with a * double-click. */ s->flags |= WF_AUTO_SHORTCUT; return 0; /* create it */ } } int get_host(session_t *s) { char buf[STR_SIZE]; OSVERSIONINFO info; int has_ipv6 = 1; /* Win2K and earlier is IPv4-only. WinXP and later can have IPv6. */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0 || info.dwMajorVersion < 5 || (info.dwMajorVersion == 5 && info.dwMinorVersion < 1)) { has_ipv6 = 0; } #define COMMON_HOST_TEXT1 "\ Host Name\n\ \n\ This specifies the IBM host to connect to. It can be a symbolic name like\n\ 'foo.company.com'" #define COMMON_HOST_TEXT2 "\ an IPv4 address in dotted-decimal notation such as\n\ '1.2.3.4'" #define IPV6_HOST_TEXT "\ an IPv6 address in colon notation, such as 'fec0:0:0:1::27'" #define COMMON_HOST_TEXT3 "\ \n\ \n\ To create a session file with no hostname (one that just specifies the model\n\ number, character set, etc.), enter '" CHOICE_NONE "'." if (has_ipv6) new_screen(s, COMMON_HOST_TEXT1 ", " COMMON_HOST_TEXT2 " or " IPV6_HOST_TEXT "." COMMON_HOST_TEXT3); else new_screen(s, COMMON_HOST_TEXT1 " or " COMMON_HOST_TEXT2 "." COMMON_HOST_TEXT3); for (;;) { if (s->host[0]) printf("\nEnter host name or IP address: [%s] ", s->host); else printf("\nEnter host name or IP address: "); fflush(stdout); if (get_input(buf, sizeof(s->host)) == NULL) { return -1; } if (!strcmp(buf, CHOICE_NONE)) { strcpy(s->host, buf); break; } if (strchr(buf, ' ') != NULL) { printf("\nHost names cannot contain spaces.\n"); continue; } if (strchr(buf, '@') != NULL) { printf("\nHostnames cannot contain '@' characters.\n"); continue; } if (strchr(buf, '[') != NULL) { printf("\nHostnames cannot contain '[' characters.\n"); continue; } if (strchr(buf, ']') != NULL) { printf("\nHostnames cannot contain ']' characters.\n"); continue; } if (!buf[0]) { if (!s->host[0]) continue; } else strcpy(s->host, buf); break; } return 0; } int get_port(session_t *s) { char inbuf[STR_SIZE]; char *ptr; unsigned long u; new_screen(s, "\ TCP Port\n\ \n\ This specifies the TCP Port to use to connect to the host. It is a number from\n\ 1 to 65535 or the name 'telnet'. The default is the 'telnet' port, port 23."); for (;;) { printf("\nTCP port: [%d] ", (int)s->port); if (get_input(inbuf, sizeof(inbuf)) == NULL) { return -1; } if (!inbuf[0]) break; if (!strcasecmp(inbuf, "telnet")) { s->port = 23; break; } u = strtoul(inbuf, &ptr, 10); if (u < 1 || u > 65535 || *ptr != '\0') { printf("Invalid port.\n"); } else { s->port = (int)u; break; } } return 0; } int get_lu(session_t *s) { char buf[STR_SIZE]; new_screen(s, "\ Logical Unit (LU) Name\n\ \n\ This specifies a particular Logical Unit or Logical Unit group to connect to\n\ on the host. The default is to allow the host to select the Logical Unit."); for (;;) { printf("\nEnter Logical Unit (LU) name: [%s] ", s->luname[0]? s->luname: CHOICE_NONE); fflush(stdout); if (get_input(buf, sizeof(buf)) == NULL) { return -1; } if (!buf[0]) break; if (!strcmp(buf, CHOICE_NONE)) { s->luname[0] = '\0'; break; } if (strchr(buf, ':') != NULL) { printf("\nLU name cannot contain ':' characters.\n"); continue; } if (strchr(buf, '@') != NULL) { printf("\nLU name cannot contain '@' characters.\n"); continue; } if (strchr(buf, '[') != NULL) { printf("\nLU name cannot contain '[' characters.\n"); continue; } if (strchr(buf, ']') != NULL) { printf("\nLU name cannot contain ']' characters.\n"); continue; } strcpy(s->luname, buf); break; } return 0; } int get_model(session_t *s) { int i; char inbuf[STR_SIZE]; char *ptr; unsigned long u; int max_model = is_nt? 5: 4; new_screen(s, "\ Model Number\n\ \n\ This specifies the dimensions of the screen."); printf("\n"); for (i = 2; i <= max_model; i++) { if (wrows[i]) { printf(" Model %d has %2d rows and %3d columns.\n", i, wrows[i] - 1, wcols[i]); } } for (;;) { printf("\nEnter model number: (2, 3%s) [%d] ", is_nt? ", 4 or 5": " or 4", (int)s->model); fflush(stdout); if (get_input(inbuf, sizeof(inbuf)) == NULL) { return -1; } if (!inbuf[0]) { break; } u = strtoul(inbuf, &ptr, 10); if (u < 2 || u > max_model || *ptr != '\0') { printf("Invalid model number.\n"); continue; } if (s->model != (int)u) { s->model = (int)u; s->ov_rows = 0; s->ov_cols = 0; } break; } return 0; } int get_oversize(session_t *s) { char inbuf[STR_SIZE]; unsigned r, c; char xc; new_screen(s, "\ Oversize\n\ \n\ This specifies 'oversize' dimensions for the screen, beyond the number of\n\ rows and columns specified by the model number. Some hosts are able to use\n\ this additional screen area; some are not. Enter '"CHOICE_NONE"' to specify no\n\ oversize."); printf("\n\ The oversize must be larger than the default for a model %d (%u rows x %u\n\ columns).\n", (int)s->model, wrows[s->model] - 1, wcols[s->model]); for (;;) { printf("\nEnter oversize dimensions (rows x columns) "); if (s->ov_rows || s->ov_cols) printf("[%u x %u]: ", s->ov_rows, s->ov_cols); else printf("["CHOICE_NONE"]: "); fflush(stdout); if (get_input(inbuf, sizeof(inbuf)) == NULL) { return -1; } if (!inbuf[0]) { break; } if (!strcasecmp(inbuf, CHOICE_NONE)) { s->ov_rows = 0; s->ov_cols = 0; break; } if (sscanf(inbuf, "%u x %u%c", &r, &c, &xc) != 2) { printf("Please enter oversize in the form " "'rows x cols'.\n"); continue; } if (r < wrows[s->model] - 1 || c < wcols[s->model]) { printf("Oversize must be larger than the default for " "a model %d (%u x %u).\n", (int)s->model, wrows[s->model] - 1, wcols[s->model]); continue; } if (r > 255 || c > 255) { printf("Rows and columns must be 255 or less.\n"); continue; } if (r * c > 0x4000) { printf("The total screen area (rows multiplied by " "columns) must be less than 16384.\n"); continue; } s->ov_rows = (unsigned char)r; s->ov_cols = (unsigned char)c; break; } return 0; } int get_charset(session_t *s) { char buf[STR_SIZE]; int i, k; char *ptr; unsigned long u; new_screen(s, "\ Character Set\n\ \n\ This specifies the EBCDIC character set used by the host."); printf("\ \nAvailable character sets:\n\n\ # Name Host CP # Name Host CP\n\ --- ------------------- -------- --- ------------------- --------\n"); k = 0; for (i = 0; charsets[i].name != NULL; i++) { int j; char *n, *h; if (i) { if (!(i % CS_COLS)) printf("\n"); else printf(" "); } if (!(i % 2)) j = k; else { j += num_charsets / 2; k++; } if (is_nt || !charsets[j].is_dbcs) { n = charsets[j].name; h = charsets[j].hostcp; } else { n = ""; h = ""; } printf(" %2d. %-*s %-*s", j + 1, CS_WIDTH, n, CP_WIDTH, h); } printf("\n"); for (;;) { printf("\nCharacter set: [%s] ", s->charset); if (get_input(buf, sizeof(buf)) == NULL) { return -1; } if (!buf[0]) break; /* Check for numeric value. */ u = strtoul(buf, &ptr, 10); if (u > 0 && u <= i && *ptr == '\0' && (is_nt || !charsets[u - 1].is_dbcs)) { strcpy(s->charset, charsets[u - 1].name); s->is_dbcs = charsets[u - 1].is_dbcs; break; } /* Check for alias. */ for (i = 0; charset_alias[i].alias != NULL; i++) { if (!strcmp(buf, charset_alias[i].alias)) { strcpy(buf, charset_alias[i].real); break; } } /* Check for name match. */ for (i = 0; charsets[i].name != NULL; i++) { if (!strcmp(buf, charsets[i].name) && (is_nt || !charsets[i].is_dbcs)) { strcpy(s->charset, charsets[i].name); s->is_dbcs = charsets[i].is_dbcs; break; } } if (charsets[i].name != NULL) break; printf("Invalid character set name.\n"); } return 0; } #if defined(HAVE_LIBSSL) /*[*/ int get_ssl(session_t *s) { new_screen(s, "\ SSL Tunnel\n\ \n\ This option causes wc3270 to first create a tunnel to the host using the\n\ Secure Sockets Layer (SSL), then to run the TN3270 session inside the tunnel."); do { printf("\nUse an SSL tunnel? (y/n) [%s] ", s->ssl? "y" : "n"); fflush(stdout); s->ssl = getyn(s->ssl); if (s->ssl == -1) return -1; } while (s->ssl < 0); return 0; } #endif /*]*/ int get_proxy_server(session_t *s) { char hbuf[STR_SIZE]; /* Get the hostname. */ for (;;) { if (s->proxy_host[0]) { printf("\nProxy server name: [%s] ", s->proxy_host); } else { printf("\nProxy server name: "); } if (get_input(hbuf, STR_SIZE) == NULL) return -1; if (!hbuf[0]) { if (s->proxy_host[0]) break; else continue; } if (strchr(hbuf, '[') != NULL || strchr(hbuf, ']') != NULL) { printf("Server name cannot include '[' or ']'\n"); continue; } strcpy(s->proxy_host, hbuf); break; } return 0; } int get_proxy_server_port(session_t *s) { char pbuf[STR_SIZE]; int i; for (i = 0; proxies[i].name != NULL; i++) { if (!strcmp(s->proxy_type, proxies[i].name)) break; } if (proxies[i].name == NULL) { printf("Internal error\n"); return -1; } for (;;) { unsigned long l; char *ptr; if (s->proxy_port[0]) printf("\nProxy server TCP port: [%s] ", s->proxy_port); else if (proxies[i].port != NULL) printf("\nProxy server TCP port: [%s] ", proxies[i].port); else printf("\nProxy server TCP port: "); if (get_input(pbuf, STR_SIZE) == NULL) return -1; if (!strcmp(pbuf, "default") && proxies[i].port != NULL) { strcpy(s->proxy_port, proxies[i].port); break; } if (!pbuf[0]) { if (s->proxy_port[0]) break; else if (proxies[i].port != NULL) { strcpy(s->proxy_port, proxies[i].port); break; } else continue; } l = strtoul(pbuf, &ptr, 10); if (l == 0 || *ptr != '\0' || (l & ~0xffffL)) printf("Invalid port\n"); else { strcpy(s->proxy_port, pbuf); break; } } return 0; } int get_proxy(session_t *s) { int i, j; char tbuf[STR_SIZE]; char old_proxy[STR_SIZE]; new_screen(s, "\ Proxy\n\ \n\ If you do not have a direct connection to your host, this option allows\n\ wc3270 to use a proxy server to make the connection."); printf("\nProxy types available:\n"); printf(" 1. none Direct connection to host\n"); for (i = 0; proxies[i].name != NULL; i++) { printf(" %d. %-8s %s\n", i + 2, proxies[i].name, proxies[i].protocol); } strcpy(old_proxy, s->proxy_type); /* Get the proxy type. */ for (;;) { int n; printf("\nProxy type: [%s] ", s->proxy_type[0]? s->proxy_type: CHOICE_NONE ); if (get_input(tbuf, STR_SIZE) == NULL) return -1; if (!tbuf[0]) return 0; if (!strcasecmp(tbuf, CHOICE_NONE)) { s->proxy_type[0] = '\0'; s->proxy_host[0] = '\0'; s->proxy_port[0] = '\0'; return 0; } for (j = 0; proxies[j].name != NULL; j++) { if (!strcasecmp(tbuf, proxies[j].name)) break; } if (proxies[j].name != NULL) { strcpy(s->proxy_type, tbuf); break; } n = atoi(tbuf); if (n > 0 && n <= i+1) { if (n == 1) { s->proxy_type[0] = '\0'; s->proxy_host[0] = '\0'; s->proxy_port[0] = '\0'; return 0; } else { j = n - 2; strcpy(s->proxy_type, proxies[j].name); break; } } printf("Invalid proxy type.\n"); } /* If the type changed, the rest of the information is invalid. */ if (strcmp(old_proxy, s->proxy_type)) { s->proxy_host[0] = '\0'; s->proxy_port[0] = '\0'; if (get_proxy_server(s) < 0) { return -1; } if (proxies[j].port != NULL) strcpy(s->proxy_port, proxies[j].port); else if (get_proxy_server_port(s) < 0) { return -1; } } return 0; } int get_wpr3287(session_t *s) { new_screen(s, "\ wpr3287 Session\n\ \n\ This option allows wc3270 to automatically start a wpr3287 printer session\n\ when it connects to the host, allowing the host to direct print jobs to a\n\ Windows printer."); do { printf("\nAutomatically start a wpr3287 printer session? (y/n) [n] "); fflush(stdout); s->wpr3287 = getyn(s->wpr3287); if (s->wpr3287 == -1) return -1; } while (s->wpr3287 < 0); if (s->wpr3287 == 0) strcpy(s->printerlu, "."); return 0; } int get_printerlu(session_t *s) { int rc; new_screen(s, "\ wpr3287 Session -- Printer Logical Unit (LU) Name\n\ \n\ The wpr3287 printer session can be configured in one of two ways. The first\n\ method automatically associates the printer session with the current login\n\ session. The second method specifies a particular Logical Unit (LU) to use\n\ for the printer session."); for (;;) { printf("\nAssociate the printer session with the current login session (y/n) [%s]: ", strcmp(s->printerlu, ".")? "n": "y"); fflush(stdout); rc = getyn(!strcmp(s->printerlu, ".")); switch (rc) { case -1: return -1; case -2: default: continue; case 0: if (!strcmp(s->printerlu, ".")) s->printerlu[0] = '\0'; break; case 1: strcpy(s->printerlu, "."); return 0; } break; } for (;;) { char tbuf[STR_SIZE]; if (s->printerlu[0]) printf("\nEnter printer Logical Unit (LU) name: [%s] ", s->printerlu); else printf("\nEnter printer Logical Unit (LU) name: "); fflush(stdout); if (get_input(tbuf, STR_SIZE) == NULL) return -1; if (!tbuf[0]) { if (s->printerlu[0]) break; else continue; } else { strcpy(s->printerlu, tbuf); break; } } return 0; } int get_printer(session_t *s) { char tbuf[STR_SIZE]; int i; char *ptr; unsigned long u; new_screen(s, "\ wpr3287 Session -- Windows Printer Name\n\ \n\ The wpr3287 session can use the Windows default printer as its real printer,\n\ or you can specify a particular Windows printer. You can specify a local\n\ printer, or specify a remote printer with a UNC path, e.g.,\n\ '\\\\server\\printer22'. You can specify the Windows default printer with\n\ the name 'default'."); enum_printers(); if (num_printers) { printf("\nWindows printers (default is '*'):\n"); for (i = 0; i < num_printers; i++) { printf(" %2d. %c %s\n", i + 1, strcasecmp(default_printer, printer_info[i].pName)? ' ': '*', printer_info[i].pName); } printf(" %2d. Other\n", num_printers + 1); for (;;) { if (s->printer[0]) printf("\nEnter Windows printer (1-%d): [%s] ", num_printers + 1, s->printer); else printf("\nEnter Windows printer (1-%d): [use system default] ", num_printers + 1); fflush(stdout); if (get_input(tbuf, STR_SIZE) == NULL) return -1; if (!tbuf[0]) break; if (!strcmp(tbuf, "default")) { s->printer[0] = '\0'; break; } u = strtoul(tbuf, &ptr, 10); if (*ptr != '\0' || u == 0 || u > num_printers + 1) continue; if (u == num_printers + 1) { if (get_printer_name(s->printer, tbuf) < 0) return -1; strcpy(s->printer, tbuf); break; } strcpy(s->printer, printer_info[u - 1].pName); break; } } else { if (get_printer_name(s->printer, tbuf) < 0) return -1; strcpy(s->printer, tbuf); } return 0; } int get_printercp(session_t *s) { char buf[STR_SIZE]; new_screen(s, "\ wpr3287 Session -- Printer Code Page\n\ \n\ By default, wpr3287 uses the system's default ANSI code page. You can\n\ override that code page here, or specify 'default' to use the system ANSI code\n\ page."); for (;;) { int cp; printf("\nPrinter code page [%s]: ", s->printercp[0]? s->printercp: "default"); fflush(stdout); if (get_input(buf, STR_SIZE) == NULL) return -1; if (!buf[0]) break; if (!strcmp(buf, "default")) { s->printercp[0] = '\0'; break; } cp = atoi(buf); if (cp <= 0) { printf("Invald code page\n"); } else { strcpy(s->printercp, buf); break; } } return 0; } int get_keymaps(session_t *s) { km_t *km; new_screen(s, "\ Keymaps\n\ \n\ A keymap is a mapping from the PC keyboard to the virtual 3270 keyboard.\n\ You can override the default keymap and specify one or more built-in or \n\ user-defined keymaps, separated by commas."); printf("\n"); for (km = km_first; km != NULL; km = km->next) { printf(" %s\n", km->name); if (km->description[0]) printf(" %s", km->description); printf("\n"); } for (;;) { char inbuf[STR_SIZE]; char tknbuf[STR_SIZE]; char *t; char *buf; int wrong = FALSE; printf("\nEnter keymap name(s) [%s]: ", s->keymaps[0]? s->keymaps: CHOICE_NONE); fflush(stdout); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0]) break; if (!strcmp(inbuf, CHOICE_NONE)) { s->keymaps[0] = '\0'; break; } strcpy(tknbuf, inbuf); wrong = FALSE; buf = tknbuf; while (!wrong && (t = strtok(buf, ",")) != NULL) { buf = NULL; for (km = km_first; km != NULL; km = km->next) { if (!strcasecmp(t, km->name)) break; } if (km == NULL) { printf("\nInvalid keymap name '%s'\n", t); wrong = TRUE; break; } } if (!wrong) { strcpy(s->keymaps, inbuf); break; } } return 0; } static int get_embed(session_t *s) { new_screen(s, "\ Embed Keymaps\n\ \n\ If selected, this option causes any selected keymaps to be copied into the\n\ session file, instead of being found at runtime."); for (;;) { int rc; printf("\nEmbed keymaps? (y/n) [%s] ", (s->flags & WF_EMBED_KEYMAPS)? "y": "n"); fflush(stdout); rc = getyn((s->flags & WF_EMBED_KEYMAPS) != 0); if (rc == -1) return -1; if (rc) s->flags |= WF_EMBED_KEYMAPS; else s->flags &= ~WF_EMBED_KEYMAPS; break; } return 0; } static int get_fontsize(session_t *s) { new_screen(s, "\ Font Size\n\ \n\ Allows the font size (character height in pixels) to be specified for the\n\ wc3270 window. The size must be between 5 and 72. The default is 12."); for (;;) { char inbuf[STR_SIZE]; unsigned long u; char *ptr; printf("\nFont size (5 to 72) [%u]: ", s->point_size? s->point_size: 12); fflush(stdout); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0]) break; if (!strcasecmp(inbuf, CHOICE_NONE)) { s->point_size = 0; break; } u = strtoul(inbuf, &ptr, 10); if (*ptr != '\0' || u == 0 || u < 5 || u > 72) continue; s->point_size = (unsigned char)u; break; } return 0; } static int get_background(session_t *s) { new_screen(s, "\ Background Color\n\ \n\ This option selects whether the screen background is black (the default) or\n\ white."); for (;;) { char inbuf[STR_SIZE]; printf("\nBackground color? (black/white) [%s] ", (s->flags & WF_WHITE_BG)? "white": "black"); fflush(stdout); if (get_input(inbuf, sizeof(inbuf)) == NULL) return -1; if (!inbuf[0]) break; if (!strcasecmp(inbuf, "black")) { s->flags &= ~WF_WHITE_BG; break; } else if (!strcasecmp(inbuf, "white")) { s->flags |= WF_WHITE_BG; break; } } return 0; } int summarize_and_proceed(session_t *s, char *how, char *path) { int rc; char choicebuf[32]; for (;;) { int done = 0; char *cp = "?"; int i; for (i = 0; charsets[i].name != NULL; i++) if (!strcmp(charsets[i].name, s->charset)) { cp = charsets[i].hostcp; break; } new_screen(s, ""); printf(" 1. Host ................... : %s\n", strcmp(s->host, CHOICE_NONE)? s->host: DISPLAY_NONE); printf(" 2. Logical Unit Name ...... : %s\n", s->luname[0]? s->luname: DISPLAY_NONE); printf(" 3. TCP Port ............... : %d\n", (int)s->port); printf(" 4. Model Number ........... : %d (%d rows x %d columns)\n", (int)s->model, wrows[s->model] - 1, wcols[s->model]); if (is_nt) { printf(" 5. Oversize .............. : "); if (s->ov_rows || s->ov_cols) printf("%u rows x %u columns\n", s->ov_rows, s->ov_cols); else printf(DISPLAY_NONE"\n"); } printf(" 6. Character Set .......... : %s (CP %s)\n", s->charset, cp); #if defined(HAVE_LIBSSL) /*[*/ printf(" 7. SSL Tunnel ............. : %s\n", s->ssl? "Yes": "No"); #endif /*]*/ printf(" 8. Proxy .................. : %s\n", s->proxy_type[0]? s->proxy_type: DISPLAY_NONE); if (s->proxy_type[0]) { printf(" 9. Proxy Server .......... : %s\n", s->proxy_host); if (s->proxy_port[0]) printf(" 10. Proxy Server TCP Port . : %s\n", s->proxy_port); } printf(" 11. wpr3287 Printer Session : %s\n", s->wpr3287? "Yes": "No"); if (s->wpr3287) { printf(" 12. wpr3287 Mode .......... : "); if (!strcmp(s->printerlu, ".")) printf("Associate\n"); else printf("LU %s\n", s->printerlu); printf(" 13. wpr3287 Windows printer : %s\n", s->printer[0]? s->printer: "(system default)"); printf(" 14. wpr3287 Code Page ..... : "); if (s->printercp[0]) printf("%s\n", s->printercp); else printf("(system ANSI default of %d)\n", GetACP()); } printf(" 15. Keymaps ................ : %s\n", s->keymaps[0]? s->keymaps: DISPLAY_NONE); if (s->keymaps[0]) printf(" 16. Embed Keymaps ......... : %s\n", (s->flags & WF_EMBED_KEYMAPS)? "Yes": "No"); if (is_nt) printf(" 17. Font Size .............. : %u\n", s->point_size? s->point_size: 12); printf(" 18. Background Color ....... : %s\n", (s->flags & WF_WHITE_BG)? "white": "black"); for (;;) { int invalid = 0; int was_wpr3287 = 0; printf("\nEnter item number to change: [none] "); fflush(stdout); if (get_input(choicebuf, sizeof(choicebuf)) == NULL) return -1; if (!choicebuf[0]) { done = 1; break; } switch (atoi(choicebuf)) { case 1: if (get_host(s) < 0) return -1; break; case 2: if (get_lu(s) < 0) return -1; break; case 3: if (get_port(s) < 0) return -1; break; case 4: if (get_model(s) < 0) return -1; break; case 5: if (is_nt) { if (get_oversize(s) < 0) return -1; } else { printf("Invalid entry.\n"); invalid = 1; } break; case 6: if (get_charset(s) < 0) return -1; break; #if defined(HAVE_LIBSSL) /*[*/ case 7: if (get_ssl(s) < 0) return -1; break; #endif /*]*/ case 8: if (get_proxy(s) < 0) return -1; break; case 9: if (s->proxy_type[0]) { if (get_proxy_server(s) < 0) return -1; } else { printf("Invalid entry.\n"); invalid = 1; } break; case 10: if (s->proxy_type[0]) { if (get_proxy_server_port(s) < 0) return -1; } else { printf("Invalid entry.\n"); invalid = 1; } break; case 11: was_wpr3287 = s->wpr3287; if (get_wpr3287(s) < 0) return -1; if (s->wpr3287 && !was_wpr3287) { if (get_printerlu(s) < 0) return -1; } break; case 12: if (s->wpr3287) { if (get_printerlu(s) < 0) return -1; } else { printf("Invalid entry.\n"); invalid = 1; } break; case 13: if (s->wpr3287) { if (get_printer(s) < 0) return -1; } else { printf("Invalid entry.\n"); invalid = 1; } break; case 14: if (s->wpr3287) { if (get_printercp(s) < 0) return -1; } else { printf("Invalid entry.\n"); invalid = 1; } break; case 15: if (get_keymaps(s) < 0) return -1; break; case 16: if (get_embed(s) < 0) return -1; break; case 17: if (is_nt) { if (get_fontsize(s) < 0) return -1; } else { printf("Invalid entry.\n"); invalid = 1; } break; case 18: if (get_background(s) < 0) return -1; break; default: printf("Invalid entry.\n"); invalid = 1; break; } if (!invalid) break; } if (done) break; } for (;;) { printf("\n%s the session file '%s'? (y/n) [y] ", how, path); fflush(stdout); rc = getyn(1); if (rc == -1 || rc == 0) return -1; if (rc == 1) break; } return 0; } wchar_t * reg_font_from_cset(char *cset, int *codepage) { int i, j; wchar_t *cpname = NULL; wchar_t data[1024]; DWORD dlen; HKEY key; static wchar_t font[1024]; DWORD type; *codepage = 0; /* Search the table for a match. */ for (i = 0; charsets[i].name != NULL; i++) { if (!strcmp(cset, charsets[i].name)) { cpname = charsets[i].codepage; break; } } /* If no match, use Lucida Console. */ if (cpname == NULL) return L"Lucida Console"; /* * Look in the registry for the console font associated with the * Windows code page. */ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows NT\\CurrentVersion\\" "Console\\TrueTypeFont", 0, KEY_READ, &key) != ERROR_SUCCESS) { printf("RegOpenKey failed -- cannot find font\n"); return L"Lucida Console"; } dlen = sizeof(data); if (RegQueryValueExW(key, cpname, NULL, &type, (LPVOID)data, &dlen) != ERROR_SUCCESS) { /* No codepage-specific match, try the default. */ dlen = sizeof(data); if (RegQueryValueExW(key, L"0", NULL, &type, (LPVOID)data, &dlen) != ERROR_SUCCESS) { RegCloseKey(key); printf("RegQueryValueEx failed -- cannot find font\n"); return L"Lucida Console"; } } RegCloseKey(key); if (type == REG_MULTI_SZ) { for (i = 0; i < dlen/sizeof(wchar_t); i++) { if (data[i] == 0x0000) break; } if (i+1 >= dlen/sizeof(wchar_t) || data[i+1] == 0x0000) { printf("Bad registry value -- cannot find font\n"); return L"Lucida Console"; } i++; } else i = 0; for (j = 0; i < dlen; i++, j++) { if (j == 0 && data[i] == L'*') i++; if ((font[j] = data[i]) == 0x0000) break; } *codepage = _wtoi(cpname); return font; } int session_wizard(char *session_name, int installed) { session_t session; int rc; char linkpath[MAX_PATH]; char exepath[MAX_PATH]; char args[MAX_PATH]; HRESULT hres; char save_session_name[STR_SIZE]; FILE *f; int shortcut_exists; char path[MAX_PATH]; /* Start with nothing. */ (void) memset(&session, '\0', sizeof(session)); /* Intro screen. */ if (session_name == NULL && intro(&session) < 0) return -1; /* Get the session name. */ rc = get_session(session_name, &session, path); switch (rc) { case -2: /* Uneditable, and they don't want to overwrite it. */ return 0; default: case -1: /* EOF */ return -1; case 3: /* Overwrite old (uneditable). */ /* Clean out the session. */ strcpy(save_session_name, session.session); memset(&session, '\0', sizeof(session)); strcpy(session.session, save_session_name); /* fall through... */ case 0: /* New. */ /* Get the host name, which defaults to the session name. */ if (strchr(session.session, ' ') == NULL) strcpy(session.host, session.session); if (get_host(&session) < 0) return -1; /* Default eveything else. */ session.port = 23; session.model = 4; strcpy(session.charset, "bracket"); strcpy(session.printerlu, "."); /* fall through... */ case 1: /* Edit existing file. */ /* See what they want to change. */ if (summarize_and_proceed(&session, (rc == 3)? "Replace": ((rc == 0)? "Create": "Update"), path) < 0) return -1; /* Create the session file. */ printf("\nWriting session file '%s'... ", path); fflush(stdout); if (create_session_file(&session, path) < 0) return -1; printf("done\n"); fflush(stdout); break; case 2: /* Don't edit existing file, but we do have a copy of the session. */ break; } /* Ask about the shortcut. */ if (is_nt) sprintf(linkpath, "%s%s.lnk", desktop, session.session); else sprintf(linkpath, "%s%s.pif", desktop, session.session); f = fopen(linkpath, "r"); if ((shortcut_exists = (f != NULL))) fclose(f); for (;;) { printf("\n%s desktop shortcut (y/n) [%s]: ", shortcut_exists? "Replace": "Create", installed? "y": "n"); rc = getyn(installed == TRUE); if (rc < 0) return -1; if (rc == 0) return 0; if (rc == 1) break; } /* Create the desktop shorcut. */ printf("\n%s desktop shortcut '%s'... ", shortcut_exists? "Replacing": "Creating", linkpath); fflush(stdout); sprintf(exepath, "%swc3270.exe", installdir); sprintf(args, "+S \"%s\"", path); if (is_nt) { wchar_t *font; int codepage = 0; font = reg_font_from_cset(session.charset, &codepage); hres = CreateLink( exepath, /* path to executable */ linkpath, /* where to put the link */ "wc3270 session", /* description */ args, /* arguments */ installdir, /* working directory */ session.ov_rows? /* console rows */ session.ov_rows + 1: wrows[session.model], session.ov_cols? /* console cols */ session.ov_cols: wcols[session.model], font, /* font */ session.point_size, /* point size */ codepage); /* code page */ } else hres = Piffle( session.session, /* window title */ exepath, /* path to executable */ linkpath, /* where to put the link */ "wc3270 session", /* description */ args, /* arguments */ installdir, /* working directory */ wrows[session.model], wcols[session.model], /* console rows, columns */ "Lucida Console"); /* font */ if (SUCCEEDED(hres)) { printf("done\n"); fflush(stdout); return 0; } else { printf("Failed\n"); fflush(stdout); return -1; } } /* Embed the selected keymaps in the session file. */ static void embed_keymaps(session_t *session, FILE *f) { char keymaps[STR_SIZE]; char *keymap; char *ptr = keymaps; km_t *km; char *pfx = "! Embedded user-defined keymaps\n"; strcpy(keymaps, session->keymaps); while ((keymap = strtok(ptr, ",")) != NULL) { ptr = NULL; for (km = km_first; km != NULL; km = km->next) { if (!strcasecmp(keymap, km->name)) { if (km->def_both) { fprintf(f, "%swc3270.%s.%s:" "\\n\\\n%s\n", pfx, ResKeymap, keymap, km->def_both); pfx = ""; } if (km->def_3270) { fprintf(f, "%swc3270.%s.%s.3270:" "\\n\\\n%s\n", pfx, ResKeymap, keymap, km->def_3270); pfx = ""; } if (km->def_nvt) { fprintf(f, "%swc3270.%s.%s.nvt:" "\\n\\\n%s\n", pfx, ResKeymap, keymap, km->def_nvt); pfx = ""; } break; } } } } /* Create the session file. */ int create_session_file(session_t *session, char *path) { FILE *f; time_t t; int bracket; long eot; unsigned long csum; int i; char buf[1024]; f = fopen(path, "w+"); if (f == NULL) { perror("Cannot create session file"); return -1; } fprintf(f, "! wc3270 session '%s'\n", session->session); t = time(NULL); fprintf(f, "! Created by the wc3270 %s session wizard %s", wversion, ctime(&t)); if (strcmp(session->host, CHOICE_NONE)) { bracket = (strchr(session->host, ':') != NULL); fprintf(f, "wc3270.%s: ", ResHostname); if (session->ssl) fprintf(f, "L:"); if (session->luname[0]) fprintf(f, "%s@", session->luname); fprintf(f, "%s%s%s", bracket? "[": "", session->host, bracket? "]": ""); if (session->port != 23) fprintf(f, ":%d", (int)session->port); fprintf(f, "\n"); } else if (session->port != 23) fprintf(f, "wc3270.%s: %d\n", ResPort, (int)session->port); if (session->proxy_type[0]) fprintf(f, "wc3270.%s: %s:%s%s%s%s%s\n", ResProxy, session->proxy_type, strchr(session->proxy_host, ':')? "[": "", session->proxy_host, strchr(session->proxy_host, ':')? "]": "", session->proxy_port[0]? ":": "", session->proxy_port); fprintf(f, "wc3270.%s: %d\n", ResModel, (int)session->model); if (session->ov_rows || session->ov_cols) fprintf(f, "wc3270.%s: %ux%u\n", ResOversize, session->ov_cols, session->ov_rows); fprintf(f, "wc3270.%s: %s\n", ResCharset, session->charset); if (session->is_dbcs) fprintf(f, "wc3270.%s: %s\n", ResAsciiBoxDraw, ResTrue); if (session->wpr3287) { fprintf(f, "wc3270.%s: %s\n", ResPrinterLu, session->printerlu); if (session->printer[0]) fprintf(f, "wc3270.%s: %s\n", ResPrinterName, session->printer); if (session->printercp[0]) fprintf(f, "wc3270.%s: %s\n", ResPrinterCodepage, session->printercp); } if (session->keymaps[0]) { fprintf(f, "wc3270.%s: %s\n", ResKeymap, session->keymaps); if (session->flags & WF_EMBED_KEYMAPS) embed_keymaps(session, f); } if (session->flags & WF_AUTO_SHORTCUT) fprintf(f, "wc3270.%s: %s\n", ResAutoShortcut, ResTrue); if (session->flags & WF_WHITE_BG) fprintf(f, "\ ! These resources set the background to white\n\ wc3270." ResConsoleColorForHostColor "NeutralBlack: 15\n\ wc3270." ResConsoleColorForHostColor "NeutralWhite: 0\n"); /* Emit the warning. */ fprintf(f, "\ !\n\ ! The following block of text is used to read the contents of this file back\n\ ! into the Session Wizard. If any of the text from the top of the file\n\ ! through the line below reading \"Additional resource definitions...\" is\n\ ! modified, the Session Wizard will not be able to edit this file.\n\ !"); /* Write out the session structure in hex. */ for (i = 0; i < sizeof(*session); i++) { if (!(i % 32)) fprintf(f, "\n!x"); fprintf(f, "%02x", ((unsigned char *)session)[i]); } fprintf(f, "\n"); /* Save where we are in the file. */ fflush(f); eot = ftell(f); /* Go back and read what we wrote. */ rewind(f); csum = 0; while (fgets(buf, sizeof(buf), f) != NULL) { for (i = 0; buf[i]; i++) { csum += buf[i] & 0xff; } if (ftell(f) >= eot) break; } fflush(f); /* Write out the checksum and structure version. */ fseek(f, 0, SEEK_END); fprintf(f, "!c%08lx %d\n", csum, WIZARD_VER); fprintf(f, "!\n\ !*Additional resource definitions can go after this line.\n"); /* Write out the user's previous extra settings. */ if (user_settings != NULL) fprintf(f, "%s", user_settings); fclose(f); return 0; } /* Make sure the console window is long enough. */ int resize_window(int rows) { int rv = 0; HANDLE h; CONSOLE_SCREEN_BUFFER_INFO info; do { /* Get a handle to the console. */ h = CreateFile("CONOUT$", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if (h == NULL) { rv = -1; break; } /* Get its current geometry. */ if (GetConsoleScreenBufferInfo(h, &info) == 0) { rv = -1; break; } /* If the buffer isn't big enough, make it bigger. */ if (info.dwSize.Y < rows) { COORD new_size; new_size.X = info.dwSize.X; new_size.Y = rows; if (SetConsoleScreenBufferSize(h, new_size) == 0) { rv = -1; break; } } /* If the window isn't big enough, make it bigger. */ if (info.srWindow.Bottom - info.srWindow.Top < rows) { SMALL_RECT sr; sr.Top = 0; sr.Bottom = rows; sr.Left = 0; sr.Right = info.srWindow.Right - info.srWindow.Left; if (SetConsoleWindowInfo(h, TRUE, &sr) == 0) { rv = -1; break; } } } while(0); if (h != NULL) CloseHandle(h); return rv; } static void usage(void) { fprintf(stderr, "Usage: wc3270wiz [session-name]\n" " wc3270wiz [session-file]\n"); exit(1); } int main(int argc, char *argv[]) { int rc; char buf[2]; char *session_name = NULL; int installed = FALSE; /* * Parse command-line arguments. * For now, there is only one -- the optional name of the session. */ switch (argc) { case 1: break; case 2: session_name = argv[1]; break; default: usage(); break; } /* Figure out the version. */ if (get_version_info() < 0) return 1; /* Get some paths from Windows. */ if (get_dirs(argv[0], "wc3270", &installdir, &desktop, &mya, &installed) < 0) return -1; /* Resize the console window. */ if (is_nt) resize_window(44); else system("mode con lines=50"); signal(SIGINT, SIG_IGN); save_keymaps(); rc = session_wizard(session_name, installed); printf("\nWizard %s. [Press ] ", (rc < 0)? "aborted": "complete"); fflush(stdout); (void) fgets(buf, 2, stdin); return 0; } ibm-3270-3.3.10ga4/wc3270/popupsc.h0000644000175000017500000000372711254565674015775 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* c3270 version of popupsc.h */ /* Note that these functions are in c3270.c, not popups.c. */ extern void action_output(const char *fmt, ...) printflike(1, 2); extern void popup_an_errno(int errn, const char *fmt, ...) printflike(2, 3); extern void popup_an_error(const char *fmt, ...) printflike(1, 2); extern void popup_an_info(const char *fmt, ...) printflike(1, 2); extern void Info_action(Widget w, XEvent *event, String *params, Cardinal *num_params); ibm-3270-3.3.10ga4/wc3270/telnetc.h0000644000175000017500000000624411254565704015731 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * telnetc.h * Global declarations for telnet.c. */ /* Output buffer. */ extern unsigned char *obuf, *obptr; /* Spelled-out tty control character. */ struct ctl_char { const char *name; char value[3]; }; extern void net_abort(void); extern Boolean net_add_dummy_tn3270e(void); extern void net_add_eor(unsigned char *buf, int len); extern void net_break(void); extern void net_charmode(void); extern int net_connect(const char *, char *, Boolean, Boolean *, Boolean *); extern void net_disconnect(void); extern void net_exception(void); extern int net_getsockname(void *buf, int *len); extern void net_hexansi_out(unsigned char *buf, int len); extern void net_input(void); extern void net_interrupt(void); extern void net_linemode(void); extern struct ctl_char *net_linemode_chars(void); extern void net_output(void); extern const char *net_query_bind_plu_name(void); extern const char *net_query_connection_state(void); extern const char *net_query_host(void); extern const char *net_query_lu_name(void); extern void net_sendc(char c); extern void net_sends(const char *s); extern void net_send_erase(void); extern void net_send_kill(void); extern void net_send_werase(void); extern Boolean net_snap_options(void); extern void space3270out(int n); extern const char *tn3270e_current_opts(void); extern void trace_netdata(char direction, unsigned const char *buf, int len); extern void popup_a_sockerr(char *fmt, ...) printflike(1, 2); extern char *net_proxy_type(void); extern char *net_proxy_host(void); extern char *net_proxy_port(void); extern Boolean net_bound(void); ibm-3270-3.3.10ga4/wc3270/dialogc.h0000644000175000017500000000307611254565673015702 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * dialogc.h * Empty definitions for dialog.c. */ ibm-3270-3.3.10ga4/wc3270/X3270.xad0000644000175000017500000017653011256027001015332 0ustar bastianbastian! ! Copyright (c) 1995-2009, Paul Mattes. ! All rights reserved. ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions are met: ! * Redistributions of source code must retain the above copyright ! notice, this list of conditions and the following disclaimer. ! * Redistributions in binary form must reproduce the above copyright ! notice, this list of conditions and the following disclaimer in the ! documentation and/or other materials provided with the distribution. ! * Neither the names of Paul Mattes nor the names of his contributors ! may be used to endorse or promote products derived from this software ! without specific prior written permission. ! ! THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED ! WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ! MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO ! EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ! OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ! WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ! ! x3270 app-defaults file. This file is generally compiled into x3270, rather ! than installed. ! ! This file is in three sections: ! ! (1) User-Modifiable Resources ! Resources that are likeliest to be modified by an end user. ! ! (2) Labels and Messages ! Resources that are likely to be modified for translation into another ! language. ! ! (3) Base-Level Resources ! Resources required for the basic operation of x3270, not for the ! faint-hearted to modify. ! !============================================================================= ! Section 1: User-Modifiable Resources ! ! Resources that are likeliest to be modified by an end user. !============================================================================= ! ! Many of the resource definitions are commented out, because they are ! the defaults defined in x3270 itself. They are listed here so you can ! easily uncomment and change them. #ifndef STANDALONE ! ! Fonts ! *.emulatorFont: 3270 ! ! Color schemes for full-color (3279) mode ! Each scheme is a list of 23 items: ! 0 X color to use for IBM "neutral/black" (also used as ANSI color 0) ! 1 X color to use for IBM "blue" (also used for ANSI color 4) ! 2 X color to use for IBM "red" (also used for ANSI color 1) ! 3 X color to use for IBM "pink" (also used for ANSI color 5) ! 4 X color to use for IBM "green" (also used for ANSI color 2) ! 5 X color to use for IBM "turquoise" ! 6 X color to use for IBM "yellow" (also used for ANSI color 3) ! 7 X color to use for IBM "neutral/white" ! 8 X color to use for IBM "black" ! 9 X color to use for IBM "deep blue" ! 10 X color to use for IBM "orange" ! 11 X color to use for IBM "purple" ! 12 X color to use for IBM "pale green" ! 13 X color to use for IBM "pale turquoise" (also used for ANSI color 6) ! 14 X color to use for IBM "grey" ! 15 X color to use for IBM "white" (also used for ANSI color 7) ! 16 X color to use if one of 0..15 cannot be allocated (white or black) ! 17 X color to use as the default screen background ! 18 X color to use as the select background ! 19 IBM color index (0..15) to use for unprotected, unhighlighted fields ! 20 IBM color index (0..15) to use for unprotected, highlighted fields ! 21 IBM color index (0..15) to use for protected, unhighlighted fields ! 22 IBM color index (0..15) to use for protected, highlighted fields ! ! x3270.colorScheme: default x3270.colorScheme.default: \ black deepSkyBlue red pink \ green turquoise yellow white \ black blue3 orange purple \ paleGreen paleTurquoise2 grey white \ white black dimGrey \ 4 2 1 15 x3270.colorScheme.reverse: \ black blue firebrick pink \ green4 cadetBlue goldenrod black \ black blue3 orange purple \ paleGreen darkTurquoise grey black \ black white dimGrey \ 4 2 1 0 x3270.colorScheme.bright: \ black blue red magenta \ green turquoise yellow white \ black blue3 orange purple \ paleGreen cyan grey white \ white black dimGrey \ 4 2 1 15 x3270.colorScheme.cpe: \ black LightBlue1 PaleVioletRed1 \ pink green turquoise yellow white \ black LightBlue3 orange MediumPurple1 \ paleGreen paleTurquoise2 grey80 white \ white black dimGrey \ 4 2 1 15 x3270.colorScheme.greenScreen: \ green green green green \ green green green green \ green green green green \ green green green green \ white black dimGrey \ 4 15 4 15 #ifdef X3270_MENUS ! Color schemes listed on the Options color menu x3270.schemeList: Default 3279: default\n\ Bright: bright\n\ Reverse: reverse\n\ Green Screen: greenScreen ! Character sets listed on the Options menu x3270.charsetList: U.S. English (CP 037): us-intl\n\ Bracket (CP 037, modified): bracket\n\ APL (CP 037): apl\n\ Euro>U.S. English (CP 1140): us-euro\n\ Euro>Belgian (CP 1148): belgian-euro\n\ Euro>Finnish (CP 1143): finnish-euro\n\ Euro>French (CP 1147): french-euro\n\ Euro>German (CP 1141): german-euro\n\ Euro>Icelandic (CP 1149): icelandic-euro\n\ Euro>Italian (CP 1144): italian-euro\n\ Euro>Norwegian (CP 1142): norwegian-euro\n\ Euro>Spanish (CP 1145): spanish-euro\n\ Euro>United Kingdom (CP 1146): uk-euro\n\ Belgian (CP 500): belgian\n\ Brazilian (CP 275): brazilian\n\ #ifdef X3270_DBCS Chinese Simplified (CP 935): simplified-chinese\n\ Chinese GB 18030 (CP 1388): chinese-gb18030\n\ Chinese Traditional (CP 937): traditional-chinese\n\ #endif Finnish (CP 278): finnish\n\ French (CP 297): french\n\ German (CP 273): german\n\ Greek (CP 875): greek\n\ Hebrew (CP 424): hebrew\n\ Icelandic (CP 871): icelandic\n\ Italian (CP 280): italian\n\ #ifdef X3270_DBCS Japanese w/Kana (CP 930): japanese-kana\n\ Japanese w/Latin (CP 939): japanese-latin\n\ #endif Norwegian (CP 277): norwegian\n\ Open Systems (CP 1047): cp1047\n\ Polish (CP 870): cp870\n\ Russian (CP 880): russian\n\ Slovenian (CP 870): cp870\n\ Spanish (CP 284): spanish\n\ Thai (CP 1160): thai\n\ Turkish (CP 1026): turkish\n\ United Kingdom (CP 285): uk\n #endif ! ! Pseudo-colors for 3278 mode ! x3270.colorBackground: black ! x3270.selectBackground: dimGrey ! x3270.normalColor: green ! Note: the following values are the new defaults, which cause 3278's ! to display everything in green. ! x3270.inputColor: green ! x3270.boldColor: green ! To resurrect x3270's Pseudo-Color mode, which was how 3278's were ! displayed up through x3270 3.3.5, set the following resource values: ! x3270.inputColor: orange ! x3270.boldColor: cyan ! ! Cursors ! x3270.normalCursor: top_left_arrow ! x3270.waitCursor: watch ! x3270.lockedCursor: X_cursor ! ! Line-mode Telnet parameters ! x3270.icrnl: true ! x3270.inlcr: false ! x3270.erase: ^? ! x3270.kill: ^U ! x3270.werase: ^W ! x3270.rprnt: ^R ! x3270.lnext: ^V ! x3270.intr: ^C ! x3270.quit: ^\\ ! x3270.eof: ^D ! ! Toggles, using the same names as the "-set" and "-clear" options ! x3270.altCursor: false ! x3270.blankFill: false ! x3270.crosshair: false ! x3270.cursorBlink: false ! x3270.cursorPos: true ! x3270.dsTrace: false ! x3270.eventTrace: false ! x3270.lineWrap: true ! x3270.marginedPaste: false ! x3270.monoCase: false ! x3270.rectangleSelect: false ! x3270.screenTrace: false ! x3270.scrollBar: false ! x3270.showTiming: false ! ! Miscellaneous configuration parameters ! x3270.activeIcon: false ! x3270.allowResize: true ! x3270.bellVolume: 0 ! x3270.charset: bracket ! x3270.composeMap: latin1 ! x3270.connectFileName: ~/.x3270connect ! x3270.doConfirms: true ! x3270.debugTracing: true ! x3270.disconnectClear: false ! x3270.hostsFile: /usr/lib/X11/x3270/ibm_hosts ! x3270.highlightSelect: true ! x3270.idleCommand: ! x3270.idleTimeout: ~7m ! x3270.inputMethod: ! x3270.invertKeypadShift: false ! x3270.keymap: ! x3270.keypad: right ! x3270.keypadOn: false ! x3270.labelIcon: false ! x3270.m3279: false ! x3270.macros: ! x3270.menuBar: true ! x3270.modifiedSel: false ! x3270.modifiedSelColor: 10 ! x3270.model: 4 ! x3270.mono: false ! x3270.numericLock: false ! x3270.once: false ! x3270.pluginCommand: x3270hist.pl ! x3270.port: telnet ! x3270.preeditType: OverTheSpot+1 ! x3270.saveLines: 64 ! x3270.scripted: false ! x3270.suppressHost: false ! x3270.suppressFontMenu: false ! x3270.termName: ! x3270.traceDir: /tmp ! x3270.cursorColor: red ! (note: cursorColor is not used unless useCursorColor is true, below) ! x3270.useCursorColor: false ! x3270.visualBell: false ! x3270.visualSelect: false ! x3270.visualSelectColor: 6 ! ! Fonts listed on the Options menu and for screen resizing x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-1: \ 3270 Font (14 point): #resize 3270\n\ 8-point Font: #resize 3270gt8\n\ 12-point Font: #resize 3270-12\n\ 16-point Font: #resize 3270gt16\n\ 20-point Font: #resize 3270-20\n\ 24-point Font: #resize 3270gt24\n\ 32-point Font: #resize 3270gt32 x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-15: \ 3270 Font (14 point): #resize 3270\n\ 8-point Font: #resize 3270gt8\n\ 12-point Font: #resize 3270-12\n\ 16-point Font: #resize 3270gt16\n\ 20-point Font: #resize 3270-20\n\ 24-point Font: #resize 3270gt24\n\ 32-point Font: #resize 3270gt32 x3270.emulatorFontList.3270cg-1a,iso10646-1: 3270 x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-1+gb2312.1980-0,iso10646-1: \ 14-point 3270: 3270+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\ 20-point 3270: 3270-20+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\ 8x16: 8x16+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\ 12x24: 12x24+-isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0 x3270.emulatorFontList.iso10646-1,jisx0201.1976-0+jisx0208.1983-0,iso10646-1: \ 14-point: -misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0+-misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-0\n\ 16-point: -sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0+-jis-fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1983-0\n\ 18-point: -sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0+-misc-fixed-medium-r-normal-ja-18-120-100-100-c-180-iso10646-1\n\ 24-point: -sony-fixed-medium-r-normal--24-230-75-75-c-120-jisx0201.1976-0+-jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1983-0 x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-1+big5-0,iso10646-1: fixed+-wenquanyi-wenquanyi bitmap song-bold-r-normal--13-130-75-75-p-80-iso10646-1 #endif ! ! Print commands x3270.printTextCommand: lpr #ifndef STANDALONE x3270.printWindowCommand: xwd -id %d | xpr | lpr ! ! System V versions of print commands ! x3270.printTextCommand: lp ! x3270.printWindowCommand: xwd -id %d | xpr | lp ! ! Trace window command x3270.traceCommand: tail -f ! ! File transfer command ! x3270.ftCommand: ind$file ! ! Printer session options #endif #ifdef _WIN32 x3270.printer.assocCommandLine: wpr3287.exe -assoc %L% %R% %P% %I% %H% x3270.printer.luCommandLine: wpr3287.exe %R% %P% %I% %L%@%H% ! x3270.printer.name: #else x3270.printer.command: lpr x3270.printer.assocCommandLine: pr3287 -assoc %L% -command "%C%" %R% %P% "%H%" x3270.printer.luCommandLine: pr3287 -command "%C%" %R% %P% "%L%@%H%" #endif #ifndef STANDALONE ! ! Translation table for the '@server' pseudo-keymap, which is the keymap ! you get by default (in addition to the 'base' keymap, below). Maps server ! vendor strings to keymap names. x3270.serverKeymapList: \ Sun Microsystems, Inc.: sun_k5\n\ Hewlett-Packard Company: hp-k1\n ! ! Keymaps (keyboard and mouse mappings) ! ! Base keymap: What you get by default, in both 3270 and NVT modes. Any other ! user-specified keymap is logically added to this keymap. x3270.keymap.base: \ :Multi_key: Compose()\n\ Ctrl: HandleMenu(fileMenu)\n\ Ctrl: HandleMenu(optionsMenu)\n\ Ctrl: HandleMenu(hostMenu,macrosMenu)\n\ : SelectDown()\n\ ~Shift: SelectMotion()\n\ : ignore()\n\ : ignore()\n\ : insert-selection(PRIMARY)\n\ : start-extend()\n\ : select-extend()\n\ ~Shift: SelectUp(PRIMARY)\n\ ShiftInsert: insert-selection(PRIMARY)\n\ ShiftUp: KybdSelect(Up,PRIMARY)\n\ ShiftDown: KybdSelect(Down,PRIMARY)\n\ ShiftLeft: KybdSelect(Left,PRIMARY)\n\ ShiftRight: KybdSelect(Right,PRIMARY)\n\ ShiftF1: PF(13)\n\ ShiftF2: PF(14)\n\ ShiftF3: PF(15)\n\ ShiftF4: PF(16)\n\ ShiftF5: PF(17)\n\ ShiftF6: PF(18)\n\ ShiftF7: PF(19)\n\ ShiftF8: PF(20)\n\ ShiftF9: PF(21)\n\ ShiftF10: PF(22)\n\ ShiftF11: PF(23)\n\ ShiftF12: PF(24)\n\ MetaF1: PF(13)\n\ AltF1: PF(13)\n\ MetaF2: PF(14)\n\ AltF2: PF(14)\n\ MetaF3: PF(15)\n\ AltF3: PF(15)\n\ MetaF4: PF(16)\n\ AltF4: PF(16)\n\ MetaF5: PF(17)\n\ AltF5: PF(17)\n\ MetaF6: PF(18)\n\ AltF6: PF(18)\n\ MetaF7: PF(19)\n\ AltF7: PF(19)\n\ MetaF8: PF(20)\n\ AltF8: PF(20)\n\ MetaF9: PF(21)\n\ AltF9: PF(21)\n\ MetaF10: PF(22)\n\ AltF10: PF(22)\n\ MetaF11: PF(23)\n\ AltF11: PF(23)\n\ MetaF12: PF(24)\n\ AltF12: PF(24)\n\ :F1: PF(1)\n\ :F2: PF(2)\n\ :F3: PF(3)\n\ :F4: PF(4)\n\ :F5: PF(5)\n\ :F6: PF(6)\n\ :F7: PF(7)\n\ :F8: PF(8)\n\ :F9: PF(9)\n\ :F10: PF(10)\n\ :F11: PF(11)\n\ :F12: PF(12)\n\ :Print: PrintText()\n\ Altq: Quit()\n\ :dead_acute: Compose() Key(apostrophe)\n\ :dead_grave: Compose() Key(grave)\n\ :dead_circumflex: Compose() Key(asciicircum)\n\ :dead_tilde: Compose() Key(asciitilde)\n\ :dead_diaeresis: Compose() Key(quotedbl)\n ! ! Base keymap for 3270 mode. These mappings are added to the base keymap, ! but only when in 3270 mode. ! These were originally part of the base keymap, but were moved here, because ! they were no-ops in NVT mode, or interfered with NVT-mode data entry. ! ! Note that as yet, there is no x3270.keymap.base.nvt, which would define the ! base keymap extensions for NVT mode. ! x3270.keymap.base.3270: #override \ :Ctrl Shift: MouseSelect()\n\ Shift: MoveCursor()\n\ ShiftReturn: Newline()\n\ :Return: Enter()\n\ :Linefeed: Newline()\n\ :BackSpace: Erase()\n\ ShiftTab: BackTab()\n\ :MetaLeft: PreviousWord()\n\ :AltLeft: PreviousWord()\n\ :MetaRight: NextWord()\n\ :AltRight: NextWord()\n\ :Meta1: PA(1)\n\ :Alt1: PA(1)\n\ :Meta2: PA(2)\n\ :Alt2: PA(2)\n\ :Meta3: PA(3)\n\ :Alt3: PA(3)\n\ Metaa: Attn()\n\ Alta: Attn()\n\ Metab: PrintWindow()\n\ Altb: PrintWindow()\n\ Metac: Clear()\n\ Altc: Clear()\n\ Metad: Delete()\n\ Altd: Delete()\n\ Metae: EraseEOF()\n\ Alte: EraseEOF()\n\ Metaf: Flip()\n\ Altf: Flip()\n\ Metah: Home()\n\ Alth: Home()\n\ Metai: Insert()\n\ Alti: Insert()\n\ Metal: Redraw()\n\ Altl: Redraw()\n\ Metap: PrintText()\n\ Altp: PrintText()\n\ Metar: Reset()\n\ Altr: Reset()\n\ Metau: Unselect()\n\ Altu: Unselect()\n\ Ctrla: SelectAll(PRIMARY)\n\ Ctrlc: set-select(CLIPBOARD)\n\ Ctrlu: DeleteField()\n\ Ctrlw: DeleteWord()\n\ Ctrlv: insert-selection(CLIPBOARD)\n\ Altv: ToggleReverse()\n\ Metav: ToggleReverse() ! Keymap that exercises the optional history plugin. x3270.keymap.hist: ShiftPrior: Plugin(command,prev)\n\ ShiftNext: Plugin(command,next) ! Keymap that restores the old (pre 3.3) mouse-click behavior. x3270.keymap.oldclick: #override\n\ Ctrl: HandleMenu(fileMenu)\n\ Ctrl: HandleMenu(optionsMenu)\n\ Ctrl: HandleMenu(hostMenu,macrosMenu)\n\ : select-start()\n\ ~Shift: select-extend()\n\ : ignore()\n\ : ignore()\n\ : insert-selection(PRIMARY)\n\ : start-extend()\n\ : select-extend()\n\ ~Shift: select-end(PRIMARY) x3270.keymap.oldclick.3270: #override\n\ :Ctrl Shift: MouseSelect()\n\ Shift: MoveCursor() ! ! Start of keyboard-specific mappings. ! ! Sun Type 5 keyboard map. Not compatible with earlier Type 3 and Type 4 ! keymaps, but does a better job of mapping intuitive functions to the ! existing key labels, and has fewer surprises. x3270.keymap.sun_k5: \ Shift0x1005ff10: PF(23)\n\ Shift0x1005ff11: PF(24)\n\ :0x1005ff10: PF(11)\n\ :0x1005ff11: PF(12)\n\ ~@Num_LockF27: Home()\n\ ~@Num_LockF33: FieldEnd()\n\ :F18: insert-selection(PRIMARY)\n\ ShiftF22: SysReq()\n\ :F22: PrintText()\n\ KP_Enter: Newline()\n ! Sun Type 4 keyboard map, backwards-compatible with earlier versions of x3270. x3270.keymap.sun_k4: \ Shift0x1005ff10: PF(23)\n\ Shift0x1005ff11: PF(24)\n\ :0x1005ff10: PF(11)\n\ :0x1005ff11: PF(12)\n\ :KP_1: Key(1)\n\ :KP_2: Key(2)\n\ :KP_3: Key(3)\n\ :KP_4: Key(4)\n\ :KP_5: Key(5)\n\ :KP_6: Key(6)\n\ :KP_7: Key(7)\n\ :KP_8: Key(8)\n\ :KP_9: Key(9)\n\ :KP_0: Key(0)\n\ :KP_Decimal: Key(.)\n\ :F18: insert-selection(PRIMARY)\n\ :F19: SysReq()\n\ :F20: FieldMark()\n\ :F21: PA(1)\n\ :F22: PA(2)\n\ :F23: Dup()\n\ :F24: Reset()\n\ :F25: EraseEOF()\n\ :F26: EraseInput()\n\ :F27: Clear()\n\ :F29: Redraw()\n\ :F31: Home()\n\ :KP_Enter: Newline()\n\ :F35: Delete()\n ! Sun Type 3 keyboard. x3270.keymap.sun_k3: \ ShiftF21: PF(22)\n\ ShiftF22: PF(23)\n\ ShiftF23: PF(24)\n\ :MetaF21: PA(1)\n\ :MetaF22: PA(2)\n\ :MetaF23: Dup()\n\ :F19: SysReq()\n\ :0x0: FieldMark()\n\ :F21: PF(10)\n\ :F22: PF(11)\n\ :F23: PF(12)\n\ :F24: Reset()\n\ :F25: EraseEOF()\n\ :F26: EraseInput()\n\ :F27: Clear()\n\ :F31: Home()\n\ :F29: Redraw()\n\ :KP_Enter: Newline()\n\ :F35: Delete()\n x3270.keymap.ncd: \ :F13: Dup()\n\ :Linefeed: Dup()\n\ :F14: FieldMark()\n\ :Break: FieldMark()\n\ :Home: Home()\n\ :F17: Home()\n\ :End: EraseEOF()\n\ :F15: Reset()\n\ :Prior: Reset()\n\ :F16: Newline()\n\ :Next: Newline()\n\ :KP_Add: EraseInput()\n\ :Num_Lock: PF(13)\n\ :KP_Space: PF(13)\n\ :KP_Divide: PF(14)\n\ :KP_Multiply: PF(15)\n\ :KP_7: PF(16)\n\ :KP_8: PF(17)\n\ :KP_9: PF(18)\n\ :KP_4: PF(19)\n\ :KP_5: PF(20)\n\ :KP_6: PF(21)\n\ :KP_1: PF(22)\n\ :KP_2: PF(23)\n\ :KP_3: PF(24)\n\ :KP_Subtract: SysReq()\n\ :KP_0: PA(2)\n\ :KP_Decimal: PA(1)\n\ :KP_Enter: Clear()\n x3270.keymap.hp-k1: \ :KP_Tab: BackTab()\n\ :KP_Enter: Home()\n\ :KP_Separator: Delete()\n\ ShiftDelete: Delete()\n\ :Menu: EraseEOF()\n\ :KP_Multiply: PF(13)\n\ :KP_Divide: PF(14)\n\ :KP_Add: PF(15)\n\ :KP_7: PF(16)\n\ :KP_8: PF(17)\n\ :KP_9: PF(18)\n\ :KP_4: PF(19)\n\ :KP_5: PF(20)\n\ :KP_6: PF(21)\n\ :KP_1: PF(22)\n\ :KP_2: PF(23)\n\ :KP_3: PF(24)\n\ :KP_0: PA(2)\n\ :KP_Decimal: PA(1)\n ! Keymap for HP-PC101 workstation keyboard, Chris P-E x3270.keymap.hp-pc: \ :KP_Subtract: Compose()\n\ :KP_Enter: Enter()\n\ :Return: Newline()\n\ !F1: PF(1)\n\ !F2: PF(2)\n\ !F3: PF(3)\n\ !F4: PF(4)\n\ !F5: PF(5)\n\ !F6: PF(6)\n\ !F7: PF(7)\n\ !F8: PF(8)\n\ !F9: PF(9)\n\ !F10: PF(10)\n\ !F11: PF(11)\n\ !F12: PF(12)\n\ !ShifthpSystem: PF(13)\n\ !ShiftKP_Divide: PF(14)\n\ !ShiftKP_Multiply: PF(15)\n\ !ShiftKP_7: PF(16)\n\ !ShiftKP_8: PF(17)\n\ !ShiftKP_9: PF(18)\n\ !ShiftKP_4: PF(19)\n\ !ShiftKP_5: PF(20)\n\ !ShiftKP_6: PF(21)\n\ !ShiftKP_1: PF(22)\n\ !ShiftKP_2: PF(23)\n\ !ShiftKP_3: PF(24)\n\ !hpSystem: PF(1)\n\ !KP_Divide: PF(2)\n\ !KP_Multiply: PF(3)\n\ !KP_7: PF(4)\n\ !KP_8: PF(5)\n\ !KP_9: PF(6)\n\ !KP_4: PF(7)\n\ !KP_5: PF(8)\n\ !KP_6: PF(9)\n\ !KP_1: PF(10)\n\ !KP_2: PF(11)\n\ !KP_3: PF(12)\n\ !Break: Reset()\n\ !ShiftBreak: Attn()\n\ !MetaBreak: SysReq()\n\ !Prior: Dup()\n\ !Next: FieldMark()\n\ !Select: EraseEOF()\n\ !MetahpInsertChar: PA(1)\n\ !MetaHome: PA(2)\n\ !MetaPrior: PA(3)\n\ !hpInsertChar: Insert()\n\ !hpDeleteChar: Delete()\n\ !ShiftMenu: PrintWindow()\n\ !Menu: PrintText()\n ! Keymap for IBM X Terminal, Allan L. Bazinet x3270.keymap.ibm-xterm: \ :Execute: Enter()\n\ !Pause: Clear()\n\ !BackSpace: BackSpace()\Delete()\n\ !End: FieldEnd()\n\ !Altc: Clear()\n\ !AltPrint: SysReq()\n\ !CtrlHome: EraseInput()\n\ !CtrlEnd: EraseEOF()\n\ !ShiftTab: BackTab()\n\ :KP_Subtract: PA(1)\n\ :KP_Add: PA(2)\n\ :KP_Enter: Enter()\n\ :Prior: PA(1)\n\ :Next: PA(2)\n\ :Escape: Reset()\n\ :Control_L: Reset()\n\ :Insert: Insert()\n\ !ShiftRight: Right2()\n\ !ShiftLeft: Left2()\n ! Keymap for common 3270 functions on a PC keyboard, from Richard Lennox. x3270.keymap.rlx: #override \ Prior: PF(7)\n\ Next: PF(8)\n\ Control_R: Enter()\n\ Return: Newline()\n\ Pause: Clear()\n\ ShiftEscape: Attn()\n\ ShiftLeft: PreviousWord()\n\ ShiftRight: NextWord()\n\ CtrlLeft: PreviousWord()\n\ CtrlRight: NextWord()\n\ ShiftEnd: EraseEOF()\n\ End: FieldEnd() ! Keymap modifier for OpenWindows (makes button 2 the extend key; defines the ! Paste and Cut keys; uses CLIPBOARD). x3270.keymap.ow: #override \ ~Shift: select-start()\n\ ~Shift: select-extend()\n\ : start-extend()\n\ : select-extend()\n\ : ignore()\n\ : ignore()\n\ : insert-selection(CLIPBOARD,PRIMARY)\n\ : select-end(PRIMARY)\n\ :F16: set-select(CLIPBOARD)\n\ ShiftF18: insert-selection(PRIMARY)\n\ :F18: insert-selection(CLIPBOARD,PRIMARY)\n\ :F20: set-select(CLIPBOARD) Cut()\n ! APL keymap modifier. x3270.keymap.apl: #override \ !:Altbracketleft: Key(apl_leftarrow)\n\ !:Altbracketright: Key(apl_rightarrow)\n\ :bracketleft: Key(apl_bracketleft)\n\ :bracketright: Key(apl_bracketright)\n\ !:Alt1: Key(apl_diaeresis)\n\ !:Alt2: Key(apl_overbar)\n\ !:Alt3: Key(less)\n\ !:Alt4: Key(apl_notgreater)\n\ !:Alt5: Key(equal)\n\ !:Alt6: Key(apl_notless)\n\ !:Alt7: Key(greater)\n\ !:Alt8: Key(apl_notequal)\n\ !:Alt9: Key(apl_downcaret)\n\ !:Alt0: Key(apl_upcaret)\n\ !:Altminus: Key(apl_overbar)\n\ !:Altunderscore: Key(underscore)\n\ !:Alt=: Key(apl_multiply)\n\ !:Alt+: Key(apl_divide)\n\ !:Altasciitilde: Key(apl_tilde)\n\ !:Altbackslash: Key(apl_slope)\n\ !:Altbar: Key(apl_stile)\n\ :Alta: Key(apl_alpha)\n\ :Altb: Key(apl_downtack)\n\ :Altc: Key(apl_upshoe)\n\ :Altd: Key(apl_downstile)\n\ :Alte: Key(apl_epsilon)\n\ :Altf: Key(underscore)\n\ :Altg: Key(apl_del)\n\ :Alth: Key(apl_delta)\n\ :Alti: Key(apl_iota)\n\ :Altj: Key(apl_jot)\n\ :Altk: Key(apostrophe)\n\ :Altl: Key(apl_quad)\n\ :Altm: Key(apl_stile)\n\ :Altn: Key(apl_uptack)\n\ :Alto: Key(apl_circle)\n\ :Altp: Key(asterisk)\n\ :Altq: Key(question)\n\ :Altr: Key(apl_rho)\n\ :Alts: Key(apl_upstile)\n\ :Altt: Key(apl_tilde)\n\ :Altu: Key(apl_downarrow)\n\ :Altv: Key(apl_downshoe)\n\ :Altw: Key(apl_omega)\n\ :Altx: Key(apl_rightshoe)\n\ :Alty: Key(apl_uparrow)\n\ :Altz: Key(apl_leftshoe)\n\ :AltA: Key(apl_Aunderbar)\n\ :AltB: Key(apl_Bunderbar)\n\ :AltC: Key(apl_Cunderbar)\n\ :AltD: Key(apl_Dunderbar)\n\ :AltE: Key(apl_Eunderbar)\n\ :AltF: Key(apl_Funderbar)\n\ :AltG: Key(apl_Gunderbar)\n\ :AltH: Key(apl_Hunderbar)\n\ :AltI: Key(apl_Iunderbar)\n\ :AltJ: Key(apl_Junderbar)\n\ :AltK: Key(apl_Kunderbar)\n\ :AltL: Key(apl_Lunderbar)\n\ :AltM: Key(apl_Munderbar)\n\ :AltN: Key(apl_Nunderbar)\n\ :AltO: Key(apl_Ounderbar)\n\ :AltP: Key(apl_Punderbar)\n\ :AltQ: Key(apl_Qunderbar)\n\ :AltR: Key(apl_Runderbar)\n\ :AltS: Key(apl_Sunderbar)\n\ :AltT: Key(apl_Tunderbar)\n\ :AltU: Key(apl_Uunderbar)\n\ :AltV: Key(apl_Vunderbar)\n\ :AltW: Key(apl_Wunderbar)\n\ :AltX: Key(apl_Xunderbar)\n\ :AltY: Key(apl_Yunderbar)\n\ :AltZ: Key(apl_Zunderbar)\n ! ! Keymap for the "not" key, assumed to be above the "6" key on U.S. ! keyboards. This used to be part of the 3270 base keymap, but does not ! work properly on non-U.S. keyboards. x3270.keymap.not.3270: \ :asciicircum: Key(notsign) ! Helpful modifier to disply the translation table. x3270.keymap.t: \ Metat: XtDisplayTranslations()\n\ Altt: XtDisplayTranslations()\n ! International keymap modifiers. x3270.keymap.finnish7: \ :bracketleft: Key("adiaeresis")\n\ :bracketright: Key("aring")\n\ :backslash: Key("odiaeresis")\n\ :braceleft: Key("Adiaeresis")\n\ :braceright: Key("Aring")\n\ :bar: Key("Odiaeresis")\n x3270.keymap.norwegian7: \ :bracketleft: Key("ae")\n\ :backslash: Key("oslash")\n\ :bracketright: Key("aring")\n\ :braceleft: Key("AE")\n\ :bar: Key("Ooblique")\n\ :braceright: Key("Aring")\n\ :!Metau: Key("udiaeresis")\n\ :dollar: Key("currency")\n\ :at: Key("backslash")\n ! "Old" Norwegian keymap, compatible with older versions of x3270. x3270.keymap.oldnorwegian7: \ :bracketleft: Key("AE")\n\ :bracketright: Key("Aring")\n\ :backslash: Key("Ooblique")\n\ :braceleft: Key("ae")\n\ :braceright: Key("aring")\n\ :bar: Key("oslash")\n ! German keymap courtesy of Karlheinz Kandler x3270.keymap.german7: \ :bracketleft: Key("adiaeresis")\n\ :bracketright: Key("udiaeresis")\n\ :backslash: Key("odiaeresis")\n\ :braceleft: Key("Adiaeresis")\n\ :braceright: Key("Udiaeresis")\n\ :bar: Key("Odiaeresis")\n\ :asciicircum: Key("^")\n\ :asciitilde: Key("ssharp")\n\ :at: Key("section")\n ! Keymap modifier for RS/6000s with French AZERTY keyboards, which allows ! the diaeresis and circumflex keys to work intuitively (press diaereses, ! press "a", get "adiaeresis, etc.) x3270.keymap.fr6k: \ Shiftdead_diaeresis: Compose() Key(quotedbl)\n\ :dead_circumflex: Compose() Key(asciicircum)\n ! Icelandic keymap, courtesy of Rikhardur Egilsson x3270.keymap.icelandic: \ :dead_acute: Compose() Key(apostrophe)\n ! !============================================================================= ! Section 2: Labels and Messages ! ! These are resources that are likely to be modified for translation ! into another language. !============================================================================= ! x3270.errorPopup.title: x3270 Error x3270.errorPopup*cancelButton.label: Exit x3270.printerErrorPopup.title: x3270 Printer Error x3270.childErrorPopup.title: x3270 Child Process Error #ifdef X3270_MENUS x3270.infoPopup.title: x3270 Information x3270.printerInfoPopup.title: x3270 Printer Information x3270.childInfoPopup.title: x3270 Child Process Information x3270.connectPopup.title: x3270 Connect x3270.connectPopup.dialog.label: Enter Hostname x3270.fontPopup.title: x3270 Font x3270.fontPopup.dialog.label: Enter Font Name x3270.keymapPopup.title: x3270 Keymap x3270.keymapPopup.dialog.label: Enter Keymap Name x3270.oversizePopup.title: x3270 Oversize x3270.oversizePopup.dialog.label: Enter Dimensions (cols x rows) x3270.oversizePopup*confirmButton.label: Resize #endif #ifdef X3270_KEYPAD x3270.keypadPopup.title: x3270 Keypad #endif #ifdef X3270_MENUS x3270.printTextPopup.title: x3270 Screen Print x3270.printTextPopup.dialog.label: Enter Print Command x3270.printTextPopup*confirmButton.label: Print x3270.saveTextPopup.title: x3270 Screen Save x3270.saveTextPopup.dialog.label: Enter File Name x3270.saveTextPopup*confirmButton.label: Save as Text x3270.saveTextPopup*confirm2Button.label: Save as HTML x3270.printWindowPopup.title: x3270 Window Print x3270.printWindowPopup.dialog.label: Enter Print Command x3270.printWindowPopup*confirmButton.label: Print #endif #ifdef X3270_TRACE x3270.tracePopup.title: x3270 Tracing x3270.tracePopup.dialog.label: Enter Trace File Name x3270.tracePopup*confirmButton.label: Trace x3270.tracePopup*confirm2Button.label: No File x3270.screentracePopup.title: x3270 Screen Image Tracing x3270.screentracePopup.dialog.label: Enter File Name x3270.screentracePopup*confirmButton.label: Continuously x3270.screentracePopup*confirm2Button.label: Once #endif #ifdef X3270_MENUS x3270.executeActionPopup.title: x3270 Execute Action x3270.executeActionPopup.dialog.label: Enter Action and Parameters x3270.executeActionPopup*confirmButton.label: Execute x3270.saveOptionsPopup.title: x3270 Save Changed Options x3270.saveOptionsPopup.dialog.label: Enter Profile/Session File Name x3270.saveOptionsPopup*confirmButton.label: Save x3270.aboutCopyrightPopup.title: x3270 Copyright x3270.aboutConfigPopup.title: x3270 Configuration x3270.aboutStatusPopup.title: x3270 Connection Status x3270.connectPopup*confirmButton.label: Connect x3270.fontPopup*confirmButton.label: Select Font x3270.keymapPopup*confirmButton.label: Select Keymap #endif #ifdef X3270_FT x3270.ftPopup.title: x3270 File Transfer x3270.ftProgressPopup.title: x3270 File Transfer x3270.ftOverwritePopup.title: x3270 File Transfer #endif #ifdef X3270_SCRIPT x3270.idlePopup.title: x3270 Idle Command #endif x3270.kmPopup.title: x3270 Keymap x3270*confirmButton.label: OK x3270.printerErrorPopup*cancelButton.label: Abort Printer x3270.printerInfoPopup*cancelButton.label: Abort Printer x3270.childErrorPopup*cancelButton.label: Discard Output x3270.childInfoPopup*cancelButton.label: Discard Output x3270*cancelButton.label: Cancel #ifdef X3270_MENUS x3270*aboutOption.label: About x3270... x3270*aboutCopyright.label: Copyright x3270*aboutConfig.label: Configuration x3270*aboutStatus.label: Connection Status #ifdef X3270_FT x3270*ftOption.label: File Transfer... #endif #ifdef X3270_PRINTER x3270*printerOption.label: Printer Session x3270*assocButton.label: Start, associate with current LU x3270*luButton.label: Start, specific LU... x3270*printerOffButton.label: Stop Printer #endif x3270*abortScriptOption.label: Abort Scripts/Macros/Strings x3270*disconnectOption.label: Disconnect x3270*exitOption.label: Exit x3270 x3270*exitReallyOption.label: Disconnect and Exit x3270*printTextOption.label: Print Screen Text x3270*saveTextOption.label: Save Screen Text in File x3270*printWindowOption.label: Print Window Bitmap x3270*executeActionOption.label: Execute an Action x3270*fileMenuButton.label: File x3270*fileMenu.label: File #endif #ifdef X3270_FT x3270.ftPopup*justify: left x3270.ftPopup*send.label: Send to host x3270.ftPopup*receive.label: Receive from host x3270.ftPopup*ascii.label: Transfer ASCII file x3270.ftPopup*cr.label: Add/remove CR at end of line x3270.ftPopup*binary.label: Transfer binary file x3270.ftPopup*local.label: Local File Name x3270.ftPopup*host.label: Host File Name x3270.ftPopup*append.label: Append to file x3270.ftPopup*remap.label: Remap ASCII Characters x3270.ftPopup*vm.label: Host is VM/CMS x3270.ftPopup*tso.label: Host is TSO x3270.ftPopup*confirmButton.label: Transfer File x3270.ftPopup*file.label: Record Format x3270.ftPopup*recfmDefault.label: Default x3270.ftPopup*fixed.label: Fixed x3270.ftPopup*variable.label: Variable x3270.ftPopup*undefined.label: Undefined x3270.ftPopup*units.label: Space Allocation Units x3270.ftPopup*spaceDefault.label: Default x3270.ftPopup*tracks.label: Tracks x3270.ftPopup*cylinders.label: Cylinders x3270.ftPopup*avblock.label: Avblock x3270.ftPopup*lrecl.label: LRECL x3270.ftPopup*blksize.label: BLKSIZE x3270.ftPopup*primspace.label: Primary Space x3270.ftPopup*secspace.label: Secondary Space x3270.ftPopup*buffersize.label: DFT Buffer Size x3270.ftProgressPopup*fromLabel.label: Source: x3270.ftProgressPopup*fromLabel.justify: right x3270.ftProgressPopup*toLabel.label: Destination: x3270.ftProgressPopup*toLabel.justify: right x3270.ftProgressPopup*filename.justify: left x3270.ftOverwritePopup*overwriteName.label: Overwrite existing file %s? x3270.ftProgressPopup*waiting.label: Waiting for host acknowledgment... x3270.ftProgressPopup*status.label: %lu bytes transferred x3270.ftProgressPopup*aborting.label: Aborting transfer... #endif #ifdef X3270_SCRIPT x3270.idlePopup*justify: left x3270.idlePopup*command.label: Command(s) x3270.idlePopup*timeout.label: Timeout Value x3270.idlePopup*enable.label: Enable for this session x3270.idlePopup*enablePerm.label: Enable whenever connected x3270.idlePopup*disable.label: Disable x3270.idlePopup*hours.label: Hours x3270.idlePopup*minutes.label: Minutes x3270.idlePopup*seconds.label: Seconds x3270.idlePopup*fuzz.label: Vary time 0..10% #endif #ifdef X3270_PRINTER x3270.printerLuPopup.title: x3270 Printer Session x3270.printerLuPopup.dialog.label: Enter LU Name x3270.printerLuPopup*confirmButton.label: Start Session #endif #ifdef X3270_MENUS x3270*optionsMenuButton.label: Options x3270*optionsMenu.label: Options x3270*connectMenuButton.label: Connect x3270*macrosMenuButton.label: Macros x3270*macrosMenu.label: Macros x3270*hostMenu.label: Connect x3270*helpButton.label: Help x3270*otherHostOption.label: Other... x3270*togglesOption.label: Toggles x3270*fontsOption.label: Font x3270*modelsOption.label: Screen Size x3270*colorsOption.label: Color Scheme x3270*charsetOption.label: Character Set x3270*keymapOption.label: Change Keymap... x3270*idleCommandOption.label: Configure Idle Command x3270*keypadOption.label: Keypad x3270*monocaseOption.label: Monocase x3270*cursorBlinkOption.label: Blinking Cursor x3270*showTimingOption.label: Show Timing x3270*cursorPosOption.label: Track Cursor x3270*dsTraceOption.label: Trace Data Stream x3270*eventTraceOption.label: Trace Keyboard/Mouse Events x3270*screenTraceOption.label: Save Screen(s) in File x3270*scrollBarOption.label: Scrollbar x3270*lineWrapOption.label: Wraparound x3270*marginedPasteOption.label: Paste with Left Margin x3270*rectangleSelectOption.label: Select by Rectangles x3270*blankFillOption.label: Blank Fill x3270*crosshairOption.label: Crosshair Cursor x3270*visibleControlOption.label: Visible Control Chars x3270*underlineCursorOption.label: Underline Cursor x3270*blockCursorOption.label: Block Cursor x3270*otherFontOption.label: Other... x3270*lineModeOption.label: Line Mode x3270*characterModeOption.label: Character Mode x3270*extendedDsOption.label: Extended 3270 Data Stream x3270*m3278Option.label: Monochrome (3278) Emulation x3270*m3279Option.label: Color (3279) Emulation x3270*model2Option.label: Model 2 (80x24) x3270*model3Option.label: Model 3 (80x32) x3270*model4Option.label: Model 4 (80x43) x3270*model5Option.label: Model 5 (132x27) x3270*oversizeOption.label: Oversize... x3270*saveOption.label: Save Changed Options #endif ! ! Messages #ifdef X3270_MENUS x3270.message.processId: Process ID: x3270.message.windowId: Main window ID: x3270.message.model: Model x3270.message.rows: rows x3270.message.columns: columns x3270.message.mono: monochrome x3270.message.fullColor: color x3270.message.pseudoColor: pseudo-color x3270.message.extendedDs: extended data stream x3270.message.standardDs: standard data stream x3270.message.terminalName: Terminal name: x3270.message.luName: LU name: x3270.message.bindPluName: BIND PLU name: x3270.message.emulatorFont: Emulator font: x3270.message.emulatorFontDbcs: DBCS emulator font: x3270.message.xFont: standard X11 font x3270.message.cgFont: special 3270 CG font x3270.message.charset: Host EBCDIC character set: x3270.message.sbcsCgcsgid: Host SBCS CGCSGID: x3270.message.dbcsCgcsgid: Host DBCS CGCSGID: x3270.message.defaultCharacterSet: Default (us) EBCDIC character set x3270.message.displayCharacterSet: Display character set: x3270.message.displayCharacterSetDbcs: DBCS display character set: x3270.message.localeCodeset: Locale codeset: x3270.message.require: require x3270.message.have: have x3270.message.keyboardMap: Keyboard map: x3270.message.defaultKeyboardMap: Default keyboard map x3270.message.composeMap: Compose-key map: x3270.message.noComposeMap: No compose-key map x3270.message.activeIcon: Active icon x3270.message.iconFont: Icon font: x3270.message.iconLabelFont: Icon label font: x3270.message.staticIcon: Static bitmap icon x3270.message.connectedTo: Connected to: x3270.message.port: Port: x3270.message.secure: via TLS/SSL x3270.message.proxyType: Proxy type: x3270.message.server: Server: x3270.message.charMode: NVT character mode x3270.message.lineMode: NVT line mode x3270.message.dsMode: 3270 mode x3270.message.sscpMode: SSCP-LU mode x3270.message.tn3270eOpts: TN3270E options: x3270.message.tn3270eNoOpts: No TN3270E options x3270.message.connectionPending: Connection pending to: x3270.message.notConnected: Not connected x3270.message.specialCharacters: Special characters: x3270.message.hour: hour x3270.message.hours: hours x3270.message.minute: minute x3270.message.minutes: minutes x3270.message.second: second x3270.message.seconds: seconds x3270.message.sent: Sent x3270.message.Received: Received x3270.message.received: received x3270.message.byte: byte x3270.message.bytes: bytes x3270.message.record: record x3270.message.records: records x3270.message.statusDbcs: DBCS x3270.message.statusNotConnected: Not Connected x3270.message.statusTwait: Wait x3270.message.statusSyswait: System x3270.message.statusProtected: Protected x3270.message.statusNumeric: Numeric x3270.message.statusOverflow: Overflow x3270.message.statusInhibit: Inhibit x3270.message.statusScrolled: Scrolled x3270.message.statusMinus: No Function #endif x3270.message.statusConnecting: Connecting #endif #ifdef X3270_FT x3270.message.ftComplete: Transfer complete, %i bytes transferred\n\ %sbytes/sec in %s mode x3270.message.ftUnable: Cannot begin transfer x3270.message.ftStartTimeout: Transfer did not start within 10s x3270.message.ftUserCancel: Transfer cancelled by user x3270.message.ftHostCancel: Transfer cancelled by host x3270.message.ftCutUnknownFrame: Unknown frame type from host x3270.message.ftCutUnknownControl: Unknown FT control code from host x3270.message.ftCutRetransmit: Transmission error x3270.message.ftCutConversionError: Data conversion error x3270.message.ftCutOversize: Illegal frame length x3270.message.ftDisconnected: Host disconnected, transfer cancelled x3270.message.ftNot3270: Not in 3270 mode, transfer cancelled x3270.message.ftDftUnknownOpen: Uknown DFT Open type from host #endif x3270.message.inputMethod: X11 Input Method (XIM): x3270.message.ximState: state: x3270.message.ximDisabled: failed x3270.message.ximNotFound: not found x3270.message.ximActive: active x3270.message.ximLocale: locale: x3270.message.ximEncoding: encoding: #ifndef STANDALONE x3270.message.kmEvent: Event x3270.message.kmKeymapLine: Keymap:Line x3270.message.kmActions: Actions x3270.message.kmOverridden: \ -- overridden -- x3270.message.kmKeymap: Keymap x3270.message.kmTemporaryKeymap: Temporary keymap x3270.message.kmFile: from file x3270.message.kmResource: from resource x3270.message.kmFromServer: \ (expanded from '@server') ! !============================================================================= ! Section 3: Base-Level Resources ! ! Resources required for the basic operation of x3270, not for the ! faint-hearted to modify. !============================================================================= ! ! App-defaults file version x3270.adVersion: 3.3.4 ! ! Fonts #ifdef X3270_APL x3270.aplFont: 3270 #endif x3270.debugFont: 3270d x3270.iconFont: nil2 x3270.iconLabelFont: 8x13 #ifdef X3270_KEYPAD x3270*keyPad*large*font: fixed x3270*keyPad*small*font: -*-fixed-medium-r-semicondensed-*-12-*-* #endif x3270*value*font: fixed x3270*dataLabel.font: -*-courier-medium-r-normal--14-*-100-100-m-*-iso8859-1 !x3270*smallLabel.font: 5x7 x3270*smallLabel.font: 6x13 x3270*filename*font: fixed x3270*kmPopup*text*font: fixed x3270*font: -*-helvetica-bold-r-normal--14-*-100-100-p-*-iso8859-1 ! ! Menu configuration #ifdef X3270_MENUS x3270*menuBarContainer.borderWidth: 2 #endif #ifdef COLOR #ifdef X3270_KEYPAD x3270.keypadBackground: grey #endif #ifdef X3270_MENUS x3270*menuBarContainer.background: grey x3270*menuBarContainer.borderColor: grey40 x3270*fileMenuButton*background: grey x3270*optionsMenuButton*background: grey x3270*connectMenuButton*background: grey x3270*macrosMenuButton*background: grey x3270*helpButton*background: grey x3270*keypadButton*background: grey x3270*lockedIcon*background: grey x3270*lockedIcon*foreground: yellow4 x3270*lockedIcon*borderColor: grey x3270*unlockedIcon*background: grey x3270*unlockedIcon*borderColor: grey x3270*fileMenuButton*borderColor: grey x3270*optionsMenuButton*borderColor: grey x3270*connectMenuButton*borderColor: grey x3270*macrosMenuButton*borderColor: grey x3270*helpButton*borderColor: grey #endif #else #ifdef X3270_MENUS x3270*fileMenuButton*borderColor: XtDefaultBackground x3270*optionsMenuButton*borderColor: XtDefaultBackground x3270*connectMenuButton*borderColor: XtDefaultBackground x3270*macrosMenuButton*borderColor: XtDefaultBackground x3270*helpButton*borderColor: XtDefaultBackground #endif #endif #ifdef X3270_MENUS x3270*fileMenuButton*highlightThickness: 1 x3270*optionsMenuButton*highlightThickness: 1 x3270*connectMenuButton*highlightThickness: 1 x3270*macrosMenuButton*highlightThickness: 1 x3270*helpButton*highlightThickness: 1 x3270*keypadButton*highlightThickness: 1 #ifdef COLOR x3270*fileMenu*background: grey x3270*exitMenu*background: grey x3270*optionsMenu*background: grey x3270*hostMenu*background: grey x3270*macrosMenu*background: grey x3270*togglesMenu*background: grey x3270*fontsMenu*background: grey x3270*modelsMenu*background: grey x3270*colorsMenu*background: grey x3270*charsetMenu*background: grey x3270*printerMenu*background: grey #endif x3270*fileMenu.borderWidth: 2 x3270*exitMenu.borderWidth: 2 x3270*optionsMenu.borderWidth: 2 x3270*hostMenu.borderWidth: 2 x3270*macrosMenu.borderWidth: 2 x3270*togglesMenu.borderWidth: 2 x3270*fontsMenu.borderWidth: 2 x3270*modelsMenu.borderWidth: 2 x3270*colorsMenu.borderWidth: 2 x3270*charsetMenu.borderWidth: 2 #ifdef COLOR x3270*fileMenu.borderColor: grey40 x3270*exitMenu.borderColor: grey40 x3270*optionsMenu.borderColor: grey40 x3270*hostMenu.borderColor: grey40 x3270*macrosMenu.borderColor: grey40 x3270*togglesMenu.borderColor: grey40 x3270*fontsMenu.borderColor: grey40 x3270*modelsMenu.borderColor: grey40 x3270*colorsMenu.borderColor: grey40 x3270*charsetMenu.borderColor: grey40 #endif x3270*fileMenu*leftMargin: 20 x3270*fileMenu*rightMargin: 20 x3270*optionsMenu*rightMargin: 20 x3270*togglesMenu*leftMargin: 20 x3270*fontsMenu*leftMargin: 20 x3270*fontsMenu*rightMargin: 20 x3270*modelsMenu*leftMargin: 20 x3270*colorsMenu*leftMargin: 20 x3270*colorsMenu*rightMargin: 20 x3270*charsetMenu*leftMargin: 20 x3270*charsetMenu*rightMargin: 20 x3270*hostMenu*rightMargin: 20 x3270*macrosMenu*rightMargin: 20 #endif ! ! Confirm and cancel buttons ! borderWidth and borderColor are never specified anywhere else, so these ! always apply x3270*confirmButton.borderWidth: 2 x3270*confirm2Button*borderWidth: 2 x3270*cancelButton*borderWidth: 2 #ifdef COLOR x3270**confirmButton.borderColor: grey40 x3270**confirmButton.borderColor: grey40 x3270**confirm2Button.borderColor: grey40 x3270**cancelButton.borderColor: grey40 #endif ! foreground and background are often overridden by other resources, so they ! must be specified explicitly for each instance #ifdef COLOR x3270*dialog*confirmButton.foreground: black x3270*dialog*confirmButton.background: grey80 x3270*dialog*confirm2Button.background: grey80 x3270*dialog*cancelButton.foreground: firebrick x3270*dialog*cancelButton.background: grey80 #endif ! ! Values ! borderWidth and borderColor are never specified anywhere else, so these ! always apply #ifdef COLOR x3270*value.borderWidth: 2 x3270*value.borderColor: grey40 #endif ! background is overridden by dialog*background, so it must be specified ! explicitly #ifdef COLOR x3270*dialog*value*background: lavender #endif ! ! Overall defaults for dialog boxes #ifdef COLOR x3270*dialog*background: grey x3270*dialog*foreground: black #endif ! ! Fixed popup sizes x3270.errorPopup.width: 500 x3270.printerErrorPopup.width: 500 x3270.childErrorPopup.width: 500 x3270.infoPopup.width: 500 x3270.printerInfoPopup.width: 500 x3270.childInfoPopup.width: 500 x3270.printerLuPopup.width: 300 x3270.connectPopup.width: 300 x3270.fontPopup.width: 300 x3270.keymapPopup.width: 300 x3270.oversizePopup.width: 300 x3270.printTextPopup.width: 300 x3270.saveTextPopup.width: 300 x3270.printWindowPopup.width: 300 x3270.tracePopup.width: 300 x3270.screentracePopup.width: 300 x3270.executeActionPopup.width: 300 x3270.saveOptionsPopup.width: 300 ! ! Nondefault definitions for complex pop-ups #ifdef COLOR x3270.aboutCopyrightPopup*icon.foreground: darkslateblue x3270.aboutConfigPopup*icon.foreground: darkslateblue x3270.aboutStatusPopup*icon.foreground: darkslateblue x3270.errorPopup*label.foreground: firebrick x3270.printerErrorPopup*label.foreground: firebrick x3270.childErrorPopup*label.foreground: firebrick #ifdef X3270_FT x3270.ftProgressPopup*filename.borderWidth: 2 x3270.ftProgressPopup*filename.borderColor: grey40 x3270.ftProgressPopup*filename.background: lavender #endif #endif ! #ifdef X3270_KEYPAD ! Keypad key dimensions, in pixels x3270.keypad.keyHeight: 24 x3270.keypad.keyWidth: 48 x3270.keypad.pfWidth: 32 x3270.keypad.paWidth: 36 x3270.keypad.largeKeyWidth: 56 #endif ! ! Keymap display pop-up ! x3270*keymapDisplayOption.label: Display Current Keymap x3270.kmPopup*label.label: Current Keyboard Map x3270.kmPopup*sortActionOption.label: Sort by Action x3270.kmPopup*sortKeymapOption.label: Sort by Keymap x3270.kmPopup*sortEventOption.label: Sort by Event x3270.kmPopup*text*background: lavender x3270.kmPopup*text*foreground: black x3270.kmPopup*text.height: 250 x3270.kmPopup*text.width: 500 ! ! Basic event translations -- these should NEVER be changed without significant ! code changes x3270.translations: #override \n\ WM_PROTOCOLS: PA-WMProtocols()\n\ : PA-KeymapNotify()\n\ WM_STATE: PA-StateChanged()\n\ : PA-Focus()\n\ : PA-Focus()\n\ : PA-ConfigureNotify() x3270.container.translations: #override \n\ Shift_L: PA-Shift()\n\ Shift_L: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_R: PA-Shift()\n\ Alt_R: PA-Shift()\n\ :: Default()\n\ :: Default()\n\ :: Default() x3270*screen.translations: #override \n\ : PA-Expose()\n\ : PA-VisibilityNotify()\n\ : PA-GraphicsExpose()\n\ Shift_L: PA-Shift()\n\ Shift_L: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_R: PA-Shift()\n\ Alt_R: PA-Shift()\n\ :: Default()\n\ :: Default()\n\ :: Default() x3270icon.translations: #override \n\ : PA-Expose() #ifdef X3270_KEYPAD x3270.keypadPopup.translations: #override \n\ WM_PROTOCOLS: PA-WMProtocols()\n\ : PA-KeymapNotify()\n\ : PA-EnterLeave()\n\ : PA-EnterLeave() x3270.keypadPopup.container.translations: #override \n\ Shift_L: PA-Shift()\n\ Shift_L: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_R: PA-Shift()\n\ Alt_R: PA-Shift()\n\ :: Default() #endif x3270.errorPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printerErrorPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.childErrorPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.errorPopup*translations: #override \n\ Return: PA-confirm() x3270.printerErrorPopup*translations: #override \n\ Return: PA-confirm() x3270.childErrorPopup*translations: #override \n\ Return: PA-confirm() x3270.infoPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printerInfoPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.childInfoPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.infoPopup*translations: #override \n\ Return: PA-confirm() x3270.printerInfoPopup*translations: #override \n\ Return: PA-confirm() x3270.childInfoPopup*translations: #override \n\ Return: PA-confirm() #ifdef X3270_MENUS x3270.connectPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.fontPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.keymapPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printTextPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.saveTextPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printWindowPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.tracePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.screentracePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.executeActionPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.saveOptionsPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutCopyrightPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutCopyrightPopup*translations: #override \n\ Return: PA-confirm() x3270.aboutConfigPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutConfigPopup*translations: #override \n\ Return: PA-confirm() x3270.aboutStatusPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutStatusPopup*translations: #override \n\ Return: PA-confirm() x3270.kmPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.kmPopup*translations: #override \n\ Return: PA-confirm() x3270.luPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() #endif #ifdef X3270_FT x3270.ftPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() ! Note: WM_PROTOCOLS is explicitly not defined for ftPopup, so that the user ! can clear error conditions while a transfer is in progress. x3270.ftOverwritePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.ftPopup*value.translations: #override \n\ Return: PA-dialog-next()\n\ Tab: PA-dialog-next()\n\ : PA-dialog-focus() select-start()\n\ CtrlU: select-all(DUMMY) delete-selection() #endif #ifdef X3270_SCRIPT x3270.idlePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.idlePopup*value.translations: #override \n\ Return: PA-dialog-next()\n\ Tab: PA-dialog-next()\n\ : PA-dialog-focus() select-start()\n\ CtrlU: select-all(DUMMY) delete-selection() #endif x3270*value.translations: #override \n\ Return: PA-confirm()\n\ CtrlU: select-all(DUMMY) delete-selection() x3270*value.width: 200 ! Workaround for Xaw MenuButton bug that keeps menu items from highlighting ! when CapsLock or NumLock are down. Technically, this would require ! translations for all permutations of all 8 modifiers: shift, lock, control, ! mod1, mod2, mod3, mod4 and mod5. However, we will leave out shift and ! control, since they are "voluntary" key presses and would quadruple the ! size of this resource. x3270*MenuButton.translations: #override \n\ Lock: reset() PopupMenu()\n\ Mod1: reset() PopupMenu()\n\ Lock Mod1: reset() PopupMenu()\n\ Mod2: reset() PopupMenu()\n\ Lock Mod2: reset() PopupMenu()\n\ Mod1 Mod2: reset() PopupMenu()\n\ Lock Mod1 Mod2: reset() PopupMenu()\n\ Mod3: reset() PopupMenu()\n\ Lock Mod3: reset() PopupMenu()\n\ Mod1 Mod3: reset() PopupMenu()\n\ Lock Mod1 Mod3: reset() PopupMenu()\n\ Mod2 Mod3: reset() PopupMenu()\n\ Lock Mod2 Mod3: reset() PopupMenu()\n\ Mod1 Mod2 Mod3: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3: reset() PopupMenu()\n\ Mod4: reset() PopupMenu()\n\ Lock Mod4: reset() PopupMenu()\n\ Mod1 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod4: reset() PopupMenu()\n\ Mod2 Mod4: reset() PopupMenu()\n\ Lock Mod2 Mod4: reset() PopupMenu()\n\ Mod1 Mod2 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod4: reset() PopupMenu()\n\ Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod3 Mod4: reset() PopupMenu()\n\ Mod1 Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod3 Mod4: reset() PopupMenu()\n\ Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Mod1 Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Mod5: reset() PopupMenu()\n\ Lock Mod5: reset() PopupMenu()\n\ Mod1 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod5: reset() PopupMenu()\n\ Mod2 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod5: reset() PopupMenu()\n\ Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod3 Mod5: reset() PopupMenu()\n\ Mod1 Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod3 Mod5: reset() PopupMenu()\n\ Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod4 Mod5: reset() PopupMenu()\n\ Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Mod2 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3 Mod4 Mod5: reset() PopupMenu() #endif ! Default compose-key map. ! Each line is of the form "keysym1 + keysym2 = keysym3", meaning "when the ! Compose key is pressed, followed by keysym1 and keysym2 (in either order), ! interpret it as keysym3." The definitions are case-sensitive. x3270.composeMap.latin1: \ c + bar = cent \n\ c + slash = cent \n\ L + minus = sterling \n\ Y + equal = yen \n\ S + S = section \n\ C + O = copyright \n\ a + underscore = ordfeminine \n\ less + less = guillemotleft \n\ R + O = registered \n\ plus + minus = plusminus \n\ o + underscore = masculine \n\ greater + greater = guillemotright \n\ 1 + 4 = onequarter \n\ 1 + 2 = onehalf \n\ 3 + 4 = threequarters \n\ bar + bar = brokenbar \n\ A + grave = Agrave \n\ A + apostrophe = Aacute \n\ A + asciicircum = Acircumflex \n\ A + asciitilde = Atilde \n\ A + quotedbl = Adiaeresis \n\ A + asterisk = Aring \n\ A + E = AE \n\ C + comma = Ccedilla \n\ C + apostrophe = Ccedilla \n\ E + grave = Egrave \n\ E + apostrophe = Eacute \n\ E + asciicircum = Ecircumflex \n\ E + quotedbl = Ediaeresis \n\ I + grave = Igrave \n\ I + apostrophe = Iacute \n\ I + asciicircum = Icircumflex \n\ I + quotedbl = Idiaeresis \n\ N + asciitilde = Ntilde \n\ O + grave = Ograve \n\ O + apostrophe = Oacute \n\ O + asciicircum = Ocircumflex \n\ O + asciitilde = Otilde \n\ O + quotedbl = Odiaeresis \n\ O + slash = Ooblique \n\ U + grave = Ugrave \n\ U + apostrophe = Uacute \n\ U + asciicircum = Ucircumflex \n\ U + quotedbl = Udiaeresis \n\ Y + apostrophe = Yacute \n\ s + s = ssharp \n\ a + grave = agrave \n\ a + apostrophe = aacute \n\ a + asciicircum = acircumflex \n\ a + asciitilde = atilde \n\ a + quotedbl = adiaeresis \n\ a + asterisk = aring \n\ a + e = ae \n\ c + comma = ccedilla \n\ c + apostrophe = ccedilla \n\ e + grave = egrave \n\ e + apostrophe = eacute \n\ e + asciicircum = ecircumflex \n\ e + quotedbl = ediaeresis \n\ i + grave = igrave \n\ i + apostrophe = iacute \n\ i + asciicircum = icircumflex \n\ i + quotedbl = idiaeresis \n\ n + asciitilde = ntilde \n\ o + grave = ograve \n\ o + apostrophe = oacute \n\ o + asciicircum = ocircumflex \n\ o + asciitilde = otilde \n\ o + quotedbl = odiaeresis \n\ o + slash = oslash \n\ u + grave = ugrave \n\ u + apostrophe = uacute \n\ u + asciicircum = ucircumflex \n\ u + quotedbl = udiaeresis \n\ y + apostrophe = yacute \n\ y + quotedbl = ydiaeresis \n\ apostrophe + apostrophe = apostrophe \n\ apostrophe + space = apostrophe \n\ asciicircum + asciicircum = asciicircum \n\ asciicircum + space = asciicircum \n\ asciitilde + asciitilde = asciitilde \n\ asciitilde + space = asciitilde \n\ grave + grave = grave \n\ grave + space = grave \n\ quotedbl + quotedbl = quotedbl \n\ quotedbl + space = quotedbl \n #ifndef STANDALONE #ifdef X3270_APL ! ! Compose-key map for APL. x3270.composeMap.apl: \ A + underscore = apl_Aunderbar \n\ B + underscore = apl_Bunderbar \n\ C + underscore = apl_Cunderbar \n\ D + underscore = apl_Dunderbar \n\ E + underscore = apl_Eunderbar \n\ F + underscore = apl_Funderbar \n\ G + underscore = apl_Gunderbar \n\ H + underscore = apl_Hunderbar \n\ I + underscore = apl_Iunderbar \n\ J + underscore = apl_Junderbar \n\ K + underscore = apl_Kunderbar \n\ L + underscore = apl_Lunderbar \n\ M + underscore = apl_Munderbar \n\ N + underscore = apl_Nunderbar \n\ O + underscore = apl_Ounderbar \n\ P + underscore = apl_Punderbar \n\ Q + underscore = apl_Qunderbar \n\ R + underscore = apl_Runderbar \n\ S + underscore = apl_Sunderbar \n\ T + underscore = apl_Tunderbar \n\ U + underscore = apl_Uunderbar \n\ V + underscore = apl_Vunderbar \n\ W + underscore = apl_Wunderbar \n\ X + underscore = apl_Xunderbar \n\ Y + underscore = apl_Yunderbar \n\ Z + underscore = apl_Zunderbar \n\ apl_upcaret + apl_downcaret = apl_diamond \n\ apl_quad + apl_jot = apl_quadjot \n\ apl_iota + underscore = apl_iotaunderbar \n\ apl_epsilon + underscore = apl_epsilonunderbar \n\ less + equal = apl_notgreater \n\ plus + minus = apl_plusminus \n\ greater + equal = apl_notless \n\ equal + slash = apl_notequal \n\ apl_upcaret + apl_tilde = apl_upcarettilde \n\ apl_upcaret + asciitilde = apl_upcarettilde \n\ apl_downcaret + apl_tilde = apl_downcarettilde \n\ apl_downcaret + asciitilde = apl_downcarettilde \n\ apl_circle + apl_stile = apl_circlestile \n\ apl_circle + bar = apl_circlestile \n\ apl_quad + apl_slope = apl_slopequad \n\ apl_quad + backslash = apl_slopequad \n\ apl_circle + apl_slope = apl_circleslope \n\ apl_circle + backslash = apl_circleslope \n\ apl_downtack + apl_uptack = apl_downtackup \n\ apostrophe + period = apl_quotedot \n\ apl_del + apl_stile = apl_delstile \n\ apl_del + bar = apl_delstile \n\ apl_delta + apl_stile = apl_deltastile \n\ apl_delta + bar = apl_deltastile \n\ apl_quad + apostrophe = apl_quadquote \n\ apl_upshoe + apl_jot = apl_upshoejot \n\ slash + minus = apl_slashbar \n\ apl_slope + minus = apl_slopebar \n\ backslash + minus = apl_slopebar \n\ apl_diaeresis + period = apl_diaeresisdot \n\ apl_circle + minus = apl_circlebar \n\ apl_quad + apl_divide = apl_quaddivide \n\ apl_uptack + apl_jot = apl_uptackjot \n\ apl_del + apl_tilde = apl_deltilde \n\ apl_del + asciitilde = apl_deltilde \n\ apl_delta + underscore = apl_deltaunderbar \n\ apl_circle + asterisk = apl_circlestar \n\ apl_downtack + apl_jot = apl_downtackjot \n\ equal + underscore = apl_equalunderbar \n\ apl_quad + apl_quad = apl_squad \n\ apl_diaeresis + apl_jot = apl_diaeresisjot \n\ apl_diaeresis + apl_circle = apl_diaeresiscircle \n\ comma + minus = apl_commabar \n\ c + equal = apl_euro \n\ C + equal = apl_euro \n\ minus + parenleft = apl_lefttack \n\ minus + parenright = apl_righttack \n #endif #endif #ifdef STANDALONE #ifdef _WIN32 ! wc3270 keymap for more 3270-ish behavior: The Enter key is Newline and the ! Right-Ctrl key is Enter. x3270.keymap.rctrl.3270: \ RightCtrlCTRL: Enter()\n\ Return: Newline() #endif #endif ibm-3270-3.3.10ga4/wc3270/c3270.c0000644000175000017500000010670011254565674015030 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * c3270.c * A curses-based 3270 Terminal Emulator * A Windows console 3270 Terminal Emulator * Main proceudre. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "gluec.h" #include "hostc.h" #include "idlec.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "printerc.h" #include "screenc.h" #include "statusc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "utf8c.h" #include "utilc.h" #include "xioc.h" #if defined(HAVE_LIBREADLINE) /*[*/ #include #if defined(HAVE_READLINE_HISTORY_H) /*[*/ #include #endif /*]*/ #endif /*]*/ #if defined(_WIN32) /*[*/ #include #include "w3miscc.h" #include "winversc.h" #include "windirsc.h" #include "relinkc.h" #include #endif /*]*/ #if defined(_WIN32) /*[*/ # define PROGRAM_NAME "wc3270" #else /*][*/ # define PROGRAM_NAME "c3270" #endif /*]*/ #if defined(_WIN32) /*[*/ # define DELENV "WC3DEL" #endif /*]*/ static void interact(void); static void stop_pager(void); #if defined(HAVE_LIBREADLINE) /*[*/ static CPPFunction attempted_completion; static char *completion_entry(const char *, int); #endif /*]*/ /* Pager state. */ #if !defined(_WIN32) /*[*/ static FILE *pager = NULL; #else /*][*/ static int pager_rowcnt = 0; static Boolean pager_q = False; #endif /*]*/ #if !defined(_WIN32) /*[*/ /* Base keymap. */ static char *base_keymap1 = "Ctrl]: Escape\n" "Ctrla Ctrla: Key(0x01)\n" "Ctrla Ctrl]: Key(0x1d)\n" "Ctrla c: Clear\n" "Ctrla e: Escape\n" "Ctrla i: Insert\n" "Ctrla r: Reset\n" "Ctrla l: Redraw\n" "Ctrla m: Compose\n" "Ctrla ^: Key(notsign)\n" "DC: Delete\n" "UP: Up\n" "DOWN: Down\n" "LEFT: Left\n" "RIGHT: Right\n" "HOME: Home\n" "Ctrla 1: PA(1)\n" "Ctrla 2: PA(2)\n" "Ctrla 3: PA(3)\n"; static char *base_keymap2 = "F1: PF(1)\n" "Ctrla F1: PF(13)\n" "F2: PF(2)\n" "Ctrla F2: PF(14)\n" "F3: PF(3)\n" "Ctrla F3: PF(15)\n" "F4: PF(4)\n" "Ctrla F4: PF(16)\n" "F5: PF(5)\n" "Ctrla F5: PF(17)\n" "F6: PF(6)\n" "Ctrla F6: PF(18)\n"; static char *base_keymap3 = "F7: PF(7)\n" "Ctrla F7: PF(19)\n" "F8: PF(8)\n" "Ctrla F8: PF(20)\n" "F9: PF(9)\n" "Ctrla F9: PF(21)\n" "F10: PF(10)\n" "Ctrla F10: PF(22)\n" "F11: PF(11)\n" "Ctrla F11: PF(23)\n" "F12: PF(12)\n" "Ctrla F12: PF(24)\n"; /* Base keymap, 3270 mode. */ static char *base_3270_keymap = "Ctrla a: Attn\n" "Ctrlc: Clear\n" "Ctrld: Dup\n" "Ctrlf: FieldMark\n" "Ctrlh: Erase\n" "Ctrli: Tab\n" "Ctrlj: Newline\n" "Ctrll: Redraw\n" "Ctrlm: Enter\n" "Ctrlr: Reset\n" "Ctrlu: DeleteField\n" "Ctrla v: ToggleReverse\n" "Ctrla f: Flip\n" "IC: ToggleInsert\n" "DC: Delete\n" "BACKSPACE: Erase\n" "HOME: Home\n" "END: FieldEnd\n"; #else /*][*/ /* Base keymap. */ static char *base_keymap = "Alt 1: PA(1)\n" "Alt 2: PA(2)\n" "Alt 3: PA(3)\n" "Alt ^: Key(notsign)\n" "Alt c: Clear\n" "Alt C: Clear\n" "Alt l: Redraw\n" "Alt L: Redraw\n" "Alt m: Compose\n" "Alt M: Compose\n" "Alt p: PrintText\n" "Alt P: PrintText\n" "Ctrl ]: Escape\n" "Shift F1: PF(13)\n" "Shift F2: PF(14)\n" "Shift F3: PF(15)\n" "Shift F4: PF(16)\n" "Shift F5: PF(17)\n" "Shift F6: PF(18)\n" "Shift F7: PF(19)\n" "Shift F8: PF(20)\n" "Shift F9: PF(21)\n" "Shift F10: PF(22)\n" "Shift F11: PF(23)\n" "Shift F12: PF(24)\n" "Shift ESCAPE: Key(0x1d)\n"; /* Base keymap, 3270 mode. */ static char *base_3270_keymap = "Ctrl a: Attn\n" "Alt a: Attn\n" "Alt A: Attn\n" "Ctrl c: Clear\n" "Ctrl d: Dup\n" "Alt d: Dup\n" "Alt D: Dup\n" "Ctrl f: FieldMark\n" "Alt f: FieldMark\n" "Alt F: FieldMark\n" "Ctrl h: Erase\n" "Alt i: Insert\n" "Alt I: Insert\n" "Ctrl i: Tab\n" "Ctrl j: Newline\n" "Ctrl l: Redraw\n" "Ctrl m: Enter\n" "Ctrl r: Reset\n" "Alt r: Reset\n" "Alt R: Reset\n" "Ctrl u: DeleteField\n" "Ctrl v: Paste\n" "Alt v: ToggleReverse\n" "Alt x: Flip\n" "INSERT: ToggleInsert\n" "Shift TAB: BackTab\n" "BACK: Erase\n" "Shift END: EraseEOF\n" "END: FieldEnd\n" "Shift LEFT: PreviousWord\n" "Shift RIGHT: NextWord\n" "PRIOR: PF(7)\n" "NEXT: PF(8)"; #endif /*]*/ Boolean any_error_output = False; Boolean escape_pending = False; Boolean stop_pending = False; Boolean dont_return = False; #if defined(_WIN32) /*[*/ char *instdir = NULL; char *myappdata = NULL; int is_installed; static void start_auto_shortcut(void); #endif /*]*/ void usage(char *msg) { if (msg != CN) fprintf(stderr, "%s\n", msg); fprintf(stderr, "Usage: %s [options] [ps:][LUname@]hostname[:port]\n", programname); fprintf(stderr, "Options:\n"); cmdline_help(False); exit(1); } /* Callback for connection state changes. */ static void main_connect(Boolean ignored) { if (CONNECTED || appres.disconnect_clear) { #if defined(C3270_80_132) /*[*/ if (appres.altscreen != CN) ctlr_erase(False); else #endif /*]*/ ctlr_erase(True); } } /* Callback for application exit. */ static void main_exiting(Boolean ignored) { if (escaped) stop_pager(); else screen_suspend(); } /* Make sure error messages are seen. */ static void pause_for_errors(void) { char s[10]; if (any_error_output) { screen_suspend(); printf("[Press ] "); fflush(stdout); if (fgets(s, sizeof(s), stdin) == NULL) x3270_exit(1); any_error_output = False; } } #if !defined(_WIN32) /*[*/ /* Empty SIGCHLD handler, ensuring that we can collect child exit status. */ static void sigchld_handler(int ignored) { #if !defined(_AIX) /*[*/ (void) signal(SIGCHLD, sigchld_handler); #endif /*]*/ } #endif /*]*/ int main(int argc, char *argv[]) { const char *cl_hostname = CN; #if defined(_WIN32) /*[*/ char *delenv; #endif /*]*/ #if defined(_WIN32) /*[*/ (void) get_version_info(); if (get_dirs(argv[0], "wc3270", &instdir, NULL, &myappdata, &is_installed) < 0) x3270_exit(1); if (sockstart()) x3270_exit(1); #endif /*]*/ add_resource("keymap.base", #if defined(_WIN32) /*[*/ base_keymap #else /*][*/ xs_buffer("%s%s%s", base_keymap1, base_keymap2, base_keymap3) #endif /*]*/ ); add_resource("keymap.base.3270", NewString(base_3270_keymap)); argc = parse_command_line(argc, (const char **)argv, &cl_hostname); printf("%s\n\n" "Copyright 1989-2009 by Paul Mattes, GTRC and others.\n" "Type 'show copyright' for full copyright information.\n" "Type 'help' for help information.\n\n", build); #if defined(_WIN32) /*[*/ /* Delete the link file, if we've been told do. */ delenv = getenv(DELENV); if (delenv != NULL) { unlink(delenv); putenv(DELENV "="); } /* Check for auto-shortcut mode. */ if (appres.auto_shortcut) { start_auto_shortcut(); exit(0); } #endif /*]*/ if (charset_init(appres.charset) != CS_OKAY) { xs_warning("Cannot find charset \"%s\"", appres.charset); (void) charset_init(CN); } action_init(); #if defined(HAVE_LIBREADLINE) /*[*/ /* Set up readline. */ rl_readline_name = "c3270"; rl_initialize(); rl_attempted_completion_function = attempted_completion; #if defined(RL_READLINE_VERSION) /*[*/ rl_completion_entry_function = completion_entry; #else /*][*/ rl_completion_entry_function = (Function *)completion_entry; #endif /*]*/ #endif /*]*/ /* Get the screen set up as early as possible. */ screen_init(); kybd_init(); idle_init(); keymap_init(); hostfile_init(); hostfile_init(); ansi_init(); sms_init(); register_schange(ST_CONNECT, main_connect); register_schange(ST_3270_MODE, main_connect); register_schange(ST_EXITING, main_exiting); #if defined(X3270_FT) /*[*/ ft_init(); #endif /*]*/ #if defined(X3270_PRINTER) /*[*/ printer_init(); #endif /*]*/ #if !defined(_WIN32) /*[*/ /* Make sure we don't fall over any SIGPIPEs. */ (void) signal(SIGPIPE, SIG_IGN); /* Make sure we can collect child exit status. */ (void) signal(SIGCHLD, sigchld_handler); #endif /*]*/ /* Handle initial toggle settings. */ #if defined(X3270_TRACE) /*[*/ if (!appres.debug_tracing) { appres.toggle[DS_TRACE].value = False; appres.toggle[EVENT_TRACE].value = False; } #endif /*]*/ initialize_toggles(); if (cl_hostname != CN) { pause_for_errors(); /* Connect to the host. */ appres.once = True; if (host_connect(cl_hostname) < 0) x3270_exit(1); /* Wait for negotiations to complete or fail. */ while (!IN_ANSI && !IN_3270) { (void) process_events(True); if (!PCONNECTED) x3270_exit(1); } pause_for_errors(); screen_disp(False); } else { /* Drop to the prompt. */ if (appres.secure) { Error("Must specify hostname with secure option"); } appres.once = False; if (!appres.no_prompt) interact(); else pause_for_errors(); } peer_script_init(); /* Process events forever. */ while (1) { if (!escaped #if defined(X3270_FT) /*[*/ || ft_state != FT_NONE #endif /*]*/ ) (void) process_events(True); if (appres.cbreak_mode && escape_pending) { escape_pending = False; screen_suspend(); } if (!appres.no_prompt) { if (!CONNECTED && !appres.reconnect) { screen_suspend(); (void) printf("Disconnected.\n"); if (appres.once) x3270_exit(0); interact(); screen_resume(); } else if (escaped #if defined(X3270_FT) /*[*/ && ft_state == FT_NONE #endif /*]*/ ) { interact(); trace_event("Done interacting.\n"); screen_resume(); } } else if (!CONNECTED && !appres.reconnect && !appres.no_prompt) { screen_suspend(); x3270_exit(0); } #if !defined(_WIN32) /*[*/ if (children && waitpid(0, (int *)0, WNOHANG) > 0) --children; #else /*][*/ printer_check(); #endif /*]*/ screen_disp(False); } } #if !defined(_WIN32) /*[*/ /* * SIGTSTP handler for use while a command is running. Sets a flag so that * c3270 will stop before the next prompt is printed. */ static void running_sigtstp_handler(int ignored _is_unused) { signal(SIGTSTP, SIG_IGN); stop_pending = True; } /* * SIGTSTP haandler for use while the prompt is being displayed. * Acts immediately by setting SIGTSTP to the default and sending it to * ourselves, but also sets a flag so that the user gets one free empty line * of input before resuming the connection. */ static void prompt_sigtstp_handler(int ignored _is_unused) { if (CONNECTED) dont_return = True; signal(SIGTSTP, SIG_DFL); kill(getpid(), SIGTSTP); } #endif /*]*/ /*static*/ void interact(void) { /* In case we got here because a command output, stop the pager. */ stop_pager(); trace_event("Interacting.\n"); if (appres.secure || appres.no_prompt) { char s[10]; printf("[Press ] "); fflush(stdout); if (fgets(s, sizeof(s), stdin) == NULL) x3270_exit(1); return; } #if !defined(_WIN32) /*[*/ /* Handle SIGTSTP differently at the prompt. */ signal(SIGTSTP, SIG_DFL); #endif /*]*/ /* * Ignore SIGINT at the prompt. * I'm sure there's more we could do. */ signal(SIGINT, SIG_IGN); for (;;) { int sl; char *s; #if defined(HAVE_LIBREADLINE) /*[*/ char *rl_s; #else /*][*/ char buf[1024]; #endif /*]*/ dont_return = False; /* Process a pending stop now. */ if (stop_pending) { stop_pending = False; #if !defined(_WIN32) /*[*/ signal(SIGTSTP, SIG_DFL); kill(getpid(), SIGTSTP); #endif /*]*/ continue; } #if !defined(_WIN32) /*[*/ /* Process SIGTSTPs immediately. */ signal(SIGTSTP, prompt_sigtstp_handler); #endif /*]*/ /* Display the prompt. */ if (CONNECTED) (void) printf("Press to resume session.\n"); #if defined(HAVE_LIBREADLINE) /*[*/ s = rl_s = readline("c3270> "); if (s == CN) { printf("\n"); exit(0); } #else /*][*/ (void) printf(PROGRAM_NAME "> "); (void) fflush(stdout); /* Get the command, and trim white space. */ if (fgets(buf, sizeof(buf), stdin) == CN) { printf("\n"); #if defined(_WIN32) /*[*/ continue; #else /*][*/ x3270_exit(0); #endif /*]*/ } s = buf; #endif /*]*/ #if !defined(_WIN32) /*[*/ /* Defer SIGTSTP until the next prompt display. */ signal(SIGTSTP, running_sigtstp_handler); #endif /*]*/ while (isspace(*s)) s++; sl = strlen(s); while (sl && isspace(s[sl-1])) s[--sl] = '\0'; /* A null command means go back. */ if (!sl) { if (CONNECTED && !dont_return) break; else continue; } #if defined(HAVE_LIBREADLINE) /*[*/ /* Save this command in the history buffer. */ add_history(s); #endif /*]*/ /* "?" is an alias for "Help". */ if (!strcmp(s, "?")) s = "Help"; /* * Process the command like a macro, and spin until it * completes. */ push_command(s); while (sms_active()) { (void) process_events(True); } /* Close the pager. */ stop_pager(); #if defined(HAVE_LIBREADLINE) /*[*/ /* Give back readline's buffer. */ free(rl_s); #endif /*]*/ /* If it succeeded, return to the session. */ if (!macro_output && CONNECTED) break; } /* Ignore SIGTSTP again. */ stop_pending = False; #if !defined(_WIN32) /*[*/ signal(SIGTSTP, SIG_IGN); #endif /*]*/ #if defined(_WIN32) /*[*/ signal(SIGINT, SIG_DFL); #endif /*]*/ } /* A command is about to produce output. Start the pager. */ FILE * start_pager(void) { #if !defined(_WIN32) /*[*/ static char *lesspath = LESSPATH; static char *lesscmd = LESSPATH " -EX"; static char *morepath = MOREPATH; static char *or_cat = " || cat"; char *pager_env; char *pager_cmd = CN; if (pager != NULL) return pager; if ((pager_env = getenv("PAGER")) != CN) pager_cmd = pager_env; else if (strlen(lesspath)) pager_cmd = lesscmd; else if (strlen(morepath)) pager_cmd = morepath; if (pager_cmd != CN) { char *s; s = Malloc(strlen(pager_cmd) + strlen(or_cat) + 1); (void) sprintf(s, "%s%s", pager_cmd, or_cat); pager = popen(s, "w"); Free(s); if (pager == NULL) (void) perror(pager_cmd); } if (pager == NULL) pager = stdout; return pager; #else /*][*/ return stdout; #endif /*]*/ } /* Stop the pager. */ static void stop_pager(void) { #if !defined(_WIN32) /*[*/ if (pager != NULL) { if (pager != stdout) pclose(pager); pager = NULL; } #else /*][*/ pager_rowcnt = 0; pager_q = False; #endif /*]*/ } #if defined(_WIN32) /*[*/ void pager_output(const char *s) { if (pager_q) return; do { char *nl; int sl; /* Pause for a screenful. */ if (pager_rowcnt >= maxROWS) { printf("Press any key to continue . . . "); fflush(stdout); pager_q = screen_wait_for_key(); printf("\r \r"); pager_rowcnt = 0; if (pager_q) return; } /* * Look for an embedded newline. If one is found, just print * up to it, so we can count the newline and possibly pause * partway through the string. */ nl = strchr(s, '\n'); if (nl != CN) { sl = nl - s; printf("%.*s\n", sl, s); s = nl + 1; } else { printf("%s\n", s); sl = strlen(s); s = CN; } /* Account for the newline. */ pager_rowcnt++; /* Account (conservatively) for any line wrap. */ pager_rowcnt += sl / maxCOLS; } while (s != CN); } #endif /*]*/ #if defined(HAVE_LIBREADLINE) /*[*/ static char **matches = (char **)NULL; static char **next_match; /* Generate a match list. */ static char ** attempted_completion(const char *text, int start, int end) { char *s; int i, j; int match_count; /* If this is not the first word, fail. */ s = rl_line_buffer; while (*s && isspace(*s)) s++; if (s - rl_line_buffer < start) { char *t = s; struct host *h; /* * If the first word is 'Connect' or 'Open', and the * completion is on the second word, expand from the * hostname list. */ /* See if we're in the second word. */ while (*t && !isspace(*t)) t++; while (*t && isspace(*t)) t++; if (t - rl_line_buffer < start) return NULL; /* * See if the first word is 'Open' or 'Connect'. In future, * we might do other expansions, and this code would need to * be generalized. */ if (!((!strncasecmp(s, "Open", 4) && isspace(*(s + 4))) || (!strncasecmp(s, "Connect", 7) && isspace(*(s + 7))))) return NULL; /* Look for any matches. Note that these are case-sensitive. */ for (h = hosts, match_count = 0; h; h = h->next) { if (!strncmp(h->name, t, strlen(t))) match_count++; } if (!match_count) return NULL; /* Allocate the return array. */ next_match = matches = Malloc((match_count + 1) * sizeof(char **)); /* Scan again for matches to fill in the array. */ for (h = hosts, j = 0; h; h = h->next) { int skip = 0; if (strncmp(h->name, t, strlen(t))) continue; /* * Skip hostsfile entries that are duplicates of * RECENT entries we've already recorded. */ if (h->entry_type != RECENT) { for (i = 0; i < j; i++) { if (!strcmp(matches[i], h->name)) { skip = 1; break; } } } if (skip) continue; /* * If the string contains spaces, put it in double * quotes. Otherwise, just copy it. (Yes, this code * is fairly stupid, and can be fooled by other * whitespace and embedded double quotes.) */ if (strchr(h->name, ' ') != CN) { matches[j] = Malloc(strlen(h->name) + 3); (void) sprintf(matches[j], "\"%s\"", h->name); j++; } else { matches[j++] = NewString(h->name); } } matches[j] = CN; return NULL; } /* Search for matches. */ for (i = 0, match_count = 0; i < actioncount; i++) { if (!strncasecmp(actions[i].string, s, strlen(s))) match_count++; } if (!match_count) return NULL; /* Return what we got. */ next_match = matches = Malloc((match_count + 1) * sizeof(char **)); for (i = 0, j = 0; i < actioncount; i++) { if (!strncasecmp(actions[i].string, s, strlen(s))) { matches[j++] = NewString(actions[i].string); } } matches[j] = CN; return NULL; } /* Return the match list. */ static char * completion_entry(const char *text, int state) { char *r; if (next_match == NULL) return CN; if ((r = *next_match++) == CN) { Free(matches); next_match = matches = NULL; return CN; } else return r; } #endif /*]*/ /* c3270-specific actions. */ /* Return a time difference in English */ static char * hms(time_t ts) { time_t t, td; long hr, mn, sc; static char buf[128]; (void) time(&t); td = t - ts; hr = td / 3600; mn = (td % 3600) / 60; sc = td % 60; if (hr > 0) (void) sprintf(buf, "%ld %s %ld %s %ld %s", hr, (hr == 1) ? get_message("hour") : get_message("hours"), mn, (mn == 1) ? get_message("minute") : get_message("minutes"), sc, (sc == 1) ? get_message("second") : get_message("seconds")); else if (mn > 0) (void) sprintf(buf, "%ld %s %ld %s", mn, (mn == 1) ? get_message("minute") : get_message("minutes"), sc, (sc == 1) ? get_message("second") : get_message("seconds")); else (void) sprintf(buf, "%ld %s", sc, (sc == 1) ? get_message("second") : get_message("seconds")); return buf; } static void status_dump(void) { const char *emode, *ftype, *ts; #if defined(X3270_TN3270E) /*[*/ const char *eopts; const char *bplu; #endif /*]*/ const char *ptype; extern int linemode; /* XXX */ extern time_t ns_time; extern int ns_bsent, ns_rsent, ns_brcvd, ns_rrcvd; action_output("%s", build); action_output("%s %s: %d %s x %d %s, %s, %s", get_message("model"), model_name, maxCOLS, get_message("columns"), maxROWS, get_message("rows"), appres.m3279? get_message("fullColor"): get_message("mono"), (appres.extended && !std_ds_host) ? get_message("extendedDs") : get_message("standardDs")); action_output("%s %s", get_message("terminalName"), termtype); if (connected_lu != CN && connected_lu[0]) action_output("%s %s", get_message("luName"), connected_lu); #if defined(X3270_TN3270E) /*[*/ bplu = net_query_bind_plu_name(); if (bplu != CN && bplu[0]) action_output("%s %s", get_message("bindPluName"), bplu); #endif /*]*/ action_output("%s %s (%s)", get_message("characterSet"), get_charset_name(), #if defined(X3270_DBCS) /*[*/ dbcs? "DBCS": "SBCS" #else /*][*/ "SBCS" #endif /*]*/ ); action_output("%s %s", get_message("hostCodePage"), get_host_codepage()); action_output("%s GCSGID %u, CPGID %u", get_message("sbcsCgcsgid"), (unsigned short)((cgcsgid >> 16) & 0xffff), (unsigned short)(cgcsgid & 0xffff)); #if defined(X3270_DBCS) /*[*/ if (dbcs) action_output("%s GCSGID %u, CPGID %u", get_message("dbcsCgcsgid"), (unsigned short)((cgcsgid_dbcs >> 16) & 0xffff), (unsigned short)(cgcsgid_dbcs & 0xffff)); #endif /*]*/ #if !defined(_WIN32) /*[*/ action_output("%s %s", get_message("localeCodeset"), locale_codeset); action_output("%s DBCS %s, wide curses %s", get_message("buildOpts"), #if defined(X3270_DBCS) /*[*/ get_message("buildEnabled"), #else /*][*/ get_message("buildDisabled"), #endif /*]*/ #if defined(CURSES_WIDE) /*[*/ get_message("buildEnabled") #else /*][*/ get_message("buildDisabled") #endif /*]*/ ); #else /*][*/ action_output("%s OEM %d ANSI %d", get_message("windowsCodePage"), windows_cp, GetACP()); #endif /*]*/ if (appres.key_map) { action_output("%s %s", get_message("keyboardMap"), appres.key_map); } if (CONNECTED) { action_output("%s %s", get_message("connectedTo"), #if defined(LOCAL_PROCESS) /*[*/ (local_process && !strlen(current_host))? "(shell)": #endif /*]*/ current_host); #if defined(LOCAL_PROCESS) /*[*/ if (!local_process) { #endif /*]*/ action_output(" %s %d", get_message("port"), current_port); #if defined(LOCAL_PROCESS) /*[*/ } #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ if (secure_connection) action_output(" %s", get_message("secure")); #endif /*]*/ ptype = net_proxy_type(); if (ptype) { action_output(" %s %s %s %s %s %s", get_message("proxyType"), ptype, get_message("server"), net_proxy_host(), get_message("port"), net_proxy_port()); } ts = hms(ns_time); if (IN_E) emode = "TN3270E "; else emode = ""; if (IN_ANSI) { if (linemode) ftype = get_message("lineMode"); else ftype = get_message("charMode"); action_output(" %s%s, %s", emode, ftype, ts); } else if (IN_SSCP) { action_output(" %s%s, %s", emode, get_message("sscpMode"), ts); } else if (IN_3270) { action_output(" %s%s, %s", emode, get_message("dsMode"), ts); } else action_output(" %s", ts); #if defined(X3270_TN3270E) /*[*/ eopts = tn3270e_current_opts(); if (eopts != CN) { action_output(" %s %s", get_message("tn3270eOpts"), eopts); } else if (IN_E) { action_output(" %s", get_message("tn3270eNoOpts")); } #endif /*]*/ if (IN_3270) action_output("%s %d %s, %d %s\n%s %d %s, %d %s", get_message("sent"), ns_bsent, (ns_bsent == 1) ? get_message("byte") : get_message("bytes"), ns_rsent, (ns_rsent == 1) ? get_message("record") : get_message("records"), get_message("Received"), ns_brcvd, (ns_brcvd == 1) ? get_message("byte") : get_message("bytes"), ns_rrcvd, (ns_rrcvd == 1) ? get_message("record") : get_message("records")); else action_output("%s %d %s, %s %d %s", get_message("sent"), ns_bsent, (ns_bsent == 1) ? get_message("byte") : get_message("bytes"), get_message("received"), ns_brcvd, (ns_brcvd == 1) ? get_message("byte") : get_message("bytes")); #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { struct ctl_char *c = net_linemode_chars(); int i; char buf[128]; char *s = buf; action_output("%s", get_message("specialCharacters")); for (i = 0; c[i].name; i++) { if (i && !(i % 4)) { *s = '\0'; action_output("%s", buf); s = buf; } s += sprintf(s, " %s %s", c[i].name, c[i].value); } if (s != buf) { *s = '\0'; action_output("%s", buf); } } #endif /*]*/ } else if (HALF_CONNECTED) { action_output("%s %s", get_message("connectionPending"), current_host); } else action_output("%s", get_message("notConnected")); } static void copyright_dump(void) { action_output(" "); action_output("Copyright (c) 1993-2009, Paul Mattes."); action_output("Copyright (c) 1990, Jeff Sparkes."); action_output("Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA"); action_output(" 30332."); action_output("All rights reserved."); action_output(" "); action_output("Redistribution and use in source and binary forms, with or without"); action_output("modification, are permitted provided that the following conditions are met:"); action_output(" * Redistributions of source code must retain the above copyright"); action_output(" notice, this list of conditions and the following disclaimer."); action_output(" * Redistributions in binary form must reproduce the above copyright"); action_output(" notice, this list of conditions and the following disclaimer in the"); action_output(" documentation and/or other materials provided with the distribution."); action_output(" * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of"); action_output(" their contributors may be used to endorse or promote products derived"); action_output(" from this software without specific prior written permission."); action_output(" "); action_output("THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC \"AS IS\" AND"); action_output("ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE"); action_output("IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE"); action_output("ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE"); action_output("LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR"); action_output("CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF"); action_output("SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS"); action_output("INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN"); action_output("CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)"); action_output("ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE"); action_output("POSSIBILITY OF SUCH DAMAGE."); action_output(" "); } void Show_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { action_debug(Show_action, event, params, num_params); if (*num_params == 0) { action_output(" Show copyright copyright information"); action_output(" Show stats connection statistics"); action_output(" Show status same as 'Show stats'"); action_output(" Show keymap current keymap"); return; } if (!strncasecmp(params[0], "stats", strlen(params[0])) || !strncasecmp(params[0], "status", strlen(params[0]))) { status_dump(); } else if (!strncasecmp(params[0], "keymap", strlen(params[0]))) { keymap_dump(); } else if (!strncasecmp(params[0], "copyright", strlen(params[0]))) { copyright_dump(); } else popup_an_error("Unknown 'Show' keyword"); } #if defined(X3270_TRACE) /*[*/ /* Trace([data|keyboard][on[filename]|off]) */ void Trace_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int tg = 0; Boolean both = False; Boolean on = False; action_debug(Trace_action, event, params, num_params); if (*num_params == 0) { action_output("Data tracing is %sabled.", toggled(DS_TRACE)? "en": "dis"); action_output("Keyboard tracing is %sabled.", toggled(EVENT_TRACE)? "en": "dis"); return; } if (!strcasecmp(params[0], "Data")) tg = DS_TRACE; else if (!strcasecmp(params[0], "Keyboard")) tg = EVENT_TRACE; else if (!strcasecmp(params[0], "Off")) { both = True; on = False; if (*num_params > 1) { popup_an_error("Trace(): Too many arguments for 'Off'"); return; } } else if (!strcasecmp(params[0], "On")) { both = True; on = True; } else { popup_an_error("Trace(): Unknown trace type -- " "must be Data or Keyboard"); return; } if (!both) { if (*num_params == 1 || !strcasecmp(params[1], "On")) on = True; else if (!strcasecmp(params[1], "Off")) { on = False; if (*num_params > 2) { popup_an_error("Trace(): Too many arguments " "for 'Off'"); return; } } else { popup_an_error("Trace(): Must be 'On' or 'Off'"); return; } } if (both) { if (on && *num_params > 1) appres.trace_file = NewString(params[1]); if ((on && !toggled(DS_TRACE)) || (!on && toggled(DS_TRACE))) do_toggle(DS_TRACE); if ((on && !toggled(EVENT_TRACE)) || (!on && toggled(EVENT_TRACE))) do_toggle(EVENT_TRACE); } else if ((on && !toggled(tg)) || (!on && toggled(tg))) { if (on && *num_params > 2) appres.trace_file = NewString(params[2]); do_toggle(tg); } if (tracefile_name != NULL) action_output("Trace file is %s", tracefile_name); } #endif /*]*/ /* Break to the command prompt. */ void Escape_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { action_debug(Escape_action, event, params, num_params); if (!appres.secure && !appres.no_prompt) { host_cancel_reconnect(); screen_suspend(); } } /* Popup an informational message. */ void popup_an_info(const char *fmt, ...) { va_list args; static char vmsgbuf[4096]; char *s, *t; Boolean quoted = False; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); /* Filter out the junk. */ for (s = t = vmsgbuf; *s; s++) { if (*s == '\n') { *t = '\0'; break; } else if (!quoted && *s == '\\') { quoted = True; } else if (*s >= ' ' && *s <= '~') { *t++ = *s; quoted = False; } } *t = '\0'; if (strlen(vmsgbuf)) status_push(vmsgbuf); } void Info_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { action_debug(Info_action, event, params, num_params); if (!*num_params) return; popup_an_info("%s", params[0]); } #if !defined(_WIN32) /*[*/ /* Support for c3270 profiles. */ #define PROFILE_ENV "C3270PRO" #define NO_PROFILE_ENV "NOC3270PRO" #define DEFAULT_PROFILE "~/.c3270pro" /* Read in the .c3270pro file. */ Boolean merge_profile(void) { const char *fname; char *profile_name; Boolean did_read = False; /* Check for the no-profile environment variable. */ if (getenv(NO_PROFILE_ENV) != CN) return did_read; /* Read the file. */ fname = getenv(PROFILE_ENV); if (fname == CN || *fname == '\0') fname = DEFAULT_PROFILE; profile_name = do_subst(fname, True, True); did_read = (read_resource_file(profile_name, False) >= 0); Free(profile_name); return did_read; } #endif /*]*/ #if defined(_WIN32) /*[*/ /* Start a auto-shortcut-mode copy of wc3270.exe. */ static void start_auto_shortcut(void) { char *tempdir; FILE *f; session_t s; HRESULT hres; char exepath[MAX_PATH]; char linkpath[MAX_PATH]; char sesspath[MAX_PATH]; char delenv[32 + MAX_PATH]; char args[1024]; HINSTANCE h; extern char *profile_path; /* XXX */ /* Make sure we're on NT. */ if (!is_nt) { fprintf(stderr, "Auto-shortcut does not work on Win9x\n"); x3270_exit(1); } /* Make sure there is a session file. */ if (profile_path == CN) { fprintf(stderr, "Can't use auto-shortcut mode without a " "session file\n"); x3270_exit(1); } printf("Running auto-shortcut\n"); fflush(stdout); /* Read the session file into 's'. */ f = fopen(profile_path, "r"); if (f == NULL) { fprintf(stderr, "%s: %s\n", profile_path, strerror(errno)); x3270_exit(1); } memset(&s, '\0', sizeof(session_t)); if (read_session(f, &s) == 0) { fprintf(stderr, "%s: invalid format\n", profile_path); x3270_exit(1); } printf("Read in session '%s'\n", profile_path); fflush(stdout); /* Create the shortcut. */ tempdir = getenv("TEMP"); if (tempdir == CN) { fprintf(stderr, "No %%TEMP%%?\n"); x3270_exit(1); } sprintf(linkpath, "%s\\wcsa%u.lnk", tempdir, getpid()); sprintf(exepath, "%s\\%s", instdir, "wc3270.exe"); printf("Executable path is '%s'\n", exepath); fflush(stdout); if (GetFullPathName(profile_path, MAX_PATH, sesspath, NULL) == 0) { fprintf(stderr, "%s: Error %ld\n", profile_path, GetLastError()); x3270_exit(1); } sprintf(args, "+S \"%s\"", sesspath); hres = create_shortcut(&s, /* session */ exepath, /* .exe */ linkpath, /* .lnk */ args, /* args */ tempdir /* cwd */); if (!SUCCEEDED(hres)) { fprintf(stderr, "Cannot create ShellLink '%s'\n", linkpath); x3270_exit(1); } printf("Created ShellLink '%s'\n", linkpath); fflush(stdout); /* Execute it. */ sprintf(delenv, "%s=%s", DELENV, linkpath); putenv(delenv); h = ShellExecute(NULL, "open", linkpath, "", tempdir, SW_SHOW); if ((int)h <= 32) { fprintf(stderr, "ShellExecute failed, error %d\n", (int)h); x3270_exit(1); } printf("Started ShellLink\n"); fflush(stdout); exit(0); } #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/macros.c0000644000175000017500000026252511254565704015560 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * macros.c * This module handles string, macro and script (sms) processing. */ #include "globals.h" #if defined(X3270_MENUS) /*[*/ #include #include #endif /*]*/ #if !defined(_WIN32) /*[*/ #include #include #include #include #include #include #endif /*]*/ #include #include #include #include #include "3270ds.h" #include "appres.h" #include "ctlr.h" #include "screen.h" #include "resources.h" #include "actionsc.h" #include "childc.h" #include "ctlrc.h" #include "ftc.h" #include "hostc.h" #include "idlec.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #if defined(X3270_PRINTER) /*[*/ #include "printerc.h" #endif /*]*/ #include "screenc.h" #include "seec.h" #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" #include "xioc.h" #if defined(_WIN32) /*[*/ #include "windows.h" #include #include "w3miscc.h" #endif /*]*/ #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #define ANSI_SAVE_SIZE 4096 #if defined(_WIN32) /*[*/ #define SOCK_CLOSE(s) closesocket(s) #else /*][*/ #define SOCK_CLOSE(s) close(s) #endif /*[*/ /* Externals */ extern int linemode; /* Globals */ struct macro_def *macro_defs = (struct macro_def *)NULL; Boolean macro_output = False; /* Statics */ typedef struct sms { struct sms *next; /* next sms on the stack */ char msc[1024]; /* input buffer */ int msc_len; /* length of input buffer */ char *dptr; /* data pointer (macros only) */ enum sms_state { SS_IDLE, /* no command active (scripts only) */ SS_INCOMPLETE, /* command(s) buffered and ready to run */ SS_RUNNING, /* command executing */ SS_KBWAIT, /* command awaiting keyboard unlock */ SS_CONNECT_WAIT,/* command awaiting connection to complete */ #if defined(X3270_FT) /*[*/ SS_FT_WAIT, /* command awaiting file transfer to complete */ #endif /*]*/ SS_TIME_WAIT, /* command awaiting simple timeout */ SS_PAUSED, /* stopped in PauseScript action */ SS_WAIT_NVT, /* awaiting completion of Wait(NVTMode) */ SS_WAIT_3270, /* awaiting completion of Wait(3270Mode) */ SS_WAIT_OUTPUT, /* awaiting completion of Wait(Output) */ SS_SWAIT_OUTPUT,/* awaiting completion of Snap(Wait) */ SS_WAIT_DISC, /* awaiting completion of Wait(Disconnect) */ SS_WAIT_IFIELD, /* awaiting completion of Wait(InputField) */ SS_WAIT_UNLOCK, /* awaiting completion of Wait(Unlock) */ SS_EXPECTING, /* awaiting completion of Expect() */ SS_CLOSING /* awaiting completion of Close() */ } state; enum sms_type { ST_STRING, /* string */ ST_MACRO, /* macro */ ST_COMMAND, /* interactive command */ ST_KEYMAP, /* keyboard map */ ST_IDLE, /* idle command */ ST_CHILD, /* child process */ ST_PEER, /* peer (external) process */ ST_FILE /* read commands from file */ } type; Boolean success; Boolean need_prompt; Boolean is_login; Boolean is_hex; /* flag for ST_STRING only */ Boolean output_wait_needed; Boolean executing; /* recursion avoidance */ Boolean accumulated; /* accumulated time flag */ Boolean idle_error; /* idle command caused an error */ Boolean is_socket; /* I/O is via a socket */ Boolean is_transient; /* I/O is via a transient socket */ Boolean is_external; /* I/O is via a transient socket to -socket */ unsigned long msec; /* total accumulated time */ FILE *outfile; int infd; #if defined(_WIN32) /*[*/ HANDLE inhandle; HANDLE child_handle; unsigned long exit_id; unsigned long listen_id; #endif /*]*/ int pid; unsigned long expect_id; unsigned long wait_id; } sms_t; #define SN ((sms_t *)NULL) static sms_t *sms = SN; static int sms_depth = 0; #if defined(X3270_SCRIPT) /*[*/ static int socketfd = -1; static unsigned long socket_id = 0L; # if defined(_WIN32) /*[*/ static HANDLE socket_event = NULL; # endif /*]*/ #endif /*]*/ #if defined(X3270_TRACE) /*[*/ static const char *sms_state_name[] = { "IDLE", "INCOMPLETE", "RUNNING", "KBWAIT", "CONNECT_WAIT", #if defined(X3270_FT) /*[*/ "FT_WAIT", #endif /*]*/ "TIME_WAIT", "PAUSED", "WAIT_NVT", "WAIT_3270", "WAIT_OUTPUT", "SWAIT_OUTPUT", "WAIT_DISC", "WAIT_IFIELD", "WAIT_UNLOCK", "EXPECTING", "CLOSING" }; #endif /*]*/ #if defined(X3270_MENUS) /*[*/ static struct macro_def *macro_last = (struct macro_def *) NULL; #endif /*]*/ static unsigned long stdin_id = 0L; static unsigned char *ansi_save_buf; static int ansi_save_cnt = 0; static int ansi_save_ix = 0; static char *expect_text = CN; static int expect_len = 0; static const char *st_name[] = { "String", "Macro", "Command", "KeymapAction", "IdleCommand", "ChildScript", "PeerScript", "File" }; static enum iaction st_cause[] = { IA_MACRO, IA_MACRO, IA_COMMAND, IA_KEYMAP, IA_IDLE, IA_MACRO, IA_MACRO }; #define ST_sNAME(s) st_name[(int)(s)->type] #define ST_NAME ST_sNAME(sms) #if defined(X3270_SCRIPT) /*[*/ static void cleanup_socket(Boolean b); #endif /*]*/ static void script_prompt(Boolean success); static void script_input(void); static void sms_pop(Boolean can_exit); #if defined(X3270_SCRIPT) /*[*/ static void socket_connection(void); # if defined(_WIN32) /*[*/ static void child_socket_connection(void); static void child_exited(void); # endif /*]*/ #endif /*]*/ static void wait_timed_out(void); static void read_from_file(void); static sms_t *sms_redirect_to(void); /* Macro that defines that the keyboard is locked due to user input. */ #define KBWAIT (kybdlock & (KL_OIA_LOCKED|KL_OIA_TWAIT|KL_DEFERRED_UNLOCK)) #if defined(X3270_SCRIPT) /*[*/ #define CKBWAIT (appres.toggle[AID_WAIT].value && KBWAIT) #else /*][*/ #define CKBWAIT (KBWAIT) #endif /*]*/ /* Macro that defines when it's safe to continue a Wait()ing sms. */ #define CAN_PROCEED ( \ IN_SSCP || \ (IN_3270 && (no_login_host || (formatted && cursor_addr)) && !CKBWAIT) || \ (IN_ANSI && !(kybdlock & KL_AWAITING_FIRST)) \ ) #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ static int plugin_pid = 0; /* process ID if running, or 0 */ static int plugin_outpipe = -1; /* from emulator, to plugin */ static int plugin_inpipe = -1; /* from plugin, to emulator */ static Bool plugin_started = False; /* True after INIT ack'ed */ static unsigned long plugin_input_id = 0L; /* input event */ static unsigned long plugin_timeout_id = 0L; /* timeout event */ #define PRB_MAX 1024 /* maximum reply size */ static char plugin_buf[PRB_MAX]; /* reply buffer */ static int prb_cnt = 0; /* pending reply size */ #define PLUGINSTART_SECS 5 /* timeout for init reply */ #define PLUGINWAIT_SECS 2 /* timeout for cmd or AID reply */ #define MAX_START_ARGS 10 /* max args for plugin command */ #define PLUGIN_QMAX 256 /* max pending INITs/AIDs/cmds */ static char plugin_tq[PLUGIN_QMAX]; /* FIFO of pending INITs/AIDs/cmds */ static int ptq_first = 0; /* FIFO index of first pending cmd */ static int ptq_last = 0; /* FIFO index of last pending cmd */ #define PLUGIN_BACKLOG (((ptq_last + PLUGIN_QMAX) - ptq_first) % PLUGIN_QMAX) #define PLUGIN_INIT 0 /* commands: initialize */ #define PLUGIN_AID 1 /* process AID */ #define PLUGIN_CMD 2 /* process command */ static Boolean plugin_complain = False; static Boolean plugin_start_failed = False; static char plugin_start_error[PRB_MAX]; static void plugin_start(char *command, char *argv[], Boolean complain); static void no_plugin(void); #endif /*]*/ #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ static void plugin_start_appres(Boolean complain) { int i = 0; char *args[MAX_START_ARGS]; char *ccopy = NewString(appres.plugin_command); char *command; char *s; command = strtok(ccopy, " \t"); if (command == NULL) { Free(ccopy); return; } args[i++] = command; while (i < MAX_START_ARGS - 1 && (s = strtok(NULL, " \t")) != NULL) { args[i++] = s; } args[i] = NULL; plugin_start(command, args, complain); Free(ccopy); } #endif /*]*/ /* Callbacks for state changes. */ static void sms_connect(Boolean connected) { #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ if (connected) { if (appres.plugin_command && !plugin_pid) { plugin_start_appres(False); } } else no_plugin(); #endif /*]*/ /* Hack to ensure that disconnects don't cause infinite recursion. */ if (sms != SN && sms->executing) return; if (!connected) { while (sms != SN && sms->is_login) { #if !defined(_WIN32) /*[*/ if (sms->type == ST_CHILD && sms->pid > 0) (void) kill(sms->pid, SIGTERM); #endif /*]*/ sms_pop(False); } } sms_continue(); } static void sms_in3270(Boolean in3270) { if (in3270 || IN_SSCP) sms_continue(); } /* One-time initialization. */ void sms_init(void) { register_schange(ST_CONNECT, sms_connect); register_schange(ST_3270_MODE, sms_in3270); } #if defined(X3270_MENUS) /*[*/ /* Parse the macros resource into the macro list */ void macros_init(void) { char *s = CN; char *name, *action; struct macro_def *m; int ns; int ix = 1; static char *last_s = CN; /* Free the previous macro definitions. */ while (macro_defs) { m = macro_defs->next; Free(macro_defs); macro_defs = m; } macro_defs = (struct macro_def *)NULL; macro_last = (struct macro_def *)NULL; if (last_s) { Free(last_s); last_s = CN; } /* Search for new ones. */ if (PCONNECTED) { char *rname; char *space; rname = NewString(current_host); if ((space = strchr(rname, ' '))) *space = '\0'; s = get_fresource("%s.%s", ResMacros, rname); Free(rname); } if (s == CN) { if (appres.macros == CN) return; s = NewString(appres.macros); } else s = NewString(s); last_s = s; while ((ns = split_dresource(&s, &name, &action)) == 1) { m = (struct macro_def *)Malloc(sizeof(*m)); if (!split_hier(name, &m->name, &m->parents)) { Free(m); continue; } m->action = action; if (macro_last) macro_last->next = m; else macro_defs = m; m->next = (struct macro_def *)NULL; macro_last = m; ix++; } if (ns < 0) { char buf[256]; (void) sprintf(buf, "Error in macro %d", ix); Warning(buf); } } #endif /*]*/ /* * Enable input from a script. */ static void script_enable(void) { #if defined(_WIN32) /*[*/ /* Windows child scripts are listening sockets. */ if (sms->type == ST_CHILD && sms->inhandle != INVALID_HANDLE_VALUE) { sms->listen_id = AddInput((int)sms->inhandle, child_socket_connection); return; } #endif /*]*/ if (sms->infd >= 0 && stdin_id == 0) { trace_dsn("Enabling input for %s[%d]\n", ST_NAME, sms_depth); #if defined(_WIN32) /*[*/ stdin_id = AddInput((int)sms->inhandle, script_input); #else /*][*/ stdin_id = AddInput(sms->infd, script_input); #endif /*]*/ } } /* * Disable input from a script. */ static void script_disable(void) { if (stdin_id != 0) { trace_dsn("Disabling input for %s[%d]\n", ST_NAME, sms_depth); RemoveInput(stdin_id); stdin_id = 0L; } } /* Allocate a new sms. */ static sms_t * new_sms(enum sms_type type) { sms_t *s; s = (sms_t *)Calloc(1, sizeof(sms_t)); s->state = SS_IDLE; s->type = type; s->dptr = s->msc; s->success = True; s->need_prompt = False; s->is_login = False; s->outfile = (FILE *)NULL; s->infd = -1; #if defined(_WIN32) /*[*/ s->inhandle = INVALID_HANDLE_VALUE; s->child_handle = INVALID_HANDLE_VALUE; #endif /*]*/ s->pid = -1; s->expect_id = 0L; s->wait_id = 0L; s->output_wait_needed = False; s->executing = False; s->accumulated = False; s->idle_error = False; s->msec = 0L; return s; } /* * Push an sms definition on the stack. * Returns whether or not that is legal. */ static Boolean sms_push(enum sms_type type) { sms_t *s; /* Preempt any running sms. */ if (sms != SN) { /* Remove the running sms's input. */ script_disable(); } s = new_sms(type); if (sms != SN) s->is_login = sms->is_login; /* propagate from parent */ s->next = sms; sms = s; /* Enable the abort button on the menu and the status indication. */ if (++sms_depth == 1) { menubar_as_set(True); status_script(True); } if (ansi_save_buf == (unsigned char *)NULL) ansi_save_buf = (unsigned char *)Malloc(ANSI_SAVE_SIZE); return True; } /* * Add an sms definition to the _bottom_ of the stack. */ static sms_t * sms_enqueue(enum sms_type type) { sms_t *s, *t, *t_prev = SN; /* Allocate and initialize a new structure. */ s = new_sms(type); /* Find the bottom of the stack. */ for (t = sms; t != SN; t = t->next) t_prev = t; if (t_prev == SN) { /* Empty stack. */ s->next = sms; sms = s; /* * Enable the abort button on the menu and the status * line indication. */ menubar_as_set(True); status_script(True); } else { /* Add to bottom. */ s->next = SN; t_prev->next = s; } sms_depth++; if (ansi_save_buf == (unsigned char *)NULL) ansi_save_buf = (unsigned char *)Malloc(ANSI_SAVE_SIZE); return s; } /* Pop an sms definition off the stack. */ static void sms_pop(Boolean can_exit) { sms_t *s; trace_dsn("%s[%d] complete\n", ST_NAME, sms_depth); /* When you pop the peer script, that's the end of x3270. */ if (sms->type == ST_PEER && !sms->is_transient && can_exit) x3270_exit(0); /* Remove the input event. */ script_disable(); /* Close the files. */ if (sms->outfile != NULL) fclose(sms->outfile); if (sms->infd >= 0) { if (sms->is_socket) SOCK_CLOSE(sms->infd); else close(sms->infd); } /* Cancel any pending timeouts. */ if (sms->expect_id != 0L) RemoveTimeOut(sms->expect_id); if (sms->wait_id != 0L) RemoveTimeOut(sms->wait_id); /* * If this was an idle command that generated an error, now is the * time to announce that. (If we announced it when the error first * occurred, we might be telling the wrong party, such as a script.) */ if (sms->idle_error) popup_an_error("Idle command disabled due to error"); #if defined(X3270_SCRIPT) /*[*/ /* If this was a -socket peer, get ready for another connection. */ if (sms->type == ST_PEER && sms->is_external) { #if defined(_WIN32) /*[*/ socket_id = AddInput((int)socket_event, socket_connection); #else /*][*/ socket_id = AddInput(socketfd, socket_connection); #endif /*]*/ } #endif /*]*/ /* Release the memory. */ s = sms; sms = s->next; Free(s); sms_depth--; if (sms == SN) { /* Turn off the menu option. */ menubar_as_set(False); status_script(False); } else if (CKBWAIT && (int)sms->state < (int)SS_KBWAIT) { /* The child implicitly blocked the parent. */ sms->state = SS_KBWAIT; trace_dsn("%s[%d] implicitly paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } else if (sms->state == SS_IDLE && sms->type != ST_FILE) { /* The parent needs to be restarted. */ script_enable(); } else if (sms->type == ST_FILE) { read_from_file(); } #if defined(_WIN32) /*[*/ /* If the new top sms is an exited script, pop it, too. */ if (sms != SN && sms->type == ST_CHILD && sms->child_handle == INVALID_HANDLE_VALUE) sms_pop(False); #endif /*]*/ } /* * Peer script initialization. * * Must be called after the initial call to connect to the host from the * command line, so that the initial state can be set properly. */ void peer_script_init(void) { sms_t *s; Boolean on_top; #if defined(X3270_SCRIPT) /*[*/ if (appres.script_port) { struct sockaddr_in sin; #if !defined(_WIN32) /*[*/ if (appres.socket) xs_warning("-scriptport overrides -socket"); #endif /*]*/ /* -scriptport overrides -script */ appres.scripted = False; /* Create the listening socket. */ socketfd = socket(AF_INET, SOCK_STREAM, 0); if (socketfd < 0) { #if !defined(_WIN32) /*[*/ popup_an_errno(errno, "socket()"); #else /*][*/ popup_an_error("socket(): %s", win32_strerror(GetLastError())); #endif /*]*/ return; } (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; sin.sin_port = htons(appres.script_port); sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); if (bind(socketfd, (struct sockaddr *)&sin, sizeof(sin)) < 0) { #if !defined(_WIN32) /*[*/ popup_an_errno(errno, "socket bind"); #else /*][*/ popup_an_error("socket bind: %s", win32_strerror(GetLastError())); #endif /*]*/ SOCK_CLOSE(socketfd); socketfd = -1; return; } if (listen(socketfd, 1) < 0) { #if !defined(_WIN32) /*[*/ popup_an_errno(errno, "socket listen"); #else /*][*/ popup_an_error("socket listen: %s", win32_strerror(GetLastError())); #endif /*]*/ SOCK_CLOSE(socketfd); socketfd = -1; return; } #if defined(_WIN32) /*[*/ socket_event = CreateEvent(NULL, FALSE, FALSE, NULL); if (socket_event == NULL) { popup_an_error("CreateEvent: %s", win32_strerror(GetLastError())); SOCK_CLOSE(socketfd); socketfd = -1; return; } if (WSAEventSelect(socketfd, socket_event, FD_ACCEPT) != 0) { popup_an_error("WSAEventSelect: %s", win32_strerror(GetLastError())); SOCK_CLOSE(socketfd); socketfd = -1; return; } socket_id = AddInput((int)socket_event, socket_connection); #else /*][*/ socket_id = AddInput(socketfd, socket_connection); #endif/*]*/ register_schange(ST_EXITING, cleanup_socket); return; } #endif /*]*/ #if defined(X3270_SCRIPT) && !defined(_WIN32) /*[*/ if (appres.socket && !appres.script_port) { struct sockaddr_un ssun; /* -socket overrides -script */ appres.scripted = False; /* Create the listening socket. */ socketfd = socket(AF_UNIX, SOCK_STREAM, 0); if (socketfd < 0) { popup_an_errno(errno, "Unix-domain socket"); return; } (void) memset(&ssun, '\0', sizeof(ssun)); ssun.sun_family = AF_UNIX; (void) sprintf(ssun.sun_path, "/tmp/x3sck.%u", getpid()); (void) unlink(ssun.sun_path); if (bind(socketfd, (struct sockaddr *)&ssun, sizeof(ssun)) < 0) { popup_an_errno(errno, "Unix-domain socket bind"); close(socketfd); socketfd = -1; return; } if (listen(socketfd, 1) < 0) { popup_an_errno(errno, "Unix-domain socket listen"); close(socketfd); socketfd = -1; (void) unlink(ssun.sun_path); return; } socket_id = AddInput(socketfd, socket_connection); register_schange(ST_EXITING, cleanup_socket); return; } #endif /*]*/ if (!appres.scripted) return; if (sms == SN) { /* No login script running, simply push a new sms. */ (void) sms_push(ST_PEER); s = sms; on_top = True; } else { /* Login script already running, pretend we started it. */ s = sms_enqueue(ST_PEER); s->state = SS_RUNNING; on_top = False; } s->infd = fileno(stdin); #if defined(_WIN32) /*[*/ s->inhandle = GetStdHandle(STD_INPUT_HANDLE); #endif /*]*/ s->outfile = stdout; (void) SETLINEBUF(s->outfile); /* even if it's a pipe */ if (on_top) { if (HALF_CONNECTED || (CONNECTED && (kybdlock & KL_AWAITING_FIRST))) s->state = SS_CONNECT_WAIT; else script_enable(); } } #if defined(X3270_SCRIPT) /*[*/ /* Accept a new socket connection. */ static void socket_connection(void) { int fd; sms_t *s; /* Accept the connection. */ #if !defined(_WIN32) /*[*/ if (appres.script_port) #endif /*]*/ { struct sockaddr_in sin; socklen_t len = sizeof(sin); (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; fd = accept(socketfd, (struct sockaddr *)&sin, &len); } #if !defined(_WIN32) /*[*/ else { struct sockaddr_un ssun; socklen_t len = sizeof(ssun); (void) memset(&ssun, '\0', sizeof(ssun)); ssun.sun_family = AF_UNIX; fd = accept(socketfd, (struct sockaddr *)&ssun, &len); } #endif /*]*/ if (fd < 0) { popup_an_errno(errno, "socket accept"); return; } trace_dsn("New script socket connection\n"); /* Push on a peer script. */ (void) sms_push(ST_PEER); s = sms; s->is_transient = True; s->is_external = True; s->infd = fd; #if !defined(_WIN32) /*[*/ s->outfile = fdopen(dup(fd), "w"); #endif /*]*/ #if defined(_WIN32) /*[*/ s->inhandle = CreateEvent(NULL, FALSE, FALSE, NULL); if (s->inhandle == NULL) { fprintf(stderr, "Can't create socket handle\n"); exit(1); } if (WSAEventSelect(s->infd, s->inhandle, FD_READ | FD_CLOSE) != 0) { fprintf(stderr, "Can't set socket handle events\n"); exit(1); } #endif /*]*/ s->is_socket = True; script_enable(); /* Don't accept any more connections. */ RemoveInput(socket_id); socket_id = 0L; } # if defined(_WIN32) /*[*/ /* Accept a new socket connection from a child process. */ static void child_socket_connection(void) { int fd; sms_t *old_sms; sms_t *s; struct sockaddr_in sin; socklen_t len = sizeof(sin); /* Accept the connection. */ (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; fd = accept(sms->infd, (struct sockaddr *)&sin, &len); if (fd < 0) { popup_an_error("socket accept: %s", win32_strerror(GetLastError())); return; } trace_dsn("New child script socket connection\n"); /* Push on a peer script. */ old_sms = sms; (void) sms_push(ST_PEER); s = sms; s->is_transient = True; s->infd = fd; s->inhandle = CreateEvent(NULL, FALSE, FALSE, NULL); if (s->inhandle == NULL) { fprintf(stderr, "Can't create socket handle\n"); exit(1); } if (WSAEventSelect(s->infd, s->inhandle, FD_READ | FD_CLOSE) != 0) { fprintf(stderr, "Can't set socket handle events\n"); exit(1); } s->is_socket = True; script_enable(); /* Don't accept any more connections on the global listen socket. */ RemoveInput(old_sms->listen_id); old_sms->listen_id = 0L; } #endif /*]*/ /* Clean up the Unix-domain socket. */ static void cleanup_socket(Boolean b _is_unused) { #if !defined(_WIN32) /*[*/ char buf[1024]; (void) sprintf(buf, "/tmp/x3sck.%u", getpid()); (void) unlink(buf); #endif /*]*/ } #endif /*]*/ #if defined(_WIN32) /*[*/ /* Process an event on a child script handle (presumably a process exit). */ static void child_exited(void) { sms_t *s; DWORD status; for (s = sms; s != NULL; s = s->next) { if (s->type == ST_CHILD) { status = 0; if (GetExitCodeProcess(s->child_handle, &status) == 0) { popup_an_error("GetExitCodeProcess failed: %s", win32_strerror(GetLastError())); } else if (status != STILL_ACTIVE) { trace_dsn("Child script exited with status " "0x%x\n", (unsigned)status); CloseHandle(s->child_handle); s->child_handle = INVALID_HANDLE_VALUE; RemoveInput(s->exit_id); s->exit_id = 0; if (s == sms) { sms_pop(False); sms_continue(); } break; } } } } #endif /*]*/ /* * Interpret and execute a script or macro command. */ enum em_stat { EM_CONTINUE, EM_PAUSE, EM_ERROR }; static enum em_stat execute_command(enum iaction cause, char *s, char **np) { enum { ME_GND, /* before action name */ ME_COMMENT, /* within a comment */ ME_FUNCTION, /* within action name */ ME_FUNCTIONx, /* saw whitespace after action name */ ME_LPAREN, /* saw left paren */ ME_P_PARM, /* paren: within unquoted parameter */ ME_P_QPARM, /* paren: within quoted parameter */ ME_P_BSL, /* paren: after backslash in quoted parameter */ ME_P_PARMx, /* paren: saw whitespace after parameter */ ME_S_PARM, /* space: within unquoted parameter */ ME_S_QPARM, /* space: within quoted parameter */ ME_S_BSL, /* space: after backslash in quoted parameter */ ME_S_PARMx /* space: saw whitespace after parameter */ } state = ME_GND; char c; char aname[64+1]; char parm[1024+1]; int nx = 0; Cardinal count = 0; String params[64]; int i, any, exact; int failreason = 0; Boolean saw_paren = False; static const char *fail_text[] = { /*1*/ "Action name must begin with an alphanumeric character", /*2*/ "Syntax error in action name", /*3*/ "Syntax error: \")\" or \",\" expected", /*4*/ "Extra data after parameters", /*5*/ "Syntax error: \")\" expected" }; #define fail(n) { failreason = n; goto failure; } #define free_params() { \ if (cause == IA_MACRO || cause == IA_KEYMAP || \ cause == IA_COMMAND || cause == IA_IDLE) { \ Cardinal j; \ for (j = 0; j < count; j++) \ Free(params[j]); \ } \ } parm[0] = '\0'; params[count] = parm; while ((c = *s++)) switch (state) { case ME_GND: if (isspace(c)) continue; else if (isalnum(c)) { state = ME_FUNCTION; nx = 0; aname[nx++] = c; } else if (c == '!' || c == '#') state = ME_COMMENT; else fail(1); break; case ME_COMMENT: break; case ME_FUNCTION: /* within function name */ if (c == '(' || isspace(c)) { aname[nx] = '\0'; if (c == '(') { nx = 0; state = ME_LPAREN; saw_paren = True; } else state = ME_FUNCTIONx; } else if (isalnum(c) || c == '_' || c == '-') { if (nx < 64) aname[nx++] = c; } else { fail(2); } break; case ME_FUNCTIONx: /* space after function name */ if (isspace(c)) continue; else if (c == '(') { nx = 0; state = ME_LPAREN; } else if (c == '"') { nx = 0; state = ME_S_QPARM; } else { state = ME_S_PARM; nx = 0; parm[nx++] = c; } break; case ME_LPAREN: if (isspace(c)) continue; else if (c == '"') state = ME_P_QPARM; else if (c == ',') { parm[nx++] = '\0'; params[++count] = &parm[nx]; } else if (c == ')') goto success; else { state = ME_P_PARM; parm[nx++] = c; } break; case ME_P_PARM: if (isspace(c)) { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_P_PARMx; } else if (c == ')') { parm[nx] = '\0'; ++count; goto success; } else if (c == ',') { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_LPAREN; } else { if (nx < 1024) parm[nx++] = c; } break; case ME_P_BSL: if (c == 'n' && nx < 1024) parm[nx++] = '\n'; else { if (c != '"' && nx < 1024) parm[nx++] = '\\'; if (nx < 1024) parm[nx++] = c; } state = ME_P_QPARM; break; case ME_P_QPARM: if (c == '"') { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_P_PARMx; } else if (c == '\\') { state = ME_P_BSL; } else if (nx < 1024) parm[nx++] = c; break; case ME_P_PARMx: if (isspace(c)) continue; else if (c == ',') state = ME_LPAREN; else if (c == ')') goto success; else fail(3); break; case ME_S_PARM: if (isspace(c)) { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_S_PARMx; } else { if (nx < 1024) parm[nx++] = c; } break; case ME_S_BSL: if (c == 'n' && nx < 1024) parm[nx++] = '\n'; else { if (c != '"' && nx < 1024) parm[nx++] = '\\'; if (nx < 1024) parm[nx++] = c; } state = ME_S_QPARM; break; case ME_S_QPARM: if (c == '"') { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_S_PARMx; } else if (c == '\\') { state = ME_S_BSL; } else if (nx < 1024) parm[nx++] = c; break; case ME_S_PARMx: if (isspace(c)) continue; else if (c == '"') state = ME_S_QPARM; else { parm[nx++] = c; state = ME_S_PARM; } break; } /* Terminal state. */ switch (state) { case ME_FUNCTION: /* mid-function-name */ aname[nx] = '\0'; break; case ME_FUNCTIONx: /* space after function */ break; case ME_GND: /* nothing */ case ME_COMMENT: if (np) *np = s - 1; return EM_CONTINUE; case ME_S_PARMx: /* space after space-style parameter */ break; case ME_S_PARM: /* mid space-style parameter */ parm[nx++] = '\0'; params[++count] = &parm[nx]; break; default: fail(5); } success: if (c) { while (*s && isspace(*s)) s++; if (*s) { if (np) *np = s; else fail(4); } else if (np) *np = s; } else if (np) *np = s-1; /* If it's a macro, do variable substitutions. */ if (cause == IA_MACRO || cause == IA_KEYMAP || cause == IA_COMMAND || cause == IA_IDLE) { Cardinal j; for (j = 0; j < count; j++) params[j] = do_subst(params[j], True, False); } /* Search the action list. */ if (!strncasecmp(aname, PA_PFX, strlen(PA_PFX))) { popup_an_error("Invalid action: %s", aname); free_params(); return EM_ERROR; } any = -1; exact = -1; for (i = 0; i < actioncount; i++) { if (!strcasecmp(aname, actions[i].string)) { exact = any = i; break; } } if (exact < 0) { for (i = 0; i < actioncount; i++) { if (!strncasecmp(aname, actions[i].string, strlen(aname))) { if (any >= 0) { popup_an_error("Ambiguous action name: " "%s", aname); free_params(); return EM_ERROR; } any = i; } } } if (any >= 0) { sms->accumulated = False; sms->msec = 0L; ia_cause = cause; (*actions[any].proc)((Widget)NULL, (XEvent *)NULL, count? params: (String *)NULL, &count); free_params(); screen_disp(False); } else { popup_an_error("Unknown action: %s", aname); free_params(); return EM_ERROR; } #if defined(X3270_FT) /*[*/ if (ft_state != FT_NONE) sms->state = SS_FT_WAIT; #endif /*]*/ if (CKBWAIT) return EM_PAUSE; else return EM_CONTINUE; failure: popup_an_error("%s", fail_text[failreason-1]); return EM_ERROR; #undef fail #undef free_params } /* Run the string at the top of the stack. */ static void run_string(void) { int len; int len_left; trace_dsn("%s[%d] running\n", ST_NAME, sms_depth); sms->state = SS_RUNNING; len = strlen(sms->dptr); trace_dsn("%sString[%d]: '%s'\n", sms->is_hex ? "Hex" : "", sms_depth, sms->dptr); if (sms->is_hex) { if (CKBWAIT) { sms->state = SS_KBWAIT; trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } else { hex_input(sms->dptr); sms_pop(False); } } else { if ((len_left = emulate_input(sms->dptr, len, False))) { sms->dptr += len - len_left; if (CKBWAIT) { sms->state = SS_KBWAIT; trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } } else { sms_pop(False); } } } /* Run the macro at the top of the stack. */ static void run_macro(void) { char *a = sms->dptr; char *nextm; enum em_stat es; sms_t *s; trace_dsn("%s[%d] running\n", ST_NAME, sms_depth); /* * Keep executing commands off the line until one pauses or * we run out of commands. */ while (*a) { /* * Check for command failure. */ if (!sms->success) { trace_dsn("%s[%d] failed\n", ST_NAME, sms_depth); /* Propogate it. */ if (sms->next != SN) sms->next->success = False; break; } sms->state = SS_RUNNING; trace_dsn("%s[%d]: '%s'\n", ST_NAME, sms_depth, a); s = sms; s->success = True; s->executing = True; es = execute_command(st_cause[s->type], a, &nextm); s->executing = False; s->dptr = nextm; /* * If a new sms was started, we will be resumed * when it completes. */ if (sms != s) { return; } /* Macro could not execute. Abort it. */ if (es == EM_ERROR) { trace_dsn("%s[%d] error\n", ST_NAME, sms_depth); /* Propogate it. */ if (sms->next != SN) sms->next->success = False; /* If it was an idle command, cancel it. */ cancel_if_idle_command(); break; } /* Macro paused, implicitly or explicitly. Suspend it. */ if (es == EM_PAUSE || (int)sms->state >= (int)SS_KBWAIT) { if (sms->state == SS_RUNNING) sms->state = SS_KBWAIT; trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); sms->dptr = nextm; return; } /* Macro ran. */ a = nextm; } /* Finished with this macro. */ sms_pop(False); } /* Push a macro (macro, command or keymap action) on the stack. */ static void push_xmacro(enum sms_type type, char *s, Boolean is_login) { macro_output = False; if (!sms_push(type)) return; (void) strncpy(sms->msc, s, 1023); sms->msc[1023] = '\0'; sms->msc_len = strlen(s); if (sms->msc_len > 1023) sms->msc_len = 1023; if (is_login) { sms->state = SS_WAIT_IFIELD; sms->is_login = True; } else sms->state = SS_INCOMPLETE; sms_continue(); } /* Push a macro on the stack. */ void push_macro(char *s, Boolean is_login) { push_xmacro(ST_MACRO, s, is_login); } /* Push an interactive command on the stack. */ void push_command(char *s) { push_xmacro(ST_COMMAND, s, False); } /* Push an keymap action on the stack. */ void push_keymap_action(char *s) { push_xmacro(ST_KEYMAP, s, False); } /* Push an keymap action on the stack. */ void push_idle(char *s) { push_xmacro(ST_IDLE, s, False); } /* Push a string on the stack. */ static void push_string(char *s, Boolean is_login, Boolean is_hex) { if (!sms_push(ST_STRING)) return; (void) strncpy(sms->msc, s, 1023); sms->msc[1023] = '\0'; sms->msc_len = strlen(s); if (sms->msc_len > 1023) sms->msc_len = 1023; if (is_login) { sms->state = SS_WAIT_IFIELD; sms->is_login = True; } else sms->state = SS_INCOMPLETE; sms->is_hex = is_hex; if (sms_depth == 1) sms_continue(); } /* Push a Source'd file on the stack. */ static void push_file(int fd) { if (!sms_push(ST_FILE)) return; sms->infd = fd; read_from_file(); } /* Set a pending string. */ void ps_set(char *s, Boolean is_hex) { push_string(s, False, is_hex); } #if defined(X3270_MENUS) /*[*/ /* Callback for macros menu. */ void macro_command(struct macro_def *m) { push_macro(m->action, False); } #endif /*]*/ /* * If the string looks like an action, e.g., starts with "Xxx(", run a login * macro. Otherwise, set a simple pending login string. */ void login_macro(char *s) { char *t = s; Boolean looks_right = False; while (isspace(*t)) t++; if (isalnum(*t)) { while (isalnum(*t)) t++; while (isspace(*t)) t++; if (*t == '(') looks_right = True; } if (looks_right) push_macro(s, True); else push_string(s, True, False); } /* Run the first command in the msc[] buffer. */ static void run_script(void) { trace_dsn("%s[%d] running\n", ST_NAME, sms_depth); for (;;) { char *ptr; int cmd_len; char *cmd; sms_t *s; enum em_stat es; /* If the script isn't idle, we're done. */ if (sms->state != SS_IDLE) break; /* If a prompt is required, send one. */ if (sms->need_prompt) { script_prompt(sms->success); sms->need_prompt = False; } /* If there isn't a pending command, we're done. */ if (!sms->msc_len) break; /* Isolate the command. */ ptr = memchr(sms->msc, '\n', sms->msc_len); if (!ptr) break; *ptr++ = '\0'; cmd_len = ptr - sms->msc; cmd = sms->msc; /* Execute it. */ sms->state = SS_RUNNING; sms->success = True; trace_dsn("%s[%d]: '%s'\n", ST_NAME, sms_depth, cmd); s = sms; s->executing = True; es = execute_command(IA_SCRIPT, cmd, (char **)NULL); s->executing = False; /* Move the rest of the buffer over. */ if (cmd_len < s->msc_len) { s->msc_len -= cmd_len; (void) memmove(s->msc, ptr, s->msc_len); } else s->msc_len = 0; /* * If a new sms was started, we will be resumed * when it completes. */ if (sms != s) { s->need_prompt = True; return; } /* Handle what it did. */ if (es == EM_PAUSE || (int)sms->state >= (int)SS_KBWAIT) { if (sms->state == SS_RUNNING) sms->state = SS_KBWAIT; script_disable(); if (sms->state == SS_CLOSING) { sms_pop(False); return; } sms->need_prompt = True; } else if (es == EM_ERROR) { trace_dsn("%s[%d] error\n", ST_NAME, sms_depth); script_prompt(False); /* If it was an idle command, cancel it. */ cancel_if_idle_command(); } else script_prompt(sms->success); if (sms->state == SS_RUNNING) sms->state = SS_IDLE; else { trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } } } /* Read the next command from a file. */ static void read_from_file(void) { char *dptr; int len_left = sizeof(sms->msc); sms->msc_len = 0; dptr = sms->msc; while (len_left) { int nr; nr = read(sms->infd, dptr, 1); if (nr < 0) { sms_pop(False); return; } if (nr == 0) { if (sms->msc_len == 0) { sms_pop(False); return; } else { *++dptr = '\0'; break; } } if (*dptr == '\n') { if (sms->msc_len) { *dptr = '\0'; break; } } dptr++; sms->msc_len++; len_left--; } /* Run the command as a macro. */ trace_dsn("%s[%d] read '%s'\n", ST_NAME, sms_depth, sms->msc); sms->state = SS_INCOMPLETE; push_macro(sms->dptr, False); } /* Handle an error generated during the execution of a script or macro. */ void sms_error(const char *msg) { sms_t *s; Boolean is_script = False; /* Print the error message. */ s = sms_redirect_to(); is_script = (s != NULL); if (is_script) { char *text = Malloc(strlen("data: ") + strlen(msg) + 2); char *newline; char *last_space; sprintf(text, "data: %s", msg); newline = text; while ((newline = strchr(newline, '\n')) != NULL) *newline++ = ' '; last_space = strrchr(text, ' '); if (last_space != NULL && last_space == text + strlen(text) - 1) *last_space = '\n'; else strcat(text, "\n"); if (s->is_socket) send(s->infd, text, strlen(text), 0); else fprintf(s->outfile, "%s", text); Free(text); } else (void) fprintf(stderr, "%s\n", msg); /* Fail the current command. */ sms->success = False; /* Cancel any login. */ if (s != NULL && s->is_login) host_disconnect(True); } /* * Generate a response to a script command. * Makes sure that each line of output is prefixed with 'data:', if * appropriate, and makes sure that the output is newline terminated. * * If the parameter is an empty string, generates nothing, but if it is a * newline, generates an empty line. */ void sms_info(const char *fmt, ...) { char *nl; char msgbuf[4096]; char *msg = msgbuf; va_list args; sms_t *s; va_start(args, fmt); vsprintf(msgbuf, fmt, args); va_end(args); do { int nc; nl = strchr(msg, '\n'); if (nl != CN) nc = nl - msg; else nc = strlen(msg); if (nc || (nl != CN)) { if ((s = sms_redirect_to()) != NULL) { char *text = Malloc(strlen("data: ") + nc + 2); sprintf(text, "data: %.*s\n", nc, msg); if (s->is_socket) send(s->infd, text, strlen(text), 0); else (void) fprintf(s->outfile, "%s", text); Free(text); } else (void) printf("%.*s\n", nc, msg); } msg = nl + 1; } while (nl); macro_output = True; } /* Process available input from a script. */ static void script_input(void) { char buf[128]; int nr; char *ptr; char c; trace_dsn("Input for %s[%d] %d\n", ST_NAME, sms_depth, sms->state); /* Read in what you can. */ if (sms->is_socket) nr = recv(sms->infd, buf, sizeof(buf), 0); else nr = read(sms->infd, buf, sizeof(buf)); if (nr < 0) { #if defined(_WIN32) /*[*/ if (sms->is_socket) popup_an_error("%s[%d] recv: %s", ST_NAME, sms_depth, win32_strerror(GetLastError())); else #endif popup_an_errno(errno, "%s[%d] read", ST_NAME, sms_depth); return; } if (nr == 0) { /* end of file */ trace_dsn("EOF %s[%d]\n", ST_NAME, sms_depth); sms_pop(True); sms_continue(); return; } /* Append to the pending command, ignoring returns. */ ptr = buf; while (nr--) if ((c = *ptr++) != '\r') sms->msc[sms->msc_len++] = c; /* Run the command(s). */ sms->state = SS_INCOMPLETE; sms_continue(); } /* Resume a paused sms, if conditions are now ripe. */ void sms_continue(void) { static Boolean continuing = False; if (continuing) return; continuing = True; while (True) { if (sms == SN) { continuing = False; return; } switch (sms->state) { case SS_IDLE: continuing = False; return; /* nothing to do */ case SS_INCOMPLETE: case SS_RUNNING: break; /* let it proceed */ case SS_KBWAIT: if (CKBWAIT) { continuing = False; return; } break; case SS_WAIT_NVT: if (IN_ANSI) { sms->state = SS_WAIT_IFIELD; continue; } continuing = False; return; case SS_WAIT_3270: if (IN_3270 | IN_SSCP) { sms->state = SS_WAIT_IFIELD; continue; } continuing = False; return; case SS_WAIT_UNLOCK: if (KBWAIT) { continuing = False; return; } break; case SS_WAIT_IFIELD: if (!CAN_PROCEED) { continuing = False; return; } /* fall through... */ case SS_CONNECT_WAIT: if (HALF_CONNECTED || (CONNECTED && (kybdlock & KL_AWAITING_FIRST))) { continuing = False; return; } if (!CONNECTED) { /* connection failed */ if (sms->need_prompt) { script_prompt(False); sms->need_prompt = False; } break; } break; #if defined(X3270_FT) /*[*/ case SS_FT_WAIT: if (ft_state == FT_NONE) break; else { continuing = False; return; } #endif /*]*/ case SS_TIME_WAIT: continuing = False; return; case SS_WAIT_OUTPUT: case SS_SWAIT_OUTPUT: if (!CONNECTED) { popup_an_error("Host disconnected"); break; } continuing = False; return; case SS_WAIT_DISC: if (!CONNECTED) break; else { continuing = False; return; } case SS_PAUSED: continuing = False; return; case SS_EXPECTING: continuing = False; return; case SS_CLOSING: continuing = False; return; /* can't happen, I hope */ } /* Restart the sms. */ sms->state = SS_IDLE; if (sms->wait_id != 0L) { RemoveTimeOut(sms->wait_id); sms->wait_id = 0L; } switch (sms->type) { case ST_STRING: run_string(); break; case ST_MACRO: case ST_COMMAND: case ST_KEYMAP: case ST_IDLE: run_macro(); break; case ST_PEER: case ST_CHILD: script_enable(); run_script(); break; case ST_FILE: read_from_file(); break; } } continuing = False; } /* * Return True if there is a pending macro. */ Boolean sms_in_macro(void) { sms_t *s; for (s = sms; s != NULL; s = s->next) { if (s->type == ST_MACRO || s->type == ST_STRING) return True; } return False; } /* * Macro- and script-specific actions. */ static void dump_range(int first, int len, Boolean in_ascii, struct ea *buf, int rel_rows _is_unused, int rel_cols) { register int i; Boolean any = False; Boolean is_zero = False; char *linebuf; char *s; linebuf = Malloc(maxCOLS * 4 + 1); s = linebuf; /* * If the client has looked at the live screen, then if they later * execute 'Wait(output)', they will need to wait for output from the * host. output_wait_needed is cleared by sms_host_output, * which is called from the write logic in ctlr.c. */ if (sms != SN && buf == ea_buf) sms->output_wait_needed = True; is_zero = FA_IS_ZERO(get_field_attribute(first)); for (i = 0; i < len; i++) { if (i && !((first + i) % rel_cols)) { *s = '\0'; action_output("%s", linebuf); s = linebuf; any = False; } if (in_ascii) { char mb[16]; ucs4_t uc; int j; int xlen; if (buf[first + i].fa) { is_zero = FA_IS_ZERO(buf[first + i].fa); s += sprintf(s, " "); } else if (is_zero) s += sprintf(s, " "); else #if defined(X3270_DBCS) /*[*/ if (IS_LEFT(ctlr_dbcs_state(first + i))) { xlen = ebcdic_to_multibyte( (buf[first + i].cc << 8) | buf[first + i + 1].cc, mb, sizeof(mb)); for (j = 0; j < xlen - 1; j++) { s += sprintf(s, "%c", mb[j]); } } else if (IS_RIGHT(ctlr_dbcs_state(first + i))) { continue; } else #endif /*]*/ { xlen = ebcdic_to_multibyte_x( buf[first + i].cc, buf[first + i].cs, mb, sizeof(mb), EUO_BLANK_UNDEF, &uc); for (j = 0; j < xlen - 1; j++) { s += sprintf(s, "%c", mb[j]); } } } else { s += sprintf(s, "%s%02x", i ? " " : "", buf[first + i].cc); } any = True; } if (any) { *s = '\0'; action_output("%s", linebuf); } Free(linebuf); } static void dump_fixed(String params[], Cardinal count, const char *name, Boolean in_ascii, struct ea *buf, int rel_rows, int rel_cols, int caddr) { int row, col, len, rows = 0, cols = 0; switch (count) { case 0: /* everything */ row = 0; col = 0; len = rel_rows*rel_cols; break; case 1: /* from cursor, for n */ row = caddr / rel_cols; col = caddr % rel_cols; len = atoi(params[0]); break; case 3: /* from (row,col), for n */ row = atoi(params[0]); col = atoi(params[1]); len = atoi(params[2]); break; case 4: /* from (row,col), for rows x cols */ row = atoi(params[0]); col = atoi(params[1]); rows = atoi(params[2]); cols = atoi(params[3]); len = 0; break; default: popup_an_error("%s requires 0, 1, 3 or 4 arguments", name); return; } if ( (row < 0 || row > rel_rows || col < 0 || col > rel_cols || len < 0) || ((count < 4) && ((row * rel_cols) + col + len > rel_rows * rel_cols)) || ((count == 4) && (cols < 0 || rows < 0 || col + cols > rel_cols || row + rows > rel_rows)) ) { popup_an_error("%s: Invalid argument", name); return; } if (count < 4) dump_range((row * rel_cols) + col, len, in_ascii, buf, rel_rows, rel_cols); else { int i; for (i = 0; i < rows; i++) dump_range(((row+i) * rel_cols) + col, cols, in_ascii, buf, rel_rows, rel_cols); } } static void dump_field(Cardinal count, const char *name, Boolean in_ascii) { int faddr; unsigned char fa; int start, baddr; int len = 0; if (count != 0) { popup_an_error("%s requires 0 arguments", name); return; } if (!formatted) { popup_an_error("%s: Screen is not formatted", name); return; } faddr = find_field_attribute(cursor_addr); fa = get_field_attribute(cursor_addr); start = faddr; INC_BA(start); baddr = start; do { if (ea_buf[baddr].fa) break; len++; INC_BA(baddr); } while (baddr != start); dump_range(start, len, in_ascii, ea_buf, ROWS, COLS); } void Ascii_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { dump_fixed(params, *num_params, action_name(Ascii_action), True, ea_buf, ROWS, COLS, cursor_addr); } void AsciiField_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params) { dump_field(*num_params, action_name(AsciiField_action), True); } void Ebcdic_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { dump_fixed(params, *num_params, action_name(Ebcdic_action), False, ea_buf, ROWS, COLS, cursor_addr); } void EbcdicField_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params) { dump_field(*num_params, action_name(EbcdicField_action), False); } static unsigned char calc_cs(unsigned char cs) { switch (cs & CS_MASK) { case CS_APL: return 0xf1; case CS_LINEDRAW: return 0xf2; case CS_DBCS: return 0xf8; default: return 0x00; } } /* * Internals of the ReadBuffer action. * Operates on the supplied 'buf' parameter, which might be the live * screen buffer 'ea_buf' or a copy saved with 'Snap'. */ static void do_read_buffer(String *params, Cardinal num_params, struct ea *buf, int fd) { register int baddr; unsigned char current_fg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; Boolean in_ebcdic = False; rpf_t r; if (num_params > 0) { if (num_params > 1) { popup_an_error("%s: extra agruments", action_name(ReadBuffer_action)); return; } if (!strncasecmp(params[0], "Ascii", strlen(params[0]))) in_ebcdic = False; else if (!strncasecmp(params[0], "Ebcdic", strlen(params[0]))) in_ebcdic = True; else { popup_an_error("%s: first parameter must be " "Ascii or Ebcdic", action_name(ReadBuffer_action)); return; } } if (fd >= 0) { char *s; int nw; s = xs_buffer("rows %d cols %d cursor %d\n", ROWS, COLS, cursor_addr); nw = write(fd, s, strlen(s)); Free(s); if (nw < 0) return; } rpf_init(&r); baddr = 0; do { if (!(baddr % COLS)) { if (baddr) { if (fd >= 0) { if (write(fd, r.buf + 1, strlen(r.buf + 1)) < 0) goto done; if (write(fd, "\n", 1) < 0) goto done; } else action_output("%s", r.buf + 1); } rpf_reset(&r); } if (buf[baddr].fa) { rpf(&r, " SF(%02x=%02x", XA_3270, buf[baddr].fa); if (buf[baddr].fg) rpf(&r, ",%02x=%02x", XA_FOREGROUND, buf[baddr].fg); if (buf[baddr].gr) rpf(&r, ",%02x=%02x", XA_HIGHLIGHTING, buf[baddr].gr | 0xf0); if (buf[baddr].cs & CS_MASK) rpf(&r, ",%02x=%02x", XA_CHARSET, calc_cs(buf[baddr].cs)); rpf(&r, ")"); } else { if (buf[baddr].fg != current_fg) { rpf(&r, " SA(%02x=%02x)", XA_FOREGROUND, buf[baddr].fg); current_fg = buf[baddr].fg; } if (buf[baddr].gr != current_gr) { rpf(&r, " SA(%02x=%02x)", XA_HIGHLIGHTING, buf[baddr].gr | 0xf0); current_gr = buf[baddr].gr; } if ((buf[baddr].cs & ~CS_GE) != (current_cs & ~CS_GE)) { rpf(&r, " SA(%02x=%02x)", XA_CHARSET, calc_cs(buf[baddr].cs)); current_cs = buf[baddr].cs; } if (in_ebcdic) { if (buf[baddr].cs & CS_GE) rpf(&r, " GE(%02x)", buf[baddr].cc); else rpf(&r, " %02x", buf[baddr].cc); } else { Boolean done = False; char mb[16]; int j; ucs4_t uc; #if defined(X3270_DBCS) /*[*/ int len; if (IS_LEFT(ctlr_dbcs_state(baddr))) { len = ebcdic_to_multibyte( (buf[baddr].cc << 8) | buf[baddr + 1].cc, mb, sizeof(mb)); rpf(&r, " "); for (j = 0; j < len-1; j++) rpf(&r, "%02x", mb[j] & 0xff); done = True; } else if (IS_RIGHT(ctlr_dbcs_state(baddr))) { rpf(&r, " -"); done = True; } #endif /*]*/ switch (buf[baddr].cc) { case EBC_null: mb[0] = '\0'; break; case EBC_so: mb[0] = 0x0e; mb[1] = '\0'; break; case EBC_si: mb[0] = 0x0f; mb[1] = '\0'; break; default: (void) ebcdic_to_multibyte_x( buf[baddr].cc, buf[baddr].cs, mb, sizeof(mb), EUO_NONE, &uc); break; } if (!done) { rpf(&r, " "); if (mb[0] == '\0') rpf(&r, "00"); else { for (j = 0; mb[j]; j++) { rpf(&r, "%02x", mb[j] & 0xff); } } } } } INC_BA(baddr); } while (baddr != 0); if (fd >= 0) { if (write(fd, r.buf + 1, strlen(r.buf + 1)) < 0) goto done; if (write(fd, "\n", 1) < 0) goto done; } else action_output("%s", r.buf + 1); done: rpf_free(&r); } /* * ReadBuffer action. */ void ReadBuffer_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { do_read_buffer(params, *num_params, ea_buf, -1); } /* * The sms prompt is preceeded by a status line with 11 fields: * * 1 keyboard status * U unlocked * L locked, waiting for host response * E locked, keying error * 2 formatting status of screen * F formatted * U unformatted * 3 protection status of current field * U unprotected (modifiable) * P protected * 4 connect status * N not connected * C(host) connected * 5 emulator mode * N not connected * C connected in ANSI character mode * L connected in ANSI line mode * P 3270 negotiation pending * I connected in 3270 mode * 6 model number * 7 rows * 8 cols * 9 cursor row * 10 cursor col * 11 main window id */ static char * status_string(void) { char kb_stat; char fmt_stat; char prot_stat; char *connect_stat = CN; char em_mode; char s[1024]; char *r; if (!kybdlock) kb_stat = 'U'; else if (!CONNECTED || KBWAIT) kb_stat = 'L'; else kb_stat = 'E'; if (formatted) fmt_stat = 'F'; else fmt_stat = 'U'; if (!formatted) prot_stat = 'U'; else { unsigned char fa; fa = get_field_attribute(cursor_addr); if (FA_IS_PROTECTED(fa)) prot_stat = 'P'; else prot_stat = 'U'; } if (CONNECTED) connect_stat = xs_buffer("C(%s)", current_host); else connect_stat = NewString("N"); if (CONNECTED) { if (IN_ANSI) { if (linemode) em_mode = 'L'; else em_mode = 'C'; } else if (IN_3270) em_mode = 'I'; else em_mode = 'P'; } else em_mode = 'N'; (void) sprintf(s, "%c %c %c %s %c %d %d %d %d %d 0x%lx", kb_stat, fmt_stat, prot_stat, connect_stat, em_mode, model_num, ROWS, COLS, cursor_addr / COLS, cursor_addr % COLS, #if defined(X3270_DISPLAY) /*[*/ XtWindow(toplevel) #else /*][*/ 0L #endif /*]*/ ); r = NewString(s); Free(connect_stat); return r; } static void script_prompt(Boolean success) { char *s; char timing[64]; char *t; s = status_string(); if (sms != SN && sms->accumulated) (void) sprintf(timing, "%ld.%03ld", sms->msec / 1000L, sms->msec % 1000L); else (void) strcpy(timing, "-"); t = Malloc(strlen(s) + 1 + strlen(timing) + 1 + 6 + 1); sprintf(t, "%s %s\n%s\n", s, timing, success ? "ok" : "error"); Free(s); if (sms->is_socket) { send(sms->infd, t, strlen(t), 0); } else { (void) fprintf(sms->outfile, "%s", t); (void) fflush(sms->outfile); } free(t); } /* Save the state of the screen for Snap queries. */ static char *snap_status = NULL; static struct ea *snap_buf = NULL; static int snap_rows = 0; static int snap_cols = 0; static int snap_field_start = -1; static int snap_field_length = -1; static int snap_caddr = 0; static void snap_save(void) { sms->output_wait_needed = True; Replace(snap_status, status_string()); Replace(snap_buf, (struct ea *)Malloc(ROWS*COLS*sizeof(struct ea))); (void) memcpy(snap_buf, ea_buf, ROWS*COLS*sizeof(struct ea)); snap_rows = ROWS; snap_cols = COLS; if (!formatted) { snap_field_start = -1; snap_field_length = -1; } else { int baddr; snap_field_length = 0; snap_field_start = find_field_attribute(cursor_addr); INC_BA(snap_field_start); baddr = snap_field_start; do { if (ea_buf[baddr].fa) break; snap_field_length++; INC_BA(baddr); } while (baddr != snap_field_start); } snap_caddr = cursor_addr; } /* * "Snap" action, maintains a snapshot for consistent multi-field comparisons: * * Snap [Save] * updates the saved image from the live image * Snap Rows * returns the number of rows * Snap Cols * returns the number of columns * Snap Staus * Snap Ascii ... * Snap AsciiField (not yet) * Snap Ebcdic ... * Snap EbcdicField (not yet) * Snap ReadBuffer * runs the named command * Snap Wait [tmo] Output * wait for the screen to change, then do a Snap Save */ void Snap_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (sms == SN || sms->state != SS_RUNNING) { popup_an_error("%s can only be called from scripts or macros", action_name(Snap_action)); return; } if (*num_params == 0) { snap_save(); return; } /* Handle 'Snap Wait' separately. */ if (!strcasecmp(params[0], action_name(Wait_action))) { long tmo = -1; char *ptr; Cardinal maxp = 0; if (*num_params > 1 && (tmo = strtol(params[1], &ptr, 10)) >= 0 && ptr != params[0] && *ptr == '\0') { maxp = 3; } else { tmo = -1; maxp = 2; } if (*num_params > maxp) { popup_an_error("Too many arguments to %s %s", action_name(Snap_action), action_name(Wait_action)); return; } if (*num_params < maxp) { popup_an_error("Too few arguments to %s %s", action_name(Snap_action), action_name(Wait_action)); return; } if (strcasecmp(params[*num_params - 1], "Output")) { popup_an_error("Unknown parameter to %s %s", action_name(Snap_action), action_name(Wait_action)); return; } /* Must be connected. */ if (!(CONNECTED || HALF_CONNECTED)) { popup_an_error("%s: Not connected", action_name(Snap_action)); return; } /* * Make sure we need to wait. * If we don't, then Snap(Wait) is equivalent to Snap(). */ if (!sms->output_wait_needed) { snap_save(); return; } /* Set the new state. */ sms->state = SS_SWAIT_OUTPUT; /* Set up a timeout, if they want one. */ if (tmo >= 0) sms->wait_id = AddTimeOut(tmo? (tmo * 1000): 1, wait_timed_out); return; } if (!strcasecmp(params[0], "Save")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } snap_save(); } else if (!strcasecmp(params[0], "Status")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } if (snap_status == NULL) { popup_an_error("No saved state"); return; } action_output("%s", snap_status); } else if (!strcasecmp(params[0], "Rows")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } if (snap_status == NULL) { popup_an_error("No saved state"); return; } action_output("%d", snap_rows); } else if (!strcasecmp(params[0], "Cols")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } if (snap_status == NULL) { popup_an_error("No saved state"); return; } action_output("%d", snap_cols); } else if (!strcasecmp(params[0], action_name(Ascii_action))) { if (snap_status == NULL) { popup_an_error("No saved state"); return; } dump_fixed(params + 1, *num_params - 1, action_name(Ascii_action), True, snap_buf, snap_rows, snap_cols, snap_caddr); } else if (!strcasecmp(params[0], action_name(Ebcdic_action))) { if (snap_status == NULL) { popup_an_error("No saved state"); return; } dump_fixed(params + 1, *num_params - 1, action_name(Ebcdic_action), False, snap_buf, snap_rows, snap_cols, snap_caddr); } else if (!strcasecmp(params[0], action_name(ReadBuffer_action))) { if (snap_status == NULL) { popup_an_error("No saved state"); return; } do_read_buffer(params + 1, *num_params - 1, snap_buf, -1); } else { popup_an_error("%s: Argument must be Save, Status, Rows, Cols, " "%s, %s %s, or %s", action_name(Snap_action), action_name(Wait_action), action_name(Ascii_action), action_name(Ebcdic_action), action_name(ReadBuffer_action)); } } /* * Wait for various conditions. */ void Wait_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { enum sms_state next_state = SS_WAIT_IFIELD; long tmo = -1; char *ptr; Cardinal np; String *pr; /* Pick off the timeout parameter first. */ if (*num_params > 0 && (tmo = strtol(params[0], &ptr, 10)) >= 0 && ptr != params[0] && *ptr == '\0') { np = *num_params - 1; pr = params + 1; } else { tmo = -1; np = *num_params; pr = params; } if (np > 1) { popup_an_error("Too many arguments to %s or invalid timeout " "value", action_name(Wait_action)); return; } if (sms == SN || sms->state != SS_RUNNING) { popup_an_error("%s can only be called from scripts or macros", action_name(Wait_action)); return; } if (np == 1) { if (!strcasecmp(pr[0], "NVTMode") || !strcasecmp(pr[0], "ansi")) { if (!IN_ANSI) next_state = SS_WAIT_NVT; } else if (!strcasecmp(pr[0], "3270Mode") || !strcasecmp(pr[0], "3270")) { if (!IN_3270) next_state = SS_WAIT_3270; } else if (!strcasecmp(pr[0], "Output")) { if (sms->output_wait_needed) next_state = SS_WAIT_OUTPUT; else return; } else if (!strcasecmp(pr[0], "Disconnect")) { if (CONNECTED) next_state = SS_WAIT_DISC; else return; } else if (!strcasecmp(pr[0], "Unlock")) { if (KBWAIT) next_state = SS_WAIT_UNLOCK; else return; } else if (tmo > 0 && !strcasecmp(pr[0], "Seconds")) { next_state = SS_TIME_WAIT; } else if (strcasecmp(pr[0], "InputField")) { popup_an_error("%s argument must be InputField, " "NVTmode, 3270Mode, Output, Seconds, Disconnect " "or Unlock", action_name(Wait_action)); return; } } if (!(CONNECTED || HALF_CONNECTED)) { popup_an_error("%s: Not connected", action_name(Wait_action)); return; } /* Is it already okay? */ if (next_state == SS_WAIT_IFIELD && CAN_PROCEED) return; /* No, wait for it to happen. */ sms->state = next_state; /* Set up a timeout, if they want one. */ if (tmo >= 0) sms->wait_id = AddTimeOut(tmo? (tmo * 1000): 1, wait_timed_out); } /* * Callback from Connect() and Reconnect() actions, to minimally pause a * running sms. */ void sms_connect_wait(void) { if (sms != SN && (int)sms->state >= (int)SS_RUNNING && sms->state != SS_WAIT_IFIELD) { if (HALF_CONNECTED || (CONNECTED && (kybdlock & KL_AWAITING_FIRST))) sms->state = SS_CONNECT_WAIT; } } /* * Callback from ctlr.c, to indicate that the host has changed the screen. */ void sms_host_output(void) { if (sms != SN) { sms->output_wait_needed = False; switch (sms->state) { case SS_SWAIT_OUTPUT: snap_save(); /* fall through... */ case SS_WAIT_OUTPUT: sms->state = SS_RUNNING; sms_continue(); break; default: break; } } } /* Return whether error pop-ups and acition output should be short-circuited. */ static sms_t * sms_redirect_to(void) { sms_t *s; for (s = sms; s != SN; s = s->next) { if ((s->type == ST_CHILD || s->type == ST_PEER) && (s->state == SS_RUNNING || s->state == SS_CONNECT_WAIT || s->state == SS_WAIT_OUTPUT || s->state == SS_SWAIT_OUTPUT || s->wait_id != 0L)) return s; } return NULL; } /* Return whether error pop-ups and acition output should be short-circuited. */ Boolean sms_redirect(void) { return sms_redirect_to() != NULL; } #if defined(X3270_MENUS) || defined(C3270) /*[*/ /* Return whether any scripts are active. */ Boolean sms_active(void) { return sms != SN; } #endif /*]*/ /* Translate an expect string (uses C escape syntax). */ static void expand_expect(char *s) { char *t = Malloc(strlen(s) + 1); char c; enum { XS_BASE, XS_BS, XS_O, XS_X } state = XS_BASE; int n = 0; int nd = 0; static char hexes[] = "0123456789abcdef"; expect_text = t; while ((c = *s++)) { switch (state) { case XS_BASE: if (c == '\\') state = XS_BS; else *t++ = c; break; case XS_BS: switch (c) { case 'x': nd = 0; n = 0; state = XS_X; break; case 'r': *t++ = '\r'; state = XS_BASE; break; case 'n': *t++ = '\n'; state = XS_BASE; break; case 'b': *t++ = '\b'; state = XS_BASE; break; default: if (c >= '0' && c <= '7') { nd = 1; n = c - '0'; state = XS_O; } else { *t++ = c; state = XS_BASE; } break; } break; case XS_O: if (nd < 3 && c >= '0' && c <= '7') { n = (n * 8) + (c - '0'); nd++; } else { *t++ = n; *t++ = c; state = XS_BASE; } break; case XS_X: if (isxdigit(c)) { n = (n * 16) + strchr(hexes, tolower(c)) - hexes; nd++; } else { if (nd) *t++ = n; else *t++ = 'x'; *t++ = c; state = XS_BASE; } break; } } expect_len = t - expect_text; } /* 'mem' version of strstr */ static char * memstr(char *s1, char *s2, int n1, int n2) { int i; for (i = 0; i <= n1 - n2; i++, s1++) if (*s1 == *s2 && !memcmp(s1, s2, n2)) return s1; return CN; } /* Check for a match against an expect string. */ static Boolean expect_matches(void) { int ix, i; unsigned char buf[ANSI_SAVE_SIZE]; char *t; ix = (ansi_save_ix + ANSI_SAVE_SIZE - ansi_save_cnt) % ANSI_SAVE_SIZE; for (i = 0; i < ansi_save_cnt; i++) { buf[i] = ansi_save_buf[(ix + i) % ANSI_SAVE_SIZE]; } t = memstr((char *)buf, expect_text, ansi_save_cnt, expect_len); if (t != CN) { ansi_save_cnt -= ((unsigned char *)t - buf) + expect_len; Free(expect_text); expect_text = CN; return True; } else return False; } /* Store an ANSI character for use by the Ansi action. */ void sms_store(unsigned char c) { if (sms == SN) return; /* Save the character in the buffer. */ ansi_save_buf[ansi_save_ix++] = c; ansi_save_ix %= ANSI_SAVE_SIZE; if (ansi_save_cnt < ANSI_SAVE_SIZE) ansi_save_cnt++; /* If a script or macro is waiting to match a string, check now. */ if (sms->state == SS_EXPECTING && expect_matches()) { RemoveTimeOut(sms->expect_id); sms->expect_id = 0L; sms->state = SS_INCOMPLETE; sms_continue(); } } /* Dump whatever ANSI data has been sent by the host since last called. */ void AnsiText_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { register int i; int ix; unsigned char c; char linebuf[ANSI_SAVE_SIZE * 4 + 1]; char *s = linebuf; if (!ansi_save_cnt) return; ix = (ansi_save_ix + ANSI_SAVE_SIZE - ansi_save_cnt) % ANSI_SAVE_SIZE; for (i = 0; i < ansi_save_cnt; i++) { c = ansi_save_buf[(ix + i) % ANSI_SAVE_SIZE]; if (!(c & ~0x1f)) switch (c) { case '\n': s += sprintf(s, "\\n"); break; case '\r': s += sprintf(s, "\\r"); break; case '\b': s += sprintf(s, "\\b"); break; default: s += sprintf(s, "\\%03o", c); break; } else if (c == '\\') s += sprintf(s, "\\\\"); else *s++ = (char)c; } *s = '\0'; action_output("%s", linebuf); ansi_save_cnt = 0; ansi_save_ix = 0; } /* Pause a script. */ void PauseScript_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { if (sms == SN || (sms->type != ST_PEER && sms->type != ST_CHILD)) { popup_an_error("%s can only be called from a script", action_name(PauseScript_action)); return; } sms->state = SS_PAUSED; } /* Continue a script. */ void ContinueScript_action(Widget w, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (check_usage(ContinueScript_action, *num_params, 1, 1) < 0) return; /* * If this is a nested script, this action aborts the current script, * then applies to the previous one. */ if (w == (Widget)NULL && sms_depth > 1) sms_pop(False); /* Continue the previous script. */ if (sms == SN || sms->state != SS_PAUSED) { popup_an_error("%s: No script waiting", action_name(ContinueScript_action)); sms_continue(); return; } action_output("%s", params[0]); sms->state = SS_RUNNING; sms_continue(); } /* Stop listening to stdin. */ void CloseScript_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (sms != SN && (sms->type == ST_PEER || sms->type == ST_CHILD)) { /* Close this script. */ sms->state = SS_CLOSING; script_prompt(True); /* If nonzero status passed, fail the calling script. */ if (*num_params > 0 && atoi(params[0]) != 0 && sms->next != SN) { sms->next->success = False; if (sms->is_login) host_disconnect(True); } } else popup_an_error("%s can only be called from a script", action_name(CloseScript_action)); } /* Execute an arbitrary shell command. */ void Execute_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int status; if (check_usage(Execute_action, *num_params, 1, 1) < 0) return; status = system(params[0]); if (status < 0) { popup_an_errno(errno, "system(\"%s\") failed", params[0]); } else if (status != 0) { #if defined(_WIN32) /*[*/ popup_an_error("system(\"%s\") exited with status %d\n", params[0], status); #else /*][*/ if (WIFEXITED(status)) { popup_an_error("system(\"%s\") exited with status %d\n", params[0], WEXITSTATUS(status)); } else if (WIFSIGNALED(status)) { popup_an_error("system(\"%s\") killed by signal %d\n", params[0], WTERMSIG(status)); } else if (WIFSTOPPED(status)) { popup_an_error("system(\"%s\") stopped by signal %d\n", params[0], WSTOPSIG(status)); } #endif /*]*/ } } /* Timeout for Expect action. */ static void expect_timed_out(void) { if (sms == SN || sms->state != SS_EXPECTING) return; Free(expect_text); expect_text = CN; popup_an_error("%s: Timed out", action_name(Expect_action)); sms->expect_id = 0L; sms->state = SS_INCOMPLETE; sms->success = False; if (sms->is_login) host_disconnect(True); sms_continue(); } /* Timeout for Wait action. */ static void wait_timed_out(void) { /* If they just wanted a delay, succeed. */ if (sms->state == SS_TIME_WAIT) { sms->success = True; sms->state = SS_INCOMPLETE; sms_continue(); return; } /* Pop up the error message. */ popup_an_error("%s: Timed out", action_name(Wait_action)); /* Forget the ID. */ sms->wait_id = 0L; /* If this is a login macro, it has failed. */ if (sms->is_login) host_disconnect(True); sms->success = False; sms->state = SS_INCOMPLETE; /* Let the script proceed. */ sms_continue(); } /* Wait for a string from the host (ANSI mode only). */ void Expect_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int tmo; /* Verify the environment and parameters. */ if (sms == SN || sms->state != SS_RUNNING) { popup_an_error("%s can only be called from a script or macro", action_name(Expect_action)); return; } if (check_usage(Expect_action, *num_params, 1, 2) < 0) return; if (!IN_ANSI) { popup_an_error("%s is valid only when connected in ANSI mode", action_name(Expect_action)); } if (*num_params == 2) { tmo = atoi(params[1]); if (tmo < 1 || tmo > 600) { popup_an_error("%s: Invalid timeout: %s", action_name(Expect_action), params[1]); return; } } else tmo = 30; /* See if the text is there already; if not, wait for it. */ expand_expect(params[0]); if (!expect_matches()) { sms->expect_id = AddTimeOut(tmo * 1000, expect_timed_out); sms->state = SS_EXPECTING; } /* else allow sms to proceed */ } #if defined(X3270_MENUS) /*[*/ /* "Execute an Action" menu option */ static Widget execute_action_shell = (Widget)NULL; /* Callback for "OK" button on execute action popup */ static void execute_action_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *text; text = XawDialogGetValueString((Widget)client_data); XtPopdown(execute_action_shell); if (!text) return; push_macro(text, False); } void execute_action_option(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { if (execute_action_shell == NULL) execute_action_shell = create_form_popup("ExecuteAction", execute_action_callback, (XtCallbackProc)NULL, FORM_NO_CC); popup_popup(execute_action_shell, XtGrabExclusive); } #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ # if defined(_WIN32) /*[*/ /* Let the system pick a TCP port to bind to, and listen on it. */ static unsigned short pick_port(int *sp) { int s; struct sockaddr_in sin; socklen_t len; s = socket(PF_INET, SOCK_STREAM, 0); if (s < 0) { popup_an_error("socket: %s\n", win32_strerror(GetLastError())); return 0; } (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) { popup_an_error("bind: %s\n", win32_strerror(GetLastError())); closesocket(s); return 0; } len = sizeof(sin); if (getsockname(s, (struct sockaddr *)&sin, &len) < 0) { popup_an_error("getsockaddr: %s\n", win32_strerror(GetLastError())); closesocket(s); return 0; } if (listen(s, 10) < 0) { popup_an_error("listen: %s\n", win32_strerror(GetLastError())); closesocket(s); return 0; } *sp = s; return ntohs(sin.sin_port); } # endif /*]*/ /* "Script" action, runs a script as a child process. */ # if !defined(_WIN32) /*[*/ void Script_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int inpipe[2]; int outpipe[2]; if (*num_params < 1) { popup_an_error("%s requires at least one argument", action_name(Script_action)); return; } /* Create a new script description. */ if (!sms_push(ST_CHILD)) return; /* * Create pipes and stdout stream for the script process. * inpipe[] is read by x3270, written by the script * outpipe[] is written by x3270, read by the script */ if (pipe(inpipe) < 0) { sms_pop(False); popup_an_error("pipe() failed"); return; } if (pipe(outpipe) < 0) { (void) close(inpipe[0]); (void) close(inpipe[1]); sms_pop(False); popup_an_error("pipe() failed"); return; } if ((sms->outfile = fdopen(outpipe[1], "w")) == (FILE *)NULL) { (void) close(inpipe[0]); (void) close(inpipe[1]); (void) close(outpipe[0]); (void) close(outpipe[1]); sms_pop(False); popup_an_error("fdopen() failed"); return; } (void) SETLINEBUF(sms->outfile); /* Fork and exec the script process. */ if ((sms->pid = fork_child()) < 0) { (void) close(inpipe[0]); (void) close(inpipe[1]); (void) close(outpipe[0]); sms_pop(False); popup_an_error("fork() failed"); return; } /* Child processing. */ if (sms->pid == 0) { char **argv; Cardinal i; char env_buf[2][32]; /* Clean up the pipes. */ (void) close(outpipe[1]); (void) close(inpipe[0]); /* Export the names of the pipes into the environment. */ (void) sprintf(env_buf[0], "X3270OUTPUT=%d", outpipe[0]); (void) putenv(env_buf[0]); (void) sprintf(env_buf[1], "X3270INPUT=%d", inpipe[1]); (void) putenv(env_buf[1]); /* Set up arguments. */ argv = (char **)Malloc((*num_params + 1) * sizeof(char *)); for (i = 0; i < *num_params; i++) argv[i] = params[i]; argv[i] = CN; /* Exec. */ (void) execvp(params[0], argv); (void) fprintf(stderr, "exec(%s) failed\n", params[0]); (void) _exit(1); } /* Clean up our ends of the pipes. */ sms->infd = inpipe[0]; (void) close(inpipe[1]); (void) close(outpipe[0]); /* Enable input. */ script_enable(); /* Set up to reap the child's exit status. */ ++children; } # endif /*]*/ # if defined(_WIN32) /*[*/ /* "Script" action, runs a script as a child process. */ void Script_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int s = -1; unsigned short port = 0; HANDLE hevent; char *pe; STARTUPINFO startupinfo; PROCESS_INFORMATION process_information; char *args; Cardinal i; if (*num_params < 1) { popup_an_error("%s requires at least one argument", action_name(Script_action)); return; } /* Set up X3270PORT for the child process. */ port = pick_port(&s); if (port == 0) return; hevent = CreateEvent(NULL, FALSE, FALSE, NULL); if (hevent == NULL) { popup_an_error("CreateEvent: %s", win32_strerror(GetLastError())); closesocket(s); return; } if (WSAEventSelect(s, hevent, FD_ACCEPT) != 0) { popup_an_error("WSAEventSelect: %s", win32_strerror(GetLastError())); closesocket(s); return; } pe = xs_buffer("X3270PORT=%d", port); putenv(pe); Free(pe); /* Start the child process. */ (void) memset(&startupinfo, '\0', sizeof(STARTUPINFO)); startupinfo.cb = sizeof(STARTUPINFO); (void) memset(&process_information, '\0', sizeof(PROCESS_INFORMATION)); args = NewString(params[0]); for (i = 1; i < *num_params; i++) { char *t; if (strchr(params[i], ' ') != NULL && params[i][0] != '"' && params[i][strlen(params[i]) - 1] != '"') t = xs_buffer("%s \"%s\"", args, params[i]); else t = xs_buffer("%s %s", args, params[i]); Free(args); args = t; } if (CreateProcess( NULL, args, NULL, NULL, FALSE, 0, NULL, NULL, &startupinfo, &process_information) == 0) { popup_an_error("CreateProcess(%s) failed: %s", params[0], win32_strerror(GetLastError())); Free(args); return; } else { Free(args); CloseHandle(process_information.hThread); } /* Create a new script description. */ if (!sms_push(ST_CHILD)) return; sms->child_handle = process_information.hProcess; sms->inhandle = hevent; sms->infd = s; /* * Wait for the child process to exit. * Note that this is an asynchronous event -- exits for multiple * children can happen in any order. */ sms->exit_id = AddInput((int)process_information.hProcess, child_exited); /* Allow the child script to connect back to us. */ sms->listen_id = AddInput((int)hevent, child_socket_connection); /* Enable input. */ script_enable(); } # endif /*]*/ #endif /*]*/ /* "Macro" action, explicitly invokes a named macro. */ void Macro_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { struct macro_def *m; if (check_usage(Macro_action, *num_params, 1, 1) < 0) return; for (m = macro_defs; m != (struct macro_def *)NULL; m = m->next) { if (!strcmp(m->name, params[0])) { push_macro(m->action, False); return; } } popup_an_error("no such macro: '%s'", params[0]); } #if defined(X3270_SCRIPT) /*[*/ /* * Idle cancellation: cancels the idle command if the current sms or any sms * that called it caused an error. */ void cancel_if_idle_command(void) { sms_t *s; for (s = sms; s != NULL; s = s->next) { if (s->type == ST_IDLE) { cancel_idle_timer(); s->idle_error = True; trace_dsn("Cancelling idle command"); break; } } } #endif /*]*/ #if defined(X3270_PRINTER) /*[*/ /* "Printer" action, starts or stops a printer session. */ void Printer_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (check_usage(Printer_action, *num_params, 1, 2) < 0) return; if (!strcasecmp(params[0], "Start")) { printer_start((*num_params > 1)? params[1] : CN); } else if (!strcasecmp(params[0], "Stop")) { if (*num_params != 1) { popup_an_error("%s: Extra argument(s)", action_name(Printer_action)); return; } printer_stop(); } else { popup_an_error("%s: Argument must Start or Stop", action_name(Printer_action)); } } #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ /* Abort all running scripts. */ void abort_script(void) { while (sms != SN) { #if !defined(_WIN32) /*[*/ if (sms->type == ST_CHILD && sms->pid > 0) (void) kill(sms->pid, SIGTERM); #endif /*]*/ sms_pop(True); } } /* "Abort" action, stops pending scripts. */ void Abort_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { #if !defined(_WIN32) /*[*/ child_ignore_output(); #endif /*]*/ abort_script(); } #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ /* Accumulate command execution time. */ void sms_accumulate_time(struct timeval *t0, struct timeval *t1) { if (sms != SN) { sms->accumulated = True; sms->msec += (t1->tv_sec - t0->tv_sec) * 1000 + (t1->tv_usec - t0->tv_usec + 500) / 1000; #if defined(DEBUG_ACCUMULATE) /*[*/ printf("%s: accumulated %lu msec\n", ST_NAME, sms->msec); #endif /*]*/ } } #endif /*]*/ void Query_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { static struct { char *name; const char *(*fn)(void); } queries[] = { { "BindPluName", net_query_bind_plu_name }, { "ConnectionState", net_query_connection_state }, { "Host", net_query_host }, { "LuName", net_query_lu_name }, { CN, NULL } }; int i; switch (*num_params) { case 0: for (i = 0; queries[i].name != CN; i++) { action_output("%s: %s", queries[i].name, (*queries[i].fn)()); } break; case 1: for (i = 0; queries[i].name != CN; i++) { if (!strcasecmp(params[0], queries[i].name)) { const char *s; s = (*queries[i].fn)(); action_output("%s\n", *s? s: " "); return; } } popup_an_error("%s: Unknown parameter", action_name(Query_action)); break; default: popup_an_error("%s: Requires 0 or 1 arguments", action_name(Query_action)); break; } } #if defined(X3270_SCRIPT) /*[*/ #if defined(X3270_PLUGIN) /*[*/ /* Plugin facility. */ static void no_plugin(void) { if (plugin_timeout_id != 0L) { RemoveTimeOut(plugin_timeout_id); plugin_timeout_id = 0L; } if (plugin_input_id != 0L) { RemoveInput(plugin_input_id); plugin_input_id = 0L; } if (plugin_inpipe != -1) { close(plugin_inpipe); plugin_inpipe = -1; } if (plugin_outpipe != -1) { close(plugin_outpipe); plugin_outpipe = -1; } plugin_pid = 0; plugin_started = False; prb_cnt = 0; ptq_first = ptq_last = 0; } /* Read a response from the plugin process. */ static void plugin_input(void) { int nr; char *nl; nr = read(plugin_inpipe, plugin_buf + prb_cnt, PRB_MAX - prb_cnt); if (nr < 0) { if (plugin_complain) popup_an_errno(errno, "Read from plugin command"); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Read from plugin command: %s", strerror(errno)); } no_plugin(); return; } if (nr == 0) { if (plugin_complain) popup_an_error("Plugin command exited"); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin command exited"); } no_plugin(); return; } nl = memchr(plugin_buf + prb_cnt, '\n', nr); if (nl != NULL) { int xtra; *nl = '\0'; trace_dsn("From plugin: %s\n", plugin_buf); switch (plugin_tq[ptq_first]) { case PLUGIN_INIT: if (strcasecmp(plugin_buf, "ok")) { if (plugin_complain) popup_an_error("Plugin start-up " "failed:\n%s", plugin_buf); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin start-up " "failed:\n%s", plugin_buf); } no_plugin(); } plugin_started = True; plugin_complain = True; break; case PLUGIN_AID: /* feedback is just for trace/debug purposes */ break; case PLUGIN_CMD: default: push_macro(plugin_buf, False); break; } ptq_first = (ptq_first + 1) % PLUGIN_QMAX; if (ptq_first == ptq_last) { RemoveInput(plugin_input_id); plugin_input_id = 0L; RemoveTimeOut(plugin_timeout_id); plugin_timeout_id = 0L; } xtra = (plugin_buf + prb_cnt + nr - 1) - nl; if (xtra > 0) (void) memmove(plugin_buf, nl + 1, xtra); prb_cnt = xtra; return; } prb_cnt += nr; if (prb_cnt >= PRB_MAX) { if (plugin_complain) popup_an_error("Plugin command buffer overflow"); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin command buffer overflow"); } no_plugin(); } } /* Plugin process took too long to answer. Kill it. */ static void plugin_timeout(void) { char *s; switch (plugin_tq[ptq_first]) { case PLUGIN_INIT: s = "init"; break; case PLUGIN_AID: s = "AID"; break; case PLUGIN_CMD: default: s = "command"; break; } if (plugin_complain) popup_an_error("Plugin %s timed out", s); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin %s timed out", s); } plugin_timeout_id = 0L; no_plugin(); } static void plugin_start(char *command, char *argv[], Boolean complain) { int inpipe[2]; int outpipe[2]; char *s; plugin_complain = complain; if (pipe(inpipe) < 0) { if (complain) popup_an_errno(errno, "pipe"); else { (void) snprintf(plugin_start_error, PRB_MAX, "pipe: %s", strerror(errno)); plugin_start_failed = True; } return; } if (pipe(outpipe) < 0) { if (complain) popup_an_errno(errno, "pipe"); else { (void) snprintf(plugin_start_error, PRB_MAX, "pipe: %s", strerror(errno)); plugin_start_failed = True; } close(inpipe[0]); close(inpipe[1]); return; } switch ((plugin_pid = fork())) { case -1: if (complain) popup_an_errno(errno, "fork"); else { (void) snprintf(plugin_start_error, PRB_MAX, "fork: %s", strerror(errno)); plugin_start_failed = True; } plugin_pid = 0; return; case 0: /* child */ (void) dup2(outpipe[0], 0); close(outpipe[0]); close(outpipe[1]); (void) dup2(inpipe[1], 1); close(inpipe[1]); (void) dup2(1, 2); close(inpipe[0]); if (execvp(command, argv) < 0) { char *buf = xs_buffer("%s: %s\n", command, strerror(errno)); write(2, buf, strlen(buf)); exit(1); } break; default: /* parent */ break; } /* Parent. */ plugin_inpipe = inpipe[0]; (void) fcntl(plugin_inpipe, F_SETFD, FD_CLOEXEC); close(inpipe[1]); plugin_outpipe = outpipe[1]; (void) fcntl(plugin_outpipe, F_SETFD, FD_CLOEXEC); close(outpipe[0]); prb_cnt = 0; /* Tell the plug-in what we're about. */ s = xs_buffer("x3270 host %s\n", current_host); (void) write(plugin_outpipe, s, strlen(s)); Free(s); /* Wait for the 'ok' from the child. */ ptq_first = ptq_last = 0; plugin_tq[ptq_last] = PLUGIN_INIT; ptq_last = (ptq_last + 1) % PLUGIN_QMAX; plugin_input_id = AddInput(plugin_inpipe, plugin_input); plugin_timeout_id = AddTimeOut(PLUGINSTART_SECS * 1000, plugin_timeout); plugin_started = False; } void Plugin_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (*num_params == 0) { popup_an_error("%s: Requires 1 or more arguments", action_name(Plugin_action)); return; } if (!strcasecmp(params[0], "Start")) { char *args[MAX_START_ARGS]; int i; if (*num_params < 2 && !appres.plugin_command) { popup_an_error("%s Start: Command name required", action_name(Plugin_action)); return; } if (plugin_pid) { popup_an_error("%s: Already running", action_name(Plugin_action)); return; } if (!CONNECTED) { popup_an_error("%s: Not connected", action_name(Plugin_action)); return; } if (*num_params >= 2) { for (i = 1; i < *num_params && i < MAX_START_ARGS; i++) args[i - 1] = params[i]; args[i - 1] = NULL; plugin_start(params[1], args, True); } else { plugin_start_appres(True); } } else if (!strcasecmp(params[0], "Stop")) { if (*num_params != 1) { popup_an_error("%s Stop: Extra argument(s)", action_name(Plugin_action)); return; } if (plugin_pid) { close(plugin_outpipe); plugin_outpipe = -1; close(plugin_inpipe); plugin_inpipe = -1; plugin_pid = 0; } } else if (!strcasecmp(params[0], "Command")) { int i; int s; if (*num_params < 2) { popup_an_error("%s Command: additional argument(s) " "required", action_name(Plugin_action)); return; } if (!plugin_pid) { if (plugin_start_failed) { popup_an_error("%s Command: Start failed:\n%s", action_name(Plugin_action), plugin_start_error); plugin_start_failed = False; } else { popup_an_error("%s Command: Not running", action_name(Plugin_action)); } return; } if (PLUGIN_BACKLOG >= PLUGIN_QMAX) { popup_an_error("%s Command: Plugin queue overflow", action_name(Plugin_action)); return; } if (write(plugin_outpipe, "command ", 8) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } for (i = 1; i < *num_params; i++) { if (i > 1) { if (write(plugin_outpipe, " ", 1) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } } if (write(plugin_outpipe, params[i], strlen(params[i])) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } } if (write(plugin_outpipe, "\n", 1) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } do_read_buffer(NULL, 0, ea_buf, plugin_outpipe); plugin_tq[ptq_last] = PLUGIN_CMD; ptq_last = (ptq_last + 1) % PLUGIN_QMAX; if (plugin_timeout_id != 0L) RemoveTimeOut(plugin_timeout_id); if (plugin_input_id == 0L) plugin_input_id = AddInput(plugin_inpipe, plugin_input); s = PLUGIN_BACKLOG * PLUGINWAIT_SECS; if (!plugin_started && s < PLUGINSTART_SECS) s = PLUGINSTART_SECS; plugin_timeout_id = AddTimeOut(s * 1000, plugin_timeout); } else { popup_an_error("%s: First argument must be Start, Stop or " "Command", action_name(Plugin_action)); return; } } /* Send an AID event to the plugin process. */ void plugin_aid(unsigned char aid) { char buf[64]; int s; /* No plugin, nothing to do. */ if (!plugin_pid) return; /* Make sure we don't overrun the response queue. */ if (PLUGIN_BACKLOG >= PLUGIN_QMAX) { trace_dsn("Plugin queue overflow\n"); return; } /* Write the AID and cursor position. */ snprintf(buf, sizeof(buf), "aid %s\n", see_aid(aid)); write(plugin_outpipe, buf, strlen(buf)); /* Write the screen buffer. */ do_read_buffer(NULL, 0, ea_buf, plugin_outpipe); /* * Wait for the response. * If we were already waiting for a response, wait a bit longer. */ plugin_tq[ptq_last] = PLUGIN_AID; ptq_last = (ptq_last + 1) % PLUGIN_QMAX; if (plugin_timeout_id != 0L) RemoveTimeOut(plugin_timeout_id); if (plugin_input_id == 0L) plugin_input_id = AddInput(plugin_inpipe, plugin_input); s = PLUGIN_BACKLOG * PLUGINWAIT_SECS; if (!plugin_started && s < PLUGINSTART_SECS) s = PLUGINSTART_SECS; plugin_timeout_id = AddTimeOut(s * 1000, plugin_timeout); } #else /*][*/ void Plugin_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { /* Do nothing. */ } #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ /* * Bell action, used by scripts to ring the console bell and enter a comment * into the trace log. */ void Bell_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { ring_bell(); } #endif /*]*/ #endif /*]*/ void Source_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int fd; action_debug(Source_action, event, params, num_params); if (check_usage(Source_action, *num_params, 1, 1) < 0) return; fd = open(params[0], O_RDONLY); if (fd < 0) { popup_an_errno(errno, "%s", params[0]); return; } push_file(fd); } ibm-3270-3.3.10ga4/wc3270/resolver.c0000644000175000017500000002254511254565704016131 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resolver.c * Hostname resolution. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #include #include #include #else /*][*/ #include #include #endif /*]*/ #include #include "resolverc.h" #include "w3miscc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #if defined(_WIN32) /*[*/ static int win32_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res); static void win32_freeaddrinfo(struct addrinfo *res); static int win32_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags); #undef getaddrinfo #define getaddrinfo win32_getaddrinfo #undef freeaddrinfo #define freeaddrinfo win32_freeaddrinfo #undef getnameinfo #define getnameinfo win32_getnameinfo #endif /*]*/ /* * Resolve a hostname and port. * Returns 0 for success, -1 for fatal error (name resolution impossible), * -2 for simple error (cannot resolve the name). */ int resolve_host_and_port(const char *host, char *portname, int ix, unsigned short *pport, struct sockaddr *sa, socklen_t *sa_len, char *errmsg, int em_len, int *lastp) { #if defined(_WIN32) /*[*/ OSVERSIONINFO info; Boolean has_getaddrinfo = False; /* Figure out if we should use gethostbyname() or getaddrinfo(). */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); exit(1); } has_getaddrinfo = (info.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS && info.dwMajorVersion >= 5 && info.dwMinorVersion >= 1); if (has_getaddrinfo) #endif /*]*/ { #if defined(AF_INET6) /*[*/ struct addrinfo hints, *res0, *res; int rc; /* * Use getaddrinfo() to resolve the hostname and port * together. */ (void) memset(&hints, '\0', sizeof(struct addrinfo)); hints.ai_flags = 0; hints.ai_family = PF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; rc = getaddrinfo(host, portname, &hints, &res0); if (rc != 0) { snprintf(errmsg, em_len, "%s/%s:\n%s", host, portname? portname: "(none)", gai_strerror(rc)); return -2; } res = res0; /* * Return the reqested element. * Hopefully the list will not change between calls. */ while (ix && res->ai_next != NULL) { res = res->ai_next; ix--; } if (res == NULL) { /* Ran off the end? The list must have changed. */ snprintf(errmsg, em_len, "%s/%s:\n%s", host, portname? portname: "(none)", gai_strerror(EAI_AGAIN)); freeaddrinfo(res); return -2; } switch (res->ai_family) { case AF_INET: *pport = ntohs(((struct sockaddr_in *) res->ai_addr)->sin_port); break; case AF_INET6: *pport = ntohs(((struct sockaddr_in6 *) res->ai_addr)->sin6_port); break; default: snprintf(errmsg, em_len, "%s:\nunknown family %d", host, res->ai_family); freeaddrinfo(res); return -1; } (void) memcpy(sa, res->ai_addr, res->ai_addrlen); *sa_len = res->ai_addrlen; if (lastp != NULL) *lastp = (res->ai_next == NULL); freeaddrinfo(res0); #endif /*]*/ } #if defined(_WIN32) /*[*/ else #endif /*]*/ #if defined(_WIN32) || !defined(AF_INET6) /*[*/ { struct hostent *hp; struct servent *sp; unsigned short port; unsigned long lport; char *ptr; struct sockaddr_in *sin = (struct sockaddr_in *)sa; /* Get the port number. */ lport = strtoul(portname, &ptr, 0); if (ptr == portname || *ptr != '\0' || lport == 0L || lport & ~0xffff) { if (!(sp = getservbyname(portname, "tcp"))) { snprintf(errmsg, em_len, "Unknown port number or service: %s", portname); return -1; } port = sp->s_port; } else port = htons((unsigned short)lport); *pport = ntohs(port); /* Use gethostbyname() to resolve the hostname. */ hp = gethostbyname(host); if (hp == (struct hostent *) 0) { sin->sin_family = AF_INET; sin->sin_addr.s_addr = inet_addr(host); if (sin->sin_addr.s_addr == (unsigned long)-1) { snprintf(errmsg, em_len, "Unknown host:\n%s", host); return -2; } if (lastp != NULL) *lastp = True; } else { int i; for (i = 0; i < ix; i++) { if (hp->h_addr_list[i] == NULL) { snprintf(errmsg, em_len, "Unknown host:\n%s", host); return -2; } } sin->sin_family = hp->h_addrtype; (void) memmove(&sin->sin_addr, hp->h_addr_list[i], hp->h_length); if (lastp != NULL) *lastp = (hp->h_addr_list[i + 1] == NULL); } sin->sin_port = port; *sa_len = sizeof(struct sockaddr_in); } #endif /*]*/ return 0; } /* * Resolve a sockaddr into a numeric hostname and port. * Returns 0 for success, -1 for failure. */ int numeric_host_and_port(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, char *errmsg, int em_len) { #if defined(_WIN32) /*[*/ OSVERSIONINFO info; Boolean has_getnameinfo = False; /* Figure out if we should use inet_ntoa() or getnameinfo(). */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); exit(1); } has_getnameinfo = (info.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS && info.dwMajorVersion >= 5 && info.dwMinorVersion >= 1); if (has_getnameinfo) #endif /*]*/ { #if defined(AF_INET6) /*[*/ int rc; /* Use getnameinfo(). */ rc = getnameinfo(sa, salen, host, hostlen, serv, servlen, NI_NUMERICHOST | NI_NUMERICSERV); if (rc != 0) { snprintf(errmsg, em_len, "%s", gai_strerror(rc)); return -1; } #endif /*]*/ } #if defined(_WIN32) /*[*/ else #endif /*]*/ #if defined(_WIN32) || !defined(AF_INET6) /*[*/ { struct sockaddr_in *sin = (struct sockaddr_in *)sa; /* Use inet_ntoa() and snprintf(). */ snprintf(host, hostlen, "%s", inet_ntoa(sin->sin_addr)); snprintf(serv, servlen, "%u", ntohs(sin->sin_port)); } #endif /*]*/ return 0; } #if defined(_WIN32) /*[*/ /* * Windows-specific versions of getaddrinfo(), freeaddrinfo() and * gai_strerror(). * The symbols are resolved from ws2_32.dll at run-time, instead of * by linking against ws2_32.lib, because they are not defined on all * versions of Windows. */ typedef int (__stdcall *gai_fn)(const char *, const char *, const struct addrinfo *, struct addrinfo **); typedef void (__stdcall *fai_fn)(struct addrinfo*); typedef int (__stdcall *gni_fn)(const struct sockaddr *, socklen_t, char *, size_t, char *, size_t, int); /* Resolve a symbol in ws2_32.dll. */ static FARPROC get_ws2_32(const char *symbol) { static HMODULE ws2_32_handle = NULL; FARPROC p; if (ws2_32_handle == NULL) { ws2_32_handle = LoadLibrary("ws2_32.dll"); if (ws2_32_handle == NULL) { fprintf(stderr, "Can't load ws2_32.dll: %s\n", win32_strerror(GetLastError())); exit(1); } } p = GetProcAddress(ws2_32_handle, symbol); if (p == NULL) { fprintf(stderr, "Can't resolve %s in ws2_32.dll: %s\n", symbol, win32_strerror(GetLastError())); exit(1); } return p; } static int win32_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res) { static FARPROC gai_p = NULL; if (gai_p == NULL) gai_p = get_ws2_32("getaddrinfo"); return ((gai_fn)gai_p)(node, service, hints, res); } static void win32_freeaddrinfo(struct addrinfo *res) { static FARPROC fai_p = NULL; if (fai_p == NULL) fai_p = get_ws2_32("freeaddrinfo"); ((fai_fn)fai_p)(res); } static int win32_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags) { static FARPROC gni_p = NULL; if (gni_p == NULL) gni_p = get_ws2_32("getnameinfo"); return ((gni_fn)gni_p)(sa, salen, host, hostlen, serv, servlen, flags); } #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/winversc.h0000644000175000017500000000312111254565675016131 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ extern int is_nt; extern int has_ipv6; extern int get_version_info(void); ibm-3270-3.3.10ga4/wc3270/menubarc.h0000644000175000017500000000453711254565704016072 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * menubarc.h * Global declarations for menubar.c. */ #if defined(X3270_MENUS) /*[*/ extern void HandleMenu_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) /*[*/ extern void menubar_as_set(Boolean sensitive); #else /*][*/ #define menubar_as_set(n) #endif /*]*/ extern void menubar_init(Widget container, Dimension overall_width, Dimension current_width); extern void menubar_keypad_changed(void); extern Dimension menubar_qheight(Dimension container_width); extern void menubar_resize(Dimension width); extern void menubar_retoggle(struct toggle *t); #else /*][*/ #define menubar_as_set(n) #define menubar_init(a, b, c) #define menubar_keypad_changed() #define menubar_qheight(n) 0 #define menubar_resize(n) #define menubar_retoggle(t) #define HandleMenu_action ignore_action #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/wc3270.iss0000644000175000017500000001336611261530011015547 0ustar bastianbastian; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! [Setup] AppName=wc3270 AppVerName=wc3270 3.3.10ga4 AppPublisher=Paul Mattes AppPublisherURL=http://x3270.bgp.nu AppSupportURL=http://x3270.bgp.nu AppUpdatesURL=http://x3270.bgp.nu AppCopyright=Copyright (C) 1989-2009 by Paul Mattes, GTRC and others WizardSmallImageFile=x3270-icon2.bmp DefaultDirName={pf}\wc3270 DisableDirPage=no DefaultGroupName=wc3270 AllowNoIcons=yes OutputBaseFilename=wc3270-3.3.10ga4-setup OutputDir=. Compression=lzma SolidCompression=yes ChangesAssociations=yes MinVersion=4.0,5.0 [Languages] Name: "english"; MessagesFile: "compiler:Default.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}" [Files] Source: "wc3270.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "..\ws3270-3.3\ws3270.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "..\wpr3287-3.3\wpr3287.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "catf.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "mkshort.exe"; DestDir: "{app}"; Flags: ignoreversion deleteafterinstall Source: "ead3270.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "wc3270wiz.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "x3270if.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "html\Bugs.html"; DestDir: "{app}\html"; Flags: ignoreversion Source: "html\Build.html"; DestDir: "{app}\html"; Flags: ignoreversion Source: "html\FAQ.html"; DestDir: "{app}\html"; Flags: ignoreversion Source: "html\Intro.html"; DestDir: "{app}\html"; Flags: ignoreversion Source: "html\Keymap.html"; DestDir: "{app}\html"; Flags: ignoreversion Source: "html\Lineage.html"; DestDir: "{app}\html"; Flags: ignoreversion Source: "html\ReleaseNotes.html"; DestDir: "{app}\html"; Flags: ignoreversion Source: "html\Resources.html"; DestDir: "{app}\html"; Flags: ignoreversion Source: "html\README.html"; DestDir: "{app}\html"; Flags: ignoreversion Source: "html\wc3270-man.html"; DestDir: "{app}\html"; Flags: ignoreversion Source: "..\ws3270-3.3\html\ws3270-man.html"; DestDir: "{app}\html"; Flags: ignoreversion Source: "..\wpr3287-3.3\html\wpr3287-man.html"; DestDir: "{app}\html"; Flags: ignoreversion Source: "html\Wishlist.html"; DestDir: "{app}\html"; Flags: ignoreversion Source: "html\x3270if.html"; DestDir: "{app}\html"; Flags: ignoreversion Source: "LICENSE.txt"; DestDir: "{app}"; Flags: ignoreversion Source: "README.txt"; DestDir: "{app}"; Flags: ignoreversion ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Dirs] Name: "{userappdata}\wc3270"; [Code] function myHelp(Param: String): String; begin ; result := '/c start /b ' + GetShortName(ExpandConstant('{app}') + '\html\README.html'); result := '/c start ' + GetShortName(ExpandConstant('{app}') + '\html\README.html'); end; [Icons] Name: "{group}\Session Wizard"; Filename: "{app}\wc3270wiz.exe"; WorkingDir: "{app}" Name: "{group}\Run wc3270"; Filename: "{app}\wc3270.exe"; WorkingDir: "{app}" Name: "{group}\wc3270 Documentation"; Filename: "{app}\html\README.html" Name: "{group}\wc3270 Explore AppData"; Filename: "{app}\ead3270.exe"; Flags: runminimized; IconFilename: "{app}\wc3270.exe" [Registry] Root: HKCR; Subkey: ".wc3270"; ValueType: string; ValueName: ""; ValueData: "wc3270"; Flags: uninsdeletevalue Root: HKCR; Subkey: "wc3270"; ValueType: string; ValueName: ""; ValueData: "wc3270 Emulator Session"; Flags: uninsdeletekey Root: HKCR; Subkey: "wc3270\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\wc3270.exe,0" Root: HKCR; Subkey: "wc3270\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\wc3270"" ""%1""" [Run] Filename: "{app}\wc3270wiz.exe"; Description: "{cm:LaunchProgram,Session Wizard}"; Flags: nowait postinstall skipifsilent Filename: "{cmd}"; Parameters: {code:MyHelp}; Description: "{cm:LaunchProgram,Online Documentation}"; Flags: nowait postinstall skipifsilent Filename: "{app}\mkshort.exe"; Parameters: """{app}"" wc3270.exe ""wc3270"""; Flags: nowait skipifsilent runhidden; Tasks: desktopicon Filename: "{app}\mkshort.exe"; Parameters: """{app}"" wc3270wiz.exe ""Session Wizard"""; Flags: nowait skipifsilent runhidden; Tasks: desktopicon ; Get rid of the old New wc3270 Session desktop icon. Filename: "{cmd}"; Parameters: "/c erase ""{userdesktop}\New wc3270 Session.lnk"""; Tasks: desktopicon; Flags: runhidden; MinVersion: 0,4.0 Filename: "{cmd}"; Parameters: "/c erase ""{userdesktop}\New wc3270 Session.pif"""; Tasks: desktopicon; Flags: runhidden; MinVersion: 4.0,0 ; Get rid of the old 'New wc3270 Session' start menu item. It might be in ; the common programs group or the user programs group. Filename: "{cmd}"; Parameters: "/c erase ""{commonprograms}\{groupname}\New wc3270 Session.lnk"""; Flags: runhidden Filename: "{cmd}"; Parameters: "/c erase ""{userprograms}\{groupname}\New wc3270 Session.lnk"""; Flags: runhidden ; Get rid of the old DLLs. Filename: "{cmd}"; Parameters: "/c erase ""{app}\w3n4.dll"""; Flags: runhidden Filename: "{cmd}"; Parameters: "/c erase ""{app}\w3n46.dll"""; Flags: runhidden Filename: "{cmd}"; Parameters: "/c erase ""{app}\shf.dll"""; Flags: runhidden [UninstallRun] Filename: "{cmd}"; Parameters: "/c erase ""{userdesktop}\wc3270.lnk"""; Tasks: desktopicon; Flags: runhidden; MinVersion: 0,4.0 Filename: "{cmd}"; Parameters: "/c erase ""{userdesktop}\Session Wizard.lnk"""; Tasks: desktopicon; Flags: runhidden; MinVersion: 0,4.0 Filename: "{cmd}"; Parameters: "/c erase ""{userdesktop}\wc3270.pif"""; Tasks: desktopicon; Flags: runhidden; MinVersion: 4.0,0 Filename: "{cmd}"; Parameters: "/c erase ""{userdesktop}\Session Wizard.pif"""; Tasks: desktopicon; Flags: runhidden; MinVersion: 4.0,0 ibm-3270-3.3.10ga4/wc3270/keypadc.h0000644000175000017500000000517611254565704015716 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * keypadc.h * Global declarations for keypad.c. */ extern Boolean keypad_changed; #if defined(X3270_KEYPAD) /*[*/ extern enum kp_placement { kp_right, kp_left, kp_bottom, kp_integral, kp_inside_right } kp_placement; extern void keypad_first_up(void); extern Widget keypad_init(Widget container, Dimension voffset, Dimension screen_width, Boolean floating, Boolean vert); extern void keypad_move(void); extern void keypad_placement_init(void); extern void keypad_popup_init(void); extern Dimension keypad_qheight(void); extern void keypad_set_keymap(void); extern void keypad_set_temp_keymap(XtTranslations trans); extern void keypad_shift(void); extern Dimension min_keypad_width(void); extern void keypad_popdown(Boolean *was_up); extern void keypad_popup(void); #else /*][*/ #define keypad_qheight() 0 #define min_keypad_width() 0 #define keypad_first_up() #define keypad_init(a, b, c, d, e) 0 #define keypad_move() #define keypad_placement_init() #define keypad_popup_init() #define keypad_set_keymap() #define keypad_set_temp_keymap(n) #define keypad_shift() #define keypad_popdown(w) #define keypad_popup() #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/ftc.h0000644000175000017500000000605311254565704015045 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * ftc.h * Global declarations for ft.c. */ #if defined(X3270_FT) /*[*/ extern Boolean ascii_flag; extern Boolean cr_flag; extern unsigned long ft_length; extern FILE *ft_local_file; extern char *ft_local_filename; enum ft_state { FT_NONE, /* No transfer in progress */ FT_AWAIT_ACK, /* IND$FILE sent, awaiting acknowledgement message */ FT_RUNNING, /* Ack received, data flowing */ FT_ABORT_WAIT, /* Awaiting chance to send an abort */ FT_ABORT_SENT /* Abort sent; awaiting response */ }; extern Boolean ft_last_cr; extern enum ft_state ft_state; extern Boolean remap_flag; extern unsigned char i_ft2asc[], i_asc2ft[]; #if defined(X3270_DBCS) /*[*/ enum ftd { FT_DBCS_NONE, FT_DBCS_SO, FT_DBCS_LEFT }; extern enum ftd ft_dbcs_state; extern unsigned char ft_dbcs_byte1; extern Boolean ft_last_dbcs; #endif /*]*/ extern void ft_aborting(void); extern void ft_complete(const char *errmsg); extern void ft_init(void); extern void ft_running(Boolean is_cut); extern void ft_update_length(void); extern void PA_dialog_focus_action(Widget w, XEvent *event, String *parms, Cardinal *num_parms); extern void PA_dialog_next_action(Widget w, XEvent *event, String *parms, Cardinal *num_parms); extern void popup_ft(Widget w, XtPointer call_parms, XtPointer call_data); extern void Transfer_action(Widget w, XEvent *event, String *parms, Cardinal *num_parms); #if !defined(X3270_MENUS) /*[*/ extern void ft_init(void); #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/unicode_dbcsc.h0000644000175000017500000000345011254565704017053 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #if defined(X3270_DBCS) /*[*/ extern ucs4_t ebcdic_dbcs_to_unicode(ebc_t e, unsigned flags); extern ebc_t unicode_to_ebcdic_dbcs(ucs4_t u); extern int set_uni_dbcs(const char *csname, const char **codepage, const char **display_charsets); extern void charset_list_dbcs(void); #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/icmdc.h0000644000175000017500000000324111254565674015352 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * icmdc.h * A curses-based 3270 Terminal Emulator * Declarations for icmd.c. */ int interactive_transfer(String **params, Cardinal *num_params); ibm-3270-3.3.10ga4/wc3270/trace_ds.c0000644000175000017500000006714311254565704016057 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * trace_ds.c * 3270 data stream tracing. * */ #include "globals.h" #if defined(X3270_TRACE) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include #include #include "3270ds.h" #include "appres.h" #include "objects.h" #include "resources.h" #include "ctlr.h" #include "ansic.h" #include "charsetc.h" #include "childc.h" #include "ctlrc.h" #include "menubarc.h" #include "popupsc.h" #include "printc.h" #include "savec.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utf8c.h" #include "utilc.h" #include "w3miscc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ /* Maximum size of a tracefile header. */ #define MAX_HEADER_SIZE (10*1024) /* Minimum size of a trace file. */ #define MIN_TRACEFILE_SIZE (64*1024) #define MIN_TRACEFILE_SIZE_NAME "64K" /* System calls which may not be there. */ #if !defined(HAVE_FSEEKO) /*[*/ #define fseeko(s, o, w) fseek(s, (long)o, w) #define ftello(s) (off_t)ftell(s) #endif /*]*/ /* Statics */ static int dscnt = 0; #if !defined(_WIN32) /*[*/ static int tracewindow_pid = -1; #else /*][*/ static HANDLE tracewindow_handle = NULL; #endif /*]*/ static FILE *tracef = NULL; static FILE *tracef_pipe = NULL; static char *tracef_bufptr = CN; static off_t tracef_size = 0; static off_t tracef_max = 0; static char *tracef_midpoint_header = CN; static off_t tracef_midpoint = 0; static void vwtrace(const char *fmt, va_list args); static void wtrace(const char *fmt, ...); static char *create_tracefile_header(const char *mode); static void stop_tracing(void); /* Globals */ struct timeval ds_ts; Boolean trace_skipping = False; char *tracefile_name = NULL; /* display a (row,col) */ const char * rcba(int baddr) { static char buf[16]; (void) sprintf(buf, "(%d,%d)", baddr/COLS + 1, baddr%COLS + 1); return buf; } /* Data Stream trace print, handles line wraps */ static char *tdsbuf = CN; #define TDS_LEN 75 /* * This function is careful to do line breaks based on wchar_t's, not * bytes, so multi-byte characters are traced properly. * However, it doesn't know that DBCS characters are two columns wide, so it * will get those wrong and break too late. To get that right, it needs some * sort of function to tell it that a wchar_t is double-width, which we lack at * the moment. * * If wchar_t's are Unicode, it could perhaps use some sort of heuristic based * on which plane the character is in. */ static void trace_ds_s(char *s, Boolean can_break) { int len = strlen(s); int len0 = len + 1; int wlen; Boolean nl = False; wchar_t *w_buf; /* wchar_t translation of s */ wchar_t *w_cur; /* current wchar_t pointer */ wchar_t *w_chunk; /* transient wchar_t buffer */ char *mb_chunk; /* transient multibyte buffer */ if (!toggled(DS_TRACE) || tracef == NULL || !len) return; /* Allocate buffers for chunks of output data. */ mb_chunk = Malloc(len0); w_chunk = (wchar_t *)Malloc(len0 * sizeof(wchar_t)); /* Convert the input string to wchar_t's. */ w_buf = (wchar_t *)Malloc(len0 * sizeof(wchar_t)); wlen = mbstowcs(w_buf, s, len); if (wlen < 0) Error("trace_ds_s: mbstowcs failed"); w_cur = w_buf; /* Check for a trailing newline. */ if (len && s[len-1] == '\n') { wlen--; nl = True; } if (!can_break && dscnt + wlen >= 75) { wtrace("...\n... "); dscnt = 0; } while (dscnt + wlen >= 75) { int plen = 75-dscnt; int mblen; if (plen) { memcpy(w_chunk, w_cur, plen * sizeof(wchar_t)); w_chunk[plen] = 0; mblen = wcstombs(mb_chunk, w_chunk, len0); if (mblen <= 0) Error("trace_ds_s: wcstombs 1 failed"); } else { mb_chunk[0] = '\0'; mblen = 0; } wtrace("%.*s ...\n... ", mblen, mb_chunk); dscnt = 4; w_cur += plen; wlen -= plen; } if (wlen) { int mblen; memcpy(w_chunk, w_cur, wlen * sizeof(wchar_t)); w_chunk[wlen] = 0; mblen = wcstombs(mb_chunk, w_chunk, len0); if (mblen <= 0) Error("trace_ds_s: wcstombs 2 failed"); wtrace("%.*s", mblen, mb_chunk); dscnt += wlen; } if (nl) { wtrace("\n"); dscnt = 0; } Free(mb_chunk); Free(w_buf); Free(w_chunk); } void trace_ds(const char *fmt, ...) { va_list args; if (!toggled(DS_TRACE) || tracef == NULL) return; va_start(args, fmt); /* allocate buffer */ if (tdsbuf == CN) tdsbuf = Malloc(4096); /* print out remainder of message */ (void) vsprintf(tdsbuf, fmt, args); trace_ds_s(tdsbuf, True); va_end(args); } void trace_ds_nb(const char *fmt, ...) { va_list args; if (!toggled(DS_TRACE) || tracef == NULL) return; va_start(args, fmt); /* allocate buffer */ if (tdsbuf == CN) tdsbuf = Malloc(4096); /* print out remainder of message */ (void) vsprintf(tdsbuf, fmt, args); trace_ds_s(tdsbuf, False); va_end(args); } /* Conditional event trace. */ void trace_event(const char *fmt, ...) { va_list args; if (!toggled(EVENT_TRACE) || tracef == NULL) return; /* print out message */ va_start(args, fmt); vwtrace(fmt, args); va_end(args); } /* Conditional data stream trace, without line splitting. */ void trace_dsn(const char *fmt, ...) { va_list args; if (!toggled(DS_TRACE) || tracef == NULL) return; /* print out message */ va_start(args, fmt); vwtrace(fmt, args); va_end(args); } /* * Write to the trace file, varargs style. * This is the only function that actually does output to the trace file -- * all others are wrappers around this function. */ static void vwtrace(const char *fmt, va_list args) { if (tracef_bufptr != CN) { tracef_bufptr += vsprintf(tracef_bufptr, fmt, args); } else if (tracef != NULL) { int n2w, nw; char buf[16384]; buf[0] = 0; (void) vsnprintf(buf, sizeof(buf), fmt, args); buf[sizeof(buf) - 1] = '\0'; n2w = strlen(buf); nw = fwrite(buf, n2w, 1, tracef); if (nw == 1) { tracef_size += nw; fflush(tracef); } else { if (errno != EPIPE #if defined(EILSEQ) /*[*/ && errno != EILSEQ #endif /*]*/ ) popup_an_errno(errno, "Write to trace file failed"); #if defined(EILSEQ) /*[*/ if (errno != EILSEQ) #endif /*]*/ stop_tracing(); } if (tracef_pipe != NULL) { nw = fwrite(buf, n2w, 1, tracef_pipe); if (nw != 1) { (void) fclose(tracef_pipe); tracef_pipe = NULL; } else { fflush(tracef_pipe); } } } } /* Write to the trace file. */ static void wtrace(const char *fmt, ...) { if (tracef != NULL) { va_list args; va_start(args, fmt); vwtrace(fmt, args); va_end(args); } } static void stop_tracing(void) { if (tracef != NULL && tracef != stdout) (void) fclose(tracef); tracef = NULL; if (tracef_pipe != NULL) { (void) fclose(tracef_pipe); tracef_pipe = NULL; } if (toggled(DS_TRACE)) { toggle_toggle(&appres.toggle[DS_TRACE]); menubar_retoggle(&appres.toggle[DS_TRACE]); } if (toggled(EVENT_TRACE)) { toggle_toggle(&appres.toggle[EVENT_TRACE]); menubar_retoggle(&appres.toggle[EVENT_TRACE]); } } /* Check for a trace file rollover event. */ void trace_rollover_check(void) { if (tracef == NULL || tracef_max == 0) return; /* See if we've reached the midpoint. */ if (!tracef_midpoint) { if (tracef_size >= tracef_max / 2) { tracef_midpoint = ftello(tracef); #if defined(ROLLOVER_DEBUG) /*[*/ printf("midpoint is %lld\n", tracef_midpoint); #endif /*]*/ tracef_midpoint_header = create_tracefile_header("rolled over"); } return; } /* See if we've reached a rollover point. */ if (tracef_size >= tracef_max) { char buf[8*1024]; int nr; off_t rpos = tracef_midpoint, wpos = 0; if (!tracef_midpoint) Error("Tracefile rollover logic error"); #if defined(ROLLOVER_DEBUG) /*[*/ printf("rolling over at %lld\n", tracef_size); #endif /*]*/ /* * Overwrite the file with the midpoint header, and the data * which follows the midpoint. */ if (fseeko(tracef, 0, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(0) failed"); stop_tracing(); return; } wtrace("%s", tracef_midpoint_header); wpos = ftello(tracef); if (wpos < 0) { popup_an_errno(errno, "trace file ftello() failed"); stop_tracing(); return; } if (fseeko(tracef, rpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld) failed", (long)rpos); stop_tracing(); return; } #if defined(ROLLOVER_DEBUG) /*[*/ printf("rpos = %lld, wpos = %lld\n", rpos, wpos); #endif /*]*/ while ((nr = fread(buf, 1, sizeof(buf), tracef)) > 0) { rpos = ftello(tracef); if (fseeko(tracef, wpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld) " "failed", (long)wpos); stop_tracing(); return; } if (fwrite(buf, nr, 1, tracef) < 1) break; wpos = ftello(tracef); if (wpos < 0) { popup_an_errno(errno, "trace file ftello() " "failed"); stop_tracing(); return; } if (fseeko(tracef, rpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld)" "failed", (long)rpos); stop_tracing(); return; } } if (ferror(tracef)) { popup_an_errno(errno, "trace file rollover copy " "failed"); stop_tracing(); return; } #if defined(ROLLOVER_DEBUG) /*[*/ printf("final wpos = %lld\n", wpos); #endif /*]*/ #if !defined(_MSC_VER) /*[*/ if (ftruncate(fileno(tracef), wpos) < 0) { popup_an_errno(errno, "trace file ftruncate(%ld) " "failed", (long)wpos); stop_tracing(); return; } #endif /*]*/ if (fseeko(tracef, wpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld) failed", (long)wpos); stop_tracing(); return; } #if defined(_MSC_VER) /*[*/ SetEndOfFile((HANDLE)_get_osfhandle(fileno(tracef))); #endif /*]*/ tracef_size = wpos; tracef_midpoint = wpos; Replace(tracef_midpoint_header, create_tracefile_header("rolled over")); } } #if defined(X3270_DISPLAY) /*[*/ static Widget trace_shell = (Widget)NULL; #endif /*]*/ static int trace_reason; /* Create a trace file header. */ static char * create_tracefile_header(const char *mode) { char *buf; time_t clk; /* Create a buffer and redirect output. */ buf = Malloc(MAX_HEADER_SIZE); tracef_bufptr = buf; /* Display current status */ clk = time((time_t *)0); wtrace("Trace %s %s", mode, ctime(&clk)); wtrace(" Version: %s\n", build); wtrace(" %s\n", build_options()); save_yourself(); wtrace(" Command: %s\n", command_string); wtrace(" Model %s, %d rows x %d cols", model_name, maxROWS, maxCOLS); #if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) /*[*/ wtrace(", %s display", appres.mono ? "monochrome" : "color"); #endif /*]*/ if (appres.extended) wtrace(", extended data stream"); wtrace(", %s emulation", appres.m3279 ? "color" : "monochrome"); wtrace(", %s charset", get_charset_name()); if (appres.apl_mode) wtrace(", APL mode"); wtrace("\n"); #if !defined(_WIN32) /*[*/ wtrace(" Locale codeset: %s\n", locale_codeset); #else /*][*/ wtrace(" ANSI codepage: %d\n", GetACP()); # if defined(WS3270) /*[*/ wtrace(" Local codepage: %d\n", appres.local_cp); # endif /*]*/ #endif /*]*/ wtrace(" Host codepage: %d", (int)(cgcsgid & 0xffff)); #if defined(X3270_DBCS) /*[*/ if (dbcs) wtrace("+%d", (int)(cgcsgid_dbcs & 0xffff)); #endif /*]*/ wtrace("\n"); if (CONNECTED) wtrace(" Connected to %s, port %u\n", current_host, current_port); /* Snap the current TELNET options. */ if (net_snap_options()) { wtrace(" TELNET state:\n"); trace_netdata('<', obuf, obptr - obuf); } /* Dump the screen contents and modes into the trace file. */ if (CONNECTED) { /* * Note that if the screen is not formatted, we do not * attempt to save what's on it. However, if we're in * 3270 SSCP-LU or NVT mode, we'll do a dummy, empty * write to ensure that the display is in the right * mode. */ if (formatted) { wtrace(" Screen contents (3270):\n"); obptr = obuf; #if defined(X3270_TN3270E) /*[*/ (void) net_add_dummy_tn3270e(); #endif /*]*/ ctlr_snap_buffer(); space3270out(2); net_add_eor(obuf, obptr - obuf); obptr += 2; trace_netdata('<', obuf, obptr - obuf); obptr = obuf; #if defined(X3270_TN3270E) /*[*/ (void) net_add_dummy_tn3270e(); #endif /*]*/ if (ctlr_snap_modes()) { wtrace(" 3270 modes:\n"); space3270out(2); net_add_eor(obuf, obptr - obuf); obptr += 2; trace_netdata('<', obuf, obptr - obuf); } } #if defined(X3270_TN3270E) /*[*/ else if (IN_E) { obptr = obuf; (void) net_add_dummy_tn3270e(); wtrace(" Screen contents (%s):\n", IN_SSCP? "SSCP-LU": "TN3270E-NVT"); if (IN_SSCP) ctlr_snap_buffer_sscp_lu(); else if (IN_ANSI) ansi_snap(); space3270out(2); net_add_eor(obuf, obptr - obuf); obptr += 2; trace_netdata('<', obuf, obptr - obuf); if (IN_ANSI) { wtrace(" NVT modes:\n"); obptr = obuf; ansi_snap_modes(); trace_netdata('<', obuf, obptr - obuf); } } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ else if (IN_ANSI) { obptr = obuf; wtrace(" Screen contents (NVT):\n"); ansi_snap(); trace_netdata('<', obuf, obptr - obuf); wtrace(" NVT modes:\n"); obptr = obuf; ansi_snap_modes(); trace_netdata('<', obuf, obptr - obuf); } #endif /*]*/ } wtrace(" Data stream:\n"); /* Return the buffer. */ tracef_bufptr = CN; return buf; } /* Calculate the tracefile maximum size. */ static void get_tracef_max(void) { static Boolean calculated = False; char *ptr; Boolean bad = False; if (calculated) return; calculated = True; if (appres.trace_file_size == CN || !strcmp(appres.trace_file_size, "0") || !strncasecmp(appres.trace_file_size, "none", strlen(appres.trace_file_size))) { tracef_max = 0; return; } tracef_max = strtoul(appres.trace_file_size, &ptr, 0); if (tracef_max == 0 || ptr == appres.trace_file_size || *(ptr + 1)) { bad = True; } else switch (*ptr) { case 'k': case 'K': tracef_max *= 1024; break; case 'm': case 'M': tracef_max *= 1024 * 1024; break; case '\0': break; default: bad = True; break; } if (bad) { tracef_max = MIN_TRACEFILE_SIZE; #if defined(X3270_DISPLAY) /*[*/ popup_an_info("Invalid %s '%s', assuming " MIN_TRACEFILE_SIZE_NAME, ResTraceFileSize, appres.trace_file_size); #endif /*]*/ } else if (tracef_max < MIN_TRACEFILE_SIZE) { tracef_max = MIN_TRACEFILE_SIZE; } } /* Parse the name '/dev/fd', so we can simulate it. */ static int get_devfd(const char *pathname) { unsigned long fd; char *ptr; if (strncmp(pathname, "/dev/fd/", 8)) return -1; fd = strtoul(pathname + 8, &ptr, 10); if (ptr == pathname + 8 || *ptr != '\0' || fd < 0) return -1; return fd; } /* Callback for "OK" button on trace popup */ static void tracefile_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { char *tfn = CN; int devfd = -1; #if defined(X3270_DISPLAY) /*[*/ int pipefd[2]; Boolean just_piped = False; #endif /*]*/ char *buf; #if defined(X3270_DISPLAY) /*[*/ if (w) tfn = XawDialogGetValueString((Widget)client_data); else #endif /*]*/ tfn = (char *)client_data; tfn = do_subst(tfn, True, True); if (strchr(tfn, '\'') || ((int)strlen(tfn) > 0 && tfn[strlen(tfn)-1] == '\\')) { popup_an_error("Illegal file name: %s", tfn); Free(tfn); return; } tracef_max = 0; tracef_midpoint = 0; Replace(tracef_midpoint_header, CN); if (!strcmp(tfn, "stdout")) { tracef = stdout; } else { #if defined(X3270_DISPLAY) /*[*/ FILE *pipefile = NULL; if (!strcmp(tfn, "none") || !tfn[0]) { just_piped = True; if (!appres.trace_monitor) { popup_an_error("Must specify a trace file " "name"); free(tfn); return; } } if (appres.trace_monitor) { if (pipe(pipefd) < 0) { popup_an_errno(errno, "pipe() failed"); Free(tfn); return; } pipefile = fdopen(pipefd[1], "w"); if (pipefile == NULL) { popup_an_errno(errno, "fdopen() failed"); (void) close(pipefd[0]); (void) close(pipefd[1]); Free(tfn); return; } (void) SETLINEBUF(pipefile); (void) fcntl(pipefd[1], F_SETFD, 1); } if (just_piped) { tracef = pipefile; } else #endif /*]*/ { #if defined(X3270_DISPLAY) /*[*/ tracef_pipe = pipefile; #endif /*]*/ /* Get the trace file maximum. */ get_tracef_max(); /* If there's a limit, the file can't exist. */ if (tracef_max && !access(tfn, R_OK)) { popup_an_error("Trace file '%s' already exists", tfn); #if defined(X3270_DISPLAY) /*[*/ fclose(tracef_pipe); (void) close(pipefd[0]); (void) close(pipefd[1]); #endif /*]*/ Free(tfn); return; } /* Open and configure the file. */ if ((devfd = get_devfd(tfn)) >= 0) tracef = fdopen(dup(devfd), "a"); else tracef = fopen(tfn, tracef_max? "w+": "a"); if (tracef == (FILE *)NULL) { popup_an_errno(errno, "%s", tfn); #if defined(X3270_DISPLAY) /*[*/ fclose(tracef_pipe); (void) close(pipefd[0]); (void) close(pipefd[1]); #endif /*]*/ Free(tfn); return; } Replace(tracefile_name, NewString(tfn)); (void) SETLINEBUF(tracef); #if !defined(_WIN32) /*[*/ (void) fcntl(fileno(tracef), F_SETFD, 1); #endif /*]*/ } } #if defined(X3270_DISPLAY) /*[*/ /* Start the monitor window */ if (tracef != stdout && appres.trace_monitor) { switch (tracewindow_pid = fork_child()) { case 0: /* child process */ { char cmd[64]; (void) sprintf(cmd, "cat <&%d", pipefd[0]); (void) execlp("xterm", "xterm", "-title", just_piped? "trace": tfn, "-sb", "-e", "/bin/sh", "-c", cmd, CN); } (void) perror("exec(xterm) failed"); _exit(1); default: /* parent */ (void) close(pipefd[0]); ++children; break; case -1: /* error */ popup_an_errno(errno, "fork() failed"); break; } } #endif /*]*/ #if defined(_WIN32) && defined(C3270) /*[*/ /* Start the monitor window. */ if (tracef != stdout && appres.trace_monitor && is_installed) { STARTUPINFO startupinfo; PROCESS_INFORMATION process_information; char *path; char *args; (void) memset(&startupinfo, '\0', sizeof(STARTUPINFO)); startupinfo.cb = sizeof(STARTUPINFO); startupinfo.lpTitle = tfn; (void) memset(&process_information, '\0', sizeof(PROCESS_INFORMATION)); path = xs_buffer("%scatf.exe", instdir); args = xs_buffer("\"%scatf.exe\" \"%s\"", instdir, tfn); if (CreateProcess( path, args, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &startupinfo, &process_information) == 0) { popup_an_error("CreateProcess(%s) failed: %s", path, win32_strerror(GetLastError())); Free(path); Free(args); } else { Free(path); Free(args); tracewindow_handle = process_information.hProcess; CloseHandle(process_information.hThread); } } #endif /*]*/ Free(tfn); /* We're really tracing, turn the flag on. */ appres.toggle[trace_reason].value = True; appres.toggle[trace_reason].changed = True; menubar_retoggle(&appres.toggle[trace_reason]); /* Display current status. */ buf = create_tracefile_header("started"); wtrace("%s", buf); Free(buf); #if defined(X3270_DISPLAY) /*[*/ if (w) XtPopdown(trace_shell); #endif /*]*/ } #if defined(X3270_DISPLAY) /*[*/ /* Callback for "No File" button on trace popup */ static void no_tracefile_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { tracefile_callback((Widget)NULL, "", PN); XtPopdown(trace_shell); } #endif /*]*/ /* Open the trace file. */ static void tracefile_on(int reason, enum toggle_type tt) { char *tracefile_buf = NULL; char *tracefile; if (tracef != (FILE *)NULL) return; trace_reason = reason; if (appres.secure && tt != TT_INITIAL) { tracefile_callback((Widget)NULL, "none", PN); return; } if (appres.trace_file) tracefile = appres.trace_file; else { #if defined(_WIN32) /*[*/ tracefile_buf = xs_buffer("%s%sx3trc.%u.txt", (appres.trace_dir != CN)? appres.trace_dir: myappdata, (appres.trace_dir != CN)? "\\": "", getpid()); #else /*][*/ tracefile_buf = xs_buffer("%s/x3trc.%u", appres.trace_dir, getpid()); #endif /*]*/ tracefile = tracefile_buf; } #if defined(X3270_DISPLAY) /*[*/ if (tt == TT_INITIAL || tt == TT_ACTION) #endif /*]*/ { tracefile_callback((Widget)NULL, tracefile, PN); if (tracefile_buf != NULL) Free(tracefile_buf); return; } #if defined(X3270_DISPLAY) /*[*/ if (trace_shell == NULL) { trace_shell = create_form_popup("trace", tracefile_callback, appres.trace_monitor? no_tracefile_callback: NULL, FORM_NO_WHITE); XtVaSetValues(XtNameToWidget(trace_shell, ObjDialog), XtNvalue, tracefile, NULL); } /* Turn the toggle _off_ until the popup succeeds. */ appres.toggle[reason].value = False; appres.toggle[reason].changed = True; popup_popup(trace_shell, XtGrabExclusive); #endif /*]*/ if (tracefile_buf != NULL) Free(tracefile_buf); } /* Close the trace file. */ static void tracefile_off(void) { time_t clk; clk = time((time_t *)0); wtrace("Trace stopped %s", ctime(&clk)); #if !defined(_WIN32) /*[*/ if (tracewindow_pid != -1) (void) kill(tracewindow_pid, SIGKILL); tracewindow_pid = -1; #else /*][*/ if (tracewindow_handle != NULL) { TerminateProcess(tracewindow_handle, 0); CloseHandle(tracewindow_handle); tracewindow_handle = NULL; } #endif /*]*/ stop_tracing(); } void toggle_dsTrace(struct toggle *t _is_unused, enum toggle_type tt) { /* If turning on trace and no trace file, open one. */ if (toggled(DS_TRACE) && tracef == NULL) tracefile_on(DS_TRACE, tt); /* If turning off trace and not still tracing events, close the trace file. */ else if (!toggled(DS_TRACE) && !toggled(EVENT_TRACE)) tracefile_off(); if (toggled(DS_TRACE)) (void) gettimeofday(&ds_ts, (struct timezone *)NULL); } void toggle_eventTrace(struct toggle *t _is_unused, enum toggle_type tt) { /* If turning on event debug, and no trace file, open one. */ if (toggled(EVENT_TRACE) && tracef == NULL) tracefile_on(EVENT_TRACE, tt); /* If turning off event debug, and not tracing the data stream, close the trace file. */ else if (!toggled(EVENT_TRACE) && !toggled(DS_TRACE)) tracefile_off(); } /* Screen trace file support. */ #if defined(X3270_DISPLAY) /*[*/ static Widget screentrace_shell = (Widget)NULL; #endif /*]*/ static FILE *screentracef = (FILE *)0; /* * Screen trace function, called when the host clears the screen. */ static void do_screentrace(void) { register int i; if (fprint_screen(screentracef, P_TEXT, 0, NULL)) { for (i = 0; i < COLS; i++) (void) fputc('=', screentracef); (void) fputc('\n', screentracef); } } void trace_screen(void) { trace_skipping = False; if (!toggled(SCREEN_TRACE) || !screentracef) return; do_screentrace(); } /* Called from ANSI emulation code to log a single character. */ void trace_char(char c) { if (!toggled(SCREEN_TRACE) || !screentracef) return; (void) fputc(c, screentracef); } /* * Called when disconnecting in ANSI mode, to finish off the trace file * and keep the next screen clear from re-recording the screen image. * (In a gross violation of data hiding and modularity, trace_skipping is * manipulated directly in ctlr_clear()). */ void trace_ansi_disc(void) { int i; (void) fputc('\n', screentracef); for (i = 0; i < COLS; i++) (void) fputc('=', screentracef); (void) fputc('\n', screentracef); trace_skipping = True; } /* * Screen tracing callback. * Returns True for success, False for failure. */ static Boolean screentrace_cb(char *tfn) { tfn = do_subst(tfn, True, True); screentracef = fopen(tfn, "a"); if (screentracef == (FILE *)NULL) { popup_an_errno(errno, "%s", tfn); Free(tfn); return False; } Free(tfn); (void) SETLINEBUF(screentracef); #if !defined(_WIN32) /*[*/ (void) fcntl(fileno(screentracef), F_SETFD, 1); #endif /*]*/ /* We're really tracing, turn the flag on. */ appres.toggle[SCREEN_TRACE].value = True; appres.toggle[SCREEN_TRACE].changed = True; menubar_retoggle(&appres.toggle[SCREEN_TRACE]); return True; } #if defined(X3270_DISPLAY) /*[*/ /* Callback for "OK" button on screentrace popup */ static void screentrace_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { if (screentrace_cb(XawDialogGetValueString((Widget)client_data))) XtPopdown(screentrace_shell); } /* Callback for second "OK" button on screentrace popup */ static void onescreen_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { char *tfn; if (w) tfn = XawDialogGetValueString((Widget)client_data); else tfn = (char *)client_data; tfn = do_subst(tfn, True, True); screentracef = fopen(tfn, "a"); if (screentracef == (FILE *)NULL) { popup_an_errno(errno, "%s", tfn); XtFree(tfn); return; } (void) fcntl(fileno(screentracef), F_SETFD, 1); XtFree(tfn); /* Save the current image, once. */ do_screentrace(); /* Close the file, we're done. */ (void) fclose(screentracef); screentracef = (FILE *)NULL; if (w) XtPopdown(screentrace_shell); } #endif /*]*/ void toggle_screenTrace(struct toggle *t _is_unused, enum toggle_type tt) { char *tracefile_buf = NULL; char *tracefile; if (toggled(SCREEN_TRACE)) { if (appres.screentrace_file) tracefile = appres.screentrace_file; else { #if defined(_WIN32) /*[*/ tracefile_buf = xs_buffer("%s%sx3scr.%u.txt", (appres.trace_dir != CN)? appres.trace_dir: myappdata, (appres.trace_dir != CN)? "\\": "", getpid()); #else /*][*/ tracefile_buf = xs_buffer("%s/x3scr.%u", appres.trace_dir, getpid()); #endif /*]*/ tracefile = tracefile_buf; } if (tt == TT_INITIAL || tt == TT_ACTION) { (void) screentrace_cb(NewString(tracefile)); if (tracefile_buf != NULL) Free(tracefile_buf); return; } #if defined(X3270_DISPLAY) /*[*/ if (screentrace_shell == NULL) { screentrace_shell = create_form_popup("screentrace", screentrace_callback, onescreen_callback, FORM_NO_WHITE); XtVaSetValues(XtNameToWidget(screentrace_shell, ObjDialog), XtNvalue, tracefile, NULL); } appres.toggle[SCREEN_TRACE].value = False; appres.toggle[SCREEN_TRACE].changed = True; popup_popup(screentrace_shell, XtGrabExclusive); #endif /*]*/ } else { if (ctlr_any_data() && !trace_skipping) do_screentrace(); (void) fclose(screentracef); } if (tracefile_buf != NULL) Free(tracefile_buf); } #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/ctlr.c0000644000175000017500000020560611254565704015235 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * ctlr.c * This module handles interpretation of the 3270 data stream and * maintenance of the 3270 device state. It was split out from * screen.c, which handles X operations. * */ #include "globals.h" #include #include "3270ds.h" #include "appres.h" #include "ctlr.h" #include "screen.h" #include "resources.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "ft_cutc.h" #include "ft_dftc.h" #include "hostc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "screenc.h" #include "scrollc.h" #include "seec.h" #include "selectc.h" #include "sfc.h" #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" /* Externals: kybd.c */ extern unsigned char aid; /* Globals */ int ROWS, COLS; int maxROWS, maxCOLS; int defROWS, defCOLS; int altROWS, altCOLS; int ov_rows, ov_cols; Boolean ov_auto; int model_num; int cursor_addr, buffer_addr; Boolean screen_alt = False; /* alternate screen? */ Boolean is_altbuffer = False; struct ea *ea_buf; /* 3270 device buffer */ /* ea_buf[-1] is the dummy default field attribute */ struct ea *aea_buf; /* alternate 3270 extended attribute buffer */ Boolean formatted = False; /* set in screen_disp */ Boolean screen_changed = False; int first_changed = -1; int last_changed = -1; unsigned char reply_mode = SF_SRM_FIELD; int crm_nattr = 0; unsigned char crm_attr[16]; Boolean dbcs = False; /* Statics */ static unsigned char *zero_buf; /* empty buffer, for area clears */ static void set_formatted(void); static void ctlr_blanks(void); static Boolean trace_primed = False; static unsigned char default_fg; static unsigned char default_bg; static unsigned char default_gr; static unsigned char default_cs; static unsigned char default_ic; static void ctlr_half_connect(Boolean ignored); static void ctlr_connect(Boolean ignored); static int sscp_start; static void ticking_stop(void); static void ctlr_add_ic(int baddr, unsigned char ic); /* * code_table is used to translate buffer addresses and attributes to the 3270 * datastream representation */ static unsigned char code_table[64] = { 0x40, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, }; #define IsBlank(c) ((c == EBC_null) || (c == EBC_space)) #define ALL_CHANGED { \ screen_changed = True; \ if (IN_ANSI) { first_changed = 0; last_changed = ROWS*COLS; } } #define REGION_CHANGED(f, l) { \ screen_changed = True; \ if (IN_ANSI) { \ if (first_changed == -1 || f < first_changed) first_changed = f; \ if (last_changed == -1 || l > last_changed) last_changed = l; } } #define ONE_CHANGED(n) REGION_CHANGED(n, n+1) #define DECODE_BADDR(c1, c2) \ ((((c1) & 0xC0) == 0x00) ? \ (((c1) & 0x3F) << 8) | (c2) : \ (((c1) & 0x3F) << 6) | ((c2) & 0x3F)) #define ENCODE_BADDR(ptr, addr) { \ if ((ROWS * COLS) > 0x1000) { \ *(ptr)++ = ((addr) >> 8) & 0x3F; \ *(ptr)++ = (addr) & 0xFF; \ } else { \ *(ptr)++ = code_table[((addr) >> 6) & 0x3F]; \ *(ptr)++ = code_table[(addr) & 0x3F]; \ } \ } /* * Initialize the emulated 3270 hardware. */ void ctlr_init(unsigned cmask _is_unused) { /* Register callback routines. */ register_schange(ST_HALF_CONNECT, ctlr_half_connect); register_schange(ST_CONNECT, ctlr_connect); register_schange(ST_3270_MODE, ctlr_connect); } /* * Reinitialize the emulated 3270 hardware. */ void ctlr_reinit(unsigned cmask) { static struct ea *real_ea_buf = NULL; static struct ea *real_aea_buf = NULL; if (cmask & MODEL_CHANGE) { /* Allocate buffers */ if (real_ea_buf) Free((char *)real_ea_buf); real_ea_buf = (struct ea *)Calloc(sizeof(struct ea), (maxROWS * maxCOLS) + 1); ea_buf = real_ea_buf + 1; if (real_aea_buf) Free((char *)real_aea_buf); real_aea_buf = (struct ea *)Calloc(sizeof(struct ea), (maxROWS * maxCOLS) + 1); aea_buf = real_aea_buf + 1; Replace(zero_buf, (unsigned char *)Calloc(sizeof(struct ea), maxROWS * maxCOLS)); cursor_addr = 0; buffer_addr = 0; } } /* * Deal with the relationships between model numbers and rows/cols. */ void set_rows_cols(int mn, int ovc, int ovr) { int defmod; if (ovc < 0 || ovr < 0) { ov_auto = True; ovc = 0; ovr = 0; } switch (mn) { case 2: maxCOLS = MODEL_2_COLS; maxROWS = MODEL_2_ROWS; model_num = 2; break; case 3: maxCOLS = MODEL_3_COLS; maxROWS = MODEL_3_ROWS; model_num = 3; break; case 4: #if defined(RESTRICT_3279) /*[*/ if (appres.m3279) { popup_an_error("No 3279 Model 4\nDefaulting to model 3"); set_rows_cols("3", ovc, ovr); return; } #endif /*]*/ maxCOLS = MODEL_4_COLS; maxROWS = MODEL_4_ROWS; model_num = 4; break; case 5: #if defined(RESTRICT_3279) /*[*/ if (appres.m3279) { popup_an_error("No 3279 Model 5\nDefaulting to model 3"); set_rows_cols(3, ovc, ovr); return; } #endif /*]*/ maxCOLS = MODEL_5_COLS; maxROWS = MODEL_5_ROWS; model_num = 5; break; default: #if defined(RESTRICT_3279) /*[*/ defmod = appres.m3279 ? 3 : 4; #else /*][*/ defmod = 4; #endif popup_an_error("Unknown model: %d\nDefaulting to %d", mn, defmod); set_rows_cols(defmod, ovc, ovr); return; } /* Apply oversize. */ ov_cols = 0; ov_rows = 0; if (ovc != 0 || ovr != 0) { if (ovc <= 0 || ovr <= 0) popup_an_error("Invalid %s %dx%d:\nNegative or zero", ResOversize, ovc, ovr); else if (ovc * ovr >= 0x4000) popup_an_error("Invalid %s %dx%d:\nToo big", ResOversize, ovc, ovr); else if (ovc > 0 && ovc < maxCOLS) popup_an_error("Invalid %s cols (%d):\nLess than model %d cols (%d)", ResOversize, ovc, model_num, maxCOLS); else if (ovr > 0 && ovr < maxROWS) popup_an_error("Invalid %s rows (%d):\nLess than model %d rows (%d)", ResOversize, ovr, model_num, maxROWS); else { ov_cols = maxCOLS = ovc; ov_rows = maxROWS = ovr; } } /* Update the model name. */ (void) sprintf(model_name, "327%c-%d%s", appres.m3279 ? '9' : '8', model_num, appres.extended ? "-E" : ""); /* Make sure that the current rows/cols are still 24x80. */ COLS = defCOLS = MODEL_2_COLS; ROWS = defROWS = MODEL_2_ROWS; screen_alt = False; /* Set the defaults for the alternate screen size. */ altROWS = maxROWS; altCOLS = maxCOLS; } /* * Set the formatted screen flag. A formatted screen is a screen that * has at least one field somewhere on it. */ static void set_formatted(void) { register int baddr; formatted = False; baddr = 0; do { if (ea_buf[baddr].fa) { formatted = True; break; } INC_BA(baddr); } while (baddr != 0); } /* * Called when a host is half connected. */ static void ctlr_half_connect(Boolean ignored _is_unused) { ticking_start(True); } /* * Called when a host connects, disconnects, or changes ANSI/3270 modes. */ static void ctlr_connect(Boolean ignored _is_unused) { ticking_stop(); status_untiming(); if (ever_3270) { ea_buf[-1].fa = FA_PRINTABLE | FA_MODIFY; aea_buf[-1].fa = FA_PRINTABLE | FA_MODIFY; } else { ea_buf[-1].fa = FA_PRINTABLE | FA_PROTECT; aea_buf[-1].fa = FA_PRINTABLE | FA_PROTECT; } if (!IN_3270 || (IN_SSCP && (kybdlock & KL_OIA_TWAIT))) { kybdlock_clr(KL_OIA_TWAIT, "ctlr_connect"); status_reset(); } default_fg = 0x00; default_bg = 0x00; default_gr = 0x00; default_cs = 0x00; default_ic = 0x00; reply_mode = SF_SRM_FIELD; crm_nattr = 0; /* On disconnect, reset the default and alternate dimensions. */ if (!CONNECTED) { defROWS = MODEL_2_ROWS; defCOLS = MODEL_2_COLS; altROWS = maxROWS; altCOLS = maxCOLS; ctlr_erase(False); } } /* * Find the buffer address of the field attribute for a given buffer address. * Returns -1 if the screen isn't formatted. */ int find_field_attribute(int baddr) { int sbaddr; if (!formatted) return -1; sbaddr = baddr; do { if (ea_buf[baddr].fa) return baddr; DEC_BA(baddr); } while (baddr != sbaddr); return -1; } /* * Find the field attribute for the given buffer address. Return its address * rather than its value. */ unsigned char get_field_attribute(register int baddr) { return ea_buf[find_field_attribute(baddr)].fa; } /* * Find the field attribute for the given buffer address, bounded by another * buffer address. Return the attribute in a parameter. * * Returns True if an attribute is found, False if boundary hit. */ Boolean get_bounded_field_attribute(register int baddr, register int bound, unsigned char *fa_out) { int sbaddr; if (!formatted) { *fa_out = ea_buf[-1].fa; return True; } sbaddr = baddr; do { if (ea_buf[baddr].fa) { *fa_out = ea_buf[baddr].fa; return True; } DEC_BA(baddr); } while (baddr != sbaddr && baddr != bound); /* Screen is unformatted (and 'formatted' is inaccurate). */ if (baddr == sbaddr) { *fa_out = ea_buf[-1].fa; return True; } /* Wrapped to boundary. */ return False; } /* * Given the address of a field attribute, return the address of the * extended attribute structure. */ struct ea * fa2ea(int baddr) { return &ea_buf[baddr]; } /* * Find the next unprotected field. Returns the address following the * unprotected attribute byte, or 0 if no nonzero-width unprotected field * can be found. */ int next_unprotected(int baddr0) { register int baddr, nbaddr; nbaddr = baddr0; do { baddr = nbaddr; INC_BA(nbaddr); if (ea_buf[baddr].fa && !FA_IS_PROTECTED(ea_buf[baddr].fa) && !ea_buf[nbaddr].fa) return nbaddr; } while (nbaddr != baddr0); return 0; } /* * Perform an erase command, which may include changing the (virtual) screen * size. */ void ctlr_erase(Boolean alt) { int newROWS, newCOLS; kybd_inhibit(False); ctlr_clear(True); /* Let a script go. */ sms_host_output(); if (alt) { newROWS = altROWS; newCOLS = altCOLS; } else { newROWS = defROWS; newCOLS = defCOLS; } if (alt == screen_alt && ROWS == newROWS && COLS == newCOLS) return; screen_disp(True); if (visible_control) { /* Blank the entire display. */ ctlr_blanks(); ROWS = maxROWS; COLS = maxCOLS; screen_disp(False); } ROWS = newROWS; COLS = newCOLS; if (visible_control) { /* Fill the active part of the screen with NULLs again. */ ctlr_clear(False); screen_disp(False); } screen_alt = alt; } /* * Interpret an incoming 3270 command. */ enum pds process_ds(unsigned char *buf, int buflen) { enum pds rv; if (!buflen) return PDS_OKAY_NO_OUTPUT; scroll_to_bottom(); trace_ds("< "); switch (buf[0]) { /* 3270 command */ case CMD_EAU: /* erase all unprotected */ case SNA_CMD_EAU: ctlr_erase_all_unprotected(); trace_ds("EraseAllUnprotected\n"); return PDS_OKAY_NO_OUTPUT; break; case CMD_EWA: /* erase/write alternate */ case SNA_CMD_EWA: ctlr_erase(True); trace_ds("EraseWriteAlternate"); if ((rv = ctlr_write(buf, buflen, True)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_EW: /* erase/write */ case SNA_CMD_EW: ctlr_erase(False); trace_ds("EraseWrite"); if ((rv = ctlr_write(buf, buflen, True)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_W: /* write */ case SNA_CMD_W: trace_ds("Write"); if ((rv = ctlr_write(buf, buflen, False)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_RB: /* read buffer */ case SNA_CMD_RB: trace_ds("ReadBuffer\n"); ctlr_read_buffer(aid); return PDS_OKAY_OUTPUT; break; case CMD_RM: /* read modifed */ case SNA_CMD_RM: trace_ds("ReadModified\n"); ctlr_read_modified(aid, False); return PDS_OKAY_OUTPUT; break; case CMD_RMA: /* read modifed all */ case SNA_CMD_RMA: trace_ds("ReadModifiedAll\n"); ctlr_read_modified(aid, True); return PDS_OKAY_OUTPUT; break; case CMD_WSF: /* write structured field */ case SNA_CMD_WSF: trace_ds("WriteStructuredField"); return write_structured_field(buf, buflen); break; case CMD_NOP: /* no-op */ trace_ds("NoOp\n"); return PDS_OKAY_NO_OUTPUT; break; default: /* unknown 3270 command */ popup_an_error("Unknown 3270 Data Stream command: 0x%X\n", buf[0]); return PDS_BAD_CMD; } } /* * Functions to insert SA attributes into the inbound data stream. */ static void insert_sa1(unsigned char attr, unsigned char value, unsigned char *currentp, Boolean *anyp) { if (value == *currentp) return; *currentp = value; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = attr; *obptr++ = value; if (*anyp) trace_ds("'"); trace_ds(" SetAttribute(%s)", see_efa(attr, value)); *anyp = False; } /* * Translate an internal character set number to a 3270DS characte set number. */ static unsigned char host_cs(unsigned char cs) { switch (cs & CS_MASK) { case CS_APL: case CS_LINEDRAW: return 0xf0 | (cs & CS_MASK); case CS_DBCS: return 0xf8; default: return 0; } } static void insert_sa(int baddr, unsigned char *current_fgp, unsigned char *current_bgp, unsigned char *current_grp, unsigned char *current_csp, Boolean *anyp) { if (reply_mode != SF_SRM_CHAR) return; if (memchr((char *)crm_attr, XA_FOREGROUND, crm_nattr)) insert_sa1(XA_FOREGROUND, ea_buf[baddr].fg, current_fgp, anyp); if (memchr((char *)crm_attr, XA_BACKGROUND, crm_nattr)) insert_sa1(XA_BACKGROUND, ea_buf[baddr].bg, current_bgp, anyp); if (memchr((char *)crm_attr, XA_HIGHLIGHTING, crm_nattr)) { unsigned char gr; gr = ea_buf[baddr].gr; if (gr) gr |= 0xf0; insert_sa1(XA_HIGHLIGHTING, gr, current_grp, anyp); } if (memchr((char *)crm_attr, XA_CHARSET, crm_nattr)) { insert_sa1(XA_CHARSET, host_cs(ea_buf[baddr].cs), current_csp, anyp); } } /* * Process a 3270 Read-Modified command and transmit the data back to the * host. */ void ctlr_read_modified(unsigned char aid_byte, Boolean all) { register int baddr, sbaddr; Boolean send_data = True; Boolean short_read = False; unsigned char current_fg = 0x00; unsigned char current_bg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; if (IN_SSCP && aid_byte != AID_ENTER) return; #if defined(X3270_FT) /*[*/ if (aid_byte == AID_SF) { dft_read_modified(); return; } #endif /*]*/ trace_ds("> "); obptr = obuf; switch (aid_byte) { case AID_SYSREQ: /* test request */ space3270out(4); *obptr++ = 0x01; /* soh */ *obptr++ = 0x5b; /* % */ *obptr++ = 0x61; /* / */ *obptr++ = 0x02; /* stx */ trace_ds("SYSREQ"); break; case AID_PA1: /* short-read AIDs */ case AID_PA2: case AID_PA3: case AID_CLEAR: if (!all) short_read = True; /* fall through... */ case AID_SELECT: /* No data on READ MODIFIED */ if (!all) send_data = False; /* fall through... */ default: /* ordinary AID */ if (!IN_SSCP) { space3270out(3); *obptr++ = aid_byte; trace_ds("%s", see_aid(aid_byte)); if (short_read) goto rm_done; ENCODE_BADDR(obptr, cursor_addr); trace_ds("%s", rcba(cursor_addr)); } else { space3270out(1); /* just in case */ } break; } baddr = 0; if (formatted) { /* find first field attribute */ do { if (ea_buf[baddr].fa) break; INC_BA(baddr); } while (baddr != 0); sbaddr = baddr; do { if (FA_IS_MODIFIED(ea_buf[baddr].fa)) { Boolean any = False; INC_BA(baddr); space3270out(3); *obptr++ = ORDER_SBA; ENCODE_BADDR(obptr, baddr); trace_ds(" SetBufferAddress%s", rcba(baddr)); while (!ea_buf[baddr].fa) { if (send_data && ea_buf[baddr].cc) { insert_sa(baddr, ¤t_fg, ¤t_bg, ¤t_gr, ¤t_cs, &any); if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; if (any) trace_ds("'"); trace_ds(" GraphicEscape"); any = False; } space3270out(1); *obptr++ = ea_buf[baddr].cc; if (ea_buf[baddr].cc <= 0x3f || ea_buf[baddr].cc == 0xff) { if (any) trace_ds("'"); trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); any = False; } else { if (!any) trace_ds(" '"); trace_ds("%s", see_ebc(ea_buf[baddr].cc)); any = True; } } INC_BA(baddr); } if (any) trace_ds("'"); } else { /* not modified - skip */ do { INC_BA(baddr); } while (!ea_buf[baddr].fa); } } while (baddr != sbaddr); } else { Boolean any = False; int nbytes = 0; /* * If we're in SSCP-LU mode, the starting point is where the * host left the cursor. */ if (IN_SSCP) baddr = sscp_start; do { if (ea_buf[baddr].cc) { insert_sa(baddr, ¤t_fg, ¤t_bg, ¤t_gr, ¤t_cs, &any); if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; if (any) trace_ds("' "); trace_ds(" GraphicEscape "); any = False; } space3270out(1); *obptr++ = ea_buf[baddr].cc; if (ea_buf[baddr].cc <= 0x3f || ea_buf[baddr].cc == 0xff) { if (any) trace_ds("'"); trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); any = False; } else { if (!any) trace_ds(" '"); trace_ds("%s", see_ebc(ea_buf[baddr].cc)); any = True; } nbytes++; } INC_BA(baddr); /* * If we're in SSCP-LU mode, end the return value at * 255 bytes, or where the screen wraps. */ if (IN_SSCP && (nbytes >= 255 || !baddr)) break; } while (baddr != 0); if (any) trace_ds("'"); } rm_done: trace_ds("\n"); net_output(); } /* * Process a 3270 Read-Buffer command and transmit the data back to the * host. */ void ctlr_read_buffer(unsigned char aid_byte) { register int baddr; unsigned char fa; Boolean any = False; int attr_count = 0; unsigned char current_fg = 0x00; unsigned char current_bg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; #if defined(X3270_FT) /*[*/ if (aid_byte == AID_SF) { dft_read_modified(); return; } #endif /*]*/ trace_ds("> "); obptr = obuf; space3270out(3); *obptr++ = aid_byte; ENCODE_BADDR(obptr, cursor_addr); trace_ds("%s%s", see_aid(aid_byte), rcba(cursor_addr)); baddr = 0; do { if (ea_buf[baddr].fa) { if (reply_mode == SF_SRM_FIELD) { space3270out(2); *obptr++ = ORDER_SF; } else { space3270out(4); *obptr++ = ORDER_SFE; attr_count = obptr - obuf; *obptr++ = 1; /* for now */ *obptr++ = XA_3270; } fa = ea_buf[baddr].fa & ~FA_PRINTABLE; *obptr++ = code_table[fa]; if (any) trace_ds("'"); trace_ds(" StartField%s%s%s", (reply_mode == SF_SRM_FIELD) ? "" : "Extended", rcba(baddr), see_attr(fa)); if (reply_mode != SF_SRM_FIELD) { if (ea_buf[baddr].fg) { space3270out(2); *obptr++ = XA_FOREGROUND; *obptr++ = ea_buf[baddr].fg; trace_ds("%s", see_efa(XA_FOREGROUND, ea_buf[baddr].fg)); (*(obuf + attr_count))++; } if (ea_buf[baddr].bg) { space3270out(2); *obptr++ = XA_BACKGROUND; *obptr++ = ea_buf[baddr].bg; trace_ds("%s", see_efa(XA_BACKGROUND, ea_buf[baddr].bg)); (*(obuf + attr_count))++; } if (ea_buf[baddr].gr) { space3270out(2); *obptr++ = XA_HIGHLIGHTING; *obptr++ = ea_buf[baddr].gr | 0xf0; trace_ds("%s", see_efa(XA_HIGHLIGHTING, ea_buf[baddr].gr | 0xf0)); (*(obuf + attr_count))++; } if (ea_buf[baddr].cs & CS_MASK) { space3270out(2); *obptr++ = XA_CHARSET; *obptr++ = host_cs(ea_buf[baddr].cs); trace_ds("%s", see_efa(XA_CHARSET, host_cs(ea_buf[baddr].cs))); (*(obuf + attr_count))++; } } any = False; } else { insert_sa(baddr, ¤t_fg, ¤t_bg, ¤t_gr, ¤t_cs, &any); if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; if (any) trace_ds("'"); trace_ds(" GraphicEscape"); any = False; } space3270out(1); *obptr++ = ea_buf[baddr].cc; if (ea_buf[baddr].cc <= 0x3f || ea_buf[baddr].cc == 0xff) { if (any) trace_ds("'"); trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); any = False; } else { if (!any) trace_ds(" '"); trace_ds("%s", see_ebc(ea_buf[baddr].cc)); any = True; } } INC_BA(baddr); } while (baddr != 0); if (any) trace_ds("'"); trace_ds("\n"); net_output(); } #if defined(X3270_TRACE) /*[*/ /* * Construct a 3270 command to reproduce the current state of the display, if * formatted. */ void ctlr_snap_buffer(void) { register int baddr = 0; int attr_count; unsigned char current_fg = 0x00; unsigned char current_bg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; unsigned char av; space3270out(2); *obptr++ = screen_alt ? CMD_EWA : CMD_EW; *obptr++ = code_table[0]; do { if (ea_buf[baddr].fa) { space3270out(4); *obptr++ = ORDER_SFE; attr_count = obptr - obuf; *obptr++ = 1; /* for now */ *obptr++ = XA_3270; *obptr++ = code_table[ea_buf[baddr].fa & ~FA_PRINTABLE]; if (ea_buf[baddr].fg) { space3270out(2); *obptr++ = XA_FOREGROUND; *obptr++ = ea_buf[baddr].fg; (*(obuf + attr_count))++; } if (ea_buf[baddr].bg) { space3270out(2); *obptr++ = XA_BACKGROUND; *obptr++ = ea_buf[baddr].fg; (*(obuf + attr_count))++; } if (ea_buf[baddr].gr) { space3270out(2); *obptr++ = XA_HIGHLIGHTING; *obptr++ = ea_buf[baddr].gr | 0xf0; (*(obuf + attr_count))++; } if (ea_buf[baddr].cs & CS_MASK) { space3270out(2); *obptr++ = XA_CHARSET; *obptr++ = host_cs(ea_buf[baddr].cs); (*(obuf + attr_count))++; } } else { av = ea_buf[baddr].fg; if (current_fg != av) { current_fg = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_FOREGROUND; *obptr++ = av; } av = ea_buf[baddr].bg; if (current_bg != av) { current_bg = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_BACKGROUND; *obptr++ = av; } av = ea_buf[baddr].gr; if (av) av |= 0xf0; if (current_gr != av) { current_gr = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_HIGHLIGHTING; *obptr++ = av; } av = ea_buf[baddr].cs & CS_MASK; if (av) av = host_cs(av); if (current_cs != av) { current_cs = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_CHARSET; *obptr++ = av; } if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; } space3270out(1); *obptr++ = ea_buf[baddr].cc; } INC_BA(baddr); } while (baddr != 0); space3270out(4); *obptr++ = ORDER_SBA; ENCODE_BADDR(obptr, cursor_addr); *obptr++ = ORDER_IC; } /* * Construct a 3270 command to reproduce the reply mode. * Returns a Boolean indicating if one is necessary. */ Boolean ctlr_snap_modes(void) { int i; if (!IN_3270 || reply_mode == SF_SRM_FIELD) return False; space3270out(6 + crm_nattr); *obptr++ = CMD_WSF; *obptr++ = 0x00; /* implicit length */ *obptr++ = 0x00; *obptr++ = SF_SET_REPLY_MODE; *obptr++ = 0x00; /* partition 0 */ *obptr++ = reply_mode; if (reply_mode == SF_SRM_CHAR) for (i = 0; i < crm_nattr; i++) *obptr++ = crm_attr[i]; return True; } /* * Construct a 3270 command to reproduce the current state of the display * in SSCP-LU mode. */ void ctlr_snap_buffer_sscp_lu(void) { register int baddr = 0; /* Write out the screen contents once. */ do { if (ea_buf[baddr].cc == 0xff) { space3270out(1); *obptr++ = 0xff; } space3270out(1); *obptr++ = ea_buf[baddr].cc; INC_BA(baddr); } while (baddr != 0); /* Write them out again, until we hit where the cursor is. */ if (cursor_addr != baddr) { do { if (ea_buf[baddr].cc == 0xff) { space3270out(1); *obptr++ = 0xff; } space3270out(1); *obptr++ = ea_buf[baddr].cc; INC_BA(baddr); } while (baddr != cursor_addr); } } #endif /*]*/ /* * Process a 3270 Erase All Unprotected command. */ void ctlr_erase_all_unprotected(void) { register int baddr, sbaddr; unsigned char fa; Boolean f; kybd_inhibit(False); ALL_CHANGED; if (formatted) { /* find first field attribute */ baddr = 0; do { if (ea_buf[baddr].fa) break; INC_BA(baddr); } while (baddr != 0); sbaddr = baddr; f = False; do { fa = ea_buf[baddr].fa; if (!FA_IS_PROTECTED(fa)) { mdt_clear(baddr); do { INC_BA(baddr); if (!f) { cursor_move(baddr); f = True; } if (!ea_buf[baddr].fa) { ctlr_add(baddr, EBC_null, 0); } } while (!ea_buf[baddr].fa); } else { do { INC_BA(baddr); } while (!ea_buf[baddr].fa); } } while (baddr != sbaddr); if (!f) cursor_move(0); } else { ctlr_clear(True); } aid = AID_NO; do_reset(False); } /* * Process a 3270 Write command. */ enum pds ctlr_write(unsigned char buf[], int buflen, Boolean erase) { register unsigned char *cp; register int baddr; unsigned char current_fa; Boolean last_cmd; Boolean last_zpt; Boolean wcc_keyboard_restore, wcc_sound_alarm; Boolean ra_ge; int i; unsigned char na; int any_fa; unsigned char efa_fg; unsigned char efa_bg; unsigned char efa_gr; unsigned char efa_cs; unsigned char efa_ic; const char *paren = "("; enum { NONE, ORDER, SBA, TEXT, NULLCH } previous = NONE; enum pds rv = PDS_OKAY_NO_OUTPUT; int fa_addr; Boolean add_dbcs; unsigned char add_c1, add_c2 = 0; enum dbcs_state d; enum dbcs_why why = DBCS_FIELD; Boolean aborted = False; #if defined(X3270_DBCS) /*[*/ char mb[16]; #endif /*]*/ #define END_TEXT0 { if (previous == TEXT) trace_ds("'"); } #define END_TEXT(cmd) { END_TEXT0; trace_ds(" %s", cmd); } /* XXX: Should there be a ctlr_add_cs call here? */ #define START_FIELD(fa) { \ current_fa = fa; \ ctlr_add_fa(buffer_addr, fa, 0); \ ctlr_add_cs(buffer_addr, 0); \ ctlr_add_fg(buffer_addr, 0); \ ctlr_add_bg(buffer_addr, 0); \ ctlr_add_gr(buffer_addr, 0); \ ctlr_add_ic(buffer_addr, 0); \ trace_ds("%s", see_attr(fa)); \ formatted = True; \ } kybd_inhibit(False); if (buflen < 2) return PDS_BAD_CMD; default_fg = 0; default_bg = 0; default_gr = 0; default_cs = 0; default_ic = 0; trace_primed = True; buffer_addr = cursor_addr; if (WCC_RESET(buf[1])) { if (erase) reply_mode = SF_SRM_FIELD; trace_ds("%sreset", paren); paren = ","; } wcc_sound_alarm = WCC_SOUND_ALARM(buf[1]); if (wcc_sound_alarm) { trace_ds("%salarm", paren); paren = ","; } wcc_keyboard_restore = WCC_KEYBOARD_RESTORE(buf[1]); if (wcc_keyboard_restore) ticking_stop(); if (wcc_keyboard_restore) { trace_ds("%srestore", paren); paren = ","; } if (WCC_RESET_MDT(buf[1])) { trace_ds("%sresetMDT", paren); paren = ","; baddr = 0; if (appres.modified_sel) ALL_CHANGED; do { if (ea_buf[baddr].fa) { mdt_clear(baddr); } INC_BA(baddr); } while (baddr != 0); } if (strcmp(paren, "(")) trace_ds(")"); last_cmd = True; last_zpt = False; current_fa = get_field_attribute(buffer_addr); #define ABORT_WRITEx { \ rv = PDS_BAD_ADDR; \ aborted = True; \ break; \ } #define ABORT_WRITE(s) { \ trace_ds(" [" s "; write aborted]\n"); \ ABORT_WRITEx; \ } \ for (cp = &buf[2]; !aborted && cp < (buf + buflen); cp++) { switch (*cp) { case ORDER_SF: /* start field */ END_TEXT("StartField"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cp++; /* skip field attribute */ START_FIELD(*cp); ctlr_add_fg(buffer_addr, 0); ctlr_add_bg(buffer_addr, 0); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_SBA: /* set buffer address */ cp += 2; /* skip buffer address */ buffer_addr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("SetBufferAddress"); previous = SBA; trace_ds("%s", rcba(buffer_addr)); if (buffer_addr >= COLS * ROWS) { trace_ds("COLS %d ROWS %d\n", COLS, ROWS); ABORT_WRITE("invalid SBA address"); } current_fa = get_field_attribute(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_IC: /* insert cursor */ END_TEXT("InsertCursor"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cursor_move(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_PT: /* program tab */ END_TEXT("ProgramTab"); previous = ORDER; /* * If the buffer address is the field attribute of * of an unprotected field, simply advance one * position. */ if (ea_buf[buffer_addr].fa && !FA_IS_PROTECTED(ea_buf[buffer_addr].fa)) { INC_BA(buffer_addr); last_zpt = False; last_cmd = True; break; } /* * Otherwise, advance to the first position of the * next unprotected field. */ baddr = next_unprotected(buffer_addr); if (baddr < buffer_addr) baddr = 0; /* * Null out the remainder of the current field -- even * if protected -- if the PT doesn't follow a command * or order, or (honestly) if the last order we saw was * a null-filling PT that left the buffer address at 0. * XXX: There's some funky DBCS rule here. */ if (!last_cmd || last_zpt) { trace_ds("(nulling)"); while ((buffer_addr != baddr) && (!ea_buf[buffer_addr].fa)) { ctlr_add(buffer_addr, EBC_null, 0); ctlr_add_cs(buffer_addr, 0); ctlr_add_fg(buffer_addr, 0); ctlr_add_bg(buffer_addr, 0); ctlr_add_gr(buffer_addr, 0); ctlr_add_ic(buffer_addr, 0); INC_BA(buffer_addr); } if (baddr == 0) last_zpt = True; } else last_zpt = False; buffer_addr = baddr; last_cmd = True; break; case ORDER_RA: /* repeat to address */ END_TEXT("RepeatToAddress"); cp += 2; /* skip buffer address */ baddr = DECODE_BADDR(*(cp-1), *cp); trace_ds("%s", rcba(baddr)); cp++; /* skip char to repeat */ add_dbcs = False; ra_ge = False; previous = ORDER; #if defined(X3270_DBCS) /*[*/ if (dbcs) { d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("RA over right half of DBCS character"); } if (default_cs == CS_DBCS || d == DBCS_LEFT) { add_dbcs = True; } } if (add_dbcs) { if ((baddr - buffer_addr) % 2) { ABORT_WRITE("DBCS RA with odd length"); } add_c1 = *cp; cp++; if (cp >= buf + buflen) { ABORT_WRITE("missing second half of DBCS character"); } add_c2 = *cp; if (add_c1 == EBC_null) { switch (add_c2) { case EBC_null: case EBC_nl: case EBC_em: case EBC_ff: case EBC_cr: case EBC_dup: case EBC_fm: break; default: trace_ds(" [invalid DBCS RA control character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; } } else if (add_c1 < 0x40 || add_c1 > 0xfe || add_c2 < 0x40 || add_c2 > 0xfe) { trace_ds(" [invalid DBCS RA character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; } (void) ebcdic_to_multibyte( (add_c1 << 8) | add_c2, mb, sizeof(mb)); trace_ds_nb("'%s'", mb); } else #endif /*]*/ { if (*cp == ORDER_GE) { ra_ge = True; trace_ds("GraphicEscape"); cp++; } add_c1 = *cp; if (add_c1) trace_ds("'"); trace_ds("%s", see_ebc(add_c1)); if (add_c1) trace_ds("'"); } if (baddr >= COLS * ROWS) { ABORT_WRITE("invalid RA address"); } do { if (add_dbcs) { ctlr_add(buffer_addr, add_c1, default_cs); } else { if (ra_ge) ctlr_add(buffer_addr, add_c1, CS_GE); else if (default_cs) ctlr_add(buffer_addr, add_c1, default_cs); else ctlr_add(buffer_addr, add_c1, 0); } ctlr_add_fg(buffer_addr, default_fg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); if (add_dbcs) { ctlr_add(buffer_addr, add_c2, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } } while (buffer_addr != baddr); current_fa = get_field_attribute(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_EUA: /* erase unprotected to address */ cp += 2; /* skip buffer address */ baddr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("EraseUnprotectedAll"); if (previous != SBA) trace_ds("%s", rcba(baddr)); previous = ORDER; if (baddr >= COLS * ROWS) { ABORT_WRITE("invalid EUA address"); } d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("EUA overwriting right half of DBCS character"); } d = ctlr_lookleft_state(baddr, &why); if (d == DBCS_LEFT) { ABORT_WRITE("EUA overwriting left half of DBCS character"); } do { if (ea_buf[buffer_addr].fa) current_fa = ea_buf[buffer_addr].fa; else if (!FA_IS_PROTECTED(current_fa)) { ctlr_add(buffer_addr, EBC_null, CS_BASE); } INC_BA(buffer_addr); } while (buffer_addr != baddr); current_fa = get_field_attribute(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_GE: /* graphic escape */ /* XXX: DBCS? */ END_TEXT("GraphicEscape "); cp++; /* skip char */ previous = ORDER; if (*cp) trace_ds("'"); trace_ds("%s", see_ebc(*cp)); if (*cp) trace_ds("'"); ctlr_add(buffer_addr, *cp, CS_GE); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); current_fa = get_field_attribute(buffer_addr); last_cmd = False; last_zpt = False; break; case ORDER_MF: /* modify field */ END_TEXT("ModifyField"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cp++; na = *cp; if (ea_buf[buffer_addr].fa) { for (i = 0; i < (int)na; i++) { cp++; if (*cp == XA_3270) { trace_ds(" 3270"); cp++; ctlr_add_fa(buffer_addr, *cp, ea_buf[buffer_addr].cs); trace_ds("%s", see_attr(*cp)); } else if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) ctlr_add_fg(buffer_addr, *cp); } else if (*cp == XA_BACKGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) ctlr_add_bg(buffer_addr, *cp); } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; ctlr_add_gr(buffer_addr, *cp & 0x0f); } else if (*cp == XA_CHARSET) { int cs = 0; trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (*cp == 0xf1) cs = CS_APL; else if (*cp == 0xf8) cs = CS_DBCS; ctlr_add_cs(buffer_addr, cs); } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; } else if (*cp == XA_INPUT_CONTROL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); ctlr_add_ic(buffer_addr, (*(cp + 1) == 1)); cp++; } else { trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; } } INC_BA(buffer_addr); } else cp += na * 2; last_cmd = True; last_zpt = False; break; case ORDER_SFE: /* start field extended */ END_TEXT("StartFieldExtended"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cp++; /* skip order */ na = *cp; any_fa = 0; efa_fg = 0; efa_bg = 0; efa_gr = 0; efa_cs = 0; efa_ic = 0; for (i = 0; i < (int)na; i++) { cp++; if (*cp == XA_3270) { trace_ds(" 3270"); cp++; START_FIELD(*cp); any_fa++; } else if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) efa_fg = *cp; } else if (*cp == XA_BACKGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) efa_bg = *cp; } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; efa_gr = *cp & 0x07; } else if (*cp == XA_CHARSET) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (*cp == 0xf1) efa_cs = CS_APL; else if (dbcs && (*cp == 0xf8)) efa_cs = CS_DBCS; else efa_cs = CS_BASE; } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; } else if (*cp == XA_INPUT_CONTROL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (dbcs) efa_ic = (*(cp + 1) == 1); cp++; } else { trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; } } if (!any_fa) START_FIELD(0); ctlr_add_cs(buffer_addr, efa_cs); ctlr_add_fg(buffer_addr, efa_fg); ctlr_add_bg(buffer_addr, efa_bg); ctlr_add_gr(buffer_addr, efa_gr); ctlr_add_ic(buffer_addr, efa_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_SA: /* set attribute */ END_TEXT("SetAttribute"); previous = ORDER; cp++; if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (appres.m3279) default_fg = *(cp + 1); } else if (*cp == XA_BACKGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (appres.m3279) default_bg = *(cp + 1); } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_gr = *(cp + 1) & 0x0f; } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_fg = 0; default_bg = 0; default_gr = 0; default_cs = 0; default_ic = 0; } else if (*cp == XA_CHARSET) { trace_ds("%s", see_efa(*cp, *(cp + 1))); switch (*(cp + 1)) { case 0xf1: default_cs = CS_APL; break; case 0xf8: default_cs = CS_DBCS; break; default: default_cs = CS_BASE; break; } } else if (*cp == XA_INPUT_CONTROL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (*(cp + 1) == 1) default_ic = 1; else default_ic = 0; } else trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; last_cmd = True; last_zpt = False; break; case FCORDER_SUB: /* format control orders */ case FCORDER_DUP: case FCORDER_FM: case FCORDER_FF: case FCORDER_CR: case FCORDER_NL: case FCORDER_EM: case FCORDER_EO: END_TEXT(see_ebc(*cp)); previous = ORDER; d = ctlr_lookleft_state(buffer_addr, &why); if (default_cs == CS_DBCS || d != DBCS_NONE) { ABORT_WRITE("invalid format control order in DBCS field"); } ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case FCORDER_SO: /* Look left for errors. */ END_TEXT(see_ebc(*cp)); d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("SO overwriting right half of DBCS character"); } if (d != DBCS_NONE && why == DBCS_FIELD) { ABORT_WRITE("SO in DBCS field"); } if (d != DBCS_NONE && why == DBCS_SUBFIELD) { ABORT_WRITE("double SO"); } /* All is well. */ previous = ORDER; ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case FCORDER_SI: /* Look left for errors. */ END_TEXT(see_ebc(*cp)); d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("SI overwriting right half of DBCS character"); } if (d != DBCS_NONE && why == DBCS_FIELD) { ABORT_WRITE("SI in DBCS field"); } fa_addr = find_field_attribute(buffer_addr); baddr = buffer_addr; DEC_BA(baddr); while (!aborted && ((fa_addr >= 0 && baddr != fa_addr) || (fa_addr < 0 && baddr != ROWS*COLS - 1))) { if (ea_buf[baddr].cc == FCORDER_SI) { ABORT_WRITE("double SI"); } if (ea_buf[baddr].cc == FCORDER_SO) break; DEC_BA(baddr); } if (aborted) break; if (ea_buf[baddr].cc != FCORDER_SO) { ABORT_WRITE("SI without SO"); } /* All is well. */ previous = ORDER; ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case FCORDER_NULL: /* NULL or DBCS control char */ add_dbcs = False; d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("NULL overwriting right half of DBCS character"); } if (d != DBCS_NONE || default_cs == CS_DBCS) { add_c1 = EBC_null; cp++; if (cp >= buf + buflen) { ABORT_WRITE("missing second half of DBCS character"); } add_c2 = *cp; switch (add_c2) { case EBC_null: case EBC_nl: case EBC_em: case EBC_ff: case EBC_cr: case EBC_dup: case EBC_fm: /* DBCS control code */ END_TEXT(see_ebc(add_c2)); add_dbcs = True; break; case ORDER_SF: case ORDER_SFE: /* Dead position */ END_TEXT("DeadNULL"); cp--; break; default: trace_ds(" [invalid DBCS control character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; break; } if (aborted) break; } else { END_TEXT("NULL"); add_c1 = *cp; } previous = NULLCH; ctlr_add(buffer_addr, add_c1, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); if (add_dbcs) { ctlr_add(buffer_addr, add_c2, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } last_cmd = False; last_zpt = False; break; default: /* enter character */ if (*cp <= 0x3F) { END_TEXT("UnsupportedOrder"); trace_ds("(%02X)", *cp); previous = ORDER; last_cmd = True; last_zpt = False; break; } if (previous != TEXT) trace_ds(" '"); previous = TEXT; #if defined(X3270_DBCS) /*[*/ add_dbcs = False; d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("overwriting right half of DBCS character"); } if (d != DBCS_NONE || default_cs == CS_DBCS) { add_c1 = *cp; cp++; if (cp >= buf + buflen) { ABORT_WRITE("missing second half of DBCS character"); } add_c2 = *cp; if (add_c1 < 0x40 || add_c1 > 0xfe || add_c2 < 0x40 || add_c2 > 0xfe) { trace_ds(" [invalid DBCS character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; } add_dbcs = True; (void) ebcdic_to_multibyte( (add_c1 << 8) | add_c2, mb, sizeof(mb)); trace_ds_nb("%s", mb); } else { #endif /*]*/ add_c1 = *cp; trace_ds("%s", see_ebc(*cp)); #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ ctlr_add(buffer_addr, add_c1, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); #if defined(X3270_DBCS) /*[*/ if (add_dbcs) { ctlr_add(buffer_addr, add_c2, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } #endif /*]*/ last_cmd = False; last_zpt = False; break; } } set_formatted(); END_TEXT0; trace_ds("\n"); kybdlock_clr(KL_AWAITING_FIRST, "ctlr_write"); if (wcc_keyboard_restore) { aid = AID_NO; do_reset(False); } else if (kybdlock & KL_OIA_TWAIT) { kybdlock_clr(KL_OIA_TWAIT, "ctlr_write"); status_syswait(); } if (wcc_sound_alarm) ring_bell(); /* Set up the DBCS state. */ if (ctlr_dbcs_postprocess() < 0 && rv == PDS_OKAY_NO_OUTPUT) rv = PDS_BAD_ADDR; trace_primed = False; ps_process(); /* Let a script go. */ sms_host_output(); /* Tell 'em what happened. */ return rv; } #undef START_FIELDx #undef START_FIELD0 #undef START_FIELD #undef END_TEXT0 #undef END_TEXT #undef ABORT_WRITEx #undef ABORT_WRITE /* * Write SSCP-LU data, which is quite a bit dumber than regular 3270 * output. */ void ctlr_write_sscp_lu(unsigned char buf[], int buflen) { int i; unsigned char *cp = buf; int s_row; unsigned char c; int baddr; int text = False; /* * The 3174 Functionl Description says that anything but NL, NULL, FM, * or DUP is to be displayed as a graphic. However, to deal with * badly-behaved hosts, we filter out SF, IC and SBA sequences, and * we display other control codes as spaces. */ trace_ds("SSCP-LU data\n< "); for (i = 0; i < buflen; cp++, i++) { switch (*cp) { case FCORDER_NL: /* * Insert NULLs to the end of the line and advance to * the beginning of the next line. */ if (text) { trace_ds("'"); text = False; } trace_ds(" NL"); s_row = buffer_addr / COLS; while ((buffer_addr / COLS) == s_row) { ctlr_add(buffer_addr, EBC_null, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } break; case ORDER_SF: /* Some hosts forget they're talking SSCP-LU. */ cp++; i++; if (text) { trace_ds("'"); text = False; } trace_ds(" SF%s %s [translated to space]\n", rcba(buffer_addr), see_attr(*cp)); ctlr_add(buffer_addr, EBC_space, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); break; case ORDER_IC: if (text) { trace_ds("'"); text = False; } trace_ds(" IC%s [ignored]\n", rcba(buffer_addr)); break; case ORDER_SBA: baddr = DECODE_BADDR(*(cp+1), *(cp+2)); trace_ds(" SBA%s [ignored]\n", rcba(baddr)); cp += 2; i += 2; break; case ORDER_GE: cp++; if (++i >= buflen) break; if (*cp <= 0x40) c = EBC_space; else c = *cp; if (text) { trace_ds("'"); text = False; } trace_ds(" GE '%s'", see_ebc(c)); ctlr_add(buffer_addr, c, CS_GE); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); break; default: if (!text) { trace_ds(" '"); text = True; } trace_ds("%s", see_ebc(*cp)); ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); break; } } if (text) trace_ds("'"); trace_ds("\n"); cursor_move(buffer_addr); sscp_start = buffer_addr; /* Unlock the keyboard. */ aid = AID_NO; do_reset(False); /* Let a script go. */ sms_host_output(); } #if defined(X3270_DBCS) /*[*/ /* * Determine the DBCS state of a buffer location strictly by looking left. * Used only to validate write operations. * Returns only DBCS_LEFT, DBCS_RIGHT or DBCS_NONE. * Also returns whether the location is part of a DBCS field (SFE with the * DBCS character set), DBCS subfield (to the right of an SO within a non-DBCS * field), or DBCS attribute (has the DBCS character set extended attribute * within a non-DBCS field). * * This function should be used only to determine the legality of adding a * DBCS or SBCS character at baddr. */ enum dbcs_state ctlr_lookleft_state(int baddr, enum dbcs_why *why) { int faddr; int fdist; int xaddr; Boolean si = False; #define AT_END(f, b) \ (((f) < 0 && (b) == ROWS*COLS - 1) || \ ((f) >= 0 && (b) == (f))) /* If we're not in DBCS state, everything is DBCS_NONE. */ if (!dbcs) return DBCS_NONE; /* Find the field attribute, if any. */ faddr = find_field_attribute(baddr); /* * First in precedence is a DBCS field. * DBCS SA and SO/SI inside a DBCS field are errors, but are considered * defective DBCS characters. */ if (ea_buf[faddr].cs == CS_DBCS) { *why = DBCS_FIELD; fdist = (baddr + ROWS*COLS) - faddr; return (fdist % 2)? DBCS_LEFT: DBCS_RIGHT; } /* * The DBCS attribute takes precedence next. * SO and SI can appear within such a region, but they are single-byte * characters which effectively split it. */ if (ea_buf[baddr].cs == CS_DBCS) { if (ea_buf[baddr].cc == EBC_so || ea_buf[baddr].cc == EBC_si) return DBCS_NONE; xaddr = baddr; while (!AT_END(faddr, xaddr) && ea_buf[xaddr].cs == CS_DBCS && ea_buf[xaddr].cc != EBC_so && ea_buf[xaddr].cc != EBC_si) { DEC_BA(xaddr); } *why = DBCS_ATTRIBUTE; fdist = (baddr + ROWS*COLS) - xaddr; return (fdist % 2)? DBCS_LEFT: DBCS_RIGHT; } /* * Finally, look for a SO not followed by an SI. */ xaddr = baddr; DEC_BA(xaddr); while (!AT_END(faddr, xaddr)) { if (ea_buf[xaddr].cc == EBC_si) si = True; else if (ea_buf[xaddr].cc == EBC_so) { if (si) si = False; else { *why = DBCS_SUBFIELD; fdist = (baddr + ROWS*COLS) - xaddr; return (fdist % 2)? DBCS_LEFT: DBCS_RIGHT; } } DEC_BA(xaddr); } /* Nada. */ return DBCS_NONE; } static Boolean valid_dbcs_char(unsigned char c1, unsigned char c2) { if (c1 >= 0x40 && c1 < 0xff && c2 >= 0x40 && c2 < 0xff) return True; if (c1 != 0x00 || c2 < 0x40 || c2 >= 0xff) return False; switch (c2) { case EBC_null: case EBC_nl: case EBC_em: case EBC_ff: case EBC_cr: case EBC_dup: case EBC_fm: return True; default: return False; } } /* * Post-process DBCS state in the buffer. * This has two purposes: * * - Required post-processing validation, per the data stream spec, which can * cause the write operation to be rejected. * - Setting up the value of the all the db fields in ea_buf. * * This function is called at the end of every 3270 write operation, and also * after each batch of NVT write operations. It could also be called after * significant keyboard operations, but that might be too expensive. * * Returns 0 for success, -1 for failure. */ int ctlr_dbcs_postprocess(void) { int baddr; /* current buffer address */ int faddr0; /* address of first field attribute */ int faddr; /* address of current field attribute */ int last_baddr; /* last buffer address to search */ int pbaddr = -1; /* previous buffer address */ int dbaddr = -1; /* first data position of current DBCS (sub-) field */ Boolean so = False, si = False; Boolean dbcs_field = False; int rc = 0; /* If we're not in DBCS mode, do nothing. */ if (!dbcs) return 0; /* * Find the field attribute for location 0. If unformatted, it's the * dummy at -1. Also compute the starting and ending points for the * scan: the first location after that field attribute. */ faddr0 = find_field_attribute(0); baddr = faddr0; INC_BA(baddr); if (faddr0 < 0) last_baddr = 0; else last_baddr = faddr0; faddr = faddr0; dbcs_field = (ea_buf[faddr].cs & CS_MASK) == CS_DBCS; do { if (ea_buf[baddr].fa) { faddr = baddr; ea_buf[faddr].db = DBCS_NONE; dbcs_field = (ea_buf[faddr].cs & CS_MASK) == CS_DBCS; if (dbcs_field) { dbaddr = baddr; INC_BA(dbaddr); } else { dbaddr = -1; } /* * An SI followed by a field attribute shouldn't be * displayed with a wide cursor. */ if (pbaddr >= 0 && ea_buf[pbaddr].db == DBCS_SI) ea_buf[pbaddr].db = DBCS_NONE; } else { switch (ea_buf[baddr].cc) { case EBC_so: /* Two SO's or SO in DBCS field are invalid. */ if (so || dbcs_field) { trace_ds("DBCS postprocess: invalid SO " "found at %s\n", rcba(baddr)); rc = -1; } else { dbaddr = baddr; INC_BA(dbaddr); } ea_buf[baddr].db = DBCS_NONE; so = True; si = False; break; case EBC_si: /* Two SI's or SI in DBCS field are invalid. */ if (si || dbcs_field) { trace_ds("Postprocess: Invalid SO found " "at %s\n", rcba(baddr)); rc = -1; ea_buf[baddr].db = DBCS_NONE; } else { ea_buf[baddr].db = DBCS_SI; } dbaddr = -1; si = True; so = False; break; default: /* Non-base CS in DBCS subfield is invalid. */ if (so && ea_buf[baddr].cs != CS_BASE) { trace_ds("DBCS postprocess: invalid " "character set found at %s\n", rcba(baddr)); rc = -1; ea_buf[baddr].cs = CS_BASE; } if ((ea_buf[baddr].cs & CS_MASK) == CS_DBCS) { /* * Beginning or continuation of an SA DBCS * subfield. */ if (dbaddr < 0) { dbaddr = baddr; } } else if (!so && !dbcs_field) { /* * End of SA DBCS subfield. */ dbaddr = -1; } if (dbaddr >= 0) { /* * Turn invalid characters into spaces, * silently. */ if ((baddr + ROWS*COLS - dbaddr) % 2) { if (!valid_dbcs_char( ea_buf[pbaddr].cc, ea_buf[baddr].cc)) { ea_buf[pbaddr].cc = EBC_space; ea_buf[baddr].cc = EBC_space; } MAKE_RIGHT(baddr); } else { MAKE_LEFT(baddr); } } else ea_buf[baddr].db = DBCS_NONE; break; } } /* * Check for dead positions. * Turn them into NULLs, silently. */ if (pbaddr >= 0 && IS_LEFT(ea_buf[pbaddr].db) && !IS_RIGHT(ea_buf[baddr].db) && ea_buf[pbaddr].db != DBCS_DEAD) { if (!ea_buf[baddr].fa) { trace_ds("DBCS postprocess: dead position " "at %s\n", rcba(pbaddr)); rc = -1; } ea_buf[pbaddr].cc = EBC_null; ea_buf[pbaddr].db = DBCS_DEAD; } /* Check for SB's, which follow SIs. */ if (pbaddr >= 0 && ea_buf[pbaddr].db == DBCS_SI) ea_buf[baddr].db = DBCS_SB; /* Save this position as the previous and increment. */ pbaddr = baddr; INC_BA(baddr); } while (baddr != last_baddr); return rc; } #endif /*]*/ /* * Process pending input. */ void ps_process(void) { while (run_ta()) ; sms_continue(); #if defined(X3270_FT) /*[*/ /* Process file transfers. */ if (ft_state != FT_NONE && /* transfer in progress */ formatted && /* screen is formatted */ !screen_alt && /* 24x80 screen */ !kybdlock && /* keyboard not locked */ /* magic field */ ea_buf[1919].fa && FA_IS_SKIP(ea_buf[1919].fa)) { ft_cut_data(); } #endif /*]*/ } /* * Tell me if there is any data on the screen. */ Boolean ctlr_any_data(void) { register int i; for (i = 0; i < ROWS*COLS; i++) { if (!IsBlank(ea_buf[i].cc)) return True; } return False; } /* * Clear the text (non-status) portion of the display. Also resets the cursor * and buffer addresses and extended attributes. */ void ctlr_clear(Boolean can_snap) { /* Snap any data that is about to be lost into the trace file. */ if (ctlr_any_data()) { #if defined(X3270_TRACE) /*[*/ if (can_snap && !trace_skipping && toggled(SCREEN_TRACE)) trace_screen(); #endif /*]*/ scroll_save(maxROWS, ever_3270 ? False : True); } #if defined(X3270_TRACE) /*[*/ trace_skipping = False; #endif /*]*/ /* Clear the screen. */ (void) memset((char *)ea_buf, 0, ROWS*COLS*sizeof(struct ea)); ALL_CHANGED; cursor_move(0); buffer_addr = 0; unselect(0, ROWS*COLS); formatted = False; default_fg = 0; default_bg = 0; default_gr = 0; default_ic = 0; sscp_start = 0; } /* * Fill the screen buffer with blanks. */ static void ctlr_blanks(void) { int baddr; for (baddr = 0; baddr < maxROWS*maxCOLS; baddr++) { ea_buf[baddr].cc = EBC_space; } ALL_CHANGED; cursor_move(0); buffer_addr = 0; unselect(0, ROWS*COLS); formatted = False; } /* * Change a character in the 3270 buffer. * Removes any field attribute defined at that location. */ void ctlr_add(int baddr, unsigned char c, unsigned char cs) { unsigned char oc = 0; if (ea_buf[baddr].fa || ((oc = ea_buf[baddr].cc) != c || ea_buf[baddr].cs != cs)) { if (trace_primed && !IsBlank(oc)) { #if defined(X3270_TRACE) /*[*/ if (toggled(SCREEN_TRACE)) trace_screen(); #endif /*]*/ scroll_save(maxROWS, False); trace_primed = False; } if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].cc = c; ea_buf[baddr].cs = cs; ea_buf[baddr].fa = 0; } } /* * Set a field attribute in the 3270 buffer. */ void ctlr_add_fa(int baddr, unsigned char fa, unsigned char cs) { /* Put a null in the display buffer. */ ctlr_add(baddr, EBC_null, cs); /* * Store the new attribute, setting the 'printable' bits so that the * value will be non-zero. */ ea_buf[baddr].fa = FA_PRINTABLE | (fa & FA_MASK); } /* * Change the character set for a field in the 3270 buffer. */ void ctlr_add_cs(int baddr, unsigned char cs) { if (ea_buf[baddr].cs != cs) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].cs = cs; } } /* * Change the graphic rendition of a character in the 3270 buffer. */ void ctlr_add_gr(int baddr, unsigned char gr) { if (ea_buf[baddr].gr != gr) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].gr = gr; if (gr & GR_BLINK) blink_start(); } } /* * Change the foreground color for a character in the 3270 buffer. */ void ctlr_add_fg(int baddr, unsigned char color) { if (!appres.m3279) return; if ((color & 0xf0) != 0xf0) color = 0; if (ea_buf[baddr].fg != color) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].fg = color; } } /* * Change the background color for a character in the 3270 buffer. */ void ctlr_add_bg(int baddr, unsigned char color) { if (!appres.m3279) return; if ((color & 0xf0) != 0xf0) color = 0; if (ea_buf[baddr].bg != color) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].bg = color; } } /* * Change the input control bit for a character in the 3270 buffer. */ static void ctlr_add_ic(int baddr, unsigned char ic) { ea_buf[baddr].ic = ic; } /* * Wrapping bersion of ctlr_bcopy. */ void ctlr_wrapping_memmove(int baddr_to, int baddr_from, int count) { /* * The 'to' region, the 'from' region, or both can wrap the screen, * and can overlap each other. memmove() is smart enough to deal with * overlaps, but not across a screen wrap. * * It's faster to figure out if none of this is true, then do a slow * location-at-a-time version only if it happens. */ if (baddr_from + count <= ROWS*COLS && baddr_to + count <= ROWS*COLS) { ctlr_bcopy(baddr_from, baddr_to, count, True); } else { int i, from, to; for (i = 0; i < count; i++) { if (baddr_to > baddr_from) { /* Shifting right, move left. */ to = (baddr_to + count - 1 - i) % ROWS*COLS; from = (baddr_from + count - 1 - i) % ROWS*COLS; } else { /* Shifting left, move right. */ to = (baddr_to + i) % ROWS*COLS; from = (baddr_from + i) % ROWS*COLS; } ctlr_bcopy(from, to, 1, True); } } } /* * Copy a block of characters in the 3270 buffer, optionally including all of * the extended attributes. (The character set, which is actually kept in the * extended attributes, is considered part of the characters here.) */ void ctlr_bcopy(int baddr_from, int baddr_to, int count, int move_ea) { /* Move the characters. */ if (memcmp((char *) &ea_buf[baddr_from], (char *) &ea_buf[baddr_to], count * sizeof(struct ea))) { (void) memmove(&ea_buf[baddr_to], &ea_buf[baddr_from], count * sizeof(struct ea)); REGION_CHANGED(baddr_to, baddr_to + count); /* * For the time being, if any selected text shifts around on * the screen, unhighlight it. Eventually there should be * logic for preserving the highlight if the *all* of the * selected text moves. */ if (area_is_selected(baddr_to, count)) unselect(baddr_to, count); } /* XXX: What about move_ea? */ } #if defined(X3270_ANSI) /*[*/ /* * Erase a region of the 3270 buffer, optionally clearing extended attributes * as well. */ void ctlr_aclear(int baddr, int count, int clear_ea) { if (memcmp((char *) &ea_buf[baddr], (char *) zero_buf, count * sizeof(struct ea))) { (void) memset((char *) &ea_buf[baddr], 0, count * sizeof(struct ea)); REGION_CHANGED(baddr, baddr + count); if (area_is_selected(baddr, count)) unselect(baddr, count); } /* XXX: What about clear_ea? */ } /* * Scroll the screen 1 row. * * This could be accomplished with ctlr_bcopy() and ctlr_aclear(), but this * operation is common enough to warrant a separate path. */ void ctlr_scroll(void) { int qty = (ROWS - 1) * COLS; Boolean obscured; /* Make sure nothing is selected. (later this can be fixed) */ unselect(0, ROWS*COLS); /* Synchronize pending changes prior to this. */ obscured = screen_obscured(); if (!obscured && screen_changed) screen_disp(False); /* Move ea_buf. */ (void) memmove(&ea_buf[0], &ea_buf[COLS], qty * sizeof(struct ea)); /* Clear the last line. */ (void) memset((char *) &ea_buf[qty], 0, COLS * sizeof(struct ea)); /* Update the screen. */ if (obscured) { ALL_CHANGED; } else { screen_scroll(); } } #endif /*]*/ /* * Note that a particular region of the screen has changed. */ void ctlr_changed(int bstart, int bend) { REGION_CHANGED(bstart, bend); } #if defined(X3270_ANSI) /*[*/ /* * Swap the regular and alternate screen buffers */ void ctlr_altbuffer(Boolean alt) { struct ea *etmp; if (alt != is_altbuffer) { etmp = ea_buf; ea_buf = aea_buf; aea_buf = etmp; is_altbuffer = alt; ALL_CHANGED; unselect(0, ROWS*COLS); /* * There may be blinkers on the alternate screen; schedule one * iteration just in case. */ blink_start(); } } #endif /*]*/ /* * Set or clear the MDT on an attribute */ void mdt_set(int baddr) { int faddr; faddr = find_field_attribute(baddr); if (faddr >= 0 && !(ea_buf[faddr].fa & FA_MODIFY)) { ea_buf[faddr].fa |= FA_MODIFY; if (appres.modified_sel) ALL_CHANGED; } } void mdt_clear(int baddr) { int faddr; faddr = find_field_attribute(baddr); if (faddr >= 0 && (ea_buf[faddr].fa & FA_MODIFY)) { ea_buf[faddr].fa &= ~FA_MODIFY; if (appres.modified_sel) ALL_CHANGED; } } /* * Support for screen-size swapping for scrolling */ void ctlr_shrink(void) { int baddr; for (baddr = 0; baddr < ROWS*COLS; baddr++) { if (!ea_buf[baddr].fa) ea_buf[baddr].cc = visible_control? EBC_space : EBC_null; } ALL_CHANGED; screen_disp(False); } #if defined(X3270_DBCS) /*[*/ /* * DBCS state query. * Returns: * DBCS_NONE: Buffer position is SBCS. * DBCS_LEFT: Buffer position is left half of a DBCS character. * DBCS_RIGHT: Buffer position is right half of a DBCS character. * DBCS_SI: Buffer position is the SI terminating a DBCS subfield (treated * as DBCS_LEFT for wide cursor tests) * DBCS_SB: Buffer position is an SBCS character after an SI (treated as * DBCS_RIGHT for wide cursor tests) * * Takes line-wrapping into account, which probably isn't done all that well. */ enum dbcs_state ctlr_dbcs_state(int baddr) { return dbcs? ea_buf[baddr].db: DBCS_NONE; } #endif /*]*/ /* * Transaction timing. The time between sending an interrupt (PF, PA, Enter, * Clear) and the host unlocking the keyboard is indicated on the status line * to an accuracy of 0.1 seconds. If we don't repaint the screen before we see * the unlock, the time should be fairly accurate. */ static struct timeval t_start; static Boolean ticking = False; static Boolean mticking = False; static unsigned long tick_id; static struct timeval t_want; /* Return the difference in milliseconds between two timevals. */ static long delta_msec(struct timeval *t1, struct timeval *t0) { return (t1->tv_sec - t0->tv_sec) * 1000 + (t1->tv_usec - t0->tv_usec + 500) / 1000; } static void keep_ticking(void) { struct timeval t1; long msec; do { (void) gettimeofday(&t1, (struct timezone *) 0); t_want.tv_sec++; msec = delta_msec(&t_want, &t1); } while (msec <= 0); tick_id = AddTimeOut(msec, keep_ticking); status_timing(&t_start, &t1); } void ticking_start(Boolean anyway) { (void) gettimeofday(&t_start, (struct timezone *) 0); mticking = True; if (!toggled(SHOW_TIMING) && !anyway) return; status_untiming(); if (ticking) RemoveTimeOut(tick_id); ticking = True; tick_id = AddTimeOut(1000, keep_ticking); t_want = t_start; } static void ticking_stop(void) { struct timeval t1; (void) gettimeofday(&t1, (struct timezone *) 0); if (mticking) { sms_accumulate_time(&t_start, &t1); mticking = False; } else { return; } if (!ticking) return; RemoveTimeOut(tick_id); ticking = False; status_timing(&t_start, &t1); } void toggle_showTiming(struct toggle *t _is_unused, enum toggle_type tt _is_unused) { if (!toggled(SHOW_TIMING)) status_untiming(); } /* * No-op toggle. */ void toggle_nop(struct toggle *t _is_unused, enum toggle_type tt _is_unused) { } ibm-3270-3.3.10ga4/wc3270/globals.h0000644000175000017500000002702011254565704015711 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2005, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes nor the * names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL AND JEFF SPARKES * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL OR JEFF * SPARKES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * globals.h * Common definitions for x3270, c3270, s3270 and tcl3270. */ /* Autoconf settings. */ #include "conf.h" /* autoconf settings */ #if defined(X3270_TN3270E) && !defined(X3270_ANSI) /*[*/ #define X3270_ANSI 1 /* RFC2355 requires NVT mode */ #endif /*]*/ #if defined(HAVE_VASPRINTF) && !defined(_GNU_SOURCE) /*[*/ #define _GNU_SOURCE /* vasprintf isn't POSIX */ #endif /*]*/ /* * OS-specific #defines. Except for the blocking-connect workarounds, these * should be replaced with autoconf probes as soon as possible. */ /* * BLOCKING_CONNECT_ONLY * Use only blocking sockets. */ #if defined(sco) /*[*/ #define BLOCKING_CONNECT_ONLY 1 #endif /*]*/ #if defined(apollo) /*[*/ #define BLOCKING_CONNECT_ONLY 1 #endif /*]*/ /* * Compiler-specific #defines. */ /* '_is_unused' explicitly flags an unused parameter */ #if defined(__GNUC__) /*[*/ #define _is_unused __attribute__((__unused__)) #define printflike(s,f) __attribute__ ((__format__ (__printf__, s, f))) #else /*][*/ #define _is_unused /* nothing */ #define printflike(s, f) /* nothing */ #endif /*]*/ /* * Prerequisite #includes. */ #include /* Unix standard I/O library */ #include /* Other Unix library functions */ #if !defined(_MSC_VER) /*[*/ #include /* Unix system calls */ #endif /*]*/ #include /* Character classes */ #include /* String manipulations */ #include /* Basic system data types */ #if !defined(_MSC_VER) /*[*/ #include /* System time-related data types */ #endif /*]*/ #include /* C library time functions */ #include "localdefs.h" /* {s,tcl,c}3270-specific defines */ /* * MSC glue. */ #if defined(_MSC_VER) /*[*/ #include /* for struct timeval */ extern int gettimeofday(struct timeval *, void *); #define R_OK 4 #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /*]*/ /* * Locale-related definitions. * Note that USE_ICONV can be used to override __STDC_ISO_10646__, so that * development of iconv-based logic can be done on 10646-compliant systems. */ #if defined(__STDC_ISO_10646__) && !defined(USE_ICONV) /*[*/ #define UNICODE_WCHAR 1 #endif /*]*/ #if !defined(_WIN32) && !defined(UNICODE_WCHAR) /*[*/ #undef USE_ICONV #define USE_ICONV 1 #include #endif /*]*/ /* * Unicode UCS-4 characters are (hopefully) 32 bits. * EBCDIC (including DBCS) is (hopefully) 16 bits. */ typedef unsigned int ucs4_t; typedef unsigned short ebc_t; /* * Cancel out contradictory parts. */ #if !defined(X3270_DISPLAY) /*[*/ #undef X3270_KEYPAD #undef X3270_MENUS #endif /*]*/ #if defined(C3270) && defined(X3270_DBCS) && !defined(CURSES_WIDE) /*[*/ #undef X3270_DBCS #endif /*]*/ /* Local process (-e) header files. */ #if defined(X3270_LOCAL_PROCESS) && defined(HAVE_FORKPTY) /*[*/ #define LOCAL_PROCESS 1 #include #if defined(HAVE_PTY_H) /*[*/ #include #endif /*]*/ #if defined(HAVE_LIBUTIL_H) /*[*/ #include #endif /*]*/ #if defined(HAVE_UTIL_H) /*[*/ #include #endif /*]*/ #endif /*]*/ /* Functions we may need to supply. */ #if defined(NEED_STRTOK_R) /*[*/ extern char *strtok_r(char *str, const char *sep, char **last); #endif /*]*/ /* Stop conflicting with curses' COLS, even if we don't link with it. */ #define COLS cCOLS /* Simple global variables */ extern int COLS; /* current */ extern int ROWS; extern int maxCOLS; /* maximum */ extern int maxROWS; extern int defROWS; /* default (EraseWrite) */ extern int defCOLS; extern int altROWS; /* alternate (EraseWriteAlternate) */ extern int altCOLS; #if defined(X3270_DISPLAY) /*[*/ extern Atom a_3270, a_registry, a_encoding; extern XtAppContext appcontext; #endif /*]*/ extern const char *build; extern const char *build_rpq_timestamp; extern const char *build_rpq_version; extern int children; extern char *connected_lu; extern char *connected_type; extern char *current_host; extern unsigned short current_port; #if defined(X3270_DBCS) /*[*/ extern Boolean dbcs; #endif /*]*/ #if defined(X3270_FT) /*[*/ extern int dft_buffersize; #endif /*]*/ extern char *efontname; extern Boolean ever_3270; extern Boolean exiting; #if defined(X3270_DISPLAY) /*[*/ extern Boolean *extended_3270font; extern Font *fid; extern Boolean *font_8bit; #endif /*]*/ extern Boolean flipped; extern char *full_current_host; extern char *full_efontname; #if defined(X3270_DBCS) /*[*/ extern char *full_efontname_dbcs; #endif /*]*/ extern char full_model_name[]; extern char *funky_font; extern char *hostname; #if defined(X3270_DBCS) /*[*/ #if defined(X3270_DISPLAY) /*[*/ extern char *locale_name; #endif /*]*/ #endif /*]*/ extern char luname[]; #if defined(LOCAL_PROCESS) /*[*/ extern Boolean local_process; #endif /*]*/ extern char *model_name; extern int model_num; extern Boolean no_login_host; extern Boolean non_tn3270e_host; extern int ov_cols, ov_rows; extern Boolean ov_auto; extern Boolean passthru_host; extern const char *programname; extern char *qualified_host; extern char *reconnect_host; extern int screen_depth; extern Boolean scroll_initted; #if defined(HAVE_LIBSSL) /*[*/ extern Boolean secure_connection; #endif /*]*/ extern Boolean shifted; extern Boolean ssl_host; extern Boolean *standard_font; extern Boolean std_ds_host; extern char *termtype; extern Widget toplevel; extern Boolean visible_control; extern int *xtra_width; #if defined(X3270_DISPLAY) /*[*/ extern Atom a_delete_me; extern Atom a_save_yourself; extern Atom a_state; extern Display *display; extern Pixmap gray; extern Pixel keypadbg_pixel; extern XrmDatabase rdb; extern Window root_window; extern char *user_title; #endif /*]*/ #if defined(_WIN32) && (defined(C3270) || defined(S3270)) /*[*/ extern char *instdir; extern char *myappdata; #endif /*]*/ #if defined(_WIN32) && defined(C3270) /*[*/ extern int is_installed; #endif /*]*/ /* Data types and complex global variables */ /* connection state */ enum cstate { NOT_CONNECTED, /* no socket, unknown mode */ RESOLVING, /* resolving hostname */ PENDING, /* connection pending */ CONNECTED_INITIAL, /* connected, no mode yet */ CONNECTED_ANSI, /* connected in NVT ANSI mode */ CONNECTED_3270, /* connected in old-style 3270 mode */ CONNECTED_INITIAL_E, /* connected in TN3270E mode, unnegotiated */ CONNECTED_NVT, /* connected in TN3270E mode, NVT mode */ CONNECTED_SSCP, /* connected in TN3270E mode, SSCP-LU mode */ CONNECTED_TN3270E /* connected in TN3270E mode, 3270 mode */ }; extern enum cstate cstate; #define PCONNECTED ((int)cstate >= (int)RESOLVING) #define HALF_CONNECTED (cstate == RESOLVING || cstate == PENDING) #define CONNECTED ((int)cstate >= (int)CONNECTED_INITIAL) #define IN_NEITHER (cstate == CONNECTED_INITIAL) #define IN_ANSI (cstate == CONNECTED_ANSI || cstate == CONNECTED_NVT) #define IN_3270 (cstate == CONNECTED_3270 || cstate == CONNECTED_TN3270E || cstate == CONNECTED_SSCP) #define IN_SSCP (cstate == CONNECTED_SSCP) #define IN_TN3270E (cstate == CONNECTED_TN3270E) #define IN_E (cstate >= CONNECTED_INITIAL_E) /* keyboard modifer bitmap */ #define ShiftKeyDown 0x01 #define MetaKeyDown 0x02 #define AltKeyDown 0x04 /* toggle names */ struct toggle_name { const char *name; int index; }; extern struct toggle_name toggle_names[]; /* extended attributes */ struct ea { unsigned char cc; /* EBCDIC or ASCII character code */ unsigned char fa; /* field attribute, it nonzero */ unsigned char fg; /* foreground color (0x00 or 0xf) */ unsigned char bg; /* background color (0x00 or 0xf) */ unsigned char gr; /* ANSI graphics rendition bits */ unsigned char cs; /* character set (GE flag, or 0..2) */ unsigned char ic; /* input control (DBCS) */ unsigned char db; /* DBCS state */ }; #define GR_BLINK 0x01 #define GR_REVERSE 0x02 #define GR_UNDERLINE 0x04 #define GR_INTENSIFY 0x08 #define CS_MASK 0x03 /* mask for specific character sets */ #define CS_BASE 0x00 /* base character set (X'00') */ #define CS_APL 0x01 /* APL character set (X'01' or GE) */ #define CS_LINEDRAW 0x02 /* DEC line-drawing character set (ANSI) */ #define CS_DBCS 0x03 /* DBCS character set (X'F8') */ #define CS_GE 0x04 /* cs flag for Graphic Escape */ /* translation lists */ struct trans_list { char *name; char *pathname; Boolean is_temp; Boolean from_server; struct trans_list *next; }; extern struct trans_list *trans_list; /* input key type */ enum keytype { KT_STD, KT_GE }; /* state changes */ #define ST_RESOLVING 1 #define ST_HALF_CONNECT 2 #define ST_CONNECT 3 #define ST_3270_MODE 4 #define ST_LINE_MODE 5 #define ST_REMODEL 6 #define ST_PRINTER 7 #define ST_EXITING 8 #define ST_CHARSET 9 #define N_ST 10 /* Naming convention for private actions. */ #define PA_PFX "PA-" /* Shorthand macros */ #define CN ((char *) NULL) #define PN ((XtPointer) NULL) #define Replace(var, value) { Free(var); var = (value); } /* Configuration change masks. */ #define NO_CHANGE 0x0000 /* no change */ #define MODEL_CHANGE 0x0001 /* screen dimensions changed */ #define FONT_CHANGE 0x0002 /* emulator font changed */ #define COLOR_CHANGE 0x0004 /* color scheme or 3278/9 mode changed */ #define SCROLL_CHANGE 0x0008 /* scrollbar snapped on or off */ #define CHARSET_CHANGE 0x0010 /* character set changed */ #define ALL_CHANGE 0xffff /* everything changed */ /* Portability macros */ /* Equivalent of setlinebuf */ #if defined(_IOLBF) /*[*/ #define SETLINEBUF(s) setvbuf(s, (char *)NULL, _IOLBF, BUFSIZ) #else /*][*/ #define SETLINEBUF(s) setlinebuf(s) #endif /*]*/ /* Motorola version of gettimeofday */ #if defined(MOTOROLA) #define gettimeofday(tp,tz) gettimeofday(tp) #endif /* Default DFT file transfer buffer size. */ #if defined(X3270_FT) && !defined(DFT_BUF) /*[*/ #define DFT_BUF (4 * 1024) #endif /*]*/ /* DBCS Preedit Types */ #if defined(X3270_DBCS) /*[*/ #define PT_ROOT "Root" #define PT_OVER_THE_SPOT "OverTheSpot" #define PT_OFF_THE_SPOT "OffTheSpot" #define PT_ON_THE_SPOT "OnTheSpot" #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/keymapc.h0000755000175000017500000000400711254565671015725 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* wc3270 version of keymapc.h */ #define KM_SHIFT 0x0001 #define KM_LCTRL 0x0002 #define KM_RCTRL 0x0004 #define KM_CTRL (KM_LCTRL | KM_RCTRL) #define KM_LALT 0x0008 #define KM_RALT 0x0010 #define KM_ALT (KM_LALT | KM_RALT) #define KM_ENHANCED 0x0020 extern void keymap_init(void); extern char *lookup_key(unsigned long xk, unsigned long state); extern void keymap_dump(void); extern const char *decode_key(int k, int hint, char *buf); extern const char *lookup_cname(unsigned long ccode, Boolean special_only); ibm-3270-3.3.10ga4/wc3270/idle.c0000644000175000017500000004453711254565704015212 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * idle.c * This module handles the idle command. */ #include "globals.h" #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #include #include #include #include #include #include #include #include #endif /*]*/ #include #include "appres.h" #include "dialogc.h" #include "hostc.h" #include "idlec.h" #include "macrosc.h" #include "objects.h" #include "popupsc.h" #include "resources.h" #include "trace_dsc.h" #include "utilc.h" /* Macros. */ #define MSEC_PER_SEC 1000L #define IDLE_SEC 1L #define IDLE_MIN 60L #define IDLE_HR (60L * 60L) #define IDLE_MS (7L * IDLE_MIN * MSEC_PER_SEC) #if defined(X3270_DISPLAY) /*[*/ #define FILE_WIDTH 300 /* width of file name widgets */ #define MARGIN 3 /* distance from margins to widgets */ #define CLOSE_VGAP 0 /* distance between paired toggles */ #define FAR_VGAP 10 /* distance between single toggles and groups */ #define BUTTON_GAP 5 /* horizontal distance between buttons */ #endif /*]*/ #define BN (Boolean *)NULL /* Externals. */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ extern Pixmap diamond; extern Pixmap no_diamond; extern Pixmap dot; extern Pixmap no_dot; #endif /*]*/ /* Globals. */ Boolean idle_changed = False; char *idle_command = CN; char *idle_timeout_string = CN; enum idle_enum idle_user_enabled = IDLE_DISABLED; /* Statics. */ static Boolean idle_enabled = False; /* validated and user-enabled */ static unsigned long idle_n = 0L; static unsigned long idle_multiplier = IDLE_SEC; static unsigned long idle_id; static unsigned long idle_ms; static Boolean idle_randomize = False; static Boolean idle_ticking = False; static void idle_in3270(Boolean in3270); static int process_timeout_value(char *t); #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static enum idle_enum s_disabled = IDLE_DISABLED; static enum idle_enum s_session = IDLE_SESSION; static enum idle_enum s_perm = IDLE_PERM; static char hms = 'm'; static Boolean fuzz = False; static char s_hours = 'h'; static char s_minutes = 'm'; static char s_seconds = 's'; static Widget idle_dialog, idle_shell, command_value, timeout_value; static Widget enable_toggle, enable_perm_toggle, disable_toggle; static Widget hours_toggle, minutes_toggle, seconds_toggle, fuzz_toggle; static sr_t *idle_sr = (sr_t *)NULL; static void idle_cancel(Widget w, XtPointer client_data, XtPointer call_data); static void idle_popup_callback(Widget w, XtPointer client_data, XtPointer call_data); static void idle_popup_init(void); static int idle_start(void); static void okay_callback(Widget w, XtPointer call_parms, XtPointer call_data); static void toggle_enable(Widget w, XtPointer client_data, XtPointer call_data); static void mark_toggle(Widget w, Pixmap p); static void toggle_hms(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_fuzz(Widget w, XtPointer client_data, XtPointer call_data); #endif /*]*/ /* Initialization. */ void idle_init(void) { char *cmd, *tmo; /* Register for state changes. */ register_schange(ST_3270_MODE, idle_in3270); register_schange(ST_CONNECT, idle_in3270); /* Get values from resources. */ cmd = appres.idle_command; idle_command = cmd? NewString(cmd): CN; tmo = appres.idle_timeout; idle_timeout_string = tmo? NewString(tmo): CN; if (appres.idle_command_enabled) idle_user_enabled = IDLE_PERM; else idle_user_enabled = IDLE_DISABLED; if (idle_user_enabled && idle_command != CN && process_timeout_value(idle_timeout_string) == 0) idle_enabled = True; /* Seed the random number generator (we seem to be the only user). */ #if defined(_WIN32) /*[*/ srand(time(NULL)); #else /*][*/ srandom(time(NULL)); #endif /*]*/ } /* * Process a timeout value: or ~?[0-9]+[HhMmSs] * Returns 0 for success, -1 for failure. * Sets idle_ms and idle_randomize as side-effects. */ static int process_timeout_value(char *t) { char *s = t; char *ptr; if (s == CN || *s == '\0') { idle_ms = IDLE_MS; idle_randomize = True; return 0; } if (*s == '~') { idle_randomize = True; s++; } idle_n = strtoul(s, &ptr, 0); if (idle_n <= 0) goto bad_idle; switch (*ptr) { case 'H': case 'h': idle_multiplier = IDLE_HR; break; case 'M': case 'm': idle_multiplier = IDLE_MIN; break; case 'S': case 's': case '\0': idle_multiplier = IDLE_SEC; break; default: goto bad_idle; } idle_ms = idle_n * idle_multiplier * MSEC_PER_SEC; return 0; bad_idle: popup_an_error("Invalid idle timeout value '%s'", t); idle_ms = 0L; idle_randomize = False; return -1; } /* Called when a host connects or disconnects. */ static void idle_in3270(Boolean in3270 _is_unused) { if (IN_3270) { reset_idle_timer(); } else { /* Not in 3270 mode any more, turn off the timeout. */ if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } /* If the user didn't want it to be permanent, disable it. */ if (idle_user_enabled != IDLE_PERM) idle_user_enabled = IDLE_DISABLED; } } /* * Idle timeout. */ static void idle_timeout(void) { trace_event("Idle timeout\n"); idle_ticking = False; push_idle(idle_command); reset_idle_timer(); } /* * Reset (and re-enable) the idle timer. Called when the user presses a key or * clicks with the mouse. */ void reset_idle_timer(void) { if (idle_enabled) { unsigned long idle_ms_now; if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } idle_ms_now = idle_ms; if (idle_randomize) { idle_ms_now = idle_ms; #if defined(_WIN32) /*[*/ idle_ms_now -= rand() % (idle_ms / 10L); #else /*][*/ idle_ms_now -= random() % (idle_ms / 10L); #endif /*]*/ } #if defined(DEBUG_IDLE_TIMEOUT) /*[*/ trace_event("Setting idle timeout to %lu\n", idle_ms_now); #endif /*]*/ idle_id = AddTimeOut(idle_ms_now, idle_timeout); idle_ticking = True; } } /* * Cancel the idle timer. This is called when there is an error in * processing the idle command. */ void cancel_idle_timer(void) { if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } idle_enabled = False; } char * get_idle_command(void) { return idle_command; } char * get_idle_timeout(void) { return idle_timeout_string; } #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ /* "Idle Command" dialog. */ /* * Pop up the "Idle" menu. * Called back from the "Configure Idle Command" option on the Options menu. */ void popup_idle(void) { char *its; char *s; /* Initialize it. */ if (idle_shell == (Widget)NULL) idle_popup_init(); /* * Split the idle_timeout_string (the raw resource value) into fuzz, * a number, and h/m/s. */ its = NewString(idle_timeout_string); if (its != CN) { if (*its == '~') { fuzz = True; its++; } else { fuzz = False; } s = its; while (isdigit(*s)) s++; switch (*s) { case 'h': case 'H': hms = 'h'; break; case 'm': case 'M': hms = 'm'; break; case 's': case 'S': hms = 's'; break; default: break; } *s = '\0'; } /* Set the resource values. */ dialog_set(&idle_sr, idle_dialog); XtVaSetValues(command_value, XtNstring, idle_command, NULL); XtVaSetValues(timeout_value, XtNstring, its, NULL); mark_toggle(enable_toggle, (idle_user_enabled == IDLE_SESSION)? diamond : no_diamond); mark_toggle(enable_perm_toggle, (idle_user_enabled == IDLE_PERM)? diamond : no_diamond); mark_toggle(disable_toggle, (idle_user_enabled == IDLE_DISABLED)? diamond : no_diamond); mark_toggle(hours_toggle, (hms == 'h') ? diamond : no_diamond); mark_toggle(minutes_toggle, (hms == 'm') ? diamond : no_diamond); mark_toggle(seconds_toggle, (hms == 's') ? diamond : no_diamond); mark_toggle(fuzz_toggle, fuzz ? dot : no_dot); /* Pop it up. */ popup_popup(idle_shell, XtGrabNone); } /* Initialize the idle pop-up. */ static void idle_popup_init(void) { Widget w; Widget cancel_button; Widget command_label, timeout_label; Widget okay_button; /* Prime the dialog functions. */ dialog_set(&idle_sr, idle_dialog); /* Create the menu shell. */ idle_shell = XtVaCreatePopupShell( "idlePopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(idle_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(idle_shell, XtNpopupCallback, idle_popup_callback, (XtPointer)NULL); /* Create the form within the shell. */ idle_dialog = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, idle_shell, NULL); /* Create the file name widgets. */ command_label = XtVaCreateManagedWidget( "command", labelWidgetClass, idle_dialog, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); command_value = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, idle_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNvertDistance, FAR_VGAP, XtNfromHoriz, command_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(command_label, command_value, XtNheight); w = XawTextGetSource(command_value); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_command); dialog_register_sensitivity(command_value, BN, False, BN, False, BN, False); timeout_label = XtVaCreateManagedWidget( "timeout", labelWidgetClass, idle_dialog, XtNfromVert, command_label, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); timeout_value = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, idle_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNdisplayCaret, False, XtNfromVert, command_label, XtNvertDistance, 3, XtNfromHoriz, timeout_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(timeout_label, timeout_value, XtNheight); dialog_match_dimension(command_label, timeout_label, XtNwidth); w = XawTextGetSource(timeout_value); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(timeout_value, BN, False, BN, False, BN, False); /* Create the hour/minute/seconds radio buttons. */ hours_toggle = XtVaCreateManagedWidget( "hours", commandWidgetClass, idle_dialog, XtNfromVert, timeout_value, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(hours_toggle, no_diamond); XtAddCallback(hours_toggle, XtNcallback, toggle_hms, (XtPointer)&s_hours); minutes_toggle = XtVaCreateManagedWidget( "minutes", commandWidgetClass, idle_dialog, XtNfromVert, timeout_value, XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, hours_toggle, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(minutes_toggle, diamond); XtAddCallback(minutes_toggle, XtNcallback, toggle_hms, (XtPointer)&s_minutes); seconds_toggle = XtVaCreateManagedWidget( "seconds", commandWidgetClass, idle_dialog, XtNfromVert, timeout_value, XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, minutes_toggle, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(seconds_toggle, no_diamond); XtAddCallback(seconds_toggle, XtNcallback, toggle_hms, (XtPointer)&s_seconds); /* Create the fuzz toggle. */ fuzz_toggle = XtVaCreateManagedWidget( "fuzz", commandWidgetClass, idle_dialog, XtNfromVert, hours_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(fuzz_toggle, no_dot); XtAddCallback(fuzz_toggle, XtNcallback, toggle_fuzz, (XtPointer)NULL); /* Create enable/disable toggles. */ enable_toggle = XtVaCreateManagedWidget( "enable", commandWidgetClass, idle_dialog, XtNfromVert, fuzz_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(enable_toggle, (idle_user_enabled == IDLE_SESSION)? diamond : no_diamond); XtAddCallback(enable_toggle, XtNcallback, toggle_enable, (XtPointer)&s_session); enable_perm_toggle = XtVaCreateManagedWidget( "enablePerm", commandWidgetClass, idle_dialog, XtNfromVert, enable_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(enable_perm_toggle, (idle_user_enabled == IDLE_PERM)? diamond : no_diamond); XtAddCallback(enable_perm_toggle, XtNcallback, toggle_enable, (XtPointer)&s_perm); disable_toggle = XtVaCreateManagedWidget( "disable", commandWidgetClass, idle_dialog, XtNfromVert, enable_perm_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(disable_toggle, (idle_user_enabled == IDLE_DISABLED)? diamond : no_diamond); XtAddCallback(disable_toggle, XtNcallback, toggle_enable, (XtPointer)&s_disabled); /* Set up the buttons at the bottom. */ okay_button = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, idle_dialog, XtNfromVert, disable_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(okay_button, XtNcallback, okay_callback, (XtPointer)NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, idle_dialog, XtNfromVert, disable_toggle, XtNvertDistance, FAR_VGAP, XtNfromHoriz, okay_button, XtNhorizDistance, BUTTON_GAP, NULL); XtAddCallback(cancel_button, XtNcallback, idle_cancel, 0); } /* Callbacks for all the idle widgets. */ /* Idle pop-up popping up. */ static void idle_popup_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Set the focus to the command widget. */ PA_dialog_focus_action(command_value, (XEvent *)NULL, (String *)NULL, (Cardinal *)NULL); } /* Cancel button pushed. */ static void idle_cancel(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(idle_shell); } /* OK button pushed. */ static void okay_callback(Widget w _is_unused, XtPointer call_parms _is_unused, XtPointer call_data _is_unused) { if (idle_start() == 0) { idle_changed = True; XtPopdown(idle_shell); } } /* Mark a toggle. */ static void mark_toggle(Widget w, Pixmap p) { XtVaSetValues(w, XtNleftBitmap, p, NULL); } /* Hour/minute/second options. */ static void toggle_hms(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ hms = *(char *)client_data; /* Change the widget states. */ mark_toggle(hours_toggle, (hms == 'h') ? diamond : no_diamond); mark_toggle(minutes_toggle, (hms == 'm') ? diamond : no_diamond); mark_toggle(seconds_toggle, (hms == 's') ? diamond : no_diamond); } /* Fuzz option. */ static void toggle_fuzz(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ fuzz = !fuzz; /* Change the widget state. */ mark_toggle(fuzz_toggle, fuzz ? dot : no_dot); } /* Enable/disable options. */ static void toggle_enable(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ idle_user_enabled = *(enum idle_enum *)client_data; /* Change the widget states. */ mark_toggle(enable_toggle, (idle_user_enabled == IDLE_SESSION)? diamond: no_diamond); mark_toggle(enable_perm_toggle, (idle_user_enabled == IDLE_PERM)? diamond: no_diamond); mark_toggle(disable_toggle, (idle_user_enabled == IDLE_DISABLED)? diamond: no_diamond); } /* * Called when the user presses the OK button on the idle command dialog. * Returns 0 for success, -1 otherwise. */ static int idle_start(void) { char *cmd, *tmo, *its; /* Update the globals, so the dialog has the same values next time. */ XtVaGetValues(command_value, XtNstring, &cmd, NULL); Replace(idle_command, NewString(cmd)); XtVaGetValues(timeout_value, XtNstring, &tmo, NULL); its = Malloc(strlen(tmo) + 3); (void) sprintf(its, "%s%s%c", fuzz? "~": "", tmo, hms); Replace(idle_timeout_string, its); /* See if they've turned it off. */ if (!idle_user_enabled) { /* If they're turned it off, cancel the timer. */ idle_enabled = False; if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } return 0; } /* They've turned it on, and possibly reconfigured it. */ /* Validate the timeout. It should work, yes? */ if (process_timeout_value(its) < 0) { return -1; } /* Seems okay. Reset to the new interval and command. */ idle_enabled = True; if (IN_3270) { reset_idle_timer(); } return 0; } #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/windirs.c0000644000175000017500000002276711254565675015764 0ustar bastianbastian/* * Copyright (c) 2006-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * windirs.c * A Windows console-based 3270 Terminal Emulator * Find common directory paths. */ #include #include #include #include #include "windirsc.h" /* * If Win2K or later, use SHGetFoldersA from shell32.dll. * Otherwise, use the function below. */ /* Locate the desktop and appdata directories from the Windows registry. */ static int old_get_dirs(char **desktop, char **appdata) { HRESULT hres; HKEY hkey; DWORD index; /* Get some paths from Windows. */ hres = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", 0, KEY_QUERY_VALUE, &hkey); if (hres != ERROR_SUCCESS) { printf("Sorry, I can't figure out where your Desktop or " "Application Data directories are, Windows error " "%ld.\n", hres); return -1; } if (desktop != NULL) { *desktop = malloc(MAX_PATH); if (*desktop == NULL) return -1; (*desktop)[0] = '\0'; } if (appdata != NULL) { *appdata = malloc(MAX_PATH); if (*appdata == NULL) return -1; (*appdata)[0] = '\0'; } /* * Iterate to find Desktop and AppData. * We can't just go for them individually, because we can't use * ReqQueryValueEx on Win98, and ReqQueryValue doesn't work. */ for (index = 0; ; index++) { char name[MAX_PATH]; DWORD nlen = MAX_PATH; char value[MAX_PATH]; DWORD vlen = MAX_PATH; DWORD type; hres = RegEnumValue(hkey, index, name, &nlen, 0, &type, (unsigned char *)value, &vlen); if (hres != ERROR_SUCCESS) break; if (desktop != NULL && !strcmp(name, "Desktop")) strcpy(*desktop, value); else if (appdata != NULL && !strcmp(name, "AppData")) strcpy(*appdata, value); if ((desktop == NULL || (*desktop)[0]) && (appdata == NULL || (*appdata)[0])) break; } RegCloseKey(hkey); if ((desktop != NULL && !(*desktop)[0]) || (appdata != NULL && !(*appdata)[0])) { printf("Sorry, I can't figure out where your Desktop or " "Application Data directories are.\n"); return -1; } return 0; } /* * dll_SHGetFolderPath explicitly pulls SHGetFolderPathA out of shell32.dll, * so we won't get link errors on Win98. */ static HRESULT dll_SHGetFolderPath(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwFlags, LPTSTR pszPath) { static HMODULE handle = NULL; static FARPROC p = NULL; typedef HRESULT (__stdcall *sgfp_fn)(HWND, int, HANDLE, DWORD, LPSTR); if (handle == NULL) { handle = LoadLibrary("shell32.dll"); if (handle == NULL) { fprintf(stderr, "Cannot find shell32.dll\n"); return E_FAIL; } p = GetProcAddress(handle, "SHGetFolderPathA"); if (p == NULL) { fprintf(stderr, "Cannot find SHGetFolderPathA in " "shell32.dll\n"); return E_FAIL; } } return ((sgfp_fn)p)(hwndOwner, nFolder, hToken, dwFlags, pszPath); } /* Locate the desktop and appdata directories via the SHGetFolderPath API. */ static int new_get_dirs(char **desktop, char **appdata) { HRESULT r; if (desktop != NULL) { *desktop = malloc(MAX_PATH); if (*desktop == NULL) return -1; r = dll_SHGetFolderPath(NULL, CSIDL_DESKTOPDIRECTORY, NULL, SHGFP_TYPE_CURRENT, *desktop); if (r != S_OK) { printf("SHGetFolderPath(DESKTOPDIRECTORY) failed: " "0x%x\n", (int)r); fflush(stdout); return -1; } } if (appdata != NULL) { *appdata = malloc(MAX_PATH); if (*appdata == NULL) return -1; r = dll_SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, *appdata); if (r != S_OK) { printf("SHGetFolderPath(APPDATA) failed: 0x%x\n", (int)r); fflush(stdout); return -1; } } return 0; } /* Return the current working directory, always ending with a '\'. */ static char * getcwd_bsl(void) { char *wd; size_t sl; wd = _getcwd(NULL, 0); sl = strlen(wd); if (sl > 0 && wd[sl - 1] != '\\') { char *xwd; xwd = malloc(sl + 2); if (xwd == NULL) return NULL; strcpy(xwd, wd); strcat(xwd, "\\"); free(wd); wd = xwd; } return wd; } /* * Locate the installation, desktop and app-data directories. * Return them in malloc'd buffers, all with trailing backslashes. * Also return a flag indicating that the program was installed. * If returning AppData and the program is installed, make sure that the * directory exists. * * param[in] argv0 program's argv[0] * param[in] appname application name (for app-data) * param[out] instdir installation directory (or NULL) * param[out] desktop desktop directory (or NULL) * param[out] appdata app-data directory (or NULL) * param[out] installed is the program installed? * * Returns 0 for success, -1 for an unrecoverable error. * All returned directories end in '\'. * * Uses the presence of CATF.EXE to decide if the program is installed or * not. If not, appdata is returned as the cwd. */ int get_dirs(char *argv0, char *appname, char **instdir, char **desktop, char **appdata, int *installed) { char **xappdata = appdata; int is_installed = FALSE; if (appdata != NULL || installed != NULL) { HMODULE h; h = LoadLibrary("CATF.EXE"); if (h != NULL) { FreeLibrary(h); is_installed = TRUE; } else { is_installed = FALSE; } if (installed != NULL) *installed = is_installed; } /* * Use arg0 and GetFullPathName() to figure out the installation * directory. */ if (instdir != NULL) { char *bsl; char *tmp_instdir; DWORD rv; bsl = strrchr(argv0, '\\'); if (bsl != NULL) { /* argv0 contains a path. */ tmp_instdir = malloc(strlen(argv0) + 1); if (tmp_instdir == NULL) return -1; strcpy(tmp_instdir, argv0); if (bsl - argv0 > 0 && tmp_instdir[bsl - argv0 - 1] == ':') /* X:\foo */ tmp_instdir[bsl - argv0 + 1] = '\0'; else /* X:\foo\bar */ tmp_instdir[bsl - argv0] = '\0'; rv = GetFullPathName(tmp_instdir, 0, NULL, NULL); *instdir = malloc(rv + 2); if (*instdir == NULL) return -1; if (GetFullPathName(tmp_instdir, rv + 1, *instdir, NULL) == 0) return -1; free(tmp_instdir); /* Make sure instdir ends in '\\'. */ if ((*instdir)[strlen(*instdir) - 1] != '\\') strcat(*instdir, "\\"); } else { *instdir = getcwd_bsl(); if (*instdir == NULL) return -1; } } /* If not installed, app-data is cwd. */ if (appdata != NULL && !is_installed) { *appdata = getcwd_bsl(); if (*appdata == NULL) return -1; /* Keep xxx_get_dirs() from resolving it below. */ xappdata = NULL; } if (desktop != NULL || xappdata != NULL) { OSVERSIONINFO info; char *wsl; /* Figure out what version of Windows this is. */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); return -1; } if ((info.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) || (info.dwMajorVersion < 5)) { /* Use the registry. */ if (old_get_dirs(desktop, xappdata) < 0) return -1; } else { /* Use the API. */ if (new_get_dirs(desktop, xappdata) < 0) return -1; } /* Append a trailing "\" to Desktop. */ if (desktop != NULL && (*desktop)[strlen(*desktop) - 1] != '\\') { wsl = malloc(strlen(*desktop) + 2); if (wsl == NULL) return -1; sprintf(wsl, "%s\\", *desktop); free(*desktop); *desktop = wsl; } /* Append the application name and trailing "\" to AppData. */ if (xappdata != NULL) { size_t sl = strlen(*xappdata); wsl = malloc(sl + 1 + strlen(appname) + 2); if (wsl == NULL) return -1; sprintf(wsl, "%s\\%s\\", *xappdata, appname); free(*xappdata); *xappdata = wsl; /* * Create the AppData directory, in case the program * was installed by a different user. */ _mkdir(*xappdata); } } #if defined(DEBUG) /*[*/ printf("get_dirs: instdir '%s', desktop '%s', appdata '%s'\n", instdir? *instdir: "(none)", desktop? *desktop: "(none)", appdata? *appdata: "(none)"); printf("Enter..."); fflush(stdout); (void) getchar(); #endif /*]*/ return 0; } ibm-3270-3.3.10ga4/wc3270/unicodec.h0000644000175000017500000000640511254565704016063 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* EBCDIC-to-Unicode options */ #define EUO_NONE 0x00000000 /* no options */ #define EUO_BLANK_UNDEF 0x00000001 /* if undefined, return U+0020 */ #define EUO_UPRIV 0x00000002 /* translate FM/DUP/SUB/EO to UPRIV */ #define EUO_ASCII_BOX 0x00000004 /* use ASCII for box drawing */ extern ucs4_t ebcdic_to_unicode(ebc_t e, unsigned char cs, unsigned flags); extern ucs4_t ebcdic_base_to_unicode(ebc_t e, unsigned flags); extern ebc_t unicode_to_ebcdic(ucs4_t u); extern ebc_t unicode_to_ebcdic_ge(ucs4_t u, Boolean *ge); extern int set_uni(const char *csname, const char **host_codepage, const char **cgcsgid, const char **display_charsets); extern int linedraw_to_unicode(ebc_t e); extern int apl_to_unicode(ebc_t e, unsigned flags); #if !defined(_WIN32) && !defined(UNICODE_WCHAR) /*[*/ extern iconv_t i_u2mb; extern iconv_t i_mb2u; #endif /*]*/ extern int ebcdic_to_multibyte_x(ebc_t ebc, unsigned char cs, char mb[], int mb_len, unsigned flags, ucs4_t *uc); extern int ebcdic_to_multibyte(ebc_t ebc, char mb[], int mb_len); extern int ebcdic_to_multibyte_string(unsigned char *ebc, size_t ebc_len, char mb[], size_t mb_len); extern int mb_max_len(int len); enum me_fail { ME_NONE, /* no error */ ME_INVALID, /* invalid sequence */ ME_SHORT /* incomplete sequence */ }; extern ucs4_t multibyte_to_unicode(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp); extern int multibyte_to_unicode_string(char *mb, size_t mb_len, ucs4_t *ucs4, size_t u_len); extern ebc_t multibyte_to_ebcdic(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp); extern int multibyte_to_ebcdic_string(char *mb, size_t mb_len, unsigned char *ebc, size_t ebc_len, enum me_fail *errorp); extern int unicode_to_multibyte(ucs4_t ucs4, char *mb, size_t mb_len); ibm-3270-3.3.10ga4/wc3270/README.txt0000644000175000017500000000236511254565671015623 0ustar bastianbastianwc3270 3.3 Release wc3270 is a Windows console-based IBM 3278/3279 terminal emulator. Documentation is in the html directory. The files are: Intro What wc3270 is Lineage Where wc3270 came from (copyright stuff) Build How to build wc3270 from source FAQ Frequently Asked Questions (what to do when something goes wrong) New What's new in this release Bugs What's broken in this release Wishlist What isn't in this release There is also a hypertext version of the wc3270 man page. Please read Build before trying to build the program. Also, if you have a problem, scan through FAQ; there are lots of interesting answers there. Updates to wc3270, as well as the current status of development and bugs, are available from the x3270 Web Page, http://x3270.sourceforge.net/. Feel free to send comments, criticism, suggestions, complaints, etc., to Paul Mattes, Paul.Mattes@usa.net. Requests will be addressed as time and resources permit. There is also an x3270 mailing list, which also includes information about wc3270, and which receives news about new releases. Send a message to Paul.Mattes@usa.net (a real person, with an automatic responses for certain subject lines) to get on the list. ibm-3270-3.3.10ga4/wc3270/relinkc.h0000644000175000017500000000625611254565671015730 0ustar bastianbastian/* * Copyright (c) 2006-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * relinkc.h * A Windows console-based 3270 Terminal Emulator * Utility functions to read a session file and create a * compatible shortcut. */ #define STR_SIZE 256 #define WIZARD_VER 2 typedef struct { /* Fields for wc3270 3.3.9 (Wizard version 1) */ char session[STR_SIZE]; /* session name */ char host[STR_SIZE]; /* host name */ DWORD port; /* TCP port */ char luname[STR_SIZE]; /* LU name */ DWORD ssl; /* SSL tunnel flag */ char proxy_type[STR_SIZE]; /* proxy type */ char proxy_host[STR_SIZE]; /* proxy host */ char proxy_port[STR_SIZE]; /* proxy port */ DWORD model; /* model number */ char charset[STR_SIZE]; /* character set name */ DWORD is_dbcs; DWORD wpr3287; /* wpr3287 flag */ char printerlu[STR_SIZE]; /* printer LU */ char printer[STR_SIZE]; /* Windows printer name */ char printercp[STR_SIZE]; /* wpr3287 code page */ char keymaps[STR_SIZE]; /* keymap names */ /* Field added for wc3270 3.3.10 (Wizard version 2) */ unsigned char flags; /* miscellaneous flags */ unsigned char ov_rows; /* oversize rows */ unsigned char ov_cols; /* oversize columns */ unsigned char point_size; /* font point size */ } session_t; #define WF_EMBED_KEYMAPS 0x01 /* embed keymaps in session */ #define WF_AUTO_SHORTCUT 0x02 /* 'auto-shortcut' mode */ #define WF_WHITE_BG 0x04 /* white background */ typedef struct { char *name; char *hostcp; int is_dbcs; wchar_t *codepage; } charsets_t; extern charsets_t charsets[]; extern size_t num_charsets; extern char *user_settings; extern int read_session(FILE *f, session_t *s); extern HRESULT create_shortcut(session_t *session, char *exepath, char *linkpath, char *args, char *workingdir); ibm-3270-3.3.10ga4/wc3270/x3270if.c0000644000175000017500000003133311254565704015365 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * Script interface utility for x3270, c3270 and s3270. * * Accesses an x3270 command stream on the file descriptors defined by the * environment variables X3270OUTPUT (output from x3270, input to script) and * X3270INPUT (input to x3270, output from script). * * Can also access a command stream via a socket, whose TCP port is defined by * the environment variable X3270PORT. */ #include "conf.h" #if defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #if !defined(_WIN32) /*[*/ #include #include #include #include #include #include #include #include #include #if defined(HAVE_SYS_SELECT_H) /*[*/ #include #endif /*]*/ #if defined(HAVE_GETOPT_H) /*[*/ #include #endif /*]*/ #endif /*]*/ #if defined(_WIN32) /*[*/ #include "w3miscc.h" #endif /*]*/ #define IBS 4096 #define NO_STATUS (-1) #define ALL_FIELDS (-2) extern int optind; extern char *optarg; static char *me; static int verbose = 0; static char buf[IBS]; #if !defined(_WIN32) /*[*/ static void iterative_io(int pid); #endif /*]*/ static void single_io(int pid, unsigned short port, int fn, char *cmd); static void usage(void) { (void) fprintf(stderr, "\ usage: %s [-v] [-S] [-s field] [-p pid] [-t port] [action[(param[,...])]]\n\ %s -i\n", me, me); exit(2); } /* Get a file descriptor from the environment. */ static int fd_env(const char *name) { char *fdname; int fd; fdname = getenv(name); if (fdname == (char *)NULL) { (void) fprintf(stderr, "%s: %s not set in the environment\n", me, name); exit(2); } fd = atoi(fdname); if (fd <= 0) { (void) fprintf(stderr, "%s: invalid value '%s' for %s\n", me, fdname, name); exit(2); } return fd; } int main(int argc, char *argv[]) { int c; int fn = NO_STATUS; char *ptr; int iterative = 0; int pid = 0; unsigned short port = 0; #if defined(_WIN32) /*[*/ if (sockstart() < 0) exit(1); #endif /*]*/ /* Identify yourself. */ if ((me = strrchr(argv[0], '/')) != (char *)NULL) me++; else me = argv[0]; /* Parse options. */ while ((c = getopt(argc, argv, "ip:s:St:v")) != -1) { switch (c) { #if !defined(_WIN32) /*[*/ case 'i': if (fn >= 0) usage(); iterative++; break; case 'p': pid = (int)strtoul(optarg, &ptr, 0); if (ptr == optarg || *ptr != '\0' || pid <= 0) { (void) fprintf(stderr, "%s: Invalid process ID: '%s'\n", me, optarg); usage(); } break; #endif /*]*/ case 's': if (fn >= 0 || iterative) usage(); fn = (int)strtol(optarg, &ptr, 0); if (ptr == optarg || *ptr != '\0' || fn < 0) { (void) fprintf(stderr, "%s: Invalid field number: '%s'\n", me, optarg); usage(); } break; case 'S': if (fn >= 0 || iterative) usage(); fn = ALL_FIELDS; break; case 't': port = (unsigned short)strtoul(optarg, &ptr, 0); if (ptr == optarg || *ptr != '\0' || port <= 0) { (void) fprintf(stderr, "%s: Invalid port: '%s'\n", me, optarg); usage(); } break; case 'v': verbose++; break; default: usage(); break; } } /* Validate positional arguments. */ if (optind == argc) { /* No positional arguments. */ if (fn == NO_STATUS && !iterative) usage(); } else { /* Got positional arguments. */ if (iterative) usage(); } if (pid && port) usage(); #if !defined(_WIN32) /*[*/ /* Ignore broken pipes. */ (void) signal(SIGPIPE, SIG_IGN); #endif /*]*/ /* Do the I/O. */ #if !defined(_WIN32) /*[*/ if (iterative) iterative_io(pid); else #endif /*]*/ single_io(pid, port, fn, argv[optind]); return 0; } #if !defined(_WIN32) /*[*/ /* Connect to a Unix-domain socket. */ static int usock(int pid) { struct sockaddr_un ssun; int fd; fd = socket(AF_UNIX, SOCK_STREAM, 0); if (fd < 0) { perror("socket"); exit(2); } (void) memset(&ssun, '\0', sizeof(struct sockaddr_un)); ssun.sun_family = AF_UNIX; (void) sprintf(ssun.sun_path, "/tmp/x3sck.%d", pid); if (connect(fd, (struct sockaddr *)&ssun, sizeof(ssun)) < 0) { perror("connect"); exit(2); } return fd; } #endif /*]*/ /* Connect to a TCP socket. */ static int tsock(unsigned short port) { struct sockaddr_in sin; int fd; fd = socket(AF_INET, SOCK_STREAM, 0); if (fd < 0) { #if defined(_WIN32) /*[*/ fprintf(stderr, "socket: %s\n", win32_strerror(GetLastError())); #else /*][*/ perror("socket"); #endif /*]*/ exit(2); } (void) memset(&sin, '\0', sizeof(struct sockaddr_in)); sin.sin_family = AF_INET; sin.sin_port = htons(port); sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); if (connect(fd, (struct sockaddr *)&sin, sizeof(sin)) < 0) { #if defined(_WIN32) /*[*/ fprintf(stderr, "connect(%u): %s\n", port, win32_strerror(GetLastError())); #else /*][*/ perror("connect"); #endif /*]*/ exit(2); } return fd; } /* Do a single command, and interpret the results. */ static void single_io(int pid, unsigned short port, int fn, char *cmd) { char *port_env; int infd; int outfd; char status[IBS] = ""; int nr; int xs = -1; int nw = 0; char rbuf[IBS]; int sl = 0; int done = 0; int is_socket = 0; char *cmd_nl; char *wstr; /* Verify the environment and open files. */ #if !defined(_WIN32) /*[*/ if (pid) { infd = outfd = usock(pid); } else #endif /*]*/ if (port) { infd = outfd = tsock(port); is_socket = 1; } else if ((port_env = getenv("X3270PORT")) != NULL) { infd = outfd = tsock(atoi(port_env)); is_socket = 1; } else { infd = fd_env("X3270OUTPUT"); outfd = fd_env("X3270INPUT"); } if (infd < 0) { perror("x3270if: input: fdopen"); exit(2); } if (outfd < 0) { perror("x3270if: output: fdopen"); exit(2); } /* Speak to x3270. */ if (verbose) (void) fprintf(stderr, "i+ out %s\n", (cmd != NULL) ? cmd : ""); if (cmd != NULL) { cmd_nl = malloc(strlen(cmd) + 2); if (cmd_nl == NULL) { fprintf(stderr, "Out of memory\n"); exit(2); } sprintf(cmd_nl, "%s\n", cmd); wstr = cmd_nl; } else { cmd_nl = NULL; wstr = "\n"; } if (is_socket) { nw = send(outfd, wstr, strlen(wstr), 0); } else { nw = write(outfd, wstr, strlen(wstr)); } if (nw < 0) { if (is_socket) #if defined(_WIN32) /*[*/ fprintf(stderr, "x3270if: send: %s\n", win32_strerror(GetLastError())); #else /*][*/ perror("x3270if: send"); #endif /*]*/ else perror("x3270if: write"); exit(2); } if (cmd_nl != NULL) free(cmd_nl); /* Get the answer. */ while (!done && (nr = (is_socket? recv(infd, rbuf, IBS, 0): read(infd, rbuf, IBS))) > 0) { int i; int get_more = 0; i = 0; do { /* Copy from rbuf into buf until '\n'. */ while (i < nr && rbuf[i] != '\n') { if (sl < IBS - 1) buf[sl++] = rbuf[i++]; } if (rbuf[i] == '\n') i++; else { /* Go get more input. */ get_more = 1; break; } /* Process one line of output. */ buf[sl] = '\0'; if (verbose) (void) fprintf(stderr, "i+ in %s\n", buf); if (!strcmp(buf, "ok")) { (void) fflush(stdout); xs = 0; done = 1; break; } else if (!strcmp(buf, "error")) { (void) fflush(stdout); xs = 1; done = 1; break; } else if (!strncmp(buf, "data: ", 6)) { if (printf("%s\n", buf + 6) < 0) { perror("x3270if: printf"); exit(2); } } else (void) strcpy(status, buf); /* Get ready for the next. */ sl = 0; } while (i < nr); if (get_more) { get_more = 0; continue; } } if (nr < 0) { if (is_socket) #if defined(_WIN32) /*[*/ fprintf(stderr, "x3270if: recv: %s\n", win32_strerror(GetLastError())); #else /*][*/ perror("recv"); #endif /*]*/ else perror("read"); exit(2); } else if (nr == 0) { fprintf(stderr, "x3270if: unexpected EOF\n"); exit(2); } if (fflush(stdout) < 0) { perror("x3270if: fflush"); exit(2); } /* Print status, if that's what they want. */ if (fn != NO_STATUS) { char *sf = (char *)NULL; char *sb = status; int rc; if (fn == ALL_FIELDS) { rc = printf("%s\n", status); } else { do { if (!fn--) break; sf = strtok(sb, " \t"); sb = (char *)NULL; } while (sf != (char *)NULL); rc = printf("%s\n", (sf != (char *)NULL) ? sf : ""); } if (rc < 0) { perror("x3270if: printf"); exit(2); } } if (fflush(stdout) < 0) { perror("x3270if: fflush"); exit(2); } if (is_socket) { shutdown(infd, 2); #if defined(_WIN32) /*[*/ closesocket(infd); #else /*][*/ close(infd); #endif /*]*/ } exit(xs); } #if !defined(_WIN32) /*[*/ /* Act as a passive pipe between 'expect' and x3270. */ static void iterative_io(int pid) { # define N_IO 2 struct { const char *name; int rfd, wfd; char buf[IBS]; int offset, count; } io[N_IO]; /* [0] is program->x3270, [1] is x3270->program */ fd_set rfds, wfds; int fd_max = 0; int i; #ifdef DEBUG if (verbose) { freopen("/tmp/x3270if.dbg", "w", stderr); setlinebuf(stderr); } #endif /* Get the x3270 file descriptors. */ io[0].name = "program->x3270"; io[0].rfd = fileno(stdin); if (pid) io[0].wfd = usock(pid); else io[0].wfd = fd_env("X3270INPUT"); io[1].name = "x3270->program"; if (pid) io[1].rfd = dup(io[0].wfd); else io[1].rfd = fd_env("X3270OUTPUT"); io[1].wfd = fileno(stdout); for (i = 0; i < N_IO; i++) { if (io[i].rfd > fd_max) fd_max = io[i].rfd; if (io[i].wfd > fd_max) fd_max = io[i].wfd; (void) fcntl(io[i].rfd, F_SETFL, fcntl(io[i].rfd, F_GETFL, 0) | O_NDELAY); (void) fcntl(io[i].wfd, F_SETFL, fcntl(io[i].wfd, F_GETFL, 0) | O_NDELAY); io[i].offset = 0; io[i].count = 0; } fd_max++; for (;;) { int rv; FD_ZERO(&rfds); FD_ZERO(&wfds); for (i = 0; i < N_IO; i++) { if (io[i].count) { FD_SET(io[i].wfd, &wfds); #ifdef DEBUG if (verbose) (void) fprintf(stderr, "enabling output %s %d\n", io[i].name, io[i].wfd); #endif } else { FD_SET(io[i].rfd, &rfds); #ifdef DEBUG if (verbose) (void) fprintf(stderr, "enabling input %s %d\n", io[i].name, io[i].rfd); #endif } } if ((rv = select(fd_max, &rfds, &wfds, (fd_set *)NULL, (struct timeval *)NULL)) < 0) { perror("x3270if: select"); exit(2); } if (verbose) (void) fprintf(stderr, "select->%d\n", rv); for (i = 0; i < N_IO; i++) { if (io[i].count) { if (FD_ISSET(io[i].wfd, &wfds)) { rv = write(io[i].wfd, io[i].buf + io[i].offset, io[i].count); if (rv < 0) { (void) fprintf(stderr, "x3270if: write(%s): %s", io[i].name, strerror(errno)); exit(2); } io[i].offset += rv; io[i].count -= rv; #ifdef DEBUG if (verbose) (void) fprintf(stderr, "write(%s)->%d\n", io[i].name, rv); #endif } } else if (FD_ISSET(io[i].rfd, &rfds)) { rv = read(io[i].rfd, io[i].buf, IBS); if (rv < 0) { (void) fprintf(stderr, "x3270if: read(%s): %s", io[i].name, strerror(errno)); exit(2); } if (rv == 0) exit(0); io[i].offset = 0; io[i].count = rv; #ifdef DEBUG if (verbose) (void) fprintf(stderr, "read(%s)->%d\n", io[i].name, rv); #endif } } } } #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/rpq.c0000644000175000017500000005044111254565704015066 0ustar bastianbastian/* * Copyright (c) 2005-2009, Paul Mattes. * Copyright (c) 2004-2005, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * rpq.c * RPQNAMES structured field support. * */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #include #include "3270ds.h" #include "appres.h" #include "popupsc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" /* Statics */ static Boolean select_rpq_terms(void); static int get_rpq_timezone(void); static int get_rpq_user(unsigned char buf[], const int buflen); #if !defined(_WIN32) /*[*/ static int get_rpq_address(unsigned char buf[], const int buflen); #endif /*]*/ static void rpq_warning(const char *fmt, ...); static void rpq_dump_warnings(void); static Boolean rpq_complained = False; #if !defined(_WIN32) /*[*/ static Boolean omit_due_space_limit = False; #endif /*]*/ /* * Define symbolic names for RPQ self-defining terms. * (Numbering is arbitrary, but must be 0-255 inclusive. * Do not renumber existing items because these identify the * self-defining term to the mainframe software. Changing pre-existing * values will possibly impact host based software. */ #define RPQ_ADDRESS 0 #define RPQ_TIMESTAMP 1 #define RPQ_TIMEZONE 2 #define RPQ_USER 3 #define RPQ_VERSION 4 /* * Define a table of RPQ self-defing terms. * NOTE: Synonyms could be specified by coding different text items but using * the same "id" value. * Items should be listed in alphabetical order by "text" name so if the user * specifies abbreviations, they work in a predictable manner. E.g., "TIME" * should match TIMESTAMP instead of TIMEZONE. */ static struct rpq_keyword { Boolean omit; /* set from X3270RPQ="kw1:kw2..." environment var */ int oride; /* displacement */ const Boolean allow_oride; const unsigned char id; const char *text; } rpq_keywords[] = { {True, 0, True, RPQ_ADDRESS, "ADDRESS"}, {True, 0, False, RPQ_TIMESTAMP, "TIMESTAMP"}, {True, 0, True, RPQ_TIMEZONE, "TIMEZONE"}, {True, 0, True, RPQ_USER, "USER"}, {True, 0, False, RPQ_VERSION, "VERSION"}, }; #define NS_RPQ (sizeof(rpq_keywords)/sizeof(rpq_keywords[0])) static char *x3270rpq; /* * RPQNAMES query reply. */ void do_qr_rpqnames(void) { #define TERM_PREFIX_SIZE 2 /* Each term has 1 byte length and 1 byte id */ unsigned char *rpql, *p_term; unsigned j; int term_id,i,x; int remaining = 254; /* maximum data area for rpqname reply */ Boolean omit_due_space_limit; trace_ds("> QueryReply(RPQNames)\n"); /* * Allocate enough space for the maximum allowed item. * By pre-allocating the space I don't have to worry about the * possibility of addresses changing. */ space3270out(4+4+1+remaining); /* Maximum space for an RPQNAME item */ SET32(obptr, 0); /* Device number, 0 = All */ SET32(obptr, 0); /* Model number, 0 = All */ rpql = obptr++; /* Save address to place data length. */ /* * Create fixed length portion - program id: x3270 * This is known 8-bit text so we can use asc2ebc0 to translate it. */ for (j = 0; j < 5; j++) { *obptr++ = asc2ebc0[(int)"x3270"[j]]; remaining--; } /* Create user selected variable-length self-defining terms. */ select_rpq_terms(); for (j=0; j remaining); if (!omit_due_space_limit) { for (i = 0; i < x; i++) { *obptr++ = asc2ebc0[(int)(*(build_rpq_version+i) & 0xff)]; } } break; case RPQ_TIMESTAMP: /* program build time (yyyymmddhhmmss bcd) */ x = strlen(build_rpq_timestamp); omit_due_space_limit = ((x+1)/2 > remaining); if (!omit_due_space_limit) { for (i=0; i < x; i+=2) { *obptr++ = ((*(build_rpq_timestamp+i) - '0') << 4) + (*(build_rpq_timestamp+i+1) - '0'); } } break; default: /* unsupported ID, (can't happen) */ Error("Unsupported RPQ term"); break; } if (omit_due_space_limit) rpq_warning("RPQ %s term omitted due to insufficient " "space", rpq_keywords[j].text); /* * The item is built, insert item length as needed and * adjust space remaining. * obptr now points at "next available byte". */ x = obptr-p_term; if (x > TERM_PREFIX_SIZE) { *p_term = x; remaining -= x; /* This includes length and id fields, correction below */ } else { /* We didn't add an item after all, reset pointer. */ obptr = p_term; } /* * When we calculated the length of the term, a few lines * above, that length included the term length and term id * prefix too. (TERM_PREFIX_SIZE) * But just prior to the switch statement, we decremented the * remaining space by that amount so subsequent routines would * be told how much space they have for their data, without * each routine having to account for that prefix. * That means the remaining space is actually more than we * think right now, by the length of the prefix.... add that * back so the remaining space is accurate. * * And... if there was no item added, we still have to make the * same correction to "claim back" the term prefix area so it * may be used by the next possible term. */ remaining += TERM_PREFIX_SIZE; } /* Fill in overall length of RPQNAME info */ *rpql = (obptr - rpql); rpq_dump_warnings(); } /* Utility function used by the RPQNAMES query reply. */ static Boolean select_rpq_terms(void) { size_t i; unsigned j,k; int len; char *uplist; char *p1, *p2; char *kw; Boolean is_no_form; /* See if the user wants any rpqname self-defining terms returned */ if ((x3270rpq = getenv("X3270RPQ")) == NULL) return False; /* * Make an uppercase copy of the user selections so I can match * keywords more easily. * If there are override values, I'll get those from the ORIGINAL * string so upper/lower case is preserved as necessary. */ uplist = (char *) malloc(strlen(x3270rpq)+1); assert(uplist != NULL); p1 = uplist; p2 = x3270rpq; do { *p1++ = toupper(*p2++); } while (*p2); *p1 = '\0'; for (i=0; i 2) && (strncmp("NO", kw, 2) == 0)); if (is_no_form) { kw+=2; /* skip "NO" prefix for matching keyword */ len-=2; /* adjust keyword length */ } for (j=0; j < NS_RPQ; j++) { if (strncmp(kw, rpq_keywords[j].text, len) == 0) { rpq_keywords[j].omit = is_no_form; if (*p1 == '=') { if (rpq_keywords[j].allow_oride) { rpq_keywords[j].oride = p1-uplist+1; } else { rpq_warning("RPQ %s term " "override " "ignored", p1); } } break; } } if (j >= NS_RPQ) { /* unrecognized keyword... */ if (strcmp(kw,"ALL") == 0) { for (k=0; k < NS_RPQ; k++) rpq_keywords[k].omit = is_no_form; } else { rpq_warning("RPQ term \"%s\" is unrecognized", kw); } } } free(uplist); /* * Return to caller with indication (T/F) of any items * to be selected (T) or are all terms suppressed? (F) */ for (i=0; i id != RPQ_TIMEZONE; kw++) { } /* Is there a user override? */ if ((kw->allow_oride) && (kw->oride > 0)) { ldiv_t hhmm; long x; p1 = x3270rpq+kw->oride; x = strtol(p1, &p2, 10); if (errno != 0) { rpq_warning("RPQ TIMEZONE term is invalid - " "use +/-hhmm"); return 4; } if ((*p2 != '\0') && (*p2 != ':') && (!isspace(*p2))) return 4; hhmm = ldiv(x, 100L); if (hhmm.rem > 59L) { rpq_warning("RPQ TIMEZONE term is invalid - " "use +/-hhmm"); return 4; } delta = (labs(hhmm.quot) * 60L) + hhmm.rem; if (hhmm.quot < 0L) delta = -delta; } else { /* * No override specified, try to get information from the * system. */ if ((here = time(NULL)) == (time_t)(-1)) { rpq_warning("RPQ: Unable to determine workstation " "local time"); return 1; } memcpy(&here_tm, localtime(&here), sizeof(struct tm)); if ((utc_tm = gmtime(&here)) == NULL) { rpq_warning("RPQ: Unable to determine workstation UTC " "time"); return 2; } /* * Do not take Daylight Saving Time into account. * We just want the "raw" time difference. */ here_tm.tm_isdst = 0; utc_tm->tm_isdst = 0; delta = difftime(mktime(&here_tm), mktime(utc_tm)) / 60L; } /* sanity check: difference cannot exceed +/- 12 hours */ if (labs(delta) > 720L) rpq_warning("RPQ timezone exceeds 12 hour UTC offset"); return (labs(delta) > 720L)? 3 : (int) delta; } /* Utility function used by the RPQNAMES query reply. */ static int get_rpq_user(unsigned char buf[], const int buflen) { /* * Text may be specified in one of two ways, but not both. * An environment variable provides the user interface: * - X3270RPQ: Keyword USER= * * NOTE: If the string begins with 0x then no ASCII/EBCDIC * translation is done. The hex characters will be sent as true hex * data. E.g., X3270RPQ="user=0x ab 12 EF" will result in 3 bytes * sent as 0xAB12EF. White space is optional in hex data format. * When hex format is required, the 0x prefix must be the first two * characters of the string. E.g., X3270RPQ="user= 0X AB" will * result in 6 bytes sent as 0x40F0E740C1C2 because the text is * accepted "as is" then translated from ASCII to EBCDIC. */ const char *rpqtext = CN; int x = 0; struct rpq_keyword *kw; char *sbuf, *sbuf0; const char *s; enum me_fail error; int xlen; /* id isn't necessarily the table index... locate item */ for (kw = &rpq_keywords[0]; kw -> id != RPQ_USER; kw++) { } if ((!kw->allow_oride) || (kw->oride <= 0)) return 0; rpqtext = x3270rpq + kw->oride; if ((*rpqtext == '0') && (toupper(*(rpqtext+1)) == 'X')) { /* text has 0x prefix... interpret as hex, no translation */ char hexstr[512]; /* more than enough room to copy */ char * p_h; char c; int x; Boolean is_first_hex_digit; p_h = &hexstr[0]; /* copy the hex digits from X3270RPQ, removing white * space, and using all upper case for the hex digits a-f. */ rpqtext += 2; /* skip 0x prefix */ for (*p_h = '\0'; *rpqtext; rpqtext++) { c = toupper(*rpqtext); if ((c==':') || (c=='\0')) break; if (isspace(c)) continue; /* skip white space */ if (!isxdigit(c)) { rpq_warning("RPQ USER term has non-hex " "character"); break; } x = (p_h - hexstr)/2; if (x >= buflen) { x = buflen; rpq_warning("RPQ USER term truncated after %d " "bytes", x); break; /* too long, truncate */ } *p_h++ = c; /* copy (upper case) character */ *p_h = '\0'; /* keep string properly terminated */ } /* * 'hexstr' is now a character string of 0-9, A-F only, * (a-f were converted to upper case). * There may be an odd number of characters, implying a leading * 0. The string is also known to fit in the area specified. */ /* hex digits are handled in pairs, set a flag so we keep track * of which hex digit we're currently working with. */ is_first_hex_digit = ((strlen(hexstr) % 2) == 0); if (!is_first_hex_digit) rpq_warning("RPQ USER term has odd number of hex " "digits"); *buf = 0; /* initialize first byte for possible implied leading zero */ for (p_h = &hexstr[0]; *p_h; p_h++) { int n; /* convert the hex character to a value 0-15 */ n = isdigit(*p_h) ? *p_h - '0' : *p_h - 'A' + 10; if (is_first_hex_digit) { *buf = n << 4; } else { *buf++ |= n; } is_first_hex_digit = !is_first_hex_digit; } return (strlen(hexstr)+1)/2; } /* plain text - subject to ascii/ebcdic translation */ /* * Copy the source string to a temporary buffer, terminating on * ':', unless preceded by '\'. */ sbuf = sbuf0 = Malloc(strlen(rpqtext) + 1); for (s = rpqtext; *s && (*s != ':'); s++) { if (*s == '\\' && *(s + 1)) { *sbuf++ = *++s; } else *sbuf++ = *s; } *sbuf = '\0'; /* Translate multibyte to EBCDIC in the target buffer. */ xlen = multibyte_to_ebcdic_string(sbuf0, strlen(sbuf0), buf, buflen, &error); if (xlen < 0) { rpq_warning("RPQ USER term translation error"); if (buflen) { *buf = asc2ebc0['?']; x = 1; } } else { x = xlen; } Free(sbuf0); return x; } #if !defined(_WIN32) /*[*/ static int get_rpq_address(unsigned char *buf, const int maxlen) { struct rpq_keyword *kw; int x = 0; if (maxlen < 2) { omit_due_space_limit = True; return 0; } /* id isn't necessarily the table index... locate item */ for (kw = &rpq_keywords[0]; kw->id != RPQ_ADDRESS; kw++) { } /* Is there a user override? */ if ((kw->allow_oride) && (kw->oride > 0)) { char *p1, *p2, *rpqtext; #if defined(AF_INET6) /*[*/ struct addrinfo *res; int ga_err; #else /*][*/ in_addr_t ia; #endif /*]*/ p1 = x3270rpq + kw->oride; rpqtext = (char *) malloc(strlen(p1) + 1); for (p2=rpqtext;*p1; p2++) { if (*p1 == ':') break; if ((*p1 == '\\') && (*(p1+1) == ':')) p1++; *p2 = *p1; p1++; } *p2 = '\0'; #if defined(AF_INET6) /*[*/ ga_err = getaddrinfo(rpqtext, NULL, NULL, &res); if (ga_err == 0) { void *src = NULL; int len = 0; SET16(buf, res->ai_family); x += 2; switch (res->ai_family) { case AF_INET: src = &((struct sockaddr_in *)res->ai_addr)->sin_addr; len = sizeof(struct in_addr); break; case AF_INET6: src = &((struct sockaddr_in6 *)res->ai_addr)->sin6_addr; len = sizeof(struct in6_addr); break; default: rpq_warning("RPQ ADDRESS term has " "unrecognized family %u", res->ai_family); break; } if (x + len <= maxlen) { x += len; (void) memcpy(buf, src, len); } else { rpq_warning("RPQ ADDRESS term incomplete due " "to space limit"); } /* Give back storage obtained by getaddrinfo */ freeaddrinfo(res); } else { rpq_warning("RPQ: can't resolve '%s': %s", rpqtext, gai_strerror(ga_err)); } #else /*][*/ /* * No IPv6 support. * Use plain old inet_addr() and gethostbyname(). */ ia = inet_addr(rpqtext); if (ia == htonl(INADDR_NONE)) { struct hostent *h; h = gethostbyname(rpqtext); if (h == NULL || h->h_addrtype != AF_INET) { rpq_warning("RPQ: gethostbyname error"); return 0; } (void) memcpy(&ia, h->h_addr_list[0], h->h_length); } SET16(buf, AF_INET); x += 2; if (x + sizeof(in_addr_t) <= maxlen) { (void) memcpy(buf, &ia, sizeof(in_addr_t)); x += sizeof(in_addr_t); } else { rpq_warning("RPQ ADDRESS term incomplete due to " "space limit"); } #endif /*]*/ free(rpqtext); } else { /* No override... get our address from the actual socket */ union { struct sockaddr sa; struct sockaddr_in sa4; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sa6; #endif /*]*/ } u; int addrlen = sizeof(u); void *src = NULL; int len = 0; if (net_getsockname(&u, &addrlen) < 0) return 0; SET16(buf, u.sa.sa_family); x += 2; switch (u.sa.sa_family) { case AF_INET: src = &u.sa4.sin_addr; len = sizeof(struct in_addr); break; #if defined(AF_INET6) /*[*/ case AF_INET6: src = &u.sa6.sin6_addr; len = sizeof(struct in6_addr); break; #endif /*]*/ default: rpq_warning("RPQ ADDRESS term has unrecognized " "family %u", u.sa.sa_family); break; } if (x + len <= maxlen) { (void) memcpy(buf, src, len); x += len; } else { rpq_warning("RPQ ADDRESS term incomplete due to space " "limit"); } } return x; } #endif /*]*/ #define RPQ_WARNBUF_SIZE 1024 static char *rpq_warnbuf = CN; static int rpq_wbcnt = 0; static void rpq_warning(const char *fmt, ...) { va_list a; /* Only accumulate RPQ warnings if they * have not been displayed already. */ if (!rpq_complained) { va_start(a, fmt); if (rpq_warnbuf == CN) rpq_warnbuf = Malloc(RPQ_WARNBUF_SIZE); if (rpq_wbcnt < RPQ_WARNBUF_SIZE) { *(rpq_warnbuf + rpq_wbcnt++) = '\n'; *(rpq_warnbuf + rpq_wbcnt) = '\0'; } if (rpq_wbcnt < RPQ_WARNBUF_SIZE) { rpq_wbcnt += vsnprintf(rpq_warnbuf + rpq_wbcnt, RPQ_WARNBUF_SIZE - rpq_wbcnt, fmt, a); } va_end(a); } } static void rpq_dump_warnings(void) { /* If there's something to complain about, only complain once. */ if (!rpq_complained && rpq_wbcnt) { popup_an_error("%s", rpq_warnbuf); rpq_wbcnt = 0; rpq_complained = True; free(rpq_warnbuf); rpq_warnbuf = CN; } } ibm-3270-3.3.10ga4/wc3270/charsetc.h0000644000175000017500000000406211254565704016063 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * charsetc.h * Global declarations for charset.c */ extern Boolean charset_changed; extern unsigned long cgcsgid; #if defined(X3270_DBCS) /*[*/ extern unsigned long cgcsgid_dbcs; #endif /*]*/ extern char *default_display_charset; enum cs_result { CS_OKAY, CS_NOTFOUND, CS_BAD, CS_PREREQ, CS_ILLEGAL }; extern enum cs_result charset_init(char *csname); extern char *get_charset_name(void); extern char *get_host_codepage(void); extern void charset_list(void); ibm-3270-3.3.10ga4/wc3270/ft_dft_ds.h0000644000175000017500000000506011254565704016222 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* DFT-style file transfer codes. */ /* Host requests. */ #define TR_OPEN_REQ 0x0012 /* open request */ #define TR_CLOSE_REQ 0x4112 /* close request */ #define TR_SET_CUR_REQ 0x4511 /* set cursor request */ #define TR_GET_REQ 0x4611 /* get request */ #define TR_INSERT_REQ 0x4711 /* insert request */ #define TR_DATA_INSERT 0x4704 /* data to insert */ /* PC replies. */ #define TR_GET_REPLY 0x4605 /* data for get */ #define TR_NORMAL_REPLY 0x4705 /* insert normal reply */ #define TR_ERROR_REPLY 0x08 /* error reply (low 8 bits) */ #define TR_CLOSE_REPLY 0x4109 /* close acknowledgement */ /* Other headers. */ #define TR_RECNUM_HDR 0x6306 /* record number header */ #define TR_ERROR_HDR 0x6904 /* error header */ #define TR_NOT_COMPRESSED 0xc080 /* data not compressed */ #define TR_BEGIN_DATA 0x61 /* beginning of data */ /* Error codes. */ #define TR_ERR_EOF 0x2200 /* get past end of file */ #define TR_ERR_CMDFAIL 0x0100 /* command failed */ ibm-3270-3.3.10ga4/wc3270/mkwversion.sh0000755000175000017500000000324111254565671016662 0ustar bastianbastian#! /bin/sh # Copyright (c) 1999-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Create wversion.o from version.txt #set -x set -e . ./version.txt trap 'rm -f wversion.c' 0 1 2 15 cat <wversion.c char *wversion = "v$version"; EOF ${1-cc} -c wversion.c ibm-3270-3.3.10ga4/wc3270/ft.c0000644000175000017500000015771211256026744014704 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * ft.c * This module handles the file transfer dialogs. */ #include "globals.h" #if defined(X3270_FT) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #include #include #include #include #include #include #include #include #endif /*]*/ #include #include "appres.h" #include "actionsc.h" #include "charsetc.h" #include "ft_cutc.h" #include "ft_dftc.h" #include "ftc.h" #include "dialogc.h" #include "hostc.h" #if defined(C3270) || defined(WC3270) /*[*/ #include "icmdc.h" #endif /*]*/ #include "kybdc.h" #include "macrosc.h" #include "objects.h" #include "popupsc.h" #include "screenc.h" #include "tablesc.h" #include "telnetc.h" #include "utilc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ /* Macros. */ #define eos(s) strchr((s), '\0') #if defined(X3270_DISPLAY) /*[*/ #define FILE_WIDTH 300 /* width of file name widgets */ #define MARGIN 3 /* distance from margins to widgets */ #define CLOSE_VGAP 0 /* distance between paired toggles */ #define FAR_VGAP 10 /* distance between single toggles and groups */ #define BUTTON_GAP 5 /* horizontal distance between buttons */ #define COLUMN_GAP 40 /* distance between columns */ #endif /*]*/ #define BN (Boolean *)NULL /* Externals. */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ extern Pixmap diamond; extern Pixmap no_diamond; extern Pixmap null; extern Pixmap dot; extern Pixmap no_dot; #endif /*]*/ /* Globals. */ enum ft_state ft_state = FT_NONE; /* File transfer state */ char *ft_local_filename; /* Local file to transfer to/from */ FILE *ft_local_file = (FILE *)NULL; /* File descriptor for local file */ Boolean ft_last_cr = False; /* CR was last char in local file */ Boolean ascii_flag = True; /* Convert to ascii */ Boolean cr_flag = True; /* Add crlf to each line */ Boolean remap_flag = True; /* Remap ASCII<->EBCDIC */ unsigned long ft_length = 0; /* Length of transfer */ /* Statics. */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Widget ft_dialog, ft_shell, local_file, host_file; static Widget lrecl_widget, blksize_widget; static Widget primspace_widget, secspace_widget; static Widget send_toggle, receive_toggle; static Widget vm_toggle, tso_toggle; static Widget ascii_toggle, binary_toggle; static Widget cr_widget; static Widget remap_widget; static Widget buffersize_widget; #endif /*]*/ static char *ft_host_filename; /* Host file to transfer to/from */ static Boolean receive_flag = True; /* Current transfer is receive */ static Boolean append_flag = False; /* Append transfer */ static Boolean vm_flag = False; /* VM Transfer flag */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Widget recfm_options[5]; static Widget units_options[5]; static struct toggle_list recfm_toggles = { recfm_options }; static struct toggle_list units_toggles = { units_options }; #endif /*]*/ static enum recfm { DEFAULT_RECFM, RECFM_FIXED, RECFM_VARIABLE, RECFM_UNDEFINED } recfm = DEFAULT_RECFM; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Boolean recfm_default = True; static enum recfm r_default_recfm = DEFAULT_RECFM; static enum recfm r_fixed = RECFM_FIXED; static enum recfm r_variable = RECFM_VARIABLE; static enum recfm r_undefined = RECFM_UNDEFINED; #endif /*]*/ static enum units { DEFAULT_UNITS, TRACKS, CYLINDERS, AVBLOCK } units = DEFAULT_UNITS; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Boolean units_default = True; static enum units u_default_units = DEFAULT_UNITS; static enum units u_tracks = TRACKS; static enum units u_cylinders = CYLINDERS; static enum units u_avblock = AVBLOCK; #endif /*]*/ static Boolean allow_overwrite = False; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static sr_t *ft_sr = (sr_t *)NULL; static Widget progress_shell, from_file, to_file; static Widget ft_status, waiting, aborting; static String status_string; #endif /*]*/ static struct timeval t0; /* Starting time */ static Boolean ft_is_cut; /* File transfer is CUT-style */ /* Translation table: "ASCII" to EBCDIC, as seen by IND$FILE. */ unsigned char i_asc2ft[256] = { 0x00,0x01,0x02,0x03,0x37,0x2d,0x2e,0x2f,0x16,0x05,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x3c,0x3d,0x32,0x26,0x18,0x19,0x3f,0x27,0x1c,0x1d,0x1e,0x1f, 0x40,0x5a,0x7f,0x7b,0x5b,0x6c,0x50,0x7d,0x4d,0x5d,0x5c,0x4e,0x6b,0x60,0x4b,0x61, 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0x7a,0x5e,0x4c,0x7e,0x6e,0x6f, 0x7c,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6, 0xd7,0xd8,0xd9,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0x4a,0xe0,0x4f,0x5f,0x6d, 0x79,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x91,0x92,0x93,0x94,0x95,0x96, 0x97,0x98,0x99,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xc0,0x6a,0xd0,0xa1,0x07, 0x20,0x21,0x22,0x23,0x24,0x15,0x06,0x17,0x28,0x29,0x2a,0x2b,0x2c,0x09,0x0a,0x1b, 0x30,0x31,0x1a,0x33,0x34,0x35,0x36,0x08,0x38,0x39,0x3a,0x3b,0x04,0x14,0x3e,0xe1, 0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x51,0x52,0x53,0x54,0x55,0x56,0x57, 0x58,0x59,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x70,0x71,0x72,0x73,0x74,0x75, 0x76,0x77,0x78,0x80,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x9a,0x9b,0x9c,0x9d,0x9e, 0x9f,0xa0,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7, 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xda,0xdb, 0xdc,0xdd,0xde,0xdf,0xea,0xeb,0xec,0xed,0xee,0xef,0xfa,0xfb,0xfc,0xfd,0xfe,0xff}; /* Translation table: EBCDIC to "ASCII", as seen by IND$FILE. */ unsigned char i_ft2asc[256] = { 0x00,0x01,0x02,0x03,0x9c,0x09,0x86,0x7f,0x97,0x8d,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x9d,0x85,0x08,0x87,0x18,0x19,0x92,0x8f,0x1c,0x1d,0x1e,0x1f, 0x80,0x81,0x82,0x83,0x84,0x00,0x17,0x1b,0x88,0x89,0x8a,0x8b,0x8c,0x05,0x06,0x07, 0x90,0x91,0x16,0x93,0x94,0x95,0x96,0x04,0x98,0x99,0x9a,0x9b,0x14,0x15,0x9e,0x1a, 0x20,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0x5b,0x2e,0x3c,0x28,0x2b,0x5d, 0x26,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0x21,0x24,0x2a,0x29,0x3b,0x5e, 0x2d,0x2f,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0x7c,0x2c,0x25,0x5f,0x3e,0x3f, 0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,0x60,0x3a,0x23,0x40,0x27,0x3d,0x22, 0xc3,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9, 0xca,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0xcb,0xcc,0xcd,0xce,0xcf,0xd0, 0xd1,0x7e,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7, 0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7, 0x7b,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0xe8,0xe9,0xea,0xeb,0xec,0xed, 0x7d,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0xee,0xef,0xf0,0xf1,0xf2,0xf3, 0x5c,0x9f,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9, 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xfa,0xfb,0xfc,0xfd,0xfe,0xff}; #if defined(X3270_DBCS) /*[*/ enum ftd ft_dbcs_state = FT_DBCS_NONE; unsigned char ft_dbcs_byte1; Boolean ft_last_dbcs = False; #endif /*]*/ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Widget overwrite_shell; #endif /*]*/ static Boolean ft_is_action; static unsigned long ft_start_id = 0; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static void ft_cancel(Widget w, XtPointer client_data, XtPointer call_data); static void ft_popup_callback(Widget w, XtPointer client_data, XtPointer call_data); static void ft_popup_init(void); static int ft_start(void); static void ft_start_callback(Widget w, XtPointer call_parms, XtPointer call_data); static void overwrite_cancel_callback(Widget w, XtPointer client_data, XtPointer call_data); static void overwrite_okay_callback(Widget w, XtPointer client_data, XtPointer call_data); static void overwrite_popdown(Widget w, XtPointer client_data, XtPointer call_data); static void overwrite_popup_init(void); static void popup_overwrite(void); static void popup_progress(void); static void progress_cancel_callback(Widget w, XtPointer client_data, XtPointer call_data); static void progress_popup_callback(Widget w, XtPointer client_data, XtPointer call_data); static void progress_popup_init(void); static void recfm_callback(Widget w, XtPointer user_data, XtPointer call_data); static void toggle_append(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_ascii(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_cr(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_remap(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_receive(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_vm(Widget w, XtPointer client_data, XtPointer call_data); static void units_callback(Widget w, XtPointer user_data, XtPointer call_data); #endif /*]*/ static void ft_connected(Boolean ignored); static void ft_in3270(Boolean ignored); /* Main external entry point. */ #if !defined(X3270_DISPLAY) || !defined(X3270_MENUS) /*[*/ void ft_init(void) { /* Register for state changes. */ register_schange(ST_CONNECT, ft_connected); register_schange(ST_3270_MODE, ft_in3270); } #endif /*]*/ /* Return the right value for fopen()ing the local file. */ static char * local_fflag(void) { static char ret[3]; int nr = 0; ret[nr++] = receive_flag? (append_flag? 'a': 'w' ): 'r'; if (!ascii_flag) ret[nr++] = 'b'; ret[nr] = '\0'; return ret; } /* Timeout function for stalled transfers. */ static void ft_didnt_start(void) { if (ft_local_file != NULL) { fclose(ft_local_file); ft_local_file = NULL; if (receive_flag && !append_flag) unlink(ft_local_filename); } allow_overwrite = False; ft_complete(get_message("ftStartTimeout")); sms_continue(); } #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ /* "File Transfer" dialog. */ /* * Pop up the "Transfer" menu. * Called back from the "File Transfer" option on the File menu. */ void popup_ft(Widget w _is_unused, XtPointer call_parms _is_unused, XtPointer call_data _is_unused) { /* Initialize it. */ if (ft_shell == (Widget)NULL) ft_popup_init(); /* Pop it up. */ dialog_set(&ft_sr, ft_dialog); popup_popup(ft_shell, XtGrabNone); } /* Initialize the transfer pop-up. */ static void ft_popup_init(void) { Widget w; Widget cancel_button; Widget local_label, host_label; Widget append_widget; Widget lrecl_label, blksize_label, primspace_label, secspace_label; Widget h_ref = (Widget)NULL; Dimension d1; Dimension maxw = 0; Widget recfm_label, units_label; Widget buffersize_label; Widget start_button; char buflen_buf[128]; /* Register for state changes. */ register_schange(ST_CONNECT, ft_connected); register_schange(ST_3270_MODE, ft_in3270); /* Prep the dialog functions. */ dialog_set(&ft_sr, ft_dialog); /* Create the menu shell. */ ft_shell = XtVaCreatePopupShell( "ftPopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(ft_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(ft_shell, XtNpopupCallback, ft_popup_callback, (XtPointer)NULL); /* Create the form within the shell. */ ft_dialog = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, ft_shell, NULL); /* Create the file name widgets. */ local_label = XtVaCreateManagedWidget( "local", labelWidgetClass, ft_dialog, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); local_file = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNvertDistance, FAR_VGAP, XtNfromHoriz, local_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(local_label, local_file, XtNheight); w = XawTextGetSource(local_file); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_unixfile); dialog_register_sensitivity(local_file, BN, False, BN, False, BN, False); host_label = XtVaCreateManagedWidget( "host", labelWidgetClass, ft_dialog, XtNfromVert, local_label, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); host_file = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNdisplayCaret, False, XtNfromVert, local_label, XtNvertDistance, 3, XtNfromHoriz, host_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(host_label, host_file, XtNheight); dialog_match_dimension(local_label, host_label, XtNwidth); w = XawTextGetSource(host_file); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_hostfile); dialog_register_sensitivity(host_file, BN, False, BN, False, BN, False); /* Create the left column. */ /* Create send/receive toggles. */ send_toggle = XtVaCreateManagedWidget( "send", commandWidgetClass, ft_dialog, XtNfromVert, host_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(send_toggle, receive_flag ? no_diamond : diamond); XtAddCallback(send_toggle, XtNcallback, toggle_receive, (XtPointer)&s_false); receive_toggle = XtVaCreateManagedWidget( "receive", commandWidgetClass, ft_dialog, XtNfromVert, send_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(receive_toggle, receive_flag ? diamond : no_diamond); XtAddCallback(receive_toggle, XtNcallback, toggle_receive, (XtPointer)&s_true); /* Create ASCII/binary toggles. */ ascii_toggle = XtVaCreateManagedWidget( "ascii", commandWidgetClass, ft_dialog, XtNfromVert, receive_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(ascii_toggle, ascii_flag ? diamond : no_diamond); XtAddCallback(ascii_toggle, XtNcallback, toggle_ascii, (XtPointer)&s_true); binary_toggle = XtVaCreateManagedWidget( "binary", commandWidgetClass, ft_dialog, XtNfromVert, ascii_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(binary_toggle, ascii_flag ? no_diamond : diamond); XtAddCallback(binary_toggle, XtNcallback, toggle_ascii, (XtPointer)&s_false); /* Create append toggle. */ append_widget = XtVaCreateManagedWidget( "append", commandWidgetClass, ft_dialog, XtNfromVert, binary_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(append_widget, append_flag ? dot : no_dot); XtAddCallback(append_widget, XtNcallback, toggle_append, NULL); /* Set up the recfm group. */ recfm_label = XtVaCreateManagedWidget( "file", labelWidgetClass, ft_dialog, XtNfromVert, append_widget, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_register_sensitivity(recfm_label, &receive_flag, False, BN, False, BN, False); recfm_options[0] = XtVaCreateManagedWidget( "recfmDefault", commandWidgetClass, ft_dialog, XtNfromVert, recfm_label, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[0], (recfm == DEFAULT_RECFM) ? diamond : no_diamond); XtAddCallback(recfm_options[0], XtNcallback, recfm_callback, (XtPointer)&r_default_recfm); dialog_register_sensitivity(recfm_options[0], &receive_flag, False, BN, False, BN, False); recfm_options[1] = XtVaCreateManagedWidget( "fixed", commandWidgetClass, ft_dialog, XtNfromVert, recfm_options[0], XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[1], (recfm == RECFM_FIXED) ? diamond : no_diamond); XtAddCallback(recfm_options[1], XtNcallback, recfm_callback, (XtPointer)&r_fixed); dialog_register_sensitivity(recfm_options[1], &receive_flag, False, BN, False, BN, False); recfm_options[2] = XtVaCreateManagedWidget( "variable", commandWidgetClass, ft_dialog, XtNfromVert, recfm_options[1], XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[2], (recfm == RECFM_VARIABLE) ? diamond : no_diamond); XtAddCallback(recfm_options[2], XtNcallback, recfm_callback, (XtPointer)&r_variable); dialog_register_sensitivity(recfm_options[2], &receive_flag, False, BN, False, BN, False); recfm_options[3] = XtVaCreateManagedWidget( "undefined", commandWidgetClass, ft_dialog, XtNfromVert, recfm_options[2], XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[3], (recfm == RECFM_UNDEFINED) ? diamond : no_diamond); XtAddCallback(recfm_options[3], XtNcallback, recfm_callback, (XtPointer)&r_undefined); dialog_register_sensitivity(recfm_options[3], &receive_flag, False, &vm_flag, False, BN, False); lrecl_label = XtVaCreateManagedWidget( "lrecl", labelWidgetClass, ft_dialog, XtNfromVert, recfm_options[3], XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_register_sensitivity(lrecl_label, &receive_flag, False, &recfm_default, False, BN, False); lrecl_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, recfm_options[3], XtNvertDistance, 3, XtNfromHoriz, lrecl_label, XtNhorizDistance, MARGIN, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(lrecl_label, lrecl_widget, XtNheight); w = XawTextGetSource(lrecl_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(lrecl_widget, &receive_flag, False, &recfm_default, False, BN, False); blksize_label = XtVaCreateManagedWidget( "blksize", labelWidgetClass, ft_dialog, XtNfromVert, lrecl_widget, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_match_dimension(blksize_label, lrecl_label, XtNwidth); dialog_register_sensitivity(blksize_label, &receive_flag, False, &recfm_default, False, BN, False); blksize_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, lrecl_widget, XtNvertDistance, 3, XtNfromHoriz, blksize_label, XtNhorizDistance, MARGIN, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(blksize_label, blksize_widget, XtNheight); w = XawTextGetSource(blksize_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(blksize_widget, &receive_flag, False, &recfm_default, False, BN, False); /* Find the widest widget in the left column. */ XtVaGetValues(send_toggle, XtNwidth, &maxw, NULL); h_ref = send_toggle; #define REMAX(w) { \ XtVaGetValues((w), XtNwidth, &d1, NULL); \ if (d1 > maxw) { \ maxw = d1; \ h_ref = (w); \ } \ } REMAX(receive_toggle); REMAX(ascii_toggle); REMAX(binary_toggle); REMAX(append_widget); #undef REMAX /* Create the right column buttons. */ /* Create VM/TSO toggle. */ vm_toggle = XtVaCreateManagedWidget( "vm", commandWidgetClass, ft_dialog, XtNfromVert, host_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(vm_toggle, vm_flag ? diamond : no_diamond); XtAddCallback(vm_toggle, XtNcallback, toggle_vm, (XtPointer)&s_true); tso_toggle = XtVaCreateManagedWidget( "tso", commandWidgetClass, ft_dialog, XtNfromVert, vm_toggle, XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(tso_toggle, vm_flag ? no_diamond : diamond); XtAddCallback(tso_toggle, XtNcallback, toggle_vm, (XtPointer)&s_false); /* Create CR toggle. */ cr_widget = XtVaCreateManagedWidget( "cr", commandWidgetClass, ft_dialog, XtNfromVert, tso_toggle, XtNvertDistance, FAR_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(cr_widget, cr_flag ? dot : no_dot); XtAddCallback(cr_widget, XtNcallback, toggle_cr, 0); dialog_register_sensitivity(cr_widget, BN, False, BN, False, BN, False); /* Create remap toggle. */ remap_widget = XtVaCreateManagedWidget( "remap", commandWidgetClass, ft_dialog, XtNfromVert, cr_widget, XtNfromHoriz, h_ref, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(remap_widget, remap_flag ? dot : no_dot); XtAddCallback(remap_widget, XtNcallback, toggle_remap, NULL); dialog_register_sensitivity(remap_widget, &ascii_flag, True, BN, False, BN, False); /* Set up the Units group. */ units_label = XtVaCreateManagedWidget( "units", labelWidgetClass, ft_dialog, XtNfromVert, append_widget, XtNvertDistance, FAR_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_register_sensitivity(units_label, &receive_flag, False, &vm_flag, False, BN, False); units_options[0] = XtVaCreateManagedWidget( "spaceDefault", commandWidgetClass, ft_dialog, XtNfromVert, units_label, XtNvertDistance, 3, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[0], (units == DEFAULT_UNITS) ? diamond : no_diamond); XtAddCallback(units_options[0], XtNcallback, units_callback, (XtPointer)&u_default_units); dialog_register_sensitivity(units_options[0], &receive_flag, False, &vm_flag, False, BN, False); units_options[1] = XtVaCreateManagedWidget( "tracks", commandWidgetClass, ft_dialog, XtNfromVert, units_options[0], XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[1], (units == TRACKS) ? diamond : no_diamond); XtAddCallback(units_options[1], XtNcallback, units_callback, (XtPointer)&u_tracks); dialog_register_sensitivity(units_options[1], &receive_flag, False, &vm_flag, False, BN, False); units_options[2] = XtVaCreateManagedWidget( "cylinders", commandWidgetClass, ft_dialog, XtNfromVert, units_options[1], XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[2], (units == CYLINDERS) ? diamond : no_diamond); XtAddCallback(units_options[2], XtNcallback, units_callback, (XtPointer)&u_cylinders); dialog_register_sensitivity(units_options[2], &receive_flag, False, &vm_flag, False, BN, False); units_options[3] = XtVaCreateManagedWidget( "avblock", commandWidgetClass, ft_dialog, XtNfromVert, units_options[2], XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[3], (units == AVBLOCK) ? diamond : no_diamond); XtAddCallback(units_options[3], XtNcallback, units_callback, (XtPointer)&u_avblock); dialog_register_sensitivity(units_options[3], &receive_flag, False, &vm_flag, False, BN, False); primspace_label = XtVaCreateManagedWidget( "primspace", labelWidgetClass, ft_dialog, XtNfromVert, units_options[3], XtNvertDistance, 3, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_register_sensitivity(primspace_label, &receive_flag, False, &vm_flag, False, &units_default, False); primspace_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, units_options[3], XtNvertDistance, 3, XtNfromHoriz, primspace_label, XtNhorizDistance, 0, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(primspace_label, primspace_widget, XtNheight); w = XawTextGetSource(primspace_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(primspace_widget, &receive_flag, False, &vm_flag, False, &units_default, False); secspace_label = XtVaCreateManagedWidget( "secspace", labelWidgetClass, ft_dialog, XtNfromVert, primspace_widget, XtNvertDistance, 3, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_match_dimension(primspace_label, secspace_label, XtNwidth); dialog_register_sensitivity(secspace_label, &receive_flag, False, &vm_flag, False, &units_default, False); secspace_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, primspace_widget, XtNvertDistance, 3, XtNfromHoriz, secspace_label, XtNhorizDistance, 0, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(secspace_label, secspace_widget, XtNheight); w = XawTextGetSource(secspace_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(secspace_widget, &receive_flag, False, &vm_flag, False, &units_default, False); /* Set up the DFT buffer size. */ buffersize_label = XtVaCreateManagedWidget( "buffersize", labelWidgetClass, ft_dialog, XtNfromVert, blksize_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); buffersize_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, blksize_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, buffersize_label, XtNhorizDistance, 0, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(buffersize_label, buffersize_widget, XtNheight); w = XawTextGetSource(buffersize_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(buffersize_widget, BN, False, BN, False, BN, False); set_dft_buffersize(); (void) sprintf(buflen_buf, "%d", dft_buffersize); XtVaSetValues(buffersize_widget, XtNstring, buflen_buf, NULL); /* Set up the buttons at the bottom. */ start_button = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, ft_dialog, XtNfromVert, buffersize_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(start_button, XtNcallback, ft_start_callback, (XtPointer)NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, ft_dialog, XtNfromVert, buffersize_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, start_button, XtNhorizDistance, BUTTON_GAP, NULL); XtAddCallback(cancel_button, XtNcallback, ft_cancel, 0); } /* Callbacks for all the transfer widgets. */ /* Transfer pop-up popping up. */ static void ft_popup_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Set the focus to the local file widget. */ PA_dialog_focus_action(local_file, (XEvent *)NULL, (String *)NULL, (Cardinal *)NULL); /* Disallow overwrites. */ allow_overwrite = False; } /* Cancel button pushed. */ static void ft_cancel(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(ft_shell); } /* recfm options. */ static void recfm_callback(Widget w, XtPointer user_data, XtPointer call_data _is_unused) { recfm = *(enum recfm *)user_data; recfm_default = (recfm == DEFAULT_RECFM); dialog_check_sensitivity(&recfm_default); dialog_flip_toggles(&recfm_toggles, w); } /* Units options. */ static void units_callback(Widget w, XtPointer user_data, XtPointer call_data _is_unused) { units = *(enum units *)user_data; units_default = (units == DEFAULT_UNITS); dialog_check_sensitivity(&units_default); dialog_flip_toggles(&units_toggles, w); } /* OK button pushed. */ static void ft_start_callback(Widget w _is_unused, XtPointer call_parms _is_unused, XtPointer call_data _is_unused) { if (ft_start()) { XtPopdown(ft_shell); popup_progress(); } } /* Send/receive options. */ static void toggle_receive(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ receive_flag = *(Boolean *)client_data; /* Change the widget states. */ dialog_mark_toggle(receive_toggle, receive_flag ? diamond : no_diamond); dialog_mark_toggle(send_toggle, receive_flag ? no_diamond : diamond); dialog_check_sensitivity(&receive_flag); } /* Ascii/binary options. */ static void toggle_ascii(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag. */ ascii_flag = *(Boolean *)client_data; /* Change the widget states. */ dialog_mark_toggle(ascii_toggle, ascii_flag ? diamond : no_diamond); dialog_mark_toggle(binary_toggle, ascii_flag ? no_diamond : diamond); cr_flag = ascii_flag; remap_flag = ascii_flag; dialog_mark_toggle(cr_widget, cr_flag ? dot : no_dot); dialog_mark_toggle(remap_widget, remap_flag ? dot : no_dot); dialog_check_sensitivity(&ascii_flag); } /* CR option. */ static void toggle_cr(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle the cr flag */ cr_flag = !cr_flag; dialog_mark_toggle(w, cr_flag ? dot : no_dot); } /* Append option. */ static void toggle_append(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle Append Flag */ append_flag = !append_flag; dialog_mark_toggle(w, append_flag ? dot : no_dot); } /* Remap option. */ static void toggle_remap(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle Remap Flag */ remap_flag = !remap_flag; dialog_mark_toggle(w, remap_flag ? dot : no_dot); } /* TSO/VM option. */ static void toggle_vm(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle the flag. */ vm_flag = *(Boolean *)client_data; /* Change the widget states. */ dialog_mark_toggle(vm_toggle, vm_flag ? diamond : no_diamond); dialog_mark_toggle(tso_toggle, vm_flag ? no_diamond : diamond); if (vm_flag) { if (recfm == RECFM_UNDEFINED) { recfm = DEFAULT_RECFM; recfm_default = True; dialog_flip_toggles(&recfm_toggles, recfm_toggles.widgets[0]); } } dialog_check_sensitivity(&vm_flag); } /* * Begin the transfer. * Returns 1 if the transfer has started, 0 otherwise. */ static int ft_start(void) { char opts[80]; char *op = opts + 1; char *cmd; String buffersize, lrecl, blksize, primspace, secspace; char updated_buffersize[128]; unsigned flen; ft_is_action = False; #if defined(X3270_DBCS) /*[*/ ft_dbcs_state = FT_DBCS_NONE; #endif /*]*/ /* Get the DFT buffer size. */ XtVaGetValues(buffersize_widget, XtNstring, &buffersize, NULL); if (*buffersize) dft_buffersize = atoi(buffersize); else dft_buffersize = 0; set_dft_buffersize(); (void) sprintf(updated_buffersize, "%d", dft_buffersize); XtVaSetValues(buffersize_widget, XtNstring, updated_buffersize, NULL); /* Get the host file from its widget */ XtVaGetValues(host_file, XtNstring, &ft_host_filename, NULL); if (!*ft_host_filename) return 0; /* XXX: probably more validation to do here */ /* Get the local file from it widget */ XtVaGetValues(local_file, XtNstring, &ft_local_filename, NULL); if (!*ft_local_filename) return 0; /* See if the local file can be overwritten. */ if (receive_flag && !append_flag && !allow_overwrite) { ft_local_file = fopen(ft_local_filename, ascii_flag? "r": "rb"); if (ft_local_file != (FILE *)NULL) { (void) fclose(ft_local_file); ft_local_file = (FILE *)NULL; popup_overwrite(); return 0; } } /* Open the local file. */ ft_local_file = fopen(ft_local_filename, local_fflag()); if (ft_local_file == (FILE *)NULL) { allow_overwrite = False; popup_an_errno(errno, "Local file '%s'", ft_local_filename); return 0; } /* Build the ind$file command */ op[0] = '\0'; if (ascii_flag) strcat(op, " ascii"); if (cr_flag) strcat(op, " crlf"); if (append_flag && !receive_flag) strcat(op, " append"); if (!receive_flag) { if (!vm_flag) { if (recfm != DEFAULT_RECFM) { /* RECFM Entered, process */ strcat(op, " recfm("); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; case RECFM_UNDEFINED: strcat(op, "u"); break; default: break; }; strcat(op, ")"); XtVaGetValues(lrecl_widget, XtNstring, &lrecl, NULL); if (strlen(lrecl) > 0) sprintf(eos(op), " lrecl(%s)", lrecl); XtVaGetValues(blksize_widget, XtNstring, &blksize, NULL); if (strlen(blksize) > 0) sprintf(eos(op), " blksize(%s)", blksize); } if (units != DEFAULT_UNITS) { /* Space Entered, processs it */ switch (units) { case TRACKS: strcat(op, " tracks"); break; case CYLINDERS: strcat(op, " cylinders"); break; case AVBLOCK: strcat(op, " avblock"); break; default: break; }; XtVaGetValues(primspace_widget, XtNstring, &primspace, NULL); if (strlen(primspace) > 0) { sprintf(eos(op), " space(%s", primspace); XtVaGetValues(secspace_widget, XtNstring, &secspace, NULL); if (strlen(secspace) > 0) sprintf(eos(op), ",%s", secspace); strcat(op, ")"); } } } else { if (recfm != DEFAULT_RECFM) { strcat(op, " recfm "); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; default: break; }; XtVaGetValues(lrecl_widget, XtNstring, &lrecl, NULL); if (strlen(lrecl) > 0) sprintf(eos(op), " lrecl %s", lrecl); } } } /* Insert the '(' for VM options. */ if (strlen(op) > 0 && vm_flag) { opts[0] = ' '; opts[1] = '('; op = opts; } /* Build the whole command. */ cmd = xs_buffer("ind\\e005Bfile %s %s%s\\n", receive_flag ? "get" : "put", ft_host_filename, op); /* Erase the line and enter the command. */ flen = kybd_prime(); if (!flen || flen < strlen(cmd) - 1) { XtFree(cmd); if (ft_local_file != NULL) { fclose(ft_local_file); ft_local_file = NULL; if (receive_flag && !append_flag) unlink(ft_local_filename); } popup_an_error("%s", get_message("ftUnable")); allow_overwrite = False; return 0; } (void) emulate_input(cmd, strlen(cmd), False); XtFree(cmd); /* Get this thing started. */ ft_state = FT_AWAIT_ACK; ft_is_cut = False; ft_last_cr = False; #if defined(X3270_DBCS) /*[*/ ft_last_dbcs = False; #endif /*]*/ return 1; } /* "Transfer in Progress" pop-up. */ /* Pop up the "in progress" pop-up. */ static void popup_progress(void) { /* Initialize it. */ if (progress_shell == (Widget)NULL) progress_popup_init(); /* Pop it up. */ popup_popup(progress_shell, XtGrabNone); } /* Initialize the "in progress" pop-up. */ static void progress_popup_init(void) { Widget progress_pop, from_label, to_label, cancel_button; /* Create the shell. */ progress_shell = XtVaCreatePopupShell( "ftProgressPopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(progress_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(progress_shell, XtNpopupCallback, progress_popup_callback, (XtPointer)NULL); /* Create a form structure to contain the other stuff */ progress_pop = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, progress_shell, NULL); /* Create the widgets. */ from_label = XtVaCreateManagedWidget( "fromLabel", labelWidgetClass, progress_pop, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); from_file = XtVaCreateManagedWidget( "filename", labelWidgetClass, progress_pop, XtNwidth, FILE_WIDTH, XtNvertDistance, FAR_VGAP, XtNfromHoriz, from_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(from_label, from_file, XtNheight); to_label = XtVaCreateManagedWidget( "toLabel", labelWidgetClass, progress_pop, XtNfromVert, from_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); to_file = XtVaCreateManagedWidget( "filename", labelWidgetClass, progress_pop, XtNwidth, FILE_WIDTH, XtNfromVert, from_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, to_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(to_label, to_file, XtNheight); dialog_match_dimension(from_label, to_label, XtNwidth); waiting = XtVaCreateManagedWidget( "waiting", labelWidgetClass, progress_pop, XtNfromVert, to_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNmappedWhenManaged, False, NULL); ft_status = XtVaCreateManagedWidget( "status", labelWidgetClass, progress_pop, XtNfromVert, to_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNresizable, True, XtNmappedWhenManaged, False, NULL); XtVaGetValues(ft_status, XtNlabel, &status_string, NULL); status_string = XtNewString(status_string); aborting = XtVaCreateManagedWidget( "aborting", labelWidgetClass, progress_pop, XtNfromVert, to_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNmappedWhenManaged, False, NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, progress_pop, XtNfromVert, ft_status, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(cancel_button, XtNcallback, progress_cancel_callback, NULL); } /* Callbacks for the "in progress" pop-up. */ /* In-progress pop-up popped up. */ static void progress_popup_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtVaSetValues(from_file, XtNlabel, receive_flag ? ft_host_filename : ft_local_filename, NULL); XtVaSetValues(to_file, XtNlabel, receive_flag ? ft_local_filename : ft_host_filename, NULL); switch (ft_state) { case FT_AWAIT_ACK: XtUnmapWidget(ft_status); XtUnmapWidget(aborting); XtMapWidget(waiting); break; case FT_RUNNING: XtUnmapWidget(waiting); XtUnmapWidget(aborting); XtMapWidget(ft_status); break; case FT_ABORT_WAIT: case FT_ABORT_SENT: XtUnmapWidget(waiting); XtUnmapWidget(ft_status); XtMapWidget(aborting); break; default: break; } } /* In-progress "cancel" button. */ static void progress_cancel_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { if (ft_state == FT_RUNNING) { ft_state = FT_ABORT_WAIT; XtUnmapWidget(waiting); XtUnmapWidget(ft_status); XtMapWidget(aborting); } else { /* Impatient user or hung host -- just clean up. */ ft_complete(get_message("ftUserCancel")); } } /* "Overwrite existing?" pop-up. */ /* Pop up the "overwrite" pop-up. */ static void popup_overwrite(void) { /* Initialize it. */ if (overwrite_shell == (Widget)NULL) overwrite_popup_init(); /* Pop it up. */ popup_popup(overwrite_shell, XtGrabExclusive); } /* Initialize the "overwrite" pop-up. */ static void overwrite_popup_init(void) { Widget overwrite_pop, overwrite_name, okay_button, cancel_button; String overwrite_string, label, lf; Dimension d; /* Create the shell. */ overwrite_shell = XtVaCreatePopupShell( "ftOverwritePopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(overwrite_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(overwrite_shell, XtNpopdownCallback, overwrite_popdown, (XtPointer)NULL); /* Create a form structure to contain the other stuff */ overwrite_pop = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, overwrite_shell, NULL); /* Create the widgets. */ overwrite_name = XtVaCreateManagedWidget( "overwriteName", labelWidgetClass, overwrite_pop, XtNvertDistance, MARGIN, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNresizable, True, NULL); XtVaGetValues(overwrite_name, XtNlabel, &overwrite_string, NULL); XtVaGetValues(local_file, XtNstring, &lf, NULL); label = xs_buffer(overwrite_string, lf); XtVaSetValues(overwrite_name, XtNlabel, label, NULL); XtFree(label); XtVaGetValues(overwrite_name, XtNwidth, &d, NULL); if ((Dimension)(d + 20) < 400) d = 400; else d += 20; XtVaSetValues(overwrite_name, XtNwidth, d, NULL); XtVaGetValues(overwrite_name, XtNheight, &d, NULL); XtVaSetValues(overwrite_name, XtNheight, d + 20, NULL); okay_button = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, overwrite_pop, XtNfromVert, overwrite_name, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(okay_button, XtNcallback, overwrite_okay_callback, NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, overwrite_pop, XtNfromVert, overwrite_name, XtNvertDistance, FAR_VGAP, XtNfromHoriz, okay_button, XtNhorizDistance, BUTTON_GAP, NULL); XtAddCallback(cancel_button, XtNcallback, overwrite_cancel_callback, NULL); } /* Overwrite "okay" button. */ static void overwrite_okay_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(overwrite_shell); allow_overwrite = True; if (ft_start()) { XtPopdown(ft_shell); popup_progress(); } } /* Overwrite "cancel" button. */ static void overwrite_cancel_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(overwrite_shell); } /* Overwrite pop-up popped down. */ static void overwrite_popdown(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtDestroyWidget(overwrite_shell); overwrite_shell = (Widget)NULL; } #endif /*]*/ /* External entry points called by ft_dft and ft_cut. */ /* Pop up a message, end the transfer. */ void ft_complete(const char *errmsg) { /* Close the local file. */ if (ft_local_file != (FILE *)NULL && fclose(ft_local_file) < 0) popup_an_errno(errno, "close(%s)", ft_local_filename); ft_local_file = (FILE *)NULL; /* Clean up the state. */ ft_state = FT_NONE; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ /* Pop down the in-progress shell. */ if (!ft_is_action) XtPopdown(progress_shell); #endif /*]*/ /* Pop up the text. */ if (errmsg != CN) { char *msg_copy = NewString(errmsg); /* Make sure the error message will fit on the display. */ if (strlen(msg_copy) > 50 && strchr(msg_copy, '\n') == CN) { char *s = msg_copy + 50; while (s > msg_copy && *s != ' ') s--; if (s > msg_copy) *s = '\n'; /* yikes! */ } #if defined(C3270) /*[*/ printf("\r%79s\n", ""); fflush(stdout); #endif /*]*/ popup_an_error("%s", msg_copy); Free(msg_copy); } else { struct timeval t1; double bytes_sec; char *buf; char kbuf[256]; (void) gettimeofday(&t1, (struct timezone *)NULL); bytes_sec = (double)ft_length / ((double)(t1.tv_sec - t0.tv_sec) + (double)(t1.tv_usec - t0.tv_usec) / 1.0e6); buf = Malloc(256); (void) sprintf(buf, get_message("ftComplete"), ft_length, display_scale(bytes_sec, kbuf, sizeof(kbuf)), ft_is_cut ? "CUT" : "DFT"); if (ft_is_action) { #if defined(C3270) /*[*/ printf("\r%79s\n", ""); fflush(stdout); #endif /*]*/ sms_info("%s", buf); sms_continue(); } #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ else popup_an_info("%s", buf); #endif /*]*/ Free(buf); } } /* Update the bytes-transferred count on the progress pop-up. */ void ft_update_length(void) { #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ char text_string[80]; /* Format the message */ if (!ft_is_action) { sprintf(text_string, status_string, ft_length); XtVaSetValues(ft_status, XtNlabel, text_string, NULL); } #endif /*]*/ #if defined(C3270) /*[*/ printf("\r%79s\rTransferred %lu bytes. ", "", ft_length); fflush(stdout); #endif /*]*/ } /* Process a transfer acknowledgement. */ void ft_running(Boolean is_cut) { if (ft_state == FT_AWAIT_ACK) { ft_state = FT_RUNNING; if (ft_start_id) { RemoveTimeOut(ft_start_id); ft_start_id = 0; } } ft_is_cut = is_cut; (void) gettimeofday(&t0, (struct timezone *)NULL); ft_length = 0; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ if (!ft_is_action) { XtUnmapWidget(waiting); ft_update_length(); XtMapWidget(ft_status); } #endif /*]*/ #if defined(C3270) /*[*/ ft_update_length(); #endif /*]*/ } /* Process a protocol-generated abort. */ void ft_aborting(void) { if (ft_state == FT_RUNNING || ft_state == FT_ABORT_WAIT) { ft_state = FT_ABORT_SENT; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ if (!ft_is_action) { XtUnmapWidget(waiting); XtUnmapWidget(ft_status); XtMapWidget(aborting); } #endif /*]*/ } } /* Process a disconnect abort. */ static void ft_connected(Boolean ignored _is_unused) { if (!CONNECTED && ft_state != FT_NONE) ft_complete(get_message("ftDisconnected")); } /* Process an abort from no longer being in 3270 mode. */ static void ft_in3270(Boolean ignored _is_unused) { if (!IN_3270 && ft_state != FT_NONE) ft_complete(get_message("ftNot3270")); } /* * Script/macro action for file transfer. * Transfer(option=value[,...]) * Options are: * Direction=send|receive default receive * HostFile=name required * LocalFile=name required * Host=[tso|vm] default tso * Mode=[ascii|binary] default ascii * Cr=[add|remove|keep] default add/remove * Remap=[yes|no] default yes * Exist=[keep|replace|append] default keep * Recfm=[default|fixed|variable|undefined] default default * Lrecl=n no default * Blksize=n no default * Allocation=[default|tracks|cylinders|avblock] default default * PrimarySpace=n no default * SecondarySpace=n no default */ static struct { const char *name; char *value; const char *keyword[4]; } tp[] = { { "Direction", CN, { "receive", "send" } }, { "HostFile" }, { "LocalFile" }, { "Host", CN, { "tso", "vm" } }, { "Mode", CN, { "ascii", "binary" } }, { "Cr", CN, { "auto", "remove", "add", "keep" } }, { "Remap", CN, { "yes", "no" } }, { "Exist", CN, { "keep", "replace", "append" } }, { "Recfm", CN, { "default", "fixed", "variable", "undefined" } }, { "Lrecl" }, { "Blksize" }, { "Allocation", CN, { "default", "tracks", "cylinders", "avblock" } }, { "PrimarySpace" }, { "SecondarySpace" }, { "BufferSize" }, { CN } }; enum ft_parm_name { PARM_DIRECTION, PARM_HOST_FILE, PARM_LOCAL_FILE, PARM_HOST, PARM_MODE, PARM_CR, PARM_REMAP, PARM_EXIST, PARM_RECFM, PARM_LRECL, PARM_BLKSIZE, PARM_ALLOCATION, PARM_PRIMARY_SPACE, PARM_SECONDARY_SPACE, PARM_BUFFER_SIZE, N_PARMS }; void Transfer_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int i, k; Cardinal j; long l; char *ptr; char opts[80]; char *op = opts + 1; char *cmd; unsigned flen; String *xparams = params; Cardinal xnparams = *num_params; action_debug(Transfer_action, event, params, num_params); ft_is_action = True; /* Make sure we're connected. */ if (!IN_3270) { popup_an_error("Not connected"); return; } #if defined(C3270) || defined(WC3270) /*[*/ /* Check for interactive mode. */ if (xnparams == 0 && escaped) { if (interactive_transfer(&xparams, &xnparams) < 0) { printf("\n"); fflush(stdout); action_output("Aborted"); return; } } #endif /*]*/ /* Set everything to the default. */ for (i = 0; i < N_PARMS; i++) { Free(tp[i].value); if (tp[i].keyword[0] != CN) tp[i].value = NewString(tp[i].keyword[0]); else tp[i].value = CN; } /* See what they specified. */ for (j = 0; j < xnparams; j++) { for (i = 0; i < N_PARMS; i++) { char *eq; int kwlen; eq = strchr(xparams[j], '='); if (eq == CN || eq == xparams[j] || !*(eq + 1)) { popup_an_error("Invalid option syntax: '%s'", xparams[j]); return; } kwlen = eq - xparams[j]; if (!strncasecmp(xparams[j], tp[i].name, kwlen) && !tp[i].name[kwlen]) { if (tp[i].keyword[0]) { for (k = 0; tp[i].keyword[k] != CN && k < 4; k++) { if (!strcasecmp(eq + 1, tp[i].keyword[k])) { break; } } if (k >= 4 || tp[i].keyword[k] == CN) { popup_an_error("Invalid option " "value: '%s'", eq + 1); return; } } else switch (i) { case PARM_LRECL: case PARM_BLKSIZE: case PARM_PRIMARY_SPACE: case PARM_SECONDARY_SPACE: case PARM_BUFFER_SIZE: l = strtol(eq + 1, &ptr, 10); if (ptr == eq + 1 || *ptr) { popup_an_error("Invalid option " "value: '%s'", eq + 1); return; } break; default: break; } tp[i].value = NewString(eq + 1); break; } } if (i >= N_PARMS) { popup_an_error("Unknown option: %s", xparams[j]); return; } } /* Check for required values. */ if (tp[PARM_HOST_FILE].value == CN) { popup_an_error("Missing 'HostFile' option"); return; } if (tp[PARM_LOCAL_FILE].value == CN) { popup_an_error("Missing 'LocalFile' option"); return; } /* * Start the transfer. Much of this is duplicated from ft_start() * and should be made common. */ if (tp[PARM_BUFFER_SIZE].value != CN) dft_buffersize = atoi(tp[PARM_BUFFER_SIZE].value); else dft_buffersize = 0; set_dft_buffersize(); receive_flag = !strcasecmp(tp[PARM_DIRECTION].value, "receive"); append_flag = !strcasecmp(tp[PARM_EXIST].value, "append"); allow_overwrite = !strcasecmp(tp[PARM_EXIST].value, "replace"); ascii_flag = !strcasecmp(tp[PARM_MODE].value, "ascii"); if (!strcasecmp(tp[PARM_CR].value, "auto")) { cr_flag = ascii_flag; } else { cr_flag = !strcasecmp(tp[PARM_CR].value, "remove") || !strcasecmp(tp[PARM_CR].value, "add"); } if (ascii_flag) remap_flag = !strcasecmp(tp[PARM_REMAP].value, "yes"); vm_flag = !strcasecmp(tp[PARM_HOST].value, "vm"); recfm = DEFAULT_RECFM; for (k = 0; tp[PARM_RECFM].keyword[k] != CN && k < 4; k++) { if (!strcasecmp(tp[PARM_RECFM].value, tp[PARM_RECFM].keyword[k])) { recfm = (enum recfm)k; break; } } units = DEFAULT_UNITS; for (k = 0; tp[PARM_ALLOCATION].keyword[k] != CN && k < 4; k++) { if (!strcasecmp(tp[PARM_ALLOCATION].value, tp[PARM_ALLOCATION].keyword[k])) { units = (enum units)k; break; } } ft_host_filename = tp[PARM_HOST_FILE].value; ft_local_filename = tp[PARM_LOCAL_FILE].value; /* See if the local file can be overwritten. */ if (receive_flag && !append_flag && !allow_overwrite) { ft_local_file = fopen(ft_local_filename, ascii_flag? "r": "rb"); if (ft_local_file != (FILE *)NULL) { (void) fclose(ft_local_file); popup_an_error("File exists"); return; } } /* Open the local file. */ ft_local_file = fopen(ft_local_filename, local_fflag()); if (ft_local_file == (FILE *)NULL) { popup_an_errno(errno, "Local file '%s'", ft_local_filename); return; } /* Build the ind$file command */ op[0] = '\0'; if (ascii_flag) strcat(op, " ascii"); if (cr_flag) strcat(op, " crlf"); if (append_flag && !receive_flag) strcat(op, " append"); if (!receive_flag) { if (!vm_flag) { if (recfm != DEFAULT_RECFM) { /* RECFM Entered, process */ strcat(op, " recfm("); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; case RECFM_UNDEFINED: strcat(op, "u"); break; default: break; }; strcat(op, ")"); if (tp[PARM_LRECL].value != CN) sprintf(eos(op), " lrecl(%s)", tp[PARM_LRECL].value); if (tp[PARM_BLKSIZE].value != CN) sprintf(eos(op), " blksize(%s)", tp[PARM_BLKSIZE].value); } if (units != DEFAULT_UNITS) { /* Space Entered, processs it */ switch (units) { case TRACKS: strcat(op, " tracks"); break; case CYLINDERS: strcat(op, " cylinders"); break; case AVBLOCK: strcat(op, " avblock"); break; default: break; }; if (tp[PARM_PRIMARY_SPACE].value != CN) { sprintf(eos(op), " space(%s", tp[PARM_PRIMARY_SPACE].value); if (tp[PARM_SECONDARY_SPACE].value) sprintf(eos(op), ",%s", tp[PARM_SECONDARY_SPACE].value); strcat(op, ")"); } } } else { if (recfm != DEFAULT_RECFM) { strcat(op, " recfm "); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; default: break; }; if (tp[PARM_LRECL].value) sprintf(eos(op), " lrecl %s", tp[PARM_LRECL].value); } } } /* Insert the '(' for VM options. */ if (strlen(op) > 0 && vm_flag) { opts[0] = ' '; opts[1] = '('; op = opts; } /* Build the whole command. */ cmd = xs_buffer("ind\\e005Bfile %s %s%s\\n", receive_flag ? "get" : "put", ft_host_filename, op); /* Erase the line and enter the command. */ flen = kybd_prime(); if (!flen || flen < strlen(cmd) - 1) { Free(cmd); if (ft_local_file != NULL) { fclose(ft_local_file); ft_local_file = NULL; if (receive_flag && !append_flag) unlink(ft_local_filename); } popup_an_error("%s", get_message("ftUnable")); return; } (void) emulate_input(cmd, strlen(cmd), False); Free(cmd); #if defined(C3270) /*[*/ if (!escaped) screen_suspend(); printf("Awaiting start of transfer... "); fflush(stdout); #endif /*]*/ /* Get this thing started. */ ft_start_id = AddTimeOut(10 * 1000, ft_didnt_start); ft_state = FT_AWAIT_ACK; ft_is_cut = False; } #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/scrollc.h0000644000175000017500000000315511254565673015737 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of scrollc.h */ #define scroll_save(n, trim_blanks) #define scroll_to_bottom() ibm-3270-3.3.10ga4/wc3270/ctlrc.h0000644000175000017500000001154111254565704015376 0ustar bastianbastian/* * Copyright (c) 2005-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ctlrc.h * Global declarations for ctlr.c. */ enum pds { PDS_OKAY_NO_OUTPUT = 0, /* command accepted, produced no output */ PDS_OKAY_OUTPUT = 1, /* command accepted, produced output */ PDS_BAD_CMD = -1, /* command rejected */ PDS_BAD_ADDR = -2 /* command contained a bad address */ }; void ctlr_aclear(int baddr, int count, int clear_ea); void ctlr_add(int baddr, unsigned char c, unsigned char cs); void ctlr_add_bg(int baddr, unsigned char color); void ctlr_add_cs(int baddr, unsigned char cs); void ctlr_add_fa(int baddr, unsigned char fa, unsigned char cs); void ctlr_add_fg(int baddr, unsigned char color); void ctlr_add_gr(int baddr, unsigned char gr); void ctlr_altbuffer(Boolean alt); Boolean ctlr_any_data(void); void ctlr_bcopy(int baddr_from, int baddr_to, int count, int move_ea); void ctlr_changed(int bstart, int bend); void ctlr_clear(Boolean can_snap); void ctlr_erase(Boolean alt); void ctlr_erase_all_unprotected(void); void ctlr_init(unsigned cmask); void ctlr_read_buffer(unsigned char aid_byte); void ctlr_read_modified(unsigned char aid_byte, Boolean all); void ctlr_reinit(unsigned cmask); void ctlr_scroll(void); void ctlr_shrink(void); void ctlr_snap_buffer(void); void ctlr_snap_buffer_sscp_lu(void); Boolean ctlr_snap_modes(void); void ctlr_wrapping_memmove(int baddr_to, int baddr_from, int count); enum pds ctlr_write(unsigned char buf[], int buflen, Boolean erase); void ctlr_write_sscp_lu(unsigned char buf[], int buflen); struct ea *fa2ea(int baddr); int find_field_attribute(int baddr); unsigned char get_field_attribute(register int baddr); Boolean get_bounded_field_attribute(register int baddr, register int bound, unsigned char *fa_out); void mdt_clear(int baddr); void mdt_set(int baddr); int next_unprotected(int baddr0); enum pds process_ds(unsigned char *buf, int buflen); void ps_process(void); void set_rows_cols(int mn, int ovc, int ovr); void ticking_start(Boolean anyway); void toggle_nop(struct toggle *t, enum toggle_type tt); void toggle_showTiming(struct toggle *t, enum toggle_type tt); enum dbcs_state { DBCS_NONE = 0, /* position is not DBCS */ DBCS_LEFT, /* position is left half of DBCS character */ DBCS_RIGHT, /* position is right half of DBCS character */ DBCS_SI, /* position is SI terminating DBCS subfield */ DBCS_SB, /* position is SBCS character after the SI */ DBCS_LEFT_WRAP, /* position is left half of split DBCS */ DBCS_RIGHT_WRAP, /* position is right half of split DBCS */ DBCS_DEAD /* position is dead left-half DBCS */ }; #define IS_LEFT(d) ((d) == DBCS_LEFT || (d) == DBCS_LEFT_WRAP) #define IS_RIGHT(d) ((d) == DBCS_RIGHT || (d) == DBCS_RIGHT_WRAP) #define IS_DBCS(d) (IS_LEFT(d) || IS_RIGHT(d)) #define MAKE_LEFT(b) { \ if (((b) % COLS) == ((ROWS * COLS) - 1)) \ ea_buf[(b)].db = DBCS_LEFT_WRAP; \ else \ ea_buf[(b)].db = DBCS_LEFT; \ } #define MAKE_RIGHT(b) { \ if (!((b) % COLS)) \ ea_buf[(b)].db = DBCS_RIGHT_WRAP; \ else \ ea_buf[(b)].db = DBCS_RIGHT; \ } #define SOSI(c) (((c) == EBC_so)? EBC_si: EBC_so) enum dbcs_why { DBCS_FIELD, DBCS_SUBFIELD, DBCS_ATTRIBUTE }; #if defined(X3270_DBCS) /*[*/ enum dbcs_state ctlr_dbcs_state(int baddr); extern enum dbcs_state ctlr_lookleft_state(int baddr, enum dbcs_why *why); int ctlr_dbcs_postprocess(void); #else /*][*/ #define ctlr_dbcs_state(b) DBCS_NONE #define ctlr_lookleft_state(b, w) DBCS_NONE #define ctlr_dbcs_postprocess() 0 #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/w3misc.c0000644000175000017500000001222111254565675015472 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * w3misc.c * Miscellaneous Win32 functions. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #error This module is only for Win32. #endif /*]*/ #include #include #include #include #include "w3miscc.h" /* Initialize Winsock. */ int sockstart(void) { static int initted = 0; WORD wVersionRequested; WSADATA wsaData; if (initted) return 0; initted = 1; wVersionRequested = MAKEWORD(2, 2); if (WSAStartup(wVersionRequested, &wsaData) != 0) { fprintf(stderr, "WSAStartup failed: %s\n", win32_strerror(GetLastError())); return -1; } if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2) { fprintf(stderr, "Bad winsock version: %d.%d\n", LOBYTE(wsaData.wVersion), HIBYTE(wsaData.wVersion)); return -1; } return 0; } /* Convert a network address to a string. */ const char * inet_ntop(int af, const void *src, char *dst, socklen_t cnt) { union { struct sockaddr sa; struct sockaddr_in sin; struct sockaddr_in6 sin6; } sa; DWORD ssz; DWORD sz = cnt; memset(&sa, '\0', sizeof(sa)); switch (af) { case AF_INET: sa.sin = *(struct sockaddr_in *)src; /* struct copy */ ssz = sizeof(struct sockaddr_in); break; case AF_INET6: sa.sin6 = *(struct sockaddr_in6 *)src; /* struct copy */ ssz = sizeof(struct sockaddr_in6); break; default: if (cnt > 0) dst[0] = '\0'; return NULL; } sa.sa.sa_family = af; if (WSAAddressToString(&sa.sa, ssz, NULL, dst, &sz) != 0) { if (cnt > 0) dst[0] = '\0'; return NULL; } return dst; } /* Decode a Win32 error number. */ const char * win32_strerror(int e) { static char buffer[4096]; if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, e, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), buffer, sizeof(buffer), NULL) == 0) { sprintf(buffer, "Windows error %d", e); } return buffer; } #if defined(_MSC_VER) /*[*/ /* MinGW has gettimofday(), but MSVC does not. */ #include #define SECS_BETWEEN_EPOCHS 11644473600ULL #define SECS_TO_100NS 10000000ULL /* 10^7 */ int gettimeofday(struct timeval *tv, void *ignored) { FILETIME t; ULARGE_INTEGER u; GetSystemTimeAsFileTime(&t); memcpy(&u, &t, sizeof(ULARGE_INTEGER)); /* Isolate seconds and move epochs. */ tv->tv_sec = (DWORD)((u.QuadPart / SECS_TO_100NS) - SECS_BETWEEN_EPOCHS); tv->tv_usec = (u.QuadPart % SECS_TO_100NS) / 10ULL; return 0; } /* MinGW has getopt(), but MSVC does not. */ char *optarg; int optind = 1, opterr = 1, optopt; static const char *nextchar = NULL; int getopt(int argc, char * const argv[], const char *optstring) { char c; const char *s; if (optind == 1) nextchar = argv[optind++]; do { if (nextchar == argv[optind - 1]) { if (optind > argc) { --optind; /* went too far */ return -1; } if (nextchar == NULL) { --optind; /* went too far */ return -1; } if (!strcmp(nextchar, "--")) return -1; if (*nextchar++ != '-') { --optind; return -1; } } if ((c = *nextchar++) == '\0') nextchar = argv[optind++]; } while (nextchar == argv[optind - 1]); s = strchr(optstring, c); if (s == NULL) { if (opterr) fprintf(stderr, "Unknown option '%c'\n", c); return '?'; } if (*(s + 1) == ':') { if (*nextchar) { optarg = (char *)nextchar; nextchar = argv[optind++]; return c; } else if (optind < argc && argv[optind] != NULL) { optarg = (char *)argv[optind++]; nextchar = argv[optind++]; return c; } else { if (opterr) fprintf(stderr, "Missing value after '%c'\n", c); return -1; } } else return c; } #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/sfc.h0000644000175000017500000000320211254565704015035 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * sfc.h * Global declarations for sf.c. */ extern enum pds write_structured_field(unsigned char buf[], int buflen); ibm-3270-3.3.10ga4/wc3270/print.c0000644000175000017500000007103711254565704015424 0ustar bastianbastian/* * Copyright (c) 1994-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * print.c * Screen printing functions. */ #include "globals.h" #include "appres.h" #include "3270ds.h" #include "ctlr.h" #include "ctlrc.h" #include "tablesc.h" #include #if defined(X3270_DISPLAY) /*[*/ #include #include #endif /*]*/ #include "objects.h" #include "resources.h" #include "actionsc.h" #include "charsetc.h" #include "popupsc.h" #include "printc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include #include #include #include #endif /*]*/ #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ /* Globals */ #if defined(X3270_DISPLAY) /*[*/ char *print_text_command = NULL; Boolean ptc_changed = FALSE; #endif /*]*/ /* Statics */ #if defined(X3270_DISPLAY) /*[*/ static Widget print_text_shell = (Widget)NULL; static Widget save_text_shell = (Widget)NULL; static Widget print_window_shell = (Widget)NULL; char *print_window_command = CN; #endif /*]*/ /* Print Text popup */ /* * Map default 3279 colors. This code is duplicated three times. ;-( */ static int color_from_fa(unsigned char fa) { static int field_colors[4] = { HOST_COLOR_GREEN, /* default */ HOST_COLOR_RED, /* intensified */ HOST_COLOR_BLUE, /* protected */ HOST_COLOR_WHITE /* protected, intensified */ # define DEFCOLOR_MAP(f) \ ((((f) & FA_PROTECT) >> 4) | (((f) & FA_INT_HIGH_SEL) >> 3)) }; if (appres.m3279) return field_colors[DEFCOLOR_MAP(fa)]; else return HOST_COLOR_GREEN; } /* * Map 3279 colors onto HTML colors. */ static char * html_color(int color) { static char *html_color_map[] = { "black", "deepSkyBlue", "red", "pink", "green", "turquoise", "yellow", "white", "black", "blue3", "orange", "purple", "paleGreen", "paleTurquoise2", "grey", "white" }; if (color >= HOST_COLOR_NEUTRAL_BLACK && color <= HOST_COLOR_WHITE) return html_color_map[color]; else return "black"; } /* Convert a caption string to UTF-8 RTF. */ static char * rtf_caption(const char *caption) { ucs4_t u; int consumed; enum me_fail error; char *result = Malloc(1); int rlen = 1; char uubuf[64]; char mb[16]; int nmb; result[0] = '\0'; while (*caption) { u = multibyte_to_unicode(caption, strlen(caption), &consumed, &error); if (u == 0) break; if (u & ~0x7f) { sprintf(uubuf, "\\u%u?", u); } else { nmb = unicode_to_multibyte(u, mb, sizeof(mb)); if (mb[0] == '\\' || mb[0] == '{' || mb[0] == '}') sprintf(uubuf, "\\%c", mb[0]); else if (mb[0] == '-') sprintf(uubuf, "\\_"); else if (mb[0] == ' ') sprintf(uubuf, "\\~"); else { uubuf[0] = mb[0]; uubuf[1] = '\0'; } } result = Realloc(result, rlen + strlen(uubuf)); strcat(result, uubuf); rlen += strlen(uubuf); caption += consumed; } return result; } /* Convert a caption string to UTF-8 HTML. */ static char * html_caption(const char *caption) { ucs4_t u; int consumed; enum me_fail error; char *result = Malloc(1); int rlen = 1; char u8buf[16]; int nu8; result[0] = '\0'; while (*caption) { u = multibyte_to_unicode(caption, strlen(caption), &consumed, &error); if (u == 0) break; switch (u) { case '<': result = Realloc(result, rlen + 4); strcat(result, "<"); rlen += 4; break; case '>': result = Realloc(result, rlen + 4); strcat(result, ">"); rlen += 4; break; case '&': result = Realloc(result, rlen + 5); strcat(result, "&"); rlen += 5; break; default: nu8 = unicode_to_utf8(u, u8buf); result = Realloc(result, rlen + nu8); memcpy(result + rlen - 1, u8buf, nu8); rlen += nu8; result[rlen - 1] = '\0'; break; } caption += consumed; } return result; } /* * Print the ASCIIfied contents of the screen onto a stream. * Returns True if anything printed, False otherwise. * * 'ptype' can specify: * P_TEXT: Ordinary text * P_HTML: HTML * P_RTF: Windows rich text * * 'opts' is an OR of: * FPS_EVEN_IF_EMPTY Create a file even if the screen is clear * FPS_MODIFIED_ITALIC Print modified fields in italic * font-style:normal|italic */ Boolean fprint_screen(FILE *f, ptype_t ptype, unsigned opts, char *caption) { register int i; unsigned long uc; int ns = 0; int nr = 0; Boolean any = False; int fa_addr = find_field_attribute(0); unsigned char fa = ea_buf[fa_addr].fa; int fa_fg, current_fg; int fa_bg, current_bg; Bool fa_high, current_high; Bool fa_ital, current_ital; Bool mi = ((opts & FPS_MODIFIED_ITALIC)) != 0; char *xcaption = NULL; if (caption != NULL) { char *ts = strstr(caption, "%T%"); if (ts != NULL) { time_t t = time(NULL); struct tm *tm = localtime(&t); xcaption = Malloc(strlen(caption) + 1 - 3 + 19); strncpy(xcaption, caption, ts - caption); sprintf(xcaption + (ts - caption), "%04d-%02d-%02d %02d:%02d:%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); strcat(xcaption, ts + 3); } else { xcaption = NewString(caption); } } if (ptype != P_TEXT) { opts |= FPS_EVEN_IF_EMPTY; } if (ea_buf[fa_addr].fg) fa_fg = ea_buf[fa_addr].fg & 0x0f; else fa_fg = color_from_fa(fa); current_fg = fa_fg; if (ea_buf[fa_addr].bg) fa_bg = ea_buf[fa_addr].bg & 0x0f; else fa_bg = HOST_COLOR_BLACK; current_bg = fa_bg; if (ea_buf[fa_addr].gr & GR_INTENSIFY) fa_high = True; else fa_high = FA_IS_HIGH(fa); current_high = fa_high; fa_ital = mi && FA_IS_MODIFIED(fa); current_ital = fa_ital; if (ptype == P_RTF) { char *pt_font = get_resource(ResPrintTextFont); char *pt_size = get_resource(ResPrintTextSize); int pt_nsize; if (pt_font == CN) pt_font = "Courier New"; if (pt_size == CN) pt_size = "8"; pt_nsize = atoi(pt_size); if (pt_nsize <= 0) pt_nsize = 8; fprintf(f, "{\\rtf1\\ansi\\ansicpg%u\\deff0\\deflang1033{\\fonttbl{\\f0\\fmodern\\fprq1\\fcharset0 %s;}}\n" "\\viewkind4\\uc1\\pard\\f0\\fs%d ", #if defined(_WIN32) /*[*/ GetACP(), #else /*][*/ 1252, /* the number doesn't matter */ #endif /*]*/ pt_font, pt_nsize * 2); if (xcaption != NULL) { char *hcaption = rtf_caption(xcaption); fprintf(f, "%s\\par\\par\n", hcaption); Free(hcaption); } if (current_high) fprintf(f, "\\b "); } if (ptype == P_HTML) { char *hcaption = NULL; /* Make the caption HTML-safe. */ if (xcaption != NULL) hcaption = html_caption(xcaption); /* Print the preamble. */ fprintf(f, "\n" "\n" " \n" "\n" " \n"); if (hcaption) fprintf(f, "

%s

\n", hcaption); fprintf(f, " " "\n" "
" "
",
			   html_color(current_fg),
			   html_color(current_bg),
			   current_high? "bold": "normal",
			   current_ital? "italic": "normal");
		if (hcaption != NULL)
			Free(hcaption);
	}

	if (ptype == P_TEXT) {
	    	if (xcaption != NULL)
		    	fprintf(f, "%s\n\n", xcaption);
	}

	for (i = 0; i < ROWS*COLS; i++) {
		char mb[16];
		int nmb;

		uc = 0;

		if (i && !(i % COLS)) {
		    	if (ptype == P_HTML)
			    	(void) fputc('\n', f);
			else
				nr++;
			ns = 0;
		}
		if (ea_buf[i].fa) {
			uc = ' ';
			fa = ea_buf[i].fa;
			if (ea_buf[i].fg)
				fa_fg = ea_buf[i].fg & 0x0f;
			else
				fa_fg = color_from_fa(fa);
			if (ea_buf[i].bg)
				fa_bg = ea_buf[i].bg & 0x0f;
			else
				fa_bg = HOST_COLOR_BLACK;
			if (ea_buf[i].gr & GR_INTENSIFY)
				fa_high = True;
			else
				fa_high = FA_IS_HIGH(fa);
			fa_ital = mi && FA_IS_MODIFIED(fa);
		}
		if (FA_IS_ZERO(fa)) {
#if defined(X3270_DBCS) /*[*/
			if (ctlr_dbcs_state(i) == DBCS_LEFT)
			    	uc = 0x3000;
			else
#endif /*]*/
				uc = ' ';
		} else {
		    	/* Convert EBCDIC to Unicode. */
#if defined(X3270_DBCS) /*[*/
			switch (ctlr_dbcs_state(i)) {
			case DBCS_NONE:
			case DBCS_SB:
			    	uc = ebcdic_to_unicode(ea_buf[i].cc,
					ea_buf[i].cs, EUO_NONE);
				if (uc == 0)
				    	uc = ' ';
				break;
			case DBCS_LEFT:
				uc = ebcdic_to_unicode(
					(ea_buf[i].cc << 8) |
					 ea_buf[i + 1].cc,
					CS_BASE, EUO_NONE);
				if (uc == 0)
				    	uc = 0x3000;
				break;
			case DBCS_RIGHT:
				/* skip altogether, we took care of it above */
				continue;
			default:
				uc = ' ';
				break;
			}
#else /*][*/
			uc = ebcdic_to_unicode(ea_buf[i].cc, ea_buf[i].cs,
				EUO_NONE);
			if (uc == 0)
				uc = ' ';
#endif /*]*/
		}

		/* Translate to a type-specific format and write it out. */
		if (uc == ' ' && ptype != P_HTML)
			ns++;
#if defined(X3270_DBCS) /*[*/
		else if (uc == 0x3000) {
		    	if (ptype == P_HTML)
			    	fprintf(f, "  ");
			else
				ns += 2;
		}
#endif /*]*/
		else {
			while (nr) {
			    	if (ptype == P_RTF)
				    	fprintf(f, "\\par");
				(void) fputc('\n', f);
				nr--;
			}
			while (ns) {
			    	if (ptype == P_RTF)
				    	fprintf(f, "\\~");
				else
					(void) fputc(' ', f);
				ns--;
			}
			if (ptype == P_RTF) {
				Bool high;

				if (ea_buf[i].gr & GR_INTENSIFY)
					high = True;
				else
					high = fa_high;
				if (high != current_high) {
					if (high)
						fprintf(f, "\\b ");
					else
						fprintf(f, "\\b0 ");
					current_high = high;
				}
			}
			if (ptype == P_HTML) {
				int fg_color, bg_color;
				Bool high;

				if (ea_buf[i].fg)
					fg_color = ea_buf[i].fg & 0x0f;
				else
					fg_color = fa_fg;
				if (ea_buf[i].bg)
					bg_color = ea_buf[i].bg & 0x0f;
				else
					bg_color = fa_bg;
				if (ea_buf[i].gr & GR_REVERSE) {
				    	int tmp;

					tmp = fg_color;
					fg_color = bg_color;
					bg_color = tmp;
				}

				if (i == cursor_addr) {
				    	fg_color = (bg_color == HOST_COLOR_RED)?
							HOST_COLOR_BLACK: bg_color;
					bg_color = HOST_COLOR_RED;
				}
				if (ea_buf[i].gr & GR_INTENSIFY)
					high = True;
				else
					high = fa_high;

				if (fg_color != current_fg ||
				    bg_color != current_bg ||
				    high != current_high ||
				    fa_ital != current_ital) {
					fprintf(f,
						"",
						html_color(fg_color),
						html_color(bg_color),
						high? "bold": "normal",
						fa_ital? "italic": "normal");
					current_fg = fg_color;
					current_bg = bg_color;
					current_high = high;
					current_ital = fa_ital;
				}
			}
			any = True;
			if (ptype == P_RTF) {
				if (uc & ~0x7f) {
					fprintf(f, "\\u%ld?", uc);
				} else {
					nmb = unicode_to_multibyte(uc,
						mb, sizeof(mb));
					if (mb[0] == '\\' ||
						mb[0] == '{' ||
						mb[0] == '}')
						fprintf(f, "\\%c",
							mb[0]);
					else if (mb[0] == '-')
						fprintf(f, "\\_");
					else if (mb[0] == ' ')
						fprintf(f, "\\~");
					else
						fputc(mb[0], f);
				}
			} else if (ptype == P_HTML) {
				if (uc == '<')
					fprintf(f, "<");
				else if (uc == '&')
				    	fprintf(f, "&");
				else if (uc == '>')
				    	fprintf(f, ">");
				else {
					nmb = unicode_to_utf8(uc, mb);
					{
					    int k;

					    for (k = 0; k < nmb; k++) {
						fputc(mb[k], f);
					    }
					}
				}
			} else {
				nmb = unicode_to_multibyte(uc,
					mb, sizeof(mb));
				(void) fputs(mb, f);
			}
		}
	}

	if (xcaption != NULL)
	    	Free(xcaption);

	if (ptype == P_HTML)
	    	(void) fputc('\n', f);
	else
		nr++;
	if (!any && !(opts & FPS_EVEN_IF_EMPTY) && ptype == P_TEXT)
		return False;
	while (nr) {
	    	if (ptype == P_RTF)
		    	fprintf(f, "\\par");
		if (ptype == P_TEXT)
			(void) fputc('\n', f);
		nr--;
	}
	if (ptype == P_RTF) {
	    	fprintf(f, "\n}\n%c", 0);
	}
	if (ptype == P_HTML) {
		fprintf(f, "%s
\n" " \n" "\n", current_high? "": ""); } return True; } #if !defined(_WIN32) /*[*/ /* Termination code for print text process. */ static void print_text_done(FILE *f, Boolean do_popdown #if defined(X3270_DISPLAY) /*[*/ _is_unused #endif /*]*/ ) { int status; status = pclose(f); if (status) { popup_an_error("Print program exited with status %d.", (status & 0xff00) > 8); } else { #if defined(X3270_DISPLAY) /*[*/ if (do_popdown) XtPopdown(print_text_shell); #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ if (appres.do_confirms) popup_an_info("Screen image printed."); #endif /*]*/ } } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* Callback for "OK" button on the print text popup. */ static void print_text_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *filter; FILE *f; filter = XawDialogGetValueString((Widget)client_data); if (!filter) { XtPopdown(print_text_shell); return; } if (!(f = popen(filter, "w"))) { popup_an_errno(errno, "popen(%s)", filter); return; } if (print_text_command == NULL || strcmp(print_text_command, filter)) { Replace(print_text_command, filter); ptc_changed = True; } (void) fprint_screen(f, P_TEXT, FPS_EVEN_IF_EMPTY, NULL); print_text_done(f, True); } /* Callback for "Plain Text" button on save text popup. */ static void save_text_plain_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *filename; FILE *f; filename = XawDialogGetValueString((Widget)client_data); if (!filename) { XtPopdown(save_text_shell); return; } if (!(f = fopen(filename, "a"))) { popup_an_errno(errno, "%s", filename); return; } (void) fprint_screen(f, P_TEXT, FPS_EVEN_IF_EMPTY, NULL); fclose(f); XtPopdown(save_text_shell); if (appres.do_confirms) popup_an_info("Screen image saved."); } /* Callback for "HTML" button on save text popup. */ static void save_text_html_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *filename; FILE *f; filename = XawDialogGetValueString((Widget)client_data); if (!filename) { XtPopdown(save_text_shell); return; } if (!(f = fopen(filename, "a"))) { popup_an_errno(errno, "%s", filename); return; } (void) fprint_screen(f, P_HTML, FPS_EVEN_IF_EMPTY, NULL); fclose(f); XtPopdown(save_text_shell); if (appres.do_confirms) popup_an_info("Screen image saved."); } /* Pop up the Print Text dialog, given a filter. */ static void popup_print_text(char *filter) { if (print_text_shell == NULL) { print_text_shell = create_form_popup("PrintText", print_text_callback, (XtCallbackProc)NULL, FORM_AS_IS); XtVaSetValues(XtNameToWidget(print_text_shell, ObjDialog), XtNvalue, filter, NULL); } popup_popup(print_text_shell, XtGrabExclusive); } /* Pop up the Save Text dialog. */ static void popup_save_text(char *filename) { if (save_text_shell == NULL) { save_text_shell = create_form_popup("SaveText", save_text_plain_callback, save_text_html_callback, FORM_AS_IS); } if (filename != CN) XtVaSetValues(XtNameToWidget(save_text_shell, ObjDialog), XtNvalue, filename, NULL); popup_popup(save_text_shell, XtGrabExclusive); } #endif /*]*/ #if defined(_WIN32) /*[*/ /* * A Windows version of something like mkstemp(). Creates a temporary * file in $TEMP, returning its path and an open file descriptor. */ int win_mkstemp(char **path, ptype_t ptype) { char *s; int fd; s = getenv("TEMP"); if (s == NULL) s = getenv("TMP"); if (s == NULL) s = "C:"; *path = xs_buffer("%s\\x3h%u.%s", s, getpid(), (ptype == P_RTF)? "rtf": "txt"); fd = open(*path, O_CREAT | O_RDWR, S_IREAD | S_IWRITE); if (fd < 0) { Free(*path); *path = NULL; } return fd; } /* * Find WORDPAD.EXE. */ #define PROGRAMFILES "%ProgramFiles%" char * find_wordpad(void) { char data[1024]; DWORD dlen; char *slash; static char *wp = NULL; HKEY key; if (wp != NULL) return wp; /* Get the shell print command for RTF files. */ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Classes\\rtffile\\shell\\print\\command", 0, KEY_READ, &key) != ERROR_SUCCESS) { return NULL; } dlen = sizeof(data); if (RegQueryValueEx(key, NULL, NULL, NULL, (LPVOID)data, &dlen) != ERROR_SUCCESS) { RegCloseKey(key); return NULL; } RegCloseKey(key); if (data[0] == '"') { char data2[1024]; char *q2; /* The first token is quoted; that's the path. */ strcpy(data2, data + 1); q2 = strchr(data2, '"'); if (q2 == NULL) { return NULL; } *q2 = '\0'; strcpy(data, data2); } else if ((slash = strchr(data, '/')) != NULL) { /* Find the "/p". */ *slash = '\0'; if (*(slash - 1) == ' ') *(slash - 1) = '\0'; } if (!strncasecmp(data, PROGRAMFILES, strlen(PROGRAMFILES))) { char *pf = getenv("PROGRAMFILES"); /* Substitute %ProgramFiles%. */ if (pf == NULL) { return NULL; } wp = xs_buffer("%s\\%s", pf, data + strlen(PROGRAMFILES)); } else { wp = NewString(data); } if (GetShortPathName(wp, data, sizeof(data)) != 0) { Free(wp); wp = NewString(data); } return wp; } #endif /*]*/ /* Print or save the contents of the screen as text. */ void PrintText_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; char *filter = CN; Boolean secure = appres.secure; ptype_t ptype = P_TEXT; Boolean use_file = False; Boolean use_string = False; char *temp_name = NULL; unsigned opts = FPS_EVEN_IF_EMPTY; char *caption = NULL; action_debug(PrintText_action, event, params, num_params); /* * Pick off optional arguments: * file directs the output to a file instead of a command; * must be the last keyword * html generates HTML output instead of ASCII text (and implies * 'file') * rtf generates RTF output instead of ASCII text (and implies * 'file') * modi print modified fields in italics * caption "text" * Adds caption text above the screen * %T% is replaced by a timestamp * secure disables the pop-up dialog, if this action is invoked from * a keymap * command directs the output to a command (this is the default, but * allows the command to be one of the other keywords); * must be the last keyword * string returns the data as a string, allowed only from scripts */ for (i = 0; i < *num_params; i++) { if (!strcasecmp(params[i], "file")) { use_file = True; i++; break; } else if (!strcasecmp(params[i], "html")) { ptype = P_HTML; use_file = True; } else if (!strcasecmp(params[i], "rtf")) { ptype = P_RTF; use_file = True; } else if (!strcasecmp(params[i], "secure")) { secure = True; } else if (!strcasecmp(params[i], "command")) { if ((ptype != P_TEXT) || use_file) { popup_an_error("%s: contradictory options", action_name(PrintText_action)); return; } i++; break; } else if (!strcasecmp(params[i], "string")) { if (ia_cause != IA_SCRIPT) { popup_an_error("%s(string) can only be used " "from a script", action_name(PrintText_action)); return; } use_string = True; use_file = True; } else if (!strcasecmp(params[i], "modi")) { opts |= FPS_MODIFIED_ITALIC; } else if (!strcasecmp(params[i], "caption")) { if (i == *num_params - 1) { popup_an_error("%s: mising caption parameter", action_name(PrintText_action)); return; } caption = params[++i]; } else { break; } } switch (*num_params - i) { case 0: /* Use the default. */ if (!use_file) { #if !defined(_WIN32) /*[*/ filter = get_resource(ResPrintTextCommand); #else /*][*/ filter = get_resource(ResPrinterName); /* XXX */ #endif /*]*/ } break; case 1: if (use_string) { popup_an_error("%s: extra arguments or invalid option(s)", action_name(PrintText_action)); return; } filter = params[i]; break; default: popup_an_error("%s: extra arguments or invalid option(s)", action_name(PrintText_action)); return; } #if defined(_WIN32) /*[*/ /* On Windows, use rich text. */ if (!use_string && !use_file && ptype != P_HTML) ptype = P_RTF; #endif /*]*/ if (filter != CN && filter[0] == '@') { /* * Starting the PrintTextCommand resource value with '@' * suppresses the pop-up dialog, as does setting the 'secure' * resource. */ secure = True; filter++; } if (!use_file && (filter == CN || !*filter)) #if !defined(_WIN32) /*[*/ filter = "lpr"; #else /*][*/ filter = CN; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ if (secure || ia_cause == IA_COMMAND || ia_cause == IA_MACRO || ia_cause == IA_SCRIPT) #endif /*]*/ { FILE *f; int fd = -1; /* Invoked non-interactively. */ if (use_file) { if (use_string) { #if defined(_WIN32) /*[*/ fd = win_mkstemp(&temp_name, ptype); #else /*][*/ temp_name = NewString("/tmp/x3hXXXXXX"); fd = mkstemp(temp_name); #endif /*]*/ if (fd < 0) { popup_an_errno(errno, "mkstemp"); return; } f = fdopen(fd, "w+"); } else { if (filter == CN || !*filter) { popup_an_error("%s: missing filename", action_name(PrintText_action)); return; } f = fopen(filter, "a"); } } else { #if !defined(_WIN32) /*[*/ f = popen(filter, "w"); #else /*][*/ fd = win_mkstemp(&temp_name, ptype); if (fd < 0) { popup_an_errno(errno, "mkstemp"); return; } f = fdopen(fd, "w+"); #endif /*]*/ } if (f == NULL) { popup_an_errno(errno, "%s: %s", action_name(PrintText_action), filter); if (fd >= 0) { (void) close(fd); } if (temp_name) { unlink(temp_name); Free(temp_name); } return; } (void) fprint_screen(f, ptype, opts, caption); if (use_string) { char buf[8192]; rewind(f); while (fgets(buf, sizeof(buf), f) != NULL) action_output("%s", buf); } if (use_file) fclose(f); else { #if !defined(_WIN32) /*[*/ print_text_done(f, False); #else /*][*/ char *wp; fclose(f); wp = find_wordpad(); if (wp == NULL) { popup_an_error("%s: Can't find WORDPAD.EXE", action_name(PrintText_action)); } else { char *cmd; if (filter != CN) cmd = xs_buffer("start /wait /min %s " "/pt \"%s\" \"%s\"", wp, temp_name, filter); else cmd = xs_buffer("start /wait /min %s " "/p \"%s\"", wp, temp_name); system(cmd); Free(cmd); } #if !defined(S3270) /*[*/ if (appres.do_confirms) popup_an_info("Screen image printed.\n"); #endif /*]*/ #endif /*]*/ } if (temp_name) { unlink(temp_name); Free(temp_name); } return; } #if defined(X3270_DISPLAY) /*[*/ /* Invoked interactively -- pop up the confirmation dialog. */ if (use_file) { popup_save_text(filter); } else { popup_print_text(filter); } #endif /*]*/ } #if defined(X3270_DISPLAY) /*[*/ #if defined(X3270_MENUS) /*[*/ /* Callback for Print Text menu option. */ void print_text_option(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { char *filter = get_resource(ResPrintTextCommand); Boolean secure = appres.secure; ptype_t ptype = P_TEXT; if (print_text_command != NULL) filter = print_text_command; else { filter = get_resource(ResPrintTextCommand); if (filter == NULL || !*filter) filter = "lpr"; print_text_command = XtNewString(filter); } /* Decode the filter. */ if (filter != CN && *filter == '@') { secure = True; filter++; } if (filter == CN || !*filter) filter = "lpr"; if (secure) { FILE *f; /* Print the screen without confirming. */ if (!(f = popen(filter, "w"))) { popup_an_errno(errno, "popen(%s)", filter); return; } (void) fprint_screen(f, ptype, FPS_EVEN_IF_EMPTY, NULL); print_text_done(f, False); } else { /* Pop up a dialog to confirm or modify their choice. */ popup_print_text(filter); } } /* Callback for Save Text menu option. */ void save_text_option(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Pop up a dialog to confirm or modify their choice. */ popup_save_text(CN); } #endif /*]*/ /* Print Window popup */ /* * Printing the window bitmap is a rather convoluted process: * The PrintWindow action calls PrintWindow_action(), or a menu option calls * print_window_option(). * print_window_option() pops up the dialog. * The OK button on the dialog triggers print_window_callback. * print_window_callback pops down the dialog, then schedules a timeout * 1 second away. * When the timeout expires, it triggers snap_it(), which finally calls * xwd. * The timeout indirection is necessary because xwd prints the actual contents * of the window, including any pop-up dialog in front of it. We pop down the * dialog, but then it is up to the server and Xt to send us the appropriate * expose events to repaint our window. Hopefully, one second is enough to do * that. */ /* Termination procedure for window print. */ static void print_window_done(int status) { if (status) popup_an_error("Print program exited with status %d.", (status & 0xff00) >> 8); else if (appres.do_confirms) popup_an_info("Bitmap printed."); } /* Timeout callback for window print. */ static void snap_it(XtPointer closure _is_unused, XtIntervalId *id _is_unused) { if (!print_window_command) return; XSync(display, 0); print_window_done(system(print_window_command)); } /* Callback for "OK" button on print window popup. */ static void print_window_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { print_window_command = XawDialogGetValueString((Widget)client_data); XtPopdown(print_window_shell); if (print_window_command) (void) XtAppAddTimeOut(appcontext, 1000, snap_it, 0); } /* Print the contents of the screen as a bitmap. */ void PrintWindow_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { char *filter = get_resource(ResPrintWindowCommand); char *fb = XtMalloc(strlen(filter) + 16); char *xfb = fb; Boolean secure = appres.secure; action_debug(PrintWindow_action, event, params, num_params); if (*num_params > 0) filter = params[0]; if (*num_params > 1) popup_an_error("%s: extra arguments ignored", action_name(PrintWindow_action)); if (filter == CN) { popup_an_error("%s: no %s defined", action_name(PrintWindow_action), ResPrintWindowCommand); return; } (void) sprintf(fb, filter, XtWindow(toplevel)); if (fb[0] == '@') { secure = True; xfb = fb + 1; } if (secure) { print_window_done(system(xfb)); Free(fb); return; } if (print_window_shell == NULL) print_window_shell = create_form_popup("printWindow", print_window_callback, (XtCallbackProc)NULL, FORM_AS_IS); XtVaSetValues(XtNameToWidget(print_window_shell, ObjDialog), XtNvalue, fb, NULL); popup_popup(print_window_shell, XtGrabExclusive); } #if defined(X3270_MENUS) /*[*/ /* Callback for menu Print Window option. */ void print_window_option(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { Cardinal zero = 0; PrintWindow_action(w, (XEvent *)NULL, (String *)NULL, &zero); } #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/idlec.h0000644000175000017500000000425711254565704015355 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * idlec.h * Global declarations for idle.c. */ enum idle_enum { IDLE_DISABLED = 0, IDLE_SESSION = 1, IDLE_PERM = 2 }; #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ extern void cancel_idle_timer(void); extern void idle_init(void); extern void reset_idle_timer(void); extern char *get_idle_command(); extern char *get_idle_timeout(); extern Boolean idle_changed; extern char *idle_command; extern char *idle_timeout_string; extern enum idle_enum idle_user_enabled; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ extern void popup_idle(void); #endif /*]*/ #else /*][*/ #define cancel_idle_timer() #define idle_init() #define reset_idle_timer() #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/ead3270.c0000644000175000017500000000460611254565671015336 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * ead3270.c * A Windows console 3270 Terminal Emulator * Application Data directory explorer. */ #include #include #include #include "windirsc.h" int main(int argc, char *argv[]) { char *appdata = NULL; int sl; char short_ad[MAX_PATH]; char cmd[7 + MAX_PATH]; /* Get the application data directory. */ if (get_dirs(NULL, "wc3270", NULL, NULL, &appdata, NULL) < 0) { fprintf(stderr, "get_dirs failed\n"); return 1; } sl = strlen(appdata); if (sl > 1 && appdata[sl - 1] == '\\') appdata[sl - 1] = '\0'; /* Convert it to a short name. */ if (GetShortPathName(appdata, short_ad, sizeof(short_ad)) == 0) { fprintf(stderr, "GetShortPathName(\"%s\") failed, win32 error %ld\n", appdata, GetLastError()); return 1; } /* Run it. */ sprintf(cmd, "start %s", short_ad); system(cmd); return 0; } ibm-3270-3.3.10ga4/wc3270/utf8c.h0000644000175000017500000000344711254565704015326 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utf8c.h * 3270 Terminal Emulator * UTF-8 conversions */ extern char *locale_codeset; extern Boolean is_utf8; extern void set_codeset(char *codeset_name); extern int unicode_to_utf8(ucs4_t ucs4, char *utf8); extern int utf8_to_unicode(const char *utf8, int len, ucs4_t *ucs4); ibm-3270-3.3.10ga4/wc3270/mkfb.c0000644000175000017500000002706611254565704015212 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * mkfb.c * Utility to create RDB string definitions from a simple #ifdef'd .ad * file */ #include "conf.h" #include #include #include #include #define BUFSZ 1024 /* input line buffer size */ #define ARRSZ 8192 /* output array size */ #define SSSZ 10 /* maximum nested ifdef */ unsigned aix[ARRSZ]; /* fallback array indices */ unsigned xlno[ARRSZ]; /* fallback array line numbers */ unsigned n_fallbacks = 0; /* number of fallback entries */ /* ifdef state stack */ #define MODE_COLOR 0x00000001 #define MODE_FT 0x00000002 #define MODE_TRACE 0x00000004 #define MODE_MENUS 0x00000008 #define MODE_ANSI 0x00000010 #define MODE_KEYPAD 0x00000020 #define MODE_APL 0x00000040 #define MODE_PRINTER 0x00000080 #define MODE_STANDALONE 0x00000100 #define MODE_SCRIPT 0x00000200 #define MODE_DBCS 0x00000400 #define MODE__WIN32 0x00000800 #define MODEMASK 0x00000fff struct { unsigned long ifdefs; unsigned long ifndefs; unsigned lno; } ss[SSSZ]; unsigned ssp = 0; struct { const char *name; unsigned long mask; } parts[] = { { "COLOR", MODE_COLOR }, { "X3270_FT", MODE_FT }, { "X3270_TRACE", MODE_TRACE }, { "X3270_MENUS", MODE_MENUS }, { "X3270_ANSI", MODE_ANSI }, { "X3270_KEYPAD", MODE_KEYPAD }, { "X3270_APL", MODE_APL }, { "X3270_PRINTER", MODE_PRINTER }, { "STANDALONE", MODE_STANDALONE }, { "X3270_SCRIPT", MODE_SCRIPT }, { "X3270_DBCS", MODE_DBCS }, { "_WIN32", MODE__WIN32 } }; #define NPARTS (sizeof(parts)/sizeof(parts[0])) unsigned long is_defined = MODE_COLOR | #if defined(X3270_FT) MODE_FT #else 0 #endif | #if defined(X3270_TRACE) MODE_TRACE #else 0 #endif | #if defined(X3270_MENUS) MODE_MENUS #else 0 #endif | #if defined(X3270_ANSI) MODE_ANSI #else 0 #endif | #if defined(X3270_KEYPAD) MODE_KEYPAD #else 0 #endif | #if defined(X3270_APL) MODE_APL #else 0 #endif | #if defined(X3270_PRINTER) MODE_PRINTER #else 0 #endif | #if defined(X3270_SCRIPT) MODE_SCRIPT #else 0 #endif | #if defined(X3270_DBCS) MODE_DBCS #else 0 #endif | #if defined(_WIN32) MODE__WIN32 #else 0 #endif ; unsigned long is_undefined; char *me; void emit(FILE *t, int ix, char c); void usage(void) { fprintf(stderr, "usage: %s [infile [outfile]]\n", me); exit(1); } int main(int argc, char *argv[]) { char buf[BUFSZ]; int lno = 0; int cc = 0; unsigned i; int continued = 0; const char *filename = "standard input"; FILE *u, *t, *tc = NULL, *tm = NULL, *o; int cmode = 0; unsigned long ifdefs; unsigned long ifndefs; int last_continue = 0; /* Parse arguments. */ if ((me = strrchr(argv[0], '/')) != (char *)NULL) me++; else me = argv[0]; if (argc > 1 && !strcmp(argv[1], "-c")) { cmode = 1; is_defined |= MODE_STANDALONE; argc--; argv++; } switch (argc) { case 1: break; case 2: case 3: if (strcmp(argv[1], "-")) { if (freopen(argv[1], "r", stdin) == (FILE *)NULL) { perror(argv[1]); exit(1); } filename = argv[1]; } break; default: usage(); } is_undefined = MODE_COLOR | (~is_defined & MODEMASK); /* Do #ifdef, comment and whitespace processing first. */ u = tmpfile(); if (u == NULL) { perror("tmpfile"); exit(1); } while (fgets(buf, BUFSZ, stdin) != (char *)NULL) { char *s = buf; int sl; unsigned i; lno++; /* Skip leading white space. */ while (isspace(*s)) s++; if (cmode && (!strncmp(s, "x3270.", 6) || !strncmp(s, "x3270*", 6))) { s += 6; } /* Remove trailing white space. */ while ((sl = strlen(s)) && isspace(s[sl-1])) s[sl-1] = '\0'; /* Skip comments and empty lines. */ if ((!last_continue && *s == '!') || !*s) continue; /* Check for simple if[n]defs. */ if (*s == '#') { int ifnd = 1; if (!strncmp(s, "#ifdef ", 7) || !(ifnd = strncmp(s, "#ifndef ", 8))) { char *tk; if (ssp >= SSSZ) { fprintf(stderr, "%s, line %d: Stack overflow\n", filename, lno); exit(1); } ss[ssp].ifdefs = 0L; ss[ssp].ifndefs = 0L; ss[ssp].lno = lno; tk = s + 7 + !ifnd; for (i = 0; i < NPARTS; i++) { if (!strcmp(tk, parts[i].name)) { if (!ifnd) ss[ssp++].ifndefs = parts[i].mask; else ss[ssp++].ifdefs = parts[i].mask; break; } } if (i >= NPARTS) { fprintf(stderr, "%s, line %d: Unknown condition\n", filename, lno); exit(1); } continue; } else if (!strcmp(s, "#else")) { unsigned long tmp; if (!ssp) { fprintf(stderr, "%s, line %d: Missing #if[n]def\n", filename, lno); exit(1); } tmp = ss[ssp-1].ifdefs; ss[ssp-1].ifdefs = ss[ssp-1].ifndefs; ss[ssp-1].ifndefs = tmp; } else if (!strcmp(s, "#endif")) { if (!ssp) { fprintf(stderr, "%s, line %d: Missing #if[n]def\n", filename, lno); exit(1); } ssp--; } else { fprintf(stderr, "%s, line %d: Unrecognized # directive\n", filename, lno); exit(1); } continue; } /* Figure out if there's anything to emit. */ /* First, look for contradictions. */ ifdefs = 0; ifndefs = 0; for (i = 0; i < ssp; i++) { ifdefs |= ss[i].ifdefs; ifndefs |= ss[i].ifndefs; } if (ifdefs & ifndefs) { #ifdef DEBUG_IFDEFS fprintf(stderr, "contradiction, line %d\n", lno); #endif continue; } /* Then, apply the actual values. */ if (ifdefs && (ifdefs & is_defined) != ifdefs) { #ifdef DEBUG_IFDEFS fprintf(stderr, "ifdef failed, line %d\n", lno); #endif continue; } if (ifndefs && (ifndefs & is_undefined) != ifndefs) { #ifdef DEBUG_IFDEFS fprintf(stderr, "ifndef failed, line %d\n", lno); #endif continue; } /* Emit the text. */ fprintf(u, "%lx %lx %d\n%s\n", ifdefs, ifndefs, lno, s); last_continue = strlen(s) > 0 && s[strlen(s) - 1] == '\\'; } if (ssp) { fprintf(stderr, "%d missing #endif(s) in %s\n", ssp, filename); fprintf(stderr, "last #ifdef was at line %u\n", ss[ssp-1].lno); exit(1); } /* Re-scan, emitting code this time. */ rewind(u); t = tmpfile(); if (t == NULL) { perror("tmpfile"); exit(1); } if (!cmode) { tc = tmpfile(); if (tc == NULL) { perror("tmpfile"); exit(1); } tm = tmpfile(); if (tm == NULL) { perror("tmpfile"); exit(1); } } /* Emit the initial boilerplate. */ fprintf(t, "/* This file was created automatically from %s by mkfb. */\n\n", filename); if (cmode) { fprintf(t, "#include \"globals.h\"\n"); fprintf(t, "static unsigned char fsd[] = {\n"); } else { fprintf(t, "unsigned char common_fallbacks[] = {\n"); fprintf(tc, "unsigned char color_fallbacks[] = {\n"); fprintf(tm, "unsigned char mono_fallbacks[] = {\n"); } /* Scan the file, emitting the fsd array and creating the indices. */ while (fscanf(u, "%lx %lx %d\n", &ifdefs, &ifndefs, &lno) == 3) { char *s = buf; char c; int white; FILE *t_this = t; int ix = 0; if (fgets(buf, BUFSZ, u) == NULL) break; if (strlen(buf) > 0 && buf[strlen(buf)-1] == '\n') buf[strlen(buf)-1] = '\0'; #if 0 fprintf(stderr, "%lx %lx %d %s\n", ifdefs, ifndefs, lno, buf); #endif /* Add array offsets. */ if (cmode) { /* Ignore color. Accumulate offsets into an array. */ if (n_fallbacks >= ARRSZ) { fprintf(stderr, "%s, line %d: Buffer overflow\n", filename, lno); exit(1); } aix[n_fallbacks] = cc; xlno[n_fallbacks++] = lno; } else { /* Use color to decide which file to write into. */ if (!(ifdefs & MODE_COLOR) && !(ifndefs & MODE_COLOR)) { /* Both. */ t_this = t; ix = 0; } else if (ifdefs & MODE_COLOR) { /* Just color. */ t_this = tc; ix = 1; } else { /* Just mono. */ t_this = tm; ix = 2; } } continued = 0; white = 0; while ((c = *s++) != '\0') { if (c == ' ' || c == '\t') white++; else if (white) { emit(t_this, ix, ' '); cc++; white = 0; } switch (c) { case ' ': case '\t': break; case '#': if (!cmode) { emit(t_this, ix, '\\'); emit(t_this, ix, '#'); cc += 2; } else { emit(t_this, ix, c); cc++; } break; case '\\': if (*s == '\0') { continued = 1; break; } else if (cmode) { switch ((c = *s++)) { case 't': c = '\t'; break; case 'n': c = '\n'; break; default: break; } } /* else fall through */ default: emit(t_this, ix, c); cc++; break; } } if (white) { emit(t_this, ix, ' '); cc++; white = 0; } if (!continued) { if (cmode) emit(t_this, ix, 0); else emit(t_this, ix, '\n'); cc++; } } fclose(u); if (cmode) fprintf(t, "};\n\n"); else { emit(t, 0, 0); fprintf(t, "};\n\n"); emit(tc, 0, 0); fprintf(tc, "};\n\n"); emit(tm, 0, 0); fprintf(tm, "};\n\n"); } /* Open the output file. */ if (argc == 3) { o = fopen(argv[2], "w"); if (o == NULL) { perror(argv[2]); exit(1); } } else o = stdout; /* Copy tmp to output. */ rewind(t); if (!cmode) { rewind(tc); rewind(tm); } while (fgets(buf, sizeof(buf), t) != NULL) { fprintf(o, "%s", buf); } if (!cmode) { while (fgets(buf, sizeof(buf), tc) != NULL) { fprintf(o, "%s", buf); } while (fgets(buf, sizeof(buf), tm) != NULL) { fprintf(o, "%s", buf); } } if (cmode) { /* Emit the fallback array. */ fprintf(o, "String fallbacks[%u] = {\n", n_fallbacks + 1); for (i = 0; i < n_fallbacks; i++) { fprintf(o, "\t(String)&fsd[%u], /* line %u */\n", aix[i], xlno[i]); } fprintf(o, "\t(String)NULL\n};\n\n"); /* Emit some test code. */ fprintf(o, "%s", "#if defined(DEBUG) /*[*/\n\ #include \n\ int\n\ main(int argc, char *argv[])\n\ {\n\ int i;\n\ \n\ for (i = 0; fallbacks[i] != NULL; i++)\n\ printf(\"%d: %s\\n\", i, fallbacks[i]);\n\ return 0;\n\ }\n"); fprintf(o, "#endif /*]*/\n\n"); } if (o != stdout) fclose(o); fclose(t); if (!cmode) { fclose(tc); fclose(tm); } return 0; } static int n_out[3] = { 0, 0, 0 }; void emit(FILE *t, int ix, char c) { if (n_out[ix] >= 19) { fprintf(t, "\n"); n_out[ix] = 0; } fprintf(t, "%3d,", (unsigned char)c); n_out[ix]++; } ibm-3270-3.3.10ga4/wc3270/seec.h0000644000175000017500000000430011254565704015201 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * seec.h * Declarations for see.c * */ #if defined(X3270_TRACE) /*[*/ extern const char *see_aid(unsigned char code); extern const char *see_attr(unsigned char fa); extern const char *see_color(unsigned char setting); extern const char *see_ebc(unsigned char ch); extern const char *see_efa(unsigned char efa, unsigned char value); extern const char *see_efa_only(unsigned char efa); extern const char *see_qcode(unsigned char id); extern const char *unknown(unsigned char value); #else /*][*/ #define see_aid 0 && #define see_attr 0 && #define see_color 0 && #define see_ebc 0 && #define see_efa 0 && #define see_efa_only 0 && #define see_qcode 0 && #define unknown 0 && #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/shortcut.c0000644000175000017500000004070411254565671016143 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * shortcut.c * A Windows console-based 3270 Terminal Emulator * Shell link creation */ #include #include #include "shlobj_missing.h" #include #include "shortcutc.h" #include "winversc.h" // CreateLink - uses the shell's IShellLink and IPersistFile interfaces // to create and store a shortcut to the specified object. // Returns the result of calling the member functions of the interfaces. // lpszPathObj - address of a buffer containing the path of the object // lpszPathLink - address of a buffer containing the path where the // shell link is to be stored // lpszDesc - address of a buffer containing the description of the // shell link HRESULT CreateLink(LPCSTR lpszPathObj, LPSTR lpszPathLink, LPSTR lpszDesc, LPSTR lpszArgs, LPSTR lpszDir, int rows, int cols, wchar_t *font, int pointsize, int codepage) { HRESULT hres; int initialized; IShellLink* psl = NULL; IShellLinkDataList* psldl = NULL; IPersistFile* ppf = NULL; NT_CONSOLE_PROPS p; WORD wsz[MAX_PATH]; hres = CoInitialize(NULL); if (!SUCCEEDED(hres)) { fprintf(stderr, "CoInitialize failed\n"); goto out; } initialized = 1; // Get a pointer to the IShellLink interface. hres = CoCreateInstance(&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, &IID_IShellLink, (LPVOID *)&psl); if (!SUCCEEDED(hres)) { fprintf(stderr, "CoCreateInstance failed\n"); goto out; } // Set the path to the shortcut target, and add the description. psl->lpVtbl->SetPath(psl, lpszPathObj); if (lpszDesc) psl->lpVtbl->SetDescription(psl, lpszDesc); if (lpszArgs) psl->lpVtbl->SetArguments(psl, lpszArgs); if (lpszDir) psl->lpVtbl->SetWorkingDirectory(psl, lpszDir); if (is_nt) { hres = psl->lpVtbl->QueryInterface(psl, &IID_IShellLinkDataList, (void **)&psldl); if (!SUCCEEDED(hres)) { fprintf(stderr, "QueryInterface(DataList) failed\n"); goto out; } memset(&p, '\0', sizeof(NT_CONSOLE_PROPS)); #if defined(_MSC_VER) /*[*/ p.cbSize = sizeof(p); p.dwSignature = NT_CONSOLE_PROPS_SIG; #else /*][*/ p.dbh.cbSize = sizeof(p); p.dbh.dwSignature = NT_CONSOLE_PROPS_SIG; #endif /*]*/ p.wFillAttribute = 7; /* ? */ p.wPopupFillAttribute = 245; /* ? */ p.dwScreenBufferSize.X = cols; p.dwScreenBufferSize.Y = 0x012c; p.dwWindowSize.X = cols; p.dwWindowSize.Y = rows; p.dwWindowOrigin.X = 0; p.dwWindowOrigin.Y = 0; p.nFont = 0; p.nInputBufferSize = 0; p.dwFontSize.X = 0; p.dwFontSize.Y = pointsize? pointsize: 12; p.uFontFamily = 54; /* ? */ p.uFontWeight = 400; /* ? */ wcscpy(p.FaceName, font); p.uCursorSize = /*0x19*/100; p.bFullScreen = 0; p.bQuickEdit = 0; p.bInsertMode = 1; p.bAutoPosition = 1; p.uHistoryBufferSize = 0x32; p.uNumberOfHistoryBuffers = 4; p.bHistoryNoDup = 0; p.ColorTable[0] = 0; p.ColorTable[1] = 0x00800000; p.ColorTable[2] = 0x00008000; p.ColorTable[3] = 0x00808000; p.ColorTable[4] = 0x00000080; p.ColorTable[5] = 0x00800080; p.ColorTable[6] = 0x00008080; p.ColorTable[7] = 0x00c0c0c0; p.ColorTable[8] = 0x00808080; p.ColorTable[9] = 0x00ff8000; p.ColorTable[10] = 0x0000ff00; p.ColorTable[11] = 0x00ffff00; p.ColorTable[12] = 0x000a0adc; p.ColorTable[13] = 0x00ff00ff; p.ColorTable[14] = 0x0000ffff; p.ColorTable[15] = 0x00ffffff; hres = psldl->lpVtbl->AddDataBlock(psldl, &p); if (!SUCCEEDED(hres)) { fprintf(stderr, "AddDataBlock(1) failed\n"); goto out; } if (codepage) { NT_FE_CONSOLE_PROPS pfe; memset(&pfe, '\0', sizeof(pfe)); #if defined(_MSC_VER) /*[*/ pfe.cbSize = sizeof(pfe); pfe.dwSignature = NT_FE_CONSOLE_PROPS_SIG; #else /*][*/ pfe.dbh.cbSize = sizeof(pfe); pfe.dbh.dwSignature = NT_FE_CONSOLE_PROPS_SIG; #endif /*]*/ pfe.uCodePage = codepage; hres = psldl->lpVtbl->AddDataBlock(psldl, &pfe); if (!SUCCEEDED(hres)) { fprintf(stderr, "AddDataBlock(2) failed\n"); goto out; } } } // Query IShellLink for the IPersistFile interface for saving // the shortcut in persistent storage. hres = psl->lpVtbl->QueryInterface(psl, &IID_IPersistFile, (void **)&ppf); if (!SUCCEEDED(hres)) { fprintf(stderr, "QueryInterface(Persist) failed\n"); goto out; } // Ensure that the string is ANSI. MultiByteToWideChar(CP_ACP, 0, lpszPathLink, -1, wsz, MAX_PATH); // Save the link by calling IPersistFile::Save. hres = ppf->lpVtbl->Save(ppf, wsz, TRUE); if (!SUCCEEDED(hres)) { fprintf(stderr, "Save failed\n"); goto out; } out: if (ppf != NULL) ppf->lpVtbl->Release(ppf); if (psldl != NULL) psldl->lpVtbl->Release(psldl); if (psl != NULL) psl->lpVtbl->Release(psl); if (initialized) CoUninitialize(); return hres; } /* Data for Piffle(). */ static unsigned char canned_pif[] = { 0x00, 0x78, 0x55, 0x56, 0x56, 0x4d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x80, 0x02, 0x00, 0x00, 0x43, 0x3a, 0x5c, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x41, 0x7e, 0x31, 0x5c, 0x57, 0x43, 0x33, 0x32, 0x37, 0x30, 0x5c, 0x77, 0x63, 0x33, 0x32, 0x37, 0x30, 0x2e, 0x65, 0x78, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x43, 0x3a, 0x5c, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x41, 0x7e, 0x31, 0x5c, 0x57, 0x43, 0x33, 0x32, 0x37, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x76, 0x76, 0x6d, 0x2e, 0x77, 0x63, 0x33, 0x32, 0x37, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xff, 0x19, 0x50, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x49, 0x43, 0x52, 0x4f, 0x53, 0x4f, 0x46, 0x54, 0x20, 0x50, 0x49, 0x46, 0x45, 0x58, 0x00, 0x87, 0x01, 0x00, 0x00, 0x71, 0x01, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x53, 0x20, 0x33, 0x38, 0x36, 0x20, 0x33, 0x2e, 0x30, 0x00, 0x05, 0x02, 0x9d, 0x01, 0x68, 0x00, 0x80, 0x02, 0x00, 0x00, 0x64, 0x00, 0x32, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x02, 0x10, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x76, 0x76, 0x6d, 0x2e, 0x77, 0x63, 0x33, 0x32, 0x37, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x53, 0x20, 0x56, 0x4d, 0x4d, 0x20, 0x34, 0x2e, 0x30, 0x00, 0xff, 0xff, 0x1b, 0x02, 0xac, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x3a, 0x5c, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5c, 0x77, 0x63, 0x33, 0x32, 0x37, 0x30, 0x5c, 0x77, 0x63, 0x33, 0x32, 0x37, 0x30, 0x2e, 0x65, 0x78, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x19, 0x00, 0x03, 0x00, 0xc8, 0x00, 0xe8, 0x03, 0x02, 0x00, 0x0a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x75, 0x63, 0x69, 0x64, 0x61, 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x50, 0x00, 0x32, 0x00, 0xe0, 0x01, 0xf4, 0x01, 0xec, 0x01, 0x2f, 0x02, 0x16, 0x00, 0x00, 0x00, 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x58, 0x00, 0x58, 0x00, 0x44, 0x02, 0x87, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 }; typedef struct { unsigned char data[2]; } ua16_t; typedef struct { unsigned char data[4]; } ua32_t; typedef struct { char section_name[16]; /* NULL terminated */ ua16_t next_off; ua16_t data_off; ua16_t data_len; } pifsh_t; typedef struct { struct basic { unsigned char unused1; unsigned char checksum; char window_title[30]; /* blank padded */ /*+*/ ua16_t max_mem; ua16_t min_mem; char program_pathname[63]; /* NULL terminated */ /*+*/ ua16_t flags1; char working_dir[64]; /* NULL terminated */ /*+*/ char parameters[64]; /* NULL terminated */ /*+*/ unsigned char video_mode; unsigned char video_pages; unsigned char int_first; unsigned char int_last; unsigned char screen_height; unsigned char screen_width; unsigned char pos_x; unsigned char pos_y; ua16_t video_page; unsigned char unused2[128]; ua16_t flags2; } basic; pifsh_t pifex_header; pifsh_t win386_header; struct win386 { ua16_t max_mem; ua16_t req_mem; ua16_t active_pri; ua16_t bg_pri; ua16_t max_ems; ua16_t req_emx; ua16_t max_xms; ua16_t req_xms; ua32_t flags1; ua16_t flags2; ua16_t unknown1; ua16_t shortcut_scan; ua16_t shortcut_mod; ua16_t use_shortcut; ua16_t shortcut_ext; ua16_t unknown2; ua16_t unknown3; ua32_t unknown4; char parameters[64]; /* NULL terminated */ /*+*/ } win386; pifsh_t vmm_header; struct vmm { unsigned char unknown1[88]; char icon_file[80]; /* NULL terminated */ /*+*/ ua16_t icon_number; /*+*/ ua16_t flags1; unsigned char unknown2[10]; ua16_t pri; ua16_t flags2; unsigned char unknown3[8]; ua16_t text_lines; ua16_t flags3; unsigned char unknown4[16]; ua16_t flags4; unsigned char unknown5[6]; ua16_t flags5; ua16_t unknown6; ua16_t raster_horiz; ua16_t raster_vert; ua16_t font_horiz; ua16_t font_vert; char raster_font[32]; /* NULL terminated */ char tt_font[32]; /* NULL terminated */ ua16_t unknown7; ua16_t flags6; ua16_t flags7; ua16_t screen_width; ua16_t screen_height; /* 25, 43 or 50 */ /*+*/ ua16_t client_width; ua16_t client_height; ua16_t window_width; ua16_t window_height; ua16_t unknown8; ua16_t flags8; ua16_t flags9; ua16_t unknown9; ua16_t unknown10; ua16_t right_max; ua16_t bottom_max; ua16_t win_left; ua16_t win_top; ua16_t right_normal; ua16_t bottom_normal; ua32_t unknown11; char batchfile[80]; /* NULL terminated */ ua16_t env_mem; ua16_t dpmi_mem; ua16_t unknown12; } vmm; } w98pif_t; /* * The Windows 98 version of CreateLink. * Creates a .PIF file instead, using secret undocumented recipes. */ HRESULT Piffle(char *title, LPCSTR lpszPathObj, LPSTR lpszPathLink, LPSTR lpszDesc, LPSTR lpszArgs, LPSTR lpszDir, int rows, int cols, char *font) { w98pif_t pif; int sl; FILE *f; unsigned short screen_height; LPSTR args = lpszArgs? lpszArgs: ""; /* Start with something that is mostly right. */ memcpy(&pif, canned_pif, sizeof(w98pif_t)); /* Fill in the fields of interest. */ if (rows > 43) screen_height = 50; else if (rows > 25) screen_height = 43; else screen_height = 25; strncpy(title, pif.basic.window_title, sizeof(pif.basic.window_title)); pif.basic.screen_height = screen_height; /* XXX? */ sl = strlen(title); if (sl < sizeof(pif.basic.window_title)) memset(pif.basic.window_title + sl, ' ', sizeof(pif.basic.window_title - sl)); strncpy(pif.basic.program_pathname, lpszPathObj, sizeof(pif.basic.program_pathname)); strncpy(pif.basic.working_dir, lpszDir, sizeof(pif.basic.working_dir)); strncpy(pif.basic.parameters, args, sizeof(pif.basic.parameters)); strncpy(pif.win386.parameters, args, sizeof(pif.win386.parameters)); strncpy(pif.vmm.icon_file, lpszPathObj, sizeof(pif.vmm.icon_file)); pif.vmm.text_lines.data[0] = screen_height & 0x00ff; pif.vmm.text_lines.data[1] = (screen_height & 0xff00) >> 8; pif.vmm.screen_height.data[0] = screen_height & 0x00ff; pif.vmm.screen_height.data[1] = (screen_height & 0xff00) >> 8; pif.vmm.client_width.data[0] = 0; pif.vmm.client_width.data[1] = 0; pif.vmm.client_height.data[0] = 0; pif.vmm.client_height.data[1] = 0; pif.vmm.window_width.data[0] = 0; pif.vmm.window_width.data[1] = 0; pif.vmm.window_height.data[0] = 0; pif.vmm.window_height.data[1] = 0; strcpy(pif.vmm.tt_font, font); /* Create the file. */ f = fopen(lpszPathLink, "wb"); if (f == NULL) return S_FALSE; if (fwrite(&pif, sizeof(pif), 1, f) == 0) { fclose(f); return S_FALSE; } fclose(f); return S_OK; } ibm-3270-3.3.10ga4/wc3270/mkshort.c0000644000175000017500000000627511254565671015764 0ustar bastianbastian/* * Copyright (c) 2006-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * mkshort.c * A Windows console-based 3270 Terminal Emulator * Quick standalone utility to Create a shortcut to * wc3270.exe on the desktop with the right properties. */ #include "globals.h" #include #include #include #include "shlobj_missing.h" /* missing IShellLinkDataist stuff from MinGW */ #include "shortcutc.h" #include "winversc.h" int main(int argc, char *argv[]) { char exepath[MAX_PATH]; char linkpath[MAX_PATH]; HRESULT hres; char *install_dir; char *exe; char *linkname; (void) get_version_info(); /* Pull in the parameter. */ if (argc != 4) { fprintf(stderr, "usage: %s install-dir exe linkname\n", argv[0]); return 1; } install_dir = argv[1]; exe = argv[2]; linkname = argv[3]; sprintf(exepath, "%s\\%s", install_dir, exe); /* Figure out the link path. */ if (is_nt) { char *userprof; userprof = getenv("USERPROFILE"); if (userprof == NULL) { fprintf(stderr, "Sorry, I can't figure out where your user " "profile is.\n"); return 1; } sprintf(linkpath, "%s\\Desktop\\%s.lnk", userprof, linkname); } else { char *windir; windir = getenv("WinDir"); if (windir == NULL) { printf("Sorry, I can't figure out where %%WinDir%% " "is.\n"); return -1; } sprintf(linkpath, "%s\\Desktop\\%s.pif", windir, linkname); } /* Create the link. */ if (is_nt) hres = CreateLink( exepath, linkpath, NULL, NULL, install_dir, 44, 80, L"Lucida Console", 0, 0); else hres = Piffle( linkname, exepath, linkpath, "", "", install_dir, 44, 80, "Lucida Console"); if (hres) { fprintf(stderr, "Link creation failed.\n"); } return hres; } ibm-3270-3.3.10ga4/wc3270/unicode_dbcs.c0000644000175000017500000711141411254565704016712 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * unicode.c * A Windows console-based 3270 Terminal Emulator * DBCS EBCDIC/Unicode translation functions */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include "3270ds.h" #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" /* * DBCS EBCDIC-to-Unicode translation tables. */ #if defined(X3270_DBCS) /*[*/ typedef struct { char *name; const char *codepage; const char *display_charset; const char *u2ebc[512]; /* Unicode to EBCDIC vectors */ const char *ebc2u[512]; /* EBCDIC to Unicode vectors */ } uni16_t; static uni16_t uni16[] = { { "cp930", "0x080b012c" /* 2059, 300 */, "jisx0208.1983-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-300_P110-1997 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x6a\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x43\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x00\x00\x44\x4a\x00\x00\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x43\x77\x43\x78\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x73\x00\x00\x44\xee\x44\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6e\x00\x00\x43\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x43\x70\x00\x00\x43\x4e\x43\x71\x00\x00\x00\x00\x00\x00\x43\x4f\x43\x64\x00\x00\x00\x00\x43\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5f\x00\x00\x00\x00\x43\x61\x44\x4d\x00\x00\x43\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6c\x43\x6d\x43\x6b\x43\x6a\x43\x62\x43\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x43\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x43\x5d\x43\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x43\x68\x43\x69\x00\x00\x00\x00\x43\x66\x43\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ "\x43\x7c\x43\xb7\x43\x7d\x43\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7e\x00\x00\x00\x00\x43\xb9\x43\x7f\x00\x00\x00\x00\x43\xe1\x43\xb1\x00\x00\x00\x00\x43\xe3\x43\xb0\x00\x00\x00\x00\x43\xe2\x43\xb2\x43\xee\x00\x00\x00\x00\x43\xe9\x00\x00\x00\x00\x43\xe4\x43\xb4\x43\xf0\x00\x00\x00\x00\x43\xeb\x00\x00\x00\x00\x43\xe6\x43\xb3\x00\x00\x00\x00\x43\xea\x43\xef\x00\x00\x00\x00\x43\xe5\x43\xb5\x00\x00\x00\x00\x43\xec\x43\xf1\x00\x00\x00\x00\x43\xe7\x43\xb6\x00\x00\x00\x00\x43\xed\x00\x00\x00\x00\x43\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x76\x00\x00\x00\x00\x43\x75\x00\x00\x43\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x45\x41\x4b\xce\x00\x00\x45\x47\x00\x00\x00\x00\x00\x00\x45\x4d\x49\xd3\x45\x43\x45\x5e\x45\x5f\x00\x00\x46\xaf\x47\x89\x00\x00\x56\x42\x4d\xec\x00\x00\x00\x00\x4f\x97\x56\x43\x46\x9b\x57\x75\x4d\x56\x50\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x62\x00\x00\x00\x00\x48\x83\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7c\x00\x00\x56\x44\x00\x00\x56\x45\x00\x00\x00\x00\x45\x5c\x00\x00\x00\x00\x00\x00\x56\x46\x4c\xb8\x00\x00\x00\x00\x00\x00\x56\x47\x00\x00\x46\x7a\x48\xab\x00\x00\x47\x62\x54\xc8\x00\x00\x00\x00\x56\x48\x00\x00\x00\x00\x56\x49\x4b\x9f\x00\x00\x45\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xd8\x00\x00\x55\xa9\x54\xa5\x4f\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd0\x56\x4a\x49\x47\x56\x4b\x4b\xbd\x00\x00\x00\x00\x00\x00\x45\x49\x4e\xb5\x47\x49\x00\x00\x00\x00\x56\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbf\x00\x00\x4a\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x70\x00\x00", /* 4e80 */ "\x47\xc0\x00\x00\x56\x4d\x00\x00\x00\x00\x56\x4e\x4b\xb1\x00\x00\x47\xc2\x48\x96\x56\x4f\x45\xce\x45\x42\x00\x00\x56\x50\x00\x00\x00\x00\x49\x9d\x4b\x74\x00\x00\x45\x45\x45\x6d\x00\x00\x00\x00\x4b\xe4\x50\xe8\x00\x00\x55\xdc\x48\x67\x00\x00\x56\x52\x51\x67\x56\x53\x4c\xce\x56\x54\x00\x00\x47\x8e\x4f\x7f\x4f\xfa\x00\x00\x4b\xac\x00\x00\x00\x00\x4b\x73\x45\x75\x4e\x52\x49\x9c\x00\x00\x56\x55\x00\x00\x00\x00\x56\x56\x00\x00\x00\x00\x56\x57\x00\x00\x00\x00\x00\x00\x45\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd9\x47\x76\x56\x5c\x00\x00\x56\x5a\x00\x00\x56\x5b\x50\x85\x00\x00\x00\x00\x45\xe0\x48\x4b\x00\x00\x56\x59\x56\x58\x4b\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x54\x65\x48\xb5\x47\x55\x56\x5e\x47\x5d\x48\xa2\x00\x00\x00\x00\x00\x00\x44\x5c\x56\x5f\x56\x61\x00\x00\x56\x5d\x00\x00\x45\x9a\x49\xc3\x46\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x60\x4d\x71\x00\x00\x4d\xed\x00\x00\x48\x69\x00\x00\x00\x00\x00\x00\x48\xb2\x53\x41\x00\x00\x00\x00\x00\x00\x4a\x55\x56\x62\x00\x00\x00\x00\x00\x00", /* 4f00 */ "\x56\x65\x47\xd2\x00\x00\x56\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x63\x45\xb2\x00\x00\x00\x00\x4d\x99\x4e\x9f\x4a\x83\x50\xf6\x4a\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xbd\x00\x00\x56\x64\x48\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xa6\x56\x68\x00\x00\x00\x00\x00\x00\x49\xc9\x00\x00\x54\x4a\x00\x00\x46\xf4\x56\x6a\x50\x8a\x00\x00\x4b\xbc\x54\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xdf\x00\x00\x00\x00\x4e\xfe\x56\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xc8\x48\xa4\x46\xe0\x45\x76\x4c\xe6\x00\x00\x46\x96\x00\x00\x47\x70\x56\x6e\x56\x6b\x00\x00\x49\xc1\x56\x67\x56\x6f\x45\x94\x56\x69\x56\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7c\x56\x7a\x00\x00\x00\x00\x48\x76\x00\x00\x4b\x94\x51\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x56\x77\x54\x62\x00\x00\x00\x00\x48\xb6", /* 4f80 */ "\x00\x00\x00\x00\x00\x00\x4f\x98\x00\x00\x00\x00\x56\x7d\x00\x00\x56\x72\x00\x00\x56\x71\x4a\x46\x00\x00\x4f\xc2\x00\x00\x56\x73\x00\x00\x4f\x8d\x56\x70\x00\x00\x56\x7b\x00\x00\x56\x7e\x00\x00\x56\x76\x00\x00\x56\x74\x48\xbc\x00\x00\x4a\x9e\x00\x00\x00\x00\x52\xec\x47\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x78\x00\x00\x56\x75\x53\xb9\x53\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8c\x55\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4c\x00\x00\x00\x00\x48\x51\x4a\x6a\x54\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x52\x94\x46\x60\x00\x00\x00\x00\x56\x86\x56\x80\x00\x00\x56\x85\x56\x83\x00\x00\x00\x00\x56\x7f\x00\x00\x00\x00\x4e\x97\x56\x81\x00\x00\x56\x84\x56\x82\x00\x00\x45\xaa\x00\x00\x53\xc4\x52\xec\x45\xa5\x00\x00\x4b\x4a\x56\x87\x56\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xde\x56\x96\x00\x00\x00\x00\x00\x00\x4c\xe1\x00\x00\x4d\xb1\x51\xf8\x00\x00\x50\xf9\x00\x00\x4e\x67\x00\x00\x00\x00\x00\x00\x56\x95\x56\x94", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8f\x56\x99\x00\x00\x00\x00\x45\xd6\x00\x00\x49\xfa\x00\x00\x4a\xc4\x00\x00\x56\xa1\x00\x00\x56\x97\x4b\x6a\x00\x00\x56\x8c\x00\x00\x53\x43\x00\x00\x00\x00\x4c\xae\x56\x89\x00\x00\x00\x00\x00\x00\x56\x98\x4a\xd0\x00\x00\x56\x90\x56\x91\x55\x69\x48\x7d\x56\x8e\x52\xf1\x00\x00\x56\x8b\x56\x92\x56\x8d\x4d\x51\x56\x93\x4f\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x63\x00\x00\x00\x00\x52\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8a\x00\x00\x56\xa4\x56\x9a\x00\x00\x00\x00\x56\xa2\x56\x9b\x56\x9e\x4d\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x49\x56\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x56\x9c\x56\xa0\x00\x00\x00\x00\x00\x00\x56\x9f\x00\x00\x4e\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xa5\x00\x00\x00\x00\x00\x00\x56\xa3\x00\x00\x54\xd2\x00\x00\x49\x43\x4f\x95\x50\xc3\x00\x00\x56\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x50\x59\x00\x00\x00\x00", /* 5080 */ "\x56\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x56\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xe7\x00\x00\x00\x00\x00\x00\x4f\xc3\x00\x00\x00\x00\x56\xa8\x00\x00\x00\x00\x00\x00\x50\x9c\x46\xac\x56\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x43\x54\xda\x00\x00\x00\x00\x00\x00\x00\x00\x56\xad\x56\xb0\x56\xab\x4b\x58\x00\x00\x4c\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x43\x00\x00\x00\x00\x00\x00\x56\xb1\x00\x00\x00\x00\x4f\xc9\x00\x00\x00\x00\x00\x00\x56\xae\x56\xaf\x00\x00\x00\x00\x48\xec\x00\x00\x4b\xba\x00\x00\x55\xad\x00\x00\x00\x00\x00\x00\x4a\xbb\x52\xd4\x00\x00\x56\xb5\x00\x00\x4d\x82\x00\x00\x00\x00\x00\x00\x56\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb7\x00\x00\x56\xb4\x00\x00\x4e\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb6\x56\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb2\x56\xba\x00\x00\x00\x00\x00\x00\x56\xb9\x00\x00\x55\x78\x00\x00\x00\x00\x00\x00\x00\x00", /* 5100 */ "\x49\xca\x56\xbc\x56\xbd\x00\x00\x45\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x56\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6f\x00\x00\x56\xc0\x56\xbf\x56\xc1\x00\x00\x52\x90\x00\x00\x56\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa2\x00\x00\x56\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc4\x00\x00\x00\x00\x56\xc3\x56\xc6\x56\xc5\x00\x00\x00\x00\x56\xc7\x56\xc8\x4c\x91\x00\x00\x46\x95\x4b\xe8\x48\xc9\x4d\xf3\x55\x5a\x47\xa2\x45\x9e\x56\xc9\x47\x9e\x56\xca\x4b\x56\x50\x50\x00\x00\x46\x9f\x00\x00\x56\xcb\x00\x00\x56\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4b\x00\x00\x51\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xcd\x00\x00\x56\xce\x46\x65\x00\x00\x00\x00\x46\xb1\x56\xcf\x56\xd0\x45\x48\x46\xbb\x45\x46\x56\xd1\x00\x00\x00\x00\x47\xb3\x00\x00\x00\x00\x00\x00\x46\x49\x4f\x67\x47\xaf\x47\xc9\x00\x00\x00\x00\x00\x00\x48\xf4\x00\x00\x00\x00\x00\x00", /* 5180 */ "\x56\xd2\x00\x00\x56\xd3\x00\x00\x00\x00\x45\x8e\x46\x45\x00\x00\x00\x00\x56\xd6\x4e\xa1\x00\x00\x56\xd5\x48\xeb\x00\x00\x56\xd7\x61\x9d\x56\xd8\x4f\x8f\x56\xd9\x00\x00\x56\xda\x56\xdb\x52\x7e\x00\x00\x48\xc4\x00\x00\x00\x00\x00\x00\x56\xdc\x00\x00\x00\x00\x4e\x7b\x00\x00\x56\xdf\x00\x00\x56\xdd\x54\x67\x56\xde\x00\x00\x48\x78\x56\xe0\x56\xe1\x56\xe2\x4b\xde\x00\x00\x00\x00\x00\x00\x56\xe6\x56\xe4\x56\xe5\x56\xe3\x50\xc9\x56\xe7\x51\x46\x48\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xe9\x56\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xdc\x56\xea\x4f\x80\x00\x00\x00\x00\x56\xeb\x00\x00\x55\xf9\x53\x44\x4b\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x77\x00\x00\x00\x00\x00\x00\x00\x00\x56\xec\x68\x84\x4e\xd9\x00\x00\x00\x00\x56\xed\x4d\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x48\xe6\x55\x8a\x00\x00\x56\xee\x54\x9e\x00\x00\x56\xef\x56\xf0\x00\x00\x00\x00\x56\xf1\x51\xac\x00\x00\x00\x00\x00\x00\x56\xf2\x51\xec\x00\x00\x50\xcf\x50\xe6\x45\x9b\x00\x00\x00\x00\x4b\xb6\x56\xf3\x00\x00", /* 5200 */ "\x4c\x50\x00\x00\x00\x00\x4f\x44\x56\xf4\x00\x00\x45\xb4\x47\x65\x4b\x9b\x00\x00\x4c\xd7\x56\xf5\x00\x00\x00\x00\x54\xe3\x00\x00\x00\x00\x4c\x52\x00\x00\x00\x00\x56\xf6\x56\xf7\x00\x00\x4b\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x5c\x46\xdd\x00\x00\x56\xf8\x00\x00\x45\xbc\x56\xf9\x00\x00\x00\x00\x00\x00\x56\xfa\x00\x00\x4c\xdd\x00\x00\x00\x00\x56\xfb\x00\x00\x00\x00\x46\xc4\x48\xcf\x4b\x6b\x56\xfc\x4b\xc0\x4b\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x79\x56\xfd\x00\x00\x00\x00\x47\x4d\x00\x00\x00\x00\x4a\x90\x56\xfe\x51\xae\x45\xaf\x00\x00\x57\x41\x00\x00\x00\x00\x00\x00\x00\x00\x57\x43\x00\x00\x51\x99\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc7\x00\x00\x54\x81\x57\x42\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xd3\x47\x66\x54\x81\x00\x00\x00\x00\x00\x00\x57\x48\x57\x45\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4e\x4d\x85\x57\x44\x47\xd6\x57\x46\x57\x47\x4b\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x4a\x00\x00\x57\x49", /* 5280 */ "\x00\x00\x00\x00\x00\x00\x55\xd6\x00\x00\x00\x00\x00\x00\x49\xf0\x57\x4c\x51\x85\x00\x00\x00\x00\x00\x00\x57\x4b\x00\x00\x00\x00\x00\x00\x57\x4e\x57\x4d\x00\x00\x55\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf7\x57\x4f\x00\x00\x00\x00\x48\x70\x45\x9f\x00\x00\x00\x00\x4e\x68\x00\x00\x00\x00\x57\x50\x00\x00\x00\x00\x46\x71\x4a\x64\x54\xc6\x57\x51\x57\x52\x00\x00\x5f\xaa\x00\x00\x4d\x92\x00\x00\x00\x00\x48\xa9\x57\x54\x00\x00\x00\x00\x00\x00\x49\x78\x00\x00\x00\x00\x57\x53\x00\x00\x55\x6a\x00\x00\x57\x56\x57\x55\x00\x00\x54\xb1\x00\x00\x4e\xef\x00\x00\x46\x9c\x00\x00\x48\xce\x00\x00\x00\x00\x00\x00\x57\x57\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd6\x00\x00\x00\x00\x45\xe4\x00\x00\x53\x92\x4b\x9a\x46\xed\x00\x00\x57\x58\x00\x00\x45\xb5\x57\x59\x4a\xe1\x57\x5c\x00\x00\x47\xee\x57\x5a\x49\x9f\x00\x00\x57\x5b\x4c\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7a\x57\x5d\x00\x00\x57\x5e\x00\x00\x00\x00\x57\x5f\x57\x60\x54\x70\x00\x00\x00\x00\x00\x00\x51\xe9\x52\x97", /* 5300 */ "\x57\x61\x4f\x5b\x4e\xcb\x00\x00\x00\x00\x4a\xa8\x57\x62\x57\x63\x57\x64\x00\x00\x00\x00\x00\x00\x00\x00\x57\x66\x00\x00\x57\x68\x57\x67\x00\x00\x00\x00\x00\x00\x00\x00\x57\x69\x45\x90\x45\x5a\x00\x00\x54\x57\x57\x6a\x00\x00\x00\x00\x51\xb7\x00\x00\x00\x00\x4e\x6b\x4d\x4d\x00\x00\x57\x6c\x57\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xed\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6d\x00\x00\x57\x6e\x00\x00\x57\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x57\x70\x4f\xd1\x45\x54\x4a\x87\x00\x00\x00\x00\x00\x00\x50\xf1\x57\x71\x45\x4a\x00\x00\x45\x4c\x00\x00\x57\x72\x57\x73\x4e\x47\x45\xdf\x57\x74\x47\x90\x00\x00\x00\x00\x57\x76\x00\x00\x00\x00\x00\x00\x53\xad\x4a\xf2\x49\x96\x47\xd7\x00\x00\x00\x00\x45\x59\x48\xe3\x00\x00\x45\xf6\x00\x00\x51\xc0\x00\x00\x57\x79\x00\x00\x49\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xdb\x00\x00\x00\x00\x57\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x57\x7b\x4c\x82\x47\x99\x4b\x91\x57\x7c\x4b\x6d\x4a\xa4\x4c\xf5\x00\x00\x57\x7d\x4e\x79\x00\x00\x00\x00\x57\x7e\x00\x00\x00\x00\x00\x00\x53\xe2", /* 5380 */ "\x00\x00\x00\x00\x57\x7f\x00\x00\x53\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x80\x00\x00\x00\x00\x57\x81\x00\x00\x4f\x55\x00\x00\x49\x42\x00\x00\x00\x00\x00\x00\x00\x00\x45\x74\x57\x82\x00\x00\x00\x00\x00\x00\x00\x00\x57\x84\x57\x83\x00\x00\x51\x78\x53\x67\x00\x00\x00\x00\x00\x00\x53\xb7\x57\x85\x00\x00\x57\x86\x00\x00\x57\x87\x4c\x8e\x00\x00\x00\x00\x57\x88\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd2\x57\x89\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf5\x50\xa5\x48\x5c\x46\xd4\x4b\x71\x47\xf9\x47\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa5\x00\x00\x46\xa6\x48\x4c\x00\x00\x50\xf5\x00\x00\x55\xb2\x00\x00\x57\x8b\x00\x00\x57\x8c\x00\x00\x51\x94\x53\xf5\x45\x88\x45\xd4\x4c\x8b\x00\x00\x00\x00\x57\x91\x4f\x71\x4e\x41\x4d\xd5\x4f\x86\x57\x92\x57\x90\x47\xc6\x47\x78\x50\x42\x47\xd9\x48\x5a\x00\x00\x00\x00\x4f\x59\x48\xe2\x45\xf0\x00\x00\x57\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x57\x94\x00\x00\x55\xea\x47\xba\x00\x00\x00\x00\x00\x00\x45\xa0\x45\x7e\x53\xd3\x55\xbc\x46\x6d\x45\xf3\x51\xaf\x50\xc6\x4e\xb2\x46\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xcf\x00\x00\x57\x9d\x00\x00\x50\x7a\x53\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4f\x00\x00\x00\x00\x57\x9c\x00\x00\x49\xcb\x57\x97\x57\x98\x57\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x9b\x00\x00\x4b\x98\x49\xc4\x00\x00\x53\xe5\x57\x99\x57\x95\x47\xf6\x00\x00\x57\x96\x00\x00\x4b\x50\x00\x00\x00\x00\x00\x00\x50\x73\x00\x00\x4f\x56\x4a\xee\x49\x54\x00\x00\x00\x00\x00\x00\x57\x9e\x00\x00\x00\x00\x50\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xa1\x00\x00\x54\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa5\x57\xa3\x00\x00\x47\x7f\x00\x00\x57\xa0\x57\xaa\x57\xa4\x00\x00\x00\x00\x00\x00\x57\xa7\x4a\xf6\x49\xb0\x00\x00\x00\x00", /* 5480 */ "\x57\xa8\x00\x00\x00\x00\x00\x00\x57\xab\x00\x00\x57\xad\x00\x00\x00\x00\x00\x00\x57\xae\x4f\x50\x45\x7a\x00\x00\x57\xa1\x57\x9f\x57\xac\x00\x00\x57\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb2\x00\x00\x57\xbc\x57\xb4\x00\x00\x00\x00\x57\xb9\x57\xbd\x00\x00\x57\xba\x57\xb5\x00\x00\x00\x00\x57\xb1\x00\x00\x00\x00\x4c\xde\x53\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb3\x00\x00\x00\x00\x00\x00\x57\xb0\x52\xb1\x57\xbe\x00\x00\x4e\xf9\x45\xd0\x57\xbb\x00\x00\x57\xb6\x00\x00\x00\x00\x57\xaf\x57\xb8\x4a\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xcb\x57\xc7\x00\x00\x00\x00\x57\xbf\x57\xc1\x00\x00\x55\x68\x55\xf0\x00\x00\x00\x00\x00\x00\x57\xc6\x57\xc5\x00\x00\x00\x00\x00\x00\x47\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7c\x00\x00\x00\x00\x57\xc4\x00\x00\x57\xc0", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdb\x00\x00\x51\xb8\x4f\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x4b\xab\x00\x00\x00\x00\x00\x00\x57\xc3\x00\x00\x54\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcc\x4b\xe0\x00\x00\x4d\x43\x00\x00\x57\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x57\xd1\x57\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x54\x78\x00\x00\x57\xc9\x00\x00\x00\x00\x00\x00\x53\x83\x57\xce\x46\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcb\x00\x00\x00\x00\x46\xe4\x00\x00\x00\x00\x00\x00\x47\xe4\x00\x00\x00\x00\x57\xcf\x57\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcd\x57\xd3\x54\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x57\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xd8\x57\xdd\x00\x00\x57\xd9\x00\x00", /* 5580 */ "\x57\xd5\x00\x00\x00\x00\x57\xdf\x46\xb3\x00\x00\x57\xde\x57\xe1\x00\x00\x52\x53\x57\xd6\x55\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xda\x57\xd4\x52\xb5\x00\x00\x45\xd1\x54\x75\x57\xdb\x57\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xd3\x57\xe2\x57\xe0\x51\x68\x4d\x6d\x4c\x5f\x00\x00\x57\xdc\x00\x00\x4e\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe5\x57\xe3\x00\x00\x58\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa2\x00\x00\x57\xe6\x00\x00\x00\x00\x57\xe4\x00\x00\x00\x00\x00\x00\x4b\x5e\x57\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xeb\x00\x00\x57\xe9\x00\x00\x00\x00\x00\x00\x57\xee\x57\xed\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x63\x00\x00\x00\x00\x47\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xea\x00\x00\x57\xec\x54\xec\x50\xf3\x00\x00\x00\x00\x57\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf8\x00\x00\x50\xca\x57\xf3\x00\x00\x54\x7f\x00\x00\x57\xf2\x00\x00\x57\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x62\x00\x00\x57\xf0\x00\x00\x57\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf6\x00\x00\x00\x00\x00\x00\x45\xfc\x00\x00\x57\xfa\x57\xf5\x57\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6d\x00\x00\x00\x00\x00\x00\x55\xf1\x00\x00\x55\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5680 */ "\x57\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf7\x55\xd8\x00\x00\x00\x00\x58\x41\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x42\x00\x00\x51\x90\x00\x00\x00\x00\x58\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x46\x00\x00\x58\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x49\x00\x00\x00\x00\x00\x00\x58\x4c\x58\x4a\x58\x48\x58\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x58\x47\x00\x00\x51\x90\x00\x00\x00\x00\x00\x00\x58\x4d\x00\x00\x00\x00\x58\x4f\x00\x00\x58\x4e\x00\x00\x00\x00\x00\x00\x58\x50\x56\xd4\x00\x00\x50\x65\x45\x44\x00\x00\x00\x00\x46\xa9\x00\x00\x4a\x49\x00\x00\x00\x00\x47\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x51\x00\x00\x4b\x44\x00\x00\x4a\xfa\x47\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x52\x4a\x94\x00\x00\x00\x00\x45\x8f\x00\x00\x58\x53", /* 5700 */ "\x52\x66\x00\x00\x00\x00\x53\xcf\x58\x54\x00\x00\x00\x00\x00\x00\x58\x56\x58\x55\x00\x00\x51\xbd\x00\x00\x58\x57\x00\x00\x4f\x49\x00\x00\x00\x00\x47\xe1\x54\xe7\x00\x00\x00\x00\x58\x5a\x00\x00\x58\x59\x00\x00\x00\x00\x00\x00\x58\x5b\x00\x00\x00\x00\x46\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5c\x47\x82\x47\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x49\xe6\x00\x00\x00\x00\x45\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd1\x58\x5d\x00\x00\x00\x00\x58\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x58\x61\x00\x00\x45\xec\x00\x00\x00\x00\x00\x00\x00\x00\x49\xae\x00\x00\x00\x00\x4c\x55\x00\x00\x00\x00\x00\x00\x58\x5e\x58\x62\x4e\x8d\x4e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x65\x00\x00\x00\x00\x53\xa6\x58\x63\x51\xc4\x00\x00\x00\x00\x53\x98\x49\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x66", /* 5780 */ "\x00\x00\x00\x00\x4b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x64\x58\x67\x00\x00\x46\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x69\x00\x00\x54\x66\x47\xce\x58\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x6d\x00\x00\x58\x6c\x00\x00\x00\x00\x00\x00\x53\xcd\x00\x00\x00\x00\x58\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x71\x00\x00\x00\x00\x58\x6e\x00\x00\x00\x00\x58\x6f\x58\x73\x58\x70\x00\x00\x00\x00\x4e\xac\x00\x00\x00\x00\x45\xdb\x00\x00\x00\x00\x00\x00\x58\x74\x58\x75\x58\x72\x00\x00\x58\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf4\x00\x00\x00\x00\x48\xe9\x51\x7e\x00\x00\x00\x00\x58\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x48\x00\x00\x00\x00\x4d\x57\x00\x00\x4d\xac\x46\xf1\x00\x00\x46\xa3\x00\x00\x00\x00\x00\x00", /* 5800 */ "\x46\x9d\x00\x00\x49\x7f\x00\x00\x00\x00\x4a\xe7\x53\x71\x00\x00\x00\x00\x00\x00\x58\x78\x58\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xb0\x00\x00\x00\x00\x00\x00\x58\x7b\x00\x00\x00\x00\x00\x00\x53\xa7\x00\x00\x00\x00\x00\x00\x58\x7c\x00\x00\x00\x00\x4b\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xac\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x53\x50\xa4\x49\xb8\x00\x00\x00\x00\x45\xd9\x54\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7c\x00\x00\x00\x00\x58\x80\x00\x00\x00\x00\x53\x9f\x4b\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x53\x58\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc6\x58\x81\x00\x00\x4c\xcb\x00\x00\x00\x00\x48\x6a\x52\xf8\x4f\x6f\x46\x57\x00\x00\x00\x00\x00\x00\x53\xc1\x00\x00\x00\x00\x4f\x5e\x58\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x43\x00\x00\x4f\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x58\x83\x00\x00\x58\x86\x00\x00\x00\x00\x4d\x89\x00\x00\x00\x00\x00\x00\x58\x84\x00\x00\x00\x00\x00\x00\x00\x00\x52\x79\x00\x00", /* 5880 */ "\x00\x00\x00\x00\x00\x00\x4a\x95\x00\x00\x58\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbe\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x51\x50\x00\x00\x58\x8a\x58\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xfc\x00\x00\x00\x00\x58\x88\x00\x00\x00\x00\x58\x8b\x00\x00\x00\x00\x00\x00\x58\x8c\x52\x89\x00\x00\x00\x00\x00\x00\x00\x00\x58\x89\x58\x8d\x58\x8e\x55\x52\x00\x00\x00\x00\x54\x88\x00\x00\x00\x00\x4b\x95\x00\x00\x00\x00\x00\x00\x58\x8f\x00\x00\x4e\x8e\x00\x00\x00\x00\x4e\xc8\x00\x00\x51\x96\x00\x00\x00\x00\x00\x00\x00\x00\x58\x91\x00\x00\x58\x90\x00\x00\x55\xb9\x00\x00\x58\x92\x58\x94\x58\x93\x00\x00\x00\x00\x58\x96\x00\x00\x58\x95\x58\x97\x00\x00\x00\x00\x00\x00\x00\x00\x58\x98\x58\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x7d\x51\x4f\x00\x00\x4c\x9f\x58\x9a\x49\x6c\x4e\xb0\x47\x75\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9b\x00\x00\x58\x9c\x50\x77\x58\x9d\x58\x9e\x52\x75\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x58\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x6f\x58\xa0\x58\xa1\x00\x00\x00\x00\x00\x00\x49\x7e\x58\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc3\x46\x94\x00\x00\x52\xc8\x54\xdd\x45\xfe\x58\xa3\x48\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8b\x00\x00\x00\x00\x58\xa5\x00\x00\x45\x5b\x00\x00\x46\x8a\x45\xab\x45\x73\x58\xa6\x58\xa7\x47\x92\x00\x00\x00\x00\x49\x41\x58\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x51\x47\x58\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf2\x00\x00\x00\x00\x4d\x69\x45\xe6\x4d\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8f\x4c\x53\x58\xac\x4c\x64\x00\x00\x58\xad\x52\x84\x58\xab\x00\x00\x55\x83\x58\xaf\x00\x00\x58\xae\x58\xb0\x00\x00\x58\xb1\x00\x00\x00\x00\x58\xb4\x00\x00\x58\xb3\x58\xb2\x00\x00\x46\xe5\x00\x00\x58\xb5\x4e\xca\x58\xb7\x4e\xbb\x00\x00\x58\xb6\x00\x00\x4e\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x46\x99\x4d\x90\x00\x00\x00\x00\x00\x00\x58\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x46\x9e\x00\x00\x00\x00", /* 5980 */ "\x00\x00\x58\xb9\x4b\xf8\x51\xa2\x55\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x43\x00\x00\x00\x00\x58\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x95\x00\x00\x00\x00\x53\xd1\x00\x00\x00\x00\x4a\x66\x00\x00\x58\xbb\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xbd\x58\xbe\x4d\x9e\x00\x00\x00\x00\x50\xec\x00\x00\x00\x00\x00\x00\x53\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xdc\x58\xc0\x49\xa3\x00\x00\x00\x00\x53\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc1\x00\x00\x00\x00\x4c\xc1\x00\x00\x49\x90\x00\x00\x00\x00\x00\x00\x00\x00\x54\x9c\x53\xf2\x00\x00\x4f\xf1\x48\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc3\x58\xc4\x00\x00\x51\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x55\x55\xde\x00\x00\x58\xc2\x00\x00\x55\x8c\x4a\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x79\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb9\x00\x00\x00\x00\x00\x00\x4b\x42", /* 5a00 */ "\x00\x00\x4c\x65\x00\x00\x55\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x54\x00\x00\x58\xc9\x00\x00\x58\xc8\x00\x00\x00\x00\x58\xc6\x52\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc5\x00\x00\x00\x00\x00\x00\x54\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xce\x58\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x98\x00\x00\x00\x00\x00\x00\x58\xcb\x50\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xcc\x00\x00\x00\x00\x58\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd0\x00\x00\x00\x00\x00\x00\x49\x6f\x00\x00\x00\x00\x00\x00\x58\xd1\x00\x00\x58\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x54", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd2\x48\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd3\x58\xd8\x58\xd4\x00\x00\x00\x00\x4e\x89\x58\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe0\x00\x00\x58\xd6\x4e\xc3\x00\x00\x00\x00\x00\x00\x58\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xdd\x58\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x67\x00\x00\x58\xd9\x00\x00\x00\x00\x58\xdb\x00\x00\x00\x00\x58\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xde\x58\xdf\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8b\x00\x00\x58\xe1\x58\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe4\x00\x00\x52\xea\x00\x00\x00\x00\x00\x00\x55\xe8\x00\x00\x58\xe3\x00\x00\x00\x00\x00\x00\x58\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe6\x00\x00\x58\xe9\x00\x00\x00\x00\x58\xe7\x00\x00\x58\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x64\x58\xea\x00\x00\x00\x00\x4b\xd9\x58\xeb\x58\xec\x48\xf2\x4a\x41\x00\x00\x52\x58\x58\xee\x4f\xf2\x45\xf4\x00\x00\x4f\x83\x00\x00\x00\x00\x00\x00\x4a\xec\x4e\xaf\x58\xef\x45\xbe\x00\x00\x00\x00\x58\xf0\x00\x00\x4c\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf1\x59\x5b\x00\x00\x58\xf2\x00\x00\x58\xf3\x00\x00\x00\x00\x58\xf4\x00\x00\x58\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b80 */ "\x58\xf6\x00\x00\x00\x00\x58\xf7\x00\x00\x48\x6f\x00\x00\x46\xd5\x46\xf0\x45\xa8\x00\x00\x52\x4d\x48\xc5\x4c\x75\x00\x00\x46\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5c\x00\x00\x47\xdd\x49\xa2\x4d\x64\x45\xe7\x50\xab\x4d\x8b\x49\x4d\x00\x00\x45\xed\x00\x00\x00\x00\x4a\xde\x49\x8f\x47\xb8\x4f\x7a\x58\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x92\x00\x00\x4e\xd4\x00\x00\x00\x00\x49\x68\x50\x78\x52\xef\x46\x86\x00\x00\x58\xf9\x48\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x82\x58\xfc\x00\x00\x4f\xe9\x58\xfa\x49\xdf\x4a\x84\x4a\x56\x58\xfb\x00\x00\x58\xfd\x00\x00\x00\x00\x45\xac\x00\x00\x00\x00\x00\x00\x59\x41\x00\x00\x4b\x81\x55\xf4\x52\x44\x00\x00\x00\x00\x00\x00\x59\x42\x00\x00\x00\x00\x47\xf8\x00\x00\x4b\x59\x59\x43\x4b\x93\x00\x00\x52\xb8\x59\x46\x00\x00\x59\x45\x59\x47\x51\xfc\x4f\xa9\x5c\x7e\x49\x87\x00\x00\x59\x48\x59\x44\x00\x00\x4c\x7a\x00\x00\x59\x49\x00\x00\x00\x00\x59\x4a\x00\x00\x55\x56\x59\x4b\x00\x00\x4b\x60\x00\x00\x46\xa0\x00\x00\x00\x00\x00\x00\x46\x56\x46\xb2", /* 5c00 */ "\x00\x00\x4d\x76\x49\xfb\x00\x00\x49\x8a\x59\x4c\x49\x59\x59\x4d\x59\x4e\x51\x89\x4c\xef\x4d\x5f\x00\x00\x59\x4f\x48\xae\x45\x5d\x00\x00\x48\x4a\x00\x00\x59\x50\x00\x00\x00\x00\x53\xc0\x00\x00\x00\x00\x00\x00\x48\x71\x00\x00\x00\x00\x00\x00\x59\x51\x00\x00\x59\x52\x00\x00\x59\x53\x00\x00\x53\xae\x00\x00\x00\x00\x00\x00\x59\x54\x00\x00\x00\x00\x00\x00\x00\x00\x68\x80\x00\x00\x00\x00\x00\x00\x4b\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x55\x51\x5d\x4c\x6b\x49\xce\x4a\x86\x4f\xb9\x45\xc8\x4c\xc6\x48\x8b\x59\x56\x00\x00\x00\x00\x00\x00\x48\x5e\x59\x57\x00\x00\x4d\x94\x00\x00\x4d\xa7\x45\xe9\x00\x00\x55\xba\x59\x58\x54\x43\x59\x5a\x54\xb2\x00\x00\x59\x59\x00\x00\x48\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x43\x00\x00\x00\x00\x47\x6d\x00\x00\x53\xfb\x55\xc0\x55\xc0\x00\x00\x4a\x8e\x4c\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x5c\x00\x00\x59\x5d\x4f\xdd\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\x00\x00\x59\x5e\x00\x00\x00\x00\x59\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x60\x00\x00\x00\x00\x00\x00\x47\x4a\x52\x5a\x00\x00\x00\x00\x59\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x59\x67\x00\x00\x54\xb9\x45\xbf\x00\x00\x59\x63\x50\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x52\x62\x00\x00\x4d\x46\x00\x00\x00\x00\x59\x65\x59\x66\x47\x48\x00\x00\x59\x68\x59\x64\x59\x6a\x00\x00\x59\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x69\x00\x00\x59\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x96\x51\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9d\x59\x6d\x59\x72\x00\x00\x00\x00\x59\x71\x00\x00\x4a\xac\x48\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x59\x70\x45\x6f\x00\x00\x00\x00\x00\x00\x59\x6f\x50\x72\x00\x00\x59\x6e\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x7f\x00\x00\x00\x00\x00\x00\x59\x73\x00\x00\x00\x00\x45\x7f\x00\x00\x00\x00\x59\x77\x00\x00\x00\x00\x51\x4d\x59\x74\x50\x74\x54\xf1\x59\x7c\x59\x7b\x59\x7a\x59\x76\x00\x00\x00\x00\x00\x00\x59\x75\x00\x00\x00\x00\x59\x79\x00\x00\x00\x00\x00\x00\x00\x00\x59\x78\x00\x00\x4f\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x83\x59\x7d\x00\x00\x59\x82\x00\x00\x49\x8c\x00\x00\x59\x7e\x59\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9e\x00\x00\x00\x00\x59\x85\x59\x87\x00\x00\x4e\xd3\x00\x00\x00\x00\x00\x00\x59\x86\x00\x00\x00\x00\x59\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d80 */ "\x00\x00\x00\x00\x59\x8b\x00\x00\x59\x8a\x00\x00\x00\x00\x59\x89\x00\x00\x00\x00\x00\x00\x47\xd1\x59\x8c\x00\x00\x00\x00\x00\x00\x59\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x59\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x90\x00\x00\x59\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x92\x59\x93\x59\x95\x4c\xe8\x00\x00\x59\x94\x4f\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x96\x00\x00\x00\x00\x49\xcf\x52\x81\x00\x00\x00\x00\x59\x97\x00\x00\x59\x99\x59\x98\x00\x00\x00\x00\x51\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9a\x00\x00\x45\x67\x47\x41\x00\x00\x00\x00\x4d\x47\x00\x00\x4c\x67\x00\x00\x45\x6a\x48\x5b\x4c\xa3\x4a\x52\x00\x00\x00\x00\x59\x9b\x00\x00\x00\x00\x49\x8b\x00\x00\x00\x00\x47\xad\x4a\x4b\x4a\xe6\x4e\x7d\x59\x9c\x00\x00\x53\xcb\x00\x00\x00\x00\x00\x00\x48\x93\x00\x00\x4e\x46\x4a\x7d\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x45\x53\x47\x6b\x00\x00\x00\x00\x4f\x75\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9d\x4a\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x59\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x51\xc7\x00\x00\x00\x00\x59\x9f\x59\x9e\x59\xa1\x00\x00\x48\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x44\x00\x00\x4b\x53\x00\x00\x49\x60\x49\x82\x00\x00\x00\x00\x4d\xc5\x00\x00\x00\x00\x59\xa2\x54\xbe\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x85\x00\x00\x00\x00\x59\xa5\x00\x00\x00\x00\x59\xa4\x59\xa3\x4a\x5e\x00\x00\x59\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x49\x6b\x00\x00\x59\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xa9\x4c\xca\x00\x00\x59\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x83\x00\x00\x48\xde\x59\xaa\x4e\x7f\x59\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6f\x45\x8d\x45\x60\x59\xac\x59\xad\x00\x00\x45\xa9\x48\xda\x59\xae\x50\xa2\x4d\xaf\x52\x5f\x4b\x57\x59\xaf", /* 5e80 */ "\x00\x00\x4b\x92\x00\x00\x45\xb7\x48\x50\x00\x00\x00\x00\x55\x8d\x00\x00\x00\x00\x4a\xed\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x64\x55\x4f\x48\x54\x00\x00\x00\x00\x51\x5a\x00\x00\x45\x51\x00\x00\x00\x00\x00\x00\x59\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xde\x48\xb1\x00\x00\x00\x00\x00\x00\x45\xf8\x00\x00\x48\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xeb\x50\xc1\x46\x9a\x4c\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb1\x59\xb2\x4b\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb3\x4e\xdb\x4e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb5\x59\xb4\x00\x00\x00\x00\x54\xad\x00\x00\x00\x00\x53\x6c\x00\x00\x00\x00\x00\x00\x59\xb7\x59\xb8\x00\x00\x59\xb6\x00\x00\x55\xaf\x55\x62\x59\xba\x59\xb9\x50\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x59\xbb\x59\xbc\x00\x00\x00\x00\x59\xbd\x00\x00\x00\x00\x00\x00\x59\xbe\x59\xbf\x00\x00\x59\xc0\x59\xc1\x00\x00\x47\xd0\x50\x5b\x52\xd6\x00\x00\x46\x66\x4b\xaf\x55\x64\x00\x00\x54\x4b\x51\xd9", /* 5f00 */ "\x00\x00\x4b\x47\x00\x00\x59\xc2\x54\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x59\xc3\x50\xcd\x59\xc4\x56\x41\x56\x51\x00\x00\x46\x8f\x50\xe1\x59\xc5\x00\x00\x4b\x63\x51\xe5\x46\xda\x59\xc6\x54\xac\x45\xd3\x00\x00\x00\x00\x55\x97\x00\x00\x00\x00\x00\x00\x4c\x9b\x00\x00\x59\xc7\x00\x00\x00\x00\x00\x00\x47\xe6\x4e\x42\x53\x6b\x00\x00\x59\xc8\x00\x00\x00\x00\x00\x00\x59\xc9\x00\x00\x59\xca\x00\x00\x4b\x6e\x00\x00\x00\x00\x59\xcb\x48\xba\x00\x00\x46\xd2\x59\xcc\x00\x00\x00\x00\x00\x00\x52\xe0\x00\x00\x4a\xd4\x00\x00\x00\x00\x59\xcd\x00\x00\x00\x00\x00\x00\x53\xc7\x00\x00\x00\x00\x59\xce\x00\x00\x53\x85\x00\x00\x59\xcf\x00\x00\x59\xd0\x00\x00\x00\x00\x59\xd1\x00\x00\x46\x5f\x00\x00\x00\x00\x59\xd2\x59\xd3\x00\x00\x59\xd4\x00\x00\x00\x00\x59\xd5\x59\xd6\x00\x00\x00\x00\x00\x00\x59\xd7\x46\x90\x00\x00\x00\x00\x00\x00\x45\xe1\x59\xd8\x00\x00\x4d\xcd\x51\x59\x4e\x86\x4e\x88\x52\x9c\x00\x00\x00\x00\x49\x64\x49\x5e\x00\x00\x59\xd9\x00\x00\x00\x00\x00\x00\x59\xda\x00\x00\x49\x5d\x00\x00\x00\x00\x47\x72\x00\x00\x00\x00\x59\xdd", /* 5f80 */ "\x4c\xea\x4a\x61\x59\xdc\x59\xdb\x4e\x60\x48\xa3\x00\x00\x59\xe0\x59\xdf\x00\x00\x59\xde\x49\x91\x45\xe5\x00\x00\x00\x00\x00\x00\x50\xb3\x59\xe1\x4c\x6c\x48\xfb\x00\x00\x00\x00\x00\x00\x47\xe8\x59\xe4\x59\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x59\xe3\x00\x00\x59\xe5\x46\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xe6\x4a\x70\x4e\xf5\x00\x00\x00\x00\x59\xe7\x4b\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x46\x54\x4c\x74\x00\x00\x00\x00\x59\xe8\x00\x00\x48\xf8\x00\x00\x00\x00\x59\xe9\x55\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe7\x00\x00\x47\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x97\x4b\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xea\x46\x61\x4c\x45\x4e\xa3\x00\x00\x00\x00\x48\x95\x59\xf0\x59\xf1\x00\x00\x46\x4f\x00\x00\x00\x00\x00\x00\x59\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x60\x00\x00\x00\x00\x00\x00\x00\x00\x59\xef\x59\xee\x00\x00\x00\x00\x00\x00\x4a\xae\x00\x00\x00\x00\x59\xed\x00\x00\x00\x00\x59\xeb\x00\x00\x50\x56\x00\x00\x59\xf2", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf7\x59\xfd\x59\xf5\x00\x00\x4c\xd6\x00\x00\x00\x00\x59\xfa\x4e\xf0\x00\x00\x00\x00\x59\xf4\x00\x00\x59\xf9\x50\x9f\x46\xad\x00\x00\x00\x00\x50\x81\x59\xf3\x00\x00\x00\x00\x00\x00\x47\xcc\x59\xfc\x46\x6e\x54\xde\x59\xf6\x4e\x71\x59\xfb\x00\x00\x00\x00\x00\x00\x55\x42\x00\x00\x59\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x42\x52\x56\x5a\x4c\x00\x00\x00\x00\x5a\x49\x00\x00\x00\x00\x00\x00\x5a\x48\x4b\xca\x00\x00\x5a\x4a\x00\x00\x00\x00\x4b\xd5\x00\x00\x47\xc7\x00\x00\x00\x00\x52\x98\x00\x00\x00\x00\x00\x00\x5a\x50\x5a\x41\x00\x00\x00\x00\x5a\x44\x00\x00\x5a\x47\x5a\x43\x00\x00\x55\x94\x5a\x4b\x5a\x4d\x4e\xce\x00\x00\x00\x00\x53\xb8\x4c\x81\x5a\x45\x5a\x4f\x5a\x4e\x49\x4e\x00\x00\x4b\xb0\x53\x84\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x5a\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6080 */ "\x00\x00\x5a\x52\x00\x00\x5a\x53\x5a\x55\x5a\x51\x00\x00\x00\x00\x00\x00\x54\x69\x5a\x57\x5a\x5c\x4d\xe3\x55\x44\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x5a\x00\x00\x50\x91\x00\x00\x5a\x58\x5a\x59\x00\x00\x00\x00\x5a\x54\x5a\x56\x00\x00\x00\x00\x00\x00\x4a\xb1\x4d\xd8\x00\x00\x00\x00\x4d\xeb\x00\x00\x00\x00\x48\x73\x5a\x5b\x00\x00\x4b\xcd\x49\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x9d\x52\x76\x53\xa3\x5a\x64\x55\x54\x00\x00\x5a\x5e\x00\x00\x00\x00\x00\x00\x51\x45\x5a\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x5f\x5a\x63\x4e\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x78\x00\x00\x5a\x61\x00\x00\x5a\x65\x00\x00\x00\x00\x5a\x66\x00\x00\x54\x9d\x00\x00\x4e\xd7\x00\x00\x5a\x5f\x4f\xe0\x5a\x60\x5a\x5d\x00\x00\x4b\x68\x00\x00\x00\x00\x00\x00\x55\x4a\x50\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb8\x5a\x73\x5a\x68\x48\xb3\x5a\x6e\x00\x00\x5a\x6b\x5a\x6c\x00\x00\x54\x72\x5a\x6f\x5a\x72\x00\x00\x00\x00\x00\x00\x00\x00", /* 6100 */ "\x5a\x6d\x52\x82\x00\x00\x5a\x70\x00\x00\x00\x00\x5a\x6a\x00\x00\x53\xc8\x50\x98\x00\x00\x00\x00\x00\x00\x5a\x74\x5a\x75\x47\x63\x00\x00\x5a\x76\x00\x00\x00\x00\x00\x00\x5a\x69\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb2\x45\xc6\x00\x00\x00\x00\x00\x00\x47\xf7\x5a\x67\x5a\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7b\x5a\x7a\x00\x00\x00\x00\x00\x00\x5a\x80\x00\x00\x00\x00\x00\x00\x5a\x7e\x00\x00\x00\x00\x00\x00\x5a\x81\x00\x00\x00\x00\x5a\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7f\x5a\x84\x5a\x7c\x51\xe3\x00\x00\x00\x00\x5a\x85\x00\x00\x5a\x86\x00\x00\x00\x00\x5a\x77\x4c\xbe\x00\x00\x5a\x7d\x48\xfd\x53\x8e\x5a\x78\x4a\x76\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x92\x00\x00\x52\xe3\x00\x00\x00\x00\x5a\x8a\x5a\x8b\x5a\x8c\x00\x00\x00\x00\x5a\x83\x00\x00\x5a\x91\x00\x00\x00\x00\x4d\xdb\x4d\xd3\x00\x00\x5a\x82\x00\x00\x4e\xb6\x52\x8a\x00\x00\x00\x00\x5a\x8d\x00\x00\x00\x00\x4c\x49\x5a\x8f\x4f\xad\x5a\x90\x00\x00\x5a\x87\x5a\x8e\x5a\x93\x48\xa8\x5a\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf4\x00\x00", /* 6180 */ "\x00\x00\x00\x00\x50\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x88\x00\x00\x00\x00\x5a\x99\x00\x00\x00\x00\x00\x00\x4f\x4a\x00\x00\x55\x5b\x5a\x9a\x00\x00\x00\x00\x5a\x98\x00\x00\x5a\x96\x00\x00\x5a\x94\x5a\x95\x55\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xfc\x00\x00\x00\x00\x53\xc2\x00\x00\x51\x75\x00\x00\x5a\x9b\x5a\x97\x00\x00\x5a\x9c\x00\x00\x00\x00\x00\x00\x47\xbe\x00\x00\x00\x00\x00\x00\x4e\x6c\x00\x00\x00\x00\x00\x00\x5a\xa3\x00\x00\x00\x00\x00\x00\x51\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa1\x00\x00\x00\x00\x5a\xa2\x4e\xa4\x5a\xa0\x5a\x9f\x5a\x9e\x5a\xa4\x5a\x9d\x5a\xa6\x00\x00\x00\x00\x4e\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa8\x00\x00\x00\x00\x5a\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x53\x00\x00\x5a\xa9\x00\x00\x5a\xab\x5a\xaa\x4d\xc6\x00\x00\x5a\xad\x00\x00\x5a\xaf\x5a\xac\x5a\xb0\x5a\xae", /* 6200 */ "\x5a\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xb2\x5a\xb3\x51\x61\x00\x00\x54\x60\x5a\xb4\x51\x7f\x00\x00\x45\xba\x49\xde\x4d\xa0\x5a\xb5\x5a\xb6\x00\x00\x4d\x7f\x00\x00\x00\x00\x00\x00\x55\x95\x5a\xb7\x00\x00\x64\x6e\x5a\xb8\x54\xd9\x00\x00\x5a\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x47\x64\x00\x00\x00\x00\x00\x00\x5a\xba\x00\x00\x00\x00\x00\x00\x5a\xbb\x4f\x92\x5a\xbc\x00\x00\x5a\xbd\x5a\xbe\x50\x92\x00\x00\x00\x00\x00\x00\x45\xcf\x00\x00\x00\x00\x4c\x44\x00\x00\x00\x00\x00\x00\x47\xdc\x45\x8c\x5a\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xca\x65\x5d\x50\xad\x00\x00\x45\xcb\x00\x00\x49\xf1\x5a\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x47\xea\x00\x00\x49\x81\x00\x00\x00\x00\x55\xd5\x00\x00\x00\x00\x5a\xc3\x00\x00\x00\x00\x5a\xc1\x00\x00\x5a\xc4\x00\x00\x00\x00\x5a\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb7\x00\x00\x00\x00\x4c\x69\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7a\x00\x00\x00\x00\x4c\x76\x00\x00\x00\x00\x5a\xc6\x00\x00\x5a\xca\x4c\x48", /* 6280 */ "\x48\xf7\x00\x00\x5a\xc7\x5a\xcd\x4e\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc8\x4e\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x66\x5a\xc9\x5a\xcb\x5a\xce\x47\x51\x5a\xcc\x4a\x67\x49\x8d\x00\x00\x00\x00\x5a\xdc\x4a\x85\x00\x00\x4e\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xda\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa6\x5a\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x86\x00\x00\x00\x00\x00\x00\x4b\x90\x00\x00\x00\x00\x00\x00\x51\xe0\x00\x00\x5a\xd1\x49\xe1\x4d\x53\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd9\x00\x00\x00\x00\x4a\xa1\x5a\xd4\x5a\xdb\x5a\xd5\x5a\xdd\x5a\xd8\x00\x00\x53\x45\x4f\xba\x00\x00\x5a\xd2\x53\xa2\x5a\xd0\x4f\x61\x4b\xdb\x5a\xd7\x00\x00\x00\x00\x5a\xcf\x50\x45\x52\x5c\x00\x00\x4b\xfd\x5a\xd6\x4e\xe2\x00\x00\x00\x00\x4d\x77\x48\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc5\x4e\xe5\x5a\xdf\x5a\xe4\x00\x00\x5a\xe0\x00\x00\x50\x8d\x00\x00\x5a\xe5\x4f\x9e\x55\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd7\x5a\xe6", /* 6300 */ "\x00\x00\x46\xd8\x5a\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb6\x5a\xe3\x54\x89\x00\x00\x00\x00\x5a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe1\x4f\x81\x00\x00\x00\x00\x54\x8f\x00\x00\x00\x00\x00\x00\x48\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x87\x00\x00\x00\x00\x52\xa8\x5a\xe9\x55\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa0\x00\x00\x00\x00\x55\x7d\x5a\xe8\x00\x00\x5a\xea\x5a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x41\x00\x00\x55\x46\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x85\x4b\xb3\x5a\xf5\x00\x00\x5a\xf4\x00\x00\x00\x00\x4e\xd6\x00\x00\x00\x00\x00\x00\x54\x93\x00\x00\x00\x00\x00\x00\x5a\xef\x4d\x8f\x00\x00\x00\x00\x4f\xc0\x54\xc0\x00\x00\x00\x00\x00\x00\x00\x00", /* 6380 */ "\x5a\xed\x00\x00\x00\x00\x4d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x61\x5a\xf2\x00\x00\x00\x00\x4e\xec\x00\x00\x5a\xec\x5a\xf1\x00\x00\x00\x00\x4c\xfa\x00\x00\x00\x00\x00\x00\x5a\xeb\x00\x00\x4d\x44\x00\x00\x00\x00\x4a\xe3\x00\x00\x00\x00\x00\x00\x5a\xf3\x55\xe6\x4b\x4f\x4b\x7f\x5a\xf0\x00\x00\x47\xa8\x00\x00\x4c\xac\x48\xd5\x55\xd0\x4a\x60\x5a\xee\x55\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc1\x00\x00\x54\xcd\x5a\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa3\x00\x00\x00\x00\x5a\xf7\x00\x00\x5a\xf9\x00\x00\x00\x00\x4e\xfd\x5b\x42\x00\x00\x5a\xfa\x00\x00\x00\x00\x5a\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xcf\x49\xb9\x00\x00\x5a\xfe\x00\x00\x00\x00\x00\x00\x4c\xf2\x00\x00\x00\x00\x00\x00\x4c\x46\x49\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x60\x00\x00\x5a\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd5\x5a\xfb\x5b\x41\x00\x00\x00\x00\x00\x00\x4f\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xd8\x00\x00\x5b\x4b\x00\x00\x00\x00\x00\x00\x5b\x45\x54\xa3\x00\x00\x5b\x4c\x5b\x49\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x46\x00\x00\x5b\x4a\x00\x00\x00\x00\x00\x00\x4d\xc8\x52\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x43\x00\x00\x5b\x47\x00\x00\x00\x00\x00\x00\x4e\x49\x00\x00\x00\x00\x00\x00\x50\xa3\x00\x00\x00\x00\x00\x00\x4e\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4d\x00\x00\x00\x00\x54\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4e\x00\x00\x48\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x51\x00\x00\x55\xf5\x00\x00\x51\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6480 */ "\x00\x00\x00\x00\x00\x00\x4a\x74\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xde\x5b\x57\x00\x00\x5b\x55\x00\x00\x00\x00\x00\x00\x00\x00\x53\x48\x00\x00\x00\x00\x5b\x53\x55\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x7a\x5b\x58\x00\x00\x00\x00\x00\x00\x5b\x59\x00\x00\x51\xe1\x00\x00\x4e\x62\x4c\x77\x00\x00\x53\x72\x00\x00\x4e\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x52\x00\x00\x5b\x56\x5b\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4e\x5b\x62\x00\x00\x00\x00\x5b\x5e\x00\x00\x5b\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x9b\x5b\x54\x00\x00\x00\x00\x00\x00\x5b\x5d\x00\x00\x5b\x60\x00\x00\x00\x00\x00\x00\x5b\x61\x00\x00\x5b\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x65\x5b\x66\x55\x43\x5b\x67\x00\x00\x00\x00\x4f\xd6\x5b\x64\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcd\x00\x00\x00\x00\x5b\x68\x00\x00\x5b\x63\x5b\x6b\x00\x00\x5b\x69\x00\x00\x5b\x6a\x00\x00\x00\x00\x00\x00\x5b\x6c\x00\x00\x00\x00\x5b\x6e\x55\xf6\x00\x00", /* 6500 */ "\x5b\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x5b\x70\x5b\x71\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x72\x5b\x74\x5b\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7f\x5b\x75\x5b\x76\x00\x00\x00\x00\x47\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x77\x5b\x78\x5b\x7a\x5b\x79\x5b\x7b\x48\x8f\x00\x00\x4b\xc5\x00\x00\x00\x00\x48\xaf\x45\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf7\x00\x00\x00\x00\x5b\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x80\x5b\x7e\x46\x47\x00\x00\x4c\x5c\x00\x00\x00\x00\x00\x00\x5b\x82\x5b\x7f\x4b\x8a\x5b\x81\x47\xa5\x00\x00\x00\x00\x00\x00\x5b\x83\x51\xb1\x00\x00\x00\x00\x00\x00\x4f\xcf\x4a\xc9\x00\x00\x00\x00\x49\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb0\x00\x00\x00\x00\x00\x00\x46\xcc\x00\x00\x5b\x84\x00\x00\x47\x7c\x4b\xf3\x00\x00\x49\x51\x5b\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6580 */ "\x00\x00\x00\x00\x5b\x86\x5b\x87\x00\x00\x00\x00\x00\x00\x45\xca\x58\xed\x46\x8e\x00\x00\x00\x00\x51\x9d\x00\x00\x47\xdb\x00\x00\x4b\x80\x52\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x83\x00\x00\x46\x4e\x00\x00\x5b\x89\x4b\xd1\x00\x00\x00\x00\x5b\x8a\x00\x00\x55\x81\x00\x00\x00\x00\x54\xcf\x51\x41\x00\x00\x51\xc2\x00\x00\x00\x00\x00\x00\x5b\x8b\x4e\xfc\x49\x89\x00\x00\x4e\xa5\x45\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8c\x00\x00\x45\xcd\x00\x00\x00\x00\x4d\xa4\x48\x88\x00\x00\x00\x00\x00\x00\x5b\x8f\x00\x00\x5b\x8d\x5b\x90\x4a\xcf\x5b\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7b\x5b\x91\x00\x00\x00\x00\x4a\xdc\x00\x00\x00\x00\x5b\x92\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xab\x00\x00\x5b\x93\x00\x00\x51\x65\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x95\x5b\x94\x4b\x77\x00\x00\x00\x00\x45\x62\x4d\x9d\x4c\x7b\x4d\x6a\x46\xe9\x00\x00\x00\x00\x4d\x67\x47\xec\x00\x00\x00\x00\x00\x00\x5b\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa3\x5b\x9c\x00\x00\x00\x00\x00\x00\x00\x00", /* 6600 */ "\x5b\x97\x00\x00\x5b\x99\x5b\x9b\x00\x00\x00\x00\x4f\xe7\x46\xfe\x00\x00\x5b\x9d\x52\x8e\x00\x00\x46\xd1\x00\x00\x45\xa6\x54\xe8\x00\x00\x00\x00\x00\x00\x47\xe9\x4c\x59\x5b\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa3\x00\x00\x5b\xa1\x47\xa9\x47\xac\x00\x00\x00\x00\x00\x00\x5b\xa4\x46\x62\x00\x00\x55\x9d\x48\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x45\xb3\x5b\xa0\x4b\xbb\x00\x00\x52\xeb\x00\x00\x00\x00\x5b\xa2\x5b\x9f\x51\x93\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9f\x4c\x98\x00\x00\x00\x00\x5b\x9e\x00\x00\x52\x51\x46\x51\x48\xb0\x5b\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa6\x00\x00\x4b\xb2\x00\x00\x00\x00\x00\x00\x51\xea\x00\x00\x00\x00\x54\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa8\x00\x00\x5b\xab\x00\x00\x00\x00\x00\x00\x5b\xad\x5b\xa9\x4f\xce\x00\x00\x00\x00\x5b\xac\x00\x00\x5b\xaa\x5b\xa7\x55\x6d\x50\xa0\x51\xb2\x4c\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x49\xf8\x49\x93\x5b\xb0\x00\x00\x00\x00\x5b\xaf\x47\x95\x00\x00\x4a\xf8\x00\x00\x00\x00\x00\x00\x46\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6680 */ "\x00\x00\x4c\x83\x00\x00\x5b\xb1\x5b\xb3\x00\x00\x00\x00\x4f\x46\x5b\xb2\x4e\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xab\x00\x00\x00\x00\x4f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6c\x4b\xe2\x5b\xb5\x5b\xb4\x00\x00\x00\x00\x00\x00\x5b\xb7\x00\x00\x00\x00\x5b\xb6\x00\x00\x4c\xc7\x00\x00\x00\x00\x00\x00\x50\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x50\x93\x00\x00\x00\x00\x4a\xfe\x00\x00\x00\x00\x00\x00\x5b\xb8\x00\x00\x4c\xb2\x00\x00\x00\x00\x00\x00\x5b\xbf\x52\x43\x00\x00\x00\x00\x5b\xbe\x00\x00\x5b\xbd\x5b\xbb\x00\x00\x5b\xba\x00\x00\x00\x00\x5b\xb9\x00\x00\x00\x00\x4c\x56\x00\x00\x5b\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc0\x00\x00\x00\x00\x51\x52\x5b\xc1\x00\x00\x4b\xfe\x52\xa6\x00\x00\x00\x00\x51\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc2\x00\x00\x00\x00\x5b\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc4\x00\x00\x49\xb6\x4e\xbc\x4a\x6d\x5b\xc5\x00\x00\x5b\xc6\x47\x9d\x4e\xd2\x5b\xc7\x53\x97\x57\x8d\x49\x5f\x51\x66\x4b\xc3", /* 6700 */ "\x46\xf5\x00\x00\x00\x00\x56\xac\x00\x00\x00\x00\x00\x00\x00\x00\x45\x61\x46\x85\x00\x00\x4b\xc4\x00\x00\x47\xd4\x5b\xc8\x54\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa4\x55\xf3\x5b\xca\x48\x6e\x00\x00\x00\x00\x00\x00\x47\xbb\x00\x00\x47\x5c\x5b\xcb\x46\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcd\x5b\xce\x45\x6c\x00\x00\x49\xc6\x47\x46\x45\x66\x48\xf9\x5b\xd0\x00\x00\x00\x00\x4d\x42\x00\x00\x00\x00\x4e\xa2\x00\x00\x5b\xd2\x5b\xd3\x5b\xd4\x00\x00\x4d\x96\x00\x00\x00\x00\x50\xf0\x00\x00\x5b\xd1\x00\x00\x53\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd5\x00\x00\x00\x00\x46\x68\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x51\x50\xd0\x46\xbc\x45\x56\x00\x00\x54\xc1\x00\x00\x00\x00\x50\xf4\x00\x00\x00\x00\x5b\xd7\x00\x00\x00\x00\x52\x5d\x00\x00\x5b\xd6\x4b\x4b\x54\x80\x47\x5e\x51\xa6\x52\x91\x5b\xd9\x46\x76\x5b\xd8\x00\x00\x00\x00\x00\x00\x5b\xde\x00\x00\x00\x00\x50\x8b\x00\x00\x4c\x63\x5b\xdc\x45\x57\x5b\x9a\x5b\xe0\x00\x00\x4a\xa6\x00\x00\x52\x80\x00\x00\x00\x00\x00\x00\x00\x00\x54\xdf\x00\x00\x45\x78\x46\xb4", /* 6780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xdb\x00\x00\x52\x5e\x00\x00\x5b\xda\x00\x00\x5b\xdf\x54\xf2\x00\x00\x00\x00\x00\x00\x4a\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x78\x00\x00\x45\xa2\x00\x00\x00\x00\x49\xd9\x00\x00\x47\xb9\x46\x72\x00\x00\x00\x00\x4f\xd2\x5b\xe2\x52\xd0\x00\x00\x00\x00\x00\x00\x5b\xe1\x00\x00\x00\x00\x5b\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x61\x00\x00\x00\x00\x00\x00\x54\xc9\x5b\xe6\x00\x00\x4e\xe8\x5b\xe4\x5b\xe9\x5b\xf2\x00\x00\x5b\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf0\x55\xcd\x00\x00\x00\x00\x4a\x7f\x00\x00\x5b\xf4\x00\x00\x00\x00\x00\x00\x52\xd9\x00\x00\x00\x00\x00\x00\x5b\xf1\x49\x80\x50\x4a\x4e\xc1\x00\x00\x48\x9b\x4d\xea\x00\x00\x00\x00\x00\x00\x4f\xd8\x00\x00\x4e\xe1\x00\x00\x00\x00\x5b\xed\x54\xf3\x00\x00\x00\x00\x00\x00\x5b\xee\x00\x00\x5b\xeb\x00\x00\x00\x00\x5b\xea\x00\x00\x5b\xe8\x00\x00\x00\x00\x5b\xe7\x00\x00\x5b\xef\x5b\xe5\x00\x00\x4b\xea\x00\x00\x46\xea\x47\xa7\x51\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x73\x00\x00\x00\x00\x50\x54\x4a\xc1", /* 6800 */ "\x00\x00\x5b\xf3\x52\xd1\x47\xd3\x45\xfa\x51\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xe3\x00\x00\x00\x00\x4d\xcc\x47\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf5\x00\x00\x00\x00\x48\xbf\x52\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xde\x48\x56\x52\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfa\x00\x00\x55\xda\x00\x00\x00\x00\x00\x00\x4b\x9e\x46\x67\x00\x00\x00\x00\x47\xde\x4d\xe0\x00\x00\x00\x00\x5b\xf8\x50\xd6\x49\xab\x4a\xda\x5b\xf9\x00\x00\x5b\xf6\x00\x00\x48\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf7\x5b\xfb\x00\x00\x49\xc0\x48\x79\x5b\xec\x53\x6d\x53\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfd\x00\x00\x00\x00\x47\x71\x4d\x88\x00\x00\x51\xf3\x00\x00\x00\x00\x00\x00\x5b\xfc\x00\x00\x00\x00\x00\x00\x50\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x4b\x00\x00\x4e\x77\x5c\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x44\x5c\x42", /* 6880 */ "\x00\x00\x4e\x44\x00\x00\x5c\x48\x00\x00\x47\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfe\x5b\xfe\x5c\x45\x00\x00\x00\x00\x00\x00\x50\xda\x5c\x47\x00\x00\x00\x00\x52\xcc\x00\x00\x00\x00\x00\x00\x53\xbc\x00\x00\x4e\x92\x00\x00\x5c\x43\x52\xc6\x00\x00\x50\xac\x00\x00\x00\x00\x00\x00\x58\xa4\x52\xd3\x48\x58\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x46\x00\x00\x51\xe4\x46\x82\x53\x59\x00\x00\x53\x61\x00\x00\x5c\x4c\x49\xad\x00\x00\x00\x00\x5c\x4a\x5c\x4d\x00\x00\x5c\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb1\x00\x00\x5c\x60\x00\x00\x53\x86\x55\xca\x5c\x50\x4e\xf1\x00\x00\x5c\x56\x00\x00\x5c\x5f\x00\x00\x00\x00\x4b\x5a\x00\x00\x5c\x57\x5c\x59\x00\x00\x54\xc2\x5c\x52\x00\x00\x4b\xef\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xa9\x5c\x5e\x5c\x54\x00\x00\x5c\x5d\x00\x00\x00\x00\x00\x00\x5c\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x9d\x5c\x5b\x00\x00\x00\x00\x53\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x94\x55\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x54\x68\x5c\x4f\x00\x00\x00\x00\x5c\x5c\x4f\xf7\x00\x00\x00\x00\x5c\x51\x00\x00\x00\x00\x4d\xfd\x5c\x55\x47\xc5\x4b\xa0\x5c\x4e\x00\x00\x00\x00\x5c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xed\x53\x70\x51\x63\x48\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x63\x5c\x61\x5c\x64\x00\x00\x53\xfa\x5c\x53\x00\x00\x5c\x65\x00\x00\x5c\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x71\x00\x00\x00\x00\x00\x00\x54\xa7\x00\x00\x5c\x69\x00\x00\x00\x00\x52\xed\x00\x00\x00\x00\x00\x00\x5c\x6f\x00\x00\x4c\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x95\x5c\x6b\x55\xc5\x00\x00\x00\x00\x00\x00\x5c\x70\x53\x4c\x00\x00\x54\xe2\x5c\x73\x5c\x72\x00\x00\x4a\xdf\x52\x7c\x4d\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x6e\x00\x00\x5c\x6c\x54\xa2\x00\x00\x45\x6b\x53\xef\x4f\xae\x00\x00\x00\x00\x00\x00\x52\xb3\x5c\x6d\x49\xb7\x00\x00\x5c\x68\x5c\x6a\x5c\x67\x00\x00\x00\x00\x52\xba\x47\x61\x5c\x74\x00\x00", /* 6980 */ "\x00\x00\x5c\x75\x4c\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x52\x00\x00\x00\x00\x00\x00\x49\xeb\x00\x00\x00\x00\x54\x76\x00\x00\x00\x00\x55\xc7\x5c\x86\x00\x00\x00\x00\x5c\x79\x00\x00\x00\x00\x4d\x7e\x5c\x85\x00\x00\x00\x00\x00\x00\x5c\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4a\x00\x00\x00\x00\x5c\x80\x5c\x76\x00\x00\x53\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x82\x00\x00\x00\x00\x5c\x7c\x5c\x77\x00\x00\x5c\x7a\x00\x00\x5c\x83\x00\x00\x00\x00\x00\x00\x4d\xb9\x00\x00\x00\x00\x5c\x7f\x47\x96\x4e\xfa\x52\xdb\x5c\x7d\x00\x00\x54\x8c\x00\x00\x00\x00\x5c\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x48\x48\x68\x81\x00\x00\x00\x00\x00\x00\x5c\x81\x5c\x87\x00\x00\x00\x00\x00\x00\x5c\x90\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8f\x5c\x89\x00\x00\x00\x00\x5c\x94\x00\x00\x5c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8d\x00\x00\x4b\x5c\x00\x00\x4d\xb7\x00\x00\x5c\x8c", /* 6a00 */ "\x00\x00\x00\x00\x5c\x8a\x00\x00\x00\x00\x53\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x95\x49\x4f\x5c\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x97\x5c\x99\x5c\x93\x00\x00\x00\x00\x53\x8b\x00\x00\x49\x66\x00\x00\x5c\x8b\x00\x00\x00\x00\x5c\x91\x53\x9b\x00\x00\x48\x64\x5c\x96\x5c\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xdc\x45\xf2\x4b\x6f\x00\x00\x00\x00\x5c\x88\x00\x00\x5c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x55\x85\x5c\x9f\x00\x00\x5c\xa7\x46\xcf\x4e\x69\x00\x00\x00\x00\x4b\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x9c\x00\x00\x5c\xa6\x5c\xa1\x5c\xa5\x00\x00\x00\x00\x45\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc2\x5c\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x00\x00\x55\xd4\x5c\xa2\x00\x00\x00\x00\x00\x00\x5c\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xa8\x5c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xaf\x4f\xb2", /* 6a80 */ "\x4f\xf5\x00\x00\x00\x00\x00\x00\x5c\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xab\x55\xee\x00\x00\x5c\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x55\x00\x00\x00\x00\x00\x00\x5c\x9e\x00\x00\x5c\xad\x5c\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb2\x00\x00\x5c\xb1\x00\x00\x54\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb5\x00\x00\x00\x00\x5c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb7\x5c\xb4\x52\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xba\x00\x00\x55\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xbb\x4d\xa6\x00\x00\x00\x00\x5c\xb8\x53\x62\x00\x00\x00\x00\x5c\xb9\x00\x00\x5c\xbc\x00\x00\x00\x00\x00\x00\x51\xc5\x00\x00\x5c\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc2\x52\xee\x00\x00\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xde\x5c\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc3\x00\x00\x00\x00\x00\x00\x5c\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf7\x00\x00\x5c\xc5\x4c\xb5\x45\x97\x00\x00\x4b\x9d\x00\x00\x00\x00\x00\x00\x4a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc7\x5c\xc6\x5c\xc8\x51\x7d\x00\x00\x00\x00\x4c\xf8\x4e\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xcc\x00\x00\x00\x00\x00\x00\x5c\xcb\x00\x00\x5c\xcd\x00\x00\x00\x00\x46\xf7\x00\x00\x54\x87\x00\x00\x5c\xce\x00\x00\x00\x00\x4d\x4e\x5c\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xcf\x00\x00\x5c\xd1\x00\x00\x00\x00\x00\x00\x5c\xd2\x00\x00\x5c\xd3\x48\xd8\x45\x77\x4d\x4c\x00\x00\x45\xb1\x00\x00\x00\x00\x47\xd8\x55\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x9f\x00\x00\x00\x00\x00\x00\x48\xe4\x49\x55\x00\x00\x00\x00\x00\x00\x5c\xd4\x5c\xd5\x00\x00\x49\x99\x00\x00\x00\x00\x00\x00\x5c\xd6", /* 6b80 */ "\x5c\xd7\x00\x00\x00\x00\x5c\xd9\x5c\xd8\x00\x00\x4f\x42\x00\x00\x00\x00\x53\xa4\x48\x65\x49\x92\x00\x00\x5c\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdc\x4e\x73\x00\x00\x5c\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdf\x5c\xe0\x00\x00\x00\x00\x00\x00\x5c\xe1\x00\x00\x5c\xe2\x5c\xe3\x5c\xe4\x54\x59\x47\xed\x00\x00\x5c\xe5\x00\x00\x00\x00\x49\xe9\x50\xc0\x5c\xe6\x00\x00\x00\x00\x48\x49\x58\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5b\x5c\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe8\x00\x00\x49\x69\x49\xf5\x00\x00\x00\x00\x00\x00\x4c\x97\x5c\xe9\x47\x4e\x00\x00\x5c\xea\x00\x00\x53\xd7\x00\x00\x00\x00\x46\xe2\x00\x00\x00\x00\x00\x00\x5c\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xed\x5c\xec\x00\x00\x00\x00\x5c\xef\x00\x00\x00\x00\x00\x00\x5c\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8e\x00\x00\x47\x56\x00\x00\x5c\xf1\x5c\xf2\x00\x00\x00\x00\x45\xb9\x00\x00\x00\x00\x00\x00\x5c\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf5\x5c\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x9c\x00\x00\x00\x00\x4c\xa4\x45\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6e\x5c\xf6\x53\x4d\x4d\x84\x49\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x50\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf8\x00\x00\x4e\xc4\x00\x00\x00\x00\x4e\x82\x00\x00\x5c\xf9\x55\x5e\x5c\xf7\x45\xad\x45\xe8\x00\x00\x5c\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x45\x00\x00\x52\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xfe\x50\xd2\x00\x00\x50\xc8\x5d\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa4\x00\x00\x00\x00\x49\x4c\x5d\x44\x00\x00", /* 6c80 */ "\x00\x00\x5d\x42\x5c\xfb\x55\xd9\x00\x00\x00\x00\x5c\xfd\x00\x00\x4c\x8f\x00\x00\x00\x00\x00\x00\x55\x98\x5c\xfc\x00\x00\x00\x00\x5d\x48\x00\x00\x5d\x47\x4f\xf8\x00\x00\x00\x00\x47\xfd\x00\x00\x00\x00\x4e\xad\x5d\x41\x5d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x75\x45\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xec\x00\x00\x00\x00\x5d\x4d\x00\x00\x00\x00\x5d\x50\x00\x00\x46\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xaa\x46\x5c\x5d\x52\x45\x84\x46\xc6\x5d\x4b\x5d\x51\x4e\x6f\x00\x00\x4a\x58\x00\x00\x00\x00\x5d\x49\x5d\x4c\x00\x00\x00\x00\x00\x00\x46\xee\x4d\xb8\x00\x00\x51\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd7\x00\x00\x46\x4a\x00\x00\x55\xc6\x00\x00\x5d\x55\x5d\x4e\x5d\x53\x00\x00\x5d\x4f\x00\x00\x00\x00\x00\x00\x4e\x87\x46\xca\x4d\x4b\x00\x00\x4e\x56\x00\x00\x00\x00\x49\x44\x00\x00\x5d\x56\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x54\x46\xf3\x5d\x4a\x00\x00\x4f\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xda\x5d\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x4e\x00\x00\x52\xb6\x00\x00\x54\x50\x00\x00\x00\x00\x4d\x98\x5d\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xdc\x00\x00\x00\x00\x00\x00\x50\xb7\x4f\xd4\x5d\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x72\x5d\x5c\x00\x00\x52\xac\x5d\x59\x00\x00\x50\xbc\x00\x00\x00\x00\x47\xb4\x00\x00\x5d\x5b\x4a\x72\x00\x00\x00\x00\x46\xfc\x00\x00\x00\x00\x4c\xc9\x46\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x66\x5d\x64\x00\x00\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5f\x5d\x63\x00\x00\x46\x6b\x00\x00\x00\x00\x46\xeb\x4a\x9d\x00\x00\x55\xcc\x00\x00\x4a\x8c\x5d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x7e\x00\x00\x00\x00\x45\xa7\x4d\x41\x5d\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x6a\x00\x00\x5d\x60\x48\x6b\x00\x00\x00\x00\x00\x00\x4f\x7d\x00\x00\x5d\x67\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x61\x00\x00\x5d\x68\x5d\x6b\x00\x00\x00\x00\x4d\xda\x00\x00\x5d\x69\x55\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x72\x00\x00\x00\x00\x4f\x91\x00\x00\x00\x00\x4a\x45\x00\x00\x00\x00\x5d\x6f\x00\x00\x00\x00\x5d\x73\x00\x00\x00\x00\x00\x00\x4e\x74\x00\x00\x00\x00\x00\x00\x4a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x7c\x5d\x75\x5d\x71\x00\x00\x00\x00\x00\x00\x52\xc7\x5d\x78\x00\x00\x00\x00\x5d\x74\x00\x00\x4a\xbf\x5d\x7b\x00\x00\x00\x00\x5d\x82\x00\x00\x00\x00\x55\xe1\x5d\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x77\x00\x00\x00\x00\x4c\xa5\x00\x00\x00\x00\x5d\x81\x00\x00\x5d\x70\x00\x00\x5d\x79\x00\x00\x5d\x83\x55\x4e\x5d\x76\x00\x00\x5d\x84\x00\x00\x00\x00\x47\x77\x5d\x7f\x48\x94\x00\x00\x48\xea\x00\x00\x4b\x46\x5d\x7a\x5d\x6c\x5d\x7d\x4a\x91\x5d\x80\x00\x00\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x96\x00\x00\x54\x41\x47\x69\x4a\xc0\x5d\x6d\x48\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x98\x00\x00\x51\x64\x00\x00\x00\x00\x00\x00\x5d\x87\x50\xe4\x47\x8a\x00\x00\x5d\x99\x00\x00\x5d\x92\x52\x7a\x45\xd2\x00\x00\x5d\x8c\x5d\x98\x4e\x43\x51\xa0\x5d\x93\x00\x00\x49\x50\x00\x00\x5d\x8f\x49\x45\x5d\x85\x5d\x6e\x48\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9a\x5d\x8a\x5d\x96\x00\x00\x5d\x95\x00\x00\x5d\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x88\x00\x00\x00\x00\x5d\x91\x5d\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x52\x00\x00\x51\x55\x00\x00\x00\x00\x53\xf3\x5d\x8e\x00\x00\x00\x00\x5d\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xbd\x00\x00\x00\x00\x00\x00\x5d\x8d\x00\x00\x00\x00\x5d\x86\x48\xbd\x00\x00\x00\x00\x5d\x88\x00\x00\x00\x00\x00\x00\x5d\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6b\x4c\x90", /* 6e80 */ "\x47\x5b\x00\x00\x5d\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x5d\xa5\x47\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xce\x00\x00\x5d\x9d\x00\x00\x00\x00\x00\x00\x4d\xc4\x4a\x4d\x00\x00\x5d\xa8\x00\x00\x00\x00\x52\x71\x00\x00\x00\x00\x53\x76\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa0\x00\x00\x00\x00\x5d\xa2\x00\x00\x00\x00\x00\x00\x48\xbe\x5d\x9e\x00\x00\x00\x00\x54\x97\x00\x00\x00\x00\x5d\x9f\x00\x00\x5d\xa6\x00\x00\x00\x00\x5d\xa7\x00\x00\x5d\xa1\x4e\xe6\x00\x00\x00\x00\x00\x00\x52\xa9\x00\x00\x48\x57\x5d\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa2\x00\x00\x52\x4a\x5d\xa3\x5d\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa3\x4d\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xab\x00\x00\x00\x00\x5d\xb1\x00\x00\x00\x00\x5d\xaf\x00\x00\x4f\xb7\x00\x00\x00\x00\x5d\xb7\x5d\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xad\x5d\xb4", /* 6f00 */ "\x00\x00\x4b\x78\x4f\xbc\x00\x00\x00\x00\x00\x00\x4d\xae\x00\x00\x00\x00\x54\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xc4\x00\x00\x55\x75\x00\x00\x5d\xb6\x49\xed\x54\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8e\x00\x00\x4f\x58\x54\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x6e\x4e\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xb0\x5d\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xb5\x5d\xae\x00\x00\x5d\xa9\x00\x00\x00\x00\x00\x00\x5d\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x4a\xc2\x00\x00\x00\x00\x00\x00\x5d\xc3\x00\x00\x00\x00\x5d\xbd\x4d\xc0\x00\x00\x00\x00\x46\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd2\x00\x00\x5d\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xbe\x4c\x93\x5d\xbc\x54\x46\x00\x00\x00\x00\x00\x00\x5d\xbf\x00\x00\x00\x00\x00\x00\x5d\xba\x00\x00\x5d\xb9\x00\x00\x5d\xc2\x00\x00\x00\x00\x00\x00", /* 6f80 */ "\x5d\xbb\x55\xa0\x5d\xc0\x00\x00\x48\x87\x00\x00\x5d\xb8\x00\x00\x5d\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xc5\x00\x00\x00\x00\x5d\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xcb\x00\x00\x5d\xc9\x4e\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x89\x00\x00\x5d\xc8\x00\x00\x5d\xca\x00\x00\x00\x00\x00\x00\x5d\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xd0\x50\xbe\x5d\xcf\x4a\xce\x00\x00\x00\x00\x5d\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xd4\x5d\xd1\x00\x00\x00\x00\x5d\xd3\x00\x00\x00\x00\x5d\xcd\x00\x00\x00\x00\x00\x00\x5d\xd0\x53\x80\x50\x7e\x00\x00\x00\x00\x51\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa3\x5d\xd2\x00\x00\x5d\xd6\x4d\xd4\x00\x00\x50\x55\x00\x00\x5d\xe2\x00\x00\x5d\xd5\x66\x58\x00\x00\x00\x00\x00\x00\x5d\xdb\x00\x00\x00\x00\x00\x00\x51\x87\x00\x00", /* 7000 */ "\x00\x00\x5d\xdd\x00\x00\x00\x00\x00\x00\x5d\xd7\x55\x50\x5d\xd8\x00\x00\x5d\xd9\x00\x00\x5d\xda\x00\x00\x00\x00\x00\x00\x5d\xde\x00\x00\x5d\xdc\x00\x00\x00\x00\x00\x00\x55\xd1\x00\x00\x00\x00\x5d\xe4\x00\x00\x5d\xe0\x5d\xdf\x00\x00\x52\xb0\x53\x5c\x5d\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xde\x52\xae\x5d\xe3\x00\x00\x00\x00\x00\x00\x46\x5b\x00\x00\x00\x00\x00\x00\x5d\xe5\x00\x00\x5d\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x85\x00\x00\x00\x00\x00\x00\x4b\x65\x4a\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x73\x00\x00\x00\x00\x00\x00\x54\x6a\x4c\xbc\x00\x00\x00\x00", /* 7080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xea\x00\x00\x00\x00\x00\x00\x49\x7d\x4f\xcb\x00\x00\x00\x00\x00\x00\x4d\xad\x00\x00\x00\x00\x00\x00\x4f\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xed\x5d\xee\x48\x61\x5d\xf0\x5d\xec\x00\x00\x00\x00\x00\x00\x52\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xef\x47\x88\x49\xd7\x52\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd1\x00\x00\x00\x00\x5d\xf2\x00\x00\x00\x00\x00\x00\x50\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf3\x00\x00\x00\x00\x00\x00\x53\x8c\x00\x00\x5d\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x87\x00\x00\x00\x00\x00\x00\x5d\xf8\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x53\xee\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xfa\x54\x4f\x00\x00\x5d\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x47\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xfc\x5d\xfd\x00\x00\x4c\x6f\x00\x00\x00\x00\x5e\x42\x00\x00\x54\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x85\x5e\x43\x00\x00\x00\x00\x4b\xdd\x00\x00\x00\x00\x5d\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x41\x00\x00\x54\xea\x53\x57\x5d\xfe\x47\x42\x00\x00\x54\xa0\x00\x00\x00\x00\x5e\x44\x00\x00\x4c\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x90\x00\x00\x00\x00", /* 7180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x47\x00\x00\x00\x00\x00\x00\x5e\x45\x00\x00\x46\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x46\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9d\x5e\x48\x00\x00\x00\x00\x00\x00\x4f\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbb\x00\x00\x00\x00\x00\x00\x5e\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x47\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x4d\x00\x00\x00\x00\x5e\x4b\x00\x00\x49\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf8\x5e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x53\x00\x00\x4a\x79\x00\x00\x5e\x4e\x00\x00\x5e\x51\x50\x47\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfb\x5e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x66\x54\xce\x5e\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x56\x54\xe6\x57\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x54\x00\x00\x00\x00\x00\x00\x5e\x59\x00\x00\x5e\x57\x5e\x58\x00\x00\x5e\x5a\x5e\x5b", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x5c\x00\x00\x00\x00\x5e\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x5e\x00\x00\x4c\x87\x00\x00\x5e\x60\x5e\x5f\x00\x00\x00\x00\x5e\x61\x00\x00\x5e\x62\x00\x00\x00\x00\x53\xa9\x45\xcc\x00\x00\x00\x00\x00\x00\x50\x96\x5e\x63\x5e\x64\x52\xdd\x4c\x79\x5e\x65\x5e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x67\x47\x67\x4a\xbd\x00\x00\x00\x00\x5e\x68\x55\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x69\x53\xfc\x00\x00\x49\x73\x00\x00\x55\xb7\x00\x00\x4a\xaf\x00\x00\x50\x9a\x55\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7b\x00\x00\x46\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x58\x00\x00\x5e\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x46\xa2\x00\x00\x00\x00\x00\x00\x54\x8a\x5e\x6b\x00\x00", /* 7280 */ "\x53\x54\x5e\x6c\x5e\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6f\x00\x00\x00\x00\x00\x00\x5e\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xdc\x00\x00\x5e\x71\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x72\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc5\x00\x00\x00\x00\x4c\xa7\x00\x00\x5e\x73\x5e\x74\x00\x00\x00\x00\x00\x00\x48\x52\x00\x00\x00\x00\x5e\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x75\x00\x00\x00\x00\x00\x00\x4e\x5a\x5e\x76\x5e\x78\x00\x00\x5e\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7a\x00\x00\x51\xdb\x00\x00\x5e\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x52\x74\x00\x00\x4e\xcf\x00\x00\x50\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7d\x5e\x7e\x5e\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7b\x00\x00\x00\x00\x4a\xdb\x4c\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x80\x52\xfe\x5e\x7f\x00\x00\x00\x00\x50\x6f\x54\xd6\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x84\x5e\x81\x00\x00\x00\x00\x00\x00\x4a\x51\x5e\x83\x5e\x85\x00\x00\x4e\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x86\x5e\x8b\x00\x00\x00\x00\x00\x00\x5e\x88\x49\xc5\x4f\xd0\x00\x00\x00\x00\x4f\x45\x5e\x89\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x87\x00\x00\x50\x4f\x53\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8c\x4c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x95\x51\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8e\x5e\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x65\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x92\x00\x00\x5e\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x93\x00\x00\x4d\x61\x00\x00\x00\x00\x5e\x96\x00\x00\x5e\x94\x5e\x95\x00\x00\x51\xcb\x5e\x97\x00\x00\x00\x00\x00\x00\x00\x00", /* 7380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x6e\x00\x00\x00\x00\x47\x83\x00\x00\x45\xfd\x00\x00\x49\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf9\x5e\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9c\x00\x00\x5e\x99\x00\x00\x00\x00\x5e\x9d\x00\x00\x4c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x98\x5e\x9e\x53\x99\x00\x00\x00\x00\x4d\x5d\x5e\x9b\x00\x00\x00\x00\x00\x00\x5e\xa2\x00\x00\x00\x00\x00\x00\x5e\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa5\x00\x00\x4b\x99\x00\x00\x00\x00\x5e\xa1\x00\x00\x5e\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb9\x00\x00\x00\x00\x50\x66\x5e\xa3\x00\x00\x00\x00\x5e\xa4\x00\x00\x00\x00\x00\x00\x5e\xa8\x00\x00\x00\x00\x5e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xb7\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x48\xdb\x00\x00\x5e\xa9\x45\xeb\x5e\xa7\x00\x00\x50\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5c\x00\x00\x00\x00\x5e\xac\x5e\xaa\x00\x00\x00\x00\x5e\xad\x5e\xab\x00\x00\x00\x00\x00\x00\x5e\xae\x00\x00\x00\x00\x00\x00\x5e\xaf\x54\x53\x4c\xd8\x52\xa3\x52\x9f\x00\x00\x00\x00\x00\x00\x5e\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb2\x00\x00\x5e\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb1\x00\x00\x00\x00\x00\x00\x5e\xb4\x53\xf1\x4f\x52\x5e\xb6\x00\x00\x4b\x5b\x5e\xb3\x50\x8c\x00\x00\x5e\xbc\x5e\xb9\x5e\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb7\x5e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbe\x5e\xb8\x00\x00\x00\x00\x51\x88\x00\x00\x00\x00\x68\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbf\x00\x00", /* 7480 */ "\x00\x00\x00\x00\x00\x00\x52\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbd\x00\x00\x50\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc1\x5e\xc0\x00\x00\x00\x00\x5e\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x64\x00\x00\x00\x00\x00\x00\x5e\xc7\x00\x00\x54\x52\x5e\xc8\x00\x00\x00\x00\x49\xc2\x5e\xc9\x00\x00\x5e\xca\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xcb\x00\x00\x5e\xcc\x5e\xce\x5e\xcd\x00\x00\x00\x00\x00\x00\x4c\xd4\x5e\xcf\x5e\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7500 */ "\x00\x00\x5e\xd1\x00\x00\x5e\xd3\x5e\xd2\x5e\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xd6\x5e\xd5\x5e\xd7\x00\x00\x00\x00\x54\x95\x00\x00\x5e\xd8\x00\x00\x53\xe6\x00\x00\x00\x00\x4b\x55\x00\x00\x4b\x66\x00\x00\x52\xa7\x00\x00\x5e\xd9\x45\x99\x00\x00\x00\x00\x00\x00\x45\xc0\x00\x00\x55\xd7\x5e\xda\x00\x00\x45\xb6\x00\x00\x00\x00\x4d\x58\x5e\xdb\x00\x00\x00\x00\x58\xfe\x45\x63\x46\x7c\x48\xa0\x49\x67\x00\x00\x00\x00\x00\x00\x45\x7c\x57\x65\x00\x00\x45\x55\x46\x77\x5e\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xdd\x00\x00\x5e\xe1\x00\x00\x00\x00\x5e\xe0\x5e\xdf\x5b\x7c\x47\xae\x5e\xde\x00\x00\x55\x8f\x00\x00\x47\x8b\x00\x00\x00\x00\x4e\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x47\xab\x5e\xe3\x5e\xe2\x4d\x72\x50\x86\x00\x00\x00\x00\x49\xfe\x00\x00\x55\x9a\x00\x00\x5e\xe4\x4c\xf0\x51\xb4\x5e\xe5\x00\x00\x52\xfd\x48\xb9\x5e\xe6\x00\x00\x5e\xe9\x00\x00\x5e\xe7\x4a\xa9\x00\x00\x00\x00\x4e\x54\x5e\xe8\x00\x00\x5e\xeb\x50\xdd\x5e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xd4", /* 7580 */ "\x00\x00\x00\x00\x5e\xec\x00\x00\x00\x00\x00\x00\x5e\xed\x5e\xee\x00\x00\x5e\xf0\x5e\xef\x4e\xa0\x00\x00\x00\x00\x51\x71\x55\xb0\x00\x00\x4c\xb4\x00\x00\x00\x00\x5e\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf2\x00\x00\x00\x00\x5e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf5\x00\x00\x5e\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xfd\x4d\x97\x5e\xf7\x00\x00\x5e\xf9\x00\x00\x00\x00\x5e\xfb\x54\xe1\x00\x00\x00\x00\x5e\xfc\x5e\xfa\x51\x42\x00\x00\x00\x00\x00\x00\x5e\xf6\x5e\xf8\x00\x00\x49\xbf\x00\x00\x4e\x4a\x00\x00\x00\x00\x5f\x41\x00\x00\x00\x00\x5e\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x42\x00\x00\x51\x82\x53\xfd\x00\x00\x00\x00\x55\x49\x5f\x43\x00\x00\x4c\x47\x00\x00\x00\x00\x5f\x45\x00\x00\x00\x00\x00\x00\x51\x74\x5f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4a\x00\x00\x5f\x4c\x5f\x4d\x50\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4b\x00\x00\x5f\x48\x00\x00\x5f\x46\x5f\x47", /* 7600 */ "\x00\x00\x5f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4f\x00\x00\x5f\x4e\x00\x00\x52\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x50\x5f\x52\x5f\x53\x5f\x54\x00\x00\x5f\x55\x00\x00\x54\xa4\x5f\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x00\x00\x00\x00\x00\x00\x5f\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb7\x00\x00\x00\x00\x00\x00\x5f\x5c\x5f\x59\x5f\x5a\x00\x00\x00\x00\x00\x00\x54\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xaa\x00\x00\x00\x00\x00\x00\x53\x7e\x00\x00\x5f\x5b\x00\x00\x00\x00\x00\x00\x5f\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5e\x5f\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x62\x5f\x60\x5f\x61\x5f\x63\x00\x00\x5f\x64\x00\x00\x00\x00\x00\x00\x5f\x65\x00\x00\x5f\x66\x00\x00\x00\x00\x00\x00\x5f\x67\x00\x00\x53\x9a\x00\x00\x46\x4b\x46\xe8\x5f\x68\x46\x59\x45\x4b\x00\x00", /* 7680 */ "\x5f\x6a\x00\x00\x5f\x69\x5f\x6b\x45\xef\x00\x00\x4a\xb0\x4c\xbb\x5f\x6c\x00\x00\x00\x00\x5f\x6d\x00\x00\x00\x00\x52\x99\x00\x00\x52\xa4\x00\x00\x00\x00\x4e\x81\x00\x00\x00\x00\x53\x96\x00\x00\x00\x00\x5f\x6e\x5f\x6f\x5f\x72\x5f\x70\x00\x00\x5f\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xda\x00\x00\x5f\x74\x00\x00\x00\x00\x00\x00\x5f\x75\x00\x00\x00\x00\x68\x68\x5f\x76\x5f\x77\x5f\x78\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc7\x00\x00\x00\x00\x5f\x79\x53\xba\x00\x00\x00\x00\x50\x57\x00\x00\x51\xb5\x00\x00\x47\x74\x00\x00\x00\x00\x5f\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x7d\x00\x00\x00\x00\x00\x00\x5f\x7c\x4d\x65\x00\x00\x00\x00\x00\x00\x48\x44\x5c\xc9\x00\x00\x5f\x7e\x4b\x84\x00\x00\x5f\x7f\x00\x00\x49\xe3\x48\x90\x5f\x80\x00\x00\x53\xf7\x00\x00\x00\x00\x5f\x81\x00\x00\x00\x00\x00\x00\x46\x75\x00\x00\x00\x00\x00\x00\x50\x80\x00\x00\x46\x74\x00\x00\x00\x00\x00\x00\x46\x78\x00\x00\x00\x00\x5f\x83\x00\x00\x00\x00\x50\x82\x00\x00", /* 7700 */ "\x00\x00\x48\x47\x00\x00\x00\x00\x5f\x86\x00\x00\x00\x00\x5f\x85\x5f\x84\x52\xbc\x00\x00\x4d\xa2\x45\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8b\x00\x00\x00\x00\x51\xca\x46\x42\x4e\x6a\x00\x00\x00\x00\x00\x00\x5f\x87\x5f\x89\x5f\x8a\x00\x00\x00\x00\x5f\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8c\x5f\x8d\x00\x00\x4e\x5f\x00\x00\x49\xa5\x00\x00\x00\x00\x00\x00\x47\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8e\x5f\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x90\x5f\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6c\x00\x00\x4a\x73\x00\x00\x5f\x94\x4a\x96\x00\x00\x5f\x91\x00\x00\x00\x00\x5f\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x97\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x96\x5f\x95", /* 7780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x99\x00\x00\x00\x00\x5f\x98\x00\x00\x00\x00\x5f\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9c\x00\x00\x5f\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb0\x52\x7d\x00\x00\x00\x00\x5f\x9d\x00\x00\x00\x00\x4f\x9b\x00\x00\x00\x00\x5f\x9e\x00\x00\x00\x00\x5f\x9f\x00\x00\x5f\xa3\x5f\xa1\x5f\xa2\x00\x00\x5f\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x50\x00\x00\x00\x00\x5f\xa6\x50\xed\x5f\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc1\x5f\xa8\x00\x00\x45\xb0\x00\x00\x55\xc9\x00\x00\x4e\x4d\x00\x00\x00\x00\x00\x00\x4a\x82\x5f\xa9\x51\xbb\x00\x00\x00\x00\x00\x00\x45\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xab\x00\x00\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x49\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xad\x00\x00\x46\xd3\x4c\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb0\x5f\xae\x00\x00\x00\x00\x00\x00\x4d\x45\x54\xb4\x52\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc2\x00\x00\x4a\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x84\x4a\xef\x00\x00\x00\x00\x53\x69\x00\x00\x00\x00\x52\xbf\x00\x00\x5f\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb6\x00\x00\x5f\xb9\x00\x00\x00\x00\x00\x00", /* 7880 */ "\x00\x00\x4f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb7\x51\x95\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xba\x53\x56\x5f\xb5\x00\x00\x00\x00\x51\x7b\x00\x00\x4f\xb1\x00\x00\x52\xd2\x00\x00\x54\x5b\x00\x00\x00\x00\x5f\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbb\x00\x00\x00\x00\x00\x00\x4d\xf8\x00\x00\x50\x7d\x5f\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7a\x00\x00\x5f\xc4\x00\x00\x5f\xc3\x00\x00\x00\x00\x4a\x62\x00\x00\x00\x00\x00\x00\x5f\xc5\x5f\xc0\x00\x00\x00\x00\x00\x00\x5f\xc6\x5f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x9c\x5f\xbf\x00\x00\x00\x00\x5f\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc8\x49\xb4\x00\x00\x00\x00\x00\x00\x5f\xc7\x00\x00\x00\x00\x48\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xca\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x51\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x9c\x00\x00\x00\x00\x5f\xcd\x4d\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xb9\x00\x00\x00\x00\x00\x00\x51\x4c\x5f\xd0\x5f\xcf\x00\x00\x00\x00\x00\x00\x5f\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x53\x00\x00\x49\x58\x00\x00\x46\x63\x00\x00\x5f\xd3\x53\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x92\x4e\xd8\x4f\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8c\x00\x00\x00\x00\x55\x5c\x00\x00\x5f\xd8\x4c\xdc\x53\x65\x00\x00\x00\x00\x5f\xd7\x00\x00\x00\x00\x4c\xeb\x45\xa1\x5f\xd6\x5f\xd4\x00\x00\x4f\x89\x00\x00\x00\x00\x49\xf9\x00\x00\x00\x00\x4d\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x53\x00\x00\x00\x00\x52\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xda", /* 7980 */ "\x50\xe7\x4d\x75\x00\x00\x00\x00\x50\xae\x4f\x87\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdb\x00\x00\x00\x00\x52\x86\x4b\xa7\x45\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdf\x00\x00\x5f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xaa\x4f\xd7\x00\x00\x00\x00\x5f\xe0\x00\x00\x00\x00\x00\x00\x54\xf5\x00\x00\x50\xfa\x55\x53\x00\x00\x5f\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6a\x5f\xe2\x00\x00\x00\x00\x55\x5d\x54\x63\x53\xd0\x45\xf1\x46\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe3\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xed\x4d\xba\x00\x00\x00\x00\x5f\xe4\x00\x00\x00\x00\x4c\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x83\x00\x00\x54\xb5\x00\x00\x5f\xe7\x50\x8f\x00\x00\x4c\x8a\x5f\xe5\x00\x00\x4d\x9f\x00\x00\x00\x00\x5f\xe6\x00\x00\x00\x00\x00\x00\x4b\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x75\x00\x00\x00\x00\x00\x00\x00\x00", /* 7a00 */ "\x52\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe8\x00\x00\x00\x00\x47\xf4\x00\x00\x5f\xe9\x47\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xfa\x00\x00\x00\x00\x50\x87\x5f\xea\x5f\xeb\x4d\xcf\x00\x00\x52\x96\x00\x00\x00\x00\x5f\xec\x53\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x92\x00\x00\x00\x00\x5f\xed\x47\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xef\x00\x00\x00\x00\x00\x00\x5f\xf0\x4d\xbe\x4f\xc7\x5f\xee\x4f\xd5\x4e\x94\x00\x00\x48\xd4\x5f\xf1\x00\x00\x00\x00\x52\xbe\x00\x00\x00\x00\x5f\xf3\x00\x00\x00\x00\x00\x00\x48\x91\x52\x54\x50\xb8\x50\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf5\x5f\xf4\x4e\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf6\x00\x00\x4f\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf8\x00\x00\x00\x00\x00\x00\x4b\x86\x00\x00\x49\x86\x00\x00\x00\x00\x5f\xf9\x47\x8d\x00\x00\x00\x00\x5f\xfa\x00\x00\x4e\x91", /* 7a80 */ "\x00\x00\x4a\xfd\x00\x00\x51\x69\x54\x99\x00\x00\x00\x00\x00\x00\x5f\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb0\x4b\xe9\x00\x00\x5f\xfc\x5f\xfe\x60\x41\x5f\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x42\x4a\x65\x00\x00\x00\x00\x00\x00\x50\xaa\x49\xa7\x60\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x44\x00\x00\x00\x00\x00\x00\x55\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x47\x00\x00\x00\x00\x00\x00\x60\x46\x60\x49\x60\x48\x00\x00\x60\x4a\x52\xf0\x00\x00\x60\x4b\x45\xdd\x00\x00\x60\x4c\x00\x00\x60\x4d\x00\x00\x60\x4f\x60\x4e\x60\x51\x00\x00\x60\x50\x00\x00\x00\x00\x00\x00\x60\x52\x60\x53\x00\x00\x49\xe7\x60\x54\x00\x00\x66\xc1\x47\x6e\x60\x55\x60\x56\x54\x6b\x00\x00\x4d\x50\x60\x57\x60\x58\x00\x00\x00\x00\x51\xc8\x60\x5a\x00\x00\x60\x5b\x00\x00\x48\xef\x60\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x71\x00\x00\x60\x5d\x45\xf5\x54\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x52\x87", /* 7b00 */ "\x00\x00\x00\x00\x60\x5e\x00\x00\x54\xd5\x00\x00\x60\x62\x00\x00\x51\xcf\x00\x00\x60\x61\x60\x60\x00\x00\x00\x00\x00\x00\x60\x5f\x00\x00\x49\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe7\x60\x65\x00\x00\x4f\x41\x00\x00\x00\x00\x60\x66\x00\x00\x47\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf4\x4f\xd9\x00\x00\x60\x68\x00\x00\x00\x00\x00\x00\x46\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x63\x00\x00\x60\x67\x60\x64\x00\x00\x00\x00\x49\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6c\x4a\xc7\x00\x00\x4d\x9b\x46\xa7\x00\x00\x4b\x8f\x60\x6b\x60\x6a\x00\x00\x52\xf5\x60\x69\x4b\x45\x4b\x7c\x00\x00\x49\xd0\x00\x00\x46\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x84\x00\x00\x50\x48\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4e\x00\x00\x60\x73\x00\x00\x60\x71\x60\x72\x00\x00\x00\x00\x60\x70\x60\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7b80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9b\x4f\x51\x00\x00\x00\x00\x00\x00\x55\xa4\x00\x00\x60\x77\x00\x00\x60\x7b\x00\x00\x00\x00\x60\x7a\x00\x00\x4e\xe0\x4c\xcc\x00\x00\x48\x43\x60\x75\x60\x7c\x60\x79\x00\x00\x60\x78\x60\x74\x60\x82\x60\x76\x00\x00\x46\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x00\x00\x00\x00\x51\x8d\x00\x00\x00\x00\x00\x00\x4a\xfb\x00\x00\x00\x00\x60\x80\x00\x00\x00\x00\x00\x00\x50\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa1\x51\xe8\x00\x00\x00\x00\x49\xe8\x00\x00\x60\x81\x4f\xb6\x00\x00\x49\xa8\x00\x00\x60\x7e\x60\x7f\x00\x00\x00\x00\x60\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x83\x00\x00\x00\x00\x48\x75\x00\x00\x00\x00\x00\x00\x4a\xd8\x60\x87\x60\x85\x00\x00\x00\x00\x60\x84\x00\x00\x00\x00\x00\x00\x54\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8c\x00\x00\x00\x00\x60\x8e\x60\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7c00 */ "\x60\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8d\x00\x00\x00\x00\x00\x00\x4f\x53\x57\x8a\x60\x8a\x60\x88\x00\x00\x00\x00\x51\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x60\x92\x00\x00\x4b\xec\x00\x00\x60\x8f\x00\x00\x00\x00\x00\x00\x60\x90\x00\x00\x00\x00\x60\x91\x60\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x93\x51\xab\x00\x00\x00\x00\x00\x00\x00\x00\x60\x95\x52\x70\x4f\x4c\x60\x96\x00\x00\x00\x00\x60\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x97\x4d\xfe\x00\x00\x51\xf2\x60\x9a\x00\x00\x00\x00\x00\x00\x4f\x99\x00\x00\x60\x99\x00\x00\x60\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9c\x4c\xee\x00\x00\x00\x00\x00\x00\x52\xaa\x60\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x6f\x00\x00\x60\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf0\x00\x00", /* 7c80 */ "\x00\x00\x55\xe7\x4e\x85\x60\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x9e\x00\x00\x4f\xcc\x00\x00\x53\xc9\x00\x00\x00\x00\x60\xa1\x00\x00\x4c\xa9\x00\x00\x00\x00\x4c\x4b\x00\x00\x4d\x59\x4b\xf7\x00\x00\x00\x00\x4f\xc8\x00\x00\x00\x00\x00\x00\x4b\xfb\x00\x00\x60\xa5\x60\xa3\x00\x00\x60\xa2\x52\xab\x00\x00\x4b\xd4\x60\xa7\x00\x00\x00\x00\x60\xa4\x00\x00\x60\xa6\x60\xab\x00\x00\x00\x00\x60\xaa\x60\xa9\x60\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xac\x00\x00\x00\x00\x00\x00\x60\xae\x46\x6c\x00\x00\x51\xbc\x00\x00\x60\xb0\x00\x00\x00\x00\x60\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x54\x71\x00\x00\x00\x00\x00\x00\x51\x60\x00\x00\x00\x00\x00\x00\x60\xb1\x00\x00\x00\x00\x00\x00\x48\x84\x00\x00\x60\xb3\x00\x00\x00\x00\x00\x00\x60\xb4\x00\x00\x54\x92\x51\x8c\x51\x4b\x00\x00\x60\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xb5\x00\x00\x00\x00\x60\xb6\x00\x00\x60\xb7\x00\x00\x60\xb8\x00\x00\x46\xc7\x00\x00\x52\xc2\x48\xfa\x00\x00\x00\x00\x51\xfe\x00\x00", /* 7d00 */ "\x46\xdb\x00\x00\x60\xba\x00\x00\x47\xbd\x4b\x67\x60\xb9\x00\x00\x00\x00\x00\x00\x60\xbd\x4c\xf9\x00\x00\x49\xe2\x00\x00\x00\x00\x4f\xb5\x00\x00\x00\x00\x00\x00\x47\xa6\x60\xbc\x00\x00\x4f\x47\x4c\x78\x46\x80\x49\xf3\x4f\xf3\x60\xbb\x00\x00\x00\x00\x00\x00\x47\x9f\x48\x77\x4c\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf0\x55\x92\x00\x00\x60\xc0\x51\x48\x47\x68\x00\x00\x60\xc1\x4e\x59\x00\x00\x60\xc3\x00\x00\x00\x00\x00\x00\x4c\xe4\x4c\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc2\x00\x00\x00\x00\x49\xf4\x55\x63\x46\xb9\x60\xbe\x60\xc5\x00\x00\x60\xc4\x00\x00\x00\x00\x60\xbf\x46\x88\x00\x00\x60\xc9\x60\xcc\x46\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd0\x60\xc6\x00\x00\x50\x6d\x00\x00\x00\x00\x4c\xe7\x4e\xf7\x60\xcd\x00\x00\x00\x00\x47\x57\x00\x00\x60\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcb\x00\x00\x00\x00\x48\x81\x52\x68\x60\xc7\x00\x00\x4a\xe4\x4a\xf3\x00\x00\x00\x00\x49\xf6\x00\x00\x00\x00\x00\x00\x54\xed\x00\x00\x00\x00", /* 7d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x74\x00\x00\x00\x00\x00\x00\x60\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x4a\x47\xcb\x54\xeb\x50\x70\x00\x00\x00\x00\x60\xdc\x60\xda\x00\x00\x60\xd8\x60\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd7\x51\xa3\x48\x80\x60\xd1\x60\xd9\x60\xdd\x48\xcb\x4a\x53\x00\x00\x4d\xc9\x60\xd3\x00\x00\x60\xd4\x60\xdb\x00\x00\x54\xd3\x54\xa6\x00\x00\x60\xd6\x49\xdc\x48\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd5\x00\x00\x00\x00\x4b\x97\x53\x7d\x00\x00\x00\x00\x00\x00\x47\x93\x00\x00\x48\xa5\x4a\x9b\x00\x00\x00\x00\x60\xde\x60\xe1\x00\x00\x60\xdf\x00\x00\x46\x87\x00\x00\x60\xe8\x60\xe0\x60\xe3\x00\x00\x4a\x80\x60\xe7\x00\x00\x00\x00\x60\xe2\x00\x00\x00\x00\x00\x00\x48\x4e\x4c\xfc\x00\x00\x00\x00\x55\x6b\x00\x00\x00\x00\x4e\x9a\x00\x00\x00\x00\x60\xe6\x00\x00\x48\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe4\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x4b\xaa\x00\x00\x00\x00\x48\x59\x60\xe9\x00\x00\x00\x00\x00\x00\x60\xee\x60\xea\x60\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe6\x00\x00\x00\x00\x4f\x6b\x60\xed\x00\x00\x60\xeb\x5b\xcc\x55\xa8\x00\x00\x00\x00\x4e\x93\x00\x00\x00\x00\x00\x00\x00\x00\x49\xe4\x00\x00\x00\x00\x49\xf7\x00\x00\x00\x00\x60\xf2\x60\xf9\x00\x00\x00\x00\x60\xf4\x00\x00\x60\xf8\x00\x00\x60\xf6\x60\xef\x60\xf5\x00\x00\x60\xf3\x48\x66\x00\x00\x00\x00\x47\x59\x00\x00\x60\xf7\x00\x00\x00\x00\x60\xf0\x00\x00\x60\xf1\x00\x00\x48\x68\x53\x73\x00\x00\x52\xda\x00\x00\x00\x00\x00\x00\x00\x00\x60\xfd\x00\x00\x48\x9a\x51\xd4\x60\xfb\x00\x00\x00\x00\x60\xfe\x61\x41\x00\x00\x00\x00\x60\xfa\x60\xfc\x00\x00\x00\x00\x52\xda\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf1\x61\x42\x00\x00\x61\x45\x61\x44\x53\x73\x00\x00\x4d\x9a\x00\x00\x00\x00\x4b\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x43\x00\x00\x61\x47\x61\x46\x61\x48\x00\x00\x61\x4a", /* 7e80 */ "\x00\x00\x00\x00\x55\xeb\x61\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x52\x78\x61\x4c\x51\xbf\x00\x00\x61\x4e\x00\x00\x61\x4d\x55\xfa\x52\x73\x00\x00\x61\x4f\x61\x50\x61\x51\x00\x00\x61\x52\x00\x00\x00\x00\x00\x00\x00\x00\x61\x53\x53\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x84\x00\x00\x61\x54\x00\x00\x61\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x56\x00\x00\x61\x57\x00\x00\x00\x00\x00\x00\x00\x00\x61\x58\x54\xcb\x61\x59\x00\x00\x51\x6e\x61\x5a\x00\x00\x00\x00\x61\x5c\x61\x5b\x00\x00\x00\x00\x61\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5e\x61\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x61\x61\x60\x61\x62\x4c\x4e\x55\xef\x00\x00\x00\x00\x46\x8c\x00\x00\x4f\x82\x00\x00\x4c\x99\x00\x00\x00\x00\x55\x79\x00\x00\x55\xa5\x61\x63\x5a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f80 */ "\x00\x00\x00\x00\x61\x64\x61\x66\x00\x00\x4d\xfa\x61\x65\x61\x67\x61\x68\x00\x00\x4a\xd1\x00\x00\x61\x69\x00\x00\x45\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6d\x00\x00\x00\x00\x61\x6c\x61\x6b\x00\x00\x00\x00\x61\x6e\x00\x00\x61\x6f\x47\xb1\x00\x00\x00\x00\x00\x00\x55\x96\x45\x98\x00\x00\x00\x00\x00\x00\x00\x00\x61\x71\x61\x70\x00\x00\x00\x00\x61\x72\x00\x00\x00\x00\x00\x00\x61\x74\x00\x00\x61\x75\x61\x73\x00\x00\x00\x00\x00\x00\x47\x8f\x00\x00\x00\x00\x00\x00\x4f\xfb\x00\x00\x00\x00\x00\x00\x61\x78\x61\x79\x00\x00\x00\x00\x00\x00\x61\x7a\x00\x00\x4d\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x69\x00\x00\x54\xf9\x61\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x69\x61\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7d\x00\x00\x00\x00\x61\x7e\x00\x00\x55\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb6\x00\x00\x00\x00\x61\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x80\x00\x00\x51\xf6\x4d\xb5\x00\x00\x00\x00\x00\x00", /* 8000 */ "\x52\xa0\x49\x85\x00\x00\x47\x60\x61\x81\x46\x70\x53\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x61\x82\x51\xe6\x00\x00\x00\x00\x00\x00\x49\x8e\x00\x00\x61\x83\x00\x00\x00\x00\x49\x9a\x00\x00\x4f\xec\x54\xe4\x61\x84\x00\x00\x00\x00\x61\x85\x00\x00\x00\x00\x00\x00\x00\x00\x61\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xab\x00\x00\x00\x00\x4e\x99\x00\x00\x00\x00\x00\x00\x00\x00\x61\x89\x00\x00\x55\xb8\x00\x00\x61\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8b\x00\x00\x00\x00\x00\x00\x61\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8c\x00\x00\x00\x00\x00\x00\x4b\xb5\x00\x00\x61\x8d\x00\x00\x54\x79\x00\x00\x00\x00\x00\x00\x48\xbb\x61\x8e\x00\x00\x4b\x89\x61\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xca\x61\x93\x00\x00\x61\x92\x61\x91\x4d\xa8\x00\x00\x61\x94\x48\xd7\x00\x00\x61\x95\x00\x00\x00\x00\x00\x00\x61\x96\x53\xe4\x61\x97", /* 8080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x61\x98\x61\x99\x53\xb6\x4b\x41\x00\x00\x4a\x42\x00\x00\x55\x7f\x4e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x9a\x00\x00\x00\x00\x52\x67\x00\x00\x52\x6a\x00\x00\x61\x9b\x52\x92\x00\x00\x4c\x8c\x00\x00\x00\x00\x00\x00\x4c\xc5\x53\x82\x00\x00\x00\x00\x49\x7b\x00\x00\x00\x00\x00\x00\x4b\x79\x4c\xfb\x00\x00\x61\x9e\x61\x9c\x00\x00\x50\xeb\x00\x00\x52\xd5\x48\xac\x00\x00\x54\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf6\x61\xa3\x00\x00\x4e\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb2\x00\x00\x52\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x88\x00\x00\x00\x00\x61\xa1\x61\xa4\x61\x9f\x00\x00\x61\xa2\x50\xb6\x00\x00\x00\x00\x4d\x63\x00\x00\x00\x00\x4e\xe9\x61\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa6\x00\x00\x61\xa7\x00\x00\x00\x00\x4e\xab\x00\x00\x00\x00\x00\x00\x4b\xe3\x00\x00\x00\x00\x00\x00\x61\xb0\x47\x4f\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x48\x74\x00\x00\x00\x00\x50\x51\x55\xec\x47\xe3\x50\x79\x61\xa5\x53\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5c\x61\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xaa\x00\x00\x4a\xb4\x00\x00\x4c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x61\xad\x00\x00\x00\x00\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x61\xac\x00\x00\x00\x00\x00\x00\x00\x00\x61\xab\x00\x00\x00\x00\x52\xc4\x00\x00\x4d\x62\x61\xaf\x00\x00\x61\xae\x52\x47\x4c\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb3\x61\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x51\xce\x00\x00\x00\x00\x61\xb2\x00\x00\x4b\xa4\x61\xb1\x00\x00\x00\x00\x61\xb6\x00\x00\x00\x00\x00\x00\x4d\xb6\x4c\xa0\x52\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9a", /* 8180 */ "\x61\xba\x00\x00\x61\xbb\x61\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb8\x00\x00\x61\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd8\x00\x00\x00\x00\x00\x00\x61\xbf\x00\x00\x61\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x51\x91\x00\x00\x4d\x8a\x50\x60\x00\x00\x00\x00\x61\xbc\x00\x00\x00\x00\x61\xbe\x61\xc1\x00\x00\x00\x00\x00\x00\x4e\xf6\x61\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xc4\x00\x00\x00\x00\x50\x76\x00\x00\x61\xc0\x00\x00\x00\x00\x61\xc3\x00\x00\x61\xca\x00\x00\x00\x00\x61\xc7\x61\xc6\x53\x5f\x61\xc8\x00\x00\x61\xc9\x00\x00\x00\x00\x00\x00\x54\x74\x00\x00\x61\xc5\x61\xcb\x00\x00\x00\x00\x00\x00\x61\xcc\x00\x00\x00\x00\x00\x00\x61\xcd\x00\x00\x4d\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x61\xce\x61\xcf\x61\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd1\x61\xd2\x00\x00\x00\x00\x4a\x47\x00\x00\x53\x8a\x00\x00\x51\x73\x4c\xd0\x00\x00\x45\xc3\x00\x00\x00\x00\x4d\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x48\x4c\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd3\x61\xd4\x4a\x89\x00\x00\x61\xd5\x00\x00", /* 8200 */ "\x00\x00\x61\xd6\x61\xd7\x00\x00\x00\x00\x61\xd8\x00\x00\x53\x58\x46\x6a\x57\x78\x62\xba\x00\x00\x50\x94\x61\xd9\x4c\x58\x00\x00\x61\xda\x00\x00\x61\xdb\x00\x00\x00\x00\x00\x00\x61\xdc\x4e\x5b\x4c\xaa\x00\x00\x00\x00\x4f\xc1\x4f\xb8\x00\x00\x4a\x63\x4b\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdd\x48\x9f\x61\xde\x49\x56\x00\x00\x61\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe1\x00\x00\x54\xdb\x4b\x87\x53\xac\x61\xe0\x46\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xae\x61\xe3\x61\xe4\x00\x00\x00\x00\x61\xe5\x00\x00\x61\xe6\x00\x00\x00\x00\x61\xe8\x00\x00\x61\xe7\x00\x00\x4c\x4a\x00\x00\x61\xe9\x00\x00\x61\xea\x61\xeb\x00\x00\x00\x00\x55\xb4\x45\xc4\x00\x00\x61\xec\x47\xc3\x00\x00\x00\x00\x00\x00\x4d\x54\x61\xed\x53\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xee\x00\x00", /* 8280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9a\x00\x00\x61\xef\x00\x00\x00\x00\x00\x00\x00\x00\x61\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbd\x00\x00\x00\x00\x00\x00\x49\x72\x00\x00\x61\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7b\x4a\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x61\xf1\x61\xf4\x54\x42\x00\x00\x4f\xe5\x00\x00\x46\xd9\x00\x00\x46\x83\x00\x00\x00\x00\x00\x00\x00\x00\x49\x53\x4d\xd0\x00\x00\x61\xf3\x00\x00\x4e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4b\x61\xf9\x55\x59\x52\xd7\x00\x00\x00\x00\x4a\xb8\x00\x00\x62\x46\x00\x00\x53\x77\x62\x43\x00\x00\x62\x41\x61\xf7\x00\x00\x61\xf5\x00\x00\x61\xf6\x00\x00\x46\xd6\x4a\x5f\x54\xb0\x00\x00\x00\x00\x00\x00\x4d\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xee\x00\x00\x61\xfb\x61\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x61\xfe\x62\x44\x61\xfd\x00\x00\x00\x00\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x61\xf8\x46\x46\x61\xfc\x54\x7a\x4b\xd3\x62\x42\x00\x00\x00\x00\x62\x45\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4a\x53\xf6\x62\x52\x00\x00\x00\x00\x00\x00\x50\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x58\x00\x00\x00\x00\x00\x00\x00\x00\x47\x4c\x00\x00\x00\x00\x62\x51\x00\x00\x00\x00\x00\x00\x62\x50\x00\x00\x62\x4b\x54\x7b\x00\x00\x62\x49\x62\x47\x49\x77\x00\x00\x4d\xf7\x62\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4f\x53\xb3\x00\x00\x00\x00\x48\x42\x53\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5f\x62\x4e\x00\x00\x46\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5f\x00\x00\x62\x5a\x00\x00\x4b\xa1\x00\x00\x00\x00\x00\x00\x49\xe0\x62\x5d\x00\x00\x00\x00\x62\x5b", /* 8380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x62\x00\x00\x54\x86\x00\x00\x62\x63\x62\x5c\x00\x00\x00\x00\x00\x00\x62\x59\x00\x00\x00\x00\x00\x00\x00\x00\x62\x60\x00\x00\x00\x00\x62\x57\x00\x00\x00\x00\x00\x00\x62\x53\x00\x00\x00\x00\x00\x00\x51\xee\x62\x55\x62\x61\x00\x00\x62\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x64\x00\x00\x62\x54\x54\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc9\x00\x00\x00\x00\x00\x00\x62\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x75\x00\x00\x00\x00\x00\x00\x62\x6e\x00\x00\x00\x00\x00\x00\x47\x53\x00\x00\x62\x67\x00\x00\x00\x00\x46\xd7\x00\x00\x4c\x73\x00\x00\x62\x68\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x51\x00\x00\x00\x00\x51\x80\x00\x00\x62\x6c\x00\x00\x00\x00\x00\x00\x4b\xa8\x00\x00\x00\x00\x53\xd4\x62\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6a\x00\x00\x54\xe9\x00\x00\x00\x00\x00\x00\x4b\x6c\x51\x6d\x48\xcc\x62\x71\x00\x00\x62\x65\x00\x00\x62\x74\x62\x69\x00\x00\x00\x00\x00\x00\x62\x76\x00\x00\x62\x6a\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x62\x6b\x54\xf7\x00\x00\x00\x00\x62\x6f\x00\x00\x00\x00\x52\xc9\x62\x6d\x50\xdb\x62\x72\x54\x82\x00\x00\x00\x00\x00\x00\x00\x00\x62\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x73\x00\x00\x54\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4a\x62\x77\x00\x00\x4b\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7c\x00\x00\x00\x00\x00\x00\x62\x85\x00\x00\x00\x00\x62\x84\x00\x00\x00\x00\x00\x00\x62\x79\x47\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x82\x00\x00\x62\x7e\x45\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x59\x00\x00\x00\x00\x00\x00\x48\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x47\x62\x78\x50\x71\x00\x00\x00\x00\x4e\x72\x00\x00\x00\x00\x62\x81\x00\x00\x62\x7c\x4f\x79\x51\x6c\x62\x7f\x62\x83\x00\x00\x54\x4e\x00\x00\x00\x00\x00\x00\x50\xd9\x00\x00\x62\x7b\x00\x00\x62\x7d\x50\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x62\x80\x00\x00\x62\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x93\x00\x00\x00\x00\x00\x00\x4f\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x50\x95\x00\x00\x00\x00\x52\x59\x00\x00\x00\x00\x62\x89\x00\x00\x62\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x90\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb2\x00\x00\x62\x8a\x00\x00\x00\x00\x00\x00\x4a\xba\x62\x87\x00\x00\x62\x8c\x50\xb9\x00\x00\x00\x00\x62\x88\x00\x00\x62\x8f\x00\x00\x00\x00\x4c\x94\x00\x00\x62\x91\x00\x00\x00\x00\x50\x83\x62\x86\x4f\x6d\x00\x00\x62\x8b\x00\x00\x00\x00\x62\x8e\x4f\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x62\x92\x00\x00\x00\x00\x62\x94\x62\x8d\x00\x00\x52\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x88\x00\x00\x4b\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8b\x00\x00\x00\x00\x62\x95", /* 8500 */ "\x52\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6c\x00\x00\x55\x7b\x62\x9c\x62\x9b\x00\x00\x62\x97\x62\x98\x00\x00\x54\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9a\x00\x00\x54\xa8\x00\x00\x53\xf8\x00\x00\x00\x00\x4f\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x99\x4e\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd1\x00\x00\x00\x00\x62\xa0\x62\xa5\x00\x00\x52\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x62\xa4\x53\xa8\x62\xa6\x62\xa7\x00\x00\x00\x00\x55\x65\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9e\x00\x00\x62\xa9\x00\x00\x54\x91\x62\xa3\x62\xa1\x62\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x50\xde\x54\xf0\x51\xd3\x62\xa8\x00\x00\x62\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb7\x00\x00", /* 8580 */ "\x62\xaa\x00\x00\x00\x00\x00\x00\x4a\x92\x00\x00\x00\x00\x62\xb4\x62\xac\x00\x00\x62\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb8\x62\xad\x00\x00\x00\x00\x62\xb1\x00\x00\x00\x00\x4c\xec\x00\x00\x51\xad\x00\x00\x62\xb2\x62\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xab\x00\x00\x4f\xbf\x00\x00\x62\xaf\x4c\xf1\x54\x5a\x49\x98\x46\xe1\x00\x00\x62\xb3\x53\xf9\x62\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xbf\x62\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xbc\x00\x00\x00\x00\x00\x00\x4e\xed\x00\x00\x62\xbe\x62\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc4\x62\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x68\x62\xc3\x00\x00\x00\x00\x00\x00\x4f\xf6\x4c\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe2\x00\x00\x62\xc5\x53\xed\x50\x5f\x00\x00\x00\x00\x62\xc9\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x54\x96\x00\x00\x00\x00\x00\x00\x4e\xda\x4c\xbf\x00\x00\x00\x00\x62\xc6\x62\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc7\x00\x00\x00\x00\x5c\xbd\x5c\xbe\x00\x00\x00\x00\x62\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa6\x00\x00\x5f\x82\x62\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcf\x4a\xab\x00\x00\x52\x60\x00\x00\x00\x00\x00\x00\x52\xfb\x62\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x72\x00\x00\x52\x50\x00\x00\x55\x88\x62\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x00\x00\x00\x00\x00\x00\x4b\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xb6\x00\x00\x51\x44\x00\x00\x00\x00\x00\x00\x00\x00", /* 8680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xaa\x62\xd8\x62\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd5\x00\x00\x4f\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd6\x55\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd7\x62\xd9\x62\xe3\x00\x00\x00\x00\x00\x00\x62\xdc\x62\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xdd\x00\x00\x62\xde\x4f\xea\x00\x00\x62\xe0\x00\x00\x53\xd8\x00\x00\x4d\xf9\x62\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbb\x00\x00\x62\xe9\x00\x00\x00\x00\x62\xe5\x62\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe6\x00\x00\x00\x00\x62\xe7\x4e\x66\x53\xa5\x4f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x4e\x62\xf3\x00\x00\x62\xef\x00\x00\x00\x00\x55\x99\x00\x00", /* 8700 */ "\x62\xed\x00\x00\x4e\xcd\x62\xee\x00\x00\x00\x00\x62\xeb\x00\x00\x62\xec\x62\xf1\x62\xf4\x00\x00\x00\x00\x62\xf2\x00\x00\x00\x00\x00\x00\x62\xf0\x62\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xdc\x00\x00\x62\xfa\x00\x00\x53\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf8\x00\x00\x00\x00\x00\x00\x62\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf5\x00\x00\x00\x00\x52\x6d\x00\x00\x00\x00\x00\x00\x62\xf7\x00\x00\x00\x00\x00\x00\x62\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x52\xa1\x62\xfd\x00\x00\x62\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x63\x49\x00\x00\x53\x47\x00\x00\x63\x42\x00\x00\x63\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xfb\x63\x46\x00\x00\x00\x00\x63\x4a\x00\x00\x00\x00\x51\xc3\x00\x00\x63\x43\x00\x00\x63\x45\x00\x00\x00\x00\x00\x00\x63\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x41\x00\x00\x4e\x6e\x00\x00\x62\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4b", /* 8780 */ "\x00\x00\x00\x00\x63\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x00\x00\x63\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x00\x00\x00\x00\x63\x4f\x00\x00\x00\x00\x00\x00\x63\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd6\x63\x59\x00\x00\x63\x51\x00\x00\x00\x00\x63\x52\x00\x00\x00\x00\x00\x00\x63\x56\x00\x00\x63\x4d\x54\xf4\x00\x00\x00\x00\x00\x00\x63\x50\x00\x00\x00\x00\x00\x00\x00\x00\x63\x53\x00\x00\x63\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x00\x00\x63\x5a\x00\x00\x00\x00\x63\x5b\x00\x00\x00\x00\x00\x00\x63\x63\x63\x64\x00\x00\x50\x90\x00\x00\x51\xc6\x00\x00\x00\x00\x63\x62\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbd\x00\x00\x63\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x61\x63\x5d\x63\x5f\x00\x00\x63\x65\x00\x00\x00\x00\x00\x00\x63\x66\x63\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa1\x00\x00\x63\x68\x63\x67\x53\x51\x00\x00\x00\x00\x00\x00\x63\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x63\x6b\x00\x00\x00\x00\x63\x6c\x00\x00\x63\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x43\x00\x00\x63\x6e\x00\x00\x63\x6f\x00\x00\x4b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xa4\x63\x70\x00\x00\x00\x00\x00\x00\x00\x00\x63\x71\x48\x6c\x00\x00\x00\x00\x00\x00\x4b\xa5\x00\x00\x63\x72\x00\x00\x47\x80\x00\x00\x4d\xa5\x63\x73\x00\x00\x00\x00\x4b\xed\x63\x74\x4a\xea\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc0\x00\x00\x00\x00\x63\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x54\x00\x00\x63\x7a\x00\x00\x00\x00\x63\x78\x00\x00\x52\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x79\x63\x77\x4a\xa7", /* 8880 */ "\x00\x00\x63\x76\x63\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x6a\x00\x00\x00\x00\x4a\x54\x00\x00\x63\x82\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7e\x00\x00\x00\x00\x00\x00\x4a\x57\x63\x7d\x00\x00\x63\x80\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7c\x00\x00\x00\x00\x00\x00\x63\x81\x00\x00\x63\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8d\x00\x00\x00\x00\x63\x7f\x00\x00\x54\xc5\x63\x86\x00\x00\x00\x00\x4f\x5a\x63\x85\x00\x00\x54\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x84\x00\x00\x49\xbd\x4f\x60\x63\x87\x63\x88\x48\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x63\x89\x46\xf8\x00\x00\x00\x00\x63\x8a\x63\x8b\x00\x00\x00\x00\x49\x6a\x63\x8c\x00\x00\x4f\x8a\x00\x00\x54\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x92\x4f\xa8\x53\x49\x63\x90\x00\x00\x00\x00\x4f\x43\x63\x8d\x00\x00\x00\x00\x63\x8f\x45\x7b\x4c\x8d\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x63\x8e\x00\x00\x63\x93\x00\x00\x00\x00\x4b\x51\x00\x00\x00\x00\x63\x97\x00\x00\x63\x94\x00\x00\x00\x00\x00\x00\x54\x5e\x00\x00\x51\xba\x63\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xda\x63\x96\x63\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x63\x95\x63\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9e\x00\x00\x63\xa0\x00\x00\x00\x00\x63\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9c\x00\x00\x63\x9f\x50\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa2\x63\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa4\x54\xaf\x63\xa3\x00\x00\x00\x00\x00\x00\x63\xa7\x00\x00\x63\xa5\x00\x00\x00\x00\x00\x00\x63\xa6\x00\x00\x00\x00\x63\xa8\x00\x00\x63\xa9\x00\x00\x00\x00\x4d\xdf\x00\x00\x63\xaa\x00\x00\x00\x00\x63\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xac\x45\x58", /* 8980 */ "\x00\x00\x46\x55\x00\x00\x63\xad\x00\x00\x00\x00\x4d\xf2\x4b\xfa\x63\xae\x00\x00\x63\xaf\x45\xbb\x00\x00\x00\x00\x00\x00\x46\xfb\x00\x00\x00\x00\x00\x00\x63\xb0\x00\x00\x00\x00\x4a\x50\x53\xeb\x63\xb1\x00\x00\x4a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb4\x4e\xd0\x00\x00\x63\xb3\x48\x85\x00\x00\x63\xb5\x00\x00\x00\x00\x63\xb6\x00\x00\x00\x00\x63\xb7\x48\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb8\x00\x00\x00\x00\x63\xba\x00\x00\x63\xb9\x63\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbc\x00\x00\x53\x60\x63\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb7\x00\x00\x00\x00\x4c\xd1\x63\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbf\x00\x00\x00\x00\x00\x00\x63\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a00 */ "\x47\x9a\x00\x00\x4f\xc4\x63\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc9\x00\x00\x50\xf2\x00\x00\x63\xc4\x00\x00\x49\xd2\x00\x00\x63\xc3\x00\x00\x63\xc5\x4b\xc8\x00\x00\x00\x00\x63\xc2\x4a\xb6\x47\x94\x00\x00\x00\x00\x63\xc6\x00\x00\x63\xc7\x00\x00\x50\xef\x00\x00\x00\x00\x00\x00\x54\xcc\x00\x00\x63\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x71\x00\x00\x00\x00\x45\xe2\x00\x00\x00\x00\x00\x00\x4a\x9a\x00\x00\x4b\xad\x4c\xdf\x00\x00\x63\xc9\x63\xcb\x00\x00\x00\x00\x4d\x68\x4f\x66\x49\xba\x00\x00\x00\x00\x00\x00\x00\x00\x63\xca\x00\x00\x00\x00\x00\x00\x00\x00\x63\xce\x00\x00\x63\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x76\x55\xe3\x63\xcd\x00\x00\x4f\x88\x49\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcc\x00\x00\x00\x00\x4e\x90\x00\x00\x51\xc1\x00\x00\x63\xd3\x54\xfb\x00\x00\x00\x00\x49\x48\x00\x00\x00\x00\x4c\xb0\x00\x00\x50\xd3\x63\xd2\x63\xd1\x51\x8e\x00\x00\x4b\x5f\x47\x50\x4d\x8d\x4d\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd4\x00\x00\x00\x00\x63\xd0\x00\x00\x00\x00\x00\x00", /* 8a80 */ "\x00\x00\x00\x00\x63\xd6\x00\x00\x63\xd7\x63\xd5\x00\x00\x4e\xb4\x00\x00\x4d\x8c\x00\x00\x00\x00\x4b\x76\x4a\x7e\x00\x00\x00\x00\x00\x00\x63\xda\x00\x00\x4f\xa0\x00\x00\x4f\xa2\x00\x00\x00\x00\x4a\xcb\x00\x00\x63\xdd\x00\x00\x00\x00\x00\x00\x48\xe7\x00\x00\x46\xfd\x63\xd9\x00\x00\x63\xde\x4d\x91\x63\xdb\x63\xdc\x63\xdf\x63\xd8\x00\x00\x00\x00\x00\x00\x49\x52\x4a\x4f\x00\x00\x00\x00\x4b\x83\x00\x00\x49\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf2\x00\x00\x00\x00\x52\x65\x00\x00\x63\xe1\x46\x89\x00\x00\x00\x00\x63\xe3\x00\x00\x50\xb2\x00\x00\x00\x00\x49\x63\x00\x00\x00\x00\x00\x00\x4a\xe8\x63\xe0\x63\xe2\x00\x00\x4b\xc1\x00\x00\x00\x00\x51\x81\x00\x00\x00\x00\x00\x00\x48\xf3\x00\x00\x00\x00\x00\x00\x63\xe4\x63\xf2\x55\x70\x00\x00\x63\xf1\x63\xed\x63\xea\x63\xec\x63\xeb\x00\x00\x63\xe7\x00\x00\x52\x46\x63\xe6\x00\x00\x00\x00\x00\x00\x4e\x96\x00\x00\x4e\x9c\x4f\x9c\x00\x00\x00\x00\x63\xe8\x00\x00\x63\xe5\x00\x00\x00\x00\x63\xef\x63\xf0\x47\xe2\x00\x00\x55\xab\x00\x00\x00\x00\x00\x00\x4f\xe1\x00\x00", /* 8b00 */ "\x4f\x4d\x54\xe5\x55\x73\x00\x00\x4f\xe2\x00\x00\x00\x00\x63\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf3\x00\x00\x52\xf9\x00\x00\x63\xf7\x00\x00\x00\x00\x00\x00\x63\xe9\x00\x00\x63\xf6\x63\xf8\x00\x00\x49\x7c\x63\xf5\x4a\x6e\x00\x00\x4d\xbb\x00\x00\x00\x00\x63\xf9\x4d\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x63\xfd\x00\x00\x53\x81\x00\x00\x00\x00\x63\xfe\x55\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x87\x00\x00\x00\x00\x00\x00\x00\x00\x64\x41\x00\x00\x00\x00\x63\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x46\x00\x00\x00\x00\x64\x42\x00\x00\x64\x44\x64\x43\x00\x00\x00\x00\x00\x00\x64\x45\x00\x00\x00\x00\x64\x47\x00\x00\x4a\x75\x00\x00\x64\x49\x64\x48\x4e\x4f\x00\x00\x00\x00\x64\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x64\x4b\x64\x4d\x00\x00\x00\x00\x64\x4e\x47\x81\x61\x76\x4b\x7b\x00\x00\x64\x4a\x00\x00\x00\x00\x49\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x4f\x00\x00\x64\x50", /* 8b80 */ "\x64\x51\x00\x00\x00\x00\x51\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x88\x00\x00\x64\x52\x00\x00\x64\x53\x00\x00\x53\xfe\x00\x00\x64\x55\x64\x56\x00\x00\x00\x00\x64\x57\x00\x00\x00\x00\x64\x54\x64\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x81\x00\x00\x00\x00\x64\x59\x00\x00\x00\x00\x00\x00\x00\x00\x64\x5b\x00\x00\x64\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x99\x00\x00\x64\x5c\x00\x00\x46\x48\x00\x00\x64\x5d\x00\x00\x64\x5e\x00\x00\x64\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x60\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x94\x64\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x68\x53\x55\x64\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x63\x55\x93\x64\x64\x00\x00\x64\x65\x00\x00\x00\x00\x00\x00", /* 8c80 */ "\x00\x00\x00\x00\x64\x66\x00\x00\x00\x00\x64\x68\x00\x00\x00\x00\x00\x00\x64\x67\x64\x69\x00\x00\x50\x64\x64\x6a\x64\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x6d\x00\x00\x00\x00\x00\x00\x64\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x49\xea\x46\xb6\x00\x00\x49\xc8\x49\xaf\x4a\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa3\x4a\xeb\x4a\x5d\x64\x70\x49\xa1\x4b\xd2\x64\x6f\x64\x71\x4c\x62\x4d\xef\x00\x00\x64\x73\x64\x74\x48\x7f\x00\x00\x64\x76\x49\x74\x4a\xf4\x00\x00\x00\x00\x46\xd0\x50\x7b\x64\x72\x00\x00\x48\x72\x46\x41\x64\x75\x55\xf8\x4b\x4d\x50\x67\x00\x00\x00\x00\x46\x50\x64\x77\x00\x00\x4f\xfd\x00\x00\x00\x00\x64\x79\x64\x78\x00\x00\x00\x00\x53\x9e\x00\x00\x50\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7b\x4d\xee\x4f\x94\x00\x00\x4a\xad\x00\x00\x4f\x4f\x00\x00\x47\xe5\x64\x7a\x55\x66\x00\x00\x4f\xa7\x00\x00\x00\x00\x00\x00\x46\xec\x00\x00\x00\x00\x52\xc1\x00\x00\x00\x00\x64\x7c\x00\x00\x00\x00\x00\x00\x64\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7f\x64\x80\x4e\x8f\x64\x7e\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x53\x5a\x55\x74\x00\x00\x64\x81\x4c\x7c\x00\x00\x64\x82\x55\x84\x00\x00\x64\x84\x00\x00\x64\x83\x64\x86\x00\x00\x64\x85\x64\x87\x64\x88\x00\x00\x64\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xf9\x00\x00\x51\x51\x64\x8a\x00\x00\x00\x00\x00\x00\x53\xcc\x00\x00\x64\x8b\x00\x00\x00\x00\x4a\xaa\x64\x8c\x00\x00\x51\xc9\x50\xee\x00\x00\x64\x8d\x48\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d80 */ "\x00\x00\x64\x8f\x00\x00\x00\x00\x00\x00\x4a\x78\x00\x00\x00\x00\x00\x00\x00\x00\x46\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xed\x00\x00\x00\x00\x00\x00\x00\x00\x55\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x92\x00\x00\x00\x00\x00\x00\x64\x91\x00\x00\x00\x00\x00\x00\x64\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x98\x64\x96\x00\x00\x00\x00\x64\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x95\x00\x00\x00\x00\x00\x00\x64\x94\x64\x97\x00\x00\x4d\xc2\x00\x00\x64\x9b\x00\x00\x4c\xcd\x00\x00\x64\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x55\xcb\x00\x00\x64\x99\x64\x9a\x00\x00\x00\x00\x00\x00\x47\x84\x00\x00\x00\x00\x00\x00\x50\xb4\x00\x00\x50\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x9d\x00\x00\x00\x00\x64\x9f", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x9e\x64\xa0\x4c\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7c\x64\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa2\x64\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa7\x00\x00\x00\x00\x00\x00\x64\xa8\x64\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa5\x00\x00\x55\xa7\x00\x00\x00\x00\x64\xaa\x64\xae\x64\xab\x64\xa9\x00\x00\x64\xac\x00\x00\x00\x00\x00\x00\x64\xad\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb2\x00\x00\x00\x00\x00\x00\x64\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x68\x64\xb1\x00\x00\x00\x00\x64\xb3\x64\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb5\x00\x00\x52\xf6\x00\x00\x64\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb7\x00\x00\x00\x00\x00\x00", /* 8e80 */ "\x00\x00\x64\xb8\x00\x00\x00\x00\x64\xba\x64\xb9\x00\x00\x64\xb6\x00\x00\x00\x00\x64\xbc\x64\xbb\x00\x00\x4c\xa1\x00\x00\x00\x00\x00\x00\x64\xbe\x00\x00\x64\xbd\x64\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc2\x47\x9c\x50\x44\x00\x00\x00\x00\x53\x53\x53\x7a\x64\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc4\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc6\x64\xc5\x00\x00\x64\xc7\x00\x00\x46\x53\x64\xc8\x4d\xaa\x48\x97\x00\x00\x64\xc9\x00\x00\x00\x00\x4e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xca\x00\x00\x00\x00\x00\x00\x4c\xb1\x00\x00\x00\x00\x47\x52\x64\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa6\x00\x00\x00\x00\x64\xcd\x64\xcc\x48\xa6\x64\xcf\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x4a\x5a\x00\x00\x64\xd2\x00\x00\x00\x00\x00\x00\x4d\x6e\x64\xd0\x00\x00\x64\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xd4\x64\xd5\x4a\x68\x64\xd3\x00\x00\x00\x00\x00\x00\x64\xd7\x00\x00\x51\x5b\x64\xd6\x47\x87\x00\x00\x64\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xd9\x00\x00\x00\x00\x4e\xf4\x48\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa6\x00\x00\x00\x00\x00\x00\x64\xda\x00\x00\x00\x00\x00\x00\x00\x00\x46\x93\x64\xdc\x00\x00\x64\xdb\x00\x00\x00\x00\x64\xdf\x50\x6c\x00\x00\x00\x00\x64\xde\x00\x00\x50\xfe\x64\xdd\x64\xe1\x00\x00\x00\x00\x64\xe0\x00\x00\x00\x00\x64\xe2\x54\xee\x64\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe5\x00\x00\x00\x00\x50\xa9\x00\x00\x52\xe1\x64\xe6\x64\xe7\x64\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5e\x64\xe9\x00\x00\x4d\x74\x64\xea\x00\x00\x00\x00\x00\x00\x64\xeb\x00\x00\x00\x00\x00\x00\x64\xed\x64\xec\x00\x00\x00\x00\x00\x00\x00\x00\x64\xee\x61\x49\x64\xef\x47\xdf\x52\xe5\x48\x45\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf0\x00\x00\x00\x00\x45\xd5\x47\xf5\x48\x41\x00\x00\x00\x00\x54\x7e\x00\x00\x00\x00\x55\xdf\x00\x00\x49\xcd\x50\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa9\x00\x00\x00\x00\x46\x73\x00\x00\x00\x00\x48\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf4\x00\x00\x00\x00\x64\xf3\x53\x5d\x00\x00\x00\x00\x64\xf6\x4e\x9e\x49\xef\x00\x00\x53\xdf\x00\x00\x64\xf5\x4a\x9c\x00\x00\x00\x00\x00\x00\x64\xf7\x00\x00\x00\x00\x4e\x58\x64\xfa\x64\xf9\x54\xa9\x00\x00\x00\x00\x49\xd1\x00\x00\x00\x00", /* 9000 */ "\x4b\x49\x47\x44\x00\x00\x4c\x72\x00\x00\x64\xf8\x4b\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x65\x44\x00\x00\x65\x41\x64\xfd\x4b\xda\x50\xbb\x64\xfb\x00\x00\x51\x5e\x48\xf0\x64\xfc\x65\x43\x4f\xb3\x00\x00\x4f\xca\x45\xe3\x00\x00\x00\x00\x53\xb1\x65\x42\x48\xcd\x45\xb8\x64\xfe\x4d\xce\x47\x54\x00\x00\x00\x00\x00\x00\x65\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x77\x00\x00\x00\x00\x4a\xd3\x46\x69\x00\x00\x00\x00\x54\x85\x65\x46\x00\x00\x4a\xd6\x65\x47\x00\x00\x00\x00\x55\xac\x00\x00\x65\x4e\x00\x00\x00\x00\x54\xf8\x4c\xf7\x00\x00\x00\x00\x4c\x6d\x00\x00\x49\xec\x00\x00\x65\x4d\x4a\x8b\x46\xab\x00\x00\x50\x5d\x48\x8d\x65\x48\x65\x4a\x65\x4b\x65\x4c\x45\x50\x46\xa4\x49\xbc\x65\x4f\x00\x00\x65\x50\x52\xf3\x00\x00\x00\x00\x54\x55\x00\x00\x65\x51\x00\x00\x46\xe3\x54\x4c\x00\x00\x4e\xc2\x00\x00\x68\x82\x00\x00\x65\x53\x65\x52\x49\xcc\x00\x00\x00\x00\x00\x00\x51\x43\x54\x58\x65\x54\x00\x00\x00\x00\x65\x57\x00\x00\x00\x00\x52\x6e\x65\x55\x53\x5b\x48\x5d\x00\x00\x4c\xda\x00\x00\x52\x6b\x65\x59\x00\x00\x4c\xc4", /* 9080 */ "\x65\x5b\x53\x7b\x65\x58\x60\x45\x4d\xa9\x00\x00\x00\x00\x51\x86\x00\x00\x65\x5a\x50\xea\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5c\x00\x00\x4c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x46\x00\x00\x00\x00\x46\xc5\x00\x00\x51\xa8\x00\x00\x4e\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5e\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x65\x60\x00\x00\x00\x00\x4d\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x52\x00\x00\x00\x00\x00\x00\x45\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x63\x00\x00\x00\x00\x65\x64\x00\x00\x00\x00\x49\x9e\x65\x61\x00\x00\x65\x62\x00\x00\x00\x00\x00\x00\x45\x95\x00\x00\x00\x00\x00\x00\x00\x00\x51\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb7\x00\x00\x49\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x4f\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x65\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x68\x00\x00\x00\x00\x65\x67\x00\x00\x00\x00\x00\x00\x65\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x54\x00\x00\x00\x00\x65\x6c\x00\x00\x65\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x73\x65\x6d\x55\x48\x52\xbb\x47\xf3\x55\x91\x00\x00\x00\x00\x00\x00\x47\x58\x00\x00\x4e\x7c\x00\x00\x65\x6e\x00\x00\x65\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xae\x65\x70\x00\x00\x65\x71\x00\x00\x00\x00\x00\x00\x65\x72\x50\xbd\x00\x00\x51\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x74\x65\x73\x00\x00\x4d\x86\x00\x00\x51\xeb\x48\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9180 */ "\x00\x00\x00\x00\x65\x77\x00\x00\x00\x00\x00\x00\x00\x00\x51\xa9\x00\x00\x65\x76\x00\x00\x65\x75\x00\x00\x51\x6f\x00\x00\x00\x00\x51\x70\x00\x00\x53\x78\x00\x00\x00\x00\x00\x00\x00\x00\x51\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x78\x00\x00\x50\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7b\x65\x79\x50\x7f\x00\x00\x00\x00\x65\x7a\x00\x00\x51\xfa\x00\x00\x00\x00\x65\x7d\x65\x7c\x00\x00\x00\x00\x50\xc2\x00\x00\x65\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7f\x65\x80\x00\x00\x00\x00\x00\x00\x00\x00\x53\x46\x53\xbf\x4d\x79\x52\x52\x00\x00\x65\x81\x47\x6c\x45\xa3\x45\x69\x47\xb5\x65\x82\x45\x86\x00\x00\x00\x00\x00\x00\x00\x00\x65\x87\x65\x85\x4f\xf4\x00\x00\x65\x83\x65\x84\x4a\xcc\x49\x88\x65\x86\x65\x88\x00\x00\x65\x89\x00\x00\x4c\xe3\x65\x8d\x65\x8f\x53\x4a\x4b\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8a\x65\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8b\x65\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd0\x00\x00\x00\x00\x65\x92", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x90\x00\x00\x00\x00\x00\x00\x65\x95\x00\x00\x00\x00\x4e\x63\x53\x8f\x00\x00\x65\x93\x52\x69\x00\x00\x00\x00\x65\x94\x65\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x98\x00\x00\x00\x00\x65\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xae\x00\x00\x00\x00\x55\xbf\x00\x00\x65\xa6\x65\x9b\x00\x00\x65\x9f\x00\x00\x00\x00\x65\xa4\x65\x9e\x00\x00\x00\x00\x00\x00\x45\xd7\x65\x9a\x00\x00\x00\x00\x65\xa0\x65\x9c\x00\x00\x65\xa7\x00\x00\x00\x00\x65\xa1\x00\x00\x65\xa2\x65\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x99\x00\x00\x65\xa3\x65\xa9\x49\xd4\x00\x00\x00\x00\x53\x93\x00\x00\x00\x00\x00\x00\x4e\xa8\x00\x00\x65\x9d\x00\x00\x4f\xb4\x65\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xac\x65\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x83\x00\x00", /* 9280 */ "\x47\x8c\x00\x00\x00\x00\x4c\xe2\x00\x00\x48\xc0\x00\x00\x00\x00\x52\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xad\x00\x00\x65\xaf\x00\x00\x65\xb1\x65\xae\x00\x00\x4d\xdc\x00\x00\x4e\x80\x65\xb0\x65\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbb\x00\x00\x65\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb3\x65\xb7\x00\x00\x54\x49\x65\xbd\x00\x00\x65\xb9\x00\x00\x65\xb5\x00\x00\x65\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbc\x00\x00\x00\x00\x00\x00\x52\xc0\x00\x00\x00\x00\x65\xb4\x00\x00\x65\xb2\x53\x63\x00\x00\x00\x00\x4d\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbe\x48\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe7\x53\x94\x65\xc2\x65\xc5\x46\xa1\x00\x00\x00\x00\x65\xc9", /* 9300 */ "\x00\x00\x00\x00\x65\xce\x00\x00\x00\x00\x00\x00\x55\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc0\x53\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xef\x65\xc7\x65\xcb\x00\x00\x00\x00\x65\xcc\x65\xc8\x00\x00\x4e\x57\x65\xc3\x65\xca\x65\xcd\x00\x00\x65\xc1\x4b\x8e\x00\x00\x53\xf0\x00\x00\x00\x00\x52\x57\x4f\xe6\x00\x00\x52\x83\x50\xb1\x00\x00\x00\x00\x48\x86\x00\x00\x00\x00\x65\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbe\x65\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc4\x00\x00\x00\x00\x00\x00\x51\xf7\x00\x00\x00\x00\x4b\x48\x00\x00\x55\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xaa\x00\x00\x65\xd4\x65\xd5\x00\x00\x00\x00\x00\x00\x48\xc7\x52\xad\x00\x00\x00\x00\x00\x00\x65\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x70\x00\x00\x65\xd3\x00\x00\x65\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd2\x00\x00\x53\xbd\x00\x00", /* 9380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xda\x00\x00\x4d\x70\x51\x97\x00\x00\x00\x00\x54\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd8\x00\x00\x00\x00\x54\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6e\x65\xd9\x4c\x89\x00\x00\x65\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe2\x00\x00\x00\x00\x65\xdd\x00\x00\x65\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe5\x50\x41\x00\x00\x00\x00\x00\x00\x00\x00\x65\xdc\x65\xde\x65\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe3\x65\xe4\x00\x00\x00\x00\x4a\x8d\x00\x00\x00\x00\x65\xe6\x65\xe0\x00\x00\x00\x00\x65\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x65\xec\x00\x00\x00\x00\x00\x00\x65\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xcd\x00\x00\x00\x00\x65\xea\x65\xe9\x00\x00\x00\x00\x00\x00\x4c\xc8\x52\xcf\x65\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf0\x00\x00\x00\x00\x00\x00\x51\x56\x65\xee\x00\x00\x53\x88\x00\x00\x65\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf2\x00\x00\x00\x00\x65\xf5\x65\xf4\x00\x00\x00\x00\x65\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4e\x65\xf3\x52\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf8\x65\xf7\x00\x00\x00\x00\x65\xfb\x00\x00\x65\xf9\x00\x00\x65\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfd\x00\x00\x66\x41\x00\x00\x00\x00\x00\x00\x00\x00\x66\x44\x66\x43\x66\x45\x66\x42", /* 9480 */ "\x00\x00\x66\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9580 */ "\x46\xaa\x00\x00\x66\x47\x51\x9c\x00\x00\x00\x00\x00\x00\x66\x48\x00\x00\x4b\x7d\x66\x49\x46\xcd\x00\x00\x00\x00\x00\x00\x54\x5f\x00\x00\x4d\xd9\x66\x4a\x45\xc1\x66\x4b\x00\x00\x66\x4c\x00\x00\x66\x4d\x66\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4f\x00\x00\x45\xc5\x4a\xe9\x54\x9b\x51\x72\x00\x00\x66\x51\x66\x50\x00\x00\x00\x00\x00\x00\x00\x00\x66\x52\x00\x00\x00\x00\x00\x00\x00\x00\x51\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x55\x00\x00\x66\x54\x66\x53\x00\x00\x66\x56\x00\x00\x00\x00\x00\x00\x00\x00\x66\x59\x00\x00\x00\x00\x00\x00\x53\x64\x00\x00\x00\x00\x66\x57\x00\x00\x66\x5b\x66\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x5d\x66\x5c\x66\x5e\x00\x00\x4b\xcc\x00\x00\x00\x00\x00\x00\x66\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x66\x60\x66\x62\x00\x00\x00\x00\x66\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x86\x00\x00\x00\x00\x00\x00\x00\x00\x66\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x64\x00\x00\x45\x91\x00\x00\x00\x00\x00\x00\x66\x65\x66\x66\x00\x00\x00\x00\x47\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xef\x00\x00\x00\x00\x00\x00\x46\xae\x4f\xe8\x00\x00\x66\x67\x00\x00\x4b\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x6a\x66\x69\x49\xe5\x00\x00\x66\x68\x48\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x57\x66\x6b\x66\x6c\x52\x72\x66\x6d\x00\x00\x00\x00\x49\xd8\x4c\x84\x49\x6d\x4f\xfe\x66\x6e\x00\x00\x00\x00\x00\x00\x55\xc3\x00\x00\x66\x71\x00\x00\x00\x00\x00\x00\x4c\xd2\x00\x00\x66\x70\x4e\x61\x00\x00\x50\xc7\x4a\xb7\x66\x6f\x49\x61\x00\x00\x4a\x6c\x00\x00\x00\x00\x47\xbf\x00\x00\x00\x00", /* 9680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb9\x46\x5d\x00\x00\x4c\xe5\x00\x00\x4a\x93\x66\x73\x00\x00\x66\x72\x49\xa9\x4e\x76\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5a\x66\x76\x00\x00\x66\x77\x66\x75\x53\xc3\x00\x00\x47\x97\x4b\xf9\x66\x79\x00\x00\x00\x00\x4e\xae\x00\x00\x00\x00\x4c\xe0\x00\x00\x00\x00\x00\x00\x66\x7a\x65\x56\x00\x00\x66\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x66\x7f\x66\x7e\x66\x7c\x66\x7d\x00\x00\x66\x80\x00\x00\x66\x81\x55\x45\x66\x82\x66\x83\x00\x00\x4f\xda\x4e\xd5\x00\x00\x00\x00\x00\x00\x4f\x64\x51\xa4\x00\x00\x00\x00\x45\x70\x47\x45\x47\xa0\x4c\x4d\x00\x00\x54\x77\x00\x00\x66\x85\x52\xb7\x52\x5b\x66\x84\x00\x00\x00\x00\x4a\x8a\x00\x00\x00\x00\x00\x00\x66\x86\x63\x54\x00\x00\x00\x00\x66\x88\x00\x00\x51\xfb\x66\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x97\x49\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x49\xdd\x00\x00\x49\xbb\x52\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x90\x00\x00\x4a\xbc\x00\x00\x00\x00\x00\x00\x50\x69\x4b\xd6\x00\x00\x66\x89\x00\x00\x45\x82\x00\x00\x00\x00\x00\x00\x00\x00", /* 9700 */ "\x47\xfb\x00\x00\x00\x00\x00\x00\x66\x8a\x00\x00\x66\x8b\x4d\xde\x66\x8c\x00\x00\x4f\x4b\x00\x00\x00\x00\x66\x8e\x66\x90\x66\x92\x00\x00\x66\x91\x00\x00\x66\x8f\x00\x00\x00\x00\x66\x93\x00\x00\x00\x00\x66\x8d\x00\x00\x00\x00\x4d\xe8\x00\x00\x4e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x94\x00\x00\x00\x00\x4e\x48\x00\x00\x00\x00\x66\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x96\x00\x00\x4b\xc6\x66\x97\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcf\x66\x98\x00\x00\x66\x99\x00\x00\x66\x9a\x66\x9b\x00\x00\x00\x00\x00\x00\x66\xa0\x66\x9e\x66\x9d\x00\x00\x66\x9c\x00\x00\x66\x9f\x66\xa1\x00\x00\x00\x00\x00\x00\x66\xa2\x00\x00\x66\xa3\x00\x00\x66\xa4\x46\x4c\x00\x00\x00\x00\x66\xa5\x48\xc3\x00\x00\x00\x00\x46\x44\x00\x00\x00\x00\x66\xa6\x00\x00\x48\xe1\x00\x00\x66\xa7\x68\x52\x46\x91\x00\x00\x66\xa8\x00\x00\x66\xa9\x00\x00\x66\xaa\x4a\xa3\x00\x00\x53\xb5\x00\x00\x66\xab\x00\x00\x00\x00\x00\x00\x52\xce\x00\x00\x00\x00\x4d\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x66\xac\x66\xb0\x00\x00\x66\xae\x00\x00\x00\x00\x00\x00", /* 9780 */ "\x00\x00\x66\xaf\x00\x00\x00\x00\x54\x45\x66\xad\x52\x77\x00\x00\x00\x00\x00\x00\x00\x00\x66\xb1\x00\x00\x50\x4c\x00\x00\x66\xb2\x66\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe7\x00\x00\x00\x00\x00\x00\x66\xb4\x00\x00\x00\x00\x00\x00\x51\xed\x00\x00\x00\x00\x66\xb7\x00\x00\x00\x00\x66\xb6\x00\x00\x66\xb5\x00\x00\x00\x00\x63\xfc\x00\x00\x54\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xb8\x66\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xba\x00\x00\x00\x00\x66\xbb\x00\x00\x66\xbc\x00\x00\x00\x00\x66\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xbf\x4f\xdf\x00\x00\x00\x00\x00\x00\x66\xc0\x48\x4d\x00\x00\x66\xc2\x52\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x55\x77\x00\x00\x00\x00\x00\x00\x4a\x5c", /* 9800 */ "\x00\x00\x4c\xd9\x4d\x5b\x49\x46\x00\x00\x4a\x97\x47\xb2\x00\x00\x46\xb0\x00\x00\x00\x00\x00\x00\x54\x56\x00\x00\x00\x00\x66\xc3\x4d\x4a\x53\x9d\x55\x57\x51\x7a\x00\x00\x00\x00\x00\x00\x55\xe4\x4a\xcd\x00\x00\x66\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc6\x00\x00\x00\x00\x66\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb3\x47\xeb\x00\x00\x00\x00\x4e\xb3\x00\x00\x00\x00\x00\x00\x55\x76\x00\x00\x00\x00\x66\xc7\x50\xfb\x66\xc8\x00\x00\x53\xab\x4a\x7a\x66\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x66\xca\x47\xfe\x47\xf1\x54\x8e\x66\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x48\xb8\x4a\xe5\x00\x00\x66\xcb\x4c\x57\x00\x00\x55\xc1\x55\xc1\x00\x00\x00\x00\x46\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xcc\x00\x00\x4e\xee\x00\x00\x00\x00\x00\x00\x66\xcd\x00\x00\x00\x00\x00\x00\x66\xce\x66\xcf\x66\xd0\x00\x00\x66\xd2\x66\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xe7\x00\x00\x66\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd4\x00\x00\x66\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd8\x66\xd7\x00\x00\x66\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8a\x66\xda\x00\x00\x00\x00\x46\xb8\x00\x00\x00\x00\x53\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdc\x00\x00\x66\xde\x00\x00\x66\xdb\x5c\xca\x46\xb5\x00\x00\x00\x00\x4b\xa3\x00\x00\x52\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x8f\x4d\x49\x49\x57\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x66\xe0\x00\x00\x50\xbf\x00\x00\x00\x00\x00\x00\x54\xbc\x49\x79\x00\x00\x50\xa7\x00\x00\x00\x00\x00\x00\x55\xb3\x00\x00\x66\xe2\x55\x4b\x66\xe3\x00\x00\x00\x00\x00\x00\x66\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe1\x66\xe8\x00\x00\x66\xea\x66\xe7\x00\x00\x00\x00\x66\xe9\x00\x00\x00\x00\x66\xe5\x48\x62\x00\x00\x00\x00\x00\x00\x66\xeb\x00\x00\x66\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xed\x66\xee\x00\x00\x00\x00\x00\x00\x66\xef\x00\x00\x00\x00\x66\xf1\x00\x00\x00\x00\x00\x00\x66\xf0\x00\x00\x66\xf3\x66\xf5\x00\x00\x00\x00\x00\x00\x66\xf2\x66\xf4\x52\xe8\x00\x00\x00\x00\x66\xf6\x00\x00\x51\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xbe\x66\xf7\x66\xf8\x46\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfa\x00\x00\x00\x00\x4b\x85\x00\x00\x00\x00\x00\x00\x46\x64\x66\xfb\x66\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x52\xdf\x50\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe5\x00\x00\x00\x00\x4d\xe5\x49\xac\x4c\xfe\x00\x00\x4f\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf5\x67\x44\x49\xfc\x00\x00\x00\x00\x53\xbe\x00\x00\x00\x00\x67\x43\x00\x00\x00\x00\x67\x41\x00\x00\x67\x42\x00\x00\x66\xfe\x00\x00\x00\x00\x67\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x45\x67\x46\x00\x00\x00\x00\x67\x48\x67\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4b\x00\x00\x00\x00\x67\x4a\x00\x00\x00\x00\x00\x00\x4c\xc0", /* 9a00 */ "\x00\x00\x67\x4c\x00\x00\x00\x00\x00\x00\x67\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x58\x67\x4d\x00\x00\x00\x00\x4d\xd2\x48\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xda\x00\x00\x00\x00\x67\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x56\x00\x00\x67\x52\x00\x00\x67\x54\x67\x55\x00\x00\x67\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x58\x67\x59\x00\x00\x00\x00\x00\x00\x53\xda\x00\x00\x00\x00\x67\x57\x00\x00\x67\x5b\x00\x00\x00\x00\x4c\xd5\x67\x5a\x00\x00\x00\x00\x00\x00\x67\x5c\x00\x00\x00\x00\x67\x5d\x00\x00\x67\x60\x67\x5f\x00\x00\x00\x00\x00\x00\x67\x5e\x67\x61\x67\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x67\x63\x00\x00\x00\x00\x67\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9c\x00\x00\x00\x00\x00\x00\x67\x65\x00\x00\x00\x00\x00\x00\x67\x66\x00\x00\x00\x00\x00\x00\x52\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x67\x00\x00\x67\x6a\x00\x00\x67\x68\x67\x69\x00\x00\x00\x00\x00\x00\x45\x71\x67\x6b\x00\x00\x00\x00\x67\x6c\x00\x00\x67\x6d\x67\x6e\x00\x00\x00\x00\x67\x6f\x67\x70\x00\x00\x00\x00\x67\x71\x00\x00\x00\x00\x00\x00\x4c\xf6\x67\x73\x00\x00\x50\x9d\x67\x74\x67\x72\x00\x00\x67\x76\x00\x00\x00\x00\x67\x75\x00\x00\x00\x00\x67\x77\x00\x00\x00\x00\x00\x00\x67\x78\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7a\x00\x00\x67\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7c\x00\x00\x00\x00\x67\x7d\x67\x7e\x00\x00\x67\x7f\x00\x00\x67\x80\x67\x81\x67\x82\x67\x83\x00\x00\x00\x00\x00\x00\x67\x84\x67\x85\x00\x00\x67\x86\x67\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x88\x4a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x52\xcb\x50\xa8\x67\x8a\x67\x89\x4d\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x8b\x67\x8c\x53\x89\x00\x00\x67\x8d\x00\x00\x00\x00\x4d\xe2\x00\x00\x00\x00\x00\x00\x67\x8e\x00\x00\x48\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf4\x00\x00\x00\x00\x67\x91\x00\x00\x67\x90\x67\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b80 */ "\x00\x00\x00\x00\x00\x00\x67\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8e\x67\x93\x00\x00\x67\x95\x52\x8d\x67\x92\x00\x00\x00\x00\x67\x96\x67\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x98\x67\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9a\x00\x00\x55\xce\x4e\xb7\x00\x00\x53\x91\x4c\xe9\x00\x00\x00\x00\x67\x9b\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa0\x00\x00\x67\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa1\x00\x00\x00\x00\x4f\xc6\x67\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa2\x00\x00\x67\xa3\x67\xa4\x00\x00\x67\xa8\x00\x00\x4f\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x50\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa9\x67\xa6\x67\xa5\x67\xa7\x00\x00\x00\x00\x00\x00\x4d\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x51\x67\xab\x67\xac\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c00 */ "\x67\xb1\x00\x00\x00\x00\x00\x00\x67\xad\x00\x00\x67\xb5\x00\x00\x67\xb6\x67\xb2\x67\xb8\x00\x00\x67\xb4\x55\x71\x00\x00\x00\x00\x52\x93\x00\x00\x67\xb7\x67\xb3\x67\xb0\x67\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbc\x00\x00\x00\x00\x67\xbb\x67\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6e\x67\xb9\x55\xc8\x67\xbd\x00\x00\x67\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd5\x51\xf0\x54\xab\x00\x00\x00\x00\x67\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc0\x67\xbe\x55\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4c\x00\x00\x00\x00\x67\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc5\x00\x00\x67\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x79\x00\x00\x67\xc8\x00\x00\x4d\x95\x00\x00\x67\xc7\x67\xc9\x00\x00\x00\x00\x00\x00\x67\xca\x00\x00\x00\x00\x4e\xa6\x4b\x70\x00\x00\x54\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d00 */ "\x00\x00\x00\x00\x00\x00\x67\xcc\x00\x00\x00\x00\x67\xcd\x51\xa1\x54\xfc\x67\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x54\x64\x00\x00\x00\x00\x00\x00\x67\xd4\x00\x00\x00\x00\x67\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc3\x00\x00\x00\x00\x00\x00\x67\xd2\x00\x00\x00\x00\x00\x00\x67\xd1\x00\x00\x00\x00\x67\xcf\x00\x00\x4c\x54\x00\x00\x67\xce\x50\xba\x67\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd6\x00\x00\x00\x00\x67\xd8\x67\xd6\x00\x00\x67\xd5\x00\x00\x00\x00\x67\xd7\x00\x00\x67\xd9\x00\x00\x67\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xdf\x67\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xdd\x00\x00\x00\x00\x4b\xe7\x67\xdb\x67\xdc\x00\x00\x50\xfd\x55\x7e\x00\x00\x00\x00\x67\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe4\x51\x8a\x00\x00\x00\x00\x67\xe5\x67\xe2\x00\x00\x67\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe3\x00\x00\x53\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe9\x00\x00\x67\xea\x00\x00\x00\x00\x00\x00\x50\xe5\x00\x00\x00\x00\x67\xeb\x00\x00\x47\x7a\x00\x00\x00\x00\x00\x00\x67\xef\x00\x00\x67\xf0\x67\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xed\x67\xf3\x00\x00\x67\xec\x00\x00\x67\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf2\x00\x00\x00\x00\x00\x00\x67\xf6\x00\x00\x00\x00\x00\x00\x54\x64\x00\x00\x67\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf9\x00\x00\x67\xfa\x00\x00\x00\x00\x4b\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf7\x4b\x7a\x50\xaf\x00\x00\x00\x00\x67\xfb\x00\x00\x00\x00", /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xfe\x67\xfc\x67\xfd\x00\x00\x00\x00\x68\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x42\x00\x00\x00\x00\x4c\x7d\x68\x43\x00\x00\x00\x00\x4c\x7d\x68\x44\x00\x00\x46\x97", /* 9e80 */ "\x00\x00\x68\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x46\x00\x00\x00\x00\x68\x47\x68\x48\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4a\x51\xf9\x51\x9e\x00\x00\x68\x49\x00\x00\x4c\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4b\x00\x00\x51\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4c\x4a\xe0\x00\x00\x00\x00\x53\xb4\x68\x4e\x00\x00\x00\x00\x68\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x61\x55\x5f\x00\x00\x00\x00\x68\x4d\x52\x61\x55\x5f\x48\xa7\x68\x50\x00\x00\x68\x51\x4e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x53\x55\xae\x51\xa7\x68\x54\x68\x55\x68\x56\x46\x79\x00\x00\x68\x57\x00\x00\x00\x00\x00\x00\x5e\x90\x4d\xbc\x00\x00\x51\xdd\x68\x58\x68\x5a\x68\x59\x00\x00\x68\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5c\x00\x00\x00\x00\x68\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5f\x00\x00\x68\x60\x68\x61\x00\x00\x68\x62\x00\x00\x68\x63\x68\x64\x68\x65\x00\x00\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x66\x68\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xaf\x00\x00\x68\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xcb\x68\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xfd\x00\x00\x00\x00\x68\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x6d\x51\xf5\x00\x00\x00\x00\x68\x6e\x68\x6f\x00\x00\x00\x00\x68\x70\x00\x00\x68\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x73\x68\x74\x68\x75\x4c\x80\x68\x72\x00\x00\x00\x00\x68\x76\x68\x77\x00\x00\x00\x00\x68\x79\x00\x00\x68\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7b\x00\x00\x00\x00\x00\x00\x68\x7c\x68\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7e\x5f\xf7\x00\x00\x00\x00\x68\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x69\x41\x69\x42\x69\x43\x69\x44\x69\x45\x69\x46\x69\x47\x69\x48\x69\x49\x69\x4a\x69\x4b\x69\x4c\x69\x4d\x69\x4e\x69\x4f\x69\x50\x69\x51\x69\x52\x69\x53\x69\x54\x69\x55\x69\x56\x69\x57\x69\x58\x69\x59\x69\x5a\x69\x5b\x69\x5c\x69\x5d\x69\x5e\x69\x5f\x69\x60\x69\x61\x69\x62\x69\x63\x69\x64\x69\x65\x69\x66\x69\x67\x69\x68\x69\x69\x69\x6a\x69\x6b\x69\x6c\x69\x6d\x69\x6e\x69\x6f\x69\x70\x69\x71\x69\x72\x69\x73\x69\x74\x69\x75\x69\x76\x69\x77\x69\x78\x69\x79\x69\x7a\x69\x7b\x69\x7c\x69\x7d\x69\x7e\x69\x7f\x69\x80\x69\x81\x69\x82\x69\x83\x69\x84\x69\x85\x69\x86\x69\x87\x69\x88\x69\x89\x69\x8a\x69\x8b\x69\x8c\x69\x8d\x69\x8e\x69\x8f\x69\x90\x69\x91\x69\x92\x69\x93\x69\x94\x69\x95\x69\x96\x69\x97\x69\x98\x69\x99\x69\x9a\x69\x9b\x69\x9c\x69\x9d\x69\x9e\x69\x9f\x69\xa0\x69\xa1\x69\xa2\x69\xa3\x69\xa4\x69\xa5\x69\xa6\x69\xa7\x69\xa8\x69\xa9\x69\xaa\x69\xab\x69\xac\x69\xad\x69\xae\x69\xaf\x69\xb0\x69\xb1\x69\xb2\x69\xb3\x69\xb4\x69\xb5\x69\xb6\x69\xb7\x69\xb8\x69\xb9\x69\xba\x69\xbb\x69\xbc\x69\xbd\x69\xbe\x69\xbf\x69\xc0", /* e080 */ "\x69\xc1\x69\xc2\x69\xc3\x69\xc4\x69\xc5\x69\xc6\x69\xc7\x69\xc8\x69\xc9\x69\xca\x69\xcb\x69\xcc\x69\xcd\x69\xce\x69\xcf\x69\xd0\x69\xd1\x69\xd2\x69\xd3\x69\xd4\x69\xd5\x69\xd6\x69\xd7\x69\xd8\x69\xd9\x69\xda\x69\xdb\x69\xdc\x69\xdd\x69\xde\x69\xdf\x69\xe0\x69\xe1\x69\xe2\x69\xe3\x69\xe4\x69\xe5\x69\xe6\x69\xe7\x69\xe8\x69\xe9\x69\xea\x69\xeb\x69\xec\x69\xed\x69\xee\x69\xef\x69\xf0\x69\xf1\x69\xf2\x69\xf3\x69\xf4\x69\xf5\x69\xf6\x69\xf7\x69\xf8\x69\xf9\x69\xfa\x69\xfb\x69\xfc\x69\xfd\x69\xfe\x6a\x41\x6a\x42\x6a\x43\x6a\x44\x6a\x45\x6a\x46\x6a\x47\x6a\x48\x6a\x49\x6a\x4a\x6a\x4b\x6a\x4c\x6a\x4d\x6a\x4e\x6a\x4f\x6a\x50\x6a\x51\x6a\x52\x6a\x53\x6a\x54\x6a\x55\x6a\x56\x6a\x57\x6a\x58\x6a\x59\x6a\x5a\x6a\x5b\x6a\x5c\x6a\x5d\x6a\x5e\x6a\x5f\x6a\x60\x6a\x61\x6a\x62\x6a\x63\x6a\x64\x6a\x65\x6a\x66\x6a\x67\x6a\x68\x6a\x69\x6a\x6a\x6a\x6b\x6a\x6c\x6a\x6d\x6a\x6e\x6a\x6f\x6a\x70\x6a\x71\x6a\x72\x6a\x73\x6a\x74\x6a\x75\x6a\x76\x6a\x77\x6a\x78\x6a\x79\x6a\x7a\x6a\x7b\x6a\x7c\x6a\x7d\x6a\x7e\x6a\x7f\x6a\x80\x6a\x81\x6a\x82", /* e100 */ "\x6a\x83\x6a\x84\x6a\x85\x6a\x86\x6a\x87\x6a\x88\x6a\x89\x6a\x8a\x6a\x8b\x6a\x8c\x6a\x8d\x6a\x8e\x6a\x8f\x6a\x90\x6a\x91\x6a\x92\x6a\x93\x6a\x94\x6a\x95\x6a\x96\x6a\x97\x6a\x98\x6a\x99\x6a\x9a\x6a\x9b\x6a\x9c\x6a\x9d\x6a\x9e\x6a\x9f\x6a\xa0\x6a\xa1\x6a\xa2\x6a\xa3\x6a\xa4\x6a\xa5\x6a\xa6\x6a\xa7\x6a\xa8\x6a\xa9\x6a\xaa\x6a\xab\x6a\xac\x6a\xad\x6a\xae\x6a\xaf\x6a\xb0\x6a\xb1\x6a\xb2\x6a\xb3\x6a\xb4\x6a\xb5\x6a\xb6\x6a\xb7\x6a\xb8\x6a\xb9\x6a\xba\x6a\xbb\x6a\xbc\x6a\xbd\x6a\xbe\x6a\xbf\x6a\xc0\x6a\xc1\x6a\xc2\x6a\xc3\x6a\xc4\x6a\xc5\x6a\xc6\x6a\xc7\x6a\xc8\x6a\xc9\x6a\xca\x6a\xcb\x6a\xcc\x6a\xcd\x6a\xce\x6a\xcf\x6a\xd0\x6a\xd1\x6a\xd2\x6a\xd3\x6a\xd4\x6a\xd5\x6a\xd6\x6a\xd7\x6a\xd8\x6a\xd9\x6a\xda\x6a\xdb\x6a\xdc\x6a\xdd\x6a\xde\x6a\xdf\x6a\xe0\x6a\xe1\x6a\xe2\x6a\xe3\x6a\xe4\x6a\xe5\x6a\xe6\x6a\xe7\x6a\xe8\x6a\xe9\x6a\xea\x6a\xeb\x6a\xec\x6a\xed\x6a\xee\x6a\xef\x6a\xf0\x6a\xf1\x6a\xf2\x6a\xf3\x6a\xf4\x6a\xf5\x6a\xf6\x6a\xf7\x6a\xf8\x6a\xf9\x6a\xfa\x6a\xfb\x6a\xfc\x6a\xfd\x6a\xfe\x6b\x41\x6b\x42\x6b\x43\x6b\x44", /* e180 */ "\x6b\x45\x6b\x46\x6b\x47\x6b\x48\x6b\x49\x6b\x4a\x6b\x4b\x6b\x4c\x6b\x4d\x6b\x4e\x6b\x4f\x6b\x50\x6b\x51\x6b\x52\x6b\x53\x6b\x54\x6b\x55\x6b\x56\x6b\x57\x6b\x58\x6b\x59\x6b\x5a\x6b\x5b\x6b\x5c\x6b\x5d\x6b\x5e\x6b\x5f\x6b\x60\x6b\x61\x6b\x62\x6b\x63\x6b\x64\x6b\x65\x6b\x66\x6b\x67\x6b\x68\x6b\x69\x6b\x6a\x6b\x6b\x6b\x6c\x6b\x6d\x6b\x6e\x6b\x6f\x6b\x70\x6b\x71\x6b\x72\x6b\x73\x6b\x74\x6b\x75\x6b\x76\x6b\x77\x6b\x78\x6b\x79\x6b\x7a\x6b\x7b\x6b\x7c\x6b\x7d\x6b\x7e\x6b\x7f\x6b\x80\x6b\x81\x6b\x82\x6b\x83\x6b\x84\x6b\x85\x6b\x86\x6b\x87\x6b\x88\x6b\x89\x6b\x8a\x6b\x8b\x6b\x8c\x6b\x8d\x6b\x8e\x6b\x8f\x6b\x90\x6b\x91\x6b\x92\x6b\x93\x6b\x94\x6b\x95\x6b\x96\x6b\x97\x6b\x98\x6b\x99\x6b\x9a\x6b\x9b\x6b\x9c\x6b\x9d\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xa1\x6b\xa2\x6b\xa3\x6b\xa4\x6b\xa5\x6b\xa6\x6b\xa7\x6b\xa8\x6b\xa9\x6b\xaa\x6b\xab\x6b\xac\x6b\xad\x6b\xae\x6b\xaf\x6b\xb0\x6b\xb1\x6b\xb2\x6b\xb3\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x6b\xba\x6b\xbb\x6b\xbc\x6b\xbd\x6b\xbe\x6b\xbf\x6b\xc0\x6b\xc1\x6b\xc2\x6b\xc3\x6b\xc4", /* e200 */ "\x6b\xc5\x6b\xc6\x6b\xc7\x6b\xc8\x6b\xc9\x6b\xca\x6b\xcb\x6b\xcc\x6b\xcd\x6b\xce\x6b\xcf\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\x6b\xd4\x6b\xd5\x6b\xd6\x6b\xd7\x6b\xd8\x6b\xd9\x6b\xda\x6b\xdb\x6b\xdc\x6b\xdd\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x6b\xe9\x6b\xea\x6b\xeb\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\x6b\xfc\x6b\xfd\x6b\xfe\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\x6c\x46\x6c\x47\x6c\x48\x6c\x49\x6c\x4a\x6c\x4b\x6c\x4c\x6c\x4d\x6c\x4e\x6c\x4f\x6c\x50\x6c\x51\x6c\x52\x6c\x53\x6c\x54\x6c\x55\x6c\x56\x6c\x57\x6c\x58\x6c\x59\x6c\x5a\x6c\x5b\x6c\x5c\x6c\x5d\x6c\x5e\x6c\x5f\x6c\x60\x6c\x61\x6c\x62\x6c\x63\x6c\x64\x6c\x65\x6c\x66\x6c\x67\x6c\x68\x6c\x69\x6c\x6a\x6c\x6b\x6c\x6c\x6c\x6d\x6c\x6e\x6c\x6f\x6c\x70\x6c\x71\x6c\x72\x6c\x73\x6c\x74\x6c\x75\x6c\x76\x6c\x77\x6c\x78\x6c\x79\x6c\x7a\x6c\x7b\x6c\x7c\x6c\x7d\x6c\x7e\x6c\x7f\x6c\x80\x6c\x81\x6c\x82\x6c\x83\x6c\x84\x6c\x85\x6c\x86", /* e280 */ "\x6c\x87\x6c\x88\x6c\x89\x6c\x8a\x6c\x8b\x6c\x8c\x6c\x8d\x6c\x8e\x6c\x8f\x6c\x90\x6c\x91\x6c\x92\x6c\x93\x6c\x94\x6c\x95\x6c\x96\x6c\x97\x6c\x98\x6c\x99\x6c\x9a\x6c\x9b\x6c\x9c\x6c\x9d\x6c\x9e\x6c\x9f\x6c\xa0\x6c\xa1\x6c\xa2\x6c\xa3\x6c\xa4\x6c\xa5\x6c\xa6\x6c\xa7\x6c\xa8\x6c\xa9\x6c\xaa\x6c\xab\x6c\xac\x6c\xad\x6c\xae\x6c\xaf\x6c\xb0\x6c\xb1\x6c\xb2\x6c\xb3\x6c\xb4\x6c\xb5\x6c\xb6\x6c\xb7\x6c\xb8\x6c\xb9\x6c\xba\x6c\xbb\x6c\xbc\x6c\xbd\x6c\xbe\x6c\xbf\x6c\xc0\x6c\xc1\x6c\xc2\x6c\xc3\x6c\xc4\x6c\xc5\x6c\xc6\x6c\xc7\x6c\xc8\x6c\xc9\x6c\xca\x6c\xcb\x6c\xcc\x6c\xcd\x6c\xce\x6c\xcf\x6c\xd0\x6c\xd1\x6c\xd2\x6c\xd3\x6c\xd4\x6c\xd5\x6c\xd6\x6c\xd7\x6c\xd8\x6c\xd9\x6c\xda\x6c\xdb\x6c\xdc\x6c\xdd\x6c\xde\x6c\xdf\x6c\xe0\x6c\xe1\x6c\xe2\x6c\xe3\x6c\xe4\x6c\xe5\x6c\xe6\x6c\xe7\x6c\xe8\x6c\xe9\x6c\xea\x6c\xeb\x6c\xec\x6c\xed\x6c\xee\x6c\xef\x6c\xf0\x6c\xf1\x6c\xf2\x6c\xf3\x6c\xf4\x6c\xf5\x6c\xf6\x6c\xf7\x6c\xf8\x6c\xf9\x6c\xfa\x6c\xfb\x6c\xfc\x6c\xfd\x6c\xfe\x6d\x41\x6d\x42\x6d\x43\x6d\x44\x6d\x45\x6d\x46\x6d\x47\x6d\x48", /* e300 */ "\x6d\x49\x6d\x4a\x6d\x4b\x6d\x4c\x6d\x4d\x6d\x4e\x6d\x4f\x6d\x50\x6d\x51\x6d\x52\x6d\x53\x6d\x54\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x59\x6d\x5a\x6d\x5b\x6d\x5c\x6d\x5d\x6d\x5e\x6d\x5f\x6d\x60\x6d\x61\x6d\x62\x6d\x63\x6d\x64\x6d\x65\x6d\x66\x6d\x67\x6d\x68\x6d\x69\x6d\x6a\x6d\x6b\x6d\x6c\x6d\x6d\x6d\x6e\x6d\x6f\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x74\x6d\x75\x6d\x76\x6d\x77\x6d\x78\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7c\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x82\x6d\x83\x6d\x84\x6d\x85\x6d\x86\x6d\x87\x6d\x88\x6d\x89\x6d\x8a\x6d\x8b\x6d\x8c\x6d\x8d\x6d\x8e\x6d\x8f\x6d\x90\x6d\x91\x6d\x92\x6d\x93\x6d\x94\x6d\x95\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9b\x6d\x9c\x6d\x9d\x6d\x9e\x6d\x9f\x6d\xa0\x6d\xa1\x6d\xa2\x6d\xa3\x6d\xa4\x6d\xa5\x6d\xa6\x6d\xa7\x6d\xa8\x6d\xa9\x6d\xaa\x6d\xab\x6d\xac\x6d\xad\x6d\xae\x6d\xaf\x6d\xb0\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb4\x6d\xb5\x6d\xb6\x6d\xb7\x6d\xb8\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xbf\x6d\xc0\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc4\x6d\xc5\x6d\xc6\x6d\xc7\x6d\xc8", /* e380 */ "\x6d\xc9\x6d\xca\x6d\xcb\x6d\xcc\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd1\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd6\x6d\xd7\x6d\xd8\x6d\xd9\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdd\x6d\xde\x6d\xdf\x6d\xe0\x6d\xe1\x6d\xe2\x6d\xe3\x6d\xe4\x6d\xe5\x6d\xe6\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xeb\x6d\xec\x6d\xed\x6d\xee\x6d\xef\x6d\xf0\x6d\xf1\x6d\xf2\x6d\xf3\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf7\x6d\xf8\x6d\xf9\x6d\xfa\x6d\xfb\x6d\xfc\x6d\xfd\x6d\xfe\x6e\x41\x6e\x42\x6e\x43\x6e\x44\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4d\x6e\x4e\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x53\x6e\x54\x6e\x55\x6e\x56\x6e\x57\x6e\x58\x6e\x59\x6e\x5a\x6e\x5b\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x5f\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6b\x6e\x6c\x6e\x6d\x6e\x6e\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x7e\x6e\x7f\x6e\x80\x6e\x81\x6e\x82\x6e\x83\x6e\x84\x6e\x85\x6e\x86\x6e\x87\x6e\x88\x6e\x89\x6e\x8a", /* e400 */ "\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x8f\x6e\x90\x6e\x91\x6e\x92\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x98\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9c\x6e\x9d\x6e\x9e\x6e\x9f\x6e\xa0\x6e\xa1\x6e\xa2\x6e\xa3\x6e\xa4\x6e\xa5\x6e\xa6\x6e\xa7\x6e\xa8\x6e\xa9\x6e\xaa\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xaf\x6e\xb0\x6e\xb1\x6e\xb2\x6e\xb3\x6e\xb4\x6e\xb5\x6e\xb6\x6e\xb7\x6e\xb8\x6e\xb9\x6e\xba\x6e\xbb\x6e\xbc\x6e\xbd\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc1\x6e\xc2\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc7\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcb\x6e\xcc\x6e\xcd\x6e\xce\x6e\xcf\x6e\xd0\x6e\xd1\x6e\xd2\x6e\xd3\x6e\xd4\x6e\xd5\x6e\xd6\x6e\xd7\x6e\xd8\x6e\xd9\x6e\xda\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xde\x6e\xdf\x6e\xe0\x6e\xe1\x6e\xe2\x6e\xe3\x6e\xe4\x6e\xe5\x6e\xe6\x6e\xe7\x6e\xe8\x6e\xe9\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf4\x6e\xf5\x6e\xf6\x6e\xf7\x6e\xf8\x6e\xf9\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6f\x41\x6f\x42\x6f\x43\x6f\x44\x6f\x45\x6f\x46\x6f\x47\x6f\x48\x6f\x49\x6f\x4a\x6f\x4b\x6f\x4c", /* e480 */ "\x6f\x4d\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x58\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5c\x6f\x5d\x6f\x5e\x6f\x5f\x6f\x60\x6f\x61\x6f\x62\x6f\x63\x6f\x64\x6f\x65\x6f\x66\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6d\x6f\x6e\x6f\x6f\x6f\x70\x6f\x71\x6f\x72\x6f\x73\x6f\x74\x6f\x75\x6f\x76\x6f\x77\x6f\x78\x6f\x79\x6f\x7a\x6f\x7b\x6f\x7c\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x84\x6f\x85\x6f\x86\x6f\x87\x6f\x88\x6f\x89\x6f\x8a\x6f\x8b\x6f\x8c\x6f\x8d\x6f\x8e\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9c\x6f\x9d\x6f\x9e\x6f\x9f\x6f\xa0\x6f\xa1\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa7\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb3\x6f\xb4\x6f\xb5\x6f\xb6\x6f\xb7\x6f\xb8\x6f\xb9\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc0\x6f\xc1\x6f\xc2\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xc9\x6f\xca\x6f\xcb\x6f\xcc", /* e500 */ "\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd1\x6f\xd2\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xde\x6f\xdf\x6f\xe0\x6f\xe1\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea\x6f\xeb\x6f\xec\x6f\xed\x6f\xee\x6f\xef\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4c\x70\x4d\x70\x4e\x70\x4f\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5e\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6b\x70\x6c\x70\x6d\x70\x6e\x70\x6f\x70\x70\x70\x71\x70\x72\x70\x73\x70\x74\x70\x75\x70\x76\x70\x77\x70\x78\x70\x79\x70\x7a\x70\x7b\x70\x7c\x70\x7d\x70\x7e\x70\x7f\x70\x80\x70\x81\x70\x82\x70\x83\x70\x84\x70\x85\x70\x86\x70\x87\x70\x88\x70\x89\x70\x8a\x70\x8b\x70\x8c\x70\x8d\x70\x8e", /* e580 */ "\x70\x8f\x70\x90\x70\x91\x70\x92\x70\x93\x70\x94\x70\x95\x70\x96\x70\x97\x70\x98\x70\x99\x70\x9a\x70\x9b\x70\x9c\x70\x9d\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xab\x70\xac\x70\xad\x70\xae\x70\xaf\x70\xb0\x70\xb1\x70\xb2\x70\xb3\x70\xb4\x70\xb5\x70\xb6\x70\xb7\x70\xb8\x70\xb9\x70\xba\x70\xbb\x70\xbc\x70\xbd\x70\xbe\x70\xbf\x70\xc0\x70\xc1\x70\xc2\x70\xc3\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc8\x70\xc9\x70\xca\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xd8\x70\xd9\x70\xda\x70\xdb\x70\xdc\x70\xdd\x70\xde\x70\xdf\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe4\x70\xe5\x70\xe6\x70\xe7\x70\xe8\x70\xe9\x70\xea\x70\xeb\x70\xec\x70\xed\x70\xee\x70\xef\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf7\x70\xf8\x70\xf9\x70\xfa\x70\xfb\x70\xfc\x70\xfd\x70\xfe\x71\x41\x71\x42\x71\x43\x71\x44\x71\x45\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4a\x71\x4b\x71\x4c\x71\x4d\x71\x4e\x71\x4f\x71\x50", /* e600 */ "\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5c\x71\x5d\x71\x5e\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x64\x71\x65\x71\x66\x71\x67\x71\x68\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6e\x71\x6f\x71\x70\x71\x71\x71\x72\x71\x73\x71\x74\x71\x75\x71\x76\x71\x77\x71\x78\x71\x79\x71\x7a\x71\x7b\x71\x7c\x71\x7d\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x84\x71\x85\x71\x86\x71\x87\x71\x88\x71\x89\x71\x8a\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x8f\x71\x90\x71\x91\x71\x92\x71\x93\x71\x94\x71\x95\x71\x96\x71\x97\x71\x98\x71\x99\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\x9f\x71\xa0\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa8\x71\xa9\x71\xaa\x71\xab\x71\xac\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb3\x71\xb4\x71\xb5\x71\xb6\x71\xb7\x71\xb8\x71\xb9\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc3\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xce\x71\xcf\x71\xd0", /* e680 */ "\x71\xd1\x71\xd2\x71\xd3\x71\xd4\x71\xd5\x71\xd6\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe0\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe5\x71\xe6\x71\xe7\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xee\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8\x71\xf9\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x47\x72\x48\x72\x49\x72\x4a\x72\x4b\x72\x4c\x72\x4d\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x52\x72\x53\x72\x54\x72\x55\x72\x56\x72\x57\x72\x58\x72\x59\x72\x5a\x72\x5b\x72\x5c\x72\x5d\x72\x5e\x72\x5f\x72\x60\x72\x61\x72\x62\x72\x63\x72\x64\x72\x65\x72\x66\x72\x67\x72\x68\x72\x69\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x6e\x72\x6f\x72\x70\x72\x71\x72\x72\x72\x73\x72\x74\x72\x75\x72\x76\x72\x77\x72\x78\x72\x79\x72\x7a\x72\x7b\x72\x7c\x72\x7d\x72\x7e\x72\x7f\x72\x80\x72\x81\x72\x82\x72\x83\x72\x84\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8a\x72\x8b\x72\x8c\x72\x8d\x72\x8e\x72\x8f\x72\x90\x72\x91\x72\x92", /* e700 */ "\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\x9f\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xac\x72\xad\x72\xae\x72\xaf\x72\xb0\x72\xb1\x72\xb2\x72\xb3\x72\xb4\x72\xb5\x72\xb6\x72\xb7\x72\xb8\x72\xb9\x72\xba\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc1\x72\xc2\x72\xc3\x72\xc4\x72\xc5\x72\xc6\x72\xc7\x72\xc8\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcd\x72\xce\x72\xcf\x72\xd0\x72\xd1\x72\xd2\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd7\x72\xd8\x72\xd9\x72\xda\x72\xdb\x72\xdc\x72\xdd\x72\xde\x72\xdf\x72\xe0\x72\xe1\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xe8\x72\xe9\x72\xea\x72\xeb\x72\xec\x72\xed\x72\xee\x72\xef\x72\xf0\x72\xf1\x72\xf2\x72\xf3\x72\xf4\x72\xf5\x72\xf6\x72\xf7\x72\xf8\x72\xf9\x72\xfa\x72\xfb\x72\xfc\x72\xfd\x72\xfe\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4d\x73\x4e\x73\x4f\x73\x50\x73\x51\x73\x52\x73\x53\x73\x54", /* e780 */ "\x73\x55\x73\x56\x73\x57\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x60\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6c\x73\x6d\x73\x6e\x73\x6f\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c\x73\x7d\x73\x7e\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x84\x73\x85\x73\x86\x73\x87\x73\x88\x73\x89\x73\x8a\x73\x8b\x73\x8c\x73\x8d\x73\x8e\x73\x8f\x73\x90\x73\x91\x73\x92\x73\x93\x73\x94\x73\x95\x73\x96\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9b\x73\x9c\x73\x9d\x73\x9e\x73\x9f\x73\xa0\x73\xa1\x73\xa2\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xa9\x73\xaa\x73\xab\x73\xac\x73\xad\x73\xae\x73\xaf\x73\xb0\x73\xb1\x73\xb2\x73\xb3\x73\xb4\x73\xb5\x73\xb6\x73\xb7\x73\xb8\x73\xb9\x73\xba\x73\xbb\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc0\x73\xc1\x73\xc2\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xc8\x73\xc9\x73\xca\x73\xcb\x73\xcc\x73\xcd\x73\xce\x73\xcf\x73\xd0\x73\xd1\x73\xd2\x73\xd3\x73\xd4", /* e800 */ "\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xd9\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xde\x73\xdf\x73\xe0\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe5\x73\xe6\x73\xe7\x73\xe8\x73\xe9\x73\xea\x73\xeb\x73\xec\x73\xed\x73\xee\x73\xef\x73\xf0\x73\xf1\x73\xf2\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc\x73\xfd\x73\xfe\x74\x41\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x55\x74\x56\x74\x57\x74\x58\x74\x59\x74\x5a\x74\x5b\x74\x5c\x74\x5d\x74\x5e\x74\x5f\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6d\x74\x6e\x74\x6f\x74\x70\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x76\x74\x77\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7e\x74\x7f\x74\x80\x74\x81\x74\x82\x74\x83\x74\x84\x74\x85\x74\x86\x74\x87\x74\x88\x74\x89\x74\x8a\x74\x8b\x74\x8c\x74\x8d\x74\x8e\x74\x8f\x74\x90\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96", /* e880 */ "\x74\x97\x74\x98\x74\x99\x74\x9a\x74\x9b\x74\x9c\x74\x9d\x74\x9e\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xa7\x74\xa8\x74\xa9\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xba\x74\xbb\x74\xbc\x74\xbd\x74\xbe\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd2\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdc\x74\xdd\x74\xde\x74\xdf\x74\xe0\x74\xe1\x74\xe2\x74\xe3\x74\xe4\x74\xe5\x74\xe6\x74\xe7\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xee\x74\xef\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf4\x74\xf5\x74\xf6\x74\xf7\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x41\x75\x42\x75\x43\x75\x44\x75\x45\x75\x46\x75\x47\x75\x48\x75\x49\x75\x4a\x75\x4b\x75\x4c\x75\x4d\x75\x4e\x75\x4f\x75\x50\x75\x51\x75\x52\x75\x53\x75\x54\x75\x55\x75\x56\x75\x57\x75\x58", /* e900 */ "\x75\x59\x75\x5a\x75\x5b\x75\x5c\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x65\x75\x66\x75\x67\x75\x68\x75\x69\x75\x6a\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x72\x75\x73\x75\x74\x75\x75\x75\x76\x75\x77\x75\x78\x75\x79\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x7f\x75\x80\x75\x81\x75\x82\x75\x83\x75\x84\x75\x85\x75\x86\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8b\x75\x8c\x75\x8d\x75\x8e\x75\x8f\x75\x90\x75\x91\x75\x92\x75\x93\x75\x94\x75\x95\x75\x96\x75\x97\x75\x98\x75\x99\x75\x9a\x75\x9b\x75\x9c\x75\x9d\x75\x9e\x75\x9f\x75\xa0\x75\xa1\x75\xa2\x75\xa3\x75\xa4\x75\xa5\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xab\x75\xac\x75\xad\x75\xae\x75\xaf\x75\xb0\x75\xb1\x75\xb2\x75\xb3\x75\xb4\x75\xb5\x75\xb6\x75\xb7\x75\xb8\x75\xb9\x75\xba\x75\xbb\x75\xbc\x75\xbd\x75\xbe\x75\xbf\x75\xc0\x75\xc1\x75\xc2\x75\xc3\x75\xc4\x75\xc5\x75\xc6\x75\xc7\x75\xc8\x75\xc9\x75\xca\x75\xcb\x75\xcc\x75\xcd\x75\xce\x75\xcf\x75\xd0\x75\xd1\x75\xd2\x75\xd3\x75\xd4\x75\xd5\x75\xd6\x75\xd7\x75\xd8", /* e980 */ "\x75\xd9\x75\xda\x75\xdb\x75\xdc\x75\xdd\x75\xde\x75\xdf\x75\xe0\x75\xe1\x75\xe2\x75\xe3\x75\xe4\x75\xe5\x75\xe6\x75\xe7\x75\xe8\x75\xe9\x75\xea\x75\xeb\x75\xec\x75\xed\x75\xee\x75\xef\x75\xf0\x75\xf1\x75\xf2\x75\xf3\x75\xf4\x75\xf5\x75\xf6\x75\xf7\x75\xf8\x75\xf9\x75\xfa\x75\xfb\x75\xfc\x75\xfd\x75\xfe\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x80\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a", /* ea00 */ "\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x76\xfe\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c", /* ea80 */ "\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x80\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc", /* eb00 */ "\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x77\xfe\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x80\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e", /* eb80 */ "\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x78\xfe\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60", /* ec00 */ "\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x80\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0", /* ec80 */ "\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x79\xfe\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x80\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2", /* ed00 */ "\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7a\xfe\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64", /* ed80 */ "\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x80\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4", /* ee00 */ "\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7b\xfe\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x80\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6", /* ee80 */ "\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7c\xfe\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68", /* ef00 */ "\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x80\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8", /* ef80 */ "\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7d\xfe\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x80\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa", /* f000 */ "\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7e\xfe\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c", /* f080 */ "\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x80\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec", /* f100 */ "\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x7f\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x8e\x58\x77\x58\x82\x59\x80\x5b\xae\x5c\x66\x5c\x78\x5e\x49\x5e\x8a\x5f\x7a\x5f\xd2\x5f\xd5\x5f\xd9\x5f\xdd\x60\x59\x60\xad\x61\x77\x62\xb9\x62\xce\x62\xe2\x63\xee\x64\x8e\x64\xf1\x65\x49\x65\x66\x65\xb8\x65\xc6\x66\x78\x66\xdd\x66\xdf\x66\xe6\x67\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x00\x00\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x00\x00\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-300_P110-1997 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\x22\x12\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x22\x20\x22\xa5\x23\x12\x22\x02\x22\x07\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\x22\x61\x22\x52\x22\x6a\x22\x6b\x22\x1a\x22\x3d\x22\x1d\x22\x2b\x22\x2c\x22\x08\x22\x0b\x22\x86\x22\x87\x22\x82\x22\x83\x22\x2a\x22\x29\x22\x27\x22\x28\x21\xd2\x21\xd4\x22\x00\x22\x03\x21\x2b\x20\x30\x26\x6f\x26\x6d\x26\x6a\x20\x20\x20\x21\x00\xb6\x25\xef\x00\x00\x25\x00\x25\x02\x25\x0c\x25\x10", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\x30\x1c\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x25\x18\x25\x14\x25\x1c\x25\x2c\x25\x24\x25\x34\x25\x3c\x25\x01\x25\x03\x25\x0f\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x25\x13\x25\x1b\x25\x17\x25\x23\x25\x33\x25\x2b\x25\x3b\x25\x4b\x25\x20\x25\x2f\x25\x28\x25\x37\x25\x3f\x25\x1d\x25\x30\x25\x25\x25\x38\x25\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x14\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\x4e\xdd\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x66\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\xf8\x6f\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x67\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x8c\x4e\x09\x56\xdb\x4e\x94\x51\x6d\x4e\x03\x51\x6b\x4e\x5d\x53\x41\x76\x7e\x53\x43\x4e\x07\x51\x04\x90\xfd\x90\x53\x5e\x9c\x77\x0c\x5e\x02\x53\x3a\x75\x3a\x67\x51\x67\x71\x89\x7f\x53\x57\x53\x17\x59\x27\x4e\x2d\x5c\x0f\x4e\x0a\x4e\x0b\x5e\x74\x67\x08\x65\xe5\x75\x30\x5b\x50\x5c\x71\x67\x2c\x5d\xdd\x85\xe4\x91\xce\x5d\xe5\x69\x6d\x67\x28\x4e\x95\x90\xce\x5c\xf6\x96\xc4\x9a\xd8\x5c\xa1\x59\x2b\x53\x9f\x4e\xac\x4f\x50\x6b\x63\x67\x7e\x6a\x5f\x54\x8c\x88\xfd\x75\x37\x7f\x8e\x54\x09\x5d\x0e", /* 4580 */ "\x77\xf3\x8c\x37\x96\xfb\x95\x77\x6c\xbb\x6c\xa2\x91\xd1\x65\xb0\x53\xe3\x6a\x4b\x4e\x45\x79\x8f\x62\x40\x5e\x73\x51\x85\x56\xfd\x53\x16\x96\x2a\x5b\xae\x4e\xba\x4f\x5c\x90\xe8\x6e\x05\x6b\x21\x7f\xa9\x75\x1f\x4e\xe3\x51\xfa\x6c\x34\x68\xee\x51\x49\x52\xa0\x54\x08\x79\x5e\x67\x97\x91\xcd\x88\x4c\x4f\xe1\x66\x0e\x6d\x77\x5b\x89\x5e\x78\x4f\xdd\x59\x2a\x5b\xcc\x6c\x5f\x92\x34\x52\x4d\x77\xe5\x6b\x66\x4f\x0a\x66\x2d\x52\x06\x52\xdd\x75\x28\x5e\x83\x90\x20\x6c\x17\x62\x10\x89\x8b\x52\x29\x4f\x1a\x5b\x66\x5c\xa9\x75\x23\x95\x93\x57\x30\x81\xea\x82\x6f\x95\xa2\x61\x1b\x65\x3f\x5c\x3e\x8a\x08\x65\x87\x62\x4b\x72\x36\x65\xb9\x4e\x8b\x62\x38\x54\xc1\x55\x9c\x6e\x21\x5f\x18\x53\xe4\x8f\xba\x50\x09\x92\x44\x4e\x4b\x58\x34\x6d\x0b\x57\xce\x6d\x25\x7a\xcb\x5e\xa6\x53\x48\x4e\xca\x5f\x66\x8a\x2d\x90\x1a\x52\xd5\x5f\x8c\x59\x48\x5b\x9a\x6c\x60\x5c\x4b\x6d\x5c\x74\x06\x57\x42\x5b\x9f\x82\xf1\x76\x84\x53\xf8\x79\xc0\x6a\x2a\x54\x0d\x5b\x5d\x7a\xf9\x53\x5a\x52\x9b\x5e\xab\x84\x49\x68\x04\x6c\x38\x56\x68\x73\x89\x59\x1a\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\xc0\x77\x1f\x60\x75\x97\x59\x51\x86\x83\x02\x65\x4f\x8c\x4a\x51\x75\x6c\xd5\x76\x7a\x97\x52\x58\x97\x65\x99\x5f\xe0\x8c\xc7\x66\x42\x72\x69\x8e\xca\x5f\xb3\x89\x81\x5b\xfe\x58\x5a\x79\xcb\x76\x7d\x6c\xb3\x70\x2c\x6c\xb9\x96\x86\x85\x35\x5f\x53\x4f\xca\x5f\xd7\x66\x25\x79\x3e\x99\xac\x51\x65\x5e\xfa\x68\x39\x67\x49\x90\x32\x82\x08\x6d\x66\x7c\xbe\x54\x0c\x60\x27\x7c\x73\x80\x05\x52\xa9\x67\x9d\x8f\xd1\x76\xf4\x76\xee\x67\x65\x75\x3b\x76\xf8\x9e\xd2\x4e\x38\x82\x39\x75\x31\x58\xeb\x7b\x2c\x71\x8a", /* 4680 */ "\x7d\x19\x50\x65\x68\xb0\x82\xb3\x57\x1f\x67\x09\x5b\xb6\x7d\xda\x7d\x4c\x8a\xbf\x59\x29\x67\x1f\x7f\x6e\x6d\x45\x65\x89\x5f\x0f\x5f\x62\x97\x62\x7a\x2e\x8f\x38\x59\x16\x51\x43\x4f\x53\x9e\x7f\x5f\xa1\x59\x73\x5e\xb7\x4e\x16\x52\xc7\x58\x00\x59\x7d\x51\x50\x5b\xfa\x92\xfc\x72\x79\x57\xfc\x90\x54\x54\x11\x53\xd6\x7b\x49\x66\x7a\x56\xde\x95\x80\x90\x4b\x50\x99\x60\x1d\x96\x3f\x4e\x0d\x98\x08\x51\x68\x5b\xff\x55\x84\x67\x7f\x98\xef\x8c\x9e\x73\xfe\x98\xdf\x7d\x44\x98\x5e\x51\x6c\x67\x50\x99\x99\x55\x46\x7d\x50\x88\x68\x77\xe2\x6f\x5f\x79\xc1\x52\x36\x90\xa6\x6c\xbc\x7c\xf8\x5b\x8f\x7b\x56\x6c\xe2\x54\xe1\x65\x70\x95\x8b\x6e\x96\x6a\x39\x8c\xbb\x66\x0c\x5f\x37\x78\x14\x53\xcb\x5b\x87\x82\xe5\x83\xca\x63\x01\x82\xb1\x5f\x15\x7d\x00\x83\x52\x52\x25\x4f\xee\x8d\x8a\x4f\x4f\x85\xac\x6b\xdb\x90\x60\x55\x4f\x59\x65\x57\x8b\x5f\xc3\x76\x7b\x65\xe9\x67\xf3\x6d\x69\x8c\xea\x52\xd9\x6c\xc9\x5e\x38\x5b\x88\x57\xfa\x7b\xa1\x6c\xf0\x4f\x38\x67\x00\x4e\xe5\x6b\x4c\x88\xd5\x8d\x64\x8d\xb3\x89\x8f\x6d\x41\x8a\xa0\x66\x07\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xde\x71\x67\x58\x69\x90\x01\x96\xc5\x67\x2b\x54\xf2\x5c\xb8\x4e\x5f\x5c\x90\x52\x1d\x83\x28\x52\x47\x6b\xd4\x80\xfd\x8a\x71\x62\x95\x8e\xe2\x83\xc5\x90\x23\x4e\xd6\x6c\x11\x7d\x66\x91\x52\x7e\x41\x4f\xa1\x6e\x80\x67\x1d\x4e\xd8\x67\x61\x71\x21\x80\x03\x69\x7d\x4e\x3b\x61\x0f\x62\x26\x52\x07\x52\x64\x72\x47\x7d\x30\x6e\x08\x7a\x32\x5e\x03\x91\xcc\x5c\x5e\x7a\xe0\x59\x09\x4f\x55\x68\x5c\x5f\x7c\x67\xfb\x76\xca\x58\xf2\x4e\xc1\x6d\xf1\x53\xf0\x9c\xe5\x9d\xb4\x65\x2f\x65\x74\x89\xd2\x56\x09\x54\x73", /* 4780 */ "\x88\x5b\x8b\x70\x57\x27\x73\x87\x8d\xef\x70\x6b\x96\x1c\x8f\x1d\x70\xb9\x4e\x0e\x6e\x1b\x75\x51\x92\x80\x7a\x7a\x4e\xa4\x7f\xbd\x53\x4a\x53\xce\x59\x2e\x7d\xcf\x8a\x18\x66\x74\x69\xcb\x96\x9b\x68\x85\x53\x70\x8a\x00\x68\x17\x8e\xab\x66\xf8\x51\x4b\x7d\x20\x96\xc6\x7b\xc0\x51\x48\x6e\xdd\x6c\x7a\x65\x59\x7d\x14\x67\xf4\x63\xa5\x66\x1f\x77\x40\x75\x59\x66\x20\x5d\xf1\x75\x4c\x51\x77\x65\x6c\x7f\xa4\x98\x06\x51\x71\x6d\x3b\x91\xcf\x63\x07\x89\xe3\x5b\xa4\x67\x9c\x54\x04\x67\x1b\x96\x32\x7d\x04\x61\xb2\x96\x7d\x4e\x80\x56\xf3\x4e\x88\x82\x72\x7a\x0e\x69\x0d\x53\xef\x60\x52\x4f\x4d\x51\x78\x5f\xc5\x7d\x9a\x60\x25\x57\x28\x57\xa3\x54\x1b\x5e\xf6\x5d\x8b\x4f\x01\x68\x03\x67\x0d\x71\xb1\x52\x72\x53\x54\x6b\x69\x53\xf2\x51\x2a\x65\x8e\x62\x3f\x5b\x97\x68\x3c\x8f\xb0\x7b\x20\x57\x12\x8a\xf8\x81\x07\x55\x53\x8c\xe2\x5f\x25\x98\xa8\x5f\x97\x66\x13\x62\x53\x98\x2d\x65\xed\x6b\xb5\x52\xe2\x71\x36\x56\xe3\x98\x4d\x84\x3d\x91\x4d\x7a\x0b\x8f\xbb\x54\x3e\x61\x1f\x5b\xdb\x53\xcd\x7a\x14\x97\x00\x6e\x90\x6c\x96\x98\x4c\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xbc\x83\x49\x7b\x97\x76\xdb\x8f\xb2\x90\xa3\x77\x01\x69\xd8\x6b\xbf\x5c\x11\x4e\xcb\x53\xd7\x97\xf3\x7d\xe8\x59\xd4\x5e\x84\x4f\xc2\x72\xb6\x79\x3a\x5e\x97\x5a\x9b\x68\x2a\x6e\xcb\x68\xa8\x7e\x04\x53\xf3\x5d\xe6\x53\xca\x90\x78\x5c\x45\x60\xc5\x7d\xf4\x70\xad\x99\x28\x92\x71\x6a\x21\x6b\x8a\x7e\x3e\x4e\x9c\x7e\x4a\x4e\xf2\x58\x57\x6d\x88\x88\x53\x69\x1c\x67\x17\x5b\x85\x52\x9f\x5c\x1a\x8c\xbf\x60\xa6\x81\x02\x7b\xe0\x4f\x73\x7d\x21\x51\xa8\x68\x51\x78\xba\x72\x67\x4e\x26\x50\x24\x89\xb3\x8c\xb4", /* 4880 */ "\x7d\xad\x7d\x71\x5b\xbf\x4e\x21\x7c\xd6\x89\xaa\x93\x32\x6f\x84\x65\xbd\x5b\xb9\x98\xdb\x5c\x40\x79\x50\x90\x4e\x6c\x0f\x65\x39\x76\xe4\x7a\x4d\x6e\x0b\x5d\xfb\x6d\xf3\x5f\xdc\x4e\x89\x8e\xcd\x88\xc5\x91\x78\x7e\x54\x67\xd3\x5e\x1d\x7d\xbf\x7c\x89\x82\x2a\x75\x32\x54\x68\x4e\xd9\x5f\x85\x4f\x4e\x7d\xd1\x8e\xfd\x9e\xbb\x61\x76\x52\xb4\x78\xef\x4e\x39\x80\xb2\x96\x50\x5c\x0e\x65\x3e\x66\x43\x5e\xa7\x4e\xf6\x60\xf3\x9a\x13\x4e\xd5\x4f\x7f\x8f\x2a\x98\x54\x75\x6a\x5f\x35\x80\x5e\x4f\x9b\x6e\x6f\x6e\xb6\x68\x21\x92\x85\x92\xf3\x87\x8d\x97\x56\x51\x99\x5b\x8c\x6e\x2f\x93\x5b\x59\x1c\x51\x45\x9f\x8d\x7d\xb1\x83\xf1\x90\x1f\x52\xc9\x52\x37\x8d\x77\x64\x69\x53\xc2\x55\xb6\x7a\x42\x63\xa8\x8f\xd4\x80\x77\x6b\x62\x4f\x1d\x5e\x79\x74\x03\x6a\x29\x5c\x55\x5e\x61\x84\x5b\x5e\xad\x97\x5e\x53\xf7\x53\x58\x6b\x73\x62\xe1\x51\xe6\x8a\x9e\x66\x28\x57\xdf\x6d\xf5\x51\x8d\x50\xcd\x79\xd1\x9b\x5a\x7a\xef\x90\x14\x68\x48\x5b\x57\x8a\xd6\x51\x7c\x53\xc8\x63\x2f\x62\x80\x5f\xb9\x67\x2d\x7c\xfb\x5f\x93\x51\xb7\x61\x4b\x5c\xf0\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x31\x53\x9a\x50\x74\x6c\xe8\x6e\x2c\x98\x03\x4e\x57\x8a\x66\x57\x6a\x84\x29\x51\x5a\x6c\x7d\x5b\x9d\x60\x6d\x6a\x0b\x6e\x29\x65\x77\x8a\xac\x82\xb8\x54\x4a\x6b\x74\x82\x2c\x98\xfe\x79\x3c\x5c\x06\x96\xe3\x78\x02\x52\x24\x5f\x79\x5f\x71\x66\xfd\x5e\x2f\x96\x78\x93\x8c\x8a\xc7\x5f\x70\x60\xaa\x6a\x19\x75\x33\x5b\xb3\x6b\xcd\x88\xdc\x5e\x4c\x58\xf0\x96\x64\x7b\x39\x5a\x66\x4e\x7e\x7a\xf6\x82\x9d\x72\x5b\x8c\xb7\x79\xfb\x78\x5d\x83\x36\x52\xb9\x99\x0a\x52\xf2\x80\xa5\x8b\x19\x70\x89\x59\x0f\x58\x02", /* 4980 */ "\x67\xcf\x62\x55\x5e\x30\x71\x3c\x78\x6b\x80\x01\x7a\x76\x5b\xe9\x91\xdd\x65\xad\x5c\x04\x5d\xee\x5d\x50\x62\x98\x80\x10\x5b\xa3\x59\xcb\x5f\x8b\x6b\x8b\x66\x6f\x8c\x61\x90\xf7\x53\x53\x96\xe2\x85\xab\x6b\x7b\x80\x15\x64\xcd\x4e\xae\x4e\x91\x90\xe1\x52\xe4\x6c\x42\x8c\xab\x5b\x98\x59\xbb\x88\xcf\x77\x3c\x4f\x2f\x7a\xaf\x7b\xc9\x96\x8e\x63\xdb\x68\x42\x99\xc5\x68\xb6\x57\x47\x8c\xa1\x54\x7d\x73\x8b\x84\xb2\x90\xc1\x78\xe8\x7b\x11\x66\xf2\x69\x75\x58\x31\x63\xd0\x8a\x3c\x96\xea\x90\x55\x88\xc1\x99\x96\x75\xc5\x68\x50\x4f\x59\x74\xe6\x4e\xe4\x54\x39\x73\x2a\x67\x2a\x52\x5b\x8c\xa0\x4f\x34\x51\x00\x54\x2b\x90\x69\x8f\xc4\x5c\x3b\x5d\xcc\x7b\x54\x8f\xfd\x8a\x0e\x4e\x08\x92\x5b\x71\xc3\x8a\xb2\x70\xba\x96\x62\x67\x9a\x76\xae\x8b\x77\x7d\xbe\x96\xe8\x62\x11\x5b\xc4\x83\x7b\x62\xbc\x7d\x0d\x76\xe3\x7e\x2b\x96\x4d\x57\x2d\x7a\xdc\x7b\xc4\x6b\xba\x8c\x9d\x69\x8e\x90\x47\x6f\x14\x53\x60\x8f\xeb\x52\x87\x62\x4d\x65\x66\x7d\x1a\x7d\x42\x6b\xce\x7d\x79\x7e\x2e\x66\x6e\x79\x65\x50\x0b\x5c\x02\x99\xd2\x8a\x55\x75\x60\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x58\x80\x89\x50\xbe\x5e\x2b\x6d\xb2\x4f\x8b\x81\xe3\x81\xf3\x56\xe0\x7d\x99\x5d\xf2\x89\x9a\x6e\x9d\x6d\x17\x8a\xad\x89\x96\x73\x1b\x5d\xe8\x7d\xb2\x88\x8b\x4e\xfb\x5b\xc6\x88\x96\x6c\xc1\x84\x57\x8f\x03\x6b\xc5\x97\xff\x8c\xa9\x5e\x45\x82\xe6\x63\xaa\x5f\x81\x78\xc1\x82\x1e\x52\xaa\x7a\xaa\x59\x99\x62\x97\x8f\x14\x7f\xd2\x4f\xc3\x54\xc9\x96\x7a\x66\xf4\x8b\x1b\x5e\x72\x5f\xa9\x8a\x2a\x6d\x3e\x77\x63\x64\x83\x8b\x58\x61\x4e\x5a\x5a\x8d\x85\x71\xd0\x98\x3c\x72\xe9\x58\x3a\x5d\xfe\x8a\x8d\x67\xc4", /* 4a80 */ "\x7d\xe0\x4f\x11\x77\xed\x4f\x0f\x5b\xc5\x62\x9c\x5c\x3c\x53\x3b\x6d\xc0\x81\xfc\x96\xd1\x90\x4a\x6d\x6e\x93\xe1\x5c\x64\x98\xfc\x52\x4a\x6d\xfb\x85\x84\x96\x8a\x56\xfa\x58\x83\x77\x66\x98\x05\x4e\x73\x8c\x46\x8a\x31\x7d\xd2\x8f\xf0\x6d\x6a\x4f\x9d\x6b\x6f\x6b\x27\x62\xc5\x51\x1f\x97\x69\x53\x74\x9a\xa8\x67\x75\x88\x7f\x53\x05\x75\x70\x8d\x70\x86\x4e\x5c\xef\x8c\xde\x5f\xf5\x72\x5f\x76\x86\x60\x9f\x80\xcc\x59\xeb\x81\x31\x5e\x0c\x8a\x17\x96\x76\x82\xd7\x74\xb0\x84\xb8\x50\xd5\x96\xf2\x72\x48\x78\x34\x6d\xd1\x6e\x09\x67\xff\x6f\x54\x59\x15\x50\x0d\x72\xac\x9e\xc4\x7b\x46\x9b\x3c\x65\x63\x53\xbb\x8a\x98\x91\xdc\x98\x18\x6f\xc3\x65\xc5\x50\x1f\x7f\x8a\x6f\x64\x90\x31\x5f\x3e\x63\xf4\x90\x38\x8b\x66\x7b\xe4\x72\x06\x68\x43\x72\xec\x65\xcf\x82\xa6\x5b\xa2\x69\x60\x9e\xa6\x52\xdf\x67\x90\x63\x9b\x7d\x75\x98\x55\x5d\xf3\x58\x05\x8a\xcb\x95\xa3\x88\x63\x8c\xa8\x5b\x63\x5e\x8a\x54\x49\x78\x6c\x7d\x2b\x8c\xa2\x53\x52\x7d\x76\x8c\xb8\x70\x70\x54\x7c\x65\x45\x66\x76\x73\xb2\x56\xf2\x7b\xb1\x58\xa8\x7a\x81\x66\xae\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x87\x59\xff\x88\x40\x56\xf0\x7b\x51\x6d\xf7\x5f\x01\x93\x4b\x90\x00\x4f\xe3\x67\x5f\x4f\xbf\x8c\xc3\x52\x6f\x63\xa1\x54\x42\x89\x07\x69\x8a\x5e\x2d\x5a\x18\x75\x18\x51\x4d\x5e\x7e\x50\xb5\x5b\xdd\x68\xd2\x74\x5e\x69\xfb\x5f\xae\x55\xe3\x8a\x70\x5b\xf8\x58\x24\x83\x58\x5f\x13\x5e\x95\x70\x6f\x75\x1a\x7d\x05\x60\xe3\x7e\x70\x50\x12\x52\x38\x83\xef\x53\x73\x5f\x31\x6a\x2b\x9c\xf4\x53\xcc\x6d\x32\x4e\xab\x4e\x92\x84\x2c\x8a\x8c\x65\xe2\x6f\x01\x80\xa9\x9d\xf9\x8b\x72\x7b\x52\x95\x89\x6d\x74\x63\xa2", /* 4b80 */ "\x65\x90\x5b\xd2\x63\x19\x8a\xb0\x76\xdf\x99\xa8\x7a\x74\x82\x36\x88\x46\x80\x61\x65\x57\x59\x22\x96\x44\x88\xab\x93\x26\x7b\x4b\x62\xb5\x53\x71\x5e\x81\x5b\xdf\x4f\x75\x58\xc1\x70\x58\x7d\xca\x54\x38\x73\xe0\x52\xd8\x52\x08\x78\xd0\x6b\x23\x68\x38\x4e\x43\x69\x0e\x83\x77\x6e\xd1\x98\xf2\x81\x70\x88\x57\x8e\xf8\x79\x8e\x83\xdc\x8f\xce\x7e\x01\x55\x10\x4e\xa8\x8a\x33\x91\x62\x5e\xfb\x60\x6f\x4e\x86\x66\x4b\x63\x68\x52\x17\x80\x56\x51\xfd\x76\x42\x82\x1f\x96\x85\x50\xcf\x66\x2f\x4f\x3c\x4e\x59\x6a\x3d\x4e\x71\x52\x3a\x8a\xcf\x6a\x58\x66\xff\x67\x0b\x65\x3b\x97\x32\x5e\xc3\x8a\x13\x57\x82\x60\x4b\x86\x6b\x95\xd8\x60\xa9\x4e\x01\x63\xcf\x6f\xc0\x65\x9c\x8c\xac\x83\x05\x7c\xa7\x60\x50\x96\xf7\x5f\xcd\x64\x0d\x5b\x54\x90\x0f\x62\xd3\x59\xb9\x71\x59\x51\xac\x79\xf0\x55\x2f\x52\x75\x66\x97\x80\xf8\x4e\x98\x4e\xcf\x51\xcd\x9d\x5c\x51\x44\x7a\x93\x67\xf1\x58\x41\x7c\x21\x88\x61\x5c\x31\x68\xda\x91\xe7\x9d\xf2\x63\xee\x65\x75\x84\xee\x52\x3b\x6b\x32\x7c\x98\x59\x82\x96\x9c\x89\x87\x7c\x9f\x90\x06\x62\xdb\x66\xdc\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x55\x69\x82\x50\xac\x62\x3b\x5f\xd8\x63\xda\x75\xdb\x62\x7f\x61\x6e\x82\x66\x7c\x95\x71\x6e\x96\xc7\x7f\x6a\x54\x26\x52\x00\x83\xd3\x52\x11\x59\x4f\x9d\x28\x57\x4a\x66\xc7\x98\x58\x82\x0e\x66\x14\x73\x3f\x50\xb7\x65\x51\x5e\xb8\x5b\x6b\x55\xac\x5f\xeb\x63\x88\x8c\xaf\x67\x6f\x59\x51\x5a\x01\x71\xe5\x5d\xe3\x8c\x6a\x62\x71\x81\xf4\x5c\x3a\x5f\x92\x90\x45\x73\x84\x71\x49\x79\xd8\x79\x6d\x90\x03\x83\xcc\x5f\xb4\x5b\x8d\x62\x79\x64\xae\x7d\x18\x72\x3e\x5b\xee\x65\xe7\x8d\x08\x9e\x7c\x52\xe7\x5d\x07", /* 4c80 */ "\x9f\x62\x60\x69\x53\x6f\x66\x81\x96\x63\x5e\x3d\x62\xb1\x72\x2a\x6e\x4a\x93\xae\x79\xe6\x53\xe5\x80\x9d\x88\xfe\x53\xb3\x6c\x88\x6e\x7f\x51\x41\x90\x91\x6f\x6e\x84\xc4\x85\xea\x81\x29\x6b\xd2\x66\x3c\x7f\x72\x73\xc2\x5f\x1f\x79\x0e\x60\xb2\x72\xed\x58\xee\x81\x79\x8e\x8d\x5c\x65\x5d\xe7\x6c\x37\x6d\xe1\x86\x2d\x72\xaf\x8e\x0a\x7c\x92\x82\x18\x80\x33\x63\xa7\x92\x91\x50\x19\x81\x55\x8a\x69\x8e\xdf\x66\xb4\x81\x33\x75\x91\x6b\x20\x66\x69\x90\xf5\x4e\x32\x73\xea\x69\x3f\x76\x87\x70\x7d\x7d\x3a\x61\x48\x86\x07\x99\xff\x59\xc9\x78\x32\x78\x15\x90\x7f\x80\xa1\x5c\x3f\x66\xa2\x94\x18\x6d\x44\x5e\x55\x58\x54\x7b\x95\x8d\xe1\x4e\xa1\x8c\x5a\x81\xe8\x89\xe6\x96\x70\x52\x63\x74\xf6\x9a\x5a\x60\x12\x52\x0a\x74\x34\x98\x01\x90\x7a\x55\x04\x79\x56\x52\x30\x54\xb2\x8a\x34\x96\xa3\x4f\xf3\x92\x83\x91\xe3\x7d\x39\x96\x88\x4f\x51\x7d\x61\x5d\xba\x9b\xae\x5f\x80\x79\x5d\x85\x97\x8d\xa3\x7c\x60\x5c\x0a\x75\x65\x85\xa9\x63\xd6\x9e\x97\x7d\x22\x53\x75\x9a\xea\x90\x42\x6b\x3d\x7d\x0b\x63\x92\x80\xaa\x7d\xe9\x9f\x3b\x99\xc6\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x78\x67\x31\x55\x31\x63\x98\x78\x25\x5c\xb3\x5d\xe1\x92\xad\x98\xfd\x98\x10\x6c\xe3\x6b\x64\x53\x21\x6b\x53\x5e\x8f\x7a\xe5\x50\x2b\x6e\x56\x62\xbd\x82\x76\x6a\x9c\x4e\x18\x57\xf7\x75\x2b\x7c\x97\x82\xeb\x98\x02\x81\x1a\x73\xcd\x8f\x9b\x5c\x0b\x63\xe1\x73\x72\x81\x50\x80\xe1\x5b\x99\x76\xd7\x62\x91\x65\xec\x8a\x3a\x59\x47\x65\xe8\x6e\x7e\x66\x96\x55\xab\x8f\x09\x92\xed\x93\x96\x4e\xee\x75\x5c\x6f\x38\x8f\x9e\x79\x81\x5c\x01\x62\xe0\x9b\xe8\x91\xc8\x62\x76\x65\xcb\x8e\x0f\x8b\x21\x69\x9b\x62\x16", /* 4d80 */ "\x5a\x92\x90\xb8\x50\xda\x79\xdf\x6c\x41\x52\x70\x91\x75\x8b\x39\x68\x5d\x58\x75\x81\x9c\x5b\x9c\x8a\x89\x8a\x72\x9d\x8f\x63\x77\x59\x74\x8a\xa4\x52\xb1\x69\x62\x5c\x48\x9c\xe9\x67\x3a\x75\xb2\x6d\x1e\x4f\x0d\x7e\x6d\x7b\x48\x7f\xcc\x65\xe6\x59\xa5\x79\xe9\x62\x12\x6e\xde\x77\x0b\x8c\xa7\x65\xbc\x88\x5d\x6a\xdb\x5c\x4a\x80\x74\x90\x84\x8e\xcc\x65\xd7\x57\xf9\x70\x8e\x6f\x06\x5e\x7c\x77\xac\x4f\xf5\x59\x49\x81\xed\x9b\x45\x7f\xfc\x81\x78\x69\xfd\x6c\xca\x69\xc7\x79\xd2\x8b\x1d\x9e\xd9\x81\xd3\x7a\x3c\x79\x68\x6f\x5c\x63\xb2\x8d\xdd\x63\x83\x6e\x9c\x5e\x33\x61\xf8\x76\xbf\x64\x2c\x7d\xb4\x62\x47\x64\x58\x68\x16\x5f\x69\x90\x22\x7a\x1a\x82\xb9\x70\xc8\x9a\x12\x61\x63\x6f\xef\x53\xeb\x9d\x3b\x62\xfe\x60\xa0\x95\x91\x6d\x99\x61\x62\x92\x98\x63\x5c\x97\x07\x89\x72\x68\x3d\x51\xe1\x9b\x54\x60\x8c\x5b\x22\x99\xc4\x71\x26\x8a\x73\x97\x1c\x73\x96\x67\xd4\x60\xa3\x4e\x11\x4e\xf0\x8c\xdb\x8c\xb0\x79\x12\x97\x74\x89\x86\x51\x46\x57\xdc\x99\xd0\x80\xc3\x83\x38\x78\xa7\x86\xcd\x7f\x85\x50\x49\x82\x47\x69\x0b\x7c\x4d\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x5f\x26\x6e\x25\x68\x81\x93\x75\x5d\xfd\x53\x47\x97\x27\x64\x3a\x75\xc7\x6f\xa4\x73\xa9\x77\xe9\x94\x51\x8b\x5c\x80\x8c\x67\x4e\x4e\xad\x58\x2f\x75\x73\x8e\xd2\x6c\xe5\x93\x20\x8f\xf7\x7d\x33\x72\xc2\x82\x17\x74\x22\x82\xc5\x9a\x30\x77\x3a\x5f\x84\x96\x73\x64\xad\x92\x0d\x74\xdc\x60\xc7\x86\xed\x4f\xfa\x52\xa3\x6a\x3a\x77\x20\x53\x20\x61\xb6\x56\x74\x87\x76\x6c\xbf\x50\x5c\x60\x2a\x84\x66\x6b\x96\x6d\xbc\x97\xd3\x96\x8f\x68\x76\x60\xd1\x53\x78\x64\xa4\x51\xa0\x91\x54\x5d\xf4\x62\x9e\x5e\x63", /* 4e80 */ "\x92\x9a\x76\x93\x6c\x5a\x65\x97\x50\xe7\x7c\x82\x5f\x6b\x6c\xe1\x5f\x6c\x5a\xc1\x6f\x2c\x85\x2d\x64\x42\x57\x50\x58\xc7\x8c\xfc\x8a\x5e\x7a\x7f\x68\x9d\x7e\x26\x7a\x40\x73\x44\x8a\xeb\x4f\xd7\x7a\x63\x80\x36\x7d\xef\x80\xc6\x8a\xed\x73\x1f\x8f\xea\x4f\x0e\x75\x8b\x51\x8a\x67\x34\x5f\xd9\x61\xc7\x65\xaf\x9c\xf3\x5e\xca\x92\x62\x68\xdf\x6c\xb8\x80\xf4\x57\xcb\x6c\x99\x96\xa0\x5b\x64\x58\xf1\x68\xc4\x54\x10\x98\x30\x8a\x87\x4e\x5e\x61\x67\x9b\xab\x90\xaa\x55\xb0\x82\xbd\x59\x6a\x66\xf3\x82\x99\x58\x93\x71\x9f\x62\x84\x67\xd1\x90\x63\x5a\xcc\x6c\x57\x7c\xe7\x58\x51\x64\xb2\x58\xca\x83\x0e\x59\x68\x53\x02\x5a\x46\x87\x02\x60\x65\x72\xd9\x89\xa7\x66\x89\x66\xf9\x5d\x6f\x5b\xb0\x96\xbc\x63\x6e\x60\xdc\x79\x48\x51\xdd\x86\x06\x5e\xc9\x75\x54\x59\x6e\x6b\x04\x4f\x43\x7b\x94\x67\xda\x62\xdd\x62\x8a\x97\x1e\x62\xed\x6e\xc5\x50\x8d\x67\xb6\x80\xe4\x9e\xbf\x5e\xb5\x63\x8c\x85\xcd\x98\x67\x52\xc5\x60\x16\x68\xcb\x61\xd0\x57\x51\x8f\x29\x5f\xaa\x81\xa8\x7d\x62\x71\xc8\x54\xc0\x69\xcc\x6b\x3e\x65\xac\x63\xc3\x4f\x46\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x1b\x6b\x86\x88\xf8\x52\x03\x73\x2e\x66\x87\x7d\x17\x57\xf4\x57\x0f\x61\x8e\x97\x0a\x7c\x3f\x8b\x00\x78\x81\x8c\xe0\x54\x8b\x7b\x87\x74\x5b\x7c\x11\x88\x70\x53\x98\x54\x48\x6c\xf3\x6f\x22\x53\xf6\x88\xb4\x53\x01\x7a\x6b\x86\x95\x58\x6b\x5d\x29\x88\xc2\x62\xd2\x4e\x1e\x50\x36\x96\xc0\x73\x63\x8a\x3b\x51\x76\x71\x99\x7f\xe0\x88\x88\x7e\x1e\x4e\x4f\x84\xcb\x6f\x2b\x58\x59\x93\x6c\x53\xe9\x86\x5a\x91\x49\x86\xef\x5e\x06\x55\x07\x90\x2e\x67\x95\x84\x6c\x5b\xa5\x82\xa5\x84\x31\x6d\x8c\x63\xfa\x4e\xa5", /* 4f80 */ "\x51\xc6\x63\x28\x7f\x70\x5b\x5f\x5d\xbd\x99\xc8\x53\xec\x79\x85\x8a\x54\x79\x62\x88\xdf\x5b\x09\x4f\xb5\x4f\x91\x9b\x8e\x51\x92\x96\xf0\x6d\xaf\x62\x2f\x84\x90\x8c\xdc\x50\x75\x5c\xe0\x4e\x14\x4f\x83\x7c\x54\x84\xd1\x77\xb3\x8a\xee\x5c\xe8\x62\xf6\x66\x3b\x8a\x93\x85\x26\x8a\x95\x65\xfa\x67\x14\x53\xd4\x62\xab\x8c\xe6\x88\xf3\x5b\xe7\x86\x8a\x66\x8e\x58\x2a\x61\x70\x69\x6f\x9f\x13\x7a\x92\x78\x93\x6a\x7f\x90\x17\x92\x66\x7d\x10\x7b\xc7\x6e\xf4\x82\x1c\x5c\x3d\x62\xcd\x85\xc1\x6f\x02\x6e\x67\x66\x91\x85\xa6\x63\x7a\x82\x1b\x4f\x8d\x50\x91\x8a\x02\x62\xec\x9b\xc9\x7a\x3d\x7c\x9b\x50\xc5\x90\x19\x70\x8a\x7c\x8b\x64\xec\x66\x5f\x65\x62\x73\x2b\x53\x39\x67\xa0\x55\xa7\x6d\x2a\x7a\x3f\x64\xe6\x79\xa7\x67\xd8\x7b\x26\x96\xbb\x63\x11\x72\xa0\x5c\x6f\x70\x26\x97\xee\x60\xdf\x8a\xfe\x8b\x04\x84\x94\x9b\xd6\x82\xaf\x93\x2c\x66\x06\x96\x40\x5b\xc2\x86\xc7\x79\x49\x80\x17\x69\x19\x70\x92\x96\x3b\x7c\x7e\x59\xd3\x5b\x5c\x7d\x1b\x91\xd8\x6a\x80\x85\xe9\x69\x05\x6c\x93\x50\x2d\x4e\xa6\x7f\xc1\x61\xa4\x8c\xca\x96\x65\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\xd1\x53\xf1\x59\x8a\x8e\xac\x62\xd8\x68\x67\x71\xd5\x7b\x67\x50\x4f\x67\xd0\x82\xd1\x97\x8d\x74\x8b\x80\xba\x73\x36\x51\x4e\x81\x05\x90\xca\x58\x4a\x67\xfe\x6f\xf1\x5f\xfd\x76\xc6\x9a\x0e\x50\x7d\x96\x94\x5e\xf7\x7b\xb8\x90\x4d\x6c\x4e\x85\xfb\x81\x9d\x67\xaf\x56\x4c\x56\x06\x8c\x8c\x56\xda\x73\xed\x8c\xc4\x8f\xc5\x96\xf6\x6c\x50\x89\x44\x8f\x3f\x7d\x5e\x60\xe8\x72\xfc\x7d\x9c\x84\x63\x5c\xfb\x54\x46\x5d\x16\x6c\xa1\x81\xb3\x58\xfa\x5b\xb4\x81\x08\x54\x1f\x8c\xbc\x61\x82\x78\xa9\x6f\xe1\x91\xac", /* 5080 */ "\x76\xf2\x60\x20\x76\xfe\x84\xc9\x7f\x36\x4e\xc7\x75\x5d\x7a\x17\x84\xec\x75\xf4\x4f\x3a\x67\x6d\x74\x60\x62\xf3\x6f\x20\x79\xe4\x87\xf9\x60\x94\x62\x34\x66\xab\x82\x0c\x84\x99\x72\x3a\x5f\xcc\x61\x09\x70\xcf\x72\x61\x7a\x50\x50\x98\x9a\xed\x5d\x69\x60\x1c\x66\x67\x99\xb4\x5e\x7b\x64\x3e\x58\x30\x53\xc9\x7a\x9f\x99\x0c\x9b\x42\x8f\x5f\x7a\xae\x5b\x9b\x68\xa2\x62\x49\x79\x84\x9d\xfa\x54\x51\x93\x2f\x8a\xc4\x5f\x90\x8d\xf3\x5a\x2f\x80\xde\x6d\x29\x7a\x4f\x84\xbc\x9d\x2b\x90\x10\x6d\x38\x91\x6a\x6f\xc1\x99\x05\x6b\xbb\x5e\xb6\x91\xb8\x50\x76\x6f\x0f\x4e\x19\x54\x0f\x96\x75\x6c\x72\x51\xb4\x56\x31\x9f\x20\x66\xa6\x5f\x0a\x75\xab\x51\xf8\x67\x4f\x8d\xf5\x6c\x70\x8a\x6b\x75\x7f\x5c\xac\x68\x41\x8c\xd3\x9b\xdb\x84\x75\x68\x93\x84\x0c\x72\xdb\x75\x77\x85\x68\x78\x3a\x84\x7a\x5f\x10\x83\x1c\x68\x13\x6e\x1a\x9d\xaf\x51\xf9\x79\x80\x4e\x99\x5e\xe3\x90\x8a\x80\xaf\x59\xa8\x77\xdb\x8d\x74\x8a\x1f\x67\x3d\x53\x3f\x8a\x0a\x56\x18\x67\x56\x53\xd9\x4f\x10\x74\x09\x5a\x41\x4f\xf8\x79\xb0\x98\x38\x8e\x2a\x9d\x60\x8f\x44\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xa5\x75\xbe\x90\x6d\x86\x7b\x60\xbc\x51\xb6\x59\x37\x7d\x2f\x91\x6c\x69\xae\x7c\xe0\x79\x2a\x5d\x14\x64\xc1\x58\xec\x58\x9c\x8d\x66\x66\xd9\x61\xf2\x91\x2d\x6e\x58\x94\x35\x96\x5b\x72\x72\x5f\x6a\x5e\x9a\x8f\x1b\x5b\x95\x5c\x39\x90\x13\x83\x4f\x7c\xce\x62\x0a\x90\xed\x69\x1b\x6e\x15\x65\xdb\x66\xfe\x4e\x9f\x55\xaa\x7a\x83\x83\xe9\x8b\x83\x84\x6d\x83\xf0\x7f\x50\x91\x8d\x91\x90\x75\x8e\x95\xa5\x81\xe7\x75\xe2\x61\xa9\x8a\x50\x95\xb2\x53\xa8\x59\xf6\x98\x13\x78\x91\x7c\x17\x6b\x3a\x57\xe0\x62\x0e", /* 5180 */ "\x83\xd6\x8a\xd2\x75\xd4\x92\x7e\x59\xdc\x52\x89\x90\x87\x6f\xfe\x74\x73\x5c\x09\x9d\x6c\x84\xfc\x7c\xdf\x7b\xad\x8a\x6e\x59\x4e\x56\xca\x81\x9a\x79\x47\x66\x36\x53\xe1\x78\x87\x58\xcc\x93\x97\x6e\x13\x52\x56\x82\x8b\x9e\x9f\x95\x83\x65\x8c\x9e\x93\x73\x45\x6e\x26\x9d\x07\x59\x83\x7d\xac\x96\xc1\x61\xbe\x67\x62\x9e\xce\x90\xa8\x91\x87\x9f\x0e\x7c\x38\x51\xf1\x85\x99\x52\x4c\x54\x0e\x79\x01\x65\x5e\x66\x68\x5c\xe1\x75\x66\x76\xc8\x86\x79\x53\x1d\x55\x06\x79\x26\x89\x12\x77\xef\x7c\xc0\x57\x0b\x51\x5c\x7e\x8a\x53\x5c\x8a\x60\x65\xa7\x87\x66\x57\x66\x6a\xe8\x87\xfb\x5e\x16\x7a\xea\x8d\x73\x77\x1e\x73\x7a\x66\xe0\x94\x10\x81\x6b\x7b\x08\x91\xfc\x57\x37\x6f\xe4\x85\x6a\x7e\x55\x99\x57\x87\xba\x69\x4a\x81\x8f\x5e\xff\x89\x1c\x72\xd0\x98\x46\x9e\xdb\x8d\x99\x5d\xd6\x62\xb9\x64\xab\x4f\x76\x61\x3f\x68\xaf\x5f\x14\x80\x0c\x92\xf8\x7b\xc1\x52\xfe\x66\x4f\x91\x77\x51\xf6\x97\xa0\x83\x9e\x64\x7a\x9c\x3a\x68\x05\x7c\x4f\x68\x5f\x9b\x6f\x9f\x4b\x7f\xfb\x93\x48\x4f\xf6\x9e\x92\x91\xb1\x96\xdb\x5b\xe6\x6c\xcc\x7c\xfe\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x53\x68\x22\x66\xb9\x5b\xd4\x98\xf4\x8a\xe6\x81\x54\x78\x27\x74\xbd\x6e\xd3\x92\x88\x5a\x20\x5b\x8b\x86\xf8\x76\x0d\x86\x5c\x66\x41\x91\xc9\x55\x89\x7a\x4e\x59\xe5\x60\x42\x93\x2b\x5b\x5a\x84\x9c\x5c\x91\x96\xcd\x62\xd9\x67\x5c\x67\x87\x5e\x7d\x86\x50\x9e\xb9\x5c\xb1\x80\xce\x7a\x00\x8a\xbc\x57\x00\x80\x96\x7d\x72\x92\x11\x80\x98\x90\x7c\x77\x61\x87\x37\x90\x75\x81\x7a\x7c\x3e\x6e\xa2\x96\x5e\x7e\x90\x72\xd7\x58\xfd\x60\xb3\x97\x86\x7e\x88\x58\x7e\x6e\x20\x84\xdc\x69\x61\x77\xad\x51\x97\x65\x2a", /* 5280 */ "\x67\x77\x5d\xcd\x61\x01\x93\x2e\x59\x54\x63\x67\x79\x8d\x7a\xff\x80\xd6\x58\xb3\x61\x68\x6a\xc3\x74\x83\x9b\x92\x66\x0a\x64\x2d\x51\x18\x67\x63\x80\x9b\x9c\x10\x4f\xc9\x69\x53\x7a\x1c\x52\xff\x60\x55\x76\x8e\x81\x7f\x56\x42\x5f\x6d\x71\x94\x70\xbb\x74\x36\x80\x00\x88\x1f\x55\xda\x74\x35\x76\x90\x96\xeb\x66\xdd\x75\x1c\x63\x3d\x6e\xc9\x7c\x64\x7c\xa5\x6d\x35\x93\x5c\x70\x27\x5e\x25\x70\x1d\x54\xbd\x61\x1a\x69\x73\x6c\x6a\x55\x9a\x6d\x19\x96\xcc\x5b\xe1\x59\xfb\x69\x7c\x91\x4c\x77\x09\x85\x00\x7a\x46\x78\x72\x92\xe4\x8c\xed\x7c\xfa\x9d\x1b\x81\x4e\x9a\xc4\x68\xa0\x6d\xcb\x59\x18\x84\x0a\x56\x29\x9b\x41\x68\x97\x70\xb3\x97\x71\x94\x19\x67\xa2\x68\x02\x78\x95\x68\xa7\x50\xd6\x80\xb1\x5e\xf8\x82\xd4\x79\x7a\x67\xca\x7e\x61\x69\xcd\x51\xc4\x72\x3d\x68\x29\x99\xb3\x5f\x3c\x8f\x61\x68\x2b\x61\x55\x65\x91\x8f\xb1\x7e\x1b\x97\x98\x99\x52\x88\x77\x5b\x2c\x66\x31\x4f\xe0\x69\x39\x6a\xfb\x5b\xb5\x7a\xc8\x50\x26\x59\x44\x90\x59\x7b\x25\x7b\x4f\x8e\x74\x85\x43\x58\x58\x8b\x0e\x50\x39\x86\x54\x97\xf6\x75\x69\x72\xf8\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf7\x9d\x89\x50\x16\x51\xcc\x62\xcc\x91\xc6\x87\x55\x64\x9a\x88\xf4\x91\xe6\x68\x54\x69\x5a\x6c\x40\x7b\x6c\x67\x41\x77\xd7\x88\x23\x53\x84\x8e\xc0\x72\x80\x8c\x6b\x78\x8d\x71\x65\x82\x07\x68\xb1\x8d\x04\x90\x77\x70\x1e\x8f\xe6\x81\x0a\x81\xbf\x89\xdc\x68\xb3\x6a\xdf\x92\xea\x95\xc7\x79\x57\x7a\x20\x53\xa9\x8e\x5f\x78\x6f\x79\xb9\x5f\x27\x5e\xd6\x68\x53\x93\xac\x91\x9c\x69\x1a\x58\x06\x64\xb0\x7e\x6b\x7d\x8f\x68\xf2\x6e\xa5\x82\xdb\x91\x92\x52\x43\x8e\xb0\x90\x81\x72\x1b\x7d\xcb\x76\x56\x59\xac", /* 5380 */ "\x6f\xe0\x8b\x28\x80\xa2\x55\x44\x60\x70\x5f\x4a\x68\xc8\x63\x3a\x94\x38\x9b\x4f\x81\xe5\x6a\x17\x70\xdd\x69\xa7\x61\x4c\x92\x0e\x93\x10\x9b\xad\x52\xd7\x92\x5e\x92\xf9\x59\x93\x76\x96\x66\xfb\x57\x69\x73\xca\x76\x78\x6a\x1f\x7e\x9c\x98\x11\x8c\xd1\x58\x40\x63\x49\x87\x1c\x62\xd0\x60\xb4\x6b\x89\x86\xee\x57\x64\x58\x1d\x85\x49\x72\x35\x76\x52\x98\x3b\x82\x37\x53\x51\x5c\x24\x59\xbe\x58\x15\x90\x1d\x69\xb4\x83\x4a\x9e\xa9\x97\x6b\x80\x86\x53\xad\x60\x68\x4f\xae\x76\xc3\x6a\x05\x68\x9b\x93\x7e\x99\xd5\x91\xc7\x5c\x16\x58\x5e\x61\xa7\x96\x99\x4f\xdf\x82\x78\x9c\x52\x5f\x45\x61\x08\x7c\x8d\x80\x6f\x5d\xf7\x8d\x6b\x57\xb0\x98\xe2\x57\x03\x79\xbf\x59\x96\x79\x41\x54\x0a\x83\xdf\x9c\x39\x52\xd2\x6b\xd8\x86\xcb\x4e\xc0\x9a\x52\x53\x66\x80\x06\x73\x37\x64\x92\x8f\xed\x5a\xc9\x54\x20\x53\x7f\x4f\xaf\x80\x7e\x54\x3b\x75\x15\x7b\x18\x87\xec\x54\xb3\x70\x4c\x89\x97\x6c\xab\x85\xfa\x71\x30\x69\x6e\x93\x28\x74\x5a\x59\xd1\x6e\x5b\x61\x7e\x53\xe2\x83\x17\x76\xe7\x85\x23\x85\xaf\x69\x25\x5c\x60\x72\x59\x75\xd5\x8b\x90\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x07\x82\xad\x5c\x5b\x7b\xed\x97\x84\x6f\x70\x76\x4c\x88\xb7\x92\xd2\x4f\x36\x5e\xfe\x90\x61\x88\xe1\x84\x71\x71\x1a\x6d\x1b\x80\xb4\x74\xe2\x74\x33\x5a\x7f\x90\x5c\x98\x0c\x53\x19\x90\x6e\x6b\xb4\x85\xaa\x78\x97\x7a\xfa\x6a\xae\x89\x10\x95\x8f\x62\x0c\x4f\x3d\x4f\x7c\x79\xbe\x9d\xd7\x4e\xd4\x57\xa2\x51\xa5\x69\x00\x60\x89\x70\x7c\x7a\xe3\x89\x56\x93\xa7\x9c\x2d\x51\x12\x52\xfa\x7c\xca\x60\xf9\x70\x78\x81\xc6\x55\x9d\x69\x91\x96\xc9\x55\x3e\x80\x5a\x83\x04\x83\x32\x54\xfa\x56\x99\x8f\xbf\x56\x34", /* 5480 */ "\x67\x60\x52\x65\x84\x0e\x5e\x5f\x7b\x65\x90\x35\x83\x87\x6b\x4e\x58\xbe\x63\x09\x72\x7d\x97\xad\x69\xd0\x54\x6a\x98\x4e\x63\x2b\x71\x4e\x85\x57\x7c\xde\x63\x72\x68\xf9\x75\x11\x86\x02\x6e\xba\x5a\x3c\x7a\x84\x85\x1a\x95\xa4\x59\xd0\x60\xda\x51\xea\x5a\x29\x71\x69\x6f\x15\x69\x6b\x64\x14\x76\x26\x4e\x4e\x7d\xbb\x69\x34\x85\x21\x8f\xfa\x93\x54\x9c\x3b\x5f\x17\x5e\xd3\x82\x58\x89\x5f\x82\xe7\x52\xc3\x5c\x51\x83\xab\x78\x26\x79\xe1\x7f\xf0\x62\x6e\x60\xf0\x5c\xa8\x6f\x97\x71\xa8\x99\x09\x51\x32\x5e\x37\x5f\x04\x63\x7b\x67\x53\x68\xd7\x66\x52\x9c\xf6\x88\xb0\x52\xab\x4f\xc4\x4e\x3c\x67\xb3\x7c\x1e\x7f\x4d\x8a\x23\x64\x51\x71\xe6\x65\xa4\x6f\x09\x85\x3d\x50\x72\x7d\xba\x55\x5e\x7b\x04\x72\xfd\x6c\xd3\x84\x22\x62\x1f\x50\xad\x82\x35\x87\x18\x59\x19\x60\x28\x67\x7c\x6f\x23\x75\xb9\x69\x5c\x52\x0e\x80\x18\x8b\x01\x71\xed\x57\x13\x66\x0f\x83\xeb\x71\x64\x7d\x9b\x56\x17\x7d\x7d\x8f\x4d\x93\x18\x85\x69\x5d\x17\x67\x8c\x67\xde\x87\xc7\x79\xae\x58\x35\x84\x04\x90\x41\x7f\xd4\x6f\x51\x8a\x63\x9d\x08\x67\x0f\x93\x9a\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xac\x60\x2f\x64\xe2\x60\x8d\x96\xb7\x63\x57\x84\x61\x91\x4b\x75\xd8\x60\xe7\x99\x13\x9c\x57\x59\x84\x6d\xeb\x5e\x96\x70\x06\x9b\xf0\x58\xbb\x79\xb1\x60\xb6\x63\x3f\x5b\xf5\x98\x12\x55\x8b\x82\xd3\x51\x47\x61\x90\x79\x53\x79\xbd\x6c\x5d\x9e\xba\x9c\x48\x8d\xa8\x5e\xe0\x7d\x43\x5e\xfc\x85\x4e\x8c\xe4\x5a\xe1\x54\xe8\x50\x23\x52\xbe\x7d\xec\x85\x11\x66\x66\x6c\x3e\x72\x4c\x8a\xdc\x9c\x0d\x77\xa5\x8b\x02\x8d\x05\x6f\x11\x98\x34\x97\xfb\x50\xfb\x7f\x75\x5a\x03\x85\x13\x4f\xb6\x63\x4c\x9d\x61\x80\x8b", /* 5580 */ "\x52\x94\x65\xa1\x56\x7a\x59\x57\x8d\x0b\x6a\x35\x6a\xd3\x70\xf9\x86\x5e\x6f\xb1\x51\xe7\x7f\xeb\x59\xea\x5e\x87\x6b\x6a\x75\x4f\x71\x7d\x91\x4e\x7d\x2c\x8c\x79\x60\x62\x62\x1a\x7f\xa8\x5f\x1b\x6c\x8c\x86\xfe\x75\x62\x7b\x86\x9a\xb8\x66\x27\x7a\xba\x84\x4e\x6f\x81\x8b\x2c\x86\xa4\x6f\xeb\x7b\x8b\x7f\x77\x8f\x2f\x8e\x44\x7e\x23\x4e\x4d\x79\xa6\x8a\xfa\x90\x3c\x50\xd1\x9e\xcd\x5e\xdf\x75\x8f\x63\x1f\x53\xdb\x99\x10\x82\x6e\x62\xf7\x68\xfa\x72\x5d\x80\x3d\x58\xd5\x5c\x4d\x86\xd9\x54\x0b\x88\x05\x92\xf2\x92\x37\x5c\x62\x98\x5b\x86\xe4\x96\x6a\x72\x62\x69\x55\x6c\xd7\x69\x94\x9c\x2f\x77\xe7\x68\xc9\x8d\xe8\x6d\x6c\x67\xc1\x9b\xaa\x61\x9a\x63\xa9\x70\x15\x93\x06\x93\x4d\x6a\x61\x62\x58\x52\x83\x75\x25\x56\x87\x6c\x83\x68\x34\x64\x9e\x4e\x9b\x72\x52\x59\xe6\x8f\xc2\x5f\xbd\x6d\xd8\x85\xf7\x8a\x51\x98\x17\x99\xc1\x63\xa0\x7c\x81\x5b\x30\x81\x39\x54\x03\x7e\x82\x81\x06\x53\x2a\x6a\x8e\x7f\x6b\x54\xe9\x56\x78\x8a\xb9\x67\x15\x5b\xd3\x64\x78\x64\xfe\x6b\x1d\x8c\xc2\x51\xcb\x7e\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x0c\x4e\x10\x4e\x15\x4e\x28\x4e\x2a\x4e\x31\x4e\x36\x4e\x3f\x4e\x42\x4e\x56\x4e\x58\x4e\x62\x4e\x82\x4e\x85\x4e\x8a\x4e\x8e\x5f\x0d\x4e\x9e\x4e\xa0\x4e\xa2\x4e\xb0\x4e\xb3\x4e\xb6\x4e\xce\x4e\xcd\x4e\xc4\x4e\xc6\x4e\xc2\x4e\xe1\x4e\xd7\x4e\xde\x4e\xed\x4e\xdf\x4e\xfc\x4f\x09\x4f\x1c\x4f\x00\x4f\x03\x4f\x5a\x4f\x30\x4f\x5d\x4f\x39\x4f\x57\x4f\x47\x4f\x5e\x4f\x56\x4f\x5b\x4f\x92\x4f\x8a\x4f\x88\x4f\x8f\x4f\x9a\x4f\xad\x4f\x98\x4f\x7b\x4f\xab\x4f\x69\x4f\x70\x4f\x94\x4f\x6f\x4f\x86\x4f\x96\x4f\xd4", /* 5680 */ "\x4f\xce\x4f\xd8\x4f\xdb\x4f\xd1\x4f\xda\x4f\xd0\x4f\xcd\x4f\xe4\x4f\xe5\x50\x1a\x50\x40\x50\x28\x50\x14\x50\x2a\x50\x25\x50\x05\x50\x21\x50\x22\x50\x29\x50\x2c\x4f\xff\x4f\xfe\x4f\xef\x50\x11\x50\x1e\x50\x06\x50\x43\x50\x47\x50\x55\x50\x50\x50\x48\x50\x5a\x50\x56\x50\x0f\x50\x46\x50\x70\x50\x42\x50\x6c\x50\x78\x50\x80\x50\x94\x50\x9a\x50\x85\x50\xb4\x67\x03\x50\xb2\x50\xc9\x50\xca\x50\xb3\x50\xc2\x50\xf4\x50\xde\x50\xe5\x50\xd8\x50\xed\x50\xe3\x50\xee\x50\xf9\x50\xf5\x51\x09\x51\x01\x51\x02\x51\x1a\x51\x15\x51\x14\x51\x16\x51\x21\x51\x3a\x51\x37\x51\x3c\x51\x3b\x51\x3f\x51\x40\x51\x4a\x51\x4c\x51\x52\x51\x54\x51\x62\x51\x64\x51\x69\x51\x6a\x51\x6e\x51\x80\x51\x82\x56\xd8\x51\x8c\x51\x89\x51\x8f\x51\x91\x51\x93\x51\x95\x51\x96\x51\x9d\x51\xa4\x51\xa6\x51\xa2\x51\xa9\x51\xaa\x51\xab\x51\xb3\x51\xb1\x51\xb2\x51\xb0\x51\xb5\x51\xbe\x51\xbd\x51\xc5\x51\xc9\x51\xdb\x51\xe0\x51\xe9\x51\xec\x51\xed\x51\xf0\x51\xf5\x51\xfe\x52\x04\x52\x0b\x52\x14\x52\x15\x52\x27\x52\x2a\x52\x2e\x52\x33\x52\x39\x52\x44\x52\x4b\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x4f\x52\x5e\x52\x54\x52\x71\x52\x6a\x52\x73\x52\x74\x52\x69\x52\x7f\x52\x7d\x52\x8d\x52\x88\x52\x92\x52\x91\x52\x9c\x52\xa6\x52\xac\x52\xad\x52\xbc\x52\xb5\x52\xc1\x52\xc0\x52\xcd\x52\xdb\x52\xde\x52\xe3\x52\xe6\x52\xe0\x52\xf3\x52\xf5\x52\xf8\x52\xf9\x53\x00\x53\x06\x53\x07\x53\x08\x75\x38\x53\x0d\x53\x10\x53\x0f\x53\x15\x53\x1a\x53\x24\x53\x23\x53\x2f\x53\x31\x53\x33\x53\x38\x53\x40\x53\x45\x53\x46\x53\x49\x4e\x17\x53\x4d\x51\xd6\x82\x09\x53\x5e\x53\x69\x53\x6e\x53\x72\x53\x77\x53\x7b\x53\x82", /* 5780 */ "\x53\x93\x53\x96\x53\xa0\x53\xa6\x53\xa5\x53\xae\x53\xb0\x53\xb2\x53\xb6\x53\xc3\x7c\x12\x53\xdd\x53\xdf\x66\xfc\xfa\x0e\x71\xee\x53\xee\x53\xe8\x53\xed\x53\xfa\x54\x01\x54\x3d\x54\x40\x54\x2c\x54\x2d\x54\x3c\x54\x2e\x54\x36\x54\x29\x54\x1d\x54\x4e\x54\x8f\x54\x75\x54\x8e\x54\x5f\x54\x71\x54\x77\x54\x70\x54\x92\x54\x7b\x54\x80\x54\x9c\x54\x76\x54\x84\x54\x90\x54\x86\x54\x8a\x54\xc7\x54\xbc\x54\xaf\x54\xa2\x54\xb8\x54\xa5\x54\xac\x54\xc4\x54\xd8\x54\xc8\x54\xa8\x54\xab\x54\xc2\x54\xa4\x54\xa9\x54\xbe\x54\xe5\x54\xff\x54\xe6\x55\x0f\x55\x14\x54\xfd\x54\xee\x54\xed\x54\xe2\x55\x39\x55\x40\x55\x63\x55\x4c\x55\x2e\x55\x5c\x55\x45\x55\x56\x55\x57\x55\x38\x55\x33\x55\x5d\x55\x99\x55\x80\x55\x8a\x55\x9f\x55\x7b\x55\x7e\x55\x98\x55\x9e\x55\xae\x55\x7c\x55\x86\x55\x83\x55\xa9\x55\x87\x55\xa8\x55\xc5\x55\xdf\x55\xc4\x55\xdc\x55\xe4\x55\xd4\x55\xf9\x56\x14\x55\xf7\x56\x16\x55\xfe\x55\xfd\x56\x1b\x56\x4e\x56\x50\x56\x36\x56\x32\x56\x38\x56\x6b\x56\x64\x56\x86\x56\x2f\x56\x6c\x56\x6a\x71\xdf\x56\x94\x56\x8f\x56\x80\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8a\x56\xa0\x56\xa5\x56\xae\x56\xb6\x56\xb4\x56\xc8\x56\xc2\x56\xbc\x56\xc1\x56\xc3\x56\xc0\x56\xce\x56\xd3\x56\xd1\x56\xd7\x56\xee\x56\xf9\x56\xff\x57\x04\x57\x09\x57\x08\x57\x0d\x55\xc7\x57\x18\x57\x16\x57\x1c\x57\x26\x57\x38\x57\x4e\x57\x3b\x57\x59\x57\x40\x57\x4f\x57\x65\x57\x88\x57\x61\x57\x7f\x57\x89\x57\x93\x57\xa0\x57\xa4\x57\xb3\x57\xac\x57\xaa\x57\xc3\x57\xc6\x57\xc8\x57\xc0\x57\xd4\x57\xc7\x57\xd2\x57\xd3\x57\xd6\xfa\x0f\x58\x0a\x57\xe3\x58\x0b\x58\x19\x58\x21\x58\x4b\x58\x62\x6b\xc0", /* 5880 */ "\x58\x3d\x58\x52\xfa\x10\x58\x70\x58\x79\x58\x85\x58\x72\x58\x9f\x58\xab\x58\xb8\x58\x9e\x58\xae\x58\xb2\x58\xb9\x58\xba\x58\xc5\x58\xd3\x58\xd1\x58\xd7\x58\xd9\x58\xd8\x58\xde\x58\xdc\x58\xdf\x58\xe4\x58\xe5\x58\xef\x58\xf7\x58\xf9\x58\xfb\x58\xfc\x59\x02\x59\x0a\x59\x0b\x59\x10\x59\x1b\x68\xa6\x59\x25\x59\x2c\x59\x2d\x59\x32\x59\x38\x59\x3e\x59\x55\x59\x50\x59\x53\x59\x5a\x59\x58\x59\x5b\x59\x5d\x59\x63\x59\x62\x59\x60\x59\x67\x59\x6c\x59\x69\x59\x78\x59\x81\x59\x8d\x59\x9b\x59\x9d\x59\xa3\x59\xa4\x59\xb2\x59\xba\x59\xc6\x59\xe8\x59\xd9\x59\xda\x5a\x25\x5a\x1f\x5a\x11\x5a\x1c\x5a\x1a\x5a\x09\x5a\x40\x5a\x6c\x5a\x49\x5a\x35\x5a\x36\x5a\x62\x5a\x6a\x5a\x9a\x5a\xbc\x5a\xbe\x5a\xd0\x5a\xcb\x5a\xc2\x5a\xbd\x5a\xe3\x5a\xd7\x5a\xe6\x5a\xe9\x5a\xd6\x5a\xfa\x5a\xfb\x5b\x0c\x5b\x0b\x5b\x16\x5b\x32\x5b\x2a\x5b\x36\x5b\x3e\x5b\x43\x5b\x45\x5b\x40\x5b\x51\x5b\x55\x5b\x56\x65\x88\x5b\x5b\x5b\x65\x5b\x69\x5b\x70\x5b\x73\x5b\x75\x5b\x78\x5b\x7a\x5b\x80\x5b\x83\x5b\xa6\x5b\xb8\x5b\xc3\x5b\xc7\x5b\xc0\x5b\xc9\x75\x2f\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd0\x5b\xd8\x5b\xde\x5b\xec\x5b\xe4\x5b\xe2\x5b\xe5\x5b\xeb\x5b\xf0\x5b\xf3\x5b\xf6\x5c\x05\x5c\x07\x5c\x08\x5c\x0d\x5c\x13\x5c\x1e\x5c\x20\x5c\x22\x5c\x28\x5c\x38\x5c\x41\x5c\x46\x5c\x4e\x5c\x53\x5c\x50\x5b\x71\x5c\x6c\x5c\x6e\x5c\x76\x5c\x79\x5c\x8c\x5c\x94\x5c\xbe\x5c\xab\x5c\xbb\x5c\xb6\x5c\xb7\x5c\xa6\x5c\xba\x5c\xc5\x5c\xbc\x5c\xc7\x5c\xd9\x5c\xe9\x5c\xfd\x5c\xfa\x5c\xf5\x5c\xed\x5c\xea\x5d\x0b\x5d\x15\x5d\x1f\x5d\x1b\x5d\x11\x5d\x27\x5d\x22\x5d\x1a\x5d\x19\x5d\x18\x5d\x4c\x5d\x52\x5d\x53", /* 5980 */ "\xfa\x11\x5d\x5c\x5d\x4e\x5d\x4b\x5d\x42\x5d\x6c\x5d\x73\x5d\x6d\x5d\x76\x5d\x87\x5d\x84\x5d\x82\x5d\x8c\x5d\xa2\x5d\x9d\x5d\x90\x5d\xac\x5d\xae\x5d\xb7\x5d\xb8\x5d\xbc\x5d\xb9\x5d\xc9\x5d\xd0\x5d\xd3\x5d\xd2\x5d\xdb\x5d\xeb\x5d\xf5\x5e\x0b\x5e\x1a\x5e\x19\x5e\x11\x5e\x1b\x5e\x36\x5e\x44\x5e\x43\x5e\x40\x5e\x47\x5e\x4e\x5e\x57\x5e\x54\x5e\x62\x5e\x64\x5e\x75\x5e\x76\x5e\x7a\x5e\x7f\x5e\xa0\x5e\xc1\x5e\xc2\x5e\xc8\x5e\xd0\x5e\xcf\x5e\xdd\x5e\xda\x5e\xdb\x5e\xe2\x5e\xe1\x5e\xe8\x5e\xe9\x5e\xec\x5e\xf0\x5e\xf1\x5e\xf3\x5e\xf4\x5f\x03\x5f\x09\x5f\x0b\x5f\x11\x5f\x16\x5f\x21\x5f\x29\x5f\x2d\x5f\x2f\x5f\x34\x5f\x38\x5f\x41\x5f\x48\x5f\x4c\x5f\x4e\x5f\x51\x5f\x56\x5f\x57\x5f\x59\x5f\x5c\x5f\x5d\x5f\x61\x5f\x67\x5f\x73\x5f\x77\x5f\x83\x5f\x82\x5f\x7f\x5f\x8a\x5f\x88\x5f\x87\x5f\x91\x5f\x99\x5f\x9e\x5f\x98\x5f\xa0\x5f\xa8\x5f\xad\x5f\xb7\x5f\xbc\x5f\xd6\x5f\xfb\x5f\xe4\x5f\xf8\x5f\xf1\x5f\xf0\x5f\xdd\x5f\xde\x5f\xff\x60\x21\x60\x19\x60\x10\x60\x29\x60\x0e\x60\x31\x60\x1b\x60\x15\x60\x2b\x60\x26\x60\x0f\x60\x3a\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x5a\x60\x41\x60\x60\x60\x5d\x60\x6a\x60\x77\x60\x5f\x60\x4a\x60\x46\x60\x4d\x60\x63\x60\x43\x60\x64\x60\x6c\x60\x6b\x60\x59\x60\x85\x60\x81\x60\x83\x60\x9a\x60\x84\x60\x9b\x60\x8a\x60\x96\x60\x97\x60\x92\x60\xa7\x60\x8b\x60\xe1\x60\xb8\x60\xde\x60\xe0\x60\xd3\x60\xbd\x60\xc6\x60\xb5\x60\xd5\x60\xd8\x61\x20\x60\xf2\x61\x15\x61\x06\x60\xf6\x60\xf7\x61\x00\x60\xf4\x60\xfa\x61\x03\x61\x21\x60\xfb\x60\xf1\x61\x0d\x61\x0e\x61\x11\x61\x47\x61\x4d\x61\x37\x61\x28\x61\x27\x61\x3e\x61\x4a\x61\x30\x61\x3c", /* 5a80 */ "\x61\x2c\x61\x34\x61\x65\x61\x5d\x61\x3d\x61\x42\x61\x44\x61\x73\x61\x87\x61\x77\x61\x58\x61\x59\x61\x5a\x61\x6b\x61\x74\x61\x6f\x61\x71\x61\x5f\x61\x53\x61\x75\x61\x98\x61\x99\x61\x96\x61\xac\x61\x94\x61\x8a\x61\x91\x61\xab\x61\xae\x61\xcc\x61\xca\x61\xc9\x61\xc8\x61\xc3\x61\xc6\x61\xba\x61\xcb\x7f\x79\x61\xcd\x61\xe6\x61\xe3\x61\xf4\x61\xf7\x61\xf6\x61\xfd\x61\xfa\x61\xff\x61\xfc\x61\xfe\x62\x00\x62\x08\x62\x09\x62\x0d\x62\x13\x62\x14\x62\x1b\x62\x1e\x62\x21\x62\x2a\x62\x2e\x62\x30\x62\x32\x62\x33\x62\x41\x62\x4e\x62\x5e\x62\x63\x62\x5b\x62\x60\x62\x68\x62\x7c\x62\x82\x62\x89\x62\x92\x62\x7e\x62\x93\x62\x96\x62\x83\x62\x94\x62\xd7\x62\xd1\x62\xbb\x62\xcf\x62\xac\x62\xc6\x62\xc8\x62\xdc\x62\xd4\x62\xca\x62\xc2\x62\xa6\x62\xc7\x62\x9b\x62\xc9\x63\x0c\x62\xee\x62\xf1\x63\x27\x63\x02\x63\x08\x62\xef\x62\xf5\x62\xff\x63\x50\x63\x4d\x63\x3e\x63\x4f\x63\x96\x63\x8e\x63\x80\x63\xab\x63\x76\x63\xa3\x63\x8f\x63\x89\x63\x9f\x63\x6b\x63\x69\x63\xb5\x63\xbe\x63\xe9\x63\xc0\x63\xc6\x63\xf5\x63\xe3\x63\xc9\x63\xd2\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf6\x63\xc4\x64\x34\x64\x06\x64\x13\x64\x26\x64\x36\x64\x1c\x64\x17\x64\x28\x64\x0f\x64\x16\x64\x4e\x64\x67\x64\x6f\x64\x60\x64\x76\x64\xb9\x64\x9d\x64\xce\x64\x95\x64\xbb\x64\x93\x64\xa5\x64\xa9\x64\x88\x64\xbc\x64\xda\x64\xd2\x64\xc5\x64\xc7\x64\xd4\x64\xd8\x64\xc2\x64\xf1\x64\xe7\x64\xe0\x64\xe1\x64\xe3\x64\xef\x64\xf4\x64\xf6\x64\xf2\x64\xfa\x65\x00\x64\xfd\x65\x18\x65\x1c\x65\x1d\x65\x22\x65\x24\x65\x23\x65\x2b\x65\x2c\x65\x34\x65\x35\x65\x37\x65\x36\x65\x38\x75\x4b\x65\x48\x65\x4e\x65\x56", /* 5b80 */ "\x65\x4d\x65\x58\x65\x55\x65\x5d\x65\x72\x65\x78\x65\x82\x65\x83\x8b\x8a\x65\x9b\x65\x9f\x65\xab\x65\xb7\x65\xc3\x65\xc6\x65\xc1\x65\xc4\x65\xcc\x65\xd2\x65\xd9\x65\xe1\x65\xe0\x65\xf1\x66\x00\x66\x15\x66\x02\x67\x72\x66\x03\x65\xfb\x66\x09\x66\x3f\x66\x35\x66\x2e\x66\x1e\x66\x34\x66\x1c\x66\x24\x66\x44\x66\x49\x66\x65\x66\x57\x66\x5e\x66\x64\x66\x59\x66\x62\x66\x5d\xfa\x12\x66\x73\x66\x70\x66\x83\x66\x88\x66\x84\x66\x99\x66\x98\x66\xa0\x66\x9d\x66\xb2\x66\xc4\x66\xc1\x66\xbf\x66\xc9\x66\xbe\x66\xbc\x66\xb8\x66\xd6\x66\xda\x66\xe6\x66\xe9\x66\xf0\x66\xf5\x66\xf7\x66\xfa\x67\x0e\xf9\x29\x67\x16\x67\x1e\x7e\x22\x67\x26\x67\x27\x97\x38\x67\x2e\x67\x3f\x67\x36\x67\x37\x67\x38\x67\x46\x67\x5e\x67\x59\x67\x66\x67\x64\x67\x89\x67\x85\x67\x70\x67\xa9\x67\x6a\x67\x8b\x67\x73\x67\xa6\x67\xa1\x67\xbb\x67\xb7\x67\xef\x67\xb4\x67\xec\x67\xe9\x67\xb8\x67\xe7\x67\xe4\x68\x52\x67\xdd\x67\xe2\x67\xee\x67\xc0\x67\xce\x67\xb9\x68\x01\x67\xc6\x68\x1e\x68\x46\x68\x4d\x68\x40\x68\x44\x68\x32\x68\x4e\x68\x63\x68\x59\x68\x8e\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x77\x68\x7f\x68\x9f\x68\x7e\x68\x8f\x68\xad\x68\x94\x68\x83\x68\xbc\x68\xb9\x68\x74\x68\xb5\x68\xba\x69\x0f\x69\x01\x68\xca\x69\x08\x68\xd8\x69\x26\x68\xe1\x69\x0c\x68\xcd\x68\xd4\x68\xe7\x68\xd5\x69\x12\x68\xef\x69\x04\x68\xe3\x68\xe0\x68\xcf\x68\xc6\x69\x22\x69\x2a\x69\x21\x69\x23\x69\x28\xfa\x13\x69\x79\x69\x77\x69\x36\x69\x78\x69\x54\x69\x6a\x69\x74\x69\x68\x69\x3d\x69\x59\x69\x30\x69\x5e\x69\x5d\x69\x7e\x69\x81\x69\xb2\x69\xbf\xfa\x14\x69\x98\x69\xc1\x69\xd3\x69\xbe\x69\xce\x5b\xe8\x69\xca", /* 5c80 */ "\x69\xb1\x69\xdd\x69\xbb\x69\xc3\x69\xa0\x69\x9c\x69\x95\x69\xde\x6a\x2e\x69\xe8\x6a\x02\x6a\x1b\x69\xff\x69\xf9\x69\xf2\x69\xe7\x69\xe2\x6a\x1e\x69\xed\x6a\x14\x69\xeb\x6a\x0a\x6a\x22\x6a\x12\x6a\x23\x6a\x13\x6a\x30\x6a\x6b\x6a\x44\x6a\x0c\x6a\xa0\x6a\x36\x6a\x78\x6a\x47\x6a\x62\x6a\x59\x6a\x66\x6a\x48\x6a\x46\x6a\x38\x6a\x72\x6a\x73\x6a\x90\x6a\x8d\x6a\x84\x6a\xa2\x6a\xa3\x6a\x7e\x6a\x97\x6a\xac\x6a\xaa\x6a\xbb\x6a\xc2\x6a\xb8\x6a\xb3\x6a\xc1\x6a\xde\x6a\xe2\x6a\xd1\x6a\xda\x6a\xe4\x86\x16\x86\x17\x6a\xea\x6b\x05\x6b\x0a\x6a\xfa\x6b\x12\x6b\x16\x6b\x1f\x6b\x38\x6b\x37\x6b\x39\x76\xdc\x98\xee\x6b\x47\x6b\x43\x6b\x49\x6b\x50\x6b\x59\x6b\x54\x6b\x5b\x6b\x5f\x6b\x61\x6b\x78\x6b\x79\x6b\x7f\x6b\x80\x6b\x84\x6b\x83\x6b\x8d\x6b\x98\x6b\x95\x6b\x9e\x6b\xa4\x6b\xaa\x6b\xab\x6b\xaf\x6b\xb1\x6b\xb2\x6b\xb3\x6b\xb7\x6b\xbc\x6b\xc6\x6b\xcb\x6b\xd3\x6b\xd6\x6b\xdf\x6b\xec\x6b\xeb\x6b\xf3\x6b\xef\x6c\x08\x6c\x13\x6c\x14\x6c\x1b\x6c\x24\x6c\x23\x6c\x3f\x6c\x5e\x6c\x55\x6c\x5c\x6c\x62\x6c\x82\x6c\x8d\x6c\x86\x6c\x6f\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9a\x6c\x81\x6c\x9b\x6c\x7e\x6c\x68\x6c\x73\x6c\x92\x6c\x90\x6c\xc4\x6c\xf1\x6c\xbd\x6c\xc5\x6c\xae\x6c\xda\x6c\xdd\x6c\xb1\x6c\xbe\x6c\xba\x6c\xdb\x6c\xef\x6c\xd9\x6c\xea\x6d\x1f\x6d\x04\x6d\x36\x6d\x2b\x6d\x3d\x6d\x33\x6d\x12\x6d\x0c\x6d\x63\x6d\x87\x6d\x93\x6d\x6f\x6d\x64\x6d\x5a\x6d\x79\x6d\x59\x6d\x8e\x6d\x95\x6d\x9b\x6d\x85\x6d\x96\x6d\xf9\x6e\x0a\x6e\x2e\x6d\xb5\x6d\xe6\x6d\xc7\x6d\xac\x6d\xb8\x6d\xcf\x6d\xc6\x6d\xec\x6d\xde\x6d\xcc\x6d\xe8\x6d\xf8\x6d\xd2\x6d\xc5\x6d\xfa\x6d\xd9\x6d\xf2", /* 5d80 */ "\x6d\xfc\x6d\xe4\x6d\xd5\x6d\xea\x6d\xee\x6e\x2d\x6e\x6e\x6e\x19\x6e\x72\x6e\x5f\x6e\x39\x6e\x3e\x6e\x23\x6e\x6b\x6e\x5c\x6e\x2b\x6e\x76\x6e\x4d\x6e\x1f\x6e\x27\x6e\x43\x6e\x3c\x6e\x3a\x6e\x4e\x6e\x24\x6e\x1d\x6e\x38\x6e\x82\x6e\xaa\x6e\x98\x6e\xb7\x6e\xbd\x6e\xaf\x6e\xc4\x6e\xb2\x6e\xd4\x6e\xd5\x6e\x8f\x6e\xbf\x6e\xc2\x6e\x9f\x6f\x41\x6f\x45\x6e\xec\x6e\xf8\x6e\xfe\x6f\x3f\x6e\xf2\x6f\x31\x6e\xef\x6f\x32\x6e\xcc\x6e\xff\x6f\x3e\x6f\x13\x6e\xf7\x6f\x86\x6f\x7a\x6f\x78\x6f\x80\x6f\x6f\x6f\x5b\x6f\x6d\x6f\x74\x6f\x82\x6f\x88\x6f\x7c\x6f\x58\x6f\xc6\x6f\x8e\x6f\x91\x6f\x66\x6f\xb3\x6f\xa3\x6f\xb5\x6f\xa1\x6f\xb9\x6f\xdb\x6f\xaa\x6f\xc2\x6f\xdf\x6f\xd5\x6f\xec\x6f\xd8\x6f\xd4\x6f\xf5\x6f\xee\x70\x05\x70\x07\x70\x09\x70\x0b\x6f\xfa\x70\x11\x70\x01\x70\x0f\x70\x1b\x70\x1a\x70\x1f\x6f\xf3\x70\x28\x70\x18\x70\x30\x70\x3e\x70\x32\x70\x51\x70\x63\x70\x85\x70\x99\x70\xaf\x70\xab\x70\xac\x70\xb8\x70\xae\x70\xdf\x70\xcb\x70\xd9\x71\x09\x71\x0f\x71\x04\x70\xf1\x70\xfd\x71\x1c\x71\x19\x71\x5c\x71\x46\x71\x47\x71\x66\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x62\x71\x4c\x71\x56\x71\x6c\x71\x88\x71\x8f\x71\x84\x71\x95\xfa\x15\x71\xac\x71\xc1\x71\xb9\x71\xbe\x71\xd2\x71\xe7\x71\xc9\x71\xd4\x71\xd7\x71\xce\x71\xf5\x71\xe0\x71\xec\x71\xfb\x71\xfc\x71\xf9\x71\xfe\x71\xff\x72\x0d\x72\x10\x72\x28\x72\x2d\x72\x2c\x72\x30\x72\x32\x72\x3b\x72\x3c\x72\x3f\x72\x40\x72\x46\x72\x4b\x72\x58\x72\x74\x72\x7e\x72\x81\x72\x87\x72\x82\x72\x92\x72\x96\x72\xa2\x72\xa7\x72\xb1\x72\xb2\x72\xbe\x72\xc3\x72\xc6\x72\xc4\x72\xb9\x72\xce\x72\xd2\x72\xe2\x72\xe0\x72\xe1\x72\xf9", /* 5e80 */ "\x72\xf7\x73\x17\x73\x0a\x73\x1c\x73\x16\x73\x1d\x73\x24\x73\x34\x73\x29\x73\x2f\xfa\x16\x73\x25\x73\x3e\x73\x4f\x73\x4e\x73\x57\x9e\xd8\x73\x6a\x73\x68\x73\x70\x73\x77\x73\x78\x73\x75\x73\x7b\x73\xc8\x73\xbd\x73\xb3\x73\xce\x73\xbb\x73\xc0\x73\xc9\x73\xd6\x73\xe5\x73\xe3\x73\xd2\x73\xee\x73\xf1\x73\xde\x73\xf8\x74\x07\x73\xf5\x74\x05\x74\x26\x74\x2a\x74\x25\x74\x29\x74\x2e\x74\x32\x74\x3a\x74\x55\x74\x3f\x74\x5f\x74\x59\x74\x41\x74\x5c\x74\x69\x74\x70\x74\x63\x74\x6a\x74\x64\x74\x62\x74\x89\x74\x6f\x74\x7e\x74\x9f\x74\x9e\x74\xa2\x74\xa7\x74\xca\x74\xcf\x74\xd4\x74\xe0\x74\xe3\x74\xe7\x74\xe9\x74\xee\x74\xf0\x74\xf2\x74\xf1\x74\xf7\x74\xf8\x75\x01\x75\x04\x75\x03\x75\x05\x75\x0d\x75\x0c\x75\x0e\x75\x13\x75\x1e\x75\x26\x75\x2c\x75\x3c\x75\x44\x75\x4d\x75\x4a\x75\x49\x75\x46\x75\x5b\x75\x5a\x75\x64\x75\x67\x75\x6b\x75\x6f\x75\x74\x75\x6d\x75\x78\x75\x76\x75\x82\x75\x86\x75\x87\x75\x8a\x75\x89\x75\x94\x75\x9a\x75\x9d\x75\xa5\x75\xa3\x75\xc2\x75\xb3\x75\xc3\x75\xb5\x75\xbd\x75\xb8\x75\xbc\x75\xb1\x75\xcd\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xca\x75\xd2\x75\xd9\x75\xe3\x75\xde\x75\xfe\x75\xff\x75\xfc\x76\x01\x75\xf0\x75\xfa\x75\xf2\x75\xf3\x76\x0b\x76\x09\x76\x1f\x76\x27\x76\x20\x76\x21\x76\x22\x76\x24\x76\x34\x76\x30\x76\x3b\x76\x47\x76\x48\x76\x58\x76\x46\x76\x5c\x76\x61\x76\x62\x76\x68\x76\x69\x76\x67\x76\x6a\x76\x6c\x76\x70\x76\x72\x76\x76\x76\x7c\x76\x82\x76\x80\x76\x83\x76\x88\x76\x8b\x76\x99\x76\x9a\x76\x9c\x76\x9e\x76\x9b\x76\xa6\x76\xb0\x76\xb4\x76\xb8\x76\xb9\x76\xba\x76\xc2\xfa\x17\x76\xcd\x76\xd6\x76\xd2\x76\xde\x76\xe1", /* 5f80 */ "\x76\xe5\x76\xea\x86\x2f\x76\xfb\x77\x08\x77\x07\x77\x04\x77\x24\x77\x29\x77\x25\x77\x26\x77\x1b\x77\x37\x77\x38\x77\x46\x77\x47\x77\x5a\x77\x68\x77\x6b\x77\x5b\x77\x65\x77\x7f\x77\x7e\x77\x79\x77\x8e\x77\x8b\x77\x91\x77\xa0\x77\x9e\x77\xb0\x77\xb6\x77\xb9\x77\xbf\x77\xbc\x77\xbd\x77\xbb\x77\xc7\x77\xcd\x77\xda\x77\xdc\x77\xe3\x77\xee\x52\xaf\x77\xfc\x78\x0c\x78\x12\x78\x21\x78\x3f\x78\x20\x78\x45\x78\x4e\x78\x64\x78\x74\x78\x8e\x78\x7a\x78\x86\x78\x9a\x78\x7c\x78\x8c\x78\xa3\x78\xb5\x78\xaa\x78\xaf\x78\xd1\x78\xc6\x78\xcb\x78\xd4\x78\xbe\x78\xbc\x78\xc5\x78\xca\x78\xec\x78\xe7\x78\xda\x78\xfd\x78\xf4\x79\x07\x79\x11\x79\x19\x79\x2c\x79\x2b\x79\x30\xfa\x18\x79\x40\x79\x60\xfa\x19\x79\x5f\x79\x5a\x79\x55\xfa\x1a\x79\x7f\x79\x8a\x79\x94\xfa\x1b\x79\x9d\x79\x9b\x79\xaa\x79\xb3\x79\xba\x79\xc9\x79\xd5\x79\xe7\x79\xec\x79\xe3\x7a\x08\x7a\x0d\x7a\x18\x7a\x19\x7a\x1f\x7a\x31\x7a\x3e\x7a\x37\x7a\x3b\x7a\x43\x7a\x57\x7a\x49\x7a\x62\x7a\x61\x7a\x69\x9f\x9d\x7a\x70\x7a\x79\x7a\x7d\x7a\x88\x7a\x95\x7a\x98\x7a\x96\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x97\x7a\xa9\x7a\xb0\x7a\xb6\x90\x83\x7a\xc3\x7a\xbf\x7a\xc5\x7a\xc4\x7a\xc7\x7a\xca\x7a\xcd\x7a\xcf\x7a\xd2\x7a\xd1\x7a\xd5\x7a\xd3\x7a\xd9\x7a\xda\x7a\xdd\x7a\xe1\x7a\xe2\x7a\xe6\x7a\xe7\xfa\x1c\x7a\xeb\x7a\xed\x7a\xf0\x7a\xf8\x7b\x02\x7b\x0f\x7b\x0b\x7b\x0a\x7b\x06\x7b\x33\x7b\x36\x7b\x19\x7b\x1e\x7b\x35\x7b\x28\x7b\x50\x7b\x4d\x7b\x4c\x7b\x45\x7b\x5d\x7b\x75\x7b\x7a\x7b\x74\x7b\x70\x7b\x71\x7b\x6e\x7b\x9d\x7b\x98\x7b\x9f\x7b\x8d\x7b\x9c\x7b\x9a\x7b\x92\x7b\x8f\x7b\x99\x7b\xcf\x7b\xcb\x7b\xcc", /* 6080 */ "\x7b\xb4\x7b\xc6\x7b\x9e\x7b\xdd\x7b\xe9\x7b\xe6\x7b\xf7\x7b\xe5\x7c\x14\x7c\x00\x7c\x13\x7c\x07\x7b\xf3\x7c\x0d\x7b\xf6\x7c\x23\x7c\x27\x7c\x2a\x7c\x1f\x7c\x37\x7c\x2b\x7c\x3d\x7c\x40\x7c\x4c\x7c\x43\x7c\x56\x7c\x50\x7c\x58\x7c\x5f\x7c\x65\x7c\x6c\x7c\x75\x7c\x83\x7c\x90\x7c\xa4\x7c\xa2\x7c\xab\x7c\xa1\x7c\xad\x7c\xa8\x7c\xb3\x7c\xb2\x7c\xb1\x7c\xae\x7c\xb9\xfa\x1d\x7c\xbd\x7c\xc5\x7c\xc2\x7c\xd2\x7c\xe2\x7c\xd8\x7c\xdc\x7c\xef\x7c\xf2\x7c\xf4\x7c\xf6\x7d\x06\x7d\x02\x7d\x1c\x7d\x15\x7d\x0a\x7d\x45\x7d\x4b\x7d\x2e\x7d\x32\x7d\x3f\x7d\x35\x7d\x48\x7d\x46\x7d\x5c\x7d\x73\x7d\x56\x7d\x4e\x7d\x68\x7d\x6e\x7d\x4f\x7d\x63\x7d\x93\x7d\x89\x7d\x5b\x7d\xae\x7d\xa3\x7d\xb5\x7d\xb7\x7d\xc7\x7d\xbd\x7d\xab\x7d\xa2\x7d\xaf\x7d\xa0\x7d\xb8\x7d\x9f\x7d\xb0\x7d\xd5\x7d\xd8\x7d\xdd\x7d\xd6\x7d\xe4\x7d\xde\x7d\xfb\x7e\x0b\x7d\xf2\x7d\xe1\x7d\xdc\x7e\x05\x7e\x0a\x7e\x21\x7e\x12\x7e\x1f\x7e\x09\x7e\x3a\x7e\x46\x7e\x66\x7e\x31\x7e\x3d\x7e\x35\x7e\x3b\x7e\x39\x7e\x43\x7e\x37\x7e\x32\x7e\x5d\x7e\x56\x7e\x5e\x7e\x52\x7e\x59\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x5a\x7e\x67\x7e\x79\x7e\x6a\x7e\x69\x7e\x7c\x7e\x7b\x7e\x7d\x8f\xae\x7e\x7f\x7e\x83\x7e\x89\x7e\x8e\x7e\x8c\x7e\x92\x7e\x93\x7e\x94\x7e\x96\x7e\x9b\x7f\x38\x7f\x3a\x7f\x45\x7f\x47\x7f\x4c\x7f\x4e\x7f\x51\x7f\x55\x7f\x54\x7f\x58\x7f\x5f\x7f\x60\x7f\x68\x7f\x67\x7f\x69\x7f\x78\x7f\x82\x7f\x86\x7f\x83\x7f\x87\x7f\x88\x7f\x8c\x7f\x94\x7f\x9e\x7f\x9d\x7f\x9a\x7f\xa1\x7f\xa3\x7f\xaf\x7f\xae\x7f\xb2\x7f\xb9\x7f\xb6\x7f\xb8\x8b\x71\xfa\x1e\x7f\xc5\x7f\xc6\x7f\xca\x7f\xd5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xf3", /* 6180 */ "\x7f\xf9\x80\x04\x80\x0b\x80\x12\x80\x19\x80\x1c\x80\x21\x80\x28\x80\x3f\x80\x3b\x80\x4a\x80\x46\x80\x52\x80\x58\x80\x5f\x80\x62\x80\x68\x80\x73\x80\x72\x80\x70\x80\x76\x80\x79\x80\x7d\x80\x7f\x80\x84\x80\x85\x80\x93\x80\x9a\x80\xad\x51\x90\x80\xac\x80\xdb\x80\xe5\x80\xd9\x80\xdd\x80\xc4\x80\xda\x81\x09\x80\xef\x80\xf1\x81\x1b\x81\x23\x81\x2f\x81\x4b\x81\x46\x81\x3e\x81\x53\x81\x51\x81\x41\x81\x71\x81\x6e\x81\x65\x81\x5f\x81\x66\x81\x74\x81\x83\x81\x88\x81\x8a\x81\x80\x81\x82\x81\xa0\x81\x95\x81\xa3\x81\x93\x81\xb5\x81\xa4\x81\xa9\x81\xb8\x81\xb0\x81\xc8\x81\xbe\x81\xbd\x81\xc0\x81\xc2\x81\xba\x81\xc9\x81\xcd\x81\xd1\x81\xd8\x81\xd9\x81\xda\x81\xdf\x81\xe0\x81\xfa\x81\xfb\x81\xfe\x82\x01\x82\x02\x82\x05\x82\x0d\x82\x10\x82\x12\x82\x16\x82\x29\x82\x2b\x82\x2e\x82\x38\x82\x33\x82\x40\x82\x59\x82\x5a\x82\x5d\x82\x5f\x82\x64\x82\x62\x82\x68\x82\x6a\x82\x6b\x82\x71\x82\x77\x82\x7e\x82\x8d\x82\x92\x82\xab\x82\x9f\x82\xbb\x82\xac\x82\xe1\x82\xe3\x82\xdf\x83\x01\x82\xd2\x82\xf4\x82\xf3\x83\x03\x82\xfb\x82\xf9\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\xde\x83\x06\x82\xdc\x82\xfa\x83\x09\x82\xd9\x83\x35\x83\x62\x83\x34\x83\x16\x83\x31\x83\x40\x83\x39\x83\x50\x83\x45\x83\x2f\x83\x2b\x83\x18\x83\x9a\x83\xaa\x83\x9f\x83\xa2\x83\x96\x83\x23\x83\x8e\x83\x75\x83\x7f\x83\x8a\x83\x7c\x83\xb5\x83\x73\x83\x93\x83\xa0\x83\x85\x83\x89\x83\xa8\x83\xf4\x84\x13\x83\xc7\x83\xce\x83\xf7\x83\xfd\x84\x03\x83\xd8\x84\x0b\x83\xc1\x84\x07\x83\xe0\x83\xf2\x84\x0d\x84\x20\x83\xf6\x83\xbd\x83\xfb\x84\x2a\x84\x62\x84\x3c\x84\x84\x84\x77\x84\x6b\x84\x79\x84\x48\x84\x6e", /* 6280 */ "\x84\x82\x84\x69\x84\x46\x84\x6f\x84\x38\x84\x35\x84\xca\x84\xb9\x84\xbf\x84\x9f\x84\xb4\x84\xcd\x84\xbb\x84\xda\x84\xd0\x84\xc1\x84\xad\x84\xc6\x84\xd6\x84\xa1\x84\xd9\x84\xff\x84\xf4\x85\x17\x85\x18\x85\x2c\x85\x1f\x85\x15\x85\x14\x85\x06\x85\x53\x85\x5a\x85\x40\x85\x59\x85\x63\x85\x58\x85\x48\x85\x41\x85\x4a\x85\x4b\x85\x6b\x85\x55\x85\x80\x85\xa4\x85\x88\x85\x91\x85\x8a\x85\xa8\x85\x6d\x85\x94\x85\x9b\x85\xae\x85\x87\x85\x9c\x85\x77\x85\x7e\x85\x90\xfa\x1f\x82\x0a\x85\xb0\x85\xc9\x85\xba\x85\xcf\x85\xb9\x85\xd0\x85\xd5\x85\xdd\x85\xe5\x85\xdc\x85\xf9\x86\x0a\x86\x13\x86\x0b\x85\xfe\x86\x22\x86\x1a\x86\x30\x86\x3f\xfa\x20\x86\x4d\x4e\x55\x86\x55\x86\x5f\x86\x67\x86\x71\x86\x93\x86\xa3\x86\xa9\x86\x8b\x86\xaa\x86\x8c\x86\xb6\x86\xaf\x86\xc4\x86\xc6\x86\xb0\x86\xc9\x86\xce\xfa\x21\x86\xab\x86\xd4\x86\xde\x86\xe9\x86\xec\x86\xdf\x86\xdb\x87\x12\x87\x06\x87\x08\x87\x00\x87\x03\x86\xfb\x87\x11\x87\x09\x87\x0d\x86\xf9\x87\x0a\x87\x34\x87\x3f\x87\x3b\x87\x25\x87\x29\x87\x1a\x87\x5f\x87\x78\x87\x4c\x87\x4e\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x74\x87\x57\x87\x68\x87\x82\x87\x6a\x87\x60\x87\x6e\x87\x59\x87\x53\x87\x63\x87\x7f\x87\xa2\x87\xc6\x87\x9f\x87\xaf\x87\xcb\x87\xbd\x87\xc0\x87\xd0\x96\xd6\x87\xab\x87\xc4\x87\xb3\x87\xd2\x87\xbb\x87\xef\x87\xf2\x87\xe0\x88\x0e\x88\x07\x88\x0f\x88\x16\x88\x0d\x87\xfe\x87\xf6\x87\xf7\x88\x11\x88\x15\x88\x22\x88\x21\x88\x27\x88\x31\x88\x36\x88\x39\x88\x3b\x88\x42\x88\x44\x88\x4d\x88\x52\x88\x59\x88\x5e\x88\x62\x88\x6b\x88\x81\x88\x7e\x88\x75\x88\x7d\x88\x72\x88\x82\x88\x9e\x88\x97\x88\x92\x88\xae", /* 6380 */ "\x88\x99\x88\xa2\x88\x8d\x88\xa4\x88\xbf\x88\xb5\x88\xb1\x88\xc3\x88\xc4\x88\xd4\x88\xd8\x88\xd9\x88\xdd\x88\xf9\x89\x02\x88\xfc\x88\xf5\x88\xe8\x88\xf2\x89\x04\x89\x0c\x89\x2a\x89\x1d\x89\x0a\x89\x13\x89\x1e\x89\x25\x89\x2b\x89\x41\x89\x3b\x89\x36\x89\x43\x89\x38\x89\x4d\x89\x4c\x89\x60\x89\x5e\x89\x66\x89\x6a\x89\x64\x89\x6d\x89\x6f\x89\x74\x89\x77\x89\x7e\x89\x83\x89\x88\x89\x8a\x89\x93\x89\x98\x89\xa1\x89\xa9\x89\xa6\x89\xac\x89\xaf\x89\xb2\x89\xba\x89\xbf\x89\xbd\x89\xc0\x89\xda\x89\xdd\x89\xe7\x89\xf4\x89\xf8\x8a\x03\x8a\x16\x8a\x10\x8a\x0c\x8a\x12\x8a\x1b\x8a\x1d\x8a\x25\x8a\x36\x8a\x41\x8a\x37\x8a\x5b\x8a\x52\x8a\x46\x8a\x48\x8a\x7c\x8a\x6d\x8a\x6c\x8a\x62\x8a\x79\x8a\x85\x8a\x82\x8a\x84\x8a\xa8\x8a\xa1\x8a\x91\x8a\xa5\x8a\xa6\x8a\x9a\x8a\xa3\x8a\xa7\x8a\xcc\x8a\xbe\x8a\xcd\x8a\xc2\x8a\xda\x8a\xf3\x8a\xe7\x8a\xe4\x8a\xf1\x8b\x14\x8a\xe0\x8a\xe2\x8a\xe1\x8a\xdf\xfa\x22\x8a\xf6\x8a\xf7\x8a\xde\x8a\xdb\x8b\x0c\x8b\x07\x8b\x1a\x8b\x16\x8b\x10\x8b\x17\x8b\x20\x8b\x33\x8b\x41\x97\xab\x8b\x26\x8b\x2b\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x3e\x8b\x4c\x8b\x4f\x8b\x4e\x8b\x53\x8b\x49\x8b\x56\x8b\x5b\x8b\x5a\x8b\x74\x8b\x6b\x8b\x5f\x8b\x6c\x8b\x6f\x8b\x7d\x8b\x7f\x8b\x80\x8b\x8c\x8b\x8e\x8b\x99\x8b\x92\x8b\x93\x8b\x96\x8b\x9a\x8c\x3a\x8c\x41\x8c\x3f\x8c\x48\x8c\x4c\x8c\x4e\x8c\x50\x8c\x55\x8c\x62\x8c\x6c\x8c\x78\x8c\x7a\x8c\x7c\x8c\x82\x8c\x89\x8c\x85\x8c\x8a\x8c\x8d\x8c\x8e\x8c\x98\x8c\x94\x62\x1d\x8c\xad\x8c\xaa\x8c\xae\x8c\xbd\x8c\xb2\x8c\xb3\x8c\xc1\x8c\xb6\x8c\xc8\x8c\xce\x8c\xcd\x8c\xe3\x8c\xda\x8c\xf0\x8c\xf4\x8c\xfd\x8c\xfa", /* 6480 */ "\x8c\xfb\x8d\x07\x8d\x0a\x8d\x0f\x8d\x0d\x8d\x12\x8d\x10\x8d\x13\x8d\x14\x8d\x16\x8d\x67\x8d\x6d\x8d\x71\x8d\x76\xfa\x23\x8d\x81\x8d\xc2\x8d\xbe\x8d\xba\x8d\xcf\x8d\xda\x8d\xd6\x8d\xcc\x8d\xdb\x8d\xcb\x8d\xea\x8d\xeb\x8d\xdf\x8d\xe3\x8d\xfc\x8e\x08\x8d\xff\x8e\x09\x8e\x1d\x8e\x1e\x8e\x10\x8e\x1f\x8e\x42\x8e\x35\x8e\x30\x8e\x34\x8e\x4a\x8e\x47\x8e\x49\x8e\x4c\x8e\x50\x8e\x48\x8e\x59\x8e\x64\x8e\x60\x8e\x55\x8e\x63\x8e\x76\x8e\x72\x8e\x87\x8e\x7c\x8e\x81\x8e\x85\x8e\x84\x8e\x8b\x8e\x8a\x8e\x93\x8e\x91\x8e\x94\x8e\x99\x8e\xa1\x8e\xaa\x8e\xb1\x8e\xbe\x8e\xc6\x8e\xc5\x8e\xc8\x8e\xcb\x8e\xcf\x8e\xdb\x8e\xe3\x8e\xfc\x8e\xfb\x8e\xeb\x8e\xfe\x8f\x0a\x8f\x0c\x8f\x05\x8f\x15\x8f\x12\x8f\x13\x8f\x1c\x8f\x19\x8f\x1f\x8f\x26\x8f\x33\x8f\x3b\x8f\x39\x8f\x45\x8f\x42\x8f\x3e\x8f\x49\x8f\x46\x8f\x4c\x8f\x4e\x8f\x57\x8f\x5c\x8f\x62\x8f\x63\x8f\x64\x8f\x9c\x8f\x9f\x8f\xa3\x8f\xa8\x8f\xa7\x8f\xad\x8f\xaf\x8f\xb7\xfa\x24\x8f\xda\x8f\xe5\x8f\xe2\x8f\xef\x8f\xe9\x8f\xf4\x90\x05\x8f\xf9\x8f\xf8\x90\x11\x90\x15\x90\x0e\x90\x21\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x90\x1e\x90\x16\x90\x0b\x90\x27\x90\x36\x90\x39\x90\x4f\xfa\x25\x90\x50\x90\x51\x90\x52\x90\x49\x90\x3e\x90\x56\x90\x58\x90\x5e\x90\x68\x90\x67\x90\x6f\x90\x76\x96\xa8\x90\x72\x90\x82\x90\x7d\x90\x89\x90\x80\x90\x8f\x62\x48\x90\xaf\x90\xb1\x90\xb5\x90\xe2\x90\xe4\x90\xdb\x90\xde\x91\x02\xfa\x26\x91\x15\x91\x12\x91\x19\x91\x32\x91\x27\x91\x30\x91\x4a\x91\x56\x91\x58\x91\x63\x91\x65\x91\x69\x91\x73\x91\x72\x91\x8b\x91\x89\x91\x82\x91\xa2\x91\xab\x91\xaf\x91\xaa\x91\xb5\x91\xb4\x91\xba\x91\xc0", /* 6580 */ "\x91\xc1\x91\xcb\x91\xd0\x91\xda\x91\xdb\x91\xd7\x91\xde\x91\xd6\x91\xdf\x91\xe1\x91\xed\x91\xf5\x91\xee\x91\xe4\x91\xf6\x91\xe5\x92\x06\x92\x1e\x91\xff\x92\x10\x92\x14\x92\x0a\x92\x2c\x92\x15\x92\x29\x92\x57\x92\x45\x92\x3a\x92\x49\x92\x64\x92\x40\x92\x3c\x92\x48\x92\x4e\x92\x50\x92\x59\x92\x3f\x92\x51\x92\x39\x92\x4b\x92\x67\x92\x5a\x92\x9c\x92\xa7\x92\x77\x92\x78\x92\x96\x92\x93\x92\x9b\x92\x95\x92\xe9\x92\xcf\x92\xe7\x92\xd7\x92\xd9\x92\xd0\xfa\x27\x92\xd5\x92\xb9\x92\xb7\x92\xe0\x92\xd3\x93\x3a\x93\x35\x93\x0f\x93\x25\x92\xfa\x93\x21\x93\x44\x92\xfb\xfa\x28\x93\x19\x93\x1e\x92\xff\x93\x22\x93\x1a\x93\x1d\x93\x23\x93\x02\x93\x3b\x93\x70\x93\x60\x93\x7c\x93\x6e\x93\x56\x93\x57\x93\xb9\x93\xb0\x93\xa4\x93\xad\x93\x94\x93\xc8\x93\xd6\x93\xc6\x93\xd7\x93\xe8\x93\xe5\x93\xd8\x93\xc3\x93\xdd\x93\xde\x93\xd0\x93\xe4\x94\x1a\x93\xf8\x94\x14\x94\x13\x94\x21\x94\x03\x94\x07\x94\x36\x94\x2b\x94\x31\x94\x3a\x94\x41\x94\x52\x94\x45\x94\x44\x94\x48\x94\x5b\x94\x5a\x94\x60\x94\x62\x94\x5e\x94\x6a\x94\x75\x94\x70\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x77\x94\x7f\x94\x7d\x94\x7c\x94\x7e\x94\x81\x95\x82\x95\x87\x95\x8a\x95\x92\x95\x94\x95\x96\x95\x98\x95\x99\x95\xa0\x95\xa8\x95\xa7\x95\xad\x95\xbc\x95\xbb\x95\xb9\x95\xbe\x95\xca\x6f\xf6\x95\xc3\x95\xcd\x95\xcc\x95\xd5\x95\xd4\x95\xd6\x95\xdc\x95\xe1\x95\xe5\x95\xe2\x96\x21\x96\x28\x96\x2e\x96\x2f\x96\x42\x96\x4f\x96\x4c\x96\x4b\x96\x5c\x96\x5d\x96\x5f\x96\x66\x96\x77\x96\x72\x96\x6c\x96\x8d\x96\x8b\xf9\xdc\x96\x98\x96\x95\x96\x97\xfa\x29\x96\x9d\x96\xa7\x96\xaa\x96\xb1\x96\xb2\x96\xb0\x96\xaf", /* 6680 */ "\x96\xb4\x96\xb6\x96\xb8\x96\xb9\x96\xce\x96\xcb\x96\xd5\x96\xdc\x96\xd9\x96\xf9\x97\x04\x97\x06\x97\x08\x97\x19\x97\x0d\x97\x13\x97\x0e\x97\x11\x97\x0f\x97\x16\x97\x24\x97\x2a\x97\x30\x97\x33\x97\x39\x97\x3b\x97\x3d\x97\x3e\x97\x46\x97\x44\x97\x43\x97\x48\x97\x42\x97\x49\x97\x4d\x97\x4f\x97\x51\x97\x55\x97\x5c\x97\x60\x97\x64\x97\x66\x97\x68\x97\x6d\x97\x79\x97\x85\x97\x7c\x97\x81\x97\x7a\x97\x8b\x97\x8f\x97\x90\x97\x9c\x97\xa8\x97\xa6\x97\xa3\x97\xb3\x97\xb4\x97\xc3\x97\xc6\x97\xc8\x97\xcb\x97\xdc\x97\xed\x97\xf2\x7a\xdf\x97\xf5\x98\x0f\x98\x1a\x98\x24\x98\x21\x98\x37\x98\x3d\x98\x4f\x98\x4b\x98\x57\x98\x65\x98\x6b\x98\x6f\x98\x70\x98\x71\x98\x74\x98\x73\x98\xaa\x98\xaf\x98\xb1\x98\xb6\x98\xc4\x98\xc3\x98\xc6\x98\xdc\x98\xed\x98\xe9\xfa\x2a\x98\xeb\xfa\x2b\x99\x03\x99\x1d\x99\x12\x99\x14\x99\x18\x99\x27\xfa\x2c\x99\x21\x99\x1e\x99\x24\x99\x20\x99\x2c\x99\x2e\x99\x3d\x99\x3e\x99\x42\x99\x49\x99\x45\x99\x50\x99\x4b\x99\x51\x99\x4c\x99\x55\x99\x97\x99\x98\x99\x9e\x99\xa5\x99\xad\x99\xae\x99\xbc\x99\xdf\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xdb\x99\xdd\x99\xd8\x99\xd1\x99\xed\x99\xee\x99\xe2\x99\xf1\x99\xf2\x99\xfb\x99\xf8\x9a\x01\x9a\x0f\x9a\x05\x9a\x19\x9a\x2b\x9a\x37\x9a\x40\x9a\x45\x9a\x42\x9a\x43\x9a\x3e\x9a\x55\x9a\x4d\x9a\x4e\x9a\x5b\x9a\x57\x9a\x5f\x9a\x62\x9a\x69\x9a\x65\x9a\x64\x9a\x6a\x9a\x6b\x9a\xad\x9a\xb0\x9a\xbc\x9a\xc0\x9a\xcf\x9a\xd3\x9a\xd4\x9a\xd1\x9a\xd9\x9a\xdc\x9a\xde\x9a\xdf\x9a\xe2\x9a\xe3\x9a\xe6\x9a\xef\x9a\xeb\x9a\xee\x9a\xf4\x9a\xf1\x9a\xf7\x9a\xfb\x9b\x06\x9b\x18\x9b\x1a\x9b\x1f\x9b\x22\x9b\x23\x9b\x25", /* 6780 */ "\x9b\x27\x9b\x28\x9b\x29\x9b\x2a\x9b\x2e\x9b\x2f\x9b\x31\x9b\x32\x9b\x3b\x9b\x44\x9b\x43\x9b\x4d\x9b\x4e\x9b\x51\x9b\x58\x9b\x75\x9b\x74\x9b\x72\x9b\x93\x9b\x8f\x9b\x83\x9b\x91\x9b\x96\x9b\x97\x9b\x9f\x9b\xa0\x9b\xa8\x9b\xb1\x9b\xb4\x9b\xc0\x9b\xca\x9b\xbb\x9b\xb9\x9b\xc6\x9b\xcf\x9b\xd1\x9b\xd2\x9b\xe3\x9b\xe2\x9b\xe4\x9b\xd4\x9b\xe1\x9b\xf5\x9b\xf1\x9b\xf2\x9c\x04\x9c\x1b\x9c\x15\x9c\x14\x9c\x00\x9c\x09\x9c\x13\x9c\x0c\x9c\x06\x9c\x08\x9c\x12\x9c\x0a\x9c\x2e\x9c\x25\x9c\x24\x9c\x21\x9c\x30\x9c\x47\x9c\x32\x9c\x46\x9c\x3e\x9c\x5a\x9c\x60\x9c\x67\x9c\x76\x9c\x78\x9c\xeb\x9c\xe7\x9c\xec\x9c\xf0\x9d\x09\x9d\x03\x9d\x06\x9d\x2a\x9d\x26\x9d\x2c\x9d\x23\x9d\x1f\x9d\x15\x9d\x12\x9d\x41\x9d\x3f\x9d\x44\x9d\x3e\x9d\x46\x9d\x48\x9d\x5d\x9d\x5e\x9d\x59\x9d\x51\x9d\x50\x9d\x64\x9d\x72\x9d\x70\x9d\x87\x9d\x6b\x9d\x6f\x9d\x7a\x9d\x9a\x9d\xa4\x9d\xa9\x9d\xab\x9d\xb2\x9d\xc4\x9d\xc1\x9d\xbb\x9d\xb8\x9d\xba\x9d\xc6\x9d\xcf\x9d\xc2\xfa\x2d\x9d\xd9\x9d\xd3\x9d\xf8\x9d\xe6\x9d\xed\x9d\xef\x9d\xfd\x9e\x1a\x9e\x1b\x9e\x19\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x1e\x9e\x75\x9e\x79\x9e\x7d\x9e\x81\x9e\x88\x9e\x8b\x9e\x8c\x9e\x95\x9e\x91\x9e\x9d\x9e\xa5\x9e\xb8\x9e\xaa\x9e\xad\x9e\xbc\x9e\xbe\x97\x61\x9e\xcc\x9e\xcf\x9e\xd0\x9e\xd1\x9e\xd4\x9e\xdc\x9e\xde\x9e\xdd\x9e\xe0\x9e\xe5\x9e\xe8\x9e\xef\x9e\xf4\x9e\xf6\x9e\xf7\x9e\xf9\x9e\xfb\x9e\xfc\x9e\xfd\x9f\x07\x9f\x08\x76\xb7\x9f\x15\x9f\x21\x9f\x2c\x9f\x3e\x9f\x4a\x9f\x4e\x9f\x4f\x9f\x52\x9f\x54\x9f\x63\x9f\x5f\x9f\x60\x9f\x61\x9f\x66\x9f\x67\x9f\x6c\x9f\x6a\x9f\x77\x9f\x72\x9f\x76\x9f\x95\x9f\x9c\x9f\xa0", /* 6880 */ "\x5c\x2d\x69\xd9\x90\x65\x74\x76\x51\xdc\x71\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 6980 */ "\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc", /* 6a80 */ "\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba", /* 6b80 */ "\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78", /* 6c80 */ "\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36", /* 6d80 */ "\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4", /* 6e80 */ "\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2", /* 6f80 */ "\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70", /* 7080 */ "\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e", /* 7180 */ "\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec", /* 7280 */ "\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xe7\xa8\xe7\xa9\xe7\xaa", /* 7380 */ "\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe7\xff\xe8\x00\xe8\x01\xe8\x02\xe8\x03\xe8\x04\xe8\x05\xe8\x06\xe8\x07\xe8\x08\xe8\x09\xe8\x0a\xe8\x0b\xe8\x0c\xe8\x0d\xe8\x0e\xe8\x0f\xe8\x10\xe8\x11\xe8\x12\xe8\x13\xe8\x14\xe8\x15\xe8\x16\xe8\x17\xe8\x18\xe8\x19\xe8\x1a\xe8\x1b\xe8\x1c\xe8\x1d\xe8\x1e\xe8\x1f\xe8\x20\xe8\x21\xe8\x22\xe8\x23\xe8\x24\xe8\x25\xe8\x26\xe8\x27\xe8\x28\xe8\x29\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x2a\xe8\x2b\xe8\x2c\xe8\x2d\xe8\x2e\xe8\x2f\xe8\x30\xe8\x31\xe8\x32\xe8\x33\xe8\x34\xe8\x35\xe8\x36\xe8\x37\xe8\x38\xe8\x39\xe8\x3a\xe8\x3b\xe8\x3c\xe8\x3d\xe8\x3e\xe8\x3f\xe8\x40\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68", /* 7480 */ "\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe8\xff\xe9\x00\xe9\x01\xe9\x02\xe9\x03\xe9\x04\xe9\x05\xe9\x06\xe9\x07\xe9\x08\xe9\x09\xe9\x0a\xe9\x0b\xe9\x0c\xe9\x0d\xe9\x0e\xe9\x0f\xe9\x10\xe9\x11\xe9\x12\xe9\x13\xe9\x14\xe9\x15\xe9\x16\xe9\x17\xe9\x18\xe9\x19\xe9\x1a\xe9\x1b\xe9\x1c\xe9\x1d\xe9\x1e\xe9\x1f\xe9\x20\xe9\x21\xe9\x22\xe9\x23\xe9\x24\xe9\x25\xe9\x26", /* 7580 */ "\xe9\x27\xe9\x28\xe9\x29\xe9\x2a\xe9\x2b\xe9\x2c\xe9\x2d\xe9\x2e\xe9\x2f\xe9\x30\xe9\x31\xe9\x32\xe9\x33\xe9\x34\xe9\x35\xe9\x36\xe9\x37\xe9\x38\xe9\x39\xe9\x3a\xe9\x3b\xe9\x3c\xe9\x3d\xe9\x3e\xe9\x3f\xe9\x40\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xe9\x58\xe9\x59\xe9\x5a\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4", /* 7680 */ "\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xe9\xff\xea\x00\xea\x01\xea\x02\xea\x03\xea\x04\xea\x05\xea\x06\xea\x07\xea\x08\xea\x09\xea\x0a\xea\x0b\xea\x0c\xea\x0d\xea\x0e\xea\x0f\xea\x10\xea\x11\xea\x12\xea\x13\xea\x14\xea\x15\xea\x16\xea\x17\xea\x18\xea\x19\xea\x1a\xea\x1b\xea\x1c\xea\x1d\xea\x1e\xea\x1f\xea\x20\xea\x21\xea\x22\xea\x23\xea\x24\xea\x25\xea\x26\xea\x27\xea\x28\xea\x29\xea\x2a\xea\x2b\xea\x2c\xea\x2d\xea\x2e\xea\x2f\xea\x30\xea\x31\xea\x32\xea\x33\xea\x34\xea\x35\xea\x36\xea\x37\xea\x38\xea\x39\xea\x3a\xea\x3b\xea\x3c\xea\x3d\xea\x3e\xea\x3f\xea\x40\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2", /* 7780 */ "\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xea\xff\xeb\x00\xeb\x01\xeb\x02\xeb\x03\xeb\x04\xeb\x05\xeb\x06\xeb\x07\xeb\x08\xeb\x09\xeb\x0a\xeb\x0b\xeb\x0c\xeb\x0d\xeb\x0e\xeb\x0f\xeb\x10\xeb\x11\xeb\x12\xeb\x13\xeb\x14\xeb\x15\xeb\x16\xeb\x17\xeb\x18\xeb\x19\xeb\x1a\xeb\x1b\xeb\x1c\xeb\x1d\xeb\x1e\xeb\x1f\xeb\x20\xeb\x21\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x22\xeb\x23\xeb\x24\xeb\x25\xeb\x26\xeb\x27\xeb\x28\xeb\x29\xeb\x2a\xeb\x2b\xeb\x2c\xeb\x2d\xeb\x2e\xeb\x2f\xeb\x30\xeb\x31\xeb\x32\xeb\x33\xeb\x34\xeb\x35\xeb\x36\xeb\x37\xeb\x38\xeb\x39\xeb\x3a\xeb\x3b\xeb\x3c\xeb\x3d\xeb\x3e\xeb\x3f\xeb\x40\xeb\x41\xeb\x42\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d\xeb\x5e\xeb\x5f\xeb\x60", /* 7880 */ "\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xeb\xd7\xeb\xd8\xeb\xd9\xeb\xda\xeb\xdb\xeb\xdc\xeb\xdd\xeb\xde\xeb\xdf\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xeb\xf2\xeb\xf3\xeb\xf4\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe\xeb\xff\xec\x00\xec\x01\xec\x02\xec\x03\xec\x04\xec\x05\xec\x06\xec\x07\xec\x08\xec\x09\xec\x0a\xec\x0b\xec\x0c\xec\x0d\xec\x0e\xec\x0f\xec\x10\xec\x11\xec\x12\xec\x13\xec\x14\xec\x15\xec\x16\xec\x17\xec\x18\xec\x19\xec\x1a\xec\x1b\xec\x1c\xec\x1d\xec\x1e", /* 7980 */ "\xec\x1f\xec\x20\xec\x21\xec\x22\xec\x23\xec\x24\xec\x25\xec\x26\xec\x27\xec\x28\xec\x29\xec\x2a\xec\x2b\xec\x2c\xec\x2d\xec\x2e\xec\x2f\xec\x30\xec\x31\xec\x32\xec\x33\xec\x34\xec\x35\xec\x36\xec\x37\xec\x38\xec\x39\xec\x3a\xec\x3b\xec\x3c\xec\x3d\xec\x3e\xec\x3f\xec\x40\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc", /* 7a80 */ "\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xec\xff\xed\x00\xed\x01\xed\x02\xed\x03\xed\x04\xed\x05\xed\x06\xed\x07\xed\x08\xed\x09\xed\x0a\xed\x0b\xed\x0c\xed\x0d\xed\x0e\xed\x0f\xed\x10\xed\x11\xed\x12\xed\x13\xed\x14\xed\x15\xed\x16\xed\x17\xed\x18\xed\x19\xed\x1a\xed\x1b\xed\x1c\xed\x1d\xed\x1e\xed\x1f\xed\x20\xed\x21\xed\x22\xed\x23\xed\x24\xed\x25\xed\x26\xed\x27\xed\x28\xed\x29\xed\x2a\xed\x2b\xed\x2c\xed\x2d\xed\x2e\xed\x2f\xed\x30\xed\x31\xed\x32\xed\x33\xed\x34\xed\x35\xed\x36\xed\x37\xed\x38\xed\x39\xed\x3a\xed\x3b\xed\x3c\xed\x3d\xed\x3e\xed\x3f\xed\x40\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a", /* 7b80 */ "\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xed\xff\xee\x00\xee\x01\xee\x02\xee\x03\xee\x04\xee\x05\xee\x06\xee\x07\xee\x08\xee\x09\xee\x0a\xee\x0b\xee\x0c\xee\x0d\xee\x0e\xee\x0f\xee\x10\xee\x11\xee\x12\xee\x13\xee\x14\xee\x15\xee\x16\xee\x17\xee\x18\xee\x19\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x1a\xee\x1b\xee\x1c\xee\x1d\xee\x1e\xee\x1f\xee\x20\xee\x21\xee\x22\xee\x23\xee\x24\xee\x25\xee\x26\xee\x27\xee\x28\xee\x29\xee\x2a\xee\x2b\xee\x2c\xee\x2d\xee\x2e\xee\x2f\xee\x30\xee\x31\xee\x32\xee\x33\xee\x34\xee\x35\xee\x36\xee\x37\xee\x38\xee\x39\xee\x3a\xee\x3b\xee\x3c\xee\x3d\xee\x3e\xee\x3f\xee\x40\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58", /* 7c80 */ "\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xee\xff\xef\x00\xef\x01\xef\x02\xef\x03\xef\x04\xef\x05\xef\x06\xef\x07\xef\x08\xef\x09\xef\x0a\xef\x0b\xef\x0c\xef\x0d\xef\x0e\xef\x0f\xef\x10\xef\x11\xef\x12\xef\x13\xef\x14\xef\x15\xef\x16", /* 7d80 */ "\xef\x17\xef\x18\xef\x19\xef\x1a\xef\x1b\xef\x1c\xef\x1d\xef\x1e\xef\x1f\xef\x20\xef\x21\xef\x22\xef\x23\xef\x24\xef\x25\xef\x26\xef\x27\xef\x28\xef\x29\xef\x2a\xef\x2b\xef\x2c\xef\x2d\xef\x2e\xef\x2f\xef\x30\xef\x31\xef\x32\xef\x33\xef\x34\xef\x35\xef\x36\xef\x37\xef\x38\xef\x39\xef\x3a\xef\x3b\xef\x3c\xef\x3d\xef\x3e\xef\x3f\xef\x40\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xef\xd2\xef\xd3\xef\xd4", /* 7e80 */ "\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xef\xff\xf0\x00\xf0\x01\xf0\x02\xf0\x03\xf0\x04\xf0\x05\xf0\x06\xf0\x07\xf0\x08\xf0\x09\xf0\x0a\xf0\x0b\xf0\x0c\xf0\x0d\xf0\x0e\xf0\x0f\xf0\x10\xf0\x11\xf0\x12\xf0\x13\xf0\x14\xf0\x15\xf0\x16\xf0\x17\xf0\x18\xf0\x19\xf0\x1a\xf0\x1b\xf0\x1c\xf0\x1d\xf0\x1e\xf0\x1f\xf0\x20\xf0\x21\xf0\x22\xf0\x23\xf0\x24\xf0\x25\xf0\x26\xf0\x27\xf0\x28\xf0\x29\xf0\x2a\xf0\x2b\xf0\x2c\xf0\x2d\xf0\x2e\xf0\x2f\xf0\x30\xf0\x31\xf0\x32\xf0\x33\xf0\x34\xf0\x35\xf0\x36\xf0\x37\xf0\x38\xf0\x39\xf0\x3a\xf0\x3b\xf0\x3c\xf0\x3d\xf0\x3e\xf0\x3f\xf0\x40\xf0\x41\xf0\x42\xf0\x43\xf0\x44\xf0\x45\xf0\x46\xf0\x47\xf0\x48\xf0\x49\xf0\x4a\xf0\x4b\xf0\x4c\xf0\x4d\xf0\x4e\xf0\x4f\xf0\x50\xf0\x51\xf0\x52\xf0\x53\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x54\xf0\x55\xf0\x56\xf0\x57\xf0\x58\xf0\x59\xf0\x5a\xf0\x5b\xf0\x5c\xf0\x5d\xf0\x5e\xf0\x5f\xf0\x60\xf0\x61\xf0\x62\xf0\x63\xf0\x64\xf0\x65\xf0\x66\xf0\x67\xf0\x68\xf0\x69\xf0\x6a\xf0\x6b\xf0\x6c\xf0\x6d\xf0\x6e\xf0\x6f\xf0\x70\xf0\x71\xf0\x72\xf0\x73\xf0\x74\xf0\x75\xf0\x76\xf0\x77\xf0\x78\xf0\x79\xf0\x7a\xf0\x7b\xf0\x7c\xf0\x7d\xf0\x7e\xf0\x7f\xf0\x80\xf0\x81\xf0\x82\xf0\x83\xf0\x84\xf0\x85\xf0\x86\xf0\x87\xf0\x88\xf0\x89\xf0\x8a\xf0\x8b\xf0\x8c\xf0\x8d\xf0\x8e\xf0\x8f\xf0\x90\xf0\x91\xf0\x92", /* 7f80 */ "\xf0\x93\xf0\x94\xf0\x95\xf0\x96\xf0\x97\xf0\x98\xf0\x99\xf0\x9a\xf0\x9b\xf0\x9c\xf0\x9d\xf0\x9e\xf0\x9f\xf0\xa0\xf0\xa1\xf0\xa2\xf0\xa3\xf0\xa4\xf0\xa5\xf0\xa6\xf0\xa7\xf0\xa8\xf0\xa9\xf0\xaa\xf0\xab\xf0\xac\xf0\xad\xf0\xae\xf0\xaf\xf0\xb0\xf0\xb1\xf0\xb2\xf0\xb3\xf0\xb4\xf0\xb5\xf0\xb6\xf0\xb7\xf0\xb8\xf0\xb9\xf0\xba\xf0\xbb\xf0\xbc\xf0\xbd\xf0\xbe\xf0\xbf\xf0\xc0\xf0\xc1\xf0\xc2\xf0\xc3\xf0\xc4\xf0\xc5\xf0\xc6\xf0\xc7\xf0\xc8\xf0\xc9\xf0\xca\xf0\xcb\xf0\xcc\xf0\xcd\xf0\xce\xf0\xcf\xf0\xd0\xf0\xd1\xf0\xd2\xf0\xd3\xf0\xd4\xf0\xd5\xf0\xd6\xf0\xd7\xf0\xd8\xf0\xd9\xf0\xda\xf0\xdb\xf0\xdc\xf0\xdd\xf0\xde\xf0\xdf\xf0\xe0\xf0\xe1\xf0\xe2\xf0\xe3\xf0\xe4\xf0\xe5\xf0\xe6\xf0\xe7\xf0\xe8\xf0\xe9\xf0\xea\xf0\xeb\xf0\xec\xf0\xed\xf0\xee\xf0\xef\xf0\xf0\xf0\xf1\xf0\xf2\xf0\xf3\xf0\xf4\xf0\xf5\xf0\xf6\xf0\xf7\xf0\xf8\xf0\xf9\xf0\xfa\xf0\xfb\xf0\xfc\xf0\xfd\xf0\xfe\xf0\xff\xf1\x00\xf1\x01\xf1\x02\xf1\x03\xf1\x04\xf1\x05\xf1\x06\xf1\x07\xf1\x08\xf1\x09\xf1\x0a\xf1\x0b\xf1\x0c\xf1\x0d\xf1\x0e\xf1\x0f\xf1\x10\xf1\x11\x00\x00", /* 8000 */ NULL, /* 8080 */ NULL, /* 8100 */ NULL, /* 8180 */ NULL, /* 8200 */ NULL, /* 8280 */ NULL, /* 8300 */ NULL, /* 8380 */ NULL, /* 8400 */ NULL, /* 8480 */ NULL, /* 8500 */ NULL, /* 8580 */ NULL, /* 8600 */ NULL, /* 8680 */ NULL, /* 8700 */ NULL, /* 8780 */ NULL, /* 8800 */ NULL, /* 8880 */ NULL, /* 8900 */ NULL, /* 8980 */ NULL, /* 8a00 */ NULL, /* 8a80 */ NULL, /* 8b00 */ NULL, /* 8b80 */ NULL, /* 8c00 */ NULL, /* 8c80 */ NULL, /* 8d00 */ NULL, /* 8d80 */ NULL, /* 8e00 */ NULL, /* 8e80 */ NULL, /* 8f00 */ NULL, /* 8f80 */ NULL, /* 9000 */ NULL, /* 9080 */ NULL, /* 9100 */ NULL, /* 9180 */ NULL, /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ NULL, /* e080 */ NULL, /* e100 */ NULL, /* e180 */ NULL, /* e200 */ NULL, /* e280 */ NULL, /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp935", "0x04380345" /* 1080, 837 */, "gb2312.1980-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-837_P100-2000 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x88\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x44\x46\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x48\x46\x46\x46\x5a\x00\x00\x46\x4c\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x46\x50\x46\x4e\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x46\x54\x46\x52\x00\x00\x46\x59\x00\x00\x00\x00\x00\x00", /* 0100 */ "\x00\x00\x46\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x46\x4b\x00\x00\x46\x4f\x00\x00\x46\x53\x00\x00\x46\x55\x00\x00\x46\x56\x00\x00\x46\x57\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0200 */ NULL, /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x46\x00\x00\x45\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4a\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x8b\x00\x00\x44\xee\x44\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x66\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6b\x00\x00\x00\x00\x45\x77\x44\x4d\x00\x00\x45\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6d\x00\x00\x45\x63\x45\x64\x45\x68\x45\x67\x45\x71\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x45\x62\x45\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x75\x00\x00\x00\x00\x00\x00\x45\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x45\x73\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0", /* 2480 */ "\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2500 */ "\x46\xa4\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x45\x5b\x45\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x59\xba\x4b\xa0\x00\x00\x53\xde\x00\x00\x00\x00\x00\x00\x57\x93\x5b\x69\x54\xfc\x55\x6f\x58\x62\x5c\xa1\x49\xba\x5a\x8c\x00\x00\x5c\xa3\x4a\x94\x00\x00\x5c\x48\x54\x72\x5c\xa6\x55\xbf\x00\x00\x54\x91\x49\x9c\x59\xb4\x4a\xd3\x4b\xaa\x56\x5f\x5c\xa8\x00\x00\x00\x00\x00\x00\x4b\xa9\x00\x00\x51\x5d\x59\x6f\x00\x00\x55\x45\x5c\xac\x00\x00\x4c\xf5\x59\x5e\x62\x7c\x5b\xcf\x00\x00\x00\x00\x4c\x82\x00\x00\x4a\xad\x00\x00\x51\x79\x00\x00\x5c\xbb\x00\x00\x57\x89\x4b\x44\x57\xa9\x5b\xf6\x00\x00\x50\xf5\x4f\xd8\x5c\xae\x00\x00\x00\x00\x00\x00\x52\xca\x00\x00\x4f\xc2\x00\x00\x5c\xb0\x52\x54\x59\xe4\x00\x00\x5b\xad\x57\xd9\x5b\x47\x4d\xf4\x4c\x46\x50\xd5\x00\x00\x53\xb8\x53\x72\x54\x67\x00\x00\x4d\x74\x00\x00\x4a\x6b\x59\xd1\x00\x00\x00\x00\x5c\xbe\x4f\xc4\x53\xf1\x59\xb1\x58\x50\x58\x88\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe8\x00\x00\x00\x00\x5c\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf1\x51\xd1\x00\x00\x54\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x4c\x00\x00", /* 4e80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6b\x00\x00\x5a\x89\x5b\x9a\x00\x00\x55\xc1\x4b\xfd\x5c\xa0\x5a\x7a\x50\x98\x00\x00\x5a\xc5\x4e\x45\x5c\xc0\x57\xe4\x4f\xad\x00\x00\x00\x00\x5c\xa7\x00\x00\x59\x67\x58\xa8\x00\x00\x00\x00\x00\x00\x5c\xbc\x5d\x90\x57\x97\x50\x5a\x00\x00\x4f\x5b\x4d\xa4\x59\xdf\x49\xf9\x4d\xdf\x52\xb5\x00\x00\x58\x8e\x4f\xa8\x57\x44\x51\x61\x00\x00\x00\x00\x00\x00\x54\x77\x5d\x92\x00\x00\x5d\x95\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x5c\xe8\x00\x00\x00\x00\x00\x00\x59\xd9\x55\xb1\x54\xc9\x5c\xeb\x5c\xe9\x5c\xc5\x4f\x97\x53\xcc\x4a\x91\x00\x00\x5c\xea\x4f\x92\x4f\x8a\x00\x00\x54\xd3\x4a\xd2\x00\x00\x00\x00\x51\xd7\x00\x00\x49\xd5\x5c\x70\x55\xca\x56\x9c\x5b\x6c\x4c\xb5\x58\x69\x00\x00\x00\x00\x00\x00\x5d\x7a\x5c\xef\x54\x4a\x00\x00\x5c\xed\x00\x00\x4a\xf9\x51\x8f\x59\xd3\x00\x00\x00\x00\x5c\xec\x00\x00\x59\xc6\x5c\xee\x52\x67\x00\x00\x00\x00\x00\x00\x59\x97\x00\x00\x5b\xd8\x5c\xf1\x00\x00\x5c\xf4\x4e\xfd\x4e\xda\x00\x00\x00\x00\x00\x00\x54\xcd\x00\x00\x4c\x7d\x00\x00\x4c\x62", /* 4f00 */ "\x00\x00\x53\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf7\x59\xc0\x00\x00\x00\x00\x57\xe8\x4e\xbe\x4c\x9d\x4c\x45\x58\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd9\x5a\x65\x4e\x90\x4e\x82\x5c\xf0\x00\x00\x00\x00\x55\x41\x57\xaf\x4a\xaa\x00\x00\x5c\xf2\x00\x00\x55\x6b\x5c\xf5\x51\xd6\x5c\xf6\x00\x00\x00\x00\x57\xb0\x5c\xf8\x00\x00\x00\x00\x00\x00\x49\xad\x4d\x60\x00\x00\x5d\x43\x00\x00\x48\xe8\x00\x00\x51\x87\x00\x00\x55\x8d\x00\x00\x56\x65\x00\x00\x56\x66\x5d\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x89\x00\x00\x00\x00\x4b\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xba\x4b\x6d\x5c\x41\x5c\x95\x5a\x73\x00\x00\x56\xe4\x00\x00\x4d\xcd\x00\x00\x5d\x42\x5d\x7c\x5a\x81\x5c\xfc\x4c\x91\x5c\x98\x5c\xfd\x5c\xf9\x5d\x41\x52\xe2\x00\x00\x00\x00\x5a\x56\x5c\xf3\x5d\x7d\x00\x00\x5c\xfa\x00\x00\x53\x86\x00\x00\x00\x00\x50\xcf\x00\x00\x00\x00\x59\x91\x48\xda\x00\x00\x00\x00\x4e\xd0\x5d\x46\x00\x00\x5d\x45\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x4c\x5d\x4e\x00\x00\x5d\x4b\x55\xb8", /* 4f80 */ "\x00\x00\x00\x00\x00\x00\x5d\x49\x5b\xb5\x00\x00\x00\x00\x00\x00\x4a\x7e\x5d\x48\x00\x00\x50\xfc\x00\x00\x55\xcb\x00\x00\x5d\x4a\x00\x00\x5d\x47\x00\x00\x00\x00\x5d\x50\x00\x00\x00\x00\x4b\xb0\x00\x00\x00\x00\x00\x00\x4d\x49\x00\x00\x59\xbf\x00\x00\x00\x00\x58\x60\x00\x00\x00\x00\x51\xc1\x00\x00\x4f\x64\x5b\x8d\x49\xdf\x54\x68\x50\x8c\x5d\x4d\x00\x00\x5d\x4f\x00\x00\x57\xe9\x4d\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x84\x00\x00\x00\x00\x00\x00\x4a\xd8\x4b\xec\x5d\x54\x00\x00\x00\x00\x00\x00\x00\x00\x50\x41\x00\x00\x00\x00\x00\x00\x5d\x7e\x54\x6e\x50\xfd\x5d\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x77\x4c\x9e\x00\x00\x5d\x55\x00\x00\x5d\x57\x49\x43\x5a\x82\x5d\x59\x00\x00\x58\xc4\x00\x00\x5d\x56\x00\x00\x00\x00\x5d\x51\x00\x00\x5d\x52\x51\x49\x5d\x53\x00\x00\x00\x00\x4e\xf2\x58\xdd\x4c\xa8\x00\x00\x4f\xe2\x00\x00\x5d\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5a\x00\x00\x48\xb2\x00\x00\x00\x00\x00\x00\x5d\x62\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x64\x49\x56\x00\x00\x5d\x5f\x00\x00\x00\x00\x4b\x59\x00\x00\x4f\xf2\x00\x00\x00\x00\x00\x00\x56\xc7\x4d\xf1\x59\xcf\x00\x00\x5d\x63\x00\x00\x00\x00\x4f\x89\x00\x00\x4a\x4b\x00\x00\x00\x00\x00\x00\x5d\x65\x4f\xea\x00\x00\x5d\x66\x5d\x5b\x52\xde\x00\x00\x5d\x5e\x5d\x61\x5d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4e\x00\x00\x5b\xb4\x00\x00\x54\x84\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x68\x00\x00\x00\x00\x00\x00\x4e\xd8\x5d\x6a\x00\x00\x00\x00\x00\x00\x5d\x5c\x00\x00\x5d\x6b\x53\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x97\x00\x00\x57\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x5c\x57\x55\x00\x00\x00\x00\x00\x00\x5d\x6d\x00\x00\x00\x00\x5d\x67\x4a\x45", /* 5080 */ "\x50\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb4\x00\x00\x00\x00\x50\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf5\x00\x00\x5d\x6e\x00\x00\x5d\x6f\x4a\xa1\x5d\x70\x00\x00\x00\x00\x4a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x71\x55\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x72\x00\x00\x00\x00\x00\x00\x51\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x76\x55\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x75\x5d\x74\x5d\x77\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7b\x00\x00\x4f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa6\x00\x00\x00\x00\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x73\x5d\x78\x00\x00\x00\x00\x00\x00\x5d\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf8\x5c\xa2\x5a\xc9\x00\x00\x5a\xa9\x58\xd5\x4a\x85\x5b\x77\x00\x00\x58\x68\x4d\x83\x00\x00\x50\x6b\x00\x00\x52\x83\x00\x00\x00\x00\x00\x00\x4b\xd1\x00\x00\x00\x00\x57\x63\x5d\x8f\x5d\x91\x00\x00\x00\x00\x00\x00\x4b\x53\x00\x00\x4b\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa3\x00\x00\x00\x00\x54\xea\x00\x00\x00\x00\x54\xaa\x00\x00\x00\x00\x48\xca\x4d\x4b\x51\x9a\x5d\x83\x00\x00\x50\xbb\x4d\x52\x00\x00\x4d\x78\x58\xca\x49\x99\x53\xe3\x4f\xde\x4b\x85\x5c\x68\x00\x00\x59\x99\x4e\xe5\x55\xdd\x00\x00\x00\x00", /* 5180 */ "\x4e\xbc\x5d\x87\x5c\xe6\x00\x00\x00\x00\x52\xd9\x00\x00\x00\x00\x4c\xd3\x54\xbc\x00\x00\x00\x00\x49\xe0\x5a\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x52\x50\x00\x00\x00\x00\x52\x82\x5d\xa1\x54\xde\x00\x00\x58\xb3\x00\x00\x4f\xfb\x53\x49\x00\x00\x00\x00\x00\x00\x4d\x7a\x00\x00\x5d\xa2\x00\x00\x5a\xa8\x5d\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9c\x4b\xab\x00\x00\x00\x00\x4c\x8c\x49\x9a\x5d\x9d\x4a\x86\x4f\xf5\x00\x00\x50\x97\x59\xb0\x50\xe3\x00\x00\x00\x00\x00\x00\x4b\xb2\x5d\x9f\x5d\x9e\x00\x00\x00\x00\x4f\xba\x00\x00\x00\x00\x00\x00\x53\xdf\x00\x00\x5c\x5c\x5d\xa0\x00\x00\x51\x59\x00\x00\x4b\x93\x51\x89\x00\x00\x00\x00\x4e\xf4\x00\x00\x4a\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x7d\x00\x00\x52\xfc\x00\x00\x00\x00\x4e\xb7\x4c\x52\x00\x00\x00\x00\x4c\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8d\x00\x00\x53\xbd\x00\x00\x50\x4d\x4e\x6b\x00\x00\x00\x00\x4b\x6a\x00\x00\x5e\x69\x58\xd6\x00\x00\x57\x59\x48\xbb\x4a\x97\x4e\x98\x5e\x6a\x4d\xae\x00\x00\x5a\xe3", /* 5200 */ "\x4b\x56\x4b\x94\x5c\xd5\x54\xcf\x00\x00\x00\x00\x4c\x76\x54\x70\x5c\xd6\x00\x00\x50\x4f\x00\x00\x00\x00\x5e\x5b\x5c\xd7\x00\x00\x00\x00\x58\xcb\x4e\x4e\x00\x00\x00\x00\x00\x00\x66\x5e\x51\x70\x51\x96\x5a\xf1\x4c\xd4\x4a\xb3\x00\x00\x4a\x96\x00\x00\x00\x00\x55\x5e\x00\x00\x00\x00\x00\x00\x53\x70\x00\x00\x00\x00\x00\x00\x53\x79\x50\xfa\x00\x00\x49\x91\x00\x00\x5c\xd8\x4d\x6e\x00\x00\x4b\x5d\x00\x00\x00\x00\x5c\xd9\x00\x00\x00\x00\x5b\xc5\x56\x42\x54\xae\x55\x52\x4a\xcb\x50\x6c\x00\x00\x4d\x95\x00\x00\x5c\xda\x5c\xdb\x4b\xe6\x4e\xc0\x56\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x98\x00\x00\x5c\xdc\x54\x50\x00\x00\x00\x00\x4d\x70\x4f\x43\x00\x00\x00\x00\x56\xdd\x00\x00\x53\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdf\x00\x00\x5c\xdd\x00\x00\x00\x00\x5c\xde\x00\x00\x00\x00\x00\x00\x48\xfd\x00\x00\x4f\xe6\x00\x00\x55\xa2\x4e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb0\x00\x00\x00\x00\x4c\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe1\x00\x00\x4f\x6b", /* 5280 */ "\x00\x00\x5c\xe3\x5c\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe4\x00\x00\x00\x00\x5c\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x46\x00\x00\x54\xaf\x48\xeb\x4d\x46\x4e\xd2\x57\xf0\x5e\x5d\x51\x73\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xae\x5b\xf9\x53\x4c\x4f\x79\x5e\x5e\x5e\x5f\x00\x00\x00\x00\x00\x00\x50\xf7\x4f\xa1\x50\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x60\x55\xc5\x00\x00\x00\x00\x00\x00\x49\xa9\x00\x00\x00\x00\x00\x00\x5a\x62\x00\x00\x52\x84\x00\x00\x59\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x62\x00\x00\x50\xd4\x00\x00\x00\x00\x00\x00\x5e\x63\x00\x00\x50\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x89\x55\x77\x00\x00\x00\x00\x00\x00\x4d\x54\x57\xef", /* 5300 */ "\x5a\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x48\xfb\x4a\xd1\x00\x00\x58\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8a\x00\x00\x5f\xca\x5d\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xaf\x4e\x4f\x49\x51\x00\x00\x4a\x77\x5c\xcd\x00\x00\x00\x00\x5a\xd0\x00\x00\x00\x00\x4f\x53\x50\x90\x00\x00\x58\x5b\x00\x00\x00\x00\x5c\xcf\x00\x00\x00\x00\x00\x00\x4c\x6b\x00\x00\x00\x00\x00\x00\x5c\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa4\x54\x99\x59\xbc\x00\x00\x00\x00\x5c\xd1\x52\xe3\x00\x00\x55\xad\x00\x00\x54\x47\x00\x00\x5c\xa5\x00\x00\x55\x9e\x57\xe6\x4e\x7c\x48\xea\x00\x00\x00\x00\x00\x00\x4e\x4a\x58\xac\x00\x00\x49\x50\x5c\x85\x5c\x5f\x00\x00\x4b\x45\x51\xf3\x52\xce\x00\x00\x00\x00\x49\xa8\x00\x00\x49\xb6\x00\x00\x49\x86\x60\x52\x5b\x5c\x50\x48\x51\xab\x5c\xd4\x51\xb0\x00\x00\x5c\xd3\x57\xd3\x00\x00\x5d\xdf\x00\x00\x57\xbf\x00\x00\x00\x00\x5c\xb3\x52\x4e\x5a\x41\x57\xa2\x00\x00\x4e\xb3\x54\xb3\x51\xd0\x00\x00\x4f\xec\x58\xb5\x00\x00\x5d\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x54\x85", /* 5380 */ "\x00\x00\x00\x00\x4a\x47\x00\x00\x4b\xf1\x56\xfb\x50\xf9\x00\x00\x00\x00\x50\xf6\x00\x00\x59\x59\x59\x82\x5c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xdd\x00\x00\x00\x00\x50\xe4\x00\x00\x4d\xf0\x00\x00\x00\x00\x5c\xc7\x00\x00\x5a\xac\x00\x00\x00\x00\x58\x82\x5c\xc8\x00\x00\x5c\xc9\x58\x63\x00\x00\x4a\x99\x4f\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa4\x00\x00\x00\x00\x00\x00\x58\x78\x00\x00\x54\xfd\x49\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x76\x49\xe5\x4e\xaf\x5a\x71\x56\x4b\x4c\x54\x00\x00\x00\x00\x00\x00\x4c\x42\x00\x00\x00\x00\x55\xe4\x00\x00\x54\xa0\x55\xdb\x49\x85\x58\xef\x00\x00\x53\x71\x00\x00\x00\x00\x00\x00\x5e\x65\x4b\x9f\x00\x00\x00\x00\x50\x7a\x4d\x65\x4f\xe3\x51\x8e\x00\x00\x60\x56\x60\x55\x5b\xba\x4f\x70\x5b\x79\x48\xc7\x4b\xa2\x50\x69\x56\xa7\x60\x53\x55\xb6\x5a\x72\x00\x00\x5c\xce\x59\xb5\x4d\xc4\x56\x5e\x56\xbd\x00\x00\x60\x57\x4b\x91\x60\x54\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x5a\x96\x00\x00\x4a\x74\x4c\xf6\x00\x00\x60\x5a\x00\x00\x4d\xce\x4e\xa9\x4b\x96\x00\x00\x57\x4c\x52\x9c\x4d\xf2\x50\xf3\x57\x62\x58\x93\x60\x58\x58\x65\x00\x00\x51\xbf\x60\x59\x51\xef\x00\x00\x00\x00\x00\x00\x4f\xfc\x00\x00\x51\x7f\x57\x6c\x59\xf6\x4c\x6d\x60\x61\x00\x00\x60\x64\x00\x00\x00\x00\x4c\x92\x48\xc8\x4b\xd5\x4c\x74\x00\x00\x4d\xab\x56\xfc\x50\x74\x56\x51\x53\xf3\x00\x00\x5b\xa7\x60\x65\x00\x00\x57\xe1\x4a\x53\x00\x00\x00\x00\x57\xfb\x4a\xb4\x00\x00\x57\xc6\x4d\xef\x00\x00\x57\xe0\x00\x00\x59\x5d\x00\x00\x00\x00\x60\x60\x00\x00\x00\x00\x4a\xf3\x00\x00\x4a\x6a\x00\x00\x4c\xe5\x60\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc4\x00\x00\x60\x5c\x60\x5d\x60\x5e\x53\x5b\x60\x5f\x60\x62\x5a\xb0\x60\x63\x00\x00\x54\x5a\x57\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd7\x00\x00\x60\x6a\x00\x00\x60\x6f\x00\x00\x5b\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x69\x60\x7a\x57\xb5\x00\x00\x4d\xc6\x60\x6e\x60\x68\x53\x7e\x00\x00\x00\x00\x55\x8c\x4d\xf3\x52\x9d\x00\x00\x00\x00", /* 5480 */ "\x4f\xd6\x00\x00\x60\x66\x00\x00\x60\x6d\x00\x00\x53\x78\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x46\x4d\xcc\x00\x00\x4f\xcb\x5a\x5d\x4c\xbf\x00\x00\x5b\xe3\x00\x00\x60\x67\x4d\x5e\x50\x47\x00\x00\x00\x00\x51\x9d\x60\x6b\x60\x6c\x00\x00\x60\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x7b\x60\x86\x00\x00\x60\x77\x60\x76\x5c\x69\x60\x84\x60\x85\x63\x8c\x59\xa6\x60\x72\x00\x00\x50\x49\x00\x00\x5a\xda\x00\x00\x50\x68\x60\x74\x00\x00\x00\x00\x00\x00\x58\x6c\x00\x00\x00\x00\x60\x7d\x00\x00\x59\x6a\x00\x00\x60\x7e\x48\xa6\x53\xb6\x60\x73\x00\x00\x4d\xe4\x00\x00\x4b\xde\x57\x7b\x4d\x9f\x5a\xd4\x00\x00\x00\x00\x60\x7f\x58\x8d\x48\xa4\x60\x88\x60\x71\x59\x66\x60\x75\x60\x78\x60\x79\x60\x7c\x00\x00\x4e\x49\x00\x00\x60\x81\x60\x82\x00\x00\x60\x83\x60\x87\x60\x89\x5a\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe6\x53\x56\x60\x8b\x55\x7a\x51\x48\x52\xc3\x00\x00\x00\x00\x50\x7e\x58\x99\x00\x00\x00\x00\x00\x00\x5b\x7c\x60\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb7\x00\x00\x4d\xde\x60\x8d\x00\x00\x5e\x61", /* 5500 */ "\x00\x00\x59\x85\x00\x00\x00\x00\x00\x00\x00\x00\x56\x95\x4a\xbc\x00\x00\x48\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x92\x56\xc5\x60\x93\x00\x00\x00\x00\x60\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8c\x00\x00\x60\x90\x60\x91\x4e\x5d\x00\x00\x00\x00\x60\x94\x00\x00\x00\x00\x60\x95\x00\x00\x4e\x43\x00\x00\x55\xda\x57\xa7\x60\xa6\x4a\x4a\x00\x00\x60\xa5\x00\x00\x00\x00\x00\x00\x60\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9f\x00\x00\x57\x79\x60\x9d\x00\x00\x60\x9b\x00\x00\x50\x70\x5c\x64\x00\x00\x55\x6c\x00\x00\x00\x00\x60\x99\x48\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9c\x60\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x68\x00\x00\x00\x00\x53\xa0\x55\x56\x50\xb1\x60\x96\x00\x00\x00\x00\x53\x5e\x00\x00\x5c\xc3\x60\x9a\x52\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xa2\x60\xa3\x60\xa4\x58\xa4\x00\x00\x00\x00\x60\xb3\x56\xe3\x00\x00\x60\xb0\x00\x00", /* 5580 */ "\x50\x46\x60\xae\x57\xb8\x60\xaa\x55\x66\x00\x00\x00\x00\x50\xad\x60\xad\x4d\xec\x4d\xaf\x60\xa8\x00\x00\x00\x00\x00\x00\x60\x97\x00\x00\x60\xb2\x00\x00\x00\x00\x60\xb7\x00\x00\x00\x00\x00\x00\x4a\xac\x60\xb8\x00\x00\x00\x00\x58\x52\x4d\xc7\x00\x00\x60\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xab\x00\x00\x5a\xfa\x00\x00\x60\x98\x00\x00\x53\x88\x00\x00\x60\xac\x00\x00\x5a\x98\x00\x00\x60\xb5\x60\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc3\x58\xe0\x00\x00\x00\x00\x00\x00\x60\xbb\x00\x00\x00\x00\x60\xc8\x60\xc9\x00\x00\x00\x00\x00\x00\x60\xbd\x60\xa9\x55\x44\x60\xc0\x00\x00\x60\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc7\x60\xc2\x00\x00\x60\xb4\x00\x00\x57\xca\x00\x00\x56\x63\x60\xcc\x60\xc5\x60\xc1\x00\x00\x60\xca\x00\x00\x60\xb9\x60\xbe\x60\xbf\x00\x00\x00\x00\x60\xc4\x00\x00\x00\x00\x60\xc6\x60\xc7\x00\x00\x60\xcb\x00\x00\x60\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x74\x60\xd4\x00\x00", /* 5600 */ "\x60\xd5\x60\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcf\x4e\xcd\x00\x00\x00\x00\x60\xd0\x00\x00\x4c\xc1\x5c\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe9\x00\x00\x00\x00\x51\xee\x00\x00\x00\x00\x60\xce\x60\xbc\x00\x00\x00\x00\x00\x00\x60\xd3\x60\xd2\x00\x00\x00\x00\x60\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x60\xdb\x60\xd7\x00\x00\x00\x00\x00\x00\x5b\xf5\x4a\x50\x00\x00\x5c\x8d\x00\x00\x56\x5b\x00\x00\x00\x00\x60\xd9\x00\x00\x57\xfa\x00\x00\x00\x00\x00\x00\x4d\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe0\x60\xdc\x59\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe1\x00\x00\x00\x00\x60\xda\x60\xd8\x60\xde\x00\x00\x00\x00\x60\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xdd\x00\x00\x60\xe3\x00\x00\x00\x00\x00\x00\x53\xf6\x5c\xab\x5a\xea\x60\xe5\x55\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe6\x60\xe7\x00\x00\x00\x00\x00\x00", /* 5680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe8\x60\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xbe\x56\xe6\x00\x00\x00\x00\x00\x00\x60\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xeb\x00\x00\x00\x00\x60\xec\x00\x00\x00\x00\x54\x95\x56\x64\x00\x00\x60\xed\x4e\x78\x5c\xb5\x59\xf1\x60\xee\x57\x65\x00\x00\x4b\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf0\x00\x00\x5a\xaf\x00\x00\x00\x00\x50\xa6\x4a\xd0\x00\x00\x00\x00\x57\xa6\x60\xef\x00\x00\x00\x00\x00\x00\x60\xf1\x4d\x6c\x00\x00\x00\x00\x4d\x9b\x57\x5c\x60\xf2", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x53\xd3\x60\xf3\x00\x00\x5a\xb1\x00\x00\x54\xa5\x60\xf5\x60\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf6\x00\x00\x00\x00\x57\x61\x00\x00\x00\x00\x00\x00\x55\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd9\x5e\x77\x5e\x79\x00\x00\x5e\x78\x4d\x88\x5e\x7c\x5e\x7d\x4b\x78\x00\x00\x00\x00\x5e\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7b\x4a\x41\x5e\x7f\x00\x00\x00\x00\x4e\x99\x00\x00\x5b\xb6\x00\x00\x5e\x81\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf8\x00\x00\x00\x00\x4c\x5b\x00\x00\x5e\x70\x56\xad\x50\x52\x4e\x55\x5c\x99\x50\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8a\x00\x00\x00\x00\x4e\xe0\x56\xb2\x5e\x7e\x48\xd2\x57\xea\x4c\x78\x5c\x59\x53\xc1\x00\x00\x00\x00\x50\xa3\x00\x00\x56\xb8\x00\x00\x5e\x88\x5e\x82\x53\xb9\x5e\x84\x00\x00\x5e\x89\x00\x00\x53\x98\x00\x00\x00\x00\x00\x00\x5e\x8b\x00\x00\x00\x00\x5e\x8a\x50\x60\x00\x00\x00\x00\x00\x00\x5e\x87\x5e\x86\x00\x00\x00\x00\x00\x00", /* 5780 */ "\x00\x00\x00\x00\x4a\xb8\x50\xab\x51\xa1\x5e\x83\x5e\x85\x00\x00\x00\x00\x00\x00\x00\x00\x58\xcc\x5e\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdc\x5e\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x94\x5e\x72\x4d\x58\x5a\xaa\x5e\x8d\x00\x00\x50\x71\x5e\x91\x00\x00\x5e\x71\x00\x00\x4b\x87\x00\x00\x5e\x8c\x50\x86\x00\x00\x00\x00\x00\x00\x5e\x8f\x00\x00\x5e\x92\x00\x00\x00\x00\x00\x00\x5e\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x41\x48\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf0\x00\x00\x00\x00\x4a\x67\x5e\x90\x00\x00\x00\x00\x5e\x99\x00\x00\x53\xd1\x5e\x95\x00\x00\x00\x00\x5e\x96\x5e\x98\x5e\x97\x00\x00\x00\x00\x5e\x9f\x00\x00\x5a\x93\x49\xb9\x00\x00\x00\x00\x00\x00\x5e\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa3\x00\x00\x5e\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9b\x00\x00\x00\x00\x00\x00\x5e\x9d\x53\x81\x4e\x9a\x00\x00\x00\x00\x5e\xa2\x00\x00\x00\x00", /* 5800 */ "\x5e\xa4\x00\x00\x56\xc2\x00\x00\x00\x00\x00\x00\x4b\xd0\x5f\x60\x00\x00\x00\x00\x00\x00\x5e\xa0\x00\x00\x5e\xa1\x00\x00\x00\x00\x00\x00\x54\x55\x00\x00\x00\x00\x00\x00\x4b\xe8\x00\x00\x00\x00\x00\x00\x5e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa5\x00\x00\x5e\xa8\x49\x44\x00\x00\x00\x00\x4b\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x9b\x66\x94\x00\x00\x00\x00\x00\x00\x56\x7c\x00\x00\x00\x00\x56\x9f\x00\x00\x00\x00\x00\x00\x56\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xed\x5e\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x73\x00\x00", /* 5880 */ "\x5e\xae\x5e\xab\x00\x00\x4f\xb2\x00\x00\x55\xfa\x00\x00\x00\x00\x00\x00\x5e\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6a\x52\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x5d\x5e\xad\x00\x00\x00\x00\x00\x00\x5a\xf5\x58\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xaa\x4b\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x74\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7a\x00\x00\x00\x00\x00\x00\x5e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x76\x00\x00\x00\x00\x00\x00\x4d\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbe\x54\xc8\x00\x00\x5c\x53\x00\x00\x55\x9a\x00\x00\x00\x00\x50\x67\x00\x00\x00\x00\x4d\xf7\x00\x00\x00\x00\x59\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x61\xb9\x00\x00\x4a\xa5\x00\x00\x00\x00\x49\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb3\x00\x00\x58\x64\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x88\x58\x46\x57\x83\x00\x00\x00\x00\x5d\x8e\x4b\xdf\x00\x00\x59\xb8\x00\x00\x00\x00\x4d\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb8\x61\xb6\x00\x00\x4a\xf2\x00\x00\x56\xeb\x56\xaa\x4c\x93\x00\x00\x5c\xb1\x59\x8c\x4d\xba\x00\x00\x55\xa6\x00\x00\x00\x00\x57\x57\x00\x00\x00\x00\x59\xc3\x50\x85\x4e\xcf\x4b\xe0\x00\x00\x5f\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc5\x5e\x5c\x00\x00\x59\x79\x00\x00\x00\x00\x53\xe5\x52\xcd\x4c\x8f\x00\x00\x4c\x7c\x00\x00\x00\x00\x50\x9d\x5c\x81\x00\x00\x53\xf4\x00\x00\x00\x00\x49\x5c\x5f\xc7\x4f\x51\x56\xd6\x5f\xc9\x00\x00\x5f\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8d\x00\x00\x55\x7d\x00\x00\x00\x00\x48\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4e\x53\x4b\x00\x00\x52\xcb\x00\x00\x4e\xe8\x56\x9e\x00\x00\x00\x00\x00\x00\x4d\xc2\x00\x00\x00\x00", /* 5980 */ "\x00\x00\x63\x9a\x54\xe6\x63\x9b\x57\x9e\x00\x00\x5c\x51\x4c\xbd\x51\xe7\x00\x00\x54\xd0\x00\x00\x00\x00\x63\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc9\x4e\xca\x00\x00\x00\x00\x59\x9e\x63\xa0\x00\x00\x52\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9f\x63\xa4\x57\x77\x00\x00\x00\x00\x4c\x61\x63\x9d\x63\x9e\x63\xa2\x00\x00\x00\x00\x52\xdc\x63\xa7\x00\x00\x00\x00\x63\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x63\x00\x00\x53\xdd\x00\x00\x00\x00\x63\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb6\x00\x00\x00\x00\x00\x00\x63\xa1\x55\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x84\x4d\x63\x63\xa5\x58\xd4\x57\xae\x00\x00\x00\x00\x63\xa8\x63\xaf\x00\x00\x59\xa5\x00\x00\x4f\x4a\x63\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xae\x00\x00\x50\xd0\x00\x00\x00\x00\x59\xcb\x00\x00\x00\x00\x00\x00\x4e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb0\x00\x00\x59\xf5\x00\x00\x00\x00\x00\x00\x5c\x6b", /* 5a00 */ "\x00\x00\x57\x9f\x00\x00\x57\x7e\x51\xa5\x63\xaa\x63\xab\x4f\x5f\x63\xad\x63\xb2\x00\x00\x00\x00\x63\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb5\x00\x00\x63\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x52\xee\x00\x00\x00\x00\x00\x00\x52\xc7\x00\x00\x00\x00\x4f\xe9\x55\x90\x00\x00\x00\x00\x63\xb6\x00\x00\x4b\xef\x00\x00\x00\x00\x00\x00\x52\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8a\x63\xb3\x00\x00\x63\xb4\x00\x00\x54\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbc\x00\x00\x00\x00\x00\x00\x63\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc4\x00\x00\x00\x00\x57\x92\x63\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb9\x00\x00\x00\x00\x50\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x44\x63\xbe\x55\x95\x63\xc2\x00\x00\x00\x00\x63\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf5", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x64\x63\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc6\x58\x51\x00\x00\x66\x95\x00\x00\x00\x00\x63\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc4\x00\x00\x00\x00\x4e\xdd\x55\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb4\x00\x00\x00\x00\x58\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc7\x00\x00\x63\xc8\x00\x00\x63\xcd\x00\x00\x63\xcf\x00\x00\x00\x00\x00\x00\x63\xd0\x00\x00\x00\x00\x00\x00\x63\xca\x4b\x75\x00\x00\x63\xcb\x00\x00\x00\x00\x63\xce\x00\x00\x00\x00\x52\xda\x00\x00\x63\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd3\x63\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd4\x00\x00\x5d\x99\x00\x00\x00\x00\x63\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x73\x63\xdc\x00\x00\x63\xdd\x50\x77\x5a\xcf\x00\x00\x5c\x76\x4a\xe5\x56\x90\x63\xd9\x5c\xc2\x5c\x6e\x58\xa1\x00\x00\x52\x6f\x00\x00\x00\x00\x63\xde\x4e\xbd\x4d\x62\x63\xda\x59\x47\x00\x00\x00\x00\x4d\xa1\x51\xce\x00\x00\x5c\xaa\x00\x00\x00\x00\x00\x00\x55\xea\x63\x8f\x00\x00\x63\xdb\x00\x00\x4c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe5\x00\x00\x00\x00\x52\xf4\x00\x00\x00\x00", /* 5b80 */ "\x63\x52\x52\xfd\x00\x00\x56\x9d\x63\x53\x5b\x4c\x00\x00\x5a\x8f\x55\xd7\x48\xb1\x00\x00\x56\x6e\x57\x8b\x00\x00\x00\x00\x4d\xe9\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x63\x54\x00\x00\x5c\x7a\x4d\x79\x5b\xe5\x4b\xa7\x57\x91\x59\xca\x49\x46\x55\xb4\x00\x00\x4a\x89\x55\x94\x50\x6d\x58\xfa\x55\xd1\x63\x56\x4e\x62\x00\x00\x00\x00\x00\x00\x58\x7c\x4d\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd6\x00\x00\x00\x00\x4d\xa5\x59\x88\x58\x9d\x4e\xd1\x00\x00\x63\x57\x54\xdc\x00\x00\x00\x00\x00\x00\x50\x8e\x49\x97\x56\x7e\x00\x00\x00\x00\x4e\xc4\x00\x00\x4e\xc3\x59\xf9\x52\x7c\x50\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xba\x00\x00\x00\x00\x00\x00\x52\x62\x00\x00\x4d\xad\x5a\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7e\x52\xae\x49\xeb\x00\x00\x4d\x71\x00\x00\x00\x00\x63\x5b\x51\x68\x00\x00\x00\x00\x5b\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5c\x00\x00\x63\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xe6\x4b\xd3\x56\x62\x59\x50\x4b\x5c\x00\x00\x00\x00\x55\xd8", /* 5c00 */ "\x00\x00\x4c\x83\x00\x00\x00\x00\x55\x85\x00\x00\x4f\x4b\x00\x00\x00\x00\x57\xbd\x5c\x91\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa0\x00\x00\x55\x79\x00\x00\x00\x00\x4b\xfa\x63\xd7\x4e\xe1\x00\x00\x4a\x5e\x00\x00\x55\x70\x00\x00\x63\xd8\x4a\x42\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcb\x00\x00\x5a\x68\x5f\xcc\x00\x00\x59\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcc\x00\x00\x00\x00\x5f\xce\x00\x00\x00\x00\x00\x00\x55\xab\x59\xfb\x4a\x7f\x63\x8b\x52\xe0\x4f\xa0\x57\xb1\x52\xf1\x4f\xd5\x53\xa7\x49\xe2\x00\x00\x00\x00\x4f\xd2\x00\x00\x00\x00\x54\x9d\x56\xea\x4f\x8d\x57\xdc\x00\x00\x00\x00\x55\xb9\x53\xc0\x63\x8d\x58\xbb\x00\x00\x00\x00\x00\x00\x5b\x59\x00\x00\x00\x00\x00\x00\x63\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf3\x00\x00\x57\x60\x51\xc4\x00\x00\x63\x90\x00\x00\x51\xc3\x63\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x99\x57\x6d\x00\x00\x55\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd8\x61\x48\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8d", /* 5c80 */ "\x00\x00\x56\x8b\x53\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x4c\x00\x00\x00\x00\x00\x00\x61\x47\x61\x49\x00\x00\x00\x00\x61\x4a\x61\x4f\x00\x00\x00\x00\x49\xec\x00\x00\x61\x4b\x4c\xd9\x61\x4d\x61\x4e\x61\x50\x4b\x5a\x61\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x53\x61\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x72\x00\x00\x61\x56\x61\x55\x51\x8c\x00\x00\x00\x00\x00\x00\x61\x57\x00\x00\x5a\xbf\x00\x00\x61\x52\x00\x00\x61\x5a\x48\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x61\x54\x00\x00\x50\x9a\x00\x00\x61\x59\x00\x00\x00\x00\x61\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5f\x00\x00\x00\x00\x61\x5d\x61\x5f\x51\xcc\x00\x00\x4b\xea\x00\x00\x5a\x99\x00\x00\x00\x00\x54\x6d\x00\x00\x00\x00\x4c\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xfd\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x61\x60\x61\x61\x00\x00\x00\x00\x61\x67\x4a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xdd\x00\x00\x59\x62\x00\x00\x00\x00\x00\x00\x00\x00\x61\x68\x00\x00\x00\x00\x61\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x65\x00\x00\x61\x63\x61\x62\x00\x00\x49\x60\x00\x00\x00\x00\x00\x00\x5b\x58\x61\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6c\x61\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x9b\x00\x00\x00\x00\x61\x73\x61\x72\x54\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x69\x00\x00\x00\x00\x61\x6e\x00\x00\x61\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x74\x00\x00\x61\x71\x61\x6d\x00\x00\x00\x00\x61\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x61\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d80 */ "\x00\x00\x00\x00\x61\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x77\x00\x00\x00\x00\x00\x00\x61\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7d\x00\x00\x4a\xa7\x5b\xdc\x00\x00\x00\x00\x59\x52\x4a\x52\x00\x00\x00\x00\x4d\x44\x5c\x94\x54\x69\x4f\xdd\x4d\x4e\x00\x00\x57\xd6\x00\x00\x00\x00\x49\xed\x5e\x6f\x00\x00\x4e\xb9\x59\xd0\x56\x68\x48\xcc\x00\x00\x00\x00\x58\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x84\x4f\x8e\x00\x00", /* 5e00 */ "\x00\x00\x49\x72\x55\xcf\x49\xbb\x00\x00\x56\x47\x4c\x4b\x00\x00\x55\xa5\x00\x00\x00\x00\x00\x00\x58\x43\x00\x00\x00\x00\x60\xf7\x5b\x6a\x60\xfa\x00\x00\x00\x00\x60\xf9\x53\x61\x56\xfa\x00\x00\x51\x51\x60\xf8\x5b\xe2\x49\xae\x5b\xc3\x4b\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf7\x5b\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x4f\x48\xee\x00\x00\x00\x00\x60\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x41\x4a\x43\x00\x00\x00\x00\x60\xfc\x60\xfd\x52\x51\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7d\x00\x00\x61\x42\x4c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x43\x52\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x44\x00\x00\x00\x00\x61\x45\x00\x00\x00\x00\x61\x46\x4a\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc8\x53\xbc\x52\xe9\x00\x00\x49\xa1\x00\x00\x58\xd1\x00\x00\x64\x7b\x4e\x63\x5a\x77\x5a\x64\x00\x00\x4d\x84", /* 5e80 */ "\x61\xce\x00\x00\x00\x00\x00\x00\x5c\x4f\x00\x00\x54\x8d\x49\x73\x00\x00\x00\x00\x4a\xb1\x61\xd0\x00\x00\x00\x00\x00\x00\x58\xf1\x51\xad\x61\xcf\x00\x00\x50\x83\x5a\x46\x4b\x77\x61\xd1\x4b\x8b\x00\x00\x52\x8e\x4c\xfc\x00\x00\x4c\xad\x00\x00\x53\x73\x4c\x6f\x61\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd2\x4b\xc7\x5c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd7\x00\x00\x61\xd5\x55\xfb\x50\x55\x5a\x59\x61\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4e\x50\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xda\x61\xd9\x50\xa9\x00\x00\x00\x00\x51\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdc\x00\x00\x61\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x68\x00\x00\x59\x73\x57\x42\x00\x00\x00\x00\x4f\x48\x00\x00\x00\x00\x00\x00\x5f\xc2\x5c\xa4", /* 5f00 */ "\x50\x4a\x5e\x6d\x59\xeb\x53\xf9\x53\x4a\x00\x00\x00\x00\x00\x00\x5f\xc3\x00\x00\x49\x77\x60\x4e\x00\x00\x00\x00\x00\x00\x55\xbc\x00\x00\x60\x51\x00\x00\x4d\x4d\x00\x00\x59\xfc\x00\x00\x4c\xa4\x4d\xea\x00\x00\x00\x00\x4a\x7a\x00\x00\x00\x00\x00\x00\x4b\x7c\x5b\x65\x00\x00\x00\x00\x00\x00\x00\x00\x52\x76\x58\x72\x4e\x41\x00\x00\x63\x94\x63\x93\x00\x00\x00\x00\x63\x95\x00\x00\x57\x85\x00\x00\x54\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4f\x54\x5f\x00\x00\x63\x97\x00\x00\x00\x00\x00\x00\x66\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x87\x00\x00\x4d\x8a\x4b\x51\x00\x00\x51\xbb\x63\x89\x63\x88\x63\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x59\xcc\x00\x00\x00\x00\x00\x00\x61\x8b\x58\xcd\x00\x00\x57\x4e\x00\x00\x59\x86\x00\x00\x00\x00\x49\xc9\x49\x8c\x00\x00\x49\x93\x53\x8e\x00\x00\x00\x00\x5b\x63\x5a\x50\x00\x00\x61\x7c\x00\x00\x00\x00\x00\x00\x61\x7d\x00\x00\x59\xda\x00\x00\x4a\x59\x49\x6b\x00\x00\x00\x00\x00\x00", /* 5f80 */ "\x57\x9a\x5b\x98\x61\x7e\x00\x00\x4f\xb5\x4a\xfc\x00\x00\x61\x7f\x4d\xdb\x61\x81\x4e\x52\x51\xc8\x61\x82\x00\x00\x00\x00\x00\x00\x58\xeb\x00\x00\x57\x5d\x00\x00\x00\x00\x61\x83\x00\x00\x4b\x63\x53\x67\x61\x84\x00\x00\x00\x00\x61\x85\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x86\x00\x00\x59\x4d\x00\x00\x00\x00\x61\x87\x57\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x88\x00\x00\x4b\x62\x00\x00\x00\x00\x00\x00\x00\x00\x61\x89\x4e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc3\x61\xdf\x49\x78\x59\xe3\x00\x00\x00\x00\x61\xe0\x00\x00\x00\x00\x4e\xc8\x54\xcb\x00\x00\x61\xe2\x66\xfd\x66\xfc\x60\x4f\x00\x00\x00\x00\x00\x00\x61\xe1\x5b\xbd\x57\x9d\x52\x46\x00\x00\x00\x00\x00\x00\x62\x63\x00\x00\x00\x00\x5b\xd1\x61\xe6\x00\x00\x00\x00\x61\xe7\x00\x00\x00\x00\x5a\x67\x00\x00\x00\x00\x61\xeb\x50\x8d\x00\x00\x61\xec\x61\xe4\x00\x00\x00\x00\x4a\x60\x00\x00\x00\x00\x00\x00\x52\xed\x00\x00\x00\x00\x61\xed\x00\x00\x00\x00\x58\xc2\x00\x00\x4d\xf5\x61\xe8\x4c\x7e", /* 6000 */ "\x4e\x53\x56\xab\x56\x6b\x61\xe3\x61\xe5\x61\xe9\x61\xea\x00\x00\x00\x00\x00\x00\x61\xf6\x00\x00\x00\x00\x61\xf3\x5a\xf4\x61\xf2\x00\x00\x00\x00\x53\x4d\x00\x00\x5b\x9b\x53\x62\x49\xbf\x00\x00\x00\x00\x61\xee\x00\x00\x61\xf1\x51\x4f\x56\x5c\x00\x00\x00\x00\x4b\x41\x61\xf8\x00\x00\x00\x00\x00\x00\x4e\xb0\x61\xf0\x58\xd3\x5a\xb8\x61\xf4\x4d\x76\x61\xf5\x00\x00\x00\x00\x00\x00\x54\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x7c\x67\x41\x00\x00\x00\x00\x61\xf7\x00\x00\x67\x45\x61\xfd\x55\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x55\x00\x00\x4e\x70\x00\x00\x00\x00\x50\x76\x00\x00\x4d\xe2\x00\x00\x00\x00\x56\x41\x00\x00\x00\x00\x00\x00\x67\x46\x67\x43\x00\x00\x00\x00\x67\x42\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x76\x67\x47\x58\xf3\x00\x00\x00\x00\x67\x44\x4d\xdd\x4b\xf6\x62\x41\x4b\xb1\x56\xf0\x4d\x47\x00\x00\x58\x42\x54\x41\x00\x00\x00\x00\x50\x72\x00\x00\x00\x00\x4b\xf0\x00\x00\x61\xf9\x61\xfa\x61\xfc\x61\xfb\x52\xd4\x62\x42\x00\x00\x5a\x61", /* 6080 */ "\x00\x00\x00\x00\x00\x00\x62\x47\x54\x64\x00\x00\x00\x00\x00\x00\x00\x00\x58\x44\x00\x00\x00\x00\x62\x49\x4d\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x62\x48\x00\x00\x4e\x7a\x00\x00\x62\x43\x00\x00\x00\x00\x00\x00\x62\x44\x62\x4a\x00\x00\x62\x46\x00\x00\x57\xf1\x5a\x66\x00\x00\x00\x00\x4e\x5c\x00\x00\x00\x00\x5a\xc2\x00\x00\x52\xf9\x00\x00\x00\x00\x67\x48\x58\xfb\x62\x45\x00\x00\x52\x96\x00\x00\x62\x4d\x49\x4f\x00\x00\x62\x52\x00\x00\x00\x00\x00\x00\x4e\xc1\x00\x00\x00\x00\x62\x4c\x4b\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8a\x62\x50\x00\x00\x00\x00\x00\x00\x4f\xa9\x57\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x94\x00\x00\x00\x00\x00\x00\x56\xe7\x00\x00\x00\x00\x62\x4f\x00\x00\x62\x51\x00\x00\x58\x47\x62\x4e\x00\x00\x57\xa8\x4e\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8c\x4f\xe4\x49\xd1\x4a\x6d\x00\x00\x49\x59\x62\x4b\x49\xd0\x4b\x4c\x4d\x7f\x4b\xe7\x00\x00\x00\x00\x58\x8c\x62\x57\x00\x00\x4e\x6c\x00\x00\x00\x00\x54\xc6\x58\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6100 */ "\x62\x58\x4a\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x49\x00\x00\x5a\x9b\x5a\x85\x00\x00\x00\x00\x00\x00\x67\x4a\x62\x59\x59\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x55\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xcf\x62\x53\x00\x00\x00\x00\x62\x56\x4c\x7f\x00\x00\x62\x54\x50\xa1\x00\x00\x00\x00\x00\x00\x62\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc7\x00\x00\x62\x5b\x00\x00\x4e\x65\x00\x00\x55\x98\x00\x00\x00\x00\x55\x86\x00\x00\x00\x00\x00\x00\x52\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x51\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x7b\x50\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5c\x00\x00\x50\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x90\x00\x00\x00\x00\x5a\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5f\x4d\xa8\x67\x4c\x00\x00\x00\x00\x62\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb5\x00\x00\x00\x00\x00\x00\x4b\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb7\x00\x00\x48\xc2\x67\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4f\x50\xc0\x00\x00\x62\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb1", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x50\x00\x00\x4c\xe9\x00\x00\x57\xeb\x65\xa6\x58\xe6\x55\xf8\x54\xd5\x58\x57\x4a\x69\x57\xd1\x4f\x85\x00\x00\x00\x00\x62\x7e\x4e\x93\x65\xa7\x5b\x5d\x00\x00\x53\xdc\x65\xa8\x00\x00\x00\x00\x00\x00\x65\xa9\x00\x00\x65\xab\x65\xaa\x00\x00\x65\xad\x65\xac\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x78\x00\x00\x65\xae\x00\x00\x51\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc0\x4a\xf6\x00\x00\x00\x00\x4e\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe5\x66\xe4\x4c\x5f\x56\x9a\x49\x83\x00\x00\x66\xe6\x00\x00\x00\x00\x00\x00\x55\x68\x66\xe7\x66\xe8\x00\x00\x55\xd5\x5f\xcf\x49\xc4\x5a\xf9\x00\x00\x00\x00\x53\xca\x48\xc6\x4a\xf1\x54\xd2\x00\x00\x00\x00\x00\x00\x57\x70\x00\x00\x00\x00\x50\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x7b\x00\x00\x00\x00\x54\x44\x5b\xb3\x00\x00\x50\xa8\x5f\xd0\x55\x48\x59\x90\x53\x44\x48\xe6\x4a\x56\x54\xc4\x00\x00\x00\x00\x48\xe1\x00\x00\x00\x00\x4c\x97\x00\x00\x00\x00\x53\x9b\x00\x00\x00\x00\x4b\xf2\x00\x00\x5b\x72\x4a\x70", /* 6280 */ "\x4e\xbb\x00\x00\x00\x00\x00\x00\x4a\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf0\x48\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd5\x55\xe2\x5c\x45\x00\x00\x57\x56\x4b\xb5\x50\x59\x5b\x7b\x00\x00\x4c\xa6\x53\x77\x00\x00\x00\x00\x00\x00\x5f\xd1\x50\x79\x51\xd4\x54\x60\x00\x00\x4e\x44\x49\x48\x00\x00\x00\x00\x53\x8b\x00\x00\x00\x00\x53\x9c\x56\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x49\x47\x00\x00\x00\x00\x00\x00\x4b\x76\x00\x00\x00\x00\x00\x00\x52\xa7\x00\x00\x5f\xd2\x59\x5a\x4a\x8a\x00\x00\x52\x93\x00\x00\x00\x00\x4c\x98\x00\x00\x5b\xf3\x4b\x43\x49\xef\x52\xb3\x52\xe8\x50\xac\x5f\xd3\x00\x00\x48\xe7\x53\x64\x51\x81\x00\x00\x4d\x75\x00\x00\x4f\xdb\x57\x78\x48\xcd\x00\x00\x57\x6f\x5f\xd5\x4f\xcf\x5c\x5e\x5f\xd4\x5b\x70\x48\xdc\x00\x00\x00\x00\x52\xe1\x00\x00\x00\x00\x51\xa2\x4e\xef\x00\x00\x5a\x55\x50\xb8\x53\x41\x49\xa5\x5a\xf0\x00\x00\x00\x00\x50\xa7\x55\xc2\x5f\xd6\x5b\x9d\x00\x00\x4d\x50\x00\x00\x54\xac\x56\x49\x00\x00\x5f\xd8\x50\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x53\xb3\x5c\x47\x55\xaf\x52\xc2", /* 6300 */ "\x00\x00\x4a\x76\x4d\x72\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb7\x65\xfb\x48\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x50\x87\x00\x00\x00\x00\x56\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x57\x7a\x00\x00\x00\x00\x00\x00\x5b\xbe\x51\xcd\x00\x00\x57\xcd\x56\xa1\x58\xad\x52\xd2\x4b\x52\x5f\xd7\x5b\x96\x4e\xb6\x4e\x73\x00\x00\x00\x00\x48\xa3\x00\x00\x53\x52\x4a\xeb\x00\x00\x00\x00\x00\x00\x5b\x92\x00\x00\x00\x00\x65\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xd9\x57\x46\x00\x00\x00\x00\x57\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe5\x5f\xdb\x00\x00\x57\x51\x50\xa5\x00\x00\x00\x00\x5c\x5d\x00\x00\x5f\xda\x48\xc5\x4d\xb3\x55\x73\x52\xf2\x4f\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xcb\x56\x91\x00\x00\x4e\xf0\x4e\x5b\x4b\x57\x00\x00\x00\x00\x00\x00\x53\x96\x00\x00\x5f\xe5\x00\x00\x00\x00\x00\x00\x5f\xe2\x4f\xdc\x00\x00\x00\x00\x5f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb6\x4f\x7d\x00\x00\x00\x00\x5f\xdf\x52\xec\x00\x00\x00\x00\x00\x00\x00\x00", /* 6380 */ "\x58\x66\x00\x00\x4b\x81\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xdd\x55\xd9\x4b\x95\x5f\xe4\x00\x00\x5b\x66\x00\x00\x5f\xe0\x56\xcc\x53\xfd\x00\x00\x53\x65\x00\x00\x00\x00\x00\x00\x59\xb3\x00\x00\x4f\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd2\x00\x00\x56\xbc\x4a\x58\x00\x00\x4f\x73\x00\x00\x50\x78\x57\x66\x59\x7a\x4a\xea\x00\x00\x5f\xe3\x5f\xdc\x5f\xe6\x00\x00\x65\xfd\x00\x00\x00\x00\x51\xaf\x5f\xe1\x00\x00\x00\x00\x5b\xbf\x4b\x47\x00\x00\x49\xf3\x00\x00\x5f\xe7\x00\x00\x5f\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xec\x00\x00\x5f\xf0\x00\x00\x00\x00\x54\xdf\x00\x00\x00\x00\x00\x00\x5c\x82\x5f\xee\x52\x89\x56\xe0\x00\x00\x49\xe4\x00\x00\x00\x00\x00\x00\x59\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xed\x00\x00\x5f\xea\x57\xd4\x00\x00\x4a\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4b\x4f\xbd\x00\x00\x00\x00\x4f\x72\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe8\x00\x00\x5a\xad\x00\x00\x5f\xdd\x00\x00\x5f\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x50\xbe\x00\x00\x5f\xeb", /* 6400 */ "\x49\xf2\x4c\xe8\x51\xa6\x00\x00\x00\x00\x4f\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf4\x5f\xf7\x00\x00\x00\x00\x49\xaa\x4a\xa3\x00\x00\x00\x00\x4a\xe9\x55\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf5\x56\x71\x00\x00\x4c\xe2\x00\x00\x5f\xf6\x5f\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf8\x00\x00\x00\x00\x00\x00\x56\xc1\x00\x00\x48\xe0\x4a\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xae\x00\x00\x00\x00\x49\xea\x00\x00\x66\x41\x00\x00\x5f\xf3\x00\x00\x00\x00\x55\x84\x5f\xf2\x48\xd9\x59\xa0\x49\x98\x00\x00\x56\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xef\x00\x00\x56\x44\x00\x00\x00\x00\x00\x00\x5b\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xdc\x00\x00\x52\xa5\x00\x00\x00\x00\x00\x00\x5f\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9f\x52\xa0\x60\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6480 */ "\x00\x00\x00\x00\x51\x6c\x00\x00\x5f\xfb\x4f\xee\x00\x00\x53\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x65\x54\xf5\x00\x00\x00\x00\x56\x5a\x5f\xfd\x00\x00\x00\x00\x60\x44\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x57\x00\x00\x00\x00\x00\x00\x00\x00\x51\x63\x00\x00\x00\x00\x54\x6b\x49\xa4\x4a\xe8\x00\x00\x5c\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xeb\x00\x00\x60\x42\x60\x43\x00\x00\x60\x45\x00\x00\x4d\xb2\x00\x00\x00\x00\x00\x00\x60\x46\x00\x00\x50\xdd\x00\x00\x00\x00\x55\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xd8\x54\x87\x00\x00\x60\x47\x00\x00\x54\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x60\x48\x66\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x73\x00\x00\x00\x00\x00\x00\x60\x4a\x00\x00\x60\x49\x00\x00\x49\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6500 */ "\x53\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xef\x00\x00\x00\x00\x60\x4d\x5b\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb6\x66\x56\x55\xd4\x00\x00\x5c\xfb\x4c\xc3\x00\x00\x4d\x45\x00\x00\x00\x00\x4c\x65\x5b\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6a\x00\x00\x00\x00\x58\xa6\x6a\xcc\x00\x00\x00\x00\x4b\x70\x00\x00\x00\x00\x52\x95\x00\x00\x4f\xc7\x00\x00\x00\x00\x00\x00\x66\x57\x48\xbc\x00\x00\x00\x00\x4f\x6c\x00\x00\x51\x52\x00\x00\x49\x76\x4a\x48\x00\x00\x00\x00\x00\x00\x4c\xd1\x55\x42\x00\x00\x00\x00\x4b\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x66\x58\x4f\xb3\x00\x00\x00\x00\x00\x00\x55\xfc\x00\x00\x54\x63\x00\x00\x5b\x9c\x00\x00\x00\x00\x4c\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc3\x00\x00\x00\x00\x00\x00\x5b\x4b\x49\x94\x00\x00\x00\x00\x00\x00\x66\xb2\x48\xde\x00\x00\x66\xb4\x00\x00\x00\x00\x00\x00\x4b\xb6\x00\x00\x51\x6f\x00\x00\x6b\x9b\x58\xb0\x00\x00\x00\x00\x5b\x86\x00\x00\x57\xd2\x00\x00\x00\x00\x4f\x90\x4a\x83\x00\x00\x4c\xaa\x00\x00\x5b\x56\x00\x00\x67\x5d\x00\x00\x4b\xce\x00\x00\x56\x59\x58\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x5d\x00\x00\x00\x00\x66\xb5\x55\xa8\x00\x00\x00\x00\x00\x00\x53\x74\x00\x00\x66\xb8\x66\xb7\x51\xc2\x66\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfc\x66\xb9\x00\x00\x66\xba\x5c\x86\x00\x00\x00\x00\x66\xbb\x00\x00\x00\x00\x00\x00\x66\xbc\x53\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xdd\x00\x00\x4e\xc7\x00\x00\x00\x00\x54\xd4\x4b\x49\x4f\xc8\x5b\xbb\x5a\xe6\x00\x00\x00\x00\x59\x4e\x58\xf0\x65\xb7\x65\xb8\x65\xb9\x4d\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb0\x50\x96\x00\x00\x00\x00\x57\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6600 */ "\x65\xbf\x00\x00\x48\xb9\x65\xbd\x00\x00\x00\x00\x50\xa4\x00\x00\x00\x00\x00\x00\x65\xba\x00\x00\x49\xfc\x00\x00\x52\x98\x4e\x89\x00\x00\x00\x00\x00\x00\x59\xd6\x57\xf3\x65\xbe\x00\x00\x00\x00\x00\x00\x65\xbb\x00\x00\x00\x00\x00\x00\x65\xc2\x00\x00\x58\xc6\x5a\x53\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb9\x00\x00\x52\x61\x5c\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x71\x00\x00\x55\xc6\x00\x00\x65\xc4\x00\x00\x00\x00\x65\xc3\x65\xc6\x65\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xe6\x00\x00\x58\x74\x00\x00\x00\x00\x65\xca\x00\x00\x4e\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9b\x55\x6e\x00\x00\x00\x00\x65\xcb\x00\x00\x00\x00\x55\x59\x58\x9f\x65\xc9\x5a\xcd\x65\xcc\x65\xce\x00\x00\x00\x00\x57\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc8\x00\x00\x65\xcd\x00\x00\x00\x00\x57\xed\x00\x00\x4e\x7e\x00\x00\x4a\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd4\x4f\xaf\x57\xf9\x00\x00\x00\x00\x00\x00\x54\x88\x00\x00\x4f\xa6\x65\xcf\x00\x00\x00\x00\x5b\xc6\x00\x00\x00\x00\x00\x00\x51\x60\x00\x00", /* 6680 */ "\x00\x00\x00\x00\x5a\xdc\x00\x00\x65\xd0\x00\x00\x00\x00\x58\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x55\xed\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4f\x48\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd2\x6a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x49\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xee\x00\x00\x65\xd5\x65\xd6\x53\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd7\x00\x00\x00\x00\x65\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xba\x00\x00\x54\x9b\x59\xb6\x4c\xfb\x00\x00\x00\x00\x65\xc1\x00\x00\x49\xdb\x00\x00\x00\x00\x51\xfb\x00\x00\x5a\xf7\x56\xe5", /* 6700 */ "\x5c\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc1\x5a\x70\x66\x63\x53\x94\x00\x00\x4c\x9f\x00\x00\x00\x00\x66\x74\x00\x00\x00\x00\x00\x00\x56\x57\x66\x7e\x00\x00\x50\xc9\x00\x00\x00\x00\x00\x00\x57\x9c\x00\x00\x4a\x4f\x00\x00\x53\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x9d\x00\x00\x52\xbd\x00\x00\x57\xb3\x52\xa8\x49\x5e\x5a\xfc\x00\x00\x55\xf4\x00\x00\x5b\xeb\x00\x00\x00\x00\x53\xd2\x4b\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x9b\x00\x00\x00\x00\x58\xdf\x00\x00\x00\x00\x55\x51\x00\x00\x5a\xd2\x54\xa7\x00\x00\x00\x00\x4c\xca\x00\x00\x64\xbd\x55\x5c\x00\x00\x00\x00\x64\xba\x00\x00\x50\xed\x58\xd2\x49\xc3\x4a\xe4\x00\x00\x64\xbb\x00\x00\x00\x00\x5b\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc4\x00\x00\x64\xbc\x55\xf7\x4c\xdb\x56\xf4\x00\x00\x00\x00\x00\x00\x50\xb3\x00\x00\x00\x00\x59\x8f\x64\xbe\x64\xc1\x00\x00\x00\x00\x4d\xbb\x00\x00\x49\x4d\x4f\x7c\x00\x00\x65\xbc\x64\xc2\x00\x00\x64\xc5\x00\x00\x64\xca\x00\x00\x00\x00\x00\x00\x00\x00\x64\xcb\x00\x00\x56\x69\x48\xe4", /* 6780 */ "\x00\x00\x4e\xaa\x00\x00\x00\x00\x4d\x59\x00\x00\x00\x00\x64\xc0\x00\x00\x57\x98\x00\x00\x64\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8e\x00\x00\x51\x76\x64\xc3\x00\x00\x52\x56\x00\x00\x4d\x9c\x5b\xa5\x64\xc7\x00\x00\x00\x00\x00\x00\x55\xdf\x5a\xe5\x00\x00\x64\xbf\x00\x00\x64\xc4\x64\xc6\x00\x00\x54\x59\x4c\x84\x00\x00\x64\xc8\x00\x00\x50\x7d\x64\xd1\x00\x00\x00\x00\x64\xd6\x00\x00\x64\xd4\x4e\xdb\x4e\xce\x64\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xdd\x00\x00\x64\xd9\x49\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd7\x52\xb2\x4c\xcb\x53\xe1\x54\xbd\x54\xe0\x00\x00\x00\x00\x00\x00\x64\xce\x64\xd3\x64\xd5\x00\x00\x4d\x92\x64\xd7\x5c\x96\x00\x00\x52\xfa\x00\x00\x64\xdb\x00\x00\x00\x00\x49\xe8\x00\x00\x00\x00\x00\x00\x64\xd0\x00\x00\x00\x00\x4e\xec\x00\x00\x00\x00\x50\x62\x64\xcc\x5b\xf8\x00\x00\x51\x99\x49\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xde\x00\x00\x55\xc0", /* 6800 */ "\x64\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x44\x00\x00\x49\x8b\x5b\x5b\x64\xcd\x64\xcf\x4b\xaf\x64\xd2\x00\x00\x64\xdc\x50\xb7\x00\x00\x55\xf6\x00\x00\x56\x48\x00\x00\x00\x00\x53\xdb\x50\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe8\x00\x00\x00\x00\x00\x00\x58\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf1\x5b\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xdf\x64\xe0\x00\x00\x00\x00\x00\x00\x59\x9a\x4d\xca\x4c\xf8\x00\x00\x00\x00\x4c\xf0\x5a\xd3\x64\xee\x00\x00\x64\xed\x64\xeb\x4d\x91\x56\xd1\x64\xe5\x57\xa5\x50\x93\x00\x00\x48\xb7\x64\xf0\x64\xef\x00\x00\x5c\x60\x00\x00\x64\xe3\x00\x00\x57\x49\x55\x43\x00\x00\x4e\x58\x4f\x7b\x64\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe1\x64\xe2\x64\xe4\x4b\x55\x64\xe6\x54\x65\x64\xea\x64\xec\x4f\x50\x5c\x4e\x00\x00\x64\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf4\x00\x00\x57\x50\x64\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6880 */ "\x00\x00\x51\x5a\x00\x00\x64\xe7\x00\x00\x52\x57\x48\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf3\x00\x00\x00\x00\x00\x00\x64\xf6\x00\x00\x00\x00\x00\x00\x4d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x52\x6e\x57\xdf\x50\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x56\x94\x00\x00\x56\xdc\x58\xb4\x00\x00\x00\x00\x55\xe0\x00\x00\x64\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xeb\x00\x00\x64\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7e\x00\x00\x53\xe4\x00\x00\x4d\x98\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf3\x00\x00\x00\x00\x5c\x78\x00\x00\x00\x00\x4e\xab\x00\x00\x53\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc3\x00\x00\x00\x00\x65\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4d\x00\x00\x65\x42\x50\xe1\x00\x00\x00\x00\x00\x00\x50\x63\x00\x00\x00\x00\x00\x00\x64\xfd\x4d\x77\x00\x00\x64\xfa\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x65\x44\x00\x00\x00\x00\x00\x00\x59\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x43\x00\x00\x5b\xb1\x5c\x55\x00\x00\x65\x47\x00\x00\x4f\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfb\x64\xfc\x00\x00\x00\x00\x00\x00\x65\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x76\x00\x00\x00\x00\x59\xab\x00\x00\x00\x00\x00\x00\x65\x52\x00\x00\x00\x00\x00\x00\x00\x00\x65\x49\x00\x00\x00\x00\x00\x00\x4a\xa9\x00\x00\x4a\xba\x00\x00\x00\x00\x65\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa7\x00\x00\x00\x00\x65\x45\x00\x00\x00\x00\x4a\x9f\x00\x00\x00\x00\x65\x4c\x50\xe2\x00\x00\x65\x4a\x00\x00\x00\x00\x65\x59\x00\x00\x00\x00\x65\x58\x00\x00\x00\x00\x00\x00\x00\x00\x65\x4e\x00\x00\x00\x00\x64\xf9\x00\x00\x00\x00\x65\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4c\x65\x51\x65\x5a\x00\x00\x00\x00\x51\xa4\x00\x00\x00\x00\x00\x00", /* 6980 */ "\x65\x4f\x00\x00\x4c\xc4\x00\x00\x65\x4d\x00\x00\x5a\x7c\x65\x54\x65\x55\x65\x57\x00\x00\x00\x00\x00\x00\x65\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xc5\x65\x65\x00\x00\x00\x00\x65\x50\x00\x00\x00\x00\x65\x5b\x48\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5c\x5b\x45\x00\x00\x00\x00\x65\x5e\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x65\x61\x00\x00\x00\x00\x51\x92\x00\x00\x00\x00\x54\xb5\x00\x00\x00\x00\x00\x00\x65\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x63\x00\x00\x65\x53\x00\x00\x65\x56\x00\x00\x4e\x51\x00\x00\x00\x00\x00\x00\x65\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf6\x00\x00\x00\x00\x00\x00\x65\x64\x65\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xda\x00\x00\x65\x68", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6b\x65\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x61\x00\x00\x52\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x78\x00\x00\x4d\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x65\x69\x00\x00\x5a\x43\x00\x00\x00\x00\x00\x00\x65\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x77\x65\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6f\x00\x00\x00\x00\x54\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x79\x4a\x68\x00\x00\x65\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x91\x00\x00\x00\x00\x00\x00\x65\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x76\x00\x00\x00\x00\x65\x7a\x00\x00\x00\x00\x00\x00", /* 6a80 */ "\x56\xb3\x00\x00\x00\x00\x00\x00\x58\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x75\x00\x00\x65\x7c\x65\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7d\x00\x00\x65\x7f\x52\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x57\x4a\xcd\x4e\x56\x58\xbf\x66\xa2\x00\x00\x00\x00\x53\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa3\x00\x00\x66\xa4\x53\xda\x00\x00\x00\x00\x00\x00\x50\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa5\x00\x00\x00\x00\x66\xa6\x58\xa9\x00\x00\x54\x58\x00\x00\x00\x00\x4c\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb8\x5b\x9e\x4a\xca\x49\xbc\x57\xe3\x53\xe6\x00\x00\x00\x00\x57\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf4\x00\x00\x56\x60\x4e\xde\x00\x00\x00\x00\x00\x00", /* 6b80 */ "\x00\x00\x65\x83\x65\x84\x59\x8b\x65\x86\x00\x00\x4a\xf8\x65\x85\x00\x00\x59\x53\x55\xe1\x49\xcf\x00\x00\x65\x89\x00\x00\x00\x00\x00\x00\x00\x00\x65\x87\x65\x88\x00\x00\x00\x00\x5b\xb2\x00\x00\x00\x00\x00\x00\x65\x8a\x65\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xae\x53\x59\x4b\xcd\x00\x00\x59\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8f\x00\x00\x4e\x79\x66\xb0\x00\x00\x00\x00\x59\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe2\x00\x00\x52\xb7\x00\x00\x52\x5f\x00\x00\x00\x00\x4b\xbd\x5c\xb8\x49\x68\x49\x6f\x49\x71\x53\x9f\x00\x00\x49\x70\x00\x00\x52\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x44\x4d\xc0\x00\x00\x00\x00\x00\x00\x56\xb9\x00\x00\x00\x00\x00\x00\x66\x45\x00\x00\x66\x47\x00\x00\x00\x00\x00\x00\x66\x48\x00\x00\x00\x00\x00\x00\x66\x46\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x49\x66\x4b\x66\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4c\x00\x00\x55\xce\x5c\xb4\x52\x92\x00\x00\x52\x45\x53\xf7\x66\x4d\x52\xc9\x00\x00\x66\x4e\x66\x4f\x66\x50\x4c\x75\x00\x00\x00\x00\x00\x00\x4c\x9b\x00\x00\x66\x51\x54\x83\x00\x00\x66\x53\x00\x00\x4d\xa3\x59\x96\x48\xb0\x66\x52\x66\x54\x00\x00\x00\x00\x00\x00\x4b\x4a\x51\xc7\x54\x89\x00\x00\x66\x55\x00\x00\x56\x4e\x62\x7f\x00\x00\x00\x00\x5a\x60\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x7b\x00\x00\x00\x00\x57\x41\x5b\xac\x54\x94\x00\x00\x00\x00\x00\x00\x5d\x81\x4e\x84\x00\x00\x4d\xb9\x62\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x4b\x00\x00\x00\x00\x00\x00\x62\x81\x55\x67\x00\x00\x4d\xb8\x00\x00\x00\x00\x00\x00\x59\x54\x62\x82\x54\xe9\x4d\x4f\x4f\x4d\x4a\x78\x57\xda\x00\x00\x00\x00\x56\xbf\x00\x00\x00\x00\x00\x00\x62\x89\x62\x8a\x57\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xac\x00\x00\x4e\xb2\x00\x00\x62\x8b\x00\x00\x62\x8c\x00\x00\x00\x00\x58\xd9\x00\x00\x00\x00\x00\x00\x53\xfa\x4c\x7a\x00\x00", /* 6c80 */ "\x00\x00\x54\x7f\x59\xc9\x57\xd5\x00\x00\x62\x85\x62\x8d\x00\x00\x55\x93\x4a\x61\x00\x00\x00\x00\x62\x88\x00\x00\x00\x00\x53\xe2\x62\x86\x00\x00\x00\x00\x67\x53\x62\x87\x00\x00\x00\x00\x00\x00\x00\x00\x55\x53\x00\x00\x53\x87\x00\x00\x00\x00\x00\x00\x4d\x55\x00\x00\x52\x5b\x00\x00\x62\x84\x53\x5d\x51\x44\x51\xd8\x49\xd6\x00\x00\x62\x8e\x4e\x46\x52\xac\x00\x00\x62\x91\x4f\xd9\x00\x00\x00\x00\x62\x9c\x62\x96\x4d\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x70\x5a\x6d\x00\x00\x5b\xcd\x5b\x73\x4d\x61\x5b\x54\x59\x78\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb8\x54\x97\x00\x00\x00\x00\x00\x00\x54\xa9\x49\xb3\x00\x00\x52\x7a\x00\x00\x00\x00\x00\x00\x62\x8f\x00\x00\x00\x00\x62\x9d\x62\x90\x4c\x48\x62\x98\x62\x95\x00\x00\x00\x00\x00\x00\x4c\x5a\x00\x00\x00\x00\x53\x42\x00\x00\x62\x97\x53\x7d\x49\xa7\x53\xfb\x00\x00\x52\xdf\x00\x00\x00\x00\x5c\x42\x00\x00\x50\xe0\x62\x9a\x00\x00\x00\x00\x62\x9b\x62\x9e\x56\xa8\x62\x94\x00\x00\x5a\x5e\x00\x00\x49\x63\x67\x54\x62\x92\x62\x93\x00\x00\x62\x99\x58\xb9\x53\xc2\x5a\xf2\x62\x9f\x00\x00", /* 6d00 */ "\x00\x00\x4f\x81\x00\x00\x00\x00\x62\xa6\x00\x00\x00\x00\x62\xa5\x00\x00\x00\x00\x00\x00\x59\x94\x62\xa2\x00\x00\x62\xa8\x00\x00\x00\x00\x00\x00\x54\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x58\x54\x00\x00\x62\xa7\x62\xad\x51\xe4\x00\x00\x00\x00\x4b\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x93\x00\x00\x62\xa1\x00\x00\x00\x00\x4d\xe8\x62\xa9\x00\x00\x00\x00\x62\xab\x00\x00\x00\x00\x4b\xfc\x5b\xdd\x62\xb1\x00\x00\x62\xac\x00\x00\x00\x00\x00\x00\x62\xa0\x00\x00\x4e\x8f\x57\x7d\x54\x42\x53\x69\x00\x00\x00\x00\x51\x98\x00\x00\x62\xa3\x00\x00\x54\x53\x4f\x4c\x4f\x5d\x62\xa4\x00\x00\x5c\x67\x49\xe1\x00\x00\x62\xaa\x4e\xc2\x62\xae\x00\x00\x4e\x8c\x62\xaf\x53\x48\x62\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x84\x50\x43\x00\x00\x62\xb9\x00\x00\x62\xb6\x00\x00\x62\xba\x00\x00\x00\x00\x62\xbc\x00\x00\x00\x00\x53\xd5\x00\x00\x00\x00\x4d\xc5\x50\xca\x00\x00\x00\x00\x00\x00\x4c\xa0\x62\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa0\x00\x00\x00\x00\x4d\xa2\x4f\x9f\x00\x00\x00\x00\x00\x00\x62\xbb\x00\x00\x00\x00\x00\x00", /* 6d80 */ "\x00\x00\x00\x00\x57\x5f\x00\x00\x00\x00\x52\xf8\x00\x00\x00\x00\x58\x9c\x55\x87\x00\x00\x00\x00\x5a\x5f\x00\x00\x58\x71\x00\x00\x00\x00\x62\xb2\x00\x00\x62\xb7\x62\xb8\x56\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xcd\x00\x00\x50\xd3\x62\xb4\x51\x50\x62\xb5\x57\xcf\x00\x00\x4e\x61\x4b\x73\x00\x00\x54\xf2\x4f\x47\x5b\x67\x55\x4c\x4c\xa1\x62\xc9\x00\x00\x00\x00\x62\xcb\x59\x64\x00\x00\x00\x00\x59\xb9\x00\x00\x00\x00\x4d\xac\x00\x00\x00\x00\x4d\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc2\x4b\x8e\x00\x00\x00\x00\x00\x00\x5c\x6d\x62\xbf\x58\x9e\x62\xbe\x00\x00\x00\x00\x00\x00\x51\x7c\x56\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd6\x00\x00\x56\xd3\x62\xc7\x00\x00\x00\x00\x00\x00\x62\xc6\x62\xc0\x00\x00\x62\xc3\x4b\x4d\x00\x00\x00\x00\x5a\x79\x00\x00\x62\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf8\x4a\xe2\x00\x00\x4e\x54\x00\x00\x00\x00\x55\x8f\x00\x00\x4a\xbd\x00\x00\x00\x00\x00\x00\x4e\x8d\x00\x00\x59\x6d\x00\x00\x56\xec\x67\x55\x00\x00\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x86\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa7\x00\x00\x62\xca\x5c\x75\x62\xc1\x00\x00\x4f\x45\x62\xc4\x00\x00\x00\x00\x5a\x87\x00\x00\x62\xc8\x55\x99\x00\x00\x00\x00\x62\xbd\x00\x00\x00\x00\x5a\x86\x00\x00\x00\x00\x54\x9f\x4b\xc8\x00\x00\x5a\xfb\x49\xb2\x62\xd6\x00\x00\x00\x00\x00\x00\x57\xc1\x00\x00\x62\xcc\x00\x00\x57\xbb\x00\x00\x4c\xda\x00\x00\x00\x00\x62\xd5\x00\x00\x50\x6a\x00\x00\x00\x00\x00\x00\x5a\x6e\x00\x00\x52\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x68\x62\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x64\x62\xce\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x62\xd4\x00\x00\x4d\xfd\x00\x00\x58\x87\x00\x00\x00\x00\x5b\x5f\x00\x00\x00\x00\x00\x00\x62\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcf\x00\x00\x00\x00\x62\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x86\x55\xa9", /* 6e80 */ "\x00\x00\x00\x00\x00\x00\x50\xa2\x00\x00\x4f\x46\x62\xd2\x00\x00\x00\x00\x4c\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe6\x5a\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xda\x00\x00\x00\x00\x00\x00\x51\x90\x00\x00\x00\x00\x62\xe8\x00\x00\x00\x00\x59\xe6\x00\x00\x00\x00\x62\xde\x00\x00\x62\xdf\x00\x00\x00\x00\x58\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7d\x00\x00\x62\xd9\x62\xd0\x00\x00\x62\xe4\x00\x00\x54\xdb\x62\xe2\x00\x00\x00\x00\x52\xe6\x62\xe1\x00\x00\x62\xe0\x00\x00\x00\x00\x00\x00\x4a\x9d\x62\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x82\x00\x00\x00\x00\x00\x00\x5c\x6c\x00\x00\x00\x00\x00\x00\x62\xe5\x00\x00\x4e\x4c\x00\x00\x5c\x72\x56\xce\x66\x99\x00\x00\x62\xe3\x00\x00\x00\x00\x4d\x97\x00\x00\x00\x00\x00\x00\x5b\xcc\x62\xd8\x62\xdb\x51\xf9\x62\xdd\x00\x00\x51\xca\x50\xc3\x51\xcf\x00\x00\x49\x96\x56\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x62\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x53\xae\x00\x00\x00\x00\x00\x00\x53\xe0\x00\x00\x00\x00\x62\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xa8\x00\x00\x00\x00\x00\x00\x50\xeb\x59\x7d\x62\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xad\x00\x00\x00\x00\x00\x00\x62\xec\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf5\x62\xf3\x51\xfd\x00\x00\x62\xdc\x00\x00\x62\xef\x00\x00\x55\xfd\x00\x00\x5b\x64\x00\x00\x00\x00\x62\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xea\x62\xeb\x00\x00\x00\x00\x00\x00\x62\xf1\x00\x00\x57\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6b\x00\x00\x00\x00\x00\x00\x54\x51\x00\x00\x51\xb9\x00\x00\x00\x00\x00\x00\x62\xe9\x00\x00\x00\x00\x00\x00\x51\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb5\x4a\x51\x00\x00\x00\x00\x00\x00\x62\xfa\x00\x00\x62\xf2\x00\x00\x00\x00\x00\x00\x62\xf9\x00\x00\x62\xfc\x00\x00\x62\xfb\x00\x00\x00\x00\x00\x00", /* 6f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6e\x00\x00\x00\x00\x00\x00\x4a\x5a\x62\xf6\x00\x00\x00\x00\x62\xf8\x62\xf7\x53\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc3\x00\x00\x00\x00\x63\x44\x00\x00\x00\x00\x63\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xa3\x00\x00\x63\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xfd\x49\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x48\x00\x00\x63\x49\x63\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x47\x63\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4b\x63\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4f\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x81\x00\x00\x00\x00\x63\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x91\x66\xe0\x52\x91\x00\x00\x4b\x66\x4e\x72\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8a\x5a\xed\x00\x00\x4f\xc3\x00\x00\x00\x00\x00\x00\x5c\x66\x00\x00\x5a\xd5\x49\xd2", /* 7080 */ "\x66\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc0\x00\x00\x00\x00\x00\x00\x51\xae\x4a\xb5\x00\x00\x00\x00\x00\x00\x59\x77\x00\x00\x00\x00\x00\x00\x4a\x54\x00\x00\x54\xb1\x50\x5b\x66\xbf\x00\x00\x00\x00\x5b\xca\x00\x00\x00\x00\x66\xbe\x66\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc4\x4f\xe5\x56\xbe\x53\x7a\x4f\xbb\x00\x00\x66\xc5\x00\x00\x49\x9f\x00\x00\x00\x00\x00\x00\x66\xc3\x5b\x48\x4b\x84\x00\x00\x66\xc1\x51\x56\x4a\x84\x00\x00\x00\x00\x66\xc2\x56\x58\x50\xc2\x56\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x51\x72\x00\x00\x66\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe5\x50\xd2\x00\x00\x5b\xf1\x00\x00\x00\x00\x00\x00\x59\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x4c\x53\x55\x75\x66\xc6\x4e\x83\x00\x00\x56\xcb\x4f\x9e\x54\xc7\x00\x00\x58\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x8a\x00\x00\x53\x8c\x00\x00\x00\x00\x00\x00\x4c\x8a\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x69\x4d\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc8\x00\x00\x00\x00\x66\xc9\x00\x00\x4e\x60\x66\xca\x00\x00\x66\xe1\x49\x5a\x4c\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xcb\x59\x87\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x54\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd2\x00\x00\x4e\x6d\x00\x00\x4e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xce\x00\x00\x55\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x5a\x00\x00\x66\xe2\x5b\x75\x66\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf2\x00\x00\x00\x00\x00\x00\x66\xd1\x66\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd3\x00\x00\x66\xd4\x00\x00\x00\x00\x55\x5f\x00\x00\x00\x00", /* 7180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x58\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x59\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x54\xda\x00\x00\x00\x00\x00\x00\x66\xd5\x57\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xeb\x66\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd8\x00\x00\x00\x00\x00\x00\x48\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd6\x00\x00\x66\xd7\x00\x00\x00\x00\x00\x00\x66\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdb\x59\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xda\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xee\x00\x00\x66\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdf\x00\x00\x5c\x46\x00\x00\x53\x60\x00\x00\x00\x00\x00\x00\x66\x5c\x48\xad\x00\x00\x00\x00\x00\x00\x4f\xf3\x4c\xb7\x59\xae\x48\xd5\x4b\x9a\x00\x00\x5c\xb2\x00\x00\x56\x4c\x00\x00\x62\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xab\x48\xe5\x00\x00\x00\x00\x00\x00\x53\x66\x66\x59\x00\x00\x00\x00\x00\x00\x00\x00\x66\x5a\x00\x00\x00\x00\x00\x00\x66\x5b\x00\x00\x00\x00\x59\x60\x00\x00\x53\x43\x00\x00\x65\xf1\x00\x00\x52\xb1\x00\x00\x52\xb4\x50\xcd\x00\x00\x00\x00\x00\x00\x65\xf2\x52\xc0\x00\x00\x57\xee\x00\x00\x00\x00\x00\x00\x00\x00\x65\xef\x65\xf3\x00\x00\x00\x00\x55\x9d\x00\x00\x00\x00\x54\x43\x00\x00\x00\x00\x00\x00\x56\xd7\x57\xfd\x00\x00\x00\x00\x00\x00\x65\xf4\x65\xf5", /* 7280 */ "\x58\x4c\x50\xe6\x00\x00\x00\x00\x65\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbe\x65\xf7\x00\x00\x65\xf8\x00\x00\x65\xf9\x00\x00\x00\x00\x65\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xad\x61\x8c\x00\x00\x4c\x58\x61\x8d\x00\x00\x00\x00\x00\x00\x61\x8e\x00\x00\x5c\x54\x61\x8f\x61\x90\x5a\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x92\x50\x92\x61\x91\x4b\x72\x00\x00\x00\x00\x00\x00\x49\x57\x00\x00\x00\x00\x00\x00\x00\x00\x61\x94\x61\x93\x00\x00\x4d\xfb\x00\x00\x61\x95\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x57\x00\x00\x4f\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x52\xfb\x00\x00\x4d\xdc\x4f\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x96\x61\x98\x00\x00\x00\x00\x4b\xbf\x58\x61\x55\xa7\x61\x97\x5b\x99\x5a\x9d\x61\x99\x61\x9d\x61\x9a\x00\x00\x00\x00\x61\x9b\x50\xe9\x00\x00\x61\x9f\x61\xa0\x50\xc6\x00\x00\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x61\x9c\x00\x00\x61\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa4\x00\x00\x00\x00\x00\x00\x51\x74\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa2\x00\x00\x61\xa7\x49\xfd\x61\xa1\x00\x00\x00\x00\x00\x00\x52\x6d\x49\xc1\x61\xa6\x61\xa5\x00\x00\x00\x00\x61\xa3\x61\xa8\x00\x00\x00\x00\x61\xaa\x00\x00\x00\x00\x00\x00\x58\xc8\x5b\xec\x52\x48\x61\xab\x00\x00\x58\x77\x00\x00\x00\x00\x61\xad\x00\x00\x00\x00\x4d\xee\x00\x00\x00\x00\x65\x81\x61\xac\x61\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4b\x5a\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xaf\x00\x00\x00\x00\x61\xae\x00\x00\x65\x82\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb2\x56\xa0\x00\x00\x61\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb4\x00\x00", /* 7380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x00\x00\x00\x00\x51\xc9\x00\x00\x5a\x92\x00\x00\x57\x96\x00\x00\x00\x00\x64\x81\x00\x00\x00\x00\x64\x82\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe9\x00\x00\x00\x00\x00\x00\x64\x85\x00\x00\x00\x00\x64\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x87\x00\x00\x52\x55\x00\x00\x00\x00\x64\x83\x4e\x57\x58\x76\x00\x00\x51\x82\x64\x8a\x00\x00\x00\x00\x00\x00\x64\x89\x00\x00\x00\x00\x64\x95\x49\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8b\x00\x00\x64\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8d\x64\x8c\x55\x5a\x00\x00\x00\x00\x5b\x85\x00\x00\x64\x86\x4c\x49\x64\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x94\x00\x00\x5b\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8e\x00\x00\x64\x93\x00\x00\x64\x92\x00\x00\x00\x00\x00\x00\x48\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x64\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x54\x93\x00\x00\x50\xc4\x50\xec\x00\x00\x00\x00\x51\x91\x64\x91\x00\x00\x00\x00\x00\x00\x00\x00\x64\x97\x56\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x61\x00\x00\x00\x00\x64\x9b\x64\x9a\x00\x00\x64\x9c\x00\x00\x64\x98\x00\x00\x64\x9f\x00\x00\x64\x9e\x00\x00\x64\x9d\x00\x00\x00\x00\x51\x75\x54\x79\x53\x9e\x53\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa5\x00\x00\x64\xa4\x00\x00\x64\xa6\x4d\xf6\x64\x99\x64\xa3\x00\x00\x54\xef\x55\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa8\x00\x00\x00\x00\x4d\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9f\x64\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa9\x00\x00", /* 7480 */ "\x64\xac\x64\xad\x00\x00\x51\x47\x00\x00\x00\x00\x00\x00\x64\xae\x00\x00\x00\x00\x00\x00\x64\xaf\x00\x00\x00\x00\x64\xab\x00\x00\x64\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xaa\x00\x00\x64\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb4\x64\xb1\x64\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6f\x00\x00\x68\xab\x00\x00\x68\xac\x00\x00\x53\xaf\x48\xe9\x54\xbe\x00\x00\x57\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcc\x65\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb1\x00\x00\x53\xbe\x4a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb2", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9a\x00\x00\x65\xb3\x00\x00\x65\xb4\x00\x00\x65\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc9\x60\x50\x55\x96\x00\x00\x56\xef\x00\x00\x00\x00\x55\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9c\x00\x00\x00\x00\x5a\x63\x56\x46\x00\x00\x4c\xa5\x68\xad\x49\x62\x00\x00\x63\x58\x56\xee\x5a\x69\x4e\xd6\x55\x8b\x00\x00\x4b\x88\x00\x00\x52\xcf\x4b\x8a\x00\x00\x67\xad\x4e\x4d\x00\x00\x00\x00\x64\x7e\x00\x00\x67\xae\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x49\x00\x00\x00\x00\x67\xb1\x00\x00\x00\x00\x67\xb0\x4f\x88\x00\x00\x67\xaf\x57\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x51\x95\x5e\x6e\x67\xb2\x58\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd3\x53\xe7\x00\x00\x00\x00\x00\x00\x4c\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb3\x00\x00\x4a\x8c\x00\x00\x00\x00\x00\x00\x4e\x9c\x67\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7c", /* 7580 */ "\x00\x00\x00\x00\x00\x00\x67\xb5\x00\x00\x00\x00\x4f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x69\x83\x00\x00\x00\x00\x00\x00\x55\xe7\x00\x00\x59\xc8\x68\xd9\x00\x00\x68\xda\x00\x00\x68\xdb\x51\x66\x00\x00\x4c\xec\x4f\xcd\x00\x00\x00\x00\x68\xdd\x00\x00\x53\x51\x68\xdc\x59\x92\x00\x00\x68\xdf\x48\xcb\x4f\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xde\x68\xde\x00\x00\x4a\xae\x4c\x89\x68\xe5\x68\xe4\x53\xa2\x68\xe0\x68\xe1\x4a\xc2\x00\x00\x00\x00\x68\xe2\x5b\x8f\x00\x00\x00\x00\x56\xda\x4f\xd1\x4e\xb1\x00\x00\x00\x00\x00\x00\x68\xe7\x68\xe6\x68\xe3\x49\xa0\x00\x00\x5b\xa1\x5a\x58\x4f\xb6\x54\xab\x00\x00\x00\x00\x68\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x59\x98\x00\x00\x5b\xcb\x4d\xda\x68\xe8\x00\x00\x4b\xba\x00\x00\x00\x00\x57\x54\x00\x00\x00\x00\x53\xa5\x00\x00\x00\x00\x00\x00\x51\x41\x68\xea\x68\xed\x00\x00\x68\xec\x68\xef\x68\xeb\x00\x00\x4e\x5e\x68\xee\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb4\x68\xf1\x00\x00\x00\x00\x4a\x75\x00\x00\x00\x00\x00\x00\x00\x00\x49\x74\x00\x00\x00\x00\x68\xf2\x00\x00\x00\x00\x68\xf3", /* 7600 */ "\x68\xf5\x4a\xe0\x00\x00\x68\xf0\x00\x00\x68\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x68\xf9\x00\x00\x68\xf7\x00\x00\x00\x00\x00\x00\x68\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x68\xfc\x00\x00\x68\xf8\x68\xfb\x68\xfd\x00\x00\x69\x41\x00\x00\x00\x00\x00\x00\x57\xc0\x69\x44\x00\x00\x69\x43\x00\x00\x51\x97\x68\xfa\x55\xdc\x00\x00\x00\x00\x4a\xf0\x49\x92\x56\xb0\x00\x00\x69\x46\x00\x00\x00\x00\x69\x47\x00\x00\x00\x00\x69\x4c\x5b\x6e\x69\x49\x00\x00\x00\x00\x54\xb2\x00\x00\x00\x00\x00\x00\x69\x42\x00\x00\x69\x4b\x69\x48\x69\x45\x00\x00\x00\x00\x69\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xa8\x69\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4f\x00\x00\x69\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x50\x00\x00\x69\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x59\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x52\x00\x00\x00\x00\x00\x00\x69\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x90\x00\x00\x00\x00\x4b\x67\x00\x00\x48\xd6\x48\xd8\x00\x00", /* 7680 */ "\x00\x00\x00\x00\x5a\xec\x00\x00\x4b\x64\x00\x00\x4f\x74\x4e\x6a\x68\xa6\x00\x00\x00\x00\x4c\xdd\x00\x00\x00\x00\x68\xa7\x00\x00\x00\x00\x48\xa7\x00\x00\x68\xa8\x00\x00\x00\x00\x57\x8f\x00\x00\x00\x00\x68\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa3\x00\x00\x00\x00\x5b\xe4\x69\x85\x00\x00\x69\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x94\x00\x00\x00\x00\x5a\x7b\x00\x00\x00\x00\x5b\xd0\x53\x89\x00\x00\x5a\x4f\x00\x00\x59\xe5\x00\x00\x00\x00\x67\xc0\x48\xba\x5b\x55\x59\x6e\x4e\xdf\x4d\xcf\x00\x00\x50\x99\x00\x00\x4c\xc6\x4b\x61\x53\x6c\x00\x00\x00\x00\x55\xa1\x00\x00\x00\x00\x00\x00\x52\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xbe\x4b\xa1\x00\x00\x67\x8d\x52\x44\x00\x00\x5b\xb0\x00\x00\x00\x00\x00\x00\x58\x81\x67\x90\x00\x00\x00\x00\x53\x6e\x00\x00\x4b\xdb\x00\x00", /* 7700 */ "\x00\x00\x55\xa0\x00\x00\x00\x00\x67\x8e\x00\x00\x00\x00\x67\x91\x67\x92\x52\x5c\x00\x00\x50\x54\x00\x00\x67\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x95\x67\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x87\x52\x7f\x00\x00\x67\x94\x00\x00\x00\x00\x00\x00\x67\x97\x00\x00\x5b\x43\x59\x43\x00\x00\x00\x00\x00\x00\x67\x96\x00\x00\x52\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x98\x50\x95\x4f\xeb\x67\x99\x00\x00\x56\xf6\x00\x00\x59\x7b\x00\x00\x00\x00\x00\x00\x5c\x65\x5b\x97\x00\x00\x67\x9d\x00\x00\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9a\x67\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9e\x4f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x4f\x67\xa0\x4b\xbc\x00\x00\x67\xa1\x52\xbf\x00\x00\x67\x9f\x00\x00\x00\x00\x4f\x7e\x49\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc2\x00\x00\x00\x00\x00\x00\x67\xa4\x5c\xb9\x67\xa2", /* 7780 */ "\x67\xa5\x00\x00\x00\x00\x00\x00\x52\x8a\x4a\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa6\x67\xa3\x58\x59\x00\x00\x00\x00\x67\xa7\x51\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa8\x67\xa9\x00\x00\x5f\xaa\x00\x00\x00\x00\x53\xb2\x00\x00\x54\x66\x00\x00\x5b\xf4\x4b\x69\x00\x00\x56\x52\x00\x00\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x57\x4b\x00\x00\x67\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x50\x00\x00\x67\xac\x00\x00\x6b\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa2\x00\x00\x00\x00\x00\x00\x52\x4c\x69\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb7\x59\xd2\x00\x00\x5b\xa9\x00\x00\x68\x93\x00\x00\x4f\xd7\x00\x00\x4f\x63\x68\x94\x4b\xcb\x48\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x55\xae\x00\x00\x00\x00\x67\x56\x00\x00\x67\x57\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf8\x4c\x4f\x50\x94", /* 7800 */ "\x67\x58\x51\xea\x55\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x59\x00\x00\x00\x00\x53\xf5\x50\x53\x00\x00\x00\x00\x00\x00\x67\x5c\x53\x99\x00\x00\x59\x70\x00\x00\x5c\x49\x67\x5a\x67\x5b\x00\x00\x59\x83\x00\x00\x67\x5f\x67\x60\x00\x00\x67\x64\x00\x00\x00\x00\x00\x00\x67\x68\x00\x00\x67\x66\x67\x6e\x5b\x89\x00\x00\x67\x69\x00\x00\x00\x00\x67\x67\x67\x5e\x00\x00\x00\x00\x53\x8a\x00\x00\x00\x00\x00\x00\x53\xc5\x00\x00\x00\x00\x55\x8a\x5a\xd1\x67\x61\x67\x62\x67\x63\x67\x65\x00\x00\x50\xf8\x00\x00\x4a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x89\x00\x00\x67\x70\x00\x00\x00\x00\x00\x00\x00\x00\x67\x71\x00\x00\x67\x6a\x00\x00\x67\x6f\x00\x00\x57\xf7\x00\x00\x00\x00\x56\x56\x67\x6c\x67\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x72\x51\x93\x5a\x52\x67\x6b\x54\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xee\x00\x00\x00\x00\x00\x00\x00\x00\x53\x91\x00\x00\x00\x00\x00\x00", /* 7880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x76\x00\x00\x4b\x90\x00\x00\x00\x00\x51\xb4\x48\xac\x56\x8a\x00\x00\x00\x00\x49\x4e\x00\x00\x67\x74\x00\x00\x00\x00\x00\x00\x57\x8c\x4b\x83\x00\x00\x67\x75\x67\x73\x67\x77\x00\x00\x00\x00\x4b\x9b\x00\x00\x67\x78\x00\x00\x67\x79\x00\x00\x67\x7c\x00\x00\x49\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x97\x4e\xed\x67\x7a\x56\xbb\x49\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xea\x00\x00\x00\x00\x4a\xc4\x00\x00\x00\x00\x00\x00\x48\xf4\x00\x00\x00\x00\x00\x00\x67\x7f\x50\xd9\x4a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6d\x00\x00\x00\x00\x00\x00\x67\x7d\x50\x64\x00\x00\x00\x00\x00\x00\x67\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa4\x00\x00\x00\x00\x00\x00\x67\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x82\x00\x00\x67\x84\x00\x00\x00\x00\x51\x77\x00\x00\x00\x00\x4e\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x4f\x58\x00\x00\x00\x00\x00\x00\x67\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbd\x66\xe9\x50\xf0\x00\x00\x55\x88\x00\x00\x66\xea\x53\xed\x00\x00\x00\x00\x00\x00\x00\x00\x66\xeb\x00\x00\x53\xec\x66\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xef\x00\x00\x00\x00\x5c\x87\x66\xf2\x00\x00\x00\x00\x66\xf0\x66\xed\x66\xee\x5c\x43\x55\x92\x56\x8f\x66\xf3\x00\x00\x66\xf1\x00\x00\x00\x00\x58\x8a\x00\x00\x66\xf5\x53\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbf\x00\x00\x66\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x5b\x4e\x97\x00\x00\x66\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7980 */ "\x5d\x98\x4f\x9c\x00\x00\x00\x00\x51\xba\x66\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8e\x5c\xad\x50\xea\x00\x00\x54\x7d\x4d\xcb\x00\x00\x58\xe2\x56\x5d\x00\x00\x57\x5a\x00\x00\x00\x00\x4c\xd0\x00\x00\x00\x00\x49\x9d\x00\x00\x54\x90\x00\x00\x5b\xd5\x00\x00\x00\x00\x00\x00\x50\x66\x52\x8c\x00\x00\x00\x00\x68\x96\x00\x00\x00\x00\x52\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x83\x00\x00\x00\x00\x00\x00\x68\x98\x4a\x73\x00\x00\x54\x78\x59\x8e\x00\x00\x5b\xc7\x00\x00\x68\x99\x00\x00\x68\x97\x00\x00\x4e\x9e\x4a\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x75\x00\x00\x00\x00\x59\xc5\x00\x00\x4e\x81\x00\x00\x00\x00", /* 7a00 */ "\x58\x41\x00\x00\x68\x9d\x68\x9c\x00\x00\x00\x00\x68\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6c\x00\x00\x55\x74\x56\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x9f\x00\x00\x00\x00\x48\xdd\x00\x00\x00\x00\x5b\xc8\x00\x00\x00\x00\x00\x00\x68\x9e\x00\x00\x4a\x8e\x00\x00\x00\x00\x6b\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc7\x00\x00\x00\x00\x00\x00\x68\xa1\x00\x00\x68\xa0\x00\x00\x4b\x5e\x4e\xd9\x4e\x9d\x00\x00\x4c\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa5\x00\x00\x00\x00\x00\x00\x59\x48\x00\x00\x4f\xbe\x54\x8f\x69\x56\x69\x57\x50\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa8", /* 7a80 */ "\x69\x58\x57\x5b\x00\x00\x54\x74\x5b\x4d\x00\x00\x69\x59\x00\x00\x69\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6f\x00\x00\x00\x00\x00\x00\x59\xa3\x5b\xce\x00\x00\x00\x00\x69\x5b\x4f\x71\x4a\xaf\x4f\xbc\x00\x00\x00\x00\x00\x00\x4a\xdb\x57\xd0\x00\x00\x50\x7f\x69\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9b\x69\x5c\x00\x00\x69\x5f\x00\x00\x00\x00\x00\x00\x69\x5e\x69\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf9\x00\x00\x00\x00\x5b\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb9\x4f\xb8\x5b\x62\x00\x00\x00\x00\x50\x42\x00\x00\x57\x4f\x69\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7f\x00\x00\x4b\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf0\x6a\x63\x00\x00\x00\x00\x6a\x64\x00\x00\x4c\xcc", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x6a\x66\x6a\x67\x00\x00\x48\xc9\x00\x00\x6a\x65\x00\x00\x6a\x69\x56\x92\x00\x00\x00\x00\x00\x00\x6a\x6b\x00\x00\x58\xa5\x00\x00\x00\x00\x49\x6a\x6a\x68\x00\x00\x00\x00\x00\x00\x6a\x6f\x00\x00\x4b\x71\x00\x00\x00\x00\x6a\x77\x00\x00\x6a\x72\x00\x00\x00\x00\x00\x00\x6a\x74\x6a\x73\x4c\x9c\x00\x00\x49\x5f\x00\x00\x6a\x6e\x6a\x6a\x4b\x7a\x00\x00\x6a\x70\x00\x00\x00\x00\x6a\x71\x00\x00\x6a\x75\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x6d\x00\x00\x4e\xe2\x00\x00\x51\x9e\x00\x00\x6a\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x7a\x00\x00\x6a\x6c\x00\x00\x4b\x68\x00\x00\x4f\x8f\x6a\x7c\x00\x00\x00\x00\x4c\x44\x50\x91\x5b\xfd\x57\x52\x00\x00\x4a\xef\x00\x00\x49\xde\x00\x00\x6a\x78\x00\x00\x6a\x79\x55\x58\x00\x00\x6a\x7d\x00\x00\x00\x00\x6a\x7e\x00\x00\x6a\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x7f\x00\x00\x00\x00\x6a\x84\x6a\x83\x00\x00\x00\x00\x6a\x7b\x00\x00\x50\x8b\x00\x00\x4a\x90\x00\x00\x6a\x81\x00\x00\x00\x00\x54\x49\x00\x00", /* 7b80 */ "\x4e\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5f\x00\x00\x00\x00\x6a\x85\x00\x00\x00\x00\x00\x00\x49\xac\x4e\x9f\x00\x00\x56\x84\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8e\x6a\x8a\x00\x00\x00\x00\x00\x00\x4d\x7c\x6a\x8f\x00\x00\x00\x00\x00\x00\x6a\x86\x6a\x87\x6a\x8b\x51\xe0\x6a\x8d\x6a\x90\x6a\x89\x4e\xfc\x00\x00\x00\x00\x00\x00\x58\x85\x00\x00\x00\x00\x6a\x91\x00\x00\x00\x00\x00\x00\x6a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x4d\x53\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x94\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x92\x00\x00\x51\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdc\x6a\x96\x00\x00\x00\x00\x6a\x95\x00\x00\x00\x00\x00\x00\x4a\xda\x00\x00\x00\x00\x00\x00\x6a\x97\x6a\x98\x00\x00\x00\x00\x00\x00\x6a\x99\x00\x00\x00\x00\x00\x00\x50\xb9\x00\x00\x00\x00\x50\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x92\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x9c\x00\x00\x6a\x9b\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd7\x00\x00\x00\x00\x00\x00\x6a\x9f\x6a\x9a\x00\x00\x00\x00\x6a\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa2\x4e\x69\x00\x00\x00\x00\x6a\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xbd\x6a\xa5\x6a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x77\x5d\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdf\x6a\xcb\x5c\x71\x00\x00\x00\x00", /* 7c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xcd\x51\x43\x00\x00\x00\x00\x53\xc8\x00\x00\x4a\xd5\x5b\x53\x00\x00\x00\x00\x00\x00\x6a\xcf\x6a\xce\x6a\xd0\x56\x7a\x00\x00\x00\x00\x6a\xd1\x00\x00\x5a\xc0\x5b\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x81\x00\x00\x00\x00\x00\x00\x51\x58\x00\x00\x00\x00\x51\x5b\x6a\xd2\x4f\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xe1\x00\x00\x00\x00\x6a\xd3\x6a\xd4\x4f\xaa\x00\x00\x00\x00\x6a\xd5\x00\x00\x00\x00\x00\x00\x6a\xda\x00\x00\x6a\xd6\x6a\xd9\x00\x00\x4d\xfc\x00\x00\x6a\xd7\x6a\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe1\x56\xc6\x6a\xdb\x00\x00\x49\xd9\x00\x00\x00\x00\x52\x73\x00\x00\x00\x00\x5a\xe2\x50\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe8\x00\x00\x00\x00\x58\x55\x00\x00\x00\x00\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x78\x00\x00\x56\x98\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x95\x00\x00\x00\x00\x00\x00\x5c\x6f\x00\x00\x00\x00\x00\x00\x50\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e80 */ "\x00\x00\x00\x00\x5c\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xed\x00\x00\x00\x00\x00\x00\x63\xf8\x4f\xbf\x63\xf9\x4d\xeb\x63\xfa\x58\x6b\x63\xfb\x5a\xbb\x4e\xb5\x63\xfc\x63\xfd\x4e\xcc\x54\xd1\x57\xb2\x64\x41\x00\x00\x4a\xbe\x64\x42\x55\x54\x4c\xd8\x52\xc8\x00\x00\x5c\x7d\x51\xd9\x4c\x77\x5b\xbc\x57\xc5\x4c\x64\x00\x00\x00\x00\x53\x46\x64\x43\x58\x7f\x64\x44\x64\x45\x64\x46\x51\x57\x5c\x8a\x55\x91\x58\x58\x5b\xae\x5b\xd4\x64\x47\x48\xec\x64\x48\x64\x49\x55\x7c\x59\xee\x4f\xac\x64\x4a\x48\xf2\x54\xdd\x4f\x82\x64\x4b\x54\xc5\x00\x00\x64\x4c\x4e\x87\x4c\xf7\x59\x44\x64\x4d\x51\xe6\x4f\xf7\x4f\x6a\x57\x53\x64\x4e\x64\x4f\x4f\xed\x58\xe4\x00\x00\x56\x88\x56\xcf\x4e\xcb\x64\x50\x4e\xa7\x58\xf6\x64\x51\x00\x00\x58\xf7\x64\x52\x64\x53\x4a\xc1\x64\x54\x64\x55\x55\x9f\x57\xab\x52\x81\x64\x57\x49\x61\x4a\x92\x00\x00\x64\x58\x64\x59\x5c\x7b\x5b\x60\x64\x5a\x51\xcb", /* 7f00 */ "\x5c\x5a\x64\x5b\x64\x5c\x64\x5d\x4e\xe9\x52\x86\x50\xc1\x64\x5e\x64\x5f\x4e\xa8\x00\x00\x64\x60\x64\x61\x64\x56\x4b\xcf\x64\x62\x00\x00\x64\x63\x64\x64\x4e\x5a\x4b\x7e\x51\xc5\x49\x81\x64\x65\x5a\xb4\x64\x66\x4c\xbe\x64\x68\x64\x67\x4c\x8d\x00\x00\x64\x69\x49\xf7\x64\x6a\x64\x6b\x64\x6c\x64\x6d\x64\x6e\x64\x6f\x64\x70\x5a\x47\x56\x96\x64\x71\x64\x72\x64\x73\x64\x74\x55\x69\x64\x75\x64\x76\x64\x77\x64\x78\x64\x79\x4f\x69\x64\x7a\x6a\x5e\x00\x00\x4c\xd6\x00\x00\x54\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5f\x00\x00\x6a\x60\x6a\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7e\x57\x99\x00\x00\x00\x00\x5c\xe7\x4d\xb0\x00\x00\x51\xdd\x67\xb6\x00\x00\x4c\x43\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb8\x00\x00\x67\xb7\x48\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xba\x5b\x76\x5c\x90\x00\x00\x00\x00\x00\x00\x5b\xc2\x00\x00\x00\x00\x67\xbc\x55\xef\x00\x00\x67\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbf\x00\x00", /* 7f80 */ "\x00\x00\x67\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x93\x00\x00\x54\x5c\x00\x00\x52\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x88\x00\x00\x00\x00\x6a\xc5\x58\xde\x6a\xc6\x00\x00\x58\x7b\x00\x00\x00\x00\x54\xb9\x00\x00\x00\x00\x6a\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc8\x6a\xc9\x00\x00\x6a\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9b\x4c\xfd\x00\x00\x00\x00\x63\x92\x5a\x91\x00\x00\x6a\xdf\x00\x00\x57\xcb\x00\x00\x00\x00\x00\x00\x4a\x82\x00\x00\x00\x00\x00\x00\x00\x00\x69\x54\x00\x00\x59\xed\x00\x00\x6a\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x89\x6a\xe1\x00\x00\x00\x00\x54\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x74\x4a\xe3\x6a\xe3\x00\x00\x00\x00\x00\x00\x6a\xe2\x6a\xe4\x00\x00\x00\x00\x6a\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe6\x00\x00\x4d\xb1\x48\xbe\x00\x00\x6a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4d\x59\xec\x00\x00\x00\x00\x00\x00", /* 8000 */ "\x59\xaa\x50\xce\x00\x00\x50\x5c\x66\x43\x5b\x7f\x65\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x69\x94\x4b\xf7\x56\x43\x00\x00\x00\x00\x52\xcc\x00\x00\x69\x88\x00\x00\x69\x89\x4c\xfa\x69\x8a\x4d\xc3\x5a\xc4\x48\xd1\x00\x00\x00\x00\x69\x8b\x00\x00\x00\x00\x00\x00\x69\x8c\x00\x00\x69\x8d\x00\x00\x00\x00\x69\x8e\x69\x8f\x69\x90\x69\x92\x69\x91\x53\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x93\x00\x00\x4b\xf9\x00\x00\x69\x95\x59\xad\x5f\xc6\x56\x6a\x00\x00\x00\x00\x4a\x7c\x00\x00\x4b\x42\x00\x00\x4d\x42\x00\x00\x00\x00\x52\xf3\x69\x96\x00\x00\x00\x00\x69\x97\x00\x00\x00\x00\x00\x00\x51\x64\x51\x9c\x5b\xaf\x69\x98\x00\x00\x00\x00\x00\x00\x00\x00\x69\x99\x00\x00\x51\x4a\x00\x00\x00\x00\x00\x00\x53\xb7\x00\x00\x4f\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x9a\x4a\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x52", /* 8080 */ "\x67\x51\x00\x00\x00\x00\x56\x81\x59\xdd\x00\x00\x56\x61\x5b\x78\x00\x00\x54\xe1\x00\x00\x50\xde\x4e\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x61\x00\x00\x00\x00\x58\xa3\x00\x00\x5b\xe1\x00\x00\x4b\xc6\x4c\xd7\x66\x60\x4c\xcd\x00\x00\x66\x5f\x4a\x46\x4d\x69\x5b\xaa\x00\x00\x4c\x95\x4c\x6a\x00\x00\x00\x00\x00\x00\x4e\xe6\x4c\x5e\x66\x66\x00\x00\x66\x67\x48\xb8\x50\x6f\x00\x00\x66\x65\x5a\x9e\x00\x00\x66\x68\x00\x00\x00\x00\x66\x69\x00\x00\x00\x00\x4c\x6e\x00\x00\x66\x62\x66\x64\x55\x97\x5b\xd6\x5b\x6d\x58\xb1\x66\x6f\x57\xb7\x66\x70\x00\x00\x4b\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x53\x66\x72\x56\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x76\x66\x73\x00\x00\x66\x71\x53\x7f\x66\x6e\x55\xa3\x66\x75\x48\xfa\x00\x00\x00\x00\x4d\xf9\x00\x00\x00\x00\x5c\xb6\x69\x84\x00\x00\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x76\x63\xbf\x66\x79\x00\x00\x50\x89\x59\xc7\x66\x77\x66\x7c\x4c\xeb\x66\x78\x00\x00\x4f\x5a\x00\x00\x58\xd7\x00\x00\x48\xb6\x00\x00\x66\x7d\x52\xdb\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x5b\xab\x00\x00\x00\x00\x00\x00\x4a\xdf\x00\x00\x00\x00\x51\xf5\x4e\xb8\x00\x00\x00\x00\x66\x7a\x66\x7b\x5a\xdf\x53\xe9\x52\xd3\x66\x7f\x53\x47\x5d\x96\x00\x00\x49\xb0\x00\x00\x66\x85\x00\x00\x4f\x65\x00\x00\x00\x00\x00\x00\x66\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x84\x00\x00\x00\x00\x4c\xab\x00\x00\x57\x71\x66\x86\x00\x00\x00\x00\x00\x00\x66\x82\x00\x00\x51\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xf2\x00\x00\x66\x87\x00\x00\x50\xaf\x59\xb7\x66\x88\x00\x00\x00\x00\x00\x00\x4c\xae\x4c\xac\x00\x00\x66\x89\x54\x5b\x57\x94\x00\x00\x00\x00\x00\x00\x66\x8b\x66\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc7\x00\x00\x66\x93\x00\x00\x66\x8f\x00\x00\x00\x00\x00\x00\x66\x92\x54\xf8\x00\x00\x59\x9d\x66\x8d\x00\x00\x00\x00\x66\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb8\x58\x79\x52\xe4\x66\x90\x66\x91\x56\xd9\x57\x68", /* 8180 */ "\x48\xf1\x00\x00\x66\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x96\x00\x00\x49\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdf\x00\x00\x66\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x8d\x00\x00\x00\x00\x56\xc4\x52\xa3\x58\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x9a\x00\x00\x00\x00\x66\xa1\x00\x00\x53\x93\x00\x00\x66\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xde\x66\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6e\x66\xa0\x49\x7b\x5a\x57\x00\x00\x00\x00\x59\xdb\x00\x00\x00\x00\x00\x00\x66\x9e\x00\x00\x66\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5c\x00\x00\x00\x00\x00\x00\x65\xaf\x00\x00\x00\x00\x5c\x74\x00\x00\x6a\xaa\x4a\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc0\x5b\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8a\x4f\xc9\x00\x00\x6a\xa6\x00\x00", /* 8200 */ "\x59\xa7\x6a\xa7\x6a\xa8\x00\x00\x6a\xa9\x4f\xca\x5a\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x81\x55\x82\x00\x00\x00\x00\x6a\x62\x00\x00\x55\xe5\x00\x00\x56\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb5\x56\x54\x00\x00\x57\xe7\x5b\xda\x00\x00\x6a\xac\x6a\xad\x6a\xae\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xb1\x00\x00\x4d\xbc\x6a\xb2\x48\xe2\x6a\xaf\x00\x00\x6a\xb0\x4f\x42\x49\xd4\x00\x00\x6a\xb5\x6a\xb6\x4b\xe5\x49\xaf\x58\x6f\x6a\xb3\x4a\xab\x00\x00\x6a\xb4\x00\x00\x00\x00\x6a\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xb8\x00\x00\x00\x00\x57\x47\x00\x00\x6a\xb9\x00\x00\x6a\xba\x00\x00\x00\x00\x00\x00\x6a\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x72\x00\x00\x6a\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xdd\x51\x5c\x4e\xe7\x00\x00\x55\x4b\x59\x7e\x63\x96\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb2\x59\xd4\x00\x00\x00\x00\x5e\xb3\x48\xab\x5e\xb4", /* 8280 */ "\x00\x00\x00\x00\x4f\x7a\x00\x00\x5e\xb8\x00\x00\x00\x00\x00\x00\x5c\xc1\x00\x00\x5e\xb6\x5a\x94\x00\x00\x55\x76\x5e\xb9\x5e\xb5\x00\x00\x5e\xba\x52\x42\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbb\x5e\xc4\x5e\xbc\x00\x00\x00\x00\x57\xde\x5b\xa4\x00\x00\x5e\xce\x00\x00\x5e\xcc\x00\x00\x00\x00\x5e\xd1\x4f\x87\x51\xaa\x00\x00\x5e\xb7\x5e\xca\x5e\xcd\x5e\xbd\x4c\x72\x48\xc4\x5e\xc6\x58\xbd\x5e\xc0\x4e\x48\x00\x00\x4c\x5c\x5e\xcb\x00\x00\x00\x00\x5e\xc5\x5e\xbe\x54\x7b\x00\x00\x00\x00\x00\x00\x59\x5f\x5e\xbf\x00\x00\x00\x00\x5e\xc9\x00\x00\x00\x00\x5e\xcf\x00\x00\x00\x00\x57\xac\x5e\xc1\x00\x00\x5e\xc2\x5e\xc7\x5e\xc8\x49\xd3\x5e\xd0\x56\x75\x00\x00\x5a\xb6\x5e\xda\x5e\xde\x56\xa5\x5e\xe5\x00\x00\x52\x88\x5e\xdb\x00\x00\x00\x00\x50\x61\x5e\xd8\x00\x00\x48\xf9\x4d\x56\x5e\xe4\x5e\xd2\x00\x00\x5e\xc3\x5e\xd5\x54\xf3\x50\x81\x00\x00\x00\x00\x00\x00\x00\x00\x55\x5b\x00\x00\x00\x00\x00\x00\x49\x5d\x00\x00\x5a\x42\x00\x00\x00\x00\x5e\xd9\x00\x00\x00\x00\x5e\xd4\x00\x00\x53\xba\x00\x00\x5e\xdd\x00\x00\x00\x00\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x5c\x62\x52\x4f\x4c\x56\x54\x71\x52\x49\x5e\xe1\x5e\xd7\x5e\xea\x5e\xd3\x00\x00\x00\x00\x5e\xdc\x00\x00\x4f\xa4\x5e\xd6\x00\x00\x5e\xdf\x00\x00\x00\x00\x5e\xe2\x5e\xe3\x00\x00\x5e\xf7\x00\x00\x00\x00\x5e\xe0\x5f\x42\x5e\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xea\x4a\xc3\x00\x00\x00\x00\x52\x43\x49\xe6\x5e\xf9\x00\x00\x5e\xf1\x00\x00\x5e\xee\x00\x00\x5e\xfb\x5e\xed\x59\xef\x49\xe7\x00\x00\x54\xd6\x54\xe2\x5e\xfa\x00\x00\x5e\xec\x00\x00\x00\x00\x00\x00\x5e\xf6\x00\x00\x00\x00\x5e\xf4\x00\x00\x00\x00\x4f\xa2\x5e\xf3\x00\x00\x49\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf2\x4e\xf5\x5e\xe7\x4e\x64\x00\x00\x50\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xd3\x5e\xe8\x5e\xe9\x00\x00\x5e\xf0\x5e\xf5\x5e\xf8\x4b\x54\x00\x00\x54\xd8\x4e\x88\x5e\xfd\x5e\xfc\x5a\x4b\x5f\x41\x5f\x43\x5f\x45\x59\xf0\x5f\x44\x5f\x46\x5f\x47\x59\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc8\x5f\x49\x00\x00\x00\x00\x5f\x56\x5f\x51\x5f\x54\x00\x00\x00\x00", /* 8380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x50\x53\xcd\x00\x00\x00\x00\x50\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4f\x00\x00\x00\x00\x00\x00\x5e\xeb\x5f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x00\x00\x00\x00\x5e\xef\x5f\x4f\x00\x00\x5f\x58\x00\x00\x5f\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x59\x5f\x53\x5f\x4d\x52\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x48\x50\xb2\x51\x4b\x5f\x4a\x5f\x4b\x00\x00\x5f\x52\x4e\x92\x5f\x55\x5a\x48\x5f\x5a\x00\x00\x5f\x5b\x52\x47\x00\x00\x00\x00\x5f\x72\x5f\x5c\x00\x00\x00\x00\x00\x00\x5f\x71\x00\x00\x4d\x5d\x00\x00\x00\x00\x4f\xd4\x00\x00\x4f\xf9\x00\x00\x00\x00\x4d\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x6a\x00\x00\x5f\x65\x00\x00\x5f\x5f\x00\x00\x00\x00\x00\x00\x49\xca\x5f\x63\x00\x00\x5f\x6b\x49\xa3\x5f\x75\x00\x00\x00\x00\x00\x00\x5f\x5e\x00\x00\x00\x00\x00\x00\x53\xcf\x5f\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x74\x51\x83\x4c\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x6e\x5f\x6f\x00\x00\x00\x00\x00\x00\x5f\x64\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x5f\x5d\x00\x00\x5f\x6d\x56\xd0\x00\x00\x5f\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x62\x52\x68\x53\xbb\x57\xad\x5f\x6c\x00\x00\x5f\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x61\x00\x00\x00\x00\x00\x00\x5f\x66\x51\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x49\x5a\x4a\x5f\x73\x58\x95\x54\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x67\x00\x00\x00\x00\x00\x00\x5f\x81\x51\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf7\x00\x00\x5f\x79\x5f\x78\x4c\xef\x5f\x76\x00\x00\x00\x00\x00\x00\x00\x00\x53\xce\x00\x00\x4b\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x83\x00\x00\x4d\xf8\x5a\xe0\x5f\x88\x00\x00\x00\x00\x00\x00\x4a\xcf\x00\x00\x5f\x7a\x00\x00\x50\x9c\x5f\x84\x00\x00\x5f\x7f\x00\x00\x5f\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x4b\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x7b\x5f\x7c\x5f\x7e\x00\x00\x4f\x4f\x5f\x85\x00\x00\x5f\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x96\x00\x00\x52\x69\x00\x00\x00\x00\x56\x83\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe0\x00\x00\x00\x00\x53\xd0\x00\x00\x5f\x95\x00\x00\x00\x00\x00\x00\x5b\x95\x5f\x94\x5f\x91\x00\x00\x00\x00\x5f\x8d\x00\x00\x5f\x90\x00\x00\x5f\x89\x00\x00\x00\x00\x58\xed\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd7\x5f\x8f\x00\x00\x00\x00\x5f\x8a\x00\x00\x00\x00\x5f\x8b\x56\x93\x00\x00\x5f\x8e\x00\x00\x00\x00\x49\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb5\x00\x00\x4e\xba\x5f\x92\x00\x00\x00\x00\x5f\x98\x00\x00\x5f\x97\x5f\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x8f\x00\x00\x00\x00\x00\x00\x5f\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa3\x00\x00\x00\x00\x5f\xa2", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x99\x00\x00\x00\x00\x00\x00\x00\x00\x52\x90\x00\x00\x51\xfa\x00\x00\x00\x00\x00\x00\x5b\x82\x00\x00\x00\x00\x57\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9e\x00\x00\x49\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe7\x55\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x5e\x5f\x9b\x5f\x9d\x5f\x9f\x5f\xa1\x48\xa9\x49\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xab\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa5\x4f\x56\x54\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa0\x00\x00\x00\x00\x5f\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa7\x00\x00\x00\x00\x00\x00\x5f\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xac\x00\x00\x5a\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb2\x5f\xa9\x5f\xad\x00\x00\x00\x00\x50\xd8\x00\x00", /* 8580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x49\x41\x5f\xb5\x00\x00\x5f\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x46\x5f\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xae\x00\x00\x00\x00\x00\x00\x5f\xaf\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x5f\xb3\x55\xec\x5f\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb7\x00\x00\x5f\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xd7\x52\x8b\x00\x00\x00\x00\x5f\xb9\x00\x00\x53\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe4\x00\x00\x00\x00\x00\x00\x5f\xbc", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbd\x00\x00\x5f\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x5a\x00\x00\x00\x00\x00\x00\x5f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xad\x4e\x42\x51\xb1\x53\x50\x51\xc6\x00\x00\x00\x00\x69\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe8\x00\x00\x00\x00\x00\x00\x5a\x7d\x00\x00\x00\x00\x00\x00\x66\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x87\x69\xaf\x00\x00\x69\xb0\x00\x00\x00\x00\x55\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe6\x69\xb2\x69\xb4\x69\xb3\x56\x85\x58\x5a\x69\xb1", /* 8680 */ "\x55\xb3\x59\xce\x51\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x69\xb7\x48\xf5\x69\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xbd\x00\x00\x49\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x61\x69\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xbb\x5a\xe8\x00\x00\x00\x00\x69\xba\x69\xb5\x69\xbe\x69\xbc\x00\x00\x69\xb8\x00\x00\x00\x00\x69\xc6\x69\xc3\x69\xc5\x00\x00\x00\x00\x69\xc9\x69\xc1\x69\xbf\x00\x00\x00\x00\x00\x00\x69\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfa\x00\x00\x00\x00\x00\x00\x69\xc0\x00\x00\x54\x9a\x55\x7f\x00\x00\x69\xc7\x4d\x66\x4b\x50\x00\x00\x00\x00\x69\xc2\x69\xc8\x69\xcf\x69\xd5\x00\x00\x00\x00\x4e\x77\x00\x00\x00\x00\x00\x00\x69\xd4\x57\x7c\x00\x00\x5b\xea\x00\x00\x00\x00\x69\xd1\x69\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x69\xca\x00\x00\x00\x00\x00\x00\x69\xcd\x51\xf8\x00\x00\x5b\x7d\x69\xcb\x69\xcc\x69\xce\x69\xd2\x00\x00\x00\x00\x00\x00\x69\xd8\x5a\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe9\x00\x00", /* 8700 */ "\x55\xf0\x00\x00\x4c\x85\x69\xd6\x00\x00\x00\x00\x00\x00\x69\xd7\x69\xd9\x69\xdc\x69\xda\x00\x00\x00\x00\x69\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x59\x71\x69\xd0\x00\x00\x57\x69\x00\x00\x57\xce\x5b\xa8\x00\x00\x69\xe2\x00\x00\x52\x7b\x00\x00\x69\xdf\x00\x00\x00\x00\x50\xae\x69\xeb\x69\xdd\x00\x00\x69\xe0\x00\x00\x00\x00\x00\x00\x69\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x69\xe1\x00\x00\x00\x00\x69\xe6\x00\x00\x00\x00\x69\xe5\x00\x00\x00\x00\x69\xe8\x00\x00\x00\x00\x00\x00\x69\xde\x00\x00\x00\x00\x69\xe3\x69\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4c\x69\xe4\x49\xf4\x00\x00\x00\x00\x69\xf1\x00\x00\x58\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x69\xf4\x00\x00\x00\x00\x00\x00\x4e\x68\x00\x00\x69\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xef\x00\x00\x00\x00\x69\xf5\x69\xf7\x69\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xf2\x00\x00\x69\xf0\x00\x00\x00\x00\x00\x00\x4d\xfa\x00\x00\x4b\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x69\xee\x69\xf6\x69\xec\x69\xed\x00\x00", /* 8780 */ "\x00\x00\x00\x00\x69\xea\x6a\x46\x00\x00\x6a\x43\x00\x00\x00\x00\x6a\x42\x00\x00\x00\x00\x69\xf3\x00\x00\x54\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xfa\x00\x00\x00\x00\x00\x00\x6a\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xfc\x00\x00\x00\x00\x6a\x47\x6a\x49\x6a\x44\x00\x00\x69\xfb\x00\x00\x00\x00\x00\x00\x6a\x4b\x00\x00\x6a\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x00\x00\x6a\x4e\x00\x00\x00\x00\x6a\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x41\x00\x00\x00\x00\x00\x00\x6a\x51\x6a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x4f\x69\xfd\x6a\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x52\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x54\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x48\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x53\x00\x00\x00\x00\x00\x00\x6a\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x58\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x5d\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x57\x00\x00\x54\xe3\x6a\x56\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5b\x4a\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5c\x00\x00\x00\x00\x6a\x5d\x00\x00\x00\x00\x00\x00\x59\x4a\x00\x00\x00\x00\x00\x00\x6a\xab\x58\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xcf\x59\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x6e\x00\x00\x00\x00\x4f\x76\x00\x00\x59\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe1\x61\x8a\x59\xc1\x69\x62\x49\xb8\x00\x00\x00\x00\x49\x8e\x69\x63\x00\x00\x55\x60\x4a\x64\x00\x00\x5d\x93\x00\x00\x56\x45\x00\x00\x69\x64\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x65\x6a\xbf\x69\x66", /* 8880 */ "\x00\x00\x5a\xab\x69\x67\x00\x00\x48\xbf\x6a\xc0\x00\x00\x00\x00\x6a\xc1\x00\x00\x00\x00\x4a\xfb\x00\x00\x53\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x56\xba\x00\x00\x00\x00\x00\x00\x58\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x68\x00\x00\x5d\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x5b\x00\x00\x58\x4e\x00\x00\x00\x00\x00\x00\x4c\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc2\x51\x71\x00\x00\x00\x00\x5c\x50\x69\x69\x00\x00\x00\x00\x69\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6e\x00\x00\x00\x00\x00\x00\x5d\x97\x00\x00\x59\xe0\x5a\xa2\x00\x00\x00\x00\x6a\xc2\x54\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc3\x00\x00\x00\x00\x69\x6d\x69\x6f\x50\x84\x69\x70\x00\x00\x00\x00\x69\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x76\x69\x71\x00\x00\x55\x71\x53\x82\x00\x00\x00\x00\x00\x00\x51\xe2\x4d\x9d\x00\x00\x00\x00\x69\x73\x00\x00\x69\x75\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x4d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd5\x00\x00\x48\xfc\x69\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x78\x69\x72\x69\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x77\x00\x00\x00\x00\x00\x00\x54\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6a\x69\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5d\x00\x00\x00\x00\x00\x00\x69\x7c\x00\x00\x69\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x7f\x00\x00\x00\x00\x58\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc4\x4f\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x82\x00\x00\x00\x00\x00\x00\x57\xf6", /* 8980 */ "\x00\x00\x59\xa9\x00\x00\x69\x9c\x00\x00\x00\x00\x4c\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xfa\x4d\x7b\x00\x00\x4d\x87\x52\x79\x55\xd2\x65\xe7\x50\xbf\x4f\xf4\x65\xe8\x65\xe9\x65\xea\x00\x00\x65\xeb\x65\xec\x65\xed\x65\xee\x4f\x67\x00\x00\x00\x00\x00\x00\x6b\x9c\x00\x00\x00\x00\x00\x00\x6b\x9e\x00\x00\x6b\x9f\x00\x00\x6b\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x83\x00\x00\x6b\xa0\x4a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa1\x00\x00\x00\x00\x00\x00\x6b\xa2\x00\x00\x00\x00\x00\x00\x66\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a00 */ "\x59\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9f\x56\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8b80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa4\x4e\xc5\x4b\xa8\x4c\xbb\x54\xce\x4e\xa4\x5d\xa5\x5d\xa6\x56\xd5\x54\xc2\x5d\xa7\x53\xfc\x00\x00\x59\x55\x59\xe8\x59\x56\x4e\xc6\x00\x00\x4f\x52\x4e\x85\x5d\xa8\x5d\xa9\x59\x68\x5d\xaa\x58\xec\x4b\xee\x51\xda\x00\x00\x56\x6f\x4c\x8e\x55\x89\x4c\x63\x4f\xf6\x5b\xa3\x5d\xab\x5d\xac\x53\xbf\x5c\x88\x55\xb5\x00\x00\x5b\x49\x56\x7f\x5b\x90\x5d\xad\x5b\xde\x4a\xc9\x5d\xaf\x5d\xae\x00\x00\x59\xea\x5d\xb0\x5d\xb1\x5d\xb2\x55\xd3\x5d\xb3\x55\xaa\x5d\xb4\x5d\xb5\x4a\x6f\x5b\xee\x5d\xb6\x4e\x50\x4b\x4e\x5d\xb7\x5d\xb8\x4d\x8f\x59\x4f\x59\xe7\x5d\xb9\x4c\xc2\x58\x8b\x49\xee\x5d\xba\x5d\xbb\x00\x00\x4f\x8c\x57\xdb\x5a\x90\x5d\xbc\x57\xf2\x5d\xbd\x5a\x75\x4e\x86\x5d\xbe\x56\x55\x56\x70\x5d\xbf\x54\x8c\x5b\xed\x5d\xc0\x53\x55\x4b\xc0\x5d\xc1\x4c\x6c\x50\x6e\x5d\xc2", /* 8c00 */ "\x5d\xc3\x56\x4d\x5d\xc4\x4b\x98\x5d\xc5\x51\x62\x5c\x5b\x5d\xc6\x56\xb7\x00\x00\x59\xe9\x52\xb0\x5d\xc7\x4b\x9e\x4e\x71\x5d\xc8\x58\xb2\x5d\xc9\x5d\xca\x57\xbc\x5d\xcb\x5d\xcc\x5d\xcd\x49\xf6\x5d\xd0\x5d\xce\x59\x89\x5d\xcf\x52\x75\x5d\xd1\x00\x00\x5d\xd2\x5d\xd3\x5d\xd4\x58\xba\x59\xa4\x48\xf8\x5d\xd5\x54\x4b\x5d\xd6\x4f\x98\x52\x41\x5d\xd7\x5d\xd8\x52\x9e\x56\xb6\x5d\xd9\x5d\xda\x50\xbd\x53\xd6\x5d\xdb\x5d\xdc\x54\x54\x5d\xdd\x5d\xde\x4d\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb8\x6a\xf7\x00\x00\x6a\xf8\x00\x00\x00\x00\x57\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x59\x00\x00\x00\x00\x00\x00\x00\x00\x66\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x94\x4e\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xbf\x5a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x79\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x95\x49\x4a\x49\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c80 */ "\x00\x00\x00\x00\x6b\x96\x00\x00\x00\x00\x6b\x98\x00\x00\x00\x00\x00\x00\x4d\xd0\x6b\x97\x00\x00\x52\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x9a\x00\x00\x00\x00\x00\x00\x6b\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x54\x5b\x8b\x4c\xb9\x00\x00\x4d\x51\x49\xc5\x5a\xef\x58\x6d\x48\xdb\x5b\x6b\x4e\x96\x5b\xc9\x4c\x57\x56\xaf\x53\xb5\x49\x82\x4d\x5a\x5b\xfb\x4d\x82\x4c\x41\x4e\xf9\x65\xd9\x65\xda\x56\xf8\x4d\x94\x65\xdb\x4a\xfa\x52\x53\x4c\x71\x4d\xd7\x65\xdc\x5a\xf3\x65\xdd\x4e\xd5\x4e\x7f\x65\xde\x51\x7e\x51\xb7\x5a\xde\x5c\x6a\x65\xdf\x65\xe0\x65\xe3\x65\xe1\x65\xe2\x55\x7e\x4c\xb2\x4b\xc3\x65\xe4\x55\xe9\x55\x6d\x4a\xcc\x00\x00\x00\x00\x61\xd8\x53\x83\x65\xe5\x50\xb4\x00\x00\x5c\x58\x65\xe6\x5c\x4c\x54\xfb\x5c\xd2\x5c\xcc\x5a\xdd\x00\x00\x5a\xf8\x55\x64\x5a\x4e\x4c\xd2\x4a\x81\x00\x00\x55\x83\x6a\xf5\x00\x00\x00\x00\x00\x00\x4d\xd4\x00\x00\x6a\xf6\x00\x00\x00\x00\x5c\x7f\x00\x00\x00\x00\x6a\xf0\x4c\xaf\x5b\x74\x4c\xce\x53\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d80 */ "\x00\x00\x4a\x63\x00\x00\x00\x00\x6a\xf1\x4a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xbc\x54\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf3\x00\x00\x00\x00\x6a\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xca\x00\x00\x00\x00\x00\x00\x54\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf4\x00\x00\x5c\x84\x53\x5f\x6b\x60\x00\x00\x00\x00\x6b\x5b\x00\x00\x6b\x63\x00\x00\x6b\x62\x00\x00\x5b\xb9\x6b\x61\x00\x00\x00\x00\x00\x00\x5a\xbd\x6b\x64\x00\x00\x6b\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x48\xce\x4b\x99\x00\x00\x6b\x69\x6b\x6a\x00\x00\x53\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x65\x6b\x66\x00\x00\x00\x00\x6b\x67\x6b\x6b\x00\x00\x4f\xdf\x6b\x68\x4c\xf9\x00\x00\x00\x00\x00\x00\x6b\x70\x6b\x73\x00\x00\x00\x00\x00\x00\x50\x88\x00\x00\x4d\x93\x6b\x5c\x6b\x6d\x00\x00\x00\x00\x51\xb6\x00\x00\x00\x00\x00\x00\x56\xf7\x00\x00\x4e\xf8\x00\x00\x6b\x6e\x6b\x6f\x6b\x71\x4b\xe4\x6b\x72\x00\x00\x6b\x75\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5d\x00\x00\x00\x00\x00\x00\x6b\x74\x5a\x5b\x00\x00\x4a\x8d\x00\x00\x00\x00\x56\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x77\x4f\xe0\x6b\x78\x00\x00\x00\x00\x56\xde\x6b\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc7\x5c\x79\x00\x00\x6b\x79\x00\x00\x6b\x7a\x6b\x7c\x00\x00\x6b\x83\x00\x00\x00\x00\x00\x00\x6b\x81\x00\x00\x00\x00\x00\x00\x6b\x7f\x6b\x7d\x00\x00\x00\x00\x6b\x82\x00\x00\x00\x00\x6b\x7e\x6b\x85\x6b\x86\x00\x00\x56\xe2\x00\x00\x00\x00\x63\x5f\x4b\x58\x6b\x84\x6b\x89\x56\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x87\x6b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x64\x00\x00\x00\x00\x6b\x5f\x00\x00\x00\x00\x4b\x65\x49\xe3\x00\x00\x6b\x8d\x6b\x8a\x00\x00\x4b\xd6\x00\x00\x6b\x8e\x00\x00\x6b\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x8c\x00\x00\x00\x00\x4a\xd9", /* 8e80 */ "\x00\x00\x5a\xe9\x00\x00\x00\x00\x00\x00\x6b\x8f\x00\x00\x4a\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x90\x6b\x92\x00\x00\x00\x00\x00\x00\x6b\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x93\x00\x00\x6b\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x8e\x4d\x4a\x00\x00\x00\x00\x54\x9c\x00\x00\x00\x00\x4b\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x55\x5a\xfd\x4d\x8d\x58\xf8\x00\x00\x65\x8e\x5c\x4a\x65\x8f\x51\xd5\x54\xec\x4d\xe3\x65\x90\x65\x91\x65\x92\x5b\xe0\x65\x93\x65\x94\x65\x96\x65\x95\x65\x97\x65\x98\x54\x82\x65\x99\x5a\xd7\x65\x9a\x4f\x6e", /* 8f80 */ "\x00\x00\x65\x9b\x65\x9c\x4f\x6f\x65\x9d\x4c\xa7\x51\x5e\x65\x9e\x49\x52\x4e\x74\x4d\x96\x65\x9f\x00\x00\x65\xa0\x65\xa1\x65\xa2\x4c\x99\x4e\xac\x00\x00\x55\xe3\x60\xcd\x5a\xae\x58\x5d\x5b\x57\x65\xa3\x5b\x7e\x65\xa4\x58\xc0\x4d\x5c\x00\x00\x4a\xc6\x49\x79\x00\x00\x00\x00\x00\x00\x50\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x49\x87\x49\x88\x00\x00\x49\x89\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5d\x54\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x63\x61\x00\x00\x00\x00\x49\x7f\x00\x00\x00\x00\x00\x00\x51\x69\x4a\xee\x00\x00\x00\x00\x54\x48\x5a\x78\x00\x00\x53\xf8\x59\x58\x00\x00\x4d\x9e\x51\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4d\x00\x00\x5a\xca\x4f\x9d\x00\x00\x63\x62\x4c\x55\x63\x63\x00\x00\x00\x00\x4e\x59\x5b\x83\x00\x00\x4f\x99\x5a\xb5\x57\xa4\x51\x4c\x4a\x79\x00\x00\x00\x00\x56\xf5\x00\x00\x63\x66\x63\x64\x63\x68\x00\x00\x63\x6a\x63\x67\x4b\x6f\x53\xc7\x00\x00\x4b\x9d\x63\x65\x00\x00\x55\xf5\x00\x00\x00\x00\x63\x69\x00\x00\x00\x00\x00\x00\x52\x74\x49\x65\x4e\xa2\x00\x00\x00\x00\x00\x00\x5c\x57\x00\x00\x00\x00", /* 9000 */ "\x57\x6b\x56\x6d\x55\xc9\x56\xd2\x63\x6c\x63\x6b\x52\xe5\x00\x00\x00\x00\x59\x41\x59\x57\x63\x6d\x00\x00\x63\x70\x00\x00\x57\x58\x5b\xef\x63\x6f\x4b\x7d\x00\x00\x57\x5e\x00\x00\x63\x71\x4b\xb9\x00\x00\x00\x00\x57\x48\x4d\x85\x00\x00\x55\xc4\x4a\x71\x56\x79\x5a\xeb\x63\x72\x4c\x8b\x00\x00\x00\x00\x00\x00\x63\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x75\x4a\xfd\x63\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x73\x63\x74\x00\x00\x59\xdc\x00\x00\x00\x00\x51\xde\x49\x66\x00\x00\x5a\x83\x00\x00\x00\x00\x4b\xdc\x56\x8d\x00\x00\x63\x77\x00\x00\x00\x00\x5a\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x8a\x00\x00\x4b\xf3\x63\x7a\x63\x78\x63\x79\x4b\x60\x00\x00\x00\x00\x00\x00\x59\xc4\x63\x7c\x00\x00\x00\x00\x63\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7d\x54\x52\x00\x00\x59\xa2\x00\x00\x00\x00\x63\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe1\x5b\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x81\x5c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x82\x00\x00\x49\x7c", /* 9080 */ "\x59\x9c\x00\x00\x63\x83\x63\x85\x00\x00\x00\x00\x00\x00\x00\x00\x63\x84\x00\x00\x00\x00\x63\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd7\x00\x00\x4b\x6b\x00\x00\x64\x7f\x00\x00\x5d\xf4\x00\x00\x5d\xf7\x00\x00\x5d\xf5\x00\x00\x5d\xf6\x00\x00\x00\x00\x00\x00\x5d\xf9\x58\xce\x52\xc6\x00\x00\x00\x00\x48\xed\x00\x00\x00\x00\x00\x00\x58\xaf\x00\x00\x5d\xf8\x00\x00\x5a\x6a\x4d\xa9\x5e\x42\x54\x92\x00\x00\x5d\xfb\x5d\xfa\x55\x7b\x5d\xfc\x00\x00\x5e\x41\x5c\x7e\x5d\xfd\x51\x7a\x00\x00\x00\x00\x5e\x45\x00\x00\x00\x00\x5a\x95\x00\x00\x00\x00\x5e\x47\x5e\x44\x00\x00\x5e\x48\x00\x00\x00\x00\x4f\x5c\x00\x00\x00\x00\x00\x00\x50\xc8\x5e\x43\x5e\x46\x5b\xa2\x00\x00\x5e\x49\x00\x00\x00\x00\x00\x00\x5e\x4d\x00\x00\x00\x00\x00\x00\x5e\x4e\x5e\x4c\x4d\xc1\x00\x00\x00\x00\x00\x00\x50\x44\x5e\x4b\x00\x00\x00\x00\x00\x00\x5e\x4a\x5a\xc6\x49\xbe\x00\x00\x00\x00\x5e\x4f\x00\x00\x4d\x9a\x00\x00\x5e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5b\x00\x00\x00\x00\x00\x00\x4b\x46\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbb\x5e\x51\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x4b\xf4\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x54\x00\x00\x00\x00\x00\x00\x5e\x53\x5e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x57\x00\x00\x5e\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x59\x00\x00\x00\x00\x5e\x5a\x00\x00\x00\x00\x5a\x6f\x6a\xf9\x54\x96\x5c\x63\x53\x85\x6a\xfb\x6a\xfc\x6a\xfa\x00\x00\x4f\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x58\xee\x00\x00\x00\x00\x4c\x73\x00\x00\x00\x00\x5a\xcc\x56\xa9\x00\x00\x00\x00\x6b\x42\x6b\x41\x4d\xa7\x6a\xfd\x56\x76\x00\x00\x00\x00\x00\x00\x6b\x44\x50\xd1\x00\x00\x4a\x8b\x00\x00\x57\x4a\x6b\x45\x6b\x43\x4f\x54\x6b\x48\x00\x00\x6b\x49\x4f\x6d\x52\x58\x50\x82\x56\x82\x6b\x4a\x00\x00\x00\x00\x00\x00\x6b\x46\x6b\x47\x52\xef", /* 9180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x4c\x00\x00\x4a\xbb\x00\x00\x5c\x8e\x00\x00\x4a\xd6\x6b\x4b\x6b\x4e\x00\x00\x00\x00\x6b\x4d\x6b\x4f\x58\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x71\x54\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x50\x6b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x52\x00\x00\x00\x00\x6b\x53\x6b\x54\x6b\x55\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x57\x6b\x56\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc8\x00\x00\x5a\x74\x55\xcc\x00\x00\x50\xee\x5b\xd7\x59\xaf\x51\x5f\x00\x00\x4f\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9480 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc3\x67\xc4\x67\xc5\x5b\x8c\x4b\xa3\x67\xc7\x67\xc6\x67\xc8\x67\xc9\x54\x45\x67\xca\x67\xcb\x00\x00\x4c\x50\x4b\x97\x67\xcc\x67\xce\x00\x00\x67\xcd\x00\x00\x4c\xc5\x67\xcf\x67\xd0\x67\xd1\x4b\xda\x4a\x4e\x5b\xd2\x52\xc5\x49\x55\x4c\xd5\x67\xd2\x67\xd3\x5a\xbe\x54\x75\x4f\xfa\x57\xd8\x4d\x53\x67\xd5\x67\xd4\x67\xd7\x67\xd6\x53\x45\x67\xd8\x67\xd9\x54\x4e\x67\xda\x54\x4f\x67\xdb\x49\xa6\x67\xdc\x67\xdd\x67\xde\x67\xdf\x67\xe0\x5c\x8b\x67\xe1\x67\xe2\x4e\xd7\x67\xe3\x5a\x6b\x56\xf9\x49\xab\x51\x86\x67\xe4\x54\x46\x52\x4d\x00\x00\x67\xe5\x67\xe6\x67\xe7\x67\xe8\x67\xe9\x67\xea\x67\xeb\x00\x00\x67\xec\x67\xed\x67\xee\x00\x00\x00\x00\x67\xef\x67\xf0\x67\xf1\x67\xf3\x67\xf2\x00\x00\x67\xf4\x57\x4d\x51\xc0\x67\xf5\x67\xf6\x67\xf7\x5b\x41\x67\xf8\x58\x53\x67\xf9\x67\xfa\x00\x00\x67\xfb\x67\xfc\x68\x41\x67\xfd\x68\x42\x4c\xf4\x52\x9b\x68\x43\x68\x44\x4f\x62\x59\xbe\x49\xf8\x68\x45\x68\x46\x68\x47\x59\xf7\x68\x48\x5b\xfc\x68\x49\x53\xcb\x00\x00\x68\x4a\x68\x4b\x51\x54\x68\x4c", /* 9500 */ "\x58\x9b\x56\x99\x68\x4e\x68\x4d\x4a\x9b\x4d\x99\x68\x4f\x68\x50\x58\xe1\x68\x51\x68\x52\x4c\x87\x58\xbe\x68\x53\x68\x54\x68\x55\x54\xf0\x56\xdf\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x5b\x81\x68\x5b\x4a\xec\x52\x4a\x68\x5c\x00\x00\x68\x5d\x68\x5e\x68\x5f\x00\x00\x57\xfc\x68\x60\x51\xdf\x4a\xb7\x5c\x56\x4f\x96\x00\x00\x58\x67\x68\x63\x68\x61\x68\x62\x68\x64\x4b\xa6\x4e\xfb\x4f\xe1\x52\x6c\x68\x65\x68\x66\x00\x00\x68\x67\x68\x6f\x68\x68\x68\x69\x68\x6a\x54\x62\x68\x92\x4b\xcc\x68\x6b\x00\x00\x68\x6c\x68\x6d\x4b\xc5\x52\x5e\x68\x6e\x00\x00\x68\x70\x68\x71\x68\x72\x5b\x93\x00\x00\x68\x73\x52\xf6\x00\x00\x68\x74\x52\xf7\x68\x75\x68\x76\x4c\xe3\x48\xf6\x68\x77\x68\x78\x68\x79\x00\x00\x68\x7a\x68\x7b\x68\x7c\x68\x7d\x00\x00\x68\x7e\x4f\xb4\x68\x82\x68\x7f\x68\x81\x00\x00\x68\x83\x68\x84\x51\x6d\x68\x85\x68\x86\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x50\xd7\x00\x00\x68\x8e\x51\x4d\x68\x8f\x68\x90\x68\x91\x00\x00\x00\x00\x58\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x44", /* 9580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x65\x62\x65\x55\x61\x62\x66\x00\x00\x49\x75\x57\xc9\x4a\xb2\x54\xf1\x62\x67\x58\x70\x62\x68\x4e\xe3\x62\x69\x62\x6a\x52\x66\x5b\x42\x52\xd5\x4d\x8c\x57\xc4\x62\x6b\x52\x97\x62\x6c\x00\x00", /* 9600 */ "\x4c\x47\x4c\xf2\x4d\xd1\x62\x6d\x62\x6e\x5a\xc3\x62\x6f\x00\x00\x62\x70\x59\x6b\x62\x71\x62\x72\x62\x73\x62\x74\x59\x76\x62\x75\x49\xfa\x50\xba\x62\x76\x00\x00\x50\xaa\x62\x77\x62\x78\x62\x79\x00\x00\x62\x7a\x62\x7b\x00\x00\x4c\xb6\x5d\xe1\x00\x00\x4b\xd2\x00\x00\x5d\xe3\x5d\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe5\x00\x00\x00\x00\x00\x00\x54\xed\x00\x00\x00\x00\x5d\xe4\x4c\x60\x59\x95\x59\xf4\x5b\x94\x4f\x77\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x89\x5d\xe7\x5d\xe6\x00\x00\x48\xa1\x57\x73\x00\x00\x5d\xe8\x00\x00\x4c\xbc\x4e\xc9\x51\xbc\x51\xa3\x4a\x62\x5d\xe9\x00\x00\x51\xa9\x52\xaf\x4f\x55\x00\x00\x00\x00\x58\x7e\x00\x00\x00\x00\x00\x00\x5d\xea\x55\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7d\x00\x00\x00\x00\x00\x00\x5d\xeb\x00\x00\x4b\xb7\x5a\xb9\x00\x00\x4a\x9e\x00\x00\x00\x00\x5d\xec\x5a\xc8\x58\x75\x53\x84\x00\x00\x5d\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xee\x00\x00\x5d\xef\x51\x8b\x56\xd4\x58\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x88\x51\xa0\x00\x00\x5d\xf0\x00\x00\x00\x00\x56\x86\x00\x00\x5d\xf1\x00\x00\x56\x87\x59\xfd\x00\x00\x00\x00\x00\x00\x4c\xf3\x00\x00\x00\x00\x5d\xf2\x48\xae\x58\x56\x00\x00\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf3\x00\x00\x00\x00\x62\x64\x00\x00\x00\x00\x51\x45\x00\x00\x00\x00\x6b\xbe\x00\x00\x00\x00\x6b\xbf\x6b\xc0\x52\xd0\x00\x00\x54\xb7\x59\x84\x00\x00\x00\x00\x58\xda\x59\x65\x4e\xae\x4d\x6d\x00\x00\x68\x95\x00\x00\x00\x00\x4a\xc5\x5a\x5a\x6b\xc1\x4a\x9c\x00\x00\x00\x00\x6b\xc2\x00\x00\x00\x00\x4b\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8b\x6b\xa6\x59\x49\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa8\x00\x00\x00\x00\x00\x00\x6b\xa7\x00\x00\x00\x00\x51\x84\x50\xd6\x00\x00\x49\x42\x00\x00\x00\x00\x00\x00\x00\x00\x57\xec\x00\x00", /* 9700 */ "\x58\xe7\x6b\xaa\x00\x00\x00\x00\x58\x97\x00\x00\x6b\xa9\x5b\x91\x6b\xab\x52\x59\x00\x00\x00\x00\x00\x00\x4e\x95\x6b\xad\x6b\xac\x00\x00\x00\x00\x00\x00\x52\xdd\x00\x00\x00\x00\x51\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x4a\x00\x00\x58\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xae\x00\x00\x00\x00\x6b\xaf\x00\x00\x00\x00\x6b\xb0\x00\x00\x51\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd3\x53\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x81\x6b\xa5\x00\x00\x00\x00\x4f\xb7\x00\x00\x00\x00\x4f\xb1\x00\x00\x4b\x86\x00\x00\x00\x00\x4c\x67\x00\x00\x50\x5f\x52\x72\x52\x87\x00\x00\x00\x00\x5c\xcb\x00\x00\x00\x00\x00\x00\x4c\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9a\x59\x45\x00\x00\x48\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x50\x00\x00\x00\x00\x00\x00", /* 9780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xab\x00\x00\x48\xaf\x00\x00\x00\x00\x00\x00\x6c\x52\x6c\x53\x00\x00\x6c\x54\x00\x00\x00\x00\x00\x00\x54\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xce\x00\x00\x00\x00\x6c\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x56\x00\x00\x49\x7e\x00\x00\x6c\x55\x00\x00\x00\x00\x6c\x58\x00\x00\x6c\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa3\x54\xcc\x00\x00\x4d\xaa\x64\xb7\x64\xb8\x64\xb9\x4f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf3\x00\x00\x5a\xce\x55\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb2\x4b\xa4\x54\x8b\x69\x9d\x58\x8f\x56\x53\x58\xea\x64\x90\x57\x88\x4d\x6b\x4b\xd8", /* 9880 */ "\x69\x9e\x48\xe3\x56\x6c\x69\x9f\x5a\xa3\x51\xac\x51\x8d\x53\xc3\x4f\xb0\x69\xa0\x4e\xd4\x00\x00\x69\xa1\x69\xa2\x00\x00\x69\xa3\x59\xc2\x53\xb4\x00\x00\x57\x67\x69\xa4\x00\x00\x5a\x51\x50\x65\x56\xe1\x00\x00\x69\xa5\x69\xa6\x59\x75\x4b\xed\x69\xa7\x69\xa8\x4b\x7f\x69\xa9\x69\xaa\x00\x00\x49\xfb\x69\xab\x69\xac\x54\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x88\x00\x00\x00\x00\x66\xa8\x66\xa9\x66\xaa\x00\x00\x66\xab\x00\x00\x00\x00\x53\xad\x66\xac\x66\xad\x00\x00\x00\x00\x00\x00\x4c\x69\x55\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb7\x6c\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x70\x00\x00\x00\x00\x49\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x73\x6c\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xba\x00\x00\x4e\xa1\x00\x00\x61\xbb\x61\xbc\x61\xbd\x61\xbe\x61\xbf\x61\xc0\x4c\x59\x59\xfa\x4f\x44\x55\xcd\x49\x45\x56\x67\x00\x00\x61\xc1\x4b\xfb\x54\xc3\x61\xc2\x00\x00\x00\x00\x4f\x68\x00\x00\x49\x9e\x61\xc3\x00\x00\x4b\xf5", /* 9980 */ "\x61\xc4\x52\xd8\x00\x00\x00\x00\x61\xc5\x58\x7a\x4d\x7d\x61\xc6\x50\xa0\x00\x00\x61\xc7\x49\xf5\x00\x00\x61\xc8\x00\x00\x51\x94\x61\xc9\x61\xca\x51\xf7\x61\xcb\x61\xcc\x61\xcd\x55\xd6\x5c\xb7\x5d\x86\x58\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa4\x00\x00\x00\x00\x5e\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xec\x5a\xa5\x57\x74\x59\x51\x4a\x7b\x54\x9e\x00\x00\x49\xb4\x51\xbe\x63\xdf\x55\xba\x63\xe0\x63\xe1\x4f\xd3\x63\xe2\x5c\x44\x57\x75\x63\xe4\x4e\xdc\x63\xe3", /* 9a80 */ "\x63\xe5\x63\xe6\x51\xed\x00\x00\x4f\x5e\x63\xe7\x51\xe5\x4d\xa6\x63\xe8\x00\x00\x63\xe9\x4a\x72\x59\x8a\x00\x00\x00\x00\x50\x45\x63\xea\x53\xee\x63\xeb\x63\xec\x00\x00\x00\x00\x63\xed\x53\xac\x63\xee\x00\x00\x55\x47\x63\xef\x63\xf0\x63\xf1\x63\x59\x63\xf2\x63\xf3\x51\xe1\x63\xf4\x63\xf5\x5b\xe7\x63\xf6\x00\x00\x63\xf7\x4d\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x5b\x6c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x5e\x6c\x5c\x4d\xa0\x00\x00\x6c\x5f\x00\x00\x6c\x60\x00\x00\x00\x00\x00\x00\x6c\x62\x6c\x61\x6c\x64\x00\x00\x00\x00\x6c\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x65\x6c\x66\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x67\x00\x00\x56\x89\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x74\x00\x00\x6c\x75\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x76\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x78\x00\x00\x6c\x7a\x00\x00\x6c\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7b\x00\x00\x6c\x79\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x5c\x77\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7d\x00\x00\x00\x00\x00\x00\x6c\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7f\x00\x00\x00\x00\x00\x00\x6c\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6b\x00\x00\x00\x00\x5c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x98\x4d\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9e\x4e\x8b\x6c\x69\x53\xc6\x6c\x68\x00\x00\x6c\x6a\x6c\x6c\x6c\x6b\x00\x00\x00\x00\x00\x00\x6c\x6d\x00\x00\x57\xb9\x00\x00\x6c\x6e\x00\x00\x00\x00\x52\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b80 */ NULL, /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x84\x00\x00\x00\x00\x6b\xce", /* 9c80 */ "\x00\x00\x51\xb2\x6b\xcf\x00\x00\x00\x00\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\x00\x00\x00\x00\x6b\xd5\x00\x00\x49\x4b\x6b\xd6\x00\x00\x6b\xd7\x6b\xd8\x6b\xd9\x00\x00\x6b\xda\x6b\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xdc\x6b\xdd\x58\x6a\x00\x00\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x50\xef\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x00\x00\x6b\xe9\x00\x00\x6b\xea\x6b\xeb\x00\x00\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x4f\xa7\x00\x00\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xf9\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\x00\x00\x00\x00\x6b\xfc\x6b\xfd\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\x00\x00\x00\x00\x6c\x46\x6c\x47\x6c\x48\x49\x8f\x6c\x49\x6c\x4a\x6c\x4b\x00\x00\x00\x00\x6c\x4c\x6c\x4d\x51\x7b\x6c\x4e\x00\x00\x00\x00\x6c\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf0\x68\xae\x4e\xa5\x68\xaf\x52\x9a\x00\x00\x53\x58\x59\x5b\x00\x00\x68\xb0\x68\xb1\x68\xb2\x68\xb3\x68\xb4\x59\x5c\x00\x00\x59\x8d\x00\x00\x68\xb6\x68\xb5\x5a\xa6\x00\x00\x57\x72\x68\xb7\x68\xb9\x68\xb8\x68\xba\x68\xbb\x00\x00\x00\x00\x4c\xea\x68\xbc\x4d\xe7\x00\x00\x68\xbd\x68\xbe\x4f\xe8\x68\xbf\x4b\xeb\x68\xc0\x68\xc1\x68\xc2\x68\xc3\x54\xb4\x68\xc4\x68\xc5\x00\x00\x68\xc6\x53\x95\x00\x00\x68\xc7\x00\x00\x00\x00\x00\x00\x68\xc8\x00\x00\x68\xc9\x6c\x5d\x00\x00\x68\xca\x68\xcb\x68\xcc\x00\x00\x68\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x68\xce\x4d\xd6\x00\x00\x68\xcf\x68\xd0\x68\xd1\x68\xd2\x68\xd3\x68\xd4\x68\xd5\x68\xd7\x00\x00\x00\x00\x5a\x45\x68\xd6\x00\x00\x68\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5a\x51\xb8", /* 9e80 */ "\x00\x00\x00\x00\x6c\x85\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x86\x6c\x87\x00\x00\x00\x00\x6c\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x89\x51\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x8b\x00\x00\x6c\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xef\x00\x00\x00\x00\x00\x00\x6a\xee\x00\x00\x00\x00\x51\xe8\x00\x00\x6c\x82\x6c\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x85\x00\x00\x00\x00\x00\x00\x55\xf1\x50\xe7\x68\xa3\x00\x00\x4d\xd9\x00\x00\x00\x00\x54\x4d\x00\x00\x00\x00\x00\x00\x52\xab\x00\x00\x00\x00\x6c\x8d\x6c\x8e\x6c\x8f\x00\x00\x6c\x91\x6c\x90\x00\x00\x6c\x92\x00\x00\x00\x00\x6c\x95\x00\x00\x6c\x94\x00\x00\x6c\x93\x6c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x8a\x00\x00\x67\x8b\x67\x8c\x00\x00\x6b\xbb\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xbc\x00\x00\x6b\xbd\x4b\xa5\x00\x00\x5c\xbd\x00\x00\x00\x00\x4d\x64\x00\x00\x00\x00\x00\x00\x5c\xba\x00\x00\x5e\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf2\x00\x00\x6c\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x99\x00\x00\x00\x00\x6c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9c\x00\x00\x6c\x9b\x00\x00\x49\x67\x00\x00\x6c\x9d\x6c\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x66\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7d", /* 9f80 */ "\x6b\xb2\x00\x00\x00\x00\x6b\xb3\x51\x85\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x54\xa2\x6b\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9b\x4d\x48\x67\x89\x00\x00\x00\x00\x00\x00\x4d\x8b\x5d\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1", /* e080 */ "\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85", /* e100 */ "\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48", /* e180 */ "\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9", /* e200 */ "\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d", /* e280 */ "\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50", /* e300 */ "\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1", /* e380 */ "\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95", /* e400 */ "\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58", /* e480 */ "\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9", /* e500 */ "\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d", /* e580 */ "\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60", /* e600 */ "\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1", /* e680 */ "\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5", /* e700 */ "\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5b\x44\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-837_P100-2000 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x21\x6a\x21\x6b\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\xf8\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x15\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x64\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x65\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x16\x30\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x36\x22\x27\x22\x28\x22\x11\x22\x0f\x22\x2a\x22\x29\x22\x08\x22\x37\x22\x1a\x22\xa5\x22\x25\x22\x20\x23\x12\x22\x99\x22\x2b\x22\x2e\x22\x61\x22\x4c\x22\x48\x22\x3d\x22\x1d\x00\x00\x22\x6e\x22\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x20\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x88\x24\x89\x24\x8a\x24\x8b\x24\x8c\x24\x8d\x24\x8e\x24\x8f\x24\x90\x24\x91\x24\x92\x24\x93\x24\x94\x24\x95\x24\x96\x24\x97\x24\x98\x24\x99\x24\x9a\x24\x9b\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x24\x7e\x24\x7f\x24\x80\x24\x81\x24\x82\x24\x83\x24\x84\x24\x85\x24\x86\x24\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x20\x32\x21\x32\x22\x32\x23\x32\x24\x32\x25\x32\x26\x32\x27\x32\x28\x32\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xe1\x01\xce\x00\xe0\x01\x13\x00\xe9\x01\x1b\x00\xe8\x01\x2b\x00\xed\x01\xd0\x00\xec\x01\x4d\x00\xf3\x01\xd2\x00\xf2\x01\x6b\x00\xfa\x01\xd4\x00\xf9\x01\xd6\x01\xd8\x01\xda\x01\xdc\x00\xfc\x00\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f", /* 4680 */ "\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x25\x01\x25\x02\x25\x03\x25\x04\x25\x05\x25\x06\x25\x07\x25\x08\x25\x09\x25\x0a\x25\x0b\x25\x0c\x25\x0d\x25\x0e\x25\x0f\x25\x10\x25\x11\x25\x12\x25\x13\x25\x14\x25\x15\x25\x16\x25\x17\x25\x18\x25\x19\x25\x1a\x25\x1b\x25\x1c\x25\x1d\x25\x1e\x25\x1f\x25\x20\x25\x21\x25\x22\x25\x23\x25\x24\x25\x25\x25\x26\x25\x27\x25\x28\x25\x29\x25\x2a\x25\x2b\x25\x2c\x25\x2d\x25\x2e\x25\x2f\x25\x30\x25\x31\x25\x32\x25\x33\x25\x34\x25\x35\x25\x36\x25\x37\x25\x38\x25\x39\x25\x3a\x25\x3b\x25\x3c\x25\x3d\x25\x3e\x25\x3f\x25\x40\x25\x41\x25\x42\x25\x43\x25\x44\x25\x45\x25\x46\x25\x47\x25\x48\x25\x49\x25\x4a\x25\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4a\x96\x3f\x57\xc3\x63\x28\x54\xce\x55\x09\x54\xc0\x76\x91\x76\x4c\x85\x3c\x77\xee\x82\x7e\x78\x8d\x72\x31\x96\x98\x97\x8d\x6c\x28\x5b\x89\x4f\xfa\x63\x09\x66\x97\x5c\xb8\x80\xfa\x68\x48\x80\xae\x66\x02\x76\xce\x51\xf9\x65\x56\x71\xac\x7f\xf1\x88\x84\x50\xb2\x59\x65\x61\xca\x6f\xb3\x82\xad\x63\x4c\x62\x52\x53\xed\x54\x27\x7b\x06\x51\x6b\x75\xa4\x5d\xf4\x62\xd4\x8d\xcb\x97\x76\x62\x8a\x80\x19\x57\x5d\x97\x38\x7f\x62\x72\x38\x76\x7d\x67\xcf\x76\x7e\x64\x46\x4f\x70\x8d\x25\x62\xdc\x7a\x17\x65\x91\x73\xed\x64\x2c\x62\x73\x82\x2c\x98\x81\x67\x7f\x72\x48\x62\x6e\x62\xcc\x4f\x34\x74\xe3\x53\x4a\x52\x9e\x7e\xca\x90\xa6\x5e\x2e\x68\x86\x69\x9c\x81\x80\x7e\xd1\x68\xd2\x78\xc5\x86\x8c\x95\x51\x50\x8d\x8c\x24\x82\xde\x80\xde\x53\x05\x89\x12\x52\x65\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x84\x96\xf9\x4f\xdd\x58\x21\x99\x71\x5b\x9d\x62\xb1\x62\xa5\x66\xb4\x8c\x79\x9c\x8d\x72\x06\x67\x6f\x78\x91\x60\xb2\x53\x51\x53\x17\x8f\x88\x80\xcc\x8d\x1d\x94\xa1\x50\x0d\x72\xc8\x59\x07\x60\xeb\x71\x19\x88\xab\x59\x54\x82\xef\x67\x2c\x7b\x28\x5d\x29\x7e\xf7\x75\x2d\x6c\xf5\x8e\x66\x8f\xf8\x90\x3c\x9f\x3b\x6b\xd4\x91\x19\x7b\x14\x5f\x7c\x78\xa7\x84\xd6\x85\x3d\x6b\xd5\x6b\xd9\x6b\xd6\x5e\x01\x5e\x87\x75\xf9\x95\xed\x65\x5d\x5f\x0a\x5f\xc5\x8f\x9f\x58\xc1\x81\xc2\x90\x7f\x96\x5b\x97\xad\x8f\xb9", /* 4980 */ "\x00\x00\x7f\x16\x8d\x2c\x62\x41\x4f\xbf\x53\xd8\x53\x5e\x8f\xa8\x8f\xa9\x8f\xab\x90\x4d\x68\x07\x5f\x6a\x81\x98\x88\x68\x9c\xd6\x61\x8b\x52\x2b\x76\x2a\x5f\x6c\x65\x8c\x6f\xd2\x6e\xe8\x5b\xbe\x64\x48\x51\x75\x51\xb0\x67\xc4\x4e\x19\x79\xc9\x99\x7c\x70\xb3\x75\xc5\x5e\x76\x73\xbb\x83\xe0\x64\xad\x62\xe8\x94\xb5\x6c\xe2\x53\x5a\x52\xc3\x64\x0f\x94\xc2\x7b\x94\x4f\x2f\x5e\x1b\x82\x36\x81\x16\x81\x8a\x6e\x24\x6c\xca\x9a\x73\x63\x55\x53\x5c\x54\xfa\x88\x65\x57\xe0\x4e\x0d\x5e\x03\x6b\x65\x7c\x3f\x90\xe8\x60\x16\x64\xe6\x73\x1c\x88\xc1\x67\x50\x62\x4d\x8d\x22\x77\x6c\x8e\x29\x91\xc7\x5f\x69\x83\xdc\x85\x21\x99\x10\x53\xc2\x86\x95\x6b\x8b\x60\xed\x60\xe8\x70\x7f\x82\xcd\x82\x31\x4e\xd3\x6c\xa7\x85\xcf\x64\xcd\x7c\xd9\x69\xfd\x66\xf9\x83\x49\x53\x95\x7b\x56\x4f\xa7\x51\x8c\x6d\x4b\x5c\x42\x8e\x6d\x63\xd2\x53\xc9\x83\x2c\x83\x36\x67\xe5\x78\xb4\x64\x3d\x5b\xdf\x5c\x94\x5d\xee\x8b\xe7\x62\xc6\x67\xf4\x8c\x7a\x64\x00\x63\xba\x87\x49\x99\x8b\x8c\x17\x7f\x20\x94\xf2\x4e\xa7\x96\x10\x98\xa4\x66\x0c\x73\x16\x00\x00\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x3a\x5c\x1d\x5e\x38\x95\x7f\x50\x7f\x80\xa0\x53\x82\x65\x5e\x75\x45\x55\x31\x50\x21\x8d\x85\x62\x84\x94\x9e\x67\x1d\x56\x32\x6f\x6e\x5d\xe2\x54\x35\x70\x92\x8f\x66\x62\x6f\x64\xa4\x63\xa3\x5f\x7b\x6f\x88\x90\xf4\x81\xe3\x8f\xb0\x5c\x18\x66\x68\x5f\xf1\x6c\x89\x96\x48\x8d\x81\x88\x6c\x64\x91\x79\xf0\x57\xce\x6a\x59\x62\x10\x54\x48\x4e\x58\x7a\x0b\x60\xe9\x6f\x84\x8b\xda\x62\x7f\x90\x1e\x9a\x8b\x79\xe4\x54\x03\x75\xf4\x63\x01\x53\x19\x6c\x60\x8f\xdf\x5f\x1b\x9a\x70\x80\x3b\x9f\x7f\x4f\x88\x5c\x3a", /* 4a80 */ "\x00\x00\x8d\x64\x7f\xc5\x65\xa5\x70\xbd\x51\x45\x51\xb2\x86\x6b\x5d\x07\x5b\xa0\x62\xbd\x91\x6c\x75\x74\x8e\x0c\x7a\x20\x61\x01\x7b\x79\x4e\xc7\x7e\xf8\x77\x85\x4e\x11\x81\xed\x52\x1d\x51\xfa\x6a\x71\x53\xa8\x8e\x87\x95\x04\x96\xcf\x6e\xc1\x96\x64\x69\x5a\x78\x40\x50\xa8\x77\xd7\x64\x10\x89\xe6\x59\x04\x63\xe3\x5d\xdd\x7a\x7f\x69\x3d\x4f\x20\x82\x39\x55\x98\x4e\x32\x75\xae\x7a\x97\x5e\x62\x5e\x8a\x95\xef\x52\x1b\x54\x39\x70\x8a\x63\x76\x95\x24\x57\x82\x66\x25\x69\x3f\x91\x87\x55\x07\x6d\xf3\x7e\xaf\x88\x22\x62\x33\x7e\xf0\x75\xb5\x83\x28\x78\xc1\x96\xcc\x8f\x9e\x61\x48\x74\xf7\x8b\xcd\x6b\x64\x52\x3a\x8d\x50\x6b\x21\x80\x6a\x84\x71\x56\xf1\x53\x06\x4e\xce\x4e\x1b\x51\xd1\x7c\x97\x91\x8b\x7c\x07\x4f\xc3\x8e\x7f\x7b\xe1\x7a\x9c\x64\x67\x5d\x14\x50\xac\x81\x06\x76\x01\x7c\xb9\x6d\xec\x7f\xe0\x67\x51\x5b\x58\x5b\xf8\x78\xcb\x64\xae\x64\x13\x63\xaa\x63\x2b\x95\x19\x64\x2d\x8f\xbe\x7b\x54\x76\x29\x62\x53\x59\x27\x54\x46\x6b\x79\x50\xa3\x62\x34\x5e\x26\x6b\x86\x4e\xe3\x8d\x37\x88\x8b\x5f\x85\x90\x2e\x00\x00\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x20\x80\x3d\x62\xc5\x4e\x39\x53\x55\x90\xf8\x63\xb8\x80\xc6\x65\xe6\x6c\x2e\x4f\x46\x60\xee\x6d\xe1\x8b\xde\x5f\x39\x86\xcb\x5f\x53\x63\x21\x51\x5a\x83\x61\x68\x63\x52\x00\x63\x63\x8e\x48\x50\x12\x5c\x9b\x79\x77\x5b\xfc\x52\x30\x7a\x3b\x60\xbc\x90\x53\x76\xd7\x5f\xb7\x5f\x97\x76\x84\x8e\x6c\x70\x6f\x76\x7b\x7b\x49\x77\xaa\x51\xf3\x90\x93\x58\x24\x4f\x4e\x6e\xf4\x8f\xea\x65\x4c\x7b\x1b\x72\xc4\x6d\xa4\x7f\xdf\x5a\xe1\x62\xb5\x5e\x95\x57\x30\x84\x82\x7b\x2c\x5e\x1d\x5f\x1f\x90\x12\x7f\x14\x98\xa0", /* 4b80 */ "\x00\x00\x63\x82\x6e\xc7\x78\x98\x70\xb9\x51\x78\x97\x5b\x57\xab\x75\x35\x4f\x43\x75\x38\x5e\x97\x60\xe6\x59\x60\x6d\xc0\x6b\xbf\x78\x89\x53\xfc\x96\xd5\x51\xcb\x52\x01\x63\x89\x54\x0a\x94\x93\x8c\x03\x8d\xcc\x72\x39\x78\x9f\x87\x76\x8f\xed\x8c\x0d\x53\xe0\x4e\x01\x76\xef\x53\xee\x94\x89\x98\x76\x9f\x0e\x95\x2d\x5b\x9a\x8b\xa2\x4e\x22\x4e\x1c\x51\xac\x84\x63\x61\xc2\x52\xa8\x68\x0b\x4f\x97\x60\x6b\x51\xbb\x6d\x1e\x51\x5c\x62\x96\x65\x97\x96\x61\x8c\x46\x90\x17\x75\xd8\x90\xfd\x77\x63\x6b\xd2\x72\x8a\x72\xec\x8b\xfb\x58\x35\x77\x79\x8d\x4c\x67\x5c\x95\x40\x80\x9a\x5e\xa6\x6e\x21\x59\x92\x7a\xef\x77\xed\x95\x3b\x6b\xb5\x65\xad\x7f\x0e\x58\x06\x51\x51\x96\x1f\x5b\xf9\x58\xa9\x54\x28\x8e\x72\x65\x66\x98\x7f\x56\xe4\x94\x9d\x76\xfe\x90\x41\x63\x87\x54\xc6\x59\x1a\x59\x3a\x57\x9b\x8e\xb2\x67\x35\x8d\xfa\x82\x35\x52\x41\x60\xf0\x58\x15\x86\xfe\x5c\xe8\x9e\x45\x4f\xc4\x98\x9d\x8b\xb9\x5a\x25\x60\x76\x53\x84\x62\x7c\x90\x4f\x91\x02\x99\x7f\x60\x69\x80\x0c\x51\x3f\x80\x33\x5c\x14\x99\x75\x6d\x31\x4e\x8c\x00\x00\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x30\x53\xd1\x7f\x5a\x7b\x4f\x4f\x10\x4e\x4f\x96\x00\x6c\xd5\x73\xd0\x85\xe9\x5e\x06\x75\x6a\x7f\xfb\x6a\x0a\x77\xfe\x94\x92\x7e\x41\x51\xe1\x70\xe6\x53\xcd\x8f\xd4\x83\x03\x8d\x29\x72\xaf\x99\x6d\x6c\xdb\x57\x4a\x82\xb3\x65\xb9\x80\xaa\x62\x3f\x96\x32\x59\xa8\x4e\xff\x8b\xbf\x7e\xba\x65\x3e\x83\xf2\x97\x5e\x55\x61\x98\xde\x80\xa5\x53\x2a\x8b\xfd\x54\x20\x80\xba\x5e\x9f\x6c\xb8\x8d\x39\x82\xac\x91\x5a\x54\x29\x6c\x1b\x52\x06\x7e\xb7\x57\x5f\x71\x1a\x6c\x7e\x7c\x89\x59\x4b\x4e\xfd\x5f\xff\x61\x24", /* 4c80 */ "\x00\x00\x7c\xaa\x4e\x30\x5c\x01\x67\xab\x87\x02\x5c\xf0\x95\x0b\x98\xce\x75\xaf\x70\xfd\x90\x22\x51\xaf\x7f\x1d\x8b\xbd\x59\x49\x51\xe4\x4f\x5b\x54\x26\x59\x2b\x65\x77\x80\xa4\x5b\x75\x62\x76\x62\xc2\x8f\x90\x5e\x45\x6c\x1f\x7b\x26\x4f\x0f\x4f\xd8\x67\x0d\x6d\x6e\x6d\xaa\x79\x8f\x88\xb1\x5f\x17\x75\x2b\x62\x9a\x8f\x85\x4f\xef\x91\xdc\x65\xa7\x81\x2f\x81\x51\x5e\x9c\x81\x50\x8d\x74\x52\x6f\x89\x86\x8d\x4b\x59\x0d\x50\x85\x4e\xd8\x96\x1c\x72\x36\x81\x79\x8d\x1f\x5b\xcc\x8b\xa3\x96\x44\x59\x87\x7f\x1a\x54\x90\x56\x76\x56\x0e\x8b\xe5\x65\x39\x69\x82\x94\x99\x76\xd6\x6e\x89\x5e\x72\x75\x18\x67\x46\x67\xd1\x7a\xff\x80\x9d\x8d\x76\x61\x1f\x79\xc6\x65\x62\x8d\x63\x51\x88\x52\x1a\x94\xa2\x7f\x38\x80\x9b\x7e\xb2\x5c\x97\x6e\x2f\x67\x60\x7b\xd9\x76\x8b\x9a\xd8\x81\x8f\x7f\x94\x7c\xd5\x64\x1e\x95\x50\x7a\x3f\x54\x4a\x54\xe5\x6b\x4c\x64\x01\x62\x08\x9e\x3d\x80\xf3\x75\x99\x52\x72\x97\x69\x84\x5b\x68\x3c\x86\xe4\x96\x01\x96\x94\x94\xec\x4e\x2a\x54\x04\x7e\xd9\x68\x39\x8d\xdf\x80\x15\x66\xf4\x5e\x9a\x7f\xb9\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x80\x3f\x68\x97\x5d\xe5\x65\x3b\x52\x9f\x60\x6d\x9f\x9a\x4f\x9b\x8e\xac\x51\x6c\x5b\xab\x5f\x13\x5d\xe9\x6c\x5e\x62\xf1\x8d\x21\x51\x71\x94\xa9\x52\xfe\x6c\x9f\x82\xdf\x72\xd7\x57\xa2\x67\x84\x8d\x2d\x59\x1f\x8f\x9c\x83\xc7\x54\x95\x7b\x8d\x4f\x30\x6c\xbd\x5b\x64\x59\xd1\x9f\x13\x53\xe4\x86\xca\x9a\xa8\x8c\x37\x80\xa1\x65\x45\x98\x7e\x56\xfa\x96\xc7\x52\x2e\x74\xdc\x52\x50\x5b\xe1\x63\x02\x89\x02\x4e\x56\x62\xd0\x60\x2a\x68\xfa\x51\x73\x5b\x98\x51\xa0\x89\xc2\x7b\xa1\x99\x86\x7f\x50\x60\xef", /* 4d80 */ "\x00\x00\x70\x4c\x8d\x2f\x51\x49\x5e\x7f\x90\x1b\x74\x70\x89\xc4\x57\x2d\x78\x45\x5f\x52\x9f\x9f\x95\xfa\x8f\x68\x9b\x3c\x8b\xe1\x76\x78\x68\x42\x67\xdc\x8d\xea\x8d\x35\x52\x3d\x8f\x8a\x6e\xda\x68\xcd\x95\x05\x90\xed\x56\xfd\x67\x9c\x88\xf9\x8f\xc7\x54\xc8\x9a\xb8\x5b\x69\x6d\x77\x6c\x26\x4e\xa5\x5b\xb3\x9a\x87\x91\x63\x61\xa8\x90\xaf\x97\xe9\x54\x2b\x6d\xb5\x5b\xd2\x51\xfd\x55\x8a\x7f\x55\x7f\xf0\x64\xbc\x63\x4d\x65\xf1\x61\xbe\x60\x8d\x71\x0a\x6c\x57\x6c\x49\x59\x2f\x67\x6d\x82\x2a\x58\xd5\x56\x8e\x8c\x6a\x6b\xeb\x90\xdd\x59\x7d\x80\x17\x53\xf7\x6d\x69\x54\x75\x55\x9d\x83\x77\x83\xcf\x68\x38\x79\xbe\x54\x8c\x4f\x55\x54\x08\x76\xd2\x8c\x89\x96\x02\x6c\xb3\x6d\xb8\x8d\x6b\x89\x10\x9e\x64\x8d\x3a\x56\x3f\x9e\xd1\x75\xd5\x5f\x88\x72\xe0\x60\x68\x54\xfc\x4e\xa8\x6a\x2a\x88\x61\x60\x52\x8f\x70\x54\xc4\x70\xd8\x86\x79\x9e\x3f\x6d\x2a\x5b\x8f\x5f\x18\x7e\xa2\x55\x89\x4f\xaf\x73\x34\x54\x3c\x53\x9a\x50\x19\x54\x0e\x54\x7c\x4e\x4e\x5f\xfd\x74\x5a\x58\xf6\x84\x6b\x80\xe1\x87\x74\x72\xd0\x7c\xca\x6e\x56\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x27\x86\x4e\x55\x2c\x62\xa4\x4e\x92\x6c\xaa\x62\x37\x82\xb1\x54\xd7\x53\x4e\x73\x3e\x6e\xd1\x75\x3b\x52\x12\x53\x16\x8b\xdd\x69\xd0\x5f\x8a\x60\x00\x6d\xee\x57\x4f\x6b\x22\x73\xaf\x68\x53\x8f\xd8\x7f\x13\x63\x62\x60\xa3\x55\x24\x75\xea\x8c\x62\x71\x15\x6d\xa3\x5b\xa6\x5e\x7b\x83\x52\x61\x4c\x9e\xc4\x78\xfa\x87\x57\x7c\x27\x76\x87\x51\xf0\x60\xf6\x71\x4c\x66\x43\x5e\x4c\x60\x4d\x8c\x0e\x70\x70\x63\x25\x8f\x89\x5f\xbd\x60\x62\x86\xd4\x56\xde\x6b\xc1\x60\x94\x61\x67\x53\x49\x60\xe0\x66\x66\x8d\x3f", /* 4e80 */ "\x00\x00\x79\xfd\x4f\x1a\x70\xe9\x6c\x47\x8b\xb3\x8b\xf2\x7e\xd8\x83\x64\x66\x0f\x5a\x5a\x9b\x42\x6d\x51\x6d\xf7\x8c\x41\x6d\x3b\x4f\x19\x70\x6b\x83\xb7\x62\x16\x60\xd1\x97\x0d\x8d\x27\x79\x78\x51\xfb\x57\x3e\x57\xfa\x67\x3a\x75\x78\x7a\x3d\x79\xef\x7b\x95\x80\x8c\x99\x65\x8f\xf9\x6f\xc0\x8b\xa5\x9e\x21\x59\xec\x7e\xe9\x7f\x09\x54\x09\x67\x81\x68\xd8\x8f\x91\x7c\x4d\x96\xc6\x53\xca\x60\x25\x75\xbe\x6c\x72\x53\x73\x5a\xc9\x7e\xa7\x63\x24\x51\xe0\x81\x0a\x5d\xf1\x84\xdf\x62\x80\x51\x80\x5b\x63\x4f\x0e\x79\x6d\x52\x42\x60\xb8\x6d\x4e\x5b\xc4\x5b\xc2\x8b\xa1\x8b\xb0\x65\xe2\x5f\xcc\x96\x45\x59\x93\x7e\xe7\x7e\xaa\x56\x09\x67\xb7\x59\x39\x4f\x73\x5b\xb6\x52\xa0\x83\x5a\x98\x8a\x8d\x3e\x75\x32\x94\xbe\x50\x47\x7a\x3c\x4e\xf7\x67\xb6\x9a\x7e\x5a\xc1\x6b\x7c\x76\xd1\x57\x5a\x5c\x16\x7b\x3a\x95\xf4\x71\x4e\x51\x7c\x80\xa9\x82\x70\x59\x78\x7f\x04\x83\x27\x68\xc0\x67\xec\x78\xb1\x78\x77\x62\xe3\x63\x61\x7b\x80\x4f\xed\x52\x6a\x51\xcf\x83\x50\x69\xdb\x92\x74\x8d\xf5\x8d\x31\x89\xc1\x95\x2e\x7b\xad\x4e\xf6\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x65\x82\x30\x52\x51\x99\x6f\x6e\x10\x6e\x85\x6d\xa7\x5e\xfa\x50\xf5\x59\xdc\x5c\x06\x6d\x46\x6c\x5f\x75\x86\x84\x8b\x68\x68\x59\x56\x8b\xb2\x53\x20\x91\x71\x96\x4d\x85\x49\x69\x12\x79\x01\x71\x26\x80\xf6\x4e\xa4\x90\xca\x6d\x47\x9a\x84\x5a\x07\x56\xbc\x64\x05\x94\xf0\x77\xeb\x4f\xa5\x81\x1a\x72\xe1\x89\xd2\x99\x7a\x7f\x34\x7e\xde\x52\x7f\x65\x59\x91\x75\x8f\x7f\x8f\x83\x53\xeb\x7a\x96\x63\xed\x63\xa5\x76\x86\x79\xf8\x88\x57\x96\x36\x62\x2a\x52\xab\x82\x82\x68\x54\x67\x70\x63\x77\x77\x6b\x7a\xed", /* 4f80 */ "\x00\x00\x6d\x01\x7e\xd3\x89\xe3\x59\xd0\x62\x12\x85\xc9\x82\xa5\x75\x4c\x50\x1f\x4e\xcb\x75\xa5\x8b\xeb\x5c\x4a\x5d\xfe\x7b\x4b\x65\xa4\x91\xd1\x4e\xca\x6d\x25\x89\x5f\x7d\x27\x95\x26\x4e\xc5\x8c\x28\x8f\xdb\x97\x73\x66\x4b\x79\x81\x8f\xd1\x70\xec\x6d\x78\x5c\x3d\x52\xb2\x83\x46\x51\x62\x83\x0e\x77\x5b\x66\x76\x9c\xb8\x4e\xac\x60\xca\x7c\xbe\x7c\xb3\x7e\xcf\x4e\x95\x8b\x66\x66\x6f\x98\x88\x97\x59\x58\x83\x65\x6c\x95\x5c\x5f\x84\x75\xc9\x97\x56\x7a\xdf\x7a\xde\x51\xc0\x70\xaf\x7a\x98\x63\xea\x7a\x76\x7e\xa0\x73\x96\x97\xed\x4e\x45\x70\x78\x4e\x5d\x91\x52\x53\xa9\x65\x51\x65\xe7\x81\xfc\x82\x05\x54\x8e\x5c\x31\x75\x9a\x97\xa0\x62\xd8\x72\xd9\x75\xbd\x5c\x45\x9a\x79\x83\xca\x5c\x40\x54\x80\x77\xe9\x4e\x3e\x6c\xae\x80\x5a\x62\xd2\x63\x6e\x5d\xe8\x51\x77\x8d\xdd\x8e\x1e\x95\x2f\x4f\xf1\x53\xe5\x60\xe7\x70\xac\x52\x67\x63\x50\x9e\x43\x5a\x1f\x50\x26\x77\x37\x53\x77\x7e\xe2\x64\x85\x65\x2b\x62\x89\x63\x98\x50\x14\x72\x35\x89\xc9\x51\xb3\x8b\xc0\x7e\xdd\x57\x47\x83\xcc\x94\xa7\x51\x9b\x54\x1b\x5c\xfb\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x7a\xe3\x6d\x5a\x90\xe1\x9a\x8f\x55\x80\x54\x96\x53\x61\x54\xaf\x5f\x00\x63\xe9\x69\x77\x51\xef\x61\x68\x52\x0a\x58\x2a\x52\xd8\x57\x4e\x78\x0d\x77\x0b\x5e\xb7\x61\x77\x7c\xe0\x62\x5b\x62\x97\x4e\xa2\x70\x95\x80\x03\x62\xf7\x70\xe4\x97\x60\x57\x77\x82\xdb\x67\xef\x68\xf5\x78\xd5\x98\x97\x79\xd1\x58\xf3\x54\xb3\x53\xef\x6e\x34\x51\x4b\x52\x3b\x5b\xa2\x8b\xfe\x80\xaf\x55\x43\x57\xa6\x60\x73\x57\x51\x54\x2d\x7a\x7a\x60\x50\x5b\x54\x63\xa7\x62\xa0\x53\xe3\x62\x63\x5b\xc7\x67\xaf\x54\xed\x7a\x9f", /* 5080 */ "\x00\x00\x82\xe6\x91\x77\x5e\x93\x88\xe4\x59\x38\x57\xae\x63\x0e\x8d\xe8\x80\xef\x57\x57\x7b\x77\x4f\xa9\x5f\xeb\x5b\xbd\x6b\x3e\x53\x21\x7b\x50\x72\xc2\x68\x46\x77\xff\x77\x36\x65\xf7\x51\xb5\x4e\x8f\x76\xd4\x5c\xbf\x7a\xa5\x84\x75\x59\x4e\x9b\x41\x50\x80\x99\x88\x61\x27\x6e\x83\x57\x64\x66\x06\x63\x46\x56\xf0\x62\xec\x62\x69\x5e\xd3\x96\x14\x57\x83\x62\xc9\x55\x87\x87\x21\x81\x4a\x8f\xa3\x55\x66\x83\xb1\x67\x65\x8d\x56\x84\xdd\x5a\x6a\x68\x0f\x62\xe6\x7b\xee\x96\x11\x51\x70\x6f\x9c\x8c\x30\x63\xfd\x89\xc8\x61\xd2\x7f\x06\x70\xc2\x6e\xe5\x74\x05\x69\x94\x72\xfc\x5e\xca\x90\xce\x67\x17\x6d\x6a\x63\x5e\x52\xb3\x72\x62\x80\x01\x4f\x6c\x59\xe5\x91\x6a\x70\xd9\x6d\x9d\x52\xd2\x4e\x50\x96\xf7\x95\x6d\x85\x7e\x78\xca\x7d\x2f\x51\x21\x57\x92\x64\xc2\x80\x8b\x7c\x7b\x6c\xea\x68\xf1\x69\x5e\x51\xb7\x53\x98\x68\xa8\x72\x81\x9e\xce\x7b\xf1\x72\xf8\x79\xbb\x6f\x13\x74\x06\x67\x4e\x91\xcc\x9c\xa4\x79\x3c\x83\x89\x83\x54\x54\x0f\x68\x17\x4e\x3d\x53\x89\x52\xb1\x78\x3e\x53\x86\x52\x29\x50\x88\x4f\x8b\x4f\xd0\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe2\x7a\xcb\x7c\x92\x6c\xa5\x96\xb6\x52\x9b\x74\x83\x54\xe9\x4f\xe9\x80\x54\x83\xb2\x8f\xde\x95\x70\x5e\xc9\x60\x1c\x6d\x9f\x5e\x18\x65\x5b\x81\x38\x94\xfe\x60\x4b\x70\xbc\x7e\xc3\x7c\xae\x51\xc9\x68\x81\x7c\xb1\x82\x6f\x4e\x24\x8f\x86\x91\xcf\x66\x7e\x4e\xae\x8c\x05\x64\xa9\x80\x4a\x50\xda\x75\x97\x71\xce\x5b\xe5\x8f\xbd\x6f\x66\x4e\x86\x64\x82\x95\x63\x5e\xd6\x65\x99\x52\x17\x88\xc2\x70\xc8\x52\xa3\x73\x0e\x74\x33\x67\x97\x78\xf7\x97\x16\x4e\x34\x90\xbb\x9c\xde\x6d\xcb\x51\xdb\x8d\x41\x54\x1d", /* 5180 */ "\x00\x00\x62\xce\x73\xb2\x83\xf1\x96\xf6\x9f\x84\x94\xc3\x4f\x36\x7f\x9a\x51\xcc\x70\x75\x96\x75\x5c\xad\x98\x86\x53\xe6\x4e\xe4\x6e\x9c\x74\x09\x69\xb4\x78\x6b\x99\x8f\x75\x59\x52\x18\x76\x24\x6d\x41\x67\xf3\x51\x6d\x9f\x99\x80\x4b\x54\x99\x7b\x3c\x7a\xbf\x96\x86\x57\x84\x62\xe2\x96\x47\x69\x7c\x5a\x04\x64\x02\x7b\xd3\x6f\x0f\x96\x4b\x82\xa6\x53\x62\x98\x85\x5e\x90\x70\x89\x63\xb3\x53\x64\x86\x4f\x9c\x81\x9e\x93\x78\x8c\x97\x32\x8d\xef\x8d\x42\x9e\x7f\x6f\x5e\x79\x84\x5f\x55\x96\x46\x62\x2e\x9a\x74\x54\x15\x94\xdd\x4f\xa3\x65\xc5\x5c\x65\x5c\x61\x7f\x15\x86\x51\x6c\x2f\x5f\x8b\x73\x87\x6e\xe4\x7e\xff\x5c\xe6\x63\x1b\x5b\x6a\x6e\xe6\x53\x75\x4e\x71\x63\xa0\x75\x65\x62\xa1\x8f\x6e\x4f\x26\x4e\xd1\x6c\xa6\x7e\xb6\x8b\xba\x84\x1d\x87\xba\x7f\x57\x90\x3b\x95\x23\x7b\xa9\x9a\xa1\x88\xf8\x84\x3d\x6d\x1b\x9a\x86\x7e\xdc\x59\x88\x9e\xbb\x73\x9b\x78\x01\x86\x82\x9a\x6c\x9a\x82\x56\x1b\x54\x17\x57\xcb\x4e\x70\x9e\xa6\x53\x56\x8f\xc8\x81\x09\x77\x92\x99\x92\x86\xee\x6e\xe1\x85\x13\x66\xfc\x61\x62\x6f\x2b\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x29\x82\x92\x83\x2b\x76\xf2\x6c\x13\x5f\xd9\x83\xbd\x73\x2b\x83\x05\x95\x1a\x6b\xdb\x77\xdb\x94\xc6\x53\x6f\x83\x02\x51\x92\x5e\x3d\x8c\x8c\x8d\x38\x4e\x48\x73\xab\x67\x9a\x68\x85\x91\x76\x97\x09\x71\x64\x6c\xa1\x77\x09\x5a\x92\x95\x41\x6b\xcf\x7f\x8e\x66\x27\x5b\xd0\x59\xb9\x5a\x9a\x95\xe8\x95\xf7\x4e\xec\x84\x0c\x84\x99\x6a\xac\x76\xdf\x95\x30\x73\x1b\x68\xa6\x5b\x5f\x77\x2f\x91\x9a\x97\x61\x7c\xdc\x8f\xf7\x8c\x1c\x5f\x25\x7c\x73\x79\xd8\x89\xc5\x6c\xcc\x87\x1c\x5b\xc6\x5e\x42\x68\xc9\x77\x20", /* 5280 */ "\x00\x00\x7e\xf5\x51\x95\x51\x4d\x52\xc9\x5a\x29\x7f\x05\x97\x62\x82\xd7\x63\xcf\x77\x84\x85\xd0\x79\xd2\x6e\x3a\x5e\x99\x59\x99\x85\x11\x70\x6d\x6c\x11\x62\xbf\x76\xbf\x65\x4f\x60\xaf\x95\xfd\x66\x0e\x87\x9f\x9e\x23\x94\xed\x54\x0d\x54\x7d\x8c\x2c\x64\x78\x64\x79\x86\x11\x6a\x21\x81\x9c\x78\xe8\x64\x69\x9b\x54\x62\xb9\x67\x2b\x83\xab\x58\xa8\x9e\xd8\x6c\xab\x6f\x20\x5b\xde\x96\x4c\x8c\x0b\x72\x5f\x67\xd0\x62\xc7\x72\x61\x4e\xa9\x59\xc6\x6b\xcd\x58\x93\x66\xae\x5e\x55\x52\xdf\x61\x55\x67\x28\x76\xee\x77\x66\x72\x67\x7a\x46\x62\xff\x54\xea\x54\x50\x94\xa0\x90\xa3\x5a\x1c\x7e\xb3\x6c\x16\x4e\x43\x59\x76\x80\x10\x59\x48\x53\x57\x75\x37\x96\xbe\x56\xca\x63\x20\x81\x11\x60\x7c\x95\xf9\x6d\xd6\x54\x62\x99\x81\x51\x85\x5a\xe9\x80\xfd\x59\xae\x97\x13\x50\x2a\x6c\xe5\x5c\x3c\x62\xdf\x4f\x60\x53\x3f\x81\x7b\x90\x06\x6e\xba\x85\x2b\x62\xc8\x5e\x74\x78\xbe\x64\xb5\x63\x7b\x5f\xf5\x5a\x18\x91\x7f\x9e\x1f\x5c\x3f\x63\x4f\x80\x42\x5b\x7d\x55\x6e\x95\x4a\x95\x4d\x6d\x85\x60\xa8\x67\xe0\x72\xde\x51\xdd\x5b\x81\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe7\x6c\xde\x72\x5b\x62\x6d\x94\xae\x7e\xbd\x81\x13\x6d\x53\x51\x9c\x5f\x04\x59\x74\x52\xaa\x60\x12\x59\x73\x66\x96\x86\x50\x75\x9f\x63\x2a\x61\xe6\x7c\xef\x8b\xfa\x54\xe6\x6b\x27\x9e\x25\x6b\xb4\x85\xd5\x54\x55\x50\x76\x6c\xa4\x55\x6a\x8d\xb4\x72\x2c\x5e\x15\x60\x15\x74\x36\x62\xcd\x63\x92\x72\x4c\x5f\x98\x6e\x43\x6d\x3e\x65\x00\x6f\x58\x76\xd8\x78\xd0\x76\xfc\x75\x54\x52\x24\x53\xdb\x4e\x53\x5e\x9e\x65\xc1\x80\x2a\x80\xd6\x62\x9b\x54\x86\x52\x28\x70\xae\x88\x8d\x8d\xd1\x6c\xe1\x54\x78\x80\xda", /* 5380 */ "\x00\x00\x57\xf9\x88\xf4\x8d\x54\x96\x6a\x91\x4d\x4f\x69\x6c\x9b\x55\xb7\x76\xc6\x78\x30\x62\xa8\x70\xf9\x6f\x8e\x5f\x6d\x84\xec\x68\xda\x78\x7c\x7b\xf7\x81\xa8\x67\x0b\x9e\x4f\x63\x67\x78\xb0\x57\x6f\x78\x12\x97\x39\x62\x79\x62\xab\x52\x88\x74\x35\x6b\xd7\x55\x64\x81\x3e\x75\xb2\x76\xae\x53\x39\x75\xde\x50\xfb\x5c\x41\x8b\x6c\x7b\xc7\x50\x4f\x72\x47\x9a\x97\x98\xd8\x6f\x02\x74\xe2\x79\x68\x64\x87\x77\xa5\x62\xfc\x98\x91\x8d\x2b\x54\xc1\x80\x58\x4e\x52\x57\x6a\x82\xf9\x84\x0d\x5e\x73\x51\xed\x74\xf6\x8b\xc4\x5c\x4f\x57\x61\x6c\xfc\x98\x87\x5a\x46\x78\x34\x9b\x44\x8f\xeb\x7c\x95\x52\x56\x62\x51\x94\xfa\x4e\xc6\x83\x86\x84\x61\x83\xe9\x84\xb2\x57\xd4\x67\x34\x57\x03\x66\x6e\x6d\x66\x8c\x31\x66\xdd\x70\x11\x67\x1f\x6b\x3a\x68\x16\x62\x1a\x59\xbb\x4e\x03\x51\xc4\x6f\x06\x67\xd2\x6c\x8f\x51\x76\x68\xcb\x59\x47\x6b\x67\x75\x66\x5d\x0e\x81\x10\x9f\x50\x65\xd7\x79\x48\x79\x41\x9a\x91\x8d\x77\x5c\x82\x4e\x5e\x4f\x01\x54\x2f\x59\x51\x78\x0c\x56\x68\x6c\x14\x8f\xc4\x5f\x03\x6c\x7d\x6c\xe3\x8b\xab\x63\x90\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x70\x6d\x3d\x72\x75\x62\x66\x94\x8e\x94\xc5\x53\x43\x8f\xc1\x7b\x7e\x4e\xdf\x8c\x26\x4e\x7e\x9e\xd4\x94\xb1\x94\xb3\x52\x4d\x6f\x5c\x90\x63\x6d\x45\x8c\x34\x58\x11\x5d\x4c\x6b\x20\x6b\x49\x67\xaa\x54\x5b\x81\x54\x7f\x8c\x58\x99\x85\x37\x5f\x3a\x62\xa2\x6a\x47\x95\x39\x65\x72\x60\x84\x68\x65\x77\xa7\x4e\x54\x4f\xa8\x5d\xe7\x97\x98\x64\xac\x7f\xd8\x5c\xed\x4f\xcf\x7a\x8d\x52\x07\x83\x04\x4e\x14\x60\x2f\x7a\x83\x94\xa6\x4f\xb5\x4e\xb2\x79\xe6\x74\x34\x52\xe4\x82\xb9\x64\xd2\x79\xbd\x5b\xdd\x6c\x81", /* 5480 */ "\x00\x00\x97\x52\x8f\x7b\x6c\x22\x50\x3e\x53\x7f\x6e\x05\x64\xce\x66\x74\x6c\x30\x60\xc5\x98\x77\x8b\xf7\x5e\x86\x74\x3c\x7a\x77\x79\xcb\x4e\x18\x90\xb1\x74\x03\x6c\x42\x56\xda\x91\x4b\x6c\xc5\x8d\x8b\x53\x3a\x86\xc6\x66\xf2\x8e\xaf\x5c\x48\x9a\x71\x6e\x20\x53\xd6\x5a\x36\x9f\x8b\x8d\xa3\x53\xbb\x57\x08\x98\xa7\x67\x43\x91\x9b\x6c\xc9\x51\x68\x75\xca\x62\xf3\x72\xac\x52\x38\x52\x9d\x7f\x3a\x70\x94\x76\x38\x53\x74\x9e\x4a\x69\xb7\x78\x6e\x96\xc0\x88\xd9\x7f\xa4\x71\x36\x71\xc3\x51\x89\x67\xd3\x74\xe4\x58\xe4\x65\x18\x56\xb7\x8b\xa9\x99\x76\x62\x70\x7e\xd5\x60\xf9\x70\xed\x58\xec\x4e\xc1\x4e\xba\x5f\xcd\x97\xe7\x4e\xfb\x8b\xa4\x52\x03\x59\x8a\x7e\xab\x62\x54\x4e\xcd\x65\xe5\x62\x0e\x83\x38\x84\xc9\x83\x63\x87\x8d\x71\x94\x6e\xb6\x5b\xb9\x7e\xd2\x51\x97\x63\xc9\x67\xd4\x80\x89\x83\x39\x88\x15\x51\x12\x5b\x7a\x59\x82\x8f\xb1\x4e\x73\x6c\x5d\x51\x65\x89\x25\x8f\x6f\x96\x2e\x85\x4a\x74\x5e\x95\x10\x95\xf0\x6d\xa6\x82\xe5\x5f\x31\x64\x92\x6d\x12\x84\x28\x81\x6e\x9c\xc3\x58\x5e\x8d\x5b\x4e\x09\x53\xc1\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x1e\x65\x63\x68\x51\x55\xd3\x4e\x27\x64\x14\x9a\x9a\x62\x6b\x5a\xc2\x74\x5f\x82\x72\x6d\xa9\x68\xee\x50\xe7\x83\x8e\x78\x02\x67\x40\x52\x39\x6c\x99\x7e\xb1\x50\xbb\x55\x65\x71\x5e\x7b\x5b\x66\x52\x73\xca\x82\xeb\x67\x49\x5c\x71\x52\x20\x71\x7d\x88\x6b\x95\xea\x96\x55\x64\xc5\x8d\x61\x81\xb3\x55\x84\x6c\x55\x62\x47\x7f\x2e\x58\x92\x4f\x24\x55\x46\x8d\x4f\x66\x4c\x4e\x0a\x5c\x1a\x88\xf3\x68\xa2\x63\x4e\x7a\x0d\x70\xe7\x82\x8d\x52\xfa\x97\xf6\x5c\x11\x54\xe8\x90\xb5\x7e\xcd\x59\x62\x8d\x4a\x86\xc7", /* 5580 */ "\x00\x00\x82\x0c\x82\x0d\x8d\x66\x64\x44\x5c\x04\x61\x51\x6d\x89\x79\x3e\x8b\xbe\x78\x37\x75\x33\x54\x7b\x4f\x38\x8e\xab\x6d\xf1\x5a\x20\x7e\xc5\x79\x5e\x6c\x88\x5b\xa1\x5a\x76\x75\x1a\x80\xbe\x61\x4e\x6e\x17\x58\xf0\x75\x1f\x75\x25\x72\x72\x53\x47\x7e\xf3\x77\x01\x76\xdb\x52\x69\x80\xdc\x57\x23\x5e\x08\x59\x31\x72\xee\x65\xbd\x6e\x7f\x8b\xd7\x5c\x38\x86\x71\x53\x41\x77\xf3\x62\xfe\x65\xf6\x4e\xc0\x98\xdf\x86\x80\x5b\x9e\x8b\xc6\x53\xf2\x77\xe2\x4f\x7f\x5c\x4e\x9a\x76\x59\xcb\x5f\x0f\x79\x3a\x58\xeb\x4e\x16\x67\xff\x4e\x8b\x62\xed\x8a\x93\x90\x1d\x52\xbf\x66\x2f\x55\xdc\x56\x6c\x90\x02\x4e\xd5\x4f\x8d\x91\xca\x99\x70\x6c\x0f\x5e\x02\x60\x43\x5b\xa4\x89\xc6\x8b\xd5\x65\x36\x62\x4b\x99\x96\x5b\x88\x5b\xff\x63\x88\x55\x2e\x53\xd7\x76\x26\x51\x7d\x85\x2c\x67\xa2\x68\xb3\x6b\x8a\x62\x92\x8f\x93\x53\xd4\x82\x12\x6d\xd1\x75\x8f\x4e\x66\x8d\x4e\x5b\x70\x71\x9f\x85\xaf\x66\x91\x66\xd9\x7f\x72\x87\x00\x9e\xcd\x9f\x20\x5c\x5e\x67\x2f\x8f\xf0\x68\x11\x67\x5f\x62\x0d\x7a\xd6\x58\x85\x5e\xb6\x65\x70\x6f\x31\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x55\x52\x37\x80\x0d\x64\x54\x88\x70\x75\x29\x5e\x05\x68\x13\x62\xf4\x97\x1c\x53\xcc\x72\x3d\x8c\x01\x6c\x34\x77\x61\x7a\x0e\x54\x2e\x77\xac\x98\x7a\x82\x1c\x8b\xf4\x78\x55\x67\x14\x70\xc1\x65\xaf\x64\x95\x56\x36\x60\x1d\x79\xc1\x53\xf8\x4e\x1d\x6b\x7b\x80\x86\x5b\xfa\x55\xe3\x56\xdb\x4f\x3a\x4f\x3c\x99\x72\x5d\xf3\x67\x7e\x80\x38\x60\x02\x98\x82\x90\x01\x5b\x8b\x8b\xbc\x8b\xf5\x64\x1c\x82\x58\x64\xde\x55\xfd\x82\xcf\x91\x65\x4f\xd7\x7d\x20\x90\x1f\x7c\x9f\x50\xf3\x58\x51\x6e\xaf\x5b\xbf\x8b\xc9", /* 5680 */ "\x00\x00\x80\x83\x91\x78\x84\x9c\x7b\x97\x86\x7d\x96\x8b\x96\x8f\x7e\xe5\x9a\xd3\x78\x8e\x5c\x81\x7a\x57\x90\x42\x96\xa7\x79\x5f\x5b\x59\x63\x5f\x7b\x0b\x84\xd1\x68\xad\x55\x06\x7f\x29\x74\x10\x7d\x22\x95\x01\x62\x40\x58\x4c\x4e\xd6\x5b\x83\x59\x79\x58\x54\x73\x6d\x63\x1e\x8e\x4b\x8e\x0f\x80\xce\x82\xd4\x62\xac\x53\xf0\x6c\xf0\x91\x5e\x59\x2a\x60\x01\x6c\x70\x57\x4d\x64\x4a\x8d\x2a\x76\x2b\x6e\xe9\x57\x5b\x6a\x80\x75\xf0\x6f\x6d\x8c\x2d\x8c\x08\x57\x66\x6b\xef\x88\x92\x78\xb3\x63\xa2\x53\xf9\x70\xad\x6c\x64\x58\x58\x64\x2a\x58\x02\x68\xe0\x81\x9b\x55\x10\x7c\xd6\x50\x18\x8e\xba\x6d\xcc\x8d\x9f\x70\xeb\x63\x8f\x6d\x9b\x6e\xd4\x7e\xe6\x84\x04\x68\x43\x90\x03\x6d\xd8\x96\x76\x8b\xa8\x59\x57\x72\x79\x85\xe4\x81\x7e\x75\xbc\x8a\x8a\x68\xaf\x52\x54\x8e\x22\x95\x11\x63\xd0\x98\x98\x8e\x44\x55\x7c\x4f\x53\x66\xff\x56\x8f\x60\xd5\x6d\x95\x52\x43\x5c\x49\x59\x29\x6d\xfb\x58\x6b\x75\x30\x75\x1c\x60\x6c\x82\x14\x81\x46\x63\x11\x67\x61\x8f\xe2\x77\x3a\x8d\xf3\x8d\x34\x94\xc1\x5e\x16\x53\x85\x54\x2c\x70\xc3\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x40\x5e\xf7\x50\x5c\x4e\xad\x5e\xad\x63\x3a\x82\x47\x90\x1a\x68\x50\x91\x6e\x77\xb3\x54\x0c\x94\xdc\x5f\x64\x7a\xe5\x68\x76\x63\x45\x7b\x52\x7e\xdf\x75\xdb\x50\x77\x62\x95\x59\x34\x90\x0f\x51\xf8\x79\xc3\x7a\x81\x56\xfe\x5f\x92\x90\x14\x6d\x82\x5c\x60\x57\x1f\x54\x10\x51\x54\x6e\x4d\x56\xe2\x63\xa8\x98\x93\x81\x7f\x87\x15\x89\x2a\x90\x00\x54\x1e\x5c\x6f\x81\xc0\x62\xd6\x62\x58\x81\x31\x9e\x35\x96\x40\x9a\x6e\x9a\x7c\x69\x2d\x59\xa5\x62\xd3\x55\x3e\x63\x16\x54\xc7\x86\xd9\x6d\x3c\x5a\x03\x74\xe6", /* 5780 */ "\x00\x00\x88\x9c\x6b\x6a\x59\x16\x8c\x4c\x5f\x2f\x6e\x7e\x73\xa9\x98\x7d\x4e\x38\x70\xf7\x5b\x8c\x78\x97\x63\x3d\x66\x5a\x76\x96\x60\xcb\x5b\x9b\x5a\x49\x4e\x07\x81\x55\x6c\x6a\x73\x8b\x4e\xa1\x67\x89\x7f\x51\x5f\x80\x65\xfa\x67\x1b\x5f\xd8\x59\x84\x5a\x01\x5d\xcd\x5f\xae\x53\x71\x97\xe6\x8f\xdd\x68\x45\x56\xf4\x55\x2f\x60\xdf\x4e\x3a\x6f\x4d\x7e\xf4\x82\xc7\x84\x0e\x59\xd4\x4f\x1f\x4f\x2a\x5c\x3e\x7e\xac\x67\x2a\x85\x1a\x54\x73\x75\x4f\x80\xc3\x55\x82\x9b\x4f\x4f\x4d\x6e\x2d\x8c\x13\x5c\x09\x61\x70\x53\x6b\x76\x1f\x6e\x29\x86\x8a\x65\x87\x95\xfb\x7e\xb9\x54\x3b\x7a\x33\x7d\x0a\x95\xee\x55\xe1\x7f\xc1\x74\xee\x63\x1d\x87\x17\x6d\xa1\x7a\x9d\x62\x11\x65\xa1\x53\x67\x63\xe1\x6c\x83\x5d\xeb\x54\x5c\x94\xa8\x4e\x4c\x6c\x61\x8b\xec\x5c\x4b\x65\xe0\x82\x9c\x68\xa7\x54\x3e\x54\x34\x6b\xcb\x6b\x66\x4e\x94\x63\x42\x53\x48\x82\x1e\x4f\x0d\x4f\xae\x57\x5e\x62\x0a\x96\xfe\x66\x64\x72\x69\x52\xff\x52\xa1\x60\x9f\x8b\xef\x66\x14\x71\x99\x67\x90\x89\x7f\x78\x52\x77\xfd\x66\x70\x56\x3b\x54\x38\x95\x21\x72\x7a\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x60\x6f\x5e\x0c\x60\x89\x81\x9d\x59\x15\x60\xdc\x71\x84\x70\xef\x6e\xaa\x6c\x50\x72\x80\x6a\x84\x88\xad\x5e\x2d\x4e\x60\x5a\xb3\x55\x9c\x94\xe3\x6d\x17\x7c\xfb\x96\x99\x62\x0f\x7e\xc6\x77\x8e\x86\x7e\x53\x23\x97\x1e\x8f\x96\x66\x87\x5c\xe1\x4f\xa0\x72\xed\x4e\x0b\x53\xa6\x59\x0f\x54\x13\x63\x80\x95\x28\x51\x48\x4e\xd9\x9c\x9c\x7e\xa4\x54\xb8\x8d\x24\x88\x54\x82\x37\x95\xf2\x6d\x8e\x5f\x26\x5a\xcc\x66\x3e\x96\x69\x73\xb0\x73\x2e\x53\xbf\x81\x7a\x99\x85\x7f\xa1\x5b\xaa\x96\x77\x96\x50\x7e\xbf", /* 5880 */ "\x00\x00\x76\xf8\x53\xa2\x95\x76\x99\x99\x7b\xb1\x89\x44\x6e\x58\x4e\x61\x7f\xd4\x79\x65\x8b\xe6\x60\xf3\x54\xcd\x4e\xab\x98\x79\x5d\xf7\x6a\x61\x50\xcf\x54\x11\x8c\x61\x84\x27\x78\x5d\x97\x04\x52\x4a\x54\xee\x56\xa3\x95\x00\x6d\x88\x5b\xb5\x6d\xc6\x66\x53\x5c\x0f\x5b\x5d\x68\x21\x80\x96\x55\x78\x7b\x11\x65\x48\x69\x54\x4e\x9b\x6b\x47\x87\x4e\x97\x8b\x53\x4f\x63\x1f\x64\x3a\x90\xaa\x65\x9c\x80\xc1\x8c\x10\x51\x99\x68\xb0\x53\x78\x87\xf9\x61\xc8\x6c\xc4\x6c\xfb\x8c\x22\x5c\x51\x85\xaa\x82\xaf\x95\x0c\x6b\x23\x8f\x9b\x65\xb0\x5f\xfb\x5f\xc3\x4f\xe1\x88\x45\x66\x1f\x81\x65\x73\x29\x60\xfa\x51\x74\x52\x11\x57\x8b\x5f\x62\x90\xa2\x88\x4c\x91\x92\x5e\x78\x67\x4f\x60\x27\x59\xd3\x51\x44\x51\xf6\x80\xf8\x53\x08\x6c\x79\x96\xc4\x71\x8a\x4f\x11\x4f\xee\x7f\x9e\x67\x3d\x55\xc5\x95\x08\x79\xc0\x88\x96\x7e\xe3\x58\x9f\x62\x0c\x97\x00\x86\x5a\x56\x18\x98\x7b\x5f\x90\x8b\xb8\x84\xc4\x91\x57\x53\xd9\x65\xed\x5e\x8f\x75\x5c\x60\x64\x7d\x6e\x5a\x7f\x7e\xea\x7e\xed\x8f\x69\x55\xa7\x5b\xa3\x60\xac\x65\xcb\x73\x84\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x09\x76\x63\x77\x29\x7e\xda\x97\x74\x85\x9b\x5b\x66\x7a\x74\x96\xea\x88\x40\x52\xcb\x71\x8f\x5f\xaa\x65\xec\x8b\xe2\x5b\xfb\x9a\x6f\x5d\xe1\x6b\x89\x6c\x5b\x8b\xad\x8b\xaf\x90\x0a\x8f\xc5\x53\x8b\x62\xbc\x9e\x26\x9e\x2d\x54\x40\x4e\x2b\x82\xbd\x72\x59\x86\x9c\x5d\x16\x88\x59\x6d\xaf\x96\xc5\x54\xd1\x4e\x9a\x8b\xb6\x71\x09\x54\xbd\x96\x09\x70\xdf\x6d\xf9\x76\xd0\x4e\x25\x78\x14\x87\x12\x5c\xa9\x5e\xf6\x8a\x00\x98\x9c\x96\x0e\x70\x8e\x6c\xbf\x59\x44\x63\xa9\x77\x3c\x88\x4d\x6f\x14\x82\x73\x58\x30", /* 5980 */ "\x00\x00\x71\xd5\x53\x8c\x78\x1a\x96\xc1\x55\x01\x5f\x66\x71\x30\x5b\xb4\x8c\x1a\x9a\x8c\x6b\x83\x59\x2e\x9e\x2f\x79\xe7\x67\x68\x62\x6c\x4f\x6f\x75\xa1\x7f\x8a\x6d\x0b\x96\x33\x6c\x27\x4e\xf0\x75\xd2\x51\x7b\x68\x37\x6f\x3e\x90\x80\x81\x70\x59\x96\x74\x76\x64\x47\x5c\x27\x90\x65\x7a\x91\x8c\x23\x59\xda\x54\xac\x82\x00\x83\x6f\x89\x81\x80\x00\x69\x30\x56\x4e\x80\x36\x72\x37\x91\xce\x51\xb6\x4e\x5f\x98\x75\x63\x96\x4e\x1a\x53\xf6\x66\xf3\x81\x4b\x59\x1c\x6d\xb2\x4e\x00\x58\xf9\x53\x3b\x63\xd6\x94\xf1\x4f\x9d\x4f\x0a\x88\x63\x98\x90\x59\x37\x90\x57\x79\xfb\x4e\xea\x80\xf0\x75\x91\x6c\x82\x5b\x9c\x59\xe8\x5f\x5d\x69\x05\x86\x81\x50\x1a\x5d\xf2\x4e\x59\x77\xe3\x4e\xe5\x82\x7a\x62\x91\x66\x13\x90\x91\x5c\x79\x4e\xbf\x5f\x79\x81\xc6\x90\x38\x80\x84\x75\xab\x4e\xa6\x88\xd4\x61\x0f\x6b\xc5\x5f\xc6\x4e\x49\x76\xca\x6e\xa2\x8b\xe3\x8b\xae\x8c\x0a\x8b\xd1\x5f\x02\x7f\xfc\x7f\xcc\x7e\xce\x83\x35\x83\x6b\x56\xe0\x6b\xb7\x97\xf3\x96\x34\x59\xfb\x54\x1f\x94\xf6\x6d\xeb\x5b\xc5\x99\x6e\x5c\x39\x5f\x15\x96\x90\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x70\x82\xf1\x6a\x31\x5a\x74\x9e\x70\x5e\x94\x7f\x28\x83\xb9\x84\x24\x84\x25\x83\x67\x87\x47\x8f\xce\x8d\x62\x76\xc8\x5f\x71\x98\x96\x78\x6c\x66\x20\x54\xdf\x62\xe5\x4f\x63\x81\xc3\x75\xc8\x5e\xb8\x96\xcd\x8e\x0a\x86\xf9\x54\x8f\x6c\xf3\x6d\x8c\x6c\x38\x60\x7f\x52\xc7\x75\x28\x5e\x7d\x4f\x18\x60\xa0\x5f\xe7\x5c\x24\x75\x31\x90\xae\x94\xc0\x72\xb9\x6c\xb9\x6e\x38\x91\x49\x67\x09\x53\xcb\x53\xf3\x4f\x51\x91\xc9\x8b\xf1\x53\xc8\x5e\x7c\x8f\xc2\x6d\xe4\x4e\x8e\x76\xc2\x69\x86\x86\x5e\x61\x1a\x82\x06", /* 5a80 */ "\x00\x00\x4f\x59\x4f\xde\x90\x3e\x9c\x7c\x61\x09\x6e\x1d\x6e\x14\x96\x85\x4e\x88\x5a\x31\x96\xe8\x4e\x0e\x5c\x7f\x79\xb9\x5b\x87\x8b\xed\x7f\xbd\x73\x89\x57\xdf\x82\x8b\x90\xc1\x54\x01\x90\x47\x55\xbb\x5c\xea\x5f\xa1\x61\x08\x6b\x32\x72\xf1\x80\xb2\x8a\x89\x6d\x74\x5b\xd3\x88\xd5\x98\x84\x8c\x6b\x9a\x6d\x9e\x33\x6e\x0a\x51\xa4\x51\x43\x57\xa3\x88\x81\x53\x9f\x63\xf4\x8f\x95\x56\xed\x54\x58\x57\x06\x73\x3f\x6e\x90\x7f\x18\x8f\xdc\x82\xd1\x61\x3f\x60\x28\x96\x62\x66\xf0\x7e\xa6\x8d\x8a\x8d\xc3\x94\xa5\x5c\xb3\x7c\xa4\x67\x08\x60\xa6\x96\x05\x80\x18\x4e\x91\x90\xe7\x53\x00\x96\x68\x51\x41\x8f\xd0\x85\x74\x91\x5d\x66\x55\x97\xf5\x5b\x55\x53\x1d\x78\x38\x67\x42\x68\x3d\x54\xc9\x70\x7e\x5b\xb0\x8f\x7d\x51\x8d\x57\x28\x54\xb1\x65\x12\x66\x82\x8d\x5e\x8d\x43\x81\x0f\x84\x6c\x90\x6d\x7c\xdf\x51\xff\x85\xfb\x67\xa3\x65\xe9\x6f\xa1\x86\xa4\x8e\x81\x56\x6a\x90\x20\x76\x82\x70\x76\x71\xe5\x8d\x23\x62\xe9\x52\x19\x6c\xfd\x8d\x3c\x60\x0e\x58\x9e\x61\x8e\x66\xfe\x8d\x60\x62\x4e\x55\xb3\x6e\x23\x67\x2d\x8f\x67\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe1\x95\xf8\x77\x28\x68\x05\x69\xa8\x54\x8b\x4e\x4d\x70\xb8\x8b\xc8\x64\x58\x65\x8b\x5b\x85\x7a\x84\x50\x3a\x5b\xe8\x77\xbb\x6b\xe1\x8a\x79\x7c\x98\x6c\xbe\x76\xcf\x65\xa9\x8f\x97\x5d\x2d\x5c\x55\x86\x38\x68\x08\x53\x60\x62\x18\x7a\xd9\x6e\x5b\x7e\xfd\x6a\x1f\x7a\xe0\x5f\x70\x6f\x33\x5f\x20\x63\x8c\x6d\xa8\x67\x56\x4e\x08\x5e\x10\x8d\x26\x4e\xd7\x80\xc0\x76\x34\x96\x9c\x62\xdb\x66\x2d\x62\x7e\x6c\xbc\x8d\x75\x71\x67\x7f\x69\x51\x46\x80\x87\x53\xec\x90\x6e\x62\x98\x54\xf2\x86\xf0\x8f\x99\x80\x05", /* 5b80 */ "\x00\x00\x95\x17\x85\x17\x8f\xd9\x6d\x59\x73\xcd\x65\x9f\x77\x1f\x75\x04\x78\x27\x81\xfb\x8d\x1e\x94\x88\x4f\xa6\x67\x95\x75\xb9\x8b\xca\x97\x07\x63\x2f\x95\x47\x96\x35\x84\xb8\x63\x23\x77\x41\x5f\x81\x72\xf0\x4e\x89\x60\x14\x65\x74\x62\xef\x6b\x63\x65\x3f\x5e\x27\x75\xc7\x90\xd1\x8b\xc1\x82\x9d\x67\x9d\x65\x2f\x54\x31\x87\x18\x77\xe5\x80\xa2\x81\x02\x6c\x41\x4e\x4b\x7e\xc7\x80\x4c\x76\xf4\x69\x0d\x6b\x96\x62\x67\x50\x3c\x4f\x84\x57\x40\x63\x07\x6b\x62\x8d\xbe\x53\xea\x65\xe8\x7e\xb8\x5f\xd7\x63\x1a\x63\xb7\x81\xf3\x81\xf4\x7f\x6e\x5e\x1c\x5c\xd9\x52\x36\x66\x7a\x79\xe9\x7a\x1a\x8d\x28\x70\x99\x75\xd4\x6e\xde\x6c\xbb\x7a\x92\x4e\x2d\x76\xc5\x5f\xe0\x94\x9f\x88\x77\x7e\xc8\x79\xcd\x80\xbf\x91\xcd\x4e\xf2\x4f\x17\x82\x1f\x54\x68\x5d\xde\x6d\x32\x8b\xcc\x7c\xa5\x8f\x74\x80\x98\x5e\x1a\x54\x92\x76\xb1\x5b\x99\x66\x3c\x9a\xa4\x73\xe0\x68\x2a\x86\xdb\x67\x31\x73\x2a\x8b\xf8\x8b\xdb\x90\x10\x7a\xf9\x70\xdb\x71\x6e\x62\xc4\x77\xa9\x56\x31\x4e\x3b\x84\x57\x67\xf1\x52\xa9\x86\xc0\x8d\x2e\x94\xf8\x7b\x51\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x4f\x6c\xe8\x79\x5d\x9a\x7b\x62\x93\x72\x2a\x62\xfd\x4e\x13\x78\x16\x8f\x6c\x64\xb0\x8d\x5a\x7b\xc6\x68\x69\x5e\x84\x88\xc5\x59\x86\x64\x9e\x58\xee\x72\xb6\x69\x0e\x95\x25\x8f\xfd\x8d\x58\x57\x60\x7f\x00\x8c\x06\x51\xc6\x63\x49\x62\xd9\x53\x53\x68\x4c\x74\x22\x83\x01\x91\x4c\x55\x44\x77\x40\x70\x7c\x6d\x4a\x51\x79\x54\xa8\x8d\x44\x59\xff\x6e\xcb\x6d\xc4\x5b\x5c\x7d\x2b\x4e\xd4\x7c\x7d\x6e\xd3\x5b\x50\x81\xea\x6e\x0d\x5b\x57\x9b\x03\x68\xd5\x8e\x2a\x5b\x97\x7e\xfc\x60\x3b\x7e\xb5\x90\xb9\x8d\x70", /* 5c80 */ "\x00\x00\x59\x4f\x63\xcd\x79\xdf\x8d\xb3\x53\x52\x65\xcf\x79\x56\x8b\xc5\x96\x3b\x7e\xc4\x94\xbb\x7e\x82\x56\x34\x91\x89\x67\x00\x7f\x6a\x5c\x0a\x90\x75\x66\x28\x5d\xe6\x4f\x50\x67\xde\x50\x5a\x4f\x5c\x57\x50\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8d\x4e\x0c\x51\x40\x4e\x10\x5e\xff\x53\x45\x4e\x15\x4e\x98\x4e\x1e\x9b\x32\x5b\x6c\x56\x69\x4e\x28\x79\xba\x4e\x3f\x53\x15\x4e\x47\x59\x2d\x72\x3b\x53\x6e\x6c\x10\x56\xdf\x80\xe4\x99\x97\x6b\xd3\x77\x7e\x9f\x17\x4e\x36\x4e\x9f\x9f\x10\x4e\x5c\x4e\x69\x4e\x93\x82\x88\x5b\x5b\x55\x6c\x56\x0f\x4e\xc4\x53\x8d\x53\x9d\x53\xa3\x53\xa5\x53\xae\x97\x65\x8d\x5d\x53\x1a\x53\xf5\x53\x26\x53\x2e\x53\x3e\x8d\x5c\x53\x66\x53\x63\x52\x02\x52\x08\x52\x0e\x52\x2d\x52\x33\x52\x3f\x52\x40\x52\x4c\x52\x5e\x52\x61\x52\x5c\x84\xaf\x52\x7d\x52\x82\x52\x81\x52\x90\x52\x93\x51\x82\x7f\x54\x4e\xbb\x4e\xc3\x4e\xc9\x4e\xc2\x4e\xe8\x4e\xe1\x4e\xeb\x4e\xde\x4f\x1b\x4e\xf3\x4f\x22\x4f\x64\x4e\xf5\x4f\x25\x4f\x27\x4f\x09\x4f\x2b\x4f\x5e\x4f\x67\x65\x38\x4f\x5a\x4f\x5d\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x5f\x4f\x57\x4f\x32\x4f\x3d\x4f\x76\x4f\x74\x4f\x91\x4f\x89\x4f\x83\x4f\x8f\x4f\x7e\x4f\x7b\x4f\xaa\x4f\x7c\x4f\xac\x4f\x94\x4f\xe6\x4f\xe8\x4f\xea\x4f\xc5\x4f\xda\x4f\xe3\x4f\xdc\x4f\xd1\x4f\xdf\x4f\xf8\x50\x29\x50\x4c\x4f\xf3\x50\x2c\x50\x0f\x50\x2e\x50\x2d\x4f\xfe\x50\x1c\x50\x0c\x50\x25\x50\x28\x50\x7e\x50\x43\x50\x55\x50\x48\x50\x4e\x50\x6c\x50\x7b\x50\xa5\x50\xa7\x50\xa9\x50\xba\x50\xd6\x51\x06\x50\xed\x50\xec\x50\xe6\x50\xee\x51\x07\x51\x0b\x4e\xdd\x6c\x3d\x4f\x58\x4f\x65\x4f\xce\x9f\xa0", /* 5d80 */ "\x00\x00\x6c\x46\x7c\x74\x51\x6e\x5d\xfd\x9e\xc9\x99\x98\x51\x81\x59\x14\x52\xf9\x53\x0d\x8a\x07\x53\x10\x51\xeb\x59\x19\x51\x55\x4e\xa0\x51\x56\x4e\xb3\x88\x6e\x88\xa4\x4e\xb5\x81\x14\x88\xd2\x79\x80\x5b\x34\x88\x03\x7f\xb8\x51\xab\x51\xb1\x51\xbd\x51\xbc\x51\xc7\x51\x96\x51\xa2\x51\xa5\x8b\xa0\x8b\xa6\x8b\xa7\x8b\xaa\x8b\xb4\x8b\xb5\x8b\xb7\x8b\xc2\x8b\xc3\x8b\xcb\x8b\xcf\x8b\xce\x8b\xd2\x8b\xd3\x8b\xd4\x8b\xd6\x8b\xd8\x8b\xd9\x8b\xdc\x8b\xdf\x8b\xe0\x8b\xe4\x8b\xe8\x8b\xe9\x8b\xee\x8b\xf0\x8b\xf3\x8b\xf6\x8b\xf9\x8b\xfc\x8b\xff\x8c\x00\x8c\x02\x8c\x04\x8c\x07\x8c\x0c\x8c\x0f\x8c\x11\x8c\x12\x8c\x14\x8c\x15\x8c\x16\x8c\x19\x8c\x1b\x8c\x18\x8c\x1d\x8c\x1f\x8c\x20\x8c\x21\x8c\x25\x8c\x27\x8c\x2a\x8c\x2b\x8c\x2e\x8c\x2f\x8c\x32\x8c\x33\x8c\x35\x8c\x36\x53\x69\x53\x7a\x96\x1d\x96\x22\x96\x21\x96\x31\x96\x2a\x96\x3d\x96\x3c\x96\x42\x96\x49\x96\x54\x96\x5f\x96\x67\x96\x6c\x96\x72\x96\x74\x96\x88\x96\x8d\x96\x97\x96\xb0\x90\x97\x90\x9b\x90\x9d\x90\x99\x90\xac\x90\xa1\x90\xb4\x90\xb3\x90\xb6\x90\xba\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xb8\x90\xb0\x90\xcf\x90\xc5\x90\xbe\x90\xd0\x90\xc4\x90\xc7\x90\xd3\x90\xe6\x90\xe2\x90\xdc\x90\xd7\x90\xdb\x90\xeb\x90\xef\x90\xfe\x91\x04\x91\x22\x91\x1e\x91\x23\x91\x31\x91\x2f\x91\x39\x91\x43\x91\x46\x52\x0d\x59\x42\x52\xa2\x52\xac\x52\xad\x52\xbe\x54\xff\x52\xd0\x52\xd6\x52\xf0\x53\xdf\x71\xee\x77\xcd\x5e\xf4\x51\xf5\x51\xfc\x9b\x2f\x53\xb6\x5f\x01\x75\x5a\x5d\xef\x57\x4c\x57\xa9\x57\xa1\x58\x7e\x58\xbc\x58\xc5\x58\xd1\x57\x29\x57\x2c\x57\x2a\x57\x33\x57\x39\x57\x2e\x57\x2f\x57\x5c\x57\x3b", /* 5e80 */ "\x00\x00\x57\x42\x57\x69\x57\x85\x57\x6b\x57\x86\x57\x7c\x57\x7b\x57\x68\x57\x6d\x57\x76\x57\x73\x57\xad\x57\xa4\x57\x8c\x57\xb2\x57\xcf\x57\xa7\x57\xb4\x57\x93\x57\xa0\x57\xd5\x57\xd8\x57\xda\x57\xd9\x57\xd2\x57\xb8\x57\xf4\x57\xef\x57\xf8\x57\xe4\x57\xdd\x58\x0b\x58\x0d\x57\xfd\x57\xed\x58\x00\x58\x1e\x58\x19\x58\x44\x58\x20\x58\x65\x58\x6c\x58\x81\x58\x89\x58\x9a\x58\x80\x99\xa8\x9f\x19\x61\xff\x82\x79\x82\x7d\x82\x7f\x82\x8f\x82\x8a\x82\xa8\x82\x84\x82\x8e\x82\x91\x82\x97\x82\x99\x82\xab\x82\xb8\x82\xbe\x82\xb0\x82\xc8\x82\xca\x82\xe3\x82\x98\x82\xb7\x82\xae\x82\xcb\x82\xcc\x82\xc1\x82\xa9\x82\xb4\x82\xa1\x82\xaa\x82\x9f\x82\xc4\x82\xce\x82\xa4\x82\xe1\x83\x09\x82\xf7\x82\xe4\x83\x0f\x83\x07\x82\xdc\x82\xf4\x82\xd2\x82\xd8\x83\x0c\x82\xfb\x82\xd3\x83\x11\x83\x1a\x83\x06\x83\x14\x83\x15\x82\xe0\x82\xd5\x83\x1c\x83\x51\x83\x5b\x83\x5c\x83\x08\x83\x92\x83\x3c\x83\x34\x83\x31\x83\x9b\x83\x5e\x83\x2f\x83\x4f\x83\x47\x83\x43\x83\x5f\x83\x40\x83\x17\x83\x60\x83\x2d\x83\x3a\x83\x33\x83\x66\x83\x65\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x68\x83\x1b\x83\x69\x83\x6c\x83\x6a\x83\x6d\x83\x6e\x83\xb0\x83\x78\x83\xb3\x83\xb4\x83\xa0\x83\xaa\x83\x93\x83\x9c\x83\x85\x83\x7c\x83\xb6\x83\xa9\x83\x7d\x83\xb8\x83\x7b\x83\x98\x83\x9e\x83\xa8\x83\xba\x83\xbc\x83\xc1\x84\x01\x83\xe5\x83\xd8\x58\x07\x84\x18\x84\x0b\x83\xdd\x83\xfd\x83\xd6\x84\x1c\x84\x38\x84\x11\x84\x06\x83\xd4\x83\xdf\x84\x0f\x84\x03\x83\xf8\x83\xf9\x83\xea\x83\xc5\x83\xc0\x84\x26\x83\xf0\x83\xe1\x84\x5c\x84\x51\x84\x5a\x84\x59\x84\x73\x84\x87\x84\x88\x84\x7a\x84\x89\x84\x78", /* 5f80 */ "\x00\x00\x84\x3c\x84\x46\x84\x69\x84\x76\x84\x8c\x84\x8e\x84\x31\x84\x6d\x84\xc1\x84\xcd\x84\xd0\x84\xe6\x84\xbd\x84\xd3\x84\xca\x84\xbf\x84\xba\x84\xe0\x84\xa1\x84\xb9\x84\xb4\x84\x97\x84\xe5\x84\xe3\x85\x0c\x75\x0d\x85\x38\x84\xf0\x85\x39\x85\x1f\x85\x3a\x85\x56\x85\x3b\x84\xff\x84\xfc\x85\x59\x85\x48\x85\x68\x85\x64\x85\x5e\x85\x7a\x77\xa2\x85\x43\x85\x72\x85\x7b\x85\xa4\x85\xa8\x85\x87\x85\x8f\x85\x79\x85\xae\x85\x9c\x85\x85\x85\xb9\x85\xb7\x85\xb0\x85\xd3\x85\xc1\x85\xdc\x85\xff\x86\x27\x86\x05\x86\x29\x86\x16\x86\x3c\x5e\xfe\x5f\x08\x59\x3c\x59\x41\x80\x37\x59\x55\x59\x5a\x59\x58\x53\x0f\x5c\x22\x5c\x25\x5c\x2c\x5c\x34\x62\x4c\x62\x6a\x62\x9f\x62\xbb\x62\xca\x62\xda\x62\xd7\x62\xee\x63\x22\x62\xf6\x63\x39\x63\x4b\x63\x43\x63\xad\x63\xf6\x63\x71\x63\x7a\x63\x8e\x63\xb4\x63\x6d\x63\xac\x63\x8a\x63\x69\x63\xae\x63\xbc\x63\xf2\x63\xf8\x63\xe0\x63\xff\x63\xc4\x63\xde\x63\xce\x64\x52\x63\xc6\x63\xbe\x64\x45\x64\x41\x64\x0b\x64\x1b\x64\x20\x64\x0c\x64\x26\x64\x21\x64\x5e\x64\x84\x64\x6d\x64\x96\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7a\x64\xb7\x64\xb8\x64\x99\x64\xba\x64\xc0\x64\xd0\x64\xd7\x64\xe4\x64\xe2\x65\x09\x65\x25\x65\x2e\x5f\x0b\x5f\xd2\x75\x19\x5f\x11\x53\x5f\x53\xf1\x53\xfd\x53\xe9\x53\xe8\x53\xfb\x54\x12\x54\x16\x54\x06\x54\x4b\x54\x52\x54\x53\x54\x54\x54\x56\x54\x43\x54\x21\x54\x57\x54\x59\x54\x23\x54\x32\x54\x82\x54\x94\x54\x77\x54\x71\x54\x64\x54\x9a\x54\x9b\x54\x84\x54\x76\x54\x66\x54\x9d\x54\xd0\x54\xad\x54\xc2\x54\xb4\x54\xd2\x54\xa7\x54\xa6\x54\xd3\x54\xd4\x54\x72\x54\xa3\x54\xd5\x54\xbb\x54\xbf\x54\xcc", /* 6080 */ "\x00\x00\x54\xd9\x54\xda\x54\xdc\x54\xa9\x54\xaa\x54\xa4\x54\xdd\x54\xcf\x54\xde\x55\x1b\x54\xe7\x55\x20\x54\xfd\x55\x14\x54\xf3\x55\x22\x55\x23\x55\x0f\x55\x11\x55\x27\x55\x2a\x55\x67\x55\x8f\x55\xb5\x55\x49\x55\x6d\x55\x41\x55\x55\x55\x3f\x55\x50\x55\x3c\x55\x37\x55\x56\x55\x75\x55\x76\x55\x77\x55\x33\x55\x30\x55\x5c\x55\x8b\x55\xd2\x55\x83\x55\xb1\x55\xb9\x55\x88\x55\x81\x55\x9f\x55\x7e\x55\xd6\x55\x91\x55\x7b\x55\xdf\x55\xbd\x55\xbe\x55\x94\x55\x99\x55\xea\x55\xf7\x55\xc9\x56\x1f\x55\xd1\x55\xeb\x55\xec\x55\xd4\x55\xe6\x55\xdd\x55\xc4\x55\xef\x55\xe5\x55\xf2\x55\xf3\x55\xcc\x55\xcd\x55\xe8\x55\xf5\x55\xe4\x8f\x94\x56\x1e\x56\x08\x56\x0c\x56\x01\x56\x24\x56\x23\x55\xfe\x56\x00\x56\x27\x56\x2d\x56\x58\x56\x39\x56\x57\x56\x2c\x56\x4d\x56\x62\x56\x59\x56\x5c\x56\x4c\x56\x54\x56\x86\x56\x64\x56\x71\x56\x6b\x56\x7b\x56\x7c\x56\x85\x56\x93\x56\xaf\x56\xd4\x56\xd7\x56\xdd\x56\xe1\x56\xf5\x56\xeb\x56\xf9\x56\xff\x57\x04\x57\x0a\x57\x09\x57\x1c\x5e\x0f\x5e\x19\x5e\x14\x5e\x11\x5e\x31\x5e\x3b\x5e\x3c\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x37\x5e\x44\x5e\x54\x5e\x5b\x5e\x5e\x5e\x61\x5c\x8c\x5c\x7a\x5c\x8d\x5c\x90\x5c\x96\x5c\x88\x5c\x98\x5c\x99\x5c\x91\x5c\x9a\x5c\x9c\x5c\xb5\x5c\xa2\x5c\xbd\x5c\xac\x5c\xab\x5c\xb1\x5c\xa3\x5c\xc1\x5c\xb7\x5c\xc4\x5c\xd2\x5c\xe4\x5c\xcb\x5c\xe5\x5d\x02\x5d\x03\x5d\x27\x5d\x26\x5d\x2e\x5d\x24\x5d\x1e\x5d\x06\x5d\x1b\x5d\x58\x5d\x3e\x5d\x34\x5d\x3d\x5d\x6c\x5d\x5b\x5d\x6f\x5d\x5d\x5d\x6b\x5d\x4b\x5d\x4a\x5d\x69\x5d\x74\x5d\x82\x5d\x99\x5d\x9d\x8c\x73\x5d\xb7\x5d\xc5\x5f\x73\x5f\x77\x5f\x82\x5f\x87", /* 6180 */ "\x00\x00\x5f\x89\x5f\x8c\x5f\x95\x5f\x99\x5f\x9c\x5f\xa8\x5f\xad\x5f\xb5\x5f\xbc\x88\x62\x5f\x61\x72\xad\x72\xb0\x72\xb4\x72\xb7\x72\xb8\x72\xc3\x72\xc1\x72\xce\x72\xcd\x72\xd2\x72\xe8\x72\xef\x72\xe9\x72\xf2\x72\xf4\x72\xf7\x73\x01\x72\xf3\x73\x03\x72\xfa\x72\xfb\x73\x17\x73\x13\x73\x21\x73\x0a\x73\x1e\x73\x1d\x73\x15\x73\x22\x73\x39\x73\x25\x73\x2c\x73\x38\x73\x31\x73\x50\x73\x4d\x73\x57\x73\x60\x73\x6c\x73\x6f\x73\x7e\x82\x1b\x59\x25\x98\xe7\x59\x24\x59\x02\x99\x63\x99\x67\x99\x68\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x74\x99\x77\x99\x7d\x99\x80\x99\x84\x99\x87\x99\x8a\x99\x8d\x99\x90\x99\x91\x99\x93\x99\x94\x99\x95\x5e\x80\x5e\x91\x5e\x8b\x5e\x96\x5e\xa5\x5e\xa0\x5e\xb9\x5e\xb5\x5e\xbe\x5e\xb3\x8d\x53\x5e\xd2\x5e\xd1\x5e\xdb\x5e\xe8\x5e\xea\x81\xba\x5f\xc4\x5f\xc9\x5f\xd6\x5f\xcf\x60\x03\x5f\xee\x60\x04\x5f\xe1\x5f\xe4\x5f\xfe\x60\x05\x60\x06\x5f\xea\x5f\xed\x5f\xf8\x60\x19\x60\x35\x60\x26\x60\x1b\x60\x0f\x60\x0d\x60\x29\x60\x2b\x60\x0a\x60\x3f\x60\x21\x60\x78\x60\x79\x60\x7b\x60\x7a\x60\x42\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6a\x60\x7d\x60\x96\x60\x9a\x60\xad\x60\x9d\x60\x83\x60\x92\x60\x8c\x60\x9b\x60\xec\x60\xbb\x60\xb1\x60\xdd\x60\xd8\x60\xc6\x60\xda\x60\xb4\x61\x20\x61\x26\x61\x15\x61\x23\x60\xf4\x61\x00\x61\x0e\x61\x2b\x61\x4a\x61\x75\x61\xac\x61\x94\x61\xa7\x61\xb7\x61\xd4\x61\xf5\x5f\xdd\x96\xb3\x95\xe9\x95\xeb\x95\xf1\x95\xf3\x95\xf5\x95\xf6\x95\xfc\x95\xfe\x96\x03\x96\x04\x96\x06\x96\x08\x96\x0a\x96\x0b\x96\x0c\x96\x0d\x96\x0f\x96\x12\x96\x15\x96\x16\x96\x17\x96\x19\x96\x1a\x4e\x2c\x72\x3f\x62\x15\x6c\x35", /* 6280 */ "\x00\x00\x6c\x54\x6c\x5c\x6c\x4a\x6c\xa3\x6c\x85\x6c\x90\x6c\x94\x6c\x8c\x6c\x68\x6c\x69\x6c\x74\x6c\x76\x6c\x86\x6c\xa9\x6c\xd0\x6c\xd4\x6c\xad\x6c\xf7\x6c\xf8\x6c\xf1\x6c\xd7\x6c\xb2\x6c\xe0\x6c\xd6\x6c\xfa\x6c\xeb\x6c\xee\x6c\xb1\x6c\xd3\x6c\xef\x6c\xfe\x6d\x39\x6d\x27\x6d\x0c\x6d\x43\x6d\x48\x6d\x07\x6d\x04\x6d\x19\x6d\x0e\x6d\x2b\x6d\x4d\x6d\x2e\x6d\x35\x6d\x1a\x6d\x4f\x6d\x52\x6d\x54\x6d\x33\x6d\x91\x6d\x6f\x6d\x9e\x6d\xa0\x6d\x5e\x6d\x93\x6d\x94\x6d\x5c\x6d\x60\x6d\x7c\x6d\x63\x6e\x1a\x6d\xc7\x6d\xc5\x6d\xde\x6e\x0e\x6d\xbf\x6d\xe0\x6e\x11\x6d\xe6\x6d\xdd\x6d\xd9\x6e\x16\x6d\xab\x6e\x0c\x6d\xae\x6e\x2b\x6e\x6e\x6e\x4e\x6e\x6b\x6e\xb2\x6e\x5f\x6e\x86\x6e\x53\x6e\x54\x6e\x32\x6e\x25\x6e\x44\x6e\xdf\x6e\xb1\x6e\x98\x6e\xe0\x6f\x2d\x6e\xe2\x6e\xa5\x6e\xa7\x6e\xbd\x6e\xbb\x6e\xb7\x6e\xd7\x6e\xb4\x6e\xcf\x6e\x8f\x6e\xc2\x6e\x9f\x6f\x62\x6f\x46\x6f\x47\x6f\x24\x6f\x15\x6e\xf9\x6f\x2f\x6f\x36\x6f\x4b\x6f\x74\x6f\x2a\x6f\x09\x6f\x29\x6f\x89\x6f\x8d\x6f\x8c\x6f\x78\x6f\x72\x6f\x7c\x6f\x7a\x6f\xd1\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xc9\x6f\xa7\x6f\xb9\x6f\xb6\x6f\xc2\x6f\xe1\x6f\xee\x6f\xde\x6f\xe0\x6f\xef\x70\x1a\x70\x23\x70\x1b\x70\x39\x70\x35\x70\x4f\x70\x5e\x5b\x80\x5b\x84\x5b\x95\x5b\x93\x5b\xa5\x5b\xb8\x75\x2f\x9a\x9e\x64\x34\x5b\xe4\x5b\xee\x89\x30\x5b\xf0\x8e\x47\x8b\x07\x8f\xb6\x8f\xd3\x8f\xd5\x8f\xe5\x8f\xee\x8f\xe4\x8f\xe9\x8f\xe6\x8f\xf3\x8f\xe8\x90\x05\x90\x04\x90\x0b\x90\x26\x90\x11\x90\x0d\x90\x16\x90\x21\x90\x35\x90\x36\x90\x2d\x90\x2f\x90\x44\x90\x51\x90\x52\x90\x50\x90\x68\x90\x58\x90\x62\x90\x5b\x66\xb9", /* 6380 */ "\x00\x00\x90\x74\x90\x7d\x90\x82\x90\x88\x90\x83\x90\x8b\x5f\x50\x5f\x57\x5f\x56\x5f\x58\x5c\x3b\x54\xab\x5c\x50\x5c\x59\x5b\x71\x5c\x63\x5c\x66\x7f\xbc\x5f\x2a\x5f\x29\x5f\x2d\x82\x74\x5f\x3c\x9b\x3b\x5c\x6e\x59\x81\x59\x83\x59\x8d\x59\xa9\x59\xaa\x59\xa3\x59\x97\x59\xca\x59\xab\x59\x9e\x59\xa4\x59\xd2\x59\xb2\x59\xaf\x59\xd7\x59\xbe\x5a\x05\x5a\x06\x59\xdd\x5a\x08\x59\xe3\x59\xd8\x59\xf9\x5a\x0c\x5a\x09\x5a\x32\x5a\x34\x5a\x11\x5a\x23\x5a\x13\x5a\x40\x5a\x67\x5a\x4a\x5a\x55\x5a\x3c\x5a\x62\x5a\x75\x80\xec\x5a\xaa\x5a\x9b\x5a\x77\x5a\x7a\x5a\xbe\x5a\xeb\x5a\xb2\x5a\xd2\x5a\xd4\x5a\xb8\x5a\xe0\x5a\xe3\x5a\xf1\x5a\xd6\x5a\xe6\x5a\xd8\x5a\xdc\x5b\x09\x5b\x17\x5b\x16\x5b\x32\x5b\x37\x5b\x40\x5c\x15\x5c\x1c\x5b\x5a\x5b\x65\x5b\x73\x5b\x51\x5b\x53\x5b\x62\x9a\x75\x9a\x77\x9a\x78\x9a\x7a\x9a\x7f\x9a\x7d\x9a\x80\x9a\x81\x9a\x85\x9a\x88\x9a\x8a\x9a\x90\x9a\x92\x9a\x93\x9a\x96\x9a\x98\x9a\x9b\x9a\x9c\x9a\x9d\x9a\x9f\x9a\xa0\x9a\xa2\x9a\xa3\x9a\xa5\x9a\xa7\x7e\x9f\x7e\xa1\x7e\xa3\x7e\xa5\x7e\xa8\x7e\xa9\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xad\x7e\xb0\x7e\xbe\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc9\x7e\xcb\x7e\xcc\x7e\xd0\x7e\xd4\x7e\xd7\x7e\xdb\x7e\xe0\x7e\xe1\x7e\xe8\x7e\xeb\x7e\xee\x7e\xef\x7e\xf1\x7e\xf2\x7f\x0d\x7e\xf6\x7e\xfa\x7e\xfb\x7e\xfe\x7f\x01\x7f\x02\x7f\x03\x7f\x07\x7f\x08\x7f\x0b\x7f\x0c\x7f\x0f\x7f\x11\x7f\x12\x7f\x17\x7f\x19\x7f\x1c\x7f\x1b\x7f\x1f\x7f\x21\x7f\x22\x7f\x23\x7f\x24\x7f\x25\x7f\x26\x7f\x27\x7f\x2a\x7f\x2b\x7f\x2c\x7f\x2d\x7f\x2f\x7f\x30\x7f\x31\x7f\x32\x7f\x33\x7f\x35\x5e\x7a\x75\x7f\x5d\xdb\x75\x3e\x90\x95", /* 6480 */ "\x00\x00\x73\x8e\x73\x91\x73\xae\x73\xa2\x73\x9f\x73\xcf\x73\xc2\x73\xd1\x73\xb7\x73\xb3\x73\xc0\x73\xc9\x73\xc8\x73\xe5\x73\xd9\x98\x7c\x74\x0a\x73\xe9\x73\xe7\x73\xde\x73\xba\x73\xf2\x74\x0f\x74\x2a\x74\x5b\x74\x26\x74\x25\x74\x28\x74\x30\x74\x2e\x74\x2c\x74\x1b\x74\x1a\x74\x41\x74\x5c\x74\x57\x74\x55\x74\x59\x74\x77\x74\x6d\x74\x7e\x74\x9c\x74\x8e\x74\x80\x74\x81\x74\x87\x74\x8b\x74\x9e\x74\xa8\x74\xa9\x74\x90\x74\xa7\x74\xd2\x74\xba\x97\xea\x97\xeb\x97\xec\x67\x4c\x67\x53\x67\x5e\x67\x48\x67\x69\x67\xa5\x67\x87\x67\x6a\x67\x73\x67\x98\x67\xa7\x67\x75\x67\xa8\x67\x9e\x67\xad\x67\x8b\x67\x77\x67\x7c\x67\xf0\x68\x09\x67\xd8\x68\x0a\x67\xe9\x67\xb0\x68\x0c\x67\xd9\x67\xb5\x67\xda\x67\xb3\x67\xdd\x68\x00\x67\xc3\x67\xb8\x67\xe2\x68\x0e\x67\xc1\x67\xfd\x68\x32\x68\x33\x68\x60\x68\x61\x68\x4e\x68\x62\x68\x44\x68\x64\x68\x83\x68\x1d\x68\x55\x68\x66\x68\x41\x68\x67\x68\x40\x68\x3e\x68\x4a\x68\x49\x68\x29\x68\xb5\x68\x8f\x68\x74\x68\x77\x68\x93\x68\x6b\x68\xc2\x69\x6e\x68\xfc\x69\x1f\x69\x20\x68\xf9\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x24\x68\xf0\x69\x0b\x69\x01\x69\x57\x68\xe3\x69\x10\x69\x71\x69\x39\x69\x60\x69\x42\x69\x5d\x69\x84\x69\x6b\x69\x80\x69\x98\x69\x78\x69\x34\x69\xcc\x69\x87\x69\x88\x69\xce\x69\x89\x69\x66\x69\x63\x69\x79\x69\x9b\x69\xa7\x69\xbb\x69\xab\x69\xad\x69\xd4\x69\xb1\x69\xc1\x69\xca\x69\xdf\x69\x95\x69\xe0\x69\x8d\x69\xff\x6a\x2f\x69\xed\x6a\x17\x6a\x18\x6a\x65\x69\xf2\x6a\x44\x6a\x3e\x6a\xa0\x6a\x50\x6a\x5b\x6a\x35\x6a\x8e\x6a\x79\x6a\x3d\x6a\x28\x6a\x58\x6a\x7c\x6a\x91\x6a\x90\x6a\xa9\x6a\x97\x6a\xab", /* 6580 */ "\x00\x00\x73\x37\x73\x52\x6b\x81\x6b\x82\x6b\x87\x6b\x84\x6b\x92\x6b\x93\x6b\x8d\x6b\x9a\x6b\x9b\x6b\xa1\x6b\xaa\x8f\x6b\x8f\x6d\x8f\x71\x8f\x72\x8f\x73\x8f\x75\x8f\x76\x8f\x78\x8f\x77\x8f\x79\x8f\x7a\x8f\x7c\x8f\x7e\x8f\x81\x8f\x82\x8f\x84\x8f\x87\x8f\x8b\x8f\x8d\x8f\x8e\x8f\x8f\x8f\x98\x8f\x9a\x8e\xce\x62\x0b\x62\x17\x62\x1b\x62\x1f\x62\x22\x62\x21\x62\x25\x62\x24\x62\x2c\x81\xe7\x74\xef\x74\xf4\x74\xff\x75\x0f\x75\x11\x75\x13\x65\x34\x65\xee\x65\xef\x65\xf0\x66\x0a\x66\x19\x67\x72\x66\x03\x66\x15\x66\x00\x70\x85\x66\xf7\x66\x1d\x66\x34\x66\x31\x66\x36\x66\x35\x80\x06\x66\x5f\x66\x54\x66\x41\x66\x4f\x66\x56\x66\x61\x66\x57\x66\x77\x66\x84\x66\x8c\x66\xa7\x66\x9d\x66\xbe\x66\xdb\x66\xdc\x66\xe6\x66\xe9\x8d\x32\x8d\x33\x8d\x36\x8d\x3b\x8d\x3d\x8d\x40\x8d\x45\x8d\x46\x8d\x48\x8d\x49\x8d\x47\x8d\x4d\x8d\x55\x8d\x59\x89\xc7\x89\xca\x89\xcb\x89\xcc\x89\xce\x89\xcf\x89\xd0\x89\xd1\x72\x6e\x72\x9f\x72\x5d\x72\x66\x72\x6f\x72\x7e\x72\x7f\x72\x84\x72\x8b\x72\x8d\x72\x8f\x72\x92\x63\x08\x63\x32\x63\xb0\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x3f\x64\xd8\x80\x04\x6b\xea\x6b\xf3\x6b\xfd\x6b\xf5\x6b\xf9\x6c\x05\x6c\x07\x6c\x06\x6c\x0d\x6c\x15\x6c\x18\x6c\x19\x6c\x1a\x6c\x21\x6c\x29\x6c\x24\x6c\x2a\x6c\x32\x65\x35\x65\x55\x65\x6b\x72\x4d\x72\x52\x72\x56\x72\x30\x86\x62\x52\x16\x80\x9f\x80\x9c\x80\x93\x80\xbc\x67\x0a\x80\xbd\x80\xb1\x80\xab\x80\xad\x80\xb4\x80\xb7\x80\xe7\x80\xe8\x80\xe9\x80\xea\x80\xdb\x80\xc2\x80\xc4\x80\xd9\x80\xcd\x80\xd7\x67\x10\x80\xdd\x80\xeb\x80\xf1\x80\xf4\x80\xed\x81\x0d\x81\x0e\x80\xf2\x80\xfc\x67\x15\x81\x12", /* 6680 */ "\x00\x00\x8c\x5a\x81\x36\x81\x1e\x81\x2c\x81\x18\x81\x32\x81\x48\x81\x4c\x81\x53\x81\x74\x81\x59\x81\x5a\x81\x71\x81\x60\x81\x69\x81\x7c\x81\x7d\x81\x6d\x81\x67\x58\x4d\x5a\xb5\x81\x88\x81\x82\x81\x91\x6e\xd5\x81\xa3\x81\xaa\x81\xcc\x67\x26\x81\xca\x81\xbb\x81\xc1\x81\xa6\x6b\x24\x6b\x37\x6b\x39\x6b\x43\x6b\x46\x6b\x59\x98\xd1\x98\xd2\x98\xd3\x98\xd5\x98\xd9\x98\xda\x6b\xb3\x5f\x40\x6b\xc2\x89\xf3\x65\x90\x9f\x51\x65\x93\x65\xbc\x65\xc6\x65\xc4\x65\xc3\x65\xcc\x65\xce\x65\xd2\x65\xd6\x70\x80\x70\x9c\x70\x96\x70\x9d\x70\xbb\x70\xc0\x70\xb7\x70\xab\x70\xb1\x70\xe8\x70\xca\x71\x10\x71\x13\x71\x16\x71\x2f\x71\x31\x71\x73\x71\x5c\x71\x68\x71\x45\x71\x72\x71\x4a\x71\x78\x71\x7a\x71\x98\x71\xb3\x71\xb5\x71\xa8\x71\xa0\x71\xe0\x71\xd4\x71\xe7\x71\xf9\x72\x1d\x72\x28\x70\x6c\x71\x18\x71\x66\x71\xb9\x62\x3e\x62\x3d\x62\x43\x62\x48\x62\x49\x79\x3b\x79\x40\x79\x46\x79\x49\x79\x5b\x79\x5c\x79\x53\x79\x5a\x79\x62\x79\x57\x79\x60\x79\x6f\x79\x67\x79\x7a\x79\x85\x79\x8a\x79\x9a\x79\xa7\x79\xb3\x5f\xd1\x5f\xd0\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x3c\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\x59\x60\x63\x60\xab\x61\x06\x61\x0d\x61\x5d\x61\xa9\x61\x9d\x61\xcb\x61\xd1\x62\x06\x80\x80\x80\x7f\x6c\x93\x6c\xf6\x6d\xfc\x77\xf6\x77\xf8\x78\x00\x78\x09\x78\x17\x78\x18\x78\x11\x65\xab\x78\x2d\x78\x1c\x78\x1d\x78\x39\x78\x3a\x78\x3b\x78\x1f\x78\x3c\x78\x25\x78\x2c\x78\x23\x78\x29\x78\x4e\x78\x6d\x78\x56\x78\x57\x78\x26\x78\x50\x78\x47\x78\x4c\x78\x6a\x78\x9b\x78\x93\x78\x9a\x78\x87\x78\x9c\x78\xa1\x78\xa3\x78\xb2\x78\xb9\x78\xa5\x78\xd4\x78\xd9\x78\xc9", /* 6780 */ "\x00\x00\x78\xec\x78\xf2\x79\x05\x78\xf4\x79\x13\x79\x24\x79\x1e\x79\x34\x9f\x9b\x9e\xf9\x9e\xfb\x9e\xfc\x76\xf1\x77\x04\x77\x0d\x76\xf9\x77\x07\x77\x08\x77\x1a\x77\x22\x77\x19\x77\x2d\x77\x26\x77\x35\x77\x38\x77\x50\x77\x51\x77\x47\x77\x43\x77\x5a\x77\x68\x77\x62\x77\x65\x77\x7f\x77\x8d\x77\x7d\x77\x80\x77\x8c\x77\x91\x77\x9f\x77\xa0\x77\xb0\x77\xb5\x77\xbd\x75\x3a\x75\x40\x75\x4e\x75\x4b\x75\x48\x75\x5b\x75\x72\x75\x79\x75\x83\x7f\x58\x7f\x61\x7f\x5f\x8a\x48\x7f\x68\x7f\x74\x7f\x71\x7f\x79\x7f\x81\x7f\x7e\x76\xcd\x76\xe5\x88\x32\x94\x85\x94\x86\x94\x87\x94\x8b\x94\x8a\x94\x8c\x94\x8d\x94\x8f\x94\x90\x94\x94\x94\x97\x94\x95\x94\x9a\x94\x9b\x94\x9c\x94\xa3\x94\xa4\x94\xab\x94\xaa\x94\xad\x94\xac\x94\xaf\x94\xb0\x94\xb2\x94\xb4\x94\xb6\x94\xb7\x94\xb8\x94\xb9\x94\xba\x94\xbc\x94\xbd\x94\xbf\x94\xc4\x94\xc8\x94\xc9\x94\xca\x94\xcb\x94\xcc\x94\xcd\x94\xce\x94\xd0\x94\xd1\x94\xd2\x94\xd5\x94\xd6\x94\xd7\x94\xd9\x94\xd8\x94\xdb\x94\xde\x94\xdf\x94\xe0\x94\xe2\x94\xe4\x94\xe5\x94\xe7\x94\xe8\x94\xea\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe9\x94\xeb\x94\xee\x94\xef\x94\xf3\x94\xf4\x94\xf5\x94\xf7\x94\xf9\x94\xfc\x94\xfd\x94\xff\x95\x03\x95\x02\x95\x06\x95\x07\x95\x09\x95\x0a\x95\x0d\x95\x0e\x95\x0f\x95\x12\x95\x13\x95\x14\x95\x15\x95\x16\x95\x18\x95\x1b\x95\x1d\x95\x1e\x95\x1f\x95\x22\x95\x2a\x95\x2b\x95\x29\x95\x2c\x95\x31\x95\x32\x95\x34\x95\x36\x95\x37\x95\x38\x95\x3c\x95\x3e\x95\x3f\x95\x42\x95\x35\x95\x44\x95\x45\x95\x46\x95\x49\x95\x4c\x95\x4e\x95\x4f\x95\x52\x95\x53\x95\x54\x95\x56\x95\x57\x95\x58\x95\x59\x95\x5b\x95\x5e", /* 6880 */ "\x00\x00\x95\x5f\x95\x5d\x95\x61\x95\x62\x95\x64\x95\x65\x95\x66\x95\x67\x95\x68\x95\x69\x95\x6a\x95\x6b\x95\x6c\x95\x6f\x95\x71\x95\x72\x95\x73\x95\x3a\x77\xe7\x77\xec\x96\xc9\x79\xd5\x79\xed\x79\xe3\x79\xeb\x7a\x06\x5d\x47\x7a\x03\x7a\x02\x7a\x1e\x7a\x14\x7a\x39\x7a\x37\x7a\x51\x9e\xcf\x99\xa5\x7a\x70\x76\x88\x76\x8e\x76\x93\x76\x99\x76\xa4\x74\xde\x74\xe0\x75\x2c\x9e\x20\x9e\x22\x9e\x28\x9e\x29\x9e\x2a\x9e\x2b\x9e\x2c\x9e\x32\x9e\x31\x9e\x36\x9e\x38\x9e\x37\x9e\x39\x9e\x3a\x9e\x3e\x9e\x41\x9e\x42\x9e\x44\x9e\x46\x9e\x47\x9e\x48\x9e\x49\x9e\x4b\x9e\x4c\x9e\x4e\x9e\x51\x9e\x55\x9e\x57\x9e\x5a\x9e\x5b\x9e\x5c\x9e\x5e\x9e\x63\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x9e\x6b\x9e\x6c\x9e\x71\x9e\x6d\x9e\x73\x75\x92\x75\x94\x75\x96\x75\xa0\x75\x9d\x75\xac\x75\xa3\x75\xb3\x75\xb4\x75\xb8\x75\xc4\x75\xb1\x75\xb0\x75\xc3\x75\xc2\x75\xd6\x75\xcd\x75\xe3\x75\xe8\x75\xe6\x75\xe4\x75\xeb\x75\xe7\x76\x03\x75\xf1\x75\xfc\x75\xff\x76\x10\x76\x00\x76\x05\x76\x0c\x76\x17\x76\x0a\x76\x25\x76\x18\x76\x15\x76\x19\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x1b\x76\x3c\x76\x22\x76\x20\x76\x40\x76\x2d\x76\x30\x76\x3f\x76\x35\x76\x43\x76\x3e\x76\x33\x76\x4d\x76\x5e\x76\x54\x76\x5c\x76\x56\x76\x6b\x76\x6f\x7f\xca\x7a\xe6\x7a\x78\x7a\x79\x7a\x80\x7a\x86\x7a\x88\x7a\x95\x7a\xa6\x7a\xa0\x7a\xac\x7a\xa8\x7a\xad\x7a\xb3\x88\x64\x88\x69\x88\x72\x88\x7d\x88\x7f\x88\x82\x88\xa2\x88\xc6\x88\xb7\x88\xbc\x88\xc9\x88\xe2\x88\xce\x88\xe3\x88\xe5\x88\xf1\x89\x1a\x88\xfc\x88\xe8\x88\xfe\x88\xf0\x89\x21\x89\x19\x89\x13\x89\x1b\x89\x0a\x89\x34\x89\x2b\x89\x36\x89\x41", /* 6980 */ "\x00\x00\x89\x66\x89\x7b\x75\x8b\x80\xe5\x76\xb2\x76\xb4\x77\xdc\x80\x12\x80\x14\x80\x16\x80\x1c\x80\x20\x80\x22\x80\x25\x80\x26\x80\x27\x80\x29\x80\x28\x80\x31\x80\x0b\x80\x35\x80\x43\x80\x46\x80\x4d\x80\x52\x80\x69\x80\x71\x89\x83\x98\x78\x98\x80\x98\x83\x98\x89\x98\x8c\x98\x8d\x98\x8f\x98\x94\x98\x9a\x98\x9b\x98\x9e\x98\x9f\x98\xa1\x98\xa2\x98\xa5\x98\xa6\x86\x4d\x86\x54\x86\x6c\x86\x6e\x86\x7f\x86\x7a\x86\x7c\x86\x7b\x86\xa8\x86\x8d\x86\x8b\x86\xac\x86\x9d\x86\xa7\x86\xa3\x86\xaa\x86\x93\x86\xa9\x86\xb6\x86\xc4\x86\xb5\x86\xce\x86\xb0\x86\xba\x86\xb1\x86\xaf\x86\xc9\x86\xcf\x86\xb4\x86\xe9\x86\xf1\x86\xf2\x86\xed\x86\xf3\x86\xd0\x87\x13\x86\xde\x86\xf4\x86\xdf\x86\xd8\x86\xd1\x87\x03\x87\x07\x86\xf8\x87\x08\x87\x0a\x87\x0d\x87\x09\x87\x23\x87\x3b\x87\x1e\x87\x25\x87\x2e\x87\x1a\x87\x3e\x87\x48\x87\x34\x87\x31\x87\x29\x87\x37\x87\x3f\x87\x82\x87\x22\x87\x7d\x87\x7e\x87\x7b\x87\x60\x87\x70\x87\x4c\x87\x6e\x87\x8b\x87\x53\x87\x63\x87\x7c\x87\x64\x87\x59\x87\x65\x87\x93\x87\xaf\x87\xa8\x87\xd2\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xc6\x87\x88\x87\x85\x87\xad\x87\x97\x87\x83\x87\xab\x87\xe5\x87\xac\x87\xb5\x87\xb3\x87\xcb\x87\xd3\x87\xbd\x87\xd1\x87\xc0\x87\xca\x87\xdb\x87\xea\x87\xe0\x87\xee\x88\x16\x88\x13\x87\xfe\x88\x0a\x88\x1b\x88\x21\x88\x39\x88\x3c\x7f\x36\x7f\x42\x7f\x44\x7f\x45\x82\x10\x7a\xfa\x7a\xfd\x7b\x08\x7b\x03\x7b\x04\x7b\x15\x7b\x0a\x7b\x2b\x7b\x0f\x7b\x47\x7b\x38\x7b\x2a\x7b\x19\x7b\x2e\x7b\x31\x7b\x20\x7b\x25\x7b\x24\x7b\x33\x7b\x3e\x7b\x1e\x7b\x58\x7b\x5a\x7b\x45\x7b\x75\x7b\x4c\x7b\x5d\x7b\x60\x7b\x6e", /* 6a80 */ "\x00\x00\x7b\x7b\x7b\x62\x7b\x72\x7b\x71\x7b\x90\x7b\xa6\x7b\xa7\x7b\xb8\x7b\xac\x7b\x9d\x7b\xa8\x7b\x85\x7b\xaa\x7b\x9c\x7b\xa2\x7b\xab\x7b\xb4\x7b\xd1\x7b\xc1\x7b\xcc\x7b\xdd\x7b\xda\x7b\xe5\x7b\xe6\x7b\xea\x7c\x0c\x7b\xfe\x7b\xfc\x7c\x0f\x7c\x16\x7c\x0b\x7c\x1f\x7c\x2a\x7c\x26\x7c\x38\x7c\x41\x7c\x40\x81\xfe\x82\x01\x82\x02\x82\x04\x81\xec\x88\x44\x82\x21\x82\x22\x82\x23\x82\x2d\x82\x2f\x82\x28\x82\x2b\x82\x38\x82\x3b\x82\x33\x82\x34\x82\x3e\x82\x44\x82\x49\x82\x4b\x82\x4f\x82\x5a\x82\x5f\x82\x68\x88\x7e\x88\x85\x88\x88\x88\xd8\x88\xdf\x89\x5e\x7f\x9d\x7f\x9f\x7f\xa7\x7f\xaf\x7f\xb0\x7f\xb2\x7c\x7c\x65\x49\x7c\x91\x7c\x9d\x7c\x9c\x7c\x9e\x7c\xa2\x7c\xb2\x7c\xbc\x7c\xbd\x7c\xc1\x7c\xc7\x7c\xcc\x7c\xcd\x7c\xc8\x7c\xc5\x7c\xd7\x7c\xe8\x82\x6e\x66\xa8\x7f\xbf\x7f\xce\x7f\xd5\x7f\xe5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xee\x7f\xf3\x7c\xf8\x7d\x77\x7d\xa6\x7d\xae\x7e\x47\x7e\x9b\x9e\xb8\x9e\xb4\x8d\x73\x8d\x84\x8d\x94\x8d\x91\x8d\xb1\x8d\x67\x8d\x6d\x8c\x47\x8c\x49\x91\x4a\x91\x50\x91\x4e\x91\x4f\x91\x64\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x62\x91\x61\x91\x70\x91\x69\x91\x6f\x91\x7d\x91\x7e\x91\x72\x91\x74\x91\x79\x91\x8c\x91\x85\x91\x90\x91\x8d\x91\x91\x91\xa2\x91\xa3\x91\xaa\x91\xad\x91\xae\x91\xaf\x91\xb5\x91\xb4\x91\xba\x8c\x55\x9e\x7e\x8d\xb8\x8d\xeb\x8e\x05\x8e\x59\x8e\x69\x8d\xb5\x8d\xbf\x8d\xbc\x8d\xba\x8d\xc4\x8d\xd6\x8d\xd7\x8d\xda\x8d\xde\x8d\xce\x8d\xcf\x8d\xdb\x8d\xc6\x8d\xec\x8d\xf7\x8d\xf8\x8d\xe3\x8d\xf9\x8d\xfb\x8d\xe4\x8e\x09\x8d\xfd\x8e\x14\x8e\x1d\x8e\x1f\x8e\x2c\x8e\x2e\x8e\x23\x8e\x2f\x8e\x3a\x8e\x40\x8e\x39", /* 6b80 */ "\x00\x00\x8e\x35\x8e\x3d\x8e\x31\x8e\x49\x8e\x41\x8e\x42\x8e\x51\x8e\x52\x8e\x4a\x8e\x70\x8e\x76\x8e\x7c\x8e\x6f\x8e\x74\x8e\x85\x8e\x8f\x8e\x94\x8e\x90\x8e\x9c\x8e\x9e\x8c\x78\x8c\x82\x8c\x8a\x8c\x85\x8c\x98\x8c\x94\x65\x9b\x89\xd6\x89\xde\x89\xda\x89\xdc\x89\xe5\x89\xeb\x89\xef\x8a\x3e\x8b\x26\x97\x53\x96\xe9\x96\xf3\x96\xef\x97\x06\x97\x01\x97\x08\x97\x0f\x97\x0e\x97\x2a\x97\x2d\x97\x30\x97\x3e\x9f\x80\x9f\x83\x9f\x85\x9f\x86\x9f\x87\x9f\x88\x9f\x89\x9f\x8a\x9f\x8c\x9e\xfe\x9f\x0b\x9f\x0d\x96\xb9\x96\xbc\x96\xbd\x96\xce\x96\xd2\x77\xbf\x96\xe0\x92\x8e\x92\xae\x92\xc8\x93\x3e\x93\x6a\x93\xca\x93\x8f\x94\x3e\x94\x6b\x9c\x7f\x9c\x82\x9c\x85\x9c\x86\x9c\x87\x9c\x88\x7a\x23\x9c\x8b\x9c\x8e\x9c\x90\x9c\x91\x9c\x92\x9c\x94\x9c\x95\x9c\x9a\x9c\x9b\x9c\x9e\x9c\x9f\x9c\xa0\x9c\xa1\x9c\xa2\x9c\xa3\x9c\xa5\x9c\xa6\x9c\xa7\x9c\xa8\x9c\xa9\x9c\xab\x9c\xad\x9c\xae\x9c\xb0\x9c\xb1\x9c\xb2\x9c\xb3\x9c\xb4\x9c\xb5\x9c\xb6\x9c\xb7\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xca\x9c\xcb\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xcc\x9c\xcd\x9c\xce\x9c\xcf\x9c\xd0\x9c\xd3\x9c\xd4\x9c\xd5\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xdc\x9c\xdd\x9c\xdf\x9c\xe2\x97\x7c\x97\x85\x97\x91\x97\x92\x97\x94\x97\xaf\x97\xab\x97\xa3\x97\xb2\x97\xb4\x9a\xb1\x9a\xb0\x9a\xb7\x9e\x58\x9a\xb6\x9a\xba\x9a\xbc\x9a\xc1\x9a\xc0\x9a\xc5\x9a\xc2\x9a\xcb\x9a\xcc\x9a\xd1\x9b\x45\x9b\x43\x9b\x47\x9b\x49\x9b\x48\x9b\x4d\x9b\x51\x98\xe8\x99\x0d\x99\x2e\x99\x55\x99\x54\x9a\xdf\x9a\xe1\x9a\xe6\x9a\xef\x9a\xeb\x9a\xfb\x9a\xed\x9a\xf9\x9b\x08\x9b\x0f\x9b\x13\x9b\x1f", /* 6c80 */ "\x00\x00\x9b\x23\x9e\xbd\x9e\xbe\x7e\x3b\x9e\x82\x9e\x87\x9e\x88\x9e\x8b\x9e\x92\x93\xd6\x9e\x9d\x9e\x9f\x9e\xdb\x9e\xdc\x9e\xdd\x9e\xe0\x9e\xdf\x9e\xe2\x9e\xe9\x9e\xe7\x9e\xe5\x9e\xea\x9e\xef\x9f\x22\x9f\x2c\x9f\x2f\x9f\x39\x9f\x37\x9f\x3d\x9f\x3e\x9f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ NULL, /* 6d80 */ NULL, /* 6e00 */ NULL, /* 6e80 */ NULL, /* 6f00 */ NULL, /* 6f80 */ NULL, /* 7000 */ NULL, /* 7080 */ NULL, /* 7100 */ NULL, /* 7180 */ NULL, /* 7200 */ NULL, /* 7280 */ NULL, /* 7300 */ NULL, /* 7380 */ NULL, /* 7400 */ NULL, /* 7480 */ NULL, /* 7500 */ NULL, /* 7580 */ NULL, /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 7680 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* 7780 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* 7880 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* 7980 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* 7a80 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* 7b80 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* 7c80 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* 7d80 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* 7e80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* 7f80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* 8000 */ NULL, /* 8080 */ NULL, /* 8100 */ NULL, /* 8180 */ NULL, /* 8200 */ NULL, /* 8280 */ NULL, /* 8300 */ NULL, /* 8380 */ NULL, /* 8400 */ NULL, /* 8480 */ NULL, /* 8500 */ NULL, /* 8580 */ NULL, /* 8600 */ NULL, /* 8680 */ NULL, /* 8700 */ NULL, /* 8780 */ NULL, /* 8800 */ NULL, /* 8880 */ NULL, /* 8900 */ NULL, /* 8980 */ NULL, /* 8a00 */ NULL, /* 8a80 */ NULL, /* 8b00 */ NULL, /* 8b80 */ NULL, /* 8c00 */ NULL, /* 8c80 */ NULL, /* 8d00 */ NULL, /* 8d80 */ NULL, /* 8e00 */ NULL, /* 8e80 */ NULL, /* 8f00 */ NULL, /* 8f80 */ NULL, /* 9000 */ NULL, /* 9080 */ NULL, /* 9100 */ NULL, /* 9180 */ NULL, /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ NULL, /* e080 */ NULL, /* e100 */ NULL, /* e180 */ NULL, /* e200 */ NULL, /* e280 */ NULL, /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp937", "0x03a70343" /* 935, 835 */, "big5-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-937_P110-1999 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\xa1\x44\xed\x44\x4b\x00\x00\x00\x00\x44\xee\x00\x00\x43\x79\x46\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x53\x00\x00\x45\x51\x45\x52\x45\x54\x00\x00\x47\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x44\x4a\x44\x4a\x00\x00\x00\x00\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x43\x77\x43\x78\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x43\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x73\x00\x00\x44\x50\x44\xef\x00\x00\x42\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x42\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x46\xbb\x00\x00\x00\x00\x00\x00\x46\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x46\xd4\x46\xd5\x46\xd7\x46\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xef\x46\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6e\x00\x00\x43\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x43\x70\x00\x00\x43\x4e\x43\x71\x00\x00\x00\x00\x00\x00\x43\x4f\x43\x64\x00\x00\x00\x00\x43\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xda\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc5\x00\x00\x00\x00\x43\x61\x44\x4d\x46\xcc\x46\xcb\x00\x00\x00\x00\x42\x4f\x00\x00\x44\x7c\x00\x00\x43\x6c\x43\x6d\x46\xc8\x46\xc9\x46\xd0\x43\x63\x00\x00\x46\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa1\x43\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x46\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x43\x5d\x43\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x43\x68\x43\x69\x00\x00\x00\x00\x43\x66\x43\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xd2\x00\x00\x00\x00\x00\x00\x46\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8d\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x00\x00\x47\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x41\x46\x42\x46\x43\x46\x44\x46\x45\x46\x46\x46\x47\x46\x48\x46\x49\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x46\x52\x46\x53\x46\x54\x46\x55\x46\x56\x46\x57\x46\x58\x46\x59\x46\x5a\x00\x00\x00\x00", /* 2480 */ NULL, /* 2500 */ "\x46\x75\x43\xb7\x46\x76\x43\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x78\x00\x00\x00\x00\x43\xb9\x46\x79\x00\x00\x00\x00\x43\xe1\x46\x7a\x00\x00\x00\x00\x43\xe3\x46\x7b\x00\x00\x00\x00\x43\xe2\x46\x73\x43\xee\x00\x00\x00\x00\x43\xe9\x00\x00\x00\x00\x43\xe4\x46\x72\x43\xf0\x00\x00\x00\x00\x43\xeb\x00\x00\x00\x00\x43\xe6\x46\x71\x00\x00\x00\x00\x43\xea\x43\xef\x00\x00\x00\x00\x43\xe5\x46\x70\x00\x00\x00\x00\x43\xec\x43\xf1\x00\x00\x00\x00\x43\xe7\x46\x6f\x00\x00\x00\x00\x43\xed\x00\x00\x00\x00\x43\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x46\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x82\x00\x00\x00\x00\x46\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x83\x00\x00\x00\x00\x46\x7c\x46\x7d\x46\x7f\x46\x7e\x46\x89\x46\x8a\x46\x8b\x46\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x46\x60\x46\x61\x46\x62\x46\x63\x46\x64\x46\x65\x46\x66\x46\x67\x46\x6e\x46\x6d\x46\x6c\x46\x6b\x46\x6a\x46\x69\x46\x68\x00\x00\x00\x00\x00\x00\x00\x00\x46\x74\x46\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x85\x46\x86\x46\x88\x46\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x76\x00\x00\x00\x00\x43\x75\x00\x00\x43\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x46\xb9\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe9\x46\xea\x00\x00\x00\x00\x45\x41\x45\x42\x45\x43\x45\x44\x45\x45\x45\x46\x45\x47\x45\x48\x45\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x56\x45\x57\x45\x58\x45\x59\x45\x5a\x45\x5b\x45\x5c\x45\x5d\x45\x5e\x45\x5f\x45\x60\x45\x61\x45\x62\x45\x63\x45\x64\x45\x65\x45\x66\x45\x67\x45\x68\x45\x69\x45\x6a\x45\x6b\x45\x6c\x45\x6d\x45\x6e\x45\x6f\x45\x70\x45\x71\x45\x72\x45\x73\x45\x74\x45\x75\x45\x76\x45\x77\x45\x78\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3300 */ NULL, /* 3380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe2\x46\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xdd\x46\xde\x46\xdf\x00\x00\x00\x00\x46\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe0\x00\x00\x00\x00\x46\xcf\x46\xce\x00\x00\x00\x00\x46\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x4c\x41\x4c\x43\x00\x00\x4c\x44\x00\x00\x00\x00\x00\x00\x69\x46\x4c\x57\x4c\x55\x4c\x58\x4c\x56\x69\x47\x4c\x83\x69\x50\x69\x4e\x4c\x82\x4c\x81\x00\x00\x00\x00\x4c\xe1\x4c\xe0\x4c\xdf\x00\x00\x4c\xe2\x4c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa1\x4d\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xe3\x00\x00\x48\x42\x00\x00\x00\x00\x4c\x59\x00\x00\x4c\x84\x69\x51\x00\x00\x4c\x85\x69\x64\x4e\x8c\x6b\x52\x00\x00\x00\x00\x48\x43\x00\x00\x4c\x5a\x4c\x86\x00\x00\x4c\xe3\x69\x65\x00\x00\x00\x00\x48\x44\x00\x00\x00\x00\x69\x41\x4c\x45\x00\x00\x4c\x5c\x00\x00\x69\x48\x4c\x5d\x00\x00\x00\x00\x4c\x87\x00\x00\x4c\xe4\x4c\xe6\x4c\xe5\x00\x00\x00\x00\x4d\xa3\x4d\xa4\x00\x00\x00\x00\x4f\xe4\x00\x00\x53\xfd\x4c\x42\x00\x00\x00\x00\x69\x42\x4c\x46\x4c\x5f\x4c\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x92\x72\x6f", /* 4e80 */ "\x00\x00\x00\x00\x5b\xa9\x79\x77\x79\x78\x48\x46\x4c\x47\x00\x00\x4c\x89\x00\x00\x00\x00\x4f\xe6\x4c\x48\x69\x49\x4c\x60\x00\x00\x00\x00\x4c\x8a\x4c\x8c\x69\x52\x4c\x8d\x4c\x8b\x00\x00\x00\x00\x00\x00\x4d\xa6\x00\x00\x4f\xe7\x00\x00\x00\x00\x4f\xe8\x51\xe6\x48\x48\x4c\x61\x4c\x8e\x00\x00\x4d\xa7\x4d\xa9\x4d\xa8\x00\x00\x4e\x8d\x00\x00\x00\x00\x4f\xe9\x4f\xea\x51\xe7\x51\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x54\x41\x00\x00\x00\x00\x79\x79\x00\x00\x00\x00\x8f\x66\x4c\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x90\x4c\x8f\x69\x53\x4c\x91\x4c\x97\x00\x00\x4c\x92\x4c\x93\x69\x55\x69\x54\x4c\x95\x4c\x96\x00\x00\x4c\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe9\x4c\xea\x4c\xeb\x4c\xec\x4c\xe8\x4c\xef\x69\x6b\x00\x00\x69\x67\x69\x6a\x4c\xf0\x4d\x43\x00\x00\x69\x69\x00\x00\x4c\xed\x4c\xee\x4c\xe7\x00\x00\x00\x00\x69\x66\x69\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb6\x69\x90\x4d\xb3\x4d\xb7\x69\x9a\x69\x8e\x4d\xb4\x69\x92\x00\x00\x00\x00\x00\x00\x4d\xb5\x00\x00\x4d\xb8\x00\x00\x4d\xaa", /* 4f00 */ "\x69\x91\x4d\xb9\x69\x95\x00\x00\x69\x99\x69\x96\x00\x00\x00\x00\x69\x93\x4d\xab\x4d\xad\x4d\xba\x00\x00\x4d\xaf\x69\x8b\x4d\xb2\x4d\xb0\x4d\xb1\x69\x9b\x69\x98\x69\x8f\x4d\xae\x00\x00\x00\x00\x69\x8c\x4d\xac\x00\x00\x00\x00\x00\x00\x69\x94\x00\x00\x00\x00\x00\x00\x00\x00\x69\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x8d\x6a\x48\x00\x00\x4e\xa3\x4e\x96\x00\x00\x00\x00\x6a\x49\x4e\x93\x00\x00\x4e\xa5\x00\x00\x4e\x9b\x00\x00\x4e\x9a\x69\xfa\x4e\x9e\x4e\x99\x6a\x42\x6a\x4a\x00\x00\x6a\x46\x00\x00\x4e\x9c\x00\x00\x00\x00\x4e\x9f\x4e\x90\x4e\xa8\x69\xfc\x00\x00\x00\x00\x6b\x5e\x4e\x8e\x4e\xa4\x4e\x8f\x4e\x97\x4e\x98\x6a\x44\x69\xfd\x4e\x9d\x4e\x95\x69\xf9\x4e\x91\x6a\x47\x4e\xa6\x4e\xa9\x4e\x94\x4e\xa1\x4e\xa7\x4e\x92\x6a\x45\x4e\xa2\x6a\x4b\x69\xfb\x4e\xa0\x6a\x41\x00\x00\x00\x00\x6a\x43\x00\x00\x4f\xf8\x6b\x60\x6b\x6c\x4f\xf0\x00\x00\x6b\x6d\x4f\xeb\x4f\xf5\x00\x00\x00\x00\x4f\xee\x6b\x5a\x4f\xf6\x6b\x59\x6b\x5d\x6b\x64\x6b\x62\x50\x41\x4f\xf9\x6b\x54\x6b\x56\x4f\xfb\x4f\xef", /* 4f80 */ "\x6b\x57\x6b\x63\x6b\x6a\x4f\xf4\x6b\x5c\x6b\x55\x4f\xf3\x6b\x58\x4f\xf7\x6b\x5b\x00\x00\x4f\xf2\x00\x00\x4f\xed\x00\x00\x4f\xfc\x6b\x65\x4f\xfd\x6b\x69\x00\x00\x6b\x67\x6b\x6b\x4f\xfa\x6b\x5f\x6b\x53\x00\x00\x6b\x61\x4f\xf1\x6b\x66\x4f\xec\x6b\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf7\x51\xeb\x00\x00\x00\x00\x6d\x43\x6d\x4b\x00\x00\x51\xea\x51\xf2\x52\x41\x00\x00\x6d\x51\x6d\x4f\x6d\x4a\x00\x00\x00\x00\x00\x00\x51\xec\x6d\x50\x6d\x46\x51\xfa\x51\xf1\x51\xf9\x6d\x41\x00\x00\x6d\x4d\x00\x00\x6d\x44\x51\xf5\x6d\x45\x00\x00\x6c\xfd\x51\xfc\x51\xef\x51\xf8\x51\xee\x00\x00\x6d\x42\x6d\x47\x00\x00\x6d\x4e\x51\xf6\x51\xf3\x6d\x49\x51\xfb\x6d\x4c\x6d\x48\x51\xf0\x51\xfd\x51\xf4\x51\xed\x51\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x52\x00\x00\x54\x5b\x54\x45\x00\x00\x54\x55\x00\x00\x54\x5a\x6f\x93\x6f\x92\x6f\x97\x6f\x98\x54\x48\x00\x00\x54\x51\x00\x00\x00\x00\x00\x00\x54\x5e\x00\x00", /* 5000 */ "\x54\x52\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x8c\x54\x4b\x6f\x8d\x00\x00\x54\x60\x00\x00\x54\x57\x54\x42\x54\x43\x6f\xa0\x56\xa3\x00\x00\x54\x50\x54\x4f\x6f\x8e\x54\x53\x72\x7f\x54\x4a\x6f\x99\x54\x59\x54\x58\x54\x4e\x6f\x91\x6f\x9a\x00\x00\x6f\x8b\x54\x4d\x6f\x9b\x54\x56\x6f\x8f\x54\x44\x00\x00\x54\x47\x54\x46\x6f\x9c\x54\x54\x54\x49\x54\x5d\x54\x5f\x6f\x96\x54\x5c\x00\x00\x6f\x9e\x6f\x90\x6f\x9f\x00\x00\x6f\x94\x00\x00\x6f\x9d\x00\x00\x6f\x95\x00\x00\x00\x00\x00\x00\x00\x00\x54\x4c\x00\x00\x00\x00\x00\x00\x72\x88\x72\x7b\x00\x00\x56\x97\x00\x00\x72\x81\x72\x87\x56\x96\x72\x79\x56\x9a\x72\x7d\x72\x76\x56\x98\x72\x7a\x56\x9d\x56\xa2\x00\x00\x72\x8c\x00\x00\x72\x75\x00\x00\x56\x9e\x00\x00\x72\x8b\x00\x00\x00\x00\x56\x99\x72\x7c\x56\x95\x72\x77\x72\x73\x72\x82\x72\x74\x72\x72\x72\x7e\x72\x85\x72\x86\x56\x9b\x00\x00\x00\x00\x75\xc0\x72\x83\x72\x71\x72\x84\x00\x00\x56\xa5\x72\x89\x56\xa4\x72\x70\x00\x00\x72\x78\x72\x8a\x56\xa0\x56\x9f\x56\x9c\x56\xa1\x00\x00\x00\x00\x56\x93\x00\x00\x00\x00\x56\x94\x00\x00\x00\x00", /* 5080 */ "\x59\x4e\x00\x00\x75\xc3\x75\xbc\x00\x00\x59\x4b\x00\x00\x75\xc4\x00\x00\x00\x00\x00\x00\x75\xba\x75\xbd\x59\x4a\x75\xbe\x00\x00\x00\x00\x59\x4d\x75\xc2\x00\x00\x75\xb8\x75\xb7\x59\x4f\x00\x00\x59\x50\x59\x4c\x59\x51\x75\xb6\x75\xc1\x75\xbf\x75\xb9\x00\x00\x00\x00\x00\x00\x59\x49\x75\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb0\x5b\xaa\x79\x7d\x5b\xb3\x79\x84\x79\x87\x5b\xac\x5b\xad\x79\x81\x5b\xab\x79\x8a\x5b\xb1\x79\x8b\x00\x00\x79\x86\x5b\xb2\x00\x00\x79\x7a\x5b\xaf\x79\x7b\x00\x00\x79\x85\x79\x83\x00\x00\x79\x7e\x5b\xae\x79\x7c\x5b\xb4\x79\x82\x79\x89\x79\x7f\x79\x88\x00\x00\x00\x00\x5d\xfb\x5d\xf8\x00\x00\x5d\xf9\x00\x00\x7d\x43\x7c\xf8\x5d\xf7\x5d\xf4\x7c\xf9\x00\x00\x00\x00\x5d\xf6\x7c\xfc\x00\x00\x7d\x41\x00\x00\x00\x00\x7d\x48\x00\x00\x00\x00\x7d\x47\x7d\x42\x5d\xf3\x7c\xf7\x5d\xf1\x7c\xfa\x5d\xfc\x7c\xfd\x00\x00\x7d\x44\x5d\xf5\x5d\xf2\x7d\x46\x7d\x45\x5d\xfa\x00\x00\x7c\xfb\x00\x00\x60\x42\x80\x76\x00\x00\x80\x73\x60\x43\x00\x00\x60\x41\x00\x00\x80\x7a\x80\x77\x80\x70", /* 5100 */ "\x5f\xfd\x00\x00\x60\x44\x80\x71\x5f\xfc\x60\x47\x80\x74\x80\x75\x60\x45\x60\x46\x80\x7b\x80\x78\x80\x79\x00\x00\x00\x00\x00\x00\x62\x53\x83\xc3\x62\x50\x83\xc0\x62\x52\x62\x54\x00\x00\x83\xc1\x62\x51\x00\x00\x83\xc2\x00\x00\x83\xbf\x00\x00\x00\x00\x63\xc0\x86\xc8\x63\xc1\x86\xc6\x00\x00\x86\xc7\x86\xc5\x86\xc4\x00\x00\x00\x00\x86\xc9\x63\xbf\x00\x00\x00\x00\x89\x65\x89\x66\x00\x00\x80\x72\x89\x64\x63\xc2\x66\x4b\x8b\x5a\x8b\x5b\x00\x00\x67\x83\x67\x84\x8e\x70\x8e\x6f\x67\xd7\x67\xd6\x90\x41\x00\x00\x4c\x4a\x4c\x62\x4c\x99\x00\x00\x4c\x98\x4c\xf2\x4c\xf1\x4d\xbd\x4d\xbc\x4d\xbe\x4d\xbb\x00\x00\x4e\xab\x4e\xaa\x4e\xac\x00\x00\x00\x00\x00\x00\x00\x00\x50\x43\x00\x00\x50\x42\x50\x44\x00\x00\x52\x42\x00\x00\x46\xf1\x6f\xa1\x46\xf2\x56\xa6\x46\xf4\x46\xf3\x75\xc5\x00\x00\x46\xf5\x5d\xfd\x46\xf6\x00\x00\x4c\x4b\x00\x00\x4c\x9a\x4d\xbf\x50\x45\x00\x00\x4c\x4c\x4c\x9d\x4c\x9b\x4c\x9c\x00\x00\x00\x00\x4d\xc0\x00\x00\x00\x00\x00\x00\x4e\xad\x50\x47\x50\x46\x50\x48\x00\x00\x00\x00\x00\x00\x54\x61\x00\x00\x00\x00\x00\x00", /* 5180 */ "\x62\x55\x00\x00\x48\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4f\x00\x00\x4c\xf3\x4c\xf4\x00\x00\x00\x00\x4d\xc1\x00\x00\x6a\x4c\x00\x00\x52\x44\x52\x43\x6f\xa3\x6f\xa2\x56\xa7\x48\x4e\x4c\x9e\x69\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x6e\x00\x00\x52\x45\x00\x00\x54\x64\x00\x00\x54\x62\x54\x63\x00\x00\x00\x00\x00\x00\x00\x00\x62\x56\x48\x4f\x4c\xf5\x00\x00\x00\x00\x00\x00\x4d\xc2\x69\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xae\x4e\xaf\x00\x00\x6a\x4d\x00\x00\x00\x00\x6b\x6f\x50\x49\x6b\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xa5\x6f\xa6\x54\x67\x00\x00\x6f\xa7\x00\x00\x6f\xa4\x54\x68\x54\x66\x54\x65\x6f\xa8\x00\x00\x72\x8d\x00\x00\x00\x00\x00\x00\x75\xc6\x00\x00\x00\x00\x79\x8c\x7d\x49\x00\x00\x00\x00\x00\x00\x60\x48\x62\x57\x83\xc4\x00\x00\x4c\x4d\x4c\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xa8\x59\x53\x00\x00\x5e\x41\x00\x00\x69\x43\x4c\x9f\x00\x00\x4c\xf8\x4c\xf6\x4c\xf7\x00\x00\x00\x00\x50\x4a\x00\x00\x00\x00", /* 5200 */ "\x4c\x4e\x4c\x4f\x00\x00\x4c\x63\x00\x00\x00\x00\x4c\xa0\x4c\xa1\x4c\xa2\x69\x9e\x4c\xf9\x00\x00\x69\x6c\x00\x00\x4d\xc6\x00\x00\x69\x9f\x4d\xc4\x4d\xc5\x69\x9d\x00\x00\x00\x00\x4d\xc7\x4d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x4e\x51\xce\x6a\x4f\x00\x00\x00\x00\x6a\x50\x00\x00\x00\x00\x4e\xb1\x4e\xb0\x00\x00\x00\x00\x4e\xb4\x4e\xb2\x4e\xb3\x00\x00\x00\x00\x00\x00\x50\x50\x00\x00\x50\x4f\x6b\x75\x6b\x72\x6b\x73\x00\x00\x6b\x71\x50\x51\x50\x4d\x50\x4c\x00\x00\x50\x4e\x50\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x52\x00\x00\x52\x47\x6d\x53\x00\x00\x6b\x74\x52\x4c\x00\x00\x6d\x54\x52\x48\x52\x4b\x52\x4a\x52\x49\x52\x46\x00\x00\x00\x00\x00\x00\x6f\xab\x00\x00\x54\x6b\x6f\xae\x54\x69\x00\x00\x00\x00\x00\x00\x6f\xaa\x54\x6c\x54\x6a\x54\x6d\x6f\xac\x6f\xad\x00\x00\x6f\xa9\x6f\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x57\x56\xa9\x72\x8e\x72\x90\x72\x8f\x72\x91\x56\xaa\x00\x00\x00\x00\x59\x54\x00\x00\x59\x55\x59\x56\x00\x00\x5b\xb6\x79\x8e\x00\x00\x79\x8d\x79\x8f\x79\x90\x5b\xb7\x00\x00\x5b\xb5", /* 5280 */ "\x7d\x4a\x7d\x4b\x5e\x43\x5e\x42\x7e\xe2\x00\x00\x00\x00\x60\x49\x60\x4a\x60\x4b\x60\x4d\x80\x7c\x80\x7d\x60\x4c\x00\x00\x00\x00\x00\x00\x62\x58\x00\x00\x62\x59\x00\x00\x00\x00\x8b\x5c\x8e\x72\x8e\x71\x90\x42\x00\x00\x4c\x50\x00\x00\x00\x00\x00\x00\x4c\xfb\x4c\xfa\x00\x00\x00\x00\x4d\xc8\x00\x00\x00\x00\x69\xa0\x00\x00\x00\x00\x4e\xb6\x4e\xb7\x4e\xb5\x4e\xb8\x6a\x51\x6a\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x54\x6b\x76\x00\x00\x50\x53\x00\x00\x6d\x55\x52\x50\x6d\x56\x52\x4f\x00\x00\x00\x00\x00\x00\x52\x4d\x00\x00\x52\x4e\x00\x00\x00\x00\x00\x00\x6f\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x56\xab\x72\x93\x00\x00\x56\xae\x72\x92\x57\xaa\x56\xad\x56\xac\x00\x00\x59\x5a\x00\x00\x59\x59\x59\x58\x5b\xb8\x00\x00\x00\x00\x5b\xbb\x5b\xbc\x5b\xba\x00\x00\x5b\xb9\x00\x00\x00\x00\x7d\x4c\x00\x00\x7d\x4d\x00\x00\x00\x00\x00\x00\x80\x7f\x60\x4e\x80\x7e\x00\x00\x62\x5a\x86\xca\x63\xc3\x00\x00\x8b\x5d\x66\xdf\x48\x54\x4c\x64\x4c\xa3\x69\x57\x00\x00\x4c\xa4\x4c\xa5", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xfc\x4c\xfd\x00\x00\x4d\xc9\x6a\x53\x6b\x77\x6b\x78\x00\x00\x52\x51\x6f\xb1\x56\xb0\x56\xaf\x75\xc8\x75\xc7\x00\x00\x00\x00\x4c\x51\x4c\xa6\x4d\x41\x00\x00\x56\xb1\x69\x44\x00\x00\x69\x6d\x4d\x42\x00\x00\x69\xa2\x4d\xcb\x4d\xca\x69\xa1\x4e\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6e\x00\x00\x00\x00\x72\x94\x00\x00\x5b\xbd\x7d\x4e\x5e\x44\x00\x00\x00\x00\x83\xc5\x00\x00\x00\x00\x8c\xeb\x48\x57\x4c\xa7\x00\x00\x00\x00\x6b\x79\x6d\x57\x56\xb4\x56\xb2\x56\xb3\x4c\x52\x00\x00\x4c\x65\x45\x4b\x4c\xaa\x00\x00\x4c\xa9\x4c\xa8\x4d\x45\x4d\x44\x00\x00\x69\x6e\x69\xa3\x00\x00\x00\x00\x00\x00\x50\x58\x50\x55\x50\x57\x50\x56\x00\x00\x00\x00\x52\x52\x00\x00\x00\x00\x59\x5b\x00\x00\x4c\x53\x00\x00\x4c\xab\x00\x00\x4d\x47\x4d\x46\x00\x00\x6a\x54\x00\x00\x00\x00\x50\x59\x00\x00\x00\x00\x48\x5a\x00\x00\x00\x00\x69\x58\x00\x00\x4d\x49\x4d\x48\x4d\xcc\x4d\xcd\x6a\x55\x4e\xba\x00\x00\x4e\xbb\x00\x00\x50\x5a\x50\x5b\x50\x5c\x00\x00\x52\x53\x6d\x58\x00\x00\x00\x00\x54\x6f", /* 5380 */ "\x00\x00\x00\x00\x69\x45\x00\x00\x4c\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xa4\x00\x00\x00\x00\x00\x00\x6a\x56\x6a\x57\x00\x00\x00\x00\x6b\x7a\x00\x00\x6b\x7b\x00\x00\x6d\x5a\x6d\x59\x6d\x5c\x6d\x5b\x52\x54\x00\x00\x72\x95\x54\x71\x6f\xb2\x54\x70\x00\x00\x00\x00\x00\x00\x00\x00\x75\xc9\x59\x5c\x00\x00\x75\xca\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x4f\x5e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4f\x00\x00\x8b\x5e\x00\x00\x48\x5c\x00\x00\x00\x00\x69\x59\x00\x00\x4d\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x54\x4c\x66\x4c\xae\x4c\xad\x00\x00\x4c\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x50\x5d\x50\x5f\x00\x00\x00\x00\x00\x00\x52\x55\x00\x00\x00\x00\x00\x00\x54\x72\x00\x00\x83\xc6\x65\x5a\x4c\x67\x4d\x4c\x4d\x5b\x4d\x56\x00\x00\x4d\x51\x4d\x50\x4d\x57\x4d\x55\x4d\x4e\x4d\x5c\x4d\x4f\x4d\x4b\x4d\x5a\x4d\x59\x4d\x58\x4d\x4d\x00\x00\x4d\x54\x00\x00\x00\x00\x4d\x53\x00\x00\x00\x00\x4d\x5d\x4d\x52\x00\x00\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x4d\xd3\x00\x00\x4d\xd9\x4d\xd5\x00\x00\x4d\xdb\x69\xa5\x4d\xd8\x4d\xce\x4d\xd1\x4d\xd4\x4d\xd0\x4d\xd7\x4d\xda\x4d\xcf\x4d\xd2\x4d\xd6\x4d\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x60\x6a\x5d\x00\x00\x4e\xc8\x6a\x5e\x4e\xbc\x4e\xbe\x4e\xd6\x4e\xd1\x00\x00\x00\x00\x00\x00\x6a\x65\x6a\x5f\x4e\xc0\x4e\xc2\x6a\x64\x4e\xc9\x6a\x5a\x4e\xd5\x4e\xd7\x4e\xbd\x4e\xce\x00\x00\x6a\x58\x4e\xd4\x00\x00\x4e\xc5\x00\x00\x4e\xcf\x4e\xd0\x6a\x59\x4e\xcd\x4e\xcb\x00\x00\x4e\xcc\x4e\xd2\x6a\x61\x4e\xbf\x00\x00\x4e\xd3\x6a\x63\x4e\xc7\x4e\xc4\x00\x00\x6a\x5c\x4e\xc3\x6a\x66\x4e\xc6\x00\x00\x4e\xca\x00\x00\x00\x00\x00\x00\x4e\xc1\x6a\x62\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x8d\x6b\x8c\x50\x71\x6b\x8f\x6b\x91\x6b\x86\x6b\x89\x6b\x90\x50\x72\x00\x00\x00\x00\x6b\x83\x6b\x87\x00\x00\x00\x00\x6b\x8b\x6d\x6b\x50\x6d\x6d\x6f\x50\x60\x6b\x88\x50\x61\x50\x6e\x50\x67\x50\x63\x00\x00\x6b\x84\x50\x66\x50\x6b\x50\x74\x6b\x85\x6b\x7d", /* 5480 */ "\x50\x65\x6b\x7e\x6b\x81\x00\x00\x50\x68\x00\x00\x50\x6a\x6b\x7c\x6b\x82\x00\x00\x00\x00\x50\x73\x50\x6f\x6b\x8a\x50\x75\x00\x00\x50\x6c\x6b\x7f\x50\x69\x00\x00\x00\x00\x50\x64\x50\x62\x00\x00\x6b\x8e\x00\x00\x50\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x6a\x6d\x5e\x6d\x6d\x00\x00\x00\x00\x6d\x60\x52\x5c\x52\x6a\x52\x58\x52\x69\x52\x61\x52\x66\x52\x56\x6d\x5f\x6d\x65\x52\x65\x6d\x71\x52\x67\x00\x00\x52\x5d\x00\x00\x00\x00\x6d\x67\x6d\x64\x52\x5b\x00\x00\x6d\x5d\x52\x68\x6d\x6c\x52\x60\x6d\x6e\x52\x6b\x52\x57\x52\x62\x52\x5f\x6d\x62\x52\x63\x6d\x68\x6d\x69\x52\x5e\x52\x64\x52\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x52\x59\x6d\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x70\x00\x00\x6f\xc6\x54\x7f\x6f\xb4\x00\x00\x6f\xb9\x54\x78\x54\x84\x6f\xb7\x54\x73\x54\x7d\x54\x83\x6f\xbe\x00\x00\x54\x7e\x54\x82\x00\x00\x00\x00\x6f\xc1\x54\x79\x6f\xb8\x00\x00\x00\x00\x00\x00\x6f\xc4\x6f\xc5\x00\x00\x54\x7b\x6f\xc3\x54\x77\x54\x87\x00\x00\x6f\xbb", /* 5500 */ "\x00\x00\x54\x75\x00\x00\x6f\xc8\x6f\xbc\x6f\xc0\x54\x7a\x54\x86\x6f\xbd\x54\x81\x6f\xc2\x6f\xc9\x72\xa4\x00\x00\x6f\xc7\x54\x88\x54\x74\x6f\xbf\x6f\xb6\x00\x00\x54\x7c\x00\x00\x00\x00\x6f\xb5\x00\x00\x00\x00\x6f\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xb3\x54\x85\x00\x00\x00\x00\x72\x9c\x00\x00\x56\xc8\x72\xaa\x56\xc6\x56\xc3\x72\xa1\x56\xbf\x72\xa5\x56\xca\x72\x9b\x72\xa0\x72\x9f\x54\x76\x56\xc5\x72\xa8\x00\x00\x72\xab\x72\x98\x00\x00\x59\x6e\x00\x00\x72\xac\x56\xcb\x00\x00\x56\xbd\x56\xba\x72\xa3\x56\xb7\x00\x00\x72\xa9\x00\x00\x56\xbe\x72\xad\x00\x00\x72\x99\x72\xa7\x56\xc1\x72\x9a\x72\x9d\x72\xa2\x00\x00\x00\x00\x56\xc2\x56\xc0\x56\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc7\x00\x00\x56\xbb\x57\x97\x00\x00\x56\xbc\x72\x9e\x56\xc9\x56\xc4\x72\xa6\x56\xb9\x00\x00\x00\x00\x00\x00\x56\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x96\x72\x97\x75\xcf\x00\x00\x00\x00\x00\x00\x59\x5d\x59\x60\x75\xda\x59\x74\x75\xdd", /* 5580 */ "\x59\x5e\x75\xd6\x59\x64\x59\x6a\x5a\xc2\x00\x00\x00\x00\x59\x68\x75\xd3\x59\x75\x59\x61\x59\x69\x75\xdb\x79\x9e\x75\xe0\x75\xd4\x00\x00\x75\xcb\x75\xd8\x75\xd2\x59\x67\x75\xde\x00\x00\x00\x00\x59\x63\x59\x77\x59\x70\x00\x00\x59\x65\x59\x62\x00\x00\x59\x6d\x00\x00\x75\xdf\x75\xd1\x75\xd7\x75\xd9\x75\xcd\x75\xdc\x59\x5f\x75\xcc\x00\x00\x59\x66\x59\x76\x59\x72\x75\xce\x59\x6c\x00\x00\x00\x00\x59\x73\x59\x6f\x59\x6b\x00\x00\x75\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x71\x00\x00\x00\x00\x00\x00\x79\x9c\x79\x98\x00\x00\x79\xa7\x79\x91\x79\x9a\x5b\xcb\x5b\xcc\x5b\xc4\x79\xa3\x5b\xce\x79\x96\x79\x95\x79\x93\x79\xa5\x5b\xc2\x79\x9f\x79\x94\x5b\xc5\x79\x9d\x5b\xc0\x79\x99\x79\xa0\x79\xa2\x00\x00\x00\x00\x79\xa6\x5b\xc9\x79\x92\x5b\xc3\x79\x97\x00\x00\x5b\xbe\x00\x00\x5b\xca\x79\xa1\x5b\xc6\x5b\xc7\x5b\xcd\x5b\xc1\x46\xf7\x5b\xbf\x79\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc8\x00\x00\x00\x00\x79\xa4\x00\x00\x00\x00\x00\x00\x5e\x55\x5e\x50\x00\x00\x7d\x5e\x7d\x5a\x00\x00\x7d\x54\x5e\x4a\x5e\x46\x7d\x5d", /* 5600 */ "\x5e\x47\x7d\x57\x7d\x59\x00\x00\x7d\x5c\x00\x00\x5e\x4c\x00\x00\x5e\x53\x5e\x4d\x00\x00\x00\x00\x7d\x52\x5e\x4e\x5e\x4f\x7d\x55\x5e\x54\x00\x00\x7d\x53\x7d\x58\x5e\x4b\x7d\x51\x5e\x51\x5e\x49\x00\x00\x00\x00\x00\x00\x5e\x48\x7d\x56\x7d\x5b\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x50\x00\x00\x60\x56\x80\x91\x00\x00\x80\x8e\x00\x00\x60\x50\x60\x5c\x60\x5d\x00\x00\x60\x53\x80\x8c\x60\x55\x80\x84\x60\x5b\x00\x00\x80\x90\x60\x52\x80\x92\x60\x51\x00\x00\x80\x8d\x80\x8f\x60\x54\x80\x8b\x80\x85\x80\x82\x00\x00\x00\x00\x75\xd0\x80\x88\x00\x00\x80\x81\x80\x87\x80\x86\x00\x00\x80\x83\x00\x00\x60\x58\x00\x00\x00\x00\x00\x00\x00\x00\x60\x57\x00\x00\x00\x00\x00\x00\x60\x59\x80\x89\x62\x5b\x80\x8a\x00\x00\x00\x00\x00\x00\x83\xcf\x00\x00\x83\xc8\x00\x00\x62\x67\x83\xcc\x62\x5f\x62\x63\x83\xcb\x00\x00\x62\x62\x62\x5e\x62\x61\x62\x5c\x62\x66\x83\xcd\x83\xc9\x62\x65\x83\xc7\x62\x64\x83\xce\x83\xca\x60\x5a\x00\x00\x62\x68\x83\xd0\x62\x60\x62\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x86\xd1\x86\xd3", /* 5680 */ "\x63\xc5\x86\xd4\x86\xd2\x86\xd0\x86\xcf\x63\xc7\x86\xce\x63\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x86\xcc\x86\xcd\x63\xc4\x63\xc9\x63\xc6\x00\x00\x00\x00\x86\xcb\x00\x00\x65\x5b\x00\x00\x89\x69\x89\x67\x89\x6c\x89\x6a\x00\x00\x89\x68\x89\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4c\x8b\x61\x8b\x62\x66\xe0\x00\x00\x8b\x63\x8b\x5f\x8b\x64\x8b\x60\x65\x5c\x00\x00\x00\x00\x00\x00\x8c\xec\x8c\xee\x66\xe3\x8c\xed\x66\xe2\x66\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe4\x8e\x74\x8e\x75\x00\x00\x67\x86\x67\x85\x67\x87\x8e\x73\x00\x00\x8f\x68\x8f\x67\x00\x00\x67\xd8\x67\xda\x67\xd9\x8f\x69\x68\x54\x90\xb5\x00\x00\x00\x00\x00\x00\x68\x7d\x00\x00\x90\xb4\x90\xfd\x00\x00\x00\x00\x69\x4a\x00\x00\x00\x00\x4d\x5f\x4d\x5e\x00\x00\x4d\xdf\x4d\xde\x69\xa7\x4d\xdd\x69\xa6\x00\x00\x00\x00\x4e\xda\x6a\x69\x00\x00\x6a\x68\x00\x00\x00\x00\x4e\xd8\x4e\xdb\x00\x00\x00\x00\x6a\x67\x00\x00\x4e\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x92\x00\x00\x6b\x93\x50\x76\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6c", /* 5700 */ "\x00\x00\x6f\xca\x6f\xcb\x54\x89\x54\x8a\x00\x00\x00\x00\x72\xaf\x56\xcd\x56\xcf\x72\xae\x56\xce\x75\xe1\x59\x78\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcf\x5b\xd0\x79\xa8\x00\x00\x5e\x57\x00\x00\x5e\x56\x00\x00\x80\x93\x83\xd2\x83\xd1\x00\x00\x91\x7c\x4c\x68\x69\x5a\x00\x00\x69\x6f\x69\x70\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe2\x4d\xe6\x69\xa9\x00\x00\x4d\xe4\x4d\xe3\x69\xa8\x4d\xe5\x4d\xe1\x00\x00\x00\x00\x4d\xe0\x69\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xe5\x00\x00\x00\x00\x4e\xe2\x00\x00\x4e\xde\x6a\x6a\x00\x00\x00\x00\x00\x00\x6a\x6b\x00\x00\x4e\xe0\x00\x00\x6a\x6d\x4e\xdc\x6a\x6e\x6a\x6c\x4e\xdf\x4e\xe1\x4e\xe4\x4e\xe3\x4e\xdd\x6a\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x7b\x6b\xa0\x00\x00\x50\x7d\x00\x00\x50\x7c\x00\x00\x6b\xa1\x50\x7a\x50\x79\x6b\x97\x00\x00\x6b\x96\x00\x00\x6b\x94\x6b\x99\x6b\x98\x6b\x95\x6b\x9e\x6b\x9f\x6b\x9c\x6b\x9a\x50\x78\x00\x00\x00\x00\x00\x00\x6b\x9d\x50\x7e\x6b\xa2\x00\x00\x00\x00", /* 5780 */ "\x6b\x9b\x00\x00\x52\x6d\x50\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6e\x6d\x76\x00\x00\x00\x00\x6d\x7c\x00\x00\x00\x00\x00\x00\x52\x74\x6d\x7a\x6d\x81\x00\x00\x6d\x77\x6d\x7b\x6d\x7d\x6d\x7f\x6d\x79\x00\x00\x6d\x78\x6d\x73\x6d\x74\x52\x6f\x00\x00\x52\x71\x52\x70\x6d\x75\x6d\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x72\x6f\xd5\x00\x00\x6f\xd4\x6f\xd9\x6f\xd0\x00\x00\x6f\xd3\x6f\xd2\x00\x00\x6f\xd6\x00\x00\x6f\xda\x54\x8b\x54\x8e\x00\x00\x00\x00\x6f\xd1\x6f\xd7\x00\x00\x00\x00\x00\x00\x54\x8d\x6f\xcc\x00\x00\x52\x72\x72\xbd\x6f\xd8\x00\x00\x6f\xcf\x00\x00\x54\x8c\x6f\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\xb4\x00\x00\x00\x00\x56\xd0\x56\xd4\x72\xc4\x72\xb2\x72\xc0\x56\xd5\x72\xc2\x00\x00\x72\xc8\x00\x00\x72\xcc\x00\x00\x00\x00\x72\xc3\x72\xb7\x72\xbf\x00\x00\x72\xcd\x72\xcb\x72\xc1\x72\xbc\x72\xb5\x75\xe9\x72\xb3\x56\xd9\x72\xba\x56\xda\x56\xd6\x72\xb0\x72\xc6\x72\xb8\x00\x00\x00\x00", /* 5800 */ "\x72\xb6\x72\xc9\x56\xd7\x00\x00\x72\xcf\x56\xd1\x56\xd3\x72\xbe\x72\xb9\x54\x8f\x56\xd2\x72\xbb\x72\xca\x72\xce\x72\xc5\x00\x00\x72\xc7\x00\x00\x00\x00\x00\x00\x72\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe4\x00\x00\x75\xed\x75\xec\x59\x81\x75\xe5\x00\x00\x59\x82\x59\x7f\x00\x00\x75\xe7\x59\x7c\x75\xeb\x00\x00\x75\xe6\x75\xe8\x75\xe2\x59\x7a\x00\x00\x75\xf5\x75\xf4\x75\xf1\x59\x79\x59\x7d\x59\x7e\x6f\xcd\x75\xee\x59\x7b\x56\xd8\x75\xf0\x75\xe3\x75\xf3\x75\xf2\x00\x00\x75\xf6\x00\x00\x79\xb6\x00\x00\x75\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xea\x79\xae\x5b\xda\x5b\xdd\x5b\xd8\x79\xad\x79\xb1\x79\xac\x00\x00\x5b\xd2\x5b\xdc\x79\xa9\x5b\xd6\x79\xb0\x00\x00\x5b\xd4\x5b\xd3\x79\xb3\x5b\xd5\x79\xb5\x00\x00\x79\xb2\x5b\xd1\x00\x00\x00\x00\x00\x00\x5b\xdb\x79\xb7\x79\xab\x79\xb4\x00\x00\x00\x00\x79\xaa\x00\x00\x00\x00\x5b\xd7\x00\x00\x5b\xd9\x00\x00\x79\xaf\x00\x00\x79\xb8\x00\x00\x00\x00\x7d\x66\x5e\x58\x7d\x6c\x00\x00\x00\x00\x5e\x5d\x7d\x68\x7d\x6f\x7d\x60\x5e\x5f\x5e\x59\x7d\x65", /* 5880 */ "\x60\x5e\x7d\x64\x7d\x6d\x5e\x5a\x00\x00\x5e\x5e\x7d\x63\x7d\x69\x7d\x6e\x7d\x5f\x5e\x5c\x7d\x67\x00\x00\x00\x00\x7d\x6b\x7d\x71\x7d\x61\x7d\x6a\x00\x00\x5e\x5b\x7d\x70\x00\x00\x00\x00\x00\x00\x7d\x62\x00\x00\x00\x00\x00\x00\x60\x62\x80\x95\x60\x60\x60\x5f\x80\x97\x80\x9c\x00\x00\x80\x98\x00\x00\x80\x9b\x60\x65\x00\x00\x62\x4e\x60\x64\x00\x00\x80\x94\x80\x9a\x00\x00\x60\x63\x80\x99\x00\x00\x80\x96\x00\x00\x60\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\xd7\x00\x00\x83\xd9\x83\xd4\x62\x6a\x83\xd6\x00\x00\x62\x69\x83\xd8\x00\x00\x00\x00\x62\x6c\x83\xda\x62\x6b\x83\xd3\x83\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcd\x86\xd7\x00\x00\x63\xcc\x86\xd8\x63\xcb\x86\xd6\x63\xca\x86\xd5\x00\x00\x65\x5e\x65\x5d\x8b\x65\x8b\x67\x00\x00\x8b\x66\x66\x4d\x66\x4e\x00\x00\x00\x00\x66\x4f\x8c\xef\x66\xe5\x00\x00\x00\x00\x90\x44\x90\x43\x68\x7e\x00\x00\x4c\x69\x4c\xb0\x00\x00\x00\x00\x4e\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x82\x00\x00\x00\x00\x00\x00\x00\x00\x59\x83\x59\x84\x00\x00\x79\xb9\x5e\x60\x7d\x72\x80\x9d", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x69\x5b\x00\x00\x00\x00\x6a\x70\x00\x00\x00\x00\x00\x00\x48\x62\x00\x00\x6b\xa3\x6d\x83\x6f\xdb\x54\x90\x00\x00\x00\x00\x8b\x68\x00\x00\x67\x88\x4c\x6a\x4d\x60\x69\x71\x00\x00\x4d\xe7\x4d\xe8\x00\x00\x50\x7f\x00\x00\x00\x00\x00\x00\x56\xdb\x00\x00\x5e\x62\x00\x00\x5e\x63\x5e\x61\x00\x00\x4c\x6b\x00\x00\x4c\xb1\x4c\xb3\x4c\xb2\x69\x5c\x4c\xb4\x4d\x61\x69\x72\x00\x00\x4d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe9\x4d\xea\x00\x00\x00\x00\x00\x00\x69\xab\x00\x00\x4e\xe7\x00\x00\x6a\x71\x00\x00\x00\x00\x00\x00\x50\x84\x6b\xa4\x00\x00\x50\x82\x50\x83\x50\x81\x6f\xdc\x00\x00\x00\x00\x00\x00\x52\x78\x52\x77\x52\x79\x52\x76\x00\x00\x6d\x84\x50\x85\x52\x75\x00\x00\x54\x91\x54\x92\x00\x00\x54\x93\x00\x00\x72\xd0\x00\x00\x00\x00\x00\x00\x59\x85\x75\xf7\x56\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xde\x00\x00\x5e\x65\x5e\x64\x7d\x73\x00\x00\x60\x66\x62\x6d\x00\x00\x89\x6d\x8f\x6a\x90\x45\x4c\x6c\x4d\x63\x00\x00\x4d\x64\x69\xb1\x4d\xec\x4d\xef\x00\x00\x69\xaf\x69\xad\x4d\xee\x69\xb0\x69\xb2", /* 5980 */ "\x69\xac\x4d\xf1\x4d\xf0\x4d\xed\x4d\xeb\x69\xae\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf2\x00\x00\x00\x00\x4e\xef\x6a\x76\x6a\x79\x6a\x78\x00\x00\x4e\xe9\x4e\xf1\x00\x00\x00\x00\x4e\xee\x6a\x75\x6a\x73\x4e\xed\x00\x00\x00\x00\x00\x00\x4e\xe8\x4e\xeb\x00\x00\x6a\x74\x6a\x7b\x6a\x77\x4e\xec\x4e\xf0\x4e\xf3\x6a\x72\x6a\x7a\x4e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8a\x50\x92\x00\x00\x6b\xb0\x6b\xa9\x50\x93\x6b\xb4\x6b\xa5\x6b\xac\x00\x00\x00\x00\x50\x89\x6b\xa6\x50\x87\x6b\xad\x6b\xb1\x50\x86\x00\x00\x6b\xb2\x6b\xab\x00\x00\x6b\xae\x00\x00\x50\x95\x50\x8c\x6b\xb5\x6b\xb3\x00\x00\x50\x91\x50\x8f\x6b\xaa\x50\x8e\x6b\xa8\x6b\xa7\x50\x8d\x50\x8b\x50\x94\x50\x90\x50\x88\x00\x00\x6b\xaf\x00\x00\x52\x7b\x00\x00\x52\x83\x6d\x92\x52\x7a\x6d\x8a\x6d\x86\x00\x00\x6d\x96\x6d\x85\x00\x00\x52\x7d\x6d\x8f\x52\x81\x52\x84\x00\x00\x52\x7e\x6d\x93\x52\x82\x00\x00\x54\x9a\x6d\x99\x6d\x87\x00\x00\x00\x00\x6d\x89\x6d\x90\x6d\x94\x6d\x98\x6d\x95\x6d\x8e\x6d\x91\x00\x00\x00\x00\x6d\x8b\x52\x86\x6d\x8d\x6d\x8c\x6d\x97\x52\x7c", /* 5a00 */ "\x6d\x88\x52\x85\x00\x00\x52\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa0\x6f\xe4\x00\x00\x54\x9f\x00\x00\x00\x00\x6f\xe2\x00\x00\x54\x94\x00\x00\x54\x99\x00\x00\x6f\xe1\x6f\xde\x6f\xe3\x54\x95\x6f\xdd\x00\x00\x54\x98\x54\x96\x00\x00\x6f\xe5\x54\x97\x54\x9b\x00\x00\x00\x00\x54\x9c\x00\x00\x54\x9e\x00\x00\x00\x00\x00\x00\x54\x9d\x00\x00\x00\x00\x00\x00\x6f\xdf\x6f\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xe6\x00\x00\x72\xd7\x56\xdd\x76\x48\x72\xd6\x72\xe9\x00\x00\x00\x00\x56\xe3\x00\x00\x72\xe7\x00\x00\x56\xe2\x56\xde\x72\xf0\x72\xe0\x72\xe3\x00\x00\x56\xe6\x72\xed\x72\xe5\x56\xdf\x56\xe7\x00\x00\x72\xea\x72\xe8\x00\x00\x00\x00\x72\xd9\x72\xee\x72\xe2\x72\xdd\x00\x00\x72\xd3\x72\xef\x72\xdf\x72\xd2\x00\x00\x56\xe5\x72\xe4\x72\xf1\x72\xe1\x72\xd5\x72\xda\x72\xd1\x00\x00\x56\xe4\x00\x00\x72\xde\x72\xdb\x56\xe0\x72\xd4\x00\x00\x72\xec\x56\xe1\x00\x00\x72\xdc\x72\xd8\x00\x00\x00\x00\x72\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x86\x76\x41\x00\x00\x75\xfb\x76\x4f\x76\x43\x76\x50\x00\x00\x59\x88", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x76\x4c\x76\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x4a\x76\x4d\x76\x51\x00\x00\x72\xe6\x76\x53\x79\xcd\x00\x00\x59\x89\x76\x54\x75\xf9\x76\x46\x00\x00\x76\x4b\x00\x00\x00\x00\x59\x87\x59\x8a\x76\x52\x76\x55\x75\xfd\x75\xfa\x00\x00\x00\x00\x75\xfc\x00\x00\x00\x00\x76\x44\x76\x42\x59\x8b\x00\x00\x76\x4e\x00\x00\x00\x00\x76\x45\x00\x00\x76\x47\x75\xf8\x79\xc1\x79\xbf\x5b\xe7\x5b\xe5\x79\xc9\x79\xc0\x79\xca\x79\xc6\x79\xbe\x79\xcc\x79\xbd\x79\xc4\x5b\xe4\x5b\xe3\x5b\xe2\x79\xc2\x79\xc7\x5b\xdf\x5b\xe6\x00\x00\x79\xbb\x00\x00\x79\xc5\x79\xba\x79\xc3\x5b\xe0\x79\xc8\x79\xbc\x5b\xe1\x79\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x77\x5e\x6a\x5e\x69\x5e\x6b\x7d\x84\x7d\x79\x7d\x7f\x7d\x74\x7d\x83\x7d\x82\x7d\x86\x7d\x7e\x5e\x66\x7d\x7d\x5e\x6c\x00\x00\x7d\x76\x5e\x67\x00\x00\x7d\x85\x5e\x68\x7d\x78\x7d\x7b\x7d\x81\x7d\x7a\x7d\x75\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x7c\x80\x9f\x60\x6a\x80\xa2\x80\xa1\x80\xa4\x80\xa6\x00\x00\x60\x68\x00\x00\x80\xa0\x00\x00\x80\x9e", /* 5b00 */ "\x00\x00\x80\xa7\x80\xa5\x80\xa3\x00\x00\x80\xa9\x00\x00\x80\xa8\x60\x6c\x60\x67\x00\x00\x60\x69\x60\x6b\x00\x00\x00\x00\x80\xaa\x83\xe1\x00\x00\x00\x00\x83\xe0\x83\xdf\x00\x00\x83\xe2\x83\xdb\x00\x00\x83\xdc\x83\xe4\x83\xdd\x00\x00\x62\x6e\x83\xe6\x00\x00\x83\xe5\x83\xde\x00\x00\x86\xdc\x63\xd0\x86\xda\x86\xdf\x86\xde\x83\xe3\x00\x00\x63\xcf\x00\x00\x86\xdd\x86\xd9\x86\xe1\x86\xe0\x63\xce\x00\x00\x86\xdb\x00\x00\x62\x6f\x00\x00\x00\x00\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x89\x6e\x8b\x69\x8b\x6a\x8b\x6b\x66\xe6\x00\x00\x00\x00\x66\xe7\x00\x00\x8c\xf0\x00\x00\x8e\x77\x8e\x76\x00\x00\x00\x00\x8f\x6b\x8f\x6c\x90\x46\x90\xb6\x00\x00\x4c\x6d\x4c\x6e\x00\x00\x4c\x6f\x4c\xb5\x4d\x65\x69\xb3\x4d\xf2\x4d\xf3\x00\x00\x4e\xf6\x4e\xf7\x4e\xf5\x4e\xf4\x00\x00\x50\x96\x00\x00\x00\x00\x6b\xb6\x50\x98\x50\x97\x6b\xb7\x00\x00\x00\x00\x00\x00\x52\x87\x00\x00\x54\xa1\x6f\xe7\x00\x00\x72\xf3\x00\x00\x56\xe8\x59\x8d\x72\xf2\x59\x8c\x00\x00\x5e\x6d\x00\x00\x7d\x87\x62\x70\x00\x00\x63\xd1\x86\xe2\x00\x00\x66\xe8\x00\x00\x67\xdb", /* 5b80 */ "\x48\x67\x69\x73\x00\x00\x4d\x66\x69\x74\x4d\xf6\x00\x00\x4d\xf4\x4d\xf5\x4d\xf7\x00\x00\x4e\xf9\x4e\xf8\x00\x00\x6a\x7c\x4e\xfa\x00\x00\x00\x00\x6a\x7d\x6b\xb8\x00\x00\x6b\xb9\x00\x00\x50\x99\x50\x9b\x50\x9d\x50\x9a\x50\x9e\x50\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x8b\x52\x88\x52\x8a\x52\x8c\x52\x89\x6f\xe8\x6d\x9a\x00\x00\x00\x00\x00\x00\x6f\xea\x6f\xe9\x54\xa7\x00\x00\x54\xa3\x00\x00\x00\x00\x54\xa4\x54\xa6\x54\xa8\x54\xa5\x00\x00\x54\xaa\x54\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xed\x72\xf5\x72\xf4\x56\xec\x00\x00\x56\xeb\x56\xea\x56\xee\x56\xe9\x00\x00\x00\x00\x76\x5b\x76\x58\x59\x8f\x76\x57\x76\x5c\x00\x00\x59\x91\x76\x5a\x59\x8e\x59\x90\x76\x59\x00\x00\x79\xce\x00\x00\x79\xcf\x79\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6e\x5e\x76\x7d\x88\x5e\x70\x5e\x74\x7d\x89\x5e\x75\x5e\x71\x5e\x72\x5e\x6f\x5e\x73\x60\x6f\x76\x56\x60\x70\x60\x6e\x00\x00\x60\x6d\x83\xe7\x62\x71\x86\xe3\x86\xe4\x00\x00\x00\x00\x66\x50\x66\xe9\x00\x00\x4c\x70\x00\x00\x4d\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x52\x8d\x00\x00\x6f\xeb\x54\xab\x00\x00\x00\x00\x56\xf1\x56\xf0\x56\xef\x59\x92\x59\x93\x76\x5d\x5e\x77\x62\x72\x4c\x71\x69\x5d\x4c\xb6\x69\x75\x00\x00\x00\x00\x69\xb4\x4d\xf9\x00\x00\x00\x00\x00\x00\x50\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x79\xd1\x00\x00\x00\x00\x4c\x72\x00\x00\x4c\xb7\x69\xb5\x00\x00\x00\x00\x6a\x7e\x00\x00\x6a\x7f\x00\x00\x4e\xfb\x00\x00\x00\x00\x00\x00\x76\x5e\x59\x94\x00\x00\x79\xd2\x00\x00\x00\x00\x00\x00\x63\xd2\x4c\x73\x4c\x88\x4c\xb8\x69\x76\x4d\x67\x00\x00\x4f\x42\x4f\x41\x4e\xfc\x4e\xfd\x00\x00\x00\x00\x6b\xba\x50\xa1\x50\xa2\x6b\xbb\x50\xa0\x00\x00\x00\x00\x52\x91\x6d\x9b\x52\x90\x52\x8e\x52\x8f\x54\xae\x54\xac\x00\x00\x00\x00\x6f\xed\x54\xad\x6f\xec\x00\x00\x54\xa2\x72\xf6\x00\x00\x00\x00\x56\xf3\x56\xf4\x00\x00\x00\x00\x56\xf2\x00\x00\x5e\x78\x7d\x8a\x60\x71\x60\x72\x00\x00\x80\xab\x63\xd3\x89\x6f\x89\x70\x00\x00\x67\x89\x90\xb7\x69\x4c\x4c\xb9\x00\x00\x4c\x74\x00\x00\x69\x78\x69\x77\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfa\x69\xb7\x69\xb8\x69\xb6\x00\x00\x69\xb9\x00\x00", /* 5c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x88\x00\x00\x6a\x83\x6a\x85\x6a\x87\x6a\x84\x4f\x46\x6a\x81\x00\x00\x6a\x82\x4f\x43\x4f\x44\x6a\x86\x6a\x89\x4f\x45\x6a\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc9\x00\x00\x6b\xc3\x6b\xbe\x50\xa4\x6b\xc6\x6b\xc4\x6b\xbd\x6b\xca\x6b\xcd\x6b\xc8\x6b\xc1\x50\xa6\x6b\xc7\x50\xa7\x6b\xc2\x6b\xc5\x6b\xbc\x6b\xc0\x6b\xcc\x50\xa8\x00\x00\x50\xa9\x00\x00\x6b\xbf\x6b\xcb\x50\xa3\x50\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xac\x6d\xa5\x6d\xab\x6d\xa4\x6d\xa6\x6d\xa0\x6d\x9e\x00\x00\x6d\xad\x6d\xaa\x6d\x9c\x00\x00\x52\x93\x6d\xa8\x6d\xa9\x00\x00\x6d\xa7\x6d\x9f\x6d\x9d\x52\x92\x6d\xa3\x6d\xa1\x00\x00\x00\x00\x6d\xa2\x6d\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb3\x00\x00\x54\xb2\x00\x00\x6f\xee\x54\xaf\x6f\xf0\x00\x00\x54\xb4\x6f\xf1\x00\x00\x00\x00\x54\xb7\x00\x00\x54\xb5\x6f\xf2\x6d\xaf\x6f\xf4\x00\x00\x54\xb1\x00\x00\x54\xb0\x00\x00\x6f\xef", /* 5d00 */ "\x6f\xf3\x54\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x56\xf6\x56\xf5\x00\x00\x00\x00\x00\x00\x72\xf8\x72\xfc\x73\x41\x56\xf7\x73\x44\x00\x00\x56\xfb\x73\x46\x00\x00\x56\xfd\x00\x00\x56\xf9\x57\x44\x00\x00\x57\x41\x72\xfa\x56\xf8\x00\x00\x72\xf9\x72\xf7\x73\x48\x72\xfb\x00\x00\x56\xfa\x73\x47\x57\x42\x73\x43\x73\x42\x57\x43\x72\xfd\x56\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x73\x49\x00\x00\x73\x45\x76\x6d\x76\x74\x76\x69\x59\x97\x76\x65\x76\x75\x76\x5f\x76\x72\x76\x70\x76\x6a\x00\x00\x76\x73\x76\x6c\x00\x00\x76\x64\x76\x76\x76\x62\x76\x6f\x76\x60\x00\x00\x76\x77\x00\x00\x59\x98\x00\x00\x76\x71\x79\xd5\x76\x63\x59\x95\x00\x00\x76\x67\x00\x00\x59\x96\x76\x66\x76\x6b\x00\x00\x00\x00\x76\x68\x00\x00\x00\x00\x00\x00\x76\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x79\xd9\x00\x00\x00\x00\x00\x00\x79\xdc\x79\xd4\x00\x00\x79\xd6\x00\x00\x79\xdb\x79\xda\x5b\xe8\x00\x00\x76\x61\x79\xd8\x00\x00\x00\x00\x5b\xe9\x00\x00\x79\xd3\x79\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x91\x00\x00\x7d\x98\x7d\x8f\x00\x00\x7d\x96\x7d\x8d\x7d\x95\x7d\x99", /* 5d80 */ "\x7d\x8c\x7d\x90\x7d\x8b\x00\x00\x5e\x79\x00\x00\x7d\x8e\x5e\x7a\x7d\x94\x7d\x93\x7d\x92\x00\x00\x00\x00\x7d\x97\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaf\x80\xb1\x60\x74\x80\xb2\x00\x00\x80\xad\x00\x00\x80\xac\x80\xb6\x00\x00\x80\xb4\x60\x73\x80\xb7\x80\xae\x80\xb3\x80\xb5\x80\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x83\xeb\x83\xf0\x83\xea\x83\xef\x00\x00\x83\xe8\x83\xf2\x83\xee\x83\xf3\x83\xed\x83\xe9\x83\xf1\x00\x00\x83\xf4\x83\xec\x00\x00\x86\xe5\x63\xd7\x00\x00\x63\xd5\x00\x00\x63\xd4\x63\xd6\x00\x00\x00\x00\x89\x71\x00\x00\x8a\xc0\x8b\x6c\x00\x00\x00\x00\x8c\xf1\x8c\xf2\x00\x00\x66\xea\x00\x00\x8e\x78\x00\x00\x67\x8a\x00\x00\x8e\x79\x00\x00\x8f\x6e\x67\xdd\x00\x00\x67\xdc\x8f\x6d\x68\x55\x00\x00\x90\x47\x00\x00\x00\x00\x48\x6e\x00\x00\x4c\x75\x4d\xfb\x69\xba\x6a\x8b\x4f\xd5\x57\x45\x00\x00\x00\x00\x4c\x76\x4d\x6a\x4d\x69\x4d\x68\x00\x00\x00\x00\x4f\x47\x00\x00\x00\x00\x54\xb8\x00\x00\x79\xdd\x4c\x77\x4c\x78\x4c\x79\x4c\xba\x00\x00\x00\x00\x52\x94\x00\x00\x6d\xb0\x00\x00\x00\x00\x00\x00\x59\x99\x4c\x7a\x69\x5e", /* 5e00 */ "\x00\x00\x00\x00\x4d\x6b\x4d\x6c\x69\x79\x00\x00\x4d\xfc\x00\x00\x00\x00\x00\x00\x6a\x8c\x00\x00\x4f\x48\x00\x00\x6a\x8d\x00\x00\x00\x00\x50\xaf\x00\x00\x00\x00\x6b\xcf\x50\xad\x50\xac\x6b\xce\x50\xaa\x6b\xd0\x50\xab\x50\xae\x00\x00\x52\x95\x00\x00\x52\x97\x6d\xb4\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb5\x52\x96\x00\x00\x00\x00\x6f\xf6\x6f\xf5\x00\x00\x54\xba\x00\x00\x54\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x48\x73\x4b\x00\x00\x57\x47\x57\x49\x57\x46\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9b\x73\x4a\x00\x00\x59\x9c\x76\x79\x00\x00\x59\x9d\x76\x78\x59\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x79\xe0\x79\xe2\x5b\xea\x79\xe1\x79\xdf\x79\xde\x00\x00\x00\x00\x00\x00\x7d\x9c\x5e\x7f\x5e\x7d\x00\x00\x5e\x7e\x7d\x9a\x7d\x9b\x00\x00\x5e\x7b\x80\xbb\x80\xb9\x00\x00\x60\x76\x80\xba\x60\x77\x60\x75\x5e\x7c\x00\x00\x00\x00\x83\xf7\x83\xf5\x83\xf6\x80\xb8\x86\xe7\x63\xd8\x86\xe6\x89\x72\x89\x73\x83\xf8\x8b\x6d\x00\x00\x4c\x7b\x4d\x6d\x4e\x41\x69\xbb\x4d\xfd\x00\x00\x50\xb0\x5b\xeb\x48\x73\x4c\xbb\x4d\x6e\x52\x98\x59\x9e\x48\x74", /* 5e80 */ "\x69\x7a\x00\x00\x69\x7b\x00\x00\x69\xbc\x00\x00\x00\x00\x4f\x4a\x6a\x91\x6a\x8f\x4f\x4b\x6a\x8e\x6a\x90\x6a\x92\x00\x00\x4f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb4\x50\xb5\x50\xb2\x00\x00\x00\x00\x50\xb1\x6d\xb9\x50\xb3\x00\x00\x00\x00\x00\x00\x52\x99\x00\x00\x6d\xb8\x6d\xba\x6d\xb7\x6d\xbb\x52\x9a\x54\xbd\x6f\xf7\x00\x00\x6f\xf9\x54\xbb\x6f\xfa\x54\xbc\x6f\xf8\x00\x00\x6d\xb6\x73\x4c\x73\x4f\x73\x50\x73\x4d\x57\x4d\x57\x4c\x57\x4a\x57\x4b\x73\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x57\x4e\x00\x00\x00\x00\x59\xa0\x59\xa1\x00\x00\x59\xa2\x79\xe3\x79\xe5\x79\xe7\x5b\xed\x5b\xec\x59\x9f\x79\xe6\x79\xe4\x00\x00\x7d\xa0\x00\x00\x00\x00\x7d\x9e\x7d\xa4\x5e\x81\x7d\xa5\x7d\xa2\x5e\x82\x7d\x9f\x7d\x9d\x7d\xa3\x60\x79\x80\xbd\x7d\xa1\x60\x7b\x80\xbe\x60\x7a\x60\x7d\x80\xbf\x60\x78\x60\x7c\x00\x00\x83\xfd\x83\xfb\x83\xfa\x83\xfc\x83\xf9\x00\x00\x00\x00\x66\x52\x00\x00\x8c\xf3\x8c\xf4\x00\x00\x8e\x7a\x8f\x6f\x68\xa1\x48\x75\x00\x00\x50\xb6\x4f\x4c\x00\x00\x00\x00\x52\x9b\x00\x00\x00\x00\x00\x00\x4c\x7c\x4c\xbc", /* 5f00 */ "\x00\x00\x4d\x6f\x69\xbd\x00\x00\x4f\x4d\x6a\x93\x00\x00\x6d\xbc\x52\x9c\x00\x00\x5e\x83\x4c\x7d\x00\x00\x00\x00\x00\x00\x4e\x42\x00\x00\x00\x00\x5b\xee\x4c\x7e\x4c\xbd\x4c\xbe\x00\x00\x4d\x71\x4d\x70\x00\x00\x69\xbe\x4e\x43\x00\x00\x6a\x94\x00\x00\x4f\x4e\x00\x00\x00\x00\x6b\xd2\x6b\xd3\x6b\xd4\x00\x00\x50\xb7\x50\xb8\x6b\xd1\x50\xb9\x00\x00\x00\x00\x00\x00\x52\x9d\x6d\xbd\x00\x00\x6f\xfc\x54\xbe\x00\x00\x6f\xfb\x00\x00\x57\x4f\x73\x51\x57\x50\x73\x52\x00\x00\x00\x00\x00\x00\x59\xa3\x00\x00\x00\x00\x00\x00\x79\xe8\x00\x00\x00\x00\x7d\xa7\x7d\xa6\x00\x00\x5e\x84\x00\x00\x60\x7e\x80\xc0\x62\x73\x84\x41\x63\xd9\x00\x00\x67\xde\x90\x49\x48\x79\x00\x00\x00\x00\x00\x00\x6b\xd5\x00\x00\x6d\xbe\x57\x51\x76\x7a\x5b\xef\x00\x00\x00\x00\x00\x00\x65\x60\x65\x60\x00\x00\x00\x00\x48\x7a\x4f\x50\x00\x00\x4f\x4f\x52\x9e\x00\x00\x6f\xfd\x00\x00\x57\x53\x58\xa8\x57\x54\x57\x52\x59\xa4\x00\x00\x7d\xa8\x5e\x85\x60\x7f\x00\x00\x69\x4d\x69\xbf\x00\x00\x6a\x96\x4f\x51\x6a\x95\x4f\x52\x00\x00\x00\x00\x50\xbd\x6b\xd8\x6b\xd7\x50\xbc", /* 5f80 */ "\x50\xba\x50\xbb\x6b\xd6\x00\x00\x00\x00\x52\xa0\x6d\xbf\x52\xa3\x52\x9f\x52\xa5\x52\xa1\x52\xa2\x52\xa4\x00\x00\x00\x00\x00\x00\x54\xc1\x54\xc0\x54\xbf\x00\x00\x00\x00\x00\x00\x73\x54\x57\x55\x57\x58\x57\x56\x00\x00\x73\x53\x57\x5b\x00\x00\x57\x57\x73\x55\x57\x5a\x57\x59\x00\x00\x00\x00\x00\x00\x76\x7c\x76\x7b\x00\x00\x59\xa7\x59\xa5\x59\xa6\x76\x7d\x5b\xf0\x79\xea\x5b\xf1\x79\xe9\x00\x00\x00\x00\x80\xc1\x00\x00\x00\x00\x60\x82\x7d\xa9\x60\x81\x00\x00\x5e\x86\x00\x00\x86\xe9\x84\x42\x63\xda\x86\xe8\x8b\x6e\x8c\xf5\x8c\xf6\x00\x00\x4c\xbf\x00\x00\x4d\x72\x00\x00\x00\x00\x00\x00\x69\x7c\x00\x00\x00\x00\x4f\x54\x4f\x56\x00\x00\x69\xc2\x6a\x99\x6a\x98\x6a\x97\x00\x00\x69\xc1\x69\xc0\x4e\x45\x4f\x55\x4f\x53\x4e\x44\x00\x00\x00\x00\x00\x00\x50\xbe\x6b\xd9\x00\x00\x50\xbf\x6a\x9e\x00\x00\x6a\xa0\x6a\x9f\x6b\xda\x00\x00\x00\x00\x6a\x9b\x00\x00\x4f\x5a\x4f\x58\x00\x00\x6a\x9a\x6a\x9c\x6a\xa2\x00\x00\x4f\x57\x00\x00\x6a\x9d\x6a\xa6\x50\xc1\x00\x00\x6a\xa3\x4f\x59\x00\x00\x6a\xa1\x6a\xa4\x00\x00\x50\xc0\x00\x00\x50\xc2", /* 6000 */ "\x6a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xee\x6b\xe1\x6b\xdf\x6b\xed\x6b\xe8\x52\xaa\x50\xc3\x6b\xe9\x6b\xec\x52\xa6\x6b\xeb\x50\xc4\x50\xc9\x50\xc7\x6b\xe2\x00\x00\x6b\xdd\x6b\xe4\x50\xce\x6b\xef\x52\xa7\x6b\xe5\x00\x00\x52\xa8\x50\xca\x6b\xe7\x00\x00\x6d\xce\x52\xa9\x6b\xdc\x50\xcb\x52\xab\x50\xcc\x50\xc8\x50\xcd\x6b\xe6\x6b\xdb\x6b\xea\x50\xc5\x00\x00\x00\x00\x6b\xde\x6b\xe3\x6b\xe0\x50\xc6\x00\x00\x6d\xc0\x00\x00\x6d\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xcb\x70\x44\x6d\xcc\x52\xb1\x6d\xcf\x6d\xc5\x52\xb0\x6d\xc7\x00\x00\x6d\xc8\x00\x00\x00\x00\x6d\xca\x52\xac\x00\x00\x00\x00\x54\xc5\x00\x00\x00\x00\x6d\xc6\x6d\xc2\x54\xc6\x00\x00\x00\x00\x6d\xd0\x54\xc2\x70\x42\x6d\xc9\x00\x00\x70\x41\x6d\xc4\x6d\xcd\x00\x00\x00\x00\x52\xaf\x54\xc3\x52\xb5\x54\xc4\x6d\xd1\x70\x43\x52\xae\x54\xc8\x52\xb4\x52\xb3\x52\xb2\x54\xc7\x6d\xd2\x54\xc9\x52\xad\x00\x00\x6d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x5c", /* 6080 */ "\x70\x47\x70\x49\x00\x00\x70\x4b\x54\xca\x54\xd0\x73\x58\x70\x4f\x70\x46\x57\x5e\x73\x56\x00\x00\x54\xcf\x54\xcd\x70\x51\x00\x00\x73\x57\x00\x00\x70\x48\x00\x00\x54\xce\x70\x4c\x54\xd1\x70\x4e\x00\x00\x00\x00\x54\xcc\x70\x4d\x70\x50\x70\x4a\x00\x00\x54\xcb\x57\x5f\x00\x00\x70\x45\x57\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x57\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x5a\x73\x63\x59\xaa\x00\x00\x57\x62\x57\x67\x59\xab\x73\x65\x57\x6e\x76\x7f\x73\x5b\x57\x66\x57\x69\x57\x64\x73\x59\x73\x67\x73\x6a\x76\x8f\x00\x00\x73\x68\x76\x84\x57\x65\x57\x6c\x57\x70\x73\x62\x76\x7e\x73\x66\x57\x61\x76\x81\x73\x69\x76\x83\x73\x5e\x00\x00\x59\xa8\x00\x00\x73\x5c\x73\x5d\x57\x6b\x00\x00\x00\x00\x57\x6a\x73\x60\x57\x6f\x73\x64\x57\x68\x73\x61\x00\x00\x57\x6d\x59\xac\x59\xa9\x76\x82\x00\x00\x73\x5f\x00\x00\x57\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb1\x59\xb5\x76\x86\x5b\xf6\x59\xb3\x76\x8a\x59\xb7\x79\xeb\x76\x8c\x5b\xf8\x59\xaf\x59\xb2\x76\x8d\x00\x00\x76\x8e\x76\x94", /* 6100 */ "\x59\xb9\x5b\xf9\x00\x00\x76\x90\x76\x95\x76\x89\x5c\x46\x00\x00\x5b\xfa\x59\xb8\x76\x87\x76\x96\x00\x00\x5c\x45\x59\xb6\x5b\xf3\x76\x93\x00\x00\x59\xba\x76\x8b\x76\x85\x59\xb0\x76\x88\x00\x00\x76\x91\x00\x00\x5b\xf2\x5b\xf7\x59\xad\x76\x92\x00\x00\x5b\xf5\x00\x00\x00\x00\x00\x00\x59\xae\x00\x00\x00\x00\x00\x00\x5c\x44\x7d\xab\x79\xf6\x00\x00\x79\xee\x7d\xaa\x00\x00\x79\xf2\x79\xf4\x00\x00\x00\x00\x79\xf1\x00\x00\x5c\x43\x00\x00\x79\xf0\x5c\x47\x00\x00\x00\x00\x00\x00\x7d\xba\x00\x00\x00\x00\x5c\x42\x5e\x88\x79\xf7\x7d\xac\x00\x00\x00\x00\x5b\xfd\x79\xef\x79\xf3\x5e\x87\x5b\xf4\x79\xec\x79\xed\x5e\x89\x5b\xfc\x5c\x41\x5b\xfb\x79\xf5\x00\x00\x00\x00\x7d\xb0\x7d\xb1\x7d\xb6\x60\x87\x7d\xbd\x00\x00\x5e\x8f\x00\x00\x5e\x8e\x7d\xb8\x00\x00\x60\x86\x7d\xad\x5e\x8d\x00\x00\x7d\xbc\x5e\x8b\x5e\x8c\x00\x00\x7d\xb9\x80\xd2\x60\x84\x59\xb4\x00\x00\x7d\xbb\x60\x8b\x7d\xb3\x00\x00\x60\x85\x00\x00\x60\x8a\x7d\xae\x7d\xb2\x7d\xaf\x7d\xb5\x5e\x90\x60\x83\x5e\x8a\x00\x00\x80\xc4\x7d\xb7\x00\x00\x60\x89\x00\x00\x60\x8c\x00\x00", /* 6180 */ "\x7d\xb4\x00\x00\x60\x88\x80\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc8\x62\x77\x80\xc2\x84\x4e\x80\xd1\x60\x90\x00\x00\x60\x8e\x62\x75\x80\xce\x80\xca\x60\x94\x00\x00\x84\x45\x00\x00\x00\x00\x00\x00\x60\x92\x80\xc9\x00\x00\x84\x43\x00\x00\x80\xcd\x00\x00\x80\xd0\x80\xc7\x00\x00\x60\x93\x00\x00\x00\x00\x60\x8d\x84\x44\x62\x76\x80\xcf\x60\x8f\x60\x91\x80\xcc\x60\x95\x80\xcb\x80\xc6\x80\xc5\x62\x74\x80\xd3\x84\x47\x86\xeb\x62\x79\x00\x00\x84\x4d\x00\x00\x84\x4b\x00\x00\x86\xec\x00\x00\x62\x7a\x84\x4c\x00\x00\x84\x49\x63\xdc\x86\xea\x00\x00\x84\x46\x84\x48\x63\xdd\x62\x7c\x63\xdb\x62\x7b\x63\xdf\x84\x4a\x62\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x7c\x00\x00\x89\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xf2\x89\x75\x86\xee\x00\x00\x00\x00\x65\x61\x86\xf0\x86\xef\x63\xde\x86\xed\x86\xf1\x89\x7d\x89\x79\x89\x7b\x00\x00\x89\x76\x89\x77\x00\x00\x89\x7a\x89\x78\x66\x53\x00\x00\x00\x00\x66\x56\x66\x55\x66\x54\x66\xeb\x8c\xf7\x66\xec\x8b\x6f\x67\x8b\x8e\x7b\x67\x8c\x67\xdf", /* 6200 */ "\x68\x56\x90\x4a\x00\x00\x90\x4b\x90\x4c\x00\x00\x00\x00\x91\xaa\x4c\xc0\x69\x7d\x4d\x73\x00\x00\x4e\x47\x4e\x48\x4e\x46\x00\x00\x4e\x49\x4f\x5c\x4f\x5b\x00\x00\x6b\xf0\x50\xd0\x50\xcf\x00\x00\x00\x00\x70\x52\x57\x71\x57\x72\x00\x00\x00\x00\x00\x00\x59\xbb\x79\xf8\x5c\x48\x5c\x49\x79\xfa\x79\xfc\x79\xfb\x00\x00\x7d\xbf\x00\x00\x7d\xbe\x5e\x91\x7d\xc0\x00\x00\x80\xd4\x60\x96\x00\x00\x62\x7d\x00\x00\x63\xe0\x65\x62\x63\xe1\x00\x00\x4c\xc1\x00\x00\x00\x00\x00\x00\x6a\xa7\x00\x00\x00\x00\x6b\xf1\x50\xd2\x50\xd1\x50\xd3\x52\xb6\x6d\xd3\x6d\xd4\x00\x00\x00\x00\x70\x53\x54\xd2\x57\x73\x59\xbc\x76\x97\x4c\xc2\x00\x00\x4c\x7f\x4c\xc3\x00\x00\x69\x7e\x4d\x77\x4d\x76\x4d\x74\x4d\x75\x00\x00\x00\x00\x00\x00\x4e\x4c\x69\xca\x69\xcc\x4e\x4b\x69\xc4\x00\x00\x69\xc5\x00\x00\x69\xcb\x69\xc7\x69\xc9\x4e\x4a\x69\xc6\x69\xc3\x69\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x63\x4f\x6c\x4f\x6a\x6a\xb1\x6a\xae\x6a\xb6\x4f\x68\x6a\xb7\x00\x00\x4f\x61\x6a\xb4\x00\x00\x4f\x67\x6a\xb0\x6a\xaf\x4f\x65\x6a\xb5\x4f\x66\x50\xd4", /* 6280 */ "\x4f\x60\x6a\xb2\x00\x00\x6a\xa8\x4f\x5d\x00\x00\x4f\x70\x6a\xad\x6a\xb3\x4f\x62\x4f\x64\x00\x00\x6a\xa9\x00\x00\x6a\xaa\x6a\xab\x00\x00\x4f\x6f\x4f\x69\x4f\x6e\x6a\xac\x4f\x6d\x4f\x5f\x4f\x5e\x4f\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xe2\x6b\xfd\x6b\xf6\x50\xdd\x50\xf0\x6b\xf2\x6b\xf9\x6b\xfb\x6c\x41\x50\xeb\x00\x00\x6b\xfa\x6b\xf3\x50\xe9\x6b\xf7\x00\x00\x6c\x42\x50\xda\x00\x00\x6b\xfc\x50\xe4\x50\xe3\x6b\xf5\x50\xd8\x00\x00\x00\x00\x50\xd9\x00\x00\x50\xd7\x00\x00\x50\xef\x50\xe7\x50\xe1\x50\xd5\x6b\xf8\x50\xe0\x50\xd6\x50\xe8\x50\xf1\x6d\xd5\x50\xe5\x6b\xf4\x50\xdb\x50\xde\x50\xdf\x00\x00\x50\xed\x50\xee\x50\xec\x50\xe6\x50\xea\x50\xdc\x52\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xdb\x52\xc3\x52\xbb\x52\xbd\x52\xc2\x6d\xe7\x52\xc0\x70\x54\x54\xd3\x52\xc5\x6d\xd8\x6d\xe0\x52\xc1\x6d\xdf\x6d\xdc\x6d\xe4\x6d\xe6\x52\xba\x52\xbe\x52\xc4\x54\xd5", /* 6300 */ "\x6d\xe1\x52\xbc\x52\xc7\x6d\xda\x00\x00\x00\x00\x00\x00\x52\xbf\x54\xd4\x52\xb9\x00\x00\x6d\xd7\x6d\xde\x6d\xd6\x6d\xd9\x6d\xdd\x70\x55\x52\xc6\x00\x00\x6d\xe2\x6d\xe3\x6d\xe5\x52\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe3\x70\x61\x54\xe1\x54\xe2\x70\x57\x70\x67\x00\x00\x54\xd8\x00\x00\x00\x00\x73\x6b\x70\x69\x70\x63\x00\x00\x70\x5a\x00\x00\x70\x6c\x70\x5d\x54\xde\x73\x83\x70\x60\x54\xe0\x54\xd7\x00\x00\x70\x6e\x70\x62\x54\xda\x70\x5b\x70\x58\x70\x59\x54\xdb\x70\x68\x70\x6f\x54\xdd\x70\x5f\x70\x5e\x54\xe5\x54\xe4\x54\xd6\x54\xdc\x54\xdf\x70\x6b\x00\x00\x00\x00\x70\x65\x54\xd9\x70\x56\x70\x6d\x70\x64\x70\x66\x70\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x6c\x00\x00\x57\x7b\x57\x90\x57\x8f\x00\x00\x57\x84\x00\x00\x73\x7e\x73\x7a\x73\x77\x73\x8a\x57\x7e\x57\x76\x00\x00\x00\x00\x73\x7c\x59\xcc\x57\x7a\x73\x85\x00\x00\x57\x91\x57\x8e\x73\x81\x73\x6f\x00\x00\x00\x00", /* 6380 */ "\x57\x8d\x73\x87\x73\x6e\x57\x82\x57\x86\x73\x86\x00\x00\x73\x78\x57\x87\x57\x81\x73\x6d\x00\x00\x59\xbe\x73\x89\x73\x76\x57\x8c\x73\x79\x73\x88\x57\x8b\x00\x00\x76\x98\x00\x00\x57\x77\x73\x74\x57\x7c\x57\x88\x00\x00\x57\x83\x73\x7d\x73\x73\x73\x71\x73\x84\x57\x74\x57\x89\x57\x78\x59\xbd\x73\x82\x57\x79\x00\x00\x57\x75\x57\x85\x57\x7f\x57\x7d\x73\x75\x57\x8a\x73\x72\x73\x7f\x73\x7b\x76\x9a\x76\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x70\x76\xaa\x00\x00\x59\xc0\x00\x00\x76\xb0\x76\x9f\x76\xad\x79\xfd\x59\xc3\x76\xb1\x76\xb4\x59\xc2\x76\xa2\x76\xb3\x76\xb2\x59\xc4\x76\x9b\x59\xbf\x59\xc7\x00\x00\x59\xc5\x76\xaf\x00\x00\x76\xa5\x59\xc9\x76\xb6\x76\xae\x76\xb7\x59\xd1\x59\xcf\x76\xac\x76\xab\x00\x00\x76\xa9\x76\xa3\x59\xc8\x00\x00\x59\xc6\x70\x5c\x76\x9c\x00\x00\x7a\x5e\x76\x9d\x59\xc1\x59\xce\x7a\x42\x00\x00\x59\xca\x59\xcb\x76\x9e\x76\xb5\x7a\x41\x76\xa6\x76\xa1\x59\xcd\x76\xa7\x76\xa4\x00\x00\x00\x00\x59\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x58\x00\x00\x00\x00\x7a\x45\x7a\x58\x7a\x5d\x7a\x51\x5c\x54\x7a\x62\x5c\x51\x7a\x43\x00\x00\x7a\x44\x5c\x4a\x5c\x53\x7a\x4b\x5c\x56\x5c\x57\x7a\x4c\x00\x00\x7a\x59\x7a\x5f\x5c\x52\x00\x00\x5c\x4c\x7a\x4a\x7a\x46\x7a\x61\x7a\x4f\x7a\x50\x7a\x47\x7a\x5b\x7a\x52\x7a\x5c\x7a\x54\x00\x00\x5c\x4d\x7d\xc1\x5c\x50\x5c\x4e\x7a\x60\x7a\x57\x7a\x53\x00\x00\x00\x00\x7a\x48\x5e\x9b\x7a\x56\x5c\x55\x7a\x4e\x00\x00\x7a\x4d\x00\x00\x00\x00\x00\x00\x5c\x4f\x5c\x4b\x7d\xd6\x7a\x5a\x7a\x55\x00\x00\x7a\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xd1\x00\x00\x7d\xc2\x7d\xcd\x00\x00\x7d\xd4\x5e\x99\x59\xd0\x7d\xd2\x5e\x94\x00\x00\x00\x00\x00\x00\x5e\x93\x7d\xd9\x00\x00\x7d\xc3\x7d\xd0\x7d\xc4\x7d\xcf\x5e\x97\x7d\xd3\x76\xa8\x00\x00\x00\x00\x00\x00\x7d\xda\x7d\xcb\x5e\x9a\x80\xe2\x60\x97\x00\x00\x7d\xd8\x7d\xd7\x5e\x9c\x80\xd5\x60\x98\x80\xd6\x00\x00\x7d\xc7\x7d\xc8\x7d\xc5\x7d\xca\x7d\xc6\x7d\xdb\x5e\x96\x60\x99\x5e\x98\x5e\x9d\x00\x00\x7d\xc9\x00\x00\x7d\xd5", /* 6480 */ "\x00\x00\x00\x00\x7d\xce\x00\x00\x00\x00\x80\xd9\x00\x00\x5e\x92\x60\x9c\x84\x55\x80\xde\x80\xdd\x80\xdf\x00\x00\x00\x00\x80\xdc\x60\x9d\x68\xcb\x60\xa3\x60\xa0\x00\x00\x60\xa1\x80\xd7\x80\xda\x80\xe4\x60\xa9\x60\xa7\x00\x00\x80\xdb\x76\xa0\x60\x9a\x80\xe1\x80\xd8\x00\x00\x60\xaa\x80\xe0\x5e\x95\x60\x9f\x7d\xcc\x00\x00\x00\x00\x60\xa2\x00\x00\x60\xa6\x60\xa8\x60\xa5\x60\xa4\x00\x00\x60\x9e\x80\xe3\x60\x9b\x60\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x82\x62\x83\x84\x54\x62\x8c\x62\x89\x00\x00\x62\x7f\x62\x87\x84\x56\x62\x85\x62\x7e\x00\x00\x62\x86\x00\x00\x84\x53\x63\xe3\x62\x81\x00\x00\x62\x88\x63\xe2\x84\x52\x84\x51\x00\x00\x62\x8a\x00\x00\x62\x8b\x00\x00\x84\x50\x84\x4f\x63\xe4\x84\x59\x62\x84\x84\x57\x00\x00\x00\x00\x00\x00\x00\x00\x63\xe5\x00\x00\x63\xea\x86\xf5\x86\xf7\x00\x00\x63\xe7\x00\x00\x86\xf8\x86\xf4\x00\x00\x86\xf6\x63\xe8\x63\xeb\x00\x00\x86\xf3\x63\xe6\x63\xe9\x65\x64\x84\x58\x65\x63\x00\x00\x00\x00\x65\x69\x89\x82\x00\x00\x65\x67\x65\x68\x89\x85\x89\x81\x65\x65\x89\x7e", /* 6500 */ "\x66\x57\x89\x83\x00\x00\x89\x84\x89\x7f\x00\x00\x65\x66\x8b\x70\x00\x00\x8b\x73\x00\x00\x00\x00\x8b\x74\x8b\x72\x8b\x75\x66\x58\x8b\x71\x00\x00\x00\x00\x8c\xfb\x66\xee\x8c\xfa\x8c\xf9\x8c\xf8\x66\xed\x66\xef\x00\x00\x8e\x7c\x67\x8e\x67\x8d\x00\x00\x00\x00\x8f\x71\x8f\x70\x8f\x73\x68\x57\x67\xe0\x90\x4e\x8f\x72\x00\x00\x00\x00\x90\x4d\x68\x59\x68\x58\x68\x7f\x90\xb8\x91\x41\x4c\xc4\x00\x00\x00\x00\x76\xb8\x84\x5a\x48\x82\x00\x00\x4e\x4d\x6a\xb8\x4f\x73\x4f\x71\x00\x00\x4f\x72\x00\x00\x6c\x43\x50\xf2\x52\xc8\x00\x00\x6d\xe8\x00\x00\x6d\xe9\x00\x00\x52\xc9\x70\x71\x00\x00\x54\xe6\x54\xe7\x70\x70\x00\x00\x00\x00\x00\x00\x00\x00\x57\x98\x00\x00\x57\x94\x00\x00\x73\x8b\x57\x9b\x57\x9a\x57\x93\x57\x96\x57\x99\x57\x95\x00\x00\x00\x00\x76\xbc\x57\x92\x59\xd3\x00\x00\x00\x00\x00\x00\x59\xd5\x59\xd6\x76\xbb\x76\xbe\x59\xd4\x76\xb9\x76\xbd\x00\x00\x76\xba\x00\x00\x5c\x59\x00\x00\x00\x00\x7a\x63\x00\x00\x00\x00\x5e\x9e\x7d\xdc\x62\x8d\x60\xac\x80\xe5\x60\xad\x60\xae\x80\xe7\x80\xe6\x80\xe8\x84\x5c\x00\x00\x00\x00\x84\x5b", /* 6580 */ "\x86\xfa\x86\xf9\x63\xec\x63\xed\x8b\x76\x00\x00\x00\x00\x4c\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x76\xbf\x00\x00\x00\x00\x00\x00\x59\xd8\x59\xd7\x7a\x64\x00\x00\x89\x86\x67\x8f\x90\x4f\x4c\xc6\x00\x00\x54\xe8\x00\x00\x57\x9d\x57\x9c\x76\xc0\x76\xc1\x5c\x5a\x7d\xdd\x5e\x9f\x84\x5d\x00\x00\x4c\xc7\x4d\x78\x00\x00\x50\xf3\x6c\x44\x00\x00\x6d\xea\x52\xca\x57\x9e\x00\x00\x76\xc2\x59\xd9\x5c\x5b\x00\x00\x80\xe9\x80\xea\x00\x00\x00\x00\x86\xfb\x65\x6a\x91\x42\x4c\xc8\x00\x00\x6c\x45\x50\xf4\x52\xcb\x00\x00\x6d\xeb\x00\x00\x54\xe9\x70\x75\x70\x73\x70\x74\x54\xea\x70\x72\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa0\x57\xa1\x73\x8c\x57\xa2\x57\x9f\x76\xc3\x00\x00\x76\xc4\x7a\x65\x00\x00\x00\x00\x5e\xa1\x5e\xa0\x00\x00\x00\x00\x86\xfc\x89\x87\x00\x00\x8b\x78\x8b\x77\x8c\xfc\x48\x87\x69\x5f\x52\xcc\x00\x00\x00\x00\x4c\xc9\x4d\x79\x00\x00\x4e\x4f\x4e\x4e\x00\x00\x00\x00\x4e\x50\x4e\x51\x69\xce\x69\xcd\x6a\xb9\x4f\x74\x6a\xbc\x6a\xbb\x6a\xba\x6a\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x50\xf5\x6c\x4b\x6c\x47\x6c\x50\x00\x00\x00\x00", /* 6600 */ "\x50\xfc\x00\x00\x50\xfa\x6c\x4c\x6c\x48\x6c\x4f\x50\xf9\x51\x43\x6c\x4a\x6c\x46\x51\x42\x6c\x4d\x50\xf8\x6c\x4e\x50\xfb\x50\xfd\x6c\x52\x6c\x51\x6c\x49\x50\xf7\x50\xf6\x51\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xf0\x6d\xf6\x00\x00\x52\xd2\x52\xcf\x6d\xed\x6d\xf2\x00\x00\x52\xd5\x52\xcd\x6d\xf1\x52\xd0\x52\xd3\x00\x00\x00\x00\x6d\xf4\x00\x00\x52\xce\x6d\xf9\x52\xd1\x00\x00\x52\xd4\x6d\xee\x6d\xf3\x6d\xf7\x6d\xef\x6d\xec\x00\x00\x00\x00\x6d\xf8\x6d\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xf2\x54\xeb\x54\xee\x00\x00\x54\xf1\x00\x00\x70\x78\x00\x00\x54\xec\x70\x76\x00\x00\x54\xf0\x00\x00\x00\x00\x54\xed\x00\x00\x70\x79\x54\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x90\x57\xa4\x73\x8f\x73\x91\x57\xa3\x57\xa8\x70\x77\x00\x00\x73\x8e\x73\x92\x00\x00\x57\xa5\x73\x8d\x57\xa7\x00\x00\x57\xa6\x00\x00\x76\xcb\x00\x00\x76\xc6\x00\x00\x59\xda\x59\xde\x59\xdb\x76\xc9\x76\xcc\x00\x00\x59\xdc\x00\x00\x59\xdd\x59\xe2\x7a\x6e\x76\xca\x59\xe0\x76\xc7\x76\xc5\x00\x00\x59\xe1\x00\x00", /* 6680 */ "\x76\xc8\x00\x00\x00\x00\x00\x00\x5c\x61\x00\x00\x7a\x66\x5c\x5e\x5c\x5f\x5c\x5d\x7a\x6b\x7a\x6a\x7a\x67\x5c\x63\x00\x00\x00\x00\x7a\x69\x59\xdf\x00\x00\x00\x00\x7a\x6d\x7a\x68\x5c\x60\x5c\x5c\x5c\x62\x7a\x6c\x00\x00\x00\x00\x00\x00\x5e\xa4\x00\x00\x7d\xe0\x7d\xdf\x7d\xde\x5e\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa3\x80\xed\x80\xf0\x60\xb0\x00\x00\x00\x00\x60\xaf\x80\xf1\x80\xec\x60\xb2\x80\xee\x00\x00\x60\xb1\x80\xeb\x00\x00\x80\xef\x62\x93\x62\x90\x84\x66\x84\x65\x00\x00\x84\x64\x84\x5f\x00\x00\x84\x60\x00\x00\x00\x00\x00\x00\x62\x91\x00\x00\x62\x8e\x62\x92\x84\x5e\x62\x8f\x84\x61\x84\x62\x84\x67\x00\x00\x00\x00\x84\x63\x00\x00\x00\x00\x86\xfd\x00\x00\x00\x00\x00\x00\x63\xef\x00\x00\x89\x8a\x63\xee\x89\x88\x89\x89\x65\x6b\x66\x5a\x8b\x79\x00\x00\x66\x59\x00\x00\x00\x00\x8d\x41\x8d\x42\x00\x00\x66\xf0\x00\x00\x8c\xfd\x67\x90\x00\x00\x90\x50\x68\x5a\x90\xb9\x90\xba\x00\x00\x4c\xca\x00\x00\x4e\x52\x4e\x53\x4f\x75\x00\x00\x6c\x53\x52\xd6\x54\xf3\x57\xa9\x00\x00\x00\x00\x56\xb6\x00\x00\x59\xe3\x59\xe4", /* 6700 */ "\x59\x52\x76\xcd\x00\x00\x5c\x64\x7d\xe2\x7d\xe1\x00\x00\x00\x00\x4c\xcb\x4e\x54\x6c\x54\x51\x45\x00\x00\x51\x44\x00\x00\x6d\xfa\x6d\xfb\x00\x00\x70\x7a\x70\x7b\x54\xf4\x54\xf5\x00\x00\x54\xf6\x73\x93\x00\x00\x00\x00\x57\xab\x00\x00\x59\xe6\x00\x00\x59\xe5\x7a\x6f\x7b\xc2\x7d\xe3\x84\x68\x00\x00\x00\x00\x65\x6c\x66\xf1\x4c\xcc\x00\x00\x4d\x7c\x4d\x7d\x4d\x7b\x4d\x7e\x4d\x7a\x00\x00\x00\x00\x4e\x57\x00\x00\x69\xd6\x4e\x56\x4e\x58\x00\x00\x00\x00\x69\xd1\x69\xd0\x69\xd3\x69\xd2\x69\xd5\x4e\x55\x69\xcf\x69\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbe\x4f\x7f\x6a\xbf\x6a\xc3\x4f\x7e\x00\x00\x6a\xc7\x6a\xc2\x6a\xc5\x4f\x77\x4f\x78\x4f\x79\x4f\x7a\x00\x00\x4f\x82\x00\x00\x6a\xc1\x4f\x7c\x4f\x83\x00\x00\x6a\xc0\x6a\xc6\x00\x00\x4f\x7b\x6a\xc4\x4f\x7d\x4f\x76\x4f\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5a\x00\x00\x6c\x56\x51\x46\x00\x00\x51\x50\x51\x51\x51\x49\x51\x5b\x51\x4b\x6c\x5e\x51\x56\x6c\x59\x51\x4c\x6c\x68\x6c\x69\x6c\x61\x6c\x5a\x51\x59\x6c\x66\x51\x54\x51\x52", /* 6780 */ "\x00\x00\x6c\x67\x00\x00\x6c\x65\x6c\x5d\x6c\x55\x6c\x5c\x51\x4d\x00\x00\x51\x53\x00\x00\x51\x47\x6c\x60\x6c\x5f\x6c\x57\x00\x00\x51\x55\x6c\x63\x6c\x58\x51\x58\x6c\x6a\x51\x48\x00\x00\x51\x4f\x6c\x5b\x6c\x64\x51\x57\x00\x00\x51\x4a\x51\x4e\x00\x00\x6c\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x5e\x52\xde\x52\xeb\x00\x00\x6e\x59\x6e\x4f\x52\xe4\x6e\x4d\x52\xdd\x6e\x48\x52\xe7\x6e\x55\x6e\x42\x6e\x44\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x47\x6d\xfc\x6e\x54\x6e\x64\x52\xe2\x6e\x49\x6e\x5b\x00\x00\x6e\x41\x6e\x62\x6e\x63\x6e\x66\x6e\x5d\x6e\x4e\x6e\x56\x52\xe8\x52\xdb\x52\xe3\x52\xef\x52\xd8\x52\xda\x00\x00\x00\x00\x00\x00\x6e\x46\x52\xec\x52\xe5\x6e\x60\x6e\x43\x52\xee\x52\xe9\x6e\x4c\x00\x00\x00\x00\x52\xed\x6e\x53\x6e\x4b\x52\xe6\x6e\x5f\x6e\x57\x00\x00\x52\xe0\x6e\x65\x6e\x4a\x52\xdc\x6e\x5c\x6e\x52\x52\xe1\x6e\x58\x52\xd9\x6d\xfd\x52\xea\x55\x48\x52\xdf\x6e\x51\x6e\x50\x6e\x45\x00\x00\x6e\x61\x00\x00\x6e\x5a\x00\x00\x00\x00\x52\xd7", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x90\x55\x4f\x70\x91\x00\x00\x70\x85\x55\x44\x55\x50\x00\x00\x70\x7d\x00\x00\x70\x87\x70\x8f\x00\x00\x70\x7c\x70\x98\x54\xf7\x00\x00\x00\x00\x00\x00\x70\x97\x70\x92\x00\x00\x70\x93\x55\x42\x55\x4d\x70\x89\x00\x00\x70\x8a\x70\x94\x70\x8b\x00\x00\x70\x86\x70\x7f\x70\x81\x70\x8e\x70\x88\x00\x00\x00\x00\x54\xf8\x54\xfc\x70\x96\x70\x82\x55\x4b\x55\x47\x00\x00\x00\x00\x55\x4a\x55\x51\x54\xfd\x55\x4c\x70\x8d\x55\x4e\x54\xfa\x00\x00\x54\xf9\x70\x7e\x00\x00\x70\x83\x55\x45\x70\x95\x70\x8c\x70\x84\x55\x49\x55\x46\x00\x00\x54\xfb\x55\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\xa8\x00\x00\x73\x98\x73\x99\x73\x9d\x00\x00\x73\xac\x73\xa9\x00\x00\x73\xa2\x73\xa1\x57\xb2\x73\xa5\x73\xb4\x73\x94\x00\x00\x73\xb5\x73\xa7\x73\xb9\x73\xad\x57\xb1", /* 6880 */ "\x73\xab\x57\xac\x57\xc1\x57\xb7\x00\x00\x57\xbb\x57\xba\x73\x95\x00\x00\x73\xb2\x73\xb8\x73\xb0\x73\xb7\x00\x00\x00\x00\x73\xa4\x73\x96\x73\xb6\x73\xa6\x57\xaf\x57\xbc\x00\x00\x73\xaf\x57\xb5\x00\x00\x00\x00\x00\x00\x73\xae\x73\x97\x57\xbd\x00\x00\x57\xbf\x73\xb1\x57\xc0\x57\xae\x73\x9e\x73\xb3\x00\x00\x00\x00\x57\xb4\x57\xbe\x73\xa0\x73\xaa\x73\x9b\x73\x9f\x57\xb9\x73\x9a\x57\xad\x57\xb6\x57\xb3\x73\xa3\x55\x43\x76\xe4\x57\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb8\x00\x00\x76\xe7\x76\xfd\x76\xf2\x59\xfa\x00\x00\x59\xf5\x76\xe1\x59\xf6\x76\xf1\x00\x00\x76\xea\x76\xf7\x59\xf2\x76\xcf\x76\xf9\x59\xe8\x76\xd7\x59\xeb\x59\xea\x00\x00\x59\xfb\x00\x00\x76\xd1\x76\xf3\x76\xf4\x59\xed\x59\xe9\x76\xdf\x00\x00\x59\xf4\x76\xda\x00\x00\x76\xf5\x59\xf0\x76\xed\x76\xfa\x76\xd4\x76\xd9\x76\xd3\x00\x00\x59\xef\x76\xe6\x7a\x86\x76\xd5\x59\xf3\x76\xde\x76\xf6\x59\xee\x76\xdb\x76\xd8\x76\xe9\x59\xf1\x59\xe7\x59\xfd\x76\xec\x76\xeb\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x76\xd0\x59\xec\x76\xf8\x76\xe0\x76\xe2\x00\x00\x76\xef\x76\xee\x76\xce\x59\xf7\x59\xf9\x76\xd6\x76\xdd\x76\xe5\x59\xf8\x76\xdc\x76\xe8\x76\xfb\x00\x00\x76\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x76\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x9a\x5c\x6c\x00\x00\x7a\x98\x7a\x83\x7a\x88\x7a\x81\x00\x00\x7a\x94\x7a\x72\x7a\x79\x00\x00\x7a\x92\x7a\x9c\x7a\x84\x00\x00\x7a\x76\x7a\x8a\x7a\x8f\x7a\x7a\x00\x00\x7a\x8c\x7a\x77\x00\x00\x00\x00\x7a\x7e\x7a\x7f\x5c\x6e\x7a\x93\x7a\x91\x00\x00\x7a\x73\x7a\x96\x00\x00\x7a\x97\x7a\x99\x5c\x72\x5c\x6a\x00\x00\x73\x9c\x7a\x7b\x7a\x8e\x7a\x7c\x5c\x67\x5c\x77\x7a\x95\x5c\x75\x5c\x71\x7a\x71\x5c\x69\x00\x00\x7a\x74\x5c\x76\x00\x00\x7a\x85\x7a\x70\x00\x00\x5c\x6f\x7a\x89\x7a\x78\x5c\x70\x7a\x82\x5c\x66\x59\xfc\x7a\x8b\x76\xe3\x7a\x75\x00\x00\x00\x00\x7a\x90\x5c\x6b\x7a\x8d\x5c\x68\x7a\x87\x5c\x73\x7a\x7d\x7a\x9b\x00\x00\x00\x00\x00\x00\x00\x00", /* 6980 */ "\x00\x00\x00\x00\x5c\x6d\x7b\x4e\x00\x00\x00\x00\x5c\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xf1\x7d\xef\x00\x00\x7e\x48\x7d\xed\x00\x00\x7e\x42\x5c\x65\x5e\xa7\x7d\xe9\x7e\x47\x00\x00\x7d\xee\x7d\xfc\x5e\xac\x5e\xa5\x00\x00\x7e\x45\x00\x00\x7d\xe7\x7e\x44\x00\x00\x5e\xb7\x7d\xf8\x7e\x4b\x5e\xb5\x7d\xf0\x5e\xa6\x7d\xf2\x7e\x43\x5e\xaf\x7d\xeb\x5e\xb3\x5e\xa9\x7d\xf4\x7d\xea\x7d\xe4\x00\x00\x7e\x41\x5e\xb0\x7e\x4a\x7d\xe5\x5e\xad\x00\x00\x7d\xfa\x00\x00\x5e\xae\x7d\xec\x7d\xf7\x7d\xf3\x7d\xf5\x00\x00\x5e\xa8\x7e\x49\x5e\xb6\x7d\xf6\x00\x00\x7e\x4c\x00\x00\x00\x00\x7d\xe6\x7d\xfb\x5e\xab\x5e\xb4\x5e\xb2\x7d\xe8\x7d\xfd\x5e\xb1\x00\x00\x00\x00\x5e\xaa\x7d\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xfd\x00\x00\x80\xf9\x80\xf5\x81\x4c\x81\x49\x60\xb5\x00\x00\x00\x00\x81\x50\x80\xfc\x60\xc0\x81\x46\x00\x00\x00\x00\x80\xf8\x81\x45\x60\xbd\x81\x59\x00\x00\x81\x56\x81\x48\x80\xf6\x00\x00\x00\x00\x81\x4d\x81\x4f\x60\xb9\x81\x43\x80\xfb", /* 6a00 */ "\x80\xf2\x60\xb6\x60\xbe\x00\x00\x81\x52\x60\xbf\x80\xf3\x81\x58\x81\x4b\x81\x51\x60\xbc\x00\x00\x00\x00\x81\x4e\x00\x00\x81\x55\x00\x00\x60\xc1\x00\x00\x60\xbb\x81\x47\x80\xf7\x81\x5a\x80\xf4\x81\x53\x60\xb8\x00\x00\x81\x41\x00\x00\x81\x42\x60\xb7\x60\xb4\x80\xfa\x60\xba\x00\x00\x60\xb3\x00\x00\x81\x54\x81\x57\x81\x44\x84\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x6d\x00\x00\x84\x69\x62\xa0\x00\x00\x00\x00\x62\x95\x62\x9a\x62\x96\x84\x77\x84\x83\x62\x94\x84\x6f\x84\x78\x81\x4a\x84\x79\x00\x00\x00\x00\x62\x9b\x00\x00\x84\x89\x62\x9f\x62\xa2\x84\x6b\x00\x00\x62\x9e\x00\x00\x84\x87\x84\x88\x84\x7d\x84\x7c\x84\x74\x00\x00\x00\x00\x84\x7e\x84\x86\x84\x85\x00\x00\x62\x99\x62\x97\x84\x76\x84\x73\x00\x00\x84\x70\x84\x84\x62\xa1\x84\x82\x62\x9d\x62\x9c\x00\x00\x84\x7b\x00\x00\x84\x6a\x84\x6c\x84\x6e\x84\x81\x84\x7a\x62\x98\x00\x00\x84\x71\x00\x00\x84\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf7\x87\x52", /* 6a80 */ "\x63\xf0\x87\x43\x00\x00\x87\x4e\x63\xf2\x87\x55\x00\x00\x87\x4a\x00\x00\x87\x45\x00\x00\x00\x00\x87\x56\x87\x41\x87\x4c\x00\x00\x63\xf9\x87\x51\x87\x57\x87\x4b\x63\xf1\x87\x4d\x87\x42\x63\xf8\x00\x00\x00\x00\x87\x54\x87\x47\x63\xf4\x00\x00\x87\x49\x87\x46\x63\xfa\x87\x48\x63\xf3\x63\xf6\x87\x50\x87\x44\x87\x53\x00\x00\x87\x4f\x00\x00\x00\x00\x00\x00\x65\x6e\x89\x95\x65\x73\x65\x74\x00\x00\x00\x00\x00\x00\x65\x6d\x89\x94\x00\x00\x89\x91\x89\x92\x65\x71\x89\x8c\x89\x90\x65\x70\x00\x00\x89\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x65\x72\x65\x6f\x00\x00\x89\x8b\x89\x8f\x89\x93\x00\x00\x00\x00\x00\x00\x8b\x7f\x8b\x7c\x8b\x86\x00\x00\x8b\x85\x8b\x83\x8b\x7d\x00\x00\x66\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x7e\x66\x5d\x63\xf5\x8b\x82\x66\x5c\x8b\x87\x8b\x81\x8b\x7b\x89\x8e\x00\x00\x00\x00\x00\x00\x66\x5b\x00\x00\x8b\x7a\x8d\x46\x00\x00\x8d\x45\x8b\x84\x66\xf2\x00\x00\x8d\x49\x8d\x4a\x8d\x44\x8d\x48\x00\x00\x8d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x81\x8d\x47\x67\x93\x67\x91\x8e\x7e\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x8e\x82\x00\x00\x8e\x7d\x8e\x7f\x67\x92\x00\x00\x00\x00\x00\x00\x8f\x75\x8f\x76\x67\xe1\x8f\x74\x00\x00\x00\x00\x00\x00\x90\x53\x68\x5b\x90\x51\x90\x52\x90\xbb\x00\x00\x00\x00\x68\xa2\x91\x45\x91\x43\x91\x44\x91\x46\x00\x00\x00\x00\x00\x00\x91\xab\x00\x00\x4c\xcd\x4e\x59\x00\x00\x51\x5c\x00\x00\x6c\x6b\x00\x00\x00\x00\x6e\x67\x00\x00\x00\x00\x00\x00\x70\x99\x70\x9b\x00\x00\x70\x9a\x00\x00\x70\x9c\x57\xc2\x73\xbb\x70\x9d\x00\x00\x73\xba\x73\xbc\x73\xbd\x77\x41\x5a\x42\x77\x42\x77\x44\x5a\x43\x5a\x41\x77\x43\x00\x00\x7a\xa2\x7a\xa0\x7a\x9f\x00\x00\x7a\x9e\x7a\x9d\x5c\x78\x7a\xa1\x5e\xb8\x7e\x4d\x7e\x4f\x5e\xb9\x7e\x4e\x60\xc3\x00\x00\x60\xc2\x81\x5b\x00\x00\x00\x00\x84\x8b\x84\x8a\x84\x8c\x00\x00\x00\x00\x62\xa3\x00\x00\x87\x58\x63\xfb\x00\x00\x89\x96\x65\x75\x8b\x88\x67\xe2\x4c\xce\x4d\x7f\x4e\x5a\x4f\x84\x51\x5d\x51\x5e\x00\x00\x00\x00\x52\xf0\x00\x00\x00\x00\x70\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x79\x00\x00\x00\x00\x00\x00\x81\xda\x62\xa4\x65\x76\x4c\xcf\x00\x00\x4e\x5b\x00\x00\x00\x00\x6c\x6d\x51\x5f", /* 6b80 */ "\x6c\x6c\x00\x00\x6e\x68\x52\xf1\x6e\x69\x00\x00\x52\xf2\x00\x00\x70\xa0\x55\x53\x55\x52\x00\x00\x73\xc2\x73\xc0\x73\xc1\x73\xbf\x00\x00\x73\xbe\x00\x00\x00\x00\x77\x45\x77\x48\x5a\x45\x77\x46\x5a\x44\x77\x47\x00\x00\x7a\xa3\x00\x00\x00\x00\x7e\x50\x7e\x51\x7e\x52\x00\x00\x81\x5e\x81\x5d\x60\xc4\x81\x5c\x81\x5f\x84\x8d\x00\x00\x00\x00\x84\x8e\x84\x8f\x00\x00\x87\x59\x63\xfc\x65\x77\x8b\x89\x00\x00\x67\x94\x69\x60\x00\x00\x52\xf3\x6e\x6a\x55\x54\x00\x00\x00\x00\x57\xc3\x00\x00\x5a\x46\x77\x49\x00\x00\x5c\x7b\x5c\x7a\x00\x00\x00\x00\x7e\x53\x7e\x54\x60\xc5\x60\xc6\x84\x91\x84\x90\x89\x97\x90\x54\x4c\xd0\x69\x61\x4d\x81\x00\x00\x4f\x85\x6a\xc8\x00\x00\x52\xf4\x5c\x7c\x4c\xd1\x00\x00\x6e\x6b\x52\xf5\x6e\x6c\x00\x00\x63\xfd\x4c\xd2\x00\x00\x00\x00\x6c\x6e\x00\x00\x6e\x6d\x00\x00\x70\xa5\x70\xa4\x70\xa2\x00\x00\x70\xa1\x70\xa6\x70\xa3\x00\x00\x00\x00\x57\xc4\x57\xc5\x00\x00\x00\x00\x5a\x47\x77\x4a\x00\x00\x77\x4b\x77\x4c\x00\x00\x00\x00\x00\x00\x7a\xa8\x7a\xa9\x7a\xa7\x00\x00\x7a\xa5\x7a\xa6\x5c\x7d\x7e\x55\x81\x62", /* 6c00 */ "\x81\x61\x81\x60\x81\x63\x84\x93\x84\x92\x62\xa5\x84\x94\x00\x00\x64\x41\x87\x5a\x00\x00\x89\x98\x8b\x8a\x8f\x77\x00\x00\x4c\xd3\x4d\x83\x4d\x82\x00\x00\x51\x60\x69\x62\x69\x7f\x4e\x5c\x00\x00\x69\xd7\x6a\xc9\x6a\xca\x51\x61\x00\x00\x6c\x6f\x00\x00\x52\xf6\x6e\x6e\x6e\x6f\x00\x00\x55\x55\x55\x59\x70\xa7\x55\x58\x55\x56\x55\x57\x00\x00\x73\xc3\x57\xc6\x5a\x4a\x00\x00\x5a\x48\x5a\x49\x77\x4d\x00\x00\x00\x00\x5e\xba\x4c\xd4\x00\x00\x69\x81\x00\x00\x4d\x84\x00\x00\x00\x00\x69\x84\x00\x00\x00\x00\x4d\x87\x69\x83\x4d\x86\x4d\x85\x4f\x86\x69\x82\x00\x00\x00\x00\x69\xd8\x00\x00\x00\x00\x00\x00\x69\xdc\x69\xde\x69\xdf\x4e\x66\x4e\x67\x69\xdb\x4e\x62\x00\x00\x69\xd9\x00\x00\x69\xdd\x4e\x63\x00\x00\x4e\x5e\x00\x00\x4e\x5f\x00\x00\x4e\x65\x69\xda\x4e\x5d\x4f\x87\x4e\x60\x4e\x61\x4e\x64\x00\x00\x00\x00\x00\x00\x6a\xdb\x6a\xd9\x6a\xcc\x4f\x93\x6a\xd3\x4f\x8e\x6a\xcd\x00\x00\x6a\xd5\x00\x00\x6a\xd2\x4f\x91\x6a\xd1\x4f\x98\x6a\xda\x4f\x9a\x00\x00\x4f\x9c\x00\x00\x6a\xcb\x00\x00\x4f\x8f\x6a\xdc\x00\x00\x4f\x96\x4f\x99\x00\x00", /* 6c80 */ "\x6c\x87\x4f\x89\x4f\xa0\x4f\x97\x6a\xce\x4f\x8c\x4f\x9b\x6a\xd6\x4f\x8a\x4f\x8b\x6c\x85\x6a\xcf\x4f\x92\x4f\x9d\x6a\xdd\x6a\xd0\x4f\x90\x00\x00\x4f\x95\x6c\x70\x4f\x9e\x6a\xd7\x4f\x94\x00\x00\x4f\x9f\x4f\x88\x6a\xd4\x4f\x8d\x6a\xd8\x6c\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6d\x51\x7d\x6c\x77\x51\x74\x00\x00\x6c\x8d\x51\x65\x00\x00\x51\x68\x6c\x84\x00\x00\x6c\x75\x6c\x79\x51\x70\x51\x72\x6c\x7c\x51\x79\x51\x6b\x51\x69\x51\x6a\x51\x78\x6c\x89\x51\x73\x6c\x7b\x6c\x7d\x51\x71\x51\x76\x6c\x7e\x6c\x8c\x00\x00\x52\xf7\x51\x7c\x00\x00\x51\x66\x6c\x8b\x00\x00\x6c\x8f\x6c\x7a\x6c\x91\x6c\x82\x51\x6f\x6c\x76\x51\x6e\x51\x81\x51\x75\x00\x00\x6c\x74\x6e\x78\x51\x7b\x51\x7f\x6c\x83\x6c\x88\x00\x00\x51\x82\x51\x7a\x51\x6c\x51\x62\x00\x00\x51\x67\x00\x00\x6c\x78\x51\x63\x6c\x90\x00\x00\x6c\x72\x6c\x71\x6c\x7f\x6c\x73\x51\x7e\x55\x5a\x51\x77\x6c\x81\x51\x64\x00\x00\x53\x49\x00\x00\x00\x00\x00\x00\x6c\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x6e\x7f\x6e\x83\x00\x00\x6e\x86\x6e\x7a\x00\x00\x00\x00\x6e\x89\x6e\x8c\x6e\x8e\x6e\x77\x52\xf8\x52\xfd\x70\xac\x53\x50\x6e\x87\x6e\x8f\x6e\x7e\x6e\x76\x00\x00\x00\x00\x00\x00\x70\xc7\x53\x43\x6e\x84\x6e\x7b\x6e\x7d\x53\x48\x00\x00\x6e\x81\x53\x42\x6e\x73\x6e\x8a\x00\x00\x6e\x8d\x00\x00\x00\x00\x52\xfc\x00\x00\x53\x4b\x6e\x70\x53\x4d\x52\xfa\x53\x51\x6e\x8b\x6e\x72\x53\x4e\x70\xc1\x6c\x8a\x53\x41\x52\xf9\x6e\x79\x6e\x71\x53\x4f\x53\x47\x6e\x85\x53\x4c\x53\x4a\x6e\x7c\x53\x44\x6e\x74\x53\x45\x53\x46\x6e\x75\x6e\x88\x52\xfb\x6e\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xaf\x55\x62\x55\x67\x00\x00\x00\x00\x00\x00\x70\xb8\x70\xbe\x70\xba\x70\xad\x70\xb0\x70\xa9\x70\xaa\x55\x6e\x55\x5f\x70\xb9\x70\xc2\x55\x69\x55\x5b\x00\x00\x55\x64\x70\xb1\x55\x66\x70\xb2\x70\xbc\x00\x00\x00\x00\x00\x00\x55\x68\x70\xcb\x70\xab\x55\x61\x55\x60\x55\x6c\x70\xa8\x70\xc9\x70\xbd\x70\xca\x70\xc4\x70\xb6", /* 6d80 */ "\x70\xc5\x00\x00\x70\xbf\x70\xc8\x70\xc6\x55\x6d\x70\xb7\x55\x5e\x55\x5d\x55\x65\x55\x6b\x70\xc3\x55\x6a\x70\xb4\x57\xc7\x00\x00\x70\xcc\x70\xb3\x70\xae\x55\x63\x55\x6f\x55\x5c\x00\x00\x70\xbb\x70\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe9\x73\xc5\x73\xc9\x00\x00\x57\xd6\x57\xd4\x00\x00\x00\x00\x57\xcb\x73\xc7\x73\xc6\x57\xdf\x00\x00\x73\xcc\x57\xd9\x00\x00\x73\xde\x73\xea\x57\xc8\x73\xdb\x73\xd4\x57\xeb\x73\xc4\x00\x00\x73\xe0\x00\x00\x57\xe8\x57\xdc\x57\xe7\x57\xd2\x73\xd0\x73\xe2\x73\xda\x57\xd3\x57\xcd\x73\xe8\x00\x00\x73\xe1\x73\xe3\x57\xd5\x57\xdd\x73\xe5\x73\xce\x73\xdf\x73\xd3\x73\xe7\x57\xe2\x57\xca\x57\xe0\x73\xd8\x73\xd6\x73\xd7\x57\xd7\x73\xd2\x73\xd1\x57\xcc\x73\xcb\x73\xe9\x57\xce\x73\xd5\x57\xec\x00\x00\x57\xe6\x73\xca\x57\xe3\x57\xe1\x57\xea\x73\xdc\x57\xe5\x70\xb5\x73\xdd\x57\xe4\x73\xe4\x57\xc9\x73\xd9\x57\xdb\x73\xcd\x57\xda\x00\x00\x57\xd8\x57\xd0\x57\xcf\x77\x4e\x73\xe6\x00\x00\x00\x00", /* 6e00 */ "\x73\xcf\x00\x00\x00\x00\x77\x63\x00\x00\x57\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x67\x57\xde\x5a\x55\x77\x5d\x5a\x63\x00\x00\x77\x51\x5a\x52\x5a\x4e\x77\x6f\x5a\x54\x5a\x58\x5a\x53\x5a\x5c\x77\x73\x77\x6a\x00\x00\x00\x00\x77\x58\x5a\x61\x5a\x5b\x77\x64\x5a\x4b\x77\x70\x77\x69\x5a\x4f\x77\x5e\x5a\x5e\x77\x7b\x77\x7c\x00\x00\x5a\x4c\x77\x6e\x5a\x60\x77\x62\x77\x54\x77\x55\x5a\x64\x77\x59\x77\x60\x77\x5a\x00\x00\x5a\x62\x5a\x6a\x77\x56\x77\x4f\x77\x50\x00\x00\x77\x52\x5a\x51\x77\x5f\x00\x00\x5a\x5f\x5a\x68\x00\x00\x00\x00\x77\x61\x77\x79\x77\x71\x5a\x4d\x77\x77\x5a\x59\x00\x00\x5a\x57\x00\x00\x77\x7d\x5a\x56\x77\x67\x77\x5b\x77\x65\x5a\x6d\x77\x6b\x77\x68\x77\x57\x5a\x69\x77\x75\x77\x72\x77\x7a\x5a\x50\x77\x66\x5a\x6c\x00\x00\x77\x6d\x00\x00\x00\x00\x5a\x5a\x5a\x5d\x00\x00\x77\x6c\x5a\x6b\x77\x5c\x73\xc8\x00\x00\x00\x00\x77\x76\x77\x74\x77\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6e80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x53\x5a\x66\x00\x00\x00\x00\x00\x00\x7a\xc8\x7a\xc7\x7a\xad\x5c\x84\x00\x00\x7a\xc6\x7a\xb0\x7a\xb1\x00\x00\x5c\x8e\x7a\xcf\x5c\x89\x7a\xc5\x00\x00\x7a\xaa\x5c\x8f\x5c\x85\x7a\xb9\x7a\xaf\x7a\xb2\x7a\xca\x5c\x7e\x7a\xd1\x7a\xc9\x5c\x88\x7a\xbe\x5c\x93\x00\x00\x00\x00\x5c\x92\x5c\x8c\x00\x00\x00\x00\x7a\xd0\x5c\x7f\x7a\xbc\x7a\xb3\x7a\xc0\x7a\xcc\x5c\x94\x00\x00\x5c\x82\x7a\xbb\x91\xc7\x7a\xb4\x5c\x8b\x00\x00\x5c\x8a\x7a\xb7\x7a\xc1\x7a\xcb\x7a\xae\x7a\xb8\x5c\x83\x7a\xc2\x5c\x90\x5c\x87\x7a\xb5\x5c\x86\x7a\xac\x7a\xba\x7a\xce\x5a\x65\x5e\xd6\x7a\xbd\x7e\x56\x7a\xbf\x7a\xcd\x5c\x8d\x7a\xb6\x5c\x81\x5c\x91\x60\xd8\x7a\xab\x00\x00\x7a\xc4\x00\x00\x00\x00\x00\x00\x7a\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x72\x5e\xd3\x7e\x67\x7e\x6c\x5e\xc8\x00\x00\x7e\x58\x5e\xd5\x00\x00\x5e\xbf\x7e\x57\x7e\x78\x5e\xd7\x7e\x5b\x7e\x6b\x00\x00\x7e\x5d\x7e\x7b\x7e\x77\x5e\xbd\x5e\xc7", /* 6f00 */ "\x81\x7d\x5e\xd4\x5e\xc5\x7e\x59\x00\x00\x7e\x76\x5e\xc9\x7e\x73\x7e\x81\x7e\x5f\x7e\x68\x00\x00\x00\x00\x7e\x7e\x7e\x74\x5e\xc4\x00\x00\x00\x00\x7e\x66\x5e\xbe\x5e\xbc\x5e\xce\x00\x00\x00\x00\x7e\x64\x7e\x61\x7e\x62\x00\x00\x7e\x7a\x00\x00\x7e\x7f\x7e\x7d\x5e\xc2\x7e\x82\x5e\xc6\x5e\xcd\x00\x00\x7e\x5a\x81\x65\x7e\x63\x00\x00\x5e\xc0\x5e\xd2\x5e\xcf\x5e\xc3\x7e\x6d\x7e\x5e\x5e\xd0\x7e\x6f\x5e\xca\x5e\xcc\x5e\xbb\x00\x00\x7e\x71\x7e\x69\x7e\x5c\x5e\xcb\x7e\x79\x7e\x7c\x7e\x65\x7e\x70\x00\x00\x5e\xc1\x60\xc7\x7e\x6e\x81\x64\x00\x00\x7e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x60\x81\x6e\x81\x78\x60\xca\x81\x77\x81\x84\x60\xcc\x81\x75\x00\x00\x81\x79\x60\xd7\x00\x00\x81\x70\x60\xcf\x00\x00\x81\x7c\x84\x9c\x60\xdb\x60\xda\x81\x7e\x81\x6d\x81\x89\x60\xd5\x00\x00\x60\xcb\x81\x82\x00\x00\x81\x86\x81\x8b\x81\x7f\x81\x73\x60\xce\x60\xd1\x60\xd9\x60\xd4\x00\x00\x81\x76\x7e\x6a\x00\x00\x00\x00\x81\x72\x81\x8a\x60\xd0\x00\x00\x60\xd3\x81\x8c\x60\xc8\x81\x81\x81\x66\x81\x87", /* 6f80 */ "\x64\x4a\x00\x00\x81\x74\x00\x00\x60\xc9\x81\x6f\x60\xcd\x81\x67\x5e\xd1\x81\x6b\x00\x00\x81\x85\x81\x6c\x81\x6a\x60\xd2\x00\x00\x81\x83\x00\x00\x81\x69\x81\x7b\x81\x7a\x81\x88\x81\x71\x60\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x9f\x00\x00\x62\xb2\x62\xa8\x84\xab\x84\x97\x62\xaa\x84\xa3\x62\xb1\x62\xac\x84\xa1\x87\x5c\x84\xa7\x84\xad\x84\xa6\x84\x95\x84\xa4\x84\xaf\x84\xb1\x62\xa7\x84\xb0\x62\xad\x62\xb3\x00\x00\x62\xb0\x00\x00\x84\xaa\x62\xaf\x84\xa5\x00\x00\x84\x99\x84\x9e\x00\x00\x84\xa9\x62\xae\x62\xab\x62\xa6\x62\xa9\x84\x9d\x00\x00\x81\x68\x84\x98\x84\x9b\x84\xac\x84\xa0\x84\x96\x87\x5b\x84\xae\x84\x9a\x84\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x87\x5e\x64\x4e\x00\x00\x00\x00\x64\x42\x00\x00\x00\x00\x64\x46\x87\x60\x87\x66\x87\x64\x64\x44\x64\x45\x64\x4c\x87\x67\x87\x5f\x64\x47\x00\x00\x87\x63\x87\x62\x87\x68\x64\x4d\x00\x00\x64\x48\x64\x4b\x87\x61\x64\x4f\x64\x49\x64\x50\x64\x43\x87\x65\x00\x00\x87\x5d\x00\x00\x00\x00\x89\xa5\x00\x00\x00\x00\x65\x7c\x89\xa2\x89\xa4\x00\x00\x65\x7a\x89\xa0", /* 7000 */ "\x89\xa1\x89\x9c\x00\x00\x00\x00\x84\xa2\x89\x9d\x65\x7b\x89\x99\x00\x00\x65\x78\x89\xa6\x65\x79\x89\x9a\x89\x9b\x89\x9f\x65\x7e\x00\x00\x65\x7d\x00\x00\x00\x00\x89\x9e\x66\x64\x8b\x8e\x8b\x94\x66\x65\x8b\x8b\x66\x62\x66\x5f\x8b\x96\x66\x63\x00\x00\x66\x60\x8b\x8d\x8b\x90\x8b\x91\x8b\x92\x8b\x95\x00\x00\x89\xa3\x8b\x8c\x66\x61\x8b\x93\x8b\x97\x8b\x8f\x00\x00\x00\x00\x00\x00\x8d\x4d\x66\xf4\x8d\x50\x66\xf5\x8d\x58\x8d\x4f\x8d\x4c\x00\x00\x8d\x4e\x8d\x52\x8d\x55\x8d\x54\x8d\x57\x8d\x4b\x00\x00\x66\xf3\x8d\x53\x8d\x56\x8d\x59\x8d\x51\x8e\x83\x8e\x84\x8e\x88\x8e\x89\x00\x00\x8e\x86\x8e\x87\x8e\x85\x00\x00\x67\x95\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe3\x8f\x7b\x00\x00\x00\x00\x8f\x78\x8f\x79\x8f\x7a\x67\xe4\x00\x00\x90\x56\x90\x55\x00\x00\x90\xbe\x68\x81\x90\xbc\x90\xbf\x90\xbd\x91\x47\x68\xa3\x68\xb1\x91\x93\x91\x7d\x00\x00\x91\x92\x91\xc0\x91\xc1\x4c\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x68\x69\xe0\x00\x00\x00\x00\x6a\xde\x00\x00\x4f\xa1\x00\x00\x4f\xa4\x00\x00\x6a\xdf\x00\x00\x4f\xa2\x4f\xa3\x00\x00\x00\x00", /* 7080 */ "\x00\x00\x00\x00\x6c\x9a\x6c\x9c\x6c\x97\x6c\x94\x6c\x96\x00\x00\x00\x00\x00\x00\x51\x86\x00\x00\x00\x00\x00\x00\x51\x84\x00\x00\x00\x00\x6c\x98\x51\x85\x6c\x95\x6c\x92\x51\x83\x6c\x99\x00\x00\x6c\x93\x51\x87\x6c\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x91\x00\x00\x6e\x95\x00\x00\x00\x00\x53\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x98\x00\x00\x53\x52\x53\x55\x53\x57\x53\x59\x53\x56\x6e\x94\x6e\x93\x00\x00\x53\x54\x6e\x96\x6e\x97\x00\x00\x6e\x90\x53\x58\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x6e\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xda\x70\xdb\x70\xdc\x55\x74\x00\x00\x55\x70\x70\xd1\x00\x00\x70\xd9\x70\xde\x55\x75\x00\x00\x70\xcf\x70\xd5\x70\xce\x70\xd8\x00\x00\x00\x00\x70\xd4\x55\x71\x55\x73\x70\xdd\x00\x00\x70\xcd\x70\xd0\x70\xd6\x00\x00\x70\xd7\x70\xdf\x70\xd3\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf1\x73\xf1\x00\x00\x00\x00\x73\xf3\x73\xef\x00\x00\x73\xfb\x73\xed\x73\xfa\x57\xed\x73\xeb\x77\x82\x73\xf5\x57\xf0\x00\x00\x73\xf6", /* 7100 */ "\x73\xf9\x00\x00\x73\xfd\x00\x00\x73\xf2\x00\x00\x73\xf7\x00\x00\x00\x00\x57\xee\x57\xef\x73\xfc\x73\xf0\x73\xec\x74\x41\x00\x00\x73\xf4\x00\x00\x00\x00\x73\xf8\x00\x00\x00\x00\x00\x00\x73\xee\x00\x00\x5a\x6e\x5a\x6f\x77\x8c\x5a\x75\x00\x00\x77\x7f\x77\x89\x77\x7e\x5a\x72\x77\x87\x77\x85\x00\x00\x77\x86\x5a\x70\x00\x00\x77\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x83\x77\x81\x5a\x71\x77\x84\x77\x88\x00\x00\x00\x00\x00\x00\x5a\x73\x00\x00\x00\x00\x00\x00\x77\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xd7\x7a\xde\x7a\xe0\x7a\xe6\x00\x00\x5c\xa1\x7a\xd2\x00\x00\x5c\x99\x00\x00\x7a\xe1\x5c\x9e\x7a\xe7\x5c\x95\x00\x00\x7a\xe4\x00\x00\x7a\xd4\x7a\xe5\x7a\xd3\x00\x00\x5c\xa3\x00\x00\x7a\xdf\x5c\x96\x7a\xe8\x00\x00\x5c\x9b\x7a\xd8\x5c\xa0\x7a\xe3\x7a\xd6\x7a\xdd\x7a\xd9\x7a\xd5\x5c\x98\x5c\x9f\x5c\x9d\x5c\x9a\x5c\xa2\x5c\x97\x7a\xdc\x00\x00\x5c\x9c\x00\x00\x5a\x74\x00\x00\x7a\xe2\x00\x00\x7a\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xdb\x00\x00\x00\x00\x7e\x8a\x00\x00\x5e\xda\x00\x00\x00\x00", /* 7180 */ "\x7e\x86\x7e\x8c\x7e\x88\x00\x00\x5e\xdc\x7e\x87\x7e\x8b\x7e\x83\x00\x00\x7e\x85\x5e\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x89\x7e\x84\x00\x00\x5e\xdd\x00\x00\x5e\xd8\x00\x00\x00\x00\x7e\x8d\x00\x00\x5e\xd9\x81\x92\x81\x8f\x81\x9b\x81\x95\x81\x97\x60\xdc\x81\x91\x81\x99\x00\x00\x00\x00\x81\x98\x81\x96\x00\x00\x81\x9c\x60\xdf\x81\x93\x81\x9a\x00\x00\x60\xdd\x00\x00\x00\x00\x81\x8e\x81\x90\x60\xde\x81\x8d\x81\x9d\x00\x00\x81\x94\x00\x00\x00\x00\x84\xb5\x62\xba\x00\x00\x00\x00\x84\xc0\x84\xbe\x62\xb4\x84\xb4\x84\xb7\x84\xb8\x84\xb3\x62\xbe\x62\xbf\x84\xb2\x84\xc1\x84\xbc\x62\xb8\x62\xb5\x84\xbb\x84\xb9\x00\x00\x00\x00\x62\xbb\x84\xbd\x62\xb6\x00\x00\x62\xb7\x00\x00\x84\xba\x62\xb9\x84\xb6\x00\x00\x84\xbf\x62\xbc\x84\xc2\x84\xc3\x62\xbd\x00\x00\x00\x00\x64\x52\x64\x59\x87\x69\x87\x6f\x00\x00\x87\x6d\x64\x55\x64\x54\x64\x51\x87\x6b\x00\x00\x00\x00\x00\x00\x64\x57\x64\x56\x64\x53\x00\x00\x87\x6e\x87\x6a\x87\x6c\x00\x00\x64\x58\x00\x00\x00\x00\x00\x00\x65\x83\x89\xa9\x00\x00\x65\x7f\x65\x81\x89\xab\x65\x82\x89\xa8", /* 7200 */ "\x00\x00\x89\xa7\x8b\x9b\x89\xaa\x00\x00\x8b\x9c\x66\x66\x8b\x9a\x00\x00\x00\x00\x8b\x99\x00\x00\x8b\x98\x66\x67\x00\x00\x00\x00\x66\xf6\x00\x00\x00\x00\x8d\x5a\x8d\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x8c\x8e\x8b\x67\x96\x00\x00\x8e\x8a\x8f\x7c\x8f\x7d\x00\x00\x00\x00\x90\x57\x90\xc0\x00\x00\x00\x00\x91\x48\x91\xac\x68\xc5\x91\xb6\x4c\xd6\x00\x00\x51\x88\x51\x89\x00\x00\x00\x00\x53\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x64\x5a\x4c\xd7\x00\x00\x51\x8a\x55\x76\x5c\xa4\x4c\xd8\x00\x00\x57\xf2\x5e\xde\x69\x63\x00\x00\x6e\x99\x70\xe0\x00\x00\x7e\x8e\x00\x00\x64\x5b\x4c\xd9\x51\x8b\x6e\x9a\x6e\x9b\x77\x8d\x5a\x76\x00\x00\x00\x00\x7a\xe9\x00\x00\x00\x00\x5c\xa5\x7e\x8f\x00\x00\x00\x00\x60\xe0\x00\x00\x66\x68\x4c\xda\x77\x8e\x4c\xdb\x00\x00\x4e\x6a\x69\xe1\x4e\x69\x4f\xa7\x4f\xa6\x4f\xa5\x6a\xe0\x00\x00\x00\x00\x00\x00\x51\x8c\x00\x00\x51\x8d\x6c\x9d\x00\x00\x6e\x9c\x00\x00\x6e\x9f\x53\x5d\x6e\x9d\x00\x00\x53\x5c\x6e\x9e\x53\x5e\x00\x00\x70\xe3\x70\xe2\x70\xe1\x55\x77\x00\x00\x74\x43\x74\x44\x57\xf3\x74\x42\x74\x45", /* 7280 */ "\x5a\x78\x57\xf4\x00\x00\x00\x00\x5a\x77\x77\x92\x77\x91\x00\x00\x77\x8f\x77\x90\x00\x00\x77\x93\x7a\xeb\x7a\xea\x7a\xee\x00\x00\x7a\xed\x7a\xec\x5e\xdf\x7e\x92\x00\x00\x7e\x91\x5e\xe0\x7e\x90\x81\x9e\x00\x00\x81\x9f\x60\xe1\x00\x00\x84\xc4\x84\xc5\x00\x00\x00\x00\x8b\xa1\x66\x69\x8b\xa0\x8b\x9f\x8b\x9d\x8b\x9e\x67\x97\x8d\x5c\x8f\x7e\x91\x49\x00\x00\x4c\xdc\x00\x00\x69\x85\x4d\x88\x69\x86\x00\x00\x00\x00\x00\x00\x69\xe2\x69\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe6\x00\x00\x00\x00\x6a\xe2\x00\x00\x6a\xe1\x51\x8e\x6a\xe5\x4f\xa9\x6a\xe3\x4f\xa8\x6a\xe7\x6a\xe4\x00\x00\x00\x00\x6c\xa1\x6e\xa0\x6c\x9f\x6c\xa6\x00\x00\x51\x8f\x00\x00\x51\x92\x6c\xa7\x6c\xa3\x00\x00\x6c\xa4\x00\x00\x6c\x9e\x51\x91\x6c\xa0\x51\x90\x6c\xa5\x00\x00\x6c\xa2\x00\x00\x00\x00\x6e\xa4\x53\x60\x53\x61\x00\x00\x6e\xa7\x6e\xa1\x00\x00\x6e\xa6\x00\x00\x6e\xa2\x53\x5f\x6e\xa5\x6e\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xe9\x70\xe6\x00\x00\x70\xe8\x55\x7c\x55\x7b\x55\x79\x70\xe5\x70\xea\x55\x78\x55\x7a\x70\xe7\x74\x4d", /* 7300 */ "\x70\xe4\x70\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x48\x74\x4c\x00\x00\x74\x4b\x77\x95\x77\xa0\x00\x00\x00\x00\x74\x4e\x00\x00\x74\x49\x77\x94\x57\xf8\x00\x00\x00\x00\x57\xf7\x74\x47\x74\x4a\x57\xf9\x00\x00\x57\xf6\x57\xf5\x74\x46\x74\x4f\x00\x00\x00\x00\x00\x00\x77\x97\x77\x9e\x00\x00\x5a\x7a\x77\x9d\x77\x9a\x00\x00\x5a\x7c\x00\x00\x00\x00\x00\x00\x77\x9c\x00\x00\x00\x00\x77\x96\x77\x98\x77\x9b\x77\x99\x5a\x7b\x77\x9f\x5a\x79\x5c\xa6\x00\x00\x00\x00\x7a\xf2\x7a\xf1\x7a\xef\x00\x00\x5c\xa9\x5c\xa8\x7a\xf3\x00\x00\x7a\xf0\x7e\x93\x5e\xe1\x5c\xa7\x00\x00\x00\x00\x00\x00\x7a\xf5\x7a\xf4\x00\x00\x7e\x96\x7e\x94\x60\xe2\x00\x00\x5e\xe2\x7e\x95\x81\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe3\x81\xa0\x81\xa9\x81\xa8\x81\xa6\x00\x00\x81\xa5\x81\xa2\x81\xa3\x81\xa4\x81\xa7\x81\xaa\x00\x00\x00\x00\x84\xca\x84\xc7\x84\xc8\x62\xc0\x84\xc6\x84\xcc\x84\xcb\x84\xc9\x00\x00\x87\x71\x87\x72\x64\x5c\x00\x00\x64\x5d\x87\x70\x00\x00\x65\x85\x89\xac\x65\x84\x66\x6a\x00\x00\x66\x6b\x66\xf7\x8d\x5e\x8d\x5d\x8e\x8d\x8f\x7f", /* 7380 */ "\x67\xe5\x90\x59\x90\x58\x90\x5a\x4d\x89\x6e\xa8\x55\x7d\x57\xfa\x74\x50\x4d\x8a\x69\x87\x4c\xdd\x00\x00\x00\x00\x69\xe4\x00\x00\x00\x00\x00\x00\x6a\xec\x6a\xea\x6a\xeb\x6a\xe8\x4f\xaa\x6a\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xaf\x00\x00\x51\x95\x6c\xad\x6c\xa9\x6c\xac\x00\x00\x6c\xa8\x51\x97\x6c\xab\x00\x00\x51\x94\x51\x93\x00\x00\x51\x96\x6c\xae\x6c\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x53\x65\x53\x68\x6e\xb0\x6e\xaf\x6e\xae\x53\x62\x6e\xb7\x6e\xad\x00\x00\x53\x64\x70\xf0\x00\x00\x6e\xb4\x6e\xb2\x53\x67\x00\x00\x6e\xaa\x6e\xb5\x00\x00\x6e\xac\x6e\xb6\x6e\xb3\x6e\xab\x00\x00\x53\x63\x6e\xb8\x6e\xa9\x53\x66\x00\x00\x00\x00\x00\x00\x00\x00\x70\xf5\x70\xec\x70\xf7\x00\x00\x70\xef\x70\xfa\x70\xfb\x70\xed\x70\xf9\x70\xf6\x70\xf4\x70\xf8\x55\x84\x00\x00\x55\x82\x00\x00\x00\x00\x70\xf2\x00\x00\x70\xee\x00\x00\x70\xf1\x70\xfc\x70\xf3\x55\x83\x6e\xb1\x00\x00\x55\x7e\x55\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x5e\x74\x53\x74\x51\x00\x00\x74\x52\x00\x00\x74\x59\x00\x00\x74\x5a\x74\x56\x58\x42\x74\x5b", /* 7400 */ "\x74\x58\x74\x55\x00\x00\x57\xfd\x74\x54\x57\xfb\x58\x41\x74\x57\x74\x5f\x55\x7f\x57\xfc\x74\x5d\x74\x5c\x58\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xa5\x00\x00\x00\x00\x00\x00\x77\xa6\x5a\x87\x00\x00\x77\xac\x00\x00\x00\x00\x77\xae\x77\xa7\x5a\x81\x77\xab\x77\xaa\x5a\x82\x5a\x88\x00\x00\x5a\x89\x77\xad\x5a\x7e\x77\xa4\x77\xa2\x77\xa8\x77\xa1\x5a\x86\x77\xa3\x77\xa9\x77\xaf\x5a\x7f\x5a\x85\x5a\x83\x5a\x84\x00\x00\x00\x00\x00\x00\x5a\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb0\x7a\xfc\x5c\xaf\x7b\x43\x00\x00\x7a\xf6\x00\x00\x7b\x44\x00\x00\x00\x00\x00\x00\x7a\xf7\x7a\xf8\x00\x00\x7b\x45\x7b\x42\x7a\xfd\x7b\x41\x7a\xfa\x7a\xf9\x00\x00\x7b\x46\x5c\xac\x00\x00\x7a\xfb\x00\x00\x5c\xb1\x5c\xab\x5c\xb2\x5c\xb3\x00\x00\x5c\xae\x5c\xad\x00\x00\x00\x00\x7e\x97\x5e\xe4\x5e\xe3\x00\x00\x00\x00\x7e\x9c\x00\x00\x60\xe4\x5e\xe5\x00\x00\x00\x00\x5e\xe7\x7e\x9d\x5c\xaa\x5e\xe6\x7e\x99\x7e\x9b\x7e\x98\x00\x00\x7e\x9a\x00\x00\x00\x00\x00\x00\x81\xb4\x00\x00\x00\x00\x81\xb3\x81\xb0\x60\xe7\x84\xcd", /* 7480 */ "\x60\xe8\x81\xaf\x00\x00\x60\xe6\x00\x00\x81\xb1\x81\xae\x81\xab\x81\xb2\x81\xac\x81\xad\x60\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x87\x76\x00\x00\x84\xd1\x00\x00\x84\xd0\x84\xd2\x00\x00\x87\x73\x62\xc3\x00\x00\x84\xce\x00\x00\x62\xc1\x00\x00\x62\xc5\x62\xc4\x84\xcf\x84\xd3\x00\x00\x62\xc2\x00\x00\x87\x7a\x64\x60\x65\x86\x64\x61\x64\x5e\x87\x77\x87\x75\x00\x00\x87\x78\x00\x00\x87\x7b\x64\x5f\x87\x79\x87\x74\x00\x00\x00\x00\x89\xaf\x89\xb2\x8b\xa4\x89\xad\x00\x00\x8d\x5f\x89\xb3\x00\x00\x66\x6c\x89\xb1\x65\x87\x89\xae\x89\xb0\x89\xb4\x8b\xa5\x00\x00\x8b\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x66\x6d\x8b\xa2\x00\x00\x00\x00\x00\x00\x66\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x67\x99\x8f\x82\x67\x98\x8f\x84\x8f\x81\x8f\x83\x68\x5c\x90\xc1\x4d\x8b\x6c\xb0\x70\xfd\x71\x41\x58\x44\x7b\x47\x62\xc6\x66\x6e\x67\xe6\x90\xc2\x4d\x8c\x00\x00\x6c\xb1\x46\xf8\x00\x00\x00\x00\x6e\xb9\x00\x00\x6e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x42\x71\x43\x58\x45\x58\x46\x00\x00\x00\x00\x00\x00\x77\xb0\x00\x00\x7b\x4a\x7b\x49\x7b\x48", /* 7500 */ "\x7e\x9e\x00\x00\x7e\x9f\x7e\xa0\x5e\xe8\x00\x00\x00\x00\x81\xb6\x81\xb5\x00\x00\x00\x00\x84\xd4\x62\xc7\x62\xc8\x00\x00\x87\x7f\x87\x7c\x87\x7d\x87\x7e\x89\xb6\x89\xb5\x65\x88\x8b\xa6\x8e\x8e\x4d\x8d\x00\x00\x53\x69\x00\x00\x58\x47\x7b\x4b\x00\x00\x4d\x8e\x00\x00\x71\x44\x58\x48\x00\x00\x00\x00\x5a\x8a\x5a\x8b\x00\x00\x4d\x8f\x4d\x90\x69\xe5\x4f\xac\x4f\xab\x53\x6a\x6e\xbb\x77\xb1\x4d\x91\x4d\x92\x4d\x93\x4d\x94\x00\x00\x00\x00\x00\x00\x4f\xad\x4f\xae\x6a\xee\x6a\xed\x00\x00\x00\x00\x51\x98\x6c\xb4\x6c\xb2\x6c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xbc\x6e\xbd\x00\x00\x00\x00\x53\x6e\x53\x6c\x00\x00\x53\x6d\x53\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x55\x85\x00\x00\x00\x00\x00\x00\x00\x00\x55\x89\x55\x88\x71\x45\x55\x87\x55\x86\x00\x00\x71\x46\x00\x00\x00\x00\x58\x4b\x74\x61\x74\x60\x58\x49\x58\x4a\x00\x00\x00\x00\x00\x00\x5a\x8d\x5a\x8c\x77\xb3\x00\x00\x00\x00\x77\xb2\x58\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb4\x7b\x4d\x5c\xb5\x7b\x4c\x00\x00\x00\x00\x00\x00\x7e\xa1\x81\xb7\x60\xe9", /* 7580 */ "\x84\xd5\x00\x00\x00\x00\x00\x00\x87\x81\x00\x00\x66\x70\x66\x6f\x00\x00\x00\x00\x67\xe7\x4d\x95\x6c\xb5\x00\x00\x00\x00\x58\x4d\x7e\xa2\x5e\xe9\x48\xa8\x00\x00\x6a\xef\x6a\xf0\x00\x00\x00\x00\x6c\xb6\x51\x9a\x51\x9b\x00\x00\x00\x00\x51\x99\x00\x00\x00\x00\x00\x00\x00\x00\x53\x72\x53\x73\x53\x70\x53\x71\x00\x00\x6e\xbe\x00\x00\x00\x00\x6e\xbf\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x71\x47\x00\x00\x55\x8d\x55\x8e\x00\x00\x58\x50\x71\x4d\x00\x00\x55\x93\x55\x91\x71\x4e\x71\x49\x55\x90\x55\x8f\x55\x8a\x71\x4c\x71\x4b\x71\x48\x55\x92\x00\x00\x71\x4a\x55\x8b\x00\x00\x55\x8c\x00\x00\x00\x00\x58\x51\x74\x65\x74\x66\x58\x52\x74\x62\x74\x64\x74\x68\x74\x67\x74\x63\x00\x00\x58\x4e\x58\x4f\x00\x00\x77\xbb\x5a\x92\x5a\x91\x77\xb5\x5a\x8f\x00\x00\x77\xb8\x5a\x93\x77\xb9\x5a\x94\x77\xb6\x5a\x8e\x5a\x90\x77\xba\x00\x00\x77\xb7\x77\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x5a\x00\x00\x7b\x4f\x5c\xb7\x5c\xba\x5c\xb9\x5c\xbe\x5c\xbd\x7b\x5b\x7b\x59\x7b\x52\x7b\x56\x7b\x55\x5c\xbb\x7b\x58\x7b\x54\x7b\x5c\x7b\x53\x5c\xbc", /* 7600 */ "\x5c\xb6\x5c\xb8\x00\x00\x7b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xa4\x5e\xed\x7e\xa8\x5e\xec\x7e\xa5\x5e\xeb\x00\x00\x7b\x50\x7b\x57\x7e\xa7\x00\x00\x5e\xee\x7e\xa9\x7e\xa6\x7e\xa3\x00\x00\x00\x00\x81\xba\x81\xbe\x81\xc0\x81\xbc\x81\xbb\x81\xb9\x60\xec\x60\xea\x60\xef\x60\xf0\x81\xbd\x60\xed\x81\xb8\x60\xee\x5e\xea\x81\xbf\x60\xeb\x00\x00\x00\x00\x00\x00\x84\xd7\x00\x00\x84\xd6\x84\xde\x84\xd8\x84\xdd\x84\xda\x62\xc9\x84\xdc\x00\x00\x00\x00\x62\xca\x00\x00\x62\xcb\x00\x00\x84\xdb\x84\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x64\x63\x87\x82\x00\x00\x00\x00\x64\x62\x87\x85\x87\x83\x87\x84\x00\x00\x00\x00\x64\x64\x00\x00\x00\x00\x00\x00\x89\xba\x00\x00\x65\x8b\x89\xbb\x00\x00\x00\x00\x65\x89\x89\xbc\x65\x8a\x89\xb9\x89\xbd\x00\x00\x89\xb7\x00\x00\x00\x00\x66\x71\x8b\xa7\x66\x72\x66\xf9\x00\x00\x89\xb8\x66\xfa\x00\x00\x00\x00\x00\x00\x67\x9a\x8e\x8f\x00\x00\x67\xe9\x8f\x85\x67\xe8\x00\x00\x90\x5b\x68\x82\x68\x83\x00\x00\x00\x00\x91\xbc\x48\xa9\x00\x00\x53\x74\x6e\xc0\x00\x00\x5a\x95\x5a\x96\x4d\x96\x4e\x6b\x69\xe6", /* 7680 */ "\x00\x00\x6a\xf1\x4f\xaf\x00\x00\x51\x9c\x00\x00\x53\x75\x53\x76\x53\x77\x74\x6a\x71\x4f\x55\x94\x00\x00\x00\x00\x58\x53\x74\x69\x00\x00\x00\x00\x77\xbd\x5a\x98\x00\x00\x77\xbc\x5a\x97\x00\x00\x00\x00\x7b\x5d\x60\xf1\x81\xc4\x81\xc1\x81\xc2\x81\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x86\x00\x00\x89\xbe\x00\x00\x00\x00\x00\x00\x8d\x61\x8d\x60\x00\x00\x8f\x86\x4d\x97\x6c\xb7\x55\x95\x00\x00\x00\x00\x00\x00\x5a\x99\x7b\x5e\x00\x00\x00\x00\x7e\xaa\x00\x00\x60\xf2\x84\xdf\x00\x00\x89\xbf\x8d\x62\x4d\x98\x00\x00\x00\x00\x51\x9d\x53\x7a\x6e\xc1\x53\x7b\x53\x79\x00\x00\x53\x78\x71\x50\x55\x96\x00\x00\x00\x00\x55\x97\x55\x98\x00\x00\x00\x00\x00\x00\x58\x55\x74\x6b\x58\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xbe\x58\x56\x5a\x9a\x7b\x5f\x5c\xbf\x5c\xc0\x00\x00\x5e\xef\x00\x00\x5e\xf0\x60\xf3\x62\xcd\x84\xe0\x62\xcc\x00\x00\x87\x87\x64\x65\x00\x00\x89\xc0\x8d\x63\x4d\x99\x4f\xb0\x6c\xba\x6c\xb9\x51\x9e\x6c\xb8\x51\x9f\x6c\xbb\x00\x00\x6e\xc7\x53\x7e\x53\x7d\x6e\xc9\x6e\xc8\x53\x83\x00\x00\x53\x82\x00\x00", /* 7700 */ "\x00\x00\x53\x7c\x00\x00\x6e\xc3\x6e\xc4\x6e\xc5\x00\x00\x53\x84\x6e\xc2\x53\x7f\x6e\xc6\x53\x81\x00\x00\x00\x00\x00\x00\x00\x00\x71\x53\x71\x57\x71\x55\x71\x54\x00\x00\x71\x58\x00\x00\x00\x00\x00\x00\x71\x59\x71\x5a\x71\x52\x00\x00\x71\x51\x00\x00\x55\x9a\x55\x9b\x00\x00\x71\x5b\x71\x56\x00\x00\x74\x74\x00\x00\x71\x5c\x55\x9c\x55\x99\x00\x00\x00\x00\x00\x00\x74\x6e\x00\x00\x74\x6d\x00\x00\x74\x6f\x74\x70\x74\x72\x74\x71\x74\x76\x58\x5a\x58\x57\x58\x5b\x74\x6c\x58\x5c\x74\x75\x58\x59\x74\x73\x58\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xc1\x77\xc3\x77\xbf\x77\xc0\x00\x00\x00\x00\x77\xc4\x77\xc6\x77\xc7\x77\xc2\x77\xc5\x5a\x9b\x00\x00\x00\x00\x7b\x63\x00\x00\x7b\x68\x7b\x60\x7b\x64\x00\x00\x00\x00\x7b\x69\x7b\x65\x5c\xc1\x5c\xc9\x00\x00\x5c\xc4\x7b\x61\x7b\x62\x5e\xf4\x5c\xcc\x5c\xc5\x00\x00\x5c\xca\x5c\xc3\x7b\x67\x5c\xcb\x7b\x66\x5c\xc7\x5c\xc2\x5c\xc8\x7b\x6a\x7e\xaf\x7e\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc6\x00\x00\x00\x00\x7e\xac\x5e\xf2\x7e\xb2\x5e\xf3", /* 7780 */ "\x7e\xb0\x7e\xab\x7e\xae\x7e\xb3\x5e\xf1\x7e\xad\x00\x00\x60\xf5\x81\xc8\x81\xc7\x00\x00\x60\xf8\x60\xf6\x81\xc5\x60\xf4\x81\xc6\x00\x00\x60\xf7\x00\x00\x00\x00\x00\x00\x84\xe8\x00\x00\x84\xea\x00\x00\x84\xe9\x84\xe1\x84\xe5\x84\xe4\x84\xe2\x62\xcf\x62\xd0\x62\xce\x84\xe3\x84\xe6\x84\xe7\x00\x00\x62\xd1\x00\x00\x64\x6a\x87\x8f\x00\x00\x64\x67\x87\x89\x64\x69\x64\x6b\x00\x00\x00\x00\x64\x68\x87\x8e\x87\x8a\x64\x66\x87\x8d\x87\x88\x87\x8c\x87\x8b\x00\x00\x00\x00\x89\xc2\x65\x8e\x65\x8f\x65\x8c\x00\x00\x65\x8d\x00\x00\x00\x00\x89\xc1\x00\x00\x8b\xaa\x00\x00\x00\x00\x66\x73\x00\x00\x8b\xa8\x8b\xa9\x00\x00\x8d\x64\x8d\x67\x8d\x65\x8d\x66\x8e\x90\x00\x00\x00\x00\x67\x9b\x90\x5c\x90\xc3\x00\x00\x68\x84\x91\x4a\x91\x4b\x68\xb2\x4d\x9a\x53\x85\x00\x00\x77\xc8\x00\x00\x7b\x6b\x00\x00\x4d\x9b\x4f\xb1\x00\x00\x51\xa0\x00\x00\x6e\xca\x6e\xcb\x55\x9d\x00\x00\x00\x00\x77\xc9\x5a\x9c\x5c\xcd\x64\x6c\x87\x90\x8b\xab\x8d\x68\x4d\x9c\x00\x00\x00\x00\x00\x00\x6c\xc1\x6c\xbc\x6c\xbe\x6c\xc0\x6c\xbf\x6c\xbd\x51\xa1\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x53\x86\x6e\xd4\x00\x00\x6e\xcf\x6e\xcc\x00\x00\x00\x00\x6e\xd3\x00\x00\x00\x00\x53\x88\x53\x89\x6e\xd2\x6e\xd1\x6e\xd0\x6e\xcd\x6e\xce\x6e\xd5\x53\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa1\x00\x00\x55\xa7\x55\xa6\x71\x65\x71\x5f\x71\x5d\x00\x00\x55\xa4\x74\x7d\x55\x9f\x71\x62\x71\x66\x71\x68\x71\x64\x71\x5e\x55\xa5\x71\x63\x71\x61\x55\x9e\x71\x69\x55\xa8\x71\x67\x55\xa2\x71\x60\x00\x00\x55\xa3\x55\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5e\x00\x00\x74\x7e\x00\x00\x00\x00\x74\x77\x74\x79\x74\x7b\x00\x00\x74\x7c\x74\x7a\x58\x5f\x00\x00\x74\x7f\x00\x00\x74\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xcd\x5a\x9d\x77\xd5\x00\x00\x77\xca\x00\x00\x77\xd6\x00\x00\x77\xcb\x77\xcc\x00\x00\x00\x00\x77\xd4\x77\xd3\x77\xd0\x58\x5d\x5a\x9e\x77\xce\x77\xd1\x5a\x9f\x77\xd2\x77\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x76\x00\x00\x7b\x7a\x5c\xd4\x00\x00\x7e\xb9\x5c\xd7", /* 7880 */ "\x7b\x78\x00\x00\x00\x00\x7b\x75\x7b\x70\x7b\x72\x7b\x73\x7b\x6c\x00\x00\x5c\xd3\x00\x00\x00\x00\x5c\xd2\x00\x00\x5c\xce\x7b\x6f\x00\x00\x5c\xd5\x00\x00\x5c\xd6\x7b\x6e\x7b\x71\x7b\x79\x5c\xd0\x5c\xd1\x7b\x77\x7b\x6d\x00\x00\x00\x00\x00\x00\x7e\xbb\x5e\xf6\x7e\xbd\x7b\x74\x7e\xbf\x5e\xfa\x7e\xc0\x7e\xbc\x00\x00\x5e\xf7\x7e\xb8\x5e\xf9\x7e\xb5\x7e\xba\x7e\xbe\x7e\xb7\x00\x00\x00\x00\x5c\xcf\x00\x00\x7e\xb4\x5e\xf8\x7e\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xfb\x81\xca\x61\x42\x00\x00\x60\xfd\x00\x00\x00\x00\x5e\xf5\x00\x00\x81\xd1\x81\xd2\x60\xfa\x00\x00\x00\x00\x81\xd0\x81\xd3\x60\xfc\x60\xf9\x81\xcc\x81\xc9\x81\xce\x81\xcb\x61\x43\x81\xcd\x00\x00\x00\x00\x81\xcf\x61\x41\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x84\xf1\x00\x00\x84\xeb\x84\xef\x84\xf5\x84\xf6\x84\xf2\x84\xf3\x84\xf0\x00\x00\x84\xed\x00\x00\x62\xd5\x62\xd2\x84\xec\x84\xee\x00\x00\x62\xd4\x84\xf4\x00\x00\x64\x70\x00\x00\x00\x00\x87\x96\x87\x91\x64\x6f\x00\x00\x00\x00\x64\x6d\x00\x00\x87\x98\x64\x6e\x87\x94\x87\x95\x87\x92\x87\x99\x89\xc3", /* 7900 */ "\x00\x00\x64\x71\x87\x93\x00\x00\x87\x9a\x87\x97\x00\x00\x00\x00\x00\x00\x89\xc7\x00\x00\x00\x00\x89\xc4\x00\x00\x65\x90\x00\x00\x89\xc8\x89\xca\x89\xc9\x89\xc5\x89\xc6\x00\x00\x00\x00\x8b\xb0\x00\x00\x66\x74\x00\x00\x8b\xad\x8b\xaf\x8b\xac\x8b\xb1\x00\x00\x00\x00\x8b\xae\x00\x00\x8d\x6a\x8d\x6d\x8d\x69\x66\xfb\x8d\x6b\x8d\x6c\x8d\x6e\x66\xfc\x67\x41\x66\xfd\x8e\x91\x00\x00\x8e\x93\x00\x00\x8e\x92\x00\x00\x00\x00\x00\x00\x8f\x87\x00\x00\x00\x00\x90\xc4\x91\x4c\x4d\x9d\x00\x00\x00\x00\x6a\xf2\x51\xa2\x6c\xc3\x51\xa3\x51\xa4\x6c\xc2\x00\x00\x6e\xda\x6e\xd9\x53\x8a\x53\x8d\x53\x8c\x53\x8b\x6e\xd6\x6e\xd8\x6e\xd7\x00\x00\x00\x00\x71\x6c\x55\xaa\x71\x70\x71\x6f\x71\x6e\x71\x6a\x55\xa9\x55\xad\x55\xb0\x00\x00\x00\x00\x55\xb1\x71\x6b\x71\x6d\x55\xaf\x55\xae\x55\xac\x55\xab\x74\x87\x00\x00\x74\x85\x74\x81\x58\x60\x00\x00\x74\x82\x58\x61\x74\x83\x74\x84\x74\x86\x00\x00\x58\x62\x00\x00\x00\x00\x77\xda\x00\x00\x77\xd9\x77\xd8\x77\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x7e\x5c\xd8\x00\x00\x7b\x7b\x7b\x7d\x00\x00\x5c\xd9", /* 7980 */ "\x00\x00\x5c\xda\x7b\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xc9\x00\x00\x7e\xc2\x7e\xc3\x00\x00\x5e\xfd\x5e\xfb\x5e\xfc\x7e\xcb\x00\x00\x7e\xca\x7e\xc7\x7e\xc6\x7e\xc5\x7e\xc4\x7e\xc8\x7e\xc1\x00\x00\x81\xd4\x81\xd9\x81\xd7\x00\x00\x00\x00\x00\x00\x81\xd6\x81\xd5\x81\xd8\x00\x00\x84\xf7\x00\x00\x62\xd6\x64\x72\x87\x9c\x00\x00\x64\x73\x87\x9b\x89\xcc\x89\xcb\x65\x91\x00\x00\x8b\xb2\x66\x75\x8d\x6f\x67\xea\x8f\x88\x00\x00\x90\xc6\x90\xc5\x69\x88\x53\x8e\x53\x8f\x74\x88\x00\x00\x5c\xdc\x4d\x9e\x4f\xb4\x4f\xb3\x4f\xb2\x00\x00\x00\x00\x00\x00\x6c\xc4\x00\x00\x00\x00\x51\xa6\x51\xa5\x00\x00\x53\x92\x00\x00\x6e\xdc\x6e\xdf\x6e\xdd\x00\x00\x53\x90\x53\x91\x00\x00\x00\x00\x6e\xdb\x6e\xde\x00\x00\x55\xb8\x00\x00\x00\x00\x00\x00\x71\x77\x71\x79\x71\x78\x55\xb5\x71\x73\x00\x00\x00\x00\x55\xb3\x55\xb2\x00\x00\x55\xb6\x55\xb4\x00\x00\x55\xb7\x71\x76\x71\x71\x71\x72\x71\x75\x71\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x8b\x74\x8c\x74\x8a\x00\x00\x74\x89\x58\x63\x00\x00\x00\x00\x00\x00\x00\x00", /* 7a00 */ "\x5a\xa4\x00\x00\x77\xdb\x77\xdd\x77\xdf\x5a\xa3\x00\x00\x00\x00\x5a\xa1\x00\x00\x77\xdc\x5a\xa2\x77\xde\x5a\xa0\x00\x00\x00\x00\x7b\x89\x7b\x7f\x7b\x83\x7b\x87\x5c\xe0\x7b\x85\x00\x00\x7b\x84\x7b\x81\x7b\x82\x5c\xde\x7b\x88\x5c\xdd\x00\x00\x5c\xe2\x5c\xe1\x5c\xdf\x00\x00\x7b\x86\x00\x00\x00\x00\x00\x00\x7e\xd1\x00\x00\x7e\xd0\x00\x00\x00\x00\x7e\xcc\x00\x00\x00\x00\x5f\x41\x7e\xcf\x7e\xce\x5f\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x48\x00\x00\x81\xdb\x00\x00\x61\x49\x61\x45\x61\x47\x00\x00\x61\x44\x61\x46\x00\x00\x00\x00\x00\x00\x84\xf8\x00\x00\x62\xd9\x84\xfa\x84\xf9\x00\x00\x7e\xcd\x62\xdb\x62\xda\x62\xd7\x62\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xa1\x00\x00\x87\x9f\x64\x74\x87\xa0\x00\x00\x87\xa2\x87\x9e\x87\x9d\x00\x00\x00\x00\x89\xcd\x65\x94\x65\x92\x65\x93\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xb3\x8b\xb4\x66\x77\x00\x00\x66\x76\x8d\x71\x8d\x72\x8d\x70\x00\x00\x8f\x89\x8f\x8a\x00\x00\x00\x00\x4d\x9f\x69\xe7\x4f\xb5\x00\x00\x6c\xc5\x51\xa8\x51\xa7\x6c\xc6\x00\x00\x00\x00\x6e\xe1\x53\x93", /* 7a80 */ "\x6e\xe0\x53\x94\x00\x00\x00\x00\x55\xb9\x71\x7c\x71\x7a\x71\x81\x55\xba\x71\x7b\x71\x7f\x71\x7d\x71\x7e\x00\x00\x00\x00\x74\x8d\x74\x8f\x00\x00\x58\x64\x00\x00\x74\x8e\x58\x65\x5a\xa7\x5a\xa6\x5a\xa5\x77\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x8c\x5c\xe3\x5c\xe4\x00\x00\x7b\x8b\x7b\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xd2\x5f\x44\x5f\x43\x7e\xd3\x7e\xd4\x00\x00\x61\x4b\x61\x4a\x00\x00\x85\x41\x81\xdc\x81\xde\x81\xdd\x84\xfd\x84\xfb\x85\x42\x84\xfc\x00\x00\x62\xdc\x00\x00\x00\x00\x00\x00\x87\xa3\x64\x75\x87\xa4\x87\xa5\x00\x00\x00\x00\x65\x95\x65\x96\x00\x00\x67\x42\x00\x00\x00\x00\x68\x5d\x4d\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x82\x55\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x58\xfc\x00\x00\x00\x00\x5a\xa9\x77\xe2\x5a\xa8\x77\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x8d\x00\x00\x5f\x45\x7e\xd5\x5f\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x43\x8d\x73\x00\x00\x4e\x6c\x51\xa9\x6c\xc7\x00\x00\x53\x96\x00\x00\x53\x95", /* 7b00 */ "\x6e\xe3\x6e\xe4\x00\x00\x00\x00\x71\x84\x71\x86\x55\xbc\x00\x00\x71\x88\x71\x8b\x71\x89\x00\x00\x00\x00\x00\x00\x71\x8a\x71\x87\x71\x83\x55\xbd\x71\x8c\x71\x85\x00\x00\x00\x00\x00\x00\x00\x00\x74\x98\x58\x6b\x74\xa1\x58\x68\x00\x00\x74\x9a\x58\x6c\x00\x00\x58\x66\x00\x00\x74\x95\x74\xa2\x74\x96\x74\x93\x58\x6a\x00\x00\x58\x67\x00\x00\x74\x99\x74\x9c\x58\x69\x74\x9d\x58\x6d\x74\x9e\x74\x94\x74\x9b\x74\x9f\x74\x97\x74\x92\x74\x90\x00\x00\x00\x00\x74\xa0\x00\x00\x00\x00\x77\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x77\xe9\x00\x00\x00\x00\x00\x00\x77\xe5\x77\xeb\x5a\xac\x74\x91\x77\xe6\x5a\xaa\x77\xe3\x5a\xb1\x77\xe7\x5a\xb0\x77\xe8\x5a\xb2\x5a\xad\x5a\xb3\x5a\xae\x00\x00\x5a\xaf\x00\x00\x5a\xab\x00\x00\x77\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe7\x7b\x98\x00\x00\x7b\x9b\x7b\x8f\x7b\x94\x7b\x8e\x5c\xe9\x00\x00\x7b\x92\x00\x00\x00\x00\x00\x00\x7b\x90\x5c\xe8\x00\x00\x7b\x97\x7b\x96\x7b\x93\x7b\x95\x7b\x91\x5f\x4a\x7b\x9a\x5c\xe5\x7b\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7b80 */ "\x00\x00\x00\x00\x7e\xe5\x00\x00\x5f\x51\x7e\xe0\x00\x00\x5f\x50\x7e\xd6\x00\x00\x7e\xd8\x5f\x49\x7e\xdd\x7e\xdc\x7e\xdf\x5f\x4e\x7e\xda\x7e\xd9\x00\x00\x00\x00\x5f\x4d\x5f\x48\x7e\xdb\x5f\x4b\x7e\xe1\x7e\xe3\x00\x00\x7e\xde\x7e\xd7\x5f\x4c\x00\x00\x00\x00\x61\x53\x5f\x47\x00\x00\x00\x00\x7e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe2\x61\x4c\x00\x00\x81\xe4\x00\x00\x61\x4d\x00\x00\x00\x00\x61\x4f\x81\xe7\x00\x00\x81\xdf\x5f\x4f\x81\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe1\x00\x00\x5c\xe6\x61\x52\x00\x00\x00\x00\x61\x4e\x00\x00\x61\x50\x61\x51\x00\x00\x62\xdf\x81\xe6\x81\xe0\x61\x54\x00\x00\x81\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x4c\x85\x47\x00\x00\x00\x00\x85\x51\x62\xdd\x85\x49\x62\xe1\x85\x4f\x85\x46\x85\x43\x85\x52\x64\x7b\x62\xe2\x85\x4e\x85\x44\x62\xe0\x85\x48\x62\xe4\x85\x45\x85\x4a\x62\xe3\x85\x4d\x85\x50\x00\x00\x00\x00\x00\x00\x00\x00\x87\xb7\x87\xb8\x87\xa8\x87\xaf\x87\xad\x00\x00\x00\x00\x64\x79\x87\xb4\x85\x4b\x00\x00\x87\xab\x00\x00\x87\xb5\x64\x78\x87\xaa", /* 7c00 */ "\x87\xa9\x87\xb3\x87\xb0\x87\xb2\x00\x00\x87\xa6\x87\xb6\x64\x76\x00\x00\x87\xb1\x87\xba\x87\xae\x64\x7a\x64\x77\x87\xac\x87\xa7\x87\xb9\x62\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\xd0\x00\x00\x00\x00\x89\xce\x89\xd4\x65\x9a\x89\xd2\x89\xd1\x65\x9c\x89\xd7\x65\x9b\x00\x00\x89\xd8\x89\xd5\x65\x98\x89\xd6\x89\xcf\x65\x99\x65\x97\x8b\xb8\x89\xd3\x00\x00\x00\x00\x89\xd9\x00\x00\x00\x00\x8b\xb5\x00\x00\x00\x00\x00\x00\x66\x7c\x66\x7a\x8b\xb7\x00\x00\x8b\xb9\x8b\xb6\x66\x7b\x66\x78\x66\x79\x66\x7d\x00\x00\x00\x00\x67\x45\x00\x00\x8d\x78\x00\x00\x8d\x77\x8d\x75\x8d\x74\x8d\x76\x00\x00\x67\x44\x67\x46\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x8e\x95\x8e\x94\x00\x00\x00\x00\x8f\x8b\x00\x00\x8f\x8d\x8f\x8f\x8f\x8e\x8f\x8c\x00\x00\x00\x00\x67\xec\x67\xeb\x00\x00\x00\x00\x68\x5f\x68\x5e\x68\x60\x90\x5e\x90\x5d\x00\x00\x91\x4d\x90\xc7\x91\x4e\x68\xa4\x00\x00\x68\xa5\x91\x7e\x00\x00\x00\x00\x68\xca\x4e\x6d\x00\x00\x6c\xc8\x00\x00\x00\x00\x6e\xe6\x6e\xe7\x6e\xe5\x00\x00\x00\x00\x53\x97\x00\x00\x6e\xe8", /* 7c80 */ "\x6e\xe9\x6e\xea\x00\x00\x00\x00\x71\x8d\x71\x93\x00\x00\x00\x00\x71\x91\x55\xbe\x71\x8f\x00\x00\x71\x90\x71\x92\x00\x00\x00\x00\x00\x00\x71\x8e\x58\x6e\x00\x00\x74\xa3\x58\x70\x74\xa5\x58\x6f\x74\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xed\x5a\xb4\x00\x00\x77\xef\x77\xec\x74\xa6\x00\x00\x5a\xb5\x00\x00\x00\x00\x77\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x9e\x00\x00\x5c\xea\x7b\x9c\x5c\xeb\x7b\x9d\x5c\xec\x00\x00\x00\x00\x00\x00\x5f\x52\x7e\xe9\x7e\xe6\x7e\xe8\x5f\x53\x5f\x54\x7e\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe8\x00\x00\x00\x00\x81\xe9\x00\x00\x61\x55\x81\xeb\x81\xea\x00\x00\x46\xf9\x00\x00\x85\x56\x85\x57\x85\x53\x00\x00\x85\x54\x62\xe5\x62\xe6\x85\x55\x00\x00\x64\x82\x00\x00\x00\x00\x64\x7d\x64\x83\x64\x7e\x64\x81\x64\x7c\x00\x00\x64\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x65\x9d\x87\xbb\x00\x00\x8b\xbb\x00\x00\x8b\xba\x00\x00\x8d\x79\x67\x47\x67\x48\x8f\x91\x8e\x96\x00\x00\x8f\x90\x00\x00\x91\x4f\x91\x94\x4e\x6e\x00\x00\x00\x00\x4f\xb6\x00\x00\x6c\xc9\x51\xaa\x00\x00", /* 7d00 */ "\x53\x9a\x6e\xed\x53\x98\x6e\xeb\x53\x9d\x53\x99\x53\x9e\x53\x9c\x6e\xec\x53\x9b\x55\xc2\x55\xc1\x71\x9e\x55\xca\x71\x97\x71\x9d\x55\xc6\x71\x96\x71\x9c\x71\x9a\x55\xc5\x55\xc7\x71\x99\x55\xc0\x71\x98\x55\xcb\x55\xc8\x55\xcc\x55\xc9\x71\x95\x71\x94\x71\x9b\x55\xc3\x55\xbf\x55\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xb5\x74\xae\x00\x00\x5a\xba\x74\xad\x00\x00\x58\x74\x58\x7b\x58\x78\x58\x7e\x58\x7d\x58\x79\x00\x00\x74\xa7\x74\xaa\x00\x00\x74\xa9\x58\x75\x74\xab\x74\xb4\x58\x76\x74\xa8\x74\xb1\x74\xb2\x58\x77\x74\xaf\x58\x7c\x58\x72\x58\x7a\x74\xac\x58\x71\x74\xb0\x00\x00\x00\x00\x74\xb3\x00\x00\x00\x00\x00\x00\x78\x43\x77\xf7\x5a\xb7\x78\x41\x77\xfb\x77\xf3\x77\xfc\x5a\xb9\x77\xf4\x00\x00\x77\xf0\x00\x00\x00\x00\x5c\xf2\x77\xf9\x00\x00\x5a\xb6\x78\x42\x00\x00\x5a\xbd\x5a\xbf\x77\xf2\x00\x00\x00\x00\x5a\xbe\x77\xf5\x5a\xb8\x77\xfd\x77\xf6\x77\xfa\x00\x00\x77\xf8\x5a\xbb\x77\xf1\x5a\xc0\x58\x73\x5a\xbc\x5a\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xee\x7b\xa5\x7b\xa7\x7b\xa9\x7b\xad\x00\x00\x7b\xa3", /* 7d80 */ "\x7b\xa1\x5c\xf0\x00\x00\x7b\xa8\x7b\xac\x7b\xa4\x7b\xa0\x00\x00\x7b\x9f\x00\x00\x00\x00\x00\x00\x7b\xaa\x7b\xa2\x7b\xa6\x5c\xf1\x00\x00\x5c\xef\x7b\xae\x5c\xed\x7b\xab\x00\x00\x7e\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x7e\xf2\x61\x62\x7e\xfc\x5f\x5a\x7f\x43\x5f\x60\x7e\xed\x00\x00\x00\x00\x7e\xfd\x7e\xea\x00\x00\x7f\x42\x7e\xee\x00\x00\x5f\x67\x5f\x64\x7f\x41\x7e\xf8\x5f\x56\x5f\x5e\x5f\x5d\x00\x00\x5f\x5c\x5f\x62\x00\x00\x7e\xeb\x5f\x63\x7e\xf9\x5f\x5f\x5f\x55\x7e\xfb\x5f\x58\x5f\x59\x5f\x61\x7e\xf0\x7e\xef\x7e\xec\x00\x00\x7e\xf4\x7e\xf1\x7e\xf5\x5f\x66\x00\x00\x7f\x44\x5f\x5b\x7e\xf6\x7e\xf7\x00\x00\x7e\xf3\x00\x00\x00\x00\x00\x00\x5f\x65\x00\x00\x00\x00\x00\x00\x00\x00\x81\xf0\x61\x5a\x61\x63\x61\x5f\x81\xed\x00\x00\x61\x5c\x61\x60\x81\xf9\x61\x56\x81\xf1\x00\x00\x61\x5e\x00\x00\x00\x00\x81\xf4\x81\xef\x61\x5d\x61\x61\x81\xee\x00\x00\x61\x5b\x00\x00\x81\xf8\x61\x58\x81\xf7\x81\xf6\x61\x64\x80\xbc\x61\x57\x00\x00\x81\xf5\x81\xec\x00\x00\x61\x65\x81\xf3\x61\x59\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x81\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe9\x62\xee\x62\xe7\x85\x64\x85\x5b\x85\x67\x85\x5f\x85\x65\x62\xef\x62\xe8\x85\x58\x85\x5e\x85\x68\x85\x61\x85\x66\x85\x5a\x00\x00\x00\x00\x85\x62\x62\xea\x85\x60\x62\xed\x62\xec\x85\x5c\x85\x5d\x85\x59\x85\x63\x62\xeb\x85\x6a\x85\x69\x00\x00\x00\x00\x00\x00\x87\xc6\x87\xc2\x64\x8a\x00\x00\x87\xbc\x64\x84\x64\x94\x87\xc8\x64\x8c\x64\x88\x87\xbf\x64\x8f\x64\x92\x87\xca\x64\x87\x87\xc1\x64\x90\x87\xcc\x87\xc9\x87\xbd\x64\x8b\x64\x85\x64\x93\x87\xc4\x64\x8e\x87\xbe\x64\x89\x87\xcb\x64\x8d\x64\x86\x87\xc5\x64\x91\x87\xc3\x00\x00\x00\x00\x87\xc7\x00\x00\x00\x00\x00\x00\x89\xdb\x89\xe1\x65\xa3\x89\xe4\x65\x9e\x65\x9f\x89\xdc\x89\xe3\x89\xde\x65\xa4\x65\xa1\x00\x00\x89\xda\x00\x00\x65\xa0\x89\xe0\x89\xe2\x65\xa2\x89\xdf\x89\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xc5\x66\x82\x66\x83\x66\x7e\x00\x00\x66\x7f\x00\x00\x8b\xc1\x8b\xbf\x00\x00\x8b\xc3\x66\x85\x8b\xc4\x8b\xbd\x8b\xbc\x8b\xc0\x8b\xbe\x66\x81\x8b\xc2\x8d\x7a\x67\x4b\x67\x4a\x8d\x7b\x00\x00", /* 7e80 */ "\x8d\x7d\x8d\x7c\x67\x4c\x00\x00\x00\x00\x00\x00\x8e\x9b\x8e\x98\x8e\x99\x00\x00\x8e\x97\x8e\x9a\x67\x9e\x8e\x9c\x00\x00\x67\x9d\x00\x00\x8f\x92\x00\x00\x68\x61\x68\x63\x90\x5f\x68\x62\x90\xc8\x91\x51\x91\x53\x91\x50\x91\x52\x68\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6f\x00\x00\x53\x9f\x70\xd2\x55\xcd\x00\x00\x00\x00\x58\x7f\x78\x44\x78\x45\x00\x00\x00\x00\x00\x00\x85\x6b\x64\x95\x87\xcd\x00\x00\x00\x00\x65\xa5\x00\x00\x8b\xc7\x8b\xc6\x67\x4d\x8e\x9d\x00\x00\x8f\x93\x68\x85\x69\xe8\x00\x00\x00\x00\x51\xab\x4f\xb7\x00\x00\x00\x00\x6e\xee\x00\x00\x00\x00\x71\xa4\x71\x9f\x71\xa3\x71\xa1\x55\xce\x71\xa2\x71\xa0\x00\x00\x74\xb6\x00\x00\x78\x46\x78\x47\x7b\xb1\x7b\xb2\x5c\xf4\x5c\xf5\x7b\xb0\x7b\xb3\x7b\xaf\x5c\xf3\x00\x00\x5f\x68\x00\x00\x5c\xf6\x7f\x45\x00\x00\x61\x66\x81\xfa\x61\x67\x00\x00\x62\xf0\x85\x6e\x85\x6c\x85\x6d\x87\xd0\x87\xcf\x87\xce", /* 7f80 */ "\x00\x00\x00\x00\x00\x00\x8b\xc8\x00\x00\x66\x84\x8b\xc9\x8f\x94\x68\x86\x90\xc9\x4e\x70\x51\xad\x51\xac\x6e\xf0\x53\xa0\x00\x00\x00\x00\x6e\xef\x71\xa6\x00\x00\x55\xcf\x74\xb7\x71\xa5\x00\x00\x00\x00\x00\x00\x58\x82\x74\xba\x74\xb8\x74\xb9\x58\x81\x00\x00\x78\x49\x78\x4a\x78\x48\x00\x00\x5c\xf9\x7b\xb5\x7b\xb4\x7b\xb6\x5c\xf8\x5c\xf7\x00\x00\x00\x00\x81\xfb\x81\xfd\x00\x00\x61\x68\x81\xfc\x85\x6f\x62\xf1\x89\xe6\x00\x00\x89\xe5\x66\x86\x8b\xca\x66\x88\x66\x87\x8d\x7e\x8e\x9e\x67\x9f\x4e\x71\x6e\xf1\x53\xa1\x71\xa9\x55\xd1\x71\xa8\x71\xa7\x00\x00\x55\xd0\x00\x00\x74\xc0\x00\x00\x74\xc2\x74\xbb\x74\xbc\x58\x83\x74\xbd\x58\x84\x74\xc1\x74\xbe\x74\xbf\x58\x85\x00\x00\x5a\xc3\x5a\xc4\x00\x00\x78\x4b\x00\x00\x00\x00\x00\x00\x7b\xb7\x7b\xb8\x00\x00\x7f\x49\x5f\x6b\x5f\x69\x5f\x6a\x7f\x46\x7f\x47\x00\x00\x7f\x48\x82\x45\x00\x00\x82\x46\x61\x69\x82\x43\x82\x42\x82\x44\x82\x41\x62\xf4\x85\x70\x62\xf2\x62\xf3\x87\xd2\x64\x96\x87\xd1\x89\x55\x00\x00\x89\xe7\x89\xe8\x65\xa6\x00\x00\x65\xa7\x64\x97\x8b\xcb\x8b\xcc\x8d\x7f", /* 8000 */ "\x67\x4e\x4e\x72\x00\x00\x4e\x73\x53\xa2\x51\xae\x55\xd2\x6e\xf2\x00\x00\x00\x00\x00\x00\x5a\xc5\x4e\x74\x53\xa4\x6e\xf3\x6e\xf4\x53\xa3\x53\xa5\x4e\x75\x00\x00\x6e\xf5\x55\xd4\x71\xaa\x55\xd6\x55\xd3\x55\xd5\x00\x00\x74\xc5\x58\x86\x00\x00\x74\xc4\x74\xc3\x00\x00\x7b\xb9\x00\x00\x00\x00\x7f\x4a\x00\x00\x61\x6a\x00\x00\x62\xf5\x85\x72\x85\x71\x00\x00\x87\xd3\x00\x00\x00\x00\x00\x00\x8e\x9f\x00\x00\x00\x00\x4e\x76\x6a\xf3\x6c\xca\x53\xa6\x6e\xf6\x00\x00\x71\xac\x00\x00\x00\x00\x00\x00\x55\xd7\x71\xab\x55\xd8\x00\x00\x00\x00\x00\x00\x74\xc7\x00\x00\x00\x00\x58\x88\x74\xc6\x74\xc8\x00\x00\x58\x87\x00\x00\x00\x00\x00\x00\x00\x00\x78\x4d\x78\x4e\x78\x4c\x5a\xc6\x00\x00\x00\x00\x00\x00\x5c\xfa\x00\x00\x5c\xfb\x00\x00\x5f\x6d\x00\x00\x7f\x4c\x7f\x4b\x5f\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x47\x00\x00\x00\x00\x82\x48\x00\x00\x00\x00\x00\x00\x00\x00\x85\x73\x00\x00\x00\x00\x64\x9b\x64\x9a\x64\x98\x64\x99\x64\x9c\x00\x00\x89\xe9\x65\xa9\x65\xa8\x8b\xcd\x8d\x81\x00\x00\x00\x00\x00\x00\x67\xee\x67\xed\x4e\x77", /* 8080 */ "\x00\x00\x00\x00\x70\x9f\x00\x00\x5c\xfd\x5a\xc7\x5c\xfc\x5f\x6e\x00\x00\x4e\x78\x69\x89\x4e\x79\x4e\x7a\x00\x00\x00\x00\x6c\xcb\x6a\xf6\x00\x00\x6a\xf7\x4f\xb9\x00\x00\x6a\xf4\x4f\xb8\x00\x00\x4f\xbb\x6a\xf5\x4f\xbd\x4f\xbc\x6a\xf8\x4f\xba\x00\x00\x00\x00\x00\x00\x51\xb3\x51\xb1\x6c\xcd\x00\x00\x51\xb0\x00\x00\x00\x00\x00\x00\x51\xb5\x51\xb7\x51\xb4\x00\x00\x6c\xd0\x6c\xcc\x51\xb8\x00\x00\x51\xb2\x4f\xbe\x00\x00\x51\xb6\x6c\xcf\x00\x00\x00\x00\x6c\xce\x00\x00\x51\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xfc\x53\xaa\x53\xab\x6f\x41\x00\x00\x6e\xf8\x6e\xfb\x6f\x47\x6f\x45\x00\x00\x53\xac\x6f\x4b\x53\xaf\x6f\x48\x6e\xfd\x6e\xfa\x00\x00\x00\x00\x78\x50\x6f\x46\x53\xa7\x6f\x49\x6e\xf7\x6f\x43\x53\xa9\x53\xae\x6f\x44\x53\xb2\x53\xb0\x00\x00\x6e\xf9\x53\xad\x00\x00\x6f\x42\x53\xb1\x53\xa8\x6f\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xdd\x00\x00\x55\xe6\x55\xdb\x55\xd9\x71\xae\x55\xe1\x55\xde\x71\xb0\x00\x00\x00\x00\x55\xe0\x71\xaf\x71\xad\x71\xb2\x55\xe5\x55\xe3\x78\x4f\x00\x00", /* 8100 */ "\x71\xb3\x71\xb1\x55\xda\x00\x00\x00\x00\x55\xdc\x55\xdf\x00\x00\x55\xe2\x00\x00\x55\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xd2\x58\x8a\x00\x00\x74\xc9\x74\xcb\x00\x00\x74\xcc\x00\x00\x74\xd4\x74\xd0\x74\xce\x00\x00\x74\xd1\x74\xd5\x58\x8b\x58\x8f\x74\xca\x00\x00\x74\xd3\x00\x00\x58\x8d\x00\x00\x58\x8c\x74\xcf\x74\xcd\x00\x00\x58\x89\x58\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xcd\x78\x58\x00\x00\x00\x00\x78\x56\x5a\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x78\x51\x7b\xc7\x00\x00\x5a\xce\x78\x55\x00\x00\x00\x00\x78\x52\x5a\xca\x5a\xd0\x78\x57\x5a\xcc\x78\x54\x5f\x6f\x5a\xcb\x78\x53\x5a\xd1\x5a\xc9\x5a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xbf\x7b\xbd\x00\x00\x7b\xc3\x00\x00\x7b\xbb\x7b\xc8\x7b\xc0\x00\x00\x7b\xba\x5d\x44\x5d\x4a\x7b\xc5\x00\x00\x7b\xbe\x00\x00\x5d\x47\x00\x00\x00\x00\x5d\x45\x7b\xc6\x5d\x42\x5d\x41\x7b\xc1\x5d\x46\x5a\xd2\x00\x00\x7b\xc4\x7b\xbc\x5d\x43\x5d\x48\x5d\x49\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x74", /* 8180 */ "\x5f\x70\x00\x00\x5f\x75\x7f\x4f\x00\x00\x00\x00\x7f\x4e\x7f\x50\x5f\x72\x7f\x4d\x5f\x73\x7f\x53\x7f\x52\x7f\x51\x00\x00\x5f\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x4c\x00\x00\x82\x4f\x61\x70\x82\x4e\x61\x6f\x61\x6b\x61\x6c\x61\x6d\x82\x4b\x82\x4a\x61\x6e\x00\x00\x82\x4d\x82\x49\x00\x00\x00\x00\x85\x75\x85\x7f\x62\xf8\x62\xf7\x00\x00\x85\x79\x85\x7b\x00\x00\x85\x76\x00\x00\x85\x7a\x85\x74\x85\x7d\x62\xf6\x85\x7c\x85\x78\x00\x00\x85\x7e\x00\x00\x85\x77\x64\x9f\x87\xd4\x87\xda\x64\xa3\x64\xa5\x64\xa2\x64\xa1\x00\x00\x64\xa0\x64\x9e\x87\xd5\x87\xd8\x64\x9d\x87\xd9\x00\x00\x64\xa4\x87\xd7\x00\x00\x87\xd6\x65\xaa\x00\x00\x65\xab\x89\xec\x89\xea\x89\xeb\x00\x00\x00\x00\x8b\xcf\x00\x00\x8b\xce\x66\x89\x8d\x83\x67\x4f\x8d\x82\x00\x00\x8e\xa0\x8f\x95\x67\xef\x91\x54\x91\x55\x68\x64\x4e\x7b\x00\x00\x51\xb9\x78\x59\x5f\x76\x64\xa6\x87\xdb\x4e\x7c\x00\x00\x55\xe8\x55\xe7\x78\x5a\x00\x00\x00\x00\x00\x00\x85\x81\x4e\x7d\x53\xb3\x00\x00\x00\x00\x78\x5b\x78\x5c\x78\x5d\x5f\x77\x62\xf9\x4e\x7e\x00\x00\x51\xba\x6f\x4c", /* 8200 */ "\x55\xe9\x71\xb4\x58\x90\x00\x00\x78\x5e\x5d\x4b\x00\x00\x5f\x78\x62\xfa\x64\xa7\x65\xac\x8d\x84\x4e\x7f\x51\xbb\x00\x00\x00\x00\x55\xea\x74\xd6\x5a\xd3\x00\x00\x5f\x79\x7f\x54\x82\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x81\x5a\xd4\x7b\xc9\x5f\x7a\x4e\x82\x6c\xd1\x6f\x4d\x53\xb4\x00\x00\x00\x00\x71\xb6\x00\x00\x00\x00\x55\xed\x00\x00\x55\xeb\x55\xec\x55\xee\x00\x00\x00\x00\x71\xb5\x00\x00\x00\x00\x74\xdb\x74\xd8\x74\xda\x58\x91\x58\x93\x58\x92\x74\xd7\x58\x94\x74\xd9\x00\x00\x78\x5f\x78\x60\x00\x00\x78\x61\x7b\xcc\x00\x00\x7b\xcd\x00\x00\x7b\xcb\x7b\xce\x00\x00\x5d\x4c\x00\x00\x7b\xca\x00\x00\x5f\x7b\x00\x00\x00\x00\x82\x55\x82\x51\x82\x54\x82\x56\x82\x53\x82\x52\x00\x00\x85\x82\x85\x83\x85\x84\x62\xfb\x62\xfc\x87\xdd\x87\xdc\x87\xde\x00\x00\x89\xee\x89\xed\x00\x00\x8b\xd1\x00\x00\x8b\xd2\x8b\xd0\x00\x00\x67\x50\x00\x00\x8d\x85\x8d\x86\x00\x00\x8f\x96\x90\x60\x90\xca\x4e\x83\x4f\xbf\x00\x00\x64\xa8\x4e\x84\x00\x00\x74\xdc\x78\x62\x00\x00\x68\x8d\x69\xe9\x00\x00\x00\x00\x00\x00\x69\xea\x69\xec\x4e\x85\x69\xed", /* 8280 */ "\x69\xeb\x00\x00\x00\x00\x6b\x43\x6b\x44\x6a\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x42\x4f\xc1\x00\x00\x4f\xc2\x6a\xfc\x6a\xfa\x6a\xf9\x6a\xfd\x4f\xc0\x6b\x41\x6f\x4e\x00\x00\x00\x00\x00\x00\x6c\xd6\x51\xbe\x6c\xd5\x6c\xd7\x00\x00\x51\xbd\x6c\xdc\x51\xc1\x6c\xd2\x6c\xe0\x6c\xe6\x51\xc8\x6c\xe3\x51\xc5\x00\x00\x6c\xd9\x6c\xdf\x6c\xe1\x00\x00\x6c\xd4\x51\xc4\x51\xbf\x6c\xda\x51\xc6\x51\xc9\x51\xc3\x00\x00\x51\xbc\x6c\xde\x6c\xd8\x6c\xe5\x51\xcb\x51\xc7\x51\xc2\x6c\xdd\x55\xef\x6c\xdb\x51\xc0\x51\xca\x00\x00\x6c\xd3\x00\x00\x6c\xe2\x6c\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc5\x53\xbf\x53\xc7\x53\xc4\x6f\x55\x6f\x58\x53\xc0\x00\x00\x6f\x4f\x00\x00\x53\xb9\x53\xc3\x00\x00\x53\xc6\x53\xc8\x6f\x64\x6f\x5b\x00\x00\x53\xb8\x6f\x63\x53\xbc\x53\xba\x53\xb5\x6f\x53\x00\x00\x6f\x62\x6f\x57\x6f\x5a\x6f\x67\x00\x00\x53\xc9\x6f\x61\x53\xc1\x6f\x5c\x6f\x66\x6f\x59\x6f\x5d\x6f\x60\x00\x00\x00\x00\x6f\x51\x6f\x65\x6f\x5f\x00\x00\x00\x00\x6f\x50\x00\x00", /* 8300 */ "\x6f\x54\x53\xc2\x53\xbd\x53\xb6\x53\xbb\x53\xb7\x53\xca\x6f\x52\x71\xc7\x53\xbe\x00\x00\x00\x00\x6f\x5e\x6d\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\xca\x55\xfd\x00\x00\x71\xba\x00\x00\x71\xc5\x71\xc1\x00\x00\x71\xd4\x00\x00\x71\xcc\x00\x00\x71\xc2\x00\x00\x71\xcb\x71\xbc\x71\xc0\x71\xd7\x56\x43\x71\xcf\x71\xc6\x55\xf0\x71\xd5\x71\xb8\x00\x00\x71\xce\x00\x00\x56\x42\x55\xfa\x71\xb7\x55\xf8\x55\xf7\x55\xfc\x71\xcd\x55\xf4\x55\xfb\x6f\x56\x78\x63\x71\xc8\x00\x00\x00\x00\x71\xbe\x56\x41\x71\xbf\x71\xc3\x56\x44\x71\xb9\x71\xd1\x00\x00\x71\xd0\x71\xd8\x55\xf6\x55\xf3\x71\xd6\x71\xd2\x71\xc9\x71\xc4\x55\xf9\x55\xf5\x71\xbb\x55\xf1\x71\xd3\x55\xf2\x00\x00\x71\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xe2\x74\xe4\x74\xe9\x74\xfd\x58\xa2\x58\x98\x00\x00\x74\xe1\x58\xa3\x58\xa4\x74\xec\x74\xf3\x74\xf9", /* 8380 */ "\x00\x00\x74\xe6\x00\x00\x74\xed\x00\x00\x00\x00\x58\xa5\x74\xfb\x74\xf6\x58\xa0\x58\x9e\x74\xf2\x74\xee\x74\xe0\x58\x95\x74\xe5\x74\xdd\x00\x00\x58\x9d\x58\x9f\x74\xea\x74\xe7\x58\x9a\x74\xf7\x58\x97\x74\xe8\x75\x41\x74\xf0\x00\x00\x74\xef\x58\x96\x00\x00\x58\xa1\x00\x00\x58\x99\x74\xde\x74\xe3\x74\xf4\x74\xfa\x58\xa6\x74\xdf\x74\xeb\x74\xf1\x58\x9c\x00\x00\x00\x00\x74\xfc\x74\xf5\x74\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9b\x00\x00\x78\x73\x78\x67\x5a\xdc\x78\x85\x78\x8d\x78\x90\x5a\xda\x78\x6f\x78\x89\x78\x70\x78\x7e\x5a\xe7\x78\x7a\x5a\xe4\x00\x00\x78\x7b\x78\x64\x00\x00\x78\x8a\x00\x00\x00\x00\x5a\xed\x78\x87\x78\x7c\x78\x92\x78\x77\x7b\xee\x00\x00\x78\x95\x5a\xeb\x78\x75\x78\x82\x5a\xee\x5a\xd9\x78\x79\x78\x93\x78\x72\x78\x6b\x78\x76\x00\x00\x78\x6a\x78\x68\x5a\xd5\x78\x8b\x78\x71\x78\x8e\x00\x00\x78\x8f\x5a\xdd\x5a\xe2\x5a\xde\x5a\xe6\x78\x86\x5a\xdf\x78\x7d\x78\x6d\x00\x00\x5a\xd7\x78\x65\x78\x88\x78\x91\x78\x6c\x5a\xe5\x78\x96\x78\x78", /* 8400 */ "\x00\x00\x78\x74\x00\x00\x5a\xd6\x5a\xea\x00\x00\x78\x84\x5a\xec\x00\x00\x78\x7f\x5a\xe1\x5a\xdb\x5a\xe3\x5a\xd8\x5a\xe9\x78\x81\x78\x6e\x78\x83\x78\x69\x78\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xed\x00\x00\x7c\x46\x5c\xdb\x7b\xf2\x00\x00\x7b\xf0\x7b\xdb\x5d\x50\x7b\xeb\x7c\x42\x7b\xe7\x5d\x58\x7c\x41\x7b\xe5\x5a\xe8\x7b\xf5\x7b\xe6\x7b\xfc\x5d\x57\x5d\x4f\x00\x00\x7b\xd0\x7b\xd8\x00\x00\x7b\xf1\x7b\xe9\x7c\x45\x7b\xec\x5d\x5d\x7b\xfd\x00\x00\x5d\x54\x00\x00\x7b\xef\x7b\xf7\x7b\xdc\x7b\xf6\x00\x00\x7c\x4a\x7b\xd7\x7b\xf8\x00\x00\x7c\x48\x00\x00\x7b\xd1\x5a\xe0\x00\x00\x7b\xdf\x7b\xde\x5d\x56\x00\x00\x7b\xe2\x7b\xe4\x7b\xf3\x7c\x47\x5d\x59\x00\x00\x5d\x5a\x00\x00\x7b\xd6\x5d\x52\x7b\xda\x7c\x43\x5d\x5b\x00\x00\x5d\x53\x5d\x55\x5d\x5c\x7c\x49\x7b\xf9\x7b\xf4\x00\x00\x00\x00\x7b\xe1\x7b\xe0\x5d\x51\x7b\xd2\x5d\x4e\x7b\xea\x7b\xd3\x7b\xe8\x00\x00\x00\x00\x7b\xdd\x7c\x44\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x5d\x4d\x00\x00\x00\x00\x00\x00\x7b\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xd5\x7b\xfb\x7b\xd4\x5f\x89\x7f\x7c\x00\x00\x00\x00\x7f\x6b\x00\x00\x00\x00\x7f\x55\x7f\x73\x5f\x81\x7f\x64\x7f\x6e\x5f\x84\x7f\x67\x5f\x82\x7f\x58\x7f\x76\x7f\x57\x7f\x6a\x00\x00\x7f\x56\x00\x00\x00\x00\x7f\x68\x7f\x71\x7f\x6f\x7f\x63\x7f\x5e\x7f\x5c\x00\x00\x7f\x5d\x7f\x70\x7f\x7b\x7f\x65\x5f\x83\x00\x00\x7f\x60\x00\x00\x7f\x74\x00\x00\x5f\x86\x7f\x5f\x7f\x59\x7f\x69\x5f\x8a\x00\x00\x00\x00\x5f\x7d\x5f\x87\x7f\x61\x7f\x5b\x00\x00\x5f\x7f\x7b\xfa\x5f\x7e\x7f\x6c\x00\x00\x5f\x7c\x5f\x8c\x5f\x85\x7f\x6d\x7f\x62\x7f\x5a\x7f\x75\x7f\x66\x5f\x8b\x7f\x79\x5f\x88\x7f\x78\x00\x00\x7f\x72\x7f\x77\x00\x00\x00\x00\x00\x00\x7f\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x7e\x82\x7f\x82\x72\x82\x71\x82\x6d\x61\x7c\x00\x00\x61\x74\x82\x82\x82\x81\x7b\xcf\x82\x6a\x82\x6e\x82\x68\x00\x00\x82\x7b\x82\x6c\x00\x00\x82\x83\x82\x65\x82\x63\x82\x6f\x82\x79\x82\x74\x61\x7e", /* 8500 */ "\x82\x5a\x00\x00\x82\x78\x00\x00\x00\x00\x00\x00\x61\x7f\x7b\xe3\x82\x66\x82\x5d\x82\x60\x82\x87\x82\x67\x82\x5e\x82\x5c\x82\x59\x00\x00\x61\x78\x82\x70\x61\x77\x61\x7b\x82\x6b\x82\x73\x61\x71\x82\x84\x82\x88\x61\x73\x00\x00\x82\x62\x82\x76\x82\x7a\x82\x5f\x82\x85\x61\x7a\x00\x00\x61\x79\x82\x57\x61\x7d\x82\x7d\x82\x61\x82\x75\x82\x5b\x82\x69\x82\x64\x61\x75\x61\x76\x82\x77\x82\x89\x82\x86\x82\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x58\x00\x00\x61\x72\x85\x95\x00\x00\x85\x8c\x85\x8f\x00\x00\x63\x45\x85\x91\x85\x86\x85\x8d\x85\x93\x63\x42\x63\x46\x62\xfd\x00\x00\x00\x00\x85\x88\x85\x98\x00\x00\x00\x00\x85\x92\x00\x00\x85\x89\x85\xa1\x85\x9b\x85\x85\x87\xf1\x85\x8b\x63\x41\x00\x00\x85\x96\x00\x00\x85\xa0\x63\x49\x00\x00\x85\x9d\x85\x8a\x85\x90\x85\x94\x85\x8e\x85\xa2\x85\x9f\x85\x9c\x63\x43\x63\x44\x63\x48\x85\x87\x85\xa3\x63\x47\x85\x99\x00\x00\x00\x00\x85\x97\x00\x00\x00\x00\x00\x00\x85\x9a\x88\x41\x87\xeb\x87\xf0\x87\xfd\x87\xef\x87\xe7\x87\xec\x00\x00\x64\xab\x00\x00", /* 8580 */ "\x87\xe0\x87\xf8\x87\xfa\x87\xdf\x64\xaa\x87\xfc\x87\xf4\x64\xb1\x87\xfb\x87\xed\x64\xb3\x87\xe5\x85\x9e\x87\xf5\x87\xf2\x87\xe1\x88\x43\x64\xad\x00\x00\x00\x00\x64\xae\x87\xe3\x87\xf3\x00\x00\x88\x42\x87\xf6\x87\xe9\x64\xb0\x64\xac\x87\xf7\x87\xea\x88\x44\x87\xe4\x87\xee\x87\xf9\x87\xe6\x87\xe8\x00\x00\x65\xb5\x87\xe2\x64\xb2\x65\xae\x64\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x64\xaf\x65\xb2\x8a\x41\x00\x00\x89\xf4\x89\xef\x89\xf5\x8a\x42\x8a\x46\x8a\x45\x65\xb4\x65\xb3\x00\x00\x00\x00\x89\xf6\x8a\x47\x89\xf9\x89\xf1\x00\x00\x89\xf3\x89\xf2\x89\xf8\x89\xfd\x89\xf0\x89\xf7\x89\xfc\x65\xb1\x00\x00\x89\xfa\x00\x00\x65\xaf\x89\xfb\x65\xad\x65\xb0\x8b\xe2\x8a\x43\x00\x00\x00\x00\x66\x8d\x00\x00\x8b\xda\x8b\xde\x8b\xd6\x8b\xd9\x00\x00\x8b\xe1\x66\x8b\x8b\xe6\x8b\xdf\x00\x00\x8b\xd7\x8b\xe7\x8b\xe0\x66\x8e\x66\x8f\x8b\xe4\x00\x00\x8b\xd8\x66\x8a\x66\x8c\x8b\xd3\x8b\xdb\x8b\xd5\x00\x00\x8b\xe5\x8b\xe3\x8b\xd4\x8b\xdc\x00\x00\x00\x00\x00\x00\x8d\x8d\x66\x90\x8b\xdd\x67\x52\x67\x54\x67\x51\x00\x00\x8d\x92\x8d\x8a\x8d\x88", /* 8600 */ "\x8d\x8c\x8d\x89\x00\x00\x00\x00\x8d\x8e\x8d\x90\x67\x55\x67\x57\x00\x00\x8d\x8f\x67\x58\x67\x56\x8d\x91\x00\x00\x00\x00\x00\x00\x00\x00\x67\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa0\x8e\xa1\x8e\xa7\x67\xa2\x8d\x8b\x8e\xa6\x00\x00\x8e\xad\x8e\xa4\x8e\xab\x8e\xaa\x8d\x87\x8e\xa5\x8a\x44\x8e\xae\x8e\xa3\x8e\xa8\x00\x00\x8e\xac\x8e\xa2\x00\x00\x8f\x9a\x67\xa1\x8e\xa9\x00\x00\x00\x00\x90\x65\x8f\x9b\x8f\x99\x8f\x97\x8f\x98\x8f\x9c\x00\x00\x68\x65\x90\x63\x90\x61\x90\x66\x90\x64\x00\x00\x90\x67\x68\x66\x90\x62\x00\x00\x00\x00\x90\xcb\x00\x00\x00\x00\x91\x56\x91\x57\x91\x58\x00\x00\x00\x00\x91\xb7\x91\xad\x69\xee\x51\xcc\x00\x00\x53\xcb\x00\x00\x71\xda\x71\xd9\x56\x45\x58\xa7\x75\x43\x00\x00\x00\x00\x75\x42\x00\x00\x5a\xef\x5d\x5f\x00\x00\x5d\x5e\x5d\x60\x00\x00\x7f\x7d\x82\x8a\x85\xa4\x85\xa6\x85\xa5\x00\x00\x64\xb4\x88\x45\x8a\x48\x91\x95\x4e\x86\x00\x00\x6c\xe9\x6c\xea\x6c\xe8\x6c\xe7\x51\xcd\x00\x00\x6f\x6b\x6f\x69\x00\x00\x00\x00\x6f\x68\x00\x00\x53\xcc\x53\xce\x53\xcd\x6f\x6a\x00\x00\x00\x00\x00\x00", /* 8680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\xe6\x71\xe3\x71\xe1\x00\x00\x00\x00\x56\x46\x71\xe4\x56\x4b\x71\xde\x71\xed\x00\x00\x71\xef\x71\xdf\x00\x00\x56\x48\x71\xf0\x71\xeb\x71\xdd\x71\xe2\x71\xec\x71\xe8\x71\xe5\x00\x00\x56\x4d\x71\xee\x71\xe0\x00\x00\x00\x00\x71\xe9\x71\xdb\x56\x4c\x56\x49\x71\xe7\x00\x00\x71\xea\x71\xdc\x56\x4a\x56\x47\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb1\x75\x4a\x58\xb0\x00\x00\x75\x4d\x75\x50\x58\xad\x58\xab\x75\x45\x75\x4e\x75\x4c\x75\x49\x75\x51\x75\x52\x75\x54\x75\x55\x75\x44\x58\xaa\x75\x47\x75\x46\x75\x53\x58\xac\x75\x48\x58\xae\x58\xa9\x75\x4b\x58\xb2\x00\x00\x58\xaf\x75\x4f\x00\x00\x00\x00\x00\x00\x5a\xf6\x78\xa5\x00\x00\x78\x9a\x5a\xf3\x00\x00\x7c\x50\x78\xa3\x78\x97\x5a\xf1\x78\x9c\x5a\xf4\x78\xa0\x78\x9e\x5a\xf7\x5a\xf0\x00\x00\x00\x00\x78\x98\x78\x9b\x5a\xf5\x00\x00\x78\x99\x00\x00\x78\xa4\x78\xa2\x78\x9d\x78\x9f\x78\xa1\x5a\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x51\x7c\x57\x7c\x4d\x7c\x53\x5d\x61\x7c\x4f\x5d\x67\x00\x00\x00\x00\x5d\x66\x00\x00", /* 8700 */ "\x5d\x65\x7c\x56\x5d\x68\x5d\x69\x7c\x4c\x7c\x59\x5d\x6a\x5d\x64\x5d\x63\x7c\x55\x5d\x6b\x7c\x4b\x7c\x4e\x7c\x58\x7c\x54\x00\x00\x00\x00\x7f\x9e\x7f\x93\x5d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x93\x7f\x87\x7f\x9c\x7f\x88\x5f\x8e\x00\x00\x7f\x85\x00\x00\x7f\x8e\x7f\x86\x5f\x90\x7f\x7f\x7f\x9b\x5f\x91\x7f\x98\x7f\x99\x7f\x81\x5f\x96\x7f\x90\x00\x00\x7f\x8a\x7f\x91\x7f\x84\x00\x00\x7f\x9d\x7f\x95\x7f\x8f\x7f\x7e\x5f\x92\x7f\x96\x00\x00\x5f\x95\x7f\x9a\x00\x00\x7f\x94\x5f\x8f\x7f\x92\x00\x00\x7f\x8c\x5f\x8d\x7f\x83\x7f\x8b\x7f\x97\x7f\x89\x00\x00\x00\x00\x7f\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8a\x7c\x52\x82\x9c\x82\xa5\x82\x9b\x82\x97\x82\x94\x61\x8b\x82\x92\x5f\x94\x82\x8b\x61\x89\x82\x91\x61\x88\x82\x96\x82\x93\x82\xa3\x82\x9e\x82\x98\x82\x9d\x61\x84\x82\x95\x82\xa8\x82\x8c\x82\x8d\x82\xa4\x61\x85\x82\xa9\x61\x87\x82\xaa\x82\x9a\x7f\x82\x82\xa0\x82\x99\x82\xa2\x82\x9f\x00\x00\x00\x00\x00\x00\x82\x90\x61\x82\x82\xa7\x61\x83\x82\x8e\x61\x86\x85\xb0\x82\xa1\x82\xa6\x00\x00\x00\x00\x00\x00\x00\x00", /* 8780 */ "\x00\x00\x85\xad\x61\x81\x63\x4a\x85\xb7\x85\xb3\x00\x00\x85\xb1\x85\xac\x85\xbb\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x85\xa8\x85\xb4\x85\xb5\x85\xab\x85\xaa\x85\xb8\x00\x00\x85\xae\x85\xa9\x85\xaf\x00\x00\x85\xba\x85\xa7\x85\xb9\x85\xb6\x63\x4c\x63\x4b\x00\x00\x00\x00\x63\x4d\x85\xb2\x8a\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x47\x64\xba\x88\x4b\x88\x48\x88\x4f\x88\x55\x88\x4a\x00\x00\x88\x5e\x64\xb7\x88\x58\x88\x4d\x88\x59\x88\x54\x88\x5b\x88\x4c\x64\xbc\x64\xbb\x88\x4e\x88\x5c\x88\x46\x88\x5a\x64\xb5\x00\x00\x88\x52\x88\x51\x88\x56\x88\x49\x64\xb9\x00\x00\x64\xbd\x88\x50\x88\x57\x64\xbe\x88\x53\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb6\x64\xb8\x8a\x55\x8a\x53\x00\x00\x00\x00\x8a\x5a\x8a\x57\x8a\x5b\x00\x00\x8a\x4c\x8a\x54\x8a\x5f\x88\x5d\x8a\x50\x65\xb9\x82\x8f\x8a\x4b\x8a\x58\x8a\x52\x8a\x4f\x8a\x4a\x8a\x49\x8a\x5e\x00\x00\x8a\x4e\x8a\x4d\x65\xb7\x8a\x56\x00\x00\x65\xb6\x00\x00\x00\x00\x65\xb8\x8a\x51\x8a\x5d\x00\x00\x8b\xeb\x8b\xec\x00\x00\x66\x94\x8b\xe9\x66\x91\x8b\xf1\x00\x00\x66\x95\x8b\xf3", /* 8800 */ "\x8b\xe8\x8a\x5c\x8b\xf5\x8b\xea\x00\x00\x66\x92\x8b\xf0\x00\x00\x8b\xf2\x8b\xed\x8b\xf4\x8b\xef\x8b\xee\x66\x93\x00\x00\x00\x00\x8d\x94\x8d\x95\x00\x00\x8d\x97\x67\x59\x67\x5a\x8d\x98\x8d\x96\x00\x00\x8d\x93\x00\x00\x8e\xb1\x8e\xb4\x8e\xb0\x00\x00\x67\xa6\x8e\xb2\x67\xa5\x67\xa4\x67\xa3\x8e\xb3\x8f\xa1\x8f\x9f\x00\x00\x8f\x9e\x8e\xaf\x8f\xa0\x8e\xb5\x8f\x9d\x00\x00\x90\x6a\x90\x48\x90\x68\x68\x67\x90\x69\x90\x6b\x00\x00\x90\xce\x68\x87\x90\xcd\x90\xcc\x68\x88\x00\x00\x68\xa6\x91\x7f\x91\x97\x91\x96\x91\x98\x4e\x87\x6f\x6c\x00\x00\x71\xf1\x71\xf2\x00\x00\x00\x00\x00\x00\x78\xa6\x00\x00\x8e\xb6\x90\xcf\x4e\x88\x53\xcf\x6f\x6d\x00\x00\x00\x00\x00\x00\x75\x56\x58\xb3\x00\x00\x78\xa8\x78\xa7\x5a\xf8\x00\x00\x5d\x6c\x82\xab\x61\x8c\x00\x00\x61\x8d\x00\x00\x00\x00\x00\x00\x63\x4f\x68\x89\x4e\x89\x00\x00\x00\x00\x00\x00\x6f\x6e\x51\xcf\x6f\x70\x6f\x6f\x53\xd0\x00\x00\x71\xf3\x00\x00\x71\xfa\x56\x4e\x71\xf8\x71\xf6\x00\x00\x71\xfd\x71\xf4\x71\xf5\x56\x4f\x00\x00\x56\x53\x00\x00\x00\x00\x72\x41\x56\x52\x71\xfc\x71\xf9", /* 8880 */ "\x71\xf7\x56\x50\x56\x51\x71\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb5\x75\x57\x00\x00\x58\xba\x75\x67\x58\xb9\x75\x69\x00\x00\x00\x00\x75\x5d\x58\xb7\x75\x68\x00\x00\x75\x58\x58\xb8\x75\x64\x75\x60\x75\x62\x75\x5c\x75\x63\x00\x00\x00\x00\x58\xb4\x75\x5f\x00\x00\x75\x5e\x75\x5a\x00\x00\x75\x65\x00\x00\x00\x00\x75\x61\x75\x59\x00\x00\x75\x5b\x58\xb6\x75\x66\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xfb\x78\xb3\x00\x00\x00\x00\x00\x00\x78\xaf\x78\xb1\x78\xac\x78\xab\x78\xa9\x00\x00\x78\xb0\x78\xb2\x78\xae\x00\x00\x78\xad\x5a\xf9\x5a\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xb5\x5d\x74\x7c\x5b\x7c\x61\x7c\x5c\x7c\x5d\x00\x00\x7c\x62\x00\x00\x5d\x76\x00\x00\x5d\x6e\x5d\x75\x7c\x5a\x78\xaa\x5d\x71\x5d\x6f\x7c\x60\x7c\x5f\x5d\x70\x5d\x72\x7c\x5e\x5d\x6d\x00\x00\x5d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xa0\x5f\x9d\x00\x00\x00\x00\x7f\xab\x7f\xaa\x00\x00\x7f\xa5\x5f\x9f\x7f\xa9\x7f\xa1\x7f\xa2\x5f\x97\x5f\x99\x00\x00\x7f\xa7\x7f\x9f\x5f\x9b\x5f\x9a\x7f\xa3\x7f\xa8\x7f\xa6\x5f\x9c\x7f\xa4\x00\x00", /* 8900 */ "\x00\x00\x78\xb4\x5f\x98\x00\x00\x00\x00\x82\xac\x82\xb3\x61\x8f\x00\x00\x82\xb7\x61\x93\x82\xaf\x82\xad\x00\x00\x82\xb6\x00\x00\x61\x8e\x82\xb5\x61\x90\x61\x91\x82\xae\x61\x92\x82\xb4\x82\xb0\x82\xb1\x82\xb2\x5f\x9e\x00\x00\x00\x00\x00\x00\x85\xbc\x85\xc8\x00\x00\x63\x54\x85\xc3\x85\xc5\x00\x00\x63\x52\x85\xbd\x85\xc1\x00\x00\x85\xc4\x63\x50\x63\x53\x85\xc7\x85\xbf\x85\xc0\x85\xc6\x85\xbe\x85\xc2\x63\x51\x88\x60\x00\x00\x88\x5f\x64\xc0\x88\x65\x64\xc2\x00\x00\x00\x00\x64\xbf\x88\x61\x64\xc3\x88\x62\x00\x00\x00\x00\x88\x63\x88\x66\x00\x00\x64\xc1\x00\x00\x8a\x64\x00\x00\x00\x00\x8a\x67\x00\x00\x8a\x61\x8a\x63\x00\x00\x00\x00\x8a\x62\x8a\x65\x8a\x66\x88\x64\x8a\x60\x00\x00\x00\x00\x66\x98\x8b\xf9\x8b\xfc\x8c\x41\x8b\xf7\x8b\xf8\x8b\xfb\x8b\xfd\x66\x99\x66\x97\x66\x96\x8b\xfa\x8b\xf6\x8d\x99\x67\x5b\x00\x00\x8d\x9a\x00\x00\x00\x00\x8e\xb8\x67\xa7\x8e\xba\x67\xa8\x8e\xb7\x8e\xb9\x67\xf1\x00\x00\x8f\xa2\x67\xf0\x90\x6e\x90\x6d\x00\x00\x90\x6c\x00\x00\x00\x00\x91\x59\x91\x5a\x91\x5c\x91\x5b\x00\x00\x69\xef\x4e\x8a", /* 8980 */ "\x00\x00\x53\xd1\x75\x6a\x5a\xfc\x00\x00\x7c\x63\x65\xba\x00\x00\x8c\x42\x00\x00\x00\x00\x4f\xc3\x00\x00\x00\x00\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x58\xbb\x00\x00\x78\xb6\x5a\xfd\x78\xb8\x78\xb7\x00\x00\x00\x00\x7c\x64\x5d\x77\x7f\xac\x7f\xaf\x7f\xae\x00\x00\x7f\xad\x82\xb8\x82\xba\x82\xb9\x00\x00\x63\x56\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x64\xc4\x88\x67\x88\x69\x88\x68\x00\x00\x00\x00\x65\xbb\x00\x00\x00\x00\x00\x00\x8c\x44\x8c\x43\x00\x00\x8d\x9b\x67\x5c\x00\x00\x00\x00\x67\xa9\x8f\xa4\x8f\xa3\x68\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc4\x6f\x71\x53\xd2\x75\x6d\x75\x6b\x00\x00\x00\x00\x75\x6c\x78\xba\x78\xbb\x7c\x6b\x78\xb9\x00\x00\x7c\x65\x7c\x69\x7c\x68\x7c\x6a\x5d\x78\x7c\x67\x7c\x66\x7c\x6c\x00\x00\x7f\xb2\x7f\xb0\x00\x00\x7f\xb1\x82\xbd\x82\xbb\x00\x00\x00\x00\x82\xbc\x85\xc9\x88\x6a\x88\x6b\x65\xbc\x00\x00\x8c\x45\x8d\x9c\x67\x5d\x00\x00\x8e\xbb\x8f\xa5\x67\xf2\x00\x00\x90\x6f\x91\x5d", /* 8a00 */ "\x4f\xc5\x00\x00\x53\xd4\x53\xd5\x6f\x72\x00\x00\x00\x00\x6f\x73\x53\xd3\x00\x00\x56\x59\x00\x00\x56\x57\x00\x00\x56\x56\x56\x5d\x56\x55\x56\x5e\x72\x42\x56\x5b\x00\x00\x56\x58\x56\x5c\x56\x5a\x56\x54\x00\x00\x00\x00\x58\xc4\x00\x00\x58\xbe\x75\x71\x58\xc3\x00\x00\x00\x00\x58\xc5\x58\xbf\x00\x00\x58\xc0\x00\x00\x75\x6f\x00\x00\x00\x00\x58\xbd\x00\x00\x75\x70\x58\xc2\x00\x00\x00\x00\x75\x6e\x58\xc1\x00\x00\x00\x00\x5b\x4b\x00\x00\x5b\x4d\x00\x00\x00\x00\x78\xbe\x5b\x4c\x5b\x41\x5b\x45\x00\x00\x5d\x8c\x7c\x71\x78\xc0\x5b\x46\x00\x00\x00\x00\x78\xc3\x78\xc4\x5b\x4a\x00\x00\x78\xc6\x00\x00\x78\xc8\x00\x00\x78\xc9\x78\xbd\x78\xbc\x78\xca\x5b\x49\x78\xc7\x78\xc5\x00\x00\x5b\x47\x5b\x43\x5b\x4e\x78\xc1\x78\xc2\x78\xbf\x00\x00\x5b\x48\x00\x00\x00\x00\x5b\x44\x00\x00\x5b\x42\x7c\x70\x5d\x87\x5d\x82\x00\x00\x00\x00\x5d\x7c\x00\x00\x5d\x8d\x5d\x7d\x00\x00\x5d\x79\x5d\x89\x5d\x86\x5d\x88\x00\x00\x5d\x7e\x5d\x84\x5d\x7a\x5d\x7b\x7c\x78\x7c\x75\x7c\x6d\x7c\x72\x00\x00\x5d\x8a\x7c\x79\x5d\x8b\x5d\x81\x00\x00\x00\x00\x7c\x6f", /* 8a80 */ "\x00\x00\x7c\x77\x7c\x73\x7c\x76\x7c\x74\x5d\x85\x7c\x6e\x5d\x7f\x00\x00\x00\x00\x00\x00\x7f\xb5\x5f\xa1\x5f\xa4\x00\x00\x7f\xb7\x00\x00\x5f\xac\x7f\xb6\x5f\xa6\x00\x00\x61\x98\x7f\xb8\x00\x00\x5f\xab\x7f\xb4\x5f\xad\x00\x00\x00\x00\x00\x00\x5f\xa2\x00\x00\x5d\x83\x5f\xa5\x00\x00\x5f\xa3\x5f\xa7\x5f\xa9\x5f\xa0\x5f\xae\x5f\xaa\x00\x00\x5f\xa8\x7f\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x61\x9f\x00\x00\x61\x9b\x00\x00\x00\x00\x00\x00\x61\xa2\x00\x00\x82\xc0\x61\xa3\x82\xcc\x82\xc5\x61\x94\x82\xcd\x82\xc7\x61\x9e\x82\xc8\x00\x00\x61\x9d\x82\xcb\x61\x97\x82\xc9\x82\xbf\x61\x96\x85\xd4\x61\x9c\x00\x00\x61\x99\x00\x00\x61\xa1\x00\x00\x82\xbe\x00\x00\x82\xc2\x61\x95\x82\xc1\x82\xc3\x82\xc4\x61\xa0\x82\xc6\x82\xca\x82\xce\x00\x00\x61\xa4\x63\x5c\x85\xcf\x85\xd5\x85\xd2\x85\xca\x85\xd6\x85\xcb\x00\x00\x85\xd1\x00\x00\x63\x57\x63\x5d\x85\xd7\x00\x00\x00\x00\x63\x59\x00\x00\x63\x63\x63\x5e\x85\xd9\x85\xd3\x63\x5a\x85\xcc\x63\x64\x85\xcd\x85\xce\x63\x65\x63\x62\x61\x9a\x00\x00\x63\x58\x85\xda\x63\x66\x00\x00\x63\x5f\x85\xd8", /* 8b00 */ "\x63\x5b\x63\x60\x63\x61\x00\x00\x64\xcc\x88\x70\x88\x79\x88\x76\x88\x78\x00\x00\x64\xc9\x88\x71\x00\x00\x88\x77\x64\xc5\x88\x73\x64\xcd\x88\x6f\x88\x74\x88\x7b\x85\xd0\x88\x75\x88\x6e\x64\xc6\x88\x6d\x64\xc7\x88\x7c\x64\xc8\x88\x7a\x64\xcb\x88\x6c\x00\x00\x64\xca\x00\x00\x88\x72\x8a\x6a\x8a\x78\x8a\x73\x8a\x75\x8a\x69\x65\xbd\x00\x00\x8a\x68\x65\xc0\x65\xbf\x00\x00\x8a\x77\x8a\x6f\x8a\x6c\x8a\x72\x00\x00\x8a\x6b\x00\x00\x8a\x6d\x8a\x76\x8a\x74\x00\x00\x65\xbe\x8a\x7b\x8a\x79\x8a\x70\x8a\x7a\x8a\x71\x00\x00\x8c\x49\x66\x9a\x8c\x50\x00\x00\x00\x00\x8e\xbe\x66\xa1\x8a\x6e\x8c\x47\x66\x9d\x8c\x48\x8c\x4d\x00\x00\x00\x00\x66\x9f\x66\xa0\x8c\x46\x8c\x4f\x8c\x51\x8c\x4a\x8c\x4c\x8c\x4e\x8c\x4b\x8c\x52\x66\x9c\x66\xa2\x66\x9e\x00\x00\x66\x9b\x8d\x9f\x00\x00\x67\x62\x8d\x9d\x00\x00\x00\x00\x8d\xa1\x00\x00\x8d\xa2\x67\x60\x8d\xa3\x8d\xa0\x00\x00\x8d\x9e\x67\x63\x67\x5f\x8d\xa4\x00\x00\x67\x61\x67\x5e\x00\x00\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x67\xab\x8e\xbd\x8e\xbc\x8e\xbf\x8e\xc0\x00\x00\x67\xac\x8f\xa6\x8f\xab", /* 8b80 */ "\x67\xf3\x00\x00\x8f\xa8\x00\x00\x8f\xa7\x8f\xaa\x8f\xa9\x00\x00\x90\x73\x00\x00\x68\x68\x90\x72\x90\x70\x00\x00\x90\x71\x00\x00\x00\x00\x00\x00\x68\x8b\x68\x8a\x90\xd0\x90\xd1\x68\x8c\x00\x00\x91\x5e\x91\x5f\x68\xb3\x00\x00\x68\xb9\x00\x00\x91\x99\x91\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc6\x00\x00\x75\x72\x00\x00\x75\x73\x7c\x7a\x7f\xb9\x82\xcf\x64\xcf\x00\x00\x64\xce\x8a\x7c\x8c\x53\x00\x00\x90\x74\x4f\xc7\x72\x43\x56\x5f\x58\xc6\x7c\x7c\x7c\x7b\x61\xa5\x82\xd0\x61\xa6\x88\x7d\x65\xc1\x00\x00\x00\x00\x00\x00\x68\xc2\x4f\xc8\x6c\xeb\x72\x44\x00\x00\x00\x00\x58\xc7\x00\x00\x75\x74\x75\x75\x00\x00\x78\xcb\x00\x00\x5b\x4f\x5d\x8e\x00\x00\x7c\x7e\x7c\x7d\x7c\x7f\x00\x00\x7f\xba\x7f\xbb\x5f\xaf\x63\x67\x61\xa7\x63\x68\x00\x00\x88\x82\x88\x7e\x88\x81\x88\x7f\x64\xd0\x00\x00\x8a\x7d\x8c\x55\x8c\x54\x6b\x45\x56\x61\x56\x60\x72\x45\x00\x00\x75\x76\x00\x00\x00\x00", /* 8c80 */ "\x78\xcd\x78\xcc\x5b\x50\x00\x00\x7c\x82\x7c\x83\x7c\x81\x00\x00\x00\x00\x5d\x90\x5d\x8f\x00\x00\x5f\xb1\x5f\xb0\x00\x00\x82\xd1\x85\xdd\x85\xdb\x85\xdc\x63\x69\x88\x84\x88\x83\x00\x00\x8a\x81\x8a\x7f\x8a\x7e\x8c\x56\x00\x00\x91\x9a\x4f\xc9\x53\xd6\x00\x00\x53\xd7\x56\x62\x56\x63\x72\x47\x72\x46\x75\x77\x00\x00\x58\xcd\x58\xcb\x58\xc8\x58\xcc\x58\xca\x58\xc9\x00\x00\x00\x00\x5b\x51\x78\xd0\x00\x00\x5d\x95\x5b\x53\x5b\x58\x78\xd2\x5b\x5a\x5b\x59\x5b\x5c\x78\xd1\x78\xce\x5b\x56\x5b\x52\x5b\x54\x78\xcf\x5b\x5b\x5b\x57\x5b\x55\x5d\x97\x5d\x96\x5d\x94\x5d\x98\x00\x00\x5d\x92\x5d\x93\x00\x00\x5d\x91\x00\x00\x7c\x84\x00\x00\x00\x00\x7f\xbd\x00\x00\x5f\xb3\x5f\xb4\x5f\xb2\x00\x00\x7f\xbc\x00\x00\x7f\xbe\x00\x00\x82\xd4\x82\xd6\x00\x00\x61\xb0\x82\xd7\x61\xa9\x82\xd3\x61\xa8\x61\xb2\x61\xae\x61\xaf\x61\xab\x82\xd2\x61\xaa\x82\xd8\x82\xd5\x00\x00\x61\xb1\x00\x00\x61\xac\x61\xad\x85\xdf\x00\x00\x85\xe1\x85\xe0\x00\x00\x85\xe2\x63\x6a\x85\xde\x00\x00\x00\x00\x64\xd4\x88\x85\x64\xd1\x64\xd5\x64\xd3\x64\xd2\x8a\x82\x00\x00", /* 8d00 */ "\x8a\x85\x00\x00\x8a\x84\x00\x00\x8a\x83\x65\xc2\x8c\x57\x8c\x58\x66\xa3\x8c\x59\x66\xa4\x00\x00\x00\x00\x67\x65\x00\x00\x67\x64\x8e\xc1\x00\x00\x00\x00\x67\xad\x8e\xc2\x8f\xac\x67\xf4\x67\xf5\x00\x00\x90\x75\x00\x00\x68\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x00\x00\x58\xcf\x58\xce\x7c\x85\x7c\x86\x00\x00\x5f\xb5\x85\xe3\x61\xb3\x85\xe4\x88\x86\x4f\xcb\x00\x00\x6f\x74\x53\xd9\x53\xd8\x00\x00\x72\x48\x56\x64\x72\x49\x75\x7a\x00\x00\x75\x79\x00\x00\x75\x78\x00\x00\x00\x00", /* 8d80 */ "\x78\xd4\x5b\x5f\x00\x00\x00\x00\x78\xd3\x5b\x5e\x00\x00\x00\x00\x00\x00\x78\xd5\x5b\x5d\x00\x00\x7c\x88\x7c\x8b\x7c\x89\x7c\x8a\x7c\x8e\x7c\x87\x7c\x8f\x7c\x8c\x7c\x8d\x5f\xb7\x7f\xbf\x00\x00\x00\x00\x5f\xb6\x00\x00\x82\xdc\x82\xda\x00\x00\x00\x00\x61\xb4\x82\xd9\x82\xdb\x00\x00\x61\xb5\x00\x00\x85\xe5\x00\x00\x85\xe6\x64\xd6\x00\x00\x8c\x5b\x8c\x5d\x8c\x5a\x8c\x5c\x8d\xa5\x8e\xc3\x00\x00\x00\x00\x91\x81\x4f\xcc\x53\xda\x72\x4a\x72\x4c\x72\x4b\x00\x00\x75\x7d\x58\xd1\x00\x00\x75\x7b\x00\x00\x58\xd0\x75\x7e\x00\x00\x75\x7f\x75\x7c\x00\x00\x00\x00\x78\xe1\x5b\x67\x78\xd9\x78\xdf\x00\x00\x00\x00\x5b\x62\x5b\x65\x78\xd8\x5b\x60\x78\xdc\x7c\x95\x5b\x64\x00\x00\x78\xd7\x00\x00\x78\xdd\x78\xda\x78\xe0\x78\xd6\x78\xde\x5b\x63\x5b\x66\x78\xdb\x5b\x61\x00\x00\x5d\x9a\x7c\x91\x5d\x99\x7c\x98\x7c\x97\x5d\xa0\x00\x00\x5d\xa1\x7c\x99\x5d\x9b\x7c\x96\x5d\x9f\x7c\x9b\x7c\x92\x00\x00\x7c\x94\x5d\x9c\x7c\x90\x7c\x93\x7c\x9a\x5d\x9d\x7c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9e\x00\x00\x5f\xb8\x7f\xc4\x7f\xca\x7f\xc2", /* 8e00 */ "\x7f\xcb\x00\x00\x7f\xc1\x7f\xc6\x7f\xcc\x7f\xc9\x7f\xc8\x7f\xc7\x00\x00\x7f\xc0\x7f\xc5\x00\x00\x00\x00\x7f\xc3\x00\x00\x61\xba\x61\xb7\x82\xe5\x82\xea\x82\xec\x82\xe9\x82\xe2\x82\xe4\x82\xee\x82\xeb\x82\xe6\x82\xef\x82\xe3\x82\xed\x61\xb8\x61\xbe\x61\xbc\x82\xdd\x61\xbd\x61\xb9\x82\xde\x82\xe0\x82\xdf\x82\xe7\x82\xe8\x00\x00\x61\xbb\x00\x00\x61\xb6\x00\x00\x00\x00\x82\xe1\x00\x00\x85\xf0\x63\x6c\x00\x00\x85\xe7\x63\x6d\x63\x70\x85\xec\x00\x00\x85\xe9\x63\x6f\x00\x00\x00\x00\x85\xed\x85\xee\x85\xe8\x85\xf1\x85\xea\x85\xef\x63\x6e\x00\x00\x63\x6b\x85\xeb\x00\x00\x88\x8c\x64\xd9\x64\xd7\x64\xda\x64\xd8\x88\x8b\x88\x88\x88\x87\x00\x00\x88\x8a\x00\x00\x00\x00\x88\x89\x8a\x93\x65\xc8\x8a\x8a\x8a\x89\x00\x00\x65\xc3\x8a\x8f\x8a\x8e\x8a\x86\x8a\x91\x8a\x8b\x65\xc7\x8a\x88\x8a\x90\x8a\x87\x65\xc4\x65\xc6\x8a\x8c\x65\xc5\x8a\x8d\x00\x00\x8a\x92\x8c\x61\x00\x00\x66\xa9\x8c\x5e\x00\x00\x8c\x62\x00\x00\x00\x00\x66\xa6\x8c\x60\x66\xab\x00\x00\x66\xa8\x00\x00\x8c\x5f\x00\x00\x66\xaa\x8c\x63\x66\xa5\x00\x00\x00\x00\x00\x00", /* 8e80 */ "\x00\x00\x67\x67\x67\x69\x00\x00\x8d\xa8\x67\x68\x8d\xa6\x66\xa7\x8d\xa7\x67\x66\x67\xae\x67\xb0\x8e\xc5\x67\xaf\x8e\xc4\x00\x00\x8f\xb1\x67\xf6\x8f\xb0\x67\xf7\x8f\xae\x8f\xad\x8f\xb2\x8f\xb3\x90\x76\x00\x00\x8f\xaf\x00\x00\x00\x00\x90\xd5\x90\xd2\x90\xd3\x90\xd4\x68\xa8\x00\x00\x91\x62\x91\x61\x91\x60\x91\x82\x00\x00\x91\xae\x91\x9b\x68\xba\x4f\xcd\x56\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xbf\x00\x00\x00\x00\x85\xf2\x00\x00\x00\x00\x65\xc9\x00\x00\x8c\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x9c\x4f\xce\x51\xd0\x53\xdc\x53\xdb\x00\x00\x56\x68\x00\x00\x72\x4d\x56\x66\x72\x4e\x56\x67\x00\x00\x00\x00\x75\x85\x75\x81\x00\x00\x00\x00\x58\xd2\x75\x84\x75\x83\x75\x82\x58\xd3\x75\x86\x75\x87\x00\x00\x00\x00\x00\x00\x78\xe8\x78\xe6\x78\xea\x78\xeb\x78\xf1\x00\x00\x78\xed\x78\xef\x00\x00\x78\xe7\x78\xe2\x00\x00\x78\xee\x00\x00\x00\x00\x78\xf0\x78\xe9\x78\xec\x78\xe3\x5b\x69\x78\xe5\x78\xe4\x5b\x68\x5b\x6a\x00\x00\x5d\xa5\x7c\x9e", /* 8f00 */ "\x7c\xa0\x7c\x9f\x7c\xa4\x5d\xa3\x00\x00\x7c\xa1\x7c\x9d\x7c\xa2\x7c\xa3\x5d\xa4\x5d\xa6\x7c\xa5\x00\x00\x7f\xd0\x7f\xcf\x00\x00\x7f\xcd\x7f\xce\x5f\xba\x5f\xbc\x5f\xb9\x5f\xbb\x82\xf6\x82\xf7\x82\xf2\x00\x00\x82\xf3\x61\xc1\x61\xc6\x61\xc0\x61\xc7\x61\xc2\x82\xf4\x00\x00\x00\x00\x82\xf5\x82\xf1\x61\xc8\x61\xc4\x00\x00\x00\x00\x61\xc3\x61\xc5\x00\x00\x82\xf0\x00\x00\x85\xf4\x63\x72\x00\x00\x00\x00\x85\xf6\x63\x74\x85\xf9\x85\xf5\x85\xf3\x85\xf8\x63\x73\x85\xf7\x00\x00\x63\x71\x00\x00\x00\x00\x64\xdc\x64\xdf\x88\x8e\x00\x00\x64\xdd\x88\x8d\x64\xdb\x64\xde\x8a\x94\x8a\x95\x8a\x96\x65\xca\x00\x00\x8a\x97\x00\x00\x65\xcb\x66\xad\x8c\x67\x8c\x68\x8c\x66\x8c\x65\x8c\x69\x66\xac\x8d\xac\x8d\xaa\x8d\xab\x8d\xad\x8d\xa9\x8d\xae\x8e\xc7\x00\x00\x8e\xc8\x8e\xc6\x67\xb1\x8f\xb4\x67\xf8\x8f\xb5\x90\x78\x90\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcf\x5b\x6b\x00\x00\x00\x00\x5d\xa7\x00\x00\x00\x00\x00\x00\x5f\xbd\x00\x00\x00\x00\x63\x76\x00\x00\x63\x75\x00\x00\x00\x00\x00\x00\x00\x00\x66\xae\x67\x49\x67\xb2\x4f\xd0\x56\x69\x5d\xa8\x00\x00\x8c\x6a\x48\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x47\x00\x00\x00\x00\x4f\xd1\x00\x00\x4f\xd4\x4f\xd3\x4f\xd2\x00\x00\x00\x00\x6b\x46\x00\x00\x6c\xed\x00\x00\x6c\xef\x51\xd1\x00\x00\x00\x00\x51\xd3\x6c\xec\x6c\xee\x51\xd2\x6c\xf1\x6c\xf0\x6c\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x78\x6f\x76\x53\xdf\x6f\x75\x53\xe4\x53\xe1\x53\xde\x00\x00\x53\xe5\x00\x00\x53\xe0\x53\xe3\x00\x00\x53\xe2\x6f\x77\x00\x00\x53\xdd\x00\x00\x00\x00\x00\x00\x56\x6f\x72\x50\x72\x56\x56\x6c\x56\x73\x00\x00\x56\x6e\x72\x53\x72\x55\x56\x71\x72\x4f\x72\x52", /* 9000 */ "\x56\x6d\x56\x6a\x72\x51\x56\x70\x72\x54\x56\x72\x56\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x75\x89\x75\x8c\x58\xd5\x00\x00\x58\xdf\x58\xdb\x75\x8a\x00\x00\x00\x00\x58\xe3\x58\xdc\x58\xe1\x58\xd7\x00\x00\x58\xd4\x58\xd6\x58\xe2\x75\x8b\x58\xda\x58\xdd\x58\xd9\x58\xde\x75\x8d\x58\xe0\x58\xd8\x75\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xf2\x5b\x6c\x78\xf4\x00\x00\x5b\x6e\x5b\x70\x00\x00\x78\xf3\x5b\x6d\x5b\x71\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x5d\xae\x7c\xaa\x5d\xb6\x7c\xa7\x00\x00\x5d\xb7\x5d\xac\x00\x00\x7c\xa8\x00\x00\x00\x00\x5d\xb1\x00\x00\x7c\xa9\x5d\xaa\x5d\xa9\x00\x00\x5d\xb4\x5d\xb3\x5d\xb2\x5d\xb0\x5d\xb5\x7c\xa6\x5d\xab\x5d\xad\x5d\xaf\x00\x00\x00\x00\x5f\xbf\x5f\xc2\x00\x00\x5f\xc6\x5f\xc0\x5f\xc5\x5f\xc3\x00\x00\x5f\xbe\x00\x00\x5f\xc4\x5f\xc1\x00\x00\x00\x00\x00\x00\x82\xfb\x61\xcb\x61\xc9\x00\x00\x82\xfc\x00\x00\x61\xcc\x61\xca\x82\xfa\x82\xf9\x00\x00\x63\x7a\x82\xf8\x63\x78\x63\x77\x85\xfa\x61\xcd\x63\x79\x85\xfb\x63\x7c\x85\xfc\x63\x7b\x64\xe1\x88\x90\x64\xe0", /* 9080 */ "\x64\xe5\x64\xe3\x64\xe4\x65\xcd\x64\xe2\x88\x8f\x85\xfd\x65\xcc\x65\xce\x00\x00\x66\xaf\x66\xb0\x00\x00\x8d\xaf\x00\x00\x68\x6a\x68\x69\x4f\xd6\x00\x00\x00\x00\x69\xf4\x56\x74\x00\x00\x69\xf1\x69\xf2\x69\xf0\x00\x00\x69\xf3\x00\x00\x00\x00\x6b\x4b\x6b\x48\x6b\x4d\x6b\x49\x4f\xd7\x4f\xda\x00\x00\x6b\x4a\x4f\xd9\x6b\x4c\x00\x00\x00\x00\x4f\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xf5\x6c\xf7\x51\xd6\x6c\xf3\x6c\xf6\x6c\xf4\x51\xd4\x51\xd7\x00\x00\x51\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x7a\x6f\x7e\x6f\x7b\x00\x00\x53\xe8\x00\x00\x53\xe9\x00\x00\x6f\x7d\x00\x00\x6f\x7f\x6f\x82\x00\x00\x53\xe6\x6f\x81\x00\x00\x00\x00\x53\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x94\x6f\x7c\x72\x57\x72\x60\x72\x5e\x72\x59\x72\x5a\x72\x5f\x72\x61\x56\x76\x00\x00\x72\x5c\x72\x58\x56\x75\x56\x77\x72\x5b\x72\x62\x72\x5d\x00\x00\x00\x00\x58\xe4\x75\x97\x75\x8f\x75\x95\x75\x96\x58\xe5\x00\x00\x75\x8e\x75\x90\x6f\x79\x75\x92\x75\x93\x75\x91\x5b\x73\x00\x00\x00\x00\x00\x00\x78\xfb\x86\x41\x78\xfc\x78\xf9\x58\xe6\x5b\x75\x78\xf8", /* 9100 */ "\x79\x41\x78\xfd\x5b\x72\x79\x44\x78\xf7\x79\x43\x78\xf5\x79\x42\x78\xfa\x5b\x74\x00\x00\x7c\xb1\x00\x00\x7c\xac\x7c\xb2\x7c\xad\x7c\xab\x7c\xae\x5d\xb8\x00\x00\x7c\xb0\x00\x00\x7c\xaf\x5d\xb9\x5f\xc8\x5f\xc7\x7f\xd7\x7f\xda\x7f\xd2\x7f\xd6\x5f\xc9\x7f\xd5\x7f\xd3\x7f\xd9\x7f\xd4\x7f\xd1\x7f\xd8\x00\x00\x83\x45\x61\xd0\x8a\x98\x83\x42\x83\x43\x83\x41\x78\xf6\x61\xcf\x83\x46\x82\xfd\x61\xce\x61\xd1\x83\x44\x86\x42\x63\x7d\x86\x43\x86\x44\x00\x00\x88\x91\x64\xe6\x8a\x99\x8a\x9a\x00\x00\x00\x00\x8a\x9b\x8c\x6c\x8c\x6b\x8d\xb1\x00\x00\x8d\xb0\x8e\xca\x8e\xcb\x8e\xc9\x8f\xb6\x67\xf9\x4f\xdb\x53\xeb\x53\xea\x56\x7a\x56\x79\x72\x64\x72\x65\x72\x63\x00\x00\x56\x78\x75\x9b\x00\x00\x75\x9c\x75\x98\x58\xe7\x75\x99\x00\x00\x75\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x79\x47\x79\x49\x79\x45\x79\x48\x5b\x76\x79\x46\x5b\x77\x00\x00\x00\x00\x79\xf9\x5d\xbc\x5d\xbb\x00\x00\x5d\xba\x00\x00\x7c\xb3\x7c\xb4\x00\x00\x00\x00\x7f\xdc\x7f\xde\x5f\xcd\x5f\xca\x00\x00\x5f\xcc\x5f\xcb\x7f\xdd\x7f\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9180 */ "\x83\x4d\x83\x4a\x83\x4b\x61\xd5\x83\x4c\x83\x47\x83\x48\x61\xd2\x00\x00\x61\xd3\x83\x49\x61\xd4\x00\x00\x86\x48\x00\x00\x86\x49\x86\x46\x86\x47\x63\x7e\x86\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x95\x88\x92\x88\x94\x64\xe9\x88\x98\x64\xe8\x88\x96\x88\x99\x88\x97\x88\x93\x64\xe7\x00\x00\x8a\x9d\x00\x00\x8a\x9e\x8a\x9c\x00\x00\x8a\xa0\x65\xcf\x65\xd0\x8c\x6e\x66\xb2\x8a\x9f\x8c\x6d\x66\xb1\x8d\xb4\x8d\xb5\x67\x6a\x8d\xb3\x00\x00\x8d\xb2\x00\x00\x8e\xcc\x67\xb3\x00\x00\x90\x79\x90\xd7\x90\xd6\x00\x00\x68\x8f\x68\xa9\x90\xd8\x91\x83\x00\x00\x68\xbb\x4f\xdc\x51\xd8\x00\x00\x5d\xbd\x00\x00\x67\x6b\x4f\xdd\x53\xec\x58\xe8\x5b\x78\x65\xd1\x51\xd9\x00\x00\x6f\x84\x6f\x83\x72\x66\x00\x00\x56\x7d\x56\x7b\x56\x7f\x72\x68\x00\x00\x56\x7e\x56\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x72\x67\x58\xeb\x75\xa2\x00\x00\x58\xea\x58\xec\x75\xa7\x58\xee\x75\xa4\x75\xa5\x75\x9d\x58\xed\x75\xa8\x00\x00\x00\x00\x75\x9f\x00\x00\x75\xa0\x75\x9e\x58\xe9\x00\x00\x75\xa6\x75\xa1\x75\xa3\x00\x00\x00\x00\x00\x00\x79\x55\x00\x00\x79\x54", /* 9200 */ "\x79\x52\x79\x4a\x79\x59\x79\x4d\x79\x57\x79\x5e\x79\x56\x5b\x81\x00\x00\x5b\x7c\x79\x4b\x00\x00\x79\x51\x5b\x7e\x00\x00\x79\x50\x5b\x7f\x5b\x82\x79\x53\x00\x00\x5b\x79\x5b\x7a\x79\x5f\x79\x5d\x00\x00\x79\x5c\x79\x4e\x00\x00\x79\x5a\x00\x00\x5b\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x7b\x79\x5b\x79\x4c\x79\x4f\x79\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x44\x7c\xbe\x00\x00\x7c\xb7\x7c\xca\x7c\xd3\x7c\xba\x5d\xc8\x00\x00\x7c\xc7\x5d\xbe\x5d\xc0\x5d\xcc\x7c\xb8\x00\x00\x00\x00\x5d\xc1\x5d\xc3\x5d\xcd\x5d\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xcb\x7c\xc0\x00\x00\x7c\xb5\x5d\xc9\x7c\xbf\x5d\xc5\x7c\xd1\x5d\xca\x7c\xcf\x7c\xc3\x7c\xcd\x5d\xc7\x7c\xb6\x7c\xd0\x7c\xcb\x00\x00\x7c\xd2\x5d\xbf\x00\x00\x00\x00\x5d\xce\x5d\xc4\x00\x00\x00\x00\x7c\xbc\x00\x00\x7c\xc4\x7c\xc8\x00\x00\x7c\xcc\x5d\xc6\x7c\xbb\x7c\xb9\x7c\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x7c\xc2\x7c\xc1\x00\x00\x7c\xc6\x7c\xc9\x00\x00\x7c\xce\x00\x00\x00\x00\x00\x00\x7f\xe1\x00\x00\x5f\xce\x7f\xeb\x7f\xe3\x5f\xd3\x5f\xd7\x7f\xf4\x7f\xfc\x7f\xed", /* 9280 */ "\x5f\xcf\x00\x00\x7f\xf1\x7c\xbd\x00\x00\x5f\xd0\x7f\xf8\x7f\xfd\x7f\xf5\x00\x00\x7f\xf7\x80\x43\x7f\xf9\x7f\xe7\x7f\xf0\x00\x00\x00\x00\x5f\xd8\x00\x00\x5f\xd4\x7f\xe5\x7f\xf2\x5f\xd2\x7f\xec\x5f\xd1\x7f\xfa\x7f\xe9\x7f\xe2\x5f\xd5\x80\x42\x00\x00\x00\x00\x7f\xe4\x7f\xf6\x7f\xf3\x7f\xee\x7f\xe0\x7f\xdf\x7f\xe8\x7f\xfb\x5f\xd6\x80\x41\x7f\xe6\x7f\xea\x61\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe2\x61\xdd\x83\x6e\x83\x6b\x83\x53\x61\xd8\x00\x00\x00\x00\x00\x00\x61\xd7\x61\xde\x00\x00\x00\x00\x00\x00\x83\x51\x61\xdc\x83\x5d\x83\x4f\x83\x50\x61\xd6\x83\x6d\x61\xe0\x83\x60\x83\x65\x83\x5f\x86\x5b\x83\x5b\x83\x63\x83\x61\x83\x54\x83\x4e\x83\x69\x61\xdf\x83\x6a\x00\x00\x83\x64\x00\x00\x83\x59\x83\x57\x83\x52\x00\x00\x00\x00\x00\x00\x83\x5a\x83\x67\x83\x56\x83\x66\x83\x6c\x00\x00\x00\x00\x61\xdb\x00\x00\x83\x62\x83\x68\x83\x5e\x83\x58\x61\xd9\x00\x00\x00\x00\x00\x00\x7f\xef\x83\x5c\x61\xe1\x83\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x61\x63\x82\x86\x60\x86\x5d\x86\x70\x63\x86\x00\x00\x86\x6d\x86\x65", /* 9300 */ "\x86\x6f\x86\x56\x86\x63\x00\x00\x63\x88\x00\x00\x86\x4e\x00\x00\x86\x4c\x86\x6e\x00\x00\x86\x6c\x86\x6b\x86\x5a\x86\x59\x86\x4f\x63\x8a\x00\x00\x86\x55\x86\x5f\x86\x6a\x63\x8d\x86\x71\x00\x00\x64\xf1\x63\x8f\x63\x89\x86\x53\x00\x00\x86\x5c\x86\x4b\x86\x4d\x63\x7f\x63\x8c\x63\x85\x86\x54\x86\x64\x86\x5e\x63\x8b\x86\x4a\x64\xec\x86\x66\x86\x69\x63\x87\x00\x00\x86\x58\x63\x8e\x63\x84\x00\x00\x00\x00\x00\x00\x63\x83\x86\x62\x86\x68\x63\x81\x00\x00\x86\x51\x86\x67\x00\x00\x00\x00\x86\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x57\x88\x9f\x00\x00\x88\xa4\x64\xee\x64\xf0\x88\xaa\x64\xea\x88\xb9\x88\xb0\x88\xa5\x88\xa6\x88\xaf\x00\x00\x64\xf7\x88\xae\x88\x9e\x88\xad\x88\xa1\x88\xba\x64\xf6\x64\xf4\x88\xa2\x00\x00\x88\xb5\x00\x00\x88\xa7\x88\xb4\x00\x00\x88\xb6\x88\x9d\x64\xef\x00\x00\x88\xb7\x00\x00\x00\x00\x88\xab\x00\x00\x64\xf3\x88\xa8\x00\x00\x00\x00\x64\xf5\x88\xb1\x00\x00\x00\x00\x00\x00\x64\xed\x88\xa3\x88\xb2\x00\x00\x88\xac\x86\x50\x88\xb3\x88\xa0\x00\x00\x64\xf2\x00\x00", /* 9380 */ "\x88\xb8\x00\x00\x64\xeb\x88\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xae\x8a\xa7\x65\xd3\x00\x00\x8a\xa2\x8a\xb1\x8a\xa9\x88\xa9\x00\x00\x8a\xb3\x8a\xa3\x00\x00\x65\xd2\x8a\xad\x65\xd4\x65\xdc\x65\xda\x8a\xaf\x65\xdb\x8a\xa5\x00\x00\x8a\xa6\x8a\xab\x8a\xb0\x00\x00\x88\x9a\x65\xd5\x8a\xb8\x8a\xb5\x8a\xb9\x8a\xac\x8a\xa8\x8a\xb6\x8c\x79\x8a\xaa\x00\x00\x65\xd8\x00\x00\x65\xd7\x88\x9c\x65\xd9\x8a\xb2\x8a\xb4\x65\xd6\x8a\xb7\x8a\xa1\x00\x00\x8a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x83\x00\x00\x8c\x72\x66\xb6\x8c\x81\x00\x00\x00\x00\x8c\x70\x66\xb7\x00\x00\x8c\x7b\x00\x00\x8c\x77\x66\xbc\x8c\x82\x8c\x71\x8c\x74\x66\xb4\x8c\x84\x00\x00\x8c\x7c\x8c\x7f\x66\xba\x66\xbf\x66\xbd\x8c\x78\x8c\x73\x00\x00\x66\xb8\x66\xb9\x8c\x6f\x66\xb5\x00\x00\x66\xb3\x66\xbb\x8c\x7e\x66\xbe\x00\x00\x8c\x7a\x8c\x85\x66\xc0\x00\x00\x00\x00\x00\x00\x8c\x76\x00\x00\x8c\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xc2\x8d\xd0\x8d\xc4\x8d\xcb\x8c\x75\x8d\xc9\x8d\xb8\x8d\xce\x67\x6e\x8d\xbc\x8d\xcd", /* 9400 */ "\x8d\xc3\x00\x00\x00\x00\x67\x6d\x00\x00\x00\x00\x8d\xd2\x8d\xc5\x00\x00\x8d\xca\x8d\xcc\x8d\xb6\x8d\xcf\x8d\xc1\x8d\xc6\x8d\xba\x8d\xbe\x8d\xd1\x8d\xc8\x8d\xb7\x8d\xbb\x8d\xbd\x8d\xc7\x00\x00\x67\x6c\x8d\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbf\x8e\xd0\x8e\xd5\x67\xba\x8e\xd7\x00\x00\x67\xb4\x00\x00\x8e\xd3\x8e\xd9\x67\xb9\x67\xb5\x00\x00\x67\xb6\x8e\xcf\x8e\xd6\x67\xb8\x8e\xd4\x67\xb7\x8e\xce\x8e\xd2\x8e\xd1\x00\x00\x8e\xcd\x8e\xd8\x00\x00\x00\x00\x00\x00\x67\xfa\x8f\xbd\x8f\xc0\x8f\xbc\x8f\xbe\x8f\xbf\x8f\xb9\x8f\xba\x8f\xb7\x00\x00\x00\x00\x8f\xbb\x8f\xb8\x67\xfb\x67\xfc\x00\x00\x00\x00\x90\x7b\x00\x00\x90\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x7c\x90\x7e\x00\x00\x68\x6c\x00\x00\x90\x7a\x68\x6b\x68\x6d\x00\x00\x00\x00\x00\x00\x90\xda\x90\xdb\x68\x90\x90\xd9\x00\x00\x91\x64\x91\x63\x91\x65\x68\xab\x91\x66\x68\xaa\x91\x67\x91\x84\x91\x87\x91\x86\x68\xb4\x91\x85\x00\x00\x00\x00\x00\x00\x68\xbe\x68\xbc\x68\xbd\x68\xc3", /* 9480 */ "\x91\xb0\x91\xb1\x91\xaf\x91\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xda\x00\x00\x00\x00\x75\xa9\x79\x60\x83\x6f\x8c\x86\x00\x00\x00\x00", /* 9580 */ "\x51\xdb\x00\x00\x53\xed\x56\x81\x00\x00\x00\x00\x75\xaa\x00\x00\x75\xab\x58\xef\x00\x00\x5b\x85\x79\x62\x79\x61\x5b\x89\x5b\x84\x79\x63\x5b\x86\x5b\x88\x5b\x87\x5b\x83\x00\x00\x00\x00\x00\x00\x5d\xcf\x00\x00\x00\x00\x7c\xd7\x7c\xd5\x00\x00\x7c\xd6\x7c\xd4\x00\x00\x5f\xd9\x00\x00\x5f\xdc\x5f\xde\x5f\xdd\x00\x00\x00\x00\x5f\xda\x5f\xdb\x00\x00\x83\x71\x83\x70\x61\xe3\x83\x72\x00\x00\x83\x73\x61\xe4\x00\x00\x00\x00\x00\x00\x86\x79\x86\x77\x88\xc0\x00\x00\x86\x75\x86\x76\x63\x90\x86\x72\x86\x7a\x86\x74\x86\x78\x88\xbc\x00\x00\x00\x00\x88\xbe\x00\x00\x88\xbf\x64\xfc\x88\xbb\x64\xfb\x88\xbd\x64\xf8\x64\xf9\x64\xfa\x86\x73\x00\x00\x00\x00\x65\xdf\x8a\xbc\x8a\xba\x8a\xbb\x65\xdd\x65\xe0\x65\xde\x00\x00\x00\x00\x00\x00\x8c\x87\x8c\x88\x66\xc1\x00\x00\x8d\xd3\x8d\xd5\x8d\xd4\x67\x6f\x67\xbb\x8e\xdc\x8e\xdb\x8e\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x69\x8a\x00\x00\x69\xf7\x4e\x8b\x69\xf5\x69\xf8\x69\xf6\x00\x00\x00\x00\x00\x00\x6b\x4f\x00\x00\x4f\xe1\x00\x00\x4f\xe2\x6b\x51\x4f\xdf\x6b\x50\x6b\x4e\x4f\xe0\x4f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xf8\x6c\xfb\x51\xdf\x6c\xfa\x6c\xf9\x00\x00\x51\xde\x51\xdd\x00\x00\x51\xe1\x6c\xfc\x51\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x89\x53\xef\x53\xf0\x53\xf1\x6f\x8a\x6f\x86\x53\xee\x6f\x87\x00\x00\x6f\x88\x6f\x85\x00\x00\x00\x00\x00\x00\x56\x88\x00\x00\x00\x00\x56\x85\x72\x69\x56\x86\x56\x89\x72\x6a\x00\x00\x56\x84\x56\x82\x56\x83\x56\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf0\x75\xae\x58\xf8\x75\xad\x00\x00\x75\xb0\x58\xf4\x75\xaf\x5b\x91\x58\xf2\x58\xf5\x58\xf1\x58\xf6\x58\xf7\x58\xf3\x00\x00\x00\x00\x00\x00\x75\xac\x5b\x8d\x79\x65\x00\x00", /* 9680 */ "\x79\x69\x00\x00\x00\x00\x79\x68\x5b\x92\x5b\x8e\x5b\x8f\x79\x64\x79\x66\x79\x67\x5b\x8a\x5b\x8c\x00\x00\x5b\x90\x5b\x8b\x00\x00\x00\x00\x7c\xda\x7c\xd8\x7c\xd9\x5d\xd1\x5d\xd2\x00\x00\x7c\xdb\x5d\xd0\x5f\xdf\x00\x00\x5f\xe1\x5f\xe0\x00\x00\x80\x45\x00\x00\x00\x00\x80\x46\x83\x75\x00\x00\x83\x74\x00\x00\x00\x00\x63\x91\x63\x92\x86\x7b\x63\x93\x00\x00\x88\xc3\x00\x00\x88\xc1\x00\x00\x88\xc2\x64\xfd\x00\x00\x8a\xbd\x66\xc2\x00\x00\x48\xeb\x00\x00\x65\x41\x51\xe2\x00\x00\x56\x8a\x72\x6b\x00\x00\x00\x00\x75\xb1\x58\xf9\x5b\x93\x79\x6a\x79\x6c\x5b\x95\x5b\x94\x5b\x96\x5b\x97\x79\x6b\x5d\xd5\x5d\xd6\x5d\xd4\x5f\xe2\x5d\xd3\x7c\xdc\x00\x00\x00\x00\x00\x00\x5f\xe3\x83\x76\x86\x7c\x63\x94\x65\x42\x8a\xbe\x8a\xc2\x65\xe3\x8a\xbf\x65\xe4\x65\xe2\x8a\xc3\x65\xe5\x8a\xc1\x00\x00\x8c\x89\x65\xe1\x66\xc3\x00\x00\x90\xdc\x00\x00\x00\x00\x51\xe3\x58\xfb\x58\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x98\x79\x6e\x79\x6d\x5b\x99\x00\x00\x00\x00\x7c\xe0\x5d\xda\x5d\xd7\x7c\xdf\x5d\xd9\x7c\xdd\x5d\xd8\x00\x00\x7c\xde\x00\x00\x80\x47", /* 9700 */ "\x5f\xe4\x00\x00\x83\x79\x00\x00\x61\xe5\x83\x77\x61\xe6\x61\xe7\x83\x78\x61\xe8\x00\x00\x86\x7d\x00\x00\x63\x98\x63\x95\x63\x9a\x86\x7f\x63\x96\x86\x7e\x63\x99\x00\x00\x00\x00\x63\x97\x00\x00\x88\xc6\x88\xc8\x00\x00\x00\x00\x65\x43\x88\xc7\x65\x44\x88\xc5\x88\xc4\x00\x00\x8a\xc5\x8a\xc4\x65\xe6\x8a\xc6\x8c\x8e\x66\xc5\x8c\x8d\x8c\x8a\x66\xc4\x8c\x8b\x8c\x8c\x00\x00\x8d\xd6\x8d\xd7\x67\x70\x00\x00\x67\xbe\x00\x00\x00\x00\x8e\xdd\x00\x00\x00\x00\x67\xbc\x67\xbd\x8e\xde\x00\x00\x00\x00\x67\xfd\x68\x41\x8f\xc1\x00\x00\x00\x00\x68\x91\x90\xde\x68\x93\x00\x00\x90\xdd\x90\xdf\x68\x92\x91\x68\x00\x00\x91\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe4\x00\x00\x00\x00\x00\x00\x5d\xdb\x00\x00\x80\x48\x00\x00\x83\x7a\x63\x9b\x63\x9c\x00\x00\x51\xe5\x00\x00\x61\xe9\x66\xc6\x53\xf2\x00\x00\x00\x00\x00\x00\x63\x9d\x00\x00\x68\x6e\x53\xf3\x75\xb2\x00\x00\x79\x6f\x00\x00\x79\x71\x00\x00\x79\x70\x00\x00\x7c\xe4\x7c\xe1\x5d\xdc\x00\x00\x5d\xdd\x7c\xe2\x7c\xe3\x00\x00\x80\x4a\x80\x4f\x5f\xe5\x80\x49\x80\x4b\x80\x52", /* 9780 */ "\x80\x4d\x80\x51\x80\x4e\x80\x4c\x80\x50\x5f\xe6\x00\x00\x00\x00\x83\x7d\x00\x00\x83\x7b\x61\xeb\x00\x00\x61\xea\x83\x7c\x61\xec\x00\x00\x00\x00\x00\x00\x00\x00\x86\x83\x00\x00\x00\x00\x86\x82\x63\x9e\x86\x81\x88\xc9\x00\x00\x88\xcb\x88\xcd\x88\xcc\x00\x00\x65\x45\x88\xca\x8a\xcd\x65\xe7\x8a\xcb\x8a\xce\x65\xe8\x00\x00\x8a\xc9\x00\x00\x8a\xcc\x8a\xca\x8a\xc7\x65\xe9\x8a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x8f\x00\x00\x00\x00\x8c\x91\x8c\x90\x00\x00\x8d\xd8\x00\x00\x8d\xd9\x00\x00\x00\x00\x00\x00\x8e\xdf\x00\x00\x68\x43\x00\x00\x68\x42\x90\x7f\x90\x81\x68\x94\x90\xe0\x00\x00\x68\xb5\x00\x00\x53\xf4\x5b\x9a\x80\x54\x80\x53\x83\x7f\x83\x7e\x00\x00\x00\x00\x65\x46\x88\xcf\x88\xce\x8a\xd1\x8a\xcf\x8a\xd2\x8a\xd0\x00\x00\x00\x00\x66\xc7\x8c\x92\x8c\x93\x8c\x94\x00\x00\x8e\xe0\x00\x00\x8f\xc2\x00\x00\x90\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf5\x00\x00\x00\x00\x86\x84\x88\xd0\x00\x00\x53\xf6\x00\x00\x00\x00\x5f\xe7\x00\x00\x86\x85\x65\xea\x8a\xd3\x66\xc8\x00\x00\x8d\xda\x8d\xdb\x67\xbf", /* 9800 */ "\x90\x82\x53\xf7\x59\x41\x59\x42\x75\xb3\x5b\x9b\x5b\x9c\x79\x72\x5b\x9d\x00\x00\x5d\xe1\x00\x00\x5d\xe3\x7c\xe6\x7c\xe7\x7c\xe5\x5d\xde\x5d\xdf\x5d\xe2\x5d\xe0\x00\x00\x00\x00\x80\x55\x5f\xe8\x5f\xe9\x00\x00\x00\x00\x83\x87\x61\xef\x83\x82\x83\x81\x00\x00\x83\x86\x61\xed\x00\x00\x00\x00\x63\xa5\x00\x00\x83\x83\x83\x88\x83\x85\x83\x84\x00\x00\x61\xee\x00\x00\x63\xa3\x00\x00\x86\x87\x63\x9f\x00\x00\x86\x88\x00\x00\x00\x00\x86\x86\x00\x00\x63\xa2\x63\xa0\x63\xa4\x00\x00\x63\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\xd1\x00\x00\x88\xd6\x88\xd2\x88\xd5\x65\x47\x00\x00\x87\xc0\x88\xd4\x88\xd3\x00\x00\x65\xed\x65\xeb\x65\xee\x65\xec\x8a\xd4\x8a\xd5\x8a\xd6\x65\xef\x00\x00\x00\x00\x00\x00\x8c\x98\x66\xca\x8c\x96\x00\x00\x66\xcb\x8c\x95\x8c\x97\x66\xc9\x8d\xdf\x8d\xdc\x00\x00\x8d\xdd\x8d\xde\x8e\xe1\x67\xc1\x00\x00\x67\xc0\x00\x00\x8f\xc4\x8f\xc3\x68\x44\x00\x00\x00\x00\x00\x00\x68\x6f\x68\x95\x68\xac\x91\x69\x91\x9e\x91\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf8\x79\x73\x00\x00\x00\x00\x7c\xe8\x80\x56\x80\x57\x5f\xea\x00\x00\x5f\xeb\x83\x89\x61\xf0\x00\x00\x00\x00\x65\x48\x00\x00\x8a\xd7\x00\x00\x65\xf0\x8c\x9b\x66\xcc\x8c\x9a\x8c\x9c\x8c\x99\x8e\xe4\x8d\xe0\x8d\xe1\x00\x00\x67\x71\x00\x00\x8e\xe3\x00\x00\x00\x00\x8e\xe2\x00\x00\x8f\xc5\x91\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf9\x00\x00\x00\x00\x00\x00\x53\xfa\x00\x00\x00\x00\x56\x8b\x72\x6c\x00\x00\x75\xb4\x00\x00\x5b\x9e\x00\x00\x5b\xa1\x5b\x9f\x79\x74\x00\x00\x5b\xa3\x00\x00\x5b\xa0\x00\x00\x00\x00\x5b\xa2\x00\x00\x5d\xe5\x00\x00\x7c\xe9\x00\x00\x00\x00\x7c\xea\x83\x8b\x00\x00\x5d\xe4\x5d\xe6\x5d\xe7\x00\x00", /* 9900 */ "\x80\x59\x00\x00\x80\x58\x5f\xec\x00\x00\x5f\xed\x00\x00\x80\x5a\x83\x8a\x5f\xef\x61\xf1\x00\x00\x5f\xee\x00\x00\x00\x00\x00\x00\x63\xa6\x83\x8c\x61\xf3\x61\xf2\x83\x8d\x83\x90\x83\x8e\x83\x8f\x61\xf4\x00\x00\x63\xab\x63\xa9\x00\x00\x00\x00\x63\xa8\x86\x8a\x00\x00\x63\xaa\x00\x00\x00\x00\x86\x89\x88\xd7\x00\x00\x86\x8b\x63\xa7\x86\x8c\x88\xda\x88\xd8\x88\xd9\x88\xde\x65\xf4\x88\xdd\x88\xe0\x88\xdf\x88\xdc\x88\xdb\x00\x00\x65\x49\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xda\x00\x00\x8a\xd9\x65\xf3\x65\xf1\x65\xf2\x00\x00\x8a\xd8\x00\x00\x8c\x9f\x00\x00\x66\xcd\x00\x00\x8c\x9e\x8c\x9d\x66\xce\x00\x00\x8d\xe6\x8d\xe5\x00\x00\x8d\xe3\x00\x00\x8d\xe2\x67\x73\x67\x72\x8d\xe7\x8f\xc6\x68\x45\x8e\xe6\x67\xc2\x8e\xe5\x8d\xe4\x00\x00\x8f\xc7\x68\x70\x00\x00\x68\xad\x91\x6a\x00\x00\x91\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xfb\x75\xb5\x88\xe1\x53\xfc\x00\x00\x00\x00\x80\x5c\x80\x5b\x86\x8d\x00\x00\x00\x00\x88\xe3\x00\x00\x88\xe2\x00\x00\x65\xf5\x8c\xa0\x8c\xa1\x67\x74\x00\x00\x00\x00\x91\xa2\x56\x8c\x5b\xa5\x5b\xa4\x7c\xeb\x7c\xed\x5d\xe9\x7c\xec\x5d\xe8\x5d\xea\x7c\xee\x00\x00\x00\x00\x00\x00\x80\x5e\x80\x60\x80\x5f\x00\x00\x80\x62\x00\x00\x00\x00\x00\x00\x5f\xf0\x80\x61\x80\x5d\x00\x00\x00\x00\x00\x00\x80\x63\x00\x00\x83\x97\x00\x00\x83\x9a\x83\x9c\x83\x92\x83\x96\x83\x93\x61\xf6\x61\xf9\x61\xfb\x83\x94\x83\x95\x61\xfa\x83\x98\x83\x9b\x83\x99\x61\xfc\x00\x00\x61\xf8\x83\x91\x61\xf5\x00\x00\x61\xf7\x00\x00\x00\x00\x63\xad\x86\x93\x86\x91\x86\x90\x00\x00\x86\x96\x00\x00\x86\x95\x86\x94\x00\x00\x86\x8f\x63\xac\x86\x8e\x00\x00\x86\x92\x63\xae\x00\x00\x00\x00\x88\xe6\x00\x00\x88\xea\x88\xe7\x88\xe9\x88\xe8\x88\xe5\x88\xeb\x88\xee\x88\xec\x88\xed\x65\x4b", /* 9a00 */ "\x00\x00\x65\x4a\x88\xe4\x88\xef\x8a\xdf\x8a\xe2\x8a\xe4\x8a\xe3\x00\x00\x8a\xdd\x8a\xe1\x8a\xdc\x00\x00\x8a\xde\x65\xf6\x8a\xdb\x00\x00\x8a\xe0\x00\x00\x00\x00\x8c\xae\x8c\xa3\x66\xcf\x00\x00\x00\x00\x66\xd0\x8c\xa2\x8c\xa7\x8c\xad\x8c\xa5\x8c\xac\x00\x00\x8c\xa9\x00\x00\x8c\xa8\x8c\xab\x8c\xa6\x8c\xa4\x00\x00\x8c\xaa\x00\x00\x8d\xee\x8d\xec\x67\x75\x8d\xeb\x8d\xf1\x8d\xef\x00\x00\x67\x76\x8d\xea\x8d\xe8\x00\x00\x8d\xe9\x67\x78\x8d\xed\x67\x77\x8d\xf0\x8e\xe7\x8e\xed\x00\x00\x00\x00\x8e\xe8\x67\xc6\x8e\xee\x67\xc5\x8e\xec\x8e\xeb\x67\xc4\x8e\xea\x67\xc3\x8e\xe9\x00\x00\x8f\xcd\x8f\xcf\x8f\xce\x00\x00\x8f\xcb\x68\x47\x8f\xc8\x8f\xcc\x8f\xd1\x00\x00\x8f\xd0\x8f\xc9\x8f\xca\x68\x46\x90\x83\x68\x73\x00\x00\x90\x84\x68\x71\x68\x72\x00\x00\x00\x00\x90\xe2\x68\x96\x91\x88\x00\x00\x68\xb6\x00\x00\x91\xa3\x68\xb7\x91\xa4\x91\xa5\x91\xb3\x91\xb2\x68\xc6\x91\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8d\x00\x00\x00\x00\x7c\xf0\x00\x00\x7c\xef\x00\x00\x5f\xf1\x5f\xf2\x80\x64\x00\x00\x83\x9d\x86\x99\x00\x00\x00\x00\x61\xfd\x63\xaf\x86\x97\x00\x00\x86\x9a\x63\xb0\x00\x00\x88\xf0\x86\x98\x8a\xe5\x65\xf7\x8c\xaf\x00\x00\x00\x00\x00\x00\x8d\xf4\x8d\xf2\x00\x00\x00\x00\x8d\xf3\x00\x00\x00\x00\x8e\xef\x00\x00\x67\xc7\x8f\xd2\x68\x76\x68\x48\x68\x74\x68\x75\x90\xe3\x68\xae\x00\x00\x56\x8e\x00\x00\x00\x00\x00\x00\x8a\xe6\x00\x00\x00\x00\x72\x6d\x00\x00\x5d\xeb\x00\x00\x80\x65\x00\x00\x00\x00\x5f\xf3\x80\x66\x00\x00\x00\x00\x00\x00\x83\x9f\x83\x9e\x63\xb2\x62\x41\x62\x42\x00\x00\x83\xa2\x83\xa1\x83\xa0\x00\x00\x00\x00\x86\x9b\x86\x9e\x00\x00\x86\x9d\x86\x9c\x63\xb1\x88\xf4\x88\xf2\x88\xf1\x00\x00", /* 9b00 */ "\x00\x00\x88\xf3\x00\x00\x65\xf8\x8a\xe8\x8a\xe9\x65\xf9\x00\x00\x8a\xe7\x00\x00\x8c\xb1\x8c\xb0\x8c\xb3\x66\xd1\x8c\xb2\x00\x00\x8d\xf5\x8d\xf7\x8d\xf6\x00\x00\x00\x00\x8e\xf0\x8e\xf3\x8e\xf1\x8e\xf2\x8f\xd3\x68\x49\x00\x00\x00\x00\x00\x00\x90\x85\x90\x86\x90\x87\x00\x00\x68\x97\x68\xaf\x91\xa6\x56\x8f\x00\x00\x62\x43\x63\xb3\x8a\xea\x00\x00\x8f\xd4\x00\x00\x00\x00\x91\xb4\x72\x6e\x00\x00\x68\xc7\x56\x90\x86\x9f\x00\x00\x8a\xeb\x00\x00\x8c\xb4\x00\x00\x00\x00\x8e\xf4\x8f\xd5\x56\x91\x00\x00\x80\x67\x80\x68\x00\x00\x5f\xf4\x5f\xf5\x83\xa4\x62\x45\x62\x44\x83\xa3\x00\x00\x88\xf5\x00\x00\x8a\xec\x8a\xee\x8a\xed\x65\xfc\x65\xfb\x65\xfa\x00\x00\x67\xc9\x8e\xf5\x00\x00\x67\xc8\x8f\xd7\x8f\xd6\x00\x00\x68\x98\x90\xe4\x59\x43\x7c\xf1\x00\x00\x00\x00\x00\x00\x80\x6b\x80\x69\x80\x6a\x00\x00\x00\x00\x83\xad\x00\x00\x83\xa8\x83\xa5\x83\xac\x00\x00\x00\x00\x00\x00\x83\xae\x00\x00\x00\x00\x62\x47\x83\xab\x83\xa7\x00\x00\x00\x00\x83\xa6\x83\xaa\x83\xa9\x62\x46\x00\x00\x00\x00\x86\xaa\x86\xa5\x86\xa3\x86\xac\x86\xa4\x00\x00", /* 9b80 */ "\x86\xa0\x00\x00\x86\xa6\x00\x00\x00\x00\x86\xa1\x89\x41\x86\xa2\x86\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xa9\x63\xb4\x86\xa8\x86\xa7\x00\x00\x86\xab\x00\x00\x00\x00\x00\x00\x00\x00\x88\xf6\x88\xf9\x00\x00\x00\x00\x88\xf8\x00\x00\x89\x43\x88\xfb\x89\x42\x00\x00\x88\xfd\x88\xfc\x88\xfa\x00\x00\x88\xf7\x00\x00\x65\x4e\x65\x4d\x00\x00\x65\x4f\x65\x4c\x89\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xf4\x8a\xf7\x00\x00\x8a\xf5\x8a\xf9\x00\x00\x00\x00\x00\x00\x8a\xfa\x00\x00\x8a\xf2\x66\x44\x8a\xf3\x00\x00\x8a\xf1\x8a\xf8\x00\x00\x8a\xf0\x8a\xef\x66\x43\x66\x41\x65\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xf6\x8c\xbd\x8c\xc3\x66\xd4\x8c\xbe\x00\x00\x8c\xc1\x8c\xc5\x66\xd5\x8c\xc0\x00\x00\x8c\xb8\x00\x00\x8c\xb7\x8c\xc4\x8c\xbb\x00\x00\x8c\xb9\x8c\xc2\x8c\xba\x66\xd3\x66\xd2\x00\x00\x8c\xb5\x8c\xb6\x8c\xbf\x00\x00\x00\x00\x00\x00\x8c\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xfa\x8d\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x66\x42\x00\x00\x00\x00", /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xfb\x8e\x44\x8e\x42\x8d\xf9\x8e\x47\x00\x00\x8d\xf8\x00\x00\x67\x7a\x8e\x43\x00\x00\x00\x00\x00\x00\x8d\xfc\x67\x79\x8e\x46\x00\x00\x00\x00\x8e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x8e\xf8\x8e\xf7\x00\x00\x00\x00\x00\x00\x8f\x41\x00\x00\x8e\xfa\x8e\xfd\x67\xcb\x00\x00\x00\x00\x8e\xfb\x8e\xfc\x00\x00\x8e\xf6\x8e\xf9\x67\xca\x00\x00\x00\x00\x00\x00\x68\x4b\x8f\xe2\x8f\xdd\x8f\xe1\x00\x00\x8f\xe4\x8f\xe0\x00\x00\x8f\xdc\x00\x00\x68\x4d\x8f\xdf\x8f\xe3\x68\x4c\x8f\xda\x8e\x41\x8f\xde\x00\x00\x00\x00\x8f\xdb\x00\x00\x8f\xd8\x00\x00\x8f\xd9\x68\x4a\x90\x8b\x90\x8d\x90\x90\x90\x8c\x90\x91\x00\x00\x90\x8a\x00\x00\x90\x88\x00\x00\x68\x77\x90\x8e\x68\x79\x68\x78\x90\x89\x90\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x90\xe9\x68\x99\x90\xea\x00\x00\x90\xe8\x90\xe5\x00\x00\x00\x00\x90\xe7\x90\xe6\x91\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x91\x6d\x91\x6c\x00\x00\x00\x00\x91\x8b\x00\x00\x91\x8a\x91\x89\x91\x8c\x00\x00\x68\xbf\x68\xc0\x91\xba\x91\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x44\x79\x75\x7c\xf4\x00\x00\x5d\xec\x7c\xf2\x00\x00\x00\x00\x7c\xf3\x00\x00\x00\x00\x00\x00\x80\x6c\x80\x6d\x5f\xf8\x5f\xf6\x80\x6e\x5f\xf7\x83\xb3\x00\x00\x83\xb6\x83\xb0\x83\xb7\x83\xaf\x83\xb1\x00\x00\x83\xb2", /* 9d00 */ "\x83\xb5\x00\x00\x00\x00\x62\x4a\x83\xba\x83\xb9\x62\x48\x83\xb4\x83\xb8\x62\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xb7\x00\x00\x63\xb9\x00\x00\x86\xb2\x63\xb5\x00\x00\x86\xaf\x86\xb5\x86\xb8\x00\x00\x63\xba\x00\x00\x86\xb4\x86\xb1\x86\xb9\x86\xb0\x00\x00\x86\xb6\x63\xb6\x00\x00\x86\xae\x63\xb7\x00\x00\x63\xb8\x86\xb3\x00\x00\x00\x00\x00\x00\x89\x56\x89\x49\x89\x4a\x89\x4d\x89\x4b\x00\x00\x89\x45\x00\x00\x00\x00\x89\x48\x89\x52\x89\x4c\x00\x00\x00\x00\x65\x50\x00\x00\x89\x54\x89\x51\x65\x51\x89\x53\x89\x46\x89\x4f\x89\x50\x00\x00\x89\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x41\x8b\x43\x8b\x46\x00\x00\x00\x00\x8a\xfd\x00\x00\x66\x45\x8b\x48\x8a\xfc\x8b\x49\x00\x00\x8b\x45\x8b\x47\x8b\x4b\x8b\x44\x8b\x4c\x8b\x42\x8a\xfb\x66\x46\x00\x00\x8b\x4a\x66\x47\x66\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\x8c\xdf\x8c\xd6\x66\xd9\x8c\xd2\x66\xda\x00\x00\x00\x00\x8c\xdb\x8c\xd5\x8c\xcb\x66\xd8\x8c\xd8\x8c\xd3\x8c\xd4\x00\x00\x8c\xc6\x8c\xcd\x8c\xdc\x00\x00\x8c\xd9\x00\x00\x8c\xd1\x00\x00\x8c\xdd", /* 9d80 */ "\x8c\xcc\x8c\xc7\x8c\xda\x00\x00\x8c\xc9\x8c\xd7\x8c\xce\x8c\xde\x8c\xca\x66\xd6\x8c\xc8\x8c\xcf\x8c\xd0\x00\x00\x00\x00\x00\x00\x8e\x4e\x00\x00\x8e\x4c\x00\x00\x8e\x51\x00\x00\x8e\x5d\x8e\x54\x8e\x4d\x8e\x49\x8e\x56\x8e\x4f\x8e\x52\x8e\x4b\x8e\x59\x8e\x48\x8e\x50\x8e\x55\x8e\x57\x8e\x5a\x8e\x4a\x00\x00\x8e\x5e\x8e\x5f\x8e\x58\x8e\x5c\x8e\x53\x00\x00\x8f\x51\x8f\x54\x00\x00\x67\xcc\x00\x00\x8f\x53\x8f\x58\x8f\x56\x67\xcd\x8f\x4d\x8f\x43\x8f\x42\x67\xcf\x8f\x4f\x8f\x50\x8f\x4c\x8f\x44\x00\x00\x8f\x49\x8e\x5b\x00\x00\x8f\x45\x67\xce\x8f\x4b\x00\x00\x8f\x4a\x00\x00\x8f\x46\x8f\x52\x00\x00\x8f\x47\x8f\xe9\x8f\x55\x8f\x57\x8f\x4e\x8f\x48\x8f\xea\x8f\xec\x8f\xe6\x68\x4e\x00\x00\x8f\xf3\x8f\xf1\x68\x4f\x8f\xf0\x8f\xef\x8f\xe8\x8f\xe5\x8f\xeb\x8f\xf4\x8f\xe7\x8f\xed\x00\x00\x90\x9a\x90\x9f\x90\x95\x90\x98\x68\x7a\x90\x9c\x00\x00\x90\xa3\x8f\xee\x00\x00\x90\x96\x90\xa0\x90\xa4\x90\x9b\x90\x94\x90\x9e\x00\x00\x90\x9d\x90\xa2\x90\xa1\x8f\xf2\x90\x99\x90\x93\x90\x97\x68\x9a\x68\x9b\x90\x92\x00\x00\x90\xf5\x90\xec\x90\xf4", /* 9e00 */ "\x90\xf1\x90\xf2\x90\xeb\x90\xee\x90\xf6\x90\xf0\x90\xef\x90\xed\x00\x00\x90\xf3\x00\x00\x91\x6e\x00\x00\x91\x6f\x00\x00\x91\x71\x91\x70\x91\x73\x91\x72\x91\x8e\x91\x8d\x91\xa7\x00\x00\x91\xa8\x00\x00\x91\xb5\x68\xc4\x68\xc8\x00\x00\x91\xbf\x68\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x45\x00\x00\x00\x00\x00\x00\x67\x7b\x8f\x59\x00\x00\x68\x9c\x68\x9d\x00\x00\x59\x46", /* 9e80 */ "\x7c\xf5\x00\x00\x5d\xed\x83\xbb\x00\x00\x00\x00\x86\xbb\x86\xbc\x86\xba\x89\x58\x89\x57\x65\x52\x8b\x4e\x89\x59\x8b\x4d\x00\x00\x00\x00\x8c\xe1\x66\xdb\x66\xdd\x8c\xe0\x00\x00\x00\x00\x66\xdc\x00\x00\x8e\x60\x8e\x62\x8e\x61\x8f\x5a\x67\xd0\x00\x00\x68\x7b\x90\xf7\x91\x74\x00\x00\x00\x00\x91\xc2\x59\x47\x00\x00\x80\x6f\x00\x00\x62\x4b\x00\x00\x00\x00\x00\x00\x86\xbe\x86\xbd\x00\x00\x89\x5a\x00\x00\x00\x00\x00\x00\x66\xde\x67\x7c\x8f\xf5\x91\xbb\x00\x00\x00\x00\x00\x00\x59\x48\x5f\xf9\x00\x00\x62\x4c\x00\x00\x8c\xe2\x00\x00\x90\xa5\x5b\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x89\x5b\x00\x00\x00\x00\x00\x00\x68\xb0\x5b\xa7\x62\x4d\x65\x53\x90\xa6\x5b\xa8\x00\x00\x83\xbc\x63\xbc\x86\xbf\x86\xc0\x00\x00\x63\xbb\x00\x00\x89\x5c\x65\x57\x65\x55\x65\x56\x65\x54\x8b\x4f\x66\x48\x00\x00\x00\x00\x00\x00\x8e\x64\x8e\x63\x8e\x66\x8e\x65\x67\x7d\x00\x00\x00\x00\x8f\x5b\x00\x00\x8f\x5d\x8f\x5c\x67\xd1\x8f\xf6\x00\x00\x90\xa7\x90\xa8\x68\x7c\x91\x75\x91\x8f\x68\xc1\x00\x00\x79\x76\x86\xc1\x89\x5d\x8c\xe3\x7c\xf6\x00\x00\x89\x5e", /* 9f00 */ "\x8b\x51\x8b\x50\x00\x00\x00\x00\x00\x00\x00\x00\x90\xa9\x68\x9e\x00\x00\x91\x76\x91\x90\x00\x00\x00\x00\x00\x00\x5d\xee\x83\xbd\x83\xbe\x00\x00\x86\xc2\x5d\xef\x00\x00\x66\x49\x8b\x52\x00\x00\x8f\x5f\x67\xd2\x8f\x60\x8f\x5e\x90\xaa\x00\x00\x90\xf8\x00\x00\x5d\xf0\x00\x00\x89\x61\x89\x60\x89\x5f\x8b\x53\x00\x00\x00\x00\x8b\x57\x8b\x56\x8b\x55\x8b\x54\x66\x4a\x8c\xe4\x8e\x68\x67\x7e\x8e\x67\x8f\x61\x8f\xf9\x8f\xf8\x68\x50\x8f\xf7\x90\xad\x90\xac\x90\xab\x00\x00\x00\x00\x5f\xfa\x00\x00\x86\xc3\x65\x58\x00\x00\x8c\xe5\x8c\xe6\x8f\xfa\x90\xae\x00\x00\x00\x00\x90\xf9\x91\x77\x91\xa9\x91\xc4\x5f\xfb\x65\x59\x8b\x58\x8c\xe7\x8f\x62\x90\xaf\x00\x00\x00\x00\x62\x4f\x00\x00\x89\x62\x8b\x59\x8c\xe8\x8c\xe9\x8c\xea\x8e\x6d\x00\x00\x8e\x69\x67\xd3\x8e\x6c\x8e\x6b\x67\x7f\x8e\x6a\x67\x82\x00\x00\x67\x81\x8f\x64\x8f\x63\x67\xd4\x67\xd5\x00\x00\x00\x00\x68\x52\x8f\xfb\x68\x51\x00\x00\x90\xb2\x90\xb3\x90\xb1\x90\xb0\x68\xa0\x00\x00\x90\xfa\x90\xfb\x90\xfc\x68\x9f\x91\x78\x91\x7b\x91\x7a\x91\x79\x00\x00\x00\x00\x91\xc3\x00\x00", /* 9f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbd\x00\x00\x00\x00\x66\x51\x8e\x6e\x8f\x65\x00\x00\x68\x53\x8f\xfc\x00\x00\x00\x00\x91\xc5\x00\x00\x00\x00\x00\x00\x63\xbe\x00\x00\x00\x00\x00\x00\x89\x63\x00\x00\x8f\xfd\x00\x00\x91\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\xc2\x41\xc2\x42\xc2\x43\xc2\x44\xc2\x45\xc2\x46\xc2\x47\xc2\x48\xc2\x49\xc2\x4a\xc2\x4b\xc2\x4c\xc2\x4d\xc2\x4e\xc2\x4f\xc2\x50\xc2\x51\xc2\x52\xc2\x53\xc2\x54\xc2\x55\xc2\x56\xc2\x57\xc2\x58\xc2\x59\xc2\x5a\xc2\x5b\xc2\x5c\xc2\x5d\xc2\x5e\xc2\x5f\xc2\x60\xc2\x61\xc2\x62\xc2\x63\xc2\x64\xc2\x65\xc2\x66\xc2\x67\xc2\x68\xc2\x69\xc2\x6a\xc2\x6b\xc2\x6c\xc2\x6d\xc2\x6e\xc2\x6f\xc2\x70\xc2\x71\xc2\x72\xc2\x73\xc2\x74\xc2\x75\xc2\x76\xc2\x77\xc2\x78\xc2\x79\xc2\x7a\xc2\x7b\xc2\x7c\xc2\x7d\xc2\x7e\xc2\x7f\xc2\x81\xc2\x82\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\xc2\x88\xc2\x89\xc2\x8a\xc2\x8b\xc2\x8c\xc2\x8d\xc2\x8e\xc2\x8f\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\xc2\x95\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\xc2\xa3\xc2\xa4\xc2\xa5\xc2\xa6\xc2\xa7\xc2\xa8\xc2\xa9\xc2\xaa\xc2\xab\xc2\xac\xc2\xad\xc2\xae\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc2\xc0\xc2\xc1", /* e080 */ "\xc2\xc2\xc2\xc3\xc2\xc4\xc2\xc5\xc2\xc6\xc2\xc7\xc2\xc8\xc2\xc9\xc2\xca\xc2\xcb\xc2\xcc\xc2\xcd\xc2\xce\xc2\xcf\xc2\xd0\xc2\xd1\xc2\xd2\xc2\xd3\xc2\xd4\xc2\xd5\xc2\xd6\xc2\xd7\xc2\xd8\xc2\xd9\xc2\xda\xc2\xdb\xc2\xdc\xc2\xdd\xc2\xde\xc2\xdf\xc2\xe0\xc2\xe1\xc2\xe2\xc2\xe3\xc2\xe4\xc2\xe5\xc2\xe6\xc2\xe7\xc2\xe8\xc2\xe9\xc2\xea\xc2\xeb\xc2\xec\xc2\xed\xc2\xee\xc2\xef\xc2\xf0\xc2\xf1\xc2\xf2\xc2\xf3\xc2\xf4\xc2\xf5\xc2\xf6\xc2\xf7\xc2\xf8\xc2\xf9\xc2\xfa\xc2\xfb\xc2\xfc\xc2\xfd\xc3\x41\xc3\x42\xc3\x43\xc3\x44\xc3\x45\xc3\x46\xc3\x47\xc3\x48\xc3\x49\xc3\x4a\xc3\x4b\xc3\x4c\xc3\x4d\xc3\x4e\xc3\x4f\xc3\x50\xc3\x51\xc3\x52\xc3\x53\xc3\x54\xc3\x55\xc3\x56\xc3\x57\xc3\x58\xc3\x59\xc3\x5a\xc3\x5b\xc3\x5c\xc3\x5d\xc3\x5e\xc3\x5f\xc3\x60\xc3\x61\xc3\x62\xc3\x63\xc3\x64\xc3\x65\xc3\x66\xc3\x67\xc3\x68\xc3\x69\xc3\x6a\xc3\x6b\xc3\x6c\xc3\x6d\xc3\x6e\xc3\x6f\xc3\x70\xc3\x71\xc3\x72\xc3\x73\xc3\x74\xc3\x75\xc3\x76\xc3\x77\xc3\x78\xc3\x79\xc3\x7a\xc3\x7b\xc3\x7c\xc3\x7d\xc3\x7e\xc3\x7f\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85", /* e100 */ "\xc3\x86\xc3\x87\xc3\x88\xc3\x89\xc3\x8a\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\xc3\x90\xc3\x91\xc3\x92\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\xc3\x9d\xc3\x9e\xc3\x9f\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xb7\xc3\xb8\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf\xc3\xc0\xc3\xc1\xc3\xc2\xc3\xc3\xc3\xc4\xc3\xc5\xc3\xc6\xc3\xc7\xc3\xc8\xc3\xc9\xc3\xca\xc3\xcb\xc3\xcc\xc3\xcd\xc3\xce\xc3\xcf\xc3\xd0\xc3\xd1\xc3\xd2\xc3\xd3\xc3\xd4\xc3\xd5\xc3\xd6\xc3\xd7\xc3\xd8\xc3\xd9\xc3\xda\xc3\xdb\xc3\xdc\xc3\xdd\xc3\xde\xc3\xdf\xc3\xe0\xc3\xe1\xc3\xe2\xc3\xe3\xc3\xe4\xc3\xe5\xc3\xe6\xc3\xe7\xc3\xe8\xc3\xe9\xc3\xea\xc3\xeb\xc3\xec\xc3\xed\xc3\xee\xc3\xef\xc3\xf0\xc3\xf1\xc3\xf2\xc3\xf3\xc3\xf4\xc3\xf5\xc3\xf6\xc3\xf7\xc3\xf8\xc3\xf9\xc3\xfa\xc3\xfb\xc3\xfc\xc3\xfd\xc4\x41\xc4\x42\xc4\x43\xc4\x44\xc4\x45\xc4\x46\xc4\x47\xc4\x48", /* e180 */ "\xc4\x49\xc4\x4a\xc4\x4b\xc4\x4c\xc4\x4d\xc4\x4e\xc4\x4f\xc4\x50\xc4\x51\xc4\x52\xc4\x53\xc4\x54\xc4\x55\xc4\x56\xc4\x57\xc4\x58\xc4\x59\xc4\x5a\xc4\x5b\xc4\x5c\xc4\x5d\xc4\x5e\xc4\x5f\xc4\x60\xc4\x61\xc4\x62\xc4\x63\xc4\x64\xc4\x65\xc4\x66\xc4\x67\xc4\x68\xc4\x69\xc4\x6a\xc4\x6b\xc4\x6c\xc4\x6d\xc4\x6e\xc4\x6f\xc4\x70\xc4\x71\xc4\x72\xc4\x73\xc4\x74\xc4\x75\xc4\x76\xc4\x77\xc4\x78\xc4\x79\xc4\x7a\xc4\x7b\xc4\x7c\xc4\x7d\xc4\x7e\xc4\x7f\xc4\x81\xc4\x82\xc4\x83\xc4\x84\xc4\x85\xc4\x86\xc4\x87\xc4\x88\xc4\x89\xc4\x8a\xc4\x8b\xc4\x8c\xc4\x8d\xc4\x8e\xc4\x8f\xc4\x90\xc4\x91\xc4\x92\xc4\x93\xc4\x94\xc4\x95\xc4\x96\xc4\x97\xc4\x98\xc4\x99\xc4\x9a\xc4\x9b\xc4\x9c\xc4\x9d\xc4\x9e\xc4\x9f\xc4\xa0\xc4\xa1\xc4\xa2\xc4\xa3\xc4\xa4\xc4\xa5\xc4\xa6\xc4\xa7\xc4\xa8\xc4\xa9\xc4\xaa\xc4\xab\xc4\xac\xc4\xad\xc4\xae\xc4\xaf\xc4\xb0\xc4\xb1\xc4\xb2\xc4\xb3\xc4\xb4\xc4\xb5\xc4\xb6\xc4\xb7\xc4\xb8\xc4\xb9\xc4\xba\xc4\xbb\xc4\xbc\xc4\xbd\xc4\xbe\xc4\xbf\xc4\xc0\xc4\xc1\xc4\xc2\xc4\xc3\xc4\xc4\xc4\xc5\xc4\xc6\xc4\xc7\xc4\xc8\xc4\xc9", /* e200 */ "\xc4\xca\xc4\xcb\xc4\xcc\xc4\xcd\xc4\xce\xc4\xcf\xc4\xd0\xc4\xd1\xc4\xd2\xc4\xd3\xc4\xd4\xc4\xd5\xc4\xd6\xc4\xd7\xc4\xd8\xc4\xd9\xc4\xda\xc4\xdb\xc4\xdc\xc4\xdd\xc4\xde\xc4\xdf\xc4\xe0\xc4\xe1\xc4\xe2\xc4\xe3\xc4\xe4\xc4\xe5\xc4\xe6\xc4\xe7\xc4\xe8\xc4\xe9\xc4\xea\xc4\xeb\xc4\xec\xc4\xed\xc4\xee\xc4\xef\xc4\xf0\xc4\xf1\xc4\xf2\xc4\xf3\xc4\xf4\xc4\xf5\xc4\xf6\xc4\xf7\xc4\xf8\xc4\xf9\xc4\xfa\xc4\xfb\xc4\xfc\xc4\xfd\xc5\x41\xc5\x42\xc5\x43\xc5\x44\xc5\x45\xc5\x46\xc5\x47\xc5\x48\xc5\x49\xc5\x4a\xc5\x4b\xc5\x4c\xc5\x4d\xc5\x4e\xc5\x4f\xc5\x50\xc5\x51\xc5\x52\xc5\x53\xc5\x54\xc5\x55\xc5\x56\xc5\x57\xc5\x58\xc5\x59\xc5\x5a\xc5\x5b\xc5\x5c\xc5\x5d\xc5\x5e\xc5\x5f\xc5\x60\xc5\x61\xc5\x62\xc5\x63\xc5\x64\xc5\x65\xc5\x66\xc5\x67\xc5\x68\xc5\x69\xc5\x6a\xc5\x6b\xc5\x6c\xc5\x6d\xc5\x6e\xc5\x6f\xc5\x70\xc5\x71\xc5\x72\xc5\x73\xc5\x74\xc5\x75\xc5\x76\xc5\x77\xc5\x78\xc5\x79\xc5\x7a\xc5\x7b\xc5\x7c\xc5\x7d\xc5\x7e\xc5\x7f\xc5\x81\xc5\x82\xc5\x83\xc5\x84\xc5\x85\xc5\x86\xc5\x87\xc5\x88\xc5\x89\xc5\x8a\xc5\x8b\xc5\x8c\xc5\x8d", /* e280 */ "\xc5\x8e\xc5\x8f\xc5\x90\xc5\x91\xc5\x92\xc5\x93\xc5\x94\xc5\x95\xc5\x96\xc5\x97\xc5\x98\xc5\x99\xc5\x9a\xc5\x9b\xc5\x9c\xc5\x9d\xc5\x9e\xc5\x9f\xc5\xa0\xc5\xa1\xc5\xa2\xc5\xa3\xc5\xa4\xc5\xa5\xc5\xa6\xc5\xa7\xc5\xa8\xc5\xa9\xc5\xaa\xc5\xab\xc5\xac\xc5\xad\xc5\xae\xc5\xaf\xc5\xb0\xc5\xb1\xc5\xb2\xc5\xb3\xc5\xb4\xc5\xb5\xc5\xb6\xc5\xb7\xc5\xb8\xc5\xb9\xc5\xba\xc5\xbb\xc5\xbc\xc5\xbd\xc5\xbe\xc5\xbf\xc5\xc0\xc5\xc1\xc5\xc2\xc5\xc3\xc5\xc4\xc5\xc5\xc5\xc6\xc5\xc7\xc5\xc8\xc5\xc9\xc5\xca\xc5\xcb\xc5\xcc\xc5\xcd\xc5\xce\xc5\xcf\xc5\xd0\xc5\xd1\xc5\xd2\xc5\xd3\xc5\xd4\xc5\xd5\xc5\xd6\xc5\xd7\xc5\xd8\xc5\xd9\xc5\xda\xc5\xdb\xc5\xdc\xc5\xdd\xc5\xde\xc5\xdf\xc5\xe0\xc5\xe1\xc5\xe2\xc5\xe3\xc5\xe4\xc5\xe5\xc5\xe6\xc5\xe7\xc5\xe8\xc5\xe9\xc5\xea\xc5\xeb\xc5\xec\xc5\xed\xc5\xee\xc5\xef\xc5\xf0\xc5\xf1\xc5\xf2\xc5\xf3\xc5\xf4\xc5\xf5\xc5\xf6\xc5\xf7\xc5\xf8\xc5\xf9\xc5\xfa\xc5\xfb\xc5\xfc\xc5\xfd\xc6\x41\xc6\x42\xc6\x43\xc6\x44\xc6\x45\xc6\x46\xc6\x47\xc6\x48\xc6\x49\xc6\x4a\xc6\x4b\xc6\x4c\xc6\x4d\xc6\x4e\xc6\x4f\xc6\x50", /* e300 */ "\xc6\x51\xc6\x52\xc6\x53\xc6\x54\xc6\x55\xc6\x56\xc6\x57\xc6\x58\xc6\x59\xc6\x5a\xc6\x5b\xc6\x5c\xc6\x5d\xc6\x5e\xc6\x5f\xc6\x60\xc6\x61\xc6\x62\xc6\x63\xc6\x64\xc6\x65\xc6\x66\xc6\x67\xc6\x68\xc6\x69\xc6\x6a\xc6\x6b\xc6\x6c\xc6\x6d\xc6\x6e\xc6\x6f\xc6\x70\xc6\x71\xc6\x72\xc6\x73\xc6\x74\xc6\x75\xc6\x76\xc6\x77\xc6\x78\xc6\x79\xc6\x7a\xc6\x7b\xc6\x7c\xc6\x7d\xc6\x7e\xc6\x7f\xc6\x81\xc6\x82\xc6\x83\xc6\x84\xc6\x85\xc6\x86\xc6\x87\xc6\x88\xc6\x89\xc6\x8a\xc6\x8b\xc6\x8c\xc6\x8d\xc6\x8e\xc6\x8f\xc6\x90\xc6\x91\xc6\x92\xc6\x93\xc6\x94\xc6\x95\xc6\x96\xc6\x97\xc6\x98\xc6\x99\xc6\x9a\xc6\x9b\xc6\x9c\xc6\x9d\xc6\x9e\xc6\x9f\xc6\xa0\xc6\xa1\xc6\xa2\xc6\xa3\xc6\xa4\xc6\xa5\xc6\xa6\xc6\xa7\xc6\xa8\xc6\xa9\xc6\xaa\xc6\xab\xc6\xac\xc6\xad\xc6\xae\xc6\xaf\xc6\xb0\xc6\xb1\xc6\xb2\xc6\xb3\xc6\xb4\xc6\xb5\xc6\xb6\xc6\xb7\xc6\xb8\xc6\xb9\xc6\xba\xc6\xbb\xc6\xbc\xc6\xbd\xc6\xbe\xc6\xbf\xc6\xc0\xc6\xc1\xc6\xc2\xc6\xc3\xc6\xc4\xc6\xc5\xc6\xc6\xc6\xc7\xc6\xc8\xc6\xc9\xc6\xca\xc6\xcb\xc6\xcc\xc6\xcd\xc6\xce\xc6\xcf\xc6\xd0\xc6\xd1", /* e380 */ "\xc6\xd2\xc6\xd3\xc6\xd4\xc6\xd5\xc6\xd6\xc6\xd7\xc6\xd8\xc6\xd9\xc6\xda\xc6\xdb\xc6\xdc\xc6\xdd\xc6\xde\xc6\xdf\xc6\xe0\xc6\xe1\xc6\xe2\xc6\xe3\xc6\xe4\xc6\xe5\xc6\xe6\xc6\xe7\xc6\xe8\xc6\xe9\xc6\xea\xc6\xeb\xc6\xec\xc6\xed\xc6\xee\xc6\xef\xc6\xf0\xc6\xf1\xc6\xf2\xc6\xf3\xc6\xf4\xc6\xf5\xc6\xf6\xc6\xf7\xc6\xf8\xc6\xf9\xc6\xfa\xc6\xfb\xc6\xfc\xc6\xfd\xc7\x41\xc7\x42\xc7\x43\xc7\x44\xc7\x45\xc7\x46\xc7\x47\xc7\x48\xc7\x49\xc7\x4a\xc7\x4b\xc7\x4c\xc7\x4d\xc7\x4e\xc7\x4f\xc7\x50\xc7\x51\xc7\x52\xc7\x53\xc7\x54\xc7\x55\xc7\x56\xc7\x57\xc7\x58\xc7\x59\xc7\x5a\xc7\x5b\xc7\x5c\xc7\x5d\xc7\x5e\xc7\x5f\xc7\x60\xc7\x61\xc7\x62\xc7\x63\xc7\x64\xc7\x65\xc7\x66\xc7\x67\xc7\x68\xc7\x69\xc7\x6a\xc7\x6b\xc7\x6c\xc7\x6d\xc7\x6e\xc7\x6f\xc7\x70\xc7\x71\xc7\x72\xc7\x73\xc7\x74\xc7\x75\xc7\x76\xc7\x77\xc7\x78\xc7\x79\xc7\x7a\xc7\x7b\xc7\x7c\xc7\x7d\xc7\x7e\xc7\x7f\xc7\x81\xc7\x82\xc7\x83\xc7\x84\xc7\x85\xc7\x86\xc7\x87\xc7\x88\xc7\x89\xc7\x8a\xc7\x8b\xc7\x8c\xc7\x8d\xc7\x8e\xc7\x8f\xc7\x90\xc7\x91\xc7\x92\xc7\x93\xc7\x94\xc7\x95", /* e400 */ "\xc7\x96\xc7\x97\xc7\x98\xc7\x99\xc7\x9a\xc7\x9b\xc7\x9c\xc7\x9d\xc7\x9e\xc7\x9f\xc7\xa0\xc7\xa1\xc7\xa2\xc7\xa3\xc7\xa4\xc7\xa5\xc7\xa6\xc7\xa7\xc7\xa8\xc7\xa9\xc7\xaa\xc7\xab\xc7\xac\xc7\xad\xc7\xae\xc7\xaf\xc7\xb0\xc7\xb1\xc7\xb2\xc7\xb3\xc7\xb4\xc7\xb5\xc7\xb6\xc7\xb7\xc7\xb8\xc7\xb9\xc7\xba\xc7\xbb\xc7\xbc\xc7\xbd\xc7\xbe\xc7\xbf\xc7\xc0\xc7\xc1\xc7\xc2\xc7\xc3\xc7\xc4\xc7\xc5\xc7\xc6\xc7\xc7\xc7\xc8\xc7\xc9\xc7\xca\xc7\xcb\xc7\xcc\xc7\xcd\xc7\xce\xc7\xcf\xc7\xd0\xc7\xd1\xc7\xd2\xc7\xd3\xc7\xd4\xc7\xd5\xc7\xd6\xc7\xd7\xc7\xd8\xc7\xd9\xc7\xda\xc7\xdb\xc7\xdc\xc7\xdd\xc7\xde\xc7\xdf\xc7\xe0\xc7\xe1\xc7\xe2\xc7\xe3\xc7\xe4\xc7\xe5\xc7\xe6\xc7\xe7\xc7\xe8\xc7\xe9\xc7\xea\xc7\xeb\xc7\xec\xc7\xed\xc7\xee\xc7\xef\xc7\xf0\xc7\xf1\xc7\xf2\xc7\xf3\xc7\xf4\xc7\xf5\xc7\xf6\xc7\xf7\xc7\xf8\xc7\xf9\xc7\xfa\xc7\xfb\xc7\xfc\xc7\xfd\xc8\x41\xc8\x42\xc8\x43\xc8\x44\xc8\x45\xc8\x46\xc8\x47\xc8\x48\xc8\x49\xc8\x4a\xc8\x4b\xc8\x4c\xc8\x4d\xc8\x4e\xc8\x4f\xc8\x50\xc8\x51\xc8\x52\xc8\x53\xc8\x54\xc8\x55\xc8\x56\xc8\x57\xc8\x58", /* e480 */ "\xc8\x59\xc8\x5a\xc8\x5b\xc8\x5c\xc8\x5d\xc8\x5e\xc8\x5f\xc8\x60\xc8\x61\xc8\x62\xc8\x63\xc8\x64\xc8\x65\xc8\x66\xc8\x67\xc8\x68\xc8\x69\xc8\x6a\xc8\x6b\xc8\x6c\xc8\x6d\xc8\x6e\xc8\x6f\xc8\x70\xc8\x71\xc8\x72\xc8\x73\xc8\x74\xc8\x75\xc8\x76\xc8\x77\xc8\x78\xc8\x79\xc8\x7a\xc8\x7b\xc8\x7c\xc8\x7d\xc8\x7e\xc8\x7f\xc8\x81\xc8\x82\xc8\x83\xc8\x84\xc8\x85\xc8\x86\xc8\x87\xc8\x88\xc8\x89\xc8\x8a\xc8\x8b\xc8\x8c\xc8\x8d\xc8\x8e\xc8\x8f\xc8\x90\xc8\x91\xc8\x92\xc8\x93\xc8\x94\xc8\x95\xc8\x96\xc8\x97\xc8\x98\xc8\x99\xc8\x9a\xc8\x9b\xc8\x9c\xc8\x9d\xc8\x9e\xc8\x9f\xc8\xa0\xc8\xa1\xc8\xa2\xc8\xa3\xc8\xa4\xc8\xa5\xc8\xa6\xc8\xa7\xc8\xa8\xc8\xa9\xc8\xaa\xc8\xab\xc8\xac\xc8\xad\xc8\xae\xc8\xaf\xc8\xb0\xc8\xb1\xc8\xb2\xc8\xb3\xc8\xb4\xc8\xb5\xc8\xb6\xc8\xb7\xc8\xb8\xc8\xb9\xc8\xba\xc8\xbb\xc8\xbc\xc8\xbd\xc8\xbe\xc8\xbf\xc8\xc0\xc8\xc1\xc8\xc2\xc8\xc3\xc8\xc4\xc8\xc5\xc8\xc6\xc8\xc7\xc8\xc8\xc8\xc9\xc8\xca\xc8\xcb\xc8\xcc\xc8\xcd\xc8\xce\xc8\xcf\xc8\xd0\xc8\xd1\xc8\xd2\xc8\xd3\xc8\xd4\xc8\xd5\xc8\xd6\xc8\xd7\xc8\xd8\xc8\xd9", /* e500 */ "\xc8\xda\xc8\xdb\xc8\xdc\xc8\xdd\xc8\xde\xc8\xdf\xc8\xe0\xc8\xe1\xc8\xe2\xc8\xe3\xc8\xe4\xc8\xe5\xc8\xe6\xc8\xe7\xc8\xe8\xc8\xe9\xc8\xea\xc8\xeb\xc8\xec\xc8\xed\xc8\xee\xc8\xef\xc8\xf0\xc8\xf1\xc8\xf2\xc8\xf3\xc8\xf4\xc8\xf5\xc8\xf6\xc8\xf7\xc8\xf8\xc8\xf9\xc8\xfa\xc8\xfb\xc8\xfc\xc8\xfd\xc9\x41\xc9\x42\xc9\x43\xc9\x44\xc9\x45\xc9\x46\xc9\x47\xc9\x48\xc9\x49\xc9\x4a\xc9\x4b\xc9\x4c\xc9\x4d\xc9\x4e\xc9\x4f\xc9\x50\xc9\x51\xc9\x52\xc9\x53\xc9\x54\xc9\x55\xc9\x56\xc9\x57\xc9\x58\xc9\x59\xc9\x5a\xc9\x5b\xc9\x5c\xc9\x5d\xc9\x5e\xc9\x5f\xc9\x60\xc9\x61\xc9\x62\xc9\x63\xc9\x64\xc9\x65\xc9\x66\xc9\x67\xc9\x68\xc9\x69\xc9\x6a\xc9\x6b\xc9\x6c\xc9\x6d\xc9\x6e\xc9\x6f\xc9\x70\xc9\x71\xc9\x72\xc9\x73\xc9\x74\xc9\x75\xc9\x76\xc9\x77\xc9\x78\xc9\x79\xc9\x7a\xc9\x7b\xc9\x7c\xc9\x7d\xc9\x7e\xc9\x7f\xc9\x81\xc9\x82\xc9\x83\xc9\x84\xc9\x85\xc9\x86\xc9\x87\xc9\x88\xc9\x89\xc9\x8a\xc9\x8b\xc9\x8c\xc9\x8d\xc9\x8e\xc9\x8f\xc9\x90\xc9\x91\xc9\x92\xc9\x93\xc9\x94\xc9\x95\xc9\x96\xc9\x97\xc9\x98\xc9\x99\xc9\x9a\xc9\x9b\xc9\x9c\xc9\x9d", /* e580 */ "\xc9\x9e\xc9\x9f\xc9\xa0\xc9\xa1\xc9\xa2\xc9\xa3\xc9\xa4\xc9\xa5\xc9\xa6\xc9\xa7\xc9\xa8\xc9\xa9\xc9\xaa\xc9\xab\xc9\xac\xc9\xad\xc9\xae\xc9\xaf\xc9\xb0\xc9\xb1\xc9\xb2\xc9\xb3\xc9\xb4\xc9\xb5\xc9\xb6\xc9\xb7\xc9\xb8\xc9\xb9\xc9\xba\xc9\xbb\xc9\xbc\xc9\xbd\xc9\xbe\xc9\xbf\xc9\xc0\xc9\xc1\xc9\xc2\xc9\xc3\xc9\xc4\xc9\xc5\xc9\xc6\xc9\xc7\xc9\xc8\xc9\xc9\xc9\xca\xc9\xcb\xc9\xcc\xc9\xcd\xc9\xce\xc9\xcf\xc9\xd0\xc9\xd1\xc9\xd2\xc9\xd3\xc9\xd4\xc9\xd5\xc9\xd6\xc9\xd7\xc9\xd8\xc9\xd9\xc9\xda\xc9\xdb\xc9\xdc\xc9\xdd\xc9\xde\xc9\xdf\xc9\xe0\xc9\xe1\xc9\xe2\xc9\xe3\xc9\xe4\xc9\xe5\xc9\xe6\xc9\xe7\xc9\xe8\xc9\xe9\xc9\xea\xc9\xeb\xc9\xec\xc9\xed\xc9\xee\xc9\xef\xc9\xf0\xc9\xf1\xc9\xf2\xc9\xf3\xc9\xf4\xc9\xf5\xc9\xf6\xc9\xf7\xc9\xf8\xc9\xf9\xc9\xfa\xc9\xfb\xc9\xfc\xc9\xfd\xca\x41\xca\x42\xca\x43\xca\x44\xca\x45\xca\x46\xca\x47\xca\x48\xca\x49\xca\x4a\xca\x4b\xca\x4c\xca\x4d\xca\x4e\xca\x4f\xca\x50\xca\x51\xca\x52\xca\x53\xca\x54\xca\x55\xca\x56\xca\x57\xca\x58\xca\x59\xca\x5a\xca\x5b\xca\x5c\xca\x5d\xca\x5e\xca\x5f\xca\x60", /* e600 */ "\xca\x61\xca\x62\xca\x63\xca\x64\xca\x65\xca\x66\xca\x67\xca\x68\xca\x69\xca\x6a\xca\x6b\xca\x6c\xca\x6d\xca\x6e\xca\x6f\xca\x70\xca\x71\xca\x72\xca\x73\xca\x74\xca\x75\xca\x76\xca\x77\xca\x78\xca\x79\xca\x7a\xca\x7b\xca\x7c\xca\x7d\xca\x7e\xca\x7f\xca\x81\xca\x82\xca\x83\xca\x84\xca\x85\xca\x86\xca\x87\xca\x88\xca\x89\xca\x8a\xca\x8b\xca\x8c\xca\x8d\xca\x8e\xca\x8f\xca\x90\xca\x91\xca\x92\xca\x93\xca\x94\xca\x95\xca\x96\xca\x97\xca\x98\xca\x99\xca\x9a\xca\x9b\xca\x9c\xca\x9d\xca\x9e\xca\x9f\xca\xa0\xca\xa1\xca\xa2\xca\xa3\xca\xa4\xca\xa5\xca\xa6\xca\xa7\xca\xa8\xca\xa9\xca\xaa\xca\xab\xca\xac\xca\xad\xca\xae\xca\xaf\xca\xb0\xca\xb1\xca\xb2\xca\xb3\xca\xb4\xca\xb5\xca\xb6\xca\xb7\xca\xb8\xca\xb9\xca\xba\xca\xbb\xca\xbc\xca\xbd\xca\xbe\xca\xbf\xca\xc0\xca\xc1\xca\xc2\xca\xc3\xca\xc4\xca\xc5\xca\xc6\xca\xc7\xca\xc8\xca\xc9\xca\xca\xca\xcb\xca\xcc\xca\xcd\xca\xce\xca\xcf\xca\xd0\xca\xd1\xca\xd2\xca\xd3\xca\xd4\xca\xd5\xca\xd6\xca\xd7\xca\xd8\xca\xd9\xca\xda\xca\xdb\xca\xdc\xca\xdd\xca\xde\xca\xdf\xca\xe0\xca\xe1", /* e680 */ "\xca\xe2\xca\xe3\xca\xe4\xca\xe5\xca\xe6\xca\xe7\xca\xe8\xca\xe9\xca\xea\xca\xeb\xca\xec\xca\xed\xca\xee\xca\xef\xca\xf0\xca\xf1\xca\xf2\xca\xf3\xca\xf4\xca\xf5\xca\xf6\xca\xf7\xca\xf8\xca\xf9\xca\xfa\xca\xfb\xca\xfc\xca\xfd\xcb\x41\xcb\x42\xcb\x43\xcb\x44\xcb\x45\xcb\x46\xcb\x47\xcb\x48\xcb\x49\xcb\x4a\xcb\x4b\xcb\x4c\xcb\x4d\xcb\x4e\xcb\x4f\xcb\x50\xcb\x51\xcb\x52\xcb\x53\xcb\x54\xcb\x55\xcb\x56\xcb\x57\xcb\x58\xcb\x59\xcb\x5a\xcb\x5b\xcb\x5c\xcb\x5d\xcb\x5e\xcb\x5f\xcb\x60\xcb\x61\xcb\x62\xcb\x63\xcb\x64\xcb\x65\xcb\x66\xcb\x67\xcb\x68\xcb\x69\xcb\x6a\xcb\x6b\xcb\x6c\xcb\x6d\xcb\x6e\xcb\x6f\xcb\x70\xcb\x71\xcb\x72\xcb\x73\xcb\x74\xcb\x75\xcb\x76\xcb\x77\xcb\x78\xcb\x79\xcb\x7a\xcb\x7b\xcb\x7c\xcb\x7d\xcb\x7e\xcb\x7f\xcb\x81\xcb\x82\xcb\x83\xcb\x84\xcb\x85\xcb\x86\xcb\x87\xcb\x88\xcb\x89\xcb\x8a\xcb\x8b\xcb\x8c\xcb\x8d\xcb\x8e\xcb\x8f\xcb\x90\xcb\x91\xcb\x92\xcb\x93\xcb\x94\xcb\x95\xcb\x96\xcb\x97\xcb\x98\xcb\x99\xcb\x9a\xcb\x9b\xcb\x9c\xcb\x9d\xcb\x9e\xcb\x9f\xcb\xa0\xcb\xa1\xcb\xa2\xcb\xa3\xcb\xa4\xcb\xa5", /* e700 */ "\xcb\xa6\xcb\xa7\xcb\xa8\xcb\xa9\xcb\xaa\xcb\xab\xcb\xac\xcb\xad\xcb\xae\xcb\xaf\xcb\xb0\xcb\xb1\xcb\xb2\xcb\xb3\xcb\xb4\xcb\xb5\xcb\xb6\xcb\xb7\xcb\xb8\xcb\xb9\xcb\xba\xcb\xbb\xcb\xbc\xcb\xbd\xcb\xbe\xcb\xbf\xcb\xc0\xcb\xc1\xcb\xc2\xcb\xc3\xcb\xc4\xcb\xc5\xcb\xc6\xcb\xc7\xcb\xc8\xcb\xc9\xcb\xca\xcb\xcb\xcb\xcc\xcb\xcd\xcb\xce\xcb\xcf\xcb\xd0\xcb\xd1\xcb\xd2\xcb\xd3\xcb\xd4\xcb\xd5\xcb\xd6\xcb\xd7\xcb\xd8\xcb\xd9\xcb\xda\xcb\xdb\xcb\xdc\xcb\xdd\xcb\xde\xcb\xdf\xcb\xe0\xcb\xe1\xcb\xe2\xcb\xe3\xcb\xe4\xcb\xe5\xcb\xe6\xcb\xe7\xcb\xe8\xcb\xe9\xcb\xea\xcb\xeb\xcb\xec\xcb\xed\xcb\xee\xcb\xef\xcb\xf0\xcb\xf1\xcb\xf2\xcb\xf3\xcb\xf4\xcb\xf5\xcb\xf6\xcb\xf7\xcb\xf8\xcb\xf9\xcb\xfa\xcb\xfb\xcb\xfc\xcb\xfd\xcc\x41\xcc\x42\xcc\x43\xcc\x44\xcc\x45\xcc\x46\xcc\x47\xcc\x48\xcc\x49\xcc\x4a\xcc\x4b\xcc\x4c\xcc\x4d\xcc\x4e\xcc\x4f\xcc\x50\xcc\x51\xcc\x52\xcc\x53\xcc\x54\xcc\x55\xcc\x56\xcc\x57\xcc\x58\xcc\x59\xcc\x5a\xcc\x5b\xcc\x5c\xcc\x5d\xcc\x5e\xcc\x5f\xcc\x60\xcc\x61\xcc\x62\xcc\x63\xcc\x64\xcc\x65\xcc\x66\xcc\x67\xcc\x68", /* e780 */ "\xcc\x69\xcc\x6a\xcc\x6b\xcc\x6c\xcc\x6d\xcc\x6e\xcc\x6f\xcc\x70\xcc\x71\xcc\x72\xcc\x73\xcc\x74\xcc\x75\xcc\x76\xcc\x77\xcc\x78\xcc\x79\xcc\x7a\xcc\x7b\xcc\x7c\xcc\x7d\xcc\x7e\xcc\x7f\xcc\x81\xcc\x82\xcc\x83\xcc\x84\xcc\x85\xcc\x86\xcc\x87\xcc\x88\xcc\x89\xcc\x8a\xcc\x8b\xcc\x8c\xcc\x8d\xcc\x8e\xcc\x8f\xcc\x90\xcc\x91\xcc\x92\xcc\x93\xcc\x94\xcc\x95\xcc\x96\xcc\x97\xcc\x98\xcc\x99\xcc\x9a\xcc\x9b\xcc\x9c\xcc\x9d\xcc\x9e\xcc\x9f\xcc\xa0\xcc\xa1\xcc\xa2\xcc\xa3\xcc\xa4\xcc\xa5\xcc\xa6\xcc\xa7\xcc\xa8\xcc\xa9\xcc\xaa\xcc\xab\xcc\xac\xcc\xad\xcc\xae\xcc\xaf\xcc\xb0\xcc\xb1\xcc\xb2\xcc\xb3\xcc\xb4\xcc\xb5\xcc\xb6\xcc\xb7\xcc\xb8\xcc\xb9\xcc\xba\xcc\xbb\xcc\xbc\xcc\xbd\xcc\xbe\xcc\xbf\xcc\xc0\xcc\xc1\xcc\xc2\xcc\xc3\xcc\xc4\xcc\xc5\xcc\xc6\xcc\xc7\xcc\xc8\xcc\xc9\xcc\xca\xcc\xcb\xcc\xcc\xcc\xcd\xcc\xce\xcc\xcf\xcc\xd0\xcc\xd1\xcc\xd2\xcc\xd3\xcc\xd4\xcc\xd5\xcc\xd6\xcc\xd7\xcc\xd8\xcc\xd9\xcc\xda\xcc\xdb\xcc\xdc\xcc\xdd\xcc\xde\xcc\xdf\xcc\xe0\xcc\xe1\xcc\xe2\xcc\xe3\xcc\xe4\xcc\xe5\xcc\xe6\xcc\xe7\xcc\xe8\xcc\xe9", /* e800 */ "\xcc\xea\xcc\xeb\xcc\xec\xcc\xed\xcc\xee\xcc\xef\xcc\xf0\xcc\xf1\xcc\xf2\xcc\xf3\xcc\xf4\xcc\xf5\xcc\xf6\xcc\xf7\xcc\xf8\xcc\xf9\xcc\xfa\xcc\xfb\xcc\xfc\xcc\xfd\xcd\x41\xcd\x42\xcd\x43\xcd\x44\xcd\x45\xcd\x46\xcd\x47\xcd\x48\xcd\x49\xcd\x4a\xcd\x4b\xcd\x4c\xcd\x4d\xcd\x4e\xcd\x4f\xcd\x50\xcd\x51\xcd\x52\xcd\x53\xcd\x54\xcd\x55\xcd\x56\xcd\x57\xcd\x58\xcd\x59\xcd\x5a\xcd\x5b\xcd\x5c\xcd\x5d\xcd\x5e\xcd\x5f\xcd\x60\xcd\x61\xcd\x62\xcd\x63\xcd\x64\xcd\x65\xcd\x66\xcd\x67\xcd\x68\xcd\x69\xcd\x6a\xcd\x6b\xcd\x6c\xcd\x6d\xcd\x6e\xcd\x6f\xcd\x70\xcd\x71\xcd\x72\xcd\x73\xcd\x74\xcd\x75\xcd\x76\xcd\x77\xcd\x78\xcd\x79\xcd\x7a\xcd\x7b\xcd\x7c\xcd\x7d\xcd\x7e\xcd\x7f\xcd\x81\xcd\x82\xcd\x83\xcd\x84\xcd\x85\xcd\x86\xcd\x87\xcd\x88\xcd\x89\xcd\x8a\xcd\x8b\xcd\x8c\xcd\x8d\xcd\x8e\xcd\x8f\xcd\x90\xcd\x91\xcd\x92\xcd\x93\xcd\x94\xcd\x95\xcd\x96\xcd\x97\xcd\x98\xcd\x99\xcd\x9a\xcd\x9b\xcd\x9c\xcd\x9d\xcd\x9e\xcd\x9f\xcd\xa0\xcd\xa1\xcd\xa2\xcd\xa3\xcd\xa4\xcd\xa5\xcd\xa6\xcd\xa7\xcd\xa8\xcd\xa9\xcd\xaa\xcd\xab\xcd\xac\xcd\xad", /* e880 */ "\xcd\xae\xcd\xaf\xcd\xb0\xcd\xb1\xcd\xb2\xcd\xb3\xcd\xb4\xcd\xb5\xcd\xb6\xcd\xb7\xcd\xb8\xcd\xb9\xcd\xba\xcd\xbb\xcd\xbc\xcd\xbd\xcd\xbe\xcd\xbf\xcd\xc0\xcd\xc1\xcd\xc2\xcd\xc3\xcd\xc4\xcd\xc5\xcd\xc6\xcd\xc7\xcd\xc8\xcd\xc9\xcd\xca\xcd\xcb\xcd\xcc\xcd\xcd\xcd\xce\xcd\xcf\xcd\xd0\xcd\xd1\xcd\xd2\xcd\xd3\xcd\xd4\xcd\xd5\xcd\xd6\xcd\xd7\xcd\xd8\xcd\xd9\xcd\xda\xcd\xdb\xcd\xdc\xcd\xdd\xcd\xde\xcd\xdf\xcd\xe0\xcd\xe1\xcd\xe2\xcd\xe3\xcd\xe4\xcd\xe5\xcd\xe6\xcd\xe7\xcd\xe8\xcd\xe9\xcd\xea\xcd\xeb\xcd\xec\xcd\xed\xcd\xee\xcd\xef\xcd\xf0\xcd\xf1\xcd\xf2\xcd\xf3\xcd\xf4\xcd\xf5\xcd\xf6\xcd\xf7\xcd\xf8\xcd\xf9\xcd\xfa\xcd\xfb\xcd\xfc\xcd\xfd\xce\x41\xce\x42\xce\x43\xce\x44\xce\x45\xce\x46\xce\x47\xce\x48\xce\x49\xce\x4a\xce\x4b\xce\x4c\xce\x4d\xce\x4e\xce\x4f\xce\x50\xce\x51\xce\x52\xce\x53\xce\x54\xce\x55\xce\x56\xce\x57\xce\x58\xce\x59\xce\x5a\xce\x5b\xce\x5c\xce\x5d\xce\x5e\xce\x5f\xce\x60\xce\x61\xce\x62\xce\x63\xce\x64\xce\x65\xce\x66\xce\x67\xce\x68\xce\x69\xce\x6a\xce\x6b\xce\x6c\xce\x6d\xce\x6e\xce\x6f\xce\x70", /* e900 */ "\xce\x71\xce\x72\xce\x73\xce\x74\xce\x75\xce\x76\xce\x77\xce\x78\xce\x79\xce\x7a\xce\x7b\xce\x7c\xce\x7d\xce\x7e\xce\x7f\xce\x81\xce\x82\xce\x83\xce\x84\xce\x85\xce\x86\xce\x87\xce\x88\xce\x89\xce\x8a\xce\x8b\xce\x8c\xce\x8d\xce\x8e\xce\x8f\xce\x90\xce\x91\xce\x92\xce\x93\xce\x94\xce\x95\xce\x96\xce\x97\xce\x98\xce\x99\xce\x9a\xce\x9b\xce\x9c\xce\x9d\xce\x9e\xce\x9f\xce\xa0\xce\xa1\xce\xa2\xce\xa3\xce\xa4\xce\xa5\xce\xa6\xce\xa7\xce\xa8\xce\xa9\xce\xaa\xce\xab\xce\xac\xce\xad\xce\xae\xce\xaf\xce\xb0\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xce\xb5\xce\xb6\xce\xb7\xce\xb8\xce\xb9\xce\xba\xce\xbb\xce\xbc\xce\xbd\xce\xbe\xce\xbf\xce\xc0\xce\xc1\xce\xc2\xce\xc3\xce\xc4\xce\xc5\xce\xc6\xce\xc7\xce\xc8\xce\xc9\xce\xca\xce\xcb\xce\xcc\xce\xcd\xce\xce\xce\xcf\xce\xd0\xce\xd1\xce\xd2\xce\xd3\xce\xd4\xce\xd5\xce\xd6\xce\xd7\xce\xd8\xce\xd9\xce\xda\xce\xdb\xce\xdc\xce\xdd\xce\xde\xce\xdf\xce\xe0\xce\xe1\xce\xe2\xce\xe3\xce\xe4\xce\xe5\xce\xe6\xce\xe7\xce\xe8\xce\xe9\xce\xea\xce\xeb\xce\xec\xce\xed\xce\xee\xce\xef\xce\xf0\xce\xf1", /* e980 */ "\xce\xf2\xce\xf3\xce\xf4\xce\xf5\xce\xf6\xce\xf7\xce\xf8\xce\xf9\xce\xfa\xce\xfb\xce\xfc\xce\xfd\xcf\x41\xcf\x42\xcf\x43\xcf\x44\xcf\x45\xcf\x46\xcf\x47\xcf\x48\xcf\x49\xcf\x4a\xcf\x4b\xcf\x4c\xcf\x4d\xcf\x4e\xcf\x4f\xcf\x50\xcf\x51\xcf\x52\xcf\x53\xcf\x54\xcf\x55\xcf\x56\xcf\x57\xcf\x58\xcf\x59\xcf\x5a\xcf\x5b\xcf\x5c\xcf\x5d\xcf\x5e\xcf\x5f\xcf\x60\xcf\x61\xcf\x62\xcf\x63\xcf\x64\xcf\x65\xcf\x66\xcf\x67\xcf\x68\xcf\x69\xcf\x6a\xcf\x6b\xcf\x6c\xcf\x6d\xcf\x6e\xcf\x6f\xcf\x70\xcf\x71\xcf\x72\xcf\x73\xcf\x74\xcf\x75\xcf\x76\xcf\x77\xcf\x78\xcf\x79\xcf\x7a\xcf\x7b\xcf\x7c\xcf\x7d\xcf\x7e\xcf\x7f\xcf\x81\xcf\x82\xcf\x83\xcf\x84\xcf\x85\xcf\x86\xcf\x87\xcf\x88\xcf\x89\xcf\x8a\xcf\x8b\xcf\x8c\xcf\x8d\xcf\x8e\xcf\x8f\xcf\x90\xcf\x91\xcf\x92\xcf\x93\xcf\x94\xcf\x95\xcf\x96\xcf\x97\xcf\x98\xcf\x99\xcf\x9a\xcf\x9b\xcf\x9c\xcf\x9d\xcf\x9e\xcf\x9f\xcf\xa0\xcf\xa1\xcf\xa2\xcf\xa3\xcf\xa4\xcf\xa5\xcf\xa6\xcf\xa7\xcf\xa8\xcf\xa9\xcf\xaa\xcf\xab\xcf\xac\xcf\xad\xcf\xae\xcf\xaf\xcf\xb0\xcf\xb1\xcf\xb2\xcf\xb3\xcf\xb4\xcf\xb5", /* ea00 */ "\xcf\xb6\xcf\xb7\xcf\xb8\xcf\xb9\xcf\xba\xcf\xbb\xcf\xbc\xcf\xbd\xcf\xbe\xcf\xbf\xcf\xc0\xcf\xc1\xcf\xc2\xcf\xc3\xcf\xc4\xcf\xc5\xcf\xc6\xcf\xc7\xcf\xc8\xcf\xc9\xcf\xca\xcf\xcb\xcf\xcc\xcf\xcd\xcf\xce\xcf\xcf\xcf\xd0\xcf\xd1\xcf\xd2\xcf\xd3\xcf\xd4\xcf\xd5\xcf\xd6\xcf\xd7\xcf\xd8\xcf\xd9\xcf\xda\xcf\xdb\xcf\xdc\xcf\xdd\xcf\xde\xcf\xdf\xcf\xe0\xcf\xe1\xcf\xe2\xcf\xe3\xcf\xe4\xcf\xe5\xcf\xe6\xcf\xe7\xcf\xe8\xcf\xe9\xcf\xea\xcf\xeb\xcf\xec\xcf\xed\xcf\xee\xcf\xef\xcf\xf0\xcf\xf1\xcf\xf2\xcf\xf3\xcf\xf4\xcf\xf5\xcf\xf6\xcf\xf7\xcf\xf8\xcf\xf9\xcf\xfa\xcf\xfb\xcf\xfc\xcf\xfd\xd0\x41\xd0\x42\xd0\x43\xd0\x44\xd0\x45\xd0\x46\xd0\x47\xd0\x48\xd0\x49\xd0\x4a\xd0\x4b\xd0\x4c\xd0\x4d\xd0\x4e\xd0\x4f\xd0\x50\xd0\x51\xd0\x52\xd0\x53\xd0\x54\xd0\x55\xd0\x56\xd0\x57\xd0\x58\xd0\x59\xd0\x5a\xd0\x5b\xd0\x5c\xd0\x5d\xd0\x5e\xd0\x5f\xd0\x60\xd0\x61\xd0\x62\xd0\x63\xd0\x64\xd0\x65\xd0\x66\xd0\x67\xd0\x68\xd0\x69\xd0\x6a\xd0\x6b\xd0\x6c\xd0\x6d\xd0\x6e\xd0\x6f\xd0\x70\xd0\x71\xd0\x72\xd0\x73\xd0\x74\xd0\x75\xd0\x76\xd0\x77\xd0\x78", /* ea80 */ "\xd0\x79\xd0\x7a\xd0\x7b\xd0\x7c\xd0\x7d\xd0\x7e\xd0\x7f\xd0\x81\xd0\x82\xd0\x83\xd0\x84\xd0\x85\xd0\x86\xd0\x87\xd0\x88\xd0\x89\xd0\x8a\xd0\x8b\xd0\x8c\xd0\x8d\xd0\x8e\xd0\x8f\xd0\x90\xd0\x91\xd0\x92\xd0\x93\xd0\x94\xd0\x95\xd0\x96\xd0\x97\xd0\x98\xd0\x99\xd0\x9a\xd0\x9b\xd0\x9c\xd0\x9d\xd0\x9e\xd0\x9f\xd0\xa0\xd0\xa1\xd0\xa2\xd0\xa3\xd0\xa4\xd0\xa5\xd0\xa6\xd0\xa7\xd0\xa8\xd0\xa9\xd0\xaa\xd0\xab\xd0\xac\xd0\xad\xd0\xae\xd0\xaf\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5\xd0\xb6\xd0\xb7\xd0\xb8\xd0\xb9\xd0\xba\xd0\xbb\xd0\xbc\xd0\xbd\xd0\xbe\xd0\xbf\xd0\xc0\xd0\xc1\xd0\xc2\xd0\xc3\xd0\xc4\xd0\xc5\xd0\xc6\xd0\xc7\xd0\xc8\xd0\xc9\xd0\xca\xd0\xcb\xd0\xcc\xd0\xcd\xd0\xce\xd0\xcf\xd0\xd0\xd0\xd1\xd0\xd2\xd0\xd3\xd0\xd4\xd0\xd5\xd0\xd6\xd0\xd7\xd0\xd8\xd0\xd9\xd0\xda\xd0\xdb\xd0\xdc\xd0\xdd\xd0\xde\xd0\xdf\xd0\xe0\xd0\xe1\xd0\xe2\xd0\xe3\xd0\xe4\xd0\xe5\xd0\xe6\xd0\xe7\xd0\xe8\xd0\xe9\xd0\xea\xd0\xeb\xd0\xec\xd0\xed\xd0\xee\xd0\xef\xd0\xf0\xd0\xf1\xd0\xf2\xd0\xf3\xd0\xf4\xd0\xf5\xd0\xf6\xd0\xf7\xd0\xf8\xd0\xf9", /* eb00 */ "\xd0\xfa\xd0\xfb\xd0\xfc\xd0\xfd\xd1\x41\xd1\x42\xd1\x43\xd1\x44\xd1\x45\xd1\x46\xd1\x47\xd1\x48\xd1\x49\xd1\x4a\xd1\x4b\xd1\x4c\xd1\x4d\xd1\x4e\xd1\x4f\xd1\x50\xd1\x51\xd1\x52\xd1\x53\xd1\x54\xd1\x55\xd1\x56\xd1\x57\xd1\x58\xd1\x59\xd1\x5a\xd1\x5b\xd1\x5c\xd1\x5d\xd1\x5e\xd1\x5f\xd1\x60\xd1\x61\xd1\x62\xd1\x63\xd1\x64\xd1\x65\xd1\x66\xd1\x67\xd1\x68\xd1\x69\xd1\x6a\xd1\x6b\xd1\x6c\xd1\x6d\xd1\x6e\xd1\x6f\xd1\x70\xd1\x71\xd1\x72\xd1\x73\xd1\x74\xd1\x75\xd1\x76\xd1\x77\xd1\x78\xd1\x79\xd1\x7a\xd1\x7b\xd1\x7c\xd1\x7d\xd1\x7e\xd1\x7f\xd1\x81\xd1\x82\xd1\x83\xd1\x84\xd1\x85\xd1\x86\xd1\x87\xd1\x88\xd1\x89\xd1\x8a\xd1\x8b\xd1\x8c\xd1\x8d\xd1\x8e\xd1\x8f\xd1\x90\xd1\x91\xd1\x92\xd1\x93\xd1\x94\xd1\x95\xd1\x96\xd1\x97\xd1\x98\xd1\x99\xd1\x9a\xd1\x9b\xd1\x9c\xd1\x9d\xd1\x9e\xd1\x9f\xd1\xa0\xd1\xa1\xd1\xa2\xd1\xa3\xd1\xa4\xd1\xa5\xd1\xa6\xd1\xa7\xd1\xa8\xd1\xa9\xd1\xaa\xd1\xab\xd1\xac\xd1\xad\xd1\xae\xd1\xaf\xd1\xb0\xd1\xb1\xd1\xb2\xd1\xb3\xd1\xb4\xd1\xb5\xd1\xb6\xd1\xb7\xd1\xb8\xd1\xb9\xd1\xba\xd1\xbb\xd1\xbc\xd1\xbd", /* eb80 */ "\xd1\xbe\xd1\xbf\xd1\xc0\xd1\xc1\xd1\xc2\xd1\xc3\xd1\xc4\xd1\xc5\xd1\xc6\xd1\xc7\xd1\xc8\xd1\xc9\xd1\xca\xd1\xcb\xd1\xcc\xd1\xcd\xd1\xce\xd1\xcf\xd1\xd0\xd1\xd1\xd1\xd2\xd1\xd3\xd1\xd4\xd1\xd5\xd1\xd6\xd1\xd7\xd1\xd8\xd1\xd9\xd1\xda\xd1\xdb\xd1\xdc\xd1\xdd\xd1\xde\xd1\xdf\xd1\xe0\xd1\xe1\xd1\xe2\xd1\xe3\xd1\xe4\xd1\xe5\xd1\xe6\xd1\xe7\xd1\xe8\xd1\xe9\xd1\xea\xd1\xeb\xd1\xec\xd1\xed\xd1\xee\xd1\xef\xd1\xf0\xd1\xf1\xd1\xf2\xd1\xf3\xd1\xf4\xd1\xf5\xd1\xf6\xd1\xf7\xd1\xf8\xd1\xf9\xd1\xfa\xd1\xfb\xd1\xfc\xd1\xfd\xd2\x41\xd2\x42\xd2\x43\xd2\x44\xd2\x45\xd2\x46\xd2\x47\xd2\x48\xd2\x49\xd2\x4a\xd2\x4b\xd2\x4c\xd2\x4d\xd2\x4e\xd2\x4f\xd2\x50\xd2\x51\xd2\x52\xd2\x53\xd2\x54\xd2\x55\xd2\x56\xd2\x57\xd2\x58\xd2\x59\xd2\x5a\xd2\x5b\xd2\x5c\xd2\x5d\xd2\x5e\xd2\x5f\xd2\x60\xd2\x61\xd2\x62\xd2\x63\xd2\x64\xd2\x65\xd2\x66\xd2\x67\xd2\x68\xd2\x69\xd2\x6a\xd2\x6b\xd2\x6c\xd2\x6d\xd2\x6e\xd2\x6f\xd2\x70\xd2\x71\xd2\x72\xd2\x73\xd2\x74\xd2\x75\xd2\x76\xd2\x77\xd2\x78\xd2\x79\xd2\x7a\xd2\x7b\xd2\x7c\xd2\x7d\xd2\x7e\xd2\x7f\xd2\x81", /* ec00 */ "\xd2\x82\xd2\x83\xd2\x84\xd2\x85\xd2\x86\xd2\x87\xd2\x88\xd2\x89\xd2\x8a\xd2\x8b\xd2\x8c\xd2\x8d\xd2\x8e\xd2\x8f\xd2\x90\xd2\x91\xd2\x92\xd2\x93\xd2\x94\xd2\x95\xd2\x96\xd2\x97\xd2\x98\xd2\x99\xd2\x9a\xd2\x9b\xd2\x9c\xd2\x9d\xd2\x9e\xd2\x9f\xd2\xa0\xd2\xa1\xd2\xa2\xd2\xa3\xd2\xa4\xd2\xa5\xd2\xa6\xd2\xa7\xd2\xa8\xd2\xa9\xd2\xaa\xd2\xab\xd2\xac\xd2\xad\xd2\xae\xd2\xaf\xd2\xb0\xd2\xb1\xd2\xb2\xd2\xb3\xd2\xb4\xd2\xb5\xd2\xb6\xd2\xb7\xd2\xb8\xd2\xb9\xd2\xba\xd2\xbb\xd2\xbc\xd2\xbd\xd2\xbe\xd2\xbf\xd2\xc0\xd2\xc1\xd2\xc2\xd2\xc3\xd2\xc4\xd2\xc5\xd2\xc6\xd2\xc7\xd2\xc8\xd2\xc9\xd2\xca\xd2\xcb\xd2\xcc\xd2\xcd\xd2\xce\xd2\xcf\xd2\xd0\xd2\xd1\xd2\xd2\xd2\xd3\xd2\xd4\xd2\xd5\xd2\xd6\xd2\xd7\xd2\xd8\xd2\xd9\xd2\xda\xd2\xdb\xd2\xdc\xd2\xdd\xd2\xde\xd2\xdf\xd2\xe0\xd2\xe1\xd2\xe2\xd2\xe3\xd2\xe4\xd2\xe5\xd2\xe6\xd2\xe7\xd2\xe8\xd2\xe9\xd2\xea\xd2\xeb\xd2\xec\xd2\xed\xd2\xee\xd2\xef\xd2\xf0\xd2\xf1\xd2\xf2\xd2\xf3\xd2\xf4\xd2\xf5\xd2\xf6\xd2\xf7\xd2\xf8\xd2\xf9\xd2\xfa\xd2\xfb\xd2\xfc\xd2\xfd\xd3\x41\xd3\x42\xd3\x43\xd3\x44", /* ec80 */ "\xd3\x45\xd3\x46\xd3\x47\xd3\x48\xd3\x49\xd3\x4a\xd3\x4b\xd3\x4c\xd3\x4d\xd3\x4e\xd3\x4f\xd3\x50\xd3\x51\xd3\x52\xd3\x53\xd3\x54\xd3\x55\xd3\x56\xd3\x57\xd3\x58\xd3\x59\xd3\x5a\xd3\x5b\xd3\x5c\xd3\x5d\xd3\x5e\xd3\x5f\xd3\x60\xd3\x61\xd3\x62\xd3\x63\xd3\x64\xd3\x65\xd3\x66\xd3\x67\xd3\x68\xd3\x69\xd3\x6a\xd3\x6b\xd3\x6c\xd3\x6d\xd3\x6e\xd3\x6f\xd3\x70\xd3\x71\xd3\x72\xd3\x73\xd3\x74\xd3\x75\xd3\x76\xd3\x77\xd3\x78\xd3\x79\xd3\x7a\xd3\x7b\xd3\x7c\xd3\x7d\xd3\x7e\xd3\x7f\xd3\x81\xd3\x82\xd3\x83\xd3\x84\xd3\x85\xd3\x86\xd3\x87\xd3\x88\xd3\x89\xd3\x8a\xd3\x8b\xd3\x8c\xd3\x8d\xd3\x8e\xd3\x8f\xd3\x90\xd3\x91\xd3\x92\xd3\x93\xd3\x94\xd3\x95\xd3\x96\xd3\x97\xd3\x98\xd3\x99\xd3\x9a\xd3\x9b\xd3\x9c\xd3\x9d\xd3\x9e\xd3\x9f\xd3\xa0\xd3\xa1\xd3\xa2\xd3\xa3\xd3\xa4\xd3\xa5\xd3\xa6\xd3\xa7\xd3\xa8\xd3\xa9\xd3\xaa\xd3\xab\xd3\xac\xd3\xad\xd3\xae\xd3\xaf\xd3\xb0\xd3\xb1\xd3\xb2\xd3\xb3\xd3\xb4\xd3\xb5\xd3\xb6\xd3\xb7\xd3\xb8\xd3\xb9\xd3\xba\xd3\xbb\xd3\xbc\xd3\xbd\xd3\xbe\xd3\xbf\xd3\xc0\xd3\xc1\xd3\xc2\xd3\xc3\xd3\xc4\xd3\xc5", /* ed00 */ "\xd3\xc6\xd3\xc7\xd3\xc8\xd3\xc9\xd3\xca\xd3\xcb\xd3\xcc\xd3\xcd\xd3\xce\xd3\xcf\xd3\xd0\xd3\xd1\xd3\xd2\xd3\xd3\xd3\xd4\xd3\xd5\xd3\xd6\xd3\xd7\xd3\xd8\xd3\xd9\xd3\xda\xd3\xdb\xd3\xdc\xd3\xdd\xd3\xde\xd3\xdf\xd3\xe0\xd3\xe1\xd3\xe2\xd3\xe3\xd3\xe4\xd3\xe5\xd3\xe6\xd3\xe7\xd3\xe8\xd3\xe9\xd3\xea\xd3\xeb\xd3\xec\xd3\xed\xd3\xee\xd3\xef\xd3\xf0\xd3\xf1\xd3\xf2\xd3\xf3\xd3\xf4\xd3\xf5\xd3\xf6\xd3\xf7\xd3\xf8\xd3\xf9\xd3\xfa\xd3\xfb\xd3\xfc\xd3\xfd\xd4\x41\xd4\x42\xd4\x43\xd4\x44\xd4\x45\xd4\x46\xd4\x47\xd4\x48\xd4\x49\xd4\x4a\xd4\x4b\xd4\x4c\xd4\x4d\xd4\x4e\xd4\x4f\xd4\x50\xd4\x51\xd4\x52\xd4\x53\xd4\x54\xd4\x55\xd4\x56\xd4\x57\xd4\x58\xd4\x59\xd4\x5a\xd4\x5b\xd4\x5c\xd4\x5d\xd4\x5e\xd4\x5f\xd4\x60\xd4\x61\xd4\x62\xd4\x63\xd4\x64\xd4\x65\xd4\x66\xd4\x67\xd4\x68\xd4\x69\xd4\x6a\xd4\x6b\xd4\x6c\xd4\x6d\xd4\x6e\xd4\x6f\xd4\x70\xd4\x71\xd4\x72\xd4\x73\xd4\x74\xd4\x75\xd4\x76\xd4\x77\xd4\x78\xd4\x79\xd4\x7a\xd4\x7b\xd4\x7c\xd4\x7d\xd4\x7e\xd4\x7f\xd4\x81\xd4\x82\xd4\x83\xd4\x84\xd4\x85\xd4\x86\xd4\x87\xd4\x88\xd4\x89", /* ed80 */ "\xd4\x8a\xd4\x8b\xd4\x8c\xd4\x8d\xd4\x8e\xd4\x8f\xd4\x90\xd4\x91\xd4\x92\xd4\x93\xd4\x94\xd4\x95\xd4\x96\xd4\x97\xd4\x98\xd4\x99\xd4\x9a\xd4\x9b\xd4\x9c\xd4\x9d\xd4\x9e\xd4\x9f\xd4\xa0\xd4\xa1\xd4\xa2\xd4\xa3\xd4\xa4\xd4\xa5\xd4\xa6\xd4\xa7\xd4\xa8\xd4\xa9\xd4\xaa\xd4\xab\xd4\xac\xd4\xad\xd4\xae\xd4\xaf\xd4\xb0\xd4\xb1\xd4\xb2\xd4\xb3\xd4\xb4\xd4\xb5\xd4\xb6\xd4\xb7\xd4\xb8\xd4\xb9\xd4\xba\xd4\xbb\xd4\xbc\xd4\xbd\xd4\xbe\xd4\xbf\xd4\xc0\xd4\xc1\xd4\xc2\xd4\xc3\xd4\xc4\xd4\xc5\xd4\xc6\xd4\xc7\xd4\xc8\xd4\xc9\xd4\xca\xd4\xcb\xd4\xcc\xd4\xcd\xd4\xce\xd4\xcf\xd4\xd0\xd4\xd1\xd4\xd2\xd4\xd3\xd4\xd4\xd4\xd5\xd4\xd6\xd4\xd7\xd4\xd8\xd4\xd9\xd4\xda\xd4\xdb\xd4\xdc\xd4\xdd\xd4\xde\xd4\xdf\xd4\xe0\xd4\xe1\xd4\xe2\xd4\xe3\xd4\xe4\xd4\xe5\xd4\xe6\xd4\xe7\xd4\xe8\xd4\xe9\xd4\xea\xd4\xeb\xd4\xec\xd4\xed\xd4\xee\xd4\xef\xd4\xf0\xd4\xf1\xd4\xf2\xd4\xf3\xd4\xf4\xd4\xf5\xd4\xf6\xd4\xf7\xd4\xf8\xd4\xf9\xd4\xfa\xd4\xfb\xd4\xfc\xd4\xfd\xd5\x41\xd5\x42\xd5\x43\xd5\x44\xd5\x45\xd5\x46\xd5\x47\xd5\x48\xd5\x49\xd5\x4a\xd5\x4b\xd5\x4c", /* ee00 */ "\xd5\x4d\xd5\x4e\xd5\x4f\xd5\x50\xd5\x51\xd5\x52\xd5\x53\xd5\x54\xd5\x55\xd5\x56\xd5\x57\xd5\x58\xd5\x59\xd5\x5a\xd5\x5b\xd5\x5c\xd5\x5d\xd5\x5e\xd5\x5f\xd5\x60\xd5\x61\xd5\x62\xd5\x63\xd5\x64\xd5\x65\xd5\x66\xd5\x67\xd5\x68\xd5\x69\xd5\x6a\xd5\x6b\xd5\x6c\xd5\x6d\xd5\x6e\xd5\x6f\xd5\x70\xd5\x71\xd5\x72\xd5\x73\xd5\x74\xd5\x75\xd5\x76\xd5\x77\xd5\x78\xd5\x79\xd5\x7a\xd5\x7b\xd5\x7c\xd5\x7d\xd5\x7e\xd5\x7f\xd5\x81\xd5\x82\xd5\x83\xd5\x84\xd5\x85\xd5\x86\xd5\x87\xd5\x88\xd5\x89\xd5\x8a\xd5\x8b\xd5\x8c\xd5\x8d\xd5\x8e\xd5\x8f\xd5\x90\xd5\x91\xd5\x92\xd5\x93\xd5\x94\xd5\x95\xd5\x96\xd5\x97\xd5\x98\xd5\x99\xd5\x9a\xd5\x9b\xd5\x9c\xd5\x9d\xd5\x9e\xd5\x9f\xd5\xa0\xd5\xa1\xd5\xa2\xd5\xa3\xd5\xa4\xd5\xa5\xd5\xa6\xd5\xa7\xd5\xa8\xd5\xa9\xd5\xaa\xd5\xab\xd5\xac\xd5\xad\xd5\xae\xd5\xaf\xd5\xb0\xd5\xb1\xd5\xb2\xd5\xb3\xd5\xb4\xd5\xb5\xd5\xb6\xd5\xb7\xd5\xb8\xd5\xb9\xd5\xba\xd5\xbb\xd5\xbc\xd5\xbd\xd5\xbe\xd5\xbf\xd5\xc0\xd5\xc1\xd5\xc2\xd5\xc3\xd5\xc4\xd5\xc5\xd5\xc6\xd5\xc7\xd5\xc8\xd5\xc9\xd5\xca\xd5\xcb\xd5\xcc\xd5\xcd", /* ee80 */ "\xd5\xce\xd5\xcf\xd5\xd0\xd5\xd1\xd5\xd2\xd5\xd3\xd5\xd4\xd5\xd5\xd5\xd6\xd5\xd7\xd5\xd8\xd5\xd9\xd5\xda\xd5\xdb\xd5\xdc\xd5\xdd\xd5\xde\xd5\xdf\xd5\xe0\xd5\xe1\xd5\xe2\xd5\xe3\xd5\xe4\xd5\xe5\xd5\xe6\xd5\xe7\xd5\xe8\xd5\xe9\xd5\xea\xd5\xeb\xd5\xec\xd5\xed\xd5\xee\xd5\xef\xd5\xf0\xd5\xf1\xd5\xf2\xd5\xf3\xd5\xf4\xd5\xf5\xd5\xf6\xd5\xf7\xd5\xf8\xd5\xf9\xd5\xfa\xd5\xfb\xd5\xfc\xd5\xfd\xd6\x41\xd6\x42\xd6\x43\xd6\x44\xd6\x45\xd6\x46\xd6\x47\xd6\x48\xd6\x49\xd6\x4a\xd6\x4b\xd6\x4c\xd6\x4d\xd6\x4e\xd6\x4f\xd6\x50\xd6\x51\xd6\x52\xd6\x53\xd6\x54\xd6\x55\xd6\x56\xd6\x57\xd6\x58\xd6\x59\xd6\x5a\xd6\x5b\xd6\x5c\xd6\x5d\xd6\x5e\xd6\x5f\xd6\x60\xd6\x61\xd6\x62\xd6\x63\xd6\x64\xd6\x65\xd6\x66\xd6\x67\xd6\x68\xd6\x69\xd6\x6a\xd6\x6b\xd6\x6c\xd6\x6d\xd6\x6e\xd6\x6f\xd6\x70\xd6\x71\xd6\x72\xd6\x73\xd6\x74\xd6\x75\xd6\x76\xd6\x77\xd6\x78\xd6\x79\xd6\x7a\xd6\x7b\xd6\x7c\xd6\x7d\xd6\x7e\xd6\x7f\xd6\x81\xd6\x82\xd6\x83\xd6\x84\xd6\x85\xd6\x86\xd6\x87\xd6\x88\xd6\x89\xd6\x8a\xd6\x8b\xd6\x8c\xd6\x8d\xd6\x8e\xd6\x8f\xd6\x90\xd6\x91", /* ef00 */ "\xd6\x92\xd6\x93\xd6\x94\xd6\x95\xd6\x96\xd6\x97\xd6\x98\xd6\x99\xd6\x9a\xd6\x9b\xd6\x9c\xd6\x9d\xd6\x9e\xd6\x9f\xd6\xa0\xd6\xa1\xd6\xa2\xd6\xa3\xd6\xa4\xd6\xa5\xd6\xa6\xd6\xa7\xd6\xa8\xd6\xa9\xd6\xaa\xd6\xab\xd6\xac\xd6\xad\xd6\xae\xd6\xaf\xd6\xb0\xd6\xb1\xd6\xb2\xd6\xb3\xd6\xb4\xd6\xb5\xd6\xb6\xd6\xb7\xd6\xb8\xd6\xb9\xd6\xba\xd6\xbb\xd6\xbc\xd6\xbd\xd6\xbe\xd6\xbf\xd6\xc0\xd6\xc1\xd6\xc2\xd6\xc3\xd6\xc4\xd6\xc5\xd6\xc6\xd6\xc7\xd6\xc8\xd6\xc9\xd6\xca\xd6\xcb\xd6\xcc\xd6\xcd\xd6\xce\xd6\xcf\xd6\xd0\xd6\xd1\xd6\xd2\xd6\xd3\xd6\xd4\xd6\xd5\xd6\xd6\xd6\xd7\xd6\xd8\xd6\xd9\xd6\xda\xd6\xdb\xd6\xdc\xd6\xdd\xd6\xde\xd6\xdf\xd6\xe0\xd6\xe1\xd6\xe2\xd6\xe3\xd6\xe4\xd6\xe5\xd6\xe6\xd6\xe7\xd6\xe8\xd6\xe9\xd6\xea\xd6\xeb\xd6\xec\xd6\xed\xd6\xee\xd6\xef\xd6\xf0\xd6\xf1\xd6\xf2\xd6\xf3\xd6\xf4\xd6\xf5\xd6\xf6\xd6\xf7\xd6\xf8\xd6\xf9\xd6\xfa\xd6\xfb\xd6\xfc\xd6\xfd\xd7\x41\xd7\x42\xd7\x43\xd7\x44\xd7\x45\xd7\x46\xd7\x47\xd7\x48\xd7\x49\xd7\x4a\xd7\x4b\xd7\x4c\xd7\x4d\xd7\x4e\xd7\x4f\xd7\x50\xd7\x51\xd7\x52\xd7\x53\xd7\x54", /* ef80 */ "\xd7\x55\xd7\x56\xd7\x57\xd7\x58\xd7\x59\xd7\x5a\xd7\x5b\xd7\x5c\xd7\x5d\xd7\x5e\xd7\x5f\xd7\x60\xd7\x61\xd7\x62\xd7\x63\xd7\x64\xd7\x65\xd7\x66\xd7\x67\xd7\x68\xd7\x69\xd7\x6a\xd7\x6b\xd7\x6c\xd7\x6d\xd7\x6e\xd7\x6f\xd7\x70\xd7\x71\xd7\x72\xd7\x73\xd7\x74\xd7\x75\xd7\x76\xd7\x77\xd7\x78\xd7\x79\xd7\x7a\xd7\x7b\xd7\x7c\xd7\x7d\xd7\x7e\xd7\x7f\xd7\x81\xd7\x82\xd7\x83\xd7\x84\xd7\x85\xd7\x86\xd7\x87\xd7\x88\xd7\x89\xd7\x8a\xd7\x8b\xd7\x8c\xd7\x8d\xd7\x8e\xd7\x8f\xd7\x90\xd7\x91\xd7\x92\xd7\x93\xd7\x94\xd7\x95\xd7\x96\xd7\x97\xd7\x98\xd7\x99\xd7\x9a\xd7\x9b\xd7\x9c\xd7\x9d\xd7\x9e\xd7\x9f\xd7\xa0\xd7\xa1\xd7\xa2\xd7\xa3\xd7\xa4\xd7\xa5\xd7\xa6\xd7\xa7\xd7\xa8\xd7\xa9\xd7\xaa\xd7\xab\xd7\xac\xd7\xad\xd7\xae\xd7\xaf\xd7\xb0\xd7\xb1\xd7\xb2\xd7\xb3\xd7\xb4\xd7\xb5\xd7\xb6\xd7\xb7\xd7\xb8\xd7\xb9\xd7\xba\xd7\xbb\xd7\xbc\xd7\xbd\xd7\xbe\xd7\xbf\xd7\xc0\xd7\xc1\xd7\xc2\xd7\xc3\xd7\xc4\xd7\xc5\xd7\xc6\xd7\xc7\xd7\xc8\xd7\xc9\xd7\xca\xd7\xcb\xd7\xcc\xd7\xcd\xd7\xce\xd7\xcf\xd7\xd0\xd7\xd1\xd7\xd2\xd7\xd3\xd7\xd4\xd7\xd5", /* f000 */ "\xd7\xd6\xd7\xd7\xd7\xd8\xd7\xd9\xd7\xda\xd7\xdb\xd7\xdc\xd7\xdd\xd7\xde\xd7\xdf\xd7\xe0\xd7\xe1\xd7\xe2\xd7\xe3\xd7\xe4\xd7\xe5\xd7\xe6\xd7\xe7\xd7\xe8\xd7\xe9\xd7\xea\xd7\xeb\xd7\xec\xd7\xed\xd7\xee\xd7\xef\xd7\xf0\xd7\xf1\xd7\xf2\xd7\xf3\xd7\xf4\xd7\xf5\xd7\xf6\xd7\xf7\xd7\xf8\xd7\xf9\xd7\xfa\xd7\xfb\xd7\xfc\xd7\xfd\xd8\x41\xd8\x42\xd8\x43\xd8\x44\xd8\x45\xd8\x46\xd8\x47\xd8\x48\xd8\x49\xd8\x4a\xd8\x4b\xd8\x4c\xd8\x4d\xd8\x4e\xd8\x4f\xd8\x50\xd8\x51\xd8\x52\xd8\x53\xd8\x54\xd8\x55\xd8\x56\xd8\x57\xd8\x58\xd8\x59\xd8\x5a\xd8\x5b\xd8\x5c\xd8\x5d\xd8\x5e\xd8\x5f\xd8\x60\xd8\x61\xd8\x62\xd8\x63\xd8\x64\xd8\x65\xd8\x66\xd8\x67\xd8\x68\xd8\x69\xd8\x6a\xd8\x6b\xd8\x6c\xd8\x6d\xd8\x6e\xd8\x6f\xd8\x70\xd8\x71\xd8\x72\xd8\x73\xd8\x74\xd8\x75\xd8\x76\xd8\x77\xd8\x78\xd8\x79\xd8\x7a\xd8\x7b\xd8\x7c\xd8\x7d\xd8\x7e\xd8\x7f\xd8\x81\xd8\x82\xd8\x83\xd8\x84\xd8\x85\xd8\x86\xd8\x87\xd8\x88\xd8\x89\xd8\x8a\xd8\x8b\xd8\x8c\xd8\x8d\xd8\x8e\xd8\x8f\xd8\x90\xd8\x91\xd8\x92\xd8\x93\xd8\x94\xd8\x95\xd8\x96\xd8\x97\xd8\x98\xd8\x99", /* f080 */ "\xd8\x9a\xd8\x9b\xd8\x9c\xd8\x9d\xd8\x9e\xd8\x9f\xd8\xa0\xd8\xa1\xd8\xa2\xd8\xa3\xd8\xa4\xd8\xa5\xd8\xa6\xd8\xa7\xd8\xa8\xd8\xa9\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae\xd8\xaf\xd8\xb0\xd8\xb1\xd8\xb2\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba\xd8\xbb\xd8\xbc\xd8\xbd\xd8\xbe\xd8\xbf\xd8\xc0\xd8\xc1\xd8\xc2\xd8\xc3\xd8\xc4\xd8\xc5\xd8\xc6\xd8\xc7\xd8\xc8\xd8\xc9\xd8\xca\xd8\xcb\xd8\xcc\xd8\xcd\xd8\xce\xd8\xcf\xd8\xd0\xd8\xd1\xd8\xd2\xd8\xd3\xd8\xd4\xd8\xd5\xd8\xd6\xd8\xd7\xd8\xd8\xd8\xd9\xd8\xda\xd8\xdb\xd8\xdc\xd8\xdd\xd8\xde\xd8\xdf\xd8\xe0\xd8\xe1\xd8\xe2\xd8\xe3\xd8\xe4\xd8\xe5\xd8\xe6\xd8\xe7\xd8\xe8\xd8\xe9\xd8\xea\xd8\xeb\xd8\xec\xd8\xed\xd8\xee\xd8\xef\xd8\xf0\xd8\xf1\xd8\xf2\xd8\xf3\xd8\xf4\xd8\xf5\xd8\xf6\xd8\xf7\xd8\xf8\xd8\xf9\xd8\xfa\xd8\xfb\xd8\xfc\xd8\xfd\xd9\x41\xd9\x42\xd9\x43\xd9\x44\xd9\x45\xd9\x46\xd9\x47\xd9\x48\xd9\x49\xd9\x4a\xd9\x4b\xd9\x4c\xd9\x4d\xd9\x4e\xd9\x4f\xd9\x50\xd9\x51\xd9\x52\xd9\x53\xd9\x54\xd9\x55\xd9\x56\xd9\x57\xd9\x58\xd9\x59\xd9\x5a\xd9\x5b\xd9\x5c", /* f100 */ "\xd9\x5d\xd9\x5e\xd9\x5f\xd9\x60\xd9\x61\xd9\x62\xd9\x63\xd9\x64\xd9\x65\xd9\x66\xd9\x67\xd9\x68\xd9\x69\xd9\x6a\xd9\x6b\xd9\x6c\xd9\x6d\xd9\x6e\xd9\x6f\xd9\x70\xd9\x71\xd9\x72\xd9\x73\xd9\x74\xd9\x75\xd9\x76\xd9\x77\xd9\x78\xd9\x79\xd9\x7a\xd9\x7b\xd9\x7c\xd9\x7d\xd9\x7e\xd9\x7f\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x88\xd9\x89\xd9\x8a\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f\xd9\x90\xd9\x91\xd9\x92\xd9\x93\xd9\x94\xd9\x95\xd9\x96\xd9\x97\xd9\x98\xd9\x99\xd9\x9a\xd9\x9b\xd9\x9c\xd9\x9d\xd9\x9e\xd9\x9f\xd9\xa0\xd9\xa1\xd9\xa2\xd9\xa3\xd9\xa4\xd9\xa5\xd9\xa6\xd9\xa7\xd9\xa8\xd9\xa9\xd9\xaa\xd9\xab\xd9\xac\xd9\xad\xd9\xae\xd9\xaf\xd9\xb0\xd9\xb1\xd9\xb2\xd9\xb3\xd9\xb4\xd9\xb5\xd9\xb6\xd9\xb7\xd9\xb8\xd9\xb9\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf\xd9\xc0\xd9\xc1\xd9\xc2\xd9\xc3\xd9\xc4\xd9\xc5\xd9\xc6\xd9\xc7\xd9\xc8\xd9\xc9\xd9\xca\xd9\xcb\xd9\xcc\xd9\xcd\xd9\xce\xd9\xcf\xd9\xd0\xd9\xd1\xd9\xd2\xd9\xd3\xd9\xd4\xd9\xd5\xd9\xd6\xd9\xd7\xd9\xd8\xd9\xd9\xd9\xda\xd9\xdb\xd9\xdc\xd9\xdd", /* f180 */ "\xd9\xde\xd9\xdf\xd9\xe0\xd9\xe1\xd9\xe2\xd9\xe3\xd9\xe4\xd9\xe5\xd9\xe6\xd9\xe7\xd9\xe8\xd9\xe9\xd9\xea\xd9\xeb\xd9\xec\xd9\xed\xd9\xee\xd9\xef\xd9\xf0\xd9\xf1\xd9\xf2\xd9\xf3\xd9\xf4\xd9\xf5\xd9\xf6\xd9\xf7\xd9\xf8\xd9\xf9\xd9\xfa\xd9\xfb\xd9\xfc\xd9\xfd\xda\x41\xda\x42\xda\x43\xda\x44\xda\x45\xda\x46\xda\x47\xda\x48\xda\x49\xda\x4a\xda\x4b\xda\x4c\xda\x4d\xda\x4e\xda\x4f\xda\x50\xda\x51\xda\x52\xda\x53\xda\x54\xda\x55\xda\x56\xda\x57\xda\x58\xda\x59\xda\x5a\xda\x5b\xda\x5c\xda\x5d\xda\x5e\xda\x5f\xda\x60\xda\x61\xda\x62\xda\x63\xda\x64\xda\x65\xda\x66\xda\x67\xda\x68\xda\x69\xda\x6a\xda\x6b\xda\x6c\xda\x6d\xda\x6e\xda\x6f\xda\x70\xda\x71\xda\x72\xda\x73\xda\x74\xda\x75\xda\x76\xda\x77\xda\x78\xda\x79\xda\x7a\xda\x7b\xda\x7c\xda\x7d\xda\x7e\xda\x7f\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87\xda\x88\xda\x89\xda\x8a\xda\x8b\xda\x8c\xda\x8d\xda\x8e\xda\x8f\xda\x90\xda\x91\xda\x92\xda\x93\xda\x94\xda\x95\xda\x96\xda\x97\xda\x98\xda\x99\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f\xda\xa0\xda\xa1", /* f200 */ "\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8\xda\xa9\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9\xda\xba\xda\xbb\xda\xbc\xda\xbd\xda\xbe\xda\xbf\xda\xc0\xda\xc1\xda\xc2\xda\xc3\xda\xc4\xda\xc5\xda\xc6\xda\xc7\xda\xc8\xda\xc9\xda\xca\xda\xcb\xda\xcc\xda\xcd\xda\xce\xda\xcf\xda\xd0\xda\xd1\xda\xd2\xda\xd3\xda\xd4\xda\xd5\xda\xd6\xda\xd7\xda\xd8\xda\xd9\xda\xda\xda\xdb\xda\xdc\xda\xdd\xda\xde\xda\xdf\xda\xe0\xda\xe1\xda\xe2\xda\xe3\xda\xe4\xda\xe5\xda\xe6\xda\xe7\xda\xe8\xda\xe9\xda\xea\xda\xeb\xda\xec\xda\xed\xda\xee\xda\xef\xda\xf0\xda\xf1\xda\xf2\xda\xf3\xda\xf4\xda\xf5\xda\xf6\xda\xf7\xda\xf8\xda\xf9\xda\xfa\xda\xfb\xda\xfc\xda\xfd\xdb\x41\xdb\x42\xdb\x43\xdb\x44\xdb\x45\xdb\x46\xdb\x47\xdb\x48\xdb\x49\xdb\x4a\xdb\x4b\xdb\x4c\xdb\x4d\xdb\x4e\xdb\x4f\xdb\x50\xdb\x51\xdb\x52\xdb\x53\xdb\x54\xdb\x55\xdb\x56\xdb\x57\xdb\x58\xdb\x59\xdb\x5a\xdb\x5b\xdb\x5c\xdb\x5d\xdb\x5e\xdb\x5f\xdb\x60\xdb\x61\xdb\x62\xdb\x63\xdb\x64", /* f280 */ "\xdb\x65\xdb\x66\xdb\x67\xdb\x68\xdb\x69\xdb\x6a\xdb\x6b\xdb\x6c\xdb\x6d\xdb\x6e\xdb\x6f\xdb\x70\xdb\x71\xdb\x72\xdb\x73\xdb\x74\xdb\x75\xdb\x76\xdb\x77\xdb\x78\xdb\x79\xdb\x7a\xdb\x7b\xdb\x7c\xdb\x7d\xdb\x7e\xdb\x7f\xdb\x81\xdb\x82\xdb\x83\xdb\x84\xdb\x85\xdb\x86\xdb\x87\xdb\x88\xdb\x89\xdb\x8a\xdb\x8b\xdb\x8c\xdb\x8d\xdb\x8e\xdb\x8f\xdb\x90\xdb\x91\xdb\x92\xdb\x93\xdb\x94\xdb\x95\xdb\x96\xdb\x97\xdb\x98\xdb\x99\xdb\x9a\xdb\x9b\xdb\x9c\xdb\x9d\xdb\x9e\xdb\x9f\xdb\xa0\xdb\xa1\xdb\xa2\xdb\xa3\xdb\xa4\xdb\xa5\xdb\xa6\xdb\xa7\xdb\xa8\xdb\xa9\xdb\xaa\xdb\xab\xdb\xac\xdb\xad\xdb\xae\xdb\xaf\xdb\xb0\xdb\xb1\xdb\xb2\xdb\xb3\xdb\xb4\xdb\xb5\xdb\xb6\xdb\xb7\xdb\xb8\xdb\xb9\xdb\xba\xdb\xbb\xdb\xbc\xdb\xbd\xdb\xbe\xdb\xbf\xdb\xc0\xdb\xc1\xdb\xc2\xdb\xc3\xdb\xc4\xdb\xc5\xdb\xc6\xdb\xc7\xdb\xc8\xdb\xc9\xdb\xca\xdb\xcb\xdb\xcc\xdb\xcd\xdb\xce\xdb\xcf\xdb\xd0\xdb\xd1\xdb\xd2\xdb\xd3\xdb\xd4\xdb\xd5\xdb\xd6\xdb\xd7\xdb\xd8\xdb\xd9\xdb\xda\xdb\xdb\xdb\xdc\xdb\xdd\xdb\xde\xdb\xdf\xdb\xe0\xdb\xe1\xdb\xe2\xdb\xe3\xdb\xe4\xdb\xe5", /* f300 */ "\xdb\xe6\xdb\xe7\xdb\xe8\xdb\xe9\xdb\xea\xdb\xeb\xdb\xec\xdb\xed\xdb\xee\xdb\xef\xdb\xf0\xdb\xf1\xdb\xf2\xdb\xf3\xdb\xf4\xdb\xf5\xdb\xf6\xdb\xf7\xdb\xf8\xdb\xf9\xdb\xfa\xdb\xfb\xdb\xfc\xdb\xfd\xdc\x41\xdc\x42\xdc\x43\xdc\x44\xdc\x45\xdc\x46\xdc\x47\xdc\x48\xdc\x49\xdc\x4a\xdc\x4b\xdc\x4c\xdc\x4d\xdc\x4e\xdc\x4f\xdc\x50\xdc\x51\xdc\x52\xdc\x53\xdc\x54\xdc\x55\xdc\x56\xdc\x57\xdc\x58\xdc\x59\xdc\x5a\xdc\x5b\xdc\x5c\xdc\x5d\xdc\x5e\xdc\x5f\xdc\x60\xdc\x61\xdc\x62\xdc\x63\xdc\x64\xdc\x65\xdc\x66\xdc\x67\xdc\x68\xdc\x69\xdc\x6a\xdc\x6b\xdc\x6c\xdc\x6d\xdc\x6e\xdc\x6f\xdc\x70\xdc\x71\xdc\x72\xdc\x73\xdc\x74\xdc\x75\xdc\x76\xdc\x77\xdc\x78\xdc\x79\xdc\x7a\xdc\x7b\xdc\x7c\xdc\x7d\xdc\x7e\xdc\x7f\xdc\x81\xdc\x82\xdc\x83\xdc\x84\xdc\x85\xdc\x86\xdc\x87\xdc\x88\xdc\x89\xdc\x8a\xdc\x8b\xdc\x8c\xdc\x8d\xdc\x8e\xdc\x8f\xdc\x90\xdc\x91\xdc\x92\xdc\x93\xdc\x94\xdc\x95\xdc\x96\xdc\x97\xdc\x98\xdc\x99\xdc\x9a\xdc\x9b\xdc\x9c\xdc\x9d\xdc\x9e\xdc\x9f\xdc\xa0\xdc\xa1\xdc\xa2\xdc\xa3\xdc\xa4\xdc\xa5\xdc\xa6\xdc\xa7\xdc\xa8\xdc\xa9", /* f380 */ "\xdc\xaa\xdc\xab\xdc\xac\xdc\xad\xdc\xae\xdc\xaf\xdc\xb0\xdc\xb1\xdc\xb2\xdc\xb3\xdc\xb4\xdc\xb5\xdc\xb6\xdc\xb7\xdc\xb8\xdc\xb9\xdc\xba\xdc\xbb\xdc\xbc\xdc\xbd\xdc\xbe\xdc\xbf\xdc\xc0\xdc\xc1\xdc\xc2\xdc\xc3\xdc\xc4\xdc\xc5\xdc\xc6\xdc\xc7\xdc\xc8\xdc\xc9\xdc\xca\xdc\xcb\xdc\xcc\xdc\xcd\xdc\xce\xdc\xcf\xdc\xd0\xdc\xd1\xdc\xd2\xdc\xd3\xdc\xd4\xdc\xd5\xdc\xd6\xdc\xd7\xdc\xd8\xdc\xd9\xdc\xda\xdc\xdb\xdc\xdc\xdc\xdd\xdc\xde\xdc\xdf\xdc\xe0\xdc\xe1\xdc\xe2\xdc\xe3\xdc\xe4\xdc\xe5\xdc\xe6\xdc\xe7\xdc\xe8\xdc\xe9\xdc\xea\xdc\xeb\xdc\xec\xdc\xed\xdc\xee\xdc\xef\xdc\xf0\xdc\xf1\xdc\xf2\xdc\xf3\xdc\xf4\xdc\xf5\xdc\xf6\xdc\xf7\xdc\xf8\xdc\xf9\xdc\xfa\xdc\xfb\xdc\xfc\xdc\xfd\xdd\x41\xdd\x42\xdd\x43\xdd\x44\xdd\x45\xdd\x46\xdd\x47\xdd\x48\xdd\x49\xdd\x4a\xdd\x4b\xdd\x4c\xdd\x4d\xdd\x4e\xdd\x4f\xdd\x50\xdd\x51\xdd\x52\xdd\x53\xdd\x54\xdd\x55\xdd\x56\xdd\x57\xdd\x58\xdd\x59\xdd\x5a\xdd\x5b\xdd\x5c\xdd\x5d\xdd\x5e\xdd\x5f\xdd\x60\xdd\x61\xdd\x62\xdd\x63\xdd\x64\xdd\x65\xdd\x66\xdd\x67\xdd\x68\xdd\x69\xdd\x6a\xdd\x6b\xdd\x6c", /* f400 */ "\xdd\x6d\xdd\x6e\xdd\x6f\xdd\x70\xdd\x71\xdd\x72\xdd\x73\xdd\x74\xdd\x75\xdd\x76\xdd\x77\xdd\x78\xdd\x79\xdd\x7a\xdd\x7b\xdd\x7c\xdd\x7d\xdd\x7e\xdd\x7f\xdd\x81\xdd\x82\xdd\x83\xdd\x84\xdd\x85\xdd\x86\xdd\x87\xdd\x88\xdd\x89\xdd\x8a\xdd\x8b\xdd\x8c\xdd\x8d\xdd\x8e\xdd\x8f\xdd\x90\xdd\x91\xdd\x92\xdd\x93\xdd\x94\xdd\x95\xdd\x96\xdd\x97\xdd\x98\xdd\x99\xdd\x9a\xdd\x9b\xdd\x9c\xdd\x9d\xdd\x9e\xdd\x9f\xdd\xa0\xdd\xa1\xdd\xa2\xdd\xa3\xdd\xa4\xdd\xa5\xdd\xa6\xdd\xa7\xdd\xa8\xdd\xa9\xdd\xaa\xdd\xab\xdd\xac\xdd\xad\xdd\xae\xdd\xaf\xdd\xb0\xdd\xb1\xdd\xb2\xdd\xb3\xdd\xb4\xdd\xb5\xdd\xb6\xdd\xb7\xdd\xb8\xdd\xb9\xdd\xba\xdd\xbb\xdd\xbc\xdd\xbd\xdd\xbe\xdd\xbf\xdd\xc0\xdd\xc1\xdd\xc2\xdd\xc3\xdd\xc4\xdd\xc5\xdd\xc6\xdd\xc7\xdd\xc8\xdd\xc9\xdd\xca\xdd\xcb\xdd\xcc\xdd\xcd\xdd\xce\xdd\xcf\xdd\xd0\xdd\xd1\xdd\xd2\xdd\xd3\xdd\xd4\xdd\xd5\xdd\xd6\xdd\xd7\xdd\xd8\xdd\xd9\xdd\xda\xdd\xdb\xdd\xdc\xdd\xdd\xdd\xde\xdd\xdf\xdd\xe0\xdd\xe1\xdd\xe2\xdd\xe3\xdd\xe4\xdd\xe5\xdd\xe6\xdd\xe7\xdd\xe8\xdd\xe9\xdd\xea\xdd\xeb\xdd\xec\xdd\xed", /* f480 */ "\xdd\xee\xdd\xef\xdd\xf0\xdd\xf1\xdd\xf2\xdd\xf3\xdd\xf4\xdd\xf5\xdd\xf6\xdd\xf7\xdd\xf8\xdd\xf9\xdd\xfa\xdd\xfb\xdd\xfc\xdd\xfd\xde\x41\xde\x42\xde\x43\xde\x44\xde\x45\xde\x46\xde\x47\xde\x48\xde\x49\xde\x4a\xde\x4b\xde\x4c\xde\x4d\xde\x4e\xde\x4f\xde\x50\xde\x51\xde\x52\xde\x53\xde\x54\xde\x55\xde\x56\xde\x57\xde\x58\xde\x59\xde\x5a\xde\x5b\xde\x5c\xde\x5d\xde\x5e\xde\x5f\xde\x60\xde\x61\xde\x62\xde\x63\xde\x64\xde\x65\xde\x66\xde\x67\xde\x68\xde\x69\xde\x6a\xde\x6b\xde\x6c\xde\x6d\xde\x6e\xde\x6f\xde\x70\xde\x71\xde\x72\xde\x73\xde\x74\xde\x75\xde\x76\xde\x77\xde\x78\xde\x79\xde\x7a\xde\x7b\xde\x7c\xde\x7d\xde\x7e\xde\x7f\xde\x81\xde\x82\xde\x83\xde\x84\xde\x85\xde\x86\xde\x87\xde\x88\xde\x89\xde\x8a\xde\x8b\xde\x8c\xde\x8d\xde\x8e\xde\x8f\xde\x90\xde\x91\xde\x92\xde\x93\xde\x94\xde\x95\xde\x96\xde\x97\xde\x98\xde\x99\xde\x9a\xde\x9b\xde\x9c\xde\x9d\xde\x9e\xde\x9f\xde\xa0\xde\xa1\xde\xa2\xde\xa3\xde\xa4\xde\xa5\xde\xa6\xde\xa7\xde\xa8\xde\xa9\xde\xaa\xde\xab\xde\xac\xde\xad\xde\xae\xde\xaf\xde\xb0\xde\xb1", /* f500 */ "\xde\xb2\xde\xb3\xde\xb4\xde\xb5\xde\xb6\xde\xb7\xde\xb8\xde\xb9\xde\xba\xde\xbb\xde\xbc\xde\xbd\xde\xbe\xde\xbf\xde\xc0\xde\xc1\xde\xc2\xde\xc3\xde\xc4\xde\xc5\xde\xc6\xde\xc7\xde\xc8\xde\xc9\xde\xca\xde\xcb\xde\xcc\xde\xcd\xde\xce\xde\xcf\xde\xd0\xde\xd1\xde\xd2\xde\xd3\xde\xd4\xde\xd5\xde\xd6\xde\xd7\xde\xd8\xde\xd9\xde\xda\xde\xdb\xde\xdc\xde\xdd\xde\xde\xde\xdf\xde\xe0\xde\xe1\xde\xe2\xde\xe3\xde\xe4\xde\xe5\xde\xe6\xde\xe7\xde\xe8\xde\xe9\xde\xea\xde\xeb\xde\xec\xde\xed\xde\xee\xde\xef\xde\xf0\xde\xf1\xde\xf2\xde\xf3\xde\xf4\xde\xf5\xde\xf6\xde\xf7\xde\xf8\xde\xf9\xde\xfa\xde\xfb\xde\xfc\xde\xfd\xdf\x41\xdf\x42\xdf\x43\xdf\x44\xdf\x45\xdf\x46\xdf\x47\xdf\x48\xdf\x49\xdf\x4a\xdf\x4b\xdf\x4c\xdf\x4d\xdf\x4e\xdf\x4f\xdf\x50\xdf\x51\xdf\x52\xdf\x53\xdf\x54\xdf\x55\xdf\x56\xdf\x57\xdf\x58\xdf\x59\xdf\x5a\xdf\x5b\xdf\x5c\xdf\x5d\xdf\x5e\xdf\x5f\xdf\x60\xdf\x61\xdf\x62\xdf\x63\xdf\x64\xdf\x65\xdf\x66\xdf\x67\xdf\x68\xdf\x69\xdf\x6a\xdf\x6b\xdf\x6c\xdf\x6d\xdf\x6e\xdf\x6f\xdf\x70\xdf\x71\xdf\x72\xdf\x73\xdf\x74", /* f580 */ "\xdf\x75\xdf\x76\xdf\x77\xdf\x78\xdf\x79\xdf\x7a\xdf\x7b\xdf\x7c\xdf\x7d\xdf\x7e\xdf\x7f\xdf\x81\xdf\x82\xdf\x83\xdf\x84\xdf\x85\xdf\x86\xdf\x87\xdf\x88\xdf\x89\xdf\x8a\xdf\x8b\xdf\x8c\xdf\x8d\xdf\x8e\xdf\x8f\xdf\x90\xdf\x91\xdf\x92\xdf\x93\xdf\x94\xdf\x95\xdf\x96\xdf\x97\xdf\x98\xdf\x99\xdf\x9a\xdf\x9b\xdf\x9c\xdf\x9d\xdf\x9e\xdf\x9f\xdf\xa0\xdf\xa1\xdf\xa2\xdf\xa3\xdf\xa4\xdf\xa5\xdf\xa6\xdf\xa7\xdf\xa8\xdf\xa9\xdf\xaa\xdf\xab\xdf\xac\xdf\xad\xdf\xae\xdf\xaf\xdf\xb0\xdf\xb1\xdf\xb2\xdf\xb3\xdf\xb4\xdf\xb5\xdf\xb6\xdf\xb7\xdf\xb8\xdf\xb9\xdf\xba\xdf\xbb\xdf\xbc\xdf\xbd\xdf\xbe\xdf\xbf\xdf\xc0\xdf\xc1\xdf\xc2\xdf\xc3\xdf\xc4\xdf\xc5\xdf\xc6\xdf\xc7\xdf\xc8\xdf\xc9\xdf\xca\xdf\xcb\xdf\xcc\xdf\xcd\xdf\xce\xdf\xcf\xdf\xd0\xdf\xd1\xdf\xd2\xdf\xd3\xdf\xd4\xdf\xd5\xdf\xd6\xdf\xd7\xdf\xd8\xdf\xd9\xdf\xda\xdf\xdb\xdf\xdc\xdf\xdd\xdf\xde\xdf\xdf\xdf\xe0\xdf\xe1\xdf\xe2\xdf\xe3\xdf\xe4\xdf\xe5\xdf\xe6\xdf\xe7\xdf\xe8\xdf\xe9\xdf\xea\xdf\xeb\xdf\xec\xdf\xed\xdf\xee\xdf\xef\xdf\xf0\xdf\xf1\xdf\xf2\xdf\xf3\xdf\xf4\xdf\xf5", /* f600 */ "\xdf\xf6\xdf\xf7\xdf\xf8\xdf\xf9\xdf\xfa\xdf\xfb\xdf\xfc\xdf\xfd\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9", /* f680 */ "\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc\xe0\xfd\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c", /* f700 */ "\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd", /* f780 */ "\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1", /* f800 */ "\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\x00\x00\x00\x00\x44\x5c\x46\xa8\x46\xa9\x46\xaa\x46\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4b\x7a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x41\x46\xa7\x47\x49\x46\xb6\x46\xbc\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xa4\x46\xa5\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xa0\x46\xa1\x46\xa2\x46\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x46\xbe\x46\xbf\x46\xc2\x46\xc3\x46\xc0\x46\xc1\x46\xbd\x47\x42\x47\x43\x47\x44\x00\x00\x47\x45\x47\x46\x47\x47\x47\x48\x47\x4a\x47\x4b\x47\x4c\x47\x4d\x47\x4e\x47\x4f\x47\x50\x47\x53\x47\x54\x46\xc4\x47\x55\x47\x56\x47\x57\x47\x58\x47\x59\x00\x00\x47\x5a\x47\x5b\x47\x5c\x47\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x46\xb8\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x00\x00\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x47\x51\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-937_P110-1999 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\x27\x3d\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x35\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x3e\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x20\x27\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x23\x12\x22\x02\x22\x07\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\x00\x00\x00\x00\x22\x6a\x22\x6b\x00\x00\x22\x3d\x22\x1d\x00\x00\x22\x2c\x22\x08\x22\x0b\x22\x86\x22\x87\x22\x82\x22\x83\x00\x00\x00\x00\x22\x27\x22\x28\x21\xd2\x21\xd4\x22\x00\x22\x03\x21\x2b\x20\x30\x26\x6f\x26\x6d\x26\x6a\x20\x20\x20\x21\x00\xb6\x25\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x01\x25\x03\x25\x0f\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x25\x13\x25\x1b\x25\x17\x25\x23\x25\x33\x25\x2b\x25\x3b\x25\x4b\x25\x20\x25\x2f\x25\x28\x25\x37\x25\x3f\x25\x1d\x25\x30\x25\x25\x25\x38\x25\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x14\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x20\x32\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x02\xba\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x66\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x67\x22\x35\x26\x40\x00\xd7\x00\xf7\x22\x25\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x00\xb4\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x21\x30\x22\x30\x23\x30\x24\x30\x25\x30\x26\x30\x27\x30\x28\x30\x29\x53\x41\x53\x44\x53\x45\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xca\x02\xc7\x02\xcb\x02\xd9\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ NULL, /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x81\x25\x82\x25\x83\x25\x84\x25\x85\x25\x86\x25\x87\x25\x88\x25\x8f\x25\x8e\x25\x8d\x25\x8c\x25\x8b\x25\x8a\x25\x89\x25\x3c\x25\x34\x25\x2c\x25\x24\x25\x1c\x25\x94\x25\x00\x25\x02\x25\x95\x25\x0c\x25\x10\x25\x14\x25\x18\x25\x6d\x25\x6e\x25\x70\x25\x6f", /* 4680 */ "\x00\x00\x25\x50\x25\x5e\x25\x6a\x25\x61\x25\xe2\x25\xe3\x25\xe5\x25\xe4\x25\x71\x25\x72\x25\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x41\xfe\x42\xfe\x43\xfe\x44\xfe\x3b\xfe\x3c\x00\x00\xfe\x31\xf8\x3f\xf8\x40\xf8\x41\xf8\x42\xfe\x35\xfe\x36\xfe\x37\xfe\x38\xfe\x39\xfe\x3a\xfe\x3d\xfe\x3e\xfe\x3f\xfe\x40\xfe\x33\x25\x74\xff\x0a\x30\x03\x32\xa3\x21\x05\xfe\x34\xfe\x4f\xfe\x49\xfe\x4a\xfe\x4d\xfe\x4e\xfe\x4b\xfe\x4c\xfe\x61\x22\x1a\x22\x52\x22\x61\x22\x29\x22\x2a\x22\xa5\x22\x20\x22\x1f\x22\xbf\x33\xd2\x33\xd1\x22\x2b\x22\x2e\x22\x95\x22\x99\x21\x96\x21\x97\x21\x99\x21\x98\x00\x00\x00\x00\x22\x15\x21\x09\x33\xd5\x33\x9c\x33\x9d\x33\x9e\x33\xce\x33\xa1\x33\x8e\x33\x8f\x33\xc4\x00\xb7\x00\x00\x00\x00\x00\x00\x30\x1d\x30\x1e\x00\x00\x00\x00\x00\x00\x21\xe7\x21\xb8\x21\xb9\x51\x59\x51\x5b\x51\x5e\x51\x5d\x51\x61\x51\x63\x55\xe7\x74\xe9\x7c\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x30\xfe\x50\xfe\x51\xfe\x52\xfe\x54\xfe\x55\xfe\x56\xfe\x57\xfe\x32\xfe\x58\xfe\x59\xfe\x5a\xfe\x5b\xfe\x5c\xfe\x5d\xfe\x5e\xff\xe3\x02\xcd\xfe\x5f\xfe\x60\xfe\x62\xfe\x63\xfe\x64\xfe\x65\xfe\x66\xfe\x68\xfe\x69\xfe\x6a\xfe\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4780 */ "\x00\x00\x24\x00\x24\x01\x24\x02\x24\x03\x24\x04\x24\x05\x24\x06\x24\x07\x24\x08\x24\x09\x24\x0a\x24\x0b\x24\x0c\x24\x0d\x24\x0e\x24\x0f\x24\x10\x24\x11\x24\x12\x24\x13\x24\x14\x24\x15\x24\x16\x24\x17\x24\x18\x24\x19\x24\x1a\x24\x1b\x24\x1c\x24\x1d\x24\x1e\x24\x1f\x24\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x28\x4e\x36\x4e\x3f\x4e\x59\x4e\x85\x4e\x8c\x4e\xa0\x4e\xba\x51\x3f\x51\x65\x51\x6b\x51\x82\x51\x96\x51\xab\x51\xe0\x51\xf5\x52\x00\x52\x9b\x52\xf9\x53\x15\x53\x1a\x53\x38\x53\x41\x53\x5c\x53\x69\x53\x82\x53\xb6\x53\xc8\x53\xe3\x56\xd7\x57\x1f\x58\xeb\x59\x0a\x59\x15\x59\x27\x59\x73\x5b\x50\x5b\x80\x5b\xf8\x5c\x0f\x5c\x22\x5c\x38\x5c\x6e\x5c\x71\x5d\xdb\x5d\xe5\x5d\xf1\x5d\xfe\x5e\x72\x5e\x7a\x5e\x7f\x5e\xf4\x5e\xfe\x5f\x0b\x5f\x13\x5f\x50\x5f\x61\x5f\x73\x5f\xc3\x62\x08\x62\x36\x62\x4b", /* 4880 */ "\x00\x00\x65\x2f\x65\x34\x65\x87\x65\x97\x65\xa4\x65\xb9\x65\xe0\x65\xe5\x66\xf0\x67\x08\x67\x28\x6b\x20\x6b\x62\x6b\x79\x6b\xb3\x6b\xcb\x6b\xd4\x6b\xdb\x6c\x0f\x6c\x14\x6c\x34\x70\x6b\x72\x2a\x72\x36\x72\x3b\x72\x3f\x72\x47\x72\x59\x72\x5b\x72\xac\x73\x84\x73\x89\x74\xdc\x74\xe6\x75\x18\x75\x1f\x75\x28\x75\x30\x75\x8b\x75\x92\x76\x76\x76\x7d\x76\xae\x76\xbf\x76\xee\x77\xdb\x77\xe2\x77\xf3\x79\x3a\x79\xb8\x79\xbe\x7a\x74\x7a\xcb\x7a\xf9\x7c\x73\x7c\xf8\x7f\x36\x7f\x51\x7f\x8a\x7f\xbd\x80\x01\x80\x0c\x80\x12\x80\x33\x80\x7f\x80\x89\x81\xe3\x81\xea\x81\xf3\x81\xfc\x82\x0c\x82\x1b\x82\x1f\x82\x6e\x82\x72\x82\x78\x86\x4d\x86\x6b\x88\x40\x88\x4c\x88\x63\x89\x7e\x89\x8b\x89\xd2\x8a\x00\x8c\x37\x8c\x46\x8c\x55\x8c\x78\x8c\x9d\x8d\x64\x8d\x70\x8d\xb3\x8e\xab\x8e\xca\x8f\x9b\x8f\xb0\x8f\xb5\x90\x91\x91\x49\x91\xc6\x91\xcc\x91\xd1\x95\x77\x95\x80\x96\x1c\x96\xb6\x96\xb9\x96\xe8\x97\x52\x97\x5e\x97\x62\x97\x69\x97\xcb\x97\xed\x97\xf3\x98\x01\x98\xa8\x98\xdb\x98\xdf\x99\x96\x99\x99\x99\xac\x9a\xa8\x9a\xd8\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xdf\x9b\x25\x9b\x2f\x9b\x32\x9b\x3c\x9b\x5a\x9c\xe5\x9e\x75\x9e\x7f\x9e\xa5\x9e\xbb\x9e\xc3\x9e\xcd\x9e\xd1\x9e\xf9\x9e\xfd\x9f\x0e\x9f\x13\x9f\x20\x9f\x3b\x9f\x4a\x9f\x52\x9f\x8d\x9f\x9c\x9f\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x59\x4e\x01\x4e\x03\x4e\x43\x4e\x5d\x4e\x86\x4e\x8c\x4e\xba\x51\x3f\x51\x65\x51\x6b\x51\xe0\x52\x00\x52\x01\x52\x9b\x53\x15\x53\x41\x53\x5c\x53\xc8\x4e\x09\x4e\x0b\x4e\x08\x4e\x0a\x4e\x2b\x4e\x38\x51\xe1\x4e\x45\x4e\x48\x4e\x5f\x4e\x5e\x4e\x8e\x4e\xa1\x51\x40\x52\x03\x52\xfa\x53\x43\x53\xc9\x53\xe3\x57\x1f\x58\xeb\x59\x15\x59\x27\x59\x73\x5b\x50\x5b\x51\x5b\x53\x5b\xf8\x5c\x0f\x5c\x22\x5c\x38\x5c\x71\x5d\xdd\x5d\xe5\x5d\xf1\x5d\xf2\x5d\xf3\x5d\xfe\x5e\x72\x5e\xfe\x5f\x0b\x5f\x13\x62\x4d", /* 4c80 */ "\x00\x00\x4e\x11\x4e\x10\x4e\x0d\x4e\x2d\x4e\x30\x4e\x39\x4e\x4b\x5c\x39\x4e\x88\x4e\x91\x4e\x95\x4e\x92\x4e\x94\x4e\xa2\x4e\xc1\x4e\xc0\x4e\xc3\x4e\xc6\x4e\xc7\x4e\xcd\x4e\xca\x4e\xcb\x4e\xc4\x51\x43\x51\x41\x51\x67\x51\x6d\x51\x6e\x51\x6c\x51\x97\x51\xf6\x52\x06\x52\x07\x52\x08\x52\xfb\x52\xfe\x52\xff\x53\x16\x53\x39\x53\x48\x53\x47\x53\x45\x53\x5e\x53\x84\x53\xcb\x53\xca\x53\xcd\x58\xec\x59\x29\x59\x2b\x59\x2a\x59\x2d\x5b\x54\x5c\x11\x5c\x24\x5c\x3a\x5c\x6f\x5d\xf4\x5e\x7b\x5e\xff\x5f\x14\x5f\x15\x5f\xc3\x62\x08\x62\x36\x62\x4b\x62\x4e\x65\x2f\x65\x87\x65\x97\x65\xa4\x65\xb9\x65\xe5\x66\xf0\x67\x08\x67\x28\x6b\x20\x6b\x62\x6b\x79\x6b\xcb\x6b\xd4\x6b\xdb\x6c\x0f\x6c\x34\x70\x6b\x72\x2a\x72\x36\x72\x3b\x72\x47\x72\x59\x72\x5b\x72\xac\x73\x8b\x4e\x19\x4e\x16\x4e\x15\x4e\x14\x4e\x18\x4e\x3b\x4e\x4d\x4e\x4f\x4e\x4e\x4e\xe5\x4e\xd8\x4e\xd4\x4e\xd5\x4e\xd6\x4e\xd7\x4e\xe3\x4e\xe4\x4e\xd9\x4e\xde\x51\x45\x51\x44\x51\x89\x51\x8a\x51\xac\x51\xf9\x51\xfa\x51\xf8\x52\x0a\x52\xa0\x52\x9f\x53\x05\x53\x06\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x17\x53\x1d\x4e\xdf\x53\x4a\x53\x49\x53\x61\x53\x60\x53\x6f\x53\x6e\x53\xbb\x53\xef\x53\xe4\x53\xf3\x53\xec\x53\xee\x53\xe9\x53\xe8\x53\xfc\x53\xf8\x53\xf5\x53\xeb\x53\xe6\x53\xea\x53\xf2\x53\xf1\x53\xf0\x53\xe5\x53\xed\x53\xfb\x56\xdb\x56\xda\x59\x16\x59\x2e\x59\x31\x59\x74\x59\x76\x5b\x55\x5b\x83\x5c\x3c\x5d\xe8\x5d\xe7\x5d\xe6\x5e\x02\x5e\x03\x5e\x73\x5e\x7c\x5f\x01\x5f\x18\x5f\x17\x5f\xc5\x62\x0a\x62\x53\x62\x54\x62\x52\x62\x51\x65\xa5\x65\xe6\x67\x2e\x67\x2c\x67\x2a\x67\x2b\x67\x2d\x6b\x63", /* 4d80 */ "\x00\x00\x6b\xcd\x6c\x11\x6c\x10\x6c\x38\x6c\x41\x6c\x40\x6c\x3e\x72\xaf\x73\x84\x73\x89\x74\xdc\x74\xe6\x75\x18\x75\x1f\x75\x28\x75\x29\x75\x30\x75\x31\x75\x32\x75\x33\x75\x8b\x76\x7d\x76\xae\x76\xbf\x76\xee\x77\xdb\x77\xe2\x77\xf3\x79\x3a\x79\xbe\x7a\x74\x7a\xcb\x4e\x1e\x4e\x1f\x4e\x52\x4e\x53\x4e\x69\x4e\x99\x4e\xa4\x4e\xa6\x4e\xa5\x4e\xff\x4f\x09\x4f\x19\x4f\x0a\x4f\x15\x4f\x0d\x4f\x10\x4f\x11\x4f\x0f\x4e\xf2\x4e\xf6\x4e\xfb\x4e\xf0\x4e\xf3\x4e\xfd\x4f\x01\x4f\x0b\x51\x49\x51\x47\x51\x46\x51\x48\x51\x68\x51\x71\x51\x8d\x51\xb0\x52\x17\x52\x11\x52\x12\x52\x0e\x52\x16\x52\xa3\x53\x08\x53\x21\x53\x20\x53\x70\x53\x71\x54\x09\x54\x0f\x54\x0c\x54\x0a\x54\x10\x54\x01\x54\x0b\x54\x04\x54\x11\x54\x0d\x54\x08\x54\x03\x54\x0e\x54\x06\x54\x12\x56\xe0\x56\xde\x56\xdd\x57\x33\x57\x30\x57\x28\x57\x2d\x57\x2c\x57\x2f\x57\x29\x59\x19\x59\x1a\x59\x37\x59\x38\x59\x84\x59\x78\x59\x83\x59\x7d\x59\x79\x59\x82\x59\x81\x5b\x57\x5b\x58\x5b\x87\x5b\x88\x5b\x85\x5b\x89\x5b\xfa\x5c\x16\x5c\x79\x5d\xde\x5e\x06\x5e\x76\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x74\x5f\x0f\x5f\x1b\x5f\xd9\x5f\xd6\x62\x0e\x62\x0c\x62\x0d\x62\x10\x62\x63\x62\x5b\x62\x58\x65\x36\x65\xe9\x65\xe8\x65\xec\x65\xed\x66\xf2\x66\xf3\x67\x09\x67\x3d\x67\x34\x67\x31\x67\x35\x6b\x21\x6b\x64\x6b\x7b\x6c\x16\x6c\x5d\x6c\x57\x6c\x59\x6c\x5f\x6c\x60\x6c\x50\x6c\x55\x6c\x61\x6c\x5b\x6c\x4d\x6c\x4e\x70\x70\x72\x5f\x72\x5d\x76\x7e\x7a\xf9\x7c\x73\x7c\xf8\x7f\x36\x7f\x8a\x7f\xbd\x80\x01\x80\x03\x80\x0c\x80\x12\x80\x33\x80\x7f\x80\x89\x80\x8b\x80\x8c\x81\xe3\x81\xea\x81\xf3\x81\xfc\x82\x0c", /* 4e80 */ "\x00\x00\x82\x1b\x82\x1f\x82\x6e\x82\x72\x82\x7e\x86\x6b\x88\x40\x88\x4c\x88\x63\x89\x7f\x96\x21\x4e\x32\x4e\xa8\x4f\x4d\x4f\x4f\x4f\x47\x4f\x57\x4f\x5e\x4f\x34\x4f\x5b\x4f\x55\x4f\x30\x4f\x50\x4f\x51\x4f\x3d\x4f\x3a\x4f\x38\x4f\x43\x4f\x54\x4f\x3c\x4f\x46\x4f\x63\x4f\x5c\x4f\x60\x4f\x2f\x4f\x4e\x4f\x36\x4f\x59\x4f\x5d\x4f\x48\x4f\x5a\x51\x4c\x51\x4b\x51\x4d\x51\x75\x51\xb6\x51\xb7\x52\x25\x52\x24\x52\x29\x52\x2a\x52\x28\x52\xab\x52\xa9\x52\xaa\x52\xac\x53\x23\x53\x73\x53\x75\x54\x1d\x54\x2d\x54\x1e\x54\x3e\x54\x26\x54\x4e\x54\x27\x54\x46\x54\x43\x54\x33\x54\x48\x54\x42\x54\x1b\x54\x29\x54\x4a\x54\x39\x54\x3b\x54\x38\x54\x2e\x54\x35\x54\x36\x54\x20\x54\x3c\x54\x40\x54\x31\x54\x2b\x54\x1f\x54\x2c\x56\xea\x56\xf0\x56\xe4\x56\xeb\x57\x4a\x57\x51\x57\x40\x57\x4d\x57\x47\x57\x4e\x57\x3e\x57\x50\x57\x4f\x57\x3b\x58\xef\x59\x3e\x59\x9d\x59\x92\x59\xa8\x59\x9e\x59\xa3\x59\x99\x59\x96\x59\x8d\x59\xa4\x59\x93\x59\x8a\x59\xa5\x5b\x5d\x5b\x5c\x5b\x5a\x5b\x5b\x5b\x8c\x5b\x8b\x5b\x8f\x5c\x2c\x5c\x40\x5c\x41\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x3f\x5c\x3e\x5c\x90\x5c\x91\x5c\x94\x5c\x8c\x5d\xeb\x5e\x0c\x5e\x8f\x5e\x87\x5e\x8a\x5e\xf7\x5f\x04\x5f\x1f\x5f\x64\x5f\x62\x5f\x77\x5f\x79\x5f\xd8\x5f\xcc\x5f\xd7\x5f\xcd\x5f\xf1\x5f\xeb\x5f\xf8\x5f\xea\x62\x12\x62\x11\x62\x84\x62\x97\x62\x96\x62\x80\x62\x76\x62\x89\x62\x6d\x62\x8a\x62\x7c\x62\x7e\x62\x79\x62\x73\x62\x92\x62\x6f\x62\x98\x62\x6e\x62\x95\x62\x93\x62\x91\x62\x86\x65\x39\x65\x3b\x65\x38\x65\xf1\x66\xf4\x67\x5f\x67\x4e\x67\x4f\x67\x50\x67\x51\x67\x5c\x67\x56\x67\x5e\x67\x49\x67\x46", /* 4f80 */ "\x00\x00\x67\x60\x67\x53\x67\x57\x6b\x65\x6b\xcf\x6c\x42\x6c\x5e\x6c\x99\x6c\x81\x6c\x88\x6c\x89\x6c\x85\x6c\x9b\x6c\x6a\x6c\x7a\x6c\x90\x6c\x70\x6c\x8c\x6c\x68\x6c\x96\x6c\x92\x6c\x7d\x6c\x83\x6c\x72\x6c\x7e\x6c\x74\x6c\x86\x6c\x76\x6c\x8d\x6c\x94\x6c\x98\x6c\x82\x70\x76\x70\x7c\x70\x7d\x70\x78\x72\x62\x72\x61\x72\x60\x72\xc4\x72\xc2\x73\x96\x75\x2c\x75\x2b\x75\x37\x75\x38\x76\x82\x76\xef\x77\xe3\x79\xc1\x79\xc0\x79\xbf\x7a\x76\x7c\xfb\x7f\x55\x80\x96\x80\x93\x80\x9d\x80\x98\x80\x9b\x80\x9a\x80\xb2\x82\x6f\x82\x92\x82\x8b\x82\x8d\x89\x8b\x89\xd2\x8a\x00\x8c\x37\x8c\x46\x8c\x55\x8c\x9d\x8d\x64\x8d\x70\x8d\xb3\x8e\xab\x8e\xca\x8f\x9b\x8f\xb0\x8f\xc2\x8f\xc6\x8f\xc5\x8f\xc4\x5d\xe1\x90\x91\x90\xa2\x90\xaa\x90\xa6\x90\xa3\x91\x49\x91\xc6\x91\xcc\x96\x32\x96\x2e\x96\x31\x96\x2a\x96\x2c\x4e\x26\x4e\x56\x4e\x73\x4e\x8b\x4e\x9b\x4e\x9e\x4e\xab\x4e\xac\x4f\x6f\x4f\x9d\x4f\x8d\x4f\x73\x4f\x7f\x4f\x6c\x4f\x9b\x4f\x8b\x4f\x86\x4f\x83\x4f\x70\x4f\x75\x4f\x88\x4f\x69\x4f\x7b\x4f\x96\x4f\x7e\x4f\x8f\x4f\x91\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7a\x51\x54\x51\x52\x51\x55\x51\x69\x51\x77\x51\x76\x51\x78\x51\xbd\x51\xfd\x52\x3b\x52\x38\x52\x37\x52\x3a\x52\x30\x52\x2e\x52\x36\x52\x41\x52\xbe\x52\xbb\x53\x52\x53\x54\x53\x53\x53\x51\x53\x66\x53\x77\x53\x78\x53\x79\x53\xd6\x53\xd4\x53\xd7\x54\x73\x54\x75\x54\x96\x54\x78\x54\x95\x54\x80\x54\x7b\x54\x77\x54\x84\x54\x92\x54\x86\x54\x7c\x54\x90\x54\x71\x54\x76\x54\x8c\x54\x9a\x54\x62\x54\x68\x54\x8b\x54\x7d\x54\x8e\x56\xfa\x57\x83\x57\x77\x57\x6a\x57\x69\x57\x61\x57\x66\x57\x64\x57\x7c\x59\x1c", /* 5080 */ "\x00\x00\x59\x49\x59\x47\x59\x48\x59\x44\x59\x54\x59\xbe\x59\xbb\x59\xd4\x59\xb9\x59\xae\x59\xd1\x59\xc6\x59\xd0\x59\xcd\x59\xcb\x59\xd3\x59\xca\x59\xaf\x59\xb3\x59\xd2\x59\xc5\x5b\x5f\x5b\x64\x5b\x63\x5b\x97\x5b\x9a\x5b\x98\x5b\x9c\x5b\x99\x5b\x9b\x5c\x1a\x5c\x48\x5c\x45\x5c\x46\x5c\xb7\x5c\xa1\x5c\xb8\x5c\xa9\x5c\xab\x5c\xb1\x5c\xb3\x5e\x18\x5e\x1a\x5e\x16\x5e\x15\x5e\x1b\x5e\x11\x5e\x78\x5e\x9a\x5e\x97\x5e\x9c\x5e\x95\x5e\x96\x5e\xf6\x5f\x26\x5f\x27\x5f\x29\x5f\x80\x5f\x81\x5f\x7f\x5f\x7c\x5f\xdd\x5f\xe0\x5f\xfd\x5f\xf5\x5f\xff\x60\x0f\x60\x14\x60\x2f\x60\x35\x60\x16\x60\x2a\x60\x15\x60\x21\x60\x27\x60\x29\x60\x2b\x60\x1b\x62\x16\x62\x15\x62\x3f\x62\x3e\x62\x40\x62\x7f\x62\xc9\x62\xcc\x62\xc4\x62\xbf\x62\xc2\x62\xb9\x62\xd2\x62\xdb\x62\xab\x62\xd3\x62\xd4\x62\xcb\x62\xc8\x62\xa8\x62\xbd\x62\xbc\x62\xd0\x62\xd9\x62\xc7\x62\xcd\x62\xb5\x62\xda\x62\xb1\x62\xd8\x62\xd6\x62\xd7\x62\xc6\x62\xac\x62\xce\x65\x3e\x65\xa7\x65\xbc\x65\xfa\x66\x14\x66\x13\x66\x0c\x66\x06\x66\x02\x66\x0e\x66\x00\x66\x0f\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x15\x66\x0a\x66\x07\x67\x0d\x67\x0b\x67\x6d\x67\x8b\x67\x95\x67\x71\x67\x9c\x67\x73\x67\x77\x67\x87\x67\x9d\x67\x97\x67\x6f\x67\x70\x67\x7f\x67\x89\x67\x7e\x67\x90\x67\x75\x67\x9a\x67\x93\x67\x7c\x67\x6a\x67\x72\x6b\x23\x6b\x66\x6b\x67\x6b\x7f\x6c\x13\x6c\x1b\x6c\xe3\x6c\xe8\x6c\xf3\x6c\xb1\x6c\xcc\x6c\xe5\x6c\xb3\x6c\xbd\x6c\xbe\x6c\xbc\x6c\xe2\x6c\xab\x6c\xd5\x6c\xd3\x6c\xb8\x6c\xc4\x6c\xb9\x6c\xc1\x6c\xae\x6c\xd7\x6c\xc5\x6c\xf1\x6c\xbf\x6c\xbb\x6c\xe1\x6c\xdb\x6c\xca\x6c\xac\x6c\xef\x6c\xdc", /* 5180 */ "\x00\x00\x6c\xd6\x6c\xe0\x70\x95\x70\x8e\x70\x92\x70\x8a\x70\x99\x72\x2c\x72\x2d\x72\x38\x72\x48\x72\x67\x72\x69\x72\xc0\x72\xce\x72\xd9\x72\xd7\x72\xd0\x73\xa9\x73\xa8\x73\x9f\x73\xab\x73\xa5\x75\x3d\x75\x9d\x75\x99\x75\x9a\x76\x84\x76\xc2\x76\xf2\x76\xf4\x77\xe5\x77\xfd\x79\x3e\x79\x40\x79\x41\x79\xc9\x79\xc8\x7a\x7a\x7a\x79\x7a\xfa\x7c\xfe\x7f\x54\x7f\x8c\x7f\x8b\x80\x05\x80\xba\x80\xa5\x80\xa2\x80\xb1\x80\xa1\x80\xab\x80\xa9\x80\xb4\x80\xaa\x80\xaf\x81\xe5\x81\xfe\x82\x0d\x82\xb3\x82\x9d\x82\x99\x82\xad\x82\xbd\x82\x9f\x82\xb9\x82\xb1\x82\xac\x82\xa5\x82\xaf\x82\xb8\x82\xa3\x82\xb0\x82\xbe\x82\xb7\x86\x4e\x86\x71\x52\x1d\x88\x68\x8e\xcb\x8f\xce\x8f\xd4\x8f\xd1\x90\xb5\x90\xb8\x90\xb1\x90\xb6\x91\xc7\x91\xd1\x95\x77\x95\x80\x96\x1c\x96\x40\x96\x3f\x96\x3b\x96\x44\x96\x42\x96\xb9\x96\xe8\x97\x52\x97\x5e\x4e\x9f\x4e\xad\x4e\xae\x4f\xe1\x4f\xb5\x4f\xaf\x4f\xbf\x4f\xe0\x4f\xd1\x4f\xcf\x4f\xdd\x4f\xc3\x4f\xb6\x4f\xd8\x4f\xdf\x4f\xca\x4f\xd7\x4f\xae\x4f\xd0\x4f\xc4\x4f\xc2\x4f\xda\x4f\xce\x4f\xde\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb7\x51\x57\x51\x92\x51\x91\x51\xa0\x52\x4e\x52\x43\x52\x4a\x52\x4d\x52\x4c\x52\x4b\x52\x47\x52\xc7\x52\xc9\x52\xc3\x52\xc1\x53\x0d\x53\x57\x53\x7b\x53\x9a\x53\xdb\x54\xac\x54\xc0\x54\xa8\x54\xce\x54\xc9\x54\xb8\x54\xa6\x54\xb3\x54\xc7\x54\xc2\x54\xbd\x54\xaa\x54\xc1\x54\xc4\x54\xc8\x54\xaf\x54\xab\x54\xb1\x54\xbb\x54\xa9\x54\xa7\x54\xbf\x56\xff\x57\x82\x57\x8b\x57\xa0\x57\xa3\x57\xa2\x57\xce\x57\xae\x57\x93\x59\x55\x59\x51\x59\x4f\x59\x4e\x59\x50\x59\xdc\x59\xd8\x59\xff\x59\xe3\x59\xe8\x5a\x03", /* 5280 */ "\x00\x00\x59\xe5\x59\xea\x59\xda\x59\xe6\x5a\x01\x59\xfb\x5b\x69\x5b\xa3\x5b\xa6\x5b\xa4\x5b\xa2\x5b\xa5\x5c\x01\x5c\x4e\x5c\x4f\x5c\x4d\x5c\x4b\x5c\xd9\x5c\xd2\x5d\xf7\x5e\x1d\x5e\x25\x5e\x1f\x5e\x7d\x5e\xa0\x5e\xa6\x5e\xfa\x5f\x08\x5f\x2d\x5f\x65\x5f\x88\x5f\x85\x5f\x8a\x5f\x8b\x5f\x87\x5f\x8c\x5f\x89\x60\x12\x60\x1d\x60\x20\x60\x25\x60\x0e\x60\x28\x60\x4d\x60\x70\x60\x68\x60\x62\x60\x46\x60\x43\x60\x6c\x60\x6b\x60\x6a\x60\x64\x62\x41\x62\xdc\x63\x16\x63\x09\x62\xfc\x62\xed\x63\x01\x62\xee\x62\xfd\x63\x07\x62\xf1\x62\xf7\x62\xef\x62\xec\x62\xfe\x62\xf4\x63\x11\x63\x02\x65\x3f\x65\x45\x65\xab\x65\xbd\x65\xe2\x66\x25\x66\x2d\x66\x20\x66\x27\x66\x2f\x66\x1f\x66\x28\x66\x31\x66\x24\x66\xf7\x67\xff\x67\xd3\x67\xf1\x67\xd4\x67\xd0\x67\xec\x67\xb6\x67\xaf\x67\xf5\x67\xe9\x67\xef\x67\xc4\x67\xd1\x67\xb4\x67\xda\x67\xe5\x67\xb8\x67\xcf\x67\xde\x67\xf3\x67\xb0\x67\xd9\x67\xe2\x67\xdd\x67\xd2\x6b\x6a\x6b\x83\x6b\x86\x6b\xb5\x6b\xd2\x6b\xd7\x6c\x1f\x6c\xc9\x6d\x0b\x6d\x32\x6d\x2a\x6d\x41\x6d\x25\x6d\x0c\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x31\x6d\x1e\x6d\x17\x6d\x3b\x6d\x3d\x6d\x3e\x6d\x36\x6d\x1b\x6c\xf5\x6d\x39\x6d\x27\x6d\x38\x6d\x29\x6d\x2e\x6d\x35\x6d\x0e\x6d\x2b\x70\xab\x70\xba\x70\xb3\x70\xac\x70\xaf\x70\xad\x70\xb8\x70\xae\x70\xa4\x72\x30\x72\x72\x72\x6f\x72\x74\x72\xe9\x72\xe0\x72\xe1\x73\xb7\x73\xca\x73\xbb\x73\xb2\x73\xcd\x73\xc0\x73\xb3\x75\x1a\x75\x2d\x75\x4f\x75\x4c\x75\x4e\x75\x4b\x75\xab\x75\xa4\x75\xa5\x75\xa2\x75\xa3\x76\x78\x76\x86\x76\x87\x76\x88\x76\xc8\x76\xc6\x76\xc3\x76\xc5\x77\x01\x76\xf9\x76\xf8\x77\x09", /* 5380 */ "\x00\x00\x77\x0b\x76\xfe\x76\xfc\x77\x07\x77\xdc\x78\x02\x78\x14\x78\x0c\x78\x0d\x79\x46\x79\x49\x79\x48\x79\x47\x79\xb9\x79\xba\x79\xd1\x79\xd2\x79\xcb\x7a\x7f\x7a\x81\x7a\xff\x7a\xfd\x7c\x7d\x7d\x02\x7d\x05\x7d\x00\x7d\x09\x7d\x07\x7d\x04\x7d\x06\x7f\x38\x7f\x8e\x7f\xbf\x80\x04\x80\x10\x80\x0d\x80\x11\x80\x36\x80\xd6\x80\xe5\x80\xda\x80\xc3\x80\xc4\x80\xcc\x80\xe1\x80\xdb\x80\xce\x80\xde\x80\xe4\x80\xdd\x81\xf4\x82\x22\x82\xe7\x83\x03\x83\x05\x82\xe3\x82\xdb\x82\xe6\x83\x04\x82\xe5\x83\x02\x83\x09\x82\xd2\x82\xd7\x82\xf1\x83\x01\x82\xdc\x82\xd4\x82\xd1\x82\xde\x82\xd3\x82\xdf\x82\xef\x83\x06\x86\x50\x86\x79\x86\x7b\x86\x7a\x88\x4d\x88\x6b\x89\x81\x89\xd4\x8a\x08\x8a\x02\x8a\x03\x8c\x9e\x8c\xa0\x8d\x74\x8d\x73\x8d\xb4\x8e\xcd\x8e\xcc\x8f\xf0\x8f\xe6\x8f\xe2\x8f\xea\x8f\xe5\x8f\xed\x8f\xeb\x8f\xe4\x8f\xe8\x90\xca\x90\xce\x90\xc1\x90\xc3\x91\x4b\x91\x4a\x91\xcd\x95\x82\x96\x50\x96\x4b\x96\x4c\x96\x4d\x97\x62\x97\x69\x97\xcb\x97\xed\x97\xf3\x98\x01\x98\xa8\x98\xdb\x98\xdf\x99\x96\x99\x99\x4e\x58\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb3\x50\x0c\x50\x0d\x50\x23\x4f\xef\x50\x26\x50\x25\x4f\xf8\x50\x29\x50\x16\x50\x06\x50\x3c\x50\x1f\x50\x1a\x50\x12\x50\x11\x4f\xfa\x50\x00\x50\x14\x50\x28\x4f\xf1\x50\x21\x50\x0b\x50\x19\x50\x18\x4f\xf3\x4f\xee\x50\x2d\x50\x2a\x4f\xfe\x50\x2b\x50\x09\x51\x7c\x51\xa4\x51\xa5\x51\xa2\x51\xcd\x51\xcc\x51\xc6\x51\xcb\x52\x56\x52\x5c\x52\x54\x52\x5b\x52\x5d\x53\x2a\x53\x7f\x53\x9f\x53\x9d\x53\xdf\x54\xe8\x55\x10\x55\x01\x55\x37\x54\xfc\x54\xe5\x54\xf2\x55\x06\x54\xfa\x55\x14\x54\xe9\x54\xed\x54\xe1", /* 5480 */ "\x00\x00\x55\x09\x54\xee\x54\xea\x54\xe6\x55\x27\x55\x07\x54\xfd\x55\x0f\x57\x03\x57\x04\x57\xc2\x57\xd4\x57\xcb\x57\xc3\x58\x09\x59\x0f\x59\x57\x59\x58\x59\x5a\x5a\x11\x5a\x18\x5a\x1c\x5a\x1f\x5a\x1b\x5a\x13\x59\xec\x5a\x20\x5a\x23\x5a\x29\x5a\x25\x5a\x0c\x5a\x09\x5b\x6b\x5c\x58\x5b\xb0\x5b\xb3\x5b\xb6\x5b\xb4\x5b\xae\x5b\xb5\x5b\xb9\x5b\xb8\x5c\x04\x5c\x51\x5c\x55\x5c\x50\x5c\xed\x5c\xfd\x5c\xfb\x5c\xea\x5c\xe8\x5c\xf0\x5c\xf6\x5d\x01\x5c\xf4\x5d\xee\x5e\x2d\x5e\x2b\x5e\xab\x5e\xad\x5e\xa7\x5f\x31\x5f\x92\x5f\x91\x5f\x90\x60\x59\x60\x63\x60\x65\x60\x50\x60\x55\x60\x6d\x60\x69\x60\x6f\x60\x84\x60\x9f\x60\x9a\x60\x8d\x60\x94\x60\x8c\x60\x85\x60\x96\x62\x47\x62\xf3\x63\x08\x62\xff\x63\x4e\x63\x3e\x63\x2f\x63\x55\x63\x42\x63\x46\x63\x4f\x63\x49\x63\x3a\x63\x50\x63\x3d\x63\x2a\x63\x2b\x63\x28\x63\x4d\x63\x4c\x65\x48\x65\x49\x65\x99\x65\xc1\x65\xc5\x66\x42\x66\x49\x66\x4f\x66\x43\x66\x52\x66\x4c\x66\x45\x66\x41\x66\xf8\x67\x14\x67\x15\x67\x17\x68\x21\x68\x38\x68\x48\x68\x46\x68\x53\x68\x39\x68\x42\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x54\x68\x29\x68\xb3\x68\x17\x68\x4c\x68\x51\x68\x3d\x67\xf4\x68\x50\x68\x40\x68\x3c\x68\x43\x68\x2a\x68\x45\x68\x13\x68\x18\x68\x41\x6b\x8a\x6b\x89\x6b\xb7\x6c\x23\x6c\x27\x6c\x28\x6c\x26\x6c\x24\x6c\xf0\x6d\x6a\x6d\x95\x6d\x88\x6d\x87\x6d\x66\x6d\x78\x6d\x77\x6d\x59\x6d\x93\x6d\x6c\x6d\x89\x6d\x6e\x6d\x5a\x6d\x74\x6d\x69\x6d\x8c\x6d\x8a\x6d\x79\x6d\x85\x6d\x65\x6d\x94\x70\xca\x70\xd8\x70\xe4\x70\xd9\x70\xc8\x70\xcf\x72\x39\x72\x79\x72\xfc\x72\xf9\x72\xfd\x72\xf8\x72\xf7\x73\x86\x73\xed\x74\x09", /* 5580 */ "\x00\x00\x73\xee\x73\xe0\x73\xea\x73\xde\x75\x54\x75\x5d\x75\x5c\x75\x5a\x75\x59\x75\xbe\x75\xc5\x75\xc7\x75\xb2\x75\xb3\x75\xbd\x75\xbc\x75\xb9\x75\xc2\x75\xb8\x76\x8b\x76\xb0\x76\xca\x76\xcd\x76\xce\x77\x29\x77\x1f\x77\x20\x77\x28\x77\xe9\x78\x30\x78\x27\x78\x38\x78\x1d\x78\x34\x78\x37\x78\x25\x78\x2d\x78\x20\x78\x1f\x78\x32\x79\x55\x79\x50\x79\x60\x79\x5f\x79\x56\x79\x5e\x79\x5d\x79\x57\x79\x5a\x79\xe4\x79\xe3\x79\xe7\x79\xdf\x79\xe6\x79\xe9\x79\xd8\x7a\x84\x7a\x88\x7a\xd9\x7b\x06\x7b\x11\x7c\x89\x7d\x21\x7d\x17\x7d\x0b\x7d\x0a\x7d\x20\x7d\x22\x7d\x14\x7d\x10\x7d\x15\x7d\x1a\x7d\x1c\x7d\x0d\x7d\x19\x7d\x1b\x7f\x3a\x7f\x5f\x7f\x94\x7f\xc5\x7f\xc1\x80\x06\x80\x18\x80\x15\x80\x19\x80\x17\x80\x3d\x80\x3f\x80\xf1\x81\x02\x80\xf0\x81\x05\x80\xed\x80\xf4\x81\x06\x80\xf8\x80\xf3\x81\x08\x80\xfd\x81\x0a\x80\xfc\x80\xef\x81\xed\x81\xec\x82\x00\x82\x10\x82\x2a\x82\x2b\x82\x28\x82\x2c\x82\xbb\x83\x2b\x83\x52\x83\x54\x83\x4a\x83\x38\x83\x50\x83\x49\x83\x35\x83\x34\x83\x4f\x83\x32\x83\x39\x83\x36\x83\x17\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x40\x83\x31\x83\x28\x83\x43\x86\x54\x86\x8a\x86\xaa\x86\x93\x86\xa4\x86\xa9\x86\x8c\x86\xa3\x86\x9c\x88\x70\x88\x77\x88\x81\x88\x82\x88\x7d\x88\x79\x8a\x18\x8a\x10\x8a\x0e\x8a\x0c\x8a\x15\x8a\x0a\x8a\x17\x8a\x13\x8a\x16\x8a\x0f\x8a\x11\x8c\x48\x8c\x7a\x8c\x79\x8c\xa1\x8c\xa2\x8d\x77\x8e\xac\x8e\xd2\x8e\xd4\x8e\xcf\x8f\xb1\x90\x01\x90\x06\x8f\xf7\x90\x00\x8f\xfa\x8f\xf4\x90\x03\x8f\xfd\x90\x05\x8f\xf8\x90\x95\x90\xe1\x90\xdd\x90\xe2\x91\x52\x91\x4d\x91\x4c\x91\xd8\x91\xdd\x91\xd7\x91\xdc\x91\xd9", /* 5680 */ "\x00\x00\x95\x83\x96\x62\x96\x63\x96\x61\x96\x5b\x96\x5d\x96\x64\x96\x58\x96\x5e\x96\xbb\x98\xe2\x99\xac\x9a\xa8\x9a\xd8\x9b\x25\x9b\x32\x9b\x3c\x4e\x7e\x50\x7a\x50\x7d\x50\x5c\x50\x47\x50\x43\x50\x4c\x50\x5a\x50\x49\x50\x65\x50\x76\x50\x4e\x50\x55\x50\x75\x50\x74\x50\x77\x50\x4f\x50\x0f\x50\x6f\x50\x6d\x51\x5c\x51\x95\x51\xf0\x52\x6a\x52\x6f\x52\xd2\x52\xd9\x52\xd8\x52\xd5\x53\x10\x53\x0f\x53\x19\x53\x3f\x53\x40\x53\x3e\x53\xc3\x66\xfc\x55\x46\x55\x6a\x55\x66\x55\x44\x55\x5e\x55\x61\x55\x43\x55\x4a\x55\x31\x55\x56\x55\x4f\x55\x55\x55\x2f\x55\x64\x55\x38\x55\x2e\x55\x5c\x55\x2c\x55\x63\x55\x33\x55\x41\x55\x57\x57\x08\x57\x0b\x57\x09\x57\xdf\x58\x05\x58\x0a\x58\x06\x57\xe0\x57\xe4\x57\xfa\x58\x02\x58\x35\x57\xf7\x57\xf9\x59\x20\x59\x62\x5a\x36\x5a\x41\x5a\x49\x5a\x66\x5a\x6a\x5a\x40\x5a\x3c\x5a\x62\x5a\x5a\x5a\x46\x5a\x4a\x5b\x70\x5b\xc7\x5b\xc5\x5b\xc4\x5b\xc2\x5b\xbf\x5b\xc6\x5c\x09\x5c\x08\x5c\x07\x5c\x60\x5c\x5c\x5c\x5d\x5d\x07\x5d\x06\x5d\x0e\x5d\x1b\x5d\x16\x5d\x22\x5d\x11\x5d\x29\x5d\x14\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x19\x5d\x24\x5d\x27\x5d\x17\x5d\xe2\x5e\x38\x5e\x36\x5e\x33\x5e\x37\x5e\xb7\x5e\xb8\x5e\xb6\x5e\xb5\x5e\xbe\x5f\x35\x5f\x37\x5f\x57\x5f\x6c\x5f\x69\x5f\x6b\x5f\x97\x5f\x99\x5f\x9e\x5f\x98\x5f\xa1\x5f\xa0\x5f\x9c\x60\x7f\x60\xa3\x60\x89\x60\xa0\x60\xa8\x60\xcb\x60\xb4\x60\xe6\x60\xbd\x60\xc5\x60\xbb\x60\xb5\x60\xdc\x60\xbc\x60\xd8\x60\xd5\x60\xc6\x60\xdf\x60\xb8\x60\xda\x60\xc7\x62\x1a\x62\x1b\x62\x48\x63\xa0\x63\xa7\x63\x72\x63\x96\x63\xa2\x63\xa5\x63\x77\x63\x67\x63\x98\x63\xaa\x63\x71\x63\xa9", /* 5780 */ "\x00\x00\x63\x89\x63\x83\x63\x9b\x63\x6b\x63\xa8\x63\x84\x63\x88\x63\x99\x63\xa1\x63\xac\x63\x92\x63\x8f\x63\x80\x63\x7b\x63\x69\x63\x68\x63\x7a\x65\x5d\x65\x56\x65\x51\x65\x59\x65\x57\x55\x5f\x65\x4f\x65\x58\x65\x55\x65\x54\x65\x9c\x65\x9b\x65\xac\x65\xcf\x65\xcb\x65\xcc\x65\xce\x66\x5d\x66\x5a\x66\x64\x66\x68\x66\x66\x66\x5e\x66\xf9\x52\xd7\x67\x1b\x68\x81\x68\xaf\x68\xa2\x68\x93\x68\xb5\x68\x7f\x68\x76\x68\xb1\x68\xa7\x68\x97\x68\xb0\x68\x83\x68\xc4\x68\xad\x68\x86\x68\x85\x68\x94\x68\x9d\x68\xa8\x68\x9f\x68\xa1\x68\x82\x6b\x32\x6b\xba\x6b\xeb\x6b\xec\x6c\x2b\x6d\x8e\x6d\xbc\x6d\xf3\x6d\xd9\x6d\xb2\x6d\xe1\x6d\xcc\x6d\xe4\x6d\xfb\x6d\xfa\x6e\x05\x6d\xc7\x6d\xcb\x6d\xaf\x6d\xd1\x6d\xae\x6d\xde\x6d\xf9\x6d\xb8\x6d\xf7\x6d\xf5\x6d\xc5\x6d\xd2\x6e\x1a\x6d\xb5\x6d\xda\x6d\xeb\x6d\xd8\x6d\xea\x6d\xf1\x6d\xee\x6d\xe8\x6d\xc6\x6d\xc4\x6d\xaa\x6d\xec\x6d\xbf\x6d\xe6\x70\xf9\x71\x09\x71\x0a\x70\xfd\x70\xef\x72\x3d\x72\x7d\x72\x81\x73\x1c\x73\x1b\x73\x16\x73\x13\x73\x19\x73\x87\x74\x05\x74\x0a\x74\x03\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x73\xfe\x74\x0d\x74\xe0\x74\xf6\x74\xf7\x75\x1c\x75\x22\x75\x65\x75\x66\x75\x62\x75\x70\x75\x8f\x75\xd4\x75\xd5\x75\xb5\x75\xca\x75\xcd\x76\x8e\x76\xd4\x76\xd2\x76\xdb\x77\x37\x77\x3e\x77\x3c\x77\x36\x77\x38\x77\x3a\x78\x6b\x78\x43\x78\x4e\x79\x65\x79\x68\x79\x6d\x79\xfb\x7a\x92\x7a\x95\x7b\x20\x7b\x28\x7b\x1b\x7b\x2c\x7b\x26\x7b\x19\x7b\x1e\x7b\x2e\x7c\x92\x7c\x97\x7c\x95\x7d\x46\x7d\x43\x7d\x71\x7d\x2e\x7d\x39\x7d\x3c\x7d\x40\x7d\x30\x7d\x33\x7d\x44\x7d\x2f\x7d\x42\x7d\x32\x7d\x31\x7f\x3d", /* 5880 */ "\x00\x00\x7f\x9e\x7f\x9a\x7f\xcc\x7f\xce\x7f\xd2\x80\x1c\x80\x4a\x80\x46\x81\x2f\x81\x16\x81\x23\x81\x2b\x81\x29\x81\x30\x81\x24\x82\x02\x82\x35\x82\x37\x82\x36\x82\x39\x83\x8e\x83\x9e\x83\x98\x83\x78\x83\xa2\x83\x96\x83\xbd\x83\xab\x83\x92\x83\x8a\x83\x93\x83\x89\x83\xa0\x83\x77\x83\x7b\x83\x7c\x83\x86\x83\xa7\x86\x55\x5f\x6a\x86\xc7\x86\xc0\x86\xb6\x86\xc4\x86\xb5\x86\xc6\x86\xcb\x86\xb1\x86\xaf\x86\xc9\x88\x53\x88\x9e\x88\x88\x88\xab\x88\x92\x88\x96\x88\x8d\x88\x8b\x89\x93\x89\x8f\x8a\x2a\x8a\x1d\x8a\x23\x8a\x25\x8a\x31\x8a\x2d\x8a\x1f\x8a\x1b\x8a\x22\x8c\x49\x8c\x5a\x8c\xa9\x8c\xac\x8c\xab\x8c\xa8\x8c\xaa\x8c\xa7\x8d\x67\x8d\x66\x8d\xbe\x8d\xba\x8e\xdb\x8e\xdf\x90\x19\x90\x0d\x90\x1a\x90\x17\x90\x23\x90\x1f\x90\x1d\x90\x10\x90\x15\x90\x1e\x90\x20\x90\x0f\x90\x22\x90\x16\x90\x1b\x90\x14\x90\xe8\x90\xed\x90\xfd\x91\x57\x91\xce\x91\xf5\x91\xe6\x91\xe3\x91\xe7\x91\xed\x91\xe9\x95\x89\x96\x6a\x96\x75\x96\x73\x96\x78\x96\x70\x96\x74\x96\x76\x96\x77\x96\x6c\x96\xc0\x96\xea\x96\xe9\x7a\xe0\x7a\xdf\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x02\x98\x03\x9b\x5a\x9c\xe5\x9e\x75\x9e\x7f\x9e\xa5\x9e\xbb\x50\xa2\x50\x8d\x50\x85\x50\x99\x50\x91\x50\x80\x50\x96\x50\x98\x50\x9a\x67\x00\x51\xf1\x52\x72\x52\x74\x52\x75\x52\x69\x52\xde\x52\xdd\x52\xdb\x53\x5a\x53\xa5\x55\x7b\x55\x80\x55\xa7\x55\x7c\x55\x8a\x55\x9d\x55\x98\x55\x82\x55\x9c\x55\xaa\x55\x94\x55\x87\x55\x8b\x55\x83\x55\xb3\x55\xae\x55\x9f\x55\x3e\x55\xb2\x55\x9a\x55\xbb\x55\xac\x55\xb1\x55\x7e\x55\x89\x55\xab\x55\x99\x57\x0d\x58\x2f\x58\x2a\x58\x34\x58\x24\x58\x30\x58\x31\x58\x21", /* 5980 */ "\x00\x00\x58\x1d\x58\x20\x58\xf9\x58\xfa\x59\x60\x5a\x77\x5a\x9a\x5a\x7f\x5a\x92\x5a\x9b\x5a\xa7\x5b\x73\x5b\x71\x5b\xd2\x5b\xcc\x5b\xd3\x5b\xd0\x5c\x0a\x5c\x0b\x5c\x31\x5d\x4c\x5d\x50\x5d\x34\x5d\x47\x5d\xfd\x5e\x45\x5e\x3d\x5e\x40\x5e\x43\x5e\x7e\x5e\xca\x5e\xc1\x5e\xc2\x5e\xc4\x5f\x3c\x5f\x6d\x5f\xa9\x5f\xaa\x5f\xa8\x60\xd1\x60\xe1\x60\xb2\x60\xb6\x60\xe0\x61\x1c\x61\x23\x60\xfa\x61\x15\x60\xf0\x60\xfb\x60\xf4\x61\x68\x60\xf1\x61\x0e\x60\xf6\x61\x09\x61\x00\x61\x12\x62\x1f\x62\x49\x63\xa3\x63\x8c\x63\xcf\x63\xc0\x63\xe9\x63\xc9\x63\xc6\x63\xcd\x63\xd2\x63\xe3\x63\xd0\x63\xe1\x63\xd6\x63\xed\x63\xee\x63\x76\x63\xf4\x63\xea\x63\xdb\x64\x52\x63\xda\x63\xf9\x65\x5e\x65\x66\x65\x62\x65\x63\x65\x91\x65\x90\x65\xaf\x66\x6e\x66\x70\x66\x74\x66\x76\x66\x6f\x66\x91\x66\x7a\x66\x7e\x66\x77\x66\xfe\x66\xff\x67\x1f\x67\x1d\x68\xfa\x68\xd5\x68\xe0\x68\xd8\x68\xd7\x69\x05\x68\xdf\x68\xf5\x68\xee\x68\xe7\x68\xf9\x68\xd2\x68\xf2\x68\xe3\x68\xcb\x68\xcd\x69\x0d\x69\x12\x69\x0e\x68\xc9\x68\xda\x69\x6e\x68\xfb\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x3e\x6b\x3a\x6b\x3d\x6b\x98\x6b\x96\x6b\xbc\x6b\xef\x6c\x2e\x6c\x2f\x6c\x2c\x6e\x2f\x6e\x38\x6e\x54\x6e\x21\x6e\x32\x6e\x67\x6e\x4a\x6e\x20\x6e\x25\x6e\x23\x6e\x1b\x6e\x5b\x6e\x58\x6e\x24\x6e\x56\x6e\x6e\x6e\x2d\x6e\x26\x6e\x6f\x6e\x34\x6e\x4d\x6e\x3a\x6e\x2c\x6e\x43\x6e\x1d\x6e\x3e\x6e\xcb\x6e\x89\x6e\x19\x6e\x4e\x6e\x63\x6e\x44\x6e\x72\x6e\x69\x6e\x5f\x71\x19\x71\x1a\x71\x26\x71\x30\x71\x21\x71\x36\x71\x6e\x71\x1c\x72\x4c\x72\x84\x72\x80\x73\x36\x73\x25\x73\x34\x73\x29\x74\x3a\x74\x2a\x74\x33", /* 5a80 */ "\x00\x00\x74\x22\x74\x25\x74\x35\x74\x36\x74\x34\x74\x2f\x74\x1b\x74\x26\x74\x28\x75\x25\x75\x26\x75\x6b\x75\x6a\x75\xe2\x75\xdb\x75\xe3\x75\xd9\x75\xd8\x75\xde\x75\xe0\x76\x7b\x76\x7c\x76\x96\x76\x93\x76\xb4\x76\xdc\x77\x4f\x77\xed\x78\x5d\x78\x6c\x78\x6f\x7a\x0d\x7a\x08\x7a\x0b\x7a\x05\x7a\x00\x7a\x98\x7a\x97\x7a\x96\x7a\xe5\x7a\xe3\x7b\x49\x7b\x56\x7b\x46\x7b\x50\x7b\x52\x7b\x54\x7b\x4d\x7b\x4b\x7b\x4f\x7b\x51\x7c\x9f\x7c\xa5\x7d\x5e\x7d\x50\x7d\x68\x7d\x55\x7d\x2b\x7d\x6e\x7d\x72\x7d\x61\x7d\x66\x7d\x62\x7d\x70\x7d\x73\x55\x84\x7f\xd4\x7f\xd5\x80\x0b\x80\x52\x80\x85\x81\x55\x81\x54\x81\x4b\x81\x51\x81\x4e\x81\x39\x81\x46\x81\x3e\x81\x4c\x81\x53\x81\x74\x82\x12\x82\x1c\x83\xe9\x84\x03\x83\xf8\x84\x0d\x83\xe0\x83\xc5\x84\x0b\x83\xc1\x83\xef\x83\xf1\x83\xf4\x84\x57\x84\x0a\x83\xf0\x84\x0c\x83\xcc\x83\xfd\x83\xf2\x83\xca\x84\x38\x84\x0e\x84\x04\x83\xdc\x84\x07\x83\xd4\x83\xdf\x86\x5b\x86\xdf\x86\xd9\x86\xed\x86\xd4\x86\xdb\x86\xe4\x86\xd0\x86\xde\x88\x57\x88\xc1\x88\xc2\x88\xb1\x89\x83\x89\x96\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x3b\x8a\x60\x8a\x55\x8a\x5e\x8a\x3c\x8a\x41\x8a\x54\x8a\x5b\x8a\x50\x8a\x46\x8a\x34\x8a\x3a\x8a\x36\x8a\x56\x8c\x61\x8c\x82\x8c\xaf\x8c\xbc\x8c\xb3\x8c\xbd\x8c\xc1\x8c\xbb\x8c\xc0\x8c\xb4\x8c\xb7\x8c\xb6\x8c\xbf\x8c\xb8\x8d\x8a\x8d\x85\x8d\x81\x8d\xce\x8d\xdd\x8d\xcb\x8d\xda\x8d\xd1\x8d\xcc\x8d\xdb\x8d\xc6\x8e\xfb\x8e\xf8\x8e\xfc\x8f\x9c\x90\x2e\x90\x35\x90\x31\x90\x38\x90\x32\x90\x36\x91\x02\x90\xf5\x91\x09\x90\xfe\x91\x63\x91\x65\x91\xcf\x92\x14\x92\x15\x92\x23\x92\x09\x92\x1e\x92\x0d\x92\x10", /* 5b80 */ "\x00\x00\x92\x07\x92\x11\x95\x94\x95\x8f\x95\x8b\x95\x91\x95\x93\x95\x92\x95\x8e\x96\x8a\x96\x8e\x96\x8b\x96\x7d\x96\x85\x96\x86\x96\x8d\x96\x72\x96\x84\x96\xc1\x96\xc5\x96\xc4\x96\xc6\x96\xc7\x96\xef\x96\xf2\x97\xcc\x98\x05\x98\x06\x98\x08\x98\xe7\x98\xea\x98\xef\x98\xe9\x98\xf2\x98\xed\x99\xae\x99\xad\x9e\xc3\x9e\xcd\x9e\xd1\x4e\x82\x50\xad\x50\xb5\x50\xb2\x50\xb3\x50\xc5\x50\xbe\x50\xac\x50\xb7\x50\xbb\x50\xaf\x50\xc7\x52\x7f\x52\x77\x52\x7d\x52\xdf\x52\xe6\x52\xe4\x52\xe2\x52\xe3\x53\x2f\x55\xdf\x55\xe8\x55\xd3\x55\xe6\x55\xce\x55\xdc\x55\xc7\x55\xd1\x55\xe3\x55\xe4\x55\xef\x55\xda\x55\xe1\x55\xc5\x55\xc6\x55\xe5\x55\xc9\x57\x12\x57\x13\x58\x5e\x58\x51\x58\x58\x58\x57\x58\x5a\x58\x54\x58\x6b\x58\x4c\x58\x6d\x58\x4a\x58\x62\x58\x52\x58\x4b\x59\x67\x5a\xc1\x5a\xc9\x5a\xcc\x5a\xbe\x5a\xbd\x5a\xbc\x5a\xb3\x5a\xc2\x5a\xb2\x5d\x69\x5d\x6f\x5e\x4c\x5e\x79\x5e\xc9\x5e\xc8\x5f\x12\x5f\x59\x5f\xac\x5f\xae\x61\x1a\x61\x0f\x61\x48\x61\x1f\x60\xf3\x61\x1b\x60\xf9\x61\x01\x61\x08\x61\x4e\x61\x4c\x61\x44\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x4d\x61\x3e\x61\x34\x61\x27\x61\x0d\x61\x06\x61\x37\x62\x21\x62\x22\x64\x13\x64\x3e\x64\x1e\x64\x2a\x64\x2d\x64\x3d\x64\x2c\x64\x0f\x64\x1c\x64\x14\x64\x0d\x64\x36\x64\x16\x64\x17\x64\x06\x65\x6c\x65\x9f\x65\xb0\x66\x97\x66\x89\x66\x87\x66\x88\x66\x96\x66\x84\x66\x98\x66\x8d\x67\x03\x69\x94\x69\x6d\x69\x5a\x69\x77\x69\x60\x69\x54\x69\x75\x69\x30\x69\x82\x69\x4a\x69\x68\x69\x6b\x69\x5e\x69\x53\x69\x79\x69\x86\x69\x5d\x69\x63\x69\x5b\x6b\x47\x6b\x72\x6b\xc0\x6b\xbf\x6b\xd3\x6b\xfd\x6e\xa2\x6e\xaf", /* 5c80 */ "\x00\x00\x6e\xd3\x6e\xb6\x6e\xc2\x6e\x90\x6e\x9d\x6e\xc7\x6e\xc5\x6e\xa5\x6e\x98\x6e\xbc\x6e\xba\x6e\xab\x6e\xd1\x6e\x96\x6e\x9c\x6e\xc4\x6e\xd4\x6e\xaa\x6e\xa7\x6e\xb4\x71\x4e\x71\x59\x71\x69\x71\x64\x71\x49\x71\x67\x71\x5c\x71\x6c\x71\x66\x71\x4c\x71\x65\x71\x5e\x71\x46\x71\x68\x71\x56\x72\x3a\x72\x52\x73\x37\x73\x45\x73\x3f\x73\x3e\x74\x6f\x74\x5a\x74\x55\x74\x5f\x74\x5e\x74\x41\x74\x3f\x74\x59\x74\x5b\x74\x5c\x75\x76\x75\x78\x76\x00\x75\xf0\x76\x01\x75\xf2\x75\xf1\x75\xfa\x75\xff\x75\xf4\x75\xf3\x76\xde\x76\xdf\x77\x5b\x77\x6b\x77\x66\x77\x5e\x77\x63\x77\x79\x77\x6a\x77\x6c\x77\x5c\x77\x65\x77\x68\x77\x62\x77\xee\x78\x8e\x78\xb0\x78\x97\x78\x98\x78\x8c\x78\x89\x78\x7c\x78\x91\x78\x93\x78\x7f\x79\x7a\x79\x7f\x79\x81\x84\x2c\x79\xbd\x7a\x1c\x7a\x1a\x7a\x20\x7a\x14\x7a\x1f\x7a\x1e\x7a\x9f\x7a\xa0\x7b\x77\x7b\xc0\x7b\x60\x7b\x6e\x7b\x67\x7c\xb1\x7c\xb3\x7c\xb5\x7d\x93\x7d\x79\x7d\x91\x7d\x81\x7d\x8f\x7d\x5b\x7f\x6e\x7f\x69\x7f\x6a\x7f\x72\x7f\xa9\x7f\xa8\x7f\xa4\x80\x56\x80\x58\x80\x86\x80\x84\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x71\x81\x70\x81\x78\x81\x65\x81\x6e\x81\x73\x81\x6b\x81\x79\x81\x7a\x81\x66\x82\x05\x82\x47\x84\x82\x84\x77\x84\x3d\x84\x31\x84\x75\x84\x66\x84\x6b\x84\x49\x84\x6c\x84\x5b\x84\x3c\x84\x35\x84\x61\x84\x63\x84\x69\x84\x6d\x84\x46\x86\x5e\x86\x5c\x86\x5f\x86\xf9\x87\x13\x87\x08\x87\x07\x87\x00\x86\xfe\x86\xfb\x87\x02\x87\x03\x87\x06\x87\x0a\x88\x59\x88\xdf\x88\xd4\x88\xd9\x88\xdc\x88\xd8\x88\xdd\x88\xe1\x88\xca\x88\xd5\x88\xd2\x89\x9c\x89\xe3\x8a\x6b\x8a\x72\x8a\x73\x8a\x66\x8a\x69\x8a\x70\x8a\x87", /* 5d80 */ "\x00\x00\x8a\x7c\x8a\x63\x8a\xa0\x8a\x71\x8a\x85\x8a\x6d\x8a\x62\x8a\x6e\x8a\x6c\x8a\x79\x8a\x7b\x8a\x3e\x8a\x68\x8c\x62\x8c\x8a\x8c\x89\x8c\xca\x8c\xc7\x8c\xc8\x8c\xc4\x8c\xb2\x8c\xc3\x8c\xc2\x8c\xc5\x8d\xe1\x8d\xdf\x8d\xe8\x8d\xef\x8d\xf3\x8d\xfa\x8d\xea\x8d\xe4\x8d\xe6\x8e\xb2\x8f\x03\x8f\x09\x8e\xfe\x8f\x0a\x8f\x9f\x8f\xb2\x90\x4b\x90\x4a\x90\x53\x90\x42\x90\x54\x90\x3c\x90\x55\x90\x50\x90\x47\x90\x4f\x90\x4e\x90\x4d\x90\x51\x90\x3e\x90\x41\x91\x12\x91\x17\x91\x6c\x91\x6a\x91\x69\x91\xc9\x92\x37\x92\x57\x92\x38\x92\x3d\x92\x40\x92\x3e\x92\x5b\x92\x4b\x92\x64\x92\x51\x92\x34\x92\x49\x92\x4d\x92\x45\x92\x39\x92\x3f\x92\x5a\x95\x98\x96\x98\x96\x94\x96\x95\x96\xcd\x96\xcb\x96\xc9\x96\xca\x96\xf7\x96\xfb\x96\xf9\x96\xf6\x97\x56\x97\x74\x97\x76\x98\x10\x98\x11\x98\x13\x98\x0a\x98\x12\x98\x0c\x98\xfc\x98\xf4\x98\xfd\x98\xfe\x99\xb3\x99\xb1\x99\xb4\x9a\xe1\x9c\xe9\x9e\x82\x9f\x0e\x9f\x13\x9f\x20\x50\xe7\x50\xee\x50\xe5\x50\xd6\x50\xed\x50\xda\x50\xd5\x50\xcf\x50\xd1\x50\xf1\x50\xce\x50\xe9\x51\x62\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf3\x52\x83\x52\x82\x53\x31\x53\xad\x55\xfe\x56\x00\x56\x1b\x56\x17\x55\xfd\x56\x14\x56\x06\x56\x09\x56\x0d\x56\x0e\x55\xf7\x56\x16\x56\x1f\x56\x08\x56\x10\x55\xf6\x57\x18\x57\x16\x58\x75\x58\x7e\x58\x83\x58\x93\x58\x8a\x58\x79\x58\x85\x58\x7d\x58\xfd\x59\x25\x59\x22\x59\x24\x59\x6a\x59\x69\x5a\xe1\x5a\xe6\x5a\xe9\x5a\xd7\x5a\xd6\x5a\xd8\x5a\xe3\x5b\x75\x5b\xde\x5b\xe7\x5b\xe1\x5b\xe5\x5b\xe6\x5b\xe8\x5b\xe2\x5b\xe4\x5b\xdf\x5c\x0d\x5c\x62\x5d\x84\x5d\x87\x5e\x5b\x5e\x63\x5e\x55\x5e\x57\x5e\x54", /* 5e80 */ "\x00\x00\x5e\xd3\x5e\xd6\x5f\x0a\x5f\x46\x5f\x70\x5f\xb9\x61\x47\x61\x3f\x61\x4b\x61\x77\x61\x62\x61\x63\x61\x5f\x61\x5a\x61\x58\x61\x75\x62\x2a\x64\x87\x64\x58\x64\x54\x64\xa4\x64\x78\x64\x5f\x64\x7a\x64\x51\x64\x67\x64\x34\x64\x6d\x64\x7b\x65\x72\x65\xa1\x65\xd7\x65\xd6\x66\xa2\x66\xa8\x66\x9d\x69\x9c\x69\xa8\x69\x95\x69\xc1\x69\xae\x69\xd3\x69\xcb\x69\x9b\x69\xb7\x69\xbb\x69\xab\x69\xb4\x69\xd0\x69\xcd\x69\xad\x69\xcc\x69\xa6\x69\xc3\x69\xa3\x6b\x49\x6b\x4c\x6c\x33\x6f\x33\x6f\x14\x6e\xfe\x6f\x13\x6e\xf4\x6f\x29\x6f\x3e\x6f\x20\x6f\x2c\x6f\x0f\x6f\x02\x6f\x22\x6e\xff\x6e\xef\x6f\x06\x6f\x31\x6f\x38\x6f\x32\x6f\x23\x6f\x15\x6f\x2b\x6f\x2f\x6f\x88\x6f\x2a\x6e\xec\x6f\x01\x6e\xf2\x6e\xcc\x6e\xf7\x71\x94\x71\x99\x71\x7d\x71\x8a\x71\x84\x71\x92\x72\x3e\x72\x92\x72\x96\x73\x44\x73\x50\x74\x64\x74\x63\x74\x6a\x74\x70\x74\x6d\x75\x04\x75\x91\x76\x27\x76\x0d\x76\x0b\x76\x09\x76\x13\x76\xe1\x76\xe3\x77\x84\x77\x7d\x77\x7f\x77\x61\x78\xc1\x78\x9f\x78\xa7\x78\xb3\x78\xa9\x78\xa3\x79\x8e\x79\x8f\x79\x8d\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x2e\x7a\x31\x7a\xaa\x7a\xa9\x7a\xed\x7a\xef\x7b\xa1\x7b\x95\x7b\x8b\x7b\x75\x7b\x97\x7b\x9d\x7b\x94\x7b\x8f\x7b\xb8\x7b\x87\x7b\x84\x7c\xb9\x7c\xbd\x7c\xbe\x7d\xbb\x7d\xb0\x7d\x9c\x7d\xbd\x7d\xbe\x7d\xa0\x7d\xca\x7d\xb4\x7d\xb2\x7d\xb1\x7d\xba\x7d\xa2\x7d\xbf\x7d\xb5\x7d\xb8\x7d\xad\x7d\xd2\x7d\xc7\x7d\xac\x7f\x70\x7f\xe0\x7f\xe1\x7f\xdf\x80\x5e\x80\x5a\x80\x87\x81\x50\x81\x80\x81\x8f\x81\x88\x81\x8a\x81\x7f\x81\x82\x81\xe7\x81\xfa\x82\x07\x82\x14\x82\x1e\x82\x4b\x84\xc9\x84\xbf\x84\xc6\x84\xc4", /* 5f80 */ "\x00\x00\x84\x99\x84\x9e\x84\xb2\x84\x9c\x84\xcb\x84\xb8\x84\xc0\x84\xd3\x84\x90\x84\xbc\x84\xd1\x84\xca\x87\x3f\x87\x1c\x87\x3b\x87\x22\x87\x25\x87\x34\x87\x18\x87\x55\x87\x37\x87\x29\x88\xf3\x89\x02\x88\xf4\x88\xf9\x88\xf8\x88\xfd\x88\xe8\x89\x1a\x88\xef\x8a\xa6\x8a\x8c\x8a\x9e\x8a\xa3\x8a\x8d\x8a\xa1\x8a\x93\x8a\xa4\x8a\xaa\x8a\xa5\x8a\xa8\x8a\x98\x8a\x91\x8a\x9a\x8a\xa7\x8c\x6a\x8c\x8d\x8c\x8c\x8c\xd3\x8c\xd1\x8c\xd2\x8d\x6b\x8d\x99\x8d\x95\x8d\xfc\x8f\x14\x8f\x12\x8f\x15\x8f\x13\x8f\xa3\x90\x60\x90\x58\x90\x5c\x90\x63\x90\x59\x90\x5e\x90\x62\x90\x5d\x90\x5b\x91\x19\x91\x18\x91\x1e\x91\x75\x91\x78\x91\x77\x91\x74\x92\x78\x92\x80\x92\x85\x92\x98\x92\x96\x92\x7b\x92\x93\x92\x9c\x92\xa8\x92\x7c\x92\x91\x95\xa1\x95\xa8\x95\xa9\x95\xa3\x95\xa5\x95\xa4\x96\x99\x96\x9c\x96\x9b\x96\xcc\x96\xd2\x97\x00\x97\x7c\x97\x85\x97\xf6\x98\x17\x98\x18\x98\xaf\x98\xb1\x99\x03\x99\x05\x99\x0c\x99\x09\x99\xc1\x9a\xaf\x9a\xb0\x9a\xe6\x9b\x41\x9b\x42\x9c\xf4\x9c\xf6\x9c\xf3\x9e\xbc\x9f\x3b\x9f\x4a\x51\x04\x51\x00\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xfb\x50\xf5\x50\xf9\x51\x02\x51\x08\x51\x09\x51\x05\x51\xdc\x52\x87\x52\x88\x52\x89\x52\x8d\x52\x8a\x52\xf0\x53\xb2\x56\x2e\x56\x3b\x56\x39\x56\x32\x56\x3f\x56\x34\x56\x29\x56\x53\x56\x4e\x56\x57\x56\x74\x56\x36\x56\x2f\x56\x30\x58\x80\x58\x9f\x58\x9e\x58\xb3\x58\x9c\x58\xae\x58\xa9\x58\xa6\x59\x6d\x5b\x09\x5a\xfb\x5b\x0b\x5a\xf5\x5b\x0c\x5b\x08\x5b\xee\x5b\xec\x5b\xe9\x5b\xeb\x5c\x64\x5c\x65\x5d\x9d\x5d\x94\x5e\x62\x5e\x5f\x5e\x61\x5e\xe2\x5e\xda\x5e\xdf\x5e\xdd\x5e\xe3\x5e\xe0\x5f\x48\x5f\x71", /* 6080 */ "\x00\x00\x5f\xb7\x5f\xb5\x61\x76\x61\x67\x61\x6e\x61\x5d\x61\x55\x61\x82\x61\x7c\x61\x70\x61\x6b\x61\x7e\x61\xa7\x61\x90\x61\xab\x61\x8e\x61\xac\x61\x9a\x61\xa4\x61\x94\x61\xae\x62\x2e\x64\x69\x64\x6f\x64\x79\x64\x9e\x64\xb2\x64\x88\x64\x90\x64\xb0\x64\xa5\x64\x93\x64\x95\x64\xa9\x64\x92\x64\xae\x64\xad\x64\xab\x64\x9a\x64\xac\x64\x99\x64\xa2\x64\xb3\x65\x75\x65\x77\x65\x78\x66\xae\x66\xab\x66\xb4\x66\xb1\x6a\x23\x6a\x1f\x69\xe8\x6a\x01\x6a\x1e\x6a\x19\x69\xfd\x6a\x21\x6a\x13\x6a\x0a\x69\xf3\x6a\x02\x6a\x05\x69\xed\x6a\x11\x6b\x50\x6b\x4e\x6b\xa4\x6b\xc5\x6b\xc6\x6f\x3f\x6f\x7c\x6f\x84\x6f\x51\x6f\x66\x6f\x54\x6f\x86\x6f\x6d\x6f\x5b\x6f\x78\x6f\x6e\x6f\x8e\x6f\x7a\x6f\x70\x6f\x64\x6f\x97\x6f\x58\x6e\xd5\x6f\x6f\x6f\x60\x6f\x5f\x71\x9f\x71\xac\x71\xb1\x71\xa8\x72\x56\x72\x9b\x73\x4e\x73\x57\x74\x69\x74\x8b\x74\x83\x74\x7e\x74\x80\x75\x7f\x76\x20\x76\x29\x76\x1f\x76\x24\x76\x26\x76\x21\x76\x22\x76\x9a\x76\xba\x76\xe4\x77\x8e\x77\x87\x77\x8c\x77\x91\x77\x8b\x78\xcb\x78\xc5\x78\xba\x78\xca\x78\xbe\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xd5\x78\xbc\x78\xd0\x7a\x3f\x7a\x3c\x7a\x40\x7a\x3d\x7a\x37\x7a\x3b\x7a\xaf\x7a\xae\x7b\xad\x7b\xb1\x7b\xc4\x7b\xb4\x7b\xc6\x7b\xc7\x7b\xc1\x7b\xa0\x7b\xcc\x7c\xca\x7d\xe0\x7d\xf4\x7d\xef\x7d\xfb\x7d\xd8\x7d\xec\x7d\xdd\x7d\xe8\x7d\xe3\x7d\xda\x7d\xde\x7d\xe9\x7d\x9e\x7d\xd9\x7d\xf2\x7d\xf9\x7f\x75\x7f\x77\x7f\xaf\x7f\xe9\x80\x26\x81\x9b\x81\x9c\x81\x9d\x81\xa0\x81\x9a\x81\x98\x85\x17\x85\x3d\x85\x1a\x84\xee\x85\x2c\x85\x2d\x85\x13\x85\x11\x85\x23\x85\x21\x85\x14\x84\xec\x85\x25\x84\xff\x85\x06", /* 6180 */ "\x00\x00\x87\x82\x87\x74\x87\x76\x87\x60\x87\x66\x87\x78\x87\x68\x87\x59\x87\x57\x87\x4c\x87\x53\x88\x5b\x88\x5d\x89\x10\x89\x07\x89\x12\x89\x13\x89\x15\x89\x0a\x8a\xbc\x8a\xd2\x8a\xc7\x8a\xc4\x8a\x95\x8a\xcb\x8a\xf8\x8a\xb2\x8a\xc9\x8a\xc2\x8a\xbf\x8a\xb0\x8a\xd6\x8a\xcd\x8a\xb6\x8a\xb9\x8a\xdb\x8c\x4c\x8c\x4e\x8c\x6c\x8c\xe0\x8c\xde\x8c\xe6\x8c\xe4\x8c\xec\x8c\xed\x8c\xe2\x8c\xe3\x8c\xdc\x8c\xea\x8c\xe1\x8d\x6d\x8d\x9f\x8d\xa3\x8e\x2b\x8e\x10\x8e\x1d\x8e\x22\x8e\x0f\x8e\x29\x8e\x1f\x8e\x21\x8e\x1e\x8e\xba\x8f\x1d\x8f\x1b\x8f\x1f\x8f\x29\x8f\x26\x8f\x2a\x8f\x1c\x8f\x1e\x8f\x25\x90\x69\x90\x6e\x90\x68\x90\x6d\x90\x77\x91\x30\x91\x2d\x91\x27\x91\x31\x91\x87\x91\x89\x91\x8b\x91\x83\x92\xc5\x92\xbb\x92\xb7\x92\xea\x92\xac\x92\xe4\x92\xc1\x92\xb3\x92\xbc\x92\xd2\x92\xc7\x92\xf0\x92\xb2\x95\xad\x95\xb1\x97\x04\x97\x06\x97\x07\x97\x09\x97\x60\x97\x8d\x97\x8b\x97\x8f\x98\x21\x98\x2b\x98\x1c\x98\xb3\x99\x0a\x99\x13\x99\x12\x99\x18\x99\xdd\x99\xd0\x99\xdf\x99\xdb\x99\xd1\x99\xd5\x99\xd2\x99\xd9\x9a\xb7\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xee\x9a\xef\x9b\x27\x9b\x45\x9b\x44\x9b\x77\x9b\x6f\x9d\x06\x9d\x09\x9d\x03\x9e\xa9\x9e\xbe\x9e\xce\x58\xa8\x9f\x52\x51\x12\x51\x18\x51\x14\x51\x10\x51\x15\x51\x80\x51\xaa\x51\xdd\x52\x91\x52\x93\x52\xf3\x56\x59\x56\x6b\x56\x79\x56\x69\x56\x64\x56\x78\x56\x6a\x56\x68\x56\x65\x56\x71\x56\x6f\x56\x6c\x56\x62\x56\x76\x58\xc1\x58\xbe\x58\xc7\x58\xc5\x59\x6e\x5b\x1d\x5b\x34\x5b\x78\x5b\xf0\x5c\x0e\x5f\x4a\x61\xb2\x61\x91\x61\xa9\x61\x8a\x61\xcd\x61\xb6\x61\xbe\x61\xca\x61\xc8\x62\x30\x64\xc5\x64\xc1", /* 6280 */ "\x00\x00\x64\xcb\x64\xbb\x64\xbc\x64\xda\x64\xc4\x64\xc7\x64\xc2\x64\xcd\x64\xbf\x64\xd2\x64\xd4\x64\xbe\x65\x74\x66\xc6\x66\xc9\x66\xb9\x66\xc4\x66\xc7\x66\xb8\x6a\x3d\x6a\x38\x6a\x3a\x6a\x59\x6a\x6b\x6a\x58\x6a\x39\x6a\x44\x6a\x62\x6a\x61\x6a\x4b\x6a\x47\x6a\x35\x6a\x5f\x6a\x48\x6b\x59\x6b\x77\x6c\x05\x6f\xc2\x6f\xb1\x6f\xa1\x6f\xc3\x6f\xa4\x6f\xc1\x6f\xa7\x6f\xb3\x6f\xc0\x6f\xb9\x6f\xb6\x6f\xa6\x6f\xa0\x6f\xb4\x71\xbe\x71\xc9\x71\xd0\x71\xd2\x71\xc8\x71\xd5\x71\xb9\x71\xce\x71\xd9\x71\xdc\x71\xc3\x71\xc4\x73\x68\x74\x9c\x74\xa3\x74\x98\x74\x9f\x74\x9e\x74\xe2\x75\x0c\x75\x0d\x76\x34\x76\x38\x76\x3a\x76\xe7\x76\xe5\x77\xa0\x77\x9e\x77\x9f\x77\xa5\x78\xe8\x78\xda\x78\xec\x78\xe7\x79\xa6\x7a\x4d\x7a\x4e\x7a\x46\x7a\x4c\x7a\x4b\x7a\xba\x7b\xd9\x7c\x11\x7b\xc9\x7b\xe4\x7b\xdb\x7b\xe1\x7b\xe9\x7b\xe6\x7c\xd5\x7c\xd6\x7e\x0a\x7e\x11\x7e\x08\x7e\x1b\x7e\x23\x7e\x1e\x7e\x1d\x7e\x09\x7e\x10\x7f\x79\x7f\xb2\x7f\xf0\x7f\xf1\x7f\xee\x80\x28\x81\xb3\x81\xa9\x81\xa8\x81\xfb\x82\x08\x82\x58\x82\x59\x85\x4a\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x59\x85\x48\x85\x68\x85\x69\x85\x43\x85\x49\x85\x6d\x85\x6a\x85\x5e\x87\x83\x87\x9f\x87\x9e\x87\xa2\x87\x8d\x88\x61\x89\x2a\x89\x32\x89\x25\x89\x2b\x89\x21\x89\xaa\x89\xa6\x8a\xe6\x8a\xfa\x8a\xeb\x8a\xf1\x8b\x00\x8a\xdc\x8a\xe7\x8a\xee\x8a\xfe\x8b\x01\x8b\x02\x8a\xf7\x8a\xed\x8a\xf3\x8a\xf6\x8a\xfc\x8c\x6b\x8c\x6d\x8c\x93\x8c\xf4\x8e\x44\x8e\x31\x8e\x34\x8e\x42\x8e\x39\x8e\x35\x8f\x3b\x8f\x2f\x8f\x38\x8f\x33\x8f\xa8\x8f\xa6\x90\x75\x90\x74\x90\x78\x90\x72\x90\x7c\x90\x7a\x91\x34\x91\x92\x93\x20", /* 6380 */ "\x00\x00\x93\x36\x92\xf8\x93\x33\x93\x2f\x93\x22\x92\xfc\x93\x2b\x93\x04\x93\x1a\x93\x10\x93\x26\x93\x21\x93\x15\x93\x2e\x93\x19\x95\xbb\x96\xa7\x96\xa8\x96\xaa\x96\xd5\x97\x0e\x97\x11\x97\x16\x97\x0d\x97\x13\x97\x0f\x97\x5b\x97\x5c\x97\x66\x97\x98\x98\x30\x98\x38\x98\x3b\x98\x37\x98\x2d\x98\x39\x98\x24\x99\x10\x99\x28\x99\x1e\x99\x1b\x99\x21\x99\x1a\x99\xed\x99\xe2\x99\xf1\x9a\xb8\x9a\xbc\x9a\xfb\x9a\xed\x9b\x28\x9b\x91\x9d\x15\x9d\x23\x9d\x26\x9d\x28\x9d\x12\x9d\x1b\x9e\xd8\x9e\xd4\x9f\x8d\x9f\x9c\x51\x2a\x51\x1f\x51\x21\x51\x32\x52\xf5\x56\x8e\x56\x80\x56\x90\x56\x85\x56\x87\x56\x8f\x58\xd5\x58\xd3\x58\xd1\x58\xce\x5b\x30\x5b\x2a\x5b\x24\x5b\x7a\x5c\x37\x5c\x68\x5d\xbc\x5d\xba\x5d\xbd\x5d\xb8\x5e\x6b\x5f\x4c\x5f\xbd\x61\xc9\x61\xc2\x61\xc7\x61\xe6\x61\xcb\x62\x32\x62\x34\x64\xce\x64\xca\x64\xd8\x64\xe0\x64\xf0\x64\xe6\x64\xec\x64\xf1\x64\xe2\x64\xed\x65\x82\x65\x83\x66\xd9\x66\xd6\x6a\x80\x6a\x94\x6a\x84\x6a\xa2\x6a\x9c\x6a\xdb\x6a\xa3\x6a\x7e\x6a\x97\x6a\x90\x6a\xa0\x6b\x5c\x6b\xae\x6b\xda\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x08\x6f\xd8\x6f\xf1\x6f\xdf\x6f\xe0\x6f\xdb\x6f\xe4\x6f\xeb\x6f\xef\x6f\x80\x6f\xec\x6f\xe1\x6f\xe9\x6f\xd5\x6f\xee\x6f\xf0\x71\xe7\x71\xdf\x71\xee\x71\xe6\x71\xe5\x71\xed\x71\xec\x71\xf4\x71\xe0\x72\x35\x72\x46\x73\x70\x73\x72\x74\xa9\x74\xb0\x74\xa6\x74\xa8\x76\x46\x76\x42\x76\x4c\x76\xea\x77\xb3\x77\xaa\x77\xb0\x77\xac\x77\xa7\x77\xad\x77\xef\x78\xf7\x78\xfa\x78\xf4\x78\xef\x79\x01\x79\xa7\x79\xaa\x7a\x57\x7a\xbf\x7c\x07\x7c\x0d\x7b\xfe\x7b\xf7\x7c\x0c\x7b\xe0\x7c\xe0\x7c\xdc\x7c\xde\x7c\xe2", /* 6480 */ "\x00\x00\x7c\xdf\x7c\xd9\x7c\xdd\x7e\x2e\x7e\x3e\x7e\x46\x7e\x37\x7e\x32\x7e\x43\x7e\x2b\x7e\x3d\x7e\x31\x7e\x45\x7e\x41\x7e\x34\x7e\x39\x7e\x48\x7e\x35\x7e\x3f\x7e\x2f\x7f\x44\x7f\xf3\x7f\xfc\x80\x71\x80\x72\x80\x70\x80\x6f\x80\x73\x81\xc6\x81\xc3\x81\xba\x81\xc2\x81\xc0\x81\xbf\x81\xbd\x81\xc9\x81\xbe\x81\xe8\x82\x09\x82\x71\x85\xaa\x85\x84\x85\x7e\x85\x9c\x85\x91\x85\x94\x85\xaf\x85\x9b\x85\x87\x85\xa8\x85\x8a\x86\x67\x87\xc0\x87\xd1\x87\xb3\x87\xd2\x87\xc6\x87\xab\x87\xbb\x87\xba\x87\xc8\x87\xcb\x89\x3b\x89\x36\x89\x44\x89\x38\x89\x3d\x89\xac\x8b\x0e\x8b\x17\x8b\x19\x8b\x1b\x8b\x0a\x8b\x20\x8b\x1d\x8b\x04\x8b\x10\x8c\x41\x8c\x3f\x8c\x73\x8c\xfa\x8c\xfd\x8c\xfc\x8c\xf8\x8c\xfb\x8d\xa8\x8e\x49\x8e\x4b\x8e\x48\x8e\x4a\x8f\x44\x8f\x3e\x8f\x42\x8f\x45\x8f\x3f\x90\x7f\x90\x7d\x90\x84\x90\x81\x90\x82\x90\x80\x91\x39\x91\xa3\x91\x9e\x91\x9c\x93\x4d\x93\x82\x93\x28\x93\x75\x93\x4a\x93\x65\x93\x4b\x93\x18\x93\x7e\x93\x6c\x93\x5b\x93\x70\x93\x5a\x93\x54\x95\xca\x95\xcb\x95\xcc\x95\xc8\x95\xc6\x96\xb1\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xb8\x96\xd6\x97\x1c\x97\x1e\x97\xa0\x97\xd3\x98\x46\x98\xb6\x99\x35\x9a\x01\x99\xff\x9b\xae\x9b\xab\x9b\xaa\x9b\xad\x9d\x3b\x9d\x3f\x9e\x8b\x9e\xcf\x9e\xde\x9e\xdc\x9e\xdd\x9e\xdb\x9f\x3e\x9f\x4b\x53\xe2\x56\x95\x56\xae\x58\xd9\x58\xd8\x5b\x38\x5f\x5e\x61\xe3\x62\x33\x64\xf4\x64\xf2\x64\xfe\x65\x06\x64\xfa\x64\xfb\x64\xf7\x65\xb7\x66\xdc\x67\x26\x6a\xb3\x6a\xac\x6a\xc3\x6a\xbb\x6a\xb8\x6a\xc2\x6a\xae\x6a\xaf\x6b\x5f\x6b\x78\x6b\xaf\x70\x09\x70\x0b\x6f\xfe\x70\x06\x6f\xfa\x70\x11\x70\x0f\x71\xfb", /* 6580 */ "\x00\x00\x71\xfc\x71\xfe\x71\xf8\x73\x77\x73\x75\x74\xa7\x74\xbf\x75\x15\x76\x56\x76\x58\x76\x52\x77\xbd\x77\xbf\x77\xbb\x77\xbc\x79\x0e\x79\xae\x7a\x61\x7a\x62\x7a\x60\x7a\xc4\x7a\xc5\x7c\x2b\x7c\x27\x7c\x2a\x7c\x1e\x7c\x23\x7c\x21\x7c\xe7\x7e\x54\x7e\x55\x7e\x5e\x7e\x5a\x7e\x61\x7e\x52\x7e\x59\x7f\x48\x7f\xf9\x7f\xfb\x80\x77\x80\x76\x81\xcd\x81\xcf\x82\x0a\x85\xcf\x85\xa9\x85\xcd\x85\xd0\x85\xc9\x85\xb0\x85\xba\x85\xb9\x85\xa6\x87\xef\x87\xec\x87\xf2\x87\xe0\x89\x86\x89\xb2\x89\xf4\x8b\x28\x8b\x39\x8b\x2c\x8b\x2b\x8c\x50\x8d\x05\x8e\x59\x8e\x63\x8e\x66\x8e\x64\x8e\x5f\x8e\x55\x8e\xc0\x8f\x49\x8f\x4d\x90\x87\x90\x83\x90\x88\x91\xab\x91\xac\x91\xd0\x93\x94\x93\x8a\x93\x96\x93\xa2\x93\xb3\x93\xae\x93\xac\x93\xb0\x93\x98\x93\x9a\x93\x97\x95\xd4\x95\xd6\x95\xd0\x95\xd5\x96\xe2\x96\xdc\x96\xd9\x96\xdb\x96\xde\x97\x24\x97\xa3\x97\xa6\x97\xad\x97\xf9\x98\x4d\x98\x4f\x98\x4c\x98\x4e\x98\x53\x98\xba\x99\x3e\x99\x3f\x99\x3d\x99\x2e\x99\xa5\x9a\x0e\x9a\xc1\x9b\x03\x9b\x06\x9b\x4f\x9b\x4e\x9b\x4d\x9b\xca\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xc9\x9b\xfd\x9b\xc8\x9b\xc0\x9d\x51\x9d\x5d\x9d\x60\x9e\xe0\x9f\x15\x9f\x2c\x51\x33\x56\xa5\x58\xde\x58\xdf\x58\xe2\x5b\xf5\x9f\x90\x5e\xec\x61\xf2\x61\xf7\x61\xf6\x61\xf5\x65\x00\x65\x0f\x66\xe0\x66\xdd\x6a\xe5\x6a\xdd\x6a\xda\x6a\xd3\x70\x1b\x70\x1f\x70\x28\x70\x1a\x70\x1d\x70\x15\x70\x18\x72\x06\x72\x0d\x72\x58\x72\xa2\x73\x78\x73\x7a\x74\xbd\x74\xca\x74\xe3\x75\x87\x75\x86\x76\x5f\x76\x61\x77\xc7\x79\x19\x79\xb1\x7a\x6b\x7a\x69\x7c\x3e\x7c\x3f\x7c\x38\x7c\x3d\x7c\x37\x7c\x40\x7e\x6b\x7e\x6d", /* 6680 */ "\x00\x00\x7e\x79\x7e\x69\x7e\x6a\x7f\x85\x7e\x73\x7f\xb6\x7f\xb9\x7f\xb8\x81\xd8\x85\xe9\x85\xdd\x85\xea\x85\xd5\x85\xe4\x85\xe5\x85\xf7\x87\xfb\x88\x05\x88\x0d\x87\xf9\x87\xfe\x89\x60\x89\x5f\x89\x56\x89\x5e\x8b\x41\x8b\x5c\x8b\x58\x8b\x49\x8b\x5a\x8b\x4e\x8b\x4f\x8b\x46\x8b\x59\x8d\x08\x8d\x0a\x8e\x7c\x8e\x72\x8e\x87\x8e\x76\x8e\x6c\x8e\x7a\x8e\x74\x8f\x54\x8f\x4e\x8f\xad\x90\x8a\x90\x8b\x91\xb1\x91\xae\x93\xe1\x93\xd1\x93\xdf\x93\xc3\x93\xc8\x93\xdc\x93\xdd\x93\xd6\x93\xe2\x93\xcd\x93\xd8\x93\xe4\x93\xd7\x93\xe8\x95\xdc\x96\xb4\x96\xe3\x97\x2a\x97\x27\x97\x61\x97\xdc\x97\xfb\x98\x5e\x98\x58\x98\x5b\x98\xbc\x99\x45\x99\x49\x9a\x16\x9a\x19\x9b\x0d\x9b\xe8\x9b\xe7\x9b\xd6\x9b\xdb\x9d\x89\x9d\x61\x9d\x72\x9d\x6a\x9d\x6c\x9e\x92\x9e\x97\x9e\x93\x9e\xb4\x52\xf8\x56\xa8\x56\xb7\x56\xb6\x56\xb4\x56\xbc\x58\xe4\x5b\x40\x5b\x43\x5b\x7d\x5b\xf6\x5d\xc9\x61\xf8\x61\xfa\x65\x18\x65\x14\x65\x19\x66\xe6\x67\x27\x6a\xec\x70\x3e\x70\x30\x70\x32\x72\x10\x73\x7b\x74\xcf\x76\x62\x76\x65\x79\x26\x79\x2a\x79\x2c\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x2b\x7a\xc7\x7a\xf6\x7c\x4c\x7c\x43\x7c\x4d\x7c\xef\x7c\xf0\x8f\xae\x7e\x7d\x7e\x7c\x7e\x82\x7f\x4c\x80\x00\x81\xda\x82\x66\x85\xfb\x85\xf9\x86\x11\x85\xfa\x86\x06\x86\x0b\x86\x07\x86\x0a\x88\x14\x88\x15\x89\x64\x89\xba\x89\xf8\x8b\x70\x8b\x6c\x8b\x66\x8b\x6f\x8b\x5f\x8b\x6b\x8d\x0f\x8d\x0d\x8e\x89\x8e\x81\x8e\x85\x8e\x82\x91\xb4\x91\xcb\x94\x18\x94\x03\x93\xfd\x95\xe1\x97\x30\x98\xc4\x99\x52\x99\x51\x99\xa8\x9a\x2b\x9a\x30\x9a\x37\x9a\x35\x9c\x13\x9c\x0d\x9e\x79\x9e\xb5\x9e\xe8\x9f\x2f\x9f\x5f", /* 6780 */ "\x00\x00\x9f\x63\x9f\x61\x51\x37\x51\x38\x56\xc1\x56\xc0\x56\xc2\x59\x14\x5c\x6c\x5d\xcd\x61\xfc\x61\xfe\x65\x1d\x65\x1c\x65\x95\x66\xe9\x6a\xfb\x6b\x04\x6a\xfa\x6b\xb2\x70\x4c\x72\x1b\x72\xa7\x74\xd6\x74\xd4\x76\x69\x77\xd3\x7c\x50\x7e\x8f\x7e\x8c\x7f\xbc\x86\x17\x86\x2d\x86\x1a\x88\x23\x88\x22\x88\x21\x88\x1f\x89\x6a\x89\x6c\x89\xbd\x8b\x74\x8b\x77\x8b\x7d\x8d\x13\x8e\x8a\x8e\x8d\x8e\x8b\x8f\x5f\x8f\xaf\x91\xba\x94\x2e\x94\x33\x94\x35\x94\x3a\x94\x38\x94\x32\x94\x2b\x95\xe2\x97\x38\x97\x39\x97\x32\x97\xff\x98\x67\x98\x65\x99\x57\x9a\x45\x9a\x43\x9a\x40\x9a\x3e\x9a\xcf\x9b\x54\x9b\x51\x9c\x2d\x9c\x25\x9d\xaf\x9d\xb4\x9d\xc2\x9d\xb8\x9e\x9d\x9e\xef\x9f\x19\x9f\x5c\x9f\x66\x9f\x67\x51\x3c\x51\x3b\x56\xc8\x56\xca\x56\xc9\x5b\x7f\x5d\xd4\x5d\xd2\x5f\x4e\x61\xff\x65\x24\x6b\x0a\x6b\x61\x70\x51\x70\x58\x73\x80\x74\xe4\x75\x8a\x76\x6e\x76\x6c\x79\xb3\x7c\x60\x7c\x5f\x80\x7e\x80\x7d\x81\xdf\x89\x72\x89\x6f\x89\xfc\x8b\x80\x8d\x16\x8d\x17\x8e\x91\x8e\x93\x8f\x61\x91\x48\x94\x44\x94\x51\x94\x52\x97\x3d\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x3e\x97\xc3\x97\xc1\x98\x6b\x99\x55\x9a\x55\x9a\x4d\x9a\xd2\x9b\x1a\x9c\x49\x9c\x31\x9c\x3e\x9c\x3b\x9d\xd3\x9d\xd7\x9f\x34\x9f\x6c\x9f\x6a\x9f\x94\x56\xcc\x5d\xd6\x62\x00\x65\x23\x65\x2b\x65\x2a\x66\xec\x6b\x10\x74\xda\x7a\xca\x7c\x64\x7c\x63\x7c\x65\x7e\x93\x7e\x96\x7e\x94\x81\xe2\x86\x38\x86\x3f\x88\x31\x8b\x8a\x90\x90\x90\x8f\x94\x63\x94\x60\x94\x64\x97\x68\x98\x6f\x99\x5c\x9a\x5a\x9a\x5b\x9a\x57\x9a\xd3\x9a\xd4\x9a\xd1\x9c\x54\x9c\x57\x9c\x56\x9d\xe5\x9e\x9f\x9e\xf4\x56\xd1\x58\xe9\x65\x2c", /* 6880 */ "\x00\x00\x70\x5e\x76\x71\x76\x72\x77\xd7\x7f\x50\x7f\x88\x88\x36\x88\x39\x88\x62\x8b\x93\x8b\x92\x8b\x96\x82\x77\x8d\x1b\x91\xc0\x94\x6a\x97\x42\x97\x48\x97\x44\x97\xc6\x98\x70\x9a\x5f\x9b\x22\x9b\x58\x9c\x5f\x9d\xf9\x9d\xfa\x9e\x7c\x9e\x7d\x9f\x07\x9f\x77\x9f\x72\x5e\xf3\x6b\x16\x70\x63\x7c\x6c\x7c\x6e\x88\x3b\x89\xc0\x8e\xa1\x91\xc1\x94\x72\x94\x70\x98\x71\x99\x5e\x9a\xd6\x9b\x23\x9e\xcc\x70\x64\x77\xda\x8b\x9a\x94\x77\x97\xc9\x9a\x62\x9a\x65\x7e\x9c\x8b\x9c\x8e\xaa\x91\xc5\x94\x7d\x94\x7e\x94\x7c\x9c\x77\x9c\x78\x9e\xf7\x8c\x54\x94\x7f\x9e\x1a\x72\x28\x9a\x6a\x9b\x31\x9e\x1b\x9e\x1e\x7c\x72\x64\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x42\x4e\x5c\x51\xf5\x53\x1a\x53\x82\x4e\x07\x4e\x0c\x4e\x47\x4e\x8d\x56\xd7\xfa\x0c\x5c\x6e\x5f\x73\x4e\x0f\x51\x87\x4e\x0e\x4e\x2e\x4e\x93\x4e\xc2\x4e\xc9\x4e\xc8\x51\x98\x52\xfc\x53\x6c\x53\xb9\x57\x20\x59\x03\x59\x2c\x5c\x10\x5d\xff\x65\xe1\x6b\xb3\x6b\xcc\x6c\x14\x72\x3f\x4e\x31\x4e\x3c\x4e\xe8\x4e\xdc\x4e\xe9\x4e\xe1\x4e\xdd\x4e\xda\x52\x0c\x53\x1c\x53\x4c\x57\x22\x57\x23\x59\x17\x59\x2f\x5b\x81\x5b\x84\x5c\x12\x5c\x3b\x5c\x74\x5c\x73\x5e\x04\x5e\x80\x5e\x82\x5f\xc9\x62\x09\x62\x50\x6c\x15", /* 6980 */ "\x00\x00\x6c\x36\x6c\x43\x6c\x3f\x6c\x3b\x72\xae\x72\xb0\x73\x8a\x79\xb8\x80\x8a\x96\x1e\x4f\x0e\x4f\x18\x4f\x2c\x4e\xf5\x4f\x14\x4e\xf1\x4f\x00\x4e\xf7\x4f\x08\x4f\x1d\x4f\x02\x4f\x05\x4f\x22\x4f\x13\x4f\x04\x4e\xf4\x4f\x12\x51\xb1\x52\x13\x52\x09\x52\x10\x52\xa6\x53\x22\x53\x1f\x53\x4d\x53\x8a\x54\x07\x56\xe1\x56\xdf\x57\x2e\x57\x2a\x57\x34\x59\x3c\x59\x80\x59\x7c\x59\x85\x59\x7b\x59\x7e\x59\x77\x59\x7f\x5b\x56\x5c\x15\x5c\x25\x5c\x7c\x5c\x7a\x5c\x7b\x5c\x7e\x5d\xdf\x5e\x75\x5e\x84\x5f\x02\x5f\x1a\x5f\x74\x5f\xd5\x5f\xd4\x5f\xcf\x62\x65\x62\x5c\x62\x5e\x62\x64\x62\x61\x62\x66\x62\x62\x62\x59\x62\x60\x62\x5a\x65\xef\x65\xee\x67\x3e\x67\x39\x67\x38\x67\x3b\x67\x3a\x67\x3f\x67\x3c\x67\x33\x6c\x18\x6c\x46\x6c\x52\x6c\x5c\x6c\x4f\x6c\x4a\x6c\x54\x6c\x4b\x6c\x4c\x70\x71\x72\x5e\x72\xb4\x72\xb5\x73\x8e\x75\x2a\x76\x7f\x7a\x75\x7f\x51\x82\x78\x82\x7c\x82\x80\x82\x7d\x82\x7f\x86\x4d\x89\x7e\x90\x99\x90\x97\x90\x98\x90\x9b\x90\x94\x96\x22\x96\x24\x96\x20\x96\x23\x4f\x56\x4f\x3b\x4f\x62\x4f\x49\x4f\x53\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x64\x4f\x3e\x4f\x67\x4f\x52\x4f\x5f\x4f\x41\x4f\x58\x4f\x2d\x4f\x33\x4f\x3f\x4f\x61\x51\x8f\x51\xb9\x52\x1c\x52\x1e\x52\x21\x52\xad\x52\xae\x53\x09\x53\x63\x53\x72\x53\x8e\x53\x8f\x54\x30\x54\x37\x54\x2a\x54\x54\x54\x45\x54\x19\x54\x1c\x54\x25\x54\x18\x54\x3d\x54\x4f\x54\x41\x54\x28\x54\x24\x54\x47\x56\xee\x56\xe7\x56\xe5\x57\x41\x57\x45\x57\x4c\x57\x49\x57\x4b\x57\x52\x59\x06\x59\x40\x59\xa6\x59\x98\x59\xa0\x59\x97\x59\x8e\x59\xa2\x59\x90\x59\x8f\x59\xa7\x59\xa1\x5b\x8e\x5b\x92\x5c\x28\x5c\x2a", /* 6a80 */ "\x00\x00\x5c\x8d\x5c\x8f\x5c\x88\x5c\x8b\x5c\x89\x5c\x92\x5c\x8a\x5c\x86\x5c\x93\x5c\x95\x5d\xe0\x5e\x0a\x5e\x0e\x5e\x8b\x5e\x89\x5e\x8c\x5e\x88\x5e\x8d\x5f\x05\x5f\x1d\x5f\x78\x5f\x76\x5f\xd2\x5f\xd1\x5f\xd0\x5f\xed\x5f\xe8\x5f\xee\x5f\xf3\x5f\xe1\x5f\xe4\x5f\xe3\x5f\xfa\x5f\xef\x5f\xf7\x5f\xfb\x60\x00\x5f\xf4\x62\x3a\x62\x83\x62\x8c\x62\x8e\x62\x8f\x62\x94\x62\x87\x62\x71\x62\x7b\x62\x7a\x62\x70\x62\x81\x62\x88\x62\x77\x62\x7d\x62\x72\x62\x74\x65\x37\x65\xf0\x65\xf4\x65\xf3\x65\xf2\x65\xf5\x67\x45\x67\x47\x67\x59\x67\x55\x67\x4c\x67\x48\x67\x5d\x67\x4d\x67\x5a\x67\x4b\x6b\xd0\x6c\x19\x6c\x1a\x6c\x78\x6c\x67\x6c\x6b\x6c\x84\x6c\x8b\x6c\x8f\x6c\x71\x6c\x6f\x6c\x69\x6c\x9a\x6c\x6d\x6c\x87\x6c\x95\x6c\x9c\x6c\x66\x6c\x73\x6c\x65\x6c\x7b\x6c\x8e\x70\x74\x70\x7a\x72\x63\x72\xbf\x72\xbd\x72\xc3\x72\xc6\x72\xc1\x72\xba\x72\xc5\x73\x95\x73\x97\x73\x93\x73\x94\x73\x92\x75\x3a\x75\x39\x75\x94\x75\x95\x76\x81\x79\x3d\x80\x34\x80\x95\x80\x99\x80\x90\x80\x92\x80\x9c\x82\x90\x82\x8f\x82\x85\x82\x8e\x82\x91\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x93\x82\x8a\x82\x83\x82\x84\x8c\x78\x8f\xc9\x8f\xbf\x90\x9f\x90\xa1\x90\xa5\x90\x9e\x90\xa7\x90\xa0\x96\x30\x96\x28\x96\x2f\x96\x2d\x4e\x33\x4f\x98\x4f\x7c\x4f\x85\x4f\x7d\x4f\x80\x4f\x87\x4f\x76\x4f\x74\x4f\x89\x4f\x84\x4f\x77\x4f\x4c\x4f\x97\x4f\x6a\x4f\x9a\x4f\x79\x4f\x81\x4f\x78\x4f\x90\x4f\x9c\x4f\x94\x4f\x9e\x4f\x92\x4f\x82\x4f\x95\x4f\x6b\x4f\x6e\x51\x9e\x51\xbc\x51\xbe\x52\x35\x52\x32\x52\x33\x52\x46\x52\x31\x52\xbc\x53\x0a\x53\x0b\x53\x3c\x53\x92\x53\x94\x54\x87\x54\x7f\x54\x81\x54\x91", /* 6b80 */ "\x00\x00\x54\x82\x54\x88\x54\x6b\x54\x7a\x54\x7e\x54\x65\x54\x6c\x54\x74\x54\x66\x54\x8d\x54\x6f\x54\x61\x54\x60\x54\x98\x54\x63\x54\x67\x54\x64\x56\xf7\x56\xf9\x57\x6f\x57\x72\x57\x6d\x57\x6b\x57\x71\x57\x70\x57\x76\x57\x80\x57\x75\x57\x7b\x57\x73\x57\x74\x57\x62\x57\x68\x57\x7d\x59\x0c\x59\x45\x59\xb5\x59\xba\x59\xcf\x59\xce\x59\xb2\x59\xcc\x59\xc1\x59\xb6\x59\xbc\x59\xc3\x59\xd6\x59\xb1\x59\xbd\x59\xc0\x59\xc8\x59\xb4\x59\xc7\x5b\x62\x5b\x65\x5b\x93\x5b\x95\x5c\x44\x5c\x47\x5c\xae\x5c\xa4\x5c\xa0\x5c\xb5\x5c\xaf\x5c\xa8\x5c\xac\x5c\x9f\x5c\xa3\x5c\xad\x5c\xa2\x5c\xaa\x5c\xa7\x5c\x9d\x5c\xa5\x5c\xb6\x5c\xb0\x5c\xa6\x5e\x17\x5e\x14\x5e\x19\x5f\x28\x5f\x22\x5f\x23\x5f\x24\x5f\x54\x5f\x82\x5f\x7e\x5f\x7d\x5f\xde\x5f\xe5\x60\x2d\x60\x26\x60\x19\x60\x32\x60\x0b\x60\x34\x60\x0a\x60\x17\x60\x33\x60\x1a\x60\x1e\x60\x2c\x60\x22\x60\x0d\x60\x10\x60\x2e\x60\x13\x60\x11\x60\x0c\x60\x09\x60\x1c\x62\x14\x62\x3d\x62\xad\x62\xb4\x62\xd1\x62\xbe\x62\xaa\x62\xb6\x62\xca\x62\xae\x62\xb3\x62\xaf\x62\xbb\x62\xa9\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb0\x62\xb8\x65\x3d\x65\xa8\x65\xbb\x66\x09\x65\xfc\x66\x04\x66\x12\x66\x08\x65\xfb\x66\x03\x66\x0b\x66\x0d\x66\x05\x65\xfd\x66\x11\x66\x10\x66\xf6\x67\x0a\x67\x85\x67\x6c\x67\x8e\x67\x92\x67\x76\x67\x7b\x67\x98\x67\x86\x67\x84\x67\x74\x67\x8d\x67\x8c\x67\x7a\x67\x9f\x67\x91\x67\x99\x67\x83\x67\x7d\x67\x81\x67\x78\x67\x79\x67\x94\x6b\x25\x6b\x80\x6b\x7e\x6b\xde\x6c\x1d\x6c\x93\x6c\xec\x6c\xeb\x6c\xee\x6c\xd9\x6c\xb6\x6c\xd4\x6c\xad\x6c\xe7\x6c\xb7\x6c\xd0\x6c\xc2\x6c\xba\x6c\xc3\x6c\xc6\x6c\xed", /* 6c80 */ "\x00\x00\x6c\xf2\x6c\xd2\x6c\xdd\x6c\xb4\x6c\x8a\x6c\x9d\x6c\x80\x6c\xde\x6c\xc0\x6d\x30\x6c\xcd\x6c\xc7\x6c\xb0\x6c\xf9\x6c\xcf\x6c\xe9\x6c\xd1\x70\x94\x70\x98\x70\x85\x70\x93\x70\x86\x70\x84\x70\x91\x70\x96\x70\x82\x70\x9a\x70\x83\x72\x6a\x72\xd6\x72\xcb\x72\xd8\x72\xc9\x72\xdc\x72\xd2\x72\xd4\x72\xda\x72\xcc\x72\xd1\x73\xa4\x73\xa1\x73\xad\x73\xa6\x73\xa2\x73\xa0\x73\xac\x73\x9d\x74\xdd\x74\xe8\x75\x3f\x75\x40\x75\x3e\x75\x8c\x75\x98\x76\xaf\x76\xf3\x76\xf1\x76\xf0\x76\xf5\x77\xf8\x77\xfc\x77\xf9\x77\xfb\x77\xfa\x77\xf7\x79\x42\x79\x3f\x79\xc5\x7a\x78\x7a\x7b\x7a\xfb\x7c\x75\x7c\xfd\x80\x35\x80\x8f\x80\xae\x80\xa3\x80\xb8\x80\xb5\x80\xad\x82\x20\x82\xa0\x82\xc0\x82\xab\x82\x9a\x82\x98\x82\x9b\x82\xb5\x82\xa7\x82\xae\x82\xbc\x82\x9e\x82\xba\x82\xb4\x82\xa8\x82\xa1\x82\xa9\x82\xc2\x82\xa4\x82\xc3\x82\xb6\x82\xa2\x86\x70\x86\x6f\x86\x6d\x86\x6e\x8c\x56\x8f\xd2\x8f\xcb\x8f\xd3\x8f\xcd\x8f\xd6\x8f\xd5\x8f\xd7\x90\xb2\x90\xb4\x90\xaf\x90\xb3\x90\xb0\x96\x39\x96\x3d\x96\x3c\x96\x3a\x96\x43\x4f\xcd\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc5\x4f\xd3\x4f\xb2\x4f\xc9\x4f\xcb\x4f\xc1\x4f\xd4\x4f\xdc\x4f\xd9\x4f\xbb\x4f\xb3\x4f\xdb\x4f\xc7\x4f\xd6\x4f\xba\x4f\xc0\x4f\xb9\x4f\xec\x52\x44\x52\x49\x52\xc0\x52\xc2\x53\x3d\x53\x7c\x53\x97\x53\x96\x53\x99\x53\x98\x54\xba\x54\xa1\x54\xad\x54\xa5\x54\xcf\x54\xc3\x83\x0d\x54\xb7\x54\xae\x54\xd6\x54\xb6\x54\xc5\x54\xc6\x54\xa0\x54\x70\x54\xbc\x54\xa2\x54\xbe\x54\x72\x54\xde\x54\xb0\x57\xb5\x57\x9e\x57\x9f\x57\xa4\x57\x8c\x57\x97\x57\x9d\x57\x9b\x57\x94\x57\x98\x57\x8f\x57\x99\x57\xa5\x57\x9a", /* 6d80 */ "\x00\x00\x57\x95\x58\xf4\x59\x0d\x59\x53\x59\xe1\x59\xde\x59\xee\x5a\x00\x59\xf1\x59\xdd\x59\xfa\x59\xfd\x59\xfc\x59\xf6\x59\xe4\x59\xf2\x59\xf7\x59\xdb\x59\xe9\x59\xf3\x59\xf5\x59\xe0\x59\xfe\x59\xf4\x59\xed\x5b\xa8\x5c\x4c\x5c\xd0\x5c\xd8\x5c\xcc\x5c\xd7\x5c\xcb\x5c\xdb\x5c\xde\x5c\xda\x5c\xc9\x5c\xc7\x5c\xca\x5c\xd6\x5c\xd3\x5c\xd4\x5c\xcf\x5c\xc8\x5c\xc6\x5c\xce\x5c\xdf\x5c\xf8\x5d\xf9\x5e\x21\x5e\x22\x5e\x23\x5e\x20\x5e\x24\x5e\xb0\x5e\xa4\x5e\xa2\x5e\x9b\x5e\xa3\x5e\xa5\x5f\x07\x5f\x2e\x5f\x56\x5f\x86\x60\x37\x60\x39\x60\x54\x60\x72\x60\x5e\x60\x45\x60\x53\x60\x47\x60\x49\x60\x5b\x60\x4c\x60\x40\x60\x42\x60\x5f\x60\x24\x60\x44\x60\x58\x60\x66\x60\x6e\x62\x42\x62\x43\x62\xcf\x63\x0d\x63\x0b\x62\xf5\x63\x0e\x63\x03\x62\xeb\x62\xf9\x63\x0f\x63\x0c\x62\xf8\x62\xf6\x63\x00\x63\x13\x63\x14\x62\xfa\x63\x15\x62\xfb\x62\xf0\x65\x41\x65\x43\x65\xaa\x65\xbf\x66\x36\x66\x21\x66\x32\x66\x35\x66\x1c\x66\x26\x66\x22\x66\x33\x66\x2b\x66\x3a\x66\x1d\x66\x34\x66\x39\x66\x2e\x67\x0f\x67\x10\x67\xc1\x67\xf2\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc8\x67\xba\x67\xdc\x67\xbb\x67\xf8\x67\xd8\x67\xc0\x67\xb7\x67\xc5\x67\xeb\x67\xe4\x67\xdf\x67\xb5\x67\xcd\x67\xb3\x67\xf7\x67\xf6\x67\xee\x67\xe3\x67\xc2\x67\xb9\x67\xce\x67\xe7\x67\xf0\x67\xb2\x67\xfc\x67\xc6\x67\xed\x67\xcc\x67\xae\x67\xe6\x67\xdb\x67\xfa\x67\xc9\x67\xca\x67\xc3\x67\xea\x67\xcb\x6b\x28\x6b\x82\x6b\x84\x6b\xb6\x6b\xd6\x6b\xd8\x6b\xe0\x6c\x20\x6c\x21\x6d\x28\x6d\x34\x6d\x2d\x6d\x1f\x6d\x3c\x6d\x3f\x6d\x12\x6d\x0a\x6c\xda\x6d\x33\x6d\x04\x6d\x19\x6d\x3a\x6d\x1a\x6d\x11\x6d\x00", /* 6e80 */ "\x00\x00\x6d\x1d\x6d\x42\x6d\x01\x6d\x18\x6d\x37\x6d\x03\x6d\x0f\x6d\x40\x6d\x07\x6d\x20\x6d\x2c\x6d\x08\x6d\x22\x6d\x09\x6d\x10\x70\xb7\x70\x9f\x70\xbe\x70\xb1\x70\xb0\x70\xa1\x70\xb4\x70\xb5\x70\xa9\x72\x41\x72\x49\x72\x4a\x72\x6c\x72\x70\x72\x73\x72\x6e\x72\xca\x72\xe4\x72\xe8\x72\xeb\x72\xdf\x72\xea\x72\xe6\x72\xe3\x73\x85\x73\xcc\x73\xc2\x73\xc8\x73\xc5\x73\xb9\x73\xb6\x73\xb5\x73\xb4\x73\xeb\x73\xbf\x73\xc7\x73\xbe\x73\xc3\x73\xc6\x73\xb8\x73\xcb\x74\xec\x74\xee\x75\x2e\x75\x47\x75\x48\x75\xa7\x75\xaa\x76\x79\x76\xc4\x77\x08\x77\x03\x77\x04\x77\x05\x77\x0a\x76\xf7\x76\xfb\x76\xfa\x77\xe7\x77\xe8\x78\x06\x78\x11\x78\x12\x78\x05\x78\x10\x78\x0f\x78\x0e\x78\x09\x78\x03\x78\x13\x79\x4a\x79\x4c\x79\x4b\x79\x45\x79\x44\x79\xd5\x79\xcd\x79\xcf\x79\xd6\x79\xce\x7a\x80\x7a\x7e\x7a\xd1\x7b\x00\x7b\x01\x7c\x7a\x7c\x78\x7c\x79\x7c\x7f\x7c\x80\x7c\x81\x7d\x03\x7d\x08\x7d\x01\x7f\x58\x7f\x91\x7f\x8d\x7f\xbe\x80\x07\x80\x0e\x80\x0f\x80\x14\x80\x37\x80\xd8\x80\xc7\x80\xe0\x80\xd1\x80\xc8\x80\xc2\x80\xd0\x00\x00\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc5\x80\xe3\x80\xd9\x80\xdc\x80\xca\x80\xd5\x80\xc9\x80\xcf\x80\xd7\x80\xe6\x80\xcd\x81\xff\x82\x21\x82\x94\x82\xd9\x82\xfe\x82\xf9\x83\x07\x82\xe8\x83\x00\x82\xd5\x83\x3a\x82\xeb\x82\xd6\x82\xf4\x82\xec\x82\xe1\x82\xf2\x82\xf5\x83\x0c\x82\xfb\x82\xf6\x82\xf0\x82\xea\x82\xe4\x82\xe0\x82\xfa\x82\xf3\x82\xed\x86\x77\x86\x74\x86\x7c\x86\x73\x88\x41\x88\x4e\x88\x67\x88\x6a\x88\x69\x89\xd3\x8a\x04\x8a\x07\x8d\x72\x8f\xe3\x8f\xe1\x8f\xee\x8f\xe0\x90\xf1\x90\xbd\x90\xbf\x90\xd5\x90\xc5\x90\xbe\x90\xc7", /* 6f80 */ "\x00\x00\x90\xcb\x90\xc8\x91\xd4\x91\xd3\x96\x54\x96\x4f\x96\x51\x96\x53\x96\x4a\x96\x4e\x50\x1e\x50\x05\x50\x07\x50\x13\x50\x22\x50\x30\x50\x1b\x4f\xf5\x4f\xf4\x50\x33\x50\x37\x50\x2c\x4f\xf6\x4f\xf7\x50\x17\x50\x1c\x50\x20\x50\x27\x50\x35\x50\x2f\x50\x31\x50\x0e\x51\x5a\x51\x94\x51\x93\x51\xca\x51\xc4\x51\xc5\x51\xc8\x51\xce\x52\x61\x52\x5a\x52\x52\x52\x5e\x52\x5f\x52\x55\x52\x62\x52\xcd\x53\x0e\x53\x9e\x55\x26\x54\xe2\x55\x17\x55\x12\x54\xe7\x54\xf3\x54\xe4\x55\x1a\x54\xff\x55\x04\x55\x08\x54\xeb\x55\x11\x55\x05\x54\xf1\x55\x0a\x54\xfb\x54\xf7\x54\xf8\x54\xe0\x55\x0e\x55\x03\x55\x0b\x57\x01\x57\x02\x57\xcc\x58\x32\x57\xd5\x57\xd2\x57\xba\x57\xc6\x57\xbd\x57\xbc\x57\xb8\x57\xb6\x57\xbf\x57\xc7\x57\xd0\x57\xb9\x57\xc1\x59\x0e\x59\x4a\x5a\x19\x5a\x16\x5a\x2d\x5a\x2e\x5a\x15\x5a\x0f\x5a\x17\x5a\x0a\x5a\x1e\x5a\x33\x5b\x6c\x5b\xa7\x5b\xad\x5b\xac\x5c\x03\x5c\x56\x5c\x54\x5c\xec\x5c\xff\x5c\xee\x5c\xf1\x5c\xf7\x5d\x00\x5c\xf9\x5e\x29\x5e\x28\x5e\xa8\x5e\xae\x5e\xaa\x5e\xac\x5f\x33\x5f\x30\x5f\x67\x00\x00\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\xa2\x60\x88\x60\x80\x60\x92\x60\x81\x60\x9d\x60\x83\x60\x95\x60\x9b\x60\x97\x60\x87\x60\x9c\x60\x8e\x62\x19\x62\x46\x62\xf2\x63\x10\x63\x56\x63\x2c\x63\x44\x63\x45\x63\x36\x63\x43\x63\xe4\x63\x39\x63\x4b\x63\x4a\x63\x3c\x63\x29\x63\x41\x63\x34\x63\x58\x63\x54\x63\x59\x63\x2d\x63\x47\x63\x33\x63\x5a\x63\x51\x63\x38\x63\x57\x63\x40\x63\x48\x65\x4a\x65\x46\x65\xc6\x65\xc3\x65\xc4\x65\xc2\x66\x4a\x66\x5f\x66\x47\x66\x51\x67\x12\x67\x13\x68\x1f\x68\x1a\x68\x49\x68\x32", /* 7080 */ "\x00\x00\x68\x33\x68\x3b\x68\x4b\x68\x4f\x68\x16\x68\x31\x68\x1c\x68\x35\x68\x2b\x68\x2d\x68\x2f\x68\x4e\x68\x44\x68\x34\x68\x1d\x68\x12\x68\x14\x68\x26\x68\x28\x68\x2e\x68\x4d\x68\x3a\x68\x25\x68\x20\x6b\x2c\x6b\x2f\x6b\x2d\x6b\x31\x6b\x34\x6b\x6d\x80\x82\x6b\x88\x6b\xe6\x6b\xe4\x6b\xe8\x6b\xe3\x6b\xe2\x6b\xe7\x6c\x25\x6d\x7a\x6d\x63\x6d\x64\x6d\x76\x6d\x0d\x6d\x61\x6d\x92\x6d\x58\x6d\x62\x6d\x6d\x6d\x6f\x6d\x91\x6d\x8d\x6d\xef\x6d\x7f\x6d\x86\x6d\x5e\x6d\x67\x6d\x60\x6d\x97\x6d\x70\x6d\x7c\x6d\x5f\x6d\x82\x6d\x98\x6d\x2f\x6d\x68\x6d\x8b\x6d\x7e\x6d\x80\x6d\x84\x6d\x16\x6d\x83\x6d\x7b\x6d\x7d\x6d\x75\x6d\x90\x70\xdc\x70\xd3\x70\xd1\x70\xdd\x70\xcb\x7f\x39\x70\xe2\x70\xd7\x70\xd2\x70\xde\x70\xe0\x70\xd4\x70\xcd\x70\xc5\x70\xc6\x70\xc7\x70\xda\x70\xce\x70\xe1\x72\x42\x72\x78\x72\x77\x72\x76\x73\x00\x72\xfa\x72\xf4\x72\xfe\x72\xf6\x72\xf3\x72\xfb\x73\x01\x73\xd3\x73\xd9\x73\xe5\x73\xd6\x73\xbc\x73\xe7\x73\xe3\x73\xe9\x73\xdc\x73\xd2\x73\xdb\x73\xd4\x73\xdd\x73\xda\x73\xd7\x73\xd8\x73\xe8\x74\xde\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xdf\x74\xf4\x74\xf5\x75\x21\x75\x5b\x75\x5f\x75\xb0\x75\xc1\x75\xbb\x75\xc4\x75\xc0\x75\xbf\x75\xb6\x75\xba\x76\x8a\x76\xc9\x77\x1d\x77\x1b\x77\x10\x77\x13\x77\x12\x77\x23\x77\x11\x77\x15\x77\x19\x77\x1a\x77\x22\x77\x27\x78\x23\x78\x2c\x78\x22\x78\x35\x78\x2f\x78\x28\x78\x2e\x78\x2b\x78\x21\x78\x29\x78\x33\x78\x2a\x78\x31\x79\x54\x79\x5b\x79\x4f\x79\x5c\x79\x53\x79\x52\x79\x51\x79\xeb\x79\xec\x79\xe0\x79\xee\x79\xed\x79\xea\x79\xdc\x79\xde\x79\xdd\x7a\x86\x7a\x89\x7a\x85\x7a\x8b\x7a\x8c\x7a\x8a", /* 7180 */ "\x00\x00\x7a\x87\x7a\xd8\x7b\x10\x7b\x04\x7b\x13\x7b\x05\x7b\x0f\x7b\x08\x7b\x0a\x7b\x0e\x7b\x09\x7b\x12\x7c\x84\x7c\x91\x7c\x8a\x7c\x8c\x7c\x88\x7c\x8d\x7c\x85\x7d\x1e\x7d\x1d\x7d\x11\x7d\x0e\x7d\x18\x7d\x16\x7d\x13\x7d\x1f\x7d\x12\x7d\x0f\x7d\x0c\x7f\x5c\x7f\x61\x7f\x5e\x7f\x60\x7f\x5d\x7f\x5b\x7f\x96\x7f\x92\x7f\xc3\x7f\xc2\x7f\xc0\x80\x16\x80\x3e\x80\x39\x80\xfa\x80\xf2\x80\xf9\x80\xf5\x81\x01\x80\xfb\x81\x00\x82\x01\x82\x2f\x82\x25\x83\x33\x83\x2d\x83\x44\x83\x19\x83\x51\x83\x25\x83\x56\x83\x3f\x83\x41\x83\x26\x83\x1c\x83\x22\x83\x42\x83\x4e\x83\x1b\x83\x2a\x83\x08\x83\x3c\x83\x4d\x83\x16\x83\x24\x83\x20\x83\x37\x83\x2f\x83\x29\x83\x47\x83\x45\x83\x4c\x83\x53\x83\x1e\x83\x2c\x83\x4b\x83\x27\x83\x48\x86\x53\x86\x52\x86\xa2\x86\xa8\x86\x96\x86\x8d\x86\x91\x86\x9e\x86\x87\x86\x97\x86\x86\x86\x8b\x86\x9a\x86\x85\x86\xa5\x86\x99\x86\xa1\x86\xa7\x86\x95\x86\x98\x86\x8e\x86\x9d\x86\x90\x86\x94\x88\x43\x88\x44\x88\x6d\x88\x75\x88\x76\x88\x72\x88\x80\x88\x71\x88\x7f\x88\x6f\x88\x83\x88\x7e\x88\x74\x00\x00\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x7c\x8a\x12\x8c\x47\x8c\x57\x8c\x7b\x8c\xa4\x8c\xa3\x8d\x76\x8d\x78\x8d\xb5\x8d\xb7\x8d\xb6\x8e\xd1\x8e\xd3\x8f\xfe\x8f\xf5\x90\x02\x8f\xff\x8f\xfb\x90\x04\x8f\xfc\x8f\xf6\x90\xd6\x90\xe0\x90\xd9\x90\xda\x90\xe3\x90\xdf\x90\xe5\x90\xd8\x90\xdb\x90\xd7\x90\xdc\x90\xe4\x91\x50\x91\x4e\x91\x4f\x91\xd5\x91\xe2\x91\xda\x96\x5c\x96\x5f\x96\xbc\x98\xe3\x9a\xdf\x9b\x2f\x4e\x7f\x50\x70\x50\x6a\x50\x61\x50\x5e\x50\x60\x50\x53\x50\x4b\x50\x5d\x50\x72\x50\x48\x50\x4d\x50\x41\x50\x5b\x50\x4a\x50\x62\x50\x15", /* 7280 */ "\x00\x00\x50\x45\x50\x5f\x50\x69\x50\x6b\x50\x63\x50\x64\x50\x46\x50\x40\x50\x6e\x50\x73\x50\x57\x50\x51\x51\xd0\x52\x6b\x52\x6d\x52\x6c\x52\x6e\x52\xd6\x52\xd3\x53\x2d\x53\x9c\x55\x75\x55\x76\x55\x3c\x55\x4d\x55\x50\x55\x34\x55\x2a\x55\x51\x55\x62\x55\x36\x55\x35\x55\x30\x55\x52\x55\x45\x55\x0c\x55\x32\x55\x65\x55\x4e\x55\x39\x55\x48\x55\x2d\x55\x3b\x55\x40\x55\x4b\x57\x0a\x57\x07\x57\xfb\x58\x14\x57\xe2\x57\xf6\x57\xdc\x57\xf4\x58\x00\x57\xed\x57\xfd\x58\x08\x57\xf8\x58\x0b\x57\xf3\x57\xcf\x58\x07\x57\xee\x57\xe3\x57\xf2\x57\xe5\x57\xec\x57\xe1\x58\x0e\x57\xfc\x58\x10\x57\xe7\x58\x01\x58\x0c\x57\xf1\x57\xe9\x57\xf0\x58\x0d\x58\x04\x59\x5c\x5a\x60\x5a\x58\x5a\x55\x5a\x67\x5a\x5e\x5a\x38\x5a\x35\x5a\x6d\x5a\x50\x5a\x5f\x5a\x65\x5a\x6c\x5a\x53\x5a\x64\x5a\x57\x5a\x43\x5a\x5d\x5a\x52\x5a\x44\x5a\x5b\x5a\x48\x5a\x8e\x5a\x3e\x5a\x4d\x5a\x39\x5a\x4c\x5a\x70\x5a\x69\x5a\x47\x5a\x51\x5a\x56\x5a\x42\x5a\x5c\x5b\x72\x5b\x6e\x5b\xc1\x5b\xc0\x5c\x59\x5d\x1e\x5d\x0b\x5d\x1d\x5d\x1a\x5d\x20\x5d\x0c\x5d\x28\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x0d\x5d\x26\x5d\x25\x5d\x0f\x5d\x30\x5d\x12\x5d\x23\x5d\x1f\x5d\x2e\x5e\x3e\x5e\x34\x5e\xb1\x5e\xb4\x5e\xb9\x5e\xb2\x5e\xb3\x5f\x36\x5f\x38\x5f\x9b\x5f\x96\x5f\x9f\x60\x8a\x60\x90\x60\x86\x60\xbe\x60\xb0\x60\xba\x60\xd3\x60\xd4\x60\xcf\x60\xe4\x60\xd9\x60\xdd\x60\xc8\x60\xb1\x60\xdb\x60\xb7\x60\xca\x60\xbf\x60\xc3\x60\xcd\x60\xc0\x63\x32\x63\x65\x63\x8a\x63\x82\x63\x7d\x63\xbd\x63\x9e\x63\xad\x63\x9d\x63\x97\x63\xab\x63\x8e\x63\x6f\x63\x87\x63\x90\x63\x6e\x63\xaf\x63\x75\x63\x9c\x63\x6d\x63\xae", /* 7380 */ "\x00\x00\x63\x7c\x63\xa4\x63\x3b\x63\x9f\x63\x78\x63\x85\x63\x81\x63\x91\x63\x8d\x63\x70\x65\x53\x65\xcd\x66\x65\x66\x61\x66\x5b\x66\x59\x66\x5c\x66\x62\x67\x18\x68\x79\x68\x87\x68\x90\x68\x9c\x68\x6d\x68\x6e\x68\xae\x68\xab\x69\x56\x68\x6f\x68\xa3\x68\xac\x68\xa9\x68\x75\x68\x74\x68\xb2\x68\x8f\x68\x77\x68\x92\x68\x7c\x68\x6b\x68\x72\x68\xaa\x68\x80\x68\x71\x68\x7e\x68\x9b\x68\x96\x68\x8b\x68\xa0\x68\x89\x68\xa4\x68\x78\x68\x7b\x68\x91\x68\x8c\x68\x8a\x68\x7d\x6b\x36\x6b\x33\x6b\x37\x6b\x38\x6b\x91\x6b\x8f\x6b\x8d\x6b\x8e\x6b\x8c\x6c\x2a\x6d\xc0\x6d\xab\x6d\xb4\x6d\xb3\x6e\x74\x6d\xac\x6d\xe9\x6d\xe2\x6d\xb7\x6d\xf6\x6d\xd4\x6e\x00\x6d\xc8\x6d\xe0\x6d\xdf\x6d\xd6\x6d\xbe\x6d\xe5\x6d\xdc\x6d\xdd\x6d\xdb\x6d\xf4\x6d\xca\x6d\xbd\x6d\xed\x6d\xf0\x6d\xba\x6d\xd5\x6d\xc2\x6d\xcf\x6d\xc9\x6d\xd0\x6d\xf2\x6d\xd3\x6d\xfd\x6d\xd7\x6d\xcd\x6d\xe3\x6d\xbb\x70\xfa\x71\x0d\x70\xf7\x71\x17\x70\xf4\x71\x0c\x70\xf0\x71\x04\x70\xf3\x71\x10\x70\xfc\x70\xff\x71\x06\x71\x13\x71\x00\x70\xf8\x70\xf6\x71\x0b\x71\x02\x00\x00\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x0e\x72\x7e\x72\x7b\x72\x7c\x72\x7f\x73\x1d\x73\x17\x73\x07\x73\x11\x73\x18\x73\x0a\x73\x08\x72\xff\x73\x0f\x73\x1e\x73\x88\x73\xf6\x73\xf8\x73\xf5\x74\x04\x74\x01\x73\xfd\x74\x07\x74\x00\x73\xfa\x73\xfc\x73\xff\x74\x0c\x74\x0b\x73\xf4\x74\x08\x75\x64\x75\x63\x75\xce\x75\xd2\x75\xcf\x75\xcb\x75\xcc\x75\xd1\x75\xd0\x76\x8f\x76\x89\x76\xd3\x77\x39\x77\x2f\x77\x2d\x77\x31\x77\x32\x77\x34\x77\x33\x77\x3d\x77\x25\x77\x3b\x77\x35\x78\x48\x78\x52\x78\x49\x78\x4d\x78\x4a\x78\x4c\x78\x26\x78\x45\x78\x50", /* 7480 */ "\x00\x00\x79\x64\x79\x67\x79\x69\x79\x6a\x79\x63\x79\x6b\x79\x61\x79\xbb\x79\xfa\x79\xf8\x79\xf6\x79\xf7\x7a\x8f\x7a\x94\x7a\x90\x7b\x35\x7b\x47\x7b\x34\x7b\x25\x7b\x30\x7b\x22\x7b\x24\x7b\x33\x7b\x18\x7b\x2a\x7b\x1d\x7b\x31\x7b\x2b\x7b\x2d\x7b\x2f\x7b\x32\x7b\x38\x7b\x1a\x7b\x23\x7c\x94\x7c\x98\x7c\x96\x7c\xa3\x7d\x35\x7d\x3d\x7d\x38\x7d\x36\x7d\x3a\x7d\x45\x7d\x2c\x7d\x29\x7d\x41\x7d\x47\x7d\x3e\x7d\x3f\x7d\x4a\x7d\x3b\x7d\x28\x7f\x63\x7f\x95\x7f\x9c\x7f\x9d\x7f\x9b\x7f\xca\x7f\xcb\x7f\xcd\x7f\xd0\x7f\xd1\x7f\xc7\x7f\xcf\x7f\xc9\x80\x1f\x80\x1e\x80\x1b\x80\x47\x80\x43\x80\x48\x81\x18\x81\x25\x81\x19\x81\x1b\x81\x2d\x81\x1f\x81\x2c\x81\x1e\x81\x21\x81\x15\x81\x27\x81\x1d\x81\x22\x82\x11\x82\x38\x82\x33\x82\x3a\x82\x34\x82\x32\x82\x74\x83\x90\x83\xa3\x83\xa8\x83\x8d\x83\x7a\x83\x73\x83\xa4\x83\x74\x83\x8f\x83\x81\x83\x95\x83\x99\x83\x75\x83\x94\x83\xa9\x83\x7d\x83\x83\x83\x8c\x83\x9d\x83\x9b\x83\xaa\x83\x8b\x83\x7e\x83\xa5\x83\xaf\x83\x88\x83\x97\x83\xb0\x83\x7f\x83\xa6\x83\x87\x83\xae\x83\x76\x00\x00\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x9a\x86\x59\x86\x56\x86\xbf\x86\xb7\x86\xc2\x86\xc1\x86\xc5\x86\xba\x86\xb0\x86\xc8\x86\xb9\x86\xb3\x86\xb8\x86\xcc\x86\xb4\x86\xbb\x86\xbc\x86\xc3\x86\xbd\x86\xbe\x88\x52\x88\x89\x88\x95\x88\xa8\x88\xa2\x88\xaa\x88\x9a\x88\x91\x88\xa1\x88\x9f\x88\x98\x88\xa7\x88\x99\x88\x9b\x88\x97\x88\xa4\x88\xac\x88\x8c\x88\x93\x88\x8e\x89\x82\x89\xd6\x89\xd9\x89\xd5\x8a\x30\x8a\x27\x8a\x2c\x8a\x1e\x8c\x39\x8c\x3b\x8c\x5c\x8c\x5d\x8c\x7d\x8c\xa5\x8d\x7d\x8d\x7b\x8d\x79\x8d\xbc\x8d\xc2\x8d\xb9\x8d\xbf\x8d\xc1", /* 7580 */ "\x00\x00\x8e\xd8\x8e\xde\x8e\xdd\x8e\xdc\x8e\xd7\x8e\xe0\x8e\xe1\x90\x24\x90\x0b\x90\x11\x90\x1c\x90\x0c\x90\x21\x90\xef\x90\xea\x90\xf0\x90\xf4\x90\xf2\x90\xf3\x90\xd4\x90\xeb\x90\xec\x90\xe9\x91\x56\x91\x58\x91\x5a\x91\x53\x91\x55\x91\xec\x91\xf4\x91\xf1\x91\xf3\x91\xf8\x91\xe4\x91\xf9\x91\xea\x91\xeb\x91\xf7\x91\xe8\x91\xee\x95\x7a\x95\x86\x95\x88\x96\x7c\x96\x6d\x96\x6b\x96\x71\x96\x6f\x96\xbf\x97\x6a\x98\x04\x98\xe5\x99\x97\x50\x9b\x50\x95\x50\x94\x50\x9e\x50\x8b\x50\xa3\x50\x83\x50\x8c\x50\x8e\x50\x9d\x50\x68\x50\x9c\x50\x92\x50\x82\x50\x87\x51\x5f\x51\xd4\x53\x12\x53\x11\x53\xa4\x53\xa7\x55\x91\x55\xa8\x55\xa5\x55\xad\x55\x77\x56\x45\x55\xa2\x55\x93\x55\x88\x55\x8f\x55\xb5\x55\x81\x55\xa3\x55\x92\x55\xa4\x55\x7d\x55\x8c\x55\xa6\x55\x7f\x55\x95\x55\xa1\x55\x8e\x57\x0c\x58\x29\x58\x37\x58\x19\x58\x1e\x58\x27\x58\x23\x58\x28\x57\xf5\x58\x48\x58\x25\x58\x1c\x58\x1b\x58\x33\x58\x3f\x58\x36\x58\x2e\x58\x39\x58\x38\x58\x2d\x58\x2c\x58\x3b\x59\x61\x5a\xaf\x5a\x94\x5a\x9f\x5a\x7a\x5a\xa2\x5a\x9e\x00\x00\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x78\x5a\xa6\x5a\x7c\x5a\xa5\x5a\xac\x5a\x95\x5a\xae\x5a\x37\x5a\x84\x5a\x8a\x5a\x97\x5a\x83\x5a\x8b\x5a\xa9\x5a\x7b\x5a\x7d\x5a\x8c\x5a\x9c\x5a\x8f\x5a\x93\x5a\x9d\x5b\xea\x5b\xcd\x5b\xcb\x5b\xd4\x5b\xd1\x5b\xca\x5b\xce\x5c\x0c\x5c\x30\x5d\x37\x5d\x43\x5d\x6b\x5d\x41\x5d\x4b\x5d\x3f\x5d\x35\x5d\x51\x5d\x4e\x5d\x55\x5d\x33\x5d\x3a\x5d\x52\x5d\x3d\x5d\x31\x5d\x59\x5d\x42\x5d\x39\x5d\x49\x5d\x38\x5d\x3c\x5d\x32\x5d\x36\x5d\x40\x5d\x45\x5e\x44\x5e\x41\x5f\x58\x5f\xa6\x5f\xa5\x5f\xab\x60\xc9\x60\xb9", /* 7680 */ "\x00\x00\x60\xcc\x60\xe2\x60\xce\x60\xc4\x61\x14\x60\xf2\x61\x0a\x61\x16\x61\x05\x60\xf5\x61\x13\x60\xf8\x60\xfc\x60\xfe\x60\xc1\x61\x03\x61\x18\x61\x1d\x61\x10\x60\xff\x61\x04\x61\x0b\x62\x4a\x63\x94\x63\xb1\x63\xb0\x63\xce\x63\xe5\x63\xe8\x63\xef\x63\xc3\x64\x9d\x63\xf3\x63\xca\x63\xe0\x63\xf6\x63\xd5\x63\xf2\x63\xf5\x64\x61\x63\xdf\x63\xbe\x63\xdd\x63\xdc\x63\xc4\x63\xd8\x63\xd3\x63\xc2\x63\xc7\x63\xcc\x63\xcb\x63\xc8\x63\xf0\x63\xd7\x63\xd9\x65\x32\x65\x67\x65\x6a\x65\x64\x65\x5c\x65\x68\x65\x65\x65\x8c\x65\x9d\x65\x9e\x65\xae\x65\xd0\x65\xd2\x66\x7c\x66\x6c\x66\x7b\x66\x80\x66\x71\x66\x79\x66\x6a\x66\x72\x67\x01\x69\x0c\x68\xd3\x69\x04\x68\xdc\x69\x2a\x68\xec\x68\xea\x68\xf1\x69\x0f\x68\xd6\x68\xf7\x68\xeb\x68\xe4\x68\xf6\x69\x13\x69\x10\x68\xf3\x68\xe1\x69\x07\x68\xcc\x69\x08\x69\x70\x68\xb4\x69\x11\x68\xef\x68\xc6\x69\x14\x68\xf8\x68\xd0\x68\xfd\x68\xfc\x68\xe8\x69\x0b\x69\x0a\x69\x17\x68\xce\x68\xc8\x68\xdd\x68\xde\x68\xe6\x68\xf4\x68\xd1\x69\x06\x68\xd4\x68\xe9\x69\x15\x69\x25\x68\xc7\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x39\x6b\x3b\x6b\x3f\x6b\x3c\x6b\x94\x6b\x97\x6b\x99\x6b\x95\x6b\xbd\x6b\xf0\x6b\xf2\x6b\xf3\x6c\x30\x6d\xfc\x6e\x46\x6e\x47\x6e\x1f\x6e\x49\x6e\x88\x6e\x3c\x6e\x3d\x6e\x45\x6e\x62\x6e\x2b\x6e\x3f\x6e\x41\x6e\x5d\x6e\x73\x6e\x1c\x6e\x33\x6e\x4b\x6e\x40\x6e\x51\x6e\x3b\x6e\x03\x6e\x2e\x6e\x5e\x6e\x68\x6e\x5c\x6e\x61\x6e\x31\x6e\x28\x6e\x60\x6e\x71\x6e\x6b\x6e\x39\x6e\x22\x6e\x30\x6e\x53\x6e\x65\x6e\x27\x6e\x78\x6e\x64\x6e\x77\x6e\x55\x6e\x79\x6e\x52\x6e\x66\x6e\x35\x6e\x36\x6e\x5a\x71\x20\x71\x1e", /* 7780 */ "\x00\x00\x71\x2f\x70\xfb\x71\x2e\x71\x31\x71\x23\x71\x25\x71\x22\x71\x32\x71\x1f\x71\x28\x71\x3a\x71\x1b\x72\x4b\x72\x5a\x72\x88\x72\x89\x72\x86\x72\x85\x72\x8b\x73\x12\x73\x0b\x73\x30\x73\x22\x73\x31\x73\x33\x73\x27\x73\x32\x73\x2d\x73\x26\x73\x23\x73\x35\x73\x0c\x74\x2e\x74\x2c\x74\x30\x74\x2b\x74\x16\x74\x1a\x74\x21\x74\x2d\x74\x31\x74\x24\x74\x23\x74\x1d\x74\x29\x74\x20\x74\x32\x74\xfb\x75\x2f\x75\x6f\x75\x6c\x75\xe7\x75\xda\x75\xe1\x75\xe6\x75\xdd\x75\xdf\x75\xe4\x75\xd7\x76\x95\x76\x92\x76\xda\x77\x46\x77\x47\x77\x44\x77\x4d\x77\x45\x77\x4a\x77\x4e\x77\x4b\x77\x4c\x77\xde\x77\xec\x78\x60\x78\x64\x78\x65\x78\x5c\x78\x6d\x78\x71\x78\x6a\x78\x6e\x78\x70\x78\x69\x78\x68\x78\x5e\x78\x62\x79\x74\x79\x73\x79\x72\x79\x70\x7a\x02\x7a\x0a\x7a\x03\x7a\x0c\x7a\x04\x7a\x99\x7a\xe6\x7a\xe4\x7b\x4a\x7b\x3b\x7b\x44\x7b\x48\x7b\x4c\x7b\x4e\x7b\x40\x7b\x58\x7b\x45\x7c\xa2\x7c\x9e\x7c\xa8\x7c\xa1\x7d\x58\x7d\x6f\x7d\x63\x7d\x53\x7d\x56\x7d\x67\x7d\x6a\x7d\x4f\x7d\x6d\x7d\x5c\x7d\x6b\x7d\x52\x7d\x54\x7d\x69\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x51\x7d\x5f\x7d\x4e\x7f\x3e\x7f\x3f\x7f\x65\x7f\x66\x7f\xa2\x7f\xa0\x7f\xa1\x7f\xd7\x80\x51\x80\x4f\x80\x50\x80\xfe\x80\xd4\x81\x43\x81\x4a\x81\x52\x81\x4f\x81\x47\x81\x3d\x81\x4d\x81\x3a\x81\xe6\x81\xee\x81\xf7\x81\xf8\x81\xf9\x82\x04\x82\x3c\x82\x3d\x82\x3f\x82\x75\x83\x3b\x83\xcf\x83\xf9\x84\x23\x83\xc0\x83\xe8\x84\x12\x83\xe7\x83\xe4\x83\xfc\x83\xf6\x84\x10\x83\xc6\x83\xc8\x83\xeb\x83\xe3\x83\xbf\x84\x01\x83\xdd\x83\xe5\x83\xd8\x83\xff\x83\xe1\x83\xcb\x83\xce\x83\xd6\x83\xf5\x83\xc9\x84\x09", /* 7880 */ "\x00\x00\x84\x0f\x83\xde\x84\x11\x84\x06\x83\xc2\x83\xf3\x83\xd5\x83\xfa\x83\xc7\x83\xd1\x83\xea\x84\x13\x83\xc3\x83\xec\x83\xee\x83\xc4\x83\xfb\x83\xd7\x83\xe2\x84\x1b\x83\xdb\x83\xfe\x86\xd8\x86\xe2\x86\xe6\x86\xd3\x86\xe3\x86\xda\x86\xea\x86\xdd\x86\xeb\x86\xdc\x86\xec\x86\xe9\x86\xd7\x86\xe8\x86\xd1\x88\x48\x88\x56\x88\x55\x88\xba\x88\xd7\x88\xb9\x88\xb8\x88\xc0\x88\xbe\x88\xb6\x88\xbc\x88\xb7\x88\xbd\x88\xb2\x89\x01\x88\xc9\x89\x95\x89\x98\x89\x97\x89\xdd\x89\xda\x89\xdb\x8a\x4e\x8a\x4d\x8a\x39\x8a\x59\x8a\x40\x8a\x57\x8a\x58\x8a\x44\x8a\x45\x8a\x52\x8a\x48\x8a\x51\x8a\x4a\x8a\x4c\x8a\x4f\x8c\x5f\x8c\x81\x8c\x80\x8c\xba\x8c\xbe\x8c\xb0\x8c\xb9\x8c\xb5\x8d\x84\x8d\x80\x8d\x89\x8d\xd8\x8d\xd3\x8d\xcd\x8d\xc7\x8d\xd6\x8d\xdc\x8d\xcf\x8d\xd5\x8d\xd9\x8d\xc8\x8d\xd7\x8d\xc5\x8e\xef\x8e\xf7\x8e\xfa\x8e\xf9\x8e\xe6\x8e\xee\x8e\xe5\x8e\xf5\x8e\xe7\x8e\xe8\x8e\xf6\x8e\xeb\x8e\xf1\x8e\xec\x8e\xf4\x8e\xe9\x90\x2d\x90\x34\x90\x2f\x91\x06\x91\x2c\x91\x04\x90\xff\x90\xfc\x91\x08\x90\xf9\x90\xfb\x91\x01\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x00\x91\x07\x91\x05\x91\x03\x91\x61\x91\x64\x91\x5f\x91\x62\x91\x60\x92\x01\x92\x0a\x92\x25\x92\x03\x92\x1a\x92\x26\x92\x0f\x92\x0c\x92\x00\x92\x12\x91\xff\x91\xfd\x92\x06\x92\x04\x92\x27\x92\x02\x92\x1c\x92\x24\x92\x19\x92\x17\x92\x05\x92\x16\x95\x7b\x95\x8d\x95\x8c\x95\x90\x96\x87\x96\x7e\x96\x88\x96\x89\x96\x83\x96\x80\x96\xc2\x96\xc8\x96\xc3\x96\xf1\x96\xf0\x97\x6c\x97\x70\x97\x6e\x98\x07\x98\xa9\x98\xeb\x9c\xe6\x9e\xf9\x4e\x83\x4e\x84\x4e\xb6\x50\xbd\x50\xbf\x50\xc6\x50\xae\x50\xc4\x50\xca", /* 7980 */ "\x00\x00\x50\xb4\x50\xc8\x50\xc2\x50\xb0\x50\xc1\x50\xba\x50\xb1\x50\xcb\x50\xc9\x50\xb6\x50\xb8\x51\xd7\x52\x7a\x52\x78\x52\x7b\x52\x7c\x55\xc3\x55\xdb\x55\xcc\x55\xd0\x55\xcb\x55\xca\x55\xdd\x55\xc0\x55\xd4\x55\xc4\x55\xe9\x55\xbf\x55\xd2\x55\x8d\x55\xcf\x55\xd5\x55\xe2\x55\xd6\x55\xc8\x55\xf2\x55\xcd\x55\xd9\x55\xc2\x57\x14\x58\x53\x58\x68\x58\x64\x58\x4f\x58\x4d\x58\x49\x58\x6f\x58\x55\x58\x4e\x58\x5d\x58\x59\x58\x65\x58\x5b\x58\x3d\x58\x63\x58\x71\x58\xfc\x5a\xc7\x5a\xc4\x5a\xcb\x5a\xba\x5a\xb8\x5a\xb1\x5a\xb5\x5a\xb0\x5a\xbf\x5a\xc8\x5a\xbb\x5a\xc6\x5a\xb7\x5a\xc0\x5a\xca\x5a\xb4\x5a\xb6\x5a\xcd\x5a\xb9\x5a\x90\x5b\xd6\x5b\xd8\x5b\xd9\x5c\x1f\x5c\x33\x5d\x71\x5d\x63\x5d\x4a\x5d\x65\x5d\x72\x5d\x6c\x5d\x5e\x5d\x68\x5d\x67\x5d\x62\x5d\xf0\x5e\x4f\x5e\x4e\x5e\x4a\x5e\x4d\x5e\x4b\x5e\xc5\x5e\xcc\x5e\xc6\x5e\xcb\x5e\xc7\x5f\x40\x5f\xaf\x5f\xad\x60\xf7\x61\x49\x61\x4a\x61\x2b\x61\x45\x61\x36\x61\x32\x61\x2e\x61\x46\x61\x2f\x61\x4f\x61\x29\x61\x40\x62\x20\x91\x68\x62\x23\x62\x25\x62\x24\x63\xc5\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf1\x63\xeb\x64\x10\x64\x12\x64\x09\x64\x20\x64\x24\x64\x33\x64\x43\x64\x1f\x64\x15\x64\x18\x64\x39\x64\x37\x64\x22\x64\x23\x64\x0c\x64\x26\x64\x30\x64\x28\x64\x41\x64\x35\x64\x2f\x64\x0a\x64\x1a\x64\x40\x64\x25\x64\x27\x64\x0b\x63\xe7\x64\x1b\x64\x2e\x64\x21\x64\x0e\x65\x6f\x65\x92\x65\xd3\x66\x86\x66\x8c\x66\x95\x66\x90\x66\x8b\x66\x8a\x66\x99\x66\x94\x66\x78\x67\x20\x69\x66\x69\x5f\x69\x38\x69\x4e\x69\x62\x69\x71\x69\x3f\x69\x45\x69\x6a\x69\x39\x69\x42\x69\x57\x69\x59\x69\x7a\x69\x48\x69\x49", /* 7a80 */ "\x00\x00\x69\x35\x69\x6c\x69\x33\x69\x3d\x69\x65\x68\xf0\x69\x78\x69\x34\x69\x69\x69\x40\x69\x6f\x69\x44\x69\x76\x69\x58\x69\x41\x69\x74\x69\x4c\x69\x3b\x69\x4b\x69\x37\x69\x5c\x69\x4f\x69\x51\x69\x32\x69\x52\x69\x2f\x69\x7b\x69\x3c\x6b\x46\x6b\x45\x6b\x43\x6b\x42\x6b\x48\x6b\x41\x6b\x9b\xfa\x0d\x6b\xfb\x6b\xfc\x6b\xf9\x6b\xf7\x6b\xf8\x6e\x9b\x6e\xd6\x6e\xc8\x6e\x8f\x6e\xc0\x6e\x9f\x6e\x93\x6e\x94\x6e\xa0\x6e\xb1\x6e\xb9\x6e\xc6\x6e\xd2\x6e\xbd\x6e\xc1\x6e\x9e\x6e\xc9\x6e\xb7\x6e\xb0\x6e\xcd\x6e\xa6\x6e\xcf\x6e\xb2\x6e\xbe\x6e\xc3\x6e\xdc\x6e\xd8\x6e\x99\x6e\x92\x6e\x8e\x6e\x8d\x6e\xa4\x6e\xa1\x6e\xbf\x6e\xb3\x6e\xd0\x6e\xca\x6e\x97\x6e\xae\x6e\xa3\x71\x47\x71\x54\x71\x52\x71\x63\x71\x60\x71\x41\x71\x5d\x71\x62\x71\x72\x71\x78\x71\x6a\x71\x61\x71\x42\x71\x58\x71\x43\x71\x4b\x71\x70\x71\x5f\x71\x50\x71\x53\x71\x44\x71\x4d\x71\x5a\x72\x4f\x72\x8d\x72\x8c\x72\x91\x72\x90\x72\x8e\x73\x3c\x73\x42\x73\x3b\x73\x3a\x73\x40\x73\x4a\x73\x49\x74\x44\x74\x4a\x74\x4b\x74\x52\x74\x51\x74\x57\x74\x40\x74\x4f\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x50\x74\x4e\x74\x42\x74\x46\x74\x4d\x74\x54\x74\xe1\x74\xff\x74\xfe\x74\xfd\x75\x1d\x75\x79\x75\x77\x69\x83\x75\xef\x76\x0f\x76\x03\x75\xf7\x75\xfe\x75\xfc\x75\xf9\x75\xf8\x76\x10\x75\xfb\x75\xf6\x75\xed\x75\xf5\x75\xfd\x76\x99\x76\xb5\x76\xdd\x77\x55\x77\x5f\x77\x60\x77\x52\x77\x56\x77\x5a\x77\x69\x77\x67\x77\x54\x77\x59\x77\x6d\x77\xe0\x78\x87\x78\x9a\x78\x94\x78\x8f\x78\x84\x78\x95\x78\x85\x78\x86\x78\xa1\x78\x83\x78\x79\x78\x99\x78\x80\x78\x96\x78\x7b\x79\x7c\x79\x82\x79\x7d\x79\x79\x7a\x11", /* 7b80 */ "\x00\x00\x7a\x18\x7a\x19\x7a\x12\x7a\x17\x7a\x15\x7a\x22\x7a\x13\x7a\x1b\x7a\x10\x7a\xa3\x7a\xa2\x7a\x9e\x7a\xeb\x7b\x66\x7b\x64\x7b\x6d\x7b\x74\x7b\x69\x7b\x72\x7b\x65\x7b\x73\x7b\x71\x7b\x70\x7b\x61\x7b\x78\x7b\x76\x7b\x63\x7c\xb2\x7c\xb4\x7c\xaf\x7d\x88\x7d\x86\x7d\x80\x7d\x8d\x7d\x7f\x7d\x85\x7d\x7a\x7d\x8e\x7d\x7b\x7d\x83\x7d\x7c\x7d\x8c\x7d\x94\x7d\x84\x7d\x7d\x7d\x92\x7f\x6d\x7f\x6b\x7f\x67\x7f\x68\x7f\x6c\x7f\xa6\x7f\xa5\x7f\xa7\x7f\xdb\x7f\xdc\x80\x21\x81\x64\x81\x60\x81\x77\x81\x5c\x81\x69\x81\x5b\x81\x62\x81\x72\x67\x21\x81\x5e\x81\x76\x81\x67\x81\x6f\x81\x44\x81\x61\x82\x1d\x82\x49\x82\x44\x82\x40\x82\x42\x82\x45\x84\xf1\x84\x3f\x84\x56\x84\x76\x84\x79\x84\x8f\x84\x8d\x84\x65\x84\x51\x84\x40\x84\x86\x84\x67\x84\x30\x84\x4d\x84\x7d\x84\x5a\x84\x59\x84\x74\x84\x73\x84\x5d\x85\x07\x84\x5e\x84\x37\x84\x3a\x84\x34\x84\x7a\x84\x43\x84\x78\x84\x32\x84\x45\x84\x29\x83\xd9\x84\x4b\x84\x2f\x84\x42\x84\x2d\x84\x5f\x84\x70\x84\x39\x84\x4e\x84\x4c\x84\x52\x84\x6f\x84\xc5\x84\x8e\x84\x3b\x84\x47\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x36\x84\x33\x84\x68\x84\x7e\x84\x44\x84\x2b\x84\x60\x84\x54\x84\x6e\x84\x50\x87\x0b\x87\x04\x86\xf7\x87\x0c\x86\xfa\x86\xd6\x86\xf5\x87\x4d\x86\xf8\x87\x0e\x87\x09\x87\x01\x86\xf6\x87\x0d\x87\x05\x88\xd6\x88\xcb\x88\xcd\x88\xce\x88\xde\x88\xdb\x88\xda\x88\xcc\x88\xd0\x89\x85\x89\x9b\x89\xdf\x89\xe5\x89\xe4\x89\xe1\x89\xe0\x89\xe2\x89\xdc\x89\xe6\x8a\x76\x8a\x86\x8a\x7f\x8a\x61\x8a\x3f\x8a\x77\x8a\x82\x8a\x84\x8a\x75\x8a\x83\x8a\x81\x8a\x74\x8a\x7a\x8c\x3c\x8c\x4b\x8c\x4a\x8c\x65\x8c\x64\x8c\x66", /* 7c80 */ "\x00\x00\x8c\x86\x8c\x84\x8c\x85\x8c\xcc\x8d\x68\x8d\x69\x8d\x91\x8d\x8c\x8d\x8e\x8d\x8f\x8d\x8d\x8d\x93\x8d\x94\x8d\x90\x8d\x92\x8d\xf0\x8d\xe0\x8d\xec\x8d\xf1\x8d\xee\x8d\xd0\x8d\xe9\x8d\xe3\x8d\xe2\x8d\xe7\x8d\xf2\x8d\xeb\x8d\xf4\x8f\x06\x8e\xff\x8f\x01\x8f\x00\x8f\x05\x8f\x07\x8f\x08\x8f\x02\x8f\x0b\x90\x52\x90\x3f\x90\x44\x90\x49\x90\x3d\x91\x10\x91\x0d\x91\x0f\x91\x11\x91\x16\x91\x14\x91\x0b\x91\x0e\x91\x6e\x91\x6f\x92\x48\x92\x52\x92\x30\x92\x3a\x92\x66\x92\x33\x92\x65\x92\x5e\x92\x83\x92\x2e\x92\x4a\x92\x46\x92\x6d\x92\x6c\x92\x4f\x92\x60\x92\x67\x92\x6f\x92\x36\x92\x61\x92\x70\x92\x31\x92\x54\x92\x63\x92\x50\x92\x72\x92\x4e\x92\x53\x92\x4c\x92\x56\x92\x32\x95\x9f\x95\x9c\x95\x9e\x95\x9b\x96\x92\x96\x93\x96\x91\x96\x97\x96\xce\x96\xfa\x96\xfd\x96\xf8\x96\xf5\x97\x73\x97\x77\x97\x78\x97\x72\x98\x0f\x98\x0d\x98\x0e\x98\xac\x98\xf6\x98\xf9\x99\xaf\x99\xb2\x99\xb0\x99\xb5\x9a\xad\x9a\xab\x9b\x5b\x9c\xea\x9c\xed\x9c\xe7\x9e\x80\x9e\xfd\x50\xe6\x50\xd4\x50\xd7\x50\xe8\x50\xf3\x50\xdb\x50\xea\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdd\x50\xe4\x50\xd3\x50\xec\x50\xf0\x50\xef\x50\xe3\x50\xe0\x51\xd8\x52\x80\x52\x81\x52\xe9\x52\xeb\x53\x30\x53\xac\x56\x27\x56\x15\x56\x0c\x56\x12\x55\xfc\x56\x0f\x56\x1c\x56\x01\x56\x13\x56\x02\x55\xfa\x56\x1d\x56\x04\x55\xff\x55\xf9\x58\x89\x58\x7c\x58\x90\x58\x98\x58\x86\x58\x81\x58\x7f\x58\x74\x58\x8b\x58\x7a\x58\x87\x58\x91\x58\x8e\x58\x76\x58\x82\x58\x88\x58\x7b\x58\x94\x58\x8f\x58\xfe\x59\x6b\x5a\xdc\x5a\xee\x5a\xe5\x5a\xd5\x5a\xea\x5a\xda\x5a\xed\x5a\xeb\x5a\xf3\x5a\xe2\x5a\xe0\x5a\xdb", /* 7d80 */ "\x00\x00\x5a\xec\x5a\xde\x5a\xdd\x5a\xd9\x5a\xe8\x5a\xdf\x5b\x77\x5b\xe0\x5b\xe3\x5c\x63\x5d\x82\x5d\x80\x5d\x7d\x5d\x86\x5d\x7a\x5d\x81\x5d\x77\x5d\x8a\x5d\x89\x5d\x88\x5d\x7e\x5d\x7c\x5d\x8d\x5d\x79\x5d\x7f\x5e\x58\x5e\x59\x5e\x53\x5e\xd8\x5e\xd1\x5e\xd7\x5e\xce\x5e\xdc\x5e\xd5\x5e\xd9\x5e\xd2\x5e\xd4\x5f\x44\x5f\x43\x5f\x6f\x5f\xb6\x61\x2c\x61\x28\x61\x41\x61\x5e\x61\x71\x61\x73\x61\x52\x61\x53\x61\x72\x61\x6c\x61\x80\x61\x74\x61\x54\x61\x7a\x61\x5b\x61\x65\x61\x3b\x61\x6a\x61\x61\x61\x56\x62\x29\x62\x27\x62\x2b\x64\x2b\x64\x4d\x64\x5b\x64\x5d\x64\x74\x64\x76\x64\x72\x64\x73\x64\x7d\x64\x75\x64\x66\x64\xa6\x64\x4e\x64\x82\x64\x5e\x64\x5c\x64\x4b\x64\x53\x64\x60\x64\x50\x64\x7f\x64\x3f\x64\x6c\x64\x6b\x64\x59\x64\x65\x64\x77\x65\x73\x65\xa0\x66\xa1\x66\xa0\x66\x9f\x67\x05\x67\x04\x67\x22\x69\xb1\x69\xb6\x69\xc9\x69\xa0\x69\xce\x69\x96\x69\xb0\x69\xac\x69\xbc\x69\x91\x69\x99\x69\x8e\x69\xa7\x69\x8d\x69\xa9\x69\xbe\x69\xaf\x69\xbf\x69\xc4\x69\xbd\x69\xa4\x69\xd4\x69\xb9\x69\xca\x69\x9a\x69\xcf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xb3\x69\x93\x69\xaa\x69\xa1\x69\x9e\x69\xd9\x69\x97\x69\x90\x69\xc2\x69\xb5\x69\xa5\x69\xc6\x6b\x4a\x6b\x4d\x6b\x4b\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xc3\x6b\xc4\x6b\xfe\x6e\xce\x6e\xf5\x6e\xf1\x6f\x03\x6f\x25\x6e\xf8\x6f\x37\x6e\xfb\x6f\x2e\x6f\x09\x6f\x4e\x6f\x19\x6f\x1a\x6f\x27\x6f\x18\x6f\x3b\x6f\x12\x6e\xed\x6f\x0a\x6f\x36\x6f\x73\x6e\xf9\x6e\xee\x6f\x2d\x6f\x40\x6f\x30\x6f\x3c\x6f\x35\x6e\xeb\x6f\x07\x6f\x0e\x6f\x43\x6f\x05\x6e\xfd\x6e\xf6\x6f\x39\x6f\x1c\x6e\xfc\x6f\x3a\x6f\x1f\x6f\x0d\x6f\x1e", /* 7e80 */ "\x00\x00\x6f\x08\x6f\x21\x71\x87\x71\x90\x71\x89\x71\x80\x71\x85\x71\x82\x71\x8f\x71\x7b\x71\x86\x71\x81\x71\x97\x72\x44\x72\x53\x72\x97\x72\x95\x72\x93\x73\x43\x73\x4d\x73\x51\x73\x4c\x74\x62\x74\x73\x74\x71\x74\x75\x74\x72\x74\x67\x74\x6e\x75\x00\x75\x02\x75\x03\x75\x7d\x75\x90\x76\x16\x76\x08\x76\x0c\x76\x15\x76\x11\x76\x0a\x76\x14\x76\xb8\x77\x81\x77\x7c\x77\x85\x77\x82\x77\x6e\x77\x80\x77\x6f\x77\x7e\x77\x83\x78\xb2\x78\xaa\x78\xb4\x78\xad\x78\xa8\x78\x7e\x78\xab\x78\x9e\x78\xa5\x78\xa0\x78\xac\x78\xa2\x78\xa4\x79\x98\x79\x8a\x79\x8b\x79\x96\x79\x95\x79\x94\x79\x93\x79\x97\x79\x88\x79\x92\x79\x90\x7a\x2b\x7a\x4a\x7a\x30\x7a\x2f\x7a\x28\x7a\x26\x7a\xa8\x7a\xab\x7a\xac\x7a\xee\x7b\x88\x7b\x9c\x7b\x8a\x7b\x91\x7b\x90\x7b\x96\x7b\x8d\x7b\x8c\x7b\x9b\x7b\x8e\x7b\x85\x7b\x98\x52\x84\x7b\x99\x7b\xa4\x7b\x82\x7c\xbb\x7c\xbf\x7c\xbc\x7c\xba\x7d\xa7\x7d\xb7\x7d\xc2\x7d\xa3\x7d\xaa\x7d\xc1\x7d\xc0\x7d\xc5\x7d\x9d\x7d\xce\x7d\xc4\x7d\xc6\x7d\xcb\x7d\xcc\x7d\xaf\x7d\xb9\x7d\x96\x7d\xbc\x7d\x9f\x7d\xa6\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xae\x7d\xa9\x7d\xa1\x7d\xc9\x7f\x73\x7f\xe2\x7f\xe3\x7f\xe5\x7f\xde\x80\x24\x80\x5d\x80\x5c\x81\x89\x81\x86\x81\x83\x81\x87\x81\x8d\x81\x8c\x81\x8b\x82\x15\x84\x97\x84\xa4\x84\xa1\x84\x9f\x84\xba\x84\xce\x84\xc2\x84\xac\x84\xae\x84\xab\x84\xb9\x84\xb4\x84\xc1\x84\xcd\x84\xaa\x84\x9a\x84\xb1\x84\xd0\x84\x9d\x84\xa7\x84\xbb\x84\xa2\x84\x94\x84\xc7\x84\xcc\x84\x9b\x84\xa9\x84\xaf\x84\xa8\x84\xd6\x84\x98\x84\xb6\x84\xcf\x84\xa0\x84\xd7\x84\xd4\x84\xd2\x84\xdb\x84\xb0\x84\x91\x86\x61\x87\x33\x87\x23", /* 7f80 */ "\x00\x00\x87\x28\x87\x6b\x87\x40\x87\x2e\x87\x1e\x87\x21\x87\x19\x87\x1b\x87\x43\x87\x2c\x87\x41\x87\x3e\x87\x46\x87\x20\x87\x32\x87\x2a\x87\x2d\x87\x3c\x87\x12\x87\x3a\x87\x31\x87\x35\x87\x42\x87\x26\x87\x27\x87\x38\x87\x24\x87\x1a\x87\x30\x87\x11\x88\xf7\x88\xe7\x88\xf1\x88\xf2\x88\xfa\x88\xfe\x88\xee\x88\xfc\x88\xf6\x88\xfb\x88\xf0\x88\xec\x88\xeb\x89\x9d\x89\xa1\x89\x9f\x89\x9e\x89\xe9\x89\xeb\x89\xe8\x8a\xab\x8a\x99\x8a\x8b\x8a\x92\x8a\x8f\x8a\x96\x8c\x3d\x8c\x68\x8c\x69\x8c\xd5\x8c\xcf\x8c\xd7\x8d\x96\x8e\x09\x8e\x02\x8d\xff\x8e\x0d\x8d\xfd\x8e\x0a\x8e\x03\x8e\x07\x8e\x06\x8e\x05\x8d\xfe\x8e\x00\x8e\x04\x8f\x10\x8f\x11\x8f\x0e\x8f\x0d\x91\x23\x91\x1c\x91\x20\x91\x22\x91\x1f\x91\x1d\x91\x1a\x91\x24\x91\x21\x91\x1b\x91\x7a\x91\x72\x91\x79\x91\x73\x92\xa5\x92\xa4\x92\x76\x92\x9b\x92\x7a\x92\xa0\x92\x94\x92\xaa\x92\x8d\x92\xa6\x92\x9a\x92\xab\x92\x79\x92\x97\x92\x7f\x92\xa3\x92\xee\x92\x8e\x92\x82\x92\x95\x92\xa2\x92\x7d\x92\x88\x92\xa1\x92\x8a\x92\x86\x92\x8c\x92\x99\x92\xa7\x92\x7e\x92\x87\x00\x00\x00\x00", /* 8000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\xa9\x92\x9d\x92\x8b\x92\x2d\x96\x9e\x96\xa1\x96\xff\x97\x58\x97\x7d\x97\x7a\x97\x7e\x97\x83\x97\x80\x97\x82\x97\x7b\x97\x84\x97\x81\x97\x7f\x97\xce\x97\xcd\x98\x16\x98\xad\x98\xae\x99\x02\x99\x00\x99\x07\x99\x9d\x99\x9c\x99\xc3\x99\xb9\x99\xbb\x99\xba\x99\xc2\x99\xbd\x99\xc7\x9a\xb1\x9a\xe3\x9a\xe7\x9b\x3e\x9b\x3f\x9b\x60\x9b\x61\x9b\x5f\x9c\xf1\x9c\xf2\x9c\xf5\x9e\xa7\x50\xff\x51\x03\x51\x30\x50\xf8\x51\x06\x51\x07\x50\xf6\x50\xfe\x51\x0b\x51\x0c\x50\xfd\x51\x0a\x52\x8b\x52\x8c\x52\xf1\x52\xef", /* 8080 */ "\x00\x00\x56\x48\x56\x42\x56\x4c\x56\x35\x56\x41\x56\x4a\x56\x49\x56\x46\x56\x58\x56\x5a\x56\x40\x56\x33\x56\x3d\x56\x2c\x56\x3e\x56\x38\x56\x2a\x56\x3a\x57\x1a\x58\xab\x58\x9d\x58\xb1\x58\xa0\x58\xa3\x58\xaf\x58\xac\x58\xa5\x58\xa1\x58\xff\x5a\xff\x5a\xf4\x5a\xfd\x5a\xf7\x5a\xf6\x5b\x03\x5a\xf8\x5b\x02\x5a\xf9\x5b\x01\x5b\x07\x5b\x05\x5b\x0f\x5c\x67\x5d\x99\x5d\x97\x5d\x9f\x5d\x92\x5d\xa2\x5d\x93\x5d\x95\x5d\xa0\x5d\x9c\x5d\xa1\x5d\x9a\x5d\x9e\x5e\x69\x5e\x5d\x5e\x60\x5e\x5c\x7d\xf3\x5e\xdb\x5e\xde\x5e\xe1\x5f\x49\x5f\xb2\x61\x8b\x61\x83\x61\x79\x61\xb1\x61\xb0\x61\xa2\x61\x89\x61\x9b\x61\x93\x61\xaf\x61\xad\x61\x9f\x61\x92\x61\xaa\x61\xa1\x61\x8d\x61\x66\x61\xb3\x62\x2d\x64\x6e\x64\x70\x64\x96\x64\xa0\x64\x85\x64\x97\x64\x9c\x64\x8f\x64\x8b\x64\x8a\x64\x8c\x64\xa3\x64\x9f\x64\x68\x64\xb1\x64\x98\x65\x76\x65\x7a\x65\x79\x65\x7b\x65\xb2\x65\xb3\x66\xb5\x66\xb0\x66\xa9\x66\xb2\x66\xb7\x66\xaa\x66\xaf\x6a\x00\x6a\x06\x6a\x17\x69\xe5\x69\xf8\x6a\x15\x69\xf1\x69\xe4\x6a\x20\x69\xff\x69\xec\x69\xe2\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1b\x6a\x1d\x69\xfe\x6a\x27\x69\xf2\x69\xee\x6a\x14\x69\xf7\x69\xe7\x6a\x40\x6a\x08\x69\xe6\x69\xfb\x6a\x0d\x69\xfc\x69\xeb\x6a\x09\x6a\x04\x6a\x18\x6a\x25\x6a\x0f\x69\xf6\x6a\x26\x6a\x07\x69\xf4\x6a\x16\x6b\x51\x6b\xa5\x6b\xa3\x6b\xa2\x6b\xa6\x6c\x01\x6c\x00\x6b\xff\x6c\x02\x6f\x41\x6f\x26\x6f\x7e\x6f\x87\x6f\xc6\x6f\x92\x6f\x8d\x6f\x89\x6f\x8c\x6f\x62\x6f\x4f\x6f\x85\x6f\x5a\x6f\x96\x6f\x76\x6f\x6c\x6f\x82\x6f\x55\x6f\x72\x6f\x52\x6f\x50\x6f\x57\x6f\x94\x6f\x93\x6f\x5d\x6f\x00\x6f\x61\x6f\x6b", /* 8180 */ "\x00\x00\x6f\x7d\x6f\x67\x6f\x90\x6f\x53\x6f\x8b\x6f\x69\x6f\x7f\x6f\x95\x6f\x63\x6f\x77\x6f\x6a\x6f\x7b\x71\xb2\x71\xaf\x71\x9b\x71\xb0\x71\xa0\x71\x9a\x71\xa9\x71\xb5\x71\x9d\x71\xa5\x71\x9e\x71\xa4\x71\xa1\x71\xaa\x71\x9c\x71\xa7\x71\xb3\x72\x98\x72\x9a\x73\x58\x73\x52\x73\x5e\x73\x5f\x73\x60\x73\x5d\x73\x5b\x73\x61\x73\x5a\x73\x59\x73\x62\x74\x87\x74\x89\x74\x8a\x74\x86\x74\x81\x74\x7d\x74\x85\x74\x88\x74\x7c\x74\x79\x75\x08\x75\x07\x75\x7e\x76\x25\x76\x1e\x76\x19\x76\x1d\x76\x1c\x76\x23\x76\x1a\x76\x28\x76\x1b\x76\x9c\x76\x9d\x76\x9e\x76\x9b\x77\x8d\x77\x8f\x77\x89\x77\x88\x78\xcd\x78\xbb\x78\xcf\x78\xcc\x78\xd1\x78\xce\x78\xd4\x78\xc8\x78\xc3\x78\xc4\x78\xc9\x79\x9a\x79\xa1\x79\xa0\x79\x9c\x79\xa2\x79\x9b\x6b\x76\x7a\x39\x7a\xb2\x7a\xb4\x7a\xb3\x7b\xb7\x7b\xcb\x7b\xbe\x7b\xac\x7b\xce\x7b\xaf\x7b\xb9\x7b\xca\x7b\xb5\x7c\xc5\x7c\xc8\x7c\xcc\x7c\xcb\x7d\xf7\x7d\xdb\x7d\xea\x7d\xe7\x7d\xd7\x7d\xe1\x7e\x03\x7d\xfa\x7d\xe6\x7d\xf6\x7d\xf1\x7d\xf0\x7d\xee\x7d\xdf\x7f\x76\x7f\xac\x7f\xb0\x7f\xad\x00\x00\x00\x00", /* 8200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xed\x7f\xeb\x7f\xea\x7f\xec\x7f\xe6\x7f\xe8\x80\x64\x80\x67\x81\xa3\x81\x9f\x81\x9e\x81\x95\x81\xa2\x81\x99\x81\x97\x82\x16\x82\x4f\x82\x53\x82\x52\x82\x50\x82\x4e\x82\x51\x85\x24\x85\x3b\x85\x0f\x85\x00\x85\x29\x85\x0e\x85\x09\x85\x0d\x85\x1f\x85\x0a\x85\x27\x85\x1c\x84\xfb\x85\x2b\x84\xfa\x85\x08\x85\x0c\x84\xf4\x85\x2a\x84\xf2\x85\x15\x84\xf7\x84\xeb\x84\xf3\x84\xfc\x85\x12\x84\xea\x84\xe9\x85\x16\x84\xfe\x85\x28\x85\x1d\x85\x2e\x85\x02\x84\xfd\x85\x1e\x84\xf6\x85\x31\x85\x26\x84\xe7\x84\xe8", /* 8280 */ "\x00\x00\x84\xf0\x84\xef\x84\xf9\x85\x18\x85\x20\x85\x30\x85\x0b\x85\x19\x85\x2f\x86\x62\x87\x56\x87\x63\x87\x64\x87\x77\x87\xe1\x87\x73\x87\x58\x87\x54\x87\x5b\x87\x52\x87\x61\x87\x5a\x87\x51\x87\x5e\x87\x6d\x87\x6a\x87\x50\x87\x4e\x87\x5f\x87\x5d\x87\x6f\x87\x6c\x87\x7a\x87\x6e\x87\x5c\x87\x65\x87\x4f\x87\x7b\x87\x75\x87\x62\x87\x67\x87\x69\x88\x5a\x89\x05\x89\x0c\x89\x14\x89\x0b\x89\x17\x89\x18\x89\x19\x89\x06\x89\x16\x89\x11\x89\x0e\x89\x09\x89\xa2\x89\xa4\x89\xa3\x89\xed\x89\xf0\x89\xec\x8a\xcf\x8a\xc6\x8a\xb8\x8a\xd3\x8a\xd1\x8a\xd4\x8a\xd5\x8a\xbb\x8a\xd7\x8a\xbe\x8a\xc0\x8a\xc5\x8a\xd8\x8a\xc3\x8a\xba\x8a\xbd\x8a\xd9\x8c\x3e\x8c\x4d\x8c\x8f\x8c\xe5\x8c\xdf\x8c\xd9\x8c\xe8\x8c\xda\x8c\xdd\x8c\xe7\x8d\xa0\x8d\x9c\x8d\xa1\x8d\x9b\x8e\x20\x8e\x23\x8e\x25\x8e\x24\x8e\x2e\x8e\x15\x8e\x1b\x8e\x16\x8e\x11\x8e\x19\x8e\x26\x8e\x27\x8e\x14\x8e\x12\x8e\x18\x8e\x13\x8e\x1c\x8e\x17\x8e\x1a\x8f\x2c\x8f\x24\x8f\x18\x8f\x1a\x8f\x20\x8f\x23\x8f\x16\x8f\x17\x90\x73\x90\x70\x90\x6f\x90\x67\x90\x6b\x91\x2f\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x2b\x91\x29\x91\x2a\x91\x32\x91\x26\x91\x2e\x91\x85\x91\x86\x91\x8a\x91\x81\x91\x82\x91\x84\x91\x80\x92\xd0\x92\xc3\x92\xc4\x92\xc0\x92\xd9\x92\xb6\x92\xcf\x92\xf1\x92\xdf\x92\xd8\x92\xe9\x92\xd7\x92\xdd\x92\xcc\x92\xef\x92\xc2\x92\xe8\x92\xca\x92\xc8\x92\xce\x92\xe6\x92\xcd\x92\xd5\x92\xc9\x92\xe0\x92\xde\x92\xe7\x92\xd1\x92\xd3\x92\xb5\x92\xe1\x92\xc6\x92\xb4\x95\x7c\x95\xac\x95\xab\x95\xae\x95\xb0\x96\xa4\x96\xa2\x96\xd3\x97\x05\x97\x08\x97\x02\x97\x5a\x97\x8a\x97\x8e\x97\x88\x97\xd0\x97\xcf", /* 8380 */ "\x00\x00\x98\x1e\x98\x1d\x98\x26\x98\x29\x98\x28\x98\x20\x98\x1b\x98\x27\x98\xb2\x99\x08\x98\xfa\x99\x11\x99\x14\x99\x16\x99\x17\x99\x15\x99\xdc\x99\xcd\x99\xcf\x99\xd3\x99\xd4\x99\xce\x99\xc9\x99\xd6\x99\xd8\x99\xcb\x99\xd7\x99\xcc\x9a\xb3\x9a\xec\x9a\xeb\x9a\xf3\x9a\xf2\x9a\xf1\x9b\x46\x9b\x43\x9b\x67\x9b\x74\x9b\x71\x9b\x66\x9b\x76\x9b\x75\x9b\x70\x9b\x68\x9b\x64\x9b\x6c\x9c\xfc\x9c\xfa\x9c\xfd\x9c\xff\x9c\xf7\x9d\x07\x9d\x00\x9c\xf9\x9c\xfb\x9d\x08\x9d\x05\x9d\x04\x9e\x83\x9e\xd3\x9f\x0f\x9f\x10\x51\x1c\x51\x13\x51\x17\x51\x1a\x51\x11\x51\xde\x53\x34\x53\xe1\x56\x70\x56\x60\x56\x6e\x56\x73\x56\x66\x56\x63\x56\x6d\x56\x72\x56\x5e\x56\x77\x57\x1c\x57\x1b\x58\xc8\x58\xbd\x58\xc9\x58\xbf\x58\xba\x58\xc2\x58\xbc\x58\xc6\x5b\x17\x5b\x19\x5b\x1b\x5b\x21\x5b\x14\x5b\x13\x5b\x10\x5b\x16\x5b\x28\x5b\x1a\x5b\x20\x5b\x1e\x5b\xef\x5d\xac\x5d\xb1\x5d\xa9\x5d\xa7\x5d\xb5\x5d\xb0\x5d\xae\x5d\xaa\x5d\xa8\x5d\xb2\x5d\xad\x5d\xaf\x5d\xb4\x5e\x67\x5e\x68\x5e\x66\x5e\x6f\x5e\xe9\x5e\xe7\x5e\xe6\x5e\xe8\x5e\xe5\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4b\x5f\xbc\x61\x9d\x61\xa8\x61\x96\x61\xc5\x61\xb4\x61\xc6\x61\xc1\x61\xcc\x61\xba\x61\xbf\x61\xb8\x61\x8c\x64\xd7\x64\xd6\x64\xd0\x64\xcf\x64\xc9\x64\xbd\x64\x89\x64\xc3\x64\xdb\x64\xf3\x64\xd9\x65\x33\x65\x7f\x65\x7c\x65\xa2\x66\xc8\x66\xbe\x66\xc0\x66\xca\x66\xcb\x66\xcf\x66\xbd\x66\xbb\x66\xba\x66\xcc\x67\x23\x6a\x34\x6a\x66\x6a\x49\x6a\x67\x6a\x32\x6a\x68\x6a\x3e\x6a\x5d\x6a\x6d\x6a\x76\x6a\x5b\x6a\x51\x6a\x28\x6a\x5a\x6a\x3b\x6a\x3f\x6a\x41\x6a\x6a\x6a\x64\x6a\x50\x6a\x4f\x6a\x54\x6a\x6f", /* 8480 */ "\x00\x00\x6a\x69\x6a\x60\x6a\x3c\x6a\x5e\x6a\x56\x6a\x55\x6a\x4d\x6a\x4e\x6a\x46\x6b\x55\x6b\x54\x6b\x56\x6b\xa7\x6b\xaa\x6b\xab\x6b\xc8\x6b\xc7\x6c\x04\x6c\x03\x6c\x06\x6f\xad\x6f\xcb\x6f\xa3\x6f\xc7\x6f\xbc\x6f\xce\x6f\xc8\x6f\x5e\x6f\xc4\x6f\xbd\x6f\x9e\x6f\xca\x6f\xa8\x70\x04\x6f\xa5\x6f\xae\x6f\xba\x6f\xac\x6f\xaa\x6f\xcf\x6f\xbf\x6f\xb8\x6f\xa2\x6f\xc9\x6f\xab\x6f\xcd\x6f\xaf\x6f\xb2\x6f\xb0\x71\xc5\x71\xc2\x71\xbf\x71\xb8\x71\xd6\x71\xc0\x71\xc1\x71\xcb\x71\xd4\x71\xca\x71\xc7\x71\xcf\x71\xbd\x71\xd8\x71\xbc\x71\xc6\x71\xda\x71\xdb\x72\x9d\x72\x9e\x73\x69\x73\x66\x73\x67\x73\x6c\x73\x65\x73\x6b\x73\x6a\x74\x7f\x74\x9a\x74\xa0\x74\x94\x74\x92\x74\x95\x74\xa1\x75\x0b\x75\x80\x76\x2f\x76\x2d\x76\x31\x76\x3d\x76\x33\x76\x3c\x76\x35\x76\x32\x76\x30\x76\xbb\x76\xe6\x77\x9a\x77\x9d\x77\xa1\x77\x9c\x77\x9b\x77\xa2\x77\xa3\x77\x95\x77\x99\x77\x97\x78\xdd\x78\xe9\x78\xe5\x78\xea\x78\xde\x78\xe3\x78\xdb\x78\xe1\x78\xe2\x78\xed\x78\xdf\x78\xe0\x79\xa4\x7a\x44\x7a\x48\x7a\x47\x7a\xb6\x7a\xb8\x7a\xb5\x00\x00\x00\x00", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xb1\x7a\xb7\x7b\xde\x7b\xe3\x7b\xe7\x7b\xdd\x7b\xd5\x7b\xe5\x7b\xda\x7b\xe8\x7b\xf9\x7b\xd4\x7b\xea\x7b\xe2\x7b\xdc\x7b\xeb\x7b\xd8\x7b\xdf\x7c\xd2\x7c\xd4\x7c\xd7\x7c\xd0\x7c\xd1\x7e\x12\x7e\x21\x7e\x17\x7e\x0c\x7e\x1f\x7e\x20\x7e\x13\x7e\x0e\x7e\x1c\x7e\x15\x7e\x1a\x7e\x22\x7e\x0b\x7e\x0f\x7e\x16\x7e\x0d\x7e\x14\x7e\x25\x7e\x24\x7f\x43\x7f\x7b\x7f\x7c\x7f\x7a\x7f\xb1\x7f\xef\x80\x2a\x80\x29\x80\x6c\x81\xb1\x81\xa6\x81\xae\x81\xb9\x81\xb5\x81\xab\x81\xb0\x81\xac\x81\xb4\x81\xb2\x81\xb7\x81\xa7", /* 8580 */ "\x00\x00\x81\xf2\x82\x55\x82\x56\x82\x57\x85\x56\x85\x45\x85\x6b\x85\x4d\x85\x53\x85\x61\x85\x58\x85\x40\x85\x46\x85\x64\x85\x41\x85\x62\x85\x44\x85\x51\x85\x47\x85\x63\x85\x3e\x85\x5b\x85\x71\x85\x4e\x85\x6e\x85\x75\x85\x55\x85\x67\x85\x60\x85\x8c\x85\x66\x85\x5d\x85\x54\x85\x65\x85\x6c\x86\x63\x86\x65\x86\x64\x87\x9b\x87\x8f\x87\x97\x87\x93\x87\x92\x87\x88\x87\x81\x87\x96\x87\x98\x87\x79\x87\x87\x87\xa3\x87\x85\x87\x90\x87\x91\x87\x9d\x87\x84\x87\x94\x87\x9c\x87\x9a\x87\x89\x89\x1e\x89\x26\x89\x30\x89\x2d\x89\x2e\x89\x27\x89\x31\x89\x22\x89\x29\x89\x23\x89\x2f\x89\x2c\x89\x1f\x89\xf1\x8a\xe0\x8a\xe2\x8a\xf2\x8a\xf4\x8a\xf5\x8a\xdd\x8b\x14\x8a\xe4\x8a\xdf\x8a\xf0\x8a\xc8\x8a\xde\x8a\xe1\x8a\xe8\x8a\xff\x8a\xef\x8a\xfb\x8c\x91\x8c\x92\x8c\x90\x8c\xf5\x8c\xee\x8c\xf1\x8c\xf0\x8c\xf3\x8d\x6c\x8d\x6e\x8d\xa5\x8d\xa7\x8e\x33\x8e\x3e\x8e\x38\x8e\x40\x8e\x45\x8e\x36\x8e\x3c\x8e\x3d\x8e\x41\x8e\x30\x8e\x3f\x8e\xbd\x8f\x36\x8f\x2e\x8f\x35\x8f\x32\x8f\x39\x8f\x37\x8f\x34\x90\x76\x90\x79\x90\x7b\x90\x86\x00\x00\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xfa\x91\x33\x91\x35\x91\x36\x91\x93\x91\x90\x91\x91\x91\x8d\x91\x8f\x93\x27\x93\x1e\x93\x08\x93\x1f\x93\x06\x93\x0f\x93\x7a\x93\x38\x93\x3c\x93\x1b\x93\x23\x93\x12\x93\x01\x93\x46\x93\x2d\x93\x0e\x93\x0d\x92\xcb\x93\x1d\x92\xfa\x93\x25\x93\x13\x92\xf9\x92\xf7\x93\x34\x93\x02\x93\x24\x92\xff\x93\x29\x93\x39\x93\x35\x93\x2a\x93\x14\x93\x0c\x93\x0b\x92\xfe\x93\x09\x93\x00\x92\xfb\x93\x16\x95\xbc\x95\xcd\x95\xbe\x95\xb9\x95\xba\x95\xb6\x95\xbf\x95\xb5\x95\xbd\x96\xa9\x96\xd4\x97\x0b\x97\x12\x97\x10", /* 8680 */ "\x00\x00\x97\x99\x97\x97\x97\x94\x97\xf0\x97\xf8\x98\x35\x98\x2f\x98\x32\x99\x24\x99\x1f\x99\x27\x99\x29\x99\x9e\x99\xee\x99\xec\x99\xe5\x99\xe4\x99\xf0\x99\xe3\x99\xea\x99\xe9\x99\xe7\x9a\xb9\x9a\xbf\x9a\xb4\x9a\xbb\x9a\xf6\x9a\xfa\x9a\xf9\x9a\xf7\x9b\x33\x9b\x80\x9b\x85\x9b\x87\x9b\x7c\x9b\x7e\x9b\x7b\x9b\x82\x9b\x93\x9b\x92\x9b\x90\x9b\x7a\x9b\x95\x9b\x7d\x9b\x88\x9d\x25\x9d\x17\x9d\x20\x9d\x1e\x9d\x14\x9d\x29\x9d\x1d\x9d\x18\x9d\x22\x9d\x10\x9d\x19\x9d\x1f\x9e\x88\x9e\x86\x9e\x87\x9e\xae\x9e\xad\x9e\xd5\x9e\xd6\x9e\xfa\x9f\x12\x9f\x3d\x51\x26\x51\x25\x51\x22\x51\x24\x51\x20\x51\x29\x52\xf4\x56\x93\x56\x8c\x56\x8d\x56\x86\x56\x84\x56\x83\x56\x7e\x56\x82\x56\x7f\x56\x81\x58\xd6\x58\xd4\x58\xcf\x58\xd2\x5b\x2d\x5b\x25\x5b\x32\x5b\x23\x5b\x2c\x5b\x27\x5b\x26\x5b\x2f\x5b\x2e\x5b\x7b\x5b\xf1\x5b\xf2\x5d\xb7\x5e\x6c\x5e\x6a\x5f\xbe\x5f\xbb\x61\xc3\x61\xb5\x61\xbc\x61\xe7\x61\xe0\x61\xe5\x61\xe4\x61\xe8\x61\xde\x64\xef\x64\xe9\x64\xe3\x64\xeb\x64\xe4\x64\xe8\x65\x81\x65\x80\x65\xb6\x65\xda\x66\xd2\x00\x00\x00\x00", /* 8700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8d\x6a\x96\x6a\x81\x6a\xa5\x6a\x89\x6a\x9f\x6a\x9b\x6a\xa1\x6a\x9e\x6a\x87\x6a\x93\x6a\x8e\x6a\x95\x6a\x83\x6a\xa8\x6a\xa4\x6a\x91\x6a\x7f\x6a\xa6\x6a\x9a\x6a\x85\x6a\x8c\x6a\x92\x6b\x5b\x6b\xad\x6c\x09\x6f\xcc\x6f\xa9\x6f\xf4\x6f\xd4\x6f\xe3\x6f\xdc\x6f\xed\x6f\xe7\x6f\xe6\x6f\xde\x6f\xf2\x6f\xdd\x6f\xe2\x6f\xe8\x71\xe1\x71\xf1\x71\xe8\x71\xf2\x71\xe4\x71\xf0\x71\xe2\x73\x73\x73\x6e\x73\x6f\x74\x97\x74\xb2\x74\xab\x74\x90\x74\xaa\x74\xad\x74\xb1\x74\xa5\x74\xaf\x75\x10\x75\x11\x75\x12\x75\x0f", /* 8780 */ "\x00\x00\x75\x84\x76\x43\x76\x48\x76\x49\x76\x47\x76\xa4\x76\xe9\x77\xb5\x77\xab\x77\xb2\x77\xb7\x77\xb6\x77\xb4\x77\xb1\x77\xa8\x77\xf0\x78\xf3\x78\xfd\x79\x02\x78\xfb\x78\xfc\x78\xf2\x79\x05\x78\xf9\x78\xfe\x79\x04\x79\xab\x79\xa8\x7a\x5c\x7a\x5b\x7a\x56\x7a\x58\x7a\x54\x7a\x5a\x7a\xbe\x7a\xc0\x7a\xc1\x7c\x05\x7c\x0f\x7b\xf2\x7c\x00\x7b\xff\x7b\xfb\x7c\x0e\x7b\xf4\x7c\x0b\x7b\xf3\x7c\x02\x7c\x09\x7c\x03\x7c\x01\x7b\xf8\x7b\xfd\x7c\x06\x7b\xf0\x7b\xf1\x7c\x10\x7c\x0a\x7c\xe8\x7e\x2d\x7e\x3c\x7e\x42\x7e\x33\x98\x48\x7e\x38\x7e\x2a\x7e\x49\x7e\x40\x7e\x47\x7e\x29\x7e\x4c\x7e\x30\x7e\x3b\x7e\x36\x7e\x44\x7e\x3a\x7f\x45\x7f\x7f\x7f\x7e\x7f\x7d\x7f\xf4\x7f\xf2\x80\x2c\x81\xbb\x81\xc4\x81\xcc\x81\xca\x81\xc5\x81\xc7\x81\xbc\x81\xe9\x82\x5b\x82\x5a\x82\x5c\x85\x83\x85\x80\x85\x8f\x85\xa7\x85\x95\x85\xa0\x85\x8b\x85\xa3\x85\x7b\x85\xa4\x85\x9a\x85\x9e\x85\x77\x85\x7c\x85\x89\x85\xa1\x85\x7a\x85\x78\x85\x57\x85\x8e\x85\x96\x85\x86\x85\x8d\x85\x99\x85\x9d\x85\x81\x85\xa2\x85\x82\x85\x88\x85\x85\x85\x79\x00\x00\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x76\x85\x98\x85\x90\x85\x9f\x86\x68\x87\xbe\x87\xaa\x87\xad\x87\xc5\x87\xb0\x87\xac\x87\xb9\x87\xb5\x87\xbc\x87\xae\x87\xc9\x87\xc3\x87\xc2\x87\xcc\x87\xb7\x87\xaf\x87\xc4\x87\xca\x87\xb4\x87\xb6\x87\xbf\x87\xb8\x87\xbd\x87\xde\x87\xb2\x89\x35\x89\x33\x89\x3c\x89\x3e\x89\x41\x89\x52\x89\x37\x89\x42\x89\xad\x89\xaf\x89\xae\x89\xf2\x89\xf3\x8b\x1e\x8b\x18\x8b\x16\x8b\x11\x8b\x05\x8b\x0b\x8b\x22\x8b\x0f\x8b\x12\x8b\x15\x8b\x07\x8b\x0d\x8b\x08\x8b\x06\x8b\x1c\x8b\x13\x8b\x1a\x8c\x4f\x8c\x70\x8c\x72", /* 8880 */ "\x00\x00\x8c\x71\x8c\x6f\x8c\x95\x8c\x94\x8c\xf9\x8d\x6f\x8e\x4e\x8e\x4d\x8e\x53\x8e\x50\x8e\x4c\x8e\x47\x8f\x43\x8f\x40\x90\x85\x90\x7e\x91\x38\x91\x9a\x91\xa2\x91\x9b\x91\x99\x91\x9f\x91\xa1\x91\x9d\x91\xa0\x93\xa1\x93\x83\x93\xaf\x93\x64\x93\x56\x93\x47\x93\x7c\x93\x58\x93\x5c\x93\x76\x93\x49\x93\x50\x93\x51\x93\x60\x93\x6d\x93\x8f\x93\x4c\x93\x6a\x93\x79\x93\x57\x93\x55\x93\x52\x93\x4f\x93\x71\x93\x77\x93\x7b\x93\x61\x93\x5e\x93\x63\x93\x67\x93\x80\x93\x4e\x93\x59\x95\xc7\x95\xc0\x95\xc9\x95\xc3\x95\xc5\x95\xb7\x96\xae\x96\xb0\x96\xac\x97\x20\x97\x1f\x97\x18\x97\x1d\x97\x19\x97\x9a\x97\xa1\x97\x9c\x97\x9e\x97\x9d\x97\xd5\x97\xd4\x97\xf1\x98\x41\x98\x44\x98\x4a\x98\x49\x98\x45\x98\x43\x99\x25\x99\x2b\x99\x2c\x99\x2a\x99\x33\x99\x32\x99\x2f\x99\x2d\x99\x31\x99\x30\x99\x98\x99\xa3\x99\xa1\x9a\x02\x99\xfa\x99\xf4\x99\xf7\x99\xf9\x99\xf8\x99\xf6\x99\xfb\x99\xfd\x99\xfe\x99\xfc\x9a\x03\x9a\xbe\x9a\xfe\x9a\xfd\x9b\x01\x9a\xfc\x9b\x48\x9b\x9a\x9b\xa8\x9b\x9e\x9b\x9b\x9b\xa6\x9b\xa1\x9b\xa5\x9b\xa4\x00\x00\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x86\x9b\xa2\x9b\xa0\x9b\xaf\x9d\x33\x9d\x41\x9d\x67\x9d\x36\x9d\x2e\x9d\x2f\x9d\x31\x9d\x38\x9d\x30\x9d\x45\x9d\x42\x9d\x43\x9d\x3e\x9d\x37\x9d\x40\x9d\x3d\x7f\xf5\x9d\x2d\x9e\x8a\x9e\x89\x9e\x8d\x9e\xb0\x9e\xc8\x9e\xda\x9e\xfb\x9e\xff\x9f\x24\x9f\x23\x9f\x22\x9f\x54\x9f\xa0\x51\x31\x51\x2d\x51\x2e\x56\x98\x56\x9c\x56\x97\x56\x9a\x56\x9d\x56\x99\x59\x70\x5b\x3c\x5c\x69\x5c\x6a\x5d\xc0\x5e\x6d\x5e\x6e\x61\xd8\x61\xdf\x61\xed\x61\xee\x61\xf1\x61\xea\x61\xf0\x61\xeb\x61\xd6\x61\xe9\x64\xff\x65\x04", /* 8980 */ "\x00\x00\x64\xfd\x64\xf8\x65\x01\x65\x03\x64\xfc\x65\x94\x65\xdb\x66\xda\x66\xdb\x66\xd8\x6a\xc5\x6a\xb9\x6a\xbd\x6a\xe1\x6a\xc6\x6a\xba\x6a\xb6\x6a\xb7\x6a\xc7\x6a\xb4\x6a\xad\x6b\x5e\x6b\xc9\x6c\x0b\x70\x07\x70\x0c\x70\x0d\x70\x01\x70\x05\x70\x14\x70\x0e\x6f\xff\x70\x00\x6f\xfb\x70\x26\x6f\xfc\x6f\xf7\x70\x0a\x72\x01\x71\xff\x71\xf9\x72\x03\x71\xfd\x73\x76\x74\xb8\x74\xc0\x74\xb5\x74\xc1\x74\xbe\x74\xb6\x74\xbb\x74\xc2\x75\x14\x75\x13\x76\x5c\x76\x64\x76\x59\x76\x50\x76\x53\x76\x57\x76\x5a\x76\xa6\x76\xbd\x76\xec\x77\xc2\x77\xba\x78\xff\x79\x0c\x79\x13\x79\x14\x79\x09\x79\x10\x79\x12\x79\x11\x79\xad\x79\xac\x7a\x5f\x7c\x1c\x7c\x29\x7c\x19\x7c\x20\x7c\x1f\x7c\x2d\x7c\x1d\x7c\x26\x7c\x28\x7c\x22\x7c\x25\x7c\x30\x7e\x5c\x7e\x50\x7e\x56\x7e\x63\x7e\x58\x7e\x62\x7e\x5f\x7e\x51\x7e\x60\x7e\x57\x7e\x53\x7f\xb5\x7f\xb3\x7f\xf7\x7f\xf8\x80\x75\x81\xd1\x81\xd2\x81\xd0\x82\x5f\x82\x5e\x85\xb4\x85\xc6\x85\xc0\x85\xc3\x85\xc2\x85\xb3\x85\xb5\x85\xbd\x85\xc7\x85\xc4\x85\xbf\x85\xcb\x85\xce\x85\xc8\x85\xc5\x00\x00\x00\x00", /* 8a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\xb1\x85\xb6\x85\xd2\x86\x24\x85\xb8\x85\xb7\x85\xbe\x86\x69\x87\xe7\x87\xe6\x87\xe2\x87\xdb\x87\xeb\x87\xea\x87\xe5\x87\xdf\x87\xf3\x87\xe4\x87\xd4\x87\xdc\x87\xd3\x87\xed\x87\xd8\x87\xe3\x87\xa4\x87\xd7\x87\xd9\x88\x01\x87\xf4\x87\xe8\x87\xdd\x89\x53\x89\x4b\x89\x4f\x89\x4c\x89\x46\x89\x50\x89\x51\x89\x49\x8b\x2a\x8b\x27\x8b\x23\x8b\x33\x8b\x30\x8b\x35\x8b\x47\x8b\x2f\x8b\x3c\x8b\x3e\x8b\x31\x8b\x25\x8b\x37\x8b\x26\x8b\x36\x8b\x2e\x8b\x24\x8b\x3b\x8b\x3d\x8b\x3a\x8c\x42\x8c\x75\x8c\x99\x8c\x98", /* 8a80 */ "\x00\x00\x8c\x97\x8c\xfe\x8d\x04\x8d\x02\x8d\x00\x8e\x5c\x8e\x62\x8e\x60\x8e\x57\x8e\x56\x8e\x5e\x8e\x65\x8e\x67\x8e\x5b\x8e\x5a\x8e\x61\x8e\x5d\x8e\x69\x8e\x54\x8f\x46\x8f\x47\x8f\x48\x8f\x4b\x91\x28\x91\x3a\x91\x3b\x91\x3e\x91\xa8\x91\xa5\x91\xa7\x91\xaf\x91\xaa\x93\xb5\x93\x8c\x93\x92\x93\xb7\x93\x9b\x93\x9d\x93\x89\x93\xa7\x93\x8e\x93\xaa\x93\x9e\x93\xa6\x93\x95\x93\x88\x93\x99\x93\x9f\x93\x8d\x93\xb1\x93\x91\x93\xb2\x93\xa4\x93\xa8\x93\xb4\x93\xa3\x93\xa5\x95\xd2\x95\xd3\x95\xd1\x96\xb3\x96\xd7\x96\xda\x5d\xc2\x96\xdf\x96\xd8\x96\xdd\x97\x23\x97\x22\x97\x25\x97\xac\x97\xae\x97\xa8\x97\xab\x97\xa4\x97\xaa\x97\xa2\x97\xa5\x97\xd7\x97\xd9\x97\xd6\x97\xd8\x97\xfa\x98\x50\x98\x51\x98\x52\x98\xb8\x99\x41\x99\x3c\x99\x3a\x9a\x0f\x9a\x0b\x9a\x09\x9a\x0d\x9a\x04\x9a\x11\x9a\x0a\x9a\x05\x9a\x07\x9a\x06\x9a\xc0\x9a\xdc\x9b\x08\x9b\x04\x9b\x05\x9b\x29\x9b\x35\x9b\x4a\x9b\x4c\x9b\x4b\x9b\xc7\x9b\xc6\x9b\xc3\x9b\xbf\x9b\xc1\x9b\xb5\x9b\xb8\x9b\xd3\x9b\xb6\x9b\xc4\x9b\xb9\x9b\xbd\x9d\x5c\x9d\x53\x9d\x4f\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x4a\x9d\x5b\x9d\x4b\x9d\x59\x9d\x56\x9d\x4c\x9d\x57\x9d\x52\x9d\x54\x9d\x5f\x9d\x58\x9d\x5a\x9e\x8e\x9e\x8c\x9e\xdf\x9f\x01\x9f\x00\x9f\x16\x9f\x25\x9f\x2b\x9f\x2a\x9f\x29\x9f\x28\x9f\x4c\x9f\x55\x51\x34\x51\x35\x52\x96\x52\xf7\x53\xb4\x56\xab\x56\xad\x56\xa6\x56\xa7\x56\xaa\x56\xac\x58\xda\x58\xdd\x58\xdb\x59\x12\x5b\x3d\x5b\x3e\x5b\x3f\x5d\xc3\x5e\x70\x5f\xbf\x61\xfb\x65\x07\x65\x10\x65\x0d\x65\x09\x65\x0c\x65\x0e\x65\x84\x65\xde\x65\xdd\x66\xde\x6a\xe7\x6a\xe0\x6a\xcc\x6a\xd1\x6a\xd9\x6a\xcb", /* 8b80 */ "\x00\x00\x6a\xdf\x6a\xdc\x6a\xd0\x6a\xeb\x6a\xcf\x6a\xcd\x6a\xde\x6b\x60\x6b\xb0\x6c\x0c\x70\x19\x70\x27\x70\x20\x70\x16\x70\x2b\x70\x21\x70\x22\x70\x23\x70\x29\x70\x17\x70\x24\x70\x1c\x70\x2a\x72\x0c\x72\x0a\x72\x07\x72\x02\x72\x05\x72\xa5\x72\xa6\x72\xa4\x72\xa3\x72\xa1\x74\xcb\x74\xc5\x74\xb7\x74\xc3\x75\x16\x76\x60\x77\xc9\x77\xca\x77\xc4\x77\xf1\x79\x1d\x79\x1b\x79\x21\x79\x1c\x79\x17\x79\x1e\x79\xb0\x7a\x67\x7a\x68\x7c\x33\x7c\x3c\x7c\x39\x7c\x2c\x7c\x3b\x7c\xec\x7c\xea\x7e\x76\x7e\x75\x7e\x78\x7e\x70\x7e\x77\x7e\x6f\x7e\x7a\x7e\x72\x7e\x74\x7e\x68\x7f\x4b\x7f\x4a\x7f\x83\x7f\x86\x7f\xb7\x7f\xfd\x7f\xfe\x80\x78\x81\xd7\x81\xd5\x82\x64\x82\x61\x82\x63\x85\xeb\x85\xf1\x85\xed\x85\xd9\x85\xe1\x85\xe8\x85\xda\x85\xd7\x85\xec\x85\xf2\x85\xf8\x85\xd8\x85\xdf\x85\xe3\x85\xdc\x85\xd1\x85\xf0\x85\xe6\x85\xef\x85\xde\x85\xe2\x88\x00\x87\xfa\x88\x03\x87\xf6\x87\xf7\x88\x09\x88\x0c\x88\x0b\x88\x06\x87\xfc\x88\x08\x87\xff\x88\x0a\x88\x02\x89\x62\x89\x5a\x89\x5b\x89\x57\x89\x61\x89\x5c\x89\x58\x89\x5d\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x59\x89\x88\x89\xb7\x89\xb6\x89\xf6\x8b\x50\x8b\x48\x8b\x4a\x8b\x40\x8b\x53\x8b\x56\x8b\x54\x8b\x4b\x8b\x55\x8b\x51\x8b\x42\x8b\x52\x8b\x57\x8c\x43\x8c\x77\x8c\x76\x8c\x9a\x8d\x06\x8d\x07\x8d\x09\x8d\xac\x8d\xaa\x8d\xad\x8d\xab\x8e\x6d\x8e\x78\x8e\x73\x8e\x6a\x8e\x6f\x8e\x7b\x8e\xc2\x8f\x52\x8f\x51\x8f\x4f\x8f\x50\x8f\x53\x8f\xb4\x91\x40\x91\x3f\x91\xb0\x91\xad\x93\xde\x93\xc7\x93\xcf\x93\xc2\x93\xda\x93\xd0\x93\xf9\x93\xec\x93\xcc\x93\xd9\x93\xa9\x93\xe6\x93\xca\x93\xd4\x93\xee\x93\xe3\x93\xd5", /* 8c80 */ "\x00\x00\x93\xc4\x93\xce\x93\xc0\x93\xd2\x93\xe7\x95\x7d\x95\xda\x95\xdb\x96\xe1\x97\x29\x97\x2b\x97\x2c\x97\x28\x97\x26\x97\xb3\x97\xb7\x97\xb6\x97\xdd\x97\xde\x97\xdf\x98\x5c\x98\x59\x98\x5d\x98\x57\x98\xbf\x98\xbd\x98\xbb\x98\xbe\x99\x48\x99\x47\x99\x43\x99\xa6\x99\xa7\x9a\x1a\x9a\x15\x9a\x25\x9a\x1d\x9a\x24\x9a\x1b\x9a\x22\x9a\x20\x9a\x27\x9a\x23\x9a\x1e\x9a\x1c\x9a\x14\x9a\xc2\x9b\x0b\x9b\x0a\x9b\x0e\x9b\x0c\x9b\x37\x9b\xea\x9b\xeb\x9b\xe0\x9b\xde\x9b\xe4\x9b\xe6\x9b\xe2\x9b\xf0\x9b\xd4\x9b\xd7\x9b\xec\x9b\xdc\x9b\xd9\x9b\xe5\x9b\xd5\x9b\xe1\x9b\xda\x9d\x77\x9d\x81\x9d\x8a\x9d\x84\x9d\x88\x9d\x71\x9d\x80\x9d\x78\x9d\x86\x9d\x8b\x9d\x8c\x9d\x7d\x9d\x6b\x9d\x74\x9d\x75\x9d\x70\x9d\x69\x9d\x85\x9d\x73\x9d\x7b\x9d\x82\x9d\x6f\x9d\x79\x9d\x7f\x9d\x87\x9d\x68\x9e\x94\x9e\x91\x9e\xc0\x9e\xfc\x9f\x2d\x9f\x40\x9f\x41\x9f\x4d\x9f\x56\x9f\x57\x9f\x58\x53\x37\x56\xb2\x56\xb5\x56\xb3\x58\xe3\x5b\x45\x5d\xc6\x5d\xc7\x5e\xee\x5e\xef\x5f\xc0\x5f\xc1\x61\xf9\x65\x17\x65\x16\x65\x15\x65\x13\x65\xdf\x66\xe8\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe3\x66\xe4\x6a\xf3\x6a\xf0\x6a\xea\x6a\xe8\x6a\xf9\x6a\xf1\x6a\xee\x6a\xef\x70\x3c\x70\x35\x70\x2f\x70\x37\x70\x34\x70\x31\x70\x42\x70\x38\x70\x3f\x70\x3a\x70\x39\x70\x40\x70\x3b\x70\x33\x70\x41\x72\x13\x72\x14\x72\xa8\x73\x7d\x73\x7c\x74\xba\x76\xab\x76\xaa\x76\xbe\x76\xed\x77\xcc\x77\xce\x77\xcf\x77\xcd\x77\xf2\x79\x25\x79\x23\x79\x27\x79\x28\x79\x24\x79\x29\x79\xb2\x7a\x6e\x7a\x6c\x7a\x6d\x7a\xf7\x7c\x49\x7c\x48\x7c\x4a\x7c\x47\x7c\x45\x7c\xee\x7e\x7b\x7e\x7e\x7e\x81\x7e\x80\x7f\xba\x7f\xff", /* 8d80 */ "\x00\x00\x80\x79\x81\xdb\x81\xd9\x82\x0b\x82\x68\x82\x69\x86\x22\x85\xff\x86\x01\x85\xfe\x86\x1b\x86\x00\x85\xf6\x86\x04\x86\x09\x86\x05\x86\x0c\x85\xfd\x88\x19\x88\x10\x88\x11\x88\x17\x88\x13\x88\x16\x89\x63\x89\x66\x89\xb9\x89\xf7\x8b\x60\x8b\x6a\x8b\x5d\x8b\x68\x8b\x63\x8b\x65\x8b\x67\x8b\x6d\x8d\xae\x8e\x86\x8e\x88\x8e\x84\x8f\x59\x8f\x56\x8f\x57\x8f\x55\x8f\x58\x8f\x5a\x90\x8d\x91\x43\x91\x41\x91\xb7\x91\xb5\x91\xb2\x91\xb3\x94\x0b\x94\x13\x93\xfb\x94\x20\x94\x0f\x94\x14\x93\xfe\x94\x15\x94\x10\x94\x28\x94\x19\x94\x0d\x93\xf5\x94\x00\x93\xf7\x94\x07\x94\x0e\x94\x16\x94\x12\x93\xfa\x94\x09\x93\xf8\x94\x0a\x93\xff\x93\xfc\x94\x0c\x93\xf6\x94\x11\x94\x06\x95\xde\x95\xe0\x95\xdf\x97\x2e\x97\x2f\x97\xb9\x97\xbb\x97\xfd\x97\xfe\x98\x60\x98\x62\x98\x63\x98\x5f\x98\xc1\x98\xc2\x99\x50\x99\x4e\x99\x59\x99\x4c\x99\x4b\x99\x53\x9a\x32\x9a\x34\x9a\x31\x9a\x2c\x9a\x2a\x9a\x36\x9a\x29\x9a\x2e\x9a\x38\x9a\x2d\x9a\xc7\x9a\xca\x9a\xc6\x9b\x10\x9b\x12\x9b\x11\x9c\x0b\x9c\x08\x9b\xf7\x9c\x05\x9c\x12\x9b\xf8\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x40\x9c\x07\x9c\x0e\x9c\x06\x9c\x17\x9c\x14\x9c\x09\x9d\x9f\x9d\x99\x9d\xa4\x9d\x9d\x9d\x92\x9d\x98\x9d\x90\x9d\x9b\x9d\xa0\x9d\x94\x9d\x9c\x9d\xaa\x9d\x97\x9d\xa1\x9d\x9a\x9d\xa2\x9d\xa8\x9d\x9e\x9d\xa3\x9d\xbf\x9d\xa9\x9d\x96\x9d\xa6\x9d\xa7\x9e\x99\x9e\x9b\x9e\x9a\x9e\xe5\x9e\xe4\x9e\xe7\x9e\xe6\x9f\x30\x9f\x2e\x9f\x5b\x9f\x60\x9f\x5e\x9f\x5d\x9f\x59\x9f\x91\x51\x3a\x51\x39\x52\x98\x52\x97\x56\xc3\x56\xbd\x56\xbe\x5b\x48\x5b\x47\x5d\xcb\x5d\xcf\x5e\xf1\x61\xfd\x65\x1b\x6b\x02\x6a\xfc\x6b\x03", /* 8e80 */ "\x00\x00\x6a\xf8\x6b\x00\x70\x43\x70\x44\x70\x4a\x70\x48\x70\x49\x70\x45\x70\x46\x72\x1d\x72\x1a\x72\x19\x73\x7e\x75\x17\x76\x6a\x77\xd0\x79\x2d\x79\x31\x79\x2f\x7c\x54\x7c\x53\x7c\xf2\x7e\x8a\x7e\x87\x7e\x88\x7e\x8b\x7e\x86\x7e\x8d\x7f\x4d\x7f\xbb\x80\x30\x81\xdd\x86\x18\x86\x2a\x86\x26\x86\x1f\x86\x23\x86\x1c\x86\x19\x86\x27\x86\x2e\x86\x21\x86\x20\x86\x29\x86\x1e\x86\x25\x88\x29\x88\x1d\x88\x1b\x88\x20\x88\x24\x88\x1c\x88\x2b\x88\x4a\x89\x6d\x89\x69\x89\x6e\x89\x6b\x89\xfa\x8b\x79\x8b\x78\x8b\x45\x8b\x7a\x8b\x7b\x8d\x10\x8d\x14\x8d\xaf\x8e\x8e\x8e\x8c\x8f\x5e\x8f\x5b\x8f\x5d\x91\x46\x91\x44\x91\x45\x91\xb9\x94\x3f\x94\x3b\x94\x36\x94\x29\x94\x3d\x94\x3c\x94\x30\x94\x39\x94\x2a\x94\x37\x94\x2c\x94\x40\x94\x31\x95\xe5\x95\xe4\x95\xe3\x97\x35\x97\x3a\x97\xbf\x97\xe1\x98\x64\x98\xc9\x98\xc6\x98\xc0\x99\x58\x99\x56\x9a\x39\x9a\x3d\x9a\x46\x9a\x44\x9a\x42\x9a\x41\x9a\x3a\x9a\x3f\x9a\xcd\x9b\x15\x9b\x17\x9b\x18\x9b\x16\x9b\x3a\x9b\x52\x9c\x2b\x9c\x1d\x9c\x1c\x9c\x2c\x9c\x23\x9c\x28\x9c\x29\x9c\x24\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x21\x9d\xb7\x9d\xb6\x9d\xbc\x9d\xc1\x9d\xc7\x9d\xca\x9d\xcf\x9d\xbe\x9d\xc5\x9d\xc3\x9d\xbb\x9d\xb5\x9d\xce\x9d\xb9\x9d\xba\x9d\xac\x9d\xc8\x9d\xb1\x9d\xad\x9d\xcc\x9d\xb3\x9d\xcd\x9d\xb2\x9e\x7a\x9e\x9c\x9e\xeb\x9e\xee\x9e\xed\x9f\x1b\x9f\x18\x9f\x1a\x9f\x31\x9f\x4e\x9f\x65\x9f\x64\x9f\x92\x4e\xb9\x56\xc6\x56\xc5\x56\xcb\x59\x71\x5b\x4b\x5b\x4c\x5d\xd5\x5d\xd1\x5e\xf2\x65\x21\x65\x20\x65\x26\x65\x22\x6b\x0b\x6b\x08\x6b\x09\x6c\x0d\x70\x55\x70\x56\x70\x57\x70\x52\x72\x1e\x72\x1f\x72\xa9\x73\x7f", /* 8f80 */ "\x00\x00\x74\xd8\x74\xd5\x74\xd9\x74\xd7\x76\x6d\x76\xad\x79\x35\x79\xb4\x7a\x70\x7a\x71\x7c\x57\x7c\x5c\x7c\x59\x7c\x5b\x7c\x5a\x7c\xf4\x7c\xf1\x7e\x91\x7f\x4f\x7f\x87\x81\xde\x82\x6b\x86\x34\x86\x35\x86\x33\x86\x2c\x86\x32\x86\x36\x88\x2c\x88\x28\x88\x26\x88\x2a\x88\x25\x89\x71\x89\xbf\x89\xbe\x89\xfb\x8b\x7e\x8b\x84\x8b\x82\x8b\x86\x8b\x85\x8b\x7f\x8d\x15\x8e\x95\x8e\x94\x8e\x9a\x8e\x92\x8e\x90\x8e\x96\x8e\x97\x8f\x60\x8f\x62\x91\x47\x94\x4c\x94\x50\x94\x4a\x94\x4b\x94\x4f\x94\x47\x94\x45\x94\x48\x94\x49\x94\x46\x97\x3f\x97\xe3\x98\x6a\x98\x69\x98\xcb\x99\x54\x99\x5b\x9a\x4e\x9a\x53\x9a\x54\x9a\x4c\x9a\x4f\x9a\x48\x9a\x4a\x9a\x49\x9a\x52\x9a\x50\x9a\xd0\x9b\x19\x9b\x2b\x9b\x3b\x9b\x56\x9b\x55\x9c\x46\x9c\x48\x9c\x3f\x9c\x44\x9c\x39\x9c\x33\x9c\x41\x9c\x3c\x9c\x37\x9c\x34\x9c\x32\x9c\x3d\x9c\x36\x9d\xdb\x9d\xd2\x9d\xde\x9d\xda\x9d\xcb\x9d\xd0\x9d\xdc\x9d\xd1\x9d\xdf\x9d\xe9\x9d\xd9\x9d\xd8\x9d\xd6\x9d\xf5\x9d\xd5\x9d\xdd\x9e\xb6\x9e\xf0\x9f\x35\x9f\x33\x9f\x32\x9f\x42\x9f\x6b\x9f\x95\x9f\xa2\x00\x00\x00\x00", /* 9000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x3d\x52\x99\x58\xe8\x58\xe7\x59\x72\x5b\x4d\x5d\xd8\x88\x2f\x5f\x4f\x62\x01\x62\x03\x62\x04\x65\x29\x65\x25\x65\x96\x66\xeb\x6b\x11\x6b\x12\x6b\x0f\x6b\xca\x70\x5b\x70\x5a\x72\x22\x73\x82\x73\x81\x73\x83\x76\x70\x77\xd4\x7c\x67\x7c\x66\x7e\x95\x82\x6c\x86\x3a\x86\x40\x86\x39\x86\x3c\x86\x31\x86\x3b\x86\x3e\x88\x30\x88\x32\x88\x2e\x88\x33\x89\x76\x89\x74\x89\x73\x89\xfe\x8b\x8c\x8b\x8e\x8b\x8b\x8b\x88\x8c\x45\x8d\x19\x8e\x98\x8f\x64\x8f\x63\x91\xbc\x94\x62\x94\x55\x94\x5d\x94\x57\x94\x5e\x97\xc4", /* 9080 */ "\x00\x00\x97\xc5\x98\x00\x9a\x56\x9a\x59\x9b\x1e\x9b\x1f\x9b\x20\x9c\x52\x9c\x58\x9c\x50\x9c\x4a\x9c\x4d\x9c\x4b\x9c\x55\x9c\x59\x9c\x4c\x9c\x4e\x9d\xfb\x9d\xf7\x9d\xef\x9d\xe3\x9d\xeb\x9d\xf8\x9d\xe4\x9d\xf6\x9d\xe1\x9d\xee\x9d\xe6\x9d\xf2\x9d\xf0\x9d\xe2\x9d\xec\x9d\xf4\x9d\xf3\x9d\xe8\x9d\xed\x9e\xc2\x9e\xd0\x9e\xf2\x9e\xf3\x9f\x06\x9f\x1c\x9f\x38\x9f\x37\x9f\x36\x9f\x43\x9f\x4f\x9f\x71\x9f\x70\x9f\x6e\x9f\x6f\x56\xd3\x56\xcd\x5b\x4e\x5c\x6d\x65\x2d\x66\xed\x66\xee\x6b\x13\x70\x5f\x70\x61\x70\x5d\x70\x60\x72\x23\x74\xdb\x74\xe5\x77\xd5\x79\x38\x79\xb7\x79\xb6\x7c\x6a\x7e\x97\x7f\x89\x82\x6d\x86\x43\x88\x38\x88\x37\x88\x35\x88\x4b\x8b\x94\x8b\x95\x8e\x9e\x8e\x9f\x8e\xa0\x8e\x9d\x91\xbe\x91\xbd\x91\xc2\x94\x6b\x94\x68\x94\x69\x96\xe5\x97\x46\x97\x43\x97\x47\x97\xc7\x97\xe5\x9a\x5e\x9a\xd5\x9b\x59\x9c\x63\x9c\x67\x9c\x66\x9c\x62\x9c\x5e\x9c\x60\x9e\x02\x9d\xfe\x9e\x07\x9e\x03\x9e\x06\x9e\x05\x9e\x00\x9e\x01\x9e\x09\x9d\xff\x9d\xfd\x9e\x04\x9e\xa0\x9f\x1e\x9f\x46\x9f\x74\x9f\x75\x9f\x76\x56\xd4\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x2e\x65\xb8\x6b\x18\x6b\x19\x6b\x17\x6b\x1a\x70\x62\x72\x26\x72\xaa\x77\xd8\x77\xd9\x79\x39\x7c\x69\x7c\x6b\x7c\xf6\x7e\x9a\x7e\x98\x7e\x9b\x7e\x99\x81\xe0\x81\xe1\x86\x46\x86\x47\x86\x48\x89\x79\x89\x7a\x89\x7c\x89\x7b\x89\xff\x8b\x98\x8b\x99\x8e\xa5\x8e\xa4\x8e\xa3\x94\x6e\x94\x6d\x94\x6f\x94\x71\x94\x73\x97\x49\x98\x72\x99\x5f\x9c\x68\x9c\x6e\x9c\x6d\x9e\x0b\x9e\x0d\x9e\x10\x9e\x0f\x9e\x12\x9e\x11\x9e\xa1\x9e\xf5\x9f\x09\x9f\x47\x9f\x78\x9f\x7b\x9f\x7a\x9f\x79\x57\x1e\x70\x66\x7c\x6f\x88\x3c", /* 9180 */ "\x00\x00\x8d\xb2\x8e\xa6\x91\xc3\x94\x74\x94\x78\x94\x76\x94\x75\x9a\x60\x9c\x74\x9c\x73\x9c\x71\x9c\x75\x9e\x14\x9e\x13\x9e\xf6\x9f\x0a\x9f\xa4\x70\x68\x70\x65\x7c\xf7\x86\x6a\x88\x3e\x88\x3d\x88\x3f\x8b\x9e\x8c\x9c\x8e\xa9\x8e\xc9\x97\x4b\x98\x73\x98\x74\x98\xcc\x99\x61\x99\xab\x9a\x64\x9a\x66\x9a\x67\x9b\x24\x9e\x15\x9e\x17\x9f\x48\x62\x07\x6b\x1e\x72\x27\x86\x4c\x8e\xa8\x94\x82\x94\x80\x94\x81\x9a\x69\x9a\x68\x9b\x2e\x9e\x19\x72\x29\x86\x4b\x8b\x9f\x94\x83\x9c\x79\x9e\xb7\x76\x75\x9a\x6b\x9c\x7a\x9e\x1d\x70\x69\x70\x6a\x9e\xa4\x9f\x7e\x9f\x49\x9f\x98\x69\x1e\x6e\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* c280 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* c300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* c380 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* c400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* c480 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* c500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* c580 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* c600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* c680 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* c700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* c780 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* c800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* c880 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* c900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* c980 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* ca00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* ca80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* cb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* cb80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* cc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96", /* cc80 */ "\x00\x00\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xe7\xa8\xe7\xa9\xe7\xaa\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe7\xff\xe8\x00\xe8\x01\xe8\x02\xe8\x03\xe8\x04\xe8\x05\xe8\x06\xe8\x07\xe8\x08\xe8\x09\xe8\x0a\xe8\x0b\xe8\x0c\xe8\x0d\xe8\x0e\xe8\x0f\xe8\x10\xe8\x11\xe8\x12\xe8\x13\x00\x00\x00\x00", /* cd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x14\xe8\x15\xe8\x16\xe8\x17\xe8\x18\xe8\x19\xe8\x1a\xe8\x1b\xe8\x1c\xe8\x1d\xe8\x1e\xe8\x1f\xe8\x20\xe8\x21\xe8\x22\xe8\x23\xe8\x24\xe8\x25\xe8\x26\xe8\x27\xe8\x28\xe8\x29\xe8\x2a\xe8\x2b\xe8\x2c\xe8\x2d\xe8\x2e\xe8\x2f\xe8\x30\xe8\x31\xe8\x32\xe8\x33\xe8\x34\xe8\x35\xe8\x36\xe8\x37\xe8\x38\xe8\x39\xe8\x3a\xe8\x3b\xe8\x3c\xe8\x3d\xe8\x3e\xe8\x3f\xe8\x40\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52", /* cd80 */ "\x00\x00\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\x00\x00\x00\x00", /* ce00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe8\xff\xe9\x00\xe9\x01\xe9\x02\xe9\x03\xe9\x04\xe9\x05\xe9\x06\xe9\x07\xe9\x08\xe9\x09\xe9\x0a\xe9\x0b\xe9\x0c\xe9\x0d\xe9\x0e", /* ce80 */ "\x00\x00\xe9\x0f\xe9\x10\xe9\x11\xe9\x12\xe9\x13\xe9\x14\xe9\x15\xe9\x16\xe9\x17\xe9\x18\xe9\x19\xe9\x1a\xe9\x1b\xe9\x1c\xe9\x1d\xe9\x1e\xe9\x1f\xe9\x20\xe9\x21\xe9\x22\xe9\x23\xe9\x24\xe9\x25\xe9\x26\xe9\x27\xe9\x28\xe9\x29\xe9\x2a\xe9\x2b\xe9\x2c\xe9\x2d\xe9\x2e\xe9\x2f\xe9\x30\xe9\x31\xe9\x32\xe9\x33\xe9\x34\xe9\x35\xe9\x36\xe9\x37\xe9\x38\xe9\x39\xe9\x3a\xe9\x3b\xe9\x3c\xe9\x3d\xe9\x3e\xe9\x3f\xe9\x40\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xe9\x58\xe9\x59\xe9\x5a\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\x00\x00\x00\x00", /* cf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca", /* cf80 */ "\x00\x00\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xe9\xff\xea\x00\xea\x01\xea\x02\xea\x03\xea\x04\xea\x05\xea\x06\xea\x07\xea\x08\xea\x09\xea\x0a\xea\x0b\xea\x0c\xea\x0d\xea\x0e\xea\x0f\xea\x10\xea\x11\xea\x12\xea\x13\xea\x14\xea\x15\xea\x16\xea\x17\xea\x18\xea\x19\xea\x1a\xea\x1b\xea\x1c\xea\x1d\xea\x1e\xea\x1f\xea\x20\xea\x21\xea\x22\xea\x23\xea\x24\xea\x25\xea\x26\xea\x27\xea\x28\xea\x29\xea\x2a\xea\x2b\xea\x2c\xea\x2d\xea\x2e\xea\x2f\xea\x30\xea\x31\xea\x32\xea\x33\xea\x34\xea\x35\xea\x36\xea\x37\xea\x38\xea\x39\xea\x3a\xea\x3b\xea\x3c\xea\x3d\xea\x3e\xea\x3f\xea\x40\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\x00\x00\x00\x00", /* d000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86", /* d080 */ "\x00\x00\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xea\xff\xeb\x00\xeb\x01\xeb\x02\xeb\x03\x00\x00\x00\x00", /* d100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x04\xeb\x05\xeb\x06\xeb\x07\xeb\x08\xeb\x09\xeb\x0a\xeb\x0b\xeb\x0c\xeb\x0d\xeb\x0e\xeb\x0f\xeb\x10\xeb\x11\xeb\x12\xeb\x13\xeb\x14\xeb\x15\xeb\x16\xeb\x17\xeb\x18\xeb\x19\xeb\x1a\xeb\x1b\xeb\x1c\xeb\x1d\xeb\x1e\xeb\x1f\xeb\x20\xeb\x21\xeb\x22\xeb\x23\xeb\x24\xeb\x25\xeb\x26\xeb\x27\xeb\x28\xeb\x29\xeb\x2a\xeb\x2b\xeb\x2c\xeb\x2d\xeb\x2e\xeb\x2f\xeb\x30\xeb\x31\xeb\x32\xeb\x33\xeb\x34\xeb\x35\xeb\x36\xeb\x37\xeb\x38\xeb\x39\xeb\x3a\xeb\x3b\xeb\x3c\xeb\x3d\xeb\x3e\xeb\x3f\xeb\x40\xeb\x41\xeb\x42", /* d180 */ "\x00\x00\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d\xeb\x5e\xeb\x5f\xeb\x60\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\x00\x00\x00\x00", /* d200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xeb\xd7\xeb\xd8\xeb\xd9\xeb\xda\xeb\xdb\xeb\xdc\xeb\xdd\xeb\xde\xeb\xdf\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xeb\xf2\xeb\xf3\xeb\xf4\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe", /* d280 */ "\x00\x00\xeb\xff\xec\x00\xec\x01\xec\x02\xec\x03\xec\x04\xec\x05\xec\x06\xec\x07\xec\x08\xec\x09\xec\x0a\xec\x0b\xec\x0c\xec\x0d\xec\x0e\xec\x0f\xec\x10\xec\x11\xec\x12\xec\x13\xec\x14\xec\x15\xec\x16\xec\x17\xec\x18\xec\x19\xec\x1a\xec\x1b\xec\x1c\xec\x1d\xec\x1e\xec\x1f\xec\x20\xec\x21\xec\x22\xec\x23\xec\x24\xec\x25\xec\x26\xec\x27\xec\x28\xec\x29\xec\x2a\xec\x2b\xec\x2c\xec\x2d\xec\x2e\xec\x2f\xec\x30\xec\x31\xec\x32\xec\x33\xec\x34\xec\x35\xec\x36\xec\x37\xec\x38\xec\x39\xec\x3a\xec\x3b\xec\x3c\xec\x3d\xec\x3e\xec\x3f\xec\x40\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\x00\x00\x00\x00", /* d300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba", /* d380 */ "\x00\x00\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xec\xff\xed\x00\xed\x01\xed\x02\xed\x03\xed\x04\xed\x05\xed\x06\xed\x07\xed\x08\xed\x09\xed\x0a\xed\x0b\xed\x0c\xed\x0d\xed\x0e\xed\x0f\xed\x10\xed\x11\xed\x12\xed\x13\xed\x14\xed\x15\xed\x16\xed\x17\xed\x18\xed\x19\xed\x1a\xed\x1b\xed\x1c\xed\x1d\xed\x1e\xed\x1f\xed\x20\xed\x21\xed\x22\xed\x23\xed\x24\xed\x25\xed\x26\xed\x27\xed\x28\xed\x29\xed\x2a\xed\x2b\xed\x2c\xed\x2d\xed\x2e\xed\x2f\xed\x30\xed\x31\xed\x32\xed\x33\xed\x34\xed\x35\xed\x36\xed\x37\x00\x00\x00\x00", /* d400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x38\xed\x39\xed\x3a\xed\x3b\xed\x3c\xed\x3d\xed\x3e\xed\x3f\xed\x40\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76", /* d480 */ "\x00\x00\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\x00\x00\x00\x00", /* d500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xed\xff\xee\x00\xee\x01\xee\x02\xee\x03\xee\x04\xee\x05\xee\x06\xee\x07\xee\x08\xee\x09\xee\x0a\xee\x0b\xee\x0c\xee\x0d\xee\x0e\xee\x0f\xee\x10\xee\x11\xee\x12\xee\x13\xee\x14\xee\x15\xee\x16\xee\x17\xee\x18\xee\x19\xee\x1a\xee\x1b\xee\x1c\xee\x1d\xee\x1e\xee\x1f\xee\x20\xee\x21\xee\x22\xee\x23\xee\x24\xee\x25\xee\x26\xee\x27\xee\x28\xee\x29\xee\x2a\xee\x2b\xee\x2c\xee\x2d\xee\x2e\xee\x2f\xee\x30\xee\x31\xee\x32", /* d580 */ "\x00\x00\xee\x33\xee\x34\xee\x35\xee\x36\xee\x37\xee\x38\xee\x39\xee\x3a\xee\x3b\xee\x3c\xee\x3d\xee\x3e\xee\x3f\xee\x40\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\x00\x00\x00\x00", /* d600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee", /* d680 */ "\x00\x00\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xee\xff\xef\x00\xef\x01\xef\x02\xef\x03\xef\x04\xef\x05\xef\x06\xef\x07\xef\x08\xef\x09\xef\x0a\xef\x0b\xef\x0c\xef\x0d\xef\x0e\xef\x0f\xef\x10\xef\x11\xef\x12\xef\x13\xef\x14\xef\x15\xef\x16\xef\x17\xef\x18\xef\x19\xef\x1a\xef\x1b\xef\x1c\xef\x1d\xef\x1e\xef\x1f\xef\x20\xef\x21\xef\x22\xef\x23\xef\x24\xef\x25\xef\x26\xef\x27\xef\x28\xef\x29\xef\x2a\xef\x2b\xef\x2c\xef\x2d\xef\x2e\xef\x2f\xef\x30\xef\x31\xef\x32\xef\x33\xef\x34\xef\x35\xef\x36\xef\x37\xef\x38\xef\x39\xef\x3a\xef\x3b\xef\x3c\xef\x3d\xef\x3e\xef\x3f\xef\x40\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\x00\x00\x00\x00", /* d700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa", /* d780 */ "\x00\x00\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xef\xd2\xef\xd3\xef\xd4\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xef\xff\xf0\x00\xf0\x01\xf0\x02\xf0\x03\xf0\x04\xf0\x05\xf0\x06\xf0\x07\xf0\x08\xf0\x09\xf0\x0a\xf0\x0b\xf0\x0c\xf0\x0d\xf0\x0e\xf0\x0f\xf0\x10\xf0\x11\xf0\x12\xf0\x13\xf0\x14\xf0\x15\xf0\x16\xf0\x17\xf0\x18\xf0\x19\xf0\x1a\xf0\x1b\xf0\x1c\xf0\x1d\xf0\x1e\xf0\x1f\xf0\x20\xf0\x21\xf0\x22\xf0\x23\xf0\x24\xf0\x25\xf0\x26\xf0\x27\x00\x00\x00\x00", /* d800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x28\xf0\x29\xf0\x2a\xf0\x2b\xf0\x2c\xf0\x2d\xf0\x2e\xf0\x2f\xf0\x30\xf0\x31\xf0\x32\xf0\x33\xf0\x34\xf0\x35\xf0\x36\xf0\x37\xf0\x38\xf0\x39\xf0\x3a\xf0\x3b\xf0\x3c\xf0\x3d\xf0\x3e\xf0\x3f\xf0\x40\xf0\x41\xf0\x42\xf0\x43\xf0\x44\xf0\x45\xf0\x46\xf0\x47\xf0\x48\xf0\x49\xf0\x4a\xf0\x4b\xf0\x4c\xf0\x4d\xf0\x4e\xf0\x4f\xf0\x50\xf0\x51\xf0\x52\xf0\x53\xf0\x54\xf0\x55\xf0\x56\xf0\x57\xf0\x58\xf0\x59\xf0\x5a\xf0\x5b\xf0\x5c\xf0\x5d\xf0\x5e\xf0\x5f\xf0\x60\xf0\x61\xf0\x62\xf0\x63\xf0\x64\xf0\x65\xf0\x66", /* d880 */ "\x00\x00\xf0\x67\xf0\x68\xf0\x69\xf0\x6a\xf0\x6b\xf0\x6c\xf0\x6d\xf0\x6e\xf0\x6f\xf0\x70\xf0\x71\xf0\x72\xf0\x73\xf0\x74\xf0\x75\xf0\x76\xf0\x77\xf0\x78\xf0\x79\xf0\x7a\xf0\x7b\xf0\x7c\xf0\x7d\xf0\x7e\xf0\x7f\xf0\x80\xf0\x81\xf0\x82\xf0\x83\xf0\x84\xf0\x85\xf0\x86\xf0\x87\xf0\x88\xf0\x89\xf0\x8a\xf0\x8b\xf0\x8c\xf0\x8d\xf0\x8e\xf0\x8f\xf0\x90\xf0\x91\xf0\x92\xf0\x93\xf0\x94\xf0\x95\xf0\x96\xf0\x97\xf0\x98\xf0\x99\xf0\x9a\xf0\x9b\xf0\x9c\xf0\x9d\xf0\x9e\xf0\x9f\xf0\xa0\xf0\xa1\xf0\xa2\xf0\xa3\xf0\xa4\xf0\xa5\xf0\xa6\xf0\xa7\xf0\xa8\xf0\xa9\xf0\xaa\xf0\xab\xf0\xac\xf0\xad\xf0\xae\xf0\xaf\xf0\xb0\xf0\xb1\xf0\xb2\xf0\xb3\xf0\xb4\xf0\xb5\xf0\xb6\xf0\xb7\xf0\xb8\xf0\xb9\xf0\xba\xf0\xbb\xf0\xbc\xf0\xbd\xf0\xbe\xf0\xbf\xf0\xc0\xf0\xc1\xf0\xc2\xf0\xc3\xf0\xc4\xf0\xc5\xf0\xc6\xf0\xc7\xf0\xc8\xf0\xc9\xf0\xca\xf0\xcb\xf0\xcc\xf0\xcd\xf0\xce\xf0\xcf\xf0\xd0\xf0\xd1\xf0\xd2\xf0\xd3\xf0\xd4\xf0\xd5\xf0\xd6\xf0\xd7\xf0\xd8\xf0\xd9\xf0\xda\xf0\xdb\xf0\xdc\xf0\xdd\xf0\xde\xf0\xdf\xf0\xe0\xf0\xe1\xf0\xe2\xf0\xe3\x00\x00\x00\x00", /* d900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xe4\xf0\xe5\xf0\xe6\xf0\xe7\xf0\xe8\xf0\xe9\xf0\xea\xf0\xeb\xf0\xec\xf0\xed\xf0\xee\xf0\xef\xf0\xf0\xf0\xf1\xf0\xf2\xf0\xf3\xf0\xf4\xf0\xf5\xf0\xf6\xf0\xf7\xf0\xf8\xf0\xf9\xf0\xfa\xf0\xfb\xf0\xfc\xf0\xfd\xf0\xfe\xf0\xff\xf1\x00\xf1\x01\xf1\x02\xf1\x03\xf1\x04\xf1\x05\xf1\x06\xf1\x07\xf1\x08\xf1\x09\xf1\x0a\xf1\x0b\xf1\x0c\xf1\x0d\xf1\x0e\xf1\x0f\xf1\x10\xf1\x11\xf1\x12\xf1\x13\xf1\x14\xf1\x15\xf1\x16\xf1\x17\xf1\x18\xf1\x19\xf1\x1a\xf1\x1b\xf1\x1c\xf1\x1d\xf1\x1e\xf1\x1f\xf1\x20\xf1\x21\xf1\x22", /* d980 */ "\x00\x00\xf1\x23\xf1\x24\xf1\x25\xf1\x26\xf1\x27\xf1\x28\xf1\x29\xf1\x2a\xf1\x2b\xf1\x2c\xf1\x2d\xf1\x2e\xf1\x2f\xf1\x30\xf1\x31\xf1\x32\xf1\x33\xf1\x34\xf1\x35\xf1\x36\xf1\x37\xf1\x38\xf1\x39\xf1\x3a\xf1\x3b\xf1\x3c\xf1\x3d\xf1\x3e\xf1\x3f\xf1\x40\xf1\x41\xf1\x42\xf1\x43\xf1\x44\xf1\x45\xf1\x46\xf1\x47\xf1\x48\xf1\x49\xf1\x4a\xf1\x4b\xf1\x4c\xf1\x4d\xf1\x4e\xf1\x4f\xf1\x50\xf1\x51\xf1\x52\xf1\x53\xf1\x54\xf1\x55\xf1\x56\xf1\x57\xf1\x58\xf1\x59\xf1\x5a\xf1\x5b\xf1\x5c\xf1\x5d\xf1\x5e\xf1\x5f\xf1\x60\xf1\x61\xf1\x62\xf1\x63\xf1\x64\xf1\x65\xf1\x66\xf1\x67\xf1\x68\xf1\x69\xf1\x6a\xf1\x6b\xf1\x6c\xf1\x6d\xf1\x6e\xf1\x6f\xf1\x70\xf1\x71\xf1\x72\xf1\x73\xf1\x74\xf1\x75\xf1\x76\xf1\x77\xf1\x78\xf1\x79\xf1\x7a\xf1\x7b\xf1\x7c\xf1\x7d\xf1\x7e\xf1\x7f\xf1\x80\xf1\x81\xf1\x82\xf1\x83\xf1\x84\xf1\x85\xf1\x86\xf1\x87\xf1\x88\xf1\x89\xf1\x8a\xf1\x8b\xf1\x8c\xf1\x8d\xf1\x8e\xf1\x8f\xf1\x90\xf1\x91\xf1\x92\xf1\x93\xf1\x94\xf1\x95\xf1\x96\xf1\x97\xf1\x98\xf1\x99\xf1\x9a\xf1\x9b\xf1\x9c\xf1\x9d\xf1\x9e\xf1\x9f\x00\x00\x00\x00", /* da00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\xa0\xf1\xa1\xf1\xa2\xf1\xa3\xf1\xa4\xf1\xa5\xf1\xa6\xf1\xa7\xf1\xa8\xf1\xa9\xf1\xaa\xf1\xab\xf1\xac\xf1\xad\xf1\xae\xf1\xaf\xf1\xb0\xf1\xb1\xf1\xb2\xf1\xb3\xf1\xb4\xf1\xb5\xf1\xb6\xf1\xb7\xf1\xb8\xf1\xb9\xf1\xba\xf1\xbb\xf1\xbc\xf1\xbd\xf1\xbe\xf1\xbf\xf1\xc0\xf1\xc1\xf1\xc2\xf1\xc3\xf1\xc4\xf1\xc5\xf1\xc6\xf1\xc7\xf1\xc8\xf1\xc9\xf1\xca\xf1\xcb\xf1\xcc\xf1\xcd\xf1\xce\xf1\xcf\xf1\xd0\xf1\xd1\xf1\xd2\xf1\xd3\xf1\xd4\xf1\xd5\xf1\xd6\xf1\xd7\xf1\xd8\xf1\xd9\xf1\xda\xf1\xdb\xf1\xdc\xf1\xdd\xf1\xde", /* da80 */ "\x00\x00\xf1\xdf\xf1\xe0\xf1\xe1\xf1\xe2\xf1\xe3\xf1\xe4\xf1\xe5\xf1\xe6\xf1\xe7\xf1\xe8\xf1\xe9\xf1\xea\xf1\xeb\xf1\xec\xf1\xed\xf1\xee\xf1\xef\xf1\xf0\xf1\xf1\xf1\xf2\xf1\xf3\xf1\xf4\xf1\xf5\xf1\xf6\xf1\xf7\xf1\xf8\xf1\xf9\xf1\xfa\xf1\xfb\xf1\xfc\xf1\xfd\xf1\xfe\xf1\xff\xf2\x00\xf2\x01\xf2\x02\xf2\x03\xf2\x04\xf2\x05\xf2\x06\xf2\x07\xf2\x08\xf2\x09\xf2\x0a\xf2\x0b\xf2\x0c\xf2\x0d\xf2\x0e\xf2\x0f\xf2\x10\xf2\x11\xf2\x12\xf2\x13\xf2\x14\xf2\x15\xf2\x16\xf2\x17\xf2\x18\xf2\x19\xf2\x1a\xf2\x1b\xf2\x1c\xf2\x1d\xf2\x1e\xf2\x1f\xf2\x20\xf2\x21\xf2\x22\xf2\x23\xf2\x24\xf2\x25\xf2\x26\xf2\x27\xf2\x28\xf2\x29\xf2\x2a\xf2\x2b\xf2\x2c\xf2\x2d\xf2\x2e\xf2\x2f\xf2\x30\xf2\x31\xf2\x32\xf2\x33\xf2\x34\xf2\x35\xf2\x36\xf2\x37\xf2\x38\xf2\x39\xf2\x3a\xf2\x3b\xf2\x3c\xf2\x3d\xf2\x3e\xf2\x3f\xf2\x40\xf2\x41\xf2\x42\xf2\x43\xf2\x44\xf2\x45\xf2\x46\xf2\x47\xf2\x48\xf2\x49\xf2\x4a\xf2\x4b\xf2\x4c\xf2\x4d\xf2\x4e\xf2\x4f\xf2\x50\xf2\x51\xf2\x52\xf2\x53\xf2\x54\xf2\x55\xf2\x56\xf2\x57\xf2\x58\xf2\x59\xf2\x5a\xf2\x5b\x00\x00\x00\x00", /* db00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x5c\xf2\x5d\xf2\x5e\xf2\x5f\xf2\x60\xf2\x61\xf2\x62\xf2\x63\xf2\x64\xf2\x65\xf2\x66\xf2\x67\xf2\x68\xf2\x69\xf2\x6a\xf2\x6b\xf2\x6c\xf2\x6d\xf2\x6e\xf2\x6f\xf2\x70\xf2\x71\xf2\x72\xf2\x73\xf2\x74\xf2\x75\xf2\x76\xf2\x77\xf2\x78\xf2\x79\xf2\x7a\xf2\x7b\xf2\x7c\xf2\x7d\xf2\x7e\xf2\x7f\xf2\x80\xf2\x81\xf2\x82\xf2\x83\xf2\x84\xf2\x85\xf2\x86\xf2\x87\xf2\x88\xf2\x89\xf2\x8a\xf2\x8b\xf2\x8c\xf2\x8d\xf2\x8e\xf2\x8f\xf2\x90\xf2\x91\xf2\x92\xf2\x93\xf2\x94\xf2\x95\xf2\x96\xf2\x97\xf2\x98\xf2\x99\xf2\x9a", /* db80 */ "\x00\x00\xf2\x9b\xf2\x9c\xf2\x9d\xf2\x9e\xf2\x9f\xf2\xa0\xf2\xa1\xf2\xa2\xf2\xa3\xf2\xa4\xf2\xa5\xf2\xa6\xf2\xa7\xf2\xa8\xf2\xa9\xf2\xaa\xf2\xab\xf2\xac\xf2\xad\xf2\xae\xf2\xaf\xf2\xb0\xf2\xb1\xf2\xb2\xf2\xb3\xf2\xb4\xf2\xb5\xf2\xb6\xf2\xb7\xf2\xb8\xf2\xb9\xf2\xba\xf2\xbb\xf2\xbc\xf2\xbd\xf2\xbe\xf2\xbf\xf2\xc0\xf2\xc1\xf2\xc2\xf2\xc3\xf2\xc4\xf2\xc5\xf2\xc6\xf2\xc7\xf2\xc8\xf2\xc9\xf2\xca\xf2\xcb\xf2\xcc\xf2\xcd\xf2\xce\xf2\xcf\xf2\xd0\xf2\xd1\xf2\xd2\xf2\xd3\xf2\xd4\xf2\xd5\xf2\xd6\xf2\xd7\xf2\xd8\xf2\xd9\xf2\xda\xf2\xdb\xf2\xdc\xf2\xdd\xf2\xde\xf2\xdf\xf2\xe0\xf2\xe1\xf2\xe2\xf2\xe3\xf2\xe4\xf2\xe5\xf2\xe6\xf2\xe7\xf2\xe8\xf2\xe9\xf2\xea\xf2\xeb\xf2\xec\xf2\xed\xf2\xee\xf2\xef\xf2\xf0\xf2\xf1\xf2\xf2\xf2\xf3\xf2\xf4\xf2\xf5\xf2\xf6\xf2\xf7\xf2\xf8\xf2\xf9\xf2\xfa\xf2\xfb\xf2\xfc\xf2\xfd\xf2\xfe\xf2\xff\xf3\x00\xf3\x01\xf3\x02\xf3\x03\xf3\x04\xf3\x05\xf3\x06\xf3\x07\xf3\x08\xf3\x09\xf3\x0a\xf3\x0b\xf3\x0c\xf3\x0d\xf3\x0e\xf3\x0f\xf3\x10\xf3\x11\xf3\x12\xf3\x13\xf3\x14\xf3\x15\xf3\x16\xf3\x17\x00\x00\x00\x00", /* dc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x18\xf3\x19\xf3\x1a\xf3\x1b\xf3\x1c\xf3\x1d\xf3\x1e\xf3\x1f\xf3\x20\xf3\x21\xf3\x22\xf3\x23\xf3\x24\xf3\x25\xf3\x26\xf3\x27\xf3\x28\xf3\x29\xf3\x2a\xf3\x2b\xf3\x2c\xf3\x2d\xf3\x2e\xf3\x2f\xf3\x30\xf3\x31\xf3\x32\xf3\x33\xf3\x34\xf3\x35\xf3\x36\xf3\x37\xf3\x38\xf3\x39\xf3\x3a\xf3\x3b\xf3\x3c\xf3\x3d\xf3\x3e\xf3\x3f\xf3\x40\xf3\x41\xf3\x42\xf3\x43\xf3\x44\xf3\x45\xf3\x46\xf3\x47\xf3\x48\xf3\x49\xf3\x4a\xf3\x4b\xf3\x4c\xf3\x4d\xf3\x4e\xf3\x4f\xf3\x50\xf3\x51\xf3\x52\xf3\x53\xf3\x54\xf3\x55\xf3\x56", /* dc80 */ "\x00\x00\xf3\x57\xf3\x58\xf3\x59\xf3\x5a\xf3\x5b\xf3\x5c\xf3\x5d\xf3\x5e\xf3\x5f\xf3\x60\xf3\x61\xf3\x62\xf3\x63\xf3\x64\xf3\x65\xf3\x66\xf3\x67\xf3\x68\xf3\x69\xf3\x6a\xf3\x6b\xf3\x6c\xf3\x6d\xf3\x6e\xf3\x6f\xf3\x70\xf3\x71\xf3\x72\xf3\x73\xf3\x74\xf3\x75\xf3\x76\xf3\x77\xf3\x78\xf3\x79\xf3\x7a\xf3\x7b\xf3\x7c\xf3\x7d\xf3\x7e\xf3\x7f\xf3\x80\xf3\x81\xf3\x82\xf3\x83\xf3\x84\xf3\x85\xf3\x86\xf3\x87\xf3\x88\xf3\x89\xf3\x8a\xf3\x8b\xf3\x8c\xf3\x8d\xf3\x8e\xf3\x8f\xf3\x90\xf3\x91\xf3\x92\xf3\x93\xf3\x94\xf3\x95\xf3\x96\xf3\x97\xf3\x98\xf3\x99\xf3\x9a\xf3\x9b\xf3\x9c\xf3\x9d\xf3\x9e\xf3\x9f\xf3\xa0\xf3\xa1\xf3\xa2\xf3\xa3\xf3\xa4\xf3\xa5\xf3\xa6\xf3\xa7\xf3\xa8\xf3\xa9\xf3\xaa\xf3\xab\xf3\xac\xf3\xad\xf3\xae\xf3\xaf\xf3\xb0\xf3\xb1\xf3\xb2\xf3\xb3\xf3\xb4\xf3\xb5\xf3\xb6\xf3\xb7\xf3\xb8\xf3\xb9\xf3\xba\xf3\xbb\xf3\xbc\xf3\xbd\xf3\xbe\xf3\xbf\xf3\xc0\xf3\xc1\xf3\xc2\xf3\xc3\xf3\xc4\xf3\xc5\xf3\xc6\xf3\xc7\xf3\xc8\xf3\xc9\xf3\xca\xf3\xcb\xf3\xcc\xf3\xcd\xf3\xce\xf3\xcf\xf3\xd0\xf3\xd1\xf3\xd2\xf3\xd3\x00\x00\x00\x00", /* dd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xd4\xf3\xd5\xf3\xd6\xf3\xd7\xf3\xd8\xf3\xd9\xf3\xda\xf3\xdb\xf3\xdc\xf3\xdd\xf3\xde\xf3\xdf\xf3\xe0\xf3\xe1\xf3\xe2\xf3\xe3\xf3\xe4\xf3\xe5\xf3\xe6\xf3\xe7\xf3\xe8\xf3\xe9\xf3\xea\xf3\xeb\xf3\xec\xf3\xed\xf3\xee\xf3\xef\xf3\xf0\xf3\xf1\xf3\xf2\xf3\xf3\xf3\xf4\xf3\xf5\xf3\xf6\xf3\xf7\xf3\xf8\xf3\xf9\xf3\xfa\xf3\xfb\xf3\xfc\xf3\xfd\xf3\xfe\xf3\xff\xf4\x00\xf4\x01\xf4\x02\xf4\x03\xf4\x04\xf4\x05\xf4\x06\xf4\x07\xf4\x08\xf4\x09\xf4\x0a\xf4\x0b\xf4\x0c\xf4\x0d\xf4\x0e\xf4\x0f\xf4\x10\xf4\x11\xf4\x12", /* dd80 */ "\x00\x00\xf4\x13\xf4\x14\xf4\x15\xf4\x16\xf4\x17\xf4\x18\xf4\x19\xf4\x1a\xf4\x1b\xf4\x1c\xf4\x1d\xf4\x1e\xf4\x1f\xf4\x20\xf4\x21\xf4\x22\xf4\x23\xf4\x24\xf4\x25\xf4\x26\xf4\x27\xf4\x28\xf4\x29\xf4\x2a\xf4\x2b\xf4\x2c\xf4\x2d\xf4\x2e\xf4\x2f\xf4\x30\xf4\x31\xf4\x32\xf4\x33\xf4\x34\xf4\x35\xf4\x36\xf4\x37\xf4\x38\xf4\x39\xf4\x3a\xf4\x3b\xf4\x3c\xf4\x3d\xf4\x3e\xf4\x3f\xf4\x40\xf4\x41\xf4\x42\xf4\x43\xf4\x44\xf4\x45\xf4\x46\xf4\x47\xf4\x48\xf4\x49\xf4\x4a\xf4\x4b\xf4\x4c\xf4\x4d\xf4\x4e\xf4\x4f\xf4\x50\xf4\x51\xf4\x52\xf4\x53\xf4\x54\xf4\x55\xf4\x56\xf4\x57\xf4\x58\xf4\x59\xf4\x5a\xf4\x5b\xf4\x5c\xf4\x5d\xf4\x5e\xf4\x5f\xf4\x60\xf4\x61\xf4\x62\xf4\x63\xf4\x64\xf4\x65\xf4\x66\xf4\x67\xf4\x68\xf4\x69\xf4\x6a\xf4\x6b\xf4\x6c\xf4\x6d\xf4\x6e\xf4\x6f\xf4\x70\xf4\x71\xf4\x72\xf4\x73\xf4\x74\xf4\x75\xf4\x76\xf4\x77\xf4\x78\xf4\x79\xf4\x7a\xf4\x7b\xf4\x7c\xf4\x7d\xf4\x7e\xf4\x7f\xf4\x80\xf4\x81\xf4\x82\xf4\x83\xf4\x84\xf4\x85\xf4\x86\xf4\x87\xf4\x88\xf4\x89\xf4\x8a\xf4\x8b\xf4\x8c\xf4\x8d\xf4\x8e\xf4\x8f\x00\x00\x00\x00", /* de00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x90\xf4\x91\xf4\x92\xf4\x93\xf4\x94\xf4\x95\xf4\x96\xf4\x97\xf4\x98\xf4\x99\xf4\x9a\xf4\x9b\xf4\x9c\xf4\x9d\xf4\x9e\xf4\x9f\xf4\xa0\xf4\xa1\xf4\xa2\xf4\xa3\xf4\xa4\xf4\xa5\xf4\xa6\xf4\xa7\xf4\xa8\xf4\xa9\xf4\xaa\xf4\xab\xf4\xac\xf4\xad\xf4\xae\xf4\xaf\xf4\xb0\xf4\xb1\xf4\xb2\xf4\xb3\xf4\xb4\xf4\xb5\xf4\xb6\xf4\xb7\xf4\xb8\xf4\xb9\xf4\xba\xf4\xbb\xf4\xbc\xf4\xbd\xf4\xbe\xf4\xbf\xf4\xc0\xf4\xc1\xf4\xc2\xf4\xc3\xf4\xc4\xf4\xc5\xf4\xc6\xf4\xc7\xf4\xc8\xf4\xc9\xf4\xca\xf4\xcb\xf4\xcc\xf4\xcd\xf4\xce", /* de80 */ "\x00\x00\xf4\xcf\xf4\xd0\xf4\xd1\xf4\xd2\xf4\xd3\xf4\xd4\xf4\xd5\xf4\xd6\xf4\xd7\xf4\xd8\xf4\xd9\xf4\xda\xf4\xdb\xf4\xdc\xf4\xdd\xf4\xde\xf4\xdf\xf4\xe0\xf4\xe1\xf4\xe2\xf4\xe3\xf4\xe4\xf4\xe5\xf4\xe6\xf4\xe7\xf4\xe8\xf4\xe9\xf4\xea\xf4\xeb\xf4\xec\xf4\xed\xf4\xee\xf4\xef\xf4\xf0\xf4\xf1\xf4\xf2\xf4\xf3\xf4\xf4\xf4\xf5\xf4\xf6\xf4\xf7\xf4\xf8\xf4\xf9\xf4\xfa\xf4\xfb\xf4\xfc\xf4\xfd\xf4\xfe\xf4\xff\xf5\x00\xf5\x01\xf5\x02\xf5\x03\xf5\x04\xf5\x05\xf5\x06\xf5\x07\xf5\x08\xf5\x09\xf5\x0a\xf5\x0b\xf5\x0c\xf5\x0d\xf5\x0e\xf5\x0f\xf5\x10\xf5\x11\xf5\x12\xf5\x13\xf5\x14\xf5\x15\xf5\x16\xf5\x17\xf5\x18\xf5\x19\xf5\x1a\xf5\x1b\xf5\x1c\xf5\x1d\xf5\x1e\xf5\x1f\xf5\x20\xf5\x21\xf5\x22\xf5\x23\xf5\x24\xf5\x25\xf5\x26\xf5\x27\xf5\x28\xf5\x29\xf5\x2a\xf5\x2b\xf5\x2c\xf5\x2d\xf5\x2e\xf5\x2f\xf5\x30\xf5\x31\xf5\x32\xf5\x33\xf5\x34\xf5\x35\xf5\x36\xf5\x37\xf5\x38\xf5\x39\xf5\x3a\xf5\x3b\xf5\x3c\xf5\x3d\xf5\x3e\xf5\x3f\xf5\x40\xf5\x41\xf5\x42\xf5\x43\xf5\x44\xf5\x45\xf5\x46\xf5\x47\xf5\x48\xf5\x49\xf5\x4a\xf5\x4b\x00\x00\x00\x00", /* df00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x4c\xf5\x4d\xf5\x4e\xf5\x4f\xf5\x50\xf5\x51\xf5\x52\xf5\x53\xf5\x54\xf5\x55\xf5\x56\xf5\x57\xf5\x58\xf5\x59\xf5\x5a\xf5\x5b\xf5\x5c\xf5\x5d\xf5\x5e\xf5\x5f\xf5\x60\xf5\x61\xf5\x62\xf5\x63\xf5\x64\xf5\x65\xf5\x66\xf5\x67\xf5\x68\xf5\x69\xf5\x6a\xf5\x6b\xf5\x6c\xf5\x6d\xf5\x6e\xf5\x6f\xf5\x70\xf5\x71\xf5\x72\xf5\x73\xf5\x74\xf5\x75\xf5\x76\xf5\x77\xf5\x78\xf5\x79\xf5\x7a\xf5\x7b\xf5\x7c\xf5\x7d\xf5\x7e\xf5\x7f\xf5\x80\xf5\x81\xf5\x82\xf5\x83\xf5\x84\xf5\x85\xf5\x86\xf5\x87\xf5\x88\xf5\x89\xf5\x8a", /* df80 */ "\x00\x00\xf5\x8b\xf5\x8c\xf5\x8d\xf5\x8e\xf5\x8f\xf5\x90\xf5\x91\xf5\x92\xf5\x93\xf5\x94\xf5\x95\xf5\x96\xf5\x97\xf5\x98\xf5\x99\xf5\x9a\xf5\x9b\xf5\x9c\xf5\x9d\xf5\x9e\xf5\x9f\xf5\xa0\xf5\xa1\xf5\xa2\xf5\xa3\xf5\xa4\xf5\xa5\xf5\xa6\xf5\xa7\xf5\xa8\xf5\xa9\xf5\xaa\xf5\xab\xf5\xac\xf5\xad\xf5\xae\xf5\xaf\xf5\xb0\xf5\xb1\xf5\xb2\xf5\xb3\xf5\xb4\xf5\xb5\xf5\xb6\xf5\xb7\xf5\xb8\xf5\xb9\xf5\xba\xf5\xbb\xf5\xbc\xf5\xbd\xf5\xbe\xf5\xbf\xf5\xc0\xf5\xc1\xf5\xc2\xf5\xc3\xf5\xc4\xf5\xc5\xf5\xc6\xf5\xc7\xf5\xc8\xf5\xc9\xf5\xca\xf5\xcb\xf5\xcc\xf5\xcd\xf5\xce\xf5\xcf\xf5\xd0\xf5\xd1\xf5\xd2\xf5\xd3\xf5\xd4\xf5\xd5\xf5\xd6\xf5\xd7\xf5\xd8\xf5\xd9\xf5\xda\xf5\xdb\xf5\xdc\xf5\xdd\xf5\xde\xf5\xdf\xf5\xe0\xf5\xe1\xf5\xe2\xf5\xe3\xf5\xe4\xf5\xe5\xf5\xe6\xf5\xe7\xf5\xe8\xf5\xe9\xf5\xea\xf5\xeb\xf5\xec\xf5\xed\xf5\xee\xf5\xef\xf5\xf0\xf5\xf1\xf5\xf2\xf5\xf3\xf5\xf4\xf5\xf5\xf5\xf6\xf5\xf7\xf5\xf8\xf5\xf9\xf5\xfa\xf5\xfb\xf5\xfc\xf5\xfd\xf5\xfe\xf5\xff\xf6\x00\xf6\x01\xf6\x02\xf6\x03\xf6\x04\xf6\x05\xf6\x06\xf6\x07\x00\x00\x00\x00", /* e000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x08\xf6\x09\xf6\x0a\xf6\x0b\xf6\x0c\xf6\x0d\xf6\x0e\xf6\x0f\xf6\x10\xf6\x11\xf6\x12\xf6\x13\xf6\x14\xf6\x15\xf6\x16\xf6\x17\xf6\x18\xf6\x19\xf6\x1a\xf6\x1b\xf6\x1c\xf6\x1d\xf6\x1e\xf6\x1f\xf6\x20\xf6\x21\xf6\x22\xf6\x23\xf6\x24\xf6\x25\xf6\x26\xf6\x27\xf6\x28\xf6\x29\xf6\x2a\xf6\x2b\xf6\x2c\xf6\x2d\xf6\x2e\xf6\x2f\xf6\x30\xf6\x31\xf6\x32\xf6\x33\xf6\x34\xf6\x35\xf6\x36\xf6\x37\xf6\x38\xf6\x39\xf6\x3a\xf6\x3b\xf6\x3c\xf6\x3d\xf6\x3e\xf6\x3f\xf6\x40\xf6\x41\xf6\x42\xf6\x43\xf6\x44\xf6\x45\xf6\x46", /* e080 */ "\x00\x00\xf6\x47\xf6\x48\xf6\x49\xf6\x4a\xf6\x4b\xf6\x4c\xf6\x4d\xf6\x4e\xf6\x4f\xf6\x50\xf6\x51\xf6\x52\xf6\x53\xf6\x54\xf6\x55\xf6\x56\xf6\x57\xf6\x58\xf6\x59\xf6\x5a\xf6\x5b\xf6\x5c\xf6\x5d\xf6\x5e\xf6\x5f\xf6\x60\xf6\x61\xf6\x62\xf6\x63\xf6\x64\xf6\x65\xf6\x66\xf6\x67\xf6\x68\xf6\x69\xf6\x6a\xf6\x6b\xf6\x6c\xf6\x6d\xf6\x6e\xf6\x6f\xf6\x70\xf6\x71\xf6\x72\xf6\x73\xf6\x74\xf6\x75\xf6\x76\xf6\x77\xf6\x78\xf6\x79\xf6\x7a\xf6\x7b\xf6\x7c\xf6\x7d\xf6\x7e\xf6\x7f\xf6\x80\xf6\x81\xf6\x82\xf6\x83\xf6\x84\xf6\x85\xf6\x86\xf6\x87\xf6\x88\xf6\x89\xf6\x8a\xf6\x8b\xf6\x8c\xf6\x8d\xf6\x8e\xf6\x8f\xf6\x90\xf6\x91\xf6\x92\xf6\x93\xf6\x94\xf6\x95\xf6\x96\xf6\x97\xf6\x98\xf6\x99\xf6\x9a\xf6\x9b\xf6\x9c\xf6\x9d\xf6\x9e\xf6\x9f\xf6\xa0\xf6\xa1\xf6\xa2\xf6\xa3\xf6\xa4\xf6\xa5\xf6\xa6\xf6\xa7\xf6\xa8\xf6\xa9\xf6\xaa\xf6\xab\xf6\xac\xf6\xad\xf6\xae\xf6\xaf\xf6\xb0\xf6\xb1\xf6\xb2\xf6\xb3\xf6\xb4\xf6\xb5\xf6\xb6\xf6\xb7\xf6\xb8\xf6\xb9\xf6\xba\xf6\xbb\xf6\xbc\xf6\xbd\xf6\xbe\xf6\xbf\xf6\xc0\xf6\xc1\xf6\xc2\xf6\xc3\x00\x00\x00\x00", /* e100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xc4\xf6\xc5\xf6\xc6\xf6\xc7\xf6\xc8\xf6\xc9\xf6\xca\xf6\xcb\xf6\xcc\xf6\xcd\xf6\xce\xf6\xcf\xf6\xd0\xf6\xd1\xf6\xd2\xf6\xd3\xf6\xd4\xf6\xd5\xf6\xd6\xf6\xd7\xf6\xd8\xf6\xd9\xf6\xda\xf6\xdb\xf6\xdc\xf6\xdd\xf6\xde\xf6\xdf\xf6\xe0\xf6\xe1\xf6\xe2\xf6\xe3\xf6\xe4\xf6\xe5\xf6\xe6\xf6\xe7\xf6\xe8\xf6\xe9\xf6\xea\xf6\xeb\xf6\xec\xf6\xed\xf6\xee\xf6\xef\xf6\xf0\xf6\xf1\xf6\xf2\xf6\xf3\xf6\xf4\xf6\xf5\xf6\xf6\xf6\xf7\xf6\xf8\xf6\xf9\xf6\xfa\xf6\xfb\xf6\xfc\xf6\xfd\xf6\xfe\xf6\xff\xf7\x00\xf7\x01\xf7\x02", /* e180 */ "\x00\x00\xf7\x03\xf7\x04\xf7\x05\xf7\x06\xf7\x07\xf7\x08\xf7\x09\xf7\x0a\xf7\x0b\xf7\x0c\xf7\x0d\xf7\x0e\xf7\x0f\xf7\x10\xf7\x11\xf7\x12\xf7\x13\xf7\x14\xf7\x15\xf7\x16\xf7\x17\xf7\x18\xf7\x19\xf7\x1a\xf7\x1b\xf7\x1c\xf7\x1d\xf7\x1e\xf7\x1f\xf7\x20\xf7\x21\xf7\x22\xf7\x23\xf7\x24\xf7\x25\xf7\x26\xf7\x27\xf7\x28\xf7\x29\xf7\x2a\xf7\x2b\xf7\x2c\xf7\x2d\xf7\x2e\xf7\x2f\xf7\x30\xf7\x31\xf7\x32\xf7\x33\xf7\x34\xf7\x35\xf7\x36\xf7\x37\xf7\x38\xf7\x39\xf7\x3a\xf7\x3b\xf7\x3c\xf7\x3d\xf7\x3e\xf7\x3f\xf7\x40\xf7\x41\xf7\x42\xf7\x43\xf7\x44\xf7\x45\xf7\x46\xf7\x47\xf7\x48\xf7\x49\xf7\x4a\xf7\x4b\xf7\x4c\xf7\x4d\xf7\x4e\xf7\x4f\xf7\x50\xf7\x51\xf7\x52\xf7\x53\xf7\x54\xf7\x55\xf7\x56\xf7\x57\xf7\x58\xf7\x59\xf7\x5a\xf7\x5b\xf7\x5c\xf7\x5d\xf7\x5e\xf7\x5f\xf7\x60\xf7\x61\xf7\x62\xf7\x63\xf7\x64\xf7\x65\xf7\x66\xf7\x67\xf7\x68\xf7\x69\xf7\x6a\xf7\x6b\xf7\x6c\xf7\x6d\xf7\x6e\xf7\x6f\xf7\x70\xf7\x71\xf7\x72\xf7\x73\xf7\x74\xf7\x75\xf7\x76\xf7\x77\xf7\x78\xf7\x79\xf7\x7a\xf7\x7b\xf7\x7c\xf7\x7d\xf7\x7e\xf7\x7f\x00\x00\x00\x00", /* e200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x80\xf7\x81\xf7\x82\xf7\x83\xf7\x84\xf7\x85\xf7\x86\xf7\x87\xf7\x88\xf7\x89\xf7\x8a\xf7\x8b\xf7\x8c\xf7\x8d\xf7\x8e\xf7\x8f\xf7\x90\xf7\x91\xf7\x92\xf7\x93\xf7\x94\xf7\x95\xf7\x96\xf7\x97\xf7\x98\xf7\x99\xf7\x9a\xf7\x9b\xf7\x9c\xf7\x9d\xf7\x9e\xf7\x9f\xf7\xa0\xf7\xa1\xf7\xa2\xf7\xa3\xf7\xa4\xf7\xa5\xf7\xa6\xf7\xa7\xf7\xa8\xf7\xa9\xf7\xaa\xf7\xab\xf7\xac\xf7\xad\xf7\xae\xf7\xaf\xf7\xb0\xf7\xb1\xf7\xb2\xf7\xb3\xf7\xb4\xf7\xb5\xf7\xb6\xf7\xb7\xf7\xb8\xf7\xb9\xf7\xba\xf7\xbb\xf7\xbc\xf7\xbd\xf7\xbe", /* e280 */ "\x00\x00\xf7\xbf\xf7\xc0\xf7\xc1\xf7\xc2\xf7\xc3\xf7\xc4\xf7\xc5\xf7\xc6\xf7\xc7\xf7\xc8\xf7\xc9\xf7\xca\xf7\xcb\xf7\xcc\xf7\xcd\xf7\xce\xf7\xcf\xf7\xd0\xf7\xd1\xf7\xd2\xf7\xd3\xf7\xd4\xf7\xd5\xf7\xd6\xf7\xd7\xf7\xd8\xf7\xd9\xf7\xda\xf7\xdb\xf7\xdc\xf7\xdd\xf7\xde\xf7\xdf\xf7\xe0\xf7\xe1\xf7\xe2\xf7\xe3\xf7\xe4\xf7\xe5\xf7\xe6\xf7\xe7\xf7\xe8\xf7\xe9\xf7\xea\xf7\xeb\xf7\xec\xf7\xed\xf7\xee\xf7\xef\xf7\xf0\xf7\xf1\xf7\xf2\xf7\xf3\xf7\xf4\xf7\xf5\xf7\xf6\xf7\xf7\xf7\xf8\xf7\xf9\xf7\xfa\xf7\xfb\xf7\xfc\xf7\xfd\xf7\xfe\xf7\xff\xf8\x00\xf8\x01\xf8\x02\xf8\x03\xf8\x04\xf8\x05\xf8\x06\xf8\x07\xf8\x08\xf8\x09\xf8\x0a\xf8\x0b\xf8\x0c\xf8\x0d\xf8\x0e\xf8\x0f\xf8\x10\xf8\x11\xf8\x12\xf8\x13\xf8\x14\xf8\x15\xf8\x16\xf8\x17\xf8\x18\xf8\x19\xf8\x1a\xf8\x1b\xf8\x1c\xf8\x1d\xf8\x1e\xf8\x1f\xf8\x20\xf8\x21\xf8\x22\xf8\x23\xf8\x24\xf8\x25\xf8\x26\xf8\x27\xf8\x28\xf8\x29\xf8\x2a\xf8\x2b\xf8\x2c\xf8\x2d\xf8\x2e\xf8\x2f\xf8\x30\xf8\x31\xf8\x32\xf8\x33\xf8\x34\xf8\x35\xf8\x36\xf8\x37\xf8\x38\xf8\x39\xf8\x3a\xf8\x3b\x00\x00\x00\x00", /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp1388", "0x03a90345" /* 937, 837 */, "gb18030.2000-1,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-1388_P103-2001 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x88\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x00\x00\x43\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x44\x46\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x48\x46\x46\x46\x5a\x00\x00\x46\x4c\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x46\x50\x46\x4e\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x46\x54\x46\x52\x00\x00\x46\x59\x00\x00\x00\x00\x00\x00", /* 0100 */ "\x00\x00\x46\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5d\x00\x00\x00\x00\x00\x00\x46\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x46\x4b\x00\x00\x46\x4f\x00\x00\x46\x53\x00\x00\x46\x55\x00\x00\x46\x56\x00\x00\x46\x57\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x46\x00\x00\x45\x45\xcd\x41\xcd\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ "\x47\x5d\x47\x5e\x47\x5f\x47\x60\x47\x61\x47\x62\x47\x63\x47\x64\x47\x65\x47\x66\x47\x67\x47\x68\x47\x69\x47\x6a\x47\x6b\x47\x6c\x47\x6d\x47\x6e\x47\x6f\x47\x70\x47\x71\x47\x72\x47\x73\x47\x74\x47\x75\x47\x76\x47\x77\x47\x78\x47\x79\x47\x7a\x47\x7b\x47\x7c\x47\x7d\x47\x7e\x47\x7f\x47\x80\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8d\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x47\xa1\x47\xa2\x47\xa3\x47\xa4\x47\xa5\x47\xa6\x47\xa7\x47\xa8\x47\xa9\x47\xaa\x47\xab\x47\xac\x47\xad\x47\xae\x47\xaf\x47\xb0\x47\xb1\x47\xb2\x47\xb3\x47\xb4\x47\xb5\x47\xb6\x47\xb7\x47\xb8\x47\xb9\x47\xba\x47\xbb\x47\xbc\x47\xbd\x47\xbe\x47\xbf\x47\xc0\x47\xc1\x47\xc2\x47\xc3\x47\xc4\x47\xc5\x47\xc6\x47\xc7\x47\xc8\x47\xc9\x47\xca\x47\xcb\x47\xcc\x47\xcd\x47\xce\x47\xcf\x47\xd0\x47\xd1\x47\xd2\x47\xd3\x47\xd4\x47\xd5\x47\xd6\x47\xd7\x47\xd8\x47\xd9\x47\xda\x47\xdb\x47\xdc", /* 0680 */ "\x47\xdd\x47\xde\x47\xdf\x47\xe0\x47\xe1\x47\xe2\x47\xe3\x47\xe4\x47\xe5\x47\xe6\x47\xe7\x47\xe8\x47\xe9\x47\xea\x47\xeb\x47\xec\x47\xed\x47\xee\x47\xef\x47\xf0\x47\xf1\x47\xf2\x47\xf3\x47\xf4\x47\xf5\x47\xf6\x47\xf7\x47\xf8\x47\xf9\x47\xfa\x47\xfb\x47\xfc\x47\xfd\x47\xfe\x48\x41\x48\x42\x48\x43\x48\x44\x48\x45\x48\x46\x48\x47\x48\x48\x48\x49\x48\x4a\x48\x4b\x48\x4c\x48\x4d\x48\x4e\x48\x4f\x48\x50\x48\x51\x48\x52\x48\x53\x48\x54\x48\x55\x48\x56\x48\x57\x48\x58\x48\x59\x48\x5a\x48\x5b\x48\x5c\x48\x5d\x48\x5e\x48\x5f\x48\x60\x48\x61\x48\x62\x48\x63\x48\x64\x48\x65\x48\x66\x48\x67\x48\x68\x48\x69\x48\x6a\x48\x6b\x48\x6c\x48\x6d\x48\x6e\x48\x6f\x48\x70\x48\x71\x48\x72\x48\x73\x48\x74\x48\x75\x48\x76\x48\x77\x48\x78\x48\x79\x48\x7a\x48\x7b\x48\x7c\x48\x7d\x48\x7e\x48\x7f\x48\x80\x48\x81\x48\x82\x48\x83\x48\x84\x48\x85\x48\x86\x48\x87\x48\x88\x48\x89\x48\x8a\x48\x8b\x48\x8c\x48\x8d\x48\x8e\x48\x8f\x48\x90\x48\x91\x48\x92\x48\x93\x48\x94\x48\x95\x48\x96\x48\x97\x48\x98\x48\x99\x48\x9a\x48\x9b\x48\x9c\x48\x9d\x48\x9e", /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ "\x6d\x41\x6d\x42\x6d\x43\x6d\x44\x6d\x45\x6d\x46\x6d\x47\x6d\x48\x6d\x49\x6d\x4a\x6d\x4b\x6d\x4c\x6d\x4d\x6d\x4e\x6d\x4f\x6d\x50\x6d\x51\x6d\x52\x6d\x53\x6d\x54\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x59\x6d\x5a\x6d\x5b\x6d\x5c\x6d\x5d\x6d\x5e\x6d\x5f\x6d\x60\x6d\x61\x6d\x62\x6d\x63\x6d\x64\x6d\x65\x6d\x66\x6d\x67\x6d\x68\x6d\x69\x6d\x6a\x6d\x6b\x6d\x6c\x6d\x6d\x6d\x6e\x6d\x6f\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x74\x6d\x75\x6d\x76\x6d\x77\x6d\x78\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7c\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x82\x6d\x83\x6d\x84\x6d\x85\x6d\x86\x6d\x87\x6d\x88\x6d\x89\x6d\x8a\x6d\x8b\x6d\x8c\x6d\x8d\x6d\x8e\x6d\x8f\x6d\x90\x6d\x91\x6d\x92\x6d\x93\x6d\x94\x6d\x95\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9b\x6d\x9c\x6d\x9d\x6d\x9e\x6d\x9f\x6d\xa0\x6d\xa1\x6d\xa2\x6d\xa3\x6d\xa4\x6d\xa5\x6d\xa6\x6d\xa7\x6d\xa8\x6d\xa9\x6d\xaa\x6d\xab\x6d\xac\x6d\xad\x6d\xae\x6d\xaf\x6d\xb0\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb4\x6d\xb5\x6d\xb6\x6d\xb7\x6d\xb8\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xbf\x6d\xc0", /* 0f80 */ "\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc4\x6d\xc5\x6d\xc6\x6d\xc7\x6d\xc8\x6d\xc9\x6d\xca\x6d\xcb\x6d\xcc\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd1\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd6\x6d\xd7\x6d\xd8\x6d\xd9\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdd\x6d\xde\x6d\xdf\x6d\xe0\x6d\xe1\x6d\xe2\x6d\xe3\x6d\xe4\x6d\xe5\x6d\xe6\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xeb\x6d\xec\x6d\xed\x6d\xee\x6d\xef\x6d\xf0\x6d\xf1\x6d\xf2\x6d\xf3\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf7\x6d\xf8\x6d\xf9\x6d\xfa\x6d\xfb\x6d\xfc\x6d\xfd\x6d\xfe\x6e\x41\x6e\x42\x6e\x43\x6e\x44\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4d\x6e\x4e\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x53\x6e\x54\x6e\x55\x6e\x56\x6e\x57\x6e\x58\x6e\x59\x6e\x5a\x6e\x5b\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x5f\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6b\x6e\x6c\x6e\x6d\x6e\x6e\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x7e\x6e\x7f\x6e\x80\x6e\x81\x6e\x82", /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ "\x6e\x83\x6e\x84\x6e\x85\x6e\x86\x6e\x87\x6e\x88\x6e\x89\x6e\x8a\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x8f\x6e\x90\x6e\x91\x6e\x92\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x98\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9c\x6e\x9d\x6e\x9e\x6e\x9f\x6e\xa0\x6e\xa1\x6e\xa2\x6e\xa3\x6e\xa4\x6e\xa5\x6e\xa6\x6e\xa7\x6e\xa8\x6e\xa9\x6e\xaa\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xaf\x6e\xb0\x6e\xb1\x6e\xb2\x6e\xb3\x6e\xb4\x6e\xb5\x6e\xb6\x6e\xb7\x6e\xb8\x6e\xb9\x6e\xba\x6e\xbb\x6e\xbc\x6e\xbd\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc1\x6e\xc2\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc7\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcb\x6e\xcc\x6e\xcd\x6e\xce\x6e\xcf\x6e\xd0\x6e\xd1\x6e\xd2\x6e\xd3\x6e\xd4\x6e\xd5\x6e\xd6\x6e\xd7\x6e\xd8\x6e\xd9\x6e\xda\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xde\x6e\xdf\x6e\xe0\x6e\xe1\x6e\xe2\x6e\xe3\x6e\xe4\x6e\xe5\x6e\xe6\x6e\xe7\x6e\xe8\x6e\xe9\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf4\x6e\xf5\x6e\xf6\x6e\xf7\x6e\xf8\x6e\xf9\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6f\x41\x6f\x42\x6f\x43\x6f\x44", /* 1880 */ "\x6f\x45\x6f\x46\x6f\x47\x6f\x48\x6f\x49\x6f\x4a\x6f\x4b\x6f\x4c\x6f\x4d\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x58\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5c\x6f\x5d\x6f\x5e\x6f\x5f\x6f\x60\x6f\x61\x6f\x62\x6f\x63\x6f\x64\x6f\x65\x6f\x66\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6d\x6f\x6e\x6f\x6f\x6f\x70\x6f\x71\x6f\x72\x6f\x73\x6f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\xcd\x44\xcd\x45\x44\x4a\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x8b\x00\x00\x44\xee\x44\xef\x00\x00\xcd\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\xcd\x47\x00\x00\x00\x00\x00\x00\xcd\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\xcd\x49\xcd\x4a\xcd\x4b\xcd\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x66\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\xcd\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6b\x00\x00\x00\x00\x45\x77\x44\x4d\xcd\x4e\x45\x6e\x00\x00\x00\x00\xcd\x4f\x00\x00\x45\x6d\x00\x00\x45\x63\x45\x64\x45\x68\x45\x67\x45\x71\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x45\x62\x45\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x75\x00\x00\x00\x00\x00\x00\x45\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x45\x73\x00\x00\x00\x00\x44\x67\x44\x77\xcd\x51\xcd\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x90\x00\x00\x00\x00\x00\x00\x45\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0", /* 2480 */ "\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2500 */ "\x46\xa4\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x54\xcd\x55\xcd\x56\xcd\x57\xcd\x58\xcd\x59\xcd\x5a\xcd\x5b\xcd\x5c\xcd\x5d\xcd\x5e\xcd\x5f\xcd\x60\xcd\x61\xcd\x62\xcd\x63\xcd\x64\xcd\x65\xcd\x66\xcd\x67\xcd\x68\xcd\x69\xcd\x6a\xcd\x6b\xcd\x6c\xcd\x6d\xcd\x6e\xcd\x6f\xcd\x70\xcd\x71\xcd\x72\xcd\x73\xcd\x74\xcd\x75\xcd\x76\xcd\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\xcd\x78\xcd\x79\xcd\x7a\xcd\x7b\xcd\x7c\xcd\x7d\xcd\x7e\xcd\x7f\xcd\x81\xcd\x82\xcd\x83\xcd\x84\xcd\x85\xcd\x86\xcd\x87\x00\x00\x00\x00\x00\x00\xcd\x88\xcd\x89\xcd\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x8b\xcd\x8c\xcd\x8d\xcd\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\xcd\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ "\x00\x00\xce\x56\x00\x00\x00\x00\xce\x5a\x00\x00\x00\x00\x00\x00\xce\x5d\x00\x00\x00\x00\xce\x5e\xce\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x71\x00\x00\x00\x00\xce\x74\x00\x00\x00\x00\x00\x00\xce\x77\x00\x00\x00\x00\x00\x00\x00\x00\xce\x79\x00\x00\x00\x00\xce\x7a\xce\x7b\x00\x00\x00\x00\x00\x00\xce\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2f00 */ NULL, /* 2f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xca\xcd\xcb\xcd\xcc\xcd\xcd\xcd\xce\xcd\xcf\xcd\xd0\xcd\xd1\xcd\xd2\xcd\xd3\xcd\xd4\xcd\xd5\x00\x00\x00\x00\x00\x00\x00\x00", /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x45\x5b\x45\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x91\xcd\x92\x00\x00\x00\x00\xcd\x93\xcd\x94\xcd\x95\xcd\x96\xcd\x97\xcd\x98\xcd\x99\xcd\x9a\xcd\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xc9\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3300 */ NULL, /* 3380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9d\xcd\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9f\xcd\xa0\xcd\xa1\x00\x00\x00\x00\xcd\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa4\x00\x00\x00\x00\xcd\xa5\xcd\xa6\x00\x00\x00\x00\xcd\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3400 */ "\xcf\x41\xcf\x42\xcf\x43\xcf\x44\xcf\x45\xcf\x46\xcf\x47\xcf\x48\xcf\x49\xcf\x4a\xcf\x4b\xcf\x4c\xcf\x4d\xcf\x4e\xcf\x4f\xcf\x50\xcf\x51\xcf\x52\xcf\x53\xcf\x54\xcf\x55\xcf\x56\xcf\x57\xcf\x58\xcf\x59\xcf\x5a\xcf\x5b\xcf\x5c\xcf\x5d\xcf\x5e\xcf\x5f\xcf\x60\xcf\x61\xcf\x62\xcf\x63\xcf\x64\xcf\x65\xcf\x66\xcf\x67\xcf\x68\xcf\x69\xcf\x6a\xcf\x6b\xcf\x6c\xcf\x6d\xcf\x6e\xcf\x6f\xcf\x70\xcf\x71\xcf\x72\xcf\x73\xcf\x74\xcf\x75\xcf\x76\xcf\x77\xcf\x78\xcf\x79\xcf\x7a\xcf\x7b\xcf\x7c\xcf\x7d\xcf\x7e\xcf\x7f\xcf\x80\xcf\x81\xcf\x82\xcf\x83\xcf\x84\xcf\x85\xcf\x86\xcf\x87\xce\x5c\xcf\x88\xcf\x89\xcf\x8a\xcf\x8b\xcf\x8c\xcf\x8d\xcf\x8e\xcf\x8f\xcf\x90\xcf\x91\xcf\x92\xcf\x93\xcf\x94\xcf\x95\xcf\x96\xcf\x97\xcf\x98\xcf\x99\xcf\x9a\xcf\x9b\xcf\x9c\xcf\x9d\xcf\x9e\xcf\x9f\xcf\xa0\xcf\xa1\xcf\xa2\xcf\xa3\xcf\xa4\xcf\xa5\xcf\xa6\xcf\xa7\xcf\xa8\xcf\xa9\xcf\xaa\xcf\xab\xcf\xac\xcf\xad\xcf\xae\xcf\xaf\xcf\xb0\xcf\xb1\xcf\xb2\xce\x5b\xcf\xb3\xcf\xb4\xcf\xb5\xcf\xb6\xcf\xb7\xcf\xb8\xcf\xb9\xcf\xba\xcf\xbb\xcf\xbc\xcf\xbd\xcf\xbe", /* 3480 */ "\xcf\xbf\xcf\xc0\xcf\xc1\xcf\xc2\xcf\xc3\xcf\xc4\xcf\xc5\xcf\xc6\xcf\xc7\xcf\xc8\xcf\xc9\xcf\xca\xcf\xcb\xcf\xcc\xcf\xcd\xcf\xce\xcf\xcf\xcf\xd0\xcf\xd1\xcf\xd2\xcf\xd3\xcf\xd4\xcf\xd5\xcf\xd6\xcf\xd7\xcf\xd8\xcf\xd9\xcf\xda\xcf\xdb\xcf\xdc\xcf\xdd\xcf\xde\xcf\xdf\xcf\xe0\xcf\xe1\xcf\xe2\xcf\xe3\xcf\xe4\xcf\xe5\xcf\xe6\xcf\xe7\xcf\xe8\xcf\xe9\xcf\xea\xcf\xeb\xcf\xec\xcf\xed\xcf\xee\xcf\xef\xcf\xf0\xcf\xf1\xcf\xf2\xcf\xf3\xcf\xf4\xcf\xf5\xcf\xf6\xcf\xf7\xcf\xf8\xcf\xf9\xcf\xfa\xcf\xfb\xcf\xfc\xcf\xfd\xcf\xfe\xd0\x41\xd0\x42\xd0\x43\xd0\x44\xd0\x45\xd0\x46\xd0\x47\xd0\x48\xd0\x49\xd0\x4a\xd0\x4b\xd0\x4c\xd0\x4d\xd0\x4e\xd0\x4f\xd0\x50\xd0\x51\xd0\x52\xd0\x53\xd0\x54\xd0\x55\xd0\x56\xd0\x57\xd0\x58\xd0\x59\xd0\x5a\xd0\x5b\xd0\x5c\xd0\x5d\xd0\x5e\xd0\x5f\xd0\x60\xd0\x61\xd0\x62\xd0\x63\xd0\x64\xd0\x65\xd0\x66\xd0\x67\xd0\x68\xd0\x69\xd0\x6a\xd0\x6b\xd0\x6c\xd0\x6d\xd0\x6e\xd0\x6f\xd0\x70\xd0\x71\xd0\x72\xd0\x73\xd0\x74\xd0\x75\xd0\x76\xd0\x77\xd0\x78\xd0\x79\xd0\x7a\xd0\x7b\xd0\x7c\xd0\x7d\xd0\x7e\xd0\x7f\xd0\x80", /* 3500 */ "\xd0\x81\xd0\x82\xd0\x83\xd0\x84\xd0\x85\xd0\x86\xd0\x87\xd0\x88\xd0\x89\xd0\x8a\xd0\x8b\xd0\x8c\xd0\x8d\xd0\x8e\xd0\x8f\xd0\x90\xd0\x91\xd0\x92\xd0\x93\xd0\x94\xd0\x95\xd0\x96\xd0\x97\xd0\x98\xd0\x99\xd0\x9a\xd0\x9b\xd0\x9c\xd0\x9d\xd0\x9e\xd0\x9f\xd0\xa0\xd0\xa1\xd0\xa2\xd0\xa3\xd0\xa4\xd0\xa5\xd0\xa6\xd0\xa7\xd0\xa8\xd0\xa9\xd0\xaa\xd0\xab\xd0\xac\xd0\xad\xd0\xae\xd0\xaf\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5\xd0\xb6\xd0\xb7\xd0\xb8\xd0\xb9\xd0\xba\xd0\xbb\xd0\xbc\xd0\xbd\xd0\xbe\xd0\xbf\xd0\xc0\xd0\xc1\xd0\xc2\xd0\xc3\xd0\xc4\xd0\xc5\xd0\xc6\xd0\xc7\xd0\xc8\xd0\xc9\xd0\xca\xd0\xcb\xd0\xcc\xd0\xcd\xd0\xce\xd0\xcf\xd0\xd0\xd0\xd1\xd0\xd2\xd0\xd3\xd0\xd4\xd0\xd5\xd0\xd6\xd0\xd7\xd0\xd8\xd0\xd9\xd0\xda\xd0\xdb\xd0\xdc\xd0\xdd\xd0\xde\xd0\xdf\xd0\xe0\xd0\xe1\xd0\xe2\xd0\xe3\xd0\xe4\xd0\xe5\xd0\xe6\xd0\xe7\xd0\xe8\xd0\xe9\xd0\xea\xd0\xeb\xd0\xec\xd0\xed\xd0\xee\xd0\xef\xd0\xf0\xd0\xf1\xd0\xf2\xd0\xf3\xd0\xf4\xd0\xf5\xd0\xf6\xd0\xf7\xd0\xf8\xd0\xf9\xd0\xfa\xd0\xfb\xd0\xfc\xd0\xfd\xd0\xfe\xd1\x41\xd1\x42", /* 3580 */ "\xd1\x43\xd1\x44\xd1\x45\xd1\x46\xd1\x47\xd1\x48\xd1\x49\xd1\x4a\xd1\x4b\xd1\x4c\xd1\x4d\xd1\x4e\xd1\x4f\xd1\x50\xd1\x51\xd1\x52\xd1\x53\xd1\x54\xd1\x55\xd1\x56\xd1\x57\xd1\x58\xd1\x59\xd1\x5a\xd1\x5b\xd1\x5c\xd1\x5d\xd1\x5e\xd1\x5f\xd1\x60\xce\x60\xd1\x61\xd1\x62\xd1\x63\xd1\x64\xd1\x65\xd1\x66\xd1\x67\xd1\x68\xd1\x69\xd1\x6a\xd1\x6b\xd1\x6c\xd1\x6d\xd1\x6e\xd1\x6f\xd1\x70\xd1\x71\xd1\x72\xd1\x73\xd1\x74\xd1\x75\xd1\x76\xd1\x77\xd1\x78\xd1\x79\xd1\x7a\xd1\x7b\xd1\x7c\xd1\x7d\xd1\x7e\xd1\x7f\xd1\x80\xd1\x81\xd1\x82\xd1\x83\xd1\x84\xd1\x85\xd1\x86\xd1\x87\xd1\x88\xd1\x89\xd1\x8a\xd1\x8b\xd1\x8c\xd1\x8d\xd1\x8e\xd1\x8f\xd1\x90\xd1\x91\xd1\x92\xd1\x93\xd1\x94\xd1\x95\xd1\x96\xd1\x97\xd1\x98\xd1\x99\xd1\x9a\xd1\x9b\xd1\x9c\xd1\x9d\xd1\x9e\xd1\x9f\xd1\xa0\xd1\xa1\xd1\xa2\xd1\xa3\xd1\xa4\xd1\xa5\xd1\xa6\xd1\xa7\xd1\xa8\xd1\xa9\xd1\xaa\xd1\xab\xd1\xac\xd1\xad\xd1\xae\xd1\xaf\xd1\xb0\xd1\xb1\xd1\xb2\xd1\xb3\xd1\xb4\xd1\xb5\xd1\xb6\xd1\xb7\xd1\xb8\xd1\xb9\xd1\xba\xd1\xbb\xd1\xbc\xd1\xbd\xd1\xbe\xd1\xbf\xd1\xc0\xd1\xc1", /* 3600 */ "\xd1\xc2\xd1\xc3\xd1\xc4\xd1\xc5\xd1\xc6\xd1\xc7\xd1\xc8\xd1\xc9\xd1\xca\xd1\xcb\xd1\xcc\xd1\xcd\xd1\xce\xd1\xcf\xce\x62\xd1\xd0\xd1\xd1\xd1\xd2\xd1\xd3\xd1\xd4\xd1\xd5\xd1\xd6\xd1\xd7\xd1\xd8\xd1\xd9\xd1\xda\xce\x61\xd1\xdb\xd1\xdc\xd1\xdd\xd1\xde\xd1\xdf\xd1\xe0\xd1\xe1\xd1\xe2\xd1\xe3\xd1\xe4\xd1\xe5\xd1\xe6\xd1\xe7\xd1\xe8\xd1\xe9\xd1\xea\xd1\xeb\xd1\xec\xd1\xed\xd1\xee\xd1\xef\xd1\xf0\xd1\xf1\xd1\xf2\xd1\xf3\xd1\xf4\xd1\xf5\xd1\xf6\xd1\xf7\xd1\xf8\xd1\xf9\xd1\xfa\xd1\xfb\xd1\xfc\xd1\xfd\xd1\xfe\xd2\x41\xd2\x42\xd2\x43\xd2\x44\xd2\x45\xd2\x46\xd2\x47\xd2\x48\xd2\x49\xd2\x4a\xd2\x4b\xd2\x4c\xd2\x4d\xd2\x4e\xd2\x4f\xd2\x50\xd2\x51\xd2\x52\xd2\x53\xd2\x54\xd2\x55\xd2\x56\xd2\x57\xd2\x58\xd2\x59\xd2\x5a\xd2\x5b\xd2\x5c\xd2\x5d\xd2\x5e\xd2\x5f\xd2\x60\xd2\x61\xd2\x62\xd2\x63\xd2\x64\xd2\x65\xd2\x66\xd2\x67\xd2\x68\xd2\x69\xd2\x6a\xd2\x6b\xd2\x6c\xd2\x6d\xd2\x6e\xd2\x6f\xd2\x70\xd2\x71\xd2\x72\xd2\x73\xd2\x74\xd2\x75\xd2\x76\xd2\x77\xd2\x78\xd2\x79\xd2\x7a\xd2\x7b\xd2\x7c\xd2\x7d\xd2\x7e\xd2\x7f\xd2\x80\xd2\x81", /* 3680 */ "\xd2\x82\xd2\x83\xd2\x84\xd2\x85\xd2\x86\xd2\x87\xd2\x88\xd2\x89\xd2\x8a\xd2\x8b\xd2\x8c\xd2\x8d\xd2\x8e\xd2\x8f\xd2\x90\xd2\x91\xd2\x92\xd2\x93\xd2\x94\xd2\x95\xd2\x96\xd2\x97\xd2\x98\xd2\x99\xd2\x9a\xd2\x9b\xd2\x9c\xd2\x9d\xd2\x9e\xd2\x9f\xd2\xa0\xd2\xa1\xd2\xa2\xd2\xa3\xd2\xa4\xd2\xa5\xd2\xa6\xd2\xa7\xd2\xa8\xd2\xa9\xd2\xaa\xd2\xab\xd2\xac\xd2\xad\xd2\xae\xd2\xaf\xd2\xb0\xd2\xb1\xd2\xb2\xd2\xb3\xd2\xb4\xd2\xb5\xd2\xb6\xd2\xb7\xd2\xb8\xd2\xb9\xd2\xba\xd2\xbb\xd2\xbc\xd2\xbd\xd2\xbe\xd2\xbf\xd2\xc0\xd2\xc1\xd2\xc2\xd2\xc3\xd2\xc4\xd2\xc5\xd2\xc6\xd2\xc7\xd2\xc8\xd2\xc9\xd2\xca\xd2\xcb\xd2\xcc\xd2\xcd\xd2\xce\xd2\xcf\xd2\xd0\xd2\xd1\xd2\xd2\xd2\xd3\xd2\xd4\xd2\xd5\xd2\xd6\xd2\xd7\xd2\xd8\xd2\xd9\xd2\xda\xd2\xdb\xd2\xdc\xd2\xdd\xd2\xde\xd2\xdf\xd2\xe0\xd2\xe1\xd2\xe2\xd2\xe3\xd2\xe4\xd2\xe5\xd2\xe6\xd2\xe7\xd2\xe8\xd2\xe9\xd2\xea\xd2\xeb\xd2\xec\xd2\xed\xd2\xee\xd2\xef\xd2\xf0\xd2\xf1\xd2\xf2\xd2\xf3\xd2\xf4\xd2\xf5\xd2\xf6\xd2\xf7\xd2\xf8\xd2\xf9\xd2\xfa\xd2\xfb\xd2\xfc\xd2\xfd\xd2\xfe\xd3\x41\xd3\x42\xd3\x43", /* 3700 */ "\xd3\x44\xd3\x45\xd3\x46\xd3\x47\xd3\x48\xd3\x49\xd3\x4a\xd3\x4b\xd3\x4c\xd3\x4d\xd3\x4e\xd3\x4f\xd3\x50\xd3\x51\xd3\x52\xd3\x53\xd3\x54\xd3\x55\xd3\x56\xd3\x57\xd3\x58\xd3\x59\xd3\x5a\xd3\x5b\xd3\x5c\xd3\x5d\xd3\x5e\xd3\x5f\xd3\x60\xd3\x61\xd3\x62\xd3\x63\xd3\x64\xd3\x65\xd3\x66\xd3\x67\xd3\x68\xd3\x69\xd3\x6a\xd3\x6b\xd3\x6c\xd3\x6d\xd3\x6e\xd3\x6f\xd3\x70\xd3\x71\xd3\x72\xd3\x73\xd3\x74\xd3\x75\xd3\x76\xd3\x77\xd3\x78\xd3\x79\xd3\x7a\xd3\x7b\xd3\x7c\xd3\x7d\xd3\x7e\xd3\x7f\xd3\x80\xd3\x81\xd3\x82\xd3\x83\xd3\x84\xd3\x85\xd3\x86\xd3\x87\xd3\x88\xd3\x89\xd3\x8a\xd3\x8b\xd3\x8c\xd3\x8d\xd3\x8e\xd3\x8f\xd3\x90\xd3\x91\xd3\x92\xd3\x93\xd3\x94\xd3\x95\xd3\x96\xd3\x97\xd3\x98\xd3\x99\xd3\x9a\xd3\x9b\xd3\x9c\xd3\x9d\xd3\x9e\xd3\x9f\xd3\xa0\xd3\xa1\xd3\xa2\xd3\xa3\xd3\xa4\xd3\xa5\xd3\xa6\xd3\xa7\xd3\xa8\xd3\xa9\xd3\xaa\xd3\xab\xd3\xac\xd3\xad\xd3\xae\xd3\xaf\xd3\xb0\xd3\xb1\xd3\xb2\xd3\xb3\xd3\xb4\xd3\xb5\xd3\xb6\xd3\xb7\xd3\xb8\xd3\xb9\xd3\xba\xd3\xbb\xd3\xbc\xd3\xbd\xd3\xbe\xd3\xbf\xd3\xc0\xd3\xc1\xd3\xc2\xd3\xc3", /* 3780 */ "\xd3\xc4\xd3\xc5\xd3\xc6\xd3\xc7\xd3\xc8\xd3\xc9\xd3\xca\xd3\xcb\xd3\xcc\xd3\xcd\xd3\xce\xd3\xcf\xd3\xd0\xd3\xd1\xd3\xd2\xd3\xd3\xd3\xd4\xd3\xd5\xd3\xd6\xd3\xd7\xd3\xd8\xd3\xd9\xd3\xda\xd3\xdb\xd3\xdc\xd3\xdd\xd3\xde\xd3\xdf\xd3\xe0\xd3\xe1\xd3\xe2\xd3\xe3\xd3\xe4\xd3\xe5\xd3\xe6\xd3\xe7\xd3\xe8\xd3\xe9\xd3\xea\xd3\xeb\xd3\xec\xd3\xed\xd3\xee\xd3\xef\xd3\xf0\xd3\xf1\xd3\xf2\xd3\xf3\xd3\xf4\xd3\xf5\xd3\xf6\xd3\xf7\xd3\xf8\xd3\xf9\xd3\xfa\xd3\xfb\xd3\xfc\xd3\xfd\xd3\xfe\xd4\x41\xd4\x42\xd4\x43\xd4\x44\xd4\x45\xd4\x46\xd4\x47\xd4\x48\xd4\x49\xd4\x4a\xd4\x4b\xd4\x4c\xd4\x4d\xd4\x4e\xd4\x4f\xd4\x50\xd4\x51\xd4\x52\xd4\x53\xd4\x54\xd4\x55\xd4\x56\xd4\x57\xd4\x58\xd4\x59\xd4\x5a\xd4\x5b\xd4\x5c\xd4\x5d\xd4\x5e\xd4\x5f\xd4\x60\xd4\x61\xd4\x62\xd4\x63\xd4\x64\xd4\x65\xd4\x66\xd4\x67\xd4\x68\xd4\x69\xd4\x6a\xd4\x6b\xd4\x6c\xd4\x6d\xd4\x6e\xd4\x6f\xd4\x70\xd4\x71\xd4\x72\xd4\x73\xd4\x74\xd4\x75\xd4\x76\xd4\x77\xd4\x78\xd4\x79\xd4\x7a\xd4\x7b\xd4\x7c\xd4\x7d\xd4\x7e\xd4\x7f\xd4\x80\xd4\x81\xd4\x82\xd4\x83\xd4\x84\xd4\x85", /* 3800 */ "\xd4\x86\xd4\x87\xd4\x88\xd4\x89\xd4\x8a\xd4\x8b\xd4\x8c\xd4\x8d\xd4\x8e\xd4\x8f\xd4\x90\xd4\x91\xd4\x92\xd4\x93\xd4\x94\xd4\x95\xd4\x96\xd4\x97\xd4\x98\xd4\x99\xd4\x9a\xd4\x9b\xd4\x9c\xd4\x9d\xd4\x9e\xd4\x9f\xd4\xa0\xd4\xa1\xd4\xa2\xd4\xa3\xd4\xa4\xd4\xa5\xd4\xa6\xd4\xa7\xd4\xa8\xd4\xa9\xd4\xaa\xd4\xab\xd4\xac\xd4\xad\xd4\xae\xd4\xaf\xd4\xb0\xd4\xb1\xd4\xb2\xd4\xb3\xd4\xb4\xd4\xb5\xd4\xb6\xd4\xb7\xd4\xb8\xd4\xb9\xd4\xba\xd4\xbb\xd4\xbc\xd4\xbd\xd4\xbe\xd4\xbf\xd4\xc0\xd4\xc1\xd4\xc2\xd4\xc3\xd4\xc4\xd4\xc5\xd4\xc6\xd4\xc7\xd4\xc8\xd4\xc9\xd4\xca\xd4\xcb\xd4\xcc\xd4\xcd\xd4\xce\xd4\xcf\xd4\xd0\xd4\xd1\xd4\xd2\xd4\xd3\xd4\xd4\xd4\xd5\xd4\xd6\xd4\xd7\xd4\xd8\xd4\xd9\xd4\xda\xd4\xdb\xd4\xdc\xd4\xdd\xd4\xde\xd4\xdf\xd4\xe0\xd4\xe1\xd4\xe2\xd4\xe3\xd4\xe4\xd4\xe5\xd4\xe6\xd4\xe7\xd4\xe8\xd4\xe9\xd4\xea\xd4\xeb\xd4\xec\xd4\xed\xd4\xee\xd4\xef\xd4\xf0\xd4\xf1\xd4\xf2\xd4\xf3\xd4\xf4\xd4\xf5\xd4\xf6\xd4\xf7\xd4\xf8\xd4\xf9\xd4\xfa\xd4\xfb\xd4\xfc\xd4\xfd\xd4\xfe\xd5\x41\xd5\x42\xd5\x43\xd5\x44\xd5\x45\xd5\x46\xd5\x47", /* 3880 */ "\xd5\x48\xd5\x49\xd5\x4a\xd5\x4b\xd5\x4c\xd5\x4d\xd5\x4e\xd5\x4f\xd5\x50\xd5\x51\xd5\x52\xd5\x53\xd5\x54\xd5\x55\xd5\x56\xd5\x57\xd5\x58\xd5\x59\xd5\x5a\xd5\x5b\xd5\x5c\xd5\x5d\xd5\x5e\xd5\x5f\xd5\x60\xd5\x61\xd5\x62\xd5\x63\xd5\x64\xd5\x65\xd5\x66\xd5\x67\xd5\x68\xd5\x69\xd5\x6a\xd5\x6b\xd5\x6c\xd5\x6d\xd5\x6e\xd5\x6f\xd5\x70\xd5\x71\xd5\x72\xd5\x73\xd5\x74\xd5\x75\xd5\x76\xd5\x77\xd5\x78\xd5\x79\xd5\x7a\xd5\x7b\xd5\x7c\xd5\x7d\xd5\x7e\xd5\x7f\xd5\x80\xd5\x81\xd5\x82\xd5\x83\xd5\x84\xd5\x85\xd5\x86\xd5\x87\xd5\x88\xd5\x89\xd5\x8a\xd5\x8b\xd5\x8c\xd5\x8d\xd5\x8e\xd5\x8f\xd5\x90\xd5\x91\xd5\x92\xd5\x93\xd5\x94\xd5\x95\xd5\x96\xd5\x97\xd5\x98\xd5\x99\xd5\x9a\xd5\x9b\xd5\x9c\xd5\x9d\xd5\x9e\xd5\x9f\xd5\xa0\xd5\xa1\xd5\xa2\xd5\xa3\xd5\xa4\xd5\xa5\xd5\xa6\xd5\xa7\xd5\xa8\xd5\xa9\xd5\xaa\xd5\xab\xd5\xac\xd5\xad\xd5\xae\xd5\xaf\xd5\xb0\xd5\xb1\xd5\xb2\xd5\xb3\xd5\xb4\xd5\xb5\xd5\xb6\xd5\xb7\xd5\xb8\xd5\xb9\xd5\xba\xd5\xbb\xd5\xbc\xd5\xbd\xd5\xbe\xd5\xbf\xd5\xc0\xd5\xc1\xd5\xc2\xd5\xc3\xd5\xc4\xd5\xc5\xd5\xc6\xd5\xc7", /* 3900 */ "\xd5\xc8\xd5\xc9\xd5\xca\xd5\xcb\xd5\xcc\xd5\xcd\xd5\xce\xd5\xcf\xd5\xd0\xd5\xd1\xd5\xd2\xd5\xd3\xd5\xd4\xd5\xd5\xd5\xd6\xd5\xd7\xd5\xd8\xd5\xd9\xd5\xda\xd5\xdb\xd5\xdc\xd5\xdd\xd5\xde\xd5\xdf\xce\x66\xd5\xe0\xd5\xe1\xd5\xe2\xd5\xe3\xd5\xe4\xd5\xe5\xd5\xe6\xd5\xe7\xd5\xe8\xd5\xe9\xd5\xea\xd5\xeb\xd5\xec\xd5\xed\xd5\xee\xd5\xef\xd5\xf0\xd5\xf1\xd5\xf2\xd5\xf3\xd5\xf4\xd5\xf5\xd5\xf6\xd5\xf7\xd5\xf8\xd5\xf9\xd5\xfa\xd5\xfb\xd5\xfc\xd5\xfd\xd5\xfe\xd6\x41\xd6\x42\xd6\x43\xd6\x44\xd6\x45\xd6\x46\xd6\x47\xd6\x48\xd6\x49\xd6\x4a\xd6\x4b\xd6\x4c\xd6\x4d\xd6\x4e\xd6\x4f\xd6\x50\xd6\x51\xd6\x52\xd6\x53\xd6\x54\xd6\x55\xd6\x56\xd6\x57\xd6\x58\xd6\x59\xd6\x5a\xd6\x5b\xd6\x5c\xd6\x5d\xd6\x5e\xd6\x5f\xd6\x60\xd6\x61\xd6\x62\xd6\x63\xd6\x64\xd6\x65\xd6\x66\xd6\x67\xd6\x68\xd6\x69\xd6\x6a\xd6\x6b\xd6\x6c\xd6\x6d\xd6\x6e\xd6\x6f\xd6\x70\xd6\x71\xd6\x72\xd6\x73\xd6\x74\xd6\x75\xd6\x76\xce\x65\xd6\x77\xd6\x78\xd6\x79\xd6\x7a\xd6\x7b\xd6\x7c\xd6\x7d\xd6\x7e\xd6\x7f\xd6\x80\xd6\x81\xd6\x82\xd6\x83\xd6\x84\xd6\x85\xd6\x86\xd6\x87", /* 3980 */ "\xd6\x88\xd6\x89\xd6\x8a\xd6\x8b\xd6\x8c\xd6\x8d\xd6\x8e\xd6\x8f\xd6\x90\xd6\x91\xd6\x92\xd6\x93\xd6\x94\xd6\x95\xd6\x96\xd6\x97\xd6\x98\xd6\x99\xd6\x9a\xd6\x9b\xd6\x9c\xd6\x9d\xd6\x9e\xd6\x9f\xd6\xa0\xd6\xa1\xd6\xa2\xd6\xa3\xd6\xa4\xd6\xa5\xd6\xa6\xd6\xa7\xd6\xa8\xd6\xa9\xd6\xaa\xd6\xab\xd6\xac\xd6\xad\xd6\xae\xd6\xaf\xd6\xb0\xd6\xb1\xd6\xb2\xd6\xb3\xd6\xb4\xd6\xb5\xd6\xb6\xd6\xb7\xd6\xb8\xd6\xb9\xd6\xba\xd6\xbb\xd6\xbc\xd6\xbd\xd6\xbe\xd6\xbf\xd6\xc0\xd6\xc1\xd6\xc2\xd6\xc3\xd6\xc4\xd6\xc5\xd6\xc6\xd6\xc7\xd6\xc8\xd6\xc9\xd6\xca\xd6\xcb\xd6\xcc\xd6\xcd\xd6\xce\xd6\xcf\xd6\xd0\xd6\xd1\xd6\xd2\xd6\xd3\xd6\xd4\xd6\xd5\xd6\xd6\xce\x68\xce\x6b\xd6\xd7\xd6\xd8\xd6\xd9\xd6\xda\xd6\xdb\xd6\xdc\xd6\xdd\xd6\xde\xd6\xdf\xd6\xe0\xd6\xe1\xd6\xe2\xd6\xe3\xd6\xe4\xce\x69\xd6\xe5\xd6\xe6\xd6\xe7\xd6\xe8\xd6\xe9\xd6\xea\xd6\xeb\xd6\xec\xd6\xed\xd6\xee\xd6\xef\xd6\xf0\xd6\xf1\xd6\xf2\xd6\xf3\xd6\xf4\xd6\xf5\xd6\xf6\xd6\xf7\xd6\xf8\xd6\xf9\xd6\xfa\xd6\xfb\xd6\xfc\xd6\xfd\xd6\xfe\xd7\x41\xd7\x42\xd7\x43\xd7\x44\xd7\x45\xd7\x46", /* 3a00 */ "\xd7\x47\xd7\x48\xd7\x49\xd7\x4a\xd7\x4b\xd7\x4c\xd7\x4d\xd7\x4e\xd7\x4f\xd7\x50\xd7\x51\xd7\x52\xd7\x53\xd7\x54\xd7\x55\xd7\x56\xd7\x57\xd7\x58\xd7\x59\xd7\x5a\xd7\x5b\xd7\x5c\xd7\x5d\xd7\x5e\xd7\x5f\xd7\x60\xd7\x61\xd7\x62\xd7\x63\xd7\x64\xd7\x65\xd7\x66\xd7\x67\xd7\x68\xd7\x69\xd7\x6a\xd7\x6b\xd7\x6c\xd7\x6d\xd7\x6e\xd7\x6f\xd7\x70\xd7\x71\xd7\x72\xd7\x73\xd7\x74\xd7\x75\xd7\x76\xd7\x77\xd7\x78\xd7\x79\xd7\x7a\xd7\x7b\xd7\x7c\xd7\x7d\xd7\x7e\xd7\x7f\xd7\x80\xd7\x81\xd7\x82\xd7\x83\xd7\x84\xd7\x85\xd7\x86\xd7\x87\xd7\x88\xd7\x89\xd7\x8a\xd7\x8b\xd7\x8c\xd7\x8d\xd7\x8e\xd7\x8f\xd7\x90\xd7\x91\xd7\x92\xd7\x93\xd7\x94\xd7\x95\xd7\x96\xd7\x97\xd7\x98\xd7\x99\xd7\x9a\xd7\x9b\xd7\x9c\xd7\x9d\xd7\x9e\xd7\x9f\xd7\xa0\xd7\xa1\xd7\xa2\xd7\xa3\xd7\xa4\xd7\xa5\xd7\xa6\xd7\xa7\xd7\xa8\xd7\xa9\xd7\xaa\xd7\xab\xd7\xac\xd7\xad\xd7\xae\xd7\xaf\xd7\xb0\xd7\xb1\xd7\xb2\xd7\xb3\xd7\xb4\xd7\xb5\xd7\xb6\xd7\xb7\xd7\xb8\xd7\xb9\xce\x6a\xd7\xba\xd7\xbb\xd7\xbc\xd7\xbd\xd7\xbe\xd7\xbf\xd7\xc0\xd7\xc1\xd7\xc2\xd7\xc3\xd7\xc4\xd7\xc5", /* 3a80 */ "\xd7\xc6\xd7\xc7\xd7\xc8\xd7\xc9\xd7\xca\xd7\xcb\xd7\xcc\xd7\xcd\xd7\xce\xd7\xcf\xd7\xd0\xd7\xd1\xd7\xd2\xd7\xd3\xd7\xd4\xd7\xd5\xd7\xd6\xd7\xd7\xd7\xd8\xd7\xd9\xd7\xda\xd7\xdb\xd7\xdc\xd7\xdd\xd7\xde\xd7\xdf\xd7\xe0\xd7\xe1\xd7\xe2\xd7\xe3\xd7\xe4\xd7\xe5\xd7\xe6\xd7\xe7\xd7\xe8\xd7\xe9\xd7\xea\xd7\xeb\xd7\xec\xd7\xed\xd7\xee\xd7\xef\xd7\xf0\xd7\xf1\xd7\xf2\xd7\xf3\xd7\xf4\xd7\xf5\xd7\xf6\xd7\xf7\xd7\xf8\xd7\xf9\xd7\xfa\xd7\xfb\xd7\xfc\xd7\xfd\xd7\xfe\xd8\x41\xd8\x42\xd8\x43\xd8\x44\xd8\x45\xd8\x46\xd8\x47\xd8\x48\xd8\x49\xd8\x4a\xd8\x4b\xd8\x4c\xd8\x4d\xd8\x4e\xd8\x4f\xd8\x50\xd8\x51\xd8\x52\xd8\x53\xd8\x54\xd8\x55\xd8\x56\xd8\x57\xd8\x58\xd8\x59\xd8\x5a\xd8\x5b\xd8\x5c\xd8\x5d\xd8\x5e\xd8\x5f\xd8\x60\xd8\x61\xd8\x62\xd8\x63\xd8\x64\xd8\x65\xd8\x66\xd8\x67\xd8\x68\xd8\x69\xd8\x6a\xd8\x6b\xd8\x6c\xd8\x6d\xd8\x6e\xd8\x6f\xd8\x70\xd8\x71\xd8\x72\xd8\x73\xd8\x74\xd8\x75\xd8\x76\xd8\x77\xd8\x78\xd8\x79\xd8\x7a\xd8\x7b\xd8\x7c\xd8\x7d\xd8\x7e\xd8\x7f\xd8\x80\xd8\x81\xd8\x82\xd8\x83\xd8\x84\xd8\x85\xd8\x86\xd8\x87", /* 3b00 */ "\xd8\x88\xd8\x89\xd8\x8a\xd8\x8b\xd8\x8c\xd8\x8d\xd8\x8e\xd8\x8f\xd8\x90\xd8\x91\xd8\x92\xd8\x93\xd8\x94\xd8\x95\xd8\x96\xd8\x97\xd8\x98\xd8\x99\xd8\x9a\xd8\x9b\xd8\x9c\xd8\x9d\xd8\x9e\xd8\x9f\xd8\xa0\xd8\xa1\xd8\xa2\xd8\xa3\xd8\xa4\xd8\xa5\xd8\xa6\xd8\xa7\xd8\xa8\xd8\xa9\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae\xd8\xaf\xd8\xb0\xd8\xb1\xd8\xb2\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba\xd8\xbb\xd8\xbc\xd8\xbd\xd8\xbe\xd8\xbf\xd8\xc0\xd8\xc1\xd8\xc2\xd8\xc3\xd8\xc4\xd8\xc5\xd8\xc6\xd8\xc7\xd8\xc8\xd8\xc9\xd8\xca\xd8\xcb\xd8\xcc\xd8\xcd\xd8\xce\xd8\xcf\xd8\xd0\xd8\xd1\xd8\xd2\xd8\xd3\xd8\xd4\xd8\xd5\xce\x6e\xd8\xd6\xd8\xd7\xd8\xd8\xd8\xd9\xd8\xda\xd8\xdb\xd8\xdc\xd8\xdd\xd8\xde\xd8\xdf\xd8\xe0\xd8\xe1\xd8\xe2\xd8\xe3\xd8\xe4\xd8\xe5\xd8\xe6\xd8\xe7\xd8\xe8\xd8\xe9\xd8\xea\xd8\xeb\xd8\xec\xd8\xed\xd8\xee\xd8\xef\xd8\xf0\xd8\xf1\xd8\xf2\xd8\xf3\xd8\xf4\xd8\xf5\xd8\xf6\xd8\xf7\xd8\xf8\xd8\xf9\xd8\xfa\xd8\xfb\xd8\xfc\xd8\xfd\xd8\xfe\xd9\x41\xd9\x42\xd9\x43\xd9\x44\xd9\x45\xd9\x46\xd9\x47\xd9\x48", /* 3b80 */ "\xd9\x49\xd9\x4a\xd9\x4b\xd9\x4c\xd9\x4d\xd9\x4e\xd9\x4f\xd9\x50\xd9\x51\xd9\x52\xd9\x53\xd9\x54\xd9\x55\xd9\x56\xd9\x57\xd9\x58\xd9\x59\xd9\x5a\xd9\x5b\xd9\x5c\xd9\x5d\xd9\x5e\xd9\x5f\xd9\x60\xd9\x61\xd9\x62\xd9\x63\xd9\x64\xd9\x65\xd9\x66\xd9\x67\xd9\x68\xd9\x69\xd9\x6a\xd9\x6b\xd9\x6c\xd9\x6d\xd9\x6e\xd9\x6f\xd9\x70\xd9\x71\xd9\x72\xd9\x73\xd9\x74\xd9\x75\xd9\x76\xd9\x77\xd9\x78\xd9\x79\xd9\x7a\xd9\x7b\xd9\x7c\xd9\x7d\xd9\x7e\xd9\x7f\xd9\x80\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x88\xd9\x89\xd9\x8a\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f\xd9\x90\xd9\x91\xd9\x92\xd9\x93\xd9\x94\xd9\x95\xd9\x96\xd9\x97\xd9\x98\xd9\x99\xd9\x9a\xd9\x9b\xd9\x9c\xd9\x9d\xd9\x9e\xd9\x9f\xd9\xa0\xd9\xa1\xd9\xa2\xd9\xa3\xd9\xa4\xd9\xa5\xd9\xa6\xd9\xa7\xd9\xa8\xd9\xa9\xd9\xaa\xd9\xab\xd9\xac\xd9\xad\xd9\xae\xd9\xaf\xd9\xb0\xd9\xb1\xd9\xb2\xd9\xb3\xd9\xb4\xd9\xb5\xd9\xb6\xd9\xb7\xd9\xb8\xd9\xb9\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf\xd9\xc0\xd9\xc1\xd9\xc2\xd9\xc3\xd9\xc4\xd9\xc5\xd9\xc6\xd9\xc7\xd9\xc8", /* 3c00 */ "\xd9\xc9\xd9\xca\xd9\xcb\xd9\xcc\xd9\xcd\xd9\xce\xd9\xcf\xd9\xd0\xd9\xd1\xd9\xd2\xd9\xd3\xd9\xd4\xd9\xd5\xd9\xd6\xd9\xd7\xd9\xd8\xd9\xd9\xd9\xda\xd9\xdb\xd9\xdc\xd9\xdd\xd9\xde\xd9\xdf\xd9\xe0\xd9\xe1\xd9\xe2\xd9\xe3\xd9\xe4\xd9\xe5\xd9\xe6\xd9\xe7\xd9\xe8\xd9\xe9\xd9\xea\xd9\xeb\xd9\xec\xd9\xed\xd9\xee\xd9\xef\xd9\xf0\xd9\xf1\xd9\xf2\xd9\xf3\xd9\xf4\xd9\xf5\xd9\xf6\xd9\xf7\xd9\xf8\xd9\xf9\xd9\xfa\xd9\xfb\xd9\xfc\xd9\xfd\xd9\xfe\xda\x41\xda\x42\xda\x43\xda\x44\xda\x45\xda\x46\xda\x47\xda\x48\xda\x49\xda\x4a\xda\x4b\xda\x4c\xda\x4d\xda\x4e\xda\x4f\xda\x50\xda\x51\xda\x52\xda\x53\xda\x54\xda\x55\xda\x56\xda\x57\xda\x58\xda\x59\xda\x5a\xda\x5b\xda\x5c\xda\x5d\xda\x5e\xda\x5f\xda\x60\xda\x61\xda\x62\xda\x63\xda\x64\xda\x65\xda\x66\xda\x67\xda\x68\xda\x69\xda\x6a\xda\x6b\xda\x6c\xda\x6d\xda\x6e\xda\x6f\xda\x70\xda\x71\xda\x72\xda\x73\xda\x74\xda\x75\xda\x76\xda\x77\xda\x78\xce\x6f\xda\x79\xda\x7a\xda\x7b\xda\x7c\xda\x7d\xda\x7e\xda\x7f\xda\x80\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87\xda\x88\xda\x89", /* 3c80 */ "\xda\x8a\xda\x8b\xda\x8c\xda\x8d\xda\x8e\xda\x8f\xda\x90\xda\x91\xda\x92\xda\x93\xda\x94\xda\x95\xda\x96\xda\x97\xda\x98\xda\x99\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f\xda\xa0\xda\xa1\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8\xda\xa9\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9\xda\xba\xda\xbb\xda\xbc\xda\xbd\xda\xbe\xda\xbf\xda\xc0\xda\xc1\xda\xc2\xda\xc3\xda\xc4\xda\xc5\xda\xc6\xda\xc7\xda\xc8\xda\xc9\xda\xca\xda\xcb\xda\xcc\xda\xcd\xda\xce\xda\xcf\xda\xd0\xda\xd1\xda\xd2\xda\xd3\xda\xd4\xda\xd5\xda\xd6\xda\xd7\xda\xd8\xda\xd9\xda\xda\xda\xdb\xda\xdc\xda\xdd\xda\xde\xda\xdf\xda\xe0\xda\xe1\xda\xe2\xda\xe3\xda\xe4\xda\xe5\xda\xe6\xda\xe7\xda\xe8\xda\xe9\xce\x70\xda\xea\xda\xeb\xda\xec\xda\xed\xda\xee\xda\xef\xda\xf0\xda\xf1\xda\xf2\xda\xf3\xda\xf4\xda\xf5\xda\xf6\xda\xf7\xda\xf8\xda\xf9\xda\xfa\xda\xfb\xda\xfc\xda\xfd\xda\xfe\xdb\x41\xdb\x42\xdb\x43\xdb\x44\xdb\x45\xdb\x46\xdb\x47\xdb\x48\xdb\x49\xdb\x4a", /* 3d00 */ "\xdb\x4b\xdb\x4c\xdb\x4d\xdb\x4e\xdb\x4f\xdb\x50\xdb\x51\xdb\x52\xdb\x53\xdb\x54\xdb\x55\xdb\x56\xdb\x57\xdb\x58\xdb\x59\xdb\x5a\xdb\x5b\xdb\x5c\xdb\x5d\xdb\x5e\xdb\x5f\xdb\x60\xdb\x61\xdb\x62\xdb\x63\xdb\x64\xdb\x65\xdb\x66\xdb\x67\xdb\x68\xdb\x69\xdb\x6a\xdb\x6b\xdb\x6c\xdb\x6d\xdb\x6e\xdb\x6f\xdb\x70\xdb\x71\xdb\x72\xdb\x73\xdb\x74\xdb\x75\xdb\x76\xdb\x77\xdb\x78\xdb\x79\xdb\x7a\xdb\x7b\xdb\x7c\xdb\x7d\xdb\x7e\xdb\x7f\xdb\x80\xdb\x81\xdb\x82\xdb\x83\xdb\x84\xdb\x85\xdb\x86\xdb\x87\xdb\x88\xdb\x89\xdb\x8a\xdb\x8b\xdb\x8c\xdb\x8d\xdb\x8e\xdb\x8f\xdb\x90\xdb\x91\xdb\x92\xdb\x93\xdb\x94\xdb\x95\xdb\x96\xdb\x97\xdb\x98\xdb\x99\xdb\x9a\xdb\x9b\xdb\x9c\xdb\x9d\xdb\x9e\xdb\x9f\xdb\xa0\xdb\xa1\xdb\xa2\xdb\xa3\xdb\xa4\xdb\xa5\xdb\xa6\xdb\xa7\xdb\xa8\xdb\xa9\xdb\xaa\xdb\xab\xdb\xac\xdb\xad\xdb\xae\xdb\xaf\xdb\xb0\xdb\xb1\xdb\xb2\xdb\xb3\xdb\xb4\xdb\xb5\xdb\xb6\xdb\xb7\xdb\xb8\xdb\xb9\xdb\xba\xdb\xbb\xdb\xbc\xdb\xbd\xdb\xbe\xdb\xbf\xdb\xc0\xdb\xc1\xdb\xc2\xdb\xc3\xdb\xc4\xdb\xc5\xdb\xc6\xdb\xc7\xdb\xc8\xdb\xc9\xdb\xca", /* 3d80 */ "\xdb\xcb\xdb\xcc\xdb\xcd\xdb\xce\xdb\xcf\xdb\xd0\xdb\xd1\xdb\xd2\xdb\xd3\xdb\xd4\xdb\xd5\xdb\xd6\xdb\xd7\xdb\xd8\xdb\xd9\xdb\xda\xdb\xdb\xdb\xdc\xdb\xdd\xdb\xde\xdb\xdf\xdb\xe0\xdb\xe1\xdb\xe2\xdb\xe3\xdb\xe4\xdb\xe5\xdb\xe6\xdb\xe7\xdb\xe8\xdb\xe9\xdb\xea\xdb\xeb\xdb\xec\xdb\xed\xdb\xee\xdb\xef\xdb\xf0\xdb\xf1\xdb\xf2\xdb\xf3\xdb\xf4\xdb\xf5\xdb\xf6\xdb\xf7\xdb\xf8\xdb\xf9\xdb\xfa\xdb\xfb\xdb\xfc\xdb\xfd\xdb\xfe\xdc\x41\xdc\x42\xdc\x43\xdc\x44\xdc\x45\xdc\x46\xdc\x47\xdc\x48\xdc\x49\xdc\x4a\xdc\x4b\xdc\x4c\xdc\x4d\xdc\x4e\xdc\x4f\xdc\x50\xdc\x51\xdc\x52\xdc\x53\xdc\x54\xdc\x55\xdc\x56\xdc\x57\xdc\x58\xdc\x59\xdc\x5a\xdc\x5b\xdc\x5c\xdc\x5d\xdc\x5e\xdc\x5f\xdc\x60\xdc\x61\xdc\x62\xdc\x63\xdc\x64\xdc\x65\xdc\x66\xdc\x67\xdc\x68\xdc\x69\xdc\x6a\xdc\x6b\xdc\x6c\xdc\x6d\xdc\x6e\xdc\x6f\xdc\x70\xdc\x71\xdc\x72\xdc\x73\xdc\x74\xdc\x75\xdc\x76\xdc\x77\xdc\x78\xdc\x79\xdc\x7a\xdc\x7b\xdc\x7c\xdc\x7d\xdc\x7e\xdc\x7f\xdc\x80\xdc\x81\xdc\x82\xdc\x83\xdc\x84\xdc\x85\xdc\x86\xdc\x87\xdc\x88\xdc\x89\xdc\x8a\xdc\x8b\xdc\x8c", /* 3e00 */ "\xdc\x8d\xdc\x8e\xdc\x8f\xdc\x90\xdc\x91\xdc\x92\xdc\x93\xdc\x94\xdc\x95\xdc\x96\xdc\x97\xdc\x98\xdc\x99\xdc\x9a\xdc\x9b\xdc\x9c\xdc\x9d\xdc\x9e\xdc\x9f\xdc\xa0\xdc\xa1\xdc\xa2\xdc\xa3\xdc\xa4\xdc\xa5\xdc\xa6\xdc\xa7\xdc\xa8\xdc\xa9\xdc\xaa\xdc\xab\xdc\xac\xdc\xad\xdc\xae\xdc\xaf\xdc\xb0\xdc\xb1\xdc\xb2\xdc\xb3\xdc\xb4\xdc\xb5\xdc\xb6\xdc\xb7\xdc\xb8\xdc\xb9\xdc\xba\xdc\xbb\xdc\xbc\xdc\xbd\xdc\xbe\xdc\xbf\xdc\xc0\xdc\xc1\xdc\xc2\xdc\xc3\xdc\xc4\xdc\xc5\xdc\xc6\xdc\xc7\xdc\xc8\xdc\xc9\xdc\xca\xdc\xcb\xdc\xcc\xdc\xcd\xdc\xce\xdc\xcf\xdc\xd0\xdc\xd1\xdc\xd2\xdc\xd3\xdc\xd4\xdc\xd5\xdc\xd6\xdc\xd7\xdc\xd8\xdc\xd9\xdc\xda\xdc\xdb\xdc\xdc\xdc\xdd\xdc\xde\xdc\xdf\xdc\xe0\xdc\xe1\xdc\xe2\xdc\xe3\xdc\xe4\xdc\xe5\xdc\xe6\xdc\xe7\xdc\xe8\xdc\xe9\xdc\xea\xdc\xeb\xdc\xec\xdc\xed\xdc\xee\xdc\xef\xdc\xf0\xdc\xf1\xdc\xf2\xdc\xf3\xdc\xf4\xdc\xf5\xdc\xf6\xdc\xf7\xdc\xf8\xdc\xf9\xdc\xfa\xdc\xfb\xdc\xfc\xdc\xfd\xdc\xfe\xdd\x41\xdd\x42\xdd\x43\xdd\x44\xdd\x45\xdd\x46\xdd\x47\xdd\x48\xdd\x49\xdd\x4a\xdd\x4b\xdd\x4c\xdd\x4d\xdd\x4e", /* 3e80 */ "\xdd\x4f\xdd\x50\xdd\x51\xdd\x52\xdd\x53\xdd\x54\xdd\x55\xdd\x56\xdd\x57\xdd\x58\xdd\x59\xdd\x5a\xdd\x5b\xdd\x5c\xdd\x5d\xdd\x5e\xdd\x5f\xdd\x60\xdd\x61\xdd\x62\xdd\x63\xdd\x64\xdd\x65\xdd\x66\xdd\x67\xdd\x68\xdd\x69\xdd\x6a\xdd\x6b\xdd\x6c\xdd\x6d\xdd\x6e\xdd\x6f\xdd\x70\xdd\x71\xdd\x72\xdd\x73\xdd\x74\xdd\x75\xdd\x76\xdd\x77\xdd\x78\xdd\x79\xdd\x7a\xdd\x7b\xdd\x7c\xdd\x7d\xdd\x7e\xdd\x7f\xdd\x80\xdd\x81\xdd\x82\xdd\x83\xdd\x84\xdd\x85\xdd\x86\xdd\x87\xdd\x88\xdd\x89\xdd\x8a\xdd\x8b\xdd\x8c\xdd\x8d\xdd\x8e\xdd\x8f\xdd\x90\xdd\x91\xdd\x92\xdd\x93\xdd\x94\xdd\x95\xdd\x96\xdd\x97\xdd\x98\xdd\x99\xdd\x9a\xdd\x9b\xdd\x9c\xdd\x9d\xdd\x9e\xdd\x9f\xdd\xa0\xdd\xa1\xdd\xa2\xdd\xa3\xdd\xa4\xdd\xa5\xdd\xa6\xdd\xa7\xdd\xa8\xdd\xa9\xdd\xaa\xdd\xab\xdd\xac\xdd\xad\xdd\xae\xdd\xaf\xdd\xb0\xdd\xb1\xdd\xb2\xdd\xb3\xdd\xb4\xdd\xb5\xdd\xb6\xdd\xb7\xdd\xb8\xdd\xb9\xdd\xba\xdd\xbb\xdd\xbc\xdd\xbd\xdd\xbe\xdd\xbf\xdd\xc0\xdd\xc1\xdd\xc2\xdd\xc3\xdd\xc4\xdd\xc5\xdd\xc6\xdd\xc7\xdd\xc8\xdd\xc9\xdd\xca\xdd\xcb\xdd\xcc\xdd\xcd\xdd\xce", /* 3f00 */ "\xdd\xcf\xdd\xd0\xdd\xd1\xdd\xd2\xdd\xd3\xdd\xd4\xdd\xd5\xdd\xd6\xdd\xd7\xdd\xd8\xdd\xd9\xdd\xda\xdd\xdb\xdd\xdc\xdd\xdd\xdd\xde\xdd\xdf\xdd\xe0\xdd\xe1\xdd\xe2\xdd\xe3\xdd\xe4\xdd\xe5\xdd\xe6\xdd\xe7\xdd\xe8\xdd\xe9\xdd\xea\xdd\xeb\xdd\xec\xdd\xed\xdd\xee\xdd\xef\xdd\xf0\xdd\xf1\xdd\xf2\xdd\xf3\xdd\xf4\xdd\xf5\xdd\xf6\xdd\xf7\xdd\xf8\xdd\xf9\xdd\xfa\xdd\xfb\xdd\xfc\xdd\xfd\xdd\xfe\xde\x41\xde\x42\xde\x43\xde\x44\xde\x45\xde\x46\xde\x47\xde\x48\xde\x49\xde\x4a\xde\x4b\xde\x4c\xde\x4d\xde\x4e\xde\x4f\xde\x50\xde\x51\xde\x52\xde\x53\xde\x54\xde\x55\xde\x56\xde\x57\xde\x58\xde\x59\xde\x5a\xde\x5b\xde\x5c\xde\x5d\xde\x5e\xde\x5f\xde\x60\xde\x61\xde\x62\xde\x63\xde\x64\xde\x65\xde\x66\xde\x67\xde\x68\xde\x69\xde\x6a\xde\x6b\xde\x6c\xde\x6d\xde\x6e\xde\x6f\xde\x70\xde\x71\xde\x72\xde\x73\xde\x74\xde\x75\xde\x76\xde\x77\xde\x78\xde\x79\xde\x7a\xde\x7b\xde\x7c\xde\x7d\xde\x7e\xde\x7f\xde\x80\xde\x81\xde\x82\xde\x83\xde\x84\xde\x85\xde\x86\xde\x87\xde\x88\xde\x89\xde\x8a\xde\x8b\xde\x8c\xde\x8d\xde\x8e\xde\x8f\xde\x90", /* 3f80 */ "\xde\x91\xde\x92\xde\x93\xde\x94\xde\x95\xde\x96\xde\x97\xde\x98\xde\x99\xde\x9a\xde\x9b\xde\x9c\xde\x9d\xde\x9e\xde\x9f\xde\xa0\xde\xa1\xde\xa2\xde\xa3\xde\xa4\xde\xa5\xde\xa6\xde\xa7\xde\xa8\xde\xa9\xde\xaa\xde\xab\xde\xac\xde\xad\xde\xae\xde\xaf\xde\xb0\xde\xb1\xde\xb2\xde\xb3\xde\xb4\xde\xb5\xde\xb6\xde\xb7\xde\xb8\xde\xb9\xde\xba\xde\xbb\xde\xbc\xde\xbd\xde\xbe\xde\xbf\xde\xc0\xde\xc1\xde\xc2\xde\xc3\xde\xc4\xde\xc5\xde\xc6\xde\xc7\xde\xc8\xde\xc9\xde\xca\xde\xcb\xde\xcc\xde\xcd\xde\xce\xde\xcf\xde\xd0\xde\xd1\xde\xd2\xde\xd3\xde\xd4\xde\xd5\xde\xd6\xde\xd7\xde\xd8\xde\xd9\xde\xda\xde\xdb\xde\xdc\xde\xdd\xde\xde\xde\xdf\xde\xe0\xde\xe1\xde\xe2\xde\xe3\xde\xe4\xde\xe5\xde\xe6\xde\xe7\xde\xe8\xde\xe9\xde\xea\xde\xeb\xde\xec\xde\xed\xde\xee\xde\xef\xde\xf0\xde\xf1\xde\xf2\xde\xf3\xde\xf4\xde\xf5\xde\xf6\xde\xf7\xde\xf8\xde\xf9\xde\xfa\xde\xfb\xde\xfc\xde\xfd\xde\xfe\xdf\x41\xdf\x42\xdf\x43\xdf\x44\xdf\x45\xdf\x46\xdf\x47\xdf\x48\xdf\x49\xdf\x4a\xdf\x4b\xdf\x4c\xdf\x4d\xdf\x4e\xdf\x4f\xdf\x50\xdf\x51\xdf\x52", /* 4000 */ "\xdf\x53\xdf\x54\xdf\x55\xdf\x56\xdf\x57\xdf\x58\xdf\x59\xdf\x5a\xdf\x5b\xdf\x5c\xdf\x5d\xdf\x5e\xdf\x5f\xdf\x60\xdf\x61\xdf\x62\xdf\x63\xdf\x64\xdf\x65\xdf\x66\xdf\x67\xdf\x68\xdf\x69\xdf\x6a\xdf\x6b\xdf\x6c\xdf\x6d\xdf\x6e\xdf\x6f\xdf\x70\xdf\x71\xdf\x72\xdf\x73\xdf\x74\xdf\x75\xdf\x76\xdf\x77\xdf\x78\xdf\x79\xdf\x7a\xdf\x7b\xdf\x7c\xdf\x7d\xdf\x7e\xdf\x7f\xdf\x80\xdf\x81\xdf\x82\xdf\x83\xdf\x84\xdf\x85\xdf\x86\xdf\x87\xdf\x88\xdf\x89\xdf\x8a\xdf\x8b\xdf\x8c\xdf\x8d\xdf\x8e\xdf\x8f\xdf\x90\xdf\x91\xdf\x92\xdf\x93\xdf\x94\xdf\x95\xdf\x96\xdf\x97\xdf\x98\xdf\x99\xdf\x9a\xdf\x9b\xdf\x9c\xdf\x9d\xdf\x9e\xdf\x9f\xdf\xa0\xdf\xa1\xdf\xa2\xdf\xa3\xdf\xa4\xdf\xa5\xdf\xa6\xdf\xa7\xdf\xa8\xce\x75\xdf\xa9\xdf\xaa\xdf\xab\xdf\xac\xdf\xad\xdf\xae\xdf\xaf\xdf\xb0\xdf\xb1\xdf\xb2\xdf\xb3\xdf\xb4\xdf\xb5\xdf\xb6\xdf\xb7\xdf\xb8\xdf\xb9\xdf\xba\xdf\xbb\xdf\xbc\xdf\xbd\xdf\xbe\xdf\xbf\xdf\xc0\xdf\xc1\xdf\xc2\xdf\xc3\xdf\xc4\xdf\xc5\xdf\xc6\xdf\xc7\xdf\xc8\xdf\xc9\xdf\xca\xdf\xcb\xdf\xcc\xdf\xcd\xdf\xce\xdf\xcf\xdf\xd0\xdf\xd1", /* 4080 */ "\xdf\xd2\xdf\xd3\xdf\xd4\xdf\xd5\xdf\xd6\xdf\xd7\xdf\xd8\xdf\xd9\xdf\xda\xdf\xdb\xdf\xdc\xdf\xdd\xdf\xde\xdf\xdf\xdf\xe0\xdf\xe1\xdf\xe2\xdf\xe3\xdf\xe4\xdf\xe5\xdf\xe6\xdf\xe7\xdf\xe8\xdf\xe9\xdf\xea\xdf\xeb\xdf\xec\xdf\xed\xdf\xee\xdf\xef\xdf\xf0\xdf\xf1\xdf\xf2\xdf\xf3\xdf\xf4\xdf\xf5\xdf\xf6\xdf\xf7\xdf\xf8\xdf\xf9\xdf\xfa\xdf\xfb\xdf\xfc\xdf\xfd\xdf\xfe\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93", /* 4100 */ "\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xce\x76\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54", /* 4180 */ "\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4", /* 4200 */ "\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96", /* 4280 */ "\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58", /* 4300 */ "\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xce\x78\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7", /* 4380 */ "\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xce\x7e\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xce\x7d\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xce\x81\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96", /* 4400 */ "\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58", /* 4480 */ "\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xce\x82\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7", /* 4500 */ "\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99", /* 4580 */ "\xe6\x9a\xe6\x9b\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b", /* 4600 */ "\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xce\x84\xe7\xa8\xe7\xa9\xe7\xaa\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xce\x83\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9", /* 4680 */ "\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b", /* 4700 */ "\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xce\x86\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xce\x87\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xce\x88\xe9\x58\xe9\x59\xe9\x5a", /* 4780 */ "\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xce\x89\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9", /* 4800 */ "\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b", /* 4880 */ "\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xeb\x41\xeb\x42\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d", /* 4900 */ "\xeb\x5e\xeb\x5f\xeb\x60\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xce\x8b\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xce\x8c\xeb\xd7\xeb\xd8\xce\x8d\xeb\xd9\xeb\xda", /* 4980 */ "\xeb\xdb\xeb\xdc\xce\x8e\xce\x8f\xeb\xdd\xce\x90\xce\x91\xeb\xde\xeb\xdf\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xce\x93\xeb\xf2\xeb\xf3\xeb\xf4\xce\x92\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xce\x95\xce\x94\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94", /* 4a00 */ "\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56", /* 4a80 */ "\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6", /* 4b00 */ "\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98", /* 4b80 */ "\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a", /* 4c00 */ "\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xce\x9c\xef\xd2\xef\xd3\xef\xd4\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9", /* 4c80 */ "\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xce\x99\xce\x9a\xce\x9b\xce\x9d\xce\x98\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xf6\x41\xf6\x42\xf6\x43\xf6\x44\xf6\x45\xf6\x46\xf6\x47\xf6\x48\xf6\x49\xf6\x4a\xf6\x4b\xf6\x4c\xf6\x4d\xf6\x4e\xf6\x4f\xf6\x50\xf6\x51\xf6\x52\xf6\x53\xf6\x54\xf6\x55\xf6\x56\xf6\x57\xf6\x58\xf6\x59\xf6\x5a\xf6\x5b\xf6\x5c\xf6\x5d\xf6\x5e\xf6\x5f\xf6\x60\xf6\x61\xf6\x62\xf6\x63\xf6\x64\xf6\x65\xf6\x66\xf6\x67\xf6\x68\xf6\x69\xf6\x6a\xf6\x6b\xf6\x6c\xf6\x6d\xf6\x6e\xf6\x6f\xf6\x70\xf6\x71\xf6\x72\xf6\x73\xf6\x74\xf6\x75\xf6\x76\xf6\x77\xf6\x78\xf6\x79\xf6\x7a\xf6\x7b\xf6\x7c\xf6\x7d\xf6\x7e\xf6\x7f\xf6\x80\xf6\x81\xf6\x82\xf6\x83\xf6\x84\xf6\x85\xf6\x86\xf6\x87\xf6\x88\xf6\x89\xf6\x8a\xf6\x8b\xf6\x8c\xf6\x8d\xf6\x8e\xf6\x8f\xf6\x90\xf6\x91\xf6\x92\xf6\x93\xf6\x94\xf6\x95\xf6\x96", /* 4d00 */ "\xf6\x97\xf6\x98\xf6\x99\xf6\x9a\xf6\x9b\xf6\x9c\xf6\x9d\xf6\x9e\xf6\x9f\xf6\xa0\xf6\xa1\xf6\xa2\xf6\xa3\xf6\xa4\xf6\xa5\xf6\xa6\xf6\xa7\xf6\xa8\xf6\xa9\xce\x9e\xce\x9f\xce\xa0\xce\xa1\xce\xa2\xce\xa3\xce\xa4\xf6\xaa\xf6\xab\xf6\xac\xf6\xad\xf6\xae\xf6\xaf\xf6\xb0\xf6\xb1\xf6\xb2\xf6\xb3\xf6\xb4\xf6\xb5\xf6\xb6\xf6\xb7\xf6\xb8\xf6\xb9\xf6\xba\xf6\xbb\xf6\xbc\xf6\xbd\xf6\xbe\xf6\xbf\xf6\xc0\xf6\xc1\xf6\xc2\xf6\xc3\xf6\xc4\xf6\xc5\xf6\xc6\xf6\xc7\xf6\xc8\xf6\xc9\xf6\xca\xf6\xcb\xf6\xcc\xf6\xcd\xf6\xce\xf6\xcf\xf6\xd0\xf6\xd1\xf6\xd2\xf6\xd3\xf6\xd4\xf6\xd5\xf6\xd6\xf6\xd7\xf6\xd8\xf6\xd9\xf6\xda\xf6\xdb\xf6\xdc\xf6\xdd\xf6\xde\xf6\xdf\xf6\xe0\xf6\xe1\xf6\xe2\xf6\xe3\xf6\xe4\xf6\xe5\xf6\xe6\xf6\xe7\xf6\xe8\xf6\xe9\xf6\xea\xf6\xeb\xf6\xec\xf6\xed\xf6\xee\xf6\xef\xf6\xf0\xf6\xf1\xf6\xf2\xf6\xf3\xf6\xf4\xf6\xf5\xf6\xf6\xf6\xf7\xf6\xf8\xf6\xf9\xf6\xfa\xf6\xfb\xf6\xfc\xf6\xfd\xf6\xfe\xf7\x41\xf7\x42\xf7\x43\xf7\x44\xf7\x45\xf7\x46\xf7\x47\xf7\x48\xf7\x49\xf7\x4a\xf7\x4b\xf7\x4c\xf7\x4d\xf7\x4e\xf7\x4f\xf7\x50\xf7\x51", /* 4d80 */ "\xf7\x52\xf7\x53\xf7\x54\xf7\x55\xf7\x56\xf7\x57\xf7\x58\xf7\x59\xf7\x5a\xf7\x5b\xf7\x5c\xf7\x5d\xf7\x5e\xf7\x5f\xf7\x60\xf7\x61\xf7\x62\xf7\x63\xf7\x64\xf7\x65\xf7\x66\xf7\x67\xf7\x68\xf7\x69\xf7\x6a\xf7\x6b\xf7\x6c\xf7\x6d\xf7\x6e\xf7\x6f\xf7\x70\xf7\x71\xf7\x72\xf7\x73\xf7\x74\xf7\x75\xf7\x76\xf7\x77\xf7\x78\xf7\x79\xf7\x7a\xf7\x7b\xf7\x7c\xf7\x7d\xf7\x7e\xf7\x7f\xce\xa5\xf7\x80\xf7\x81\xf7\x82\xf7\x83\xf7\x84\xf7\x85\xf7\x86\xf7\x87\xf7\x88\xf7\x89\xf7\x8a\xf7\x8b\xf7\x8c\xf7\x8d\xf7\x8e\xf7\x8f\xf7\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4e00 */ "\x59\xba\x4b\xa0\x81\x41\x53\xde\x81\x42\x81\x43\x81\x44\x57\x93\x5b\x69\x54\xfc\x55\x6f\x58\x62\x5c\xa1\x49\xba\x5a\x8c\x81\x45\x5c\xa3\x4a\x94\x81\x46\x5c\x48\x54\x72\x5c\xa6\x55\xbf\x81\x47\x54\x91\x49\x9c\x59\xb4\x4a\xd3\x4b\xaa\x56\x5f\x5c\xa8\x81\x48\x81\x49\x81\x4a\x4b\xa9\x81\x4b\x51\x5d\x59\x6f\x81\x4c\x55\x45\x5c\xac\x81\x4d\x4c\xf5\x59\x5e\x62\x7c\x5b\xcf\x81\x4e\x81\x4f\x4c\x82\x81\x50\x4a\xad\x81\x51\x51\x79\x81\x52\x5c\xbb\x81\x53\x57\x89\x4b\x44\x57\xa9\x5b\xf6\x81\x54\x50\xf5\x4f\xd8\x5c\xae\x81\x55\x81\x56\x81\x57\x52\xca\x81\x58\x4f\xc2\x81\x59\x5c\xb0\x52\x54\x59\xe4\x81\x5a\x5b\xad\x57\xd9\x5b\x47\x4d\xf4\x4c\x46\x50\xd5\x81\x5b\x53\xb8\x53\x72\x54\x67\x81\x5c\x4d\x74\x81\x5d\x4a\x6b\x59\xd1\x81\x5e\x81\x5f\x5c\xbe\x4f\xc4\x53\xf1\x59\xb1\x58\x50\x58\x88\x81\x60\x81\x61\x81\x62\x81\x63\x55\xe8\x81\x64\x81\x65\x5c\xbf\x81\x66\x81\x67\x81\x68\x81\x69\x81\x6a\x81\x6b\x51\xf1\x51\xd1\x81\x6c\x54\xe8\x81\x6d\x81\x6e\x81\x6f\x81\x70\x81\x71\x81\x72\x81\x73\x81\x74\x81\x75\x81\x76\x54\x4c\x81\x77", /* 4e80 */ "\x81\x78\x81\x79\x81\x7a\x81\x7b\x81\x7c\x81\x7d\x51\x6b\x81\x7e\x5a\x89\x5b\x9a\x81\x7f\x55\xc1\x4b\xfd\x5c\xa0\x5a\x7a\x50\x98\x81\x81\x5a\xc5\x4e\x45\x5c\xc0\x57\xe4\x4f\xad\x81\x82\x81\x83\x5c\xa7\x81\x84\x59\x67\x58\xa8\x81\x85\x81\x86\x81\x87\x5c\xbc\x5d\x90\x57\x97\x50\x5a\x81\x88\x4f\x5b\x4d\xa4\x59\xdf\x49\xf9\x4d\xdf\x52\xb5\x81\x89\x58\x8e\x4f\xa8\x57\x44\x51\x61\x81\x8a\x81\x8b\x81\x8c\x54\x77\x5d\x92\x81\x8d\x5d\x95\x81\x8e\x81\x8f\x81\x90\x81\x91\x54\xca\x5c\xe8\x81\x92\x81\x93\x81\x94\x59\xd9\x55\xb1\x54\xc9\x5c\xeb\x5c\xe9\x5c\xc5\x4f\x97\x53\xcc\x4a\x91\x81\x95\x5c\xea\x4f\x92\x4f\x8a\x81\x96\x54\xd3\x4a\xd2\x81\x97\x81\x98\x51\xd7\x81\x99\x49\xd5\x5c\x70\x55\xca\x56\x9c\x5b\x6c\x4c\xb5\x58\x69\x81\x9a\x81\x9b\x81\x9c\x5d\x7a\x5c\xef\x54\x4a\x81\x9d\x5c\xed\x81\x9e\x4a\xf9\x51\x8f\x59\xd3\x81\x9f\x81\xa0\x5c\xec\x81\xa1\x59\xc6\x5c\xee\x52\x67\x81\xa2\x81\xa3\x81\xa4\x59\x97\x81\xa5\x5b\xd8\x5c\xf1\x81\xa6\x5c\xf4\x4e\xfd\x4e\xda\x81\xa7\x81\xa8\x81\xa9\x54\xcd\x81\xaa\x4c\x7d\x81\xab\x4c\x62", /* 4f00 */ "\x81\xac\x53\xf2\x81\xad\x81\xae\x81\xaf\x81\xb0\x81\xb1\x81\xb2\x81\xb3\x5c\xf7\x59\xc0\x81\xb4\x81\xb5\x57\xe8\x4e\xbe\x4c\x9d\x4c\x45\x58\xdc\x81\xb6\x81\xb7\x81\xb8\x81\xb9\x81\xba\x5b\xd9\x5a\x65\x4e\x90\x4e\x82\x5c\xf0\x81\xbb\x81\xbc\x55\x41\x57\xaf\x4a\xaa\x81\xbd\x5c\xf2\x81\xbe\x55\x6b\x5c\xf5\x51\xd6\x5c\xf6\x81\xbf\x81\xc0\x57\xb0\x5c\xf8\x81\xc1\x81\xc2\x81\xc3\x49\xad\x4d\x60\x81\xc4\x5d\x43\x81\xc5\x48\xe8\x81\xc6\x51\x87\x81\xc7\x55\x8d\x81\xc8\x56\x65\x81\xc9\x56\x66\x5d\x44\x81\xca\x81\xcb\x81\xcc\x81\xcd\x81\xce\x4b\x89\x81\xcf\x81\xd0\x4b\x4b\x81\xd1\x81\xd2\x81\xd3\x81\xd4\x81\xd5\x81\xd6\x57\xba\x4b\x6d\x5c\x41\x5c\x95\x5a\x73\x81\xd7\x56\xe4\x81\xd8\x4d\xcd\x81\xd9\x5d\x42\x5d\x7c\x5a\x81\x5c\xfc\x4c\x91\x5c\x98\x5c\xfd\x5c\xf9\x5d\x41\x52\xe2\x81\xda\x81\xdb\x5a\x56\x5c\xf3\x5d\x7d\x81\xdc\x5c\xfa\x81\xdd\x53\x86\x81\xde\x81\xdf\x50\xcf\x81\xe0\x81\xe1\x59\x91\x48\xda\x81\xe2\x81\xe3\x4e\xd0\x5d\x46\x81\xe4\x5d\x45\x81\xe5\x81\xe6\x81\xe7\x81\xe8\x5d\x4c\x5d\x4e\x81\xe9\x5d\x4b\x55\xb8", /* 4f80 */ "\x81\xea\x81\xeb\x81\xec\x5d\x49\x5b\xb5\x81\xed\x81\xee\x81\xef\x4a\x7e\x5d\x48\x81\xf0\x50\xfc\x81\xf1\x55\xcb\x81\xf2\x5d\x4a\x81\xf3\x5d\x47\x81\xf4\x81\xf5\x5d\x50\x81\xf6\x81\xf7\x4b\xb0\x81\xf8\x81\xf9\x81\xfa\x4d\x49\x81\xfb\x59\xbf\x81\xfc\x81\xfd\x58\x60\x82\x41\x82\x42\x51\xc1\x82\x43\x4f\x64\x5b\x8d\x49\xdf\x54\x68\x50\x8c\x5d\x4d\x82\x44\x5d\x4f\x82\x45\x57\xe9\x4d\xed\x82\x46\x82\x47\x82\x48\x82\x49\x82\x4a\x54\x76\x82\x4b\x82\x4c\x82\x4d\x82\x4e\x82\x4f\x82\x50\x82\x51\x82\x52\x82\x53\x49\x84\x82\x54\x82\x55\x82\x56\x4a\xd8\x4b\xec\x5d\x54\x82\x57\x82\x58\x82\x59\x82\x5a\x50\x41\x82\x5b\x82\x5c\x82\x5d\x5d\x7e\x54\x6e\x50\xfd\x5d\x58\x82\x5e\x82\x5f\x82\x60\x82\x61\x82\x62\x56\x77\x4c\x9e\x82\x63\x5d\x55\x82\x64\x5d\x57\x49\x43\x5a\x82\x5d\x59\x82\x65\x58\xc4\x82\x66\x5d\x56\x82\x67\x82\x68\x5d\x51\x82\x69\x5d\x52\x51\x49\x5d\x53\x82\x6a\x82\x6b\x4e\xf2\x58\xdd\x4c\xa8\x82\x6c\x4f\xe2\x82\x6d\x5d\x5d\x82\x6e\x82\x6f\x82\x70\x82\x71\x5d\x5a\x82\x72\x48\xb2\x82\x73\x82\x74\x82\x75\x5d\x62\x82\x76", /* 5000 */ "\x82\x77\x82\x78\x82\x79\x82\x7a\x82\x7b\x82\x7c\x82\x7d\x82\x7e\x82\x7f\x82\x81\x82\x82\x82\x83\x5d\x64\x49\x56\x82\x84\x5d\x5f\x82\x85\x82\x86\x4b\x59\x82\x87\x4f\xf2\x82\x88\x82\x89\x82\x8a\x56\xc7\x4d\xf1\x59\xcf\x82\x8b\x5d\x63\x82\x8c\x82\x8d\x4f\x89\x82\x8e\x4a\x4b\x82\x8f\x82\x90\x82\x91\x5d\x65\x4f\xea\x82\x92\x5d\x66\x5d\x5b\x52\xde\x82\x93\x5d\x5e\x5d\x61\x5d\x60\x82\x94\x82\x95\x82\x96\x82\x97\x82\x98\x82\x99\x82\x9a\x82\x9b\x82\x9c\x82\x9d\x82\x9e\x5b\x4e\x82\x9f\x5b\xb4\x82\xa0\x54\x84\x82\xa1\x82\xa2\x82\xa3\x82\xa4\x5d\x68\x82\xa5\x82\xa6\x82\xa7\x4e\xd8\x5d\x6a\x82\xa8\x82\xa9\x82\xaa\x5d\x5c\x82\xab\x5d\x6b\x53\xaa\x82\xac\x82\xad\x82\xae\x82\xaf\x82\xb0\x5d\x69\x82\xb1\x82\xb2\x82\xb3\x82\xb4\x5c\x97\x82\xb5\x57\x43\x82\xb6\x82\xb7\x82\xb8\x82\xb9\x82\xba\x82\xbb\x82\xbc\x82\xbd\x4f\x41\x82\xbe\x82\xbf\x82\xc0\x82\xc1\x82\xc2\x82\xc3\x5d\x6c\x82\xc4\x82\xc5\x82\xc6\x82\xc7\x82\xc8\x82\xc9\x82\xca\x82\xcb\x82\xcc\x53\x5c\x57\x55\x82\xcd\x82\xce\x82\xcf\x5d\x6d\x82\xd0\x82\xd1\x5d\x67\x4a\x45", /* 5080 */ "\x50\x9f\x82\xd2\x82\xd3\x82\xd4\x82\xd5\x4c\xb4\x82\xd6\x82\xd7\x50\xfb\x82\xd8\x82\xd9\x82\xda\x82\xdb\x48\xf7\x82\xdc\x82\xdd\x82\xde\x82\xdf\x82\xe0\x82\xe1\x82\xe2\x82\xe3\x82\xe4\x82\xe5\x82\xe6\x82\xe7\x82\xe8\x82\xe9\x82\xea\x82\xeb\x82\xec\x82\xed\x82\xee\x82\xef\x82\xf0\x4a\xf5\x82\xf1\x5d\x6e\x82\xf2\x5d\x6f\x4a\xa1\x5d\x70\x82\xf3\x82\xf4\x4a\xde\x82\xf5\x82\xf6\x82\xf7\x82\xf8\x82\xf9\x48\xc0\x82\xfa\x82\xfb\x82\xfc\x82\xfd\x83\x41\x83\x42\x83\x43\x5d\x71\x55\x55\x83\x44\x83\x45\x83\x46\x83\x47\x83\x48\x83\x49\x83\x4a\x83\x4b\x83\x4c\x83\x4d\x83\x4e\x83\x4f\x83\x50\x83\x51\x83\x52\x83\x53\x83\x54\x83\x55\x83\x56\x58\x92\x83\x57\x83\x58\x83\x59\x83\x5a\x83\x5b\x83\x5c\x5d\x72\x83\x5d\x83\x5e\x83\x5f\x51\x65\x83\x60\x83\x61\x83\x62\x83\x63\x83\x64\x83\x65\x83\x66\x83\x67\x83\x68\x83\x69\x83\x6a\x5d\x76\x55\x4e\x83\x6b\x83\x6c\x83\x6d\x83\x6e\x5d\x75\x5d\x74\x5d\x77\x83\x6f\x83\x70\x83\x71\x83\x72\x56\x7b\x83\x73\x4f\x49\x83\x74\x83\x75\x83\x76\x83\x77\x83\x78\x53\xa6\x83\x79\x83\x7a\x83\x7b\x83\x7c", /* 5100 */ "\x83\x7d\x83\x7e\x83\x7f\x83\x81\x83\x82\x83\x83\x5d\x73\x5d\x78\x83\x84\x83\x85\x83\x86\x5d\x79\x83\x87\x83\x88\x83\x89\x83\x8a\x83\x8b\x83\x8c\x54\xe4\x83\x8d\x83\x8e\x83\x8f\x83\x90\x83\x91\x83\x92\x83\x93\x83\x94\x83\x95\x83\x96\x83\x97\x83\x98\x83\x99\x83\x9a\x50\xdb\x83\x9b\x83\x9c\x83\x9d\x83\x9e\x83\x9f\x83\xa0\x83\xa1\x83\xa2\x83\xa3\x83\xa4\x83\xa5\x83\xa6\x83\xa7\x83\xa8\x83\xa9\x83\xaa\x83\xab\x83\xac\x83\xad\x83\xae\x83\xaf\x83\xb0\x83\xb1\x83\xb2\x83\xb3\x83\xb4\x83\xb5\x83\xb6\x83\xb7\x4b\xf8\x5c\xa2\x5a\xc9\x83\xb8\x5a\xa9\x58\xd5\x4a\x85\x5b\x77\x83\xb9\x58\x68\x4d\x83\x83\xba\x50\x6b\x83\xbb\x52\x83\x83\xbc\x83\xbd\x83\xbe\x4b\xd1\x83\xbf\x83\xc0\x57\x63\x5d\x8f\x5d\x91\x83\xc1\x83\xc2\x83\xc3\x4b\x53\x83\xc4\x4b\xb4\x83\xc5\x83\xc6\x83\xc7\x83\xc8\x83\xc9\x4f\xa3\x83\xca\x83\xcb\x54\xea\x83\xcc\x83\xcd\x54\xaa\x83\xce\x83\xcf\x48\xca\x4d\x4b\x51\x9a\x5d\x83\x83\xd0\x50\xbb\x4d\x52\x83\xd1\x4d\x78\x58\xca\x49\x99\x53\xe3\x4f\xde\x4b\x85\x5c\x68\x83\xd2\x59\x99\x4e\xe5\x55\xdd\x83\xd3\x83\xd4", /* 5180 */ "\x4e\xbc\x5d\x87\x5c\xe6\x83\xd5\x83\xd6\x52\xd9\x83\xd7\x83\xd8\x4c\xd3\x54\xbc\x83\xd9\x83\xda\x49\xe0\x5a\xd8\x83\xdb\x83\xdc\x83\xdd\x83\xde\x52\x50\x83\xdf\x83\xe0\x52\x82\x5d\xa1\x54\xde\x83\xe1\x58\xb3\x83\xe2\x4f\xfb\x53\x49\x83\xe3\x83\xe4\x83\xe5\x4d\x7a\x83\xe6\x5d\xa2\x83\xe7\x5a\xa8\x5d\xa3\x83\xe8\x83\xe9\x83\xea\x83\xeb\x83\xec\x5d\x9c\x4b\xab\x83\xed\x83\xee\x4c\x8c\x49\x9a\x5d\x9d\x4a\x86\x4f\xf5\x83\xef\x50\x97\x59\xb0\x50\xe3\x83\xf0\x83\xf1\x83\xf2\x4b\xb2\x5d\x9f\x5d\x9e\x83\xf3\x83\xf4\x4f\xba\x83\xf5\x83\xf6\x83\xf7\x53\xdf\x83\xf8\x5c\x5c\x5d\xa0\x83\xf9\x51\x59\x83\xfa\x4b\x93\x51\x89\x83\xfb\x83\xfc\x4e\xf4\x83\xfd\x4a\xd4\x84\x41\x84\x42\x84\x43\x84\x44\x84\x45\x84\x46\x84\x47\x84\x48\x84\x49\x51\x7d\x84\x4a\x52\xfc\x84\x4b\x84\x4c\x4e\xb7\x4c\x52\x84\x4d\x84\x4e\x4c\x90\x84\x4f\x84\x50\x84\x51\x84\x52\x84\x53\x84\x54\x5d\x8d\x84\x55\x53\xbd\x84\x56\x50\x4d\x4e\x6b\x84\x57\x84\x58\x4b\x6a\x84\x59\x5e\x69\x58\xd6\x84\x5a\x57\x59\x48\xbb\x4a\x97\x4e\x98\x5e\x6a\x4d\xae\x84\x5b\x5a\xe3", /* 5200 */ "\x4b\x56\x4b\x94\x5c\xd5\x54\xcf\x84\x5c\x84\x5d\x4c\x76\x54\x70\x5c\xd6\x84\x5e\x50\x4f\x84\x5f\x84\x60\x5e\x5b\x5c\xd7\x84\x61\x84\x62\x58\xcb\x4e\x4e\x84\x63\x84\x64\x84\x65\x66\x5e\x51\x70\x51\x96\x5a\xf1\x4c\xd4\x4a\xb3\x84\x66\x4a\x96\x84\x67\x84\x68\x55\x5e\x84\x69\x84\x6a\x84\x6b\x53\x70\x84\x6c\x84\x6d\x84\x6e\x53\x79\x50\xfa\x84\x6f\x49\x91\x84\x70\x5c\xd8\x4d\x6e\x84\x71\x4b\x5d\x84\x72\x84\x73\x5c\xd9\x84\x74\x84\x75\x5b\xc5\x56\x42\x54\xae\x55\x52\x4a\xcb\x50\x6c\x84\x76\x4d\x95\x84\x77\x5c\xda\x5c\xdb\x4b\xe6\x4e\xc0\x56\xe9\x84\x78\x84\x79\x84\x7a\x84\x7b\x84\x7c\x84\x7d\x58\x98\x84\x7e\x5c\xdc\x54\x50\x84\x7f\x84\x81\x4d\x70\x4f\x43\x84\x82\x84\x83\x56\xdd\x84\x84\x53\xc9\x84\x85\x84\x86\x84\x87\x84\x88\x84\x89\x5c\xdf\x84\x8a\x5c\xdd\x84\x8b\x84\x8c\x5c\xde\x84\x8d\x84\x8e\x84\x8f\x48\xfd\x84\x90\x4f\xe6\x84\x91\x55\xa2\x4e\xf3\x84\x92\x84\x93\x84\x94\x84\x95\x4c\xb0\x84\x96\x84\x97\x4c\xed\x84\x98\x84\x99\x84\x9a\x84\x9b\x84\x9c\x84\x9d\x84\x9e\x84\x9f\x84\xa0\x84\xa1\x5c\xe1\x84\xa2\x4f\x6b", /* 5280 */ "\x84\xa3\x5c\xe3\x5c\xe2\x84\xa4\x84\xa5\x84\xa6\x84\xa7\x84\xa8\x53\x9d\x84\xa9\x84\xaa\x84\xab\x84\xac\x84\xad\x84\xae\x84\xaf\x5c\xe4\x84\xb0\x84\xb1\x5c\xe5\x84\xb2\x84\xb3\x84\xb4\x84\xb5\x84\xb6\x84\xb7\x84\xb8\x51\x46\x84\xb9\x54\xaf\x48\xeb\x4d\x46\x4e\xd2\x57\xf0\x5e\x5d\x51\x73\x84\xba\x84\xbb\x84\xbc\x84\xbd\x4b\xae\x5b\xf9\x53\x4c\x4f\x79\x5e\x5e\x5e\x5f\x84\xbe\x84\xbf\x84\xc0\x50\xf7\x4f\xa1\x50\xcc\x84\xc1\x84\xc2\x84\xc3\x84\xc4\x84\xc5\x84\xc6\x84\xc7\x84\xc8\x84\xc9\x84\xca\x5e\x60\x55\xc5\x84\xcb\x84\xcc\x84\xcd\x49\xa9\x84\xce\x84\xcf\x84\xd0\x5a\x62\x84\xd1\x52\x84\x84\xd2\x59\x4b\x84\xd3\x84\xd4\x84\xd5\x84\xd6\x5e\x62\x84\xd7\x50\xd4\x84\xd8\x84\xd9\x84\xda\x5e\x63\x84\xdb\x50\x51\x84\xdc\x84\xdd\x84\xde\x84\xdf\x84\xe0\x84\xe1\x52\xbb\x84\xe2\x84\xe3\x84\xe4\x84\xe5\x54\x7a\x84\xe6\x84\xe7\x84\xe8\x84\xe9\x84\xea\x84\xeb\x84\xec\x84\xed\x84\xee\x84\xef\x84\xf0\x5e\x64\x84\xf1\x84\xf2\x84\xf3\x84\xf4\x84\xf5\x84\xf6\x84\xf7\x84\xf8\x5d\x89\x55\x77\x84\xf9\x84\xfa\x84\xfb\x4d\x54\x57\xef", /* 5300 */ "\x5a\xc7\x84\xfc\x84\xfd\x85\x41\x85\x42\x48\xfb\x4a\xd1\x85\x43\x58\xd8\x85\x44\x85\x45\x85\x46\x85\x47\x5d\x8a\x85\x48\x5f\xca\x5d\x8c\x85\x49\x85\x4a\x85\x4b\x85\x4c\x5c\xaf\x4e\x4f\x49\x51\x85\x4d\x4a\x77\x5c\xcd\x85\x4e\x85\x4f\x5a\xd0\x85\x50\x85\x51\x4f\x53\x50\x90\x85\x52\x58\x5b\x85\x53\x85\x54\x5c\xcf\x85\x55\x85\x56\x85\x57\x4c\x6b\x85\x58\x85\x59\x85\x5a\x5c\xd0\x85\x5b\x85\x5c\x85\x5d\x85\x5e\x85\x5f\x85\x60\x85\x61\x85\x62\x85\x63\x85\x64\x53\xa4\x54\x99\x59\xbc\x85\x65\x85\x66\x5c\xd1\x52\xe3\x85\x67\x55\xad\x85\x68\x54\x47\x85\x69\x5c\xa5\x85\x6a\x55\x9e\x57\xe6\x4e\x7c\x48\xea\x85\x6b\x85\x6c\x85\x6d\x4e\x4a\x58\xac\x85\x6e\x49\x50\x5c\x85\x5c\x5f\x85\x6f\x4b\x45\x51\xf3\x52\xce\x85\x70\x85\x71\x49\xa8\x85\x72\x49\xb6\x85\x73\x49\x86\x60\x52\x5b\x5c\x50\x48\x51\xab\x5c\xd4\x51\xb0\x85\x74\x5c\xd3\x57\xd3\x85\x75\x5d\xdf\x85\x76\x57\xbf\x85\x77\x85\x78\x5c\xb3\x52\x4e\x5a\x41\x57\xa2\x85\x79\x4e\xb3\x54\xb3\x51\xd0\x85\x7a\x4f\xec\x58\xb5\x85\x7b\x5d\xe0\x85\x7c\x85\x7d\x85\x7e\x85\x7f\x54\x85", /* 5380 */ "\x85\x81\x85\x82\x4a\x47\x85\x83\x4b\xf1\x56\xfb\x50\xf9\x85\x84\x85\x85\x50\xf6\x85\x86\x59\x59\x59\x82\x5c\xc6\x85\x87\x85\x88\x85\x89\x85\x8a\x85\x8b\x85\x8c\x85\x8d\x49\xdd\x85\x8e\x85\x8f\x50\xe4\x85\x90\x4d\xf0\x85\x91\x85\x92\x5c\xc7\x85\x93\x5a\xac\x85\x94\x85\x95\x58\x82\x5c\xc8\x85\x96\x5c\xc9\x58\x63\x85\x97\x4a\x99\x4f\xc6\x85\x98\x85\x99\x85\x9a\x85\x9b\x5c\xca\x85\x9c\x85\x9d\x85\x9e\x85\x9f\x85\xa0\x85\xa1\x85\xa2\x5e\x6c\x85\xa3\x85\xa4\x85\xa5\x85\xa6\x54\xa4\x85\xa7\x85\xa8\x85\xa9\x58\x78\x85\xaa\x54\xfd\x49\xcd\x85\xab\x85\xac\x85\xad\x85\xae\x85\xaf\x5a\x76\x49\xe5\x4e\xaf\x5a\x71\x56\x4b\x4c\x54\x85\xb0\x85\xb1\x85\xb2\x4c\x42\x85\xb3\x85\xb4\x55\xe4\x85\xb5\x54\xa0\x55\xdb\x49\x85\x58\xef\x85\xb6\x53\x71\x85\xb7\x85\xb8\x85\xb9\x5e\x65\x4b\x9f\x85\xba\x85\xbb\x50\x7a\x4d\x65\x4f\xe3\x51\x8e\x85\xbc\x60\x56\x60\x55\x5b\xba\x4f\x70\x5b\x79\x48\xc7\x4b\xa2\x50\x69\x56\xa7\x60\x53\x55\xb6\x5a\x72\x85\xbd\x5c\xce\x59\xb5\x4d\xc4\x56\x5e\x56\xbd\x85\xbe\x60\x57\x4b\x91\x60\x54\x85\xbf\x85\xc0", /* 5400 */ "\x85\xc1\x5a\x96\x85\xc2\x4a\x74\x4c\xf6\x85\xc3\x60\x5a\x85\xc4\x4d\xce\x4e\xa9\x4b\x96\x85\xc5\x57\x4c\x52\x9c\x4d\xf2\x50\xf3\x57\x62\x58\x93\x60\x58\x58\x65\x85\xc6\x51\xbf\x60\x59\x51\xef\x85\xc7\x85\xc8\x85\xc9\x4f\xfc\x85\xca\x51\x7f\x57\x6c\x59\xf6\x4c\x6d\x60\x61\x85\xcb\x60\x64\x85\xcc\x85\xcd\x4c\x92\x48\xc8\x4b\xd5\x4c\x74\x85\xce\x4d\xab\x56\xfc\x50\x74\x56\x51\x53\xf3\x85\xcf\x5b\xa7\x60\x65\x85\xd0\x57\xe1\x4a\x53\x85\xd1\x85\xd2\x57\xfb\x4a\xb4\x85\xd3\x57\xc6\x4d\xef\x85\xd4\x57\xe0\x85\xd5\x59\x5d\x85\xd6\x85\xd7\x60\x60\x85\xd8\x85\xd9\x4a\xf3\x85\xda\x4a\x6a\x85\xdb\x4c\xe5\x60\x5b\x85\xdc\x85\xdd\x85\xde\x85\xdf\x52\xc4\x85\xe0\x60\x5c\x60\x5d\x60\x5e\x53\x5b\x60\x5f\x60\x62\x5a\xb0\x60\x63\x85\xe1\x54\x5a\x57\xd7\x85\xe2\x85\xe3\x85\xe4\x85\xe5\x85\xe6\x52\xd7\x85\xe7\x60\x6a\x85\xe8\x60\x6f\x85\xe9\x5b\xdb\x85\xea\x85\xeb\x85\xec\x85\xed\x85\xee\x85\xef\x85\xf0\x85\xf1\x60\x69\x60\x7a\x57\xb5\x85\xf2\x4d\xc6\x60\x6e\x60\x68\x53\x7e\x85\xf3\x85\xf4\x55\x8c\x4d\xf3\x52\x9d\x85\xf5\x85\xf6", /* 5480 */ "\x4f\xd6\x85\xf7\x60\x66\x85\xf8\x60\x6d\x85\xf9\x53\x78\x85\xfa\x85\xfb\x85\xfc\x85\xfd\x5b\x46\x4d\xcc\x86\x41\x4f\xcb\x5a\x5d\x4c\xbf\x86\x42\x5b\xe3\x86\x43\x60\x67\x4d\x5e\x50\x47\x86\x44\x86\x45\x51\x9d\x60\x6b\x60\x6c\x86\x46\x60\x70\x86\x47\x86\x48\x86\x49\x86\x4a\x86\x4b\x60\x7b\x60\x86\x86\x4c\x60\x77\x60\x76\x5c\x69\x60\x84\x60\x85\x63\x8c\x59\xa6\x60\x72\x86\x4d\x50\x49\x86\x4e\x5a\xda\x86\x4f\x50\x68\x60\x74\x86\x50\x86\x51\x86\x52\x58\x6c\x86\x53\x86\x54\x60\x7d\x86\x55\x59\x6a\x86\x56\x60\x7e\x48\xa6\x53\xb6\x60\x73\x86\x57\x4d\xe4\x86\x58\x4b\xde\x57\x7b\x4d\x9f\x5a\xd4\x86\x59\x86\x5a\x60\x7f\x58\x8d\x48\xa4\x60\x88\x60\x71\x59\x66\x60\x75\x60\x78\x60\x79\x60\x7c\x86\x5b\x4e\x49\x86\x5c\x60\x81\x60\x82\x86\x5d\x60\x83\x60\x87\x60\x89\x5a\x54\x86\x5e\x86\x5f\x86\x60\x86\x61\x86\x62\x4c\xe6\x53\x56\x60\x8b\x55\x7a\x51\x48\x52\xc3\x86\x63\x86\x64\x50\x7e\x58\x99\x86\x65\x86\x66\x86\x67\x5b\x7c\x60\x8f\x86\x68\x86\x69\x86\x6a\x86\x6b\x86\x6c\x86\x6d\x49\xb7\x86\x6e\x4d\xde\x60\x8d\x86\x6f\x5e\x61", /* 5500 */ "\x86\x70\x59\x85\x86\x71\x86\x72\x86\x73\x86\x74\x56\x95\x4a\xbc\x86\x75\x48\xa5\x86\x76\x86\x77\x86\x78\x86\x79\x86\x7a\x60\x92\x56\xc5\x60\x93\x86\x7b\x86\x7c\x60\x8e\x86\x7d\x86\x7e\x86\x7f\x86\x81\x86\x82\x86\x83\x60\x8a\x86\x84\x86\x85\x86\x86\x86\x87\x60\x8c\x86\x88\x60\x90\x60\x91\x4e\x5d\x86\x89\x86\x8a\x60\x94\x86\x8b\x86\x8c\x60\x95\x86\x8d\x4e\x43\x86\x8e\x55\xda\x57\xa7\x60\xa6\x4a\x4a\x86\x8f\x60\xa5\x86\x90\x86\x91\x86\x92\x60\xa0\x86\x93\x86\x94\x86\x95\x86\x96\x60\x9f\x86\x97\x57\x79\x60\x9d\x86\x98\x60\x9b\x86\x99\x50\x70\x5c\x64\x86\x9a\x55\x6c\x86\x9b\x86\x9c\x60\x99\x48\xa0\x86\x9d\x86\x9e\x86\x9f\x86\xa0\x86\xa1\x60\x9e\x86\xa2\x86\xa3\x86\xa4\x86\xa5\x60\x9c\x60\xa1\x86\xa6\x86\xa7\x86\xa8\x86\xa9\x86\xaa\x60\xa7\x86\xab\x86\xac\x86\xad\x86\xae\x4c\x68\x86\xaf\x86\xb0\x53\xa0\x55\x56\x50\xb1\x60\x96\x86\xb1\x86\xb2\x53\x5e\x86\xb3\x5c\xc3\x60\x9a\x52\xf5\x86\xb4\x86\xb5\x86\xb6\x86\xb7\x86\xb8\x86\xb9\x60\xa2\x60\xa3\x60\xa4\x58\xa4\x86\xba\x86\xbb\x60\xb3\x56\xe3\x86\xbc\x60\xb0\x86\xbd", /* 5580 */ "\x50\x46\x60\xae\x57\xb8\x60\xaa\x55\x66\x86\xbe\x86\xbf\x50\xad\x60\xad\x4d\xec\x4d\xaf\x60\xa8\x86\xc0\x86\xc1\x86\xc2\x60\x97\x86\xc3\x60\xb2\x86\xc4\x86\xc5\x60\xb7\x86\xc6\x86\xc7\x86\xc8\x4a\xac\x60\xb8\x86\xc9\x86\xca\x58\x52\x4d\xc7\x86\xcb\x60\xaf\x86\xcc\x86\xcd\x86\xce\x86\xcf\x86\xd0\x86\xd1\x86\xd2\x58\xf9\x86\xd3\x86\xd4\x86\xd5\x86\xd6\x86\xd7\x86\xd8\x86\xd9\x86\xda\x86\xdb\x60\xab\x86\xdc\x5a\xfa\x86\xdd\x60\x98\x86\xde\x53\x88\x86\xdf\x60\xac\x86\xe0\x5a\x98\x86\xe1\x60\xb5\x60\xb6\x86\xe2\x86\xe3\x86\xe4\x86\xe5\x86\xe6\x60\xc3\x58\xe0\x86\xe7\x86\xe8\x86\xe9\x60\xbb\x86\xea\x86\xeb\x60\xc8\x60\xc9\x86\xec\x86\xed\x86\xee\x60\xbd\x60\xa9\x55\x44\x60\xc0\x86\xef\x60\xb1\x86\xf0\x86\xf1\x86\xf2\x86\xf3\x86\xf4\x55\xc7\x60\xc2\x86\xf5\x60\xb4\x86\xf6\x57\xca\x86\xf7\x56\x63\x60\xcc\x60\xc5\x60\xc1\x86\xf8\x60\xca\x86\xf9\x60\xb9\x60\xbe\x60\xbf\x86\xfa\x86\xfb\x60\xc4\x86\xfc\x86\xfd\x60\xc6\x60\xc7\x87\x41\x60\xcb\x87\x42\x60\xba\x87\x43\x87\x44\x87\x45\x87\x46\x87\x47\x56\x74\x60\xd4\x87\x48", /* 5600 */ "\x60\xd5\x60\xd1\x87\x49\x87\x4a\x87\x4b\x87\x4c\x87\x4d\x87\x4e\x60\xcf\x4e\xcd\x87\x4f\x87\x50\x60\xd0\x87\x51\x4c\xc1\x5c\xc4\x87\x52\x87\x53\x87\x54\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x58\xe9\x87\x5a\x87\x5b\x51\xee\x87\x5c\x87\x5d\x60\xce\x60\xbc\x87\x5e\x87\x5f\x87\x60\x60\xd3\x60\xd2\x87\x61\x87\x62\x60\xd6\x87\x63\x87\x64\x87\x65\x87\x66\x60\xdb\x60\xd7\x87\x67\x87\x68\x87\x69\x5b\xf5\x4a\x50\x87\x6a\x5c\x8d\x87\x6b\x56\x5b\x87\x6c\x87\x6d\x60\xd9\x87\x6e\x57\xfa\x87\x6f\x87\x70\x87\x71\x4d\xd8\x87\x72\x87\x73\x87\x74\x87\x75\x87\x76\x87\x77\x87\x78\x87\x79\x87\x7a\x87\x7b\x87\x7c\x87\x7d\x60\xe0\x60\xdc\x59\xac\x87\x7e\x87\x7f\x87\x81\x87\x82\x87\x83\x60\xe1\x87\x84\x87\x85\x60\xda\x60\xd8\x60\xde\x87\x86\x87\x87\x60\xdf\x87\x88\x87\x89\x87\x8a\x87\x8b\x87\x8c\x60\xdd\x87\x8d\x60\xe3\x87\x8e\x87\x8f\x87\x90\x53\xf6\x5c\xab\x5a\xea\x60\xe5\x55\xc8\x87\x91\x87\x92\x87\x93\x87\x94\x60\xe4\x87\x95\x87\x96\x87\x97\x87\x98\x4c\xc0\x87\x99\x87\x9a\x87\x9b\x87\x9c\x60\xe6\x60\xe7\x87\x9d\x87\x9e\x87\x9f", /* 5680 */ "\x87\xa0\x87\xa1\x87\xa2\x87\xa3\x87\xa4\x60\xe8\x60\xe2\x87\xa5\x87\xa6\x87\xa7\x87\xa8\x87\xa9\x87\xaa\x87\xab\x4d\xbe\x56\xe6\x87\xac\x87\xad\x87\xae\x60\xe9\x87\xaf\x87\xb0\x87\xb1\x87\xb2\x87\xb3\x87\xb4\x87\xb5\x87\xb6\x87\xb7\x87\xb8\x87\xb9\x87\xba\x87\xbb\x87\xbc\x87\xbd\x58\x9a\x87\xbe\x87\xbf\x87\xc0\x87\xc1\x87\xc2\x87\xc3\x87\xc4\x87\xc5\x87\xc6\x87\xc7\x87\xc8\x60\xea\x87\xc9\x87\xca\x87\xcb\x87\xcc\x87\xcd\x87\xce\x87\xcf\x54\xc1\x87\xd0\x87\xd1\x87\xd2\x87\xd3\x4f\x60\x87\xd4\x87\xd5\x87\xd6\x87\xd7\x87\xd8\x87\xd9\x87\xda\x87\xdb\x87\xdc\x87\xdd\x87\xde\x87\xdf\x87\xe0\x52\xd1\x87\xe1\x87\xe2\x87\xe3\x87\xe4\x87\xe5\x87\xe6\x87\xe7\x87\xe8\x87\xe9\x60\xeb\x87\xea\x87\xeb\x60\xec\x87\xec\x87\xed\x54\x95\x56\x64\x87\xee\x60\xed\x4e\x78\x5c\xb5\x59\xf1\x60\xee\x57\x65\x87\xef\x4b\xd9\x87\xf0\x87\xf1\x87\xf2\x87\xf3\x87\xf4\x87\xf5\x60\xf0\x87\xf6\x5a\xaf\x87\xf7\x87\xf8\x50\xa6\x4a\xd0\x87\xf9\x87\xfa\x57\xa6\x60\xef\x87\xfb\x87\xfc\x87\xfd\x60\xf1\x4d\x6c\x88\x41\x88\x42\x4d\x9b\x57\x5c\x60\xf2", /* 5700 */ "\x88\x43\x88\x44\x88\x45\x53\xd3\x60\xf3\x88\x46\x5a\xb1\x88\x47\x54\xa5\x60\xf5\x60\xf4\x88\x48\x88\x49\x88\x4a\x88\x4b\x88\x4c\x88\x4d\x88\x4e\x88\x4f\x88\x50\x88\x51\x88\x52\x88\x53\x88\x54\x88\x55\x88\x56\x88\x57\x88\x58\x60\xf6\x88\x59\x88\x5a\x57\x61\x88\x5b\x88\x5c\x88\x5d\x55\xa4\x88\x5e\x88\x5f\x88\x60\x88\x61\x5a\xd9\x5e\x77\x5e\x79\x88\x62\x5e\x78\x4d\x88\x5e\x7c\x5e\x7d\x4b\x78\x88\x63\x88\x64\x5e\x7a\x88\x65\x88\x66\x88\x67\x88\x68\x88\x69\x5e\x7b\x4a\x41\x5e\x7f\x88\x6a\x88\x6b\x4e\x99\x88\x6c\x5b\xb6\x88\x6d\x5e\x81\x88\x6e\x88\x6f\x88\x70\x88\x71\x4f\xf8\x88\x72\x88\x73\x4c\x5b\x88\x74\x5e\x70\x56\xad\x50\x52\x4e\x55\x5c\x99\x50\x73\x88\x75\x88\x76\x88\x77\x88\x78\x88\x79\x50\x8a\x88\x7a\x88\x7b\x4e\xe0\x56\xb2\x5e\x7e\x48\xd2\x57\xea\x4c\x78\x5c\x59\x53\xc1\x88\x7c\x88\x7d\x50\xa3\x88\x7e\x56\xb8\x88\x7f\x5e\x88\x5e\x82\x53\xb9\x5e\x84\x88\x81\x5e\x89\x88\x82\x53\x98\x88\x83\x88\x84\x88\x85\x5e\x8b\x88\x86\x88\x87\x5e\x8a\x50\x60\x88\x88\x88\x89\x88\x8a\x5e\x87\x5e\x86\x88\x8b\x88\x8c\x88\x8d", /* 5780 */ "\x88\x8e\x88\x8f\x4a\xb8\x50\xab\x51\xa1\x5e\x83\x5e\x85\x88\x90\x88\x91\x88\x92\x88\x93\x58\xcc\x5e\x8e\x88\x94\x88\x95\x88\x96\x88\x97\x88\x98\x50\xdc\x5e\x93\x88\x99\x88\x9a\x88\x9b\x88\x9c\x88\x9d\x88\x9e\x88\x9f\x4b\xe1\x88\xa0\x88\xa1\x88\xa2\x88\xa3\x5e\x94\x5e\x72\x4d\x58\x5a\xaa\x5e\x8d\x88\xa4\x50\x71\x5e\x91\x88\xa5\x5e\x71\x88\xa6\x4b\x87\x88\xa7\x5e\x8c\x50\x86\x88\xa8\x88\xa9\x88\xaa\x5e\x8f\x88\xab\x5e\x92\x88\xac\x88\xad\x88\xae\x5e\x9a\x88\xaf\x88\xb0\x88\xb1\x88\xb2\x88\xb3\x88\xb4\x88\xb5\x88\xb6\x88\xb7\x4d\x41\x48\xa2\x88\xb8\x88\xb9\x88\xba\x88\xbb\x88\xbc\x88\xbd\x88\xbe\x51\xf0\x88\xbf\x88\xc0\x4a\x67\x5e\x90\x88\xc1\x88\xc2\x5e\x99\x88\xc3\x53\xd1\x5e\x95\x88\xc4\x88\xc5\x5e\x96\x5e\x98\x5e\x97\x88\xc6\x88\xc7\x5e\x9f\x88\xc8\x5a\x93\x49\xb9\x88\xc9\x88\xca\x88\xcb\x5e\x9e\x88\xcc\x88\xcd\x88\xce\x88\xcf\x88\xd0\x88\xd1\x88\xd2\x88\xd3\x5e\xa3\x88\xd4\x5e\x9c\x88\xd5\x88\xd6\x88\xd7\x88\xd8\x5e\x9b\x88\xd9\x88\xda\x88\xdb\x5e\x9d\x53\x81\x4e\x9a\x88\xdc\x88\xdd\x5e\xa2\x88\xde\x88\xdf", /* 5800 */ "\x5e\xa4\x88\xe0\x56\xc2\x88\xe1\x88\xe2\x88\xe3\x4b\xd0\x5f\x60\x88\xe4\x88\xe5\x88\xe6\x5e\xa0\x88\xe7\x5e\xa1\x88\xe8\x88\xe9\x88\xea\x54\x55\x88\xeb\x88\xec\x88\xed\x4b\xe8\x88\xee\x88\xef\x88\xf0\x5e\xa6\x88\xf1\x88\xf2\x88\xf3\x88\xf4\x5e\xa5\x88\xf5\x5e\xa8\x49\x44\x88\xf6\x88\xf7\x4b\x6c\x88\xf8\x88\xf9\x88\xfa\x88\xfb\x88\xfc\x50\x50\x88\xfd\x89\x41\x89\x42\x89\x43\x89\x44\x59\x7f\x89\x45\x89\x46\x89\x47\x89\x48\x4b\xc1\x89\x49\x89\x4a\x89\x4b\x89\x4c\x89\x4d\x89\x4e\x89\x4f\x89\x50\x89\x51\x89\x52\x89\x53\x89\x54\x89\x55\x89\x56\x5e\xa7\x89\x57\x89\x58\x89\x59\x89\x5a\x89\x5b\x89\x5c\x89\x5d\x56\x9b\x66\x94\x89\x5e\x89\x5f\x89\x60\x56\x7c\x89\x61\x89\x62\x56\x9f\x89\x63\x89\x64\x89\x65\x56\xc0\x89\x66\x89\x67\x89\x68\x89\x69\x89\x6a\x54\xfa\x89\x6b\x89\x6c\x89\x6d\x89\x6e\x89\x6f\x89\x70\x5e\xa9\x89\x71\x89\x72\x89\x73\x89\x74\x89\x75\x56\xed\x5e\xaa\x89\x76\x89\x77\x89\x78\x89\x79\x89\x7a\x89\x7b\x89\x7c\x89\x7d\x89\x7e\x89\x7f\x89\x81\x89\x82\x89\x83\x89\x84\x89\x85\x89\x86\x89\x87\x5e\x73\x89\x88", /* 5880 */ "\x5e\xae\x5e\xab\x89\x89\x4f\xb2\x89\x8a\x55\xfa\x89\x8b\x89\x8c\x89\x8d\x5e\xac\x89\x8e\x89\x8f\x89\x90\x89\x91\x89\x92\x89\x93\x89\x94\x89\x95\x55\x6a\x52\xb8\x89\x96\x89\x97\x89\x98\x89\x99\x89\x9a\x54\x5d\x5e\xad\x89\x9b\x89\x9c\x89\x9d\x5a\xf5\x58\xe5\x89\x9e\x89\x9f\x89\xa0\x89\xa1\x89\xa2\x89\xa3\x89\xa4\x89\xa5\x52\xaa\x4b\xd4\x89\xa6\x89\xa7\x89\xa8\x89\xa9\x89\xaa\x89\xab\x89\xac\x89\xad\x89\xae\x89\xaf\x89\xb0\x89\xb1\x89\xb2\x89\xb3\x89\xb4\x89\xb5\x89\xb6\x89\xb7\x5e\x74\x89\xb8\x89\xb9\x89\xba\x89\xbb\x49\x7a\x89\xbc\x89\xbd\x89\xbe\x5e\x75\x89\xbf\x89\xc0\x89\xc1\x89\xc2\x89\xc3\x89\xc4\x89\xc5\x89\xc6\x89\xc7\x89\xc8\x89\xc9\x5e\x76\x89\xca\x89\xcb\x89\xcc\x4d\xbd\x89\xcd\x89\xce\x89\xcf\x89\xd0\x89\xd1\x89\xd2\x89\xd3\x89\xd4\x89\xd5\x89\xd6\x89\xd7\x89\xd8\x89\xd9\x89\xda\x54\xbf\x89\xdb\x89\xdc\x89\xdd\x89\xde\x89\xdf\x89\xe0\x55\xbe\x54\xc8\x89\xe1\x5c\x53\x89\xe2\x55\x9a\x89\xe3\x89\xe4\x50\x67\x89\xe5\x89\xe6\x4d\xf7\x89\xe7\x89\xe8\x59\xbb\x89\xe9\x89\xea\x89\xeb\x89\xec\x89\xed\x89\xee", /* 5900 */ "\x89\xef\x89\xf0\x61\xb9\x89\xf1\x4a\xa5\x89\xf2\x89\xf3\x49\x58\x89\xf4\x89\xf5\x89\xf6\x89\xf7\x89\xf8\x4c\xb3\x89\xf9\x58\x64\x89\xfa\x89\xfb\x89\xfc\x89\xfd\x5d\x88\x58\x46\x57\x83\x8a\x41\x8a\x42\x5d\x8e\x4b\xdf\x8a\x43\x59\xb8\x8a\x44\x8a\x45\x4d\x5b\x8a\x46\x8a\x47\x8a\x48\x8a\x49\x61\xb8\x61\xb6\x8a\x4a\x4a\xf2\x8a\x4b\x56\xeb\x56\xaa\x4c\x93\x8a\x4c\x5c\xb1\x59\x8c\x4d\xba\x8a\x4d\x55\xa6\x8a\x4e\x8a\x4f\x57\x57\x8a\x50\x8a\x51\x59\xc3\x50\x85\x4e\xcf\x4b\xe0\x8a\x52\x5f\xc4\x8a\x53\x8a\x54\x8a\x55\x8a\x56\x5f\xc5\x5e\x5c\x8a\x57\x59\x79\x8a\x58\x8a\x59\x53\xe5\x52\xcd\x4c\x8f\x8a\x5a\x4c\x7c\x8a\x5b\x8a\x5c\x50\x9d\x5c\x81\x8a\x5d\x53\xf4\x8a\x5e\x8a\x5f\x49\x5c\x5f\xc7\x4f\x51\x56\xd6\x5f\xc9\x8a\x60\x5f\xc8\x8a\x61\x8a\x62\x8a\x63\x8a\x64\x8a\x65\x4b\x8d\x8a\x66\x55\x7d\x8a\x67\x8a\x68\x48\xc1\x8a\x69\x8a\x6a\x8a\x6b\x8a\x6c\x8a\x6d\x8a\x6e\x8a\x6f\x8a\x70\x8a\x71\x8a\x72\x8a\x73\x8a\x74\x8a\x75\x53\x4e\x53\x4b\x8a\x76\x52\xcb\x8a\x77\x4e\xe8\x56\x9e\x8a\x78\x8a\x79\x8a\x7a\x4d\xc2\x8a\x7b\x8a\x7c", /* 5980 */ "\x8a\x7d\x63\x9a\x54\xe6\x63\x9b\x57\x9e\x8a\x7e\x5c\x51\x4c\xbd\x51\xe7\x8a\x7f\x54\xd0\x8a\x81\x8a\x82\x63\x9c\x8a\x83\x8a\x84\x8a\x85\x8a\x86\x4b\xc9\x4e\xca\x8a\x87\x8a\x88\x59\x9e\x63\xa0\x8a\x89\x52\x8f\x8a\x8a\x8a\x8b\x8a\x8c\x8a\x8d\x63\xa3\x8a\x8e\x8a\x8f\x8a\x90\x8a\x91\x63\x9f\x63\xa4\x57\x77\x8a\x92\x8a\x93\x4c\x61\x63\x9d\x63\x9e\x63\xa2\x8a\x94\x8a\x95\x52\xdc\x63\xa7\x8a\x96\x8a\x97\x63\xa6\x8a\x98\x8a\x99\x8a\x9a\x8a\x9b\x8a\x9c\x8a\x9d\x52\x63\x8a\x9e\x53\xdd\x8a\x9f\x8a\xa0\x63\xa9\x8a\xa1\x8a\xa2\x8a\xa3\x8a\xa4\x8a\xa5\x8a\xa6\x8a\xa7\x52\xb6\x8a\xa8\x8a\xa9\x8a\xaa\x63\xa1\x55\xbb\x8a\xab\x8a\xac\x8a\xad\x8a\xae\x4f\x84\x4d\x63\x63\xa5\x58\xd4\x57\xae\x8a\xaf\x8a\xb0\x63\xa8\x63\xaf\x8a\xb1\x59\xa5\x8a\xb2\x4f\x4a\x63\xac\x8a\xb3\x8a\xb4\x8a\xb5\x8a\xb6\x8a\xb7\x63\xae\x8a\xb8\x50\xd0\x8a\xb9\x8a\xba\x59\xcb\x8a\xbb\x8a\xbc\x8a\xbd\x4e\xa6\x8a\xbe\x8a\xbf\x8a\xc0\x8a\xc1\x8a\xc2\x8a\xc3\x8a\xc4\x8a\xc5\x8a\xc6\x8a\xc7\x8a\xc8\x8a\xc9\x63\xb0\x8a\xca\x59\xf5\x8a\xcb\x8a\xcc\x8a\xcd\x5c\x6b", /* 5a00 */ "\x8a\xce\x57\x9f\x8a\xcf\x57\x7e\x51\xa5\x63\xaa\x63\xab\x4f\x5f\x63\xad\x63\xb2\x8a\xd0\x8a\xd1\x63\xb1\x8a\xd2\x8a\xd3\x8a\xd4\x8a\xd5\x63\xb5\x8a\xd6\x63\xb7\x8a\xd7\x8a\xd8\x8a\xd9\x8a\xda\x52\xee\x8a\xdb\x8a\xdc\x8a\xdd\x52\xc7\x8a\xde\x8a\xdf\x4f\xe9\x55\x90\x8a\xe0\x8a\xe1\x63\xb6\x8a\xe2\x4b\xef\x8a\xe3\x8a\xe4\x8a\xe5\x52\x85\x8a\xe6\x8a\xe7\x8a\xe8\x8a\xe9\x8a\xea\x8a\xeb\x8a\xec\x5a\x8a\x63\xb3\x8a\xed\x63\xb4\x8a\xee\x54\xa1\x8a\xef\x8a\xf0\x8a\xf1\x8a\xf2\x8a\xf3\x63\xbc\x8a\xf4\x8a\xf5\x8a\xf6\x63\xb8\x8a\xf7\x8a\xf8\x8a\xf9\x8a\xfa\x8a\xfb\x53\xc4\x8a\xfc\x8a\xfd\x57\x92\x63\xba\x8b\x41\x8b\x42\x8b\x43\x8b\x44\x8b\x45\x8b\x46\x8b\x47\x8b\x48\x8b\x49\x8b\x4a\x63\xbb\x8b\x4b\x8b\x4c\x8b\x4d\x8b\x4e\x4e\x8a\x8b\x4f\x8b\x50\x8b\x51\x8b\x52\x8b\x53\x8b\x54\x8b\x55\x63\xbd\x8b\x56\x8b\x57\x8b\x58\x8b\x59\x63\xb9\x8b\x5a\x8b\x5b\x50\xb6\x8b\x5c\x8b\x5d\x8b\x5e\x8b\x5f\x8b\x60\x8b\x61\x8b\x62\x8b\x63\x8b\x64\x5a\x44\x63\xbe\x55\x95\x63\xc2\x8b\x65\x8b\x66\x63\xc3\x8b\x67\x8b\x68\x8b\x69\x8b\x6a\x58\xf5", /* 5a80 */ "\x8b\x6b\x8b\x6c\x8b\x6d\x8b\x6e\x8b\x6f\x8b\x70\x8b\x71\x8b\x72\x8b\x73\x8b\x74\x8b\x75\x8b\x76\x8b\x77\x8b\x78\x8b\x79\x8b\x7a\x8b\x7b\x8b\x7c\x52\x5d\x8b\x7d\x8b\x7e\x8b\x7f\x8b\x81\x8b\x82\x8b\x83\x8b\x84\x52\x64\x63\xc1\x8b\x85\x8b\x86\x8b\x87\x8b\x88\x8b\x89\x8b\x8a\x8b\x8b\x8b\x8c\x8b\x8d\x8b\x8e\x8b\x8f\x8b\x90\x8b\x91\x8b\x92\x63\xc0\x8b\x93\x8b\x94\x8b\x95\x8b\x96\x8b\x97\x8b\x98\x8b\x99\x63\xc6\x58\x51\x8b\x9a\x66\x95\x8b\x9b\x8b\x9c\x63\xc9\x8b\x9d\x8b\x9e\x8b\x9f\x8b\xa0\x8b\xa1\x63\xc4\x8b\xa2\x8b\xa3\x4e\xdd\x55\x49\x8b\xa4\x8b\xa5\x8b\xa6\x8b\xa7\x8b\xa8\x8b\xa9\x4e\xb4\x8b\xaa\x8b\xab\x58\x73\x8b\xac\x8b\xad\x8b\xae\x8b\xaf\x8b\xb0\x63\xc7\x8b\xb1\x63\xc8\x8b\xb2\x63\xcd\x8b\xb3\x63\xcf\x8b\xb4\x8b\xb5\x8b\xb6\x63\xd0\x8b\xb7\x8b\xb8\x8b\xb9\x63\xca\x4b\x75\x8b\xba\x63\xcb\x8b\xbb\x8b\xbc\x63\xce\x8b\xbd\x8b\xbe\x52\xda\x8b\xbf\x63\xc5\x8b\xc0\x8b\xc1\x8b\xc2\x8b\xc3\x8b\xc4\x63\xcc\x8b\xc5\x8b\xc6\x8b\xc7\x8b\xc8\x8b\xc9\x8b\xca\x8b\xcb\x8b\xcc\x8b\xcd\x8b\xce\x8b\xcf\x8b\xd0\x8b\xd1\x8b\xd2", /* 5b00 */ "\x8b\xd3\x8b\xd4\x8b\xd5\x8b\xd6\x8b\xd7\x8b\xd8\x8b\xd9\x8b\xda\x8b\xdb\x63\xd1\x8b\xdc\x8b\xdd\x8b\xde\x8b\xdf\x8b\xe0\x8b\xe1\x8b\xe2\x8b\xe3\x8b\xe4\x8b\xe5\x8b\xe6\x8b\xe7\x63\xd3\x63\xd2\x8b\xe8\x8b\xe9\x8b\xea\x8b\xeb\x8b\xec\x8b\xed\x8b\xee\x8b\xef\x8b\xf0\x8b\xf1\x8b\xf2\x8b\xf3\x8b\xf4\x8b\xf5\x8b\xf6\x8b\xf7\x8b\xf8\x8b\xf9\x8b\xfa\x8b\xfb\x8b\xfc\x8b\xfd\x8c\x41\x8c\x42\x8c\x43\x8c\x44\x63\xd4\x8c\x45\x5d\x99\x8c\x46\x8c\x47\x63\xd5\x8c\x48\x8c\x49\x8c\x4a\x8c\x4b\x8c\x4c\x8c\x4d\x8c\x4e\x8c\x4f\x63\xd6\x8c\x50\x8c\x51\x8c\x52\x8c\x53\x8c\x54\x8c\x55\x8c\x56\x8c\x57\x8c\x58\x8c\x59\x8c\x5a\x8c\x5b\x8c\x5c\x8c\x5d\x8c\x5e\x5c\x73\x63\xdc\x8c\x5f\x63\xdd\x50\x77\x5a\xcf\x8c\x60\x5c\x76\x4a\xe5\x56\x90\x63\xd9\x5c\xc2\x5c\x6e\x58\xa1\x8c\x61\x52\x6f\x8c\x62\x8c\x63\x63\xde\x4e\xbd\x4d\x62\x63\xda\x59\x47\x8c\x64\x8c\x65\x4d\xa1\x51\xce\x8c\x66\x5c\xaa\x8c\x67\x8c\x68\x8c\x69\x55\xea\x63\x8f\x8c\x6a\x63\xdb\x8c\x6b\x4c\x96\x8c\x6c\x8c\x6d\x8c\x6e\x8c\x6f\x54\xe5\x8c\x70\x8c\x71\x52\xf4\x8c\x72\x8c\x73", /* 5b80 */ "\x63\x52\x52\xfd\x8c\x74\x56\x9d\x63\x53\x5b\x4c\x8c\x75\x5a\x8f\x55\xd7\x48\xb1\x8c\x76\x56\x6e\x57\x8b\x8c\x77\x8c\x78\x4d\xe9\x8c\x79\x8c\x7a\x8c\x7b\x63\x55\x8c\x7c\x63\x54\x8c\x7d\x5c\x7a\x4d\x79\x5b\xe5\x4b\xa7\x57\x91\x59\xca\x49\x46\x55\xb4\x8c\x7e\x4a\x89\x55\x94\x50\x6d\x58\xfa\x55\xd1\x63\x56\x4e\x62\x8c\x7f\x8c\x81\x8c\x82\x58\x7c\x4d\x4c\x8c\x83\x8c\x84\x8c\x85\x8c\x86\x5a\xd6\x8c\x87\x8c\x88\x4d\xa5\x59\x88\x58\x9d\x4e\xd1\x8c\x89\x63\x57\x54\xdc\x8c\x8a\x8c\x8b\x8c\x8c\x50\x8e\x49\x97\x56\x7e\x8c\x8d\x8c\x8e\x4e\xc4\x8c\x8f\x4e\xc3\x59\xf9\x52\x7c\x50\x7c\x8c\x90\x8c\x91\x8c\x92\x8c\x93\x4c\xba\x8c\x94\x8c\x95\x8c\x96\x52\x62\x8c\x97\x4d\xad\x5a\xa1\x8c\x98\x8c\x99\x8c\x9a\x8c\x9b\x8c\x9c\x8c\x9d\x8c\x9e\x8c\x9f\x8c\xa0\x54\x7e\x52\xae\x49\xeb\x8c\xa1\x4d\x71\x8c\xa2\x8c\xa3\x63\x5b\x51\x68\x8c\xa4\x8c\xa5\x5b\x4f\x8c\xa6\x8c\xa7\x8c\xa8\x8c\xa9\x8c\xaa\x63\x5c\x8c\xab\x63\x5e\x8c\xac\x8c\xad\x8c\xae\x8c\xaf\x8c\xb0\x8c\xb1\x8c\xb2\x4a\xe6\x4b\xd3\x56\x62\x59\x50\x4b\x5c\x8c\xb3\x8c\xb4\x55\xd8", /* 5c00 */ "\x8c\xb5\x4c\x83\x8c\xb6\x8c\xb7\x55\x85\x8c\xb8\x4f\x4b\x8c\xb9\x8c\xba\x57\xbd\x5c\x91\x8c\xbb\x8c\xbc\x8c\xbd\x8c\xbe\x58\xa0\x8c\xbf\x55\x79\x8c\xc0\x8c\xc1\x4b\xfa\x63\xd7\x4e\xe1\x8c\xc2\x4a\x5e\x8c\xc3\x55\x70\x8c\xc4\x63\xd8\x4a\x42\x8c\xc5\x8c\xc6\x8c\xc7\x8c\xc8\x5f\xcb\x8c\xc9\x5a\x68\x5f\xcc\x8c\xca\x59\xa1\x8c\xcb\x8c\xcc\x8c\xcd\x8c\xce\x5f\xcd\x8c\xcf\x8c\xd0\x8c\xd1\x8c\xd2\x4f\xcc\x8c\xd3\x8c\xd4\x5f\xce\x8c\xd5\x8c\xd6\x8c\xd7\x55\xab\x59\xfb\x4a\x7f\x63\x8b\x52\xe0\x4f\xa0\x57\xb1\x52\xf1\x4f\xd5\x53\xa7\x49\xe2\x8c\xd8\x8c\xd9\x4f\xd2\x8c\xda\x8c\xdb\x54\x9d\x56\xea\x4f\x8d\x57\xdc\x8c\xdc\x8c\xdd\x55\xb9\x53\xc0\x63\x8d\x58\xbb\x8c\xde\x8c\xdf\x8c\xe0\x5b\x59\x8c\xe1\x8c\xe2\x8c\xe3\x63\x8e\x8c\xe4\x8c\xe5\x8c\xe6\x8c\xe7\x55\xf3\x8c\xe8\x57\x60\x51\xc4\x8c\xe9\x63\x90\x8c\xea\x51\xc3\x63\x91\x8c\xeb\x8c\xec\x8c\xed\x8c\xee\x8c\xef\x8c\xf0\x8c\xf1\x63\x99\x57\x6d\x8c\xf2\x55\x5d\x8c\xf3\x8c\xf4\x8c\xf5\x8c\xf6\x8c\xf7\x8c\xf8\x8c\xf9\x59\xd8\x61\x48\x8c\xfa\x8c\xfb\x8c\xfc\x8c\xfd\x5a\x8d", /* 5c80 */ "\x8d\x41\x56\x8b\x53\xf0\x8d\x42\x8d\x43\x8d\x44\x8d\x45\x8d\x46\x61\x4c\x8d\x47\x8d\x48\x8d\x49\x61\x47\x61\x49\x8d\x4a\x8d\x4b\x61\x4a\x61\x4f\x8d\x4c\x8d\x4d\x49\xec\x8d\x4e\x61\x4b\x4c\xd9\x61\x4d\x61\x4e\x61\x50\x4b\x5a\x61\x51\x8d\x4f\x8d\x50\x8d\x51\x8d\x52\x8d\x53\x61\x53\x61\x58\x8d\x54\x8d\x55\x8d\x56\x8d\x57\x8d\x58\x59\x72\x8d\x59\x61\x56\x61\x55\x51\x8c\x8d\x5a\x8d\x5b\x8d\x5c\x61\x57\x8d\x5d\x5a\xbf\x8d\x5e\x61\x52\x8d\x5f\x61\x5a\x48\xb5\x8d\x60\x8d\x61\x8d\x62\x8d\x63\x61\x54\x8d\x64\x50\x9a\x8d\x65\x61\x59\x8d\x66\x8d\x67\x61\x5b\x8d\x68\x8d\x69\x8d\x6a\x8d\x6b\x8d\x6c\x8d\x6d\x61\x5e\x8d\x6e\x8d\x6f\x8d\x70\x8d\x71\x8d\x72\x8d\x73\x61\x5c\x8d\x74\x8d\x75\x8d\x76\x8d\x77\x8d\x78\x8d\x79\x5b\xc4\x8d\x7a\x8d\x7b\x8d\x7c\x8d\x7d\x8d\x7e\x8d\x7f\x8d\x81\x58\x5f\x8d\x82\x8d\x83\x61\x5d\x61\x5f\x51\xcc\x8d\x84\x4b\xea\x8d\x85\x5a\x99\x8d\x86\x8d\x87\x54\x6d\x8d\x88\x8d\x89\x4c\x86\x8d\x8a\x8d\x8b\x8d\x8c\x8d\x8d\x8d\x8e\x8d\x8f\x8d\x90\x8d\x91\x8d\x92\x8d\x93\x4f\xfd\x8d\x94\x8d\x95\x8d\x96\x8d\x97", /* 5d00 */ "\x8d\x98\x8d\x99\x61\x60\x61\x61\x8d\x9a\x8d\x9b\x61\x67\x4a\x88\x8d\x9c\x8d\x9d\x8d\x9e\x8d\x9f\x8d\xa0\x8d\xa1\x53\xe8\x8d\xa2\x8d\xa3\x8d\xa4\x8d\xa5\x8d\xa6\x4a\xdd\x8d\xa7\x59\x62\x8d\xa8\x8d\xa9\x8d\xaa\x8d\xab\x61\x68\x8d\xac\x8d\xad\x61\x66\x8d\xae\x8d\xaf\x8d\xb0\x8d\xb1\x8d\xb2\x61\x65\x8d\xb3\x61\x63\x61\x62\x8d\xb4\x49\x60\x8d\xb5\x8d\xb6\x8d\xb7\x5b\x58\x61\x64\x8d\xb8\x8d\xb9\x8d\xba\x8d\xbb\x8d\xbc\x61\x6b\x8d\xbd\x8d\xbe\x8d\xbf\x8d\xc0\x8d\xc1\x8d\xc2\x8d\xc3\x8d\xc4\x61\x6c\x61\x6a\x8d\xc5\x8d\xc6\x8d\xc7\x8d\xc8\x8d\xc9\x8d\xca\x8d\xcb\x8d\xcc\x68\x9b\x8d\xcd\x8d\xce\x61\x73\x61\x72\x54\x56\x8d\xcf\x8d\xd0\x8d\xd1\x8d\xd2\x8d\xd3\x8d\xd4\x8d\xd5\x8d\xd6\x8d\xd7\x8d\xd8\x8d\xd9\x61\x69\x8d\xda\x8d\xdb\x61\x6e\x8d\xdc\x61\x70\x8d\xdd\x8d\xde\x8d\xdf\x8d\xe0\x8d\xe1\x8d\xe2\x8d\xe3\x8d\xe4\x8d\xe5\x8d\xe6\x8d\xe7\x61\x74\x8d\xe8\x61\x71\x61\x6d\x8d\xe9\x8d\xea\x61\x6f\x8d\xeb\x8d\xec\x8d\xed\x8d\xee\x61\x75\x8d\xef\x8d\xf0\x8d\xf1\x8d\xf2\x8d\xf3\x8d\xf4\x8d\xf5\x8d\xf6\x8d\xf7\x8d\xf8\x8d\xf9", /* 5d80 */ "\x8d\xfa\x8d\xfb\x61\x76\x8d\xfc\x8d\xfd\x8e\x41\x8e\x42\x8e\x43\x8e\x44\x8e\x45\x8e\x46\x8e\x47\x8e\x48\x8e\x49\x8e\x4a\x8e\x4b\x8e\x4c\x8e\x4d\x8e\x4e\x8e\x4f\x8e\x50\x8e\x51\x8e\x52\x8e\x53\x8e\x54\x61\x77\x8e\x55\x8e\x56\x8e\x57\x61\x78\x8e\x58\x8e\x59\x8e\x5a\x8e\x5b\x8e\x5c\x8e\x5d\x8e\x5e\x8e\x5f\x8e\x60\x8e\x61\x8e\x62\x8e\x63\x8e\x64\x8e\x65\x8e\x66\x8e\x67\x8e\x68\x8e\x69\x8e\x6a\x8e\x6b\x8e\x6c\x8e\x6d\x8e\x6e\x8e\x6f\x8e\x70\x61\x7a\x8e\x71\x8e\x72\x8e\x73\x8e\x74\x8e\x75\x8e\x76\x8e\x77\x8e\x78\x8e\x79\x8e\x7a\x8e\x7b\x8e\x7c\x8e\x7d\x61\x7b\x8e\x7e\x8e\x7f\x8e\x81\x8e\x82\x8e\x83\x8e\x84\x8e\x85\x57\xa0\x8e\x86\x8e\x87\x8e\x88\x8e\x89\x8e\x8a\x8e\x8b\x8e\x8c\x8e\x8d\x8e\x8e\x8e\x8f\x8e\x90\x8e\x91\x8e\x92\x64\x7d\x8e\x93\x4a\xa7\x5b\xdc\x8e\x94\x8e\x95\x59\x52\x4a\x52\x8e\x96\x8e\x97\x4d\x44\x5c\x94\x54\x69\x4f\xdd\x4d\x4e\x8e\x98\x57\xd6\x8e\x99\x8e\x9a\x49\xed\x5e\x6f\x8e\x9b\x4e\xb9\x59\xd0\x56\x68\x48\xcc\x8e\x9c\x8e\x9d\x58\x90\x8e\x9e\x8e\x9f\x8e\xa0\x8e\xa1\x8e\xa2\x5d\x84\x4f\x8e\x8e\xa3", /* 5e00 */ "\x8e\xa4\x49\x72\x55\xcf\x49\xbb\x8e\xa5\x56\x47\x4c\x4b\x8e\xa6\x55\xa5\x8e\xa7\x8e\xa8\x8e\xa9\x58\x43\x8e\xaa\x8e\xab\x60\xf7\x5b\x6a\x60\xfa\x8e\xac\x8e\xad\x60\xf9\x53\x61\x56\xfa\x8e\xae\x51\x51\x60\xf8\x5b\xe2\x49\xae\x5b\xc3\x4b\x7b\x8e\xaf\x8e\xb0\x8e\xb1\x8e\xb2\x8e\xb3\x8e\xb4\x8e\xb5\x8e\xb6\x4a\xf7\x5b\xa0\x8e\xb7\x8e\xb8\x8e\xb9\x8e\xba\x8e\xbb\x58\x4f\x48\xee\x8e\xbc\x8e\xbd\x60\xfb\x8e\xbe\x8e\xbf\x8e\xc0\x8e\xc1\x8e\xc2\x61\x41\x4a\x43\x8e\xc3\x8e\xc4\x60\xfc\x60\xfd\x52\x51\x8e\xc5\x8e\xc6\x8e\xc7\x8e\xc8\x52\x7d\x8e\xc9\x61\x42\x4c\x9a\x8e\xca\x8e\xcb\x8e\xcc\x8e\xcd\x8e\xce\x8e\xcf\x4e\x6f\x8e\xd0\x8e\xd1\x8e\xd2\x8e\xd3\x8e\xd4\x8e\xd5\x8e\xd6\x61\x43\x52\xba\x8e\xd7\x8e\xd8\x8e\xd9\x8e\xda\x8e\xdb\x61\x44\x8e\xdc\x8e\xdd\x61\x45\x8e\xde\x8e\xdf\x61\x46\x4a\xb0\x8e\xe0\x8e\xe1\x8e\xe2\x8e\xe3\x8e\xe4\x8e\xe5\x8e\xe6\x8e\xe7\x8e\xe8\x8e\xe9\x8e\xea\x8e\xeb\x8e\xec\x8e\xed\x8e\xee\x4c\xc8\x53\xbc\x52\xe9\x8e\xef\x49\xa1\x8e\xf0\x58\xd1\x8e\xf1\x64\x7b\x4e\x63\x5a\x77\x5a\x64\x8e\xf2\x4d\x84", /* 5e80 */ "\x61\xce\x8e\xf3\x8e\xf4\x8e\xf5\x5c\x4f\x8e\xf6\x54\x8d\x49\x73\x8e\xf7\x8e\xf8\x4a\xb1\x61\xd0\x8e\xf9\x8e\xfa\x8e\xfb\x58\xf1\x51\xad\x61\xcf\x8e\xfc\x50\x83\x5a\x46\x4b\x77\x61\xd1\x4b\x8b\x8e\xfd\x52\x8e\x4c\xfc\x8f\x41\x4c\xad\x8f\x42\x53\x73\x4c\x6f\x61\xd3\x8f\x43\x8f\x44\x8f\x45\x8f\x46\x61\xd2\x4b\xc7\x5c\x9a\x8f\x47\x8f\x48\x8f\x49\x8f\x4a\x8f\x4b\x57\x45\x8f\x4c\x8f\x4d\x8f\x4e\x8f\x4f\x8f\x50\x61\xd7\x8f\x51\x61\xd5\x55\xfb\x50\x55\x5a\x59\x61\xd4\x8f\x52\x8f\x53\x8f\x54\x8f\x55\x61\xd6\x8f\x56\x8f\x57\x8f\x58\x8f\x59\x8f\x5a\x8f\x5b\x8f\x5c\x8f\x5d\x8f\x5e\x8f\x5f\x51\x4e\x50\xc7\x8f\x60\x8f\x61\x8f\x62\x8f\x63\x8f\x64\x8f\x65\x61\xda\x61\xd9\x50\xa9\x8f\x66\x8f\x67\x51\x6e\x8f\x68\x8f\x69\x8f\x6a\x8f\x6b\x61\xdb\x8f\x6c\x8f\x6d\x8f\x6e\x8f\x6f\x8f\x70\x8f\x71\x8f\x72\x8f\x73\x8f\x74\x8f\x75\x8f\x76\x8f\x77\x61\xdc\x8f\x78\x61\xdd\x8f\x79\x8f\x7a\x8f\x7b\x8f\x7c\x8f\x7d\x8f\x7e\x8f\x7f\x8f\x81\x8f\x82\x5e\x68\x8f\x83\x59\x73\x57\x42\x8f\x84\x8f\x85\x4f\x48\x8f\x86\x8f\x87\x8f\x88\x5f\xc2\x5c\xa4", /* 5f00 */ "\x50\x4a\x5e\x6d\x59\xeb\x53\xf9\x53\x4a\x8f\x89\x8f\x8a\x8f\x8b\x5f\xc3\x8f\x8c\x49\x77\x60\x4e\x8f\x8d\x8f\x8e\x8f\x8f\x55\xbc\x8f\x90\x60\x51\x8f\x91\x4d\x4d\x8f\x92\x59\xfc\x8f\x93\x4c\xa4\x4d\xea\x8f\x94\x8f\x95\x4a\x7a\x8f\x96\x8f\x97\x8f\x98\x4b\x7c\x5b\x65\x8f\x99\x8f\x9a\x8f\x9b\x8f\x9c\x52\x76\x58\x72\x4e\x41\x8f\x9d\x63\x94\x63\x93\x8f\x9e\x8f\x9f\x63\x95\x8f\xa0\x57\x85\x8f\xa1\x54\xf4\x8f\xa2\x8f\xa3\x8f\xa4\x8f\xa5\x8f\xa6\x8f\xa7\x8f\xa8\x4b\x4f\x54\x5f\x8f\xa9\x63\x97\x8f\xaa\x8f\xab\x8f\xac\x66\xaf\x8f\xad\x8f\xae\x8f\xaf\x8f\xb0\x8f\xb1\x8f\xb2\x8f\xb3\x8f\xb4\x8f\xb5\x8f\xb6\x8f\xb7\x8f\xb8\x8f\xb9\x8f\xba\x8f\xbb\x63\x87\x8f\xbc\x4d\x8a\x4b\x51\x8f\xbd\x51\xbb\x63\x89\x63\x88\x63\x8a\x8f\xbe\x8f\xbf\x8f\xc0\x8f\xc1\x59\xcc\x8f\xc2\x8f\xc3\x8f\xc4\x61\x8b\x58\xcd\x8f\xc5\x57\x4e\x8f\xc6\x59\x86\x8f\xc7\x8f\xc8\x49\xc9\x49\x8c\x8f\xc9\x49\x93\x53\x8e\x8f\xca\x8f\xcb\x5b\x63\x5a\x50\x8f\xcc\x61\x7c\x8f\xcd\x8f\xce\x8f\xcf\x61\x7d\x8f\xd0\x59\xda\x8f\xd1\x4a\x59\x49\x6b\x8f\xd2\x8f\xd3\x8f\xd4", /* 5f80 */ "\x57\x9a\x5b\x98\x61\x7e\x8f\xd5\x4f\xb5\x4a\xfc\x8f\xd6\x61\x7f\x4d\xdb\x61\x81\x4e\x52\x51\xc8\x61\x82\x8f\xd7\x8f\xd8\x8f\xd9\x58\xeb\x8f\xda\x57\x5d\x8f\xdb\x8f\xdc\x61\x83\x8f\xdd\x4b\x63\x53\x67\x61\x84\x8f\xde\x8f\xdf\x61\x85\x8f\xe0\x8f\xe1\x8f\xe2\x8f\xe3\x5a\x9a\x8f\xe4\x8f\xe5\x8f\xe6\x8f\xe7\x8f\xe8\x8f\xe9\x61\x86\x8f\xea\x59\x4d\x8f\xeb\x8f\xec\x61\x87\x57\xa1\x8f\xed\x8f\xee\x8f\xef\x8f\xf0\x8f\xf1\x8f\xf2\x61\x88\x8f\xf3\x4b\x62\x8f\xf4\x8f\xf5\x8f\xf6\x8f\xf7\x61\x89\x4e\x75\x8f\xf8\x8f\xf9\x8f\xfa\x8f\xfb\x8f\xfc\x58\xc3\x61\xdf\x49\x78\x59\xe3\x8f\xfd\x90\x41\x61\xe0\x90\x42\x90\x43\x4e\xc8\x54\xcb\x90\x44\x61\xe2\x66\xfd\x66\xfc\x60\x4f\x90\x45\x90\x46\x90\x47\x61\xe1\x5b\xbd\x57\x9d\x52\x46\x90\x48\x90\x49\x90\x4a\x62\x63\x90\x4b\x90\x4c\x5b\xd1\x61\xe6\x90\x4d\x90\x4e\x61\xe7\x90\x4f\x90\x50\x5a\x67\x90\x51\x90\x52\x61\xeb\x50\x8d\x90\x53\x61\xec\x61\xe4\x90\x54\x90\x55\x4a\x60\x90\x56\x90\x57\x90\x58\x52\xed\x90\x59\x90\x5a\x61\xed\x90\x5b\x90\x5c\x58\xc2\x90\x5d\x4d\xf5\x61\xe8\x4c\x7e", /* 6000 */ "\x4e\x53\x56\xab\x56\x6b\x61\xe3\x61\xe5\x61\xe9\x61\xea\x90\x5e\x90\x5f\x90\x60\x61\xf6\x90\x61\x90\x62\x61\xf3\x5a\xf4\x61\xf2\x90\x63\x90\x64\x53\x4d\x90\x65\x5b\x9b\x53\x62\x49\xbf\x90\x66\x90\x67\x61\xee\x90\x68\x61\xf1\x51\x4f\x56\x5c\x90\x69\x90\x6a\x4b\x41\x61\xf8\x90\x6b\x90\x6c\x90\x6d\x4e\xb0\x61\xf0\x58\xd3\x5a\xb8\x61\xf4\x4d\x76\x61\xf5\x90\x6e\x90\x6f\x90\x70\x54\x73\x90\x71\x90\x72\x90\x73\x90\x74\x90\x75\x61\xef\x90\x76\x90\x77\x90\x78\x90\x79\x90\x7a\x5c\x7c\x67\x41\x90\x7b\x90\x7c\x61\xf7\x90\x7d\x67\x45\x61\xfd\x55\xd0\x90\x7e\x90\x7f\x90\x81\x90\x82\x90\x83\x90\x84\x90\x85\x51\x55\x90\x86\x4e\x70\x90\x87\x90\x88\x50\x76\x90\x89\x4d\xe2\x90\x8a\x90\x8b\x56\x41\x90\x8c\x90\x8d\x90\x8e\x67\x46\x67\x43\x90\x8f\x90\x90\x67\x42\x90\x91\x90\x92\x90\x93\x90\x94\x4e\x76\x67\x47\x58\xf3\x90\x95\x90\x96\x67\x44\x4d\xdd\x4b\xf6\x62\x41\x4b\xb1\x56\xf0\x4d\x47\x90\x97\x58\x42\x54\x41\x90\x98\x90\x99\x50\x72\x90\x9a\x90\x9b\x4b\xf0\x90\x9c\x61\xf9\x61\xfa\x61\xfc\x61\xfb\x52\xd4\x62\x42\x90\x9d\x5a\x61", /* 6080 */ "\x90\x9e\x90\x9f\x90\xa0\x62\x47\x54\x64\x90\xa1\x90\xa2\x90\xa3\x90\xa4\x58\x44\x90\xa5\x90\xa6\x62\x49\x4d\xb6\x90\xa7\x90\xa8\x90\xa9\x90\xaa\x62\x48\x90\xab\x4e\x7a\x90\xac\x62\x43\x90\xad\x90\xae\x90\xaf\x62\x44\x62\x4a\x90\xb0\x62\x46\x90\xb1\x57\xf1\x5a\x66\x90\xb2\x90\xb3\x4e\x5c\x90\xb4\x90\xb5\x5a\xc2\x90\xb6\x52\xf9\x90\xb7\x90\xb8\x67\x48\x58\xfb\x62\x45\x90\xb9\x52\x96\x90\xba\x62\x4d\x49\x4f\x90\xbb\x62\x52\x90\xbc\x90\xbd\x90\xbe\x4e\xc1\x90\xbf\x90\xc0\x62\x4c\x4b\x5f\x90\xc1\x90\xc2\x90\xc3\x90\xc4\x90\xc5\x90\xc6\x90\xc7\x90\xc8\x54\x8a\x62\x50\x90\xc9\x90\xca\x90\xcb\x4f\xa9\x57\x90\x90\xcc\x90\xcd\x90\xce\x90\xcf\x90\xd0\x4e\x94\x90\xd1\x90\xd2\x90\xd3\x56\xe7\x90\xd4\x90\xd5\x62\x4f\x90\xd6\x62\x51\x90\xd7\x58\x47\x62\x4e\x90\xd8\x57\xa8\x4e\x7d\x90\xd9\x90\xda\x90\xdb\x90\xdc\x90\xdd\x4b\x8c\x4f\xe4\x49\xd1\x4a\x6d\x90\xde\x49\x59\x62\x4b\x49\xd0\x4b\x4c\x4d\x7f\x4b\xe7\x90\xdf\x90\xe0\x58\x8c\x62\x57\x90\xe1\x4e\x6c\x90\xe2\x90\xe3\x54\xc6\x58\xc9\x90\xe4\x90\xe5\x90\xe6\x90\xe7\x90\xe8", /* 6100 */ "\x62\x58\x4a\x8f\x90\xe9\x90\xea\x90\xeb\x90\xec\x67\x49\x90\xed\x5a\x9b\x5a\x85\x90\xee\x90\xef\x90\xf0\x67\x4a\x62\x59\x59\xe1\x90\xf1\x90\xf2\x90\xf3\x90\xf4\x90\xf5\x62\x55\x90\xf6\x90\xf7\x90\xf8\x90\xf9\x5a\x7e\x90\xfa\x90\xfb\x90\xfc\x90\xfd\x4c\xcf\x62\x53\x91\x41\x91\x42\x62\x56\x4c\x7f\x91\x43\x62\x54\x50\xa1\x91\x44\x91\x45\x91\x46\x62\x5a\x91\x47\x91\x48\x91\x49\x91\x4a\x91\x4b\x91\x4c\x91\x4d\x91\x4e\x91\x4f\x91\x50\x91\x51\x91\x52\x91\x53\x91\x54\x91\x55\x91\x56\x91\x57\x91\x58\x91\x59\x5a\xb7\x91\x5a\x91\x5b\x91\x5c\x91\x5d\x91\x5e\x91\x5f\x91\x60\x91\x61\x4a\xc7\x91\x62\x62\x5b\x91\x63\x4e\x65\x91\x64\x55\x98\x91\x65\x91\x66\x55\x86\x91\x67\x91\x68\x91\x69\x52\xbc\x91\x6a\x91\x6b\x91\x6c\x91\x6d\x91\x6e\x91\x6f\x91\x70\x67\x4b\x91\x71\x91\x72\x91\x73\x91\x74\x51\xfc\x91\x75\x91\x76\x91\x77\x91\x78\x4e\x7b\x50\x4e\x91\x79\x91\x7a\x91\x7b\x91\x7c\x91\x7d\x91\x7e\x91\x7f\x57\xbe\x91\x81\x91\x82\x91\x83\x91\x84\x62\x5c\x91\x85\x50\x56\x91\x86\x91\x87\x91\x88\x91\x89\x91\x8a\x91\x8b\x91\x8c\x91\x8d", /* 6180 */ "\x91\x8e\x91\x8f\x91\x90\x91\x91\x91\x92\x91\x93\x91\x94\x91\x95\x91\x96\x91\x97\x91\x98\x49\x90\x91\x99\x91\x9a\x5a\xf6\x91\x9b\x91\x9c\x91\x9d\x91\x9e\x91\x9f\x62\x5e\x91\xa0\x91\xa1\x91\xa2\x91\xa3\x91\xa4\x91\xa5\x91\xa6\x91\xa7\x67\x4d\x91\xa8\x91\xa9\x91\xaa\x91\xab\x91\xac\x91\xad\x91\xae\x91\xaf\x91\xb0\x62\x5f\x4d\xa8\x67\x4c\x91\xb1\x91\xb2\x62\x5d\x91\xb3\x91\xb4\x91\xb5\x91\xb6\x91\xb7\x91\xb8\x91\xb9\x91\xba\x91\xbb\x91\xbc\x62\x60\x91\xbd\x91\xbe\x91\xbf\x91\xc0\x91\xc1\x91\xc2\x4d\xb5\x91\xc3\x91\xc4\x91\xc5\x4b\xad\x91\xc6\x91\xc7\x91\xc8\x91\xc9\x91\xca\x58\xb7\x91\xcb\x48\xc2\x67\x4e\x91\xcc\x91\xcd\x91\xce\x91\xcf\x91\xd0\x67\x4f\x50\xc0\x91\xd1\x62\x61\x91\xd2\x91\xd3\x91\xd4\x91\xd5\x91\xd6\x91\xd7\x91\xd8\x91\xd9\x91\xda\x91\xdb\x91\xdc\x91\xdd\x91\xde\x91\xdf\x91\xe0\x91\xe1\x91\xe2\x53\x53\x91\xe3\x91\xe4\x91\xe5\x91\xe6\x91\xe7\x91\xe8\x91\xe9\x91\xea\x91\xeb\x91\xec\x91\xed\x91\xee\x91\xef\x91\xf0\x62\x62\x91\xf1\x91\xf2\x91\xf3\x91\xf4\x91\xf5\x91\xf6\x91\xf7\x91\xf8\x91\xf9\x5e\xb1", /* 6200 */ "\x91\xfa\x91\xfb\x91\xfc\x91\xfd\x92\x41\x92\x42\x67\x50\x92\x43\x4c\xe9\x92\x44\x57\xeb\x65\xa6\x58\xe6\x55\xf8\x54\xd5\x58\x57\x4a\x69\x57\xd1\x4f\x85\x92\x45\x92\x46\x62\x7e\x4e\x93\x65\xa7\x5b\x5d\x92\x47\x53\xdc\x65\xa8\x92\x48\x92\x49\x92\x4a\x65\xa9\x92\x4b\x65\xab\x65\xaa\x92\x4c\x65\xad\x65\xac\x92\x4d\x92\x4e\x92\x4f\x92\x50\x4f\x78\x92\x51\x65\xae\x92\x52\x51\xbd\x92\x53\x92\x54\x92\x55\x92\x56\x4a\xc0\x4a\xf6\x92\x57\x92\x58\x4e\x47\x92\x59\x92\x5a\x92\x5b\x92\x5c\x92\x5d\x66\xe5\x66\xe4\x4c\x5f\x56\x9a\x49\x83\x92\x5e\x66\xe6\x92\x5f\x92\x60\x92\x61\x55\x68\x66\xe7\x66\xe8\x92\x62\x55\xd5\x5f\xcf\x49\xc4\x5a\xf9\x92\x63\x92\x64\x53\xca\x48\xc6\x4a\xf1\x54\xd2\x92\x65\x92\x66\x92\x67\x57\x70\x92\x68\x92\x69\x50\x58\x92\x6a\x92\x6b\x92\x6c\x92\x6d\x92\x6e\x92\x6f\x92\x70\x50\x7b\x92\x71\x92\x72\x54\x44\x5b\xb3\x92\x73\x50\xa8\x5f\xd0\x55\x48\x59\x90\x53\x44\x48\xe6\x4a\x56\x54\xc4\x92\x74\x92\x75\x48\xe1\x92\x76\x92\x77\x4c\x97\x92\x78\x92\x79\x53\x9b\x92\x7a\x92\x7b\x4b\xf2\x92\x7c\x5b\x72\x4a\x70", /* 6280 */ "\x4e\xbb\x92\x7d\x92\x7e\x92\x7f\x4a\x4d\x92\x81\x92\x82\x92\x83\x92\x84\x4f\xf0\x48\xd0\x92\x85\x92\x86\x92\x87\x92\x88\x92\x89\x92\x8a\x59\xd5\x55\xe2\x5c\x45\x92\x8b\x57\x56\x4b\xb5\x50\x59\x5b\x7b\x92\x8c\x4c\xa6\x53\x77\x92\x8d\x92\x8e\x92\x8f\x5f\xd1\x50\x79\x51\xd4\x54\x60\x92\x90\x4e\x44\x49\x48\x92\x91\x92\x92\x53\x8b\x92\x93\x92\x94\x53\x9c\x56\xa6\x92\x95\x92\x96\x92\x97\x92\x98\x49\x47\x92\x99\x92\x9a\x92\x9b\x4b\x76\x92\x9c\x92\x9d\x92\x9e\x52\xa7\x92\x9f\x5f\xd2\x59\x5a\x4a\x8a\x92\xa0\x52\x93\x92\xa1\x92\xa2\x4c\x98\x92\xa3\x5b\xf3\x4b\x43\x49\xef\x52\xb3\x52\xe8\x50\xac\x5f\xd3\x92\xa4\x48\xe7\x53\x64\x51\x81\x92\xa5\x4d\x75\x92\xa6\x4f\xdb\x57\x78\x48\xcd\x92\xa7\x57\x6f\x5f\xd5\x4f\xcf\x5c\x5e\x5f\xd4\x5b\x70\x48\xdc\x92\xa8\x92\xa9\x52\xe1\x92\xaa\x92\xab\x51\xa2\x4e\xef\x92\xac\x5a\x55\x50\xb8\x53\x41\x49\xa5\x5a\xf0\x92\xad\x92\xae\x50\xa7\x55\xc2\x5f\xd6\x5b\x9d\x92\xaf\x4d\x50\x92\xb0\x54\xac\x56\x49\x92\xb1\x5f\xd8\x50\x5d\x92\xb2\x92\xb3\x92\xb4\x92\xb5\x53\xb3\x5c\x47\x55\xaf\x52\xc2", /* 6300 */ "\x92\xb6\x4a\x76\x4d\x72\x92\xb7\x92\xb8\x92\xb9\x92\xba\x5b\xb7\x65\xfb\x48\xb3\x92\xbb\x92\xbc\x92\xbd\x92\xbe\x50\x87\x92\xbf\x92\xc0\x56\xf3\x92\xc1\x92\xc2\x92\xc3\x92\xc4\x57\x7a\x92\xc5\x92\xc6\x92\xc7\x5b\xbe\x51\xcd\x92\xc8\x57\xcd\x56\xa1\x58\xad\x52\xd2\x4b\x52\x5f\xd7\x5b\x96\x4e\xb6\x4e\x73\x92\xc9\x92\xca\x48\xa3\x92\xcb\x53\x52\x4a\xeb\x92\xcc\x92\xcd\x92\xce\x5b\x92\x92\xcf\x92\xd0\x65\xfc\x92\xd1\x92\xd2\x92\xd3\x92\xd4\x92\xd5\x92\xd6\x5f\xd9\x57\x46\x92\xd7\x92\xd8\x57\x8d\x92\xd9\x92\xda\x92\xdb\x92\xdc\x57\xe5\x5f\xdb\x92\xdd\x57\x51\x50\xa5\x92\xde\x92\xdf\x5c\x5d\x92\xe0\x5f\xda\x48\xc5\x4d\xb3\x55\x73\x52\xf2\x4f\xe7\x92\xe1\x92\xe2\x92\xe3\x92\xe4\x49\xb5\x92\xe5\x92\xe6\x92\xe7\x92\xe8\x92\xe9\x92\xea\x92\xeb\x92\xec\x50\xcb\x56\x91\x92\xed\x4e\xf0\x4e\x5b\x4b\x57\x92\xee\x92\xef\x92\xf0\x53\x96\x92\xf1\x5f\xe5\x92\xf2\x92\xf3\x92\xf4\x5f\xe2\x4f\xdc\x92\xf5\x92\xf6\x5f\xde\x92\xf7\x92\xf8\x92\xf9\x92\xfa\x4a\xb6\x4f\x7d\x92\xfb\x92\xfc\x5f\xdf\x52\xec\x92\xfd\x93\x41\x93\x42\x93\x43", /* 6380 */ "\x58\x66\x93\x44\x4b\x81\x93\x45\x93\x46\x93\x47\x93\x48\x4b\xdd\x55\xd9\x4b\x95\x5f\xe4\x93\x49\x5b\x66\x93\x4a\x5f\xe0\x56\xcc\x53\xfd\x93\x4b\x53\x65\x93\x4c\x93\x4d\x93\x4e\x59\xb3\x93\x4f\x4f\xf1\x93\x50\x93\x51\x93\x52\x93\x53\x93\x54\x93\x55\x93\x56\x51\xd2\x93\x57\x56\xbc\x4a\x58\x93\x58\x4f\x73\x93\x59\x50\x78\x57\x66\x59\x7a\x4a\xea\x93\x5a\x5f\xe3\x5f\xdc\x5f\xe6\x93\x5b\x65\xfd\x93\x5c\x93\x5d\x51\xaf\x5f\xe1\x93\x5e\x93\x5f\x5b\xbf\x4b\x47\x93\x60\x49\xf3\x93\x61\x5f\xe7\x93\x62\x5f\xf1\x93\x63\x93\x64\x93\x65\x93\x66\x93\x67\x5f\xec\x93\x68\x5f\xf0\x93\x69\x93\x6a\x54\xdf\x93\x6b\x93\x6c\x93\x6d\x5c\x82\x5f\xee\x52\x89\x56\xe0\x93\x6e\x49\xe4\x93\x6f\x93\x70\x93\x71\x59\xbd\x93\x72\x93\x73\x93\x74\x93\x75\x93\x76\x93\x77\x93\x78\x5f\xed\x93\x79\x5f\xea\x57\xd4\x93\x7a\x4a\xa6\x93\x7b\x93\x7c\x93\x7d\x93\x7e\x93\x7f\x50\x4b\x4f\xbd\x93\x81\x93\x82\x4f\x72\x93\x83\x93\x84\x93\x85\x93\x86\x5f\xe8\x93\x87\x5a\xad\x93\x88\x5f\xdd\x93\x89\x5f\xe9\x93\x8a\x93\x8b\x93\x8c\x93\x8d\x50\xbe\x93\x8e\x5f\xeb", /* 6400 */ "\x49\xf2\x4c\xe8\x51\xa6\x93\x8f\x93\x90\x4f\x61\x93\x91\x93\x92\x93\x93\x93\x94\x93\x95\x5f\xf4\x5f\xf7\x93\x96\x93\x97\x49\xaa\x4a\xa3\x93\x98\x93\x99\x4a\xe9\x55\x46\x93\x9a\x93\x9b\x93\x9c\x93\x9d\x93\x9e\x93\x9f\x5f\xf5\x56\x71\x93\xa0\x4c\xe2\x93\xa1\x5f\xf6\x5f\xf9\x93\xa2\x93\xa3\x93\xa4\x93\xa5\x5f\xf8\x93\xa6\x93\xa7\x93\xa8\x56\xc1\x93\xa9\x48\xe0\x4a\xed\x93\xaa\x93\xab\x93\xac\x93\xad\x93\xae\x93\xaf\x63\x5a\x93\xb0\x93\xb1\x93\xb2\x93\xb3\x93\xb4\x58\xae\x93\xb5\x93\xb6\x49\xea\x93\xb7\x66\x41\x93\xb8\x5f\xf3\x93\xb9\x93\xba\x55\x84\x5f\xf2\x48\xd9\x59\xa0\x49\x98\x93\xbb\x56\xae\x93\xbc\x93\xbd\x93\xbe\x93\xbf\x93\xc0\x93\xc1\x93\xc2\x5f\xef\x93\xc3\x56\x44\x93\xc4\x93\xc5\x93\xc6\x5b\x4a\x93\xc7\x93\xc8\x93\xc9\x93\xca\x93\xcb\x5f\xfa\x93\xcc\x93\xcd\x93\xce\x93\xcf\x93\xd0\x93\xd1\x93\xd2\x93\xd3\x4a\xdc\x93\xd4\x52\xa5\x93\xd5\x93\xd6\x93\xd7\x5f\xfc\x93\xd8\x93\xd9\x93\xda\x93\xdb\x93\xdc\x93\xdd\x93\xde\x93\xdf\x93\xe0\x93\xe1\x52\x9f\x52\xa0\x60\x41\x93\xe2\x93\xe3\x93\xe4\x93\xe5\x93\xe6", /* 6480 */ "\x93\xe7\x93\xe8\x51\x6c\x93\xe9\x5f\xfb\x4f\xee\x93\xea\x53\xb1\x93\xeb\x93\xec\x93\xed\x93\xee\x93\xef\x93\xf0\x93\xf1\x93\xf2\x93\xf3\x4a\x65\x54\xf5\x93\xf4\x93\xf5\x56\x5a\x5f\xfd\x93\xf6\x93\xf7\x60\x44\x93\xf8\x93\xf9\x93\xfa\x93\xfb\x5c\x52\x93\xfc\x93\xfd\x94\x41\x94\x42\x94\x43\x4a\x57\x94\x44\x94\x45\x94\x46\x94\x47\x51\x63\x94\x48\x94\x49\x54\x6b\x49\xa4\x4a\xe8\x94\x4a\x5c\x4b\x94\x4b\x94\x4c\x94\x4d\x94\x4e\x52\xeb\x94\x4f\x60\x42\x60\x43\x94\x50\x60\x45\x94\x51\x4d\xb2\x94\x52\x94\x53\x94\x54\x60\x46\x94\x55\x50\xdd\x94\x56\x94\x57\x55\x63\x94\x58\x94\x59\x94\x5a\x94\x5b\x94\x5c\x94\x5d\x94\x5e\x49\xd8\x54\x87\x94\x5f\x60\x47\x94\x60\x54\x7c\x94\x61\x94\x62\x94\x63\x94\x64\x60\x48\x66\x42\x94\x65\x94\x66\x94\x67\x94\x68\x94\x69\x56\x73\x94\x6a\x94\x6b\x94\x6c\x60\x4a\x94\x6d\x60\x49\x94\x6e\x49\xc0\x94\x6f\x94\x70\x94\x71\x94\x72\x94\x73\x94\x74\x94\x75\x94\x76\x94\x77\x94\x78\x94\x79\x94\x7a\x94\x7b\x94\x7c\x94\x7d\x94\x7e\x94\x7f\x94\x81\x94\x82\x94\x83\x94\x84\x94\x85\x94\x86\x94\x87\x94\x88", /* 6500 */ "\x53\x6a\x94\x89\x94\x8a\x94\x8b\x94\x8c\x94\x8d\x94\x8e\x94\x8f\x94\x90\x60\x4b\x94\x91\x94\x92\x94\x93\x94\x94\x94\x95\x94\x96\x94\x97\x94\x98\x5a\xdb\x94\x99\x94\x9a\x94\x9b\x94\x9c\x94\x9d\x54\xc0\x94\x9e\x94\x9f\x94\xa0\x94\xa1\x94\xa2\x94\xa3\x94\xa4\x94\xa5\x94\xa6\x94\xa7\x94\xa8\x94\xa9\x60\x4c\x94\xaa\x94\xab\x94\xac\x94\xad\x94\xae\x4f\xef\x94\xaf\x94\xb0\x60\x4d\x5b\xa6\x94\xb1\x94\xb2\x94\xb3\x94\xb4\x65\xb6\x66\x56\x55\xd4\x94\xb5\x5c\xfb\x4c\xc3\x94\xb6\x4d\x45\x94\xb7\x94\xb8\x4c\x65\x5b\x9f\x94\xb9\x94\xba\x94\xbb\x94\xbc\x94\xbd\x4d\x6a\x94\xbe\x94\xbf\x58\xa6\x6a\xcc\x94\xc0\x94\xc1\x4b\x70\x94\xc2\x94\xc3\x52\x95\x94\xc4\x4f\xc7\x94\xc5\x94\xc6\x94\xc7\x66\x57\x48\xbc\x94\xc8\x94\xc9\x4f\x6c\x94\xca\x51\x52\x94\xcb\x49\x76\x4a\x48\x94\xcc\x94\xcd\x94\xce\x4c\xd1\x55\x42\x94\xcf\x94\xd0\x4b\xd7\x94\xd1\x94\xd2\x94\xd3\x94\xd4\x66\x58\x4f\xb3\x94\xd5\x94\xd6\x94\xd7\x55\xfc\x94\xd8\x54\x63\x94\xd9\x5b\x9c\x94\xda\x94\xdb\x4c\x94\x94\xdc\x94\xdd\x94\xde\x94\xdf\x94\xe0\x94\xe1\x94\xe2\x94\xe3", /* 6580 */ "\x94\xe4\x94\xe5\x94\xe6\x94\xe7\x94\xe8\x94\xe9\x94\xea\x57\xc3\x94\xeb\x94\xec\x94\xed\x5b\x4b\x49\x94\x94\xee\x94\xef\x94\xf0\x66\xb2\x48\xde\x94\xf1\x66\xb4\x94\xf2\x94\xf3\x94\xf4\x4b\xb6\x94\xf5\x51\x6f\x94\xf6\x6b\x9b\x58\xb0\x94\xf7\x94\xf8\x5b\x86\x94\xf9\x57\xd2\x94\xfa\x94\xfb\x4f\x90\x4a\x83\x94\xfc\x4c\xaa\x94\xfd\x5b\x56\x95\x41\x67\x5d\x95\x42\x4b\xce\x95\x43\x56\x59\x58\xc1\x95\x44\x95\x45\x95\x46\x95\x47\x95\x48\x95\x49\x95\x4a\x95\x4b\x4c\x5d\x95\x4c\x95\x4d\x66\xb5\x55\xa8\x95\x4e\x95\x4f\x95\x50\x53\x74\x95\x51\x66\xb8\x66\xb7\x51\xc2\x66\xb6\x95\x52\x95\x53\x95\x54\x95\x55\x58\xfc\x66\xb9\x95\x56\x66\xba\x5c\x86\x95\x57\x95\x58\x66\xbb\x95\x59\x95\x5a\x95\x5b\x66\xbc\x53\xeb\x95\x5c\x95\x5d\x95\x5e\x95\x5f\x95\x60\x95\x61\x95\x62\x95\x63\x57\xdd\x95\x64\x4e\xc7\x95\x65\x95\x66\x54\xd4\x4b\x49\x4f\xc8\x5b\xbb\x5a\xe6\x95\x67\x95\x68\x59\x4e\x58\xf0\x65\xb7\x65\xb8\x65\xb9\x4d\xb4\x95\x69\x95\x6a\x95\x6b\x95\x6c\x55\xb0\x50\x96\x95\x6d\x95\x6e\x57\x9b\x95\x6f\x95\x70\x95\x71\x95\x72\x95\x73", /* 6600 */ "\x65\xbf\x95\x74\x48\xb9\x65\xbd\x95\x75\x95\x76\x50\xa4\x95\x77\x95\x78\x95\x79\x65\xba\x95\x7a\x49\xfc\x95\x7b\x52\x98\x4e\x89\x95\x7c\x95\x7d\x95\x7e\x59\xd6\x57\xf3\x65\xbe\x95\x7f\x95\x81\x95\x82\x65\xbb\x95\x83\x95\x84\x95\x85\x65\xc2\x95\x86\x58\xc6\x5a\x53\x95\x87\x95\x88\x95\x89\x95\x8a\x4a\xb9\x95\x8b\x52\x61\x5c\x93\x95\x8c\x95\x8d\x95\x8e\x95\x8f\x5b\x71\x95\x90\x55\xc6\x95\x91\x65\xc4\x95\x92\x95\x93\x65\xc3\x65\xc6\x65\xc5\x95\x94\x95\x95\x95\x96\x95\x97\x95\x98\x5b\xe6\x95\x99\x58\x74\x95\x9a\x95\x9b\x65\xca\x95\x9c\x4e\x6e\x95\x9d\x95\x9e\x95\x9f\x95\xa0\x95\xa1\x95\xa2\x95\xa3\x4f\x9b\x55\x6e\x95\xa4\x95\xa5\x65\xcb\x95\xa6\x95\xa7\x55\x59\x58\x9f\x65\xc9\x5a\xcd\x65\xcc\x65\xce\x95\xa8\x95\xa9\x57\x8e\x95\xaa\x95\xab\x95\xac\x95\xad\x65\xc8\x95\xae\x65\xcd\x95\xaf\x95\xb0\x57\xed\x95\xb1\x4e\x7e\x95\xb2\x4a\x5f\x95\xb3\x95\xb4\x95\xb5\x95\xb6\x95\xb7\x53\xd4\x4f\xaf\x57\xf9\x95\xb8\x95\xb9\x95\xba\x54\x88\x95\xbb\x4f\xa6\x65\xcf\x95\xbc\x95\xbd\x5b\xc6\x95\xbe\x95\xbf\x95\xc0\x51\x60\x95\xc1", /* 6680 */ "\x95\xc2\x95\xc3\x5a\xdc\x95\xc4\x65\xd0\x95\xc5\x95\xc6\x58\x5e\x95\xc7\x95\xc8\x95\xc9\x95\xca\x65\xd1\x95\xcb\x95\xcc\x95\xcd\x95\xce\x55\xed\x95\xcf\x95\xd0\x95\xd1\x95\xd2\x53\x4f\x48\xb4\x95\xd3\x95\xd4\x95\xd5\x95\xd6\x95\xd7\x65\xd3\x95\xd8\x95\xd9\x95\xda\x95\xdb\x95\xdc\x95\xdd\x95\xde\x95\xdf\x95\xe0\x65\xd2\x6a\xde\x95\xe1\x95\xe2\x95\xe3\x95\xe4\x95\xe5\x52\xb9\x95\xe6\x95\xe7\x95\xe8\x95\xe9\x95\xea\x49\x49\x95\xeb\x95\xec\x95\xed\x95\xee\x63\x7f\x95\xef\x95\xf0\x95\xf1\x95\xf2\x65\xd4\x95\xf3\x95\xf4\x95\xf5\x95\xf6\x95\xf7\x95\xf8\x95\xf9\x95\xfa\x95\xfb\x95\xfc\x95\xfd\x96\x41\x96\x42\x96\x43\x96\x44\x96\x45\x96\x46\x96\x47\x96\x48\x96\x49\x96\x4a\x96\x4b\x96\x4c\x96\x4d\x96\x4e\x96\x4f\x55\xee\x96\x50\x65\xd5\x65\xd6\x53\xd7\x96\x51\x96\x52\x96\x53\x96\x54\x96\x55\x96\x56\x96\x57\x96\x58\x65\xd7\x96\x59\x96\x5a\x65\xd8\x96\x5b\x96\x5c\x96\x5d\x96\x5e\x96\x5f\x96\x60\x5a\xba\x96\x61\x54\x9b\x59\xb6\x4c\xfb\x96\x62\x96\x63\x65\xc1\x96\x64\x49\xdb\x96\x65\x96\x66\x51\xfb\x96\x67\x5a\xf7\x56\xe5", /* 6700 */ "\x5c\x8f\x96\x68\x96\x69\x96\x6a\x96\x6b\x96\x6c\x96\x6d\x96\x6e\x5a\xc1\x5a\x70\x66\x63\x53\x94\x96\x6f\x4c\x9f\x96\x70\x96\x71\x66\x74\x96\x72\x96\x73\x96\x74\x56\x57\x66\x7e\x96\x75\x50\xc9\x96\x76\x96\x77\x96\x78\x57\x9c\x96\x79\x4a\x4f\x96\x7a\x53\xd9\x96\x7b\x96\x7c\x96\x7d\x96\x7e\x96\x7f\x96\x81\x66\x9d\x96\x82\x52\xbd\x96\x83\x57\xb3\x52\xa8\x49\x5e\x5a\xfc\x96\x84\x55\xf4\x96\x85\x5b\xeb\x96\x86\x96\x87\x53\xd2\x4b\xe3\x96\x88\x96\x89\x96\x8a\x96\x8b\x4e\x9b\x96\x8c\x96\x8d\x58\xdf\x96\x8e\x96\x8f\x55\x51\x96\x90\x5a\xd2\x54\xa7\x96\x91\x96\x92\x4c\xca\x96\x93\x64\xbd\x55\x5c\x96\x94\x96\x95\x64\xba\x96\x96\x50\xed\x58\xd2\x49\xc3\x4a\xe4\x96\x97\x64\xbb\x96\x98\x96\x99\x5b\x68\x96\x9a\x96\x9b\x96\x9c\x96\x9d\x96\x9e\x4b\xc4\x96\x9f\x64\xbc\x55\xf7\x4c\xdb\x56\xf4\x96\xa0\x96\xa1\x96\xa2\x50\xb3\x96\xa3\x96\xa4\x59\x8f\x64\xbe\x64\xc1\x96\xa5\x96\xa6\x4d\xbb\x96\xa7\x49\x4d\x4f\x7c\x96\xa8\x65\xbc\x64\xc2\x96\xa9\x64\xc5\x96\xaa\x64\xca\x96\xab\x96\xac\x96\xad\x96\xae\x64\xcb\x96\xaf\x56\x69\x48\xe4", /* 6780 */ "\x96\xb0\x4e\xaa\x96\xb1\x96\xb2\x4d\x59\x96\xb3\x96\xb4\x64\xc0\x96\xb5\x57\x98\x96\xb6\x64\xc9\x96\xb7\x96\xb8\x96\xb9\x96\xba\x57\xf5\x96\xbb\x96\xbc\x96\xbd\x96\xbe\x5b\x8e\x96\xbf\x51\x76\x64\xc3\x96\xc0\x52\x56\x96\xc1\x4d\x9c\x5b\xa5\x64\xc7\x96\xc2\x96\xc3\x96\xc4\x55\xdf\x5a\xe5\x96\xc5\x64\xbf\x96\xc6\x64\xc4\x64\xc6\x96\xc7\x54\x59\x4c\x84\x96\xc8\x64\xc8\x96\xc9\x50\x7d\x64\xd1\x96\xca\x96\xcb\x64\xd6\x96\xcc\x64\xd4\x4e\xdb\x4e\xce\x64\xda\x96\xcd\x96\xce\x96\xcf\x96\xd0\x96\xd1\x96\xd2\x96\xd3\x96\xd4\x64\xdd\x96\xd5\x64\xd9\x49\x9b\x96\xd6\x96\xd7\x96\xd8\x96\xd9\x96\xda\x96\xdb\x96\xdc\x96\xdd\x96\xde\x96\xdf\x48\xd7\x52\xb2\x4c\xcb\x53\xe1\x54\xbd\x54\xe0\x96\xe0\x96\xe1\x96\xe2\x64\xce\x64\xd3\x64\xd5\x96\xe3\x4d\x92\x64\xd7\x5c\x96\x96\xe4\x52\xfa\x96\xe5\x64\xdb\x96\xe6\x96\xe7\x49\xe8\x96\xe8\x96\xe9\x96\xea\x64\xd0\x96\xeb\x96\xec\x4e\xec\x96\xed\x96\xee\x50\x62\x64\xcc\x5b\xf8\x96\xef\x51\x99\x49\xf0\x96\xf0\x96\xf1\x96\xf2\x96\xf3\x96\xf4\x96\xf5\x96\xf6\x96\xf7\x64\xde\x96\xf8\x55\xc0", /* 6800 */ "\x64\xd8\x96\xf9\x96\xfa\x96\xfb\x96\xfc\x5b\x44\x96\xfd\x49\x8b\x5b\x5b\x64\xcd\x64\xcf\x4b\xaf\x64\xd2\x97\x41\x64\xdc\x50\xb7\x97\x42\x55\xf6\x97\x43\x56\x48\x97\x44\x97\x45\x53\xdb\x50\xf4\x97\x46\x97\x47\x97\x48\x97\x49\x97\x4a\x64\xe8\x97\x4b\x97\x4c\x97\x4d\x58\xa2\x97\x4e\x97\x4f\x97\x50\x97\x51\x97\x52\x97\x53\x97\x54\x64\xf1\x5b\xe9\x97\x55\x97\x56\x97\x57\x97\x58\x97\x59\x97\x5a\x97\x5b\x64\xdf\x64\xe0\x97\x5c\x97\x5d\x97\x5e\x59\x9a\x4d\xca\x4c\xf8\x97\x5f\x97\x60\x4c\xf0\x5a\xd3\x64\xee\x97\x61\x64\xed\x64\xeb\x4d\x91\x56\xd1\x64\xe5\x57\xa5\x50\x93\x97\x62\x48\xb7\x64\xf0\x64\xef\x97\x63\x5c\x60\x97\x64\x64\xe3\x97\x65\x57\x49\x55\x43\x97\x66\x4e\x58\x4f\x7b\x64\xe9\x97\x67\x97\x68\x97\x69\x97\x6a\x97\x6b\x97\x6c\x97\x6d\x97\x6e\x97\x6f\x97\x70\x64\xe1\x64\xe2\x64\xe4\x4b\x55\x64\xe6\x54\x65\x64\xea\x64\xec\x4f\x50\x5c\x4e\x97\x71\x64\xf7\x97\x72\x97\x73\x97\x74\x97\x75\x97\x76\x97\x77\x97\x78\x97\x79\x64\xf4\x97\x7a\x57\x50\x64\xf5\x97\x7b\x97\x7c\x97\x7d\x97\x7e\x97\x7f\x97\x81\x97\x82\x97\x83", /* 6880 */ "\x97\x84\x51\x5a\x97\x85\x64\xe7\x97\x86\x52\x57\x48\xef\x97\x87\x97\x88\x97\x89\x97\x8a\x97\x8b\x97\x8c\x97\x8d\x97\x8e\x64\xf3\x97\x8f\x97\x90\x97\x91\x64\xf6\x97\x92\x97\x93\x97\x94\x4d\x43\x97\x95\x97\x96\x97\x97\x97\x98\x97\x99\x97\x9a\x97\x9b\x97\x9c\x97\x9d\x97\x9e\x55\x72\x97\x9f\x97\xa0\x97\xa1\x52\x6e\x57\xdf\x50\xe5\x97\xa2\x97\xa3\x97\xa4\x97\xa5\x56\x94\x97\xa6\x56\xdc\x58\xb4\x97\xa7\x97\xa8\x55\xe0\x97\xa9\x64\xf2\x97\xaa\x97\xab\x97\xac\x97\xad\x97\xae\x97\xaf\x97\xb0\x97\xb1\x97\xb2\x97\xb3\x4e\xeb\x97\xb4\x64\xf8\x97\xb5\x97\xb6\x97\xb7\x97\xb8\x97\xb9\x97\xba\x52\x7e\x97\xbb\x53\xe4\x97\xbc\x4d\x98\x97\xbd\x97\xbe\x97\xbf\x97\xc0\x48\xf3\x97\xc1\x97\xc2\x5c\x78\x97\xc3\x97\xc4\x4e\xab\x97\xc5\x53\x90\x97\xc6\x97\xc7\x97\xc8\x97\xc9\x97\xca\x56\xc3\x97\xcb\x97\xcc\x65\x46\x97\xcd\x97\xce\x97\xcf\x97\xd0\x97\xd1\x97\xd2\x97\xd3\x97\xd4\x97\xd5\x97\xd6\x55\x4d\x97\xd7\x65\x42\x50\xe1\x97\xd8\x97\xd9\x97\xda\x50\x63\x97\xdb\x97\xdc\x97\xdd\x64\xfd\x4d\x77\x97\xde\x64\xfa\x97\xdf\x97\xe0\x97\xe1", /* 6900 */ "\x97\xe2\x65\x44\x97\xe3\x97\xe4\x97\xe5\x59\xcd\x97\xe6\x97\xe7\x97\xe8\x97\xe9\x97\xea\x65\x43\x97\xeb\x5b\xb1\x5c\x55\x97\xec\x65\x47\x97\xed\x4f\x57\x97\xee\x97\xef\x97\xf0\x97\xf1\x97\xf2\x97\xf3\x97\xf4\x97\xf5\x97\xf6\x97\xf7\x97\xf8\x97\xf9\x64\xfb\x64\xfc\x97\xfa\x97\xfb\x97\xfc\x65\x41\x97\xfd\x98\x41\x98\x42\x98\x43\x98\x44\x98\x45\x98\x46\x98\x47\x57\x76\x98\x48\x98\x49\x59\xab\x98\x4a\x98\x4b\x98\x4c\x65\x52\x98\x4d\x98\x4e\x98\x4f\x98\x50\x65\x49\x98\x51\x98\x52\x98\x53\x4a\xa9\x98\x54\x4a\xba\x98\x55\x98\x56\x65\x4b\x98\x57\x98\x58\x98\x59\x98\x5a\x98\x5b\x98\x5c\x98\x5d\x98\x5e\x98\x5f\x98\x60\x98\x61\x98\x62\x98\x63\x98\x64\x98\x65\x98\x66\x98\x67\x58\xa7\x98\x68\x98\x69\x65\x45\x98\x6a\x98\x6b\x4a\x9f\x98\x6c\x98\x6d\x65\x4c\x50\xe2\x98\x6e\x65\x4a\x98\x6f\x98\x70\x65\x59\x98\x71\x98\x72\x65\x58\x98\x73\x98\x74\x98\x75\x98\x76\x65\x4e\x98\x77\x98\x78\x64\xf9\x98\x79\x98\x7a\x65\x48\x98\x7b\x98\x7c\x98\x7d\x98\x7e\x98\x7f\x50\x4c\x65\x51\x65\x5a\x98\x81\x98\x82\x51\xa4\x98\x83\x98\x84\x98\x85", /* 6980 */ "\x65\x4f\x98\x86\x4c\xc4\x98\x87\x65\x4d\x98\x88\x5a\x7c\x65\x54\x65\x55\x65\x57\x98\x89\x98\x8a\x98\x8b\x65\x67\x98\x8c\x98\x8d\x98\x8e\x98\x8f\x98\x90\x98\x91\x50\xc5\x65\x65\x98\x92\x98\x93\x65\x50\x98\x94\x98\x95\x65\x5b\x48\xf0\x98\x96\x98\x97\x98\x98\x98\x99\x98\x9a\x98\x9b\x98\x9c\x98\x9d\x98\x9e\x98\x9f\x65\x5c\x5b\x45\x98\xa0\x98\xa1\x65\x5e\x98\xa2\x65\x5f\x98\xa3\x98\xa4\x98\xa5\x65\x61\x98\xa6\x98\xa7\x51\x92\x98\xa8\x98\xa9\x54\xb5\x98\xaa\x98\xab\x98\xac\x65\x5d\x98\xad\x98\xae\x98\xaf\x98\xb0\x98\xb1\x65\x62\x98\xb2\x98\xb3\x98\xb4\x98\xb5\x98\xb6\x98\xb7\x98\xb8\x98\xb9\x65\x63\x98\xba\x65\x53\x98\xbb\x65\x56\x98\xbc\x4e\x51\x98\xbd\x98\xbe\x98\xbf\x65\x60\x98\xc0\x98\xc1\x98\xc2\x98\xc3\x98\xc4\x98\xc5\x4e\xf6\x98\xc6\x98\xc7\x98\xc8\x65\x64\x65\x66\x98\xc9\x98\xca\x98\xcb\x98\xcc\x98\xcd\x98\xce\x98\xcf\x98\xd0\x98\xd1\x98\xd2\x98\xd3\x98\xd4\x65\x6a\x98\xd5\x98\xd6\x98\xd7\x98\xd8\x65\x6e\x98\xd9\x98\xda\x98\xdb\x98\xdc\x98\xdd\x98\xde\x98\xdf\x98\xe0\x98\xe1\x98\xe2\x49\xda\x98\xe3\x65\x68", /* 6a00 */ "\x98\xe4\x98\xe5\x98\xe6\x98\xe7\x98\xe8\x98\xe9\x98\xea\x98\xeb\x98\xec\x98\xed\x4c\x4e\x98\xee\x98\xef\x98\xf0\x98\xf1\x98\xf2\x98\xf3\x98\xf4\x98\xf5\x98\xf6\x98\xf7\x98\xf8\x98\xf9\x65\x6b\x65\x6c\x98\xfa\x98\xfb\x98\xfc\x98\xfd\x99\x41\x99\x42\x5b\x61\x99\x43\x52\xa2\x99\x44\x99\x45\x99\x46\x99\x47\x99\x48\x99\x49\x65\x78\x99\x4a\x4d\xe0\x99\x4b\x99\x4c\x99\x4d\x99\x4e\x65\x69\x99\x4f\x5a\x43\x99\x50\x99\x51\x99\x52\x65\x74\x99\x53\x99\x54\x99\x55\x99\x56\x99\x57\x99\x58\x99\x59\x65\x77\x65\x70\x99\x5a\x99\x5b\x99\x5c\x99\x5d\x99\x5e\x65\x6f\x99\x5f\x99\x60\x54\x61\x99\x61\x99\x62\x99\x63\x99\x64\x99\x65\x99\x66\x99\x67\x99\x68\x65\x72\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x6d\x99\x6e\x99\x6f\x65\x79\x4a\x68\x99\x70\x65\x73\x99\x71\x99\x72\x99\x73\x99\x74\x99\x75\x58\x91\x99\x76\x99\x77\x99\x78\x65\x6d\x99\x79\x99\x7a\x99\x7b\x99\x7c\x99\x7d\x99\x7e\x99\x7f\x99\x81\x99\x82\x99\x83\x99\x84\x4a\x98\x99\x85\x99\x86\x99\x87\x99\x88\x99\x89\x99\x8a\x99\x8b\x65\x76\x99\x8c\x99\x8d\x65\x7a\x99\x8e\x99\x8f\x99\x90", /* 6a80 */ "\x56\xb3\x99\x91\x99\x92\x99\x93\x58\x4d\x99\x94\x99\x95\x99\x96\x99\x97\x99\x98\x99\x99\x99\x9a\x99\x9b\x99\x9c\x65\x75\x99\x9d\x65\x7c\x65\x7b\x99\x9e\x99\x9f\x99\xa0\x99\xa1\x99\xa2\x65\x7e\x99\xa3\x99\xa4\x99\xa5\x99\xa6\x99\xa7\x99\xa8\x99\xa9\x99\xaa\x65\x71\x99\xab\x99\xac\x99\xad\x99\xae\x99\xaf\x99\xb0\x99\xb1\x99\xb2\x65\x7d\x99\xb3\x65\x7f\x52\x6a\x99\xb4\x99\xb5\x99\xb6\x99\xb7\x99\xb8\x99\xb9\x99\xba\x99\xbb\x99\xbc\x99\xbd\x99\xbe\x99\xbf\x99\xc0\x99\xc1\x99\xc2\x99\xc3\x99\xc4\x99\xc5\x99\xc6\x99\xc7\x99\xc8\x99\xc9\x99\xca\x99\xcb\x99\xcc\x99\xcd\x99\xce\x99\xcf\x99\xd0\x99\xd1\x99\xd2\x99\xd3\x99\xd4\x99\xd5\x99\xd6\x99\xd7\x99\xd8\x99\xd9\x99\xda\x99\xdb\x99\xdc\x99\xdd\x99\xde\x99\xdf\x99\xe0\x99\xe1\x99\xe2\x99\xe3\x99\xe4\x99\xe5\x99\xe6\x99\xe7\x99\xe8\x99\xe9\x99\xea\x99\xeb\x99\xec\x99\xed\x99\xee\x99\xef\x99\xf0\x99\xf1\x99\xf2\x99\xf3\x99\xf4\x99\xf5\x99\xf6\x99\xf7\x99\xf8\x99\xf9\x99\xfa\x99\xfb\x99\xfc\x99\xfd\x9a\x41\x9a\x42\x9a\x43\x9a\x44\x9a\x45\x9a\x46\x9a\x47\x9a\x48\x9a\x49", /* 6b00 */ "\x9a\x4a\x9a\x4b\x9a\x4c\x9a\x4d\x9a\x4e\x9a\x4f\x9a\x50\x9a\x51\x9a\x52\x9a\x53\x9a\x54\x9a\x55\x9a\x56\x9a\x57\x9a\x58\x9a\x59\x9a\x5a\x9a\x5b\x9a\x5c\x9a\x5d\x9a\x5e\x9a\x5f\x9a\x60\x9a\x61\x9a\x62\x9a\x63\x9a\x64\x9a\x65\x9a\x66\x9a\x67\x9a\x68\x9a\x69\x54\x57\x4a\xcd\x4e\x56\x58\xbf\x66\xa2\x9a\x6a\x9a\x6b\x53\x57\x9a\x6c\x9a\x6d\x9a\x6e\x9a\x6f\x9a\x70\x9a\x71\x9a\x72\x9a\x73\x9a\x74\x9a\x75\x5a\x9c\x9a\x76\x9a\x77\x9a\x78\x9a\x79\x66\xa3\x9a\x7a\x66\xa4\x53\xda\x9a\x7b\x9a\x7c\x9a\x7d\x50\x8f\x9a\x7e\x9a\x7f\x9a\x81\x9a\x82\x66\xa5\x9a\x83\x9a\x84\x66\xa6\x58\xa9\x9a\x85\x54\x58\x9a\x86\x9a\x87\x4c\xe7\x9a\x88\x9a\x89\x9a\x8a\x9a\x8b\x9a\x8c\x9a\x8d\x9a\x8e\x9a\x8f\x9a\x90\x9a\x91\x9a\x92\x9a\x93\x66\xa7\x9a\x94\x9a\x95\x9a\x96\x9a\x97\x9a\x98\x9a\x99\x9a\x9a\x9a\x9b\x5b\xb8\x5b\x9e\x4a\xca\x49\xbc\x57\xe3\x53\xe6\x9a\x9c\x9a\x9d\x57\x82\x9a\x9e\x9a\x9f\x9a\xa0\x9a\xa1\x9a\xa2\x9a\xa3\x9a\xa4\x9a\xa5\x9a\xa6\x9a\xa7\x9a\xa8\x9a\xa9\x9a\xaa\x9a\xab\x4a\xf4\x9a\xac\x56\x60\x4e\xde\x9a\xad\x9a\xae\x9a\xaf", /* 6b80 */ "\x9a\xb0\x65\x83\x65\x84\x59\x8b\x65\x86\x9a\xb1\x4a\xf8\x65\x85\x9a\xb2\x59\x53\x55\xe1\x49\xcf\x9a\xb3\x65\x89\x9a\xb4\x9a\xb5\x9a\xb6\x9a\xb7\x65\x87\x65\x88\x9a\xb8\x9a\xb9\x5b\xb2\x9a\xba\x9a\xbb\x9a\xbc\x65\x8a\x65\x8b\x9a\xbd\x9a\xbe\x9a\xbf\x9a\xc0\x9a\xc1\x65\x8c\x9a\xc2\x9a\xc3\x9a\xc4\x9a\xc5\x9a\xc6\x9a\xc7\x9a\xc8\x9a\xc9\x65\x8d\x9a\xca\x9a\xcb\x9a\xcc\x9a\xcd\x9a\xce\x9a\xcf\x9a\xd0\x9a\xd1\x66\xae\x53\x59\x4b\xcd\x9a\xd2\x59\xf2\x9a\xd3\x9a\xd4\x9a\xd5\x9a\xd6\x9a\xd7\x9a\xd8\x9a\xd9\x4b\x8f\x9a\xda\x4e\x79\x66\xb0\x9a\xdb\x9a\xdc\x59\xe2\x9a\xdd\x9a\xde\x9a\xdf\x9a\xe0\x9a\xe1\x57\xe2\x9a\xe2\x52\xb7\x9a\xe3\x52\x5f\x9a\xe4\x9a\xe5\x4b\xbd\x5c\xb8\x49\x68\x49\x6f\x49\x71\x53\x9f\x9a\xe6\x49\x70\x9a\xe7\x52\x4b\x9a\xe8\x9a\xe9\x9a\xea\x9a\xeb\x9a\xec\x5b\x51\x9a\xed\x9a\xee\x9a\xef\x9a\xf0\x9a\xf1\x9a\xf2\x9a\xf3\x9a\xf4\x66\x44\x4d\xc0\x9a\xf5\x9a\xf6\x9a\xf7\x56\xb9\x9a\xf8\x9a\xf9\x9a\xfa\x66\x45\x9a\xfb\x66\x47\x9a\xfc\x9a\xfd\x9b\x41\x66\x48\x9b\x42\x9b\x43\x9b\x44\x66\x46\x9b\x45\x9b\x46", /* 6c00 */ "\x9b\x47\x9b\x48\x9b\x49\x9b\x4a\x9b\x4b\x66\x49\x66\x4b\x66\x4a\x9b\x4c\x9b\x4d\x9b\x4e\x9b\x4f\x9b\x50\x66\x4c\x9b\x51\x55\xce\x5c\xb4\x52\x92\x9b\x52\x52\x45\x53\xf7\x66\x4d\x52\xc9\x9b\x53\x66\x4e\x66\x4f\x66\x50\x4c\x75\x9b\x54\x9b\x55\x9b\x56\x4c\x9b\x9b\x57\x66\x51\x54\x83\x9b\x58\x66\x53\x9b\x59\x4d\xa3\x59\x96\x48\xb0\x66\x52\x66\x54\x9b\x5a\x9b\x5b\x9b\x5c\x4b\x4a\x51\xc7\x54\x89\x9b\x5d\x66\x55\x9b\x5e\x56\x4e\x62\x7f\x9b\x5f\x9b\x60\x5a\x60\x9b\x61\x9b\x62\x9b\x63\x9b\x64\x5d\x7b\x9b\x65\x9b\x66\x57\x41\x5b\xac\x54\x94\x9b\x67\x9b\x68\x9b\x69\x5d\x81\x4e\x84\x9b\x6a\x4d\xb9\x62\x83\x9b\x6b\x9b\x6c\x9b\x6d\x9b\x6e\x9b\x6f\x58\x4b\x9b\x70\x9b\x71\x9b\x72\x62\x81\x55\x67\x9b\x73\x4d\xb8\x9b\x74\x9b\x75\x9b\x76\x59\x54\x62\x82\x54\xe9\x4d\x4f\x4f\x4d\x4a\x78\x57\xda\x9b\x77\x9b\x78\x56\xbf\x9b\x79\x9b\x7a\x9b\x7b\x62\x89\x62\x8a\x57\x95\x9b\x7c\x9b\x7d\x9b\x7e\x9b\x7f\x9b\x81\x56\xac\x9b\x82\x4e\xb2\x9b\x83\x62\x8b\x9b\x84\x62\x8c\x9b\x85\x9b\x86\x58\xd9\x9b\x87\x9b\x88\x9b\x89\x53\xfa\x4c\x7a\x9b\x8a", /* 6c80 */ "\x9b\x8b\x54\x7f\x59\xc9\x57\xd5\x9b\x8c\x62\x85\x62\x8d\x9b\x8d\x55\x93\x4a\x61\x9b\x8e\x9b\x8f\x62\x88\x9b\x90\x9b\x91\x53\xe2\x62\x86\x9b\x92\x9b\x93\x67\x53\x62\x87\x9b\x94\x9b\x95\x9b\x96\x9b\x97\x55\x53\x9b\x98\x53\x87\x9b\x99\x9b\x9a\x9b\x9b\x4d\x55\x9b\x9c\x52\x5b\x9b\x9d\x62\x84\x53\x5d\x51\x44\x51\xd8\x49\xd6\x9b\x9e\x62\x8e\x4e\x46\x52\xac\x9b\x9f\x62\x91\x4f\xd9\x9b\xa0\x9b\xa1\x62\x9c\x62\x96\x4d\xd2\x9b\xa2\x9b\xa3\x9b\xa4\x9b\xa5\x4c\x70\x5a\x6d\x9b\xa6\x5b\xcd\x5b\x73\x4d\x61\x5b\x54\x59\x78\x9b\xa7\x9b\xa8\x9b\xa9\x9b\xaa\x58\xb8\x54\x97\x9b\xab\x9b\xac\x9b\xad\x54\xa9\x49\xb3\x9b\xae\x52\x7a\x9b\xaf\x9b\xb0\x9b\xb1\x62\x8f\x9b\xb2\x9b\xb3\x62\x9d\x62\x90\x4c\x48\x62\x98\x62\x95\x9b\xb4\x9b\xb5\x9b\xb6\x4c\x5a\x9b\xb7\x9b\xb8\x53\x42\x9b\xb9\x62\x97\x53\x7d\x49\xa7\x53\xfb\x9b\xba\x52\xdf\x9b\xbb\x9b\xbc\x5c\x42\x9b\xbd\x50\xe0\x62\x9a\x9b\xbe\x9b\xbf\x62\x9b\x62\x9e\x56\xa8\x62\x94\x9b\xc0\x5a\x5e\x9b\xc1\x49\x63\x67\x54\x62\x92\x62\x93\x9b\xc2\x62\x99\x58\xb9\x53\xc2\x5a\xf2\x62\x9f\x9b\xc3", /* 6d00 */ "\x9b\xc4\x4f\x81\x9b\xc5\x9b\xc6\x62\xa6\x9b\xc7\x9b\xc8\x62\xa5\x9b\xc9\x9b\xca\x9b\xcb\x59\x94\x62\xa2\x9b\xcc\x62\xa8\x9b\xcd\x9b\xce\x9b\xcf\x54\xf6\x9b\xd0\x9b\xd1\x9b\xd2\x9b\xd3\x58\x54\x9b\xd4\x62\xa7\x62\xad\x51\xe4\x9b\xd5\x9b\xd6\x4b\xb3\x9b\xd7\x9b\xd8\x9b\xd9\x9b\xda\x9b\xdb\x9b\xdc\x4f\x93\x9b\xdd\x62\xa1\x9b\xde\x9b\xdf\x4d\xe8\x62\xa9\x9b\xe0\x9b\xe1\x62\xab\x9b\xe2\x9b\xe3\x4b\xfc\x5b\xdd\x62\xb1\x9b\xe4\x62\xac\x9b\xe5\x9b\xe6\x9b\xe7\x62\xa0\x9b\xe8\x4e\x8f\x57\x7d\x54\x42\x53\x69\x9b\xe9\x9b\xea\x51\x98\x9b\xeb\x62\xa3\x9b\xec\x54\x53\x4f\x4c\x4f\x5d\x62\xa4\x9b\xed\x5c\x67\x49\xe1\x9b\xee\x62\xaa\x4e\xc2\x62\xae\x9b\xef\x4e\x8c\x62\xaf\x53\x48\x62\xb0\x9b\xf0\x9b\xf1\x9b\xf2\x9b\xf3\x5b\x84\x50\x43\x9b\xf4\x62\xb9\x9b\xf5\x62\xb6\x9b\xf6\x62\xba\x9b\xf7\x9b\xf8\x62\xbc\x9b\xf9\x9b\xfa\x53\xd5\x9b\xfb\x9b\xfc\x4d\xc5\x50\xca\x9b\xfd\x9c\x41\x9c\x42\x4c\xa0\x62\xb3\x9c\x43\x9c\x44\x9c\x45\x9c\x46\x5a\xa0\x9c\x47\x9c\x48\x4d\xa2\x4f\x9f\x9c\x49\x9c\x4a\x9c\x4b\x62\xbb\x9c\x4c\x9c\x4d\x9c\x4e", /* 6d80 */ "\x9c\x4f\x9c\x50\x57\x5f\x9c\x51\x9c\x52\x52\xf8\x9c\x53\x9c\x54\x58\x9c\x55\x87\x9c\x55\x9c\x56\x5a\x5f\x9c\x57\x58\x71\x9c\x58\x9c\x59\x62\xb2\x9c\x5a\x62\xb7\x62\xb8\x56\xe8\x9c\x5b\x9c\x5c\x9c\x5d\x9c\x5e\x9c\x5f\x56\xcd\x9c\x60\x50\xd3\x62\xb4\x51\x50\x62\xb5\x57\xcf\x9c\x61\x4e\x61\x4b\x73\x9c\x62\x54\xf2\x4f\x47\x5b\x67\x55\x4c\x4c\xa1\x62\xc9\x9c\x63\x9c\x64\x62\xcb\x59\x64\x9c\x65\x9c\x66\x59\xb9\x9c\x67\x9c\x68\x4d\xac\x9c\x69\x9c\x6a\x4d\xd3\x9c\x6b\x9c\x6c\x9c\x6d\x9c\x6e\x9c\x6f\x9c\x70\x62\xc2\x4b\x8e\x9c\x71\x9c\x72\x9c\x73\x5c\x6d\x62\xbf\x58\x9e\x62\xbe\x9c\x74\x9c\x75\x9c\x76\x51\x7c\x56\xc9\x9c\x77\x9c\x78\x9c\x79\x9c\x7a\x55\xe6\x9c\x7b\x9c\x7c\x9c\x7d\x9c\x7e\x52\xd6\x9c\x7f\x56\xd3\x62\xc7\x9c\x81\x9c\x82\x9c\x83\x62\xc6\x62\xc0\x9c\x84\x62\xc3\x4b\x4d\x9c\x85\x9c\x86\x5a\x79\x9c\x87\x62\xc5\x9c\x88\x9c\x89\x9c\x8a\x9c\x8b\x59\xf8\x4a\xe2\x9c\x8c\x4e\x54\x9c\x8d\x9c\x8e\x55\x8f\x9c\x8f\x4a\xbd\x9c\x90\x9c\x91\x9c\x92\x4e\x8d\x9c\x93\x59\x6d\x9c\x94\x56\xec\x67\x55\x9c\x95\x9c\x96\x9c\x97", /* 6e00 */ "\x9c\x98\x9c\x99\x9c\x9a\x9c\x9b\x9c\x9c\x54\x86\x9c\x9d\x9c\x9e\x9c\x9f\x9c\xa0\x5a\xa7\x9c\xa1\x62\xca\x5c\x75\x62\xc1\x9c\xa2\x4f\x45\x62\xc4\x9c\xa3\x9c\xa4\x5a\x87\x9c\xa5\x62\xc8\x55\x99\x9c\xa6\x9c\xa7\x62\xbd\x9c\xa8\x9c\xa9\x5a\x86\x9c\xaa\x9c\xab\x54\x9f\x4b\xc8\x9c\xac\x5a\xfb\x49\xb2\x62\xd6\x9c\xad\x9c\xae\x9c\xaf\x57\xc1\x9c\xb0\x62\xcc\x9c\xb1\x57\xbb\x9c\xb2\x4c\xda\x9c\xb3\x9c\xb4\x62\xd5\x9c\xb5\x50\x6a\x9c\xb6\x9c\xb7\x9c\xb8\x5a\x6e\x9c\xb9\x52\x8d\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xbe\x9c\xbf\x9c\xc0\x9c\xc1\x53\x68\x62\xd7\x9c\xc2\x9c\xc3\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xc8\x9c\xc9\x57\x64\x62\xce\x9c\xca\x9c\xcb\x9c\xcc\x9c\xcd\x62\xd3\x62\xd4\x9c\xce\x4d\xfd\x9c\xcf\x58\x87\x9c\xd0\x9c\xd1\x5b\x5f\x9c\xd2\x9c\xd3\x9c\xd4\x62\xd1\x9c\xd5\x9c\xd6\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xda\x9c\xdb\x9c\xdc\x9c\xdd\x9c\xde\x9c\xdf\x62\xcf\x9c\xe0\x9c\xe1\x62\xcd\x9c\xe2\x9c\xe3\x9c\xe4\x9c\xe5\x9c\xe6\x9c\xe7\x9c\xe8\x9c\xe9\x9c\xea\x9c\xeb\x9c\xec\x9c\xed\x9c\xee\x9c\xef\x9c\xf0\x57\x86\x55\xa9", /* 6e80 */ "\x9c\xf1\x9c\xf2\x9c\xf3\x50\xa2\x9c\xf4\x4f\x46\x62\xd2\x9c\xf5\x9c\xf6\x4c\xc7\x9c\xf7\x9c\xf8\x9c\xf9\x9c\xfa\x9c\xfb\x62\xe6\x5a\xb3\x9c\xfc\x9c\xfd\x9d\x41\x9d\x42\x9d\x43\x9d\x44\x9d\x45\x62\xda\x9d\x46\x9d\x47\x9d\x48\x51\x90\x9d\x49\x9d\x4a\x62\xe8\x9d\x4b\x9d\x4c\x59\xe6\x9d\x4d\x9d\x4e\x62\xde\x9d\x4f\x62\xdf\x9d\x50\x9d\x51\x58\x4a\x9d\x52\x9d\x53\x9d\x54\x9d\x55\x56\x7d\x9d\x56\x62\xd9\x62\xd0\x9d\x57\x62\xe4\x9d\x58\x54\xdb\x62\xe2\x9d\x59\x9d\x5a\x52\xe6\x62\xe1\x9d\x5b\x62\xe0\x9d\x5c\x9d\x5d\x9d\x5e\x4a\x9d\x62\xe7\x9d\x5f\x9d\x60\x9d\x61\x9d\x62\x4b\x82\x9d\x63\x9d\x64\x9d\x65\x5c\x6c\x9d\x66\x9d\x67\x9d\x68\x62\xe5\x9d\x69\x4e\x4c\x9d\x6a\x5c\x72\x56\xce\x66\x99\x9d\x6b\x62\xe3\x9d\x6c\x9d\x6d\x4d\x97\x9d\x6e\x9d\x6f\x9d\x70\x5b\xcc\x62\xd8\x62\xdb\x51\xf9\x62\xdd\x9d\x71\x51\xca\x50\xc3\x51\xcf\x9d\x72\x49\x96\x56\xb1\x9d\x73\x9d\x74\x9d\x75\x9d\x76\x9d\x77\x9d\x78\x9d\x79\x9d\x7a\x9d\x7b\x9d\x7c\x4b\x6e\x9d\x7d\x9d\x7e\x9d\x7f\x9d\x81\x62\xee\x9d\x82\x9d\x83\x9d\x84\x9d\x85\x9d\x86\x9d\x87", /* 6f00 */ "\x9d\x88\x9d\x89\x53\xae\x9d\x8a\x9d\x8b\x9d\x8c\x53\xe0\x9d\x8d\x9d\x8e\x62\xf4\x9d\x8f\x9d\x90\x9d\x91\x9d\x92\x9d\x93\x51\xa8\x9d\x94\x9d\x95\x9d\x96\x50\xeb\x59\x7d\x62\xed\x9d\x97\x9d\x98\x9d\x99\x9d\x9a\x9d\x9b\x9d\x9c\x9d\x9d\x9d\x9e\x9d\x9f\x9d\xa0\x52\xad\x9d\xa1\x9d\xa2\x9d\xa3\x62\xec\x9d\xa4\x9d\xa5\x9d\xa6\x9d\xa7\x62\xf5\x62\xf3\x51\xfd\x9d\xa8\x62\xdc\x9d\xa9\x62\xef\x9d\xaa\x55\xfd\x9d\xab\x5b\x64\x9d\xac\x9d\xad\x62\xf0\x9d\xae\x9d\xaf\x9d\xb0\x9d\xb1\x9d\xb2\x9d\xb3\x9d\xb4\x59\x9b\x9d\xb5\x9d\xb6\x9d\xb7\x9d\xb8\x9d\xb9\x9d\xba\x9d\xbb\x62\xea\x62\xeb\x9d\xbc\x9d\xbd\x9d\xbe\x62\xf1\x9d\xbf\x57\xaa\x9d\xc0\x9d\xc1\x9d\xc2\x9d\xc3\x9d\xc4\x9d\xc5\x9d\xc6\x9d\xc7\x9d\xc8\x9d\xc9\x53\x6b\x9d\xca\x9d\xcb\x9d\xcc\x54\x51\x9d\xcd\x51\xb9\x9d\xce\x9d\xcf\x9d\xd0\x62\xe9\x9d\xd1\x9d\xd2\x9d\xd3\x51\x6a\x9d\xd4\x9d\xd5\x9d\xd6\x9d\xd7\x9d\xd8\x9d\xd9\x56\xb5\x4a\x51\x9d\xda\x9d\xdb\x9d\xdc\x62\xfa\x9d\xdd\x62\xf2\x9d\xde\x9d\xdf\x9d\xe0\x62\xf9\x9d\xe1\x62\xfc\x9d\xe2\x62\xfb\x9d\xe3\x9d\xe4\x9d\xe5", /* 6f80 */ "\x9d\xe6\x9d\xe7\x9d\xe8\x9d\xe9\x4a\x6e\x9d\xea\x9d\xeb\x9d\xec\x4a\x5a\x62\xf6\x9d\xed\x9d\xee\x62\xf8\x62\xf7\x53\x8d\x9d\xef\x9d\xf0\x9d\xf1\x9d\xf2\x9d\xf3\x9d\xf4\x9d\xf5\x9d\xf6\x9d\xf7\x9d\xf8\x9d\xf9\x9d\xfa\x9d\xfb\x50\xbc\x9d\xfc\x9d\xfd\x9e\x41\x9e\x42\x5a\xe7\x9e\x43\x9e\x44\x9e\x45\x9e\x46\x9e\x47\x63\x42\x9e\x48\x9e\x49\x9e\x4a\x9e\x4b\x9e\x4c\x9e\x4d\x9e\x4e\x9e\x4f\x9e\x50\x9e\x51\x9e\x52\x48\xc3\x9e\x53\x9e\x54\x63\x44\x9e\x55\x9e\x56\x63\x43\x9e\x57\x9e\x58\x9e\x59\x9e\x5a\x9e\x5b\x9e\x5c\x4e\xa3\x9e\x5d\x63\x45\x9e\x5e\x9e\x5f\x9e\x60\x9e\x61\x9e\x62\x9e\x63\x63\x41\x9e\x64\x9e\x65\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x62\xfd\x49\x95\x9e\x6b\x9e\x6c\x9e\x6d\x9e\x6e\x9e\x6f\x9e\x70\x9e\x71\x9e\x72\x9e\x73\x9e\x74\x9e\x75\x63\x48\x9e\x76\x63\x49\x63\x46\x9e\x77\x9e\x78\x9e\x79\x9e\x7a\x9e\x7b\x9e\x7c\x9e\x7d\x9e\x7e\x9e\x7f\x9e\x81\x9e\x82\x9e\x83\x63\x47\x63\x4a\x9e\x84\x9e\x85\x9e\x86\x9e\x87\x9e\x88\x9e\x89\x9e\x8a\x9e\x8b\x9e\x8c\x9e\x8d\x9e\x8e\x9e\x8f\x9e\x90\x9e\x91\x9e\x92\x9e\x93", /* 7000 */ "\x9e\x94\x9e\x95\x9e\x96\x9e\x97\x9e\x98\x9e\x99\x9e\x9a\x9e\x9b\x9e\x9c\x9e\x9d\x9e\x9e\x9e\x9f\x9e\xa0\x9e\xa1\x9e\xa2\x9e\xa3\x9e\xa4\x53\xd8\x9e\xa5\x9e\xa6\x9e\xa7\x9e\xa8\x9e\xa9\x9e\xaa\x9e\xab\x9e\xac\x63\x4b\x63\x4d\x9e\xad\x9e\xae\x9e\xaf\x9e\xb0\x9e\xb1\x9e\xb2\x9e\xb3\x63\x4c\x9e\xb4\x9e\xb5\x9e\xb6\x9e\xb7\x9e\xb8\x9e\xb9\x9e\xba\x9e\xbb\x9e\xbc\x9e\xbd\x9e\xbe\x9e\xbf\x9e\xc0\x9e\xc1\x9e\xc2\x9e\xc3\x9e\xc4\x63\x4f\x9e\xc5\x9e\xc6\x9e\xc7\x63\x4e\x9e\xc8\x9e\xc9\x9e\xca\x9e\xcb\x9e\xcc\x9e\xcd\x9e\xce\x9e\xcf\x9e\xd0\x9e\xd1\x9e\xd2\x9e\xd3\x9e\xd4\x9e\xd5\x9e\xd6\x9e\xd7\x9e\xd8\x9e\xd9\x4d\x81\x9e\xda\x9e\xdb\x63\x50\x9e\xdc\x9e\xdd\x9e\xde\x9e\xdf\x9e\xe0\x9e\xe1\x9e\xe2\x9e\xe3\x9e\xe4\x9e\xe5\x9e\xe6\x9e\xe7\x9e\xe8\x9e\xe9\x63\x51\x9e\xea\x9e\xeb\x9e\xec\x9e\xed\x9e\xee\x9e\xef\x9e\xf0\x9e\xf1\x9e\xf2\x9e\xf3\x9e\xf4\x9e\xf5\x4e\x91\x66\xe0\x52\x91\x9e\xf6\x4b\x66\x4e\x72\x9e\xf7\x9e\xf8\x9e\xf9\x9e\xfa\x51\x8a\x5a\xed\x9e\xfb\x4f\xc3\x9e\xfc\x9e\xfd\x9f\x41\x5c\x66\x9f\x42\x5a\xd5\x49\xd2", /* 7080 */ "\x66\xbd\x9f\x43\x9f\x44\x9f\x45\x9f\x46\x65\xc0\x9f\x47\x9f\x48\x9f\x49\x51\xae\x4a\xb5\x9f\x4a\x9f\x4b\x9f\x4c\x59\x77\x9f\x4d\x9f\x4e\x9f\x4f\x4a\x54\x9f\x50\x54\xb1\x50\x5b\x66\xbf\x9f\x51\x9f\x52\x5b\xca\x9f\x53\x9f\x54\x66\xbe\x66\xc0\x9f\x55\x9f\x56\x9f\x57\x9f\x58\x9f\x59\x9f\x5a\x9f\x5b\x9f\x5c\x9f\x5d\x9f\x5e\x9f\x5f\x9f\x60\x9f\x61\x66\xc4\x4f\xe5\x56\xbe\x53\x7a\x4f\xbb\x9f\x62\x66\xc5\x9f\x63\x49\x9f\x9f\x64\x9f\x65\x9f\x66\x66\xc3\x5b\x48\x4b\x84\x9f\x67\x66\xc1\x51\x56\x4a\x84\x9f\x68\x9f\x69\x66\xc2\x56\x58\x50\xc2\x56\xfd\x9f\x6a\x9f\x6b\x9f\x6c\x9f\x6d\x51\x72\x9f\x6e\x66\xc7\x9f\x6f\x9f\x70\x9f\x71\x9f\x72\x9f\x73\x9f\x74\x9f\x75\x9f\x76\x9f\x77\x9f\x78\x9f\x79\x9f\x7a\x9f\x7b\x4d\xe5\x50\xd2\x9f\x7c\x5b\xf1\x9f\x7d\x9f\x7e\x9f\x7f\x59\x6c\x9f\x81\x9f\x82\x9f\x83\x9f\x84\x50\x5e\x9f\x85\x4c\x53\x55\x75\x66\xc6\x4e\x83\x9f\x86\x56\xcb\x4f\x9e\x54\xc7\x9f\x87\x58\x49\x9f\x88\x9f\x89\x9f\x8a\x9f\x8b\x9f\x8c\x9f\x8d\x9f\x8e\x57\x8a\x9f\x8f\x53\x8c\x9f\x90\x9f\x91\x9f\x92\x4c\x8a\x9f\x93\x9f\x94", /* 7100 */ "\x9f\x95\x9f\x96\x9f\x97\x9f\x98\x9f\x99\x9f\x9a\x9f\x9b\x9f\x9c\x9f\x9d\x59\x69\x4d\xb7\x9f\x9e\x9f\x9f\x9f\xa0\x9f\xa1\x9f\xa2\x66\xc8\x9f\xa3\x9f\xa4\x66\xc9\x9f\xa5\x4e\x60\x66\xca\x9f\xa6\x66\xe1\x49\x5a\x4c\x79\x9f\xa7\x9f\xa8\x9f\xa9\x9f\xaa\x9f\xab\x9f\xac\x9f\xad\x9f\xae\x9f\xaf\x9f\xb0\x9f\xb1\x4f\x59\x9f\xb2\x9f\xb3\x9f\xb4\x9f\xb5\x9f\xb6\x9f\xb7\x9f\xb8\x9f\xb9\x66\xcb\x59\x87\x66\xcc\x9f\xba\x9f\xbb\x9f\xbc\x9f\xbd\x54\xba\x9f\xbe\x9f\xbf\x9f\xc0\x9f\xc1\x9f\xc2\x9f\xc3\x9f\xc4\x9f\xc5\x9f\xc6\x9f\xc7\x9f\xc8\x9f\xc9\x9f\xca\x9f\xcb\x66\xd0\x9f\xcc\x9f\xcd\x9f\xce\x9f\xcf\x66\xd2\x9f\xd0\x4e\x6d\x9f\xd1\x4e\xe4\x9f\xd2\x9f\xd3\x9f\xd4\x9f\xd5\x9f\xd6\x9f\xd7\x9f\xd8\x9f\xd9\x9f\xda\x9f\xdb\x9f\xdc\x9f\xdd\x9f\xde\x66\xce\x9f\xdf\x55\x57\x9f\xe0\x9f\xe1\x9f\xe2\x9f\xe3\x9f\xe4\x52\x5a\x9f\xe5\x66\xe2\x5b\x75\x66\xcf\x9f\xe6\x9f\xe7\x9f\xe8\x9f\xe9\x9f\xea\x5b\xf2\x9f\xeb\x9f\xec\x9f\xed\x66\xd1\x66\xcd\x9f\xee\x9f\xef\x9f\xf0\x9f\xf1\x66\xd3\x9f\xf2\x66\xd4\x9f\xf3\x9f\xf4\x55\x5f\x9f\xf5\x9f\xf6", /* 7180 */ "\x9f\xf7\x9f\xf8\x9f\xf9\x9f\xfa\x58\x48\x9f\xfb\x9f\xfc\x9f\xfd\xa0\x41\xa0\x42\x58\xdb\xa0\x43\xa0\x44\xa0\x45\xa0\x46\x59\x4c\xa0\x47\xa0\x48\xa0\x49\xa0\x4a\x54\xda\xa0\x4b\xa0\x4c\xa0\x4d\x66\xd5\x57\xf4\xa0\x4e\xa0\x4f\xa0\x50\xa0\x51\xa0\x52\x55\xeb\x66\xd9\xa0\x53\xa0\x54\xa0\x55\xa0\x56\xa0\x57\xa0\x58\xa0\x59\x66\xd8\xa0\x5a\xa0\x5b\xa0\x5c\x48\xbd\xa0\x5d\xa0\x5e\xa0\x5f\xa0\x60\xa0\x61\xa0\x62\x66\xd6\xa0\x63\x66\xd7\xa0\x64\xa0\x65\xa0\x66\x66\xe3\xa0\x67\xa0\x68\xa0\x69\xa0\x6a\xa0\x6b\xa0\x6c\xa0\x6d\xa0\x6e\xa0\x6f\x54\xbb\xa0\x70\xa0\x71\xa0\x72\xa0\x73\xa0\x74\xa0\x75\xa0\x76\xa0\x77\xa0\x78\xa0\x79\x51\x67\xa0\x7a\xa0\x7b\xa0\x7c\xa0\x7d\xa0\x7e\x66\xdb\x59\x81\xa0\x7f\xa0\x81\xa0\x82\xa0\x83\xa0\x84\xa0\x85\xa0\x86\xa0\x87\xa0\x88\xa0\x89\x66\xda\xa0\x8a\xa0\x8b\xa0\x8c\xa0\x8d\x5a\xee\xa0\x8e\x66\xdc\xa0\x8f\xa0\x90\xa0\x91\xa0\x92\xa0\x93\xa0\x94\x5e\x66\xa0\x95\xa0\x96\xa0\x97\xa0\x98\xa0\x99\xa0\x9a\xa0\x9b\xa0\x9c\xa0\x9d\xa0\x9e\x66\xdd\xa0\x9f\xa0\xa0\xa0\xa1\xa0\xa2\xa0\xa3\xa0\xa4", /* 7200 */ "\xa0\xa5\xa0\xa6\xa0\xa7\xa0\xa8\xa0\xa9\xa0\xaa\x49\x4c\xa0\xab\xa0\xac\xa0\xad\xa0\xae\xa0\xaf\xa0\xb0\xa0\xb1\xa0\xb2\xa0\xb3\xa0\xb4\xa0\xb5\xa0\xb6\xa0\xb7\xa0\xb8\xa0\xb9\xa0\xba\xa0\xbb\xa0\xbc\xa0\xbd\xa0\xbe\xa0\xbf\xa0\xc0\x66\xde\xa0\xc1\xa0\xc2\xa0\xc3\xa0\xc4\xa0\xc5\xa0\xc6\xa0\xc7\xa0\xc8\xa0\xc9\xa0\xca\x66\xdf\xa0\xcb\x5c\x46\xa0\xcc\x53\x60\xa0\xcd\xa0\xce\xa0\xcf\x66\x5c\x48\xad\xa0\xd0\xa0\xd1\xa0\xd2\x4f\xf3\x4c\xb7\x59\xae\x48\xd5\x4b\x9a\xa0\xd3\x5c\xb2\xa0\xd4\x56\x4c\xa0\xd5\x62\x7d\xa0\xd6\xa0\xd7\xa0\xd8\xa0\xd9\xa0\xda\xa0\xdb\xa0\xdc\x53\xab\x48\xe5\xa0\xdd\xa0\xde\xa0\xdf\x53\x66\x66\x59\xa0\xe0\xa0\xe1\xa0\xe2\xa0\xe3\x66\x5a\xa0\xe4\xa0\xe5\xa0\xe6\x66\x5b\xa0\xe7\xa0\xe8\x59\x60\xa0\xe9\x53\x43\xa0\xea\x65\xf1\xa0\xeb\x52\xb1\xa0\xec\x52\xb4\x50\xcd\xa0\xed\xa0\xee\xa0\xef\x65\xf2\x52\xc0\xa0\xf0\x57\xee\xa0\xf1\xa0\xf2\xa0\xf3\xa0\xf4\x65\xef\x65\xf3\xa0\xf5\xa0\xf6\x55\x9d\xa0\xf7\xa0\xf8\x54\x43\xa0\xf9\xa0\xfa\xa0\xfb\x56\xd7\x57\xfd\xa0\xfc\xa0\xfd\xa1\x41\x65\xf4\x65\xf5", /* 7280 */ "\x58\x4c\x50\xe6\xa1\x42\xa1\x43\x65\xf6\xa1\x44\xa1\x45\xa1\x46\xa1\x47\xa1\x48\x4b\xbe\x65\xf7\xa1\x49\x65\xf8\xa1\x4a\x65\xf9\xa1\x4b\xa1\x4c\x65\xfa\xa1\x4d\xa1\x4e\xa1\x4f\xa1\x50\xa1\x51\xa1\x52\xa1\x53\xa1\x54\xa1\x55\xa1\x56\xa1\x57\xa1\x58\x65\xf0\xa1\x59\xa1\x5a\xa1\x5b\xa1\x5c\xa1\x5d\xa1\x5e\xa1\x5f\xa1\x60\xa1\x61\xa1\x62\xa1\x63\xa1\x64\x54\xad\x61\x8c\xa1\x65\x4c\x58\x61\x8d\xa1\x66\xa1\x67\xa1\x68\x61\x8e\xa1\x69\x5c\x54\x61\x8f\x61\x90\x5a\x6c\xa1\x6a\xa1\x6b\xa1\x6c\xa1\x6d\xa1\x6e\xa1\x6f\xa1\x70\x61\x92\x50\x92\x61\x91\x4b\x72\xa1\x71\xa1\x72\xa1\x73\x49\x57\xa1\x74\xa1\x75\xa1\x76\xa1\x77\x61\x94\x61\x93\xa1\x78\x4d\xfb\xa1\x79\x61\x95\xa1\x7a\xa1\x7b\xa1\x7c\xa1\x7d\x4d\x57\xa1\x7e\x4f\xd0\xa1\x7f\xa1\x81\xa1\x82\xa1\x83\x52\xfb\xa1\x84\x4d\xdc\x4f\x66\xa1\x85\xa1\x86\xa1\x87\xa1\x88\xa1\x89\xa1\x8a\x61\x96\x61\x98\xa1\x8b\xa1\x8c\x4b\xbf\x58\x61\x55\xa7\x61\x97\x5b\x99\x5a\x9d\x61\x99\x61\x9d\x61\x9a\xa1\x8d\xa1\x8e\x61\x9b\x50\xe9\xa1\x8f\x61\x9f\x61\xa0\x50\xc6\xa1\x90\xa1\x91\xa1\x92", /* 7300 */ "\xa1\x93\x61\x9c\xa1\x94\x61\x9e\xa1\x95\xa1\x96\xa1\x97\xa1\x98\xa1\x99\xa1\x9a\x61\xa4\xa1\x9b\xa1\x9c\xa1\x9d\x51\x74\xa1\x9e\xa1\x9f\xa1\xa0\xa1\xa1\x61\xa2\xa1\xa2\x61\xa7\x49\xfd\x61\xa1\xa1\xa3\xa1\xa4\xa1\xa5\x52\x6d\x49\xc1\x61\xa6\x61\xa5\xa1\xa6\xa1\xa7\x61\xa3\x61\xa8\xa1\xa8\xa1\xa9\x61\xaa\xa1\xaa\xa1\xab\xa1\xac\x58\xc8\x5b\xec\x52\x48\x61\xab\xa1\xad\x58\x77\xa1\xae\xa1\xaf\x61\xad\xa1\xb0\xa1\xb1\x4d\xee\xa1\xb2\xa1\xb3\x65\x81\x61\xac\x61\xa9\xa1\xb4\xa1\xb5\xa1\xb6\xa1\xb7\x4e\x4b\x5a\xb2\xa1\xb8\xa1\xb9\xa1\xba\xa1\xbb\xa1\xbc\xa1\xbd\xa1\xbe\xa1\xbf\xa1\xc0\xa1\xc1\xa1\xc2\xa1\xc3\xa1\xc4\x61\xaf\xa1\xc5\xa1\xc6\x61\xae\xa1\xc7\x65\x82\xa1\xc8\xa1\xc9\xa1\xca\xa1\xcb\x61\xb0\xa1\xcc\xa1\xcd\xa1\xce\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xd2\xa1\xd3\x61\xb1\xa1\xd4\xa1\xd5\xa1\xd6\xa1\xd7\xa1\xd8\xa1\xd9\xa1\xda\xa1\xdb\xa1\xdc\xa1\xdd\xa1\xde\x61\xb2\x56\xa0\xa1\xdf\x61\xb3\xa1\xe0\xa1\xe1\xa1\xe2\xa1\xe3\xa1\xe4\xa1\xe5\xa1\xe6\xa1\xe7\xa1\xe8\xa1\xe9\xa1\xea\xa1\xeb\xa1\xec\xa1\xed\x61\xb4\xa1\xee", /* 7380 */ "\xa1\xef\xa1\xf0\xa1\xf1\xa1\xf2\x58\xfd\xa1\xf3\xa1\xf4\x51\xc9\xa1\xf5\x5a\x92\xa1\xf6\x57\x96\xa1\xf7\xa1\xf8\x64\x81\xa1\xf9\xa1\xfa\x64\x82\xa1\xfb\xa1\xfc\xa1\xfd\xa2\x41\x4f\xc0\xa2\x42\xa2\x43\xa2\x44\xa2\x45\x51\xe9\xa2\x46\xa2\x47\xa2\x48\x64\x85\xa2\x49\xa2\x4a\x64\x84\xa2\x4b\xa2\x4c\xa2\x4d\xa2\x4e\xa2\x4f\xa2\x50\x57\x87\xa2\x51\x52\x55\xa2\x52\xa2\x53\x64\x83\x4e\x57\x58\x76\xa2\x54\x51\x82\x64\x8a\xa2\x55\xa2\x56\xa2\x57\x64\x89\xa2\x58\xa2\x59\x64\x95\x49\xa2\xa2\x5a\xa2\x5b\xa2\x5c\xa2\x5d\x64\x8b\xa2\x5e\x64\x87\xa2\x5f\xa2\x60\xa2\x61\xa2\x62\xa2\x63\x64\x8d\x64\x8c\x55\x5a\xa2\x64\xa2\x65\x5b\x85\xa2\x66\x64\x86\x4c\x49\x64\x88\xa2\x67\xa2\x68\xa2\x69\xa2\x6a\xa2\x6b\xa2\x6c\xa2\x6d\x64\x8f\xa2\x6e\xa2\x6f\xa2\x70\xa2\x71\x64\x94\xa2\x72\x5b\xe8\xa2\x73\xa2\x74\xa2\x75\xa2\x76\x64\x8e\xa2\x77\x64\x93\xa2\x78\x64\x92\xa2\x79\xa2\x7a\xa2\x7b\x48\xdf\xa2\x7c\xa2\x7d\xa2\x7e\xa2\x7f\x64\x96\xa2\x81\xa2\x82\xa2\x83\xa2\x84\xa2\x85\xa2\x86\xa2\x87\xa2\x88\xa2\x89\xa2\x8a\xa2\x8b\xa2\x8c\xa2\x8d", /* 7400 */ "\xa2\x8e\xa2\x8f\xa2\x90\x54\x93\xa2\x91\x50\xc4\x50\xec\xa2\x92\xa2\x93\x51\x91\x64\x91\xa2\x94\xa2\x95\xa2\x96\xa2\x97\x64\x97\x56\x97\xa2\x98\xa2\x99\xa2\x9a\xa2\x9b\xa2\x9c\xa2\x9d\xa2\x9e\xa2\x9f\xa2\xa0\x64\xa1\x64\xa0\xa2\xa1\xa2\xa2\xa2\xa3\xa2\xa4\xa2\xa5\xa2\xa6\x5c\x61\xa2\xa7\xa2\xa8\x64\x9b\x64\x9a\xa2\xa9\x64\x9c\xa2\xaa\x64\x98\xa2\xab\x64\x9f\xa2\xac\x64\x9e\xa2\xad\x64\x9d\xa2\xae\xa2\xaf\x51\x75\x54\x79\x53\x9e\x53\x63\xa2\xb0\xa2\xb1\xa2\xb2\xa2\xb3\xa2\xb4\x54\x8e\xa2\xb5\xa2\xb6\xa2\xb7\xa2\xb8\x64\xa2\xa2\xb9\xa2\xba\xa2\xbb\xa2\xbc\xa2\xbd\xa2\xbe\xa2\xbf\xa2\xc0\xa2\xc1\xa2\xc2\xa2\xc3\xa2\xc4\xa2\xc5\xa2\xc6\xa2\xc7\xa2\xc8\xa2\xc9\xa2\xca\xa2\xcb\x64\xa5\xa2\xcc\x64\xa4\xa2\xcd\x64\xa6\x4d\xf6\x64\x99\x64\xa3\xa2\xce\x54\xef\x55\x4a\xa2\xcf\xa2\xd0\xa2\xd1\xa2\xd2\xa2\xd3\xa2\xd4\xa2\xd5\xa2\xd6\xa2\xd7\xa2\xd8\xa2\xd9\xa2\xda\xa2\xdb\x64\xa8\xa2\xdc\xa2\xdd\x4d\x86\xa2\xde\xa2\xdf\xa2\xe0\xa2\xe1\xa2\xe2\x59\x9f\x64\xa7\xa2\xe3\xa2\xe4\xa2\xe5\xa2\xe6\xa2\xe7\xa2\xe8\x64\xa9\xa2\xe9", /* 7480 */ "\x64\xac\x64\xad\xa2\xea\x51\x47\xa2\xeb\xa2\xec\xa2\xed\x64\xae\xa2\xee\xa2\xef\xa2\xf0\x64\xaf\xa2\xf1\xa2\xf2\x64\xab\xa2\xf3\x64\xb3\xa2\xf4\xa2\xf5\xa2\xf6\xa2\xf7\xa2\xf8\xa2\xf9\xa2\xfa\xa2\xfb\xa2\xfc\xa2\xfd\xa3\x41\x64\xaa\xa3\x42\x64\xb0\xa3\x43\xa3\x44\xa3\x45\xa3\x46\xa3\x47\xa3\x48\xa3\x49\xa3\x4a\x64\xb4\x64\xb1\x64\xb2\xa3\x4b\xa3\x4c\xa3\x4d\xa3\x4e\xa3\x4f\xa3\x50\xa3\x51\xa3\x52\xa3\x53\xa3\x54\xa3\x55\xa3\x56\xa3\x57\xa3\x58\xa3\x59\xa3\x5a\x64\xb6\xa3\x5b\xa3\x5c\xa3\x5d\xa3\x5e\xa3\x5f\xa3\x60\xa3\x61\xa3\x62\xa3\x63\xa3\x64\xa3\x65\xa3\x66\xa3\x67\xa3\x68\xa3\x69\xa3\x6a\xa3\x6b\xa3\x6c\xa3\x6d\xa3\x6e\xa3\x6f\xa3\x70\xa3\x71\x64\xb5\xa3\x72\xa3\x73\xa3\x74\xa3\x75\xa3\x76\xa3\x77\xa3\x78\xa3\x79\xa3\x7a\x4d\x6f\xa3\x7b\x68\xab\xa3\x7c\x68\xac\xa3\x7d\x53\xaf\x48\xe9\x54\xbe\xa3\x7e\x57\x7f\xa3\x7f\xa3\x81\xa3\x82\xa3\x83\xa3\x84\xa3\x85\xa3\x86\x57\xcc\x65\xb0\xa3\x87\xa3\x88\xa3\x89\xa3\x8a\x65\xb1\xa3\x8b\x53\xbe\x4a\xc8\xa3\x8c\xa3\x8d\xa3\x8e\xa3\x8f\xa3\x90\xa3\x91\xa3\x92\x65\xb2", /* 7500 */ "\xa3\x93\xa3\x94\xa3\x95\xa3\x96\x5b\x88\xa3\x97\xa3\x98\xa3\x99\xa3\x9a\xa3\x9b\xa3\x9c\xa3\x9d\xa3\x9e\x5f\x9a\xa3\x9f\x65\xb3\xa3\xa0\x65\xb4\xa3\xa1\x65\xb5\xa3\xa2\xa3\xa3\xa3\xa4\xa3\xa5\x4c\xc9\x60\x50\x55\x96\xa3\xa6\x56\xef\xa3\xa7\xa3\xa8\x55\x9b\xa3\xa9\xa3\xaa\xa3\xab\xa3\xac\xa3\xad\x55\x9c\xa3\xae\xa3\xaf\x5a\x63\x56\x46\xa3\xb0\x4c\xa5\x68\xad\x49\x62\xa3\xb1\x63\x58\x56\xee\x5a\x69\x4e\xd6\x55\x8b\xa3\xb2\x4b\x88\xa3\xb3\x52\xcf\x4b\x8a\xa3\xb4\x67\xad\x4e\x4d\xa3\xb5\xa3\xb6\x64\x7e\xa3\xb7\x67\xae\xa3\xb8\xa3\xb9\xa3\xba\xa3\xbb\x4a\x49\xa3\xbc\xa3\xbd\x67\xb1\xa3\xbe\xa3\xbf\x67\xb0\x4f\x88\xa3\xc0\x67\xaf\x57\xb6\xa3\xc1\xa3\xc2\xa3\xc3\xa3\xc4\x53\x6f\xa3\xc5\xa3\xc6\xa3\xc7\xa3\xc8\x51\x95\x5e\x6e\x67\xb2\x58\xf2\xa3\xc9\xa3\xca\xa3\xcb\xa3\xcc\xa3\xcd\xa3\xce\xa3\xcf\xa3\xd0\x51\xd3\x53\xe7\xa3\xd1\xa3\xd2\xa3\xd3\x4c\x4c\xa3\xd4\xa3\xd5\xa3\xd6\xa3\xd7\xa3\xd8\xa3\xd9\xa3\xda\x67\xb3\xa3\xdb\x4a\x8c\xa3\xdc\xa3\xdd\xa3\xde\x4e\x9c\x67\xb4\xa3\xdf\xa3\xe0\xa3\xe1\xa3\xe2\xa3\xe3\x64\x7c", /* 7580 */ "\xa3\xe4\xa3\xe5\xa3\xe6\x67\xb5\xa3\xe7\xa3\xe8\x4f\x4e\xa3\xe9\xa3\xea\xa3\xeb\xa3\xec\x69\x83\xa3\xed\xa3\xee\xa3\xef\x55\xe7\xa3\xf0\x59\xc8\x68\xd9\xa3\xf1\x68\xda\xa3\xf2\x68\xdb\x51\x66\xa3\xf3\x4c\xec\x4f\xcd\xa3\xf4\xa3\xf5\x68\xdd\xa3\xf6\x53\x51\x68\xdc\x59\x92\xa3\xf7\x68\xdf\x48\xcb\x4f\x8b\xa3\xf8\xa3\xf9\xa3\xfa\xa3\xfb\xa3\xfc\x59\xde\x68\xde\xa3\xfd\x4a\xae\x4c\x89\x68\xe5\x68\xe4\x53\xa2\x68\xe0\x68\xe1\x4a\xc2\xa4\x41\xa4\x42\x68\xe2\x5b\x8f\xa4\x43\xa4\x44\x56\xda\x4f\xd1\x4e\xb1\xa4\x45\xa4\x46\xa4\x47\x68\xe7\x68\xe6\x68\xe3\x49\xa0\xa4\x48\x5b\xa1\x5a\x58\x4f\xb6\x54\xab\xa4\x49\xa4\x4a\x68\xe9\xa4\x4b\xa4\x4c\xa4\x4d\xa4\x4e\x59\x98\xa4\x4f\x5b\xcb\x4d\xda\x68\xe8\xa4\x50\x4b\xba\xa4\x51\xa4\x52\x57\x54\xa4\x53\xa4\x54\x53\xa5\xa4\x55\xa4\x56\xa4\x57\x51\x41\x68\xea\x68\xed\xa4\x58\x68\xec\x68\xef\x68\xeb\xa4\x59\x4e\x5e\x68\xee\xa4\x5a\xa4\x5b\xa4\x5c\xa4\x5d\x56\xb4\x68\xf1\xa4\x5e\xa4\x5f\x4a\x75\xa4\x60\xa4\x61\xa4\x62\xa4\x63\x49\x74\xa4\x64\xa4\x65\x68\xf2\xa4\x66\xa4\x67\x68\xf3", /* 7600 */ "\x68\xf5\x4a\xe0\xa4\x68\x68\xf0\xa4\x69\x68\xf6\xa4\x6a\xa4\x6b\xa4\x6c\xa4\x6d\x68\xf9\xa4\x6e\x68\xf7\xa4\x6f\xa4\x70\xa4\x71\x68\xf4\xa4\x72\xa4\x73\xa4\x74\xa4\x75\x68\xfc\xa4\x76\x68\xf8\x68\xfb\x68\xfd\xa4\x77\x69\x41\xa4\x78\xa4\x79\xa4\x7a\x57\xc0\x69\x44\xa4\x7b\x69\x43\xa4\x7c\x51\x97\x68\xfa\x55\xdc\xa4\x7d\xa4\x7e\x4a\xf0\x49\x92\x56\xb0\xa4\x7f\x69\x46\xa4\x81\xa4\x82\x69\x47\xa4\x83\xa4\x84\x69\x4c\x5b\x6e\x69\x49\xa4\x85\xa4\x86\x54\xb2\xa4\x87\xa4\x88\xa4\x89\x69\x42\xa4\x8a\x69\x4b\x69\x48\x69\x45\xa4\x8b\xa4\x8c\x69\x4a\xa4\x8d\xa4\x8e\xa4\x8f\xa4\x90\xa4\x91\xa4\x92\xa4\x93\xa4\x94\x48\xa8\x69\x4d\xa4\x95\xa4\x96\xa4\x97\xa4\x98\xa4\x99\xa4\x9a\x69\x4f\xa4\x9b\x69\x51\xa4\x9c\xa4\x9d\xa4\x9e\xa4\x9f\xa4\xa0\x69\x50\xa4\xa1\x69\x4e\xa4\xa2\xa4\xa3\xa4\xa4\xa4\xa5\x59\x42\xa4\xa6\xa4\xa7\xa4\xa8\xa4\xa9\xa4\xaa\xa4\xab\xa4\xac\x69\x52\xa4\xad\xa4\xae\xa4\xaf\x69\x53\xa4\xb0\xa4\xb1\xa4\xb2\xa4\xb3\xa4\xb4\xa4\xb5\xa4\xb6\xa4\xb7\x4d\x90\xa4\xb8\xa4\xb9\x4b\x67\xa4\xba\x48\xd6\x48\xd8\xa4\xbb", /* 7680 */ "\xa4\xbc\xa4\xbd\x5a\xec\xa4\xbe\x4b\x64\xa4\xbf\x4f\x74\x4e\x6a\x68\xa6\xa4\xc0\xa4\xc1\x4c\xdd\xa4\xc2\xa4\xc3\x68\xa7\xa4\xc4\xa4\xc5\x48\xa7\xa4\xc6\x68\xa8\xa4\xc7\xa4\xc8\x57\x8f\xa4\xc9\xa4\xca\x68\xa9\xa4\xcb\xa4\xcc\xa4\xcd\xa4\xce\xa4\xcf\xa4\xd0\xa4\xd1\xa4\xd2\xa4\xd3\xa4\xd4\x68\xaa\xa4\xd5\xa4\xd6\xa4\xd7\xa4\xd8\xa4\xd9\xa4\xda\xa4\xdb\xa4\xdc\xa4\xdd\x53\xa3\xa4\xde\xa4\xdf\x5b\xe4\x69\x85\xa4\xe0\x69\x86\xa4\xe1\xa4\xe2\xa4\xe3\xa4\xe4\xa4\xe5\xa4\xe6\xa4\xe7\xa4\xe8\xa4\xe9\xa4\xea\x52\x94\xa4\xeb\xa4\xec\x5a\x7b\xa4\xed\xa4\xee\x5b\xd0\x53\x89\xa4\xef\x5a\x4f\xa4\xf0\x59\xe5\xa4\xf1\xa4\xf2\x67\xc0\x48\xba\x5b\x55\x59\x6e\x4e\xdf\x4d\xcf\xa4\xf3\x50\x99\xa4\xf4\x4c\xc6\x4b\x61\x53\x6c\xa4\xf5\xa4\xf6\x55\xa1\xa4\xf7\xa4\xf8\xa4\xf9\x52\x6b\xa4\xfa\xa4\xfb\xa4\xfc\xa4\xfd\xa5\x41\x67\xc1\xa5\x42\xa5\x43\xa5\x44\xa5\x45\xa5\x46\xa5\x47\xa5\x48\xa5\x49\x52\xbe\x4b\xa1\xa5\x4a\x67\x8d\x52\x44\xa5\x4b\x5b\xb0\xa5\x4c\xa5\x4d\xa5\x4e\x58\x81\x67\x90\xa5\x4f\xa5\x50\x53\x6e\xa5\x51\x4b\xdb\xa5\x52", /* 7700 */ "\xa5\x53\x55\xa0\xa5\x54\xa5\x55\x67\x8e\xa5\x56\xa5\x57\x67\x91\x67\x92\x52\x5c\xa5\x58\x50\x54\xa5\x59\x67\x8f\xa5\x5a\xa5\x5b\xa5\x5c\xa5\x5d\xa5\x5e\xa5\x5f\xa5\x60\xa5\x61\xa5\x62\xa5\x63\xa5\x64\x67\x95\x67\x93\xa5\x65\xa5\x66\xa5\x67\xa5\x68\x5b\x87\x52\x7f\xa5\x69\x67\x94\xa5\x6a\xa5\x6b\xa5\x6c\x67\x97\xa5\x6d\x5b\x43\x59\x43\xa5\x6e\xa5\x6f\xa5\x70\x67\x96\xa5\x71\x52\x70\xa5\x72\xa5\x73\xa5\x74\xa5\x75\xa5\x76\x67\x98\x50\x95\x4f\xeb\x67\x99\xa5\x77\x56\xf6\xa5\x78\x59\x7b\xa5\x79\xa5\x7a\xa5\x7b\x5c\x65\x5b\x97\xa5\x7c\x67\x9d\xa5\x7d\xa5\x7e\xa5\x7f\x67\x9c\xa5\x81\xa5\x82\xa5\x83\xa5\x84\xa5\x85\xa5\x86\xa5\x87\xa5\x88\x67\x9a\x67\x9b\xa5\x89\xa5\x8a\xa5\x8b\xa5\x8c\xa5\x8d\xa5\x8e\xa5\x8f\xa5\x90\x67\x9e\x4f\xa5\xa5\x91\xa5\x92\xa5\x93\xa5\x94\xa5\x95\x56\x4f\x67\xa0\x4b\xbc\xa5\x96\x67\xa1\x52\xbf\xa5\x97\x67\x9f\xa5\x98\xa5\x99\x4f\x7e\x49\xc6\xa5\x9a\xa5\x9b\xa5\x9c\xa5\x9d\xa5\x9e\xa5\x9f\xa5\xa0\xa5\xa1\xa5\xa2\xa5\xa3\xa5\xa4\xa5\xa5\x4b\xc2\xa5\xa6\xa5\xa7\xa5\xa8\x67\xa4\x5c\xb9\x67\xa2", /* 7780 */ "\x67\xa5\xa5\xa9\xa5\xaa\xa5\xab\x52\x8a\x4a\x93\xa5\xac\xa5\xad\xa5\xae\xa5\xaf\xa5\xb0\xa5\xb1\x67\xa6\x67\xa3\x58\x59\xa5\xb2\xa5\xb3\x67\xa7\x51\xf6\xa5\xb4\xa5\xb5\xa5\xb6\xa5\xb7\xa5\xb8\xa5\xb9\xa5\xba\xa5\xbb\xa5\xbc\xa5\xbd\xa5\xbe\xa5\xbf\x67\xa8\x67\xa9\xa5\xc0\x5f\xaa\xa5\xc1\xa5\xc2\x53\xb2\xa5\xc3\x54\x66\xa5\xc4\x5b\xf4\x4b\x69\xa5\xc5\x56\x52\xa5\xc6\xa5\xc7\xa5\xc8\x67\xaa\xa5\xc9\xa5\xca\x57\x4b\xa5\xcb\x67\xab\xa5\xcc\xa5\xcd\xa5\xce\xa5\xcf\xa5\xd0\x5b\x50\xa5\xd1\x67\xac\xa5\xd2\x6b\xc3\xa5\xd3\xa5\xd4\xa5\xd5\xa5\xd6\xa5\xd7\xa5\xd8\xa5\xd9\xa5\xda\xa5\xdb\xa5\xdc\xa5\xdd\xa5\xde\xa5\xdf\x5e\x67\xa5\xe0\xa5\xe1\xa5\xe2\xa5\xe3\xa5\xe4\xa5\xe5\xa5\xe6\xa5\xe7\xa5\xe8\x4a\xa2\xa5\xe9\xa5\xea\xa5\xeb\x52\x4c\x69\x87\xa5\xec\xa5\xed\xa5\xee\xa5\xef\xa5\xf0\x55\xb7\x59\xd2\xa5\xf1\x5b\xa9\xa5\xf2\x68\x93\xa5\xf3\x4f\xd7\xa5\xf4\x4f\x63\x68\x94\x4b\xcb\x48\xaa\xa5\xf5\xa5\xf6\xa5\xf7\xa5\xf8\x55\xae\xa5\xf9\xa5\xfa\x67\x56\xa5\xfb\x67\x57\xa5\xfc\xa5\xfd\xa6\x41\xa6\x42\x57\xf8\x4c\x4f\x50\x94", /* 7800 */ "\x67\x58\x51\xea\x55\x50\xa6\x43\xa6\x44\xa6\x45\xa6\x46\xa6\x47\xa6\x48\x67\x59\xa6\x49\xa6\x4a\x53\xf5\x50\x53\xa6\x4b\xa6\x4c\xa6\x4d\x67\x5c\x53\x99\xa6\x4e\x59\x70\xa6\x4f\x5c\x49\x67\x5a\x67\x5b\xa6\x50\x59\x83\xa6\x51\x67\x5f\x67\x60\xa6\x52\x67\x64\xa6\x53\xa6\x54\xa6\x55\x67\x68\xa6\x56\x67\x66\x67\x6e\x5b\x89\xa6\x57\x67\x69\xa6\x58\xa6\x59\x67\x67\x67\x5e\xa6\x5a\xa6\x5b\x53\x8a\xa6\x5c\xa6\x5d\xa6\x5e\x53\xc5\xa6\x5f\xa6\x60\x55\x8a\x5a\xd1\x67\x61\x67\x62\x67\x63\x67\x65\xa6\x61\x50\xf8\xa6\x62\x4a\xa0\xa6\x63\xa6\x64\xa6\x65\xa6\x66\x4d\x89\xa6\x67\x67\x70\xa6\x68\xa6\x69\xa6\x6a\xa6\x6b\x67\x71\xa6\x6c\x67\x6a\xa6\x6d\x67\x6f\xa6\x6e\x57\xf7\xa6\x6f\xa6\x70\x56\x56\x67\x6c\x67\x6d\xa6\x71\xa6\x72\xa6\x73\xa6\x74\xa6\x75\x58\x96\xa6\x76\xa6\x77\xa6\x78\xa6\x79\xa6\x7a\xa6\x7b\xa6\x7c\xa6\x7d\xa6\x7e\xa6\x7f\xa6\x81\xa6\x82\x67\x72\x51\x93\x5a\x52\x67\x6b\x54\xb6\xa6\x83\xa6\x84\xa6\x85\xa6\x86\xa6\x87\xa6\x88\xa6\x89\xa6\x8a\x4e\xee\xa6\x8b\xa6\x8c\xa6\x8d\xa6\x8e\x53\x91\xa6\x8f\xa6\x90\xa6\x91", /* 7880 */ "\xa6\x92\xa6\x93\xa6\x94\xa6\x95\xa6\x96\xa6\x97\xa6\x98\x67\x76\xa6\x99\x4b\x90\xa6\x9a\xa6\x9b\x51\xb4\x48\xac\x56\x8a\xa6\x9c\xa6\x9d\x49\x4e\xa6\x9e\x67\x74\xa6\x9f\xa6\xa0\xa6\xa1\x57\x8c\x4b\x83\xa6\xa2\x67\x75\x67\x73\x67\x77\xa6\xa3\xa6\xa4\x4b\x9b\xa6\xa5\x67\x78\xa6\xa6\x67\x79\xa6\xa7\x67\x7c\xa6\xa8\x49\x6c\xa6\xa9\xa6\xaa\xa6\xab\xa6\xac\xa6\xad\xa6\xae\xa6\xaf\xa6\xb0\x53\x97\x4e\xed\x67\x7a\x56\xbb\x49\xe9\xa6\xb1\xa6\xb2\xa6\xb3\xa6\xb4\x67\x7b\xa6\xb5\xa6\xb6\xa6\xb7\xa6\xb8\x52\xea\xa6\xb9\xa6\xba\x4a\xc4\xa6\xbb\xa6\xbc\xa6\xbd\x48\xf4\xa6\xbe\xa6\xbf\xa6\xc0\x67\x7f\x50\xd9\x4a\xe7\xa6\xc1\xa6\xc2\xa6\xc3\xa6\xc4\x53\x6d\xa6\xc5\xa6\xc6\xa6\xc7\x67\x7d\x50\x64\xa6\xc8\xa6\xc9\xa6\xca\x67\x7e\xa6\xcb\xa6\xcc\xa6\xcd\xa6\xce\xa6\xcf\xa6\xd0\xa6\xd1\xa6\xd2\xa6\xd3\xa6\xd4\xa6\xd5\xa6\xd6\xa6\xd7\xa6\xd8\x52\xa4\xa6\xd9\xa6\xda\xa6\xdb\x67\x81\xa6\xdc\xa6\xdd\xa6\xde\xa6\xdf\xa6\xe0\x67\x82\xa6\xe1\x67\x84\xa6\xe2\xa6\xe3\x51\x77\xa6\xe4\xa6\xe5\x4e\x67\xa6\xe6\xa6\xe7\xa6\xe8\xa6\xe9\xa6\xea", /* 7900 */ "\xa6\xeb\x4f\x58\xa6\xec\xa6\xed\xa6\xee\x67\x83\xa6\xef\xa6\xf0\xa6\xf1\xa6\xf2\xa6\xf3\xa6\xf4\xa6\xf5\xa6\xf6\xa6\xf7\xa6\xf8\xa6\xf9\xa6\xfa\xa6\xfb\x67\x85\xa6\xfc\xa6\xfd\xa7\x41\xa7\x42\xa7\x43\xa7\x44\xa7\x45\xa7\x46\xa7\x47\xa7\x48\x67\x87\xa7\x49\xa7\x4a\xa7\x4b\xa7\x4c\xa7\x4d\x67\x86\xa7\x4e\xa7\x4f\xa7\x50\xa7\x51\xa7\x52\xa7\x53\xa7\x54\xa7\x55\xa7\x56\xa7\x57\xa7\x58\xa7\x59\xa7\x5a\xa7\x5b\xa7\x5c\x67\x88\xa7\x5d\xa7\x5e\xa7\x5f\xa7\x60\xa7\x61\x55\xbd\x66\xe9\x50\xf0\xa7\x62\x55\x88\xa7\x63\x66\xea\x53\xed\xa7\x64\xa7\x65\xa7\x66\xa7\x67\x66\xeb\xa7\x68\x53\xec\x66\xec\xa7\x69\xa7\x6a\xa7\x6b\xa7\x6c\xa7\x6d\xa7\x6e\xa7\x6f\xa7\x70\xa7\x71\x66\xef\xa7\x72\xa7\x73\x5c\x87\x66\xf2\xa7\x74\xa7\x75\x66\xf0\x66\xed\x66\xee\x5c\x43\x55\x92\x56\x8f\x66\xf3\xa7\x76\x66\xf1\xa7\x77\xa7\x78\x58\x8a\xa7\x79\x66\xf5\x53\xb0\xa7\x7a\xa7\x7b\xa7\x7c\xa7\x7d\x4e\xbf\xa7\x7e\x66\xf4\xa7\x7f\xa7\x81\xa7\x82\xa7\x83\xa7\x84\xa7\x85\xa7\x86\x4b\x5b\x4e\x97\xa7\x87\x66\xf6\xa7\x88\xa7\x89\xa7\x8a\xa7\x8b\xa7\x8c", /* 7980 */ "\x5d\x98\x4f\x9c\xa7\x8d\xa7\x8e\x51\xba\x66\xf7\xa7\x8f\xa7\x90\xa7\x91\xa7\x92\x66\xf8\xa7\x93\xa7\x94\xa7\x95\xa7\x96\x4c\xa2\xa7\x97\xa7\x98\xa7\x99\xa7\x9a\xa7\x9b\xa7\x9c\xa7\x9d\xa7\x9e\xa7\x9f\xa7\xa0\x66\xf9\xa7\xa1\xa7\xa2\xa7\xa3\xa7\xa4\xa7\xa5\xa7\xa6\xa7\xa7\xa7\xa8\xa7\xa9\xa7\xaa\xa7\xab\xa7\xac\x66\xfa\xa7\xad\xa7\xae\xa7\xaf\xa7\xb0\xa7\xb1\xa7\xb2\xa7\xb3\xa7\xb4\xa7\xb5\xa7\xb6\xa7\xb7\x66\xfb\xa7\xb8\xa7\xb9\xa7\xba\xa7\xbb\xa7\xbc\x5a\x8e\x5c\xad\x50\xea\xa7\xbd\x54\x7d\x4d\xcb\xa7\xbe\x58\xe2\x56\x5d\xa7\xbf\x57\x5a\xa7\xc0\xa7\xc1\x4c\xd0\xa7\xc2\xa7\xc3\x49\x9d\xa7\xc4\x54\x90\xa7\xc5\x5b\xd5\xa7\xc6\xa7\xc7\xa7\xc8\x50\x66\x52\x8c\xa7\xc9\xa7\xca\x68\x96\xa7\xcb\xa7\xcc\x52\x78\xa7\xcd\xa7\xce\xa7\xcf\xa7\xd0\xa7\xd1\xa7\xd2\x5c\x83\xa7\xd3\xa7\xd4\xa7\xd5\x68\x98\x4a\x73\xa7\xd6\x54\x78\x59\x8e\xa7\xd7\x5b\xc7\xa7\xd8\x68\x99\xa7\xd9\x68\x97\xa7\xda\x4e\x9e\x4a\x66\xa7\xdb\xa7\xdc\xa7\xdd\xa7\xde\xa7\xdf\xa7\xe0\xa7\xe1\x4f\x75\xa7\xe2\xa7\xe3\x59\xc5\xa7\xe4\x4e\x81\xa7\xe5\xa7\xe6", /* 7a00 */ "\x58\x41\xa7\xe7\x68\x9d\x68\x9c\xa7\xe8\xa7\xe9\x68\x9a\xa7\xea\xa7\xeb\xa7\xec\xa7\xed\x4a\x6c\xa7\xee\x55\x74\x56\x50\xa7\xef\xa7\xf0\xa7\xf1\xa7\xf2\xa7\xf3\x68\x9f\xa7\xf4\xa7\xf5\x48\xdd\xa7\xf6\xa7\xf7\x5b\xc8\xa7\xf8\xa7\xf9\xa7\xfa\x68\x9e\xa7\xfb\x4a\x8e\xa7\xfc\xa7\xfd\x6b\xd4\xa8\x41\xa8\x42\xa8\x43\xa8\x44\xa8\x45\xa8\x46\xa8\x47\xa8\x48\xa8\x49\xa8\x4a\xa8\x4b\xa8\x4c\xa8\x4d\xa8\x4e\xa8\x4f\x57\xc7\xa8\x50\xa8\x51\xa8\x52\x68\xa1\xa8\x53\x68\xa0\xa8\x54\x4b\x5e\x4e\xd9\x4e\x9d\xa8\x55\x4c\xe4\xa8\x56\xa8\x57\xa8\x58\xa8\x59\xa8\x5a\xa8\x5b\x52\xc1\xa8\x5c\xa8\x5d\xa8\x5e\xa8\x5f\xa8\x60\xa8\x61\xa8\x62\xa8\x63\xa8\x64\xa8\x65\x68\xa2\xa8\x66\xa8\x67\xa8\x68\xa8\x69\xa8\x6a\x56\x8c\xa8\x6b\xa8\x6c\xa8\x6d\xa8\x6e\xa8\x6f\xa8\x70\xa8\x71\xa8\x72\xa8\x73\xa8\x74\xa8\x75\xa8\x76\xa8\x77\xa8\x78\xa8\x79\xa8\x7a\xa8\x7b\xa8\x7c\xa8\x7d\xa8\x7e\xa8\x7f\xa8\x81\xa8\x82\xa8\x83\x68\xa5\xa8\x84\xa8\x85\xa8\x86\x59\x48\xa8\x87\x4f\xbe\x54\x8f\x69\x56\x69\x57\x50\x75\xa8\x88\xa8\x89\xa8\x8a\xa8\x8b\x4a\xa8", /* 7a80 */ "\x69\x58\x57\x5b\xa8\x8c\x54\x74\x5b\x4d\xa8\x8d\x69\x59\xa8\x8e\x69\x5a\xa8\x8f\xa8\x90\xa8\x91\xa8\x92\x54\x6f\xa8\x93\xa8\x94\xa8\x95\x59\xa3\x5b\xce\xa8\x96\xa8\x97\x69\x5b\x4f\x71\x4a\xaf\x4f\xbc\xa8\x98\xa8\x99\xa8\x9a\x4a\xdb\x57\xd0\xa8\x9b\x50\x7f\x69\x5d\xa8\x9c\xa8\x9d\xa8\x9e\xa8\x9f\x50\x9b\x69\x5c\xa8\xa0\x69\x5f\xa8\xa1\xa8\xa2\xa8\xa3\x69\x5e\x69\x60\xa8\xa4\xa8\xa5\xa8\xa6\xa8\xa7\xa8\xa8\x69\x61\xa8\xa9\xa8\xaa\xa8\xab\xa8\xac\xa8\xad\xa8\xae\xa8\xaf\xa8\xb0\xa8\xb1\xa8\xb2\xa8\xb3\x51\x9f\xa8\xb4\xa8\xb5\xa8\xb6\xa8\xb7\xa8\xb8\xa8\xb9\xa8\xba\xa8\xbb\xa8\xbc\xa8\xbd\xa8\xbe\x51\x42\xa8\xbf\xa8\xc0\xa8\xc1\xa8\xc2\xa8\xc3\xa8\xc4\xa8\xc5\xa8\xc6\xa8\xc7\xa8\xc8\x55\xf9\xa8\xc9\xa8\xca\x5b\x5e\xa8\xcb\xa8\xcc\xa8\xcd\xa8\xce\x4f\xb9\x4f\xb8\x5b\x62\xa8\xcf\xa8\xd0\x50\x42\xa8\xd1\x57\x4f\x69\x55\xa8\xd2\xa8\xd3\xa8\xd4\xa8\xd5\xa8\xd6\xa8\xd7\x4f\x7f\xa8\xd8\x4b\xca\xa8\xd9\xa8\xda\xa8\xdb\xa8\xdc\xa8\xdd\xa8\xde\xa8\xdf\xa8\xe0\xa8\xe1\x5b\xf0\x6a\x63\xa8\xe2\xa8\xe3\x6a\x64\xa8\xe4\x4c\xcc", /* 7b00 */ "\xa8\xe5\xa8\xe6\xa8\xe7\x6a\x66\x6a\x67\xa8\xe8\x48\xc9\xa8\xe9\x6a\x65\xa8\xea\x6a\x69\x56\x92\xa8\xeb\xa8\xec\xa8\xed\x6a\x6b\xa8\xee\x58\xa5\xa8\xef\xa8\xf0\x49\x6a\x6a\x68\xa8\xf1\xa8\xf2\xa8\xf3\x6a\x6f\xa8\xf4\x4b\x71\xa8\xf5\xa8\xf6\x6a\x77\xa8\xf7\x6a\x72\xa8\xf8\xa8\xf9\xa8\xfa\x6a\x74\x6a\x73\x4c\x9c\xa8\xfb\x49\x5f\xa8\xfc\x6a\x6e\x6a\x6a\x4b\x7a\xa8\xfd\x6a\x70\xa9\x41\xa9\x42\x6a\x71\xa9\x43\x6a\x75\xa9\x44\xa9\x45\xa9\x46\xa9\x47\x6a\x6d\xa9\x48\x4e\xe2\xa9\x49\x51\x9e\xa9\x4a\x6a\x76\xa9\x4b\xa9\x4c\xa9\x4d\xa9\x4e\xa9\x4f\xa9\x50\x6a\x7a\xa9\x51\x6a\x6c\xa9\x52\x4b\x68\xa9\x53\x4f\x8f\x6a\x7c\xa9\x54\xa9\x55\x4c\x44\x50\x91\x5b\xfd\x57\x52\xa9\x56\x4a\xef\xa9\x57\x49\xde\xa9\x58\x6a\x78\xa9\x59\x6a\x79\x55\x58\xa9\x5a\x6a\x7d\xa9\x5b\xa9\x5c\x6a\x7e\xa9\x5d\x6a\x82\xa9\x5e\xa9\x5f\xa9\x60\xa9\x61\xa9\x62\xa9\x63\xa9\x64\xa9\x65\xa9\x66\xa9\x67\xa9\x68\x6a\x7f\xa9\x69\xa9\x6a\x6a\x84\x6a\x83\xa9\x6b\xa9\x6c\x6a\x7b\xa9\x6d\x50\x8b\xa9\x6e\x4a\x90\xa9\x6f\x6a\x81\xa9\x70\xa9\x71\x54\x49\xa9\x72", /* 7b80 */ "\x4e\xf1\xa9\x73\xa9\x74\xa9\x75\xa9\x76\x6a\x8c\xa9\x77\xa9\x78\xa9\x79\xa9\x7a\xa9\x7b\xa9\x7c\xa9\x7d\x4d\x5f\xa9\x7e\xa9\x7f\x6a\x85\xa9\x81\xa9\x82\xa9\x83\x49\xac\x4e\x9f\xa9\x84\x56\x84\xa9\x85\xa9\x86\xa9\x87\xa9\x88\x6a\x8e\x6a\x8a\xa9\x89\xa9\x8a\xa9\x8b\x4d\x7c\x6a\x8f\xa9\x8c\xa9\x8d\xa9\x8e\x6a\x86\x6a\x87\x6a\x8b\x51\xe0\x6a\x8d\x6a\x90\x6a\x89\x4e\xfc\xa9\x8f\xa9\x90\xa9\x91\x58\x85\xa9\x92\xa9\x93\x6a\x91\xa9\x94\xa9\x95\xa9\x96\x6a\x88\xa9\x97\xa9\x98\xa9\x99\xa9\x9a\xa9\x9b\xa9\x9c\xa9\x9d\xa9\x9e\x6a\x93\xa9\x9f\xa9\xa0\xa9\xa1\xa9\xa2\x5c\x4d\x53\xa9\xa9\xa3\xa9\xa4\xa9\xa5\xa9\xa6\x6a\x94\xa9\xa7\xa9\xa8\xa9\xa9\xa9\xaa\x6a\x92\xa9\xab\x51\xa7\xa9\xac\xa9\xad\xa9\xae\xa9\xaf\xa9\xb0\x4c\xdc\x6a\x96\xa9\xb1\xa9\xb2\x6a\x95\xa9\xb3\xa9\xb4\xa9\xb5\x4a\xda\xa9\xb6\xa9\xb7\xa9\xb8\x6a\x97\x6a\x98\xa9\xb9\xa9\xba\xa9\xbb\x6a\x99\xa9\xbc\xa9\xbd\xa9\xbe\x50\xb9\xa9\xbf\xa9\xc0\x50\xe8\xa9\xc1\xa9\xc2\xa9\xc3\xa9\xc4\xa9\xc5\x53\x92\xa9\xc6\xa9\xc7\xa9\xc8\xa9\xc9\x6a\x9c\xa9\xca\x6a\x9b\xa9\xcb", /* 7c00 */ "\xa9\xcc\xa9\xcd\xa9\xce\xa9\xcf\xa9\xd0\xa9\xd1\xa9\xd2\x4a\xd7\xa9\xd3\xa9\xd4\xa9\xd5\x6a\x9f\x6a\x9a\xa9\xd6\xa9\xd7\x6a\x9d\xa9\xd8\xa9\xd9\xa9\xda\xa9\xdb\xa9\xdc\xa9\xdd\x6a\x9e\xa9\xde\xa9\xdf\xa9\xe0\xa9\xe1\xa9\xe2\xa9\xe3\xa9\xe4\xa9\xe5\x6a\xa0\xa9\xe6\xa9\xe7\xa9\xe8\xa9\xe9\xa9\xea\xa9\xeb\x6a\xa2\x4e\x69\xa9\xec\xa9\xed\x6a\xa1\xa9\xee\xa9\xef\xa9\xf0\xa9\xf1\xa9\xf2\xa9\xf3\xa9\xf4\xa9\xf5\xa9\xf6\xa9\xf7\xa9\xf8\xa9\xf9\xa9\xfa\x6a\xa3\xa9\xfb\xa9\xfc\xa9\xfd\xaa\x41\xaa\x42\xaa\x43\x49\xbd\x6a\xa5\x6a\xa4\xaa\x44\xaa\x45\xaa\x46\xaa\x47\xaa\x48\xaa\x49\xaa\x4a\xaa\x4b\xaa\x4c\xaa\x4d\xaa\x4e\x4e\xad\xaa\x4f\xaa\x50\xaa\x51\xaa\x52\xaa\x53\xaa\x54\xaa\x55\xaa\x56\xaa\x57\xaa\x58\xaa\x59\xaa\x5a\xaa\x5b\xaa\x5c\xaa\x5d\xaa\x5e\xaa\x5f\xaa\x60\xaa\x61\xaa\x62\xaa\x63\xaa\x64\xaa\x65\xaa\x66\xaa\x67\xaa\x68\xaa\x69\xaa\x6a\xaa\x6b\xaa\x6c\xaa\x6d\xaa\x6e\xaa\x6f\xaa\x70\xaa\x71\xaa\x72\xaa\x73\x52\x77\x5d\x82\xaa\x74\xaa\x75\xaa\x76\xaa\x77\xaa\x78\xaa\x79\x50\xdf\x6a\xcb\x5c\x71\xaa\x7a\xaa\x7b", /* 7c80 */ "\xaa\x7c\xaa\x7d\xaa\x7e\xaa\x7f\xaa\x81\xaa\x82\xaa\x83\xaa\x84\xaa\x85\x4c\x7b\xaa\x86\xaa\x87\xaa\x88\xaa\x89\xaa\x8a\xaa\x8b\xaa\x8c\x6a\xcd\x51\x43\xaa\x8d\xaa\x8e\x53\xc8\xaa\x8f\x4a\xd5\x5b\x53\xaa\x90\xaa\x91\xaa\x92\x6a\xcf\x6a\xce\x6a\xd0\x56\x7a\xaa\x93\xaa\x94\x6a\xd1\xaa\x95\x5a\xc0\x5b\xdf\xaa\x96\xaa\x97\xaa\x98\xaa\x99\x4c\x81\xaa\x9a\xaa\x9b\xaa\x9c\x51\x58\xaa\x9d\xaa\x9e\x51\x5b\x6a\xd2\x4f\xab\xaa\x9f\xaa\xa0\xaa\xa1\xaa\xa2\xaa\xa3\x4a\xe1\xaa\xa4\xaa\xa5\x6a\xd3\x6a\xd4\x4f\xaa\xaa\xa6\xaa\xa7\x6a\xd5\xaa\xa8\xaa\xa9\xaa\xaa\x6a\xda\xaa\xab\x6a\xd6\x6a\xd9\xaa\xac\x4d\xfc\xaa\xad\x6a\xd7\x6a\xd8\xaa\xae\xaa\xaf\xaa\xb0\xaa\xb1\xaa\xb2\xaa\xb3\xaa\xb4\x4c\xe1\x56\xc6\x6a\xdb\xaa\xb5\x49\xd9\xaa\xb6\xaa\xb7\x52\x73\xaa\xb8\xaa\xb9\x5a\xe2\x50\x57\xaa\xba\xaa\xbb\xaa\xbc\xaa\xbd\xaa\xbe\xaa\xbf\xaa\xc0\x6a\xdc\xaa\xc1\xaa\xc2\xaa\xc3\xaa\xc4\xaa\xc5\xaa\xc6\x53\x54\xaa\xc7\xaa\xc8\xaa\xc9\xaa\xca\xaa\xcb\xaa\xcc\xaa\xcd\xaa\xce\x6a\xe8\xaa\xcf\xaa\xd0\x58\x55\xaa\xd1\xaa\xd2\xaa\xd3\xaa\xd4", /* 7d00 */ "\xaa\xd5\xaa\xd6\xaa\xd7\xaa\xd8\xaa\xd9\xaa\xda\xaa\xdb\xaa\xdc\xaa\xdd\xaa\xde\x57\xc8\xaa\xdf\xaa\xe0\xaa\xe1\xaa\xe2\xaa\xe3\xaa\xe4\xaa\xe5\xaa\xe6\xaa\xe7\xaa\xe8\xaa\xe9\xaa\xea\xaa\xeb\xaa\xec\xaa\xed\xaa\xee\xaa\xef\xaa\xf0\xaa\xf1\xaa\xf2\xaa\xf3\x56\x78\xaa\xf4\x56\x98\xaa\xf5\xaa\xf6\xaa\xf7\xaa\xf8\x4f\x95\xaa\xf9\xaa\xfa\xaa\xfb\x5c\x6f\xaa\xfc\xaa\xfd\xab\x41\x50\xda\xab\x42\xab\x43\xab\x44\xab\x45\xab\x46\xab\x47\xab\x48\xab\x49\xab\x4a\xab\x4b\xab\x4c\xab\x4d\xab\x4e\xab\x4f\xab\x50\xab\x51\xab\x52\xab\x53\xab\x54\xab\x55\xab\x56\xab\x57\xab\x58\xab\x59\xab\x5a\xab\x5b\xab\x5c\xab\x5d\xab\x5e\xab\x5f\xab\x60\xab\x61\xab\x62\xab\x63\xab\x64\xab\x65\xab\x66\xab\x67\xab\x68\xab\x69\xab\x6a\xab\x6b\xab\x6c\xab\x6d\xab\x6e\xab\x6f\xab\x70\xab\x71\xab\x72\xab\x73\xab\x74\xab\x75\xab\x76\xab\x77\xab\x78\xab\x79\xab\x7a\xab\x7b\xab\x7c\xab\x7d\xab\x7e\xab\x7f\x58\xf4\xab\x81\xab\x82\xab\x83\xab\x84\xab\x85\xab\x86\xab\x87\xab\x88\x6a\xe9\xab\x89\xab\x8a\xab\x8b\xab\x8c\xab\x8d\xab\x8e\xab\x8f\xab\x90", /* 7d80 */ "\xab\x91\xab\x92\xab\x93\xab\x94\xab\x95\xab\x96\xab\x97\xab\x98\xab\x99\xab\x9a\xab\x9b\xab\x9c\xab\x9d\xab\x9e\xab\x9f\xab\xa0\xab\xa1\xab\xa2\xab\xa3\xab\xa4\xab\xa5\xab\xa6\xab\xa7\xab\xa8\xab\xa9\xab\xaa\xab\xab\xab\xac\xab\xad\xab\xae\xab\xaf\xab\xb0\xab\xb1\xab\xb2\xab\xb3\xab\xb4\xab\xb5\xab\xb6\x6a\xea\xab\xb7\xab\xb8\xab\xb9\xab\xba\xab\xbb\xab\xbc\xab\xbd\x6a\xeb\xab\xbe\xab\xbf\xab\xc0\xab\xc1\xab\xc2\xab\xc3\xab\xc4\xab\xc5\xab\xc6\xab\xc7\xab\xc8\xab\xc9\xab\xca\xab\xcb\xab\xcc\xab\xcd\xab\xce\xab\xcf\xab\xd0\xab\xd1\xab\xd2\xab\xd3\xab\xd4\xab\xd5\xab\xd6\xab\xd7\xab\xd8\xab\xd9\xab\xda\xab\xdb\xab\xdc\xab\xdd\xab\xde\xab\xdf\xab\xe0\xab\xe1\xab\xe2\xab\xe3\xab\xe4\xab\xe5\xab\xe6\xab\xe7\xab\xe8\xab\xe9\xab\xea\xab\xeb\xab\xec\xab\xed\xab\xee\xab\xef\xab\xf0\xab\xf1\xab\xf2\xab\xf3\xab\xf4\xab\xf5\xab\xf6\xab\xf7\xab\xf8\xab\xf9\xab\xfa\xab\xfb\xab\xfc\xab\xfd\xac\x41\xac\x42\xac\x43\xac\x44\xac\x45\xac\x46\xac\x47\xac\x48\xac\x49\xac\x4a\xac\x4b\xac\x4c\xac\x4d\xac\x4e\xac\x4f\xac\x50\xac\x51", /* 7e00 */ "\xac\x52\xac\x53\xac\x54\xac\x55\xac\x56\xac\x57\xac\x58\xac\x59\xac\x5a\xac\x5b\xac\x5c\xac\x5d\xac\x5e\xac\x5f\xac\x60\xac\x61\xac\x62\xac\x63\xac\x64\xac\x65\xac\x66\xac\x67\xac\x68\xac\x69\xac\x6a\xac\x6b\xac\x6c\xac\x6d\xac\x6e\xac\x6f\xac\x70\xac\x71\xac\x72\xac\x73\xac\x74\xac\x75\xac\x76\xac\x77\xac\x78\xac\x79\xac\x7a\xac\x7b\xac\x7c\xac\x7d\xac\x7e\xac\x7f\xac\x81\xac\x82\xac\x83\xac\x84\xac\x85\xac\x86\xac\x87\xac\x88\xac\x89\xac\x8a\xac\x8b\xac\x8c\xac\x8d\x6c\x84\xac\x8e\xac\x8f\xac\x90\xac\x91\xac\x92\x4c\x51\xac\x93\xac\x94\xac\x95\xac\x96\xac\x97\x6a\xec\xac\x98\xac\x99\xac\x9a\xac\x9b\xac\x9c\xac\x9d\xac\x9e\xac\x9f\xac\xa0\xac\xa1\xac\xa2\xac\xa3\xac\xa4\xac\xa5\xac\xa6\xac\xa7\xac\xa8\xac\xa9\xac\xaa\xac\xab\xac\xac\xac\xad\xac\xae\xac\xaf\xac\xb0\xac\xb1\xac\xb2\xac\xb3\xac\xb4\xac\xb5\xac\xb6\xac\xb7\xac\xb8\xac\xb9\xac\xba\xac\xbb\xac\xbc\xac\xbd\xac\xbe\xac\xbf\xac\xc0\xac\xc1\xac\xc2\xac\xc3\xac\xc4\xac\xc5\xac\xc6\xac\xc7\xac\xc8\xac\xc9\xac\xca\xac\xcb\xac\xcc\xac\xcd\xac\xce\xac\xcf", /* 7e80 */ "\xac\xd0\xac\xd1\x5c\x8c\xac\xd2\xac\xd3\xac\xd4\xac\xd5\xac\xd6\xac\xd7\xac\xd8\xac\xd9\xac\xda\xac\xdb\xac\xdc\xac\xdd\xac\xde\xac\xdf\xac\xe0\xac\xe1\xac\xe2\xac\xe3\xac\xe4\xac\xe5\xac\xe6\xac\xe7\xac\xe8\xac\xe9\x6a\xed\xac\xea\xac\xeb\xac\xec\x63\xf8\x4f\xbf\x63\xf9\x4d\xeb\x63\xfa\x58\x6b\x63\xfb\x5a\xbb\x4e\xb5\x63\xfc\x63\xfd\x4e\xcc\x54\xd1\x57\xb2\x64\x41\xac\xed\x4a\xbe\x64\x42\x55\x54\x4c\xd8\x52\xc8\xac\xee\x5c\x7d\x51\xd9\x4c\x77\x5b\xbc\x57\xc5\x4c\x64\xac\xef\xac\xf0\x53\x46\x64\x43\x58\x7f\x64\x44\x64\x45\x64\x46\x51\x57\x5c\x8a\x55\x91\x58\x58\x5b\xae\x5b\xd4\x64\x47\x48\xec\x64\x48\x64\x49\x55\x7c\x59\xee\x4f\xac\x64\x4a\x48\xf2\x54\xdd\x4f\x82\x64\x4b\x54\xc5\xac\xf1\x64\x4c\x4e\x87\x4c\xf7\x59\x44\x64\x4d\x51\xe6\x4f\xf7\x4f\x6a\x57\x53\x64\x4e\x64\x4f\x4f\xed\x58\xe4\xac\xf2\x56\x88\x56\xcf\x4e\xcb\x64\x50\x4e\xa7\x58\xf6\x64\x51\xac\xf3\x58\xf7\x64\x52\x64\x53\x4a\xc1\x64\x54\x64\x55\x55\x9f\x57\xab\x52\x81\x64\x57\x49\x61\x4a\x92\xac\xf4\x64\x58\x64\x59\x5c\x7b\x5b\x60\x64\x5a\x51\xcb", /* 7f00 */ "\x5c\x5a\x64\x5b\x64\x5c\x64\x5d\x4e\xe9\x52\x86\x50\xc1\x64\x5e\x64\x5f\x4e\xa8\xac\xf5\x64\x60\x64\x61\x64\x56\x4b\xcf\x64\x62\xac\xf6\x64\x63\x64\x64\x4e\x5a\x4b\x7e\x51\xc5\x49\x81\x64\x65\x5a\xb4\x64\x66\x4c\xbe\x64\x68\x64\x67\x4c\x8d\xac\xf7\x64\x69\x49\xf7\x64\x6a\x64\x6b\x64\x6c\x64\x6d\x64\x6e\x64\x6f\x64\x70\x5a\x47\x56\x96\x64\x71\x64\x72\x64\x73\x64\x74\x55\x69\x64\x75\x64\x76\x64\x77\x64\x78\x64\x79\x4f\x69\x64\x7a\x6a\x5e\xac\xf8\x4c\xd6\xac\xf9\x54\xb0\xac\xfa\xac\xfb\xac\xfc\xac\xfd\xad\x41\xad\x42\xad\x43\x6a\x5f\xad\x44\x6a\x60\x6a\x61\xad\x45\xad\x46\xad\x47\xad\x48\xad\x49\xad\x4a\xad\x4b\xad\x4c\xad\x4d\xad\x4e\x4d\x7e\x57\x99\xad\x4f\xad\x50\x5c\xe7\x4d\xb0\xad\x51\x51\xdd\x67\xb6\xad\x52\x4c\x43\xad\x53\xad\x54\xad\x55\xad\x56\x67\xb8\xad\x57\x67\xb7\x48\xd4\xad\x58\xad\x59\xad\x5a\xad\x5b\xad\x5c\x67\xba\x5b\x76\x5c\x90\xad\x5d\xad\x5e\xad\x5f\x5b\xc2\xad\x60\xad\x61\x67\xbc\x55\xef\xad\x62\x67\xbb\xad\x63\xad\x64\xad\x65\xad\x66\x67\xbd\xad\x67\xad\x68\xad\x69\xad\x6a\x67\xbf\xad\x6b", /* 7f80 */ "\xad\x6c\x67\xbe\xad\x6d\xad\x6e\xad\x6f\xad\x70\xad\x71\xad\x72\xad\x73\xad\x74\x59\x93\xad\x75\x54\x5c\xad\x76\x52\x60\xad\x77\xad\x78\xad\x79\xad\x7a\xad\x7b\x4c\xe0\xad\x7c\xad\x7d\xad\x7e\xad\x7f\xad\x81\x51\x88\xad\x82\xad\x83\x6a\xc5\x58\xde\x6a\xc6\xad\x84\x58\x7b\xad\x85\xad\x86\x54\xb9\xad\x87\xad\x88\x6a\xc7\xad\x89\xad\x8a\xad\x8b\xad\x8c\xad\x8d\xad\x8e\xad\x8f\x6a\xc8\x6a\xc9\xad\x90\x6a\xca\xad\x91\xad\x92\xad\x93\xad\x94\xad\x95\x5d\x9b\x4c\xfd\xad\x96\xad\x97\x63\x92\x5a\x91\xad\x98\x6a\xdf\xad\x99\x57\xcb\xad\x9a\xad\x9b\xad\x9c\x4a\x82\xad\x9d\xad\x9e\xad\x9f\xad\xa0\x69\x54\xad\xa1\x59\xed\xad\xa2\x6a\xe0\xad\xa3\xad\xa4\xad\xa5\xad\xa6\xad\xa7\x58\x89\x6a\xe1\xad\xa8\xad\xa9\x54\x6c\xad\xaa\xad\xab\xad\xac\xad\xad\xad\xae\xad\xaf\x4b\x74\x4a\xe3\x6a\xe3\xad\xb0\xad\xb1\xad\xb2\x6a\xe2\x6a\xe4\xad\xb3\xad\xb4\x6a\xe5\xad\xb5\xad\xb6\xad\xb7\xad\xb8\x6a\xe6\xad\xb9\x4d\xb1\x48\xbe\xad\xba\x6a\xe7\xad\xbb\xad\xbc\xad\xbd\xad\xbe\xad\xbf\xad\xc0\xad\xc1\x4c\x4d\x59\xec\xad\xc2\xad\xc3\xad\xc4", /* 8000 */ "\x59\xaa\x50\xce\xad\xc5\x50\x5c\x66\x43\x5b\x7f\x65\xc7\xad\xc6\xad\xc7\xad\xc8\xad\xc9\x69\x94\x4b\xf7\x56\x43\xad\xca\xad\xcb\x52\xcc\xad\xcc\x69\x88\xad\xcd\x69\x89\x4c\xfa\x69\x8a\x4d\xc3\x5a\xc4\x48\xd1\xad\xce\xad\xcf\x69\x8b\xad\xd0\xad\xd1\xad\xd2\x69\x8c\xad\xd3\x69\x8d\xad\xd4\xad\xd5\x69\x8e\x69\x8f\x69\x90\x69\x92\x69\x91\x53\x75\xad\xd6\xad\xd7\xad\xd8\xad\xd9\xad\xda\xad\xdb\x69\x93\xad\xdc\x4b\xf9\xad\xdd\x69\x95\x59\xad\x5f\xc6\x56\x6a\xad\xde\xad\xdf\x4a\x7c\xad\xe0\x4b\x42\xad\xe1\x4d\x42\xad\xe2\xad\xe3\x52\xf3\x69\x96\xad\xe4\xad\xe5\x69\x97\xad\xe6\xad\xe7\xad\xe8\x51\x64\x51\x9c\x5b\xaf\x69\x98\xad\xe9\xad\xea\xad\xeb\xad\xec\x69\x99\xad\xed\x51\x4a\xad\xee\xad\xef\xad\xf0\x53\xb7\xad\xf1\x4f\xda\xad\xf2\xad\xf3\xad\xf4\xad\xf5\xad\xf6\xad\xf7\xad\xf8\xad\xf9\xad\xfa\xad\xfb\xad\xfc\xad\xfd\xae\x41\xae\x42\x69\x9a\x4a\xce\xae\x43\xae\x44\xae\x45\xae\x46\xae\x47\xae\x48\x69\x9b\xae\x49\xae\x4a\xae\x4b\xae\x4c\xae\x4d\xae\x4e\xae\x4f\xae\x50\xae\x51\xae\x52\xae\x53\xae\x54\xae\x55\x67\x52", /* 8080 */ "\x67\x51\xae\x56\xae\x57\x56\x81\x59\xdd\xae\x58\x56\x61\x5b\x78\xae\x59\x54\xe1\xae\x5a\x50\xde\x4e\xa0\xae\x5b\xae\x5c\xae\x5d\xae\x5e\xae\x5f\xae\x60\x66\x61\xae\x61\xae\x62\x58\xa3\xae\x63\x5b\xe1\xae\x64\x4b\xc6\x4c\xd7\x66\x60\x4c\xcd\xae\x65\x66\x5f\x4a\x46\x4d\x69\x5b\xaa\xae\x66\x4c\x95\x4c\x6a\xae\x67\xae\x68\xae\x69\x4e\xe6\x4c\x5e\x66\x66\xae\x6a\x66\x67\x48\xb8\x50\x6f\xae\x6b\x66\x65\x5a\x9e\xae\x6c\x66\x68\xae\x6d\xae\x6e\x66\x69\xae\x6f\xae\x70\x4c\x6e\xae\x71\x66\x62\x66\x64\x55\x97\x5b\xd6\x5b\x6d\x58\xb1\x66\x6f\x57\xb7\x66\x70\xae\x72\x4b\x48\xae\x73\xae\x74\xae\x75\xae\x76\xae\x77\x49\x53\x66\x72\x56\xa4\xae\x78\xae\x79\xae\x7a\xae\x7b\xae\x7c\xae\x7d\xae\x7e\x53\x76\x66\x73\xae\x7f\x66\x71\x53\x7f\x66\x6e\x55\xa3\x66\x75\x48\xfa\xae\x81\xae\x82\x4d\xf9\xae\x83\xae\x84\x5c\xb6\x69\x84\xae\x85\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x76\x63\xbf\x66\x79\xae\x86\x50\x89\x59\xc7\x66\x77\x66\x7c\x4c\xeb\x66\x78\xae\x87\x4f\x5a\xae\x88\x58\xd7\xae\x89\x48\xb6\xae\x8a\x66\x7d\x52\xdb\xae\x8b\xae\x8c", /* 8100 */ "\xae\x8d\xae\x8e\x5b\xab\xae\x8f\xae\x90\xae\x91\x4a\xdf\xae\x92\xae\x93\x51\xf5\x4e\xb8\xae\x94\xae\x95\x66\x7a\x66\x7b\x5a\xdf\x53\xe9\x52\xd3\x66\x7f\x53\x47\x5d\x96\xae\x96\x49\xb0\xae\x97\x66\x85\xae\x98\x4f\x65\xae\x99\xae\x9a\xae\x9b\x66\x83\xae\x9c\xae\x9d\xae\x9e\xae\x9f\xae\xa0\xae\xa1\xae\xa2\xae\xa3\xae\xa4\xae\xa5\xae\xa6\xae\xa7\xae\xa8\x66\x84\xae\xa9\xae\xaa\x4c\xab\xae\xab\x57\x71\x66\x86\xae\xac\xae\xad\xae\xae\x66\x82\xae\xaf\x51\x53\xae\xb0\xae\xb1\xae\xb2\xae\xb3\xae\xb4\x53\xa1\xae\xb5\xae\xb6\xae\xb7\xae\xb8\xae\xb9\xae\xba\xae\xbb\x56\xf2\xae\xbc\x66\x87\xae\xbd\x50\xaf\x59\xb7\x66\x88\xae\xbe\xae\xbf\xae\xc0\x4c\xae\x4c\xac\xae\xc1\x66\x89\x54\x5b\x57\x94\xae\xc2\xae\xc3\xae\xc4\x66\x8b\x66\x8c\xae\xc5\xae\xc6\xae\xc7\xae\xc8\xae\xc9\x66\x8e\xae\xca\xae\xcb\xae\xcc\xae\xcd\x58\xc7\xae\xce\x66\x93\xae\xcf\x66\x8f\xae\xd0\xae\xd1\xae\xd2\x66\x92\x54\xf8\xae\xd3\x59\x9d\x66\x8d\xae\xd4\xae\xd5\x66\x8a\xae\xd6\xae\xd7\xae\xd8\xae\xd9\x4c\xb8\x58\x79\x52\xe4\x66\x90\x66\x91\x56\xd9\x57\x68", /* 8180 */ "\x48\xf1\xae\xda\x66\x97\xae\xdb\xae\xdc\xae\xdd\xae\xde\xae\xdf\x66\x96\xae\xe0\x49\xb1\xae\xe1\xae\xe2\xae\xe3\xae\xe4\x4c\xdf\xae\xe5\x66\x98\xae\xe6\xae\xe7\xae\xe8\xae\xe9\xae\xea\xae\xeb\x49\x8d\xae\xec\xae\xed\x56\xc4\x52\xa3\x58\x45\xae\xee\xae\xef\xae\xf0\xae\xf1\xae\xf2\x66\x9a\xae\xf3\xae\xf4\x66\xa1\xae\xf5\x53\x93\xae\xf6\x66\x9b\xae\xf7\xae\xf8\xae\xf9\xae\xfa\xae\xfb\xae\xfc\xae\xfd\xaf\x41\x55\x65\xaf\x42\xaf\x43\xaf\x44\xaf\x45\xaf\x46\xaf\x47\x61\xde\x66\x9f\xaf\x48\xaf\x49\xaf\x4a\xaf\x4b\x57\x6e\x66\xa0\x49\x7b\x5a\x57\xaf\x4c\xaf\x4d\x59\xdb\xaf\x4e\xaf\x4f\xaf\x50\x66\x9e\xaf\x51\x66\x9c\xaf\x52\xaf\x53\xaf\x54\xaf\x55\xaf\x56\xaf\x57\xaf\x58\xaf\x59\xaf\x5a\xaf\x5b\xaf\x5c\xaf\x5d\xaf\x5e\xaf\x5f\xaf\x60\xaf\x61\xaf\x62\xaf\x63\xaf\x64\xaf\x65\xaf\x66\xaf\x67\x4a\x5c\xaf\x68\xaf\x69\xaf\x6a\x65\xaf\xaf\x6b\xaf\x6c\x5c\x74\xaf\x6d\x6a\xaa\x4a\x95\xaf\x6e\xaf\x6f\xaf\x70\xaf\x71\xaf\x72\x5b\xc0\x5b\xc1\xaf\x73\xaf\x74\xaf\x75\xaf\x76\xaf\x77\xaf\x78\x5b\x8a\x4f\xc9\xaf\x79\x6a\xa6\xaf\x7a", /* 8200 */ "\x59\xa7\x6a\xa7\x6a\xa8\xaf\x7b\x6a\xa9\x4f\xca\x5a\x7f\xaf\x7c\xaf\x7d\xaf\x7e\xaf\x7f\xaf\x81\x55\x81\x55\x82\xaf\x82\xaf\x83\x6a\x62\xaf\x84\x55\xe5\xaf\x85\x56\xf1\xaf\x86\xaf\x87\xaf\x88\xaf\x89\xaf\x8a\xaf\x8b\x61\xb5\x56\x54\xaf\x8c\x57\xe7\x5b\xda\xaf\x8d\x6a\xac\x6a\xad\x6a\xae\xaf\x8e\xaf\x8f\xaf\x90\xaf\x91\x6a\xb1\xaf\x92\x4d\xbc\x6a\xb2\x48\xe2\x6a\xaf\xaf\x93\x6a\xb0\x4f\x42\x49\xd4\xaf\x94\x6a\xb5\x6a\xb6\x4b\xe5\x49\xaf\x58\x6f\x6a\xb3\x4a\xab\xaf\x95\x6a\xb4\xaf\x96\xaf\x97\x6a\xb7\xaf\x98\xaf\x99\xaf\x9a\xaf\x9b\xaf\x9c\x6a\xb8\xaf\x9d\xaf\x9e\x57\x47\xaf\x9f\x6a\xb9\xaf\xa0\x6a\xba\xaf\xa1\xaf\xa2\xaf\xa3\x6a\xbb\xaf\xa4\xaf\xa5\xaf\xa6\xaf\xa7\xaf\xa8\xaf\xa9\xaf\xaa\xaf\xab\x56\x72\xaf\xac\x6a\xbc\xaf\xad\xaf\xae\xaf\xaf\xaf\xb0\x6a\xbd\xaf\xb1\xaf\xb2\xaf\xb3\xaf\xb4\xaf\xb5\xaf\xb6\xaf\xb7\xaf\xb8\x6a\xbe\xaf\xb9\xaf\xba\xaf\xbb\xaf\xbc\xaf\xbd\x6a\xdd\x51\x5c\x4e\xe7\xaf\xbe\x55\x4b\x59\x7e\x63\x96\xaf\xbf\xaf\xc0\xaf\xc1\xaf\xc2\x5e\xb2\x59\xd4\xaf\xc3\xaf\xc4\x5e\xb3\x48\xab\x5e\xb4", /* 8280 */ "\xaf\xc5\xaf\xc6\x4f\x7a\xaf\xc7\x5e\xb8\xaf\xc8\xaf\xc9\xaf\xca\x5c\xc1\xaf\xcb\x5e\xb6\x5a\x94\xaf\xcc\x55\x76\x5e\xb9\x5e\xb5\xaf\xcd\x5e\xba\x52\x42\xaf\xce\xaf\xcf\xaf\xd0\xaf\xd1\x5e\xbb\x5e\xc4\x5e\xbc\xaf\xd2\xaf\xd3\x57\xde\x5b\xa4\xaf\xd4\x5e\xce\xaf\xd5\x5e\xcc\xaf\xd6\xaf\xd7\x5e\xd1\x4f\x87\x51\xaa\xaf\xd8\x5e\xb7\x5e\xca\x5e\xcd\x5e\xbd\x4c\x72\x48\xc4\x5e\xc6\x58\xbd\x5e\xc0\x4e\x48\xaf\xd9\x4c\x5c\x5e\xcb\xaf\xda\xaf\xdb\x5e\xc5\x5e\xbe\x54\x7b\xaf\xdc\xaf\xdd\xaf\xde\x59\x5f\x5e\xbf\xaf\xdf\xaf\xe0\x5e\xc9\xaf\xe1\xaf\xe2\x5e\xcf\xaf\xe3\xaf\xe4\x57\xac\x5e\xc1\xaf\xe5\x5e\xc2\x5e\xc7\x5e\xc8\x49\xd3\x5e\xd0\x56\x75\xaf\xe6\x5a\xb6\x5e\xda\x5e\xde\x56\xa5\x5e\xe5\xaf\xe7\x52\x88\x5e\xdb\xaf\xe8\xaf\xe9\x50\x61\x5e\xd8\xaf\xea\x48\xf9\x4d\x56\x5e\xe4\x5e\xd2\xaf\xeb\x5e\xc3\x5e\xd5\x54\xf3\x50\x81\xaf\xec\xaf\xed\xaf\xee\xaf\xef\x55\x5b\xaf\xf0\xaf\xf1\xaf\xf2\x49\x5d\xaf\xf3\x5a\x42\xaf\xf4\xaf\xf5\x5e\xd9\xaf\xf6\xaf\xf7\x5e\xd4\xaf\xf8\x53\xba\xaf\xf9\x5e\xdd\xaf\xfa\xaf\xfb\xaf\xfc\xaf\xfd", /* 8300 */ "\xb0\x41\x5c\x62\x52\x4f\x4c\x56\x54\x71\x52\x49\x5e\xe1\x5e\xd7\x5e\xea\x5e\xd3\xb0\x42\xb0\x43\x5e\xdc\xb0\x44\x4f\xa4\x5e\xd6\xb0\x45\x5e\xdf\xb0\x46\xb0\x47\x5e\xe2\x5e\xe3\xb0\x48\x5e\xf7\xb0\x49\xb0\x4a\x5e\xe0\x5f\x42\x5e\xe6\xb0\x4b\xb0\x4c\xb0\x4d\xb0\x4e\xb0\x4f\xb0\x50\xb0\x51\xb0\x52\xb0\x53\xb0\x54\x4e\xea\x4a\xc3\xb0\x55\xb0\x56\x52\x43\x49\xe6\x5e\xf9\xb0\x57\x5e\xf1\xb0\x58\x5e\xee\xb0\x59\x5e\xfb\x5e\xed\x59\xef\x49\xe7\xb0\x5a\x54\xd6\x54\xe2\x5e\xfa\xb0\x5b\x5e\xec\xb0\x5c\xb0\x5d\xb0\x5e\x5e\xf6\xb0\x5f\xb0\x60\x5e\xf4\xb0\x61\xb0\x62\x4f\xa2\x5e\xf3\xb0\x63\x49\xdc\xb0\x64\xb0\x65\xb0\x66\xb0\x67\xb0\x68\x5e\xf2\x4e\xf5\x5e\xe7\x4e\x64\xb0\x69\x50\xf2\xb0\x6a\xb0\x6b\xb0\x6c\xb0\x6d\xb0\x6e\x4e\xd3\x5e\xe8\x5e\xe9\xb0\x6f\x5e\xf0\x5e\xf5\x5e\xf8\x4b\x54\xb0\x70\x54\xd8\x4e\x88\x5e\xfd\x5e\xfc\x5a\x4b\x5f\x41\x5f\x43\x5f\x45\x59\xf0\x5f\x44\x5f\x46\x5f\x47\x59\xa8\xb0\x71\xb0\x72\xb0\x73\xb0\x74\xb0\x75\xb0\x76\xb0\x77\x4d\xc8\x5f\x49\xb0\x78\xb0\x79\x5f\x56\x5f\x51\x5f\x54\xb0\x7a\xb0\x7b", /* 8380 */ "\xb0\x7c\xb0\x7d\xb0\x7e\xb0\x7f\xb0\x81\x5f\x50\x53\xcd\xb0\x82\xb0\x83\x50\xf1\xb0\x84\xb0\x85\xb0\x86\xb0\x87\x55\x4f\xb0\x88\xb0\x89\xb0\x8a\x5e\xeb\x5f\x4e\xb0\x8b\xb0\x8c\xb0\x8d\xb0\x8e\x5f\x57\xb0\x8f\xb0\x90\x5e\xef\x5f\x4f\xb0\x91\x5f\x58\xb0\x92\x5f\x4c\xb0\x93\xb0\x94\xb0\x95\xb0\x96\xb0\x97\xb0\x98\xb0\x99\x5f\x59\x5f\x53\x5f\x4d\x52\xa9\xb0\x9a\xb0\x9b\xb0\x9c\xb0\x9d\x5f\x48\x50\xb2\x51\x4b\x5f\x4a\x5f\x4b\xb0\x9e\x5f\x52\x4e\x92\x5f\x55\x5a\x48\x5f\x5a\xb0\x9f\x5f\x5b\x52\x47\xb0\xa0\xb0\xa1\x5f\x72\x5f\x5c\xb0\xa2\xb0\xa3\xb0\xa4\x5f\x71\xb0\xa5\x4d\x5d\xb0\xa6\xb0\xa7\x4f\xd4\xb0\xa8\x4f\xf9\xb0\xa9\xb0\xaa\x4d\xc9\xb0\xab\xb0\xac\xb0\xad\xb0\xae\x5f\x6a\xb0\xaf\x5f\x65\xb0\xb0\x5f\x5f\xb0\xb1\xb0\xb2\xb0\xb3\x49\xca\x5f\x63\xb0\xb4\x5f\x6b\x49\xa3\x5f\x75\xb0\xb5\xb0\xb6\xb0\xb7\x5f\x5e\xb0\xb8\xb0\xb9\xb0\xba\x53\xcf\x5f\x70\xb0\xbb\xb0\xbc\xb0\xbd\xb0\xbe\xb0\xbf\x5f\x74\x51\x83\x4c\x66\xb0\xc0\xb0\xc1\xb0\xc2\xb0\xc3\xb0\xc4\x5f\x6e\x5f\x6f\xb0\xc5\xb0\xc6\xb0\xc7\x5f\x64\xb0\xc8\xb0\xc9", /* 8400 */ "\xb0\xca\x5f\x5d\xb0\xcb\x5f\x6d\x56\xd0\xb0\xcc\x5f\x69\xb0\xcd\xb0\xce\xb0\xcf\xb0\xd0\x5f\x62\x52\x68\x53\xbb\x57\xad\x5f\x6c\xb0\xd1\x5f\x68\xb0\xd2\xb0\xd3\xb0\xd4\xb0\xd5\xb0\xd6\xb0\xd7\x5f\x61\xb0\xd8\xb0\xd9\xb0\xda\x5f\x66\x51\xdb\xb0\xdb\xb0\xdc\xb0\xdd\xb0\xde\xb0\xdf\xb0\xe0\x5a\x49\x5a\x4a\x5f\x73\x58\x95\x54\xf7\xb0\xe1\xb0\xe2\xb0\xe3\xb0\xe4\xb0\xe5\xb0\xe6\xb0\xe7\xb0\xe8\x5f\x87\xb0\xe9\xb0\xea\xb0\xeb\xb0\xec\xb0\xed\xb0\xee\x5f\x67\xb0\xef\xb0\xf0\xb0\xf1\x5f\x81\x51\xe3\xb0\xf2\xb0\xf3\xb0\xf4\xb0\xf5\xb0\xf6\xb0\xf7\xb0\xf8\xb0\xf9\x5f\x82\xb0\xfa\xb0\xfb\xb0\xfc\xb0\xfd\xb1\x41\xb1\x42\xb1\x43\xb1\x44\xb1\x45\xb1\x46\x5f\x77\xb1\x47\xb1\x48\xb1\x49\xb1\x4a\xb1\x4b\x5b\xf7\xb1\x4c\x5f\x79\x5f\x78\x4c\xef\x5f\x76\xb1\x4d\xb1\x4e\xb1\x4f\xb1\x50\x53\xce\xb1\x51\x4b\xac\xb1\x52\xb1\x53\xb1\x54\xb1\x55\xb1\x56\x5f\x83\xb1\x57\x4d\xf8\x5a\xe0\x5f\x88\xb1\x58\xb1\x59\xb1\x5a\x4a\xcf\xb1\x5b\x5f\x7a\xb1\x5c\x50\x9c\x5f\x84\xb1\x5d\x5f\x7f\xb1\x5e\x5f\x7d\xb1\x5f\xb1\x60\xb1\x61\xb1\x62\xb1\x63", /* 8480 */ "\xb1\x64\xb1\x65\x4b\x79\xb1\x66\xb1\x67\xb1\x68\xb1\x69\x5f\x7b\x5f\x7c\x5f\x7e\xb1\x6a\x4f\x4f\x5f\x85\xb1\x6b\x5f\x86\xb1\x6c\xb1\x6d\xb1\x6e\xb1\x6f\xb1\x70\xb1\x71\xb1\x72\xb1\x73\x5f\x96\xb1\x74\x52\x69\xb1\x75\xb1\x76\x56\x83\xb1\x77\xb1\x78\xb1\x79\xb1\x7a\x5f\x93\xb1\x7b\xb1\x7c\xb1\x7d\xb1\x7e\xb1\x7f\xb1\x81\xb1\x82\xb1\x83\xb1\x84\xb1\x85\xb1\x86\xb1\x87\xb1\x88\x5c\xe0\xb1\x89\xb1\x8a\x53\xd0\xb1\x8b\x5f\x95\xb1\x8c\xb1\x8d\xb1\x8e\x5b\x95\x5f\x94\x5f\x91\xb1\x8f\xb1\x90\x5f\x8d\xb1\x91\x5f\x90\xb1\x92\x5f\x89\xb1\x93\xb1\x94\x58\xed\xb1\x95\xb1\x96\xb1\x97\xb1\x98\x54\xd7\x5f\x8f\xb1\x99\xb1\x9a\x5f\x8a\xb1\x9b\xb1\x9c\x5f\x8b\x56\x93\xb1\x9d\x5f\x8e\xb1\x9e\xb1\x9f\x49\x6d\xb1\xa0\xb1\xa1\xb1\xa2\xb1\xa3\xb1\xa4\xb1\xa5\x50\xb5\xb1\xa6\x4e\xba\x5f\x92\xb1\xa7\xb1\xa8\x5f\x98\xb1\xa9\x5f\x97\x5f\x8c\xb1\xaa\xb1\xab\xb1\xac\xb1\xad\xb1\xae\x53\x8f\xb1\xaf\xb1\xb0\xb1\xb1\x5f\x9c\xb1\xb2\xb1\xb3\xb1\xb4\xb1\xb5\xb1\xb6\xb1\xb7\xb1\xb8\xb1\xb9\xb1\xba\xb1\xbb\xb1\xbc\x5f\xa3\xb1\xbd\xb1\xbe\x5f\xa2", /* 8500 */ "\xb1\xbf\xb1\xc0\xb1\xc1\xb1\xc2\xb1\xc3\xb1\xc4\xb1\xc5\xb1\xc6\xb1\xc7\xb1\xc8\xb1\xc9\xb1\xca\x5f\x99\xb1\xcb\xb1\xcc\xb1\xcd\xb1\xce\x52\x90\xb1\xcf\x51\xfa\xb1\xd0\xb1\xd1\xb1\xd2\x5b\x82\xb1\xd3\xb1\xd4\x57\xb4\xb1\xd5\xb1\xd6\xb1\xd7\xb1\xd8\x5f\x9e\xb1\xd9\x49\xcb\xb1\xda\xb1\xdb\xb1\xdc\xb1\xdd\xb1\xde\xb1\xdf\xb1\xe0\xb1\xe1\xb1\xe2\x52\xe7\x55\xde\xb1\xe3\xb1\xe4\xb1\xe5\xb1\xe6\xb1\xe7\xb1\xe8\xb1\xe9\xb1\xea\xb1\xeb\xb1\xec\x54\x5e\x5f\x9b\x5f\x9d\x5f\x9f\x5f\xa1\x48\xa9\x49\x6e\xb1\xed\xb1\xee\xb1\xef\xb1\xf0\xb1\xf1\x5f\xab\xb1\xf2\xb1\xf3\xb1\xf4\xb1\xf5\x5f\xa5\x4f\x56\x54\xee\xb1\xf6\xb1\xf7\xb1\xf8\xb1\xf9\xb1\xfa\xb1\xfb\xb1\xfc\xb1\xfd\xb2\x41\xb2\x42\xb2\x43\x5f\xa0\xb2\x44\xb2\x45\x5f\xa4\xb2\x46\xb2\x47\xb2\x48\xb2\x49\x5f\xa8\xb2\x4a\xb2\x4b\xb2\x4c\xb2\x4d\xb2\x4e\x5f\xa7\xb2\x4f\xb2\x50\xb2\x51\x5f\xa6\xb2\x52\xb2\x53\xb2\x54\xb2\x55\xb2\x56\xb2\x57\xb2\x58\xb2\x59\xb2\x5a\x5f\xac\xb2\x5b\x5a\xcb\xb2\x5c\xb2\x5d\xb2\x5e\xb2\x5f\x5f\xb2\x5f\xa9\x5f\xad\xb2\x60\xb2\x61\x50\xd8\xb2\x62", /* 8580 */ "\xb2\x63\xb2\x64\xb2\x65\xb2\x66\x49\x41\x5f\xb5\xb2\x67\x5f\xb0\xb2\x68\xb2\x69\xb2\x6a\xb2\x6b\xb2\x6c\xb2\x6d\xb2\x6e\x5f\xb1\xb2\x6f\xb2\x70\xb2\x71\xb2\x72\xb2\x73\xb2\x74\xb2\x75\xb2\x76\xb2\x77\xb2\x78\xb2\x79\x59\x46\x5f\xb4\xb2\x7a\xb2\x7b\xb2\x7c\xb2\x7d\xb2\x7e\xb2\x7f\xb2\x81\x5f\xae\xb2\x82\xb2\x83\xb2\x84\x5f\xaf\xb2\x85\x58\xbc\xb2\x86\xb2\x87\xb2\x88\x5f\xb3\x55\xec\x5f\xb8\xb2\x89\xb2\x8a\xb2\x8b\xb2\x8c\xb2\x8d\xb2\x8e\x5f\xb7\xb2\x8f\x5f\xb6\xb2\x90\xb2\x91\xb2\x92\xb2\x93\xb2\x94\xb2\x95\xb2\x96\x5f\xba\xb2\x97\xb2\x98\xb2\x99\xb2\x9a\xb2\x9b\xb2\x9c\xb2\x9d\x4f\x86\xb2\x9e\xb2\x9f\xb2\xa0\xb2\xa1\xb2\xa2\x49\xd7\x52\x8b\xb2\xa3\xb2\xa4\x5f\xb9\xb2\xa5\x53\x5a\xb2\xa6\xb2\xa7\xb2\xa8\xb2\xa9\xb2\xaa\xb2\xab\x5f\xbb\xb2\xac\xb2\xad\xb2\xae\xb2\xaf\xb2\xb0\xb2\xb1\xb2\xb2\x56\xd8\xb2\xb3\xb2\xb4\xb2\xb5\xb2\xb6\x4c\x4a\xb2\xb7\xb2\xb8\xb2\xb9\xb2\xba\xb2\xbb\xb2\xbc\xb2\xbd\xb2\xbe\xb2\xbf\xb2\xc0\xb2\xc1\xb2\xc2\xb2\xc3\xb2\xc4\xb2\xc5\xb2\xc6\xb2\xc7\x5a\xe4\xb2\xc8\xb2\xc9\xb2\xca\x5f\xbc", /* 8600 */ "\xb2\xcb\xb2\xcc\xb2\xcd\xb2\xce\xb2\xcf\x5f\xbe\xb2\xd0\xb2\xd1\xb2\xd2\xb2\xd3\xb2\xd4\xb2\xd5\xb2\xd6\xb2\xd7\xb2\xd8\xb2\xd9\xb2\xda\x52\xa1\xb2\xdb\xb2\xdc\xb2\xdd\xb2\xde\x5f\xc0\xb2\xdf\xb2\xe0\xb2\xe1\xb2\xe2\xb2\xe3\xb2\xe4\xb2\xe5\xb2\xe6\xb2\xe7\xb2\xe8\xb2\xe9\xb2\xea\xb2\xeb\xb2\xec\xb2\xed\xb2\xee\x5f\xbd\xb2\xef\x5f\xbf\xb2\xf0\xb2\xf1\xb2\xf2\xb2\xf3\xb2\xf4\xb2\xf5\xb2\xf6\xb2\xf7\xb2\xf8\xb2\xf9\xb2\xfa\xb2\xfb\xb2\xfc\xb2\xfd\x5b\x5a\xb3\x41\xb3\x42\xb3\x43\x5f\xc1\xb3\x44\xb3\x45\xb3\x46\xb3\x47\xb3\x48\xb3\x49\xb3\x4a\xb3\x4b\xb3\x4c\xb3\x4d\xb3\x4e\xb3\x4f\xb3\x50\xb3\x51\xb3\x52\xb3\x53\x69\xad\x4e\x42\x51\xb1\x53\x50\x51\xc6\xb3\x54\xb3\x55\x69\xae\xb3\x56\xb3\x57\xb3\x58\xb3\x59\xb3\x5a\x58\xe8\xb3\x5b\xb3\x5c\xb3\x5d\x5a\x7d\xb3\x5e\xb3\x5f\xb3\x60\x66\x5d\xb3\x61\xb3\x62\xb3\x63\xb3\x64\xb3\x65\xb3\x66\xb3\x67\xb3\x68\x4a\x87\x69\xaf\xb3\x69\x69\xb0\xb3\x6a\xb3\x6b\x55\xac\xb3\x6c\xb3\x6d\xb3\x6e\xb3\x6f\xb3\x70\xb3\x71\xb3\x72\x4d\xe6\x69\xb2\x69\xb4\x69\xb3\x56\x85\x58\x5a\x69\xb1", /* 8680 */ "\x55\xb3\x59\xce\x51\xeb\xb3\x73\xb3\x74\xb3\x75\xb3\x76\xb3\x77\xb3\x78\xb3\x79\x57\xc2\x69\xb7\x48\xf5\x69\xb6\xb3\x7a\xb3\x7b\xb3\x7c\xb3\x7d\xb3\x7e\x69\xbd\xb3\x7f\x49\xce\xb3\x81\xb3\x82\xb3\x83\xb3\x84\xb3\x85\xb3\x86\x59\x61\x69\xb9\xb3\x87\xb3\x88\xb3\x89\xb3\x8a\xb3\x8b\x69\xbb\x5a\xe8\xb3\x8c\xb3\x8d\x69\xba\x69\xb5\x69\xbe\x69\xbc\xb3\x8e\x69\xb8\xb3\x8f\xb3\x90\x69\xc6\x69\xc3\x69\xc5\xb3\x91\xb3\x92\x69\xc9\x69\xc1\x69\xbf\xb3\x93\xb3\x94\xb3\x95\x69\xc4\xb3\x96\xb3\x97\xb3\x98\xb3\x99\xb3\x9a\x5b\xfa\xb3\x9b\xb3\x9c\xb3\x9d\x69\xc0\xb3\x9e\x54\x9a\x55\x7f\xb3\x9f\x69\xc7\x4d\x66\x4b\x50\xb3\xa0\xb3\xa1\x69\xc2\x69\xc8\x69\xcf\x69\xd5\xb3\xa2\xb3\xa3\x4e\x77\xb3\xa4\xb3\xa5\xb3\xa6\x69\xd4\x57\x7c\xb3\xa7\x5b\xea\xb3\xa8\xb3\xa9\x69\xd1\x69\xd3\xb3\xaa\xb3\xab\xb3\xac\xb3\xad\x4c\xf1\xb3\xae\xb3\xaf\xb3\xb0\xb3\xb1\x69\xca\xb3\xb2\xb3\xb3\xb3\xb4\x69\xcd\x51\xf8\xb3\xb5\x5b\x7d\x69\xcb\x69\xcc\x69\xce\x69\xd2\xb3\xb6\xb3\xb7\xb3\xb8\x69\xd8\x5a\x5c\xb3\xb9\xb3\xba\xb3\xbb\xb3\xbc\x4b\xe9\xb3\xbd", /* 8700 */ "\x55\xf0\xb3\xbe\x4c\x85\x69\xd6\xb3\xbf\xb3\xc0\xb3\xc1\x69\xd7\x69\xd9\x69\xdc\x69\xda\xb3\xc2\xb3\xc3\x69\xdb\xb3\xc4\xb3\xc5\xb3\xc6\xb3\xc7\x59\x71\x69\xd0\xb3\xc8\x57\x69\xb3\xc9\x57\xce\x5b\xa8\xb3\xca\x69\xe2\xb3\xcb\x52\x7b\xb3\xcc\x69\xdf\xb3\xcd\xb3\xce\x50\xae\x69\xeb\x69\xdd\xb3\xcf\x69\xe0\xb3\xd0\xb3\xd1\xb3\xd2\x69\xe7\xb3\xd3\xb3\xd4\xb3\xd5\xb3\xd6\x69\xe1\xb3\xd7\xb3\xd8\x69\xe6\xb3\xd9\xb3\xda\x69\xe5\xb3\xdb\xb3\xdc\x69\xe8\xb3\xdd\xb3\xde\xb3\xdf\x69\xde\xb3\xe0\xb3\xe1\x69\xe3\x69\xe9\xb3\xe2\xb3\xe3\xb3\xe4\xb3\xe5\xb3\xe6\xb3\xe7\xb3\xe8\x5a\x4c\x69\xe4\x49\xf4\xb3\xe9\xb3\xea\x69\xf1\xb3\xeb\x58\xaa\xb3\xec\xb3\xed\xb3\xee\xb3\xef\x69\xf4\xb3\xf0\xb3\xf1\xb3\xf2\x4e\x68\xb3\xf3\x69\xf8\xb3\xf4\xb3\xf5\xb3\xf6\xb3\xf7\xb3\xf8\xb3\xf9\x69\xef\xb3\xfa\xb3\xfb\x69\xf5\x69\xf7\x69\xf9\xb3\xfc\xb3\xfd\xb4\x41\xb4\x42\xb4\x43\xb4\x44\xb4\x45\xb4\x46\x69\xf2\xb4\x47\x69\xf0\xb4\x48\xb4\x49\xb4\x4a\x4d\xfa\xb4\x4b\x4b\x9c\xb4\x4c\xb4\x4d\xb4\x4e\xb4\x4f\x69\xee\x69\xf6\x69\xec\x69\xed\xb4\x50", /* 8780 */ "\xb4\x51\xb4\x52\x69\xea\x6a\x46\xb4\x53\x6a\x43\xb4\x54\xb4\x55\x6a\x42\xb4\x56\xb4\x57\x69\xf3\xb4\x58\x54\xd9\xb4\x59\xb4\x5a\xb4\x5b\xb4\x5c\xb4\x5d\x69\xfa\xb4\x5e\xb4\x5f\xb4\x60\x6a\x45\xb4\x61\xb4\x62\xb4\x63\xb4\x64\xb4\x65\xb4\x66\xb4\x67\x52\x99\xb4\x68\xb4\x69\xb4\x6a\xb4\x6b\xb4\x6c\xb4\x6d\xb4\x6e\xb4\x6f\x69\xfc\xb4\x70\xb4\x71\x6a\x47\x6a\x49\x6a\x44\xb4\x72\x69\xfb\xb4\x73\xb4\x74\xb4\x75\x6a\x4b\xb4\x76\x6a\x4a\xb4\x77\xb4\x78\xb4\x79\xb4\x7a\x51\xdc\xb4\x7b\xb4\x7c\x6a\x4e\xb4\x7d\xb4\x7e\x6a\x50\xb4\x7f\xb4\x81\xb4\x82\xb4\x83\xb4\x84\x6a\x41\xb4\x85\xb4\x86\xb4\x87\x6a\x51\x6a\x4c\xb4\x88\xb4\x89\xb4\x8a\xb4\x8b\xb4\x8c\x6a\x4f\x69\xfd\x6a\x4d\xb4\x8d\xb4\x8e\xb4\x8f\xb4\x90\xb4\x91\xb4\x92\xb4\x93\x6a\x52\xb4\x94\xb4\x95\xb4\x96\xb4\x97\x6a\x54\xb4\x98\xb4\x99\xb4\x9a\xb4\x9b\x6a\x48\xb4\x9c\xb4\x9d\xb4\x9e\xb4\x9f\x6a\x53\xb4\xa0\xb4\xa1\xb4\xa2\x6a\x55\xb4\xa3\xb4\xa4\xb4\xa5\xb4\xa6\xb4\xa7\xb4\xa8\xb4\xa9\xb4\xaa\xb4\xab\xb4\xac\x58\xb6\xb4\xad\xb4\xae\xb4\xaf\xb4\xb0\x6a\x58\xb4\xb1", /* 8800 */ "\xb4\xb2\xb4\xb3\xb4\xb4\x5d\x9a\xb4\xb5\xb4\xb6\xb4\xb7\xb4\xb8\xb4\xb9\xb4\xba\x6a\x59\xb4\xbb\xb4\xbc\xb4\xbd\xb4\xbe\xb4\xbf\xb4\xc0\xb4\xc1\xb4\xc2\x6a\x57\xb4\xc3\x54\xe3\x6a\x56\xb4\xc4\xb4\xc5\xb4\xc6\xb4\xc7\x6a\x5a\xb4\xc8\xb4\xc9\xb4\xca\xb4\xcb\xb4\xcc\x6a\x5b\x4a\xbf\xb4\xcd\xb4\xce\xb4\xcf\xb4\xd0\xb4\xd1\xb4\xd2\xb4\xd3\xb4\xd4\xb4\xd5\xb4\xd6\xb4\xd7\xb4\xd8\xb4\xd9\xb4\xda\xb4\xdb\x67\xc2\xb4\xdc\xb4\xdd\xb4\xde\xb4\xdf\xb4\xe0\xb4\xe1\x6a\x5c\xb4\xe2\xb4\xe3\x6a\x5d\xb4\xe4\xb4\xe5\xb4\xe6\x59\x4a\xb4\xe7\xb4\xe8\xb4\xe9\x6a\xab\x58\xc5\xb4\xea\xb4\xeb\xb4\xec\xb4\xed\xb4\xee\xb4\xef\x58\xcf\x59\x7c\xb4\xf0\xb4\xf1\xb4\xf2\xb4\xf3\xb4\xf4\xb4\xf5\x58\x6e\xb4\xf6\xb4\xf7\x4f\x76\xb4\xf8\x59\x63\xb4\xf9\xb4\xfa\xb4\xfb\xb4\xfc\xb4\xfd\xb5\x41\xb5\x42\x4d\xe1\x61\x8a\x59\xc1\x69\x62\x49\xb8\xb5\x43\xb5\x44\x49\x8e\x69\x63\xb5\x45\x55\x60\x4a\x64\xb5\x46\x5d\x93\xb5\x47\x56\x45\xb5\x48\x69\x64\xb5\x49\xb5\x4a\xb5\x4b\xb5\x4c\x5b\xd3\xb5\x4d\xb5\x4e\xb5\x4f\xb5\x50\xb5\x51\x69\x65\x6a\xbf\x69\x66", /* 8880 */ "\xb5\x52\x5a\xab\x69\x67\xb5\x53\x48\xbf\x6a\xc0\xb5\x54\xb5\x55\x6a\xc1\xb5\x56\xb5\x57\x4a\xfb\xb5\x58\x53\x7b\xb5\x59\xb5\x5a\xb5\x5b\xb5\x5c\x56\xba\xb5\x5d\xb5\x5e\xb5\x5f\x58\xe3\xb5\x60\xb5\x61\xb5\x62\xb5\x63\xb5\x64\x57\x81\xb5\x65\xb5\x66\xb5\x67\xb5\x68\xb5\x69\x69\x68\xb5\x6a\x5d\x94\xb5\x6b\xb5\x6c\xb5\x6d\xb5\x6e\xb5\x6f\xb5\x70\x49\x5b\xb5\x71\x58\x4e\xb5\x72\xb5\x73\xb5\x74\x4c\xa3\xb5\x75\xb5\x76\xb5\x77\xb5\x78\xb5\x79\x69\x6a\xb5\x7a\xb5\x7b\xb5\x7c\xb5\x7d\x69\x6b\xb5\x7e\xb5\x7f\xb5\x81\xb5\x82\x49\xc2\x51\x71\xb5\x83\xb5\x84\x5c\x50\x69\x69\xb5\x85\xb5\x86\x69\x6c\xb5\x87\xb5\x88\xb5\x89\xb5\x8a\x69\x6e\xb5\x8b\xb5\x8c\xb5\x8d\x5d\x97\xb5\x8e\x59\xe0\x5a\xa2\xb5\x8f\xb5\x90\x6a\xc2\x54\xb8\xb5\x91\xb5\x92\xb5\x93\xb5\x94\xb5\x95\x6a\xc3\xb5\x96\xb5\x97\x69\x6d\x69\x6f\x50\x84\x69\x70\xb5\x98\xb5\x99\x69\x74\xb5\x9a\xb5\x9b\xb5\x9c\xb5\x9d\xb5\x9e\xb5\x9f\xb5\xa0\x69\x76\x69\x71\xb5\xa1\x55\x71\x53\x82\xb5\xa2\xb5\xa3\xb5\xa4\x51\xe2\x4d\x9d\xb5\xa5\xb5\xa6\x69\x73\xb5\xa7\x69\x75\xb5\xa8", /* 8900 */ "\xb5\xa9\xb5\xaa\x4d\x73\xb5\xab\xb5\xac\xb5\xad\xb5\xae\xb5\xaf\xb5\xb0\xb5\xb1\x69\x7b\xb5\xb2\xb5\xb3\xb5\xb4\xb5\xb5\xb5\xb6\x4d\xd5\xb5\xb7\x48\xfc\x69\x79\xb5\xb8\xb5\xb9\xb5\xba\xb5\xbb\xb5\xbc\x69\x78\x69\x72\x69\x7a\xb5\xbd\xb5\xbe\xb5\xbf\xb5\xc0\xb5\xc1\x69\x77\xb5\xc2\xb5\xc3\xb5\xc4\x54\xeb\xb5\xc5\xb5\xc6\xb5\xc7\xb5\xc8\x57\x6a\x69\x7d\xb5\xc9\xb5\xca\xb5\xcb\xb5\xcc\x63\x5d\xb5\xcd\xb5\xce\xb5\xcf\x69\x7c\xb5\xd0\x69\x7e\xb5\xd1\xb5\xd2\xb5\xd3\xb5\xd4\xb5\xd5\xb5\xd6\xb5\xd7\xb5\xd8\xb5\xd9\xb5\xda\x69\x7f\xb5\xdb\xb5\xdc\x58\x86\xb5\xdd\xb5\xde\xb5\xdf\xb5\xe0\xb5\xe1\xb5\xe2\xb5\xe3\xb5\xe4\xb5\xe5\xb5\xe6\xb5\xe7\xb5\xe8\xb5\xe9\xb5\xea\xb5\xeb\xb5\xec\xb5\xed\xb5\xee\xb5\xef\xb5\xf0\xb5\xf1\xb5\xf2\xb5\xf3\xb5\xf4\xb5\xf5\x6a\xc4\x4f\x94\xb5\xf6\xb5\xf7\xb5\xf8\xb5\xf9\xb5\xfa\xb5\xfb\x69\x81\xb5\xfc\xb5\xfd\xb6\x41\xb6\x42\xb6\x43\xb6\x44\xb6\x45\xb6\x46\xb6\x47\xb6\x48\xb6\x49\xb6\x4a\xb6\x4b\xb6\x4c\xb6\x4d\xb6\x4e\xb6\x4f\xb6\x50\xb6\x51\xb6\x52\x69\x82\xb6\x53\xb6\x54\xb6\x55\x57\xf6", /* 8980 */ "\xb6\x56\x59\xa9\xb6\x57\x69\x9c\xb6\x58\xb6\x59\x4c\xb1\xb6\x5a\xb6\x5b\xb6\x5c\xb6\x5d\xb6\x5e\xb6\x5f\xb6\x60\xb6\x61\xb6\x62\xb6\x63\xb6\x64\xb6\x65\xb6\x66\xb6\x67\xb6\x68\xb6\x69\xb6\x6a\xb6\x6b\xb6\x6c\xb6\x6d\xb6\x6e\xb6\x6f\xb6\x70\xb6\x71\xb6\x72\xb6\x73\xb6\x74\xb6\x75\xb6\x76\xb6\x77\xb6\x78\xb6\x79\xb6\x7a\xb6\x7b\xb6\x7c\xb6\x7d\xb6\x7e\xb6\x7f\xb6\x81\xb6\x82\xb6\x83\xb6\x84\xb6\x85\xb6\x86\xb6\x87\xb6\x88\xb6\x89\xb6\x8a\xb6\x8b\xb6\x8c\xb6\x8d\xb6\x8e\xb6\x8f\xb6\x90\xb6\x91\xb6\x92\xb6\x93\xb6\x94\x4e\xfa\x4d\x7b\xb6\x95\x4d\x87\x52\x79\x55\xd2\x65\xe7\x50\xbf\x4f\xf4\x65\xe8\x65\xe9\x65\xea\xb6\x96\x65\xeb\x65\xec\x65\xed\x65\xee\x4f\x67\xb6\x97\xb6\x98\xb6\x99\x6b\x9c\xb6\x9a\xb6\x9b\xb6\x9c\x6b\x9e\xb6\x9d\x6b\x9f\xb6\x9e\x6b\x9d\xb6\x9f\xb6\xa0\xb6\xa1\xb6\xa2\x4f\x83\xb6\xa3\x6b\xa0\x4a\xa4\xb6\xa4\xb6\xa5\xb6\xa6\xb6\xa7\x6b\xa1\xb6\xa8\xb6\xa9\xb6\xaa\x6b\xa2\xb6\xab\xb6\xac\xb6\xad\x66\xb1\xb6\xae\xb6\xaf\xb6\xb0\xb6\xb1\xb6\xb2\xb6\xb3\xb6\xb4\xb6\xb5\xb6\xb6\xb6\xb7\xb6\xb8\xb6\xb9", /* 8a00 */ "\x59\x74\xb6\xba\xb6\xbb\xb6\xbc\xb6\xbd\xb6\xbe\xb6\xbf\x5d\x8b\xb6\xc0\xb6\xc1\xb6\xc2\xb6\xc3\xb6\xc4\xb6\xc5\xb6\xc6\xb6\xc7\xb6\xc8\xb6\xc9\xb6\xca\xb6\xcb\xb6\xcc\xb6\xcd\xb6\xce\xb6\xcf\xb6\xd0\xb6\xd1\xb6\xd2\xb6\xd3\xb6\xd4\xb6\xd5\xb6\xd6\xb6\xd7\xb6\xd8\xb6\xd9\xb6\xda\xb6\xdb\xb6\xdc\xb6\xdd\xb6\xde\xb6\xdf\xb6\xe0\xb6\xe1\xb6\xe2\xb6\xe3\xb6\xe4\xb6\xe5\xb6\xe6\xb6\xe7\xb6\xe8\xb6\xe9\xb6\xea\xb6\xeb\xb6\xec\xb6\xed\xb6\xee\xb6\xef\xb6\xf0\xb6\xf1\xb6\xf2\xb6\xf3\xb6\xf4\xb6\xf5\x6b\xa3\xb6\xf6\xb6\xf7\xb6\xf8\xb6\xf9\xb6\xfa\xb6\xfb\xb6\xfc\xb6\xfd\xb7\x41\x67\xb9\xb7\x42\xb7\x43\xb7\x44\xb7\x45\xb7\x46\xb7\x47\xb7\x48\xb7\x49\xb7\x4a\xb7\x4b\xb7\x4c\xb7\x4d\xb7\x4e\xb7\x4f\xb7\x50\xb7\x51\xb7\x52\xb7\x53\xb7\x54\xb7\x55\xb7\x56\xb7\x57\xb7\x58\xb7\x59\xb7\x5a\xb7\x5b\xb7\x5c\xb7\x5d\xb7\x5e\xb7\x5f\xb7\x60\xb7\x61\xb7\x62\xb7\x63\xb7\x64\xb7\x65\xb7\x66\xb7\x67\xb7\x68\xb7\x69\xb7\x6a\xb7\x6b\xb7\x6c\xb7\x6d\xb7\x6e\xb7\x6f\xb7\x70\xb7\x71\x5b\x52\xb7\x72\xb7\x73\xb7\x74\xb7\x75\xb7\x76\xb7\x77", /* 8a80 */ "\xb7\x78\xb7\x79\xb7\x7a\xb7\x7b\xb7\x7c\xb7\x7d\xb7\x7e\xb7\x7f\xb7\x81\x5a\x9f\x56\xdb\xb7\x82\xb7\x83\xb7\x84\xb7\x85\xb7\x86\xb7\x87\xb7\x88\xb7\x89\x55\xc3\xb7\x8a\xb7\x8b\xb7\x8c\xb7\x8d\xb7\x8e\xb7\x8f\xb7\x90\xb7\x91\xb7\x92\xb7\x93\xb7\x94\xb7\x95\xb7\x96\xb7\x97\xb7\x98\xb7\x99\xb7\x9a\xb7\x9b\xb7\x9c\xb7\x9d\xb7\x9e\xb7\x9f\xb7\xa0\xb7\xa1\xb7\xa2\xb7\xa3\xb7\xa4\xb7\xa5\xb7\xa6\xb7\xa7\xb7\xa8\xb7\xa9\xb7\xaa\xb7\xab\xb7\xac\xb7\xad\xb7\xae\xb7\xaf\xb7\xb0\xb7\xb1\xb7\xb2\xb7\xb3\xb7\xb4\xb7\xb5\xb7\xb6\xb7\xb7\xb7\xb8\xb7\xb9\xb7\xba\xb7\xbb\xb7\xbc\xb7\xbd\xb7\xbe\xb7\xbf\xb7\xc0\xb7\xc1\xb7\xc2\xb7\xc3\xb7\xc4\xb7\xc5\xb7\xc6\xb7\xc7\xb7\xc8\xb7\xc9\xb7\xca\xb7\xcb\xb7\xcc\xb7\xcd\xb7\xce\xb7\xcf\xb7\xd0\xb7\xd1\xb7\xd2\xb7\xd3\xb7\xd4\xb7\xd5\xb7\xd6\xb7\xd7\xb7\xd8\xb7\xd9\xb7\xda\xb7\xdb\xb7\xdc\xb7\xdd\xb7\xde\xb7\xdf\xb7\xe0\xb7\xe1\xb7\xe2\xb7\xe3\xb7\xe4\xb7\xe5\xb7\xe6\xb7\xe7\xb7\xe8\xb7\xe9\xb7\xea\xb7\xeb\xb7\xec\xb7\xed\xb7\xee\xb7\xef\xb7\xf0\xb7\xf1\xb7\xf2\xb7\xf3\xb7\xf4\xb7\xf5", /* 8b00 */ "\xb7\xf6\xb7\xf7\xb7\xf8\xb7\xf9\xb7\xfa\xb7\xfb\xb7\xfc\x63\x60\xb7\xfd\xb8\x41\xb8\x42\xb8\x43\xb8\x44\xb8\x45\xb8\x46\xb8\x47\xb8\x48\xb8\x49\xb8\x4a\xb8\x4b\xb8\x4c\xb8\x4d\xb8\x4e\xb8\x4f\xb8\x50\xb8\x51\xb8\x52\xb8\x53\xb8\x54\xb8\x55\xb8\x56\xb8\x57\xb8\x58\xb8\x59\xb8\x5a\xb8\x5b\xb8\x5c\xb8\x5d\x6b\xa4\xb8\x5e\xb8\x5f\xb8\x60\xb8\x61\xb8\x62\xb8\x63\xb8\x64\xb8\x65\xb8\x66\xb8\x67\xb8\x68\xb8\x69\xb8\x6a\xb8\x6b\xb8\x6c\xb8\x6d\xb8\x6e\xb8\x6f\xb8\x70\xb8\x71\xb8\x72\xb8\x73\xb8\x74\xb8\x75\xb8\x76\xb8\x77\xb8\x78\xb8\x79\xb8\x7a\xb8\x7b\xb8\x7c\xb8\x7d\xb8\x7e\xb8\x7f\xb8\x81\xb8\x82\xb8\x83\xb8\x84\xb8\x85\xb8\x86\xb8\x87\xb8\x88\xb8\x89\xb8\x8a\xb8\x8b\xb8\x8c\xb8\x8d\xb8\x8e\xb8\x8f\xb8\x90\xb8\x91\xb8\x92\xb8\x93\xb8\x94\xb8\x95\xb8\x96\xb8\x97\xb8\x98\xb8\x99\xb8\x9a\xb8\x9b\xb8\x9c\xb8\x9d\x4f\xae\xb8\x9e\xb8\x9f\xb8\xa0\xb8\xa1\xb8\xa2\x53\xa8\xb8\xa3\xb8\xa4\xb8\xa5\xb8\xa6\xb8\xa7\xb8\xa8\xb8\xa9\xb8\xaa\xb8\xab\xb8\xac\xb8\xad\xb8\xae\xb8\xaf\xb8\xb0\xb8\xb1\xb8\xb2\xb8\xb3\xb8\xb4\xb8\xb5", /* 8b80 */ "\xb8\xb6\xb8\xb7\xb8\xb8\xb8\xb9\xb8\xba\xb8\xbb\xb8\xbc\xb8\xbd\xb8\xbe\xb8\xbf\xb8\xc0\xb8\xc1\xb8\xc2\xb8\xc3\xb8\xc4\xb8\xc5\xb8\xc6\xb8\xc7\xb8\xc8\xb8\xc9\xb8\xca\xb8\xcb\xb8\xcc\xb8\xcd\xb8\xce\xb8\xcf\xb8\xd0\xb8\xd1\xb8\xd2\xb8\xd3\xb8\xd4\xb8\xd5\x5d\xa4\x4e\xc5\x4b\xa8\x4c\xbb\x54\xce\x4e\xa4\x5d\xa5\x5d\xa6\x56\xd5\x54\xc2\x5d\xa7\x53\xfc\xb8\xd6\x59\x55\x59\xe8\x59\x56\x4e\xc6\xb8\xd7\x4f\x52\x4e\x85\x5d\xa8\x5d\xa9\x59\x68\x5d\xaa\x58\xec\x4b\xee\x51\xda\xb8\xd8\x56\x6f\x4c\x8e\x55\x89\x4c\x63\x4f\xf6\x5b\xa3\x5d\xab\x5d\xac\x53\xbf\x5c\x88\x55\xb5\xb8\xd9\x5b\x49\x56\x7f\x5b\x90\x5d\xad\x5b\xde\x4a\xc9\x5d\xaf\x5d\xae\xb8\xda\x59\xea\x5d\xb0\x5d\xb1\x5d\xb2\x55\xd3\x5d\xb3\x55\xaa\x5d\xb4\x5d\xb5\x4a\x6f\x5b\xee\x5d\xb6\x4e\x50\x4b\x4e\x5d\xb7\x5d\xb8\x4d\x8f\x59\x4f\x59\xe7\x5d\xb9\x4c\xc2\x58\x8b\x49\xee\x5d\xba\x5d\xbb\xb8\xdb\x4f\x8c\x57\xdb\x5a\x90\x5d\xbc\x57\xf2\x5d\xbd\x5a\x75\x4e\x86\x5d\xbe\x56\x55\x56\x70\x5d\xbf\x54\x8c\x5b\xed\x5d\xc0\x53\x55\x4b\xc0\x5d\xc1\x4c\x6c\x50\x6e\x5d\xc2", /* 8c00 */ "\x5d\xc3\x56\x4d\x5d\xc4\x4b\x98\x5d\xc5\x51\x62\x5c\x5b\x5d\xc6\x56\xb7\xb8\xdc\x59\xe9\x52\xb0\x5d\xc7\x4b\x9e\x4e\x71\x5d\xc8\x58\xb2\x5d\xc9\x5d\xca\x57\xbc\x5d\xcb\x5d\xcc\x5d\xcd\x49\xf6\x5d\xd0\x5d\xce\x59\x89\x5d\xcf\x52\x75\x5d\xd1\xb8\xdd\x5d\xd2\x5d\xd3\x5d\xd4\x58\xba\x59\xa4\x48\xf8\x5d\xd5\x54\x4b\x5d\xd6\x4f\x98\x52\x41\x5d\xd7\x5d\xd8\x52\x9e\x56\xb6\x5d\xd9\x5d\xda\x50\xbd\x53\xd6\x5d\xdb\x5d\xdc\x54\x54\x5d\xdd\x5d\xde\x4d\x68\xb8\xde\xb8\xdf\xb8\xe0\xb8\xe1\xb8\xe2\xb8\xe3\xb8\xe4\xb8\xe5\xb8\xe6\x4e\x8e\xb8\xe7\xb8\xe8\xb8\xe9\xb8\xea\x4b\xb8\x6a\xf7\xb8\xeb\x6a\xf8\xb8\xec\xb8\xed\x57\x84\xb8\xee\xb8\xef\xb8\xf0\xb8\xf1\xb8\xf2\xb8\xf3\xb8\xf4\xb8\xf5\x6b\x59\xb8\xf6\xb8\xf7\xb8\xf8\xb8\xf9\x66\x81\xb8\xfa\xb8\xfb\xb8\xfc\xb8\xfd\xb9\x41\xb9\x42\x58\x94\x4e\x5f\xb9\x43\xb9\x44\xb9\x45\xb9\x46\xb9\x47\xb9\x48\xb9\x49\x4d\xbf\x5a\xa4\xb9\x4a\xb9\x4b\xb9\x4c\xb9\x4d\xb9\x4e\xb9\x4f\xb9\x50\x61\x79\xb9\x51\xb9\x52\xb9\x53\xb9\x54\x6b\x95\x49\x4a\x49\xf1\xb9\x55\xb9\x56\xb9\x57\xb9\x58\xb9\x59", /* 8c80 */ "\xb9\x5a\xb9\x5b\x6b\x96\xb9\x5c\xb9\x5d\x6b\x98\xb9\x5e\xb9\x5f\xb9\x60\x4d\xd0\x6b\x97\xb9\x61\x52\x52\xb9\x62\xb9\x63\xb9\x64\xb9\x65\xb9\x66\xb9\x67\xb9\x68\x6b\x9a\xb9\x69\xb9\x6a\xb9\x6b\x6b\x99\xb9\x6c\xb9\x6d\xb9\x6e\xb9\x6f\xb9\x70\xb9\x71\xb9\x72\xb9\x73\xb9\x74\xb9\x75\xb9\x76\xb9\x77\xb9\x78\xb9\x79\xb9\x7a\xb9\x7b\xb9\x7c\xb9\x7d\xb9\x7e\xb9\x7f\xb9\x81\xb9\x82\xb9\x83\xb9\x84\xb9\x85\xb9\x86\xb9\x87\xb9\x88\xb9\x89\xb9\x8a\xb9\x8b\xb9\x8c\xb9\x8d\xb9\x8e\xb9\x8f\xb9\x90\xb9\x91\xb9\x92\xb9\x93\xb9\x94\xb9\x95\xb9\x96\xb9\x97\xb9\x98\xb9\x99\xb9\x9a\xb9\x9b\xb9\x9c\xb9\x9d\xb9\x9e\xb9\x9f\xb9\xa0\xb9\xa1\xb9\xa2\xb9\xa3\xb9\xa4\xb9\xa5\xb9\xa6\xb9\xa7\xb9\xa8\xb9\xa9\xb9\xaa\xb9\xab\xb9\xac\xb9\xad\xb9\xae\xb9\xaf\xb9\xb0\xb9\xb1\xb9\xb2\xb9\xb3\xb9\xb4\xb9\xb5\xb9\xb6\xb9\xb7\xb9\xb8\xb9\xb9\xb9\xba\xb9\xbb\xb9\xbc\xb9\xbd\xb9\xbe\xb9\xbf\xb9\xc0\xb9\xc1\xb9\xc2\xb9\xc3\xb9\xc4\xb9\xc5\xb9\xc6\xb9\xc7\xb9\xc8\xb9\xc9\xb9\xca\xb9\xcb\xb9\xcc\xb9\xcd\xb9\xce\xb9\xcf\xb9\xd0\xb9\xd1\xb9\xd2\xb9\xd3", /* 8d00 */ "\xb9\xd4\xb9\xd5\xb9\xd6\xb9\xd7\xb9\xd8\xb9\xd9\xb9\xda\xb9\xdb\xb9\xdc\xb9\xdd\xb9\xde\xb9\xdf\xb9\xe0\xb9\xe1\xb9\xe2\xb9\xe3\xb9\xe4\xb9\xe5\xb9\xe6\xb9\xe7\xb9\xe8\xb9\xe9\xb9\xea\xb9\xeb\xb9\xec\xb9\xed\xb9\xee\xb9\xef\xb9\xf0\x49\x54\x5b\x8b\x4c\xb9\xb9\xf1\x4d\x51\x49\xc5\x5a\xef\x58\x6d\x48\xdb\x5b\x6b\x4e\x96\x5b\xc9\x4c\x57\x56\xaf\x53\xb5\x49\x82\x4d\x5a\x5b\xfb\x4d\x82\x4c\x41\x4e\xf9\x65\xd9\x65\xda\x56\xf8\x4d\x94\x65\xdb\x4a\xfa\x52\x53\x4c\x71\x4d\xd7\x65\xdc\x5a\xf3\x65\xdd\x4e\xd5\x4e\x7f\x65\xde\x51\x7e\x51\xb7\x5a\xde\x5c\x6a\x65\xdf\x65\xe0\x65\xe3\x65\xe1\x65\xe2\x55\x7e\x4c\xb2\x4b\xc3\x65\xe4\x55\xe9\x55\x6d\x4a\xcc\xb9\xf2\xb9\xf3\x61\xd8\x53\x83\x65\xe5\x50\xb4\xb9\xf4\x5c\x58\x65\xe6\x5c\x4c\x54\xfb\x5c\xd2\x5c\xcc\x5a\xdd\xb9\xf5\x5a\xf8\x55\x64\x5a\x4e\x4c\xd2\x4a\x81\xb9\xf6\x55\x83\x6a\xf5\xb9\xf7\xb9\xf8\xb9\xf9\x4d\xd4\xb9\xfa\x6a\xf6\xb9\xfb\xb9\xfc\x5c\x7f\xb9\xfd\xba\x41\x6a\xf0\x4c\xaf\x5b\x74\x4c\xce\x53\xef\xba\x42\xba\x43\xba\x44\xba\x45\xba\x46\xba\x47\xba\x48\xba\x49", /* 8d80 */ "\xba\x4a\x4a\x63\xba\x4b\xba\x4c\x6a\xf1\x4a\x4c\xba\x4d\xba\x4e\xba\x4f\xba\x50\x5a\xbc\x54\x98\xba\x51\xba\x52\xba\x53\xba\x54\xba\x55\x6a\xf3\xba\x56\xba\x57\x6a\xf2\xba\x58\xba\x59\xba\x5a\xba\x5b\xba\x5c\xba\x5d\xba\x5e\xba\x5f\xba\x60\xba\x61\x56\xca\xba\x62\xba\x63\xba\x64\x54\xa3\xba\x65\xba\x66\xba\x67\xba\x68\xba\x69\xba\x6a\xba\x6b\xba\x6c\xba\x6d\xba\x6e\xba\x6f\xba\x70\xba\x71\x6a\xf4\xba\x72\x5c\x84\x53\x5f\x6b\x60\xba\x73\xba\x74\x6b\x5b\xba\x75\x6b\x63\xba\x76\x6b\x62\xba\x77\x5b\xb9\x6b\x61\xba\x78\xba\x79\xba\x7a\x5a\xbd\x6b\x64\xba\x7b\x6b\x6c\xba\x7c\xba\x7d\xba\x7e\xba\x7f\x48\xce\x4b\x99\xba\x81\x6b\x69\x6b\x6a\xba\x82\x53\x7c\xba\x83\xba\x84\xba\x85\xba\x86\x6b\x65\x6b\x66\xba\x87\xba\x88\x6b\x67\x6b\x6b\xba\x89\x4f\xdf\x6b\x68\x4c\xf9\xba\x8a\xba\x8b\xba\x8c\x6b\x70\x6b\x73\xba\x8d\xba\x8e\xba\x8f\x50\x88\xba\x90\x4d\x93\x6b\x5c\x6b\x6d\xba\x91\xba\x92\x51\xb6\xba\x93\xba\x94\xba\x95\x56\xf7\xba\x96\x4e\xf8\xba\x97\x6b\x6e\x6b\x6f\x6b\x71\x4b\xe4\x6b\x72\xba\x98\x6b\x75\xba\x99\xba\x9a", /* 8e00 */ "\xba\x9b\xba\x9c\xba\x9d\xba\x9e\xba\x9f\x6b\x5d\xba\xa0\xba\xa1\xba\xa2\x6b\x74\x5a\x5b\xba\xa3\x4a\x8d\xba\xa4\xba\xa5\x56\xa3\xba\xa6\xba\xa7\xba\xa8\xba\xa9\x6b\x76\xba\xaa\xba\xab\xba\xac\xba\xad\xba\xae\xba\xaf\xba\xb0\xba\xb1\x6b\x77\x4f\xe0\x6b\x78\xba\xb2\xba\xb3\x56\xde\x6b\x7b\xba\xb4\xba\xb5\xba\xb6\xba\xb7\xba\xb8\x49\xc7\x5c\x79\xba\xb9\x6b\x79\xba\xba\x6b\x7a\x6b\x7c\xba\xbb\x6b\x83\xba\xbc\xba\xbd\xba\xbe\x6b\x81\xba\xbf\xba\xc0\xba\xc1\x6b\x7f\x6b\x7d\xba\xc2\xba\xc3\x6b\x82\xba\xc4\xba\xc5\x6b\x7e\x6b\x85\x6b\x86\xba\xc6\x56\xe2\xba\xc7\xba\xc8\x63\x5f\x4b\x58\x6b\x84\x6b\x89\x56\xa2\xba\xc9\xba\xca\xba\xcb\xba\xcc\xba\xcd\x6b\x87\x6b\x88\xba\xce\xba\xcf\xba\xd0\xba\xd1\xba\xd2\xba\xd3\x6b\x5e\xba\xd4\xba\xd5\xba\xd6\xba\xd7\xba\xd8\xba\xd9\xba\xda\xba\xdb\xba\xdc\xba\xdd\xba\xde\xba\xdf\x49\x64\xba\xe0\xba\xe1\x6b\x5f\xba\xe2\xba\xe3\x4b\x65\x49\xe3\xba\xe4\x6b\x8d\x6b\x8a\xba\xe5\x4b\xd6\xba\xe6\x6b\x8e\xba\xe7\x6b\x8b\xba\xe8\xba\xe9\xba\xea\xba\xeb\xba\xec\x6b\x8c\xba\xed\xba\xee\x4a\xd9", /* 8e80 */ "\xba\xef\x5a\xe9\xba\xf0\xba\xf1\xba\xf2\x6b\x8f\xba\xf3\x4a\x9a\xba\xf4\xba\xf5\xba\xf6\xba\xf7\xba\xf8\xba\xf9\xba\xfa\x6b\x90\x6b\x92\xba\xfb\xba\xfc\xba\xfd\x6b\x91\xbb\x41\xbb\x42\xbb\x43\xbb\x44\xbb\x45\xbb\x46\xbb\x47\x6b\x93\xbb\x48\x6b\x94\xbb\x49\xbb\x4a\xbb\x4b\xbb\x4c\xbb\x4d\xbb\x4e\xbb\x4f\xbb\x50\xbb\x51\xbb\x52\xbb\x53\xbb\x54\x55\x8e\x4d\x4a\xbb\x55\xbb\x56\x54\x9c\xbb\x57\xbb\x58\x4b\xe2\xbb\x59\xbb\x5a\xbb\x5b\xbb\x5c\xbb\x5d\xbb\x5e\xbb\x5f\x56\xc8\xbb\x60\xbb\x61\xbb\x62\xbb\x63\xbb\x64\xbb\x65\xbb\x66\xbb\x67\xbb\x68\xbb\x69\xbb\x6a\xbb\x6b\xbb\x6c\xbb\x6d\xbb\x6e\xbb\x6f\xbb\x70\xbb\x71\xbb\x72\x65\xa5\xbb\x73\xbb\x74\xbb\x75\xbb\x76\xbb\x77\xbb\x78\xbb\x79\xbb\x7a\xbb\x7b\xbb\x7c\xbb\x7d\xbb\x7e\xbb\x7f\xbb\x81\xbb\x82\xbb\x83\xbb\x84\xbb\x85\xbb\x86\xbb\x87\xbb\x88\xbb\x89\xbb\x8a\xbb\x8b\xbb\x8c\xbb\x8d\xbb\x8e\xbb\x8f\xbb\x90\xbb\x91\xbb\x92\xbb\x93\xbb\x94\xbb\x95\xbb\x96\xbb\x97\xbb\x98\xbb\x99\xbb\x9a\xbb\x9b\xbb\x9c\xbb\x9d\xbb\x9e\xbb\x9f\xbb\xa0\xbb\xa1\xbb\xa2\xbb\xa3\xbb\xa4", /* 8f00 */ "\xbb\xa5\xbb\xa6\xbb\xa7\xbb\xa8\xbb\xa9\xbb\xaa\xbb\xab\xbb\xac\xbb\xad\xbb\xae\xbb\xaf\xbb\xb0\xbb\xb1\xbb\xb2\xbb\xb3\xbb\xb4\xbb\xb5\xbb\xb6\xbb\xb7\xbb\xb8\xbb\xb9\xbb\xba\xbb\xbb\xbb\xbc\xbb\xbd\xbb\xbe\xbb\xbf\xbb\xc0\xbb\xc1\xbb\xc2\xbb\xc3\xbb\xc4\xbb\xc5\xbb\xc6\xbb\xc7\xbb\xc8\xbb\xc9\xbb\xca\xbb\xcb\xbb\xcc\xbb\xcd\xbb\xce\xbb\xcf\xbb\xd0\xbb\xd1\xbb\xd2\xbb\xd3\xbb\xd4\xbb\xd5\xbb\xd6\xbb\xd7\xbb\xd8\xbb\xd9\xbb\xda\xbb\xdb\xbb\xdc\xbb\xdd\xbb\xde\xbb\xdf\xbb\xe0\xbb\xe1\xbb\xe2\xbb\xe3\xbb\xe4\xbb\xe5\xbb\xe6\xbb\xe7\xbb\xe8\xbb\xe9\xbb\xea\xbb\xeb\xbb\xec\xbb\xed\xbb\xee\xbb\xef\xbb\xf0\xbb\xf1\xbb\xf2\xbb\xf3\xbb\xf4\xbb\xf5\xbb\xf6\xbb\xf7\xbb\xf8\xbb\xf9\xbb\xfa\xbb\xfb\xbb\xfc\xbb\xfd\xbc\x41\xbc\x42\xbc\x43\xbc\x44\xbc\x45\xbc\x46\xbc\x47\xbc\x48\xbc\x49\xbc\x4a\xbc\x4b\xbc\x4c\xbc\x4d\x4a\x55\x5a\xfd\x4d\x8d\x58\xf8\xbc\x4e\x65\x8e\x5c\x4a\x65\x8f\x51\xd5\x54\xec\x4d\xe3\x65\x90\x65\x91\x65\x92\x5b\xe0\x65\x93\x65\x94\x65\x96\x65\x95\x65\x97\x65\x98\x54\x82\x65\x99\x5a\xd7\x65\x9a\x4f\x6e", /* 8f80 */ "\xbc\x4f\x65\x9b\x65\x9c\x4f\x6f\x65\x9d\x4c\xa7\x51\x5e\x65\x9e\x49\x52\x4e\x74\x4d\x96\x65\x9f\xbc\x50\x65\xa0\x65\xa1\x65\xa2\x4c\x99\x4e\xac\xbc\x51\x55\xe3\x60\xcd\x5a\xae\x58\x5d\x5b\x57\x65\xa3\x5b\x7e\x65\xa4\x58\xc0\x4d\x5c\xbc\x52\x4a\xc6\x49\x79\xbc\x53\xbc\x54\xbc\x55\x50\xb0\xbc\x56\xbc\x57\xbc\x58\xbc\x59\x49\x87\x49\x88\xbc\x5a\x49\x89\xbc\x5b\xbc\x5c\xbc\x5d\xbc\x5e\x4a\x5d\x54\xe7\xbc\x5f\xbc\x60\xbc\x61\xbc\x62\x63\x61\xbc\x63\xbc\x64\x49\x7f\xbc\x65\xbc\x66\xbc\x67\x51\x69\x4a\xee\xbc\x68\xbc\x69\x54\x48\x5a\x78\xbc\x6a\x53\xf8\x59\x58\xbc\x6b\x4d\x9e\x51\xf4\xbc\x6c\xbc\x6d\xbc\x6e\xbc\x6f\xbc\x70\x5a\x4d\xbc\x71\x5a\xca\x4f\x9d\xbc\x72\x63\x62\x4c\x55\x63\x63\xbc\x73\xbc\x74\x4e\x59\x5b\x83\xbc\x75\x4f\x99\x5a\xb5\x57\xa4\x51\x4c\x4a\x79\xbc\x76\xbc\x77\x56\xf5\xbc\x78\x63\x66\x63\x64\x63\x68\xbc\x79\x63\x6a\x63\x67\x4b\x6f\x53\xc7\xbc\x7a\x4b\x9d\x63\x65\xbc\x7b\x55\xf5\xbc\x7c\xbc\x7d\x63\x69\xbc\x7e\xbc\x7f\xbc\x81\x52\x74\x49\x65\x4e\xa2\xbc\x82\xbc\x83\xbc\x84\x5c\x57\xbc\x85\xbc\x86", /* 9000 */ "\x57\x6b\x56\x6d\x55\xc9\x56\xd2\x63\x6c\x63\x6b\x52\xe5\xbc\x87\xbc\x88\x59\x41\x59\x57\x63\x6d\xbc\x89\x63\x70\xbc\x8a\x57\x58\x5b\xef\x63\x6f\x4b\x7d\xbc\x8b\x57\x5e\xbc\x8c\x63\x71\x4b\xb9\xbc\x8d\xbc\x8e\x57\x48\x4d\x85\xbc\x8f\x55\xc4\x4a\x71\x56\x79\x5a\xeb\x63\x72\x4c\x8b\xbc\x90\xbc\x91\xbc\x92\x63\x6e\xbc\x93\xbc\x94\xbc\x95\xbc\x96\xbc\x97\xbc\x98\x63\x75\x4a\xfd\x63\x76\xbc\x99\xbc\x9a\xbc\x9b\xbc\x9c\xbc\x9d\x63\x73\x63\x74\xbc\x9e\x59\xdc\xbc\x9f\xbc\xa0\x51\xde\x49\x66\xbc\xa1\x5a\x83\xbc\xa2\xbc\xa3\x4b\xdc\x56\x8d\xbc\xa4\x63\x77\xbc\xa5\xbc\xa6\x5a\x97\xbc\xa7\xbc\xa8\xbc\xa9\xbc\xaa\xbc\xab\x49\x8a\xbc\xac\x4b\xf3\x63\x7a\x63\x78\x63\x79\x4b\x60\xbc\xad\xbc\xae\xbc\xaf\x59\xc4\x63\x7c\xbc\xb0\xbc\xb1\x63\x7e\xbc\xb2\xbc\xb3\xbc\xb4\xbc\xb5\xbc\xb6\xbc\xb7\x63\x7d\x54\x52\xbc\xb8\x59\xa2\xbc\xb9\xbc\xba\x63\x7b\xbc\xbb\xbc\xbc\xbc\xbd\xbc\xbe\x5a\xe1\x5b\x7a\xbc\xbf\xbc\xc0\xbc\xc1\xbc\xc2\xbc\xc3\x63\x81\x5c\x92\xbc\xc4\xbc\xc5\xbc\xc6\xbc\xc7\xbc\xc8\xbc\xc9\xbc\xca\x63\x82\xbc\xcb\x49\x7c", /* 9080 */ "\x59\x9c\xbc\xcc\x63\x83\x63\x85\xbc\xcd\xbc\xce\xbc\xcf\xbc\xd0\x63\x84\xbc\xd1\xbc\xd2\x63\x86\xbc\xd3\xbc\xd4\xbc\xd5\xbc\xd6\xbc\xd7\x59\xd7\xbc\xd8\x4b\x6b\xbc\xd9\x64\x7f\xbc\xda\x5d\xf4\xbc\xdb\x5d\xf7\xbc\xdc\x5d\xf5\xbc\xdd\x5d\xf6\xbc\xde\xbc\xdf\xbc\xe0\x5d\xf9\x58\xce\x52\xc6\xbc\xe1\xbc\xe2\x48\xed\xbc\xe3\xbc\xe4\xbc\xe5\x58\xaf\xbc\xe6\x5d\xf8\xbc\xe7\x5a\x6a\x4d\xa9\x5e\x42\x54\x92\xbc\xe8\x5d\xfb\x5d\xfa\x55\x7b\x5d\xfc\xbc\xe9\x5e\x41\x5c\x7e\x5d\xfd\x51\x7a\xbc\xea\xbc\xeb\x5e\x45\xbc\xec\xbc\xed\x5a\x95\xbc\xee\xbc\xef\x5e\x47\x5e\x44\xbc\xf0\x5e\x48\xbc\xf1\xbc\xf2\x4f\x5c\xbc\xf3\xbc\xf4\xbc\xf5\x50\xc8\x5e\x43\x5e\x46\x5b\xa2\xbc\xf6\x5e\x49\xbc\xf7\xbc\xf8\xbc\xf9\x5e\x4d\xbc\xfa\xbc\xfb\xbc\xfc\x5e\x4e\x5e\x4c\x4d\xc1\xbc\xfd\xbd\x41\xbd\x42\x50\x44\x5e\x4b\xbd\x43\xbd\x44\xbd\x45\x5e\x4a\x5a\xc6\x49\xbe\xbd\x46\xbd\x47\x5e\x4f\xbd\x48\x4d\x9a\xbd\x49\x5e\x50\xbd\x4a\xbd\x4b\xbd\x4c\xbd\x4d\x4a\x5b\xbd\x4e\xbd\x4f\xbd\x50\x4b\x46\xbd\x51\xbd\x52\xbd\x53\xbd\x54\x4b\xbb\x5e\x51\xbd\x55", /* 9100 */ "\xbd\x56\xbd\x57\x4b\xf4\xbd\x58\x5e\x52\xbd\x59\xbd\x5a\xbd\x5b\xbd\x5c\xbd\x5d\xbd\x5e\xbd\x5f\xbd\x60\xbd\x61\xbd\x62\xbd\x63\xbd\x64\xbd\x65\xbd\x66\xbd\x67\xbd\x68\xbd\x69\xbd\x6a\xbd\x6b\xbd\x6c\x49\x69\xbd\x6d\xbd\x6e\xbd\x6f\xbd\x70\x5e\x54\xbd\x71\xbd\x72\xbd\x73\x5e\x53\x5e\x55\xbd\x74\xbd\x75\xbd\x76\xbd\x77\xbd\x78\xbd\x79\xbd\x7a\xbd\x7b\xbd\x7c\xbd\x7d\xbd\x7e\x5e\x57\xbd\x7f\x5e\x56\xbd\x81\xbd\x82\xbd\x83\xbd\x84\xbd\x85\xbd\x86\xbd\x87\x5e\x58\xbd\x88\xbd\x89\xbd\x8a\xbd\x8b\xbd\x8c\xbd\x8d\xbd\x8e\xbd\x8f\xbd\x90\x5e\x59\xbd\x91\xbd\x92\x5e\x5a\xbd\x93\xbd\x94\x5a\x6f\x6a\xf9\x54\x96\x5c\x63\x53\x85\x6a\xfb\x6a\xfc\x6a\xfa\xbd\x95\x4f\xc5\xbd\x96\xbd\x97\xbd\x98\xbd\x99\x58\xee\xbd\x9a\xbd\x9b\x4c\x73\xbd\x9c\xbd\x9d\x5a\xcc\x56\xa9\xbd\x9e\xbd\x9f\x6b\x42\x6b\x41\x4d\xa7\x6a\xfd\x56\x76\xbd\xa0\xbd\xa1\xbd\xa2\x6b\x44\x50\xd1\xbd\xa3\x4a\x8b\xbd\xa4\x57\x4a\x6b\x45\x6b\x43\x4f\x54\x6b\x48\xbd\xa5\x6b\x49\x4f\x6d\x52\x58\x50\x82\x56\x82\x6b\x4a\xbd\xa6\xbd\xa7\xbd\xa8\x6b\x46\x6b\x47\x52\xef", /* 9180 */ "\xbd\xa9\xbd\xaa\xbd\xab\xbd\xac\xbd\xad\x6b\x4c\xbd\xae\x4a\xbb\xbd\xaf\x5c\x8e\xbd\xb0\x4a\xd6\x6b\x4b\x6b\x4e\xbd\xb1\xbd\xb2\x6b\x4d\x6b\x4f\x58\xd0\xbd\xb3\xbd\xb4\xbd\xb5\xbd\xb6\xbd\xb7\xbd\xb8\xbd\xb9\x52\x71\x54\xa8\xbd\xba\xbd\xbb\xbd\xbc\xbd\xbd\xbd\xbe\xbd\xbf\x6b\x50\x6b\x51\xbd\xc0\xbd\xc1\xbd\xc2\xbd\xc3\xbd\xc4\xbd\xc5\x6b\x52\xbd\xc6\xbd\xc7\x6b\x53\x6b\x54\x6b\x55\xbd\xc8\xbd\xc9\xbd\xca\xbd\xcb\x6b\x57\x6b\x56\xbd\xcc\xbd\xcd\xbd\xce\xbd\xcf\x6b\x58\xbd\xd0\xbd\xd1\xbd\xd2\xbd\xd3\xbd\xd4\xbd\xd5\xbd\xd6\xbd\xd7\xbd\xd8\xbd\xd9\xbd\xda\xbd\xdb\x49\xc8\xbd\xdc\x5a\x74\x55\xcc\xbd\xdd\x50\xee\x5b\xd7\x59\xaf\x51\x5f\xbd\xde\x4f\x91\xbd\xdf\xbd\xe0\xbd\xe1\xbd\xe2\xbd\xe3\xbd\xe4\xbd\xe5\xbd\xe6\xbd\xe7\xbd\xe8\x4c\xa9\xbd\xe9\xbd\xea\xbd\xeb\xbd\xec\xbd\xed\xbd\xee\xbd\xef\xbd\xf0\xbd\xf1\xbd\xf2\xbd\xf3\xbd\xf4\xbd\xf5\xbd\xf6\xbd\xf7\xbd\xf8\xbd\xf9\xbd\xfa\xbd\xfb\xbd\xfc\xbd\xfd\xbe\x41\xbe\x42\xbe\x43\xbe\x44\xbe\x45\xbe\x46\xbe\x47\xbe\x48\xbe\x49\xbe\x4a\xbe\x4b\xbe\x4c\xbe\x4d\xbe\x4e", /* 9200 */ "\xbe\x4f\xbe\x50\xbe\x51\xbe\x52\xbe\x53\xbe\x54\xbe\x55\xbe\x56\xbe\x57\xbe\x58\xbe\x59\xbe\x5a\xbe\x5b\xbe\x5c\xbe\x5d\xbe\x5e\xbe\x5f\xbe\x60\xbe\x61\xbe\x62\xbe\x63\xbe\x64\xbe\x65\xbe\x66\xbe\x67\xbe\x68\xbe\x69\xbe\x6a\xbe\x6b\xbe\x6c\xbe\x6d\xbe\x6e\xbe\x6f\xbe\x70\xbe\x71\xbe\x72\xbe\x73\xbe\x74\xbe\x75\xbe\x76\xbe\x77\xbe\x78\xbe\x79\xbe\x7a\xbe\x7b\xbe\x7c\xbe\x7d\xbe\x7e\xbe\x7f\xbe\x81\xbe\x82\xbe\x83\xbe\x84\xbe\x85\xbe\x86\xbe\x87\xbe\x88\xbe\x89\xbe\x8a\xbe\x8b\xbe\x8c\xbe\x8d\xbe\x8e\xbe\x8f\xbe\x90\xbe\x91\xbe\x92\xbe\x93\xbe\x94\xbe\x95\xbe\x96\xbe\x97\xbe\x98\xbe\x99\xbe\x9a\xbe\x9b\xbe\x9c\xbe\x9d\xbe\x9e\xbe\x9f\xbe\xa0\xbe\xa1\xbe\xa2\xbe\xa3\xbe\xa4\xbe\xa5\xbe\xa6\xbe\xa7\xbe\xa8\xbe\xa9\xbe\xaa\xbe\xab\xbe\xac\xbe\xad\xbe\xae\xbe\xaf\xbe\xb0\xbe\xb1\xbe\xb2\xbe\xb3\xbe\xb4\xbe\xb5\xbe\xb6\xbe\xb7\xbe\xb8\xbe\xb9\xbe\xba\xbe\xbb\xbe\xbc\xbe\xbd\xbe\xbe\xbe\xbf\xbe\xc0\xbe\xc1\xbe\xc2\xbe\xc3\x4e\xf7\xbe\xc4\xbe\xc5\xbe\xc6\xbe\xc7\xbe\xc8\xbe\xc9\xbe\xca\xbe\xcb\xbe\xcc\xbe\xcd\xbe\xce", /* 9280 */ "\xbe\xcf\xbe\xd0\xbe\xd1\xbe\xd2\xbe\xd3\xbe\xd4\xbe\xd5\xbe\xd6\xbe\xd7\xbe\xd8\xbe\xd9\xbe\xda\xbe\xdb\xbe\xdc\x6b\xc5\xbe\xdd\xbe\xde\xbe\xdf\xbe\xe0\xbe\xe1\xbe\xe2\xbe\xe3\xbe\xe4\xbe\xe5\xbe\xe6\xbe\xe7\xbe\xe8\xbe\xe9\xbe\xea\xbe\xeb\xbe\xec\xbe\xed\xbe\xee\xbe\xef\xbe\xf0\xbe\xf1\xbe\xf2\xbe\xf3\xbe\xf4\xbe\xf5\xbe\xf6\xbe\xf7\xbe\xf8\xbe\xf9\xbe\xfa\xbe\xfb\x6b\xc6\xbe\xfc\xbe\xfd\xbf\x41\xbf\x42\xbf\x43\xbf\x44\xbf\x45\xbf\x46\xbf\x47\xbf\x48\xbf\x49\xbf\x4a\xbf\x4b\xbf\x4c\xbf\x4d\xbf\x4e\xbf\x4f\xbf\x50\xbf\x51\xbf\x52\xbf\x53\xbf\x54\xbf\x55\xbf\x56\xbf\x57\x6b\xc7\xbf\x58\xbf\x59\xbf\x5a\xbf\x5b\xbf\x5c\xbf\x5d\xbf\x5e\xbf\x5f\xbf\x60\xbf\x61\xbf\x62\xbf\x63\xbf\x64\xbf\x65\xbf\x66\xbf\x67\xbf\x68\xbf\x69\xbf\x6a\xbf\x6b\xbf\x6c\xbf\x6d\xbf\x6e\xbf\x6f\xbf\x70\xbf\x71\xbf\x72\xbf\x73\xbf\x74\xbf\x75\xbf\x76\xbf\x77\xbf\x78\xbf\x79\xbf\x7a\xbf\x7b\xbf\x7c\xbf\x7d\xbf\x7e\xbf\x7f\xbf\x81\xbf\x82\xbf\x83\xbf\x84\xbf\x85\xbf\x86\xbf\x87\xbf\x88\xbf\x89\xbf\x8a\xbf\x8b\xbf\x8c\xbf\x8d\xbf\x8e\xbf\x8f", /* 9300 */ "\xbf\x90\xbf\x91\xbf\x92\xbf\x93\xbf\x94\xbf\x95\xbf\x96\xbf\x97\xbf\x98\xbf\x99\xbf\x9a\xbf\x9b\xbf\x9c\xbf\x9d\xbf\x9e\xbf\x9f\xbf\xa0\xbf\xa1\xbf\xa2\xbf\xa3\xbf\xa4\xbf\xa5\xbf\xa6\xbf\xa7\xbf\xa8\xbf\xa9\xbf\xaa\xbf\xab\xbf\xac\xbf\xad\xbf\xae\xbf\xaf\xbf\xb0\xbf\xb1\xbf\xb2\xbf\xb3\xbf\xb4\xbf\xb5\xbf\xb6\xbf\xb7\xbf\xb8\xbf\xb9\xbf\xba\xbf\xbb\xbf\xbc\xbf\xbd\xbf\xbe\xbf\xbf\xbf\xc0\xbf\xc1\xbf\xc2\xbf\xc3\xbf\xc4\xbf\xc5\xbf\xc6\xbf\xc7\xbf\xc8\xbf\xc9\xbf\xca\xbf\xcb\xbf\xcc\xbf\xcd\x6b\xc8\xbf\xce\xbf\xcf\xbf\xd0\xbf\xd1\xbf\xd2\xbf\xd3\xbf\xd4\xbf\xd5\xbf\xd6\xbf\xd7\xbf\xd8\xbf\xd9\xbf\xda\xbf\xdb\xbf\xdc\xbf\xdd\xbf\xde\xbf\xdf\xbf\xe0\xbf\xe1\xbf\xe2\xbf\xe3\xbf\xe4\xbf\xe5\xbf\xe6\xbf\xe7\xbf\xe8\xbf\xe9\xbf\xea\xbf\xeb\xbf\xec\xbf\xed\xbf\xee\xbf\xef\xbf\xf0\xbf\xf1\xbf\xf2\xbf\xf3\xbf\xf4\xbf\xf5\xbf\xf6\xbf\xf7\xbf\xf8\x6b\xc9\xbf\xf9\xbf\xfa\xbf\xfb\xbf\xfc\xbf\xfd\xc0\x41\xc0\x42\xc0\x43\xc0\x44\xc0\x45\xc0\x46\xc0\x47\xc0\x48\xc0\x49\xc0\x4a\xc0\x4b\xc0\x4c\xc0\x4d\xc0\x4e\xc0\x4f\xc0\x50", /* 9380 */ "\xc0\x51\xc0\x52\xc0\x53\xc0\x54\xc0\x55\xc0\x56\xc0\x57\xc0\x58\xc0\x59\xc0\x5a\xc0\x5b\xc0\x5c\xc0\x5d\xc0\x5e\xc0\x5f\x6b\xcb\xc0\x60\xc0\x61\xc0\x62\xc0\x63\xc0\x64\xc0\x65\xc0\x66\xc0\x67\xc0\x68\xc0\x69\xc0\x6a\xc0\x6b\xc0\x6c\xc0\x6d\xc0\x6e\xc0\x6f\xc0\x70\xc0\x71\xc0\x72\xc0\x73\xc0\x74\xc0\x75\xc0\x76\xc0\x77\xc0\x78\xc0\x79\xc0\x7a\xc0\x7b\xc0\x7c\xc0\x7d\xc0\x7e\xc0\x7f\xc0\x81\xc0\x82\xc0\x83\xc0\x84\xc0\x85\xc0\x86\xc0\x87\xc0\x88\xc0\x89\xc0\x8a\xc0\x8b\xc0\x8c\xc0\x8d\xc0\x8e\xc0\x8f\xc0\x90\xc0\x91\xc0\x92\xc0\x93\xc0\x94\xc0\x95\xc0\x96\xc0\x97\xc0\x98\xc0\x99\xc0\x9a\x6b\xca\xc0\x9b\xc0\x9c\xc0\x9d\xc0\x9e\xc0\x9f\xc0\xa0\xc0\xa1\xc0\xa2\xc0\xa3\xc0\xa4\xc0\xa5\x6c\x8a\xc0\xa6\xc0\xa7\xc0\xa8\xc0\xa9\xc0\xaa\xc0\xab\xc0\xac\xc0\xad\xc0\xae\xc0\xaf\xc0\xb0\xc0\xb1\xc0\xb2\xc0\xb3\xc0\xb4\xc0\xb5\xc0\xb6\xc0\xb7\xc0\xb8\xc0\xb9\xc0\xba\xc0\xbb\xc0\xbc\xc0\xbd\xc0\xbe\xc0\xbf\xc0\xc0\xc0\xc1\xc0\xc2\xc0\xc3\xc0\xc4\xc0\xc5\xc0\xc6\xc0\xc7\xc0\xc8\xc0\xc9\xc0\xca\xc0\xcb\xc0\xcc\xc0\xcd\xc0\xce", /* 9400 */ "\xc0\xcf\xc0\xd0\xc0\xd1\xc0\xd2\xc0\xd3\xc0\xd4\xc0\xd5\xc0\xd6\xc0\xd7\xc0\xd8\xc0\xd9\xc0\xda\xc0\xdb\xc0\xdc\xc0\xdd\xc0\xde\xc0\xdf\xc0\xe0\xc0\xe1\xc0\xe2\xc0\xe3\xc0\xe4\xc0\xe5\xc0\xe6\xc0\xe7\xc0\xe8\xc0\xe9\xc0\xea\xc0\xeb\xc0\xec\xc0\xed\xc0\xee\xc0\xef\xc0\xf0\xc0\xf1\xc0\xf2\xc0\xf3\xc0\xf4\xc0\xf5\xc0\xf6\xc0\xf7\xc0\xf8\xc0\xf9\xc0\xfa\xc0\xfb\xc0\xfc\xc0\xfd\xc1\x41\xc1\x42\xc1\x43\xc1\x44\xc1\x45\xc1\x46\xc1\x47\xc1\x48\xc1\x49\xc1\x4a\xc1\x4b\xc1\x4c\xc1\x4d\xc1\x4e\xc1\x4f\x6b\xcc\xc1\x50\xc1\x51\xc1\x52\xc1\x53\xc1\x54\xc1\x55\xc1\x56\xc1\x57\xc1\x58\xc1\x59\xc1\x5a\xc1\x5b\xc1\x5c\xc1\x5d\xc1\x5e\xc1\x5f\xc1\x60\xc1\x61\xc1\x62\xc1\x63\xc1\x64\xc1\x65\xc1\x66\xc1\x67\xc1\x68\xc1\x69\xc1\x6a\xc1\x6b\xc1\x6c\xc1\x6d\xc1\x6e\xc1\x6f\xc1\x70\xc1\x71\xc1\x72\xc1\x73\xc1\x74\xc1\x75\xc1\x76\xc1\x77\xc1\x78\xc1\x79\xc1\x7a\xc1\x7b\x6b\xcd\xc1\x7c\xc1\x7d\xc1\x7e\xc1\x7f\xc1\x81\xc1\x82\xc1\x83\xc1\x84\xc1\x85\xc1\x86\xc1\x87\xc1\x88\xc1\x89\xc1\x8a\xc1\x8b\xc1\x8c\xc1\x8d\xc1\x8e\xc1\x8f\xc1\x90", /* 9480 */ "\xc1\x91\xc1\x92\xc1\x93\xc1\x94\xc1\x95\x67\xc3\x67\xc4\x67\xc5\x5b\x8c\x4b\xa3\x67\xc7\x67\xc6\x67\xc8\x67\xc9\x54\x45\x67\xca\x67\xcb\xc1\x96\x4c\x50\x4b\x97\x67\xcc\x67\xce\xc1\x97\x67\xcd\xc1\x98\x4c\xc5\x67\xcf\x67\xd0\x67\xd1\x4b\xda\x4a\x4e\x5b\xd2\x52\xc5\x49\x55\x4c\xd5\x67\xd2\x67\xd3\x5a\xbe\x54\x75\x4f\xfa\x57\xd8\x4d\x53\x67\xd5\x67\xd4\x67\xd7\x67\xd6\x53\x45\x67\xd8\x67\xd9\x54\x4e\x67\xda\x54\x4f\x67\xdb\x49\xa6\x67\xdc\x67\xdd\x67\xde\x67\xdf\x67\xe0\x5c\x8b\x67\xe1\x67\xe2\x4e\xd7\x67\xe3\x5a\x6b\x56\xf9\x49\xab\x51\x86\x67\xe4\x54\x46\x52\x4d\xc1\x99\x67\xe5\x67\xe6\x67\xe7\x67\xe8\x67\xe9\x67\xea\x67\xeb\xc1\x9a\x67\xec\x67\xed\x67\xee\xc1\x9b\xc1\x9c\x67\xef\x67\xf0\x67\xf1\x67\xf3\x67\xf2\xc1\x9d\x67\xf4\x57\x4d\x51\xc0\x67\xf5\x67\xf6\x67\xf7\x5b\x41\x67\xf8\x58\x53\x67\xf9\x67\xfa\xc1\x9e\x67\xfb\x67\xfc\x68\x41\x67\xfd\x68\x42\x4c\xf4\x52\x9b\x68\x43\x68\x44\x4f\x62\x59\xbe\x49\xf8\x68\x45\x68\x46\x68\x47\x59\xf7\x68\x48\x5b\xfc\x68\x49\x53\xcb\xc1\x9f\x68\x4a\x68\x4b\x51\x54\x68\x4c", /* 9500 */ "\x58\x9b\x56\x99\x68\x4e\x68\x4d\x4a\x9b\x4d\x99\x68\x4f\x68\x50\x58\xe1\x68\x51\x68\x52\x4c\x87\x58\xbe\x68\x53\x68\x54\x68\x55\x54\xf0\x56\xdf\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x5b\x81\x68\x5b\x4a\xec\x52\x4a\x68\x5c\xc1\xa0\x68\x5d\x68\x5e\x68\x5f\xc1\xa1\x57\xfc\x68\x60\x51\xdf\x4a\xb7\x5c\x56\x4f\x96\xc1\xa2\x58\x67\x68\x63\x68\x61\x68\x62\x68\x64\x4b\xa6\x4e\xfb\x4f\xe1\x52\x6c\x68\x65\x68\x66\xc1\xa3\x68\x67\x68\x6f\x68\x68\x68\x69\x68\x6a\x54\x62\x68\x92\x4b\xcc\x68\x6b\xc1\xa4\x68\x6c\x68\x6d\x4b\xc5\x52\x5e\x68\x6e\xc1\xa5\x68\x70\x68\x71\x68\x72\x5b\x93\xc1\xa6\x68\x73\x52\xf6\xc1\xa7\x68\x74\x52\xf7\x68\x75\x68\x76\x4c\xe3\x48\xf6\x68\x77\x68\x78\x68\x79\xc1\xa8\x68\x7a\x68\x7b\x68\x7c\x68\x7d\xc1\xa9\x68\x7e\x4f\xb4\x68\x82\x68\x7f\x68\x81\xc1\xaa\x68\x83\x68\x84\x51\x6d\x68\x85\x68\x86\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x50\xd7\xc1\xab\x68\x8e\x51\x4d\x68\x8f\x68\x90\x68\x91\xc1\xac\xc1\xad\x58\x83\xc1\xae\xc1\xaf\xc1\xb0\xc1\xb1\xc1\xb2\xc1\xb3\xc1\xb4\xc1\xb5\x4a\x44", /* 9580 */ "\xc1\xb6\xc1\xb7\xc1\xb8\xc1\xb9\xc1\xba\xc1\xbb\xc1\xbc\xc1\xbd\xc1\xbe\xc1\xbf\xc1\xc0\xc1\xc1\xc1\xc2\xc1\xc3\xc1\xc4\xc1\xc5\xc1\xc6\xc1\xc7\xc1\xc8\xc1\xc9\xc1\xca\xc1\xcb\xc1\xcc\xc1\xcd\xc1\xce\xc1\xcf\xc1\xd0\xc1\xd1\xc1\xd2\xc1\xd3\xc1\xd4\xc1\xd5\xc1\xd6\xc1\xd7\xc1\xd8\xc1\xd9\xc1\xda\xc1\xdb\xc1\xdc\xc1\xdd\xc1\xde\xc1\xdf\xc1\xe0\xc1\xe1\xc1\xe2\xc1\xe3\xc1\xe4\xc1\xe5\xc1\xe6\xc1\xe7\xc1\xe8\xc1\xe9\xc1\xea\xc1\xeb\xc1\xec\xc1\xed\xc1\xee\xc1\xef\xc1\xf0\xc1\xf1\xc1\xf2\xc1\xf3\xc1\xf4\xc1\xf5\xc1\xf6\xc1\xf7\xc1\xf8\xc1\xf9\xc1\xfa\xc1\xfb\xc1\xfc\xc1\xfd\xc2\x41\xc2\x42\xc2\x43\xc2\x44\xc2\x45\xc2\x46\xc2\x47\xc2\x48\xc2\x49\xc2\x4a\xc2\x4b\xc2\x4c\xc2\x4d\xc2\x4e\xc2\x4f\xc2\x50\xc2\x51\xc2\x52\xc2\x53\xc2\x54\xc2\x55\xc2\x56\xc2\x57\xc2\x58\xc2\x59\xc2\x5a\xc2\x5b\xc2\x5c\xc2\x5d\xc2\x5e\xc2\x5f\xc2\x60\x52\x65\x62\x65\x55\x61\x62\x66\xc2\x61\x49\x75\x57\xc9\x4a\xb2\x54\xf1\x62\x67\x58\x70\x62\x68\x4e\xe3\x62\x69\x62\x6a\x52\x66\x5b\x42\x52\xd5\x4d\x8c\x57\xc4\x62\x6b\x52\x97\x62\x6c\xc2\x62", /* 9600 */ "\x4c\x47\x4c\xf2\x4d\xd1\x62\x6d\x62\x6e\x5a\xc3\x62\x6f\xc2\x63\x62\x70\x59\x6b\x62\x71\x62\x72\x62\x73\x62\x74\x59\x76\x62\x75\x49\xfa\x50\xba\x62\x76\xc2\x64\x50\xaa\x62\x77\x62\x78\x62\x79\xc2\x65\x62\x7a\x62\x7b\xc2\x66\x4c\xb6\x5d\xe1\xc2\x67\x4b\xd2\xc2\x68\x5d\xe3\x5d\xe2\xc2\x69\xc2\x6a\xc2\x6b\xc2\x6c\xc2\x6d\xc2\x6e\xc2\x6f\x5d\xe5\xc2\x70\xc2\x71\xc2\x72\x54\xed\xc2\x73\xc2\x74\x5d\xe4\x4c\x60\x59\x95\x59\xf4\x5b\x94\x4f\x77\xc2\x75\xc2\x76\xc2\x77\xc2\x78\x5c\x89\x5d\xe7\x5d\xe6\xc2\x79\x48\xa1\x57\x73\xc2\x7a\x5d\xe8\xc2\x7b\x4c\xbc\x4e\xc9\x51\xbc\x51\xa3\x4a\x62\x5d\xe9\xc2\x7c\x51\xa9\x52\xaf\x4f\x55\xc2\x7d\xc2\x7e\x58\x7e\xc2\x7f\xc2\x81\xc2\x82\x5d\xea\x55\x62\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\x49\x7d\xc2\x88\xc2\x89\xc2\x8a\x5d\xeb\xc2\x8b\x4b\xb7\x5a\xb9\xc2\x8c\x4a\x9e\xc2\x8d\xc2\x8e\x5d\xec\x5a\xc8\x58\x75\x53\x84\xc2\x8f\x5d\xed\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\x5d\xee\xc2\x95\x5d\xef\x51\x8b\x56\xd4\x58\x7d\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d", /* 9680 */ "\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\x5a\x88\x51\xa0\xc2\xa3\x5d\xf0\xc2\xa4\xc2\xa5\x56\x86\xc2\xa6\x5d\xf1\xc2\xa7\x56\x87\x59\xfd\xc2\xa8\xc2\xa9\xc2\xaa\x4c\xf3\xc2\xab\xc2\xac\x5d\xf2\x48\xae\x58\x56\xc2\xad\xc2\xae\x5b\x6f\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\x56\x8e\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc2\xc0\x5d\xf3\xc2\xc1\xc2\xc2\x62\x64\xc2\xc3\xc2\xc4\x51\x45\xc2\xc5\xc2\xc6\x6b\xbe\xc2\xc7\xc2\xc8\x6b\xbf\x6b\xc0\x52\xd0\xc2\xc9\x54\xb7\x59\x84\xc2\xca\xc2\xcb\x58\xda\x59\x65\x4e\xae\x4d\x6d\xc2\xcc\x68\x95\xc2\xcd\xc2\xce\x4a\xc5\x5a\x5a\x6b\xc1\x4a\x9c\xc2\xcf\xc2\xd0\x6b\xc2\xc2\xd1\xc2\xd2\x4b\x92\xc2\xd3\xc2\xd4\xc2\xd5\xc2\xd6\xc2\xd7\xc2\xd8\xc2\xd9\xc2\xda\xc2\xdb\xc2\xdc\x6b\xc4\xc2\xdd\xc2\xde\xc2\xdf\xc2\xe0\xc2\xe1\xc2\xe2\xc2\xe3\x5a\x8b\x6b\xa6\x59\x49\xc2\xe4\xc2\xe5\xc2\xe6\xc2\xe7\x6b\xa8\xc2\xe8\xc2\xe9\xc2\xea\x6b\xa7\xc2\xeb\xc2\xec\x51\x84\x50\xd6\xc2\xed\x49\x42\xc2\xee\xc2\xef\xc2\xf0\xc2\xf1\x57\xec\xc2\xf2", /* 9700 */ "\x58\xe7\x6b\xaa\xc2\xf3\xc2\xf4\x58\x97\xc2\xf5\x6b\xa9\x5b\x91\x6b\xab\x52\x59\xc2\xf6\xc2\xf7\xc2\xf8\x4e\x95\x6b\xad\x6b\xac\xc2\xf9\xc2\xfa\xc2\xfb\x52\xdd\xc2\xfc\xc2\xfd\x51\x78\xc3\x41\xc3\x42\xc3\x43\xc3\x44\xc3\x45\x56\x4a\xc3\x46\x58\x5c\xc3\x47\xc3\x48\xc3\x49\xc3\x4a\xc3\x4b\xc3\x4c\xc3\x4d\xc3\x4e\xc3\x4f\xc3\x50\xc3\x51\x6b\xae\xc3\x52\xc3\x53\x6b\xaf\xc3\x54\xc3\x55\x6b\xb0\xc3\x56\x51\xb5\xc3\x57\xc3\x58\xc3\x59\xc3\x5a\xc3\x5b\x48\xd3\x53\x9a\xc3\x5c\xc3\x5d\xc3\x5e\xc3\x5f\x6b\xb1\xc3\x60\xc3\x61\xc3\x62\xc3\x63\xc3\x64\xc3\x65\xc3\x66\xc3\x67\xc3\x68\xc3\x69\xc3\x6a\xc3\x6b\xc3\x6c\xc3\x6d\xc3\x6e\xc3\x6f\xc3\x70\xc3\x71\xc3\x72\x54\x81\x6b\xa5\xc3\x73\xc3\x74\x4f\xb7\xc3\x75\xc3\x76\x4f\xb1\xc3\x77\x4b\x86\xc3\x78\xc3\x79\x4c\x67\xc3\x7a\x50\x5f\x52\x72\x52\x87\xc3\x7b\xc3\x7c\x5c\xcb\xc3\x7d\xc3\x7e\xc3\x7f\x4c\xee\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85\xc3\x86\xc3\x87\xc3\x88\xc3\x89\x4f\x9a\x59\x45\xc3\x8a\x48\xcf\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\x6c\x50\xc3\x90\xc3\x91\xc3\x92", /* 9780 */ "\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\x6c\x51\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\x58\xab\xc3\x9d\x48\xaf\xc3\x9e\xc3\x9f\xc3\xa0\x6c\x52\x6c\x53\xc3\xa1\x6c\x54\xc3\xa2\xc3\xa3\xc3\xa4\x54\x6a\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\x4f\xce\xc3\xac\xc3\xad\x6c\x57\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\x6c\x56\xc3\xb5\x49\x7e\xc3\xb6\x6c\x55\xc3\xb7\xc3\xb8\x6c\x58\xc3\xb9\x6c\x59\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf\xc3\xc0\xc3\xc1\xc3\xc2\xc3\xc3\xc3\xc4\xc3\xc5\xc3\xc6\xc3\xc7\xc3\xc8\xc3\xc9\xc3\xca\xc3\xcb\xc3\xcc\xc3\xcd\xc3\xce\xc3\xcf\xc3\xd0\xc3\xd1\xc3\xd2\xc3\xd3\xc3\xd4\xc3\xd5\xc3\xd6\xc3\xd7\xc3\xd8\xc3\xd9\xc3\xda\xc3\xdb\xc3\xdc\xc3\xdd\xc3\xde\xc3\xdf\xc3\xe0\xc3\xe1\xc3\xe2\xc3\xe3\xc3\xe4\xc3\xe5\xc3\xe6\xc3\xe7\xc3\xe8\xc3\xe9\xc3\xea\x57\xa3\x54\xcc\xc3\xeb\x4d\xaa\x64\xb7\x64\xb8\x64\xb9\x4f\xc1\xc3\xec\xc3\xed\xc3\xee\xc3\xef\xc3\xf0\x59\xf3\xc3\xf1\x5a\xce\x55\x78\xc3\xf2\xc3\xf3\xc3\xf4\xc3\xf5\xc3\xf6\xc3\xf7\xc3\xf8\xc3\xf9\xc3\xfa", /* 9800 */ "\xc3\xfb\xc3\xfc\xc3\xfd\xc4\x41\xc4\x42\xc4\x43\xc4\x44\xc4\x45\xc4\x46\xc4\x47\xc4\x48\xc4\x49\xc4\x4a\xc4\x4b\xc4\x4c\xc4\x4d\xc4\x4e\xc4\x4f\xc4\x50\xc4\x51\xc4\x52\xc4\x53\xc4\x54\xc4\x55\xc4\x56\xc4\x57\xc4\x58\xc4\x59\xc4\x5a\xc4\x5b\xc4\x5c\xc4\x5d\xc4\x5e\xc4\x5f\xc4\x60\xc4\x61\xc4\x62\xc4\x63\xc4\x64\xc4\x65\xc4\x66\xc4\x67\xc4\x68\xc4\x69\xc4\x6a\xc4\x6b\xc4\x6c\xc4\x6d\xc4\x6e\xc4\x6f\xc4\x70\xc4\x71\xc4\x72\xc4\x73\xc4\x74\xc4\x75\xc4\x76\xc4\x77\xc4\x78\xc4\x79\xc4\x7a\xc4\x7b\xc4\x7c\xc4\x7d\xc4\x7e\xc4\x7f\xc4\x81\xc4\x82\xc4\x83\xc4\x84\xc4\x85\xc4\x86\xc4\x87\xc4\x88\xc4\x89\xc4\x8a\xc4\x8b\xc4\x8c\xc4\x8d\xc4\x8e\xc4\x8f\xc4\x90\xc4\x91\xc4\x92\xc4\x93\xc4\x94\xc4\x95\xc4\x96\xc4\x97\xc4\x98\xc4\x99\xc4\x9a\xc4\x9b\xc4\x9c\xc4\x9d\xc4\x9e\xc4\x9f\xc4\xa0\xc4\xa1\xc4\xa2\xc4\xa3\xc4\xa4\xc4\xa5\xc4\xa6\xc4\xa7\xc4\xa8\xc4\xa9\xc4\xaa\xc4\xab\xc4\xac\xc4\xad\xc4\xae\xc4\xaf\xc4\xb0\xc4\xb1\xc4\xb2\xc4\xb3\x59\xb2\x4b\xa4\x54\x8b\x69\x9d\x58\x8f\x56\x53\x58\xea\x64\x90\x57\x88\x4d\x6b\x4b\xd8", /* 9880 */ "\x69\x9e\x48\xe3\x56\x6c\x69\x9f\x5a\xa3\x51\xac\x51\x8d\x53\xc3\x4f\xb0\x69\xa0\x4e\xd4\xc4\xb4\x69\xa1\x69\xa2\xc4\xb5\x69\xa3\x59\xc2\x53\xb4\xc4\xb6\x57\x67\x69\xa4\xc4\xb7\x5a\x51\x50\x65\x56\xe1\xc4\xb8\x69\xa5\x69\xa6\x59\x75\x4b\xed\x69\xa7\x69\xa8\x4b\x7f\x69\xa9\x69\xaa\xc4\xb9\x49\xfb\x69\xab\x69\xac\x54\xa6\xc4\xba\xc4\xbb\xc4\xbc\xc4\xbd\xc4\xbe\xc4\xbf\xc4\xc0\xc4\xc1\xc4\xc2\xc4\xc3\xc4\xc4\xc4\xc5\xc4\xc6\xc4\xc7\xc4\xc8\xc4\xc9\xc4\xca\xc4\xcb\xc4\xcc\xc4\xcd\xc4\xce\xc4\xcf\xc4\xd0\xc4\xd1\xc4\xd2\xc4\xd3\xc4\xd4\xc4\xd5\xc4\xd6\xc4\xd7\xc4\xd8\xc4\xd9\xc4\xda\xc4\xdb\xc4\xdc\xc4\xdd\xc4\xde\xc4\xdf\x4c\x88\xc4\xe0\xc4\xe1\x66\xa8\x66\xa9\x66\xaa\xc4\xe2\x66\xab\xc4\xe3\xc4\xe4\x53\xad\x66\xac\x66\xad\xc4\xe5\xc4\xe6\xc4\xe7\x4c\x69\x55\xb2\xc4\xe8\xc4\xe9\xc4\xea\xc4\xeb\xc4\xec\xc4\xed\xc4\xee\x61\xb7\x6c\x6f\xc4\xef\xc4\xf0\xc4\xf1\xc4\xf2\xc4\xf3\xc4\xf4\xc4\xf5\xc4\xf6\xc4\xf7\xc4\xf8\xc4\xf9\xc4\xfa\xc4\xfb\xc4\xfc\xc4\xfd\xc5\x41\xc5\x42\xc5\x43\xc5\x44\xc5\x45\xc5\x46\xc5\x47\xc5\x48", /* 9900 */ "\xc5\x49\xc5\x4a\xc5\x4b\xc5\x4c\xc5\x4d\xc5\x4e\xc5\x4f\xc5\x50\xc5\x51\xc5\x52\xc5\x53\xc5\x54\xc5\x55\x6c\x70\xc5\x56\xc5\x57\x49\xcc\xc5\x58\xc5\x59\xc5\x5a\xc5\x5b\xc5\x5c\xc5\x5d\xc5\x5e\xc5\x5f\xc5\x60\xc5\x61\xc5\x62\xc5\x63\xc5\x64\xc5\x65\xc5\x66\xc5\x67\xc5\x68\xc5\x69\xc5\x6a\xc5\x6b\xc5\x6c\xc5\x6d\xc5\x6e\xc5\x6f\xc5\x70\xc5\x71\xc5\x72\xc5\x73\xc5\x74\x6c\x71\xc5\x75\xc5\x76\xc5\x77\xc5\x78\xc5\x79\xc5\x7a\xc5\x7b\xc5\x7c\xc5\x7d\xc5\x7e\xc5\x7f\xc5\x81\xc5\x82\xc5\x83\xc5\x84\xc5\x85\xc5\x86\xc5\x87\xc5\x88\xc5\x89\xc5\x8a\xc5\x8b\xc5\x8c\xc5\x8d\xc5\x8e\xc5\x8f\xc5\x90\xc5\x91\xc5\x92\xc5\x93\xc5\x94\xc5\x95\xc5\x96\xc5\x97\xc5\x98\xc5\x99\xc5\x9a\x6c\x73\x6c\x72\xc5\x9b\xc5\x9c\xc5\x9d\xc5\x9e\xc5\x9f\xc5\xa0\xc5\xa1\xc5\xa2\xc5\xa3\xc5\xa4\xc5\xa5\xc5\xa6\xc5\xa7\x61\xba\xc5\xa8\x4e\xa1\xc5\xa9\x61\xbb\x61\xbc\x61\xbd\x61\xbe\x61\xbf\x61\xc0\x4c\x59\x59\xfa\x4f\x44\x55\xcd\x49\x45\x56\x67\xc5\xaa\x61\xc1\x4b\xfb\x54\xc3\x61\xc2\xc5\xab\xc5\xac\x4f\x68\xc5\xad\x49\x9e\x61\xc3\xc5\xae\x4b\xf5", /* 9980 */ "\x61\xc4\x52\xd8\xc5\xaf\xc5\xb0\x61\xc5\x58\x7a\x4d\x7d\x61\xc6\x50\xa0\xc5\xb1\x61\xc7\x49\xf5\xc5\xb2\x61\xc8\xc5\xb3\x51\x94\x61\xc9\x61\xca\x51\xf7\x61\xcb\x61\xcc\x61\xcd\x55\xd6\x5c\xb7\x5d\x86\x58\x84\xc5\xb4\xc5\xb5\xc5\xb6\xc5\xb7\xc5\xb8\xc5\xb9\xc5\xba\xc5\xbb\xc5\xbc\xc5\xbd\xc5\xbe\x68\xa4\xc5\xbf\xc5\xc0\x5e\xaf\xc5\xc1\xc5\xc2\xc5\xc3\xc5\xc4\xc5\xc5\xc5\xc6\xc5\xc7\xc5\xc8\xc5\xc9\xc5\xca\xc5\xcb\xc5\xcc\xc5\xcd\xc5\xce\xc5\xcf\xc5\xd0\xc5\xd1\xc5\xd2\xc5\xd3\xc5\xd4\xc5\xd5\xc5\xd6\xc5\xd7\xc5\xd8\xc5\xd9\xc5\xda\xc5\xdb\xc5\xdc\xc5\xdd\xc5\xde\xc5\xdf\xc5\xe0\xc5\xe1\xc5\xe2\xc5\xe3\xc5\xe4\xc5\xe5\xc5\xe6\xc5\xe7\xc5\xe8\xc5\xe9\xc5\xea\xc5\xeb\xc5\xec\xc5\xed\xc5\xee\xc5\xef\xc5\xf0\xc5\xf1\xc5\xf2\xc5\xf3\xc5\xf4\xc5\xf5\xc5\xf6\xc5\xf7\xc5\xf8\xc5\xf9\xc5\xfa\xc5\xfb\xc5\xfc\xc5\xfd\xc6\x41\xc6\x42\xc6\x43\xc6\x44\xc6\x45\xc6\x46\xc6\x47\xc6\x48\xc6\x49\xc6\x4a\xc6\x4b\xc6\x4c\xc6\x4d\xc6\x4e\xc6\x4f\xc6\x50\xc6\x51\xc6\x52\xc6\x53\xc6\x54\xc6\x55\xc6\x56\xc6\x57\xc6\x58\xc6\x59\xc6\x5a", /* 9a00 */ "\xc6\x5b\xc6\x5c\xc6\x5d\xc6\x5e\xc6\x5f\xc6\x60\xc6\x61\xc6\x62\xc6\x63\xc6\x64\xc6\x65\xc6\x66\xc6\x67\xc6\x68\xc6\x69\xc6\x6a\xc6\x6b\xc6\x6c\xc6\x6d\xc6\x6e\xc6\x6f\xc6\x70\xc6\x71\xc6\x72\xc6\x73\xc6\x74\xc6\x75\xc6\x76\xc6\x77\xc6\x78\xc6\x79\xc6\x7a\xc6\x7b\xc6\x7c\xc6\x7d\xc6\x7e\xc6\x7f\xc6\x81\xc6\x82\xc6\x83\xc6\x84\xc6\x85\xc6\x86\xc6\x87\xc6\x88\xc6\x89\xc6\x8a\xc6\x8b\xc6\x8c\xc6\x8d\xc6\x8e\xc6\x8f\xc6\x90\xc6\x91\xc6\x92\xc6\x93\xc6\x94\xc6\x95\xc6\x96\xc6\x97\xc6\x98\xc6\x99\xc6\x9a\xc6\x9b\xc6\x9c\xc6\x9d\xc6\x9e\xc6\x9f\xc6\xa0\xc6\xa1\xc6\xa2\xc6\xa3\xc6\xa4\xc6\xa5\xc6\xa6\xc6\xa7\xc6\xa8\xc6\xa9\xc6\xaa\xc6\xab\xc6\xac\xc6\xad\xc6\xae\xc6\xaf\xc6\xb0\xc6\xb1\xc6\xb2\xc6\xb3\xc6\xb4\xc6\xb5\xc6\xb6\xc6\xb7\xc6\xb8\xc6\xb9\xc6\xba\xc6\xbb\xc6\xbc\xc6\xbd\xc6\xbe\xc6\xbf\xc6\xc0\xc6\xc1\xc6\xc2\xc6\xc3\xc6\xc4\xc6\xc5\xc6\xc6\xc6\xc7\x51\xec\x5a\xa5\x57\x74\x59\x51\x4a\x7b\x54\x9e\xc6\xc8\x49\xb4\x51\xbe\x63\xdf\x55\xba\x63\xe0\x63\xe1\x4f\xd3\x63\xe2\x5c\x44\x57\x75\x63\xe4\x4e\xdc\x63\xe3", /* 9a80 */ "\x63\xe5\x63\xe6\x51\xed\xc6\xc9\x4f\x5e\x63\xe7\x51\xe5\x4d\xa6\x63\xe8\xc6\xca\x63\xe9\x4a\x72\x59\x8a\xc6\xcb\xc6\xcc\x50\x45\x63\xea\x53\xee\x63\xeb\x63\xec\xc6\xcd\xc6\xce\x63\xed\x53\xac\x63\xee\xc6\xcf\x55\x47\x63\xef\x63\xf0\x63\xf1\x63\x59\x63\xf2\x63\xf3\x51\xe1\x63\xf4\x63\xf5\x5b\xe7\x63\xf6\xc6\xd0\x63\xf7\x4d\x67\xc6\xd1\xc6\xd2\xc6\xd3\xc6\xd4\xc6\xd5\xc6\xd6\xc6\xd7\x6c\x5b\x6c\x5a\xc6\xd8\xc6\xd9\xc6\xda\xc6\xdb\x6c\x5e\x6c\x5c\x4d\xa0\xc6\xdc\x6c\x5f\xc6\xdd\x6c\x60\xc6\xde\xc6\xdf\xc6\xe0\x6c\x62\x6c\x61\x6c\x64\xc6\xe1\xc6\xe2\x6c\x63\xc6\xe3\xc6\xe4\xc6\xe5\xc6\xe6\xc6\xe7\x6c\x65\x6c\x66\xc6\xe8\xc6\xe9\xc6\xea\xc6\xeb\x6c\x67\xc6\xec\x56\x89\xc6\xed\xc6\xee\xc6\xef\xc6\xf0\x4c\xde\xc6\xf1\xc6\xf2\xc6\xf3\xc6\xf4\xc6\xf5\xc6\xf6\x6c\x74\xc6\xf7\x6c\x75\xc6\xf8\xc6\xf9\xc6\xfa\xc6\xfb\x6c\x76\xc6\xfc\xc6\xfd\xc7\x41\xc7\x42\x6c\x78\xc7\x43\x6c\x7a\xc7\x44\x6c\x77\xc7\x45\xc7\x46\xc7\x47\xc7\x48\xc7\x49\xc7\x4a\xc7\x4b\xc7\x4c\xc7\x4d\x6c\x7b\xc7\x4e\x6c\x79\xc7\x4f\xc7\x50\xc7\x51\xc7\x52", /* 9b00 */ "\xc7\x53\xc7\x54\xc7\x55\x5c\x77\xc7\x56\xc7\x57\xc7\x58\xc7\x59\x6c\x7c\xc7\x5a\xc7\x5b\xc7\x5c\xc7\x5d\xc7\x5e\xc7\x5f\x6c\x7d\xc7\x60\xc7\x61\xc7\x62\x6c\x7e\xc7\x63\xc7\x64\xc7\x65\xc7\x66\xc7\x67\xc7\x68\xc7\x69\xc7\x6a\xc7\x6b\xc7\x6c\xc7\x6d\x6c\x7f\xc7\x6e\xc7\x6f\xc7\x70\x6c\x81\xc7\x71\xc7\x72\xc7\x73\xc7\x74\xc7\x75\xc7\x76\xc7\x77\xc7\x78\xc7\x79\xc7\x7a\xc7\x7b\x5e\x6b\xc7\x7c\xc7\x7d\x5c\xa9\xc7\x7e\xc7\x7f\xc7\x81\xc7\x82\xc7\x83\xc7\x84\xc7\x85\xc7\x86\x63\x98\x4d\x8e\xc7\x87\xc7\x88\xc7\x89\xc7\x8a\x50\x9e\x4e\x8b\x6c\x69\x53\xc6\x6c\x68\xc7\x8b\x6c\x6a\x6c\x6c\x6c\x6b\xc7\x8c\xc7\x8d\xc7\x8e\x6c\x6d\xc7\x8f\x57\xb9\xc7\x90\x6c\x6e\xc7\x91\xc7\x92\x52\xa6\xc7\x93\xc7\x94\xc7\x95\xc7\x96\xc7\x97\xc7\x98\xc7\x99\xc7\x9a\xc7\x9b\xc7\x9c\xc7\x9d\xc7\x9e\xc7\x9f\xc7\xa0\xc7\xa1\xc7\xa2\xc7\xa3\xc7\xa4\xc7\xa5\xc7\xa6\xc7\xa7\xc7\xa8\xc7\xa9\xc7\xaa\xc7\xab\xc7\xac\xc7\xad\xc7\xae\xc7\xaf\xc7\xb0\xc7\xb1\xc7\xb2\xc7\xb3\xc7\xb4\xc7\xb5\xc7\xb6\xc7\xb7\xc7\xb8\xc7\xb9\xc7\xba\xc7\xbb\xc7\xbc\xc7\xbd", /* 9b80 */ "\xc7\xbe\xc7\xbf\xc7\xc0\xc7\xc1\xc7\xc2\xc7\xc3\xc7\xc4\xc7\xc5\xc7\xc6\xc7\xc7\xc7\xc8\xc7\xc9\xc7\xca\xc7\xcb\xc7\xcc\xc7\xcd\xc7\xce\xc7\xcf\xc7\xd0\xc7\xd1\xc7\xd2\xc7\xd3\xc7\xd4\xc7\xd5\xc7\xd6\xc7\xd7\xc7\xd8\xc7\xd9\xc7\xda\xc7\xdb\xc7\xdc\xc7\xdd\xc7\xde\xc7\xdf\xc7\xe0\xc7\xe1\xc7\xe2\xc7\xe3\xc7\xe4\xc7\xe5\xc7\xe6\xc7\xe7\xc7\xe8\xc7\xe9\xc7\xea\xc7\xeb\xc7\xec\xc7\xed\xc7\xee\xc7\xef\xc7\xf0\xc7\xf1\xc7\xf2\xc7\xf3\xc7\xf4\xc7\xf5\xc7\xf6\xc7\xf7\xc7\xf8\xc7\xf9\xc7\xfa\xc7\xfb\xc7\xfc\xc7\xfd\xc8\x41\xc8\x42\xc8\x43\xc8\x44\xc8\x45\xc8\x46\xc8\x47\xc8\x48\xc8\x49\xc8\x4a\xc8\x4b\xc8\x4c\xc8\x4d\xc8\x4e\xc8\x4f\xc8\x50\xc8\x51\xc8\x52\xc8\x53\xc8\x54\xc8\x55\xc8\x56\xc8\x57\xc8\x58\xc8\x59\xc8\x5a\xc8\x5b\xc8\x5c\xc8\x5d\xc8\x5e\xc8\x5f\xc8\x60\xc8\x61\xc8\x62\xc8\x63\xc8\x64\xc8\x65\xc8\x66\xc8\x67\xc8\x68\xc8\x69\xc8\x6a\xc8\x6b\xc8\x6c\xc8\x6d\xc8\x6e\xc8\x6f\xc8\x70\xc8\x71\xc8\x72\xc8\x73\xc8\x74\xc8\x75\xc8\x76\xc8\x77\xc8\x78\xc8\x79\xc8\x7a\xc8\x7b\xc8\x7c\xc8\x7d\xc8\x7e\xc8\x7f\xc8\x81", /* 9c00 */ "\xc8\x82\xc8\x83\xc8\x84\xc8\x85\xc8\x86\xc8\x87\xc8\x88\xc8\x89\xc8\x8a\xc8\x8b\xc8\x8c\xc8\x8d\xc8\x8e\xc8\x8f\xc8\x90\xc8\x91\xc8\x92\xc8\x93\xc8\x94\xc8\x95\xc8\x96\xc8\x97\xc8\x98\xc8\x99\xc8\x9a\xc8\x9b\xc8\x9c\xc8\x9d\xc8\x9e\xc8\x9f\xc8\xa0\xc8\xa1\xc8\xa2\xc8\xa3\xc8\xa4\xc8\xa5\xc8\xa6\xc8\xa7\xc8\xa8\xc8\xa9\xc8\xaa\xc8\xab\xc8\xac\xc8\xad\xc8\xae\xc8\xaf\xc8\xb0\xc8\xb1\xc8\xb2\xc8\xb3\xc8\xb4\xc8\xb5\xc8\xb6\xc8\xb7\xc8\xb8\xc8\xb9\xc8\xba\xc8\xbb\xc8\xbc\xc8\xbd\xc8\xbe\xc8\xbf\xc8\xc0\xc8\xc1\xc8\xc2\xc8\xc3\xc8\xc4\xc8\xc5\xc8\xc6\xc8\xc7\xc8\xc8\xc8\xc9\xc8\xca\xc8\xcb\xc8\xcc\xc8\xcd\xc8\xce\xc8\xcf\xc8\xd0\xc8\xd1\xc8\xd2\xc8\xd3\xc8\xd4\xc8\xd5\xc8\xd6\xc8\xd7\xc8\xd8\xc8\xd9\xc8\xda\xc8\xdb\xc8\xdc\xc8\xdd\xc8\xde\xc8\xdf\xc8\xe0\xc8\xe1\xc8\xe2\xc8\xe3\xc8\xe4\xc8\xe5\xc8\xe6\xc8\xe7\xc8\xe8\xc8\xe9\xc8\xea\xc8\xeb\xc8\xec\xc8\xed\xc8\xee\xc8\xef\xc8\xf0\xc8\xf1\xc8\xf2\xc8\xf3\xc8\xf4\xc8\xf5\xc8\xf6\xc8\xf7\xc8\xf8\xc8\xf9\xc8\xfa\xc8\xfb\xc8\xfc\xc8\xfd\x5a\x84\xc9\x41\xc9\x42\x6b\xce", /* 9c80 */ "\xc9\x43\x51\xb2\x6b\xcf\xc9\x44\xc9\x45\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\xc9\x46\xc9\x47\x6b\xd5\xc9\x48\x49\x4b\x6b\xd6\xc9\x49\x6b\xd7\x6b\xd8\x6b\xd9\xc9\x4a\x6b\xda\x6b\xdb\xc9\x4b\xc9\x4c\xc9\x4d\xc9\x4e\x6b\xdc\x6b\xdd\x58\x6a\xc9\x4f\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x50\xef\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\xc9\x50\x6b\xe9\xc9\x51\x6b\xea\x6b\xeb\xc9\x52\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x4f\xa7\xc9\x53\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\xc9\x54\xc9\x55\xc9\x56\xc9\x57\xc9\x58\x54\xf9\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\xc9\x59\xc9\x5a\x6b\xfc\x6b\xfd\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\xc9\x5b\xc9\x5c\x6c\x46\x6c\x47\x6c\x48\x49\x8f\x6c\x49\x6c\x4a\x6c\x4b\xc9\x5d\xc9\x5e\x6c\x4c\x6c\x4d\x51\x7b\x6c\x4e\xc9\x5f\xc9\x60\x6c\x4f\xc9\x61\xc9\x62\xc9\x63\xc9\x64\xc9\x65\xc9\x66\xc9\x67\xc9\x68\xc9\x69\xc9\x6a\xc9\x6b\xc9\x6c\xc9\x6d\xc9\x6e\xc9\x6f\xc9\x70\xc9\x71\xc9\x72\xc9\x73\xc9\x74\xc9\x75\xc9\x76\xc9\x77\xc9\x78\xc9\x79\xc9\x7a\xc9\x7b\xc9\x7c\xc9\x7d", /* 9d00 */ "\xc9\x7e\xc9\x7f\xc9\x81\xc9\x82\xc9\x83\xc9\x84\xc9\x85\xc9\x86\xc9\x87\xc9\x88\xc9\x89\xc9\x8a\xc9\x8b\xc9\x8c\xc9\x8d\xc9\x8e\xc9\x8f\xc9\x90\xc9\x91\xc9\x92\xc9\x93\xc9\x94\xc9\x95\xc9\x96\xc9\x97\xc9\x98\xc9\x99\xc9\x9a\xc9\x9b\xc9\x9c\xc9\x9d\xc9\x9e\xc9\x9f\xc9\xa0\xc9\xa1\xc9\xa2\xc9\xa3\xc9\xa4\xc9\xa5\xc9\xa6\xc9\xa7\xc9\xa8\xc9\xa9\xc9\xaa\xc9\xab\xc9\xac\xc9\xad\xc9\xae\xc9\xaf\xc9\xb0\xc9\xb1\xc9\xb2\xc9\xb3\xc9\xb4\xc9\xb5\xc9\xb6\xc9\xb7\xc9\xb8\xc9\xb9\xc9\xba\xc9\xbb\xc9\xbc\xc9\xbd\xc9\xbe\xc9\xbf\xc9\xc0\xc9\xc1\xc9\xc2\xc9\xc3\xc9\xc4\xc9\xc5\xc9\xc6\xc9\xc7\xc9\xc8\xc9\xc9\xc9\xca\xc9\xcb\xc9\xcc\xc9\xcd\xc9\xce\xc9\xcf\xc9\xd0\xc9\xd1\xc9\xd2\xc9\xd3\xc9\xd4\xc9\xd5\xc9\xd6\xc9\xd7\xc9\xd8\xc9\xd9\xc9\xda\xc9\xdb\xc9\xdc\xc9\xdd\xc9\xde\xc9\xdf\xc9\xe0\xc9\xe1\xc9\xe2\xc9\xe3\xc9\xe4\xc9\xe5\xc9\xe6\xc9\xe7\xc9\xe8\xc9\xe9\xc9\xea\xc9\xeb\xc9\xec\xc9\xed\xc9\xee\xc9\xef\xc9\xf0\xc9\xf1\xc9\xf2\xc9\xf3\xc9\xf4\xc9\xf5\xc9\xf6\xc9\xf7\xc9\xf8\xc9\xf9\xc9\xfa\xc9\xfb\xc9\xfc\xc9\xfd\xca\x41", /* 9d80 */ "\xca\x42\xca\x43\xca\x44\xca\x45\xca\x46\xca\x47\xca\x48\xca\x49\xca\x4a\xca\x4b\xca\x4c\xca\x4d\xca\x4e\xca\x4f\xca\x50\xca\x51\xca\x52\xca\x53\xca\x54\xca\x55\xca\x56\xca\x57\xca\x58\xca\x59\xca\x5a\xca\x5b\xca\x5c\xca\x5d\xca\x5e\xca\x5f\xca\x60\xca\x61\xca\x62\xca\x63\xca\x64\xca\x65\xca\x66\xca\x67\xca\x68\xca\x69\xca\x6a\xca\x6b\xca\x6c\xca\x6d\xca\x6e\xca\x6f\xca\x70\xca\x71\xca\x72\xca\x73\xca\x74\xca\x75\xca\x76\xca\x77\xca\x78\xca\x79\xca\x7a\xca\x7b\xca\x7c\xca\x7d\xca\x7e\xca\x7f\xca\x81\xca\x82\xca\x83\xca\x84\xca\x85\xca\x86\xca\x87\xca\x88\xca\x89\xca\x8a\xca\x8b\xca\x8c\xca\x8d\xca\x8e\xca\x8f\xca\x90\xca\x91\xca\x92\xca\x93\xca\x94\xca\x95\xca\x96\xca\x97\xca\x98\xca\x99\xca\x9a\xca\x9b\xca\x9c\xca\x9d\xca\x9e\xca\x9f\xca\xa0\xca\xa1\xca\xa2\xca\xa3\xca\xa4\xca\xa5\xca\xa6\xca\xa7\xca\xa8\xca\xa9\xca\xaa\xca\xab\xca\xac\xca\xad\xca\xae\xca\xaf\xca\xb0\xca\xb1\xca\xb2\xca\xb3\xca\xb4\xca\xb5\xca\xb6\xca\xb7\xca\xb8\xca\xb9\xca\xba\xca\xbb\xca\xbc\xca\xbd\xca\xbe\xca\xbf\xca\xc0\xca\xc1\xca\xc2", /* 9e00 */ "\xca\xc3\xca\xc4\xca\xc5\xca\xc6\xca\xc7\xca\xc8\xca\xc9\xca\xca\xca\xcb\xca\xcc\xca\xcd\xca\xce\xca\xcf\xca\xd0\xca\xd1\xca\xd2\xca\xd3\xca\xd4\xca\xd5\xca\xd6\xca\xd7\xca\xd8\xca\xd9\xca\xda\xca\xdb\xca\xdc\xca\xdd\xca\xde\xca\xdf\xca\xe0\xca\xe1\x52\xf0\x68\xae\x4e\xa5\x68\xaf\x52\x9a\xca\xe2\x53\x58\x59\x5b\xca\xe3\x68\xb0\x68\xb1\x68\xb2\x68\xb3\x68\xb4\x59\x5c\xca\xe4\x59\x8d\xca\xe5\x68\xb6\x68\xb5\x5a\xa6\xca\xe6\x57\x72\x68\xb7\x68\xb9\x68\xb8\x68\xba\x68\xbb\xca\xe7\xca\xe8\x4c\xea\x68\xbc\x4d\xe7\xca\xe9\x68\xbd\x68\xbe\x4f\xe8\x68\xbf\x4b\xeb\x68\xc0\x68\xc1\x68\xc2\x68\xc3\x54\xb4\x68\xc4\x68\xc5\xca\xea\x68\xc6\x53\x95\xca\xeb\x68\xc7\xca\xec\xca\xed\xca\xee\x68\xc8\xca\xef\x68\xc9\x6c\x5d\xca\xf0\x68\xca\x68\xcb\x68\xcc\xca\xf1\x68\xcd\xca\xf2\xca\xf3\xca\xf4\xca\xf5\x68\xce\x4d\xd6\xca\xf6\x68\xcf\x68\xd0\x68\xd1\x68\xd2\x68\xd3\x68\xd4\x68\xd5\x68\xd7\xca\xf7\xca\xf8\x5a\x45\x68\xd6\xca\xf9\x68\xd8\xca\xfa\xca\xfb\xca\xfc\xca\xfd\xcb\x41\xcb\x42\xcb\x43\xcb\x44\xcb\x45\xcb\x46\x6b\x5a\x51\xb8", /* 9e80 */ "\xcb\x47\xcb\x48\x6c\x85\xcb\x49\xcb\x4a\xcb\x4b\xcb\x4c\x6c\x86\x6c\x87\xcb\x4d\xcb\x4e\x6c\x88\xcb\x4f\xcb\x50\xcb\x51\xcb\x52\xcb\x53\xcb\x54\x6c\x89\x51\xb3\xcb\x55\xcb\x56\xcb\x57\xcb\x58\xcb\x59\xcb\x5a\xcb\x5b\xcb\x5c\xcb\x5d\x6c\x8b\xcb\x5e\x6c\x8c\xcb\x5f\xcb\x60\xcb\x61\xcb\x62\xcb\x63\xcb\x64\x51\xf2\xcb\x65\xcb\x66\xcb\x67\xcb\x68\xcb\x69\xcb\x6a\xcb\x6b\xcb\x6c\xcb\x6d\xcb\x6e\xcb\x6f\xcb\x70\xcb\x71\x6a\xef\xcb\x72\xcb\x73\xcb\x74\x6a\xee\xcb\x75\xcb\x76\x51\xe8\xcb\x77\x6c\x82\x6c\x83\xcb\x78\xcb\x79\xcb\x7a\xcb\x7b\xcb\x7c\x4e\x66\xcb\x7d\xcb\x7e\xcb\x7f\xcb\x81\x5d\x85\xcb\x82\xcb\x83\xcb\x84\x55\xf1\x50\xe7\x68\xa3\xcb\x85\x4d\xd9\xcb\x86\xcb\x87\x54\x4d\xcb\x88\xcb\x89\xcb\x8a\x52\xab\xcb\x8b\xcb\x8c\x6c\x8d\x6c\x8e\x6c\x8f\xcb\x8d\x6c\x91\x6c\x90\xcb\x8e\x6c\x92\xcb\x8f\xcb\x90\x6c\x95\xcb\x91\x6c\x94\xcb\x92\x6c\x93\x6c\x96\xcb\x93\xcb\x94\xcb\x95\xcb\x96\x6c\x97\xcb\x97\xcb\x98\xcb\x99\xcb\x9a\xcb\x9b\xcb\x9c\xcb\x9d\xcb\x9e\xcb\x9f\x67\x8a\xcb\xa0\x67\x8b\x67\x8c\xcb\xa1\x6b\xbb\xcb\xa2", /* 9f00 */ "\xcb\xa3\xcb\xa4\xcb\xa5\xcb\xa6\xcb\xa7\xcb\xa8\xcb\xa9\xcb\xaa\xcb\xab\xcb\xac\xcb\xad\x6b\xbc\xcb\xae\x6b\xbd\x4b\xa5\xcb\xaf\x5c\xbd\xcb\xb0\xcb\xb1\x4d\x64\xcb\xb2\xcb\xb3\xcb\xb4\x5c\xba\xcb\xb5\x5e\xb0\xcb\xb6\xcb\xb7\xcb\xb8\xcb\xb9\xcb\xba\xcb\xbb\x55\xf2\xcb\xbc\x6c\x98\xcb\xbd\xcb\xbe\xcb\xbf\xcb\xc0\xcb\xc1\xcb\xc2\xcb\xc3\xcb\xc4\xcb\xc5\x6c\x99\xcb\xc6\xcb\xc7\x6c\x9a\xcb\xc8\xcb\xc9\xcb\xca\xcb\xcb\xcb\xcc\xcb\xcd\xcb\xce\x6c\x9c\xcb\xcf\x6c\x9b\xcb\xd0\x49\x67\xcb\xd1\x6c\x9d\x6c\x9e\xcb\xd2\xcb\xd3\xcb\xd4\xcb\xd5\xcb\xd6\x6c\x9f\xcb\xd7\xcb\xd8\xcb\xd9\xcb\xda\xcb\xdb\xcb\xdc\xcb\xdd\xcb\xde\xcb\xdf\xcb\xe0\xcb\xe1\x53\xea\x66\xb3\xcb\xe2\xcb\xe3\xcb\xe4\xcb\xe5\xcb\xe6\xcb\xe7\xcb\xe8\xcb\xe9\xcb\xea\xcb\xeb\xcb\xec\xcb\xed\xcb\xee\xcb\xef\xcb\xf0\xcb\xf1\xcb\xf2\xcb\xf3\xcb\xf4\xcb\xf5\xcb\xf6\xcb\xf7\xcb\xf8\xcb\xf9\xcb\xfa\xcb\xfb\xcb\xfc\xcb\xfd\xcc\x41\xcc\x42\xcc\x43\xcc\x44\xcc\x45\xcc\x46\xcc\x47\xcc\x48\xcc\x49\xcc\x4a\xcc\x4b\xcc\x4c\xcc\x4d\xcc\x4e\xcc\x4f\xcc\x50\xcc\x51\x4a\x7d", /* 9f80 */ "\x6b\xb2\xcc\x52\xcc\x53\x6b\xb3\x51\x85\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x54\xa2\x6b\xba\xcc\x54\xcc\x55\xcc\x56\xcc\x57\xcc\x58\xcc\x59\xcc\x5a\xcc\x5b\xcc\x5c\xcc\x5d\xcc\x5e\xcc\x5f\x51\x9b\x4d\x48\x67\x89\xcc\x60\xcc\x61\xcc\x62\x4d\x8b\x5d\x7f\xcc\x63\xcc\x64\xcc\x65\xcc\x66\xcc\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ "\x6f\x75\x6f\x76\x6f\x77\x6f\x78\x6f\x79\x6f\x7a\x6f\x7b\x6f\x7c\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x84\x6f\x85\x6f\x86\x6f\x87\x6f\x88\x6f\x89\x6f\x8a\x6f\x8b\x6f\x8c\x6f\x8d\x6f\x8e\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9c\x6f\x9d\x6f\x9e\x6f\x9f\x6f\xa0\x6f\xa1\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa7\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb3\x6f\xb4\x6f\xb5\x6f\xb6\x6f\xb7\x6f\xb8\x6f\xb9\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc0\x6f\xc1\x6f\xc2\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xc9\x6f\xca\x6f\xcb\x6f\xcc\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd1\x6f\xd2\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xde\x6f\xdf\x6f\xe0\x6f\xe1\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea\x6f\xeb\x6f\xec\x6f\xed\x6f\xee\x6f\xef\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4", /* a080 */ "\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4c\x70\x4d\x70\x4e\x70\x4f\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5e\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6b\x70\x6c\x70\x6d\x70\x6e\x70\x6f\x70\x70\x70\x71\x70\x72\x70\x73\x70\x74\x70\x75\x70\x76\x70\x77\x70\x78\x70\x79\x70\x7a\x70\x7b\x70\x7c\x70\x7d\x70\x7e\x70\x7f\x70\x80\x70\x81\x70\x82\x70\x83\x70\x84\x70\x85\x70\x86\x70\x87\x70\x88\x70\x89\x70\x8a\x70\x8b\x70\x8c\x70\x8d\x70\x8e\x70\x8f\x70\x90\x70\x91\x70\x92\x70\x93\x70\x94\x70\x95\x70\x96\x70\x97\x70\x98\x70\x99\x70\x9a\x70\x9b\x70\x9c\x70\x9d\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xab\x70\xac\x70\xad\x70\xae\x70\xaf\x70\xb0\x70\xb1\x70\xb2\x70\xb3\x70\xb4\x70\xb5\x70\xb6", /* a100 */ "\x70\xb7\x70\xb8\x70\xb9\x70\xba\x70\xbb\x70\xbc\x70\xbd\x70\xbe\x70\xbf\x70\xc0\x70\xc1\x70\xc2\x70\xc3\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc8\x70\xc9\x70\xca\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xd8\x70\xd9\x70\xda\x70\xdb\x70\xdc\x70\xdd\x70\xde\x70\xdf\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe4\x70\xe5\x70\xe6\x70\xe7\x70\xe8\x70\xe9\x70\xea\x70\xeb\x70\xec\x70\xed\x70\xee\x70\xef\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf7\x70\xf8\x70\xf9\x70\xfa\x70\xfb\x70\xfc\x70\xfd\x70\xfe\x71\x41\x71\x42\x71\x43\x71\x44\x71\x45\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4a\x71\x4b\x71\x4c\x71\x4d\x71\x4e\x71\x4f\x71\x50\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5c\x71\x5d\x71\x5e\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x64\x71\x65\x71\x66\x71\x67\x71\x68\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6e\x71\x6f\x71\x70\x71\x71\x71\x72\x71\x73\x71\x74\x71\x75\x71\x76\x71\x77\x71\x78", /* a180 */ "\x71\x79\x71\x7a\x71\x7b\x71\x7c\x71\x7d\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x84\x71\x85\x71\x86\x71\x87\x71\x88\x71\x89\x71\x8a\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x8f\x71\x90\x71\x91\x71\x92\x71\x93\x71\x94\x71\x95\x71\x96\x71\x97\x71\x98\x71\x99\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\x9f\x71\xa0\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa8\x71\xa9\x71\xaa\x71\xab\x71\xac\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb3\x71\xb4\x71\xb5\x71\xb6\x71\xb7\x71\xb8\x71\xb9\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc3\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xce\x71\xcf\x71\xd0\x71\xd1\x71\xd2\x71\xd3\x71\xd4\x71\xd5\x71\xd6\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe0\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe5\x71\xe6\x71\xe7\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xee\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8", /* a200 */ "\x71\xf9\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x47\x72\x48\x72\x49\x72\x4a\x72\x4b\x72\x4c\x72\x4d\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x52\x72\x53\x72\x54\x72\x55\x72\x56\x72\x57\x72\x58\x72\x59\x72\x5a\x72\x5b\x72\x5c\x72\x5d\x72\x5e\x72\x5f\x72\x60\x72\x61\x72\x62\x72\x63\x72\x64\x72\x65\x72\x66\x72\x67\x72\x68\x72\x69\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x6e\x72\x6f\x72\x70\x72\x71\x72\x72\x72\x73\x72\x74\x72\x75\x72\x76\x72\x77\x72\x78\x72\x79\x72\x7a\x72\x7b\x72\x7c\x72\x7d\x72\x7e\x72\x7f\x72\x80\x72\x81\x72\x82\x72\x83\x72\x84\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8a\x72\x8b\x72\x8c\x72\x8d\x72\x8e\x72\x8f\x72\x90\x72\x91\x72\x92\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\x9f\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xac\x72\xad\x72\xae\x72\xaf\x72\xb0\x72\xb1\x72\xb2\x72\xb3\x72\xb4\x72\xb5\x72\xb6\x72\xb7\x72\xb8\x72\xb9\x72\xba", /* a280 */ "\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc1\x72\xc2\x72\xc3\x72\xc4\x72\xc5\x72\xc6\x72\xc7\x72\xc8\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcd\x72\xce\x72\xcf\x72\xd0\x72\xd1\x72\xd2\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd7\x72\xd8\x72\xd9\x72\xda\x72\xdb\x72\xdc\x72\xdd\x72\xde\x72\xdf\x72\xe0\x72\xe1\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xe8\x72\xe9\x72\xea\x72\xeb\x72\xec\x72\xed\x72\xee\x72\xef\x72\xf0\x72\xf1\x72\xf2\x72\xf3\x72\xf4\x72\xf5\x72\xf6\x72\xf7\x72\xf8\x72\xf9\x72\xfa\x72\xfb\x72\xfc\x72\xfd\x72\xfe\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4d\x73\x4e\x73\x4f\x73\x50\x73\x51\x73\x52\x73\x53\x73\x54\x73\x55\x73\x56\x73\x57\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x60\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6c\x73\x6d\x73\x6e\x73\x6f\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c", /* a300 */ "\x73\x7d\x73\x7e\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x84\x73\x85\x73\x86\x73\x87\x73\x88\x73\x89\x73\x8a\x73\x8b\x73\x8c\x73\x8d\x73\x8e\x73\x8f\x73\x90\x73\x91\x73\x92\x73\x93\x73\x94\x73\x95\x73\x96\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9b\x73\x9c\x73\x9d\x73\x9e\x73\x9f\x73\xa0\x73\xa1\x73\xa2\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xa9\x73\xaa\x73\xab\x73\xac\x73\xad\x73\xae\x73\xaf\x73\xb0\x73\xb1\x73\xb2\x73\xb3\x73\xb4\x73\xb5\x73\xb6\x73\xb7\x73\xb8\x73\xb9\x73\xba\x73\xbb\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc0\x73\xc1\x73\xc2\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xc8\x73\xc9\x73\xca\x73\xcb\x73\xcc\x73\xcd\x73\xce\x73\xcf\x73\xd0\x73\xd1\x73\xd2\x73\xd3\x73\xd4\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xd9\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xde\x73\xdf\x73\xe0\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe5\x73\xe6\x73\xe7\x73\xe8\x73\xe9\x73\xea\x73\xeb\x73\xec\x73\xed\x73\xee\x73\xef\x73\xf0\x73\xf1\x73\xf2\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc", /* a380 */ "\x73\xfd\x73\xfe\x74\x41\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x55\x74\x56\x74\x57\x74\x58\x74\x59\x74\x5a\x74\x5b\x74\x5c\x74\x5d\x74\x5e\x74\x5f\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6d\x74\x6e\x74\x6f\x74\x70\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x76\x74\x77\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7e\x74\x7f\x74\x80\x74\x81\x74\x82\x74\x83\x74\x84\x74\x85\x74\x86\x74\x87\x74\x88\x74\x89\x74\x8a\x74\x8b\x74\x8c\x74\x8d\x74\x8e\x74\x8f\x74\x90\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96\x74\x97\x74\x98\x74\x99\x74\x9a\x74\x9b\x74\x9c\x74\x9d\x74\x9e\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xa7\x74\xa8\x74\xa9\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xba\x74\xbb\x74\xbc\x74\xbd\x74\xbe", /* a400 */ "\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd2\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdc\x74\xdd\x74\xde\x74\xdf\x74\xe0\x74\xe1\x74\xe2\x74\xe3\x74\xe4\x74\xe5\x74\xe6\x74\xe7\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xee\x74\xef\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf4\x74\xf5\x74\xf6\x74\xf7\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x41\x75\x42\x75\x43\x75\x44\x75\x45\x75\x46\x75\x47\x75\x48\x75\x49\x75\x4a\x75\x4b\x75\x4c\x75\x4d\x75\x4e\x75\x4f\x75\x50\x75\x51\x75\x52\x75\x53\x75\x54\x75\x55\x75\x56\x75\x57\x75\x58\x75\x59\x75\x5a\x75\x5b\x75\x5c\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x65\x75\x66\x75\x67\x75\x68\x75\x69\x75\x6a\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x72\x75\x73\x75\x74\x75\x75\x75\x76\x75\x77\x75\x78\x75\x79\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x7f\x75\x80", /* a480 */ "\x75\x81\x75\x82\x75\x83\x75\x84\x75\x85\x75\x86\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8b\x75\x8c\x75\x8d\x75\x8e\x75\x8f\x75\x90\x75\x91\x75\x92\x75\x93\x75\x94\x75\x95\x75\x96\x75\x97\x75\x98\x75\x99\x75\x9a\x75\x9b\x75\x9c\x75\x9d\x75\x9e\x75\x9f\x75\xa0\x75\xa1\x75\xa2\x75\xa3\x75\xa4\x75\xa5\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xab\x75\xac\x75\xad\x75\xae\x75\xaf\x75\xb0\x75\xb1\x75\xb2\x75\xb3\x75\xb4\x75\xb5\x75\xb6\x75\xb7\x75\xb8\x75\xb9\x75\xba\x75\xbb\x75\xbc\x75\xbd\x75\xbe\x75\xbf\x75\xc0\x75\xc1\x75\xc2\x75\xc3\x75\xc4\x75\xc5\x75\xc6\x75\xc7\x75\xc8\x75\xc9\x75\xca\x75\xcb\x75\xcc\x75\xcd\x75\xce\x75\xcf\x75\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1", /* e080 */ "\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85", /* e100 */ "\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48", /* e180 */ "\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9", /* e200 */ "\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d", /* e280 */ "\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50", /* e300 */ "\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1", /* e380 */ "\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95", /* e400 */ "\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58", /* e480 */ "\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9", /* e500 */ "\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d", /* e580 */ "\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60", /* e600 */ "\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1", /* e680 */ "\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5", /* e700 */ "\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x80\x41\x80\x42\x80\x43\x80\x44\x80\x45\x80\x46\x80\x47\x80\x48\x80\x49\x80\x4a\x80\x4b\x80\x4c\x80\x4d\x80\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x90\xfc\x91\xfc\x92\xfc\x93\xfc\x94\xfc\x95\xfc\x96\xfc\x97\xfc\x98\xfc\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x57\xce\x58\xce\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x67\x00\x00\x00\x00\x00\x00\x00\x00\xce\x6c\xce\x6d\x00\x00\x00\x00\x00\x00\x00\x00\xce\x72\xce\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x96\xce\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5b\x44\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x46\xce\x47\xce\x48\xce\x49\x00\x00\xce\x4a\x00\x00\xce\x4b\xce\x4c\x00\x00\x00\x00\x00\x00\xce\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x4e\xce\x4f\xce\x50\x00\x00\xce\x51\xce\x52\x00\x00\x00\x00\xce\x53\xce\x54\xce\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x47\xf8\x48\xf8\x49\xf8\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x6b\xf8\x6c\xf8\x6d\xf8\x6e\x00\x00\x00\x00", /* fb80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x7f\xf8\x80\xf8\x81\xf8\x82\xf8\x83\xf8\x84\xf8\x85\xf8\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x9b\xf8\x9c\xf8\x9d\xf8\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xc4\xf8\xc5\xf8\xc6\xf8\xc7\xf8\xc8\xf8\xc9\xf8\xca\xf8\xcb\xf8\xcc\xf8\xcd\xf8\xce\xf8\xcf\xf8\xd0\xf8\xd1\xf8\xd2\xf8\xd3\xf8\xd4\xf8\xd5\xf8\xd6\xf8\xd7\xf8\xd8\xf8\xd9\xf8\xda\xf8\xdb\xf8\xdc\xf8\xdd\xf8\xde\xf8\xdf\xf8\xe0\xf8\xe1\xf8\xe2\xf8\xe3\xf8\xe4\xf8\xe5\xf8\xe6\xf8\xe7\xf8\xe8\xf8\xe9\xf8\xea\xf8\xeb\xf8\xec\xf8\xed\xf8\xee\xf8\xef\xf8\xf0", /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa8\x47\x51\x00\x00\x47\x52\x47\x53\x47\x41\x47\x42\x47\x4f\x47\x50\x47\x43\x47\x44\x47\x4d\x47\x4e\x47\x47\x47\x48\x47\x45\x47\x46\x47\x49\x47\x4a\x47\x4b\x47\x4c\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa9\xcd\xaa\xcd\xab\xcd\xac\xcd\xad\xcd\xae\xcd\xaf\xcd\xb0\xcd\xb1\xcd\xb2\x00\x00\xcd\xb3\xcd\xb4\xcd\xb5\xcd\xb6\x00\x00\xcd\xb7\xcd\xb8\xcd\xb9\xcd\xba\xcd\xbb\xcd\xbc\xcd\xbd\xcd\xbe\xcd\xbf\xcd\xc0\xcd\xc1\xcd\xc2\xcd\xc3\xcd\xc4\x00\x00\xcd\xc5\xcd\xc6\xcd\xc7\xcd\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fe80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xd0\xfb\xd1\xfb\xd2\xfb\xd3\xfb\xd4\xfb\xd5\xfb\xd6\xfb\xd7\xfb\xd8\xfb\xd9\x00\x00\x00\x00\xfb\xdc\xfb\xdd\xfb\xde\xfb\xdf\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xe4\xfb\xe5\xfb\xe6\xfb\xe7\xfb\xe8\xfb\xe9\xfb\xea\xfb\xeb\xfb\xec\xfb\xed\xfb\xee\xfb\xef\xfb\xf0\xfb\xf1\x00\x00\x00\x00\xfb\xf4\xfb\xf5\xfb\xf6\xfb\xf7\xfb\xf8\xfb\xf9\xfb\xfa\xfb\xfb\xfb\xfc\xfb\xfd\xfb\xfe\xfc\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x52\xfc\x53\xfc\x54\xfc\x55\xfc\x56\xfc\x57\xfc\x58\xfc\x59\xfc\x5a\xfc\x5b\xfc\x5c\xfc\x5d\xfc\x5e\xfc\x5f\xfc\x60\xfc\x61\xfc\x62\xfc\x63\xfc\x64\xfc\x65\xfc\x66\xfc\x67\xfc\x68\xfc\x69\xfc\x6a\xfc\x6b\xfc\x6c\xfc\x6d\xfc\x6e\xfc\x6f\xfc\x70\xfc\x71\xfc\x72\xfc\x73\xfc\x74\xfc\x75\xfc\x76\xfc\x77\xfc\x78\xfc\x79\xfc\x7a\xfc\x7b\xfc\x7c\xfc\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x84\xfc\x85\x00\x00\x00\x00\x00\x00", /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-1388_P103-2001 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x21\x6a\x21\x6b\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\xf8\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x15\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x64\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x65\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x16\x30\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x36\x22\x27\x22\x28\x22\x11\x22\x0f\x22\x2a\x22\x29\x22\x08\x22\x37\x22\x1a\x22\xa5\x22\x25\x22\x20\x23\x12\x22\x99\x22\x2b\x22\x2e\x22\x61\x22\x4c\x22\x48\x22\x3d\x22\x1d\x00\x00\x22\x6e\x22\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x20\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x88\x24\x89\x24\x8a\x24\x8b\x24\x8c\x24\x8d\x24\x8e\x24\x8f\x24\x90\x24\x91\x24\x92\x24\x93\x24\x94\x24\x95\x24\x96\x24\x97\x24\x98\x24\x99\x24\x9a\x24\x9b\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x24\x7e\x24\x7f\x24\x80\x24\x81\x24\x82\x24\x83\x24\x84\x24\x85\x24\x86\x24\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x20\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x20\x32\x21\x32\x22\x32\x23\x32\x24\x32\x25\x32\x26\x32\x27\x32\x28\x32\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xe1\x01\xce\x00\xe0\x01\x13\x00\xe9\x01\x1b\x00\xe8\x01\x2b\x00\xed\x01\xd0\x00\xec\x01\x4d\x00\xf3\x01\xd2\x00\xf2\x01\x6b\x00\xfa\x01\xd4\x00\xf9\x01\xd6\x01\xd8\x01\xda\x01\xdc\x00\xfc\x00\xea\x02\x51\xe7\xc7\x01\x44\x01\x48\x01\xf9\x02\x61\x00\x00\x00\x00\x00\x00\x00\x00\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f", /* 4680 */ "\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x25\x01\x25\x02\x25\x03\x25\x04\x25\x05\x25\x06\x25\x07\x25\x08\x25\x09\x25\x0a\x25\x0b\x25\x0c\x25\x0d\x25\x0e\x25\x0f\x25\x10\x25\x11\x25\x12\x25\x13\x25\x14\x25\x15\x25\x16\x25\x17\x25\x18\x25\x19\x25\x1a\x25\x1b\x25\x1c\x25\x1d\x25\x1e\x25\x1f\x25\x20\x25\x21\x25\x22\x25\x23\x25\x24\x25\x25\x25\x26\x25\x27\x25\x28\x25\x29\x25\x2a\x25\x2b\x25\x2c\x25\x2d\x25\x2e\x25\x2f\x25\x30\x25\x31\x25\x32\x25\x33\x25\x34\x25\x35\x25\x36\x25\x37\x25\x38\x25\x39\x25\x3a\x25\x3b\x25\x3c\x25\x3d\x25\x3e\x25\x3f\x25\x40\x25\x41\x25\x42\x25\x43\x25\x44\x25\x45\x25\x46\x25\x47\x25\x48\x25\x49\x25\x4a\x25\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x35\xfe\x36\xfe\x39\xfe\x3a\xfe\x3f\xfe\x40\xfe\x3d\xfe\x3e\xfe\x41\xfe\x42\xfe\x43\xfe\x44\xfe\x3b\xfe\x3c\xfe\x37\xfe\x38\xfe\x31\xfe\x33\xfe\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x06\x01\x06\x02\x06\x03\x06\x04\x06\x05\x06\x06\x06\x07\x06\x08\x06\x09\x06\x0a\x06\x0b\x06\x0c\x06\x0d\x06\x0e\x06\x0f\x06\x10\x06\x11\x06\x12\x06\x13\x06\x14\x06\x15\x06\x16\x06\x17\x06\x18\x06\x19\x06\x1a\x06\x1b\x06\x1c\x06\x1d\x06\x1e\x06\x1f\x06\x20\x06\x21\x06\x22", /* 4780 */ "\x06\x23\x06\x24\x06\x25\x06\x26\x06\x27\x06\x28\x06\x29\x06\x2a\x06\x2b\x06\x2c\x06\x2d\x06\x2e\x06\x2f\x06\x30\x06\x31\x06\x32\x06\x33\x06\x34\x06\x35\x06\x36\x06\x37\x06\x38\x06\x39\x06\x3a\x06\x3b\x06\x3c\x06\x3d\x06\x3e\x06\x3f\x06\x40\x06\x41\x06\x42\x06\x43\x06\x44\x06\x45\x06\x46\x06\x47\x06\x48\x06\x49\x06\x4a\x06\x4b\x06\x4c\x06\x4d\x06\x4e\x06\x4f\x06\x50\x06\x51\x06\x52\x06\x53\x06\x54\x06\x55\x06\x56\x06\x57\x06\x58\x06\x59\x06\x5a\x06\x5b\x06\x5c\x06\x5d\x06\x5e\x06\x5f\x06\x60\x06\x61\x06\x62\x06\x63\x06\x64\x06\x65\x06\x66\x06\x67\x06\x68\x06\x69\x06\x6a\x06\x6b\x06\x6c\x06\x6d\x06\x6e\x06\x6f\x06\x70\x06\x71\x06\x72\x06\x73\x06\x74\x06\x75\x06\x76\x06\x77\x06\x78\x06\x79\x06\x7a\x06\x7b\x06\x7c\x06\x7d\x06\x7e\x06\x7f\x06\x80\x06\x81\x06\x82\x06\x83\x06\x84\x06\x85\x06\x86\x06\x87\x06\x88\x06\x89\x06\x8a\x06\x8b\x06\x8c\x06\x8d\x06\x8e\x06\x8f\x06\x90\x06\x91\x06\x92\x06\x93\x06\x94\x06\x95\x06\x96\x06\x97\x06\x98\x06\x99\x06\x9a\x06\x9b\x06\x9c\x06\x9d\x06\x9e\x06\x9f\x06\xa0\x06\xa1\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\xa2\x06\xa3\x06\xa4\x06\xa5\x06\xa6\x06\xa7\x06\xa8\x06\xa9\x06\xaa\x06\xab\x06\xac\x06\xad\x06\xae\x06\xaf\x06\xb0\x06\xb1\x06\xb2\x06\xb3\x06\xb4\x06\xb5\x06\xb6\x06\xb7\x06\xb8\x06\xb9\x06\xba\x06\xbb\x06\xbc\x06\xbd\x06\xbe\x06\xbf\x06\xc0\x06\xc1\x06\xc2\x06\xc3\x06\xc4\x06\xc5\x06\xc6\x06\xc7\x06\xc8\x06\xc9\x06\xca\x06\xcb\x06\xcc\x06\xcd\x06\xce\x06\xcf\x06\xd0\x06\xd1\x06\xd2\x06\xd3\x06\xd4\x06\xd5\x06\xd6\x06\xd7\x06\xd8\x06\xd9\x06\xda\x06\xdb\x06\xdc\x06\xdd\x06\xde\x06\xdf\x06\xe0", /* 4880 */ "\x06\xe1\x06\xe2\x06\xe3\x06\xe4\x06\xe5\x06\xe6\x06\xe7\x06\xe8\x06\xe9\x06\xea\x06\xeb\x06\xec\x06\xed\x06\xee\x06\xef\x06\xf0\x06\xf1\x06\xf2\x06\xf3\x06\xf4\x06\xf5\x06\xf6\x06\xf7\x06\xf8\x06\xf9\x06\xfa\x06\xfb\x06\xfc\x06\xfd\x06\xfe\x06\xff\x00\x00\x55\x4a\x96\x3f\x57\xc3\x63\x28\x54\xce\x55\x09\x54\xc0\x76\x91\x76\x4c\x85\x3c\x77\xee\x82\x7e\x78\x8d\x72\x31\x96\x98\x97\x8d\x6c\x28\x5b\x89\x4f\xfa\x63\x09\x66\x97\x5c\xb8\x80\xfa\x68\x48\x80\xae\x66\x02\x76\xce\x51\xf9\x65\x56\x71\xac\x7f\xf1\x88\x84\x50\xb2\x59\x65\x61\xca\x6f\xb3\x82\xad\x63\x4c\x62\x52\x53\xed\x54\x27\x7b\x06\x51\x6b\x75\xa4\x5d\xf4\x62\xd4\x8d\xcb\x97\x76\x62\x8a\x80\x19\x57\x5d\x97\x38\x7f\x62\x72\x38\x76\x7d\x67\xcf\x76\x7e\x64\x46\x4f\x70\x8d\x25\x62\xdc\x7a\x17\x65\x91\x73\xed\x64\x2c\x62\x73\x82\x2c\x98\x81\x67\x7f\x72\x48\x62\x6e\x62\xcc\x4f\x34\x74\xe3\x53\x4a\x52\x9e\x7e\xca\x90\xa6\x5e\x2e\x68\x86\x69\x9c\x81\x80\x7e\xd1\x68\xd2\x78\xc5\x86\x8c\x95\x51\x50\x8d\x8c\x24\x82\xde\x80\xde\x53\x05\x89\x12\x52\x65\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x84\x96\xf9\x4f\xdd\x58\x21\x99\x71\x5b\x9d\x62\xb1\x62\xa5\x66\xb4\x8c\x79\x9c\x8d\x72\x06\x67\x6f\x78\x91\x60\xb2\x53\x51\x53\x17\x8f\x88\x80\xcc\x8d\x1d\x94\xa1\x50\x0d\x72\xc8\x59\x07\x60\xeb\x71\x19\x88\xab\x59\x54\x82\xef\x67\x2c\x7b\x28\x5d\x29\x7e\xf7\x75\x2d\x6c\xf5\x8e\x66\x8f\xf8\x90\x3c\x9f\x3b\x6b\xd4\x91\x19\x7b\x14\x5f\x7c\x78\xa7\x84\xd6\x85\x3d\x6b\xd5\x6b\xd9\x6b\xd6\x5e\x01\x5e\x87\x75\xf9\x95\xed\x65\x5d\x5f\x0a\x5f\xc5\x8f\x9f\x58\xc1\x81\xc2\x90\x7f\x96\x5b\x97\xad\x8f\xb9", /* 4980 */ "\x00\x00\x7f\x16\x8d\x2c\x62\x41\x4f\xbf\x53\xd8\x53\x5e\x8f\xa8\x8f\xa9\x8f\xab\x90\x4d\x68\x07\x5f\x6a\x81\x98\x88\x68\x9c\xd6\x61\x8b\x52\x2b\x76\x2a\x5f\x6c\x65\x8c\x6f\xd2\x6e\xe8\x5b\xbe\x64\x48\x51\x75\x51\xb0\x67\xc4\x4e\x19\x79\xc9\x99\x7c\x70\xb3\x75\xc5\x5e\x76\x73\xbb\x83\xe0\x64\xad\x62\xe8\x94\xb5\x6c\xe2\x53\x5a\x52\xc3\x64\x0f\x94\xc2\x7b\x94\x4f\x2f\x5e\x1b\x82\x36\x81\x16\x81\x8a\x6e\x24\x6c\xca\x9a\x73\x63\x55\x53\x5c\x54\xfa\x88\x65\x57\xe0\x4e\x0d\x5e\x03\x6b\x65\x7c\x3f\x90\xe8\x60\x16\x64\xe6\x73\x1c\x88\xc1\x67\x50\x62\x4d\x8d\x22\x77\x6c\x8e\x29\x91\xc7\x5f\x69\x83\xdc\x85\x21\x99\x10\x53\xc2\x86\x95\x6b\x8b\x60\xed\x60\xe8\x70\x7f\x82\xcd\x82\x31\x4e\xd3\x6c\xa7\x85\xcf\x64\xcd\x7c\xd9\x69\xfd\x66\xf9\x83\x49\x53\x95\x7b\x56\x4f\xa7\x51\x8c\x6d\x4b\x5c\x42\x8e\x6d\x63\xd2\x53\xc9\x83\x2c\x83\x36\x67\xe5\x78\xb4\x64\x3d\x5b\xdf\x5c\x94\x5d\xee\x8b\xe7\x62\xc6\x67\xf4\x8c\x7a\x64\x00\x63\xba\x87\x49\x99\x8b\x8c\x17\x7f\x20\x94\xf2\x4e\xa7\x96\x10\x98\xa4\x66\x0c\x73\x16\x00\x00\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x3a\x5c\x1d\x5e\x38\x95\x7f\x50\x7f\x80\xa0\x53\x82\x65\x5e\x75\x45\x55\x31\x50\x21\x8d\x85\x62\x84\x94\x9e\x67\x1d\x56\x32\x6f\x6e\x5d\xe2\x54\x35\x70\x92\x8f\x66\x62\x6f\x64\xa4\x63\xa3\x5f\x7b\x6f\x88\x90\xf4\x81\xe3\x8f\xb0\x5c\x18\x66\x68\x5f\xf1\x6c\x89\x96\x48\x8d\x81\x88\x6c\x64\x91\x79\xf0\x57\xce\x6a\x59\x62\x10\x54\x48\x4e\x58\x7a\x0b\x60\xe9\x6f\x84\x8b\xda\x62\x7f\x90\x1e\x9a\x8b\x79\xe4\x54\x03\x75\xf4\x63\x01\x53\x19\x6c\x60\x8f\xdf\x5f\x1b\x9a\x70\x80\x3b\x9f\x7f\x4f\x88\x5c\x3a", /* 4a80 */ "\x00\x00\x8d\x64\x7f\xc5\x65\xa5\x70\xbd\x51\x45\x51\xb2\x86\x6b\x5d\x07\x5b\xa0\x62\xbd\x91\x6c\x75\x74\x8e\x0c\x7a\x20\x61\x01\x7b\x79\x4e\xc7\x7e\xf8\x77\x85\x4e\x11\x81\xed\x52\x1d\x51\xfa\x6a\x71\x53\xa8\x8e\x87\x95\x04\x96\xcf\x6e\xc1\x96\x64\x69\x5a\x78\x40\x50\xa8\x77\xd7\x64\x10\x89\xe6\x59\x04\x63\xe3\x5d\xdd\x7a\x7f\x69\x3d\x4f\x20\x82\x39\x55\x98\x4e\x32\x75\xae\x7a\x97\x5e\x62\x5e\x8a\x95\xef\x52\x1b\x54\x39\x70\x8a\x63\x76\x95\x24\x57\x82\x66\x25\x69\x3f\x91\x87\x55\x07\x6d\xf3\x7e\xaf\x88\x22\x62\x33\x7e\xf0\x75\xb5\x83\x28\x78\xc1\x96\xcc\x8f\x9e\x61\x48\x74\xf7\x8b\xcd\x6b\x64\x52\x3a\x8d\x50\x6b\x21\x80\x6a\x84\x71\x56\xf1\x53\x06\x4e\xce\x4e\x1b\x51\xd1\x7c\x97\x91\x8b\x7c\x07\x4f\xc3\x8e\x7f\x7b\xe1\x7a\x9c\x64\x67\x5d\x14\x50\xac\x81\x06\x76\x01\x7c\xb9\x6d\xec\x7f\xe0\x67\x51\x5b\x58\x5b\xf8\x78\xcb\x64\xae\x64\x13\x63\xaa\x63\x2b\x95\x19\x64\x2d\x8f\xbe\x7b\x54\x76\x29\x62\x53\x59\x27\x54\x46\x6b\x79\x50\xa3\x62\x34\x5e\x26\x6b\x86\x4e\xe3\x8d\x37\x88\x8b\x5f\x85\x90\x2e\x00\x00\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x20\x80\x3d\x62\xc5\x4e\x39\x53\x55\x90\xf8\x63\xb8\x80\xc6\x65\xe6\x6c\x2e\x4f\x46\x60\xee\x6d\xe1\x8b\xde\x5f\x39\x86\xcb\x5f\x53\x63\x21\x51\x5a\x83\x61\x68\x63\x52\x00\x63\x63\x8e\x48\x50\x12\x5c\x9b\x79\x77\x5b\xfc\x52\x30\x7a\x3b\x60\xbc\x90\x53\x76\xd7\x5f\xb7\x5f\x97\x76\x84\x8e\x6c\x70\x6f\x76\x7b\x7b\x49\x77\xaa\x51\xf3\x90\x93\x58\x24\x4f\x4e\x6e\xf4\x8f\xea\x65\x4c\x7b\x1b\x72\xc4\x6d\xa4\x7f\xdf\x5a\xe1\x62\xb5\x5e\x95\x57\x30\x84\x82\x7b\x2c\x5e\x1d\x5f\x1f\x90\x12\x7f\x14\x98\xa0", /* 4b80 */ "\x00\x00\x63\x82\x6e\xc7\x78\x98\x70\xb9\x51\x78\x97\x5b\x57\xab\x75\x35\x4f\x43\x75\x38\x5e\x97\x60\xe6\x59\x60\x6d\xc0\x6b\xbf\x78\x89\x53\xfc\x96\xd5\x51\xcb\x52\x01\x63\x89\x54\x0a\x94\x93\x8c\x03\x8d\xcc\x72\x39\x78\x9f\x87\x76\x8f\xed\x8c\x0d\x53\xe0\x4e\x01\x76\xef\x53\xee\x94\x89\x98\x76\x9f\x0e\x95\x2d\x5b\x9a\x8b\xa2\x4e\x22\x4e\x1c\x51\xac\x84\x63\x61\xc2\x52\xa8\x68\x0b\x4f\x97\x60\x6b\x51\xbb\x6d\x1e\x51\x5c\x62\x96\x65\x97\x96\x61\x8c\x46\x90\x17\x75\xd8\x90\xfd\x77\x63\x6b\xd2\x72\x8a\x72\xec\x8b\xfb\x58\x35\x77\x79\x8d\x4c\x67\x5c\x95\x40\x80\x9a\x5e\xa6\x6e\x21\x59\x92\x7a\xef\x77\xed\x95\x3b\x6b\xb5\x65\xad\x7f\x0e\x58\x06\x51\x51\x96\x1f\x5b\xf9\x58\xa9\x54\x28\x8e\x72\x65\x66\x98\x7f\x56\xe4\x94\x9d\x76\xfe\x90\x41\x63\x87\x54\xc6\x59\x1a\x59\x3a\x57\x9b\x8e\xb2\x67\x35\x8d\xfa\x82\x35\x52\x41\x60\xf0\x58\x15\x86\xfe\x5c\xe8\x9e\x45\x4f\xc4\x98\x9d\x8b\xb9\x5a\x25\x60\x76\x53\x84\x62\x7c\x90\x4f\x91\x02\x99\x7f\x60\x69\x80\x0c\x51\x3f\x80\x33\x5c\x14\x99\x75\x6d\x31\x4e\x8c\x00\x00\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x30\x53\xd1\x7f\x5a\x7b\x4f\x4f\x10\x4e\x4f\x96\x00\x6c\xd5\x73\xd0\x85\xe9\x5e\x06\x75\x6a\x7f\xfb\x6a\x0a\x77\xfe\x94\x92\x7e\x41\x51\xe1\x70\xe6\x53\xcd\x8f\xd4\x83\x03\x8d\x29\x72\xaf\x99\x6d\x6c\xdb\x57\x4a\x82\xb3\x65\xb9\x80\xaa\x62\x3f\x96\x32\x59\xa8\x4e\xff\x8b\xbf\x7e\xba\x65\x3e\x83\xf2\x97\x5e\x55\x61\x98\xde\x80\xa5\x53\x2a\x8b\xfd\x54\x20\x80\xba\x5e\x9f\x6c\xb8\x8d\x39\x82\xac\x91\x5a\x54\x29\x6c\x1b\x52\x06\x7e\xb7\x57\x5f\x71\x1a\x6c\x7e\x7c\x89\x59\x4b\x4e\xfd\x5f\xff\x61\x24", /* 4c80 */ "\x00\x00\x7c\xaa\x4e\x30\x5c\x01\x67\xab\x87\x02\x5c\xf0\x95\x0b\x98\xce\x75\xaf\x70\xfd\x90\x22\x51\xaf\x7f\x1d\x8b\xbd\x59\x49\x51\xe4\x4f\x5b\x54\x26\x59\x2b\x65\x77\x80\xa4\x5b\x75\x62\x76\x62\xc2\x8f\x90\x5e\x45\x6c\x1f\x7b\x26\x4f\x0f\x4f\xd8\x67\x0d\x6d\x6e\x6d\xaa\x79\x8f\x88\xb1\x5f\x17\x75\x2b\x62\x9a\x8f\x85\x4f\xef\x91\xdc\x65\xa7\x81\x2f\x81\x51\x5e\x9c\x81\x50\x8d\x74\x52\x6f\x89\x86\x8d\x4b\x59\x0d\x50\x85\x4e\xd8\x96\x1c\x72\x36\x81\x79\x8d\x1f\x5b\xcc\x8b\xa3\x96\x44\x59\x87\x7f\x1a\x54\x90\x56\x76\x56\x0e\x8b\xe5\x65\x39\x69\x82\x94\x99\x76\xd6\x6e\x89\x5e\x72\x75\x18\x67\x46\x67\xd1\x7a\xff\x80\x9d\x8d\x76\x61\x1f\x79\xc6\x65\x62\x8d\x63\x51\x88\x52\x1a\x94\xa2\x7f\x38\x80\x9b\x7e\xb2\x5c\x97\x6e\x2f\x67\x60\x7b\xd9\x76\x8b\x9a\xd8\x81\x8f\x7f\x94\x7c\xd5\x64\x1e\x95\x50\x7a\x3f\x54\x4a\x54\xe5\x6b\x4c\x64\x01\x62\x08\x9e\x3d\x80\xf3\x75\x99\x52\x72\x97\x69\x84\x5b\x68\x3c\x86\xe4\x96\x01\x96\x94\x94\xec\x4e\x2a\x54\x04\x7e\xd9\x68\x39\x8d\xdf\x80\x15\x66\xf4\x5e\x9a\x7f\xb9\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x80\x3f\x68\x97\x5d\xe5\x65\x3b\x52\x9f\x60\x6d\x9f\x9a\x4f\x9b\x8e\xac\x51\x6c\x5b\xab\x5f\x13\x5d\xe9\x6c\x5e\x62\xf1\x8d\x21\x51\x71\x94\xa9\x52\xfe\x6c\x9f\x82\xdf\x72\xd7\x57\xa2\x67\x84\x8d\x2d\x59\x1f\x8f\x9c\x83\xc7\x54\x95\x7b\x8d\x4f\x30\x6c\xbd\x5b\x64\x59\xd1\x9f\x13\x53\xe4\x86\xca\x9a\xa8\x8c\x37\x80\xa1\x65\x45\x98\x7e\x56\xfa\x96\xc7\x52\x2e\x74\xdc\x52\x50\x5b\xe1\x63\x02\x89\x02\x4e\x56\x62\xd0\x60\x2a\x68\xfa\x51\x73\x5b\x98\x51\xa0\x89\xc2\x7b\xa1\x99\x86\x7f\x50\x60\xef", /* 4d80 */ "\x00\x00\x70\x4c\x8d\x2f\x51\x49\x5e\x7f\x90\x1b\x74\x70\x89\xc4\x57\x2d\x78\x45\x5f\x52\x9f\x9f\x95\xfa\x8f\x68\x9b\x3c\x8b\xe1\x76\x78\x68\x42\x67\xdc\x8d\xea\x8d\x35\x52\x3d\x8f\x8a\x6e\xda\x68\xcd\x95\x05\x90\xed\x56\xfd\x67\x9c\x88\xf9\x8f\xc7\x54\xc8\x9a\xb8\x5b\x69\x6d\x77\x6c\x26\x4e\xa5\x5b\xb3\x9a\x87\x91\x63\x61\xa8\x90\xaf\x97\xe9\x54\x2b\x6d\xb5\x5b\xd2\x51\xfd\x55\x8a\x7f\x55\x7f\xf0\x64\xbc\x63\x4d\x65\xf1\x61\xbe\x60\x8d\x71\x0a\x6c\x57\x6c\x49\x59\x2f\x67\x6d\x82\x2a\x58\xd5\x56\x8e\x8c\x6a\x6b\xeb\x90\xdd\x59\x7d\x80\x17\x53\xf7\x6d\x69\x54\x75\x55\x9d\x83\x77\x83\xcf\x68\x38\x79\xbe\x54\x8c\x4f\x55\x54\x08\x76\xd2\x8c\x89\x96\x02\x6c\xb3\x6d\xb8\x8d\x6b\x89\x10\x9e\x64\x8d\x3a\x56\x3f\x9e\xd1\x75\xd5\x5f\x88\x72\xe0\x60\x68\x54\xfc\x4e\xa8\x6a\x2a\x88\x61\x60\x52\x8f\x70\x54\xc4\x70\xd8\x86\x79\x9e\x3f\x6d\x2a\x5b\x8f\x5f\x18\x7e\xa2\x55\x89\x4f\xaf\x73\x34\x54\x3c\x53\x9a\x50\x19\x54\x0e\x54\x7c\x4e\x4e\x5f\xfd\x74\x5a\x58\xf6\x84\x6b\x80\xe1\x87\x74\x72\xd0\x7c\xca\x6e\x56\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x27\x86\x4e\x55\x2c\x62\xa4\x4e\x92\x6c\xaa\x62\x37\x82\xb1\x54\xd7\x53\x4e\x73\x3e\x6e\xd1\x75\x3b\x52\x12\x53\x16\x8b\xdd\x69\xd0\x5f\x8a\x60\x00\x6d\xee\x57\x4f\x6b\x22\x73\xaf\x68\x53\x8f\xd8\x7f\x13\x63\x62\x60\xa3\x55\x24\x75\xea\x8c\x62\x71\x15\x6d\xa3\x5b\xa6\x5e\x7b\x83\x52\x61\x4c\x9e\xc4\x78\xfa\x87\x57\x7c\x27\x76\x87\x51\xf0\x60\xf6\x71\x4c\x66\x43\x5e\x4c\x60\x4d\x8c\x0e\x70\x70\x63\x25\x8f\x89\x5f\xbd\x60\x62\x86\xd4\x56\xde\x6b\xc1\x60\x94\x61\x67\x53\x49\x60\xe0\x66\x66\x8d\x3f", /* 4e80 */ "\x00\x00\x79\xfd\x4f\x1a\x70\xe9\x6c\x47\x8b\xb3\x8b\xf2\x7e\xd8\x83\x64\x66\x0f\x5a\x5a\x9b\x42\x6d\x51\x6d\xf7\x8c\x41\x6d\x3b\x4f\x19\x70\x6b\x83\xb7\x62\x16\x60\xd1\x97\x0d\x8d\x27\x79\x78\x51\xfb\x57\x3e\x57\xfa\x67\x3a\x75\x78\x7a\x3d\x79\xef\x7b\x95\x80\x8c\x99\x65\x8f\xf9\x6f\xc0\x8b\xa5\x9e\x21\x59\xec\x7e\xe9\x7f\x09\x54\x09\x67\x81\x68\xd8\x8f\x91\x7c\x4d\x96\xc6\x53\xca\x60\x25\x75\xbe\x6c\x72\x53\x73\x5a\xc9\x7e\xa7\x63\x24\x51\xe0\x81\x0a\x5d\xf1\x84\xdf\x62\x80\x51\x80\x5b\x63\x4f\x0e\x79\x6d\x52\x42\x60\xb8\x6d\x4e\x5b\xc4\x5b\xc2\x8b\xa1\x8b\xb0\x65\xe2\x5f\xcc\x96\x45\x59\x93\x7e\xe7\x7e\xaa\x56\x09\x67\xb7\x59\x39\x4f\x73\x5b\xb6\x52\xa0\x83\x5a\x98\x8a\x8d\x3e\x75\x32\x94\xbe\x50\x47\x7a\x3c\x4e\xf7\x67\xb6\x9a\x7e\x5a\xc1\x6b\x7c\x76\xd1\x57\x5a\x5c\x16\x7b\x3a\x95\xf4\x71\x4e\x51\x7c\x80\xa9\x82\x70\x59\x78\x7f\x04\x83\x27\x68\xc0\x67\xec\x78\xb1\x78\x77\x62\xe3\x63\x61\x7b\x80\x4f\xed\x52\x6a\x51\xcf\x83\x50\x69\xdb\x92\x74\x8d\xf5\x8d\x31\x89\xc1\x95\x2e\x7b\xad\x4e\xf6\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x65\x82\x30\x52\x51\x99\x6f\x6e\x10\x6e\x85\x6d\xa7\x5e\xfa\x50\xf5\x59\xdc\x5c\x06\x6d\x46\x6c\x5f\x75\x86\x84\x8b\x68\x68\x59\x56\x8b\xb2\x53\x20\x91\x71\x96\x4d\x85\x49\x69\x12\x79\x01\x71\x26\x80\xf6\x4e\xa4\x90\xca\x6d\x47\x9a\x84\x5a\x07\x56\xbc\x64\x05\x94\xf0\x77\xeb\x4f\xa5\x81\x1a\x72\xe1\x89\xd2\x99\x7a\x7f\x34\x7e\xde\x52\x7f\x65\x59\x91\x75\x8f\x7f\x8f\x83\x53\xeb\x7a\x96\x63\xed\x63\xa5\x76\x86\x79\xf8\x88\x57\x96\x36\x62\x2a\x52\xab\x82\x82\x68\x54\x67\x70\x63\x77\x77\x6b\x7a\xed", /* 4f80 */ "\x00\x00\x6d\x01\x7e\xd3\x89\xe3\x59\xd0\x62\x12\x85\xc9\x82\xa5\x75\x4c\x50\x1f\x4e\xcb\x75\xa5\x8b\xeb\x5c\x4a\x5d\xfe\x7b\x4b\x65\xa4\x91\xd1\x4e\xca\x6d\x25\x89\x5f\x7d\x27\x95\x26\x4e\xc5\x8c\x28\x8f\xdb\x97\x73\x66\x4b\x79\x81\x8f\xd1\x70\xec\x6d\x78\x5c\x3d\x52\xb2\x83\x46\x51\x62\x83\x0e\x77\x5b\x66\x76\x9c\xb8\x4e\xac\x60\xca\x7c\xbe\x7c\xb3\x7e\xcf\x4e\x95\x8b\x66\x66\x6f\x98\x88\x97\x59\x58\x83\x65\x6c\x95\x5c\x5f\x84\x75\xc9\x97\x56\x7a\xdf\x7a\xde\x51\xc0\x70\xaf\x7a\x98\x63\xea\x7a\x76\x7e\xa0\x73\x96\x97\xed\x4e\x45\x70\x78\x4e\x5d\x91\x52\x53\xa9\x65\x51\x65\xe7\x81\xfc\x82\x05\x54\x8e\x5c\x31\x75\x9a\x97\xa0\x62\xd8\x72\xd9\x75\xbd\x5c\x45\x9a\x79\x83\xca\x5c\x40\x54\x80\x77\xe9\x4e\x3e\x6c\xae\x80\x5a\x62\xd2\x63\x6e\x5d\xe8\x51\x77\x8d\xdd\x8e\x1e\x95\x2f\x4f\xf1\x53\xe5\x60\xe7\x70\xac\x52\x67\x63\x50\x9e\x43\x5a\x1f\x50\x26\x77\x37\x53\x77\x7e\xe2\x64\x85\x65\x2b\x62\x89\x63\x98\x50\x14\x72\x35\x89\xc9\x51\xb3\x8b\xc0\x7e\xdd\x57\x47\x83\xcc\x94\xa7\x51\x9b\x54\x1b\x5c\xfb\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x7a\xe3\x6d\x5a\x90\xe1\x9a\x8f\x55\x80\x54\x96\x53\x61\x54\xaf\x5f\x00\x63\xe9\x69\x77\x51\xef\x61\x68\x52\x0a\x58\x2a\x52\xd8\x57\x4e\x78\x0d\x77\x0b\x5e\xb7\x61\x77\x7c\xe0\x62\x5b\x62\x97\x4e\xa2\x70\x95\x80\x03\x62\xf7\x70\xe4\x97\x60\x57\x77\x82\xdb\x67\xef\x68\xf5\x78\xd5\x98\x97\x79\xd1\x58\xf3\x54\xb3\x53\xef\x6e\x34\x51\x4b\x52\x3b\x5b\xa2\x8b\xfe\x80\xaf\x55\x43\x57\xa6\x60\x73\x57\x51\x54\x2d\x7a\x7a\x60\x50\x5b\x54\x63\xa7\x62\xa0\x53\xe3\x62\x63\x5b\xc7\x67\xaf\x54\xed\x7a\x9f", /* 5080 */ "\x00\x00\x82\xe6\x91\x77\x5e\x93\x88\xe4\x59\x38\x57\xae\x63\x0e\x8d\xe8\x80\xef\x57\x57\x7b\x77\x4f\xa9\x5f\xeb\x5b\xbd\x6b\x3e\x53\x21\x7b\x50\x72\xc2\x68\x46\x77\xff\x77\x36\x65\xf7\x51\xb5\x4e\x8f\x76\xd4\x5c\xbf\x7a\xa5\x84\x75\x59\x4e\x9b\x41\x50\x80\x99\x88\x61\x27\x6e\x83\x57\x64\x66\x06\x63\x46\x56\xf0\x62\xec\x62\x69\x5e\xd3\x96\x14\x57\x83\x62\xc9\x55\x87\x87\x21\x81\x4a\x8f\xa3\x55\x66\x83\xb1\x67\x65\x8d\x56\x84\xdd\x5a\x6a\x68\x0f\x62\xe6\x7b\xee\x96\x11\x51\x70\x6f\x9c\x8c\x30\x63\xfd\x89\xc8\x61\xd2\x7f\x06\x70\xc2\x6e\xe5\x74\x05\x69\x94\x72\xfc\x5e\xca\x90\xce\x67\x17\x6d\x6a\x63\x5e\x52\xb3\x72\x62\x80\x01\x4f\x6c\x59\xe5\x91\x6a\x70\xd9\x6d\x9d\x52\xd2\x4e\x50\x96\xf7\x95\x6d\x85\x7e\x78\xca\x7d\x2f\x51\x21\x57\x92\x64\xc2\x80\x8b\x7c\x7b\x6c\xea\x68\xf1\x69\x5e\x51\xb7\x53\x98\x68\xa8\x72\x81\x9e\xce\x7b\xf1\x72\xf8\x79\xbb\x6f\x13\x74\x06\x67\x4e\x91\xcc\x9c\xa4\x79\x3c\x83\x89\x83\x54\x54\x0f\x68\x17\x4e\x3d\x53\x89\x52\xb1\x78\x3e\x53\x86\x52\x29\x50\x88\x4f\x8b\x4f\xd0\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe2\x7a\xcb\x7c\x92\x6c\xa5\x96\xb6\x52\x9b\x74\x83\x54\xe9\x4f\xe9\x80\x54\x83\xb2\x8f\xde\x95\x70\x5e\xc9\x60\x1c\x6d\x9f\x5e\x18\x65\x5b\x81\x38\x94\xfe\x60\x4b\x70\xbc\x7e\xc3\x7c\xae\x51\xc9\x68\x81\x7c\xb1\x82\x6f\x4e\x24\x8f\x86\x91\xcf\x66\x7e\x4e\xae\x8c\x05\x64\xa9\x80\x4a\x50\xda\x75\x97\x71\xce\x5b\xe5\x8f\xbd\x6f\x66\x4e\x86\x64\x82\x95\x63\x5e\xd6\x65\x99\x52\x17\x88\xc2\x70\xc8\x52\xa3\x73\x0e\x74\x33\x67\x97\x78\xf7\x97\x16\x4e\x34\x90\xbb\x9c\xde\x6d\xcb\x51\xdb\x8d\x41\x54\x1d", /* 5180 */ "\x00\x00\x62\xce\x73\xb2\x83\xf1\x96\xf6\x9f\x84\x94\xc3\x4f\x36\x7f\x9a\x51\xcc\x70\x75\x96\x75\x5c\xad\x98\x86\x53\xe6\x4e\xe4\x6e\x9c\x74\x09\x69\xb4\x78\x6b\x99\x8f\x75\x59\x52\x18\x76\x24\x6d\x41\x67\xf3\x51\x6d\x9f\x99\x80\x4b\x54\x99\x7b\x3c\x7a\xbf\x96\x86\x57\x84\x62\xe2\x96\x47\x69\x7c\x5a\x04\x64\x02\x7b\xd3\x6f\x0f\x96\x4b\x82\xa6\x53\x62\x98\x85\x5e\x90\x70\x89\x63\xb3\x53\x64\x86\x4f\x9c\x81\x9e\x93\x78\x8c\x97\x32\x8d\xef\x8d\x42\x9e\x7f\x6f\x5e\x79\x84\x5f\x55\x96\x46\x62\x2e\x9a\x74\x54\x15\x94\xdd\x4f\xa3\x65\xc5\x5c\x65\x5c\x61\x7f\x15\x86\x51\x6c\x2f\x5f\x8b\x73\x87\x6e\xe4\x7e\xff\x5c\xe6\x63\x1b\x5b\x6a\x6e\xe6\x53\x75\x4e\x71\x63\xa0\x75\x65\x62\xa1\x8f\x6e\x4f\x26\x4e\xd1\x6c\xa6\x7e\xb6\x8b\xba\x84\x1d\x87\xba\x7f\x57\x90\x3b\x95\x23\x7b\xa9\x9a\xa1\x88\xf8\x84\x3d\x6d\x1b\x9a\x86\x7e\xdc\x59\x88\x9e\xbb\x73\x9b\x78\x01\x86\x82\x9a\x6c\x9a\x82\x56\x1b\x54\x17\x57\xcb\x4e\x70\x9e\xa6\x53\x56\x8f\xc8\x81\x09\x77\x92\x99\x92\x86\xee\x6e\xe1\x85\x13\x66\xfc\x61\x62\x6f\x2b\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x29\x82\x92\x83\x2b\x76\xf2\x6c\x13\x5f\xd9\x83\xbd\x73\x2b\x83\x05\x95\x1a\x6b\xdb\x77\xdb\x94\xc6\x53\x6f\x83\x02\x51\x92\x5e\x3d\x8c\x8c\x8d\x38\x4e\x48\x73\xab\x67\x9a\x68\x85\x91\x76\x97\x09\x71\x64\x6c\xa1\x77\x09\x5a\x92\x95\x41\x6b\xcf\x7f\x8e\x66\x27\x5b\xd0\x59\xb9\x5a\x9a\x95\xe8\x95\xf7\x4e\xec\x84\x0c\x84\x99\x6a\xac\x76\xdf\x95\x30\x73\x1b\x68\xa6\x5b\x5f\x77\x2f\x91\x9a\x97\x61\x7c\xdc\x8f\xf7\x8c\x1c\x5f\x25\x7c\x73\x79\xd8\x89\xc5\x6c\xcc\x87\x1c\x5b\xc6\x5e\x42\x68\xc9\x77\x20", /* 5280 */ "\x00\x00\x7e\xf5\x51\x95\x51\x4d\x52\xc9\x5a\x29\x7f\x05\x97\x62\x82\xd7\x63\xcf\x77\x84\x85\xd0\x79\xd2\x6e\x3a\x5e\x99\x59\x99\x85\x11\x70\x6d\x6c\x11\x62\xbf\x76\xbf\x65\x4f\x60\xaf\x95\xfd\x66\x0e\x87\x9f\x9e\x23\x94\xed\x54\x0d\x54\x7d\x8c\x2c\x64\x78\x64\x79\x86\x11\x6a\x21\x81\x9c\x78\xe8\x64\x69\x9b\x54\x62\xb9\x67\x2b\x83\xab\x58\xa8\x9e\xd8\x6c\xab\x6f\x20\x5b\xde\x96\x4c\x8c\x0b\x72\x5f\x67\xd0\x62\xc7\x72\x61\x4e\xa9\x59\xc6\x6b\xcd\x58\x93\x66\xae\x5e\x55\x52\xdf\x61\x55\x67\x28\x76\xee\x77\x66\x72\x67\x7a\x46\x62\xff\x54\xea\x54\x50\x94\xa0\x90\xa3\x5a\x1c\x7e\xb3\x6c\x16\x4e\x43\x59\x76\x80\x10\x59\x48\x53\x57\x75\x37\x96\xbe\x56\xca\x63\x20\x81\x11\x60\x7c\x95\xf9\x6d\xd6\x54\x62\x99\x81\x51\x85\x5a\xe9\x80\xfd\x59\xae\x97\x13\x50\x2a\x6c\xe5\x5c\x3c\x62\xdf\x4f\x60\x53\x3f\x81\x7b\x90\x06\x6e\xba\x85\x2b\x62\xc8\x5e\x74\x78\xbe\x64\xb5\x63\x7b\x5f\xf5\x5a\x18\x91\x7f\x9e\x1f\x5c\x3f\x63\x4f\x80\x42\x5b\x7d\x55\x6e\x95\x4a\x95\x4d\x6d\x85\x60\xa8\x67\xe0\x72\xde\x51\xdd\x5b\x81\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe7\x6c\xde\x72\x5b\x62\x6d\x94\xae\x7e\xbd\x81\x13\x6d\x53\x51\x9c\x5f\x04\x59\x74\x52\xaa\x60\x12\x59\x73\x66\x96\x86\x50\x75\x9f\x63\x2a\x61\xe6\x7c\xef\x8b\xfa\x54\xe6\x6b\x27\x9e\x25\x6b\xb4\x85\xd5\x54\x55\x50\x76\x6c\xa4\x55\x6a\x8d\xb4\x72\x2c\x5e\x15\x60\x15\x74\x36\x62\xcd\x63\x92\x72\x4c\x5f\x98\x6e\x43\x6d\x3e\x65\x00\x6f\x58\x76\xd8\x78\xd0\x76\xfc\x75\x54\x52\x24\x53\xdb\x4e\x53\x5e\x9e\x65\xc1\x80\x2a\x80\xd6\x62\x9b\x54\x86\x52\x28\x70\xae\x88\x8d\x8d\xd1\x6c\xe1\x54\x78\x80\xda", /* 5380 */ "\x00\x00\x57\xf9\x88\xf4\x8d\x54\x96\x6a\x91\x4d\x4f\x69\x6c\x9b\x55\xb7\x76\xc6\x78\x30\x62\xa8\x70\xf9\x6f\x8e\x5f\x6d\x84\xec\x68\xda\x78\x7c\x7b\xf7\x81\xa8\x67\x0b\x9e\x4f\x63\x67\x78\xb0\x57\x6f\x78\x12\x97\x39\x62\x79\x62\xab\x52\x88\x74\x35\x6b\xd7\x55\x64\x81\x3e\x75\xb2\x76\xae\x53\x39\x75\xde\x50\xfb\x5c\x41\x8b\x6c\x7b\xc7\x50\x4f\x72\x47\x9a\x97\x98\xd8\x6f\x02\x74\xe2\x79\x68\x64\x87\x77\xa5\x62\xfc\x98\x91\x8d\x2b\x54\xc1\x80\x58\x4e\x52\x57\x6a\x82\xf9\x84\x0d\x5e\x73\x51\xed\x74\xf6\x8b\xc4\x5c\x4f\x57\x61\x6c\xfc\x98\x87\x5a\x46\x78\x34\x9b\x44\x8f\xeb\x7c\x95\x52\x56\x62\x51\x94\xfa\x4e\xc6\x83\x86\x84\x61\x83\xe9\x84\xb2\x57\xd4\x67\x34\x57\x03\x66\x6e\x6d\x66\x8c\x31\x66\xdd\x70\x11\x67\x1f\x6b\x3a\x68\x16\x62\x1a\x59\xbb\x4e\x03\x51\xc4\x6f\x06\x67\xd2\x6c\x8f\x51\x76\x68\xcb\x59\x47\x6b\x67\x75\x66\x5d\x0e\x81\x10\x9f\x50\x65\xd7\x79\x48\x79\x41\x9a\x91\x8d\x77\x5c\x82\x4e\x5e\x4f\x01\x54\x2f\x59\x51\x78\x0c\x56\x68\x6c\x14\x8f\xc4\x5f\x03\x6c\x7d\x6c\xe3\x8b\xab\x63\x90\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x70\x6d\x3d\x72\x75\x62\x66\x94\x8e\x94\xc5\x53\x43\x8f\xc1\x7b\x7e\x4e\xdf\x8c\x26\x4e\x7e\x9e\xd4\x94\xb1\x94\xb3\x52\x4d\x6f\x5c\x90\x63\x6d\x45\x8c\x34\x58\x11\x5d\x4c\x6b\x20\x6b\x49\x67\xaa\x54\x5b\x81\x54\x7f\x8c\x58\x99\x85\x37\x5f\x3a\x62\xa2\x6a\x47\x95\x39\x65\x72\x60\x84\x68\x65\x77\xa7\x4e\x54\x4f\xa8\x5d\xe7\x97\x98\x64\xac\x7f\xd8\x5c\xed\x4f\xcf\x7a\x8d\x52\x07\x83\x04\x4e\x14\x60\x2f\x7a\x83\x94\xa6\x4f\xb5\x4e\xb2\x79\xe6\x74\x34\x52\xe4\x82\xb9\x64\xd2\x79\xbd\x5b\xdd\x6c\x81", /* 5480 */ "\x00\x00\x97\x52\x8f\x7b\x6c\x22\x50\x3e\x53\x7f\x6e\x05\x64\xce\x66\x74\x6c\x30\x60\xc5\x98\x77\x8b\xf7\x5e\x86\x74\x3c\x7a\x77\x79\xcb\x4e\x18\x90\xb1\x74\x03\x6c\x42\x56\xda\x91\x4b\x6c\xc5\x8d\x8b\x53\x3a\x86\xc6\x66\xf2\x8e\xaf\x5c\x48\x9a\x71\x6e\x20\x53\xd6\x5a\x36\x9f\x8b\x8d\xa3\x53\xbb\x57\x08\x98\xa7\x67\x43\x91\x9b\x6c\xc9\x51\x68\x75\xca\x62\xf3\x72\xac\x52\x38\x52\x9d\x7f\x3a\x70\x94\x76\x38\x53\x74\x9e\x4a\x69\xb7\x78\x6e\x96\xc0\x88\xd9\x7f\xa4\x71\x36\x71\xc3\x51\x89\x67\xd3\x74\xe4\x58\xe4\x65\x18\x56\xb7\x8b\xa9\x99\x76\x62\x70\x7e\xd5\x60\xf9\x70\xed\x58\xec\x4e\xc1\x4e\xba\x5f\xcd\x97\xe7\x4e\xfb\x8b\xa4\x52\x03\x59\x8a\x7e\xab\x62\x54\x4e\xcd\x65\xe5\x62\x0e\x83\x38\x84\xc9\x83\x63\x87\x8d\x71\x94\x6e\xb6\x5b\xb9\x7e\xd2\x51\x97\x63\xc9\x67\xd4\x80\x89\x83\x39\x88\x15\x51\x12\x5b\x7a\x59\x82\x8f\xb1\x4e\x73\x6c\x5d\x51\x65\x89\x25\x8f\x6f\x96\x2e\x85\x4a\x74\x5e\x95\x10\x95\xf0\x6d\xa6\x82\xe5\x5f\x31\x64\x92\x6d\x12\x84\x28\x81\x6e\x9c\xc3\x58\x5e\x8d\x5b\x4e\x09\x53\xc1\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x1e\x65\x63\x68\x51\x55\xd3\x4e\x27\x64\x14\x9a\x9a\x62\x6b\x5a\xc2\x74\x5f\x82\x72\x6d\xa9\x68\xee\x50\xe7\x83\x8e\x78\x02\x67\x40\x52\x39\x6c\x99\x7e\xb1\x50\xbb\x55\x65\x71\x5e\x7b\x5b\x66\x52\x73\xca\x82\xeb\x67\x49\x5c\x71\x52\x20\x71\x7d\x88\x6b\x95\xea\x96\x55\x64\xc5\x8d\x61\x81\xb3\x55\x84\x6c\x55\x62\x47\x7f\x2e\x58\x92\x4f\x24\x55\x46\x8d\x4f\x66\x4c\x4e\x0a\x5c\x1a\x88\xf3\x68\xa2\x63\x4e\x7a\x0d\x70\xe7\x82\x8d\x52\xfa\x97\xf6\x5c\x11\x54\xe8\x90\xb5\x7e\xcd\x59\x62\x8d\x4a\x86\xc7", /* 5580 */ "\x00\x00\x82\x0c\x82\x0d\x8d\x66\x64\x44\x5c\x04\x61\x51\x6d\x89\x79\x3e\x8b\xbe\x78\x37\x75\x33\x54\x7b\x4f\x38\x8e\xab\x6d\xf1\x5a\x20\x7e\xc5\x79\x5e\x6c\x88\x5b\xa1\x5a\x76\x75\x1a\x80\xbe\x61\x4e\x6e\x17\x58\xf0\x75\x1f\x75\x25\x72\x72\x53\x47\x7e\xf3\x77\x01\x76\xdb\x52\x69\x80\xdc\x57\x23\x5e\x08\x59\x31\x72\xee\x65\xbd\x6e\x7f\x8b\xd7\x5c\x38\x86\x71\x53\x41\x77\xf3\x62\xfe\x65\xf6\x4e\xc0\x98\xdf\x86\x80\x5b\x9e\x8b\xc6\x53\xf2\x77\xe2\x4f\x7f\x5c\x4e\x9a\x76\x59\xcb\x5f\x0f\x79\x3a\x58\xeb\x4e\x16\x67\xff\x4e\x8b\x62\xed\x8a\x93\x90\x1d\x52\xbf\x66\x2f\x55\xdc\x56\x6c\x90\x02\x4e\xd5\x4f\x8d\x91\xca\x99\x70\x6c\x0f\x5e\x02\x60\x43\x5b\xa4\x89\xc6\x8b\xd5\x65\x36\x62\x4b\x99\x96\x5b\x88\x5b\xff\x63\x88\x55\x2e\x53\xd7\x76\x26\x51\x7d\x85\x2c\x67\xa2\x68\xb3\x6b\x8a\x62\x92\x8f\x93\x53\xd4\x82\x12\x6d\xd1\x75\x8f\x4e\x66\x8d\x4e\x5b\x70\x71\x9f\x85\xaf\x66\x91\x66\xd9\x7f\x72\x87\x00\x9e\xcd\x9f\x20\x5c\x5e\x67\x2f\x8f\xf0\x68\x11\x67\x5f\x62\x0d\x7a\xd6\x58\x85\x5e\xb6\x65\x70\x6f\x31\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x55\x52\x37\x80\x0d\x64\x54\x88\x70\x75\x29\x5e\x05\x68\x13\x62\xf4\x97\x1c\x53\xcc\x72\x3d\x8c\x01\x6c\x34\x77\x61\x7a\x0e\x54\x2e\x77\xac\x98\x7a\x82\x1c\x8b\xf4\x78\x55\x67\x14\x70\xc1\x65\xaf\x64\x95\x56\x36\x60\x1d\x79\xc1\x53\xf8\x4e\x1d\x6b\x7b\x80\x86\x5b\xfa\x55\xe3\x56\xdb\x4f\x3a\x4f\x3c\x99\x72\x5d\xf3\x67\x7e\x80\x38\x60\x02\x98\x82\x90\x01\x5b\x8b\x8b\xbc\x8b\xf5\x64\x1c\x82\x58\x64\xde\x55\xfd\x82\xcf\x91\x65\x4f\xd7\x7d\x20\x90\x1f\x7c\x9f\x50\xf3\x58\x51\x6e\xaf\x5b\xbf\x8b\xc9", /* 5680 */ "\x00\x00\x80\x83\x91\x78\x84\x9c\x7b\x97\x86\x7d\x96\x8b\x96\x8f\x7e\xe5\x9a\xd3\x78\x8e\x5c\x81\x7a\x57\x90\x42\x96\xa7\x79\x5f\x5b\x59\x63\x5f\x7b\x0b\x84\xd1\x68\xad\x55\x06\x7f\x29\x74\x10\x7d\x22\x95\x01\x62\x40\x58\x4c\x4e\xd6\x5b\x83\x59\x79\x58\x54\x73\x6d\x63\x1e\x8e\x4b\x8e\x0f\x80\xce\x82\xd4\x62\xac\x53\xf0\x6c\xf0\x91\x5e\x59\x2a\x60\x01\x6c\x70\x57\x4d\x64\x4a\x8d\x2a\x76\x2b\x6e\xe9\x57\x5b\x6a\x80\x75\xf0\x6f\x6d\x8c\x2d\x8c\x08\x57\x66\x6b\xef\x88\x92\x78\xb3\x63\xa2\x53\xf9\x70\xad\x6c\x64\x58\x58\x64\x2a\x58\x02\x68\xe0\x81\x9b\x55\x10\x7c\xd6\x50\x18\x8e\xba\x6d\xcc\x8d\x9f\x70\xeb\x63\x8f\x6d\x9b\x6e\xd4\x7e\xe6\x84\x04\x68\x43\x90\x03\x6d\xd8\x96\x76\x8b\xa8\x59\x57\x72\x79\x85\xe4\x81\x7e\x75\xbc\x8a\x8a\x68\xaf\x52\x54\x8e\x22\x95\x11\x63\xd0\x98\x98\x8e\x44\x55\x7c\x4f\x53\x66\xff\x56\x8f\x60\xd5\x6d\x95\x52\x43\x5c\x49\x59\x29\x6d\xfb\x58\x6b\x75\x30\x75\x1c\x60\x6c\x82\x14\x81\x46\x63\x11\x67\x61\x8f\xe2\x77\x3a\x8d\xf3\x8d\x34\x94\xc1\x5e\x16\x53\x85\x54\x2c\x70\xc3\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x40\x5e\xf7\x50\x5c\x4e\xad\x5e\xad\x63\x3a\x82\x47\x90\x1a\x68\x50\x91\x6e\x77\xb3\x54\x0c\x94\xdc\x5f\x64\x7a\xe5\x68\x76\x63\x45\x7b\x52\x7e\xdf\x75\xdb\x50\x77\x62\x95\x59\x34\x90\x0f\x51\xf8\x79\xc3\x7a\x81\x56\xfe\x5f\x92\x90\x14\x6d\x82\x5c\x60\x57\x1f\x54\x10\x51\x54\x6e\x4d\x56\xe2\x63\xa8\x98\x93\x81\x7f\x87\x15\x89\x2a\x90\x00\x54\x1e\x5c\x6f\x81\xc0\x62\xd6\x62\x58\x81\x31\x9e\x35\x96\x40\x9a\x6e\x9a\x7c\x69\x2d\x59\xa5\x62\xd3\x55\x3e\x63\x16\x54\xc7\x86\xd9\x6d\x3c\x5a\x03\x74\xe6", /* 5780 */ "\x00\x00\x88\x9c\x6b\x6a\x59\x16\x8c\x4c\x5f\x2f\x6e\x7e\x73\xa9\x98\x7d\x4e\x38\x70\xf7\x5b\x8c\x78\x97\x63\x3d\x66\x5a\x76\x96\x60\xcb\x5b\x9b\x5a\x49\x4e\x07\x81\x55\x6c\x6a\x73\x8b\x4e\xa1\x67\x89\x7f\x51\x5f\x80\x65\xfa\x67\x1b\x5f\xd8\x59\x84\x5a\x01\x5d\xcd\x5f\xae\x53\x71\x97\xe6\x8f\xdd\x68\x45\x56\xf4\x55\x2f\x60\xdf\x4e\x3a\x6f\x4d\x7e\xf4\x82\xc7\x84\x0e\x59\xd4\x4f\x1f\x4f\x2a\x5c\x3e\x7e\xac\x67\x2a\x85\x1a\x54\x73\x75\x4f\x80\xc3\x55\x82\x9b\x4f\x4f\x4d\x6e\x2d\x8c\x13\x5c\x09\x61\x70\x53\x6b\x76\x1f\x6e\x29\x86\x8a\x65\x87\x95\xfb\x7e\xb9\x54\x3b\x7a\x33\x7d\x0a\x95\xee\x55\xe1\x7f\xc1\x74\xee\x63\x1d\x87\x17\x6d\xa1\x7a\x9d\x62\x11\x65\xa1\x53\x67\x63\xe1\x6c\x83\x5d\xeb\x54\x5c\x94\xa8\x4e\x4c\x6c\x61\x8b\xec\x5c\x4b\x65\xe0\x82\x9c\x68\xa7\x54\x3e\x54\x34\x6b\xcb\x6b\x66\x4e\x94\x63\x42\x53\x48\x82\x1e\x4f\x0d\x4f\xae\x57\x5e\x62\x0a\x96\xfe\x66\x64\x72\x69\x52\xff\x52\xa1\x60\x9f\x8b\xef\x66\x14\x71\x99\x67\x90\x89\x7f\x78\x52\x77\xfd\x66\x70\x56\x3b\x54\x38\x95\x21\x72\x7a\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x60\x6f\x5e\x0c\x60\x89\x81\x9d\x59\x15\x60\xdc\x71\x84\x70\xef\x6e\xaa\x6c\x50\x72\x80\x6a\x84\x88\xad\x5e\x2d\x4e\x60\x5a\xb3\x55\x9c\x94\xe3\x6d\x17\x7c\xfb\x96\x99\x62\x0f\x7e\xc6\x77\x8e\x86\x7e\x53\x23\x97\x1e\x8f\x96\x66\x87\x5c\xe1\x4f\xa0\x72\xed\x4e\x0b\x53\xa6\x59\x0f\x54\x13\x63\x80\x95\x28\x51\x48\x4e\xd9\x9c\x9c\x7e\xa4\x54\xb8\x8d\x24\x88\x54\x82\x37\x95\xf2\x6d\x8e\x5f\x26\x5a\xcc\x66\x3e\x96\x69\x73\xb0\x73\x2e\x53\xbf\x81\x7a\x99\x85\x7f\xa1\x5b\xaa\x96\x77\x96\x50\x7e\xbf", /* 5880 */ "\x00\x00\x76\xf8\x53\xa2\x95\x76\x99\x99\x7b\xb1\x89\x44\x6e\x58\x4e\x61\x7f\xd4\x79\x65\x8b\xe6\x60\xf3\x54\xcd\x4e\xab\x98\x79\x5d\xf7\x6a\x61\x50\xcf\x54\x11\x8c\x61\x84\x27\x78\x5d\x97\x04\x52\x4a\x54\xee\x56\xa3\x95\x00\x6d\x88\x5b\xb5\x6d\xc6\x66\x53\x5c\x0f\x5b\x5d\x68\x21\x80\x96\x55\x78\x7b\x11\x65\x48\x69\x54\x4e\x9b\x6b\x47\x87\x4e\x97\x8b\x53\x4f\x63\x1f\x64\x3a\x90\xaa\x65\x9c\x80\xc1\x8c\x10\x51\x99\x68\xb0\x53\x78\x87\xf9\x61\xc8\x6c\xc4\x6c\xfb\x8c\x22\x5c\x51\x85\xaa\x82\xaf\x95\x0c\x6b\x23\x8f\x9b\x65\xb0\x5f\xfb\x5f\xc3\x4f\xe1\x88\x45\x66\x1f\x81\x65\x73\x29\x60\xfa\x51\x74\x52\x11\x57\x8b\x5f\x62\x90\xa2\x88\x4c\x91\x92\x5e\x78\x67\x4f\x60\x27\x59\xd3\x51\x44\x51\xf6\x80\xf8\x53\x08\x6c\x79\x96\xc4\x71\x8a\x4f\x11\x4f\xee\x7f\x9e\x67\x3d\x55\xc5\x95\x08\x79\xc0\x88\x96\x7e\xe3\x58\x9f\x62\x0c\x97\x00\x86\x5a\x56\x18\x98\x7b\x5f\x90\x8b\xb8\x84\xc4\x91\x57\x53\xd9\x65\xed\x5e\x8f\x75\x5c\x60\x64\x7d\x6e\x5a\x7f\x7e\xea\x7e\xed\x8f\x69\x55\xa7\x5b\xa3\x60\xac\x65\xcb\x73\x84\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x09\x76\x63\x77\x29\x7e\xda\x97\x74\x85\x9b\x5b\x66\x7a\x74\x96\xea\x88\x40\x52\xcb\x71\x8f\x5f\xaa\x65\xec\x8b\xe2\x5b\xfb\x9a\x6f\x5d\xe1\x6b\x89\x6c\x5b\x8b\xad\x8b\xaf\x90\x0a\x8f\xc5\x53\x8b\x62\xbc\x9e\x26\x9e\x2d\x54\x40\x4e\x2b\x82\xbd\x72\x59\x86\x9c\x5d\x16\x88\x59\x6d\xaf\x96\xc5\x54\xd1\x4e\x9a\x8b\xb6\x71\x09\x54\xbd\x96\x09\x70\xdf\x6d\xf9\x76\xd0\x4e\x25\x78\x14\x87\x12\x5c\xa9\x5e\xf6\x8a\x00\x98\x9c\x96\x0e\x70\x8e\x6c\xbf\x59\x44\x63\xa9\x77\x3c\x88\x4d\x6f\x14\x82\x73\x58\x30", /* 5980 */ "\x00\x00\x71\xd5\x53\x8c\x78\x1a\x96\xc1\x55\x01\x5f\x66\x71\x30\x5b\xb4\x8c\x1a\x9a\x8c\x6b\x83\x59\x2e\x9e\x2f\x79\xe7\x67\x68\x62\x6c\x4f\x6f\x75\xa1\x7f\x8a\x6d\x0b\x96\x33\x6c\x27\x4e\xf0\x75\xd2\x51\x7b\x68\x37\x6f\x3e\x90\x80\x81\x70\x59\x96\x74\x76\x64\x47\x5c\x27\x90\x65\x7a\x91\x8c\x23\x59\xda\x54\xac\x82\x00\x83\x6f\x89\x81\x80\x00\x69\x30\x56\x4e\x80\x36\x72\x37\x91\xce\x51\xb6\x4e\x5f\x98\x75\x63\x96\x4e\x1a\x53\xf6\x66\xf3\x81\x4b\x59\x1c\x6d\xb2\x4e\x00\x58\xf9\x53\x3b\x63\xd6\x94\xf1\x4f\x9d\x4f\x0a\x88\x63\x98\x90\x59\x37\x90\x57\x79\xfb\x4e\xea\x80\xf0\x75\x91\x6c\x82\x5b\x9c\x59\xe8\x5f\x5d\x69\x05\x86\x81\x50\x1a\x5d\xf2\x4e\x59\x77\xe3\x4e\xe5\x82\x7a\x62\x91\x66\x13\x90\x91\x5c\x79\x4e\xbf\x5f\x79\x81\xc6\x90\x38\x80\x84\x75\xab\x4e\xa6\x88\xd4\x61\x0f\x6b\xc5\x5f\xc6\x4e\x49\x76\xca\x6e\xa2\x8b\xe3\x8b\xae\x8c\x0a\x8b\xd1\x5f\x02\x7f\xfc\x7f\xcc\x7e\xce\x83\x35\x83\x6b\x56\xe0\x6b\xb7\x97\xf3\x96\x34\x59\xfb\x54\x1f\x94\xf6\x6d\xeb\x5b\xc5\x99\x6e\x5c\x39\x5f\x15\x96\x90\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x70\x82\xf1\x6a\x31\x5a\x74\x9e\x70\x5e\x94\x7f\x28\x83\xb9\x84\x24\x84\x25\x83\x67\x87\x47\x8f\xce\x8d\x62\x76\xc8\x5f\x71\x98\x96\x78\x6c\x66\x20\x54\xdf\x62\xe5\x4f\x63\x81\xc3\x75\xc8\x5e\xb8\x96\xcd\x8e\x0a\x86\xf9\x54\x8f\x6c\xf3\x6d\x8c\x6c\x38\x60\x7f\x52\xc7\x75\x28\x5e\x7d\x4f\x18\x60\xa0\x5f\xe7\x5c\x24\x75\x31\x90\xae\x94\xc0\x72\xb9\x6c\xb9\x6e\x38\x91\x49\x67\x09\x53\xcb\x53\xf3\x4f\x51\x91\xc9\x8b\xf1\x53\xc8\x5e\x7c\x8f\xc2\x6d\xe4\x4e\x8e\x76\xc2\x69\x86\x86\x5e\x61\x1a\x82\x06", /* 5a80 */ "\x00\x00\x4f\x59\x4f\xde\x90\x3e\x9c\x7c\x61\x09\x6e\x1d\x6e\x14\x96\x85\x4e\x88\x5a\x31\x96\xe8\x4e\x0e\x5c\x7f\x79\xb9\x5b\x87\x8b\xed\x7f\xbd\x73\x89\x57\xdf\x82\x8b\x90\xc1\x54\x01\x90\x47\x55\xbb\x5c\xea\x5f\xa1\x61\x08\x6b\x32\x72\xf1\x80\xb2\x8a\x89\x6d\x74\x5b\xd3\x88\xd5\x98\x84\x8c\x6b\x9a\x6d\x9e\x33\x6e\x0a\x51\xa4\x51\x43\x57\xa3\x88\x81\x53\x9f\x63\xf4\x8f\x95\x56\xed\x54\x58\x57\x06\x73\x3f\x6e\x90\x7f\x18\x8f\xdc\x82\xd1\x61\x3f\x60\x28\x96\x62\x66\xf0\x7e\xa6\x8d\x8a\x8d\xc3\x94\xa5\x5c\xb3\x7c\xa4\x67\x08\x60\xa6\x96\x05\x80\x18\x4e\x91\x90\xe7\x53\x00\x96\x68\x51\x41\x8f\xd0\x85\x74\x91\x5d\x66\x55\x97\xf5\x5b\x55\x53\x1d\x78\x38\x67\x42\x68\x3d\x54\xc9\x70\x7e\x5b\xb0\x8f\x7d\x51\x8d\x57\x28\x54\xb1\x65\x12\x66\x82\x8d\x5e\x8d\x43\x81\x0f\x84\x6c\x90\x6d\x7c\xdf\x51\xff\x85\xfb\x67\xa3\x65\xe9\x6f\xa1\x86\xa4\x8e\x81\x56\x6a\x90\x20\x76\x82\x70\x76\x71\xe5\x8d\x23\x62\xe9\x52\x19\x6c\xfd\x8d\x3c\x60\x0e\x58\x9e\x61\x8e\x66\xfe\x8d\x60\x62\x4e\x55\xb3\x6e\x23\x67\x2d\x8f\x67\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe1\x95\xf8\x77\x28\x68\x05\x69\xa8\x54\x8b\x4e\x4d\x70\xb8\x8b\xc8\x64\x58\x65\x8b\x5b\x85\x7a\x84\x50\x3a\x5b\xe8\x77\xbb\x6b\xe1\x8a\x79\x7c\x98\x6c\xbe\x76\xcf\x65\xa9\x8f\x97\x5d\x2d\x5c\x55\x86\x38\x68\x08\x53\x60\x62\x18\x7a\xd9\x6e\x5b\x7e\xfd\x6a\x1f\x7a\xe0\x5f\x70\x6f\x33\x5f\x20\x63\x8c\x6d\xa8\x67\x56\x4e\x08\x5e\x10\x8d\x26\x4e\xd7\x80\xc0\x76\x34\x96\x9c\x62\xdb\x66\x2d\x62\x7e\x6c\xbc\x8d\x75\x71\x67\x7f\x69\x51\x46\x80\x87\x53\xec\x90\x6e\x62\x98\x54\xf2\x86\xf0\x8f\x99\x80\x05", /* 5b80 */ "\x00\x00\x95\x17\x85\x17\x8f\xd9\x6d\x59\x73\xcd\x65\x9f\x77\x1f\x75\x04\x78\x27\x81\xfb\x8d\x1e\x94\x88\x4f\xa6\x67\x95\x75\xb9\x8b\xca\x97\x07\x63\x2f\x95\x47\x96\x35\x84\xb8\x63\x23\x77\x41\x5f\x81\x72\xf0\x4e\x89\x60\x14\x65\x74\x62\xef\x6b\x63\x65\x3f\x5e\x27\x75\xc7\x90\xd1\x8b\xc1\x82\x9d\x67\x9d\x65\x2f\x54\x31\x87\x18\x77\xe5\x80\xa2\x81\x02\x6c\x41\x4e\x4b\x7e\xc7\x80\x4c\x76\xf4\x69\x0d\x6b\x96\x62\x67\x50\x3c\x4f\x84\x57\x40\x63\x07\x6b\x62\x8d\xbe\x53\xea\x65\xe8\x7e\xb8\x5f\xd7\x63\x1a\x63\xb7\x81\xf3\x81\xf4\x7f\x6e\x5e\x1c\x5c\xd9\x52\x36\x66\x7a\x79\xe9\x7a\x1a\x8d\x28\x70\x99\x75\xd4\x6e\xde\x6c\xbb\x7a\x92\x4e\x2d\x76\xc5\x5f\xe0\x94\x9f\x88\x77\x7e\xc8\x79\xcd\x80\xbf\x91\xcd\x4e\xf2\x4f\x17\x82\x1f\x54\x68\x5d\xde\x6d\x32\x8b\xcc\x7c\xa5\x8f\x74\x80\x98\x5e\x1a\x54\x92\x76\xb1\x5b\x99\x66\x3c\x9a\xa4\x73\xe0\x68\x2a\x86\xdb\x67\x31\x73\x2a\x8b\xf8\x8b\xdb\x90\x10\x7a\xf9\x70\xdb\x71\x6e\x62\xc4\x77\xa9\x56\x31\x4e\x3b\x84\x57\x67\xf1\x52\xa9\x86\xc0\x8d\x2e\x94\xf8\x7b\x51\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x4f\x6c\xe8\x79\x5d\x9a\x7b\x62\x93\x72\x2a\x62\xfd\x4e\x13\x78\x16\x8f\x6c\x64\xb0\x8d\x5a\x7b\xc6\x68\x69\x5e\x84\x88\xc5\x59\x86\x64\x9e\x58\xee\x72\xb6\x69\x0e\x95\x25\x8f\xfd\x8d\x58\x57\x60\x7f\x00\x8c\x06\x51\xc6\x63\x49\x62\xd9\x53\x53\x68\x4c\x74\x22\x83\x01\x91\x4c\x55\x44\x77\x40\x70\x7c\x6d\x4a\x51\x79\x54\xa8\x8d\x44\x59\xff\x6e\xcb\x6d\xc4\x5b\x5c\x7d\x2b\x4e\xd4\x7c\x7d\x6e\xd3\x5b\x50\x81\xea\x6e\x0d\x5b\x57\x9b\x03\x68\xd5\x8e\x2a\x5b\x97\x7e\xfc\x60\x3b\x7e\xb5\x90\xb9\x8d\x70", /* 5c80 */ "\x00\x00\x59\x4f\x63\xcd\x79\xdf\x8d\xb3\x53\x52\x65\xcf\x79\x56\x8b\xc5\x96\x3b\x7e\xc4\x94\xbb\x7e\x82\x56\x34\x91\x89\x67\x00\x7f\x6a\x5c\x0a\x90\x75\x66\x28\x5d\xe6\x4f\x50\x67\xde\x50\x5a\x4f\x5c\x57\x50\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8d\x4e\x0c\x51\x40\x4e\x10\x5e\xff\x53\x45\x4e\x15\x4e\x98\x4e\x1e\x9b\x32\x5b\x6c\x56\x69\x4e\x28\x79\xba\x4e\x3f\x53\x15\x4e\x47\x59\x2d\x72\x3b\x53\x6e\x6c\x10\x56\xdf\x80\xe4\x99\x97\x6b\xd3\x77\x7e\x9f\x17\x4e\x36\x4e\x9f\x9f\x10\x4e\x5c\x4e\x69\x4e\x93\x82\x88\x5b\x5b\x55\x6c\x56\x0f\x4e\xc4\x53\x8d\x53\x9d\x53\xa3\x53\xa5\x53\xae\x97\x65\x8d\x5d\x53\x1a\x53\xf5\x53\x26\x53\x2e\x53\x3e\x8d\x5c\x53\x66\x53\x63\x52\x02\x52\x08\x52\x0e\x52\x2d\x52\x33\x52\x3f\x52\x40\x52\x4c\x52\x5e\x52\x61\x52\x5c\x84\xaf\x52\x7d\x52\x82\x52\x81\x52\x90\x52\x93\x51\x82\x7f\x54\x4e\xbb\x4e\xc3\x4e\xc9\x4e\xc2\x4e\xe8\x4e\xe1\x4e\xeb\x4e\xde\x4f\x1b\x4e\xf3\x4f\x22\x4f\x64\x4e\xf5\x4f\x25\x4f\x27\x4f\x09\x4f\x2b\x4f\x5e\x4f\x67\x65\x38\x4f\x5a\x4f\x5d\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x5f\x4f\x57\x4f\x32\x4f\x3d\x4f\x76\x4f\x74\x4f\x91\x4f\x89\x4f\x83\x4f\x8f\x4f\x7e\x4f\x7b\x4f\xaa\x4f\x7c\x4f\xac\x4f\x94\x4f\xe6\x4f\xe8\x4f\xea\x4f\xc5\x4f\xda\x4f\xe3\x4f\xdc\x4f\xd1\x4f\xdf\x4f\xf8\x50\x29\x50\x4c\x4f\xf3\x50\x2c\x50\x0f\x50\x2e\x50\x2d\x4f\xfe\x50\x1c\x50\x0c\x50\x25\x50\x28\x50\x7e\x50\x43\x50\x55\x50\x48\x50\x4e\x50\x6c\x50\x7b\x50\xa5\x50\xa7\x50\xa9\x50\xba\x50\xd6\x51\x06\x50\xed\x50\xec\x50\xe6\x50\xee\x51\x07\x51\x0b\x4e\xdd\x6c\x3d\x4f\x58\x4f\x65\x4f\xce\x9f\xa0", /* 5d80 */ "\x00\x00\x6c\x46\x7c\x74\x51\x6e\x5d\xfd\x9e\xc9\x99\x98\x51\x81\x59\x14\x52\xf9\x53\x0d\x8a\x07\x53\x10\x51\xeb\x59\x19\x51\x55\x4e\xa0\x51\x56\x4e\xb3\x88\x6e\x88\xa4\x4e\xb5\x81\x14\x88\xd2\x79\x80\x5b\x34\x88\x03\x7f\xb8\x51\xab\x51\xb1\x51\xbd\x51\xbc\x51\xc7\x51\x96\x51\xa2\x51\xa5\x8b\xa0\x8b\xa6\x8b\xa7\x8b\xaa\x8b\xb4\x8b\xb5\x8b\xb7\x8b\xc2\x8b\xc3\x8b\xcb\x8b\xcf\x8b\xce\x8b\xd2\x8b\xd3\x8b\xd4\x8b\xd6\x8b\xd8\x8b\xd9\x8b\xdc\x8b\xdf\x8b\xe0\x8b\xe4\x8b\xe8\x8b\xe9\x8b\xee\x8b\xf0\x8b\xf3\x8b\xf6\x8b\xf9\x8b\xfc\x8b\xff\x8c\x00\x8c\x02\x8c\x04\x8c\x07\x8c\x0c\x8c\x0f\x8c\x11\x8c\x12\x8c\x14\x8c\x15\x8c\x16\x8c\x19\x8c\x1b\x8c\x18\x8c\x1d\x8c\x1f\x8c\x20\x8c\x21\x8c\x25\x8c\x27\x8c\x2a\x8c\x2b\x8c\x2e\x8c\x2f\x8c\x32\x8c\x33\x8c\x35\x8c\x36\x53\x69\x53\x7a\x96\x1d\x96\x22\x96\x21\x96\x31\x96\x2a\x96\x3d\x96\x3c\x96\x42\x96\x49\x96\x54\x96\x5f\x96\x67\x96\x6c\x96\x72\x96\x74\x96\x88\x96\x8d\x96\x97\x96\xb0\x90\x97\x90\x9b\x90\x9d\x90\x99\x90\xac\x90\xa1\x90\xb4\x90\xb3\x90\xb6\x90\xba\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xb8\x90\xb0\x90\xcf\x90\xc5\x90\xbe\x90\xd0\x90\xc4\x90\xc7\x90\xd3\x90\xe6\x90\xe2\x90\xdc\x90\xd7\x90\xdb\x90\xeb\x90\xef\x90\xfe\x91\x04\x91\x22\x91\x1e\x91\x23\x91\x31\x91\x2f\x91\x39\x91\x43\x91\x46\x52\x0d\x59\x42\x52\xa2\x52\xac\x52\xad\x52\xbe\x54\xff\x52\xd0\x52\xd6\x52\xf0\x53\xdf\x71\xee\x77\xcd\x5e\xf4\x51\xf5\x51\xfc\x9b\x2f\x53\xb6\x5f\x01\x75\x5a\x5d\xef\x57\x4c\x57\xa9\x57\xa1\x58\x7e\x58\xbc\x58\xc5\x58\xd1\x57\x29\x57\x2c\x57\x2a\x57\x33\x57\x39\x57\x2e\x57\x2f\x57\x5c\x57\x3b", /* 5e80 */ "\x00\x00\x57\x42\x57\x69\x57\x85\x57\x6b\x57\x86\x57\x7c\x57\x7b\x57\x68\x57\x6d\x57\x76\x57\x73\x57\xad\x57\xa4\x57\x8c\x57\xb2\x57\xcf\x57\xa7\x57\xb4\x57\x93\x57\xa0\x57\xd5\x57\xd8\x57\xda\x57\xd9\x57\xd2\x57\xb8\x57\xf4\x57\xef\x57\xf8\x57\xe4\x57\xdd\x58\x0b\x58\x0d\x57\xfd\x57\xed\x58\x00\x58\x1e\x58\x19\x58\x44\x58\x20\x58\x65\x58\x6c\x58\x81\x58\x89\x58\x9a\x58\x80\x99\xa8\x9f\x19\x61\xff\x82\x79\x82\x7d\x82\x7f\x82\x8f\x82\x8a\x82\xa8\x82\x84\x82\x8e\x82\x91\x82\x97\x82\x99\x82\xab\x82\xb8\x82\xbe\x82\xb0\x82\xc8\x82\xca\x82\xe3\x82\x98\x82\xb7\x82\xae\x82\xcb\x82\xcc\x82\xc1\x82\xa9\x82\xb4\x82\xa1\x82\xaa\x82\x9f\x82\xc4\x82\xce\x82\xa4\x82\xe1\x83\x09\x82\xf7\x82\xe4\x83\x0f\x83\x07\x82\xdc\x82\xf4\x82\xd2\x82\xd8\x83\x0c\x82\xfb\x82\xd3\x83\x11\x83\x1a\x83\x06\x83\x14\x83\x15\x82\xe0\x82\xd5\x83\x1c\x83\x51\x83\x5b\x83\x5c\x83\x08\x83\x92\x83\x3c\x83\x34\x83\x31\x83\x9b\x83\x5e\x83\x2f\x83\x4f\x83\x47\x83\x43\x83\x5f\x83\x40\x83\x17\x83\x60\x83\x2d\x83\x3a\x83\x33\x83\x66\x83\x65\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x68\x83\x1b\x83\x69\x83\x6c\x83\x6a\x83\x6d\x83\x6e\x83\xb0\x83\x78\x83\xb3\x83\xb4\x83\xa0\x83\xaa\x83\x93\x83\x9c\x83\x85\x83\x7c\x83\xb6\x83\xa9\x83\x7d\x83\xb8\x83\x7b\x83\x98\x83\x9e\x83\xa8\x83\xba\x83\xbc\x83\xc1\x84\x01\x83\xe5\x83\xd8\x58\x07\x84\x18\x84\x0b\x83\xdd\x83\xfd\x83\xd6\x84\x1c\x84\x38\x84\x11\x84\x06\x83\xd4\x83\xdf\x84\x0f\x84\x03\x83\xf8\x83\xf9\x83\xea\x83\xc5\x83\xc0\x84\x26\x83\xf0\x83\xe1\x84\x5c\x84\x51\x84\x5a\x84\x59\x84\x73\x84\x87\x84\x88\x84\x7a\x84\x89\x84\x78", /* 5f80 */ "\x00\x00\x84\x3c\x84\x46\x84\x69\x84\x76\x84\x8c\x84\x8e\x84\x31\x84\x6d\x84\xc1\x84\xcd\x84\xd0\x84\xe6\x84\xbd\x84\xd3\x84\xca\x84\xbf\x84\xba\x84\xe0\x84\xa1\x84\xb9\x84\xb4\x84\x97\x84\xe5\x84\xe3\x85\x0c\x75\x0d\x85\x38\x84\xf0\x85\x39\x85\x1f\x85\x3a\x85\x56\x85\x3b\x84\xff\x84\xfc\x85\x59\x85\x48\x85\x68\x85\x64\x85\x5e\x85\x7a\x77\xa2\x85\x43\x85\x72\x85\x7b\x85\xa4\x85\xa8\x85\x87\x85\x8f\x85\x79\x85\xae\x85\x9c\x85\x85\x85\xb9\x85\xb7\x85\xb0\x85\xd3\x85\xc1\x85\xdc\x85\xff\x86\x27\x86\x05\x86\x29\x86\x16\x86\x3c\x5e\xfe\x5f\x08\x59\x3c\x59\x41\x80\x37\x59\x55\x59\x5a\x59\x58\x53\x0f\x5c\x22\x5c\x25\x5c\x2c\x5c\x34\x62\x4c\x62\x6a\x62\x9f\x62\xbb\x62\xca\x62\xda\x62\xd7\x62\xee\x63\x22\x62\xf6\x63\x39\x63\x4b\x63\x43\x63\xad\x63\xf6\x63\x71\x63\x7a\x63\x8e\x63\xb4\x63\x6d\x63\xac\x63\x8a\x63\x69\x63\xae\x63\xbc\x63\xf2\x63\xf8\x63\xe0\x63\xff\x63\xc4\x63\xde\x63\xce\x64\x52\x63\xc6\x63\xbe\x64\x45\x64\x41\x64\x0b\x64\x1b\x64\x20\x64\x0c\x64\x26\x64\x21\x64\x5e\x64\x84\x64\x6d\x64\x96\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7a\x64\xb7\x64\xb8\x64\x99\x64\xba\x64\xc0\x64\xd0\x64\xd7\x64\xe4\x64\xe2\x65\x09\x65\x25\x65\x2e\x5f\x0b\x5f\xd2\x75\x19\x5f\x11\x53\x5f\x53\xf1\x53\xfd\x53\xe9\x53\xe8\x53\xfb\x54\x12\x54\x16\x54\x06\x54\x4b\x54\x52\x54\x53\x54\x54\x54\x56\x54\x43\x54\x21\x54\x57\x54\x59\x54\x23\x54\x32\x54\x82\x54\x94\x54\x77\x54\x71\x54\x64\x54\x9a\x54\x9b\x54\x84\x54\x76\x54\x66\x54\x9d\x54\xd0\x54\xad\x54\xc2\x54\xb4\x54\xd2\x54\xa7\x54\xa6\x54\xd3\x54\xd4\x54\x72\x54\xa3\x54\xd5\x54\xbb\x54\xbf\x54\xcc", /* 6080 */ "\x00\x00\x54\xd9\x54\xda\x54\xdc\x54\xa9\x54\xaa\x54\xa4\x54\xdd\x54\xcf\x54\xde\x55\x1b\x54\xe7\x55\x20\x54\xfd\x55\x14\x54\xf3\x55\x22\x55\x23\x55\x0f\x55\x11\x55\x27\x55\x2a\x55\x67\x55\x8f\x55\xb5\x55\x49\x55\x6d\x55\x41\x55\x55\x55\x3f\x55\x50\x55\x3c\x55\x37\x55\x56\x55\x75\x55\x76\x55\x77\x55\x33\x55\x30\x55\x5c\x55\x8b\x55\xd2\x55\x83\x55\xb1\x55\xb9\x55\x88\x55\x81\x55\x9f\x55\x7e\x55\xd6\x55\x91\x55\x7b\x55\xdf\x55\xbd\x55\xbe\x55\x94\x55\x99\x55\xea\x55\xf7\x55\xc9\x56\x1f\x55\xd1\x55\xeb\x55\xec\x55\xd4\x55\xe6\x55\xdd\x55\xc4\x55\xef\x55\xe5\x55\xf2\x55\xf3\x55\xcc\x55\xcd\x55\xe8\x55\xf5\x55\xe4\x8f\x94\x56\x1e\x56\x08\x56\x0c\x56\x01\x56\x24\x56\x23\x55\xfe\x56\x00\x56\x27\x56\x2d\x56\x58\x56\x39\x56\x57\x56\x2c\x56\x4d\x56\x62\x56\x59\x56\x5c\x56\x4c\x56\x54\x56\x86\x56\x64\x56\x71\x56\x6b\x56\x7b\x56\x7c\x56\x85\x56\x93\x56\xaf\x56\xd4\x56\xd7\x56\xdd\x56\xe1\x56\xf5\x56\xeb\x56\xf9\x56\xff\x57\x04\x57\x0a\x57\x09\x57\x1c\x5e\x0f\x5e\x19\x5e\x14\x5e\x11\x5e\x31\x5e\x3b\x5e\x3c\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x37\x5e\x44\x5e\x54\x5e\x5b\x5e\x5e\x5e\x61\x5c\x8c\x5c\x7a\x5c\x8d\x5c\x90\x5c\x96\x5c\x88\x5c\x98\x5c\x99\x5c\x91\x5c\x9a\x5c\x9c\x5c\xb5\x5c\xa2\x5c\xbd\x5c\xac\x5c\xab\x5c\xb1\x5c\xa3\x5c\xc1\x5c\xb7\x5c\xc4\x5c\xd2\x5c\xe4\x5c\xcb\x5c\xe5\x5d\x02\x5d\x03\x5d\x27\x5d\x26\x5d\x2e\x5d\x24\x5d\x1e\x5d\x06\x5d\x1b\x5d\x58\x5d\x3e\x5d\x34\x5d\x3d\x5d\x6c\x5d\x5b\x5d\x6f\x5d\x5d\x5d\x6b\x5d\x4b\x5d\x4a\x5d\x69\x5d\x74\x5d\x82\x5d\x99\x5d\x9d\x8c\x73\x5d\xb7\x5d\xc5\x5f\x73\x5f\x77\x5f\x82\x5f\x87", /* 6180 */ "\x00\x00\x5f\x89\x5f\x8c\x5f\x95\x5f\x99\x5f\x9c\x5f\xa8\x5f\xad\x5f\xb5\x5f\xbc\x88\x62\x5f\x61\x72\xad\x72\xb0\x72\xb4\x72\xb7\x72\xb8\x72\xc3\x72\xc1\x72\xce\x72\xcd\x72\xd2\x72\xe8\x72\xef\x72\xe9\x72\xf2\x72\xf4\x72\xf7\x73\x01\x72\xf3\x73\x03\x72\xfa\x72\xfb\x73\x17\x73\x13\x73\x21\x73\x0a\x73\x1e\x73\x1d\x73\x15\x73\x22\x73\x39\x73\x25\x73\x2c\x73\x38\x73\x31\x73\x50\x73\x4d\x73\x57\x73\x60\x73\x6c\x73\x6f\x73\x7e\x82\x1b\x59\x25\x98\xe7\x59\x24\x59\x02\x99\x63\x99\x67\x99\x68\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x74\x99\x77\x99\x7d\x99\x80\x99\x84\x99\x87\x99\x8a\x99\x8d\x99\x90\x99\x91\x99\x93\x99\x94\x99\x95\x5e\x80\x5e\x91\x5e\x8b\x5e\x96\x5e\xa5\x5e\xa0\x5e\xb9\x5e\xb5\x5e\xbe\x5e\xb3\x8d\x53\x5e\xd2\x5e\xd1\x5e\xdb\x5e\xe8\x5e\xea\x81\xba\x5f\xc4\x5f\xc9\x5f\xd6\x5f\xcf\x60\x03\x5f\xee\x60\x04\x5f\xe1\x5f\xe4\x5f\xfe\x60\x05\x60\x06\x5f\xea\x5f\xed\x5f\xf8\x60\x19\x60\x35\x60\x26\x60\x1b\x60\x0f\x60\x0d\x60\x29\x60\x2b\x60\x0a\x60\x3f\x60\x21\x60\x78\x60\x79\x60\x7b\x60\x7a\x60\x42\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6a\x60\x7d\x60\x96\x60\x9a\x60\xad\x60\x9d\x60\x83\x60\x92\x60\x8c\x60\x9b\x60\xec\x60\xbb\x60\xb1\x60\xdd\x60\xd8\x60\xc6\x60\xda\x60\xb4\x61\x20\x61\x26\x61\x15\x61\x23\x60\xf4\x61\x00\x61\x0e\x61\x2b\x61\x4a\x61\x75\x61\xac\x61\x94\x61\xa7\x61\xb7\x61\xd4\x61\xf5\x5f\xdd\x96\xb3\x95\xe9\x95\xeb\x95\xf1\x95\xf3\x95\xf5\x95\xf6\x95\xfc\x95\xfe\x96\x03\x96\x04\x96\x06\x96\x08\x96\x0a\x96\x0b\x96\x0c\x96\x0d\x96\x0f\x96\x12\x96\x15\x96\x16\x96\x17\x96\x19\x96\x1a\x4e\x2c\x72\x3f\x62\x15\x6c\x35", /* 6280 */ "\x00\x00\x6c\x54\x6c\x5c\x6c\x4a\x6c\xa3\x6c\x85\x6c\x90\x6c\x94\x6c\x8c\x6c\x68\x6c\x69\x6c\x74\x6c\x76\x6c\x86\x6c\xa9\x6c\xd0\x6c\xd4\x6c\xad\x6c\xf7\x6c\xf8\x6c\xf1\x6c\xd7\x6c\xb2\x6c\xe0\x6c\xd6\x6c\xfa\x6c\xeb\x6c\xee\x6c\xb1\x6c\xd3\x6c\xef\x6c\xfe\x6d\x39\x6d\x27\x6d\x0c\x6d\x43\x6d\x48\x6d\x07\x6d\x04\x6d\x19\x6d\x0e\x6d\x2b\x6d\x4d\x6d\x2e\x6d\x35\x6d\x1a\x6d\x4f\x6d\x52\x6d\x54\x6d\x33\x6d\x91\x6d\x6f\x6d\x9e\x6d\xa0\x6d\x5e\x6d\x93\x6d\x94\x6d\x5c\x6d\x60\x6d\x7c\x6d\x63\x6e\x1a\x6d\xc7\x6d\xc5\x6d\xde\x6e\x0e\x6d\xbf\x6d\xe0\x6e\x11\x6d\xe6\x6d\xdd\x6d\xd9\x6e\x16\x6d\xab\x6e\x0c\x6d\xae\x6e\x2b\x6e\x6e\x6e\x4e\x6e\x6b\x6e\xb2\x6e\x5f\x6e\x86\x6e\x53\x6e\x54\x6e\x32\x6e\x25\x6e\x44\x6e\xdf\x6e\xb1\x6e\x98\x6e\xe0\x6f\x2d\x6e\xe2\x6e\xa5\x6e\xa7\x6e\xbd\x6e\xbb\x6e\xb7\x6e\xd7\x6e\xb4\x6e\xcf\x6e\x8f\x6e\xc2\x6e\x9f\x6f\x62\x6f\x46\x6f\x47\x6f\x24\x6f\x15\x6e\xf9\x6f\x2f\x6f\x36\x6f\x4b\x6f\x74\x6f\x2a\x6f\x09\x6f\x29\x6f\x89\x6f\x8d\x6f\x8c\x6f\x78\x6f\x72\x6f\x7c\x6f\x7a\x6f\xd1\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xc9\x6f\xa7\x6f\xb9\x6f\xb6\x6f\xc2\x6f\xe1\x6f\xee\x6f\xde\x6f\xe0\x6f\xef\x70\x1a\x70\x23\x70\x1b\x70\x39\x70\x35\x70\x4f\x70\x5e\x5b\x80\x5b\x84\x5b\x95\x5b\x93\x5b\xa5\x5b\xb8\x75\x2f\x9a\x9e\x64\x34\x5b\xe4\x5b\xee\x89\x30\x5b\xf0\x8e\x47\x8b\x07\x8f\xb6\x8f\xd3\x8f\xd5\x8f\xe5\x8f\xee\x8f\xe4\x8f\xe9\x8f\xe6\x8f\xf3\x8f\xe8\x90\x05\x90\x04\x90\x0b\x90\x26\x90\x11\x90\x0d\x90\x16\x90\x21\x90\x35\x90\x36\x90\x2d\x90\x2f\x90\x44\x90\x51\x90\x52\x90\x50\x90\x68\x90\x58\x90\x62\x90\x5b\x66\xb9", /* 6380 */ "\x00\x00\x90\x74\x90\x7d\x90\x82\x90\x88\x90\x83\x90\x8b\x5f\x50\x5f\x57\x5f\x56\x5f\x58\x5c\x3b\x54\xab\x5c\x50\x5c\x59\x5b\x71\x5c\x63\x5c\x66\x7f\xbc\x5f\x2a\x5f\x29\x5f\x2d\x82\x74\x5f\x3c\x9b\x3b\x5c\x6e\x59\x81\x59\x83\x59\x8d\x59\xa9\x59\xaa\x59\xa3\x59\x97\x59\xca\x59\xab\x59\x9e\x59\xa4\x59\xd2\x59\xb2\x59\xaf\x59\xd7\x59\xbe\x5a\x05\x5a\x06\x59\xdd\x5a\x08\x59\xe3\x59\xd8\x59\xf9\x5a\x0c\x5a\x09\x5a\x32\x5a\x34\x5a\x11\x5a\x23\x5a\x13\x5a\x40\x5a\x67\x5a\x4a\x5a\x55\x5a\x3c\x5a\x62\x5a\x75\x80\xec\x5a\xaa\x5a\x9b\x5a\x77\x5a\x7a\x5a\xbe\x5a\xeb\x5a\xb2\x5a\xd2\x5a\xd4\x5a\xb8\x5a\xe0\x5a\xe3\x5a\xf1\x5a\xd6\x5a\xe6\x5a\xd8\x5a\xdc\x5b\x09\x5b\x17\x5b\x16\x5b\x32\x5b\x37\x5b\x40\x5c\x15\x5c\x1c\x5b\x5a\x5b\x65\x5b\x73\x5b\x51\x5b\x53\x5b\x62\x9a\x75\x9a\x77\x9a\x78\x9a\x7a\x9a\x7f\x9a\x7d\x9a\x80\x9a\x81\x9a\x85\x9a\x88\x9a\x8a\x9a\x90\x9a\x92\x9a\x93\x9a\x96\x9a\x98\x9a\x9b\x9a\x9c\x9a\x9d\x9a\x9f\x9a\xa0\x9a\xa2\x9a\xa3\x9a\xa5\x9a\xa7\x7e\x9f\x7e\xa1\x7e\xa3\x7e\xa5\x7e\xa8\x7e\xa9\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xad\x7e\xb0\x7e\xbe\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc9\x7e\xcb\x7e\xcc\x7e\xd0\x7e\xd4\x7e\xd7\x7e\xdb\x7e\xe0\x7e\xe1\x7e\xe8\x7e\xeb\x7e\xee\x7e\xef\x7e\xf1\x7e\xf2\x7f\x0d\x7e\xf6\x7e\xfa\x7e\xfb\x7e\xfe\x7f\x01\x7f\x02\x7f\x03\x7f\x07\x7f\x08\x7f\x0b\x7f\x0c\x7f\x0f\x7f\x11\x7f\x12\x7f\x17\x7f\x19\x7f\x1c\x7f\x1b\x7f\x1f\x7f\x21\x7f\x22\x7f\x23\x7f\x24\x7f\x25\x7f\x26\x7f\x27\x7f\x2a\x7f\x2b\x7f\x2c\x7f\x2d\x7f\x2f\x7f\x30\x7f\x31\x7f\x32\x7f\x33\x7f\x35\x5e\x7a\x75\x7f\x5d\xdb\x75\x3e\x90\x95", /* 6480 */ "\x00\x00\x73\x8e\x73\x91\x73\xae\x73\xa2\x73\x9f\x73\xcf\x73\xc2\x73\xd1\x73\xb7\x73\xb3\x73\xc0\x73\xc9\x73\xc8\x73\xe5\x73\xd9\x98\x7c\x74\x0a\x73\xe9\x73\xe7\x73\xde\x73\xba\x73\xf2\x74\x0f\x74\x2a\x74\x5b\x74\x26\x74\x25\x74\x28\x74\x30\x74\x2e\x74\x2c\x74\x1b\x74\x1a\x74\x41\x74\x5c\x74\x57\x74\x55\x74\x59\x74\x77\x74\x6d\x74\x7e\x74\x9c\x74\x8e\x74\x80\x74\x81\x74\x87\x74\x8b\x74\x9e\x74\xa8\x74\xa9\x74\x90\x74\xa7\x74\xd2\x74\xba\x97\xea\x97\xeb\x97\xec\x67\x4c\x67\x53\x67\x5e\x67\x48\x67\x69\x67\xa5\x67\x87\x67\x6a\x67\x73\x67\x98\x67\xa7\x67\x75\x67\xa8\x67\x9e\x67\xad\x67\x8b\x67\x77\x67\x7c\x67\xf0\x68\x09\x67\xd8\x68\x0a\x67\xe9\x67\xb0\x68\x0c\x67\xd9\x67\xb5\x67\xda\x67\xb3\x67\xdd\x68\x00\x67\xc3\x67\xb8\x67\xe2\x68\x0e\x67\xc1\x67\xfd\x68\x32\x68\x33\x68\x60\x68\x61\x68\x4e\x68\x62\x68\x44\x68\x64\x68\x83\x68\x1d\x68\x55\x68\x66\x68\x41\x68\x67\x68\x40\x68\x3e\x68\x4a\x68\x49\x68\x29\x68\xb5\x68\x8f\x68\x74\x68\x77\x68\x93\x68\x6b\x68\xc2\x69\x6e\x68\xfc\x69\x1f\x69\x20\x68\xf9\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x24\x68\xf0\x69\x0b\x69\x01\x69\x57\x68\xe3\x69\x10\x69\x71\x69\x39\x69\x60\x69\x42\x69\x5d\x69\x84\x69\x6b\x69\x80\x69\x98\x69\x78\x69\x34\x69\xcc\x69\x87\x69\x88\x69\xce\x69\x89\x69\x66\x69\x63\x69\x79\x69\x9b\x69\xa7\x69\xbb\x69\xab\x69\xad\x69\xd4\x69\xb1\x69\xc1\x69\xca\x69\xdf\x69\x95\x69\xe0\x69\x8d\x69\xff\x6a\x2f\x69\xed\x6a\x17\x6a\x18\x6a\x65\x69\xf2\x6a\x44\x6a\x3e\x6a\xa0\x6a\x50\x6a\x5b\x6a\x35\x6a\x8e\x6a\x79\x6a\x3d\x6a\x28\x6a\x58\x6a\x7c\x6a\x91\x6a\x90\x6a\xa9\x6a\x97\x6a\xab", /* 6580 */ "\x00\x00\x73\x37\x73\x52\x6b\x81\x6b\x82\x6b\x87\x6b\x84\x6b\x92\x6b\x93\x6b\x8d\x6b\x9a\x6b\x9b\x6b\xa1\x6b\xaa\x8f\x6b\x8f\x6d\x8f\x71\x8f\x72\x8f\x73\x8f\x75\x8f\x76\x8f\x78\x8f\x77\x8f\x79\x8f\x7a\x8f\x7c\x8f\x7e\x8f\x81\x8f\x82\x8f\x84\x8f\x87\x8f\x8b\x8f\x8d\x8f\x8e\x8f\x8f\x8f\x98\x8f\x9a\x8e\xce\x62\x0b\x62\x17\x62\x1b\x62\x1f\x62\x22\x62\x21\x62\x25\x62\x24\x62\x2c\x81\xe7\x74\xef\x74\xf4\x74\xff\x75\x0f\x75\x11\x75\x13\x65\x34\x65\xee\x65\xef\x65\xf0\x66\x0a\x66\x19\x67\x72\x66\x03\x66\x15\x66\x00\x70\x85\x66\xf7\x66\x1d\x66\x34\x66\x31\x66\x36\x66\x35\x80\x06\x66\x5f\x66\x54\x66\x41\x66\x4f\x66\x56\x66\x61\x66\x57\x66\x77\x66\x84\x66\x8c\x66\xa7\x66\x9d\x66\xbe\x66\xdb\x66\xdc\x66\xe6\x66\xe9\x8d\x32\x8d\x33\x8d\x36\x8d\x3b\x8d\x3d\x8d\x40\x8d\x45\x8d\x46\x8d\x48\x8d\x49\x8d\x47\x8d\x4d\x8d\x55\x8d\x59\x89\xc7\x89\xca\x89\xcb\x89\xcc\x89\xce\x89\xcf\x89\xd0\x89\xd1\x72\x6e\x72\x9f\x72\x5d\x72\x66\x72\x6f\x72\x7e\x72\x7f\x72\x84\x72\x8b\x72\x8d\x72\x8f\x72\x92\x63\x08\x63\x32\x63\xb0\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x3f\x64\xd8\x80\x04\x6b\xea\x6b\xf3\x6b\xfd\x6b\xf5\x6b\xf9\x6c\x05\x6c\x07\x6c\x06\x6c\x0d\x6c\x15\x6c\x18\x6c\x19\x6c\x1a\x6c\x21\x6c\x29\x6c\x24\x6c\x2a\x6c\x32\x65\x35\x65\x55\x65\x6b\x72\x4d\x72\x52\x72\x56\x72\x30\x86\x62\x52\x16\x80\x9f\x80\x9c\x80\x93\x80\xbc\x67\x0a\x80\xbd\x80\xb1\x80\xab\x80\xad\x80\xb4\x80\xb7\x80\xe7\x80\xe8\x80\xe9\x80\xea\x80\xdb\x80\xc2\x80\xc4\x80\xd9\x80\xcd\x80\xd7\x67\x10\x80\xdd\x80\xeb\x80\xf1\x80\xf4\x80\xed\x81\x0d\x81\x0e\x80\xf2\x80\xfc\x67\x15\x81\x12", /* 6680 */ "\x00\x00\x8c\x5a\x81\x36\x81\x1e\x81\x2c\x81\x18\x81\x32\x81\x48\x81\x4c\x81\x53\x81\x74\x81\x59\x81\x5a\x81\x71\x81\x60\x81\x69\x81\x7c\x81\x7d\x81\x6d\x81\x67\x58\x4d\x5a\xb5\x81\x88\x81\x82\x81\x91\x6e\xd5\x81\xa3\x81\xaa\x81\xcc\x67\x26\x81\xca\x81\xbb\x81\xc1\x81\xa6\x6b\x24\x6b\x37\x6b\x39\x6b\x43\x6b\x46\x6b\x59\x98\xd1\x98\xd2\x98\xd3\x98\xd5\x98\xd9\x98\xda\x6b\xb3\x5f\x40\x6b\xc2\x89\xf3\x65\x90\x9f\x51\x65\x93\x65\xbc\x65\xc6\x65\xc4\x65\xc3\x65\xcc\x65\xce\x65\xd2\x65\xd6\x70\x80\x70\x9c\x70\x96\x70\x9d\x70\xbb\x70\xc0\x70\xb7\x70\xab\x70\xb1\x70\xe8\x70\xca\x71\x10\x71\x13\x71\x16\x71\x2f\x71\x31\x71\x73\x71\x5c\x71\x68\x71\x45\x71\x72\x71\x4a\x71\x78\x71\x7a\x71\x98\x71\xb3\x71\xb5\x71\xa8\x71\xa0\x71\xe0\x71\xd4\x71\xe7\x71\xf9\x72\x1d\x72\x28\x70\x6c\x71\x18\x71\x66\x71\xb9\x62\x3e\x62\x3d\x62\x43\x62\x48\x62\x49\x79\x3b\x79\x40\x79\x46\x79\x49\x79\x5b\x79\x5c\x79\x53\x79\x5a\x79\x62\x79\x57\x79\x60\x79\x6f\x79\x67\x79\x7a\x79\x85\x79\x8a\x79\x9a\x79\xa7\x79\xb3\x5f\xd1\x5f\xd0\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x3c\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\x59\x60\x63\x60\xab\x61\x06\x61\x0d\x61\x5d\x61\xa9\x61\x9d\x61\xcb\x61\xd1\x62\x06\x80\x80\x80\x7f\x6c\x93\x6c\xf6\x6d\xfc\x77\xf6\x77\xf8\x78\x00\x78\x09\x78\x17\x78\x18\x78\x11\x65\xab\x78\x2d\x78\x1c\x78\x1d\x78\x39\x78\x3a\x78\x3b\x78\x1f\x78\x3c\x78\x25\x78\x2c\x78\x23\x78\x29\x78\x4e\x78\x6d\x78\x56\x78\x57\x78\x26\x78\x50\x78\x47\x78\x4c\x78\x6a\x78\x9b\x78\x93\x78\x9a\x78\x87\x78\x9c\x78\xa1\x78\xa3\x78\xb2\x78\xb9\x78\xa5\x78\xd4\x78\xd9\x78\xc9", /* 6780 */ "\x00\x00\x78\xec\x78\xf2\x79\x05\x78\xf4\x79\x13\x79\x24\x79\x1e\x79\x34\x9f\x9b\x9e\xf9\x9e\xfb\x9e\xfc\x76\xf1\x77\x04\x77\x0d\x76\xf9\x77\x07\x77\x08\x77\x1a\x77\x22\x77\x19\x77\x2d\x77\x26\x77\x35\x77\x38\x77\x50\x77\x51\x77\x47\x77\x43\x77\x5a\x77\x68\x77\x62\x77\x65\x77\x7f\x77\x8d\x77\x7d\x77\x80\x77\x8c\x77\x91\x77\x9f\x77\xa0\x77\xb0\x77\xb5\x77\xbd\x75\x3a\x75\x40\x75\x4e\x75\x4b\x75\x48\x75\x5b\x75\x72\x75\x79\x75\x83\x7f\x58\x7f\x61\x7f\x5f\x8a\x48\x7f\x68\x7f\x74\x7f\x71\x7f\x79\x7f\x81\x7f\x7e\x76\xcd\x76\xe5\x88\x32\x94\x85\x94\x86\x94\x87\x94\x8b\x94\x8a\x94\x8c\x94\x8d\x94\x8f\x94\x90\x94\x94\x94\x97\x94\x95\x94\x9a\x94\x9b\x94\x9c\x94\xa3\x94\xa4\x94\xab\x94\xaa\x94\xad\x94\xac\x94\xaf\x94\xb0\x94\xb2\x94\xb4\x94\xb6\x94\xb7\x94\xb8\x94\xb9\x94\xba\x94\xbc\x94\xbd\x94\xbf\x94\xc4\x94\xc8\x94\xc9\x94\xca\x94\xcb\x94\xcc\x94\xcd\x94\xce\x94\xd0\x94\xd1\x94\xd2\x94\xd5\x94\xd6\x94\xd7\x94\xd9\x94\xd8\x94\xdb\x94\xde\x94\xdf\x94\xe0\x94\xe2\x94\xe4\x94\xe5\x94\xe7\x94\xe8\x94\xea\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe9\x94\xeb\x94\xee\x94\xef\x94\xf3\x94\xf4\x94\xf5\x94\xf7\x94\xf9\x94\xfc\x94\xfd\x94\xff\x95\x03\x95\x02\x95\x06\x95\x07\x95\x09\x95\x0a\x95\x0d\x95\x0e\x95\x0f\x95\x12\x95\x13\x95\x14\x95\x15\x95\x16\x95\x18\x95\x1b\x95\x1d\x95\x1e\x95\x1f\x95\x22\x95\x2a\x95\x2b\x95\x29\x95\x2c\x95\x31\x95\x32\x95\x34\x95\x36\x95\x37\x95\x38\x95\x3c\x95\x3e\x95\x3f\x95\x42\x95\x35\x95\x44\x95\x45\x95\x46\x95\x49\x95\x4c\x95\x4e\x95\x4f\x95\x52\x95\x53\x95\x54\x95\x56\x95\x57\x95\x58\x95\x59\x95\x5b\x95\x5e", /* 6880 */ "\x00\x00\x95\x5f\x95\x5d\x95\x61\x95\x62\x95\x64\x95\x65\x95\x66\x95\x67\x95\x68\x95\x69\x95\x6a\x95\x6b\x95\x6c\x95\x6f\x95\x71\x95\x72\x95\x73\x95\x3a\x77\xe7\x77\xec\x96\xc9\x79\xd5\x79\xed\x79\xe3\x79\xeb\x7a\x06\x5d\x47\x7a\x03\x7a\x02\x7a\x1e\x7a\x14\x7a\x39\x7a\x37\x7a\x51\x9e\xcf\x99\xa5\x7a\x70\x76\x88\x76\x8e\x76\x93\x76\x99\x76\xa4\x74\xde\x74\xe0\x75\x2c\x9e\x20\x9e\x22\x9e\x28\x9e\x29\x9e\x2a\x9e\x2b\x9e\x2c\x9e\x32\x9e\x31\x9e\x36\x9e\x38\x9e\x37\x9e\x39\x9e\x3a\x9e\x3e\x9e\x41\x9e\x42\x9e\x44\x9e\x46\x9e\x47\x9e\x48\x9e\x49\x9e\x4b\x9e\x4c\x9e\x4e\x9e\x51\x9e\x55\x9e\x57\x9e\x5a\x9e\x5b\x9e\x5c\x9e\x5e\x9e\x63\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x9e\x6b\x9e\x6c\x9e\x71\x9e\x6d\x9e\x73\x75\x92\x75\x94\x75\x96\x75\xa0\x75\x9d\x75\xac\x75\xa3\x75\xb3\x75\xb4\x75\xb8\x75\xc4\x75\xb1\x75\xb0\x75\xc3\x75\xc2\x75\xd6\x75\xcd\x75\xe3\x75\xe8\x75\xe6\x75\xe4\x75\xeb\x75\xe7\x76\x03\x75\xf1\x75\xfc\x75\xff\x76\x10\x76\x00\x76\x05\x76\x0c\x76\x17\x76\x0a\x76\x25\x76\x18\x76\x15\x76\x19\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x1b\x76\x3c\x76\x22\x76\x20\x76\x40\x76\x2d\x76\x30\x76\x3f\x76\x35\x76\x43\x76\x3e\x76\x33\x76\x4d\x76\x5e\x76\x54\x76\x5c\x76\x56\x76\x6b\x76\x6f\x7f\xca\x7a\xe6\x7a\x78\x7a\x79\x7a\x80\x7a\x86\x7a\x88\x7a\x95\x7a\xa6\x7a\xa0\x7a\xac\x7a\xa8\x7a\xad\x7a\xb3\x88\x64\x88\x69\x88\x72\x88\x7d\x88\x7f\x88\x82\x88\xa2\x88\xc6\x88\xb7\x88\xbc\x88\xc9\x88\xe2\x88\xce\x88\xe3\x88\xe5\x88\xf1\x89\x1a\x88\xfc\x88\xe8\x88\xfe\x88\xf0\x89\x21\x89\x19\x89\x13\x89\x1b\x89\x0a\x89\x34\x89\x2b\x89\x36\x89\x41", /* 6980 */ "\x00\x00\x89\x66\x89\x7b\x75\x8b\x80\xe5\x76\xb2\x76\xb4\x77\xdc\x80\x12\x80\x14\x80\x16\x80\x1c\x80\x20\x80\x22\x80\x25\x80\x26\x80\x27\x80\x29\x80\x28\x80\x31\x80\x0b\x80\x35\x80\x43\x80\x46\x80\x4d\x80\x52\x80\x69\x80\x71\x89\x83\x98\x78\x98\x80\x98\x83\x98\x89\x98\x8c\x98\x8d\x98\x8f\x98\x94\x98\x9a\x98\x9b\x98\x9e\x98\x9f\x98\xa1\x98\xa2\x98\xa5\x98\xa6\x86\x4d\x86\x54\x86\x6c\x86\x6e\x86\x7f\x86\x7a\x86\x7c\x86\x7b\x86\xa8\x86\x8d\x86\x8b\x86\xac\x86\x9d\x86\xa7\x86\xa3\x86\xaa\x86\x93\x86\xa9\x86\xb6\x86\xc4\x86\xb5\x86\xce\x86\xb0\x86\xba\x86\xb1\x86\xaf\x86\xc9\x86\xcf\x86\xb4\x86\xe9\x86\xf1\x86\xf2\x86\xed\x86\xf3\x86\xd0\x87\x13\x86\xde\x86\xf4\x86\xdf\x86\xd8\x86\xd1\x87\x03\x87\x07\x86\xf8\x87\x08\x87\x0a\x87\x0d\x87\x09\x87\x23\x87\x3b\x87\x1e\x87\x25\x87\x2e\x87\x1a\x87\x3e\x87\x48\x87\x34\x87\x31\x87\x29\x87\x37\x87\x3f\x87\x82\x87\x22\x87\x7d\x87\x7e\x87\x7b\x87\x60\x87\x70\x87\x4c\x87\x6e\x87\x8b\x87\x53\x87\x63\x87\x7c\x87\x64\x87\x59\x87\x65\x87\x93\x87\xaf\x87\xa8\x87\xd2\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xc6\x87\x88\x87\x85\x87\xad\x87\x97\x87\x83\x87\xab\x87\xe5\x87\xac\x87\xb5\x87\xb3\x87\xcb\x87\xd3\x87\xbd\x87\xd1\x87\xc0\x87\xca\x87\xdb\x87\xea\x87\xe0\x87\xee\x88\x16\x88\x13\x87\xfe\x88\x0a\x88\x1b\x88\x21\x88\x39\x88\x3c\x7f\x36\x7f\x42\x7f\x44\x7f\x45\x82\x10\x7a\xfa\x7a\xfd\x7b\x08\x7b\x03\x7b\x04\x7b\x15\x7b\x0a\x7b\x2b\x7b\x0f\x7b\x47\x7b\x38\x7b\x2a\x7b\x19\x7b\x2e\x7b\x31\x7b\x20\x7b\x25\x7b\x24\x7b\x33\x7b\x3e\x7b\x1e\x7b\x58\x7b\x5a\x7b\x45\x7b\x75\x7b\x4c\x7b\x5d\x7b\x60\x7b\x6e", /* 6a80 */ "\x00\x00\x7b\x7b\x7b\x62\x7b\x72\x7b\x71\x7b\x90\x7b\xa6\x7b\xa7\x7b\xb8\x7b\xac\x7b\x9d\x7b\xa8\x7b\x85\x7b\xaa\x7b\x9c\x7b\xa2\x7b\xab\x7b\xb4\x7b\xd1\x7b\xc1\x7b\xcc\x7b\xdd\x7b\xda\x7b\xe5\x7b\xe6\x7b\xea\x7c\x0c\x7b\xfe\x7b\xfc\x7c\x0f\x7c\x16\x7c\x0b\x7c\x1f\x7c\x2a\x7c\x26\x7c\x38\x7c\x41\x7c\x40\x81\xfe\x82\x01\x82\x02\x82\x04\x81\xec\x88\x44\x82\x21\x82\x22\x82\x23\x82\x2d\x82\x2f\x82\x28\x82\x2b\x82\x38\x82\x3b\x82\x33\x82\x34\x82\x3e\x82\x44\x82\x49\x82\x4b\x82\x4f\x82\x5a\x82\x5f\x82\x68\x88\x7e\x88\x85\x88\x88\x88\xd8\x88\xdf\x89\x5e\x7f\x9d\x7f\x9f\x7f\xa7\x7f\xaf\x7f\xb0\x7f\xb2\x7c\x7c\x65\x49\x7c\x91\x7c\x9d\x7c\x9c\x7c\x9e\x7c\xa2\x7c\xb2\x7c\xbc\x7c\xbd\x7c\xc1\x7c\xc7\x7c\xcc\x7c\xcd\x7c\xc8\x7c\xc5\x7c\xd7\x7c\xe8\x82\x6e\x66\xa8\x7f\xbf\x7f\xce\x7f\xd5\x7f\xe5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xee\x7f\xf3\x7c\xf8\x7d\x77\x7d\xa6\x7d\xae\x7e\x47\x7e\x9b\x9e\xb8\x9e\xb4\x8d\x73\x8d\x84\x8d\x94\x8d\x91\x8d\xb1\x8d\x67\x8d\x6d\x8c\x47\x8c\x49\x91\x4a\x91\x50\x91\x4e\x91\x4f\x91\x64\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x62\x91\x61\x91\x70\x91\x69\x91\x6f\x91\x7d\x91\x7e\x91\x72\x91\x74\x91\x79\x91\x8c\x91\x85\x91\x90\x91\x8d\x91\x91\x91\xa2\x91\xa3\x91\xaa\x91\xad\x91\xae\x91\xaf\x91\xb5\x91\xb4\x91\xba\x8c\x55\x9e\x7e\x8d\xb8\x8d\xeb\x8e\x05\x8e\x59\x8e\x69\x8d\xb5\x8d\xbf\x8d\xbc\x8d\xba\x8d\xc4\x8d\xd6\x8d\xd7\x8d\xda\x8d\xde\x8d\xce\x8d\xcf\x8d\xdb\x8d\xc6\x8d\xec\x8d\xf7\x8d\xf8\x8d\xe3\x8d\xf9\x8d\xfb\x8d\xe4\x8e\x09\x8d\xfd\x8e\x14\x8e\x1d\x8e\x1f\x8e\x2c\x8e\x2e\x8e\x23\x8e\x2f\x8e\x3a\x8e\x40\x8e\x39", /* 6b80 */ "\x00\x00\x8e\x35\x8e\x3d\x8e\x31\x8e\x49\x8e\x41\x8e\x42\x8e\x51\x8e\x52\x8e\x4a\x8e\x70\x8e\x76\x8e\x7c\x8e\x6f\x8e\x74\x8e\x85\x8e\x8f\x8e\x94\x8e\x90\x8e\x9c\x8e\x9e\x8c\x78\x8c\x82\x8c\x8a\x8c\x85\x8c\x98\x8c\x94\x65\x9b\x89\xd6\x89\xde\x89\xda\x89\xdc\x89\xe5\x89\xeb\x89\xef\x8a\x3e\x8b\x26\x97\x53\x96\xe9\x96\xf3\x96\xef\x97\x06\x97\x01\x97\x08\x97\x0f\x97\x0e\x97\x2a\x97\x2d\x97\x30\x97\x3e\x9f\x80\x9f\x83\x9f\x85\x9f\x86\x9f\x87\x9f\x88\x9f\x89\x9f\x8a\x9f\x8c\x9e\xfe\x9f\x0b\x9f\x0d\x96\xb9\x96\xbc\x96\xbd\x96\xce\x96\xd2\x77\xbf\x96\xe0\x92\x8e\x92\xae\x92\xc8\x93\x3e\x93\x6a\x93\xca\x93\x8f\x94\x3e\x94\x6b\x9c\x7f\x9c\x82\x9c\x85\x9c\x86\x9c\x87\x9c\x88\x7a\x23\x9c\x8b\x9c\x8e\x9c\x90\x9c\x91\x9c\x92\x9c\x94\x9c\x95\x9c\x9a\x9c\x9b\x9c\x9e\x9c\x9f\x9c\xa0\x9c\xa1\x9c\xa2\x9c\xa3\x9c\xa5\x9c\xa6\x9c\xa7\x9c\xa8\x9c\xa9\x9c\xab\x9c\xad\x9c\xae\x9c\xb0\x9c\xb1\x9c\xb2\x9c\xb3\x9c\xb4\x9c\xb5\x9c\xb6\x9c\xb7\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xca\x9c\xcb\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xcc\x9c\xcd\x9c\xce\x9c\xcf\x9c\xd0\x9c\xd3\x9c\xd4\x9c\xd5\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xdc\x9c\xdd\x9c\xdf\x9c\xe2\x97\x7c\x97\x85\x97\x91\x97\x92\x97\x94\x97\xaf\x97\xab\x97\xa3\x97\xb2\x97\xb4\x9a\xb1\x9a\xb0\x9a\xb7\x9e\x58\x9a\xb6\x9a\xba\x9a\xbc\x9a\xc1\x9a\xc0\x9a\xc5\x9a\xc2\x9a\xcb\x9a\xcc\x9a\xd1\x9b\x45\x9b\x43\x9b\x47\x9b\x49\x9b\x48\x9b\x4d\x9b\x51\x98\xe8\x99\x0d\x99\x2e\x99\x55\x99\x54\x9a\xdf\x9a\xe1\x9a\xe6\x9a\xef\x9a\xeb\x9a\xfb\x9a\xed\x9a\xf9\x9b\x08\x9b\x0f\x9b\x13\x9b\x1f", /* 6c80 */ "\x00\x00\x9b\x23\x9e\xbd\x9e\xbe\x7e\x3b\x9e\x82\x9e\x87\x9e\x88\x9e\x8b\x9e\x92\x93\xd6\x9e\x9d\x9e\x9f\x9e\xdb\x9e\xdc\x9e\xdd\x9e\xe0\x9e\xdf\x9e\xe2\x9e\xe9\x9e\xe7\x9e\xe5\x9e\xea\x9e\xef\x9f\x22\x9f\x2c\x9f\x2f\x9f\x39\x9f\x37\x9f\x3d\x9f\x3e\x9f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x0f\x01\x0f\x02\x0f\x03\x0f\x04\x0f\x05\x0f\x06\x0f\x07\x0f\x08\x0f\x09\x0f\x0a\x0f\x0b\x0f\x0c\x0f\x0d\x0f\x0e\x0f\x0f\x0f\x10\x0f\x11\x0f\x12\x0f\x13\x0f\x14\x0f\x15\x0f\x16\x0f\x17\x0f\x18\x0f\x19\x0f\x1a\x0f\x1b\x0f\x1c\x0f\x1d\x0f\x1e\x0f\x1f\x0f\x20\x0f\x21\x0f\x22\x0f\x23\x0f\x24\x0f\x25\x0f\x26\x0f\x27\x0f\x28\x0f\x29\x0f\x2a\x0f\x2b\x0f\x2c\x0f\x2d\x0f\x2e\x0f\x2f\x0f\x30\x0f\x31\x0f\x32\x0f\x33\x0f\x34\x0f\x35\x0f\x36\x0f\x37\x0f\x38\x0f\x39\x0f\x3a\x0f\x3b\x0f\x3c\x0f\x3d\x0f\x3e", /* 6d80 */ "\x0f\x3f\x0f\x40\x0f\x41\x0f\x42\x0f\x43\x0f\x44\x0f\x45\x0f\x46\x0f\x47\x0f\x48\x0f\x49\x0f\x4a\x0f\x4b\x0f\x4c\x0f\x4d\x0f\x4e\x0f\x4f\x0f\x50\x0f\x51\x0f\x52\x0f\x53\x0f\x54\x0f\x55\x0f\x56\x0f\x57\x0f\x58\x0f\x59\x0f\x5a\x0f\x5b\x0f\x5c\x0f\x5d\x0f\x5e\x0f\x5f\x0f\x60\x0f\x61\x0f\x62\x0f\x63\x0f\x64\x0f\x65\x0f\x66\x0f\x67\x0f\x68\x0f\x69\x0f\x6a\x0f\x6b\x0f\x6c\x0f\x6d\x0f\x6e\x0f\x6f\x0f\x70\x0f\x71\x0f\x72\x0f\x73\x0f\x74\x0f\x75\x0f\x76\x0f\x77\x0f\x78\x0f\x79\x0f\x7a\x0f\x7b\x0f\x7c\x0f\x7d\x0f\x7e\x0f\x7f\x0f\x80\x0f\x81\x0f\x82\x0f\x83\x0f\x84\x0f\x85\x0f\x86\x0f\x87\x0f\x88\x0f\x89\x0f\x8a\x0f\x8b\x0f\x8c\x0f\x8d\x0f\x8e\x0f\x8f\x0f\x90\x0f\x91\x0f\x92\x0f\x93\x0f\x94\x0f\x95\x0f\x96\x0f\x97\x0f\x98\x0f\x99\x0f\x9a\x0f\x9b\x0f\x9c\x0f\x9d\x0f\x9e\x0f\x9f\x0f\xa0\x0f\xa1\x0f\xa2\x0f\xa3\x0f\xa4\x0f\xa5\x0f\xa6\x0f\xa7\x0f\xa8\x0f\xa9\x0f\xaa\x0f\xab\x0f\xac\x0f\xad\x0f\xae\x0f\xaf\x0f\xb0\x0f\xb1\x0f\xb2\x0f\xb3\x0f\xb4\x0f\xb5\x0f\xb6\x0f\xb7\x0f\xb8\x0f\xb9\x0f\xba\x0f\xbb\x0f\xbc\x0f\xbd\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\xbe\x0f\xbf\x0f\xc0\x0f\xc1\x0f\xc2\x0f\xc3\x0f\xc4\x0f\xc5\x0f\xc6\x0f\xc7\x0f\xc8\x0f\xc9\x0f\xca\x0f\xcb\x0f\xcc\x0f\xcd\x0f\xce\x0f\xcf\x0f\xd0\x0f\xd1\x0f\xd2\x0f\xd3\x0f\xd4\x0f\xd5\x0f\xd6\x0f\xd7\x0f\xd8\x0f\xd9\x0f\xda\x0f\xdb\x0f\xdc\x0f\xdd\x0f\xde\x0f\xdf\x0f\xe0\x0f\xe1\x0f\xe2\x0f\xe3\x0f\xe4\x0f\xe5\x0f\xe6\x0f\xe7\x0f\xe8\x0f\xe9\x0f\xea\x0f\xeb\x0f\xec\x0f\xed\x0f\xee\x0f\xef\x0f\xf0\x0f\xf1\x0f\xf2\x0f\xf3\x0f\xf4\x0f\xf5\x0f\xf6\x0f\xf7\x0f\xf8\x0f\xf9\x0f\xfa\x0f\xfb\x0f\xfc", /* 6e80 */ "\x0f\xfd\x0f\xfe\x0f\xff\x18\x00\x18\x01\x18\x02\x18\x03\x18\x04\x18\x05\x18\x06\x18\x07\x18\x08\x18\x09\x18\x0a\x18\x0b\x18\x0c\x18\x0d\x18\x0e\x18\x0f\x18\x10\x18\x11\x18\x12\x18\x13\x18\x14\x18\x15\x18\x16\x18\x17\x18\x18\x18\x19\x18\x1a\x18\x1b\x18\x1c\x18\x1d\x18\x1e\x18\x1f\x18\x20\x18\x21\x18\x22\x18\x23\x18\x24\x18\x25\x18\x26\x18\x27\x18\x28\x18\x29\x18\x2a\x18\x2b\x18\x2c\x18\x2d\x18\x2e\x18\x2f\x18\x30\x18\x31\x18\x32\x18\x33\x18\x34\x18\x35\x18\x36\x18\x37\x18\x38\x18\x39\x18\x3a\x18\x3b\x18\x3c\x18\x3d\x18\x3e\x18\x3f\x18\x40\x18\x41\x18\x42\x18\x43\x18\x44\x18\x45\x18\x46\x18\x47\x18\x48\x18\x49\x18\x4a\x18\x4b\x18\x4c\x18\x4d\x18\x4e\x18\x4f\x18\x50\x18\x51\x18\x52\x18\x53\x18\x54\x18\x55\x18\x56\x18\x57\x18\x58\x18\x59\x18\x5a\x18\x5b\x18\x5c\x18\x5d\x18\x5e\x18\x5f\x18\x60\x18\x61\x18\x62\x18\x63\x18\x64\x18\x65\x18\x66\x18\x67\x18\x68\x18\x69\x18\x6a\x18\x6b\x18\x6c\x18\x6d\x18\x6e\x18\x6f\x18\x70\x18\x71\x18\x72\x18\x73\x18\x74\x18\x75\x18\x76\x18\x77\x18\x78\x18\x79\x18\x7a\x18\x7b\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x7c\x18\x7d\x18\x7e\x18\x7f\x18\x80\x18\x81\x18\x82\x18\x83\x18\x84\x18\x85\x18\x86\x18\x87\x18\x88\x18\x89\x18\x8a\x18\x8b\x18\x8c\x18\x8d\x18\x8e\x18\x8f\x18\x90\x18\x91\x18\x92\x18\x93\x18\x94\x18\x95\x18\x96\x18\x97\x18\x98\x18\x99\x18\x9a\x18\x9b\x18\x9c\x18\x9d\x18\x9e\x18\x9f\x18\xa0\x18\xa1\x18\xa2\x18\xa3\x18\xa4\x18\xa5\x18\xa6\x18\xa7\x18\xa8\x18\xa9\x18\xaa\x18\xab\x18\xac\x18\xad\x18\xae\x18\xaf\xa0\x00\xa0\x01\xa0\x02\xa0\x03\xa0\x04\xa0\x05\xa0\x06\xa0\x07\xa0\x08\xa0\x09\xa0\x0a", /* 6f80 */ "\xa0\x0b\xa0\x0c\xa0\x0d\xa0\x0e\xa0\x0f\xa0\x10\xa0\x11\xa0\x12\xa0\x13\xa0\x14\xa0\x15\xa0\x16\xa0\x17\xa0\x18\xa0\x19\xa0\x1a\xa0\x1b\xa0\x1c\xa0\x1d\xa0\x1e\xa0\x1f\xa0\x20\xa0\x21\xa0\x22\xa0\x23\xa0\x24\xa0\x25\xa0\x26\xa0\x27\xa0\x28\xa0\x29\xa0\x2a\xa0\x2b\xa0\x2c\xa0\x2d\xa0\x2e\xa0\x2f\xa0\x30\xa0\x31\xa0\x32\xa0\x33\xa0\x34\xa0\x35\xa0\x36\xa0\x37\xa0\x38\xa0\x39\xa0\x3a\xa0\x3b\xa0\x3c\xa0\x3d\xa0\x3e\xa0\x3f\xa0\x40\xa0\x41\xa0\x42\xa0\x43\xa0\x44\xa0\x45\xa0\x46\xa0\x47\xa0\x48\xa0\x49\xa0\x4a\xa0\x4b\xa0\x4c\xa0\x4d\xa0\x4e\xa0\x4f\xa0\x50\xa0\x51\xa0\x52\xa0\x53\xa0\x54\xa0\x55\xa0\x56\xa0\x57\xa0\x58\xa0\x59\xa0\x5a\xa0\x5b\xa0\x5c\xa0\x5d\xa0\x5e\xa0\x5f\xa0\x60\xa0\x61\xa0\x62\xa0\x63\xa0\x64\xa0\x65\xa0\x66\xa0\x67\xa0\x68\xa0\x69\xa0\x6a\xa0\x6b\xa0\x6c\xa0\x6d\xa0\x6e\xa0\x6f\xa0\x70\xa0\x71\xa0\x72\xa0\x73\xa0\x74\xa0\x75\xa0\x76\xa0\x77\xa0\x78\xa0\x79\xa0\x7a\xa0\x7b\xa0\x7c\xa0\x7d\xa0\x7e\xa0\x7f\xa0\x80\xa0\x81\xa0\x82\xa0\x83\xa0\x84\xa0\x85\xa0\x86\xa0\x87\xa0\x88\xa0\x89\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x8a\xa0\x8b\xa0\x8c\xa0\x8d\xa0\x8e\xa0\x8f\xa0\x90\xa0\x91\xa0\x92\xa0\x93\xa0\x94\xa0\x95\xa0\x96\xa0\x97\xa0\x98\xa0\x99\xa0\x9a\xa0\x9b\xa0\x9c\xa0\x9d\xa0\x9e\xa0\x9f\xa0\xa0\xa0\xa1\xa0\xa2\xa0\xa3\xa0\xa4\xa0\xa5\xa0\xa6\xa0\xa7\xa0\xa8\xa0\xa9\xa0\xaa\xa0\xab\xa0\xac\xa0\xad\xa0\xae\xa0\xaf\xa0\xb0\xa0\xb1\xa0\xb2\xa0\xb3\xa0\xb4\xa0\xb5\xa0\xb6\xa0\xb7\xa0\xb8\xa0\xb9\xa0\xba\xa0\xbb\xa0\xbc\xa0\xbd\xa0\xbe\xa0\xbf\xa0\xc0\xa0\xc1\xa0\xc2\xa0\xc3\xa0\xc4\xa0\xc5\xa0\xc6\xa0\xc7\xa0\xc8", /* 7080 */ "\xa0\xc9\xa0\xca\xa0\xcb\xa0\xcc\xa0\xcd\xa0\xce\xa0\xcf\xa0\xd0\xa0\xd1\xa0\xd2\xa0\xd3\xa0\xd4\xa0\xd5\xa0\xd6\xa0\xd7\xa0\xd8\xa0\xd9\xa0\xda\xa0\xdb\xa0\xdc\xa0\xdd\xa0\xde\xa0\xdf\xa0\xe0\xa0\xe1\xa0\xe2\xa0\xe3\xa0\xe4\xa0\xe5\xa0\xe6\xa0\xe7\xa0\xe8\xa0\xe9\xa0\xea\xa0\xeb\xa0\xec\xa0\xed\xa0\xee\xa0\xef\xa0\xf0\xa0\xf1\xa0\xf2\xa0\xf3\xa0\xf4\xa0\xf5\xa0\xf6\xa0\xf7\xa0\xf8\xa0\xf9\xa0\xfa\xa0\xfb\xa0\xfc\xa0\xfd\xa0\xfe\xa0\xff\xa1\x00\xa1\x01\xa1\x02\xa1\x03\xa1\x04\xa1\x05\xa1\x06\xa1\x07\xa1\x08\xa1\x09\xa1\x0a\xa1\x0b\xa1\x0c\xa1\x0d\xa1\x0e\xa1\x0f\xa1\x10\xa1\x11\xa1\x12\xa1\x13\xa1\x14\xa1\x15\xa1\x16\xa1\x17\xa1\x18\xa1\x19\xa1\x1a\xa1\x1b\xa1\x1c\xa1\x1d\xa1\x1e\xa1\x1f\xa1\x20\xa1\x21\xa1\x22\xa1\x23\xa1\x24\xa1\x25\xa1\x26\xa1\x27\xa1\x28\xa1\x29\xa1\x2a\xa1\x2b\xa1\x2c\xa1\x2d\xa1\x2e\xa1\x2f\xa1\x30\xa1\x31\xa1\x32\xa1\x33\xa1\x34\xa1\x35\xa1\x36\xa1\x37\xa1\x38\xa1\x39\xa1\x3a\xa1\x3b\xa1\x3c\xa1\x3d\xa1\x3e\xa1\x3f\xa1\x40\xa1\x41\xa1\x42\xa1\x43\xa1\x44\xa1\x45\xa1\x46\xa1\x47\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x48\xa1\x49\xa1\x4a\xa1\x4b\xa1\x4c\xa1\x4d\xa1\x4e\xa1\x4f\xa1\x50\xa1\x51\xa1\x52\xa1\x53\xa1\x54\xa1\x55\xa1\x56\xa1\x57\xa1\x58\xa1\x59\xa1\x5a\xa1\x5b\xa1\x5c\xa1\x5d\xa1\x5e\xa1\x5f\xa1\x60\xa1\x61\xa1\x62\xa1\x63\xa1\x64\xa1\x65\xa1\x66\xa1\x67\xa1\x68\xa1\x69\xa1\x6a\xa1\x6b\xa1\x6c\xa1\x6d\xa1\x6e\xa1\x6f\xa1\x70\xa1\x71\xa1\x72\xa1\x73\xa1\x74\xa1\x75\xa1\x76\xa1\x77\xa1\x78\xa1\x79\xa1\x7a\xa1\x7b\xa1\x7c\xa1\x7d\xa1\x7e\xa1\x7f\xa1\x80\xa1\x81\xa1\x82\xa1\x83\xa1\x84\xa1\x85\xa1\x86", /* 7180 */ "\xa1\x87\xa1\x88\xa1\x89\xa1\x8a\xa1\x8b\xa1\x8c\xa1\x8d\xa1\x8e\xa1\x8f\xa1\x90\xa1\x91\xa1\x92\xa1\x93\xa1\x94\xa1\x95\xa1\x96\xa1\x97\xa1\x98\xa1\x99\xa1\x9a\xa1\x9b\xa1\x9c\xa1\x9d\xa1\x9e\xa1\x9f\xa1\xa0\xa1\xa1\xa1\xa2\xa1\xa3\xa1\xa4\xa1\xa5\xa1\xa6\xa1\xa7\xa1\xa8\xa1\xa9\xa1\xaa\xa1\xab\xa1\xac\xa1\xad\xa1\xae\xa1\xaf\xa1\xb0\xa1\xb1\xa1\xb2\xa1\xb3\xa1\xb4\xa1\xb5\xa1\xb6\xa1\xb7\xa1\xb8\xa1\xb9\xa1\xba\xa1\xbb\xa1\xbc\xa1\xbd\xa1\xbe\xa1\xbf\xa1\xc0\xa1\xc1\xa1\xc2\xa1\xc3\xa1\xc4\xa1\xc5\xa1\xc6\xa1\xc7\xa1\xc8\xa1\xc9\xa1\xca\xa1\xcb\xa1\xcc\xa1\xcd\xa1\xce\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xd2\xa1\xd3\xa1\xd4\xa1\xd5\xa1\xd6\xa1\xd7\xa1\xd8\xa1\xd9\xa1\xda\xa1\xdb\xa1\xdc\xa1\xdd\xa1\xde\xa1\xdf\xa1\xe0\xa1\xe1\xa1\xe2\xa1\xe3\xa1\xe4\xa1\xe5\xa1\xe6\xa1\xe7\xa1\xe8\xa1\xe9\xa1\xea\xa1\xeb\xa1\xec\xa1\xed\xa1\xee\xa1\xef\xa1\xf0\xa1\xf1\xa1\xf2\xa1\xf3\xa1\xf4\xa1\xf5\xa1\xf6\xa1\xf7\xa1\xf8\xa1\xf9\xa1\xfa\xa1\xfb\xa1\xfc\xa1\xfd\xa1\xfe\xa1\xff\xa2\x00\xa2\x01\xa2\x02\xa2\x03\xa2\x04\xa2\x05\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x06\xa2\x07\xa2\x08\xa2\x09\xa2\x0a\xa2\x0b\xa2\x0c\xa2\x0d\xa2\x0e\xa2\x0f\xa2\x10\xa2\x11\xa2\x12\xa2\x13\xa2\x14\xa2\x15\xa2\x16\xa2\x17\xa2\x18\xa2\x19\xa2\x1a\xa2\x1b\xa2\x1c\xa2\x1d\xa2\x1e\xa2\x1f\xa2\x20\xa2\x21\xa2\x22\xa2\x23\xa2\x24\xa2\x25\xa2\x26\xa2\x27\xa2\x28\xa2\x29\xa2\x2a\xa2\x2b\xa2\x2c\xa2\x2d\xa2\x2e\xa2\x2f\xa2\x30\xa2\x31\xa2\x32\xa2\x33\xa2\x34\xa2\x35\xa2\x36\xa2\x37\xa2\x38\xa2\x39\xa2\x3a\xa2\x3b\xa2\x3c\xa2\x3d\xa2\x3e\xa2\x3f\xa2\x40\xa2\x41\xa2\x42\xa2\x43\xa2\x44", /* 7280 */ "\xa2\x45\xa2\x46\xa2\x47\xa2\x48\xa2\x49\xa2\x4a\xa2\x4b\xa2\x4c\xa2\x4d\xa2\x4e\xa2\x4f\xa2\x50\xa2\x51\xa2\x52\xa2\x53\xa2\x54\xa2\x55\xa2\x56\xa2\x57\xa2\x58\xa2\x59\xa2\x5a\xa2\x5b\xa2\x5c\xa2\x5d\xa2\x5e\xa2\x5f\xa2\x60\xa2\x61\xa2\x62\xa2\x63\xa2\x64\xa2\x65\xa2\x66\xa2\x67\xa2\x68\xa2\x69\xa2\x6a\xa2\x6b\xa2\x6c\xa2\x6d\xa2\x6e\xa2\x6f\xa2\x70\xa2\x71\xa2\x72\xa2\x73\xa2\x74\xa2\x75\xa2\x76\xa2\x77\xa2\x78\xa2\x79\xa2\x7a\xa2\x7b\xa2\x7c\xa2\x7d\xa2\x7e\xa2\x7f\xa2\x80\xa2\x81\xa2\x82\xa2\x83\xa2\x84\xa2\x85\xa2\x86\xa2\x87\xa2\x88\xa2\x89\xa2\x8a\xa2\x8b\xa2\x8c\xa2\x8d\xa2\x8e\xa2\x8f\xa2\x90\xa2\x91\xa2\x92\xa2\x93\xa2\x94\xa2\x95\xa2\x96\xa2\x97\xa2\x98\xa2\x99\xa2\x9a\xa2\x9b\xa2\x9c\xa2\x9d\xa2\x9e\xa2\x9f\xa2\xa0\xa2\xa1\xa2\xa2\xa2\xa3\xa2\xa4\xa2\xa5\xa2\xa6\xa2\xa7\xa2\xa8\xa2\xa9\xa2\xaa\xa2\xab\xa2\xac\xa2\xad\xa2\xae\xa2\xaf\xa2\xb0\xa2\xb1\xa2\xb2\xa2\xb3\xa2\xb4\xa2\xb5\xa2\xb6\xa2\xb7\xa2\xb8\xa2\xb9\xa2\xba\xa2\xbb\xa2\xbc\xa2\xbd\xa2\xbe\xa2\xbf\xa2\xc0\xa2\xc1\xa2\xc2\xa2\xc3\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\xc4\xa2\xc5\xa2\xc6\xa2\xc7\xa2\xc8\xa2\xc9\xa2\xca\xa2\xcb\xa2\xcc\xa2\xcd\xa2\xce\xa2\xcf\xa2\xd0\xa2\xd1\xa2\xd2\xa2\xd3\xa2\xd4\xa2\xd5\xa2\xd6\xa2\xd7\xa2\xd8\xa2\xd9\xa2\xda\xa2\xdb\xa2\xdc\xa2\xdd\xa2\xde\xa2\xdf\xa2\xe0\xa2\xe1\xa2\xe2\xa2\xe3\xa2\xe4\xa2\xe5\xa2\xe6\xa2\xe7\xa2\xe8\xa2\xe9\xa2\xea\xa2\xeb\xa2\xec\xa2\xed\xa2\xee\xa2\xef\xa2\xf0\xa2\xf1\xa2\xf2\xa2\xf3\xa2\xf4\xa2\xf5\xa2\xf6\xa2\xf7\xa2\xf8\xa2\xf9\xa2\xfa\xa2\xfb\xa2\xfc\xa2\xfd\xa2\xfe\xa2\xff\xa3\x00\xa3\x01\xa3\x02", /* 7380 */ "\xa3\x03\xa3\x04\xa3\x05\xa3\x06\xa3\x07\xa3\x08\xa3\x09\xa3\x0a\xa3\x0b\xa3\x0c\xa3\x0d\xa3\x0e\xa3\x0f\xa3\x10\xa3\x11\xa3\x12\xa3\x13\xa3\x14\xa3\x15\xa3\x16\xa3\x17\xa3\x18\xa3\x19\xa3\x1a\xa3\x1b\xa3\x1c\xa3\x1d\xa3\x1e\xa3\x1f\xa3\x20\xa3\x21\xa3\x22\xa3\x23\xa3\x24\xa3\x25\xa3\x26\xa3\x27\xa3\x28\xa3\x29\xa3\x2a\xa3\x2b\xa3\x2c\xa3\x2d\xa3\x2e\xa3\x2f\xa3\x30\xa3\x31\xa3\x32\xa3\x33\xa3\x34\xa3\x35\xa3\x36\xa3\x37\xa3\x38\xa3\x39\xa3\x3a\xa3\x3b\xa3\x3c\xa3\x3d\xa3\x3e\xa3\x3f\xa3\x40\xa3\x41\xa3\x42\xa3\x43\xa3\x44\xa3\x45\xa3\x46\xa3\x47\xa3\x48\xa3\x49\xa3\x4a\xa3\x4b\xa3\x4c\xa3\x4d\xa3\x4e\xa3\x4f\xa3\x50\xa3\x51\xa3\x52\xa3\x53\xa3\x54\xa3\x55\xa3\x56\xa3\x57\xa3\x58\xa3\x59\xa3\x5a\xa3\x5b\xa3\x5c\xa3\x5d\xa3\x5e\xa3\x5f\xa3\x60\xa3\x61\xa3\x62\xa3\x63\xa3\x64\xa3\x65\xa3\x66\xa3\x67\xa3\x68\xa3\x69\xa3\x6a\xa3\x6b\xa3\x6c\xa3\x6d\xa3\x6e\xa3\x6f\xa3\x70\xa3\x71\xa3\x72\xa3\x73\xa3\x74\xa3\x75\xa3\x76\xa3\x77\xa3\x78\xa3\x79\xa3\x7a\xa3\x7b\xa3\x7c\xa3\x7d\xa3\x7e\xa3\x7f\xa3\x80\xa3\x81\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x82\xa3\x83\xa3\x84\xa3\x85\xa3\x86\xa3\x87\xa3\x88\xa3\x89\xa3\x8a\xa3\x8b\xa3\x8c\xa3\x8d\xa3\x8e\xa3\x8f\xa3\x90\xa3\x91\xa3\x92\xa3\x93\xa3\x94\xa3\x95\xa3\x96\xa3\x97\xa3\x98\xa3\x99\xa3\x9a\xa3\x9b\xa3\x9c\xa3\x9d\xa3\x9e\xa3\x9f\xa3\xa0\xa3\xa1\xa3\xa2\xa3\xa3\xa3\xa4\xa3\xa5\xa3\xa6\xa3\xa7\xa3\xa8\xa3\xa9\xa3\xaa\xa3\xab\xa3\xac\xa3\xad\xa3\xae\xa3\xaf\xa3\xb0\xa3\xb1\xa3\xb2\xa3\xb3\xa3\xb4\xa3\xb5\xa3\xb6\xa3\xb7\xa3\xb8\xa3\xb9\xa3\xba\xa3\xbb\xa3\xbc\xa3\xbd\xa3\xbe\xa3\xbf\xa3\xc0", /* 7480 */ "\xa3\xc1\xa3\xc2\xa3\xc3\xa3\xc4\xa3\xc5\xa3\xc6\xa3\xc7\xa3\xc8\xa3\xc9\xa3\xca\xa3\xcb\xa3\xcc\xa3\xcd\xa3\xce\xa3\xcf\xa3\xd0\xa3\xd1\xa3\xd2\xa3\xd3\xa3\xd4\xa3\xd5\xa3\xd6\xa3\xd7\xa3\xd8\xa3\xd9\xa3\xda\xa3\xdb\xa3\xdc\xa3\xdd\xa3\xde\xa3\xdf\xa3\xe0\xa3\xe1\xa3\xe2\xa3\xe3\xa3\xe4\xa3\xe5\xa3\xe6\xa3\xe7\xa3\xe8\xa3\xe9\xa3\xea\xa3\xeb\xa3\xec\xa3\xed\xa3\xee\xa3\xef\xa3\xf0\xa3\xf1\xa3\xf2\xa3\xf3\xa3\xf4\xa3\xf5\xa3\xf6\xa3\xf7\xa3\xf8\xa3\xf9\xa3\xfa\xa3\xfb\xa3\xfc\xa3\xfd\xa3\xfe\xa3\xff\xa4\x00\xa4\x01\xa4\x02\xa4\x03\xa4\x04\xa4\x05\xa4\x06\xa4\x07\xa4\x08\xa4\x09\xa4\x0a\xa4\x0b\xa4\x0c\xa4\x0d\xa4\x0e\xa4\x0f\xa4\x10\xa4\x11\xa4\x12\xa4\x13\xa4\x14\xa4\x15\xa4\x16\xa4\x17\xa4\x18\xa4\x19\xa4\x1a\xa4\x1b\xa4\x1c\xa4\x1d\xa4\x1e\xa4\x1f\xa4\x20\xa4\x21\xa4\x22\xa4\x23\xa4\x24\xa4\x25\xa4\x26\xa4\x27\xa4\x28\xa4\x29\xa4\x2a\xa4\x2b\xa4\x2c\xa4\x2d\xa4\x2e\xa4\x2f\xa4\x30\xa4\x31\xa4\x32\xa4\x33\xa4\x34\xa4\x35\xa4\x36\xa4\x37\xa4\x38\xa4\x39\xa4\x3a\xa4\x3b\xa4\x3c\xa4\x3d\xa4\x3e\xa4\x3f\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x40\xa4\x41\xa4\x42\xa4\x43\xa4\x44\xa4\x45\xa4\x46\xa4\x47\xa4\x48\xa4\x49\xa4\x4a\xa4\x4b\xa4\x4c\xa4\x4d\xa4\x4e\xa4\x4f\xa4\x50\xa4\x51\xa4\x52\xa4\x53\xa4\x54\xa4\x55\xa4\x56\xa4\x57\xa4\x58\xa4\x59\xa4\x5a\xa4\x5b\xa4\x5c\xa4\x5d\xa4\x5e\xa4\x5f\xa4\x60\xa4\x61\xa4\x62\xa4\x63\xa4\x64\xa4\x65\xa4\x66\xa4\x67\xa4\x68\xa4\x69\xa4\x6a\xa4\x6b\xa4\x6c\xa4\x6d\xa4\x6e\xa4\x6f\xa4\x70\xa4\x71\xa4\x72\xa4\x73\xa4\x74\xa4\x75\xa4\x76\xa4\x77\xa4\x78\xa4\x79\xa4\x7a\xa4\x7b\xa4\x7c\xa4\x7d\xa4\x7e", /* 7580 */ "\xa4\x7f\xa4\x80\xa4\x81\xa4\x82\xa4\x83\xa4\x84\xa4\x85\xa4\x86\xa4\x87\xa4\x88\xa4\x89\xa4\x8a\xa4\x8b\xa4\x8c\xa4\x8d\xa4\x8e\xa4\x8f\xa4\x90\xa4\x91\xa4\x92\xa4\x93\xa4\x94\xa4\x95\xa4\x96\xa4\x97\xa4\x98\xa4\x99\xa4\x9a\xa4\x9b\xa4\x9c\xa4\x9d\xa4\x9e\xa4\x9f\xa4\xa0\xa4\xa1\xa4\xa2\xa4\xa3\xa4\xa4\xa4\xa5\xa4\xa6\xa4\xa7\xa4\xa8\xa4\xa9\xa4\xaa\xa4\xab\xa4\xac\xa4\xad\xa4\xae\xa4\xaf\xa4\xb0\xa4\xb1\xa4\xb2\xa4\xb3\xa4\xb4\xa4\xb5\xa4\xb6\xa4\xb7\xa4\xb8\xa4\xb9\xa4\xba\xa4\xbb\xa4\xbc\xa4\xbd\xa4\xbe\xa4\xbf\xa4\xc0\xa4\xc1\xa4\xc2\xa4\xc3\xa4\xc4\xa4\xc5\xa4\xc6\xa4\xc7\xa4\xc8\xa4\xc9\xa4\xca\xa4\xcb\xa4\xcc\xa4\xcd\xa4\xce\xa4\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 7680 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* 7780 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* 7880 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* 7980 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* 7a80 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* 7b80 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* 7c80 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* 7d80 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* 7e80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* 7f80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* 8000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8080 */ NULL, /* 8100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x02\x4e\x04\x4e\x05\x4e\x06\x4e\x0f\x4e\x12\x4e\x17\x4e\x1f\x4e\x20\x4e\x21\x4e\x23\x4e\x26\x4e\x29\x4e\x2e\x4e\x2f\x4e\x31\x4e\x33\x4e\x35\x4e\x37\x4e\x3c\x4e\x40\x4e\x41\x4e\x42\x4e\x44\x4e\x46\x4e\x4a\x4e\x51\x4e\x55\x4e\x57\x4e\x5a\x4e\x5b\x4e\x62\x4e\x63\x4e\x64\x4e\x65\x4e\x67\x4e\x68\x4e\x6a\x4e\x6b\x4e\x6c\x4e\x6d\x4e\x6e\x4e\x6f\x4e\x72\x4e\x74\x4e\x75\x4e\x76\x4e\x77\x4e\x78\x4e\x79\x4e\x7a\x4e\x7b\x4e\x7c\x4e\x7d\x4e\x7f\x4e\x80\x4e\x81\x4e\x82\x4e\x83\x4e\x84\x4e\x85\x4e\x87\x4e\x8a", /* 8180 */ "\x00\x00\x4e\x90\x4e\x96\x4e\x97\x4e\x99\x4e\x9c\x4e\x9d\x4e\x9e\x4e\xa3\x4e\xaa\x4e\xaf\x4e\xb0\x4e\xb1\x4e\xb4\x4e\xb6\x4e\xb7\x4e\xb8\x4e\xb9\x4e\xbc\x4e\xbd\x4e\xbe\x4e\xc8\x4e\xcc\x4e\xcf\x4e\xd0\x4e\xd2\x4e\xda\x4e\xdb\x4e\xdc\x4e\xe0\x4e\xe2\x4e\xe6\x4e\xe7\x4e\xe9\x4e\xed\x4e\xee\x4e\xef\x4e\xf1\x4e\xf4\x4e\xf8\x4e\xf9\x4e\xfa\x4e\xfc\x4e\xfe\x4f\x00\x4f\x02\x4f\x03\x4f\x04\x4f\x05\x4f\x06\x4f\x07\x4f\x08\x4f\x0b\x4f\x0c\x4f\x12\x4f\x13\x4f\x14\x4f\x15\x4f\x16\x4f\x1c\x4f\x1d\x4f\x21\x4f\x23\x4f\x28\x4f\x29\x4f\x2c\x4f\x2d\x4f\x2e\x4f\x31\x4f\x33\x4f\x35\x4f\x37\x4f\x39\x4f\x3b\x4f\x3e\x4f\x3f\x4f\x40\x4f\x41\x4f\x42\x4f\x44\x4f\x45\x4f\x47\x4f\x48\x4f\x49\x4f\x4a\x4f\x4b\x4f\x4c\x4f\x52\x4f\x54\x4f\x56\x4f\x61\x4f\x62\x4f\x66\x4f\x68\x4f\x6a\x4f\x6b\x4f\x6d\x4f\x6e\x4f\x71\x4f\x72\x4f\x75\x4f\x77\x4f\x78\x4f\x79\x4f\x7a\x4f\x7d\x4f\x80\x4f\x81\x4f\x82\x4f\x85\x4f\x86\x4f\x87\x4f\x8a\x4f\x8c\x4f\x8e\x4f\x90\x4f\x92\x4f\x93\x4f\x95\x4f\x96\x4f\x98\x4f\x99\x4f\x9a\x4f\x9c\x4f\x9e\x4f\x9f\x00\x00\x00\x00", /* 8200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa1\x4f\xa2\x4f\xa4\x4f\xab\x4f\xad\x4f\xb0\x4f\xb1\x4f\xb2\x4f\xb3\x4f\xb4\x4f\xb6\x4f\xb7\x4f\xb8\x4f\xb9\x4f\xba\x4f\xbb\x4f\xbc\x4f\xbd\x4f\xbe\x4f\xc0\x4f\xc1\x4f\xc2\x4f\xc6\x4f\xc7\x4f\xc8\x4f\xc9\x4f\xcb\x4f\xcc\x4f\xcd\x4f\xd2\x4f\xd3\x4f\xd4\x4f\xd5\x4f\xd6\x4f\xd9\x4f\xdb\x4f\xe0\x4f\xe2\x4f\xe4\x4f\xe5\x4f\xe7\x4f\xeb\x4f\xec\x4f\xf0\x4f\xf2\x4f\xf4\x4f\xf5\x4f\xf6\x4f\xf7\x4f\xf9\x4f\xfb\x4f\xfc\x4f\xfd\x4f\xff\x50\x00\x50\x01\x50\x02\x50\x03\x50\x04\x50\x05\x50\x06\x50\x07\x50\x08", /* 8280 */ "\x00\x00\x50\x09\x50\x0a\x50\x0b\x50\x0e\x50\x10\x50\x11\x50\x13\x50\x15\x50\x16\x50\x17\x50\x1b\x50\x1d\x50\x1e\x50\x20\x50\x22\x50\x23\x50\x24\x50\x27\x50\x2b\x50\x2f\x50\x30\x50\x31\x50\x32\x50\x33\x50\x34\x50\x35\x50\x36\x50\x37\x50\x38\x50\x39\x50\x3b\x50\x3d\x50\x3f\x50\x40\x50\x41\x50\x42\x50\x44\x50\x45\x50\x46\x50\x49\x50\x4a\x50\x4b\x50\x4d\x50\x50\x50\x51\x50\x52\x50\x53\x50\x54\x50\x56\x50\x57\x50\x58\x50\x59\x50\x5b\x50\x5d\x50\x5e\x50\x5f\x50\x60\x50\x61\x50\x62\x50\x63\x50\x64\x50\x66\x50\x67\x50\x68\x50\x69\x50\x6a\x50\x6b\x50\x6d\x50\x6e\x50\x6f\x50\x70\x50\x71\x50\x72\x50\x73\x50\x74\x50\x75\x50\x78\x50\x79\x50\x7a\x50\x7c\x50\x7d\x50\x81\x50\x82\x50\x83\x50\x84\x50\x86\x50\x87\x50\x89\x50\x8a\x50\x8b\x50\x8c\x50\x8e\x50\x8f\x50\x90\x50\x91\x50\x92\x50\x93\x50\x94\x50\x95\x50\x96\x50\x97\x50\x98\x50\x99\x50\x9a\x50\x9b\x50\x9c\x50\x9d\x50\x9e\x50\x9f\x50\xa0\x50\xa1\x50\xa2\x50\xa4\x50\xa6\x50\xaa\x50\xab\x50\xad\x50\xae\x50\xaf\x50\xb0\x50\xb1\x50\xb3\x50\xb4\x50\xb5\x50\xb6\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb7\x50\xb8\x50\xb9\x50\xbc\x50\xbd\x50\xbe\x50\xbf\x50\xc0\x50\xc1\x50\xc2\x50\xc3\x50\xc4\x50\xc5\x50\xc6\x50\xc7\x50\xc8\x50\xc9\x50\xca\x50\xcb\x50\xcc\x50\xcd\x50\xce\x50\xd0\x50\xd1\x50\xd2\x50\xd3\x50\xd4\x50\xd5\x50\xd7\x50\xd8\x50\xd9\x50\xdb\x50\xdc\x50\xdd\x50\xde\x50\xdf\x50\xe0\x50\xe1\x50\xe2\x50\xe3\x50\xe4\x50\xe5\x50\xe8\x50\xe9\x50\xea\x50\xeb\x50\xef\x50\xf0\x50\xf1\x50\xf2\x50\xf4\x50\xf6\x50\xf7\x50\xf8\x50\xf9\x50\xfa\x50\xfc\x50\xfd\x50\xfe\x50\xff\x51\x00\x51\x01\x51\x02", /* 8380 */ "\x00\x00\x51\x03\x51\x04\x51\x05\x51\x08\x51\x09\x51\x0a\x51\x0c\x51\x0d\x51\x0e\x51\x0f\x51\x10\x51\x11\x51\x13\x51\x14\x51\x15\x51\x16\x51\x17\x51\x18\x51\x19\x51\x1a\x51\x1b\x51\x1c\x51\x1d\x51\x1e\x51\x1f\x51\x20\x51\x22\x51\x23\x51\x24\x51\x25\x51\x26\x51\x27\x51\x28\x51\x29\x51\x2a\x51\x2b\x51\x2c\x51\x2d\x51\x2e\x51\x2f\x51\x30\x51\x31\x51\x32\x51\x33\x51\x34\x51\x35\x51\x36\x51\x37\x51\x38\x51\x39\x51\x3a\x51\x3b\x51\x3c\x51\x3d\x51\x3e\x51\x42\x51\x47\x51\x4a\x51\x4c\x51\x4e\x51\x4f\x51\x50\x51\x52\x51\x53\x51\x57\x51\x58\x51\x59\x51\x5b\x51\x5d\x51\x5e\x51\x5f\x51\x60\x51\x61\x51\x63\x51\x64\x51\x66\x51\x67\x51\x69\x51\x6a\x51\x6f\x51\x72\x51\x7a\x51\x7e\x51\x7f\x51\x83\x51\x84\x51\x86\x51\x87\x51\x8a\x51\x8b\x51\x8e\x51\x8f\x51\x90\x51\x91\x51\x93\x51\x94\x51\x98\x51\x9a\x51\x9d\x51\x9e\x51\x9f\x51\xa1\x51\xa3\x51\xa6\x51\xa7\x51\xa8\x51\xa9\x51\xaa\x51\xad\x51\xae\x51\xb4\x51\xb8\x51\xb9\x51\xba\x51\xbe\x51\xbf\x51\xc1\x51\xc2\x51\xc3\x51\xc5\x51\xc8\x51\xca\x51\xcd\x51\xce\x51\xd0\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd2\x51\xd3\x51\xd4\x51\xd5\x51\xd6\x51\xd7\x51\xd8\x51\xd9\x51\xda\x51\xdc\x51\xde\x51\xdf\x51\xe2\x51\xe3\x51\xe5\x51\xe6\x51\xe7\x51\xe8\x51\xe9\x51\xea\x51\xec\x51\xee\x51\xf1\x51\xf2\x51\xf4\x51\xf7\x51\xfe\x52\x04\x52\x05\x52\x09\x52\x0b\x52\x0c\x52\x0f\x52\x10\x52\x13\x52\x14\x52\x15\x52\x1c\x52\x1e\x52\x1f\x52\x21\x52\x22\x52\x23\x52\x25\x52\x26\x52\x27\x52\x2a\x52\x2c\x52\x2f\x52\x31\x52\x32\x52\x34\x52\x35\x52\x3c\x52\x3e\x52\x44\x52\x45\x52\x46\x52\x47\x52\x48\x52\x49\x52\x4b\x52\x4e", /* 8480 */ "\x00\x00\x52\x4f\x52\x52\x52\x53\x52\x55\x52\x57\x52\x58\x52\x59\x52\x5a\x52\x5b\x52\x5d\x52\x5f\x52\x60\x52\x62\x52\x63\x52\x64\x52\x66\x52\x68\x52\x6b\x52\x6c\x52\x6d\x52\x6e\x52\x70\x52\x71\x52\x73\x52\x74\x52\x75\x52\x76\x52\x77\x52\x78\x52\x79\x52\x7a\x52\x7b\x52\x7c\x52\x7e\x52\x80\x52\x83\x52\x84\x52\x85\x52\x86\x52\x87\x52\x89\x52\x8a\x52\x8b\x52\x8c\x52\x8d\x52\x8e\x52\x8f\x52\x91\x52\x92\x52\x94\x52\x95\x52\x96\x52\x97\x52\x98\x52\x99\x52\x9a\x52\x9c\x52\xa4\x52\xa5\x52\xa6\x52\xa7\x52\xae\x52\xaf\x52\xb0\x52\xb4\x52\xb5\x52\xb6\x52\xb7\x52\xb8\x52\xb9\x52\xba\x52\xbb\x52\xbc\x52\xbd\x52\xc0\x52\xc1\x52\xc2\x52\xc4\x52\xc5\x52\xc6\x52\xc8\x52\xca\x52\xcc\x52\xcd\x52\xce\x52\xcf\x52\xd1\x52\xd3\x52\xd4\x52\xd5\x52\xd7\x52\xd9\x52\xda\x52\xdb\x52\xdc\x52\xdd\x52\xde\x52\xe0\x52\xe1\x52\xe2\x52\xe3\x52\xe5\x52\xe6\x52\xe7\x52\xe8\x52\xe9\x52\xea\x52\xeb\x52\xec\x52\xed\x52\xee\x52\xef\x52\xf1\x52\xf2\x52\xf3\x52\xf4\x52\xf5\x52\xf6\x52\xf7\x52\xf8\x52\xfb\x52\xfc\x52\xfd\x53\x01\x53\x02\x00\x00\x00\x00", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x03\x53\x04\x53\x07\x53\x09\x53\x0a\x53\x0b\x53\x0c\x53\x0e\x53\x11\x53\x12\x53\x13\x53\x14\x53\x18\x53\x1b\x53\x1c\x53\x1e\x53\x1f\x53\x22\x53\x24\x53\x25\x53\x27\x53\x28\x53\x29\x53\x2b\x53\x2c\x53\x2d\x53\x2f\x53\x30\x53\x31\x53\x32\x53\x33\x53\x34\x53\x35\x53\x36\x53\x37\x53\x38\x53\x3c\x53\x3d\x53\x40\x53\x42\x53\x44\x53\x46\x53\x4b\x53\x4c\x53\x4d\x53\x50\x53\x54\x53\x58\x53\x59\x53\x5b\x53\x5d\x53\x65\x53\x68\x53\x6a\x53\x6c\x53\x6d\x53\x72\x53\x76\x53\x79\x53\x7b\x53\x7c\x53\x7d\x53\x7e", /* 8580 */ "\x00\x00\x53\x80\x53\x81\x53\x83\x53\x87\x53\x88\x53\x8a\x53\x8e\x53\x8f\x53\x90\x53\x91\x53\x92\x53\x93\x53\x94\x53\x96\x53\x97\x53\x99\x53\x9b\x53\x9c\x53\x9e\x53\xa0\x53\xa1\x53\xa4\x53\xa7\x53\xaa\x53\xab\x53\xac\x53\xad\x53\xaf\x53\xb0\x53\xb1\x53\xb2\x53\xb3\x53\xb4\x53\xb5\x53\xb7\x53\xb8\x53\xb9\x53\xba\x53\xbc\x53\xbd\x53\xbe\x53\xc0\x53\xc3\x53\xc4\x53\xc5\x53\xc6\x53\xc7\x53\xce\x53\xcf\x53\xd0\x53\xd2\x53\xd3\x53\xd5\x53\xda\x53\xdc\x53\xdd\x53\xde\x53\xe1\x53\xe2\x53\xe7\x53\xf4\x53\xfa\x53\xfe\x53\xff\x54\x00\x54\x02\x54\x05\x54\x07\x54\x0b\x54\x14\x54\x18\x54\x19\x54\x1a\x54\x1c\x54\x22\x54\x24\x54\x25\x54\x2a\x54\x30\x54\x33\x54\x36\x54\x37\x54\x3a\x54\x3d\x54\x3f\x54\x41\x54\x42\x54\x44\x54\x45\x54\x47\x54\x49\x54\x4c\x54\x4d\x54\x4e\x54\x4f\x54\x51\x54\x5a\x54\x5d\x54\x5e\x54\x5f\x54\x60\x54\x61\x54\x63\x54\x65\x54\x67\x54\x69\x54\x6a\x54\x6b\x54\x6c\x54\x6d\x54\x6e\x54\x6f\x54\x70\x54\x74\x54\x79\x54\x7a\x54\x7e\x54\x7f\x54\x81\x54\x83\x54\x85\x54\x87\x54\x88\x54\x89\x54\x8a\x00\x00\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8d\x54\x91\x54\x93\x54\x97\x54\x98\x54\x9c\x54\x9e\x54\x9f\x54\xa0\x54\xa1\x54\xa2\x54\xa5\x54\xae\x54\xb0\x54\xb2\x54\xb5\x54\xb6\x54\xb7\x54\xb9\x54\xba\x54\xbc\x54\xbe\x54\xc3\x54\xc5\x54\xca\x54\xcb\x54\xd6\x54\xd8\x54\xdb\x54\xe0\x54\xe1\x54\xe2\x54\xe3\x54\xe4\x54\xeb\x54\xec\x54\xef\x54\xf0\x54\xf1\x54\xf4\x54\xf5\x54\xf6\x54\xf7\x54\xf8\x54\xf9\x54\xfb\x54\xfe\x55\x00\x55\x02\x55\x03\x55\x04\x55\x05\x55\x08\x55\x0a\x55\x0b\x55\x0c\x55\x0d\x55\x0e\x55\x12\x55\x13\x55\x15\x55\x16\x55\x17", /* 8680 */ "\x00\x00\x55\x18\x55\x19\x55\x1a\x55\x1c\x55\x1d\x55\x1e\x55\x1f\x55\x21\x55\x25\x55\x26\x55\x28\x55\x29\x55\x2b\x55\x2d\x55\x32\x55\x34\x55\x35\x55\x36\x55\x38\x55\x39\x55\x3a\x55\x3b\x55\x3d\x55\x40\x55\x42\x55\x45\x55\x47\x55\x48\x55\x4b\x55\x4c\x55\x4d\x55\x4e\x55\x4f\x55\x51\x55\x52\x55\x53\x55\x54\x55\x57\x55\x58\x55\x59\x55\x5a\x55\x5b\x55\x5d\x55\x5e\x55\x5f\x55\x60\x55\x62\x55\x63\x55\x68\x55\x69\x55\x6b\x55\x6f\x55\x70\x55\x71\x55\x72\x55\x73\x55\x74\x55\x79\x55\x7a\x55\x7d\x55\x7f\x55\x85\x55\x86\x55\x8c\x55\x8d\x55\x8e\x55\x90\x55\x92\x55\x93\x55\x95\x55\x96\x55\x97\x55\x9a\x55\x9b\x55\x9e\x55\xa0\x55\xa1\x55\xa2\x55\xa3\x55\xa4\x55\xa5\x55\xa6\x55\xa8\x55\xa9\x55\xaa\x55\xab\x55\xac\x55\xad\x55\xae\x55\xaf\x55\xb0\x55\xb2\x55\xb4\x55\xb6\x55\xb8\x55\xba\x55\xbc\x55\xbf\x55\xc0\x55\xc1\x55\xc2\x55\xc3\x55\xc6\x55\xc7\x55\xc8\x55\xca\x55\xcb\x55\xce\x55\xcf\x55\xd0\x55\xd5\x55\xd7\x55\xd8\x55\xd9\x55\xda\x55\xdb\x55\xde\x55\xe0\x55\xe2\x55\xe7\x55\xe9\x55\xed\x55\xee\x55\xf0\x55\xf1\x00\x00\x00\x00", /* 8700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf4\x55\xf6\x55\xf8\x55\xf9\x55\xfa\x55\xfb\x55\xfc\x55\xff\x56\x02\x56\x03\x56\x04\x56\x05\x56\x06\x56\x07\x56\x0a\x56\x0b\x56\x0d\x56\x10\x56\x11\x56\x12\x56\x13\x56\x14\x56\x15\x56\x16\x56\x17\x56\x19\x56\x1a\x56\x1c\x56\x1d\x56\x20\x56\x21\x56\x22\x56\x25\x56\x26\x56\x28\x56\x29\x56\x2a\x56\x2b\x56\x2e\x56\x2f\x56\x30\x56\x33\x56\x35\x56\x37\x56\x38\x56\x3a\x56\x3c\x56\x3d\x56\x3e\x56\x40\x56\x41\x56\x42\x56\x43\x56\x44\x56\x45\x56\x46\x56\x47\x56\x48\x56\x49\x56\x4a\x56\x4b\x56\x4f\x56\x50", /* 8780 */ "\x00\x00\x56\x51\x56\x52\x56\x53\x56\x55\x56\x56\x56\x5a\x56\x5b\x56\x5d\x56\x5e\x56\x5f\x56\x60\x56\x61\x56\x63\x56\x65\x56\x66\x56\x67\x56\x6d\x56\x6e\x56\x6f\x56\x70\x56\x72\x56\x73\x56\x74\x56\x75\x56\x77\x56\x78\x56\x79\x56\x7a\x56\x7d\x56\x7e\x56\x7f\x56\x80\x56\x81\x56\x82\x56\x83\x56\x84\x56\x87\x56\x88\x56\x89\x56\x8a\x56\x8b\x56\x8c\x56\x8d\x56\x90\x56\x91\x56\x92\x56\x94\x56\x95\x56\x96\x56\x97\x56\x98\x56\x99\x56\x9a\x56\x9b\x56\x9c\x56\x9d\x56\x9e\x56\x9f\x56\xa0\x56\xa1\x56\xa2\x56\xa4\x56\xa5\x56\xa6\x56\xa7\x56\xa8\x56\xa9\x56\xaa\x56\xab\x56\xac\x56\xad\x56\xae\x56\xb0\x56\xb1\x56\xb2\x56\xb3\x56\xb4\x56\xb5\x56\xb6\x56\xb8\x56\xb9\x56\xba\x56\xbb\x56\xbd\x56\xbe\x56\xbf\x56\xc0\x56\xc1\x56\xc2\x56\xc3\x56\xc4\x56\xc5\x56\xc6\x56\xc7\x56\xc8\x56\xc9\x56\xcb\x56\xcc\x56\xcd\x56\xce\x56\xcf\x56\xd0\x56\xd1\x56\xd2\x56\xd3\x56\xd5\x56\xd6\x56\xd8\x56\xd9\x56\xdc\x56\xe3\x56\xe5\x56\xe6\x56\xe7\x56\xe8\x56\xe9\x56\xea\x56\xec\x56\xee\x56\xef\x56\xf2\x56\xf3\x56\xf6\x56\xf7\x56\xf8\x00\x00\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xfb\x56\xfc\x57\x00\x57\x01\x57\x02\x57\x05\x57\x07\x57\x0b\x57\x0c\x57\x0d\x57\x0e\x57\x0f\x57\x10\x57\x11\x57\x12\x57\x13\x57\x14\x57\x15\x57\x16\x57\x17\x57\x18\x57\x19\x57\x1a\x57\x1b\x57\x1d\x57\x1e\x57\x20\x57\x21\x57\x22\x57\x24\x57\x25\x57\x26\x57\x27\x57\x2b\x57\x31\x57\x32\x57\x34\x57\x35\x57\x36\x57\x37\x57\x38\x57\x3c\x57\x3d\x57\x3f\x57\x41\x57\x43\x57\x44\x57\x45\x57\x46\x57\x48\x57\x49\x57\x4b\x57\x52\x57\x53\x57\x54\x57\x55\x57\x56\x57\x58\x57\x59\x57\x62\x57\x63\x57\x65\x57\x67", /* 8880 */ "\x00\x00\x57\x6c\x57\x6e\x57\x70\x57\x71\x57\x72\x57\x74\x57\x75\x57\x78\x57\x79\x57\x7a\x57\x7d\x57\x7e\x57\x7f\x57\x80\x57\x81\x57\x87\x57\x88\x57\x89\x57\x8a\x57\x8d\x57\x8e\x57\x8f\x57\x90\x57\x91\x57\x94\x57\x95\x57\x96\x57\x97\x57\x98\x57\x99\x57\x9a\x57\x9c\x57\x9d\x57\x9e\x57\x9f\x57\xa5\x57\xa8\x57\xaa\x57\xac\x57\xaf\x57\xb0\x57\xb1\x57\xb3\x57\xb5\x57\xb6\x57\xb7\x57\xb9\x57\xba\x57\xbb\x57\xbc\x57\xbd\x57\xbe\x57\xbf\x57\xc0\x57\xc1\x57\xc4\x57\xc5\x57\xc6\x57\xc7\x57\xc8\x57\xc9\x57\xca\x57\xcc\x57\xcd\x57\xd0\x57\xd1\x57\xd3\x57\xd6\x57\xd7\x57\xdb\x57\xdc\x57\xde\x57\xe1\x57\xe2\x57\xe3\x57\xe5\x57\xe6\x57\xe7\x57\xe8\x57\xe9\x57\xea\x57\xeb\x57\xec\x57\xee\x57\xf0\x57\xf1\x57\xf2\x57\xf3\x57\xf5\x57\xf6\x57\xf7\x57\xfb\x57\xfc\x57\xfe\x57\xff\x58\x01\x58\x03\x58\x04\x58\x05\x58\x08\x58\x09\x58\x0a\x58\x0c\x58\x0e\x58\x0f\x58\x10\x58\x12\x58\x13\x58\x14\x58\x16\x58\x17\x58\x18\x58\x1a\x58\x1b\x58\x1c\x58\x1d\x58\x1f\x58\x22\x58\x23\x58\x25\x58\x26\x58\x27\x58\x28\x58\x29\x58\x2b\x00\x00\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x2c\x58\x2d\x58\x2e\x58\x2f\x58\x31\x58\x32\x58\x33\x58\x34\x58\x36\x58\x37\x58\x38\x58\x39\x58\x3a\x58\x3b\x58\x3c\x58\x3d\x58\x3e\x58\x3f\x58\x40\x58\x41\x58\x42\x58\x43\x58\x45\x58\x46\x58\x47\x58\x48\x58\x49\x58\x4a\x58\x4b\x58\x4e\x58\x4f\x58\x50\x58\x52\x58\x53\x58\x55\x58\x56\x58\x57\x58\x59\x58\x5a\x58\x5b\x58\x5c\x58\x5d\x58\x5f\x58\x60\x58\x61\x58\x62\x58\x63\x58\x64\x58\x66\x58\x67\x58\x68\x58\x69\x58\x6a\x58\x6d\x58\x6e\x58\x6f\x58\x70\x58\x71\x58\x72\x58\x73\x58\x74\x58\x75\x58\x76", /* 8980 */ "\x00\x00\x58\x77\x58\x78\x58\x79\x58\x7a\x58\x7b\x58\x7c\x58\x7d\x58\x7f\x58\x82\x58\x84\x58\x86\x58\x87\x58\x88\x58\x8a\x58\x8b\x58\x8c\x58\x8d\x58\x8e\x58\x8f\x58\x90\x58\x91\x58\x94\x58\x95\x58\x96\x58\x97\x58\x98\x58\x9b\x58\x9c\x58\x9d\x58\xa0\x58\xa1\x58\xa2\x58\xa3\x58\xa4\x58\xa5\x58\xa6\x58\xa7\x58\xaa\x58\xab\x58\xac\x58\xad\x58\xae\x58\xaf\x58\xb0\x58\xb1\x58\xb2\x58\xb3\x58\xb4\x58\xb5\x58\xb6\x58\xb7\x58\xb8\x58\xb9\x58\xba\x58\xbb\x58\xbd\x58\xbe\x58\xbf\x58\xc0\x58\xc2\x58\xc3\x58\xc4\x58\xc6\x58\xc7\x58\xc8\x58\xc9\x58\xca\x58\xcb\x58\xcc\x58\xcd\x58\xce\x58\xcf\x58\xd0\x58\xd2\x58\xd3\x58\xd4\x58\xd6\x58\xd7\x58\xd8\x58\xd9\x58\xda\x58\xdb\x58\xdc\x58\xdd\x58\xde\x58\xdf\x58\xe0\x58\xe1\x58\xe2\x58\xe3\x58\xe5\x58\xe6\x58\xe7\x58\xe8\x58\xe9\x58\xea\x58\xed\x58\xef\x58\xf1\x58\xf2\x58\xf4\x58\xf5\x58\xf7\x58\xf8\x58\xfa\x58\xfb\x58\xfc\x58\xfd\x58\xfe\x58\xff\x59\x00\x59\x01\x59\x03\x59\x05\x59\x06\x59\x08\x59\x09\x59\x0a\x59\x0b\x59\x0c\x59\x0e\x59\x10\x59\x11\x59\x12\x59\x13\x00\x00\x00\x00", /* 8a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x17\x59\x18\x59\x1b\x59\x1d\x59\x1e\x59\x20\x59\x21\x59\x22\x59\x23\x59\x26\x59\x28\x59\x2c\x59\x30\x59\x32\x59\x33\x59\x35\x59\x36\x59\x3b\x59\x3d\x59\x3e\x59\x3f\x59\x40\x59\x43\x59\x45\x59\x46\x59\x4a\x59\x4c\x59\x4d\x59\x50\x59\x52\x59\x53\x59\x59\x59\x5b\x59\x5c\x59\x5d\x59\x5e\x59\x5f\x59\x61\x59\x63\x59\x64\x59\x66\x59\x67\x59\x68\x59\x69\x59\x6a\x59\x6b\x59\x6c\x59\x6d\x59\x6e\x59\x6f\x59\x70\x59\x71\x59\x72\x59\x75\x59\x77\x59\x7a\x59\x7b\x59\x7c\x59\x7e\x59\x7f\x59\x80\x59\x85\x59\x89", /* 8a80 */ "\x00\x00\x59\x8b\x59\x8c\x59\x8e\x59\x8f\x59\x90\x59\x91\x59\x94\x59\x95\x59\x98\x59\x9a\x59\x9b\x59\x9c\x59\x9d\x59\x9f\x59\xa0\x59\xa1\x59\xa2\x59\xa6\x59\xa7\x59\xac\x59\xad\x59\xb0\x59\xb1\x59\xb3\x59\xb4\x59\xb5\x59\xb6\x59\xb7\x59\xb8\x59\xba\x59\xbc\x59\xbd\x59\xbf\x59\xc0\x59\xc1\x59\xc2\x59\xc3\x59\xc4\x59\xc5\x59\xc7\x59\xc8\x59\xc9\x59\xcc\x59\xcd\x59\xce\x59\xcf\x59\xd5\x59\xd6\x59\xd9\x59\xdb\x59\xde\x59\xdf\x59\xe0\x59\xe1\x59\xe2\x59\xe4\x59\xe6\x59\xe7\x59\xe9\x59\xea\x59\xeb\x59\xed\x59\xee\x59\xef\x59\xf0\x59\xf1\x59\xf2\x59\xf3\x59\xf4\x59\xf5\x59\xf6\x59\xf7\x59\xf8\x59\xfa\x59\xfc\x59\xfd\x59\xfe\x5a\x00\x5a\x02\x5a\x0a\x5a\x0b\x5a\x0d\x5a\x0e\x5a\x0f\x5a\x10\x5a\x12\x5a\x14\x5a\x15\x5a\x16\x5a\x17\x5a\x19\x5a\x1a\x5a\x1b\x5a\x1d\x5a\x1e\x5a\x21\x5a\x22\x5a\x24\x5a\x26\x5a\x27\x5a\x28\x5a\x2a\x5a\x2b\x5a\x2c\x5a\x2d\x5a\x2e\x5a\x2f\x5a\x30\x5a\x33\x5a\x35\x5a\x37\x5a\x38\x5a\x39\x5a\x3a\x5a\x3b\x5a\x3d\x5a\x3e\x5a\x3f\x5a\x41\x5a\x42\x5a\x43\x5a\x44\x5a\x45\x5a\x47\x5a\x48\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4b\x5a\x4c\x5a\x4d\x5a\x4e\x5a\x4f\x5a\x50\x5a\x51\x5a\x52\x5a\x53\x5a\x54\x5a\x56\x5a\x57\x5a\x58\x5a\x59\x5a\x5b\x5a\x5c\x5a\x5d\x5a\x5e\x5a\x5f\x5a\x60\x5a\x61\x5a\x63\x5a\x64\x5a\x65\x5a\x66\x5a\x68\x5a\x69\x5a\x6b\x5a\x6c\x5a\x6d\x5a\x6e\x5a\x6f\x5a\x70\x5a\x71\x5a\x72\x5a\x73\x5a\x78\x5a\x79\x5a\x7b\x5a\x7c\x5a\x7d\x5a\x7e\x5a\x80\x5a\x81\x5a\x82\x5a\x83\x5a\x84\x5a\x85\x5a\x86\x5a\x87\x5a\x88\x5a\x89\x5a\x8a\x5a\x8b\x5a\x8c\x5a\x8d\x5a\x8e\x5a\x8f\x5a\x90\x5a\x91\x5a\x93\x5a\x94\x5a\x95", /* 8b80 */ "\x00\x00\x5a\x96\x5a\x97\x5a\x98\x5a\x99\x5a\x9c\x5a\x9d\x5a\x9e\x5a\x9f\x5a\xa0\x5a\xa1\x5a\xa2\x5a\xa3\x5a\xa4\x5a\xa5\x5a\xa6\x5a\xa7\x5a\xa8\x5a\xa9\x5a\xab\x5a\xac\x5a\xad\x5a\xae\x5a\xaf\x5a\xb0\x5a\xb1\x5a\xb4\x5a\xb6\x5a\xb7\x5a\xb9\x5a\xba\x5a\xbb\x5a\xbc\x5a\xbd\x5a\xbf\x5a\xc0\x5a\xc3\x5a\xc4\x5a\xc5\x5a\xc6\x5a\xc7\x5a\xc8\x5a\xca\x5a\xcb\x5a\xcd\x5a\xce\x5a\xcf\x5a\xd0\x5a\xd1\x5a\xd3\x5a\xd5\x5a\xd7\x5a\xd9\x5a\xda\x5a\xdb\x5a\xdd\x5a\xde\x5a\xdf\x5a\xe2\x5a\xe4\x5a\xe5\x5a\xe7\x5a\xe8\x5a\xea\x5a\xec\x5a\xed\x5a\xee\x5a\xef\x5a\xf0\x5a\xf2\x5a\xf3\x5a\xf4\x5a\xf5\x5a\xf6\x5a\xf7\x5a\xf8\x5a\xf9\x5a\xfa\x5a\xfb\x5a\xfc\x5a\xfd\x5a\xfe\x5a\xff\x5b\x00\x5b\x01\x5b\x02\x5b\x03\x5b\x04\x5b\x05\x5b\x06\x5b\x07\x5b\x08\x5b\x0a\x5b\x0b\x5b\x0c\x5b\x0d\x5b\x0e\x5b\x0f\x5b\x10\x5b\x11\x5b\x12\x5b\x13\x5b\x14\x5b\x15\x5b\x18\x5b\x19\x5b\x1a\x5b\x1b\x5b\x1c\x5b\x1d\x5b\x1e\x5b\x1f\x5b\x20\x5b\x21\x5b\x22\x5b\x23\x5b\x24\x5b\x25\x5b\x26\x5b\x27\x5b\x28\x5b\x29\x5b\x2a\x5b\x2b\x5b\x2c\x5b\x2d\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x2e\x5b\x2f\x5b\x30\x5b\x31\x5b\x33\x5b\x35\x5b\x36\x5b\x38\x5b\x39\x5b\x3a\x5b\x3b\x5b\x3c\x5b\x3d\x5b\x3e\x5b\x3f\x5b\x41\x5b\x42\x5b\x43\x5b\x44\x5b\x45\x5b\x46\x5b\x47\x5b\x48\x5b\x49\x5b\x4a\x5b\x4b\x5b\x4c\x5b\x4d\x5b\x4e\x5b\x4f\x5b\x52\x5b\x56\x5b\x5e\x5b\x60\x5b\x61\x5b\x67\x5b\x68\x5b\x6b\x5b\x6d\x5b\x6e\x5b\x6f\x5b\x72\x5b\x74\x5b\x76\x5b\x77\x5b\x78\x5b\x79\x5b\x7b\x5b\x7c\x5b\x7e\x5b\x7f\x5b\x82\x5b\x86\x5b\x8a\x5b\x8d\x5b\x8e\x5b\x90\x5b\x91\x5b\x92\x5b\x94\x5b\x96\x5b\x9f\x5b\xa7", /* 8c80 */ "\x00\x00\x5b\xa8\x5b\xa9\x5b\xac\x5b\xad\x5b\xae\x5b\xaf\x5b\xb1\x5b\xb2\x5b\xb7\x5b\xba\x5b\xbb\x5b\xbc\x5b\xc0\x5b\xc1\x5b\xc3\x5b\xc8\x5b\xc9\x5b\xca\x5b\xcb\x5b\xcd\x5b\xce\x5b\xcf\x5b\xd1\x5b\xd4\x5b\xd5\x5b\xd6\x5b\xd7\x5b\xd8\x5b\xd9\x5b\xda\x5b\xdb\x5b\xdc\x5b\xe0\x5b\xe2\x5b\xe3\x5b\xe6\x5b\xe7\x5b\xe9\x5b\xea\x5b\xeb\x5b\xec\x5b\xed\x5b\xef\x5b\xf1\x5b\xf2\x5b\xf3\x5b\xf4\x5b\xf5\x5b\xf6\x5b\xf7\x5b\xfd\x5b\xfe\x5c\x00\x5c\x02\x5c\x03\x5c\x05\x5c\x07\x5c\x08\x5c\x0b\x5c\x0c\x5c\x0d\x5c\x0e\x5c\x10\x5c\x12\x5c\x13\x5c\x17\x5c\x19\x5c\x1b\x5c\x1e\x5c\x1f\x5c\x20\x5c\x21\x5c\x23\x5c\x26\x5c\x28\x5c\x29\x5c\x2a\x5c\x2b\x5c\x2d\x5c\x2e\x5c\x2f\x5c\x30\x5c\x32\x5c\x33\x5c\x35\x5c\x36\x5c\x37\x5c\x43\x5c\x44\x5c\x46\x5c\x47\x5c\x4c\x5c\x4d\x5c\x52\x5c\x53\x5c\x54\x5c\x56\x5c\x57\x5c\x58\x5c\x5a\x5c\x5b\x5c\x5c\x5c\x5d\x5c\x5f\x5c\x62\x5c\x64\x5c\x67\x5c\x68\x5c\x69\x5c\x6a\x5c\x6b\x5c\x6c\x5c\x6d\x5c\x70\x5c\x72\x5c\x73\x5c\x74\x5c\x75\x5c\x76\x5c\x77\x5c\x78\x5c\x7b\x5c\x7c\x5c\x7d\x5c\x7e\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x80\x5c\x83\x5c\x84\x5c\x85\x5c\x86\x5c\x87\x5c\x89\x5c\x8a\x5c\x8b\x5c\x8e\x5c\x8f\x5c\x92\x5c\x93\x5c\x95\x5c\x9d\x5c\x9e\x5c\x9f\x5c\xa0\x5c\xa1\x5c\xa4\x5c\xa5\x5c\xa6\x5c\xa7\x5c\xa8\x5c\xaa\x5c\xae\x5c\xaf\x5c\xb0\x5c\xb2\x5c\xb4\x5c\xb6\x5c\xb9\x5c\xba\x5c\xbb\x5c\xbc\x5c\xbe\x5c\xc0\x5c\xc2\x5c\xc3\x5c\xc5\x5c\xc6\x5c\xc7\x5c\xc8\x5c\xc9\x5c\xca\x5c\xcc\x5c\xcd\x5c\xce\x5c\xcf\x5c\xd0\x5c\xd1\x5c\xd3\x5c\xd4\x5c\xd5\x5c\xd6\x5c\xd7\x5c\xd8\x5c\xda\x5c\xdb\x5c\xdc\x5c\xdd\x5c\xde\x5c\xdf", /* 8d80 */ "\x00\x00\x5c\xe0\x5c\xe2\x5c\xe3\x5c\xe7\x5c\xe9\x5c\xeb\x5c\xec\x5c\xee\x5c\xef\x5c\xf1\x5c\xf2\x5c\xf3\x5c\xf4\x5c\xf5\x5c\xf6\x5c\xf7\x5c\xf8\x5c\xf9\x5c\xfa\x5c\xfc\x5c\xfd\x5c\xfe\x5c\xff\x5d\x00\x5d\x01\x5d\x04\x5d\x05\x5d\x08\x5d\x09\x5d\x0a\x5d\x0b\x5d\x0c\x5d\x0d\x5d\x0f\x5d\x10\x5d\x11\x5d\x12\x5d\x13\x5d\x15\x5d\x17\x5d\x18\x5d\x19\x5d\x1a\x5d\x1c\x5d\x1d\x5d\x1f\x5d\x20\x5d\x21\x5d\x22\x5d\x23\x5d\x25\x5d\x28\x5d\x2a\x5d\x2b\x5d\x2c\x5d\x2f\x5d\x30\x5d\x31\x5d\x32\x5d\x33\x5d\x35\x5d\x36\x5d\x37\x5d\x38\x5d\x39\x5d\x3a\x5d\x3b\x5d\x3c\x5d\x3f\x5d\x40\x5d\x41\x5d\x42\x5d\x43\x5d\x44\x5d\x45\x5d\x46\x5d\x48\x5d\x49\x5d\x4d\x5d\x4e\x5d\x4f\x5d\x50\x5d\x51\x5d\x52\x5d\x53\x5d\x54\x5d\x55\x5d\x56\x5d\x57\x5d\x59\x5d\x5a\x5d\x5c\x5d\x5e\x5d\x5f\x5d\x60\x5d\x61\x5d\x62\x5d\x63\x5d\x64\x5d\x65\x5d\x66\x5d\x67\x5d\x68\x5d\x6a\x5d\x6d\x5d\x6e\x5d\x70\x5d\x71\x5d\x72\x5d\x73\x5d\x75\x5d\x76\x5d\x77\x5d\x78\x5d\x79\x5d\x7a\x5d\x7b\x5d\x7c\x5d\x7d\x5d\x7e\x5d\x7f\x5d\x80\x5d\x81\x5d\x83\x5d\x84\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x85\x5d\x86\x5d\x87\x5d\x88\x5d\x89\x5d\x8a\x5d\x8b\x5d\x8c\x5d\x8d\x5d\x8e\x5d\x8f\x5d\x90\x5d\x91\x5d\x92\x5d\x93\x5d\x94\x5d\x95\x5d\x96\x5d\x97\x5d\x98\x5d\x9a\x5d\x9b\x5d\x9c\x5d\x9e\x5d\x9f\x5d\xa0\x5d\xa1\x5d\xa2\x5d\xa3\x5d\xa4\x5d\xa5\x5d\xa6\x5d\xa7\x5d\xa8\x5d\xa9\x5d\xaa\x5d\xab\x5d\xac\x5d\xad\x5d\xae\x5d\xaf\x5d\xb0\x5d\xb1\x5d\xb2\x5d\xb3\x5d\xb4\x5d\xb5\x5d\xb6\x5d\xb8\x5d\xb9\x5d\xba\x5d\xbb\x5d\xbc\x5d\xbd\x5d\xbe\x5d\xbf\x5d\xc0\x5d\xc1\x5d\xc2\x5d\xc3\x5d\xc4\x5d\xc6\x5d\xc7", /* 8e80 */ "\x00\x00\x5d\xc8\x5d\xc9\x5d\xca\x5d\xcb\x5d\xcc\x5d\xce\x5d\xcf\x5d\xd0\x5d\xd1\x5d\xd2\x5d\xd3\x5d\xd4\x5d\xd5\x5d\xd6\x5d\xd7\x5d\xd8\x5d\xd9\x5d\xda\x5d\xdc\x5d\xdf\x5d\xe0\x5d\xe3\x5d\xe4\x5d\xea\x5d\xec\x5d\xed\x5d\xf0\x5d\xf5\x5d\xf6\x5d\xf8\x5d\xf9\x5d\xfa\x5d\xfb\x5d\xfc\x5d\xff\x5e\x00\x5e\x04\x5e\x07\x5e\x09\x5e\x0a\x5e\x0b\x5e\x0d\x5e\x0e\x5e\x12\x5e\x13\x5e\x17\x5e\x1e\x5e\x1f\x5e\x20\x5e\x21\x5e\x22\x5e\x23\x5e\x24\x5e\x25\x5e\x28\x5e\x29\x5e\x2a\x5e\x2b\x5e\x2c\x5e\x2f\x5e\x30\x5e\x32\x5e\x33\x5e\x34\x5e\x35\x5e\x36\x5e\x39\x5e\x3a\x5e\x3e\x5e\x3f\x5e\x40\x5e\x41\x5e\x43\x5e\x46\x5e\x47\x5e\x48\x5e\x49\x5e\x4a\x5e\x4b\x5e\x4d\x5e\x4e\x5e\x4f\x5e\x50\x5e\x51\x5e\x52\x5e\x53\x5e\x56\x5e\x57\x5e\x58\x5e\x59\x5e\x5a\x5e\x5c\x5e\x5d\x5e\x5f\x5e\x60\x5e\x63\x5e\x64\x5e\x65\x5e\x66\x5e\x67\x5e\x68\x5e\x69\x5e\x6a\x5e\x6b\x5e\x6c\x5e\x6d\x5e\x6e\x5e\x6f\x5e\x70\x5e\x71\x5e\x75\x5e\x77\x5e\x79\x5e\x7e\x5e\x81\x5e\x82\x5e\x83\x5e\x85\x5e\x88\x5e\x89\x5e\x8c\x5e\x8d\x5e\x8e\x5e\x92\x5e\x98\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9b\x5e\x9d\x5e\xa1\x5e\xa2\x5e\xa3\x5e\xa4\x5e\xa8\x5e\xa9\x5e\xaa\x5e\xab\x5e\xac\x5e\xae\x5e\xaf\x5e\xb0\x5e\xb1\x5e\xb2\x5e\xb4\x5e\xba\x5e\xbb\x5e\xbc\x5e\xbd\x5e\xbf\x5e\xc0\x5e\xc1\x5e\xc2\x5e\xc3\x5e\xc4\x5e\xc5\x5e\xc6\x5e\xc7\x5e\xc8\x5e\xcb\x5e\xcc\x5e\xcd\x5e\xce\x5e\xcf\x5e\xd0\x5e\xd4\x5e\xd5\x5e\xd7\x5e\xd8\x5e\xd9\x5e\xda\x5e\xdc\x5e\xdd\x5e\xde\x5e\xdf\x5e\xe0\x5e\xe1\x5e\xe2\x5e\xe3\x5e\xe4\x5e\xe5\x5e\xe6\x5e\xe7\x5e\xe9\x5e\xeb\x5e\xec\x5e\xed\x5e\xee\x5e\xef\x5e\xf0\x5e\xf1", /* 8f80 */ "\x00\x00\x5e\xf2\x5e\xf3\x5e\xf5\x5e\xf8\x5e\xf9\x5e\xfb\x5e\xfc\x5e\xfd\x5f\x05\x5f\x06\x5f\x07\x5f\x09\x5f\x0c\x5f\x0d\x5f\x0e\x5f\x10\x5f\x12\x5f\x14\x5f\x16\x5f\x19\x5f\x1a\x5f\x1c\x5f\x1d\x5f\x1e\x5f\x21\x5f\x22\x5f\x23\x5f\x24\x5f\x28\x5f\x2b\x5f\x2c\x5f\x2e\x5f\x30\x5f\x32\x5f\x33\x5f\x34\x5f\x35\x5f\x36\x5f\x37\x5f\x38\x5f\x3b\x5f\x3d\x5f\x3e\x5f\x3f\x5f\x41\x5f\x42\x5f\x43\x5f\x44\x5f\x45\x5f\x46\x5f\x47\x5f\x48\x5f\x49\x5f\x4a\x5f\x4b\x5f\x4c\x5f\x4d\x5f\x4e\x5f\x4f\x5f\x51\x5f\x54\x5f\x59\x5f\x5a\x5f\x5b\x5f\x5c\x5f\x5e\x5f\x5f\x5f\x60\x5f\x63\x5f\x65\x5f\x67\x5f\x68\x5f\x6b\x5f\x6e\x5f\x6f\x5f\x72\x5f\x74\x5f\x75\x5f\x76\x5f\x78\x5f\x7a\x5f\x7d\x5f\x7e\x5f\x7f\x5f\x83\x5f\x86\x5f\x8d\x5f\x8e\x5f\x8f\x5f\x91\x5f\x93\x5f\x94\x5f\x96\x5f\x9a\x5f\x9b\x5f\x9d\x5f\x9e\x5f\x9f\x5f\xa0\x5f\xa2\x5f\xa3\x5f\xa4\x5f\xa5\x5f\xa6\x5f\xa7\x5f\xa9\x5f\xab\x5f\xac\x5f\xaf\x5f\xb0\x5f\xb1\x5f\xb2\x5f\xb3\x5f\xb4\x5f\xb6\x5f\xb8\x5f\xb9\x5f\xba\x5f\xbb\x5f\xbe\x5f\xbf\x5f\xc0\x5f\xc1\x5f\xc2\x5f\xc7\x00\x00\x00\x00", /* 9000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc8\x5f\xca\x5f\xcb\x5f\xce\x5f\xd3\x5f\xd4\x5f\xd5\x5f\xda\x5f\xdb\x5f\xdc\x5f\xde\x5f\xdf\x5f\xe2\x5f\xe3\x5f\xe5\x5f\xe6\x5f\xe8\x5f\xe9\x5f\xec\x5f\xef\x5f\xf0\x5f\xf2\x5f\xf3\x5f\xf4\x5f\xf6\x5f\xf7\x5f\xf9\x5f\xfa\x5f\xfc\x60\x07\x60\x08\x60\x09\x60\x0b\x60\x0c\x60\x10\x60\x11\x60\x13\x60\x17\x60\x18\x60\x1a\x60\x1e\x60\x1f\x60\x22\x60\x23\x60\x24\x60\x2c\x60\x2d\x60\x2e\x60\x30\x60\x31\x60\x32\x60\x33\x60\x34\x60\x36\x60\x37\x60\x38\x60\x39\x60\x3a\x60\x3d\x60\x3e\x60\x40\x60\x44\x60\x45", /* 9080 */ "\x00\x00\x60\x46\x60\x47\x60\x48\x60\x49\x60\x4a\x60\x4c\x60\x4e\x60\x4f\x60\x51\x60\x53\x60\x54\x60\x56\x60\x57\x60\x58\x60\x5b\x60\x5c\x60\x5e\x60\x5f\x60\x60\x60\x61\x60\x65\x60\x66\x60\x6e\x60\x71\x60\x72\x60\x74\x60\x75\x60\x77\x60\x7e\x60\x80\x60\x81\x60\x82\x60\x85\x60\x86\x60\x87\x60\x88\x60\x8a\x60\x8b\x60\x8e\x60\x8f\x60\x90\x60\x91\x60\x93\x60\x95\x60\x97\x60\x98\x60\x99\x60\x9c\x60\x9e\x60\xa1\x60\xa2\x60\xa4\x60\xa5\x60\xa7\x60\xa9\x60\xaa\x60\xae\x60\xb0\x60\xb3\x60\xb5\x60\xb6\x60\xb7\x60\xb9\x60\xba\x60\xbd\x60\xbe\x60\xbf\x60\xc0\x60\xc1\x60\xc2\x60\xc3\x60\xc4\x60\xc7\x60\xc8\x60\xc9\x60\xcc\x60\xcd\x60\xce\x60\xcf\x60\xd0\x60\xd2\x60\xd3\x60\xd4\x60\xd6\x60\xd7\x60\xd9\x60\xdb\x60\xde\x60\xe1\x60\xe2\x60\xe3\x60\xe4\x60\xe5\x60\xea\x60\xf1\x60\xf2\x60\xf5\x60\xf7\x60\xf8\x60\xfb\x60\xfc\x60\xfd\x60\xfe\x60\xff\x61\x02\x61\x03\x61\x04\x61\x05\x61\x07\x61\x0a\x61\x0b\x61\x0c\x61\x10\x61\x11\x61\x12\x61\x13\x61\x14\x61\x16\x61\x17\x61\x18\x61\x19\x61\x1b\x61\x1c\x61\x1d\x61\x1e\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x21\x61\x22\x61\x25\x61\x28\x61\x29\x61\x2a\x61\x2c\x61\x2d\x61\x2e\x61\x2f\x61\x30\x61\x31\x61\x32\x61\x33\x61\x34\x61\x35\x61\x36\x61\x37\x61\x38\x61\x39\x61\x3a\x61\x3b\x61\x3c\x61\x3d\x61\x3e\x61\x40\x61\x41\x61\x42\x61\x43\x61\x44\x61\x45\x61\x46\x61\x47\x61\x49\x61\x4b\x61\x4d\x61\x4f\x61\x50\x61\x52\x61\x53\x61\x54\x61\x56\x61\x57\x61\x58\x61\x59\x61\x5a\x61\x5b\x61\x5c\x61\x5e\x61\x5f\x61\x60\x61\x61\x61\x63\x61\x64\x61\x65\x61\x66\x61\x69\x61\x6a\x61\x6b\x61\x6c\x61\x6d\x61\x6e\x61\x6f", /* 9180 */ "\x00\x00\x61\x71\x61\x72\x61\x73\x61\x74\x61\x76\x61\x78\x61\x79\x61\x7a\x61\x7b\x61\x7c\x61\x7d\x61\x7e\x61\x7f\x61\x80\x61\x81\x61\x82\x61\x83\x61\x84\x61\x85\x61\x86\x61\x87\x61\x88\x61\x89\x61\x8a\x61\x8c\x61\x8d\x61\x8f\x61\x90\x61\x91\x61\x92\x61\x93\x61\x95\x61\x96\x61\x97\x61\x98\x61\x99\x61\x9a\x61\x9b\x61\x9c\x61\x9e\x61\x9f\x61\xa0\x61\xa1\x61\xa2\x61\xa3\x61\xa4\x61\xa5\x61\xa6\x61\xaa\x61\xab\x61\xad\x61\xae\x61\xaf\x61\xb0\x61\xb1\x61\xb2\x61\xb3\x61\xb4\x61\xb5\x61\xb6\x61\xb8\x61\xb9\x61\xba\x61\xbb\x61\xbc\x61\xbd\x61\xbf\x61\xc0\x61\xc1\x61\xc3\x61\xc4\x61\xc5\x61\xc6\x61\xc7\x61\xc9\x61\xcc\x61\xcd\x61\xce\x61\xcf\x61\xd0\x61\xd3\x61\xd5\x61\xd6\x61\xd7\x61\xd8\x61\xd9\x61\xda\x61\xdb\x61\xdc\x61\xdd\x61\xde\x61\xdf\x61\xe0\x61\xe1\x61\xe2\x61\xe3\x61\xe4\x61\xe5\x61\xe7\x61\xe8\x61\xe9\x61\xea\x61\xeb\x61\xec\x61\xed\x61\xee\x61\xef\x61\xf0\x61\xf1\x61\xf2\x61\xf3\x61\xf4\x61\xf6\x61\xf7\x61\xf8\x61\xf9\x61\xfa\x61\xfb\x61\xfc\x61\xfd\x61\xfe\x62\x00\x62\x01\x62\x02\x62\x03\x00\x00\x00\x00", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x04\x62\x05\x62\x07\x62\x09\x62\x13\x62\x14\x62\x19\x62\x1c\x62\x1d\x62\x1e\x62\x20\x62\x23\x62\x26\x62\x27\x62\x28\x62\x29\x62\x2b\x62\x2d\x62\x2f\x62\x30\x62\x31\x62\x32\x62\x35\x62\x36\x62\x38\x62\x39\x62\x3a\x62\x3b\x62\x3c\x62\x42\x62\x44\x62\x45\x62\x46\x62\x4a\x62\x4f\x62\x50\x62\x55\x62\x56\x62\x57\x62\x59\x62\x5a\x62\x5c\x62\x5d\x62\x5e\x62\x5f\x62\x60\x62\x61\x62\x62\x62\x64\x62\x65\x62\x68\x62\x71\x62\x72\x62\x74\x62\x75\x62\x77\x62\x78\x62\x7a\x62\x7b\x62\x7d\x62\x81\x62\x82\x62\x83", /* 9280 */ "\x00\x00\x62\x85\x62\x86\x62\x87\x62\x88\x62\x8b\x62\x8c\x62\x8d\x62\x8e\x62\x8f\x62\x90\x62\x94\x62\x99\x62\x9c\x62\x9d\x62\x9e\x62\xa3\x62\xa6\x62\xa7\x62\xa9\x62\xaa\x62\xad\x62\xae\x62\xaf\x62\xb0\x62\xb2\x62\xb3\x62\xb4\x62\xb6\x62\xb7\x62\xb8\x62\xba\x62\xbe\x62\xc0\x62\xc1\x62\xc3\x62\xcb\x62\xcf\x62\xd1\x62\xd5\x62\xdd\x62\xde\x62\xe0\x62\xe1\x62\xe4\x62\xea\x62\xeb\x62\xf0\x62\xf2\x62\xf5\x62\xf8\x62\xf9\x62\xfa\x62\xfb\x63\x00\x63\x03\x63\x04\x63\x05\x63\x06\x63\x0a\x63\x0b\x63\x0c\x63\x0d\x63\x0f\x63\x10\x63\x12\x63\x13\x63\x14\x63\x15\x63\x17\x63\x18\x63\x19\x63\x1c\x63\x26\x63\x27\x63\x29\x63\x2c\x63\x2d\x63\x2e\x63\x30\x63\x31\x63\x33\x63\x34\x63\x35\x63\x36\x63\x37\x63\x38\x63\x3b\x63\x3c\x63\x3e\x63\x3f\x63\x40\x63\x41\x63\x44\x63\x47\x63\x48\x63\x4a\x63\x51\x63\x52\x63\x53\x63\x54\x63\x56\x63\x57\x63\x58\x63\x59\x63\x5a\x63\x5b\x63\x5c\x63\x5d\x63\x60\x63\x64\x63\x65\x63\x66\x63\x68\x63\x6a\x63\x6b\x63\x6c\x63\x6f\x63\x70\x63\x72\x63\x73\x63\x74\x63\x75\x63\x78\x63\x79\x63\x7c\x00\x00\x00\x00", /* 9300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7d\x63\x7e\x63\x7f\x63\x81\x63\x83\x63\x84\x63\x85\x63\x86\x63\x8b\x63\x8d\x63\x91\x63\x93\x63\x94\x63\x95\x63\x97\x63\x99\x63\x9a\x63\x9b\x63\x9c\x63\x9d\x63\x9e\x63\x9f\x63\xa1\x63\xa4\x63\xa6\x63\xab\x63\xaf\x63\xb1\x63\xb2\x63\xb5\x63\xb6\x63\xb9\x63\xbb\x63\xbd\x63\xbf\x63\xc0\x63\xc1\x63\xc2\x63\xc3\x63\xc5\x63\xc7\x63\xc8\x63\xca\x63\xcb\x63\xcc\x63\xd1\x63\xd3\x63\xd4\x63\xd5\x63\xd7\x63\xd8\x63\xd9\x63\xda\x63\xdb\x63\xdc\x63\xdd\x63\xdf\x63\xe2\x63\xe4\x63\xe5\x63\xe6\x63\xe7\x63\xe8", /* 9380 */ "\x00\x00\x63\xeb\x63\xec\x63\xee\x63\xef\x63\xf0\x63\xf1\x63\xf3\x63\xf5\x63\xf7\x63\xf9\x63\xfa\x63\xfb\x63\xfc\x63\xfe\x64\x03\x64\x04\x64\x06\x64\x07\x64\x08\x64\x09\x64\x0a\x64\x0d\x64\x0e\x64\x11\x64\x12\x64\x15\x64\x16\x64\x17\x64\x18\x64\x19\x64\x1a\x64\x1d\x64\x1f\x64\x22\x64\x23\x64\x24\x64\x25\x64\x27\x64\x28\x64\x29\x64\x2b\x64\x2e\x64\x2f\x64\x30\x64\x31\x64\x32\x64\x33\x64\x35\x64\x36\x64\x37\x64\x38\x64\x39\x64\x3b\x64\x3c\x64\x3e\x64\x40\x64\x42\x64\x43\x64\x49\x64\x4b\x64\x4c\x64\x4d\x64\x4e\x64\x4f\x64\x50\x64\x51\x64\x53\x64\x55\x64\x56\x64\x57\x64\x59\x64\x5a\x64\x5b\x64\x5c\x64\x5d\x64\x5f\x64\x60\x64\x61\x64\x62\x64\x63\x64\x64\x64\x65\x64\x66\x64\x68\x64\x6a\x64\x6b\x64\x6c\x64\x6e\x64\x6f\x64\x70\x64\x71\x64\x72\x64\x73\x64\x74\x64\x75\x64\x76\x64\x77\x64\x7b\x64\x7c\x64\x7d\x64\x7e\x64\x7f\x64\x80\x64\x81\x64\x83\x64\x86\x64\x88\x64\x89\x64\x8a\x64\x8b\x64\x8c\x64\x8d\x64\x8e\x64\x8f\x64\x90\x64\x93\x64\x94\x64\x97\x64\x98\x64\x9a\x64\x9b\x64\x9c\x64\x9d\x64\x9f\x64\xa0\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa2\x64\xa3\x64\xa5\x64\xa6\x64\xa7\x64\xa8\x64\xaa\x64\xab\x64\xaf\x64\xb1\x64\xb2\x64\xb3\x64\xb4\x64\xb6\x64\xb9\x64\xbb\x64\xbd\x64\xbe\x64\xbf\x64\xc1\x64\xc3\x64\xc4\x64\xc6\x64\xc7\x64\xc8\x64\xc9\x64\xca\x64\xcb\x64\xcc\x64\xcf\x64\xd1\x64\xd3\x64\xd4\x64\xd5\x64\xd6\x64\xd9\x64\xda\x64\xdb\x64\xdc\x64\xdd\x64\xdf\x64\xe0\x64\xe1\x64\xe3\x64\xe5\x64\xe7\x64\xe8\x64\xe9\x64\xea\x64\xeb\x64\xec\x64\xed\x64\xee\x64\xef\x64\xf0\x64\xf1\x64\xf2\x64\xf3\x64\xf4\x64\xf5\x64\xf6\x64\xf7", /* 9480 */ "\x00\x00\x64\xf8\x64\xf9\x64\xfa\x64\xfb\x64\xfc\x64\xfd\x64\xfe\x64\xff\x65\x01\x65\x02\x65\x03\x65\x04\x65\x05\x65\x06\x65\x07\x65\x08\x65\x0a\x65\x0b\x65\x0c\x65\x0d\x65\x0e\x65\x0f\x65\x10\x65\x11\x65\x13\x65\x14\x65\x15\x65\x16\x65\x17\x65\x19\x65\x1a\x65\x1b\x65\x1c\x65\x1d\x65\x1e\x65\x1f\x65\x20\x65\x21\x65\x22\x65\x23\x65\x24\x65\x26\x65\x27\x65\x28\x65\x29\x65\x2a\x65\x2c\x65\x2d\x65\x30\x65\x31\x65\x32\x65\x33\x65\x37\x65\x3a\x65\x3c\x65\x3d\x65\x40\x65\x41\x65\x42\x65\x43\x65\x44\x65\x46\x65\x47\x65\x4a\x65\x4b\x65\x4d\x65\x4e\x65\x50\x65\x52\x65\x53\x65\x54\x65\x57\x65\x58\x65\x5a\x65\x5c\x65\x5f\x65\x60\x65\x61\x65\x64\x65\x65\x65\x67\x65\x68\x65\x69\x65\x6a\x65\x6d\x65\x6e\x65\x6f\x65\x71\x65\x73\x65\x75\x65\x76\x65\x78\x65\x79\x65\x7a\x65\x7b\x65\x7c\x65\x7d\x65\x7e\x65\x7f\x65\x80\x65\x81\x65\x82\x65\x83\x65\x84\x65\x85\x65\x86\x65\x88\x65\x89\x65\x8a\x65\x8d\x65\x8e\x65\x8f\x65\x92\x65\x94\x65\x95\x65\x96\x65\x98\x65\x9a\x65\x9d\x65\x9e\x65\xa0\x65\xa2\x65\xa3\x65\xa6\x65\xa8\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xaa\x65\xac\x65\xae\x65\xb1\x65\xb2\x65\xb3\x65\xb4\x65\xb5\x65\xb6\x65\xb7\x65\xb8\x65\xba\x65\xbb\x65\xbe\x65\xbf\x65\xc0\x65\xc2\x65\xc7\x65\xc8\x65\xc9\x65\xca\x65\xcd\x65\xd0\x65\xd1\x65\xd3\x65\xd4\x65\xd5\x65\xd8\x65\xd9\x65\xda\x65\xdb\x65\xdc\x65\xdd\x65\xde\x65\xdf\x65\xe1\x65\xe3\x65\xe4\x65\xea\x65\xeb\x65\xf2\x65\xf3\x65\xf4\x65\xf5\x65\xf8\x65\xf9\x65\xfb\x65\xfc\x65\xfd\x65\xfe\x65\xff\x66\x01\x66\x04\x66\x05\x66\x07\x66\x08\x66\x09\x66\x0b\x66\x0d\x66\x10\x66\x11\x66\x12\x66\x16", /* 9580 */ "\x00\x00\x66\x17\x66\x18\x66\x1a\x66\x1b\x66\x1c\x66\x1e\x66\x21\x66\x22\x66\x23\x66\x24\x66\x26\x66\x29\x66\x2a\x66\x2b\x66\x2c\x66\x2e\x66\x30\x66\x32\x66\x33\x66\x37\x66\x38\x66\x39\x66\x3a\x66\x3b\x66\x3d\x66\x3f\x66\x40\x66\x42\x66\x44\x66\x45\x66\x46\x66\x47\x66\x48\x66\x49\x66\x4a\x66\x4d\x66\x4e\x66\x50\x66\x51\x66\x58\x66\x59\x66\x5b\x66\x5c\x66\x5d\x66\x5e\x66\x60\x66\x62\x66\x63\x66\x65\x66\x67\x66\x69\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x71\x66\x72\x66\x73\x66\x75\x66\x78\x66\x79\x66\x7b\x66\x7c\x66\x7d\x66\x7f\x66\x80\x66\x81\x66\x83\x66\x85\x66\x86\x66\x88\x66\x89\x66\x8a\x66\x8b\x66\x8d\x66\x8e\x66\x8f\x66\x90\x66\x92\x66\x93\x66\x94\x66\x95\x66\x98\x66\x99\x66\x9a\x66\x9b\x66\x9c\x66\x9e\x66\x9f\x66\xa0\x66\xa1\x66\xa2\x66\xa3\x66\xa4\x66\xa5\x66\xa6\x66\xa9\x66\xaa\x66\xab\x66\xac\x66\xad\x66\xaf\x66\xb0\x66\xb1\x66\xb2\x66\xb3\x66\xb5\x66\xb6\x66\xb7\x66\xb8\x66\xba\x66\xbb\x66\xbc\x66\xbd\x66\xbf\x66\xc0\x66\xc1\x66\xc2\x66\xc3\x66\xc4\x66\xc5\x66\xc6\x66\xc7\x66\xc8\x66\xc9\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xca\x66\xcb\x66\xcc\x66\xcd\x66\xce\x66\xcf\x66\xd0\x66\xd1\x66\xd2\x66\xd3\x66\xd4\x66\xd5\x66\xd6\x66\xd7\x66\xd8\x66\xda\x66\xde\x66\xdf\x66\xe0\x66\xe1\x66\xe2\x66\xe3\x66\xe4\x66\xe5\x66\xe7\x66\xe8\x66\xea\x66\xeb\x66\xec\x66\xed\x66\xee\x66\xef\x66\xf1\x66\xf5\x66\xf6\x66\xf8\x66\xfa\x66\xfb\x66\xfd\x67\x01\x67\x02\x67\x03\x67\x04\x67\x05\x67\x06\x67\x07\x67\x0c\x67\x0e\x67\x0f\x67\x11\x67\x12\x67\x13\x67\x16\x67\x18\x67\x19\x67\x1a\x67\x1c\x67\x1e\x67\x20\x67\x21\x67\x22\x67\x23\x67\x24", /* 9680 */ "\x00\x00\x67\x25\x67\x27\x67\x29\x67\x2e\x67\x30\x67\x32\x67\x33\x67\x36\x67\x37\x67\x38\x67\x39\x67\x3b\x67\x3c\x67\x3e\x67\x3f\x67\x41\x67\x44\x67\x45\x67\x47\x67\x4a\x67\x4b\x67\x4d\x67\x52\x67\x54\x67\x55\x67\x57\x67\x58\x67\x59\x67\x5a\x67\x5b\x67\x5d\x67\x62\x67\x63\x67\x64\x67\x66\x67\x67\x67\x6b\x67\x6c\x67\x6e\x67\x71\x67\x74\x67\x76\x67\x78\x67\x79\x67\x7a\x67\x7b\x67\x7d\x67\x80\x67\x82\x67\x83\x67\x85\x67\x86\x67\x88\x67\x8a\x67\x8c\x67\x8d\x67\x8e\x67\x8f\x67\x91\x67\x92\x67\x93\x67\x94\x67\x96\x67\x99\x67\x9b\x67\x9f\x67\xa0\x67\xa1\x67\xa4\x67\xa6\x67\xa9\x67\xac\x67\xae\x67\xb1\x67\xb2\x67\xb4\x67\xb9\x67\xba\x67\xbb\x67\xbc\x67\xbd\x67\xbe\x67\xbf\x67\xc0\x67\xc2\x67\xc5\x67\xc6\x67\xc7\x67\xc8\x67\xc9\x67\xca\x67\xcb\x67\xcc\x67\xcd\x67\xce\x67\xd5\x67\xd6\x67\xd7\x67\xdb\x67\xdf\x67\xe1\x67\xe3\x67\xe4\x67\xe6\x67\xe7\x67\xe8\x67\xea\x67\xeb\x67\xed\x67\xee\x67\xf2\x67\xf5\x67\xf6\x67\xf7\x67\xf8\x67\xf9\x67\xfa\x67\xfb\x67\xfc\x67\xfe\x68\x01\x68\x02\x68\x03\x68\x04\x68\x06\x00\x00\x00\x00", /* 9700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x0d\x68\x10\x68\x12\x68\x14\x68\x15\x68\x18\x68\x19\x68\x1a\x68\x1b\x68\x1c\x68\x1e\x68\x1f\x68\x20\x68\x22\x68\x23\x68\x24\x68\x25\x68\x26\x68\x27\x68\x28\x68\x2b\x68\x2c\x68\x2d\x68\x2e\x68\x2f\x68\x30\x68\x31\x68\x34\x68\x35\x68\x36\x68\x3a\x68\x3b\x68\x3f\x68\x47\x68\x4b\x68\x4d\x68\x4f\x68\x52\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x68\x5b\x68\x5c\x68\x5d\x68\x5e\x68\x5f\x68\x6a\x68\x6c\x68\x6d\x68\x6e\x68\x6f\x68\x70\x68\x71\x68\x72\x68\x73\x68\x75\x68\x78\x68\x79\x68\x7a\x68\x7b\x68\x7c", /* 9780 */ "\x00\x00\x68\x7d\x68\x7e\x68\x7f\x68\x80\x68\x82\x68\x84\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x68\x8e\x68\x90\x68\x91\x68\x92\x68\x94\x68\x95\x68\x96\x68\x98\x68\x99\x68\x9a\x68\x9b\x68\x9c\x68\x9d\x68\x9e\x68\x9f\x68\xa0\x68\xa1\x68\xa3\x68\xa4\x68\xa5\x68\xa9\x68\xaa\x68\xab\x68\xac\x68\xae\x68\xb1\x68\xb2\x68\xb4\x68\xb6\x68\xb7\x68\xb8\x68\xb9\x68\xba\x68\xbb\x68\xbc\x68\xbd\x68\xbe\x68\xbf\x68\xc1\x68\xc3\x68\xc4\x68\xc5\x68\xc6\x68\xc7\x68\xc8\x68\xca\x68\xcc\x68\xce\x68\xcf\x68\xd0\x68\xd1\x68\xd3\x68\xd4\x68\xd6\x68\xd7\x68\xd9\x68\xdb\x68\xdc\x68\xdd\x68\xde\x68\xdf\x68\xe1\x68\xe2\x68\xe4\x68\xe5\x68\xe6\x68\xe7\x68\xe8\x68\xe9\x68\xea\x68\xeb\x68\xec\x68\xed\x68\xef\x68\xf2\x68\xf3\x68\xf4\x68\xf6\x68\xf7\x68\xf8\x68\xfb\x68\xfd\x68\xfe\x68\xff\x69\x00\x69\x02\x69\x03\x69\x04\x69\x06\x69\x07\x69\x08\x69\x09\x69\x0a\x69\x0c\x69\x0f\x69\x11\x69\x13\x69\x14\x69\x15\x69\x16\x69\x17\x69\x18\x69\x19\x69\x1a\x69\x1b\x69\x1c\x69\x1d\x69\x1e\x69\x21\x69\x22\x69\x23\x69\x25\x00\x00\x00\x00", /* 9800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x26\x69\x27\x69\x28\x69\x29\x69\x2a\x69\x2b\x69\x2c\x69\x2e\x69\x2f\x69\x31\x69\x32\x69\x33\x69\x35\x69\x36\x69\x37\x69\x38\x69\x3a\x69\x3b\x69\x3c\x69\x3e\x69\x40\x69\x41\x69\x43\x69\x44\x69\x45\x69\x46\x69\x47\x69\x48\x69\x49\x69\x4a\x69\x4b\x69\x4c\x69\x4d\x69\x4e\x69\x4f\x69\x50\x69\x51\x69\x52\x69\x53\x69\x55\x69\x56\x69\x58\x69\x59\x69\x5b\x69\x5c\x69\x5f\x69\x61\x69\x62\x69\x64\x69\x65\x69\x67\x69\x68\x69\x69\x69\x6a\x69\x6c\x69\x6d\x69\x6f\x69\x70\x69\x72\x69\x73\x69\x74\x69\x75\x69\x76", /* 9880 */ "\x00\x00\x69\x7a\x69\x7b\x69\x7d\x69\x7e\x69\x7f\x69\x81\x69\x83\x69\x85\x69\x8a\x69\x8b\x69\x8c\x69\x8e\x69\x8f\x69\x90\x69\x91\x69\x92\x69\x93\x69\x96\x69\x97\x69\x99\x69\x9a\x69\x9d\x69\x9e\x69\x9f\x69\xa0\x69\xa1\x69\xa2\x69\xa3\x69\xa4\x69\xa5\x69\xa6\x69\xa9\x69\xaa\x69\xac\x69\xae\x69\xaf\x69\xb0\x69\xb2\x69\xb3\x69\xb5\x69\xb6\x69\xb8\x69\xb9\x69\xba\x69\xbc\x69\xbd\x69\xbe\x69\xbf\x69\xc0\x69\xc2\x69\xc3\x69\xc4\x69\xc5\x69\xc6\x69\xc7\x69\xc8\x69\xc9\x69\xcb\x69\xcd\x69\xcf\x69\xd1\x69\xd2\x69\xd3\x69\xd5\x69\xd6\x69\xd7\x69\xd8\x69\xd9\x69\xda\x69\xdc\x69\xdd\x69\xde\x69\xe1\x69\xe2\x69\xe3\x69\xe4\x69\xe5\x69\xe6\x69\xe7\x69\xe8\x69\xe9\x69\xea\x69\xeb\x69\xec\x69\xee\x69\xef\x69\xf0\x69\xf1\x69\xf3\x69\xf4\x69\xf5\x69\xf6\x69\xf7\x69\xf8\x69\xf9\x69\xfa\x69\xfb\x69\xfc\x69\xfe\x6a\x00\x6a\x01\x6a\x02\x6a\x03\x6a\x04\x6a\x05\x6a\x06\x6a\x07\x6a\x08\x6a\x09\x6a\x0b\x6a\x0c\x6a\x0d\x6a\x0e\x6a\x0f\x6a\x10\x6a\x11\x6a\x12\x6a\x13\x6a\x14\x6a\x15\x6a\x16\x6a\x19\x6a\x1a\x6a\x1b\x6a\x1c\x00\x00\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1d\x6a\x1e\x6a\x20\x6a\x22\x6a\x23\x6a\x24\x6a\x25\x6a\x26\x6a\x27\x6a\x29\x6a\x2b\x6a\x2c\x6a\x2d\x6a\x2e\x6a\x30\x6a\x32\x6a\x33\x6a\x34\x6a\x36\x6a\x37\x6a\x38\x6a\x39\x6a\x3a\x6a\x3b\x6a\x3c\x6a\x3f\x6a\x40\x6a\x41\x6a\x42\x6a\x43\x6a\x45\x6a\x46\x6a\x48\x6a\x49\x6a\x4a\x6a\x4b\x6a\x4c\x6a\x4d\x6a\x4e\x6a\x4f\x6a\x51\x6a\x52\x6a\x53\x6a\x54\x6a\x55\x6a\x56\x6a\x57\x6a\x5a\x6a\x5c\x6a\x5d\x6a\x5e\x6a\x5f\x6a\x60\x6a\x62\x6a\x63\x6a\x64\x6a\x66\x6a\x67\x6a\x68\x6a\x69\x6a\x6a\x6a\x6b\x6a\x6c", /* 9980 */ "\x00\x00\x6a\x6d\x6a\x6e\x6a\x6f\x6a\x70\x6a\x72\x6a\x73\x6a\x74\x6a\x75\x6a\x76\x6a\x77\x6a\x78\x6a\x7a\x6a\x7b\x6a\x7d\x6a\x7e\x6a\x7f\x6a\x81\x6a\x82\x6a\x83\x6a\x85\x6a\x86\x6a\x87\x6a\x88\x6a\x89\x6a\x8a\x6a\x8b\x6a\x8c\x6a\x8d\x6a\x8f\x6a\x92\x6a\x93\x6a\x94\x6a\x95\x6a\x96\x6a\x98\x6a\x99\x6a\x9a\x6a\x9b\x6a\x9c\x6a\x9d\x6a\x9e\x6a\x9f\x6a\xa1\x6a\xa2\x6a\xa3\x6a\xa4\x6a\xa5\x6a\xa6\x6a\xa7\x6a\xa8\x6a\xaa\x6a\xad\x6a\xae\x6a\xaf\x6a\xb0\x6a\xb1\x6a\xb2\x6a\xb3\x6a\xb4\x6a\xb5\x6a\xb6\x6a\xb7\x6a\xb8\x6a\xb9\x6a\xba\x6a\xbb\x6a\xbc\x6a\xbd\x6a\xbe\x6a\xbf\x6a\xc0\x6a\xc1\x6a\xc2\x6a\xc3\x6a\xc4\x6a\xc5\x6a\xc6\x6a\xc7\x6a\xc8\x6a\xc9\x6a\xca\x6a\xcb\x6a\xcc\x6a\xcd\x6a\xce\x6a\xcf\x6a\xd0\x6a\xd1\x6a\xd2\x6a\xd3\x6a\xd4\x6a\xd5\x6a\xd6\x6a\xd7\x6a\xd8\x6a\xd9\x6a\xda\x6a\xdb\x6a\xdc\x6a\xdd\x6a\xde\x6a\xdf\x6a\xe0\x6a\xe1\x6a\xe2\x6a\xe3\x6a\xe4\x6a\xe5\x6a\xe6\x6a\xe7\x6a\xe8\x6a\xe9\x6a\xea\x6a\xeb\x6a\xec\x6a\xed\x6a\xee\x6a\xef\x6a\xf0\x6a\xf1\x6a\xf2\x6a\xf3\x6a\xf4\x6a\xf5\x6a\xf6\x00\x00\x00\x00", /* 9a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf7\x6a\xf8\x6a\xf9\x6a\xfa\x6a\xfb\x6a\xfc\x6a\xfd\x6a\xfe\x6a\xff\x6b\x00\x6b\x01\x6b\x02\x6b\x03\x6b\x04\x6b\x05\x6b\x06\x6b\x07\x6b\x08\x6b\x09\x6b\x0a\x6b\x0b\x6b\x0c\x6b\x0d\x6b\x0e\x6b\x0f\x6b\x10\x6b\x11\x6b\x12\x6b\x13\x6b\x14\x6b\x15\x6b\x16\x6b\x17\x6b\x18\x6b\x19\x6b\x1a\x6b\x1b\x6b\x1c\x6b\x1d\x6b\x1e\x6b\x1f\x6b\x25\x6b\x26\x6b\x28\x6b\x29\x6b\x2a\x6b\x2b\x6b\x2c\x6b\x2d\x6b\x2e\x6b\x2f\x6b\x30\x6b\x31\x6b\x33\x6b\x34\x6b\x35\x6b\x36\x6b\x38\x6b\x3b\x6b\x3c\x6b\x3d\x6b\x3f\x6b\x40", /* 9a80 */ "\x00\x00\x6b\x41\x6b\x42\x6b\x44\x6b\x45\x6b\x48\x6b\x4a\x6b\x4b\x6b\x4d\x6b\x4e\x6b\x4f\x6b\x50\x6b\x51\x6b\x52\x6b\x53\x6b\x54\x6b\x55\x6b\x56\x6b\x57\x6b\x58\x6b\x5a\x6b\x5b\x6b\x5c\x6b\x5d\x6b\x5e\x6b\x5f\x6b\x60\x6b\x61\x6b\x68\x6b\x69\x6b\x6b\x6b\x6c\x6b\x6d\x6b\x6e\x6b\x6f\x6b\x70\x6b\x71\x6b\x72\x6b\x73\x6b\x74\x6b\x75\x6b\x76\x6b\x77\x6b\x78\x6b\x7a\x6b\x7d\x6b\x7e\x6b\x7f\x6b\x80\x6b\x85\x6b\x88\x6b\x8c\x6b\x8e\x6b\x8f\x6b\x90\x6b\x91\x6b\x94\x6b\x95\x6b\x97\x6b\x98\x6b\x99\x6b\x9c\x6b\x9d\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xa2\x6b\xa3\x6b\xa4\x6b\xa5\x6b\xa6\x6b\xa7\x6b\xa8\x6b\xa9\x6b\xab\x6b\xac\x6b\xad\x6b\xae\x6b\xaf\x6b\xb0\x6b\xb1\x6b\xb2\x6b\xb6\x6b\xb8\x6b\xb9\x6b\xba\x6b\xbb\x6b\xbc\x6b\xbd\x6b\xbe\x6b\xc0\x6b\xc3\x6b\xc4\x6b\xc6\x6b\xc7\x6b\xc8\x6b\xc9\x6b\xca\x6b\xcc\x6b\xce\x6b\xd0\x6b\xd1\x6b\xd8\x6b\xda\x6b\xdc\x6b\xdd\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe2\x6b\xe3\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x6b\xe9\x6b\xec\x6b\xed\x6b\xee\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf4\x6b\xf6\x6b\xf7\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xf8\x6b\xfa\x6b\xfb\x6b\xfc\x6b\xfe\x6b\xff\x6c\x00\x6c\x01\x6c\x02\x6c\x03\x6c\x04\x6c\x08\x6c\x09\x6c\x0a\x6c\x0b\x6c\x0c\x6c\x0e\x6c\x12\x6c\x17\x6c\x1c\x6c\x1d\x6c\x1e\x6c\x20\x6c\x23\x6c\x25\x6c\x2b\x6c\x2c\x6c\x2d\x6c\x31\x6c\x33\x6c\x36\x6c\x37\x6c\x39\x6c\x3a\x6c\x3b\x6c\x3c\x6c\x3e\x6c\x3f\x6c\x43\x6c\x44\x6c\x45\x6c\x48\x6c\x4b\x6c\x4c\x6c\x4d\x6c\x4e\x6c\x4f\x6c\x51\x6c\x52\x6c\x53\x6c\x56\x6c\x58\x6c\x59\x6c\x5a\x6c\x62\x6c\x63\x6c\x65\x6c\x66\x6c\x67\x6c\x6b\x6c\x6c\x6c\x6d\x6c\x6e", /* 9b80 */ "\x00\x00\x6c\x6f\x6c\x71\x6c\x73\x6c\x75\x6c\x77\x6c\x78\x6c\x7a\x6c\x7b\x6c\x7c\x6c\x7f\x6c\x80\x6c\x84\x6c\x87\x6c\x8a\x6c\x8b\x6c\x8d\x6c\x8e\x6c\x91\x6c\x92\x6c\x95\x6c\x96\x6c\x97\x6c\x98\x6c\x9a\x6c\x9c\x6c\x9d\x6c\x9e\x6c\xa0\x6c\xa2\x6c\xa8\x6c\xac\x6c\xaf\x6c\xb0\x6c\xb4\x6c\xb5\x6c\xb6\x6c\xb7\x6c\xba\x6c\xc0\x6c\xc1\x6c\xc2\x6c\xc3\x6c\xc6\x6c\xc7\x6c\xc8\x6c\xcb\x6c\xcd\x6c\xce\x6c\xcf\x6c\xd1\x6c\xd2\x6c\xd8\x6c\xd9\x6c\xda\x6c\xdc\x6c\xdd\x6c\xdf\x6c\xe4\x6c\xe6\x6c\xe7\x6c\xe9\x6c\xec\x6c\xed\x6c\xf2\x6c\xf4\x6c\xf9\x6c\xff\x6d\x00\x6d\x02\x6d\x03\x6d\x05\x6d\x06\x6d\x08\x6d\x09\x6d\x0a\x6d\x0d\x6d\x0f\x6d\x10\x6d\x11\x6d\x13\x6d\x14\x6d\x15\x6d\x16\x6d\x18\x6d\x1c\x6d\x1d\x6d\x1f\x6d\x20\x6d\x21\x6d\x22\x6d\x23\x6d\x24\x6d\x26\x6d\x28\x6d\x29\x6d\x2c\x6d\x2d\x6d\x2f\x6d\x30\x6d\x34\x6d\x36\x6d\x37\x6d\x38\x6d\x3a\x6d\x3f\x6d\x40\x6d\x42\x6d\x44\x6d\x49\x6d\x4c\x6d\x50\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x5b\x6d\x5d\x6d\x5f\x6d\x61\x6d\x62\x6d\x64\x6d\x65\x6d\x67\x6d\x68\x6d\x6b\x00\x00\x00\x00", /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x6c\x6d\x6d\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x75\x6d\x76\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x83\x6d\x84\x6d\x86\x6d\x87\x6d\x8a\x6d\x8b\x6d\x8d\x6d\x8f\x6d\x90\x6d\x92\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9c\x6d\xa2\x6d\xa5\x6d\xac\x6d\xad\x6d\xb0\x6d\xb1\x6d\xb3\x6d\xb4\x6d\xb6\x6d\xb7\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc8\x6d\xc9\x6d\xca\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd7", /* 9c80 */ "\x00\x00\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdf\x6d\xe2\x6d\xe3\x6d\xe5\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xed\x6d\xef\x6d\xf0\x6d\xf2\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf8\x6d\xfa\x6d\xfd\x6d\xfe\x6d\xff\x6e\x00\x6e\x01\x6e\x02\x6e\x03\x6e\x04\x6e\x06\x6e\x07\x6e\x08\x6e\x09\x6e\x0b\x6e\x0f\x6e\x12\x6e\x13\x6e\x15\x6e\x18\x6e\x19\x6e\x1b\x6e\x1c\x6e\x1e\x6e\x1f\x6e\x22\x6e\x26\x6e\x27\x6e\x28\x6e\x2a\x6e\x2c\x6e\x2e\x6e\x30\x6e\x31\x6e\x33\x6e\x35\x6e\x36\x6e\x37\x6e\x39\x6e\x3b\x6e\x3c\x6e\x3d\x6e\x3e\x6e\x3f\x6e\x40\x6e\x41\x6e\x42\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x55\x6e\x57\x6e\x59\x6e\x5a\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6c\x6e\x6d\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x80\x6e\x81\x6e\x82\x6e\x84\x6e\x87\x6e\x88\x6e\x8a\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x91\x6e\x92\x00\x00\x00\x00", /* 9d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9d\x6e\x9e\x6e\xa0\x6e\xa1\x6e\xa3\x6e\xa4\x6e\xa6\x6e\xa8\x6e\xa9\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xb0\x6e\xb3\x6e\xb5\x6e\xb8\x6e\xb9\x6e\xbc\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcc\x6e\xcd\x6e\xce\x6e\xd0\x6e\xd2\x6e\xd6\x6e\xd8\x6e\xd9\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xe3\x6e\xe7\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf5\x6e\xf6\x6e\xf7", /* 9d80 */ "\x00\x00\x6e\xf8\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6e\xff\x6f\x00\x6f\x01\x6f\x03\x6f\x04\x6f\x05\x6f\x07\x6f\x08\x6f\x0a\x6f\x0b\x6f\x0c\x6f\x0d\x6f\x0e\x6f\x10\x6f\x11\x6f\x12\x6f\x16\x6f\x17\x6f\x18\x6f\x19\x6f\x1a\x6f\x1b\x6f\x1c\x6f\x1d\x6f\x1e\x6f\x1f\x6f\x21\x6f\x22\x6f\x23\x6f\x25\x6f\x26\x6f\x27\x6f\x28\x6f\x2c\x6f\x2e\x6f\x30\x6f\x32\x6f\x34\x6f\x35\x6f\x37\x6f\x38\x6f\x39\x6f\x3a\x6f\x3b\x6f\x3c\x6f\x3d\x6f\x3f\x6f\x40\x6f\x41\x6f\x42\x6f\x43\x6f\x44\x6f\x45\x6f\x48\x6f\x49\x6f\x4a\x6f\x4c\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5d\x6f\x5f\x6f\x60\x6f\x61\x6f\x63\x6f\x64\x6f\x65\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6f\x6f\x70\x6f\x71\x6f\x73\x6f\x75\x6f\x76\x6f\x77\x6f\x79\x6f\x7b\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x85\x6f\x86\x6f\x87\x6f\x8a\x6f\x8b\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9d\x6f\x9e\x00\x00\x00\x00", /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x9f\x6f\xa0\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb4\x6f\xb5\x6f\xb7\x6f\xb8\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc1\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xca\x6f\xcb\x6f\xcc\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xdf\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea", /* 9e80 */ "\x00\x00\x6f\xeb\x6f\xec\x6f\xed\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x6f\xff\x70\x00\x70\x01\x70\x02\x70\x03\x70\x04\x70\x05\x70\x06\x70\x07\x70\x08\x70\x09\x70\x0a\x70\x0b\x70\x0c\x70\x0d\x70\x0e\x70\x0f\x70\x10\x70\x12\x70\x13\x70\x14\x70\x15\x70\x16\x70\x17\x70\x18\x70\x19\x70\x1c\x70\x1d\x70\x1e\x70\x1f\x70\x20\x70\x21\x70\x22\x70\x24\x70\x25\x70\x26\x70\x27\x70\x28\x70\x29\x70\x2a\x70\x2b\x70\x2c\x70\x2d\x70\x2e\x70\x2f\x70\x30\x70\x31\x70\x32\x70\x33\x70\x34\x70\x36\x70\x37\x70\x38\x70\x3a\x70\x3b\x70\x3c\x70\x3d\x70\x3e\x70\x3f\x70\x40\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4d\x70\x4e\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6e\x70\x71\x70\x72\x70\x73\x70\x74\x70\x77\x70\x79\x70\x7a\x00\x00\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x7b\x70\x7d\x70\x81\x70\x82\x70\x83\x70\x84\x70\x86\x70\x87\x70\x88\x70\x8b\x70\x8c\x70\x8d\x70\x8f\x70\x90\x70\x91\x70\x93\x70\x97\x70\x98\x70\x9a\x70\x9b\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xb0\x70\xb2\x70\xb4\x70\xb5\x70\xb6\x70\xba\x70\xbe\x70\xbf\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc9\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xda\x70\xdc\x70\xdd\x70\xde", /* 9f80 */ "\x00\x00\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe5\x70\xea\x70\xee\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf8\x70\xfa\x70\xfb\x70\xfc\x70\xfe\x70\xff\x71\x00\x71\x01\x71\x02\x71\x03\x71\x04\x71\x05\x71\x06\x71\x07\x71\x08\x71\x0b\x71\x0c\x71\x0d\x71\x0e\x71\x0f\x71\x11\x71\x12\x71\x14\x71\x17\x71\x1b\x71\x1c\x71\x1d\x71\x1e\x71\x1f\x71\x20\x71\x21\x71\x22\x71\x23\x71\x24\x71\x25\x71\x27\x71\x28\x71\x29\x71\x2a\x71\x2b\x71\x2c\x71\x2d\x71\x2e\x71\x32\x71\x33\x71\x34\x71\x35\x71\x37\x71\x38\x71\x39\x71\x3a\x71\x3b\x71\x3c\x71\x3d\x71\x3e\x71\x3f\x71\x40\x71\x41\x71\x42\x71\x43\x71\x44\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4b\x71\x4d\x71\x4f\x71\x50\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5d\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x65\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6f\x71\x70\x71\x71\x71\x74\x71\x75\x71\x76\x71\x77\x71\x79\x71\x7b\x71\x7c\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x85\x71\x86\x71\x87\x00\x00\x00\x00", /* a000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x88\x71\x89\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x90\x71\x91\x71\x92\x71\x93\x71\x95\x71\x96\x71\x97\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa9\x71\xaa\x71\xab\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb4\x71\xb6\x71\xb7\x71\xb8\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xcf\x71\xd0\x71\xd1\x71\xd2\x71\xd3\x71\xd6", /* a080 */ "\x00\x00\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe6\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x71\xff\x72\x00\x72\x01\x72\x02\x72\x03\x72\x04\x72\x05\x72\x07\x72\x08\x72\x09\x72\x0a\x72\x0b\x72\x0c\x72\x0d\x72\x0e\x72\x0f\x72\x10\x72\x11\x72\x12\x72\x13\x72\x14\x72\x15\x72\x16\x72\x17\x72\x18\x72\x19\x72\x1a\x72\x1b\x72\x1c\x72\x1e\x72\x1f\x72\x20\x72\x21\x72\x22\x72\x23\x72\x24\x72\x25\x72\x26\x72\x27\x72\x29\x72\x2b\x72\x2d\x72\x2e\x72\x2f\x72\x32\x72\x33\x72\x34\x72\x3a\x72\x3c\x72\x3e\x72\x40\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x49\x72\x4a\x72\x4b\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x53\x72\x54\x72\x55\x72\x57\x72\x58\x72\x5a\x72\x5c\x72\x5e\x72\x60\x72\x63\x72\x64\x72\x65\x72\x68\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x70\x72\x71\x72\x73\x72\x74\x72\x76\x72\x77\x72\x78\x72\x7b\x72\x7c\x00\x00\x00\x00", /* a100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x7d\x72\x82\x72\x83\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8c\x72\x8e\x72\x90\x72\x91\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xae\x72\xb1\x72\xb2\x72\xb3\x72\xb5\x72\xba\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc5\x72\xc6\x72\xc7\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcf\x72\xd1\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd8\x72\xda", /* a180 */ "\x00\x00\x72\xdb\x72\xdc\x72\xdd\x72\xdf\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xea\x72\xeb\x72\xf5\x72\xf6\x72\xf9\x72\xfd\x72\xfe\x72\xff\x73\x00\x73\x02\x73\x04\x73\x05\x73\x06\x73\x07\x73\x08\x73\x09\x73\x0b\x73\x0c\x73\x0d\x73\x0f\x73\x10\x73\x11\x73\x12\x73\x14\x73\x18\x73\x19\x73\x1a\x73\x1f\x73\x20\x73\x23\x73\x24\x73\x26\x73\x27\x73\x28\x73\x2d\x73\x2f\x73\x30\x73\x32\x73\x33\x73\x35\x73\x36\x73\x3a\x73\x3b\x73\x3c\x73\x3d\x73\x40\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4e\x73\x4f\x73\x51\x73\x53\x73\x54\x73\x55\x73\x56\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6e\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c\x73\x7d\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x85\x73\x86\x73\x88\x73\x8a\x73\x8c\x73\x8d\x73\x8f\x73\x90\x73\x92\x73\x93\x73\x94\x00\x00\x00\x00", /* a200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x95\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9c\x73\x9d\x73\x9e\x73\xa0\x73\xa1\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xaa\x73\xac\x73\xad\x73\xb1\x73\xb4\x73\xb5\x73\xb6\x73\xb8\x73\xb9\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc1\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xcb\x73\xcc\x73\xce\x73\xd2\x73\xd3\x73\xd4\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xdf\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe6\x73\xe8\x73\xea\x73\xeb\x73\xec\x73\xee\x73\xef\x73\xf0\x73\xf1", /* a280 */ "\x00\x00\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc\x73\xfd\x73\xfe\x73\xff\x74\x00\x74\x01\x74\x02\x74\x04\x74\x07\x74\x08\x74\x0b\x74\x0c\x74\x0d\x74\x0e\x74\x11\x74\x12\x74\x13\x74\x14\x74\x15\x74\x16\x74\x17\x74\x18\x74\x19\x74\x1c\x74\x1d\x74\x1e\x74\x1f\x74\x20\x74\x21\x74\x23\x74\x24\x74\x27\x74\x29\x74\x2b\x74\x2d\x74\x2f\x74\x31\x74\x32\x74\x37\x74\x38\x74\x39\x74\x3a\x74\x3b\x74\x3d\x74\x3e\x74\x3f\x74\x40\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x56\x74\x58\x74\x5d\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6e\x74\x6f\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7f\x74\x82\x74\x84\x74\x85\x74\x86\x74\x88\x74\x89\x74\x8a\x74\x8c\x74\x8d\x74\x8f\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96\x74\x97\x74\x98\x74\x99\x74\x9a\x00\x00\x00\x00", /* a300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x9b\x74\x9d\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xbb\x74\xbc\x74\xbd\x74\xbe\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdd\x74\xdf\x74\xe1\x74\xe5\x74\xe7", /* a380 */ "\x00\x00\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf5\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x00\x75\x01\x75\x02\x75\x03\x75\x05\x75\x06\x75\x07\x75\x08\x75\x09\x75\x0a\x75\x0b\x75\x0c\x75\x0e\x75\x10\x75\x12\x75\x14\x75\x15\x75\x16\x75\x17\x75\x1b\x75\x1d\x75\x1e\x75\x20\x75\x21\x75\x22\x75\x23\x75\x24\x75\x26\x75\x27\x75\x2a\x75\x2e\x75\x34\x75\x36\x75\x39\x75\x3c\x75\x3d\x75\x3f\x75\x41\x75\x42\x75\x43\x75\x44\x75\x46\x75\x47\x75\x49\x75\x4a\x75\x4d\x75\x50\x75\x51\x75\x52\x75\x53\x75\x55\x75\x56\x75\x57\x75\x58\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x67\x75\x68\x75\x69\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x73\x75\x75\x75\x76\x75\x77\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x80\x75\x81\x75\x82\x75\x84\x75\x85\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8c\x75\x8d\x75\x8e\x75\x90\x75\x93\x75\x95\x75\x98\x75\x9b\x75\x9c\x75\x9e\x75\xa2\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xad\x00\x00\x00\x00", /* a400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xb6\x75\xb7\x75\xba\x75\xbb\x75\xbf\x75\xc0\x75\xc1\x75\xc6\x75\xcb\x75\xcc\x75\xce\x75\xcf\x75\xd0\x75\xd1\x75\xd3\x75\xd7\x75\xd9\x75\xda\x75\xdc\x75\xdd\x75\xdf\x75\xe0\x75\xe1\x75\xe5\x75\xe9\x75\xec\x75\xed\x75\xee\x75\xef\x75\xf2\x75\xf3\x75\xf5\x75\xf6\x75\xf7\x75\xf8\x75\xfa\x75\xfb\x75\xfd\x75\xfe\x76\x02\x76\x04\x76\x06\x76\x07\x76\x08\x76\x09\x76\x0b\x76\x0d\x76\x0e\x76\x0f\x76\x11\x76\x12\x76\x13\x76\x14\x76\x16\x76\x1a\x76\x1c\x76\x1d\x76\x1e\x76\x21\x76\x23\x76\x27\x76\x28\x76\x2c", /* a480 */ "\x00\x00\x76\x2e\x76\x2f\x76\x31\x76\x32\x76\x36\x76\x37\x76\x39\x76\x3a\x76\x3b\x76\x3d\x76\x41\x76\x42\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x55\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5d\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6c\x76\x6d\x76\x6e\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x79\x76\x7a\x76\x7c\x76\x7f\x76\x80\x76\x81\x76\x83\x76\x85\x76\x89\x76\x8a\x76\x8c\x76\x8d\x76\x8f\x76\x90\x76\x92\x76\x94\x76\x95\x76\x97\x76\x98\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xaf\x76\xb0\x76\xb3\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xc0\x76\xc1\x76\xc3\x76\xc4\x76\xc7\x76\xc9\x76\xcb\x76\xcc\x76\xd3\x76\xd5\x76\xd9\x76\xda\x76\xdc\x76\xdd\x76\xde\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x00\x00\x00\x00", /* a500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\xe4\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xf0\x76\xf3\x76\xf5\x76\xf6\x76\xf7\x76\xfa\x76\xfb\x76\xfd\x76\xff\x77\x00\x77\x02\x77\x03\x77\x05\x77\x06\x77\x0a\x77\x0c\x77\x0e\x77\x0f\x77\x10\x77\x11\x77\x12\x77\x13\x77\x14\x77\x15\x77\x16\x77\x17\x77\x18\x77\x1b\x77\x1c\x77\x1d\x77\x1e\x77\x21\x77\x23\x77\x24\x77\x25\x77\x27\x77\x2a\x77\x2b\x77\x2c\x77\x2e\x77\x30\x77\x31\x77\x32\x77\x33\x77\x34\x77\x39\x77\x3b\x77\x3d\x77\x3e\x77\x3f\x77\x42\x77\x44\x77\x45\x77\x46", /* a580 */ "\x00\x00\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x64\x77\x67\x77\x69\x77\x6a\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x7a\x77\x7b\x77\x7c\x77\x81\x77\x82\x77\x83\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8f\x77\x90\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\xa1\x77\xa3\x77\xa4\x77\xa6\x77\xa8\x77\xab\x77\xad\x77\xae\x77\xaf\x77\xb1\x77\xb2\x77\xb4\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbc\x77\xbe\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd8\x77\xd9\x77\xda\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe4\x77\xe6\x77\xe8\x77\xea\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf4\x77\xf5\x77\xf7\x77\xf9\x77\xfa\x00\x00\x00\x00", /* a600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xfb\x77\xfc\x78\x03\x78\x04\x78\x05\x78\x06\x78\x07\x78\x08\x78\x0a\x78\x0b\x78\x0e\x78\x0f\x78\x10\x78\x13\x78\x15\x78\x19\x78\x1b\x78\x1e\x78\x20\x78\x21\x78\x22\x78\x24\x78\x28\x78\x2a\x78\x2b\x78\x2e\x78\x2f\x78\x31\x78\x32\x78\x33\x78\x35\x78\x36\x78\x3d\x78\x3f\x78\x41\x78\x42\x78\x43\x78\x44\x78\x46\x78\x48\x78\x49\x78\x4a\x78\x4b\x78\x4d\x78\x4f\x78\x51\x78\x53\x78\x54\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67", /* a680 */ "\x00\x00\x78\x68\x78\x69\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7d\x78\x7e\x78\x7f\x78\x80\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x88\x78\x8a\x78\x8b\x78\x8f\x78\x90\x78\x92\x78\x94\x78\x95\x78\x96\x78\x99\x78\x9d\x78\x9e\x78\xa0\x78\xa2\x78\xa4\x78\xa6\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbf\x78\xc0\x78\xc2\x78\xc3\x78\xc4\x78\xc6\x78\xc7\x78\xc8\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd1\x78\xd2\x78\xd3\x78\xd6\x78\xd7\x78\xd8\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe9\x78\xea\x78\xeb\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf3\x78\xf5\x78\xf6\x78\xf8\x78\xf9\x78\xfb\x78\xfc\x78\xfd\x78\xfe\x78\xff\x79\x00\x79\x02\x79\x03\x79\x04\x79\x06\x79\x07\x79\x08\x79\x09\x79\x0a\x79\x0b\x79\x0c\x79\x0d\x79\x0e\x79\x0f\x79\x10\x79\x11\x79\x12\x79\x14\x79\x15\x00\x00\x00\x00", /* a700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x16\x79\x17\x79\x18\x79\x19\x79\x1a\x79\x1b\x79\x1c\x79\x1d\x79\x1f\x79\x20\x79\x21\x79\x22\x79\x23\x79\x25\x79\x26\x79\x27\x79\x28\x79\x29\x79\x2a\x79\x2b\x79\x2c\x79\x2d\x79\x2e\x79\x2f\x79\x30\x79\x31\x79\x32\x79\x33\x79\x35\x79\x36\x79\x37\x79\x38\x79\x39\x79\x3d\x79\x3f\x79\x42\x79\x43\x79\x44\x79\x45\x79\x47\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x54\x79\x55\x79\x58\x79\x59\x79\x61\x79\x63\x79\x64\x79\x66\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6e\x79\x70", /* a780 */ "\x00\x00\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x79\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x82\x79\x83\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8b\x79\x8c\x79\x8d\x79\x8e\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xbc\x79\xbf\x79\xc2\x79\xc4\x79\xc5\x79\xc7\x79\xc8\x79\xca\x79\xcc\x79\xce\x79\xcf\x79\xd0\x79\xd3\x79\xd4\x79\xd6\x79\xd7\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xe0\x79\xe1\x79\xe2\x79\xe5\x79\xe8\x79\xea\x79\xec\x79\xee\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf9\x79\xfa\x79\xfc\x79\xfe\x79\xff\x7a\x01\x7a\x04\x7a\x05\x7a\x07\x7a\x08\x7a\x09\x7a\x0a\x7a\x0c\x7a\x0f\x7a\x10\x7a\x11\x7a\x12\x7a\x13\x7a\x15\x7a\x16\x7a\x18\x7a\x19\x7a\x1b\x7a\x1c\x7a\x1d\x7a\x1f\x7a\x21\x7a\x22\x00\x00\x00\x00", /* a800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x24\x7a\x25\x7a\x26\x7a\x27\x7a\x28\x7a\x29\x7a\x2a\x7a\x2b\x7a\x2c\x7a\x2d\x7a\x2e\x7a\x2f\x7a\x30\x7a\x31\x7a\x32\x7a\x34\x7a\x35\x7a\x36\x7a\x38\x7a\x3a\x7a\x3e\x7a\x40\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c", /* a880 */ "\x00\x00\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x71\x7a\x72\x7a\x73\x7a\x75\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x82\x7a\x85\x7a\x87\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8e\x7a\x8f\x7a\x90\x7a\x93\x7a\x94\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9e\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa7\x7a\xa9\x7a\xaa\x7a\xab\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd7\x7a\xd8\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xe1\x7a\xe2\x7a\xe4\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xee\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xfb\x7a\xfc\x7a\xfe\x7b\x00\x7b\x01\x7b\x02\x7b\x05\x7b\x07\x7b\x09\x7b\x0c\x7b\x0d\x7b\x0e\x7b\x10\x7b\x12\x7b\x13\x7b\x16\x7b\x17\x7b\x18\x7b\x1a\x7b\x1c\x7b\x1d\x7b\x1f\x7b\x21\x7b\x22\x7b\x23\x7b\x27\x7b\x29\x7b\x2d\x00\x00\x00\x00", /* a900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x2f\x7b\x30\x7b\x32\x7b\x34\x7b\x35\x7b\x36\x7b\x37\x7b\x39\x7b\x3b\x7b\x3d\x7b\x3f\x7b\x40\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x46\x7b\x48\x7b\x4a\x7b\x4d\x7b\x4e\x7b\x53\x7b\x55\x7b\x57\x7b\x59\x7b\x5c\x7b\x5e\x7b\x5f\x7b\x61\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6f\x7b\x70\x7b\x73\x7b\x74\x7b\x76\x7b\x78\x7b\x7a\x7b\x7c\x7b\x7d\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8e\x7b\x8f", /* a980 */ "\x00\x00\x7b\x91\x7b\x92\x7b\x93\x7b\x96\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb2\x7b\xb3\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd2\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xdb\x7b\xdc\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xeb\x7b\xec\x7b\xed\x7b\xef\x7b\xf0\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfd\x7b\xff\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x7c\x04\x7c\x05\x7c\x06\x7c\x08\x7c\x09\x7c\x0a\x7c\x0d\x7c\x0e\x7c\x10\x7c\x11\x7c\x12\x7c\x13\x7c\x14\x7c\x15\x7c\x17\x7c\x18\x7c\x19\x7c\x1a\x7c\x1b\x7c\x1c\x7c\x1d\x7c\x1e\x7c\x20\x7c\x21\x7c\x22\x7c\x23\x7c\x24\x7c\x25\x7c\x28\x7c\x29\x7c\x2b\x7c\x2c\x7c\x2d\x7c\x2e\x7c\x2f\x7c\x30\x7c\x31\x7c\x32\x7c\x33\x7c\x34\x7c\x35\x7c\x36\x7c\x37\x7c\x39\x7c\x3a\x7c\x3b\x00\x00\x00\x00", /* aa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x3c\x7c\x3d\x7c\x3e\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7e\x7c\x7f\x7c\x80\x7c\x81\x7c\x82\x7c\x83", /* aa80 */ "\x00\x00\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x93\x7c\x94\x7c\x96\x7c\x99\x7c\x9a\x7c\x9b\x7c\xa0\x7c\xa1\x7c\xa3\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xab\x7c\xac\x7c\xad\x7c\xaf\x7c\xb0\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xba\x7c\xbb\x7c\xbf\x7c\xc0\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc6\x7c\xc9\x7c\xcb\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd8\x7c\xda\x7c\xdb\x7c\xdd\x7c\xde\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf9\x7c\xfa\x7c\xfc\x7c\xfd\x7c\xfe\x7c\xff\x7d\x00\x7d\x01\x7d\x02\x7d\x03\x7d\x04\x7d\x05\x7d\x06\x7d\x07\x7d\x08\x7d\x09\x7d\x0b\x7d\x0c\x7d\x0d\x7d\x0e\x7d\x0f\x7d\x10\x7d\x11\x7d\x12\x7d\x13\x7d\x14\x7d\x15\x7d\x16\x7d\x17\x7d\x18\x7d\x19\x7d\x1a\x7d\x1b\x7d\x1c\x7d\x1d\x7d\x1e\x7d\x1f\x7d\x21\x7d\x23\x7d\x24\x7d\x25\x7d\x26\x7d\x28\x7d\x29\x7d\x2a\x7d\x2c\x7d\x2d\x00\x00\x00\x00", /* ab00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x2e\x7d\x30\x7d\x31\x7d\x32\x7d\x33\x7d\x34\x7d\x35\x7d\x36\x7d\x37\x7d\x38\x7d\x39\x7d\x3a\x7d\x3b\x7d\x3c\x7d\x3d\x7d\x3e\x7d\x3f\x7d\x40\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d", /* ab80 */ "\x00\x00\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x80\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x00\x00\x00\x00", /* ac00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7d\xfe\x7d\xff\x7e\x00\x7e\x01\x7e\x02\x7e\x03\x7e\x04\x7e\x05\x7e\x06\x7e\x07\x7e\x08\x7e\x09\x7e\x0a\x7e\x0b\x7e\x0c\x7e\x0d\x7e\x0e\x7e\x0f\x7e\x10\x7e\x11\x7e\x12\x7e\x13\x7e\x14\x7e\x15\x7e\x16\x7e\x17\x7e\x18\x7e\x19\x7e\x1a\x7e\x1b\x7e\x1c\x7e\x1d\x7e\x1e\x7e\x1f\x7e\x20\x7e\x21\x7e\x22\x7e\x23\x7e\x24\x7e\x25\x7e\x26\x7e\x27\x7e\x28\x7e\x29\x7e\x2a\x7e\x2b\x7e\x2c\x7e\x2d", /* ac80 */ "\x00\x00\x7e\x2e\x7e\x2f\x7e\x30\x7e\x31\x7e\x32\x7e\x33\x7e\x34\x7e\x35\x7e\x36\x7e\x37\x7e\x38\x7e\x39\x7e\x3a\x7e\x3c\x7e\x3d\x7e\x3e\x7e\x3f\x7e\x40\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x80\x7e\x81\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9c\x7e\x9d\x7e\x9e\x7e\xae\x7e\xb4\x7e\xbb\x7e\xbc\x7e\xd6\x7e\xe4\x7e\xec\x7e\xf9\x7f\x0a\x7f\x10\x7f\x1e\x7f\x37\x7f\x39\x7f\x3b\x7f\x3c\x7f\x3d\x7f\x3e\x00\x00\x00\x00", /* ad00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x3f\x7f\x40\x7f\x41\x7f\x43\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x52\x7f\x53\x7f\x56\x7f\x59\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x60\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6f\x7f\x70\x7f\x73\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7f\x7f\x80\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8b\x7f\x8d\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x95\x7f\x96\x7f\x97\x7f\x98", /* ad80 */ "\x00\x00\x7f\x99\x7f\x9b\x7f\x9c\x7f\xa0\x7f\xa2\x7f\xa3\x7f\xa5\x7f\xa6\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xb1\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xba\x7f\xbb\x7f\xbe\x7f\xc0\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xcb\x7f\xcd\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd6\x7f\xd7\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe7\x7f\xe8\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xef\x7f\xf2\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfd\x7f\xfe\x7f\xff\x80\x02\x80\x07\x80\x08\x80\x09\x80\x0a\x80\x0e\x80\x0f\x80\x11\x80\x13\x80\x1a\x80\x1b\x80\x1d\x80\x1e\x80\x1f\x80\x21\x80\x23\x80\x24\x80\x2b\x80\x2c\x80\x2d\x80\x2e\x80\x2f\x80\x30\x80\x32\x80\x34\x80\x39\x80\x3a\x80\x3c\x80\x3e\x80\x40\x80\x41\x80\x44\x80\x45\x80\x47\x80\x48\x80\x49\x80\x4e\x80\x4f\x80\x50\x80\x51\x80\x53\x80\x55\x80\x56\x80\x57\x80\x59\x80\x5b\x80\x5c\x80\x5d\x80\x5e\x80\x5f\x80\x60\x80\x61\x80\x62\x80\x63\x80\x64\x80\x65\x80\x66\x00\x00\x00\x00", /* ae00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x67\x80\x68\x80\x6b\x80\x6c\x80\x6d\x80\x6e\x80\x6f\x80\x70\x80\x72\x80\x73\x80\x74\x80\x75\x80\x76\x80\x77\x80\x78\x80\x79\x80\x7a\x80\x7b\x80\x7c\x80\x7d\x80\x7e\x80\x81\x80\x82\x80\x85\x80\x88\x80\x8a\x80\x8d\x80\x8e\x80\x8f\x80\x90\x80\x91\x80\x92\x80\x94\x80\x95\x80\x97\x80\x99\x80\x9e\x80\xa3\x80\xa6\x80\xa7\x80\xa8\x80\xac\x80\xb0\x80\xb3\x80\xb5\x80\xb6\x80\xb8\x80\xb9\x80\xbb\x80\xc5\x80\xc7\x80\xc8\x80\xc9\x80\xca\x80\xcb\x80\xcf\x80\xd0\x80\xd1\x80\xd2\x80\xd3\x80\xd4\x80\xd5\x80\xd8", /* ae80 */ "\x00\x00\x80\xdf\x80\xe0\x80\xe2\x80\xe3\x80\xe6\x80\xee\x80\xf5\x80\xf7\x80\xf9\x80\xfb\x80\xfe\x80\xff\x81\x00\x81\x01\x81\x03\x81\x04\x81\x05\x81\x07\x81\x08\x81\x0b\x81\x0c\x81\x15\x81\x17\x81\x19\x81\x1b\x81\x1c\x81\x1d\x81\x1f\x81\x20\x81\x21\x81\x22\x81\x23\x81\x24\x81\x25\x81\x26\x81\x27\x81\x28\x81\x29\x81\x2a\x81\x2b\x81\x2d\x81\x2e\x81\x30\x81\x33\x81\x34\x81\x35\x81\x37\x81\x39\x81\x3a\x81\x3b\x81\x3c\x81\x3d\x81\x3f\x81\x40\x81\x41\x81\x42\x81\x43\x81\x44\x81\x45\x81\x47\x81\x49\x81\x4d\x81\x4e\x81\x4f\x81\x52\x81\x56\x81\x57\x81\x58\x81\x5b\x81\x5c\x81\x5d\x81\x5e\x81\x5f\x81\x61\x81\x62\x81\x63\x81\x64\x81\x66\x81\x68\x81\x6a\x81\x6b\x81\x6c\x81\x6f\x81\x72\x81\x73\x81\x75\x81\x76\x81\x77\x81\x78\x81\x81\x81\x83\x81\x84\x81\x85\x81\x86\x81\x87\x81\x89\x81\x8b\x81\x8c\x81\x8d\x81\x8e\x81\x90\x81\x92\x81\x93\x81\x94\x81\x95\x81\x96\x81\x97\x81\x99\x81\x9a\x81\x9e\x81\x9f\x81\xa0\x81\xa1\x81\xa2\x81\xa4\x81\xa5\x81\xa7\x81\xa9\x81\xab\x81\xac\x81\xad\x81\xae\x81\xaf\x81\xb0\x81\xb1\x00\x00\x00\x00", /* af00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xb2\x81\xb4\x81\xb5\x81\xb6\x81\xb7\x81\xb8\x81\xb9\x81\xbc\x81\xbd\x81\xbe\x81\xbf\x81\xc4\x81\xc5\x81\xc7\x81\xc8\x81\xc9\x81\xcb\x81\xcd\x81\xce\x81\xcf\x81\xd0\x81\xd1\x81\xd2\x81\xd3\x81\xd4\x81\xd5\x81\xd6\x81\xd7\x81\xd8\x81\xd9\x81\xda\x81\xdb\x81\xdc\x81\xdd\x81\xde\x81\xdf\x81\xe0\x81\xe1\x81\xe2\x81\xe4\x81\xe5\x81\xe6\x81\xe8\x81\xe9\x81\xeb\x81\xee\x81\xef\x81\xf0\x81\xf1\x81\xf2\x81\xf5\x81\xf6\x81\xf7\x81\xf8\x81\xf9\x81\xfa\x81\xfd\x81\xff\x82\x03\x82\x07\x82\x08\x82\x09\x82\x0a", /* af80 */ "\x00\x00\x82\x0b\x82\x0e\x82\x0f\x82\x11\x82\x13\x82\x15\x82\x16\x82\x17\x82\x18\x82\x19\x82\x1a\x82\x1d\x82\x20\x82\x24\x82\x25\x82\x26\x82\x27\x82\x29\x82\x2e\x82\x32\x82\x3a\x82\x3c\x82\x3d\x82\x3f\x82\x40\x82\x41\x82\x42\x82\x43\x82\x45\x82\x46\x82\x48\x82\x4a\x82\x4c\x82\x4d\x82\x4e\x82\x50\x82\x51\x82\x52\x82\x53\x82\x54\x82\x55\x82\x56\x82\x57\x82\x59\x82\x5b\x82\x5c\x82\x5d\x82\x5e\x82\x60\x82\x61\x82\x62\x82\x63\x82\x64\x82\x65\x82\x66\x82\x67\x82\x69\x82\x6a\x82\x6b\x82\x6c\x82\x6d\x82\x71\x82\x75\x82\x76\x82\x77\x82\x78\x82\x7b\x82\x7c\x82\x80\x82\x81\x82\x83\x82\x85\x82\x86\x82\x87\x82\x89\x82\x8c\x82\x90\x82\x93\x82\x94\x82\x95\x82\x96\x82\x9a\x82\x9b\x82\x9e\x82\xa0\x82\xa2\x82\xa3\x82\xa7\x82\xb2\x82\xb5\x82\xb6\x82\xba\x82\xbb\x82\xbc\x82\xbf\x82\xc0\x82\xc2\x82\xc3\x82\xc5\x82\xc6\x82\xc9\x82\xd0\x82\xd6\x82\xd9\x82\xda\x82\xdd\x82\xe2\x82\xe7\x82\xe8\x82\xe9\x82\xea\x82\xec\x82\xed\x82\xee\x82\xf0\x82\xf2\x82\xf3\x82\xf5\x82\xf6\x82\xf8\x82\xfa\x82\xfc\x82\xfd\x82\xfe\x82\xff\x00\x00\x00\x00", /* b000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x83\x0a\x83\x0b\x83\x0d\x83\x10\x83\x12\x83\x13\x83\x16\x83\x18\x83\x19\x83\x1d\x83\x1e\x83\x1f\x83\x20\x83\x21\x83\x22\x83\x23\x83\x24\x83\x25\x83\x26\x83\x29\x83\x2a\x83\x2e\x83\x30\x83\x32\x83\x37\x83\x3b\x83\x3d\x83\x3e\x83\x3f\x83\x41\x83\x42\x83\x44\x83\x45\x83\x48\x83\x4a\x83\x4b\x83\x4c\x83\x4d\x83\x4e\x83\x53\x83\x55\x83\x56\x83\x57\x83\x58\x83\x59\x83\x5d\x83\x62\x83\x70\x83\x71\x83\x72\x83\x73\x83\x74\x83\x75\x83\x76\x83\x79\x83\x7a\x83\x7e\x83\x7f\x83\x80\x83\x81\x83\x82\x83\x83", /* b080 */ "\x00\x00\x83\x84\x83\x87\x83\x88\x83\x8a\x83\x8b\x83\x8c\x83\x8d\x83\x8f\x83\x90\x83\x91\x83\x94\x83\x95\x83\x96\x83\x97\x83\x99\x83\x9a\x83\x9d\x83\x9f\x83\xa1\x83\xa2\x83\xa3\x83\xa4\x83\xa5\x83\xa6\x83\xa7\x83\xac\x83\xad\x83\xae\x83\xaf\x83\xb5\x83\xbb\x83\xbe\x83\xbf\x83\xc2\x83\xc3\x83\xc4\x83\xc6\x83\xc8\x83\xc9\x83\xcb\x83\xcd\x83\xce\x83\xd0\x83\xd1\x83\xd2\x83\xd3\x83\xd5\x83\xd7\x83\xd9\x83\xda\x83\xdb\x83\xde\x83\xe2\x83\xe3\x83\xe4\x83\xe6\x83\xe7\x83\xe8\x83\xeb\x83\xec\x83\xed\x83\xee\x83\xef\x83\xf3\x83\xf4\x83\xf5\x83\xf6\x83\xf7\x83\xfa\x83\xfb\x83\xfc\x83\xfe\x83\xff\x84\x00\x84\x02\x84\x05\x84\x07\x84\x08\x84\x09\x84\x0a\x84\x10\x84\x12\x84\x13\x84\x14\x84\x15\x84\x16\x84\x17\x84\x19\x84\x1a\x84\x1b\x84\x1e\x84\x1f\x84\x20\x84\x21\x84\x22\x84\x23\x84\x29\x84\x2a\x84\x2b\x84\x2c\x84\x2d\x84\x2e\x84\x2f\x84\x30\x84\x32\x84\x33\x84\x34\x84\x35\x84\x36\x84\x37\x84\x39\x84\x3a\x84\x3b\x84\x3e\x84\x3f\x84\x40\x84\x41\x84\x42\x84\x43\x84\x44\x84\x45\x84\x47\x84\x48\x84\x49\x84\x4a\x00\x00\x00\x00", /* b100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x4b\x84\x4c\x84\x4d\x84\x4e\x84\x4f\x84\x50\x84\x52\x84\x53\x84\x54\x84\x55\x84\x56\x84\x58\x84\x5d\x84\x5e\x84\x5f\x84\x60\x84\x62\x84\x64\x84\x65\x84\x66\x84\x67\x84\x68\x84\x6a\x84\x6e\x84\x6f\x84\x70\x84\x72\x84\x74\x84\x77\x84\x79\x84\x7b\x84\x7c\x84\x7d\x84\x7e\x84\x7f\x84\x80\x84\x81\x84\x83\x84\x84\x84\x85\x84\x86\x84\x8a\x84\x8d\x84\x8f\x84\x90\x84\x91\x84\x92\x84\x93\x84\x94\x84\x95\x84\x96\x84\x98\x84\x9a\x84\x9b\x84\x9d\x84\x9e\x84\x9f\x84\xa0\x84\xa2\x84\xa3\x84\xa4\x84\xa5\x84\xa6", /* b180 */ "\x00\x00\x84\xa7\x84\xa8\x84\xa9\x84\xaa\x84\xab\x84\xac\x84\xad\x84\xae\x84\xb0\x84\xb1\x84\xb3\x84\xb5\x84\xb6\x84\xb7\x84\xbb\x84\xbc\x84\xbe\x84\xc0\x84\xc2\x84\xc3\x84\xc5\x84\xc6\x84\xc7\x84\xc8\x84\xcb\x84\xcc\x84\xce\x84\xcf\x84\xd2\x84\xd4\x84\xd5\x84\xd7\x84\xd8\x84\xd9\x84\xda\x84\xdb\x84\xdc\x84\xde\x84\xe1\x84\xe2\x84\xe4\x84\xe7\x84\xe8\x84\xe9\x84\xea\x84\xeb\x84\xed\x84\xee\x84\xef\x84\xf1\x84\xf2\x84\xf3\x84\xf4\x84\xf5\x84\xf6\x84\xf7\x84\xf8\x84\xf9\x84\xfa\x84\xfb\x84\xfd\x84\xfe\x85\x00\x85\x01\x85\x02\x85\x03\x85\x04\x85\x05\x85\x06\x85\x07\x85\x08\x85\x09\x85\x0a\x85\x0b\x85\x0d\x85\x0e\x85\x0f\x85\x10\x85\x12\x85\x14\x85\x15\x85\x16\x85\x18\x85\x19\x85\x1b\x85\x1c\x85\x1d\x85\x1e\x85\x20\x85\x22\x85\x23\x85\x24\x85\x25\x85\x26\x85\x27\x85\x28\x85\x29\x85\x2a\x85\x2d\x85\x2e\x85\x2f\x85\x30\x85\x31\x85\x32\x85\x33\x85\x34\x85\x35\x85\x36\x85\x3e\x85\x3f\x85\x40\x85\x41\x85\x42\x85\x44\x85\x45\x85\x46\x85\x47\x85\x4b\x85\x4c\x85\x4d\x85\x4e\x85\x4f\x85\x50\x85\x51\x85\x52\x00\x00\x00\x00", /* b200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x53\x85\x54\x85\x55\x85\x57\x85\x58\x85\x5a\x85\x5b\x85\x5c\x85\x5d\x85\x5f\x85\x60\x85\x61\x85\x62\x85\x63\x85\x65\x85\x66\x85\x67\x85\x69\x85\x6a\x85\x6b\x85\x6c\x85\x6d\x85\x6e\x85\x6f\x85\x70\x85\x71\x85\x73\x85\x75\x85\x76\x85\x77\x85\x78\x85\x7c\x85\x7d\x85\x7f\x85\x80\x85\x81\x85\x82\x85\x83\x85\x86\x85\x88\x85\x89\x85\x8a\x85\x8b\x85\x8c\x85\x8d\x85\x8e\x85\x90\x85\x91\x85\x92\x85\x93\x85\x94\x85\x95\x85\x96\x85\x97\x85\x98\x85\x99\x85\x9a\x85\x9d\x85\x9e\x85\x9f\x85\xa0\x85\xa1\x85\xa2", /* b280 */ "\x00\x00\x85\xa3\x85\xa5\x85\xa6\x85\xa7\x85\xa9\x85\xab\x85\xac\x85\xad\x85\xb1\x85\xb2\x85\xb3\x85\xb4\x85\xb5\x85\xb6\x85\xb8\x85\xba\x85\xbb\x85\xbc\x85\xbd\x85\xbe\x85\xbf\x85\xc0\x85\xc2\x85\xc3\x85\xc4\x85\xc5\x85\xc6\x85\xc7\x85\xc8\x85\xca\x85\xcb\x85\xcc\x85\xcd\x85\xce\x85\xd1\x85\xd2\x85\xd4\x85\xd6\x85\xd7\x85\xd8\x85\xd9\x85\xda\x85\xdb\x85\xdd\x85\xde\x85\xdf\x85\xe0\x85\xe1\x85\xe2\x85\xe3\x85\xe5\x85\xe6\x85\xe7\x85\xe8\x85\xea\x85\xeb\x85\xec\x85\xed\x85\xee\x85\xef\x85\xf0\x85\xf1\x85\xf2\x85\xf3\x85\xf4\x85\xf5\x85\xf6\x85\xf7\x85\xf8\x85\xf9\x85\xfa\x85\xfc\x85\xfd\x85\xfe\x86\x00\x86\x01\x86\x02\x86\x03\x86\x04\x86\x06\x86\x07\x86\x08\x86\x09\x86\x0a\x86\x0b\x86\x0c\x86\x0d\x86\x0e\x86\x0f\x86\x10\x86\x12\x86\x13\x86\x14\x86\x15\x86\x17\x86\x18\x86\x19\x86\x1a\x86\x1b\x86\x1c\x86\x1d\x86\x1e\x86\x1f\x86\x20\x86\x21\x86\x22\x86\x23\x86\x24\x86\x25\x86\x26\x86\x28\x86\x2a\x86\x2b\x86\x2c\x86\x2d\x86\x2e\x86\x2f\x86\x30\x86\x31\x86\x32\x86\x33\x86\x34\x86\x35\x86\x36\x86\x37\x00\x00\x00\x00", /* b300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x39\x86\x3a\x86\x3b\x86\x3d\x86\x3e\x86\x3f\x86\x40\x86\x41\x86\x42\x86\x43\x86\x44\x86\x45\x86\x46\x86\x47\x86\x48\x86\x49\x86\x4a\x86\x4b\x86\x4c\x86\x52\x86\x53\x86\x55\x86\x56\x86\x57\x86\x58\x86\x59\x86\x5b\x86\x5c\x86\x5d\x86\x5f\x86\x60\x86\x61\x86\x63\x86\x64\x86\x65\x86\x66\x86\x67\x86\x68\x86\x69\x86\x6a\x86\x6d\x86\x6f\x86\x70\x86\x72\x86\x73\x86\x74\x86\x75\x86\x76\x86\x77\x86\x78\x86\x83\x86\x84\x86\x85\x86\x86\x86\x87\x86\x88\x86\x89\x86\x8e\x86\x8f\x86\x90\x86\x91\x86\x92\x86\x94", /* b380 */ "\x00\x00\x86\x96\x86\x97\x86\x98\x86\x99\x86\x9a\x86\x9b\x86\x9e\x86\x9f\x86\xa0\x86\xa1\x86\xa2\x86\xa5\x86\xa6\x86\xab\x86\xad\x86\xae\x86\xb2\x86\xb3\x86\xb7\x86\xb8\x86\xb9\x86\xbb\x86\xbc\x86\xbd\x86\xbe\x86\xbf\x86\xc1\x86\xc2\x86\xc3\x86\xc5\x86\xc8\x86\xcc\x86\xcd\x86\xd2\x86\xd3\x86\xd5\x86\xd6\x86\xd7\x86\xda\x86\xdc\x86\xdd\x86\xe0\x86\xe1\x86\xe2\x86\xe3\x86\xe5\x86\xe6\x86\xe7\x86\xe8\x86\xea\x86\xeb\x86\xec\x86\xef\x86\xf5\x86\xf6\x86\xf7\x86\xfa\x86\xfb\x86\xfc\x86\xfd\x86\xff\x87\x01\x87\x04\x87\x05\x87\x06\x87\x0b\x87\x0c\x87\x0e\x87\x0f\x87\x10\x87\x11\x87\x14\x87\x16\x87\x19\x87\x1b\x87\x1d\x87\x1f\x87\x20\x87\x24\x87\x26\x87\x27\x87\x28\x87\x2a\x87\x2b\x87\x2c\x87\x2d\x87\x2f\x87\x30\x87\x32\x87\x33\x87\x35\x87\x36\x87\x38\x87\x39\x87\x3a\x87\x3c\x87\x3d\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46\x87\x4a\x87\x4b\x87\x4d\x87\x4f\x87\x50\x87\x51\x87\x52\x87\x54\x87\x55\x87\x56\x87\x58\x87\x5a\x87\x5b\x87\x5c\x87\x5d\x87\x5e\x87\x5f\x87\x61\x87\x62\x87\x66\x87\x67\x00\x00\x00\x00", /* b400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x68\x87\x69\x87\x6a\x87\x6b\x87\x6c\x87\x6d\x87\x6f\x87\x71\x87\x72\x87\x73\x87\x75\x87\x77\x87\x78\x87\x79\x87\x7a\x87\x7f\x87\x80\x87\x81\x87\x84\x87\x86\x87\x87\x87\x89\x87\x8a\x87\x8c\x87\x8e\x87\x8f\x87\x90\x87\x91\x87\x92\x87\x94\x87\x95\x87\x96\x87\x98\x87\x99\x87\x9a\x87\x9b\x87\x9c\x87\x9d\x87\x9e\x87\xa0\x87\xa1\x87\xa2\x87\xa3\x87\xa4\x87\xa5\x87\xa6\x87\xa7\x87\xa9\x87\xaa\x87\xae\x87\xb0\x87\xb1\x87\xb2\x87\xb4\x87\xb6\x87\xb7\x87\xb8\x87\xb9\x87\xbb\x87\xbc\x87\xbe\x87\xbf\x87\xc1", /* b480 */ "\x00\x00\x87\xc2\x87\xc3\x87\xc4\x87\xc5\x87\xc7\x87\xc8\x87\xc9\x87\xcc\x87\xcd\x87\xce\x87\xcf\x87\xd0\x87\xd4\x87\xd5\x87\xd6\x87\xd7\x87\xd8\x87\xd9\x87\xda\x87\xdc\x87\xdd\x87\xde\x87\xdf\x87\xe1\x87\xe2\x87\xe3\x87\xe4\x87\xe6\x87\xe7\x87\xe8\x87\xe9\x87\xeb\x87\xec\x87\xed\x87\xef\x87\xf0\x87\xf1\x87\xf2\x87\xf3\x87\xf4\x87\xf5\x87\xf6\x87\xf7\x87\xf8\x87\xfa\x87\xfb\x87\xfc\x87\xfd\x87\xff\x88\x00\x88\x01\x88\x02\x88\x04\x88\x05\x88\x06\x88\x07\x88\x08\x88\x09\x88\x0b\x88\x0c\x88\x0d\x88\x0e\x88\x0f\x88\x10\x88\x11\x88\x12\x88\x14\x88\x17\x88\x18\x88\x19\x88\x1a\x88\x1c\x88\x1d\x88\x1e\x88\x1f\x88\x20\x88\x23\x88\x24\x88\x25\x88\x26\x88\x27\x88\x28\x88\x29\x88\x2a\x88\x2b\x88\x2c\x88\x2d\x88\x2e\x88\x2f\x88\x30\x88\x31\x88\x33\x88\x34\x88\x35\x88\x36\x88\x37\x88\x38\x88\x3a\x88\x3b\x88\x3d\x88\x3e\x88\x3f\x88\x41\x88\x42\x88\x43\x88\x46\x88\x47\x88\x48\x88\x49\x88\x4a\x88\x4b\x88\x4e\x88\x4f\x88\x50\x88\x51\x88\x52\x88\x53\x88\x55\x88\x56\x88\x58\x88\x5a\x88\x5b\x88\x5c\x88\x5d\x88\x5e\x00\x00\x00\x00", /* b500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x5f\x88\x60\x88\x66\x88\x67\x88\x6a\x88\x6d\x88\x6f\x88\x71\x88\x73\x88\x74\x88\x75\x88\x76\x88\x78\x88\x79\x88\x7a\x88\x7b\x88\x7c\x88\x80\x88\x83\x88\x86\x88\x87\x88\x89\x88\x8a\x88\x8c\x88\x8e\x88\x8f\x88\x90\x88\x91\x88\x93\x88\x94\x88\x95\x88\x97\x88\x98\x88\x99\x88\x9a\x88\x9b\x88\x9d\x88\x9e\x88\x9f\x88\xa0\x88\xa1\x88\xa3\x88\xa5\x88\xa6\x88\xa7\x88\xa8\x88\xa9\x88\xaa\x88\xac\x88\xae\x88\xaf\x88\xb0\x88\xb2\x88\xb3\x88\xb4\x88\xb5\x88\xb6\x88\xb8\x88\xb9\x88\xba\x88\xbb\x88\xbd\x88\xbe", /* b580 */ "\x00\x00\x88\xbf\x88\xc0\x88\xc3\x88\xc4\x88\xc7\x88\xc8\x88\xca\x88\xcb\x88\xcc\x88\xcd\x88\xcf\x88\xd0\x88\xd1\x88\xd3\x88\xd6\x88\xd7\x88\xda\x88\xdb\x88\xdc\x88\xdd\x88\xde\x88\xe0\x88\xe1\x88\xe6\x88\xe7\x88\xe9\x88\xea\x88\xeb\x88\xec\x88\xed\x88\xee\x88\xef\x88\xf2\x88\xf5\x88\xf6\x88\xf7\x88\xfa\x88\xfb\x88\xfd\x88\xff\x89\x00\x89\x01\x89\x03\x89\x04\x89\x05\x89\x06\x89\x07\x89\x08\x89\x09\x89\x0b\x89\x0c\x89\x0d\x89\x0e\x89\x0f\x89\x11\x89\x14\x89\x15\x89\x16\x89\x17\x89\x18\x89\x1c\x89\x1d\x89\x1e\x89\x1f\x89\x20\x89\x22\x89\x23\x89\x24\x89\x26\x89\x27\x89\x28\x89\x29\x89\x2c\x89\x2d\x89\x2e\x89\x2f\x89\x31\x89\x32\x89\x33\x89\x35\x89\x37\x89\x38\x89\x39\x89\x3a\x89\x3b\x89\x3c\x89\x3d\x89\x3e\x89\x3f\x89\x40\x89\x42\x89\x43\x89\x45\x89\x46\x89\x47\x89\x48\x89\x49\x89\x4a\x89\x4b\x89\x4c\x89\x4d\x89\x4e\x89\x4f\x89\x50\x89\x51\x89\x52\x89\x53\x89\x54\x89\x55\x89\x56\x89\x57\x89\x58\x89\x59\x89\x5a\x89\x5b\x89\x5c\x89\x5d\x89\x60\x89\x61\x89\x62\x89\x63\x89\x64\x89\x65\x89\x67\x89\x68\x00\x00\x00\x00", /* b600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x69\x89\x6a\x89\x6b\x89\x6c\x89\x6d\x89\x6e\x89\x6f\x89\x70\x89\x71\x89\x72\x89\x73\x89\x74\x89\x75\x89\x76\x89\x77\x89\x78\x89\x79\x89\x7a\x89\x7c\x89\x7d\x89\x7e\x89\x80\x89\x82\x89\x84\x89\x85\x89\x87\x89\x88\x89\x89\x89\x8a\x89\x8b\x89\x8c\x89\x8d\x89\x8e\x89\x8f\x89\x90\x89\x91\x89\x92\x89\x93\x89\x94\x89\x95\x89\x96\x89\x97\x89\x98\x89\x99\x89\x9a\x89\x9b\x89\x9c\x89\x9d\x89\x9e\x89\x9f\x89\xa0\x89\xa1\x89\xa2\x89\xa3\x89\xa4\x89\xa5\x89\xa6\x89\xa7\x89\xa8\x89\xa9\x89\xaa\x89\xab\x89\xac", /* b680 */ "\x00\x00\x89\xad\x89\xae\x89\xaf\x89\xb0\x89\xb1\x89\xb2\x89\xb3\x89\xb4\x89\xb5\x89\xb6\x89\xb7\x89\xb8\x89\xb9\x89\xba\x89\xbb\x89\xbc\x89\xbd\x89\xbe\x89\xbf\x89\xc0\x89\xc3\x89\xcd\x89\xd3\x89\xd4\x89\xd5\x89\xd7\x89\xd8\x89\xd9\x89\xdb\x89\xdd\x89\xdf\x89\xe0\x89\xe1\x89\xe2\x89\xe4\x89\xe7\x89\xe8\x89\xe9\x89\xea\x89\xec\x89\xed\x89\xee\x89\xf0\x89\xf1\x89\xf2\x89\xf4\x89\xf5\x89\xf6\x89\xf7\x89\xf8\x89\xf9\x89\xfa\x89\xfb\x89\xfc\x89\xfd\x89\xfe\x89\xff\x8a\x01\x8a\x02\x8a\x03\x8a\x04\x8a\x05\x8a\x06\x8a\x08\x8a\x09\x8a\x0a\x8a\x0b\x8a\x0c\x8a\x0d\x8a\x0e\x8a\x0f\x8a\x10\x8a\x11\x8a\x12\x8a\x13\x8a\x14\x8a\x15\x8a\x16\x8a\x17\x8a\x18\x8a\x19\x8a\x1a\x8a\x1b\x8a\x1c\x8a\x1d\x8a\x1e\x8a\x1f\x8a\x20\x8a\x21\x8a\x22\x8a\x23\x8a\x24\x8a\x25\x8a\x26\x8a\x27\x8a\x28\x8a\x29\x8a\x2a\x8a\x2b\x8a\x2c\x8a\x2d\x8a\x2e\x8a\x2f\x8a\x30\x8a\x31\x8a\x32\x8a\x33\x8a\x34\x8a\x35\x8a\x36\x8a\x37\x8a\x38\x8a\x39\x8a\x3a\x8a\x3b\x8a\x3c\x8a\x3d\x8a\x3f\x8a\x40\x8a\x41\x8a\x42\x8a\x43\x8a\x44\x8a\x45\x8a\x46\x00\x00\x00\x00", /* b700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x47\x8a\x49\x8a\x4a\x8a\x4b\x8a\x4c\x8a\x4d\x8a\x4e\x8a\x4f\x8a\x50\x8a\x51\x8a\x52\x8a\x53\x8a\x54\x8a\x55\x8a\x56\x8a\x57\x8a\x58\x8a\x59\x8a\x5a\x8a\x5b\x8a\x5c\x8a\x5d\x8a\x5e\x8a\x5f\x8a\x60\x8a\x61\x8a\x62\x8a\x63\x8a\x64\x8a\x65\x8a\x66\x8a\x67\x8a\x68\x8a\x69\x8a\x6a\x8a\x6b\x8a\x6c\x8a\x6d\x8a\x6e\x8a\x6f\x8a\x70\x8a\x71\x8a\x72\x8a\x73\x8a\x74\x8a\x75\x8a\x76\x8a\x77\x8a\x78\x8a\x7a\x8a\x7b\x8a\x7c\x8a\x7d\x8a\x7e\x8a\x7f\x8a\x80\x8a\x81\x8a\x82\x8a\x83\x8a\x84\x8a\x85\x8a\x86\x8a\x87", /* b780 */ "\x00\x00\x8a\x88\x8a\x8b\x8a\x8c\x8a\x8d\x8a\x8e\x8a\x8f\x8a\x90\x8a\x91\x8a\x92\x8a\x94\x8a\x95\x8a\x96\x8a\x97\x8a\x98\x8a\x99\x8a\x9a\x8a\x9b\x8a\x9c\x8a\x9d\x8a\x9e\x8a\x9f\x8a\xa0\x8a\xa1\x8a\xa2\x8a\xa3\x8a\xa4\x8a\xa5\x8a\xa6\x8a\xa7\x8a\xa8\x8a\xa9\x8a\xaa\x8a\xab\x8a\xac\x8a\xad\x8a\xae\x8a\xaf\x8a\xb0\x8a\xb1\x8a\xb2\x8a\xb3\x8a\xb4\x8a\xb5\x8a\xb6\x8a\xb7\x8a\xb8\x8a\xb9\x8a\xba\x8a\xbb\x8a\xbc\x8a\xbd\x8a\xbe\x8a\xbf\x8a\xc0\x8a\xc1\x8a\xc2\x8a\xc3\x8a\xc4\x8a\xc5\x8a\xc6\x8a\xc7\x8a\xc8\x8a\xc9\x8a\xca\x8a\xcb\x8a\xcc\x8a\xcd\x8a\xce\x8a\xcf\x8a\xd0\x8a\xd1\x8a\xd2\x8a\xd3\x8a\xd4\x8a\xd5\x8a\xd6\x8a\xd7\x8a\xd8\x8a\xd9\x8a\xda\x8a\xdb\x8a\xdc\x8a\xdd\x8a\xde\x8a\xdf\x8a\xe0\x8a\xe1\x8a\xe2\x8a\xe3\x8a\xe4\x8a\xe5\x8a\xe6\x8a\xe7\x8a\xe8\x8a\xe9\x8a\xea\x8a\xeb\x8a\xec\x8a\xed\x8a\xee\x8a\xef\x8a\xf0\x8a\xf1\x8a\xf2\x8a\xf3\x8a\xf4\x8a\xf5\x8a\xf6\x8a\xf7\x8a\xf8\x8a\xf9\x8a\xfa\x8a\xfb\x8a\xfc\x8a\xfd\x8a\xfe\x8a\xff\x8b\x00\x8b\x01\x8b\x02\x8b\x03\x8b\x04\x8b\x05\x8b\x06\x8b\x08\x00\x00\x00\x00", /* b800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x09\x8b\x0a\x8b\x0b\x8b\x0c\x8b\x0d\x8b\x0e\x8b\x0f\x8b\x10\x8b\x11\x8b\x12\x8b\x13\x8b\x14\x8b\x15\x8b\x16\x8b\x17\x8b\x18\x8b\x19\x8b\x1a\x8b\x1b\x8b\x1c\x8b\x1d\x8b\x1e\x8b\x1f\x8b\x20\x8b\x21\x8b\x22\x8b\x23\x8b\x24\x8b\x25\x8b\x27\x8b\x28\x8b\x29\x8b\x2a\x8b\x2b\x8b\x2c\x8b\x2d\x8b\x2e\x8b\x2f\x8b\x30\x8b\x31\x8b\x32\x8b\x33\x8b\x34\x8b\x35\x8b\x36\x8b\x37\x8b\x38\x8b\x39\x8b\x3a\x8b\x3b\x8b\x3c\x8b\x3d\x8b\x3e\x8b\x3f\x8b\x40\x8b\x41\x8b\x42\x8b\x43\x8b\x44\x8b\x45\x8b\x46\x8b\x47\x8b\x48", /* b880 */ "\x00\x00\x8b\x49\x8b\x4a\x8b\x4b\x8b\x4c\x8b\x4d\x8b\x4e\x8b\x4f\x8b\x50\x8b\x51\x8b\x52\x8b\x53\x8b\x54\x8b\x55\x8b\x56\x8b\x57\x8b\x58\x8b\x59\x8b\x5a\x8b\x5b\x8b\x5c\x8b\x5d\x8b\x5e\x8b\x5f\x8b\x60\x8b\x61\x8b\x62\x8b\x63\x8b\x64\x8b\x65\x8b\x67\x8b\x68\x8b\x69\x8b\x6a\x8b\x6b\x8b\x6d\x8b\x6e\x8b\x6f\x8b\x70\x8b\x71\x8b\x72\x8b\x73\x8b\x74\x8b\x75\x8b\x76\x8b\x77\x8b\x78\x8b\x79\x8b\x7a\x8b\x7b\x8b\x7c\x8b\x7d\x8b\x7e\x8b\x7f\x8b\x80\x8b\x81\x8b\x82\x8b\x83\x8b\x84\x8b\x85\x8b\x86\x8b\x87\x8b\x88\x8b\x89\x8b\x8a\x8b\x8b\x8b\x8c\x8b\x8d\x8b\x8e\x8b\x8f\x8b\x90\x8b\x91\x8b\x92\x8b\x93\x8b\x94\x8b\x95\x8b\x96\x8b\x97\x8b\x98\x8b\x99\x8b\x9a\x8b\x9b\x8b\x9c\x8b\x9d\x8b\x9e\x8b\x9f\x8b\xac\x8b\xb1\x8b\xbb\x8b\xc7\x8b\xd0\x8b\xea\x8c\x09\x8c\x1e\x8c\x38\x8c\x39\x8c\x3a\x8c\x3b\x8c\x3c\x8c\x3d\x8c\x3e\x8c\x3f\x8c\x40\x8c\x42\x8c\x43\x8c\x44\x8c\x45\x8c\x48\x8c\x4a\x8c\x4b\x8c\x4d\x8c\x4e\x8c\x4f\x8c\x50\x8c\x51\x8c\x52\x8c\x53\x8c\x54\x8c\x56\x8c\x57\x8c\x58\x8c\x59\x8c\x5b\x8c\x5c\x8c\x5d\x8c\x5e\x00\x00\x00\x00", /* b900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x5f\x8c\x60\x8c\x63\x8c\x64\x8c\x65\x8c\x66\x8c\x67\x8c\x68\x8c\x69\x8c\x6c\x8c\x6d\x8c\x6e\x8c\x6f\x8c\x70\x8c\x71\x8c\x72\x8c\x74\x8c\x75\x8c\x76\x8c\x77\x8c\x7b\x8c\x7c\x8c\x7d\x8c\x7e\x8c\x7f\x8c\x80\x8c\x81\x8c\x83\x8c\x84\x8c\x86\x8c\x87\x8c\x88\x8c\x8b\x8c\x8d\x8c\x8e\x8c\x8f\x8c\x90\x8c\x91\x8c\x92\x8c\x93\x8c\x95\x8c\x96\x8c\x97\x8c\x99\x8c\x9a\x8c\x9b\x8c\x9c\x8c\x9d\x8c\x9e\x8c\x9f\x8c\xa0\x8c\xa1\x8c\xa2\x8c\xa3\x8c\xa4\x8c\xa5\x8c\xa6\x8c\xa7\x8c\xa8\x8c\xa9\x8c\xaa\x8c\xab\x8c\xac", /* b980 */ "\x00\x00\x8c\xad\x8c\xae\x8c\xaf\x8c\xb0\x8c\xb1\x8c\xb2\x8c\xb3\x8c\xb4\x8c\xb5\x8c\xb6\x8c\xb7\x8c\xb8\x8c\xb9\x8c\xba\x8c\xbb\x8c\xbc\x8c\xbd\x8c\xbe\x8c\xbf\x8c\xc0\x8c\xc1\x8c\xc2\x8c\xc3\x8c\xc4\x8c\xc5\x8c\xc6\x8c\xc7\x8c\xc8\x8c\xc9\x8c\xca\x8c\xcb\x8c\xcc\x8c\xcd\x8c\xce\x8c\xcf\x8c\xd0\x8c\xd1\x8c\xd2\x8c\xd3\x8c\xd4\x8c\xd5\x8c\xd6\x8c\xd7\x8c\xd8\x8c\xd9\x8c\xda\x8c\xdb\x8c\xdc\x8c\xdd\x8c\xde\x8c\xdf\x8c\xe0\x8c\xe1\x8c\xe2\x8c\xe3\x8c\xe4\x8c\xe5\x8c\xe6\x8c\xe7\x8c\xe8\x8c\xe9\x8c\xea\x8c\xeb\x8c\xec\x8c\xed\x8c\xee\x8c\xef\x8c\xf0\x8c\xf1\x8c\xf2\x8c\xf3\x8c\xf4\x8c\xf5\x8c\xf6\x8c\xf7\x8c\xf8\x8c\xf9\x8c\xfa\x8c\xfb\x8c\xfc\x8c\xfd\x8c\xfe\x8c\xff\x8d\x00\x8d\x01\x8d\x02\x8d\x03\x8d\x04\x8d\x05\x8d\x06\x8d\x07\x8d\x08\x8d\x09\x8d\x0a\x8d\x0b\x8d\x0c\x8d\x0d\x8d\x0e\x8d\x0f\x8d\x10\x8d\x11\x8d\x12\x8d\x13\x8d\x14\x8d\x15\x8d\x16\x8d\x17\x8d\x18\x8d\x19\x8d\x1a\x8d\x1b\x8d\x1c\x8d\x20\x8d\x51\x8d\x52\x8d\x57\x8d\x5f\x8d\x65\x8d\x68\x8d\x69\x8d\x6a\x8d\x6c\x8d\x6e\x8d\x6f\x8d\x71\x00\x00\x00\x00", /* ba00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x72\x8d\x78\x8d\x79\x8d\x7a\x8d\x7b\x8d\x7c\x8d\x7d\x8d\x7e\x8d\x7f\x8d\x80\x8d\x82\x8d\x83\x8d\x86\x8d\x87\x8d\x88\x8d\x89\x8d\x8c\x8d\x8d\x8d\x8e\x8d\x8f\x8d\x90\x8d\x92\x8d\x93\x8d\x95\x8d\x96\x8d\x97\x8d\x98\x8d\x99\x8d\x9a\x8d\x9b\x8d\x9c\x8d\x9d\x8d\x9e\x8d\xa0\x8d\xa1\x8d\xa2\x8d\xa4\x8d\xa5\x8d\xa6\x8d\xa7\x8d\xa8\x8d\xa9\x8d\xaa\x8d\xab\x8d\xac\x8d\xad\x8d\xae\x8d\xaf\x8d\xb0\x8d\xb2\x8d\xb6\x8d\xb7\x8d\xb9\x8d\xbb\x8d\xbd\x8d\xc0\x8d\xc1\x8d\xc2\x8d\xc5\x8d\xc7\x8d\xc8\x8d\xc9\x8d\xca", /* ba80 */ "\x00\x00\x8d\xcd\x8d\xd0\x8d\xd2\x8d\xd3\x8d\xd4\x8d\xd5\x8d\xd8\x8d\xd9\x8d\xdc\x8d\xe0\x8d\xe1\x8d\xe2\x8d\xe5\x8d\xe6\x8d\xe7\x8d\xe9\x8d\xed\x8d\xee\x8d\xf0\x8d\xf1\x8d\xf2\x8d\xf4\x8d\xf6\x8d\xfc\x8d\xfe\x8d\xff\x8e\x00\x8e\x01\x8e\x02\x8e\x03\x8e\x04\x8e\x06\x8e\x07\x8e\x08\x8e\x0b\x8e\x0d\x8e\x0e\x8e\x10\x8e\x11\x8e\x12\x8e\x13\x8e\x15\x8e\x16\x8e\x17\x8e\x18\x8e\x19\x8e\x1a\x8e\x1b\x8e\x1c\x8e\x20\x8e\x21\x8e\x24\x8e\x25\x8e\x26\x8e\x27\x8e\x28\x8e\x2b\x8e\x2d\x8e\x30\x8e\x32\x8e\x33\x8e\x34\x8e\x36\x8e\x37\x8e\x38\x8e\x3b\x8e\x3c\x8e\x3e\x8e\x3f\x8e\x43\x8e\x45\x8e\x46\x8e\x4c\x8e\x4d\x8e\x4e\x8e\x4f\x8e\x50\x8e\x53\x8e\x54\x8e\x55\x8e\x56\x8e\x57\x8e\x58\x8e\x5a\x8e\x5b\x8e\x5c\x8e\x5d\x8e\x5e\x8e\x5f\x8e\x60\x8e\x61\x8e\x62\x8e\x63\x8e\x64\x8e\x65\x8e\x67\x8e\x68\x8e\x6a\x8e\x6b\x8e\x6e\x8e\x71\x8e\x73\x8e\x75\x8e\x77\x8e\x78\x8e\x79\x8e\x7a\x8e\x7b\x8e\x7d\x8e\x7e\x8e\x80\x8e\x82\x8e\x83\x8e\x84\x8e\x86\x8e\x88\x8e\x89\x8e\x8a\x8e\x8b\x8e\x8c\x8e\x8d\x8e\x8e\x8e\x91\x8e\x92\x8e\x93\x00\x00\x00\x00", /* bb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x95\x8e\x96\x8e\x97\x8e\x98\x8e\x99\x8e\x9a\x8e\x9b\x8e\x9d\x8e\x9f\x8e\xa0\x8e\xa1\x8e\xa2\x8e\xa3\x8e\xa4\x8e\xa5\x8e\xa6\x8e\xa7\x8e\xa8\x8e\xa9\x8e\xaa\x8e\xad\x8e\xae\x8e\xb0\x8e\xb1\x8e\xb3\x8e\xb4\x8e\xb5\x8e\xb6\x8e\xb7\x8e\xb8\x8e\xb9\x8e\xbb\x8e\xbc\x8e\xbd\x8e\xbe\x8e\xbf\x8e\xc0\x8e\xc1\x8e\xc2\x8e\xc3\x8e\xc4\x8e\xc5\x8e\xc6\x8e\xc7\x8e\xc8\x8e\xc9\x8e\xca\x8e\xcb\x8e\xcc\x8e\xcd\x8e\xcf\x8e\xd0\x8e\xd1\x8e\xd2\x8e\xd3\x8e\xd4\x8e\xd5\x8e\xd6\x8e\xd7\x8e\xd8\x8e\xd9\x8e\xda\x8e\xdb", /* bb80 */ "\x00\x00\x8e\xdc\x8e\xdd\x8e\xde\x8e\xdf\x8e\xe0\x8e\xe1\x8e\xe2\x8e\xe3\x8e\xe4\x8e\xe5\x8e\xe6\x8e\xe7\x8e\xe8\x8e\xe9\x8e\xea\x8e\xeb\x8e\xec\x8e\xed\x8e\xee\x8e\xef\x8e\xf0\x8e\xf1\x8e\xf2\x8e\xf3\x8e\xf4\x8e\xf5\x8e\xf6\x8e\xf7\x8e\xf8\x8e\xf9\x8e\xfa\x8e\xfb\x8e\xfc\x8e\xfd\x8e\xfe\x8e\xff\x8f\x00\x8f\x01\x8f\x02\x8f\x03\x8f\x04\x8f\x05\x8f\x06\x8f\x07\x8f\x08\x8f\x09\x8f\x0a\x8f\x0b\x8f\x0c\x8f\x0d\x8f\x0e\x8f\x0f\x8f\x10\x8f\x11\x8f\x12\x8f\x13\x8f\x14\x8f\x15\x8f\x16\x8f\x17\x8f\x18\x8f\x19\x8f\x1a\x8f\x1b\x8f\x1c\x8f\x1d\x8f\x1e\x8f\x1f\x8f\x20\x8f\x21\x8f\x22\x8f\x23\x8f\x24\x8f\x25\x8f\x26\x8f\x27\x8f\x28\x8f\x29\x8f\x2a\x8f\x2b\x8f\x2c\x8f\x2d\x8f\x2e\x8f\x2f\x8f\x30\x8f\x31\x8f\x32\x8f\x33\x8f\x34\x8f\x35\x8f\x36\x8f\x37\x8f\x38\x8f\x39\x8f\x3a\x8f\x3b\x8f\x3c\x8f\x3d\x8f\x3e\x8f\x3f\x8f\x40\x8f\x41\x8f\x42\x8f\x43\x8f\x44\x8f\x45\x8f\x46\x8f\x47\x8f\x48\x8f\x49\x8f\x4a\x8f\x4b\x8f\x4c\x8f\x4d\x8f\x4e\x8f\x4f\x8f\x50\x8f\x51\x8f\x52\x8f\x53\x8f\x54\x8f\x55\x8f\x56\x8f\x57\x8f\x58\x00\x00\x00\x00", /* bc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x59\x8f\x5a\x8f\x5b\x8f\x5c\x8f\x5d\x8f\x5e\x8f\x5f\x8f\x60\x8f\x61\x8f\x62\x8f\x63\x8f\x64\x8f\x65\x8f\x6a\x8f\x80\x8f\x8c\x8f\x92\x8f\x9d\x8f\xa0\x8f\xa1\x8f\xa2\x8f\xa4\x8f\xa5\x8f\xa6\x8f\xa7\x8f\xaa\x8f\xac\x8f\xad\x8f\xae\x8f\xaf\x8f\xb2\x8f\xb3\x8f\xb4\x8f\xb5\x8f\xb7\x8f\xb8\x8f\xba\x8f\xbb\x8f\xbc\x8f\xbf\x8f\xc0\x8f\xc3\x8f\xc6\x8f\xc9\x8f\xca\x8f\xcb\x8f\xcc\x8f\xcd\x8f\xcf\x8f\xd2\x8f\xd6\x8f\xd7\x8f\xda\x8f\xe0\x8f\xe1\x8f\xe3\x8f\xe7\x8f\xec\x8f\xef\x8f\xf1\x8f\xf2\x8f\xf4\x8f\xf5", /* bc80 */ "\x00\x00\x8f\xf6\x8f\xfa\x8f\xfb\x8f\xfc\x8f\xfe\x8f\xff\x90\x07\x90\x08\x90\x0c\x90\x0e\x90\x13\x90\x15\x90\x18\x90\x19\x90\x1c\x90\x23\x90\x24\x90\x25\x90\x27\x90\x28\x90\x29\x90\x2a\x90\x2b\x90\x2c\x90\x30\x90\x31\x90\x32\x90\x33\x90\x34\x90\x37\x90\x39\x90\x3a\x90\x3d\x90\x3f\x90\x40\x90\x43\x90\x45\x90\x46\x90\x48\x90\x49\x90\x4a\x90\x4b\x90\x4c\x90\x4e\x90\x54\x90\x55\x90\x56\x90\x59\x90\x5a\x90\x5c\x90\x5d\x90\x5e\x90\x5f\x90\x60\x90\x61\x90\x64\x90\x66\x90\x67\x90\x69\x90\x6a\x90\x6b\x90\x6c\x90\x6f\x90\x70\x90\x71\x90\x72\x90\x73\x90\x76\x90\x77\x90\x78\x90\x79\x90\x7a\x90\x7b\x90\x7c\x90\x7e\x90\x81\x90\x84\x90\x85\x90\x86\x90\x87\x90\x89\x90\x8a\x90\x8c\x90\x8d\x90\x8e\x90\x8f\x90\x90\x90\x92\x90\x94\x90\x96\x90\x98\x90\x9a\x90\x9c\x90\x9e\x90\x9f\x90\xa0\x90\xa4\x90\xa5\x90\xa7\x90\xa8\x90\xa9\x90\xab\x90\xad\x90\xb2\x90\xb7\x90\xbc\x90\xbd\x90\xbf\x90\xc0\x90\xc2\x90\xc3\x90\xc6\x90\xc8\x90\xc9\x90\xcb\x90\xcc\x90\xcd\x90\xd2\x90\xd4\x90\xd5\x90\xd6\x90\xd8\x90\xd9\x90\xda\x90\xde\x00\x00\x00\x00", /* bd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xdf\x90\xe0\x90\xe3\x90\xe4\x90\xe5\x90\xe9\x90\xea\x90\xec\x90\xee\x90\xf0\x90\xf1\x90\xf2\x90\xf3\x90\xf5\x90\xf6\x90\xf7\x90\xf9\x90\xfa\x90\xfb\x90\xfc\x90\xff\x91\x00\x91\x01\x91\x03\x91\x05\x91\x06\x91\x07\x91\x08\x91\x09\x91\x0a\x91\x0b\x91\x0c\x91\x0d\x91\x0e\x91\x0f\x91\x10\x91\x11\x91\x12\x91\x13\x91\x14\x91\x15\x91\x16\x91\x17\x91\x18\x91\x1a\x91\x1b\x91\x1c\x91\x1d\x91\x1f\x91\x20\x91\x21\x91\x24\x91\x25\x91\x26\x91\x27\x91\x28\x91\x29\x91\x2a\x91\x2b\x91\x2c\x91\x2d\x91\x2e\x91\x30", /* bd80 */ "\x00\x00\x91\x32\x91\x33\x91\x34\x91\x35\x91\x36\x91\x37\x91\x38\x91\x3a\x91\x3b\x91\x3c\x91\x3d\x91\x3e\x91\x3f\x91\x40\x91\x41\x91\x42\x91\x44\x91\x45\x91\x47\x91\x48\x91\x51\x91\x53\x91\x54\x91\x55\x91\x56\x91\x58\x91\x59\x91\x5b\x91\x5c\x91\x5f\x91\x60\x91\x66\x91\x67\x91\x68\x91\x6b\x91\x6d\x91\x73\x91\x7a\x91\x7b\x91\x7c\x91\x80\x91\x81\x91\x82\x91\x83\x91\x84\x91\x86\x91\x88\x91\x8a\x91\x8e\x91\x8f\x91\x93\x91\x94\x91\x95\x91\x96\x91\x97\x91\x98\x91\x99\x91\x9c\x91\x9d\x91\x9e\x91\x9f\x91\xa0\x91\xa1\x91\xa4\x91\xa5\x91\xa6\x91\xa7\x91\xa8\x91\xa9\x91\xab\x91\xac\x91\xb0\x91\xb1\x91\xb2\x91\xb3\x91\xb6\x91\xb7\x91\xb8\x91\xb9\x91\xbb\x91\xbc\x91\xbd\x91\xbe\x91\xbf\x91\xc0\x91\xc1\x91\xc2\x91\xc3\x91\xc4\x91\xc5\x91\xc6\x91\xc8\x91\xcb\x91\xd0\x91\xd2\x91\xd3\x91\xd4\x91\xd5\x91\xd6\x91\xd7\x91\xd8\x91\xd9\x91\xda\x91\xdb\x91\xdd\x91\xde\x91\xdf\x91\xe0\x91\xe1\x91\xe2\x91\xe3\x91\xe4\x91\xe5\x91\xe6\x91\xe7\x91\xe8\x91\xe9\x91\xea\x91\xeb\x91\xec\x91\xed\x91\xee\x91\xef\x91\xf0\x91\xf1\x00\x00\x00\x00", /* be00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xf2\x91\xf3\x91\xf4\x91\xf5\x91\xf6\x91\xf7\x91\xf8\x91\xf9\x91\xfa\x91\xfb\x91\xfc\x91\xfd\x91\xfe\x91\xff\x92\x00\x92\x01\x92\x02\x92\x03\x92\x04\x92\x05\x92\x06\x92\x07\x92\x08\x92\x09\x92\x0a\x92\x0b\x92\x0c\x92\x0d\x92\x0e\x92\x0f\x92\x10\x92\x11\x92\x12\x92\x13\x92\x14\x92\x15\x92\x16\x92\x17\x92\x18\x92\x19\x92\x1a\x92\x1b\x92\x1c\x92\x1d\x92\x1e\x92\x1f\x92\x20\x92\x21\x92\x22\x92\x23\x92\x24\x92\x25\x92\x26\x92\x27\x92\x28\x92\x29\x92\x2a\x92\x2b\x92\x2c\x92\x2d\x92\x2e\x92\x2f\x92\x30", /* be80 */ "\x00\x00\x92\x31\x92\x32\x92\x33\x92\x34\x92\x35\x92\x36\x92\x37\x92\x38\x92\x39\x92\x3a\x92\x3b\x92\x3c\x92\x3d\x92\x3e\x92\x3f\x92\x40\x92\x41\x92\x42\x92\x43\x92\x44\x92\x45\x92\x46\x92\x47\x92\x48\x92\x49\x92\x4a\x92\x4b\x92\x4c\x92\x4d\x92\x4e\x92\x4f\x92\x50\x92\x51\x92\x52\x92\x53\x92\x54\x92\x55\x92\x56\x92\x57\x92\x58\x92\x59\x92\x5a\x92\x5b\x92\x5c\x92\x5d\x92\x5e\x92\x5f\x92\x60\x92\x61\x92\x62\x92\x63\x92\x64\x92\x65\x92\x66\x92\x67\x92\x68\x92\x69\x92\x6a\x92\x6b\x92\x6c\x92\x6d\x92\x6e\x92\x6f\x92\x70\x92\x71\x92\x72\x92\x73\x92\x75\x92\x76\x92\x77\x92\x78\x92\x79\x92\x7a\x92\x7b\x92\x7c\x92\x7d\x92\x7e\x92\x7f\x92\x80\x92\x81\x92\x82\x92\x83\x92\x84\x92\x85\x92\x86\x92\x87\x92\x88\x92\x89\x92\x8a\x92\x8b\x92\x8c\x92\x8d\x92\x8f\x92\x90\x92\x91\x92\x92\x92\x93\x92\x94\x92\x95\x92\x96\x92\x97\x92\x98\x92\x99\x92\x9a\x92\x9b\x92\x9c\x92\x9d\x92\x9e\x92\x9f\x92\xa0\x92\xa1\x92\xa2\x92\xa3\x92\xa4\x92\xa5\x92\xa6\x92\xa7\x92\xa8\x92\xa9\x92\xaa\x92\xab\x92\xac\x92\xad\x92\xaf\x92\xb0\x00\x00\x00\x00", /* bf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\xb1\x92\xb2\x92\xb3\x92\xb4\x92\xb5\x92\xb6\x92\xb7\x92\xb8\x92\xb9\x92\xba\x92\xbb\x92\xbc\x92\xbd\x92\xbe\x92\xbf\x92\xc0\x92\xc1\x92\xc2\x92\xc3\x92\xc4\x92\xc5\x92\xc6\x92\xc7\x92\xc9\x92\xca\x92\xcb\x92\xcc\x92\xcd\x92\xce\x92\xcf\x92\xd0\x92\xd1\x92\xd2\x92\xd3\x92\xd4\x92\xd5\x92\xd6\x92\xd7\x92\xd8\x92\xd9\x92\xda\x92\xdb\x92\xdc\x92\xdd\x92\xde\x92\xdf\x92\xe0\x92\xe1\x92\xe2\x92\xe3\x92\xe4\x92\xe5\x92\xe6\x92\xe7\x92\xe8\x92\xe9\x92\xea\x92\xeb\x92\xec\x92\xed\x92\xee\x92\xef\x92\xf0", /* bf80 */ "\x00\x00\x92\xf1\x92\xf2\x92\xf3\x92\xf4\x92\xf5\x92\xf6\x92\xf7\x92\xf8\x92\xf9\x92\xfa\x92\xfb\x92\xfc\x92\xfd\x92\xfe\x92\xff\x93\x00\x93\x01\x93\x02\x93\x03\x93\x04\x93\x05\x93\x06\x93\x07\x93\x08\x93\x09\x93\x0a\x93\x0b\x93\x0c\x93\x0d\x93\x0e\x93\x0f\x93\x10\x93\x11\x93\x12\x93\x13\x93\x14\x93\x15\x93\x16\x93\x17\x93\x18\x93\x19\x93\x1a\x93\x1b\x93\x1c\x93\x1d\x93\x1e\x93\x1f\x93\x20\x93\x21\x93\x22\x93\x23\x93\x24\x93\x25\x93\x26\x93\x27\x93\x28\x93\x29\x93\x2a\x93\x2b\x93\x2c\x93\x2d\x93\x2e\x93\x2f\x93\x30\x93\x31\x93\x32\x93\x33\x93\x34\x93\x35\x93\x36\x93\x37\x93\x38\x93\x39\x93\x3a\x93\x3b\x93\x3c\x93\x3d\x93\x3f\x93\x40\x93\x41\x93\x42\x93\x43\x93\x44\x93\x45\x93\x46\x93\x47\x93\x48\x93\x49\x93\x4a\x93\x4b\x93\x4c\x93\x4d\x93\x4e\x93\x4f\x93\x50\x93\x51\x93\x52\x93\x53\x93\x54\x93\x55\x93\x56\x93\x57\x93\x58\x93\x59\x93\x5a\x93\x5b\x93\x5c\x93\x5d\x93\x5e\x93\x5f\x93\x60\x93\x61\x93\x62\x93\x63\x93\x64\x93\x65\x93\x66\x93\x67\x93\x68\x93\x69\x93\x6b\x93\x6c\x93\x6d\x93\x6e\x93\x6f\x00\x00\x00\x00", /* c000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x70\x93\x71\x93\x72\x93\x73\x93\x74\x93\x75\x93\x76\x93\x77\x93\x78\x93\x79\x93\x7a\x93\x7b\x93\x7c\x93\x7d\x93\x7e\x93\x7f\x93\x80\x93\x81\x93\x82\x93\x83\x93\x84\x93\x85\x93\x86\x93\x87\x93\x88\x93\x89\x93\x8a\x93\x8b\x93\x8c\x93\x8d\x93\x8e\x93\x90\x93\x91\x93\x92\x93\x93\x93\x94\x93\x95\x93\x96\x93\x97\x93\x98\x93\x99\x93\x9a\x93\x9b\x93\x9c\x93\x9d\x93\x9e\x93\x9f\x93\xa0\x93\xa1\x93\xa2\x93\xa3\x93\xa4\x93\xa5\x93\xa6\x93\xa7\x93\xa8\x93\xa9\x93\xaa\x93\xab\x93\xac\x93\xad\x93\xae\x93\xaf", /* c080 */ "\x00\x00\x93\xb0\x93\xb1\x93\xb2\x93\xb3\x93\xb4\x93\xb5\x93\xb6\x93\xb7\x93\xb8\x93\xb9\x93\xba\x93\xbb\x93\xbc\x93\xbd\x93\xbe\x93\xbf\x93\xc0\x93\xc1\x93\xc2\x93\xc3\x93\xc4\x93\xc5\x93\xc6\x93\xc7\x93\xc8\x93\xc9\x93\xcb\x93\xcc\x93\xcd\x93\xce\x93\xcf\x93\xd0\x93\xd1\x93\xd2\x93\xd3\x93\xd4\x93\xd5\x93\xd7\x93\xd8\x93\xd9\x93\xda\x93\xdb\x93\xdc\x93\xdd\x93\xde\x93\xdf\x93\xe0\x93\xe1\x93\xe2\x93\xe3\x93\xe4\x93\xe5\x93\xe6\x93\xe7\x93\xe8\x93\xe9\x93\xea\x93\xeb\x93\xec\x93\xed\x93\xee\x93\xef\x93\xf0\x93\xf1\x93\xf2\x93\xf3\x93\xf4\x93\xf5\x93\xf6\x93\xf7\x93\xf8\x93\xf9\x93\xfa\x93\xfb\x93\xfc\x93\xfd\x93\xfe\x93\xff\x94\x00\x94\x01\x94\x02\x94\x03\x94\x04\x94\x05\x94\x06\x94\x07\x94\x08\x94\x09\x94\x0a\x94\x0b\x94\x0c\x94\x0d\x94\x0e\x94\x0f\x94\x10\x94\x11\x94\x12\x94\x13\x94\x14\x94\x15\x94\x16\x94\x17\x94\x18\x94\x19\x94\x1a\x94\x1b\x94\x1c\x94\x1d\x94\x1e\x94\x1f\x94\x20\x94\x21\x94\x22\x94\x23\x94\x24\x94\x25\x94\x26\x94\x27\x94\x28\x94\x29\x94\x2a\x94\x2b\x94\x2c\x94\x2d\x94\x2e\x00\x00\x00\x00", /* c100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x2f\x94\x30\x94\x31\x94\x32\x94\x33\x94\x34\x94\x35\x94\x36\x94\x37\x94\x38\x94\x39\x94\x3a\x94\x3b\x94\x3c\x94\x3d\x94\x3f\x94\x40\x94\x41\x94\x42\x94\x43\x94\x44\x94\x45\x94\x46\x94\x47\x94\x48\x94\x49\x94\x4a\x94\x4b\x94\x4c\x94\x4d\x94\x4e\x94\x4f\x94\x50\x94\x51\x94\x52\x94\x53\x94\x54\x94\x55\x94\x56\x94\x57\x94\x58\x94\x59\x94\x5a\x94\x5b\x94\x5c\x94\x5d\x94\x5e\x94\x5f\x94\x60\x94\x61\x94\x62\x94\x63\x94\x64\x94\x65\x94\x66\x94\x67\x94\x68\x94\x69\x94\x6a\x94\x6c\x94\x6d\x94\x6e\x94\x6f", /* c180 */ "\x00\x00\x94\x70\x94\x71\x94\x72\x94\x73\x94\x74\x94\x75\x94\x76\x94\x77\x94\x78\x94\x79\x94\x7a\x94\x7b\x94\x7c\x94\x7d\x94\x7e\x94\x7f\x94\x80\x94\x81\x94\x82\x94\x83\x94\x84\x94\x91\x94\x96\x94\x98\x94\xc7\x94\xcf\x94\xd3\x94\xd4\x94\xda\x94\xe6\x94\xfb\x95\x1c\x95\x20\x95\x27\x95\x33\x95\x3d\x95\x43\x95\x48\x95\x4b\x95\x55\x95\x5a\x95\x60\x95\x6e\x95\x74\x95\x75\x95\x77\x95\x78\x95\x79\x95\x7a\x95\x7b\x95\x7c\x95\x7d\x95\x7e\x95\x80\x95\x81\x95\x82\x95\x83\x95\x84\x95\x85\x95\x86\x95\x87\x95\x88\x95\x89\x95\x8a\x95\x8b\x95\x8c\x95\x8d\x95\x8e\x95\x8f\x95\x90\x95\x91\x95\x92\x95\x93\x95\x94\x95\x95\x95\x96\x95\x97\x95\x98\x95\x99\x95\x9a\x95\x9b\x95\x9c\x95\x9d\x95\x9e\x95\x9f\x95\xa0\x95\xa1\x95\xa2\x95\xa3\x95\xa4\x95\xa5\x95\xa6\x95\xa7\x95\xa8\x95\xa9\x95\xaa\x95\xab\x95\xac\x95\xad\x95\xae\x95\xaf\x95\xb0\x95\xb1\x95\xb2\x95\xb3\x95\xb4\x95\xb5\x95\xb6\x95\xb7\x95\xb8\x95\xb9\x95\xba\x95\xbb\x95\xbc\x95\xbd\x95\xbe\x95\xbf\x95\xc0\x95\xc1\x95\xc2\x95\xc3\x95\xc4\x95\xc5\x95\xc6\x95\xc7\x00\x00\x00\x00", /* c200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\xc8\x95\xc9\x95\xca\x95\xcb\x95\xcc\x95\xcd\x95\xce\x95\xcf\x95\xd0\x95\xd1\x95\xd2\x95\xd3\x95\xd4\x95\xd5\x95\xd6\x95\xd7\x95\xd8\x95\xd9\x95\xda\x95\xdb\x95\xdc\x95\xdd\x95\xde\x95\xdf\x95\xe0\x95\xe1\x95\xe2\x95\xe3\x95\xe4\x95\xe5\x95\xe6\x95\xe7\x95\xec\x95\xff\x96\x07\x96\x13\x96\x18\x96\x1b\x96\x1e\x96\x20\x96\x23\x96\x24\x96\x25\x96\x26\x96\x27\x96\x28\x96\x29\x96\x2b\x96\x2c\x96\x2d\x96\x2f\x96\x30\x96\x37\x96\x38\x96\x39\x96\x3a\x96\x3e\x96\x41\x96\x43\x96\x4a\x96\x4e\x96\x4f\x96\x51", /* c280 */ "\x00\x00\x96\x52\x96\x53\x96\x56\x96\x57\x96\x58\x96\x59\x96\x5a\x96\x5c\x96\x5d\x96\x5e\x96\x60\x96\x63\x96\x65\x96\x66\x96\x6b\x96\x6d\x96\x6e\x96\x6f\x96\x70\x96\x71\x96\x73\x96\x78\x96\x79\x96\x7a\x96\x7b\x96\x7c\x96\x7d\x96\x7e\x96\x7f\x96\x80\x96\x81\x96\x82\x96\x83\x96\x84\x96\x87\x96\x89\x96\x8a\x96\x8c\x96\x8e\x96\x91\x96\x92\x96\x93\x96\x95\x96\x96\x96\x9a\x96\x9b\x96\x9d\x96\x9e\x96\x9f\x96\xa0\x96\xa1\x96\xa2\x96\xa3\x96\xa4\x96\xa5\x96\xa6\x96\xa8\x96\xa9\x96\xaa\x96\xab\x96\xac\x96\xad\x96\xae\x96\xaf\x96\xb1\x96\xb2\x96\xb4\x96\xb5\x96\xb7\x96\xb8\x96\xba\x96\xbb\x96\xbf\x96\xc2\x96\xc3\x96\xc8\x96\xca\x96\xcb\x96\xd0\x96\xd1\x96\xd3\x96\xd4\x96\xd6\x96\xd7\x96\xd8\x96\xd9\x96\xda\x96\xdb\x96\xdc\x96\xdd\x96\xde\x96\xdf\x96\xe1\x96\xe2\x96\xe3\x96\xe4\x96\xe5\x96\xe6\x96\xe7\x96\xeb\x96\xec\x96\xed\x96\xee\x96\xf0\x96\xf1\x96\xf2\x96\xf4\x96\xf5\x96\xf8\x96\xfa\x96\xfb\x96\xfc\x96\xfd\x96\xff\x97\x02\x97\x03\x97\x05\x97\x0a\x97\x0b\x97\x0c\x97\x10\x97\x11\x97\x12\x97\x14\x97\x15\x00\x00\x00\x00", /* c300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x17\x97\x18\x97\x19\x97\x1a\x97\x1b\x97\x1d\x97\x1f\x97\x20\x97\x21\x97\x22\x97\x23\x97\x24\x97\x25\x97\x26\x97\x27\x97\x28\x97\x29\x97\x2b\x97\x2c\x97\x2e\x97\x2f\x97\x31\x97\x33\x97\x34\x97\x35\x97\x36\x97\x37\x97\x3a\x97\x3b\x97\x3c\x97\x3d\x97\x3f\x97\x40\x97\x41\x97\x42\x97\x43\x97\x44\x97\x45\x97\x46\x97\x47\x97\x48\x97\x49\x97\x4a\x97\x4b\x97\x4c\x97\x4d\x97\x4e\x97\x4f\x97\x50\x97\x51\x97\x54\x97\x55\x97\x57\x97\x58\x97\x5a\x97\x5c\x97\x5d\x97\x5f\x97\x63\x97\x64\x97\x66\x97\x67\x97\x68", /* c380 */ "\x00\x00\x97\x6a\x97\x6b\x97\x6c\x97\x6d\x97\x6e\x97\x6f\x97\x70\x97\x71\x97\x72\x97\x75\x97\x77\x97\x78\x97\x79\x97\x7a\x97\x7b\x97\x7d\x97\x7e\x97\x7f\x97\x80\x97\x81\x97\x82\x97\x83\x97\x84\x97\x86\x97\x87\x97\x88\x97\x89\x97\x8a\x97\x8c\x97\x8e\x97\x8f\x97\x90\x97\x93\x97\x95\x97\x96\x97\x97\x97\x99\x97\x9a\x97\x9b\x97\x9c\x97\x9d\x97\x9e\x97\x9f\x97\xa1\x97\xa2\x97\xa4\x97\xa5\x97\xa6\x97\xa7\x97\xa8\x97\xa9\x97\xaa\x97\xac\x97\xae\x97\xb0\x97\xb1\x97\xb3\x97\xb5\x97\xb6\x97\xb7\x97\xb8\x97\xb9\x97\xba\x97\xbb\x97\xbc\x97\xbd\x97\xbe\x97\xbf\x97\xc0\x97\xc1\x97\xc2\x97\xc3\x97\xc4\x97\xc5\x97\xc6\x97\xc7\x97\xc8\x97\xc9\x97\xca\x97\xcb\x97\xcc\x97\xcd\x97\xce\x97\xcf\x97\xd0\x97\xd1\x97\xd2\x97\xd3\x97\xd4\x97\xd5\x97\xd6\x97\xd7\x97\xd8\x97\xd9\x97\xda\x97\xdb\x97\xdc\x97\xdd\x97\xde\x97\xdf\x97\xe0\x97\xe1\x97\xe2\x97\xe3\x97\xe4\x97\xe5\x97\xe8\x97\xee\x97\xef\x97\xf0\x97\xf1\x97\xf2\x97\xf4\x97\xf7\x97\xf8\x97\xf9\x97\xfa\x97\xfb\x97\xfc\x97\xfd\x97\xfe\x97\xff\x98\x00\x98\x01\x98\x02\x00\x00\x00\x00", /* c400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x03\x98\x04\x98\x05\x98\x06\x98\x07\x98\x08\x98\x09\x98\x0a\x98\x0b\x98\x0c\x98\x0d\x98\x0e\x98\x0f\x98\x10\x98\x11\x98\x12\x98\x13\x98\x14\x98\x15\x98\x16\x98\x17\x98\x18\x98\x19\x98\x1a\x98\x1b\x98\x1c\x98\x1d\x98\x1e\x98\x1f\x98\x20\x98\x21\x98\x22\x98\x23\x98\x24\x98\x25\x98\x26\x98\x27\x98\x28\x98\x29\x98\x2a\x98\x2b\x98\x2c\x98\x2d\x98\x2e\x98\x2f\x98\x30\x98\x31\x98\x32\x98\x33\x98\x34\x98\x35\x98\x36\x98\x37\x98\x38\x98\x39\x98\x3a\x98\x3b\x98\x3c\x98\x3d\x98\x3e\x98\x3f\x98\x40\x98\x41", /* c480 */ "\x00\x00\x98\x42\x98\x43\x98\x44\x98\x45\x98\x46\x98\x47\x98\x48\x98\x49\x98\x4a\x98\x4b\x98\x4c\x98\x4d\x98\x4e\x98\x4f\x98\x50\x98\x51\x98\x52\x98\x53\x98\x54\x98\x55\x98\x56\x98\x57\x98\x58\x98\x59\x98\x5a\x98\x5b\x98\x5c\x98\x5d\x98\x5e\x98\x5f\x98\x60\x98\x61\x98\x62\x98\x63\x98\x64\x98\x65\x98\x66\x98\x67\x98\x68\x98\x69\x98\x6a\x98\x6b\x98\x6c\x98\x6d\x98\x6e\x98\x6f\x98\x70\x98\x71\x98\x72\x98\x73\x98\x74\x98\x8b\x98\x8e\x98\x92\x98\x95\x98\x99\x98\xa3\x98\xa8\x98\xa9\x98\xaa\x98\xab\x98\xac\x98\xad\x98\xae\x98\xaf\x98\xb0\x98\xb1\x98\xb2\x98\xb3\x98\xb4\x98\xb5\x98\xb6\x98\xb7\x98\xb8\x98\xb9\x98\xba\x98\xbb\x98\xbc\x98\xbd\x98\xbe\x98\xbf\x98\xc0\x98\xc1\x98\xc2\x98\xc3\x98\xc4\x98\xc5\x98\xc6\x98\xc7\x98\xc8\x98\xc9\x98\xca\x98\xcb\x98\xcc\x98\xcd\x98\xcf\x98\xd0\x98\xd4\x98\xd6\x98\xd7\x98\xdb\x98\xdc\x98\xdd\x98\xe0\x98\xe1\x98\xe2\x98\xe3\x98\xe4\x98\xe5\x98\xe6\x98\xe9\x98\xea\x98\xeb\x98\xec\x98\xed\x98\xee\x98\xef\x98\xf0\x98\xf1\x98\xf2\x98\xf3\x98\xf4\x98\xf5\x98\xf6\x98\xf7\x00\x00\x00\x00", /* c500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\xf8\x98\xf9\x98\xfa\x98\xfb\x98\xfc\x98\xfd\x98\xfe\x98\xff\x99\x00\x99\x01\x99\x02\x99\x03\x99\x04\x99\x05\x99\x06\x99\x07\x99\x08\x99\x09\x99\x0a\x99\x0b\x99\x0c\x99\x0e\x99\x0f\x99\x11\x99\x12\x99\x13\x99\x14\x99\x15\x99\x16\x99\x17\x99\x18\x99\x19\x99\x1a\x99\x1b\x99\x1c\x99\x1d\x99\x1e\x99\x1f\x99\x20\x99\x21\x99\x22\x99\x23\x99\x24\x99\x25\x99\x26\x99\x27\x99\x28\x99\x29\x99\x2a\x99\x2b\x99\x2c\x99\x2d\x99\x2f\x99\x30\x99\x31\x99\x32\x99\x33\x99\x34\x99\x35\x99\x36\x99\x37\x99\x38\x99\x39", /* c580 */ "\x00\x00\x99\x3a\x99\x3b\x99\x3c\x99\x3d\x99\x3e\x99\x3f\x99\x40\x99\x41\x99\x42\x99\x43\x99\x44\x99\x45\x99\x46\x99\x47\x99\x48\x99\x49\x99\x4a\x99\x4b\x99\x4c\x99\x4d\x99\x4e\x99\x4f\x99\x50\x99\x51\x99\x52\x99\x53\x99\x56\x99\x57\x99\x58\x99\x59\x99\x5a\x99\x5b\x99\x5c\x99\x5d\x99\x5e\x99\x5f\x99\x60\x99\x61\x99\x62\x99\x64\x99\x66\x99\x73\x99\x78\x99\x79\x99\x7b\x99\x7e\x99\x82\x99\x83\x99\x89\x99\x8c\x99\x8e\x99\x9a\x99\x9b\x99\x9c\x99\x9d\x99\x9e\x99\x9f\x99\xa0\x99\xa1\x99\xa2\x99\xa3\x99\xa4\x99\xa6\x99\xa7\x99\xa9\x99\xaa\x99\xab\x99\xac\x99\xad\x99\xae\x99\xaf\x99\xb0\x99\xb1\x99\xb2\x99\xb3\x99\xb4\x99\xb5\x99\xb6\x99\xb7\x99\xb8\x99\xb9\x99\xba\x99\xbb\x99\xbc\x99\xbd\x99\xbe\x99\xbf\x99\xc0\x99\xc1\x99\xc2\x99\xc3\x99\xc4\x99\xc5\x99\xc6\x99\xc7\x99\xc8\x99\xc9\x99\xca\x99\xcb\x99\xcc\x99\xcd\x99\xce\x99\xcf\x99\xd0\x99\xd1\x99\xd2\x99\xd3\x99\xd4\x99\xd5\x99\xd6\x99\xd7\x99\xd8\x99\xd9\x99\xda\x99\xdb\x99\xdc\x99\xdd\x99\xde\x99\xdf\x99\xe0\x99\xe1\x99\xe2\x99\xe3\x99\xe4\x99\xe5\x00\x00\x00\x00", /* c600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xe6\x99\xe7\x99\xe8\x99\xe9\x99\xea\x99\xeb\x99\xec\x99\xed\x99\xee\x99\xef\x99\xf0\x99\xf1\x99\xf2\x99\xf3\x99\xf4\x99\xf5\x99\xf6\x99\xf7\x99\xf8\x99\xf9\x99\xfa\x99\xfb\x99\xfc\x99\xfd\x99\xfe\x99\xff\x9a\x00\x9a\x01\x9a\x02\x9a\x03\x9a\x04\x9a\x05\x9a\x06\x9a\x07\x9a\x08\x9a\x09\x9a\x0a\x9a\x0b\x9a\x0c\x9a\x0d\x9a\x0e\x9a\x0f\x9a\x10\x9a\x11\x9a\x12\x9a\x13\x9a\x14\x9a\x15\x9a\x16\x9a\x17\x9a\x18\x9a\x19\x9a\x1a\x9a\x1b\x9a\x1c\x9a\x1d\x9a\x1e\x9a\x1f\x9a\x20\x9a\x21\x9a\x22\x9a\x23\x9a\x24", /* c680 */ "\x00\x00\x9a\x25\x9a\x26\x9a\x27\x9a\x28\x9a\x29\x9a\x2a\x9a\x2b\x9a\x2c\x9a\x2d\x9a\x2e\x9a\x2f\x9a\x30\x9a\x31\x9a\x32\x9a\x33\x9a\x34\x9a\x35\x9a\x36\x9a\x37\x9a\x38\x9a\x39\x9a\x3a\x9a\x3b\x9a\x3c\x9a\x3d\x9a\x3e\x9a\x3f\x9a\x40\x9a\x41\x9a\x42\x9a\x43\x9a\x44\x9a\x45\x9a\x46\x9a\x47\x9a\x48\x9a\x49\x9a\x4a\x9a\x4b\x9a\x4c\x9a\x4d\x9a\x4e\x9a\x4f\x9a\x50\x9a\x51\x9a\x52\x9a\x53\x9a\x54\x9a\x55\x9a\x56\x9a\x57\x9a\x58\x9a\x59\x9a\x5a\x9a\x5b\x9a\x5c\x9a\x5d\x9a\x5e\x9a\x5f\x9a\x60\x9a\x61\x9a\x62\x9a\x63\x9a\x64\x9a\x65\x9a\x66\x9a\x67\x9a\x68\x9a\x69\x9a\x6a\x9a\x6b\x9a\x72\x9a\x83\x9a\x89\x9a\x8d\x9a\x8e\x9a\x94\x9a\x95\x9a\x99\x9a\xa6\x9a\xa9\x9a\xaa\x9a\xab\x9a\xac\x9a\xad\x9a\xae\x9a\xaf\x9a\xb2\x9a\xb3\x9a\xb4\x9a\xb5\x9a\xb9\x9a\xbb\x9a\xbd\x9a\xbe\x9a\xbf\x9a\xc3\x9a\xc4\x9a\xc6\x9a\xc7\x9a\xc8\x9a\xc9\x9a\xca\x9a\xcd\x9a\xce\x9a\xcf\x9a\xd0\x9a\xd2\x9a\xd4\x9a\xd5\x9a\xd6\x9a\xd7\x9a\xd9\x9a\xda\x9a\xdb\x9a\xdc\x9a\xdd\x9a\xde\x9a\xe0\x9a\xe2\x9a\xe3\x9a\xe4\x9a\xe5\x9a\xe7\x9a\xe8\x00\x00\x00\x00", /* c700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xe9\x9a\xea\x9a\xec\x9a\xee\x9a\xf0\x9a\xf1\x9a\xf2\x9a\xf3\x9a\xf4\x9a\xf5\x9a\xf6\x9a\xf7\x9a\xf8\x9a\xfa\x9a\xfc\x9a\xfd\x9a\xfe\x9a\xff\x9b\x00\x9b\x01\x9b\x02\x9b\x04\x9b\x05\x9b\x06\x9b\x07\x9b\x09\x9b\x0a\x9b\x0b\x9b\x0c\x9b\x0d\x9b\x0e\x9b\x10\x9b\x11\x9b\x12\x9b\x14\x9b\x15\x9b\x16\x9b\x17\x9b\x18\x9b\x19\x9b\x1a\x9b\x1b\x9b\x1c\x9b\x1d\x9b\x1e\x9b\x20\x9b\x21\x9b\x22\x9b\x24\x9b\x25\x9b\x26\x9b\x27\x9b\x28\x9b\x29\x9b\x2a\x9b\x2b\x9b\x2c\x9b\x2d\x9b\x2e\x9b\x30\x9b\x31\x9b\x33\x9b\x34", /* c780 */ "\x00\x00\x9b\x35\x9b\x36\x9b\x37\x9b\x38\x9b\x39\x9b\x3a\x9b\x3d\x9b\x3e\x9b\x3f\x9b\x40\x9b\x46\x9b\x4a\x9b\x4b\x9b\x4c\x9b\x4e\x9b\x50\x9b\x52\x9b\x53\x9b\x55\x9b\x56\x9b\x57\x9b\x58\x9b\x59\x9b\x5a\x9b\x5b\x9b\x5c\x9b\x5d\x9b\x5e\x9b\x5f\x9b\x60\x9b\x61\x9b\x62\x9b\x63\x9b\x64\x9b\x65\x9b\x66\x9b\x67\x9b\x68\x9b\x69\x9b\x6a\x9b\x6b\x9b\x6c\x9b\x6d\x9b\x6e\x9b\x6f\x9b\x70\x9b\x71\x9b\x72\x9b\x73\x9b\x74\x9b\x75\x9b\x76\x9b\x77\x9b\x78\x9b\x79\x9b\x7a\x9b\x7b\x9b\x7c\x9b\x7d\x9b\x7e\x9b\x7f\x9b\x80\x9b\x81\x9b\x82\x9b\x83\x9b\x84\x9b\x85\x9b\x86\x9b\x87\x9b\x88\x9b\x89\x9b\x8a\x9b\x8b\x9b\x8c\x9b\x8d\x9b\x8e\x9b\x8f\x9b\x90\x9b\x91\x9b\x92\x9b\x93\x9b\x94\x9b\x95\x9b\x96\x9b\x97\x9b\x98\x9b\x99\x9b\x9a\x9b\x9b\x9b\x9c\x9b\x9d\x9b\x9e\x9b\x9f\x9b\xa0\x9b\xa1\x9b\xa2\x9b\xa3\x9b\xa4\x9b\xa5\x9b\xa6\x9b\xa7\x9b\xa8\x9b\xa9\x9b\xaa\x9b\xab\x9b\xac\x9b\xad\x9b\xae\x9b\xaf\x9b\xb0\x9b\xb1\x9b\xb2\x9b\xb3\x9b\xb4\x9b\xb5\x9b\xb6\x9b\xb7\x9b\xb8\x9b\xb9\x9b\xba\x9b\xbb\x9b\xbc\x9b\xbd\x9b\xbe\x9b\xbf\x00\x00\x00\x00", /* c800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xc0\x9b\xc1\x9b\xc2\x9b\xc3\x9b\xc4\x9b\xc5\x9b\xc6\x9b\xc7\x9b\xc8\x9b\xc9\x9b\xca\x9b\xcb\x9b\xcc\x9b\xcd\x9b\xce\x9b\xcf\x9b\xd0\x9b\xd1\x9b\xd2\x9b\xd3\x9b\xd4\x9b\xd5\x9b\xd6\x9b\xd7\x9b\xd8\x9b\xd9\x9b\xda\x9b\xdb\x9b\xdc\x9b\xdd\x9b\xde\x9b\xdf\x9b\xe0\x9b\xe1\x9b\xe2\x9b\xe3\x9b\xe4\x9b\xe5\x9b\xe6\x9b\xe7\x9b\xe8\x9b\xe9\x9b\xea\x9b\xeb\x9b\xec\x9b\xed\x9b\xee\x9b\xef\x9b\xf0\x9b\xf1\x9b\xf2\x9b\xf3\x9b\xf4\x9b\xf5\x9b\xf6\x9b\xf7\x9b\xf8\x9b\xf9\x9b\xfa\x9b\xfb\x9b\xfc\x9b\xfd\x9b\xfe", /* c880 */ "\x00\x00\x9b\xff\x9c\x00\x9c\x01\x9c\x02\x9c\x03\x9c\x04\x9c\x05\x9c\x06\x9c\x07\x9c\x08\x9c\x09\x9c\x0a\x9c\x0b\x9c\x0c\x9c\x0d\x9c\x0e\x9c\x0f\x9c\x10\x9c\x11\x9c\x12\x9c\x13\x9c\x14\x9c\x15\x9c\x16\x9c\x17\x9c\x18\x9c\x19\x9c\x1a\x9c\x1b\x9c\x1c\x9c\x1d\x9c\x1e\x9c\x1f\x9c\x20\x9c\x21\x9c\x22\x9c\x23\x9c\x24\x9c\x25\x9c\x26\x9c\x27\x9c\x28\x9c\x29\x9c\x2a\x9c\x2b\x9c\x2c\x9c\x2d\x9c\x2e\x9c\x2f\x9c\x30\x9c\x31\x9c\x32\x9c\x33\x9c\x34\x9c\x35\x9c\x36\x9c\x37\x9c\x38\x9c\x39\x9c\x3a\x9c\x3b\x9c\x3c\x9c\x3d\x9c\x3e\x9c\x3f\x9c\x40\x9c\x41\x9c\x42\x9c\x43\x9c\x44\x9c\x45\x9c\x46\x9c\x47\x9c\x48\x9c\x49\x9c\x4a\x9c\x4b\x9c\x4c\x9c\x4d\x9c\x4e\x9c\x4f\x9c\x50\x9c\x51\x9c\x52\x9c\x53\x9c\x54\x9c\x55\x9c\x56\x9c\x57\x9c\x58\x9c\x59\x9c\x5a\x9c\x5b\x9c\x5c\x9c\x5d\x9c\x5e\x9c\x5f\x9c\x60\x9c\x61\x9c\x62\x9c\x63\x9c\x64\x9c\x65\x9c\x66\x9c\x67\x9c\x68\x9c\x69\x9c\x6a\x9c\x6b\x9c\x6c\x9c\x6d\x9c\x6e\x9c\x6f\x9c\x70\x9c\x71\x9c\x72\x9c\x73\x9c\x74\x9c\x75\x9c\x76\x9c\x77\x9c\x78\x9c\x79\x9c\x7a\x9c\x7b\x00\x00\x00\x00", /* c900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x7d\x9c\x7e\x9c\x80\x9c\x83\x9c\x84\x9c\x89\x9c\x8a\x9c\x8c\x9c\x8f\x9c\x93\x9c\x96\x9c\x97\x9c\x98\x9c\x99\x9c\x9d\x9c\xaa\x9c\xac\x9c\xaf\x9c\xb9\x9c\xbe\x9c\xbf\x9c\xc0\x9c\xc1\x9c\xc2\x9c\xc8\x9c\xc9\x9c\xd1\x9c\xd2\x9c\xda\x9c\xdb\x9c\xe0\x9c\xe1\x9c\xe3\x9c\xe4\x9c\xe5\x9c\xe6\x9c\xe7\x9c\xe8\x9c\xe9\x9c\xea\x9c\xeb\x9c\xec\x9c\xed\x9c\xee\x9c\xef\x9c\xf0\x9c\xf1\x9c\xf2\x9c\xf3\x9c\xf4\x9c\xf5\x9c\xf6\x9c\xf7\x9c\xf8\x9c\xf9\x9c\xfa\x9c\xfb\x9c\xfc\x9c\xfd\x9c\xfe\x9c\xff\x9d\x00\x9d\x01", /* c980 */ "\x00\x00\x9d\x02\x9d\x03\x9d\x04\x9d\x05\x9d\x06\x9d\x07\x9d\x08\x9d\x09\x9d\x0a\x9d\x0b\x9d\x0c\x9d\x0d\x9d\x0e\x9d\x0f\x9d\x10\x9d\x11\x9d\x12\x9d\x13\x9d\x14\x9d\x15\x9d\x16\x9d\x17\x9d\x18\x9d\x19\x9d\x1a\x9d\x1b\x9d\x1c\x9d\x1d\x9d\x1e\x9d\x1f\x9d\x20\x9d\x21\x9d\x22\x9d\x23\x9d\x24\x9d\x25\x9d\x26\x9d\x27\x9d\x28\x9d\x29\x9d\x2a\x9d\x2b\x9d\x2c\x9d\x2d\x9d\x2e\x9d\x2f\x9d\x30\x9d\x31\x9d\x32\x9d\x33\x9d\x34\x9d\x35\x9d\x36\x9d\x37\x9d\x38\x9d\x39\x9d\x3a\x9d\x3b\x9d\x3c\x9d\x3d\x9d\x3e\x9d\x3f\x9d\x40\x9d\x41\x9d\x42\x9d\x43\x9d\x44\x9d\x45\x9d\x46\x9d\x47\x9d\x48\x9d\x49\x9d\x4a\x9d\x4b\x9d\x4c\x9d\x4d\x9d\x4e\x9d\x4f\x9d\x50\x9d\x51\x9d\x52\x9d\x53\x9d\x54\x9d\x55\x9d\x56\x9d\x57\x9d\x58\x9d\x59\x9d\x5a\x9d\x5b\x9d\x5c\x9d\x5d\x9d\x5e\x9d\x5f\x9d\x60\x9d\x61\x9d\x62\x9d\x63\x9d\x64\x9d\x65\x9d\x66\x9d\x67\x9d\x68\x9d\x69\x9d\x6a\x9d\x6b\x9d\x6c\x9d\x6d\x9d\x6e\x9d\x6f\x9d\x70\x9d\x71\x9d\x72\x9d\x73\x9d\x74\x9d\x75\x9d\x76\x9d\x77\x9d\x78\x9d\x79\x9d\x7a\x9d\x7b\x9d\x7c\x9d\x7d\x9d\x7e\x00\x00\x00\x00", /* ca00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x7f\x9d\x80\x9d\x81\x9d\x82\x9d\x83\x9d\x84\x9d\x85\x9d\x86\x9d\x87\x9d\x88\x9d\x89\x9d\x8a\x9d\x8b\x9d\x8c\x9d\x8d\x9d\x8e\x9d\x8f\x9d\x90\x9d\x91\x9d\x92\x9d\x93\x9d\x94\x9d\x95\x9d\x96\x9d\x97\x9d\x98\x9d\x99\x9d\x9a\x9d\x9b\x9d\x9c\x9d\x9d\x9d\x9e\x9d\x9f\x9d\xa0\x9d\xa1\x9d\xa2\x9d\xa3\x9d\xa4\x9d\xa5\x9d\xa6\x9d\xa7\x9d\xa8\x9d\xa9\x9d\xaa\x9d\xab\x9d\xac\x9d\xad\x9d\xae\x9d\xaf\x9d\xb0\x9d\xb1\x9d\xb2\x9d\xb3\x9d\xb4\x9d\xb5\x9d\xb6\x9d\xb7\x9d\xb8\x9d\xb9\x9d\xba\x9d\xbb\x9d\xbc\x9d\xbd", /* ca80 */ "\x00\x00\x9d\xbe\x9d\xbf\x9d\xc0\x9d\xc1\x9d\xc2\x9d\xc3\x9d\xc4\x9d\xc5\x9d\xc6\x9d\xc7\x9d\xc8\x9d\xc9\x9d\xca\x9d\xcb\x9d\xcc\x9d\xcd\x9d\xce\x9d\xcf\x9d\xd0\x9d\xd1\x9d\xd2\x9d\xd3\x9d\xd4\x9d\xd5\x9d\xd6\x9d\xd7\x9d\xd8\x9d\xd9\x9d\xda\x9d\xdb\x9d\xdc\x9d\xdd\x9d\xde\x9d\xdf\x9d\xe0\x9d\xe1\x9d\xe2\x9d\xe3\x9d\xe4\x9d\xe5\x9d\xe6\x9d\xe7\x9d\xe8\x9d\xe9\x9d\xea\x9d\xeb\x9d\xec\x9d\xed\x9d\xee\x9d\xef\x9d\xf0\x9d\xf1\x9d\xf2\x9d\xf3\x9d\xf4\x9d\xf5\x9d\xf6\x9d\xf7\x9d\xf8\x9d\xf9\x9d\xfa\x9d\xfb\x9d\xfc\x9d\xfd\x9d\xfe\x9d\xff\x9e\x00\x9e\x01\x9e\x02\x9e\x03\x9e\x04\x9e\x05\x9e\x06\x9e\x07\x9e\x08\x9e\x09\x9e\x0a\x9e\x0b\x9e\x0c\x9e\x0d\x9e\x0e\x9e\x0f\x9e\x10\x9e\x11\x9e\x12\x9e\x13\x9e\x14\x9e\x15\x9e\x16\x9e\x17\x9e\x18\x9e\x19\x9e\x1a\x9e\x1b\x9e\x1c\x9e\x1d\x9e\x1e\x9e\x24\x9e\x27\x9e\x2e\x9e\x30\x9e\x34\x9e\x3b\x9e\x3c\x9e\x40\x9e\x4d\x9e\x50\x9e\x52\x9e\x53\x9e\x54\x9e\x56\x9e\x59\x9e\x5d\x9e\x5f\x9e\x60\x9e\x61\x9e\x62\x9e\x65\x9e\x6e\x9e\x6f\x9e\x72\x9e\x74\x9e\x75\x9e\x76\x9e\x77\x00\x00\x00\x00", /* cb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x78\x9e\x79\x9e\x7a\x9e\x7b\x9e\x7c\x9e\x7d\x9e\x80\x9e\x81\x9e\x83\x9e\x84\x9e\x85\x9e\x86\x9e\x89\x9e\x8a\x9e\x8c\x9e\x8d\x9e\x8e\x9e\x8f\x9e\x90\x9e\x91\x9e\x94\x9e\x95\x9e\x96\x9e\x97\x9e\x98\x9e\x99\x9e\x9a\x9e\x9b\x9e\x9c\x9e\x9e\x9e\xa0\x9e\xa1\x9e\xa2\x9e\xa3\x9e\xa4\x9e\xa5\x9e\xa7\x9e\xa8\x9e\xa9\x9e\xaa\x9e\xab\x9e\xac\x9e\xad\x9e\xae\x9e\xaf\x9e\xb0\x9e\xb1\x9e\xb2\x9e\xb3\x9e\xb5\x9e\xb6\x9e\xb7\x9e\xb9\x9e\xba\x9e\xbc\x9e\xbf\x9e\xc0\x9e\xc1\x9e\xc2\x9e\xc3\x9e\xc5\x9e\xc6\x9e\xc7", /* cb80 */ "\x00\x00\x9e\xc8\x9e\xca\x9e\xcb\x9e\xcc\x9e\xd0\x9e\xd2\x9e\xd3\x9e\xd5\x9e\xd6\x9e\xd7\x9e\xd9\x9e\xda\x9e\xde\x9e\xe1\x9e\xe3\x9e\xe4\x9e\xe6\x9e\xe8\x9e\xeb\x9e\xec\x9e\xed\x9e\xee\x9e\xf0\x9e\xf1\x9e\xf2\x9e\xf3\x9e\xf4\x9e\xf5\x9e\xf6\x9e\xf7\x9e\xf8\x9e\xfa\x9e\xfd\x9e\xff\x9f\x00\x9f\x01\x9f\x02\x9f\x03\x9f\x04\x9f\x05\x9f\x06\x9f\x07\x9f\x08\x9f\x09\x9f\x0a\x9f\x0c\x9f\x0f\x9f\x11\x9f\x12\x9f\x14\x9f\x15\x9f\x16\x9f\x18\x9f\x1a\x9f\x1b\x9f\x1c\x9f\x1d\x9f\x1e\x9f\x1f\x9f\x21\x9f\x23\x9f\x24\x9f\x25\x9f\x26\x9f\x27\x9f\x28\x9f\x29\x9f\x2a\x9f\x2b\x9f\x2d\x9f\x2e\x9f\x30\x9f\x31\x9f\x32\x9f\x33\x9f\x34\x9f\x35\x9f\x36\x9f\x38\x9f\x3a\x9f\x3c\x9f\x3f\x9f\x40\x9f\x41\x9f\x42\x9f\x43\x9f\x45\x9f\x46\x9f\x47\x9f\x48\x9f\x49\x9f\x4a\x9f\x4b\x9f\x4c\x9f\x4d\x9f\x4e\x9f\x4f\x9f\x52\x9f\x53\x9f\x54\x9f\x55\x9f\x56\x9f\x57\x9f\x58\x9f\x59\x9f\x5a\x9f\x5b\x9f\x5c\x9f\x5d\x9f\x5e\x9f\x5f\x9f\x60\x9f\x61\x9f\x62\x9f\x63\x9f\x64\x9f\x65\x9f\x66\x9f\x67\x9f\x68\x9f\x69\x9f\x6a\x9f\x6b\x9f\x6c\x9f\x6d\x00\x00\x00\x00", /* cc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x6e\x9f\x6f\x9f\x70\x9f\x71\x9f\x72\x9f\x73\x9f\x74\x9f\x75\x9f\x76\x9f\x77\x9f\x78\x9f\x79\x9f\x7a\x9f\x7b\x9f\x7c\x9f\x7d\x9f\x7e\x9f\x81\x9f\x82\x9f\x8d\x9f\x8e\x9f\x8f\x9f\x90\x9f\x91\x9f\x92\x9f\x93\x9f\x94\x9f\x95\x9f\x96\x9f\x97\x9f\x98\x9f\x9c\x9f\x9d\x9f\x9e\x9f\xa1\x9f\xa2\x9f\xa3\x9f\xa4\x9f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* cc80 */ NULL, /* cd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xca\x02\xcb\x02\xd9\x20\x13\x20\x14\x20\x35\x21\x05\x21\x09\x21\x96\x21\x97\x21\x98\x21\x99\x22\x15\x22\x1f\x22\x23\x22\x52\x22\x66\x22\x67\x22\xbf\x25\x50\x25\x51\x25\x52\x25\x53\x25\x54\x25\x55\x25\x56\x25\x57\x25\x58\x25\x59\x25\x5a\x25\x5b\x25\x5c\x25\x5d\x25\x5e\x25\x5f\x25\x60\x25\x61\x25\x62\x25\x63\x25\x64\x25\x65\x25\x66\x25\x67\x25\x68\x25\x69\x25\x6a\x25\x6b\x25\x6c\x25\x6d\x25\x6e\x25\x6f\x25\x70\x25\x71\x25\x72\x25\x73\x25\x81\x25\x82\x25\x83\x25\x84\x25\x85\x25\x86\x25\x87\x25\x88", /* cd80 */ "\x00\x00\x25\x89\x25\x8a\x25\x8b\x25\x8c\x25\x8d\x25\x8e\x25\x8f\x25\x93\x25\x94\x25\x95\x25\xe2\x25\xe3\x25\xe4\x25\xe5\x26\x09\x22\x95\x30\x1d\x30\x1e\x30\x21\x30\x22\x30\x23\x30\x24\x30\x25\x30\x26\x30\x27\x30\x28\x30\x29\x32\xa3\x33\x8e\x33\x8f\x33\x9c\x33\x9d\x33\x9e\x33\xa1\x33\xc4\x33\xce\x33\xd1\x33\xd2\x33\xd5\xfe\x30\xfe\x49\xfe\x4a\xfe\x4b\xfe\x4c\xfe\x4d\xfe\x4e\xfe\x4f\xfe\x50\xfe\x51\xfe\x52\xfe\x54\xfe\x55\xfe\x56\xfe\x57\xfe\x59\xfe\x5a\xfe\x5b\xfe\x5c\xfe\x5d\xfe\x5e\xfe\x5f\xfe\x60\xfe\x61\xfe\x62\xfe\x63\xfe\x64\xfe\x65\xfe\x66\xfe\x68\xfe\x69\xfe\x6a\xfe\x6b\x30\x3e\x2f\xf0\x2f\xf1\x2f\xf2\x2f\xf3\x2f\xf4\x2f\xf5\x2f\xf6\x2f\xf7\x2f\xf8\x2f\xf9\x2f\xfa\x2f\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ce00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x2c\xf9\x79\xf9\x95\xf9\xe7\xf9\xf1\xfa\x0c\xfa\x0d\xfa\x0e\xfa\x0f\xfa\x11\xfa\x13\xfa\x14\xfa\x18\xfa\x1f\xfa\x20\xfa\x21\xfa\x23\xfa\x24\xfa\x27\xfa\x28\xfa\x29\x2e\x81\xe8\x16\xe8\x17\xe8\x18\x2e\x84\x34\x73\x34\x47\x2e\x88\x2e\x8b\xe8\x1e\x35\x9e\x36\x1a\x36\x0e\x2e\x8c\x2e\x97\x39\x6e\x39\x18\xe8\x26\x39\xcf\x39\xdf\x3a\x73\x39\xd0\xe8\x2b\xe8\x2c\x3b\x4e\x3c\x6e\x3c\xe0\x2e\xa7\xe8\x31\xe8\x32\x2e\xaa\x40\x56\x41\x5f\x2e\xae\x43\x37\x2e\xb3\x2e\xb6\x2e\xb7\xe8\x3b\x43\xb1\x43\xac\x2e\xbb", /* ce80 */ "\x00\x00\x43\xdd\x44\xd6\x46\x61\x46\x4c\xe8\x43\x47\x23\x47\x29\x47\x7c\x47\x8d\x2e\xca\x49\x47\x49\x7a\x49\x7d\x49\x82\x49\x83\x49\x85\x49\x86\x49\x9f\x49\x9b\x49\xb7\x49\xb6\xe8\x54\xe8\x55\x4c\xa3\x4c\x9f\x4c\xa0\x4c\xa1\x4c\x77\x4c\xa2\x4d\x13\x4d\x14\x4d\x15\x4d\x16\x4d\x17\x4d\x18\x4d\x19\x4d\xae\xe8\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* cf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x34\x01\x34\x02\x34\x03\x34\x04\x34\x05\x34\x06\x34\x07\x34\x08\x34\x09\x34\x0a\x34\x0b\x34\x0c\x34\x0d\x34\x0e\x34\x0f\x34\x10\x34\x11\x34\x12\x34\x13\x34\x14\x34\x15\x34\x16\x34\x17\x34\x18\x34\x19\x34\x1a\x34\x1b\x34\x1c\x34\x1d\x34\x1e\x34\x1f\x34\x20\x34\x21\x34\x22\x34\x23\x34\x24\x34\x25\x34\x26\x34\x27\x34\x28\x34\x29\x34\x2a\x34\x2b\x34\x2c\x34\x2d\x34\x2e\x34\x2f\x34\x30\x34\x31\x34\x32\x34\x33\x34\x34\x34\x35\x34\x36\x34\x37\x34\x38\x34\x39\x34\x3a\x34\x3b\x34\x3c\x34\x3d\x34\x3e", /* cf80 */ "\x34\x3f\x34\x40\x34\x41\x34\x42\x34\x43\x34\x44\x34\x45\x34\x46\x34\x48\x34\x49\x34\x4a\x34\x4b\x34\x4c\x34\x4d\x34\x4e\x34\x4f\x34\x50\x34\x51\x34\x52\x34\x53\x34\x54\x34\x55\x34\x56\x34\x57\x34\x58\x34\x59\x34\x5a\x34\x5b\x34\x5c\x34\x5d\x34\x5e\x34\x5f\x34\x60\x34\x61\x34\x62\x34\x63\x34\x64\x34\x65\x34\x66\x34\x67\x34\x68\x34\x69\x34\x6a\x34\x6b\x34\x6c\x34\x6d\x34\x6e\x34\x6f\x34\x70\x34\x71\x34\x72\x34\x74\x34\x75\x34\x76\x34\x77\x34\x78\x34\x79\x34\x7a\x34\x7b\x34\x7c\x34\x7d\x34\x7e\x34\x7f\x34\x80\x34\x81\x34\x82\x34\x83\x34\x84\x34\x85\x34\x86\x34\x87\x34\x88\x34\x89\x34\x8a\x34\x8b\x34\x8c\x34\x8d\x34\x8e\x34\x8f\x34\x90\x34\x91\x34\x92\x34\x93\x34\x94\x34\x95\x34\x96\x34\x97\x34\x98\x34\x99\x34\x9a\x34\x9b\x34\x9c\x34\x9d\x34\x9e\x34\x9f\x34\xa0\x34\xa1\x34\xa2\x34\xa3\x34\xa4\x34\xa5\x34\xa6\x34\xa7\x34\xa8\x34\xa9\x34\xaa\x34\xab\x34\xac\x34\xad\x34\xae\x34\xaf\x34\xb0\x34\xb1\x34\xb2\x34\xb3\x34\xb4\x34\xb5\x34\xb6\x34\xb7\x34\xb8\x34\xb9\x34\xba\x34\xbb\x34\xbc\x34\xbd\x34\xbe\x34\xbf\x00\x00", /* d000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\xc0\x34\xc1\x34\xc2\x34\xc3\x34\xc4\x34\xc5\x34\xc6\x34\xc7\x34\xc8\x34\xc9\x34\xca\x34\xcb\x34\xcc\x34\xcd\x34\xce\x34\xcf\x34\xd0\x34\xd1\x34\xd2\x34\xd3\x34\xd4\x34\xd5\x34\xd6\x34\xd7\x34\xd8\x34\xd9\x34\xda\x34\xdb\x34\xdc\x34\xdd\x34\xde\x34\xdf\x34\xe0\x34\xe1\x34\xe2\x34\xe3\x34\xe4\x34\xe5\x34\xe6\x34\xe7\x34\xe8\x34\xe9\x34\xea\x34\xeb\x34\xec\x34\xed\x34\xee\x34\xef\x34\xf0\x34\xf1\x34\xf2\x34\xf3\x34\xf4\x34\xf5\x34\xf6\x34\xf7\x34\xf8\x34\xf9\x34\xfa\x34\xfb\x34\xfc\x34\xfd\x34\xfe", /* d080 */ "\x34\xff\x35\x00\x35\x01\x35\x02\x35\x03\x35\x04\x35\x05\x35\x06\x35\x07\x35\x08\x35\x09\x35\x0a\x35\x0b\x35\x0c\x35\x0d\x35\x0e\x35\x0f\x35\x10\x35\x11\x35\x12\x35\x13\x35\x14\x35\x15\x35\x16\x35\x17\x35\x18\x35\x19\x35\x1a\x35\x1b\x35\x1c\x35\x1d\x35\x1e\x35\x1f\x35\x20\x35\x21\x35\x22\x35\x23\x35\x24\x35\x25\x35\x26\x35\x27\x35\x28\x35\x29\x35\x2a\x35\x2b\x35\x2c\x35\x2d\x35\x2e\x35\x2f\x35\x30\x35\x31\x35\x32\x35\x33\x35\x34\x35\x35\x35\x36\x35\x37\x35\x38\x35\x39\x35\x3a\x35\x3b\x35\x3c\x35\x3d\x35\x3e\x35\x3f\x35\x40\x35\x41\x35\x42\x35\x43\x35\x44\x35\x45\x35\x46\x35\x47\x35\x48\x35\x49\x35\x4a\x35\x4b\x35\x4c\x35\x4d\x35\x4e\x35\x4f\x35\x50\x35\x51\x35\x52\x35\x53\x35\x54\x35\x55\x35\x56\x35\x57\x35\x58\x35\x59\x35\x5a\x35\x5b\x35\x5c\x35\x5d\x35\x5e\x35\x5f\x35\x60\x35\x61\x35\x62\x35\x63\x35\x64\x35\x65\x35\x66\x35\x67\x35\x68\x35\x69\x35\x6a\x35\x6b\x35\x6c\x35\x6d\x35\x6e\x35\x6f\x35\x70\x35\x71\x35\x72\x35\x73\x35\x74\x35\x75\x35\x76\x35\x77\x35\x78\x35\x79\x35\x7a\x35\x7b\x35\x7c\x35\x7d\x00\x00", /* d100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x7e\x35\x7f\x35\x80\x35\x81\x35\x82\x35\x83\x35\x84\x35\x85\x35\x86\x35\x87\x35\x88\x35\x89\x35\x8a\x35\x8b\x35\x8c\x35\x8d\x35\x8e\x35\x8f\x35\x90\x35\x91\x35\x92\x35\x93\x35\x94\x35\x95\x35\x96\x35\x97\x35\x98\x35\x99\x35\x9a\x35\x9b\x35\x9c\x35\x9d\x35\x9f\x35\xa0\x35\xa1\x35\xa2\x35\xa3\x35\xa4\x35\xa5\x35\xa6\x35\xa7\x35\xa8\x35\xa9\x35\xaa\x35\xab\x35\xac\x35\xad\x35\xae\x35\xaf\x35\xb0\x35\xb1\x35\xb2\x35\xb3\x35\xb4\x35\xb5\x35\xb6\x35\xb7\x35\xb8\x35\xb9\x35\xba\x35\xbb\x35\xbc\x35\xbd", /* d180 */ "\x35\xbe\x35\xbf\x35\xc0\x35\xc1\x35\xc2\x35\xc3\x35\xc4\x35\xc5\x35\xc6\x35\xc7\x35\xc8\x35\xc9\x35\xca\x35\xcb\x35\xcc\x35\xcd\x35\xce\x35\xcf\x35\xd0\x35\xd1\x35\xd2\x35\xd3\x35\xd4\x35\xd5\x35\xd6\x35\xd7\x35\xd8\x35\xd9\x35\xda\x35\xdb\x35\xdc\x35\xdd\x35\xde\x35\xdf\x35\xe0\x35\xe1\x35\xe2\x35\xe3\x35\xe4\x35\xe5\x35\xe6\x35\xe7\x35\xe8\x35\xe9\x35\xea\x35\xeb\x35\xec\x35\xed\x35\xee\x35\xef\x35\xf0\x35\xf1\x35\xf2\x35\xf3\x35\xf4\x35\xf5\x35\xf6\x35\xf7\x35\xf8\x35\xf9\x35\xfa\x35\xfb\x35\xfc\x35\xfd\x35\xfe\x35\xff\x36\x00\x36\x01\x36\x02\x36\x03\x36\x04\x36\x05\x36\x06\x36\x07\x36\x08\x36\x09\x36\x0a\x36\x0b\x36\x0c\x36\x0d\x36\x0f\x36\x10\x36\x11\x36\x12\x36\x13\x36\x14\x36\x15\x36\x16\x36\x17\x36\x18\x36\x19\x36\x1b\x36\x1c\x36\x1d\x36\x1e\x36\x1f\x36\x20\x36\x21\x36\x22\x36\x23\x36\x24\x36\x25\x36\x26\x36\x27\x36\x28\x36\x29\x36\x2a\x36\x2b\x36\x2c\x36\x2d\x36\x2e\x36\x2f\x36\x30\x36\x31\x36\x32\x36\x33\x36\x34\x36\x35\x36\x36\x36\x37\x36\x38\x36\x39\x36\x3a\x36\x3b\x36\x3c\x36\x3d\x36\x3e\x00\x00", /* d200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x3f\x36\x40\x36\x41\x36\x42\x36\x43\x36\x44\x36\x45\x36\x46\x36\x47\x36\x48\x36\x49\x36\x4a\x36\x4b\x36\x4c\x36\x4d\x36\x4e\x36\x4f\x36\x50\x36\x51\x36\x52\x36\x53\x36\x54\x36\x55\x36\x56\x36\x57\x36\x58\x36\x59\x36\x5a\x36\x5b\x36\x5c\x36\x5d\x36\x5e\x36\x5f\x36\x60\x36\x61\x36\x62\x36\x63\x36\x64\x36\x65\x36\x66\x36\x67\x36\x68\x36\x69\x36\x6a\x36\x6b\x36\x6c\x36\x6d\x36\x6e\x36\x6f\x36\x70\x36\x71\x36\x72\x36\x73\x36\x74\x36\x75\x36\x76\x36\x77\x36\x78\x36\x79\x36\x7a\x36\x7b\x36\x7c\x36\x7d", /* d280 */ "\x36\x7e\x36\x7f\x36\x80\x36\x81\x36\x82\x36\x83\x36\x84\x36\x85\x36\x86\x36\x87\x36\x88\x36\x89\x36\x8a\x36\x8b\x36\x8c\x36\x8d\x36\x8e\x36\x8f\x36\x90\x36\x91\x36\x92\x36\x93\x36\x94\x36\x95\x36\x96\x36\x97\x36\x98\x36\x99\x36\x9a\x36\x9b\x36\x9c\x36\x9d\x36\x9e\x36\x9f\x36\xa0\x36\xa1\x36\xa2\x36\xa3\x36\xa4\x36\xa5\x36\xa6\x36\xa7\x36\xa8\x36\xa9\x36\xaa\x36\xab\x36\xac\x36\xad\x36\xae\x36\xaf\x36\xb0\x36\xb1\x36\xb2\x36\xb3\x36\xb4\x36\xb5\x36\xb6\x36\xb7\x36\xb8\x36\xb9\x36\xba\x36\xbb\x36\xbc\x36\xbd\x36\xbe\x36\xbf\x36\xc0\x36\xc1\x36\xc2\x36\xc3\x36\xc4\x36\xc5\x36\xc6\x36\xc7\x36\xc8\x36\xc9\x36\xca\x36\xcb\x36\xcc\x36\xcd\x36\xce\x36\xcf\x36\xd0\x36\xd1\x36\xd2\x36\xd3\x36\xd4\x36\xd5\x36\xd6\x36\xd7\x36\xd8\x36\xd9\x36\xda\x36\xdb\x36\xdc\x36\xdd\x36\xde\x36\xdf\x36\xe0\x36\xe1\x36\xe2\x36\xe3\x36\xe4\x36\xe5\x36\xe6\x36\xe7\x36\xe8\x36\xe9\x36\xea\x36\xeb\x36\xec\x36\xed\x36\xee\x36\xef\x36\xf0\x36\xf1\x36\xf2\x36\xf3\x36\xf4\x36\xf5\x36\xf6\x36\xf7\x36\xf8\x36\xf9\x36\xfa\x36\xfb\x36\xfc\x00\x00", /* d300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\xfd\x36\xfe\x36\xff\x37\x00\x37\x01\x37\x02\x37\x03\x37\x04\x37\x05\x37\x06\x37\x07\x37\x08\x37\x09\x37\x0a\x37\x0b\x37\x0c\x37\x0d\x37\x0e\x37\x0f\x37\x10\x37\x11\x37\x12\x37\x13\x37\x14\x37\x15\x37\x16\x37\x17\x37\x18\x37\x19\x37\x1a\x37\x1b\x37\x1c\x37\x1d\x37\x1e\x37\x1f\x37\x20\x37\x21\x37\x22\x37\x23\x37\x24\x37\x25\x37\x26\x37\x27\x37\x28\x37\x29\x37\x2a\x37\x2b\x37\x2c\x37\x2d\x37\x2e\x37\x2f\x37\x30\x37\x31\x37\x32\x37\x33\x37\x34\x37\x35\x37\x36\x37\x37\x37\x38\x37\x39\x37\x3a\x37\x3b", /* d380 */ "\x37\x3c\x37\x3d\x37\x3e\x37\x3f\x37\x40\x37\x41\x37\x42\x37\x43\x37\x44\x37\x45\x37\x46\x37\x47\x37\x48\x37\x49\x37\x4a\x37\x4b\x37\x4c\x37\x4d\x37\x4e\x37\x4f\x37\x50\x37\x51\x37\x52\x37\x53\x37\x54\x37\x55\x37\x56\x37\x57\x37\x58\x37\x59\x37\x5a\x37\x5b\x37\x5c\x37\x5d\x37\x5e\x37\x5f\x37\x60\x37\x61\x37\x62\x37\x63\x37\x64\x37\x65\x37\x66\x37\x67\x37\x68\x37\x69\x37\x6a\x37\x6b\x37\x6c\x37\x6d\x37\x6e\x37\x6f\x37\x70\x37\x71\x37\x72\x37\x73\x37\x74\x37\x75\x37\x76\x37\x77\x37\x78\x37\x79\x37\x7a\x37\x7b\x37\x7c\x37\x7d\x37\x7e\x37\x7f\x37\x80\x37\x81\x37\x82\x37\x83\x37\x84\x37\x85\x37\x86\x37\x87\x37\x88\x37\x89\x37\x8a\x37\x8b\x37\x8c\x37\x8d\x37\x8e\x37\x8f\x37\x90\x37\x91\x37\x92\x37\x93\x37\x94\x37\x95\x37\x96\x37\x97\x37\x98\x37\x99\x37\x9a\x37\x9b\x37\x9c\x37\x9d\x37\x9e\x37\x9f\x37\xa0\x37\xa1\x37\xa2\x37\xa3\x37\xa4\x37\xa5\x37\xa6\x37\xa7\x37\xa8\x37\xa9\x37\xaa\x37\xab\x37\xac\x37\xad\x37\xae\x37\xaf\x37\xb0\x37\xb1\x37\xb2\x37\xb3\x37\xb4\x37\xb5\x37\xb6\x37\xb7\x37\xb8\x37\xb9\x37\xba\x00\x00", /* d400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\xbb\x37\xbc\x37\xbd\x37\xbe\x37\xbf\x37\xc0\x37\xc1\x37\xc2\x37\xc3\x37\xc4\x37\xc5\x37\xc6\x37\xc7\x37\xc8\x37\xc9\x37\xca\x37\xcb\x37\xcc\x37\xcd\x37\xce\x37\xcf\x37\xd0\x37\xd1\x37\xd2\x37\xd3\x37\xd4\x37\xd5\x37\xd6\x37\xd7\x37\xd8\x37\xd9\x37\xda\x37\xdb\x37\xdc\x37\xdd\x37\xde\x37\xdf\x37\xe0\x37\xe1\x37\xe2\x37\xe3\x37\xe4\x37\xe5\x37\xe6\x37\xe7\x37\xe8\x37\xe9\x37\xea\x37\xeb\x37\xec\x37\xed\x37\xee\x37\xef\x37\xf0\x37\xf1\x37\xf2\x37\xf3\x37\xf4\x37\xf5\x37\xf6\x37\xf7\x37\xf8\x37\xf9", /* d480 */ "\x37\xfa\x37\xfb\x37\xfc\x37\xfd\x37\xfe\x37\xff\x38\x00\x38\x01\x38\x02\x38\x03\x38\x04\x38\x05\x38\x06\x38\x07\x38\x08\x38\x09\x38\x0a\x38\x0b\x38\x0c\x38\x0d\x38\x0e\x38\x0f\x38\x10\x38\x11\x38\x12\x38\x13\x38\x14\x38\x15\x38\x16\x38\x17\x38\x18\x38\x19\x38\x1a\x38\x1b\x38\x1c\x38\x1d\x38\x1e\x38\x1f\x38\x20\x38\x21\x38\x22\x38\x23\x38\x24\x38\x25\x38\x26\x38\x27\x38\x28\x38\x29\x38\x2a\x38\x2b\x38\x2c\x38\x2d\x38\x2e\x38\x2f\x38\x30\x38\x31\x38\x32\x38\x33\x38\x34\x38\x35\x38\x36\x38\x37\x38\x38\x38\x39\x38\x3a\x38\x3b\x38\x3c\x38\x3d\x38\x3e\x38\x3f\x38\x40\x38\x41\x38\x42\x38\x43\x38\x44\x38\x45\x38\x46\x38\x47\x38\x48\x38\x49\x38\x4a\x38\x4b\x38\x4c\x38\x4d\x38\x4e\x38\x4f\x38\x50\x38\x51\x38\x52\x38\x53\x38\x54\x38\x55\x38\x56\x38\x57\x38\x58\x38\x59\x38\x5a\x38\x5b\x38\x5c\x38\x5d\x38\x5e\x38\x5f\x38\x60\x38\x61\x38\x62\x38\x63\x38\x64\x38\x65\x38\x66\x38\x67\x38\x68\x38\x69\x38\x6a\x38\x6b\x38\x6c\x38\x6d\x38\x6e\x38\x6f\x38\x70\x38\x71\x38\x72\x38\x73\x38\x74\x38\x75\x38\x76\x38\x77\x38\x78\x00\x00", /* d500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x79\x38\x7a\x38\x7b\x38\x7c\x38\x7d\x38\x7e\x38\x7f\x38\x80\x38\x81\x38\x82\x38\x83\x38\x84\x38\x85\x38\x86\x38\x87\x38\x88\x38\x89\x38\x8a\x38\x8b\x38\x8c\x38\x8d\x38\x8e\x38\x8f\x38\x90\x38\x91\x38\x92\x38\x93\x38\x94\x38\x95\x38\x96\x38\x97\x38\x98\x38\x99\x38\x9a\x38\x9b\x38\x9c\x38\x9d\x38\x9e\x38\x9f\x38\xa0\x38\xa1\x38\xa2\x38\xa3\x38\xa4\x38\xa5\x38\xa6\x38\xa7\x38\xa8\x38\xa9\x38\xaa\x38\xab\x38\xac\x38\xad\x38\xae\x38\xaf\x38\xb0\x38\xb1\x38\xb2\x38\xb3\x38\xb4\x38\xb5\x38\xb6\x38\xb7", /* d580 */ "\x38\xb8\x38\xb9\x38\xba\x38\xbb\x38\xbc\x38\xbd\x38\xbe\x38\xbf\x38\xc0\x38\xc1\x38\xc2\x38\xc3\x38\xc4\x38\xc5\x38\xc6\x38\xc7\x38\xc8\x38\xc9\x38\xca\x38\xcb\x38\xcc\x38\xcd\x38\xce\x38\xcf\x38\xd0\x38\xd1\x38\xd2\x38\xd3\x38\xd4\x38\xd5\x38\xd6\x38\xd7\x38\xd8\x38\xd9\x38\xda\x38\xdb\x38\xdc\x38\xdd\x38\xde\x38\xdf\x38\xe0\x38\xe1\x38\xe2\x38\xe3\x38\xe4\x38\xe5\x38\xe6\x38\xe7\x38\xe8\x38\xe9\x38\xea\x38\xeb\x38\xec\x38\xed\x38\xee\x38\xef\x38\xf0\x38\xf1\x38\xf2\x38\xf3\x38\xf4\x38\xf5\x38\xf6\x38\xf7\x38\xf8\x38\xf9\x38\xfa\x38\xfb\x38\xfc\x38\xfd\x38\xfe\x38\xff\x39\x00\x39\x01\x39\x02\x39\x03\x39\x04\x39\x05\x39\x06\x39\x07\x39\x08\x39\x09\x39\x0a\x39\x0b\x39\x0c\x39\x0d\x39\x0e\x39\x0f\x39\x10\x39\x11\x39\x12\x39\x13\x39\x14\x39\x15\x39\x16\x39\x17\x39\x19\x39\x1a\x39\x1b\x39\x1c\x39\x1d\x39\x1e\x39\x1f\x39\x20\x39\x21\x39\x22\x39\x23\x39\x24\x39\x25\x39\x26\x39\x27\x39\x28\x39\x29\x39\x2a\x39\x2b\x39\x2c\x39\x2d\x39\x2e\x39\x2f\x39\x30\x39\x31\x39\x32\x39\x33\x39\x34\x39\x35\x39\x36\x39\x37\x00\x00", /* d600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x38\x39\x39\x39\x3a\x39\x3b\x39\x3c\x39\x3d\x39\x3e\x39\x3f\x39\x40\x39\x41\x39\x42\x39\x43\x39\x44\x39\x45\x39\x46\x39\x47\x39\x48\x39\x49\x39\x4a\x39\x4b\x39\x4c\x39\x4d\x39\x4e\x39\x4f\x39\x50\x39\x51\x39\x52\x39\x53\x39\x54\x39\x55\x39\x56\x39\x57\x39\x58\x39\x59\x39\x5a\x39\x5b\x39\x5c\x39\x5d\x39\x5e\x39\x5f\x39\x60\x39\x61\x39\x62\x39\x63\x39\x64\x39\x65\x39\x66\x39\x67\x39\x68\x39\x69\x39\x6a\x39\x6b\x39\x6c\x39\x6d\x39\x6f\x39\x70\x39\x71\x39\x72\x39\x73\x39\x74\x39\x75\x39\x76\x39\x77", /* d680 */ "\x39\x78\x39\x79\x39\x7a\x39\x7b\x39\x7c\x39\x7d\x39\x7e\x39\x7f\x39\x80\x39\x81\x39\x82\x39\x83\x39\x84\x39\x85\x39\x86\x39\x87\x39\x88\x39\x89\x39\x8a\x39\x8b\x39\x8c\x39\x8d\x39\x8e\x39\x8f\x39\x90\x39\x91\x39\x92\x39\x93\x39\x94\x39\x95\x39\x96\x39\x97\x39\x98\x39\x99\x39\x9a\x39\x9b\x39\x9c\x39\x9d\x39\x9e\x39\x9f\x39\xa0\x39\xa1\x39\xa2\x39\xa3\x39\xa4\x39\xa5\x39\xa6\x39\xa7\x39\xa8\x39\xa9\x39\xaa\x39\xab\x39\xac\x39\xad\x39\xae\x39\xaf\x39\xb0\x39\xb1\x39\xb2\x39\xb3\x39\xb4\x39\xb5\x39\xb6\x39\xb7\x39\xb8\x39\xb9\x39\xba\x39\xbb\x39\xbc\x39\xbd\x39\xbe\x39\xbf\x39\xc0\x39\xc1\x39\xc2\x39\xc3\x39\xc4\x39\xc5\x39\xc6\x39\xc7\x39\xc8\x39\xc9\x39\xca\x39\xcb\x39\xcc\x39\xcd\x39\xce\x39\xd1\x39\xd2\x39\xd3\x39\xd4\x39\xd5\x39\xd6\x39\xd7\x39\xd8\x39\xd9\x39\xda\x39\xdb\x39\xdc\x39\xdd\x39\xde\x39\xe0\x39\xe1\x39\xe2\x39\xe3\x39\xe4\x39\xe5\x39\xe6\x39\xe7\x39\xe8\x39\xe9\x39\xea\x39\xeb\x39\xec\x39\xed\x39\xee\x39\xef\x39\xf0\x39\xf1\x39\xf2\x39\xf3\x39\xf4\x39\xf5\x39\xf6\x39\xf7\x39\xf8\x39\xf9\x00\x00", /* d700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\xfa\x39\xfb\x39\xfc\x39\xfd\x39\xfe\x39\xff\x3a\x00\x3a\x01\x3a\x02\x3a\x03\x3a\x04\x3a\x05\x3a\x06\x3a\x07\x3a\x08\x3a\x09\x3a\x0a\x3a\x0b\x3a\x0c\x3a\x0d\x3a\x0e\x3a\x0f\x3a\x10\x3a\x11\x3a\x12\x3a\x13\x3a\x14\x3a\x15\x3a\x16\x3a\x17\x3a\x18\x3a\x19\x3a\x1a\x3a\x1b\x3a\x1c\x3a\x1d\x3a\x1e\x3a\x1f\x3a\x20\x3a\x21\x3a\x22\x3a\x23\x3a\x24\x3a\x25\x3a\x26\x3a\x27\x3a\x28\x3a\x29\x3a\x2a\x3a\x2b\x3a\x2c\x3a\x2d\x3a\x2e\x3a\x2f\x3a\x30\x3a\x31\x3a\x32\x3a\x33\x3a\x34\x3a\x35\x3a\x36\x3a\x37\x3a\x38", /* d780 */ "\x3a\x39\x3a\x3a\x3a\x3b\x3a\x3c\x3a\x3d\x3a\x3e\x3a\x3f\x3a\x40\x3a\x41\x3a\x42\x3a\x43\x3a\x44\x3a\x45\x3a\x46\x3a\x47\x3a\x48\x3a\x49\x3a\x4a\x3a\x4b\x3a\x4c\x3a\x4d\x3a\x4e\x3a\x4f\x3a\x50\x3a\x51\x3a\x52\x3a\x53\x3a\x54\x3a\x55\x3a\x56\x3a\x57\x3a\x58\x3a\x59\x3a\x5a\x3a\x5b\x3a\x5c\x3a\x5d\x3a\x5e\x3a\x5f\x3a\x60\x3a\x61\x3a\x62\x3a\x63\x3a\x64\x3a\x65\x3a\x66\x3a\x67\x3a\x68\x3a\x69\x3a\x6a\x3a\x6b\x3a\x6c\x3a\x6d\x3a\x6e\x3a\x6f\x3a\x70\x3a\x71\x3a\x72\x3a\x74\x3a\x75\x3a\x76\x3a\x77\x3a\x78\x3a\x79\x3a\x7a\x3a\x7b\x3a\x7c\x3a\x7d\x3a\x7e\x3a\x7f\x3a\x80\x3a\x81\x3a\x82\x3a\x83\x3a\x84\x3a\x85\x3a\x86\x3a\x87\x3a\x88\x3a\x89\x3a\x8a\x3a\x8b\x3a\x8c\x3a\x8d\x3a\x8e\x3a\x8f\x3a\x90\x3a\x91\x3a\x92\x3a\x93\x3a\x94\x3a\x95\x3a\x96\x3a\x97\x3a\x98\x3a\x99\x3a\x9a\x3a\x9b\x3a\x9c\x3a\x9d\x3a\x9e\x3a\x9f\x3a\xa0\x3a\xa1\x3a\xa2\x3a\xa3\x3a\xa4\x3a\xa5\x3a\xa6\x3a\xa7\x3a\xa8\x3a\xa9\x3a\xaa\x3a\xab\x3a\xac\x3a\xad\x3a\xae\x3a\xaf\x3a\xb0\x3a\xb1\x3a\xb2\x3a\xb3\x3a\xb4\x3a\xb5\x3a\xb6\x3a\xb7\x3a\xb8\x00\x00", /* d800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\xb9\x3a\xba\x3a\xbb\x3a\xbc\x3a\xbd\x3a\xbe\x3a\xbf\x3a\xc0\x3a\xc1\x3a\xc2\x3a\xc3\x3a\xc4\x3a\xc5\x3a\xc6\x3a\xc7\x3a\xc8\x3a\xc9\x3a\xca\x3a\xcb\x3a\xcc\x3a\xcd\x3a\xce\x3a\xcf\x3a\xd0\x3a\xd1\x3a\xd2\x3a\xd3\x3a\xd4\x3a\xd5\x3a\xd6\x3a\xd7\x3a\xd8\x3a\xd9\x3a\xda\x3a\xdb\x3a\xdc\x3a\xdd\x3a\xde\x3a\xdf\x3a\xe0\x3a\xe1\x3a\xe2\x3a\xe3\x3a\xe4\x3a\xe5\x3a\xe6\x3a\xe7\x3a\xe8\x3a\xe9\x3a\xea\x3a\xeb\x3a\xec\x3a\xed\x3a\xee\x3a\xef\x3a\xf0\x3a\xf1\x3a\xf2\x3a\xf3\x3a\xf4\x3a\xf5\x3a\xf6\x3a\xf7", /* d880 */ "\x3a\xf8\x3a\xf9\x3a\xfa\x3a\xfb\x3a\xfc\x3a\xfd\x3a\xfe\x3a\xff\x3b\x00\x3b\x01\x3b\x02\x3b\x03\x3b\x04\x3b\x05\x3b\x06\x3b\x07\x3b\x08\x3b\x09\x3b\x0a\x3b\x0b\x3b\x0c\x3b\x0d\x3b\x0e\x3b\x0f\x3b\x10\x3b\x11\x3b\x12\x3b\x13\x3b\x14\x3b\x15\x3b\x16\x3b\x17\x3b\x18\x3b\x19\x3b\x1a\x3b\x1b\x3b\x1c\x3b\x1d\x3b\x1e\x3b\x1f\x3b\x20\x3b\x21\x3b\x22\x3b\x23\x3b\x24\x3b\x25\x3b\x26\x3b\x27\x3b\x28\x3b\x29\x3b\x2a\x3b\x2b\x3b\x2c\x3b\x2d\x3b\x2e\x3b\x2f\x3b\x30\x3b\x31\x3b\x32\x3b\x33\x3b\x34\x3b\x35\x3b\x36\x3b\x37\x3b\x38\x3b\x39\x3b\x3a\x3b\x3b\x3b\x3c\x3b\x3d\x3b\x3e\x3b\x3f\x3b\x40\x3b\x41\x3b\x42\x3b\x43\x3b\x44\x3b\x45\x3b\x46\x3b\x47\x3b\x48\x3b\x49\x3b\x4a\x3b\x4b\x3b\x4c\x3b\x4d\x3b\x4f\x3b\x50\x3b\x51\x3b\x52\x3b\x53\x3b\x54\x3b\x55\x3b\x56\x3b\x57\x3b\x58\x3b\x59\x3b\x5a\x3b\x5b\x3b\x5c\x3b\x5d\x3b\x5e\x3b\x5f\x3b\x60\x3b\x61\x3b\x62\x3b\x63\x3b\x64\x3b\x65\x3b\x66\x3b\x67\x3b\x68\x3b\x69\x3b\x6a\x3b\x6b\x3b\x6c\x3b\x6d\x3b\x6e\x3b\x6f\x3b\x70\x3b\x71\x3b\x72\x3b\x73\x3b\x74\x3b\x75\x3b\x76\x3b\x77\x00\x00", /* d900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x78\x3b\x79\x3b\x7a\x3b\x7b\x3b\x7c\x3b\x7d\x3b\x7e\x3b\x7f\x3b\x80\x3b\x81\x3b\x82\x3b\x83\x3b\x84\x3b\x85\x3b\x86\x3b\x87\x3b\x88\x3b\x89\x3b\x8a\x3b\x8b\x3b\x8c\x3b\x8d\x3b\x8e\x3b\x8f\x3b\x90\x3b\x91\x3b\x92\x3b\x93\x3b\x94\x3b\x95\x3b\x96\x3b\x97\x3b\x98\x3b\x99\x3b\x9a\x3b\x9b\x3b\x9c\x3b\x9d\x3b\x9e\x3b\x9f\x3b\xa0\x3b\xa1\x3b\xa2\x3b\xa3\x3b\xa4\x3b\xa5\x3b\xa6\x3b\xa7\x3b\xa8\x3b\xa9\x3b\xaa\x3b\xab\x3b\xac\x3b\xad\x3b\xae\x3b\xaf\x3b\xb0\x3b\xb1\x3b\xb2\x3b\xb3\x3b\xb4\x3b\xb5\x3b\xb6", /* d980 */ "\x3b\xb7\x3b\xb8\x3b\xb9\x3b\xba\x3b\xbb\x3b\xbc\x3b\xbd\x3b\xbe\x3b\xbf\x3b\xc0\x3b\xc1\x3b\xc2\x3b\xc3\x3b\xc4\x3b\xc5\x3b\xc6\x3b\xc7\x3b\xc8\x3b\xc9\x3b\xca\x3b\xcb\x3b\xcc\x3b\xcd\x3b\xce\x3b\xcf\x3b\xd0\x3b\xd1\x3b\xd2\x3b\xd3\x3b\xd4\x3b\xd5\x3b\xd6\x3b\xd7\x3b\xd8\x3b\xd9\x3b\xda\x3b\xdb\x3b\xdc\x3b\xdd\x3b\xde\x3b\xdf\x3b\xe0\x3b\xe1\x3b\xe2\x3b\xe3\x3b\xe4\x3b\xe5\x3b\xe6\x3b\xe7\x3b\xe8\x3b\xe9\x3b\xea\x3b\xeb\x3b\xec\x3b\xed\x3b\xee\x3b\xef\x3b\xf0\x3b\xf1\x3b\xf2\x3b\xf3\x3b\xf4\x3b\xf5\x3b\xf6\x3b\xf7\x3b\xf8\x3b\xf9\x3b\xfa\x3b\xfb\x3b\xfc\x3b\xfd\x3b\xfe\x3b\xff\x3c\x00\x3c\x01\x3c\x02\x3c\x03\x3c\x04\x3c\x05\x3c\x06\x3c\x07\x3c\x08\x3c\x09\x3c\x0a\x3c\x0b\x3c\x0c\x3c\x0d\x3c\x0e\x3c\x0f\x3c\x10\x3c\x11\x3c\x12\x3c\x13\x3c\x14\x3c\x15\x3c\x16\x3c\x17\x3c\x18\x3c\x19\x3c\x1a\x3c\x1b\x3c\x1c\x3c\x1d\x3c\x1e\x3c\x1f\x3c\x20\x3c\x21\x3c\x22\x3c\x23\x3c\x24\x3c\x25\x3c\x26\x3c\x27\x3c\x28\x3c\x29\x3c\x2a\x3c\x2b\x3c\x2c\x3c\x2d\x3c\x2e\x3c\x2f\x3c\x30\x3c\x31\x3c\x32\x3c\x33\x3c\x34\x3c\x35\x00\x00", /* da00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x36\x3c\x37\x3c\x38\x3c\x39\x3c\x3a\x3c\x3b\x3c\x3c\x3c\x3d\x3c\x3e\x3c\x3f\x3c\x40\x3c\x41\x3c\x42\x3c\x43\x3c\x44\x3c\x45\x3c\x46\x3c\x47\x3c\x48\x3c\x49\x3c\x4a\x3c\x4b\x3c\x4c\x3c\x4d\x3c\x4e\x3c\x4f\x3c\x50\x3c\x51\x3c\x52\x3c\x53\x3c\x54\x3c\x55\x3c\x56\x3c\x57\x3c\x58\x3c\x59\x3c\x5a\x3c\x5b\x3c\x5c\x3c\x5d\x3c\x5e\x3c\x5f\x3c\x60\x3c\x61\x3c\x62\x3c\x63\x3c\x64\x3c\x65\x3c\x66\x3c\x67\x3c\x68\x3c\x69\x3c\x6a\x3c\x6b\x3c\x6c\x3c\x6d\x3c\x6f\x3c\x70\x3c\x71\x3c\x72\x3c\x73\x3c\x74\x3c\x75", /* da80 */ "\x3c\x76\x3c\x77\x3c\x78\x3c\x79\x3c\x7a\x3c\x7b\x3c\x7c\x3c\x7d\x3c\x7e\x3c\x7f\x3c\x80\x3c\x81\x3c\x82\x3c\x83\x3c\x84\x3c\x85\x3c\x86\x3c\x87\x3c\x88\x3c\x89\x3c\x8a\x3c\x8b\x3c\x8c\x3c\x8d\x3c\x8e\x3c\x8f\x3c\x90\x3c\x91\x3c\x92\x3c\x93\x3c\x94\x3c\x95\x3c\x96\x3c\x97\x3c\x98\x3c\x99\x3c\x9a\x3c\x9b\x3c\x9c\x3c\x9d\x3c\x9e\x3c\x9f\x3c\xa0\x3c\xa1\x3c\xa2\x3c\xa3\x3c\xa4\x3c\xa5\x3c\xa6\x3c\xa7\x3c\xa8\x3c\xa9\x3c\xaa\x3c\xab\x3c\xac\x3c\xad\x3c\xae\x3c\xaf\x3c\xb0\x3c\xb1\x3c\xb2\x3c\xb3\x3c\xb4\x3c\xb5\x3c\xb6\x3c\xb7\x3c\xb8\x3c\xb9\x3c\xba\x3c\xbb\x3c\xbc\x3c\xbd\x3c\xbe\x3c\xbf\x3c\xc0\x3c\xc1\x3c\xc2\x3c\xc3\x3c\xc4\x3c\xc5\x3c\xc6\x3c\xc7\x3c\xc8\x3c\xc9\x3c\xca\x3c\xcb\x3c\xcc\x3c\xcd\x3c\xce\x3c\xcf\x3c\xd0\x3c\xd1\x3c\xd2\x3c\xd3\x3c\xd4\x3c\xd5\x3c\xd6\x3c\xd7\x3c\xd8\x3c\xd9\x3c\xda\x3c\xdb\x3c\xdc\x3c\xdd\x3c\xde\x3c\xdf\x3c\xe1\x3c\xe2\x3c\xe3\x3c\xe4\x3c\xe5\x3c\xe6\x3c\xe7\x3c\xe8\x3c\xe9\x3c\xea\x3c\xeb\x3c\xec\x3c\xed\x3c\xee\x3c\xef\x3c\xf0\x3c\xf1\x3c\xf2\x3c\xf3\x3c\xf4\x3c\xf5\x00\x00", /* db00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\xf6\x3c\xf7\x3c\xf8\x3c\xf9\x3c\xfa\x3c\xfb\x3c\xfc\x3c\xfd\x3c\xfe\x3c\xff\x3d\x00\x3d\x01\x3d\x02\x3d\x03\x3d\x04\x3d\x05\x3d\x06\x3d\x07\x3d\x08\x3d\x09\x3d\x0a\x3d\x0b\x3d\x0c\x3d\x0d\x3d\x0e\x3d\x0f\x3d\x10\x3d\x11\x3d\x12\x3d\x13\x3d\x14\x3d\x15\x3d\x16\x3d\x17\x3d\x18\x3d\x19\x3d\x1a\x3d\x1b\x3d\x1c\x3d\x1d\x3d\x1e\x3d\x1f\x3d\x20\x3d\x21\x3d\x22\x3d\x23\x3d\x24\x3d\x25\x3d\x26\x3d\x27\x3d\x28\x3d\x29\x3d\x2a\x3d\x2b\x3d\x2c\x3d\x2d\x3d\x2e\x3d\x2f\x3d\x30\x3d\x31\x3d\x32\x3d\x33\x3d\x34", /* db80 */ "\x3d\x35\x3d\x36\x3d\x37\x3d\x38\x3d\x39\x3d\x3a\x3d\x3b\x3d\x3c\x3d\x3d\x3d\x3e\x3d\x3f\x3d\x40\x3d\x41\x3d\x42\x3d\x43\x3d\x44\x3d\x45\x3d\x46\x3d\x47\x3d\x48\x3d\x49\x3d\x4a\x3d\x4b\x3d\x4c\x3d\x4d\x3d\x4e\x3d\x4f\x3d\x50\x3d\x51\x3d\x52\x3d\x53\x3d\x54\x3d\x55\x3d\x56\x3d\x57\x3d\x58\x3d\x59\x3d\x5a\x3d\x5b\x3d\x5c\x3d\x5d\x3d\x5e\x3d\x5f\x3d\x60\x3d\x61\x3d\x62\x3d\x63\x3d\x64\x3d\x65\x3d\x66\x3d\x67\x3d\x68\x3d\x69\x3d\x6a\x3d\x6b\x3d\x6c\x3d\x6d\x3d\x6e\x3d\x6f\x3d\x70\x3d\x71\x3d\x72\x3d\x73\x3d\x74\x3d\x75\x3d\x76\x3d\x77\x3d\x78\x3d\x79\x3d\x7a\x3d\x7b\x3d\x7c\x3d\x7d\x3d\x7e\x3d\x7f\x3d\x80\x3d\x81\x3d\x82\x3d\x83\x3d\x84\x3d\x85\x3d\x86\x3d\x87\x3d\x88\x3d\x89\x3d\x8a\x3d\x8b\x3d\x8c\x3d\x8d\x3d\x8e\x3d\x8f\x3d\x90\x3d\x91\x3d\x92\x3d\x93\x3d\x94\x3d\x95\x3d\x96\x3d\x97\x3d\x98\x3d\x99\x3d\x9a\x3d\x9b\x3d\x9c\x3d\x9d\x3d\x9e\x3d\x9f\x3d\xa0\x3d\xa1\x3d\xa2\x3d\xa3\x3d\xa4\x3d\xa5\x3d\xa6\x3d\xa7\x3d\xa8\x3d\xa9\x3d\xaa\x3d\xab\x3d\xac\x3d\xad\x3d\xae\x3d\xaf\x3d\xb0\x3d\xb1\x3d\xb2\x3d\xb3\x00\x00", /* dc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\xb4\x3d\xb5\x3d\xb6\x3d\xb7\x3d\xb8\x3d\xb9\x3d\xba\x3d\xbb\x3d\xbc\x3d\xbd\x3d\xbe\x3d\xbf\x3d\xc0\x3d\xc1\x3d\xc2\x3d\xc3\x3d\xc4\x3d\xc5\x3d\xc6\x3d\xc7\x3d\xc8\x3d\xc9\x3d\xca\x3d\xcb\x3d\xcc\x3d\xcd\x3d\xce\x3d\xcf\x3d\xd0\x3d\xd1\x3d\xd2\x3d\xd3\x3d\xd4\x3d\xd5\x3d\xd6\x3d\xd7\x3d\xd8\x3d\xd9\x3d\xda\x3d\xdb\x3d\xdc\x3d\xdd\x3d\xde\x3d\xdf\x3d\xe0\x3d\xe1\x3d\xe2\x3d\xe3\x3d\xe4\x3d\xe5\x3d\xe6\x3d\xe7\x3d\xe8\x3d\xe9\x3d\xea\x3d\xeb\x3d\xec\x3d\xed\x3d\xee\x3d\xef\x3d\xf0\x3d\xf1\x3d\xf2", /* dc80 */ "\x3d\xf3\x3d\xf4\x3d\xf5\x3d\xf6\x3d\xf7\x3d\xf8\x3d\xf9\x3d\xfa\x3d\xfb\x3d\xfc\x3d\xfd\x3d\xfe\x3d\xff\x3e\x00\x3e\x01\x3e\x02\x3e\x03\x3e\x04\x3e\x05\x3e\x06\x3e\x07\x3e\x08\x3e\x09\x3e\x0a\x3e\x0b\x3e\x0c\x3e\x0d\x3e\x0e\x3e\x0f\x3e\x10\x3e\x11\x3e\x12\x3e\x13\x3e\x14\x3e\x15\x3e\x16\x3e\x17\x3e\x18\x3e\x19\x3e\x1a\x3e\x1b\x3e\x1c\x3e\x1d\x3e\x1e\x3e\x1f\x3e\x20\x3e\x21\x3e\x22\x3e\x23\x3e\x24\x3e\x25\x3e\x26\x3e\x27\x3e\x28\x3e\x29\x3e\x2a\x3e\x2b\x3e\x2c\x3e\x2d\x3e\x2e\x3e\x2f\x3e\x30\x3e\x31\x3e\x32\x3e\x33\x3e\x34\x3e\x35\x3e\x36\x3e\x37\x3e\x38\x3e\x39\x3e\x3a\x3e\x3b\x3e\x3c\x3e\x3d\x3e\x3e\x3e\x3f\x3e\x40\x3e\x41\x3e\x42\x3e\x43\x3e\x44\x3e\x45\x3e\x46\x3e\x47\x3e\x48\x3e\x49\x3e\x4a\x3e\x4b\x3e\x4c\x3e\x4d\x3e\x4e\x3e\x4f\x3e\x50\x3e\x51\x3e\x52\x3e\x53\x3e\x54\x3e\x55\x3e\x56\x3e\x57\x3e\x58\x3e\x59\x3e\x5a\x3e\x5b\x3e\x5c\x3e\x5d\x3e\x5e\x3e\x5f\x3e\x60\x3e\x61\x3e\x62\x3e\x63\x3e\x64\x3e\x65\x3e\x66\x3e\x67\x3e\x68\x3e\x69\x3e\x6a\x3e\x6b\x3e\x6c\x3e\x6d\x3e\x6e\x3e\x6f\x3e\x70\x3e\x71\x00\x00", /* dd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x72\x3e\x73\x3e\x74\x3e\x75\x3e\x76\x3e\x77\x3e\x78\x3e\x79\x3e\x7a\x3e\x7b\x3e\x7c\x3e\x7d\x3e\x7e\x3e\x7f\x3e\x80\x3e\x81\x3e\x82\x3e\x83\x3e\x84\x3e\x85\x3e\x86\x3e\x87\x3e\x88\x3e\x89\x3e\x8a\x3e\x8b\x3e\x8c\x3e\x8d\x3e\x8e\x3e\x8f\x3e\x90\x3e\x91\x3e\x92\x3e\x93\x3e\x94\x3e\x95\x3e\x96\x3e\x97\x3e\x98\x3e\x99\x3e\x9a\x3e\x9b\x3e\x9c\x3e\x9d\x3e\x9e\x3e\x9f\x3e\xa0\x3e\xa1\x3e\xa2\x3e\xa3\x3e\xa4\x3e\xa5\x3e\xa6\x3e\xa7\x3e\xa8\x3e\xa9\x3e\xaa\x3e\xab\x3e\xac\x3e\xad\x3e\xae\x3e\xaf\x3e\xb0", /* dd80 */ "\x3e\xb1\x3e\xb2\x3e\xb3\x3e\xb4\x3e\xb5\x3e\xb6\x3e\xb7\x3e\xb8\x3e\xb9\x3e\xba\x3e\xbb\x3e\xbc\x3e\xbd\x3e\xbe\x3e\xbf\x3e\xc0\x3e\xc1\x3e\xc2\x3e\xc3\x3e\xc4\x3e\xc5\x3e\xc6\x3e\xc7\x3e\xc8\x3e\xc9\x3e\xca\x3e\xcb\x3e\xcc\x3e\xcd\x3e\xce\x3e\xcf\x3e\xd0\x3e\xd1\x3e\xd2\x3e\xd3\x3e\xd4\x3e\xd5\x3e\xd6\x3e\xd7\x3e\xd8\x3e\xd9\x3e\xda\x3e\xdb\x3e\xdc\x3e\xdd\x3e\xde\x3e\xdf\x3e\xe0\x3e\xe1\x3e\xe2\x3e\xe3\x3e\xe4\x3e\xe5\x3e\xe6\x3e\xe7\x3e\xe8\x3e\xe9\x3e\xea\x3e\xeb\x3e\xec\x3e\xed\x3e\xee\x3e\xef\x3e\xf0\x3e\xf1\x3e\xf2\x3e\xf3\x3e\xf4\x3e\xf5\x3e\xf6\x3e\xf7\x3e\xf8\x3e\xf9\x3e\xfa\x3e\xfb\x3e\xfc\x3e\xfd\x3e\xfe\x3e\xff\x3f\x00\x3f\x01\x3f\x02\x3f\x03\x3f\x04\x3f\x05\x3f\x06\x3f\x07\x3f\x08\x3f\x09\x3f\x0a\x3f\x0b\x3f\x0c\x3f\x0d\x3f\x0e\x3f\x0f\x3f\x10\x3f\x11\x3f\x12\x3f\x13\x3f\x14\x3f\x15\x3f\x16\x3f\x17\x3f\x18\x3f\x19\x3f\x1a\x3f\x1b\x3f\x1c\x3f\x1d\x3f\x1e\x3f\x1f\x3f\x20\x3f\x21\x3f\x22\x3f\x23\x3f\x24\x3f\x25\x3f\x26\x3f\x27\x3f\x28\x3f\x29\x3f\x2a\x3f\x2b\x3f\x2c\x3f\x2d\x3f\x2e\x3f\x2f\x00\x00", /* de00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x30\x3f\x31\x3f\x32\x3f\x33\x3f\x34\x3f\x35\x3f\x36\x3f\x37\x3f\x38\x3f\x39\x3f\x3a\x3f\x3b\x3f\x3c\x3f\x3d\x3f\x3e\x3f\x3f\x3f\x40\x3f\x41\x3f\x42\x3f\x43\x3f\x44\x3f\x45\x3f\x46\x3f\x47\x3f\x48\x3f\x49\x3f\x4a\x3f\x4b\x3f\x4c\x3f\x4d\x3f\x4e\x3f\x4f\x3f\x50\x3f\x51\x3f\x52\x3f\x53\x3f\x54\x3f\x55\x3f\x56\x3f\x57\x3f\x58\x3f\x59\x3f\x5a\x3f\x5b\x3f\x5c\x3f\x5d\x3f\x5e\x3f\x5f\x3f\x60\x3f\x61\x3f\x62\x3f\x63\x3f\x64\x3f\x65\x3f\x66\x3f\x67\x3f\x68\x3f\x69\x3f\x6a\x3f\x6b\x3f\x6c\x3f\x6d\x3f\x6e", /* de80 */ "\x3f\x6f\x3f\x70\x3f\x71\x3f\x72\x3f\x73\x3f\x74\x3f\x75\x3f\x76\x3f\x77\x3f\x78\x3f\x79\x3f\x7a\x3f\x7b\x3f\x7c\x3f\x7d\x3f\x7e\x3f\x7f\x3f\x80\x3f\x81\x3f\x82\x3f\x83\x3f\x84\x3f\x85\x3f\x86\x3f\x87\x3f\x88\x3f\x89\x3f\x8a\x3f\x8b\x3f\x8c\x3f\x8d\x3f\x8e\x3f\x8f\x3f\x90\x3f\x91\x3f\x92\x3f\x93\x3f\x94\x3f\x95\x3f\x96\x3f\x97\x3f\x98\x3f\x99\x3f\x9a\x3f\x9b\x3f\x9c\x3f\x9d\x3f\x9e\x3f\x9f\x3f\xa0\x3f\xa1\x3f\xa2\x3f\xa3\x3f\xa4\x3f\xa5\x3f\xa6\x3f\xa7\x3f\xa8\x3f\xa9\x3f\xaa\x3f\xab\x3f\xac\x3f\xad\x3f\xae\x3f\xaf\x3f\xb0\x3f\xb1\x3f\xb2\x3f\xb3\x3f\xb4\x3f\xb5\x3f\xb6\x3f\xb7\x3f\xb8\x3f\xb9\x3f\xba\x3f\xbb\x3f\xbc\x3f\xbd\x3f\xbe\x3f\xbf\x3f\xc0\x3f\xc1\x3f\xc2\x3f\xc3\x3f\xc4\x3f\xc5\x3f\xc6\x3f\xc7\x3f\xc8\x3f\xc9\x3f\xca\x3f\xcb\x3f\xcc\x3f\xcd\x3f\xce\x3f\xcf\x3f\xd0\x3f\xd1\x3f\xd2\x3f\xd3\x3f\xd4\x3f\xd5\x3f\xd6\x3f\xd7\x3f\xd8\x3f\xd9\x3f\xda\x3f\xdb\x3f\xdc\x3f\xdd\x3f\xde\x3f\xdf\x3f\xe0\x3f\xe1\x3f\xe2\x3f\xe3\x3f\xe4\x3f\xe5\x3f\xe6\x3f\xe7\x3f\xe8\x3f\xe9\x3f\xea\x3f\xeb\x3f\xec\x3f\xed\x00\x00", /* df00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xee\x3f\xef\x3f\xf0\x3f\xf1\x3f\xf2\x3f\xf3\x3f\xf4\x3f\xf5\x3f\xf6\x3f\xf7\x3f\xf8\x3f\xf9\x3f\xfa\x3f\xfb\x3f\xfc\x3f\xfd\x3f\xfe\x3f\xff\x40\x00\x40\x01\x40\x02\x40\x03\x40\x04\x40\x05\x40\x06\x40\x07\x40\x08\x40\x09\x40\x0a\x40\x0b\x40\x0c\x40\x0d\x40\x0e\x40\x0f\x40\x10\x40\x11\x40\x12\x40\x13\x40\x14\x40\x15\x40\x16\x40\x17\x40\x18\x40\x19\x40\x1a\x40\x1b\x40\x1c\x40\x1d\x40\x1e\x40\x1f\x40\x20\x40\x21\x40\x22\x40\x23\x40\x24\x40\x25\x40\x26\x40\x27\x40\x28\x40\x29\x40\x2a\x40\x2b\x40\x2c", /* df80 */ "\x40\x2d\x40\x2e\x40\x2f\x40\x30\x40\x31\x40\x32\x40\x33\x40\x34\x40\x35\x40\x36\x40\x37\x40\x38\x40\x39\x40\x3a\x40\x3b\x40\x3c\x40\x3d\x40\x3e\x40\x3f\x40\x40\x40\x41\x40\x42\x40\x43\x40\x44\x40\x45\x40\x46\x40\x47\x40\x48\x40\x49\x40\x4a\x40\x4b\x40\x4c\x40\x4d\x40\x4e\x40\x4f\x40\x50\x40\x51\x40\x52\x40\x53\x40\x54\x40\x55\x40\x57\x40\x58\x40\x59\x40\x5a\x40\x5b\x40\x5c\x40\x5d\x40\x5e\x40\x5f\x40\x60\x40\x61\x40\x62\x40\x63\x40\x64\x40\x65\x40\x66\x40\x67\x40\x68\x40\x69\x40\x6a\x40\x6b\x40\x6c\x40\x6d\x40\x6e\x40\x6f\x40\x70\x40\x71\x40\x72\x40\x73\x40\x74\x40\x75\x40\x76\x40\x77\x40\x78\x40\x79\x40\x7a\x40\x7b\x40\x7c\x40\x7d\x40\x7e\x40\x7f\x40\x80\x40\x81\x40\x82\x40\x83\x40\x84\x40\x85\x40\x86\x40\x87\x40\x88\x40\x89\x40\x8a\x40\x8b\x40\x8c\x40\x8d\x40\x8e\x40\x8f\x40\x90\x40\x91\x40\x92\x40\x93\x40\x94\x40\x95\x40\x96\x40\x97\x40\x98\x40\x99\x40\x9a\x40\x9b\x40\x9c\x40\x9d\x40\x9e\x40\x9f\x40\xa0\x40\xa1\x40\xa2\x40\xa3\x40\xa4\x40\xa5\x40\xa6\x40\xa7\x40\xa8\x40\xa9\x40\xaa\x40\xab\x40\xac\x00\x00", /* e000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xad\x40\xae\x40\xaf\x40\xb0\x40\xb1\x40\xb2\x40\xb3\x40\xb4\x40\xb5\x40\xb6\x40\xb7\x40\xb8\x40\xb9\x40\xba\x40\xbb\x40\xbc\x40\xbd\x40\xbe\x40\xbf\x40\xc0\x40\xc1\x40\xc2\x40\xc3\x40\xc4\x40\xc5\x40\xc6\x40\xc7\x40\xc8\x40\xc9\x40\xca\x40\xcb\x40\xcc\x40\xcd\x40\xce\x40\xcf\x40\xd0\x40\xd1\x40\xd2\x40\xd3\x40\xd4\x40\xd5\x40\xd6\x40\xd7\x40\xd8\x40\xd9\x40\xda\x40\xdb\x40\xdc\x40\xdd\x40\xde\x40\xdf\x40\xe0\x40\xe1\x40\xe2\x40\xe3\x40\xe4\x40\xe5\x40\xe6\x40\xe7\x40\xe8\x40\xe9\x40\xea\x40\xeb", /* e080 */ "\x40\xec\x40\xed\x40\xee\x40\xef\x40\xf0\x40\xf1\x40\xf2\x40\xf3\x40\xf4\x40\xf5\x40\xf6\x40\xf7\x40\xf8\x40\xf9\x40\xfa\x40\xfb\x40\xfc\x40\xfd\x40\xfe\x40\xff\x41\x00\x41\x01\x41\x02\x41\x03\x41\x04\x41\x05\x41\x06\x41\x07\x41\x08\x41\x09\x41\x0a\x41\x0b\x41\x0c\x41\x0d\x41\x0e\x41\x0f\x41\x10\x41\x11\x41\x12\x41\x13\x41\x14\x41\x15\x41\x16\x41\x17\x41\x18\x41\x19\x41\x1a\x41\x1b\x41\x1c\x41\x1d\x41\x1e\x41\x1f\x41\x20\x41\x21\x41\x22\x41\x23\x41\x24\x41\x25\x41\x26\x41\x27\x41\x28\x41\x29\x41\x2a\x41\x2b\x41\x2c\x41\x2d\x41\x2e\x41\x2f\x41\x30\x41\x31\x41\x32\x41\x33\x41\x34\x41\x35\x41\x36\x41\x37\x41\x38\x41\x39\x41\x3a\x41\x3b\x41\x3c\x41\x3d\x41\x3e\x41\x3f\x41\x40\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x41\x59\x41\x5a\x41\x5b\x41\x5c\x41\x5d\x41\x5e\x41\x60\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x00\x00", /* e100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x41\x79\x41\x7a\x41\x7b\x41\x7c\x41\x7d\x41\x7e\x41\x7f\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x86\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x41\xa1\x41\xa2\x41\xa3\x41\xa4\x41\xa5\x41\xa6\x41\xa7\x41\xa8\x41\xa9\x41\xaa", /* e180 */ "\x41\xab\x41\xac\x41\xad\x41\xae\x41\xaf\x41\xb0\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x41\xbb\x41\xbc\x41\xbd\x41\xbe\x41\xbf\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc6\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\xe1\x41\xe2\x41\xe3\x41\xe4\x41\xe5\x41\xe6\x41\xe7\x41\xe8\x41\xe9\x41\xea\x41\xeb\x41\xec\x41\xed\x41\xee\x41\xef\x41\xf0\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x41\xfd\x41\xfe\x41\xff\x42\x00\x42\x01\x42\x02\x42\x03\x42\x04\x42\x05\x42\x06\x42\x07\x42\x08\x42\x09\x42\x0a\x42\x0b\x42\x0c\x42\x0d\x42\x0e\x42\x0f\x42\x10\x42\x11\x42\x12\x42\x13\x42\x14\x42\x15\x42\x16\x42\x17\x42\x18\x42\x19\x42\x1a\x42\x1b\x42\x1c\x42\x1d\x42\x1e\x42\x1f\x42\x20\x42\x21\x42\x22\x42\x23\x42\x24\x42\x25\x42\x26\x42\x27\x42\x28\x42\x29\x00\x00", /* e200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x2a\x42\x2b\x42\x2c\x42\x2d\x42\x2e\x42\x2f\x42\x30\x42\x31\x42\x32\x42\x33\x42\x34\x42\x35\x42\x36\x42\x37\x42\x38\x42\x39\x42\x3a\x42\x3b\x42\x3c\x42\x3d\x42\x3e\x42\x3f\x42\x40\x42\x41\x42\x42\x42\x43\x42\x44\x42\x45\x42\x46\x42\x47\x42\x48\x42\x49\x42\x4a\x42\x4b\x42\x4c\x42\x4d\x42\x4e\x42\x4f\x42\x50\x42\x51\x42\x52\x42\x53\x42\x54\x42\x55\x42\x56\x42\x57\x42\x58\x42\x59\x42\x5a\x42\x5b\x42\x5c\x42\x5d\x42\x5e\x42\x5f\x42\x60\x42\x61\x42\x62\x42\x63\x42\x64\x42\x65\x42\x66\x42\x67\x42\x68", /* e280 */ "\x42\x69\x42\x6a\x42\x6b\x42\x6c\x42\x6d\x42\x6e\x42\x6f\x42\x70\x42\x71\x42\x72\x42\x73\x42\x74\x42\x75\x42\x76\x42\x77\x42\x78\x42\x79\x42\x7a\x42\x7b\x42\x7c\x42\x7d\x42\x7e\x42\x7f\x42\x80\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x8a\x42\x8b\x42\x8c\x42\x8d\x42\x8e\x42\x8f\x42\x90\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\x9a\x42\x9b\x42\x9c\x42\x9d\x42\x9e\x42\x9f\x42\xa0\x42\xa1\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xaa\x42\xab\x42\xac\x42\xad\x42\xae\x42\xaf\x42\xb0\x42\xb1\x42\xb2\x42\xb3\x42\xb4\x42\xb5\x42\xb6\x42\xb7\x42\xb8\x42\xb9\x42\xba\x42\xbb\x42\xbc\x42\xbd\x42\xbe\x42\xbf\x42\xc0\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xca\x42\xcb\x42\xcc\x42\xcd\x42\xce\x42\xcf\x42\xd0\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xda\x42\xdb\x42\xdc\x42\xdd\x42\xde\x42\xdf\x42\xe0\x42\xe1\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x00\x00", /* e300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\xe8\x42\xe9\x42\xea\x42\xeb\x42\xec\x42\xed\x42\xee\x42\xef\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\xfa\x42\xfb\x42\xfc\x42\xfd\x42\xfe\x42\xff\x43\x00\x43\x01\x43\x02\x43\x03\x43\x04\x43\x05\x43\x06\x43\x07\x43\x08\x43\x09\x43\x0a\x43\x0b\x43\x0c\x43\x0d\x43\x0e\x43\x0f\x43\x10\x43\x11\x43\x12\x43\x13\x43\x14\x43\x15\x43\x16\x43\x17\x43\x18\x43\x19\x43\x1a\x43\x1b\x43\x1c\x43\x1d\x43\x1e\x43\x1f\x43\x20\x43\x21\x43\x22\x43\x23\x43\x24\x43\x25\x43\x26", /* e380 */ "\x43\x27\x43\x28\x43\x29\x43\x2a\x43\x2b\x43\x2c\x43\x2d\x43\x2e\x43\x2f\x43\x30\x43\x31\x43\x32\x43\x33\x43\x34\x43\x35\x43\x36\x43\x38\x43\x39\x43\x3a\x43\x3b\x43\x3c\x43\x3d\x43\x3e\x43\x3f\x43\x40\x43\x41\x43\x42\x43\x43\x43\x44\x43\x45\x43\x46\x43\x47\x43\x48\x43\x49\x43\x4a\x43\x4b\x43\x4c\x43\x4d\x43\x4e\x43\x4f\x43\x50\x43\x51\x43\x52\x43\x53\x43\x54\x43\x55\x43\x56\x43\x57\x43\x58\x43\x59\x43\x5a\x43\x5b\x43\x5c\x43\x5d\x43\x5e\x43\x5f\x43\x60\x43\x61\x43\x62\x43\x63\x43\x64\x43\x65\x43\x66\x43\x67\x43\x68\x43\x69\x43\x6a\x43\x6b\x43\x6c\x43\x6d\x43\x6e\x43\x6f\x43\x70\x43\x71\x43\x72\x43\x73\x43\x74\x43\x75\x43\x76\x43\x77\x43\x78\x43\x79\x43\x7a\x43\x7b\x43\x7c\x43\x7d\x43\x7e\x43\x7f\x43\x80\x43\x81\x43\x82\x43\x83\x43\x84\x43\x85\x43\x86\x43\x87\x43\x88\x43\x89\x43\x8a\x43\x8b\x43\x8c\x43\x8d\x43\x8e\x43\x8f\x43\x90\x43\x91\x43\x92\x43\x93\x43\x94\x43\x95\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9b\x43\x9c\x43\x9d\x43\x9e\x43\x9f\x43\xa0\x43\xa1\x43\xa2\x43\xa3\x43\xa4\x43\xa5\x43\xa6\x00\x00", /* e400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa7\x43\xa8\x43\xa9\x43\xaa\x43\xab\x43\xad\x43\xae\x43\xaf\x43\xb0\x43\xb2\x43\xb3\x43\xb4\x43\xb5\x43\xb6\x43\xb7\x43\xb8\x43\xb9\x43\xba\x43\xbb\x43\xbc\x43\xbd\x43\xbe\x43\xbf\x43\xc0\x43\xc1\x43\xc2\x43\xc3\x43\xc4\x43\xc5\x43\xc6\x43\xc7\x43\xc8\x43\xc9\x43\xca\x43\xcb\x43\xcc\x43\xcd\x43\xce\x43\xcf\x43\xd0\x43\xd1\x43\xd2\x43\xd3\x43\xd4\x43\xd5\x43\xd6\x43\xd7\x43\xd8\x43\xd9\x43\xda\x43\xdb\x43\xdc\x43\xde\x43\xdf\x43\xe0\x43\xe1\x43\xe2\x43\xe3\x43\xe4\x43\xe5\x43\xe6\x43\xe7\x43\xe8", /* e480 */ "\x43\xe9\x43\xea\x43\xeb\x43\xec\x43\xed\x43\xee\x43\xef\x43\xf0\x43\xf1\x43\xf2\x43\xf3\x43\xf4\x43\xf5\x43\xf6\x43\xf7\x43\xf8\x43\xf9\x43\xfa\x43\xfb\x43\xfc\x43\xfd\x43\xfe\x43\xff\x44\x00\x44\x01\x44\x02\x44\x03\x44\x04\x44\x05\x44\x06\x44\x07\x44\x08\x44\x09\x44\x0a\x44\x0b\x44\x0c\x44\x0d\x44\x0e\x44\x0f\x44\x10\x44\x11\x44\x12\x44\x13\x44\x14\x44\x15\x44\x16\x44\x17\x44\x18\x44\x19\x44\x1a\x44\x1b\x44\x1c\x44\x1d\x44\x1e\x44\x1f\x44\x20\x44\x21\x44\x22\x44\x23\x44\x24\x44\x25\x44\x26\x44\x27\x44\x28\x44\x29\x44\x2a\x44\x2b\x44\x2c\x44\x2d\x44\x2e\x44\x2f\x44\x30\x44\x31\x44\x32\x44\x33\x44\x34\x44\x35\x44\x36\x44\x37\x44\x38\x44\x39\x44\x3a\x44\x3b\x44\x3c\x44\x3d\x44\x3e\x44\x3f\x44\x40\x44\x41\x44\x42\x44\x43\x44\x44\x44\x45\x44\x46\x44\x47\x44\x48\x44\x49\x44\x4a\x44\x4b\x44\x4c\x44\x4d\x44\x4e\x44\x4f\x44\x50\x44\x51\x44\x52\x44\x53\x44\x54\x44\x55\x44\x56\x44\x57\x44\x58\x44\x59\x44\x5a\x44\x5b\x44\x5c\x44\x5d\x44\x5e\x44\x5f\x44\x60\x44\x61\x44\x62\x44\x63\x44\x64\x44\x65\x44\x66\x44\x67\x00\x00", /* e500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x69\x44\x6a\x44\x6b\x44\x6c\x44\x6d\x44\x6e\x44\x6f\x44\x70\x44\x71\x44\x72\x44\x73\x44\x74\x44\x75\x44\x76\x44\x77\x44\x78\x44\x79\x44\x7a\x44\x7b\x44\x7c\x44\x7d\x44\x7e\x44\x7f\x44\x80\x44\x81\x44\x82\x44\x83\x44\x84\x44\x85\x44\x86\x44\x87\x44\x88\x44\x89\x44\x8a\x44\x8b\x44\x8c\x44\x8d\x44\x8e\x44\x8f\x44\x90\x44\x91\x44\x92\x44\x93\x44\x94\x44\x95\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9b\x44\x9c\x44\x9d\x44\x9e\x44\x9f\x44\xa0\x44\xa1\x44\xa2\x44\xa3\x44\xa4\x44\xa5\x44\xa6", /* e580 */ "\x44\xa7\x44\xa8\x44\xa9\x44\xaa\x44\xab\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xb0\x44\xb1\x44\xb2\x44\xb3\x44\xb4\x44\xb5\x44\xb6\x44\xb7\x44\xb8\x44\xb9\x44\xba\x44\xbb\x44\xbc\x44\xbd\x44\xbe\x44\xbf\x44\xc0\x44\xc1\x44\xc2\x44\xc3\x44\xc4\x44\xc5\x44\xc6\x44\xc7\x44\xc8\x44\xc9\x44\xca\x44\xcb\x44\xcc\x44\xcd\x44\xce\x44\xcf\x44\xd0\x44\xd1\x44\xd2\x44\xd3\x44\xd4\x44\xd5\x44\xd7\x44\xd8\x44\xd9\x44\xda\x44\xdb\x44\xdc\x44\xdd\x44\xde\x44\xdf\x44\xe0\x44\xe1\x44\xe2\x44\xe3\x44\xe4\x44\xe5\x44\xe6\x44\xe7\x44\xe8\x44\xe9\x44\xea\x44\xeb\x44\xec\x44\xed\x44\xee\x44\xef\x44\xf0\x44\xf1\x44\xf2\x44\xf3\x44\xf4\x44\xf5\x44\xf6\x44\xf7\x44\xf8\x44\xf9\x44\xfa\x44\xfb\x44\xfc\x44\xfd\x44\xfe\x44\xff\x45\x00\x45\x01\x45\x02\x45\x03\x45\x04\x45\x05\x45\x06\x45\x07\x45\x08\x45\x09\x45\x0a\x45\x0b\x45\x0c\x45\x0d\x45\x0e\x45\x0f\x45\x10\x45\x11\x45\x12\x45\x13\x45\x14\x45\x15\x45\x16\x45\x17\x45\x18\x45\x19\x45\x1a\x45\x1b\x45\x1c\x45\x1d\x45\x1e\x45\x1f\x45\x20\x45\x21\x45\x22\x45\x23\x45\x24\x45\x25\x45\x26\x00\x00", /* e600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x27\x45\x28\x45\x29\x45\x2a\x45\x2b\x45\x2c\x45\x2d\x45\x2e\x45\x2f\x45\x30\x45\x31\x45\x32\x45\x33\x45\x34\x45\x35\x45\x36\x45\x37\x45\x38\x45\x39\x45\x3a\x45\x3b\x45\x3c\x45\x3d\x45\x3e\x45\x3f\x45\x40\x45\x41\x45\x42\x45\x43\x45\x44\x45\x45\x45\x46\x45\x47\x45\x48\x45\x49\x45\x4a\x45\x4b\x45\x4c\x45\x4d\x45\x4e\x45\x4f\x45\x50\x45\x51\x45\x52\x45\x53\x45\x54\x45\x55\x45\x56\x45\x57\x45\x58\x45\x59\x45\x5a\x45\x5b\x45\x5c\x45\x5d\x45\x5e\x45\x5f\x45\x60\x45\x61\x45\x62\x45\x63\x45\x64\x45\x65", /* e680 */ "\x45\x66\x45\x67\x45\x68\x45\x69\x45\x6a\x45\x6b\x45\x6c\x45\x6d\x45\x6e\x45\x6f\x45\x70\x45\x71\x45\x72\x45\x73\x45\x74\x45\x75\x45\x76\x45\x77\x45\x78\x45\x79\x45\x7a\x45\x7b\x45\x7c\x45\x7d\x45\x7e\x45\x7f\x45\x80\x45\x81\x45\x82\x45\x83\x45\x84\x45\x85\x45\x86\x45\x87\x45\x88\x45\x89\x45\x8a\x45\x8b\x45\x8c\x45\x8d\x45\x8e\x45\x8f\x45\x90\x45\x91\x45\x92\x45\x93\x45\x94\x45\x95\x45\x96\x45\x97\x45\x98\x45\x99\x45\x9a\x45\x9b\x45\x9c\x45\x9d\x45\x9e\x45\x9f\x45\xa0\x45\xa1\x45\xa2\x45\xa3\x45\xa4\x45\xa5\x45\xa6\x45\xa7\x45\xa8\x45\xa9\x45\xaa\x45\xab\x45\xac\x45\xad\x45\xae\x45\xaf\x45\xb0\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xd9\x45\xda\x45\xdb\x45\xdc\x45\xdd\x45\xde\x45\xdf\x45\xe0\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x00\x00", /* e700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x45\xeb\x45\xec\x45\xed\x45\xee\x45\xef\x45\xf0\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x45\xfb\x45\xfc\x45\xfd\x45\xfe\x45\xff\x46\x00\x46\x01\x46\x02\x46\x03\x46\x04\x46\x05\x46\x06\x46\x07\x46\x08\x46\x09\x46\x0a\x46\x0b\x46\x0c\x46\x0d\x46\x0e\x46\x0f\x46\x10\x46\x11\x46\x12\x46\x13\x46\x14\x46\x15\x46\x16\x46\x17\x46\x18\x46\x19\x46\x1a\x46\x1b\x46\x1c\x46\x1d\x46\x1e\x46\x1f\x46\x20\x46\x21\x46\x22\x46\x23", /* e780 */ "\x46\x24\x46\x25\x46\x26\x46\x27\x46\x28\x46\x29\x46\x2a\x46\x2b\x46\x2c\x46\x2d\x46\x2e\x46\x2f\x46\x30\x46\x31\x46\x32\x46\x33\x46\x34\x46\x35\x46\x36\x46\x37\x46\x38\x46\x39\x46\x3a\x46\x3b\x46\x3c\x46\x3d\x46\x3e\x46\x3f\x46\x40\x46\x41\x46\x42\x46\x43\x46\x44\x46\x45\x46\x46\x46\x47\x46\x48\x46\x49\x46\x4a\x46\x4b\x46\x4d\x46\x4e\x46\x4f\x46\x50\x46\x51\x46\x52\x46\x53\x46\x54\x46\x55\x46\x56\x46\x57\x46\x58\x46\x59\x46\x5a\x46\x5b\x46\x5c\x46\x5d\x46\x5e\x46\x5f\x46\x60\x46\x62\x46\x63\x46\x64\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x46\x8a\x46\x8b\x46\x8c\x46\x8d\x46\x8e\x46\x8f\x46\x90\x46\x91\x46\x92\x46\x93\x46\x94\x46\x95\x46\x96\x46\x97\x46\x98\x46\x99\x46\x9a\x46\x9b\x46\x9c\x46\x9d\x46\x9e\x46\x9f\x46\xa0\x46\xa1\x46\xa2\x46\xa3\x46\xa4\x00\x00", /* e800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3", /* e880 */ "\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x46\xf0\x46\xf1\x46\xf2\x46\xf3\x46\xf4\x46\xf5\x46\xf6\x46\xf7\x46\xf8\x46\xf9\x46\xfa\x46\xfb\x46\xfc\x46\xfd\x46\xfe\x46\xff\x47\x00\x47\x01\x47\x02\x47\x03\x47\x04\x47\x05\x47\x06\x47\x07\x47\x08\x47\x09\x47\x0a\x47\x0b\x47\x0c\x47\x0d\x47\x0e\x47\x0f\x47\x10\x47\x11\x47\x12\x47\x13\x47\x14\x47\x15\x47\x16\x47\x17\x47\x18\x47\x19\x47\x1a\x47\x1b\x47\x1c\x47\x1d\x47\x1e\x47\x1f\x47\x20\x47\x21\x47\x22\x47\x24\x47\x25\x47\x26\x47\x27\x47\x28\x47\x2a\x47\x2b\x47\x2c\x47\x2d\x47\x2e\x47\x2f\x47\x30\x47\x31\x47\x32\x47\x33\x47\x34\x47\x35\x47\x36\x47\x37\x47\x38\x47\x39\x47\x3a\x47\x3b\x47\x3c\x47\x3d\x47\x3e\x47\x3f\x47\x40\x47\x41\x47\x42\x47\x43\x47\x44\x47\x45\x47\x46\x47\x47\x47\x48\x47\x49\x47\x4a\x47\x4b\x47\x4c\x47\x4d\x47\x4e\x47\x4f\x47\x50\x47\x51\x47\x52\x47\x53\x47\x54\x47\x55\x47\x56\x47\x57\x47\x58\x47\x59\x47\x5a\x47\x5b\x47\x5c\x47\x5d\x47\x5e\x47\x5f\x47\x60\x47\x61\x47\x62\x47\x63\x47\x64\x00\x00", /* e900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x65\x47\x66\x47\x67\x47\x68\x47\x69\x47\x6a\x47\x6b\x47\x6c\x47\x6d\x47\x6e\x47\x6f\x47\x70\x47\x71\x47\x72\x47\x73\x47\x74\x47\x75\x47\x76\x47\x77\x47\x78\x47\x79\x47\x7a\x47\x7b\x47\x7d\x47\x7e\x47\x7f\x47\x80\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x47\xa1\x47\xa2\x47\xa3\x47\xa4\x47\xa5", /* e980 */ "\x47\xa6\x47\xa7\x47\xa8\x47\xa9\x47\xaa\x47\xab\x47\xac\x47\xad\x47\xae\x47\xaf\x47\xb0\x47\xb1\x47\xb2\x47\xb3\x47\xb4\x47\xb5\x47\xb6\x47\xb7\x47\xb8\x47\xb9\x47\xba\x47\xbb\x47\xbc\x47\xbd\x47\xbe\x47\xbf\x47\xc0\x47\xc1\x47\xc2\x47\xc3\x47\xc4\x47\xc5\x47\xc6\x47\xc7\x47\xc8\x47\xc9\x47\xca\x47\xcb\x47\xcc\x47\xcd\x47\xce\x47\xcf\x47\xd0\x47\xd1\x47\xd2\x47\xd3\x47\xd4\x47\xd5\x47\xd6\x47\xd7\x47\xd8\x47\xd9\x47\xda\x47\xdb\x47\xdc\x47\xdd\x47\xde\x47\xdf\x47\xe0\x47\xe1\x47\xe2\x47\xe3\x47\xe4\x47\xe5\x47\xe6\x47\xe7\x47\xe8\x47\xe9\x47\xea\x47\xeb\x47\xec\x47\xed\x47\xee\x47\xef\x47\xf0\x47\xf1\x47\xf2\x47\xf3\x47\xf4\x47\xf5\x47\xf6\x47\xf7\x47\xf8\x47\xf9\x47\xfa\x47\xfb\x47\xfc\x47\xfd\x47\xfe\x47\xff\x48\x00\x48\x01\x48\x02\x48\x03\x48\x04\x48\x05\x48\x06\x48\x07\x48\x08\x48\x09\x48\x0a\x48\x0b\x48\x0c\x48\x0d\x48\x0e\x48\x0f\x48\x10\x48\x11\x48\x12\x48\x13\x48\x14\x48\x15\x48\x16\x48\x17\x48\x18\x48\x19\x48\x1a\x48\x1b\x48\x1c\x48\x1d\x48\x1e\x48\x1f\x48\x20\x48\x21\x48\x22\x48\x23\x48\x24\x00\x00", /* ea00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x25\x48\x26\x48\x27\x48\x28\x48\x29\x48\x2a\x48\x2b\x48\x2c\x48\x2d\x48\x2e\x48\x2f\x48\x30\x48\x31\x48\x32\x48\x33\x48\x34\x48\x35\x48\x36\x48\x37\x48\x38\x48\x39\x48\x3a\x48\x3b\x48\x3c\x48\x3d\x48\x3e\x48\x3f\x48\x40\x48\x41\x48\x42\x48\x43\x48\x44\x48\x45\x48\x46\x48\x47\x48\x48\x48\x49\x48\x4a\x48\x4b\x48\x4c\x48\x4d\x48\x4e\x48\x4f\x48\x50\x48\x51\x48\x52\x48\x53\x48\x54\x48\x55\x48\x56\x48\x57\x48\x58\x48\x59\x48\x5a\x48\x5b\x48\x5c\x48\x5d\x48\x5e\x48\x5f\x48\x60\x48\x61\x48\x62\x48\x63", /* ea80 */ "\x48\x64\x48\x65\x48\x66\x48\x67\x48\x68\x48\x69\x48\x6a\x48\x6b\x48\x6c\x48\x6d\x48\x6e\x48\x6f\x48\x70\x48\x71\x48\x72\x48\x73\x48\x74\x48\x75\x48\x76\x48\x77\x48\x78\x48\x79\x48\x7a\x48\x7b\x48\x7c\x48\x7d\x48\x7e\x48\x7f\x48\x80\x48\x81\x48\x82\x48\x83\x48\x84\x48\x85\x48\x86\x48\x87\x48\x88\x48\x89\x48\x8a\x48\x8b\x48\x8c\x48\x8d\x48\x8e\x48\x8f\x48\x90\x48\x91\x48\x92\x48\x93\x48\x94\x48\x95\x48\x96\x48\x97\x48\x98\x48\x99\x48\x9a\x48\x9b\x48\x9c\x48\x9d\x48\x9e\x48\x9f\x48\xa0\x48\xa1\x48\xa2\x48\xa3\x48\xa4\x48\xa5\x48\xa6\x48\xa7\x48\xa8\x48\xa9\x48\xaa\x48\xab\x48\xac\x48\xad\x48\xae\x48\xaf\x48\xb0\x48\xb1\x48\xb2\x48\xb3\x48\xb4\x48\xb5\x48\xb6\x48\xb7\x48\xb8\x48\xb9\x48\xba\x48\xbb\x48\xbc\x48\xbd\x48\xbe\x48\xbf\x48\xc0\x48\xc1\x48\xc2\x48\xc3\x48\xc4\x48\xc5\x48\xc6\x48\xc7\x48\xc8\x48\xc9\x48\xca\x48\xcb\x48\xcc\x48\xcd\x48\xce\x48\xcf\x48\xd0\x48\xd1\x48\xd2\x48\xd3\x48\xd4\x48\xd5\x48\xd6\x48\xd7\x48\xd8\x48\xd9\x48\xda\x48\xdb\x48\xdc\x48\xdd\x48\xde\x48\xdf\x48\xe0\x48\xe1\x48\xe2\x00\x00", /* eb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xe3\x48\xe4\x48\xe5\x48\xe6\x48\xe7\x48\xe8\x48\xe9\x48\xea\x48\xeb\x48\xec\x48\xed\x48\xee\x48\xef\x48\xf0\x48\xf1\x48\xf2\x48\xf3\x48\xf4\x48\xf5\x48\xf6\x48\xf7\x48\xf8\x48\xf9\x48\xfa\x48\xfb\x48\xfc\x48\xfd\x48\xfe\x48\xff\x49\x00\x49\x01\x49\x02\x49\x03\x49\x04\x49\x05\x49\x06\x49\x07\x49\x08\x49\x09\x49\x0a\x49\x0b\x49\x0c\x49\x0d\x49\x0e\x49\x0f\x49\x10\x49\x11\x49\x12\x49\x13\x49\x14\x49\x15\x49\x16\x49\x17\x49\x18\x49\x19\x49\x1a\x49\x1b\x49\x1c\x49\x1d\x49\x1e\x49\x1f\x49\x20\x49\x21", /* eb80 */ "\x49\x22\x49\x23\x49\x24\x49\x25\x49\x26\x49\x27\x49\x28\x49\x29\x49\x2a\x49\x2b\x49\x2c\x49\x2d\x49\x2e\x49\x2f\x49\x30\x49\x31\x49\x32\x49\x33\x49\x34\x49\x35\x49\x36\x49\x37\x49\x38\x49\x39\x49\x3a\x49\x3b\x49\x3c\x49\x3d\x49\x3e\x49\x3f\x49\x40\x49\x41\x49\x42\x49\x43\x49\x44\x49\x45\x49\x46\x49\x48\x49\x49\x49\x4a\x49\x4b\x49\x4c\x49\x4d\x49\x4e\x49\x4f\x49\x50\x49\x51\x49\x52\x49\x53\x49\x54\x49\x55\x49\x56\x49\x57\x49\x58\x49\x59\x49\x5a\x49\x5b\x49\x5c\x49\x5d\x49\x5e\x49\x5f\x49\x60\x49\x61\x49\x62\x49\x63\x49\x64\x49\x65\x49\x66\x49\x67\x49\x68\x49\x69\x49\x6a\x49\x6b\x49\x6c\x49\x6d\x49\x6e\x49\x6f\x49\x70\x49\x71\x49\x72\x49\x73\x49\x74\x49\x75\x49\x76\x49\x77\x49\x78\x49\x79\x49\x7b\x49\x7c\x49\x7e\x49\x7f\x49\x80\x49\x81\x49\x84\x49\x87\x49\x88\x49\x89\x49\x8a\x49\x8b\x49\x8c\x49\x8d\x49\x8e\x49\x8f\x49\x90\x49\x91\x49\x92\x49\x93\x49\x94\x49\x95\x49\x96\x49\x97\x49\x98\x49\x99\x49\x9a\x49\x9c\x49\x9d\x49\x9e\x49\xa0\x49\xa1\x49\xa2\x49\xa3\x49\xa4\x49\xa5\x49\xa6\x49\xa7\x49\xa8\x49\xa9\x00\x00", /* ec00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xaa\x49\xab\x49\xac\x49\xad\x49\xae\x49\xaf\x49\xb0\x49\xb1\x49\xb2\x49\xb3\x49\xb4\x49\xb5\x49\xb8\x49\xb9\x49\xba\x49\xbb\x49\xbc\x49\xbd\x49\xbe\x49\xbf\x49\xc0\x49\xc1\x49\xc2\x49\xc3\x49\xc4\x49\xc5\x49\xc6\x49\xc7\x49\xc8\x49\xc9\x49\xca\x49\xcb\x49\xcc\x49\xcd\x49\xce\x49\xcf\x49\xd0\x49\xd1\x49\xd2\x49\xd3\x49\xd4\x49\xd5\x49\xd6\x49\xd7\x49\xd8\x49\xd9\x49\xda\x49\xdb\x49\xdc\x49\xdd\x49\xde\x49\xdf\x49\xe0\x49\xe1\x49\xe2\x49\xe3\x49\xe4\x49\xe5\x49\xe6\x49\xe7\x49\xe8\x49\xe9\x49\xea", /* ec80 */ "\x49\xeb\x49\xec\x49\xed\x49\xee\x49\xef\x49\xf0\x49\xf1\x49\xf2\x49\xf3\x49\xf4\x49\xf5\x49\xf6\x49\xf7\x49\xf8\x49\xf9\x49\xfa\x49\xfb\x49\xfc\x49\xfd\x49\xfe\x49\xff\x4a\x00\x4a\x01\x4a\x02\x4a\x03\x4a\x04\x4a\x05\x4a\x06\x4a\x07\x4a\x08\x4a\x09\x4a\x0a\x4a\x0b\x4a\x0c\x4a\x0d\x4a\x0e\x4a\x0f\x4a\x10\x4a\x11\x4a\x12\x4a\x13\x4a\x14\x4a\x15\x4a\x16\x4a\x17\x4a\x18\x4a\x19\x4a\x1a\x4a\x1b\x4a\x1c\x4a\x1d\x4a\x1e\x4a\x1f\x4a\x20\x4a\x21\x4a\x22\x4a\x23\x4a\x24\x4a\x25\x4a\x26\x4a\x27\x4a\x28\x4a\x29\x4a\x2a\x4a\x2b\x4a\x2c\x4a\x2d\x4a\x2e\x4a\x2f\x4a\x30\x4a\x31\x4a\x32\x4a\x33\x4a\x34\x4a\x35\x4a\x36\x4a\x37\x4a\x38\x4a\x39\x4a\x3a\x4a\x3b\x4a\x3c\x4a\x3d\x4a\x3e\x4a\x3f\x4a\x40\x4a\x41\x4a\x42\x4a\x43\x4a\x44\x4a\x45\x4a\x46\x4a\x47\x4a\x48\x4a\x49\x4a\x4a\x4a\x4b\x4a\x4c\x4a\x4d\x4a\x4e\x4a\x4f\x4a\x50\x4a\x51\x4a\x52\x4a\x53\x4a\x54\x4a\x55\x4a\x56\x4a\x57\x4a\x58\x4a\x59\x4a\x5a\x4a\x5b\x4a\x5c\x4a\x5d\x4a\x5e\x4a\x5f\x4a\x60\x4a\x61\x4a\x62\x4a\x63\x4a\x64\x4a\x65\x4a\x66\x4a\x67\x4a\x68\x4a\x69\x00\x00", /* ed00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6a\x4a\x6b\x4a\x6c\x4a\x6d\x4a\x6e\x4a\x6f\x4a\x70\x4a\x71\x4a\x72\x4a\x73\x4a\x74\x4a\x75\x4a\x76\x4a\x77\x4a\x78\x4a\x79\x4a\x7a\x4a\x7b\x4a\x7c\x4a\x7d\x4a\x7e\x4a\x7f\x4a\x80\x4a\x81\x4a\x82\x4a\x83\x4a\x84\x4a\x85\x4a\x86\x4a\x87\x4a\x88\x4a\x89\x4a\x8a\x4a\x8b\x4a\x8c\x4a\x8d\x4a\x8e\x4a\x8f\x4a\x90\x4a\x91\x4a\x92\x4a\x93\x4a\x94\x4a\x95\x4a\x96\x4a\x97\x4a\x98\x4a\x99\x4a\x9a\x4a\x9b\x4a\x9c\x4a\x9d\x4a\x9e\x4a\x9f\x4a\xa0\x4a\xa1\x4a\xa2\x4a\xa3\x4a\xa4\x4a\xa5\x4a\xa6\x4a\xa7\x4a\xa8", /* ed80 */ "\x4a\xa9\x4a\xaa\x4a\xab\x4a\xac\x4a\xad\x4a\xae\x4a\xaf\x4a\xb0\x4a\xb1\x4a\xb2\x4a\xb3\x4a\xb4\x4a\xb5\x4a\xb6\x4a\xb7\x4a\xb8\x4a\xb9\x4a\xba\x4a\xbb\x4a\xbc\x4a\xbd\x4a\xbe\x4a\xbf\x4a\xc0\x4a\xc1\x4a\xc2\x4a\xc3\x4a\xc4\x4a\xc5\x4a\xc6\x4a\xc7\x4a\xc8\x4a\xc9\x4a\xca\x4a\xcb\x4a\xcc\x4a\xcd\x4a\xce\x4a\xcf\x4a\xd0\x4a\xd1\x4a\xd2\x4a\xd3\x4a\xd4\x4a\xd5\x4a\xd6\x4a\xd7\x4a\xd8\x4a\xd9\x4a\xda\x4a\xdb\x4a\xdc\x4a\xdd\x4a\xde\x4a\xdf\x4a\xe0\x4a\xe1\x4a\xe2\x4a\xe3\x4a\xe4\x4a\xe5\x4a\xe6\x4a\xe7\x4a\xe8\x4a\xe9\x4a\xea\x4a\xeb\x4a\xec\x4a\xed\x4a\xee\x4a\xef\x4a\xf0\x4a\xf1\x4a\xf2\x4a\xf3\x4a\xf4\x4a\xf5\x4a\xf6\x4a\xf7\x4a\xf8\x4a\xf9\x4a\xfa\x4a\xfb\x4a\xfc\x4a\xfd\x4a\xfe\x4a\xff\x4b\x00\x4b\x01\x4b\x02\x4b\x03\x4b\x04\x4b\x05\x4b\x06\x4b\x07\x4b\x08\x4b\x09\x4b\x0a\x4b\x0b\x4b\x0c\x4b\x0d\x4b\x0e\x4b\x0f\x4b\x10\x4b\x11\x4b\x12\x4b\x13\x4b\x14\x4b\x15\x4b\x16\x4b\x17\x4b\x18\x4b\x19\x4b\x1a\x4b\x1b\x4b\x1c\x4b\x1d\x4b\x1e\x4b\x1f\x4b\x20\x4b\x21\x4b\x22\x4b\x23\x4b\x24\x4b\x25\x4b\x26\x4b\x27\x00\x00", /* ee00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x28\x4b\x29\x4b\x2a\x4b\x2b\x4b\x2c\x4b\x2d\x4b\x2e\x4b\x2f\x4b\x30\x4b\x31\x4b\x32\x4b\x33\x4b\x34\x4b\x35\x4b\x36\x4b\x37\x4b\x38\x4b\x39\x4b\x3a\x4b\x3b\x4b\x3c\x4b\x3d\x4b\x3e\x4b\x3f\x4b\x40\x4b\x41\x4b\x42\x4b\x43\x4b\x44\x4b\x45\x4b\x46\x4b\x47\x4b\x48\x4b\x49\x4b\x4a\x4b\x4b\x4b\x4c\x4b\x4d\x4b\x4e\x4b\x4f\x4b\x50\x4b\x51\x4b\x52\x4b\x53\x4b\x54\x4b\x55\x4b\x56\x4b\x57\x4b\x58\x4b\x59\x4b\x5a\x4b\x5b\x4b\x5c\x4b\x5d\x4b\x5e\x4b\x5f\x4b\x60\x4b\x61\x4b\x62\x4b\x63\x4b\x64\x4b\x65\x4b\x66", /* ee80 */ "\x4b\x67\x4b\x68\x4b\x69\x4b\x6a\x4b\x6b\x4b\x6c\x4b\x6d\x4b\x6e\x4b\x6f\x4b\x70\x4b\x71\x4b\x72\x4b\x73\x4b\x74\x4b\x75\x4b\x76\x4b\x77\x4b\x78\x4b\x79\x4b\x7a\x4b\x7b\x4b\x7c\x4b\x7d\x4b\x7e\x4b\x7f\x4b\x80\x4b\x81\x4b\x82\x4b\x83\x4b\x84\x4b\x85\x4b\x86\x4b\x87\x4b\x88\x4b\x89\x4b\x8a\x4b\x8b\x4b\x8c\x4b\x8d\x4b\x8e\x4b\x8f\x4b\x90\x4b\x91\x4b\x92\x4b\x93\x4b\x94\x4b\x95\x4b\x96\x4b\x97\x4b\x98\x4b\x99\x4b\x9a\x4b\x9b\x4b\x9c\x4b\x9d\x4b\x9e\x4b\x9f\x4b\xa0\x4b\xa1\x4b\xa2\x4b\xa3\x4b\xa4\x4b\xa5\x4b\xa6\x4b\xa7\x4b\xa8\x4b\xa9\x4b\xaa\x4b\xab\x4b\xac\x4b\xad\x4b\xae\x4b\xaf\x4b\xb0\x4b\xb1\x4b\xb2\x4b\xb3\x4b\xb4\x4b\xb5\x4b\xb6\x4b\xb7\x4b\xb8\x4b\xb9\x4b\xba\x4b\xbb\x4b\xbc\x4b\xbd\x4b\xbe\x4b\xbf\x4b\xc0\x4b\xc1\x4b\xc2\x4b\xc3\x4b\xc4\x4b\xc5\x4b\xc6\x4b\xc7\x4b\xc8\x4b\xc9\x4b\xca\x4b\xcb\x4b\xcc\x4b\xcd\x4b\xce\x4b\xcf\x4b\xd0\x4b\xd1\x4b\xd2\x4b\xd3\x4b\xd4\x4b\xd5\x4b\xd6\x4b\xd7\x4b\xd8\x4b\xd9\x4b\xda\x4b\xdb\x4b\xdc\x4b\xdd\x4b\xde\x4b\xdf\x4b\xe0\x4b\xe1\x4b\xe2\x4b\xe3\x4b\xe4\x4b\xe5\x00\x00", /* ef00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe6\x4b\xe7\x4b\xe8\x4b\xe9\x4b\xea\x4b\xeb\x4b\xec\x4b\xed\x4b\xee\x4b\xef\x4b\xf0\x4b\xf1\x4b\xf2\x4b\xf3\x4b\xf4\x4b\xf5\x4b\xf6\x4b\xf7\x4b\xf8\x4b\xf9\x4b\xfa\x4b\xfb\x4b\xfc\x4b\xfd\x4b\xfe\x4b\xff\x4c\x00\x4c\x01\x4c\x02\x4c\x03\x4c\x04\x4c\x05\x4c\x06\x4c\x07\x4c\x08\x4c\x09\x4c\x0a\x4c\x0b\x4c\x0c\x4c\x0d\x4c\x0e\x4c\x0f\x4c\x10\x4c\x11\x4c\x12\x4c\x13\x4c\x14\x4c\x15\x4c\x16\x4c\x17\x4c\x18\x4c\x19\x4c\x1a\x4c\x1b\x4c\x1c\x4c\x1d\x4c\x1e\x4c\x1f\x4c\x20\x4c\x21\x4c\x22\x4c\x23\x4c\x24", /* ef80 */ "\x4c\x25\x4c\x26\x4c\x27\x4c\x28\x4c\x29\x4c\x2a\x4c\x2b\x4c\x2c\x4c\x2d\x4c\x2e\x4c\x2f\x4c\x30\x4c\x31\x4c\x32\x4c\x33\x4c\x34\x4c\x35\x4c\x36\x4c\x37\x4c\x38\x4c\x39\x4c\x3a\x4c\x3b\x4c\x3c\x4c\x3d\x4c\x3e\x4c\x3f\x4c\x40\x4c\x41\x4c\x42\x4c\x43\x4c\x44\x4c\x45\x4c\x46\x4c\x47\x4c\x48\x4c\x49\x4c\x4a\x4c\x4b\x4c\x4c\x4c\x4d\x4c\x4e\x4c\x4f\x4c\x50\x4c\x51\x4c\x52\x4c\x53\x4c\x54\x4c\x55\x4c\x56\x4c\x57\x4c\x58\x4c\x59\x4c\x5a\x4c\x5b\x4c\x5c\x4c\x5d\x4c\x5e\x4c\x5f\x4c\x60\x4c\x61\x4c\x62\x4c\x63\x4c\x64\x4c\x65\x4c\x66\x4c\x67\x4c\x68\x4c\x69\x4c\x6a\x4c\x6b\x4c\x6c\x4c\x6d\x4c\x6e\x4c\x6f\x4c\x70\x4c\x71\x4c\x72\x4c\x73\x4c\x74\x4c\x75\x4c\x76\x4c\x78\x4c\x79\x4c\x7a\x4c\x7b\x4c\x7c\x4c\x7d\x4c\x7e\x4c\x7f\x4c\x80\x4c\x81\x4c\x82\x4c\x83\x4c\x84\x4c\x85\x4c\x86\x4c\x87\x4c\x88\x4c\x89\x4c\x8a\x4c\x8b\x4c\x8c\x4c\x8d\x4c\x8e\x4c\x8f\x4c\x90\x4c\x91\x4c\x92\x4c\x93\x4c\x94\x4c\x95\x4c\x96\x4c\x97\x4c\x98\x4c\x99\x4c\x9a\x4c\x9b\x4c\x9c\x4c\x9d\x4c\x9e\x4c\xa4\x4c\xa5\x4c\xa6\x4c\xa7\x4c\xa8\x4c\xa9\x00\x00", /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xaa\x4c\xab\x4c\xac\x4c\xad\x4c\xae\x4c\xaf\x4c\xb0\x4c\xb1\x4c\xb2\x4c\xb3\x4c\xb4\x4c\xb5\x4c\xb6\x4c\xb7\x4c\xb8\x4c\xb9\x4c\xba\x4c\xbb\x4c\xbc\x4c\xbd\x4c\xbe\x4c\xbf\x4c\xc0\x4c\xc1\x4c\xc2\x4c\xc3\x4c\xc4\x4c\xc5\x4c\xc6\x4c\xc7\x4c\xc8\x4c\xc9\x4c\xca\x4c\xcb\x4c\xcc\x4c\xcd\x4c\xce\x4c\xcf\x4c\xd0\x4c\xd1\x4c\xd2\x4c\xd3\x4c\xd4\x4c\xd5\x4c\xd6\x4c\xd7\x4c\xd8\x4c\xd9\x4c\xda\x4c\xdb\x4c\xdc\x4c\xdd\x4c\xde\x4c\xdf\x4c\xe0\x4c\xe1\x4c\xe2\x4c\xe3\x4c\xe4\x4c\xe5\x4c\xe6\x4c\xe7\x4c\xe8", /* f680 */ "\x4c\xe9\x4c\xea\x4c\xeb\x4c\xec\x4c\xed\x4c\xee\x4c\xef\x4c\xf0\x4c\xf1\x4c\xf2\x4c\xf3\x4c\xf4\x4c\xf5\x4c\xf6\x4c\xf7\x4c\xf8\x4c\xf9\x4c\xfa\x4c\xfb\x4c\xfc\x4c\xfd\x4c\xfe\x4c\xff\x4d\x00\x4d\x01\x4d\x02\x4d\x03\x4d\x04\x4d\x05\x4d\x06\x4d\x07\x4d\x08\x4d\x09\x4d\x0a\x4d\x0b\x4d\x0c\x4d\x0d\x4d\x0e\x4d\x0f\x4d\x10\x4d\x11\x4d\x12\x4d\x1a\x4d\x1b\x4d\x1c\x4d\x1d\x4d\x1e\x4d\x1f\x4d\x20\x4d\x21\x4d\x22\x4d\x23\x4d\x24\x4d\x25\x4d\x26\x4d\x27\x4d\x28\x4d\x29\x4d\x2a\x4d\x2b\x4d\x2c\x4d\x2d\x4d\x2e\x4d\x2f\x4d\x30\x4d\x31\x4d\x32\x4d\x33\x4d\x34\x4d\x35\x4d\x36\x4d\x37\x4d\x38\x4d\x39\x4d\x3a\x4d\x3b\x4d\x3c\x4d\x3d\x4d\x3e\x4d\x3f\x4d\x40\x4d\x41\x4d\x42\x4d\x43\x4d\x44\x4d\x45\x4d\x46\x4d\x47\x4d\x48\x4d\x49\x4d\x4a\x4d\x4b\x4d\x4c\x4d\x4d\x4d\x4e\x4d\x4f\x4d\x50\x4d\x51\x4d\x52\x4d\x53\x4d\x54\x4d\x55\x4d\x56\x4d\x57\x4d\x58\x4d\x59\x4d\x5a\x4d\x5b\x4d\x5c\x4d\x5d\x4d\x5e\x4d\x5f\x4d\x60\x4d\x61\x4d\x62\x4d\x63\x4d\x64\x4d\x65\x4d\x66\x4d\x67\x4d\x68\x4d\x69\x4d\x6a\x4d\x6b\x4d\x6c\x4d\x6d\x4d\x6e\x00\x00", /* f700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6f\x4d\x70\x4d\x71\x4d\x72\x4d\x73\x4d\x74\x4d\x75\x4d\x76\x4d\x77\x4d\x78\x4d\x79\x4d\x7a\x4d\x7b\x4d\x7c\x4d\x7d\x4d\x7e\x4d\x7f\x4d\x80\x4d\x81\x4d\x82\x4d\x83\x4d\x84\x4d\x85\x4d\x86\x4d\x87\x4d\x88\x4d\x89\x4d\x8a\x4d\x8b\x4d\x8c\x4d\x8d\x4d\x8e\x4d\x8f\x4d\x90\x4d\x91\x4d\x92\x4d\x93\x4d\x94\x4d\x95\x4d\x96\x4d\x97\x4d\x98\x4d\x99\x4d\x9a\x4d\x9b\x4d\x9c\x4d\x9d\x4d\x9e\x4d\x9f\x4d\xa0\x4d\xa1\x4d\xa2\x4d\xa3\x4d\xa4\x4d\xa5\x4d\xa6\x4d\xa7\x4d\xa8\x4d\xa9\x4d\xaa\x4d\xab\x4d\xac\x4d\xad", /* f780 */ "\x4d\xaf\x4d\xb0\x4d\xb1\x4d\xb2\x4d\xb3\x4d\xb4\x4d\xb5\x4d\xb6\x4d\xb7\x4d\xb8\x4d\xb9\x4d\xba\x4d\xbb\x4d\xbc\x4d\xbd\x4d\xbe\x4d\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x56\xfb\x57\xfb\x58\xfb\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x7a\xfb\x7b\xfb\x7c\xfb\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x8e", /* f880 */ "\xfb\x8f\xfb\x90\xfb\x91\xfb\x92\xfb\x93\xfb\x94\xfb\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xaa\xfb\xab\xfb\xac\xfb\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xd3\xfb\xd4\xfb\xd5\xfb\xd6\xfb\xd7\xfb\xd8\xfb\xd9\xfb\xda\xfb\xdb\xfb\xdc\xfb\xdd\xfb\xde\xfb\xdf\xfb\xe0\xfb\xe1\xfb\xe2\xfb\xe3\xfb\xe4\xfb\xe5\xfb\xe6\xfb\xe7\xfb\xe8\xfb\xe9\xfb\xea\xfb\xeb\xfb\xec\xfb\xed\xfb\xee\xfb\xef\xfb\xf0\xfb\xf1\xfb\xf2\xfb\xf3\xfb\xf4\xfb\xf5\xfb\xf6\xfb\xf7\xfb\xf8\xfb\xf9\xfb\xfa\xfb\xfb\xfb\xfc\xfb\xfd\xfb\xfe\xfb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x89\xfe\x8a\xfe\x8b\xfe\x8c\xfe\x8d\xfe\x8e\xfe\x8f\xfe\x90\xfe\x91\xfe\x92\x00\x00\x00\x00\xfe\x95\xfe\x96\xfe\x97\xfe\x98\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x9d\xfe\x9e\xfe\x9f\xfe\xa0\xfe\xa1\xfe\xa2\xfe\xa3\xfe\xa4\xfe\xa5\xfe\xa6\xfe\xa7\xfe\xa8\xfe\xa9\xfe\xaa\x00\x00\x00\x00\xfe\xad\xfe\xae\xfe\xaf\xfe\xb0\xfe\xb1\xfe\xb2\xfe\xb3\xfe\xb4\xfe\xb5\xfe\xb6\xfe\xb7\x00\x00", /* fc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xc9\xfe\xca\xfe\xcb\xfe\xcc\xfe\xcd\xfe\xce\xfe\xcf\xfe\xd0\xfe\xd1\xfe\xd2\xfe\xd3\xfe\xd4\xfe\xd5\xfe\xd6\xfe\xd7\xfe\xd8\xfe\xd9\xfe\xda\xfe\xdb\xfe\xdc\xfe\xdd\xfe\xde\xfe\xdf\xfe\xe0\xfe\xe1\xfe\xe2\xfe\xe3\xfe\xe4\xfe\xe5\xfe\xe6\xfe\xe7\xfe\xe8\xfe\xe9\xfe\xea\xfe\xeb\xfe\xec\xfe\xed\xfe\xee\xfe\xef\xfe\xf0\xfe\xf1\xfe\xf2\xfe\xf3\xfe\xf4\x00\x00\x00\x00", /* fc80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfb\xfe\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { NULL } }; /* Code page aliases. */ typedef struct { char *alias; char *canon; } cpalias_t; cpalias_t cpaliases16[] = { { "chinese-gb18030", "cp1388" }, { "cp1027", "cp930" }, /* historical error */ { "cp290", "cp930" }, /* historical error */ { "cp936", "cp935" }, /* historical error */ { "japanese-1027", "cp930" }, /* historical error */ { "japanese-290", "cp930" }, /* historical error */ { "japanese-kana", "cp930" }, { "japanese-latin", "cp930" }, /* 930 and 939 DBCS are the same */ { "simplified-chinese", "cp935" }, { "traditional-chinese", "cp937" }, { NULL, NULL } }; static uni16_t *cur_uni16 = NULL; void charset_list_dbcs(void) { int i; int j; char *sep = ""; printf("DBCS host code pages (with aliases):\n"); for (i = 0; uni16[i].name != NULL; i++) { Boolean any = False; char *asep = " ("; printf("%s%s", sep, uni16[i].name); for (j = 0; cpaliases16[j].alias != NULL; j++) { if (!strcmp(cpaliases16[j].canon, uni16[i].name)) { printf("%s%s", asep, cpaliases16[j].alias); asep = ", "; any = True; } } if (any) printf(")"); sep = ", "; } printf("\n"); } /* * Translate a single DBCS EBCDIC character to Unicode. * * If EUO_BLANK_UNDEF is set, undisplayable characters are returned as * wide spaces (U+3000); otherwise they are returned as 0. */ ucs4_t ebcdic_dbcs_to_unicode(ebc_t c, unsigned flags) { int row, col; int ix; if (cur_uni16 == NULL || c < 0x100) return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; if (c == 0x4040) return 0x3000; row = (c >> 7) & 0x1ff; if (cur_uni16->ebc2u[row] == NULL) return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; col = (c & 0x7f) * 2; ix = ((cur_uni16->ebc2u[row][col] & 0xff) << 8) | (cur_uni16->ebc2u[row][col + 1] & 0xff); if (ix) return ix; else return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; } /* * Map a UCS-4 character to a DBCS EBCDIC character. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic_dbcs(ucs4_t u) { int row, col; int ix; if (cur_uni16 == NULL || !u) return 0; if (u == 0x3000) return 0x4040; row = (u >> 7) & 0x1ff; if (cur_uni16->u2ebc[row] == NULL) return 0; col = (u & 0x7f) * 2; ix = ((cur_uni16->u2ebc[row][col] & 0xff) << 8) | (cur_uni16->u2ebc[row][col + 1] & 0xff); return ix; } /* * Set the EBCDIC-to-Unicode DBCS translation table. * Returns 0 for success, -1 for failure. */ int set_uni_dbcs(const char *csname, const char **codepage, const char **display_charsets) { int i; const char *realname = csname; int rc = -1; /* Search for an alias. */ for (i = 0; cpaliases16[i].alias != NULL; i++) { if (!strcasecmp(csname, cpaliases16[i].alias)) { realname = cpaliases16[i].canon; break; } } /* Search for a match. */ for (i = 0; uni16[i].name != NULL; i++) { if (!strcasecmp(realname, uni16[i].name)) { cur_uni16 = &uni16[i]; *codepage = uni16[i].codepage; *display_charsets = uni16[i].display_charset; rc = 0; break; } } /* * If this fails (which we sometimes do on purpose), forget any * old setting. */ if (rc == -1) cur_uni16 = NULL; return rc; } #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/3270ds.h0000644000175000017500000003372511254565704015221 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES AND GTRC * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, JEFF * SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * 3270ds.h * * Header file for the 3270 Data Stream Protocol. */ /* 3270 commands */ #define CMD_W 0x01 /* write */ #define CMD_RB 0x02 /* read buffer */ #define CMD_NOP 0x03 /* no-op */ #define CMD_EW 0x05 /* erase/write */ #define CMD_RM 0x06 /* read modified */ #define CMD_EWA 0x0d /* erase/write alternate */ #define CMD_RMA 0x0e /* read modified all */ #define CMD_EAU 0x0f /* erase all unprotected */ #define CMD_WSF 0x11 /* write structured field */ /* SNA 3270 commands */ #define SNA_CMD_RMA 0x6e /* read modified all */ #define SNA_CMD_EAU 0x6f /* erase all unprotected */ #define SNA_CMD_EWA 0x7e /* erase/write alternate */ #define SNA_CMD_W 0xf1 /* write */ #define SNA_CMD_RB 0xf2 /* read buffer */ #define SNA_CMD_WSF 0xf3 /* write structured field */ #define SNA_CMD_EW 0xf5 /* erase/write */ #define SNA_CMD_RM 0xf6 /* read modified */ /* 3270 orders */ #define ORDER_PT 0x05 /* program tab */ #define ORDER_GE 0x08 /* graphic escape */ #define ORDER_SBA 0x11 /* set buffer address */ #define ORDER_EUA 0x12 /* erase unprotected to address */ #define ORDER_IC 0x13 /* insert cursor */ #define ORDER_SF 0x1d /* start field */ #define ORDER_SA 0x28 /* set attribute */ #define ORDER_SFE 0x29 /* start field extended */ #define ORDER_YALE 0x2b /* Yale sub command */ #define ORDER_MF 0x2c /* modify field */ #define ORDER_RA 0x3c /* repeat to address */ #define FCORDER_NULL 0x00 /* format control: null */ #define FCORDER_FF 0x0c /* form feed */ #define FCORDER_CR 0x0d /* carriage return */ #define FCORDER_SO 0x0e /* shift out (DBCS subfield) */ #define FCORDER_SI 0x0f /* shift in (DBCS end) */ #define FCORDER_NL 0x15 /* new line */ #define FCORDER_EM 0x19 /* end of medium */ #define FCORDER_DUP 0x1c /* duplicate */ #define FCORDER_FM 0x1e /* field mark */ #define FCORDER_SUB 0x3f /* substitute */ #define FCORDER_EO 0xff /* eight ones */ /* SCS control code, some overlap orders */ #define SCS_BS 0x16 /* Back Space */ #define SCS_BEL 0x2f /* Bell Function */ #define SCS_CR 0x0d /* Carriage Return */ #define SCS_ENP 0x14 /* Enable Presentation */ #define SCS_FF 0x0c /* Forms Feed */ #define SCS_GE 0x08 /* Graphic Escape */ #define SCS_HT 0x05 /* Horizontal Tab */ #define SCS_INP 0x24 /* Inhibit Presentation */ #define SCS_IRS 0x1e /* Interchange-Record Separator */ #define SCS_LF 0x25 /* Line Feed */ #define SCS_NL 0x15 /* New Line */ #define SCS_SA 0x28 /* Set Attribute: */ #define SCS_SA_RESET 0x00 /* Reset all */ #define SCS_SA_HIGHLIGHT 0x41 /* Highlighting */ #define SCS_SA_CS 0x42 /* Character set */ #define SCS_SA_GRID 0xc2 /* Grid */ #define SCS_SET 0x2b /* Set: */ #define SCS_SHF 0xc1 /* Horizontal format */ #define SCS_SLD 0xc6 /* Line Density */ #define SCS_SVF 0xc2 /* Vertical Format */ #define SCS_SO 0x0e /* Shift out (DBCS subfield start) */ #define SCS_SI 0x0f /* Shift in (DBCS subfield end) */ #define SCS_TRN 0x35 /* Transparent */ #define SCS_VCS 0x04 /* Vertical Channel Select */ #define SCS_VT 0x0b /* Vertical Tab */ /* Structured fields */ #define SF_READ_PART 0x01 /* read partition */ #define SF_RP_QUERY 0x02 /* query */ #define SF_RP_QLIST 0x03 /* query list */ #define SF_RPQ_LIST 0x00 /* QCODE list */ #define SF_RPQ_EQUIV 0x40 /* equivalent+ QCODE list */ #define SF_RPQ_ALL 0x80 /* all */ #define SF_ERASE_RESET 0x03 /* erase/reset */ #define SF_ER_DEFAULT 0x00 /* default */ #define SF_ER_ALT 0x80 /* alternate */ #define SF_SET_REPLY_MODE 0x09 /* set reply mode */ #define SF_SRM_FIELD 0x00 /* field */ #define SF_SRM_XFIELD 0x01 /* extended field */ #define SF_SRM_CHAR 0x02 /* character */ #define SF_CREATE_PART 0x0c /* create partition */ #define CPFLAG_PROT 0x40 /* protected flag */ #define CPFLAG_COPY_PS 0x20 /* local copy to presentation space */ #define CPFLAG_BASE 0x07 /* base character set index */ #define SF_OUTBOUND_DS 0x40 /* outbound 3270 DS */ #define SF_TRANSFER_DATA 0xd0 /* file transfer open request */ /* Query replies */ #define QR_SUMMARY 0x80 /* summary */ #define QR_USABLE_AREA 0x81 /* usable area */ #define QR_IMAGE 0x82 /* image */ #define QR_TEXT_PART 0x83 /* text partitions */ #define QR_ALPHA_PART 0x84 /* alphanumeric partitions */ #define QR_CHARSETS 0x85 /* character sets */ #define QR_COLOR 0x86 /* color */ #define QR_HIGHLIGHTING 0x87 /* highlighting */ #define QR_REPLY_MODES 0x88 /* reply modes */ #define QR_FIELD_VAL 0x8a /* field validation */ #define QR_MSR_CTL 0x8b /* MSR control */ #define QR_OUTLINING 0x8c /* field outlining */ #define QR_PART_CHAR 0x8e /* partition characteristics */ #define QR_OEM_AUX 0x8f /* OEM auxiliary device */ #define QR_FMT_PRES 0x90 /* format presentation */ #define QR_DBCS_ASIA 0x91 /* DBCS-Asia */ #define QR_SAVE_RESTORE 0x92 /* save/restore format */ #define QR_PC3270 0x93 /* PC3270 */ #define QR_FMT_SAD 0x94 /* format storage auxiliary device */ #define QR_DDM 0x95 /* distributed data management */ #define QR_STG_POOLS 0x96 /* storage pools */ #define QR_DIA 0x97 /* document interchange architecture */ #define QR_DATA_CHAIN 0x98 /* data chaining */ #define QR_AUX_DEVICE 0x99 /* auxiliary device */ #define QR_3270_IPDS 0x9a /* 3270 IPDS */ #define QR_PDDS 0x9c /* product defined data stream */ #define QR_IBM_AUX 0x9e /* IBM auxiliary device */ #define QR_BEGIN_EOF 0x9f /* begin/end of file */ #define QR_DEVICE_CHAR 0xa0 /* device characteristics */ #define QR_RPQNAMES 0xa1 /* RPQ names */ #define QR_DATA_STREAMS 0xa2 /* data streams */ #define QR_IMP_PART 0xa6 /* implicit partition */ #define QR_PAPER_FEED 0xa7 /* paper feed techniques */ #define QR_TRANSPARENCY 0xa8 /* transparency */ #define QR_SPC 0xa9 /* settable printer characteristics */ #define QR_IOCA_AD 0xaa /* IOCA auxiliary device */ #define QR_CPR 0xab /* cooperative proc. requestor */ #define QR_SEGMENT 0xb0 /* segment */ #define QR_PROCEDURE 0xb1 /* procedure */ #define QR_LINE_TYPE 0xb2 /* line type */ #define QR_PORT 0xb3 /* port */ #define QR_GCOLOR 0xb4 /* graphic color */ #define QR_XDR 0xb5 /* extended drawing routine */ #define QR_GSS 0xb6 /* graphic symbol sets */ #define QR_NULL 0xff /* null */ #define BA_TO_ROW(ba) ((ba) / COLS) #define BA_TO_COL(ba) ((ba) % COLS) #define ROWCOL_TO_BA(r,c) (((r) * COLS) + c) #define INC_BA(ba) { (ba) = ((ba) + 1) % (COLS * ROWS); } #define DEC_BA(ba) { (ba) = (ba) ? (ba - 1) : ((COLS*ROWS) - 1); } /* Field attributes. */ #define FA_PRINTABLE 0xc0 /* these make the character "printable" */ #define FA_PROTECT 0x20 /* unprotected (0) / protected (1) */ #define FA_NUMERIC 0x10 /* alphanumeric (0) /numeric (1) */ #define FA_INTENSITY 0x0c /* display/selector pen detectable: */ #define FA_INT_NORM_NSEL 0x00 /* 00 normal, non-detect */ #define FA_INT_NORM_SEL 0x04 /* 01 normal, detectable */ #define FA_INT_HIGH_SEL 0x08 /* 10 intensified, detectable */ #define FA_INT_ZERO_NSEL 0x0c /* 11 nondisplay, non-detect */ #define FA_RESERVED 0x02 /* must be 0 */ #define FA_MODIFY 0x01 /* modified (1) */ /* Bits in the field attribute that are stored. */ #define FA_MASK (FA_PROTECT | FA_NUMERIC | FA_INTENSITY | FA_MODIFY) /* Tests for various attribute properties. */ #define FA_IS_MODIFIED(c) ((c) & FA_MODIFY) #define FA_IS_NUMERIC(c) ((c) & FA_NUMERIC) #define FA_IS_PROTECTED(c) ((c) & FA_PROTECT) #define FA_IS_SKIP(c) (((c) & FA_PROTECT) && ((c) & FA_NUMERIC)) #define FA_IS_ZERO(c) \ (((c) & FA_INTENSITY) == FA_INT_ZERO_NSEL) #define FA_IS_HIGH(c) \ (((c) & FA_INTENSITY) == FA_INT_HIGH_SEL) #define FA_IS_NORMAL(c) \ ( \ ((c) & FA_INTENSITY) == FA_INT_NORM_NSEL \ || \ ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \ ) #define FA_IS_SELECTABLE(c) \ ( \ ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \ || \ ((c) & FA_INTENSITY) == FA_INT_HIGH_SEL \ ) #define FA_IS_INTENSE(c) \ ((c & FA_INT_HIGH_SEL) == FA_INT_HIGH_SEL) /* Extended attributes */ #define XA_ALL 0x00 #define XA_3270 0xc0 #define XA_VALIDATION 0xc1 #define XAV_FILL 0x04 #define XAV_ENTRY 0x02 #define XAV_TRIGGER 0x01 #define XA_OUTLINING 0xc2 #define XAO_UNDERLINE 0x01 #define XAO_RIGHT 0x02 #define XAO_OVERLINE 0x04 #define XAO_LEFT 0x08 #define XA_HIGHLIGHTING 0x41 #define XAH_DEFAULT 0x00 #define XAH_NORMAL 0xf0 #define XAH_BLINK 0xf1 #define XAH_REVERSE 0xf2 #define XAH_UNDERSCORE 0xf4 #define XAH_INTENSIFY 0xf8 #define XA_FOREGROUND 0x42 #define XAC_DEFAULT 0x00 #define XA_CHARSET 0x43 #define XA_BACKGROUND 0x45 #define XA_TRANSPARENCY 0x46 #define XAT_DEFAULT 0x00 #define XAT_OR 0xf0 #define XAT_XOR 0xf1 #define XAT_OPAQUE 0xff #define XA_INPUT_CONTROL 0xfe #define XAI_DISABLED 0x00 #define XAI_ENABLED 0x01 /* WCC definitions */ #define WCC_RESET(c) ((c) & 0x40) #define WCC_START_PRINTER(c) ((c) & 0x08) #define WCC_SOUND_ALARM(c) ((c) & 0x04) #define WCC_KEYBOARD_RESTORE(c) ((c) & 0x02) #define WCC_RESET_MDT(c) ((c) & 0x01) /* AIDs */ #define AID_NO 0x60 /* no AID generated */ #define AID_QREPLY 0x61 #define AID_ENTER 0x7d #define AID_PF1 0xf1 #define AID_PF2 0xf2 #define AID_PF3 0xf3 #define AID_PF4 0xf4 #define AID_PF5 0xf5 #define AID_PF6 0xf6 #define AID_PF7 0xf7 #define AID_PF8 0xf8 #define AID_PF9 0xf9 #define AID_PF10 0x7a #define AID_PF11 0x7b #define AID_PF12 0x7c #define AID_PF13 0xc1 #define AID_PF14 0xc2 #define AID_PF15 0xc3 #define AID_PF16 0xc4 #define AID_PF17 0xc5 #define AID_PF18 0xc6 #define AID_PF19 0xc7 #define AID_PF20 0xc8 #define AID_PF21 0xc9 #define AID_PF22 0x4a #define AID_PF23 0x4b #define AID_PF24 0x4c #define AID_OICR 0xe6 #define AID_MSR_MHS 0xe7 #define AID_SELECT 0x7e #define AID_PA1 0x6c #define AID_PA2 0x6e #define AID_PA3 0x6b #define AID_CLEAR 0x6d #define AID_SYSREQ 0xf0 #define AID_SF 0x88 #define SFID_QREPLY 0x81 /* Colors */ #define HOST_COLOR_NEUTRAL_BLACK 0 #define HOST_COLOR_BLUE 1 #define HOST_COLOR_RED 2 #define HOST_COLOR_PINK 3 #define HOST_COLOR_GREEN 4 #define HOST_COLOR_TURQUOISE 5 #define HOST_COLOR_YELLOW 6 #define HOST_COLOR_NEUTRAL_WHITE 7 #define HOST_COLOR_BLACK 8 #define HOST_COLOR_DEEP_BLUE 9 #define HOST_COLOR_ORANGE 10 #define HOST_COLOR_PURPLE 11 #define HOST_COLOR_PALE_GREEN 12 #define HOST_COLOR_PALE_TURQUOISE 13 #define HOST_COLOR_GREY 14 #define HOST_COLOR_WHITE 15 /* Data stream manipulation macros. */ #define MASK32 0xff000000U #define MASK24 0x00ff0000U #define MASK16 0x0000ff00U #define MASK08 0x000000ffU #define MINUS1 0xffffffffU #define SET16(ptr, val) { \ *((ptr)++) = ((val) & MASK16) >> 8; \ *((ptr)++) = ((val) & MASK08); \ } #define GET16(val, ptr) { \ (val) = *((ptr)+1); \ (val) += *(ptr) << 8; \ } #define SET32(ptr, val) { \ *((ptr)++) = ((val) & MASK32) >> 24; \ *((ptr)++) = ((val) & MASK24) >> 16; \ *((ptr)++) = ((val) & MASK16) >> 8; \ *((ptr)++) = ((val) & MASK08); \ } #define HIGH8(s) (((s) >> 8) & 0xff) #define LOW8(s) ((s) & 0xff) /* Other EBCDIC control codes. */ #define EBC_null 0x00 #define EBC_ff 0x0c #define EBC_cr 0x0d #define EBC_so 0x0e #define EBC_si 0x0f #define EBC_nl 0x15 #define EBC_em 0x19 #define EBC_dup 0x1c #define EBC_fm 0x1e #define EBC_sub 0x3f #define EBC_space 0x40 #define EBC_nobreakspace 0x41 #define EBC_period 0x4b #define EBC_ampersand 0x50 #define EBC_underscore 0x6d #define EBC_greater 0x6e #define EBC_question 0x6f #define EBC_Yacute 0xad #define EBC_diaeresis 0xbd #define EBC_minus 0xca #define EBC_0 0xf0 #define EBC_9 0xf9 #define EBC_eo 0xff #define EBC_less 0x4c #define EBC_greaer 0x6e #define EBC_P 0xd7 #define EBC_M 0xd4 #define EBC_U 0xe4 /* Unicode private-use definitions. */ #define UPRIV_GE_00 0xf700 /* first GE */ #define UPRIV_GE_ff 0xf7ff /* last GE */ #define UPRIV_sub 0xf8fc #define UPRIV_eo 0xf8fd #define UPRIV_fm 0xf8fe #define UPRIV_dup 0xf8ff /* BIND definitions. */ #define BIND_RU 0x31 #define BIND_OFF_MAXRU_SEC 10 #define BIND_OFF_MAXRU_PRI 11 #define BIND_OFF_RD 20 #define BIND_OFF_CD 21 #define BIND_OFF_RA 22 #define BIND_OFF_CA 23 #define BIND_OFF_SSIZE 24 #define BIND_OFF_PLU_NAME_LEN 27 #define BIND_PLU_NAME_MAX 8 #define BIND_OFF_PLU_NAME 28 /* Screen sizes. */ #define MODEL_2_ROWS 24 #define MODEL_2_COLS 80 #define MODEL_3_ROWS 32 #define MODEL_3_COLS 80 #define MODEL_4_ROWS 43 #define MODEL_4_COLS 80 #define MODEL_5_ROWS 27 #define MODEL_5_COLS 132 ibm-3270-3.3.10ga4/wc3270/proxy.h0000644000175000017500000000367311254565704015457 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxy.h * Common definitions for proxy. */ #define PROXY_PASSTHRU "passthru" #define PORT_PASSTHRU "3514" #define PROXY_HTTP "http" #define PORT_HTTP "3128" #define PROXY_TELNET "telnet" #define PROXY_SOCKS4 "socks4" #define PORT_SOCKS4 "1080" #define PROXY_SOCKS4A "socks4a" #define PORT_SOCKS4A "1080" #define PROXY_SOCKS5 "socks5" #define PORT_SOCKS5 "1080" #define PROXY_SOCKS5D "socks5d" #define PORT_SOCKS5D "1080" ibm-3270-3.3.10ga4/wc3270/wc3270.ico0000755000175000017500000003107611254565671015552 0ustar bastianbastian@@(2(@€2•¦²­·”¥±}Ÿ…˜¥yœr‡–Yn~e}Žbz‹bz‹bz‹hi€s‰™†š§·Âʤ°º“¢­{]t„Zp“¡t‰˜oƒ’s‡–r‡–r‡–n„”ay‰[t…bzŠd|j‘i‘ay‰m…”n…”rˆ˜u‹švŒœvŒ›wsŠšz†™¦£®·™£s…“Xn~DWgCVfShxYoXn\s„Yq‚]u…^v‡ax‰bzŠhg~f~Žhj€‘n…•m…”q‡—sŠ™xŽ}’¡…™§Šž«‚–¥Šž¬¡®“¦³”¦´’¥²•¨µ–¥sŠ™r‰˜rˆ˜o†•ƒ—¤†˜¤JarF]nH_qJbsQizRj{byŠf}Že|Œhi€p†•uŠ™yŽzŸ”¢•¤€•£}’¢~“¢‚—¥‚—¥‚—¦†š©ˆª‹ž¬‹Ÿ¬Ž¢¯Šž¬„˜§Ž¢¯£±‘¤±¢°“¥³‘¤²u‹›qˆ˜vŒœvŒ›wŒœ˜¨µ¯¼Å’¤¯g}iŽk‚’mƒ“tŠ™xŽœ„™§†›¨‡›©‡›©ˆœª‹ž¬‹Ÿ¬‡›ª„™§‚—¦„˜§€•¤€•¤~”£~”£{‘ |‘ |‘ –¥”£”£„™§†š©„˜§…™¨Ž¡¯‹ž­Šž­Ž¡¯–¨µŠž«uŠš~“¢–¥€•¤|‘¡†š¨“¦²½ÈÏ´ÁÊŽ¢¯¢°Ž¢¯£±“¥³’¥²’¦²”§´’¥³¡¯‹ž­‡œª€•¤zŸvŒœxŽvŒœsŠ™u‹št‰˜wtŠ™s‡–s…“yŠ—x‰–{Œ˜y‹—s…’i|ŠWgtz‹—Šž¬…˜¦†˜¤‹›¥’¥²…™§| †š©‡›©…™¨„˜§Šž¬’¥²¨¹Ã—ª·“¦³’¥²“¦³”§´’¥³Ž¡¯žª…—£‚”¡}s‡•k€eyˆ^p}SeqJ[iQbn7EP1;D!-6*      !+4>MZ *4& VeqŠ«{Ÿ€”£Œ ­¡®‹Ÿ­¡¯Ž¢°ÃÎÕ°¾È”¦³Ž¡¯’¦³˜ª·’¥³•§´]go8@I8>G;CJ.8A%/8&0"#&&!*&0".93@J;HQHVbTbm$,4   '*3;  " !!*Tbm„™¨~“¢ˆœªŽ¡¯¡¯”§´•¨µ¾Éѯ½Ç¡®•¨µ„• ZjuNZc$.7  KZf/9C&-!+5.;G8DNBOZK[hPcq_rhz‡kŒvŠ˜„—¤ŒŸ«œ®¹ž°¼}Š“P\fXcl+4=&/ !% $qƒ‘‰¬…™§¡¯£°˜«·›­¹‘ «©¸Â“¦³fqz  ",  fu€†–¡‚•¡”¢‡š¨…™¦ƒ—¦„˜¦‚—¥‰«¡¯“¦³—ª¶™«· ±¼£´À¦·Â¬¼Æ­½Ç·ÅÌQW]#/;E&# 9DLŠªŠž¬†›©¢°’¥³•¦³K`p€“Ÿœ®¸„”ž!)2 "-'2$+1;?BŠš¥œ®»—ª¶“¦³¢°¢°£°£±•¨µ—ª·—ª·¯º ±½Ÿ±½¢²¾¦·Á®¿È±ÁÊ‚Ž– &+7A ) **4=}‘ž£°‡œ©ˆœª¡¯Œž«CVeo†–„™¦‰œ©³ÀÈ„’œ8@I %1*6"*18u…¢´Àœ®º”§³“¥²¢¯ŒŸ­ŒŸ¬Ž¡®¡®¢¯“¥±’¤±–§³¡­‘¡¬”¤¯’Ÿw…‘-9C#.71>H*7C+)!)1?Iq…“Ž¢°‰ªˆ«’ G2;C-7?$.7*4%$  3@L~’Ÿ‘¥²†›©p‚6K\d{Œc{‹e}h€t‹š—©´P[d:CL+7A%.")%             8FQu…’s„‘GXf;O_e}e|Œd|Œf~Ži€l„“s‰™u‰˜.5; *            ! $ "    *#1="0<,;AVff~Že|hi€‘hj‘lƒ“j€u‰—|œŸ¤¨=DK)1$,4$-)$/*6 .:)5*6.<"3A$5C$6D&8E&8F%7F':I"2A#4C 1A,;+:)9*9 .,&&))!0"0%4Mcsh€i€‘lƒ’i€‘j’lƒ“k‚’k‚’e}Ž`w‡ž§­o|…–¢zˆ’YlzRfvRiyE\n?Vh9Pb7N`6L^5K].DU,BS-CT.CU/EV*?P)=O$8I"5E.?*9'6-*& $ " "'+!/Ndslƒ“k‚’m„”k‚’m„”n…”lƒ“k‚’i€]u†g|‹…˜¦e}Ž[s„Um~H`rE[m>Ug8N`4J\4J\0FW+AR.CT/EV-CT)=N';L%8I"5F-=&4!/) '  ! "  " # $Mbrkƒ’m„“lƒ’lƒ“k‚’n…•m„”j’g^v‡ezŠ€•£d|ŒTl}OgyF^pBYk=Tf8Oa4K\3J[.CU,AS/DU/EV)=N%9J%8I%8I$7H1B&6 -' ! !      !Tjzkƒ’lƒ“n…•o†•lƒ“n…•lƒ“he|Œax‰aw‡}‘ `xˆKcuKbtAXj,<"/) $ &   "   "^u„n…•m„”o†–p‡—n…”p‡—m„”hg~bz‹_u†”¢_u†QgyQi{JbsG^pF^oC[m;Rd9Oa6M^4J\5L^/EV(=N&:K%:K';L#7H 3C0@(6%4 - - -,!/+!.9?N\p‡–r‰˜p‡—n…•p‡—p‡—q‡—o†–j‘hayŠwŒšˆ›¨cyˆbxˆ`wˆXp€NfwLctE\m>Uf=Se:Pb4J\3J\/DV*?P';K%9I(0@#4C4HW`u…v‹švŒœt‹šr‰™qˆ˜qˆ—o†–m„”m„”k‚’hc{Œ„—¤h}‹F[lCWh?Te>Te:O`>TdDYjLbsLbrQfwWm}^u…\r‚Wm~Xo~Wm}Zp€Uk|NeuI`q@Ug?Ug?Vg6K]7K\I`pd{Šrˆ˜wxŽt‹šsŠ™t‹šuŒ›rˆ˜lƒ“j‘mƒ“j‘i€‘e~Žz𢱼ˆ›¨” q„’n€Žqƒ‘zŒ™’Ÿˆ™¦Œž«¡­¡­¢®¡­ŽŸª‹›§ˆ™¥‰š¥‰š¦Šœ¨†™¥†™¦…˜¥€”¡xŒšm‚’Um}e{‹u‹šzŸyŸxŽxu‹št‹štŠšwt‹šlƒ“j‘l‚’j‚‘f~Žc{‹yŒ™°À̵ÄΨ¹Ä—¦°‰•u„Ž_kuY`f^di^dh]dhV]bQY`JSYDOV=GN7>D4:@29C4;D5Dª»ÇªºÅ¨¸Ã¤µÀŸ²½œ¯»š¬¸˜«·•©µ—©¶’¥³¢°Œ ®Šž¬ˆœ«‡œª‡›ª‚–¥wœ).4      "                 ?DI§¸ÃªºÄ©¹Ä¦·Á¡²¾ž°¼˜ª·˜«·–ª¶–¨µ’¥²Ž¢¯‹Ÿ­Šž¬Š¬Šž«†š©ƒ—¦zž).4      "                   CIL¥·Â«¼ÅªºÄ¦¶Á¢³¾Ÿ±¼œ®º™«·”§´•§´‘¤±¢¯ŠŸ­‹ ­Šž¬ˆœ«–¤‚—¥}’¡'+0     # -:@)             Xci¨ºÅ­½ÇªºÅ¨¹Ã£´¿ž°»Ÿ±½™«·’¥³”§´“¦³¢° ®Œ ®Šž¬…š©‚—¥€”¤xž'+0     ! + $80                ju}¨¹Ä®¾ÈªºÄ¨¹Ä¤µÁŸ²½ž°¼™¬¸“¦³•§´“¦³‘¤²£°Ž¢¯ŒŸ®‰¬‡›©“£r‰˜¸ÃÌ)17      # .:              u†¤µÁ®¾ÈªºÄ¨¹Ä¤µÀ¡³¾®º™¬¸“¦³”¦³“¥²“¦³‘¤± ®Šž­ˆœª…™¨“£vŒ›¼ÆÏ+4<        5 &              x…Ž£µÀ­½ÇªºÄ¨¸Ã£´À ±½¯»š¬¸”§´“¦³”§´”§´‘¤²¢°ˆ«†›©ƒ˜¦~”£u‹›ºÅÍ6@G                &‰™£¥¶Á­½ÈªºÅ§¸Ã¤µÀ¡²¾¯»™«·”§´”§´“¦³•¨µ”§´’¥²Œ ®ˆœªƒ—¦”£x¼ÇÏ #include #include #include #include "3270ds.h" #include "tablesc.h" #include "utf8c.h" #include "seec.h" #include "unicodec.h" const char * unknown(unsigned char value) { static char buf[64]; (void) sprintf(buf, "unknown[0x%x]", value); return buf; } const char * see_ebc(unsigned char ch) { static char buf[8]; char mb[16]; ucs4_t uc; switch (ch) { case FCORDER_NULL: return "NULL"; case FCORDER_SUB: return "SUB"; case FCORDER_DUP: return "DUP"; case FCORDER_FM: return "FM"; case FCORDER_FF: return "FF"; case FCORDER_CR: return "CR"; case FCORDER_NL: return "NL"; case FCORDER_EM: return "EM"; case FCORDER_EO: return "EO"; case FCORDER_SI: return "SI"; case FCORDER_SO: return "SO"; } if (ebcdic_to_multibyte_x(ch, CS_BASE, mb, sizeof(mb), EUO_NONE, &uc) && (mb[0] != ' ' || ch == 0x40)) strcpy(buf, mb); else (void) sprintf(buf, "X'%02X'", ch); return buf; } const char * see_aid(unsigned char code) { switch (code) { case AID_NO: return "NoAID"; case AID_ENTER: return "Enter"; case AID_PF1: return "PF1"; case AID_PF2: return "PF2"; case AID_PF3: return "PF3"; case AID_PF4: return "PF4"; case AID_PF5: return "PF5"; case AID_PF6: return "PF6"; case AID_PF7: return "PF7"; case AID_PF8: return "PF8"; case AID_PF9: return "PF9"; case AID_PF10: return "PF10"; case AID_PF11: return "PF11"; case AID_PF12: return "PF12"; case AID_PF13: return "PF13"; case AID_PF14: return "PF14"; case AID_PF15: return "PF15"; case AID_PF16: return "PF16"; case AID_PF17: return "PF17"; case AID_PF18: return "PF18"; case AID_PF19: return "PF19"; case AID_PF20: return "PF20"; case AID_PF21: return "PF21"; case AID_PF22: return "PF22"; case AID_PF23: return "PF23"; case AID_PF24: return "PF24"; case AID_OICR: return "OICR"; case AID_MSR_MHS: return "MSR_MHS"; case AID_SELECT: return "Select"; case AID_PA1: return "PA1"; case AID_PA2: return "PA2"; case AID_PA3: return "PA3"; case AID_CLEAR: return "Clear"; case AID_SYSREQ: return "SysReq"; case AID_QREPLY: return "QueryReplyAID"; default: return unknown(code); } } const char * see_attr(unsigned char fa) { static char buf[256]; const char *paren = "("; buf[0] = '\0'; if (fa & FA_PROTECT) { (void) strcat(buf, paren); (void) strcat(buf, "protected"); paren = ","; if (fa & FA_NUMERIC) { (void) strcat(buf, paren); (void) strcat(buf, "skip"); paren = ","; } } else if (fa & FA_NUMERIC) { (void) strcat(buf, paren); (void) strcat(buf, "numeric"); paren = ","; } switch (fa & FA_INTENSITY) { case FA_INT_NORM_NSEL: break; case FA_INT_NORM_SEL: (void) strcat(buf, paren); (void) strcat(buf, "detectable"); paren = ","; break; case FA_INT_HIGH_SEL: (void) strcat(buf, paren); (void) strcat(buf, "intensified"); paren = ","; break; case FA_INT_ZERO_NSEL: (void) strcat(buf, paren); (void) strcat(buf, "nondisplay"); paren = ","; break; } if (fa & FA_MODIFY) { (void) strcat(buf, paren); (void) strcat(buf, "modified"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(default)"); return buf; } static const char * see_highlight(unsigned char setting) { switch (setting) { case XAH_DEFAULT: return "default"; case XAH_NORMAL: return "normal"; case XAH_BLINK: return "blink"; case XAH_REVERSE: return "reverse"; case XAH_UNDERSCORE: return "underscore"; case XAH_INTENSIFY: return "intensify"; default: return unknown(setting); } } const char * see_color(unsigned char setting) { static const char *color_name[] = { "neutralBlack", "blue", "red", "pink", "green", "turquoise", "yellow", "neutralWhite", "black", "deepBlue", "orange", "purple", "paleGreen", "paleTurquoise", "grey", "white" }; if (setting == XAC_DEFAULT) return "default"; else if (setting < 0xf0) return unknown(setting); else return color_name[setting - 0xf0]; } static const char * see_transparency(unsigned char setting) { switch (setting) { case XAT_DEFAULT: return "default"; case XAT_OR: return "or"; case XAT_XOR: return "xor"; case XAT_OPAQUE: return "opaque"; default: return unknown(setting); } } static const char * see_validation(unsigned char setting) { static char buf[64]; const char *paren = "("; (void) strcpy(buf, ""); if (setting & XAV_FILL) { (void) strcat(buf, paren); (void) strcat(buf, "fill"); paren = ","; } if (setting & XAV_ENTRY) { (void) strcat(buf, paren); (void) strcat(buf, "entry"); paren = ","; } if (setting & XAV_TRIGGER) { (void) strcat(buf, paren); (void) strcat(buf, "trigger"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(none)"); return buf; } static const char * see_outline(unsigned char setting) { static char buf[64]; const char *paren = "("; (void) strcpy(buf, ""); if (setting & XAO_UNDERLINE) { (void) strcat(buf, paren); (void) strcat(buf, "underline"); paren = ","; } if (setting & XAO_RIGHT) { (void) strcat(buf, paren); (void) strcat(buf, "right"); paren = ","; } if (setting & XAO_OVERLINE) { (void) strcat(buf, paren); (void) strcat(buf, "overline"); paren = ","; } if (setting & XAO_LEFT) { (void) strcat(buf, paren); (void) strcat(buf, "left"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(none)"); return buf; } static const char * see_input_control(unsigned char setting) { switch (setting) { case XAI_DISABLED: return "disabled"; case XAI_ENABLED: return "enabled"; default: return unknown(setting); } } const char * see_efa(unsigned char efa, unsigned char value) { static char buf[64]; switch (efa) { case XA_ALL: (void) sprintf(buf, " all(%x)", value); break; case XA_3270: (void) sprintf(buf, " 3270%s", see_attr(value)); break; case XA_VALIDATION: (void) sprintf(buf, " validation%s", see_validation(value)); break; case XA_OUTLINING: (void) sprintf(buf, " outlining(%s)", see_outline(value)); break; case XA_HIGHLIGHTING: (void) sprintf(buf, " highlighting(%s)", see_highlight(value)); break; case XA_FOREGROUND: (void) sprintf(buf, " foreground(%s)", see_color(value)); break; case XA_CHARSET: (void) sprintf(buf, " charset(%x)", value); break; case XA_BACKGROUND: (void) sprintf(buf, " background(%s)", see_color(value)); break; case XA_TRANSPARENCY: (void) sprintf(buf, " transparency(%s)", see_transparency(value)); break; case XA_INPUT_CONTROL: (void) sprintf(buf, " input-control(%s)", see_input_control(value)); break; default: (void) sprintf(buf, " %s[0x%x]", unknown(efa), value); break; } return buf; } const char * see_efa_only(unsigned char efa) { switch (efa) { case XA_ALL: return "all"; case XA_3270: return "3270"; case XA_VALIDATION: return "validation"; case XA_OUTLINING: return "outlining"; case XA_HIGHLIGHTING: return "highlighting"; case XA_FOREGROUND: return "foreground"; case XA_CHARSET: return "charset"; case XA_BACKGROUND: return "background"; case XA_TRANSPARENCY: return "transparency"; default: return unknown(efa); } } const char * see_qcode(unsigned char id) { static char buf[64]; switch (id) { case QR_CHARSETS: return "CharacterSets"; case QR_IMP_PART: return "ImplicitPartition"; case QR_SUMMARY: return "Summary"; case QR_USABLE_AREA: return "UsableArea"; case QR_COLOR: return "Color"; case QR_HIGHLIGHTING: return "Highlighting"; case QR_REPLY_MODES: return "ReplyModes"; case QR_DBCS_ASIA: return "DbcsAsia"; case QR_ALPHA_PART: return "AlphanumericPartitions"; case QR_DDM: return "DistributedDataManagement"; case QR_RPQNAMES: return "RPQNames"; default: (void) sprintf(buf, "unknown[0x%x]", id); return buf; } } #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/xl.h0000644000175000017500000000325211254565704014712 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xl.h * DBCS translation table structure. */ typedef struct { unsigned n; unsigned short *data; } xl_t; #define XL_SIZE(e) ((sizeof(e)/sizeof(e[0]))/3) ibm-3270-3.3.10ga4/wc3270/togglesc.h0000644000175000017500000000365611254565704016106 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * toggles.c * Global declarations for toggles.c. */ extern void do_toggle(int); extern void initialize_toggles(void); extern void shutdown_toggles(void); extern void Toggle_action(Widget, XEvent *, String *, Cardinal *); ibm-3270-3.3.10ga4/wc3270/X11/0000755000175000017500000000000011261530022014444 5ustar bastianbastianibm-3270-3.3.10ga4/wc3270/X11/keysym.h0000644000175000017500000002131011254565673016161 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* X11 keysyms used by c3270, s3270 and tcl3270 */ #if !defined(_x11_keysym_h) /*[*/ #define _x11_keysym_h 1 /* Latin-1 Keysyms */ #define XK_space 0x020 #define XK_exclam 0x021 #define XK_quotedbl 0x022 #define XK_numbersign 0x023 #define XK_dollar 0x024 #define XK_percent 0x025 #define XK_ampersand 0x026 #define XK_apostrophe 0x027 #define XK_quoteright 0x027 #define XK_parenleft 0x028 #define XK_parenright 0x029 #define XK_asterisk 0x02a #define XK_plus 0x02b #define XK_comma 0x02c #define XK_minus 0x02d #define XK_period 0x02e #define XK_slash 0x02f #define XK_0 0x030 #define XK_1 0x031 #define XK_2 0x032 #define XK_3 0x033 #define XK_4 0x034 #define XK_5 0x035 #define XK_6 0x036 #define XK_7 0x037 #define XK_8 0x038 #define XK_9 0x039 #define XK_colon 0x03a #define XK_semicolon 0x03b #define XK_less 0x03c #define XK_equal 0x03d #define XK_greater 0x03e #define XK_question 0x03f #define XK_at 0x040 #define XK_A 0x041 #define XK_B 0x042 #define XK_C 0x043 #define XK_D 0x044 #define XK_E 0x045 #define XK_F 0x046 #define XK_G 0x047 #define XK_H 0x048 #define XK_I 0x049 #define XK_J 0x04a #define XK_K 0x04b #define XK_L 0x04c #define XK_M 0x04d #define XK_N 0x04e #define XK_O 0x04f #define XK_P 0x050 #define XK_Q 0x051 #define XK_R 0x052 #define XK_S 0x053 #define XK_T 0x054 #define XK_U 0x055 #define XK_V 0x056 #define XK_W 0x057 #define XK_X 0x058 #define XK_Y 0x059 #define XK_Z 0x05a #define XK_bracketleft 0x05b #define XK_backslash 0x05c #define XK_bracketright 0x05d #define XK_asciicircum 0x05e #define XK_underscore 0x05f #define XK_grave 0x060 #define XK_quoteleft 0x060 #define XK_a 0x061 #define XK_b 0x062 #define XK_c 0x063 #define XK_d 0x064 #define XK_e 0x065 #define XK_f 0x066 #define XK_g 0x067 #define XK_h 0x068 #define XK_i 0x069 #define XK_j 0x06a #define XK_k 0x06b #define XK_l 0x06c #define XK_m 0x06d #define XK_n 0x06e #define XK_o 0x06f #define XK_p 0x070 #define XK_q 0x071 #define XK_r 0x072 #define XK_s 0x073 #define XK_t 0x074 #define XK_u 0x075 #define XK_v 0x076 #define XK_w 0x077 #define XK_x 0x078 #define XK_y 0x079 #define XK_z 0x07a #define XK_braceleft 0x07b #define XK_bar 0x07c #define XK_braceright 0x07d #define XK_asciitilde 0x07e #define XK_nobreakspace 0x0a0 #define XK_exclamdown 0x0a1 #define XK_cent 0x0a2 #define XK_sterling 0x0a3 #define XK_currency 0x0a4 #define XK_yen 0x0a5 #define XK_brokenbar 0x0a6 #define XK_section 0x0a7 #define XK_diaeresis 0x0a8 #define XK_copyright 0x0a9 #define XK_ordfeminine 0x0aa #define XK_guillemotleft 0x0ab #define XK_notsign 0x0ac #define XK_hyphen 0x0ad #define XK_registered 0x0ae #define XK_macron 0x0af #define XK_degree 0x0b0 #define XK_plusminus 0x0b1 #define XK_twosuperior 0x0b2 #define XK_threesuperior 0x0b3 #define XK_acute 0x0b4 #define XK_mu 0x0b5 #define XK_paragraph 0x0b6 #define XK_periodcentered 0x0b7 #define XK_cedilla 0x0b8 #define XK_onesuperior 0x0b9 #define XK_masculine 0x0ba #define XK_guillemotright 0x0bb #define XK_onequarter 0x0bc #define XK_onehalf 0x0bd #define XK_threequarters 0x0be #define XK_questiondown 0x0bf #define XK_Agrave 0x0c0 #define XK_Aacute 0x0c1 #define XK_Acircumflex 0x0c2 #define XK_Atilde 0x0c3 #define XK_Adiaeresis 0x0c4 #define XK_Aring 0x0c5 #define XK_AE 0x0c6 #define XK_Ccedilla 0x0c7 #define XK_Egrave 0x0c8 #define XK_Eacute 0x0c9 #define XK_Ecircumflex 0x0ca #define XK_Ediaeresis 0x0cb #define XK_Igrave 0x0cc #define XK_Iacute 0x0cd #define XK_Icircumflex 0x0ce #define XK_Idiaeresis 0x0cf #define XK_ETH 0x0d0 #define XK_Eth 0x0d0 #define XK_Ntilde 0x0d1 #define XK_Ograve 0x0d2 #define XK_Oacute 0x0d3 #define XK_Ocircumflex 0x0d4 #define XK_Otilde 0x0d5 #define XK_Odiaeresis 0x0d6 #define XK_multiply 0x0d7 #define XK_Ooblique 0x0d8 #define XK_Ugrave 0x0d9 #define XK_Uacute 0x0da #define XK_Ucircumflex 0x0db #define XK_Udiaeresis 0x0dc #define XK_Yacute 0x0dd #define XK_THORN 0x0de #define XK_Thorn 0x0de #define XK_ssharp 0x0df #define XK_agrave 0x0e0 #define XK_aacute 0x0e1 #define XK_acircumflex 0x0e2 #define XK_atilde 0x0e3 #define XK_adiaeresis 0x0e4 #define XK_aring 0x0e5 #define XK_ae 0x0e6 #define XK_ccedilla 0x0e7 #define XK_egrave 0x0e8 #define XK_eacute 0x0e9 #define XK_ecircumflex 0x0ea #define XK_ediaeresis 0x0eb #define XK_igrave 0x0ec #define XK_iacute 0x0ed #define XK_icircumflex 0x0ee #define XK_idiaeresis 0x0ef #define XK_eth 0x0f0 #define XK_ntilde 0x0f1 #define XK_ograve 0x0f2 #define XK_oacute 0x0f3 #define XK_ocircumflex 0x0f4 #define XK_otilde 0x0f5 #define XK_odiaeresis 0x0f6 #define XK_division 0x0f7 #define XK_oslash 0x0f8 #define XK_ugrave 0x0f9 #define XK_uacute 0x0fa #define XK_ucircumflex 0x0fb #define XK_udiaeresis 0x0fc #define XK_yacute 0x0fd #define XK_thorn 0x0fe #define XK_ydiaeresis 0x0ff #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/toggles.c0000644000175000017500000001326411254565704015732 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * toggles.c * This module handles toggles. */ #include "globals.h" #include "appres.h" #include "ansic.h" #include "actionsc.h" #include "ctlrc.h" #include "menubarc.h" #include "popupsc.h" #include "screenc.h" #include "trace_dsc.h" #include "togglesc.h" /* * Generic toggle stuff */ static void do_toggle_reason(int ix, enum toggle_type reason) { struct toggle *t = &appres.toggle[ix]; /* * Change the value, call the internal update routine, and reset the * menu label(s). */ toggle_toggle(t); if (t->upcall != NULL) t->upcall(t, reason); #if defined(X3270_MENUS) /*[*/ menubar_retoggle(t); #endif /*]*/ } void do_toggle(int ix) { do_toggle_reason(ix, TT_INTERACTIVE); } /* * Called from system initialization code to handle initial toggle settings. */ void initialize_toggles(void) { #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ appres.toggle[MONOCASE].upcall = toggle_monocase; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ appres.toggle[ALT_CURSOR].upcall = toggle_altCursor; appres.toggle[CURSOR_BLINK].upcall = toggle_cursorBlink; appres.toggle[SHOW_TIMING].upcall = toggle_showTiming; appres.toggle[CURSOR_POS].upcall = toggle_cursorPos; appres.toggle[MARGINED_PASTE].upcall = toggle_nop; appres.toggle[RECTANGLE_SELECT].upcall = toggle_nop; appres.toggle[SCROLL_BAR].upcall = toggle_scrollBar; appres.toggle[CROSSHAIR].upcall = toggle_crosshair; appres.toggle[VISIBLE_CONTROL].upcall = toggle_visible_control; #endif /*]*/ #if defined(X3270_TRACE) /*[*/ appres.toggle[DS_TRACE].upcall = toggle_dsTrace; appres.toggle[SCREEN_TRACE].upcall = toggle_screenTrace; appres.toggle[EVENT_TRACE].upcall = toggle_eventTrace; #endif /*]*/ #if defined(X3270_ANSI) /*[*/ appres.toggle[LINE_WRAP].upcall = toggle_lineWrap; #endif /*]*/ appres.toggle[BLANK_FILL].upcall = toggle_nop; #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ appres.toggle[AID_WAIT].upcall = toggle_nop; #endif /*]*/ #if defined(C3270) /*[*/ appres.toggle[UNDERSCORE].upcall = toggle_underscore; #endif /*]*/ #if defined(X3270_TRACE) /*[*/ if (toggled(DS_TRACE)) appres.toggle[DS_TRACE].upcall(&appres.toggle[DS_TRACE], TT_INITIAL); if (toggled(EVENT_TRACE)) appres.toggle[EVENT_TRACE].upcall(&appres.toggle[EVENT_TRACE], TT_INITIAL); if (toggled(SCREEN_TRACE)) appres.toggle[SCREEN_TRACE].upcall(&appres.toggle[SCREEN_TRACE], TT_INITIAL); #endif /*]*/ } /* * Called from system exit code to handle toggles. */ void shutdown_toggles(void) { #if defined(X3270_TRACE) /*[*/ /* Clean up the data stream trace monitor window. */ if (toggled(DS_TRACE)) { appres.toggle[DS_TRACE].value = False; toggle_dsTrace(&appres.toggle[DS_TRACE], TT_FINAL); } if (toggled(EVENT_TRACE)) { appres.toggle[EVENT_TRACE].value = False; toggle_dsTrace(&appres.toggle[EVENT_TRACE], TT_FINAL); } /* Clean up the screen trace file. */ if (toggled(SCREEN_TRACE)) { appres.toggle[SCREEN_TRACE].value = False; toggle_screenTrace(&appres.toggle[SCREEN_TRACE], TT_FINAL); } #endif /*]*/ } void Toggle_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int j; int ix; action_debug(Toggle_action, event, params, num_params); if (check_usage(Toggle_action, *num_params, 1, 2) < 0) return; for (j = 0; toggle_names[j].name != NULL; j++) { if (!strcasecmp(params[0], toggle_names[j].name)) { ix = toggle_names[j].index; break; } } if (toggle_names[j].name == NULL) { popup_an_error("%s: Unknown toggle name '%s'", action_name(Toggle_action), params[0]); return; } if (*num_params == 1) { do_toggle_reason(ix, TT_ACTION); } else if (!strcasecmp(params[1], "set")) { if (!toggled(ix)) { do_toggle_reason(ix, TT_ACTION); } } else if (!strcasecmp(params[1], "clear")) { if (toggled(ix)) { do_toggle_reason(ix, TT_ACTION); } } else { popup_an_error("%s: Unknown keyword '%s' (must be 'set' or " "'clear')", action_name(Toggle_action), params[1]); } } ibm-3270-3.3.10ga4/wc3270/sf.c0000644000175000017500000005524711254565704014705 0ustar bastianbastian/* * Copyright (c) 1994-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell nor their * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * sf.c * This module handles 3270 structured fields. * */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include "3270ds.h" #include "appres.h" #include "screen.h" #include "ctlr.h" #include "resources.h" #include "charsetc.h" #include "ctlrc.h" #if defined(X3270_FT) /*[*/ #include "ft_dftc.h" #endif /*]*/ #include "kybdc.h" #include "screenc.h" #include "seec.h" #include "sfc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utilc.h" /* #define X3270_COMPAT 1 make x3270 compatible with all of the other emulators */ #define SW_3279_2 0x09 #define SH_3279_2 0x0c #define Xr_3279_2 0x000a02e5 #define Yr_3279_2 0x0002006f /* Externals: ctlr.c */ extern Boolean screen_alt; extern unsigned char reply_mode; extern int crm_nattr; extern unsigned char crm_attr[]; /* Statics */ static Boolean qr_in_progress = False; static enum pds sf_read_part(unsigned char buf[], unsigned buflen); static enum pds sf_erase_reset(unsigned char buf[], int buflen); static enum pds sf_set_reply_mode(unsigned char buf[], int buflen); static enum pds sf_create_partition(unsigned char buf[], int buflen); static enum pds sf_outbound_ds(unsigned char buf[], int buflen); static void query_reply_start(void); static void do_query_reply(unsigned char code); static void query_reply_end(void); typedef void qr_single_fn_t(void); typedef Boolean qr_multi_fn_t(unsigned *subindex, Boolean *more); static qr_single_fn_t do_qr_summary, do_qr_usable_area, do_qr_alpha_part, do_qr_charsets, do_qr_color, do_qr_highlighting, do_qr_reply_modes, do_qr_imp_part, do_qr_null; extern qr_single_fn_t do_qr_rpqnames; #if defined(X3270_DBCS) /*[*/ static qr_single_fn_t do_qr_dbcs_asia; #endif /*]*/ #if defined(X3270_FT) /*[*/ static qr_single_fn_t do_qr_ddm; #endif /*]*/ static struct reply { unsigned char code; qr_single_fn_t *single_fn; qr_multi_fn_t *multi_fn; } replies[] = { { QR_SUMMARY, do_qr_summary, NULL }, /* 0x80 */ { QR_USABLE_AREA, do_qr_usable_area, NULL }, /* 0x81 */ { QR_ALPHA_PART, do_qr_alpha_part, NULL }, /* 0x84 */ { QR_CHARSETS, do_qr_charsets, NULL }, /* 0x85 */ { QR_COLOR, do_qr_color, NULL }, /* 0x86 */ { QR_HIGHLIGHTING, do_qr_highlighting, NULL }, /* 0x87 */ { QR_REPLY_MODES, do_qr_reply_modes, NULL }, /* 0x88 */ #if defined(X3270_DBCS) /*[*/ { QR_DBCS_ASIA, do_qr_dbcs_asia, NULL }, /* 0x91 */ #endif /*]*/ #if defined(X3270_FT) /*[*/ { QR_DDM, do_qr_ddm, NULL }, /* 0x95 */ #endif /*]*/ { QR_RPQNAMES, do_qr_rpqnames, NULL }, /* 0xa1 */ { QR_IMP_PART, do_qr_imp_part, NULL }, /* 0xa6 */ /* QR_NULL must be last in the table */ { QR_NULL, do_qr_null, NULL }, /* 0xff */ }; /* * NSR_ALL is the number of query replies supported, including NULL. * NSR is the number of query replies supported, except for NULL. */ #define NSR_ALL (sizeof(replies)/sizeof(struct reply)) #define NSR (NSR_ALL - 1) /* * Process a 3270 Write Structured Field command */ enum pds write_structured_field(unsigned char buf[], int buflen) { unsigned short fieldlen; unsigned char *cp = buf; Boolean first = True; enum pds rv = PDS_OKAY_NO_OUTPUT; enum pds rv_this = PDS_OKAY_NO_OUTPUT; Boolean bad_cmd = False; /* Skip the WSF command itself. */ cp++; buflen--; /* Interpret fields. */ while (buflen > 0) { if (first) trace_ds(" "); else trace_ds("< WriteStructuredField "); first = False; /* Pick out the field length. */ if (buflen < 2) { trace_ds("error: single byte at end of message\n"); return rv ? rv : PDS_BAD_CMD; } fieldlen = (cp[0] << 8) + cp[1]; if (fieldlen == 0) fieldlen = buflen; if (fieldlen < 3) { trace_ds("error: field length %d too small\n", fieldlen); return rv ? rv : PDS_BAD_CMD; } if ((int)fieldlen > buflen) { trace_ds("error: field length %d exceeds remaining " "message length %d\n", fieldlen, buflen); return rv ? rv : PDS_BAD_CMD; } /* Dispatch on the ID. */ switch (cp[2]) { case SF_READ_PART: trace_ds("ReadPartition"); rv_this = sf_read_part(cp, (int)fieldlen); break; case SF_ERASE_RESET: trace_ds("EraseReset"); rv_this = sf_erase_reset(cp, (int)fieldlen); break; case SF_SET_REPLY_MODE: trace_ds("SetReplyMode"); rv_this = sf_set_reply_mode(cp, (int)fieldlen); break; case SF_CREATE_PART: trace_ds("CreatePartition"); rv_this = sf_create_partition(cp, (int)fieldlen); break; case SF_OUTBOUND_DS: trace_ds("OutboundDS"); rv_this = sf_outbound_ds(cp, (int)fieldlen); break; #if defined(X3270_FT) /*[*/ case SF_TRANSFER_DATA: /* File transfer data */ trace_ds("FileTransferData"); ft_dft_data(cp, (int)fieldlen); break; #endif /*]*/ default: trace_ds("unsupported ID 0x%02x\n", cp[2]); rv_this = PDS_BAD_CMD; break; } /* * Accumulate errors or output flags. * One real ugliness here is that if we have already * generated some output, then we have already positively * acknowledged the request, so if we fail here, we have no * way to return the error indication. */ if (rv_this < 0) bad_cmd = True; else rv |= rv_this; /* Skip to the next field. */ cp += fieldlen; buflen -= fieldlen; } if (first) trace_ds(" (null)\n"); if (bad_cmd && !rv) return PDS_BAD_CMD; else return rv; } static enum pds sf_read_part(unsigned char buf[], unsigned buflen) { unsigned char partition; unsigned i; int any = 0; const char *comma = ""; if (buflen < 5) { trace_ds(" error: field length %d too small\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; trace_ds("(0x%02x)", partition); switch (buf[4]) { case SF_RP_QUERY: trace_ds(" Query"); if (partition != 0xff) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); query_reply_start(); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(replies[i].code); } query_reply_end(); break; case SF_RP_QLIST: trace_ds(" QueryList "); if (partition != 0xff) { trace_ds("error: illegal partition\n"); return PDS_BAD_CMD; } if (buflen < 6) { trace_ds("error: missing request type\n"); return PDS_BAD_CMD; } query_reply_start(); switch (buf[5]) { case SF_RPQ_LIST: trace_ds("List("); if (buflen < 7) { trace_ds(")\n"); do_query_reply(QR_NULL); } else { for (i = 6; i < buflen; i++) { trace_ds("%s%s", comma, see_qcode(buf[i])); comma = ","; } trace_ds(")\n"); for (i = 0; i < NSR; i++) { if (memchr((char *)&buf[6], (char)replies[i].code, buflen-6) #if defined(X3270_DBCS) /*[*/ && (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ ) { do_query_reply(replies[i].code); any++; } } if (!any) { do_query_reply(QR_NULL); } } break; case SF_RPQ_EQUIV: trace_ds("Equivlent+List("); for (i = 6; i < buflen; i++) { trace_ds("%s%s", comma, see_qcode(buf[i])); comma = ","; } trace_ds(")\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(replies[i].code); break; case SF_RPQ_ALL: trace_ds("All\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(replies[i].code); break; default: trace_ds("unknown request type 0x%02x\n", buf[5]); return PDS_BAD_CMD; } query_reply_end(); break; case SNA_CMD_RMA: trace_ds(" ReadModifiedAll"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); ctlr_read_modified(AID_QREPLY, True); break; case SNA_CMD_RB: trace_ds(" ReadBuffer"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); ctlr_read_buffer(AID_QREPLY); break; case SNA_CMD_RM: trace_ds(" ReadModified"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); ctlr_read_modified(AID_QREPLY, False); break; default: trace_ds(" unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_OUTPUT; } static enum pds sf_erase_reset(unsigned char buf[], int buflen) { if (buflen != 4) { trace_ds(" error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } switch (buf[3]) { case SF_ER_DEFAULT: trace_ds(" Default\n"); ctlr_erase(False); break; case SF_ER_ALT: trace_ds(" Alternate\n"); ctlr_erase(True); break; default: trace_ds(" unknown type 0x%02x\n", buf[3]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static enum pds sf_set_reply_mode(unsigned char buf[], int buflen) { unsigned char partition; int i; const char *comma = "("; if (buflen < 5) { trace_ds(" error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; trace_ds("(0x%02x)", partition); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } switch (buf[4]) { case SF_SRM_FIELD: trace_ds(" Field\n"); break; case SF_SRM_XFIELD: trace_ds(" ExtendedField\n"); break; case SF_SRM_CHAR: trace_ds(" Character"); break; default: trace_ds(" unknown mode 0x%02x\n", buf[4]); return PDS_BAD_CMD; } reply_mode = buf[4]; if (buf[4] == SF_SRM_CHAR) { crm_nattr = buflen - 5; for (i = 5; i < buflen; i++) { crm_attr[i - 5] = buf[i]; trace_ds("%s%s", comma, see_efa_only(buf[i])); comma = ","; } trace_ds("%s\n", crm_nattr ? ")" : ""); } return PDS_OKAY_NO_OUTPUT; } static enum pds sf_create_partition(unsigned char buf[], int buflen) { unsigned char pid; unsigned char uom; /* unit of measure */ unsigned char am; /* addressing mode */ unsigned char flags; /* flags */ unsigned short h; /* height of presentation space */ unsigned short w; /* width of presentation space */ unsigned short rv; /* viewport origin row */ unsigned short cv; /* viewport origin column */ unsigned short hv; /* viewport height */ unsigned short wv; /* viewport width */ unsigned short rw; /* window origin row */ unsigned short cw; /* window origin column */ unsigned short rs; /* scroll rows */ /* hole */ unsigned short pw; /* character cell point width */ unsigned short ph; /* character cell point height */ #if defined(X3270_TRACE) /*[*/ static const char *bit4[16] = { "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" }; #endif /*]*/ if (buflen > 3) { trace_ds("("); /* Partition. */ pid = buf[3]; trace_ds("pid=0x%02x", pid); if (pid != 0x00) { trace_ds(") error: illegal partition\n"); return PDS_BAD_CMD; } } else pid = 0x00; if (buflen > 4) { uom = (buf[4] & 0xf0) >> 4; trace_ds(",uom=B'%s'", bit4[uom]); if (uom != 0x0 && uom != 0x02) { trace_ds(") error: illegal units\n"); return PDS_BAD_CMD; } am = buf[4] & 0x0f; trace_ds(",am=B'%s'", bit4[am]); if (am > 0x2) { trace_ds(") error: illegal a-mode\n"); return PDS_BAD_CMD; } } else { uom = 0; am = 0; } if (buflen > 5) { flags = buf[5]; trace_ds(",flags=0x%02x", flags); } else flags = 0; if (buflen > 7) { GET16(h, &buf[6]); trace_ds(",h=%d", h); } else h = maxROWS; if (buflen > 9) { GET16(w, &buf[8]); trace_ds(",w=%d", w); } else w = maxCOLS; if (buflen > 11) { GET16(rv, &buf[10]); trace_ds(",rv=%d", rv); } else rv = 0; if (buflen > 13) { GET16(cv, &buf[12]); trace_ds(",cv=%d", cv); } else cv = 0; if (buflen > 15) { GET16(hv, &buf[14]); trace_ds(",hv=%d", hv); } else hv = (h > maxROWS)? maxROWS: h; if (buflen > 17) { GET16(wv, &buf[16]); trace_ds(",wv=%d", wv); } else wv = (w > maxCOLS)? maxCOLS: w; if (buflen > 19) { GET16(rw, &buf[18]); trace_ds(",rw=%d", rw); } else rw = 0; if (buflen > 21) { GET16(cw, &buf[20]); trace_ds(",cw=%d", cw); } else cw = 0; if (buflen > 23) { GET16(rs, &buf[22]); trace_ds(",rs=%d", rs); } else rs = (h > hv)? 1: 0; if (buflen > 27) { GET16(pw, &buf[26]); trace_ds(",pw=%d", pw); } else pw = *char_width; if (buflen > 29) { GET16(ph, &buf[28]); trace_ds(",ph=%d", ph); } else ph = *char_height; trace_ds(")\n"); cursor_move(0); buffer_addr = 0; return PDS_OKAY_NO_OUTPUT; } static enum pds sf_outbound_ds(unsigned char buf[], int buflen) { enum pds rv; if (buflen < 5) { trace_ds(" error: field length %d too short\n", buflen); return PDS_BAD_CMD; } trace_ds("(0x%02x)", buf[3]); if (buf[3] != 0x00) { trace_ds(" error: illegal partition 0x%0x\n", buf[3]); return PDS_BAD_CMD; } switch (buf[4]) { case SNA_CMD_W: trace_ds(" Write"); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, False)) < 0) return rv; } else trace_ds("\n"); break; case SNA_CMD_EW: trace_ds(" EraseWrite"); ctlr_erase(screen_alt); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, True)) < 0) return rv; } else trace_ds("\n"); break; case SNA_CMD_EWA: trace_ds(" EraseWriteAlternate"); ctlr_erase(screen_alt); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, True)) < 0) return rv; } else trace_ds("\n"); break; case SNA_CMD_EAU: trace_ds(" EraseAllUnprotected\n"); ctlr_erase_all_unprotected(); break; default: trace_ds(" unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static void query_reply_start(void) { obptr = obuf; space3270out(1); *obptr++ = AID_SF; qr_in_progress = True; } static void do_query_reply(unsigned char code) { unsigned i; unsigned subindex = 0; Boolean more = False; /* Find the right entry in the reply table. */ for (i = 0; i < NSR_ALL; i++) { if (replies[i].code == code) break; } if (i >= NSR_ALL || (replies[i].single_fn == NULL && replies[i].multi_fn == NULL)) return; if (qr_in_progress) { trace_ds("> StructuredField\n"); qr_in_progress = False; } do { int obptr0 = obptr - obuf; Boolean full = True; space3270out(4); obptr += 2; /* skip length for now */ *obptr++ = SFID_QREPLY; *obptr++ = code; more = False; if (replies[i].single_fn) replies[i].single_fn(); else full = replies[i].multi_fn(&subindex, &more); if (full) { int len; unsigned char *obptr_len; /* Fill in the length. */ obptr_len = obuf + obptr0; len = (obptr - obuf) - obptr0; SET16(obptr_len, len); } else { /* Back over the header. */ obptr -= 4; } } while (more); } static void do_qr_null(void) { trace_ds("> QueryReply(Null)\n"); } static void do_qr_summary(void) { unsigned i; const char *comma = ""; trace_ds("> QueryReply(Summary("); space3270out(NSR); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) { #endif /*]*/ trace_ds("%s%s", comma, see_qcode(replies[i].code)); comma = ","; *obptr++ = replies[i].code; #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ } trace_ds("))\n"); } static void do_qr_usable_area(void) { trace_ds("> QueryReply(UsableArea)\n"); space3270out(19); *obptr++ = 0x01; /* 12/14-bit addressing */ *obptr++ = 0x00; /* no special character features */ SET16(obptr, maxCOLS); /* usable width */ SET16(obptr, maxROWS); /* usable height */ *obptr++ = 0x01; /* units (mm) */ SET32(obptr, Xr_3279_2); /* Xr, canned from 3279-2 */ SET32(obptr, Yr_3279_2); /* Yr, canned from 3279-2 */ /* * If we ever implement graphics, these will * need to change. */ *obptr++ = SW_3279_2; /* AW, canned from 3279-2 */ *obptr++ = SH_3279_2; /* AH, canned from 3279-2 */ SET16(obptr, maxCOLS*maxROWS); /* buffer, questionable */ } static void do_qr_color(void) { int i; int color_max; trace_ds("> QueryReply(Color)\n"); color_max = (appres.color8 || !appres.m3279)? 8: 16; space3270out(4 + 2*15); *obptr++ = 0x00; /* no options */ *obptr++ = color_max; /* report on 8 or 16 colors */ *obptr++ = 0x00; /* default color: */ *obptr++ = 0xf0 + HOST_COLOR_GREEN; /* green */ for (i = 0xf1; i < 0xf1 + color_max - 1; i++) { *obptr++ = i; if (appres.m3279) *obptr++ = i; else *obptr++ = 0x00; } #if defined(X3270_COMPAT) || !defined(X3270_DISPLAY) /*[*/ /* Add background color. */ if (appres.m3279) { space3270out(4); *obptr++ = 4; /* length */ *obptr++ = 0x02; /* background color */ *obptr++ = 0x00; /* attribute */ *obptr++ = 0xf0; /* default color */ } #endif /*]*/ } static void do_qr_highlighting(void) { trace_ds("> QueryReply(Highlighting)\n"); space3270out(11); *obptr++ = 5; /* report on 5 pairs */ *obptr++ = XAH_DEFAULT; /* default: */ *obptr++ = XAH_NORMAL; /* normal */ *obptr++ = XAH_BLINK; /* blink: */ *obptr++ = XAH_BLINK; /* blink */ *obptr++ = XAH_REVERSE; /* reverse: */ *obptr++ = XAH_REVERSE; /* reverse */ *obptr++ = XAH_UNDERSCORE; /* underscore: */ *obptr++ = XAH_UNDERSCORE; /* underscore */ *obptr++ = XAH_INTENSIFY; /* intensify: */ *obptr++ = XAH_INTENSIFY; /* intensify */ } static void do_qr_reply_modes(void) { trace_ds("> QueryReply(ReplyModes)\n"); space3270out(3); *obptr++ = SF_SRM_FIELD; *obptr++ = SF_SRM_XFIELD; *obptr++ = SF_SRM_CHAR; } #if defined(X3270_DBCS) /*[*/ static void do_qr_dbcs_asia(void) { /* XXX: Should we support this, even when not in DBCS mode? */ trace_ds("> QueryReply(DbcsAsia)\n"); space3270out(7); *obptr++ = 0x00; /* flags (none) */ *obptr++ = 0x03; /* field length 3 */ *obptr++ = 0x01; /* SI/SO supported */ *obptr++ = 0x80; /* character set ID 0x80 */ *obptr++ = 0x03; /* field length 3 */ *obptr++ = 0x02; /* input control */ *obptr++ = 0x01; /* creation supported */ } #endif /*]*/ static void do_qr_alpha_part(void) { trace_ds("> QueryReply(AlphanumericPartitions)\n"); space3270out(4); *obptr++ = 0; /* 1 partition */ SET16(obptr, maxROWS*maxCOLS); /* buffer space */ *obptr++ = 0; /* no special features */ } static void do_qr_charsets(void) { trace_ds("> QueryReply(CharacterSets)\n"); space3270out(64); #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x8e; /* flags: GE, CGCSGID, DBCS */ else #endif /*]*/ *obptr++ = 0x82; /* flags: GE, CGCSGID present */ *obptr++ = 0x00; /* more flags */ *obptr++ = SW_3279_2; /* SDW, canned from 3279-2 */ *obptr++ = SH_3279_2; /* SDW, canned from 3279-2 */ *obptr++ = 0x00; /* no load PS */ *obptr++ = 0x00; *obptr++ = 0x00; *obptr++ = 0x00; #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x0b; /* DL (11 bytes) */ else #endif /*]*/ *obptr++ = 0x07; /* DL (7 bytes) */ *obptr++ = 0x00; /* SET 0: */ #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x00; /* FLAGS: non-load, single- plane, single-byte */ else #endif /*]*/ *obptr++ = 0x10; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ *obptr++ = 0x00; /* LCID 0 */ #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x00; /* SW 0 */ *obptr++ = 0x00; /* SH 0 */ *obptr++ = 0x00; /* SUBSN */ *obptr++ = 0x00; /* SUBSN */ } #endif /*]*/ SET32(obptr, cgcsgid); /* CGCSGID */ /* special 3270 font, includes APL */ *obptr++ = 0x01;/* SET 1: */ if (appres.apl_mode) *obptr++ = 0x00; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ else *obptr++ = 0x10; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ *obptr++ = 0xf1; /* LCID */ #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x00; /* SW 0 */ *obptr++ = 0x00; /* SH 0 */ *obptr++ = 0x00; /* SUBSN */ *obptr++ = 0x00; /* SUBSN */ } #endif /*]*/ *obptr++ = 0x03; /* CGCSGID: 3179-style APL2 */ *obptr++ = 0xc3; *obptr++ = 0x01; *obptr++ = 0x36; #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x80; /* SET 0x80: */ *obptr++ = 0x20; /* FLAGS: DBCS */ *obptr++ = 0xf8; /* LCID: 0xf8 */ *obptr++ = SW_3279_2 * 2; /* SW, canned from 3279-2 */ *obptr++ = SH_3279_2; /* SH, canned from 3279-2 */ *obptr++ = 0x41; /* SUBSN */ *obptr++ = 0x7f; /* SUBSN */ SET32(obptr, cgcsgid_dbcs); /* CGCSGID */ } #endif /*]*/ } #if defined(X3270_FT) /*[*/ static void do_qr_ddm(void) { set_dft_buffersize(); trace_ds("> QueryReply(DistributedDataManagement)\n"); space3270out(8); SET16(obptr,0); /* set reserved field to 0 */ SET16(obptr, dft_buffersize); /* set inbound length limit INLIM */ SET16(obptr, dft_buffersize); /* set outbound length limit OUTLIM */ SET16(obptr, 0x0101); /* NSS=01, DDMSS=01 */ } #endif /*]*/ static void do_qr_imp_part(void) { trace_ds("> QueryReply(ImplicitPartition)\n"); space3270out(13); *obptr++ = 0x0; /* reserved */ *obptr++ = 0x0; *obptr++ = 0x0b; /* length of display size */ *obptr++ = 0x01; /* "implicit partition size" */ *obptr++ = 0x00; /* reserved */ SET16(obptr, 80); /* implicit partition width */ SET16(obptr, 24); /* implicit partition height */ SET16(obptr, maxCOLS); /* alternate height */ SET16(obptr, maxROWS); /* alternate width */ } static void query_reply_end(void) { net_output(); kybd_inhibit(True); } ibm-3270-3.3.10ga4/wc3270/shortcutc.h0000644000175000017500000000352111254565671016307 0ustar bastianbastian/* * Copyright (c) 2006-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ extern HRESULT CreateLink(LPCSTR lpszPathObj, LPSTR lpszPathLink, LPSTR lpszDesc, LPSTR lpszArgs, LPSTR lpszDir, int rows, int cols, wchar_t *font, int pointsize, int codepage); extern HRESULT Piffle(char *title, LPCSTR lpszPathObj, LPSTR lpszPathLink, LPSTR lpszDesc, LPSTR lpszArgs, LPSTR lpszDir, int rows, int cols, char *font); ibm-3270-3.3.10ga4/wc3270/macrosc.h0000644000175000017500000001232411254565704015716 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * macrosc.h * Global declarations for macros.c. */ /* macro definition */ struct macro_def { char *name; char **parents; char *action; struct macro_def *next; }; extern struct macro_def *macro_defs; extern Boolean macro_output; extern void abort_script(void); extern void Abort_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void AnsiText_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void AsciiField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Ascii_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) /*[*/ extern void cancel_if_idle_command(void); #else /*][*/ #define cancel_if_idle_command() #endif /*]*/ extern void Bell_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CloseScript_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ContinueScript_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EbcdicField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Ebcdic_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Execute_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void execute_action_option(Widget w, XtPointer client_data, XtPointer call_data); extern void Expect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ extern void plugin_aid(unsigned char aid); #else /*][*/ #define plugin_aid(a) #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ extern void Plugin_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #endif /*]*/ extern void login_macro(char *s); extern void macros_init(void); extern void Macro_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void macro_command(struct macro_def *m); extern void PauseScript_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void peer_script_init(void); extern void ps_set(char *s, Boolean is_hex); extern void Printer_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void push_command(char *); extern void push_idle(char *); extern void push_keymap_action(char *); extern void push_macro(char *, Boolean); extern void Query_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ReadBuffer_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Script_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) /*[*/ extern void sms_accumulate_time(struct timeval *, struct timeval *); #else /*][*/ #define sms_accumulate_time(a, b) #endif /*]*/ extern Boolean sms_active(void); extern void sms_connect_wait(void); extern void sms_continue(void); extern void sms_error(const char *msg); extern void sms_host_output(void); extern void sms_info(const char *fmt, ...) printflike(1, 2); extern void sms_init(void); extern Boolean sms_in_macro(void); extern Boolean sms_redirect(void); extern void sms_store(unsigned char c); #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ extern void Snap_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #endif /*]*/ #if defined(TCL3270) /*[*/ extern void Status_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #endif /*]*/ extern void Source_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Wait_action(Widget w, XEvent *event, String *params, Cardinal *num_params); ibm-3270-3.3.10ga4/wc3270/cg.h0000644000175000017500000001735111254565704014665 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * cg.h * * Character encoding for the 3270 character generator font, * using the same suffixes as Latin-1 XK_xxx keysyms. * * Charaters that represent unique EBCDIC or status line codes * are noted with comments. */ #define CG_null 0x00 /* EBCDIC 00 */ #define CG_nobreakspace 0x01 #define CG_ff 0x02 /* EBCDIC 0C */ #define CG_cr 0x03 /* EBCDIC 0D */ #define CG_nl 0x04 /* EBCDIC 15 */ #define CG_em 0x05 /* EBCDIC 19 */ #define CG_eightones 0x06 /* EBCDIC FF */ #define CG_hyphen 0x07 #define CG_greater 0x08 #define CG_less 0x09 #define CG_bracketleft 0x0a #define CG_bracketright 0x0b #define CG_parenleft 0x0c #define CG_parenright 0x0d #define CG_braceleft 0x0e #define CG_braceright 0x0f #define CG_space 0x10 #define CG_equal 0x11 #define CG_apostrophe 0x12 #define CG_quotedbl 0x13 #define CG_slash 0x14 #define CG_backslash 0x15 #define CG_bar 0x16 #define CG_brokenbar 0x17 #define CG_question 0x18 #define CG_exclam 0x19 #define CG_dollar 0x1a #define CG_cent 0x1b #define CG_sterling 0x1c #define CG_yen 0x1d #define CG_paragraph 0x1e #define CG_currency 0x1f #define CG_0 0x20 #define CG_1 0x21 #define CG_2 0x22 #define CG_3 0x23 #define CG_4 0x24 #define CG_5 0x25 #define CG_6 0x26 #define CG_7 0x27 #define CG_8 0x28 #define CG_9 0x29 #define CG_ssharp 0x2a #define CG_section 0x2b #define CG_numbersign 0x2c #define CG_at 0x2d #define CG_percent 0x2e #define CG_underscore 0x2f #define CG_ampersand 0x30 #define CG_minus 0x31 #define CG_period 0x32 #define CG_comma 0x33 #define CG_colon 0x34 #define CG_plus 0x35 #define CG_notsign 0x36 #define CG_macron 0x37 #define CG_degree 0x38 #define CG_periodcentered 0x39 #define CG_asciicircum 0x3a #define CG_asciitilde 0x3b #define CG_diaeresis 0x3c #define CG_grave 0x3d #define CG_acute 0x3e #define CG_cedilla 0x3f #define CG_agrave 0x40 #define CG_egrave 0x41 #define CG_igrave 0x42 #define CG_ograve 0x43 #define CG_ugrave 0x44 #define CG_atilde 0x45 #define CG_otilde 0x46 #define CG_ydiaeresis 0x47 #define CG_Yacute 0x48 #define CG_yacute 0x49 #define CG_eacute 0x4a #define CG_onequarter 0x4b #define CG_onehalf 0x4c #define CG_threequarters 0x4d #define CG_udiaeresis 0x4e #define CG_udiaeresis 0x4e #define CG_ccedilla 0x4f #define CG_adiaeresis 0x50 #define CG_ediaeresis 0x51 #define CG_idiaeresis 0x52 #define CG_odiaeresis 0x53 #define CG_mu 0x54 #define CG_acircumflex 0x55 #define CG_ecircumflex 0x56 #define CG_icircumflex 0x57 #define CG_ocircumflex 0x58 #define CG_ucircumflex 0x59 #define CG_aacute 0x5a #define CG_multiply 0x5b #define CG_iacute 0x5c #define CG_oacute 0x5d #define CG_uacute 0x5e #define CG_ntilde 0x5f #define CG_Agrave 0x60 #define CG_Egrave 0x61 #define CG_Igrave 0x62 #define CG_Ograve 0x63 #define CG_Ugrave 0x64 #define CG_Atilde 0x65 #define CG_Otilde 0x66 #define CG_onesuperior 0x67 #define CG_twosuperior 0x68 #define CG_threesuperior 0x69 #define CG_ordfeminine 0x6a #define CG_masculine 0x6b #define CG_guillemotleft 0x6c #define CG_guillemotright 0x6d #define CG_exclamdown 0x6e #define CG_questiondown 0x6f #define CG_Adiaeresis 0x70 #define CG_Ediaeresis 0x71 #define CG_Idiaeresis 0x72 #define CG_Odiaeresis 0x73 #define CG_Udiaeresis 0x74 #define CG_Acircumflex 0x75 #define CG_Ecircumflex 0x76 #define CG_Icircumflex 0x77 #define CG_Ocircumflex 0x78 #define CG_Ucircumflex 0x79 #define CG_Aacute 0x7a #define CG_Eacute 0x7b #define CG_Iacute 0x7c #define CG_Oacute 0x7d #define CG_Uacute 0x7e #define CG_Ntilde 0x7f #define CG_a 0x80 #define CG_b 0x81 #define CG_c 0x82 #define CG_d 0x83 #define CG_e 0x84 #define CG_f 0x85 #define CG_g 0x86 #define CG_h 0x87 #define CG_i 0x88 #define CG_j 0x89 #define CG_k 0x8a #define CG_l 0x8b #define CG_m 0x8c #define CG_n 0x8d #define CG_o 0x8e #define CG_p 0x8f #define CG_q 0x90 #define CG_r 0x91 #define CG_s 0x92 #define CG_t 0x93 #define CG_u 0x94 #define CG_v 0x95 #define CG_w 0x96 #define CG_x 0x97 #define CG_y 0x98 #define CG_z 0x99 #define CG_ae 0x9a #define CG_oslash 0x9b #define CG_aring 0x9c #define CG_division 0x9d #define CG_fm 0x9e /* EBCDIC 1E */ #define CG_dup 0x9f /* EBCDIC 1C */ #define CG_A 0xa0 #define CG_B 0xa1 #define CG_C 0xa2 #define CG_D 0xa3 #define CG_E 0xa4 #define CG_F 0xa5 #define CG_G 0xa6 #define CG_H 0xa7 #define CG_I 0xa8 #define CG_J 0xa9 #define CG_K 0xaa #define CG_L 0xab #define CG_M 0xac #define CG_N 0xad #define CG_O 0xae #define CG_P 0xaf #define CG_Q 0xb0 #define CG_R 0xb1 #define CG_S 0xb2 #define CG_T 0xb3 #define CG_U 0xb4 #define CG_V 0xb5 #define CG_W 0xb6 #define CG_X 0xb7 #define CG_Y 0xb8 #define CG_Z 0xb9 #define CG_AE 0xba #define CG_Ooblique 0xbb #define CG_Aring 0xbc #define CG_Ccedilla 0xbd #define CG_semicolon 0xbe #define CG_asterisk 0xbf /* codes 0xc0 through 0xcf are for field attributes */ #define CG_copyright 0xd0 #define CG_registered 0xd1 #define CG_boxA 0xd2 /* status boxed A */ #define CG_insert 0xd3 /* status insert mode indicator */ #define CG_boxB 0xd4 /* status boxed B */ #define CG_box6 0xd5 /* status boxed 6 */ #define CG_plusminus 0xd6 #define CG_ETH 0xd7 #define CG_rightarrow 0xd8 #define CG_THORN 0xd9 #define CG_upshift 0xda /* status upshift indicator */ #define CG_human 0xdb /* status illegal position indicator */ #define CG_underB 0xdc /* status underlined B */ #define CG_downshift 0xdd /* status downshift indicator */ #define CG_boxquestion 0xde /* status boxed question mark */ #define CG_boxsolid 0xdf /* status solid block */ /* codes 0xe0 through 0xef are for field attributes */ #define CG_badcommhi 0xf0 /* status bad communication indicator */ #define CG_commhi 0xf1 /* status communication indicator */ #define CG_commjag 0xf2 /* status communication indicator */ #define CG_commlo 0xf3 /* status communication indicator */ #define CG_clockleft 0xf4 /* status wait symbol */ #define CG_clockright 0xf5 /* status wait symbol */ #define CG_lock 0xf6 /* status keyboard lock X symbol */ #define CG_eth 0xf7 #define CG_leftarrow 0xf8 #define CG_thorn 0xf9 #define CG_keyleft 0xfa /* status key lock indicator */ #define CG_keyright 0xfb /* status key lock indicator */ #define CG_box4 0xfc /* status boxed 4 */ #define CG_underA 0xfd /* status underlined A */ #define CG_magcard 0xfe /* status magnetic card indicator */ #define CG_boxhuman 0xff /* status boxed position indicator */ ibm-3270-3.3.10ga4/wc3270/kybd.c0000644000175000017500000030143611256300017015202 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * kybd.c * This module handles the keyboard for the 3270 emulator. */ #include "globals.h" #if defined(X3270_DISPLAY) /*[*/ #include #endif #define XK_3270 #if defined(X3270_APL) /*[*/ #define XK_APL #endif /*]*/ #include #include #include "3270ds.h" #include "appres.h" #include "ctlr.h" #if defined(X3270_DISPLAY) /*[*/ #include "keysym2ucs.h" #endif /*]*/ #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "aplc.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "hostc.h" #include "idlec.h" #include "keymapc.h" #include "keypadc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "printc.h" #include "screenc.h" #if defined(X3270_DISPLAY) /*[*/ #include "selectc.h" #endif /*]*/ #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include #endif /*]*/ /*#define KYBDLOCK_TRACE 1*/ /* Statics */ static enum { NONE, COMPOSE, FIRST } composing = NONE; static unsigned char pf_xlate[] = { AID_PF1, AID_PF2, AID_PF3, AID_PF4, AID_PF5, AID_PF6, AID_PF7, AID_PF8, AID_PF9, AID_PF10, AID_PF11, AID_PF12, AID_PF13, AID_PF14, AID_PF15, AID_PF16, AID_PF17, AID_PF18, AID_PF19, AID_PF20, AID_PF21, AID_PF22, AID_PF23, AID_PF24 }; static unsigned char pa_xlate[] = { AID_PA1, AID_PA2, AID_PA3 }; #define PF_SZ (sizeof(pf_xlate)/sizeof(pf_xlate[0])) #define PA_SZ (sizeof(pa_xlate)/sizeof(pa_xlate[0])) static unsigned long unlock_id; static time_t unlock_delay_time; Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped); static Boolean flush_ta(void); static void key_AID(unsigned char aid_code); static void kybdlock_set(unsigned int bits, const char *cause); static KeySym MyStringToKeysym(char *s, enum keytype *keytypep, ucs4_t *ucs4); #if defined(X3270_DBCS) /*[*/ Boolean key_WCharacter(unsigned char code[], Boolean *skipped); #endif /*]*/ static Boolean insert = False; /* insert mode */ static Boolean reverse = False; /* reverse-input mode */ /* Globals */ unsigned int kybdlock = KL_NOT_CONNECTED; unsigned char aid = AID_NO; /* current attention ID */ /* Composite key mappings. */ struct akeysym { KeySym keysym; enum keytype keytype; }; static struct akeysym cc_first; static struct composite { struct akeysym k1, k2; struct akeysym translation; } *composites = NULL; static int n_composites = 0; #define ak_eq(k1, k2) (((k1).keysym == (k2).keysym) && \ ((k1).keytype == (k2).keytype)) static struct ta { struct ta *next; XtActionProc fn; char *parm1; char *parm2; } *ta_head = (struct ta *) NULL, *ta_tail = (struct ta *) NULL; static char dxl[] = "0123456789abcdef"; #define FROM_HEX(c) (strchr(dxl, tolower(c)) - dxl) extern Widget *screen; #define KYBDLOCK_IS_OERR (kybdlock && !(kybdlock & ~KL_OERR_MASK)) /* * Put an action on the typeahead queue. */ static void enq_ta(XtActionProc fn, char *parm1, char *parm2) { struct ta *ta; /* If no connection, forget it. */ if (!CONNECTED) { trace_event(" dropped (not connected)\n"); return; } /* If operator error, complain and drop it. */ if (kybdlock & KL_OERR_MASK) { ring_bell(); trace_event(" dropped (operator error)\n"); return; } /* If scroll lock, complain and drop it. */ if (kybdlock & KL_SCROLLED) { ring_bell(); trace_event(" dropped (scrolled)\n"); return; } /* If typeahead disabled, complain and drop it. */ if (!appres.typeahead) { trace_event(" dropped (no typeahead)\n"); return; } ta = (struct ta *) Malloc(sizeof(*ta)); ta->next = (struct ta *) NULL; ta->fn = fn; ta->parm1 = ta->parm2 = CN; if (parm1) { ta->parm1 = NewString(parm1); if (parm2) ta->parm2 = NewString(parm2); } if (ta_head) ta_tail->next = ta; else { ta_head = ta; status_typeahead(True); } ta_tail = ta; trace_event(" action queued (kybdlock 0x%x)\n", kybdlock); } /* * Execute an action from the typeahead queue. */ Boolean run_ta(void) { struct ta *ta; if (kybdlock || (ta = ta_head) == (struct ta *)NULL) return False; if ((ta_head = ta->next) == (struct ta *)NULL) { ta_tail = (struct ta *)NULL; status_typeahead(False); } action_internal(ta->fn, IA_TYPEAHEAD, ta->parm1, ta->parm2); Free(ta->parm1); Free(ta->parm2); Free(ta); return True; } /* * Flush the typeahead queue. * Returns whether or not anything was flushed. */ static Boolean flush_ta(void) { struct ta *ta, *next; Boolean any = False; for (ta = ta_head; ta != (struct ta *) NULL; ta = next) { Free(ta->parm1); Free(ta->parm2); next = ta->next; Free(ta); any = True; } ta_head = ta_tail = (struct ta *) NULL; status_typeahead(False); return any; } /* Decode keyboard lock bits. */ static char * kybdlock_decode(char *how, unsigned int bits) { static char buf[1024]; char *s = buf; char *space = ""; if (bits == (unsigned int)-1) return "all"; if (bits & KL_OERR_MASK) { s += sprintf(s, "%sOERR(", how); switch(bits & KL_OERR_MASK) { case KL_OERR_PROTECTED: s += sprintf(s, "PROTECTED"); break; case KL_OERR_NUMERIC: s += sprintf(s, "NUMERIC"); break; case KL_OERR_OVERFLOW: s += sprintf(s, "OVERFLOW"); break; case KL_OERR_DBCS: s += sprintf(s, "DBCS"); break; default: s += sprintf(s, "?%d", bits & KL_OERR_MASK); break; } s += sprintf(s, ")"); space = " "; } if (bits & KL_NOT_CONNECTED) { s += sprintf(s, "%s%sNOT_CONNECTED", space, how); space = " "; } if (bits & KL_AWAITING_FIRST) { s += sprintf(s, "%s%sAWAITING_FIRST", space, how); space = " "; } if (bits & KL_OIA_TWAIT) { s += sprintf(s, "%s%sOIA_TWAIT", space, how); space = " "; } if (bits & KL_OIA_LOCKED) { s += sprintf(s, "%s%sOIA_LOCKED", space, how); space = " "; } if (bits & KL_DEFERRED_UNLOCK) { s += sprintf(s, "%s%sDEFERRED_UNLOCK", space, how); space = " "; } if (bits & KL_ENTER_INHIBIT) { s += sprintf(s, "%s%sENTER_INHIBIT", space, how); space = " "; } if (bits & KL_SCROLLED) { s += sprintf(s, "%s%sSCROLLED", space, how); space = " "; } if (bits & KL_OIA_MINUS) { s += sprintf(s, "%s%sOIA_MINUS", space, how); space = " "; } return buf; } /* Set bits in the keyboard lock. */ static void kybdlock_set(unsigned int bits, const char *cause _is_unused) { unsigned int n; trace_event("Keyboard lock(%s) %s\n", cause, kybdlock_decode("+", bits)); n = kybdlock | bits; if (n != kybdlock) { #if defined(KYBDLOCK_TRACE) /*[*/ trace_event(" %s: kybdlock |= 0x%04x, 0x%04x -> 0x%04x\n", cause, bits, kybdlock, n); #endif /*]*/ if ((kybdlock ^ bits) & KL_DEFERRED_UNLOCK) { /* Turned on deferred unlock. */ unlock_delay_time = time(NULL); } kybdlock = n; status_kybdlock(); } } /* Clear bits in the keyboard lock. */ void kybdlock_clr(unsigned int bits, const char *cause _is_unused) { unsigned int n; if (kybdlock & bits) trace_event("Keyboard unlock(%s) %s\n", cause, kybdlock_decode("-", kybdlock & bits)); n = kybdlock & ~bits; if (n != kybdlock) { #if defined(KYBDLOCK_TRACE) /*[*/ trace_event(" %s: kybdlock &= ~0x%04x, 0x%04x -> 0x%04x\n", cause, bits, kybdlock, n); #endif /*]*/ if ((kybdlock ^ n) & KL_DEFERRED_UNLOCK) { /* Turned off deferred unlock. */ unlock_delay_time = 0; } kybdlock = n; status_kybdlock(); } } /* * Set or clear enter-inhibit mode. */ void kybd_inhibit(Boolean inhibit) { if (inhibit) { kybdlock_set(KL_ENTER_INHIBIT, "kybd_inhibit"); if (kybdlock == KL_ENTER_INHIBIT) status_reset(); } else { kybdlock_clr(KL_ENTER_INHIBIT, "kybd_inhibit"); if (!kybdlock) status_reset(); } } /* * Called when a host connects or disconnects. */ static void kybd_connect(Boolean connected) { if ((kybdlock & KL_DEFERRED_UNLOCK) && unlock_id) { RemoveTimeOut(unlock_id); unlock_id = 0; } kybdlock_clr(-1, "kybd_connect"); if (connected) { /* Wait for any output or a WCC(restore) from the host */ kybdlock_set(KL_AWAITING_FIRST, "kybd_connect"); } else { kybdlock_set(KL_NOT_CONNECTED, "kybd_connect"); (void) flush_ta(); } } /* * Called when we switch between 3270 and ANSI modes. */ static void kybd_in3270(Boolean in3270 _is_unused) { if ((kybdlock & KL_DEFERRED_UNLOCK) && unlock_id) { RemoveTimeOut(unlock_id); unlock_id = 0; } switch ((int)cstate) { case CONNECTED_INITIAL_E: /* * Either we just negotiated TN3270E, or we just processed * and UNBIND from the host. In either case, we are now * awaiting a first unlock from the host, or a transition to * 3270, NVT or SSCP-LU mode. */ kybdlock_set(KL_AWAITING_FIRST, "kybd_in3270"); break; case CONNECTED_ANSI: case CONNECTED_NVT: case CONNECTED_SSCP: /* * We just transitioned to ANSI, TN3270E NVT or TN3270E SSCP-LU * mode. Remove all lock bits. */ kybdlock_clr(-1, "kybd_in3270"); break; default: /* * We just transitioned into or out of 3270 mode. * Remove all lock bits except AWAITING_FIRST. */ kybdlock_clr(~KL_AWAITING_FIRST, "kybd_in3270"); break; } /* There might be a macro pending. */ if (CONNECTED) ps_process(); } /* * Called to initialize the keyboard logic. */ void kybd_init(void) { /* Register interest in connect and disconnect events. */ register_schange(ST_CONNECT, kybd_connect); register_schange(ST_3270_MODE, kybd_in3270); } /* * Toggle insert mode. */ static void insert_mode(Boolean on) { insert = on; status_insert_mode(on); } /* * Toggle reverse mode. */ static void reverse_mode(Boolean on) { #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif /*]*/ { reverse = on; status_reverse_mode(on); } } /* * Lock the keyboard because of an operator error. */ static void operator_error(int error_type) { if (sms_redirect()) popup_an_error("Keyboard locked"); if (appres.oerr_lock || sms_redirect()) { status_oerr(error_type); mcursor_locked(); kybdlock_set((unsigned int)error_type, "operator_error"); (void) flush_ta(); } else { ring_bell(); } } /* * Handle an AID (Attention IDentifier) key. This is the common stuff that * gets executed for all AID keys (PFs, PAs, Clear and etc). */ static void key_AID(unsigned char aid_code) { #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { register unsigned i; if (aid_code == AID_ENTER) { net_sendc('\r'); return; } for (i = 0; i < PF_SZ; i++) if (aid_code == pf_xlate[i]) { ansi_send_pf(i+1); return; } for (i = 0; i < PA_SZ; i++) if (aid_code == pa_xlate[i]) { ansi_send_pa(i+1); return; } return; } #endif /*]*/ #if defined(X3270_PLUGIN) /*[*/ plugin_aid(aid_code); #endif /*]*/ if (IN_SSCP) { if (kybdlock & KL_OIA_MINUS) return; switch (aid_code) { case AID_CLEAR: /* Handled locally. */ break; case AID_ENTER: /* * Act as if the host had written our input, and * send it as a Read Modified. */ buffer_addr = cursor_addr; aid = aid_code; ctlr_read_modified(aid, False); status_ctlr_done(); break; default: /* Everything else is invalid in SSCP-LU mode. */ status_minus(); kybdlock_set(KL_OIA_MINUS, "key_AID"); return; } return; } status_twait(); mcursor_waiting(); insert_mode(False); kybdlock_set(KL_OIA_TWAIT | KL_OIA_LOCKED, "key_AID"); aid = aid_code; ctlr_read_modified(aid, False); ticking_start(False); status_ctlr_done(); } void PF_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { unsigned k; action_debug(PF_action, event, params, num_params); if (check_usage(PF_action, *num_params, 1, 1) < 0) return; k = atoi(params[0]); if (k < 1 || k > PF_SZ) { popup_an_error("%s: Invalid argument '%s'", action_name(PF_action), params[0]); cancel_if_idle_command(); return; } reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(PF_action, params[0], CN); else key_AID(pf_xlate[k-1]); } void PA_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { unsigned k; action_debug(PA_action, event, params, num_params); if (check_usage(PA_action, *num_params, 1, 1) < 0) return; k = atoi(params[0]); if (k < 1 || k > PA_SZ) { popup_an_error("%s: Invalid argument '%s'", action_name(PA_action), params[0]); cancel_if_idle_command(); return; } reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(PA_action, params[0], CN); else key_AID(pa_xlate[k-1]); } /* * ATTN key, per RFC 2355. Sends IP, regardless. */ void Attn_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Attn_action, event, params, num_params); if (check_usage(Attn_action, *num_params, 0, 0) < 0) return; if (!IN_3270) return; reset_idle_timer(); if (IN_E) { if (net_bound()) { net_interrupt(); } else { status_minus(); kybdlock_set(KL_OIA_MINUS, "Attn_action"); } } else { net_break(); } } /* * IAC IP, which works for 5250 System Request and interrupts the program * on an AS/400, even when the keyboard is locked. * * This is now the same as the Attn action. */ void Interrupt_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Interrupt_action, event, params, num_params); if (check_usage(Interrupt_action, *num_params, 0, 0) < 0) return; if (!IN_3270) return; reset_idle_timer(); net_interrupt(); } /* * Prepare for an insert of 'count' bytes. * Returns True if the insert is legal, False otherwise. */ static Boolean ins_prep(int faddr, int baddr, int count, Boolean *no_room) { int next_faddr; int xaddr; int need; int ntb; int tb_start = -1; int copy_len; *no_room = False; /* Find the end of the field. */ if (faddr == -1) { /* Unformatted. Use the end of the line. */ next_faddr = (((baddr / COLS) + 1) * COLS) % (ROWS*COLS); } else { next_faddr = faddr; INC_BA(next_faddr); while (next_faddr != faddr && !ea_buf[next_faddr].fa) { INC_BA(next_faddr); } } /* Are there enough NULLs or trailing blanks available? */ xaddr = baddr; need = count; ntb = 0; while (need && (xaddr != next_faddr)) { if (ea_buf[xaddr].cc == EBC_null) need--; else if (toggled(BLANK_FILL) && ((ea_buf[xaddr].cc == EBC_space) || (ea_buf[xaddr].cc == EBC_underscore))) { if (tb_start == -1) tb_start = xaddr; ntb++; } else { tb_start = -1; ntb = 0; } INC_BA(xaddr); } #if defined(_ST) /*[*/ printf("need %d at %d, tb_start at %d\n", count, baddr, tb_start); #endif /*]*/ if (need - ntb > 0) { if (!reverse) { operator_error(KL_OERR_OVERFLOW); return False; } else { *no_room = True; return True; } } /* * Shift the buffer to the right until we've consumed the available * (and needed) NULLs. */ need = count; xaddr = baddr; while (need && (xaddr != next_faddr)) { int n_nulls = 0; int first_null = -1; while (need && ((ea_buf[xaddr].cc == EBC_null) || (tb_start >= 0 && xaddr >= tb_start))) { need--; n_nulls++; if (first_null == -1) first_null = xaddr; INC_BA(xaddr); } if (n_nulls) { int to; /* Shift right n_nulls worth. */ copy_len = first_null - baddr; if (copy_len < 0) copy_len += ROWS*COLS; to = (baddr + n_nulls) % (ROWS*COLS); #if defined(_ST) /*[*/ printf("found %d NULLs at %d\n", n_nulls, first_null); printf("copying %d from %d to %d\n", copy_len, to, first_null); #endif /*]*/ if (copy_len) ctlr_wrapping_memmove(to, baddr, copy_len); } INC_BA(xaddr); } return True; } #define GE_WFLAG 0x100 #define PASTE_WFLAG 0x200 static void key_Character_wrapper(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params _is_unused) { int code; Boolean with_ge = False; Boolean pasting = False; char mb[16]; ucs4_t uc; code = atoi(params[0]); if (code & GE_WFLAG) { with_ge = True; code &= ~GE_WFLAG; } if (code & PASTE_WFLAG) { pasting = True; code &= ~PASTE_WFLAG; } ebcdic_to_multibyte_x(code, with_ge? CS_GE: CS_BASE, mb, sizeof(mb), EUO_BLANK_UNDEF, &uc); trace_event(" %s -> Key(%s\"%s\")\n", ia_name[(int) ia_cause], with_ge ? "GE " : "", mb); (void) key_Character(code, with_ge, pasting, NULL); } /* * Handle an ordinary displayable character key. Lots of stuff to handle * insert-mode, protected fields and etc. */ /*static*/ Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) { register int baddr, faddr, xaddr; register unsigned char fa; enum dbcs_why why = DBCS_FIELD; Boolean no_room = False; reset_idle_timer(); if (skipped != NULL) *skipped = False; if (kybdlock) { char codename[64]; (void) sprintf(codename, "%d", code | (with_ge ? GE_WFLAG : 0) | (pasting ? PASTE_WFLAG : 0)); enq_ta(key_Character_wrapper, codename, CN); return False; } baddr = cursor_addr; faddr = find_field_attribute(baddr); fa = get_field_attribute(baddr); if (ea_buf[baddr].fa || FA_IS_PROTECTED(fa)) { operator_error(KL_OERR_PROTECTED); return False; } if (appres.numeric_lock && FA_IS_NUMERIC(fa) && !((code >= EBC_0 && code <= EBC_9) || code == EBC_minus || code == EBC_period)) { operator_error(KL_OERR_NUMERIC); return False; } /* Can't put an SBCS in a DBCS field. */ if (ea_buf[faddr].cs == CS_DBCS) { operator_error(KL_OERR_DBCS); return False; } /* If it's an SI (end of DBCS subfield), move over one position. */ if (ea_buf[baddr].cc == EBC_si) { INC_BA(baddr); if (baddr == faddr) { operator_error(KL_OERR_OVERFLOW); return False; } } /* Add the character. */ if (ea_buf[baddr].cc == EBC_so) { if (insert) { if (!ins_prep(faddr, baddr, 1, &no_room)) return False; } else { Boolean was_si = False; /* * Overwriting an SO (start of DBCS subfield). * If it's followed by an SI, replace the SO/SI * pair with x/space. If not, replace it and * the following DBCS character with * x/space/SO. */ xaddr = baddr; INC_BA(xaddr); was_si = (ea_buf[xaddr].cc == EBC_si); ctlr_add(xaddr, EBC_space, CS_BASE); ctlr_add_fg(xaddr, 0); #if defined(X3270_ANSI) /*[*/ ctlr_add_bg(xaddr, 0); #endif /*]*/ if (!was_si) { INC_BA(xaddr); ctlr_add(xaddr, EBC_so, CS_BASE); ctlr_add_fg(xaddr, 0); #if defined(X3270_ANSI) /*[*/ ctlr_add_bg(xaddr, 0); #endif /*]*/ } } } else switch (ctlr_lookleft_state(baddr, &why)) { case DBCS_RIGHT: DEC_BA(baddr); /* fall through... */ case DBCS_LEFT: if (why == DBCS_ATTRIBUTE) { if (insert) { if (!ins_prep(faddr, baddr, 1, &no_room)) return False; } else { /* * Replace single DBCS char with * x/space. */ xaddr = baddr; INC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); } } else { Boolean was_si; if (insert) { /* * Inserting SBCS into a DBCS subfield. * If this is the first position, we * can just insert one character in * front of the SO. Otherwise, we'll * need room for SI (to end subfield), * the character, and SO (to begin the * subfield again). */ xaddr = baddr; DEC_BA(xaddr); if (ea_buf[xaddr].cc == EBC_so) { DEC_BA(baddr); if (!ins_prep(faddr, baddr, 1, &no_room)) return False; } else { if (!ins_prep(faddr, baddr, 3, &no_room)) return False; xaddr = baddr; ctlr_add(xaddr, EBC_si, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); INC_BA(xaddr); INC_BA(baddr); INC_BA(xaddr); ctlr_add(xaddr, EBC_so, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); } } else { /* Overwriting part of a subfield. */ xaddr = baddr; ctlr_add(xaddr, EBC_si, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); INC_BA(xaddr); INC_BA(baddr); INC_BA(xaddr); was_si = (ea_buf[xaddr].cc == EBC_si); ctlr_add(xaddr, EBC_space, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); if (!was_si) { INC_BA(xaddr); ctlr_add(xaddr, EBC_so, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); } } } break; default: case DBCS_NONE: if ((reverse || insert) && !ins_prep(faddr, baddr, 1, &no_room)) return False; break; } if (no_room) { do { INC_BA(baddr); } while (ea_buf[baddr].fa); } else { ctlr_add(baddr, (unsigned char)code, (unsigned char)(with_ge ? CS_GE : 0)); ctlr_add_fg(baddr, 0); ctlr_add_gr(baddr, 0); if (!reverse) INC_BA(baddr); } /* Replace leading nulls with blanks, if desired. */ if (formatted && toggled(BLANK_FILL)) { register int baddr_fill = baddr; DEC_BA(baddr_fill); while (baddr_fill != faddr) { /* Check for backward line wrap. */ if ((baddr_fill % COLS) == COLS - 1) { Boolean aborted = True; register int baddr_scan = baddr_fill; /* * Check the field within the preceeding line * for NULLs. */ while (baddr_scan != faddr) { if (ea_buf[baddr_scan].cc != EBC_null) { aborted = False; break; } if (!(baddr_scan % COLS)) break; DEC_BA(baddr_scan); } if (aborted) break; } if (ea_buf[baddr_fill].cc == EBC_null) ctlr_add(baddr_fill, EBC_space, 0); DEC_BA(baddr_fill); } } mdt_set(cursor_addr); /* * Implement auto-skip, and don't land on attribute bytes. * This happens for all pasted data (even DUP), and for all * keyboard-generated data except DUP. */ if (pasting || (code != EBC_dup)) { while (ea_buf[baddr].fa) { if (skipped != NULL) *skipped = True; if (FA_IS_SKIP(ea_buf[baddr].fa)) baddr = next_unprotected(baddr); else INC_BA(baddr); } cursor_move(baddr); } (void) ctlr_dbcs_postprocess(); return True; } #if defined(X3270_DBCS) /*[*/ static void key_WCharacter_wrapper(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params _is_unused) { int code; unsigned char codebuf[2]; code = atoi(params[0]); trace_event(" %s -> Key(0x%04x)\n", ia_name[(int) ia_cause], code); codebuf[0] = (code >> 8) & 0xff; codebuf[1] = code & 0xff; (void) key_WCharacter(codebuf, NULL); } /* * Input a DBCS character. * Returns True if a character was stored in the buffer, False otherwise. */ Boolean key_WCharacter(unsigned char code[], Boolean *skipped) { int baddr; register unsigned char fa; int faddr; enum dbcs_state d; int xaddr; Boolean done = False; Boolean no_si = False; Boolean no_room = False; extern unsigned char reply_mode; /* XXX */ reset_idle_timer(); if (kybdlock) { char codename[64]; (void) sprintf(codename, "%d", (code[0] << 8) | code[1]); enq_ta(key_WCharacter_wrapper, codename, CN); return False; } if (skipped != NULL) *skipped = False; /* In DBCS mode? */ #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif /*]*/ { trace_event("DBCS character received when not in DBCS mode, " "ignoring.\n"); return True; } #if defined(X3270_ANSI) /*[*/ /* In ANSI mode? */ if (IN_ANSI) { char mb[16]; (void) ebcdic_to_multibyte((code[0] << 8) | code[1], mb, sizeof(mb)); net_sends(mb); return True; } #endif /*]*/ baddr = cursor_addr; fa = get_field_attribute(baddr); faddr = find_field_attribute(baddr); /* Protected? */ if (ea_buf[baddr].fa || FA_IS_PROTECTED(fa)) { operator_error(KL_OERR_PROTECTED); return False; } /* Numeric? */ if (appres.numeric_lock && FA_IS_NUMERIC(fa)) { operator_error(KL_OERR_NUMERIC); return False; } /* * Figure our what to do based on the DBCS state of the buffer. * Leaves baddr pointing to the next unmodified position. */ retry: switch (d = ctlr_dbcs_state(baddr)) { case DBCS_RIGHT: case DBCS_RIGHT_WRAP: /* Back up one position and process it as a LEFT. */ DEC_BA(baddr); /* fall through... */ case DBCS_LEFT: case DBCS_LEFT_WRAP: /* Overwrite the existing character. */ if (insert) { if (!ins_prep(faddr, baddr, 2, &no_room)) { return False; } } ctlr_add(baddr, code[0], ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[1], ea_buf[baddr].cs); INC_BA(baddr); done = True; break; case DBCS_SB: /* Back up one position and process it as an SI. */ DEC_BA(baddr); /* fall through... */ case DBCS_SI: /* Extend the subfield to the right. */ if (insert) { if (!ins_prep(faddr, baddr, 2, &no_room)) { return False; } } else { /* Don't overwrite a field attribute or an SO. */ xaddr = baddr; INC_BA(xaddr); /* C1 */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) no_si = True; INC_BA(xaddr); /* SI */ if (ea_buf[xaddr].fa || ea_buf[xaddr].cc == EBC_so) break; } ctlr_add(baddr, code[0], ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[1], ea_buf[baddr].cs); if (!no_si) { INC_BA(baddr); ctlr_add(baddr, EBC_si, ea_buf[baddr].cs); } done = True; break; case DBCS_DEAD: break; case DBCS_NONE: if (ea_buf[faddr].ic) { Boolean extend_left = False; /* Is there room? */ if (insert) { if (!ins_prep(faddr, baddr, 4, &no_room)) { return False; } } else { xaddr = baddr; /* baddr, SO */ if (ea_buf[xaddr].cc == EBC_so) { /* * (baddr), where we would have put the * SO, is already an SO. Move to * (baddr+1) and try again. */ #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 0\n"); #endif /*]*/ INC_BA(baddr); goto retry; } INC_BA(xaddr); /* baddr+1, C0 */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) { enum dbcs_state e; /* * (baddr+1), where we would have put * the left side of the DBCS, is a SO. * If there's room, we can extend the * subfield to the left. If not, we're * stuck. */ DEC_BA(xaddr); DEC_BA(xaddr); e = ctlr_dbcs_state(xaddr); if (e == DBCS_NONE || e == DBCS_SB) { extend_left = True; no_si = True; #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 1, " "extend left\n"); #endif /*]*/ } else { /* * Won't actually happen, * because this implies that * the buffer addr at baddr * is an SB. */ #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 1, " "no room on left, " "fail\n"); #endif /*]*/ break; } } INC_BA(xaddr); /* baddr+2, C1 */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) { /* * (baddr+2), where we want to put the * right half of the DBCS character, is * a SO. This is a natural extension * to the left -- just make sure we * don't write an SI. */ no_si = True; #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 2, no SI\n"); #endif /*]*/ } /* * Check the fourth position only if we're * not doing an extend-left. */ if (!no_si) { INC_BA(xaddr); /* baddr+3, SI */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) { /* * (baddr+3), where we want to * put an * SI, is an SO. Forget it. */ #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 3, " "retry right\n"); INC_BA(baddr); goto retry; #endif /*]*/ break; } } } /* Yes, add it. */ if (extend_left) DEC_BA(baddr); ctlr_add(baddr, EBC_so, ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[0], ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[1], ea_buf[baddr].cs); if (!no_si) { INC_BA(baddr); ctlr_add(baddr, EBC_si, ea_buf[baddr].cs); } done = True; } else if (reply_mode == SF_SRM_CHAR) { /* Use the character attribute. */ if (insert) { if (!ins_prep(faddr, baddr, 2, &no_room)) { return False; } } else { xaddr = baddr; INC_BA(xaddr); if (ea_buf[xaddr].fa) break; } ctlr_add(baddr, code[0], CS_DBCS); INC_BA(baddr); ctlr_add(baddr, code[1], CS_DBCS); INC_BA(baddr); done = True; } break; } if (done) { /* Implement blank fill mode. */ if (toggled(BLANK_FILL)) { xaddr = faddr; INC_BA(xaddr); while (xaddr != baddr) { if (ea_buf[xaddr].cc == EBC_null) ctlr_add(xaddr, EBC_space, CS_BASE); else break; INC_BA(xaddr); } } mdt_set(cursor_addr); /* Implement auto-skip. */ while (ea_buf[baddr].fa) { if (skipped != NULL) *skipped = True; if (FA_IS_SKIP(ea_buf[baddr].fa)) baddr = next_unprotected(baddr); else INC_BA(baddr); } cursor_move(baddr); (void) ctlr_dbcs_postprocess(); return True; } else { operator_error(KL_OERR_DBCS); return False; } } #endif /*]*/ /* * Handle an ordinary character key, given its Unicode value. */ static void key_UCharacter(ucs4_t ucs4, enum keytype keytype, enum iaction cause, Boolean *skipped) { register int i; struct akeysym ak; reset_idle_timer(); if (skipped != NULL) *skipped = False; ak.keysym = ucs4; ak.keytype = keytype; switch (composing) { case NONE: break; case COMPOSE: for (i = 0; i < n_composites; i++) if (ak_eq(composites[i].k1, ak) || ak_eq(composites[i].k2, ak)) break; if (i < n_composites) { cc_first.keysym = ucs4; cc_first.keytype = keytype; composing = FIRST; status_compose(True, ucs4, keytype); } else { ring_bell(); composing = NONE; status_compose(False, 0, KT_STD); } return; case FIRST: composing = NONE; status_compose(False, 0, KT_STD); for (i = 0; i < n_composites; i++) if ((ak_eq(composites[i].k1, cc_first) && ak_eq(composites[i].k2, ak)) || (ak_eq(composites[i].k1, ak) && ak_eq(composites[i].k2, cc_first))) break; if (i < n_composites) { ucs4 = composites[i].translation.keysym; keytype = composites[i].translation.keytype; } else { ring_bell(); return; } break; } trace_event(" %s -> Key(U+%04x)\n", ia_name[(int) cause], ucs4); if (IN_3270) { ebc_t ebc; Boolean ge; if (ucs4 < ' ') { trace_event(" dropped (control char)\n"); return; } ebc = unicode_to_ebcdic_ge(ucs4, &ge); if (ebc == 0) { trace_event(" dropped (no EBCDIC translation)\n"); return; } #if defined(X3270_DBCS) /*[*/ if (ebc & 0xff00) { unsigned char code[2]; code[0] = (ebc & 0xff00)>> 8; code[1] = ebc & 0xff; (void) key_WCharacter(code, skipped); } else #endif /*]*/ (void) key_Character(ebc, (keytype == KT_GE) || ge, False, skipped); } #if defined(X3270_ANSI) /*[*/ else if (IN_ANSI) { char mb[16]; unicode_to_multibyte(ucs4, mb, sizeof(mb)); net_sends(mb); } #endif /*]*/ else { trace_event(" dropped (not connected)\n"); } } #if defined(X3270_DISPLAY) /*[*/ /* * Handle an ordinary character key, given its NULL-terminated multibyte * representation. */ static void key_ACharacter(char *mb, enum keytype keytype, enum iaction cause, Boolean *skipped) { ucs4_t ucs4; int consumed; enum me_fail error; reset_idle_timer(); if (skipped != NULL) *skipped = False; /* Convert the multibyte string to UCS4. */ ucs4 = multibyte_to_unicode(mb, strlen(mb), &consumed, &error); if (ucs4 == 0) { trace_event(" %s -> Key(?)\n", ia_name[(int) cause]); trace_event(" dropped (invalid multibyte sequence)\n"); return; } key_UCharacter(ucs4, keytype, cause, skipped); } #endif /*]*/ /* * Simple toggles. */ #if defined(X3270_DISPLAY) /*[*/ void AltCursor_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(AltCursor_action, event, params, num_params); if (check_usage(AltCursor_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); do_toggle(ALT_CURSOR); } #endif /*]*/ void MonoCase_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(MonoCase_action, event, params, num_params); if (check_usage(MonoCase_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); do_toggle(MONOCASE); } /* * Flip the display left-to-right */ void Flip_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Flip_action, event, params, num_params); if (check_usage(Flip_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif /*]*/ screen_flip(); } /* * Tab forward to next field. */ void Tab_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Tab_action, event, params, num_params); if (check_usage(Tab_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Tab"); status_reset(); } else { enq_ta(Tab_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_sendc('\t'); return; } #endif /*]*/ cursor_move(next_unprotected(cursor_addr)); } /* * Tab backward to previous field. */ void BackTab_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr, nbaddr; int sbaddr; action_debug(BackTab_action, event, params, num_params); if (check_usage(BackTab_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "BackTab"); status_reset(); } else { enq_ta(BackTab_action, CN, CN); return; } } if (!IN_3270) return; baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].fa) /* at bof */ DEC_BA(baddr); sbaddr = baddr; while (True) { nbaddr = baddr; INC_BA(nbaddr); if (ea_buf[baddr].fa && !FA_IS_PROTECTED(ea_buf[baddr].fa) && !ea_buf[nbaddr].fa) break; DEC_BA(baddr); if (baddr == sbaddr) { cursor_move(0); return; } } INC_BA(baddr); cursor_move(baddr); } /* * Deferred keyboard unlock. */ static void defer_unlock(void) { kybdlock_clr(KL_DEFERRED_UNLOCK, "defer_unlock"); status_reset(); if (CONNECTED) ps_process(); } /* * Reset keyboard lock. */ void do_reset(Boolean explicit) { /* * If explicit (from the keyboard) and there is typeahead or * a half-composed key, simply flush it. */ if (explicit #if defined(X3270_FT) /*[*/ || ft_state != FT_NONE #endif /*]*/ ) { Boolean half_reset = False; if (flush_ta()) half_reset = True; if (composing != NONE) { composing = NONE; status_compose(False, 0, KT_STD); half_reset = True; } if (half_reset) return; } /* Always clear insert mode. */ insert_mode(False); /* Otherwise, if not connect, reset is a no-op. */ if (!CONNECTED) return; /* * Remove any deferred keyboard unlock. We will either unlock the * keyboard now, or want to defer further into the future. */ if ((kybdlock & KL_DEFERRED_UNLOCK) && unlock_id) { RemoveTimeOut(unlock_id); unlock_id = 0; } /* * If explicit (from the keyboard), unlock the keyboard now. * Otherwise (from the host), schedule a deferred keyboard unlock. */ if (explicit #if defined(X3270_FT) /*[*/ || ft_state != FT_NONE #endif /*]*/ || (!appres.unlock_delay && !sms_in_macro()) || (unlock_delay_time != 0 && (time(NULL) - unlock_delay_time) > 1) || !appres.unlock_delay_ms) { kybdlock_clr(-1, "do_reset"); } else if (kybdlock & (KL_DEFERRED_UNLOCK | KL_OIA_TWAIT | KL_OIA_LOCKED | KL_AWAITING_FIRST)) { kybdlock_clr(~KL_DEFERRED_UNLOCK, "do_reset"); kybdlock_set(KL_DEFERRED_UNLOCK, "do_reset"); unlock_id = AddTimeOut(appres.unlock_delay_ms, defer_unlock); trace_event("Deferring keyboard unlock %dms\n", appres.unlock_delay_ms); } /* Clean up other modes. */ status_reset(); mcursor_normal(); composing = NONE; status_compose(False, 0, KT_STD); } void Reset_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Reset_action, event, params, num_params); if (check_usage(Reset_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); do_reset(True); } /* * Move to first unprotected field on screen. */ void Home_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Home_action, event, params, num_params); if (check_usage(Home_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Home_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_home(); return; } #endif /*]*/ if (!formatted) { cursor_move(0); return; } cursor_move(next_unprotected(ROWS*COLS-1)); } /* * Cursor left 1 position. */ static void do_left(void) { register int baddr; enum dbcs_state d; baddr = cursor_addr; DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) { DEC_BA(baddr); } else if (IS_LEFT(d)) { DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) DEC_BA(baddr); } cursor_move(baddr); } void Left_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Left_action, event, params, num_params); if (check_usage(Left_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Left"); status_reset(); } else { enq_ta(Left_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_left(); return; } #endif /*]*/ if (!flipped) do_left(); else { register int baddr; baddr = cursor_addr; INC_BA(baddr); cursor_move(baddr); } } /* * Delete char key. * Returns "True" if succeeds, "False" otherwise. */ static Boolean do_delete(void) { register int baddr, end_baddr; int xaddr; register unsigned char fa; int ndel; register int i; baddr = cursor_addr; /* Can't delete a field attribute. */ fa = get_field_attribute(baddr); if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return False; } if (ea_buf[baddr].cc == EBC_so || ea_buf[baddr].cc == EBC_si) { /* * Can't delete SO or SI, unless it's adjacent to its * opposite. */ xaddr = baddr; INC_BA(xaddr); if (ea_buf[xaddr].cc == SOSI(ea_buf[baddr].cc)) { ndel = 2; } else { operator_error(KL_OERR_PROTECTED); return False; } } else if (IS_DBCS(ea_buf[baddr].db)) { if (IS_RIGHT(ea_buf[baddr].db)) DEC_BA(baddr); ndel = 2; } else ndel = 1; /* find next fa */ if (formatted) { end_baddr = baddr; do { INC_BA(end_baddr); if (ea_buf[end_baddr].fa) break; } while (end_baddr != baddr); DEC_BA(end_baddr); } else { if ((baddr % COLS) == COLS - ndel) return True; end_baddr = baddr + (COLS - (baddr % COLS)) - 1; } /* Shift the remainder of the field left. */ if (end_baddr > baddr) { ctlr_bcopy(baddr + ndel, baddr, end_baddr - (baddr + ndel) + 1, 0); } else if (end_baddr != baddr) { /* XXX: Need to verify this. */ ctlr_bcopy(baddr + ndel, baddr, ((ROWS * COLS) - 1) - (baddr + ndel) + 1, 0); ctlr_bcopy(0, (ROWS * COLS) - ndel, ndel, 0); ctlr_bcopy(ndel, 0, end_baddr - ndel + 1, 0); } /* NULL fill at the end. */ for (i = 0; i < ndel; i++) ctlr_add(end_baddr - i, EBC_null, 0); /* Set the MDT for this field. */ mdt_set(cursor_addr); /* Patch up the DBCS state for display. */ (void) ctlr_dbcs_postprocess(); return True; } void Delete_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Delete_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(Delete_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_sendc('\177'); return; } #endif /*]*/ if (!do_delete()) return; if (reverse) { int baddr = cursor_addr; DEC_BA(baddr); if (!ea_buf[baddr].fa) cursor_move(baddr); } } /* * 3270-style backspace. */ void BackSpace_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(BackSpace_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(BackSpace_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_erase(); return; } #endif /*]*/ if (reverse) (void) do_delete(); else if (!flipped) do_left(); else { register int baddr; baddr = cursor_addr; DEC_BA(baddr); cursor_move(baddr); } } /* * Destructive backspace, like Unix "erase". */ static void do_erase(void) { int baddr, faddr; enum dbcs_state d; baddr = cursor_addr; faddr = find_field_attribute(baddr); if (faddr == baddr || FA_IS_PROTECTED(ea_buf[baddr].fa)) { operator_error(KL_OERR_PROTECTED); return; } if (baddr && faddr == baddr - 1) return; do_left(); /* * If we are now on an SI, move left again. */ if (ea_buf[cursor_addr].cc == EBC_si) { baddr = cursor_addr; DEC_BA(baddr); cursor_move(baddr); } /* * If we landed on the right-hand side of a DBCS character, move to the * left-hand side. * This ensures that if this is the end of a DBCS subfield, we will * land on the SI, instead of on the character following. */ d = ctlr_dbcs_state(cursor_addr); if (IS_RIGHT(d)) { baddr = cursor_addr; DEC_BA(baddr); cursor_move(baddr); } /* * Try to delete this character. */ if (!do_delete()) return; /* * If we've just erased the last character of a DBCS subfield, erase * the SO/SI pair as well. */ baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].cc == EBC_so && ea_buf[cursor_addr].cc == EBC_si) { cursor_move(baddr); (void) do_delete(); } } void Erase_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Erase_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(Erase_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_erase(); return; } #endif /*]*/ if (reverse) do_delete(); else do_erase(); } /* * Cursor right 1 position. */ void Right_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; enum dbcs_state d; action_debug(Right_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Right"); status_reset(); } else { enq_ta(Right_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_right(); return; } #endif /*]*/ if (!flipped) { baddr = cursor_addr; INC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) INC_BA(baddr); cursor_move(baddr); } else do_left(); } /* * Cursor left 2 positions. */ void Left2_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; enum dbcs_state d; action_debug(Left2_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Left2"); status_reset(); } else { enq_ta(Left2_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ baddr = cursor_addr; DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) DEC_BA(baddr); DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) DEC_BA(baddr); cursor_move(baddr); } /* * Cursor to previous word. */ void PreviousWord_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; int baddr0; unsigned char c; Boolean prot; action_debug(PreviousWord_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(PreviousWord_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (!formatted) return; baddr = cursor_addr; prot = FA_IS_PROTECTED(get_field_attribute(baddr)); /* Skip to before this word, if in one now. */ if (!prot) { c = ea_buf[baddr].cc; while (!ea_buf[baddr].fa && c != EBC_space && c != EBC_null) { DEC_BA(baddr); if (baddr == cursor_addr) return; c = ea_buf[baddr].cc; } } baddr0 = baddr; /* Find the end of the preceding word. */ do { c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) { DEC_BA(baddr); prot = FA_IS_PROTECTED(get_field_attribute(baddr)); continue; } if (!prot && c != EBC_space && c != EBC_null) break; DEC_BA(baddr); } while (baddr != baddr0); if (baddr == baddr0) return; /* Go it its front. */ for (;;) { DEC_BA(baddr); c = ea_buf[baddr].cc; if (ea_buf[baddr].fa || c == EBC_space || c == EBC_null) { break; } } INC_BA(baddr); cursor_move(baddr); } /* * Cursor right 2 positions. */ void Right2_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; enum dbcs_state d; action_debug(Right2_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Right2"); status_reset(); } else { enq_ta(Right2_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ baddr = cursor_addr; INC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) INC_BA(baddr); INC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) INC_BA(baddr); cursor_move(baddr); } /* Find the next unprotected word, or -1 */ static int nu_word(int baddr) { int baddr0 = baddr; unsigned char c; Boolean prot; prot = FA_IS_PROTECTED(get_field_attribute(baddr)); do { c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) prot = FA_IS_PROTECTED(ea_buf[baddr].fa); else if (!prot && c != EBC_space && c != EBC_null) return baddr; INC_BA(baddr); } while (baddr != baddr0); return -1; } /* Find the next word in this field, or -1 */ static int nt_word(int baddr) { int baddr0 = baddr; unsigned char c; Boolean in_word = True; do { c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) return -1; if (in_word) { if (c == EBC_space || c == EBC_null) in_word = False; } else { if (c != EBC_space && c != EBC_null) return baddr; } INC_BA(baddr); } while (baddr != baddr0); return -1; } /* * Cursor to next unprotected word. */ void NextWord_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; unsigned char c; action_debug(NextWord_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(NextWord_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (!formatted) return; /* If not in an unprotected field, go to the next unprotected word. */ if (ea_buf[cursor_addr].fa || FA_IS_PROTECTED(get_field_attribute(cursor_addr))) { baddr = nu_word(cursor_addr); if (baddr != -1) cursor_move(baddr); return; } /* If there's another word in this field, go to it. */ baddr = nt_word(cursor_addr); if (baddr != -1) { cursor_move(baddr); return; } /* If in a word, go to just after its end. */ c = ea_buf[cursor_addr].cc; if (c != EBC_space && c != EBC_null) { baddr = cursor_addr; do { c = ea_buf[baddr].cc; if (c == EBC_space || c == EBC_null) { cursor_move(baddr); return; } else if (ea_buf[baddr].fa) { baddr = nu_word(baddr); if (baddr != -1) cursor_move(baddr); return; } INC_BA(baddr); } while (baddr != cursor_addr); } /* Otherwise, go to the next unprotected word. */ else { baddr = nu_word(cursor_addr); if (baddr != -1) cursor_move(baddr); } } /* * Cursor up 1 position. */ void Up_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; action_debug(Up_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Up"); status_reset(); } else { enq_ta(Up_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_up(); return; } #endif /*]*/ baddr = cursor_addr - COLS; if (baddr < 0) baddr = (cursor_addr + (ROWS * COLS)) - COLS; cursor_move(baddr); } /* * Cursor down 1 position. */ void Down_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; action_debug(Down_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Down"); status_reset(); } else { enq_ta(Down_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_down(); return; } #endif /*]*/ baddr = (cursor_addr + COLS) % (COLS * ROWS); cursor_move(baddr); } /* * Cursor to first field on next line or any lines after that. */ void Newline_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr, faddr; register unsigned char fa; action_debug(Newline_action, event, params, num_params); if (check_usage(Newline_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Newline_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_sendc('\n'); return; } #endif /*]*/ baddr = (cursor_addr + COLS) % (COLS * ROWS); /* down */ baddr = (baddr / COLS) * COLS; /* 1st col */ faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (faddr != baddr && !FA_IS_PROTECTED(fa)) cursor_move(baddr); else cursor_move(next_unprotected(baddr)); } /* * DUP key */ void Dup_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Dup_action, event, params, num_params); if (check_usage(Dup_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Dup_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (key_Character(EBC_dup, False, False, NULL)) cursor_move(next_unprotected(cursor_addr)); } /* * FM key */ void FieldMark_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(FieldMark_action, event, params, num_params); if (check_usage(FieldMark_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(FieldMark_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ (void) key_Character(EBC_fm, False, False, NULL); } /* * Vanilla AID keys. */ void Enter_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Enter_action, event, params, num_params); if (check_usage(Enter_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(Enter_action, CN, CN); else key_AID(AID_ENTER); } void SysReq_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(SysReq_action, event, params, num_params); if (check_usage(SysReq_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (IN_ANSI) return; #if defined(X3270_TN3270E) /*[*/ if (IN_E) { net_abort(); } else #endif /*]*/ { if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(SysReq_action, CN, CN); else key_AID(AID_SYSREQ); } } /* * Clear AID key */ void Clear_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Clear_action, event, params, num_params); if (check_usage(Clear_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; if (kybdlock && CONNECTED) { enq_ta(Clear_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_clear(); return; } #endif /*]*/ buffer_addr = 0; ctlr_clear(True); cursor_move(0); if (CONNECTED) key_AID(AID_CLEAR); } /* * Cursor Select key (light pen simulator). */ static void lightpen_select(int baddr) { int faddr; register unsigned char fa; int designator; #if defined(X3270_DBCS) /*[*/ int designator2; #endif /*]*/ faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (!FA_IS_SELECTABLE(fa)) { ring_bell(); return; } designator = faddr; INC_BA(designator); #if defined(X3270_DBCS) /*[*/ if (dbcs) { if (ea_buf[baddr].cs == CS_DBCS) { designator2 = designator; INC_BA(designator2); if ((ea_buf[designator].db != DBCS_LEFT && ea_buf[designator].db != DBCS_LEFT_WRAP) && (ea_buf[designator2].db != DBCS_RIGHT && ea_buf[designator2].db != DBCS_RIGHT_WRAP)) { ring_bell(); return; } if (ea_buf[designator].cc == 0x42 && ea_buf[designator2].cc == EBC_greater) { ctlr_add(designator2, EBC_question, CS_DBCS); mdt_clear(faddr); } else if (ea_buf[designator].cc == 0x42 && ea_buf[designator2].cc == EBC_question) { ctlr_add(designator2, EBC_greater, CS_DBCS); mdt_clear(faddr); } else if ((ea_buf[designator].cc == EBC_space && ea_buf[designator2].cc == EBC_space) || (ea_buf[designator].cc == EBC_null && ea_buf[designator2].cc == EBC_null)) { ctlr_add(designator2, EBC_greater, CS_DBCS); mdt_set(faddr); key_AID(AID_SELECT); } else if (ea_buf[designator].cc == 0x42 && ea_buf[designator2].cc == EBC_ampersand) { mdt_set(faddr); key_AID(AID_ENTER); } else { ring_bell(); } return; } } #endif /*]*/ switch (ea_buf[designator].cc) { case EBC_greater: /* > */ ctlr_add(designator, EBC_question, 0); /* change to ? */ mdt_clear(faddr); break; case EBC_question: /* ? */ ctlr_add(designator, EBC_greater, 0); /* change to > */ mdt_set(faddr); break; case EBC_space: /* space */ case EBC_null: /* null */ mdt_set(faddr); key_AID(AID_SELECT); break; case EBC_ampersand: /* & */ mdt_set(faddr); key_AID(AID_ENTER); break; default: ring_bell(); break; } } /* * Cursor Select key (light pen simulator) -- at the current cursor location. */ void CursorSelect_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(CursorSelect_action, event, params, num_params); if (check_usage(CursorSelect_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(CursorSelect_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ lightpen_select(cursor_addr); } #if defined(X3270_DISPLAY) /*[*/ /* * Cursor Select mouse action (light pen simulator). */ void MouseSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(MouseSelect_action, event, params, num_params); if (check_usage(MouseSelect_action, *num_params, 0, 0) < 0) return; if (w != *screen) return; reset_idle_timer(); if (kybdlock) return; #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ lightpen_select(mouse_baddr(w, event)); } #endif /*]*/ /* * Erase End Of Field Key. */ void EraseEOF_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; register unsigned char fa; enum dbcs_state d; enum dbcs_why why = DBCS_FIELD; action_debug(EraseEOF_action, event, params, num_params); if (check_usage(EraseEOF_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(EraseEOF_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ baddr = cursor_addr; fa = get_field_attribute(baddr); if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return; } if (formatted) { /* erase to next field attribute */ do { ctlr_add(baddr, EBC_null, 0); INC_BA(baddr); } while (!ea_buf[baddr].fa); mdt_set(cursor_addr); } else { /* erase to end of screen */ do { ctlr_add(baddr, EBC_null, 0); INC_BA(baddr); } while (baddr != 0); } /* If the cursor was in a DBCS subfield, re-create the SI. */ d = ctlr_lookleft_state(cursor_addr, &why); if (IS_DBCS(d) && why == DBCS_SUBFIELD) { if (d == DBCS_RIGHT) { baddr = cursor_addr; DEC_BA(baddr); ea_buf[baddr].cc = EBC_si; } else ea_buf[cursor_addr].cc = EBC_si; } (void) ctlr_dbcs_postprocess(); } /* * Erase all Input Key. */ void EraseInput_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr, sbaddr; unsigned char fa; Boolean f; action_debug(EraseInput_action, event, params, num_params); if (check_usage(EraseInput_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(EraseInput_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (formatted) { /* find first field attribute */ baddr = 0; do { if (ea_buf[baddr].fa) break; INC_BA(baddr); } while (baddr != 0); sbaddr = baddr; f = False; do { fa = ea_buf[baddr].fa; if (!FA_IS_PROTECTED(fa)) { mdt_clear(baddr); do { INC_BA(baddr); if (!f) { cursor_move(baddr); f = True; } if (!ea_buf[baddr].fa) { ctlr_add(baddr, EBC_null, 0); } } while (!ea_buf[baddr].fa); } else { /* skip protected */ do { INC_BA(baddr); } while (!ea_buf[baddr].fa); } } while (baddr != sbaddr); if (!f) cursor_move(0); } else { ctlr_clear(True); cursor_move(0); } } /* * Delete word key. Backspaces the cursor until it hits the front of a word, * deletes characters until it hits a blank or null, and deletes all of these * but the last. * * Which is to say, does a ^W. */ void DeleteWord_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; register unsigned char fa; action_debug(DeleteWord_action, event, params, num_params); if (check_usage(DeleteWord_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(DeleteWord_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_werase(); return; } #endif /*]*/ if (!formatted) return; baddr = cursor_addr; fa = get_field_attribute(baddr); /* Make sure we're on a modifiable field. */ if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return; } /* Backspace over any spaces to the left of the cursor. */ for (;;) { baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].fa) return; if (ea_buf[baddr].cc == EBC_null || ea_buf[baddr].cc == EBC_space) do_erase(); else break; } /* Backspace until the character to the left of the cursor is blank. */ for (;;) { baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].fa) return; if (ea_buf[baddr].cc == EBC_null || ea_buf[baddr].cc == EBC_space) break; else do_erase(); } } /* * Delete field key. Similar to EraseEOF, but it wipes out the entire field * rather than just to the right of the cursor, and it leaves the cursor at * the front of the field. * * Which is to say, does a ^U. */ void DeleteField_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; register unsigned char fa; action_debug(DeleteField_action, event, params, num_params); if (check_usage(DeleteField_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(DeleteField_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_kill(); return; } #endif /*]*/ if (!formatted) return; baddr = cursor_addr; fa = get_field_attribute(baddr); if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return; } while (!ea_buf[baddr].fa) DEC_BA(baddr); INC_BA(baddr); mdt_set(cursor_addr); cursor_move(baddr); while (!ea_buf[baddr].fa) { ctlr_add(baddr, EBC_null, 0); INC_BA(baddr); } } /* * Set insert mode key. */ void Insert_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Insert_action, event, params, num_params); if (check_usage(Insert_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Insert_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ insert_mode(True); } /* * Toggle insert mode key. */ void ToggleInsert_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(ToggleInsert_action, event, params, num_params); if (check_usage(ToggleInsert_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(ToggleInsert_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (insert) insert_mode(False); else insert_mode(True); } /* * Toggle reverse mode key. */ void ToggleReverse_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(ToggleReverse_action, event, params, num_params); if (check_usage(ToggleReverse_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(ToggleReverse_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ reverse_mode(!reverse); } /* * Move the cursor to the first blank after the last nonblank in the * field, or if the field is full, to the last character in the field. */ void FieldEnd_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int baddr, faddr; unsigned char fa, c; int last_nonblank = -1; action_debug(FieldEnd_action, event, params, num_params); if (check_usage(FieldEnd_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(FieldEnd_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (!formatted) return; baddr = cursor_addr; faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (faddr == baddr || FA_IS_PROTECTED(fa)) return; baddr = faddr; while (True) { INC_BA(baddr); c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) break; if (c != EBC_null && c != EBC_space) last_nonblank = baddr; } if (last_nonblank == -1) { baddr = faddr; INC_BA(baddr); } else { baddr = last_nonblank; INC_BA(baddr); if (ea_buf[baddr].fa) baddr = last_nonblank; } cursor_move(baddr); } /* * MoveCursor action. Depending on arguments, this is either a move to the * mouse cursor position, or to an absolute location. */ void MoveCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { register int baddr; int row, col; action_debug(MoveCursor_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (*num_params == 2) enq_ta(MoveCursor_action, params[0], params[1]); return; } switch (*num_params) { #if defined(X3270_DISPLAY) /*[*/ case 0: /* mouse click, presumably */ if (w != *screen) return; cursor_move(mouse_baddr(w, event)); break; #endif /*]*/ case 2: /* probably a macro call */ row = atoi(params[0]); col = atoi(params[1]); if (!IN_3270) { row--; col--; } if (row < 0) row = 0; if (col < 0) col = 0; baddr = ((row * COLS) + col) % (ROWS * COLS); cursor_move(baddr); break; default: /* couln't say */ popup_an_error("%s requires 0 or 2 arguments", action_name(MoveCursor_action)); cancel_if_idle_command(); break; } } #if defined(X3270_DBCS) && defined(X3270_DISPLAY) /*[*/ /* * Run a KeyPress through XIM. * Returns True if there is further processing to do, False otherwise. */ static Boolean xim_lookup(XKeyEvent *event) { static char *buf = NULL; static int buf_len = 0, rlen; KeySym k; Status status; extern XIC ic; int i; Boolean rv = False; #define BASE_BUFSIZE 50 if (ic == NULL) return True; if (buf == NULL) { buf_len = BASE_BUFSIZE; buf = Malloc(buf_len); } for (;;) { memset(buf, '\0', buf_len); rlen = XmbLookupString(ic, event, buf, buf_len - 1, &k, &status); if (status != XBufferOverflow) break; buf_len += BASE_BUFSIZE; buf = Realloc(buf, buf_len); } switch (status) { case XLookupNone: rv = False; break; case XLookupKeySym: rv = True; break; case XLookupChars: trace_event("%d XIM char%s:", rlen, (rlen != 1)? "s": ""); for (i = 0; i < rlen; i++) { trace_event(" %02x", buf[i] & 0xff); } trace_event("\n"); buf[rlen] = '\0'; key_ACharacter(buf, KT_STD, ia_cause, NULL); rv = False; break; case XLookupBoth: rv = True; break; } return rv; } #endif /*]*/ /* * Key action. */ void Key_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; KeySym k; enum keytype keytype; ucs4_t ucs4; action_debug(Key_action, event, params, num_params); reset_idle_timer(); for (i = 0; i < *num_params; i++) { char *s = params[i]; k = MyStringToKeysym(s, &keytype, &ucs4); if (k == NoSymbol && !ucs4) { popup_an_error("%s: Nonexistent or invalid KeySym: %s", action_name(Key_action), s); cancel_if_idle_command(); continue; } if (k & ~0xff) { /* * Can't pass symbolic KeySyms that aren't in the * range 0x01..0xff. */ popup_an_error("%s: Invalid KeySym: %s", action_name(Key_action), s); cancel_if_idle_command(); continue; } if (k != NoSymbol) key_UCharacter(k, keytype, IA_KEY, NULL); else key_UCharacter(ucs4, keytype, IA_KEY, NULL); } } /* * String action. */ void String_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; int len = 0; char *s; action_debug(String_action, event, params, num_params); reset_idle_timer(); /* Determine the total length of the strings. */ for (i = 0; i < *num_params; i++) len += strlen(params[i]); if (!len) return; /* Allocate a block of memory and copy them in. */ s = Malloc(len + 1); s[0] = '\0'; for (i = 0; i < *num_params; i++) { strcat(s, params[i]); } /* Set a pending string. */ ps_set(s, False); Free(s); } /* * HexString action. */ void HexString_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; int len = 0; char *s; char *t; action_debug(HexString_action, event, params, num_params); reset_idle_timer(); /* Determine the total length of the strings. */ for (i = 0; i < *num_params; i++) { t = params[i]; if (!strncmp(t, "0x", 2) || !strncmp(t, "0X", 2)) t += 2; len += strlen(t); } if (!len) return; /* Allocate a block of memory and copy them in. */ s = Malloc(len + 1); *s = '\0'; for (i = 0; i < *num_params; i++) { t = params[i]; if (!strncmp(t, "0x", 2) || !strncmp(t, "0X", 2)) t += 2; (void) strcat(s, t); } /* Set a pending string. */ ps_set(s, True); } /* * Dual-mode action for the "asciicircum" ("^") key: * If in ANSI mode, pass through untranslated. * If in 3270 mode, translate to "notsign". * This action is obsoleted by the use of 3270-mode and NVT-mode keymaps, but * is still defined here for backwards compatibility with old keymaps. */ void CircumNot_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(CircumNot_action, event, params, num_params); if (check_usage(CircumNot_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (IN_3270 && composing == NONE) key_UCharacter(0xac, KT_STD, IA_KEY, NULL); else key_UCharacter('^', KT_STD, IA_KEY, NULL); } /* PA key action for String actions */ static void do_pa(unsigned n) { if (n < 1 || n > PA_SZ) { popup_an_error("Unknown PA key %d", n); cancel_if_idle_command(); return; } if (kybdlock) { char nn[3]; (void) sprintf(nn, "%d", n); enq_ta(PA_action, nn, CN); return; } key_AID(pa_xlate[n-1]); } /* PF key action for String actions */ static void do_pf(unsigned n) { if (n < 1 || n > PF_SZ) { popup_an_error("Unknown PF key %d", n); cancel_if_idle_command(); return; } if (kybdlock) { char nn[3]; (void) sprintf(nn, "%d", n); enq_ta(PF_action, nn, CN); return; } key_AID(pf_xlate[n-1]); } /* * Set or clear the keyboard scroll lock. */ void kybd_scroll_lock(Boolean lock) { if (!IN_3270) return; if (lock) kybdlock_set(KL_SCROLLED, "kybd_scroll_lock"); else kybdlock_clr(KL_SCROLLED, "kybd_scroll_lock"); } /* * Move the cursor back within the legal paste area. * Returns a Boolean indicating success. */ static Boolean remargin(int lmargin) { Boolean ever = False; int baddr, b0 = 0; int faddr; unsigned char fa; baddr = cursor_addr; while (BA_TO_COL(baddr) < lmargin) { baddr = ROWCOL_TO_BA(BA_TO_ROW(baddr), lmargin); if (!ever) { b0 = baddr; ever = True; } faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (faddr == baddr || FA_IS_PROTECTED(fa)) { baddr = next_unprotected(baddr); if (baddr <= b0) return False; } } cursor_move(baddr); return True; } /* * Pretend that a sequence of keys was entered at the keyboard. * * "Pasting" means that the sequence came from the X clipboard. Returns are * ignored; newlines mean "move to beginning of next line"; tabs and formfeeds * become spaces. Backslashes are not special, but ASCII ESC characters are * used to signify 3270 Graphic Escapes. * * "Not pasting" means that the sequence is a login string specified in the * hosts file, or a parameter to the String action. Returns are "move to * beginning of next line"; newlines mean "Enter AID" and the termination of * processing the string. Backslashes are processed as in C. * * Returns the number of unprocessed characters. */ int emulate_uinput(ucs4_t *ws, int xlen, Boolean pasting) { enum { BASE, BACKSLASH, BACKX, BACKE, BACKP, BACKPA, BACKPF, OCTAL, HEX, EBC, XGE } state = BASE; int literal = 0; int nc = 0; enum iaction ia = pasting ? IA_PASTE : IA_STRING; int orig_addr = cursor_addr; int orig_col = BA_TO_COL(cursor_addr); Boolean skipped = False; ucs4_t c; /* * In the switch statements below, "break" generally means "consume * this character," while "continue" means "rescan this character." */ while (xlen) { /* * It isn't possible to unlock the keyboard from a string, * so if the keyboard is locked, it's fatal */ if (kybdlock) { trace_event(" keyboard locked, string dropped\n"); return 0; } if (pasting && IN_3270) { /* Check for cursor wrap to top of screen. */ if (cursor_addr < orig_addr) return xlen-1; /* wrapped */ /* Jump cursor over left margin. */ if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { if (!remargin(orig_col)) return xlen-1; skipped = True; } } c = *ws; switch (state) { case BASE: switch (c) { case '\b': action_internal(Left_action, ia, CN, CN); skipped = False; break; case '\f': if (pasting) { key_UCharacter(' ', KT_STD, ia, &skipped); } else { action_internal(Clear_action, ia, CN, CN); skipped = False; if (IN_3270) return xlen-1; } break; case '\n': if (pasting) { if (!skipped) action_internal(Newline_action, ia, CN, CN); skipped = False; } else { action_internal(Enter_action, ia, CN, CN); skipped = False; if (IN_3270) return xlen-1; } break; case '\r': if (!pasting) { action_internal(Newline_action, ia, CN, CN); skipped = False; } break; case '\t': action_internal(Tab_action, ia, CN, CN); skipped = False; break; case '\\': /* backslashes are NOT special when pasting */ if (!pasting) state = BACKSLASH; else key_UCharacter((unsigned char)c, KT_STD, ia, &skipped); break; case '\033': /* ESC is special only when pasting */ if (pasting) state = XGE; break; case '[': /* APL left bracket */ if (pasting && appres.apl_mode) key_UCharacter(XK_Yacute, KT_GE, ia, &skipped); else key_UCharacter((unsigned char)c, KT_STD, ia, &skipped); break; case ']': /* APL right bracket */ if (pasting && appres.apl_mode) key_UCharacter(XK_diaeresis, KT_GE, ia, &skipped); else key_UCharacter((unsigned char)c, KT_STD, ia, &skipped); break; case UPRIV_fm: /* private-use FM */ if (pasting) key_Character(EBC_fm, False, True, &skipped); break; case UPRIV_dup: /* private-use DUP */ if (pasting) key_Character(EBC_dup, False, True, &skipped); break; case UPRIV_eo: /* private-use EO */ if (pasting) key_Character(EBC_eo, False, True, &skipped); break; case UPRIV_sub: /* private-use SUB */ if (pasting) key_Character(EBC_sub, False, True, &skipped); break; default: if (pasting && (c >= UPRIV_GE_00 && c <= UPRIV_GE_ff)) key_Character(c - UPRIV_GE_00, KT_GE, ia, &skipped); else key_UCharacter(c, KT_STD, ia, &skipped); break; } break; case BACKSLASH: /* last character was a backslash */ switch (c) { case 'a': popup_an_error("%s: Bell not supported", action_name(String_action)); cancel_if_idle_command(); state = BASE; break; case 'b': action_internal(Left_action, ia, CN, CN); skipped = False; state = BASE; break; case 'f': action_internal(Clear_action, ia, CN, CN); skipped = False; state = BASE; if (IN_3270) return xlen-1; else break; case 'n': action_internal(Enter_action, ia, CN, CN); skipped = False; state = BASE; if (IN_3270) return xlen-1; else break; case 'p': state = BACKP; break; case 'r': action_internal(Newline_action, ia, CN, CN); skipped = False; state = BASE; break; case 't': action_internal(Tab_action, ia, CN, CN); skipped = False; state = BASE; break; case 'T': action_internal(BackTab_action, ia, CN, CN); skipped = False; state = BASE; break; case 'v': popup_an_error("%s: Vertical tab not supported", action_name(String_action)); cancel_if_idle_command(); state = BASE; break; case 'u': case 'x': state = BACKX; break; case 'e': state = BACKE; break; case '\\': key_UCharacter((unsigned char) c, KT_STD, ia, &skipped); state = BASE; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': state = OCTAL; literal = 0; nc = 0; continue; default: state = BASE; continue; } break; case BACKP: /* last two characters were "\p" */ switch (c) { case 'a': literal = 0; nc = 0; state = BACKPA; break; case 'f': literal = 0; nc = 0; state = BACKPF; break; default: popup_an_error("%s: Unknown character " "after \\p", action_name(String_action)); cancel_if_idle_command(); state = BASE; break; } break; case BACKPF: /* last three characters were "\pf" */ if (nc < 2 && isdigit(c)) { literal = (literal * 10) + (c - '0'); nc++; } else if (!nc) { popup_an_error("%s: Unknown character " "after \\pf", action_name(String_action)); cancel_if_idle_command(); state = BASE; } else { do_pf(literal); skipped = False; if (IN_3270) { return xlen; } state = BASE; continue; } break; case BACKPA: /* last three characters were "\pa" */ if (nc < 1 && isdigit(c)) { literal = (literal * 10) + (c - '0'); nc++; } else if (!nc) { popup_an_error("%s: Unknown character " "after \\pa", action_name(String_action)); cancel_if_idle_command(); state = BASE; } else { do_pa(literal); skipped = False; if (IN_3270) return xlen-1; state = BASE; continue; } break; case BACKX: /* last two characters were "\x" or "\u" */ if (isxdigit(c)) { state = HEX; literal = 0; nc = 0; continue; } else { popup_an_error("%s: Missing hex digits after \\x", action_name(String_action)); cancel_if_idle_command(); state = BASE; continue; } case BACKE: /* last two characters were "\e" */ if (isxdigit(c)) { state = EBC; literal = 0; nc = 0; continue; } else { popup_an_error("%s: Missing hex digits after \\e", action_name(String_action)); cancel_if_idle_command(); state = BASE; continue; } case OCTAL: /* have seen \ and one or more octal digits */ if (nc < 3 && isdigit(c) && c < '8') { literal = (literal * 8) + FROM_HEX(c); nc++; break; } else { key_UCharacter((unsigned char) literal, KT_STD, ia, &skipped); state = BASE; continue; } case HEX: /* have seen \x and one or more hex digits */ if (nc < 4 && isxdigit(c)) { literal = (literal * 16) + FROM_HEX(c); nc++; break; } else { key_UCharacter((unsigned char) literal, KT_STD, ia, &skipped); state = BASE; continue; } case EBC: /* have seen \e and one or more hex digits */ if (nc < 4 && isxdigit(c)) { literal = (literal * 16) + FROM_HEX(c); nc++; break; } else { trace_event(" %s -> Key(X'%02X')\n", ia_name[(int) ia], literal); if (!(literal & ~0xff)) key_Character((unsigned char) literal, False, True, &skipped); else { #if defined(X3270_DBCS) /*[*/ unsigned char code[2]; code[0] = (literal >> 8) & 0xff; code[1] = literal & 0xff; key_WCharacter(code, &skipped); #else /*][*/ popup_an_error("%s: EBCDIC code > 255", action_name(String_action)); cancel_if_idle_command(); #endif /*]*/ } state = BASE; continue; } case XGE: /* have seen ESC */ switch (c) { case ';': /* FM */ key_Character(EBC_fm, False, True, &skipped); break; case '*': /* DUP */ key_Character(EBC_dup, False, True, &skipped); break; default: key_UCharacter((unsigned char) c, KT_GE, ia, &skipped); break; } state = BASE; break; } ws++; xlen--; } switch (state) { case BASE: if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { (void) remargin(orig_col); } break; case OCTAL: case HEX: key_UCharacter((unsigned char) literal, KT_STD, ia, &skipped); state = BASE; if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { (void) remargin(orig_col); } break; case EBC: /* XXX: line below added after 3.3.7p7 */ trace_event(" %s -> Key(X'%02X')\n", ia_name[(int) ia], literal); key_Character((unsigned char) literal, False, True, &skipped); state = BASE; if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { (void) remargin(orig_col); } break; case BACKPF: if (nc > 0) { do_pf(literal); state = BASE; } break; case BACKPA: if (nc > 0) { do_pa(literal); state = BASE; } break; default: popup_an_error("%s: Missing data after \\", action_name(String_action)); cancel_if_idle_command(); break; } return xlen; } /* Multibyte version of emulate_uinput. */ int emulate_input(char *s, int len, Boolean pasting) { static ucs4_t *w_ibuf = NULL; static size_t w_ibuf_len = 0; int xlen; /* Convert from a multi-byte string to a Unicode string. */ if ((size_t)(len + 1) > w_ibuf_len) { w_ibuf_len = len + 1; w_ibuf = (ucs4_t *)Realloc(w_ibuf, w_ibuf_len * sizeof(ucs4_t)); } xlen = multibyte_to_unicode_string(s, len, w_ibuf, w_ibuf_len); if (xlen < 0) { return 0; /* failed */ } /* Process it as Unicode. */ return emulate_uinput(w_ibuf, xlen, pasting); } /* * Pretend that a sequence of hexadecimal characters was entered at the * keyboard. The input is a sequence of hexadecimal bytes, 2 characters * per byte. If connected in ANSI mode, these are treated as ASCII * characters; if in 3270 mode, they are considered EBCDIC. * * Graphic Escapes are handled as \E. */ void hex_input(char *s) { char *t; Boolean escaped; #if defined(X3270_ANSI) /*[*/ unsigned char *xbuf = (unsigned char *)NULL; unsigned char *tbuf = (unsigned char *)NULL; int nbytes = 0; #endif /*]*/ /* Validate the string. */ if (strlen(s) % 2) { popup_an_error("%s: Odd number of characters in specification", action_name(HexString_action)); cancel_if_idle_command(); return; } t = s; escaped = False; while (*t) { if (isxdigit(*t) && isxdigit(*(t + 1))) { escaped = False; #if defined(X3270_ANSI) /*[*/ nbytes++; #endif /*]*/ } else if (!strncmp(t, "\\E", 2) || !strncmp(t, "\\e", 2)) { if (escaped) { popup_an_error("%s: Double \\E", action_name(HexString_action)); cancel_if_idle_command(); return; } if (!IN_3270) { popup_an_error("%s: \\E in ANSI mode", action_name(HexString_action)); cancel_if_idle_command(); return; } escaped = True; } else { popup_an_error("%s: Illegal character in specification", action_name(HexString_action)); cancel_if_idle_command(); return; } t += 2; } if (escaped) { popup_an_error("%s: Nothing follows \\E", action_name(HexString_action)); cancel_if_idle_command(); return; } #if defined(X3270_ANSI) /*[*/ /* Allocate a temporary buffer. */ if (!IN_3270 && nbytes) tbuf = xbuf = (unsigned char *)Malloc(nbytes); #endif /*]*/ /* Pump it in. */ t = s; escaped = False; while (*t) { if (isxdigit(*t) && isxdigit(*(t + 1))) { unsigned c; c = (FROM_HEX(*t) * 16) + FROM_HEX(*(t + 1)); if (IN_3270) key_Character(c, escaped, True, NULL); #if defined(X3270_ANSI) /*[*/ else *tbuf++ = (unsigned char)c; #endif /*]*/ escaped = False; } else if (!strncmp(t, "\\E", 2) || !strncmp(t, "\\e", 2)) { escaped = True; } t += 2; } #if defined(X3270_ANSI) /*[*/ if (!IN_3270 && nbytes) { net_hexansi_out(xbuf, nbytes); Free(xbuf); } #endif /*]*/ } void ignore_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(ignore_action, event, params, num_params); reset_idle_timer(); } #if defined(X3270_FT) /*[*/ /* * Set up the cursor and input field for command input. * Returns the length of the input field, or 0 if there is no field * to set up. */ int kybd_prime(void) { int baddr; register unsigned char fa; int len = 0; /* * No point in trying if the screen isn't formatted, the keyboard * is locked, or we aren't in 3270 mode. */ if (!formatted || kybdlock || !IN_3270) return 0; fa = get_field_attribute(cursor_addr); if (ea_buf[cursor_addr].fa || FA_IS_PROTECTED(fa)) { /* * The cursor is not in an unprotected field. Find the * next one. */ baddr = next_unprotected(cursor_addr); /* If there isn't any, give up. */ if (!baddr) return 0; /* Move the cursor there. */ } else { /* Already in an unprotected field. Find its start. */ baddr = cursor_addr; while (!ea_buf[baddr].fa) { DEC_BA(baddr); } INC_BA(baddr); } /* Move the cursor to the beginning of the field. */ cursor_move(baddr); /* Erase it. */ while (!ea_buf[baddr].fa) { ctlr_add(baddr, 0, 0); len++; INC_BA(baddr); } /* Return the field length. */ return len; } #endif /*]*/ /* * Translate a keysym name to a keysym, including APL and extended * characters. */ static KeySym MyStringToKeysym(char *s, enum keytype *keytypep, ucs4_t *ucs4) { KeySym k; int consumed; enum me_fail error; /* No UCS-4 yet. */ *ucs4 = 0L; #if defined(X3270_APL) /*[*/ /* Look for my contrived APL symbols. */ if (!strncmp(s, "apl_", 4)) { int is_ge; k = APLStringToKeysym(s, &is_ge); if (is_ge) *keytypep = KT_GE; else *keytypep = KT_STD; return k; } else #endif /*]*/ { /* Look for a standard X11 keysym. */ k = StringToKeysym(s); *keytypep = KT_STD; if (k != NoSymbol) return k; } /* Look for "euro". */ if (!strcasecmp(s, "euro")) { *ucs4 = 0x20ac; return NoSymbol; } /* Look for U+nnnn of 0xXXXX. */ if (!strncasecmp(s, "U+", 2) || !strncasecmp(s, "0x", 2)) { *ucs4 = strtoul(s + 2, NULL, 16); return NoSymbol; } /* Look for a valid local multibyte character. */ *ucs4 = multibyte_to_unicode(s, strlen(s), &consumed, &error); if ((size_t)consumed != strlen(s)) *ucs4 = 0; return NoSymbol; } #if defined(X3270_DISPLAY) /*[*/ /* * X-dependent code starts here. */ /* * Translate a keymap (from an XQueryKeymap or a KeymapNotify event) into * a bitmap of Shift, Meta or Alt keys pressed. */ #define key_is_down(kc, bitmap) (kc && ((bitmap)[(kc)/8] & (1<<((kc)%8)))) int state_from_keymap(char keymap[32]) { static Boolean initted = False; static KeyCode kc_Shift_L, kc_Shift_R; static KeyCode kc_Meta_L, kc_Meta_R; static KeyCode kc_Alt_L, kc_Alt_R; int pseudo_state = 0; if (!initted) { kc_Shift_L = XKeysymToKeycode(display, XK_Shift_L); kc_Shift_R = XKeysymToKeycode(display, XK_Shift_R); kc_Meta_L = XKeysymToKeycode(display, XK_Meta_L); kc_Meta_R = XKeysymToKeycode(display, XK_Meta_R); kc_Alt_L = XKeysymToKeycode(display, XK_Alt_L); kc_Alt_R = XKeysymToKeycode(display, XK_Alt_R); initted = True; } if (key_is_down(kc_Shift_L, keymap) || key_is_down(kc_Shift_R, keymap)) pseudo_state |= ShiftKeyDown; if (key_is_down(kc_Meta_L, keymap) || key_is_down(kc_Meta_R, keymap)) pseudo_state |= MetaKeyDown; if (key_is_down(kc_Alt_L, keymap) || key_is_down(kc_Alt_R, keymap)) pseudo_state |= AltKeyDown; return pseudo_state; } #undef key_is_down /* * Process shift keyboard events. The code has to look for the raw Shift keys, * rather than using the handy "state" field in the event structure. This is * because the event state is the state _before_ the key was pressed or * released. This isn't enough information to distinguish between "left * shift released" and "left shift released, right shift still held down" * events, for example. * * This function is also called as part of Focus event processing. */ void PA_Shift_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { char keys[32]; #if defined(INTERNAL_ACTION_DEBUG) /*[*/ action_debug(PA_Shift_action, event, params, num_params); #endif /*]*/ XQueryKeymap(display, keys); shift_event(state_from_keymap(keys)); } #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ static Boolean build_composites(void) { char *c, *c0, *c1; char *ln; char ksname[3][64]; char junk[2]; KeySym k[3]; enum keytype a[3]; int i; struct composite *cp; if (appres.compose_map == CN) { popup_an_error("%s: No %s defined", action_name(Compose_action), ResComposeMap); return False; } c0 = get_fresource("%s.%s", ResComposeMap, appres.compose_map); if (c0 == CN) { popup_an_error("%s: Cannot find %s \"%s\"", action_name(Compose_action), ResComposeMap, appres.compose_map); return False; } c1 = c = NewString(c0); /* will be modified by strtok */ while ((ln = strtok(c, "\n"))) { Boolean okay = True; c = NULL; if (sscanf(ln, " %63[^+ \t] + %63[^= \t] =%63s%1s", ksname[0], ksname[1], ksname[2], junk) != 3) { popup_an_error("%s: Invalid syntax: %s", action_name(Compose_action), ln); continue; } for (i = 0; i < 3; i++) { ucs4_t ucs4; k[i] = MyStringToKeysym(ksname[i], &a[i], &ucs4); if (k[i] == NoSymbol) { /* For now, ignore UCS4. XXX: Fix this. */ popup_an_error("%s: Invalid KeySym: \"%s\"", action_name(Compose_action), ksname[i]); okay = False; break; } } if (!okay) continue; composites = (struct composite *) Realloc((char *)composites, (n_composites + 1) * sizeof(struct composite)); cp = composites + n_composites; cp->k1.keysym = k[0]; cp->k1.keytype = a[0]; cp->k2.keysym = k[1]; cp->k2.keytype = a[1]; cp->translation.keysym = k[2]; cp->translation.keytype = a[2]; n_composites++; } Free(c1); return True; } /* * Called by the toolkit when the "Compose" key is pressed. "Compose" is * implemented by pressing and releasing three keys: "Compose" and two * data keys. For example, "Compose" "s" "s" gives the German "ssharp" * character, and "Compose" "C", "," gives a capital "C" with a cedilla * (symbol Ccedilla). * * The mechanism breaks down a little when the user presses "Compose" and * then a non-data key. Oh well. */ void Compose_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Compose_action, event, params, num_params); if (check_usage(Compose_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (!composites && !build_composites()) return; if (composing == NONE) { composing = COMPOSE; status_compose(True, 0, KT_STD); } } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* * Called by the toolkit for any key without special actions. */ void Default_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { XKeyEvent *kevent = (XKeyEvent *)event; char buf[32]; KeySym ks; int ll; action_debug(Default_action, event, params, num_params); if (check_usage(Default_action, *num_params, 0, 0) < 0) return; switch (event->type) { case KeyPress: #if defined(X3270_DBCS) /*[*/ if (!xim_lookup((XKeyEvent *)event)) return; #endif /*]*/ ll = XLookupString(kevent, buf, 32, &ks, (XComposeStatus *) 0); buf[ll] = '\0'; if (ll > 1) { key_ACharacter(buf, KT_STD, IA_DEFAULT, NULL); return; } if (ll == 1) { /* Remap certain control characters. */ if (!IN_ANSI) switch (buf[0]) { case '\t': action_internal(Tab_action, IA_DEFAULT, CN, CN); break; case '\177': action_internal(Delete_action, IA_DEFAULT, CN, CN); break; case '\b': action_internal(Erase_action, IA_DEFAULT, CN, CN); break; case '\r': action_internal(Enter_action, IA_DEFAULT, CN, CN); break; case '\n': action_internal(Newline_action, IA_DEFAULT, CN, CN); break; default: key_ACharacter(buf, KT_STD, IA_DEFAULT, NULL); break; } else { key_ACharacter(buf, KT_STD, IA_DEFAULT, NULL); } return; } /* Pick some other reasonable defaults. */ switch (ks) { case XK_Up: action_internal(Up_action, IA_DEFAULT, CN, CN); break; case XK_Down: action_internal(Down_action, IA_DEFAULT, CN, CN); break; case XK_Left: action_internal(Left_action, IA_DEFAULT, CN, CN); break; case XK_Right: action_internal(Right_action, IA_DEFAULT, CN, CN); break; case XK_Insert: #if defined(XK_KP_Insert) /*[*/ case XK_KP_Insert: #endif /*]*/ action_internal(Insert_action, IA_DEFAULT, CN, CN); break; case XK_Delete: action_internal(Delete_action, IA_DEFAULT, CN, CN); break; case XK_Home: action_internal(Home_action, IA_DEFAULT, CN, CN); break; case XK_Tab: action_internal(Tab_action, IA_DEFAULT, CN, CN); break; #if defined(XK_ISO_Left_Tab) /*[*/ case XK_ISO_Left_Tab: action_internal(BackTab_action, IA_DEFAULT, CN, CN); break; #endif /*]*/ case XK_Clear: action_internal(Clear_action, IA_DEFAULT, CN, CN); break; case XK_Sys_Req: action_internal(SysReq_action, IA_DEFAULT, CN, CN); break; #if defined(XK_EuroSign) /*[*/ case XK_EuroSign: action_internal(Key_action, IA_DEFAULT, "currency", CN); break; #endif /*]*/ #if defined(XK_3270_Duplicate) /*[*/ /* Funky 3270 keysyms. */ case XK_3270_Duplicate: action_internal(Dup_action, IA_DEFAULT, CN, CN); break; case XK_3270_FieldMark: action_internal(FieldMark_action, IA_DEFAULT, CN, CN); break; case XK_3270_Right2: action_internal(Right2_action, IA_DEFAULT, CN, CN); break; case XK_3270_Left2: action_internal(Left2_action, IA_DEFAULT, CN, CN); break; case XK_3270_BackTab: action_internal(BackTab_action, IA_DEFAULT, CN, CN); break; case XK_3270_EraseEOF: action_internal(EraseEOF_action, IA_DEFAULT, CN, CN); break; case XK_3270_EraseInput: action_internal(EraseInput_action, IA_DEFAULT, CN, CN); break; case XK_3270_Reset: action_internal(Reset_action, IA_DEFAULT, CN, CN); break; case XK_3270_PA1: action_internal(PA_action, IA_DEFAULT, "1", CN); break; case XK_3270_PA2: action_internal(PA_action, IA_DEFAULT, "2", CN); break; case XK_3270_PA3: action_internal(PA_action, IA_DEFAULT, "3", CN); break; case XK_3270_Attn: action_internal(Attn_action, IA_DEFAULT, CN, CN); break; case XK_3270_AltCursor: action_internal(AltCursor_action, IA_DEFAULT, CN, CN); break; case XK_3270_CursorSelect: action_internal(CursorSelect_action, IA_DEFAULT, CN, CN); break; case XK_3270_Enter: action_internal(Enter_action, IA_DEFAULT, CN, CN); break; #endif /*]*/ #if defined(X3270_APL) /*[*/ /* Funky APL keysyms. */ case XK_downcaret: action_internal(Key_action, IA_DEFAULT, "apl_downcaret", CN); break; case XK_upcaret: action_internal(Key_action, IA_DEFAULT, "apl_upcaret", CN); break; case XK_overbar: action_internal(Key_action, IA_DEFAULT, "apl_overbar", CN); break; case XK_downtack: action_internal(Key_action, IA_DEFAULT, "apl_downtack", CN); break; case XK_upshoe: action_internal(Key_action, IA_DEFAULT, "apl_upshoe", CN); break; case XK_downstile: action_internal(Key_action, IA_DEFAULT, "apl_downstile", CN); break; case XK_underbar: action_internal(Key_action, IA_DEFAULT, "apl_underbar", CN); break; case XK_jot: action_internal(Key_action, IA_DEFAULT, "apl_jot", CN); break; case XK_quad: action_internal(Key_action, IA_DEFAULT, "apl_quad", CN); break; case XK_uptack: action_internal(Key_action, IA_DEFAULT, "apl_uptack", CN); break; case XK_circle: action_internal(Key_action, IA_DEFAULT, "apl_circle", CN); break; case XK_upstile: action_internal(Key_action, IA_DEFAULT, "apl_upstile", CN); break; case XK_downshoe: action_internal(Key_action, IA_DEFAULT, "apl_downshoe", CN); break; case XK_rightshoe: action_internal(Key_action, IA_DEFAULT, "apl_rightshoe", CN); break; case XK_leftshoe: action_internal(Key_action, IA_DEFAULT, "apl_leftshoe", CN); break; case XK_lefttack: action_internal(Key_action, IA_DEFAULT, "apl_lefttack", CN); break; case XK_righttack: action_internal(Key_action, IA_DEFAULT, "apl_righttack", CN); break; #endif /*]*/ default: if (ks >= XK_F1 && ks <= XK_F24) { (void) sprintf(buf, "%ld", ks - XK_F1 + 1); action_internal(PF_action, IA_DEFAULT, buf, CN); } else { ucs4_t ucs4; ucs4 = keysym2ucs(ks); if (ucs4 != (ucs4_t)-1) { key_UCharacter(ucs4, KT_STD, IA_KEY, NULL); } else { trace_event( " %s: dropped (unknown keysym)\n", action_name(Default_action)); } } break; } break; case ButtonPress: case ButtonRelease: trace_event(" %s: dropped (no action configured)\n", action_name(Default_action)); break; default: trace_event(" %s: dropped (unknown event type)\n", action_name(Default_action)); break; } } /* * Set or clear a temporary keymap. * * TemporaryKeymap(x) toggle keymap "x" (add "x" to the keymap, or if * "x" was already added, remove it) * TemporaryKeymap() removes the previous keymap, if any * TemporaryKeymap(None) removes the previous keymap, if any */ void TemporaryKeymap_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(TemporaryKeymap_action, event, params, num_params); reset_idle_timer(); if (check_usage(TemporaryKeymap_action, *num_params, 0, 1) < 0) return; if (*num_params == 0 || !strcmp(params[0], "None")) { (void) temporary_keymap(CN); return; } if (temporary_keymap(params[0]) < 0) { popup_an_error("%s: Can't find %s %s", action_name(TemporaryKeymap_action), ResKeymap, params[0]); cancel_if_idle_command(); } } #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/telnet.c0000644000175000017500000023661011254565704015563 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, * GA 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC * nor their contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES AND * GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, * DON RUSSELL, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * telnet.c * This module initializes and manages a telnet socket to * the given IBM host. */ #include "globals.h" #if defined(_WIN32) /*[*/ #include #include #else /*][*/ #include #include #include #endif /*]*/ #define TELCMDS 1 #define TELOPTS 1 #include "arpa_telnet.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #if defined(HAVE_LIBSSL) /*[*/ #include #include #endif /*]*/ #include "tn3270e.h" #include "3270ds.h" #include "appres.h" #include "ansic.h" #include "ctlrc.h" #include "hostc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "proxyc.h" #include "resolverc.h" #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include "w3miscc.h" #include "xioc.h" #if !defined(TELOPT_NAWS) /*[*/ #define TELOPT_NAWS 31 #endif /*]*/ #if !defined(TELOPT_STARTTLS) /*[*/ #define TELOPT_STARTTLS 46 #endif /*]*/ #define TLS_FOLLOWS 1 #define BUFSZ 16384 #define TRACELINE 72 #define N_OPTS 256 /* Globals */ char *hostname = CN; time_t ns_time; int ns_brcvd; int ns_rrcvd; int ns_bsent; int ns_rsent; unsigned char *obuf; /* 3270 output buffer */ unsigned char *obptr = (unsigned char *) NULL; int linemode = 1; #if defined(LOCAL_PROCESS) /*[*/ Boolean local_process = False; #endif /*]*/ char *termtype; /* Externals */ extern struct timeval ds_ts; /* Statics */ static int sock = -1; /* active socket */ #if defined(_WIN32) /*[*/ static HANDLE sock_handle = NULL; #endif /*]*/ static unsigned char myopts[N_OPTS], hisopts[N_OPTS]; /* telnet option flags */ static unsigned char *ibuf = (unsigned char *) NULL; /* 3270 input buffer */ static unsigned char *ibptr; static int ibuf_size = 0; /* size of ibuf */ static unsigned char *obuf_base = (unsigned char *)NULL; static int obuf_size = 0; static unsigned char *netrbuf = (unsigned char *)NULL; /* network input buffer */ static unsigned char *sbbuf = (unsigned char *)NULL; /* telnet sub-option buffer */ static unsigned char *sbptr; static unsigned char telnet_state; static int syncing; #if !defined(_WIN32) /*[*/ static unsigned long output_id = 0L; #endif /*]*/ static char ttype_tmpval[13]; #if defined(X3270_TN3270E) /*[*/ static unsigned long e_funcs; /* negotiated TN3270E functions */ #define E_OPT(n) (1 << (n)) static unsigned short e_xmit_seq; /* transmit sequence number */ static int response_required; #endif /*]*/ #if defined(X3270_ANSI) /*[*/ static int ansi_data = 0; static unsigned char *lbuf = (unsigned char *)NULL; /* line-mode input buffer */ static unsigned char *lbptr; static int lnext = 0; static int backslashed = 0; static int t_valid = 0; static char vintr; static char vquit; static char verase; static char vkill; static char veof; static char vwerase; static char vrprnt; static char vlnext; #endif /*]*/ static int tn3270e_negotiated = 0; static enum { E_NONE, E_3270, E_NVT, E_SSCP } tn3270e_submode = E_NONE; static int tn3270e_bound = 0; static unsigned char *bind_image = NULL; static int bind_image_len = 0; static char *plu_name = NULL; static int maxru_sec = 0; static int maxru_pri = 0; static int bind_rd = 0; static int bind_cd = 0; static int bind_ra = 0; static int bind_ca = 0; static char **lus = (char **)NULL; static char **curr_lu = (char **)NULL; static char *try_lu = CN; static int proxy_type = 0; static char *proxy_host = CN; static char *proxy_portname = CN; static unsigned short proxy_port = 0; static int telnet_fsm(unsigned char c); static void net_rawout(unsigned const char *buf, int len); static void check_in3270(void); static void store3270in(unsigned char c); static void check_linemode(Boolean init); static int non_blocking(Boolean on); static void net_connected(void); #if defined(X3270_TN3270E) /*[*/ static int tn3270e_negotiate(void); #endif /*]*/ static int process_eor(void); #if defined(X3270_TN3270E) /*[*/ #if defined(X3270_TRACE) /*[*/ static const char *tn3270e_function_names(const unsigned char *, int); #endif /*]*/ static void tn3270e_subneg_send(unsigned char, unsigned long); static unsigned long tn3270e_fdecode(const unsigned char *, int); static void tn3270e_ack(void); static void tn3270e_nak(enum pds); #endif /*]*/ #if defined(X3270_ANSI) /*[*/ static void do_data(char c); static void do_intr(char c); static void do_quit(char c); static void do_cerase(char c); static void do_werase(char c); static void do_kill(char c); static void do_rprnt(char c); static void do_eof(char c); static void do_eol(char c); static void do_lnext(char c); static char parse_ctlchar(char *s); static void cooked_init(void); #endif /*]*/ #if defined(X3270_TRACE) /*[*/ static const char *cmd(int c); static const char *opt(unsigned char c); static const char *nnn(int c); #else /*][*/ #if defined(__GNUC__) /*[*/ #else /*][*/ #endif /*]*/ #define cmd(x) 0 #define opt(x) 0 #define nnn(x) 0 #endif /*]*/ /* telnet states */ #define TNS_DATA 0 /* receiving data */ #define TNS_IAC 1 /* got an IAC */ #define TNS_WILL 2 /* got an IAC WILL */ #define TNS_WONT 3 /* got an IAC WONT */ #define TNS_DO 4 /* got an IAC DO */ #define TNS_DONT 5 /* got an IAC DONT */ #define TNS_SB 6 /* got an IAC SB */ #define TNS_SB_IAC 7 /* got an IAC after an IAC SB */ /* telnet predefined messages */ static unsigned char do_opt[] = { IAC, DO, '_' }; static unsigned char dont_opt[] = { IAC, DONT, '_' }; static unsigned char will_opt[] = { IAC, WILL, '_' }; static unsigned char wont_opt[] = { IAC, WONT, '_' }; #if defined(X3270_TN3270E) /*[*/ static unsigned char functions_req[] = { IAC, SB, TELOPT_TN3270E, TN3270E_OP_FUNCTIONS }; #endif /*]*/ #if defined(X3270_TRACE) /*[*/ static const char *telquals[2] = { "IS", "SEND" }; #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ #if defined(X3270_TRACE) /*[*/ static const char *reason_code[8] = { "CONN-PARTNER", "DEVICE-IN-USE", "INV-ASSOCIATE", "INV-NAME", "INV-DEVICE-TYPE", "TYPE-NAME-ERROR", "UNKNOWN-ERROR", "UNSUPPORTED-REQ" }; #define rsn(n) (((n) <= TN3270E_REASON_UNSUPPORTED_REQ) ? \ reason_code[(n)] : "??") #endif /*]*/ static const char *function_name[5] = { "BIND-IMAGE", "DATA-STREAM-CTL", "RESPONSES", "SCS-CTL-CODES", "SYSREQ" }; #define fnn(n) (((n) <= TN3270E_FUNC_SYSREQ) ? \ function_name[(n)] : "??") #if defined(X3270_TRACE) /*[*/ static const char *data_type[9] = { "3270-DATA", "SCS-DATA", "RESPONSE", "BIND-IMAGE", "UNBIND", "NVT-DATA", "REQUEST", "SSCP-LU-DATA", "PRINT-EOJ" }; #define e_dt(n) (((n) <= TN3270E_DT_PRINT_EOJ) ? \ data_type[(n)] : "??") static const char *req_flag[1] = { " ERR-COND-CLEARED" }; #define e_rq(fn, n) (((fn) == TN3270E_DT_REQUEST) ? \ (((n) <= TN3270E_RQF_ERR_COND_CLEARED) ? \ req_flag[(n)] : " ??") : "") static const char *hrsp_flag[3] = { "NO-RESPONSE", "ERROR-RESPONSE", "ALWAYS-RESPONSE" }; #define e_hrsp(n) (((n) <= TN3270E_RSF_ALWAYS_RESPONSE) ? \ hrsp_flag[(n)] : "??") static const char *trsp_flag[2] = { "POSITIVE-RESPONSE", "NEGATIVE-RESPONSE" }; #define e_trsp(n) (((n) <= TN3270E_RSF_NEGATIVE_RESPONSE) ? \ trsp_flag[(n)] : "??") #define e_rsp(fn, n) (((fn) == TN3270E_DT_RESPONSE) ? e_trsp(n) : e_hrsp(n)) #endif /*]*/ #endif /*]*/ #if defined(C3270) && defined(C3270_80_132) /*[*/ #define XMIT_ROWS ((appres.altscreen != CN)? MODEL_2_ROWS: maxROWS) #define XMIT_COLS ((appres.altscreen != CN)? MODEL_2_COLS: maxCOLS) #else /*][*/ #define XMIT_ROWS maxROWS #define XMIT_COLS maxCOLS #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ Boolean secure_connection = False; static SSL_CTX *ssl_ctx; static SSL *ssl_con; static Boolean need_tls_follows = False; static void ssl_init(void); #if OPENSSL_VERSION_NUMBER >= 0x00907000L /*[*/ #define INFO_CONST const #else /*][*/ #define INFO_CONST #endif /*]*/ static void client_info_callback(INFO_CONST SSL *s, int where, int ret); static void continue_tls(unsigned char *sbbuf, int len); #endif /*]*/ #if !defined(_WIN32) /*[*/ static void output_possible(void); #endif /*]*/ #if defined(_WIN32) /*[*/ #define socket_errno() WSAGetLastError() #define SE_EWOULDBLOCK WSAEWOULDBLOCK #define SE_ECONNRESET WSAECONNRESET #define SE_EINTR WSAEINTR #define SE_EAGAIN WSAEINPROGRESS #define SE_EPIPE WSAECONNABORTED #define SE_EINPROGRESS WSAEINPROGRESS #define SOCK_CLOSE(s) closesocket(s) #define SOCK_IOCTL(s, f, v) ioctlsocket(s, f, (DWORD *)v) #else /*][*/ #define socket_errno() errno #define SE_EWOULDBLOCK EWOULDBLOCK #define SE_ECONNRESET ECONNRESET #define SE_EINTR EINTR #define SE_EAGAIN EAGAIN #define SE_EPIPE EPIPE #if defined(EINPROGRESS) /*[*/ #define SE_EINPROGRESS EINPROGRESS #endif /*]*/ #define SOCK_CLOSE(s) close(s) #define SOCK_IOCTL ioctl #endif /*]*/ #define NUM_HA 4 static union { struct sockaddr sa; struct sockaddr_in sin; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sin6; #endif /*]*/ } haddr[4]; static socklen_t ha_len[NUM_HA] = { sizeof(haddr[0]), sizeof(haddr[0]), sizeof(haddr[0]), sizeof(haddr[0]) }; static int num_ha = 0; static int ha_ix = 0; #if defined(_WIN32) /*[*/ void popup_a_sockerr(char *fmt, ...) { va_list args; char buffer[4096]; va_start(args, fmt); vsprintf(buffer, fmt, args); va_end(args); popup_an_error("%s: %s", buffer, win32_strerror(socket_errno())); } #else /*][*/ void popup_a_sockerr(char *fmt, ...) { va_list args; char buffer[4096]; va_start(args, fmt); vsprintf(buffer, fmt, args); va_end(args); popup_an_errno(errno, "%s", buffer); } #endif /*]*/ /* Connect to one of the addresses in haddr[]. */ static int connect_to(int ix, Boolean noisy, Boolean *pending) { int on = 1; char hn[256]; char pn[256]; char errmsg[1024]; #if defined(OMTU) /*[*/ int mtu = OMTU; #endif /*]*/ # define close_fail { (void) SOCK_CLOSE(sock); sock = -1; return -1; } /* create the socket */ if ((sock = socket(haddr[ix].sa.sa_family, SOCK_STREAM, 0)) == -1) { popup_a_sockerr("socket"); return -1; } /* set options for inline out-of-band data and keepalives */ if (setsockopt(sock, SOL_SOCKET, SO_OOBINLINE, (char *)&on, sizeof(on)) < 0) { popup_a_sockerr("setsockopt(SO_OOBINLINE)"); close_fail; } if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (char *)&on, sizeof(on)) < 0) { popup_a_sockerr("setsockopt(SO_KEEPALIVE)"); close_fail; } #if defined(OMTU) /*[*/ if (setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (char *)&mtu, sizeof(mtu)) < 0) { popup_a_sockerr("setsockopt(SO_SNDBUF)"); close_fail; } #endif /*]*/ /* set the socket to be non-delaying */ #if defined(_WIN32) /*[*/ if (non_blocking(False) < 0) #else /*][*/ if (non_blocking(True) < 0) #endif /*]*/ close_fail; #if !defined(_WIN32) /*[*/ /* don't share the socket with our children */ (void) fcntl(sock, F_SETFD, 1); #endif /*]*/ /* init ssl */ #if defined(HAVE_LIBSSL) /*[*/ if (ssl_host) ssl_init(); #endif /*]*/ if (numeric_host_and_port(&haddr[ix].sa, ha_len[ix], hn, sizeof(hn), pn, sizeof(pn), errmsg, sizeof(errmsg)) == 0) { trace_dsn("Trying %s, port %s...\n", hn, pn); #if defined(C3270) /*[*/ printf("Trying %s, port %s...\n", hn, pn); fflush(stdout); #endif /*]*/ } /* connect */ if (connect(sock, &haddr[ix].sa, ha_len[ix]) == -1) { if (socket_errno() == SE_EWOULDBLOCK #if defined(SE_EINPROGRESS) /*[*/ || socket_errno() == SE_EINPROGRESS #endif /*]*/ ) { trace_dsn("Connection pending.\n"); *pending = True; #if !defined(_WIN32) /*[*/ output_id = AddOutput(sock, output_possible); #endif /*]*/ } else { if (noisy) popup_a_sockerr("Connect to %s, port %d", hostname, current_port); close_fail; } } else { if (non_blocking(False) < 0) close_fail; net_connected(); } /* all done */ #if defined(_WIN32) /*[*/ if (sock_handle == NULL) { char ename[256]; sprintf(ename, "wc3270-%d", getpid()); sock_handle = CreateEvent(NULL, TRUE, FALSE, ename); if (sock_handle == NULL) { fprintf(stderr, "Cannot create socket handle: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } } if (WSAEventSelect(sock, sock_handle, FD_READ | FD_CONNECT | FD_CLOSE) != 0) { fprintf(stderr, "WSAEventSelect failed: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } return (int)sock_handle; #else /*][*/ return sock; #endif /*]*/ } /* * net_connect * Establish a telnet socket to the given host passed as an argument. * Called only once and is responsible for setting up the telnet * variables. Returns the file descriptor of the connected socket. */ int net_connect(const char *host, char *portname, Boolean ls, Boolean *resolving, Boolean *pending) { struct servent *sp; struct hostent *hp; char passthru_haddr[8]; int passthru_len = 0; unsigned short passthru_port = 0; char errmsg[1024]; int s; if (netrbuf == (unsigned char *)NULL) netrbuf = (unsigned char *)Malloc(BUFSZ); #if defined(X3270_ANSI) /*[*/ if (!t_valid) { vintr = parse_ctlchar(appres.intr); vquit = parse_ctlchar(appres.quit); verase = parse_ctlchar(appres.erase); vkill = parse_ctlchar(appres.kill); veof = parse_ctlchar(appres.eof); vwerase = parse_ctlchar(appres.werase); vrprnt = parse_ctlchar(appres.rprnt); vlnext = parse_ctlchar(appres.lnext); t_valid = 1; } #endif /*]*/ *resolving = False; *pending = False; Replace(hostname, NewString(host)); /* set up temporary termtype */ if (appres.termname == CN) { if (std_ds_host) { (void) sprintf(ttype_tmpval, "IBM-327%c-%d", appres.m3279 ? '9' : '8', model_num); termtype = ttype_tmpval; } else { termtype = full_model_name; } } /* get the passthru host and port number */ if (passthru_host) { const char *hn; hn = getenv("INTERNET_HOST"); if (hn == CN) hn = "internet-gateway"; hp = gethostbyname(hn); if (hp == (struct hostent *) 0) { popup_an_error("Unknown passthru host: %s", hn); return -1; } (void) memmove(passthru_haddr, hp->h_addr, hp->h_length); passthru_len = hp->h_length; sp = getservbyname("telnet-passthru","tcp"); if (sp != (struct servent *)NULL) passthru_port = sp->s_port; else passthru_port = htons(3514); } else if (appres.proxy != CN && !proxy_type) { proxy_type = proxy_setup(&proxy_host, &proxy_portname); if (proxy_type > 0) { unsigned long lport; char *ptr; struct servent *sp; lport = strtoul(portname, &ptr, 0); if (ptr == portname || *ptr != '\0' || lport == 0L || lport & ~0xffff) { if (!(sp = getservbyname(portname, "tcp"))) { popup_an_error("Unknown port number " "or service: %s", portname); return -1; } current_port = ntohs(sp->s_port); } else current_port = (unsigned short)lport; } if (proxy_type < 0) return -1; } /* fill in the socket address of the given host */ (void) memset((char *) &haddr, 0, sizeof(haddr)); if (passthru_host) { /* * XXX: We don't try multiple addresses for the passthru * host. */ haddr[0].sin.sin_family = AF_INET; (void) memmove(&haddr[0].sin.sin_addr, passthru_haddr, passthru_len); haddr[0].sin.sin_port = passthru_port; ha_len[0] = sizeof(struct sockaddr_in); num_ha = 1; ha_ix = 0; } else if (proxy_type > 0) { /* * XXX: We don't try multiple addresses for a proxy * host. */ if (resolve_host_and_port(proxy_host, proxy_portname, 0, &proxy_port, &haddr[0].sa, &ha_len[0], errmsg, sizeof(errmsg), NULL) < 0) { popup_an_error("%s", errmsg); return -1; } num_ha = 1; ha_ix = 0; } else { #if defined(LOCAL_PROCESS) /*[*/ if (ls) { local_process = True; } else { #endif /*]*/ int i; int last = False; #if defined(LOCAL_PROCESS) /*[*/ local_process = False; #endif /*]*/ num_ha = 0; for (i = 0; i < NUM_HA && !last; i++) { if (resolve_host_and_port(host, portname, i, ¤t_port, &haddr[i].sa, &ha_len[i], errmsg, sizeof(errmsg), &last) < 0) { popup_an_error("%s", errmsg); return -1; } num_ha++; } ha_ix = 0; #if defined(LOCAL_PROCESS) /*[*/ } #endif /*]*/ } #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { int amaster; struct winsize w; w.ws_row = XMIT_ROWS; w.ws_col = XMIT_COLS; w.ws_xpixel = 0; w.ws_ypixel = 0; switch (forkpty(&amaster, NULL, NULL, &w)) { case -1: /* failed */ popup_an_errno(errno, "forkpty"); close_fail; case 0: /* child */ putenv("TERM=xterm"); if (strchr(host, ' ') != CN) { (void) execlp("/bin/sh", "sh", "-c", host, NULL); } else { char *arg1; arg1 = strrchr(host, '/'); (void) execlp(host, (arg1 == CN) ? host : arg1 + 1, NULL); } perror(host); _exit(1); break; default: /* parent */ sock = amaster; #if !defined(_WIN32) /*[*/ (void) fcntl(sock, F_SETFD, 1); #endif /*]*/ net_connected(); host_in3270(CONNECTED_ANSI); break; } return sock; } #endif /*]*/ /* Try each of the haddrs. */ while (ha_ix < num_ha) { if ((s = connect_to(ha_ix, (ha_ix == num_ha - 1), pending)) >= 0) return s; ha_ix++; } /* Ran out. */ return -1; } #undef close_fail /* Set up the LU list. */ static void setup_lus(void) { char *lu; char *comma; int n_lus = 1; int i; connected_lu = CN; connected_type = CN; if (!luname[0]) { Replace(lus, NULL); curr_lu = (char **)NULL; try_lu = CN; return; } /* * Count the commas in the LU name. That plus one is the * number of LUs to try. */ lu = luname; while ((comma = strchr(lu, ',')) != CN) { n_lus++; lu++; } /* * Allocate enough memory to construct an argv[] array for * the LUs. */ Replace(lus, (char **)Malloc((n_lus+1) * sizeof(char *) + strlen(luname) + 1)); /* Copy each LU into the array. */ lu = (char *)(lus + n_lus + 1); (void) strcpy(lu, luname); i = 0; do { lus[i++] = lu; comma = strchr(lu, ','); if (comma != CN) { *comma = '\0'; lu = comma + 1; } } while (comma != CN); lus[i] = CN; curr_lu = lus; try_lu = *curr_lu; } static void net_connected(void) { if (proxy_type > 0) { /* Negotiate with the proxy. */ trace_dsn("Connected to proxy server %s, port %u.\n", proxy_host, proxy_port); if (proxy_negotiate(proxy_type, sock, hostname, current_port) < 0) { host_disconnect(True); return; } } trace_dsn("Connected to %s, port %u%s.\n", hostname, current_port, ssl_host? " via SSL": ""); #if defined(HAVE_LIBSSL) /*[*/ /* Set up SSL. */ if (ssl_host && !secure_connection) { if (SSL_set_fd(ssl_con, sock) != 1) { trace_dsn("Can't set fd!\n"); } if (SSL_connect(ssl_con) != 1) { /* * No need to trace the error, it was already * displayed. */ host_disconnect(True); return; } secure_connection = True; trace_dsn("TLS/SSL tunneled connection complete. " "Connection is now secure.\n"); /* Tell everyone else again. */ host_connected(); } #endif /*]*/ /* set up telnet options */ (void) memset((char *) myopts, 0, sizeof(myopts)); (void) memset((char *) hisopts, 0, sizeof(hisopts)); #if defined(X3270_TN3270E) /*[*/ e_funcs = E_OPT(TN3270E_FUNC_BIND_IMAGE) | E_OPT(TN3270E_FUNC_RESPONSES) | E_OPT(TN3270E_FUNC_SYSREQ); e_xmit_seq = 0; response_required = TN3270E_RSF_NO_RESPONSE; #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ need_tls_follows = False; #endif /*]*/ telnet_state = TNS_DATA; ibptr = ibuf; /* clear statistics and flags */ (void) time(&ns_time); ns_brcvd = 0; ns_rrcvd = 0; ns_bsent = 0; ns_rsent = 0; syncing = 0; tn3270e_negotiated = 0; tn3270e_submode = E_NONE; tn3270e_bound = 0; setup_lus(); check_linemode(True); /* write out the passthru hostname and port nubmer */ if (passthru_host) { char *buf; buf = Malloc(strlen(hostname) + 32); (void) sprintf(buf, "%s %d\r\n", hostname, current_port); (void) send(sock, buf, strlen(buf), 0); Free(buf); } } /* * connection_complete * The connection appears to be complete (output is possible or input * appeared ready but recv() returned EWOULDBLOCK). Complete the * connection-completion processing. */ static void connection_complete(void) { #if !defined(_WIN32) /*[*/ if (non_blocking(False) < 0) { host_disconnect(True); return; } #endif /*]*/ host_connected(); net_connected(); } #if !defined(_WIN32) /*[*/ /* * output_possible * Output is possible on the socket. Used only when a connection is * pending, to determine that the connection is complete. */ static void output_possible(void) { if (HALF_CONNECTED) { connection_complete(); } if (output_id) { RemoveInput(output_id); output_id = 0L; } } #endif /*]*/ /* * net_disconnect * Shut down the socket. */ void net_disconnect(void) { #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { SSL_shutdown(ssl_con); SSL_free(ssl_con); ssl_con = NULL; } secure_connection = False; #endif /*]*/ if (CONNECTED) (void) shutdown(sock, 2); (void) SOCK_CLOSE(sock); sock = -1; trace_dsn("SENT disconnect\n"); /* We're not connected to an LU any more. */ status_lu(CN); #if !defined(_WIN32) /*[*/ /* We have no more interest in output buffer space. */ if (output_id != 0L) { RemoveInput(output_id); output_id = 0L; } #endif /*]*/ } /* * net_input * Called by the toolkit whenever there is input available on the * socket. Reads the data, processes the special telnet commands * and calls process_ds to process the 3270 data stream. */ void net_input(void) { register unsigned char *cp; int nr; #if defined(HAVE_LIBSSL) /*[*/ Boolean ignore_ssl = False; #endif /*]*/ #if defined(_WIN32) /*[*/ for (;;) #endif /*]*/ { if (sock < 0) return; #if defined(_WIN32) /*[*/ if (HALF_CONNECTED) { if (connect(sock, &haddr[ha_ix].sa, sizeof(haddr[0])) < 0) { int err = GetLastError(); switch (err) { case WSAEISCONN: connection_complete(); /* and go get data...? */ break; case WSAEALREADY: case WSAEWOULDBLOCK: case WSAEINVAL: return; default: fprintf(stderr, "second connect() failed: %s\n", win32_strerror(err)); x3270_exit(1); } } } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ ansi_data = 0; #endif /*]*/ #if defined(_WIN32) /*[*/ (void) ResetEvent(sock_handle); #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { /* * OpenSSL does not like getting refused connections * when it hasn't done any I/O yet. So peek ahead to * see if it's worth getting it involved at all. */ if (HALF_CONNECTED && (nr = recv(sock, (char *) netrbuf, 1, MSG_PEEK)) <= 0) ignore_ssl = True; else nr = SSL_read(ssl_con, (char *) netrbuf, BUFSZ); } else #else /*][*/ #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ if (local_process) nr = read(sock, (char *) netrbuf, BUFSZ); else #endif /*]*/ nr = recv(sock, (char *) netrbuf, BUFSZ, 0); if (nr < 0) { if (socket_errno() == SE_EWOULDBLOCK) { return; } #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL && !ignore_ssl) { unsigned long e; char err_buf[120]; e = ERR_get_error(); if (e != 0) (void) ERR_error_string(e, err_buf); else strcpy(err_buf, "unknown error"); trace_dsn("RCVD SSL_read error %ld (%s)\n", e, err_buf); popup_an_error("SSL_read:\n%s", err_buf); host_disconnect(True); return; } #endif /*]*/ if (HALF_CONNECTED && socket_errno() == SE_EAGAIN) { connection_complete(); return; } #if defined(LOCAL_PROCESS) /*[*/ if (errno == EIO && local_process) { trace_dsn("RCVD local process disconnect\n"); host_disconnect(False); return; } #endif /*]*/ trace_dsn("RCVD socket error %d (%s)\n", socket_errno(), #if !defined(_WIN32) /*[*/ strerror(errno) #else /*][*/ win32_strerror(GetLastError()) #endif /*]*/ ); if (HALF_CONNECTED) { if (ha_ix == num_ha - 1) { popup_a_sockerr("Connect to %s, " "port %d", hostname, current_port); } else { Boolean dummy; int s; net_disconnect(); #if defined(HAVE_LIBSSL) /*[*/ if (ssl_host) ssl_init(); #endif /*]*/ while (++ha_ix < num_ha) { s = connect_to(ha_ix, (ha_ix == num_ha - 1), &dummy); if (s >= 0) { host_newfd(s); return; } } } } else if (socket_errno() != SE_ECONNRESET) { popup_a_sockerr("Socket read"); } host_disconnect(True); return; } else if (nr == 0) { /* Host disconnected. */ trace_dsn("RCVD disconnect\n"); host_disconnect(False); return; } /* Process the data. */ if (HALF_CONNECTED) { if (non_blocking(False) < 0) { host_disconnect(True); return; } host_connected(); net_connected(); } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', netrbuf, nr); #endif /*]*/ ns_brcvd += nr; for (cp = netrbuf; cp < (netrbuf + nr); cp++) { #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { /* More to do here, probably. */ if (IN_NEITHER) { /* now can assume ANSI mode */ host_in3270(CONNECTED_ANSI); hisopts[TELOPT_ECHO] = 1; check_linemode(False); kybdlock_clr(KL_AWAITING_FIRST, "telnet_fsm"); status_reset(); ps_process(); } ansi_process((unsigned int) *cp); } else { #endif /*]*/ if (telnet_fsm(*cp)) { (void) ctlr_dbcs_postprocess(); host_disconnect(True); return; } #if defined(LOCAL_PROCESS) /*[*/ } #endif /*]*/ } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { (void) ctlr_dbcs_postprocess(); } if (ansi_data) { trace_dsn("\n"); ansi_data = 0; } #endif /*]*/ #if defined(X3270_TRACE) /*[*/ /* See if it's time to roll over the trace file. */ trace_rollover_check(); #endif /*]*/ } } /* * set16 * Put a 16-bit value in a buffer. * Returns the number of bytes required. */ static int set16(char *buf, int n) { char *b0 = buf; n %= 256 * 256; if ((n / 256) == IAC) *(unsigned char *)buf++ = IAC; *buf++ = (n / 256); n %= 256; if (n == IAC) *(unsigned char *)buf++ = IAC; *buf++ = n; return buf - b0; } /* * send_naws * Send a Telnet window size sub-option negotation. */ static void send_naws(void) { char naws_msg[14]; int naws_len = 0; (void) sprintf(naws_msg, "%c%c%c", IAC, SB, TELOPT_NAWS); naws_len += 3; naws_len += set16(naws_msg + naws_len, XMIT_COLS); naws_len += set16(naws_msg + naws_len, XMIT_ROWS); (void) sprintf(naws_msg + naws_len, "%c%c", IAC, SE); naws_len += 2; net_rawout((unsigned char *)naws_msg, naws_len); trace_dsn("SENT %s NAWS %d %d %s\n", cmd(SB), XMIT_COLS, XMIT_ROWS, cmd(SE)); } /* Advance 'try_lu' to the next desired LU name. */ static void next_lu(void) { if (curr_lu != (char **)NULL && (try_lu = *++curr_lu) == CN) curr_lu = (char **)NULL; } /* * telnet_fsm * Telnet finite-state machine. * Returns 0 for okay, -1 for errors. */ static int telnet_fsm(unsigned char c) { #if defined(X3270_ANSI) /*[*/ char *see_chr; int sl; #endif /*]*/ switch (telnet_state) { case TNS_DATA: /* normal data processing */ if (c == IAC) { /* got a telnet command */ telnet_state = TNS_IAC; #if defined(X3270_ANSI) /*[*/ if (ansi_data) { trace_dsn("\n"); ansi_data = 0; } #endif /*]*/ break; } if (IN_NEITHER) { /* now can assume ANSI mode */ #if defined(X3270_ANSI)/*[*/ if (linemode) cooked_init(); #endif /*]*/ host_in3270(CONNECTED_ANSI); kybdlock_clr(KL_AWAITING_FIRST, "telnet_fsm"); status_reset(); ps_process(); } if (IN_ANSI && !IN_E) { #if defined(X3270_ANSI) /*[*/ if (!ansi_data) { trace_dsn("<.. "); ansi_data = 4; } see_chr = ctl_see((int) c); ansi_data += (sl = strlen(see_chr)); if (ansi_data >= TRACELINE) { trace_dsn(" ...\n... "); ansi_data = 4 + sl; } trace_dsn("%s", see_chr); if (!syncing) { if (linemode && appres.onlcr && c == '\n') ansi_process((unsigned int) '\r'); ansi_process((unsigned int) c); sms_store(c); } #endif /*]*/ } else { store3270in(c); } break; case TNS_IAC: /* process a telnet command */ if (c != EOR && c != IAC) { trace_dsn("RCVD %s ", cmd(c)); } switch (c) { case IAC: /* escaped IAC, insert it */ if (IN_ANSI && !IN_E) { #if defined(X3270_ANSI) /*[*/ if (!ansi_data) { trace_dsn("<.. "); ansi_data = 4; } see_chr = ctl_see((int) c); ansi_data += (sl = strlen(see_chr)); if (ansi_data >= TRACELINE) { trace_dsn(" ...\n ..."); ansi_data = 4 + sl; } trace_dsn("%s", see_chr); ansi_process((unsigned int) c); sms_store(c); #endif /*]*/ } else store3270in(c); telnet_state = TNS_DATA; break; case EOR: /* eor, process accumulated input */ if (IN_3270 || (IN_E && tn3270e_negotiated)) { ns_rrcvd++; if (process_eor()) return -1; } else Warning("EOR received when not in 3270 mode, " "ignored."); trace_dsn("RCVD EOR\n"); ibptr = ibuf; telnet_state = TNS_DATA; break; case WILL: telnet_state = TNS_WILL; break; case WONT: telnet_state = TNS_WONT; break; case DO: telnet_state = TNS_DO; break; case DONT: telnet_state = TNS_DONT; break; case SB: telnet_state = TNS_SB; if (sbbuf == (unsigned char *)NULL) sbbuf = (unsigned char *)Malloc(1024); sbptr = sbbuf; break; case DM: trace_dsn("\n"); if (syncing) { syncing = 0; x_except_on(sock); } telnet_state = TNS_DATA; break; case GA: case NOP: trace_dsn("\n"); telnet_state = TNS_DATA; break; default: trace_dsn("???\n"); telnet_state = TNS_DATA; break; } break; case TNS_WILL: /* telnet WILL DO OPTION command */ trace_dsn("%s\n", opt(c)); switch (c) { case TELOPT_SGA: case TELOPT_BINARY: case TELOPT_EOR: case TELOPT_TTYPE: case TELOPT_ECHO: #if defined(X3270_TN3270E) /*[*/ case TELOPT_TN3270E: #endif /*]*/ if (c != TELOPT_TN3270E || !non_tn3270e_host) { if (!hisopts[c]) { hisopts[c] = 1; do_opt[2] = c; net_rawout(do_opt, sizeof(do_opt)); trace_dsn("SENT %s %s\n", cmd(DO), opt(c)); /* * For UTS, volunteer to do EOR when * they do. */ if (c == TELOPT_EOR && !myopts[c]) { myopts[c] = 1; will_opt[2] = c; net_rawout(will_opt, sizeof(will_opt)); trace_dsn("SENT %s %s\n", cmd(WILL), opt(c)); } check_in3270(); check_linemode(False); } break; } default: dont_opt[2] = c; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(c)); break; } telnet_state = TNS_DATA; break; case TNS_WONT: /* telnet WONT DO OPTION command */ trace_dsn("%s\n", opt(c)); if (hisopts[c]) { hisopts[c] = 0; dont_opt[2] = c; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(c)); check_in3270(); check_linemode(False); } telnet_state = TNS_DATA; break; case TNS_DO: /* telnet PLEASE DO OPTION command */ trace_dsn("%s\n", opt(c)); switch (c) { case TELOPT_BINARY: case TELOPT_EOR: case TELOPT_TTYPE: case TELOPT_SGA: case TELOPT_NAWS: case TELOPT_TM: #if defined(X3270_TN3270E) /*[*/ case TELOPT_TN3270E: #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ case TELOPT_STARTTLS: #endif /*]*/ if (c == TELOPT_TN3270E && non_tn3270e_host) goto wont; if (c == TELOPT_TM && !appres.bsd_tm) goto wont; if (!myopts[c]) { if (c != TELOPT_TM) myopts[c] = 1; will_opt[2] = c; net_rawout(will_opt, sizeof(will_opt)); trace_dsn("SENT %s %s\n", cmd(WILL), opt(c)); check_in3270(); check_linemode(False); } if (c == TELOPT_NAWS) send_naws(); #if defined(HAVE_LIBSSL) /*[*/ if (c == TELOPT_STARTTLS) { static unsigned char follows_msg[] = { IAC, SB, TELOPT_STARTTLS, TLS_FOLLOWS, IAC, SE }; /* * Send IAC SB STARTTLS FOLLOWS IAC SE * to announce that what follows is TLS. */ net_rawout(follows_msg, sizeof(follows_msg)); trace_dsn("SENT %s %s FOLLOWS %s\n", cmd(SB), opt(TELOPT_STARTTLS), cmd(SE)); need_tls_follows = True; } #endif /*]*/ break; default: wont: wont_opt[2] = c; net_rawout(wont_opt, sizeof(wont_opt)); trace_dsn("SENT %s %s\n", cmd(WONT), opt(c)); break; } telnet_state = TNS_DATA; break; case TNS_DONT: /* telnet PLEASE DON'T DO OPTION command */ trace_dsn("%s\n", opt(c)); if (myopts[c]) { myopts[c] = 0; wont_opt[2] = c; net_rawout(wont_opt, sizeof(wont_opt)); trace_dsn("SENT %s %s\n", cmd(WONT), opt(c)); check_in3270(); check_linemode(False); } telnet_state = TNS_DATA; break; case TNS_SB: /* telnet sub-option string command */ if (c == IAC) telnet_state = TNS_SB_IAC; else *sbptr++ = c; break; case TNS_SB_IAC: /* telnet sub-option string command */ *sbptr++ = c; if (c == SE) { telnet_state = TNS_DATA; if (sbbuf[0] == TELOPT_TTYPE && sbbuf[1] == TELQUAL_SEND) { int tt_len, tb_len; char *tt_out; trace_dsn("%s %s\n", opt(sbbuf[0]), telquals[sbbuf[1]]); if (lus != (char **)NULL && try_lu == CN) { /* None of the LUs worked. */ popup_an_error("Cannot connect to " "specified LU"); return -1; } tt_len = strlen(termtype); if (try_lu != CN && *try_lu) { tt_len += strlen(try_lu) + 1; connected_lu = try_lu; } else connected_lu = CN; status_lu(connected_lu); tb_len = 4 + tt_len + 2; tt_out = Malloc(tb_len + 1); (void) sprintf(tt_out, "%c%c%c%c%s%s%s%c%c", IAC, SB, TELOPT_TTYPE, TELQUAL_IS, termtype, (try_lu != CN && *try_lu) ? "@" : "", (try_lu != CN && *try_lu) ? try_lu : "", IAC, SE); net_rawout((unsigned char *)tt_out, tb_len); trace_dsn("SENT %s %s %s %.*s %s\n", cmd(SB), opt(TELOPT_TTYPE), telquals[TELQUAL_IS], tt_len, tt_out + 4, cmd(SE)); Free(tt_out); /* Advance to the next LU name. */ next_lu(); } #if defined(X3270_TN3270E) /*[*/ else if (myopts[TELOPT_TN3270E] && sbbuf[0] == TELOPT_TN3270E) { if (tn3270e_negotiate()) return -1; } #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ else if (need_tls_follows && myopts[TELOPT_STARTTLS] && sbbuf[0] == TELOPT_STARTTLS) { continue_tls(sbbuf, sbptr - sbbuf); } #endif /*]*/ } else { telnet_state = TNS_SB; } break; } return 0; } #if defined(X3270_TN3270E) /*[*/ /* Send a TN3270E terminal type request. */ static void tn3270e_request(void) { int tt_len, tb_len; char *tt_out; char *t; tt_len = strlen(termtype); if (try_lu != CN && *try_lu) tt_len += strlen(try_lu) + 1; tb_len = 5 + tt_len + 2; tt_out = Malloc(tb_len + 1); t = tt_out; t += sprintf(tt_out, "%c%c%c%c%c%s", IAC, SB, TELOPT_TN3270E, TN3270E_OP_DEVICE_TYPE, TN3270E_OP_REQUEST, termtype); /* Convert 3279 to 3278, per the RFC. */ if (tt_out[12] == '9') tt_out[12] = '8'; if (try_lu != CN && *try_lu) t += sprintf(t, "%c%s", TN3270E_OP_CONNECT, try_lu); (void) sprintf(t, "%c%c", IAC, SE); net_rawout((unsigned char *)tt_out, tb_len); trace_dsn("SENT %s %s DEVICE-TYPE REQUEST %.*s%s%s " "%s\n", cmd(SB), opt(TELOPT_TN3270E), (int)strlen(termtype), tt_out + 5, (try_lu != CN && *try_lu) ? " CONNECT " : "", (try_lu != CN && *try_lu) ? try_lu : "", cmd(SE)); Free(tt_out); } /* * Back off of TN3270E. */ static void backoff_tn3270e(const char *why) { trace_dsn("Aborting TN3270E: %s\n", why); /* Tell the host 'no'. */ wont_opt[2] = TELOPT_TN3270E; net_rawout(wont_opt, sizeof(wont_opt)); trace_dsn("SENT %s %s\n", cmd(WONT), opt(TELOPT_TN3270E)); /* Restore the LU list; we may need to run it again in TN3270 mode. */ setup_lus(); /* Reset our internal state. */ myopts[TELOPT_TN3270E] = 0; check_in3270(); } /* * Negotiation of TN3270E options. * Returns 0 if okay, -1 if we have to give up altogether. */ static int tn3270e_negotiate(void) { #define LU_MAX 32 static char reported_lu[LU_MAX+1]; static char reported_type[LU_MAX+1]; int sblen; unsigned long e_rcvd; /* Find out how long the subnegotiation buffer is. */ for (sblen = 0; ; sblen++) { if (sbbuf[sblen] == SE) break; } trace_dsn("TN3270E "); switch (sbbuf[1]) { case TN3270E_OP_SEND: if (sbbuf[2] == TN3270E_OP_DEVICE_TYPE) { /* Host wants us to send our device type. */ trace_dsn("SEND DEVICE-TYPE SE\n"); tn3270e_request(); } else { trace_dsn("SEND ??%u SE\n", sbbuf[2]); } break; case TN3270E_OP_DEVICE_TYPE: /* Device type negotiation. */ trace_dsn("DEVICE-TYPE "); switch (sbbuf[2]) { case TN3270E_OP_IS: { int tnlen, snlen; /* Device type success. */ /* Isolate the terminal type and session. */ tnlen = 0; while (sbbuf[3+tnlen] != SE && sbbuf[3+tnlen] != TN3270E_OP_CONNECT) tnlen++; snlen = 0; if (sbbuf[3+tnlen] == TN3270E_OP_CONNECT) { while(sbbuf[3+tnlen+1+snlen] != SE) snlen++; } trace_dsn("IS %.*s CONNECT %.*s SE\n", tnlen, &sbbuf[3], snlen, &sbbuf[3+tnlen+1]); /* Remember the LU. */ if (tnlen) { if (tnlen > LU_MAX) tnlen = LU_MAX; (void)strncpy(reported_type, (char *)&sbbuf[3], tnlen); reported_type[tnlen] = '\0'; connected_type = reported_type; } if (snlen) { if (snlen > LU_MAX) snlen = LU_MAX; (void)strncpy(reported_lu, (char *)&sbbuf[3+tnlen+1], snlen); reported_lu[snlen] = '\0'; connected_lu = reported_lu; status_lu(connected_lu); } /* Tell them what we can do. */ tn3270e_subneg_send(TN3270E_OP_REQUEST, e_funcs); break; } case TN3270E_OP_REJECT: /* Device type failure. */ trace_dsn("REJECT REASON %s SE\n", rsn(sbbuf[4])); if (sbbuf[4] == TN3270E_REASON_INV_DEVICE_TYPE || sbbuf[4] == TN3270E_REASON_UNSUPPORTED_REQ) { backoff_tn3270e("Host rejected device type or " "request type"); break; } next_lu(); if (try_lu != CN) { /* Try the next LU. */ tn3270e_request(); } else if (lus != (char **)NULL) { /* No more LUs to try. Give up. */ backoff_tn3270e("Host rejected resource(s)"); } else { backoff_tn3270e("Device type rejected"); } break; default: trace_dsn("??%u SE\n", sbbuf[2]); break; } break; case TN3270E_OP_FUNCTIONS: /* Functions negotiation. */ trace_dsn("FUNCTIONS "); switch (sbbuf[2]) { case TN3270E_OP_REQUEST: /* Host is telling us what functions they want. */ trace_dsn("REQUEST %s SE\n", tn3270e_function_names(sbbuf+3, sblen-3)); e_rcvd = tn3270e_fdecode(sbbuf+3, sblen-3); if ((e_rcvd == e_funcs) || (e_funcs & ~e_rcvd)) { /* They want what we want, or less. Done. */ e_funcs = e_rcvd; tn3270e_subneg_send(TN3270E_OP_IS, e_funcs); tn3270e_negotiated = 1; trace_dsn("TN3270E option negotiation " "complete.\n"); check_in3270(); } else { /* * They want us to do something we can't. * Request the common subset. */ e_funcs &= e_rcvd; tn3270e_subneg_send(TN3270E_OP_REQUEST, e_funcs); } break; case TN3270E_OP_IS: /* They accept our last request, or a subset thereof. */ trace_dsn("IS %s SE\n", tn3270e_function_names(sbbuf+3, sblen-3)); e_rcvd = tn3270e_fdecode(sbbuf+3, sblen-3); if (e_rcvd != e_funcs) { if (e_funcs & ~e_rcvd) { /* * They've removed something. This is * technically illegal, but we can * live with it. */ e_funcs = e_rcvd; } else { /* * They've added something. Abandon * TN3270E, they're brain dead. */ backoff_tn3270e("Host illegally added " "function(s)"); break; } } tn3270e_negotiated = 1; trace_dsn("TN3270E option negotiation complete.\n"); check_in3270(); break; default: trace_dsn("??%u SE\n", sbbuf[2]); break; } break; default: trace_dsn("??%u SE\n", sbbuf[1]); } /* Good enough for now. */ return 0; } #if defined(X3270_TRACE) /*[*/ /* Expand a string of TN3270E function codes into text. */ static const char * tn3270e_function_names(const unsigned char *buf, int len) { int i; static char text_buf[1024]; char *s = text_buf; if (!len) return("(null)"); for (i = 0; i < len; i++) { s += sprintf(s, "%s%s", (s == text_buf) ? "" : " ", fnn(buf[i])); } return text_buf; } #endif /*]*/ /* Expand the current TN3270E function codes into text. */ const char * tn3270e_current_opts(void) { int i; static char text_buf[1024]; char *s = text_buf; if (!e_funcs || !IN_E) return CN; for (i = 0; i < 32; i++) { if (e_funcs & E_OPT(i)) s += sprintf(s, "%s%s", (s == text_buf) ? "" : " ", fnn(i)); } return text_buf; } /* Transmit a TN3270E FUNCTIONS REQUEST or FUNCTIONS IS message. */ static void tn3270e_subneg_send(unsigned char op, unsigned long funcs) { unsigned char proto_buf[7 + 32]; int proto_len; int i; /* Construct the buffers. */ (void) memcpy(proto_buf, functions_req, 4); proto_buf[4] = op; proto_len = 5; for (i = 0; i < 32; i++) { if (funcs & E_OPT(i)) proto_buf[proto_len++] = i; } /* Complete and send out the protocol message. */ proto_buf[proto_len++] = IAC; proto_buf[proto_len++] = SE; net_rawout(proto_buf, proto_len); /* Complete and send out the trace text. */ trace_dsn("SENT %s %s FUNCTIONS %s %s %s\n", cmd(SB), opt(TELOPT_TN3270E), (op == TN3270E_OP_REQUEST)? "REQUEST": "IS", tn3270e_function_names(proto_buf + 5, proto_len - 7), cmd(SE)); } /* Translate a string of TN3270E functions into a bit-map. */ static unsigned long tn3270e_fdecode(const unsigned char *buf, int len) { unsigned long r = 0L; int i; /* Note that this code silently ignores options >= 32. */ for (i = 0; i < len; i++) { if (buf[i] < 32) r |= E_OPT(buf[i]); } return r; } #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ static int maxru(unsigned char c) { if (!(c & 0x80)) return 0; return ((c >> 4) & 0x0f) * (1 << (c & 0xf)); } static void process_bind(unsigned char *buf, int buflen) { int namelen, i; int dest_ix = 0; /* Save the raw image. */ if (bind_image != NULL) Free(bind_image); bind_image = (unsigned char *)Malloc(buflen); memcpy(bind_image, buf, buflen); bind_image_len = buflen; /* Clean up the derived state. */ if (plu_name == CN) plu_name = Malloc(mb_max_len(BIND_PLU_NAME_MAX)); (void) memset(plu_name, '\0', mb_max_len(BIND_PLU_NAME_MAX)); maxru_sec = 0; maxru_pri = 0; bind_rd = 0; bind_cd = 0; bind_ra = 0; bind_ca = 0; /* Make sure it's a BIND. */ if (buflen < 1 || buf[0] != BIND_RU) { return; } /* Extract the maximum RUs. */ if (buflen > BIND_OFF_MAXRU_SEC) maxru_sec = maxru(buf[BIND_OFF_MAXRU_SEC]); if (buflen > BIND_OFF_MAXRU_PRI) maxru_pri = maxru(buf[BIND_OFF_MAXRU_PRI]); /* Extract the screen size. */ if (buflen > BIND_OFF_SSIZE) { int bind_ss = buf[BIND_OFF_SSIZE]; switch (bind_ss) { case 0x00: case 0x02: bind_rd = MODEL_2_ROWS; bind_cd = MODEL_2_COLS; bind_ra = MODEL_2_ROWS; bind_ca = MODEL_2_COLS; break; case 0x03: bind_rd = MODEL_2_ROWS; bind_cd = MODEL_2_COLS; bind_ra = maxROWS; bind_ca = maxCOLS; break; case 0x7e: bind_rd = buf[BIND_OFF_RD]; bind_cd = buf[BIND_OFF_CD]; bind_ra = buf[BIND_OFF_RD]; bind_ca = buf[BIND_OFF_CD]; break; case 0x7f: bind_rd = buf[BIND_OFF_RD]; bind_cd = buf[BIND_OFF_CD]; bind_ra = buf[BIND_OFF_RA]; bind_ca = buf[BIND_OFF_CA]; break; default: break; } } /* Validate and implement the screen size. */ if (bind_rd > maxROWS || bind_cd > maxCOLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Default Rows-Cols %ux%u > Maximum %ux%u", bind_rd, bind_cd, maxROWS, maxCOLS); } else if (bind_rd < MODEL_2_ROWS || bind_cd < MODEL_2_COLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Default Rows-Cols %ux%u < Minimum %ux%u", bind_rd, bind_cd, MODEL_2_ROWS, MODEL_2_COLS); } else if (bind_ra > maxROWS || bind_ca > maxCOLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Alternate Rows-Cols %ux%u > Maximum %ux%u", bind_ra, bind_ca, maxROWS, maxCOLS); } else if (bind_ra < MODEL_2_ROWS || bind_ca < MODEL_2_COLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Alternate Rows-Cols %ux%u < Minimum %ux%u", bind_ra, bind_ca, MODEL_2_ROWS, MODEL_2_COLS); } else { defROWS = bind_rd; defCOLS = bind_cd; altROWS = bind_ra; altCOLS = bind_ca; } ctlr_erase(False); /* Extract the PLU name. */ if (buflen > BIND_OFF_PLU_NAME_LEN) { namelen = buf[BIND_OFF_PLU_NAME_LEN]; if (namelen > BIND_PLU_NAME_MAX) namelen = BIND_PLU_NAME_MAX; if ((namelen > 0) && (buflen > BIND_OFF_PLU_NAME + namelen)) { for (i = 0; i < namelen; i++) { int nx; nx = ebcdic_to_multibyte( buf[BIND_OFF_PLU_NAME + i], plu_name + dest_ix, mb_max_len(1)); if (nx > 1) dest_ix += nx - 1; } } } } #endif /*]*/ static int process_eor(void) { if (syncing || !(ibptr - ibuf)) return(0); #if defined(X3270_TN3270E) /*[*/ if (IN_E) { tn3270e_header *h = (tn3270e_header *)ibuf; unsigned char *s; enum pds rv; trace_dsn("RCVD TN3270E(%s%s %s %u)\n", e_dt(h->data_type), e_rq(h->data_type, h->request_flag), e_rsp(h->data_type, h->response_flag), h->seq_number[0] << 8 | h->seq_number[1]); switch (h->data_type) { case TN3270E_DT_3270_DATA: if ((e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE)) && !tn3270e_bound) return 0; tn3270e_submode = E_3270; check_in3270(); response_required = h->response_flag; rv = process_ds(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); if (rv < 0 && response_required != TN3270E_RSF_NO_RESPONSE) tn3270e_nak(rv); else if (rv == PDS_OKAY_NO_OUTPUT && response_required == TN3270E_RSF_ALWAYS_RESPONSE) tn3270e_ack(); response_required = TN3270E_RSF_NO_RESPONSE; return 0; case TN3270E_DT_BIND_IMAGE: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; process_bind(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); trace_ds("< BIND PLU-name '%s' " "MaxSec-RU %d MaxPri-RU %d " "Rows-Cols Default %dx%d Alternate %dx%d\n", plu_name, maxru_sec, maxru_pri, bind_rd, bind_cd, bind_ra, bind_ca); tn3270e_bound = 1; check_in3270(); return 0; case TN3270E_DT_UNBIND: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; tn3270e_bound = 0; /* * Undo any screen-sizing effects from a previous BIND. */ defROWS = MODEL_2_ROWS; defCOLS = MODEL_2_COLS; altROWS = maxROWS; altCOLS = maxCOLS; ctlr_erase(False); if (tn3270e_submode == E_3270) tn3270e_submode = E_NONE; check_in3270(); return 0; case TN3270E_DT_NVT_DATA: /* In tn3270e NVT mode */ tn3270e_submode = E_NVT; check_in3270(); for (s = ibuf; s < ibptr; s++) { ansi_process(*s++); } return 0; case TN3270E_DT_SSCP_LU_DATA: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; tn3270e_submode = E_SSCP; check_in3270(); ctlr_write_sscp_lu(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); return 0; default: /* Should do something more extraordinary here. */ return 0; } } else #endif /*]*/ { (void) process_ds(ibuf, ibptr - ibuf); } return 0; } /* * net_exception * Called when there is an exceptional condition on the socket. */ void net_exception(void) { #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { trace_dsn("RCVD exception\n"); } else #endif /*[*/ { trace_dsn("RCVD urgent data indication\n"); if (!syncing) { syncing = 1; x_except_off(); } } } /* * Flavors of Network Output: * * 3270 mode * net_output send a 3270 record * * ANSI mode; call each other in turn * net_sendc net_cookout for 1 byte * net_sends net_cookout for a null-terminated string * net_cookout send user data with cooked-mode processing, ANSI mode * net_cookedout send user data, ANSI mode, already cooked * net_rawout send telnet protocol data, ANSI mode * */ /* * net_rawout * Send out raw telnet data. We assume that there will always be enough * space to buffer what we want to transmit, so we don't handle EAGAIN or * EWOULDBLOCK. */ static void net_rawout(unsigned const char *buf, int len) { int nw; #if defined(X3270_TRACE) /*[*/ trace_netdata('>', buf, len); #endif /*]*/ while (len) { #if defined(OMTU) /*[*/ int n2w = len; int pause = 0; if (n2w > OMTU) { n2w = OMTU; pause = 1; } #else # define n2w len #endif #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) nw = SSL_write(ssl_con, (const char *) buf, n2w); else #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ if (local_process) nw = write(sock, (const char *) buf, n2w); else #endif /*]*/ nw = send(sock, (const char *) buf, n2w, 0); if (nw < 0) { #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { unsigned long e; char err_buf[120]; e = ERR_get_error(); (void) ERR_error_string(e, err_buf); trace_dsn("RCVD SSL_write error %ld (%s)\n", e, err_buf); popup_an_error("SSL_write:\n%s", err_buf); host_disconnect(False); return; } #endif /*]*/ trace_dsn("RCVD socket error %d (%s)\n", socket_errno(), #if !defined(_WIN32) /*[*/ strerror(errno) #else /*][*/ win32_strerror(GetLastError()) #endif /*]*/ ); if (socket_errno() == SE_EPIPE || socket_errno() == SE_ECONNRESET) { host_disconnect(False); return; } else if (socket_errno() == SE_EINTR) { goto bot; } else { popup_a_sockerr("Socket write"); host_disconnect(True); return; } } ns_bsent += nw; len -= nw; buf += nw; bot: #if defined(OMTU) /*[*/ if (pause) sleep(1); #endif /*]*/ ; } } #if defined(X3270_ANSI) /*[*/ /* * net_hexansi_out * Send uncontrolled user data to the host in ANSI mode, performing IAC * and CR quoting as necessary. */ void net_hexansi_out(unsigned char *buf, int len) { unsigned char *tbuf; unsigned char *xbuf; if (!len) return; #if defined(X3270_TRACE) /*[*/ /* Trace the data. */ if (toggled(DS_TRACE)) { int i; trace_dsn(">"); for (i = 0; i < len; i++) trace_dsn(" %s", ctl_see((int) *(buf+i))); trace_dsn("\n"); } #endif /*]*/ /* Expand it. */ tbuf = xbuf = (unsigned char *)Malloc(2*len); while (len) { unsigned char c = *buf++; *tbuf++ = c; len--; if (c == IAC) *tbuf++ = IAC; else if (c == '\r' && (!len || *buf != '\n')) *tbuf++ = '\0'; } /* Send it to the host. */ net_rawout(xbuf, tbuf - xbuf); Free(xbuf); } /* * net_cookedout * Send user data out in ANSI mode, without cooked-mode processing. */ static void net_cookedout(const char *buf, int len) { #if defined(X3270_TRACE) /*[*/ if (toggled(DS_TRACE)) { int i; trace_dsn(">"); for (i = 0; i < len; i++) trace_dsn(" %s", ctl_see((int) *(buf+i))); trace_dsn("\n"); } #endif /*]*/ net_rawout((unsigned const char *) buf, len); } /* * net_cookout * Send output in ANSI mode, including cooked-mode processing if * appropriate. */ static void net_cookout(const char *buf, int len) { if (!IN_ANSI || (kybdlock & KL_AWAITING_FIRST)) return; if (linemode) { register int i; char c; for (i = 0; i < len; i++) { c = buf[i]; /* Input conversions. */ if (!lnext && c == '\r' && appres.icrnl) c = '\n'; else if (!lnext && c == '\n' && appres.inlcr) c = '\r'; /* Backslashes. */ if (c == '\\' && !backslashed) backslashed = 1; else backslashed = 0; /* Control chars. */ if (c == '\n') do_eol(c); else if (c == vintr) do_intr(c); else if (c == vquit) do_quit(c); else if (c == verase) do_cerase(c); else if (c == vkill) do_kill(c); else if (c == vwerase) do_werase(c); else if (c == vrprnt) do_rprnt(c); else if (c == veof) do_eof(c); else if (c == vlnext) do_lnext(c); else if (c == 0x08 || c == 0x7f) /* Yes, a hack. */ do_cerase(c); else do_data(c); } return; } else net_cookedout(buf, len); } /* * Cooked mode input processing. */ static void cooked_init(void) { if (lbuf == (unsigned char *)NULL) lbuf = (unsigned char *)Malloc(BUFSZ); lbptr = lbuf; lnext = 0; backslashed = 0; } static void ansi_process_s(const char *data) { while (*data) ansi_process((unsigned int) *data++); } static void forward_data(void) { net_cookedout((char *) lbuf, lbptr - lbuf); cooked_init(); } static void do_data(char c) { if (lbptr+1 < lbuf + BUFSZ) { *lbptr++ = c; if (c == '\r') *lbptr++ = '\0'; if (c == '\t') ansi_process((unsigned int) c); else ansi_process_s(ctl_see((int) c)); } else ansi_process_s("\007"); lnext = 0; backslashed = 0; } static void do_intr(char c) { if (lnext) { do_data(c); return; } ansi_process_s(ctl_see((int) c)); cooked_init(); net_interrupt(); } static void do_quit(char c) { if (lnext) { do_data(c); return; } ansi_process_s(ctl_see((int) c)); cooked_init(); net_break(); } static void do_cerase(char c) { int len; if (backslashed) { lbptr--; ansi_process_s("\b"); do_data(c); return; } if (lnext) { do_data(c); return; } if (lbptr > lbuf) { len = strlen(ctl_see((int) *--lbptr)); while (len--) ansi_process_s("\b \b"); } } static void do_werase(char c) { int any = 0; int len; if (lnext) { do_data(c); return; } while (lbptr > lbuf) { char ch; ch = *--lbptr; if (ch == ' ' || ch == '\t') { if (any) { ++lbptr; break; } } else any = 1; len = strlen(ctl_see((int) ch)); while (len--) ansi_process_s("\b \b"); } } static void do_kill(char c) { int i, len; if (backslashed) { lbptr--; ansi_process_s("\b"); do_data(c); return; } if (lnext) { do_data(c); return; } while (lbptr > lbuf) { len = strlen(ctl_see((int) *--lbptr)); for (i = 0; i < len; i++) ansi_process_s("\b \b"); } } static void do_rprnt(char c) { unsigned char *p; if (lnext) { do_data(c); return; } ansi_process_s(ctl_see((int) c)); ansi_process_s("\r\n"); for (p = lbuf; p < lbptr; p++) ansi_process_s(ctl_see((int) *p)); } static void do_eof(char c) { if (backslashed) { lbptr--; ansi_process_s("\b"); do_data(c); return; } if (lnext) { do_data(c); return; } do_data(c); forward_data(); } static void do_eol(char c) { if (lnext) { do_data(c); return; } if (lbptr+2 >= lbuf + BUFSZ) { ansi_process_s("\007"); return; } *lbptr++ = '\r'; *lbptr++ = '\n'; ansi_process_s("\r\n"); forward_data(); } static void do_lnext(char c) { if (lnext) { do_data(c); return; } lnext = 1; ansi_process_s("^\b"); } #endif /*]*/ /* * check_in3270 * Check for switches between NVT, SSCP-LU and 3270 modes. */ static void check_in3270(void) { enum cstate new_cstate = NOT_CONNECTED; #if defined(X3270_TRACE) /*[*/ static const char *state_name[] = { "unconnected", "resolving", "pending", "initial connection", "TN3270 NVT", "TN3270 3270", "TN3270E", "TN3270E NVT", "TN3270E SSCP-LU", "TN3270E 3270" }; #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ if (myopts[TELOPT_TN3270E]) { if (!tn3270e_negotiated) new_cstate = CONNECTED_INITIAL_E; else switch (tn3270e_submode) { case E_NONE: new_cstate = CONNECTED_INITIAL_E; break; case E_NVT: new_cstate = CONNECTED_NVT; break; case E_3270: new_cstate = CONNECTED_TN3270E; break; case E_SSCP: new_cstate = CONNECTED_SSCP; break; } } else #endif /*]*/ if (myopts[TELOPT_BINARY] && myopts[TELOPT_EOR] && myopts[TELOPT_TTYPE] && hisopts[TELOPT_BINARY] && hisopts[TELOPT_EOR]) { new_cstate = CONNECTED_3270; } else if (cstate == CONNECTED_INITIAL) { /* Nothing has happened, yet. */ return; } else { new_cstate = CONNECTED_INITIAL; } if (new_cstate != cstate) { #if defined(X3270_TN3270E) /*[*/ int was_in_e = IN_E; #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ /* * If we've now switched between non-TN3270E mode and * TN3270E mode, reset the LU list so we can try again * in the new mode. */ if (lus != (char **)NULL && was_in_e != IN_E) { curr_lu = lus; try_lu = *curr_lu; } #endif /*]*/ /* Allocate the initial 3270 input buffer. */ if (new_cstate >= CONNECTED_INITIAL && !ibuf_size) { ibuf = (unsigned char *)Malloc(BUFSIZ); ibuf_size = BUFSIZ; ibptr = ibuf; } #if defined(X3270_ANSI) /*[*/ /* Reinitialize line mode. */ if ((new_cstate == CONNECTED_ANSI && linemode) || new_cstate == CONNECTED_NVT) cooked_init(); #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ /* If we fell out of TN3270E, remove the state. */ if (!myopts[TELOPT_TN3270E]) { tn3270e_negotiated = 0; tn3270e_submode = E_NONE; tn3270e_bound = 0; } #endif /*]*/ trace_dsn("Now operating in %s mode.\n", state_name[new_cstate]); host_in3270(new_cstate); } } /* * store3270in * Store a character in the 3270 input buffer, checking for buffer * overflow and reallocating ibuf if necessary. */ static void store3270in(unsigned char c) { if (ibptr - ibuf >= ibuf_size) { ibuf_size += BUFSIZ; ibuf = (unsigned char *)Realloc((char *)ibuf, ibuf_size); ibptr = ibuf + ibuf_size - BUFSIZ; } *ibptr++ = c; } /* * space3270out * Ensure that more characters will fit in the 3270 output buffer. * Allocates the buffer in BUFSIZ chunks. * Allocates hidden space at the front of the buffer for TN3270E. */ void space3270out(int n) { unsigned nc = 0; /* amount of data currently in obuf */ unsigned more = 0; if (obuf_size) nc = obptr - obuf; while ((nc + n + EH_SIZE) > (obuf_size + more)) { more += BUFSIZ; } if (more) { obuf_size += more; obuf_base = (unsigned char *)Realloc((char *)obuf_base, obuf_size); obuf = obuf_base + EH_SIZE; obptr = obuf + nc; } } /* * check_linemode * Set the global variable 'linemode', which says whether we are in * character-by-character mode or line mode. */ static void check_linemode(Boolean init) { int wasline = linemode; /* * The next line is a deliberate kluge to effectively ignore the SGA * option. If the host will echo for us, we assume * character-at-a-time; otherwise we assume fully cooked by us. * * This allows certain IBM hosts which volunteer SGA but refuse * ECHO to operate more-or-less normally, at the expense of * implementing the (hopefully useless) "character-at-a-time, local * echo" mode. * * We still implement "switch to line mode" and "switch to character * mode" properly by asking for both SGA and ECHO to be off or on, but * we basically ignore the reply for SGA. */ linemode = !hisopts[TELOPT_ECHO] /* && !hisopts[TELOPT_SGA] */; if (init || linemode != wasline) { st_changed(ST_LINE_MODE, linemode); if (!init) { trace_dsn("Operating in %s mode.\n", linemode ? "line" : "character-at-a-time"); } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI && linemode) cooked_init(); #endif /*]*/ } } #if defined(X3270_TRACE) /*[*/ /* * nnn * Expands a number to a character string, for displaying unknown telnet * commands and options. */ static const char * nnn(int c) { static char buf[64]; (void) sprintf(buf, "%d", c); return buf; } /* * cmd * Expands a TELNET command into a character string. */ static const char * cmd(int c) { if (TELCMD_OK(c)) return TELCMD(c); else return nnn(c); } /* * opt * Expands a TELNET option into a character string. */ static const char * opt(unsigned char c) { if (TELOPT_OK(c)) return TELOPT(c); else if (c == TELOPT_TN3270E) return "TN3270E"; #if defined(HAVE_LIBSSL) /*[*/ else if (c == TELOPT_STARTTLS) return "START-TLS"; #endif /*]*/ else return nnn((int)c); } #define LINEDUMP_MAX 32 void trace_netdata(char direction, unsigned const char *buf, int len) { int offset; struct timeval ts; double tdiff; if (!toggled(DS_TRACE)) return; (void) gettimeofday(&ts, (struct timezone *)NULL); if (IN_3270) { tdiff = ((1.0e6 * (double)(ts.tv_sec - ds_ts.tv_sec)) + (double)(ts.tv_usec - ds_ts.tv_usec)) / 1.0e6; trace_dsn("%c +%gs\n", direction, tdiff); } ds_ts = ts; for (offset = 0; offset < len; offset++) { if (!(offset % LINEDUMP_MAX)) trace_dsn("%s%c 0x%-3x ", (offset ? "\n" : ""), direction, offset); trace_dsn("%02x", buf[offset]); } trace_dsn("\n"); } #endif /*]*/ /* * net_output * Send 3270 output over the network: * - Prepend TN3270E header * - Expand IAC to IAC IAC * - Append IAC EOR */ void net_output(void) { static unsigned char *xobuf = NULL; static int xobuf_len = 0; int need_resize = 0; unsigned char *nxoptr, *xoptr; #if defined(X3270_TN3270E) /*[*/ #define BSTART ((IN_TN3270E || IN_SSCP) ? obuf_base : obuf) #else /*][*/ #define BSTART obuf #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ /* Set the TN3720E header. */ if (IN_TN3270E || IN_SSCP) { tn3270e_header *h = (tn3270e_header *)obuf_base; /* Check for sending a TN3270E response. */ if (response_required == TN3270E_RSF_ALWAYS_RESPONSE) { tn3270e_ack(); response_required = TN3270E_RSF_NO_RESPONSE; } /* Set the outbound TN3270E header. */ h->data_type = IN_TN3270E ? TN3270E_DT_3270_DATA : TN3270E_DT_SSCP_LU_DATA; h->request_flag = 0; h->response_flag = 0; h->seq_number[0] = (e_xmit_seq >> 8) & 0xff; h->seq_number[1] = e_xmit_seq & 0xff; trace_dsn("SENT TN3270E(%s NO-RESPONSE %u)\n", IN_TN3270E ? "3270-DATA" : "SSCP-LU-DATA", e_xmit_seq); if (e_funcs & E_OPT(TN3270E_FUNC_RESPONSES)) e_xmit_seq = (e_xmit_seq + 1) & 0x7fff; } #endif /*]*/ /* Reallocate the expanded output buffer. */ while (xobuf_len < (obptr - BSTART + 1) * 2) { xobuf_len += BUFSZ; need_resize++; } if (need_resize) { Replace(xobuf, (unsigned char *)Malloc(xobuf_len)); } /* Copy and expand IACs. */ xoptr = xobuf; nxoptr = BSTART; while (nxoptr < obptr) { if ((*xoptr++ = *nxoptr++) == IAC) { *xoptr++ = IAC; } } /* Append the IAC EOR and transmit. */ *xoptr++ = IAC; *xoptr++ = EOR; net_rawout(xobuf, xoptr - xobuf); trace_dsn("SENT EOR\n"); ns_rsent++; #undef BSTART } #if defined(X3270_TN3270E) /*[*/ /* Send a TN3270E positive response to the server. */ static void tn3270e_ack(void) { unsigned char rsp_buf[10]; tn3270e_header *h_in = (tn3270e_header *)ibuf; int rsp_len = 0; rsp_len = 0; rsp_buf[rsp_len++] = TN3270E_DT_RESPONSE; /* data_type */ rsp_buf[rsp_len++] = 0; /* request_flag */ rsp_buf[rsp_len++] = TN3270E_RSF_POSITIVE_RESPONSE; /* response_flag */ rsp_buf[rsp_len++] = h_in->seq_number[0]; /* seq_number[0] */ if (h_in->seq_number[0] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = h_in->seq_number[1]; /* seq_number[1] */ if (h_in->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = TN3270E_POS_DEVICE_END; rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; trace_dsn("SENT TN3270E(RESPONSE POSITIVE-RESPONSE " "%u) DEVICE-END\n", h_in->seq_number[0] << 8 | h_in->seq_number[1]); net_rawout(rsp_buf, rsp_len); } /* Send a TN3270E negative response to the server. */ static void tn3270e_nak(enum pds rv) { unsigned char rsp_buf[10]; tn3270e_header *h_in = (tn3270e_header *)ibuf; int rsp_len = 0; char *neg = NULL; rsp_buf[rsp_len++] = TN3270E_DT_RESPONSE; /* data_type */ rsp_buf[rsp_len++] = 0; /* request_flag */ rsp_buf[rsp_len++] = TN3270E_RSF_NEGATIVE_RESPONSE; /* response_flag */ rsp_buf[rsp_len++] = h_in->seq_number[0]; /* seq_number[0] */ if (h_in->seq_number[0] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = h_in->seq_number[1]; /* seq_number[1] */ if (h_in->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; switch (rv) { default: case PDS_BAD_CMD: rsp_buf[rsp_len++] = TN3270E_NEG_COMMAND_REJECT; neg = "COMMAND-REJECT"; break; case PDS_BAD_ADDR: rsp_buf[rsp_len++] = TN3270E_NEG_OPERATION_CHECK; neg = "OPERATION-CHECK"; break; } rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; trace_dsn("SENT TN3270E(RESPONSE NEGATIVE-RESPONSE %u) %s\n", h_in->seq_number[0] << 8 | h_in->seq_number[1], neg); net_rawout(rsp_buf, rsp_len); } #if defined(X3270_TRACE) /*[*/ /* Add a dummy TN3270E header to the output buffer. */ Boolean net_add_dummy_tn3270e(void) { tn3270e_header *h; if (!IN_E || tn3270e_submode == E_NONE) return False; space3270out(EH_SIZE); h = (tn3270e_header *)obptr; switch (tn3270e_submode) { case E_NONE: break; case E_NVT: h->data_type = TN3270E_DT_NVT_DATA; break; case E_SSCP: h->data_type = TN3270E_DT_SSCP_LU_DATA; break; case E_3270: h->data_type = TN3270E_DT_3270_DATA; break; } h->request_flag = 0; h->response_flag = TN3270E_RSF_NO_RESPONSE; h->seq_number[0] = 0; h->seq_number[1] = 0; obptr += EH_SIZE; return True; } #endif /*]*/ #endif /*]*/ #if defined(X3270_TRACE) /*[*/ /* * Add IAC EOR to a buffer. */ void net_add_eor(unsigned char *buf, int len) { buf[len++] = IAC; buf[len++] = EOR; } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ /* * net_sendc * Send a character of user data over the network in ANSI mode. */ void net_sendc(char c) { if (c == '\r' && !linemode #if defined(LOCAL_PROCESS) /*[*/ && !local_process #endif /*]*/ ) { /* CR must be quoted */ net_cookout("\r\0", 2); } else { net_cookout(&c, 1); } } /* * net_sends * Send a null-terminated string of user data in ANSI mode. */ void net_sends(const char *s) { net_cookout(s, strlen(s)); } /* * net_send_erase * Sends the KILL character in ANSI mode. */ void net_send_erase(void) { net_cookout(&verase, 1); } /* * net_send_kill * Sends the KILL character in ANSI mode. */ void net_send_kill(void) { net_cookout(&vkill, 1); } /* * net_send_werase * Sends the WERASE character in ANSI mode. */ void net_send_werase(void) { net_cookout(&vwerase, 1); } #endif /*]*/ #if defined(X3270_MENUS) /*[*/ /* * External entry points to negotiate line or character mode. */ void net_linemode(void) { if (!CONNECTED) return; if (hisopts[TELOPT_ECHO]) { dont_opt[2] = TELOPT_ECHO; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(TELOPT_ECHO)); } if (hisopts[TELOPT_SGA]) { dont_opt[2] = TELOPT_SGA; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(TELOPT_SGA)); } } void net_charmode(void) { if (!CONNECTED) return; if (!hisopts[TELOPT_ECHO]) { do_opt[2] = TELOPT_ECHO; net_rawout(do_opt, sizeof(do_opt)); trace_dsn("SENT %s %s\n", cmd(DO), opt(TELOPT_ECHO)); } if (!hisopts[TELOPT_SGA]) { do_opt[2] = TELOPT_SGA; net_rawout(do_opt, sizeof(do_opt)); trace_dsn("SENT %s %s\n", cmd(DO), opt(TELOPT_SGA)); } } #endif /*]*/ /* * net_break * Send telnet break, which is used to implement 3270 ATTN. * */ void net_break(void) { static unsigned char buf[] = { IAC, BREAK }; /* I don't know if we should first send TELNET synch ? */ net_rawout(buf, sizeof(buf)); trace_dsn("SENT BREAK\n"); } /* * net_interrupt * Send telnet IP. * */ void net_interrupt(void) { static unsigned char buf[] = { IAC, IP }; /* I don't know if we should first send TELNET synch ? */ net_rawout(buf, sizeof(buf)); trace_dsn("SENT IP\n"); } /* * net_abort * Send telnet AO. * */ #if defined(X3270_TN3270E) /*[*/ void net_abort(void) { static unsigned char buf[] = { IAC, AO }; if (e_funcs & E_OPT(TN3270E_FUNC_SYSREQ)) { /* * I'm not sure yet what to do here. Should the host respond * to the AO by sending us SSCP-LU data (and putting us into * SSCP-LU mode), or should we put ourselves in it? * Time, and testers, will tell. */ switch (tn3270e_submode) { case E_NONE: case E_NVT: break; case E_SSCP: net_rawout(buf, sizeof(buf)); trace_dsn("SENT AO\n"); if (tn3270e_bound || !(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) { tn3270e_submode = E_3270; check_in3270(); } break; case E_3270: net_rawout(buf, sizeof(buf)); trace_dsn("SENT AO\n"); tn3270e_submode = E_SSCP; check_in3270(); break; } } } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ /* * parse_ctlchar * Parse an stty control-character specification. * A cheap, non-complaining implementation. */ static char parse_ctlchar(char *s) { if (!s || !*s) return 0; if ((int) strlen(s) > 1) { if (*s != '^') return 0; else if (*(s+1) == '?') return 0177; else return *(s+1) - '@'; } else return *s; } #endif /*]*/ #if (defined(X3270_MENUS) || defined(C3270)) && defined(X3270_ANSI) /*[*/ /* * net_linemode_chars * Report line-mode characters. */ struct ctl_char * net_linemode_chars(void) { static struct ctl_char c[9]; c[0].name = "intr"; (void) strcpy(c[0].value, ctl_see(vintr)); c[1].name = "quit"; (void) strcpy(c[1].value, ctl_see(vquit)); c[2].name = "erase"; (void) strcpy(c[2].value, ctl_see(verase)); c[3].name = "kill"; (void) strcpy(c[3].value, ctl_see(vkill)); c[4].name = "eof"; (void) strcpy(c[4].value, ctl_see(veof)); c[5].name = "werase"; (void) strcpy(c[5].value, ctl_see(vwerase)); c[6].name = "rprnt"; (void) strcpy(c[6].value, ctl_see(vrprnt)); c[7].name = "lnext"; (void) strcpy(c[7].value, ctl_see(vlnext)); c[8].name = 0; return c; } #endif /*]*/ #if defined(X3270_TRACE) /*[*/ /* * Construct a string to reproduce the current TELNET options. * Returns a Boolean indicating whether it is necessary. */ Boolean net_snap_options(void) { Boolean any = False; int i; static unsigned char ttype_str[] = { IAC, DO, TELOPT_TTYPE, IAC, SB, TELOPT_TTYPE, TELQUAL_SEND, IAC, SE }; if (!CONNECTED) return False; obptr = obuf; /* Do TTYPE first. */ if (myopts[TELOPT_TTYPE]) { unsigned j; space3270out(sizeof(ttype_str)); for (j = 0; j < sizeof(ttype_str); j++) *obptr++ = ttype_str[j]; } /* Do the other options. */ for (i = 0; i < N_OPTS; i++) { space3270out(6); if (i == TELOPT_TTYPE) continue; if (hisopts[i]) { *obptr++ = IAC; *obptr++ = WILL; *obptr++ = (unsigned char)i; any = True; } if (myopts[i]) { *obptr++ = IAC; *obptr++ = DO; *obptr++ = (unsigned char)i; any = True; } } #if defined(X3270_TN3270E) /*[*/ /* If we're in TN3270E mode, snap the subnegotations as well. */ if (myopts[TELOPT_TN3270E]) { any = True; space3270out(5 + ((connected_type != CN) ? strlen(connected_type) : 0) + ((connected_lu != CN) ? + strlen(connected_lu) : 0) + 2); *obptr++ = IAC; *obptr++ = SB; *obptr++ = TELOPT_TN3270E; *obptr++ = TN3270E_OP_DEVICE_TYPE; *obptr++ = TN3270E_OP_IS; if (connected_type != CN) { (void) memcpy(obptr, connected_type, strlen(connected_type)); obptr += strlen(connected_type); } if (connected_lu != CN) { *obptr++ = TN3270E_OP_CONNECT; (void) memcpy(obptr, connected_lu, strlen(connected_lu)); obptr += strlen(connected_lu); } *obptr++ = IAC; *obptr++ = SE; space3270out(38); (void) memcpy(obptr, functions_req, 4); obptr += 4; *obptr++ = TN3270E_OP_IS; for (i = 0; i < 32; i++) { if (e_funcs & E_OPT(i)) *obptr++ = i; } *obptr++ = IAC; *obptr++ = SE; if (tn3270e_bound) { tn3270e_header *h; int i; int xlen = 0; for (i = 0; i < bind_image_len; i++) { if (bind_image[i] == 0xff) xlen++; } space3270out(EH_SIZE + bind_image_len + xlen + 3); h = (tn3270e_header *)obptr; h->data_type = TN3270E_DT_BIND_IMAGE; h->request_flag = 0; h->response_flag = 0; h->seq_number[0] = 0; h->seq_number[1] = 0; obptr += EH_SIZE; for (i = 0; i < bind_image_len; i++) { if (bind_image[i] == 0xff) *obptr++ = 0xff; *obptr++ = bind_image[i]; } *obptr++ = IAC; *obptr++ = EOR; } } #endif /*]*/ return any; } #endif /*]*/ /* * Set blocking/non-blocking mode on the socket. On error, pops up an error * message, but does not close the socket. */ static int non_blocking(Boolean on) { #if !defined(BLOCKING_CONNECT_ONLY) /*[*/ # if defined(FIONBIO) /*[*/ int i = on ? 1 : 0; if (SOCK_IOCTL(sock, FIONBIO, &i) < 0) { popup_a_sockerr("ioctl(FIONBIO)"); return -1; } # else /*][*/ int f; if ((f = fcntl(sock, F_GETFL, 0)) == -1) { popup_an_errno(errno, "fcntl(F_GETFL)"); return -1; } if (on) f |= O_NDELAY; else f &= ~O_NDELAY; if (fcntl(sock, F_SETFL, f) < 0) { popup_an_errno(errno, "fcntl(F_SETFL)"); return -1; } # endif /*]*/ #endif /*]*/ return 0; } #if defined(HAVE_LIBSSL) /*[*/ /* Initialize the OpenSSL library. */ static void ssl_init(void) { static Boolean ssl_initted = False; if (!ssl_initted) { SSL_load_error_strings(); SSL_library_init(); ssl_initted = True; ssl_ctx = SSL_CTX_new(SSLv23_method()); if (ssl_ctx == NULL) { popup_an_error("SSL_CTX_new failed"); ssl_host = False; return; } SSL_CTX_set_options(ssl_ctx, SSL_OP_ALL); } ssl_con = SSL_new(ssl_ctx); if (ssl_con == NULL) { popup_an_error("SSL_new failed"); ssl_host = False; } SSL_set_verify(ssl_con, 0/*xxx*/, NULL); SSL_CTX_set_info_callback(ssl_ctx, client_info_callback); /* XXX: May need to get key file and password. */ if (appres.cert_file) { if (!(SSL_CTX_use_certificate_chain_file(ssl_ctx, appres.cert_file))) { unsigned long e; char err_buf[120]; e = ERR_get_error(); (void) ERR_error_string(e, err_buf); popup_an_error("SSL_CTX_use_certificate_chain_file(" "\"%s\") failed:\n%s", appres.cert_file, err_buf); } } SSL_CTX_set_default_verify_paths(ssl_ctx); } /* Callback for tracing protocol negotiation. */ static void client_info_callback(INFO_CONST SSL *s, int where, int ret) { if (where == SSL_CB_CONNECT_LOOP) { trace_dsn("SSL_connect: %s %s\n", SSL_state_string(s), SSL_state_string_long(s)); } else if (where == SSL_CB_CONNECT_EXIT) { if (ret == 0) { trace_dsn("SSL_connect: failed in %s\n", SSL_state_string_long(s)); } else if (ret < 0) { unsigned long e; char err_buf[1024]; err_buf[0] = '\n'; e = ERR_get_error(); if (e != 0) (void) ERR_error_string(e, err_buf + 1); #if defined(_WIN32) /*[*/ else if (GetLastError() != 0) strcpy(err_buf + 1, win32_strerror(GetLastError())); #else /*][*/ else if (errno != 0) strcpy(err_buf + 1, strerror(errno)); #endif /*]*/ else err_buf[0] = '\0'; trace_dsn("SSL_connect: error in %s%s\n", SSL_state_string_long(s), err_buf); popup_an_error("SSL_connect: error in %s%s", SSL_state_string_long(s), err_buf); } } } /* Process a STARTTLS subnegotiation. */ static void continue_tls(unsigned char *sbbuf, int len) { int rv; /* Whatever happens, we're not expecting another SB STARTTLS. */ need_tls_follows = False; /* Make sure the option is FOLLOWS. */ if (len < 2 || sbbuf[1] != TLS_FOLLOWS) { /* Trace the junk. */ trace_dsn("%s ? %s\n", opt(TELOPT_STARTTLS), cmd(SE)); popup_an_error("TLS negotiation failure"); net_disconnect(); return; } /* Trace what we got. */ trace_dsn("%s FOLLOWS %s\n", opt(TELOPT_STARTTLS), cmd(SE)); /* Initialize the SSL library. */ ssl_init(); if (ssl_con == NULL) { /* Failed. */ net_disconnect(); return; } /* Set up the TLS/SSL connection. */ if (SSL_set_fd(ssl_con, sock) != 1) { trace_dsn("Can't set fd!\n"); } #if defined(_WIN32) /*[*/ /* Make the socket blocking for SSL. */ (void) WSAEventSelect(sock, sock_handle, 0); (void) non_blocking(False); #endif /*]*/ rv = SSL_connect(ssl_con); #if defined(_WIN32) /*[*/ /* Make the socket non-blocking again for event processing. */ (void) WSAEventSelect(sock, sock_handle, FD_READ | FD_CONNECT | FD_CLOSE); #endif /*]*/ if (rv != 1) { /* Error already displayed. */ trace_dsn("continue_tls: SSL_connect failed\n"); net_disconnect(); return; } secure_connection = True; /* Success. */ trace_dsn("TLS/SSL negotiated connection complete. " "Connection is now secure.\n"); /* Tell the world that we are (still) connected, now in secure mode. */ host_connected(); } #endif /*]*/ /* Return the current BIND application name, if any. */ const char * net_query_bind_plu_name(void) { #if defined(X3270_TN3270E) /*[*/ /* * Return the PLU name, if we're in TN3270E 3270 mode and have * negotiated the BIND-IMAGE option. */ if ((cstate == CONNECTED_TN3270E) && (e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return plu_name? plu_name: ""; else return ""; #else /*][*/ /* No TN3270E, no BIND negotiation. */ return ""; #endif /*]*/ } /* Return the current connection state. */ const char * net_query_connection_state(void) { if (CONNECTED) { #if defined(X3270_TN3270E) /*[*/ if (IN_E) { switch (tn3270e_submode) { default: case E_NONE: if (tn3270e_bound) return "tn3270e bound"; else return "tn3270e unbound"; case E_3270: return "tn3270e lu-lu"; case E_NVT: return "tn3270e nvt"; case E_SSCP: return "tn3270 sscp-lu"; } } else #endif /*]*/ { if (IN_3270) return "tn3270 3270"; else return "tn3270 nvt"; } } else if (HALF_CONNECTED) return "connecting"; else return ""; } /* Return the LU name. */ const char * net_query_lu_name(void) { if (CONNECTED && connected_lu != CN) return connected_lu; else return ""; } /* Return the hostname and port. */ const char * net_query_host(void) { static char *s = CN; if (CONNECTED) { Free(s); #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { s = xs_buffer("process %s", hostname); } else #endif /*]*/ { s = xs_buffer("host %s %u %s", hostname, current_port, #if defined(HAVE_LIBSSL) /*[*/ secure_connection? "encrypted": #endif /*]*/ "unencrypted" ); } return s; } else return ""; } /* Return the local address for the socket. */ int net_getsockname(void *buf, int *len) { if (sock < 0) return -1; return getsockname(sock, buf, (socklen_t *)(void *)len); } /* Return a text version of the current proxy type, or NULL. */ char * net_proxy_type(void) { if (proxy_type > 0) return proxy_type_name(proxy_type); else return NULL; } /* Return the current proxy host, or NULL. */ char * net_proxy_host(void) { if (proxy_type > 0) return proxy_host; else return NULL; } /* Return the current proxy port, or NULL. */ char * net_proxy_port(void) { if (proxy_type > 0) return proxy_portname; else return NULL; } /* Return the SNA binding state. */ Boolean net_bound(void) { return (IN_E && tn3270e_bound); } ibm-3270-3.3.10ga4/wc3270/winvers.c0000644000175000017500000000445211254565675015771 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * winvers.c * A Windows console-based 3270 Terminal Emulator * OS version query */ #include #include #include "winversc.h" int is_nt = 1; int has_ipv6 = 1; int get_version_info(void) { OSVERSIONINFO info; /* Figure out what version of Windows this is. */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); return -1; } /* Yes, people still run Win98. */ if (info.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) is_nt = 0; /* Win2K and earlier is IPv4-only. WinXP and later can have IPv6. */ if (!is_nt || info.dwMajorVersion < 5 || (info.dwMajorVersion == 5 && info.dwMinorVersion < 1)) { has_ipv6 = 0; } return 0; } ibm-3270-3.3.10ga4/wc3270/wc3270.zipit0000644000175000017500000000110311254565671016120 0ustar bastianbastian# zipit template for wc3270 D html F LICENSE.txt F README.txt F NO-INSTALL.txt F html/Bugs.html F html/Build.html F html/FAQ.html F html/Intro.html F html/Keymap.html F html/Lineage.html F html/README.html F html/ReleaseNotes.html F html/Resources.html F html/wc3270-man.html F html/Wishlist.html F html/x3270if.html F html/x3270-script.html F ../wpr3287-3.3/html/wpr3287-man.html html/wpr3287.html F ../ws3270-3.3/html/ws3270-man.html html/ws3270-man.html F wc3270.exe F wc3270wiz.exe F ../wpr3287-3.3/wpr3287.exe wpr3287.exe F ../ws3270-3.3/ws3270.exe ws3270.exe F x3270if.exe ibm-3270-3.3.10ga4/wc3270/ft_dft.c0000644000175000017500000004317111254565704015534 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * ft_dft.c * File transfer: DFT-style data processing functions */ #include "globals.h" #if defined(X3270_FT) /*[*/ #include "appres.h" #include "3270ds.h" #include "ft_dft_ds.h" #include "actionsc.h" #include "charsetc.h" #include "kybdc.h" #include "ft_dftc.h" #include "ftc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include extern unsigned char aid; /* Macros. */ #define OPEN_MSG "FT:MSG" /* Open request for message */ #define END_TRANSFER "TRANS03" /* Message for xfer complete */ #define DFT_MIN_BUF 256 #define DFT_MAX_BUF 32768 #define DFT_MAX_UNGETC 32 /* Typedefs. */ struct data_buffer { char sf_length[2]; /* SF length = 0x0023 */ char sf_d0; /* 0xD0 */ char sf_request_type[2]; /* request type */ char compress_indic[2]; /* 0xc080 */ char begin_data; /* 0x61 */ char data_length[2]; /* Data Length in 3270 byte order+5 */ char data[256]; /* The actual data */ }; /* Globals. */ int dft_buffersize = 0; /* Buffer size (LIMIN, LIMOUT) */ /* Statics. */ static Boolean message_flag = False; /* Open Request for msg received */ static int dft_eof; static unsigned long recnum; static char *abort_string = CN; static unsigned char *dft_savebuf = NULL; static int dft_savebuf_len = 0; static int dft_savebuf_max = 0; static unsigned char dft_ungetc_cache[DFT_MAX_UNGETC]; static size_t dft_ungetc_count = 0; static void dft_abort(const char *s, unsigned short code); static void dft_close_request(void); static void dft_data_insert(struct data_buffer *data_bufr); static void dft_get_request(void); static void dft_insert_request(void); static void dft_open_request(unsigned short len, unsigned char *cp); static void dft_set_cur_req(void); /* Process a Transfer Data structured field from the host. */ void ft_dft_data(unsigned char *data, int length _is_unused) { struct data_buffer *data_bufr = (struct data_buffer *)data; unsigned short data_length, data_type; unsigned char *cp; if (ft_state == FT_NONE) { trace_ds(" (no transfer in progress)\n"); return; } /* Get the length. */ cp = (unsigned char *)(data_bufr->sf_length); GET16(data_length, cp); /* Get the function type. */ cp = (unsigned char *)(data_bufr->sf_request_type); GET16(data_type, cp); /* Handle the requests */ switch (data_type) { case TR_OPEN_REQ: dft_open_request(data_length, cp); break; case TR_INSERT_REQ: /* Insert Request */ dft_insert_request(); break; case TR_DATA_INSERT: dft_data_insert(data_bufr); break; case TR_SET_CUR_REQ: dft_set_cur_req(); break; case TR_GET_REQ: dft_get_request(); break; case TR_CLOSE_REQ: dft_close_request(); break; default: trace_ds(" Unsupported(0x%04x)\n", data_type); break; } } /* Process an Open request. */ static void dft_open_request(unsigned short len, unsigned char *cp) { char *name = "?"; char namebuf[8]; char *s; unsigned short recsz = 0; if (len == 0x23) { name = (char *)cp + 25; } else if (len == 0x29) { unsigned char *recszp; recszp = cp + 27; GET16(recsz, recszp); name = (char *)cp + 31; } else { dft_abort(get_message("ftDftUknownOpen"), TR_OPEN_REQ); return; } (void) memcpy(namebuf, name, 7); namebuf[7] = '\0'; s = &namebuf[6]; while (s >= namebuf && *s == ' ') { *s-- = '\0'; } if (recsz) { trace_ds(" Open('%s',recsz=%u)\n", namebuf, recsz); } else { trace_ds(" Open('%s')\n", namebuf); } if (!strcmp(namebuf, OPEN_MSG)) message_flag = True; else { message_flag = False; ft_running(False); } dft_eof = False; recnum = 1; dft_ungetc_count = 0; /* Acknowledge the Open. */ trace_ds("> WriteStructuredField FileTransferData OpenAck\n"); obptr = obuf; space3270out(6); *obptr++ = AID_SF; SET16(obptr, 5); *obptr++ = SF_TRANSFER_DATA; SET16(obptr, 9); net_output(); } /* Process an Insert request. */ static void dft_insert_request(void) { trace_ds(" Insert\n"); /* Doesn't currently do anything. */ } /* Process a Data Insert request. */ static void dft_data_insert(struct data_buffer *data_bufr) { /* Received a data buffer, get the length and process it */ int my_length; unsigned char *cp; if (!message_flag && ft_state == FT_ABORT_WAIT) { dft_abort(get_message("ftUserCancel"), TR_DATA_INSERT); return; } cp = (unsigned char *) (data_bufr->data_length); /* Get the data length in native format. */ GET16(my_length, cp); /* Adjust for 5 extra count */ my_length -= 5; trace_ds(" Data(rec=%lu) %d bytes\n", recnum, my_length); /* * First, check to see if we have message data or file data. * Message data will result in a popup. */ if (message_flag) { /* Data is from a message */ unsigned char *msgp; unsigned char *dollarp; /* Get storage to copy the message. */ msgp = (unsigned char *)Malloc(my_length + 1); /* Copy the message. */ memcpy(msgp, data_bufr->data, my_length); /* Null terminate the string. */ dollarp = (unsigned char *)memchr(msgp, '$', my_length); if (dollarp != NULL) *dollarp = '\0'; else *(msgp + my_length) = '\0'; /* If transfer completed ok, use our msg. */ if (memcmp(msgp, END_TRANSFER, strlen(END_TRANSFER)) == 0) { Free(msgp); ft_complete((String)NULL); } else if (ft_state == FT_ABORT_SENT && abort_string != CN) { Free(msgp); ft_complete(abort_string); Replace(abort_string, CN); } else { ft_complete((char *)msgp); Free(msgp); } } else if (my_length > 0) { int rv = 1; /* Write the data out to the file. */ if (ascii_flag && (remap_flag || cr_flag)) { size_t obuf_len = 4 * my_length; char *ob0 = Malloc(obuf_len); char *ob = ob0; unsigned char *s = (unsigned char *)data_bufr->data; unsigned len = my_length; int nx; /* Copy and convert data_bufr->data to ob0. */ while (len-- && obuf_len) { unsigned char c = *s++; /* Strip CR's and ^Z's. */ if (cr_flag && ((c == '\r' || c == 0x1a))) { continue; } if (!remap_flag) { *ob++ = c; obuf_len--; continue; } /* * Convert to local multi-byte. * We do that by inverting the host's * EBCDIC-to-ASCII map, getting back to * EBCDIC, and converting to multi-byte * from there. */ #if defined(X3270_DBCS) /*[*/ switch (ft_dbcs_state) { case FT_DBCS_NONE: if (c == EBC_so) { ft_dbcs_state = FT_DBCS_SO; continue; } /* * fall through to non-DBCS case below */ break; case FT_DBCS_SO: if (c == EBC_si) ft_dbcs_state = FT_DBCS_NONE; else { ft_dbcs_byte1 = i_asc2ft[c]; ft_dbcs_state = FT_DBCS_LEFT; } continue; case FT_DBCS_LEFT: if (c == EBC_si) { ft_dbcs_state = FT_DBCS_NONE; continue; } nx = ebcdic_to_multibyte( (ft_dbcs_byte1 << 8) | i_asc2ft[c], (char *)ob, obuf_len); if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; ft_dbcs_state = FT_DBCS_SO; continue; } #endif /*]*/ if (c < 0x20 || (c >= 0x80 && c < 0xa0 && c != 0x9f)) { /* * Control code, treat it as Unicode. * * Note that IND$FILE and the VM 'TYPE' * command think that EBCDIC X'E1' is * a control code; IND$FILE maps it * onto ASCII 0x9f. So we skip it * explicitly and treat it as printable * here. */ nx = unicode_to_multibyte(c, ob, obuf_len); } else if (c == 0xff) { /* * IND$FILE maps X'FF' to 0xff. We * want U+009F. */ nx = unicode_to_multibyte(0x9f, ob, obuf_len); } else { /* Displayable character, remap. */ c = i_asc2ft[c]; nx = ebcdic_to_multibyte(c, (char *)ob, obuf_len); } if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; } /* Write the result to the file. */ if (ob - ob0) { rv = fwrite(ob0, ob - ob0, (size_t)1, ft_local_file); ft_length += ob - ob0; } Free(ob0); } else { /* Write the buffer to the file directly. */ rv = fwrite((char *)data_bufr->data, my_length, (size_t)1, ft_local_file); ft_length += my_length; } if (!rv) { /* write failed */ char *buf; buf = xs_buffer("write(%s): %s", ft_local_filename, strerror(errno)); dft_abort(buf, TR_DATA_INSERT); Free(buf); } /* Add up amount transferred. */ ft_update_length(); } /* Send an acknowledgement frame back. */ trace_ds("> WriteStructuredField FileTransferData DataAck(rec=%lu)\n", recnum); obptr = obuf; space3270out(12); *obptr++ = AID_SF; SET16(obptr, 11); *obptr++ = SF_TRANSFER_DATA; SET16(obptr, TR_NORMAL_REPLY); SET16(obptr, TR_RECNUM_HDR); SET32(obptr, recnum); recnum++; net_output(); } /* Process a Set Cursor request. */ static void dft_set_cur_req(void) { trace_ds(" SetCursor\n"); /* Currently doesn't do anything. */ } #if defined(X3270_DBCS) /*[*/ /* Store a byte inthe input buffer or ungetc cache. */ static void store_inbyte(unsigned char c, unsigned char **bufptr, size_t *numbytes) { if (*numbytes) { *(*bufptr) = c; (*bufptr)++; (*numbytes)--; } else { dft_ungetc_cache[dft_ungetc_count++] = c; } } #endif /*]*/ /* * Read a character from a local file in ASCII mode. * Stores the data in 'bufptr' and returns the number of bytes stored. * Returns -1 for EOF. */ /*static*/ size_t dft_ascii_read(unsigned char *bufptr, size_t numbytes) { char inbuf[16]; int in_ix = 0; char c; enum me_fail error; ebc_t e; int consumed; ucs4_t u; /* Belt-n-suspenders. */ if (!numbytes) return 0; /* Return data from the ungetc cache first. */ if (dft_ungetc_count) { size_t nm = dft_ungetc_count; if (nm > numbytes) nm = numbytes; memcpy(bufptr, dft_ungetc_cache, nm); if (dft_ungetc_count > nm) memmove(dft_ungetc_cache, &dft_ungetc_cache[nm], dft_ungetc_count - nm); dft_ungetc_count -= nm; return nm; } if (remap_flag) { /* Read bytes until we have a legal multibyte sequence. */ do { int consumed; c = fgetc(ft_local_file); if (c == EOF) { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { *bufptr = EBC_si; ft_last_dbcs = False; return 1; } #endif /*]*/ return -1; } error = ME_NONE; inbuf[in_ix++] = c; (void) multibyte_to_unicode(inbuf, in_ix, &consumed, &error); if (error == ME_INVALID) { #if defined(EILSEQ) /*[*/ errno = EILSEQ; #else /*][*/ errno = EINVAL; #endif /*]*/ return -1; } } while (error == ME_SHORT); } else { /* Get a byte from the file. */ c = fgetc(ft_local_file); if (c == EOF) return -1; } /* Expand NL to CR/LF. */ if (cr_flag && !ft_last_cr && c == '\n') { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { *bufptr = EBC_si; dft_ungetc_cache[0] = '\r'; dft_ungetc_cache[1] = '\n'; dft_ungetc_count = 2; ft_last_dbcs = False; return 1; } else #endif /*]*/ { *bufptr = '\r'; dft_ungetc_cache[0] = '\n'; dft_ungetc_count = 1; } return 1; } ft_last_cr = (c == '\r'); /* The no-remap case is pretty simple. */ if (!remap_flag) { *bufptr = c; return 1; } /* * Translate, inverting the host's fixed EBCDIC-to-ASCII conversion * table and applying the host code page. * Control codes are treated as Unicode and mapped directly. * We also handle DBCS here. */ u = multibyte_to_unicode(inbuf, in_ix, &consumed, &error); if (u < 0x20 || ((u >= 0x80 && u < 0x9f))) e = i_asc2ft[u]; else if (u == 0x9f) e = 0xff; else e = unicode_to_ebcdic(u); if (e & 0xff00) { #if defined(X3270_DBCS) /*[*/ unsigned char *bp0 = bufptr; if (!ft_last_dbcs) store_inbyte(EBC_so, &bufptr, &numbytes); store_inbyte(i_ft2asc[(e >> 8) & 0xff], &bufptr, &numbytes); store_inbyte(i_ft2asc[e & 0xff], &bufptr, &numbytes); ft_last_dbcs = True; return bufptr - bp0; #else /*][*/ *bufptr = '?'; return 1; #endif /*]*/ } else { unsigned char nc = e? i_ft2asc[e]: '?'; #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { *bufptr = EBC_si; dft_ungetc_cache[0] = nc; dft_ungetc_count = 1; ft_last_dbcs = False; } else #endif /*]*/ *bufptr = nc; return 1; } } /* Process a Get request. */ static void dft_get_request(void) { size_t numbytes; size_t numread; size_t total_read = 0; unsigned char *bufptr; trace_ds(" Get\n"); if (!message_flag && ft_state == FT_ABORT_WAIT) { dft_abort(get_message("ftUserCancel"), TR_GET_REQ); return; } /* Read a buffer's worth. */ set_dft_buffersize(); space3270out(dft_buffersize); numbytes = dft_buffersize - 27; /* always read 5 bytes less than we're allowed */ bufptr = obuf + 17; while (!dft_eof && numbytes) { if (ascii_flag && (remap_flag || cr_flag)) { numread = dft_ascii_read(bufptr, numbytes); if (numread == (size_t)-1) { dft_eof = True; break; } bufptr += numread; numbytes -= numread; total_read += numread; } else { /* Binary read. */ numread = fread(bufptr, 1, numbytes, ft_local_file); if (numread <= 0) { break; } bufptr += numread; numbytes -= numread; total_read += numread; if (feof(ft_local_file)) dft_eof = True; if (feof(ft_local_file) || ferror(ft_local_file)) { break; } } } /* Check for read error. */ if (ferror(ft_local_file)) { char *buf; buf = xs_buffer("read(%s): %s", ft_local_filename, strerror(errno)); dft_abort(buf, TR_GET_REQ); Free(buf); return; } /* Set up SF header for Data or EOF. */ obptr = obuf; *obptr++ = AID_SF; obptr += 2; /* skip SF length for now */ *obptr++ = SF_TRANSFER_DATA; if (total_read) { trace_ds("> WriteStructuredField FileTransferData Data(rec=%lu) %d bytes\n", recnum, (int)total_read); SET16(obptr, TR_GET_REPLY); SET16(obptr, TR_RECNUM_HDR); SET32(obptr, recnum); recnum++; SET16(obptr, TR_NOT_COMPRESSED); *obptr++ = TR_BEGIN_DATA; SET16(obptr, total_read + 5); obptr += total_read; ft_length += total_read; } else { trace_ds("> WriteStructuredField FileTransferData EOF\n"); *obptr++ = HIGH8(TR_GET_REQ); *obptr++ = TR_ERROR_REPLY; SET16(obptr, TR_ERROR_HDR); SET16(obptr, TR_ERR_EOF); dft_eof = True; } /* Set the SF length. */ bufptr = obuf + 1; SET16(bufptr, obptr - (obuf + 1)); /* Save the data. */ dft_savebuf_len = obptr - obuf; if (dft_savebuf_len > dft_savebuf_max) { dft_savebuf_max = dft_savebuf_len; Replace(dft_savebuf, (unsigned char *)Malloc(dft_savebuf_max)); } (void) memcpy(dft_savebuf, obuf, dft_savebuf_len); aid = AID_SF; /* Write the data. */ net_output(); ft_update_length(); } /* Process a Close request. */ static void dft_close_request(void) { /* * Recieved a close request from the system. * Return a close acknowledgement. */ trace_ds(" Close\n"); trace_ds("> WriteStructuredField FileTransferData CloseAck\n"); obptr = obuf; space3270out(6); *obptr++ = AID_SF; SET16(obptr, 5); /* length */ *obptr++ = SF_TRANSFER_DATA; SET16(obptr, TR_CLOSE_REPLY); net_output(); } /* Abort a transfer. */ static void dft_abort(const char *s, unsigned short code) { Replace(abort_string, NewString(s)); trace_ds("> WriteStructuredField FileTransferData Error\n"); obptr = obuf; space3270out(10); *obptr++ = AID_SF; SET16(obptr, 9); /* length */ *obptr++ = SF_TRANSFER_DATA; *obptr++ = HIGH8(code); *obptr++ = TR_ERROR_REPLY; SET16(obptr, TR_ERROR_HDR); SET16(obptr, TR_ERR_CMDFAIL); net_output(); /* Update the pop-up and state. */ ft_aborting(); } /* Processes a Read Modified command when there is upload data pending. */ void dft_read_modified(void) { if (dft_savebuf_len) { trace_ds("> WriteStructuredField FileTransferData\n"); obptr = obuf; space3270out(dft_savebuf_len); memcpy(obptr, dft_savebuf, dft_savebuf_len); obptr += dft_savebuf_len; net_output(); } } /* Update the buffersize for generating a Query Reply. */ void set_dft_buffersize(void) { if (dft_buffersize == 0) { dft_buffersize = appres.dft_buffer_size; if (dft_buffersize == 0) dft_buffersize = DFT_BUF; } if (dft_buffersize > DFT_MAX_BUF) dft_buffersize = DFT_MAX_BUF; if (dft_buffersize < DFT_MIN_BUF) dft_buffersize = DFT_MIN_BUF; } #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/NO-INSTALL.txt0000644000175000017500000000525111254565671016303 0ustar bastianbastianRunning wc3270 Without Installing It ------------------------------------ It is possible to run wc3270 without installing it. This allows it to be run from a USB flash drive or CD without modifying the system it is run on, or to be bundled with another application without needing to include the full wc3270 installation. When wc3270.exe or wc3270wiz.exe are run without doing a full software installation, they will not use the wc3270 Application Data directory. Instead, keymaps will be searched for in the working directory first, then in the directory where the executable file is. wc3270wiz.exe will write new keymaps to the working directory. wc3270 trace files will be written to the working directory as well. A new feature, auto-shortcut mode, also facilitates installation-free execution. Auto-shortcut mode is controlled by the wc3270.autoShortcut resource. If this resource is set to True in a session file or via the -S command-line option, then wc3270.exe will automatically create a temporary shortcut file (.LNK file) that matches the parameters in a session file (model number, character set, font, etc.) and re-run itself from the shortcut. (Without auto-shortcut mode, wc3270.exe will generally run as a Model 2 in a 25x80 console window, using the system default ANSI code page, and the system default font, which is usually not a Unicode font and thus cannot display all of the EBCDIC characters.) Note that auto-shortcut mode is set in all session files created by the Session Wizard, starting with version 3.3.10. Also note that all shortcuts created by the Session Wizard and by wc3270 itself as part of auto-shortcut mode include the +S command-line switch, to turn auto-shortcut mode off and avoid infinite looping. Thus, the easiest way to create a 'standalone' copy of wc3270 is to simply create a session file with the Session Wizard. Then you can run wc3270 via a 1-line .BAT file (substituting your session name for the session file): wc3270.exe xxx.wc3270 This command can also be passed to the 'system' library call from an application. Only wc3270.exe and the session file need to be present on the flash drive or copied to the target system. Note that custom keymaps can still be used in no-install mode. Keymap files can either be placed in the same directory as wc3270.exe, or the definitions can be included in the session file via a Session Wizard option ('Embed Keymaps'). Note also that it is possible to create a session file that does not specify a hostname. This allows the creation of session files that define things like the model number and character set, but allow the hostname to be entered interactively. ibm-3270-3.3.10ga4/wc3270/ansic.h0000644000175000017500000000453411254565704015370 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ansic.h * Global declarations for ansi.c. */ #if defined(X3270_ANSI) /*[*/ extern void ansi_init(void); extern void ansi_process(unsigned int c); extern void ansi_send_clear(void); extern void ansi_send_down(void); extern void ansi_send_home(void); extern void ansi_send_left(void); extern void ansi_send_pa(int nn); extern void ansi_send_pf(int nn); extern void ansi_send_right(void); extern void ansi_send_up(void); extern void ansi_snap(void); extern void ansi_snap_modes(void); extern void toggle_lineWrap(struct toggle *t, enum toggle_type type); #else /*][*/ #define ansi_init() #define ansi_process(n) #define ansi_send_clear() #define ansi_send_down() #define ansi_send_home() #define ansi_send_left() #define ansi_send_pa(n) #define ansi_send_pf(n) #define ansi_send_right() #define ansi_send_up() #define ansi_snap() #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/ft_cut_ds.h0000644000175000017500000000727411254565704016251 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Data Stream definitions for CUT-style file transfers. */ /* Primary Area */ #define O_FRAME_TYPE 0 /* offset to frame type */ #define FT_CONTROL_CODE 0xc3 /* frame type: control code (host->) */ #define O_CC_FRAME_SEQ 1 /* offset to frame sequence */ #define O_CC_STATUS_CODE 2 /* offset to status code */ #define SC_HOST_ACK 0x8181 /* ack of IND$FILE command */ #define SC_XFER_COMPLETE 0x8189 /* file transfer complete */ #define SC_ABORT_FILE 0x8194 /* abort, file error */ #define SC_ABORT_XMIT 0x8198 /* abort, transmission error */ #define O_CC_MESSAGE 4 /* offset of message text */ #define FT_DATA_REQUEST 0xc2 /* frame type: data request (host->) */ #define O_DR_SF 1 /* offset to start field */ #define O_DR_DATA_CODE 2 /* offset to data code */ #define O_DR_FRAME_SEQ 3 /* offset to frame sequence */ #define FT_RETRANSMIT 0x4c /* frame type: retransmit (host->) */ #define FT_DATA 0xc1 /* frame type: data (bidirectional) */ #define O_DT_FRAME_SEQ 1 /* offset to frame sequence */ #define O_DT_CSUM 2 /* offset to checksum */ #define O_DT_LEN 3 /* offset to length */ #define O_DT_DATA 5 /* offset to data */ /* Response Area */ #define O_RESPONSE 1914 /* offset to response area */ #define RO_FRAME_TYPE (O_RESPONSE+1) /* response frame type */ #define RFT_RETRANSMIT 0x4c /* response frame type: retransmit */ #define RFT_CONTROL_CODE 0xc3 /* response frame type: control code */ #define RO_FRAME_SEQ (O_RESPONSE+2) /* response frame sequence */ #define RO_REASON_CODE (O_RESPONSE+3) /* response reason code */ /* Special Data */ #define EOF_DATA1 0x5c /* special data for EOF */ #define EOF_DATA2 0xa9 /* Acknowledgement AIDs */ #define ACK_OK AID_ENTER #define ACK_RETRANSMIT AID_PF1 #define ACK_RESYNC_VM AID_CLEAR #define ACK_RESYNC_TSO AID_PA2 #define ACK_ABORT AID_PF2 /* Data area for uploads. */ #define O_UP_DATA_CODE 2 /* offset to data code */ #define O_UP_FRAME_SEQ 3 /* offset to frame sequence */ #define O_UP_CSUM 4 /* offset to checksum */ #define O_UP_LEN 5 /* offset to length */ #define O_UP_DATA 7 /* offset to start of data */ #define O_UP_MAX (1919 - O_UP_DATA) /* max upload data */ ibm-3270-3.3.10ga4/wc3270/trace_dsc.h0000644000175000017500000000505511254565704016221 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * trace_dsc.h * Global declarations for trace_ds.c. */ #if defined(X3270_TRACE) /*[*/ extern Boolean trace_skipping; extern char *tracefile_name; const char *rcba(int baddr); void toggle_dsTrace(struct toggle *t, enum toggle_type tt); void toggle_eventTrace(struct toggle *t, enum toggle_type tt); void toggle_screenTrace(struct toggle *t, enum toggle_type tt); void trace_ansi_disc(void); void trace_char(char c); void trace_ds(const char *fmt, ...) printflike(1, 2); void trace_ds_nb(const char *fmt, ...) printflike(1, 2); void trace_dsn(const char *fmt, ...) printflike(1, 2); void trace_event(const char *fmt, ...) printflike(1, 2); void trace_screen(void); void trace_rollover_check(void); #else /*][*/ #define rcba 0 && #if defined(__GNUC__) /*[*/ #define trace_ds(format, args...) #define trace_dsn(format, args...) #define trace_ds_nb(format, args...) #define trace_event(format, args...) #else /*][*/ #define trace_ds 0 && #define trace_ds_nb 0 && #define trace_dsn 0 && #define trace_event 0 && #define rcba 0 && #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/actionsc.h0000644000175000017500000000465711254565704016104 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * actionsc.h * Global declarations for actions.c. */ /* types of internal actions */ enum iaction { IA_STRING, IA_PASTE, IA_REDRAW, IA_KEYPAD, IA_DEFAULT, IA_KEY, IA_MACRO, IA_SCRIPT, IA_PEEK, IA_TYPEAHEAD, IA_FT, IA_COMMAND, IA_KEYMAP, IA_IDLE }; extern enum iaction ia_cause; extern int actioncount; extern XtActionsRec *actions; extern const char *ia_name[]; #if defined(X3270_TRACE) /*[*/ extern void action_debug(XtActionProc action, XEvent *event, String *params, Cardinal *num_params); #else /*][*/ #define action_debug(a, e, p, n) #endif /*]*/ extern void action_init(void); extern void action_internal(XtActionProc action, enum iaction cause, const char *parm1, const char *parm2); extern const char *action_name(XtActionProc action); extern int check_usage(XtActionProc action, Cardinal nargs, Cardinal nargs_min, Cardinal nargs_max); extern Boolean event_is_meta(int state); ibm-3270-3.3.10ga4/wc3270/catf.c0000644000175000017500000000645711254565671015214 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * catf.c * A Windows console-based 3270 Terminal Emulator * A subset of the Unix 'tail -f' command. */ #include #include #include #include #define BUFFER_SIZE 16384 static int catf(char *filename); int main(int argc, char *argv[]) { int rv; if (argc != 2) { fprintf(stderr, "usage: catf \n"); exit(1); } do { rv = catf(argv[1]); } while (rv == 0); exit(1); } /* * Tail the file. * Returns -1 for error, 0 for retry (file shrank or possibly disappeared). */ static int catf(char *filename) { int fd; struct stat buf; off_t size; off_t fp = 0; char rbuf[BUFFER_SIZE]; wchar_t rbuf_w[BUFFER_SIZE]; fd = open(filename, O_RDONLY | O_BINARY); if (fd < 0) { perror(filename); return -1; } if (fstat(fd, &buf) < 0) { perror(filename); return -1; } size = buf.st_size; for (;;) { while (fp < size) { int n2r, nr; BOOL udc; if (size - fp > BUFFER_SIZE) n2r = BUFFER_SIZE; else n2r = size - fp; nr = read(fd, rbuf, n2r); if (nr < 0) { perror(filename); close(fd); return 0; } if (nr == 0) { printf("\nUNEXPECTED EOF\n"); close(fd); return 0; } /* Translate ANSI to OEM. */ (void) MultiByteToWideChar(CP_ACP, 0, rbuf, nr, rbuf_w, BUFFER_SIZE); (void) WideCharToMultiByte(CP_OEMCP, 0, rbuf_w, BUFFER_SIZE, rbuf, nr, "?", &udc); (void) write(1, rbuf, nr); fp += nr; } do { if (fstat(fd, &buf) < 0) { perror(filename); return -1; } if (buf.st_size < size) { printf("\ncatf: '%s' shrank -- reopening\n", filename); close(fd); return 0; } if (buf.st_size == size) Sleep(1 * 1000); } while (buf.st_size == size); size = buf.st_size; } } ibm-3270-3.3.10ga4/wc3270/objects.h0000644000175000017500000000346311254565704015724 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * objects.h * x3270 object names. */ #define ObjConfirmButton "confirmButton" #define ObjConfirm2Button "confirm2Button" #define ObjCancelButton "cancelButton" #define ObjDialog "dialog" #define ObjSmallLabel "smallLabel" #define ObjNameLabel "nameLabel" #define ObjDataLabel "dataLabel" ibm-3270-3.3.10ga4/wc3270/appres.h0000644000175000017500000001527511254565704015571 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * appres.h * Application resource definitions for x3270, c3270, s3270 and * tcl3270. */ /* Toggles */ enum toggle_type { TT_INITIAL, TT_INTERACTIVE, TT_ACTION, TT_FINAL }; struct toggle { Boolean value; /* toggle value */ Boolean changed; /* has the value changed since init */ Widget w[2]; /* the menu item widgets */ const char *label[2]; /* labels */ void (*upcall)(struct toggle *, enum toggle_type); /* change value */ }; #define MONOCASE 0 #define ALT_CURSOR 1 #define CURSOR_BLINK 2 #define SHOW_TIMING 3 #define CURSOR_POS 4 #if defined(X3270_TRACE) /*[*/ #define DS_TRACE 5 #endif /*]*/ #define SCROLL_BAR 6 #if defined(X3270_ANSI) /*[*/ #define LINE_WRAP 7 #endif /*]*/ #define BLANK_FILL 8 #if defined(X3270_TRACE) /*[*/ #define SCREEN_TRACE 9 #define EVENT_TRACE 10 #endif /*]*/ #define MARGINED_PASTE 11 #define RECTANGLE_SELECT 12 #if defined(X3270_DISPLAY) /*[*/ #define CROSSHAIR 13 #define VISIBLE_CONTROL 14 #endif /*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ #define AID_WAIT 15 #endif /*]*/ #if defined(C3270) /*[*/ #define UNDERSCORE 16 #endif /*]*/ #define N_TOGGLES 17 #define toggled(ix) (appres.toggle[ix].value) #define toggle_toggle(t) \ { (t)->value = !(t)->value; (t)->changed = True; } /* Application resources */ typedef struct { /* Basic colors */ #if defined(X3270_DISPLAY) /*[*/ Pixel foreground; Pixel background; #endif /*]*/ /* Options (not toggles) */ #if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) /*[*/ Boolean mono; #endif /*]*/ Boolean extended; Boolean m3279; Boolean modified_sel; Boolean once; #if defined(X3270_DISPLAY) || (defined(C3270) && defined(_WIN32)) /*[*/ Boolean visual_bell; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ Boolean menubar; Boolean active_icon; Boolean label_icon; Boolean invert_kpshift; Boolean use_cursor_color; Boolean allow_resize; Boolean no_other; Boolean visual_select; Boolean suppress_host; Boolean suppress_font_menu; # if defined(X3270_KEYPAD) /*[*/ Boolean keypad_on; # endif /*]*/ #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ Boolean do_confirms; Boolean reconnect; #endif /*]*/ #if defined(C3270) /*[*/ Boolean all_bold_on; Boolean curses_keypad; Boolean cbreak_mode; Boolean no_prompt; #if !defined(_WIN32) /*[*/ Boolean reverse_video; #endif /*]*/ #if defined(_WIN32) /*[*/ Boolean auto_shortcut; #endif /*]*/ #endif /*]*/ Boolean apl_mode; Boolean scripted; Boolean numeric_lock; Boolean secure; Boolean oerr_lock; Boolean typeahead; Boolean debug_tracing; Boolean disconnect_clear; Boolean highlight_bold; Boolean color8; Boolean bsd_tm; Boolean unlock_delay; #if defined(X3270_SCRIPT) /*[*/ Boolean socket; int script_port; #endif /*]*/ /* Named resources */ #if defined(X3270_KEYPAD) /*[*/ char *keypad; #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ char *key_map; char *compose_map; char *printer_lu; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ char *efontname; char *fixed_size; char *icon_font; char *icon_label_font; int save_lines; char *normal_name; char *select_name; char *bold_name; char *colorbg_name; char *keypadbg_name; char *selbg_name; char *cursor_color_name; char *color_scheme; int bell_volume; char *char_class; int modified_sel_color; int visual_select_color; #if defined(X3270_DBCS) /*[*/ char *input_method; char *preedit_type; #endif /*]*/ #endif /*]*/ #if defined(X3270_DBCS) /*[*/ char *dbcs_cgcsgid; #endif /*]*/ #if defined(C3270) /*[*/ char *meta_escape; char *all_bold; char *altscreen; char *defscreen; Boolean acs; Boolean ascii_box_draw; # if !defined(_WIN32) /*[*/ Boolean mouse; # endif /*]*/ #endif /*]*/ char *conf_dir; char *model; char *hostsfile; char *port; char *charset; char *sbcs_cgcsgid; char *termname; char *login_macro; char *macros; #if defined(X3270_TRACE) /*[*/ char *trace_dir; char *trace_file; char *screentrace_file; char *trace_file_size; # if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ Boolean trace_monitor; # endif /*]*/ #endif /*]*/ char *oversize; #if defined(X3270_FT) /*[*/ char *ft_command; int dft_buffer_size; #endif /*]*/ char *connectfile_name; char *idle_command; Boolean idle_command_enabled; char *idle_timeout; #if defined(X3270_SCRIPT) /*[*/ char *plugin_command; #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ char *cert_file; #endif /*]*/ char *proxy; #if defined(TCL3270) /*[*/ int command_timeout; #endif /*]*/ int unlock_delay_ms; /* Toggles */ struct toggle toggle[N_TOGGLES]; #if defined(X3270_DISPLAY) /*[*/ /* Simple widget resources */ Cursor normal_mcursor; Cursor wait_mcursor; Cursor locked_mcursor; #endif /*]*/ #if defined(X3270_ANSI) /*[*/ /* Line-mode TTY parameters */ Boolean icrnl; Boolean inlcr; Boolean onlcr; char *erase; char *kill; char *werase; char *rprnt; char *lnext; char *intr; char *quit; char *eof; #endif /*]*/ char *hostname; #if defined(WC3270) /*[*/ char *title; #endif /*]*/ #if defined(WS3270) /*[*/ int local_cp; #endif /*]*/ #if defined(USE_APP_DEFAULTS) /*[*/ /* App-defaults version */ char *ad_version; #endif /*]*/ } AppRes, *AppResptr; extern AppRes appres; ibm-3270-3.3.10ga4/wc3270/html/0000755000175000017500000000000011261530022015037 5ustar bastianbastianibm-3270-3.3.10ga4/wc3270/html/wc3270-man.html0000644000175000017500000015216611261530011017434 0ustar bastianbastian wc3270 Manual Page

wc3270 Manual Page

Contents

Name
Synopsis
Description
Options
Modes
Character Sets
NVT (ANSI) Mode
Toggles
Status Line
Actions
Keymaps
File Transfer
The PrintText Action
Nested Scripts
Printer Support
Proxy
Resources
See Also
Copyrights
Version

Name

wc3270 - IBM host access tool

Synopsis

wc3270 [options] [host]
wc3270 [options] session-file.wc3270

Description

wc3270 opens a telnet connection to an IBM host in a console window. It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection), and supports IND$FILE file transfer.

The full syntax for host is:

[prefix:]...[LUname@]hostname[:port]

Prepending an S: onto hostname removes the "extended data stream" option reported to the host. See -tn below for further information.

Prepending an N: onto hostname turns off TN3270E support for the session.

Prepending an L: onto hostname causes wc3270 to first create an SSL tunnel to the host, and then create a TN3270 session inside the tunnel. (This function is supported only if wc3270 was built with SSL/TLS support). Note that TLS-encrypted sessions using the TELNET START-TLS option are negotiated with the host automatically; for these sessions the L: prefix should not be used.

A specific Logical Unit (LU) name to use may be specified by prepending it to the hostname with an `@'. Multiple LU names to try can be separated by commas. An empty LU can be placed in the list with an extra comma. (Note that the LU name is used for different purposes by different kinds of hosts. For example, CICS uses the LU name as the Terminal ID.)

The hostname may optionally be placed inside square-bracket characters `[' and `]'. This will prevent any colon `:' characters in the hostname from being interpreted as indicating option prefixes or port numbers. This allows numeric IPv6 addresses to be used as hostnames.

The port to connect to defaults to telnet. This can be overridden with the -port option, or by appending a port to the hostname with a colon `:'. (For compatability with previous versions of wc3270 and with tn3270(1), the port may also be specified as a second, separate argument.)

Options

wc3270 understands the following options:
-allbold
Forces all characters to be displayed using the `bold' colors (colors 8 through 15, rather than colors 0 through 7). This helps with PC console windows in which colors 0 through 7 are unreadably dim. All-bold mode is the default for color (3279) emulation, but not for monochrome (3278) emulation.
-charset name
Specifies an EBCDIC host character set. See CHARACTER SETS below.
-clear toggle
Sets the initial value of toggle to false. The list of toggle names is under TOGGLES below.
-model name
The model of 3270 display to be emulated. The model name is in two parts, either of which may be omitted:

The first part is the base model, which is either 3278 or 3279. 3278 specifies a monochrome (green on black) 3270 display; 3279 specifies a color 3270 display.

The second part is the model number, which specifies the number of rows and columns. Model 4 is the default.

Model Number
Columns
Rows
2
80
24
3
80
32
4
80
43
5
132
27

Note: Technically, there is no such 3270 display as a 3279-4 or 3279-5, but most hosts seem to work with them anyway.

The default model is 3278-4.

-mono
Prevents wc3270 from using color, ignoring any color capabilities reported by the terminal.
-noprompt
Disables command-prompt mode.
-oversize colsxrows
Makes the screen larger than the default for the chosen model number. This option has effect only in combination with extended data stream support (controlled by the "wc3270.extended" resource), and only if the host supports the Query Reply structured field. The number of columns multiplied by the number of rows must not exceed 16383 (3fff hex), the limit of 14-bit 3270 buffer addressing.

It can also be specified as auto, which causes wc3270 to fill the entire terminal or console window.

-port n
Specifies a different TCP port to connect to. n can be a name from /etc/services like telnet, or a number. This option changes the default port number used for all connections. (The positional parameter affects only the initial connection.)
-proxy type:host[:port]
Causes wc3270 to connect via the specified proxy, instead of using a direct connection. The host can be an IP address or hostname. The optional port can be a number or a service name. For a list of supported proxy types, see PROXY below.
-reconnect
Causes wc3270 to automatically reconnect to the host if it ever disconnects. This option has effect only if a hostname is specified on the command line.
-S
Runs wc3270 in auto-shortcut mode. wc3270 will create a temporary shorcut (.LNK file) that matches the parameters in the session file (model number, characterset, etc.) and re-run itself from the shortcut.
+S
Disables auto-shortcut mode. It is generally a good idea to put this option on the command lines of all shortcuts, to avoid infinite looping.
-scriptport port
Causes wc3270 to listen for scripting connections on local TCP port port.
-set toggle
Sets the initial value of toggle to true. The list of toggle names is under TOGGLES below. The -p option of x3270if causes it to use this socket, instead of pipes specified by environment variables.
-title text
Sets the console window title to text, overriding the automatic setting of the hostname and the string wc3270.
-tn name
Specifies the terminal name to be transmitted over the telnet connection. The default name is IBM-model_name-E, for example, IBM-3278-4-E.

Some hosts are confused by the -E suffix on the terminal name, and will ignore the extra screen area on models 3, 4 and 5. Prepending an s: on the hostname, or setting the "wc3270.extended" resource to "false", removes the -E from the terminal name when connecting to such hosts.

The name can also be specified with the "wc3270.termName" resource.

-trace
Turns on data stream and event tracing at startup. The default trace file name is x3trc.process_id.txt in the wc3270 Application Data directory.
-tracefile file
Specifies a file to save data stream and event traces into.
-tracefilesize size
Places a limit on the size of a trace file. If this option is not specified, or is specified as 0 or none, the trace file will be unlimited. If specified, the trace file cannot already exist, and the (silently enforced) minimum size is 64 Kbytes. The value of size can have a K or M suffix, indicating kilobytes or megabytes respectively.
-v Display the version and build options for wc3270
and exit.
-xrm "wc3270.resource: value"
Sets the value of the named resource to value. Resources control less common wc3270 options, and are defined under RESOURCES below.

Modes

wc3270 has two basic modes: command-prompt and session.

Command-prompt mode is where the wc3270> prompt is displayed. Interactive commands can be entered at this prompt, to connect to a host, disconnect from a host, transfer files, display statistics, exit wc3270, etc. The complete list of interactive commands is listed under ACTIONS.

Session mode is where the emulated 3270 screen is displayed; keyboard commands cause the display buffer to be modified or data to be sent to the host.

To switch from display mode to command-prompt mode, press the Escape key. To switch from command-prompt mode to display mode, press Enter (without entering a command) at the wc3270> prompt.

Character Sets

The -charset option or the "wc3270.charset" resource controls the EBCDIC host character set used by wc3270. Available sets include:

Charset Name
Host Code Page
belgian
500
belgian-euro
1148
bracket
037
brazilian
275
chinese-gb18030
1388
cp1047
1047
cp870
870
finnish
278
finnish-euro
1143
french
297
french-euro
1147
german
273
german-euro
1141
greek
423
hebrew
424
icelandic
871
icelandic-euro
1149
italian
280
italian-euro
1144
japanese-kana
930
japanese-latin
939
norwegian
277
norwegian-euro
1142
russian
880
simplified-chinese
935
slovenian
870
spanish
284
spanish-euro
1145
thai
1160
traditional-chinese
937
turkish
1026
uk
285
uk-euro
1146
us-euro
1140
us-intl
037

The default character set is bracket, which is useful for common U.S. IBM hosts which use EBCDIC codes AD and BD for the `[' and `]' characters, respectively.

Note that any of the host code pages listed above can be specified by adding cp to the host code page, e.g., cp037 for host code page 037. Also note that the code pages available for a given version of wc3270 are displayed by the -v command-line option.

Note that DBCS character sets (Chinese, Japanese) display properly only on 32-bit Windows XP. Work is proceeding on other platforms.

NVT (ANSI) Mode

Some hosts use an ASCII front-end to do initial login negotiation, then later switch to 3270 mode. wc3270 will emulate an ANSI X.64 terminal until the host places it in 3270 mode (telnet BINARY and SEND EOR modes, or TN3270E mode negotiation).

If the host later negotiates to stop functioning in 3270 mode, wc3270 will return to ANSI emulation.

In NVT mode, wc3270 supports both character-at-a-time mode and line mode operation. You may select the mode with a menu option. When in line mode, the special characters and operational characteristics are defined by resources:

Mode/Character Resource Default
Translate CR to NL wc3270.icrnl true
Translate NL to CR wc3270.inlcr false
Erase previous character wc3270.erase ^?
Erase entire line wc3270.kill ^U
Erase previous word wc3270.werase ^W
Redisplay line wc3270.rprnt ^R
Ignore special meaning of next character wc3270.lnext ^V
Interrupt wc3270.intr ^C
Quit wc3270.quit ^\
End of file wc3270.eof ^D

Separate keymaps can be defined for use only when wc3270 is in 3270 mode or NVT mode. See KEYMAPS for details.

Toggles

wc3270 has a number of configurable modes which may be selected by the -set and -clear options.
monoCase
If set, wc3270 operates in uppercase-only mode.
blankFill
If set, wc3270 behaves in some un-3270-like ways. First, when a character is typed into a field, all nulls in the field to the left of that character are changed to blanks. This eliminates a common 3270 data-entry surprise. Second, in insert mode, trailing blanks in a field are treated like nulls, eliminating the annoying `lock-up' that often occurs when inserting into an field with (apparent) space at the end.
lineWrap
If set, the ANSI terminal emulator automatically assumes a NEWLINE character when it reaches the end of a line.
marginedPaste
If set, pasting multi-line input via the Paste action will maintain a left margin (it will not move the cursor further left than where the paste begins).
underscore
If set, wc3270 will display underlined fields by substituting underscore `_' characters for blanks or nulls in the field. Otherwise, these fields will be displayed with a highlighted background. Note that setting underscore also disables the highlighted background for blinking fields. underscore is set by default.

The names of the toggles for use with the -set and -clear options are as follows:

Option Name
Monocase monoCase
Blank Fill blankFill
Track Cursor cursorPos
Trace Data Stream dsTrace
Trace Events eventTrace
Save Screen(s) in File screenTrace
Wraparound lineWrap
Paste with Left Margin marginedPaste
Underscore Mode underscore

These names are also used as the first parameter to the Toggle action.

Status Line

The wc3270 status line contains a variety of information. From left to right, the fields are:
comm status
The first symbol is always a 4. If wc3270 is in TN3270E mode, the second symbol is a B; otherwise it is an A. If wc3270 is in SSCP-LU mode, the third symbol is an S. Otherwise it is blank.
keyboard lock
If the keyboard is locked, an "X" symbol and a message field indicate the reason for the keyboard lock.
typeahead
The letter "T" indicates that one or more keystrokes are in the typeahead buffer.
temporary keymap
The letter "K" indicates that a temporary keymap is in effect.
reverse
The letter "R" indicates that the keyboard is in reverse field entry mode.
insert mode
The letter "I" indicates that the keyboard is in insert mode.
printer session
The letter "P" indicates that a pr3287 session is active.
secure connection
A green letter "S" indicates that the connection is secured via SSL/TLS.
LU name
The LU name associated with the session, if there is one.
cursor position
The cursor row and column are optionally displayed, separated by a "/".

Actions

Here is a complete list of basic wc3270 actions. Script-specific actions are described on the x3270-script(1) manual page.

Actions marked with an asterisk (*) may block, sending data to the host and possibly waiting for a response.

*Attn attention key
BackSpace move cursor left (or send ASCII BS)
BackTab tab to start of previous input field
CircumNot input "^" in NVT mode, or "¬" in 3270 mode
*Clear clear screen
Cols report screen size
Compose next two keys form a special symbol
*Connect(host) connect to host
*CursorSelect Cursor Select AID
Delete delete character under cursor (or send ASCII DEL)
DeleteField delete the entire field
DeleteWord delete the current or previous word
*Disconnect disconnect from host
Down move cursor down
Dup duplicate field
*Enter Enter AID (or send ASCII CR)
Erase erase previous character (or send ASCII BS)
EraseEOF erase to end of current field
EraseInput erase all input fields
Execute(cmd) execute a command in a shell
FieldEnd move cursor to end of field
FieldMark mark field
HexString(hex_digits) insert control-character string
Home move cursor to first input field
Insert set insert mode
*Interrupt send TELNET IP to host
Key(keysym) insert key keysym
Key(0xxx) insert key with character code xx
Left move cursor left
Left2 move cursor left 2 positions
MonoCase toggle uppercase-only mode
MoveCursor(row, col) move cursor to (row,col)
Newline move cursor to first field on next line (or send ASCII LF)
NextWord move cursor to next word
*PA(n) Program Attention AID (n from 1 to 3)
*PF(n) Program Function AID (n from 1 to 24)
PreviousWord move cursor to previous word
Paste insert clipboard contents
Printer(Start[,lu]|Stop) start or stop printer session
PrintText([printer-name]) print screen text on printer
Quit exit wc3270
Redraw redraw window
Reset reset locked keyboard
Right move cursor right
Right2 move cursor right 2 positions
Rows report screen size
*Script(command[,arg...]) run a script
*String(string) insert string (simple macro facility)
*SysReq System Request AID
Tab move cursor to next input field
Toggle(option[,set|clear]) toggle an option
ToggleInsert toggle insert mode
ToggleReverse toggle reverse-input mode
*Transfer(option=value...) file transfer
Up move cursor up

Any of the above actions may be entered at the wc3270> prompt; these commands are also available for use in keymaps (see KEYMAPS). Command names are case-insensitive. Parameters can be specified with parentheses and commas, e.g.:

PF(1)
or with spaces, e.g.:
PF 1
Parameters can be quoted with double-quote characters, to allow spaces, commas, and parentheses to be used.

wc3270 also supports the following interactive commands:

Help
Displays a list of available commands.
Show
Displays statistics and settings.
Trace
Turns tracing on or off. The command trace on enables data stream and keyboard event tracing; the command trace off disables it. The qualifier data or keyboard can be specified before on or off to enable or disable a particular trace. After on, a filename may be specified to override the default trace file name of /tmp/x3trc.pid.

Keymaps

The -keymap option or the wc3270.keymap resource allow a custom keymap to be specified. If the option -keymap xxx is given (or the wc3270.keymap resource has the value xxx), wc3270 will look for a resource named wc3270.keymap.xxx. If no resource definition is found, it will look for a file named xxx.wc3270km.

Multiple keymaps may be specified be separating their names with commas. Definitions in later keymaps supercede those in earlier keymaps.

In addition, separate keymaps may be defined that apply only in 3270 mode or NVT mode. For example, the resource definition wc3270.keymap.xxx.nvt or the file xxx.nvt.wc3270km will augment the definition of keymap xxx in NVT mode. Similarly, the resource definition wc3270.keymap.xxx.3270 or the file xxx.3270.wc3270km will augment the definition of keymap xxx in 3270 mode.

Each line (rule) in a keymap specifies actions to perform when a particular key or sequence of keys is pressed. Keymap rules have the following syntax:

[modifier...]<Key>key...: action[(param[,...])] ...

Here is a sample keymap definition from a file:

! Lines beginning with ! are ignored and can
! occur anywhere.
! The line below will be displayed
! by the New Session Wizard.
!description: An example.
! Definition of keymap xxx
!  When Alt-c is pressed, clear the screen.
Alt<Key>c: Clear()
!  When PageUp is pressed, send PF7 to the host.
<Key>PRIOR: PF(7)
!  When Ctrl-a is pressed, then F1, send PF13
!  to the host.
Ctrl<Key>a <Key>F1: PF(13)

Here is the same definition as a resource:

! Lines beginning with ! are ignored, but NOT
! within a definition.
! Note that the \ is required at the end of the
! first line, and \n\ is
! required at the end of every other line except
! the last.
! Definition of keymap xxx
wc3270.keymap.xxx: \
 Alt<Key>c: Clear() \n\
 <Key>PRIOR: PF(7) \n\
 Ctrl<Key>A <Key>F1: PF(13)

The optional Shift, Alt or Ctrl modifiers specify that the Shift, Alt and Ctrl keys are pressed along with the specified key, respectively. The LeftCtrl, RightCtrl, LeftAlt, and RightAlt modifiers specifify a particular Ctrl or Alt key. The Enhanced modifier is also available; Enhanced <Key>ENTER is the keypad Enter key. Key is either an ISO 8859-1 symbol name, such as equal for `=' and a for `a', or a symbolic Windows key name, such as UP. More than one key can be specified, indicating that a sequence of keys must be pressed in order for the rule to be matched. The action is an action from the ACTIONS list above. More than one action may be specified; they will be executed in order.

Keymap entries are case-sensitive and modifier-specific. This means that a keymap for the b key will match only a lowercase b. Actions for uppercase B, or for Alt-b or Control-B, must be specified separately.

Available symbolic key names are: ADD, ALT, APPS, BACK (Backspace), CLEAR, CTRL, DECIMAL, DELETE, DIVIDE, DOWN, END, Enter (alias for RETURN), ESCAPE, EXECUTE, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, F21, F22, F23, F24, HELP, HOME, INSERT, LEFT, LMENU, LWIN (Left Windows key), MULTIPLY, NEXT (Page Down), NUMLOCK, NUMPAD0, NUMPAD1, NUMPAD2, NUMPAD3, NUMPAD4, NUMPAD5, NUMPAD6, NUMPAD7, NUMPAD8, NUMPAD9, PageUp (alias for PRIOR), PageDown (alias for Next), PAUSE, PRINT, PRIOR (Page Up), RETURN (Enter), RIGHT, RMENU, RWIN (Right Windows key), SCROLL, SELECT, SEPARATOR, SHIFT, SLEEP, SNAPSHOT, SUBTRACT, TAB and UP.

The base keymap is:

Key Action
Alt<Key>1 PA(1)
Alt<Key>2 PA(2)
Alt<Key>3 PA(3)
Alt Ctrl<Key>] Key(0x1d)
Ctrl<Key>] Escape
Alt<Key>^ Key(notsign)
Alt<Key>c Clear
Alt<Key>l Redraw
Alt<Key>m Compose
Alt<Key>p PrintText
Shift<Key>Fn PF(n+12)

The base 3270-mode keymap adds:

Key Action
Ctrl<Key>a Attn
Alt<Key>a Attn
Ctrl<Key>c Clear
Ctrl<Key>d Dup
Alt<Key>d Dup
Ctrl<Key>f FieldMark
Alt<Key>f FieldMark
Ctrl<Key>h Erase
Alt<Key>i Insert
Shift Ctrl<Key>i BackTab
Ctrl<Key>i Tab
Ctrl<Key>j Newline
Ctrl<Key>l Redraw
Ctrl<Key>m Enter
Ctrl<Key>r Reset
Alt<Key>r Reset
Ctrl<Key>u DeleteField
Ctrl<Key>v Paste
<Key>INSERT ToggleInsert
Shift<Key>TAB BackTab
<Key>BACK Erase
Shift<Key>END EraseEOF
<Key>END FieldEnd
Shift<Key>LEFT PreviousWord
Shift<Key>RIGHT NextWord
<Key>PRIOR PF(7)
<Key>NEXT PF(8)

File Transfer

The Transfer action implements IND$FILE file transfer. This action requires that the IND$FILE program be installed on the IBM host, and that the 3270 cursor be located in a field that will accept a TSO or VM/CMS command.

The Transfer action can be entered at the command prompt with no parameters, which will cause it to prompt interactively for the file names and options. It can also be invoked with parameters to define the entire transfer.

Because of the complexity and number of options for file transfer, the parameters to the Transfer action take the unique form of option=value, and can appear in any order. Note that if the value contains spaces (such as a VM/CMS file name), then the entire parameter must be quoted, e.g., "HostFile=xxx foo a". The options are:

Option Required? Default Other Values
Direction No receive send
HostFile Yes    
LocalFile Yes    
Host No tso vm
Mode No ascii binary
Cr No remove add, keep
Remap No yes no
Exist No keep replace, append
Recfm No   fixed, variable, undefined
Lrecl No    
Blksize No    
Allocation No   tracks, cylinders, avblock
PrimarySpace No    
SecondarySpace No    
BufferSize No 4096  

The option details are as follows.

Direction
send to send a file to the host, receive to receive a file from the host.
HostFile
The name of the file on the host.
LocalFile
The name of the file on the local workstation.
Host
The type of host (which dictates the form of the IND$FILE command): tso (the default) or vm.
Mode
Use ascii (the default) for a text file, which will be translated between EBCDIC and ASCII as necessary. Use binary for non-text files.
Cr
Controls how Newline characters are handled when transferring Mode=ascii files. remove (the default) strips Newline characters in local files before transferring them to the host. add adds Newline characters to each host file record before transferring it to the local workstation. keep preserves Newline characters when transferring a local file to the host.
Remap
Controls text translation for Mode=ascii files. The value yes (the default) causes wc3270 to remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page. The value no causes wc3270 to pass the text to or from the host as-is, leaving all translation to the IND$FILE program on the host.
Exist
Controls what happens when the destination file already exists. keep (the default) preserves the file, causing the Transfer action to fail. replace overwrites the destination file with the source file. append appends the source file to the destination file.
Recfm
Controls the record format of files created on the host. fixed creates a file with fixed-length records. variable creates a file with variable-length records. undefined creates a file with undefined-length records (TSO hosts only). The Lrecl option controls the record length or maximum record length for Recfm=fixed and Recfm=variable files, respectively.
Lrecl
Specifies the record length (or maximum record length) for files created on the host.
Blksize
Specifies the block size for files created on the host. (TSO hosts only.)
Allocation
Specifies the units for the TSO host PrimarySpace and SecondarySpace options: tracks, cylinders or avblock.
PrimarySpace
Primary allocation for a file created on a TSO host. The units are given by the Allocation option.
SecondarySpace
Secondary allocation for a file created on a TSO host. The units are given by the Allocation option.
BufferSize
Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them.

The PrintText Action

The PrintText produces screen snapshots in a number of different forms. The default form wth no arguments sends a copy of the screen to the default printer. A single argument is the name of the printer to use. The font defaults to Courier New and the point size defaults to 8. These can be overridden by the printTextFont and printTextSize resources, respectively. Multiple arguments can include keywords to control the output of PrintText:
file filename
Save the output in a file.
html
Save the output as HTML. This option implies file.
rtf
Save the output as RichText. This option implies file. The font defaults to Courier New and the point size defaults to 8. These can be overridden by the printTextFont and printTextSize resources, respectively.
modi
Render modified fields in italics.
caption text
Add the specified text as a caption above the output. Within text, the special sequence %T% will be replaced with a timestamp.

Nested Scripts

The String Action
The simplest method for nested scripts is provided via the String action. The arguments to String are one or more double-quoted strings which are inserted directly as if typed. The C backslash conventions are honored as follows. (Entries marked * mean that after sending the AID code to the host, wc3270 will wait for the host to unlock the keyboard before further processing the string.)
\b Left
\exxxx EBCDIC character in hex
\f Clear*
\n Enter*
\pan PA(n)*
\pfnn PF(nn)*
\r Newline
\t Tab
\T BackTab
\uxxxx Unicode character in hex
\xxxxx Unicode character in hex

Note that the numeric values for the \e, \u and \x sequences can be abbreviated to 2 digits. Note also that EBCDIC codes greater than 255 and some Unicode character codes represent DBCS characters, which will work only if wc3270 is built with DBCS support and the host allows DBCS input in the current field.

An example keymap entry would be:

Alt<Key>p: String("probs clearrdr\n")

Note: The strings are in ASCII and converted to EBCDIC, so beware of inserting control codes.

There is also an alternate form of the String action, HexString, which is used to enter non-printing data. The argument to HexString is a string of hexadecimal digits, two per character. A leading 0x or 0X is optional. In 3270 mode, the hexadecimal data represent EBCDIC characters, which are entered into the current field. In NVT mode, the hexadecimal data represent ASCII characters, which are sent directly to the host.

The Script Action
This action causes wc3270 to start a child process which can execute wc3270 actions. wc3270 listens for connections from the child process on a dynamically-generated TCP port. The Script action is fully documented in x3270-script(1).

Printer Support

wc3270 supports associated printer sessions via the wpr3287(1) program. The Printer action is used to start or stop a wpr3287 session.

The action Printer Start starts a printer session, associated with the current LU. (This works only if the host supports TN3270E.)

The action Printer Start lu starts a printer session, associated with a specific lu.

The action Printer Stop stops a printer session.

The resource wc3270.printer.name specifies the Windows printer used to print each job. It defaults to the value of the $PRINTER environment variable, if set. Otherwise the default system printer is used. This resource also controls the printer used by the PrintText action.

The resource wc3270.printer.assocCommandLine specifies the command used to start an associated printer session. It defaults to:

wpr3287.exe -assoc %L% %R% %P% %H%

The resource wc3270.printer.luCommandLine specifies the command used to start a specific-LU printer session. It defaults to:

wpr3287.exe %R% %P% %L%@%H%

When the printer session command is run, the following substitutions are made:

Token Substitition
%H% Host IP address
%L% Current or specified LU
%P% Proxy specification
%R% Character set

See wpr3287(1) for further details.

The resource wc3270.printerLu controls automatic printer session start-up. If it is set to `.', then whenever a login session is started, a printer session will automatically be started, associated with the login session. If it is set an LU name, then the automatic printer session will be associated with the specified LU.

Proxy

The -proxy option or the wc3270.proxy resource causes wc3270 to use a proxy server to connect to the host. The syntax of the option or resource is:
type:host[:port]
The supported values for type are:
Proxy Type
Protocol
Default Port
http
RFC 2817 HTTP tunnel (squid)
3128
passthru
Sun in.telnet-gw
none
socks4
SOCKS version 4
1080
socks5
SOCKS version 5 (RFC 1928)
1080
telnet
No protocol (just send connect host port)
none

The special types socks4a and socks5d can also be used to force the proxy server to do the hostname resolution for the SOCKS protocol.

Resources

Certain wc3270 options can be configured via resources. Resources are defined in the session file, or by -xrm options. The definitions are similar to X11 resources, and use a similar syntax. The resources available in wc3270 are:

Resource Default Option Purpose
blankFill False -set blankFill Blank Fill mode
charset bracket -charset EBCDIC character set
consoleColorForHostColorn (note 6)   Color mapping
dbcsCgcsgid     Override DBCS CGCSGID
dsTrace False -trace Data stream tracing
eof ^D   NVT-mode EOF character
erase ^H   NVT-mode erase character
extended True   Use 3270 extended data stream
eventTrace False -trace Event tracing
hostColorForDefault green   Default color mapping
hostColorForIntensified red   Default color mapping
hostColorForProtected blue   Default color mapping
hostColorForProtectedIntensified neutralWhite   Default color mapping
icrnl False   Map CR to NL on NVT-mode input
inlcr False   Map NL to CR in NVT-mode input
intr ^C   NVT-mode interrupt character
kill ^U   NVT-mode kill character
lineWrap False -set lineWrap NVT line wrap mode
lnext ^V   NVT-mode lnext character
localCp (system ANSI code page) -localcp Windows code page for local I/O
m3279 (note 1) -model 3279 (color) emulation
marginedPaste False -set marginedPaste Keep left margin when pasting
monoCase False -set monoCase Mono-case mode
noPrompt False -noprompt Disable command-prompt mode
numericLock False   Lock keyboard for numeric field error
oerrLock False   Lock keyboard for input error
oversize   -oversize Oversize screen dimensions
port telnet -port Non-default TCP port
printer.* (note 4)   Printer session config
printerLu (note 4)   Printer session config
printTextFont Courier New   PrintText font name
printTextSize 8   PrintText font size
quit ^\   NVT-mode quit character
reconnect False -reconnect Automatically reconnect to host
rprnt ^R   NVT-mode reprint character
sbcsCgcsgid     Override SBCS CGCSGID
secure False   Disable "dangerous" options
termName (note 2) -tn TELNET terminal type string
title     Console window title
traceFile (note 3) -tracefile File for trace output
visualBell False   Disable bell sound
werase ^W   NVT-mode word-erase character

Note 1: m3279 defaults to True. It can be forced to False with the proper -model option.

Note 2: The default terminal type string is constructed from the model number, color emulation, and extended data stream modes. E.g., a model 2 with color emulation and the extended data stream option would be sent as IBM-3279-2-E. Note also that when TN3270E mode is used, the terminal type is always sent as 3278, but this does not affect color capabilities.

Note 3: The default trace file is x3trc.pid.txt in the directory where wc3270 was started.

Note 4: See PRINTER SUPPORT for details.

Note 6: The default console color mappings for host colors 0 through 15 are: 0, 9, 12, 13, 10, 11, 14, 15, 0, 1, 12, 5, 2, 3, 7, and 15.

If more than one -xrm option is given for the same resource, the last one on the command line is used.

See Also

wpr3287(1), x3270-script(1)
Data Stream Programmer's Reference, IBM GA23-0059
Character Set Reference, IBM GA27-3831
RFC 1576, TN3270 Current Practices
RFC 1646, TN3270 Extensions for LUname and Printer Selection
RFC 2355, TN3270 Enhancements

Copyrights

Copyright © 1993-2009, Paul Mattes.
Copyright © 2004-2005, Don Russell.
Copyright © 2004, Dick Altenbern.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

*
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
*
Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Version

wc3270 3.3.10ga4
This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/wc3270/html/Intro.html0000644000175000017500000000167511254565670017054 0ustar bastianbastian wc3270 Introduction

wc3270 Introduction

wc3270 is a Windows console-based IBM 3270 terminal emulator. It can be used to communicate with any IBM host that supports 3270-style connections over TELNET. It can also communicate with hosts that use line-by-line ASCII mode to do initial login negotiation before switching to full-screen 3270 mode.

wc3270 emulates one of four models of an IBM 3278 or 3279 terminal. The difference between the various models is the screen size. The emulation is not quite complete; wc3270 understands extended field orders but does not implement some of the extended attributes (outlining, extended validation, etc.). ibm-3270-3.3.10ga4/wc3270/html/x3270-script.html0000644000175000017500000006646311261530011020027 0ustar bastianbastian x3270-script Manual Page

x3270-script Manual Page

Contents

Name
Synopsis
Description
Status Format
Differences
Script-Specific Actions
File Transfer
See Also
Version

Name

Scripting Facilities for x3270, s3270, ws3270 and c3270

Synopsis

x3270 -script [ x3270-options ]
s3270 [ s3270-options ]
ws3270 [ ws3270-options ]
Script ( command [ ,arg... ] )

Description

The x3270 scripting facilities allow the interactive 3270 emulators x3270 and c3270 to be operated under the control of another program, and form the basis for the script-only emulators s3270 and ws3270.

There are two basic scripting methods. The first is the peer script facility, invoked by the x3270 -script switch, and the default mode for s3270 and ws3270. This runs x3270, s3270 or ws3270 as a child of another process. Typically this would be a script using expect(1), perl(1), or the co-process facility of the Korn Shell ksh(1). Inthis mode, the emulator process looks for commands on its standard input, and places the responses on standard output and standard error output.

The second method is the child script facility, invoked by the Script action in x3270, c3270, or s3270. This runs a script as a child process of the emulator. The child has access to pipes connected to the emulator; the emulator look for commands on one pipe, and places the responses on the other. (The file descriptor of the pipe for commands to the emulator is passed in the environment variable X3270INPUT; the file descriptor of the pipe for responses from the emulator is passed in the environment variable X3270OUTPUT.)

It is possible to mix the two methods. A script can invoke another script with the Script action, and may also be implicitly nested when a script invokes the Connect action, and the ibm_hosts file specifies a login script for that host name.

Commands are emulator actions; the syntax is the same as for the right-hand side of an Xt translation table entry (an x3270 or c3270 keymap). Unlike translation tables, action names are case-insensitive, can be uniquely abbreviated, and the parentheses may be omitted if there are no parameters. Any input line that begins with # or ! is treaded as a comment and will be ignored.

Any emulator action may be specified. Several specific actions have been defined for use by scripts, and the behavior of certain other actions (and of the emulators in general) is different when an action is initiated by a script.

Some actions generate output; some may delay completion until the certain external events occur, such as the host unlocking the keyboard. The completion of every command is marked by a two-line message. The first line is the current status of the emulator, documented below. If the command is successful, the second line is the string "ok"; otherwise it is the string "error".

Status Format

The status message consists of 12 blank-separated fields:
1 Keyboard State
If the keyboard is unlocked, the letter U. If the keyboard is locked waiting for a response from the host, or if not connected to a host, the letter L. If the keyboard is locked because of an operator error (field overflow, protected field, etc.), the letter E.
2 Screen Formatting
If the screen is formatted, the letter F. If unformatted or in NVT mode, the letter U.
3 Field Protection
If the field containing the cursor is protected, the letter P. If unprotected or unformatted, the letter U.
4 Connection State
If connected to a host, the string C(hostname). Otherwise, the letter N.
5 Emulator Mode
If connected in 3270 mode, the letter I. If connected in NVT line mode, the letter L. If connected in NVT character mode, the letter C. If connected in unnegotiated mode (no BIND active from the host), the letter P. If not connected, the letter N.
6 Model Number (2-5)
7 Number of Rows
The current number of rows defined on the screen. The host can request that the emulator use a 24x80 screen, so this number may be smaller than the maximum number of rows possible with the current model.
8 Number of Columns
The current number of columns defined on the screen, subject to the same difference for rows, above.
9 Cursor Row
The current cursor row (zero-origin).
10 Cursor Column
The current cursor column (zero-origin).
11 Window ID
The X window identifier for the main x3270 window, in hexadecimal preceded by 0x. For s3270, ws3270 and c3270, this is zero.
12 Command Execution Time
The time that it took for the host to respond to the previous commnd, in seconds with milliseconds after the decimal. If the previous command did not require a host response, this is a dash.

Differences

When an action is initiated by a script, the emulators behave in several different ways:

If an error occurs in processing an action, the usual pop-up window does not appear. Instead, the text is written to standard error output.

If end-of-file is detected on standard input, the emulator exits. (A script can exit without killing the emulator by using the CloseScript action, below.) Note that this applies to peer scripts only; end-of-file on the pipe connected to a child script simply causes the pipes to be closed and the Script action to complete.

The Quit action always causes the emulator to exit. (When called from the keyboard, it will exit only if not connected to a host.)

Normally, the AID actions (Clear, Enter, PF, and PA) will not complete until the host unlocks the keyboard. If the parameter to a String action includes a code for one these actions, it will also wait for the keyboard to unlock before proceeding.

The AidWait toggle controls with behavior. When this toggle is set (the default), actions block as described above. When the toggle is clear, AID actions complete immediately. The Wait(Output) action can then be used to delay a script until the host changes something on the screen, and the Wait(Unlock) action can be used to delay a script until the host unlocks the keyboard, regardless of the state of the AidWait toggle.

Note that the Script action does not complete until end-of-file is detected on the pipe or the CloseScript action is called by the child process. This behavior is not affected by the state of the AidWait toggle.

Script-Specific Actions

The following actions have been defined or modified for use with scripts. (Note that unlike the display on the status line, row and col coordinates used in these actions use [0,0] as their origin, not [1,1]).
AnsiText
Outputs whatever data that has been output by the host in NVT mode since the last time that AnsiText was called. The data is preceded by the string "data: ", and has had all control characters expanded into C backslash sequences.

This is a convenient way to capture NVT mode output in a synchronous manner without trying to decode the screen contents.

Ascii(row,col,rows,cols)
Ascii(row,col,length)
Ascii(length)
Ascii
Outputs an ASCII text representation of the screen contents. Each line is preceded by the string "data: ", and there are no control characters.

If four parameters are given, a rectangular region of the screen is output.

If three parameters are given, length characters are output, starting at the specified row and column.

If only the length parameter is given, that many characters are output, starting at the cursor position.

If no parameters are given, the entire screen is output.

The EBCDIC-to-ASCII translation and output character set depend on the both the emulator character set (the -charset option) and the locale. UTF-8 and certain DBCS locales may result in multi-byte expansions of EBCDIC characters that translate to ASCII codes greater than 0x7f.

AsciiField
Outputs an ASCII text representation of the field containing the cursor. The text is preceded by the string "data: ".
Connect(hostname)
Connects to a host. The command does not return until the emulator is successfully connected in the proper mode, or the connection fails.
CloseScript(status)
Causes the emulator to stop reading commands from the script. This is useful to allow a peer script to exit, with the emulator proceeding interactively. (Without this command, the emulator would exit when it detected end-of-file on standard input.) If the script was invoked by the Script action, the optional status is used as the return status of Script; if nonzero, Script will complete with an error, and if this script was invoked as part of login through the ibm_hosts file, the connection will be broken.
ContinueScript(param)
Allows a script that is waiting in a PauseScript action, below, to continue. The param given is output by the PauseScript action.
Disconnect
Disconnects from the host.
Ebcdic(row,col,rows,cols)
Ebcdic(row,col,length)
Ebcdic(length)
Ebcdic
The same function as Ascii above, except that rather than generating ASCII text, each character is output as a hexadecimal EBCDIC code, preceded by 0x.
EbcdicField
The same function as AsciiField above, except that it generates hexadecimal EBCDIC codes.
Info(message)
In x3270, pops up an informational message. In c3270 and wc3270, writes an informational message to the OIA (the line below the display). Not defined for s3270 or tcl3270.
Expect(text[,timeout])
Pauses the script until the specified text appears in the data stream from the host, or the specified timeout (in seconds) expires. If no timeout is specified, the default is 30 seconds. Text can contain standard C-language escape (backslash) sequences. No wild-card characters or pattern anchor characters are understood. Expect is valid only in NVT mode.
MoveCursor(row,col)
Moves the cursor to the specified coordinates.
PauseScript
Stops a script until the ContinueScript action, above, is executed. This allows a script to wait for user input and continue. Outputs the single parameter to ContinueScript.
PrintText([command,]filter)
) Pipes an ASCII representation of the current screen image through the named filter, e.g., lpr.
PrintText([html,],file,filename)
) Saves the current screen contents in a file. With the html option, saves it as HTML, otherwise saves it as plain ASCII.
PrintText(html,string)
Returns the current screen contents as HTML.
ReadBuffer(Ascii)
Dumps the contents of the screen buffer, one line at a time. Positions inside data fields are generally output as 2-digit hexadecimal codes in the current display character set. If the current locale specifies UTF-8 (or certain DBCS character sets), some positions may be output as multi-byte strings (4-, 6- or 8-digit codes). DBCS characters take two positions in the screen buffer; the first location is output as a multi-byte string in the current locale codeset, and the second location is output as a dash. Start-of-field characters (each of which takes up a display position) are output as SF(aa=nn[,...]), where aa is a field attribute type and nn is its value.

Attribute
Values
c0 basic 3270
20 protected
10 numeric
04 detectable
08 intensified
0c non-display
01 modified
41 highlighting
f1 blink
f2 reverse
f4 underscore
f8 intensify
42 foreground
f0 neutral black
f1 blue
f2 red
f3 pink
f4 green
f5 turquoise
f6 yellow
f7 neutral white
f8 black
f9 deep blue
fa orange
fb purple
fc pale green
fd pale turquoise
fe grey
ff white
43 character set
f0 default
f1 APL
f8 DBCS

Extended attributes (which do not take up display positions) are output as SA(aa=nn), with aa and nn having the same definitions as above (though the basic 3270 attribute will never appear as an extended attribute).

In addition, NULL characters in the screen buffer are reported as ASCII character 00 instead of 20, even though they should be displayed as blanks.

ReadBuffer(Ebcdic)
Equivalent to Snap(Ascii), but with the data fields output as hexadecimal EBCDIC codes instead. Additionally, if a buffer position has the Graphic Escape attribute, it is displayed as GE(xx).
Snap
Equivalent to Snap(Save) (see below).
Snap(Ascii,...)
Performs the Ascii action on the saved screen image.
Snap(Cols)
Returns the number of columns in the saved screen image.
Snap(Ebcdic,...)
Performs the Ebcdic action on the saved screen image.
Snap(ReadBuffer)
Performs the ReadBuffer action on the saved screen image.
Snap(Rows)
Returns the number of rows in the saved screen image.
Snap(Save)
Saves a copy of the screen image and status in a temporary buffer. This copy can be queried with other Snap actions to allow a script to examine a consistent screen image, even when the host may be changing the image (or even the screen dimensions) dynamically.
Snap(Status)
Returns the status line from when the screen was last saved.
Snap(Wait[,timeout],Output)
Pauses the script until the host sends further output, then updates the snap buffer with the new screen contents. Used when the host unlocks the keyboard (allowing the script to proceed after an Enter, PF or PA action), but has not finished updating the screen. This action is usually invoked in a loop that uses the Snap(Ascii) or Snap(Ebcdic) action to scan the screen for some pattern that indicates that the host has fully processed the last command.

The optional timeout parameter specifies a number of seconds to wait before failing the Snap action. The default is to wait indefinitely.

Source(file)
Read and execute commands from file. Any output from those commands will become the output from Source. If any of the commands fails, the Source command will not abort; it will continue reading commands until EOF.
Title(text)
Changes the x3270 window title to text.
Transfer(keyword=value,...)
Invokes IND$FILE file transfer. See FILE TRANSFER below.
Wait([timeout,] 3270Mode)
Used when communicating with a host that switches between NVT mode and 3270 mode. Pauses the script or macro until the host negotiates 3270 mode, then waits for a formatted screen as above.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

For backwards compatibility, Wait(3270) is equivalent to Wait(3270Mode)

Wait([timeout,] Disconnect)
Pauses the script until the host disconnects. Often used to after sending a logoff command to a VM/CMS host, to ensure that the session is not unintentionally set to disconnected state.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

Wait([timeout,] InputField)
A useful utility for use at the beginning of scripts and after the Connect action. In 3270 mode, waits until the screen is formatted, and the host has positioned the cursor on a modifiable field. In NVT mode, waits until the host sends at least one byte of data.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

For backwards compatibility, Wait is equivalent to Wait(InputField).

Wait([timeout,] NVTMode)
Used when communicating with a host that switches between 3270 mode and NVT mode. Pauses the script or macro until the host negotiates NVT mode, then waits for a byte from the host as above.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

For backwards compatibility, Wait(ansi) is equivalent to Wait(NVTMode).

Wait([timeout,] Output)
Pauses the script until the host sends further output. Often needed when the host unlocks the keyboard (allowing the script to proceed after a Clear, Enter, PF or PA action), but has not finished updating the screen. Also used in non-blocking AID mode (see DIFFERENCES for details). This action is usually invoked in a loop that uses the Ascii or Ebcdic action to scan the screen for some pattern that indicates that the host has fully processed the last command.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

Wait([timeout,] Unlock)
Pauses the script until the host unlocks the keyboard. This is useful when operating in non-blocking AID mode (toggle AidWait clear), to wait for a host command to complete. See DIFFERENCES for details).

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

Wait(timeout, Seconds)
Delays the script timeout seconds. Unlike the other forms of Wait, the timeout is not optional.
WindowState(mode)
If mode is Iconic, changes the x3270 window into an icon. If mode is Normal, changes the x3270 window from an icon to a normal window.

File Transfer

The Transfer action implements IND$FILE file transfer. This action requires that the IND$FILE program be installed on the IBM host, and that the 3270 cursor be located in a field that will accept a TSO or VM/CMS command.

The Transfer action can be entered at the command prompt with no parameters, which will cause it to prompt interactively for the file names and options. It can also be invoked with parameters to define the entire transfer.

Because of the complexity and number of options for file transfer, the parameters to the Transfer action take the unique form of option=value, and can appear in any order. Note that if the value contains spaces (such as a VM/CMS file name), then the entire parameter must be quoted, e.g., "HostFile=xxx foo a". The options are:

Option Required? Default Other Values
Direction No receive send
HostFile Yes    
LocalFile Yes    
Host No tso vm
Mode No ascii binary
Cr No remove add, keep
Remap No yes no
Exist No keep replace, append
Recfm No   fixed, variable, undefined
Lrecl No    
Blksize No    
Allocation No   tracks, cylinders, avblock
PrimarySpace No    
SecondarySpace No    
BufferSize No 4096  

The option details are as follows.

Direction
send to send a file to the host, receive to receive a file from the host.
HostFile
The name of the file on the host.
LocalFile
The name of the file on the local workstation.
Host
The type of host (which dictates the form of the IND$FILE command): tso (the default) or vm.
Mode
Use ascii (the default) for a text file, which will be translated between EBCDIC and ASCII as necessary. Use binary for non-text files.
Cr
Controls how Newline characters are handled when transferring Mode=ascii files. remove (the default) strips Newline characters in local files before transferring them to the host. add adds Newline characters to each host file record before transferring it to the local workstation. keep preserves Newline characters when transferring a local file to the host.
Remap
Controls text translation for Mode=ascii files. The value yes (the default) causes x3270-script to remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page. The value no causes x3270-script to pass the text to or from the host as-is, leaving all translation to the IND$FILE program on the host.
Exist
Controls what happens when the destination file already exists. keep (the default) preserves the file, causing the Transfer action to fail. replace overwrites the destination file with the source file. append appends the source file to the destination file.
Recfm
Controls the record format of files created on the host. fixed creates a file with fixed-length records. variable creates a file with variable-length records. undefined creates a file with undefined-length records (TSO hosts only). The Lrecl option controls the record length or maximum record length for Recfm=fixed and Recfm=variable files, respectively.
Lrecl
Specifies the record length (or maximum record length) for files created on the host.
Blksize
Specifies the block size for files created on the host. (TSO hosts only.)
Allocation
Specifies the units for the TSO host PrimarySpace and SecondarySpace options: tracks, cylinders or avblock.
PrimarySpace
Primary allocation for a file created on a TSO host. The units are given by the Allocation option.
SecondarySpace
Secondary allocation for a file created on a TSO host. The units are given by the Allocation option.
BufferSize
Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them.

See Also

expect(1)
ksh(1)
x3270(1)
c3270(1)
s3270(1)
ws3270(1)

Version

Version 3.3.10ga4
This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/wc3270/html/Bugs.html0000644000175000017500000000056311254565670016654 0ustar bastianbastian Known Bugs in wc3270 3.3

Known Bugs in wc3270 3.3

(none)
ibm-3270-3.3.10ga4/wc3270/html/Resources.html0000644000175000017500000016777711261530011017726 0ustar bastianbastian wc3270 Resources

wc3270 Resources

Resources are used to configure wc3270. Resources are named items with string, integer or Boolean values.

Resource definitions come from the following sources:

  • Default values are compiled into wc3270.
  • If a session file foo.wc3270 is specified on the command line, its contents are applied. These definitions override resource values defined by compiled-in defaults.
  • Command-line options override all other resource definitions. If more than one command-line option sets a resource, the last one is used.
Many resources have their own command-line switches, which are listed below. Those that do not can still be set from the command-line via the -xrm command-line option. For example the wc3270.bsdTm resource can be set by the following command-line option:
     -xrm 'wc3270.bsdTm: true'
 
Note that -xrm is supported on all of the 3270 emulators, not just on x3270.

Resource File Syntax

A resource file (session file) has the following syntax.
  • Each definition consists of:
        wc3270.resource-name: value
      
  • Comment lines begin with !.
  • Line continuation is indicated by a backshash (\) character at the end of a line.
  • Multi-line resources, such as keymap definitions, are split with newline characters, e.g.:
        wc3270.keymap.foo: \
          <Key>a: String("bob") \n\
          <Key>b: String("fred") \n\
          <Key>c: String("joe")
      

Alphabetical Resource List

Name: wc3270.asciiBoxDraw
Type: Boolean
Default: false
Description:

When true, this causes box-drawing characters (the Unicode 2500 block) to be drawn with ASCII-art characters (+, - and |). This allows a readable representation of these characters on the screen when using fonts that do not include them or have them with the wrong width.

Name: wc3270.autoShortcut
Type: Boolean
Default: false
Command Line: -S , +S
Description:

When true, wc3270 will run in auto-shortcut mode. In auto-shortcut mode, wc3270 automatically creates a desktop shortcut (.lnk file) in %TEMP% that is compatible with its session file, then starts it. This ensures that the console window's screen size, character set, font, etc. will be correct.

Auto-shortcut mode requires the use of a session file; the session file must have been created by the Session Wizard (release 3.3.9 or later) and must not have been modified incorrectly. All desktop shortcuts created by the Session Wizard release 3.3.10 or later include setting autoShortcut to true.

The +S command-line switch turns off auto-shortcut mode. All desktop shortcuts created by the Session Wizard release 3.3.10 or later include this switch.

Auto-shortcut mode does not work on Windows 9x.

Name: wc3270.blankFill
Type: Boolean
Default: false
Command Line: -set blankFill , -clear blankFill
Description:

When true, in 3270 mode wc3270 will automatically convert trailing blanks in a field to NULLs in order to insert a character, and will automatically convert leading NULLs to blanks so that input data is not squeezed to the left. This works around some of the quirkier behavior of real 3270 terminals.

Name: wc3270.bsdTm
Type: Boolean
Default: false
Description:

Defines wc3270's response to the TELNET DO TIMING MARK option. When set to false, wc3270 will respond to DO TIMING MARK with WONT TIMING MARK, which is consistent with most modern TELNET clients. When true, wc3270 will respond with WILL TIMING MARK, which is consistent with the old BSD telnet command and with previous versions of wc3270. In either case, wc3270 will never respond to a DONT TIMING MARK option.

Name: wc3270.certFile
Type: String
Command Line: -certfile
Description:

Gives the name of a certificate file, used by the OpenSSL library.

Name: wc3270.charset
Type: String
Default: bracket
Command Line: -charset
Description:

This defines the host EBCDIC character set, that is, what glyph (image) is displayed for each EBCDIC code sent by the host, and what EBCDIC code is sent to the host for each character typed on the keyboard. This is more correctly referred to as the host code page.

To display the character sets supported by wc3270, use the -v command-line option.

Name: wc3270.color8
Type: Boolean
Default: false
Description:

If true, wc3270 will respond to a Query(Color) with a list of 8 supported colors. If false, it will send a list of 16 colors. The 8-color setting is required for some hosts which abort a session if 16 colors are reported.

Name: wc3270.composeMap
Type: String
Default: latin1
Description:

Gives the name of the map used to define the pairs of characters that form composite characters with the Compose key. The definition of compose map foo is the resource wc3270.composeMap.foo.

Name: wc3270.composeMap.foo
Type: String
Description:

An individual compose map definition. Each line in the resource is of the form:

         keysym1 + keysym2 = keysym3

meaning "when the Compose key is pressed, followed by keysym1 and keysym2 (in either order), interpret it as keysym3." The definitions are case-sensitive.

Name: wc3270.confDir
Type: String
Default: .
Description:

Defines the wc3270 configuration directory, where wc3270 will search for the ibm_hosts file by default. (See wc3270.hostsFile.)

The default is to search the directory where wc3270 was started, which usually its installation directory.

Name: wc3270.consoleColorForHostColor0
Name: wc3270.consoleColorForHostColorNeutralBlack
Name: wc3270.consoleColorForHostColor1
Name: wc3270.consoleColorForHostColorBlue
Name: wc3270.consoleColorForHostColor2
Name: wc3270.consoleColorForHostColorRed
Name: wc3270.consoleColorForHostColor3
Name: wc3270.consoleColorForHostColorPink
Name: wc3270.consoleColorForHostColor4
Name: wc3270.consoleColorForHostColorGreen
Name: wc3270.consoleColorForHostColor5
Name: wc3270.consoleColorForHostColorTurquoise
Name: wc3270.consoleColorForHostColor6
Name: wc3270.consoleColorForHostColorYellow
Name: wc3270.consoleColorForHostColor7
Name: wc3270.consoleColorForHostColorNeutralWhite
Name: wc3270.consoleColorForHostColor8
Name: wc3270.consoleColorForHostColorBlack
Name: wc3270.consoleColorForHostColor9
Name: wc3270.consoleColorForHostColorDeepBlue
Name: wc3270.consoleColorForHostColor10
Name: wc3270.consoleColorForHostColorOrange
Name: wc3270.consoleColorForHostColor12
Name: wc3270.consoleColorForHostColorPurple
Name: wc3270.consoleColorForHostColor13
Name: wc3270.consoleColorForHostColorPaleGreen
Name: wc3270.consoleColorForHostColor14
Name: wc3270.consoleColorForHostColorPaleTurquoise
Name: wc3270.consoleColorForHostColor15
Name: wc3270.consoleColorForHostColorGrey
Name: wc3270.consoleColorForHostColor16
Name: wc3270.consoleColorForHostColorWhite
Type: Integer
Description:

Defines what console color to use to render a particular host color. Host colors can be specified by name or number. That is, to define the console color to use when the host specifies green, which is host color 4, either the resource wc3270.consoleColorForHostColorGreen or the resource wc3270.consoleColorForHostColor4 can be used.

The default definitions are as follows.
Host Color Index Host Color Name Default Console Color
0 NeutralBlack 0
1 Blue 9
2 Red 12
3 Pink 13
4 Green 10
5 Turquoise 11
6 Yellow 14
7 NeutralWhite 15
8 Black 0
9 DeepBlue 1
10 Orange 12
11 Purple 5
12 PaleGreen 2
13 PaleTurquoise 3
14 Grey 7
15 White 15

Note that "neutral black" means black on a display device and white on a printing device, and "neutral white" means white on a display device and black on a printing device.

The value of the resource is a console color index (0 through 15). Console colors are defined as follows:
Index Sample
0 [sample]
1 [sample]
2 [sample]
3 [sample]
4 [sample]
5 [sample]
6 [sample]
7 [sample]
8 [sample]
9 [sample]
10 [sample]
11 [sample]
12 [sample]
13 [sample]
14 [sample]
15 [sample]

The color samples above are the default values used by the wc3270 Session Wizard when it creates a desktop shortcut. The RGB values for any of the console colors can be changed later using the Colors tab on the Properties dialog of the shortcut.

In NVT mode, wc3270 maps the ANSI-standard colors 0 through 7 to host colors, and from host colors to console colors. The mapping from ANSI colors to host colors cannot be changed, but the mapping from host colors to console colors can be with wc3270.consoleColorForHostColor* resources. The mappings and defaults are as follows:
NVT ANSI Color Mapped Host Color (not configurable) Default Console Color
0 (black) 0 (Black) 0
1 (red) 2 (Red) 12
2 (green) 4 (Green) 10
3 (yellow) 6 (Yellow) 14
4 (blue) 1 (Blue) 9
5 (magenta) 3 (Pink) 13
6 (turquoise) 6 (Turquoise) 14
7 (white) 7 (NeutralWhite) 15

For example, to change the display from white-on-black to black-on-white, define the following resources:

     wc3270.consoleColorForHostColorNeutralBlack: 15
     wc3270.consoleColorForHostColorNeutralWhite: 0
    

Name: wc3270.cursorPos
Type: Boolean
Default: true
Command Line: -set cursorPos , -clear cursorPos
Description:

When true, causes wc3270 to display the cursor location in the OIA (the status line).

Name: wc3270.dbcsCgcsgid
Type: String
Description:

Overrides the compiled-in value of the CGCSGID for the current host character set, which will be reported to the host in response to a Query(Character Sets). The value is an integer, which can be prefixed with '0x' to be in hexadecimal. The upper 16 bits are the GCSGID (character set) and the lower 16 bits are the CPGID (code page). This value applies only to the double-byte (DBCS) character set. Use wc3270.sbcsCgcsgid for the single-byte (SBCS) character set.

Name: wc3270.dftBufferSize
Type: Integer
Default: 4096
Description:

Specifies the default buffer size for DFT IND$FILE file transfers. This value can be overridden in the File Transfer dialog and by a parameter to the Transfer action.

Name: wc3270.dsTrace
Type: Boolean
Default: false
Command Line: -trace , -set dsTrace , -clear dsTrace
Description:

When true, wc3270 writes a hexadecimal representation of all network traffic (and its interpretation) into a file, which defaults to x3trc.process-id.txt in the wc3270 Application Data directory. It also pops up a window to watch the file as it is created, with the pathname of the file as the window title. The directory prefix is defined by wc3270.traceDir. If wc3270.traceFile is defined, it gives the entire pathname and wc3270.traceDir is ignored.

Name: wc3270.eof
Type: String
Default: ^D
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when wc3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current line of input to be forwarded to the host without a trailing CR/LF sequence.

Name: wc3270.erase
Type: String
Default: ^?
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (wc3270 gathers a line of input before forwarding it ot the host), entering this character at the keyboard will cause wc3270 to discard the last character on the input line.

When connected in character-at-a-time mode (wc3270 sends each keystroke to the host as it is entered), this is the character that will be sent to the host by the Erase action.

Name: wc3270.eventTrace
Type: Boolean
Default: false
Command Line: -set eventTrace , -clear eventTrace
Description:

When true, wc3270 traces information about keyboard and mouse events into a file. The default file name is x3trc.process-id.txt in the wc3270 Application Data directory. It also pops up a window to watch the file as it is created, with the pathname of the file as the window title. The directory prefix is defined by wc3270.traceDir. If wc3270.traceFile is defined, it gives the entire pathname and wc3270.traceDir is ignored.

Name: wc3270.extended
Type: Boolean
Default: false
Command Line: -extended
Description:

Deprecated resource -- replaced by wc3270.model syntax

Indicates support for the 3270 Extended Data Stream.

Name: wc3270.hostColorForDefault
Name: wc3270.hostColorForIntensified
Name: wc3270.hostColorForProtected
Name: wc3270.hostColorForProtectedIntensified
Type: String
Description:

Defines the default color to use to render text with a particular attribute, when the host does not specify a particular color.

The value of the resource is a host color name or color index. See wc3270.consoleColorForHostColor0 for the definitions of host colors.

The default values are:
wc3270 Resource Default Host Color
hostColorForDefault Green
hostColorForIntensified Red
hostColorForProtected Blue
hostColorForProtectedIntensified NeutralWhite

Name: wc3270.hostname
Type: String
Description:

Gives the name of the host to connect to. The name can include the usual options (prefixes to specify special connection options, LU names, and port). A hostname specified on the command line takes precedence over wc3270.hostName.

The most common use of wc3270.hostName is in session files, where a file is used to pass all of the options to establish a wc3270 session.

Name: wc3270.hostsFile
Type: String
Default: ibm_hosts
Description:

The pathname of a file containing hostname aliases. The file can also be used to define a set of actions to perform when connecting to a host.

The format of the file is explained on the ibm_hosts manual page.

Name: wc3270.icrnl
Type: Boolean
Default: true
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. It controls whether input carriage returns are mapped to newlines.

Name: wc3270.idleCommand
Type: String
Description:

When wc3270.idleCommand is defined, it specifies a command to execute after a period of keyboard inactivity (no AID keys pressed). The wc3270.idleCommand can be an arbitrary sequence of wc3270 actions, but it should include an action which generates an AID (Enter, Clear, PF or PA). wc3270.idleCommandEnabled must be true in order for the wc3270.idleCommand to take effect. (This is so an idle command can be defined, but needs to be enabled explicitly at some point after login.) wc3270.idleTimeout specifies the inactivity interval.

Name: wc3270.idleCommandEnabled
Type: Boolean
Default: false
Description:

Controls whether wc3270.idleCommand has effect as soon as a host session is established. (This is so an idle command can be defined, but needs to be explicitly enabled at some point after login.)

Name: wc3270.idleTimeout
Type: String
Default: ~7m
Description:

The timeout value for wc3270.idleCommand. If the value ends in h, it specifies hours; if it ends in m it specifies minutes; if it ends in s or does not have an alphanumeric suffix, it specifies seconds.

If the value begins with a tilde ~, the time will be randomly varied +/-10% from the value specified.

Name: wc3270.inlcr
Type: Boolean
Default: false
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. It controls whether input newlines are mapped to carriage returns.

Name: wc3270.intr
Type: String
Default: ^C
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When this character is typed on the keyboard, the TELNET IP (Interrupt Process) sequence is sent to the host.

Name: wc3270.keymap
Type: String
Command Line: -keymap
Description:

The name of the keyboard map to use. It can be a single keymap name or a comma-separated list of keymaps, which will be applied in order.

Each keymap can optionally be defined in three separate parts: a common keymap, which is applied at all times, an NVT-mode keymap, which is applied only in NVT mode, and a 3270-mode keymap, which is only applied in 3270 mode. The NVT-mode keymap has the same name as the common keymap, with the suffix .nvt appended. The 3270-mode keymap has the suffix .3270 appended. Thus specifying a wc3270.keymap value of foo implies the use of three different keymaps (if found): foo, foo.nvt and foo.3270.

wc3270.keymap is only the name; the actual keymap for name foo can be defined either by the resource wc3270.keymap.foo, or by a keymap file. Keymap files are located in the wc3270 Application Data directory, and have the suffix .wc3270km.

Name: wc3270.keymap.foo
Type: String
Description:

The definition of keymap foo. Please refer to the How To Create a Custom Keymap document for a full description of the syntax.

Name: wc3270.kill
Type: String
Default: ^U
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when wc3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current input line to be erased.

When connected in character-at-a-time mode (when wc3270 sends each keystroke to the host), this is the ASCII character that is sent to the host by the DeleteField action.

Name: wc3270.lineWrap
Type: Boolean
Default: true
Command Line: -set lineWrap , -clear lineWrap
Description:

This setting is used only in NVT mode. When true, wc3270 will automatically insert a CR/LF sequence when output reaches the end of a line. When false, output will pile up at the end of each line until the host sends a CR/LF sequence.

Name: wc3270.loginMacro
Type: String
Description:

Defines a sequence of commands to run as soon as a host connection is established. Usually these would be commands used to navigate through login screens, such String, Tab and Enter.

If a wc3270.hostsFile is in use and a matching entry is found, the login macro from that entry will be used in preference to the wc3270.loginMacro.

Name: wc3270.lnext
Type: String
Default: ^V
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when wc3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard removes any special meaning from the next character entered.

Name: wc3270.localCp
Type: Integer
Description:

Forces wc3270 to use the specified codepage in place of the system ANSI codepage. This codepage is used when interpreting keymap files and when generating trace files.

Name: wc3270.m3279
Type: Boolean
Default: false
Command Line: -color
Description:

Deprecated resource -- replaced by wc3270.model syntax

Indicates support for color (a 3279 terminal).

Name: wc3270.marginedPaste
Type: Boolean
Default: false
Command Line: -set marginedPaste , -clear marginedPaste
Description:

When true, wc3270 will use the current cursor position as a left margin for pasted data: no pasted data will be input into an area to the left of the current cursor positon.

Name: wc3270.model
Type: String
Default: 3279-4-E
Command Line: -model
Description:

The terminal model that wc3270 is emulating. The model is in three parts, separated by dashes; each part is optional.

  • 3278 or 3279
    3278 specifies a monochrome (green) 3270 display.
    3279 specifies a color 3270 display.
  • 2, 3, 4 or 5
    The model number, which determines the size of the screen.
    Model 2 has 24 rows and 80 columns.
    Model 3 has 32 rows and 80 columns.
    Model 4 has 43 rows and 80 columns.
    Model 5 has 27 rows and 132 columns.
    The default is the largest model that will fit on the console or terminal emulator window where wc3270 is running. Displaying the OIA (status line) requires one more row than what is listed above.
  • E
    An optional suffix which indicates support for the 3270 Extended Data Stream (color, extended attributes, Query Reply). 3279 implies E.

Name: wc3270.monoCase
Type: Boolean
Default: false
Command Line: -set monoCase , -clear monoCase
Description:

When true, causes wc3270 to run in uppercase-only mode.

Name: wc3270.noPrompt
Type: Boolean
Default: false
Description:

If true, the interactive wc3270> prompt will be disabled. In particular, this means that when wc3270 is not connected to a host, a keymap or an external script is the only way to start a new host connection.

Name: wc3270.numericLock
Type: Boolean
Default: false
Description:

When true, causes wc3270 to lock the keyboard when non-numeric data is entered into fields with the Numeric attribute.

Name: wc3270.onlcr
Type: Boolean
Default: true
Description:

Used only in NVT line-at-a-time mode; similar to the stty parameter of the same name. It controls whether output newlines are mapped to CR/LF sequences.

Name: wc3270.oerrLock
Type: Boolean
Default: true
Description:

If true, operator errors (typing into protected fields, insert overflow, etc.) will cause the keyboard to lock with an error message in the OIA (status line). If false, these errors will simply cause the terminal bell will ring, without any keyboard lock or message.

Name: wc3270.once
Type: Boolean
Default: false
Command Line: -once
Description:

When true, wc3270 will exit as soon as a host disconnects. The default is false if no hostname is specified on the command line or in a session file, true otherwise.

Name: wc3270.oversize
Type: String
Command Line: -oversize
Description:

Sets the screen dimensions to be larger than the default for the chosen model. Its value is a string in the format colsxrows. It can also be the string auto, which will cause wc3270 to use the entire screen area of the console window it is running in. It is used only if the wc3270.model includes the "-E" (extended data stream) suffix, and only if the specified dimensions are larger than the model number defaults. Also, only hosts that support the Query Reply structured field will function properly with wc3270 in this mode.

Name: wc3270.port
Type: String
Default: telnet
Command Line: -port
Description:

The name of the default TCP port for wc3270 to connect to. This can be either a symbolic name from /etc/services, or an integer.

Name: wc3270.proxy
Type: String
Command Line: -proxy
Description:

Defines a proxy server that wc3270 will use to connect to hosts. The value is of the form type:server[:port], where options for type are described on the wc3270 manual page.

Name: wc3270.printerLu
Type: String
Command Line: -printerlu
Description:

If a value is set, wc3270 will automatically start a wpr3287 printer session when a host connection is established. If the value is ".", the wpr3287 session will be associated with the interactive terminal session (this requires that the host supports TN3270E). Otherwise, the value is taken as the LU name to associate with the printer session.

Name: wc3270.printer.assocCommandLine
Type: String
Default: wpr3287.exe -assoc %L% -command %R% %P% %I% %H%
Description:

The shell command to use to start a printer session, when associated with the current TN3270E session LU (when wc3270.printerLU is "."). Within the string, the following substitutions are made:

  • %H% is replaced with the current host name
  • %I% is replaced with an option to pass wc3270.printer.codepage
  • %L% is replaced with the current session's LU
  • %P% is replaced with the current session's proxy option (wc3270.proxy)
  • %R% is replaced with an option to pass the current character set

Name: wc3270.printer.codepage
Type: Integer
Description:

The codepage used by the printer associated with wpr3287 printer sessions. The default is to use the system's ANSI codepage.

Name: wc3270.printer.luCommandLine
Type: String
Default: wpr3287.exe %R% %p% %I% %L%@%H%
Description:

The shell command to use to start a printer session, when associated with a specific LU. Within the string, the following substitutions are made:

  • %H% is replaced with the current host name
  • %I% is replaced with an option to pass wc3270.printer.codepage
  • %L% is replaced with the LU value entered into the dialog box
  • %P% is replaced with current session's proxy option (wc3270.proxy)
  • %R% is replaced with an option to pass the current character set

Name: wc3270.printer.name
Type: String
Description:

Defines the name of the printer used for wpr3287 sessions and by the PrintText action. The default is to use the system's default printer.

Name: wc3270.printTextFont
Type: String
Default: Courier New
Description:

The font used by the PrintText action.

Name: wc3270.printTextSize
Type: Integer
Default: 8
Description:

The font size used by the PrintText action.

Name: wc3270.quit
Type: String
Default: ^\
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when wc3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the TELNET BREAK sequence to be sent to the host.

Name: wc3270.reconnect
Type: Boolean
Default: false
Description:

When true, wc3270 will automatically reconnect to a host after it disconnects.

Name: wc3270.rprnt
Type: String
Default: ^R
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when wc3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current input line to be redisplayed.

Name: wc3270.sbcsCgcsgid
Type: String
Description:

Overrides the compiled-in value of the CGCSGID for the current host character set. The value is an integer, which can be prefixed with '0x' to be in hexadecimal. The upper 16 bits are the GCSGID (character set) and the lower 16 bits are the CPGID (code page). This value applies only to the single-byte (SBCS) character set. Use wc3270.dbcsCgcsgid for the double-byte (DBCS) character set.

Name: wc3270.screenTrace
Type: Boolean
Default: false
Command Line: -set screenTrace , -clear screenTrace
Description:

When true, wc3270 will save an ASCII version of the screen image in a file every time it changes. The file name defaults to x3scr.pid.txt in the wc3270 Application Data directory. The directory prefix is defined by the wc3270.traceDir resource. If the wc3270.screenTraceFile resource is defined, it defines the file name and wc3270.traceDir is ignored. file name.

Name: wc3270.screenTraceFile
Type: String
Description:

If defined, gives the name of the file that screen traces will be written into.

Name: wc3270.scriptPort
Type: Integer
Command Line: -scriptport
Description:

If defined, wc3270 will accept script connections on the specified local TCP port. The rules for the commands passed over these connections are documented in the x3270-script manual page.

Name: wc3270.suppressActions
Type: String
Description:

A list of whitespace-separated action names, with or without parentheses, which are to be ignored. The actions will be completely inaccessible, whether by keymaps, scripts, macros or the Execute an Action menu option. This resource is intended to be used as a security precaution for users who can define their own keymaps, but who do not have access to resource definitions or command-line options.

Name: wc3270.termName
Type: String
Command Line: -tn
Description:

An alternate name to be sent in response to the host's TELNET DO OPTION TERMINAL-NAME request. The default is IBM-, followed by the value of wc3270.model.

Name: wc3270.title
Type: String
Command Line: -title
Description:

Sets the title for the wc3270 window, overriding the default of constructing the name from the host that is connected to.

Name: wc3270.traceDir
Type: String
Default: app-data
Description:

Defines the directory that trace files are written into. The default is the wc3270 Application Data directory.

Name: wc3270.traceFile
Type: String
Command Line: -tracefile
Description:

If defined, gives the name of the file that data stream and event traces will be written into.

Name: wc3270.traceFileSize
Type: String
Command Line: -tracefilesize
Description:

If defined, gives a limit on the size of the file that data stream and event traces will be written into. If not defined, or defined as 0, there will be no limit on the size of the file. The value is a number, followed by an optional suffix. If the suffix is K (e.g., 128K), the value will be multiplied by 1024. If the suffix is M, the value will be multiplied by (1024*1024). The size limit enforced at operation boundaries, not per byte, so the actual file may grow slightly larger. When the file size exceeds the limit, the second half of the file will be written over the first, so that in steady state, the file size will vary between half the wc3270.traceFileSize and the entire wc3270.traceFileSize.

Name: wc3270.traceMonitor
Type: Boolean
Default: true
Description:

When true, wc3270 will create a window to monitor data stream and event traces. When false, no monitor window will be created.

Name: wc3270.typeahead
Type: Boolean
Default: true
Description:

When true, wc3270 will store keystrokes in a buffer when the keyboard is locked. When false, these keystrokes will be dropped.

Name: wc3270.underscore
Type: Boolean
Default: true
Command Line: -set underscore , -clear underscore
Description:

When true, wc3270 will display fields with the underlined attribute in a special way: blank characters will be translated to underscore (_) characters. This is needed to overcome the fact that Windows consoles are unable to display real underlined text.

Name: wc3270.unlockDelay
Type: Boolean
Default: true
Description:

When wc3270 sends the host an AID (the Enter, Clear, PF or PA actions), it locks the keyboard until the host sends a reply to unlock it. Some hosts unlock the keyboard before they are actually finished processing the command, which can cause scripts to malfunction subtly. To avoid this, wc3270 implements a hack to briefly delay actually unlocking the keyboard. When wc3270.unlockDelay is true, the keyboard unlock will be delayed for wc3270.unlockDelayMs milliseconds. Setting it to false removes this delay, except when executing a macro.

Name: wc3270.unlockDelayMs
Type: Integer
Default: 350
Description:

Overrides the default value for the unlock delay (the delay between the host unlocking the keyboard and wc3270 actually performing the unlock). The value is in milliseconds; use 0 to turn off the delay completely, including for macros.

Name: wc3270.visualBell
Type: Boolean
Default: false
Description:

When true, wc3270 will flash the screen in response to an ALARM WCC or BELL character, rather than ringing the terminal's bell.

Name: wc3270.werase
Type: String
Default: ^W
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when wc3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard erases the last word of input.

When connected in character-at-a-time mode (when wc3270 sends each keystroke to the host), this is the ASCII character that is sent to the host by the DeleteWord action.

Index of All Resources

asciiBoxDraw autoShortcut blankFill bsdTm
certFile charset color8 composeMap
composeMap.foo confDir consoleColorForHostColor0 consoleColorForHostColorNeutralBlack
consoleColorForHostColor1 consoleColorForHostColorBlue consoleColorForHostColor2 consoleColorForHostColorRed
consoleColorForHostColor3 consoleColorForHostColorPink consoleColorForHostColor4 consoleColorForHostColorGreen
consoleColorForHostColor5 consoleColorForHostColorTurquoise consoleColorForHostColor6 consoleColorForHostColorYellow
consoleColorForHostColor7 consoleColorForHostColorNeutralWhite consoleColorForHostColor8 consoleColorForHostColorBlack
consoleColorForHostColor9 consoleColorForHostColorDeepBlue consoleColorForHostColor10 consoleColorForHostColorOrange
consoleColorForHostColor12 consoleColorForHostColorPurple consoleColorForHostColor13 consoleColorForHostColorPaleGreen
consoleColorForHostColor14 consoleColorForHostColorPaleTurquoise consoleColorForHostColor15 consoleColorForHostColorGrey
consoleColorForHostColor16 consoleColorForHostColorWhite cursorPos dbcsCgcsgid
dftBufferSize dsTrace eof erase
eventTrace extended hostColorForDefault hostColorForIntensified
hostColorForProtected hostColorForProtectedIntensified hostname hostsFile
icrnl idleCommand idleCommandEnabled idleTimeout
inlcr intr keymap keymap.foo
kill lineWrap loginMacro lnext
localCp m3279 marginedPaste model
monoCase noPrompt numericLock onlcr
oerrLock once oversize port
proxy printerLu printer.assocCommandLine printer.codepage
printer.luCommandLine printer.name printTextFont printTextSize
quit reconnect rprnt sbcsCgcsgid
screenTrace screenTraceFile scriptPort suppressActions
termName title traceDir traceFile
traceFileSize traceMonitor typeahead underscore
unlockDelay unlockDelayMs visualBell werase

Basic Configuration Resources

charset hostname keymap model
port proxy printerLu

Appearance Resources

consoleColorForHostColor0 consoleColorForHostColorNeutralBlack consoleColorForHostColor1 consoleColorForHostColorBlue
consoleColorForHostColor2 consoleColorForHostColorRed consoleColorForHostColor3 consoleColorForHostColorPink
consoleColorForHostColor4 consoleColorForHostColorGreen consoleColorForHostColor5 consoleColorForHostColorTurquoise
consoleColorForHostColor6 consoleColorForHostColorYellow consoleColorForHostColor7 consoleColorForHostColorNeutralWhite
consoleColorForHostColor8 consoleColorForHostColorBlack consoleColorForHostColor9 consoleColorForHostColorDeepBlue
consoleColorForHostColor10 consoleColorForHostColorOrange consoleColorForHostColor12 consoleColorForHostColorPurple
consoleColorForHostColor13 consoleColorForHostColorPaleGreen consoleColorForHostColor14 consoleColorForHostColorPaleTurquoise
consoleColorForHostColor15 consoleColorForHostColorGrey consoleColorForHostColor16 consoleColorForHostColorWhite
cursorPos hostColorForDefault hostColorForIntensified hostColorForProtected
hostColorForProtectedIntensified title underscore

NVT-Mode Resources

eof erase icrnl inlcr
intr kill lineWrap lnext
onlcr quit rprnt werase

Protocol Resources

bsdTm color8 dbcsCgcsgid dftBufferSize
sbcsCgcsgid termName

Terminal Interaction Resources

blankFill idleCommand idleCommandEnabled idleTimeout
marginedPaste numericLock oerrLock visualBell

Security Resources

certFile noPrompt suppressActions

Tracing Resources

dsTrace eventTrace screenTrace screenTraceFile
traceDir traceFile traceFileSize traceMonitor

Other Resources

asciiBoxDraw autoShortcut composeMap composeMap.foo
confDir hostsFile keymap.foo loginMacro
localCp monoCase once oversize
printer.assocCommandLine printer.codepage printer.luCommandLine printer.name
printTextFont printTextSize reconnect scriptPort
typeahead unlockDelay unlockDelayMs

Deprecated Resources

extended m3279

wc3270 verson 3.3.10ga4 Fri Oct 2 20:59:37 CDT 2009 ibm-3270-3.3.10ga4/wc3270/html/Keymap.html0000644000175000017500000001434411254565670017204 0ustar bastianbastian Creating a Custom wc3270 Keymap

How to Create a Custom wc3270 Keymap

It Might Already be Defined

First, you might want to make sure that the action you want isn't already defined in the default keymap. The default keymap, documented on the wc3270 manual page, defines many common actions. For example, the Reset action, which unlocks the keyboard, is defined as Alt-r.

Defining a Keymap in a File

If the mappings you want aren't defined in the default keymap, you can create a custom keymap. The easiest way to do this is to follow this example -- a custom keymap that maps Page Up to PF7 and Page Down to PF8.

First, pick a unique name for your keymap, e.g., mine. Using a text editor such as notepad, create a file called mine.wc3270km in the wc3270 installation directory. (The wc3270 installation directory is usually C:\Program Files\wc3270, but can vary depending on your Windows installation and the options you chose when you installed wc3270.) In that file, put the following:

!description: Map PageUp and PageDown to PF7/PF8
<Key>PRIOR: PF(7)
<Key>NEXT: PF(8)

Note that in a keymap file, comment lines start with !. Comment lines are ignored, except for one special one (shown above): a comment line starting with !description: will be displayed by the New Session Wizard as the description of the keymap.

To use the keymap, you can either create a new wc3270 session, or you can modify an existing one.

To create a new one, run the wc3270 New Session Wizard. The list of available keymaps should now include mine.

To modify an existing session, use notepad to edit the session file. (Session files are located in the wc3270 installation directory, and have the suffix .wc3270, so the session file for foo is called foo.wc3270.) If the session already uses a keymap, it will have a line that starts with wc3270.keymap:. If it has this line, modify it to specify mine instead. If it does not have this line, add it:

    wc3270.keymap: mine
    

Now, run your wc3270 session. The Page Up key should now emulate the 3270 PF7 key, and the Page Down key should now emulate the 3270 PF8 key.

Rules for Keymap Definition Files

You may now edit the keymap to create your own custom definition. Here is the full set of rules. Each line has the format:
    [modifier...] <Key> keyname... : action[(args)]...
where:
    modifier is a keyboard modifier such as Ctrl or Alt
    keyname is a key name: a symbolic name for a key, such as semicolon (the ';' key) or a Windows key name such as HOME (the Home key)
    action is a wc3270 action such as Enter or PF
    args are the optional action arguments, such as a number to specify which PF key to transmit.

Note that order matters in the keymap. More-specific rules must come before less-specific ones. For example, if you want to map both F1 and Shift-F1, the rule for Shift-F1 must come before the rule for F1. Otherwise, one or more of your rules will be ignored.

Except for ones that use the Ctrl modifier, entries are case-sensitive. For example, an entry for Alt-p will not be matched if the Shift key is down or Caps Lock is in effect. To match both Alt-p and Alt-P, there must be two entries in your keymap.

How to Find the Modifiers

The list of modifiers is on the wc3270 manual page.

How to Find the Key Names

The names for alphanumeric keys can be entered literally, e.g., a for the A key. They can also be entered using ISO 8859-1 standard names, such as colon for the : key (which would otherwise confuse the keymap syntax). Finally, Unicode values (U+nnnn) can be used.

The list of names for special Windows keys, such as PRIOR, NEXT and HOME, is on the wc3270 manual page.

To find out which key or sequence of keys is being generated for any given key on your keyboard, start wc3270 with the -set eventTrace option. wc3270 will create a pop-up window showing a trace file, which will include several lines of text for each key that is pressed. Each entry will include the text for the left-hand side of a keymap entry that will match that key. You can copy and paste the text into a keymap definition. The trace file is x3trc.pid in the current directory.

How to Find the Actions

These are documented on the wc3270 manual page.

How to Debug Your Keymap

There are two wc3270 options to aid with keymap debugging. The first is the -set eventTrace option described above. The information traced includes the keymap (and line within the keymap) that matched the event, the wc3270 action that was run in response, and if for some reason the action did not work, why it did not work.

The second is the show keymap command at the wc3270> prompt, which displays the current keymap. This tells you exactly which keymap entries are active. Often times it will point out that wc3270 isn't using the keymap you thought it was, or that some of your keymap entries are interfering with one another.

More Information

This document is not an exhaustive definition of keymaps -- the complete reference is the wc3270 manual page. It describes the many possible, subtle variations of the rules described above. ibm-3270-3.3.10ga4/wc3270/html/FAQ.html0000644000175000017500000000607711254565670016371 0ustar bastianbastian wc3270 Frequently Asked Questions

wc3270 Frequently Asked Questions

If you have a problem building, installing, or running wc3270, please browse through this file first.

General Questions

Am I allowed to use it?

Yes. Full copyright information is in the Lineage file, but the gist is that anyone is free to use the code, and anyone is free to sell copies of the code.

You are also free to modify it and to redistribute it, provided you preserve the existing copyright notices.

What versions of Windows does wc3270 run on?

wc3270 has been tested on Windows 2000, Windows XP, Windows Server 2003, and Windows Vista, and has been tested on both 32- and 64-bit systems. It also runs, with some limitations, on Windows 98.

How do I change the font?

To change any of the screen properties for wc3270 (font, font size, colors, cursor type, etc.), you should modify the properties of a wc3270 desktop shortcut, and then run wc3270 to see the results. If you modify the properties of a live wc3270 session, you may get odd and inconsistent results.

Note that if you want to run anything other than one of the basic U.S. character sets (us-english or bracket), then it is not a good idea to change the font, because non-English character set support requires a full Unicode fixed-width font, and Lucida Console is the only one provided with Windows.

How do I change the keyboard mappings?

Eventually, there will be a utility to create and edit custom keymaps. In the meantime, a tutorial for the manual procedure is here and the reference for keymaps is here.

Getting Help

If you are still having a problem with wc3270, feel free to send e-mail to Paul Mattes, Paul.Mattes@usa.net No guarantees are made about responses to particular problems, but a patches are usually forthcoming in a few days. It will also get you on an x3270 mailing list, which also includes information on wc3270, and where you can find out about new releases and bug fixes.

When you send a question about wc3270, please include the following information. It makes it much easier to narrow down the problem.

  1. The version of wc3270 you are using, including all patches, e.g., "3.3.6p1".
  2. What operating system you are running, and what version, e.g., "Windows XP SP2 32-bit".
Complaints, suggestions and requests for enhancements are also welcome. Code changes for bug fixes and enhancements are also welcome, provided that you don't mind your code being placed (often anonymously) under the x3270 license. ibm-3270-3.3.10ga4/wc3270/html/ReleaseNotes.html0000644000175000017500000016451711261530011020332 0ustar bastianbastian wc3270 Release Notes

Changes in x3270, c3270, wc3270, s3270, tcl3270, pr3287 and wpr3287 3.3

3.3 is the current development line for the x3270 suite.

Changes in version 3.3.10ga4, 2. October 2009

  • [all x3270] Improved the File Transfer summary display.
  • [all x3270] Removed the keyboard lock when processing an Enter AID in SSCP-LU mode.
  • [x3270] Fixed a build problem when DBCS support is disabled.
  • [c3270] Made the special keymap key names (e.g., PRINT) case-insensitive.
  • [c3270] Fixed a problem with keyboard input in ISO 8859 locales.
  • [x3270] Increased the maximum number of fonts scanned to 50000.

Changes in version 3.3.10ga3, 15. September 2009

  • [x3270] Fixed some bugs in the xmkmf-free build.

Changes in version 3.3.10alpha2, 10. September 2009

  • [c3270] Added the ability to move the 3270 cursor with the mouse, if the terminal supports it. Add a Mouse resource, which can be set to False to disable it.
  • [all 3270] Added a Translate keyword to the Transfer action's parameters and an additional question to the interactive c3270/wc3270 Transfer dialog, to allow the automatic remapping of text (usually done to get the most accurate translation) to be disabled.
  • Restored the pop-up window that displays trace files.

Changes in version 3.3.10alpha1, 3. September 2009

  • [3270] Allow the program to be built without xmkmf.
  • [all 3270] Fixed the mapping of EBCDIC X'FF' to U+009F in ASCII-mode file transfers.
  • [all 3270] Fixed a crash in CUT-mode binary file sends, and corrected the local fopen() flags when receiving a binary file.
  • [x3270] Added the APL up- and down-arrow characters (↑ and ↓) to the 12-point fonts (thanks to Paul Scott for the fix).
  • [all 3270] Script comments are now allowed (any input line beginning with # or !).
  • [wc3270] Added support for the Enhanced keymap modifier (EnhancedReturn is the keypad Enter key. Also added Enter, PageUp and PageDown as aliases for the Windows keys RETURN, PRIOR and NEXT.
  • [wc3270] Added oversize, font size and background color support to the Session Wizard.
  • [x3270] Fixed a problem with ignored -set and -clear options.
  • [c3270 and wc3270] Added support for the -oversize auto option, which allows the emulator to use the entire area of the terminal or console window it is running in.
  • [x3270] Removed the huge delay at start-up.
  • [x3270, c3270, s3270 and wc3270] Added support for TCP-socket-based scripting via the -scriptport option. For wc3270, this is the first time that scripting has been available.
  • [all 3270 except x3270] Added support for the screenTraceFile resource.
  • [all 3270] Fixed a file descriptor leak with the -socket option.
  • [all 3270] Fixed a crash with the Toggle action and undefined toggles.
  • [wc3270] Implemented no-install mode (allowing wc3270 to run without installing the software) and auto-shortcut mode (where wc3270 automatically creates a temporary shortcut file to match a session file and runs it).
  • [all 3270] When a hostname resolves to multiple addresses, try each until one works.
  • [all 3270] Corrected an issue where the keyboard would lock on the first screen when connecting to hosts like Hercules.
  • [wc3270] Added mappings of the Page Up and Page Down keys to PF(7) and PF(8) respectively.
  • [wc3270, ws3270] Removed the .dll files from the distribution.
  • [c3270] Corrected an issue with cursor and function keys not being recognized if they are the first key pressed.
  • [all 3270] BIND image screen sizing is now observed.
  • [pr3287 and wpr3287] Corrected the -charset documentation on the manual page.
  • [all 3270] Resurrected flipped-screen mode via the Flip and ToggleReverse actions.
  • [all 3270] Added a Seconds form to the Wait action, allowing a script or macro to delay itself an arbitrary length of time.
  • [wc3270] Modified the PrintText action so that Wordpad is started minimized.

Changes in version 3.3.9ga11, 25. March 2009

  • [x3270 and c3270] Re-enable the ibm_hosts file (it was accidentally being ignored).
  • [all but wc3270] Don't crash when there is no iconv translation for the locale codeset.
  • [all but x3270] Fixed a build failure in glue.c when DBCS was disabled.
  • [wc3270] Corrected the default keymap so that the uppercase versions of the Alt mapping also work.
  • [wc3270] Corrected the documentation of the printTextFont and printTextSize resources.
  • [c3270] Corrected a number of errors in parsing CursesColorForxxx resources.
  • [c3270] Added support for -rv, which puts c3270 into black-on-white mode.
  • [c3270] Added support for 16-color terminals, with the -color8 option overriding this and forcing 8-color support only. On a 16-color terminal, -allbold is no longer the default.
  • [c3270, wc3270, s3270 and tcl3270] Ensured that command-line parameters override session files.
  • [c3270] Made session files replace profiles, rather than just overridding any common definitions. This is more intuitive and consistent with x3270.

Changes in version 3.3.9ga11, 27. February 2009

Common Changes

  • Improved hostname parsing. Now backslashes can be used to quote any character, and square brackets can be used to quote any element (LU name, host name, or port).
  • Fixed a number of compiler warnings from newer versions of gcc and a number of small memory leaks.
  • Overhauled the host code pages and CGCSGIDs for DBCS. Added sbcsCgcsgid and dbcsCgcsgid resources to override the compiled-in values.
  • Added a caption text option to the PrintText action, which will place the specified caption above the screen image. Within the text, the string %T% is interpolated to a timestamp.
  • Improved the state dump when tracing starts to include NVT and SSCP-LU state and the SNA BIND image.
  • Updated the copyright and licensing notices (now a standard BSD license).
  • Added support for carriage-return (0x0d) characters in the String action, which imply the Newline action.
  • Changed the Attn action so that it sends an IAC BREAK in TN3270 mode, and locks the keyboard in TN3270E mode when the session is not SNA bound.
  • Added Traditional Chinese (host code page 937) support.
  • Extended the String action's \e and \x sequences to accept 4-digit hex values, thus allowing EBCDIC DBCS input and arbitrary Unicode input. Also added \u as an alias for \x.

Changes to x3270

  • Fixed a crash when pasting an empty selection.
  • Made the Query Reply response for x3270 identical to the other tools.
  • Included fonts for Traditional Chinese.

Changes to x3270 and c3270

  • Removed the nested copy of pr3287. from the source. pr3287 must now be built separately from its own package.

Changes to wc3270

  • Corrected a problem with color mapping in the OIA.
  • Changed the New Session Wizard to the Session Wizard and gave it the ability to edit existing session files and re-create missing session files. Note that this ability is limited to session files created with 3.3.9beta10 or later.
  • Added a wc3270.printer.codepage resource to set the Windows code page for the associated pr3287 printer session.
  • Simplified the operation of the New Session Wizard, so it asks fewer questions.
  • Added a pager to interactive mode.
  • Made the PrintText font and point size configurable via the printTextFont and printTextSize resources.
  • Changed the default 'blue' color for created shortcuts to a somewhat lighter shade, to make it more readable.
  • Changed the Session Wizard to specify the code page and proper font when creating shortcuts for DBCS sessions. This should allow DBCS to work on Windows 2000 and Vista.
  • Included ws3270 in the wc3270 release.

Changes to c3270 and wc3270

  • Added feedback for the progress of file transfers.
  • Implemented the Info action, which writes a message to the OIA (the line below the display).
  • Added a no-prompt mode, via the -noprompt command-line option and the noPrompt resource .
  • Added automatic reconnect, via the -reconnect command-line option and the reconnect resource.

Changes to ws3270 (formerly available as a pre-release)

  • Fixed a bug which resulted in all command timings being displayed as '-'.
  • Added the -localcp option and localCP resource to change the Windows code page used for local workstation I/O.
  • Added DBCS support and support for building using Microsoft tools.

Changes to pr3287 and wpr3287

  • Fixed a serious character-mapping bug.
  • Added DBCS support.

Changes to specific versions

  • [c3270, s3270, s3270, ws3270 and x3270] Added support for session files.
  • [All except wc3270 and ws3270] Extended the rtf option of the PrintText to non-Windows platforms.
  • [All except x3270] Fixed a number of issues with -xrm option processing and keymap display when backslash sequences were used.

Changes in version 3.3.8p2, 13 December 2008

  • [wc3270] Corrected the handling of 8-bit and DBCS characters in the PrintText action.
  • [tcl3270] Extended configure to find the Tcl library version automatically.
  • [wc3270] Corrected a problem which caused mouse clicks not to be recognized (not moving the cursor) if NumLock was set.
  • [all] Corrected the configure script to recognize a separately-installed iconv library even if the iconv() function is defined in libc.
  • [wc3270] Restored the bell sound, and added a visualBell resource to disable it.

Changes in version 3.3.8p1, 20 October 2008

  • [wc3270] Restored the Ctrl-] mapping for the Escape action, which had been inadvertently removed.
  • [wc3270] wc3270 now starts successfully on Windows Vista.
  • [c3270] On platforms that require the iconv library, c3270 once again recognizes ncurses names in keymaps.
  • [x3270] The module keysym2ucs.c now builds on FreeBSD.
  • [x3270] Selections now work properly on platforms that do not support XA_UTF8_STRING.

Changes in version 3.3.8, 11 October 2008

Version 3.3.8 includes a significant internal change, using Unicode for all translations between the host and the local workstation. This change should be transparent, but users who depended on certain behaviors of the old implementation may see unexpected differences.

Common Changes

  • Many more EBCDIC characters, such as Graphics Escape line-drawing and APL characters, are now properly displayed (even without special 3270 fonts), traced, cut/pasted with other applications, and returned by scripting actions like Ascii.
  • With two exceptions, the locale's encoding is now observed consistently when reading keymaps, generating trace files, etc. The exceptions are:
    • tcl3270 always uses UTF-8, per the internal Tcl convention.
    • Because Cygwin doesn't really support locales, the Windows ANSI code page is used as the local encoding instead.
    • Stateful encodings such as ISO 2022 are untested and very likely do not work.
  • The ICU library is no longer used, and ICU .cnv files are no longer included with the code.
  • Translation to/from the local encoding requires one of two facilities: Either libc must support __STDC_ISO_10646__ (wchar_ts are defined to be unicode values, as on Linux and Windows), or there must be an iconv library that can translate between UTF-8 and all local encodings.
  • DBCS support is enabled by default, except on Windows. It can be explicitly disabled in the configure script to reduce the size of the executable (removing several large translation tables).
  • The -v/--verbose option has been added to display build and copyright information.
  • The Thai host code page has changed from 838 to 1160.

Changes Common to the 3270 Terminal Emulators

  • The Key action now accepts Unicode arguments in the form U+nnnn, removing possible ambiguity from translating from the
  • Added a Source action to read script commands from a file.
  • Added a 10 second timeout to the start of the Transfer action.
  • Added an unlockDelayMs resource to change the number of milliseconds of delay before atually unlocking the keyboard after the host requests it. The default is 350; use 0 to disable the delay altogether.
  • IND$FILE file transfer now transfers DBCS text files properly.

Changes Common to 3287 Printer Emulators

  • Added direct support for all x3270 host character sets via the -charset option.
  • Added -trnpre and -trnpost options to specify files containing transparent data to send to the printer before and after each print job, respectively.

Product-Speific Changes

  • [x3270] Commands entered into the Print Screen Text dialog are now saved by the Save Changed Options in File option.
  • [x3270] Fixed some bad interactions between the pop-up keypad and the GNOME window manager.
  • [x3270] The Euro fonts have been folded into the standard fonts.
  • [x3270] The font menu is now arranged hierarchically by foundry and family.
  • [c3270] Added an underscore toggle to allow underlined fields to be displayed even on consoles with no native underlining support, by substituting underscore '_' characters for blanks and nulls in underlined fields.
  • [c3270] Overhauled Meta and Alt key support. Removed support for the archaic Meta modifier in keymaps (it was an alias for setting bit 0x80 in each key). Replaced it with an Alt modifier, which matches the ESC sequence sent for the Alt key by many terminals, and which can be combined with full 8-bit input characters.
  • [c3270] Changed the interpretation of keymaps so that keys and symbols are matched in Unicode. That is, keymap text is converted from the current locale's encoding to Unicode before matching, and input character codes are converted to Unicode before matching. This eliminates the difficulty in creating keymaps and interpreting traces in non-Latin-1 locales -- needing to translate from the accidental interpretation of 8-bit values as Latin-1 when they are not -- but with the side-effect of rendering some carefully-crafted existing keymaps invalid. Keymaps can also be written using Unicode U+nnnn notation.
  • [c3270] Changed the metaEscape resource so that auto means on, instead of using the terminfo km resource.
  • [c3270] Added an acs resource to control the use of curses ACS codes. If c3270.acs is set to true (the default), c3270 will use curses ACS codes for line-drawing characters. If set to false, it will display line-drawing characters with Unicode.
  • [wc3270] Added an underscore toggle to control how underlined and blinking fields are displayed. If it is set (the default), underlined fields are displayed by substituting underscore (_) characters for blanks and nulls, and blinking fields actually blink. If it is clear, underlined and blinking fields are displayed with highlighted backgrounds, which is compatible with previous verions of wc3270.
  • [wc3270] Left-clicking with the mouse will now move the cursor to that location.
  • [wc3270] The PrintText action now works, and is mapped by default to the sequence Alt <Key>p. The printer.name resource defines the default printer to use.
  • [wc3270] The PrintText action can now be used to produce a RichText snapshot of the screen contents, via the rtf keyword.
  • [wc3270] The program longer attempts to set the console code page, which was error-prone and unnecessary.
  • [wc3270] The idle command feature now works, controlled by the idleCommand, idleCommandEnabled and idleTimeout resources.
  • [wc3270] The program no longer attempts to set the console code page, which could lead to hangs on Vista.
  • [wc3270] The installation now creates a program group item to explore the wc3270 Application Data directory.
  • [wc3270] Corrected a problem with console color overrides, which prevented reverse-video mode (white background) from working properly. For now, the recommended method for enabling reverse video mode is to add these lines to your session file:
          wc3270.consoleColorForHostColor0: 15
          wc3270.consoleColorForHostColor7: 0
  • [wc3270] wc3270 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.
  • [tcl3270] Added a commandTimeout resource to force any Tcl3270 command to time out after the specified number of seconds. (Thanks to Mark Young.)
  • [tcl3270] Fixed a per-command memory leak. (Thanks to Mark Young.)
  • [wpr3287] Added a -printercp option to specify a particular code page for printer output.
  • [wpr3287] wpr3287 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.

Changes in x3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in x3270 3.3.7p7, 4. July 2008

  • Bug Fixes:
    • Corrected input of 8-bit characters when x3270 is run in a UTF-8 locale.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.
  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.

Changes in x3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Fixed an issue with Idle commands, which would cause x3270 to exit with a Not Found error as soon as the idle command fired.

Changes in x3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed the annoying delay when x3270 starts with an error pop-up.
    • Shortened the manpage so that it displays on non-groff platforms. The full text is still available in the HTML version.
    • Plugged a number of memory leaks.
    • x3270 will now compile on platforms that do not support IPv6, such as Cygwin.
    • x3270 will no longer crash or spin when the -script option is used.
    • Shifted function keys should work again (they map to PF13-PF24).
    • The screen can now be resized larger, as well as smaller.
    • Removed the dependency on <bitmaps/gray>, which required installing an obscure X11 development package on some platforms.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added a SelectAll action, mapped to Ctrl-A.

Changes in c3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.
    • Allowed c3270 to build under SLES 10's unusual ncurses configuration.

Changes in c3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in c3270 3.3.7p4, 29. February 2008

  • Bug Fixes:
    • Fixed c3270's configure script again, so it will build on systems without the ncurses library.
    • Enabled idle command functionality, which had been accidentally disabled.

Changes in c3270 3.3.7p1, 28. December 2007

  • Bug Fixes:
    • c3270's configure script would not detect missing ncurses header files, and c3270 would not build if ncursesw was not installed.

Changes in c3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • c3270 will now display characters such as the notsign ¬ properly in terminal windows in UTF-8 locales. Note that this display support requires an ncurses or curses library that supports wide characters.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added display of the host code page and locale codeset to the show status command.
    • Added support for changing the color mappings. The curses color for a given host color can be specified with the resource c3270.cursesColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a curses color number (0 through 7).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      c3270.cursesColorForDefault
      c3270.cursesColorForIntensified
      c3270.cursesColorForProtected
      c3270.cursesColorForProtectedIntensified
             
      The value for each of these is a curses color number (0 through 7).

Changes in wc3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed idle command support.

Changes in wc3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Fixed a problem with transferring binary files, where 0x0d characters might be acidentally added to or removed from the data.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in wc3270 3.3.7p5, 11. April 2008

  • Bug Fixes:
    • After installation is complete, get rid of mkshort.exe, which shares its name (but not its functionality) with a computer surveillance application.
    • Corrected several issues with key event processing and the default keymap.

Changes in wc3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Changed the New Session Wizard to create the Application Data directory, so wc3270 can be run by any user, not just the one that installed it.
    • Changed the default window title from the pathname of the session to just the session name.

Changes in wc3270 3.3.7p2, 15. January 2008

  • Bug Fixes:
    • Fixed an embarassing problem that kept wpr3287 from starting.

Changes in wc3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed line-drawing characters.
    • Enabled IPv6 support for Windows XP and later.
    • Set the input code page correctly, so that keyboard input works correctly when there is a mismatch between the default Windows code page and the code page implied by the wc3270 character set option.
  • New Features:
    • Added limited support for Windows 98. wc3270 will install and run on Windows 98, but internationalization support is limited -- the only supported host code page is 37, and the only supported Windows code page is 437. This is expected to improve in the future.
    • Added a wc3270.highlightUnderline resource to control highlighting of underlined and blinking text. (Set to false to disable background highlighting.)
    • Moved session files, keymaps and trace files to the Application Data directory. (wc3270 will still look in its installation directory for session files and keymaps, after first searching the Application Data directory.) This makes wc3270 a better Windows citizen in general, and a better Vista citizen in particular.
    • Added support for changing the color mappings. The console color for a given host color can be specified with the resource wc3270.consoleColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a console color number (0 through 15).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      wc3270.hostColorForDefault
      wc3270.hostColorForIntensified
      wc3270.hostColorForProtected
      wc3270.hostColorForProtectedIntensified
             
      The value for each of these is a host color number; the actual color displayed is defined by the corresponding wc3270.consoleColorForHostColorn resource.
    • Added a new cp1153 character set. It implements host code page 1153 and uses Windows code page 1250, used primarily in Central Europe.
    • Added display of the Windows code page to the character set screen in the New Session Wizard.
    • Added display of the host and Windows code pages to the show status command.

Changes in s3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in s3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in s3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer(Ascii) actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

      NOTE: If you were were previously running s3270 in a UTF-8 locale, this is an incompatible change. To ensure the previous behavior, set your locale to C before starting s3270.

Changes in tcl3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in tcl3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in tcl3270 3.3.7p3, 22. Febuary 2008

  • Bug Fixes:
    • Fixed a problem with non-ASCII characters returned by the Ascii command.
    • Fixed a problem with the Connect command, which resulted in subsequent actions not blocking properly.

Changes in tcl3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

Changes in pr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in pr3287 3.3.7, 25. December 2007

  • Enhancements:
    • Added proxy support via the -proxy option.

Changes in wpr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in wpr3287 3.3.7, 25. December 2007

(none)

Changes in x3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Fixed the highlighted attribute for individual regions of the screen (versus the highlighted field attribute); it had been accidentally disabled.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Pseudo-Color mode is no more. This was the mode that x3270 used when a 3278 model was specified, or if the m3279 resource were set to False. Pseudo-Color assigned colors to regions of the screen based on intensity and light-pen selectability, and did not support 3279 colors. Now turning off color or selecting a 3278 results in something that looks like a 3278 (i.e., it's green). To resurrect Pseudo-Color mode, set the following resources:
        x3270.inputColor: orange
        x3270.boldColor: cyan

Changes in c3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Got local process (-e) support to work again.
    • Fixed -mono -allbold mode.
    • c3270 now paints the entire screen, not just the areas it intends to use, so there are no uninitialized regions.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for the 3270 background color attribute.
    • Added more mappings to the 3270 default keymap (IC -> ToggleInsert, Ctrl<Key>U -> DeleteField, etc.).
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Like x3270 and wc3270, -model 3278 now specifies a green-screen 3278 (if the terminal supports color), and like x3270, -mono specifies that any color capabilities reported by the terminal should be ignored.

Changes in wc3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Restored line-drawing character support.
    • Restored background color support in NVT mode.
    • Corrected some screen rendering issues.
    • Fixed screen trace (-set screenTrace).
    • Removed the -mono option and mono resource.
  • New Features:
    • Added the Spanish character set, CP 284.
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for setting the window title, either automatically, or via the -title option or wc3270.title resource.
    • Added gray background highlighting of underlined and blinking text. Windows consoles don't support these attributes, but at least they can be distinguished from other text now.
    • Added background color support in 3270 mode.
    • Added a window to monitor trace output.
    • Greatly improved key event tracing.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in s3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in tcl3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in wc3270 3.3.5p9, 10. June 2007

  • Bug Fixes:
    • The shortcut cursor size property is now obeyed.
    • The -model 3278 option now works correctly.
  • New Features:
    • Added secure connection status to the status line and the show status command.
    • Reverse video is now supported.
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added a keymap tutorial to the documentation.

Changes in wc3270 3.3.5p8, 29. April 2007

  • Bug Fixes:
    • Fixed a hang when wpr3287 exits unexpectedly.
    • Improved behavior when input comes from multiple sources, such as when pasting text.
    • Greatly improved screen update speed.
  • New Features:
    • Added wpr3287 support back to the wizard. It was in the GUI version, but was never in the text version.
    • Integrated new back-end printer support in wpr3287, including a new wc3270.printer.name resource.
    • Added a Paste() action, mapped to Ctrl-V, to do multi-line paste properly.
    • Added a .wc3270km suffix to keymap files.
    • Added keymap support to the wizard.
    • Added interactive prompting to the Transfer() action.

Changes in wpr3287 3.3.5p8, 29. April 2007

  • New Features:
    • Added direct support for Windows printers, instead of relying on the DOS PRINT command. This included changing the -command option to a -printer option, to specify the Windows printer to use as a back end.

Changes in x3270 3.3.5p6, 7. April 2007

  • Bug Fixes:
    • x3270 will now build with ICU 3.6.
    • A long-standing screen update bug is finally fixed.
    • The unused x3270hist.pl script is no longer installed.

Changes in c3270 3.3.5p4, 7. April 2007

  • Bug Fixes:
    • c3270 can now be built without File Transfer support.
    • The unused x3270hist.pl script is no longer installed.

Changes in wc3270 3.3.5p3, 2. March 2007

  • Bug Fixes:
    • Reverted the wc3270 New Session Wizard to the non-GUI version, because the GUI version, built with Microsoft Visual C++ 2005 Express Edition, had too many dependencies (latest service pack, .NET framework) on the target machine.

Changes in wc3270 3.3.5p2, 16. February 2007

  • Bug Fixes:
    • Ensured that the desktop shortcuts specify Lucida Console, so non-ASCII-7 characters are displayed properly.
  • New Features:
    • Added a file association for the .wc3270 suffix.
    • Replaced the console version of the New Session Wizard with a proper GUI version.

Changes in wc3270 3.3.5p1, 6. February 2007

  • Bug Fixes:
    • Added the working directory to the desktop links created by the setup program.
  • New Features:
    • Added printer session (wpr3287) support.

Changes in x3270 3.3.5, 1. February 2007

  • Bug Fixes:
    • Fixed a crash when the user's home directory or the ~/.x3270connect file wasn't writeable.
    • Fixed some endcases when pasting text that wraps lines and a field skip is encountered.
    • Fixed the handling of SI characters in cut/pasted text.
    • Allow the use of ICU version 3.0 or greater.
    • Fixed a scripting hang when the host disconnects during Wait(output)).
    • Turned the unlockDelay option back on by default.
    • Fixed a problem where unlockDelay could result in the keyboard never unlocking, if the host unlocked the keyboard often enough.
    • Added a workaround for very old snprintf() implementations.
    • Fixed a problem with DBCS input corrupting existing DBCS subfields.
    • Fixed a problem with the Wait action in the expect glue. (Thanks to Jason Howk for the fix.)
    • Enlarged the input buffer in x3270if. (Thanks to Igor Klingen for the fix.)
    • Fixed a SIGCHLD handler issue on AIX.
    • Fixed a problem with CR/LF translation on ASCII file transfers.
  • New Features:
    • Added a -socket option to x3270, s3270 and c3270 to allow a script to connect to a Unix-domain socket to control the emulator, and added a -p option to x3270if to connect to the socket.
    • Added optional support for plugins, with a first plugin to implement command history on VM/CMS and TSO hosts.
    • Allow arbitrary color names (#rrggbb) to be used in color schemes.
    • Added support for hierarchical macro menus.
    • Added an XkSelector resource to allow transparent support of non-English keyboards.
    • Added preliminary support the 16-bit display fonts and the Persian character set.
    • Added Title and WindowState actions to allow the x3270 window title and icon state to bw changed respectively.

Changes in x3270 3.3.4, 10. April 2005

  • Bug Fixes:
    • The code once again builds on Cygwin and other systems not supporting IPv6.
    • The -xrm option works again in x3270.
    • The -name X Toolkit option works with x3270, though not yet with app-defaults files.
    • Removed spurious 'no child' error messages from pr3287 on some systems.
    • Removed unintended blank-line suppression from the output of PrintText html string.
    • Restored some missing keymap definitions (rlx, ow) and some missing lines from other keymap definitions (apl).
    • Restored the automatic keyboard unlock delay when processing a macro or string. This allows macros and strings with embedded AID sequences to work with hosts that unlock the keyboard before they finish processing a command. Scripts are presumed to be able to figure out when the host is finished, or can set the unlockDelay resource to true get the delay all the time.
    • Fixed an apparent hang (actually just extreme slowness) when the host sends a message larger than 4 Kbytes on an SSL tunnel.
    • Removed spurious 'Wait timed out' errors in the Wait action.
  • New Features:
    • Added a newer, more flexible version of Don Russell's RPQNAMES support.
    • Added support for IPv6.
    • Added an oldclick keymap to restore the pre-3.3 mouse click behavior.

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta2, 1. February 2005

  • Bug Fixes:
    • Reduced the Resident Set Size (RSS) of x3270 from about 40 MBytes to less than 4 MBytes. This was a bug in how compiled-in app-defaults files were generated.
    • Got separate app-defaults files (configure --enable-app-defaults) to work again.
    • Fixed a crash when a login macro is used in NVT mode or when the host un-negotiates TN3270E mode.
    • Fixed the titles of the Copyright and Configuration pop-ups.
    • Temporarily disabled the RPQNAMES Query Reply. It was causing IBM QMF to crash. It can be re-enabled by adding #define X3270_RPQNAMES 1 to conf.h. Hopefully a proper fix can be found shortly.
  • New Features:

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta1, 31. December 2004

  • Bug Fixes:
    • The Transfer() action did not work at all -- it generated (null) as the name of the IND$FILE command. Also improved its behavior when invoked from a script or macro in x3270 and c3270.
    • Corrected the definition of the hebrew (code page 424) character set, removing undefined characters.
    • Corrected the display character set for the brazilian (code page 275) character set.
    • Corrected the character set definition logic so that undefined ASCII codes are truly undefined in NVT mode.
    • Corrected the ibm_hosts file (the hostsFile resource or the -hostsfile option). Variable and tilde substitution are now performed on the value, and if a non-default value is specified and the file does not exist, an error pop-up is generated.
    • Added a pause to make sure that c3270 start-up error messages will be seen.
    • Got the c3270 default field colors right, and made all-bold mode actually make all the fields bold.
    • Fixed the default primary/alternate screen size (it was alternate, it's supposed to be primary).
    • Fixed c3270 color support with ncurses and 80/132 screen-size switching. Sometimes only one of the screen sizes had color.
    • Fixed a memory leak in pr3287 when the -reconnect option is used. (Thanks to Marcelo Lemos for the fix.)
    • Fixed the output of NVT-mode ANSI line-drawing characters in the Ascii() scripting action. These were formerly all output as blanks; now they are output in the same was as x3270 3.2.
    • Fixed the display of NVT-mode ANSI line-drawing characters when x3270 is using a 3270 font.
    • Fixed the display of DBCS blanks, which sometimes displayed as 'undefined' characters.
    • Fixed DBCS character display with fonts whose maximum bounds are larger than their reported line-spacing bounds.
    • Fixed make depend.
    • Fixed x3270_glue.expect, which got confused when there was a whitespace-delimited double-quote in the emulator output.
    • Fixed crashes when the entire File or Options menus were suppressed.
    • Fixed a scripting hang when an UNBIND command arrived while an AID was pending.
    • Fixed a problem with the incomplete processing of a NULLing Program Tab order, which could leave formatting artifacts on the screen.
    • Removed <subchar1> clauses in two of the .ucm files that prevents later versions of ICU's makeconv from accepting them, and removed DOS carriage-return characters from the CP837 .ucm file.
    • Corrected some DFT-mode file upload problems: corrected the data length, and corrected an empty-buffer problem when the file size was an even multiple of the buffer size.
    • Corrected a DBCS conversion problem with ICU 3.0.
    • Added variable buffer-size support to DFT file transfers.
    • Corrected a line-drawing character bug in c3270.
    • Fixed a buffer overflow problem in the ReadBuffer action.
    • Fixed garbage characters generated for APL data by the Ascii and ReadBuffer actions.
    • Allow 0 timeouts in Wait actions.
  • New Features:
    • Added command-line options to the pr3287 trace file.
    • Added support for dead keys (acute, grave, circumflex, tilde, diaeresis) to the x3270 default keymap, and improved the Latin-1 compose map. (Thanks to Marcelo Lemos for the change.)
    • Added new actions for improved mouse interactions, and made them the default. Button 1 now moves the cursor, without the Shift key.
    • Added support for DBCS in pr3287, but only when started from an x3270 or c3270 session.
    • Added Don Russell's RPQNAMES support.
    • Removed Minolta-copyrighted 5250 code, because of licensing problems.
    • Added an aidWait toggle to allow AID script actions (Clear, Enter, PA and PF) to complete immediately without waiting for the host to unlock the keyboard, and a Wait(Unlock) action action to block a script until the keyboard is unlocked, regardless of the state of the new toggle.
    • Removed the old scripting hack that delayed actually unlocking the keyboard for 50ms after the host indicates that it should be unlocked. Added an unlockDelay resource, which can be set to true to turn the delay hack back on.
    • Added a dftBufferSize resource to set the default DFT buffer size.
    • Added an x3270 Save Screen Text menu option to save the screen image in a file, optionally in HTML.
    • Added options to the PrintText action to save to a file, to save HTML, and to return the text as script data.

Changes in x3270, c3270, s3270 and tcl3270 3.3.2, 1. December 2003

  • Bug Fixes:
    • Corrected an x3270 screen-redraw crash when using fixedSize and xim.
    • Corrected a problem in x3270_glue.expect, which caused Tcl syntax errors if a string began with a dash. Thanks to David Taylor for the fix.
    • Fixed a problem with x3270 DBCS input when using a single DBCS/SBCS character set.
    • Made DBCS encoding recognition automatic wherever possible, leaving the -km option for cases when x3270 can't figure it out from the locale.
    • Made c3270's configure more robust when it can't find one or the other of libncurses or ncurses.h.
    • Got automatic pr3287 start-up (-printerlu) working again in c3270.
    • Fixed an s3270 crash which made s3270 3.3.1alpha10 pretty much useless.
  • New Features:
    • Added support for Cyrillic keysyms to the x3270 Default() action.
    • Added an 'unlocked' icon for unencrypted connections, if x3270 is built with SSL/TLS support.
    • Error messages are now written to the trace file.
    • The response to the TELNET TIMING MARK option has been changed to make it compatible with the majority of TELNET clients. The response to DO TIMING MARK is now WONT TIMING MARK. To restore the previous behavior (responding with WILL TIMING MARK, originally derived from the BSD TELNET client), set the resource x3270.bsdTm to true.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha10, 29. August 2003

  • Bug Fixes:
    • Made nondisplay fields invisible to the Ascii() action.
    • Corrected start-field values at the beginning of data stream traces and in the 3270 Read Buffer response.
    • Corrected a tight loop in the macro error cancellation logic.
    • Corrected a crash when connecting to a host and there is no menu bar visible.
    • Corrected x3270 crashes in monochrome mode (-mono) and pseudo-color mode (-model 3278).
  • New Features:
    • Added a ReadBuffer() action to dump the entire contents of the 3270 buffer, including field attributes and extended attributes.
    • Added support for suppress resources for each menu item. If set to True, that menu item will not appear.
    • Added a suppressActions resource, a list of the names of actions to disable. This is primarily for controlled environments where the user does not have access to the x3270 command line, but can edit keymap definitions.
    • Added a Setverbose function to x3270_glue.expect to allow verbosity to be changed on the fly. (Courtesy of David Taylor.)
    • Added the ability to define resources in an environment variable, $X3270RDB. The environment variable overrides values set in the profile file, but is overridden by command-line options.
    • Added a fixedSize resource to force the x3270 main window to a particular size. fixedSize has the form widthxheight, in pixels. The 3270 display will float in the center of the window, if need be.
    • Added a new x3270 keypad position (x3270.keypad): insideRight. This positions the keypad on top of the upper right-hand corner of the x3270 window, just under the keypad button on the menu bar.

Changes in pr3287 3.3.1alpha10, 10. August 2003

  • Enhancements:
    • Added support for the -tracedir option, to specify a directory to store trace files in.
    • Added support the the -eojtimeout option, to automatically flush any pending print job after a specified period of inactivity.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha9, 24. July 2003

  • Bug Fixes:
    • DBCS character set names are displayed in the x3270 Options->Font menu only when DBCS support is built into x3270.
    • Removed the concept of 'per-host' resources. Use profiles for this.
    • Fixed idle commands. They were pretty much hopeless in 3.3.1alpha8 and 3.2.20.
    • Fixed a Unicode conversion crash.
    • Fixed a bug in processing the Modify Field order, which would cause the character set attribute for the field to be accidentally reset to the default.
  • New Features:
    • x3270 user-specified lists (character sets, hosts, fonts, color schemes) can now be organized into sub-lists. The name Bob>Fred>Tony specifies that there is a sub-list called Bob, which contains a sub-list Fred, which contains the item Tony.
    • The TELNET START-TLS option is now supported.

Changes in pr3287 3.3.1alpha9, 30. July 2003

  • Bug Fixes:
    • Ignore SIGINT in the print job process, so that killing an interactive pr3287 with ^C won't cause buffered data to be lost.
    • Fixed a problem with losing a byte of data after an SHF order.
    • Fixed the SCS HT order, which was completely broken.
  • Enhancements:
    • Added support for SIGUSR1 to flush the print job.
    • Added support for the TELNET START-TLS option.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha8, 15. April 2003

  • Bug Fixes:
    • Builds cleanly on Linux with -Wall -ansi -pedantic.
    • Builds without OpenSSL libraries being present.
    • Correctly records Field Attributes in the initial screen snapshot in a Data Stream Trace file.
    • Auto-Skip fields work properly.
    • "Dead" positions in DBCS fields are handled correctly.
    • Invalid host DBCS characters are handled better and are displayed in the Data Stream Trace file.
    • The Erase action now works properly with DBCS characters.
    • The x3270 Visible Control Characters toggle now works properly.
    • The EBCDIC notsign '¬' can now be entered in c3270 with Ctrl-A, ^ (it formerly caused an error message).
  • New Features:
    • The Erase action is now the default for the BackSpace key in x3270.
    • Ctrl-A, a is now mapped onto the Attn action in the c3270 default 3270 keymap.
    • Four more Japanese host code pages have been added: 930, 939, 1390 and 1399. This uses new support for combined SBCS/DBCS code pages.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1, 14. February 2003

  • Bug Fixes:
    • (Same as x3270 3.2.20)
  • New Features:
    • DBCS support for Simplfied Chinese and Japanese, including x3270 integration with XIM.
    • Tunneled SSL support added (entire Telnet session inside of an SSL tunnel). Uses the OpenSSL library. Toggled with an 'L:' prefix on the hostname.
    • A Visible Control Characters toggle replaces x3270's 3270d Debug Font.
    • About x3270 pop-up split into three smaller pieces.
ibm-3270-3.3.10ga4/wc3270/html/Build.html0000644000175000017500000000620511254565670017012 0ustar bastianbastian wc3270 Build Instructions

wc3270 Build Instructions

Using MinGW

wc3270 can be built on Windows using the MinGW tools under Cygwin. For more information about MinGW, visit the MinGW webpage. For more information about Cygwin, visit the Cygwin webpage.

The minimum set of Cygwin packages needed to build wc3270 are:

  • The default set (bash, etc.)
  • The make package from the Devel group.
  • The gcc-core package from the Devel group.

[optional] If you want SSL support, you will need to build a MinGW OpenSSL library. That requres the following packages:

  • The openssl package from the Net group. Note that you want the source for openssl, not just the binaries.
  • The perl package from the Interpreters group.
[optional] To build and install the OpenSSL library, use the following Cygwin shell commands:
   cd /usr/src/openssl-*
   ./Configure --prefix=/usr/local/mingw-openssl mingw
   make
   make install

To build wc3270 (with or without SSL support), start a Cygwin shell, cd to the directory where the source code resides, and type:

   make

wc3270 was developed primarily on 32-bit Windows XP, but should be buildable on Windows Server 2003 or Windows 2000 (though Windows 2000 has been known to build defective wc3270 DLLs). It has not been built on 64-bit Windows or on Windows Vista.

The source tarball also includes an .iss file for use with Inno Setup. This is used to construct the install executable. See the Inno Setup webpage for details.

wc3270 can also be built on Linux, using the MinGW cross-compiler. (This is how public releases of wc3270 are built.) The precise method for building a cross-compiler varies with gcc, Binutils and MinGW releases, but this link should get you started.

Using Microsoft Tools

To build wc3270 using Microsoft Visual C++, start a Command Prompt window. At the command prompt, 'cd' to the wc3270 source directory, and type:
   nmake /f Msc\Makefile

This will build wc3270.exe and the DLLs and utilities needed to install and run it.

Note that the resulting version of wc3270 will not include SSL support. To build wc3270 with a statically-linked OpenSSL library, you must modify Msc\Makefile; instructions for doing that are included in the file.

ibm-3270-3.3.10ga4/wc3270/html/x3270if.html0000644000175000017500000001606611261530011017036 0ustar bastianbastian x3270if Manual Page

x3270if Manual Page

Contents

Name
Synopsis
Description
Options
Exit Status
Environment
See Also
Copyright

Name

x3270if - command interface to x3270, c3270 and s3270

Synopsis

x3270if [option]... [ action ]
x3270if -i

Description

x3270if provides an interface between scripts and the 3270 emulators x3270, c3270, and s3270.

x3270if operates in one of two modes. In action mode, it passes a single action and parameters to the emulator for execution. The result of the action is written to standard output, along with the (optional) status of the emulator. (The action is optional as well, so that x3270if can just reports the emulator status.) In iterative mode, it forms a continuous conduit between a script and the emulator.

The action takes the form:

action-name(param[,param]...)

The parentheses are manatory, and usually must be quoted when x3270if is called from a shell script.

If any param contains a space or comma, it must be surrounded by double quotes.

Options

-s field
Causes x3270if to write to stdout the value of one of the emulator status fields. Field is an integer in the range 0 through 11. The value 0 is a no-op and is used only to return exit status indicating the state of the emulator. The indices 1-11 and meanings of each field are documented on the x3270-script(1) manual page. If an action is specified as well, the status field is written after the output of the action, separated by a newline. The -s option is mutually exclusive with the -S and -i options.
-S
Causes x3270if to write to stdout the value of all of the emulator status fields. If an action is specified as well, the status fields are written after the output of the action, separated by a newline. The -S option is mutually exclusive with the -s and -i options.
-i
Puts x3270if in iterative mode. Data from x3270if's standard input is copied to the emulator's script input; data from the emulator's script output is copied to x3270if's standard output. The -i option is mutually exclusive with the -s and -S options. x3270if runs until it detects end-of-file on its standard input or on the output from the emulator. (This mode exists primarily to give expect(1) a process to run, on systems which do not support bidirectional pipes.)
-p process-id
Causes x3270if to use a Unix-domain socket to connect to the emulator, rather than pipe file descriptors given in environment variables. The emulator must have been started with the -socket option.
-t port
Causes x3270if to use a TCP socket to connect to the emulator, rather than pipe file descriptors given in environment variables. The emulator must have been started with the -scriptport option.
-v
Turns on verbose debug messages, showing on stderr the literal data that is passed between the emulator and x3270if.

Exit Status

In action mode, if the requested action succeeds, x3270if exits with status 0. If the action fails, x3270if exits with status 1. In iterative mode, x3270if exits with status 0 when it encounters end-of-file. If there is an operational error within x3270if itself, such as a command-line syntax error, missing environment variable, or an unexpectedly closed pipe, x3270if exits with status 2.

Environment

When a script is run as a child process of one of the emulators via the Script action, the emulator passes information about how to control it in environment variables.

On Unix, the emulator process creates a pair of pipes for communication with the child script process. The values of the file descriptors for these pipes are encoded as text in two environment variables:

X3270OUTPUT
Output from the emulator, input to the child process.
X3270INPUT
Input to the emulator, output from the child process.

On Windows, or when a Unix emulator is started with the -scriptport option, the emulator will pass the port number encoded as text in the X3270PORT environment variable. x3270if will use that value as if it had been passed to it via the -t option. X3270PORT takes precedence over X3270OUTPUT and X3270INPUT.

See Also

x3270(1), c3270(1), s3270(1), x3270-script(1)

Copyright

Copyright © 1999-2009, Paul Mattes.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

*
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
*
Neither the names of Paul Mattes nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES `AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/wc3270/html/Lineage.html0000644000175000017500000000445711254565670017326 0ustar bastianbastian wc3270 Lineage

wc3270 Lineage

Here is the official copyright notice for wc3270 3.3. It is a standard 3-element BSD license.

Copyright © 1993-2009, Paul Mattes.
Copyright © 2004-2005, Don Russell.
Copyright © 2004, Dick Altenbern.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

ibm-3270-3.3.10ga4/wc3270/html/README.html0000644000175000017500000000473111254565670016712 0ustar bastianbastian wc3270 3.3 General Release

wc3270 3.3 General Release

wc3270 is a Windows console-based IBM 3278/3279 terminal emulator.

The online documentation includes:

Manual
The full wc3270 manual
Manual
The full ws3270 manual
Manual
The manual page for scripting functions.
Manual
The manual page for the x3270if utility
Intro
What wc3270 is
Lineage
Where wc3270 came from (copyright stuff)
Build
How to build wc3270 from source
FAQ
Frequently Asked Questions (what to do when something goes wrong)
Keymap
How to create and debug a custom keymap
ReleaseNotes
What's new in this release
Resources
A complete list of wc3270 resources (configuration items)
Bugs
What's broken in this release
Wishlist
What isn't in this release
If you have a problem, scan through FAQ; there are lots of interesting answers there.

Updates to wc3270, as well as the current status of development and bugs, are available from the x3270 Web Page.

Feel free to send comments, criticism, suggestions, complaints, etc., to Paul Mattes, Paul.Mattes@usa.net. Requests will be addressed as time and resources permit.

There is also an x3270 mailing list, which includes information about wc3270 and news about new releases. Send a message to Paul.Mattes@usa.net (a real person, with automatic responses for certain subject lines) to get on the list. ibm-3270-3.3.10ga4/wc3270/html/Wishlist.html0000644000175000017500000000126311254565670017560 0ustar bastianbastian The wc3270 Wish List

The wc3270 Wish List

Here is a list of some of the more interesting suggestions and requests made for wc3270. You may also take this as a list of functions that are definitely not in this version of wc3270.

There is no guarantee that anyone is actively working on these, but feel free to yourself...

  • A utility to define and edit keymaps.
ibm-3270-3.3.10ga4/wc3270/x3270-icon2.bmp0000644000175000017500000003006611254565671016417 0ustar bastianbastianBM606(@@0  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•¦²­·”¥±ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ}Ÿ…˜¥yœr‡–Yn~e}Žbz‹bz‹bz‹hi€s‰™†š§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·Âʤ°º“¢­{]t„Zp“¡t‰˜oƒ’s‡–r‡–r‡–n„”ay‰[t…bzŠd|j‘i‘ay‰m…”n…”rˆ˜u‹švŒœvŒ›wsŠšz†™¦ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ£®·™£s…“Xn~DWgCVfShxYoXn\s„Yq‚]u…^v‡ax‰bzŠhg~f~Žhj€‘n…•m…”q‡—sŠ™xŽ}’¡…™§Šž«‚–¥Šž¬¡®“¦³”¦´’¥²•¨µ–¥sŠ™r‰˜rˆ˜o†•ƒ—¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†˜¤JarF]nH_qJbsQizRj{byŠf}Že|Œhi€p†•uŠ™yŽzŸ”¢•¤€•£}’¢~“¢‚—¥‚—¥‚—¦†š©ˆª‹ž¬‹Ÿ¬Ž¢¯Šž¬„˜§Ž¢¯£±‘¤±¢°“¥³‘¤²u‹›qˆ˜vŒœvŒ›wŒœ˜¨µ¯¼Åÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’¤¯g}iŽk‚’mƒ“tŠ™xŽœ„™§†›¨‡›©‡›©ˆœª‹ž¬‹Ÿ¬‡›ª„™§‚—¦„˜§€•¤€•¤~”£~”£{‘ |‘ |‘ –¥”£”£„™§†š©„˜§…™¨Ž¡¯‹ž­Šž­Ž¡¯–¨µŠž«uŠš~“¢–¥€•¤|‘¡†š¨“¦²½ÈÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ´ÁÊŽ¢¯¢°Ž¢¯£±“¥³’¥²’¦²”§´’¥³¡¯‹ž­‡œª€•¤zŸvŒœxŽvŒœsŠ™u‹št‰˜wtŠ™s‡–s…“yŠ—x‰–{Œ˜y‹—s…’i|ŠWgtz‹—Šž¬…˜¦†˜¤‹›¥’¥²…™§| †š©‡›©…™¨„˜§Šž¬’¥²ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¨¹Ã—ª·“¦³’¥²“¦³”§´’¥³Ž¡¯žª…—£‚”¡}s‡•k€eyˆ^p}SeqJ[iQbn7EP1;D!-6*      !+4>MZ *4& VeqŠ«{Ÿ€”£Œ ­¡®‹Ÿ­¡¯Ž¢°ÃÎÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ°¾È”¦³Ž¡¯’¦³˜ª·’¥³•§´]go8@I8>G;CJ.8A%/8&0"#&&!*&0".93@J;HQHVbTbm$,4   '*3;  " !!*Tbm„™¨~“¢ˆœªŽ¡¯¡¯”§´•¨µ¾ÉÑÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯½Ç¡®•¨µ„• ZjuNZc$.7  KZf/9C&-!+5.;G8DNBOZK[hPcq_rhz‡kŒvŠ˜„—¤ŒŸ«œ®¹ž°¼}Š“P\fXcl+4=&/ !% $qƒ‘‰¬…™§¡¯£°˜«·›­¹‘ «ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ©¸Â“¦³fqz  ",  fu€†–¡‚•¡”¢‡š¨…™¦ƒ—¦„˜¦‚—¥‰«¡¯“¦³—ª¶™«· ±¼£´À¦·Â¬¼Æ­½Ç·ÅÌQW]#/;E&# 9DLŠªŠž¬†›©¢°’¥³•¦³K`p€“Ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿœ®¸„”ž!)2 "-'2$+1;?BŠš¥œ®»—ª¶“¦³¢°¢°£°£±•¨µ—ª·—ª·¯º ±½Ÿ±½¢²¾¦·Á®¿È±ÁÊ‚Ž– &+7A ) **4=}‘ž£°‡œ©ˆœª¡¯Œž«CVeo†–„™¦‰œ©ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ³ÀÈ„’œ8@I %1*6"*18u…¢´Àœ®º”§³“¥²¢¯ŒŸ­ŒŸ¬Ž¡®¡®¢¯“¥±’¤±–§³¡­‘¡¬”¤¯’Ÿw…‘-9C#.71>H*7C+)!)1?Iq…“Ž¢°‰ªˆ«’ G2;C-7?$.7*4%$  3@L~’Ÿ‘¥²†›©p‚6K\d{Œc{‹e}h€t‹š—©´ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿP[d:CL+7A%.")%             8FQu…’s„‘GXf;O_e}e|Œd|Œf~Ži€l„“s‰™u‰˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.5; *            ! $ "    *#1="0<,;AVff~Že|hi€‘hj‘lƒ“j€u‰—|œÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸ¤¨=DK)1$,4$-)$/*6 .:)5*6.<"3A$5C$6D&8E&8F%7F':I"2A#4C 1A,;+:)9*9 .,&&))!0"0%4Mcsh€i€‘lƒ’i€‘j’lƒ“k‚’k‚’e}Ž`w‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿž§­o|…–¢zˆ’YlzRfvRiyE\n?Vh9Pb7N`6L^5K].DU,BS-CT.CU/EV*?P)=O$8I"5E.?*9'6-*& $ " "'+!/Ndslƒ“k‚’m„”k‚’m„”n…”lƒ“k‚’i€]u†g|‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…˜¦e}Ž[s„Um~H`rE[m>Ug8N`4J\4J\0FW+AR.CT/EV-CT)=N';L%8I"5F-=&4!/) '  ! "  " # $Mbrkƒ’m„“lƒ’lƒ“k‚’n…•m„”j’g^v‡ezŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€•£d|ŒTl}OgyF^pBYk=Tf8Oa4K\3J[.CU,AS/DU/EV)=N%9J%8I%8I$7H1B&6 -' ! !      !Tjzkƒ’lƒ“n…•o†•lƒ“n…•lƒ“he|Œax‰aw‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ}‘ `xˆKcuKbtAXj,<"/) $ &   "   "^u„n…•m„”o†–p‡—n…”p‡—m„”hg~bz‹_u†ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”¢_u†QgyQi{JbsG^pF^oC[m;Rd9Oa6M^4J\5L^/EV(=N&:K%:K';L#7H 3C0@(6%4 - - -,!/+!.9?N\p‡–r‰˜p‡—n…•p‡—p‡—q‡—o†–j‘hayŠwŒšÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ›¨cyˆbxˆ`wˆXp€NfwLctE\m>Uf=Se:Pb4J\3J\/DV*?P';K%9I(0@#4C4HW`u…v‹švŒœt‹šr‰™qˆ˜qˆ—o†–m„”m„”k‚’hc{Œ„—¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿh}‹F[lCWh?Te>Te:O`>TdDYjLbsLbrQfwWm}^u…\r‚Wm~Xo~Wm}Zp€Uk|NeuI`q@Ug?Ug?Vg6K]7K\I`pd{Šrˆ˜wxŽt‹šsŠ™t‹šuŒ›rˆ˜lƒ“j‘mƒ“j‘i€‘e~Žzšÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢±¼ˆ›¨” q„’n€Žqƒ‘zŒ™’Ÿˆ™¦Œž«¡­¡­¢®¡­ŽŸª‹›§ˆ™¥‰š¥‰š¦Šœ¨†™¥†™¦…˜¥€”¡xŒšm‚’Um}e{‹u‹šzŸyŸxŽxu‹št‹štŠšwt‹šlƒ“j‘l‚’j‚‘f~Žc{‹yŒ™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ°À̵ÄΨ¹Ä—¦°‰•u„Ž_kuY`f^di^dh]dhV]bQY`JSYDOV=GN7>D4:@29C4;D5Dª»ÇªºÅ¨¸Ã¤µÀŸ²½œ¯»š¬¸˜«·•©µ—©¶’¥³¢°Œ ®Šž¬ˆœ«‡œª‡›ª‚–¥wœÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ).4      "                 ?DI§¸ÃªºÄ©¹Ä¦·Á¡²¾ž°¼˜ª·˜«·–ª¶–¨µ’¥²Ž¢¯‹Ÿ­Šž¬Š¬Šž«†š©ƒ—¦zžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ).4      "                   CIL¥·Â«¼ÅªºÄ¦¶Á¢³¾Ÿ±¼œ®º™«·”§´•§´‘¤±¢¯ŠŸ­‹ ­Šž¬ˆœ«–¤‚—¥}’¡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ'+0     # -:@)             Xci¨ºÅ­½ÇªºÅ¨¹Ã£´¿ž°»Ÿ±½™«·’¥³”§´“¦³¢° ®Œ ®Šž¬…š©‚—¥€”¤xžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ'+0     ! + $80                ju}¨¹Ä®¾ÈªºÄ¨¹Ä¤µÁŸ²½ž°¼™¬¸“¦³•§´“¦³‘¤²£°Ž¢¯ŒŸ®‰¬‡›©“£r‰˜¸ÃÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)17      # .:              u†¤µÁ®¾ÈªºÄ¨¹Ä¤µÀ¡³¾®º™¬¸“¦³”¦³“¥²“¦³‘¤± ®Šž­ˆœª…™¨“£vŒ›¼ÆÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+4<        5 &              x…Ž£µÀ­½ÇªºÄ¨¸Ã£´À ±½¯»š¬¸”§´“¦³”§´”§´‘¤²¢°ˆ«†›©ƒ˜¦~”£u‹›ºÅÍÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ6@G                &‰™£¥¶Á­½ÈªºÅ§¸Ã¤µÀ¡²¾¯»™«·”§´”§´“¦³•¨µ”§´’¥²Œ ®ˆœªƒ—¦”£x¼ÇÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ #include "appres.h" #include "resources.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "macrosc.h" #include "popupsc.h" #include "screenc.h" #include "statusc.h" #include "trace_dsc.h" #include "utilc.h" #include #define ISREALLYSPACE(c) ((((c) & 0xff) <= ' ') && isspace(c)) #define WC3270KM_SUFFIX "wc3270km" #define SUFFIX_LEN sizeof(WC3270KM_SUFFIX) #define KM_3270_ONLY 0x0100 /* used in 3270 mode only */ #define KM_NVT_ONLY 0x0200 /* used in NVT mode only */ #define KM_INACTIVE 0x0400 /* wrong NVT/3270 mode, or overridden */ #define KM_KEYMAP 0x8000 #define KM_HINTS (KM_SHIFT | KM_CTRL | KM_ALT | KM_ENHANCED) struct keymap { struct keymap *next; /* next element in the keymap */ struct keymap *successor; /* mapping that overrules this one */ int ncodes; /* number of key codes */ int *codes; /* key codes (ASCII or vkey symbols) */ int *hints; /* hints (modifiers and restrictions) */ char *file; /* file or resource name */ int line; /* keymap line number */ char *action; /* action(s) to perform */ }; #define IS_INACTIVE(k) ((k)->hints[0] & KM_INACTIVE) static struct keymap *master_keymap = NULL; static struct keymap **nextk = &master_keymap; static Boolean last_3270 = False; static Boolean last_nvt = False; static int lookup_ccode(const char *s); static void keymap_3270_mode(Boolean); static void read_one_keymap(const char *name, const char *fn, const char *r0, int flags); static void clear_keymap(void); static void set_inactive(void); /* * Parse a key definition. * Returns <0 for error, 1 for key found and parsed, 0 for nothing found. * Returns the balance of the string and the character code. * Is destructive. */ enum { PKE_MKEY = -1, PKE_UMOD = -2, PKE_MSYM = -3, PKE_USYM = -4 } pk_error; static char *pk_errmsg[] = { "Missing ", "Unknown modifier", "Missing keysym", "Unknown keysym" }; static int parse_keydef(char **str, int *ccode, int *hint) { char *s = *str; char *t; char *ks; int flags = 0; KeySym Ks; int xccode; /* Check for nothing. */ while (ISREALLYSPACE(*s)) s++; if (!*s) return 0; *str = s; s = strstr(s, ""); if (s == CN) return PKE_MKEY; ks = s + 5; *s = '\0'; s = *str; while (*s) { while (ISREALLYSPACE(*s)) s++; if (!*s) break; if (!strncasecmp(s, "Shift", 5)) { flags |= KM_SHIFT; s += 5; } else if (!strncasecmp(s, "Ctrl", 4)) { flags |= KM_CTRL; s += 4; } else if (!strncasecmp(s, "LeftCtrl", 8)) { flags |= KM_LCTRL; s += 8; } else if (!strncasecmp(s, "RightCtrl", 9)) { flags |= KM_RCTRL; s += 9; } else if (!strncasecmp(s, "Alt", 3)) { flags |= KM_ALT; s += 3; } else if (!strncasecmp(s, "LeftAlt", 7)) { flags |= KM_LALT; s += 7; } else if (!strncasecmp(s, "RightAlt", 8)) { flags |= KM_ALT; s += 8; } else if (!strncasecmp(s, "Enhanced", 8)) { flags |= KM_ENHANCED; s += 8; } else return PKE_UMOD; } s = ks; while (ISREALLYSPACE(*s)) s++; if (!*s) return PKE_MSYM; t = s; while (*t && !ISREALLYSPACE(*t)) t++; if (*t) *t++ = '\0'; xccode = lookup_ccode(s); if (xccode != -1) { *ccode = xccode; } else { if (!strncasecmp(s, "U+", 2) || !strncasecmp(s, "0x", 2)) { unsigned long l; char *ptr; /* * Explicit Unicode. * We limit ourselves to UCS-2 for now, becuase of how * we represent keymaps and keys (VK_xxx in upper 16 * bits, Unicode in lower 16 bits). */ l = strtoul(s, &ptr, 16); if (!((l == 0) || (l & ~0xffff) || *ptr != '\0')) *ccode = (int)l; else return PKE_USYM; } else if (strlen(s) == 1) { int nc; WCHAR w; /* Single (ANSI CP) character. */ nc = MultiByteToWideChar(CP_ACP, 0, s, 1, &w, 1); if (nc == 1) *ccode = (int)w; else return PKE_USYM; } else { /* Try for a Latin-1 name. */ Ks = StringToKeysym(s); if (Ks != NoSymbol) *ccode = (int)Ks; else return PKE_USYM; } } /* Canonicalize Ctrl. */ if ((flags & KM_CTRL) && *ccode >= '@' && *ccode <= '~') { *ccode &= 0x1f; flags &= ~KM_CTRL; } /* Return the remaining string, and success. */ *str = t; *hint = flags; return 1; } /* * Locate a keymap resource or file. * Returns 0 for do-nothing, 1 for success, -1 for error. * On success, returns the full name of the resource or file (which must be * freed) in '*fullname'. * On success, returns a resource string (which must be closed) or NULL * (indicating a file name to open is in *fullname) in '*r'. */ static int locate_keymap(const char *name, char **fullname, char **r) { char *rs; /* resource value */ char *fnx; /* expanded file name */ char *fny; char *fnp; int a; /* Return nothing, to begin with. */ *fullname = CN; *r = CN; /* See if it's a resource. */ rs = get_fresource(ResKeymap ".%s", name); /* If there's a plain version, return it. */ if (rs != CN) { *fullname = NewString(name); *r = NewString(rs); return 1; } /* See if it's a file. */ fnx = do_subst(name, True, True); fny = xs_buffer("%s.%s", fnx, WC3270KM_SUFFIX); Free(fnx); fnx = CN; /* * Try the application data directory first, then (for compatiblity * with older releases) the install directory. */ fnp = xs_buffer("%s%s", myappdata, fny); a = access(fnp, R_OK); Free(fnp); if (a == 0) { *fullname = fny; return 1; } fnp = xs_buffer("%s%s", instdir, fny); a = access(fny, R_OK); Free(fnp); if (a == 0) { *fullname = fny; return 1; } /* No dice. */ Free(fny); return -1; } /* * Compare a pair of keymaps for compatablity (could k2 match k1). * N.B.: This functon may need to be further parameterized for equality versus * (ambiguous) matching. */ static int codecmp(struct keymap *k1, struct keymap *k2, int len) { int r; int i; /* Compare the raw codes first. */ r = memcmp(k1->codes, k2->codes, len * sizeof(int)); if (r) return r; /* The codes agree, now try the modifiers. */ for (i = 0; i < len; i++) { if (k1->hints[i] & KM_HINTS) { if ((k1->hints[i] & KM_HINTS) != (k2->hints[i] & KM_HINTS)) return -1; } } /* Same same. */ return 0; } /* Add a keymap entry. */ static void add_keymap_entry(int ncodes, int *codes, int *hints, const char *file, int line, const char *action) { struct keymap *k; struct keymap *j; /* Allocate a new node. */ k = Malloc(sizeof(struct keymap)); k->next = NULL; k->successor = NULL; k->ncodes = ncodes; k->codes = Malloc(ncodes * sizeof(int)); (void) memcpy(k->codes, codes, ncodes * sizeof(int)); k->hints = Malloc(ncodes * sizeof(int)); (void) memcpy(k->hints, hints, ncodes * sizeof(int)); k->file = NewString(file); k->line = line; k->action = NewString(action); /* See if it's inactive, or supercedes other entries. */ if ((!last_3270 && (k->hints[0] & KM_3270_ONLY)) || (!last_nvt && (k->hints[0] & KM_NVT_ONLY))) { k->hints[0] |= KM_INACTIVE; } else for (j = master_keymap; j != NULL; j = j->next) { /* It may supercede other entries. */ if (j->ncodes == k->ncodes && !codecmp(j, k, k->ncodes)) { j->hints[0] |= KM_INACTIVE; j->successor = k; } } /* Link it in. */ *nextk = k; nextk = &k->next; } /* * Read a keymap from a file. * Returns 0 for success, -1 for an error. * * Keymap files look suspiciously like x3270 keymaps, but aren't. */ static void read_keymap(const char *name) { char *name_3270 = xs_buffer("%s.3270", name); char *name_nvt = xs_buffer("%s.nvt", name); int rc, rc_3270, rc_nvt; char *fn, *fn_3270, *fn_nvt; char *r0, *r0_3270, *r0_nvt; rc = locate_keymap(name, &fn, &r0); rc_3270 = locate_keymap(name_3270, &fn_3270, &r0_3270); rc_nvt = locate_keymap(name_nvt, &fn_nvt, &r0_nvt); if (rc < 0 && rc_3270 < 0 && rc_nvt < 0) { xs_warning("No such keymap resource or file: %s", name); Free(name_3270); Free(name_nvt); return; } if (rc >= 0) { read_one_keymap(name, fn, r0, 0); Free(fn); Free(r0); } if (rc_3270 >= 0) { read_one_keymap(name_3270, fn_3270, r0_3270, KM_3270_ONLY); Free(fn_3270); Free(r0_3270); } if (rc_nvt >= 0) { read_one_keymap(name_nvt, fn_nvt, r0_nvt, KM_NVT_ONLY); Free(fn_nvt); Free(r0_nvt); } Free(name_3270); Free(name_nvt); } /* * Read a keymap from a file. * Returns 0 for success, -1 for an error. * * Keymap files look suspiciously like x3270 keymaps, but aren't. */ static void read_one_keymap(const char *name, const char *fn, const char *r0, int flags) { char *r = CN; /* resource value */ char *r_copy = CN; /* initial value of r */ FILE *f = NULL; /* resource file */ char buf[1024]; /* file read buffer */ int line = 0; /* line number */ char *left, *right; /* chunks of line */ static int ncodes = 0; static int maxcodes = 0; static int *codes = NULL, *hints = NULL; int rc = 0; char *xfn = NULL; /* Find the resource or file. */ if (r0 != CN) { r = r_copy = NewString(r0); xfn = (char *)fn; } else { char *path; int sl; /* * Try the application data directory first, then (for * compatiblity with older releases) the install directory. */ path = xs_buffer("%s%s", myappdata, fn); f = fopen(path, "r"); if (f == NULL) { Free(path); path = xs_buffer("%s%s", instdir, fn); f = fopen(path, "r"); if (f == NULL) { Free(path); xs_warning("File '%s' exists but cannot open: " "%s", path, strerror(errno)); return; } } Free(path); sl = strlen(fn); if (sl > SUFFIX_LEN && !strcmp(fn + sl - SUFFIX_LEN, "." WC3270KM_SUFFIX)) { xfn = NewString(fn); xfn[sl - SUFFIX_LEN] = '\0'; } else { xfn = (char *)fn; } } while ((r != CN)? (rc = split_dresource(&r, &left, &right)): fgets(buf, sizeof(buf), f) != CN) { char *s; int ccode; int pkr; int hint; line++; /* Skip empty lines and comments. */ if (r == CN) { s = buf; while (ISREALLYSPACE(*s)) s++; if (!*s || *s == '!' || *s == '#') continue; } /* Split. */ if (rc < 0 || (r == CN && split_dresource(&s, &left, &right) < 0)) { popup_an_error("Keymap %s, line %d: syntax error", fn, line); goto done; } pkr = parse_keydef(&left, &ccode, &hint); if (pkr == 0) { popup_an_error("Keymap %s, line %d: Missing ", fn, line); goto done; } if (pkr < 0) { popup_an_error("Keymap %s, line %d: %s", fn, line, pk_errmsg[-1 - pkr]); goto done; } /* Accumulate keycodes. */ ncodes = 0; do { if (++ncodes > maxcodes) { maxcodes = ncodes; codes = Realloc(codes, maxcodes * sizeof(int)); hints = Realloc(hints, maxcodes * sizeof(int)); } codes[ncodes - 1] = ccode; hints[ncodes - 1] = hint; pkr = parse_keydef(&left, &ccode, &hint); if (pkr < 0) { popup_an_error("Keymap %s, line %d: %s", fn, line, pk_errmsg[-1 - pkr]); goto done; } } while (pkr != 0); /* Add it to the list. */ hints[0] |= flags; add_keymap_entry(ncodes, codes, hints, xfn, line, right); } done: Free(r_copy); if (f != NULL) fclose(f); if (xfn != fn) Free(xfn); } /* Multi-key keymap support. */ static struct keymap *current_match = NULL; static int consumed = 0; static char *ignore = "[ignore]"; /* Find the shortest keymap with a longer match than k. */ static struct keymap * longer_match(struct keymap *k, int nc) { struct keymap *j; struct keymap *shortest = NULL; for (j = master_keymap; j != NULL; j = j->next) { if (IS_INACTIVE(j)) continue; if (j != k && j->ncodes > nc && !codecmp(j, k, nc)) { if (j->ncodes == nc+1) return j; if (shortest == NULL || j->ncodes < shortest->ncodes) shortest = j; } } return shortest; } /* * Helper function that returns a keymap action, sets the status line, and * traces the result. * * If s is NULL, then this is a failed initial lookup. * If s is 'ignore', then this is a lookup in progress (k non-NULL) or a * failed multi-key lookup (k NULL). * Otherwise, this is a successful lookup. */ static char * status_ret(char *s, struct keymap *k) { /* Set the compose indicator based on the new value of current_match. */ if (k != NULL) status_compose(True, ' ', KT_STD); else status_compose(False, 0, KT_STD); if (s != NULL && s != ignore) trace_event(" %s:%d -> %s\n", current_match->file, current_match->line, s); if ((current_match = k) == NULL) consumed = 0; return s; } /* Timeout for ambiguous keymaps. */ static struct keymap *timeout_match = NULL; static unsigned long kto = 0L; static void key_timeout(void) { trace_event("Timeout, using shortest keymap match\n"); kto = 0L; current_match = timeout_match; push_keymap_action(status_ret(timeout_match->action, NULL)); timeout_match = NULL; } static struct keymap * ambiguous(struct keymap *k, int nc) { struct keymap *j; if ((j = longer_match(k, nc)) != NULL) { trace_event(" ambiguous keymap match, shortest is %s:%d, " "setting timeout\n", j->file, j->line); timeout_match = k; kto = AddTimeOut(500L, key_timeout); } return j; } /* * Check for compatability between a keymap and a key's modifier state. * Returns 1 for success, 0 for failure. */ static int compatible_hint(int hint, int state) { int h = hint & KM_HINTS; int s = state & KM_HINTS; if (!h) return 1; /* * This used to be fairly straightforward, but it got murky when * we split the left and right ctrl and alt keys. * * Basically, what we want is if both left and right Alt or Ctrl * are set in 'hint', then either left or right Alt or Ctrl set in * 'state' would be a match. If only left or right is set in 'hint', * then the match in 'state' has to be exact. * * We do this by checking for both being set in 'hint' and either * being set in 'state'. If this is the case, we set both in 'state' * and try for an exact match. */ if ((h & KM_CTRL) == KM_CTRL) { if (s & KM_CTRL) s |= KM_CTRL; } if ((h & KM_ALT) == KM_ALT) { if (s & KM_ALT) s |= KM_ALT; } return (h & s) == h; } /* * Look up an key in the keymap, return the matching action if there is one. * * This code implements the mutli-key lookup, by returning dummy actions for * partial matches. */ char * lookup_key(unsigned long code, unsigned long state) { struct keymap *j, *k; int n_shortest = 0; int state_match = 0; /* trace_event("lookup_key(0x%08lx, 0x%lx)\n", code, state); */ /* If there's a timeout pending, cancel it. */ if (kto) { RemoveTimeOut(kto); kto = 0L; timeout_match = NULL; } /* Translate the Windows state to KM flags. */ if (state & SHIFT_PRESSED) state_match |= KM_SHIFT; if (state & LEFT_ALT_PRESSED) state_match |= KM_LALT; if (state & RIGHT_ALT_PRESSED) state_match |= KM_RALT; if (state & LEFT_CTRL_PRESSED) state_match |= KM_LCTRL; if (state & RIGHT_CTRL_PRESSED) state_match |= KM_RCTRL; if (state & ENHANCED_KEY) state_match |= KM_ENHANCED; /* If there's no match pending, find the shortest one. */ if (current_match == NULL) { struct keymap *shortest = NULL; for (k = master_keymap; k != NULL; k = k->next) { if (IS_INACTIVE(k)) continue; if (code == k->codes[0] && compatible_hint(k->hints[0], state_match)) { if (k->ncodes == 1) { shortest = k; break; } if (shortest == NULL || k->ncodes < shortest->ncodes) { shortest = k; n_shortest++; } } } if (shortest != NULL) { current_match = shortest; consumed = 0; } else return NULL; } /* See if this character matches the next one we want. */ if (code == current_match->codes[consumed] && compatible_hint(current_match->hints[consumed], state_match)) { consumed++; if (consumed == current_match->ncodes) { /* Final match. */ j = ambiguous(current_match, consumed); if (j == NULL) return status_ret(current_match->action, NULL); else return status_ret(ignore, j); } else { /* Keep looking. */ trace_event(" partial keymap match in %s:%d %s\n", current_match->file, current_match->line, (n_shortest > 1)? " and other(s)": ""); return status_ret(ignore, current_match); } } /* It doesn't. Try for a better candidate. */ for (k = master_keymap; k != NULL; k = k->next) { if (IS_INACTIVE(k)) continue; if (k == current_match) continue; if (k->ncodes > consumed && !codecmp(k, current_match, consumed) && k->codes[consumed] == code && compatible_hint(k->hints[consumed], state_match)) { consumed++; if (k->ncodes == consumed) { j = ambiguous(k, consumed); if (j == NULL) { current_match = k; return status_ret(k->action, NULL); } else return status_ret(ignore, j); } else return status_ret(ignore, k); } } /* Complain. */ Beep(750, 150); trace_event(" keymap lookup failure after partial match\n"); return status_ret(ignore, NULL); } static struct { const char *name; unsigned long code; } vk_key[] = { { "SHIFT", VK_SHIFT << 16 }, { "CTRL", VK_CONTROL << 16 }, { "ALT", 0x12 << 16 }, { "CAPSLOCK", 0x14 << 16 }, { "BACK", VK_BACK << 16 }, { "RETURN", VK_RETURN << 16 }, { "TAB", VK_TAB << 16 }, { "ESCAPE", VK_ESCAPE << 16 }, { "CLEAR", VK_CLEAR << 16 }, { "PAUSE", VK_PAUSE << 16 }, { "PRIOR", VK_PRIOR << 16 }, { "NEXT", VK_NEXT << 16 }, { "END", VK_END << 16 }, { "HOME", VK_HOME << 16 }, { "LEFT", VK_LEFT << 16 }, { "UP", VK_UP << 16 }, { "RIGHT", VK_RIGHT << 16 }, { "DOWN", VK_DOWN << 16 }, { "SELECT", VK_SELECT << 16 }, { "PRINT", VK_PRINT << 16 }, { "EXECUTE", VK_EXECUTE << 16 }, { "SNAPSHOT", VK_SNAPSHOT << 16 }, { "INSERT", VK_INSERT << 16 }, { "DELETE", VK_DELETE << 16 }, { "HELP", VK_HELP << 16 }, { "LWIN", VK_LWIN << 16 }, { "RWIN", VK_RWIN << 16 }, { "APPS", VK_APPS << 16 }, { "SLEEP", VK_SLEEP << 16 }, { "NUMPAD0", VK_NUMPAD0 << 16 }, { "NUMPAD1", VK_NUMPAD1 << 16 }, { "NUMPAD2", VK_NUMPAD2 << 16 }, { "NUMPAD3", VK_NUMPAD3 << 16 }, { "NUMPAD4", VK_NUMPAD4 << 16 }, { "NUMPAD5", VK_NUMPAD5 << 16 }, { "NUMPAD6", VK_NUMPAD6 << 16 }, { "NUMPAD7", VK_NUMPAD7 << 16 }, { "NUMPAD8", VK_NUMPAD8 << 16 }, { "NUMPAD9", VK_NUMPAD9 << 16 }, { "MULTIPLY", VK_MULTIPLY << 16 }, { "ADD", VK_ADD << 16 }, { "SEPARATOR", VK_SEPARATOR << 16 }, { "SUBTRACT", VK_SUBTRACT << 16 }, { "DECIMAL", VK_DECIMAL << 16 }, { "DIVIDE", VK_DIVIDE << 16 }, { "F1", VK_F1 << 16 }, { "F2", VK_F2 << 16 }, { "F3", VK_F3 << 16 }, { "F4", VK_F4 << 16 }, { "F5", VK_F5 << 16 }, { "F6", VK_F6 << 16 }, { "F7", VK_F7 << 16 }, { "F8", VK_F8 << 16 }, { "F9", VK_F9 << 16 }, { "F10", VK_F10 << 16 }, { "F11", VK_F11 << 16 }, { "F12", VK_F12 << 16 }, { "F13", VK_F13 << 16 }, { "F14", VK_F14 << 16 }, { "F15", VK_F15 << 16 }, { "F16", VK_F16 << 16 }, { "F17", VK_F17 << 16 }, { "F18", VK_F18 << 16 }, { "F19", VK_F19 << 16 }, { "F20", VK_F20 << 16 }, { "F21", VK_F21 << 16 }, { "F22", VK_F22 << 16 }, { "F23", VK_F23 << 16 }, { "F24", VK_F24 << 16 }, { "NUMLOCK", VK_NUMLOCK << 16 }, { "SCROLL", VK_SCROLL << 16 }, { "LMENU", VK_LMENU << 16 }, { "RMENU", VK_RMENU << 16 }, /* Some handy aliases */ { "Enter", VK_RETURN << 16 }, { "PageUp", VK_PRIOR << 16 }, { "PageDown", VK_NEXT << 16 }, { CN, 0 } }; /* Look up a symbolic vkey name and return its code. */ static int lookup_ccode(const char *s) { int i; for (i = 0; vk_key[i].name != CN; i++) { if (!strcasecmp(s, vk_key[i].name)) return vk_key[i].code; } return -1; } /* Look up a vkey code and return its name. */ const char * lookup_cname(unsigned long ccode, Boolean special_only) { int i; for (i = 0; vk_key[i].name != CN; i++) { if (ccode == vk_key[i].code) return vk_key[i].name; } if (!special_only && (ccode >= (' ' << 16) && ccode <= ('~' << 16))) { static char cbuf[2]; cbuf[0] = (char)(ccode >> 16); cbuf[1] = '\0'; return cbuf; } return CN; } /* Read each of the keymaps specified by the keymap resource. */ void keymap_init(void) { char *s0, *s; char *comma; static Boolean initted = False; /* In case this is a subsequent call, wipe out the current keymap. */ clear_keymap(); read_keymap("base"); if (appres.key_map != CN) { s = s0 = NewString(appres.key_map); while ((comma = strchr(s, ',')) != CN) { *comma = '\0'; if (*s) read_keymap(s); s = comma + 1; } if (*s) read_keymap(s); Free(s0); } last_3270 = IN_3270; last_nvt = IN_ANSI; set_inactive(); if (!initted) { register_schange(ST_3270_MODE, keymap_3270_mode); register_schange(ST_CONNECT, keymap_3270_mode); initted = True; } } /* Erase the current keymap. */ static void clear_keymap(void) { struct keymap *k, *next; for (k = master_keymap; k != NULL; k = next) { next = k->next; Free(k->codes); Free(k->hints); Free(k->file); Free(k->action); Free(k); } master_keymap = NULL; nextk = &master_keymap; } /* Set the inactive flags for the current keymap. */ static void set_inactive(void) { struct keymap *k; /* Clear the inactive flags and successors. */ for (k = master_keymap; k != NULL; k = k->next) { k->hints[0] &= ~KM_INACTIVE; k->successor = NULL; } /* Turn off elements which have the wrong mode. */ for (k = master_keymap; k != NULL; k = k->next) { /* If the mode is wrong, turn it off. */ if ((!last_3270 && (k->hints[0] & KM_3270_ONLY)) || (!last_nvt && (k->hints[0] & KM_NVT_ONLY))) { k->hints[0] |= KM_INACTIVE; } } /* Turn off elements with successors. */ for (k = master_keymap; k != NULL; k = k->next) { struct keymap *j; struct keymap *last_j = NULL; if (IS_INACTIVE(k)) continue; /* If it now has a successor, turn it off. */ for (j = k->next; j != NULL; j = j->next) { if (!IS_INACTIVE(j) && k->ncodes == j->ncodes && !codecmp(k, j, k->ncodes)) { last_j = j; } } if (last_j != NULL) { k->successor = last_j; k->hints[0] |= KM_INACTIVE; } } } /* 3270/NVT mode change. */ static void keymap_3270_mode(Boolean ignored _is_unused) { if (last_3270 != IN_3270 || last_nvt != IN_ANSI) { last_3270 = IN_3270; last_nvt = IN_ANSI; set_inactive(); } } /* Decode hints (modifiers). */ static const char * decode_hint(int hint) { static char buf[128]; char *s = buf; *s = '\0'; if (hint & KM_SHIFT) s += sprintf(s, "Shift "); if ((hint & KM_CTRL) == KM_CTRL) s += sprintf(s, "Ctrl "); else if (hint & KM_LCTRL) s += sprintf(s, "LeftCtrl"); else if (hint & KM_RCTRL) s += sprintf(s, "RightCtrl"); if ((hint & KM_ALT) == KM_ALT) s += sprintf(s, "Alt "); else if (hint & KM_LALT) s += sprintf(s, "LeftAlt"); else if (hint & KM_RALT) s += sprintf(s, "RightAlt"); else if (hint & KM_ENHANCED) s += sprintf(s, "Enhanced"); return buf; } /* * Decode a key. * Accepts a hint as to which form was used to specify it, if it came from a * keymap definition. */ const char * decode_key(int k, int hint, char *buf) { char *s = buf; if (k & 0xffff0000) { const char *n; /* VK_xxx */ n = lookup_cname(k, False); (void) sprintf(buf, "%s%s", decode_hint(hint), n? n: "???"); } else if (k < ' ') { (void) sprintf(s, "%sCtrl %c", decode_hint(hint & ~KM_CTRL), k + '@'); } else if (k == ':') { (void) sprintf(s, "%scolon", decode_hint(hint)); } else if (k == ' ') { (void) sprintf(s, "%sspace", decode_hint(hint)); } else { wchar_t w = k; char c; BOOL udc = FALSE; /* Try translating to OEM for display on the console. */ (void)WideCharToMultiByte(CP_OEMCP, 0, &w, 1, &c, 1, "?", &udc); if (!udc) (void) sprintf(s, "%s%c", decode_hint(hint), c); else (void) sprintf(s, "%sU+%04x", decode_hint(hint), k); } return buf; } /* Dump the current keymap. */ void keymap_dump(void) { struct keymap *k; for (k = master_keymap; k != NULL; k = k->next) { if (k->successor != NULL) action_output("[%s:%d] (replaced by %s:%d)", k->file, k->line, k->successor->file, k->successor->line); else if (!IS_INACTIVE(k)) { int i; char buf[1024]; char *s = buf; char dbuf[128]; char *t = safe_string(k->action); for (i = 0; i < k->ncodes; i++) { s += sprintf(s, " %s", decode_key(k->codes[i], (k->hints[i] & KM_HINTS) | KM_KEYMAP, dbuf)); } action_output("[%s:%d]%s: %s", k->file, k->line, buf, t); Free(t); } } } ibm-3270-3.3.10ga4/wc3270/unicode.c0000644000175000017500000025016111254565704015713 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * unicode.c * A Windows console-based 3270 Terminal Emulator * EBCDIC/Unicode translation functions */ #include "globals.h" #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #include "3270ds.h" #if !defined(PR3287) /*[*/ #include "appres.h" #endif /*]*/ #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" #if !defined(PR3287) /*[*/ #include "utilc.h" #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(USE_ICONV) /*[*/ iconv_t i_u2mb = (iconv_t)-1; iconv_t i_mb2u = (iconv_t)-1; #if !defined(_LIBICONV_VERSION) || _LIBICONV_VERSION < 0x0108 /*[*/ typedef char *ici_t; /* old iconv */ #else /*][*/ typedef const char *ici_t; /* new iconv */ #endif /*]*/ #endif /*]*/ #define DEFAULT_CSNAME "us" #if defined(_WIN32) /*[*/ # if defined(WS3270) /*[*/ # define LOCAL_CODEPAGE appres.local_cp # else /*[*/ # define LOCAL_CODEPAGE CP_ACP # endif /*]*/ #endif /*]*/ /* * EBCDIC-to-Unicode translation tables. * Each table maps EBCDIC codes X'41' through X'FE' to UCS-2. * Other codes are mapped programmatically. */ #define UT_SIZE 190 #define UT_OFFSET 0x41 typedef struct { char *name; unsigned short code[UT_SIZE]; const char *host_codepage; const char *cgcsgid; const char *display_charset; } uni_t; static uni_t uni[] = { { "cp037", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp273", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "273", "273", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp275", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00c9, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x00c7, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e7, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e3, 0x003a, 0x00d5, 0x00c3, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f5, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e9, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "275", "275", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp277", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "277", "277", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp278", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "278", "278", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp280", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "280", "280", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp284", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "284", "284", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp285", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "285", "285", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp297", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "297", "297", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp424", { 0x5d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x05ea, 0x0000, 0x0000, 0x00a0, 0x0000, 0x0000, 0x0000, 0x21d4, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x00b8, 0x0000, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000 }, "424", "0x03ad01a8", "3270cg-8,iso10646-1,iso8859-8" }, { "cp500", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "500", "500", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp870", { 0x00a0, 0x00e2, 0x00e4, 0x0163, 0x00e1, 0x0103, 0x010d, 0x00e7, 0x0107, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x0119, 0x00eb, 0x016f, 0x00ed, 0x00ee, 0x013e, 0x013a, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x02dd, 0x00c1, 0x0102, 0x010c, 0x00c7, 0x0106, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x02c7, 0x00c9, 0x0118, 0x00cb, 0x016e, 0x00cd, 0x00ce, 0x013d, 0x0139, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x015b, 0x0148, 0x0111, 0x00fd, 0x0159, 0x015f, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00b8, 0x02db, 0x00a4, 0x0105, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x015a, 0x0147, 0x0110, 0x00dd, 0x0158, 0x015e, 0x00b7, 0x0104, 0x017c, 0x0162, 0x017b, 0x00a7, 0x017e, 0x017a, 0x017d, 0x0179, 0x0141, 0x0143, 0x0160, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x0155, 0x00f3, 0x0151, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x011a, 0x0171, 0x00fc, 0x0165, 0x00fa, 0x011b, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x010f, 0x00d4, 0x00d6, 0x0154, 0x00d3, 0x0150, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x010e, 0x0170, 0x00dc, 0x0164, 0x00da }, "870", "0x03bf0366", "iso10646-1,iso8859-2" }, { "cp871", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00fe, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00de, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "871", "871", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp875", { 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a8, 0x0386, 0x0388, 0x0389, 0x2207, 0x038a, 0x038c, 0x038e, 0x038f, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x00b4, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x00a3, 0x03ac, 0x03ad, 0x03ae, 0x0390, 0x03af, 0x03cc, 0x03cd, 0x03b0, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x03c9, 0x03ca, 0x03cb, 0x2018, 0x2015, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b1, 0x00bd, 0x0000, 0x00b7, 0x2019, 0x00a6, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00a7, 0x0000, 0x0000, 0x00ab, 0x00ac, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00a9, 0x0000, 0x0000, 0x00bb }, "875", "0x0464036b", "3270cg-7,iso10646-1,iso8859-7" }, { "cp880", { 0x0000, 0x0452, 0x0453, 0x0451, 0x0000, 0x0455, 0x0456, 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x0000, 0x045f, 0x042a, 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0403, 0x0401, 0x0000, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x040a, 0x040b, 0x040c, 0x0000, 0x0000, 0x040f, 0x044e, 0x0430, 0x0431, 0x0000, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0000, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0000, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x0000, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x005c, 0x00a4, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427 }, "880", "0x03bf0370", "iso10646-1,koi8-r" }, #if defined(X3270_DBCS) /*[*/ { "cp930", { /* 0x40 */ 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67, /* 0x48 */ 0xff68, 0xff69, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 0x50 */ 0x0026, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, 0x0000, /* 0x58 */ 0xff70, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, /* 0x60 */ 0x002d, 0x002f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, /* 0x68 */ 0x0067, 0x0068, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 0x70 */ 0x005b, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, /* 0x78 */ 0x0070, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 0x80 */ 0x005d, 0xff67, 0xff68, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 0x88 */ 0xff78, 0xff79, 0xff7a, 0x0071, 0xff7b, 0xff7c, 0xff7d, 0xff7e, /* 0x90 */ 0xff7f, 0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, /* 0x98 */ 0xff87, 0xff88, 0xff89, 0x0072, 0x0000, 0xff8a, 0xff8b, 0xff8c, /* 0xa0 */ 0x007e, 0x00af, 0xff8d, 0xff8e, 0xff8f, 0xff90, 0xff91, 0xff92, /* 0xa8 */ 0xff93, 0xff94, 0xff95, 0x0073, 0xff96, 0xff97, 0xff98, 0xff99, /* 0xb0 */ 0x005e, 0x00a2, 0x005c, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* 0xb8 */ 0x0079, 0x007a, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f, /* 0xc0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0xc8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xd0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* 0xd8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xe0 */ 0x0024, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* 0xe8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xf0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0xf8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } , "930", "0x04940122" /* 1172, 0290 */, "iso10646-1,jisx0201.1976-0" }, { "cp935", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "935", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp937", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "937", "0x04970025" /* 1175, 037 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp939", { /* 40 */ 0x0000, 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, /* 48 */ 0xff67, 0xff68, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 50 */ 0x0026, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, /* 58 */ 0xff70, 0xff71, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, /* 60 */ 0x002d, 0x002f, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 68 */ 0xff78, 0xff79, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 70 */ 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, 0xff80, 0xff81, /* 78 */ 0xff82, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 80 */ 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 88 */ 0x0068, 0x0069, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, 0xff88, /* 90 */ 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, /* 98 */ 0x0071, 0x0072, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, /* a0 */ 0x00af, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* a8 */ 0x0079, 0x007a, 0xff8f, 0xff90, 0xff91, 0x005b, 0xff92, 0xff93, /* b0 */ 0x005e, 0x00a3, 0x00a5, 0xff94, 0xff95, 0xff96, 0xff97, 0xff98, /* b8 */ 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0x005d, 0xff9e, 0xff9f, /* c0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* c8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* d8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x005c, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* e8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* f8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "939", "0x04940403" /* 1172, 1027 */, "iso10646-1,jisx0201.1976-0" }, #endif /*]*/ { "cp1026", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x007d, 0x0060, 0x00a6, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x02db, 0x00c6, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x005d, 0x0024, 0x0040, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x2014, 0x00a8, 0x00b4, 0x00d7, 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0x00ff, 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da }, "1026", "0x04800402", "iso10646-1,iso8859-9" }, { "cp1047", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x00ac, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1047", "1047", "iso10646-1,iso8859-1" }, { "cp1140", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1140", "0x02b70474" /* 695, 1140 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1141", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "1141", "0x02b70475" /* 695, 1141 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1142", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1142", "0x02b70476" /* 695, 1142 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1143", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1143", "0x02b70477" /* 695, 1143 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1144", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1144", "0x02b70478" /* 695, 1144 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1145", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1145", "0x02b70478" /* 695, 1145 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1146", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1146", "0x02b7047a" /* 695, 1146 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1147", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1147", "0x02b7047a" /* 695, 1147 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1148", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1148", "0x02b7047c" /* 695, 1148 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1149", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00de, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x20ac, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00fe, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1149", "0x02b7047d" /* 695, 1149 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1160", { 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, 0x005b, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0e48, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x005d, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x005e, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0e3f, 0x0e4e, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0e4f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, 0x0e5a, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e5b, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, 0x0e58, 0x0e59, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0e49, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0e3a, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x005c, 0x0e4a, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4b, 0x20ac }, "1160", "0x05730488" /* 1395, 1160 */, "iso10646-1,iso8859-11" }, #if defined(X3270_DBCS) /*[*/ { "cp1388", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "1388", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, #endif /*]*/ { "apl", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,iso10646-1" }, { "bracket", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37+", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { NULL } }; /* Code page aliases. */ typedef struct { char *alias; char *canon; } cpalias_t; cpalias_t cpaliases[] = { { "belgian", "cp500" }, { "belgian-euro", "cp1148" }, { "brazilian", "cp275" }, #if defined(X3270_DBCS) /*[*/ { "chinese-gb18030","cp1388" }, { "cp1027", "cp939" }, /* historical error */ { "cp290", "cp930" }, /* historical error */ #endif /*]*/ { "cp37", "cp037" }, #if defined(X3270_DBCS) /*[*/ { "cp836", "cp935" }, /* historical error */ #endif /*]*/ { "finnish", "cp278" }, { "finnish-euro", "cp1143" }, { "french", "cp297" }, { "french-euro", "cp1147" }, { "german", "cp273" }, { "german-euro", "cp1141" }, { "greek", "cp875" }, { "hebrew", "cp424" }, { "icelandic", "cp871" }, { "icelandic-euro", "cp1149" }, { "italian", "cp280" }, { "italian-euro", "cp1144" }, #if defined(X3270_DBCS) /*[*/ { "japanese-1027", "cp939" }, /* historical error */ { "japanese-290", "cp930" }, /* historical error */ { "japanese-kana", "cp930" }, { "japanese-latin", "cp939" }, #endif /*]*/ { "norwegian", "cp277" }, { "norwegian-euro", "cp1142" }, { "oldibm", "bracket" }, { "bracket437", "bracket" }, { "polish", "cp870" }, { "russian", "cp880" }, #if defined(X3270_DBCS) /*[*/ { "simplified-chinese","cp935" }, #endif /*]*/ { "slovenian", "cp870" }, { "spanish", "cp284" }, { "spanish-euro", "cp1145" }, { "thai", "cp1160" }, #if defined(X3270_DBCS) /*[*/ { "traditional-chinese", "cp937" }, #endif /*]*/ { "turkish", "cp1026" }, { "uk", "cp285" }, { "uk-euro", "cp1146" }, { DEFAULT_CSNAME, "cp037" }, { "us-euro", "cp1140" }, { "us-intl", "cp037" }, { NULL, NULL } }; static uni_t *cur_uni = NULL; void charset_list(void) { int i; int j; char *sep = ""; printf("SBCS host code pages (with aliases):\n"); for (i = 0; uni[i].name != NULL; i++) { Boolean any = False; char *asep = " ("; printf("%s%s", sep, uni[i].name); for (j = 0; cpaliases[j].alias != NULL; j++) { if (!strcmp(cpaliases[j].canon, uni[i].name)) { printf("%s%s", asep, cpaliases[j].alias); asep = ", "; any = True; } } if (any) printf(")"); sep = ", "; } printf("\n"); #if defined(X3270_DBCS) /*[*/ charset_list_dbcs(); #endif /*]*/ } /* * Translate a single EBCDIC character in an arbitrary character set to * Unicode. Note that CS_DBCS is never used -- use CS_BASE and pass an * EBCDIC character > 0xff. * * Returns 0 for no translation. */ ucs4_t ebcdic_to_unicode(ebc_t c, unsigned char cs, unsigned flags) { int iuc; ucs4_t uc; #if 0 /* I'm not sure why this was put in, but it breaks display of DUP and FM. Hopefully I'll figure out why it was put in in the first place and I can put it back under the right conditions. */ /* Control characters become blanks. */ if (c <= 0x41 || c == 0xff) uc = 0; #endif /* * We do not pay attention to BLANK_UNDEF -- we always return 0 * for undefined characters. */ flags &= ~EUO_BLANK_UNDEF; /* Dispatch on the character set. */ if ((cs & CS_GE) || ((cs & CS_MASK) == CS_APL)) { iuc = apl_to_unicode(c, flags); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs == CS_LINEDRAW) { iuc = linedraw_to_unicode(c /* XXX: flags */); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs != CS_BASE) uc = 0; else uc = ebcdic_base_to_unicode(c, flags); return uc; } /* * Translate a single EBCDIC character in the base or DBCS character sets to * Unicode. * * EBCDIC 'FM' and 'DUP' characters are treated specially. If EUO_UPRIV * is set, they are returned as U+f8fe and U+feff (private-use) respectively * so they can be displayed with overscores in the special 3270 font; * otherwise they are returned as '*' and ';'. * EBCDIC 'EO' and 'SUB' are special-cased to U+25cf and U+25a0, respectively. * * If EUO_BLANK_UNDEF is set, other undisplayable characters are returned as * spaces; otherwise they are returned as 0. */ ucs4_t ebcdic_base_to_unicode(ebc_t c, unsigned flags) { #if defined(X3270_DBCS) /*[*/ if (c & 0xff00) return ebcdic_dbcs_to_unicode(c, flags); #endif /*]*/ if (c == 0x40) return 0x0020; if (c >= UT_OFFSET && c < 0xff) { ebc_t uc = cur_uni->code[c - UT_OFFSET]; return uc? uc: ((flags & EUO_BLANK_UNDEF)? ' ': 0); } else switch (c) { case EBC_fm: return (flags & EUO_UPRIV)? UPRIV_fm: ';'; case EBC_dup: return (flags & EUO_UPRIV)? UPRIV_dup: '*'; case EBC_eo: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_eo: 0x25cf; /* solid circle */ case EBC_sub: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_sub: 0x25a0; /* solid block */ default: if (flags & EUO_BLANK_UNDEF) return ' '; else return 0; } } /* * Map a UCS-4 character to an EBCDIC character. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic(ucs4_t u) { int i; #if defined(X3270_DBCS) /*[*/ ebc_t d; #endif /*]*/ if (!u) return 0; if (u == 0x0020) return 0x40; for (i = 0; i < UT_SIZE; i++) { if (cur_uni->code[i] == u) { return UT_OFFSET + i; } } #if defined(X3270_DBCS) /*[*/ /* See if it's DBCS. */ d = unicode_to_ebcdic_dbcs(u); if (d) return d; #endif /*]*/ return 0; } /* * Map a UCS-4 character to an EBCDIC character, possibly including APL (GE) * characters. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic_ge(ucs4_t u, Boolean *ge) { ebc_t e; *ge = False; e = unicode_to_ebcdic(u); if (e) return e; /* Handle GEs. Yes, this is slow, but I'm lazy. */ for (e = 0x70; e <= 0xfe; e++) { if ((ucs4_t)apl_to_unicode(e, EUO_NONE) == u) { *ge = True; return e; } } return 0; } /* * Set the SBCS EBCDIC-to-Unicode translation table. * Returns 0 for success, -1 for failure. */ int set_uni(const char *csname, const char **host_codepage, const char **cgcsgid, const char **display_charsets) { int i; const char *realname; int rc = -1; Boolean cannot_fail = False; /* * If the csname is NULL, this is a fallback to the default * and the iconv lookup cannot fail. */ if (csname == NULL) { csname = DEFAULT_CSNAME; cannot_fail = True; } realname = csname; /* Search for an alias. */ for (i = 0; cpaliases[i].alias != NULL; i++) { if (!strcasecmp(csname, cpaliases[i].alias)) { realname = cpaliases[i].canon; break; } } /* Search for a match. */ for (i = 0; uni[i].name != NULL; i++) { if (!strcasecmp(realname, uni[i].name)) { cur_uni = &uni[i]; *host_codepage = uni[i].host_codepage; *cgcsgid = uni[i].cgcsgid; *display_charsets = uni[i].display_charset; rc = 0; break; } } if (cannot_fail && rc == -1) Error("Cannot find default charset definition"); #if defined(USE_ICONV) /*[*/ /* * wchar_t's are not Unicode, so getting to/from Unicode is only half * the battle. We need to use iconv() to get between Unicode to the * local multi-byte representation. We'll explicitly use UTF-8, which * appears to be the most broadly-supported translation. */ if (rc == 0) { if (!is_utf8) { /* * If iconv doesn't support the locale's codeset, then * this box is hosed. */ i_u2mb = iconv_open(locale_codeset, "UTF-8"); if (i_u2mb == (iconv_t)(-1)) rc = -1; else { i_mb2u = iconv_open("UTF-8", locale_codeset); if (i_mb2u == (iconv_t)(-1)) { iconv_close(i_u2mb); rc = -1; } } } if (rc == -1 && cannot_fail) { /* Try again with plain-old ASCII. */ #if defined(PR3287) /*[*/ Warning("Cannot find iconv translation from locale " "codeset to UTF-8, using ASCII"); #else /*][*/ xs_warning("Cannot find iconv translation from locale " "codeset '%s' to UTF-8, using ASCII", locale_codeset); #endif /*]*/ i_u2mb = iconv_open("ASCII", "UTF-8"); if (i_u2mb == (iconv_t)-1) Error("No iconv UTF-8 to ASCII translation"); i_mb2u = iconv_open("UTF-8", "ASCII"); if (i_mb2u == (iconv_t)-1) Error("No iconv ASCII to UTF-8 translation"); rc = 0; } } #endif /*]*/ return rc; } /* * Translate an x3270 font line-drawing character (the first two rows of a * standard X11 fixed-width font) to Unicode. * * Returns -1 if there is no translation. */ int linedraw_to_unicode(ebc_t c) { static ebc_t ld2uc[32] = { /* 00 */ 0x2588, 0x25c6, 0x2592, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, /* 08 */ 0x00b1, 0x0000, 0x0000, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, /* 10 */ 0x002d, 0x002d, 0x2500, 0x002d, 0x005f, 0x251c, 0x2524, 0x2534, /* 18 */ 0x252c, 0x2502, 0x2264, 0x2265, 0x03c0, 0x2260, 0x00a3, 0x2022 }; if (c < 32 && ld2uc[c] != 0x0000) return ld2uc[c]; else return -1; } int apl_to_unicode(ebc_t c, unsigned flags) { static ebc_t apl2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x25c6, 0x22c0, 0x00a8, 0x223b, 0x2378, 0x2377, 0x22a2, 0x22a3, /* 78 */ 0x2228, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x23b8, 0x23b9, 0x2502, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x2191, 0x2193, 0x2264, 0x2308, 0x230a, 0x2192, /* 90 */ 0x2395, 0x258c, 0x2590, 0x2580, 0x2584, 0x25a0, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x2283, 0x2282, 0x00a4, 0x25cb, 0x00b1, 0x2190, /* a0 */ 0x00af, 0x00b0, 0x2500, 0x2022, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x22c2, 0x22c3, 0x22a5, 0x005b, 0x2265, 0x2218, /* b0 */ 0x03b1, 0x03b5, 0x03b9, 0x03c1, 0x03c9, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x2207, 0x2206, 0x22a4, 0x005d, 0x2260, 0x2502, /* c0 */ 0x007b, 0x207c, 0x002b, 0x220e, 0x2514, 0x250c, 0x251c, 0x2534, /* c8 */ 0x00a7, 0x0000, 0x2372, 0x2371, 0x2337, 0x233d, 0x2342, 0x2349, /* d0 */ 0x007d, 0x207e, 0x002d, 0x253c, 0x2518, 0x2510, 0x2524, 0x252c, /* d8 */ 0x00b6, 0x0000, 0x2336, 0x0021, 0x2352, 0x234b, 0x235e, 0x235d, /* e0 */ 0x2261, 0x2081, 0x0282, 0x0283, 0x2364, 0x2365, 0x236a, 0x20ac, /* e8 */ 0x0000, 0x0000, 0x233f, 0x2240, 0x2235, 0x2296, 0x2339, 0x2355, /* f0 */ 0x2070, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x2075, 0x2076, 0x2077, /* f8 */ 0x2078, 0x2079, 0x0000, 0x236b, 0x2359, 0x235f, 0x234e, 0x0000 }; #if defined(C3270) /*[*/ static ebc_t apla2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x0000, 0x0000, 0x00a8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x0000, 0x0000, 0x007c, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 90 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x00a4, 0x0000, 0x00b1, 0x0000, /* a0 */ 0x00af, 0x00b0, 0x002d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x0000, 0x0000, /* b0 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x0000, 0x0000, 0x0000, 0x005d, 0x0000, 0x007c, /* c0 */ 0x007b, 0x0000, 0x002b, 0x0000, 0x002b, 0x002b, 0x002b, 0x002b, /* c8 */ 0x00a7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x0000, 0x002d, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, /* d8 */ 0x00b6, 0x0000, 0x0000, 0x0021, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x0000, 0x0000, 0x0282, 0x0283, 0x0000, 0x0000, 0x0000, 0x0000, /* e8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0000, 0x00b9, 0x00b2, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000, /* f8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; #endif /*]*/ #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) { if (c < 256 && apla2uc[c] != 0x0000) { #if defined(_WIN32) /*[*/ /* Windows DBCS fonts make U+0080..U+00ff wide, too. */ if (apla2uc[c] > 0x7f) return -1; #endif /*]*/ return apla2uc[c]; } else return -1; } #endif /*]*/ if (c < 256 && apl2uc[c] != 0x0000) return apl2uc[c]; else return -1; } /* * Translate an EBCDIC character to the current locale's multi-byte * representation. * * Returns the number of bytes in the multi-byte representation, including * the terminating NULL. mb[] should be big enough to include the NULL * in the result. * * Also returns in 'ucp' the UCS-4 Unicode value of the EBCDIC character. * * Note that 'ebc' is an ebc_t (uint16_t), not an unsigned char. This is * so that DBCS values can be passed in as 16 bits (with the first byte * in the high-order bits). There is no ambiguity because all valid EBCDIC * DBCS characters have a nonzero first byte. * * Returns 0 if EUO_BLANK_UNDEF is clear and there is no printable EBCDIC * translation for 'ebc'. * * Returns '?' in mb[] if there is no local multi-byte representation of * the EBCDIC character. */ int ebcdic_to_multibyte_x(ebc_t ebc, unsigned char cs, char mb[], int mb_len, unsigned flags, ucs4_t *ucp) { ucs4_t uc; #if defined(_WIN32) /*[*/ int nc; BOOL udc; wchar_t wuc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; wchar_t wuc; #else /*][*/ char u8b[7]; size_t nu8; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; #endif /*]*/ /* Translate from EBCDIC to Unicode. */ uc = ebcdic_to_unicode(ebc, cs, flags); if (ucp != NULL) *ucp = uc; if (uc == 0) { if (flags & EUO_BLANK_UNDEF) { mb[0] = ' '; mb[1] = '\0'; return 2; } else { return 0; } } /* Translate from Unicode to local multibyte. */ #if defined(_WIN32) /*[*/ /* * wchar_t's are Unicode. */ wuc = uc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc != 0) { mb[nc++] = '\0'; return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #elif defined(UNICODE_WCHAR) /*][*/ /* * wchar_t's are Unicode. * If 'is_utf8' is set, use unicode_to_utf8(). This allows us to set * 'is_utf8' directly, ignoring the locale, for Tcl. * Otherwise, use wctomb(). */ if (is_utf8) { nc = unicode_to_utf8(uc, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } wuc = uc; nc = wctomb(mb, uc); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ /* * Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(uc, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc < 0 || inbytesleft == nu8) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc < 0) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } /* Commonest version of ebcdic_to_multibyte_x: * cs is CS_BASE * EUO_BLANK_UNDEF is set * ucp is ignored */ int ebcdic_to_multibyte(ebc_t ebc, char mb[], int mb_len) { return ebcdic_to_multibyte_x(ebc, CS_BASE, mb, mb_len, EUO_BLANK_UNDEF, NULL); } /* * Convert an EBCDIC string to a multibyte string. * Makes lots of assumptions: standard character set, EUO_BLANK_UNDEF. * Returns the length of the multibyte string. */ int ebcdic_to_multibyte_string(unsigned char *ebc, size_t ebc_len, char mb[], size_t mb_len) { int nmb = 0; while (ebc_len && mb_len) { int xlen; xlen = ebcdic_to_multibyte(*ebc, mb, mb_len); if (xlen) { mb += xlen - 1; mb_len -= (xlen - 1); nmb += xlen - 1; } ebc++; ebc_len--; } return nmb; } /* * Return the maximum buffer length needed to translate 'len' EBCDIC characters * in the current locale. */ int mb_max_len(int len) { #if defined(_WIN32) /*[*/ /* * On Windows, it's 1:1 (we don't do DBCS, and we don't support locales * like UTF-8). */ return len + 1; #elif defined(UNICODE_WCHAR) /*][*/ /* Allocate enough space for shift-state transitions. */ return (MB_CUR_MAX * (len * 2)) + 1; #else /*]*/ if (is_utf8) return (len * 6) + 1; else /* * We don't actually know. Guess that MB_CUR_MAX is 16, and compute * as for UNICODE_WCHAR. */ return (16 * (len * 2)) + 1; #endif /*]*/ } /* * Translate a multi-byte character in the current locale to UCS-4. * * Returns a UCS-4 character or 0, indicating an error in translation. * Also returns the number of characters consumed. */ ucs4_t multibyte_to_unicode(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { size_t nw; ucs4_t ucs4; #if defined(_WIN32) /*[*/ wchar_t wc[3]; int i; /* Use MultiByteToWideChar() to get from the ANSI codepage to UTF-16. */ for (i = 1; i <= mb_len; i++) { nw = MultiByteToWideChar(LOCAL_CODEPAGE, MB_ERR_INVALID_CHARS, mb, i, wc, 3); if (nw != 0) break; } if (i > mb_len) { *errorp = ME_INVALID; return 0; } *consumedp = i; ucs4 = wc[0]; #elif defined(UNICODE_WCHAR) /*][*/ wchar_t wc[3]; /* wchar_t's are Unicode. */ if (is_utf8) { int nc; /* * Use utf8_to_unicode() instead of mbtowc(), so we can set is_utf8 * directly and ignore the locale for Tcl. */ nc = utf8_to_unicode(mb, mb_len, &ucs4); if (nc > 0) { *errorp = ME_NONE; *consumedp = nc; return ucs4; } else if (nc == 0) { *errorp = ME_SHORT; return 0; } else { *errorp = ME_INVALID; return 0; } } /* mbtowc() will translate to Unicode. */ nw = mbtowc(wc, mb, mb_len); if (nw == (size_t)-1) { if (errno == EILSEQ) *errorp = ME_INVALID; else *errorp = ME_SHORT; nw = mbtowc(NULL, NULL, 0); return 0; } /* * Reset the shift state. * XXX: Doing this will ruin the shift state if this function is called * repeatedly to process a string. There should probably be a parameter * passed in to control whether or not to reset the shift state, or * perhaps there should be a function to translate a string. */ *consumedp = nw; nw = mbtowc(NULL, NULL, 0); ucs4 = wc[0]; #else /*][*/ /* wchar_t's have unknown encoding. */ if (!is_utf8) { ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; char utf8buf[16]; size_t ibl; /* Translate from local MB to UTF-8 using iconv(). */ for (ibl = 1; ibl <= mb_len; ibl++) { inbuf = (ici_t)mb; outbuf = utf8buf; inbytesleft = ibl; outbytesleft = sizeof(utf8buf); nw = iconv(i_mb2u, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nw < 0) { if (errno == EILSEQ) { *errorp = ME_INVALID; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } else { if (ibl == mb_len) { *errorp = ME_SHORT; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } } } else break; } *consumedp = ibl - inbytesleft; /* Translate from UTF-8 to UCS-4. */ (void) utf8_to_unicode(utf8buf, sizeof(utf8buf) - outbytesleft, &ucs4); } else { /* Translate from UTF-8 to UCS-4. */ nw = utf8_to_unicode(mb, mb_len, &ucs4); if (nw < 0) { *errorp = ME_INVALID; return 0; } if (nw == 0) { *errorp = ME_SHORT; return 0; } *consumedp = nw; } #endif /*]*/ /* Translate from UCS4 to EBCDIC. */ return ucs4; } /* * Convert a multi-byte string to a UCS-4 string. * Does not NULL-terminate the result. * Returns the number of UCS-4 characters stored. */ int multibyte_to_unicode_string(char *mb, size_t mb_len, ucs4_t *ucs4, size_t u_len) { int consumed; enum me_fail error; int nr = 0; error = ME_NONE; while (u_len && mb_len && (*ucs4++ = multibyte_to_unicode(mb, mb_len, &consumed, &error)) != 0) { u_len--; mb += consumed; mb_len -= consumed; nr++; } if (error != ME_NONE) return -1; else return nr; } /* * Translate a multi-byte character in the current locale to an EBCDIC * character. * * Returns an 8-bit (SBCS) or 16-bit (DBCS) EBCDIC character, or 0, indicating * an error in translation. Also returns the number of characters consumed. */ ebc_t multibyte_to_ebcdic(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { ucs4_t ucs4; ucs4 = multibyte_to_unicode(mb, mb_len, consumedp, errorp); if (ucs4 == 0) return 0; return unicode_to_ebcdic(ucs4); } /* * Convert a local multi-byte string to an EBCDIC string. * Returns the length of the resulting EBCDIC string, or -1 if there is a * conversion error. */ int multibyte_to_ebcdic_string(char *mb, size_t mb_len, unsigned char *ebc, size_t ebc_len, enum me_fail *errorp) { int ne = 0; Boolean in_dbcs = False; while (mb_len > 0 && ebc_len > 0) { ebc_t e; int consumed; e = multibyte_to_ebcdic(mb, mb_len, &consumed, errorp); if (e == 0) return -1; if (e & 0xff00) { /* DBCS. */ if (!in_dbcs) { /* Make sure there's room for SO, b1, b2, SI. */ if (ebc_len < 4) return ne; *ebc++ = EBC_so; ebc_len++; ne++; in_dbcs = True; } /* Make sure there's room for b1, b2, SI. */ if (ebc_len < 3) { *ebc++ = EBC_si; ne++; return ne; } *ebc++ = (e >> 8) & 0xff; *ebc++ = e & 0xff; ebc_len -= 2; ne += 2; } else { /* SBCS. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; if (!--ebc_len) return ne; in_dbcs = False; } *ebc++ = e & 0xff; ebc_len--; ne++; } mb += consumed; mb_len -= consumed; } /* * Terminate the DBCS string, if we end inside it. * We're guaranteed to have space for the SI; we checked before adding * the last DBCS character. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; } return ne; } /* * Translate a UCS-4 character to a local multi-byte string. */ int unicode_to_multibyte(ucs4_t ucs4, char *mb, size_t mb_len) { #if defined(_WIN32) /*[*/ wchar_t wuc = ucs4; BOOL udc; int nc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc > 0) mb[nc++] = '\0'; return nc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; if (is_utf8) { nc = unicode_to_utf8(ucs4, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } nc = wctomb(mb, ucs4); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ int nu8; char u8b[16]; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; /* Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(ucs4, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } ibm-3270-3.3.10ga4/wc3270/LICENSE.txt0000644000175000017500000000346511254565671015752 0ustar bastianbastianCopyright (c) 1993-2009, Paul Mattes. Copyright (c) 2004-2005, Don Russell. Copyright (c) 2004, Dick Altenbern. Copyright (c) 1990, Jeff Sparkes. Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES, DICK ALTENBERN AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ibm-3270-3.3.10ga4/wc3270/localdefs.h0000644000175000017500000000543111254565674016232 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * localdefs.h * Local definitions for c3270. * * This file contains definitions for environment-specific * facilities, such as memory allocation, I/O registration, * and timers. */ /* Identify ourselves. */ #define C3270 1 /* Conditional 80/132 mode switch support. */ #if defined(BROKEN_NEWTERM) /*[*/ #undef C3270_80_132 #else /*][*/ #define C3270_80_132 1 #endif /*]*/ /* These first definitions were cribbed from X11 -- but no X code is used. */ #define False 0 #define True 1 typedef void *XtPointer; typedef void *Widget; typedef void *XEvent; typedef char Boolean; typedef char *String; typedef unsigned int Cardinal; typedef unsigned long KeySym; #define Bool int typedef void (*XtActionProc)( Widget /* widget */, XEvent* /* event */, String* /* params */, Cardinal* /* num_params */ ); typedef struct _XtActionsRec{ String string; XtActionProc proc; } XtActionsRec; #define XtNumber(n) (sizeof(n)/sizeof((n)[0])) #define NoSymbol 0L /* These are local functions with similar semantics to X functions. */ extern void *Malloc(size_t); extern void Free(void *); extern void *Calloc(size_t, size_t); extern void *Realloc(void *, size_t); extern char *NewString(const char *); extern void Error(const char *); extern void Warning(const char *); ibm-3270-3.3.10ga4/wc3270/wc3270.rc0000644000175000017500000000004211254565671015366 0ustar bastianbastianLANGUAGE 0, 0 100 ICON wc3270.ico ibm-3270-3.3.10ga4/wc3270/conf.h0000644000175000017500000000037511254565671015222 0ustar bastianbastian/* Hard-coded conf.h for wc3270 */ #define LIBX3270DIR "." #define X3270_TN3270E 1 #define X3270_TRACE 1 #define X3270_FT 1 #define X3270_ANSI 1 #define X3270_PRINTER 1 #define X3270_DBCS 1 #define CURSES_WIDE 1 /* temporary */ #define X3270_SCRIPT 1 ibm-3270-3.3.10ga4/wc3270/hostc.h0000644000175000017500000000472011254565704015410 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * hostc.h * Global declarations for host.c. */ struct host { char *name; char **parents; char *hostname; enum { PRIMARY, ALIAS, RECENT } entry_type; char *loginstring; time_t connect_time; struct host *prev, *next; }; extern struct host *hosts; extern void Connect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Disconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Reconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); /* Host connect/disconnect and state change. */ extern void hostfile_init(void); extern void host_cancel_reconnect(void); extern int host_connect(const char *n); extern void host_connected(void); extern void host_disconnect(Boolean disable); extern void host_in3270(enum cstate); extern void host_newfd(int s); extern void register_schange(int tx, void (*func)(Boolean)); extern void st_changed(int tx, Boolean mode); ibm-3270-3.3.10ga4/wc3270/aplc.h0000644000175000017500000000316211254565704015206 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * aplc.h * Global declarations for apl.c. */ extern KeySym APLStringToKeysym(char *s, int *is_gep); ibm-3270-3.3.10ga4/wc3270/resources.h0000644000175000017500000003537711254565704016316 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resources.h * x3270/c3270/s3270/tcl3270 resource and option names. */ /* Resources. */ #define ResAcs "acs" #define ResActiveIcon "activeIcon" #define ResAdVersion "adVersion" #define ResAidWait "aidWait" #define ResAllBold "allBold" #define ResAllowResize "allowResize" #define ResAltCursor "altCursor" #define ResAltScreen "altScreen" #define ResAplMode "aplMode" #define ResAsciiBoxDraw "asciiBoxDraw" #define ResAssocCommand "printer.assocCommandLine" #define ResAutoShortcut "autoShortcut" #define ResBaselevelTranslations "baselevelTranslations" #define ResBellVolume "bellVolume" #define ResBlankFill "blankFill" #define ResBoldColor "boldColor" #define ResBsdTm "bsdTm" #define ResCbreak "cbreak" #define ResCertFile "certFile" #define ResCharClass "charClass" #define ResCharset "charset" #define ResCharsetList "charsetList" #define ResColor8 "color8" #define ResColorBackground "colorBackground" #define ResColorScheme "colorScheme" #define ResCommandTimeout "commandTimeout" #define ResComposeMap "composeMap" #define ResConfDir "confDir" #define ResConnectFileName "connectFileName" #define ResConsoleColorForHostColor "consoleColorForHostColor" #define ResCrosshair "crosshair" #define ResCursesColorFor "cursesColorFor" #define ResCursesColorForDefault ResCursesColorFor "Default" #define ResCursesColorForHostColor ResCursesColorFor "HostColor" #define ResCursesColorForIntensified ResCursesColorFor "Intensified" #define ResCursesColorForProtected ResCursesColorFor "Protected" #define ResCursesColorForProtectedIntensified ResCursesColorFor "ProtectedIntensified" #define ResCursesKeypad "cursesKeypad" #define ResCursorBlink "cursorBlink" #define ResCursorColor "cursorColor" #define ResCursorPos "cursorPos" #define ResDebugTracing "debugTracing" #define ResDefScreen "defScreen" #define ResDftBufferSize "dftBufferSize" #define ResDisconnectClear "disconnectClear" #define ResDoConfirms "doConfirms" #define ResDbcsCgcsgid "dbcsCgcsgid" #define ResDsTrace "dsTrace" #define ResEmulatorFont "emulatorFont" #define ResEof "eof" #define ResErase "erase" #define ResEventTrace "eventTrace" #define ResExtended "extended" #define ResFixedSize "fixedSize" #define ResHighlightBold "highlightBold" #define ResHostColorFor "hostColorFor" #define ResHostColorForDefault ResHostColorFor "Default" #define ResHostColorForIntensified ResHostColorFor "Intensified" #define ResHostColorForProtected ResHostColorFor "Protected" #define ResHostColorForProtectedIntensified ResHostColorFor "ProtectedIntensified" #define ResHostname "hostname" #define ResHostsFile "hostsFile" #define ResIconFont "iconFont" #define ResIconLabelFont "iconLabelFont" #define ResIcrnl "icrnl" #define ResIdleCommand "idleCommand" #define ResIdleCommandEnabled "idleCommandEnabled" #define ResIdleTimeout "idleTimeout" #define ResInlcr "inlcr" #define ResInputColor "inputColor" #define ResInputMethod "inputMethod" #define ResIntr "intr" #define ResInvertKeypadShift "invertKeypadShift" #define ResKeymap "keymap" #define ResKeypad "keypad" #define ResKeypadBackground "keypadBackground" #define ResKeypadOn "keypadOn" #define ResKill "kill" #define ResLabelIcon "labelIcon" #define ResLineWrap "lineWrap" #define ResLnext "lnext" #define ResLocalCp "localCp" #define ResLoginMacro "loginMacro" #define ResLockedCursor "lockedCursor" #define ResLuCommandLine "printer.luCommandLine" #define ResM3279 "m3279" #define ResMacros "macros" #define ResMarginedPaste "marginedPaste" #define ResMenuBar "menuBar" #define ResMetaEscape "metaEscape" #define ResModel "model" #define ResModifiedSel "modifiedSel" #define ResModifiedSelColor "modifiedSelColor" #define ResMono "mono" #define ResMonoCase "monoCase" #define ResMouse "mouse" #define ResNoOther "noOther" #define ResNoPrompt "noPrompt" #define ResNormalColor "normalColor" #define ResNormalCursor "normalCursor" #define ResNumericLock "numericLock" #define ResOerrLock "oerrLock" #define ResOnce "once" #define ResOnlcr "onlcr" #define ResOversize "oversize" #define ResPluginCommand "pluginCommand" #define ResPort "port" #define ResPreeditType "preeditType" #define ResPrinterCodepage "printer.codepage" #define ResPrinterCommand "printer.command" #define ResPrinterLu "printerLu" #define ResPrinterName "printer.name" #define ResProxy "proxy" #define ResQuit "quit" #define ResReconnect "reconnect" #define ResRectangleSelect "rectangleSelect" #define ResReverseVideo "reverseVideo" #define ResRprnt "rprnt" #define ResSaveLines "saveLines" #define ResSchemeList "schemeList" #define ResScreenTrace "screenTrace" #define ResScreenTraceFile "screenTraceFile" #define ResScripted "scripted" #define ResScriptPort "scriptPort" #define ResScrollBar "scrollBar" #define ResSecure "secure" #define ResSelectBackground "selectBackground" #define ResSbcsCgcsgid "sbcsCgcsgid" #define ResShowTiming "showTiming" #define ResSocket "socket" #define ResSuppressActions "suppressActions" #define ResSuppressHost "suppressHost" #define ResSuppressFontMenu "suppressFontMenu" #define ResSuppress "suppress" #define ResTermName "termName" #define ResTitle "title" #define ResTraceDir "traceDir" #define ResTraceFile "traceFile" #define ResTraceFileSize "traceFileSize" #define ResTraceMonitor "traceMonitor" #define ResTypeahead "typeahead" #define ResUnderscore "underscore" #define ResUnlockDelay "unlockDelay" #define ResUnlockDelayMs "unlockDelayMs" #define ResUseCursorColor "useCursorColor" #define ResV "v" #define ResVisibleControl "visibleControl" #define ResVisualBell "visualBell" #define ResVisualSelect "visualSelect" #define ResVisualSelectColor "visualSelectColor" #define ResWaitCursor "waitCursor" #define ResWerase "werase" /* Dotted resource names. */ #define DotActiveIcon "." ResActiveIcon #define DotAplMode "." ResAplMode #define DotCertFile "." ResCertFile #define DotCbreak "." ResCbreak #define DotCharClass "." ResCharClass #define DotCharset "." ResCharset #define DotColorScheme "." ResColorScheme #define DotDsTrace "." ResDsTrace #define DotEmulatorFont "." ResEmulatorFont #define DotExtended "." ResExtended #define DotInputMethod "." ResInputMethod #define DotKeymap "." ResKeymap #define DotKeypadOn "." ResKeypadOn #define DotM3279 "." ResM3279 #define DotModel "." ResModel #define DotMono "." ResMono #define DotOnce "." ResOnce #define DotOversize "." ResOversize #define DotPort "." ResPort #define DotPreeditType "." ResPreeditType #define DotPrinterLu "." ResPrinterLu #define DotProxy "." ResProxy #define DotReconnect "." ResReconnect #define DotSaveLines "." ResSaveLines #define DotScripted "." ResScripted #define DotScriptPort "." ResScriptPort #define DotScrollBar "." ResScrollBar #define DotSocket "." ResSocket #define DotTermName "." ResTermName #define DotTitle "." ResTitle #define DotTraceFile "." ResTraceFile #define DotTraceFileSize "." ResTraceFileSize #define DotV "." ResV /* Resource classes. */ #define ClsActiveIcon "ActiveIcon" #define ClsAdVersion "AdVersion" #define ClsAidWait "AidWait" #define ClsAllBold "AllBold" #define ClsAllowResize "AllowResize" #define ClsAltCursor "AltCursor" #define ClsAplMode "AplMode" #define ClsBaselevelTranslations "BaselevelTranslations" #define ClsBellVolume "BellVolume" #define ClsBlankFill "BlankFill" #define ClsBoldColor "BoldColor" #define ClsBsdTm "BsdTm" #define ClsCbreak "Cbreak" #define ClsCertFile "CertFile" #define ClsCharClass "CharClass" #define ClsCharset "Charset" #define ClsColor8 "Color8" #define ClsColorBackground "ColorBackground" #define ClsColorScheme "ColorScheme" #define ClsComposeMap "ComposeMap" #define ClsConfDir "ConfDir" #define ClsConnectFileName "ConnectFileName" #define ClsCrosshair "Crosshair" #define ClsCursorBlink "CursorBlink" #define ClsCursorColor "CursorColor" #define ClsCursorPos "CursorPos" #define ClsDbcsCgcsgid "DbcsCgcsgid" #define ClsDebugTracing "DebugTracing" #define ClsDftBufferSize "DftBufferSize" #define ClsDisconnectClear "DisconnectClear" #define ClsDoConfirms "DoConfirms" #define ClsDsTrace "DsTrace" #define ClsEmulatorFont "EmulatorFont" #define ClsEof "Eof" #define ClsErase "Erase" #define ClsEventTrace "EventTrace" #define ClsExtended "Extended" #define ClsFixedSize "FixedSize" #define ClsFtCommand "FtCommand" #define ClsHighlightBold "HighlightBold" #define ClsHostname "Hostname" #define ClsHostsFile "HostsFile" #define ClsIconFont "IconFont" #define ClsIconLabelFont "IconLabelFont" #define ClsIcrnl "Icrnl" #define ClsIdleCommand "IdleCommand" #define ClsIdleCommandEnabled "IdleCommandEnabled" #define ClsIdleTimeout "IdleTimeout" #define ClsInlcr "Inlcr" #define ClsInputColor "InputColor" #define ClsInputMethod "InputMethod" #define ClsIntr "Intr" #define ClsInvertKeypadShift "InvertKeypadShift" #define ClsKeymap "Keymap" #define ClsKeypad "Keypad" #define ClsKeypadBackground "KeypadBackground" #define ClsKeypadOn "KeypadOn" #define ClsKill "Kill" #define ClsLabelIcon "LabelIcon" #define ClsLineWrap "LineWrap" #define ClsLnext "Lnext" #define ClsLockedCursor "LockedCursor" #define ClsM3279 "M3279" #define ClsMacros "Macros" #define ClsMarginedPaste "MarginedPaste" #define ClsMenuBar "MenuBar" #define ClsMetaEscape "MetaEscape" #define ClsModel "Model" #define ClsModifiedSel "ModifiedSel" #define ClsModifiedSelColor "ModifiedSelColor" #define ClsMono "Mono" #define ClsMonoCase "MonoCase" #define ClsNoOther "NoOther" #define ClsNormalColor "NormalColor" #define ClsNormalCursor "NormalCursor" #define ClsNumericLock "NumericLock" #define ClsOerrLock "OerrLock" #define ClsOnce "Once" #define ClsOnlcr "Onlcr" #define ClsOversize "Oversize" #define ClsPluginCommand "PluginCommand" #define ClsPort "Port" #define ClsPreeditType "PreeditType" #define ClsPrinterLu "PrinterLu" #define ClsProxy "Proxy" #define ClsQuit "Quit" #define ClsReconnect "Reconnect" #define ClsRectangleSelect "RectangleSelect" #define ClsRprnt "Rprnt" #define ClsSaveLines "SaveLines" #define ClsSbcsCgcsgid "SbcsSgcsgid" #define ClsScreenTrace "ScreenTrace" #define ClsScreenTraceFile "ScreenTraceFile" #define ClsScripted "Scripted" #define ClsScriptPort "ScriptPort" #define ClsScrollBar "ScrollBar" #define ClsSecure "Secure" #define ClsSelectBackground "SelectBackground" #define ClsShowTiming "ShowTiming" #define ClsSocket "Socket" #define ClsSuppressHost "SuppressHost" #define ClsSuppressFontMenu "SuppressFontMenu" #define ClsTermName "TermName" #define ClsTraceDir "TraceDir" #define ClsTraceFile "TraceFile" #define ClsTraceFileSize "TraceFileSize" #define ClsTraceMonitor "TraceMonitor" #define ClsTypeahead "Typeahead" #define ClsUnlockDelay "UnlockDelay" #define ClsUnlockDelayMs "UnlockDelayMs" #define ClsUseCursorColor "UseCursorColor" #define ClsVisibleControl "VisibleControl" #define ClsVisualBell "VisualBell" #define ClsVisualSelect "VisualSelect" #define ClsVisualSelectColor "VisualSelectColor" #define ClsWaitCursor "WaitCursor" #define ClsWerase "Werase" /* Options. */ #define OptActiveIcon "-activeicon" #define OptAllBold "-allbold" #define OptAltScreen "-altscreen" #define OptAplMode "-apl" #define OptCbreak "-cbreak" #define OptCertFile "-certificate" #define OptCharClass "-cc" #define OptCharset "-charset" #define OptClear "-clear" #define OptColorScheme "-scheme" #define OptDefScreen "-defscreen" #define OptDsTrace "-trace" #define OptEmulatorFont "-efont" #define OptExtended "-extended" #define OptHostsFile "-hostsfile" #define OptIconName "-iconname" #define OptIconX "-iconx" #define OptIconY "-icony" #define OptInputMethod "-im" #define OptKeymap "-keymap" #define OptKeypadOn "-keypad" #define OptLocalCp "-localcp" #define OptLocalProcess "-e" #define OptM3279 "-color" #define OptModel "-model" #define OptMono "-mono" #define OptNoPrompt "-noprompt" #define OptNoScrollBar "+sb" #define OptOnce "-once" #define OptOversize "-oversize" #define OptPort "-port" #define OptPreeditType "-pt" #define OptPrinterLu "-printerlu" #define OptProxy "-proxy" #define OptReconnect "-reconnect" #define OptReverseVideo "-rv" #define OptSaveLines "-sl" #define OptSecure "-secure" #define OptScripted "-script" #define OptScriptPort "-scriptport" #define OptScrollBar "-sb" #define OptSet "-set" #define OptSocket "-socket" #define OptAutoShortcut "-S" #define OptNoAutoShortcut "+S" #define OptTermName "-tn" #define OptTitle "-title" #define OptTraceFile "-tracefile" #define OptTraceFileSize "-tracefilesize" #define OptV "-v" #define OptVersion "--version" /* Miscellaneous values. */ #define ResTrue "true" #define ResFalse "false" #define KpLeft "left" #define KpRight "right" #define KpBottom "bottom" #define KpIntegral "integral" #define KpInsideRight "insideRight" #define Apl "apl" /* Resources that are gotten explicitly. */ #define ResComposeMap "composeMap" #define ResEmulatorFontList "emulatorFontList" #define ResKeyHeight "keyHeight" #define ResKeyWidth "keyWidth" #define ResLargeKeyWidth "largeKeyWidth" #define ResMessage "message" #define ResNvt "nvt" #define ResPaWidth "paWidth" #define ResPfWidth "pfWidth" #define ResPrintTextCommand "printTextCommand" #define ResPrintTextFont "printTextFont" #define ResPrintTextSize "printTextSize" #define ResPrintWindowCommand "printWindowCommand" #define ResTraceCommand "traceCommand" #define ResUser "user" ibm-3270-3.3.10ga4/wc3270/kybdc.h0000644000175000017500000001572211254565704015370 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * kybdc.h * Global declarations for kybd.c. */ /* keyboard lock states */ extern unsigned int kybdlock; #define KL_OERR_MASK 0x000f #define KL_OERR_PROTECTED 1 #define KL_OERR_NUMERIC 2 #define KL_OERR_OVERFLOW 3 #define KL_OERR_DBCS 4 #define KL_NOT_CONNECTED 0x0010 #define KL_AWAITING_FIRST 0x0020 #define KL_OIA_TWAIT 0x0040 #define KL_OIA_LOCKED 0x0080 #define KL_DEFERRED_UNLOCK 0x0100 #define KL_ENTER_INHIBIT 0x0200 #define KL_SCROLLED 0x0400 #define KL_OIA_MINUS 0x0800 /* actions */ extern void AltCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Attn_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void BackSpace_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void BackTab_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CircumNot_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Clear_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Compose_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CursorSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Default_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void DeleteField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void DeleteWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Delete_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Down_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Dup_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Enter_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EraseEOF_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EraseInput_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Erase_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void FieldEnd_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void FieldMark_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Flip_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void HexString_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Home_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ignore_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Insert_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Interrupt_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Key_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Left2_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Left_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MonoCase_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MouseSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MoveCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Newline_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void NextWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PA_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PA_Shift_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PF_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PreviousWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Reset_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Right2_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Right_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void String_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void SysReq_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Tab_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void TemporaryKeymap_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ToggleInsert_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ToggleReverse_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Up_action(Widget w, XEvent *event, String *params, Cardinal *num_params); /* other functions */ extern void do_reset(Boolean explicit); extern int emulate_input(char *s, int len, Boolean pasting); extern int emulate_uinput(ucs4_t *s, int len, Boolean pasting); extern void hex_input(char *s); extern void kybdlock_clr(unsigned int bits, const char *cause); extern void kybd_inhibit(Boolean inhibit); extern void kybd_init(void); extern int kybd_prime(void); extern void kybd_scroll_lock(Boolean lock); extern Boolean run_ta(void); extern int state_from_keymap(char keymap[32]); ibm-3270-3.3.10ga4/wc3270/gluec.h0000644000175000017500000000427511254565704015374 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * gluec.h * Declarations for glue.c and XtGlue.c */ /* glue.c */ extern int parse_command_line(int argc, const char **argv, const char **cl_hostname); extern void parse_xrm(const char *arg, const char *where); extern char *safe_string(const char *s); extern Boolean process_events(Boolean block); extern void cmdline_help(Boolean as_action); struct host_color { char *name; int index; }; extern struct host_color host_color[]; /* XtGlue.c */ extern void (*Warning_redirect)(const char *); #if !defined(_WIN32) /*[*/ extern int select_setup(int *nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval **timeout, struct timeval *timebuf); #endif /*]*/ ibm-3270-3.3.10ga4/wc3270/printc.h0000644000175000017500000000432611254565704015571 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * printc.h * Global declarations for print.c. */ typedef enum { P_TEXT, P_HTML, P_RTF } ptype_t; #define FPS_EVEN_IF_EMPTY 0x1 #define FPS_MODIFIED_ITALIC 0x2 extern Boolean fprint_screen(FILE *f, ptype_t ptype, unsigned opts, char *caption); extern void PrintText_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PrintWindow_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void print_text_option(Widget w, XtPointer client_data, XtPointer call_data); extern void print_window_option(Widget w, XtPointer client_data, XtPointer call_data); extern void save_text_option(Widget w, XtPointer client_data, XtPointer call_data); ibm-3270-3.3.10ga4/wc3270/savec.h0000644000175000017500000000314211254565673015373 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of savec.h */ #define save_yourself() extern char *command_string; ibm-3270-3.3.10ga4/wc3270/ft_dftc.h0000644000175000017500000000335411254565704015703 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ extern void ft_dft_data(unsigned char *data, int length); extern void dft_read_modified(void); extern void set_dft_buffersize(void); ibm-3270-3.3.10ga4/wc3270/install-sh0000755000175000017500000001267111254565704016127 0ustar bastianbastian#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else : fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=$mkdirprog fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then : else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else : fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else : fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else : fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else : fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 ibm-3270-3.3.10ga4/wc3270/utilc.h0000644000175000017500000000644711256026610015406 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utilc.h * Global declarations for util.c. */ extern void add_resource(const char *name, const char *value); extern char *ctl_see(int c); extern char *do_subst(const char *s, Boolean do_vars, Boolean do_tilde); extern void fcatv(FILE *f, char *s); extern const char *get_message(const char *key); extern char *get_fresource(const char *fmt, ...) printflike(1, 2); extern char *get_resource(const char *name); extern char *scatv(const char *s, char *buf, size_t len); extern int split_dbcs_resource(const char *value, char sep, char **part1, char **part2); extern int split_dresource(char **st, char **left, char **right); extern int split_lresource(char **st, char **value); extern char *strip_whitespace(const char *s); extern char *xs_buffer(const char *fmt, ...) printflike(1, 2); extern void xs_error(const char *fmt, ...) printflike(1, 2); extern void xs_warning(const char *fmt, ...) printflike(1, 2); extern unsigned long AddInput(int, void (*)(void)); extern unsigned long AddExcept(int, void (*)(void)); extern unsigned long AddOutput(int, void (*)(void)); extern void RemoveInput(unsigned long); extern unsigned long AddTimeOut(unsigned long msec, void (*fn)(void)); extern void RemoveTimeOut(unsigned long cookie); extern KeySym StringToKeysym(char *s); extern char *KeysymToString(KeySym k); extern int read_resource_file(const char *filename, Boolean fatal); extern Boolean split_hier(char *label, char **base, char ***parents); typedef struct { char *buf; int alloc_len; int cur_len; } rpf_t; extern void rpf_init(rpf_t *r); extern void rpf_reset(rpf_t *r); extern void rpf(rpf_t *r, char *fmt, ...) printflike(2, 3); extern void rpf_free(rpf_t *r); extern const char *build_options(void); extern void dump_version(void); extern const char *display_scale(double d, char *buf, size_t buflen); ibm-3270-3.3.10ga4/wc3270/windirsc.h0000644000175000017500000000317011254565675016117 0ustar bastianbastian/* * Copyright (c) 2006-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ extern int get_dirs(char *argv0, char *appname, char **instdir, char **desktop, char **appdata, int *installed); ibm-3270-3.3.10ga4/wc3270/tablesc.h0000644000175000017500000000334711254565704015711 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tablesc.h * Global declarations for tables.c. */ extern const unsigned char asc2cg0[256]; extern const unsigned char ebc2cg0[256]; extern const unsigned char ebc2asc0[256]; extern const unsigned char asc2ebc0[256]; ibm-3270-3.3.10ga4/wpr3287/0000755000175000017500000000000011261530022014302 5ustar bastianbastianibm-3270-3.3.10ga4/wpr3287/Makefile0000755000175000017500000000617611254565705016001 0ustar bastianbastian# Copyright (c) 2007-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Makefile for wpr3287 # Figure out if they've installed MinGW OpenSSL. SSLDIR = /usr/local/mingw-openssl HAVE_OPENSSL = $(shell [ -d $(SSLDIR) ] && echo yes) ifeq ($(HAVE_OPENSSL),yes) SSLCPP = -DHAVE_LIBSSL=1 -I$(SSLDIR)/include SSLLIB = -L$(SSLDIR)/lib -lssl -lcrypto -lwsock32 -ladvapi32 -lgdi32 -luser32 endif # Set command paths based on whether compiling natively on Cygwin, or # cross-compiling on Linux. ifeq ($(CROSS),1) CC = i586-mingw32msvc-gcc WINDRES = i586-mingw32msvc-windres NO_CYGWIN = else CC = gcc WINDRES = windres NO_CYGWIN = -mno-cygwin endif XCPPFLAGS = -D_WIN32 -DPR3287 -DWPR3287 -DX3270_DBCS=1 -D_WIN32_WINNT=0x500 -D_WIN32_IE=0x0500 -DWINVER=0x500 CFLAGS = $(NO_CYGWIN) -g -Wall -Werror $(XCPPFLAGS) -I. $(SSLCPP) SRCS = charset.c ctlr.c pr3287.c proxy.c resolver.c see.c sf.c tables.c \ telnet.c trace_ds.c utf8.c w3misc.c windirs.c winvers.c unicode.c \ unicode_dbcs.c VOBJS = charset.o ctlr.o pr3287.o proxy.o resolver.o see.o sf.o tables.o \ telnet.o trace_ds.o utf8.o wpr3287res.o ws.o w3misc.o windirs.o \ winvers.o unicode.o unicode_dbcs.o OBJECTS = $(VOBJS) version.o LIBS = $(SSLLIB) -lws2_32 -lwinspool all: wpr3287.exe version.o: $(VOBJS) version.txt mkversion.sh @chmod +x mkversion.sh version.txt sh ./mkversion.sh $(CC) wpr3287 wpr3287res.o: wpr3287.rc pr3287.ico $(WINDRES) -i wpr3287.rc -o wpr3287res.o wpr3287.exe: $(OBJECTS) $(CC) -o wpr3287.exe $(CFLAGS) $(OBJECTS) $(LIBS) clean: rm -f *.o clobber: clean rm -f wpr3287.exe depend: gccmakedep -fMakefile $(XCPPFLAGS) -s "# DO NOT DELETE" $(SRCS) # ------------------------------------------------------------------------- # dependencies generated by makedepend # DO NOT DELETE ibm-3270-3.3.10ga4/wpr3287/resolverc.h0000644000175000017500000000361311254565704016503 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resolverc.h * Hostname resolution. */ extern int resolve_host_and_port(const char *host, char *portname, int ix, unsigned short *pport, struct sockaddr *sa, socklen_t *sa_len, char *errmsg, int em_size, int *lastp); extern int numeric_host_and_port(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, char *errmsg, int em_len); ibm-3270-3.3.10ga4/wpr3287/utf8.c0000644000175000017500000001545611254565704015370 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utf8.c * 3270 Terminal Emulator * UTF-8 conversions */ #include "globals.h" #include "popupsc.h" #include "utf8c.h" char *locale_codeset = CN; Boolean is_utf8 = False; /* * Save the codeset from the locale, and set globals based on known values. */ void set_codeset(char *codeset_name) { #if !defined(TCL3270) /*[*/ is_utf8 = (!strcasecmp(codeset_name, "utf-8") || !strcasecmp(codeset_name, "utf8") || !strcasecmp(codeset_name, "utf_8")); #else /*][*/ /* * tcl3270 is always in UTF-8 mode, because it needs to * supply UTF-8 strings to libtcl and vice-versa. */ is_utf8 = True; #endif /*]*/ Replace(locale_codeset, NewString(codeset_name)); } /* * Convert from UCS-4 to UTF-8. * Returns: * >0: length of converted character * -1: invalid UCS-4 */ int unicode_to_utf8(ucs4_t ucs4, char *utf8) { if (ucs4 & 0x80000000) return -1; if (ucs4 <= 0x0000007f) { utf8[0] = ucs4 & 0x7f; /* 7 bits */ return 1; } else if (ucs4 <= 0x000007ff) { utf8[0] = 0xc0 | ((ucs4 >> 6) & 0x1f); /* upper 5 bits */ utf8[1] = 0x80 | (ucs4 & 0x3f); /* lower 6 bits */ return 2; } else if (ucs4 <= 0x0000ffff) { utf8[0] = 0xe0 | ((ucs4 >> 12) & 0x0f); /* upper 4 bits */ utf8[1] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 3; } else if (ucs4 <= 0x001fffff) { utf8[0] = 0xf0 | ((ucs4 >> 18) & 0x07); /* upper 3 bits */ utf8[1] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 4; } else if (ucs4 <= 0x03ffffff) { utf8[0] = 0xf8 | ((ucs4 >> 24) & 0x03); /* upper 2 bits */ utf8[1] = 0x80 | ((ucs4 >> 18) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[4] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 5; } else { utf8[0] = 0xfc | ((ucs4 >> 30) & 0x01); /* upper 1 bit */ utf8[1] = 0x80 | ((ucs4 >> 24) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 18) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[4] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[5] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 6; } } /* * Convert at most 'len' bytes from a UTF-8 string to one UCS-4 character. * Returns: * >0: Number of characters consumed. * 0: Incomplete sequence. * -1: Invalid sequence. * -2: Illegal (too-long) encoding. * -3: Invalid lead byte. * * An invalid sequence can be either improperly composed, or using the wrong * encoding length (often used to get past spam filters and such). */ int utf8_to_unicode(const char *utf8, int len, ucs4_t *ucs4) { /* No input is by definition incomplete. */ if (!len) return 0; /* See if it's ASCII-7. */ if ((utf8[0] & 0xff) < 0x80) { *ucs4 = utf8[0] & 0x7f; return 1; } /* Now check for specific UTF-8 leading bytes. */ if ((utf8[0] & 0xe0) == 0xc0) { /* 110xxxxx 10xxxxxx * 0x00000080-0x000007ff */ if (len < 2) return 0; if ((utf8[1] & 0xc0) != 0x80) return -1; *ucs4 = ((utf8[0] << 6) & 0x7c0) | (utf8[1] & 0x03f); if (*ucs4 < 0x00000080) return -1; return 2; } if ((utf8[0] & 0xf0) == 0xe0) { /* 1110xxxx 10xxxxxx 10xxxxxx * 0x00000800-0x0000ffff */ if (len < 3) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 12) & 0xf000) | ((utf8[1] << 6) & 0x0fc0) | ((utf8[2]) & 0x003f); if (*ucs4 < 0x00000800) return -2; return 3; } if ((utf8[0] & 0xf8) == 0xf0) { /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x00010000-0x001fffff */ if (len < 4) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 18) & 0x1c0000) | ((utf8[1] << 12) & 0x03f000) | ((utf8[2] << 6) & 0x000fc0) | ((utf8[3]) & 0x00003f); if (*ucs4 < 0x00010000) return -2; return 4; } if ((utf8[0] & 0xfc) == 0xf8) { /* 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x00200000-0x03ffffff */ if (len < 5) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80) || ((utf8[4] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 24) & 0x3000000) | ((utf8[1] << 18) & 0x0fc0000) | ((utf8[2] << 12) & 0x003f000) | ((utf8[3] << 6) & 0x0000fc0) | ((utf8[4]) & 0x000003f); if (*ucs4 < 0x00200000) return -2; return 5; } if ((utf8[0] & 0xfe) == 0xfc) { /* 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x04000000-0x7fffffff */ if (len < 6) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80) || ((utf8[4] & 0xc0) != 0x80) || ((utf8[5] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 30) & 0x40000000) | ((utf8[1] << 24) & 0x3f000000) | ((utf8[2] << 18) & 0x00fc0000) | ((utf8[3] << 12) & 0x0003f000) | ((utf8[4] << 6) & 0x00000fc0) | ((utf8[5]) & 0x0000003f); if (*ucs4 < 0x04000000) return -2; return 6; } return -3; } ibm-3270-3.3.10ga4/wpr3287/tn3270e.h0000644000175000017500000000704311254565704015602 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tn3270e.h * * Header file for the TN3270E Protocol, RFC 2355. */ /* Negotiation operations. */ #define TN3270E_OP_ASSOCIATE 0 #define TN3270E_OP_CONNECT 1 #define TN3270E_OP_DEVICE_TYPE 2 #define TN3270E_OP_FUNCTIONS 3 #define TN3270E_OP_IS 4 #define TN3270E_OP_REASON 5 #define TN3270E_OP_REJECT 6 #define TN3270E_OP_REQUEST 7 #define TN3270E_OP_SEND 8 /* Negotiation reason-codes. */ #define TN3270E_REASON_CONN_PARTNER 0 #define TN3270E_REASON_DEVICE_IN_USE 1 #define TN3270E_REASON_INV_ASSOCIATE 2 #define TN3270E_REASON_INV_DEVICE_NAME 3 #define TN3270E_REASON_INV_DEVICE_TYPE 4 #define TN3270E_REASON_TYPE_NAME_ERROR 5 #define TN3270E_REASON_UNKNOWN_ERROR 6 #define TN3270E_REASON_UNSUPPORTED_REQ 7 /* Negotiation function Names. */ #define TN3270E_FUNC_BIND_IMAGE 0 #define TN3270E_FUNC_DATA_STREAM_CTL 1 #define TN3270E_FUNC_RESPONSES 2 #define TN3270E_FUNC_SCS_CTL_CODES 3 #define TN3270E_FUNC_SYSREQ 4 /* Header data type names. */ #define TN3270E_DT_3270_DATA 0x00 #define TN3270E_DT_SCS_DATA 0x01 #define TN3270E_DT_RESPONSE 0x02 #define TN3270E_DT_BIND_IMAGE 0x03 #define TN3270E_DT_UNBIND 0x04 #define TN3270E_DT_NVT_DATA 0x05 #define TN3270E_DT_REQUEST 0x06 #define TN3270E_DT_SSCP_LU_DATA 0x07 #define TN3270E_DT_PRINT_EOJ 0x08 /* Header request flags. */ #define TN3270E_RQF_ERR_COND_CLEARED 0x00 /* Header response flags. */ #define TN3270E_RSF_NO_RESPONSE 0x00 #define TN3270E_RSF_ERROR_RESPONSE 0x01 #define TN3270E_RSF_ALWAYS_RESPONSE 0x02 #define TN3270E_RSF_POSITIVE_RESPONSE 0x00 #define TN3270E_RSF_NEGATIVE_RESPONSE 0x01 /* Header response data. */ #define TN3270E_POS_DEVICE_END 0x00 #define TN3270E_NEG_COMMAND_REJECT 0x00 #define TN3270E_NEG_INTERVENTION_REQUIRED 0x01 #define TN3270E_NEG_OPERATION_CHECK 0x02 #define TN3270E_NEG_COMPONENT_DISCONNECTED 0x03 /* TN3270E data header. */ typedef struct { unsigned char data_type; unsigned char request_flag; unsigned char response_flag; unsigned char seq_number[2]; /* actually, 16 bits, unaligned (!) */ } tn3270e_header; #define EH_SIZE 5 ibm-3270-3.3.10ga4/wpr3287/pr3287.c0000644000175000017500000005346511254565701015446 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * pr3287: A 3270 printer emulator for TELNET sessions. * * pr3287 [options] [lu[,lu...]@]host[:port] * Options are: * -dameon * become a daemon after negotiating * -assoc session * associate with a session (TN3270E only) * -command "string" * command to use to print (default "lpr", POSIX only) * -charset name * use the specified character set * -crlf * expand newlines to CR/LF (POSIX only) * -nocrlf * expand newlines to CR/LF (Windows only) * -blanklines * display blank lines even if they're empty (formatted LU3) * -eojtimeout n * time out end of job after n seconds * -ffthru * pass through SCS FF orders * -ffskip * skip FF at top of page * -printer "printer name" * printer to use (default is $PRINTER or system default, * Windows only) * -printercp n * Code page to use for output (Windows only) * -proxy "spec" * proxy specification * -reconnect * keep trying to reconnect * -trace * trace data stream to a file * -tracedir dir * directory to write trace file in (POSIX only) * -trnpre file * file of transparent data to send before jobs * -trnpost file * file of transparent data to send after jobs * -v * display version information and exit * -V * verbose output about negotiation */ #include #include #include #include #include #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #if !defined(_WIN32) /*[*/ #include #include #include #else /*][*/ #include #include #undef AF_INET6 #endif /*]*/ #include #include #include #include "globals.h" #include "charsetc.h" #include "trace_dsc.h" #include "ctlrc.h" #include "popupsc.h" #include "proxyc.h" #include "resolverc.h" #include "telnetc.h" #include "utf8c.h" #if defined(_WIN32) /*[*/ #include "w3miscc.h" #include "wsc.h" #include "windirsc.h" #endif /*]*/ #if defined(_IOLBF) /*[*/ #define SETLINEBUF(s) setvbuf(s, (char *)NULL, _IOLBF, BUFSIZ) #else /*][*/ #define SETLINEBUF(s) setlinebuf(s) #endif /*]*/ #if !defined(INADDR_NONE) /*[*/ #define INADDR_NONE 0xffffffffL #endif /*]*/ /* Externals. */ extern char *build; extern FILE *tracef; /* Globals. */ char *programname = NULL; /* program name */ int blanklines = 0; int ignoreeoj = 0; int reconnect = 0; #if defined(_WIN32) /*[*/ int crlf = 1; int printercp = 0; #else /*][*/ int crlf = 0; #endif /*]*/ int ffthru = 0; int ffskip = 0; int verbose = 0; int ssl_host = 0; unsigned long eoj_timeout = 0L; /* end of job timeout */ char *trnpre_data = NULL; size_t trnpre_size = 0; char *trnpost_data = NULL; size_t trnpost_size = 0; /* User options. */ #if !defined(_WIN32) /*[*/ static enum { NOT_DAEMON, WILL_DAEMON, AM_DAEMON } bdaemon = NOT_DAEMON; #endif /*]*/ static char *assoc = NULL; /* TN3270 session to associate with */ #if !defined(_WIN32) /*[*/ const char *command = "lpr"; /* command to run for printing */ #else /*][*/ const char *printer = NULL; /* printer to use */ #endif /*]*/ static int tracing = 0; /* are we tracing? */ #if !defined(_WIN32) /*[*/ static char *tracedir = "/tmp"; /* where we are tracing */ #endif /*]*/ char *proxy_spec; /* proxy specification */ static int proxy_type = 0; static char *proxy_host = CN; static char *proxy_portname = CN; static unsigned short proxy_port = 0; #if defined(_WIN32) /*[*/ char *appdata; #endif /* ]*/ void pr3287_exit(int); const char *build_options(void); /* Print a usage message and exit. */ static void usage(void) { (void) fprintf(stderr, "usage: %s [options] [lu[,lu...]@]host[:port]\n" "Options:\n%s%s%s%s", programname, #if !defined(_WIN32) /*[*/ " -daemon become a daemon after connecting\n" #endif /*]*/ " -assoc associate with a session (TN3270E only)\n" " -charset use built-in alternate EBCDIC-to-ASCII mappings\n", #if !defined(_WIN32) /*[*/ " -command \"\" use for printing (default \"lpr\")\n" #endif /*]*/ " -blanklines display blank lines even if empty (formatted LU3)\n" #if defined(_WIN32) /*[*/ " -nocrlf don't expand newlines to CR/LF\n" #else /*][*/ " -crlf expand newlines to CR/LF\n" #endif /*]*/ " -eojtimeout \n" " time out end of print job\n" " -ffthru pass through SCS FF orders\n" " -ffskip skip FF orders at top of page\n", " -ignoreeoj ignore PRINT-EOJ commands\n" #if defined(_WIN32) /*[*/ " -printer \"printer name\"\n" " use specific printer (default is $PRINTER or the system\n" " default printer)\n" " -printercp \n" " code page for output (default is system ANSI code page)\n" #endif /*]*/ " -proxy \"\"\n" " connect to host via specified proxy\n" " -reconnect keep trying to reconnect\n" #if defined(_WIN32) /*[*/ " -trace trace data stream to /x3trc..txt\n", #else /*][*/ " -trace trace data stream to /tmp/x3trc.\n", #endif /*]*/ #if !defined(_WIN32) /*[*/ " -tracedir directory to keep trace information in\n" #endif /*]*/ " -trnpre file of transparent data to send before each job\n" " -trnpost file of transparent data to send after each job\n" " -v display version information and exit\n" " -V log verbose information about connection negotiation\n" ); pr3287_exit(1); } /* Print an error message. */ void verrmsg(const char *fmt, va_list ap) { static char buf[2][4096] = { "", "" }; static int ix = 0; ix = !ix; (void) vsprintf(buf[ix], fmt, ap); trace_ds("Error: %s\n", buf[ix]); if (!strcmp(buf[ix], buf[!ix])) { if (verbose) (void) fprintf(stderr, "Suppressed error '%s'\n", buf[ix]); return; } #if !defined(_WIN32) /*[*/ if (bdaemon == AM_DAEMON) { /* XXX: Need to put somethig in the Application Event Log. */ syslog(LOG_ERR, "%s: %s", programname, buf[ix]); } else { #endif /*]*/ (void) fprintf(stderr, "%s: %s\n", programname, buf[ix]); #if !defined(_WIN32) /*[*/ } #endif /*]*/ } void errmsg(const char *fmt, ...) { va_list args; va_start(args, fmt); (void) verrmsg(fmt, args); va_end(args); } /* Memory allocation. */ void * Malloc(size_t len) { void *p = malloc(len); if (p == NULL) { errmsg("Out of memory"); pr3287_exit(1); } return p; } void Free(void *p) { free(p); } void * Realloc(void *p, size_t len) { void *pn; pn = realloc(p, len); if (pn == NULL) { errmsg("Out of memory"); pr3287_exit(1); } return pn; } char * NewString(const char *s) { char *p; p = Malloc(strlen(s) + 1); return strcpy(p, s); } void Error(const char *msg) { errmsg(msg); pr3287_exit(1); } /* Signal handler for SIGTERM, SIGINT and SIGHUP. */ static void fatal_signal(int sig) { /* Flush any pending data and exit. */ trace_ds("Fatal signal %d\n", sig); (void) print_eoj(); errmsg("Exiting on signal %d", sig); exit(0); } #if !defined(_WIN32) /*[*/ /* Signal handler for SIGUSR1. */ static void flush_signal(int sig) { /* Flush any pending data and exit. */ trace_ds("Flush signal %d\n", sig); (void) print_eoj(); } #endif /*]*/ void pr3287_exit(int status) { #if defined(_WIN32) && defined(NEED_PAUSE) /*[*/ char buf[2]; if (status) { printf("\n[Press ] "); fflush(stdout); (void) fgets(buf, 2, stdin); } #endif /*]*/ exit(status); } /* Read a transparent data file into memory. */ static void read_trn(char *filename, char **data, size_t *size) { int fd; char buf[1024]; int nr; if (filename == NULL) return; fd = open(filename, O_RDONLY); if (fd < 0) { perror(filename); pr3287_exit(1); } *size = 0; while ((nr = read(fd, buf, sizeof(buf))) > 0) { *size += nr; *data = realloc(*data, *size); if (*data == NULL) { fprintf(stderr, "Out of memory\n"); pr3287_exit(1); } memcpy(*data + *size - nr, buf, nr); } if (nr < 0) { perror(filename); pr3287_exit(1); } close(fd); } int main(int argc, char *argv[]) { int i; char *at, *colon; int len; char *charset = "us"; char *lu = NULL; char *host = NULL; char *port = "telnet"; unsigned short p; union { struct sockaddr sa; struct sockaddr_in sin; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sin6; #endif /*]*/ } ha; socklen_t ha_len = sizeof(ha); int s = -1; int rc = 0; int report_success = 0; #if defined(HAVE_LIBSSL) /*[*/ int any_prefixes = False; #endif /*]*/ char *trnpre = NULL, *trnpost = NULL; /* Learn our name. */ #if defined(_WIN32) /*[*/ if ((programname = strrchr(argv[0], '\\')) != NULL) #else /*][*/ if ((programname = strrchr(argv[0], '/')) != NULL) #endif /*]*/ programname++; else programname = argv[0]; #if !defined(_WIN32) /*[*/ if (!programname[0]) programname = "wpr3287"; #endif /*]*/ #if defined(_WIN32) /*[*/ /* * Get the printer name via the environment, because Windows doesn't * let us put spaces in arguments. */ if ((printer = getenv("PRINTER")) == NULL) printer = ws_default_printer(); if (get_dirs(NULL, "wc3270", NULL, NULL, &appdata, NULL) < 0) exit(1); if (sockstart() < 0) exit(1); #endif /*]*/ /* Gather the options. */ for (i = 1; i < argc && argv[i][0] == '-'; i++) { #if !defined(_WIN32) /*[*/ if (!strcmp(argv[i], "-daemon")) bdaemon = WILL_DAEMON; else #endif /*]*/ if (!strcmp(argv[i], "-assoc")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -assoc\n"); usage(); } assoc = argv[i + 1]; i++; #if !defined(_WIN32) /*[*/ } else if (!strcmp(argv[i], "-command")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -command\n"); usage(); } command = argv[i + 1]; i++; #endif /*]*/ } else if (!strcmp(argv[i], "-charset")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -charset\n"); usage(); } charset = argv[i + 1]; i++; } else if (!strcmp(argv[i], "-blanklines")) { blanklines = 1; #if defined(_WIN32) /*[*/ } else if (!strcmp(argv[i], "-nocrlf")) { crlf = 0; #else /*][*/ } else if (!strcmp(argv[i], "-crlf")) { crlf = 1; #endif /*]*/ } else if (!strcmp(argv[i], "-eojtimeout")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -charset\n"); usage(); } eoj_timeout = strtoul(argv[i + 1], NULL, 0); i++; } else if (!strcmp(argv[i], "-ignoreeoj")) { ignoreeoj = 1; } else if (!strcmp(argv[i], "-ffthru")) { ffthru = 1; } else if (!strcmp(argv[i], "-ffskip")) { ffskip = 1; #if defined(_WIN32) /*[*/ } else if (!strcmp(argv[i], "-printer")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -printer\n"); usage(); } printer = argv[i + 1]; i++; } else if (!strcmp(argv[i], "-printercp")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -printer\n"); usage(); } printercp = (int)strtoul(argv[i + 1], NULL, 0); i++; #endif /*]*/ } else if (!strcmp(argv[i], "-reconnect")) { reconnect = 1; } else if (!strcmp(argv[i], "-v")) { printf("%s\n%s\n", build, build_options()); charset_list(); printf("\n\ Copyright 1989-2009, Paul Mattes, GTRC and others.\n\ See the source code or documentation for licensing details.\n\ Distributed WITHOUT ANY WARRANTY; without even the implied warranty of\n\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); exit(0); } else if (!strcmp(argv[i], "-V")) { verbose = 1; } else if (!strcmp(argv[i], "-trace")) { tracing = 1; #if !defined(_WIN32) /*[*/ } else if (!strcmp(argv[i], "-tracedir")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -tracedir\n"); usage(); } tracedir = argv[i + 1]; i++; #endif /*]*/ } else if (!strcmp(argv[i], "-trnpre")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -trnpre\n"); usage(); } trnpre = argv[i + 1]; i++; } else if (!strcmp(argv[i], "-trnpost")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -trnpost\n"); usage(); } trnpost = argv[i + 1]; i++; } else if (!strcmp(argv[i], "-proxy")) { if (argc <= i + 1 || !argv[i + 1][0]) { (void) fprintf(stderr, "Missing value for -proxy\n"); usage(); } proxy_spec = argv[i + 1]; i++; } else if (!strcmp(argv[i], "--help")) { usage(); } else usage(); } if (argc != i + 1) usage(); /* Pick apart the hostname, LUs and port. */ #if defined(HAVE_LIBSSL) /*[*/ do { if (!strncasecmp(argv[i], "l:", 2)) { ssl_host = True; argv[i] += 2; any_prefixes = True; } else any_prefixes = False; } while (any_prefixes); #endif /*]*/ if ((at = strchr(argv[i], '@')) != NULL) { len = at - argv[i]; if (!len) usage(); lu = Malloc(len + 1); (void) strncpy(lu, argv[i], len); lu[len] = '\0'; host = at + 1; } else host = argv[i]; /* * Allow the hostname to be enclosed in '[' and ']' to quote any * IPv6 numeric-address ':' characters. */ if (host[0] == '[') { char *tmp; char *rbracket; rbracket = strchr(host+1, ']'); if (rbracket != NULL) { len = rbracket - (host+1); tmp = Malloc(len + 1); (void) strncpy(tmp, host+1, len); tmp[len] = '\0'; host = tmp; } if (*(rbracket + 1) == ':') { port = rbracket + 2; } } else { colon = strchr(host, ':'); if (colon != NULL) { char *tmp; len = colon - host; if (!len || !*(colon + 1)) usage(); port = colon + 1; tmp = Malloc(len + 1); (void) strncpy(tmp, host, len); tmp[len] = '\0'; host = tmp; } } #if defined(_WIN32) /*[*/ /* Set the printer code page. */ if (printercp == 0) printercp = GetACP(); #endif /*]*/ /* Set up the character set. */ if (charset_init(charset) < 0) pr3287_exit(1); /* Read in the transparent pre- and post- files. */ read_trn(trnpre, &trnpre_data, &trnpre_size); read_trn(trnpost, &trnpost_data, &trnpost_size); /* Try opening the trace file, if there is one. */ if (tracing) { char tracefile[256]; time_t clk; int i; #if defined(_WIN32) /*[*/ (void) sprintf(tracefile, "%sx3trc.%d.txt", appdata, getpid()); #else /*][*/ (void) sprintf(tracefile, "%s/x3trc.%d", tracedir, getpid()); #endif /*]*/ tracef = fopen(tracefile, "a"); if (tracef == NULL) { #if defined(_WIN32) /*[*/ (void) sprintf(tracefile, "x3trc.%d.txt", getpid()); tracef = fopen(tracefile, "a"); if (tracef == NULL) { #endif /*]*/ perror(tracefile); pr3287_exit(1); #if defined(_WIN32) /*[*/ } #endif /*]*/ } (void) SETLINEBUF(tracef); clk = time((time_t *)0); (void) fprintf(tracef, "Trace started %s", ctime(&clk)); (void) fprintf(tracef, " Version: %s\n %s\n", build, build_options()); #if !defined(_WIN32) /*[*/ (void) fprintf(tracef, " Locale codeset: %s\n", locale_codeset); #else /*][*/ (void) fprintf(tracef, " ANSI codepage: %d, " "printer codepage: %d\n", GetACP(), printercp); #endif /*]*/ (void) fprintf(tracef, " Host codepage: %d", (int)(cgcsgid & 0xffff)); #if defined(X3270_DBCS) /*[*/ if (dbcs) (void) fprintf(tracef, "+%d", (int)(cgcsgid_dbcs & 0xffff)); #endif /*]*/ (void) fprintf(tracef, "\n"); (void) fprintf(tracef, " Command:"); for (i = 0; i < argc; i++) { (void) fprintf(tracef, " %s", argv[i]); } (void) fprintf(tracef, "\n"); } #if !defined(_WIN32) /*[*/ /* Become a daemon. */ if (bdaemon != NOT_DAEMON) { switch (fork()) { case -1: perror("fork"); exit(1); break; case 0: /* Child: Break away from the TTY. */ if (setsid() < 0) exit(1); bdaemon = AM_DAEMON; break; default: /* Parent: We're all done. */ exit(0); break; } } #endif /*]*/ /* Handle signals. */ (void) signal(SIGTERM, fatal_signal); (void) signal(SIGINT, fatal_signal); #if !defined(_WIN32) /*[*/ (void) signal(SIGHUP, fatal_signal); (void) signal(SIGUSR1, flush_signal); (void) signal(SIGPIPE, SIG_IGN); #endif /*]*/ /* Set up the proxy. */ if (proxy_spec != CN) { proxy_type = proxy_setup(&proxy_host, &proxy_portname); if (proxy_type < 0) pr3287_exit(1); } /* * One-time initialization is now complete. * (Most) everything beyond this will now be retried, if the -reconnect * option is in effect. */ for (;;) { char errtxt[1024]; /* Resolve the host name. */ if (proxy_type > 0) { unsigned long lport; char *ptr; struct servent *sp; if (resolve_host_and_port(proxy_host, proxy_portname, 0, &proxy_port, &ha.sa, &ha_len, errtxt, sizeof(errtxt), NULL) < 0) { popup_an_error("%s/%s: %s", proxy_host, proxy_portname, errtxt); rc = 1; goto retry; } lport = strtoul(port, &ptr, 0); if (ptr == port || *ptr != '\0' || lport == 0L || lport & ~0xffff) { if (!(sp = getservbyname(port, "tcp"))) { popup_an_error("Unknown port number " "or service: %s", port); rc = 1; goto retry; } p = ntohs(sp->s_port); } else p = (unsigned short)lport; } else { if (resolve_host_and_port(host, port, 0, &p, &ha.sa, &ha_len, errtxt, sizeof(errtxt), NULL) < 0) { popup_an_error("%s/%s: %s", host, port, errtxt); rc = 1; goto retry; } } /* Connect to the host. */ s = socket(ha.sa.sa_family, SOCK_STREAM, 0); if (s < 0) { popup_a_sockerr("socket"); pr3287_exit(1); } if (connect(s, &ha.sa, ha_len) < 0) { popup_a_sockerr("%s", (proxy_type > 0)? proxy_host: host); rc = 1; goto retry; } if (proxy_type > 0) { /* Connect to the host through the proxy. */ if (verbose) { (void) fprintf(stderr, "Connected to proxy " "server %s, port %u\n", proxy_host, proxy_port); } if (proxy_negotiate(proxy_type, s, host, p) < 0) { rc = 1; goto retry; } } /* Say hello. */ if (verbose) { (void) fprintf(stderr, "Connected to %s, port %u%s\n", host, p, ssl_host? " via SSL": ""); if (assoc != NULL) (void) fprintf(stderr, "Associating with LU " "%s\n", assoc); else if (lu != NULL) (void) fprintf(stderr, "Connecting to LU %s\n", lu); #if !defined(_WIN32) /*[*/ (void) fprintf(stderr, "Command: %s\n", command); #else /*][*/ (void) fprintf(stderr, "Printer: %s\n", printer? printer: "(none)"); #endif /*]*/ } /* Negotiate. */ if (negotiate(s, lu, assoc) < 0) { rc = 1; goto retry; } /* Report sudden success. */ if (report_success) { errmsg("Connected to %s, port %u", host, p); report_success = 0; } /* Process what we're told to process. */ if (process(s) < 0) { rc = 1; if (verbose) (void) fprintf(stderr, "Disconnected (error).\n"); goto retry; } if (verbose) (void) fprintf(stderr, "Disconnected (eof).\n"); retry: /* Flush any pending data. */ (void) print_eoj(); /* Close the socket. */ if (s >= 0) { net_disconnect(); s = -1; } if (!reconnect) break; report_success = 1; /* Wait a while, to reduce thrash. */ if (rc) #if !defined(_WIN32) /*[*/ sleep(5); #else /*][*/ Sleep(5 * 1000000); #endif /*]*/ rc = 0; } pr3287_exit(rc); return rc; } /* Tracing function. */ void trace_str(const char *s) { if (tracef) fprintf(tracef, "%s", s); } /* Error pop-ups. */ void popup_an_error(const char *fmt, ...) { va_list args; va_start(args, fmt); (void) verrmsg(fmt, args); va_end(args); } void popup_an_errno(int err, const char *fmt, ...) { va_list args; va_start(args, fmt); if (err > 0) { char msgbuf[4096]; (void) vsprintf(msgbuf, fmt, args); errmsg("%s: %s", msgbuf, strerror(err)); } else { (void) verrmsg(fmt, args); } va_end(args); } const char * build_options(void) { return "Build options:" #if defined(X3270_DBCS) /*[*/ " --enable-dbcs" #else /*][*/ " --disable-dbcs" #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ " --with-ssl" #else /*][*/ " --without-ssl" #endif /*]*/ #if defined(USE_ICONV) /*[*/ " --with-iconv" #else /*][*/ " --without-iconv" #endif /*]*/ ; } ibm-3270-3.3.10ga4/wpr3287/w3miscc.h0000644000175000017500000000372511254565704016053 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * w3misc.c * Miscellaneous Win32 functions. */ #if defined(_WIN32) /*[*/ #if defined(_WS2TCPIP_H) /*[*/ extern const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt); #endif /*]*/ extern int sockstart(void); extern const char *win32_strerror(int e); #if defined(_MSC_VER) /*[*/ extern int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg; extern int optind, opterr, optopt; #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/wpr3287/arpa_telnet.h0000644000175000017500000001140211254565704016770 0ustar bastianbastian/* @(#)telnet.h 1.7 88/08/19 SMI; from UCB 5.1 5/30/85 */ /* * Copyright (c) 1983 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */ /* * Definitions for the TELNET protocol. */ #ifndef _arpa_telnet_h #define _arpa_telnet_h #define IAC 255 /* interpret as command: */ #define DONT 254 /* you are not to use option */ #define DO 253 /* please, you use option */ #define WONT 252 /* I won't use option */ #define WILL 251 /* I will use option */ #define SB 250 /* interpret as subnegotiation */ #define GA 249 /* you may reverse the line */ #define EL 248 /* erase the current line */ #define EC 247 /* erase the current character */ #define AYT 246 /* are you there */ #define AO 245 /* abort output--but let prog finish */ #define IP 244 /* interrupt process--permanently */ #define BREAK 243 /* break */ #define DM 242 /* data mark--for connect. cleaning */ #define NOP 241 /* nop */ #define SE 240 /* end sub negotiation */ #define EOR 239 /* end of record (transparent mode) */ #define SUSP 237 /* suspend process */ #define xEOF 236 /* end of file */ #define SYNCH 242 /* for telfunc calls */ #ifdef TELCMDS const char *telcmds[] = { "EOF", "SUSP", "ABORT", "EOR", "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0 }; #endif #define TELCMD_FIRST xEOF #define TELCMD_LAST IAC #define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \ (unsigned int)(x) >= TELCMD_FIRST) #define TELCMD(x) telcmds[(x)-TELCMD_FIRST] /* telnet options */ #define TELOPT_BINARY 0 /* 8-bit data path */ #define TELOPT_ECHO 1 /* echo */ #define TELOPT_RCP 2 /* prepare to reconnect */ #define TELOPT_SGA 3 /* suppress go ahead */ #define TELOPT_NAMS 4 /* approximate message size */ #define TELOPT_STATUS 5 /* give status */ #define TELOPT_TM 6 /* timing mark */ #define TELOPT_RCTE 7 /* remote controlled transmission and echo */ #define TELOPT_NAOL 8 /* negotiate about output line width */ #define TELOPT_NAOP 9 /* negotiate about output page size */ #define TELOPT_NAOCRD 10 /* negotiate about CR disposition */ #define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */ #define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */ #define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */ #define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */ #define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */ #define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */ #define TELOPT_XASCII 17 /* extended ascic character set */ #define TELOPT_LOGOUT 18 /* force logout */ #define TELOPT_BM 19 /* byte macro */ #define TELOPT_DET 20 /* data entry terminal */ #define TELOPT_SUPDUP 21 /* supdup protocol */ #define TELOPT_SUPDUPOUTPUT 22 /* supdup output */ #define TELOPT_SNDLOC 23 /* send location */ #define TELOPT_TTYPE 24 /* terminal type */ #define TELOPT_EOR 25 /* end or record */ #define TELOPT_TUID 26 /* TACACS user identification */ #define TELOPT_OUTMRK 27 /* output marking */ #define TELOPT_TTYLOC 28 /* terminal location number */ #define TELOPT_3270REGIME 29 /* 3270 regime */ #define TELOPT_X3PAD 30 /* X.3 PAD */ #define TELOPT_NAWS 31 /* window size */ #define TELOPT_TSPEED 32 /* terminal speed */ #define TELOPT_LFLOW 33 /* remote flow control */ #define TELOPT_LINEMODE 34 /* linemode option */ #define TELOPT_XDISPLOC 35 /* X Display Location */ #define TELOPT_OLD_ENVIRON 36 /* old - Environment variables */ #define TELOPT_AUTHENTICATION 37/* authenticate */ #define TELOPT_ENCRYPT 38 /* encryption option */ #define TELOPT_NEW_ENVIRON 39 /* new - environment variables */ #define TELOPT_TN3270E 40 /* extended 3270 regime */ #define TELOPT_EXOPL 255 /* extended-options-list */ #define NTELOPTS (1+TELOPT_TN3270E) #ifdef TELOPTS const char *telopts[NTELOPTS+1] = { "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME", "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP", "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS", "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO", "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT", "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD", "TACACS UID", "OUTPUT MARKING", "TTYLOC", "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW", "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION", "ENCRYPT", "NEW-ENVIRON", "TN3270E", 0 }; #define TELOPT_FIRST TELOPT_BINARY #define TELOPT_LAST TELOPT_TN3270E #define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST) #define TELOPT(x) telopts[(x)-TELOPT_FIRST] #endif /* sub-option qualifiers */ #define TELQUAL_IS 0 /* option is... */ #define TELQUAL_SEND 1 /* send option */ #endif /*!_arpa_telnet_h*/ ibm-3270-3.3.10ga4/wpr3287/Msc/0000755000175000017500000000000011261530022015024 5ustar bastianbastianibm-3270-3.3.10ga4/wpr3287/Msc/Makefile0000755000175000017500000000705611254565705016521 0ustar bastianbastian# Copyright (c) 2007-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # nmake Makefile for wpr3287 # Set command paths. CC = cl /nologo RC = rc RM = erase # To build with a statically-linked OpenSSL library, uncomment the following # three lines (substituting your OpenSSL install location in the first). #SSLDIR = C:\where\openssl\is\installed #SSLDEF = /DHAVE_LIBSSL=1 /I$(SSLDIR)\include #SSLLIB = $(SSLDIR)\lib\ssleay32.lib $(SSLDIR)\lib\libeay32.lib gdi32.lib user32.lib XCPPFLAGS = /D_WIN32 /DPR3287 /DWPR3287 /DX3270_DBCS=1 /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0500 /D_WIN32_IE=0x0500 $(SSLDEF) CFLAGS = $(XCPPFLAGS) -I. VOBJS = charset.obj ctlr.obj pr3287.obj proxy.obj resolver.obj see.obj sf.obj \ tables.obj telnet.obj trace_ds.obj utf8.obj wpr3287.RES ws.obj \ w3misc.obj windirs.obj winvers.obj unicode.obj unicode_dbcs.obj OBJECTS = $(VOBJS) version.obj LIBS = $(SSLLIB) ws2_32.lib winspool.lib advapi32.lib all: wpr3287.exe version.obj: $(VOBJS) version.txt mkversion.exe Msc\Makefile mkversion.exe wpr3287 $(CC) $(CFLAGS) /c version.c mkversion.exe: Msc\mkversion.c $(CC) $(CFLAGS) /Fe$@ Msc\mkversion.c wpr3287.RES: wpr3287.rc pr3287.ico $(RC) wpr3287.rc wpr3287.exe: $(OBJECTS) $(CC) /Fewpr3287.exe $(CFLAGS) $(OBJECTS) $(LIBS) clean: $(RM) *.obj *.RES mkversion.exe version.c clobber: clean $(RM) wpr3287.exe charset.obj: charset.c $(CC) $(CFLAGS) /c charset.c ctlr.obj: ctlr.c $(CC) $(CFLAGS) /c ctlr.c pr3287.obj: pr3287.c $(CC) $(CFLAGS) /c pr3287.c proxy.obj: proxy.c $(CC) $(CFLAGS) /c proxy.c resolver.obj: resolver.c $(CC) $(CFLAGS) /c resolver.c see.obj: see.c $(CC) $(CFLAGS) /c see.c sf.obj: sf.c $(CC) $(CFLAGS) /c sf.c tables.obj: tables.c $(CC) $(CFLAGS) /c tables.c telnet.obj: telnet.c $(CC) $(CFLAGS) /c telnet.c trace_ds.obj: trace_ds.c $(CC) $(CFLAGS) /c trace_ds.c unicode.obj: unicode.c $(CC) $(CFLAGS) /c unicode.c unicode_dbcs.obj: unicode_dbcs.c $(CC) $(CFLAGS) /c unicode_dbcs.c utf8.obj: utf8.c $(CC) $(CFLAGS) /c utf8.c w3misc.obj: w3misc.c $(CC) $(CFLAGS) /c w3misc.c windirs.obj: windirs.c $(CC) $(CFLAGS) /c windirs.c winvers.obj: winvers.c $(CC) $(CFLAGS) /c winvers.c ws.obj: ws.c $(CC) $(CFLAGS) /c ws.c ibm-3270-3.3.10ga4/wpr3287/Msc/deprecated.h0000644000175000017500000000342311254565675017327 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * Redefinitions of POSIX functions that MSC doesn't like the names of. */ #define close _close #define fdopen _fdopen #define fileno _fileno #define getcwd _getcwd #define open _open #define putenv _putenv #define snprintf _snprintf #define unlink _unlink ibm-3270-3.3.10ga4/wpr3287/Msc/mkversion.c0000755000175000017500000001172711254565675017250 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * This program is a C-language encapsulation of all but the last line of: * * #! /bin/sh * # Create version.o from version.txt * * # Ensure that 'date' emits 7-bit U.S. ASCII. * LANG=C * LC_ALL=C * export LANG LC_ALL * * set -e * * . ./version.txt * builddate=`date` * sccsdate=`date +%Y/%m/%d` * user=${LOGNAME-$USER} * * # Create an all numeric timestamp for rpqnames. * # rpq.c will return this string of numbers in bcd format * # It is OK to change the length (+ or -), but use * # decimal (0-9) digits only. Length must be even number of digits. * rpq_timestamp=`date +%Y%m%d%H%M%S` * * trap 'rm -f version.c' 0 1 2 15 * * cat <version.c * char *build = "${2-x3270} v$version $builddate $user"; * char *app_defaults_version = "$adversion"; * static char sccsid[] = "@(#)${2-x3270} v$version $sccsdate $user"; * * const char *build_rpq_timestamp = "$rpq_timestamp"; * const char *build_rpq_version = "$version"; * EOF */ #include #include #include #include static char * NewString(char *s) { char *t = malloc(strlen(s) + 1); if (t == NULL) { fprintf(stderr, "out of memory\n"); exit(1); } return strcpy(t, s); } int main(int argc, char *argv[]) { FILE *f; char buf[1024]; char *version = NULL; char *adversion = NULL; char *user; __time64_t t; char *builddate; struct tm *tm; char sccsdate[128]; char rpqtime[128]; int is_w = 0; char *ofile = "version.c"; char *progname = "wc3270"; if (argc > 1 && !strcmp(argv[1], "-w")) { is_w = 1; ofile = "wversion.c"; argv++; argc--; } if (argc > 1) progname = argv[1]; /* Read up version.txt. */ f = fopen("version.txt", "r"); if (f == NULL) { perror("version.txt"); return 1; } while (fgets(buf, sizeof(buf), f) != NULL) { if (!strncmp(buf, "version=\"", 9)) { char *q; version = NewString(buf + 9); q = strchr(version, '"'); if (q == NULL) { fprintf(stderr, "syntax error in version.txt\n"); return 1; } *q = '\0'; } else if (!strncmp(buf, "adversion=\"", 11)) { char *q; adversion = NewString(buf + 11); q = strchr(adversion, '"'); if (q == NULL) { fprintf(stderr, "syntax error in version.txt\n"); return 1; } *q = '\0'; } } fclose(f); if (version == NULL || adversion == NULL) { fprintf(stderr, "missing version= or adversion= in version.txt\n"); return 1; } /* Grab the username. */ user = getenv("USERNAME"); if (user == NULL) { fprintf(stderr, "No %USERNAME%?\n"); return 1; } /* Format the dates. */ _time64(&t); builddate = NewString(_ctime64(&t)); builddate[strlen(builddate) - 1] = '\0'; tm = _localtime64(&t); sprintf(sccsdate, "%d/%02d/%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday); sprintf(rpqtime, "%02d%02d%02d%02d%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); /* Create the code. */ f = fopen(ofile, "w"); if (f == NULL) { perror(ofile); return 1; } if (is_w) { fprintf(f, "char *wversion = \"%s\";\n", version); } else { fprintf(f, "char *build = \"%s v%s %s %s\";\n", progname, version, builddate, user); fprintf(f, "char *app_defaults_version = \"%s\";\n", adversion); fprintf(f, "static char sccsid[] = \"@(#)%s v%s %s %s\";\n", progname, version, sccsdate, user); fprintf(f, "const char *build_rpq_timestamp = \"%s\";\n", rpqtime); fprintf(f, "const char *build_rpq_version = \"%s\";\n", version); } fclose(f); return 0; } ibm-3270-3.3.10ga4/wpr3287/Msc/README.txt0000644000175000017500000000123611254565705016546 0ustar bastianbastianThis directory contains files needed to build wpr3287 with command-line Microsoft tools: Makefile Makefile for nmake. To use this Makefile, cd to the directory above this one and run: nmake /f Msc\Makefile mkversion.c C-language replacement for mkversion.sh and mkwversion.sh. deprecated.h #defines to work around some MS-deprecated POSIX function names. Official releases of wpr3287 are built and tested with MinGW, not the Microsoft tools. These files are provided as-is, with no guarantee that the resulting executables and DLLs will function properly. Also note that the resulting executable will not include SSL support. ibm-3270-3.3.10ga4/wpr3287/wpr3287.rc0000644000175000017500000000004211254565705016002 0ustar bastianbastianLANGUAGE 0, 0 100 ICON pr3287.ico ibm-3270-3.3.10ga4/wpr3287/ws.c0000644000175000017500000001434611254565705015131 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * ws.c * Interactions with the Win32 print spooler (winspool). */ #include #include #include "localdefs.h" #include "wsc.h" #define PRINTER_BUFSIZE 16384 static enum { PRINTER_IDLE, /* not doing anything */ PRINTER_OPEN, /* open, but no pending print job */ PRINTER_JOB /* print job pending */ } printer_state = PRINTER_IDLE; static HANDLE printer_handle; static char printer_buf[PRINTER_BUFSIZE]; static int pbcnt = 0; /* * This is not means a general-purpose interface to the Win32 Print Spooler, * but rather the minimum subset needed by wpr3287. * * The functions generally return 0 for success, and -1 for failure. * If a failure occurs, they issue an error message via the 'errmsg' call. */ /* * Start talking to the named printer. * If printer_name is NULL, uses the default printer. * This call should should only be made once. */ int ws_start(char *printer_name) { PRINTER_DEFAULTS defaults; /* If they didn't specify a printer, grab the default. */ if (printer_name == NULL) { printer_name = ws_default_printer(); if (printer_name == NULL) { errmsg("ws_start: No default printer"); return -1; } } /* Talk to the printer. */ (void) memset(&defaults, '\0', sizeof(defaults)); defaults.pDatatype = "RAW"; defaults.pDevMode = NULL; defaults.DesiredAccess = PRINTER_ACCESS_USE; if (OpenPrinter(printer_name, &printer_handle, &defaults) == 0) { errmsg("ws_start: OpenPrinter failed, " "Win32 error %d", GetLastError()); return -1; } printer_state = PRINTER_OPEN; return 0; } /* * flush the print buffer. */ int ws_flush(void) { DWORD wrote; int rv = 0; switch (printer_state) { case PRINTER_IDLE: errmsg("ws_endjob: printer not open"); return -1; case PRINTER_OPEN: return 0; case PRINTER_JOB: break; } if (pbcnt != 0) { if (WritePrinter(printer_handle, printer_buf, pbcnt, &wrote) == 0) { errmsg("ws_flush: WritePrinter failed, " "Win32 error %d", GetLastError()); rv = -1; } pbcnt = 0; } return rv; } /* * Write a byte to the current print job. */ int ws_putc(char c) { DOC_INFO_1 doc_info; switch (printer_state) { case PRINTER_IDLE: errmsg("ws_putc: printer not open"); return -1; case PRINTER_OPEN: /* Start a new document. */ doc_info.pDocName = "wpr3287 print job"; doc_info.pOutputFile = NULL; doc_info.pDatatype = "RAW"; if (StartDocPrinter(printer_handle, 1, (LPBYTE)&doc_info) == 0) { errmsg("ws_putc: StartDocPrinter failed, " "Win32 error %d", GetLastError()); return -1; } printer_state = PRINTER_JOB; pbcnt = 0; break; case PRINTER_JOB: break; } /* Flush if needed. */ if ((pbcnt >= PRINTER_BUFSIZE) && (ws_flush() < 0)) return -1; /* Buffer this character. */ printer_buf[pbcnt++] = c; return 0; } /* * Write multiple bytes to the current print job. */ int ws_write(char *s, int len) { while (len--) { if (ws_putc(*s++) < 0) return -1; } return 0; } /* * Complete the current print job. * Leaves the connection open for the next job, which is implicitly started * by the next call to ws_putc() or ws_write(). */ int ws_endjob(void) { int rv = 0; switch (printer_state) { case PRINTER_IDLE: errmsg("ws_endjob: printer not open"); return -1; case PRINTER_OPEN: return 0; case PRINTER_JOB: break; } /* Flush whatever's pending. */ if (ws_flush() < 0) rv = 1; /* Close out the job. */ if (EndDocPrinter(printer_handle) == 0) { errmsg("ws_endjob: EndDocPrinter failed, " "Win32 error %d", GetLastError()); rv = -1; } /* Done. */ printer_state = PRINTER_OPEN; return rv; } /* * Antique method for figuring out the default printer. * Needed for compatibility with pre-Win2K systems. * * For Win2K and later, we could just call GetDefaultPrinter(), but that would * require delay-loading winspool.dll, which appears to be beyond MinGW and * GNU ld's capabilities at the moment. */ char * ws_default_printer(void) { static char pstring[1024]; char *comma; /* Get the default printer, driver and port "from the .ini file". */ pstring[0] = '\0'; if (GetProfileString("windows", "device", "", pstring, sizeof(pstring)) == 0) { return NULL; } /* * Separate the printer name. Note that commas are illegal in printer * names, so this method is safe. */ comma = strchr(pstring, ','); if (comma != NULL) *comma = '\0'; /* * If there is no default printer, I don't know if GetProfileString() * will fail, or if it will return nothing. Perpare for the latter. */ if (!*pstring) return NULL; return pstring; } ibm-3270-3.3.10ga4/wpr3287/charset.c0000644000175000017500000000712211254565701016117 0ustar bastianbastian/* * Copyright (c) 2001-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * charset.c * Limited character set support. */ #include "globals.h" #include #include #include #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #if defined(__CYGWIN__) /*[*/ #include #undef _WIN32 #endif /*]*/ #include "3270ds.h" #include "charsetc.h" #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" unsigned long cgcsgid = 0x02b90025; unsigned long cgcsgid_dbcs = 0x02b90025; int dbcs = 0; char *encoding = CN; char *converters = CN; /* * Change character sets. * Returns 0 if the new character set was found, -1 otherwise. */ enum cs_result charset_init(char *csname) { #if !defined(_WIN32) /*[*/ char *codeset_name; #endif /*]*/ const char *host_codepage; const char *cgcsgid_str; const char *display_charsets; #if !defined(_WIN32) /*[*/ setlocale(LC_ALL, ""); codeset_name = nl_langinfo(CODESET); #if defined(__CYGWIN__) /*[*/ /* * Cygwin's locale support is quite limited. If the locale * indicates "US-ASCII", which appears to be the only supported * encoding, ignore it and use the Windows ANSI code page, which * observation indicates is what is actually supported. * * Hopefully at some point Cygwin will start returning something * meaningful here and this logic will stop triggering. * * If this (lack of) functionality persists, then it will probably * become necessary for pr3287 to support the wpr3287 '-printercp' * option, so that the printer code page can be configured. */ if (!strcmp(codeset_name, "US-ASCII")) { codeset_name = Malloc(64); sprintf(codeset_name, "CP%d", GetACP()); } #endif /*]*/ set_codeset(codeset_name); #endif /*]*/ if (set_uni(csname, &host_codepage, &cgcsgid_str, &display_charsets) < 0) return CS_NOTFOUND; cgcsgid = strtoul(cgcsgid_str, NULL, 0); if (!(cgcsgid & ~0xffff)) cgcsgid |= 0x02b90000; #if defined(X3270_DBCS) /*[*/ if (set_uni_dbcs(csname, &cgcsgid_str, &display_charsets) == 0) { dbcs = 1; cgcsgid_dbcs = strtoul(cgcsgid_str, NULL, 0); } #endif /*]*/ return CS_OKAY; } ibm-3270-3.3.10ga4/wpr3287/version.txt0000755000175000017500000000004611261527637016555 0ustar bastianbastianversion="3.3.10ga4" adversion="3.3.4" ibm-3270-3.3.10ga4/wpr3287/mkversion.sh0000755000175000017500000000372111254565701016677 0ustar bastianbastian#! /bin/sh # Copyright (c) 1995-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the names of Paul Mattes nor the names of his contributors # may be used to endorse or promote products derived from this software # without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Create version.o from version.txt #set -x # Ensure that 'date' emits 7-bit U.S. ASCII. LANG=C LC_ALL=C export LANG LC_ALL set -e . ./version.txt builddate=`date` sccsdate=`date +%Y/%m/%d` user=${LOGNAME-$USER} trap 'rm -f version.c' 0 1 2 15 cat <version.c const char *build = "${2-x3270} v$version $builddate $user"; const char *app_defaults_version = "$adversion"; static const char sccsid[] = "@(#)${2-x3270} v$version $sccsdate $user"; EOF ${1-cc} -c version.c ibm-3270-3.3.10ga4/wpr3287/tables.c0000644000175000017500000002171311254565704015745 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * tables.c * Translation tables between the three character sets: * EBCDIC * ASCII (ISO Latin-1) * Character Generator ("3270" font) */ #include "globals.h" #include "tablesc.h" const unsigned char asc2cg0[256] = { /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*20*/ 0x10, 0x19, 0x13, 0x2c, 0x1a, 0x2e, 0x30, 0x12, /*28*/ 0x0d, 0x0c, 0xbf, 0x35, 0x33, 0x31, 0x32, 0x14, /*30*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /*38*/ 0x28, 0x29, 0x34, 0xbe, 0x09, 0x11, 0x08, 0x18, /*40*/ 0x2d, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*48*/ 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, /*50*/ 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, /*58*/ 0xb7, 0xb8, 0xb9, 0x0a, 0x15, 0x0b, 0x3a, 0x2f, /*60*/ 0x3d, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /*68*/ 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, /*70*/ 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*78*/ 0x97, 0x98, 0x99, 0x0f, 0x16, 0x0e, 0x3b, 0x00, /*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*a0*/ 0x01, 0x6e, 0x1b, 0x1c, 0x1f, 0x1d, 0x17, 0x2b, /*a8*/ 0x3c, 0xd0, 0x6a, 0x6c, 0x36, 0x07, 0xd1, 0x37, /*b0*/ 0x38, 0xd6, 0x68, 0x69, 0x3e, 0x54, 0x1e, 0x39, /*b8*/ 0x3f, 0x67, 0x6b, 0x6d, 0x4b, 0x4c, 0x4d, 0x6f, /*c0*/ 0x60, 0x7a, 0x75, 0x65, 0x70, 0xbc, 0xba, 0xbd, /*c8*/ 0x61, 0x7b, 0x76, 0x71, 0x62, 0x7c, 0x77, 0x72, /*d0*/ 0xd7, 0x7f, 0x63, 0x7d, 0x78, 0x66, 0x73, 0x5b, /*d8*/ 0xbb, 0x64, 0x7e, 0x79, 0x74, 0x48, 0xd9, 0x2a, /*e0*/ 0x40, 0x5a, 0x55, 0x45, 0x50, 0x9c, 0x9a, 0x4f, /*e8*/ 0x41, 0x4a, 0x56, 0x51, 0x42, 0x5c, 0x57, 0x52, /*f0*/ 0xf7, 0x5f, 0x43, 0x5d, 0x58, 0x46, 0x53, 0x9d, /*f8*/ 0x9b, 0x44, 0x5e, 0x59, 0x4e, 0x49, 0xf9, 0x47 }; const unsigned char ebc2cg0[256] = { /*00*/ 0x00, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*08*/ 0xdf, 0xdf, 0xdf, 0xdf, 0x02, 0x03, 0x00, 0x00, /*10*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0x04, 0xdf, 0xdf, /*18*/ 0xdf, 0x05, 0xdf, 0xdf, 0x9f, 0xdf, 0x9e, 0xdf, /*20*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*28*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*30*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*38*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*40*/ 0x10, 0x01, 0x55, 0x50, 0x40, 0x5a, 0x45, 0x9c, /*48*/ 0x4f, 0x5f, 0x1b, 0x32, 0x09, 0x0d, 0x35, 0x16, /*50*/ 0x30, 0x4a, 0x56, 0x51, 0x41, 0x5c, 0x57, 0x52, /*58*/ 0x42, 0x2a, 0x19, 0x1a, 0xbf, 0x0c, 0xbe, 0x36, /*60*/ 0x31, 0x14, 0x75, 0x70, 0x60, 0x7a, 0x65, 0xbc, /*68*/ 0xbd, 0x7f, 0x17, 0x33, 0x2e, 0x2f, 0x08, 0x18, /*70*/ 0x9b, 0x7b, 0x76, 0x71, 0x61, 0x7c, 0x77, 0x72, /*78*/ 0x62, 0x3d, 0x34, 0x2c, 0x2d, 0x12, 0x11, 0x13, /*80*/ 0xbb, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /*88*/ 0x87, 0x88, 0x6c, 0x6d, 0xf7, 0x49, 0xf9, 0xd6, /*90*/ 0x38, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /*98*/ 0x90, 0x91, 0x6a, 0x6b, 0x9a, 0x3f, 0xba, 0x1f, /*a0*/ 0x54, 0x3b, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /*a8*/ 0x98, 0x99, 0x6e, 0x6f, 0xd7, 0x48, 0xd9, 0xd1, /*b0*/ 0x3a, 0x1c, 0x1d, 0x39, 0xd0, 0x2b, 0x1e, 0x4b, /*b8*/ 0x4c, 0x4d, 0x0a, 0x0b, 0x37, 0x3c, 0x3e, 0x5b, /*c0*/ 0x0f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*c8*/ 0xa7, 0xa8, 0x07, 0x58, 0x53, 0x43, 0x5d, 0x46, /*d0*/ 0x0e, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /*d8*/ 0xb0, 0xb1, 0x67, 0x59, 0x4e, 0x44, 0x5e, 0x47, /*e0*/ 0x15, 0x9d, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /*e8*/ 0xb8, 0xb9, 0x68, 0x78, 0x73, 0x63, 0x7d, 0x66, /*f0*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /*f8*/ 0x28, 0x29, 0x69, 0x79, 0x74, 0x64, 0x7e, 0x06 }; const unsigned char ebc2asc0[256] = { /*00*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*08*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*10*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*18*/ 0x20, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x3b, 0x20, /*20*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*28*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*30*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*38*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*40*/ 0x20, 0x20, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, /*48*/ 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /*50*/ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, /*58*/ 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0xac, /*60*/ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, /*68*/ 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /*70*/ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, /*78*/ 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /*80*/ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /*88*/ 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /*90*/ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /*98*/ 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /*a0*/ 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /*a8*/ 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, /*b0*/ 0x5e, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, /*b8*/ 0xbd, 0xbe, 0x5b, 0x5d, 0xaf, 0xa8, 0xb4, 0xd7, /*c0*/ 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /*c8*/ 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /*d0*/ 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /*d8*/ 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, /*e0*/ 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /*e8*/ 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /*f8*/ 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x20 }; const unsigned char asc2ebc0[256] = { /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*20*/ 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /*28*/ 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /*30*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /*38*/ 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /*40*/ 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /*48*/ 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /*50*/ 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /*58*/ 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /*60*/ 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /*68*/ 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*70*/ 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*78*/ 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x00, /*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*a0*/ 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /*a8*/ 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, /*b0*/ 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /*b8*/ 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /*c0*/ 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /*c8*/ 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /*d0*/ 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /*d8*/ 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /*e0*/ 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /*e8*/ 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /*f0*/ 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /*f8*/ 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf }; ibm-3270-3.3.10ga4/wpr3287/proxy.c0000644000175000017500000005361611254565704015663 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxy.c * This module implements various kinds of proxies. */ #include "globals.h" #if !defined(PR3287) /*[*/ #include "appres.h" #include "resources.h" #endif /*]*/ #if defined(_WIN32) /*[*/ #include #include #else /*][*/ #include #include #include #include #include #if defined(HAVE_SYS_SELECT_H) /*[*/ #include /* fd_set declaration */ #endif /*]*/ #endif /*]*/ #include "3270ds.h" #include "popupsc.h" #include "proxy.h" #include "proxyc.h" #include "resolverc.h" #include "telnetc.h" #include "trace_dsc.h" #include "w3miscc.h" #if defined(PR3287) /*[*/ extern char *proxy_spec; #endif /*]*/ #if defined(_WIN32) /*[*/ typedef unsigned long in_addr_t; #endif /*]*/ /* * Supported proxy types. * * At some point we will add SOCKS. */ enum { PT_NONE, PT_PASSTHRU, /* Sun telnet-passthru */ PT_HTTP, /* RFC 2817 CONNECT tunnel */ PT_TELNET, /* 'connect host port' proxy */ PT_SOCKS4, /* SOCKS version 4 (or 4A if necessary) */ PT_SOCKS4A, /* SOCKS version 4A (force remote name resolution) */ PT_SOCKS5, /* SOCKS version 5 (RFC 1928) */ PT_SOCKS5D, /* SOCKS version 5 (force remote name resolution) */ PT_MAX } proxytype_t; /* proxy type names -- keep these in sync with proxytype_t! */ char *type_name[] = { "unknown", "passthru", "HTTP", "TELNET", "SOCKS4", "SOCKS4A", "SOCKS5", "SOCKS5D" }; static int parse_host_port(char *s, char **phost, char **pport); static int proxy_passthru(int fd, char *host, unsigned short port); static int proxy_http(int fd, char *host, unsigned short port); static int proxy_telnet(int fd, char *host, unsigned short port); static int proxy_socks4(int fd, char *host, unsigned short port, int force_a); static int proxy_socks5(int fd, char *host, unsigned short port, int force_d); char * proxy_type_name(int type) { if (type < 1 || type >= PT_MAX) return "unknown"; else return type_name[type]; } /* * Resolve the type, hostname and port for a proxy. * Returns -1 for failure, 0 for no proxy, >0 (the proxy type) for success. */ int proxy_setup(char **phost, char **pport) { char *proxy; char *colon; int sl; #if defined(PR3287) /*[*/ proxy = proxy_spec; #else /*][*/ proxy = appres.proxy; #endif /*]*/ if (proxy == CN) return PT_NONE; if ((colon = strchr(proxy, ':')) == CN || (colon == proxy)) { popup_an_error("Invalid proxy syntax"); return -1; } sl = colon - proxy; if (sl == strlen(PROXY_PASSTHRU) && !strncasecmp(proxy, PROXY_PASSTHRU, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_PASSTHRU); return PT_PASSTHRU; } if (sl == strlen(PROXY_HTTP) && !strncasecmp(proxy, PROXY_HTTP, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_HTTP); return PT_HTTP; } if (sl == strlen(PROXY_TELNET) && !strncasecmp(proxy, PROXY_TELNET, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) { popup_an_error("Must specify port for telnet proxy"); return -1; } return PT_TELNET; } if (sl == strlen(PROXY_SOCKS4) && !strncasecmp(proxy, PROXY_SOCKS4, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS4); return PT_SOCKS4; } if (sl == strlen(PROXY_SOCKS4A) && !strncasecmp(proxy, PROXY_SOCKS4A, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS4A); return PT_SOCKS4A; } if (sl == strlen(PROXY_SOCKS5) && !strncasecmp(proxy, PROXY_SOCKS5, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS5); return PT_SOCKS5; } if (sl == strlen(PROXY_SOCKS5D) && !strncasecmp(proxy, PROXY_SOCKS5D, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS5D); return PT_SOCKS5D; } popup_an_error("Invalid proxy type '%.*s'", sl, proxy); return -1; } /* * Parse host[:port] from a string. * 'host' can be in square brackets to allow numeric IPv6 addresses. * Returns the host name and port name in heap memory. * Returns -1 for failure, 0 for success. */ static int parse_host_port(char *s, char **phost, char **pport) { char *colon; char *hstart; int hlen; if (*s == '[') { char *rbrack; /* Hostname in square brackets. */ hstart = s + 1; rbrack = strchr(s, ']'); if (rbrack == CN || rbrack == s + 1 || (*(rbrack + 1) != '\0' && *(rbrack + 1) != ':')) { popup_an_error("Invalid proxy hostname syntax"); return -1; } if (*(rbrack + 1) == ':') colon = rbrack + 1; else colon = NULL; hlen = rbrack - (s + 1); } else { hstart = s; colon = strchr(s, ':'); if (colon == s) { popup_an_error("Invalid proxy hostname syntax"); return -1; } if (colon == NULL) hlen = strlen(s); else hlen = colon - s; } /* Parse the port. */ if (colon == CN || !*(colon + 1)) *pport = CN; else *pport = NewString(colon + 1); /* Copy out the hostname. */ *phost = Malloc(hlen + 1); strncpy(*phost, hstart, hlen); (*phost)[hlen] = '\0'; return 0; } /* * Negotiate with the proxy server. * Returns -1 for failure, 0 for success. */ int proxy_negotiate(int type, int fd, char *host, unsigned short port) { switch (type) { case PT_NONE: return 0; case PT_PASSTHRU: return proxy_passthru(fd, host, port); case PT_HTTP: return proxy_http(fd, host, port); case PT_TELNET: return proxy_telnet(fd, host, port); case PT_SOCKS4: return proxy_socks4(fd, host, port, 0); case PT_SOCKS4A: return proxy_socks4(fd, host, port, 1); case PT_SOCKS5: return proxy_socks5(fd, host, port, 0); case PT_SOCKS5D: return proxy_socks5(fd, host, port, 1); default: return -1; } } /* Sun PASSTHRU proxy. */ static int proxy_passthru(int fd, char *host, unsigned short port) { char *buf; buf = Malloc(strlen(host) + 32); (void) sprintf(buf, "%s %u\r\n", host, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("Passthru Proxy: xmit '%.*s'", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("Passthru Proxy: send error"); Free(buf); return -1; } Free(buf); return 0; } /* HTTP (RFC 2817 CONNECT tunnel) proxy. */ static int proxy_http(int fd, char *host, unsigned short port) { char *buf; char *colon; char rbuf[1024]; int nr; int nread = 0; char *space; /* Send the CONNECT request. */ buf = Malloc(64 + strlen(host)); colon = strchr(host, ':'); sprintf(buf, "CONNECT %s%s%s:%u HTTP/1.1\r\n", (colon? "[": ""), host, (colon? "]": ""), port); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } sprintf(buf, "Host: %s%s%s:%u\r\n", (colon? "[": ""), host, (colon? "]": ""), port); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } strcpy(buf, "\r\n"); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit ''\n"); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } Free(buf); /* * Process the reply. * Read a byte at a time until \n or EOF. */ for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("HTTP Proxy: server timeout"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ return -1; } nr = recv(fd, &rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("HTTP Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ return -1; } if (nr == 0) { #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ popup_an_error("HTTP Proxy: unexpected EOF"); return -1; } if (rbuf[nread] == '\r') continue; if (rbuf[nread] == '\n') break; if ((size_t)++nread >= sizeof(rbuf)) { nread = sizeof(rbuf) - 1; break; } } rbuf[nread] = '\0'; #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)rbuf, nread); trace_dsn("HTTP Proxy: recv '%s'\n", rbuf); #endif /*]*/ if (strncmp(rbuf, "HTTP/", 5) || (space = strchr(rbuf, ' ')) == CN) { popup_an_error("HTTP Proxy: unrecognized reply"); return -1; } if (*(space + 1) != '2') { popup_an_error("HTTP Proxy: CONNECT failed:\n%s", rbuf); return -1; } return 0; } /* TELNET proxy. */ static int proxy_telnet(int fd, char *host, unsigned short port) { char *buf; buf = Malloc(strlen(host) + 32); (void) sprintf(buf, "connect %s %u\r\n", host, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("TELNET Proxy: xmit '%.*s'", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("TELNET Proxy: send error"); Free(buf); return -1; } Free(buf); return 0; } /* SOCKS version 4 proxy. */ static int proxy_socks4(int fd, char *host, unsigned short port, int force_a) { struct hostent *hp; struct in_addr ipaddr; int use_4a = 0; char *user; char *buf; char *s; char rbuf[8]; int nr; int nread = 0; unsigned short rport; /* Resolve the hostname to an IPv4 address. */ if (force_a) use_4a = 1; else { hp = gethostbyname(host); if (hp != NULL) { memcpy(&ipaddr, hp->h_addr, hp->h_length); } else { ipaddr.s_addr = inet_addr(host); if (ipaddr.s_addr == (in_addr_t)-1) use_4a = 1; } } /* Resolve the username. */ user = getenv("USER"); if (user == CN) user = "nobody"; /* Send the request to the server. */ if (use_4a) { buf = Malloc(32 + strlen(user) + strlen(host)); s = buf; *s++ = 0x04; *s++ = 0x01; SET16(s, port); SET32(s, 0x00000001); strcpy(s, user); s += strlen(user) + 1; strcpy(s, host); s += strlen(host) + 1; #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS4 Proxy: version 4 connect port %u " "address 0.0.0.1 user '%s' host '%s'\n", port, user, host); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { popup_a_sockerr("SOCKS4 Proxy: send error"); Free(buf); return -1; } Free(buf); } else { unsigned long u; buf = Malloc(32 + strlen(user)); s = buf; *s++ = 0x04; *s++ = 0x01; SET16(s, port); u = ntohl(ipaddr.s_addr); SET32(s, u); strcpy(s, user); s += strlen(user) + 1; #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS4 Proxy: xmit version 4 connect port %u " "address %s user '%s'\n", port, inet_ntoa(ipaddr), user); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { Free(buf); popup_a_sockerr("SOCKS4 Proxy: send error"); return -1; } Free(buf); } /* * Process the reply. * Read 8 bytes of response. */ for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS4 Proxy: server timeout"); return -1; } nr = recv(fd, &rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS4 Proxy: receive error"); return -1; } if (nr == 0) break; if ((size_t)++nread >= sizeof(rbuf)) break; } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)rbuf, nread); if (use_4a) { struct in_addr a; rport = (rbuf[2] << 8) | rbuf[3]; memcpy(&a, &rbuf[4], 4); trace_dsn("SOCKS4 Proxy: recv status 0x%02x port %u " "address %s\n", rbuf[1], rport, inet_ntoa(a)); } else trace_dsn("SOCKS4 Proxy: recv status 0x%02x\n", rbuf[1]); #endif /*]*/ switch (rbuf[1]) { case 0x5a: break; case 0x5b: popup_an_error("SOCKS4 Proxy: request rejected or failed"); return -1; case 0x5c: popup_an_error("SOCKS4 Proxy: client is not reachable"); return -1; case 0x5d: popup_an_error("SOCKS4 Proxy: userid error"); return -1; default: popup_an_error("SOCKS4 Proxy: unknown status 0x%02x", rbuf[1]); return -1; } return 0; } /* SOCKS version 5 (RFC 1928) proxy. */ static int proxy_socks5(int fd, char *host, unsigned short port, int force_d) { union { struct sockaddr sa; struct sockaddr_in sin; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sin6; #endif /*]*/ } ha; socklen_t ha_len = 0; int use_name = 0; char *buf; char *s; unsigned char rbuf[8]; int nr; int nread = 0; int n2read = 0; char nbuf[256]; int done = 0; #if defined(X3270_TRACE) /*[*/ char *atype_name[] = { "", "IPv4", "", "domainname", "IPv6" }; unsigned char *portp; unsigned short rport; #endif /*]*/ if (force_d) use_name = 1; else { char errmsg[1024]; int rv; /* Resolve the hostname. */ rv = resolve_host_and_port(host, CN, 0, &rport, &ha.sa, &ha_len, errmsg, sizeof(errmsg), NULL); if (rv == -2) use_name = 1; else if (rv < 0) { popup_an_error("SOCKS5 proxy: %s/%u: %s", host, port, errmsg); return -1; } } /* Send the authentication request to the server. */ strcpy((char *)rbuf, "\005\001\000"); #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: xmit version 5 nmethods 1 (no auth)\n"); trace_netdata('>', rbuf, 3); #endif /*]*/ if (send(fd, (char *)rbuf, 3, 0) < 0) { popup_a_sockerr("SOCKS5 Proxy: send error"); return -1; } /* * Wait for the server reply. * Read 2 bytes of response. */ nread = 0; for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS5 Proxy: server timeout"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } nr = recv(fd, (char *)&rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS5 Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } if (nr == 0) { popup_a_sockerr("SOCKS5 Proxy: unexpected EOF"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } if (++nread >= 2) break; } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', rbuf, nread); #endif /*]*/ if (rbuf[0] != 0x05 || (rbuf[1] != 0 && rbuf[1] != 0xff)) { popup_an_error("SOCKS5 Proxy: bad authentication response"); return -1; } #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: recv version %d method %d\n", rbuf[0], rbuf[1]); #endif /*]*/ if (rbuf[1] == 0xff) { popup_an_error("SOCKS5 Proxy: authentication failure"); return -1; } /* Send the request to the server. */ buf = Malloc(32 + strlen(host)); s = buf; *s++ = 0x05; /* protocol version 5 */ *s++ = 0x01; /* CONNECT */ *s++ = 0x00; /* reserved */ if (use_name) { *s++ = 0x03; /* domain name */ *s++ = strlen(host); strcpy(s, host); s += strlen(host); } else if (ha.sa.sa_family == AF_INET) { *s++ = 0x01; /* IPv4 */ memcpy(s, &ha.sin.sin_addr, 4); s += 4; strcpy(nbuf, inet_ntoa(ha.sin.sin_addr)); #if defined(AF_INET6) /*[*/ } else { *s++ = 0x04; /* IPv6 */ memcpy(s, &ha.sin6.sin6_addr, sizeof(struct in6_addr)); s += sizeof(struct in6_addr); (void) inet_ntop(AF_INET6, &ha.sin6.sin6_addr, nbuf, sizeof(nbuf)); #endif /*]*/ } SET16(s, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: xmit version 5 connect %s %s port %u\n", use_name? "domainname": ((ha.sa.sa_family == AF_INET)? "IPv4": "IPv6"), use_name? host: nbuf, port); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { popup_a_sockerr("SOCKS5 Proxy: send error"); Free(buf); return -1; } Free(buf); /* * Process the reply. * Only the first two bytes of the response are interesting; * skip the rest. */ nread = 0; done = 0; buf = NULL; while (!done) { fd_set rfds; struct timeval tv; unsigned char r; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS5 Proxy: server timeout"); return -1; } nr = recv(fd, (char *)&r, 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS5 Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } if (nr == 0) { popup_an_error("SOCKS5 Proxy: unexpected EOF"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } buf = Realloc(buf, nread + 1); buf[nread] = r; switch (nread++) { case 0: if (r != 0x05) { popup_an_error("SOCKS5 Proxy: incorrect " "reply version 0x%02x", r); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } break; case 1: #if defined(X3270_TRACE) /*[*/ if (r != 0x00) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ switch (r) { case 0x00: break; case 0x01: popup_an_error("SOCKS5 Proxy: server failure"); return -1; case 0x02: popup_an_error("SOCKS5 Proxy: connection not " "allowed"); return -1; case 0x03: popup_an_error("SOCKS5 Proxy: network " "unreachable"); return -1; case 0x04: popup_an_error("SOCKS5 Proxy: host " "unreachable"); return -1; case 0x05: popup_an_error("SOCKS5 Proxy: connection " "refused"); return -1; case 0x06: popup_an_error("SOCKS5 Proxy: ttl expired"); return -1; case 0x07: popup_an_error("SOCKS5 Proxy: command not " "supported"); return -1; case 0x08: popup_an_error("SOCKS5 Proxy: address type " "not supported"); return -1; default: popup_an_error("SOCKS5 Proxy: unknown server " "error 0x%02x", r); return -1; } break; case 2: break; case 3: switch (r) { case 0x01: n2read = 6; break; case 0x03: n2read = -1; break; #if defined(AF_INET6) /*[*/ case 0x04: n2read = sizeof(struct in6_addr) + 2; break; #endif /*]*/ default: popup_an_error("SOCKS5 Proxy: unknown server " "address type 0x%02x", r); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } break; default: if (n2read == -1) n2read = r + 2; else if (!--n2read) done = 1; break; } } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)buf, nread); switch (buf[3]) { case 0x01: /* IPv4 */ memcpy(&ha.sin.sin_addr, &buf[4], 4); strcpy(nbuf, inet_ntoa(ha.sin.sin_addr)); portp = (unsigned char *)&buf[4 + 4]; break; case 0x03: /* domainname */ strncpy(nbuf, &buf[5], buf[4]); nbuf[(unsigned char)buf[4]] = '\0'; portp = (unsigned char *)&buf[5 + (unsigned char)buf[4]]; break; #if defined(AF_INET6) /*[*/ case 0x04: /* IPv6 */ memcpy(&ha.sin6.sin6_addr, &buf[4], sizeof(struct in6_addr)); (void) inet_ntop(AF_INET6, &ha.sin6.sin6_addr, nbuf, sizeof(nbuf)); portp = (unsigned char *)&buf[4 + sizeof(struct in6_addr)]; break; #endif /*]*/ default: /* can't happen */ nbuf[0] = '\0'; portp = (unsigned char *)buf; break; } rport = (*portp << 8) + *(portp + 1); trace_dsn("SOCKS5 Proxy: recv version %d status 0x%02x address %s %s " "port %u\n", buf[0], buf[1], atype_name[(unsigned char)buf[3]], nbuf, rport); #endif /*]*/ Free(buf); return 0; } ibm-3270-3.3.10ga4/wpr3287/popupsc.h0000644000175000017500000000015511254565701016163 0ustar bastianbastianextern void popup_an_error(const char *fmt, ...); extern void popup_an_errno(int err, const char *fmt, ...); ibm-3270-3.3.10ga4/wpr3287/telnetc.h0000644000175000017500000000410611254565701016130 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * telnetc.h * Global declarations for telnet.c. */ /* Output buffer. */ extern unsigned char *obuf, *obptr; extern int negotiate(int s, char *lu, char *assoc); extern Boolean net_add_dummy_tn3270e(void); extern void net_add_eor(unsigned char *buf, int len); extern void net_disconnect(void); extern void net_exception(void); extern int net_input(int s); extern void net_output(void); extern int process(int s); extern void space3270out(int n); extern void trace_netdata(char direction, unsigned const char *buf, int len); extern void popup_a_sockerr(char *fmt, ...); ibm-3270-3.3.10ga4/wpr3287/Makefile.aux0000644000175000017500000000603711254565706016567 0ustar bastianbastian# Copyright (c) 2000-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Auxiliary makefile for wpr3287 TARDIR=wpr3287-3.3 RM=rm -f all: @echo "Must pick a specific make target." # Development tools. SOURCES = charset.c ctlr.c pr3287.c proxy.c resolver.c see.c sf.c tables.c \ telnet.c trace_ds.c utf8.c w3misc.c windirs.c winvers.c ws.c \ unicode.c unicode_dbcs.c HEADERS = 3270ds.h ctlrc.h globals.h localdefs.h popupsc.h proxy.h proxyc.h \ resolverc.h seec.h sfc.h tablesc.h telnetc.h tn3270e.h trace_dsc.h \ utf8c.h w3miscc.h windirsc.h winversc.h wsc.h arpa_telnet.h \ charsetc.h unicodec.h unicode_dbcsc.h MISC = mkversion.sh version.txt LICENSE Makefile Makefile.aux \ pr3287.ico wpr3287.rc Msc/deprecated.h Msc/Makefile Msc/mkversion.c \ Msc/README.txt DEVKIT = pr3287.man.m4 m42man HTML = html/wpr3287-man.html html/Build.html html/ReleaseNotes.html FILES = $(SOURCES) $(HEADERS) $(MISC) $(HTML) tarlist: Makefile.aux $(RM) tarlist for i in $(FILES); \ do echo $(TARDIR)/$$i; \ done >$@ wpr3287-src.tar: $(FILES) tarlist $(RM) $(TARDIR) ln -s . $(TARDIR) $(RM) $@ tar -ch -T tarlist -f $@ $(RM) $(TARDIR) wpr3287-src.tgz: wpr3287-src.tar gzip $@ man: html/wpr3287-man.html html/wpr3287-man.html: pr3287.man.m4 html.m4 version.txt ./m42html wpr3287 pr3287.man.m4 >$@ html/ReleaseNotes.html: html/documentation-relnotes-body.html mkstand.bash ./mkstand.bash "wpr3287 Release Notes" html/documentation-relnotes-body.html $@ configure: configure.in autoconf ID: $(SOURCES) $(HEADERS) mkid $(SOURCES) $(HEADERS) tags: $(SOURCES) $(HEADERS) ctags $(SOURCES) $(HEADERS) lessman: tbl wpr3287.man | nroff -man | less ibm-3270-3.3.10ga4/wpr3287/resolver.c0000644000175000017500000002254511254565704016340 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resolver.c * Hostname resolution. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #include #include #include #else /*][*/ #include #include #endif /*]*/ #include #include "resolverc.h" #include "w3miscc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #if defined(_WIN32) /*[*/ static int win32_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res); static void win32_freeaddrinfo(struct addrinfo *res); static int win32_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags); #undef getaddrinfo #define getaddrinfo win32_getaddrinfo #undef freeaddrinfo #define freeaddrinfo win32_freeaddrinfo #undef getnameinfo #define getnameinfo win32_getnameinfo #endif /*]*/ /* * Resolve a hostname and port. * Returns 0 for success, -1 for fatal error (name resolution impossible), * -2 for simple error (cannot resolve the name). */ int resolve_host_and_port(const char *host, char *portname, int ix, unsigned short *pport, struct sockaddr *sa, socklen_t *sa_len, char *errmsg, int em_len, int *lastp) { #if defined(_WIN32) /*[*/ OSVERSIONINFO info; Boolean has_getaddrinfo = False; /* Figure out if we should use gethostbyname() or getaddrinfo(). */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); exit(1); } has_getaddrinfo = (info.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS && info.dwMajorVersion >= 5 && info.dwMinorVersion >= 1); if (has_getaddrinfo) #endif /*]*/ { #if defined(AF_INET6) /*[*/ struct addrinfo hints, *res0, *res; int rc; /* * Use getaddrinfo() to resolve the hostname and port * together. */ (void) memset(&hints, '\0', sizeof(struct addrinfo)); hints.ai_flags = 0; hints.ai_family = PF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; rc = getaddrinfo(host, portname, &hints, &res0); if (rc != 0) { snprintf(errmsg, em_len, "%s/%s:\n%s", host, portname? portname: "(none)", gai_strerror(rc)); return -2; } res = res0; /* * Return the reqested element. * Hopefully the list will not change between calls. */ while (ix && res->ai_next != NULL) { res = res->ai_next; ix--; } if (res == NULL) { /* Ran off the end? The list must have changed. */ snprintf(errmsg, em_len, "%s/%s:\n%s", host, portname? portname: "(none)", gai_strerror(EAI_AGAIN)); freeaddrinfo(res); return -2; } switch (res->ai_family) { case AF_INET: *pport = ntohs(((struct sockaddr_in *) res->ai_addr)->sin_port); break; case AF_INET6: *pport = ntohs(((struct sockaddr_in6 *) res->ai_addr)->sin6_port); break; default: snprintf(errmsg, em_len, "%s:\nunknown family %d", host, res->ai_family); freeaddrinfo(res); return -1; } (void) memcpy(sa, res->ai_addr, res->ai_addrlen); *sa_len = res->ai_addrlen; if (lastp != NULL) *lastp = (res->ai_next == NULL); freeaddrinfo(res0); #endif /*]*/ } #if defined(_WIN32) /*[*/ else #endif /*]*/ #if defined(_WIN32) || !defined(AF_INET6) /*[*/ { struct hostent *hp; struct servent *sp; unsigned short port; unsigned long lport; char *ptr; struct sockaddr_in *sin = (struct sockaddr_in *)sa; /* Get the port number. */ lport = strtoul(portname, &ptr, 0); if (ptr == portname || *ptr != '\0' || lport == 0L || lport & ~0xffff) { if (!(sp = getservbyname(portname, "tcp"))) { snprintf(errmsg, em_len, "Unknown port number or service: %s", portname); return -1; } port = sp->s_port; } else port = htons((unsigned short)lport); *pport = ntohs(port); /* Use gethostbyname() to resolve the hostname. */ hp = gethostbyname(host); if (hp == (struct hostent *) 0) { sin->sin_family = AF_INET; sin->sin_addr.s_addr = inet_addr(host); if (sin->sin_addr.s_addr == (unsigned long)-1) { snprintf(errmsg, em_len, "Unknown host:\n%s", host); return -2; } if (lastp != NULL) *lastp = True; } else { int i; for (i = 0; i < ix; i++) { if (hp->h_addr_list[i] == NULL) { snprintf(errmsg, em_len, "Unknown host:\n%s", host); return -2; } } sin->sin_family = hp->h_addrtype; (void) memmove(&sin->sin_addr, hp->h_addr_list[i], hp->h_length); if (lastp != NULL) *lastp = (hp->h_addr_list[i + 1] == NULL); } sin->sin_port = port; *sa_len = sizeof(struct sockaddr_in); } #endif /*]*/ return 0; } /* * Resolve a sockaddr into a numeric hostname and port. * Returns 0 for success, -1 for failure. */ int numeric_host_and_port(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, char *errmsg, int em_len) { #if defined(_WIN32) /*[*/ OSVERSIONINFO info; Boolean has_getnameinfo = False; /* Figure out if we should use inet_ntoa() or getnameinfo(). */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); exit(1); } has_getnameinfo = (info.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS && info.dwMajorVersion >= 5 && info.dwMinorVersion >= 1); if (has_getnameinfo) #endif /*]*/ { #if defined(AF_INET6) /*[*/ int rc; /* Use getnameinfo(). */ rc = getnameinfo(sa, salen, host, hostlen, serv, servlen, NI_NUMERICHOST | NI_NUMERICSERV); if (rc != 0) { snprintf(errmsg, em_len, "%s", gai_strerror(rc)); return -1; } #endif /*]*/ } #if defined(_WIN32) /*[*/ else #endif /*]*/ #if defined(_WIN32) || !defined(AF_INET6) /*[*/ { struct sockaddr_in *sin = (struct sockaddr_in *)sa; /* Use inet_ntoa() and snprintf(). */ snprintf(host, hostlen, "%s", inet_ntoa(sin->sin_addr)); snprintf(serv, servlen, "%u", ntohs(sin->sin_port)); } #endif /*]*/ return 0; } #if defined(_WIN32) /*[*/ /* * Windows-specific versions of getaddrinfo(), freeaddrinfo() and * gai_strerror(). * The symbols are resolved from ws2_32.dll at run-time, instead of * by linking against ws2_32.lib, because they are not defined on all * versions of Windows. */ typedef int (__stdcall *gai_fn)(const char *, const char *, const struct addrinfo *, struct addrinfo **); typedef void (__stdcall *fai_fn)(struct addrinfo*); typedef int (__stdcall *gni_fn)(const struct sockaddr *, socklen_t, char *, size_t, char *, size_t, int); /* Resolve a symbol in ws2_32.dll. */ static FARPROC get_ws2_32(const char *symbol) { static HMODULE ws2_32_handle = NULL; FARPROC p; if (ws2_32_handle == NULL) { ws2_32_handle = LoadLibrary("ws2_32.dll"); if (ws2_32_handle == NULL) { fprintf(stderr, "Can't load ws2_32.dll: %s\n", win32_strerror(GetLastError())); exit(1); } } p = GetProcAddress(ws2_32_handle, symbol); if (p == NULL) { fprintf(stderr, "Can't resolve %s in ws2_32.dll: %s\n", symbol, win32_strerror(GetLastError())); exit(1); } return p; } static int win32_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res) { static FARPROC gai_p = NULL; if (gai_p == NULL) gai_p = get_ws2_32("getaddrinfo"); return ((gai_fn)gai_p)(node, service, hints, res); } static void win32_freeaddrinfo(struct addrinfo *res) { static FARPROC fai_p = NULL; if (fai_p == NULL) fai_p = get_ws2_32("freeaddrinfo"); ((fai_fn)fai_p)(res); } static int win32_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags) { static FARPROC gni_p = NULL; if (gni_p == NULL) gni_p = get_ws2_32("getnameinfo"); return ((gni_fn)gni_p)(sa, salen, host, hostlen, serv, servlen, flags); } #endif /*]*/ ibm-3270-3.3.10ga4/wpr3287/winversc.h0000644000175000017500000000312111254565675016340 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ extern int is_nt; extern int has_ipv6; extern int get_version_info(void); ibm-3270-3.3.10ga4/wpr3287/unicode_dbcsc.h0000644000175000017500000000345011254565704017262 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #if defined(X3270_DBCS) /*[*/ extern ucs4_t ebcdic_dbcs_to_unicode(ebc_t e, unsigned flags); extern ebc_t unicode_to_ebcdic_dbcs(ucs4_t u); extern int set_uni_dbcs(const char *csname, const char **codepage, const char **display_charsets); extern void charset_list_dbcs(void); #endif /*]*/ ibm-3270-3.3.10ga4/wpr3287/trace_ds.c0000644000175000017500000000567011254565701016260 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * trace_ds.c * 3270 data stream tracing. * */ #include "globals.h" #include #include #include #include #include #include "3270ds.h" #include "ctlrc.h" #include "seec.h" #include "tablesc.h" #include "trace_dsc.h" /* Statics */ static int dscnt = 0; /* Globals */ FILE *tracef = (FILE *) 0; /* Data Stream trace print, handles line wraps */ static char *tdsbuf = CN; #define TDS_LEN 75 static void trace_ds_s(char *s) { int len = strlen(s); Boolean nl = False; if (tracef == NULL) return; if (s && s[len-1] == '\n') { len--; nl = True; } while (dscnt + len >= 75) { int plen = 75-dscnt; (void) fprintf(tracef, "%.*s ...\n... ", plen, s); dscnt = 4; s += plen; len -= plen; } if (len) { (void) fprintf(tracef, "%.*s", len, s); dscnt += len; } if (nl) { (void) fprintf(tracef, "\n"); dscnt = 0; } } void trace_ds(const char *fmt, ...) { va_list args; va_start(args, fmt); /* allocate buffer */ if (tdsbuf == CN) tdsbuf = Malloc(4096); /* print out remainder of message */ (void) vsprintf(tdsbuf, fmt, args); trace_ds_s(tdsbuf); va_end(args); } void trace_dsn(const char *fmt, ...) { va_list args; va_start(args, fmt); /* allocate buffer */ if (tdsbuf == CN) tdsbuf = Malloc(4096); /* print out remainder of message */ (void) vsprintf(tdsbuf, fmt, args); strcat(tdsbuf, "\n"); trace_ds_s(tdsbuf); va_end(args); } ibm-3270-3.3.10ga4/wpr3287/ctlr.c0000644000175000017500000012363311254565701015440 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * ctlr.c * This module handles interpretation of the 3270 data stream and * maintenance of the 3270 device state. It was split out from * screen.c, which handles X operations. * */ #include #include #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include "globals.h" #include "3270ds.h" #include "charsetc.h" #include "ctlrc.h" #include "trace_dsc.h" #include "sfc.h" #include "tablesc.h" #include "unicodec.h" #if defined(_WIN32) /*[*/ #include "wsc.h" #include #endif /*]*/ #if !defined(_WIN32) /*[*/ extern char *command; #else /*][*/ extern char *printer; extern int printercp; #endif /*]*/ extern int blanklines; /* display blank lines even if empty (formatted LU3) */ extern int ignoreeoj; /* ignore PRINT-EOJ commands */ extern int crlf; /* expand newline to CR/LF */ extern int ffthru; /* pass through SCS FF orders */ extern int ffskip; /* skip FF orders at top of page */ extern char *trnpre_data; extern char *trnpost_data; extern size_t trnpre_size; extern size_t trnpost_size; #define CS_GE 0x04 /* hack */ #define WCC_LINE_LENGTH(c) ((c) & 0x30) #define WCC_132 0x00 #define WCC_40 0x10 #define WCC_64 0x20 #define WCC_80 0x30 #define MAX_LL 132 #define MAX_BUF (MAX_LL * MAX_LL) /* swag */ #define VISIBLE 0x01 /* visible field */ #define INVISIBLE 0x02 /* invisible field */ #define BUFSZ 4096 #define FCORDER_NOP 0x0001 /* dummy filler for DBCS right half */ static const char *ll_name[] = { "unformatted132", "formatted40", "formatted64", "formatted80" }; static int ll_len[] = { 132, 40, 64, 80 }; /* 3270 (formatted mode) data */ static unsigned char default_gr; static unsigned char default_cs; static int line_length = MAX_LL; static ucs4_t page_buf[MAX_BUF]; static int baddr = 0; static Boolean page_buf_initted = False; static Boolean any_3270_printable = False; static int any_3270_output = 0; #if !defined(_WIN32) /*[*/ static FILE *prfile = NULL; static int prpid = -1; #else /*][*/ static int ws_initted = 0; static int ws_needpre = 1; #endif /*]*/ static unsigned char wcc_line_length; static int ctlr_erase(void); static int dump_formatted(void); static int dump_unformatted(void); static int stash(unsigned char c); static int prflush(void); #define DECODE_BADDR(c1, c2) \ ((((c1) & 0xC0) == 0x00) ? \ (((c1) & 0x3F) << 8) | (c2) : \ (((c1) & 0x3F) << 6) | ((c2) & 0x3F)) /* SCS constants and data. */ #define MAX_MPP 132 #define MAX_MPL 108 static ucs4_t linebuf[MAX_MPP+1]; static struct { unsigned malloc_len; unsigned data_len; char *buf; } trnbuf[MAX_MPP+1]; static char htabs[MAX_MPP+1]; static char vtabs[MAX_MPL+1]; static int lm, tm, bm, mpp, mpl, scs_any; static int pp; static int line; static Boolean scs_initted = False; static Boolean any_scs_output = False; static int scs_leftover_len = 0; static int scs_leftover_buf[256]; static int scs_dbcs_subfield = 0; #if defined(X3270_DBCS) /*[*/ static unsigned char scs_dbcs_c1 = 0; #endif /*]*/ static unsigned scs_cs = 0; /* * Interpret an incoming 3270 command. */ enum pds process_ds(unsigned char *buf, int buflen) { if (!buflen) return PDS_OKAY_NO_OUTPUT; trace_ds("< "); switch (buf[0]) { /* 3270 command */ case CMD_EAU: /* erase all unprotected */ case SNA_CMD_EAU: trace_ds("EraseAllUnprotected\n"); if (ctlr_erase() < 0 || prflush() < 0) return PDS_FAILED; return PDS_OKAY_NO_OUTPUT; break; case CMD_EWA: /* erase/write alternate */ case SNA_CMD_EWA: trace_ds("EraseWriteAlternate"); if (ctlr_erase() < 0 || prflush() < 0) return PDS_FAILED; baddr = 0; ctlr_write(buf, buflen, True); return PDS_OKAY_NO_OUTPUT; break; case CMD_EW: /* erase/write */ case SNA_CMD_EW: trace_ds("EraseWrite"); if (ctlr_erase() < 0 || prflush() < 0) return PDS_FAILED; baddr = 0; ctlr_write(buf, buflen, True); return PDS_OKAY_NO_OUTPUT; break; case CMD_W: /* write */ case SNA_CMD_W: trace_ds("Write"); ctlr_write(buf, buflen, False); return PDS_OKAY_NO_OUTPUT; break; case CMD_RB: /* read buffer */ case SNA_CMD_RB: trace_ds("ReadBuffer\n"); return PDS_BAD_CMD; break; case CMD_RM: /* read modifed */ case SNA_CMD_RM: trace_ds("ReadModified\n"); return PDS_BAD_CMD; break; case CMD_RMA: /* read modifed all */ case SNA_CMD_RMA: trace_ds("ReadModifiedAll\n"); return PDS_BAD_CMD; break; case CMD_WSF: /* write structured field */ case SNA_CMD_WSF: trace_ds("WriteStructuredField"); return write_structured_field(buf, buflen); break; case CMD_NOP: /* no-op */ trace_ds("NoOp\n"); return PDS_OKAY_NO_OUTPUT; break; default: /* unknown 3270 command */ errmsg("Unknown 3270 Data Stream command: 0x%X", buf[0]); return PDS_BAD_CMD; } } /* * Process a 3270 Write command. */ void ctlr_write(unsigned char buf[], int buflen, Boolean erase) { register unsigned char *cp; Boolean last_cmd; Boolean last_zpt; Boolean wcc_keyboard_restore, wcc_sound_alarm; Boolean wcc_start_printer; Boolean ra_ge; int i; unsigned char na; int any_fa; unsigned char efa_fg; unsigned char efa_gr; unsigned char efa_cs; ucs4_t ra_xlate = 0; const char *paren = "("; int xbaddr; enum { NONE, ORDER, SBA, TEXT, NULLCH } previous = NONE; #define END_TEXT0 { if (previous == TEXT) trace_ds("'"); } #define END_TEXT(cmd) { END_TEXT0; trace_ds(" %s", cmd); } #define START_FIELD(fa) { \ ctlr_add(FA_IS_ZERO(fa)?INVISIBLE:VISIBLE, 0, default_gr); \ trace_ds(see_attr(fa)); \ } if (buflen < 2) return; if (!page_buf_initted) { (void) memset(page_buf, '\0', MAX_BUF * sizeof(ucs4_t)); page_buf_initted = True; baddr = 0; } default_gr = 0; default_cs = 0; if (WCC_RESET(buf[1])) { trace_ds("%sreset", paren); paren = ","; } wcc_line_length = WCC_LINE_LENGTH(buf[1]); if (wcc_line_length) { trace_ds("%s%s", paren, ll_name[wcc_line_length >> 4]); paren = ","; } else { trace_ds("%sunformatted", paren); paren = ","; } line_length = ll_len[wcc_line_length >> 4]; wcc_sound_alarm = WCC_SOUND_ALARM(buf[1]); if (wcc_sound_alarm) { trace_ds("%salarm", paren); paren = ","; } wcc_keyboard_restore = WCC_KEYBOARD_RESTORE(buf[1]); if (wcc_keyboard_restore) { trace_ds("%srestore", paren); paren = ","; } if (WCC_RESET_MDT(buf[1])) { trace_ds("%sresetMDT", paren); paren = ","; } wcc_start_printer = WCC_START_PRINTER(buf[1]); if (wcc_start_printer) { trace_ds("%sstartprinter", paren); paren = ","; } if (strcmp(paren, "(")) trace_ds(")"); last_cmd = True; last_zpt = False; for (cp = &buf[2]; cp < (buf + buflen); cp++) { switch (*cp) { case ORDER_SF: /* start field */ END_TEXT("StartField"); previous = ORDER; cp++; /* skip field attribute */ START_FIELD(*cp); last_cmd = True; last_zpt = False; break; case ORDER_SBA: /* set buffer address */ cp += 2; /* skip buffer address */ xbaddr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("SetBufferAddress"); if (wcc_line_length) trace_ds("(%d,%d)", 1+(xbaddr/line_length), 1+(xbaddr%line_length)); else trace_ds("(%d[%+d])", xbaddr, xbaddr-baddr); if (xbaddr >= MAX_BUF) { /* Error! */ baddr = 0; return; } if (wcc_line_length) { /* Formatted. */ baddr = xbaddr; } else if (xbaddr > baddr) { /* Unformatted. */ while (baddr < xbaddr) { ctlr_add(' ', default_cs, default_gr); } } previous = SBA; last_cmd = True; last_zpt = False; break; case ORDER_IC: /* insert cursor */ END_TEXT("InsertCursor"); previous = ORDER; last_cmd = True; last_zpt = False; break; case ORDER_PT: /* program tab */ END_TEXT("ProgramTab"); previous = ORDER; last_cmd = True; break; case ORDER_RA: /* repeat to address */ cp += 2; /* skip buffer address */ xbaddr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("RepeatToAddress"); if (wcc_line_length) trace_ds("(%d,%d)", 1+(xbaddr/line_length), 1+(xbaddr%line_length)); else trace_ds("(%d[%+d])", xbaddr, xbaddr-baddr); cp++; /* skip char to repeat */ if (*cp == ORDER_GE){ ra_ge = True; trace_ds("GraphicEscape"); cp++; } else ra_ge = False; trace_ds("'%s'", see_ebc(*cp)); previous = ORDER; if (xbaddr > MAX_BUF || xbaddr < baddr) { baddr = 0; return; } /* Translate '*cp' once. */ switch (*cp) { case FCORDER_FF: case FCORDER_CR: case FCORDER_NL: case FCORDER_EM: ra_xlate = *cp; break; default: if (*cp <= 0x3F) { ra_xlate = '\0'; } else { ra_xlate = ebcdic_to_unicode(*cp, ra_ge? CS_GE: CS_BASE, EUO_NONE); } break; } while (baddr < xbaddr) { ctlr_add(ra_xlate, ra_ge? CS_GE: default_cs, default_gr); } last_cmd = True; last_zpt = False; break; case ORDER_EUA: /* erase unprotected to address */ cp += 2; /* skip buffer address */ xbaddr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("EraseUnprotectedAll"); previous = ORDER; last_cmd = True; last_zpt = False; break; case ORDER_GE: /* graphic escape */ END_TEXT("GraphicEscape "); cp++; /* skip char */ previous = ORDER; if (*cp) trace_ds("'"); trace_ds(see_ebc(*cp)); if (*cp) trace_ds("'"); ctlr_add(ebcdic_to_unicode(*cp, CS_GE, EUO_NONE), CS_GE, default_gr); last_cmd = False; last_zpt = False; break; case ORDER_MF: /* modify field */ END_TEXT("ModifyField"); previous = ORDER; cp++; na = *cp; cp += na * 2; last_cmd = True; last_zpt = False; break; case ORDER_SFE: /* start field extended */ END_TEXT("StartFieldExtended"); previous = ORDER; cp++; /* skip order */ na = *cp; any_fa = 0; efa_fg = 0; efa_gr = 0; efa_cs = 0; for (i = 0; i < (int)na; i++) { cp++; if (*cp == XA_3270) { trace_ds(" 3270"); cp++; START_FIELD(*cp); any_fa++; } else if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; efa_fg = *cp; } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; efa_gr = *cp & 0x07; } else if (*cp == XA_CHARSET) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (*cp == 0xf1) efa_cs = 1; } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; } else { trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; } } if (!any_fa) START_FIELD(0); ctlr_add('\0', 0, default_gr); last_cmd = True; last_zpt = False; break; case ORDER_SA: /* set attribute */ END_TEXT("SetAttribtue"); previous = ORDER; cp++; if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_gr = *(cp + 1) & 0x07; } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_gr = 0; default_cs = 0; } else if (*cp == XA_CHARSET) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_cs = (*(cp + 1) == 0xf1) ? 1 : 0; } else trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; last_cmd = True; last_zpt = False; break; case FCORDER_FF: /* Form Feed */ END_TEXT("FF"); previous = ORDER; ctlr_add(FCORDER_FF, default_cs, default_gr); last_cmd = True; last_zpt = False; break; case FCORDER_CR: /* Carriage Return */ END_TEXT("CR"); previous = ORDER; ctlr_add(FCORDER_CR, default_cs, default_gr); last_cmd = True; last_zpt = False; break; case FCORDER_NL: /* New Line */ END_TEXT("NL"); previous = ORDER; ctlr_add(FCORDER_NL, default_cs, default_gr); last_cmd = True; last_zpt = False; break; case FCORDER_EM: /* End of Media */ END_TEXT("EM"); previous = ORDER; ctlr_add(FCORDER_EM, default_cs, default_gr); last_cmd = True; last_zpt = False; break; case FCORDER_DUP: /* Visible control characters */ case FCORDER_FM: END_TEXT(see_ebc(*cp)); previous = ORDER; ctlr_add(ebc2asc0[*cp], default_cs, default_gr); last_cmd = True; last_zpt = False; break; case FCORDER_SUB: /* misc format control orders */ case FCORDER_EO: END_TEXT(see_ebc(*cp)); previous = ORDER; ctlr_add('\0', default_cs, default_gr); last_cmd = True; last_zpt = False; break; case FCORDER_NULL: END_TEXT("NULL"); previous = NULLCH; ctlr_add('\0', default_cs, default_gr); last_cmd = False; last_zpt = False; break; default: /* enter character */ if (*cp <= 0x3F) { END_TEXT("ILLEGAL_ORDER"); previous = ORDER; ctlr_add('\0', default_cs, default_gr); trace_ds(see_ebc(*cp)); last_cmd = True; last_zpt = False; break; } if (previous != TEXT) trace_ds(" '"); previous = TEXT; trace_ds(see_ebc(*cp)); ctlr_add(ebcdic_to_unicode(*cp, default_cs, EUO_NONE), default_cs, default_gr); last_cmd = False; last_zpt = False; break; } } trace_ds("\n"); } #undef START_FIELDx #undef START_FIELD0 #undef START_FIELD #undef END_TEXT0 #undef END_TEXT /* * Process SCS (SNA Character Stream) data. */ /* Reinitialize the SCS virtual 3287. */ static void init_scs_horiz(void) { int i; mpp = MAX_MPP; lm = 1; htabs[1] = 1; for (i = 2; i <= MAX_MPP; i++) { htabs[i] = 0; } } static void init_scs_vert(void) { int i; mpl = 1; tm = 1; bm = mpl; vtabs[1] = 1; for (i = 0; i <= MAX_MPL; i++) { vtabs[i] = 0; } } static void init_scs(void) { int i; if (scs_initted) return; trace_ds("Initializing SCS virtual 3287.\n"); init_scs_horiz(); init_scs_vert(); pp = 1; line = 1; scs_any = 0; for (i = 0; i < MAX_MPP+1; i++) linebuf[i] = ' '; for (i = 0; i < MAX_MPP+1; i++) { if (trnbuf[i].malloc_len != 0) { Free(trnbuf[i].buf); trnbuf[i].buf = NULL; trnbuf[i].malloc_len = 0; } trnbuf[i].data_len = 0; } scs_leftover_len = 0; scs_dbcs_subfield = 0; #if defined(X3270_DBCS) /*[*/ scs_dbcs_c1 = 0; #endif /*]*/ scs_cs = 0; scs_initted = True; } #if defined(_WIN32) /*[*/ static int unicode_to_printer(ucs4_t u, char mb[], int mb_len) { int nc; wchar_t wuc = u; nc = WideCharToMultiByte(printercp, 0, &wuc, 1, mb, mb_len, NULL, NULL); if (nc > 0) mb[nc++] = '\0'; return nc; } #endif /*[*/ /* * Our philosophy for automatic newlines and formfeeds is that we generate them * only if the user attempts to put data outside the MPP/MPL-defined area. * Therefore, the user can put a byte on the last column of each line, and on * the last column of the last line of the page, and not need to worry about * suppressing their own NL or FF. */ /* * Dump and reset the current line. * This will always result in at least one byte of output to the printer (a * newline). The 'line' variable is always incremented, and may end up * pointing past the bottom margin. The 'pp' variable is set to the left * margin. */ static int dump_scs_line(Boolean reset_pp, Boolean always_nl) { int i; Boolean any_data = False; /* Find the last non-space character in the line buffer. */ for (i = mpp; i >= 1; i--) { if (trnbuf[i].data_len != 0 || linebuf[i] != ' ') break; } /* * If there is data there, print it with a trailing newline and * clear out the line buffer for next time. If not, just print the * newline. */ if (i >= 1) { int j; int n_data = 0; int n_trn = 0; int k; for (j = 1; j <= i; j++) { /* * Dump and transparent data that precedes this * character. */ if (trnbuf[j].data_len) { unsigned k; n_trn += trnbuf[j].data_len; for (k = 0; k < trnbuf[j].data_len; k++) { if (stash(trnbuf[j].buf[k]) < 0) return -1; } trnbuf[j].data_len = 0; } if (j < i || linebuf[j] != ' ') { char mb[16]; int len; if (linebuf[j] == FCORDER_NOP) continue; n_data++; any_data = True; scs_any = True; #if !defined(_WIN32) /*[*/ len = unicode_to_multibyte(linebuf[j], mb, sizeof(mb)); #else /*][*/ len = unicode_to_printer(linebuf[j], mb, sizeof(mb)); #endif /*]*/ if (len == 0) { mb[0] = ' '; len = 1; } else len--; for (k = 0; k < len; k++) if (stash(mb[k]) < 0) return -1; } } #if defined(DEBUG_FF) /*[*/ trace_ds(" [dumping %d+%dt]", n_data, n_trn); #endif /*]*/ for (k = 0; k < MAX_MPP+1; k++) linebuf[k] = ' '; } if (any_data || always_nl) { if (crlf) { if (stash('\r') < 0) return -1; } if (stash('\n') < 0) return -1; line++; } #if defined(DEBUG_FF) /*[*/ trace_ds(" [line=%d]", line); #endif /*]*/ if (reset_pp) pp = lm; any_scs_output = False; return 0; } /* SCS formfeed. */ static int scs_formfeed(Boolean explicit) { int nls = 0; /* * In ffskip mode, if it's an explicit formfeed, and we haven't * printed any non-transparent data, do nothing. */ if (ffskip && explicit && !scs_any) return 0; /* * In ffthru mode, pass through a \f, but only if it's explicit. */ if (ffthru) { if (explicit) { if (stash('\f') < 0) return -1; scs_any = 0; } line = 1; return 0; } if (explicit) scs_any = 0; if (mpl > 1) { /* Skip to the end of the physical page. */ while (line <= mpl) { if (crlf) { if (stash('\r') < 0) return -1; } if (stash('\n') < 0) return -1; nls++; line++; } line = 1; /* Skip the top margin. */ while (line < tm) { if (crlf) { if (stash('\r') < 0) return -1; } if (stash('\n') < 0) return -1; nls++; line++; } #if defined(DEBUG_FF) /*[*/ if (nls) trace_ds(" [formfeed %s %d]", explicit? "explicit": "implicit", nls); #endif /*]*/ } else { line = 1; } return 0; } /* * Add a printable character to the SCS virtual 3287. * If the line position is past the bottom margin, we will skip to the top of * the next page. If the character position is past the MPP, we will skip to * the left margin of the next line. */ static int add_scs(ucs4_t c) { /* * They're about to print something. * If the line is past the bottom margin, we need to skip to the * MPL, and then past the top margin. */ if (line > bm) { if (scs_formfeed(False) < 0) return -1; } /* * If this character would overflow the line, then dump the current * line and start over at the left margin. */ if (pp > mpp) { if (dump_scs_line(True, True) < 0) return -1; } /* * Store this character in the line buffer and advance the print * position. */ if (c != ' ') linebuf[pp++] = c; else pp++; any_scs_output = True; return 0; } /* * Add a string of transparent data to the SCS virtual 3287. * Transparent data lives between the 'counted' 3287 characters. Really. */ static void add_scs_trn(unsigned char *cp, int cnt) { int i; unsigned new_malloc_len; for (i = 0; i < cnt; i++) { trace_ds(" %02x", cp[i]); } new_malloc_len = trnbuf[pp].data_len + cnt; while (trnbuf[pp].malloc_len < new_malloc_len) { trnbuf[pp].malloc_len += BUFSZ; trnbuf[pp].buf = Realloc(trnbuf[pp].buf, trnbuf[pp].malloc_len); } (void) memcpy(trnbuf[pp].buf + trnbuf[pp].data_len, cp, cnt); trnbuf[pp].data_len += cnt; any_scs_output = True; } /* * Process a bufferful of SCS data. * * Note that unlike a 3270 Write command, even though the record is bounded * by an EOR, the SCS data are not guaranteed to be complete. * * Rather than have a full FSM for every byte of every SCS order, we resort * to the rather inefficient method of concatenating the previous, incomplete * record with a copy of the new record, processing it as a contiguous * buffer, and saving any incomplete order for next time. */ /* * 'Internal' SCS function, called by process_scs() below with the previous * leftover data plus the current buffer. * * If an incomplete order is detected, saves it in scs_leftover_buf for * next time. */ static enum pds process_scs_contig(unsigned char *buf, int buflen) { register unsigned char *cp; int i; int cnt; int tab; ucs4_t uc; enum { NONE, DATA, ORDER } last = NONE; # define END_TEXT(s) { \ if (last == DATA) \ trace_ds("'"); \ trace_ds(" " s); \ last = ORDER; \ } # define LEFTOVER { \ trace_ds(" [pending]"); \ scs_leftover_len = buflen - (cp - buf); \ (void) memcpy(scs_leftover_buf, cp, scs_leftover_len); \ cp = buf + buflen; \ } trace_ds("< "); init_scs(); for (cp = &buf[0]; cp < (buf + buflen); cp++) { switch (*cp) { case SCS_BS: /* back space */ END_TEXT("BS"); if (pp != 1) pp--; if (scs_dbcs_subfield && pp != 1) pp--; break; case SCS_CR: /* carriage return */ END_TEXT("CR"); pp = lm; break; case SCS_ENP: /* enable presentation */ END_TEXT("ENP"); /* No-op. */ break; case SCS_FF: /* form feed */ END_TEXT("FF"); /* Dump any pending data, and go to the next line. */ if (dump_scs_line(True, False) < 0) return PDS_FAILED; /* * If there is a max page length, skip to the next * page. */ if (scs_formfeed(True) < 0) return PDS_FAILED; break; case SCS_HT: /* horizontal tab */ END_TEXT("HT"); for (i = pp + 1; i <= mpp; i++) { if (htabs[i]) break; } if (i <= mpp) pp = i; else { if (add_scs(' ') < 0) return PDS_FAILED; } break; case SCS_INP: /* inhibit presentation */ END_TEXT("INP"); /* No-op. */ break; case SCS_IRS: /* inter-record separator */ END_TEXT("IRS"); case SCS_NL: /* new line */ if (*cp == SCS_NL) END_TEXT("NL"); if (dump_scs_line(True, True) < 0) return PDS_FAILED; break; case SCS_VT: /* vertical tab */ END_TEXT("VT"); for (i = line+1; i <= MAX_MPL; i++){ if (vtabs[i]) break; } if (i <= MAX_MPL) { if (dump_scs_line(False, True) < 0) return PDS_FAILED; while (line < i) { if (crlf) { if (stash('\r') < 0) return PDS_FAILED; } if (stash('\n') < 0) return PDS_FAILED; line++; } break; } else { /* fall through... */ } case SCS_VCS: /* vertical channel select */ if (*cp == SCS_VCS) END_TEXT("VCS"); case SCS_LF: /* line feed */ if (*cp == SCS_LF) END_TEXT("LF"); if (dump_scs_line(False, True) < 0) return PDS_FAILED; break; case SCS_GE: /* graphic escape */ END_TEXT("GE"); if ((cp + 1) >= buf + buflen) { LEFTOVER; break; } /* Skip over the order. */ cp++; /* No support, so all characters are spaces. */ trace_ds(" %02x", *cp); if (add_scs(' ') < 0) return PDS_FAILED; break; case SCS_SA: /* set attribute */ END_TEXT("SA"); if ((cp + 2) >= buf + buflen) { LEFTOVER; break; } switch (*(cp + 1)) { case SCS_SA_RESET: trace_ds(" Reset(%02x)", *(cp + 2)); #if defined(X3270_DBCS) /*[*/ scs_dbcs_subfield = 0; #endif /*]*/ scs_cs = 0; break; case SCS_SA_HIGHLIGHT: trace_ds(" Highlight(%02x)", *(cp + 2)); break; case SCS_SA_CS: trace_ds(" CharacterSet(%02x)", *(cp + 2)); if (scs_cs != *(cp + 2)) { #if defined(X3270_DBCS) /*[*/ if (scs_cs == 0xf8) scs_dbcs_subfield = 0; else if (*(cp + 2) == 0xf8) scs_dbcs_subfield = 1; #endif /*]*/ scs_cs = *(cp + 2); } break; case SCS_SA_GRID: trace_ds(" Grid(%02x)", *(cp + 2)); break; default: trace_ds(" Unknown(%02x %02x)", *(cp + 1), *(cp + 2)); break; } /* Skip it. */ cp += 2; break; case SCS_TRN: /* transparent */ END_TEXT("TRN"); /* Make sure a length byte is present. */ if ((cp + 1) >= buf + buflen) { LEFTOVER; break; } /* Skip over the order. */ cp++; /* * Next byte is the length of the transparent data, * not including the length byte itself. */ cnt = *cp; if (cp + cnt - 1 >= buf + buflen) { cp--; LEFTOVER; break; } trace_ds("(%d)", cnt); /* Copy out the data literally. */ add_scs_trn(cp+1, cnt); cp += cnt; #if defined(X3270_DBCS) /*[*/ scs_dbcs_subfield = 0; #endif /*]*/ break; case SCS_SET: /* set... */ /* Skip over the first byte of the order. */ if (cp + 2 >= buf + buflen || cp + *(cp + 2) - 1 >= buf + buflen) { END_TEXT("SET"); LEFTOVER; break; } switch (*++cp) { case SCS_SHF: /* set horizontal format */ END_TEXT("SHF"); /* Take defaults first. */ init_scs_horiz(); /* * The length is next. It includes the * length field itself. */ cnt = *++cp; trace_ds("(%d)", cnt); if (cnt < 2) break; /* no more data */ /* Skip over the length byte. */ if (!--cnt || cp + 1 >= buf + buflen) break; /* The MPP is next. */ mpp = *++cp; trace_ds(" mpp=%d", mpp); if (!mpp || mpp > MAX_MPP) mpp = MAX_MPP; /* Skip over the MPP. */ if (!--cnt || cp + 1 >= buf + buflen) break; /* The LM is next. */ lm = *++cp; trace_ds(" lm=%d", lm); if (lm < 1 || lm >= mpp) lm = 1; /* Skip over the LM. */ if (!--cnt || cp + 1 >= buf + buflen) break; /* Skip over the RM. */ cp++; trace_ds(" rm=%d", *cp); /* Next are the tab stops. */ while (--cnt && cp + 1 < buf + buflen) { tab = *++cp; trace_ds(" tab=%d", tab); if (tab >= 1 && tab <= mpp) htabs[tab] = 1; } break; case SCS_SLD: /* set line density */ END_TEXT("SLD"); /* * Skip over the second byte of the * order. */ cp++; /* * The length is next. It does not * include length field itself. */ if (cp >= buf + buflen) break; cnt = *cp; trace_ds("(%d)", cnt); if (cnt != 2) break; /* be gentle */ cnt--; trace_ds(" %02x", *(cp + 1)); cp += cnt; break; case SCS_SVF: /* set vertical format */ END_TEXT("SVF"); /* Take defaults first. */ init_scs_vert(); /* * Skip over the second byte of the * order. */ cp++; /* * The length is next. It includes the * length field itself. */ if (cp >= buf + buflen) break; cnt = *cp; trace_ds("(%d)", cnt); if (cnt < 2) break; /* no more data */ /* Skip over the length byte. */ cp++; cnt--; if (!cnt || cp >= buf + buflen) break; /* The MPL is next. */ mpl = *cp; trace_ds(" mpl=%d", mpl); if (!mpl || mpl > MAX_MPL) mpl = 1; if (cnt < 2) { bm = mpl; break; } /* Skip over the MPL. */ cp++; cnt--; if (!cnt || cp >= buf + buflen) break; /* The TM is next. */ tm = *cp; trace_ds(" tm=%d", tm); if (tm < 1 || tm >= mpl) tm = 1; if (cnt < 2) break; /* Skip over the TM. */ cp++; cnt--; if (!cnt || cp >= buf + buflen) break; /* The BM is next. */ bm = *cp; trace_ds(" bm=%d", bm); if (bm < tm || bm >= mpl) bm = mpl; if (cnt < 2) break; /* Skip over the BM. */ cp++; cnt--; /* Next are the tab stops. */ while (cnt > 1 && cp < buf + buflen) { tab = *cp; trace_ds(" tab=%d", tab); if (tab >= 1 && tab <= mpp) vtabs[tab] = 1; cp++; cnt--; } break; default: END_TEXT("SET(?"); trace_ds("%02x)", *cp); cp += *(cp + 1); break; } break; #if defined(X3270_DBCS) /*[*/ case SCS_SO: /* DBCS subfield start */ END_TEXT("SO"); scs_dbcs_subfield = 1; break; case SCS_SI: /* DBCS subfield end */ END_TEXT("SI"); scs_dbcs_subfield = 0; break; #endif /*]*/ default: /* * Stray control codes are spaces, all else gets * translated from EBCDIC to ASCII. */ if (*cp <= 0x3f) { END_TEXT("?"); trace_ds("%02x", *cp); if (add_scs(' ') < 0) return PDS_FAILED; break; } if (last == NONE) trace_ds("'"); else if (last == ORDER) trace_ds(" '"); #if defined(X3270_DBCS) /*[*/ if (scs_dbcs_subfield && dbcs) { if (scs_dbcs_subfield % 2) { scs_dbcs_c1 = *cp; } else { uc = ebcdic_to_unicode( (scs_dbcs_c1 << 8) | *cp, CS_BASE, EUO_NONE); if (uc == 0) { /* No translation. */ trace_ds("?DBCS(X'%02x%02x')", scs_dbcs_c1, *cp); if (add_scs(' ') < 0) return PDS_FAILED; if (add_scs(' ') < 0) return PDS_FAILED; } else { /* * Add the Unicode character * and a no-op to account for * the right-hand side. */ trace_ds("DBCS(X'%02x%02x')", scs_dbcs_c1, *cp); if (add_scs(uc) < 0) return PDS_FAILED; if (add_scs(FCORDER_NOP) < 0) return PDS_FAILED; } } scs_dbcs_subfield++; last = DATA; break; } #endif /*]*/ uc = ebcdic_to_unicode(*cp, CS_BASE, EUO_NONE); { char mb[16]; int len; len = unicode_to_multibyte(uc, mb, sizeof(mb)); trace_ds("%s", mb); } if (add_scs(uc) < 0) return PDS_FAILED; last = DATA; break; } } if (last == DATA) trace_ds("'"); trace_ds("\n"); if (prflush() < 0) return PDS_FAILED; return PDS_OKAY_NO_OUTPUT; } /* * 'External' SCS function. Handles leftover data from any previous, * incomplete SCS record. */ enum pds process_scs(unsigned char *buf, int buflen) { enum pds r; if (scs_leftover_len) { unsigned char *contig = Malloc(scs_leftover_len + buflen); int total_len; (void) memcpy(contig, scs_leftover_buf, scs_leftover_len); (void) memcpy(contig + scs_leftover_len, buf, buflen); total_len = scs_leftover_len + buflen; scs_leftover_len = 0; r = process_scs_contig(contig, total_len); Free(contig); } else { r = process_scs_contig(buf, buflen); } return r; } #if !defined(_WIN32) /*[*/ /* * SIGCHLD handler. Does nothing, but on systems that conform to the Single * Unix Specification, defining it ensures that the print command process will * become a zombie if it exits prematurely. */ static void sigchld_handler(int sig) { } /* * Special version of popen where the child ignores SIGINT. */ static FILE * popen_no_sigint(char *command) { int fds[2]; FILE *f; /* Create a pipe. */ if (pipe(fds) < 0) { return NULL; } /* Create a stdio stream from the write end. */ f = fdopen(fds[1], "w"); if (f == NULL) { close(fds[0]); close(fds[1]); return NULL; } /* Handle SIGCHLD signals. */ (void) signal(SIGCHLD, sigchld_handler); /* Fork a child process. */ switch ((prpid = fork())) { case 0: /* child */ fclose(f); dup2(fds[0], 0); signal(SIGINT, SIG_IGN); execl("/bin/sh", "sh", "-c", command, NULL); /* execv failed, return nonzero status */ exit(1); break; case -1: /* parent, error */ fclose(f); close(fds[0]); return NULL; default: /* parent, success */ close(fds[0]); break; } return f; } static int pclose_no_sigint(FILE *f) { int rc; int status; fclose(f); do { rc = waitpid(prpid, &status, 0); } while (rc < 0 && errno == EINTR); prpid = -1; if (rc < 0) return rc; else return status; } #endif /*]*/ /* * Send a character to the printer. */ static int stash(unsigned char c) { #if defined(_WIN32) /*[*/ if (!ws_initted) { if (ws_start(printer) < 0) { return -1; } ws_initted = 1; } if (ws_needpre) { if ((trnpre_data != NULL) && ws_write(trnpre_data, trnpre_size) < 0) { return -1; } ws_needpre = 0; } if (ws_putc((char)c)) { return -1; } #else /*][*/ if (prfile == NULL) { prfile = popen_no_sigint(command); if (prfile == NULL) { errmsg("%s: %s", command, strerror(errno)); return -1; } if ((trnpre_data != NULL) && fwrite(trnpre_data, 1, trnpre_size, prfile) != trnpre_size) { errmsg("Write error to '%s': %s", command, strerror(errno)); (void) pclose_no_sigint(prfile); prfile = NULL; return -1; } } if (fputc(c, prfile) == EOF) { errmsg("Write error to '%s': %s", command, strerror(errno)); (void) pclose_no_sigint(prfile); prfile = NULL; return -1; } #endif /*]*/ return 0; } /* * Flush the pipe going to the printer process, to try to flush out any * pending errors. */ static int prflush(void) { #if defined(_WIN32) /*[*/ if (ws_initted && ws_flush() < 0) return -1; #else /*][*/ if (prfile != NULL) { if (fflush(prfile) < 0) { errmsg("Flush error to '%s': %s", command, strerror(errno)); (void) pclose_no_sigint(prfile); prfile = NULL; return -1; } } #endif /*]*/ return 0; } /* * Change a character in the 3270 buffer. */ void ctlr_add(ucs4_t c, unsigned char cs, unsigned char gr) { /* Map control characters, according to the write mode. */ if (c < ' ') { if (wcc_line_length) { /* * When formatted, all control characters but FFs and * the funky VISIBLE/INVISIBLE controls are translated * to NULLs, so they don't display, and don't * contribute to empty lines. */ if (c != FCORDER_FF && c != VISIBLE && c != INVISIBLE) c = '\0'; } else { /* * Unformatted, all control characters but CR/NL/FF/EM * are displayed as spaces. */ if (c != FCORDER_CR && c != FCORDER_NL && c != FCORDER_FF && c != FCORDER_EM) c = ' '; } } /* Add the character. */ page_buf[baddr] = c; baddr = (baddr + 1) % MAX_BUF; any_3270_output = 1; } /* * Unformatted output function. Processes one character of output data. * * This function will buffer up to MAX_LL characters of output, until it is * passed a '\n' or '\f' character. * * It will process '\r' characters like a printer, i.e., it will not overwrite * a buffered non-space character with a space character. This is how * an output line can span multiple 3270 unformatted write commands. */ static int uoutput(char c) { static char buf[MAX_LL]; static int col = 0; static int maxcol = 0; int i; switch (c) { case '\r': col = 0; break; case '\n': for (i = 0; i < maxcol; i++) { if (stash(buf[i]) < 0) return -1; } if (crlf) { if (stash('\r') < 0) return -1; } if (stash(c) < 0) return -1; col = maxcol = 0; break; case '\f': if (any_3270_printable || !ffskip) { for (i = 0; i < maxcol; i++) { if (stash(buf[i]) < 0) return -1; } if (stash(c) < 0) return -1; } col = maxcol = 0; break; default: /* Don't overwrite with spaces. */ if (c == ' ') { if (col >= maxcol) buf[col++] = c; else col++; } else { buf[col++] = c; any_3270_printable = True; } if (col > maxcol) maxcol = col; break; } return 0; } /* * Dump an unformatted output buffer. * * The buffer is treated as a sequence of characters, with control characters * for new line, carriage return, form feed and end of media. * * By definition, the "print position" is 0 when this function begins and ends. */ static int dump_unformatted(void) { int i; int prcol = 0; ucs4_t c; int done = 0; char mb[16]; int len; int j; if (!any_3270_output) return 0; for (i = 0; i < MAX_BUF && !done; i++) { switch (c = page_buf[i]) { case '\0': break; case FCORDER_NOP: break; case FCORDER_CR: if (uoutput('\r') < 0) return -1; prcol = 0; break; case FCORDER_NL: if (uoutput('\n') < 0) return -1; prcol = 0; break; case FCORDER_FF: if (uoutput('\f') < 0) return -1; prcol = 0; break; case FCORDER_EM: if (prcol != 0) if (uoutput('\n') < 0) return -1; done = 1; break; default: /* printable */ #if !defined(_WIN32) /*[*/ len = unicode_to_multibyte(c, mb, sizeof(mb)); #else /*][*/ len = unicode_to_printer(c, mb, sizeof(mb)); #endif /*]*/ if (len == 0) { mb[0] = ' '; len = 1; } else { len--; } for (j = 0; j < len; j++) { if (uoutput(mb[j]) < 0) return -1; } /* Handle implied newlines. */ if (++prcol >= MAX_LL) { if (uoutput('\n') < 0) return -1; prcol = 0; } break; } } /* If the buffer didn't end with an EM, flush any pending line. */ if (!done) { if (uoutput('\n') < 0) return -1; } /* Clear out the buffer. */ (void) memset(page_buf, '\0', MAX_BUF * sizeof(ucs4_t)); /* Flush buffered data. */ #if defined(_WIN32) /*[*/ if (ws_initted) (void) ws_flush(); #else /*][*/ fflush(prfile); #endif /*]*/ any_3270_output = 0; return 0; } /* * Dump a formatted output buffer. * * The buffer is treated as a sequence of lines, with the length specified by * the write control character. * * Each line is terminated by a newline, with trailing spaces and nulls * suppressed. * Nulls are displayed as spaces, except when they constitute an entire line, * in which case the line is suppressed. * Formfeeds are passed through, and otherwise treated like nulls. */ static int dump_formatted(void) { int i; ucs4_t *cp = page_buf; int visible = 1; int newlines = 0; if (!any_3270_output) return 0; for (i = 0; i < MAX_LL; i++) { int blanks = 0; int any_data = 0; int j; for (j = 0; j < line_length && ((i * line_length) + j) < MAX_BUF; j++) { char c = *cp++; switch (c) { case VISIBLE: /* visible field */ visible = 1; blanks++; break; case INVISIBLE: /* invisible field */ visible = 0; blanks++; break; case '\f': while (newlines) { if (crlf) { if (stash('\r') < 0) return -1; } if (stash('\n') < 0) return -1; newlines--; } if (any_3270_printable || !ffskip) if (stash('\f') < 0) return -1; blanks++; break; case '\0': blanks++; break; case ' ': blanks++; any_data++; break; default: while (newlines) { if (crlf) { if (stash('\r') < 0) return -1; } if (stash('\n') < 0) return -1; newlines--; } while (blanks) { if (stash(' ') < 0) return -1; blanks--; } any_data++; if (!visible) { if (stash(' ') < 0) return -1; } else { char mb[16]; int len; int j; #if !defined(_WIN32) /*[*/ len = unicode_to_multibyte(c, mb, sizeof(mb)); #else /*][*/ len = unicode_to_printer(c, mb, sizeof(mb)); #endif /*]*/ if (len == 0) { mb[0] = ' '; len = 1; } else { len--; } for (j = 0; j < len; j++) { if (stash(mb[j]) < 0) return -1; } } if (visible) any_3270_printable = True; break; } } if (any_data || blanklines) newlines++; } (void) memset(page_buf, '\0', MAX_BUF * sizeof(ucs4_t)); #if defined(_WIN32) /*[*/ if (ws_initted) (void) ws_flush(); #else /*][*/ fflush(prfile); #endif /*]*/ any_3270_output = 0; return 0; } int print_eoj(void) { int rc = 0; /* Dump any pending 3270-mode output. */ if (wcc_line_length) { if (dump_formatted() < 0) rc = -1; } else { if (dump_unformatted() < 0) rc = -1; } /* Dump any pending SCS-mode output. */ if (any_scs_output) { if (dump_scs_line(True, False) < 0) rc = -1; } /* Close the stream to the print process. */ #if defined(_WIN32) /*[*/ if (ws_initted) { trace_ds("End of print job.\n"); if (trnpost_data != NULL && ws_write(trnpost_data, trnpost_size) < 0) { rc = -1; } if (ws_endjob() < 0) rc = -1; ws_needpre = 1; } #else /*]*/ if (prfile != NULL) { trace_ds("End of print job.\n"); if (trnpost_data != NULL && fwrite(trnpost_data, 1, trnpost_size, prfile) != trnpost_size) { rc = -1; } rc = pclose_no_sigint(prfile); if (rc) { if (rc < 0) errmsg("Close error on '%s': %s", command, strerror(errno)); else if (WIFEXITED(rc)) errmsg("'%s' exited with status %d", command, WEXITSTATUS(rc)); else if (WIFSIGNALED(rc)) errmsg("'%s' terminated by signal %d", command, WTERMSIG(rc)); else errmsg("'%s' returned status %d", command, rc); rc = -1; } prfile = NULL; } #endif /*]*/ /* Make sure the next 3270 job starts with clean conditions. */ page_buf_initted = 0; /* * Reset the FF suprpession logic. */ any_3270_printable = False; return rc; } void print_unbind(void) { /* * Make sure that the next SCS job starts with clean conditions. */ scs_initted = False; } static int ctlr_erase(void) { /* Dump whatever we've got so far. */ /* Dump any pending 3270-mode output. */ if (wcc_line_length) { if (dump_formatted() < 0) return -1; } else { if (dump_unformatted() < 0) return -1; } /* Dump any pending SCS-mode output. */ if (any_scs_output) { if (dump_scs_line(True, False) < 0) /* XXX: 1st True? */ return -1; } /* Make sure the buffer is clean. */ (void) memset(page_buf, '\0', MAX_BUF * sizeof(ucs4_t)); any_3270_output = 0; baddr = 0; return 0; } ibm-3270-3.3.10ga4/wpr3287/globals.h0000644000175000017500000000563711254565701016127 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include /* Unix standard I/O library */ #include /* Other Unix library functions */ #if !defined(_MSC_VER) /*[*/ #include /* Unix system calls */ #endif /*]*/ #include /* Character classes */ #include /* String manipulations */ #include /* Basic system data types */ #if !defined(_MSC_VER) /*[*/ #include /* System time-related data types */ #endif /*]*/ #include /* C library time functions */ #include "localdefs.h" #if defined(_MSC_VER) /*[*/ #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /*]*/ #if defined(__STDC_ISO_10646__) && !defined(USE_ICONV) /*[*/ #define UNICODE_WCHAR 1 #endif /*]*/ #if !defined(_WIN32) && !defined(UNICODE_WCHAR) /*[*/ #undef USE_ICONV #define USE_ICONV 1 #include #endif /*]*/ #define CN (char *)NULL extern unsigned long cgcsgid; extern unsigned long cgcsgid_dbcs; extern int dbcs; #define Replace(var, value) { Free(var); var = (value); } typedef unsigned int ucs4_t; typedef unsigned short ebc_t; #define CS_MASK 0x03 /* mask for specific character sets */ #define CS_BASE 0x00 /* base character set (X'00') */ #define CS_APL 0x01 /* APL character set (X'01' or GE) */ #define CS_LINEDRAW 0x02 /* DEC line-drawing character set (ANSI) */ #define CS_DBCS 0x03 /* DBCS character set (X'F8') */ #define CS_GE 0x04 /* cs flag for Graphic Escape */ ibm-3270-3.3.10ga4/wpr3287/windirs.c0000644000175000017500000002276711254565675016173 0ustar bastianbastian/* * Copyright (c) 2006-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * windirs.c * A Windows console-based 3270 Terminal Emulator * Find common directory paths. */ #include #include #include #include #include "windirsc.h" /* * If Win2K or later, use SHGetFoldersA from shell32.dll. * Otherwise, use the function below. */ /* Locate the desktop and appdata directories from the Windows registry. */ static int old_get_dirs(char **desktop, char **appdata) { HRESULT hres; HKEY hkey; DWORD index; /* Get some paths from Windows. */ hres = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", 0, KEY_QUERY_VALUE, &hkey); if (hres != ERROR_SUCCESS) { printf("Sorry, I can't figure out where your Desktop or " "Application Data directories are, Windows error " "%ld.\n", hres); return -1; } if (desktop != NULL) { *desktop = malloc(MAX_PATH); if (*desktop == NULL) return -1; (*desktop)[0] = '\0'; } if (appdata != NULL) { *appdata = malloc(MAX_PATH); if (*appdata == NULL) return -1; (*appdata)[0] = '\0'; } /* * Iterate to find Desktop and AppData. * We can't just go for them individually, because we can't use * ReqQueryValueEx on Win98, and ReqQueryValue doesn't work. */ for (index = 0; ; index++) { char name[MAX_PATH]; DWORD nlen = MAX_PATH; char value[MAX_PATH]; DWORD vlen = MAX_PATH; DWORD type; hres = RegEnumValue(hkey, index, name, &nlen, 0, &type, (unsigned char *)value, &vlen); if (hres != ERROR_SUCCESS) break; if (desktop != NULL && !strcmp(name, "Desktop")) strcpy(*desktop, value); else if (appdata != NULL && !strcmp(name, "AppData")) strcpy(*appdata, value); if ((desktop == NULL || (*desktop)[0]) && (appdata == NULL || (*appdata)[0])) break; } RegCloseKey(hkey); if ((desktop != NULL && !(*desktop)[0]) || (appdata != NULL && !(*appdata)[0])) { printf("Sorry, I can't figure out where your Desktop or " "Application Data directories are.\n"); return -1; } return 0; } /* * dll_SHGetFolderPath explicitly pulls SHGetFolderPathA out of shell32.dll, * so we won't get link errors on Win98. */ static HRESULT dll_SHGetFolderPath(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwFlags, LPTSTR pszPath) { static HMODULE handle = NULL; static FARPROC p = NULL; typedef HRESULT (__stdcall *sgfp_fn)(HWND, int, HANDLE, DWORD, LPSTR); if (handle == NULL) { handle = LoadLibrary("shell32.dll"); if (handle == NULL) { fprintf(stderr, "Cannot find shell32.dll\n"); return E_FAIL; } p = GetProcAddress(handle, "SHGetFolderPathA"); if (p == NULL) { fprintf(stderr, "Cannot find SHGetFolderPathA in " "shell32.dll\n"); return E_FAIL; } } return ((sgfp_fn)p)(hwndOwner, nFolder, hToken, dwFlags, pszPath); } /* Locate the desktop and appdata directories via the SHGetFolderPath API. */ static int new_get_dirs(char **desktop, char **appdata) { HRESULT r; if (desktop != NULL) { *desktop = malloc(MAX_PATH); if (*desktop == NULL) return -1; r = dll_SHGetFolderPath(NULL, CSIDL_DESKTOPDIRECTORY, NULL, SHGFP_TYPE_CURRENT, *desktop); if (r != S_OK) { printf("SHGetFolderPath(DESKTOPDIRECTORY) failed: " "0x%x\n", (int)r); fflush(stdout); return -1; } } if (appdata != NULL) { *appdata = malloc(MAX_PATH); if (*appdata == NULL) return -1; r = dll_SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, *appdata); if (r != S_OK) { printf("SHGetFolderPath(APPDATA) failed: 0x%x\n", (int)r); fflush(stdout); return -1; } } return 0; } /* Return the current working directory, always ending with a '\'. */ static char * getcwd_bsl(void) { char *wd; size_t sl; wd = _getcwd(NULL, 0); sl = strlen(wd); if (sl > 0 && wd[sl - 1] != '\\') { char *xwd; xwd = malloc(sl + 2); if (xwd == NULL) return NULL; strcpy(xwd, wd); strcat(xwd, "\\"); free(wd); wd = xwd; } return wd; } /* * Locate the installation, desktop and app-data directories. * Return them in malloc'd buffers, all with trailing backslashes. * Also return a flag indicating that the program was installed. * If returning AppData and the program is installed, make sure that the * directory exists. * * param[in] argv0 program's argv[0] * param[in] appname application name (for app-data) * param[out] instdir installation directory (or NULL) * param[out] desktop desktop directory (or NULL) * param[out] appdata app-data directory (or NULL) * param[out] installed is the program installed? * * Returns 0 for success, -1 for an unrecoverable error. * All returned directories end in '\'. * * Uses the presence of CATF.EXE to decide if the program is installed or * not. If not, appdata is returned as the cwd. */ int get_dirs(char *argv0, char *appname, char **instdir, char **desktop, char **appdata, int *installed) { char **xappdata = appdata; int is_installed = FALSE; if (appdata != NULL || installed != NULL) { HMODULE h; h = LoadLibrary("CATF.EXE"); if (h != NULL) { FreeLibrary(h); is_installed = TRUE; } else { is_installed = FALSE; } if (installed != NULL) *installed = is_installed; } /* * Use arg0 and GetFullPathName() to figure out the installation * directory. */ if (instdir != NULL) { char *bsl; char *tmp_instdir; DWORD rv; bsl = strrchr(argv0, '\\'); if (bsl != NULL) { /* argv0 contains a path. */ tmp_instdir = malloc(strlen(argv0) + 1); if (tmp_instdir == NULL) return -1; strcpy(tmp_instdir, argv0); if (bsl - argv0 > 0 && tmp_instdir[bsl - argv0 - 1] == ':') /* X:\foo */ tmp_instdir[bsl - argv0 + 1] = '\0'; else /* X:\foo\bar */ tmp_instdir[bsl - argv0] = '\0'; rv = GetFullPathName(tmp_instdir, 0, NULL, NULL); *instdir = malloc(rv + 2); if (*instdir == NULL) return -1; if (GetFullPathName(tmp_instdir, rv + 1, *instdir, NULL) == 0) return -1; free(tmp_instdir); /* Make sure instdir ends in '\\'. */ if ((*instdir)[strlen(*instdir) - 1] != '\\') strcat(*instdir, "\\"); } else { *instdir = getcwd_bsl(); if (*instdir == NULL) return -1; } } /* If not installed, app-data is cwd. */ if (appdata != NULL && !is_installed) { *appdata = getcwd_bsl(); if (*appdata == NULL) return -1; /* Keep xxx_get_dirs() from resolving it below. */ xappdata = NULL; } if (desktop != NULL || xappdata != NULL) { OSVERSIONINFO info; char *wsl; /* Figure out what version of Windows this is. */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); return -1; } if ((info.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) || (info.dwMajorVersion < 5)) { /* Use the registry. */ if (old_get_dirs(desktop, xappdata) < 0) return -1; } else { /* Use the API. */ if (new_get_dirs(desktop, xappdata) < 0) return -1; } /* Append a trailing "\" to Desktop. */ if (desktop != NULL && (*desktop)[strlen(*desktop) - 1] != '\\') { wsl = malloc(strlen(*desktop) + 2); if (wsl == NULL) return -1; sprintf(wsl, "%s\\", *desktop); free(*desktop); *desktop = wsl; } /* Append the application name and trailing "\" to AppData. */ if (xappdata != NULL) { size_t sl = strlen(*xappdata); wsl = malloc(sl + 1 + strlen(appname) + 2); if (wsl == NULL) return -1; sprintf(wsl, "%s\\%s\\", *xappdata, appname); free(*xappdata); *xappdata = wsl; /* * Create the AppData directory, in case the program * was installed by a different user. */ _mkdir(*xappdata); } } #if defined(DEBUG) /*[*/ printf("get_dirs: instdir '%s', desktop '%s', appdata '%s'\n", instdir? *instdir: "(none)", desktop? *desktop: "(none)", appdata? *appdata: "(none)"); printf("Enter..."); fflush(stdout); (void) getchar(); #endif /*]*/ return 0; } ibm-3270-3.3.10ga4/wpr3287/unicodec.h0000644000175000017500000000640511254565704016272 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* EBCDIC-to-Unicode options */ #define EUO_NONE 0x00000000 /* no options */ #define EUO_BLANK_UNDEF 0x00000001 /* if undefined, return U+0020 */ #define EUO_UPRIV 0x00000002 /* translate FM/DUP/SUB/EO to UPRIV */ #define EUO_ASCII_BOX 0x00000004 /* use ASCII for box drawing */ extern ucs4_t ebcdic_to_unicode(ebc_t e, unsigned char cs, unsigned flags); extern ucs4_t ebcdic_base_to_unicode(ebc_t e, unsigned flags); extern ebc_t unicode_to_ebcdic(ucs4_t u); extern ebc_t unicode_to_ebcdic_ge(ucs4_t u, Boolean *ge); extern int set_uni(const char *csname, const char **host_codepage, const char **cgcsgid, const char **display_charsets); extern int linedraw_to_unicode(ebc_t e); extern int apl_to_unicode(ebc_t e, unsigned flags); #if !defined(_WIN32) && !defined(UNICODE_WCHAR) /*[*/ extern iconv_t i_u2mb; extern iconv_t i_mb2u; #endif /*]*/ extern int ebcdic_to_multibyte_x(ebc_t ebc, unsigned char cs, char mb[], int mb_len, unsigned flags, ucs4_t *uc); extern int ebcdic_to_multibyte(ebc_t ebc, char mb[], int mb_len); extern int ebcdic_to_multibyte_string(unsigned char *ebc, size_t ebc_len, char mb[], size_t mb_len); extern int mb_max_len(int len); enum me_fail { ME_NONE, /* no error */ ME_INVALID, /* invalid sequence */ ME_SHORT /* incomplete sequence */ }; extern ucs4_t multibyte_to_unicode(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp); extern int multibyte_to_unicode_string(char *mb, size_t mb_len, ucs4_t *ucs4, size_t u_len); extern ebc_t multibyte_to_ebcdic(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp); extern int multibyte_to_ebcdic_string(char *mb, size_t mb_len, unsigned char *ebc, size_t ebc_len, enum me_fail *errorp); extern int unicode_to_multibyte(ucs4_t ucs4, char *mb, size_t mb_len); ibm-3270-3.3.10ga4/wpr3287/charsetc.h0000644000175000017500000000406211254565704016272 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * charsetc.h * Global declarations for charset.c */ extern Boolean charset_changed; extern unsigned long cgcsgid; #if defined(X3270_DBCS) /*[*/ extern unsigned long cgcsgid_dbcs; #endif /*]*/ extern char *default_display_charset; enum cs_result { CS_OKAY, CS_NOTFOUND, CS_BAD, CS_PREREQ, CS_ILLEGAL }; extern enum cs_result charset_init(char *csname); extern char *get_charset_name(void); extern char *get_host_codepage(void); extern void charset_list(void); ibm-3270-3.3.10ga4/wpr3287/ctlrc.h0000644000175000017500000000423211254565701015601 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ctlrc.h * Global declarations for ctlr.c. */ enum pds { PDS_OKAY_NO_OUTPUT = 0, /* command accepted, produced no output */ PDS_OKAY_OUTPUT = 1, /* command accepted, produced output */ PDS_BAD_CMD = -1, /* command rejected */ PDS_BAD_ADDR = -2, /* command contained a bad address */ PDS_FAILED = -3 /* command failed */ }; extern void ctlr_add(ucs4_t c, unsigned char cs, unsigned char gr); extern void ctlr_write(unsigned char buf[], int buflen, Boolean erase); extern int print_eoj(void); extern void print_unbind(void); extern enum pds process_ds(unsigned char *buf, int buflen); extern enum pds process_scs(unsigned char *buf, int buflen); ibm-3270-3.3.10ga4/wpr3287/w3misc.c0000644000175000017500000001222111254565675015701 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * w3misc.c * Miscellaneous Win32 functions. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #error This module is only for Win32. #endif /*]*/ #include #include #include #include #include "w3miscc.h" /* Initialize Winsock. */ int sockstart(void) { static int initted = 0; WORD wVersionRequested; WSADATA wsaData; if (initted) return 0; initted = 1; wVersionRequested = MAKEWORD(2, 2); if (WSAStartup(wVersionRequested, &wsaData) != 0) { fprintf(stderr, "WSAStartup failed: %s\n", win32_strerror(GetLastError())); return -1; } if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2) { fprintf(stderr, "Bad winsock version: %d.%d\n", LOBYTE(wsaData.wVersion), HIBYTE(wsaData.wVersion)); return -1; } return 0; } /* Convert a network address to a string. */ const char * inet_ntop(int af, const void *src, char *dst, socklen_t cnt) { union { struct sockaddr sa; struct sockaddr_in sin; struct sockaddr_in6 sin6; } sa; DWORD ssz; DWORD sz = cnt; memset(&sa, '\0', sizeof(sa)); switch (af) { case AF_INET: sa.sin = *(struct sockaddr_in *)src; /* struct copy */ ssz = sizeof(struct sockaddr_in); break; case AF_INET6: sa.sin6 = *(struct sockaddr_in6 *)src; /* struct copy */ ssz = sizeof(struct sockaddr_in6); break; default: if (cnt > 0) dst[0] = '\0'; return NULL; } sa.sa.sa_family = af; if (WSAAddressToString(&sa.sa, ssz, NULL, dst, &sz) != 0) { if (cnt > 0) dst[0] = '\0'; return NULL; } return dst; } /* Decode a Win32 error number. */ const char * win32_strerror(int e) { static char buffer[4096]; if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, e, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), buffer, sizeof(buffer), NULL) == 0) { sprintf(buffer, "Windows error %d", e); } return buffer; } #if defined(_MSC_VER) /*[*/ /* MinGW has gettimofday(), but MSVC does not. */ #include #define SECS_BETWEEN_EPOCHS 11644473600ULL #define SECS_TO_100NS 10000000ULL /* 10^7 */ int gettimeofday(struct timeval *tv, void *ignored) { FILETIME t; ULARGE_INTEGER u; GetSystemTimeAsFileTime(&t); memcpy(&u, &t, sizeof(ULARGE_INTEGER)); /* Isolate seconds and move epochs. */ tv->tv_sec = (DWORD)((u.QuadPart / SECS_TO_100NS) - SECS_BETWEEN_EPOCHS); tv->tv_usec = (u.QuadPart % SECS_TO_100NS) / 10ULL; return 0; } /* MinGW has getopt(), but MSVC does not. */ char *optarg; int optind = 1, opterr = 1, optopt; static const char *nextchar = NULL; int getopt(int argc, char * const argv[], const char *optstring) { char c; const char *s; if (optind == 1) nextchar = argv[optind++]; do { if (nextchar == argv[optind - 1]) { if (optind > argc) { --optind; /* went too far */ return -1; } if (nextchar == NULL) { --optind; /* went too far */ return -1; } if (!strcmp(nextchar, "--")) return -1; if (*nextchar++ != '-') { --optind; return -1; } } if ((c = *nextchar++) == '\0') nextchar = argv[optind++]; } while (nextchar == argv[optind - 1]); s = strchr(optstring, c); if (s == NULL) { if (opterr) fprintf(stderr, "Unknown option '%c'\n", c); return '?'; } if (*(s + 1) == ':') { if (*nextchar) { optarg = (char *)nextchar; nextchar = argv[optind++]; return c; } else if (optind < argc && argv[optind] != NULL) { optarg = (char *)argv[optind++]; nextchar = argv[optind++]; return c; } else { if (opterr) fprintf(stderr, "Missing value after '%c'\n", c); return -1; } } else return c; } #endif /*]*/ ibm-3270-3.3.10ga4/wpr3287/sfc.h0000644000175000017500000000320211254565704015244 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * sfc.h * Global declarations for sf.c. */ extern enum pds write_structured_field(unsigned char buf[], int buflen); ibm-3270-3.3.10ga4/wpr3287/utf8c.h0000644000175000017500000000344711254565704015535 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utf8c.h * 3270 Terminal Emulator * UTF-8 conversions */ extern char *locale_codeset; extern Boolean is_utf8; extern void set_codeset(char *codeset_name); extern int unicode_to_utf8(ucs4_t ucs4, char *utf8); extern int utf8_to_unicode(const char *utf8, int len, ucs4_t *ucs4); ibm-3270-3.3.10ga4/wpr3287/seec.h0000644000175000017500000000430011254565704015410 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * seec.h * Declarations for see.c * */ #if defined(X3270_TRACE) /*[*/ extern const char *see_aid(unsigned char code); extern const char *see_attr(unsigned char fa); extern const char *see_color(unsigned char setting); extern const char *see_ebc(unsigned char ch); extern const char *see_efa(unsigned char efa, unsigned char value); extern const char *see_efa_only(unsigned char efa); extern const char *see_qcode(unsigned char id); extern const char *unknown(unsigned char value); #else /*][*/ #define see_aid 0 && #define see_attr 0 && #define see_color 0 && #define see_ebc 0 && #define see_efa 0 && #define see_efa_only 0 && #define see_qcode 0 && #define unknown 0 && #endif /*]*/ ibm-3270-3.3.10ga4/wpr3287/unicode_dbcs.c0000644000175000017500000711141411254565704017121 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * unicode.c * A Windows console-based 3270 Terminal Emulator * DBCS EBCDIC/Unicode translation functions */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include "3270ds.h" #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" /* * DBCS EBCDIC-to-Unicode translation tables. */ #if defined(X3270_DBCS) /*[*/ typedef struct { char *name; const char *codepage; const char *display_charset; const char *u2ebc[512]; /* Unicode to EBCDIC vectors */ const char *ebc2u[512]; /* EBCDIC to Unicode vectors */ } uni16_t; static uni16_t uni16[] = { { "cp930", "0x080b012c" /* 2059, 300 */, "jisx0208.1983-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-300_P110-1997 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x6a\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x43\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x00\x00\x44\x4a\x00\x00\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x43\x77\x43\x78\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x73\x00\x00\x44\xee\x44\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6e\x00\x00\x43\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x43\x70\x00\x00\x43\x4e\x43\x71\x00\x00\x00\x00\x00\x00\x43\x4f\x43\x64\x00\x00\x00\x00\x43\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5f\x00\x00\x00\x00\x43\x61\x44\x4d\x00\x00\x43\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6c\x43\x6d\x43\x6b\x43\x6a\x43\x62\x43\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x43\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x43\x5d\x43\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x43\x68\x43\x69\x00\x00\x00\x00\x43\x66\x43\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ "\x43\x7c\x43\xb7\x43\x7d\x43\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7e\x00\x00\x00\x00\x43\xb9\x43\x7f\x00\x00\x00\x00\x43\xe1\x43\xb1\x00\x00\x00\x00\x43\xe3\x43\xb0\x00\x00\x00\x00\x43\xe2\x43\xb2\x43\xee\x00\x00\x00\x00\x43\xe9\x00\x00\x00\x00\x43\xe4\x43\xb4\x43\xf0\x00\x00\x00\x00\x43\xeb\x00\x00\x00\x00\x43\xe6\x43\xb3\x00\x00\x00\x00\x43\xea\x43\xef\x00\x00\x00\x00\x43\xe5\x43\xb5\x00\x00\x00\x00\x43\xec\x43\xf1\x00\x00\x00\x00\x43\xe7\x43\xb6\x00\x00\x00\x00\x43\xed\x00\x00\x00\x00\x43\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x76\x00\x00\x00\x00\x43\x75\x00\x00\x43\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x45\x41\x4b\xce\x00\x00\x45\x47\x00\x00\x00\x00\x00\x00\x45\x4d\x49\xd3\x45\x43\x45\x5e\x45\x5f\x00\x00\x46\xaf\x47\x89\x00\x00\x56\x42\x4d\xec\x00\x00\x00\x00\x4f\x97\x56\x43\x46\x9b\x57\x75\x4d\x56\x50\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x62\x00\x00\x00\x00\x48\x83\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7c\x00\x00\x56\x44\x00\x00\x56\x45\x00\x00\x00\x00\x45\x5c\x00\x00\x00\x00\x00\x00\x56\x46\x4c\xb8\x00\x00\x00\x00\x00\x00\x56\x47\x00\x00\x46\x7a\x48\xab\x00\x00\x47\x62\x54\xc8\x00\x00\x00\x00\x56\x48\x00\x00\x00\x00\x56\x49\x4b\x9f\x00\x00\x45\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xd8\x00\x00\x55\xa9\x54\xa5\x4f\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd0\x56\x4a\x49\x47\x56\x4b\x4b\xbd\x00\x00\x00\x00\x00\x00\x45\x49\x4e\xb5\x47\x49\x00\x00\x00\x00\x56\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbf\x00\x00\x4a\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x70\x00\x00", /* 4e80 */ "\x47\xc0\x00\x00\x56\x4d\x00\x00\x00\x00\x56\x4e\x4b\xb1\x00\x00\x47\xc2\x48\x96\x56\x4f\x45\xce\x45\x42\x00\x00\x56\x50\x00\x00\x00\x00\x49\x9d\x4b\x74\x00\x00\x45\x45\x45\x6d\x00\x00\x00\x00\x4b\xe4\x50\xe8\x00\x00\x55\xdc\x48\x67\x00\x00\x56\x52\x51\x67\x56\x53\x4c\xce\x56\x54\x00\x00\x47\x8e\x4f\x7f\x4f\xfa\x00\x00\x4b\xac\x00\x00\x00\x00\x4b\x73\x45\x75\x4e\x52\x49\x9c\x00\x00\x56\x55\x00\x00\x00\x00\x56\x56\x00\x00\x00\x00\x56\x57\x00\x00\x00\x00\x00\x00\x45\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd9\x47\x76\x56\x5c\x00\x00\x56\x5a\x00\x00\x56\x5b\x50\x85\x00\x00\x00\x00\x45\xe0\x48\x4b\x00\x00\x56\x59\x56\x58\x4b\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x54\x65\x48\xb5\x47\x55\x56\x5e\x47\x5d\x48\xa2\x00\x00\x00\x00\x00\x00\x44\x5c\x56\x5f\x56\x61\x00\x00\x56\x5d\x00\x00\x45\x9a\x49\xc3\x46\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x60\x4d\x71\x00\x00\x4d\xed\x00\x00\x48\x69\x00\x00\x00\x00\x00\x00\x48\xb2\x53\x41\x00\x00\x00\x00\x00\x00\x4a\x55\x56\x62\x00\x00\x00\x00\x00\x00", /* 4f00 */ "\x56\x65\x47\xd2\x00\x00\x56\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x63\x45\xb2\x00\x00\x00\x00\x4d\x99\x4e\x9f\x4a\x83\x50\xf6\x4a\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xbd\x00\x00\x56\x64\x48\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xa6\x56\x68\x00\x00\x00\x00\x00\x00\x49\xc9\x00\x00\x54\x4a\x00\x00\x46\xf4\x56\x6a\x50\x8a\x00\x00\x4b\xbc\x54\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xdf\x00\x00\x00\x00\x4e\xfe\x56\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xc8\x48\xa4\x46\xe0\x45\x76\x4c\xe6\x00\x00\x46\x96\x00\x00\x47\x70\x56\x6e\x56\x6b\x00\x00\x49\xc1\x56\x67\x56\x6f\x45\x94\x56\x69\x56\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7c\x56\x7a\x00\x00\x00\x00\x48\x76\x00\x00\x4b\x94\x51\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x56\x77\x54\x62\x00\x00\x00\x00\x48\xb6", /* 4f80 */ "\x00\x00\x00\x00\x00\x00\x4f\x98\x00\x00\x00\x00\x56\x7d\x00\x00\x56\x72\x00\x00\x56\x71\x4a\x46\x00\x00\x4f\xc2\x00\x00\x56\x73\x00\x00\x4f\x8d\x56\x70\x00\x00\x56\x7b\x00\x00\x56\x7e\x00\x00\x56\x76\x00\x00\x56\x74\x48\xbc\x00\x00\x4a\x9e\x00\x00\x00\x00\x52\xec\x47\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x78\x00\x00\x56\x75\x53\xb9\x53\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8c\x55\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4c\x00\x00\x00\x00\x48\x51\x4a\x6a\x54\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x52\x94\x46\x60\x00\x00\x00\x00\x56\x86\x56\x80\x00\x00\x56\x85\x56\x83\x00\x00\x00\x00\x56\x7f\x00\x00\x00\x00\x4e\x97\x56\x81\x00\x00\x56\x84\x56\x82\x00\x00\x45\xaa\x00\x00\x53\xc4\x52\xec\x45\xa5\x00\x00\x4b\x4a\x56\x87\x56\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xde\x56\x96\x00\x00\x00\x00\x00\x00\x4c\xe1\x00\x00\x4d\xb1\x51\xf8\x00\x00\x50\xf9\x00\x00\x4e\x67\x00\x00\x00\x00\x00\x00\x56\x95\x56\x94", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8f\x56\x99\x00\x00\x00\x00\x45\xd6\x00\x00\x49\xfa\x00\x00\x4a\xc4\x00\x00\x56\xa1\x00\x00\x56\x97\x4b\x6a\x00\x00\x56\x8c\x00\x00\x53\x43\x00\x00\x00\x00\x4c\xae\x56\x89\x00\x00\x00\x00\x00\x00\x56\x98\x4a\xd0\x00\x00\x56\x90\x56\x91\x55\x69\x48\x7d\x56\x8e\x52\xf1\x00\x00\x56\x8b\x56\x92\x56\x8d\x4d\x51\x56\x93\x4f\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x63\x00\x00\x00\x00\x52\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8a\x00\x00\x56\xa4\x56\x9a\x00\x00\x00\x00\x56\xa2\x56\x9b\x56\x9e\x4d\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x49\x56\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x56\x9c\x56\xa0\x00\x00\x00\x00\x00\x00\x56\x9f\x00\x00\x4e\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xa5\x00\x00\x00\x00\x00\x00\x56\xa3\x00\x00\x54\xd2\x00\x00\x49\x43\x4f\x95\x50\xc3\x00\x00\x56\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x50\x59\x00\x00\x00\x00", /* 5080 */ "\x56\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x56\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xe7\x00\x00\x00\x00\x00\x00\x4f\xc3\x00\x00\x00\x00\x56\xa8\x00\x00\x00\x00\x00\x00\x50\x9c\x46\xac\x56\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x43\x54\xda\x00\x00\x00\x00\x00\x00\x00\x00\x56\xad\x56\xb0\x56\xab\x4b\x58\x00\x00\x4c\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x43\x00\x00\x00\x00\x00\x00\x56\xb1\x00\x00\x00\x00\x4f\xc9\x00\x00\x00\x00\x00\x00\x56\xae\x56\xaf\x00\x00\x00\x00\x48\xec\x00\x00\x4b\xba\x00\x00\x55\xad\x00\x00\x00\x00\x00\x00\x4a\xbb\x52\xd4\x00\x00\x56\xb5\x00\x00\x4d\x82\x00\x00\x00\x00\x00\x00\x56\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb7\x00\x00\x56\xb4\x00\x00\x4e\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb6\x56\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb2\x56\xba\x00\x00\x00\x00\x00\x00\x56\xb9\x00\x00\x55\x78\x00\x00\x00\x00\x00\x00\x00\x00", /* 5100 */ "\x49\xca\x56\xbc\x56\xbd\x00\x00\x45\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x56\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6f\x00\x00\x56\xc0\x56\xbf\x56\xc1\x00\x00\x52\x90\x00\x00\x56\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa2\x00\x00\x56\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc4\x00\x00\x00\x00\x56\xc3\x56\xc6\x56\xc5\x00\x00\x00\x00\x56\xc7\x56\xc8\x4c\x91\x00\x00\x46\x95\x4b\xe8\x48\xc9\x4d\xf3\x55\x5a\x47\xa2\x45\x9e\x56\xc9\x47\x9e\x56\xca\x4b\x56\x50\x50\x00\x00\x46\x9f\x00\x00\x56\xcb\x00\x00\x56\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4b\x00\x00\x51\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xcd\x00\x00\x56\xce\x46\x65\x00\x00\x00\x00\x46\xb1\x56\xcf\x56\xd0\x45\x48\x46\xbb\x45\x46\x56\xd1\x00\x00\x00\x00\x47\xb3\x00\x00\x00\x00\x00\x00\x46\x49\x4f\x67\x47\xaf\x47\xc9\x00\x00\x00\x00\x00\x00\x48\xf4\x00\x00\x00\x00\x00\x00", /* 5180 */ "\x56\xd2\x00\x00\x56\xd3\x00\x00\x00\x00\x45\x8e\x46\x45\x00\x00\x00\x00\x56\xd6\x4e\xa1\x00\x00\x56\xd5\x48\xeb\x00\x00\x56\xd7\x61\x9d\x56\xd8\x4f\x8f\x56\xd9\x00\x00\x56\xda\x56\xdb\x52\x7e\x00\x00\x48\xc4\x00\x00\x00\x00\x00\x00\x56\xdc\x00\x00\x00\x00\x4e\x7b\x00\x00\x56\xdf\x00\x00\x56\xdd\x54\x67\x56\xde\x00\x00\x48\x78\x56\xe0\x56\xe1\x56\xe2\x4b\xde\x00\x00\x00\x00\x00\x00\x56\xe6\x56\xe4\x56\xe5\x56\xe3\x50\xc9\x56\xe7\x51\x46\x48\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xe9\x56\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xdc\x56\xea\x4f\x80\x00\x00\x00\x00\x56\xeb\x00\x00\x55\xf9\x53\x44\x4b\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x77\x00\x00\x00\x00\x00\x00\x00\x00\x56\xec\x68\x84\x4e\xd9\x00\x00\x00\x00\x56\xed\x4d\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x48\xe6\x55\x8a\x00\x00\x56\xee\x54\x9e\x00\x00\x56\xef\x56\xf0\x00\x00\x00\x00\x56\xf1\x51\xac\x00\x00\x00\x00\x00\x00\x56\xf2\x51\xec\x00\x00\x50\xcf\x50\xe6\x45\x9b\x00\x00\x00\x00\x4b\xb6\x56\xf3\x00\x00", /* 5200 */ "\x4c\x50\x00\x00\x00\x00\x4f\x44\x56\xf4\x00\x00\x45\xb4\x47\x65\x4b\x9b\x00\x00\x4c\xd7\x56\xf5\x00\x00\x00\x00\x54\xe3\x00\x00\x00\x00\x4c\x52\x00\x00\x00\x00\x56\xf6\x56\xf7\x00\x00\x4b\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x5c\x46\xdd\x00\x00\x56\xf8\x00\x00\x45\xbc\x56\xf9\x00\x00\x00\x00\x00\x00\x56\xfa\x00\x00\x4c\xdd\x00\x00\x00\x00\x56\xfb\x00\x00\x00\x00\x46\xc4\x48\xcf\x4b\x6b\x56\xfc\x4b\xc0\x4b\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x79\x56\xfd\x00\x00\x00\x00\x47\x4d\x00\x00\x00\x00\x4a\x90\x56\xfe\x51\xae\x45\xaf\x00\x00\x57\x41\x00\x00\x00\x00\x00\x00\x00\x00\x57\x43\x00\x00\x51\x99\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc7\x00\x00\x54\x81\x57\x42\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xd3\x47\x66\x54\x81\x00\x00\x00\x00\x00\x00\x57\x48\x57\x45\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4e\x4d\x85\x57\x44\x47\xd6\x57\x46\x57\x47\x4b\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x4a\x00\x00\x57\x49", /* 5280 */ "\x00\x00\x00\x00\x00\x00\x55\xd6\x00\x00\x00\x00\x00\x00\x49\xf0\x57\x4c\x51\x85\x00\x00\x00\x00\x00\x00\x57\x4b\x00\x00\x00\x00\x00\x00\x57\x4e\x57\x4d\x00\x00\x55\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf7\x57\x4f\x00\x00\x00\x00\x48\x70\x45\x9f\x00\x00\x00\x00\x4e\x68\x00\x00\x00\x00\x57\x50\x00\x00\x00\x00\x46\x71\x4a\x64\x54\xc6\x57\x51\x57\x52\x00\x00\x5f\xaa\x00\x00\x4d\x92\x00\x00\x00\x00\x48\xa9\x57\x54\x00\x00\x00\x00\x00\x00\x49\x78\x00\x00\x00\x00\x57\x53\x00\x00\x55\x6a\x00\x00\x57\x56\x57\x55\x00\x00\x54\xb1\x00\x00\x4e\xef\x00\x00\x46\x9c\x00\x00\x48\xce\x00\x00\x00\x00\x00\x00\x57\x57\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd6\x00\x00\x00\x00\x45\xe4\x00\x00\x53\x92\x4b\x9a\x46\xed\x00\x00\x57\x58\x00\x00\x45\xb5\x57\x59\x4a\xe1\x57\x5c\x00\x00\x47\xee\x57\x5a\x49\x9f\x00\x00\x57\x5b\x4c\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7a\x57\x5d\x00\x00\x57\x5e\x00\x00\x00\x00\x57\x5f\x57\x60\x54\x70\x00\x00\x00\x00\x00\x00\x51\xe9\x52\x97", /* 5300 */ "\x57\x61\x4f\x5b\x4e\xcb\x00\x00\x00\x00\x4a\xa8\x57\x62\x57\x63\x57\x64\x00\x00\x00\x00\x00\x00\x00\x00\x57\x66\x00\x00\x57\x68\x57\x67\x00\x00\x00\x00\x00\x00\x00\x00\x57\x69\x45\x90\x45\x5a\x00\x00\x54\x57\x57\x6a\x00\x00\x00\x00\x51\xb7\x00\x00\x00\x00\x4e\x6b\x4d\x4d\x00\x00\x57\x6c\x57\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xed\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6d\x00\x00\x57\x6e\x00\x00\x57\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x57\x70\x4f\xd1\x45\x54\x4a\x87\x00\x00\x00\x00\x00\x00\x50\xf1\x57\x71\x45\x4a\x00\x00\x45\x4c\x00\x00\x57\x72\x57\x73\x4e\x47\x45\xdf\x57\x74\x47\x90\x00\x00\x00\x00\x57\x76\x00\x00\x00\x00\x00\x00\x53\xad\x4a\xf2\x49\x96\x47\xd7\x00\x00\x00\x00\x45\x59\x48\xe3\x00\x00\x45\xf6\x00\x00\x51\xc0\x00\x00\x57\x79\x00\x00\x49\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xdb\x00\x00\x00\x00\x57\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x57\x7b\x4c\x82\x47\x99\x4b\x91\x57\x7c\x4b\x6d\x4a\xa4\x4c\xf5\x00\x00\x57\x7d\x4e\x79\x00\x00\x00\x00\x57\x7e\x00\x00\x00\x00\x00\x00\x53\xe2", /* 5380 */ "\x00\x00\x00\x00\x57\x7f\x00\x00\x53\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x80\x00\x00\x00\x00\x57\x81\x00\x00\x4f\x55\x00\x00\x49\x42\x00\x00\x00\x00\x00\x00\x00\x00\x45\x74\x57\x82\x00\x00\x00\x00\x00\x00\x00\x00\x57\x84\x57\x83\x00\x00\x51\x78\x53\x67\x00\x00\x00\x00\x00\x00\x53\xb7\x57\x85\x00\x00\x57\x86\x00\x00\x57\x87\x4c\x8e\x00\x00\x00\x00\x57\x88\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd2\x57\x89\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf5\x50\xa5\x48\x5c\x46\xd4\x4b\x71\x47\xf9\x47\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa5\x00\x00\x46\xa6\x48\x4c\x00\x00\x50\xf5\x00\x00\x55\xb2\x00\x00\x57\x8b\x00\x00\x57\x8c\x00\x00\x51\x94\x53\xf5\x45\x88\x45\xd4\x4c\x8b\x00\x00\x00\x00\x57\x91\x4f\x71\x4e\x41\x4d\xd5\x4f\x86\x57\x92\x57\x90\x47\xc6\x47\x78\x50\x42\x47\xd9\x48\x5a\x00\x00\x00\x00\x4f\x59\x48\xe2\x45\xf0\x00\x00\x57\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x57\x94\x00\x00\x55\xea\x47\xba\x00\x00\x00\x00\x00\x00\x45\xa0\x45\x7e\x53\xd3\x55\xbc\x46\x6d\x45\xf3\x51\xaf\x50\xc6\x4e\xb2\x46\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xcf\x00\x00\x57\x9d\x00\x00\x50\x7a\x53\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4f\x00\x00\x00\x00\x57\x9c\x00\x00\x49\xcb\x57\x97\x57\x98\x57\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x9b\x00\x00\x4b\x98\x49\xc4\x00\x00\x53\xe5\x57\x99\x57\x95\x47\xf6\x00\x00\x57\x96\x00\x00\x4b\x50\x00\x00\x00\x00\x00\x00\x50\x73\x00\x00\x4f\x56\x4a\xee\x49\x54\x00\x00\x00\x00\x00\x00\x57\x9e\x00\x00\x00\x00\x50\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xa1\x00\x00\x54\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa5\x57\xa3\x00\x00\x47\x7f\x00\x00\x57\xa0\x57\xaa\x57\xa4\x00\x00\x00\x00\x00\x00\x57\xa7\x4a\xf6\x49\xb0\x00\x00\x00\x00", /* 5480 */ "\x57\xa8\x00\x00\x00\x00\x00\x00\x57\xab\x00\x00\x57\xad\x00\x00\x00\x00\x00\x00\x57\xae\x4f\x50\x45\x7a\x00\x00\x57\xa1\x57\x9f\x57\xac\x00\x00\x57\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb2\x00\x00\x57\xbc\x57\xb4\x00\x00\x00\x00\x57\xb9\x57\xbd\x00\x00\x57\xba\x57\xb5\x00\x00\x00\x00\x57\xb1\x00\x00\x00\x00\x4c\xde\x53\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb3\x00\x00\x00\x00\x00\x00\x57\xb0\x52\xb1\x57\xbe\x00\x00\x4e\xf9\x45\xd0\x57\xbb\x00\x00\x57\xb6\x00\x00\x00\x00\x57\xaf\x57\xb8\x4a\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xcb\x57\xc7\x00\x00\x00\x00\x57\xbf\x57\xc1\x00\x00\x55\x68\x55\xf0\x00\x00\x00\x00\x00\x00\x57\xc6\x57\xc5\x00\x00\x00\x00\x00\x00\x47\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7c\x00\x00\x00\x00\x57\xc4\x00\x00\x57\xc0", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdb\x00\x00\x51\xb8\x4f\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x4b\xab\x00\x00\x00\x00\x00\x00\x57\xc3\x00\x00\x54\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcc\x4b\xe0\x00\x00\x4d\x43\x00\x00\x57\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x57\xd1\x57\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x54\x78\x00\x00\x57\xc9\x00\x00\x00\x00\x00\x00\x53\x83\x57\xce\x46\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcb\x00\x00\x00\x00\x46\xe4\x00\x00\x00\x00\x00\x00\x47\xe4\x00\x00\x00\x00\x57\xcf\x57\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcd\x57\xd3\x54\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x57\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xd8\x57\xdd\x00\x00\x57\xd9\x00\x00", /* 5580 */ "\x57\xd5\x00\x00\x00\x00\x57\xdf\x46\xb3\x00\x00\x57\xde\x57\xe1\x00\x00\x52\x53\x57\xd6\x55\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xda\x57\xd4\x52\xb5\x00\x00\x45\xd1\x54\x75\x57\xdb\x57\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xd3\x57\xe2\x57\xe0\x51\x68\x4d\x6d\x4c\x5f\x00\x00\x57\xdc\x00\x00\x4e\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe5\x57\xe3\x00\x00\x58\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa2\x00\x00\x57\xe6\x00\x00\x00\x00\x57\xe4\x00\x00\x00\x00\x00\x00\x4b\x5e\x57\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xeb\x00\x00\x57\xe9\x00\x00\x00\x00\x00\x00\x57\xee\x57\xed\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x63\x00\x00\x00\x00\x47\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xea\x00\x00\x57\xec\x54\xec\x50\xf3\x00\x00\x00\x00\x57\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf8\x00\x00\x50\xca\x57\xf3\x00\x00\x54\x7f\x00\x00\x57\xf2\x00\x00\x57\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x62\x00\x00\x57\xf0\x00\x00\x57\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf6\x00\x00\x00\x00\x00\x00\x45\xfc\x00\x00\x57\xfa\x57\xf5\x57\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6d\x00\x00\x00\x00\x00\x00\x55\xf1\x00\x00\x55\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5680 */ "\x57\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf7\x55\xd8\x00\x00\x00\x00\x58\x41\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x42\x00\x00\x51\x90\x00\x00\x00\x00\x58\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x46\x00\x00\x58\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x49\x00\x00\x00\x00\x00\x00\x58\x4c\x58\x4a\x58\x48\x58\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x58\x47\x00\x00\x51\x90\x00\x00\x00\x00\x00\x00\x58\x4d\x00\x00\x00\x00\x58\x4f\x00\x00\x58\x4e\x00\x00\x00\x00\x00\x00\x58\x50\x56\xd4\x00\x00\x50\x65\x45\x44\x00\x00\x00\x00\x46\xa9\x00\x00\x4a\x49\x00\x00\x00\x00\x47\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x51\x00\x00\x4b\x44\x00\x00\x4a\xfa\x47\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x52\x4a\x94\x00\x00\x00\x00\x45\x8f\x00\x00\x58\x53", /* 5700 */ "\x52\x66\x00\x00\x00\x00\x53\xcf\x58\x54\x00\x00\x00\x00\x00\x00\x58\x56\x58\x55\x00\x00\x51\xbd\x00\x00\x58\x57\x00\x00\x4f\x49\x00\x00\x00\x00\x47\xe1\x54\xe7\x00\x00\x00\x00\x58\x5a\x00\x00\x58\x59\x00\x00\x00\x00\x00\x00\x58\x5b\x00\x00\x00\x00\x46\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5c\x47\x82\x47\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x49\xe6\x00\x00\x00\x00\x45\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd1\x58\x5d\x00\x00\x00\x00\x58\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x58\x61\x00\x00\x45\xec\x00\x00\x00\x00\x00\x00\x00\x00\x49\xae\x00\x00\x00\x00\x4c\x55\x00\x00\x00\x00\x00\x00\x58\x5e\x58\x62\x4e\x8d\x4e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x65\x00\x00\x00\x00\x53\xa6\x58\x63\x51\xc4\x00\x00\x00\x00\x53\x98\x49\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x66", /* 5780 */ "\x00\x00\x00\x00\x4b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x64\x58\x67\x00\x00\x46\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x69\x00\x00\x54\x66\x47\xce\x58\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x6d\x00\x00\x58\x6c\x00\x00\x00\x00\x00\x00\x53\xcd\x00\x00\x00\x00\x58\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x71\x00\x00\x00\x00\x58\x6e\x00\x00\x00\x00\x58\x6f\x58\x73\x58\x70\x00\x00\x00\x00\x4e\xac\x00\x00\x00\x00\x45\xdb\x00\x00\x00\x00\x00\x00\x58\x74\x58\x75\x58\x72\x00\x00\x58\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf4\x00\x00\x00\x00\x48\xe9\x51\x7e\x00\x00\x00\x00\x58\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x48\x00\x00\x00\x00\x4d\x57\x00\x00\x4d\xac\x46\xf1\x00\x00\x46\xa3\x00\x00\x00\x00\x00\x00", /* 5800 */ "\x46\x9d\x00\x00\x49\x7f\x00\x00\x00\x00\x4a\xe7\x53\x71\x00\x00\x00\x00\x00\x00\x58\x78\x58\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xb0\x00\x00\x00\x00\x00\x00\x58\x7b\x00\x00\x00\x00\x00\x00\x53\xa7\x00\x00\x00\x00\x00\x00\x58\x7c\x00\x00\x00\x00\x4b\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xac\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x53\x50\xa4\x49\xb8\x00\x00\x00\x00\x45\xd9\x54\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7c\x00\x00\x00\x00\x58\x80\x00\x00\x00\x00\x53\x9f\x4b\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x53\x58\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc6\x58\x81\x00\x00\x4c\xcb\x00\x00\x00\x00\x48\x6a\x52\xf8\x4f\x6f\x46\x57\x00\x00\x00\x00\x00\x00\x53\xc1\x00\x00\x00\x00\x4f\x5e\x58\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x43\x00\x00\x4f\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x58\x83\x00\x00\x58\x86\x00\x00\x00\x00\x4d\x89\x00\x00\x00\x00\x00\x00\x58\x84\x00\x00\x00\x00\x00\x00\x00\x00\x52\x79\x00\x00", /* 5880 */ "\x00\x00\x00\x00\x00\x00\x4a\x95\x00\x00\x58\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbe\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x51\x50\x00\x00\x58\x8a\x58\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xfc\x00\x00\x00\x00\x58\x88\x00\x00\x00\x00\x58\x8b\x00\x00\x00\x00\x00\x00\x58\x8c\x52\x89\x00\x00\x00\x00\x00\x00\x00\x00\x58\x89\x58\x8d\x58\x8e\x55\x52\x00\x00\x00\x00\x54\x88\x00\x00\x00\x00\x4b\x95\x00\x00\x00\x00\x00\x00\x58\x8f\x00\x00\x4e\x8e\x00\x00\x00\x00\x4e\xc8\x00\x00\x51\x96\x00\x00\x00\x00\x00\x00\x00\x00\x58\x91\x00\x00\x58\x90\x00\x00\x55\xb9\x00\x00\x58\x92\x58\x94\x58\x93\x00\x00\x00\x00\x58\x96\x00\x00\x58\x95\x58\x97\x00\x00\x00\x00\x00\x00\x00\x00\x58\x98\x58\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x7d\x51\x4f\x00\x00\x4c\x9f\x58\x9a\x49\x6c\x4e\xb0\x47\x75\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9b\x00\x00\x58\x9c\x50\x77\x58\x9d\x58\x9e\x52\x75\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x58\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x6f\x58\xa0\x58\xa1\x00\x00\x00\x00\x00\x00\x49\x7e\x58\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc3\x46\x94\x00\x00\x52\xc8\x54\xdd\x45\xfe\x58\xa3\x48\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8b\x00\x00\x00\x00\x58\xa5\x00\x00\x45\x5b\x00\x00\x46\x8a\x45\xab\x45\x73\x58\xa6\x58\xa7\x47\x92\x00\x00\x00\x00\x49\x41\x58\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x51\x47\x58\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf2\x00\x00\x00\x00\x4d\x69\x45\xe6\x4d\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8f\x4c\x53\x58\xac\x4c\x64\x00\x00\x58\xad\x52\x84\x58\xab\x00\x00\x55\x83\x58\xaf\x00\x00\x58\xae\x58\xb0\x00\x00\x58\xb1\x00\x00\x00\x00\x58\xb4\x00\x00\x58\xb3\x58\xb2\x00\x00\x46\xe5\x00\x00\x58\xb5\x4e\xca\x58\xb7\x4e\xbb\x00\x00\x58\xb6\x00\x00\x4e\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x46\x99\x4d\x90\x00\x00\x00\x00\x00\x00\x58\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x46\x9e\x00\x00\x00\x00", /* 5980 */ "\x00\x00\x58\xb9\x4b\xf8\x51\xa2\x55\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x43\x00\x00\x00\x00\x58\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x95\x00\x00\x00\x00\x53\xd1\x00\x00\x00\x00\x4a\x66\x00\x00\x58\xbb\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xbd\x58\xbe\x4d\x9e\x00\x00\x00\x00\x50\xec\x00\x00\x00\x00\x00\x00\x53\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xdc\x58\xc0\x49\xa3\x00\x00\x00\x00\x53\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc1\x00\x00\x00\x00\x4c\xc1\x00\x00\x49\x90\x00\x00\x00\x00\x00\x00\x00\x00\x54\x9c\x53\xf2\x00\x00\x4f\xf1\x48\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc3\x58\xc4\x00\x00\x51\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x55\x55\xde\x00\x00\x58\xc2\x00\x00\x55\x8c\x4a\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x79\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb9\x00\x00\x00\x00\x00\x00\x4b\x42", /* 5a00 */ "\x00\x00\x4c\x65\x00\x00\x55\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x54\x00\x00\x58\xc9\x00\x00\x58\xc8\x00\x00\x00\x00\x58\xc6\x52\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc5\x00\x00\x00\x00\x00\x00\x54\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xce\x58\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x98\x00\x00\x00\x00\x00\x00\x58\xcb\x50\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xcc\x00\x00\x00\x00\x58\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd0\x00\x00\x00\x00\x00\x00\x49\x6f\x00\x00\x00\x00\x00\x00\x58\xd1\x00\x00\x58\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x54", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd2\x48\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd3\x58\xd8\x58\xd4\x00\x00\x00\x00\x4e\x89\x58\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe0\x00\x00\x58\xd6\x4e\xc3\x00\x00\x00\x00\x00\x00\x58\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xdd\x58\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x67\x00\x00\x58\xd9\x00\x00\x00\x00\x58\xdb\x00\x00\x00\x00\x58\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xde\x58\xdf\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8b\x00\x00\x58\xe1\x58\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe4\x00\x00\x52\xea\x00\x00\x00\x00\x00\x00\x55\xe8\x00\x00\x58\xe3\x00\x00\x00\x00\x00\x00\x58\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe6\x00\x00\x58\xe9\x00\x00\x00\x00\x58\xe7\x00\x00\x58\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x64\x58\xea\x00\x00\x00\x00\x4b\xd9\x58\xeb\x58\xec\x48\xf2\x4a\x41\x00\x00\x52\x58\x58\xee\x4f\xf2\x45\xf4\x00\x00\x4f\x83\x00\x00\x00\x00\x00\x00\x4a\xec\x4e\xaf\x58\xef\x45\xbe\x00\x00\x00\x00\x58\xf0\x00\x00\x4c\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf1\x59\x5b\x00\x00\x58\xf2\x00\x00\x58\xf3\x00\x00\x00\x00\x58\xf4\x00\x00\x58\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b80 */ "\x58\xf6\x00\x00\x00\x00\x58\xf7\x00\x00\x48\x6f\x00\x00\x46\xd5\x46\xf0\x45\xa8\x00\x00\x52\x4d\x48\xc5\x4c\x75\x00\x00\x46\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5c\x00\x00\x47\xdd\x49\xa2\x4d\x64\x45\xe7\x50\xab\x4d\x8b\x49\x4d\x00\x00\x45\xed\x00\x00\x00\x00\x4a\xde\x49\x8f\x47\xb8\x4f\x7a\x58\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x92\x00\x00\x4e\xd4\x00\x00\x00\x00\x49\x68\x50\x78\x52\xef\x46\x86\x00\x00\x58\xf9\x48\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x82\x58\xfc\x00\x00\x4f\xe9\x58\xfa\x49\xdf\x4a\x84\x4a\x56\x58\xfb\x00\x00\x58\xfd\x00\x00\x00\x00\x45\xac\x00\x00\x00\x00\x00\x00\x59\x41\x00\x00\x4b\x81\x55\xf4\x52\x44\x00\x00\x00\x00\x00\x00\x59\x42\x00\x00\x00\x00\x47\xf8\x00\x00\x4b\x59\x59\x43\x4b\x93\x00\x00\x52\xb8\x59\x46\x00\x00\x59\x45\x59\x47\x51\xfc\x4f\xa9\x5c\x7e\x49\x87\x00\x00\x59\x48\x59\x44\x00\x00\x4c\x7a\x00\x00\x59\x49\x00\x00\x00\x00\x59\x4a\x00\x00\x55\x56\x59\x4b\x00\x00\x4b\x60\x00\x00\x46\xa0\x00\x00\x00\x00\x00\x00\x46\x56\x46\xb2", /* 5c00 */ "\x00\x00\x4d\x76\x49\xfb\x00\x00\x49\x8a\x59\x4c\x49\x59\x59\x4d\x59\x4e\x51\x89\x4c\xef\x4d\x5f\x00\x00\x59\x4f\x48\xae\x45\x5d\x00\x00\x48\x4a\x00\x00\x59\x50\x00\x00\x00\x00\x53\xc0\x00\x00\x00\x00\x00\x00\x48\x71\x00\x00\x00\x00\x00\x00\x59\x51\x00\x00\x59\x52\x00\x00\x59\x53\x00\x00\x53\xae\x00\x00\x00\x00\x00\x00\x59\x54\x00\x00\x00\x00\x00\x00\x00\x00\x68\x80\x00\x00\x00\x00\x00\x00\x4b\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x55\x51\x5d\x4c\x6b\x49\xce\x4a\x86\x4f\xb9\x45\xc8\x4c\xc6\x48\x8b\x59\x56\x00\x00\x00\x00\x00\x00\x48\x5e\x59\x57\x00\x00\x4d\x94\x00\x00\x4d\xa7\x45\xe9\x00\x00\x55\xba\x59\x58\x54\x43\x59\x5a\x54\xb2\x00\x00\x59\x59\x00\x00\x48\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x43\x00\x00\x00\x00\x47\x6d\x00\x00\x53\xfb\x55\xc0\x55\xc0\x00\x00\x4a\x8e\x4c\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x5c\x00\x00\x59\x5d\x4f\xdd\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\x00\x00\x59\x5e\x00\x00\x00\x00\x59\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x60\x00\x00\x00\x00\x00\x00\x47\x4a\x52\x5a\x00\x00\x00\x00\x59\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x59\x67\x00\x00\x54\xb9\x45\xbf\x00\x00\x59\x63\x50\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x52\x62\x00\x00\x4d\x46\x00\x00\x00\x00\x59\x65\x59\x66\x47\x48\x00\x00\x59\x68\x59\x64\x59\x6a\x00\x00\x59\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x69\x00\x00\x59\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x96\x51\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9d\x59\x6d\x59\x72\x00\x00\x00\x00\x59\x71\x00\x00\x4a\xac\x48\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x59\x70\x45\x6f\x00\x00\x00\x00\x00\x00\x59\x6f\x50\x72\x00\x00\x59\x6e\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x7f\x00\x00\x00\x00\x00\x00\x59\x73\x00\x00\x00\x00\x45\x7f\x00\x00\x00\x00\x59\x77\x00\x00\x00\x00\x51\x4d\x59\x74\x50\x74\x54\xf1\x59\x7c\x59\x7b\x59\x7a\x59\x76\x00\x00\x00\x00\x00\x00\x59\x75\x00\x00\x00\x00\x59\x79\x00\x00\x00\x00\x00\x00\x00\x00\x59\x78\x00\x00\x4f\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x83\x59\x7d\x00\x00\x59\x82\x00\x00\x49\x8c\x00\x00\x59\x7e\x59\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9e\x00\x00\x00\x00\x59\x85\x59\x87\x00\x00\x4e\xd3\x00\x00\x00\x00\x00\x00\x59\x86\x00\x00\x00\x00\x59\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d80 */ "\x00\x00\x00\x00\x59\x8b\x00\x00\x59\x8a\x00\x00\x00\x00\x59\x89\x00\x00\x00\x00\x00\x00\x47\xd1\x59\x8c\x00\x00\x00\x00\x00\x00\x59\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x59\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x90\x00\x00\x59\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x92\x59\x93\x59\x95\x4c\xe8\x00\x00\x59\x94\x4f\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x96\x00\x00\x00\x00\x49\xcf\x52\x81\x00\x00\x00\x00\x59\x97\x00\x00\x59\x99\x59\x98\x00\x00\x00\x00\x51\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9a\x00\x00\x45\x67\x47\x41\x00\x00\x00\x00\x4d\x47\x00\x00\x4c\x67\x00\x00\x45\x6a\x48\x5b\x4c\xa3\x4a\x52\x00\x00\x00\x00\x59\x9b\x00\x00\x00\x00\x49\x8b\x00\x00\x00\x00\x47\xad\x4a\x4b\x4a\xe6\x4e\x7d\x59\x9c\x00\x00\x53\xcb\x00\x00\x00\x00\x00\x00\x48\x93\x00\x00\x4e\x46\x4a\x7d\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x45\x53\x47\x6b\x00\x00\x00\x00\x4f\x75\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9d\x4a\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x59\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x51\xc7\x00\x00\x00\x00\x59\x9f\x59\x9e\x59\xa1\x00\x00\x48\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x44\x00\x00\x4b\x53\x00\x00\x49\x60\x49\x82\x00\x00\x00\x00\x4d\xc5\x00\x00\x00\x00\x59\xa2\x54\xbe\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x85\x00\x00\x00\x00\x59\xa5\x00\x00\x00\x00\x59\xa4\x59\xa3\x4a\x5e\x00\x00\x59\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x49\x6b\x00\x00\x59\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xa9\x4c\xca\x00\x00\x59\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x83\x00\x00\x48\xde\x59\xaa\x4e\x7f\x59\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6f\x45\x8d\x45\x60\x59\xac\x59\xad\x00\x00\x45\xa9\x48\xda\x59\xae\x50\xa2\x4d\xaf\x52\x5f\x4b\x57\x59\xaf", /* 5e80 */ "\x00\x00\x4b\x92\x00\x00\x45\xb7\x48\x50\x00\x00\x00\x00\x55\x8d\x00\x00\x00\x00\x4a\xed\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x64\x55\x4f\x48\x54\x00\x00\x00\x00\x51\x5a\x00\x00\x45\x51\x00\x00\x00\x00\x00\x00\x59\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xde\x48\xb1\x00\x00\x00\x00\x00\x00\x45\xf8\x00\x00\x48\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xeb\x50\xc1\x46\x9a\x4c\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb1\x59\xb2\x4b\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb3\x4e\xdb\x4e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb5\x59\xb4\x00\x00\x00\x00\x54\xad\x00\x00\x00\x00\x53\x6c\x00\x00\x00\x00\x00\x00\x59\xb7\x59\xb8\x00\x00\x59\xb6\x00\x00\x55\xaf\x55\x62\x59\xba\x59\xb9\x50\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x59\xbb\x59\xbc\x00\x00\x00\x00\x59\xbd\x00\x00\x00\x00\x00\x00\x59\xbe\x59\xbf\x00\x00\x59\xc0\x59\xc1\x00\x00\x47\xd0\x50\x5b\x52\xd6\x00\x00\x46\x66\x4b\xaf\x55\x64\x00\x00\x54\x4b\x51\xd9", /* 5f00 */ "\x00\x00\x4b\x47\x00\x00\x59\xc2\x54\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x59\xc3\x50\xcd\x59\xc4\x56\x41\x56\x51\x00\x00\x46\x8f\x50\xe1\x59\xc5\x00\x00\x4b\x63\x51\xe5\x46\xda\x59\xc6\x54\xac\x45\xd3\x00\x00\x00\x00\x55\x97\x00\x00\x00\x00\x00\x00\x4c\x9b\x00\x00\x59\xc7\x00\x00\x00\x00\x00\x00\x47\xe6\x4e\x42\x53\x6b\x00\x00\x59\xc8\x00\x00\x00\x00\x00\x00\x59\xc9\x00\x00\x59\xca\x00\x00\x4b\x6e\x00\x00\x00\x00\x59\xcb\x48\xba\x00\x00\x46\xd2\x59\xcc\x00\x00\x00\x00\x00\x00\x52\xe0\x00\x00\x4a\xd4\x00\x00\x00\x00\x59\xcd\x00\x00\x00\x00\x00\x00\x53\xc7\x00\x00\x00\x00\x59\xce\x00\x00\x53\x85\x00\x00\x59\xcf\x00\x00\x59\xd0\x00\x00\x00\x00\x59\xd1\x00\x00\x46\x5f\x00\x00\x00\x00\x59\xd2\x59\xd3\x00\x00\x59\xd4\x00\x00\x00\x00\x59\xd5\x59\xd6\x00\x00\x00\x00\x00\x00\x59\xd7\x46\x90\x00\x00\x00\x00\x00\x00\x45\xe1\x59\xd8\x00\x00\x4d\xcd\x51\x59\x4e\x86\x4e\x88\x52\x9c\x00\x00\x00\x00\x49\x64\x49\x5e\x00\x00\x59\xd9\x00\x00\x00\x00\x00\x00\x59\xda\x00\x00\x49\x5d\x00\x00\x00\x00\x47\x72\x00\x00\x00\x00\x59\xdd", /* 5f80 */ "\x4c\xea\x4a\x61\x59\xdc\x59\xdb\x4e\x60\x48\xa3\x00\x00\x59\xe0\x59\xdf\x00\x00\x59\xde\x49\x91\x45\xe5\x00\x00\x00\x00\x00\x00\x50\xb3\x59\xe1\x4c\x6c\x48\xfb\x00\x00\x00\x00\x00\x00\x47\xe8\x59\xe4\x59\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x59\xe3\x00\x00\x59\xe5\x46\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xe6\x4a\x70\x4e\xf5\x00\x00\x00\x00\x59\xe7\x4b\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x46\x54\x4c\x74\x00\x00\x00\x00\x59\xe8\x00\x00\x48\xf8\x00\x00\x00\x00\x59\xe9\x55\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe7\x00\x00\x47\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x97\x4b\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xea\x46\x61\x4c\x45\x4e\xa3\x00\x00\x00\x00\x48\x95\x59\xf0\x59\xf1\x00\x00\x46\x4f\x00\x00\x00\x00\x00\x00\x59\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x60\x00\x00\x00\x00\x00\x00\x00\x00\x59\xef\x59\xee\x00\x00\x00\x00\x00\x00\x4a\xae\x00\x00\x00\x00\x59\xed\x00\x00\x00\x00\x59\xeb\x00\x00\x50\x56\x00\x00\x59\xf2", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf7\x59\xfd\x59\xf5\x00\x00\x4c\xd6\x00\x00\x00\x00\x59\xfa\x4e\xf0\x00\x00\x00\x00\x59\xf4\x00\x00\x59\xf9\x50\x9f\x46\xad\x00\x00\x00\x00\x50\x81\x59\xf3\x00\x00\x00\x00\x00\x00\x47\xcc\x59\xfc\x46\x6e\x54\xde\x59\xf6\x4e\x71\x59\xfb\x00\x00\x00\x00\x00\x00\x55\x42\x00\x00\x59\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x42\x52\x56\x5a\x4c\x00\x00\x00\x00\x5a\x49\x00\x00\x00\x00\x00\x00\x5a\x48\x4b\xca\x00\x00\x5a\x4a\x00\x00\x00\x00\x4b\xd5\x00\x00\x47\xc7\x00\x00\x00\x00\x52\x98\x00\x00\x00\x00\x00\x00\x5a\x50\x5a\x41\x00\x00\x00\x00\x5a\x44\x00\x00\x5a\x47\x5a\x43\x00\x00\x55\x94\x5a\x4b\x5a\x4d\x4e\xce\x00\x00\x00\x00\x53\xb8\x4c\x81\x5a\x45\x5a\x4f\x5a\x4e\x49\x4e\x00\x00\x4b\xb0\x53\x84\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x5a\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6080 */ "\x00\x00\x5a\x52\x00\x00\x5a\x53\x5a\x55\x5a\x51\x00\x00\x00\x00\x00\x00\x54\x69\x5a\x57\x5a\x5c\x4d\xe3\x55\x44\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x5a\x00\x00\x50\x91\x00\x00\x5a\x58\x5a\x59\x00\x00\x00\x00\x5a\x54\x5a\x56\x00\x00\x00\x00\x00\x00\x4a\xb1\x4d\xd8\x00\x00\x00\x00\x4d\xeb\x00\x00\x00\x00\x48\x73\x5a\x5b\x00\x00\x4b\xcd\x49\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x9d\x52\x76\x53\xa3\x5a\x64\x55\x54\x00\x00\x5a\x5e\x00\x00\x00\x00\x00\x00\x51\x45\x5a\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x5f\x5a\x63\x4e\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x78\x00\x00\x5a\x61\x00\x00\x5a\x65\x00\x00\x00\x00\x5a\x66\x00\x00\x54\x9d\x00\x00\x4e\xd7\x00\x00\x5a\x5f\x4f\xe0\x5a\x60\x5a\x5d\x00\x00\x4b\x68\x00\x00\x00\x00\x00\x00\x55\x4a\x50\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb8\x5a\x73\x5a\x68\x48\xb3\x5a\x6e\x00\x00\x5a\x6b\x5a\x6c\x00\x00\x54\x72\x5a\x6f\x5a\x72\x00\x00\x00\x00\x00\x00\x00\x00", /* 6100 */ "\x5a\x6d\x52\x82\x00\x00\x5a\x70\x00\x00\x00\x00\x5a\x6a\x00\x00\x53\xc8\x50\x98\x00\x00\x00\x00\x00\x00\x5a\x74\x5a\x75\x47\x63\x00\x00\x5a\x76\x00\x00\x00\x00\x00\x00\x5a\x69\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb2\x45\xc6\x00\x00\x00\x00\x00\x00\x47\xf7\x5a\x67\x5a\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7b\x5a\x7a\x00\x00\x00\x00\x00\x00\x5a\x80\x00\x00\x00\x00\x00\x00\x5a\x7e\x00\x00\x00\x00\x00\x00\x5a\x81\x00\x00\x00\x00\x5a\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7f\x5a\x84\x5a\x7c\x51\xe3\x00\x00\x00\x00\x5a\x85\x00\x00\x5a\x86\x00\x00\x00\x00\x5a\x77\x4c\xbe\x00\x00\x5a\x7d\x48\xfd\x53\x8e\x5a\x78\x4a\x76\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x92\x00\x00\x52\xe3\x00\x00\x00\x00\x5a\x8a\x5a\x8b\x5a\x8c\x00\x00\x00\x00\x5a\x83\x00\x00\x5a\x91\x00\x00\x00\x00\x4d\xdb\x4d\xd3\x00\x00\x5a\x82\x00\x00\x4e\xb6\x52\x8a\x00\x00\x00\x00\x5a\x8d\x00\x00\x00\x00\x4c\x49\x5a\x8f\x4f\xad\x5a\x90\x00\x00\x5a\x87\x5a\x8e\x5a\x93\x48\xa8\x5a\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf4\x00\x00", /* 6180 */ "\x00\x00\x00\x00\x50\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x88\x00\x00\x00\x00\x5a\x99\x00\x00\x00\x00\x00\x00\x4f\x4a\x00\x00\x55\x5b\x5a\x9a\x00\x00\x00\x00\x5a\x98\x00\x00\x5a\x96\x00\x00\x5a\x94\x5a\x95\x55\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xfc\x00\x00\x00\x00\x53\xc2\x00\x00\x51\x75\x00\x00\x5a\x9b\x5a\x97\x00\x00\x5a\x9c\x00\x00\x00\x00\x00\x00\x47\xbe\x00\x00\x00\x00\x00\x00\x4e\x6c\x00\x00\x00\x00\x00\x00\x5a\xa3\x00\x00\x00\x00\x00\x00\x51\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa1\x00\x00\x00\x00\x5a\xa2\x4e\xa4\x5a\xa0\x5a\x9f\x5a\x9e\x5a\xa4\x5a\x9d\x5a\xa6\x00\x00\x00\x00\x4e\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa8\x00\x00\x00\x00\x5a\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x53\x00\x00\x5a\xa9\x00\x00\x5a\xab\x5a\xaa\x4d\xc6\x00\x00\x5a\xad\x00\x00\x5a\xaf\x5a\xac\x5a\xb0\x5a\xae", /* 6200 */ "\x5a\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xb2\x5a\xb3\x51\x61\x00\x00\x54\x60\x5a\xb4\x51\x7f\x00\x00\x45\xba\x49\xde\x4d\xa0\x5a\xb5\x5a\xb6\x00\x00\x4d\x7f\x00\x00\x00\x00\x00\x00\x55\x95\x5a\xb7\x00\x00\x64\x6e\x5a\xb8\x54\xd9\x00\x00\x5a\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x47\x64\x00\x00\x00\x00\x00\x00\x5a\xba\x00\x00\x00\x00\x00\x00\x5a\xbb\x4f\x92\x5a\xbc\x00\x00\x5a\xbd\x5a\xbe\x50\x92\x00\x00\x00\x00\x00\x00\x45\xcf\x00\x00\x00\x00\x4c\x44\x00\x00\x00\x00\x00\x00\x47\xdc\x45\x8c\x5a\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xca\x65\x5d\x50\xad\x00\x00\x45\xcb\x00\x00\x49\xf1\x5a\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x47\xea\x00\x00\x49\x81\x00\x00\x00\x00\x55\xd5\x00\x00\x00\x00\x5a\xc3\x00\x00\x00\x00\x5a\xc1\x00\x00\x5a\xc4\x00\x00\x00\x00\x5a\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb7\x00\x00\x00\x00\x4c\x69\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7a\x00\x00\x00\x00\x4c\x76\x00\x00\x00\x00\x5a\xc6\x00\x00\x5a\xca\x4c\x48", /* 6280 */ "\x48\xf7\x00\x00\x5a\xc7\x5a\xcd\x4e\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc8\x4e\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x66\x5a\xc9\x5a\xcb\x5a\xce\x47\x51\x5a\xcc\x4a\x67\x49\x8d\x00\x00\x00\x00\x5a\xdc\x4a\x85\x00\x00\x4e\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xda\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa6\x5a\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x86\x00\x00\x00\x00\x00\x00\x4b\x90\x00\x00\x00\x00\x00\x00\x51\xe0\x00\x00\x5a\xd1\x49\xe1\x4d\x53\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd9\x00\x00\x00\x00\x4a\xa1\x5a\xd4\x5a\xdb\x5a\xd5\x5a\xdd\x5a\xd8\x00\x00\x53\x45\x4f\xba\x00\x00\x5a\xd2\x53\xa2\x5a\xd0\x4f\x61\x4b\xdb\x5a\xd7\x00\x00\x00\x00\x5a\xcf\x50\x45\x52\x5c\x00\x00\x4b\xfd\x5a\xd6\x4e\xe2\x00\x00\x00\x00\x4d\x77\x48\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc5\x4e\xe5\x5a\xdf\x5a\xe4\x00\x00\x5a\xe0\x00\x00\x50\x8d\x00\x00\x5a\xe5\x4f\x9e\x55\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd7\x5a\xe6", /* 6300 */ "\x00\x00\x46\xd8\x5a\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb6\x5a\xe3\x54\x89\x00\x00\x00\x00\x5a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe1\x4f\x81\x00\x00\x00\x00\x54\x8f\x00\x00\x00\x00\x00\x00\x48\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x87\x00\x00\x00\x00\x52\xa8\x5a\xe9\x55\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa0\x00\x00\x00\x00\x55\x7d\x5a\xe8\x00\x00\x5a\xea\x5a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x41\x00\x00\x55\x46\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x85\x4b\xb3\x5a\xf5\x00\x00\x5a\xf4\x00\x00\x00\x00\x4e\xd6\x00\x00\x00\x00\x00\x00\x54\x93\x00\x00\x00\x00\x00\x00\x5a\xef\x4d\x8f\x00\x00\x00\x00\x4f\xc0\x54\xc0\x00\x00\x00\x00\x00\x00\x00\x00", /* 6380 */ "\x5a\xed\x00\x00\x00\x00\x4d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x61\x5a\xf2\x00\x00\x00\x00\x4e\xec\x00\x00\x5a\xec\x5a\xf1\x00\x00\x00\x00\x4c\xfa\x00\x00\x00\x00\x00\x00\x5a\xeb\x00\x00\x4d\x44\x00\x00\x00\x00\x4a\xe3\x00\x00\x00\x00\x00\x00\x5a\xf3\x55\xe6\x4b\x4f\x4b\x7f\x5a\xf0\x00\x00\x47\xa8\x00\x00\x4c\xac\x48\xd5\x55\xd0\x4a\x60\x5a\xee\x55\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc1\x00\x00\x54\xcd\x5a\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa3\x00\x00\x00\x00\x5a\xf7\x00\x00\x5a\xf9\x00\x00\x00\x00\x4e\xfd\x5b\x42\x00\x00\x5a\xfa\x00\x00\x00\x00\x5a\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xcf\x49\xb9\x00\x00\x5a\xfe\x00\x00\x00\x00\x00\x00\x4c\xf2\x00\x00\x00\x00\x00\x00\x4c\x46\x49\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x60\x00\x00\x5a\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd5\x5a\xfb\x5b\x41\x00\x00\x00\x00\x00\x00\x4f\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xd8\x00\x00\x5b\x4b\x00\x00\x00\x00\x00\x00\x5b\x45\x54\xa3\x00\x00\x5b\x4c\x5b\x49\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x46\x00\x00\x5b\x4a\x00\x00\x00\x00\x00\x00\x4d\xc8\x52\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x43\x00\x00\x5b\x47\x00\x00\x00\x00\x00\x00\x4e\x49\x00\x00\x00\x00\x00\x00\x50\xa3\x00\x00\x00\x00\x00\x00\x4e\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4d\x00\x00\x00\x00\x54\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4e\x00\x00\x48\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x51\x00\x00\x55\xf5\x00\x00\x51\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6480 */ "\x00\x00\x00\x00\x00\x00\x4a\x74\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xde\x5b\x57\x00\x00\x5b\x55\x00\x00\x00\x00\x00\x00\x00\x00\x53\x48\x00\x00\x00\x00\x5b\x53\x55\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x7a\x5b\x58\x00\x00\x00\x00\x00\x00\x5b\x59\x00\x00\x51\xe1\x00\x00\x4e\x62\x4c\x77\x00\x00\x53\x72\x00\x00\x4e\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x52\x00\x00\x5b\x56\x5b\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4e\x5b\x62\x00\x00\x00\x00\x5b\x5e\x00\x00\x5b\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x9b\x5b\x54\x00\x00\x00\x00\x00\x00\x5b\x5d\x00\x00\x5b\x60\x00\x00\x00\x00\x00\x00\x5b\x61\x00\x00\x5b\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x65\x5b\x66\x55\x43\x5b\x67\x00\x00\x00\x00\x4f\xd6\x5b\x64\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcd\x00\x00\x00\x00\x5b\x68\x00\x00\x5b\x63\x5b\x6b\x00\x00\x5b\x69\x00\x00\x5b\x6a\x00\x00\x00\x00\x00\x00\x5b\x6c\x00\x00\x00\x00\x5b\x6e\x55\xf6\x00\x00", /* 6500 */ "\x5b\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x5b\x70\x5b\x71\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x72\x5b\x74\x5b\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7f\x5b\x75\x5b\x76\x00\x00\x00\x00\x47\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x77\x5b\x78\x5b\x7a\x5b\x79\x5b\x7b\x48\x8f\x00\x00\x4b\xc5\x00\x00\x00\x00\x48\xaf\x45\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf7\x00\x00\x00\x00\x5b\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x80\x5b\x7e\x46\x47\x00\x00\x4c\x5c\x00\x00\x00\x00\x00\x00\x5b\x82\x5b\x7f\x4b\x8a\x5b\x81\x47\xa5\x00\x00\x00\x00\x00\x00\x5b\x83\x51\xb1\x00\x00\x00\x00\x00\x00\x4f\xcf\x4a\xc9\x00\x00\x00\x00\x49\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb0\x00\x00\x00\x00\x00\x00\x46\xcc\x00\x00\x5b\x84\x00\x00\x47\x7c\x4b\xf3\x00\x00\x49\x51\x5b\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6580 */ "\x00\x00\x00\x00\x5b\x86\x5b\x87\x00\x00\x00\x00\x00\x00\x45\xca\x58\xed\x46\x8e\x00\x00\x00\x00\x51\x9d\x00\x00\x47\xdb\x00\x00\x4b\x80\x52\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x83\x00\x00\x46\x4e\x00\x00\x5b\x89\x4b\xd1\x00\x00\x00\x00\x5b\x8a\x00\x00\x55\x81\x00\x00\x00\x00\x54\xcf\x51\x41\x00\x00\x51\xc2\x00\x00\x00\x00\x00\x00\x5b\x8b\x4e\xfc\x49\x89\x00\x00\x4e\xa5\x45\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8c\x00\x00\x45\xcd\x00\x00\x00\x00\x4d\xa4\x48\x88\x00\x00\x00\x00\x00\x00\x5b\x8f\x00\x00\x5b\x8d\x5b\x90\x4a\xcf\x5b\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7b\x5b\x91\x00\x00\x00\x00\x4a\xdc\x00\x00\x00\x00\x5b\x92\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xab\x00\x00\x5b\x93\x00\x00\x51\x65\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x95\x5b\x94\x4b\x77\x00\x00\x00\x00\x45\x62\x4d\x9d\x4c\x7b\x4d\x6a\x46\xe9\x00\x00\x00\x00\x4d\x67\x47\xec\x00\x00\x00\x00\x00\x00\x5b\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa3\x5b\x9c\x00\x00\x00\x00\x00\x00\x00\x00", /* 6600 */ "\x5b\x97\x00\x00\x5b\x99\x5b\x9b\x00\x00\x00\x00\x4f\xe7\x46\xfe\x00\x00\x5b\x9d\x52\x8e\x00\x00\x46\xd1\x00\x00\x45\xa6\x54\xe8\x00\x00\x00\x00\x00\x00\x47\xe9\x4c\x59\x5b\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa3\x00\x00\x5b\xa1\x47\xa9\x47\xac\x00\x00\x00\x00\x00\x00\x5b\xa4\x46\x62\x00\x00\x55\x9d\x48\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x45\xb3\x5b\xa0\x4b\xbb\x00\x00\x52\xeb\x00\x00\x00\x00\x5b\xa2\x5b\x9f\x51\x93\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9f\x4c\x98\x00\x00\x00\x00\x5b\x9e\x00\x00\x52\x51\x46\x51\x48\xb0\x5b\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa6\x00\x00\x4b\xb2\x00\x00\x00\x00\x00\x00\x51\xea\x00\x00\x00\x00\x54\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa8\x00\x00\x5b\xab\x00\x00\x00\x00\x00\x00\x5b\xad\x5b\xa9\x4f\xce\x00\x00\x00\x00\x5b\xac\x00\x00\x5b\xaa\x5b\xa7\x55\x6d\x50\xa0\x51\xb2\x4c\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x49\xf8\x49\x93\x5b\xb0\x00\x00\x00\x00\x5b\xaf\x47\x95\x00\x00\x4a\xf8\x00\x00\x00\x00\x00\x00\x46\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6680 */ "\x00\x00\x4c\x83\x00\x00\x5b\xb1\x5b\xb3\x00\x00\x00\x00\x4f\x46\x5b\xb2\x4e\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xab\x00\x00\x00\x00\x4f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6c\x4b\xe2\x5b\xb5\x5b\xb4\x00\x00\x00\x00\x00\x00\x5b\xb7\x00\x00\x00\x00\x5b\xb6\x00\x00\x4c\xc7\x00\x00\x00\x00\x00\x00\x50\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x50\x93\x00\x00\x00\x00\x4a\xfe\x00\x00\x00\x00\x00\x00\x5b\xb8\x00\x00\x4c\xb2\x00\x00\x00\x00\x00\x00\x5b\xbf\x52\x43\x00\x00\x00\x00\x5b\xbe\x00\x00\x5b\xbd\x5b\xbb\x00\x00\x5b\xba\x00\x00\x00\x00\x5b\xb9\x00\x00\x00\x00\x4c\x56\x00\x00\x5b\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc0\x00\x00\x00\x00\x51\x52\x5b\xc1\x00\x00\x4b\xfe\x52\xa6\x00\x00\x00\x00\x51\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc2\x00\x00\x00\x00\x5b\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc4\x00\x00\x49\xb6\x4e\xbc\x4a\x6d\x5b\xc5\x00\x00\x5b\xc6\x47\x9d\x4e\xd2\x5b\xc7\x53\x97\x57\x8d\x49\x5f\x51\x66\x4b\xc3", /* 6700 */ "\x46\xf5\x00\x00\x00\x00\x56\xac\x00\x00\x00\x00\x00\x00\x00\x00\x45\x61\x46\x85\x00\x00\x4b\xc4\x00\x00\x47\xd4\x5b\xc8\x54\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa4\x55\xf3\x5b\xca\x48\x6e\x00\x00\x00\x00\x00\x00\x47\xbb\x00\x00\x47\x5c\x5b\xcb\x46\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcd\x5b\xce\x45\x6c\x00\x00\x49\xc6\x47\x46\x45\x66\x48\xf9\x5b\xd0\x00\x00\x00\x00\x4d\x42\x00\x00\x00\x00\x4e\xa2\x00\x00\x5b\xd2\x5b\xd3\x5b\xd4\x00\x00\x4d\x96\x00\x00\x00\x00\x50\xf0\x00\x00\x5b\xd1\x00\x00\x53\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd5\x00\x00\x00\x00\x46\x68\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x51\x50\xd0\x46\xbc\x45\x56\x00\x00\x54\xc1\x00\x00\x00\x00\x50\xf4\x00\x00\x00\x00\x5b\xd7\x00\x00\x00\x00\x52\x5d\x00\x00\x5b\xd6\x4b\x4b\x54\x80\x47\x5e\x51\xa6\x52\x91\x5b\xd9\x46\x76\x5b\xd8\x00\x00\x00\x00\x00\x00\x5b\xde\x00\x00\x00\x00\x50\x8b\x00\x00\x4c\x63\x5b\xdc\x45\x57\x5b\x9a\x5b\xe0\x00\x00\x4a\xa6\x00\x00\x52\x80\x00\x00\x00\x00\x00\x00\x00\x00\x54\xdf\x00\x00\x45\x78\x46\xb4", /* 6780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xdb\x00\x00\x52\x5e\x00\x00\x5b\xda\x00\x00\x5b\xdf\x54\xf2\x00\x00\x00\x00\x00\x00\x4a\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x78\x00\x00\x45\xa2\x00\x00\x00\x00\x49\xd9\x00\x00\x47\xb9\x46\x72\x00\x00\x00\x00\x4f\xd2\x5b\xe2\x52\xd0\x00\x00\x00\x00\x00\x00\x5b\xe1\x00\x00\x00\x00\x5b\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x61\x00\x00\x00\x00\x00\x00\x54\xc9\x5b\xe6\x00\x00\x4e\xe8\x5b\xe4\x5b\xe9\x5b\xf2\x00\x00\x5b\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf0\x55\xcd\x00\x00\x00\x00\x4a\x7f\x00\x00\x5b\xf4\x00\x00\x00\x00\x00\x00\x52\xd9\x00\x00\x00\x00\x00\x00\x5b\xf1\x49\x80\x50\x4a\x4e\xc1\x00\x00\x48\x9b\x4d\xea\x00\x00\x00\x00\x00\x00\x4f\xd8\x00\x00\x4e\xe1\x00\x00\x00\x00\x5b\xed\x54\xf3\x00\x00\x00\x00\x00\x00\x5b\xee\x00\x00\x5b\xeb\x00\x00\x00\x00\x5b\xea\x00\x00\x5b\xe8\x00\x00\x00\x00\x5b\xe7\x00\x00\x5b\xef\x5b\xe5\x00\x00\x4b\xea\x00\x00\x46\xea\x47\xa7\x51\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x73\x00\x00\x00\x00\x50\x54\x4a\xc1", /* 6800 */ "\x00\x00\x5b\xf3\x52\xd1\x47\xd3\x45\xfa\x51\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xe3\x00\x00\x00\x00\x4d\xcc\x47\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf5\x00\x00\x00\x00\x48\xbf\x52\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xde\x48\x56\x52\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfa\x00\x00\x55\xda\x00\x00\x00\x00\x00\x00\x4b\x9e\x46\x67\x00\x00\x00\x00\x47\xde\x4d\xe0\x00\x00\x00\x00\x5b\xf8\x50\xd6\x49\xab\x4a\xda\x5b\xf9\x00\x00\x5b\xf6\x00\x00\x48\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf7\x5b\xfb\x00\x00\x49\xc0\x48\x79\x5b\xec\x53\x6d\x53\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfd\x00\x00\x00\x00\x47\x71\x4d\x88\x00\x00\x51\xf3\x00\x00\x00\x00\x00\x00\x5b\xfc\x00\x00\x00\x00\x00\x00\x50\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x4b\x00\x00\x4e\x77\x5c\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x44\x5c\x42", /* 6880 */ "\x00\x00\x4e\x44\x00\x00\x5c\x48\x00\x00\x47\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfe\x5b\xfe\x5c\x45\x00\x00\x00\x00\x00\x00\x50\xda\x5c\x47\x00\x00\x00\x00\x52\xcc\x00\x00\x00\x00\x00\x00\x53\xbc\x00\x00\x4e\x92\x00\x00\x5c\x43\x52\xc6\x00\x00\x50\xac\x00\x00\x00\x00\x00\x00\x58\xa4\x52\xd3\x48\x58\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x46\x00\x00\x51\xe4\x46\x82\x53\x59\x00\x00\x53\x61\x00\x00\x5c\x4c\x49\xad\x00\x00\x00\x00\x5c\x4a\x5c\x4d\x00\x00\x5c\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb1\x00\x00\x5c\x60\x00\x00\x53\x86\x55\xca\x5c\x50\x4e\xf1\x00\x00\x5c\x56\x00\x00\x5c\x5f\x00\x00\x00\x00\x4b\x5a\x00\x00\x5c\x57\x5c\x59\x00\x00\x54\xc2\x5c\x52\x00\x00\x4b\xef\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xa9\x5c\x5e\x5c\x54\x00\x00\x5c\x5d\x00\x00\x00\x00\x00\x00\x5c\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x9d\x5c\x5b\x00\x00\x00\x00\x53\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x94\x55\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x54\x68\x5c\x4f\x00\x00\x00\x00\x5c\x5c\x4f\xf7\x00\x00\x00\x00\x5c\x51\x00\x00\x00\x00\x4d\xfd\x5c\x55\x47\xc5\x4b\xa0\x5c\x4e\x00\x00\x00\x00\x5c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xed\x53\x70\x51\x63\x48\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x63\x5c\x61\x5c\x64\x00\x00\x53\xfa\x5c\x53\x00\x00\x5c\x65\x00\x00\x5c\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x71\x00\x00\x00\x00\x00\x00\x54\xa7\x00\x00\x5c\x69\x00\x00\x00\x00\x52\xed\x00\x00\x00\x00\x00\x00\x5c\x6f\x00\x00\x4c\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x95\x5c\x6b\x55\xc5\x00\x00\x00\x00\x00\x00\x5c\x70\x53\x4c\x00\x00\x54\xe2\x5c\x73\x5c\x72\x00\x00\x4a\xdf\x52\x7c\x4d\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x6e\x00\x00\x5c\x6c\x54\xa2\x00\x00\x45\x6b\x53\xef\x4f\xae\x00\x00\x00\x00\x00\x00\x52\xb3\x5c\x6d\x49\xb7\x00\x00\x5c\x68\x5c\x6a\x5c\x67\x00\x00\x00\x00\x52\xba\x47\x61\x5c\x74\x00\x00", /* 6980 */ "\x00\x00\x5c\x75\x4c\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x52\x00\x00\x00\x00\x00\x00\x49\xeb\x00\x00\x00\x00\x54\x76\x00\x00\x00\x00\x55\xc7\x5c\x86\x00\x00\x00\x00\x5c\x79\x00\x00\x00\x00\x4d\x7e\x5c\x85\x00\x00\x00\x00\x00\x00\x5c\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4a\x00\x00\x00\x00\x5c\x80\x5c\x76\x00\x00\x53\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x82\x00\x00\x00\x00\x5c\x7c\x5c\x77\x00\x00\x5c\x7a\x00\x00\x5c\x83\x00\x00\x00\x00\x00\x00\x4d\xb9\x00\x00\x00\x00\x5c\x7f\x47\x96\x4e\xfa\x52\xdb\x5c\x7d\x00\x00\x54\x8c\x00\x00\x00\x00\x5c\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x48\x48\x68\x81\x00\x00\x00\x00\x00\x00\x5c\x81\x5c\x87\x00\x00\x00\x00\x00\x00\x5c\x90\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8f\x5c\x89\x00\x00\x00\x00\x5c\x94\x00\x00\x5c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8d\x00\x00\x4b\x5c\x00\x00\x4d\xb7\x00\x00\x5c\x8c", /* 6a00 */ "\x00\x00\x00\x00\x5c\x8a\x00\x00\x00\x00\x53\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x95\x49\x4f\x5c\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x97\x5c\x99\x5c\x93\x00\x00\x00\x00\x53\x8b\x00\x00\x49\x66\x00\x00\x5c\x8b\x00\x00\x00\x00\x5c\x91\x53\x9b\x00\x00\x48\x64\x5c\x96\x5c\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xdc\x45\xf2\x4b\x6f\x00\x00\x00\x00\x5c\x88\x00\x00\x5c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x55\x85\x5c\x9f\x00\x00\x5c\xa7\x46\xcf\x4e\x69\x00\x00\x00\x00\x4b\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x9c\x00\x00\x5c\xa6\x5c\xa1\x5c\xa5\x00\x00\x00\x00\x45\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc2\x5c\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x00\x00\x55\xd4\x5c\xa2\x00\x00\x00\x00\x00\x00\x5c\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xa8\x5c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xaf\x4f\xb2", /* 6a80 */ "\x4f\xf5\x00\x00\x00\x00\x00\x00\x5c\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xab\x55\xee\x00\x00\x5c\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x55\x00\x00\x00\x00\x00\x00\x5c\x9e\x00\x00\x5c\xad\x5c\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb2\x00\x00\x5c\xb1\x00\x00\x54\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb5\x00\x00\x00\x00\x5c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb7\x5c\xb4\x52\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xba\x00\x00\x55\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xbb\x4d\xa6\x00\x00\x00\x00\x5c\xb8\x53\x62\x00\x00\x00\x00\x5c\xb9\x00\x00\x5c\xbc\x00\x00\x00\x00\x00\x00\x51\xc5\x00\x00\x5c\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc2\x52\xee\x00\x00\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xde\x5c\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc3\x00\x00\x00\x00\x00\x00\x5c\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf7\x00\x00\x5c\xc5\x4c\xb5\x45\x97\x00\x00\x4b\x9d\x00\x00\x00\x00\x00\x00\x4a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc7\x5c\xc6\x5c\xc8\x51\x7d\x00\x00\x00\x00\x4c\xf8\x4e\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xcc\x00\x00\x00\x00\x00\x00\x5c\xcb\x00\x00\x5c\xcd\x00\x00\x00\x00\x46\xf7\x00\x00\x54\x87\x00\x00\x5c\xce\x00\x00\x00\x00\x4d\x4e\x5c\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xcf\x00\x00\x5c\xd1\x00\x00\x00\x00\x00\x00\x5c\xd2\x00\x00\x5c\xd3\x48\xd8\x45\x77\x4d\x4c\x00\x00\x45\xb1\x00\x00\x00\x00\x47\xd8\x55\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x9f\x00\x00\x00\x00\x00\x00\x48\xe4\x49\x55\x00\x00\x00\x00\x00\x00\x5c\xd4\x5c\xd5\x00\x00\x49\x99\x00\x00\x00\x00\x00\x00\x5c\xd6", /* 6b80 */ "\x5c\xd7\x00\x00\x00\x00\x5c\xd9\x5c\xd8\x00\x00\x4f\x42\x00\x00\x00\x00\x53\xa4\x48\x65\x49\x92\x00\x00\x5c\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdc\x4e\x73\x00\x00\x5c\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdf\x5c\xe0\x00\x00\x00\x00\x00\x00\x5c\xe1\x00\x00\x5c\xe2\x5c\xe3\x5c\xe4\x54\x59\x47\xed\x00\x00\x5c\xe5\x00\x00\x00\x00\x49\xe9\x50\xc0\x5c\xe6\x00\x00\x00\x00\x48\x49\x58\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5b\x5c\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe8\x00\x00\x49\x69\x49\xf5\x00\x00\x00\x00\x00\x00\x4c\x97\x5c\xe9\x47\x4e\x00\x00\x5c\xea\x00\x00\x53\xd7\x00\x00\x00\x00\x46\xe2\x00\x00\x00\x00\x00\x00\x5c\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xed\x5c\xec\x00\x00\x00\x00\x5c\xef\x00\x00\x00\x00\x00\x00\x5c\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8e\x00\x00\x47\x56\x00\x00\x5c\xf1\x5c\xf2\x00\x00\x00\x00\x45\xb9\x00\x00\x00\x00\x00\x00\x5c\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf5\x5c\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x9c\x00\x00\x00\x00\x4c\xa4\x45\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6e\x5c\xf6\x53\x4d\x4d\x84\x49\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x50\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf8\x00\x00\x4e\xc4\x00\x00\x00\x00\x4e\x82\x00\x00\x5c\xf9\x55\x5e\x5c\xf7\x45\xad\x45\xe8\x00\x00\x5c\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x45\x00\x00\x52\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xfe\x50\xd2\x00\x00\x50\xc8\x5d\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa4\x00\x00\x00\x00\x49\x4c\x5d\x44\x00\x00", /* 6c80 */ "\x00\x00\x5d\x42\x5c\xfb\x55\xd9\x00\x00\x00\x00\x5c\xfd\x00\x00\x4c\x8f\x00\x00\x00\x00\x00\x00\x55\x98\x5c\xfc\x00\x00\x00\x00\x5d\x48\x00\x00\x5d\x47\x4f\xf8\x00\x00\x00\x00\x47\xfd\x00\x00\x00\x00\x4e\xad\x5d\x41\x5d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x75\x45\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xec\x00\x00\x00\x00\x5d\x4d\x00\x00\x00\x00\x5d\x50\x00\x00\x46\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xaa\x46\x5c\x5d\x52\x45\x84\x46\xc6\x5d\x4b\x5d\x51\x4e\x6f\x00\x00\x4a\x58\x00\x00\x00\x00\x5d\x49\x5d\x4c\x00\x00\x00\x00\x00\x00\x46\xee\x4d\xb8\x00\x00\x51\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd7\x00\x00\x46\x4a\x00\x00\x55\xc6\x00\x00\x5d\x55\x5d\x4e\x5d\x53\x00\x00\x5d\x4f\x00\x00\x00\x00\x00\x00\x4e\x87\x46\xca\x4d\x4b\x00\x00\x4e\x56\x00\x00\x00\x00\x49\x44\x00\x00\x5d\x56\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x54\x46\xf3\x5d\x4a\x00\x00\x4f\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xda\x5d\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x4e\x00\x00\x52\xb6\x00\x00\x54\x50\x00\x00\x00\x00\x4d\x98\x5d\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xdc\x00\x00\x00\x00\x00\x00\x50\xb7\x4f\xd4\x5d\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x72\x5d\x5c\x00\x00\x52\xac\x5d\x59\x00\x00\x50\xbc\x00\x00\x00\x00\x47\xb4\x00\x00\x5d\x5b\x4a\x72\x00\x00\x00\x00\x46\xfc\x00\x00\x00\x00\x4c\xc9\x46\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x66\x5d\x64\x00\x00\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5f\x5d\x63\x00\x00\x46\x6b\x00\x00\x00\x00\x46\xeb\x4a\x9d\x00\x00\x55\xcc\x00\x00\x4a\x8c\x5d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x7e\x00\x00\x00\x00\x45\xa7\x4d\x41\x5d\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x6a\x00\x00\x5d\x60\x48\x6b\x00\x00\x00\x00\x00\x00\x4f\x7d\x00\x00\x5d\x67\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x61\x00\x00\x5d\x68\x5d\x6b\x00\x00\x00\x00\x4d\xda\x00\x00\x5d\x69\x55\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x72\x00\x00\x00\x00\x4f\x91\x00\x00\x00\x00\x4a\x45\x00\x00\x00\x00\x5d\x6f\x00\x00\x00\x00\x5d\x73\x00\x00\x00\x00\x00\x00\x4e\x74\x00\x00\x00\x00\x00\x00\x4a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x7c\x5d\x75\x5d\x71\x00\x00\x00\x00\x00\x00\x52\xc7\x5d\x78\x00\x00\x00\x00\x5d\x74\x00\x00\x4a\xbf\x5d\x7b\x00\x00\x00\x00\x5d\x82\x00\x00\x00\x00\x55\xe1\x5d\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x77\x00\x00\x00\x00\x4c\xa5\x00\x00\x00\x00\x5d\x81\x00\x00\x5d\x70\x00\x00\x5d\x79\x00\x00\x5d\x83\x55\x4e\x5d\x76\x00\x00\x5d\x84\x00\x00\x00\x00\x47\x77\x5d\x7f\x48\x94\x00\x00\x48\xea\x00\x00\x4b\x46\x5d\x7a\x5d\x6c\x5d\x7d\x4a\x91\x5d\x80\x00\x00\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x96\x00\x00\x54\x41\x47\x69\x4a\xc0\x5d\x6d\x48\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x98\x00\x00\x51\x64\x00\x00\x00\x00\x00\x00\x5d\x87\x50\xe4\x47\x8a\x00\x00\x5d\x99\x00\x00\x5d\x92\x52\x7a\x45\xd2\x00\x00\x5d\x8c\x5d\x98\x4e\x43\x51\xa0\x5d\x93\x00\x00\x49\x50\x00\x00\x5d\x8f\x49\x45\x5d\x85\x5d\x6e\x48\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9a\x5d\x8a\x5d\x96\x00\x00\x5d\x95\x00\x00\x5d\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x88\x00\x00\x00\x00\x5d\x91\x5d\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x52\x00\x00\x51\x55\x00\x00\x00\x00\x53\xf3\x5d\x8e\x00\x00\x00\x00\x5d\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xbd\x00\x00\x00\x00\x00\x00\x5d\x8d\x00\x00\x00\x00\x5d\x86\x48\xbd\x00\x00\x00\x00\x5d\x88\x00\x00\x00\x00\x00\x00\x5d\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6b\x4c\x90", /* 6e80 */ "\x47\x5b\x00\x00\x5d\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x5d\xa5\x47\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xce\x00\x00\x5d\x9d\x00\x00\x00\x00\x00\x00\x4d\xc4\x4a\x4d\x00\x00\x5d\xa8\x00\x00\x00\x00\x52\x71\x00\x00\x00\x00\x53\x76\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa0\x00\x00\x00\x00\x5d\xa2\x00\x00\x00\x00\x00\x00\x48\xbe\x5d\x9e\x00\x00\x00\x00\x54\x97\x00\x00\x00\x00\x5d\x9f\x00\x00\x5d\xa6\x00\x00\x00\x00\x5d\xa7\x00\x00\x5d\xa1\x4e\xe6\x00\x00\x00\x00\x00\x00\x52\xa9\x00\x00\x48\x57\x5d\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa2\x00\x00\x52\x4a\x5d\xa3\x5d\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa3\x4d\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xab\x00\x00\x00\x00\x5d\xb1\x00\x00\x00\x00\x5d\xaf\x00\x00\x4f\xb7\x00\x00\x00\x00\x5d\xb7\x5d\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xad\x5d\xb4", /* 6f00 */ "\x00\x00\x4b\x78\x4f\xbc\x00\x00\x00\x00\x00\x00\x4d\xae\x00\x00\x00\x00\x54\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xc4\x00\x00\x55\x75\x00\x00\x5d\xb6\x49\xed\x54\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8e\x00\x00\x4f\x58\x54\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x6e\x4e\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xb0\x5d\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xb5\x5d\xae\x00\x00\x5d\xa9\x00\x00\x00\x00\x00\x00\x5d\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x4a\xc2\x00\x00\x00\x00\x00\x00\x5d\xc3\x00\x00\x00\x00\x5d\xbd\x4d\xc0\x00\x00\x00\x00\x46\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd2\x00\x00\x5d\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xbe\x4c\x93\x5d\xbc\x54\x46\x00\x00\x00\x00\x00\x00\x5d\xbf\x00\x00\x00\x00\x00\x00\x5d\xba\x00\x00\x5d\xb9\x00\x00\x5d\xc2\x00\x00\x00\x00\x00\x00", /* 6f80 */ "\x5d\xbb\x55\xa0\x5d\xc0\x00\x00\x48\x87\x00\x00\x5d\xb8\x00\x00\x5d\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xc5\x00\x00\x00\x00\x5d\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xcb\x00\x00\x5d\xc9\x4e\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x89\x00\x00\x5d\xc8\x00\x00\x5d\xca\x00\x00\x00\x00\x00\x00\x5d\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xd0\x50\xbe\x5d\xcf\x4a\xce\x00\x00\x00\x00\x5d\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xd4\x5d\xd1\x00\x00\x00\x00\x5d\xd3\x00\x00\x00\x00\x5d\xcd\x00\x00\x00\x00\x00\x00\x5d\xd0\x53\x80\x50\x7e\x00\x00\x00\x00\x51\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa3\x5d\xd2\x00\x00\x5d\xd6\x4d\xd4\x00\x00\x50\x55\x00\x00\x5d\xe2\x00\x00\x5d\xd5\x66\x58\x00\x00\x00\x00\x00\x00\x5d\xdb\x00\x00\x00\x00\x00\x00\x51\x87\x00\x00", /* 7000 */ "\x00\x00\x5d\xdd\x00\x00\x00\x00\x00\x00\x5d\xd7\x55\x50\x5d\xd8\x00\x00\x5d\xd9\x00\x00\x5d\xda\x00\x00\x00\x00\x00\x00\x5d\xde\x00\x00\x5d\xdc\x00\x00\x00\x00\x00\x00\x55\xd1\x00\x00\x00\x00\x5d\xe4\x00\x00\x5d\xe0\x5d\xdf\x00\x00\x52\xb0\x53\x5c\x5d\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xde\x52\xae\x5d\xe3\x00\x00\x00\x00\x00\x00\x46\x5b\x00\x00\x00\x00\x00\x00\x5d\xe5\x00\x00\x5d\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x85\x00\x00\x00\x00\x00\x00\x4b\x65\x4a\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x73\x00\x00\x00\x00\x00\x00\x54\x6a\x4c\xbc\x00\x00\x00\x00", /* 7080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xea\x00\x00\x00\x00\x00\x00\x49\x7d\x4f\xcb\x00\x00\x00\x00\x00\x00\x4d\xad\x00\x00\x00\x00\x00\x00\x4f\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xed\x5d\xee\x48\x61\x5d\xf0\x5d\xec\x00\x00\x00\x00\x00\x00\x52\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xef\x47\x88\x49\xd7\x52\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd1\x00\x00\x00\x00\x5d\xf2\x00\x00\x00\x00\x00\x00\x50\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf3\x00\x00\x00\x00\x00\x00\x53\x8c\x00\x00\x5d\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x87\x00\x00\x00\x00\x00\x00\x5d\xf8\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x53\xee\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xfa\x54\x4f\x00\x00\x5d\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x47\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xfc\x5d\xfd\x00\x00\x4c\x6f\x00\x00\x00\x00\x5e\x42\x00\x00\x54\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x85\x5e\x43\x00\x00\x00\x00\x4b\xdd\x00\x00\x00\x00\x5d\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x41\x00\x00\x54\xea\x53\x57\x5d\xfe\x47\x42\x00\x00\x54\xa0\x00\x00\x00\x00\x5e\x44\x00\x00\x4c\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x90\x00\x00\x00\x00", /* 7180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x47\x00\x00\x00\x00\x00\x00\x5e\x45\x00\x00\x46\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x46\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9d\x5e\x48\x00\x00\x00\x00\x00\x00\x4f\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbb\x00\x00\x00\x00\x00\x00\x5e\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x47\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x4d\x00\x00\x00\x00\x5e\x4b\x00\x00\x49\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf8\x5e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x53\x00\x00\x4a\x79\x00\x00\x5e\x4e\x00\x00\x5e\x51\x50\x47\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfb\x5e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x66\x54\xce\x5e\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x56\x54\xe6\x57\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x54\x00\x00\x00\x00\x00\x00\x5e\x59\x00\x00\x5e\x57\x5e\x58\x00\x00\x5e\x5a\x5e\x5b", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x5c\x00\x00\x00\x00\x5e\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x5e\x00\x00\x4c\x87\x00\x00\x5e\x60\x5e\x5f\x00\x00\x00\x00\x5e\x61\x00\x00\x5e\x62\x00\x00\x00\x00\x53\xa9\x45\xcc\x00\x00\x00\x00\x00\x00\x50\x96\x5e\x63\x5e\x64\x52\xdd\x4c\x79\x5e\x65\x5e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x67\x47\x67\x4a\xbd\x00\x00\x00\x00\x5e\x68\x55\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x69\x53\xfc\x00\x00\x49\x73\x00\x00\x55\xb7\x00\x00\x4a\xaf\x00\x00\x50\x9a\x55\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7b\x00\x00\x46\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x58\x00\x00\x5e\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x46\xa2\x00\x00\x00\x00\x00\x00\x54\x8a\x5e\x6b\x00\x00", /* 7280 */ "\x53\x54\x5e\x6c\x5e\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6f\x00\x00\x00\x00\x00\x00\x5e\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xdc\x00\x00\x5e\x71\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x72\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc5\x00\x00\x00\x00\x4c\xa7\x00\x00\x5e\x73\x5e\x74\x00\x00\x00\x00\x00\x00\x48\x52\x00\x00\x00\x00\x5e\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x75\x00\x00\x00\x00\x00\x00\x4e\x5a\x5e\x76\x5e\x78\x00\x00\x5e\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7a\x00\x00\x51\xdb\x00\x00\x5e\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x52\x74\x00\x00\x4e\xcf\x00\x00\x50\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7d\x5e\x7e\x5e\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7b\x00\x00\x00\x00\x4a\xdb\x4c\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x80\x52\xfe\x5e\x7f\x00\x00\x00\x00\x50\x6f\x54\xd6\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x84\x5e\x81\x00\x00\x00\x00\x00\x00\x4a\x51\x5e\x83\x5e\x85\x00\x00\x4e\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x86\x5e\x8b\x00\x00\x00\x00\x00\x00\x5e\x88\x49\xc5\x4f\xd0\x00\x00\x00\x00\x4f\x45\x5e\x89\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x87\x00\x00\x50\x4f\x53\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8c\x4c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x95\x51\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8e\x5e\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x65\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x92\x00\x00\x5e\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x93\x00\x00\x4d\x61\x00\x00\x00\x00\x5e\x96\x00\x00\x5e\x94\x5e\x95\x00\x00\x51\xcb\x5e\x97\x00\x00\x00\x00\x00\x00\x00\x00", /* 7380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x6e\x00\x00\x00\x00\x47\x83\x00\x00\x45\xfd\x00\x00\x49\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf9\x5e\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9c\x00\x00\x5e\x99\x00\x00\x00\x00\x5e\x9d\x00\x00\x4c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x98\x5e\x9e\x53\x99\x00\x00\x00\x00\x4d\x5d\x5e\x9b\x00\x00\x00\x00\x00\x00\x5e\xa2\x00\x00\x00\x00\x00\x00\x5e\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa5\x00\x00\x4b\x99\x00\x00\x00\x00\x5e\xa1\x00\x00\x5e\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb9\x00\x00\x00\x00\x50\x66\x5e\xa3\x00\x00\x00\x00\x5e\xa4\x00\x00\x00\x00\x00\x00\x5e\xa8\x00\x00\x00\x00\x5e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xb7\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x48\xdb\x00\x00\x5e\xa9\x45\xeb\x5e\xa7\x00\x00\x50\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5c\x00\x00\x00\x00\x5e\xac\x5e\xaa\x00\x00\x00\x00\x5e\xad\x5e\xab\x00\x00\x00\x00\x00\x00\x5e\xae\x00\x00\x00\x00\x00\x00\x5e\xaf\x54\x53\x4c\xd8\x52\xa3\x52\x9f\x00\x00\x00\x00\x00\x00\x5e\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb2\x00\x00\x5e\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb1\x00\x00\x00\x00\x00\x00\x5e\xb4\x53\xf1\x4f\x52\x5e\xb6\x00\x00\x4b\x5b\x5e\xb3\x50\x8c\x00\x00\x5e\xbc\x5e\xb9\x5e\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb7\x5e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbe\x5e\xb8\x00\x00\x00\x00\x51\x88\x00\x00\x00\x00\x68\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbf\x00\x00", /* 7480 */ "\x00\x00\x00\x00\x00\x00\x52\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbd\x00\x00\x50\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc1\x5e\xc0\x00\x00\x00\x00\x5e\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x64\x00\x00\x00\x00\x00\x00\x5e\xc7\x00\x00\x54\x52\x5e\xc8\x00\x00\x00\x00\x49\xc2\x5e\xc9\x00\x00\x5e\xca\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xcb\x00\x00\x5e\xcc\x5e\xce\x5e\xcd\x00\x00\x00\x00\x00\x00\x4c\xd4\x5e\xcf\x5e\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7500 */ "\x00\x00\x5e\xd1\x00\x00\x5e\xd3\x5e\xd2\x5e\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xd6\x5e\xd5\x5e\xd7\x00\x00\x00\x00\x54\x95\x00\x00\x5e\xd8\x00\x00\x53\xe6\x00\x00\x00\x00\x4b\x55\x00\x00\x4b\x66\x00\x00\x52\xa7\x00\x00\x5e\xd9\x45\x99\x00\x00\x00\x00\x00\x00\x45\xc0\x00\x00\x55\xd7\x5e\xda\x00\x00\x45\xb6\x00\x00\x00\x00\x4d\x58\x5e\xdb\x00\x00\x00\x00\x58\xfe\x45\x63\x46\x7c\x48\xa0\x49\x67\x00\x00\x00\x00\x00\x00\x45\x7c\x57\x65\x00\x00\x45\x55\x46\x77\x5e\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xdd\x00\x00\x5e\xe1\x00\x00\x00\x00\x5e\xe0\x5e\xdf\x5b\x7c\x47\xae\x5e\xde\x00\x00\x55\x8f\x00\x00\x47\x8b\x00\x00\x00\x00\x4e\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x47\xab\x5e\xe3\x5e\xe2\x4d\x72\x50\x86\x00\x00\x00\x00\x49\xfe\x00\x00\x55\x9a\x00\x00\x5e\xe4\x4c\xf0\x51\xb4\x5e\xe5\x00\x00\x52\xfd\x48\xb9\x5e\xe6\x00\x00\x5e\xe9\x00\x00\x5e\xe7\x4a\xa9\x00\x00\x00\x00\x4e\x54\x5e\xe8\x00\x00\x5e\xeb\x50\xdd\x5e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xd4", /* 7580 */ "\x00\x00\x00\x00\x5e\xec\x00\x00\x00\x00\x00\x00\x5e\xed\x5e\xee\x00\x00\x5e\xf0\x5e\xef\x4e\xa0\x00\x00\x00\x00\x51\x71\x55\xb0\x00\x00\x4c\xb4\x00\x00\x00\x00\x5e\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf2\x00\x00\x00\x00\x5e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf5\x00\x00\x5e\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xfd\x4d\x97\x5e\xf7\x00\x00\x5e\xf9\x00\x00\x00\x00\x5e\xfb\x54\xe1\x00\x00\x00\x00\x5e\xfc\x5e\xfa\x51\x42\x00\x00\x00\x00\x00\x00\x5e\xf6\x5e\xf8\x00\x00\x49\xbf\x00\x00\x4e\x4a\x00\x00\x00\x00\x5f\x41\x00\x00\x00\x00\x5e\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x42\x00\x00\x51\x82\x53\xfd\x00\x00\x00\x00\x55\x49\x5f\x43\x00\x00\x4c\x47\x00\x00\x00\x00\x5f\x45\x00\x00\x00\x00\x00\x00\x51\x74\x5f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4a\x00\x00\x5f\x4c\x5f\x4d\x50\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4b\x00\x00\x5f\x48\x00\x00\x5f\x46\x5f\x47", /* 7600 */ "\x00\x00\x5f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4f\x00\x00\x5f\x4e\x00\x00\x52\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x50\x5f\x52\x5f\x53\x5f\x54\x00\x00\x5f\x55\x00\x00\x54\xa4\x5f\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x00\x00\x00\x00\x00\x00\x5f\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb7\x00\x00\x00\x00\x00\x00\x5f\x5c\x5f\x59\x5f\x5a\x00\x00\x00\x00\x00\x00\x54\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xaa\x00\x00\x00\x00\x00\x00\x53\x7e\x00\x00\x5f\x5b\x00\x00\x00\x00\x00\x00\x5f\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5e\x5f\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x62\x5f\x60\x5f\x61\x5f\x63\x00\x00\x5f\x64\x00\x00\x00\x00\x00\x00\x5f\x65\x00\x00\x5f\x66\x00\x00\x00\x00\x00\x00\x5f\x67\x00\x00\x53\x9a\x00\x00\x46\x4b\x46\xe8\x5f\x68\x46\x59\x45\x4b\x00\x00", /* 7680 */ "\x5f\x6a\x00\x00\x5f\x69\x5f\x6b\x45\xef\x00\x00\x4a\xb0\x4c\xbb\x5f\x6c\x00\x00\x00\x00\x5f\x6d\x00\x00\x00\x00\x52\x99\x00\x00\x52\xa4\x00\x00\x00\x00\x4e\x81\x00\x00\x00\x00\x53\x96\x00\x00\x00\x00\x5f\x6e\x5f\x6f\x5f\x72\x5f\x70\x00\x00\x5f\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xda\x00\x00\x5f\x74\x00\x00\x00\x00\x00\x00\x5f\x75\x00\x00\x00\x00\x68\x68\x5f\x76\x5f\x77\x5f\x78\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc7\x00\x00\x00\x00\x5f\x79\x53\xba\x00\x00\x00\x00\x50\x57\x00\x00\x51\xb5\x00\x00\x47\x74\x00\x00\x00\x00\x5f\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x7d\x00\x00\x00\x00\x00\x00\x5f\x7c\x4d\x65\x00\x00\x00\x00\x00\x00\x48\x44\x5c\xc9\x00\x00\x5f\x7e\x4b\x84\x00\x00\x5f\x7f\x00\x00\x49\xe3\x48\x90\x5f\x80\x00\x00\x53\xf7\x00\x00\x00\x00\x5f\x81\x00\x00\x00\x00\x00\x00\x46\x75\x00\x00\x00\x00\x00\x00\x50\x80\x00\x00\x46\x74\x00\x00\x00\x00\x00\x00\x46\x78\x00\x00\x00\x00\x5f\x83\x00\x00\x00\x00\x50\x82\x00\x00", /* 7700 */ "\x00\x00\x48\x47\x00\x00\x00\x00\x5f\x86\x00\x00\x00\x00\x5f\x85\x5f\x84\x52\xbc\x00\x00\x4d\xa2\x45\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8b\x00\x00\x00\x00\x51\xca\x46\x42\x4e\x6a\x00\x00\x00\x00\x00\x00\x5f\x87\x5f\x89\x5f\x8a\x00\x00\x00\x00\x5f\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8c\x5f\x8d\x00\x00\x4e\x5f\x00\x00\x49\xa5\x00\x00\x00\x00\x00\x00\x47\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8e\x5f\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x90\x5f\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6c\x00\x00\x4a\x73\x00\x00\x5f\x94\x4a\x96\x00\x00\x5f\x91\x00\x00\x00\x00\x5f\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x97\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x96\x5f\x95", /* 7780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x99\x00\x00\x00\x00\x5f\x98\x00\x00\x00\x00\x5f\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9c\x00\x00\x5f\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb0\x52\x7d\x00\x00\x00\x00\x5f\x9d\x00\x00\x00\x00\x4f\x9b\x00\x00\x00\x00\x5f\x9e\x00\x00\x00\x00\x5f\x9f\x00\x00\x5f\xa3\x5f\xa1\x5f\xa2\x00\x00\x5f\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x50\x00\x00\x00\x00\x5f\xa6\x50\xed\x5f\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc1\x5f\xa8\x00\x00\x45\xb0\x00\x00\x55\xc9\x00\x00\x4e\x4d\x00\x00\x00\x00\x00\x00\x4a\x82\x5f\xa9\x51\xbb\x00\x00\x00\x00\x00\x00\x45\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xab\x00\x00\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x49\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xad\x00\x00\x46\xd3\x4c\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb0\x5f\xae\x00\x00\x00\x00\x00\x00\x4d\x45\x54\xb4\x52\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc2\x00\x00\x4a\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x84\x4a\xef\x00\x00\x00\x00\x53\x69\x00\x00\x00\x00\x52\xbf\x00\x00\x5f\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb6\x00\x00\x5f\xb9\x00\x00\x00\x00\x00\x00", /* 7880 */ "\x00\x00\x4f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb7\x51\x95\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xba\x53\x56\x5f\xb5\x00\x00\x00\x00\x51\x7b\x00\x00\x4f\xb1\x00\x00\x52\xd2\x00\x00\x54\x5b\x00\x00\x00\x00\x5f\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbb\x00\x00\x00\x00\x00\x00\x4d\xf8\x00\x00\x50\x7d\x5f\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7a\x00\x00\x5f\xc4\x00\x00\x5f\xc3\x00\x00\x00\x00\x4a\x62\x00\x00\x00\x00\x00\x00\x5f\xc5\x5f\xc0\x00\x00\x00\x00\x00\x00\x5f\xc6\x5f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x9c\x5f\xbf\x00\x00\x00\x00\x5f\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc8\x49\xb4\x00\x00\x00\x00\x00\x00\x5f\xc7\x00\x00\x00\x00\x48\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xca\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x51\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x9c\x00\x00\x00\x00\x5f\xcd\x4d\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xb9\x00\x00\x00\x00\x00\x00\x51\x4c\x5f\xd0\x5f\xcf\x00\x00\x00\x00\x00\x00\x5f\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x53\x00\x00\x49\x58\x00\x00\x46\x63\x00\x00\x5f\xd3\x53\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x92\x4e\xd8\x4f\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8c\x00\x00\x00\x00\x55\x5c\x00\x00\x5f\xd8\x4c\xdc\x53\x65\x00\x00\x00\x00\x5f\xd7\x00\x00\x00\x00\x4c\xeb\x45\xa1\x5f\xd6\x5f\xd4\x00\x00\x4f\x89\x00\x00\x00\x00\x49\xf9\x00\x00\x00\x00\x4d\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x53\x00\x00\x00\x00\x52\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xda", /* 7980 */ "\x50\xe7\x4d\x75\x00\x00\x00\x00\x50\xae\x4f\x87\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdb\x00\x00\x00\x00\x52\x86\x4b\xa7\x45\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdf\x00\x00\x5f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xaa\x4f\xd7\x00\x00\x00\x00\x5f\xe0\x00\x00\x00\x00\x00\x00\x54\xf5\x00\x00\x50\xfa\x55\x53\x00\x00\x5f\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6a\x5f\xe2\x00\x00\x00\x00\x55\x5d\x54\x63\x53\xd0\x45\xf1\x46\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe3\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xed\x4d\xba\x00\x00\x00\x00\x5f\xe4\x00\x00\x00\x00\x4c\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x83\x00\x00\x54\xb5\x00\x00\x5f\xe7\x50\x8f\x00\x00\x4c\x8a\x5f\xe5\x00\x00\x4d\x9f\x00\x00\x00\x00\x5f\xe6\x00\x00\x00\x00\x00\x00\x4b\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x75\x00\x00\x00\x00\x00\x00\x00\x00", /* 7a00 */ "\x52\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe8\x00\x00\x00\x00\x47\xf4\x00\x00\x5f\xe9\x47\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xfa\x00\x00\x00\x00\x50\x87\x5f\xea\x5f\xeb\x4d\xcf\x00\x00\x52\x96\x00\x00\x00\x00\x5f\xec\x53\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x92\x00\x00\x00\x00\x5f\xed\x47\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xef\x00\x00\x00\x00\x00\x00\x5f\xf0\x4d\xbe\x4f\xc7\x5f\xee\x4f\xd5\x4e\x94\x00\x00\x48\xd4\x5f\xf1\x00\x00\x00\x00\x52\xbe\x00\x00\x00\x00\x5f\xf3\x00\x00\x00\x00\x00\x00\x48\x91\x52\x54\x50\xb8\x50\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf5\x5f\xf4\x4e\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf6\x00\x00\x4f\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf8\x00\x00\x00\x00\x00\x00\x4b\x86\x00\x00\x49\x86\x00\x00\x00\x00\x5f\xf9\x47\x8d\x00\x00\x00\x00\x5f\xfa\x00\x00\x4e\x91", /* 7a80 */ "\x00\x00\x4a\xfd\x00\x00\x51\x69\x54\x99\x00\x00\x00\x00\x00\x00\x5f\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb0\x4b\xe9\x00\x00\x5f\xfc\x5f\xfe\x60\x41\x5f\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x42\x4a\x65\x00\x00\x00\x00\x00\x00\x50\xaa\x49\xa7\x60\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x44\x00\x00\x00\x00\x00\x00\x55\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x47\x00\x00\x00\x00\x00\x00\x60\x46\x60\x49\x60\x48\x00\x00\x60\x4a\x52\xf0\x00\x00\x60\x4b\x45\xdd\x00\x00\x60\x4c\x00\x00\x60\x4d\x00\x00\x60\x4f\x60\x4e\x60\x51\x00\x00\x60\x50\x00\x00\x00\x00\x00\x00\x60\x52\x60\x53\x00\x00\x49\xe7\x60\x54\x00\x00\x66\xc1\x47\x6e\x60\x55\x60\x56\x54\x6b\x00\x00\x4d\x50\x60\x57\x60\x58\x00\x00\x00\x00\x51\xc8\x60\x5a\x00\x00\x60\x5b\x00\x00\x48\xef\x60\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x71\x00\x00\x60\x5d\x45\xf5\x54\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x52\x87", /* 7b00 */ "\x00\x00\x00\x00\x60\x5e\x00\x00\x54\xd5\x00\x00\x60\x62\x00\x00\x51\xcf\x00\x00\x60\x61\x60\x60\x00\x00\x00\x00\x00\x00\x60\x5f\x00\x00\x49\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe7\x60\x65\x00\x00\x4f\x41\x00\x00\x00\x00\x60\x66\x00\x00\x47\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf4\x4f\xd9\x00\x00\x60\x68\x00\x00\x00\x00\x00\x00\x46\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x63\x00\x00\x60\x67\x60\x64\x00\x00\x00\x00\x49\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6c\x4a\xc7\x00\x00\x4d\x9b\x46\xa7\x00\x00\x4b\x8f\x60\x6b\x60\x6a\x00\x00\x52\xf5\x60\x69\x4b\x45\x4b\x7c\x00\x00\x49\xd0\x00\x00\x46\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x84\x00\x00\x50\x48\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4e\x00\x00\x60\x73\x00\x00\x60\x71\x60\x72\x00\x00\x00\x00\x60\x70\x60\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7b80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9b\x4f\x51\x00\x00\x00\x00\x00\x00\x55\xa4\x00\x00\x60\x77\x00\x00\x60\x7b\x00\x00\x00\x00\x60\x7a\x00\x00\x4e\xe0\x4c\xcc\x00\x00\x48\x43\x60\x75\x60\x7c\x60\x79\x00\x00\x60\x78\x60\x74\x60\x82\x60\x76\x00\x00\x46\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x00\x00\x00\x00\x51\x8d\x00\x00\x00\x00\x00\x00\x4a\xfb\x00\x00\x00\x00\x60\x80\x00\x00\x00\x00\x00\x00\x50\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa1\x51\xe8\x00\x00\x00\x00\x49\xe8\x00\x00\x60\x81\x4f\xb6\x00\x00\x49\xa8\x00\x00\x60\x7e\x60\x7f\x00\x00\x00\x00\x60\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x83\x00\x00\x00\x00\x48\x75\x00\x00\x00\x00\x00\x00\x4a\xd8\x60\x87\x60\x85\x00\x00\x00\x00\x60\x84\x00\x00\x00\x00\x00\x00\x54\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8c\x00\x00\x00\x00\x60\x8e\x60\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7c00 */ "\x60\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8d\x00\x00\x00\x00\x00\x00\x4f\x53\x57\x8a\x60\x8a\x60\x88\x00\x00\x00\x00\x51\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x60\x92\x00\x00\x4b\xec\x00\x00\x60\x8f\x00\x00\x00\x00\x00\x00\x60\x90\x00\x00\x00\x00\x60\x91\x60\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x93\x51\xab\x00\x00\x00\x00\x00\x00\x00\x00\x60\x95\x52\x70\x4f\x4c\x60\x96\x00\x00\x00\x00\x60\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x97\x4d\xfe\x00\x00\x51\xf2\x60\x9a\x00\x00\x00\x00\x00\x00\x4f\x99\x00\x00\x60\x99\x00\x00\x60\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9c\x4c\xee\x00\x00\x00\x00\x00\x00\x52\xaa\x60\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x6f\x00\x00\x60\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf0\x00\x00", /* 7c80 */ "\x00\x00\x55\xe7\x4e\x85\x60\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x9e\x00\x00\x4f\xcc\x00\x00\x53\xc9\x00\x00\x00\x00\x60\xa1\x00\x00\x4c\xa9\x00\x00\x00\x00\x4c\x4b\x00\x00\x4d\x59\x4b\xf7\x00\x00\x00\x00\x4f\xc8\x00\x00\x00\x00\x00\x00\x4b\xfb\x00\x00\x60\xa5\x60\xa3\x00\x00\x60\xa2\x52\xab\x00\x00\x4b\xd4\x60\xa7\x00\x00\x00\x00\x60\xa4\x00\x00\x60\xa6\x60\xab\x00\x00\x00\x00\x60\xaa\x60\xa9\x60\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xac\x00\x00\x00\x00\x00\x00\x60\xae\x46\x6c\x00\x00\x51\xbc\x00\x00\x60\xb0\x00\x00\x00\x00\x60\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x54\x71\x00\x00\x00\x00\x00\x00\x51\x60\x00\x00\x00\x00\x00\x00\x60\xb1\x00\x00\x00\x00\x00\x00\x48\x84\x00\x00\x60\xb3\x00\x00\x00\x00\x00\x00\x60\xb4\x00\x00\x54\x92\x51\x8c\x51\x4b\x00\x00\x60\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xb5\x00\x00\x00\x00\x60\xb6\x00\x00\x60\xb7\x00\x00\x60\xb8\x00\x00\x46\xc7\x00\x00\x52\xc2\x48\xfa\x00\x00\x00\x00\x51\xfe\x00\x00", /* 7d00 */ "\x46\xdb\x00\x00\x60\xba\x00\x00\x47\xbd\x4b\x67\x60\xb9\x00\x00\x00\x00\x00\x00\x60\xbd\x4c\xf9\x00\x00\x49\xe2\x00\x00\x00\x00\x4f\xb5\x00\x00\x00\x00\x00\x00\x47\xa6\x60\xbc\x00\x00\x4f\x47\x4c\x78\x46\x80\x49\xf3\x4f\xf3\x60\xbb\x00\x00\x00\x00\x00\x00\x47\x9f\x48\x77\x4c\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf0\x55\x92\x00\x00\x60\xc0\x51\x48\x47\x68\x00\x00\x60\xc1\x4e\x59\x00\x00\x60\xc3\x00\x00\x00\x00\x00\x00\x4c\xe4\x4c\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc2\x00\x00\x00\x00\x49\xf4\x55\x63\x46\xb9\x60\xbe\x60\xc5\x00\x00\x60\xc4\x00\x00\x00\x00\x60\xbf\x46\x88\x00\x00\x60\xc9\x60\xcc\x46\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd0\x60\xc6\x00\x00\x50\x6d\x00\x00\x00\x00\x4c\xe7\x4e\xf7\x60\xcd\x00\x00\x00\x00\x47\x57\x00\x00\x60\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcb\x00\x00\x00\x00\x48\x81\x52\x68\x60\xc7\x00\x00\x4a\xe4\x4a\xf3\x00\x00\x00\x00\x49\xf6\x00\x00\x00\x00\x00\x00\x54\xed\x00\x00\x00\x00", /* 7d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x74\x00\x00\x00\x00\x00\x00\x60\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x4a\x47\xcb\x54\xeb\x50\x70\x00\x00\x00\x00\x60\xdc\x60\xda\x00\x00\x60\xd8\x60\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd7\x51\xa3\x48\x80\x60\xd1\x60\xd9\x60\xdd\x48\xcb\x4a\x53\x00\x00\x4d\xc9\x60\xd3\x00\x00\x60\xd4\x60\xdb\x00\x00\x54\xd3\x54\xa6\x00\x00\x60\xd6\x49\xdc\x48\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd5\x00\x00\x00\x00\x4b\x97\x53\x7d\x00\x00\x00\x00\x00\x00\x47\x93\x00\x00\x48\xa5\x4a\x9b\x00\x00\x00\x00\x60\xde\x60\xe1\x00\x00\x60\xdf\x00\x00\x46\x87\x00\x00\x60\xe8\x60\xe0\x60\xe3\x00\x00\x4a\x80\x60\xe7\x00\x00\x00\x00\x60\xe2\x00\x00\x00\x00\x00\x00\x48\x4e\x4c\xfc\x00\x00\x00\x00\x55\x6b\x00\x00\x00\x00\x4e\x9a\x00\x00\x00\x00\x60\xe6\x00\x00\x48\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe4\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x4b\xaa\x00\x00\x00\x00\x48\x59\x60\xe9\x00\x00\x00\x00\x00\x00\x60\xee\x60\xea\x60\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe6\x00\x00\x00\x00\x4f\x6b\x60\xed\x00\x00\x60\xeb\x5b\xcc\x55\xa8\x00\x00\x00\x00\x4e\x93\x00\x00\x00\x00\x00\x00\x00\x00\x49\xe4\x00\x00\x00\x00\x49\xf7\x00\x00\x00\x00\x60\xf2\x60\xf9\x00\x00\x00\x00\x60\xf4\x00\x00\x60\xf8\x00\x00\x60\xf6\x60\xef\x60\xf5\x00\x00\x60\xf3\x48\x66\x00\x00\x00\x00\x47\x59\x00\x00\x60\xf7\x00\x00\x00\x00\x60\xf0\x00\x00\x60\xf1\x00\x00\x48\x68\x53\x73\x00\x00\x52\xda\x00\x00\x00\x00\x00\x00\x00\x00\x60\xfd\x00\x00\x48\x9a\x51\xd4\x60\xfb\x00\x00\x00\x00\x60\xfe\x61\x41\x00\x00\x00\x00\x60\xfa\x60\xfc\x00\x00\x00\x00\x52\xda\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf1\x61\x42\x00\x00\x61\x45\x61\x44\x53\x73\x00\x00\x4d\x9a\x00\x00\x00\x00\x4b\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x43\x00\x00\x61\x47\x61\x46\x61\x48\x00\x00\x61\x4a", /* 7e80 */ "\x00\x00\x00\x00\x55\xeb\x61\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x52\x78\x61\x4c\x51\xbf\x00\x00\x61\x4e\x00\x00\x61\x4d\x55\xfa\x52\x73\x00\x00\x61\x4f\x61\x50\x61\x51\x00\x00\x61\x52\x00\x00\x00\x00\x00\x00\x00\x00\x61\x53\x53\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x84\x00\x00\x61\x54\x00\x00\x61\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x56\x00\x00\x61\x57\x00\x00\x00\x00\x00\x00\x00\x00\x61\x58\x54\xcb\x61\x59\x00\x00\x51\x6e\x61\x5a\x00\x00\x00\x00\x61\x5c\x61\x5b\x00\x00\x00\x00\x61\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5e\x61\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x61\x61\x60\x61\x62\x4c\x4e\x55\xef\x00\x00\x00\x00\x46\x8c\x00\x00\x4f\x82\x00\x00\x4c\x99\x00\x00\x00\x00\x55\x79\x00\x00\x55\xa5\x61\x63\x5a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f80 */ "\x00\x00\x00\x00\x61\x64\x61\x66\x00\x00\x4d\xfa\x61\x65\x61\x67\x61\x68\x00\x00\x4a\xd1\x00\x00\x61\x69\x00\x00\x45\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6d\x00\x00\x00\x00\x61\x6c\x61\x6b\x00\x00\x00\x00\x61\x6e\x00\x00\x61\x6f\x47\xb1\x00\x00\x00\x00\x00\x00\x55\x96\x45\x98\x00\x00\x00\x00\x00\x00\x00\x00\x61\x71\x61\x70\x00\x00\x00\x00\x61\x72\x00\x00\x00\x00\x00\x00\x61\x74\x00\x00\x61\x75\x61\x73\x00\x00\x00\x00\x00\x00\x47\x8f\x00\x00\x00\x00\x00\x00\x4f\xfb\x00\x00\x00\x00\x00\x00\x61\x78\x61\x79\x00\x00\x00\x00\x00\x00\x61\x7a\x00\x00\x4d\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x69\x00\x00\x54\xf9\x61\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x69\x61\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7d\x00\x00\x00\x00\x61\x7e\x00\x00\x55\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb6\x00\x00\x00\x00\x61\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x80\x00\x00\x51\xf6\x4d\xb5\x00\x00\x00\x00\x00\x00", /* 8000 */ "\x52\xa0\x49\x85\x00\x00\x47\x60\x61\x81\x46\x70\x53\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x61\x82\x51\xe6\x00\x00\x00\x00\x00\x00\x49\x8e\x00\x00\x61\x83\x00\x00\x00\x00\x49\x9a\x00\x00\x4f\xec\x54\xe4\x61\x84\x00\x00\x00\x00\x61\x85\x00\x00\x00\x00\x00\x00\x00\x00\x61\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xab\x00\x00\x00\x00\x4e\x99\x00\x00\x00\x00\x00\x00\x00\x00\x61\x89\x00\x00\x55\xb8\x00\x00\x61\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8b\x00\x00\x00\x00\x00\x00\x61\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8c\x00\x00\x00\x00\x00\x00\x4b\xb5\x00\x00\x61\x8d\x00\x00\x54\x79\x00\x00\x00\x00\x00\x00\x48\xbb\x61\x8e\x00\x00\x4b\x89\x61\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xca\x61\x93\x00\x00\x61\x92\x61\x91\x4d\xa8\x00\x00\x61\x94\x48\xd7\x00\x00\x61\x95\x00\x00\x00\x00\x00\x00\x61\x96\x53\xe4\x61\x97", /* 8080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x61\x98\x61\x99\x53\xb6\x4b\x41\x00\x00\x4a\x42\x00\x00\x55\x7f\x4e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x9a\x00\x00\x00\x00\x52\x67\x00\x00\x52\x6a\x00\x00\x61\x9b\x52\x92\x00\x00\x4c\x8c\x00\x00\x00\x00\x00\x00\x4c\xc5\x53\x82\x00\x00\x00\x00\x49\x7b\x00\x00\x00\x00\x00\x00\x4b\x79\x4c\xfb\x00\x00\x61\x9e\x61\x9c\x00\x00\x50\xeb\x00\x00\x52\xd5\x48\xac\x00\x00\x54\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf6\x61\xa3\x00\x00\x4e\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb2\x00\x00\x52\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x88\x00\x00\x00\x00\x61\xa1\x61\xa4\x61\x9f\x00\x00\x61\xa2\x50\xb6\x00\x00\x00\x00\x4d\x63\x00\x00\x00\x00\x4e\xe9\x61\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa6\x00\x00\x61\xa7\x00\x00\x00\x00\x4e\xab\x00\x00\x00\x00\x00\x00\x4b\xe3\x00\x00\x00\x00\x00\x00\x61\xb0\x47\x4f\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x48\x74\x00\x00\x00\x00\x50\x51\x55\xec\x47\xe3\x50\x79\x61\xa5\x53\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5c\x61\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xaa\x00\x00\x4a\xb4\x00\x00\x4c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x61\xad\x00\x00\x00\x00\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x61\xac\x00\x00\x00\x00\x00\x00\x00\x00\x61\xab\x00\x00\x00\x00\x52\xc4\x00\x00\x4d\x62\x61\xaf\x00\x00\x61\xae\x52\x47\x4c\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb3\x61\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x51\xce\x00\x00\x00\x00\x61\xb2\x00\x00\x4b\xa4\x61\xb1\x00\x00\x00\x00\x61\xb6\x00\x00\x00\x00\x00\x00\x4d\xb6\x4c\xa0\x52\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9a", /* 8180 */ "\x61\xba\x00\x00\x61\xbb\x61\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb8\x00\x00\x61\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd8\x00\x00\x00\x00\x00\x00\x61\xbf\x00\x00\x61\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x51\x91\x00\x00\x4d\x8a\x50\x60\x00\x00\x00\x00\x61\xbc\x00\x00\x00\x00\x61\xbe\x61\xc1\x00\x00\x00\x00\x00\x00\x4e\xf6\x61\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xc4\x00\x00\x00\x00\x50\x76\x00\x00\x61\xc0\x00\x00\x00\x00\x61\xc3\x00\x00\x61\xca\x00\x00\x00\x00\x61\xc7\x61\xc6\x53\x5f\x61\xc8\x00\x00\x61\xc9\x00\x00\x00\x00\x00\x00\x54\x74\x00\x00\x61\xc5\x61\xcb\x00\x00\x00\x00\x00\x00\x61\xcc\x00\x00\x00\x00\x00\x00\x61\xcd\x00\x00\x4d\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x61\xce\x61\xcf\x61\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd1\x61\xd2\x00\x00\x00\x00\x4a\x47\x00\x00\x53\x8a\x00\x00\x51\x73\x4c\xd0\x00\x00\x45\xc3\x00\x00\x00\x00\x4d\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x48\x4c\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd3\x61\xd4\x4a\x89\x00\x00\x61\xd5\x00\x00", /* 8200 */ "\x00\x00\x61\xd6\x61\xd7\x00\x00\x00\x00\x61\xd8\x00\x00\x53\x58\x46\x6a\x57\x78\x62\xba\x00\x00\x50\x94\x61\xd9\x4c\x58\x00\x00\x61\xda\x00\x00\x61\xdb\x00\x00\x00\x00\x00\x00\x61\xdc\x4e\x5b\x4c\xaa\x00\x00\x00\x00\x4f\xc1\x4f\xb8\x00\x00\x4a\x63\x4b\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdd\x48\x9f\x61\xde\x49\x56\x00\x00\x61\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe1\x00\x00\x54\xdb\x4b\x87\x53\xac\x61\xe0\x46\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xae\x61\xe3\x61\xe4\x00\x00\x00\x00\x61\xe5\x00\x00\x61\xe6\x00\x00\x00\x00\x61\xe8\x00\x00\x61\xe7\x00\x00\x4c\x4a\x00\x00\x61\xe9\x00\x00\x61\xea\x61\xeb\x00\x00\x00\x00\x55\xb4\x45\xc4\x00\x00\x61\xec\x47\xc3\x00\x00\x00\x00\x00\x00\x4d\x54\x61\xed\x53\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xee\x00\x00", /* 8280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9a\x00\x00\x61\xef\x00\x00\x00\x00\x00\x00\x00\x00\x61\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbd\x00\x00\x00\x00\x00\x00\x49\x72\x00\x00\x61\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7b\x4a\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x61\xf1\x61\xf4\x54\x42\x00\x00\x4f\xe5\x00\x00\x46\xd9\x00\x00\x46\x83\x00\x00\x00\x00\x00\x00\x00\x00\x49\x53\x4d\xd0\x00\x00\x61\xf3\x00\x00\x4e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4b\x61\xf9\x55\x59\x52\xd7\x00\x00\x00\x00\x4a\xb8\x00\x00\x62\x46\x00\x00\x53\x77\x62\x43\x00\x00\x62\x41\x61\xf7\x00\x00\x61\xf5\x00\x00\x61\xf6\x00\x00\x46\xd6\x4a\x5f\x54\xb0\x00\x00\x00\x00\x00\x00\x4d\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xee\x00\x00\x61\xfb\x61\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x61\xfe\x62\x44\x61\xfd\x00\x00\x00\x00\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x61\xf8\x46\x46\x61\xfc\x54\x7a\x4b\xd3\x62\x42\x00\x00\x00\x00\x62\x45\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4a\x53\xf6\x62\x52\x00\x00\x00\x00\x00\x00\x50\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x58\x00\x00\x00\x00\x00\x00\x00\x00\x47\x4c\x00\x00\x00\x00\x62\x51\x00\x00\x00\x00\x00\x00\x62\x50\x00\x00\x62\x4b\x54\x7b\x00\x00\x62\x49\x62\x47\x49\x77\x00\x00\x4d\xf7\x62\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4f\x53\xb3\x00\x00\x00\x00\x48\x42\x53\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5f\x62\x4e\x00\x00\x46\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5f\x00\x00\x62\x5a\x00\x00\x4b\xa1\x00\x00\x00\x00\x00\x00\x49\xe0\x62\x5d\x00\x00\x00\x00\x62\x5b", /* 8380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x62\x00\x00\x54\x86\x00\x00\x62\x63\x62\x5c\x00\x00\x00\x00\x00\x00\x62\x59\x00\x00\x00\x00\x00\x00\x00\x00\x62\x60\x00\x00\x00\x00\x62\x57\x00\x00\x00\x00\x00\x00\x62\x53\x00\x00\x00\x00\x00\x00\x51\xee\x62\x55\x62\x61\x00\x00\x62\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x64\x00\x00\x62\x54\x54\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc9\x00\x00\x00\x00\x00\x00\x62\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x75\x00\x00\x00\x00\x00\x00\x62\x6e\x00\x00\x00\x00\x00\x00\x47\x53\x00\x00\x62\x67\x00\x00\x00\x00\x46\xd7\x00\x00\x4c\x73\x00\x00\x62\x68\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x51\x00\x00\x00\x00\x51\x80\x00\x00\x62\x6c\x00\x00\x00\x00\x00\x00\x4b\xa8\x00\x00\x00\x00\x53\xd4\x62\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6a\x00\x00\x54\xe9\x00\x00\x00\x00\x00\x00\x4b\x6c\x51\x6d\x48\xcc\x62\x71\x00\x00\x62\x65\x00\x00\x62\x74\x62\x69\x00\x00\x00\x00\x00\x00\x62\x76\x00\x00\x62\x6a\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x62\x6b\x54\xf7\x00\x00\x00\x00\x62\x6f\x00\x00\x00\x00\x52\xc9\x62\x6d\x50\xdb\x62\x72\x54\x82\x00\x00\x00\x00\x00\x00\x00\x00\x62\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x73\x00\x00\x54\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4a\x62\x77\x00\x00\x4b\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7c\x00\x00\x00\x00\x00\x00\x62\x85\x00\x00\x00\x00\x62\x84\x00\x00\x00\x00\x00\x00\x62\x79\x47\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x82\x00\x00\x62\x7e\x45\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x59\x00\x00\x00\x00\x00\x00\x48\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x47\x62\x78\x50\x71\x00\x00\x00\x00\x4e\x72\x00\x00\x00\x00\x62\x81\x00\x00\x62\x7c\x4f\x79\x51\x6c\x62\x7f\x62\x83\x00\x00\x54\x4e\x00\x00\x00\x00\x00\x00\x50\xd9\x00\x00\x62\x7b\x00\x00\x62\x7d\x50\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x62\x80\x00\x00\x62\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x93\x00\x00\x00\x00\x00\x00\x4f\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x50\x95\x00\x00\x00\x00\x52\x59\x00\x00\x00\x00\x62\x89\x00\x00\x62\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x90\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb2\x00\x00\x62\x8a\x00\x00\x00\x00\x00\x00\x4a\xba\x62\x87\x00\x00\x62\x8c\x50\xb9\x00\x00\x00\x00\x62\x88\x00\x00\x62\x8f\x00\x00\x00\x00\x4c\x94\x00\x00\x62\x91\x00\x00\x00\x00\x50\x83\x62\x86\x4f\x6d\x00\x00\x62\x8b\x00\x00\x00\x00\x62\x8e\x4f\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x62\x92\x00\x00\x00\x00\x62\x94\x62\x8d\x00\x00\x52\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x88\x00\x00\x4b\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8b\x00\x00\x00\x00\x62\x95", /* 8500 */ "\x52\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6c\x00\x00\x55\x7b\x62\x9c\x62\x9b\x00\x00\x62\x97\x62\x98\x00\x00\x54\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9a\x00\x00\x54\xa8\x00\x00\x53\xf8\x00\x00\x00\x00\x4f\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x99\x4e\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd1\x00\x00\x00\x00\x62\xa0\x62\xa5\x00\x00\x52\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x62\xa4\x53\xa8\x62\xa6\x62\xa7\x00\x00\x00\x00\x55\x65\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9e\x00\x00\x62\xa9\x00\x00\x54\x91\x62\xa3\x62\xa1\x62\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x50\xde\x54\xf0\x51\xd3\x62\xa8\x00\x00\x62\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb7\x00\x00", /* 8580 */ "\x62\xaa\x00\x00\x00\x00\x00\x00\x4a\x92\x00\x00\x00\x00\x62\xb4\x62\xac\x00\x00\x62\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb8\x62\xad\x00\x00\x00\x00\x62\xb1\x00\x00\x00\x00\x4c\xec\x00\x00\x51\xad\x00\x00\x62\xb2\x62\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xab\x00\x00\x4f\xbf\x00\x00\x62\xaf\x4c\xf1\x54\x5a\x49\x98\x46\xe1\x00\x00\x62\xb3\x53\xf9\x62\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xbf\x62\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xbc\x00\x00\x00\x00\x00\x00\x4e\xed\x00\x00\x62\xbe\x62\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc4\x62\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x68\x62\xc3\x00\x00\x00\x00\x00\x00\x4f\xf6\x4c\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe2\x00\x00\x62\xc5\x53\xed\x50\x5f\x00\x00\x00\x00\x62\xc9\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x54\x96\x00\x00\x00\x00\x00\x00\x4e\xda\x4c\xbf\x00\x00\x00\x00\x62\xc6\x62\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc7\x00\x00\x00\x00\x5c\xbd\x5c\xbe\x00\x00\x00\x00\x62\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa6\x00\x00\x5f\x82\x62\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcf\x4a\xab\x00\x00\x52\x60\x00\x00\x00\x00\x00\x00\x52\xfb\x62\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x72\x00\x00\x52\x50\x00\x00\x55\x88\x62\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x00\x00\x00\x00\x00\x00\x4b\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xb6\x00\x00\x51\x44\x00\x00\x00\x00\x00\x00\x00\x00", /* 8680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xaa\x62\xd8\x62\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd5\x00\x00\x4f\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd6\x55\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd7\x62\xd9\x62\xe3\x00\x00\x00\x00\x00\x00\x62\xdc\x62\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xdd\x00\x00\x62\xde\x4f\xea\x00\x00\x62\xe0\x00\x00\x53\xd8\x00\x00\x4d\xf9\x62\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbb\x00\x00\x62\xe9\x00\x00\x00\x00\x62\xe5\x62\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe6\x00\x00\x00\x00\x62\xe7\x4e\x66\x53\xa5\x4f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x4e\x62\xf3\x00\x00\x62\xef\x00\x00\x00\x00\x55\x99\x00\x00", /* 8700 */ "\x62\xed\x00\x00\x4e\xcd\x62\xee\x00\x00\x00\x00\x62\xeb\x00\x00\x62\xec\x62\xf1\x62\xf4\x00\x00\x00\x00\x62\xf2\x00\x00\x00\x00\x00\x00\x62\xf0\x62\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xdc\x00\x00\x62\xfa\x00\x00\x53\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf8\x00\x00\x00\x00\x00\x00\x62\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf5\x00\x00\x00\x00\x52\x6d\x00\x00\x00\x00\x00\x00\x62\xf7\x00\x00\x00\x00\x00\x00\x62\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x52\xa1\x62\xfd\x00\x00\x62\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x63\x49\x00\x00\x53\x47\x00\x00\x63\x42\x00\x00\x63\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xfb\x63\x46\x00\x00\x00\x00\x63\x4a\x00\x00\x00\x00\x51\xc3\x00\x00\x63\x43\x00\x00\x63\x45\x00\x00\x00\x00\x00\x00\x63\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x41\x00\x00\x4e\x6e\x00\x00\x62\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4b", /* 8780 */ "\x00\x00\x00\x00\x63\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x00\x00\x63\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x00\x00\x00\x00\x63\x4f\x00\x00\x00\x00\x00\x00\x63\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd6\x63\x59\x00\x00\x63\x51\x00\x00\x00\x00\x63\x52\x00\x00\x00\x00\x00\x00\x63\x56\x00\x00\x63\x4d\x54\xf4\x00\x00\x00\x00\x00\x00\x63\x50\x00\x00\x00\x00\x00\x00\x00\x00\x63\x53\x00\x00\x63\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x00\x00\x63\x5a\x00\x00\x00\x00\x63\x5b\x00\x00\x00\x00\x00\x00\x63\x63\x63\x64\x00\x00\x50\x90\x00\x00\x51\xc6\x00\x00\x00\x00\x63\x62\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbd\x00\x00\x63\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x61\x63\x5d\x63\x5f\x00\x00\x63\x65\x00\x00\x00\x00\x00\x00\x63\x66\x63\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa1\x00\x00\x63\x68\x63\x67\x53\x51\x00\x00\x00\x00\x00\x00\x63\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x63\x6b\x00\x00\x00\x00\x63\x6c\x00\x00\x63\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x43\x00\x00\x63\x6e\x00\x00\x63\x6f\x00\x00\x4b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xa4\x63\x70\x00\x00\x00\x00\x00\x00\x00\x00\x63\x71\x48\x6c\x00\x00\x00\x00\x00\x00\x4b\xa5\x00\x00\x63\x72\x00\x00\x47\x80\x00\x00\x4d\xa5\x63\x73\x00\x00\x00\x00\x4b\xed\x63\x74\x4a\xea\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc0\x00\x00\x00\x00\x63\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x54\x00\x00\x63\x7a\x00\x00\x00\x00\x63\x78\x00\x00\x52\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x79\x63\x77\x4a\xa7", /* 8880 */ "\x00\x00\x63\x76\x63\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x6a\x00\x00\x00\x00\x4a\x54\x00\x00\x63\x82\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7e\x00\x00\x00\x00\x00\x00\x4a\x57\x63\x7d\x00\x00\x63\x80\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7c\x00\x00\x00\x00\x00\x00\x63\x81\x00\x00\x63\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8d\x00\x00\x00\x00\x63\x7f\x00\x00\x54\xc5\x63\x86\x00\x00\x00\x00\x4f\x5a\x63\x85\x00\x00\x54\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x84\x00\x00\x49\xbd\x4f\x60\x63\x87\x63\x88\x48\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x63\x89\x46\xf8\x00\x00\x00\x00\x63\x8a\x63\x8b\x00\x00\x00\x00\x49\x6a\x63\x8c\x00\x00\x4f\x8a\x00\x00\x54\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x92\x4f\xa8\x53\x49\x63\x90\x00\x00\x00\x00\x4f\x43\x63\x8d\x00\x00\x00\x00\x63\x8f\x45\x7b\x4c\x8d\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x63\x8e\x00\x00\x63\x93\x00\x00\x00\x00\x4b\x51\x00\x00\x00\x00\x63\x97\x00\x00\x63\x94\x00\x00\x00\x00\x00\x00\x54\x5e\x00\x00\x51\xba\x63\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xda\x63\x96\x63\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x63\x95\x63\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9e\x00\x00\x63\xa0\x00\x00\x00\x00\x63\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9c\x00\x00\x63\x9f\x50\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa2\x63\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa4\x54\xaf\x63\xa3\x00\x00\x00\x00\x00\x00\x63\xa7\x00\x00\x63\xa5\x00\x00\x00\x00\x00\x00\x63\xa6\x00\x00\x00\x00\x63\xa8\x00\x00\x63\xa9\x00\x00\x00\x00\x4d\xdf\x00\x00\x63\xaa\x00\x00\x00\x00\x63\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xac\x45\x58", /* 8980 */ "\x00\x00\x46\x55\x00\x00\x63\xad\x00\x00\x00\x00\x4d\xf2\x4b\xfa\x63\xae\x00\x00\x63\xaf\x45\xbb\x00\x00\x00\x00\x00\x00\x46\xfb\x00\x00\x00\x00\x00\x00\x63\xb0\x00\x00\x00\x00\x4a\x50\x53\xeb\x63\xb1\x00\x00\x4a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb4\x4e\xd0\x00\x00\x63\xb3\x48\x85\x00\x00\x63\xb5\x00\x00\x00\x00\x63\xb6\x00\x00\x00\x00\x63\xb7\x48\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb8\x00\x00\x00\x00\x63\xba\x00\x00\x63\xb9\x63\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbc\x00\x00\x53\x60\x63\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb7\x00\x00\x00\x00\x4c\xd1\x63\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbf\x00\x00\x00\x00\x00\x00\x63\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a00 */ "\x47\x9a\x00\x00\x4f\xc4\x63\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc9\x00\x00\x50\xf2\x00\x00\x63\xc4\x00\x00\x49\xd2\x00\x00\x63\xc3\x00\x00\x63\xc5\x4b\xc8\x00\x00\x00\x00\x63\xc2\x4a\xb6\x47\x94\x00\x00\x00\x00\x63\xc6\x00\x00\x63\xc7\x00\x00\x50\xef\x00\x00\x00\x00\x00\x00\x54\xcc\x00\x00\x63\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x71\x00\x00\x00\x00\x45\xe2\x00\x00\x00\x00\x00\x00\x4a\x9a\x00\x00\x4b\xad\x4c\xdf\x00\x00\x63\xc9\x63\xcb\x00\x00\x00\x00\x4d\x68\x4f\x66\x49\xba\x00\x00\x00\x00\x00\x00\x00\x00\x63\xca\x00\x00\x00\x00\x00\x00\x00\x00\x63\xce\x00\x00\x63\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x76\x55\xe3\x63\xcd\x00\x00\x4f\x88\x49\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcc\x00\x00\x00\x00\x4e\x90\x00\x00\x51\xc1\x00\x00\x63\xd3\x54\xfb\x00\x00\x00\x00\x49\x48\x00\x00\x00\x00\x4c\xb0\x00\x00\x50\xd3\x63\xd2\x63\xd1\x51\x8e\x00\x00\x4b\x5f\x47\x50\x4d\x8d\x4d\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd4\x00\x00\x00\x00\x63\xd0\x00\x00\x00\x00\x00\x00", /* 8a80 */ "\x00\x00\x00\x00\x63\xd6\x00\x00\x63\xd7\x63\xd5\x00\x00\x4e\xb4\x00\x00\x4d\x8c\x00\x00\x00\x00\x4b\x76\x4a\x7e\x00\x00\x00\x00\x00\x00\x63\xda\x00\x00\x4f\xa0\x00\x00\x4f\xa2\x00\x00\x00\x00\x4a\xcb\x00\x00\x63\xdd\x00\x00\x00\x00\x00\x00\x48\xe7\x00\x00\x46\xfd\x63\xd9\x00\x00\x63\xde\x4d\x91\x63\xdb\x63\xdc\x63\xdf\x63\xd8\x00\x00\x00\x00\x00\x00\x49\x52\x4a\x4f\x00\x00\x00\x00\x4b\x83\x00\x00\x49\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf2\x00\x00\x00\x00\x52\x65\x00\x00\x63\xe1\x46\x89\x00\x00\x00\x00\x63\xe3\x00\x00\x50\xb2\x00\x00\x00\x00\x49\x63\x00\x00\x00\x00\x00\x00\x4a\xe8\x63\xe0\x63\xe2\x00\x00\x4b\xc1\x00\x00\x00\x00\x51\x81\x00\x00\x00\x00\x00\x00\x48\xf3\x00\x00\x00\x00\x00\x00\x63\xe4\x63\xf2\x55\x70\x00\x00\x63\xf1\x63\xed\x63\xea\x63\xec\x63\xeb\x00\x00\x63\xe7\x00\x00\x52\x46\x63\xe6\x00\x00\x00\x00\x00\x00\x4e\x96\x00\x00\x4e\x9c\x4f\x9c\x00\x00\x00\x00\x63\xe8\x00\x00\x63\xe5\x00\x00\x00\x00\x63\xef\x63\xf0\x47\xe2\x00\x00\x55\xab\x00\x00\x00\x00\x00\x00\x4f\xe1\x00\x00", /* 8b00 */ "\x4f\x4d\x54\xe5\x55\x73\x00\x00\x4f\xe2\x00\x00\x00\x00\x63\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf3\x00\x00\x52\xf9\x00\x00\x63\xf7\x00\x00\x00\x00\x00\x00\x63\xe9\x00\x00\x63\xf6\x63\xf8\x00\x00\x49\x7c\x63\xf5\x4a\x6e\x00\x00\x4d\xbb\x00\x00\x00\x00\x63\xf9\x4d\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x63\xfd\x00\x00\x53\x81\x00\x00\x00\x00\x63\xfe\x55\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x87\x00\x00\x00\x00\x00\x00\x00\x00\x64\x41\x00\x00\x00\x00\x63\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x46\x00\x00\x00\x00\x64\x42\x00\x00\x64\x44\x64\x43\x00\x00\x00\x00\x00\x00\x64\x45\x00\x00\x00\x00\x64\x47\x00\x00\x4a\x75\x00\x00\x64\x49\x64\x48\x4e\x4f\x00\x00\x00\x00\x64\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x64\x4b\x64\x4d\x00\x00\x00\x00\x64\x4e\x47\x81\x61\x76\x4b\x7b\x00\x00\x64\x4a\x00\x00\x00\x00\x49\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x4f\x00\x00\x64\x50", /* 8b80 */ "\x64\x51\x00\x00\x00\x00\x51\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x88\x00\x00\x64\x52\x00\x00\x64\x53\x00\x00\x53\xfe\x00\x00\x64\x55\x64\x56\x00\x00\x00\x00\x64\x57\x00\x00\x00\x00\x64\x54\x64\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x81\x00\x00\x00\x00\x64\x59\x00\x00\x00\x00\x00\x00\x00\x00\x64\x5b\x00\x00\x64\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x99\x00\x00\x64\x5c\x00\x00\x46\x48\x00\x00\x64\x5d\x00\x00\x64\x5e\x00\x00\x64\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x60\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x94\x64\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x68\x53\x55\x64\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x63\x55\x93\x64\x64\x00\x00\x64\x65\x00\x00\x00\x00\x00\x00", /* 8c80 */ "\x00\x00\x00\x00\x64\x66\x00\x00\x00\x00\x64\x68\x00\x00\x00\x00\x00\x00\x64\x67\x64\x69\x00\x00\x50\x64\x64\x6a\x64\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x6d\x00\x00\x00\x00\x00\x00\x64\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x49\xea\x46\xb6\x00\x00\x49\xc8\x49\xaf\x4a\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa3\x4a\xeb\x4a\x5d\x64\x70\x49\xa1\x4b\xd2\x64\x6f\x64\x71\x4c\x62\x4d\xef\x00\x00\x64\x73\x64\x74\x48\x7f\x00\x00\x64\x76\x49\x74\x4a\xf4\x00\x00\x00\x00\x46\xd0\x50\x7b\x64\x72\x00\x00\x48\x72\x46\x41\x64\x75\x55\xf8\x4b\x4d\x50\x67\x00\x00\x00\x00\x46\x50\x64\x77\x00\x00\x4f\xfd\x00\x00\x00\x00\x64\x79\x64\x78\x00\x00\x00\x00\x53\x9e\x00\x00\x50\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7b\x4d\xee\x4f\x94\x00\x00\x4a\xad\x00\x00\x4f\x4f\x00\x00\x47\xe5\x64\x7a\x55\x66\x00\x00\x4f\xa7\x00\x00\x00\x00\x00\x00\x46\xec\x00\x00\x00\x00\x52\xc1\x00\x00\x00\x00\x64\x7c\x00\x00\x00\x00\x00\x00\x64\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7f\x64\x80\x4e\x8f\x64\x7e\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x53\x5a\x55\x74\x00\x00\x64\x81\x4c\x7c\x00\x00\x64\x82\x55\x84\x00\x00\x64\x84\x00\x00\x64\x83\x64\x86\x00\x00\x64\x85\x64\x87\x64\x88\x00\x00\x64\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xf9\x00\x00\x51\x51\x64\x8a\x00\x00\x00\x00\x00\x00\x53\xcc\x00\x00\x64\x8b\x00\x00\x00\x00\x4a\xaa\x64\x8c\x00\x00\x51\xc9\x50\xee\x00\x00\x64\x8d\x48\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d80 */ "\x00\x00\x64\x8f\x00\x00\x00\x00\x00\x00\x4a\x78\x00\x00\x00\x00\x00\x00\x00\x00\x46\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xed\x00\x00\x00\x00\x00\x00\x00\x00\x55\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x92\x00\x00\x00\x00\x00\x00\x64\x91\x00\x00\x00\x00\x00\x00\x64\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x98\x64\x96\x00\x00\x00\x00\x64\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x95\x00\x00\x00\x00\x00\x00\x64\x94\x64\x97\x00\x00\x4d\xc2\x00\x00\x64\x9b\x00\x00\x4c\xcd\x00\x00\x64\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x55\xcb\x00\x00\x64\x99\x64\x9a\x00\x00\x00\x00\x00\x00\x47\x84\x00\x00\x00\x00\x00\x00\x50\xb4\x00\x00\x50\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x9d\x00\x00\x00\x00\x64\x9f", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x9e\x64\xa0\x4c\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7c\x64\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa2\x64\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa7\x00\x00\x00\x00\x00\x00\x64\xa8\x64\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa5\x00\x00\x55\xa7\x00\x00\x00\x00\x64\xaa\x64\xae\x64\xab\x64\xa9\x00\x00\x64\xac\x00\x00\x00\x00\x00\x00\x64\xad\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb2\x00\x00\x00\x00\x00\x00\x64\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x68\x64\xb1\x00\x00\x00\x00\x64\xb3\x64\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb5\x00\x00\x52\xf6\x00\x00\x64\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb7\x00\x00\x00\x00\x00\x00", /* 8e80 */ "\x00\x00\x64\xb8\x00\x00\x00\x00\x64\xba\x64\xb9\x00\x00\x64\xb6\x00\x00\x00\x00\x64\xbc\x64\xbb\x00\x00\x4c\xa1\x00\x00\x00\x00\x00\x00\x64\xbe\x00\x00\x64\xbd\x64\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc2\x47\x9c\x50\x44\x00\x00\x00\x00\x53\x53\x53\x7a\x64\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc4\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc6\x64\xc5\x00\x00\x64\xc7\x00\x00\x46\x53\x64\xc8\x4d\xaa\x48\x97\x00\x00\x64\xc9\x00\x00\x00\x00\x4e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xca\x00\x00\x00\x00\x00\x00\x4c\xb1\x00\x00\x00\x00\x47\x52\x64\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa6\x00\x00\x00\x00\x64\xcd\x64\xcc\x48\xa6\x64\xcf\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x4a\x5a\x00\x00\x64\xd2\x00\x00\x00\x00\x00\x00\x4d\x6e\x64\xd0\x00\x00\x64\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xd4\x64\xd5\x4a\x68\x64\xd3\x00\x00\x00\x00\x00\x00\x64\xd7\x00\x00\x51\x5b\x64\xd6\x47\x87\x00\x00\x64\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xd9\x00\x00\x00\x00\x4e\xf4\x48\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa6\x00\x00\x00\x00\x00\x00\x64\xda\x00\x00\x00\x00\x00\x00\x00\x00\x46\x93\x64\xdc\x00\x00\x64\xdb\x00\x00\x00\x00\x64\xdf\x50\x6c\x00\x00\x00\x00\x64\xde\x00\x00\x50\xfe\x64\xdd\x64\xe1\x00\x00\x00\x00\x64\xe0\x00\x00\x00\x00\x64\xe2\x54\xee\x64\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe5\x00\x00\x00\x00\x50\xa9\x00\x00\x52\xe1\x64\xe6\x64\xe7\x64\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5e\x64\xe9\x00\x00\x4d\x74\x64\xea\x00\x00\x00\x00\x00\x00\x64\xeb\x00\x00\x00\x00\x00\x00\x64\xed\x64\xec\x00\x00\x00\x00\x00\x00\x00\x00\x64\xee\x61\x49\x64\xef\x47\xdf\x52\xe5\x48\x45\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf0\x00\x00\x00\x00\x45\xd5\x47\xf5\x48\x41\x00\x00\x00\x00\x54\x7e\x00\x00\x00\x00\x55\xdf\x00\x00\x49\xcd\x50\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa9\x00\x00\x00\x00\x46\x73\x00\x00\x00\x00\x48\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf4\x00\x00\x00\x00\x64\xf3\x53\x5d\x00\x00\x00\x00\x64\xf6\x4e\x9e\x49\xef\x00\x00\x53\xdf\x00\x00\x64\xf5\x4a\x9c\x00\x00\x00\x00\x00\x00\x64\xf7\x00\x00\x00\x00\x4e\x58\x64\xfa\x64\xf9\x54\xa9\x00\x00\x00\x00\x49\xd1\x00\x00\x00\x00", /* 9000 */ "\x4b\x49\x47\x44\x00\x00\x4c\x72\x00\x00\x64\xf8\x4b\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x65\x44\x00\x00\x65\x41\x64\xfd\x4b\xda\x50\xbb\x64\xfb\x00\x00\x51\x5e\x48\xf0\x64\xfc\x65\x43\x4f\xb3\x00\x00\x4f\xca\x45\xe3\x00\x00\x00\x00\x53\xb1\x65\x42\x48\xcd\x45\xb8\x64\xfe\x4d\xce\x47\x54\x00\x00\x00\x00\x00\x00\x65\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x77\x00\x00\x00\x00\x4a\xd3\x46\x69\x00\x00\x00\x00\x54\x85\x65\x46\x00\x00\x4a\xd6\x65\x47\x00\x00\x00\x00\x55\xac\x00\x00\x65\x4e\x00\x00\x00\x00\x54\xf8\x4c\xf7\x00\x00\x00\x00\x4c\x6d\x00\x00\x49\xec\x00\x00\x65\x4d\x4a\x8b\x46\xab\x00\x00\x50\x5d\x48\x8d\x65\x48\x65\x4a\x65\x4b\x65\x4c\x45\x50\x46\xa4\x49\xbc\x65\x4f\x00\x00\x65\x50\x52\xf3\x00\x00\x00\x00\x54\x55\x00\x00\x65\x51\x00\x00\x46\xe3\x54\x4c\x00\x00\x4e\xc2\x00\x00\x68\x82\x00\x00\x65\x53\x65\x52\x49\xcc\x00\x00\x00\x00\x00\x00\x51\x43\x54\x58\x65\x54\x00\x00\x00\x00\x65\x57\x00\x00\x00\x00\x52\x6e\x65\x55\x53\x5b\x48\x5d\x00\x00\x4c\xda\x00\x00\x52\x6b\x65\x59\x00\x00\x4c\xc4", /* 9080 */ "\x65\x5b\x53\x7b\x65\x58\x60\x45\x4d\xa9\x00\x00\x00\x00\x51\x86\x00\x00\x65\x5a\x50\xea\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5c\x00\x00\x4c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x46\x00\x00\x00\x00\x46\xc5\x00\x00\x51\xa8\x00\x00\x4e\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5e\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x65\x60\x00\x00\x00\x00\x4d\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x52\x00\x00\x00\x00\x00\x00\x45\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x63\x00\x00\x00\x00\x65\x64\x00\x00\x00\x00\x49\x9e\x65\x61\x00\x00\x65\x62\x00\x00\x00\x00\x00\x00\x45\x95\x00\x00\x00\x00\x00\x00\x00\x00\x51\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb7\x00\x00\x49\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x4f\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x65\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x68\x00\x00\x00\x00\x65\x67\x00\x00\x00\x00\x00\x00\x65\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x54\x00\x00\x00\x00\x65\x6c\x00\x00\x65\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x73\x65\x6d\x55\x48\x52\xbb\x47\xf3\x55\x91\x00\x00\x00\x00\x00\x00\x47\x58\x00\x00\x4e\x7c\x00\x00\x65\x6e\x00\x00\x65\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xae\x65\x70\x00\x00\x65\x71\x00\x00\x00\x00\x00\x00\x65\x72\x50\xbd\x00\x00\x51\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x74\x65\x73\x00\x00\x4d\x86\x00\x00\x51\xeb\x48\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9180 */ "\x00\x00\x00\x00\x65\x77\x00\x00\x00\x00\x00\x00\x00\x00\x51\xa9\x00\x00\x65\x76\x00\x00\x65\x75\x00\x00\x51\x6f\x00\x00\x00\x00\x51\x70\x00\x00\x53\x78\x00\x00\x00\x00\x00\x00\x00\x00\x51\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x78\x00\x00\x50\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7b\x65\x79\x50\x7f\x00\x00\x00\x00\x65\x7a\x00\x00\x51\xfa\x00\x00\x00\x00\x65\x7d\x65\x7c\x00\x00\x00\x00\x50\xc2\x00\x00\x65\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7f\x65\x80\x00\x00\x00\x00\x00\x00\x00\x00\x53\x46\x53\xbf\x4d\x79\x52\x52\x00\x00\x65\x81\x47\x6c\x45\xa3\x45\x69\x47\xb5\x65\x82\x45\x86\x00\x00\x00\x00\x00\x00\x00\x00\x65\x87\x65\x85\x4f\xf4\x00\x00\x65\x83\x65\x84\x4a\xcc\x49\x88\x65\x86\x65\x88\x00\x00\x65\x89\x00\x00\x4c\xe3\x65\x8d\x65\x8f\x53\x4a\x4b\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8a\x65\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8b\x65\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd0\x00\x00\x00\x00\x65\x92", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x90\x00\x00\x00\x00\x00\x00\x65\x95\x00\x00\x00\x00\x4e\x63\x53\x8f\x00\x00\x65\x93\x52\x69\x00\x00\x00\x00\x65\x94\x65\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x98\x00\x00\x00\x00\x65\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xae\x00\x00\x00\x00\x55\xbf\x00\x00\x65\xa6\x65\x9b\x00\x00\x65\x9f\x00\x00\x00\x00\x65\xa4\x65\x9e\x00\x00\x00\x00\x00\x00\x45\xd7\x65\x9a\x00\x00\x00\x00\x65\xa0\x65\x9c\x00\x00\x65\xa7\x00\x00\x00\x00\x65\xa1\x00\x00\x65\xa2\x65\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x99\x00\x00\x65\xa3\x65\xa9\x49\xd4\x00\x00\x00\x00\x53\x93\x00\x00\x00\x00\x00\x00\x4e\xa8\x00\x00\x65\x9d\x00\x00\x4f\xb4\x65\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xac\x65\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x83\x00\x00", /* 9280 */ "\x47\x8c\x00\x00\x00\x00\x4c\xe2\x00\x00\x48\xc0\x00\x00\x00\x00\x52\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xad\x00\x00\x65\xaf\x00\x00\x65\xb1\x65\xae\x00\x00\x4d\xdc\x00\x00\x4e\x80\x65\xb0\x65\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbb\x00\x00\x65\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb3\x65\xb7\x00\x00\x54\x49\x65\xbd\x00\x00\x65\xb9\x00\x00\x65\xb5\x00\x00\x65\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbc\x00\x00\x00\x00\x00\x00\x52\xc0\x00\x00\x00\x00\x65\xb4\x00\x00\x65\xb2\x53\x63\x00\x00\x00\x00\x4d\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbe\x48\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe7\x53\x94\x65\xc2\x65\xc5\x46\xa1\x00\x00\x00\x00\x65\xc9", /* 9300 */ "\x00\x00\x00\x00\x65\xce\x00\x00\x00\x00\x00\x00\x55\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc0\x53\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xef\x65\xc7\x65\xcb\x00\x00\x00\x00\x65\xcc\x65\xc8\x00\x00\x4e\x57\x65\xc3\x65\xca\x65\xcd\x00\x00\x65\xc1\x4b\x8e\x00\x00\x53\xf0\x00\x00\x00\x00\x52\x57\x4f\xe6\x00\x00\x52\x83\x50\xb1\x00\x00\x00\x00\x48\x86\x00\x00\x00\x00\x65\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbe\x65\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc4\x00\x00\x00\x00\x00\x00\x51\xf7\x00\x00\x00\x00\x4b\x48\x00\x00\x55\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xaa\x00\x00\x65\xd4\x65\xd5\x00\x00\x00\x00\x00\x00\x48\xc7\x52\xad\x00\x00\x00\x00\x00\x00\x65\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x70\x00\x00\x65\xd3\x00\x00\x65\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd2\x00\x00\x53\xbd\x00\x00", /* 9380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xda\x00\x00\x4d\x70\x51\x97\x00\x00\x00\x00\x54\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd8\x00\x00\x00\x00\x54\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6e\x65\xd9\x4c\x89\x00\x00\x65\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe2\x00\x00\x00\x00\x65\xdd\x00\x00\x65\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe5\x50\x41\x00\x00\x00\x00\x00\x00\x00\x00\x65\xdc\x65\xde\x65\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe3\x65\xe4\x00\x00\x00\x00\x4a\x8d\x00\x00\x00\x00\x65\xe6\x65\xe0\x00\x00\x00\x00\x65\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x65\xec\x00\x00\x00\x00\x00\x00\x65\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xcd\x00\x00\x00\x00\x65\xea\x65\xe9\x00\x00\x00\x00\x00\x00\x4c\xc8\x52\xcf\x65\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf0\x00\x00\x00\x00\x00\x00\x51\x56\x65\xee\x00\x00\x53\x88\x00\x00\x65\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf2\x00\x00\x00\x00\x65\xf5\x65\xf4\x00\x00\x00\x00\x65\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4e\x65\xf3\x52\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf8\x65\xf7\x00\x00\x00\x00\x65\xfb\x00\x00\x65\xf9\x00\x00\x65\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfd\x00\x00\x66\x41\x00\x00\x00\x00\x00\x00\x00\x00\x66\x44\x66\x43\x66\x45\x66\x42", /* 9480 */ "\x00\x00\x66\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9580 */ "\x46\xaa\x00\x00\x66\x47\x51\x9c\x00\x00\x00\x00\x00\x00\x66\x48\x00\x00\x4b\x7d\x66\x49\x46\xcd\x00\x00\x00\x00\x00\x00\x54\x5f\x00\x00\x4d\xd9\x66\x4a\x45\xc1\x66\x4b\x00\x00\x66\x4c\x00\x00\x66\x4d\x66\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4f\x00\x00\x45\xc5\x4a\xe9\x54\x9b\x51\x72\x00\x00\x66\x51\x66\x50\x00\x00\x00\x00\x00\x00\x00\x00\x66\x52\x00\x00\x00\x00\x00\x00\x00\x00\x51\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x55\x00\x00\x66\x54\x66\x53\x00\x00\x66\x56\x00\x00\x00\x00\x00\x00\x00\x00\x66\x59\x00\x00\x00\x00\x00\x00\x53\x64\x00\x00\x00\x00\x66\x57\x00\x00\x66\x5b\x66\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x5d\x66\x5c\x66\x5e\x00\x00\x4b\xcc\x00\x00\x00\x00\x00\x00\x66\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x66\x60\x66\x62\x00\x00\x00\x00\x66\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x86\x00\x00\x00\x00\x00\x00\x00\x00\x66\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x64\x00\x00\x45\x91\x00\x00\x00\x00\x00\x00\x66\x65\x66\x66\x00\x00\x00\x00\x47\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xef\x00\x00\x00\x00\x00\x00\x46\xae\x4f\xe8\x00\x00\x66\x67\x00\x00\x4b\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x6a\x66\x69\x49\xe5\x00\x00\x66\x68\x48\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x57\x66\x6b\x66\x6c\x52\x72\x66\x6d\x00\x00\x00\x00\x49\xd8\x4c\x84\x49\x6d\x4f\xfe\x66\x6e\x00\x00\x00\x00\x00\x00\x55\xc3\x00\x00\x66\x71\x00\x00\x00\x00\x00\x00\x4c\xd2\x00\x00\x66\x70\x4e\x61\x00\x00\x50\xc7\x4a\xb7\x66\x6f\x49\x61\x00\x00\x4a\x6c\x00\x00\x00\x00\x47\xbf\x00\x00\x00\x00", /* 9680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb9\x46\x5d\x00\x00\x4c\xe5\x00\x00\x4a\x93\x66\x73\x00\x00\x66\x72\x49\xa9\x4e\x76\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5a\x66\x76\x00\x00\x66\x77\x66\x75\x53\xc3\x00\x00\x47\x97\x4b\xf9\x66\x79\x00\x00\x00\x00\x4e\xae\x00\x00\x00\x00\x4c\xe0\x00\x00\x00\x00\x00\x00\x66\x7a\x65\x56\x00\x00\x66\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x66\x7f\x66\x7e\x66\x7c\x66\x7d\x00\x00\x66\x80\x00\x00\x66\x81\x55\x45\x66\x82\x66\x83\x00\x00\x4f\xda\x4e\xd5\x00\x00\x00\x00\x00\x00\x4f\x64\x51\xa4\x00\x00\x00\x00\x45\x70\x47\x45\x47\xa0\x4c\x4d\x00\x00\x54\x77\x00\x00\x66\x85\x52\xb7\x52\x5b\x66\x84\x00\x00\x00\x00\x4a\x8a\x00\x00\x00\x00\x00\x00\x66\x86\x63\x54\x00\x00\x00\x00\x66\x88\x00\x00\x51\xfb\x66\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x97\x49\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x49\xdd\x00\x00\x49\xbb\x52\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x90\x00\x00\x4a\xbc\x00\x00\x00\x00\x00\x00\x50\x69\x4b\xd6\x00\x00\x66\x89\x00\x00\x45\x82\x00\x00\x00\x00\x00\x00\x00\x00", /* 9700 */ "\x47\xfb\x00\x00\x00\x00\x00\x00\x66\x8a\x00\x00\x66\x8b\x4d\xde\x66\x8c\x00\x00\x4f\x4b\x00\x00\x00\x00\x66\x8e\x66\x90\x66\x92\x00\x00\x66\x91\x00\x00\x66\x8f\x00\x00\x00\x00\x66\x93\x00\x00\x00\x00\x66\x8d\x00\x00\x00\x00\x4d\xe8\x00\x00\x4e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x94\x00\x00\x00\x00\x4e\x48\x00\x00\x00\x00\x66\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x96\x00\x00\x4b\xc6\x66\x97\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcf\x66\x98\x00\x00\x66\x99\x00\x00\x66\x9a\x66\x9b\x00\x00\x00\x00\x00\x00\x66\xa0\x66\x9e\x66\x9d\x00\x00\x66\x9c\x00\x00\x66\x9f\x66\xa1\x00\x00\x00\x00\x00\x00\x66\xa2\x00\x00\x66\xa3\x00\x00\x66\xa4\x46\x4c\x00\x00\x00\x00\x66\xa5\x48\xc3\x00\x00\x00\x00\x46\x44\x00\x00\x00\x00\x66\xa6\x00\x00\x48\xe1\x00\x00\x66\xa7\x68\x52\x46\x91\x00\x00\x66\xa8\x00\x00\x66\xa9\x00\x00\x66\xaa\x4a\xa3\x00\x00\x53\xb5\x00\x00\x66\xab\x00\x00\x00\x00\x00\x00\x52\xce\x00\x00\x00\x00\x4d\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x66\xac\x66\xb0\x00\x00\x66\xae\x00\x00\x00\x00\x00\x00", /* 9780 */ "\x00\x00\x66\xaf\x00\x00\x00\x00\x54\x45\x66\xad\x52\x77\x00\x00\x00\x00\x00\x00\x00\x00\x66\xb1\x00\x00\x50\x4c\x00\x00\x66\xb2\x66\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe7\x00\x00\x00\x00\x00\x00\x66\xb4\x00\x00\x00\x00\x00\x00\x51\xed\x00\x00\x00\x00\x66\xb7\x00\x00\x00\x00\x66\xb6\x00\x00\x66\xb5\x00\x00\x00\x00\x63\xfc\x00\x00\x54\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xb8\x66\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xba\x00\x00\x00\x00\x66\xbb\x00\x00\x66\xbc\x00\x00\x00\x00\x66\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xbf\x4f\xdf\x00\x00\x00\x00\x00\x00\x66\xc0\x48\x4d\x00\x00\x66\xc2\x52\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x55\x77\x00\x00\x00\x00\x00\x00\x4a\x5c", /* 9800 */ "\x00\x00\x4c\xd9\x4d\x5b\x49\x46\x00\x00\x4a\x97\x47\xb2\x00\x00\x46\xb0\x00\x00\x00\x00\x00\x00\x54\x56\x00\x00\x00\x00\x66\xc3\x4d\x4a\x53\x9d\x55\x57\x51\x7a\x00\x00\x00\x00\x00\x00\x55\xe4\x4a\xcd\x00\x00\x66\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc6\x00\x00\x00\x00\x66\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb3\x47\xeb\x00\x00\x00\x00\x4e\xb3\x00\x00\x00\x00\x00\x00\x55\x76\x00\x00\x00\x00\x66\xc7\x50\xfb\x66\xc8\x00\x00\x53\xab\x4a\x7a\x66\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x66\xca\x47\xfe\x47\xf1\x54\x8e\x66\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x48\xb8\x4a\xe5\x00\x00\x66\xcb\x4c\x57\x00\x00\x55\xc1\x55\xc1\x00\x00\x00\x00\x46\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xcc\x00\x00\x4e\xee\x00\x00\x00\x00\x00\x00\x66\xcd\x00\x00\x00\x00\x00\x00\x66\xce\x66\xcf\x66\xd0\x00\x00\x66\xd2\x66\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xe7\x00\x00\x66\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd4\x00\x00\x66\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd8\x66\xd7\x00\x00\x66\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8a\x66\xda\x00\x00\x00\x00\x46\xb8\x00\x00\x00\x00\x53\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdc\x00\x00\x66\xde\x00\x00\x66\xdb\x5c\xca\x46\xb5\x00\x00\x00\x00\x4b\xa3\x00\x00\x52\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x8f\x4d\x49\x49\x57\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x66\xe0\x00\x00\x50\xbf\x00\x00\x00\x00\x00\x00\x54\xbc\x49\x79\x00\x00\x50\xa7\x00\x00\x00\x00\x00\x00\x55\xb3\x00\x00\x66\xe2\x55\x4b\x66\xe3\x00\x00\x00\x00\x00\x00\x66\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe1\x66\xe8\x00\x00\x66\xea\x66\xe7\x00\x00\x00\x00\x66\xe9\x00\x00\x00\x00\x66\xe5\x48\x62\x00\x00\x00\x00\x00\x00\x66\xeb\x00\x00\x66\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xed\x66\xee\x00\x00\x00\x00\x00\x00\x66\xef\x00\x00\x00\x00\x66\xf1\x00\x00\x00\x00\x00\x00\x66\xf0\x00\x00\x66\xf3\x66\xf5\x00\x00\x00\x00\x00\x00\x66\xf2\x66\xf4\x52\xe8\x00\x00\x00\x00\x66\xf6\x00\x00\x51\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xbe\x66\xf7\x66\xf8\x46\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfa\x00\x00\x00\x00\x4b\x85\x00\x00\x00\x00\x00\x00\x46\x64\x66\xfb\x66\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x52\xdf\x50\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe5\x00\x00\x00\x00\x4d\xe5\x49\xac\x4c\xfe\x00\x00\x4f\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf5\x67\x44\x49\xfc\x00\x00\x00\x00\x53\xbe\x00\x00\x00\x00\x67\x43\x00\x00\x00\x00\x67\x41\x00\x00\x67\x42\x00\x00\x66\xfe\x00\x00\x00\x00\x67\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x45\x67\x46\x00\x00\x00\x00\x67\x48\x67\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4b\x00\x00\x00\x00\x67\x4a\x00\x00\x00\x00\x00\x00\x4c\xc0", /* 9a00 */ "\x00\x00\x67\x4c\x00\x00\x00\x00\x00\x00\x67\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x58\x67\x4d\x00\x00\x00\x00\x4d\xd2\x48\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xda\x00\x00\x00\x00\x67\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x56\x00\x00\x67\x52\x00\x00\x67\x54\x67\x55\x00\x00\x67\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x58\x67\x59\x00\x00\x00\x00\x00\x00\x53\xda\x00\x00\x00\x00\x67\x57\x00\x00\x67\x5b\x00\x00\x00\x00\x4c\xd5\x67\x5a\x00\x00\x00\x00\x00\x00\x67\x5c\x00\x00\x00\x00\x67\x5d\x00\x00\x67\x60\x67\x5f\x00\x00\x00\x00\x00\x00\x67\x5e\x67\x61\x67\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x67\x63\x00\x00\x00\x00\x67\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9c\x00\x00\x00\x00\x00\x00\x67\x65\x00\x00\x00\x00\x00\x00\x67\x66\x00\x00\x00\x00\x00\x00\x52\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x67\x00\x00\x67\x6a\x00\x00\x67\x68\x67\x69\x00\x00\x00\x00\x00\x00\x45\x71\x67\x6b\x00\x00\x00\x00\x67\x6c\x00\x00\x67\x6d\x67\x6e\x00\x00\x00\x00\x67\x6f\x67\x70\x00\x00\x00\x00\x67\x71\x00\x00\x00\x00\x00\x00\x4c\xf6\x67\x73\x00\x00\x50\x9d\x67\x74\x67\x72\x00\x00\x67\x76\x00\x00\x00\x00\x67\x75\x00\x00\x00\x00\x67\x77\x00\x00\x00\x00\x00\x00\x67\x78\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7a\x00\x00\x67\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7c\x00\x00\x00\x00\x67\x7d\x67\x7e\x00\x00\x67\x7f\x00\x00\x67\x80\x67\x81\x67\x82\x67\x83\x00\x00\x00\x00\x00\x00\x67\x84\x67\x85\x00\x00\x67\x86\x67\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x88\x4a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x52\xcb\x50\xa8\x67\x8a\x67\x89\x4d\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x8b\x67\x8c\x53\x89\x00\x00\x67\x8d\x00\x00\x00\x00\x4d\xe2\x00\x00\x00\x00\x00\x00\x67\x8e\x00\x00\x48\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf4\x00\x00\x00\x00\x67\x91\x00\x00\x67\x90\x67\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b80 */ "\x00\x00\x00\x00\x00\x00\x67\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8e\x67\x93\x00\x00\x67\x95\x52\x8d\x67\x92\x00\x00\x00\x00\x67\x96\x67\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x98\x67\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9a\x00\x00\x55\xce\x4e\xb7\x00\x00\x53\x91\x4c\xe9\x00\x00\x00\x00\x67\x9b\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa0\x00\x00\x67\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa1\x00\x00\x00\x00\x4f\xc6\x67\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa2\x00\x00\x67\xa3\x67\xa4\x00\x00\x67\xa8\x00\x00\x4f\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x50\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa9\x67\xa6\x67\xa5\x67\xa7\x00\x00\x00\x00\x00\x00\x4d\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x51\x67\xab\x67\xac\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c00 */ "\x67\xb1\x00\x00\x00\x00\x00\x00\x67\xad\x00\x00\x67\xb5\x00\x00\x67\xb6\x67\xb2\x67\xb8\x00\x00\x67\xb4\x55\x71\x00\x00\x00\x00\x52\x93\x00\x00\x67\xb7\x67\xb3\x67\xb0\x67\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbc\x00\x00\x00\x00\x67\xbb\x67\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6e\x67\xb9\x55\xc8\x67\xbd\x00\x00\x67\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd5\x51\xf0\x54\xab\x00\x00\x00\x00\x67\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc0\x67\xbe\x55\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4c\x00\x00\x00\x00\x67\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc5\x00\x00\x67\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x79\x00\x00\x67\xc8\x00\x00\x4d\x95\x00\x00\x67\xc7\x67\xc9\x00\x00\x00\x00\x00\x00\x67\xca\x00\x00\x00\x00\x4e\xa6\x4b\x70\x00\x00\x54\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d00 */ "\x00\x00\x00\x00\x00\x00\x67\xcc\x00\x00\x00\x00\x67\xcd\x51\xa1\x54\xfc\x67\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x54\x64\x00\x00\x00\x00\x00\x00\x67\xd4\x00\x00\x00\x00\x67\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc3\x00\x00\x00\x00\x00\x00\x67\xd2\x00\x00\x00\x00\x00\x00\x67\xd1\x00\x00\x00\x00\x67\xcf\x00\x00\x4c\x54\x00\x00\x67\xce\x50\xba\x67\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd6\x00\x00\x00\x00\x67\xd8\x67\xd6\x00\x00\x67\xd5\x00\x00\x00\x00\x67\xd7\x00\x00\x67\xd9\x00\x00\x67\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xdf\x67\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xdd\x00\x00\x00\x00\x4b\xe7\x67\xdb\x67\xdc\x00\x00\x50\xfd\x55\x7e\x00\x00\x00\x00\x67\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe4\x51\x8a\x00\x00\x00\x00\x67\xe5\x67\xe2\x00\x00\x67\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe3\x00\x00\x53\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe9\x00\x00\x67\xea\x00\x00\x00\x00\x00\x00\x50\xe5\x00\x00\x00\x00\x67\xeb\x00\x00\x47\x7a\x00\x00\x00\x00\x00\x00\x67\xef\x00\x00\x67\xf0\x67\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xed\x67\xf3\x00\x00\x67\xec\x00\x00\x67\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf2\x00\x00\x00\x00\x00\x00\x67\xf6\x00\x00\x00\x00\x00\x00\x54\x64\x00\x00\x67\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf9\x00\x00\x67\xfa\x00\x00\x00\x00\x4b\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf7\x4b\x7a\x50\xaf\x00\x00\x00\x00\x67\xfb\x00\x00\x00\x00", /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xfe\x67\xfc\x67\xfd\x00\x00\x00\x00\x68\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x42\x00\x00\x00\x00\x4c\x7d\x68\x43\x00\x00\x00\x00\x4c\x7d\x68\x44\x00\x00\x46\x97", /* 9e80 */ "\x00\x00\x68\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x46\x00\x00\x00\x00\x68\x47\x68\x48\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4a\x51\xf9\x51\x9e\x00\x00\x68\x49\x00\x00\x4c\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4b\x00\x00\x51\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4c\x4a\xe0\x00\x00\x00\x00\x53\xb4\x68\x4e\x00\x00\x00\x00\x68\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x61\x55\x5f\x00\x00\x00\x00\x68\x4d\x52\x61\x55\x5f\x48\xa7\x68\x50\x00\x00\x68\x51\x4e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x53\x55\xae\x51\xa7\x68\x54\x68\x55\x68\x56\x46\x79\x00\x00\x68\x57\x00\x00\x00\x00\x00\x00\x5e\x90\x4d\xbc\x00\x00\x51\xdd\x68\x58\x68\x5a\x68\x59\x00\x00\x68\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5c\x00\x00\x00\x00\x68\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5f\x00\x00\x68\x60\x68\x61\x00\x00\x68\x62\x00\x00\x68\x63\x68\x64\x68\x65\x00\x00\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x66\x68\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xaf\x00\x00\x68\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xcb\x68\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xfd\x00\x00\x00\x00\x68\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x6d\x51\xf5\x00\x00\x00\x00\x68\x6e\x68\x6f\x00\x00\x00\x00\x68\x70\x00\x00\x68\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x73\x68\x74\x68\x75\x4c\x80\x68\x72\x00\x00\x00\x00\x68\x76\x68\x77\x00\x00\x00\x00\x68\x79\x00\x00\x68\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7b\x00\x00\x00\x00\x00\x00\x68\x7c\x68\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7e\x5f\xf7\x00\x00\x00\x00\x68\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x69\x41\x69\x42\x69\x43\x69\x44\x69\x45\x69\x46\x69\x47\x69\x48\x69\x49\x69\x4a\x69\x4b\x69\x4c\x69\x4d\x69\x4e\x69\x4f\x69\x50\x69\x51\x69\x52\x69\x53\x69\x54\x69\x55\x69\x56\x69\x57\x69\x58\x69\x59\x69\x5a\x69\x5b\x69\x5c\x69\x5d\x69\x5e\x69\x5f\x69\x60\x69\x61\x69\x62\x69\x63\x69\x64\x69\x65\x69\x66\x69\x67\x69\x68\x69\x69\x69\x6a\x69\x6b\x69\x6c\x69\x6d\x69\x6e\x69\x6f\x69\x70\x69\x71\x69\x72\x69\x73\x69\x74\x69\x75\x69\x76\x69\x77\x69\x78\x69\x79\x69\x7a\x69\x7b\x69\x7c\x69\x7d\x69\x7e\x69\x7f\x69\x80\x69\x81\x69\x82\x69\x83\x69\x84\x69\x85\x69\x86\x69\x87\x69\x88\x69\x89\x69\x8a\x69\x8b\x69\x8c\x69\x8d\x69\x8e\x69\x8f\x69\x90\x69\x91\x69\x92\x69\x93\x69\x94\x69\x95\x69\x96\x69\x97\x69\x98\x69\x99\x69\x9a\x69\x9b\x69\x9c\x69\x9d\x69\x9e\x69\x9f\x69\xa0\x69\xa1\x69\xa2\x69\xa3\x69\xa4\x69\xa5\x69\xa6\x69\xa7\x69\xa8\x69\xa9\x69\xaa\x69\xab\x69\xac\x69\xad\x69\xae\x69\xaf\x69\xb0\x69\xb1\x69\xb2\x69\xb3\x69\xb4\x69\xb5\x69\xb6\x69\xb7\x69\xb8\x69\xb9\x69\xba\x69\xbb\x69\xbc\x69\xbd\x69\xbe\x69\xbf\x69\xc0", /* e080 */ "\x69\xc1\x69\xc2\x69\xc3\x69\xc4\x69\xc5\x69\xc6\x69\xc7\x69\xc8\x69\xc9\x69\xca\x69\xcb\x69\xcc\x69\xcd\x69\xce\x69\xcf\x69\xd0\x69\xd1\x69\xd2\x69\xd3\x69\xd4\x69\xd5\x69\xd6\x69\xd7\x69\xd8\x69\xd9\x69\xda\x69\xdb\x69\xdc\x69\xdd\x69\xde\x69\xdf\x69\xe0\x69\xe1\x69\xe2\x69\xe3\x69\xe4\x69\xe5\x69\xe6\x69\xe7\x69\xe8\x69\xe9\x69\xea\x69\xeb\x69\xec\x69\xed\x69\xee\x69\xef\x69\xf0\x69\xf1\x69\xf2\x69\xf3\x69\xf4\x69\xf5\x69\xf6\x69\xf7\x69\xf8\x69\xf9\x69\xfa\x69\xfb\x69\xfc\x69\xfd\x69\xfe\x6a\x41\x6a\x42\x6a\x43\x6a\x44\x6a\x45\x6a\x46\x6a\x47\x6a\x48\x6a\x49\x6a\x4a\x6a\x4b\x6a\x4c\x6a\x4d\x6a\x4e\x6a\x4f\x6a\x50\x6a\x51\x6a\x52\x6a\x53\x6a\x54\x6a\x55\x6a\x56\x6a\x57\x6a\x58\x6a\x59\x6a\x5a\x6a\x5b\x6a\x5c\x6a\x5d\x6a\x5e\x6a\x5f\x6a\x60\x6a\x61\x6a\x62\x6a\x63\x6a\x64\x6a\x65\x6a\x66\x6a\x67\x6a\x68\x6a\x69\x6a\x6a\x6a\x6b\x6a\x6c\x6a\x6d\x6a\x6e\x6a\x6f\x6a\x70\x6a\x71\x6a\x72\x6a\x73\x6a\x74\x6a\x75\x6a\x76\x6a\x77\x6a\x78\x6a\x79\x6a\x7a\x6a\x7b\x6a\x7c\x6a\x7d\x6a\x7e\x6a\x7f\x6a\x80\x6a\x81\x6a\x82", /* e100 */ "\x6a\x83\x6a\x84\x6a\x85\x6a\x86\x6a\x87\x6a\x88\x6a\x89\x6a\x8a\x6a\x8b\x6a\x8c\x6a\x8d\x6a\x8e\x6a\x8f\x6a\x90\x6a\x91\x6a\x92\x6a\x93\x6a\x94\x6a\x95\x6a\x96\x6a\x97\x6a\x98\x6a\x99\x6a\x9a\x6a\x9b\x6a\x9c\x6a\x9d\x6a\x9e\x6a\x9f\x6a\xa0\x6a\xa1\x6a\xa2\x6a\xa3\x6a\xa4\x6a\xa5\x6a\xa6\x6a\xa7\x6a\xa8\x6a\xa9\x6a\xaa\x6a\xab\x6a\xac\x6a\xad\x6a\xae\x6a\xaf\x6a\xb0\x6a\xb1\x6a\xb2\x6a\xb3\x6a\xb4\x6a\xb5\x6a\xb6\x6a\xb7\x6a\xb8\x6a\xb9\x6a\xba\x6a\xbb\x6a\xbc\x6a\xbd\x6a\xbe\x6a\xbf\x6a\xc0\x6a\xc1\x6a\xc2\x6a\xc3\x6a\xc4\x6a\xc5\x6a\xc6\x6a\xc7\x6a\xc8\x6a\xc9\x6a\xca\x6a\xcb\x6a\xcc\x6a\xcd\x6a\xce\x6a\xcf\x6a\xd0\x6a\xd1\x6a\xd2\x6a\xd3\x6a\xd4\x6a\xd5\x6a\xd6\x6a\xd7\x6a\xd8\x6a\xd9\x6a\xda\x6a\xdb\x6a\xdc\x6a\xdd\x6a\xde\x6a\xdf\x6a\xe0\x6a\xe1\x6a\xe2\x6a\xe3\x6a\xe4\x6a\xe5\x6a\xe6\x6a\xe7\x6a\xe8\x6a\xe9\x6a\xea\x6a\xeb\x6a\xec\x6a\xed\x6a\xee\x6a\xef\x6a\xf0\x6a\xf1\x6a\xf2\x6a\xf3\x6a\xf4\x6a\xf5\x6a\xf6\x6a\xf7\x6a\xf8\x6a\xf9\x6a\xfa\x6a\xfb\x6a\xfc\x6a\xfd\x6a\xfe\x6b\x41\x6b\x42\x6b\x43\x6b\x44", /* e180 */ "\x6b\x45\x6b\x46\x6b\x47\x6b\x48\x6b\x49\x6b\x4a\x6b\x4b\x6b\x4c\x6b\x4d\x6b\x4e\x6b\x4f\x6b\x50\x6b\x51\x6b\x52\x6b\x53\x6b\x54\x6b\x55\x6b\x56\x6b\x57\x6b\x58\x6b\x59\x6b\x5a\x6b\x5b\x6b\x5c\x6b\x5d\x6b\x5e\x6b\x5f\x6b\x60\x6b\x61\x6b\x62\x6b\x63\x6b\x64\x6b\x65\x6b\x66\x6b\x67\x6b\x68\x6b\x69\x6b\x6a\x6b\x6b\x6b\x6c\x6b\x6d\x6b\x6e\x6b\x6f\x6b\x70\x6b\x71\x6b\x72\x6b\x73\x6b\x74\x6b\x75\x6b\x76\x6b\x77\x6b\x78\x6b\x79\x6b\x7a\x6b\x7b\x6b\x7c\x6b\x7d\x6b\x7e\x6b\x7f\x6b\x80\x6b\x81\x6b\x82\x6b\x83\x6b\x84\x6b\x85\x6b\x86\x6b\x87\x6b\x88\x6b\x89\x6b\x8a\x6b\x8b\x6b\x8c\x6b\x8d\x6b\x8e\x6b\x8f\x6b\x90\x6b\x91\x6b\x92\x6b\x93\x6b\x94\x6b\x95\x6b\x96\x6b\x97\x6b\x98\x6b\x99\x6b\x9a\x6b\x9b\x6b\x9c\x6b\x9d\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xa1\x6b\xa2\x6b\xa3\x6b\xa4\x6b\xa5\x6b\xa6\x6b\xa7\x6b\xa8\x6b\xa9\x6b\xaa\x6b\xab\x6b\xac\x6b\xad\x6b\xae\x6b\xaf\x6b\xb0\x6b\xb1\x6b\xb2\x6b\xb3\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x6b\xba\x6b\xbb\x6b\xbc\x6b\xbd\x6b\xbe\x6b\xbf\x6b\xc0\x6b\xc1\x6b\xc2\x6b\xc3\x6b\xc4", /* e200 */ "\x6b\xc5\x6b\xc6\x6b\xc7\x6b\xc8\x6b\xc9\x6b\xca\x6b\xcb\x6b\xcc\x6b\xcd\x6b\xce\x6b\xcf\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\x6b\xd4\x6b\xd5\x6b\xd6\x6b\xd7\x6b\xd8\x6b\xd9\x6b\xda\x6b\xdb\x6b\xdc\x6b\xdd\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x6b\xe9\x6b\xea\x6b\xeb\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\x6b\xfc\x6b\xfd\x6b\xfe\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\x6c\x46\x6c\x47\x6c\x48\x6c\x49\x6c\x4a\x6c\x4b\x6c\x4c\x6c\x4d\x6c\x4e\x6c\x4f\x6c\x50\x6c\x51\x6c\x52\x6c\x53\x6c\x54\x6c\x55\x6c\x56\x6c\x57\x6c\x58\x6c\x59\x6c\x5a\x6c\x5b\x6c\x5c\x6c\x5d\x6c\x5e\x6c\x5f\x6c\x60\x6c\x61\x6c\x62\x6c\x63\x6c\x64\x6c\x65\x6c\x66\x6c\x67\x6c\x68\x6c\x69\x6c\x6a\x6c\x6b\x6c\x6c\x6c\x6d\x6c\x6e\x6c\x6f\x6c\x70\x6c\x71\x6c\x72\x6c\x73\x6c\x74\x6c\x75\x6c\x76\x6c\x77\x6c\x78\x6c\x79\x6c\x7a\x6c\x7b\x6c\x7c\x6c\x7d\x6c\x7e\x6c\x7f\x6c\x80\x6c\x81\x6c\x82\x6c\x83\x6c\x84\x6c\x85\x6c\x86", /* e280 */ "\x6c\x87\x6c\x88\x6c\x89\x6c\x8a\x6c\x8b\x6c\x8c\x6c\x8d\x6c\x8e\x6c\x8f\x6c\x90\x6c\x91\x6c\x92\x6c\x93\x6c\x94\x6c\x95\x6c\x96\x6c\x97\x6c\x98\x6c\x99\x6c\x9a\x6c\x9b\x6c\x9c\x6c\x9d\x6c\x9e\x6c\x9f\x6c\xa0\x6c\xa1\x6c\xa2\x6c\xa3\x6c\xa4\x6c\xa5\x6c\xa6\x6c\xa7\x6c\xa8\x6c\xa9\x6c\xaa\x6c\xab\x6c\xac\x6c\xad\x6c\xae\x6c\xaf\x6c\xb0\x6c\xb1\x6c\xb2\x6c\xb3\x6c\xb4\x6c\xb5\x6c\xb6\x6c\xb7\x6c\xb8\x6c\xb9\x6c\xba\x6c\xbb\x6c\xbc\x6c\xbd\x6c\xbe\x6c\xbf\x6c\xc0\x6c\xc1\x6c\xc2\x6c\xc3\x6c\xc4\x6c\xc5\x6c\xc6\x6c\xc7\x6c\xc8\x6c\xc9\x6c\xca\x6c\xcb\x6c\xcc\x6c\xcd\x6c\xce\x6c\xcf\x6c\xd0\x6c\xd1\x6c\xd2\x6c\xd3\x6c\xd4\x6c\xd5\x6c\xd6\x6c\xd7\x6c\xd8\x6c\xd9\x6c\xda\x6c\xdb\x6c\xdc\x6c\xdd\x6c\xde\x6c\xdf\x6c\xe0\x6c\xe1\x6c\xe2\x6c\xe3\x6c\xe4\x6c\xe5\x6c\xe6\x6c\xe7\x6c\xe8\x6c\xe9\x6c\xea\x6c\xeb\x6c\xec\x6c\xed\x6c\xee\x6c\xef\x6c\xf0\x6c\xf1\x6c\xf2\x6c\xf3\x6c\xf4\x6c\xf5\x6c\xf6\x6c\xf7\x6c\xf8\x6c\xf9\x6c\xfa\x6c\xfb\x6c\xfc\x6c\xfd\x6c\xfe\x6d\x41\x6d\x42\x6d\x43\x6d\x44\x6d\x45\x6d\x46\x6d\x47\x6d\x48", /* e300 */ "\x6d\x49\x6d\x4a\x6d\x4b\x6d\x4c\x6d\x4d\x6d\x4e\x6d\x4f\x6d\x50\x6d\x51\x6d\x52\x6d\x53\x6d\x54\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x59\x6d\x5a\x6d\x5b\x6d\x5c\x6d\x5d\x6d\x5e\x6d\x5f\x6d\x60\x6d\x61\x6d\x62\x6d\x63\x6d\x64\x6d\x65\x6d\x66\x6d\x67\x6d\x68\x6d\x69\x6d\x6a\x6d\x6b\x6d\x6c\x6d\x6d\x6d\x6e\x6d\x6f\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x74\x6d\x75\x6d\x76\x6d\x77\x6d\x78\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7c\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x82\x6d\x83\x6d\x84\x6d\x85\x6d\x86\x6d\x87\x6d\x88\x6d\x89\x6d\x8a\x6d\x8b\x6d\x8c\x6d\x8d\x6d\x8e\x6d\x8f\x6d\x90\x6d\x91\x6d\x92\x6d\x93\x6d\x94\x6d\x95\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9b\x6d\x9c\x6d\x9d\x6d\x9e\x6d\x9f\x6d\xa0\x6d\xa1\x6d\xa2\x6d\xa3\x6d\xa4\x6d\xa5\x6d\xa6\x6d\xa7\x6d\xa8\x6d\xa9\x6d\xaa\x6d\xab\x6d\xac\x6d\xad\x6d\xae\x6d\xaf\x6d\xb0\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb4\x6d\xb5\x6d\xb6\x6d\xb7\x6d\xb8\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xbf\x6d\xc0\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc4\x6d\xc5\x6d\xc6\x6d\xc7\x6d\xc8", /* e380 */ "\x6d\xc9\x6d\xca\x6d\xcb\x6d\xcc\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd1\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd6\x6d\xd7\x6d\xd8\x6d\xd9\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdd\x6d\xde\x6d\xdf\x6d\xe0\x6d\xe1\x6d\xe2\x6d\xe3\x6d\xe4\x6d\xe5\x6d\xe6\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xeb\x6d\xec\x6d\xed\x6d\xee\x6d\xef\x6d\xf0\x6d\xf1\x6d\xf2\x6d\xf3\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf7\x6d\xf8\x6d\xf9\x6d\xfa\x6d\xfb\x6d\xfc\x6d\xfd\x6d\xfe\x6e\x41\x6e\x42\x6e\x43\x6e\x44\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4d\x6e\x4e\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x53\x6e\x54\x6e\x55\x6e\x56\x6e\x57\x6e\x58\x6e\x59\x6e\x5a\x6e\x5b\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x5f\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6b\x6e\x6c\x6e\x6d\x6e\x6e\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x7e\x6e\x7f\x6e\x80\x6e\x81\x6e\x82\x6e\x83\x6e\x84\x6e\x85\x6e\x86\x6e\x87\x6e\x88\x6e\x89\x6e\x8a", /* e400 */ "\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x8f\x6e\x90\x6e\x91\x6e\x92\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x98\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9c\x6e\x9d\x6e\x9e\x6e\x9f\x6e\xa0\x6e\xa1\x6e\xa2\x6e\xa3\x6e\xa4\x6e\xa5\x6e\xa6\x6e\xa7\x6e\xa8\x6e\xa9\x6e\xaa\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xaf\x6e\xb0\x6e\xb1\x6e\xb2\x6e\xb3\x6e\xb4\x6e\xb5\x6e\xb6\x6e\xb7\x6e\xb8\x6e\xb9\x6e\xba\x6e\xbb\x6e\xbc\x6e\xbd\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc1\x6e\xc2\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc7\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcb\x6e\xcc\x6e\xcd\x6e\xce\x6e\xcf\x6e\xd0\x6e\xd1\x6e\xd2\x6e\xd3\x6e\xd4\x6e\xd5\x6e\xd6\x6e\xd7\x6e\xd8\x6e\xd9\x6e\xda\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xde\x6e\xdf\x6e\xe0\x6e\xe1\x6e\xe2\x6e\xe3\x6e\xe4\x6e\xe5\x6e\xe6\x6e\xe7\x6e\xe8\x6e\xe9\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf4\x6e\xf5\x6e\xf6\x6e\xf7\x6e\xf8\x6e\xf9\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6f\x41\x6f\x42\x6f\x43\x6f\x44\x6f\x45\x6f\x46\x6f\x47\x6f\x48\x6f\x49\x6f\x4a\x6f\x4b\x6f\x4c", /* e480 */ "\x6f\x4d\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x58\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5c\x6f\x5d\x6f\x5e\x6f\x5f\x6f\x60\x6f\x61\x6f\x62\x6f\x63\x6f\x64\x6f\x65\x6f\x66\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6d\x6f\x6e\x6f\x6f\x6f\x70\x6f\x71\x6f\x72\x6f\x73\x6f\x74\x6f\x75\x6f\x76\x6f\x77\x6f\x78\x6f\x79\x6f\x7a\x6f\x7b\x6f\x7c\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x84\x6f\x85\x6f\x86\x6f\x87\x6f\x88\x6f\x89\x6f\x8a\x6f\x8b\x6f\x8c\x6f\x8d\x6f\x8e\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9c\x6f\x9d\x6f\x9e\x6f\x9f\x6f\xa0\x6f\xa1\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa7\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb3\x6f\xb4\x6f\xb5\x6f\xb6\x6f\xb7\x6f\xb8\x6f\xb9\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc0\x6f\xc1\x6f\xc2\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xc9\x6f\xca\x6f\xcb\x6f\xcc", /* e500 */ "\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd1\x6f\xd2\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xde\x6f\xdf\x6f\xe0\x6f\xe1\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea\x6f\xeb\x6f\xec\x6f\xed\x6f\xee\x6f\xef\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4c\x70\x4d\x70\x4e\x70\x4f\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5e\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6b\x70\x6c\x70\x6d\x70\x6e\x70\x6f\x70\x70\x70\x71\x70\x72\x70\x73\x70\x74\x70\x75\x70\x76\x70\x77\x70\x78\x70\x79\x70\x7a\x70\x7b\x70\x7c\x70\x7d\x70\x7e\x70\x7f\x70\x80\x70\x81\x70\x82\x70\x83\x70\x84\x70\x85\x70\x86\x70\x87\x70\x88\x70\x89\x70\x8a\x70\x8b\x70\x8c\x70\x8d\x70\x8e", /* e580 */ "\x70\x8f\x70\x90\x70\x91\x70\x92\x70\x93\x70\x94\x70\x95\x70\x96\x70\x97\x70\x98\x70\x99\x70\x9a\x70\x9b\x70\x9c\x70\x9d\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xab\x70\xac\x70\xad\x70\xae\x70\xaf\x70\xb0\x70\xb1\x70\xb2\x70\xb3\x70\xb4\x70\xb5\x70\xb6\x70\xb7\x70\xb8\x70\xb9\x70\xba\x70\xbb\x70\xbc\x70\xbd\x70\xbe\x70\xbf\x70\xc0\x70\xc1\x70\xc2\x70\xc3\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc8\x70\xc9\x70\xca\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xd8\x70\xd9\x70\xda\x70\xdb\x70\xdc\x70\xdd\x70\xde\x70\xdf\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe4\x70\xe5\x70\xe6\x70\xe7\x70\xe8\x70\xe9\x70\xea\x70\xeb\x70\xec\x70\xed\x70\xee\x70\xef\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf7\x70\xf8\x70\xf9\x70\xfa\x70\xfb\x70\xfc\x70\xfd\x70\xfe\x71\x41\x71\x42\x71\x43\x71\x44\x71\x45\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4a\x71\x4b\x71\x4c\x71\x4d\x71\x4e\x71\x4f\x71\x50", /* e600 */ "\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5c\x71\x5d\x71\x5e\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x64\x71\x65\x71\x66\x71\x67\x71\x68\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6e\x71\x6f\x71\x70\x71\x71\x71\x72\x71\x73\x71\x74\x71\x75\x71\x76\x71\x77\x71\x78\x71\x79\x71\x7a\x71\x7b\x71\x7c\x71\x7d\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x84\x71\x85\x71\x86\x71\x87\x71\x88\x71\x89\x71\x8a\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x8f\x71\x90\x71\x91\x71\x92\x71\x93\x71\x94\x71\x95\x71\x96\x71\x97\x71\x98\x71\x99\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\x9f\x71\xa0\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa8\x71\xa9\x71\xaa\x71\xab\x71\xac\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb3\x71\xb4\x71\xb5\x71\xb6\x71\xb7\x71\xb8\x71\xb9\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc3\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xce\x71\xcf\x71\xd0", /* e680 */ "\x71\xd1\x71\xd2\x71\xd3\x71\xd4\x71\xd5\x71\xd6\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe0\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe5\x71\xe6\x71\xe7\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xee\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8\x71\xf9\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x47\x72\x48\x72\x49\x72\x4a\x72\x4b\x72\x4c\x72\x4d\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x52\x72\x53\x72\x54\x72\x55\x72\x56\x72\x57\x72\x58\x72\x59\x72\x5a\x72\x5b\x72\x5c\x72\x5d\x72\x5e\x72\x5f\x72\x60\x72\x61\x72\x62\x72\x63\x72\x64\x72\x65\x72\x66\x72\x67\x72\x68\x72\x69\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x6e\x72\x6f\x72\x70\x72\x71\x72\x72\x72\x73\x72\x74\x72\x75\x72\x76\x72\x77\x72\x78\x72\x79\x72\x7a\x72\x7b\x72\x7c\x72\x7d\x72\x7e\x72\x7f\x72\x80\x72\x81\x72\x82\x72\x83\x72\x84\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8a\x72\x8b\x72\x8c\x72\x8d\x72\x8e\x72\x8f\x72\x90\x72\x91\x72\x92", /* e700 */ "\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\x9f\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xac\x72\xad\x72\xae\x72\xaf\x72\xb0\x72\xb1\x72\xb2\x72\xb3\x72\xb4\x72\xb5\x72\xb6\x72\xb7\x72\xb8\x72\xb9\x72\xba\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc1\x72\xc2\x72\xc3\x72\xc4\x72\xc5\x72\xc6\x72\xc7\x72\xc8\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcd\x72\xce\x72\xcf\x72\xd0\x72\xd1\x72\xd2\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd7\x72\xd8\x72\xd9\x72\xda\x72\xdb\x72\xdc\x72\xdd\x72\xde\x72\xdf\x72\xe0\x72\xe1\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xe8\x72\xe9\x72\xea\x72\xeb\x72\xec\x72\xed\x72\xee\x72\xef\x72\xf0\x72\xf1\x72\xf2\x72\xf3\x72\xf4\x72\xf5\x72\xf6\x72\xf7\x72\xf8\x72\xf9\x72\xfa\x72\xfb\x72\xfc\x72\xfd\x72\xfe\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4d\x73\x4e\x73\x4f\x73\x50\x73\x51\x73\x52\x73\x53\x73\x54", /* e780 */ "\x73\x55\x73\x56\x73\x57\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x60\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6c\x73\x6d\x73\x6e\x73\x6f\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c\x73\x7d\x73\x7e\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x84\x73\x85\x73\x86\x73\x87\x73\x88\x73\x89\x73\x8a\x73\x8b\x73\x8c\x73\x8d\x73\x8e\x73\x8f\x73\x90\x73\x91\x73\x92\x73\x93\x73\x94\x73\x95\x73\x96\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9b\x73\x9c\x73\x9d\x73\x9e\x73\x9f\x73\xa0\x73\xa1\x73\xa2\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xa9\x73\xaa\x73\xab\x73\xac\x73\xad\x73\xae\x73\xaf\x73\xb0\x73\xb1\x73\xb2\x73\xb3\x73\xb4\x73\xb5\x73\xb6\x73\xb7\x73\xb8\x73\xb9\x73\xba\x73\xbb\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc0\x73\xc1\x73\xc2\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xc8\x73\xc9\x73\xca\x73\xcb\x73\xcc\x73\xcd\x73\xce\x73\xcf\x73\xd0\x73\xd1\x73\xd2\x73\xd3\x73\xd4", /* e800 */ "\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xd9\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xde\x73\xdf\x73\xe0\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe5\x73\xe6\x73\xe7\x73\xe8\x73\xe9\x73\xea\x73\xeb\x73\xec\x73\xed\x73\xee\x73\xef\x73\xf0\x73\xf1\x73\xf2\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc\x73\xfd\x73\xfe\x74\x41\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x55\x74\x56\x74\x57\x74\x58\x74\x59\x74\x5a\x74\x5b\x74\x5c\x74\x5d\x74\x5e\x74\x5f\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6d\x74\x6e\x74\x6f\x74\x70\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x76\x74\x77\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7e\x74\x7f\x74\x80\x74\x81\x74\x82\x74\x83\x74\x84\x74\x85\x74\x86\x74\x87\x74\x88\x74\x89\x74\x8a\x74\x8b\x74\x8c\x74\x8d\x74\x8e\x74\x8f\x74\x90\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96", /* e880 */ "\x74\x97\x74\x98\x74\x99\x74\x9a\x74\x9b\x74\x9c\x74\x9d\x74\x9e\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xa7\x74\xa8\x74\xa9\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xba\x74\xbb\x74\xbc\x74\xbd\x74\xbe\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd2\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdc\x74\xdd\x74\xde\x74\xdf\x74\xe0\x74\xe1\x74\xe2\x74\xe3\x74\xe4\x74\xe5\x74\xe6\x74\xe7\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xee\x74\xef\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf4\x74\xf5\x74\xf6\x74\xf7\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x41\x75\x42\x75\x43\x75\x44\x75\x45\x75\x46\x75\x47\x75\x48\x75\x49\x75\x4a\x75\x4b\x75\x4c\x75\x4d\x75\x4e\x75\x4f\x75\x50\x75\x51\x75\x52\x75\x53\x75\x54\x75\x55\x75\x56\x75\x57\x75\x58", /* e900 */ "\x75\x59\x75\x5a\x75\x5b\x75\x5c\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x65\x75\x66\x75\x67\x75\x68\x75\x69\x75\x6a\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x72\x75\x73\x75\x74\x75\x75\x75\x76\x75\x77\x75\x78\x75\x79\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x7f\x75\x80\x75\x81\x75\x82\x75\x83\x75\x84\x75\x85\x75\x86\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8b\x75\x8c\x75\x8d\x75\x8e\x75\x8f\x75\x90\x75\x91\x75\x92\x75\x93\x75\x94\x75\x95\x75\x96\x75\x97\x75\x98\x75\x99\x75\x9a\x75\x9b\x75\x9c\x75\x9d\x75\x9e\x75\x9f\x75\xa0\x75\xa1\x75\xa2\x75\xa3\x75\xa4\x75\xa5\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xab\x75\xac\x75\xad\x75\xae\x75\xaf\x75\xb0\x75\xb1\x75\xb2\x75\xb3\x75\xb4\x75\xb5\x75\xb6\x75\xb7\x75\xb8\x75\xb9\x75\xba\x75\xbb\x75\xbc\x75\xbd\x75\xbe\x75\xbf\x75\xc0\x75\xc1\x75\xc2\x75\xc3\x75\xc4\x75\xc5\x75\xc6\x75\xc7\x75\xc8\x75\xc9\x75\xca\x75\xcb\x75\xcc\x75\xcd\x75\xce\x75\xcf\x75\xd0\x75\xd1\x75\xd2\x75\xd3\x75\xd4\x75\xd5\x75\xd6\x75\xd7\x75\xd8", /* e980 */ "\x75\xd9\x75\xda\x75\xdb\x75\xdc\x75\xdd\x75\xde\x75\xdf\x75\xe0\x75\xe1\x75\xe2\x75\xe3\x75\xe4\x75\xe5\x75\xe6\x75\xe7\x75\xe8\x75\xe9\x75\xea\x75\xeb\x75\xec\x75\xed\x75\xee\x75\xef\x75\xf0\x75\xf1\x75\xf2\x75\xf3\x75\xf4\x75\xf5\x75\xf6\x75\xf7\x75\xf8\x75\xf9\x75\xfa\x75\xfb\x75\xfc\x75\xfd\x75\xfe\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x80\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a", /* ea00 */ "\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x76\xfe\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c", /* ea80 */ "\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x80\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc", /* eb00 */ "\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x77\xfe\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x80\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e", /* eb80 */ "\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x78\xfe\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60", /* ec00 */ "\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x80\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0", /* ec80 */ "\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x79\xfe\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x80\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2", /* ed00 */ "\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7a\xfe\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64", /* ed80 */ "\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x80\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4", /* ee00 */ "\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7b\xfe\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x80\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6", /* ee80 */ "\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7c\xfe\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68", /* ef00 */ "\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x80\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8", /* ef80 */ "\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7d\xfe\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x80\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa", /* f000 */ "\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7e\xfe\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c", /* f080 */ "\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x80\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec", /* f100 */ "\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x7f\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x8e\x58\x77\x58\x82\x59\x80\x5b\xae\x5c\x66\x5c\x78\x5e\x49\x5e\x8a\x5f\x7a\x5f\xd2\x5f\xd5\x5f\xd9\x5f\xdd\x60\x59\x60\xad\x61\x77\x62\xb9\x62\xce\x62\xe2\x63\xee\x64\x8e\x64\xf1\x65\x49\x65\x66\x65\xb8\x65\xc6\x66\x78\x66\xdd\x66\xdf\x66\xe6\x67\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x00\x00\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x00\x00\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-300_P110-1997 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\x22\x12\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x22\x20\x22\xa5\x23\x12\x22\x02\x22\x07\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\x22\x61\x22\x52\x22\x6a\x22\x6b\x22\x1a\x22\x3d\x22\x1d\x22\x2b\x22\x2c\x22\x08\x22\x0b\x22\x86\x22\x87\x22\x82\x22\x83\x22\x2a\x22\x29\x22\x27\x22\x28\x21\xd2\x21\xd4\x22\x00\x22\x03\x21\x2b\x20\x30\x26\x6f\x26\x6d\x26\x6a\x20\x20\x20\x21\x00\xb6\x25\xef\x00\x00\x25\x00\x25\x02\x25\x0c\x25\x10", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\x30\x1c\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x25\x18\x25\x14\x25\x1c\x25\x2c\x25\x24\x25\x34\x25\x3c\x25\x01\x25\x03\x25\x0f\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x25\x13\x25\x1b\x25\x17\x25\x23\x25\x33\x25\x2b\x25\x3b\x25\x4b\x25\x20\x25\x2f\x25\x28\x25\x37\x25\x3f\x25\x1d\x25\x30\x25\x25\x25\x38\x25\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x14\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\x4e\xdd\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x66\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\xf8\x6f\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x67\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x8c\x4e\x09\x56\xdb\x4e\x94\x51\x6d\x4e\x03\x51\x6b\x4e\x5d\x53\x41\x76\x7e\x53\x43\x4e\x07\x51\x04\x90\xfd\x90\x53\x5e\x9c\x77\x0c\x5e\x02\x53\x3a\x75\x3a\x67\x51\x67\x71\x89\x7f\x53\x57\x53\x17\x59\x27\x4e\x2d\x5c\x0f\x4e\x0a\x4e\x0b\x5e\x74\x67\x08\x65\xe5\x75\x30\x5b\x50\x5c\x71\x67\x2c\x5d\xdd\x85\xe4\x91\xce\x5d\xe5\x69\x6d\x67\x28\x4e\x95\x90\xce\x5c\xf6\x96\xc4\x9a\xd8\x5c\xa1\x59\x2b\x53\x9f\x4e\xac\x4f\x50\x6b\x63\x67\x7e\x6a\x5f\x54\x8c\x88\xfd\x75\x37\x7f\x8e\x54\x09\x5d\x0e", /* 4580 */ "\x77\xf3\x8c\x37\x96\xfb\x95\x77\x6c\xbb\x6c\xa2\x91\xd1\x65\xb0\x53\xe3\x6a\x4b\x4e\x45\x79\x8f\x62\x40\x5e\x73\x51\x85\x56\xfd\x53\x16\x96\x2a\x5b\xae\x4e\xba\x4f\x5c\x90\xe8\x6e\x05\x6b\x21\x7f\xa9\x75\x1f\x4e\xe3\x51\xfa\x6c\x34\x68\xee\x51\x49\x52\xa0\x54\x08\x79\x5e\x67\x97\x91\xcd\x88\x4c\x4f\xe1\x66\x0e\x6d\x77\x5b\x89\x5e\x78\x4f\xdd\x59\x2a\x5b\xcc\x6c\x5f\x92\x34\x52\x4d\x77\xe5\x6b\x66\x4f\x0a\x66\x2d\x52\x06\x52\xdd\x75\x28\x5e\x83\x90\x20\x6c\x17\x62\x10\x89\x8b\x52\x29\x4f\x1a\x5b\x66\x5c\xa9\x75\x23\x95\x93\x57\x30\x81\xea\x82\x6f\x95\xa2\x61\x1b\x65\x3f\x5c\x3e\x8a\x08\x65\x87\x62\x4b\x72\x36\x65\xb9\x4e\x8b\x62\x38\x54\xc1\x55\x9c\x6e\x21\x5f\x18\x53\xe4\x8f\xba\x50\x09\x92\x44\x4e\x4b\x58\x34\x6d\x0b\x57\xce\x6d\x25\x7a\xcb\x5e\xa6\x53\x48\x4e\xca\x5f\x66\x8a\x2d\x90\x1a\x52\xd5\x5f\x8c\x59\x48\x5b\x9a\x6c\x60\x5c\x4b\x6d\x5c\x74\x06\x57\x42\x5b\x9f\x82\xf1\x76\x84\x53\xf8\x79\xc0\x6a\x2a\x54\x0d\x5b\x5d\x7a\xf9\x53\x5a\x52\x9b\x5e\xab\x84\x49\x68\x04\x6c\x38\x56\x68\x73\x89\x59\x1a\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\xc0\x77\x1f\x60\x75\x97\x59\x51\x86\x83\x02\x65\x4f\x8c\x4a\x51\x75\x6c\xd5\x76\x7a\x97\x52\x58\x97\x65\x99\x5f\xe0\x8c\xc7\x66\x42\x72\x69\x8e\xca\x5f\xb3\x89\x81\x5b\xfe\x58\x5a\x79\xcb\x76\x7d\x6c\xb3\x70\x2c\x6c\xb9\x96\x86\x85\x35\x5f\x53\x4f\xca\x5f\xd7\x66\x25\x79\x3e\x99\xac\x51\x65\x5e\xfa\x68\x39\x67\x49\x90\x32\x82\x08\x6d\x66\x7c\xbe\x54\x0c\x60\x27\x7c\x73\x80\x05\x52\xa9\x67\x9d\x8f\xd1\x76\xf4\x76\xee\x67\x65\x75\x3b\x76\xf8\x9e\xd2\x4e\x38\x82\x39\x75\x31\x58\xeb\x7b\x2c\x71\x8a", /* 4680 */ "\x7d\x19\x50\x65\x68\xb0\x82\xb3\x57\x1f\x67\x09\x5b\xb6\x7d\xda\x7d\x4c\x8a\xbf\x59\x29\x67\x1f\x7f\x6e\x6d\x45\x65\x89\x5f\x0f\x5f\x62\x97\x62\x7a\x2e\x8f\x38\x59\x16\x51\x43\x4f\x53\x9e\x7f\x5f\xa1\x59\x73\x5e\xb7\x4e\x16\x52\xc7\x58\x00\x59\x7d\x51\x50\x5b\xfa\x92\xfc\x72\x79\x57\xfc\x90\x54\x54\x11\x53\xd6\x7b\x49\x66\x7a\x56\xde\x95\x80\x90\x4b\x50\x99\x60\x1d\x96\x3f\x4e\x0d\x98\x08\x51\x68\x5b\xff\x55\x84\x67\x7f\x98\xef\x8c\x9e\x73\xfe\x98\xdf\x7d\x44\x98\x5e\x51\x6c\x67\x50\x99\x99\x55\x46\x7d\x50\x88\x68\x77\xe2\x6f\x5f\x79\xc1\x52\x36\x90\xa6\x6c\xbc\x7c\xf8\x5b\x8f\x7b\x56\x6c\xe2\x54\xe1\x65\x70\x95\x8b\x6e\x96\x6a\x39\x8c\xbb\x66\x0c\x5f\x37\x78\x14\x53\xcb\x5b\x87\x82\xe5\x83\xca\x63\x01\x82\xb1\x5f\x15\x7d\x00\x83\x52\x52\x25\x4f\xee\x8d\x8a\x4f\x4f\x85\xac\x6b\xdb\x90\x60\x55\x4f\x59\x65\x57\x8b\x5f\xc3\x76\x7b\x65\xe9\x67\xf3\x6d\x69\x8c\xea\x52\xd9\x6c\xc9\x5e\x38\x5b\x88\x57\xfa\x7b\xa1\x6c\xf0\x4f\x38\x67\x00\x4e\xe5\x6b\x4c\x88\xd5\x8d\x64\x8d\xb3\x89\x8f\x6d\x41\x8a\xa0\x66\x07\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xde\x71\x67\x58\x69\x90\x01\x96\xc5\x67\x2b\x54\xf2\x5c\xb8\x4e\x5f\x5c\x90\x52\x1d\x83\x28\x52\x47\x6b\xd4\x80\xfd\x8a\x71\x62\x95\x8e\xe2\x83\xc5\x90\x23\x4e\xd6\x6c\x11\x7d\x66\x91\x52\x7e\x41\x4f\xa1\x6e\x80\x67\x1d\x4e\xd8\x67\x61\x71\x21\x80\x03\x69\x7d\x4e\x3b\x61\x0f\x62\x26\x52\x07\x52\x64\x72\x47\x7d\x30\x6e\x08\x7a\x32\x5e\x03\x91\xcc\x5c\x5e\x7a\xe0\x59\x09\x4f\x55\x68\x5c\x5f\x7c\x67\xfb\x76\xca\x58\xf2\x4e\xc1\x6d\xf1\x53\xf0\x9c\xe5\x9d\xb4\x65\x2f\x65\x74\x89\xd2\x56\x09\x54\x73", /* 4780 */ "\x88\x5b\x8b\x70\x57\x27\x73\x87\x8d\xef\x70\x6b\x96\x1c\x8f\x1d\x70\xb9\x4e\x0e\x6e\x1b\x75\x51\x92\x80\x7a\x7a\x4e\xa4\x7f\xbd\x53\x4a\x53\xce\x59\x2e\x7d\xcf\x8a\x18\x66\x74\x69\xcb\x96\x9b\x68\x85\x53\x70\x8a\x00\x68\x17\x8e\xab\x66\xf8\x51\x4b\x7d\x20\x96\xc6\x7b\xc0\x51\x48\x6e\xdd\x6c\x7a\x65\x59\x7d\x14\x67\xf4\x63\xa5\x66\x1f\x77\x40\x75\x59\x66\x20\x5d\xf1\x75\x4c\x51\x77\x65\x6c\x7f\xa4\x98\x06\x51\x71\x6d\x3b\x91\xcf\x63\x07\x89\xe3\x5b\xa4\x67\x9c\x54\x04\x67\x1b\x96\x32\x7d\x04\x61\xb2\x96\x7d\x4e\x80\x56\xf3\x4e\x88\x82\x72\x7a\x0e\x69\x0d\x53\xef\x60\x52\x4f\x4d\x51\x78\x5f\xc5\x7d\x9a\x60\x25\x57\x28\x57\xa3\x54\x1b\x5e\xf6\x5d\x8b\x4f\x01\x68\x03\x67\x0d\x71\xb1\x52\x72\x53\x54\x6b\x69\x53\xf2\x51\x2a\x65\x8e\x62\x3f\x5b\x97\x68\x3c\x8f\xb0\x7b\x20\x57\x12\x8a\xf8\x81\x07\x55\x53\x8c\xe2\x5f\x25\x98\xa8\x5f\x97\x66\x13\x62\x53\x98\x2d\x65\xed\x6b\xb5\x52\xe2\x71\x36\x56\xe3\x98\x4d\x84\x3d\x91\x4d\x7a\x0b\x8f\xbb\x54\x3e\x61\x1f\x5b\xdb\x53\xcd\x7a\x14\x97\x00\x6e\x90\x6c\x96\x98\x4c\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xbc\x83\x49\x7b\x97\x76\xdb\x8f\xb2\x90\xa3\x77\x01\x69\xd8\x6b\xbf\x5c\x11\x4e\xcb\x53\xd7\x97\xf3\x7d\xe8\x59\xd4\x5e\x84\x4f\xc2\x72\xb6\x79\x3a\x5e\x97\x5a\x9b\x68\x2a\x6e\xcb\x68\xa8\x7e\x04\x53\xf3\x5d\xe6\x53\xca\x90\x78\x5c\x45\x60\xc5\x7d\xf4\x70\xad\x99\x28\x92\x71\x6a\x21\x6b\x8a\x7e\x3e\x4e\x9c\x7e\x4a\x4e\xf2\x58\x57\x6d\x88\x88\x53\x69\x1c\x67\x17\x5b\x85\x52\x9f\x5c\x1a\x8c\xbf\x60\xa6\x81\x02\x7b\xe0\x4f\x73\x7d\x21\x51\xa8\x68\x51\x78\xba\x72\x67\x4e\x26\x50\x24\x89\xb3\x8c\xb4", /* 4880 */ "\x7d\xad\x7d\x71\x5b\xbf\x4e\x21\x7c\xd6\x89\xaa\x93\x32\x6f\x84\x65\xbd\x5b\xb9\x98\xdb\x5c\x40\x79\x50\x90\x4e\x6c\x0f\x65\x39\x76\xe4\x7a\x4d\x6e\x0b\x5d\xfb\x6d\xf3\x5f\xdc\x4e\x89\x8e\xcd\x88\xc5\x91\x78\x7e\x54\x67\xd3\x5e\x1d\x7d\xbf\x7c\x89\x82\x2a\x75\x32\x54\x68\x4e\xd9\x5f\x85\x4f\x4e\x7d\xd1\x8e\xfd\x9e\xbb\x61\x76\x52\xb4\x78\xef\x4e\x39\x80\xb2\x96\x50\x5c\x0e\x65\x3e\x66\x43\x5e\xa7\x4e\xf6\x60\xf3\x9a\x13\x4e\xd5\x4f\x7f\x8f\x2a\x98\x54\x75\x6a\x5f\x35\x80\x5e\x4f\x9b\x6e\x6f\x6e\xb6\x68\x21\x92\x85\x92\xf3\x87\x8d\x97\x56\x51\x99\x5b\x8c\x6e\x2f\x93\x5b\x59\x1c\x51\x45\x9f\x8d\x7d\xb1\x83\xf1\x90\x1f\x52\xc9\x52\x37\x8d\x77\x64\x69\x53\xc2\x55\xb6\x7a\x42\x63\xa8\x8f\xd4\x80\x77\x6b\x62\x4f\x1d\x5e\x79\x74\x03\x6a\x29\x5c\x55\x5e\x61\x84\x5b\x5e\xad\x97\x5e\x53\xf7\x53\x58\x6b\x73\x62\xe1\x51\xe6\x8a\x9e\x66\x28\x57\xdf\x6d\xf5\x51\x8d\x50\xcd\x79\xd1\x9b\x5a\x7a\xef\x90\x14\x68\x48\x5b\x57\x8a\xd6\x51\x7c\x53\xc8\x63\x2f\x62\x80\x5f\xb9\x67\x2d\x7c\xfb\x5f\x93\x51\xb7\x61\x4b\x5c\xf0\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x31\x53\x9a\x50\x74\x6c\xe8\x6e\x2c\x98\x03\x4e\x57\x8a\x66\x57\x6a\x84\x29\x51\x5a\x6c\x7d\x5b\x9d\x60\x6d\x6a\x0b\x6e\x29\x65\x77\x8a\xac\x82\xb8\x54\x4a\x6b\x74\x82\x2c\x98\xfe\x79\x3c\x5c\x06\x96\xe3\x78\x02\x52\x24\x5f\x79\x5f\x71\x66\xfd\x5e\x2f\x96\x78\x93\x8c\x8a\xc7\x5f\x70\x60\xaa\x6a\x19\x75\x33\x5b\xb3\x6b\xcd\x88\xdc\x5e\x4c\x58\xf0\x96\x64\x7b\x39\x5a\x66\x4e\x7e\x7a\xf6\x82\x9d\x72\x5b\x8c\xb7\x79\xfb\x78\x5d\x83\x36\x52\xb9\x99\x0a\x52\xf2\x80\xa5\x8b\x19\x70\x89\x59\x0f\x58\x02", /* 4980 */ "\x67\xcf\x62\x55\x5e\x30\x71\x3c\x78\x6b\x80\x01\x7a\x76\x5b\xe9\x91\xdd\x65\xad\x5c\x04\x5d\xee\x5d\x50\x62\x98\x80\x10\x5b\xa3\x59\xcb\x5f\x8b\x6b\x8b\x66\x6f\x8c\x61\x90\xf7\x53\x53\x96\xe2\x85\xab\x6b\x7b\x80\x15\x64\xcd\x4e\xae\x4e\x91\x90\xe1\x52\xe4\x6c\x42\x8c\xab\x5b\x98\x59\xbb\x88\xcf\x77\x3c\x4f\x2f\x7a\xaf\x7b\xc9\x96\x8e\x63\xdb\x68\x42\x99\xc5\x68\xb6\x57\x47\x8c\xa1\x54\x7d\x73\x8b\x84\xb2\x90\xc1\x78\xe8\x7b\x11\x66\xf2\x69\x75\x58\x31\x63\xd0\x8a\x3c\x96\xea\x90\x55\x88\xc1\x99\x96\x75\xc5\x68\x50\x4f\x59\x74\xe6\x4e\xe4\x54\x39\x73\x2a\x67\x2a\x52\x5b\x8c\xa0\x4f\x34\x51\x00\x54\x2b\x90\x69\x8f\xc4\x5c\x3b\x5d\xcc\x7b\x54\x8f\xfd\x8a\x0e\x4e\x08\x92\x5b\x71\xc3\x8a\xb2\x70\xba\x96\x62\x67\x9a\x76\xae\x8b\x77\x7d\xbe\x96\xe8\x62\x11\x5b\xc4\x83\x7b\x62\xbc\x7d\x0d\x76\xe3\x7e\x2b\x96\x4d\x57\x2d\x7a\xdc\x7b\xc4\x6b\xba\x8c\x9d\x69\x8e\x90\x47\x6f\x14\x53\x60\x8f\xeb\x52\x87\x62\x4d\x65\x66\x7d\x1a\x7d\x42\x6b\xce\x7d\x79\x7e\x2e\x66\x6e\x79\x65\x50\x0b\x5c\x02\x99\xd2\x8a\x55\x75\x60\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x58\x80\x89\x50\xbe\x5e\x2b\x6d\xb2\x4f\x8b\x81\xe3\x81\xf3\x56\xe0\x7d\x99\x5d\xf2\x89\x9a\x6e\x9d\x6d\x17\x8a\xad\x89\x96\x73\x1b\x5d\xe8\x7d\xb2\x88\x8b\x4e\xfb\x5b\xc6\x88\x96\x6c\xc1\x84\x57\x8f\x03\x6b\xc5\x97\xff\x8c\xa9\x5e\x45\x82\xe6\x63\xaa\x5f\x81\x78\xc1\x82\x1e\x52\xaa\x7a\xaa\x59\x99\x62\x97\x8f\x14\x7f\xd2\x4f\xc3\x54\xc9\x96\x7a\x66\xf4\x8b\x1b\x5e\x72\x5f\xa9\x8a\x2a\x6d\x3e\x77\x63\x64\x83\x8b\x58\x61\x4e\x5a\x5a\x8d\x85\x71\xd0\x98\x3c\x72\xe9\x58\x3a\x5d\xfe\x8a\x8d\x67\xc4", /* 4a80 */ "\x7d\xe0\x4f\x11\x77\xed\x4f\x0f\x5b\xc5\x62\x9c\x5c\x3c\x53\x3b\x6d\xc0\x81\xfc\x96\xd1\x90\x4a\x6d\x6e\x93\xe1\x5c\x64\x98\xfc\x52\x4a\x6d\xfb\x85\x84\x96\x8a\x56\xfa\x58\x83\x77\x66\x98\x05\x4e\x73\x8c\x46\x8a\x31\x7d\xd2\x8f\xf0\x6d\x6a\x4f\x9d\x6b\x6f\x6b\x27\x62\xc5\x51\x1f\x97\x69\x53\x74\x9a\xa8\x67\x75\x88\x7f\x53\x05\x75\x70\x8d\x70\x86\x4e\x5c\xef\x8c\xde\x5f\xf5\x72\x5f\x76\x86\x60\x9f\x80\xcc\x59\xeb\x81\x31\x5e\x0c\x8a\x17\x96\x76\x82\xd7\x74\xb0\x84\xb8\x50\xd5\x96\xf2\x72\x48\x78\x34\x6d\xd1\x6e\x09\x67\xff\x6f\x54\x59\x15\x50\x0d\x72\xac\x9e\xc4\x7b\x46\x9b\x3c\x65\x63\x53\xbb\x8a\x98\x91\xdc\x98\x18\x6f\xc3\x65\xc5\x50\x1f\x7f\x8a\x6f\x64\x90\x31\x5f\x3e\x63\xf4\x90\x38\x8b\x66\x7b\xe4\x72\x06\x68\x43\x72\xec\x65\xcf\x82\xa6\x5b\xa2\x69\x60\x9e\xa6\x52\xdf\x67\x90\x63\x9b\x7d\x75\x98\x55\x5d\xf3\x58\x05\x8a\xcb\x95\xa3\x88\x63\x8c\xa8\x5b\x63\x5e\x8a\x54\x49\x78\x6c\x7d\x2b\x8c\xa2\x53\x52\x7d\x76\x8c\xb8\x70\x70\x54\x7c\x65\x45\x66\x76\x73\xb2\x56\xf2\x7b\xb1\x58\xa8\x7a\x81\x66\xae\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x87\x59\xff\x88\x40\x56\xf0\x7b\x51\x6d\xf7\x5f\x01\x93\x4b\x90\x00\x4f\xe3\x67\x5f\x4f\xbf\x8c\xc3\x52\x6f\x63\xa1\x54\x42\x89\x07\x69\x8a\x5e\x2d\x5a\x18\x75\x18\x51\x4d\x5e\x7e\x50\xb5\x5b\xdd\x68\xd2\x74\x5e\x69\xfb\x5f\xae\x55\xe3\x8a\x70\x5b\xf8\x58\x24\x83\x58\x5f\x13\x5e\x95\x70\x6f\x75\x1a\x7d\x05\x60\xe3\x7e\x70\x50\x12\x52\x38\x83\xef\x53\x73\x5f\x31\x6a\x2b\x9c\xf4\x53\xcc\x6d\x32\x4e\xab\x4e\x92\x84\x2c\x8a\x8c\x65\xe2\x6f\x01\x80\xa9\x9d\xf9\x8b\x72\x7b\x52\x95\x89\x6d\x74\x63\xa2", /* 4b80 */ "\x65\x90\x5b\xd2\x63\x19\x8a\xb0\x76\xdf\x99\xa8\x7a\x74\x82\x36\x88\x46\x80\x61\x65\x57\x59\x22\x96\x44\x88\xab\x93\x26\x7b\x4b\x62\xb5\x53\x71\x5e\x81\x5b\xdf\x4f\x75\x58\xc1\x70\x58\x7d\xca\x54\x38\x73\xe0\x52\xd8\x52\x08\x78\xd0\x6b\x23\x68\x38\x4e\x43\x69\x0e\x83\x77\x6e\xd1\x98\xf2\x81\x70\x88\x57\x8e\xf8\x79\x8e\x83\xdc\x8f\xce\x7e\x01\x55\x10\x4e\xa8\x8a\x33\x91\x62\x5e\xfb\x60\x6f\x4e\x86\x66\x4b\x63\x68\x52\x17\x80\x56\x51\xfd\x76\x42\x82\x1f\x96\x85\x50\xcf\x66\x2f\x4f\x3c\x4e\x59\x6a\x3d\x4e\x71\x52\x3a\x8a\xcf\x6a\x58\x66\xff\x67\x0b\x65\x3b\x97\x32\x5e\xc3\x8a\x13\x57\x82\x60\x4b\x86\x6b\x95\xd8\x60\xa9\x4e\x01\x63\xcf\x6f\xc0\x65\x9c\x8c\xac\x83\x05\x7c\xa7\x60\x50\x96\xf7\x5f\xcd\x64\x0d\x5b\x54\x90\x0f\x62\xd3\x59\xb9\x71\x59\x51\xac\x79\xf0\x55\x2f\x52\x75\x66\x97\x80\xf8\x4e\x98\x4e\xcf\x51\xcd\x9d\x5c\x51\x44\x7a\x93\x67\xf1\x58\x41\x7c\x21\x88\x61\x5c\x31\x68\xda\x91\xe7\x9d\xf2\x63\xee\x65\x75\x84\xee\x52\x3b\x6b\x32\x7c\x98\x59\x82\x96\x9c\x89\x87\x7c\x9f\x90\x06\x62\xdb\x66\xdc\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x55\x69\x82\x50\xac\x62\x3b\x5f\xd8\x63\xda\x75\xdb\x62\x7f\x61\x6e\x82\x66\x7c\x95\x71\x6e\x96\xc7\x7f\x6a\x54\x26\x52\x00\x83\xd3\x52\x11\x59\x4f\x9d\x28\x57\x4a\x66\xc7\x98\x58\x82\x0e\x66\x14\x73\x3f\x50\xb7\x65\x51\x5e\xb8\x5b\x6b\x55\xac\x5f\xeb\x63\x88\x8c\xaf\x67\x6f\x59\x51\x5a\x01\x71\xe5\x5d\xe3\x8c\x6a\x62\x71\x81\xf4\x5c\x3a\x5f\x92\x90\x45\x73\x84\x71\x49\x79\xd8\x79\x6d\x90\x03\x83\xcc\x5f\xb4\x5b\x8d\x62\x79\x64\xae\x7d\x18\x72\x3e\x5b\xee\x65\xe7\x8d\x08\x9e\x7c\x52\xe7\x5d\x07", /* 4c80 */ "\x9f\x62\x60\x69\x53\x6f\x66\x81\x96\x63\x5e\x3d\x62\xb1\x72\x2a\x6e\x4a\x93\xae\x79\xe6\x53\xe5\x80\x9d\x88\xfe\x53\xb3\x6c\x88\x6e\x7f\x51\x41\x90\x91\x6f\x6e\x84\xc4\x85\xea\x81\x29\x6b\xd2\x66\x3c\x7f\x72\x73\xc2\x5f\x1f\x79\x0e\x60\xb2\x72\xed\x58\xee\x81\x79\x8e\x8d\x5c\x65\x5d\xe7\x6c\x37\x6d\xe1\x86\x2d\x72\xaf\x8e\x0a\x7c\x92\x82\x18\x80\x33\x63\xa7\x92\x91\x50\x19\x81\x55\x8a\x69\x8e\xdf\x66\xb4\x81\x33\x75\x91\x6b\x20\x66\x69\x90\xf5\x4e\x32\x73\xea\x69\x3f\x76\x87\x70\x7d\x7d\x3a\x61\x48\x86\x07\x99\xff\x59\xc9\x78\x32\x78\x15\x90\x7f\x80\xa1\x5c\x3f\x66\xa2\x94\x18\x6d\x44\x5e\x55\x58\x54\x7b\x95\x8d\xe1\x4e\xa1\x8c\x5a\x81\xe8\x89\xe6\x96\x70\x52\x63\x74\xf6\x9a\x5a\x60\x12\x52\x0a\x74\x34\x98\x01\x90\x7a\x55\x04\x79\x56\x52\x30\x54\xb2\x8a\x34\x96\xa3\x4f\xf3\x92\x83\x91\xe3\x7d\x39\x96\x88\x4f\x51\x7d\x61\x5d\xba\x9b\xae\x5f\x80\x79\x5d\x85\x97\x8d\xa3\x7c\x60\x5c\x0a\x75\x65\x85\xa9\x63\xd6\x9e\x97\x7d\x22\x53\x75\x9a\xea\x90\x42\x6b\x3d\x7d\x0b\x63\x92\x80\xaa\x7d\xe9\x9f\x3b\x99\xc6\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x78\x67\x31\x55\x31\x63\x98\x78\x25\x5c\xb3\x5d\xe1\x92\xad\x98\xfd\x98\x10\x6c\xe3\x6b\x64\x53\x21\x6b\x53\x5e\x8f\x7a\xe5\x50\x2b\x6e\x56\x62\xbd\x82\x76\x6a\x9c\x4e\x18\x57\xf7\x75\x2b\x7c\x97\x82\xeb\x98\x02\x81\x1a\x73\xcd\x8f\x9b\x5c\x0b\x63\xe1\x73\x72\x81\x50\x80\xe1\x5b\x99\x76\xd7\x62\x91\x65\xec\x8a\x3a\x59\x47\x65\xe8\x6e\x7e\x66\x96\x55\xab\x8f\x09\x92\xed\x93\x96\x4e\xee\x75\x5c\x6f\x38\x8f\x9e\x79\x81\x5c\x01\x62\xe0\x9b\xe8\x91\xc8\x62\x76\x65\xcb\x8e\x0f\x8b\x21\x69\x9b\x62\x16", /* 4d80 */ "\x5a\x92\x90\xb8\x50\xda\x79\xdf\x6c\x41\x52\x70\x91\x75\x8b\x39\x68\x5d\x58\x75\x81\x9c\x5b\x9c\x8a\x89\x8a\x72\x9d\x8f\x63\x77\x59\x74\x8a\xa4\x52\xb1\x69\x62\x5c\x48\x9c\xe9\x67\x3a\x75\xb2\x6d\x1e\x4f\x0d\x7e\x6d\x7b\x48\x7f\xcc\x65\xe6\x59\xa5\x79\xe9\x62\x12\x6e\xde\x77\x0b\x8c\xa7\x65\xbc\x88\x5d\x6a\xdb\x5c\x4a\x80\x74\x90\x84\x8e\xcc\x65\xd7\x57\xf9\x70\x8e\x6f\x06\x5e\x7c\x77\xac\x4f\xf5\x59\x49\x81\xed\x9b\x45\x7f\xfc\x81\x78\x69\xfd\x6c\xca\x69\xc7\x79\xd2\x8b\x1d\x9e\xd9\x81\xd3\x7a\x3c\x79\x68\x6f\x5c\x63\xb2\x8d\xdd\x63\x83\x6e\x9c\x5e\x33\x61\xf8\x76\xbf\x64\x2c\x7d\xb4\x62\x47\x64\x58\x68\x16\x5f\x69\x90\x22\x7a\x1a\x82\xb9\x70\xc8\x9a\x12\x61\x63\x6f\xef\x53\xeb\x9d\x3b\x62\xfe\x60\xa0\x95\x91\x6d\x99\x61\x62\x92\x98\x63\x5c\x97\x07\x89\x72\x68\x3d\x51\xe1\x9b\x54\x60\x8c\x5b\x22\x99\xc4\x71\x26\x8a\x73\x97\x1c\x73\x96\x67\xd4\x60\xa3\x4e\x11\x4e\xf0\x8c\xdb\x8c\xb0\x79\x12\x97\x74\x89\x86\x51\x46\x57\xdc\x99\xd0\x80\xc3\x83\x38\x78\xa7\x86\xcd\x7f\x85\x50\x49\x82\x47\x69\x0b\x7c\x4d\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x5f\x26\x6e\x25\x68\x81\x93\x75\x5d\xfd\x53\x47\x97\x27\x64\x3a\x75\xc7\x6f\xa4\x73\xa9\x77\xe9\x94\x51\x8b\x5c\x80\x8c\x67\x4e\x4e\xad\x58\x2f\x75\x73\x8e\xd2\x6c\xe5\x93\x20\x8f\xf7\x7d\x33\x72\xc2\x82\x17\x74\x22\x82\xc5\x9a\x30\x77\x3a\x5f\x84\x96\x73\x64\xad\x92\x0d\x74\xdc\x60\xc7\x86\xed\x4f\xfa\x52\xa3\x6a\x3a\x77\x20\x53\x20\x61\xb6\x56\x74\x87\x76\x6c\xbf\x50\x5c\x60\x2a\x84\x66\x6b\x96\x6d\xbc\x97\xd3\x96\x8f\x68\x76\x60\xd1\x53\x78\x64\xa4\x51\xa0\x91\x54\x5d\xf4\x62\x9e\x5e\x63", /* 4e80 */ "\x92\x9a\x76\x93\x6c\x5a\x65\x97\x50\xe7\x7c\x82\x5f\x6b\x6c\xe1\x5f\x6c\x5a\xc1\x6f\x2c\x85\x2d\x64\x42\x57\x50\x58\xc7\x8c\xfc\x8a\x5e\x7a\x7f\x68\x9d\x7e\x26\x7a\x40\x73\x44\x8a\xeb\x4f\xd7\x7a\x63\x80\x36\x7d\xef\x80\xc6\x8a\xed\x73\x1f\x8f\xea\x4f\x0e\x75\x8b\x51\x8a\x67\x34\x5f\xd9\x61\xc7\x65\xaf\x9c\xf3\x5e\xca\x92\x62\x68\xdf\x6c\xb8\x80\xf4\x57\xcb\x6c\x99\x96\xa0\x5b\x64\x58\xf1\x68\xc4\x54\x10\x98\x30\x8a\x87\x4e\x5e\x61\x67\x9b\xab\x90\xaa\x55\xb0\x82\xbd\x59\x6a\x66\xf3\x82\x99\x58\x93\x71\x9f\x62\x84\x67\xd1\x90\x63\x5a\xcc\x6c\x57\x7c\xe7\x58\x51\x64\xb2\x58\xca\x83\x0e\x59\x68\x53\x02\x5a\x46\x87\x02\x60\x65\x72\xd9\x89\xa7\x66\x89\x66\xf9\x5d\x6f\x5b\xb0\x96\xbc\x63\x6e\x60\xdc\x79\x48\x51\xdd\x86\x06\x5e\xc9\x75\x54\x59\x6e\x6b\x04\x4f\x43\x7b\x94\x67\xda\x62\xdd\x62\x8a\x97\x1e\x62\xed\x6e\xc5\x50\x8d\x67\xb6\x80\xe4\x9e\xbf\x5e\xb5\x63\x8c\x85\xcd\x98\x67\x52\xc5\x60\x16\x68\xcb\x61\xd0\x57\x51\x8f\x29\x5f\xaa\x81\xa8\x7d\x62\x71\xc8\x54\xc0\x69\xcc\x6b\x3e\x65\xac\x63\xc3\x4f\x46\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x1b\x6b\x86\x88\xf8\x52\x03\x73\x2e\x66\x87\x7d\x17\x57\xf4\x57\x0f\x61\x8e\x97\x0a\x7c\x3f\x8b\x00\x78\x81\x8c\xe0\x54\x8b\x7b\x87\x74\x5b\x7c\x11\x88\x70\x53\x98\x54\x48\x6c\xf3\x6f\x22\x53\xf6\x88\xb4\x53\x01\x7a\x6b\x86\x95\x58\x6b\x5d\x29\x88\xc2\x62\xd2\x4e\x1e\x50\x36\x96\xc0\x73\x63\x8a\x3b\x51\x76\x71\x99\x7f\xe0\x88\x88\x7e\x1e\x4e\x4f\x84\xcb\x6f\x2b\x58\x59\x93\x6c\x53\xe9\x86\x5a\x91\x49\x86\xef\x5e\x06\x55\x07\x90\x2e\x67\x95\x84\x6c\x5b\xa5\x82\xa5\x84\x31\x6d\x8c\x63\xfa\x4e\xa5", /* 4f80 */ "\x51\xc6\x63\x28\x7f\x70\x5b\x5f\x5d\xbd\x99\xc8\x53\xec\x79\x85\x8a\x54\x79\x62\x88\xdf\x5b\x09\x4f\xb5\x4f\x91\x9b\x8e\x51\x92\x96\xf0\x6d\xaf\x62\x2f\x84\x90\x8c\xdc\x50\x75\x5c\xe0\x4e\x14\x4f\x83\x7c\x54\x84\xd1\x77\xb3\x8a\xee\x5c\xe8\x62\xf6\x66\x3b\x8a\x93\x85\x26\x8a\x95\x65\xfa\x67\x14\x53\xd4\x62\xab\x8c\xe6\x88\xf3\x5b\xe7\x86\x8a\x66\x8e\x58\x2a\x61\x70\x69\x6f\x9f\x13\x7a\x92\x78\x93\x6a\x7f\x90\x17\x92\x66\x7d\x10\x7b\xc7\x6e\xf4\x82\x1c\x5c\x3d\x62\xcd\x85\xc1\x6f\x02\x6e\x67\x66\x91\x85\xa6\x63\x7a\x82\x1b\x4f\x8d\x50\x91\x8a\x02\x62\xec\x9b\xc9\x7a\x3d\x7c\x9b\x50\xc5\x90\x19\x70\x8a\x7c\x8b\x64\xec\x66\x5f\x65\x62\x73\x2b\x53\x39\x67\xa0\x55\xa7\x6d\x2a\x7a\x3f\x64\xe6\x79\xa7\x67\xd8\x7b\x26\x96\xbb\x63\x11\x72\xa0\x5c\x6f\x70\x26\x97\xee\x60\xdf\x8a\xfe\x8b\x04\x84\x94\x9b\xd6\x82\xaf\x93\x2c\x66\x06\x96\x40\x5b\xc2\x86\xc7\x79\x49\x80\x17\x69\x19\x70\x92\x96\x3b\x7c\x7e\x59\xd3\x5b\x5c\x7d\x1b\x91\xd8\x6a\x80\x85\xe9\x69\x05\x6c\x93\x50\x2d\x4e\xa6\x7f\xc1\x61\xa4\x8c\xca\x96\x65\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\xd1\x53\xf1\x59\x8a\x8e\xac\x62\xd8\x68\x67\x71\xd5\x7b\x67\x50\x4f\x67\xd0\x82\xd1\x97\x8d\x74\x8b\x80\xba\x73\x36\x51\x4e\x81\x05\x90\xca\x58\x4a\x67\xfe\x6f\xf1\x5f\xfd\x76\xc6\x9a\x0e\x50\x7d\x96\x94\x5e\xf7\x7b\xb8\x90\x4d\x6c\x4e\x85\xfb\x81\x9d\x67\xaf\x56\x4c\x56\x06\x8c\x8c\x56\xda\x73\xed\x8c\xc4\x8f\xc5\x96\xf6\x6c\x50\x89\x44\x8f\x3f\x7d\x5e\x60\xe8\x72\xfc\x7d\x9c\x84\x63\x5c\xfb\x54\x46\x5d\x16\x6c\xa1\x81\xb3\x58\xfa\x5b\xb4\x81\x08\x54\x1f\x8c\xbc\x61\x82\x78\xa9\x6f\xe1\x91\xac", /* 5080 */ "\x76\xf2\x60\x20\x76\xfe\x84\xc9\x7f\x36\x4e\xc7\x75\x5d\x7a\x17\x84\xec\x75\xf4\x4f\x3a\x67\x6d\x74\x60\x62\xf3\x6f\x20\x79\xe4\x87\xf9\x60\x94\x62\x34\x66\xab\x82\x0c\x84\x99\x72\x3a\x5f\xcc\x61\x09\x70\xcf\x72\x61\x7a\x50\x50\x98\x9a\xed\x5d\x69\x60\x1c\x66\x67\x99\xb4\x5e\x7b\x64\x3e\x58\x30\x53\xc9\x7a\x9f\x99\x0c\x9b\x42\x8f\x5f\x7a\xae\x5b\x9b\x68\xa2\x62\x49\x79\x84\x9d\xfa\x54\x51\x93\x2f\x8a\xc4\x5f\x90\x8d\xf3\x5a\x2f\x80\xde\x6d\x29\x7a\x4f\x84\xbc\x9d\x2b\x90\x10\x6d\x38\x91\x6a\x6f\xc1\x99\x05\x6b\xbb\x5e\xb6\x91\xb8\x50\x76\x6f\x0f\x4e\x19\x54\x0f\x96\x75\x6c\x72\x51\xb4\x56\x31\x9f\x20\x66\xa6\x5f\x0a\x75\xab\x51\xf8\x67\x4f\x8d\xf5\x6c\x70\x8a\x6b\x75\x7f\x5c\xac\x68\x41\x8c\xd3\x9b\xdb\x84\x75\x68\x93\x84\x0c\x72\xdb\x75\x77\x85\x68\x78\x3a\x84\x7a\x5f\x10\x83\x1c\x68\x13\x6e\x1a\x9d\xaf\x51\xf9\x79\x80\x4e\x99\x5e\xe3\x90\x8a\x80\xaf\x59\xa8\x77\xdb\x8d\x74\x8a\x1f\x67\x3d\x53\x3f\x8a\x0a\x56\x18\x67\x56\x53\xd9\x4f\x10\x74\x09\x5a\x41\x4f\xf8\x79\xb0\x98\x38\x8e\x2a\x9d\x60\x8f\x44\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xa5\x75\xbe\x90\x6d\x86\x7b\x60\xbc\x51\xb6\x59\x37\x7d\x2f\x91\x6c\x69\xae\x7c\xe0\x79\x2a\x5d\x14\x64\xc1\x58\xec\x58\x9c\x8d\x66\x66\xd9\x61\xf2\x91\x2d\x6e\x58\x94\x35\x96\x5b\x72\x72\x5f\x6a\x5e\x9a\x8f\x1b\x5b\x95\x5c\x39\x90\x13\x83\x4f\x7c\xce\x62\x0a\x90\xed\x69\x1b\x6e\x15\x65\xdb\x66\xfe\x4e\x9f\x55\xaa\x7a\x83\x83\xe9\x8b\x83\x84\x6d\x83\xf0\x7f\x50\x91\x8d\x91\x90\x75\x8e\x95\xa5\x81\xe7\x75\xe2\x61\xa9\x8a\x50\x95\xb2\x53\xa8\x59\xf6\x98\x13\x78\x91\x7c\x17\x6b\x3a\x57\xe0\x62\x0e", /* 5180 */ "\x83\xd6\x8a\xd2\x75\xd4\x92\x7e\x59\xdc\x52\x89\x90\x87\x6f\xfe\x74\x73\x5c\x09\x9d\x6c\x84\xfc\x7c\xdf\x7b\xad\x8a\x6e\x59\x4e\x56\xca\x81\x9a\x79\x47\x66\x36\x53\xe1\x78\x87\x58\xcc\x93\x97\x6e\x13\x52\x56\x82\x8b\x9e\x9f\x95\x83\x65\x8c\x9e\x93\x73\x45\x6e\x26\x9d\x07\x59\x83\x7d\xac\x96\xc1\x61\xbe\x67\x62\x9e\xce\x90\xa8\x91\x87\x9f\x0e\x7c\x38\x51\xf1\x85\x99\x52\x4c\x54\x0e\x79\x01\x65\x5e\x66\x68\x5c\xe1\x75\x66\x76\xc8\x86\x79\x53\x1d\x55\x06\x79\x26\x89\x12\x77\xef\x7c\xc0\x57\x0b\x51\x5c\x7e\x8a\x53\x5c\x8a\x60\x65\xa7\x87\x66\x57\x66\x6a\xe8\x87\xfb\x5e\x16\x7a\xea\x8d\x73\x77\x1e\x73\x7a\x66\xe0\x94\x10\x81\x6b\x7b\x08\x91\xfc\x57\x37\x6f\xe4\x85\x6a\x7e\x55\x99\x57\x87\xba\x69\x4a\x81\x8f\x5e\xff\x89\x1c\x72\xd0\x98\x46\x9e\xdb\x8d\x99\x5d\xd6\x62\xb9\x64\xab\x4f\x76\x61\x3f\x68\xaf\x5f\x14\x80\x0c\x92\xf8\x7b\xc1\x52\xfe\x66\x4f\x91\x77\x51\xf6\x97\xa0\x83\x9e\x64\x7a\x9c\x3a\x68\x05\x7c\x4f\x68\x5f\x9b\x6f\x9f\x4b\x7f\xfb\x93\x48\x4f\xf6\x9e\x92\x91\xb1\x96\xdb\x5b\xe6\x6c\xcc\x7c\xfe\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x53\x68\x22\x66\xb9\x5b\xd4\x98\xf4\x8a\xe6\x81\x54\x78\x27\x74\xbd\x6e\xd3\x92\x88\x5a\x20\x5b\x8b\x86\xf8\x76\x0d\x86\x5c\x66\x41\x91\xc9\x55\x89\x7a\x4e\x59\xe5\x60\x42\x93\x2b\x5b\x5a\x84\x9c\x5c\x91\x96\xcd\x62\xd9\x67\x5c\x67\x87\x5e\x7d\x86\x50\x9e\xb9\x5c\xb1\x80\xce\x7a\x00\x8a\xbc\x57\x00\x80\x96\x7d\x72\x92\x11\x80\x98\x90\x7c\x77\x61\x87\x37\x90\x75\x81\x7a\x7c\x3e\x6e\xa2\x96\x5e\x7e\x90\x72\xd7\x58\xfd\x60\xb3\x97\x86\x7e\x88\x58\x7e\x6e\x20\x84\xdc\x69\x61\x77\xad\x51\x97\x65\x2a", /* 5280 */ "\x67\x77\x5d\xcd\x61\x01\x93\x2e\x59\x54\x63\x67\x79\x8d\x7a\xff\x80\xd6\x58\xb3\x61\x68\x6a\xc3\x74\x83\x9b\x92\x66\x0a\x64\x2d\x51\x18\x67\x63\x80\x9b\x9c\x10\x4f\xc9\x69\x53\x7a\x1c\x52\xff\x60\x55\x76\x8e\x81\x7f\x56\x42\x5f\x6d\x71\x94\x70\xbb\x74\x36\x80\x00\x88\x1f\x55\xda\x74\x35\x76\x90\x96\xeb\x66\xdd\x75\x1c\x63\x3d\x6e\xc9\x7c\x64\x7c\xa5\x6d\x35\x93\x5c\x70\x27\x5e\x25\x70\x1d\x54\xbd\x61\x1a\x69\x73\x6c\x6a\x55\x9a\x6d\x19\x96\xcc\x5b\xe1\x59\xfb\x69\x7c\x91\x4c\x77\x09\x85\x00\x7a\x46\x78\x72\x92\xe4\x8c\xed\x7c\xfa\x9d\x1b\x81\x4e\x9a\xc4\x68\xa0\x6d\xcb\x59\x18\x84\x0a\x56\x29\x9b\x41\x68\x97\x70\xb3\x97\x71\x94\x19\x67\xa2\x68\x02\x78\x95\x68\xa7\x50\xd6\x80\xb1\x5e\xf8\x82\xd4\x79\x7a\x67\xca\x7e\x61\x69\xcd\x51\xc4\x72\x3d\x68\x29\x99\xb3\x5f\x3c\x8f\x61\x68\x2b\x61\x55\x65\x91\x8f\xb1\x7e\x1b\x97\x98\x99\x52\x88\x77\x5b\x2c\x66\x31\x4f\xe0\x69\x39\x6a\xfb\x5b\xb5\x7a\xc8\x50\x26\x59\x44\x90\x59\x7b\x25\x7b\x4f\x8e\x74\x85\x43\x58\x58\x8b\x0e\x50\x39\x86\x54\x97\xf6\x75\x69\x72\xf8\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf7\x9d\x89\x50\x16\x51\xcc\x62\xcc\x91\xc6\x87\x55\x64\x9a\x88\xf4\x91\xe6\x68\x54\x69\x5a\x6c\x40\x7b\x6c\x67\x41\x77\xd7\x88\x23\x53\x84\x8e\xc0\x72\x80\x8c\x6b\x78\x8d\x71\x65\x82\x07\x68\xb1\x8d\x04\x90\x77\x70\x1e\x8f\xe6\x81\x0a\x81\xbf\x89\xdc\x68\xb3\x6a\xdf\x92\xea\x95\xc7\x79\x57\x7a\x20\x53\xa9\x8e\x5f\x78\x6f\x79\xb9\x5f\x27\x5e\xd6\x68\x53\x93\xac\x91\x9c\x69\x1a\x58\x06\x64\xb0\x7e\x6b\x7d\x8f\x68\xf2\x6e\xa5\x82\xdb\x91\x92\x52\x43\x8e\xb0\x90\x81\x72\x1b\x7d\xcb\x76\x56\x59\xac", /* 5380 */ "\x6f\xe0\x8b\x28\x80\xa2\x55\x44\x60\x70\x5f\x4a\x68\xc8\x63\x3a\x94\x38\x9b\x4f\x81\xe5\x6a\x17\x70\xdd\x69\xa7\x61\x4c\x92\x0e\x93\x10\x9b\xad\x52\xd7\x92\x5e\x92\xf9\x59\x93\x76\x96\x66\xfb\x57\x69\x73\xca\x76\x78\x6a\x1f\x7e\x9c\x98\x11\x8c\xd1\x58\x40\x63\x49\x87\x1c\x62\xd0\x60\xb4\x6b\x89\x86\xee\x57\x64\x58\x1d\x85\x49\x72\x35\x76\x52\x98\x3b\x82\x37\x53\x51\x5c\x24\x59\xbe\x58\x15\x90\x1d\x69\xb4\x83\x4a\x9e\xa9\x97\x6b\x80\x86\x53\xad\x60\x68\x4f\xae\x76\xc3\x6a\x05\x68\x9b\x93\x7e\x99\xd5\x91\xc7\x5c\x16\x58\x5e\x61\xa7\x96\x99\x4f\xdf\x82\x78\x9c\x52\x5f\x45\x61\x08\x7c\x8d\x80\x6f\x5d\xf7\x8d\x6b\x57\xb0\x98\xe2\x57\x03\x79\xbf\x59\x96\x79\x41\x54\x0a\x83\xdf\x9c\x39\x52\xd2\x6b\xd8\x86\xcb\x4e\xc0\x9a\x52\x53\x66\x80\x06\x73\x37\x64\x92\x8f\xed\x5a\xc9\x54\x20\x53\x7f\x4f\xaf\x80\x7e\x54\x3b\x75\x15\x7b\x18\x87\xec\x54\xb3\x70\x4c\x89\x97\x6c\xab\x85\xfa\x71\x30\x69\x6e\x93\x28\x74\x5a\x59\xd1\x6e\x5b\x61\x7e\x53\xe2\x83\x17\x76\xe7\x85\x23\x85\xaf\x69\x25\x5c\x60\x72\x59\x75\xd5\x8b\x90\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x07\x82\xad\x5c\x5b\x7b\xed\x97\x84\x6f\x70\x76\x4c\x88\xb7\x92\xd2\x4f\x36\x5e\xfe\x90\x61\x88\xe1\x84\x71\x71\x1a\x6d\x1b\x80\xb4\x74\xe2\x74\x33\x5a\x7f\x90\x5c\x98\x0c\x53\x19\x90\x6e\x6b\xb4\x85\xaa\x78\x97\x7a\xfa\x6a\xae\x89\x10\x95\x8f\x62\x0c\x4f\x3d\x4f\x7c\x79\xbe\x9d\xd7\x4e\xd4\x57\xa2\x51\xa5\x69\x00\x60\x89\x70\x7c\x7a\xe3\x89\x56\x93\xa7\x9c\x2d\x51\x12\x52\xfa\x7c\xca\x60\xf9\x70\x78\x81\xc6\x55\x9d\x69\x91\x96\xc9\x55\x3e\x80\x5a\x83\x04\x83\x32\x54\xfa\x56\x99\x8f\xbf\x56\x34", /* 5480 */ "\x67\x60\x52\x65\x84\x0e\x5e\x5f\x7b\x65\x90\x35\x83\x87\x6b\x4e\x58\xbe\x63\x09\x72\x7d\x97\xad\x69\xd0\x54\x6a\x98\x4e\x63\x2b\x71\x4e\x85\x57\x7c\xde\x63\x72\x68\xf9\x75\x11\x86\x02\x6e\xba\x5a\x3c\x7a\x84\x85\x1a\x95\xa4\x59\xd0\x60\xda\x51\xea\x5a\x29\x71\x69\x6f\x15\x69\x6b\x64\x14\x76\x26\x4e\x4e\x7d\xbb\x69\x34\x85\x21\x8f\xfa\x93\x54\x9c\x3b\x5f\x17\x5e\xd3\x82\x58\x89\x5f\x82\xe7\x52\xc3\x5c\x51\x83\xab\x78\x26\x79\xe1\x7f\xf0\x62\x6e\x60\xf0\x5c\xa8\x6f\x97\x71\xa8\x99\x09\x51\x32\x5e\x37\x5f\x04\x63\x7b\x67\x53\x68\xd7\x66\x52\x9c\xf6\x88\xb0\x52\xab\x4f\xc4\x4e\x3c\x67\xb3\x7c\x1e\x7f\x4d\x8a\x23\x64\x51\x71\xe6\x65\xa4\x6f\x09\x85\x3d\x50\x72\x7d\xba\x55\x5e\x7b\x04\x72\xfd\x6c\xd3\x84\x22\x62\x1f\x50\xad\x82\x35\x87\x18\x59\x19\x60\x28\x67\x7c\x6f\x23\x75\xb9\x69\x5c\x52\x0e\x80\x18\x8b\x01\x71\xed\x57\x13\x66\x0f\x83\xeb\x71\x64\x7d\x9b\x56\x17\x7d\x7d\x8f\x4d\x93\x18\x85\x69\x5d\x17\x67\x8c\x67\xde\x87\xc7\x79\xae\x58\x35\x84\x04\x90\x41\x7f\xd4\x6f\x51\x8a\x63\x9d\x08\x67\x0f\x93\x9a\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xac\x60\x2f\x64\xe2\x60\x8d\x96\xb7\x63\x57\x84\x61\x91\x4b\x75\xd8\x60\xe7\x99\x13\x9c\x57\x59\x84\x6d\xeb\x5e\x96\x70\x06\x9b\xf0\x58\xbb\x79\xb1\x60\xb6\x63\x3f\x5b\xf5\x98\x12\x55\x8b\x82\xd3\x51\x47\x61\x90\x79\x53\x79\xbd\x6c\x5d\x9e\xba\x9c\x48\x8d\xa8\x5e\xe0\x7d\x43\x5e\xfc\x85\x4e\x8c\xe4\x5a\xe1\x54\xe8\x50\x23\x52\xbe\x7d\xec\x85\x11\x66\x66\x6c\x3e\x72\x4c\x8a\xdc\x9c\x0d\x77\xa5\x8b\x02\x8d\x05\x6f\x11\x98\x34\x97\xfb\x50\xfb\x7f\x75\x5a\x03\x85\x13\x4f\xb6\x63\x4c\x9d\x61\x80\x8b", /* 5580 */ "\x52\x94\x65\xa1\x56\x7a\x59\x57\x8d\x0b\x6a\x35\x6a\xd3\x70\xf9\x86\x5e\x6f\xb1\x51\xe7\x7f\xeb\x59\xea\x5e\x87\x6b\x6a\x75\x4f\x71\x7d\x91\x4e\x7d\x2c\x8c\x79\x60\x62\x62\x1a\x7f\xa8\x5f\x1b\x6c\x8c\x86\xfe\x75\x62\x7b\x86\x9a\xb8\x66\x27\x7a\xba\x84\x4e\x6f\x81\x8b\x2c\x86\xa4\x6f\xeb\x7b\x8b\x7f\x77\x8f\x2f\x8e\x44\x7e\x23\x4e\x4d\x79\xa6\x8a\xfa\x90\x3c\x50\xd1\x9e\xcd\x5e\xdf\x75\x8f\x63\x1f\x53\xdb\x99\x10\x82\x6e\x62\xf7\x68\xfa\x72\x5d\x80\x3d\x58\xd5\x5c\x4d\x86\xd9\x54\x0b\x88\x05\x92\xf2\x92\x37\x5c\x62\x98\x5b\x86\xe4\x96\x6a\x72\x62\x69\x55\x6c\xd7\x69\x94\x9c\x2f\x77\xe7\x68\xc9\x8d\xe8\x6d\x6c\x67\xc1\x9b\xaa\x61\x9a\x63\xa9\x70\x15\x93\x06\x93\x4d\x6a\x61\x62\x58\x52\x83\x75\x25\x56\x87\x6c\x83\x68\x34\x64\x9e\x4e\x9b\x72\x52\x59\xe6\x8f\xc2\x5f\xbd\x6d\xd8\x85\xf7\x8a\x51\x98\x17\x99\xc1\x63\xa0\x7c\x81\x5b\x30\x81\x39\x54\x03\x7e\x82\x81\x06\x53\x2a\x6a\x8e\x7f\x6b\x54\xe9\x56\x78\x8a\xb9\x67\x15\x5b\xd3\x64\x78\x64\xfe\x6b\x1d\x8c\xc2\x51\xcb\x7e\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x0c\x4e\x10\x4e\x15\x4e\x28\x4e\x2a\x4e\x31\x4e\x36\x4e\x3f\x4e\x42\x4e\x56\x4e\x58\x4e\x62\x4e\x82\x4e\x85\x4e\x8a\x4e\x8e\x5f\x0d\x4e\x9e\x4e\xa0\x4e\xa2\x4e\xb0\x4e\xb3\x4e\xb6\x4e\xce\x4e\xcd\x4e\xc4\x4e\xc6\x4e\xc2\x4e\xe1\x4e\xd7\x4e\xde\x4e\xed\x4e\xdf\x4e\xfc\x4f\x09\x4f\x1c\x4f\x00\x4f\x03\x4f\x5a\x4f\x30\x4f\x5d\x4f\x39\x4f\x57\x4f\x47\x4f\x5e\x4f\x56\x4f\x5b\x4f\x92\x4f\x8a\x4f\x88\x4f\x8f\x4f\x9a\x4f\xad\x4f\x98\x4f\x7b\x4f\xab\x4f\x69\x4f\x70\x4f\x94\x4f\x6f\x4f\x86\x4f\x96\x4f\xd4", /* 5680 */ "\x4f\xce\x4f\xd8\x4f\xdb\x4f\xd1\x4f\xda\x4f\xd0\x4f\xcd\x4f\xe4\x4f\xe5\x50\x1a\x50\x40\x50\x28\x50\x14\x50\x2a\x50\x25\x50\x05\x50\x21\x50\x22\x50\x29\x50\x2c\x4f\xff\x4f\xfe\x4f\xef\x50\x11\x50\x1e\x50\x06\x50\x43\x50\x47\x50\x55\x50\x50\x50\x48\x50\x5a\x50\x56\x50\x0f\x50\x46\x50\x70\x50\x42\x50\x6c\x50\x78\x50\x80\x50\x94\x50\x9a\x50\x85\x50\xb4\x67\x03\x50\xb2\x50\xc9\x50\xca\x50\xb3\x50\xc2\x50\xf4\x50\xde\x50\xe5\x50\xd8\x50\xed\x50\xe3\x50\xee\x50\xf9\x50\xf5\x51\x09\x51\x01\x51\x02\x51\x1a\x51\x15\x51\x14\x51\x16\x51\x21\x51\x3a\x51\x37\x51\x3c\x51\x3b\x51\x3f\x51\x40\x51\x4a\x51\x4c\x51\x52\x51\x54\x51\x62\x51\x64\x51\x69\x51\x6a\x51\x6e\x51\x80\x51\x82\x56\xd8\x51\x8c\x51\x89\x51\x8f\x51\x91\x51\x93\x51\x95\x51\x96\x51\x9d\x51\xa4\x51\xa6\x51\xa2\x51\xa9\x51\xaa\x51\xab\x51\xb3\x51\xb1\x51\xb2\x51\xb0\x51\xb5\x51\xbe\x51\xbd\x51\xc5\x51\xc9\x51\xdb\x51\xe0\x51\xe9\x51\xec\x51\xed\x51\xf0\x51\xf5\x51\xfe\x52\x04\x52\x0b\x52\x14\x52\x15\x52\x27\x52\x2a\x52\x2e\x52\x33\x52\x39\x52\x44\x52\x4b\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x4f\x52\x5e\x52\x54\x52\x71\x52\x6a\x52\x73\x52\x74\x52\x69\x52\x7f\x52\x7d\x52\x8d\x52\x88\x52\x92\x52\x91\x52\x9c\x52\xa6\x52\xac\x52\xad\x52\xbc\x52\xb5\x52\xc1\x52\xc0\x52\xcd\x52\xdb\x52\xde\x52\xe3\x52\xe6\x52\xe0\x52\xf3\x52\xf5\x52\xf8\x52\xf9\x53\x00\x53\x06\x53\x07\x53\x08\x75\x38\x53\x0d\x53\x10\x53\x0f\x53\x15\x53\x1a\x53\x24\x53\x23\x53\x2f\x53\x31\x53\x33\x53\x38\x53\x40\x53\x45\x53\x46\x53\x49\x4e\x17\x53\x4d\x51\xd6\x82\x09\x53\x5e\x53\x69\x53\x6e\x53\x72\x53\x77\x53\x7b\x53\x82", /* 5780 */ "\x53\x93\x53\x96\x53\xa0\x53\xa6\x53\xa5\x53\xae\x53\xb0\x53\xb2\x53\xb6\x53\xc3\x7c\x12\x53\xdd\x53\xdf\x66\xfc\xfa\x0e\x71\xee\x53\xee\x53\xe8\x53\xed\x53\xfa\x54\x01\x54\x3d\x54\x40\x54\x2c\x54\x2d\x54\x3c\x54\x2e\x54\x36\x54\x29\x54\x1d\x54\x4e\x54\x8f\x54\x75\x54\x8e\x54\x5f\x54\x71\x54\x77\x54\x70\x54\x92\x54\x7b\x54\x80\x54\x9c\x54\x76\x54\x84\x54\x90\x54\x86\x54\x8a\x54\xc7\x54\xbc\x54\xaf\x54\xa2\x54\xb8\x54\xa5\x54\xac\x54\xc4\x54\xd8\x54\xc8\x54\xa8\x54\xab\x54\xc2\x54\xa4\x54\xa9\x54\xbe\x54\xe5\x54\xff\x54\xe6\x55\x0f\x55\x14\x54\xfd\x54\xee\x54\xed\x54\xe2\x55\x39\x55\x40\x55\x63\x55\x4c\x55\x2e\x55\x5c\x55\x45\x55\x56\x55\x57\x55\x38\x55\x33\x55\x5d\x55\x99\x55\x80\x55\x8a\x55\x9f\x55\x7b\x55\x7e\x55\x98\x55\x9e\x55\xae\x55\x7c\x55\x86\x55\x83\x55\xa9\x55\x87\x55\xa8\x55\xc5\x55\xdf\x55\xc4\x55\xdc\x55\xe4\x55\xd4\x55\xf9\x56\x14\x55\xf7\x56\x16\x55\xfe\x55\xfd\x56\x1b\x56\x4e\x56\x50\x56\x36\x56\x32\x56\x38\x56\x6b\x56\x64\x56\x86\x56\x2f\x56\x6c\x56\x6a\x71\xdf\x56\x94\x56\x8f\x56\x80\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8a\x56\xa0\x56\xa5\x56\xae\x56\xb6\x56\xb4\x56\xc8\x56\xc2\x56\xbc\x56\xc1\x56\xc3\x56\xc0\x56\xce\x56\xd3\x56\xd1\x56\xd7\x56\xee\x56\xf9\x56\xff\x57\x04\x57\x09\x57\x08\x57\x0d\x55\xc7\x57\x18\x57\x16\x57\x1c\x57\x26\x57\x38\x57\x4e\x57\x3b\x57\x59\x57\x40\x57\x4f\x57\x65\x57\x88\x57\x61\x57\x7f\x57\x89\x57\x93\x57\xa0\x57\xa4\x57\xb3\x57\xac\x57\xaa\x57\xc3\x57\xc6\x57\xc8\x57\xc0\x57\xd4\x57\xc7\x57\xd2\x57\xd3\x57\xd6\xfa\x0f\x58\x0a\x57\xe3\x58\x0b\x58\x19\x58\x21\x58\x4b\x58\x62\x6b\xc0", /* 5880 */ "\x58\x3d\x58\x52\xfa\x10\x58\x70\x58\x79\x58\x85\x58\x72\x58\x9f\x58\xab\x58\xb8\x58\x9e\x58\xae\x58\xb2\x58\xb9\x58\xba\x58\xc5\x58\xd3\x58\xd1\x58\xd7\x58\xd9\x58\xd8\x58\xde\x58\xdc\x58\xdf\x58\xe4\x58\xe5\x58\xef\x58\xf7\x58\xf9\x58\xfb\x58\xfc\x59\x02\x59\x0a\x59\x0b\x59\x10\x59\x1b\x68\xa6\x59\x25\x59\x2c\x59\x2d\x59\x32\x59\x38\x59\x3e\x59\x55\x59\x50\x59\x53\x59\x5a\x59\x58\x59\x5b\x59\x5d\x59\x63\x59\x62\x59\x60\x59\x67\x59\x6c\x59\x69\x59\x78\x59\x81\x59\x8d\x59\x9b\x59\x9d\x59\xa3\x59\xa4\x59\xb2\x59\xba\x59\xc6\x59\xe8\x59\xd9\x59\xda\x5a\x25\x5a\x1f\x5a\x11\x5a\x1c\x5a\x1a\x5a\x09\x5a\x40\x5a\x6c\x5a\x49\x5a\x35\x5a\x36\x5a\x62\x5a\x6a\x5a\x9a\x5a\xbc\x5a\xbe\x5a\xd0\x5a\xcb\x5a\xc2\x5a\xbd\x5a\xe3\x5a\xd7\x5a\xe6\x5a\xe9\x5a\xd6\x5a\xfa\x5a\xfb\x5b\x0c\x5b\x0b\x5b\x16\x5b\x32\x5b\x2a\x5b\x36\x5b\x3e\x5b\x43\x5b\x45\x5b\x40\x5b\x51\x5b\x55\x5b\x56\x65\x88\x5b\x5b\x5b\x65\x5b\x69\x5b\x70\x5b\x73\x5b\x75\x5b\x78\x5b\x7a\x5b\x80\x5b\x83\x5b\xa6\x5b\xb8\x5b\xc3\x5b\xc7\x5b\xc0\x5b\xc9\x75\x2f\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd0\x5b\xd8\x5b\xde\x5b\xec\x5b\xe4\x5b\xe2\x5b\xe5\x5b\xeb\x5b\xf0\x5b\xf3\x5b\xf6\x5c\x05\x5c\x07\x5c\x08\x5c\x0d\x5c\x13\x5c\x1e\x5c\x20\x5c\x22\x5c\x28\x5c\x38\x5c\x41\x5c\x46\x5c\x4e\x5c\x53\x5c\x50\x5b\x71\x5c\x6c\x5c\x6e\x5c\x76\x5c\x79\x5c\x8c\x5c\x94\x5c\xbe\x5c\xab\x5c\xbb\x5c\xb6\x5c\xb7\x5c\xa6\x5c\xba\x5c\xc5\x5c\xbc\x5c\xc7\x5c\xd9\x5c\xe9\x5c\xfd\x5c\xfa\x5c\xf5\x5c\xed\x5c\xea\x5d\x0b\x5d\x15\x5d\x1f\x5d\x1b\x5d\x11\x5d\x27\x5d\x22\x5d\x1a\x5d\x19\x5d\x18\x5d\x4c\x5d\x52\x5d\x53", /* 5980 */ "\xfa\x11\x5d\x5c\x5d\x4e\x5d\x4b\x5d\x42\x5d\x6c\x5d\x73\x5d\x6d\x5d\x76\x5d\x87\x5d\x84\x5d\x82\x5d\x8c\x5d\xa2\x5d\x9d\x5d\x90\x5d\xac\x5d\xae\x5d\xb7\x5d\xb8\x5d\xbc\x5d\xb9\x5d\xc9\x5d\xd0\x5d\xd3\x5d\xd2\x5d\xdb\x5d\xeb\x5d\xf5\x5e\x0b\x5e\x1a\x5e\x19\x5e\x11\x5e\x1b\x5e\x36\x5e\x44\x5e\x43\x5e\x40\x5e\x47\x5e\x4e\x5e\x57\x5e\x54\x5e\x62\x5e\x64\x5e\x75\x5e\x76\x5e\x7a\x5e\x7f\x5e\xa0\x5e\xc1\x5e\xc2\x5e\xc8\x5e\xd0\x5e\xcf\x5e\xdd\x5e\xda\x5e\xdb\x5e\xe2\x5e\xe1\x5e\xe8\x5e\xe9\x5e\xec\x5e\xf0\x5e\xf1\x5e\xf3\x5e\xf4\x5f\x03\x5f\x09\x5f\x0b\x5f\x11\x5f\x16\x5f\x21\x5f\x29\x5f\x2d\x5f\x2f\x5f\x34\x5f\x38\x5f\x41\x5f\x48\x5f\x4c\x5f\x4e\x5f\x51\x5f\x56\x5f\x57\x5f\x59\x5f\x5c\x5f\x5d\x5f\x61\x5f\x67\x5f\x73\x5f\x77\x5f\x83\x5f\x82\x5f\x7f\x5f\x8a\x5f\x88\x5f\x87\x5f\x91\x5f\x99\x5f\x9e\x5f\x98\x5f\xa0\x5f\xa8\x5f\xad\x5f\xb7\x5f\xbc\x5f\xd6\x5f\xfb\x5f\xe4\x5f\xf8\x5f\xf1\x5f\xf0\x5f\xdd\x5f\xde\x5f\xff\x60\x21\x60\x19\x60\x10\x60\x29\x60\x0e\x60\x31\x60\x1b\x60\x15\x60\x2b\x60\x26\x60\x0f\x60\x3a\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x5a\x60\x41\x60\x60\x60\x5d\x60\x6a\x60\x77\x60\x5f\x60\x4a\x60\x46\x60\x4d\x60\x63\x60\x43\x60\x64\x60\x6c\x60\x6b\x60\x59\x60\x85\x60\x81\x60\x83\x60\x9a\x60\x84\x60\x9b\x60\x8a\x60\x96\x60\x97\x60\x92\x60\xa7\x60\x8b\x60\xe1\x60\xb8\x60\xde\x60\xe0\x60\xd3\x60\xbd\x60\xc6\x60\xb5\x60\xd5\x60\xd8\x61\x20\x60\xf2\x61\x15\x61\x06\x60\xf6\x60\xf7\x61\x00\x60\xf4\x60\xfa\x61\x03\x61\x21\x60\xfb\x60\xf1\x61\x0d\x61\x0e\x61\x11\x61\x47\x61\x4d\x61\x37\x61\x28\x61\x27\x61\x3e\x61\x4a\x61\x30\x61\x3c", /* 5a80 */ "\x61\x2c\x61\x34\x61\x65\x61\x5d\x61\x3d\x61\x42\x61\x44\x61\x73\x61\x87\x61\x77\x61\x58\x61\x59\x61\x5a\x61\x6b\x61\x74\x61\x6f\x61\x71\x61\x5f\x61\x53\x61\x75\x61\x98\x61\x99\x61\x96\x61\xac\x61\x94\x61\x8a\x61\x91\x61\xab\x61\xae\x61\xcc\x61\xca\x61\xc9\x61\xc8\x61\xc3\x61\xc6\x61\xba\x61\xcb\x7f\x79\x61\xcd\x61\xe6\x61\xe3\x61\xf4\x61\xf7\x61\xf6\x61\xfd\x61\xfa\x61\xff\x61\xfc\x61\xfe\x62\x00\x62\x08\x62\x09\x62\x0d\x62\x13\x62\x14\x62\x1b\x62\x1e\x62\x21\x62\x2a\x62\x2e\x62\x30\x62\x32\x62\x33\x62\x41\x62\x4e\x62\x5e\x62\x63\x62\x5b\x62\x60\x62\x68\x62\x7c\x62\x82\x62\x89\x62\x92\x62\x7e\x62\x93\x62\x96\x62\x83\x62\x94\x62\xd7\x62\xd1\x62\xbb\x62\xcf\x62\xac\x62\xc6\x62\xc8\x62\xdc\x62\xd4\x62\xca\x62\xc2\x62\xa6\x62\xc7\x62\x9b\x62\xc9\x63\x0c\x62\xee\x62\xf1\x63\x27\x63\x02\x63\x08\x62\xef\x62\xf5\x62\xff\x63\x50\x63\x4d\x63\x3e\x63\x4f\x63\x96\x63\x8e\x63\x80\x63\xab\x63\x76\x63\xa3\x63\x8f\x63\x89\x63\x9f\x63\x6b\x63\x69\x63\xb5\x63\xbe\x63\xe9\x63\xc0\x63\xc6\x63\xf5\x63\xe3\x63\xc9\x63\xd2\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf6\x63\xc4\x64\x34\x64\x06\x64\x13\x64\x26\x64\x36\x64\x1c\x64\x17\x64\x28\x64\x0f\x64\x16\x64\x4e\x64\x67\x64\x6f\x64\x60\x64\x76\x64\xb9\x64\x9d\x64\xce\x64\x95\x64\xbb\x64\x93\x64\xa5\x64\xa9\x64\x88\x64\xbc\x64\xda\x64\xd2\x64\xc5\x64\xc7\x64\xd4\x64\xd8\x64\xc2\x64\xf1\x64\xe7\x64\xe0\x64\xe1\x64\xe3\x64\xef\x64\xf4\x64\xf6\x64\xf2\x64\xfa\x65\x00\x64\xfd\x65\x18\x65\x1c\x65\x1d\x65\x22\x65\x24\x65\x23\x65\x2b\x65\x2c\x65\x34\x65\x35\x65\x37\x65\x36\x65\x38\x75\x4b\x65\x48\x65\x4e\x65\x56", /* 5b80 */ "\x65\x4d\x65\x58\x65\x55\x65\x5d\x65\x72\x65\x78\x65\x82\x65\x83\x8b\x8a\x65\x9b\x65\x9f\x65\xab\x65\xb7\x65\xc3\x65\xc6\x65\xc1\x65\xc4\x65\xcc\x65\xd2\x65\xd9\x65\xe1\x65\xe0\x65\xf1\x66\x00\x66\x15\x66\x02\x67\x72\x66\x03\x65\xfb\x66\x09\x66\x3f\x66\x35\x66\x2e\x66\x1e\x66\x34\x66\x1c\x66\x24\x66\x44\x66\x49\x66\x65\x66\x57\x66\x5e\x66\x64\x66\x59\x66\x62\x66\x5d\xfa\x12\x66\x73\x66\x70\x66\x83\x66\x88\x66\x84\x66\x99\x66\x98\x66\xa0\x66\x9d\x66\xb2\x66\xc4\x66\xc1\x66\xbf\x66\xc9\x66\xbe\x66\xbc\x66\xb8\x66\xd6\x66\xda\x66\xe6\x66\xe9\x66\xf0\x66\xf5\x66\xf7\x66\xfa\x67\x0e\xf9\x29\x67\x16\x67\x1e\x7e\x22\x67\x26\x67\x27\x97\x38\x67\x2e\x67\x3f\x67\x36\x67\x37\x67\x38\x67\x46\x67\x5e\x67\x59\x67\x66\x67\x64\x67\x89\x67\x85\x67\x70\x67\xa9\x67\x6a\x67\x8b\x67\x73\x67\xa6\x67\xa1\x67\xbb\x67\xb7\x67\xef\x67\xb4\x67\xec\x67\xe9\x67\xb8\x67\xe7\x67\xe4\x68\x52\x67\xdd\x67\xe2\x67\xee\x67\xc0\x67\xce\x67\xb9\x68\x01\x67\xc6\x68\x1e\x68\x46\x68\x4d\x68\x40\x68\x44\x68\x32\x68\x4e\x68\x63\x68\x59\x68\x8e\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x77\x68\x7f\x68\x9f\x68\x7e\x68\x8f\x68\xad\x68\x94\x68\x83\x68\xbc\x68\xb9\x68\x74\x68\xb5\x68\xba\x69\x0f\x69\x01\x68\xca\x69\x08\x68\xd8\x69\x26\x68\xe1\x69\x0c\x68\xcd\x68\xd4\x68\xe7\x68\xd5\x69\x12\x68\xef\x69\x04\x68\xe3\x68\xe0\x68\xcf\x68\xc6\x69\x22\x69\x2a\x69\x21\x69\x23\x69\x28\xfa\x13\x69\x79\x69\x77\x69\x36\x69\x78\x69\x54\x69\x6a\x69\x74\x69\x68\x69\x3d\x69\x59\x69\x30\x69\x5e\x69\x5d\x69\x7e\x69\x81\x69\xb2\x69\xbf\xfa\x14\x69\x98\x69\xc1\x69\xd3\x69\xbe\x69\xce\x5b\xe8\x69\xca", /* 5c80 */ "\x69\xb1\x69\xdd\x69\xbb\x69\xc3\x69\xa0\x69\x9c\x69\x95\x69\xde\x6a\x2e\x69\xe8\x6a\x02\x6a\x1b\x69\xff\x69\xf9\x69\xf2\x69\xe7\x69\xe2\x6a\x1e\x69\xed\x6a\x14\x69\xeb\x6a\x0a\x6a\x22\x6a\x12\x6a\x23\x6a\x13\x6a\x30\x6a\x6b\x6a\x44\x6a\x0c\x6a\xa0\x6a\x36\x6a\x78\x6a\x47\x6a\x62\x6a\x59\x6a\x66\x6a\x48\x6a\x46\x6a\x38\x6a\x72\x6a\x73\x6a\x90\x6a\x8d\x6a\x84\x6a\xa2\x6a\xa3\x6a\x7e\x6a\x97\x6a\xac\x6a\xaa\x6a\xbb\x6a\xc2\x6a\xb8\x6a\xb3\x6a\xc1\x6a\xde\x6a\xe2\x6a\xd1\x6a\xda\x6a\xe4\x86\x16\x86\x17\x6a\xea\x6b\x05\x6b\x0a\x6a\xfa\x6b\x12\x6b\x16\x6b\x1f\x6b\x38\x6b\x37\x6b\x39\x76\xdc\x98\xee\x6b\x47\x6b\x43\x6b\x49\x6b\x50\x6b\x59\x6b\x54\x6b\x5b\x6b\x5f\x6b\x61\x6b\x78\x6b\x79\x6b\x7f\x6b\x80\x6b\x84\x6b\x83\x6b\x8d\x6b\x98\x6b\x95\x6b\x9e\x6b\xa4\x6b\xaa\x6b\xab\x6b\xaf\x6b\xb1\x6b\xb2\x6b\xb3\x6b\xb7\x6b\xbc\x6b\xc6\x6b\xcb\x6b\xd3\x6b\xd6\x6b\xdf\x6b\xec\x6b\xeb\x6b\xf3\x6b\xef\x6c\x08\x6c\x13\x6c\x14\x6c\x1b\x6c\x24\x6c\x23\x6c\x3f\x6c\x5e\x6c\x55\x6c\x5c\x6c\x62\x6c\x82\x6c\x8d\x6c\x86\x6c\x6f\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9a\x6c\x81\x6c\x9b\x6c\x7e\x6c\x68\x6c\x73\x6c\x92\x6c\x90\x6c\xc4\x6c\xf1\x6c\xbd\x6c\xc5\x6c\xae\x6c\xda\x6c\xdd\x6c\xb1\x6c\xbe\x6c\xba\x6c\xdb\x6c\xef\x6c\xd9\x6c\xea\x6d\x1f\x6d\x04\x6d\x36\x6d\x2b\x6d\x3d\x6d\x33\x6d\x12\x6d\x0c\x6d\x63\x6d\x87\x6d\x93\x6d\x6f\x6d\x64\x6d\x5a\x6d\x79\x6d\x59\x6d\x8e\x6d\x95\x6d\x9b\x6d\x85\x6d\x96\x6d\xf9\x6e\x0a\x6e\x2e\x6d\xb5\x6d\xe6\x6d\xc7\x6d\xac\x6d\xb8\x6d\xcf\x6d\xc6\x6d\xec\x6d\xde\x6d\xcc\x6d\xe8\x6d\xf8\x6d\xd2\x6d\xc5\x6d\xfa\x6d\xd9\x6d\xf2", /* 5d80 */ "\x6d\xfc\x6d\xe4\x6d\xd5\x6d\xea\x6d\xee\x6e\x2d\x6e\x6e\x6e\x19\x6e\x72\x6e\x5f\x6e\x39\x6e\x3e\x6e\x23\x6e\x6b\x6e\x5c\x6e\x2b\x6e\x76\x6e\x4d\x6e\x1f\x6e\x27\x6e\x43\x6e\x3c\x6e\x3a\x6e\x4e\x6e\x24\x6e\x1d\x6e\x38\x6e\x82\x6e\xaa\x6e\x98\x6e\xb7\x6e\xbd\x6e\xaf\x6e\xc4\x6e\xb2\x6e\xd4\x6e\xd5\x6e\x8f\x6e\xbf\x6e\xc2\x6e\x9f\x6f\x41\x6f\x45\x6e\xec\x6e\xf8\x6e\xfe\x6f\x3f\x6e\xf2\x6f\x31\x6e\xef\x6f\x32\x6e\xcc\x6e\xff\x6f\x3e\x6f\x13\x6e\xf7\x6f\x86\x6f\x7a\x6f\x78\x6f\x80\x6f\x6f\x6f\x5b\x6f\x6d\x6f\x74\x6f\x82\x6f\x88\x6f\x7c\x6f\x58\x6f\xc6\x6f\x8e\x6f\x91\x6f\x66\x6f\xb3\x6f\xa3\x6f\xb5\x6f\xa1\x6f\xb9\x6f\xdb\x6f\xaa\x6f\xc2\x6f\xdf\x6f\xd5\x6f\xec\x6f\xd8\x6f\xd4\x6f\xf5\x6f\xee\x70\x05\x70\x07\x70\x09\x70\x0b\x6f\xfa\x70\x11\x70\x01\x70\x0f\x70\x1b\x70\x1a\x70\x1f\x6f\xf3\x70\x28\x70\x18\x70\x30\x70\x3e\x70\x32\x70\x51\x70\x63\x70\x85\x70\x99\x70\xaf\x70\xab\x70\xac\x70\xb8\x70\xae\x70\xdf\x70\xcb\x70\xd9\x71\x09\x71\x0f\x71\x04\x70\xf1\x70\xfd\x71\x1c\x71\x19\x71\x5c\x71\x46\x71\x47\x71\x66\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x62\x71\x4c\x71\x56\x71\x6c\x71\x88\x71\x8f\x71\x84\x71\x95\xfa\x15\x71\xac\x71\xc1\x71\xb9\x71\xbe\x71\xd2\x71\xe7\x71\xc9\x71\xd4\x71\xd7\x71\xce\x71\xf5\x71\xe0\x71\xec\x71\xfb\x71\xfc\x71\xf9\x71\xfe\x71\xff\x72\x0d\x72\x10\x72\x28\x72\x2d\x72\x2c\x72\x30\x72\x32\x72\x3b\x72\x3c\x72\x3f\x72\x40\x72\x46\x72\x4b\x72\x58\x72\x74\x72\x7e\x72\x81\x72\x87\x72\x82\x72\x92\x72\x96\x72\xa2\x72\xa7\x72\xb1\x72\xb2\x72\xbe\x72\xc3\x72\xc6\x72\xc4\x72\xb9\x72\xce\x72\xd2\x72\xe2\x72\xe0\x72\xe1\x72\xf9", /* 5e80 */ "\x72\xf7\x73\x17\x73\x0a\x73\x1c\x73\x16\x73\x1d\x73\x24\x73\x34\x73\x29\x73\x2f\xfa\x16\x73\x25\x73\x3e\x73\x4f\x73\x4e\x73\x57\x9e\xd8\x73\x6a\x73\x68\x73\x70\x73\x77\x73\x78\x73\x75\x73\x7b\x73\xc8\x73\xbd\x73\xb3\x73\xce\x73\xbb\x73\xc0\x73\xc9\x73\xd6\x73\xe5\x73\xe3\x73\xd2\x73\xee\x73\xf1\x73\xde\x73\xf8\x74\x07\x73\xf5\x74\x05\x74\x26\x74\x2a\x74\x25\x74\x29\x74\x2e\x74\x32\x74\x3a\x74\x55\x74\x3f\x74\x5f\x74\x59\x74\x41\x74\x5c\x74\x69\x74\x70\x74\x63\x74\x6a\x74\x64\x74\x62\x74\x89\x74\x6f\x74\x7e\x74\x9f\x74\x9e\x74\xa2\x74\xa7\x74\xca\x74\xcf\x74\xd4\x74\xe0\x74\xe3\x74\xe7\x74\xe9\x74\xee\x74\xf0\x74\xf2\x74\xf1\x74\xf7\x74\xf8\x75\x01\x75\x04\x75\x03\x75\x05\x75\x0d\x75\x0c\x75\x0e\x75\x13\x75\x1e\x75\x26\x75\x2c\x75\x3c\x75\x44\x75\x4d\x75\x4a\x75\x49\x75\x46\x75\x5b\x75\x5a\x75\x64\x75\x67\x75\x6b\x75\x6f\x75\x74\x75\x6d\x75\x78\x75\x76\x75\x82\x75\x86\x75\x87\x75\x8a\x75\x89\x75\x94\x75\x9a\x75\x9d\x75\xa5\x75\xa3\x75\xc2\x75\xb3\x75\xc3\x75\xb5\x75\xbd\x75\xb8\x75\xbc\x75\xb1\x75\xcd\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xca\x75\xd2\x75\xd9\x75\xe3\x75\xde\x75\xfe\x75\xff\x75\xfc\x76\x01\x75\xf0\x75\xfa\x75\xf2\x75\xf3\x76\x0b\x76\x09\x76\x1f\x76\x27\x76\x20\x76\x21\x76\x22\x76\x24\x76\x34\x76\x30\x76\x3b\x76\x47\x76\x48\x76\x58\x76\x46\x76\x5c\x76\x61\x76\x62\x76\x68\x76\x69\x76\x67\x76\x6a\x76\x6c\x76\x70\x76\x72\x76\x76\x76\x7c\x76\x82\x76\x80\x76\x83\x76\x88\x76\x8b\x76\x99\x76\x9a\x76\x9c\x76\x9e\x76\x9b\x76\xa6\x76\xb0\x76\xb4\x76\xb8\x76\xb9\x76\xba\x76\xc2\xfa\x17\x76\xcd\x76\xd6\x76\xd2\x76\xde\x76\xe1", /* 5f80 */ "\x76\xe5\x76\xea\x86\x2f\x76\xfb\x77\x08\x77\x07\x77\x04\x77\x24\x77\x29\x77\x25\x77\x26\x77\x1b\x77\x37\x77\x38\x77\x46\x77\x47\x77\x5a\x77\x68\x77\x6b\x77\x5b\x77\x65\x77\x7f\x77\x7e\x77\x79\x77\x8e\x77\x8b\x77\x91\x77\xa0\x77\x9e\x77\xb0\x77\xb6\x77\xb9\x77\xbf\x77\xbc\x77\xbd\x77\xbb\x77\xc7\x77\xcd\x77\xda\x77\xdc\x77\xe3\x77\xee\x52\xaf\x77\xfc\x78\x0c\x78\x12\x78\x21\x78\x3f\x78\x20\x78\x45\x78\x4e\x78\x64\x78\x74\x78\x8e\x78\x7a\x78\x86\x78\x9a\x78\x7c\x78\x8c\x78\xa3\x78\xb5\x78\xaa\x78\xaf\x78\xd1\x78\xc6\x78\xcb\x78\xd4\x78\xbe\x78\xbc\x78\xc5\x78\xca\x78\xec\x78\xe7\x78\xda\x78\xfd\x78\xf4\x79\x07\x79\x11\x79\x19\x79\x2c\x79\x2b\x79\x30\xfa\x18\x79\x40\x79\x60\xfa\x19\x79\x5f\x79\x5a\x79\x55\xfa\x1a\x79\x7f\x79\x8a\x79\x94\xfa\x1b\x79\x9d\x79\x9b\x79\xaa\x79\xb3\x79\xba\x79\xc9\x79\xd5\x79\xe7\x79\xec\x79\xe3\x7a\x08\x7a\x0d\x7a\x18\x7a\x19\x7a\x1f\x7a\x31\x7a\x3e\x7a\x37\x7a\x3b\x7a\x43\x7a\x57\x7a\x49\x7a\x62\x7a\x61\x7a\x69\x9f\x9d\x7a\x70\x7a\x79\x7a\x7d\x7a\x88\x7a\x95\x7a\x98\x7a\x96\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x97\x7a\xa9\x7a\xb0\x7a\xb6\x90\x83\x7a\xc3\x7a\xbf\x7a\xc5\x7a\xc4\x7a\xc7\x7a\xca\x7a\xcd\x7a\xcf\x7a\xd2\x7a\xd1\x7a\xd5\x7a\xd3\x7a\xd9\x7a\xda\x7a\xdd\x7a\xe1\x7a\xe2\x7a\xe6\x7a\xe7\xfa\x1c\x7a\xeb\x7a\xed\x7a\xf0\x7a\xf8\x7b\x02\x7b\x0f\x7b\x0b\x7b\x0a\x7b\x06\x7b\x33\x7b\x36\x7b\x19\x7b\x1e\x7b\x35\x7b\x28\x7b\x50\x7b\x4d\x7b\x4c\x7b\x45\x7b\x5d\x7b\x75\x7b\x7a\x7b\x74\x7b\x70\x7b\x71\x7b\x6e\x7b\x9d\x7b\x98\x7b\x9f\x7b\x8d\x7b\x9c\x7b\x9a\x7b\x92\x7b\x8f\x7b\x99\x7b\xcf\x7b\xcb\x7b\xcc", /* 6080 */ "\x7b\xb4\x7b\xc6\x7b\x9e\x7b\xdd\x7b\xe9\x7b\xe6\x7b\xf7\x7b\xe5\x7c\x14\x7c\x00\x7c\x13\x7c\x07\x7b\xf3\x7c\x0d\x7b\xf6\x7c\x23\x7c\x27\x7c\x2a\x7c\x1f\x7c\x37\x7c\x2b\x7c\x3d\x7c\x40\x7c\x4c\x7c\x43\x7c\x56\x7c\x50\x7c\x58\x7c\x5f\x7c\x65\x7c\x6c\x7c\x75\x7c\x83\x7c\x90\x7c\xa4\x7c\xa2\x7c\xab\x7c\xa1\x7c\xad\x7c\xa8\x7c\xb3\x7c\xb2\x7c\xb1\x7c\xae\x7c\xb9\xfa\x1d\x7c\xbd\x7c\xc5\x7c\xc2\x7c\xd2\x7c\xe2\x7c\xd8\x7c\xdc\x7c\xef\x7c\xf2\x7c\xf4\x7c\xf6\x7d\x06\x7d\x02\x7d\x1c\x7d\x15\x7d\x0a\x7d\x45\x7d\x4b\x7d\x2e\x7d\x32\x7d\x3f\x7d\x35\x7d\x48\x7d\x46\x7d\x5c\x7d\x73\x7d\x56\x7d\x4e\x7d\x68\x7d\x6e\x7d\x4f\x7d\x63\x7d\x93\x7d\x89\x7d\x5b\x7d\xae\x7d\xa3\x7d\xb5\x7d\xb7\x7d\xc7\x7d\xbd\x7d\xab\x7d\xa2\x7d\xaf\x7d\xa0\x7d\xb8\x7d\x9f\x7d\xb0\x7d\xd5\x7d\xd8\x7d\xdd\x7d\xd6\x7d\xe4\x7d\xde\x7d\xfb\x7e\x0b\x7d\xf2\x7d\xe1\x7d\xdc\x7e\x05\x7e\x0a\x7e\x21\x7e\x12\x7e\x1f\x7e\x09\x7e\x3a\x7e\x46\x7e\x66\x7e\x31\x7e\x3d\x7e\x35\x7e\x3b\x7e\x39\x7e\x43\x7e\x37\x7e\x32\x7e\x5d\x7e\x56\x7e\x5e\x7e\x52\x7e\x59\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x5a\x7e\x67\x7e\x79\x7e\x6a\x7e\x69\x7e\x7c\x7e\x7b\x7e\x7d\x8f\xae\x7e\x7f\x7e\x83\x7e\x89\x7e\x8e\x7e\x8c\x7e\x92\x7e\x93\x7e\x94\x7e\x96\x7e\x9b\x7f\x38\x7f\x3a\x7f\x45\x7f\x47\x7f\x4c\x7f\x4e\x7f\x51\x7f\x55\x7f\x54\x7f\x58\x7f\x5f\x7f\x60\x7f\x68\x7f\x67\x7f\x69\x7f\x78\x7f\x82\x7f\x86\x7f\x83\x7f\x87\x7f\x88\x7f\x8c\x7f\x94\x7f\x9e\x7f\x9d\x7f\x9a\x7f\xa1\x7f\xa3\x7f\xaf\x7f\xae\x7f\xb2\x7f\xb9\x7f\xb6\x7f\xb8\x8b\x71\xfa\x1e\x7f\xc5\x7f\xc6\x7f\xca\x7f\xd5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xf3", /* 6180 */ "\x7f\xf9\x80\x04\x80\x0b\x80\x12\x80\x19\x80\x1c\x80\x21\x80\x28\x80\x3f\x80\x3b\x80\x4a\x80\x46\x80\x52\x80\x58\x80\x5f\x80\x62\x80\x68\x80\x73\x80\x72\x80\x70\x80\x76\x80\x79\x80\x7d\x80\x7f\x80\x84\x80\x85\x80\x93\x80\x9a\x80\xad\x51\x90\x80\xac\x80\xdb\x80\xe5\x80\xd9\x80\xdd\x80\xc4\x80\xda\x81\x09\x80\xef\x80\xf1\x81\x1b\x81\x23\x81\x2f\x81\x4b\x81\x46\x81\x3e\x81\x53\x81\x51\x81\x41\x81\x71\x81\x6e\x81\x65\x81\x5f\x81\x66\x81\x74\x81\x83\x81\x88\x81\x8a\x81\x80\x81\x82\x81\xa0\x81\x95\x81\xa3\x81\x93\x81\xb5\x81\xa4\x81\xa9\x81\xb8\x81\xb0\x81\xc8\x81\xbe\x81\xbd\x81\xc0\x81\xc2\x81\xba\x81\xc9\x81\xcd\x81\xd1\x81\xd8\x81\xd9\x81\xda\x81\xdf\x81\xe0\x81\xfa\x81\xfb\x81\xfe\x82\x01\x82\x02\x82\x05\x82\x0d\x82\x10\x82\x12\x82\x16\x82\x29\x82\x2b\x82\x2e\x82\x38\x82\x33\x82\x40\x82\x59\x82\x5a\x82\x5d\x82\x5f\x82\x64\x82\x62\x82\x68\x82\x6a\x82\x6b\x82\x71\x82\x77\x82\x7e\x82\x8d\x82\x92\x82\xab\x82\x9f\x82\xbb\x82\xac\x82\xe1\x82\xe3\x82\xdf\x83\x01\x82\xd2\x82\xf4\x82\xf3\x83\x03\x82\xfb\x82\xf9\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\xde\x83\x06\x82\xdc\x82\xfa\x83\x09\x82\xd9\x83\x35\x83\x62\x83\x34\x83\x16\x83\x31\x83\x40\x83\x39\x83\x50\x83\x45\x83\x2f\x83\x2b\x83\x18\x83\x9a\x83\xaa\x83\x9f\x83\xa2\x83\x96\x83\x23\x83\x8e\x83\x75\x83\x7f\x83\x8a\x83\x7c\x83\xb5\x83\x73\x83\x93\x83\xa0\x83\x85\x83\x89\x83\xa8\x83\xf4\x84\x13\x83\xc7\x83\xce\x83\xf7\x83\xfd\x84\x03\x83\xd8\x84\x0b\x83\xc1\x84\x07\x83\xe0\x83\xf2\x84\x0d\x84\x20\x83\xf6\x83\xbd\x83\xfb\x84\x2a\x84\x62\x84\x3c\x84\x84\x84\x77\x84\x6b\x84\x79\x84\x48\x84\x6e", /* 6280 */ "\x84\x82\x84\x69\x84\x46\x84\x6f\x84\x38\x84\x35\x84\xca\x84\xb9\x84\xbf\x84\x9f\x84\xb4\x84\xcd\x84\xbb\x84\xda\x84\xd0\x84\xc1\x84\xad\x84\xc6\x84\xd6\x84\xa1\x84\xd9\x84\xff\x84\xf4\x85\x17\x85\x18\x85\x2c\x85\x1f\x85\x15\x85\x14\x85\x06\x85\x53\x85\x5a\x85\x40\x85\x59\x85\x63\x85\x58\x85\x48\x85\x41\x85\x4a\x85\x4b\x85\x6b\x85\x55\x85\x80\x85\xa4\x85\x88\x85\x91\x85\x8a\x85\xa8\x85\x6d\x85\x94\x85\x9b\x85\xae\x85\x87\x85\x9c\x85\x77\x85\x7e\x85\x90\xfa\x1f\x82\x0a\x85\xb0\x85\xc9\x85\xba\x85\xcf\x85\xb9\x85\xd0\x85\xd5\x85\xdd\x85\xe5\x85\xdc\x85\xf9\x86\x0a\x86\x13\x86\x0b\x85\xfe\x86\x22\x86\x1a\x86\x30\x86\x3f\xfa\x20\x86\x4d\x4e\x55\x86\x55\x86\x5f\x86\x67\x86\x71\x86\x93\x86\xa3\x86\xa9\x86\x8b\x86\xaa\x86\x8c\x86\xb6\x86\xaf\x86\xc4\x86\xc6\x86\xb0\x86\xc9\x86\xce\xfa\x21\x86\xab\x86\xd4\x86\xde\x86\xe9\x86\xec\x86\xdf\x86\xdb\x87\x12\x87\x06\x87\x08\x87\x00\x87\x03\x86\xfb\x87\x11\x87\x09\x87\x0d\x86\xf9\x87\x0a\x87\x34\x87\x3f\x87\x3b\x87\x25\x87\x29\x87\x1a\x87\x5f\x87\x78\x87\x4c\x87\x4e\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x74\x87\x57\x87\x68\x87\x82\x87\x6a\x87\x60\x87\x6e\x87\x59\x87\x53\x87\x63\x87\x7f\x87\xa2\x87\xc6\x87\x9f\x87\xaf\x87\xcb\x87\xbd\x87\xc0\x87\xd0\x96\xd6\x87\xab\x87\xc4\x87\xb3\x87\xd2\x87\xbb\x87\xef\x87\xf2\x87\xe0\x88\x0e\x88\x07\x88\x0f\x88\x16\x88\x0d\x87\xfe\x87\xf6\x87\xf7\x88\x11\x88\x15\x88\x22\x88\x21\x88\x27\x88\x31\x88\x36\x88\x39\x88\x3b\x88\x42\x88\x44\x88\x4d\x88\x52\x88\x59\x88\x5e\x88\x62\x88\x6b\x88\x81\x88\x7e\x88\x75\x88\x7d\x88\x72\x88\x82\x88\x9e\x88\x97\x88\x92\x88\xae", /* 6380 */ "\x88\x99\x88\xa2\x88\x8d\x88\xa4\x88\xbf\x88\xb5\x88\xb1\x88\xc3\x88\xc4\x88\xd4\x88\xd8\x88\xd9\x88\xdd\x88\xf9\x89\x02\x88\xfc\x88\xf5\x88\xe8\x88\xf2\x89\x04\x89\x0c\x89\x2a\x89\x1d\x89\x0a\x89\x13\x89\x1e\x89\x25\x89\x2b\x89\x41\x89\x3b\x89\x36\x89\x43\x89\x38\x89\x4d\x89\x4c\x89\x60\x89\x5e\x89\x66\x89\x6a\x89\x64\x89\x6d\x89\x6f\x89\x74\x89\x77\x89\x7e\x89\x83\x89\x88\x89\x8a\x89\x93\x89\x98\x89\xa1\x89\xa9\x89\xa6\x89\xac\x89\xaf\x89\xb2\x89\xba\x89\xbf\x89\xbd\x89\xc0\x89\xda\x89\xdd\x89\xe7\x89\xf4\x89\xf8\x8a\x03\x8a\x16\x8a\x10\x8a\x0c\x8a\x12\x8a\x1b\x8a\x1d\x8a\x25\x8a\x36\x8a\x41\x8a\x37\x8a\x5b\x8a\x52\x8a\x46\x8a\x48\x8a\x7c\x8a\x6d\x8a\x6c\x8a\x62\x8a\x79\x8a\x85\x8a\x82\x8a\x84\x8a\xa8\x8a\xa1\x8a\x91\x8a\xa5\x8a\xa6\x8a\x9a\x8a\xa3\x8a\xa7\x8a\xcc\x8a\xbe\x8a\xcd\x8a\xc2\x8a\xda\x8a\xf3\x8a\xe7\x8a\xe4\x8a\xf1\x8b\x14\x8a\xe0\x8a\xe2\x8a\xe1\x8a\xdf\xfa\x22\x8a\xf6\x8a\xf7\x8a\xde\x8a\xdb\x8b\x0c\x8b\x07\x8b\x1a\x8b\x16\x8b\x10\x8b\x17\x8b\x20\x8b\x33\x8b\x41\x97\xab\x8b\x26\x8b\x2b\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x3e\x8b\x4c\x8b\x4f\x8b\x4e\x8b\x53\x8b\x49\x8b\x56\x8b\x5b\x8b\x5a\x8b\x74\x8b\x6b\x8b\x5f\x8b\x6c\x8b\x6f\x8b\x7d\x8b\x7f\x8b\x80\x8b\x8c\x8b\x8e\x8b\x99\x8b\x92\x8b\x93\x8b\x96\x8b\x9a\x8c\x3a\x8c\x41\x8c\x3f\x8c\x48\x8c\x4c\x8c\x4e\x8c\x50\x8c\x55\x8c\x62\x8c\x6c\x8c\x78\x8c\x7a\x8c\x7c\x8c\x82\x8c\x89\x8c\x85\x8c\x8a\x8c\x8d\x8c\x8e\x8c\x98\x8c\x94\x62\x1d\x8c\xad\x8c\xaa\x8c\xae\x8c\xbd\x8c\xb2\x8c\xb3\x8c\xc1\x8c\xb6\x8c\xc8\x8c\xce\x8c\xcd\x8c\xe3\x8c\xda\x8c\xf0\x8c\xf4\x8c\xfd\x8c\xfa", /* 6480 */ "\x8c\xfb\x8d\x07\x8d\x0a\x8d\x0f\x8d\x0d\x8d\x12\x8d\x10\x8d\x13\x8d\x14\x8d\x16\x8d\x67\x8d\x6d\x8d\x71\x8d\x76\xfa\x23\x8d\x81\x8d\xc2\x8d\xbe\x8d\xba\x8d\xcf\x8d\xda\x8d\xd6\x8d\xcc\x8d\xdb\x8d\xcb\x8d\xea\x8d\xeb\x8d\xdf\x8d\xe3\x8d\xfc\x8e\x08\x8d\xff\x8e\x09\x8e\x1d\x8e\x1e\x8e\x10\x8e\x1f\x8e\x42\x8e\x35\x8e\x30\x8e\x34\x8e\x4a\x8e\x47\x8e\x49\x8e\x4c\x8e\x50\x8e\x48\x8e\x59\x8e\x64\x8e\x60\x8e\x55\x8e\x63\x8e\x76\x8e\x72\x8e\x87\x8e\x7c\x8e\x81\x8e\x85\x8e\x84\x8e\x8b\x8e\x8a\x8e\x93\x8e\x91\x8e\x94\x8e\x99\x8e\xa1\x8e\xaa\x8e\xb1\x8e\xbe\x8e\xc6\x8e\xc5\x8e\xc8\x8e\xcb\x8e\xcf\x8e\xdb\x8e\xe3\x8e\xfc\x8e\xfb\x8e\xeb\x8e\xfe\x8f\x0a\x8f\x0c\x8f\x05\x8f\x15\x8f\x12\x8f\x13\x8f\x1c\x8f\x19\x8f\x1f\x8f\x26\x8f\x33\x8f\x3b\x8f\x39\x8f\x45\x8f\x42\x8f\x3e\x8f\x49\x8f\x46\x8f\x4c\x8f\x4e\x8f\x57\x8f\x5c\x8f\x62\x8f\x63\x8f\x64\x8f\x9c\x8f\x9f\x8f\xa3\x8f\xa8\x8f\xa7\x8f\xad\x8f\xaf\x8f\xb7\xfa\x24\x8f\xda\x8f\xe5\x8f\xe2\x8f\xef\x8f\xe9\x8f\xf4\x90\x05\x8f\xf9\x8f\xf8\x90\x11\x90\x15\x90\x0e\x90\x21\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x90\x1e\x90\x16\x90\x0b\x90\x27\x90\x36\x90\x39\x90\x4f\xfa\x25\x90\x50\x90\x51\x90\x52\x90\x49\x90\x3e\x90\x56\x90\x58\x90\x5e\x90\x68\x90\x67\x90\x6f\x90\x76\x96\xa8\x90\x72\x90\x82\x90\x7d\x90\x89\x90\x80\x90\x8f\x62\x48\x90\xaf\x90\xb1\x90\xb5\x90\xe2\x90\xe4\x90\xdb\x90\xde\x91\x02\xfa\x26\x91\x15\x91\x12\x91\x19\x91\x32\x91\x27\x91\x30\x91\x4a\x91\x56\x91\x58\x91\x63\x91\x65\x91\x69\x91\x73\x91\x72\x91\x8b\x91\x89\x91\x82\x91\xa2\x91\xab\x91\xaf\x91\xaa\x91\xb5\x91\xb4\x91\xba\x91\xc0", /* 6580 */ "\x91\xc1\x91\xcb\x91\xd0\x91\xda\x91\xdb\x91\xd7\x91\xde\x91\xd6\x91\xdf\x91\xe1\x91\xed\x91\xf5\x91\xee\x91\xe4\x91\xf6\x91\xe5\x92\x06\x92\x1e\x91\xff\x92\x10\x92\x14\x92\x0a\x92\x2c\x92\x15\x92\x29\x92\x57\x92\x45\x92\x3a\x92\x49\x92\x64\x92\x40\x92\x3c\x92\x48\x92\x4e\x92\x50\x92\x59\x92\x3f\x92\x51\x92\x39\x92\x4b\x92\x67\x92\x5a\x92\x9c\x92\xa7\x92\x77\x92\x78\x92\x96\x92\x93\x92\x9b\x92\x95\x92\xe9\x92\xcf\x92\xe7\x92\xd7\x92\xd9\x92\xd0\xfa\x27\x92\xd5\x92\xb9\x92\xb7\x92\xe0\x92\xd3\x93\x3a\x93\x35\x93\x0f\x93\x25\x92\xfa\x93\x21\x93\x44\x92\xfb\xfa\x28\x93\x19\x93\x1e\x92\xff\x93\x22\x93\x1a\x93\x1d\x93\x23\x93\x02\x93\x3b\x93\x70\x93\x60\x93\x7c\x93\x6e\x93\x56\x93\x57\x93\xb9\x93\xb0\x93\xa4\x93\xad\x93\x94\x93\xc8\x93\xd6\x93\xc6\x93\xd7\x93\xe8\x93\xe5\x93\xd8\x93\xc3\x93\xdd\x93\xde\x93\xd0\x93\xe4\x94\x1a\x93\xf8\x94\x14\x94\x13\x94\x21\x94\x03\x94\x07\x94\x36\x94\x2b\x94\x31\x94\x3a\x94\x41\x94\x52\x94\x45\x94\x44\x94\x48\x94\x5b\x94\x5a\x94\x60\x94\x62\x94\x5e\x94\x6a\x94\x75\x94\x70\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x77\x94\x7f\x94\x7d\x94\x7c\x94\x7e\x94\x81\x95\x82\x95\x87\x95\x8a\x95\x92\x95\x94\x95\x96\x95\x98\x95\x99\x95\xa0\x95\xa8\x95\xa7\x95\xad\x95\xbc\x95\xbb\x95\xb9\x95\xbe\x95\xca\x6f\xf6\x95\xc3\x95\xcd\x95\xcc\x95\xd5\x95\xd4\x95\xd6\x95\xdc\x95\xe1\x95\xe5\x95\xe2\x96\x21\x96\x28\x96\x2e\x96\x2f\x96\x42\x96\x4f\x96\x4c\x96\x4b\x96\x5c\x96\x5d\x96\x5f\x96\x66\x96\x77\x96\x72\x96\x6c\x96\x8d\x96\x8b\xf9\xdc\x96\x98\x96\x95\x96\x97\xfa\x29\x96\x9d\x96\xa7\x96\xaa\x96\xb1\x96\xb2\x96\xb0\x96\xaf", /* 6680 */ "\x96\xb4\x96\xb6\x96\xb8\x96\xb9\x96\xce\x96\xcb\x96\xd5\x96\xdc\x96\xd9\x96\xf9\x97\x04\x97\x06\x97\x08\x97\x19\x97\x0d\x97\x13\x97\x0e\x97\x11\x97\x0f\x97\x16\x97\x24\x97\x2a\x97\x30\x97\x33\x97\x39\x97\x3b\x97\x3d\x97\x3e\x97\x46\x97\x44\x97\x43\x97\x48\x97\x42\x97\x49\x97\x4d\x97\x4f\x97\x51\x97\x55\x97\x5c\x97\x60\x97\x64\x97\x66\x97\x68\x97\x6d\x97\x79\x97\x85\x97\x7c\x97\x81\x97\x7a\x97\x8b\x97\x8f\x97\x90\x97\x9c\x97\xa8\x97\xa6\x97\xa3\x97\xb3\x97\xb4\x97\xc3\x97\xc6\x97\xc8\x97\xcb\x97\xdc\x97\xed\x97\xf2\x7a\xdf\x97\xf5\x98\x0f\x98\x1a\x98\x24\x98\x21\x98\x37\x98\x3d\x98\x4f\x98\x4b\x98\x57\x98\x65\x98\x6b\x98\x6f\x98\x70\x98\x71\x98\x74\x98\x73\x98\xaa\x98\xaf\x98\xb1\x98\xb6\x98\xc4\x98\xc3\x98\xc6\x98\xdc\x98\xed\x98\xe9\xfa\x2a\x98\xeb\xfa\x2b\x99\x03\x99\x1d\x99\x12\x99\x14\x99\x18\x99\x27\xfa\x2c\x99\x21\x99\x1e\x99\x24\x99\x20\x99\x2c\x99\x2e\x99\x3d\x99\x3e\x99\x42\x99\x49\x99\x45\x99\x50\x99\x4b\x99\x51\x99\x4c\x99\x55\x99\x97\x99\x98\x99\x9e\x99\xa5\x99\xad\x99\xae\x99\xbc\x99\xdf\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xdb\x99\xdd\x99\xd8\x99\xd1\x99\xed\x99\xee\x99\xe2\x99\xf1\x99\xf2\x99\xfb\x99\xf8\x9a\x01\x9a\x0f\x9a\x05\x9a\x19\x9a\x2b\x9a\x37\x9a\x40\x9a\x45\x9a\x42\x9a\x43\x9a\x3e\x9a\x55\x9a\x4d\x9a\x4e\x9a\x5b\x9a\x57\x9a\x5f\x9a\x62\x9a\x69\x9a\x65\x9a\x64\x9a\x6a\x9a\x6b\x9a\xad\x9a\xb0\x9a\xbc\x9a\xc0\x9a\xcf\x9a\xd3\x9a\xd4\x9a\xd1\x9a\xd9\x9a\xdc\x9a\xde\x9a\xdf\x9a\xe2\x9a\xe3\x9a\xe6\x9a\xef\x9a\xeb\x9a\xee\x9a\xf4\x9a\xf1\x9a\xf7\x9a\xfb\x9b\x06\x9b\x18\x9b\x1a\x9b\x1f\x9b\x22\x9b\x23\x9b\x25", /* 6780 */ "\x9b\x27\x9b\x28\x9b\x29\x9b\x2a\x9b\x2e\x9b\x2f\x9b\x31\x9b\x32\x9b\x3b\x9b\x44\x9b\x43\x9b\x4d\x9b\x4e\x9b\x51\x9b\x58\x9b\x75\x9b\x74\x9b\x72\x9b\x93\x9b\x8f\x9b\x83\x9b\x91\x9b\x96\x9b\x97\x9b\x9f\x9b\xa0\x9b\xa8\x9b\xb1\x9b\xb4\x9b\xc0\x9b\xca\x9b\xbb\x9b\xb9\x9b\xc6\x9b\xcf\x9b\xd1\x9b\xd2\x9b\xe3\x9b\xe2\x9b\xe4\x9b\xd4\x9b\xe1\x9b\xf5\x9b\xf1\x9b\xf2\x9c\x04\x9c\x1b\x9c\x15\x9c\x14\x9c\x00\x9c\x09\x9c\x13\x9c\x0c\x9c\x06\x9c\x08\x9c\x12\x9c\x0a\x9c\x2e\x9c\x25\x9c\x24\x9c\x21\x9c\x30\x9c\x47\x9c\x32\x9c\x46\x9c\x3e\x9c\x5a\x9c\x60\x9c\x67\x9c\x76\x9c\x78\x9c\xeb\x9c\xe7\x9c\xec\x9c\xf0\x9d\x09\x9d\x03\x9d\x06\x9d\x2a\x9d\x26\x9d\x2c\x9d\x23\x9d\x1f\x9d\x15\x9d\x12\x9d\x41\x9d\x3f\x9d\x44\x9d\x3e\x9d\x46\x9d\x48\x9d\x5d\x9d\x5e\x9d\x59\x9d\x51\x9d\x50\x9d\x64\x9d\x72\x9d\x70\x9d\x87\x9d\x6b\x9d\x6f\x9d\x7a\x9d\x9a\x9d\xa4\x9d\xa9\x9d\xab\x9d\xb2\x9d\xc4\x9d\xc1\x9d\xbb\x9d\xb8\x9d\xba\x9d\xc6\x9d\xcf\x9d\xc2\xfa\x2d\x9d\xd9\x9d\xd3\x9d\xf8\x9d\xe6\x9d\xed\x9d\xef\x9d\xfd\x9e\x1a\x9e\x1b\x9e\x19\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x1e\x9e\x75\x9e\x79\x9e\x7d\x9e\x81\x9e\x88\x9e\x8b\x9e\x8c\x9e\x95\x9e\x91\x9e\x9d\x9e\xa5\x9e\xb8\x9e\xaa\x9e\xad\x9e\xbc\x9e\xbe\x97\x61\x9e\xcc\x9e\xcf\x9e\xd0\x9e\xd1\x9e\xd4\x9e\xdc\x9e\xde\x9e\xdd\x9e\xe0\x9e\xe5\x9e\xe8\x9e\xef\x9e\xf4\x9e\xf6\x9e\xf7\x9e\xf9\x9e\xfb\x9e\xfc\x9e\xfd\x9f\x07\x9f\x08\x76\xb7\x9f\x15\x9f\x21\x9f\x2c\x9f\x3e\x9f\x4a\x9f\x4e\x9f\x4f\x9f\x52\x9f\x54\x9f\x63\x9f\x5f\x9f\x60\x9f\x61\x9f\x66\x9f\x67\x9f\x6c\x9f\x6a\x9f\x77\x9f\x72\x9f\x76\x9f\x95\x9f\x9c\x9f\xa0", /* 6880 */ "\x5c\x2d\x69\xd9\x90\x65\x74\x76\x51\xdc\x71\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 6980 */ "\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc", /* 6a80 */ "\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba", /* 6b80 */ "\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78", /* 6c80 */ "\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36", /* 6d80 */ "\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4", /* 6e80 */ "\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2", /* 6f80 */ "\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70", /* 7080 */ "\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e", /* 7180 */ "\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec", /* 7280 */ "\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xe7\xa8\xe7\xa9\xe7\xaa", /* 7380 */ "\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe7\xff\xe8\x00\xe8\x01\xe8\x02\xe8\x03\xe8\x04\xe8\x05\xe8\x06\xe8\x07\xe8\x08\xe8\x09\xe8\x0a\xe8\x0b\xe8\x0c\xe8\x0d\xe8\x0e\xe8\x0f\xe8\x10\xe8\x11\xe8\x12\xe8\x13\xe8\x14\xe8\x15\xe8\x16\xe8\x17\xe8\x18\xe8\x19\xe8\x1a\xe8\x1b\xe8\x1c\xe8\x1d\xe8\x1e\xe8\x1f\xe8\x20\xe8\x21\xe8\x22\xe8\x23\xe8\x24\xe8\x25\xe8\x26\xe8\x27\xe8\x28\xe8\x29\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x2a\xe8\x2b\xe8\x2c\xe8\x2d\xe8\x2e\xe8\x2f\xe8\x30\xe8\x31\xe8\x32\xe8\x33\xe8\x34\xe8\x35\xe8\x36\xe8\x37\xe8\x38\xe8\x39\xe8\x3a\xe8\x3b\xe8\x3c\xe8\x3d\xe8\x3e\xe8\x3f\xe8\x40\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68", /* 7480 */ "\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe8\xff\xe9\x00\xe9\x01\xe9\x02\xe9\x03\xe9\x04\xe9\x05\xe9\x06\xe9\x07\xe9\x08\xe9\x09\xe9\x0a\xe9\x0b\xe9\x0c\xe9\x0d\xe9\x0e\xe9\x0f\xe9\x10\xe9\x11\xe9\x12\xe9\x13\xe9\x14\xe9\x15\xe9\x16\xe9\x17\xe9\x18\xe9\x19\xe9\x1a\xe9\x1b\xe9\x1c\xe9\x1d\xe9\x1e\xe9\x1f\xe9\x20\xe9\x21\xe9\x22\xe9\x23\xe9\x24\xe9\x25\xe9\x26", /* 7580 */ "\xe9\x27\xe9\x28\xe9\x29\xe9\x2a\xe9\x2b\xe9\x2c\xe9\x2d\xe9\x2e\xe9\x2f\xe9\x30\xe9\x31\xe9\x32\xe9\x33\xe9\x34\xe9\x35\xe9\x36\xe9\x37\xe9\x38\xe9\x39\xe9\x3a\xe9\x3b\xe9\x3c\xe9\x3d\xe9\x3e\xe9\x3f\xe9\x40\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xe9\x58\xe9\x59\xe9\x5a\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4", /* 7680 */ "\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xe9\xff\xea\x00\xea\x01\xea\x02\xea\x03\xea\x04\xea\x05\xea\x06\xea\x07\xea\x08\xea\x09\xea\x0a\xea\x0b\xea\x0c\xea\x0d\xea\x0e\xea\x0f\xea\x10\xea\x11\xea\x12\xea\x13\xea\x14\xea\x15\xea\x16\xea\x17\xea\x18\xea\x19\xea\x1a\xea\x1b\xea\x1c\xea\x1d\xea\x1e\xea\x1f\xea\x20\xea\x21\xea\x22\xea\x23\xea\x24\xea\x25\xea\x26\xea\x27\xea\x28\xea\x29\xea\x2a\xea\x2b\xea\x2c\xea\x2d\xea\x2e\xea\x2f\xea\x30\xea\x31\xea\x32\xea\x33\xea\x34\xea\x35\xea\x36\xea\x37\xea\x38\xea\x39\xea\x3a\xea\x3b\xea\x3c\xea\x3d\xea\x3e\xea\x3f\xea\x40\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2", /* 7780 */ "\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xea\xff\xeb\x00\xeb\x01\xeb\x02\xeb\x03\xeb\x04\xeb\x05\xeb\x06\xeb\x07\xeb\x08\xeb\x09\xeb\x0a\xeb\x0b\xeb\x0c\xeb\x0d\xeb\x0e\xeb\x0f\xeb\x10\xeb\x11\xeb\x12\xeb\x13\xeb\x14\xeb\x15\xeb\x16\xeb\x17\xeb\x18\xeb\x19\xeb\x1a\xeb\x1b\xeb\x1c\xeb\x1d\xeb\x1e\xeb\x1f\xeb\x20\xeb\x21\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x22\xeb\x23\xeb\x24\xeb\x25\xeb\x26\xeb\x27\xeb\x28\xeb\x29\xeb\x2a\xeb\x2b\xeb\x2c\xeb\x2d\xeb\x2e\xeb\x2f\xeb\x30\xeb\x31\xeb\x32\xeb\x33\xeb\x34\xeb\x35\xeb\x36\xeb\x37\xeb\x38\xeb\x39\xeb\x3a\xeb\x3b\xeb\x3c\xeb\x3d\xeb\x3e\xeb\x3f\xeb\x40\xeb\x41\xeb\x42\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d\xeb\x5e\xeb\x5f\xeb\x60", /* 7880 */ "\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xeb\xd7\xeb\xd8\xeb\xd9\xeb\xda\xeb\xdb\xeb\xdc\xeb\xdd\xeb\xde\xeb\xdf\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xeb\xf2\xeb\xf3\xeb\xf4\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe\xeb\xff\xec\x00\xec\x01\xec\x02\xec\x03\xec\x04\xec\x05\xec\x06\xec\x07\xec\x08\xec\x09\xec\x0a\xec\x0b\xec\x0c\xec\x0d\xec\x0e\xec\x0f\xec\x10\xec\x11\xec\x12\xec\x13\xec\x14\xec\x15\xec\x16\xec\x17\xec\x18\xec\x19\xec\x1a\xec\x1b\xec\x1c\xec\x1d\xec\x1e", /* 7980 */ "\xec\x1f\xec\x20\xec\x21\xec\x22\xec\x23\xec\x24\xec\x25\xec\x26\xec\x27\xec\x28\xec\x29\xec\x2a\xec\x2b\xec\x2c\xec\x2d\xec\x2e\xec\x2f\xec\x30\xec\x31\xec\x32\xec\x33\xec\x34\xec\x35\xec\x36\xec\x37\xec\x38\xec\x39\xec\x3a\xec\x3b\xec\x3c\xec\x3d\xec\x3e\xec\x3f\xec\x40\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc", /* 7a80 */ "\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xec\xff\xed\x00\xed\x01\xed\x02\xed\x03\xed\x04\xed\x05\xed\x06\xed\x07\xed\x08\xed\x09\xed\x0a\xed\x0b\xed\x0c\xed\x0d\xed\x0e\xed\x0f\xed\x10\xed\x11\xed\x12\xed\x13\xed\x14\xed\x15\xed\x16\xed\x17\xed\x18\xed\x19\xed\x1a\xed\x1b\xed\x1c\xed\x1d\xed\x1e\xed\x1f\xed\x20\xed\x21\xed\x22\xed\x23\xed\x24\xed\x25\xed\x26\xed\x27\xed\x28\xed\x29\xed\x2a\xed\x2b\xed\x2c\xed\x2d\xed\x2e\xed\x2f\xed\x30\xed\x31\xed\x32\xed\x33\xed\x34\xed\x35\xed\x36\xed\x37\xed\x38\xed\x39\xed\x3a\xed\x3b\xed\x3c\xed\x3d\xed\x3e\xed\x3f\xed\x40\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a", /* 7b80 */ "\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xed\xff\xee\x00\xee\x01\xee\x02\xee\x03\xee\x04\xee\x05\xee\x06\xee\x07\xee\x08\xee\x09\xee\x0a\xee\x0b\xee\x0c\xee\x0d\xee\x0e\xee\x0f\xee\x10\xee\x11\xee\x12\xee\x13\xee\x14\xee\x15\xee\x16\xee\x17\xee\x18\xee\x19\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x1a\xee\x1b\xee\x1c\xee\x1d\xee\x1e\xee\x1f\xee\x20\xee\x21\xee\x22\xee\x23\xee\x24\xee\x25\xee\x26\xee\x27\xee\x28\xee\x29\xee\x2a\xee\x2b\xee\x2c\xee\x2d\xee\x2e\xee\x2f\xee\x30\xee\x31\xee\x32\xee\x33\xee\x34\xee\x35\xee\x36\xee\x37\xee\x38\xee\x39\xee\x3a\xee\x3b\xee\x3c\xee\x3d\xee\x3e\xee\x3f\xee\x40\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58", /* 7c80 */ "\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xee\xff\xef\x00\xef\x01\xef\x02\xef\x03\xef\x04\xef\x05\xef\x06\xef\x07\xef\x08\xef\x09\xef\x0a\xef\x0b\xef\x0c\xef\x0d\xef\x0e\xef\x0f\xef\x10\xef\x11\xef\x12\xef\x13\xef\x14\xef\x15\xef\x16", /* 7d80 */ "\xef\x17\xef\x18\xef\x19\xef\x1a\xef\x1b\xef\x1c\xef\x1d\xef\x1e\xef\x1f\xef\x20\xef\x21\xef\x22\xef\x23\xef\x24\xef\x25\xef\x26\xef\x27\xef\x28\xef\x29\xef\x2a\xef\x2b\xef\x2c\xef\x2d\xef\x2e\xef\x2f\xef\x30\xef\x31\xef\x32\xef\x33\xef\x34\xef\x35\xef\x36\xef\x37\xef\x38\xef\x39\xef\x3a\xef\x3b\xef\x3c\xef\x3d\xef\x3e\xef\x3f\xef\x40\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xef\xd2\xef\xd3\xef\xd4", /* 7e80 */ "\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xef\xff\xf0\x00\xf0\x01\xf0\x02\xf0\x03\xf0\x04\xf0\x05\xf0\x06\xf0\x07\xf0\x08\xf0\x09\xf0\x0a\xf0\x0b\xf0\x0c\xf0\x0d\xf0\x0e\xf0\x0f\xf0\x10\xf0\x11\xf0\x12\xf0\x13\xf0\x14\xf0\x15\xf0\x16\xf0\x17\xf0\x18\xf0\x19\xf0\x1a\xf0\x1b\xf0\x1c\xf0\x1d\xf0\x1e\xf0\x1f\xf0\x20\xf0\x21\xf0\x22\xf0\x23\xf0\x24\xf0\x25\xf0\x26\xf0\x27\xf0\x28\xf0\x29\xf0\x2a\xf0\x2b\xf0\x2c\xf0\x2d\xf0\x2e\xf0\x2f\xf0\x30\xf0\x31\xf0\x32\xf0\x33\xf0\x34\xf0\x35\xf0\x36\xf0\x37\xf0\x38\xf0\x39\xf0\x3a\xf0\x3b\xf0\x3c\xf0\x3d\xf0\x3e\xf0\x3f\xf0\x40\xf0\x41\xf0\x42\xf0\x43\xf0\x44\xf0\x45\xf0\x46\xf0\x47\xf0\x48\xf0\x49\xf0\x4a\xf0\x4b\xf0\x4c\xf0\x4d\xf0\x4e\xf0\x4f\xf0\x50\xf0\x51\xf0\x52\xf0\x53\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x54\xf0\x55\xf0\x56\xf0\x57\xf0\x58\xf0\x59\xf0\x5a\xf0\x5b\xf0\x5c\xf0\x5d\xf0\x5e\xf0\x5f\xf0\x60\xf0\x61\xf0\x62\xf0\x63\xf0\x64\xf0\x65\xf0\x66\xf0\x67\xf0\x68\xf0\x69\xf0\x6a\xf0\x6b\xf0\x6c\xf0\x6d\xf0\x6e\xf0\x6f\xf0\x70\xf0\x71\xf0\x72\xf0\x73\xf0\x74\xf0\x75\xf0\x76\xf0\x77\xf0\x78\xf0\x79\xf0\x7a\xf0\x7b\xf0\x7c\xf0\x7d\xf0\x7e\xf0\x7f\xf0\x80\xf0\x81\xf0\x82\xf0\x83\xf0\x84\xf0\x85\xf0\x86\xf0\x87\xf0\x88\xf0\x89\xf0\x8a\xf0\x8b\xf0\x8c\xf0\x8d\xf0\x8e\xf0\x8f\xf0\x90\xf0\x91\xf0\x92", /* 7f80 */ "\xf0\x93\xf0\x94\xf0\x95\xf0\x96\xf0\x97\xf0\x98\xf0\x99\xf0\x9a\xf0\x9b\xf0\x9c\xf0\x9d\xf0\x9e\xf0\x9f\xf0\xa0\xf0\xa1\xf0\xa2\xf0\xa3\xf0\xa4\xf0\xa5\xf0\xa6\xf0\xa7\xf0\xa8\xf0\xa9\xf0\xaa\xf0\xab\xf0\xac\xf0\xad\xf0\xae\xf0\xaf\xf0\xb0\xf0\xb1\xf0\xb2\xf0\xb3\xf0\xb4\xf0\xb5\xf0\xb6\xf0\xb7\xf0\xb8\xf0\xb9\xf0\xba\xf0\xbb\xf0\xbc\xf0\xbd\xf0\xbe\xf0\xbf\xf0\xc0\xf0\xc1\xf0\xc2\xf0\xc3\xf0\xc4\xf0\xc5\xf0\xc6\xf0\xc7\xf0\xc8\xf0\xc9\xf0\xca\xf0\xcb\xf0\xcc\xf0\xcd\xf0\xce\xf0\xcf\xf0\xd0\xf0\xd1\xf0\xd2\xf0\xd3\xf0\xd4\xf0\xd5\xf0\xd6\xf0\xd7\xf0\xd8\xf0\xd9\xf0\xda\xf0\xdb\xf0\xdc\xf0\xdd\xf0\xde\xf0\xdf\xf0\xe0\xf0\xe1\xf0\xe2\xf0\xe3\xf0\xe4\xf0\xe5\xf0\xe6\xf0\xe7\xf0\xe8\xf0\xe9\xf0\xea\xf0\xeb\xf0\xec\xf0\xed\xf0\xee\xf0\xef\xf0\xf0\xf0\xf1\xf0\xf2\xf0\xf3\xf0\xf4\xf0\xf5\xf0\xf6\xf0\xf7\xf0\xf8\xf0\xf9\xf0\xfa\xf0\xfb\xf0\xfc\xf0\xfd\xf0\xfe\xf0\xff\xf1\x00\xf1\x01\xf1\x02\xf1\x03\xf1\x04\xf1\x05\xf1\x06\xf1\x07\xf1\x08\xf1\x09\xf1\x0a\xf1\x0b\xf1\x0c\xf1\x0d\xf1\x0e\xf1\x0f\xf1\x10\xf1\x11\x00\x00", /* 8000 */ NULL, /* 8080 */ NULL, /* 8100 */ NULL, /* 8180 */ NULL, /* 8200 */ NULL, /* 8280 */ NULL, /* 8300 */ NULL, /* 8380 */ NULL, /* 8400 */ NULL, /* 8480 */ NULL, /* 8500 */ NULL, /* 8580 */ NULL, /* 8600 */ NULL, /* 8680 */ NULL, /* 8700 */ NULL, /* 8780 */ NULL, /* 8800 */ NULL, /* 8880 */ NULL, /* 8900 */ NULL, /* 8980 */ NULL, /* 8a00 */ NULL, /* 8a80 */ NULL, /* 8b00 */ NULL, /* 8b80 */ NULL, /* 8c00 */ NULL, /* 8c80 */ NULL, /* 8d00 */ NULL, /* 8d80 */ NULL, /* 8e00 */ NULL, /* 8e80 */ NULL, /* 8f00 */ NULL, /* 8f80 */ NULL, /* 9000 */ NULL, /* 9080 */ NULL, /* 9100 */ NULL, /* 9180 */ NULL, /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ NULL, /* e080 */ NULL, /* e100 */ NULL, /* e180 */ NULL, /* e200 */ NULL, /* e280 */ NULL, /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp935", "0x04380345" /* 1080, 837 */, "gb2312.1980-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-837_P100-2000 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x88\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x44\x46\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x48\x46\x46\x46\x5a\x00\x00\x46\x4c\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x46\x50\x46\x4e\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x46\x54\x46\x52\x00\x00\x46\x59\x00\x00\x00\x00\x00\x00", /* 0100 */ "\x00\x00\x46\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x46\x4b\x00\x00\x46\x4f\x00\x00\x46\x53\x00\x00\x46\x55\x00\x00\x46\x56\x00\x00\x46\x57\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0200 */ NULL, /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x46\x00\x00\x45\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4a\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x8b\x00\x00\x44\xee\x44\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x66\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6b\x00\x00\x00\x00\x45\x77\x44\x4d\x00\x00\x45\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6d\x00\x00\x45\x63\x45\x64\x45\x68\x45\x67\x45\x71\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x45\x62\x45\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x75\x00\x00\x00\x00\x00\x00\x45\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x45\x73\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0", /* 2480 */ "\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2500 */ "\x46\xa4\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x45\x5b\x45\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x59\xba\x4b\xa0\x00\x00\x53\xde\x00\x00\x00\x00\x00\x00\x57\x93\x5b\x69\x54\xfc\x55\x6f\x58\x62\x5c\xa1\x49\xba\x5a\x8c\x00\x00\x5c\xa3\x4a\x94\x00\x00\x5c\x48\x54\x72\x5c\xa6\x55\xbf\x00\x00\x54\x91\x49\x9c\x59\xb4\x4a\xd3\x4b\xaa\x56\x5f\x5c\xa8\x00\x00\x00\x00\x00\x00\x4b\xa9\x00\x00\x51\x5d\x59\x6f\x00\x00\x55\x45\x5c\xac\x00\x00\x4c\xf5\x59\x5e\x62\x7c\x5b\xcf\x00\x00\x00\x00\x4c\x82\x00\x00\x4a\xad\x00\x00\x51\x79\x00\x00\x5c\xbb\x00\x00\x57\x89\x4b\x44\x57\xa9\x5b\xf6\x00\x00\x50\xf5\x4f\xd8\x5c\xae\x00\x00\x00\x00\x00\x00\x52\xca\x00\x00\x4f\xc2\x00\x00\x5c\xb0\x52\x54\x59\xe4\x00\x00\x5b\xad\x57\xd9\x5b\x47\x4d\xf4\x4c\x46\x50\xd5\x00\x00\x53\xb8\x53\x72\x54\x67\x00\x00\x4d\x74\x00\x00\x4a\x6b\x59\xd1\x00\x00\x00\x00\x5c\xbe\x4f\xc4\x53\xf1\x59\xb1\x58\x50\x58\x88\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe8\x00\x00\x00\x00\x5c\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf1\x51\xd1\x00\x00\x54\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x4c\x00\x00", /* 4e80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6b\x00\x00\x5a\x89\x5b\x9a\x00\x00\x55\xc1\x4b\xfd\x5c\xa0\x5a\x7a\x50\x98\x00\x00\x5a\xc5\x4e\x45\x5c\xc0\x57\xe4\x4f\xad\x00\x00\x00\x00\x5c\xa7\x00\x00\x59\x67\x58\xa8\x00\x00\x00\x00\x00\x00\x5c\xbc\x5d\x90\x57\x97\x50\x5a\x00\x00\x4f\x5b\x4d\xa4\x59\xdf\x49\xf9\x4d\xdf\x52\xb5\x00\x00\x58\x8e\x4f\xa8\x57\x44\x51\x61\x00\x00\x00\x00\x00\x00\x54\x77\x5d\x92\x00\x00\x5d\x95\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x5c\xe8\x00\x00\x00\x00\x00\x00\x59\xd9\x55\xb1\x54\xc9\x5c\xeb\x5c\xe9\x5c\xc5\x4f\x97\x53\xcc\x4a\x91\x00\x00\x5c\xea\x4f\x92\x4f\x8a\x00\x00\x54\xd3\x4a\xd2\x00\x00\x00\x00\x51\xd7\x00\x00\x49\xd5\x5c\x70\x55\xca\x56\x9c\x5b\x6c\x4c\xb5\x58\x69\x00\x00\x00\x00\x00\x00\x5d\x7a\x5c\xef\x54\x4a\x00\x00\x5c\xed\x00\x00\x4a\xf9\x51\x8f\x59\xd3\x00\x00\x00\x00\x5c\xec\x00\x00\x59\xc6\x5c\xee\x52\x67\x00\x00\x00\x00\x00\x00\x59\x97\x00\x00\x5b\xd8\x5c\xf1\x00\x00\x5c\xf4\x4e\xfd\x4e\xda\x00\x00\x00\x00\x00\x00\x54\xcd\x00\x00\x4c\x7d\x00\x00\x4c\x62", /* 4f00 */ "\x00\x00\x53\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf7\x59\xc0\x00\x00\x00\x00\x57\xe8\x4e\xbe\x4c\x9d\x4c\x45\x58\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd9\x5a\x65\x4e\x90\x4e\x82\x5c\xf0\x00\x00\x00\x00\x55\x41\x57\xaf\x4a\xaa\x00\x00\x5c\xf2\x00\x00\x55\x6b\x5c\xf5\x51\xd6\x5c\xf6\x00\x00\x00\x00\x57\xb0\x5c\xf8\x00\x00\x00\x00\x00\x00\x49\xad\x4d\x60\x00\x00\x5d\x43\x00\x00\x48\xe8\x00\x00\x51\x87\x00\x00\x55\x8d\x00\x00\x56\x65\x00\x00\x56\x66\x5d\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x89\x00\x00\x00\x00\x4b\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xba\x4b\x6d\x5c\x41\x5c\x95\x5a\x73\x00\x00\x56\xe4\x00\x00\x4d\xcd\x00\x00\x5d\x42\x5d\x7c\x5a\x81\x5c\xfc\x4c\x91\x5c\x98\x5c\xfd\x5c\xf9\x5d\x41\x52\xe2\x00\x00\x00\x00\x5a\x56\x5c\xf3\x5d\x7d\x00\x00\x5c\xfa\x00\x00\x53\x86\x00\x00\x00\x00\x50\xcf\x00\x00\x00\x00\x59\x91\x48\xda\x00\x00\x00\x00\x4e\xd0\x5d\x46\x00\x00\x5d\x45\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x4c\x5d\x4e\x00\x00\x5d\x4b\x55\xb8", /* 4f80 */ "\x00\x00\x00\x00\x00\x00\x5d\x49\x5b\xb5\x00\x00\x00\x00\x00\x00\x4a\x7e\x5d\x48\x00\x00\x50\xfc\x00\x00\x55\xcb\x00\x00\x5d\x4a\x00\x00\x5d\x47\x00\x00\x00\x00\x5d\x50\x00\x00\x00\x00\x4b\xb0\x00\x00\x00\x00\x00\x00\x4d\x49\x00\x00\x59\xbf\x00\x00\x00\x00\x58\x60\x00\x00\x00\x00\x51\xc1\x00\x00\x4f\x64\x5b\x8d\x49\xdf\x54\x68\x50\x8c\x5d\x4d\x00\x00\x5d\x4f\x00\x00\x57\xe9\x4d\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x84\x00\x00\x00\x00\x00\x00\x4a\xd8\x4b\xec\x5d\x54\x00\x00\x00\x00\x00\x00\x00\x00\x50\x41\x00\x00\x00\x00\x00\x00\x5d\x7e\x54\x6e\x50\xfd\x5d\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x77\x4c\x9e\x00\x00\x5d\x55\x00\x00\x5d\x57\x49\x43\x5a\x82\x5d\x59\x00\x00\x58\xc4\x00\x00\x5d\x56\x00\x00\x00\x00\x5d\x51\x00\x00\x5d\x52\x51\x49\x5d\x53\x00\x00\x00\x00\x4e\xf2\x58\xdd\x4c\xa8\x00\x00\x4f\xe2\x00\x00\x5d\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5a\x00\x00\x48\xb2\x00\x00\x00\x00\x00\x00\x5d\x62\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x64\x49\x56\x00\x00\x5d\x5f\x00\x00\x00\x00\x4b\x59\x00\x00\x4f\xf2\x00\x00\x00\x00\x00\x00\x56\xc7\x4d\xf1\x59\xcf\x00\x00\x5d\x63\x00\x00\x00\x00\x4f\x89\x00\x00\x4a\x4b\x00\x00\x00\x00\x00\x00\x5d\x65\x4f\xea\x00\x00\x5d\x66\x5d\x5b\x52\xde\x00\x00\x5d\x5e\x5d\x61\x5d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4e\x00\x00\x5b\xb4\x00\x00\x54\x84\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x68\x00\x00\x00\x00\x00\x00\x4e\xd8\x5d\x6a\x00\x00\x00\x00\x00\x00\x5d\x5c\x00\x00\x5d\x6b\x53\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x97\x00\x00\x57\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x5c\x57\x55\x00\x00\x00\x00\x00\x00\x5d\x6d\x00\x00\x00\x00\x5d\x67\x4a\x45", /* 5080 */ "\x50\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb4\x00\x00\x00\x00\x50\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf5\x00\x00\x5d\x6e\x00\x00\x5d\x6f\x4a\xa1\x5d\x70\x00\x00\x00\x00\x4a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x71\x55\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x72\x00\x00\x00\x00\x00\x00\x51\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x76\x55\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x75\x5d\x74\x5d\x77\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7b\x00\x00\x4f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa6\x00\x00\x00\x00\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x73\x5d\x78\x00\x00\x00\x00\x00\x00\x5d\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf8\x5c\xa2\x5a\xc9\x00\x00\x5a\xa9\x58\xd5\x4a\x85\x5b\x77\x00\x00\x58\x68\x4d\x83\x00\x00\x50\x6b\x00\x00\x52\x83\x00\x00\x00\x00\x00\x00\x4b\xd1\x00\x00\x00\x00\x57\x63\x5d\x8f\x5d\x91\x00\x00\x00\x00\x00\x00\x4b\x53\x00\x00\x4b\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa3\x00\x00\x00\x00\x54\xea\x00\x00\x00\x00\x54\xaa\x00\x00\x00\x00\x48\xca\x4d\x4b\x51\x9a\x5d\x83\x00\x00\x50\xbb\x4d\x52\x00\x00\x4d\x78\x58\xca\x49\x99\x53\xe3\x4f\xde\x4b\x85\x5c\x68\x00\x00\x59\x99\x4e\xe5\x55\xdd\x00\x00\x00\x00", /* 5180 */ "\x4e\xbc\x5d\x87\x5c\xe6\x00\x00\x00\x00\x52\xd9\x00\x00\x00\x00\x4c\xd3\x54\xbc\x00\x00\x00\x00\x49\xe0\x5a\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x52\x50\x00\x00\x00\x00\x52\x82\x5d\xa1\x54\xde\x00\x00\x58\xb3\x00\x00\x4f\xfb\x53\x49\x00\x00\x00\x00\x00\x00\x4d\x7a\x00\x00\x5d\xa2\x00\x00\x5a\xa8\x5d\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9c\x4b\xab\x00\x00\x00\x00\x4c\x8c\x49\x9a\x5d\x9d\x4a\x86\x4f\xf5\x00\x00\x50\x97\x59\xb0\x50\xe3\x00\x00\x00\x00\x00\x00\x4b\xb2\x5d\x9f\x5d\x9e\x00\x00\x00\x00\x4f\xba\x00\x00\x00\x00\x00\x00\x53\xdf\x00\x00\x5c\x5c\x5d\xa0\x00\x00\x51\x59\x00\x00\x4b\x93\x51\x89\x00\x00\x00\x00\x4e\xf4\x00\x00\x4a\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x7d\x00\x00\x52\xfc\x00\x00\x00\x00\x4e\xb7\x4c\x52\x00\x00\x00\x00\x4c\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8d\x00\x00\x53\xbd\x00\x00\x50\x4d\x4e\x6b\x00\x00\x00\x00\x4b\x6a\x00\x00\x5e\x69\x58\xd6\x00\x00\x57\x59\x48\xbb\x4a\x97\x4e\x98\x5e\x6a\x4d\xae\x00\x00\x5a\xe3", /* 5200 */ "\x4b\x56\x4b\x94\x5c\xd5\x54\xcf\x00\x00\x00\x00\x4c\x76\x54\x70\x5c\xd6\x00\x00\x50\x4f\x00\x00\x00\x00\x5e\x5b\x5c\xd7\x00\x00\x00\x00\x58\xcb\x4e\x4e\x00\x00\x00\x00\x00\x00\x66\x5e\x51\x70\x51\x96\x5a\xf1\x4c\xd4\x4a\xb3\x00\x00\x4a\x96\x00\x00\x00\x00\x55\x5e\x00\x00\x00\x00\x00\x00\x53\x70\x00\x00\x00\x00\x00\x00\x53\x79\x50\xfa\x00\x00\x49\x91\x00\x00\x5c\xd8\x4d\x6e\x00\x00\x4b\x5d\x00\x00\x00\x00\x5c\xd9\x00\x00\x00\x00\x5b\xc5\x56\x42\x54\xae\x55\x52\x4a\xcb\x50\x6c\x00\x00\x4d\x95\x00\x00\x5c\xda\x5c\xdb\x4b\xe6\x4e\xc0\x56\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x98\x00\x00\x5c\xdc\x54\x50\x00\x00\x00\x00\x4d\x70\x4f\x43\x00\x00\x00\x00\x56\xdd\x00\x00\x53\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdf\x00\x00\x5c\xdd\x00\x00\x00\x00\x5c\xde\x00\x00\x00\x00\x00\x00\x48\xfd\x00\x00\x4f\xe6\x00\x00\x55\xa2\x4e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb0\x00\x00\x00\x00\x4c\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe1\x00\x00\x4f\x6b", /* 5280 */ "\x00\x00\x5c\xe3\x5c\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe4\x00\x00\x00\x00\x5c\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x46\x00\x00\x54\xaf\x48\xeb\x4d\x46\x4e\xd2\x57\xf0\x5e\x5d\x51\x73\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xae\x5b\xf9\x53\x4c\x4f\x79\x5e\x5e\x5e\x5f\x00\x00\x00\x00\x00\x00\x50\xf7\x4f\xa1\x50\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x60\x55\xc5\x00\x00\x00\x00\x00\x00\x49\xa9\x00\x00\x00\x00\x00\x00\x5a\x62\x00\x00\x52\x84\x00\x00\x59\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x62\x00\x00\x50\xd4\x00\x00\x00\x00\x00\x00\x5e\x63\x00\x00\x50\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x89\x55\x77\x00\x00\x00\x00\x00\x00\x4d\x54\x57\xef", /* 5300 */ "\x5a\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x48\xfb\x4a\xd1\x00\x00\x58\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8a\x00\x00\x5f\xca\x5d\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xaf\x4e\x4f\x49\x51\x00\x00\x4a\x77\x5c\xcd\x00\x00\x00\x00\x5a\xd0\x00\x00\x00\x00\x4f\x53\x50\x90\x00\x00\x58\x5b\x00\x00\x00\x00\x5c\xcf\x00\x00\x00\x00\x00\x00\x4c\x6b\x00\x00\x00\x00\x00\x00\x5c\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa4\x54\x99\x59\xbc\x00\x00\x00\x00\x5c\xd1\x52\xe3\x00\x00\x55\xad\x00\x00\x54\x47\x00\x00\x5c\xa5\x00\x00\x55\x9e\x57\xe6\x4e\x7c\x48\xea\x00\x00\x00\x00\x00\x00\x4e\x4a\x58\xac\x00\x00\x49\x50\x5c\x85\x5c\x5f\x00\x00\x4b\x45\x51\xf3\x52\xce\x00\x00\x00\x00\x49\xa8\x00\x00\x49\xb6\x00\x00\x49\x86\x60\x52\x5b\x5c\x50\x48\x51\xab\x5c\xd4\x51\xb0\x00\x00\x5c\xd3\x57\xd3\x00\x00\x5d\xdf\x00\x00\x57\xbf\x00\x00\x00\x00\x5c\xb3\x52\x4e\x5a\x41\x57\xa2\x00\x00\x4e\xb3\x54\xb3\x51\xd0\x00\x00\x4f\xec\x58\xb5\x00\x00\x5d\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x54\x85", /* 5380 */ "\x00\x00\x00\x00\x4a\x47\x00\x00\x4b\xf1\x56\xfb\x50\xf9\x00\x00\x00\x00\x50\xf6\x00\x00\x59\x59\x59\x82\x5c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xdd\x00\x00\x00\x00\x50\xe4\x00\x00\x4d\xf0\x00\x00\x00\x00\x5c\xc7\x00\x00\x5a\xac\x00\x00\x00\x00\x58\x82\x5c\xc8\x00\x00\x5c\xc9\x58\x63\x00\x00\x4a\x99\x4f\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa4\x00\x00\x00\x00\x00\x00\x58\x78\x00\x00\x54\xfd\x49\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x76\x49\xe5\x4e\xaf\x5a\x71\x56\x4b\x4c\x54\x00\x00\x00\x00\x00\x00\x4c\x42\x00\x00\x00\x00\x55\xe4\x00\x00\x54\xa0\x55\xdb\x49\x85\x58\xef\x00\x00\x53\x71\x00\x00\x00\x00\x00\x00\x5e\x65\x4b\x9f\x00\x00\x00\x00\x50\x7a\x4d\x65\x4f\xe3\x51\x8e\x00\x00\x60\x56\x60\x55\x5b\xba\x4f\x70\x5b\x79\x48\xc7\x4b\xa2\x50\x69\x56\xa7\x60\x53\x55\xb6\x5a\x72\x00\x00\x5c\xce\x59\xb5\x4d\xc4\x56\x5e\x56\xbd\x00\x00\x60\x57\x4b\x91\x60\x54\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x5a\x96\x00\x00\x4a\x74\x4c\xf6\x00\x00\x60\x5a\x00\x00\x4d\xce\x4e\xa9\x4b\x96\x00\x00\x57\x4c\x52\x9c\x4d\xf2\x50\xf3\x57\x62\x58\x93\x60\x58\x58\x65\x00\x00\x51\xbf\x60\x59\x51\xef\x00\x00\x00\x00\x00\x00\x4f\xfc\x00\x00\x51\x7f\x57\x6c\x59\xf6\x4c\x6d\x60\x61\x00\x00\x60\x64\x00\x00\x00\x00\x4c\x92\x48\xc8\x4b\xd5\x4c\x74\x00\x00\x4d\xab\x56\xfc\x50\x74\x56\x51\x53\xf3\x00\x00\x5b\xa7\x60\x65\x00\x00\x57\xe1\x4a\x53\x00\x00\x00\x00\x57\xfb\x4a\xb4\x00\x00\x57\xc6\x4d\xef\x00\x00\x57\xe0\x00\x00\x59\x5d\x00\x00\x00\x00\x60\x60\x00\x00\x00\x00\x4a\xf3\x00\x00\x4a\x6a\x00\x00\x4c\xe5\x60\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc4\x00\x00\x60\x5c\x60\x5d\x60\x5e\x53\x5b\x60\x5f\x60\x62\x5a\xb0\x60\x63\x00\x00\x54\x5a\x57\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd7\x00\x00\x60\x6a\x00\x00\x60\x6f\x00\x00\x5b\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x69\x60\x7a\x57\xb5\x00\x00\x4d\xc6\x60\x6e\x60\x68\x53\x7e\x00\x00\x00\x00\x55\x8c\x4d\xf3\x52\x9d\x00\x00\x00\x00", /* 5480 */ "\x4f\xd6\x00\x00\x60\x66\x00\x00\x60\x6d\x00\x00\x53\x78\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x46\x4d\xcc\x00\x00\x4f\xcb\x5a\x5d\x4c\xbf\x00\x00\x5b\xe3\x00\x00\x60\x67\x4d\x5e\x50\x47\x00\x00\x00\x00\x51\x9d\x60\x6b\x60\x6c\x00\x00\x60\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x7b\x60\x86\x00\x00\x60\x77\x60\x76\x5c\x69\x60\x84\x60\x85\x63\x8c\x59\xa6\x60\x72\x00\x00\x50\x49\x00\x00\x5a\xda\x00\x00\x50\x68\x60\x74\x00\x00\x00\x00\x00\x00\x58\x6c\x00\x00\x00\x00\x60\x7d\x00\x00\x59\x6a\x00\x00\x60\x7e\x48\xa6\x53\xb6\x60\x73\x00\x00\x4d\xe4\x00\x00\x4b\xde\x57\x7b\x4d\x9f\x5a\xd4\x00\x00\x00\x00\x60\x7f\x58\x8d\x48\xa4\x60\x88\x60\x71\x59\x66\x60\x75\x60\x78\x60\x79\x60\x7c\x00\x00\x4e\x49\x00\x00\x60\x81\x60\x82\x00\x00\x60\x83\x60\x87\x60\x89\x5a\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe6\x53\x56\x60\x8b\x55\x7a\x51\x48\x52\xc3\x00\x00\x00\x00\x50\x7e\x58\x99\x00\x00\x00\x00\x00\x00\x5b\x7c\x60\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb7\x00\x00\x4d\xde\x60\x8d\x00\x00\x5e\x61", /* 5500 */ "\x00\x00\x59\x85\x00\x00\x00\x00\x00\x00\x00\x00\x56\x95\x4a\xbc\x00\x00\x48\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x92\x56\xc5\x60\x93\x00\x00\x00\x00\x60\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8c\x00\x00\x60\x90\x60\x91\x4e\x5d\x00\x00\x00\x00\x60\x94\x00\x00\x00\x00\x60\x95\x00\x00\x4e\x43\x00\x00\x55\xda\x57\xa7\x60\xa6\x4a\x4a\x00\x00\x60\xa5\x00\x00\x00\x00\x00\x00\x60\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9f\x00\x00\x57\x79\x60\x9d\x00\x00\x60\x9b\x00\x00\x50\x70\x5c\x64\x00\x00\x55\x6c\x00\x00\x00\x00\x60\x99\x48\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9c\x60\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x68\x00\x00\x00\x00\x53\xa0\x55\x56\x50\xb1\x60\x96\x00\x00\x00\x00\x53\x5e\x00\x00\x5c\xc3\x60\x9a\x52\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xa2\x60\xa3\x60\xa4\x58\xa4\x00\x00\x00\x00\x60\xb3\x56\xe3\x00\x00\x60\xb0\x00\x00", /* 5580 */ "\x50\x46\x60\xae\x57\xb8\x60\xaa\x55\x66\x00\x00\x00\x00\x50\xad\x60\xad\x4d\xec\x4d\xaf\x60\xa8\x00\x00\x00\x00\x00\x00\x60\x97\x00\x00\x60\xb2\x00\x00\x00\x00\x60\xb7\x00\x00\x00\x00\x00\x00\x4a\xac\x60\xb8\x00\x00\x00\x00\x58\x52\x4d\xc7\x00\x00\x60\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xab\x00\x00\x5a\xfa\x00\x00\x60\x98\x00\x00\x53\x88\x00\x00\x60\xac\x00\x00\x5a\x98\x00\x00\x60\xb5\x60\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc3\x58\xe0\x00\x00\x00\x00\x00\x00\x60\xbb\x00\x00\x00\x00\x60\xc8\x60\xc9\x00\x00\x00\x00\x00\x00\x60\xbd\x60\xa9\x55\x44\x60\xc0\x00\x00\x60\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc7\x60\xc2\x00\x00\x60\xb4\x00\x00\x57\xca\x00\x00\x56\x63\x60\xcc\x60\xc5\x60\xc1\x00\x00\x60\xca\x00\x00\x60\xb9\x60\xbe\x60\xbf\x00\x00\x00\x00\x60\xc4\x00\x00\x00\x00\x60\xc6\x60\xc7\x00\x00\x60\xcb\x00\x00\x60\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x74\x60\xd4\x00\x00", /* 5600 */ "\x60\xd5\x60\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcf\x4e\xcd\x00\x00\x00\x00\x60\xd0\x00\x00\x4c\xc1\x5c\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe9\x00\x00\x00\x00\x51\xee\x00\x00\x00\x00\x60\xce\x60\xbc\x00\x00\x00\x00\x00\x00\x60\xd3\x60\xd2\x00\x00\x00\x00\x60\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x60\xdb\x60\xd7\x00\x00\x00\x00\x00\x00\x5b\xf5\x4a\x50\x00\x00\x5c\x8d\x00\x00\x56\x5b\x00\x00\x00\x00\x60\xd9\x00\x00\x57\xfa\x00\x00\x00\x00\x00\x00\x4d\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe0\x60\xdc\x59\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe1\x00\x00\x00\x00\x60\xda\x60\xd8\x60\xde\x00\x00\x00\x00\x60\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xdd\x00\x00\x60\xe3\x00\x00\x00\x00\x00\x00\x53\xf6\x5c\xab\x5a\xea\x60\xe5\x55\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe6\x60\xe7\x00\x00\x00\x00\x00\x00", /* 5680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe8\x60\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xbe\x56\xe6\x00\x00\x00\x00\x00\x00\x60\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xeb\x00\x00\x00\x00\x60\xec\x00\x00\x00\x00\x54\x95\x56\x64\x00\x00\x60\xed\x4e\x78\x5c\xb5\x59\xf1\x60\xee\x57\x65\x00\x00\x4b\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf0\x00\x00\x5a\xaf\x00\x00\x00\x00\x50\xa6\x4a\xd0\x00\x00\x00\x00\x57\xa6\x60\xef\x00\x00\x00\x00\x00\x00\x60\xf1\x4d\x6c\x00\x00\x00\x00\x4d\x9b\x57\x5c\x60\xf2", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x53\xd3\x60\xf3\x00\x00\x5a\xb1\x00\x00\x54\xa5\x60\xf5\x60\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf6\x00\x00\x00\x00\x57\x61\x00\x00\x00\x00\x00\x00\x55\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd9\x5e\x77\x5e\x79\x00\x00\x5e\x78\x4d\x88\x5e\x7c\x5e\x7d\x4b\x78\x00\x00\x00\x00\x5e\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7b\x4a\x41\x5e\x7f\x00\x00\x00\x00\x4e\x99\x00\x00\x5b\xb6\x00\x00\x5e\x81\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf8\x00\x00\x00\x00\x4c\x5b\x00\x00\x5e\x70\x56\xad\x50\x52\x4e\x55\x5c\x99\x50\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8a\x00\x00\x00\x00\x4e\xe0\x56\xb2\x5e\x7e\x48\xd2\x57\xea\x4c\x78\x5c\x59\x53\xc1\x00\x00\x00\x00\x50\xa3\x00\x00\x56\xb8\x00\x00\x5e\x88\x5e\x82\x53\xb9\x5e\x84\x00\x00\x5e\x89\x00\x00\x53\x98\x00\x00\x00\x00\x00\x00\x5e\x8b\x00\x00\x00\x00\x5e\x8a\x50\x60\x00\x00\x00\x00\x00\x00\x5e\x87\x5e\x86\x00\x00\x00\x00\x00\x00", /* 5780 */ "\x00\x00\x00\x00\x4a\xb8\x50\xab\x51\xa1\x5e\x83\x5e\x85\x00\x00\x00\x00\x00\x00\x00\x00\x58\xcc\x5e\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdc\x5e\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x94\x5e\x72\x4d\x58\x5a\xaa\x5e\x8d\x00\x00\x50\x71\x5e\x91\x00\x00\x5e\x71\x00\x00\x4b\x87\x00\x00\x5e\x8c\x50\x86\x00\x00\x00\x00\x00\x00\x5e\x8f\x00\x00\x5e\x92\x00\x00\x00\x00\x00\x00\x5e\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x41\x48\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf0\x00\x00\x00\x00\x4a\x67\x5e\x90\x00\x00\x00\x00\x5e\x99\x00\x00\x53\xd1\x5e\x95\x00\x00\x00\x00\x5e\x96\x5e\x98\x5e\x97\x00\x00\x00\x00\x5e\x9f\x00\x00\x5a\x93\x49\xb9\x00\x00\x00\x00\x00\x00\x5e\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa3\x00\x00\x5e\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9b\x00\x00\x00\x00\x00\x00\x5e\x9d\x53\x81\x4e\x9a\x00\x00\x00\x00\x5e\xa2\x00\x00\x00\x00", /* 5800 */ "\x5e\xa4\x00\x00\x56\xc2\x00\x00\x00\x00\x00\x00\x4b\xd0\x5f\x60\x00\x00\x00\x00\x00\x00\x5e\xa0\x00\x00\x5e\xa1\x00\x00\x00\x00\x00\x00\x54\x55\x00\x00\x00\x00\x00\x00\x4b\xe8\x00\x00\x00\x00\x00\x00\x5e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa5\x00\x00\x5e\xa8\x49\x44\x00\x00\x00\x00\x4b\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x9b\x66\x94\x00\x00\x00\x00\x00\x00\x56\x7c\x00\x00\x00\x00\x56\x9f\x00\x00\x00\x00\x00\x00\x56\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xed\x5e\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x73\x00\x00", /* 5880 */ "\x5e\xae\x5e\xab\x00\x00\x4f\xb2\x00\x00\x55\xfa\x00\x00\x00\x00\x00\x00\x5e\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6a\x52\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x5d\x5e\xad\x00\x00\x00\x00\x00\x00\x5a\xf5\x58\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xaa\x4b\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x74\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7a\x00\x00\x00\x00\x00\x00\x5e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x76\x00\x00\x00\x00\x00\x00\x4d\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbe\x54\xc8\x00\x00\x5c\x53\x00\x00\x55\x9a\x00\x00\x00\x00\x50\x67\x00\x00\x00\x00\x4d\xf7\x00\x00\x00\x00\x59\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x61\xb9\x00\x00\x4a\xa5\x00\x00\x00\x00\x49\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb3\x00\x00\x58\x64\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x88\x58\x46\x57\x83\x00\x00\x00\x00\x5d\x8e\x4b\xdf\x00\x00\x59\xb8\x00\x00\x00\x00\x4d\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb8\x61\xb6\x00\x00\x4a\xf2\x00\x00\x56\xeb\x56\xaa\x4c\x93\x00\x00\x5c\xb1\x59\x8c\x4d\xba\x00\x00\x55\xa6\x00\x00\x00\x00\x57\x57\x00\x00\x00\x00\x59\xc3\x50\x85\x4e\xcf\x4b\xe0\x00\x00\x5f\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc5\x5e\x5c\x00\x00\x59\x79\x00\x00\x00\x00\x53\xe5\x52\xcd\x4c\x8f\x00\x00\x4c\x7c\x00\x00\x00\x00\x50\x9d\x5c\x81\x00\x00\x53\xf4\x00\x00\x00\x00\x49\x5c\x5f\xc7\x4f\x51\x56\xd6\x5f\xc9\x00\x00\x5f\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8d\x00\x00\x55\x7d\x00\x00\x00\x00\x48\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4e\x53\x4b\x00\x00\x52\xcb\x00\x00\x4e\xe8\x56\x9e\x00\x00\x00\x00\x00\x00\x4d\xc2\x00\x00\x00\x00", /* 5980 */ "\x00\x00\x63\x9a\x54\xe6\x63\x9b\x57\x9e\x00\x00\x5c\x51\x4c\xbd\x51\xe7\x00\x00\x54\xd0\x00\x00\x00\x00\x63\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc9\x4e\xca\x00\x00\x00\x00\x59\x9e\x63\xa0\x00\x00\x52\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9f\x63\xa4\x57\x77\x00\x00\x00\x00\x4c\x61\x63\x9d\x63\x9e\x63\xa2\x00\x00\x00\x00\x52\xdc\x63\xa7\x00\x00\x00\x00\x63\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x63\x00\x00\x53\xdd\x00\x00\x00\x00\x63\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb6\x00\x00\x00\x00\x00\x00\x63\xa1\x55\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x84\x4d\x63\x63\xa5\x58\xd4\x57\xae\x00\x00\x00\x00\x63\xa8\x63\xaf\x00\x00\x59\xa5\x00\x00\x4f\x4a\x63\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xae\x00\x00\x50\xd0\x00\x00\x00\x00\x59\xcb\x00\x00\x00\x00\x00\x00\x4e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb0\x00\x00\x59\xf5\x00\x00\x00\x00\x00\x00\x5c\x6b", /* 5a00 */ "\x00\x00\x57\x9f\x00\x00\x57\x7e\x51\xa5\x63\xaa\x63\xab\x4f\x5f\x63\xad\x63\xb2\x00\x00\x00\x00\x63\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb5\x00\x00\x63\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x52\xee\x00\x00\x00\x00\x00\x00\x52\xc7\x00\x00\x00\x00\x4f\xe9\x55\x90\x00\x00\x00\x00\x63\xb6\x00\x00\x4b\xef\x00\x00\x00\x00\x00\x00\x52\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8a\x63\xb3\x00\x00\x63\xb4\x00\x00\x54\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbc\x00\x00\x00\x00\x00\x00\x63\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc4\x00\x00\x00\x00\x57\x92\x63\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb9\x00\x00\x00\x00\x50\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x44\x63\xbe\x55\x95\x63\xc2\x00\x00\x00\x00\x63\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf5", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x64\x63\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc6\x58\x51\x00\x00\x66\x95\x00\x00\x00\x00\x63\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc4\x00\x00\x00\x00\x4e\xdd\x55\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb4\x00\x00\x00\x00\x58\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc7\x00\x00\x63\xc8\x00\x00\x63\xcd\x00\x00\x63\xcf\x00\x00\x00\x00\x00\x00\x63\xd0\x00\x00\x00\x00\x00\x00\x63\xca\x4b\x75\x00\x00\x63\xcb\x00\x00\x00\x00\x63\xce\x00\x00\x00\x00\x52\xda\x00\x00\x63\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd3\x63\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd4\x00\x00\x5d\x99\x00\x00\x00\x00\x63\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x73\x63\xdc\x00\x00\x63\xdd\x50\x77\x5a\xcf\x00\x00\x5c\x76\x4a\xe5\x56\x90\x63\xd9\x5c\xc2\x5c\x6e\x58\xa1\x00\x00\x52\x6f\x00\x00\x00\x00\x63\xde\x4e\xbd\x4d\x62\x63\xda\x59\x47\x00\x00\x00\x00\x4d\xa1\x51\xce\x00\x00\x5c\xaa\x00\x00\x00\x00\x00\x00\x55\xea\x63\x8f\x00\x00\x63\xdb\x00\x00\x4c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe5\x00\x00\x00\x00\x52\xf4\x00\x00\x00\x00", /* 5b80 */ "\x63\x52\x52\xfd\x00\x00\x56\x9d\x63\x53\x5b\x4c\x00\x00\x5a\x8f\x55\xd7\x48\xb1\x00\x00\x56\x6e\x57\x8b\x00\x00\x00\x00\x4d\xe9\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x63\x54\x00\x00\x5c\x7a\x4d\x79\x5b\xe5\x4b\xa7\x57\x91\x59\xca\x49\x46\x55\xb4\x00\x00\x4a\x89\x55\x94\x50\x6d\x58\xfa\x55\xd1\x63\x56\x4e\x62\x00\x00\x00\x00\x00\x00\x58\x7c\x4d\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd6\x00\x00\x00\x00\x4d\xa5\x59\x88\x58\x9d\x4e\xd1\x00\x00\x63\x57\x54\xdc\x00\x00\x00\x00\x00\x00\x50\x8e\x49\x97\x56\x7e\x00\x00\x00\x00\x4e\xc4\x00\x00\x4e\xc3\x59\xf9\x52\x7c\x50\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xba\x00\x00\x00\x00\x00\x00\x52\x62\x00\x00\x4d\xad\x5a\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7e\x52\xae\x49\xeb\x00\x00\x4d\x71\x00\x00\x00\x00\x63\x5b\x51\x68\x00\x00\x00\x00\x5b\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5c\x00\x00\x63\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xe6\x4b\xd3\x56\x62\x59\x50\x4b\x5c\x00\x00\x00\x00\x55\xd8", /* 5c00 */ "\x00\x00\x4c\x83\x00\x00\x00\x00\x55\x85\x00\x00\x4f\x4b\x00\x00\x00\x00\x57\xbd\x5c\x91\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa0\x00\x00\x55\x79\x00\x00\x00\x00\x4b\xfa\x63\xd7\x4e\xe1\x00\x00\x4a\x5e\x00\x00\x55\x70\x00\x00\x63\xd8\x4a\x42\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcb\x00\x00\x5a\x68\x5f\xcc\x00\x00\x59\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcc\x00\x00\x00\x00\x5f\xce\x00\x00\x00\x00\x00\x00\x55\xab\x59\xfb\x4a\x7f\x63\x8b\x52\xe0\x4f\xa0\x57\xb1\x52\xf1\x4f\xd5\x53\xa7\x49\xe2\x00\x00\x00\x00\x4f\xd2\x00\x00\x00\x00\x54\x9d\x56\xea\x4f\x8d\x57\xdc\x00\x00\x00\x00\x55\xb9\x53\xc0\x63\x8d\x58\xbb\x00\x00\x00\x00\x00\x00\x5b\x59\x00\x00\x00\x00\x00\x00\x63\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf3\x00\x00\x57\x60\x51\xc4\x00\x00\x63\x90\x00\x00\x51\xc3\x63\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x99\x57\x6d\x00\x00\x55\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd8\x61\x48\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8d", /* 5c80 */ "\x00\x00\x56\x8b\x53\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x4c\x00\x00\x00\x00\x00\x00\x61\x47\x61\x49\x00\x00\x00\x00\x61\x4a\x61\x4f\x00\x00\x00\x00\x49\xec\x00\x00\x61\x4b\x4c\xd9\x61\x4d\x61\x4e\x61\x50\x4b\x5a\x61\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x53\x61\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x72\x00\x00\x61\x56\x61\x55\x51\x8c\x00\x00\x00\x00\x00\x00\x61\x57\x00\x00\x5a\xbf\x00\x00\x61\x52\x00\x00\x61\x5a\x48\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x61\x54\x00\x00\x50\x9a\x00\x00\x61\x59\x00\x00\x00\x00\x61\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5f\x00\x00\x00\x00\x61\x5d\x61\x5f\x51\xcc\x00\x00\x4b\xea\x00\x00\x5a\x99\x00\x00\x00\x00\x54\x6d\x00\x00\x00\x00\x4c\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xfd\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x61\x60\x61\x61\x00\x00\x00\x00\x61\x67\x4a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xdd\x00\x00\x59\x62\x00\x00\x00\x00\x00\x00\x00\x00\x61\x68\x00\x00\x00\x00\x61\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x65\x00\x00\x61\x63\x61\x62\x00\x00\x49\x60\x00\x00\x00\x00\x00\x00\x5b\x58\x61\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6c\x61\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x9b\x00\x00\x00\x00\x61\x73\x61\x72\x54\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x69\x00\x00\x00\x00\x61\x6e\x00\x00\x61\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x74\x00\x00\x61\x71\x61\x6d\x00\x00\x00\x00\x61\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x61\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d80 */ "\x00\x00\x00\x00\x61\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x77\x00\x00\x00\x00\x00\x00\x61\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7d\x00\x00\x4a\xa7\x5b\xdc\x00\x00\x00\x00\x59\x52\x4a\x52\x00\x00\x00\x00\x4d\x44\x5c\x94\x54\x69\x4f\xdd\x4d\x4e\x00\x00\x57\xd6\x00\x00\x00\x00\x49\xed\x5e\x6f\x00\x00\x4e\xb9\x59\xd0\x56\x68\x48\xcc\x00\x00\x00\x00\x58\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x84\x4f\x8e\x00\x00", /* 5e00 */ "\x00\x00\x49\x72\x55\xcf\x49\xbb\x00\x00\x56\x47\x4c\x4b\x00\x00\x55\xa5\x00\x00\x00\x00\x00\x00\x58\x43\x00\x00\x00\x00\x60\xf7\x5b\x6a\x60\xfa\x00\x00\x00\x00\x60\xf9\x53\x61\x56\xfa\x00\x00\x51\x51\x60\xf8\x5b\xe2\x49\xae\x5b\xc3\x4b\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf7\x5b\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x4f\x48\xee\x00\x00\x00\x00\x60\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x41\x4a\x43\x00\x00\x00\x00\x60\xfc\x60\xfd\x52\x51\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7d\x00\x00\x61\x42\x4c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x43\x52\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x44\x00\x00\x00\x00\x61\x45\x00\x00\x00\x00\x61\x46\x4a\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc8\x53\xbc\x52\xe9\x00\x00\x49\xa1\x00\x00\x58\xd1\x00\x00\x64\x7b\x4e\x63\x5a\x77\x5a\x64\x00\x00\x4d\x84", /* 5e80 */ "\x61\xce\x00\x00\x00\x00\x00\x00\x5c\x4f\x00\x00\x54\x8d\x49\x73\x00\x00\x00\x00\x4a\xb1\x61\xd0\x00\x00\x00\x00\x00\x00\x58\xf1\x51\xad\x61\xcf\x00\x00\x50\x83\x5a\x46\x4b\x77\x61\xd1\x4b\x8b\x00\x00\x52\x8e\x4c\xfc\x00\x00\x4c\xad\x00\x00\x53\x73\x4c\x6f\x61\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd2\x4b\xc7\x5c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd7\x00\x00\x61\xd5\x55\xfb\x50\x55\x5a\x59\x61\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4e\x50\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xda\x61\xd9\x50\xa9\x00\x00\x00\x00\x51\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdc\x00\x00\x61\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x68\x00\x00\x59\x73\x57\x42\x00\x00\x00\x00\x4f\x48\x00\x00\x00\x00\x00\x00\x5f\xc2\x5c\xa4", /* 5f00 */ "\x50\x4a\x5e\x6d\x59\xeb\x53\xf9\x53\x4a\x00\x00\x00\x00\x00\x00\x5f\xc3\x00\x00\x49\x77\x60\x4e\x00\x00\x00\x00\x00\x00\x55\xbc\x00\x00\x60\x51\x00\x00\x4d\x4d\x00\x00\x59\xfc\x00\x00\x4c\xa4\x4d\xea\x00\x00\x00\x00\x4a\x7a\x00\x00\x00\x00\x00\x00\x4b\x7c\x5b\x65\x00\x00\x00\x00\x00\x00\x00\x00\x52\x76\x58\x72\x4e\x41\x00\x00\x63\x94\x63\x93\x00\x00\x00\x00\x63\x95\x00\x00\x57\x85\x00\x00\x54\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4f\x54\x5f\x00\x00\x63\x97\x00\x00\x00\x00\x00\x00\x66\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x87\x00\x00\x4d\x8a\x4b\x51\x00\x00\x51\xbb\x63\x89\x63\x88\x63\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x59\xcc\x00\x00\x00\x00\x00\x00\x61\x8b\x58\xcd\x00\x00\x57\x4e\x00\x00\x59\x86\x00\x00\x00\x00\x49\xc9\x49\x8c\x00\x00\x49\x93\x53\x8e\x00\x00\x00\x00\x5b\x63\x5a\x50\x00\x00\x61\x7c\x00\x00\x00\x00\x00\x00\x61\x7d\x00\x00\x59\xda\x00\x00\x4a\x59\x49\x6b\x00\x00\x00\x00\x00\x00", /* 5f80 */ "\x57\x9a\x5b\x98\x61\x7e\x00\x00\x4f\xb5\x4a\xfc\x00\x00\x61\x7f\x4d\xdb\x61\x81\x4e\x52\x51\xc8\x61\x82\x00\x00\x00\x00\x00\x00\x58\xeb\x00\x00\x57\x5d\x00\x00\x00\x00\x61\x83\x00\x00\x4b\x63\x53\x67\x61\x84\x00\x00\x00\x00\x61\x85\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x86\x00\x00\x59\x4d\x00\x00\x00\x00\x61\x87\x57\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x88\x00\x00\x4b\x62\x00\x00\x00\x00\x00\x00\x00\x00\x61\x89\x4e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc3\x61\xdf\x49\x78\x59\xe3\x00\x00\x00\x00\x61\xe0\x00\x00\x00\x00\x4e\xc8\x54\xcb\x00\x00\x61\xe2\x66\xfd\x66\xfc\x60\x4f\x00\x00\x00\x00\x00\x00\x61\xe1\x5b\xbd\x57\x9d\x52\x46\x00\x00\x00\x00\x00\x00\x62\x63\x00\x00\x00\x00\x5b\xd1\x61\xe6\x00\x00\x00\x00\x61\xe7\x00\x00\x00\x00\x5a\x67\x00\x00\x00\x00\x61\xeb\x50\x8d\x00\x00\x61\xec\x61\xe4\x00\x00\x00\x00\x4a\x60\x00\x00\x00\x00\x00\x00\x52\xed\x00\x00\x00\x00\x61\xed\x00\x00\x00\x00\x58\xc2\x00\x00\x4d\xf5\x61\xe8\x4c\x7e", /* 6000 */ "\x4e\x53\x56\xab\x56\x6b\x61\xe3\x61\xe5\x61\xe9\x61\xea\x00\x00\x00\x00\x00\x00\x61\xf6\x00\x00\x00\x00\x61\xf3\x5a\xf4\x61\xf2\x00\x00\x00\x00\x53\x4d\x00\x00\x5b\x9b\x53\x62\x49\xbf\x00\x00\x00\x00\x61\xee\x00\x00\x61\xf1\x51\x4f\x56\x5c\x00\x00\x00\x00\x4b\x41\x61\xf8\x00\x00\x00\x00\x00\x00\x4e\xb0\x61\xf0\x58\xd3\x5a\xb8\x61\xf4\x4d\x76\x61\xf5\x00\x00\x00\x00\x00\x00\x54\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x7c\x67\x41\x00\x00\x00\x00\x61\xf7\x00\x00\x67\x45\x61\xfd\x55\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x55\x00\x00\x4e\x70\x00\x00\x00\x00\x50\x76\x00\x00\x4d\xe2\x00\x00\x00\x00\x56\x41\x00\x00\x00\x00\x00\x00\x67\x46\x67\x43\x00\x00\x00\x00\x67\x42\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x76\x67\x47\x58\xf3\x00\x00\x00\x00\x67\x44\x4d\xdd\x4b\xf6\x62\x41\x4b\xb1\x56\xf0\x4d\x47\x00\x00\x58\x42\x54\x41\x00\x00\x00\x00\x50\x72\x00\x00\x00\x00\x4b\xf0\x00\x00\x61\xf9\x61\xfa\x61\xfc\x61\xfb\x52\xd4\x62\x42\x00\x00\x5a\x61", /* 6080 */ "\x00\x00\x00\x00\x00\x00\x62\x47\x54\x64\x00\x00\x00\x00\x00\x00\x00\x00\x58\x44\x00\x00\x00\x00\x62\x49\x4d\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x62\x48\x00\x00\x4e\x7a\x00\x00\x62\x43\x00\x00\x00\x00\x00\x00\x62\x44\x62\x4a\x00\x00\x62\x46\x00\x00\x57\xf1\x5a\x66\x00\x00\x00\x00\x4e\x5c\x00\x00\x00\x00\x5a\xc2\x00\x00\x52\xf9\x00\x00\x00\x00\x67\x48\x58\xfb\x62\x45\x00\x00\x52\x96\x00\x00\x62\x4d\x49\x4f\x00\x00\x62\x52\x00\x00\x00\x00\x00\x00\x4e\xc1\x00\x00\x00\x00\x62\x4c\x4b\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8a\x62\x50\x00\x00\x00\x00\x00\x00\x4f\xa9\x57\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x94\x00\x00\x00\x00\x00\x00\x56\xe7\x00\x00\x00\x00\x62\x4f\x00\x00\x62\x51\x00\x00\x58\x47\x62\x4e\x00\x00\x57\xa8\x4e\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8c\x4f\xe4\x49\xd1\x4a\x6d\x00\x00\x49\x59\x62\x4b\x49\xd0\x4b\x4c\x4d\x7f\x4b\xe7\x00\x00\x00\x00\x58\x8c\x62\x57\x00\x00\x4e\x6c\x00\x00\x00\x00\x54\xc6\x58\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6100 */ "\x62\x58\x4a\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x49\x00\x00\x5a\x9b\x5a\x85\x00\x00\x00\x00\x00\x00\x67\x4a\x62\x59\x59\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x55\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xcf\x62\x53\x00\x00\x00\x00\x62\x56\x4c\x7f\x00\x00\x62\x54\x50\xa1\x00\x00\x00\x00\x00\x00\x62\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc7\x00\x00\x62\x5b\x00\x00\x4e\x65\x00\x00\x55\x98\x00\x00\x00\x00\x55\x86\x00\x00\x00\x00\x00\x00\x52\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x51\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x7b\x50\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5c\x00\x00\x50\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x90\x00\x00\x00\x00\x5a\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5f\x4d\xa8\x67\x4c\x00\x00\x00\x00\x62\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb5\x00\x00\x00\x00\x00\x00\x4b\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb7\x00\x00\x48\xc2\x67\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4f\x50\xc0\x00\x00\x62\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb1", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x50\x00\x00\x4c\xe9\x00\x00\x57\xeb\x65\xa6\x58\xe6\x55\xf8\x54\xd5\x58\x57\x4a\x69\x57\xd1\x4f\x85\x00\x00\x00\x00\x62\x7e\x4e\x93\x65\xa7\x5b\x5d\x00\x00\x53\xdc\x65\xa8\x00\x00\x00\x00\x00\x00\x65\xa9\x00\x00\x65\xab\x65\xaa\x00\x00\x65\xad\x65\xac\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x78\x00\x00\x65\xae\x00\x00\x51\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc0\x4a\xf6\x00\x00\x00\x00\x4e\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe5\x66\xe4\x4c\x5f\x56\x9a\x49\x83\x00\x00\x66\xe6\x00\x00\x00\x00\x00\x00\x55\x68\x66\xe7\x66\xe8\x00\x00\x55\xd5\x5f\xcf\x49\xc4\x5a\xf9\x00\x00\x00\x00\x53\xca\x48\xc6\x4a\xf1\x54\xd2\x00\x00\x00\x00\x00\x00\x57\x70\x00\x00\x00\x00\x50\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x7b\x00\x00\x00\x00\x54\x44\x5b\xb3\x00\x00\x50\xa8\x5f\xd0\x55\x48\x59\x90\x53\x44\x48\xe6\x4a\x56\x54\xc4\x00\x00\x00\x00\x48\xe1\x00\x00\x00\x00\x4c\x97\x00\x00\x00\x00\x53\x9b\x00\x00\x00\x00\x4b\xf2\x00\x00\x5b\x72\x4a\x70", /* 6280 */ "\x4e\xbb\x00\x00\x00\x00\x00\x00\x4a\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf0\x48\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd5\x55\xe2\x5c\x45\x00\x00\x57\x56\x4b\xb5\x50\x59\x5b\x7b\x00\x00\x4c\xa6\x53\x77\x00\x00\x00\x00\x00\x00\x5f\xd1\x50\x79\x51\xd4\x54\x60\x00\x00\x4e\x44\x49\x48\x00\x00\x00\x00\x53\x8b\x00\x00\x00\x00\x53\x9c\x56\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x49\x47\x00\x00\x00\x00\x00\x00\x4b\x76\x00\x00\x00\x00\x00\x00\x52\xa7\x00\x00\x5f\xd2\x59\x5a\x4a\x8a\x00\x00\x52\x93\x00\x00\x00\x00\x4c\x98\x00\x00\x5b\xf3\x4b\x43\x49\xef\x52\xb3\x52\xe8\x50\xac\x5f\xd3\x00\x00\x48\xe7\x53\x64\x51\x81\x00\x00\x4d\x75\x00\x00\x4f\xdb\x57\x78\x48\xcd\x00\x00\x57\x6f\x5f\xd5\x4f\xcf\x5c\x5e\x5f\xd4\x5b\x70\x48\xdc\x00\x00\x00\x00\x52\xe1\x00\x00\x00\x00\x51\xa2\x4e\xef\x00\x00\x5a\x55\x50\xb8\x53\x41\x49\xa5\x5a\xf0\x00\x00\x00\x00\x50\xa7\x55\xc2\x5f\xd6\x5b\x9d\x00\x00\x4d\x50\x00\x00\x54\xac\x56\x49\x00\x00\x5f\xd8\x50\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x53\xb3\x5c\x47\x55\xaf\x52\xc2", /* 6300 */ "\x00\x00\x4a\x76\x4d\x72\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb7\x65\xfb\x48\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x50\x87\x00\x00\x00\x00\x56\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x57\x7a\x00\x00\x00\x00\x00\x00\x5b\xbe\x51\xcd\x00\x00\x57\xcd\x56\xa1\x58\xad\x52\xd2\x4b\x52\x5f\xd7\x5b\x96\x4e\xb6\x4e\x73\x00\x00\x00\x00\x48\xa3\x00\x00\x53\x52\x4a\xeb\x00\x00\x00\x00\x00\x00\x5b\x92\x00\x00\x00\x00\x65\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xd9\x57\x46\x00\x00\x00\x00\x57\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe5\x5f\xdb\x00\x00\x57\x51\x50\xa5\x00\x00\x00\x00\x5c\x5d\x00\x00\x5f\xda\x48\xc5\x4d\xb3\x55\x73\x52\xf2\x4f\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xcb\x56\x91\x00\x00\x4e\xf0\x4e\x5b\x4b\x57\x00\x00\x00\x00\x00\x00\x53\x96\x00\x00\x5f\xe5\x00\x00\x00\x00\x00\x00\x5f\xe2\x4f\xdc\x00\x00\x00\x00\x5f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb6\x4f\x7d\x00\x00\x00\x00\x5f\xdf\x52\xec\x00\x00\x00\x00\x00\x00\x00\x00", /* 6380 */ "\x58\x66\x00\x00\x4b\x81\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xdd\x55\xd9\x4b\x95\x5f\xe4\x00\x00\x5b\x66\x00\x00\x5f\xe0\x56\xcc\x53\xfd\x00\x00\x53\x65\x00\x00\x00\x00\x00\x00\x59\xb3\x00\x00\x4f\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd2\x00\x00\x56\xbc\x4a\x58\x00\x00\x4f\x73\x00\x00\x50\x78\x57\x66\x59\x7a\x4a\xea\x00\x00\x5f\xe3\x5f\xdc\x5f\xe6\x00\x00\x65\xfd\x00\x00\x00\x00\x51\xaf\x5f\xe1\x00\x00\x00\x00\x5b\xbf\x4b\x47\x00\x00\x49\xf3\x00\x00\x5f\xe7\x00\x00\x5f\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xec\x00\x00\x5f\xf0\x00\x00\x00\x00\x54\xdf\x00\x00\x00\x00\x00\x00\x5c\x82\x5f\xee\x52\x89\x56\xe0\x00\x00\x49\xe4\x00\x00\x00\x00\x00\x00\x59\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xed\x00\x00\x5f\xea\x57\xd4\x00\x00\x4a\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4b\x4f\xbd\x00\x00\x00\x00\x4f\x72\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe8\x00\x00\x5a\xad\x00\x00\x5f\xdd\x00\x00\x5f\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x50\xbe\x00\x00\x5f\xeb", /* 6400 */ "\x49\xf2\x4c\xe8\x51\xa6\x00\x00\x00\x00\x4f\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf4\x5f\xf7\x00\x00\x00\x00\x49\xaa\x4a\xa3\x00\x00\x00\x00\x4a\xe9\x55\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf5\x56\x71\x00\x00\x4c\xe2\x00\x00\x5f\xf6\x5f\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf8\x00\x00\x00\x00\x00\x00\x56\xc1\x00\x00\x48\xe0\x4a\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xae\x00\x00\x00\x00\x49\xea\x00\x00\x66\x41\x00\x00\x5f\xf3\x00\x00\x00\x00\x55\x84\x5f\xf2\x48\xd9\x59\xa0\x49\x98\x00\x00\x56\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xef\x00\x00\x56\x44\x00\x00\x00\x00\x00\x00\x5b\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xdc\x00\x00\x52\xa5\x00\x00\x00\x00\x00\x00\x5f\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9f\x52\xa0\x60\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6480 */ "\x00\x00\x00\x00\x51\x6c\x00\x00\x5f\xfb\x4f\xee\x00\x00\x53\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x65\x54\xf5\x00\x00\x00\x00\x56\x5a\x5f\xfd\x00\x00\x00\x00\x60\x44\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x57\x00\x00\x00\x00\x00\x00\x00\x00\x51\x63\x00\x00\x00\x00\x54\x6b\x49\xa4\x4a\xe8\x00\x00\x5c\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xeb\x00\x00\x60\x42\x60\x43\x00\x00\x60\x45\x00\x00\x4d\xb2\x00\x00\x00\x00\x00\x00\x60\x46\x00\x00\x50\xdd\x00\x00\x00\x00\x55\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xd8\x54\x87\x00\x00\x60\x47\x00\x00\x54\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x60\x48\x66\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x73\x00\x00\x00\x00\x00\x00\x60\x4a\x00\x00\x60\x49\x00\x00\x49\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6500 */ "\x53\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xef\x00\x00\x00\x00\x60\x4d\x5b\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb6\x66\x56\x55\xd4\x00\x00\x5c\xfb\x4c\xc3\x00\x00\x4d\x45\x00\x00\x00\x00\x4c\x65\x5b\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6a\x00\x00\x00\x00\x58\xa6\x6a\xcc\x00\x00\x00\x00\x4b\x70\x00\x00\x00\x00\x52\x95\x00\x00\x4f\xc7\x00\x00\x00\x00\x00\x00\x66\x57\x48\xbc\x00\x00\x00\x00\x4f\x6c\x00\x00\x51\x52\x00\x00\x49\x76\x4a\x48\x00\x00\x00\x00\x00\x00\x4c\xd1\x55\x42\x00\x00\x00\x00\x4b\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x66\x58\x4f\xb3\x00\x00\x00\x00\x00\x00\x55\xfc\x00\x00\x54\x63\x00\x00\x5b\x9c\x00\x00\x00\x00\x4c\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc3\x00\x00\x00\x00\x00\x00\x5b\x4b\x49\x94\x00\x00\x00\x00\x00\x00\x66\xb2\x48\xde\x00\x00\x66\xb4\x00\x00\x00\x00\x00\x00\x4b\xb6\x00\x00\x51\x6f\x00\x00\x6b\x9b\x58\xb0\x00\x00\x00\x00\x5b\x86\x00\x00\x57\xd2\x00\x00\x00\x00\x4f\x90\x4a\x83\x00\x00\x4c\xaa\x00\x00\x5b\x56\x00\x00\x67\x5d\x00\x00\x4b\xce\x00\x00\x56\x59\x58\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x5d\x00\x00\x00\x00\x66\xb5\x55\xa8\x00\x00\x00\x00\x00\x00\x53\x74\x00\x00\x66\xb8\x66\xb7\x51\xc2\x66\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfc\x66\xb9\x00\x00\x66\xba\x5c\x86\x00\x00\x00\x00\x66\xbb\x00\x00\x00\x00\x00\x00\x66\xbc\x53\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xdd\x00\x00\x4e\xc7\x00\x00\x00\x00\x54\xd4\x4b\x49\x4f\xc8\x5b\xbb\x5a\xe6\x00\x00\x00\x00\x59\x4e\x58\xf0\x65\xb7\x65\xb8\x65\xb9\x4d\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb0\x50\x96\x00\x00\x00\x00\x57\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6600 */ "\x65\xbf\x00\x00\x48\xb9\x65\xbd\x00\x00\x00\x00\x50\xa4\x00\x00\x00\x00\x00\x00\x65\xba\x00\x00\x49\xfc\x00\x00\x52\x98\x4e\x89\x00\x00\x00\x00\x00\x00\x59\xd6\x57\xf3\x65\xbe\x00\x00\x00\x00\x00\x00\x65\xbb\x00\x00\x00\x00\x00\x00\x65\xc2\x00\x00\x58\xc6\x5a\x53\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb9\x00\x00\x52\x61\x5c\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x71\x00\x00\x55\xc6\x00\x00\x65\xc4\x00\x00\x00\x00\x65\xc3\x65\xc6\x65\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xe6\x00\x00\x58\x74\x00\x00\x00\x00\x65\xca\x00\x00\x4e\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9b\x55\x6e\x00\x00\x00\x00\x65\xcb\x00\x00\x00\x00\x55\x59\x58\x9f\x65\xc9\x5a\xcd\x65\xcc\x65\xce\x00\x00\x00\x00\x57\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc8\x00\x00\x65\xcd\x00\x00\x00\x00\x57\xed\x00\x00\x4e\x7e\x00\x00\x4a\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd4\x4f\xaf\x57\xf9\x00\x00\x00\x00\x00\x00\x54\x88\x00\x00\x4f\xa6\x65\xcf\x00\x00\x00\x00\x5b\xc6\x00\x00\x00\x00\x00\x00\x51\x60\x00\x00", /* 6680 */ "\x00\x00\x00\x00\x5a\xdc\x00\x00\x65\xd0\x00\x00\x00\x00\x58\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x55\xed\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4f\x48\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd2\x6a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x49\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xee\x00\x00\x65\xd5\x65\xd6\x53\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd7\x00\x00\x00\x00\x65\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xba\x00\x00\x54\x9b\x59\xb6\x4c\xfb\x00\x00\x00\x00\x65\xc1\x00\x00\x49\xdb\x00\x00\x00\x00\x51\xfb\x00\x00\x5a\xf7\x56\xe5", /* 6700 */ "\x5c\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc1\x5a\x70\x66\x63\x53\x94\x00\x00\x4c\x9f\x00\x00\x00\x00\x66\x74\x00\x00\x00\x00\x00\x00\x56\x57\x66\x7e\x00\x00\x50\xc9\x00\x00\x00\x00\x00\x00\x57\x9c\x00\x00\x4a\x4f\x00\x00\x53\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x9d\x00\x00\x52\xbd\x00\x00\x57\xb3\x52\xa8\x49\x5e\x5a\xfc\x00\x00\x55\xf4\x00\x00\x5b\xeb\x00\x00\x00\x00\x53\xd2\x4b\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x9b\x00\x00\x00\x00\x58\xdf\x00\x00\x00\x00\x55\x51\x00\x00\x5a\xd2\x54\xa7\x00\x00\x00\x00\x4c\xca\x00\x00\x64\xbd\x55\x5c\x00\x00\x00\x00\x64\xba\x00\x00\x50\xed\x58\xd2\x49\xc3\x4a\xe4\x00\x00\x64\xbb\x00\x00\x00\x00\x5b\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc4\x00\x00\x64\xbc\x55\xf7\x4c\xdb\x56\xf4\x00\x00\x00\x00\x00\x00\x50\xb3\x00\x00\x00\x00\x59\x8f\x64\xbe\x64\xc1\x00\x00\x00\x00\x4d\xbb\x00\x00\x49\x4d\x4f\x7c\x00\x00\x65\xbc\x64\xc2\x00\x00\x64\xc5\x00\x00\x64\xca\x00\x00\x00\x00\x00\x00\x00\x00\x64\xcb\x00\x00\x56\x69\x48\xe4", /* 6780 */ "\x00\x00\x4e\xaa\x00\x00\x00\x00\x4d\x59\x00\x00\x00\x00\x64\xc0\x00\x00\x57\x98\x00\x00\x64\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8e\x00\x00\x51\x76\x64\xc3\x00\x00\x52\x56\x00\x00\x4d\x9c\x5b\xa5\x64\xc7\x00\x00\x00\x00\x00\x00\x55\xdf\x5a\xe5\x00\x00\x64\xbf\x00\x00\x64\xc4\x64\xc6\x00\x00\x54\x59\x4c\x84\x00\x00\x64\xc8\x00\x00\x50\x7d\x64\xd1\x00\x00\x00\x00\x64\xd6\x00\x00\x64\xd4\x4e\xdb\x4e\xce\x64\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xdd\x00\x00\x64\xd9\x49\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd7\x52\xb2\x4c\xcb\x53\xe1\x54\xbd\x54\xe0\x00\x00\x00\x00\x00\x00\x64\xce\x64\xd3\x64\xd5\x00\x00\x4d\x92\x64\xd7\x5c\x96\x00\x00\x52\xfa\x00\x00\x64\xdb\x00\x00\x00\x00\x49\xe8\x00\x00\x00\x00\x00\x00\x64\xd0\x00\x00\x00\x00\x4e\xec\x00\x00\x00\x00\x50\x62\x64\xcc\x5b\xf8\x00\x00\x51\x99\x49\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xde\x00\x00\x55\xc0", /* 6800 */ "\x64\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x44\x00\x00\x49\x8b\x5b\x5b\x64\xcd\x64\xcf\x4b\xaf\x64\xd2\x00\x00\x64\xdc\x50\xb7\x00\x00\x55\xf6\x00\x00\x56\x48\x00\x00\x00\x00\x53\xdb\x50\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe8\x00\x00\x00\x00\x00\x00\x58\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf1\x5b\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xdf\x64\xe0\x00\x00\x00\x00\x00\x00\x59\x9a\x4d\xca\x4c\xf8\x00\x00\x00\x00\x4c\xf0\x5a\xd3\x64\xee\x00\x00\x64\xed\x64\xeb\x4d\x91\x56\xd1\x64\xe5\x57\xa5\x50\x93\x00\x00\x48\xb7\x64\xf0\x64\xef\x00\x00\x5c\x60\x00\x00\x64\xe3\x00\x00\x57\x49\x55\x43\x00\x00\x4e\x58\x4f\x7b\x64\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe1\x64\xe2\x64\xe4\x4b\x55\x64\xe6\x54\x65\x64\xea\x64\xec\x4f\x50\x5c\x4e\x00\x00\x64\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf4\x00\x00\x57\x50\x64\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6880 */ "\x00\x00\x51\x5a\x00\x00\x64\xe7\x00\x00\x52\x57\x48\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf3\x00\x00\x00\x00\x00\x00\x64\xf6\x00\x00\x00\x00\x00\x00\x4d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x52\x6e\x57\xdf\x50\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x56\x94\x00\x00\x56\xdc\x58\xb4\x00\x00\x00\x00\x55\xe0\x00\x00\x64\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xeb\x00\x00\x64\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7e\x00\x00\x53\xe4\x00\x00\x4d\x98\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf3\x00\x00\x00\x00\x5c\x78\x00\x00\x00\x00\x4e\xab\x00\x00\x53\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc3\x00\x00\x00\x00\x65\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4d\x00\x00\x65\x42\x50\xe1\x00\x00\x00\x00\x00\x00\x50\x63\x00\x00\x00\x00\x00\x00\x64\xfd\x4d\x77\x00\x00\x64\xfa\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x65\x44\x00\x00\x00\x00\x00\x00\x59\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x43\x00\x00\x5b\xb1\x5c\x55\x00\x00\x65\x47\x00\x00\x4f\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfb\x64\xfc\x00\x00\x00\x00\x00\x00\x65\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x76\x00\x00\x00\x00\x59\xab\x00\x00\x00\x00\x00\x00\x65\x52\x00\x00\x00\x00\x00\x00\x00\x00\x65\x49\x00\x00\x00\x00\x00\x00\x4a\xa9\x00\x00\x4a\xba\x00\x00\x00\x00\x65\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa7\x00\x00\x00\x00\x65\x45\x00\x00\x00\x00\x4a\x9f\x00\x00\x00\x00\x65\x4c\x50\xe2\x00\x00\x65\x4a\x00\x00\x00\x00\x65\x59\x00\x00\x00\x00\x65\x58\x00\x00\x00\x00\x00\x00\x00\x00\x65\x4e\x00\x00\x00\x00\x64\xf9\x00\x00\x00\x00\x65\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4c\x65\x51\x65\x5a\x00\x00\x00\x00\x51\xa4\x00\x00\x00\x00\x00\x00", /* 6980 */ "\x65\x4f\x00\x00\x4c\xc4\x00\x00\x65\x4d\x00\x00\x5a\x7c\x65\x54\x65\x55\x65\x57\x00\x00\x00\x00\x00\x00\x65\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xc5\x65\x65\x00\x00\x00\x00\x65\x50\x00\x00\x00\x00\x65\x5b\x48\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5c\x5b\x45\x00\x00\x00\x00\x65\x5e\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x65\x61\x00\x00\x00\x00\x51\x92\x00\x00\x00\x00\x54\xb5\x00\x00\x00\x00\x00\x00\x65\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x63\x00\x00\x65\x53\x00\x00\x65\x56\x00\x00\x4e\x51\x00\x00\x00\x00\x00\x00\x65\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf6\x00\x00\x00\x00\x00\x00\x65\x64\x65\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xda\x00\x00\x65\x68", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6b\x65\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x61\x00\x00\x52\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x78\x00\x00\x4d\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x65\x69\x00\x00\x5a\x43\x00\x00\x00\x00\x00\x00\x65\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x77\x65\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6f\x00\x00\x00\x00\x54\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x79\x4a\x68\x00\x00\x65\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x91\x00\x00\x00\x00\x00\x00\x65\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x76\x00\x00\x00\x00\x65\x7a\x00\x00\x00\x00\x00\x00", /* 6a80 */ "\x56\xb3\x00\x00\x00\x00\x00\x00\x58\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x75\x00\x00\x65\x7c\x65\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7d\x00\x00\x65\x7f\x52\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x57\x4a\xcd\x4e\x56\x58\xbf\x66\xa2\x00\x00\x00\x00\x53\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa3\x00\x00\x66\xa4\x53\xda\x00\x00\x00\x00\x00\x00\x50\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa5\x00\x00\x00\x00\x66\xa6\x58\xa9\x00\x00\x54\x58\x00\x00\x00\x00\x4c\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb8\x5b\x9e\x4a\xca\x49\xbc\x57\xe3\x53\xe6\x00\x00\x00\x00\x57\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf4\x00\x00\x56\x60\x4e\xde\x00\x00\x00\x00\x00\x00", /* 6b80 */ "\x00\x00\x65\x83\x65\x84\x59\x8b\x65\x86\x00\x00\x4a\xf8\x65\x85\x00\x00\x59\x53\x55\xe1\x49\xcf\x00\x00\x65\x89\x00\x00\x00\x00\x00\x00\x00\x00\x65\x87\x65\x88\x00\x00\x00\x00\x5b\xb2\x00\x00\x00\x00\x00\x00\x65\x8a\x65\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xae\x53\x59\x4b\xcd\x00\x00\x59\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8f\x00\x00\x4e\x79\x66\xb0\x00\x00\x00\x00\x59\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe2\x00\x00\x52\xb7\x00\x00\x52\x5f\x00\x00\x00\x00\x4b\xbd\x5c\xb8\x49\x68\x49\x6f\x49\x71\x53\x9f\x00\x00\x49\x70\x00\x00\x52\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x44\x4d\xc0\x00\x00\x00\x00\x00\x00\x56\xb9\x00\x00\x00\x00\x00\x00\x66\x45\x00\x00\x66\x47\x00\x00\x00\x00\x00\x00\x66\x48\x00\x00\x00\x00\x00\x00\x66\x46\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x49\x66\x4b\x66\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4c\x00\x00\x55\xce\x5c\xb4\x52\x92\x00\x00\x52\x45\x53\xf7\x66\x4d\x52\xc9\x00\x00\x66\x4e\x66\x4f\x66\x50\x4c\x75\x00\x00\x00\x00\x00\x00\x4c\x9b\x00\x00\x66\x51\x54\x83\x00\x00\x66\x53\x00\x00\x4d\xa3\x59\x96\x48\xb0\x66\x52\x66\x54\x00\x00\x00\x00\x00\x00\x4b\x4a\x51\xc7\x54\x89\x00\x00\x66\x55\x00\x00\x56\x4e\x62\x7f\x00\x00\x00\x00\x5a\x60\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x7b\x00\x00\x00\x00\x57\x41\x5b\xac\x54\x94\x00\x00\x00\x00\x00\x00\x5d\x81\x4e\x84\x00\x00\x4d\xb9\x62\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x4b\x00\x00\x00\x00\x00\x00\x62\x81\x55\x67\x00\x00\x4d\xb8\x00\x00\x00\x00\x00\x00\x59\x54\x62\x82\x54\xe9\x4d\x4f\x4f\x4d\x4a\x78\x57\xda\x00\x00\x00\x00\x56\xbf\x00\x00\x00\x00\x00\x00\x62\x89\x62\x8a\x57\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xac\x00\x00\x4e\xb2\x00\x00\x62\x8b\x00\x00\x62\x8c\x00\x00\x00\x00\x58\xd9\x00\x00\x00\x00\x00\x00\x53\xfa\x4c\x7a\x00\x00", /* 6c80 */ "\x00\x00\x54\x7f\x59\xc9\x57\xd5\x00\x00\x62\x85\x62\x8d\x00\x00\x55\x93\x4a\x61\x00\x00\x00\x00\x62\x88\x00\x00\x00\x00\x53\xe2\x62\x86\x00\x00\x00\x00\x67\x53\x62\x87\x00\x00\x00\x00\x00\x00\x00\x00\x55\x53\x00\x00\x53\x87\x00\x00\x00\x00\x00\x00\x4d\x55\x00\x00\x52\x5b\x00\x00\x62\x84\x53\x5d\x51\x44\x51\xd8\x49\xd6\x00\x00\x62\x8e\x4e\x46\x52\xac\x00\x00\x62\x91\x4f\xd9\x00\x00\x00\x00\x62\x9c\x62\x96\x4d\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x70\x5a\x6d\x00\x00\x5b\xcd\x5b\x73\x4d\x61\x5b\x54\x59\x78\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb8\x54\x97\x00\x00\x00\x00\x00\x00\x54\xa9\x49\xb3\x00\x00\x52\x7a\x00\x00\x00\x00\x00\x00\x62\x8f\x00\x00\x00\x00\x62\x9d\x62\x90\x4c\x48\x62\x98\x62\x95\x00\x00\x00\x00\x00\x00\x4c\x5a\x00\x00\x00\x00\x53\x42\x00\x00\x62\x97\x53\x7d\x49\xa7\x53\xfb\x00\x00\x52\xdf\x00\x00\x00\x00\x5c\x42\x00\x00\x50\xe0\x62\x9a\x00\x00\x00\x00\x62\x9b\x62\x9e\x56\xa8\x62\x94\x00\x00\x5a\x5e\x00\x00\x49\x63\x67\x54\x62\x92\x62\x93\x00\x00\x62\x99\x58\xb9\x53\xc2\x5a\xf2\x62\x9f\x00\x00", /* 6d00 */ "\x00\x00\x4f\x81\x00\x00\x00\x00\x62\xa6\x00\x00\x00\x00\x62\xa5\x00\x00\x00\x00\x00\x00\x59\x94\x62\xa2\x00\x00\x62\xa8\x00\x00\x00\x00\x00\x00\x54\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x58\x54\x00\x00\x62\xa7\x62\xad\x51\xe4\x00\x00\x00\x00\x4b\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x93\x00\x00\x62\xa1\x00\x00\x00\x00\x4d\xe8\x62\xa9\x00\x00\x00\x00\x62\xab\x00\x00\x00\x00\x4b\xfc\x5b\xdd\x62\xb1\x00\x00\x62\xac\x00\x00\x00\x00\x00\x00\x62\xa0\x00\x00\x4e\x8f\x57\x7d\x54\x42\x53\x69\x00\x00\x00\x00\x51\x98\x00\x00\x62\xa3\x00\x00\x54\x53\x4f\x4c\x4f\x5d\x62\xa4\x00\x00\x5c\x67\x49\xe1\x00\x00\x62\xaa\x4e\xc2\x62\xae\x00\x00\x4e\x8c\x62\xaf\x53\x48\x62\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x84\x50\x43\x00\x00\x62\xb9\x00\x00\x62\xb6\x00\x00\x62\xba\x00\x00\x00\x00\x62\xbc\x00\x00\x00\x00\x53\xd5\x00\x00\x00\x00\x4d\xc5\x50\xca\x00\x00\x00\x00\x00\x00\x4c\xa0\x62\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa0\x00\x00\x00\x00\x4d\xa2\x4f\x9f\x00\x00\x00\x00\x00\x00\x62\xbb\x00\x00\x00\x00\x00\x00", /* 6d80 */ "\x00\x00\x00\x00\x57\x5f\x00\x00\x00\x00\x52\xf8\x00\x00\x00\x00\x58\x9c\x55\x87\x00\x00\x00\x00\x5a\x5f\x00\x00\x58\x71\x00\x00\x00\x00\x62\xb2\x00\x00\x62\xb7\x62\xb8\x56\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xcd\x00\x00\x50\xd3\x62\xb4\x51\x50\x62\xb5\x57\xcf\x00\x00\x4e\x61\x4b\x73\x00\x00\x54\xf2\x4f\x47\x5b\x67\x55\x4c\x4c\xa1\x62\xc9\x00\x00\x00\x00\x62\xcb\x59\x64\x00\x00\x00\x00\x59\xb9\x00\x00\x00\x00\x4d\xac\x00\x00\x00\x00\x4d\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc2\x4b\x8e\x00\x00\x00\x00\x00\x00\x5c\x6d\x62\xbf\x58\x9e\x62\xbe\x00\x00\x00\x00\x00\x00\x51\x7c\x56\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd6\x00\x00\x56\xd3\x62\xc7\x00\x00\x00\x00\x00\x00\x62\xc6\x62\xc0\x00\x00\x62\xc3\x4b\x4d\x00\x00\x00\x00\x5a\x79\x00\x00\x62\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf8\x4a\xe2\x00\x00\x4e\x54\x00\x00\x00\x00\x55\x8f\x00\x00\x4a\xbd\x00\x00\x00\x00\x00\x00\x4e\x8d\x00\x00\x59\x6d\x00\x00\x56\xec\x67\x55\x00\x00\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x86\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa7\x00\x00\x62\xca\x5c\x75\x62\xc1\x00\x00\x4f\x45\x62\xc4\x00\x00\x00\x00\x5a\x87\x00\x00\x62\xc8\x55\x99\x00\x00\x00\x00\x62\xbd\x00\x00\x00\x00\x5a\x86\x00\x00\x00\x00\x54\x9f\x4b\xc8\x00\x00\x5a\xfb\x49\xb2\x62\xd6\x00\x00\x00\x00\x00\x00\x57\xc1\x00\x00\x62\xcc\x00\x00\x57\xbb\x00\x00\x4c\xda\x00\x00\x00\x00\x62\xd5\x00\x00\x50\x6a\x00\x00\x00\x00\x00\x00\x5a\x6e\x00\x00\x52\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x68\x62\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x64\x62\xce\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x62\xd4\x00\x00\x4d\xfd\x00\x00\x58\x87\x00\x00\x00\x00\x5b\x5f\x00\x00\x00\x00\x00\x00\x62\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcf\x00\x00\x00\x00\x62\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x86\x55\xa9", /* 6e80 */ "\x00\x00\x00\x00\x00\x00\x50\xa2\x00\x00\x4f\x46\x62\xd2\x00\x00\x00\x00\x4c\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe6\x5a\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xda\x00\x00\x00\x00\x00\x00\x51\x90\x00\x00\x00\x00\x62\xe8\x00\x00\x00\x00\x59\xe6\x00\x00\x00\x00\x62\xde\x00\x00\x62\xdf\x00\x00\x00\x00\x58\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7d\x00\x00\x62\xd9\x62\xd0\x00\x00\x62\xe4\x00\x00\x54\xdb\x62\xe2\x00\x00\x00\x00\x52\xe6\x62\xe1\x00\x00\x62\xe0\x00\x00\x00\x00\x00\x00\x4a\x9d\x62\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x82\x00\x00\x00\x00\x00\x00\x5c\x6c\x00\x00\x00\x00\x00\x00\x62\xe5\x00\x00\x4e\x4c\x00\x00\x5c\x72\x56\xce\x66\x99\x00\x00\x62\xe3\x00\x00\x00\x00\x4d\x97\x00\x00\x00\x00\x00\x00\x5b\xcc\x62\xd8\x62\xdb\x51\xf9\x62\xdd\x00\x00\x51\xca\x50\xc3\x51\xcf\x00\x00\x49\x96\x56\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x62\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x53\xae\x00\x00\x00\x00\x00\x00\x53\xe0\x00\x00\x00\x00\x62\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xa8\x00\x00\x00\x00\x00\x00\x50\xeb\x59\x7d\x62\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xad\x00\x00\x00\x00\x00\x00\x62\xec\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf5\x62\xf3\x51\xfd\x00\x00\x62\xdc\x00\x00\x62\xef\x00\x00\x55\xfd\x00\x00\x5b\x64\x00\x00\x00\x00\x62\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xea\x62\xeb\x00\x00\x00\x00\x00\x00\x62\xf1\x00\x00\x57\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6b\x00\x00\x00\x00\x00\x00\x54\x51\x00\x00\x51\xb9\x00\x00\x00\x00\x00\x00\x62\xe9\x00\x00\x00\x00\x00\x00\x51\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb5\x4a\x51\x00\x00\x00\x00\x00\x00\x62\xfa\x00\x00\x62\xf2\x00\x00\x00\x00\x00\x00\x62\xf9\x00\x00\x62\xfc\x00\x00\x62\xfb\x00\x00\x00\x00\x00\x00", /* 6f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6e\x00\x00\x00\x00\x00\x00\x4a\x5a\x62\xf6\x00\x00\x00\x00\x62\xf8\x62\xf7\x53\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc3\x00\x00\x00\x00\x63\x44\x00\x00\x00\x00\x63\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xa3\x00\x00\x63\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xfd\x49\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x48\x00\x00\x63\x49\x63\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x47\x63\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4b\x63\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4f\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x81\x00\x00\x00\x00\x63\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x91\x66\xe0\x52\x91\x00\x00\x4b\x66\x4e\x72\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8a\x5a\xed\x00\x00\x4f\xc3\x00\x00\x00\x00\x00\x00\x5c\x66\x00\x00\x5a\xd5\x49\xd2", /* 7080 */ "\x66\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc0\x00\x00\x00\x00\x00\x00\x51\xae\x4a\xb5\x00\x00\x00\x00\x00\x00\x59\x77\x00\x00\x00\x00\x00\x00\x4a\x54\x00\x00\x54\xb1\x50\x5b\x66\xbf\x00\x00\x00\x00\x5b\xca\x00\x00\x00\x00\x66\xbe\x66\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc4\x4f\xe5\x56\xbe\x53\x7a\x4f\xbb\x00\x00\x66\xc5\x00\x00\x49\x9f\x00\x00\x00\x00\x00\x00\x66\xc3\x5b\x48\x4b\x84\x00\x00\x66\xc1\x51\x56\x4a\x84\x00\x00\x00\x00\x66\xc2\x56\x58\x50\xc2\x56\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x51\x72\x00\x00\x66\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe5\x50\xd2\x00\x00\x5b\xf1\x00\x00\x00\x00\x00\x00\x59\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x4c\x53\x55\x75\x66\xc6\x4e\x83\x00\x00\x56\xcb\x4f\x9e\x54\xc7\x00\x00\x58\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x8a\x00\x00\x53\x8c\x00\x00\x00\x00\x00\x00\x4c\x8a\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x69\x4d\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc8\x00\x00\x00\x00\x66\xc9\x00\x00\x4e\x60\x66\xca\x00\x00\x66\xe1\x49\x5a\x4c\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xcb\x59\x87\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x54\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd2\x00\x00\x4e\x6d\x00\x00\x4e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xce\x00\x00\x55\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x5a\x00\x00\x66\xe2\x5b\x75\x66\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf2\x00\x00\x00\x00\x00\x00\x66\xd1\x66\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd3\x00\x00\x66\xd4\x00\x00\x00\x00\x55\x5f\x00\x00\x00\x00", /* 7180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x58\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x59\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x54\xda\x00\x00\x00\x00\x00\x00\x66\xd5\x57\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xeb\x66\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd8\x00\x00\x00\x00\x00\x00\x48\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd6\x00\x00\x66\xd7\x00\x00\x00\x00\x00\x00\x66\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdb\x59\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xda\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xee\x00\x00\x66\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdf\x00\x00\x5c\x46\x00\x00\x53\x60\x00\x00\x00\x00\x00\x00\x66\x5c\x48\xad\x00\x00\x00\x00\x00\x00\x4f\xf3\x4c\xb7\x59\xae\x48\xd5\x4b\x9a\x00\x00\x5c\xb2\x00\x00\x56\x4c\x00\x00\x62\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xab\x48\xe5\x00\x00\x00\x00\x00\x00\x53\x66\x66\x59\x00\x00\x00\x00\x00\x00\x00\x00\x66\x5a\x00\x00\x00\x00\x00\x00\x66\x5b\x00\x00\x00\x00\x59\x60\x00\x00\x53\x43\x00\x00\x65\xf1\x00\x00\x52\xb1\x00\x00\x52\xb4\x50\xcd\x00\x00\x00\x00\x00\x00\x65\xf2\x52\xc0\x00\x00\x57\xee\x00\x00\x00\x00\x00\x00\x00\x00\x65\xef\x65\xf3\x00\x00\x00\x00\x55\x9d\x00\x00\x00\x00\x54\x43\x00\x00\x00\x00\x00\x00\x56\xd7\x57\xfd\x00\x00\x00\x00\x00\x00\x65\xf4\x65\xf5", /* 7280 */ "\x58\x4c\x50\xe6\x00\x00\x00\x00\x65\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbe\x65\xf7\x00\x00\x65\xf8\x00\x00\x65\xf9\x00\x00\x00\x00\x65\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xad\x61\x8c\x00\x00\x4c\x58\x61\x8d\x00\x00\x00\x00\x00\x00\x61\x8e\x00\x00\x5c\x54\x61\x8f\x61\x90\x5a\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x92\x50\x92\x61\x91\x4b\x72\x00\x00\x00\x00\x00\x00\x49\x57\x00\x00\x00\x00\x00\x00\x00\x00\x61\x94\x61\x93\x00\x00\x4d\xfb\x00\x00\x61\x95\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x57\x00\x00\x4f\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x52\xfb\x00\x00\x4d\xdc\x4f\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x96\x61\x98\x00\x00\x00\x00\x4b\xbf\x58\x61\x55\xa7\x61\x97\x5b\x99\x5a\x9d\x61\x99\x61\x9d\x61\x9a\x00\x00\x00\x00\x61\x9b\x50\xe9\x00\x00\x61\x9f\x61\xa0\x50\xc6\x00\x00\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x61\x9c\x00\x00\x61\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa4\x00\x00\x00\x00\x00\x00\x51\x74\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa2\x00\x00\x61\xa7\x49\xfd\x61\xa1\x00\x00\x00\x00\x00\x00\x52\x6d\x49\xc1\x61\xa6\x61\xa5\x00\x00\x00\x00\x61\xa3\x61\xa8\x00\x00\x00\x00\x61\xaa\x00\x00\x00\x00\x00\x00\x58\xc8\x5b\xec\x52\x48\x61\xab\x00\x00\x58\x77\x00\x00\x00\x00\x61\xad\x00\x00\x00\x00\x4d\xee\x00\x00\x00\x00\x65\x81\x61\xac\x61\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4b\x5a\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xaf\x00\x00\x00\x00\x61\xae\x00\x00\x65\x82\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb2\x56\xa0\x00\x00\x61\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb4\x00\x00", /* 7380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x00\x00\x00\x00\x51\xc9\x00\x00\x5a\x92\x00\x00\x57\x96\x00\x00\x00\x00\x64\x81\x00\x00\x00\x00\x64\x82\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe9\x00\x00\x00\x00\x00\x00\x64\x85\x00\x00\x00\x00\x64\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x87\x00\x00\x52\x55\x00\x00\x00\x00\x64\x83\x4e\x57\x58\x76\x00\x00\x51\x82\x64\x8a\x00\x00\x00\x00\x00\x00\x64\x89\x00\x00\x00\x00\x64\x95\x49\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8b\x00\x00\x64\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8d\x64\x8c\x55\x5a\x00\x00\x00\x00\x5b\x85\x00\x00\x64\x86\x4c\x49\x64\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x94\x00\x00\x5b\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8e\x00\x00\x64\x93\x00\x00\x64\x92\x00\x00\x00\x00\x00\x00\x48\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x64\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x54\x93\x00\x00\x50\xc4\x50\xec\x00\x00\x00\x00\x51\x91\x64\x91\x00\x00\x00\x00\x00\x00\x00\x00\x64\x97\x56\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x61\x00\x00\x00\x00\x64\x9b\x64\x9a\x00\x00\x64\x9c\x00\x00\x64\x98\x00\x00\x64\x9f\x00\x00\x64\x9e\x00\x00\x64\x9d\x00\x00\x00\x00\x51\x75\x54\x79\x53\x9e\x53\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa5\x00\x00\x64\xa4\x00\x00\x64\xa6\x4d\xf6\x64\x99\x64\xa3\x00\x00\x54\xef\x55\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa8\x00\x00\x00\x00\x4d\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9f\x64\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa9\x00\x00", /* 7480 */ "\x64\xac\x64\xad\x00\x00\x51\x47\x00\x00\x00\x00\x00\x00\x64\xae\x00\x00\x00\x00\x00\x00\x64\xaf\x00\x00\x00\x00\x64\xab\x00\x00\x64\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xaa\x00\x00\x64\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb4\x64\xb1\x64\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6f\x00\x00\x68\xab\x00\x00\x68\xac\x00\x00\x53\xaf\x48\xe9\x54\xbe\x00\x00\x57\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcc\x65\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb1\x00\x00\x53\xbe\x4a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb2", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9a\x00\x00\x65\xb3\x00\x00\x65\xb4\x00\x00\x65\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc9\x60\x50\x55\x96\x00\x00\x56\xef\x00\x00\x00\x00\x55\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9c\x00\x00\x00\x00\x5a\x63\x56\x46\x00\x00\x4c\xa5\x68\xad\x49\x62\x00\x00\x63\x58\x56\xee\x5a\x69\x4e\xd6\x55\x8b\x00\x00\x4b\x88\x00\x00\x52\xcf\x4b\x8a\x00\x00\x67\xad\x4e\x4d\x00\x00\x00\x00\x64\x7e\x00\x00\x67\xae\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x49\x00\x00\x00\x00\x67\xb1\x00\x00\x00\x00\x67\xb0\x4f\x88\x00\x00\x67\xaf\x57\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x51\x95\x5e\x6e\x67\xb2\x58\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd3\x53\xe7\x00\x00\x00\x00\x00\x00\x4c\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb3\x00\x00\x4a\x8c\x00\x00\x00\x00\x00\x00\x4e\x9c\x67\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7c", /* 7580 */ "\x00\x00\x00\x00\x00\x00\x67\xb5\x00\x00\x00\x00\x4f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x69\x83\x00\x00\x00\x00\x00\x00\x55\xe7\x00\x00\x59\xc8\x68\xd9\x00\x00\x68\xda\x00\x00\x68\xdb\x51\x66\x00\x00\x4c\xec\x4f\xcd\x00\x00\x00\x00\x68\xdd\x00\x00\x53\x51\x68\xdc\x59\x92\x00\x00\x68\xdf\x48\xcb\x4f\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xde\x68\xde\x00\x00\x4a\xae\x4c\x89\x68\xe5\x68\xe4\x53\xa2\x68\xe0\x68\xe1\x4a\xc2\x00\x00\x00\x00\x68\xe2\x5b\x8f\x00\x00\x00\x00\x56\xda\x4f\xd1\x4e\xb1\x00\x00\x00\x00\x00\x00\x68\xe7\x68\xe6\x68\xe3\x49\xa0\x00\x00\x5b\xa1\x5a\x58\x4f\xb6\x54\xab\x00\x00\x00\x00\x68\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x59\x98\x00\x00\x5b\xcb\x4d\xda\x68\xe8\x00\x00\x4b\xba\x00\x00\x00\x00\x57\x54\x00\x00\x00\x00\x53\xa5\x00\x00\x00\x00\x00\x00\x51\x41\x68\xea\x68\xed\x00\x00\x68\xec\x68\xef\x68\xeb\x00\x00\x4e\x5e\x68\xee\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb4\x68\xf1\x00\x00\x00\x00\x4a\x75\x00\x00\x00\x00\x00\x00\x00\x00\x49\x74\x00\x00\x00\x00\x68\xf2\x00\x00\x00\x00\x68\xf3", /* 7600 */ "\x68\xf5\x4a\xe0\x00\x00\x68\xf0\x00\x00\x68\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x68\xf9\x00\x00\x68\xf7\x00\x00\x00\x00\x00\x00\x68\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x68\xfc\x00\x00\x68\xf8\x68\xfb\x68\xfd\x00\x00\x69\x41\x00\x00\x00\x00\x00\x00\x57\xc0\x69\x44\x00\x00\x69\x43\x00\x00\x51\x97\x68\xfa\x55\xdc\x00\x00\x00\x00\x4a\xf0\x49\x92\x56\xb0\x00\x00\x69\x46\x00\x00\x00\x00\x69\x47\x00\x00\x00\x00\x69\x4c\x5b\x6e\x69\x49\x00\x00\x00\x00\x54\xb2\x00\x00\x00\x00\x00\x00\x69\x42\x00\x00\x69\x4b\x69\x48\x69\x45\x00\x00\x00\x00\x69\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xa8\x69\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4f\x00\x00\x69\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x50\x00\x00\x69\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x59\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x52\x00\x00\x00\x00\x00\x00\x69\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x90\x00\x00\x00\x00\x4b\x67\x00\x00\x48\xd6\x48\xd8\x00\x00", /* 7680 */ "\x00\x00\x00\x00\x5a\xec\x00\x00\x4b\x64\x00\x00\x4f\x74\x4e\x6a\x68\xa6\x00\x00\x00\x00\x4c\xdd\x00\x00\x00\x00\x68\xa7\x00\x00\x00\x00\x48\xa7\x00\x00\x68\xa8\x00\x00\x00\x00\x57\x8f\x00\x00\x00\x00\x68\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa3\x00\x00\x00\x00\x5b\xe4\x69\x85\x00\x00\x69\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x94\x00\x00\x00\x00\x5a\x7b\x00\x00\x00\x00\x5b\xd0\x53\x89\x00\x00\x5a\x4f\x00\x00\x59\xe5\x00\x00\x00\x00\x67\xc0\x48\xba\x5b\x55\x59\x6e\x4e\xdf\x4d\xcf\x00\x00\x50\x99\x00\x00\x4c\xc6\x4b\x61\x53\x6c\x00\x00\x00\x00\x55\xa1\x00\x00\x00\x00\x00\x00\x52\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xbe\x4b\xa1\x00\x00\x67\x8d\x52\x44\x00\x00\x5b\xb0\x00\x00\x00\x00\x00\x00\x58\x81\x67\x90\x00\x00\x00\x00\x53\x6e\x00\x00\x4b\xdb\x00\x00", /* 7700 */ "\x00\x00\x55\xa0\x00\x00\x00\x00\x67\x8e\x00\x00\x00\x00\x67\x91\x67\x92\x52\x5c\x00\x00\x50\x54\x00\x00\x67\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x95\x67\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x87\x52\x7f\x00\x00\x67\x94\x00\x00\x00\x00\x00\x00\x67\x97\x00\x00\x5b\x43\x59\x43\x00\x00\x00\x00\x00\x00\x67\x96\x00\x00\x52\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x98\x50\x95\x4f\xeb\x67\x99\x00\x00\x56\xf6\x00\x00\x59\x7b\x00\x00\x00\x00\x00\x00\x5c\x65\x5b\x97\x00\x00\x67\x9d\x00\x00\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9a\x67\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9e\x4f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x4f\x67\xa0\x4b\xbc\x00\x00\x67\xa1\x52\xbf\x00\x00\x67\x9f\x00\x00\x00\x00\x4f\x7e\x49\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc2\x00\x00\x00\x00\x00\x00\x67\xa4\x5c\xb9\x67\xa2", /* 7780 */ "\x67\xa5\x00\x00\x00\x00\x00\x00\x52\x8a\x4a\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa6\x67\xa3\x58\x59\x00\x00\x00\x00\x67\xa7\x51\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa8\x67\xa9\x00\x00\x5f\xaa\x00\x00\x00\x00\x53\xb2\x00\x00\x54\x66\x00\x00\x5b\xf4\x4b\x69\x00\x00\x56\x52\x00\x00\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x57\x4b\x00\x00\x67\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x50\x00\x00\x67\xac\x00\x00\x6b\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa2\x00\x00\x00\x00\x00\x00\x52\x4c\x69\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb7\x59\xd2\x00\x00\x5b\xa9\x00\x00\x68\x93\x00\x00\x4f\xd7\x00\x00\x4f\x63\x68\x94\x4b\xcb\x48\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x55\xae\x00\x00\x00\x00\x67\x56\x00\x00\x67\x57\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf8\x4c\x4f\x50\x94", /* 7800 */ "\x67\x58\x51\xea\x55\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x59\x00\x00\x00\x00\x53\xf5\x50\x53\x00\x00\x00\x00\x00\x00\x67\x5c\x53\x99\x00\x00\x59\x70\x00\x00\x5c\x49\x67\x5a\x67\x5b\x00\x00\x59\x83\x00\x00\x67\x5f\x67\x60\x00\x00\x67\x64\x00\x00\x00\x00\x00\x00\x67\x68\x00\x00\x67\x66\x67\x6e\x5b\x89\x00\x00\x67\x69\x00\x00\x00\x00\x67\x67\x67\x5e\x00\x00\x00\x00\x53\x8a\x00\x00\x00\x00\x00\x00\x53\xc5\x00\x00\x00\x00\x55\x8a\x5a\xd1\x67\x61\x67\x62\x67\x63\x67\x65\x00\x00\x50\xf8\x00\x00\x4a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x89\x00\x00\x67\x70\x00\x00\x00\x00\x00\x00\x00\x00\x67\x71\x00\x00\x67\x6a\x00\x00\x67\x6f\x00\x00\x57\xf7\x00\x00\x00\x00\x56\x56\x67\x6c\x67\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x72\x51\x93\x5a\x52\x67\x6b\x54\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xee\x00\x00\x00\x00\x00\x00\x00\x00\x53\x91\x00\x00\x00\x00\x00\x00", /* 7880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x76\x00\x00\x4b\x90\x00\x00\x00\x00\x51\xb4\x48\xac\x56\x8a\x00\x00\x00\x00\x49\x4e\x00\x00\x67\x74\x00\x00\x00\x00\x00\x00\x57\x8c\x4b\x83\x00\x00\x67\x75\x67\x73\x67\x77\x00\x00\x00\x00\x4b\x9b\x00\x00\x67\x78\x00\x00\x67\x79\x00\x00\x67\x7c\x00\x00\x49\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x97\x4e\xed\x67\x7a\x56\xbb\x49\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xea\x00\x00\x00\x00\x4a\xc4\x00\x00\x00\x00\x00\x00\x48\xf4\x00\x00\x00\x00\x00\x00\x67\x7f\x50\xd9\x4a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6d\x00\x00\x00\x00\x00\x00\x67\x7d\x50\x64\x00\x00\x00\x00\x00\x00\x67\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa4\x00\x00\x00\x00\x00\x00\x67\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x82\x00\x00\x67\x84\x00\x00\x00\x00\x51\x77\x00\x00\x00\x00\x4e\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x4f\x58\x00\x00\x00\x00\x00\x00\x67\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbd\x66\xe9\x50\xf0\x00\x00\x55\x88\x00\x00\x66\xea\x53\xed\x00\x00\x00\x00\x00\x00\x00\x00\x66\xeb\x00\x00\x53\xec\x66\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xef\x00\x00\x00\x00\x5c\x87\x66\xf2\x00\x00\x00\x00\x66\xf0\x66\xed\x66\xee\x5c\x43\x55\x92\x56\x8f\x66\xf3\x00\x00\x66\xf1\x00\x00\x00\x00\x58\x8a\x00\x00\x66\xf5\x53\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbf\x00\x00\x66\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x5b\x4e\x97\x00\x00\x66\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7980 */ "\x5d\x98\x4f\x9c\x00\x00\x00\x00\x51\xba\x66\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8e\x5c\xad\x50\xea\x00\x00\x54\x7d\x4d\xcb\x00\x00\x58\xe2\x56\x5d\x00\x00\x57\x5a\x00\x00\x00\x00\x4c\xd0\x00\x00\x00\x00\x49\x9d\x00\x00\x54\x90\x00\x00\x5b\xd5\x00\x00\x00\x00\x00\x00\x50\x66\x52\x8c\x00\x00\x00\x00\x68\x96\x00\x00\x00\x00\x52\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x83\x00\x00\x00\x00\x00\x00\x68\x98\x4a\x73\x00\x00\x54\x78\x59\x8e\x00\x00\x5b\xc7\x00\x00\x68\x99\x00\x00\x68\x97\x00\x00\x4e\x9e\x4a\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x75\x00\x00\x00\x00\x59\xc5\x00\x00\x4e\x81\x00\x00\x00\x00", /* 7a00 */ "\x58\x41\x00\x00\x68\x9d\x68\x9c\x00\x00\x00\x00\x68\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6c\x00\x00\x55\x74\x56\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x9f\x00\x00\x00\x00\x48\xdd\x00\x00\x00\x00\x5b\xc8\x00\x00\x00\x00\x00\x00\x68\x9e\x00\x00\x4a\x8e\x00\x00\x00\x00\x6b\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc7\x00\x00\x00\x00\x00\x00\x68\xa1\x00\x00\x68\xa0\x00\x00\x4b\x5e\x4e\xd9\x4e\x9d\x00\x00\x4c\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa5\x00\x00\x00\x00\x00\x00\x59\x48\x00\x00\x4f\xbe\x54\x8f\x69\x56\x69\x57\x50\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa8", /* 7a80 */ "\x69\x58\x57\x5b\x00\x00\x54\x74\x5b\x4d\x00\x00\x69\x59\x00\x00\x69\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6f\x00\x00\x00\x00\x00\x00\x59\xa3\x5b\xce\x00\x00\x00\x00\x69\x5b\x4f\x71\x4a\xaf\x4f\xbc\x00\x00\x00\x00\x00\x00\x4a\xdb\x57\xd0\x00\x00\x50\x7f\x69\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9b\x69\x5c\x00\x00\x69\x5f\x00\x00\x00\x00\x00\x00\x69\x5e\x69\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf9\x00\x00\x00\x00\x5b\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb9\x4f\xb8\x5b\x62\x00\x00\x00\x00\x50\x42\x00\x00\x57\x4f\x69\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7f\x00\x00\x4b\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf0\x6a\x63\x00\x00\x00\x00\x6a\x64\x00\x00\x4c\xcc", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x6a\x66\x6a\x67\x00\x00\x48\xc9\x00\x00\x6a\x65\x00\x00\x6a\x69\x56\x92\x00\x00\x00\x00\x00\x00\x6a\x6b\x00\x00\x58\xa5\x00\x00\x00\x00\x49\x6a\x6a\x68\x00\x00\x00\x00\x00\x00\x6a\x6f\x00\x00\x4b\x71\x00\x00\x00\x00\x6a\x77\x00\x00\x6a\x72\x00\x00\x00\x00\x00\x00\x6a\x74\x6a\x73\x4c\x9c\x00\x00\x49\x5f\x00\x00\x6a\x6e\x6a\x6a\x4b\x7a\x00\x00\x6a\x70\x00\x00\x00\x00\x6a\x71\x00\x00\x6a\x75\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x6d\x00\x00\x4e\xe2\x00\x00\x51\x9e\x00\x00\x6a\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x7a\x00\x00\x6a\x6c\x00\x00\x4b\x68\x00\x00\x4f\x8f\x6a\x7c\x00\x00\x00\x00\x4c\x44\x50\x91\x5b\xfd\x57\x52\x00\x00\x4a\xef\x00\x00\x49\xde\x00\x00\x6a\x78\x00\x00\x6a\x79\x55\x58\x00\x00\x6a\x7d\x00\x00\x00\x00\x6a\x7e\x00\x00\x6a\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x7f\x00\x00\x00\x00\x6a\x84\x6a\x83\x00\x00\x00\x00\x6a\x7b\x00\x00\x50\x8b\x00\x00\x4a\x90\x00\x00\x6a\x81\x00\x00\x00\x00\x54\x49\x00\x00", /* 7b80 */ "\x4e\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5f\x00\x00\x00\x00\x6a\x85\x00\x00\x00\x00\x00\x00\x49\xac\x4e\x9f\x00\x00\x56\x84\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8e\x6a\x8a\x00\x00\x00\x00\x00\x00\x4d\x7c\x6a\x8f\x00\x00\x00\x00\x00\x00\x6a\x86\x6a\x87\x6a\x8b\x51\xe0\x6a\x8d\x6a\x90\x6a\x89\x4e\xfc\x00\x00\x00\x00\x00\x00\x58\x85\x00\x00\x00\x00\x6a\x91\x00\x00\x00\x00\x00\x00\x6a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x4d\x53\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x94\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x92\x00\x00\x51\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdc\x6a\x96\x00\x00\x00\x00\x6a\x95\x00\x00\x00\x00\x00\x00\x4a\xda\x00\x00\x00\x00\x00\x00\x6a\x97\x6a\x98\x00\x00\x00\x00\x00\x00\x6a\x99\x00\x00\x00\x00\x00\x00\x50\xb9\x00\x00\x00\x00\x50\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x92\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x9c\x00\x00\x6a\x9b\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd7\x00\x00\x00\x00\x00\x00\x6a\x9f\x6a\x9a\x00\x00\x00\x00\x6a\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa2\x4e\x69\x00\x00\x00\x00\x6a\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xbd\x6a\xa5\x6a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x77\x5d\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdf\x6a\xcb\x5c\x71\x00\x00\x00\x00", /* 7c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xcd\x51\x43\x00\x00\x00\x00\x53\xc8\x00\x00\x4a\xd5\x5b\x53\x00\x00\x00\x00\x00\x00\x6a\xcf\x6a\xce\x6a\xd0\x56\x7a\x00\x00\x00\x00\x6a\xd1\x00\x00\x5a\xc0\x5b\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x81\x00\x00\x00\x00\x00\x00\x51\x58\x00\x00\x00\x00\x51\x5b\x6a\xd2\x4f\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xe1\x00\x00\x00\x00\x6a\xd3\x6a\xd4\x4f\xaa\x00\x00\x00\x00\x6a\xd5\x00\x00\x00\x00\x00\x00\x6a\xda\x00\x00\x6a\xd6\x6a\xd9\x00\x00\x4d\xfc\x00\x00\x6a\xd7\x6a\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe1\x56\xc6\x6a\xdb\x00\x00\x49\xd9\x00\x00\x00\x00\x52\x73\x00\x00\x00\x00\x5a\xe2\x50\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe8\x00\x00\x00\x00\x58\x55\x00\x00\x00\x00\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x78\x00\x00\x56\x98\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x95\x00\x00\x00\x00\x00\x00\x5c\x6f\x00\x00\x00\x00\x00\x00\x50\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e80 */ "\x00\x00\x00\x00\x5c\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xed\x00\x00\x00\x00\x00\x00\x63\xf8\x4f\xbf\x63\xf9\x4d\xeb\x63\xfa\x58\x6b\x63\xfb\x5a\xbb\x4e\xb5\x63\xfc\x63\xfd\x4e\xcc\x54\xd1\x57\xb2\x64\x41\x00\x00\x4a\xbe\x64\x42\x55\x54\x4c\xd8\x52\xc8\x00\x00\x5c\x7d\x51\xd9\x4c\x77\x5b\xbc\x57\xc5\x4c\x64\x00\x00\x00\x00\x53\x46\x64\x43\x58\x7f\x64\x44\x64\x45\x64\x46\x51\x57\x5c\x8a\x55\x91\x58\x58\x5b\xae\x5b\xd4\x64\x47\x48\xec\x64\x48\x64\x49\x55\x7c\x59\xee\x4f\xac\x64\x4a\x48\xf2\x54\xdd\x4f\x82\x64\x4b\x54\xc5\x00\x00\x64\x4c\x4e\x87\x4c\xf7\x59\x44\x64\x4d\x51\xe6\x4f\xf7\x4f\x6a\x57\x53\x64\x4e\x64\x4f\x4f\xed\x58\xe4\x00\x00\x56\x88\x56\xcf\x4e\xcb\x64\x50\x4e\xa7\x58\xf6\x64\x51\x00\x00\x58\xf7\x64\x52\x64\x53\x4a\xc1\x64\x54\x64\x55\x55\x9f\x57\xab\x52\x81\x64\x57\x49\x61\x4a\x92\x00\x00\x64\x58\x64\x59\x5c\x7b\x5b\x60\x64\x5a\x51\xcb", /* 7f00 */ "\x5c\x5a\x64\x5b\x64\x5c\x64\x5d\x4e\xe9\x52\x86\x50\xc1\x64\x5e\x64\x5f\x4e\xa8\x00\x00\x64\x60\x64\x61\x64\x56\x4b\xcf\x64\x62\x00\x00\x64\x63\x64\x64\x4e\x5a\x4b\x7e\x51\xc5\x49\x81\x64\x65\x5a\xb4\x64\x66\x4c\xbe\x64\x68\x64\x67\x4c\x8d\x00\x00\x64\x69\x49\xf7\x64\x6a\x64\x6b\x64\x6c\x64\x6d\x64\x6e\x64\x6f\x64\x70\x5a\x47\x56\x96\x64\x71\x64\x72\x64\x73\x64\x74\x55\x69\x64\x75\x64\x76\x64\x77\x64\x78\x64\x79\x4f\x69\x64\x7a\x6a\x5e\x00\x00\x4c\xd6\x00\x00\x54\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5f\x00\x00\x6a\x60\x6a\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7e\x57\x99\x00\x00\x00\x00\x5c\xe7\x4d\xb0\x00\x00\x51\xdd\x67\xb6\x00\x00\x4c\x43\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb8\x00\x00\x67\xb7\x48\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xba\x5b\x76\x5c\x90\x00\x00\x00\x00\x00\x00\x5b\xc2\x00\x00\x00\x00\x67\xbc\x55\xef\x00\x00\x67\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbf\x00\x00", /* 7f80 */ "\x00\x00\x67\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x93\x00\x00\x54\x5c\x00\x00\x52\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x88\x00\x00\x00\x00\x6a\xc5\x58\xde\x6a\xc6\x00\x00\x58\x7b\x00\x00\x00\x00\x54\xb9\x00\x00\x00\x00\x6a\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc8\x6a\xc9\x00\x00\x6a\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9b\x4c\xfd\x00\x00\x00\x00\x63\x92\x5a\x91\x00\x00\x6a\xdf\x00\x00\x57\xcb\x00\x00\x00\x00\x00\x00\x4a\x82\x00\x00\x00\x00\x00\x00\x00\x00\x69\x54\x00\x00\x59\xed\x00\x00\x6a\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x89\x6a\xe1\x00\x00\x00\x00\x54\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x74\x4a\xe3\x6a\xe3\x00\x00\x00\x00\x00\x00\x6a\xe2\x6a\xe4\x00\x00\x00\x00\x6a\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe6\x00\x00\x4d\xb1\x48\xbe\x00\x00\x6a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4d\x59\xec\x00\x00\x00\x00\x00\x00", /* 8000 */ "\x59\xaa\x50\xce\x00\x00\x50\x5c\x66\x43\x5b\x7f\x65\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x69\x94\x4b\xf7\x56\x43\x00\x00\x00\x00\x52\xcc\x00\x00\x69\x88\x00\x00\x69\x89\x4c\xfa\x69\x8a\x4d\xc3\x5a\xc4\x48\xd1\x00\x00\x00\x00\x69\x8b\x00\x00\x00\x00\x00\x00\x69\x8c\x00\x00\x69\x8d\x00\x00\x00\x00\x69\x8e\x69\x8f\x69\x90\x69\x92\x69\x91\x53\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x93\x00\x00\x4b\xf9\x00\x00\x69\x95\x59\xad\x5f\xc6\x56\x6a\x00\x00\x00\x00\x4a\x7c\x00\x00\x4b\x42\x00\x00\x4d\x42\x00\x00\x00\x00\x52\xf3\x69\x96\x00\x00\x00\x00\x69\x97\x00\x00\x00\x00\x00\x00\x51\x64\x51\x9c\x5b\xaf\x69\x98\x00\x00\x00\x00\x00\x00\x00\x00\x69\x99\x00\x00\x51\x4a\x00\x00\x00\x00\x00\x00\x53\xb7\x00\x00\x4f\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x9a\x4a\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x52", /* 8080 */ "\x67\x51\x00\x00\x00\x00\x56\x81\x59\xdd\x00\x00\x56\x61\x5b\x78\x00\x00\x54\xe1\x00\x00\x50\xde\x4e\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x61\x00\x00\x00\x00\x58\xa3\x00\x00\x5b\xe1\x00\x00\x4b\xc6\x4c\xd7\x66\x60\x4c\xcd\x00\x00\x66\x5f\x4a\x46\x4d\x69\x5b\xaa\x00\x00\x4c\x95\x4c\x6a\x00\x00\x00\x00\x00\x00\x4e\xe6\x4c\x5e\x66\x66\x00\x00\x66\x67\x48\xb8\x50\x6f\x00\x00\x66\x65\x5a\x9e\x00\x00\x66\x68\x00\x00\x00\x00\x66\x69\x00\x00\x00\x00\x4c\x6e\x00\x00\x66\x62\x66\x64\x55\x97\x5b\xd6\x5b\x6d\x58\xb1\x66\x6f\x57\xb7\x66\x70\x00\x00\x4b\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x53\x66\x72\x56\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x76\x66\x73\x00\x00\x66\x71\x53\x7f\x66\x6e\x55\xa3\x66\x75\x48\xfa\x00\x00\x00\x00\x4d\xf9\x00\x00\x00\x00\x5c\xb6\x69\x84\x00\x00\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x76\x63\xbf\x66\x79\x00\x00\x50\x89\x59\xc7\x66\x77\x66\x7c\x4c\xeb\x66\x78\x00\x00\x4f\x5a\x00\x00\x58\xd7\x00\x00\x48\xb6\x00\x00\x66\x7d\x52\xdb\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x5b\xab\x00\x00\x00\x00\x00\x00\x4a\xdf\x00\x00\x00\x00\x51\xf5\x4e\xb8\x00\x00\x00\x00\x66\x7a\x66\x7b\x5a\xdf\x53\xe9\x52\xd3\x66\x7f\x53\x47\x5d\x96\x00\x00\x49\xb0\x00\x00\x66\x85\x00\x00\x4f\x65\x00\x00\x00\x00\x00\x00\x66\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x84\x00\x00\x00\x00\x4c\xab\x00\x00\x57\x71\x66\x86\x00\x00\x00\x00\x00\x00\x66\x82\x00\x00\x51\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xf2\x00\x00\x66\x87\x00\x00\x50\xaf\x59\xb7\x66\x88\x00\x00\x00\x00\x00\x00\x4c\xae\x4c\xac\x00\x00\x66\x89\x54\x5b\x57\x94\x00\x00\x00\x00\x00\x00\x66\x8b\x66\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc7\x00\x00\x66\x93\x00\x00\x66\x8f\x00\x00\x00\x00\x00\x00\x66\x92\x54\xf8\x00\x00\x59\x9d\x66\x8d\x00\x00\x00\x00\x66\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb8\x58\x79\x52\xe4\x66\x90\x66\x91\x56\xd9\x57\x68", /* 8180 */ "\x48\xf1\x00\x00\x66\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x96\x00\x00\x49\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdf\x00\x00\x66\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x8d\x00\x00\x00\x00\x56\xc4\x52\xa3\x58\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x9a\x00\x00\x00\x00\x66\xa1\x00\x00\x53\x93\x00\x00\x66\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xde\x66\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6e\x66\xa0\x49\x7b\x5a\x57\x00\x00\x00\x00\x59\xdb\x00\x00\x00\x00\x00\x00\x66\x9e\x00\x00\x66\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5c\x00\x00\x00\x00\x00\x00\x65\xaf\x00\x00\x00\x00\x5c\x74\x00\x00\x6a\xaa\x4a\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc0\x5b\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8a\x4f\xc9\x00\x00\x6a\xa6\x00\x00", /* 8200 */ "\x59\xa7\x6a\xa7\x6a\xa8\x00\x00\x6a\xa9\x4f\xca\x5a\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x81\x55\x82\x00\x00\x00\x00\x6a\x62\x00\x00\x55\xe5\x00\x00\x56\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb5\x56\x54\x00\x00\x57\xe7\x5b\xda\x00\x00\x6a\xac\x6a\xad\x6a\xae\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xb1\x00\x00\x4d\xbc\x6a\xb2\x48\xe2\x6a\xaf\x00\x00\x6a\xb0\x4f\x42\x49\xd4\x00\x00\x6a\xb5\x6a\xb6\x4b\xe5\x49\xaf\x58\x6f\x6a\xb3\x4a\xab\x00\x00\x6a\xb4\x00\x00\x00\x00\x6a\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xb8\x00\x00\x00\x00\x57\x47\x00\x00\x6a\xb9\x00\x00\x6a\xba\x00\x00\x00\x00\x00\x00\x6a\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x72\x00\x00\x6a\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xdd\x51\x5c\x4e\xe7\x00\x00\x55\x4b\x59\x7e\x63\x96\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb2\x59\xd4\x00\x00\x00\x00\x5e\xb3\x48\xab\x5e\xb4", /* 8280 */ "\x00\x00\x00\x00\x4f\x7a\x00\x00\x5e\xb8\x00\x00\x00\x00\x00\x00\x5c\xc1\x00\x00\x5e\xb6\x5a\x94\x00\x00\x55\x76\x5e\xb9\x5e\xb5\x00\x00\x5e\xba\x52\x42\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbb\x5e\xc4\x5e\xbc\x00\x00\x00\x00\x57\xde\x5b\xa4\x00\x00\x5e\xce\x00\x00\x5e\xcc\x00\x00\x00\x00\x5e\xd1\x4f\x87\x51\xaa\x00\x00\x5e\xb7\x5e\xca\x5e\xcd\x5e\xbd\x4c\x72\x48\xc4\x5e\xc6\x58\xbd\x5e\xc0\x4e\x48\x00\x00\x4c\x5c\x5e\xcb\x00\x00\x00\x00\x5e\xc5\x5e\xbe\x54\x7b\x00\x00\x00\x00\x00\x00\x59\x5f\x5e\xbf\x00\x00\x00\x00\x5e\xc9\x00\x00\x00\x00\x5e\xcf\x00\x00\x00\x00\x57\xac\x5e\xc1\x00\x00\x5e\xc2\x5e\xc7\x5e\xc8\x49\xd3\x5e\xd0\x56\x75\x00\x00\x5a\xb6\x5e\xda\x5e\xde\x56\xa5\x5e\xe5\x00\x00\x52\x88\x5e\xdb\x00\x00\x00\x00\x50\x61\x5e\xd8\x00\x00\x48\xf9\x4d\x56\x5e\xe4\x5e\xd2\x00\x00\x5e\xc3\x5e\xd5\x54\xf3\x50\x81\x00\x00\x00\x00\x00\x00\x00\x00\x55\x5b\x00\x00\x00\x00\x00\x00\x49\x5d\x00\x00\x5a\x42\x00\x00\x00\x00\x5e\xd9\x00\x00\x00\x00\x5e\xd4\x00\x00\x53\xba\x00\x00\x5e\xdd\x00\x00\x00\x00\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x5c\x62\x52\x4f\x4c\x56\x54\x71\x52\x49\x5e\xe1\x5e\xd7\x5e\xea\x5e\xd3\x00\x00\x00\x00\x5e\xdc\x00\x00\x4f\xa4\x5e\xd6\x00\x00\x5e\xdf\x00\x00\x00\x00\x5e\xe2\x5e\xe3\x00\x00\x5e\xf7\x00\x00\x00\x00\x5e\xe0\x5f\x42\x5e\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xea\x4a\xc3\x00\x00\x00\x00\x52\x43\x49\xe6\x5e\xf9\x00\x00\x5e\xf1\x00\x00\x5e\xee\x00\x00\x5e\xfb\x5e\xed\x59\xef\x49\xe7\x00\x00\x54\xd6\x54\xe2\x5e\xfa\x00\x00\x5e\xec\x00\x00\x00\x00\x00\x00\x5e\xf6\x00\x00\x00\x00\x5e\xf4\x00\x00\x00\x00\x4f\xa2\x5e\xf3\x00\x00\x49\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf2\x4e\xf5\x5e\xe7\x4e\x64\x00\x00\x50\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xd3\x5e\xe8\x5e\xe9\x00\x00\x5e\xf0\x5e\xf5\x5e\xf8\x4b\x54\x00\x00\x54\xd8\x4e\x88\x5e\xfd\x5e\xfc\x5a\x4b\x5f\x41\x5f\x43\x5f\x45\x59\xf0\x5f\x44\x5f\x46\x5f\x47\x59\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc8\x5f\x49\x00\x00\x00\x00\x5f\x56\x5f\x51\x5f\x54\x00\x00\x00\x00", /* 8380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x50\x53\xcd\x00\x00\x00\x00\x50\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4f\x00\x00\x00\x00\x00\x00\x5e\xeb\x5f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x00\x00\x00\x00\x5e\xef\x5f\x4f\x00\x00\x5f\x58\x00\x00\x5f\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x59\x5f\x53\x5f\x4d\x52\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x48\x50\xb2\x51\x4b\x5f\x4a\x5f\x4b\x00\x00\x5f\x52\x4e\x92\x5f\x55\x5a\x48\x5f\x5a\x00\x00\x5f\x5b\x52\x47\x00\x00\x00\x00\x5f\x72\x5f\x5c\x00\x00\x00\x00\x00\x00\x5f\x71\x00\x00\x4d\x5d\x00\x00\x00\x00\x4f\xd4\x00\x00\x4f\xf9\x00\x00\x00\x00\x4d\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x6a\x00\x00\x5f\x65\x00\x00\x5f\x5f\x00\x00\x00\x00\x00\x00\x49\xca\x5f\x63\x00\x00\x5f\x6b\x49\xa3\x5f\x75\x00\x00\x00\x00\x00\x00\x5f\x5e\x00\x00\x00\x00\x00\x00\x53\xcf\x5f\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x74\x51\x83\x4c\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x6e\x5f\x6f\x00\x00\x00\x00\x00\x00\x5f\x64\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x5f\x5d\x00\x00\x5f\x6d\x56\xd0\x00\x00\x5f\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x62\x52\x68\x53\xbb\x57\xad\x5f\x6c\x00\x00\x5f\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x61\x00\x00\x00\x00\x00\x00\x5f\x66\x51\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x49\x5a\x4a\x5f\x73\x58\x95\x54\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x67\x00\x00\x00\x00\x00\x00\x5f\x81\x51\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf7\x00\x00\x5f\x79\x5f\x78\x4c\xef\x5f\x76\x00\x00\x00\x00\x00\x00\x00\x00\x53\xce\x00\x00\x4b\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x83\x00\x00\x4d\xf8\x5a\xe0\x5f\x88\x00\x00\x00\x00\x00\x00\x4a\xcf\x00\x00\x5f\x7a\x00\x00\x50\x9c\x5f\x84\x00\x00\x5f\x7f\x00\x00\x5f\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x4b\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x7b\x5f\x7c\x5f\x7e\x00\x00\x4f\x4f\x5f\x85\x00\x00\x5f\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x96\x00\x00\x52\x69\x00\x00\x00\x00\x56\x83\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe0\x00\x00\x00\x00\x53\xd0\x00\x00\x5f\x95\x00\x00\x00\x00\x00\x00\x5b\x95\x5f\x94\x5f\x91\x00\x00\x00\x00\x5f\x8d\x00\x00\x5f\x90\x00\x00\x5f\x89\x00\x00\x00\x00\x58\xed\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd7\x5f\x8f\x00\x00\x00\x00\x5f\x8a\x00\x00\x00\x00\x5f\x8b\x56\x93\x00\x00\x5f\x8e\x00\x00\x00\x00\x49\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb5\x00\x00\x4e\xba\x5f\x92\x00\x00\x00\x00\x5f\x98\x00\x00\x5f\x97\x5f\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x8f\x00\x00\x00\x00\x00\x00\x5f\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa3\x00\x00\x00\x00\x5f\xa2", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x99\x00\x00\x00\x00\x00\x00\x00\x00\x52\x90\x00\x00\x51\xfa\x00\x00\x00\x00\x00\x00\x5b\x82\x00\x00\x00\x00\x57\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9e\x00\x00\x49\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe7\x55\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x5e\x5f\x9b\x5f\x9d\x5f\x9f\x5f\xa1\x48\xa9\x49\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xab\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa5\x4f\x56\x54\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa0\x00\x00\x00\x00\x5f\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa7\x00\x00\x00\x00\x00\x00\x5f\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xac\x00\x00\x5a\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb2\x5f\xa9\x5f\xad\x00\x00\x00\x00\x50\xd8\x00\x00", /* 8580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x49\x41\x5f\xb5\x00\x00\x5f\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x46\x5f\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xae\x00\x00\x00\x00\x00\x00\x5f\xaf\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x5f\xb3\x55\xec\x5f\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb7\x00\x00\x5f\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xd7\x52\x8b\x00\x00\x00\x00\x5f\xb9\x00\x00\x53\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe4\x00\x00\x00\x00\x00\x00\x5f\xbc", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbd\x00\x00\x5f\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x5a\x00\x00\x00\x00\x00\x00\x5f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xad\x4e\x42\x51\xb1\x53\x50\x51\xc6\x00\x00\x00\x00\x69\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe8\x00\x00\x00\x00\x00\x00\x5a\x7d\x00\x00\x00\x00\x00\x00\x66\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x87\x69\xaf\x00\x00\x69\xb0\x00\x00\x00\x00\x55\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe6\x69\xb2\x69\xb4\x69\xb3\x56\x85\x58\x5a\x69\xb1", /* 8680 */ "\x55\xb3\x59\xce\x51\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x69\xb7\x48\xf5\x69\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xbd\x00\x00\x49\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x61\x69\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xbb\x5a\xe8\x00\x00\x00\x00\x69\xba\x69\xb5\x69\xbe\x69\xbc\x00\x00\x69\xb8\x00\x00\x00\x00\x69\xc6\x69\xc3\x69\xc5\x00\x00\x00\x00\x69\xc9\x69\xc1\x69\xbf\x00\x00\x00\x00\x00\x00\x69\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfa\x00\x00\x00\x00\x00\x00\x69\xc0\x00\x00\x54\x9a\x55\x7f\x00\x00\x69\xc7\x4d\x66\x4b\x50\x00\x00\x00\x00\x69\xc2\x69\xc8\x69\xcf\x69\xd5\x00\x00\x00\x00\x4e\x77\x00\x00\x00\x00\x00\x00\x69\xd4\x57\x7c\x00\x00\x5b\xea\x00\x00\x00\x00\x69\xd1\x69\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x69\xca\x00\x00\x00\x00\x00\x00\x69\xcd\x51\xf8\x00\x00\x5b\x7d\x69\xcb\x69\xcc\x69\xce\x69\xd2\x00\x00\x00\x00\x00\x00\x69\xd8\x5a\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe9\x00\x00", /* 8700 */ "\x55\xf0\x00\x00\x4c\x85\x69\xd6\x00\x00\x00\x00\x00\x00\x69\xd7\x69\xd9\x69\xdc\x69\xda\x00\x00\x00\x00\x69\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x59\x71\x69\xd0\x00\x00\x57\x69\x00\x00\x57\xce\x5b\xa8\x00\x00\x69\xe2\x00\x00\x52\x7b\x00\x00\x69\xdf\x00\x00\x00\x00\x50\xae\x69\xeb\x69\xdd\x00\x00\x69\xe0\x00\x00\x00\x00\x00\x00\x69\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x69\xe1\x00\x00\x00\x00\x69\xe6\x00\x00\x00\x00\x69\xe5\x00\x00\x00\x00\x69\xe8\x00\x00\x00\x00\x00\x00\x69\xde\x00\x00\x00\x00\x69\xe3\x69\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4c\x69\xe4\x49\xf4\x00\x00\x00\x00\x69\xf1\x00\x00\x58\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x69\xf4\x00\x00\x00\x00\x00\x00\x4e\x68\x00\x00\x69\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xef\x00\x00\x00\x00\x69\xf5\x69\xf7\x69\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xf2\x00\x00\x69\xf0\x00\x00\x00\x00\x00\x00\x4d\xfa\x00\x00\x4b\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x69\xee\x69\xf6\x69\xec\x69\xed\x00\x00", /* 8780 */ "\x00\x00\x00\x00\x69\xea\x6a\x46\x00\x00\x6a\x43\x00\x00\x00\x00\x6a\x42\x00\x00\x00\x00\x69\xf3\x00\x00\x54\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xfa\x00\x00\x00\x00\x00\x00\x6a\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xfc\x00\x00\x00\x00\x6a\x47\x6a\x49\x6a\x44\x00\x00\x69\xfb\x00\x00\x00\x00\x00\x00\x6a\x4b\x00\x00\x6a\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x00\x00\x6a\x4e\x00\x00\x00\x00\x6a\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x41\x00\x00\x00\x00\x00\x00\x6a\x51\x6a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x4f\x69\xfd\x6a\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x52\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x54\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x48\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x53\x00\x00\x00\x00\x00\x00\x6a\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x58\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x5d\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x57\x00\x00\x54\xe3\x6a\x56\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5b\x4a\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5c\x00\x00\x00\x00\x6a\x5d\x00\x00\x00\x00\x00\x00\x59\x4a\x00\x00\x00\x00\x00\x00\x6a\xab\x58\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xcf\x59\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x6e\x00\x00\x00\x00\x4f\x76\x00\x00\x59\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe1\x61\x8a\x59\xc1\x69\x62\x49\xb8\x00\x00\x00\x00\x49\x8e\x69\x63\x00\x00\x55\x60\x4a\x64\x00\x00\x5d\x93\x00\x00\x56\x45\x00\x00\x69\x64\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x65\x6a\xbf\x69\x66", /* 8880 */ "\x00\x00\x5a\xab\x69\x67\x00\x00\x48\xbf\x6a\xc0\x00\x00\x00\x00\x6a\xc1\x00\x00\x00\x00\x4a\xfb\x00\x00\x53\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x56\xba\x00\x00\x00\x00\x00\x00\x58\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x68\x00\x00\x5d\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x5b\x00\x00\x58\x4e\x00\x00\x00\x00\x00\x00\x4c\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc2\x51\x71\x00\x00\x00\x00\x5c\x50\x69\x69\x00\x00\x00\x00\x69\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6e\x00\x00\x00\x00\x00\x00\x5d\x97\x00\x00\x59\xe0\x5a\xa2\x00\x00\x00\x00\x6a\xc2\x54\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc3\x00\x00\x00\x00\x69\x6d\x69\x6f\x50\x84\x69\x70\x00\x00\x00\x00\x69\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x76\x69\x71\x00\x00\x55\x71\x53\x82\x00\x00\x00\x00\x00\x00\x51\xe2\x4d\x9d\x00\x00\x00\x00\x69\x73\x00\x00\x69\x75\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x4d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd5\x00\x00\x48\xfc\x69\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x78\x69\x72\x69\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x77\x00\x00\x00\x00\x00\x00\x54\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6a\x69\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5d\x00\x00\x00\x00\x00\x00\x69\x7c\x00\x00\x69\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x7f\x00\x00\x00\x00\x58\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc4\x4f\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x82\x00\x00\x00\x00\x00\x00\x57\xf6", /* 8980 */ "\x00\x00\x59\xa9\x00\x00\x69\x9c\x00\x00\x00\x00\x4c\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xfa\x4d\x7b\x00\x00\x4d\x87\x52\x79\x55\xd2\x65\xe7\x50\xbf\x4f\xf4\x65\xe8\x65\xe9\x65\xea\x00\x00\x65\xeb\x65\xec\x65\xed\x65\xee\x4f\x67\x00\x00\x00\x00\x00\x00\x6b\x9c\x00\x00\x00\x00\x00\x00\x6b\x9e\x00\x00\x6b\x9f\x00\x00\x6b\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x83\x00\x00\x6b\xa0\x4a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa1\x00\x00\x00\x00\x00\x00\x6b\xa2\x00\x00\x00\x00\x00\x00\x66\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a00 */ "\x59\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9f\x56\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8b80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa4\x4e\xc5\x4b\xa8\x4c\xbb\x54\xce\x4e\xa4\x5d\xa5\x5d\xa6\x56\xd5\x54\xc2\x5d\xa7\x53\xfc\x00\x00\x59\x55\x59\xe8\x59\x56\x4e\xc6\x00\x00\x4f\x52\x4e\x85\x5d\xa8\x5d\xa9\x59\x68\x5d\xaa\x58\xec\x4b\xee\x51\xda\x00\x00\x56\x6f\x4c\x8e\x55\x89\x4c\x63\x4f\xf6\x5b\xa3\x5d\xab\x5d\xac\x53\xbf\x5c\x88\x55\xb5\x00\x00\x5b\x49\x56\x7f\x5b\x90\x5d\xad\x5b\xde\x4a\xc9\x5d\xaf\x5d\xae\x00\x00\x59\xea\x5d\xb0\x5d\xb1\x5d\xb2\x55\xd3\x5d\xb3\x55\xaa\x5d\xb4\x5d\xb5\x4a\x6f\x5b\xee\x5d\xb6\x4e\x50\x4b\x4e\x5d\xb7\x5d\xb8\x4d\x8f\x59\x4f\x59\xe7\x5d\xb9\x4c\xc2\x58\x8b\x49\xee\x5d\xba\x5d\xbb\x00\x00\x4f\x8c\x57\xdb\x5a\x90\x5d\xbc\x57\xf2\x5d\xbd\x5a\x75\x4e\x86\x5d\xbe\x56\x55\x56\x70\x5d\xbf\x54\x8c\x5b\xed\x5d\xc0\x53\x55\x4b\xc0\x5d\xc1\x4c\x6c\x50\x6e\x5d\xc2", /* 8c00 */ "\x5d\xc3\x56\x4d\x5d\xc4\x4b\x98\x5d\xc5\x51\x62\x5c\x5b\x5d\xc6\x56\xb7\x00\x00\x59\xe9\x52\xb0\x5d\xc7\x4b\x9e\x4e\x71\x5d\xc8\x58\xb2\x5d\xc9\x5d\xca\x57\xbc\x5d\xcb\x5d\xcc\x5d\xcd\x49\xf6\x5d\xd0\x5d\xce\x59\x89\x5d\xcf\x52\x75\x5d\xd1\x00\x00\x5d\xd2\x5d\xd3\x5d\xd4\x58\xba\x59\xa4\x48\xf8\x5d\xd5\x54\x4b\x5d\xd6\x4f\x98\x52\x41\x5d\xd7\x5d\xd8\x52\x9e\x56\xb6\x5d\xd9\x5d\xda\x50\xbd\x53\xd6\x5d\xdb\x5d\xdc\x54\x54\x5d\xdd\x5d\xde\x4d\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb8\x6a\xf7\x00\x00\x6a\xf8\x00\x00\x00\x00\x57\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x59\x00\x00\x00\x00\x00\x00\x00\x00\x66\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x94\x4e\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xbf\x5a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x79\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x95\x49\x4a\x49\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c80 */ "\x00\x00\x00\x00\x6b\x96\x00\x00\x00\x00\x6b\x98\x00\x00\x00\x00\x00\x00\x4d\xd0\x6b\x97\x00\x00\x52\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x9a\x00\x00\x00\x00\x00\x00\x6b\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x54\x5b\x8b\x4c\xb9\x00\x00\x4d\x51\x49\xc5\x5a\xef\x58\x6d\x48\xdb\x5b\x6b\x4e\x96\x5b\xc9\x4c\x57\x56\xaf\x53\xb5\x49\x82\x4d\x5a\x5b\xfb\x4d\x82\x4c\x41\x4e\xf9\x65\xd9\x65\xda\x56\xf8\x4d\x94\x65\xdb\x4a\xfa\x52\x53\x4c\x71\x4d\xd7\x65\xdc\x5a\xf3\x65\xdd\x4e\xd5\x4e\x7f\x65\xde\x51\x7e\x51\xb7\x5a\xde\x5c\x6a\x65\xdf\x65\xe0\x65\xe3\x65\xe1\x65\xe2\x55\x7e\x4c\xb2\x4b\xc3\x65\xe4\x55\xe9\x55\x6d\x4a\xcc\x00\x00\x00\x00\x61\xd8\x53\x83\x65\xe5\x50\xb4\x00\x00\x5c\x58\x65\xe6\x5c\x4c\x54\xfb\x5c\xd2\x5c\xcc\x5a\xdd\x00\x00\x5a\xf8\x55\x64\x5a\x4e\x4c\xd2\x4a\x81\x00\x00\x55\x83\x6a\xf5\x00\x00\x00\x00\x00\x00\x4d\xd4\x00\x00\x6a\xf6\x00\x00\x00\x00\x5c\x7f\x00\x00\x00\x00\x6a\xf0\x4c\xaf\x5b\x74\x4c\xce\x53\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d80 */ "\x00\x00\x4a\x63\x00\x00\x00\x00\x6a\xf1\x4a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xbc\x54\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf3\x00\x00\x00\x00\x6a\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xca\x00\x00\x00\x00\x00\x00\x54\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf4\x00\x00\x5c\x84\x53\x5f\x6b\x60\x00\x00\x00\x00\x6b\x5b\x00\x00\x6b\x63\x00\x00\x6b\x62\x00\x00\x5b\xb9\x6b\x61\x00\x00\x00\x00\x00\x00\x5a\xbd\x6b\x64\x00\x00\x6b\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x48\xce\x4b\x99\x00\x00\x6b\x69\x6b\x6a\x00\x00\x53\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x65\x6b\x66\x00\x00\x00\x00\x6b\x67\x6b\x6b\x00\x00\x4f\xdf\x6b\x68\x4c\xf9\x00\x00\x00\x00\x00\x00\x6b\x70\x6b\x73\x00\x00\x00\x00\x00\x00\x50\x88\x00\x00\x4d\x93\x6b\x5c\x6b\x6d\x00\x00\x00\x00\x51\xb6\x00\x00\x00\x00\x00\x00\x56\xf7\x00\x00\x4e\xf8\x00\x00\x6b\x6e\x6b\x6f\x6b\x71\x4b\xe4\x6b\x72\x00\x00\x6b\x75\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5d\x00\x00\x00\x00\x00\x00\x6b\x74\x5a\x5b\x00\x00\x4a\x8d\x00\x00\x00\x00\x56\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x77\x4f\xe0\x6b\x78\x00\x00\x00\x00\x56\xde\x6b\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc7\x5c\x79\x00\x00\x6b\x79\x00\x00\x6b\x7a\x6b\x7c\x00\x00\x6b\x83\x00\x00\x00\x00\x00\x00\x6b\x81\x00\x00\x00\x00\x00\x00\x6b\x7f\x6b\x7d\x00\x00\x00\x00\x6b\x82\x00\x00\x00\x00\x6b\x7e\x6b\x85\x6b\x86\x00\x00\x56\xe2\x00\x00\x00\x00\x63\x5f\x4b\x58\x6b\x84\x6b\x89\x56\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x87\x6b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x64\x00\x00\x00\x00\x6b\x5f\x00\x00\x00\x00\x4b\x65\x49\xe3\x00\x00\x6b\x8d\x6b\x8a\x00\x00\x4b\xd6\x00\x00\x6b\x8e\x00\x00\x6b\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x8c\x00\x00\x00\x00\x4a\xd9", /* 8e80 */ "\x00\x00\x5a\xe9\x00\x00\x00\x00\x00\x00\x6b\x8f\x00\x00\x4a\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x90\x6b\x92\x00\x00\x00\x00\x00\x00\x6b\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x93\x00\x00\x6b\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x8e\x4d\x4a\x00\x00\x00\x00\x54\x9c\x00\x00\x00\x00\x4b\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x55\x5a\xfd\x4d\x8d\x58\xf8\x00\x00\x65\x8e\x5c\x4a\x65\x8f\x51\xd5\x54\xec\x4d\xe3\x65\x90\x65\x91\x65\x92\x5b\xe0\x65\x93\x65\x94\x65\x96\x65\x95\x65\x97\x65\x98\x54\x82\x65\x99\x5a\xd7\x65\x9a\x4f\x6e", /* 8f80 */ "\x00\x00\x65\x9b\x65\x9c\x4f\x6f\x65\x9d\x4c\xa7\x51\x5e\x65\x9e\x49\x52\x4e\x74\x4d\x96\x65\x9f\x00\x00\x65\xa0\x65\xa1\x65\xa2\x4c\x99\x4e\xac\x00\x00\x55\xe3\x60\xcd\x5a\xae\x58\x5d\x5b\x57\x65\xa3\x5b\x7e\x65\xa4\x58\xc0\x4d\x5c\x00\x00\x4a\xc6\x49\x79\x00\x00\x00\x00\x00\x00\x50\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x49\x87\x49\x88\x00\x00\x49\x89\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5d\x54\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x63\x61\x00\x00\x00\x00\x49\x7f\x00\x00\x00\x00\x00\x00\x51\x69\x4a\xee\x00\x00\x00\x00\x54\x48\x5a\x78\x00\x00\x53\xf8\x59\x58\x00\x00\x4d\x9e\x51\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4d\x00\x00\x5a\xca\x4f\x9d\x00\x00\x63\x62\x4c\x55\x63\x63\x00\x00\x00\x00\x4e\x59\x5b\x83\x00\x00\x4f\x99\x5a\xb5\x57\xa4\x51\x4c\x4a\x79\x00\x00\x00\x00\x56\xf5\x00\x00\x63\x66\x63\x64\x63\x68\x00\x00\x63\x6a\x63\x67\x4b\x6f\x53\xc7\x00\x00\x4b\x9d\x63\x65\x00\x00\x55\xf5\x00\x00\x00\x00\x63\x69\x00\x00\x00\x00\x00\x00\x52\x74\x49\x65\x4e\xa2\x00\x00\x00\x00\x00\x00\x5c\x57\x00\x00\x00\x00", /* 9000 */ "\x57\x6b\x56\x6d\x55\xc9\x56\xd2\x63\x6c\x63\x6b\x52\xe5\x00\x00\x00\x00\x59\x41\x59\x57\x63\x6d\x00\x00\x63\x70\x00\x00\x57\x58\x5b\xef\x63\x6f\x4b\x7d\x00\x00\x57\x5e\x00\x00\x63\x71\x4b\xb9\x00\x00\x00\x00\x57\x48\x4d\x85\x00\x00\x55\xc4\x4a\x71\x56\x79\x5a\xeb\x63\x72\x4c\x8b\x00\x00\x00\x00\x00\x00\x63\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x75\x4a\xfd\x63\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x73\x63\x74\x00\x00\x59\xdc\x00\x00\x00\x00\x51\xde\x49\x66\x00\x00\x5a\x83\x00\x00\x00\x00\x4b\xdc\x56\x8d\x00\x00\x63\x77\x00\x00\x00\x00\x5a\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x8a\x00\x00\x4b\xf3\x63\x7a\x63\x78\x63\x79\x4b\x60\x00\x00\x00\x00\x00\x00\x59\xc4\x63\x7c\x00\x00\x00\x00\x63\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7d\x54\x52\x00\x00\x59\xa2\x00\x00\x00\x00\x63\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe1\x5b\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x81\x5c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x82\x00\x00\x49\x7c", /* 9080 */ "\x59\x9c\x00\x00\x63\x83\x63\x85\x00\x00\x00\x00\x00\x00\x00\x00\x63\x84\x00\x00\x00\x00\x63\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd7\x00\x00\x4b\x6b\x00\x00\x64\x7f\x00\x00\x5d\xf4\x00\x00\x5d\xf7\x00\x00\x5d\xf5\x00\x00\x5d\xf6\x00\x00\x00\x00\x00\x00\x5d\xf9\x58\xce\x52\xc6\x00\x00\x00\x00\x48\xed\x00\x00\x00\x00\x00\x00\x58\xaf\x00\x00\x5d\xf8\x00\x00\x5a\x6a\x4d\xa9\x5e\x42\x54\x92\x00\x00\x5d\xfb\x5d\xfa\x55\x7b\x5d\xfc\x00\x00\x5e\x41\x5c\x7e\x5d\xfd\x51\x7a\x00\x00\x00\x00\x5e\x45\x00\x00\x00\x00\x5a\x95\x00\x00\x00\x00\x5e\x47\x5e\x44\x00\x00\x5e\x48\x00\x00\x00\x00\x4f\x5c\x00\x00\x00\x00\x00\x00\x50\xc8\x5e\x43\x5e\x46\x5b\xa2\x00\x00\x5e\x49\x00\x00\x00\x00\x00\x00\x5e\x4d\x00\x00\x00\x00\x00\x00\x5e\x4e\x5e\x4c\x4d\xc1\x00\x00\x00\x00\x00\x00\x50\x44\x5e\x4b\x00\x00\x00\x00\x00\x00\x5e\x4a\x5a\xc6\x49\xbe\x00\x00\x00\x00\x5e\x4f\x00\x00\x4d\x9a\x00\x00\x5e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5b\x00\x00\x00\x00\x00\x00\x4b\x46\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbb\x5e\x51\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x4b\xf4\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x54\x00\x00\x00\x00\x00\x00\x5e\x53\x5e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x57\x00\x00\x5e\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x59\x00\x00\x00\x00\x5e\x5a\x00\x00\x00\x00\x5a\x6f\x6a\xf9\x54\x96\x5c\x63\x53\x85\x6a\xfb\x6a\xfc\x6a\xfa\x00\x00\x4f\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x58\xee\x00\x00\x00\x00\x4c\x73\x00\x00\x00\x00\x5a\xcc\x56\xa9\x00\x00\x00\x00\x6b\x42\x6b\x41\x4d\xa7\x6a\xfd\x56\x76\x00\x00\x00\x00\x00\x00\x6b\x44\x50\xd1\x00\x00\x4a\x8b\x00\x00\x57\x4a\x6b\x45\x6b\x43\x4f\x54\x6b\x48\x00\x00\x6b\x49\x4f\x6d\x52\x58\x50\x82\x56\x82\x6b\x4a\x00\x00\x00\x00\x00\x00\x6b\x46\x6b\x47\x52\xef", /* 9180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x4c\x00\x00\x4a\xbb\x00\x00\x5c\x8e\x00\x00\x4a\xd6\x6b\x4b\x6b\x4e\x00\x00\x00\x00\x6b\x4d\x6b\x4f\x58\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x71\x54\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x50\x6b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x52\x00\x00\x00\x00\x6b\x53\x6b\x54\x6b\x55\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x57\x6b\x56\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc8\x00\x00\x5a\x74\x55\xcc\x00\x00\x50\xee\x5b\xd7\x59\xaf\x51\x5f\x00\x00\x4f\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9480 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc3\x67\xc4\x67\xc5\x5b\x8c\x4b\xa3\x67\xc7\x67\xc6\x67\xc8\x67\xc9\x54\x45\x67\xca\x67\xcb\x00\x00\x4c\x50\x4b\x97\x67\xcc\x67\xce\x00\x00\x67\xcd\x00\x00\x4c\xc5\x67\xcf\x67\xd0\x67\xd1\x4b\xda\x4a\x4e\x5b\xd2\x52\xc5\x49\x55\x4c\xd5\x67\xd2\x67\xd3\x5a\xbe\x54\x75\x4f\xfa\x57\xd8\x4d\x53\x67\xd5\x67\xd4\x67\xd7\x67\xd6\x53\x45\x67\xd8\x67\xd9\x54\x4e\x67\xda\x54\x4f\x67\xdb\x49\xa6\x67\xdc\x67\xdd\x67\xde\x67\xdf\x67\xe0\x5c\x8b\x67\xe1\x67\xe2\x4e\xd7\x67\xe3\x5a\x6b\x56\xf9\x49\xab\x51\x86\x67\xe4\x54\x46\x52\x4d\x00\x00\x67\xe5\x67\xe6\x67\xe7\x67\xe8\x67\xe9\x67\xea\x67\xeb\x00\x00\x67\xec\x67\xed\x67\xee\x00\x00\x00\x00\x67\xef\x67\xf0\x67\xf1\x67\xf3\x67\xf2\x00\x00\x67\xf4\x57\x4d\x51\xc0\x67\xf5\x67\xf6\x67\xf7\x5b\x41\x67\xf8\x58\x53\x67\xf9\x67\xfa\x00\x00\x67\xfb\x67\xfc\x68\x41\x67\xfd\x68\x42\x4c\xf4\x52\x9b\x68\x43\x68\x44\x4f\x62\x59\xbe\x49\xf8\x68\x45\x68\x46\x68\x47\x59\xf7\x68\x48\x5b\xfc\x68\x49\x53\xcb\x00\x00\x68\x4a\x68\x4b\x51\x54\x68\x4c", /* 9500 */ "\x58\x9b\x56\x99\x68\x4e\x68\x4d\x4a\x9b\x4d\x99\x68\x4f\x68\x50\x58\xe1\x68\x51\x68\x52\x4c\x87\x58\xbe\x68\x53\x68\x54\x68\x55\x54\xf0\x56\xdf\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x5b\x81\x68\x5b\x4a\xec\x52\x4a\x68\x5c\x00\x00\x68\x5d\x68\x5e\x68\x5f\x00\x00\x57\xfc\x68\x60\x51\xdf\x4a\xb7\x5c\x56\x4f\x96\x00\x00\x58\x67\x68\x63\x68\x61\x68\x62\x68\x64\x4b\xa6\x4e\xfb\x4f\xe1\x52\x6c\x68\x65\x68\x66\x00\x00\x68\x67\x68\x6f\x68\x68\x68\x69\x68\x6a\x54\x62\x68\x92\x4b\xcc\x68\x6b\x00\x00\x68\x6c\x68\x6d\x4b\xc5\x52\x5e\x68\x6e\x00\x00\x68\x70\x68\x71\x68\x72\x5b\x93\x00\x00\x68\x73\x52\xf6\x00\x00\x68\x74\x52\xf7\x68\x75\x68\x76\x4c\xe3\x48\xf6\x68\x77\x68\x78\x68\x79\x00\x00\x68\x7a\x68\x7b\x68\x7c\x68\x7d\x00\x00\x68\x7e\x4f\xb4\x68\x82\x68\x7f\x68\x81\x00\x00\x68\x83\x68\x84\x51\x6d\x68\x85\x68\x86\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x50\xd7\x00\x00\x68\x8e\x51\x4d\x68\x8f\x68\x90\x68\x91\x00\x00\x00\x00\x58\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x44", /* 9580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x65\x62\x65\x55\x61\x62\x66\x00\x00\x49\x75\x57\xc9\x4a\xb2\x54\xf1\x62\x67\x58\x70\x62\x68\x4e\xe3\x62\x69\x62\x6a\x52\x66\x5b\x42\x52\xd5\x4d\x8c\x57\xc4\x62\x6b\x52\x97\x62\x6c\x00\x00", /* 9600 */ "\x4c\x47\x4c\xf2\x4d\xd1\x62\x6d\x62\x6e\x5a\xc3\x62\x6f\x00\x00\x62\x70\x59\x6b\x62\x71\x62\x72\x62\x73\x62\x74\x59\x76\x62\x75\x49\xfa\x50\xba\x62\x76\x00\x00\x50\xaa\x62\x77\x62\x78\x62\x79\x00\x00\x62\x7a\x62\x7b\x00\x00\x4c\xb6\x5d\xe1\x00\x00\x4b\xd2\x00\x00\x5d\xe3\x5d\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe5\x00\x00\x00\x00\x00\x00\x54\xed\x00\x00\x00\x00\x5d\xe4\x4c\x60\x59\x95\x59\xf4\x5b\x94\x4f\x77\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x89\x5d\xe7\x5d\xe6\x00\x00\x48\xa1\x57\x73\x00\x00\x5d\xe8\x00\x00\x4c\xbc\x4e\xc9\x51\xbc\x51\xa3\x4a\x62\x5d\xe9\x00\x00\x51\xa9\x52\xaf\x4f\x55\x00\x00\x00\x00\x58\x7e\x00\x00\x00\x00\x00\x00\x5d\xea\x55\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7d\x00\x00\x00\x00\x00\x00\x5d\xeb\x00\x00\x4b\xb7\x5a\xb9\x00\x00\x4a\x9e\x00\x00\x00\x00\x5d\xec\x5a\xc8\x58\x75\x53\x84\x00\x00\x5d\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xee\x00\x00\x5d\xef\x51\x8b\x56\xd4\x58\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x88\x51\xa0\x00\x00\x5d\xf0\x00\x00\x00\x00\x56\x86\x00\x00\x5d\xf1\x00\x00\x56\x87\x59\xfd\x00\x00\x00\x00\x00\x00\x4c\xf3\x00\x00\x00\x00\x5d\xf2\x48\xae\x58\x56\x00\x00\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf3\x00\x00\x00\x00\x62\x64\x00\x00\x00\x00\x51\x45\x00\x00\x00\x00\x6b\xbe\x00\x00\x00\x00\x6b\xbf\x6b\xc0\x52\xd0\x00\x00\x54\xb7\x59\x84\x00\x00\x00\x00\x58\xda\x59\x65\x4e\xae\x4d\x6d\x00\x00\x68\x95\x00\x00\x00\x00\x4a\xc5\x5a\x5a\x6b\xc1\x4a\x9c\x00\x00\x00\x00\x6b\xc2\x00\x00\x00\x00\x4b\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8b\x6b\xa6\x59\x49\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa8\x00\x00\x00\x00\x00\x00\x6b\xa7\x00\x00\x00\x00\x51\x84\x50\xd6\x00\x00\x49\x42\x00\x00\x00\x00\x00\x00\x00\x00\x57\xec\x00\x00", /* 9700 */ "\x58\xe7\x6b\xaa\x00\x00\x00\x00\x58\x97\x00\x00\x6b\xa9\x5b\x91\x6b\xab\x52\x59\x00\x00\x00\x00\x00\x00\x4e\x95\x6b\xad\x6b\xac\x00\x00\x00\x00\x00\x00\x52\xdd\x00\x00\x00\x00\x51\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x4a\x00\x00\x58\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xae\x00\x00\x00\x00\x6b\xaf\x00\x00\x00\x00\x6b\xb0\x00\x00\x51\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd3\x53\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x81\x6b\xa5\x00\x00\x00\x00\x4f\xb7\x00\x00\x00\x00\x4f\xb1\x00\x00\x4b\x86\x00\x00\x00\x00\x4c\x67\x00\x00\x50\x5f\x52\x72\x52\x87\x00\x00\x00\x00\x5c\xcb\x00\x00\x00\x00\x00\x00\x4c\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9a\x59\x45\x00\x00\x48\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x50\x00\x00\x00\x00\x00\x00", /* 9780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xab\x00\x00\x48\xaf\x00\x00\x00\x00\x00\x00\x6c\x52\x6c\x53\x00\x00\x6c\x54\x00\x00\x00\x00\x00\x00\x54\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xce\x00\x00\x00\x00\x6c\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x56\x00\x00\x49\x7e\x00\x00\x6c\x55\x00\x00\x00\x00\x6c\x58\x00\x00\x6c\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa3\x54\xcc\x00\x00\x4d\xaa\x64\xb7\x64\xb8\x64\xb9\x4f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf3\x00\x00\x5a\xce\x55\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb2\x4b\xa4\x54\x8b\x69\x9d\x58\x8f\x56\x53\x58\xea\x64\x90\x57\x88\x4d\x6b\x4b\xd8", /* 9880 */ "\x69\x9e\x48\xe3\x56\x6c\x69\x9f\x5a\xa3\x51\xac\x51\x8d\x53\xc3\x4f\xb0\x69\xa0\x4e\xd4\x00\x00\x69\xa1\x69\xa2\x00\x00\x69\xa3\x59\xc2\x53\xb4\x00\x00\x57\x67\x69\xa4\x00\x00\x5a\x51\x50\x65\x56\xe1\x00\x00\x69\xa5\x69\xa6\x59\x75\x4b\xed\x69\xa7\x69\xa8\x4b\x7f\x69\xa9\x69\xaa\x00\x00\x49\xfb\x69\xab\x69\xac\x54\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x88\x00\x00\x00\x00\x66\xa8\x66\xa9\x66\xaa\x00\x00\x66\xab\x00\x00\x00\x00\x53\xad\x66\xac\x66\xad\x00\x00\x00\x00\x00\x00\x4c\x69\x55\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb7\x6c\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x70\x00\x00\x00\x00\x49\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x73\x6c\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xba\x00\x00\x4e\xa1\x00\x00\x61\xbb\x61\xbc\x61\xbd\x61\xbe\x61\xbf\x61\xc0\x4c\x59\x59\xfa\x4f\x44\x55\xcd\x49\x45\x56\x67\x00\x00\x61\xc1\x4b\xfb\x54\xc3\x61\xc2\x00\x00\x00\x00\x4f\x68\x00\x00\x49\x9e\x61\xc3\x00\x00\x4b\xf5", /* 9980 */ "\x61\xc4\x52\xd8\x00\x00\x00\x00\x61\xc5\x58\x7a\x4d\x7d\x61\xc6\x50\xa0\x00\x00\x61\xc7\x49\xf5\x00\x00\x61\xc8\x00\x00\x51\x94\x61\xc9\x61\xca\x51\xf7\x61\xcb\x61\xcc\x61\xcd\x55\xd6\x5c\xb7\x5d\x86\x58\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa4\x00\x00\x00\x00\x5e\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xec\x5a\xa5\x57\x74\x59\x51\x4a\x7b\x54\x9e\x00\x00\x49\xb4\x51\xbe\x63\xdf\x55\xba\x63\xe0\x63\xe1\x4f\xd3\x63\xe2\x5c\x44\x57\x75\x63\xe4\x4e\xdc\x63\xe3", /* 9a80 */ "\x63\xe5\x63\xe6\x51\xed\x00\x00\x4f\x5e\x63\xe7\x51\xe5\x4d\xa6\x63\xe8\x00\x00\x63\xe9\x4a\x72\x59\x8a\x00\x00\x00\x00\x50\x45\x63\xea\x53\xee\x63\xeb\x63\xec\x00\x00\x00\x00\x63\xed\x53\xac\x63\xee\x00\x00\x55\x47\x63\xef\x63\xf0\x63\xf1\x63\x59\x63\xf2\x63\xf3\x51\xe1\x63\xf4\x63\xf5\x5b\xe7\x63\xf6\x00\x00\x63\xf7\x4d\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x5b\x6c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x5e\x6c\x5c\x4d\xa0\x00\x00\x6c\x5f\x00\x00\x6c\x60\x00\x00\x00\x00\x00\x00\x6c\x62\x6c\x61\x6c\x64\x00\x00\x00\x00\x6c\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x65\x6c\x66\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x67\x00\x00\x56\x89\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x74\x00\x00\x6c\x75\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x76\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x78\x00\x00\x6c\x7a\x00\x00\x6c\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7b\x00\x00\x6c\x79\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x5c\x77\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7d\x00\x00\x00\x00\x00\x00\x6c\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7f\x00\x00\x00\x00\x00\x00\x6c\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6b\x00\x00\x00\x00\x5c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x98\x4d\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9e\x4e\x8b\x6c\x69\x53\xc6\x6c\x68\x00\x00\x6c\x6a\x6c\x6c\x6c\x6b\x00\x00\x00\x00\x00\x00\x6c\x6d\x00\x00\x57\xb9\x00\x00\x6c\x6e\x00\x00\x00\x00\x52\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b80 */ NULL, /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x84\x00\x00\x00\x00\x6b\xce", /* 9c80 */ "\x00\x00\x51\xb2\x6b\xcf\x00\x00\x00\x00\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\x00\x00\x00\x00\x6b\xd5\x00\x00\x49\x4b\x6b\xd6\x00\x00\x6b\xd7\x6b\xd8\x6b\xd9\x00\x00\x6b\xda\x6b\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xdc\x6b\xdd\x58\x6a\x00\x00\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x50\xef\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x00\x00\x6b\xe9\x00\x00\x6b\xea\x6b\xeb\x00\x00\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x4f\xa7\x00\x00\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xf9\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\x00\x00\x00\x00\x6b\xfc\x6b\xfd\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\x00\x00\x00\x00\x6c\x46\x6c\x47\x6c\x48\x49\x8f\x6c\x49\x6c\x4a\x6c\x4b\x00\x00\x00\x00\x6c\x4c\x6c\x4d\x51\x7b\x6c\x4e\x00\x00\x00\x00\x6c\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf0\x68\xae\x4e\xa5\x68\xaf\x52\x9a\x00\x00\x53\x58\x59\x5b\x00\x00\x68\xb0\x68\xb1\x68\xb2\x68\xb3\x68\xb4\x59\x5c\x00\x00\x59\x8d\x00\x00\x68\xb6\x68\xb5\x5a\xa6\x00\x00\x57\x72\x68\xb7\x68\xb9\x68\xb8\x68\xba\x68\xbb\x00\x00\x00\x00\x4c\xea\x68\xbc\x4d\xe7\x00\x00\x68\xbd\x68\xbe\x4f\xe8\x68\xbf\x4b\xeb\x68\xc0\x68\xc1\x68\xc2\x68\xc3\x54\xb4\x68\xc4\x68\xc5\x00\x00\x68\xc6\x53\x95\x00\x00\x68\xc7\x00\x00\x00\x00\x00\x00\x68\xc8\x00\x00\x68\xc9\x6c\x5d\x00\x00\x68\xca\x68\xcb\x68\xcc\x00\x00\x68\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x68\xce\x4d\xd6\x00\x00\x68\xcf\x68\xd0\x68\xd1\x68\xd2\x68\xd3\x68\xd4\x68\xd5\x68\xd7\x00\x00\x00\x00\x5a\x45\x68\xd6\x00\x00\x68\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5a\x51\xb8", /* 9e80 */ "\x00\x00\x00\x00\x6c\x85\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x86\x6c\x87\x00\x00\x00\x00\x6c\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x89\x51\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x8b\x00\x00\x6c\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xef\x00\x00\x00\x00\x00\x00\x6a\xee\x00\x00\x00\x00\x51\xe8\x00\x00\x6c\x82\x6c\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x85\x00\x00\x00\x00\x00\x00\x55\xf1\x50\xe7\x68\xa3\x00\x00\x4d\xd9\x00\x00\x00\x00\x54\x4d\x00\x00\x00\x00\x00\x00\x52\xab\x00\x00\x00\x00\x6c\x8d\x6c\x8e\x6c\x8f\x00\x00\x6c\x91\x6c\x90\x00\x00\x6c\x92\x00\x00\x00\x00\x6c\x95\x00\x00\x6c\x94\x00\x00\x6c\x93\x6c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x8a\x00\x00\x67\x8b\x67\x8c\x00\x00\x6b\xbb\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xbc\x00\x00\x6b\xbd\x4b\xa5\x00\x00\x5c\xbd\x00\x00\x00\x00\x4d\x64\x00\x00\x00\x00\x00\x00\x5c\xba\x00\x00\x5e\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf2\x00\x00\x6c\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x99\x00\x00\x00\x00\x6c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9c\x00\x00\x6c\x9b\x00\x00\x49\x67\x00\x00\x6c\x9d\x6c\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x66\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7d", /* 9f80 */ "\x6b\xb2\x00\x00\x00\x00\x6b\xb3\x51\x85\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x54\xa2\x6b\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9b\x4d\x48\x67\x89\x00\x00\x00\x00\x00\x00\x4d\x8b\x5d\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1", /* e080 */ "\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85", /* e100 */ "\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48", /* e180 */ "\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9", /* e200 */ "\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d", /* e280 */ "\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50", /* e300 */ "\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1", /* e380 */ "\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95", /* e400 */ "\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58", /* e480 */ "\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9", /* e500 */ "\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d", /* e580 */ "\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60", /* e600 */ "\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1", /* e680 */ "\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5", /* e700 */ "\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5b\x44\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-837_P100-2000 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x21\x6a\x21\x6b\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\xf8\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x15\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x64\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x65\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x16\x30\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x36\x22\x27\x22\x28\x22\x11\x22\x0f\x22\x2a\x22\x29\x22\x08\x22\x37\x22\x1a\x22\xa5\x22\x25\x22\x20\x23\x12\x22\x99\x22\x2b\x22\x2e\x22\x61\x22\x4c\x22\x48\x22\x3d\x22\x1d\x00\x00\x22\x6e\x22\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x20\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x88\x24\x89\x24\x8a\x24\x8b\x24\x8c\x24\x8d\x24\x8e\x24\x8f\x24\x90\x24\x91\x24\x92\x24\x93\x24\x94\x24\x95\x24\x96\x24\x97\x24\x98\x24\x99\x24\x9a\x24\x9b\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x24\x7e\x24\x7f\x24\x80\x24\x81\x24\x82\x24\x83\x24\x84\x24\x85\x24\x86\x24\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x20\x32\x21\x32\x22\x32\x23\x32\x24\x32\x25\x32\x26\x32\x27\x32\x28\x32\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xe1\x01\xce\x00\xe0\x01\x13\x00\xe9\x01\x1b\x00\xe8\x01\x2b\x00\xed\x01\xd0\x00\xec\x01\x4d\x00\xf3\x01\xd2\x00\xf2\x01\x6b\x00\xfa\x01\xd4\x00\xf9\x01\xd6\x01\xd8\x01\xda\x01\xdc\x00\xfc\x00\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f", /* 4680 */ "\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x25\x01\x25\x02\x25\x03\x25\x04\x25\x05\x25\x06\x25\x07\x25\x08\x25\x09\x25\x0a\x25\x0b\x25\x0c\x25\x0d\x25\x0e\x25\x0f\x25\x10\x25\x11\x25\x12\x25\x13\x25\x14\x25\x15\x25\x16\x25\x17\x25\x18\x25\x19\x25\x1a\x25\x1b\x25\x1c\x25\x1d\x25\x1e\x25\x1f\x25\x20\x25\x21\x25\x22\x25\x23\x25\x24\x25\x25\x25\x26\x25\x27\x25\x28\x25\x29\x25\x2a\x25\x2b\x25\x2c\x25\x2d\x25\x2e\x25\x2f\x25\x30\x25\x31\x25\x32\x25\x33\x25\x34\x25\x35\x25\x36\x25\x37\x25\x38\x25\x39\x25\x3a\x25\x3b\x25\x3c\x25\x3d\x25\x3e\x25\x3f\x25\x40\x25\x41\x25\x42\x25\x43\x25\x44\x25\x45\x25\x46\x25\x47\x25\x48\x25\x49\x25\x4a\x25\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4a\x96\x3f\x57\xc3\x63\x28\x54\xce\x55\x09\x54\xc0\x76\x91\x76\x4c\x85\x3c\x77\xee\x82\x7e\x78\x8d\x72\x31\x96\x98\x97\x8d\x6c\x28\x5b\x89\x4f\xfa\x63\x09\x66\x97\x5c\xb8\x80\xfa\x68\x48\x80\xae\x66\x02\x76\xce\x51\xf9\x65\x56\x71\xac\x7f\xf1\x88\x84\x50\xb2\x59\x65\x61\xca\x6f\xb3\x82\xad\x63\x4c\x62\x52\x53\xed\x54\x27\x7b\x06\x51\x6b\x75\xa4\x5d\xf4\x62\xd4\x8d\xcb\x97\x76\x62\x8a\x80\x19\x57\x5d\x97\x38\x7f\x62\x72\x38\x76\x7d\x67\xcf\x76\x7e\x64\x46\x4f\x70\x8d\x25\x62\xdc\x7a\x17\x65\x91\x73\xed\x64\x2c\x62\x73\x82\x2c\x98\x81\x67\x7f\x72\x48\x62\x6e\x62\xcc\x4f\x34\x74\xe3\x53\x4a\x52\x9e\x7e\xca\x90\xa6\x5e\x2e\x68\x86\x69\x9c\x81\x80\x7e\xd1\x68\xd2\x78\xc5\x86\x8c\x95\x51\x50\x8d\x8c\x24\x82\xde\x80\xde\x53\x05\x89\x12\x52\x65\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x84\x96\xf9\x4f\xdd\x58\x21\x99\x71\x5b\x9d\x62\xb1\x62\xa5\x66\xb4\x8c\x79\x9c\x8d\x72\x06\x67\x6f\x78\x91\x60\xb2\x53\x51\x53\x17\x8f\x88\x80\xcc\x8d\x1d\x94\xa1\x50\x0d\x72\xc8\x59\x07\x60\xeb\x71\x19\x88\xab\x59\x54\x82\xef\x67\x2c\x7b\x28\x5d\x29\x7e\xf7\x75\x2d\x6c\xf5\x8e\x66\x8f\xf8\x90\x3c\x9f\x3b\x6b\xd4\x91\x19\x7b\x14\x5f\x7c\x78\xa7\x84\xd6\x85\x3d\x6b\xd5\x6b\xd9\x6b\xd6\x5e\x01\x5e\x87\x75\xf9\x95\xed\x65\x5d\x5f\x0a\x5f\xc5\x8f\x9f\x58\xc1\x81\xc2\x90\x7f\x96\x5b\x97\xad\x8f\xb9", /* 4980 */ "\x00\x00\x7f\x16\x8d\x2c\x62\x41\x4f\xbf\x53\xd8\x53\x5e\x8f\xa8\x8f\xa9\x8f\xab\x90\x4d\x68\x07\x5f\x6a\x81\x98\x88\x68\x9c\xd6\x61\x8b\x52\x2b\x76\x2a\x5f\x6c\x65\x8c\x6f\xd2\x6e\xe8\x5b\xbe\x64\x48\x51\x75\x51\xb0\x67\xc4\x4e\x19\x79\xc9\x99\x7c\x70\xb3\x75\xc5\x5e\x76\x73\xbb\x83\xe0\x64\xad\x62\xe8\x94\xb5\x6c\xe2\x53\x5a\x52\xc3\x64\x0f\x94\xc2\x7b\x94\x4f\x2f\x5e\x1b\x82\x36\x81\x16\x81\x8a\x6e\x24\x6c\xca\x9a\x73\x63\x55\x53\x5c\x54\xfa\x88\x65\x57\xe0\x4e\x0d\x5e\x03\x6b\x65\x7c\x3f\x90\xe8\x60\x16\x64\xe6\x73\x1c\x88\xc1\x67\x50\x62\x4d\x8d\x22\x77\x6c\x8e\x29\x91\xc7\x5f\x69\x83\xdc\x85\x21\x99\x10\x53\xc2\x86\x95\x6b\x8b\x60\xed\x60\xe8\x70\x7f\x82\xcd\x82\x31\x4e\xd3\x6c\xa7\x85\xcf\x64\xcd\x7c\xd9\x69\xfd\x66\xf9\x83\x49\x53\x95\x7b\x56\x4f\xa7\x51\x8c\x6d\x4b\x5c\x42\x8e\x6d\x63\xd2\x53\xc9\x83\x2c\x83\x36\x67\xe5\x78\xb4\x64\x3d\x5b\xdf\x5c\x94\x5d\xee\x8b\xe7\x62\xc6\x67\xf4\x8c\x7a\x64\x00\x63\xba\x87\x49\x99\x8b\x8c\x17\x7f\x20\x94\xf2\x4e\xa7\x96\x10\x98\xa4\x66\x0c\x73\x16\x00\x00\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x3a\x5c\x1d\x5e\x38\x95\x7f\x50\x7f\x80\xa0\x53\x82\x65\x5e\x75\x45\x55\x31\x50\x21\x8d\x85\x62\x84\x94\x9e\x67\x1d\x56\x32\x6f\x6e\x5d\xe2\x54\x35\x70\x92\x8f\x66\x62\x6f\x64\xa4\x63\xa3\x5f\x7b\x6f\x88\x90\xf4\x81\xe3\x8f\xb0\x5c\x18\x66\x68\x5f\xf1\x6c\x89\x96\x48\x8d\x81\x88\x6c\x64\x91\x79\xf0\x57\xce\x6a\x59\x62\x10\x54\x48\x4e\x58\x7a\x0b\x60\xe9\x6f\x84\x8b\xda\x62\x7f\x90\x1e\x9a\x8b\x79\xe4\x54\x03\x75\xf4\x63\x01\x53\x19\x6c\x60\x8f\xdf\x5f\x1b\x9a\x70\x80\x3b\x9f\x7f\x4f\x88\x5c\x3a", /* 4a80 */ "\x00\x00\x8d\x64\x7f\xc5\x65\xa5\x70\xbd\x51\x45\x51\xb2\x86\x6b\x5d\x07\x5b\xa0\x62\xbd\x91\x6c\x75\x74\x8e\x0c\x7a\x20\x61\x01\x7b\x79\x4e\xc7\x7e\xf8\x77\x85\x4e\x11\x81\xed\x52\x1d\x51\xfa\x6a\x71\x53\xa8\x8e\x87\x95\x04\x96\xcf\x6e\xc1\x96\x64\x69\x5a\x78\x40\x50\xa8\x77\xd7\x64\x10\x89\xe6\x59\x04\x63\xe3\x5d\xdd\x7a\x7f\x69\x3d\x4f\x20\x82\x39\x55\x98\x4e\x32\x75\xae\x7a\x97\x5e\x62\x5e\x8a\x95\xef\x52\x1b\x54\x39\x70\x8a\x63\x76\x95\x24\x57\x82\x66\x25\x69\x3f\x91\x87\x55\x07\x6d\xf3\x7e\xaf\x88\x22\x62\x33\x7e\xf0\x75\xb5\x83\x28\x78\xc1\x96\xcc\x8f\x9e\x61\x48\x74\xf7\x8b\xcd\x6b\x64\x52\x3a\x8d\x50\x6b\x21\x80\x6a\x84\x71\x56\xf1\x53\x06\x4e\xce\x4e\x1b\x51\xd1\x7c\x97\x91\x8b\x7c\x07\x4f\xc3\x8e\x7f\x7b\xe1\x7a\x9c\x64\x67\x5d\x14\x50\xac\x81\x06\x76\x01\x7c\xb9\x6d\xec\x7f\xe0\x67\x51\x5b\x58\x5b\xf8\x78\xcb\x64\xae\x64\x13\x63\xaa\x63\x2b\x95\x19\x64\x2d\x8f\xbe\x7b\x54\x76\x29\x62\x53\x59\x27\x54\x46\x6b\x79\x50\xa3\x62\x34\x5e\x26\x6b\x86\x4e\xe3\x8d\x37\x88\x8b\x5f\x85\x90\x2e\x00\x00\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x20\x80\x3d\x62\xc5\x4e\x39\x53\x55\x90\xf8\x63\xb8\x80\xc6\x65\xe6\x6c\x2e\x4f\x46\x60\xee\x6d\xe1\x8b\xde\x5f\x39\x86\xcb\x5f\x53\x63\x21\x51\x5a\x83\x61\x68\x63\x52\x00\x63\x63\x8e\x48\x50\x12\x5c\x9b\x79\x77\x5b\xfc\x52\x30\x7a\x3b\x60\xbc\x90\x53\x76\xd7\x5f\xb7\x5f\x97\x76\x84\x8e\x6c\x70\x6f\x76\x7b\x7b\x49\x77\xaa\x51\xf3\x90\x93\x58\x24\x4f\x4e\x6e\xf4\x8f\xea\x65\x4c\x7b\x1b\x72\xc4\x6d\xa4\x7f\xdf\x5a\xe1\x62\xb5\x5e\x95\x57\x30\x84\x82\x7b\x2c\x5e\x1d\x5f\x1f\x90\x12\x7f\x14\x98\xa0", /* 4b80 */ "\x00\x00\x63\x82\x6e\xc7\x78\x98\x70\xb9\x51\x78\x97\x5b\x57\xab\x75\x35\x4f\x43\x75\x38\x5e\x97\x60\xe6\x59\x60\x6d\xc0\x6b\xbf\x78\x89\x53\xfc\x96\xd5\x51\xcb\x52\x01\x63\x89\x54\x0a\x94\x93\x8c\x03\x8d\xcc\x72\x39\x78\x9f\x87\x76\x8f\xed\x8c\x0d\x53\xe0\x4e\x01\x76\xef\x53\xee\x94\x89\x98\x76\x9f\x0e\x95\x2d\x5b\x9a\x8b\xa2\x4e\x22\x4e\x1c\x51\xac\x84\x63\x61\xc2\x52\xa8\x68\x0b\x4f\x97\x60\x6b\x51\xbb\x6d\x1e\x51\x5c\x62\x96\x65\x97\x96\x61\x8c\x46\x90\x17\x75\xd8\x90\xfd\x77\x63\x6b\xd2\x72\x8a\x72\xec\x8b\xfb\x58\x35\x77\x79\x8d\x4c\x67\x5c\x95\x40\x80\x9a\x5e\xa6\x6e\x21\x59\x92\x7a\xef\x77\xed\x95\x3b\x6b\xb5\x65\xad\x7f\x0e\x58\x06\x51\x51\x96\x1f\x5b\xf9\x58\xa9\x54\x28\x8e\x72\x65\x66\x98\x7f\x56\xe4\x94\x9d\x76\xfe\x90\x41\x63\x87\x54\xc6\x59\x1a\x59\x3a\x57\x9b\x8e\xb2\x67\x35\x8d\xfa\x82\x35\x52\x41\x60\xf0\x58\x15\x86\xfe\x5c\xe8\x9e\x45\x4f\xc4\x98\x9d\x8b\xb9\x5a\x25\x60\x76\x53\x84\x62\x7c\x90\x4f\x91\x02\x99\x7f\x60\x69\x80\x0c\x51\x3f\x80\x33\x5c\x14\x99\x75\x6d\x31\x4e\x8c\x00\x00\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x30\x53\xd1\x7f\x5a\x7b\x4f\x4f\x10\x4e\x4f\x96\x00\x6c\xd5\x73\xd0\x85\xe9\x5e\x06\x75\x6a\x7f\xfb\x6a\x0a\x77\xfe\x94\x92\x7e\x41\x51\xe1\x70\xe6\x53\xcd\x8f\xd4\x83\x03\x8d\x29\x72\xaf\x99\x6d\x6c\xdb\x57\x4a\x82\xb3\x65\xb9\x80\xaa\x62\x3f\x96\x32\x59\xa8\x4e\xff\x8b\xbf\x7e\xba\x65\x3e\x83\xf2\x97\x5e\x55\x61\x98\xde\x80\xa5\x53\x2a\x8b\xfd\x54\x20\x80\xba\x5e\x9f\x6c\xb8\x8d\x39\x82\xac\x91\x5a\x54\x29\x6c\x1b\x52\x06\x7e\xb7\x57\x5f\x71\x1a\x6c\x7e\x7c\x89\x59\x4b\x4e\xfd\x5f\xff\x61\x24", /* 4c80 */ "\x00\x00\x7c\xaa\x4e\x30\x5c\x01\x67\xab\x87\x02\x5c\xf0\x95\x0b\x98\xce\x75\xaf\x70\xfd\x90\x22\x51\xaf\x7f\x1d\x8b\xbd\x59\x49\x51\xe4\x4f\x5b\x54\x26\x59\x2b\x65\x77\x80\xa4\x5b\x75\x62\x76\x62\xc2\x8f\x90\x5e\x45\x6c\x1f\x7b\x26\x4f\x0f\x4f\xd8\x67\x0d\x6d\x6e\x6d\xaa\x79\x8f\x88\xb1\x5f\x17\x75\x2b\x62\x9a\x8f\x85\x4f\xef\x91\xdc\x65\xa7\x81\x2f\x81\x51\x5e\x9c\x81\x50\x8d\x74\x52\x6f\x89\x86\x8d\x4b\x59\x0d\x50\x85\x4e\xd8\x96\x1c\x72\x36\x81\x79\x8d\x1f\x5b\xcc\x8b\xa3\x96\x44\x59\x87\x7f\x1a\x54\x90\x56\x76\x56\x0e\x8b\xe5\x65\x39\x69\x82\x94\x99\x76\xd6\x6e\x89\x5e\x72\x75\x18\x67\x46\x67\xd1\x7a\xff\x80\x9d\x8d\x76\x61\x1f\x79\xc6\x65\x62\x8d\x63\x51\x88\x52\x1a\x94\xa2\x7f\x38\x80\x9b\x7e\xb2\x5c\x97\x6e\x2f\x67\x60\x7b\xd9\x76\x8b\x9a\xd8\x81\x8f\x7f\x94\x7c\xd5\x64\x1e\x95\x50\x7a\x3f\x54\x4a\x54\xe5\x6b\x4c\x64\x01\x62\x08\x9e\x3d\x80\xf3\x75\x99\x52\x72\x97\x69\x84\x5b\x68\x3c\x86\xe4\x96\x01\x96\x94\x94\xec\x4e\x2a\x54\x04\x7e\xd9\x68\x39\x8d\xdf\x80\x15\x66\xf4\x5e\x9a\x7f\xb9\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x80\x3f\x68\x97\x5d\xe5\x65\x3b\x52\x9f\x60\x6d\x9f\x9a\x4f\x9b\x8e\xac\x51\x6c\x5b\xab\x5f\x13\x5d\xe9\x6c\x5e\x62\xf1\x8d\x21\x51\x71\x94\xa9\x52\xfe\x6c\x9f\x82\xdf\x72\xd7\x57\xa2\x67\x84\x8d\x2d\x59\x1f\x8f\x9c\x83\xc7\x54\x95\x7b\x8d\x4f\x30\x6c\xbd\x5b\x64\x59\xd1\x9f\x13\x53\xe4\x86\xca\x9a\xa8\x8c\x37\x80\xa1\x65\x45\x98\x7e\x56\xfa\x96\xc7\x52\x2e\x74\xdc\x52\x50\x5b\xe1\x63\x02\x89\x02\x4e\x56\x62\xd0\x60\x2a\x68\xfa\x51\x73\x5b\x98\x51\xa0\x89\xc2\x7b\xa1\x99\x86\x7f\x50\x60\xef", /* 4d80 */ "\x00\x00\x70\x4c\x8d\x2f\x51\x49\x5e\x7f\x90\x1b\x74\x70\x89\xc4\x57\x2d\x78\x45\x5f\x52\x9f\x9f\x95\xfa\x8f\x68\x9b\x3c\x8b\xe1\x76\x78\x68\x42\x67\xdc\x8d\xea\x8d\x35\x52\x3d\x8f\x8a\x6e\xda\x68\xcd\x95\x05\x90\xed\x56\xfd\x67\x9c\x88\xf9\x8f\xc7\x54\xc8\x9a\xb8\x5b\x69\x6d\x77\x6c\x26\x4e\xa5\x5b\xb3\x9a\x87\x91\x63\x61\xa8\x90\xaf\x97\xe9\x54\x2b\x6d\xb5\x5b\xd2\x51\xfd\x55\x8a\x7f\x55\x7f\xf0\x64\xbc\x63\x4d\x65\xf1\x61\xbe\x60\x8d\x71\x0a\x6c\x57\x6c\x49\x59\x2f\x67\x6d\x82\x2a\x58\xd5\x56\x8e\x8c\x6a\x6b\xeb\x90\xdd\x59\x7d\x80\x17\x53\xf7\x6d\x69\x54\x75\x55\x9d\x83\x77\x83\xcf\x68\x38\x79\xbe\x54\x8c\x4f\x55\x54\x08\x76\xd2\x8c\x89\x96\x02\x6c\xb3\x6d\xb8\x8d\x6b\x89\x10\x9e\x64\x8d\x3a\x56\x3f\x9e\xd1\x75\xd5\x5f\x88\x72\xe0\x60\x68\x54\xfc\x4e\xa8\x6a\x2a\x88\x61\x60\x52\x8f\x70\x54\xc4\x70\xd8\x86\x79\x9e\x3f\x6d\x2a\x5b\x8f\x5f\x18\x7e\xa2\x55\x89\x4f\xaf\x73\x34\x54\x3c\x53\x9a\x50\x19\x54\x0e\x54\x7c\x4e\x4e\x5f\xfd\x74\x5a\x58\xf6\x84\x6b\x80\xe1\x87\x74\x72\xd0\x7c\xca\x6e\x56\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x27\x86\x4e\x55\x2c\x62\xa4\x4e\x92\x6c\xaa\x62\x37\x82\xb1\x54\xd7\x53\x4e\x73\x3e\x6e\xd1\x75\x3b\x52\x12\x53\x16\x8b\xdd\x69\xd0\x5f\x8a\x60\x00\x6d\xee\x57\x4f\x6b\x22\x73\xaf\x68\x53\x8f\xd8\x7f\x13\x63\x62\x60\xa3\x55\x24\x75\xea\x8c\x62\x71\x15\x6d\xa3\x5b\xa6\x5e\x7b\x83\x52\x61\x4c\x9e\xc4\x78\xfa\x87\x57\x7c\x27\x76\x87\x51\xf0\x60\xf6\x71\x4c\x66\x43\x5e\x4c\x60\x4d\x8c\x0e\x70\x70\x63\x25\x8f\x89\x5f\xbd\x60\x62\x86\xd4\x56\xde\x6b\xc1\x60\x94\x61\x67\x53\x49\x60\xe0\x66\x66\x8d\x3f", /* 4e80 */ "\x00\x00\x79\xfd\x4f\x1a\x70\xe9\x6c\x47\x8b\xb3\x8b\xf2\x7e\xd8\x83\x64\x66\x0f\x5a\x5a\x9b\x42\x6d\x51\x6d\xf7\x8c\x41\x6d\x3b\x4f\x19\x70\x6b\x83\xb7\x62\x16\x60\xd1\x97\x0d\x8d\x27\x79\x78\x51\xfb\x57\x3e\x57\xfa\x67\x3a\x75\x78\x7a\x3d\x79\xef\x7b\x95\x80\x8c\x99\x65\x8f\xf9\x6f\xc0\x8b\xa5\x9e\x21\x59\xec\x7e\xe9\x7f\x09\x54\x09\x67\x81\x68\xd8\x8f\x91\x7c\x4d\x96\xc6\x53\xca\x60\x25\x75\xbe\x6c\x72\x53\x73\x5a\xc9\x7e\xa7\x63\x24\x51\xe0\x81\x0a\x5d\xf1\x84\xdf\x62\x80\x51\x80\x5b\x63\x4f\x0e\x79\x6d\x52\x42\x60\xb8\x6d\x4e\x5b\xc4\x5b\xc2\x8b\xa1\x8b\xb0\x65\xe2\x5f\xcc\x96\x45\x59\x93\x7e\xe7\x7e\xaa\x56\x09\x67\xb7\x59\x39\x4f\x73\x5b\xb6\x52\xa0\x83\x5a\x98\x8a\x8d\x3e\x75\x32\x94\xbe\x50\x47\x7a\x3c\x4e\xf7\x67\xb6\x9a\x7e\x5a\xc1\x6b\x7c\x76\xd1\x57\x5a\x5c\x16\x7b\x3a\x95\xf4\x71\x4e\x51\x7c\x80\xa9\x82\x70\x59\x78\x7f\x04\x83\x27\x68\xc0\x67\xec\x78\xb1\x78\x77\x62\xe3\x63\x61\x7b\x80\x4f\xed\x52\x6a\x51\xcf\x83\x50\x69\xdb\x92\x74\x8d\xf5\x8d\x31\x89\xc1\x95\x2e\x7b\xad\x4e\xf6\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x65\x82\x30\x52\x51\x99\x6f\x6e\x10\x6e\x85\x6d\xa7\x5e\xfa\x50\xf5\x59\xdc\x5c\x06\x6d\x46\x6c\x5f\x75\x86\x84\x8b\x68\x68\x59\x56\x8b\xb2\x53\x20\x91\x71\x96\x4d\x85\x49\x69\x12\x79\x01\x71\x26\x80\xf6\x4e\xa4\x90\xca\x6d\x47\x9a\x84\x5a\x07\x56\xbc\x64\x05\x94\xf0\x77\xeb\x4f\xa5\x81\x1a\x72\xe1\x89\xd2\x99\x7a\x7f\x34\x7e\xde\x52\x7f\x65\x59\x91\x75\x8f\x7f\x8f\x83\x53\xeb\x7a\x96\x63\xed\x63\xa5\x76\x86\x79\xf8\x88\x57\x96\x36\x62\x2a\x52\xab\x82\x82\x68\x54\x67\x70\x63\x77\x77\x6b\x7a\xed", /* 4f80 */ "\x00\x00\x6d\x01\x7e\xd3\x89\xe3\x59\xd0\x62\x12\x85\xc9\x82\xa5\x75\x4c\x50\x1f\x4e\xcb\x75\xa5\x8b\xeb\x5c\x4a\x5d\xfe\x7b\x4b\x65\xa4\x91\xd1\x4e\xca\x6d\x25\x89\x5f\x7d\x27\x95\x26\x4e\xc5\x8c\x28\x8f\xdb\x97\x73\x66\x4b\x79\x81\x8f\xd1\x70\xec\x6d\x78\x5c\x3d\x52\xb2\x83\x46\x51\x62\x83\x0e\x77\x5b\x66\x76\x9c\xb8\x4e\xac\x60\xca\x7c\xbe\x7c\xb3\x7e\xcf\x4e\x95\x8b\x66\x66\x6f\x98\x88\x97\x59\x58\x83\x65\x6c\x95\x5c\x5f\x84\x75\xc9\x97\x56\x7a\xdf\x7a\xde\x51\xc0\x70\xaf\x7a\x98\x63\xea\x7a\x76\x7e\xa0\x73\x96\x97\xed\x4e\x45\x70\x78\x4e\x5d\x91\x52\x53\xa9\x65\x51\x65\xe7\x81\xfc\x82\x05\x54\x8e\x5c\x31\x75\x9a\x97\xa0\x62\xd8\x72\xd9\x75\xbd\x5c\x45\x9a\x79\x83\xca\x5c\x40\x54\x80\x77\xe9\x4e\x3e\x6c\xae\x80\x5a\x62\xd2\x63\x6e\x5d\xe8\x51\x77\x8d\xdd\x8e\x1e\x95\x2f\x4f\xf1\x53\xe5\x60\xe7\x70\xac\x52\x67\x63\x50\x9e\x43\x5a\x1f\x50\x26\x77\x37\x53\x77\x7e\xe2\x64\x85\x65\x2b\x62\x89\x63\x98\x50\x14\x72\x35\x89\xc9\x51\xb3\x8b\xc0\x7e\xdd\x57\x47\x83\xcc\x94\xa7\x51\x9b\x54\x1b\x5c\xfb\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x7a\xe3\x6d\x5a\x90\xe1\x9a\x8f\x55\x80\x54\x96\x53\x61\x54\xaf\x5f\x00\x63\xe9\x69\x77\x51\xef\x61\x68\x52\x0a\x58\x2a\x52\xd8\x57\x4e\x78\x0d\x77\x0b\x5e\xb7\x61\x77\x7c\xe0\x62\x5b\x62\x97\x4e\xa2\x70\x95\x80\x03\x62\xf7\x70\xe4\x97\x60\x57\x77\x82\xdb\x67\xef\x68\xf5\x78\xd5\x98\x97\x79\xd1\x58\xf3\x54\xb3\x53\xef\x6e\x34\x51\x4b\x52\x3b\x5b\xa2\x8b\xfe\x80\xaf\x55\x43\x57\xa6\x60\x73\x57\x51\x54\x2d\x7a\x7a\x60\x50\x5b\x54\x63\xa7\x62\xa0\x53\xe3\x62\x63\x5b\xc7\x67\xaf\x54\xed\x7a\x9f", /* 5080 */ "\x00\x00\x82\xe6\x91\x77\x5e\x93\x88\xe4\x59\x38\x57\xae\x63\x0e\x8d\xe8\x80\xef\x57\x57\x7b\x77\x4f\xa9\x5f\xeb\x5b\xbd\x6b\x3e\x53\x21\x7b\x50\x72\xc2\x68\x46\x77\xff\x77\x36\x65\xf7\x51\xb5\x4e\x8f\x76\xd4\x5c\xbf\x7a\xa5\x84\x75\x59\x4e\x9b\x41\x50\x80\x99\x88\x61\x27\x6e\x83\x57\x64\x66\x06\x63\x46\x56\xf0\x62\xec\x62\x69\x5e\xd3\x96\x14\x57\x83\x62\xc9\x55\x87\x87\x21\x81\x4a\x8f\xa3\x55\x66\x83\xb1\x67\x65\x8d\x56\x84\xdd\x5a\x6a\x68\x0f\x62\xe6\x7b\xee\x96\x11\x51\x70\x6f\x9c\x8c\x30\x63\xfd\x89\xc8\x61\xd2\x7f\x06\x70\xc2\x6e\xe5\x74\x05\x69\x94\x72\xfc\x5e\xca\x90\xce\x67\x17\x6d\x6a\x63\x5e\x52\xb3\x72\x62\x80\x01\x4f\x6c\x59\xe5\x91\x6a\x70\xd9\x6d\x9d\x52\xd2\x4e\x50\x96\xf7\x95\x6d\x85\x7e\x78\xca\x7d\x2f\x51\x21\x57\x92\x64\xc2\x80\x8b\x7c\x7b\x6c\xea\x68\xf1\x69\x5e\x51\xb7\x53\x98\x68\xa8\x72\x81\x9e\xce\x7b\xf1\x72\xf8\x79\xbb\x6f\x13\x74\x06\x67\x4e\x91\xcc\x9c\xa4\x79\x3c\x83\x89\x83\x54\x54\x0f\x68\x17\x4e\x3d\x53\x89\x52\xb1\x78\x3e\x53\x86\x52\x29\x50\x88\x4f\x8b\x4f\xd0\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe2\x7a\xcb\x7c\x92\x6c\xa5\x96\xb6\x52\x9b\x74\x83\x54\xe9\x4f\xe9\x80\x54\x83\xb2\x8f\xde\x95\x70\x5e\xc9\x60\x1c\x6d\x9f\x5e\x18\x65\x5b\x81\x38\x94\xfe\x60\x4b\x70\xbc\x7e\xc3\x7c\xae\x51\xc9\x68\x81\x7c\xb1\x82\x6f\x4e\x24\x8f\x86\x91\xcf\x66\x7e\x4e\xae\x8c\x05\x64\xa9\x80\x4a\x50\xda\x75\x97\x71\xce\x5b\xe5\x8f\xbd\x6f\x66\x4e\x86\x64\x82\x95\x63\x5e\xd6\x65\x99\x52\x17\x88\xc2\x70\xc8\x52\xa3\x73\x0e\x74\x33\x67\x97\x78\xf7\x97\x16\x4e\x34\x90\xbb\x9c\xde\x6d\xcb\x51\xdb\x8d\x41\x54\x1d", /* 5180 */ "\x00\x00\x62\xce\x73\xb2\x83\xf1\x96\xf6\x9f\x84\x94\xc3\x4f\x36\x7f\x9a\x51\xcc\x70\x75\x96\x75\x5c\xad\x98\x86\x53\xe6\x4e\xe4\x6e\x9c\x74\x09\x69\xb4\x78\x6b\x99\x8f\x75\x59\x52\x18\x76\x24\x6d\x41\x67\xf3\x51\x6d\x9f\x99\x80\x4b\x54\x99\x7b\x3c\x7a\xbf\x96\x86\x57\x84\x62\xe2\x96\x47\x69\x7c\x5a\x04\x64\x02\x7b\xd3\x6f\x0f\x96\x4b\x82\xa6\x53\x62\x98\x85\x5e\x90\x70\x89\x63\xb3\x53\x64\x86\x4f\x9c\x81\x9e\x93\x78\x8c\x97\x32\x8d\xef\x8d\x42\x9e\x7f\x6f\x5e\x79\x84\x5f\x55\x96\x46\x62\x2e\x9a\x74\x54\x15\x94\xdd\x4f\xa3\x65\xc5\x5c\x65\x5c\x61\x7f\x15\x86\x51\x6c\x2f\x5f\x8b\x73\x87\x6e\xe4\x7e\xff\x5c\xe6\x63\x1b\x5b\x6a\x6e\xe6\x53\x75\x4e\x71\x63\xa0\x75\x65\x62\xa1\x8f\x6e\x4f\x26\x4e\xd1\x6c\xa6\x7e\xb6\x8b\xba\x84\x1d\x87\xba\x7f\x57\x90\x3b\x95\x23\x7b\xa9\x9a\xa1\x88\xf8\x84\x3d\x6d\x1b\x9a\x86\x7e\xdc\x59\x88\x9e\xbb\x73\x9b\x78\x01\x86\x82\x9a\x6c\x9a\x82\x56\x1b\x54\x17\x57\xcb\x4e\x70\x9e\xa6\x53\x56\x8f\xc8\x81\x09\x77\x92\x99\x92\x86\xee\x6e\xe1\x85\x13\x66\xfc\x61\x62\x6f\x2b\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x29\x82\x92\x83\x2b\x76\xf2\x6c\x13\x5f\xd9\x83\xbd\x73\x2b\x83\x05\x95\x1a\x6b\xdb\x77\xdb\x94\xc6\x53\x6f\x83\x02\x51\x92\x5e\x3d\x8c\x8c\x8d\x38\x4e\x48\x73\xab\x67\x9a\x68\x85\x91\x76\x97\x09\x71\x64\x6c\xa1\x77\x09\x5a\x92\x95\x41\x6b\xcf\x7f\x8e\x66\x27\x5b\xd0\x59\xb9\x5a\x9a\x95\xe8\x95\xf7\x4e\xec\x84\x0c\x84\x99\x6a\xac\x76\xdf\x95\x30\x73\x1b\x68\xa6\x5b\x5f\x77\x2f\x91\x9a\x97\x61\x7c\xdc\x8f\xf7\x8c\x1c\x5f\x25\x7c\x73\x79\xd8\x89\xc5\x6c\xcc\x87\x1c\x5b\xc6\x5e\x42\x68\xc9\x77\x20", /* 5280 */ "\x00\x00\x7e\xf5\x51\x95\x51\x4d\x52\xc9\x5a\x29\x7f\x05\x97\x62\x82\xd7\x63\xcf\x77\x84\x85\xd0\x79\xd2\x6e\x3a\x5e\x99\x59\x99\x85\x11\x70\x6d\x6c\x11\x62\xbf\x76\xbf\x65\x4f\x60\xaf\x95\xfd\x66\x0e\x87\x9f\x9e\x23\x94\xed\x54\x0d\x54\x7d\x8c\x2c\x64\x78\x64\x79\x86\x11\x6a\x21\x81\x9c\x78\xe8\x64\x69\x9b\x54\x62\xb9\x67\x2b\x83\xab\x58\xa8\x9e\xd8\x6c\xab\x6f\x20\x5b\xde\x96\x4c\x8c\x0b\x72\x5f\x67\xd0\x62\xc7\x72\x61\x4e\xa9\x59\xc6\x6b\xcd\x58\x93\x66\xae\x5e\x55\x52\xdf\x61\x55\x67\x28\x76\xee\x77\x66\x72\x67\x7a\x46\x62\xff\x54\xea\x54\x50\x94\xa0\x90\xa3\x5a\x1c\x7e\xb3\x6c\x16\x4e\x43\x59\x76\x80\x10\x59\x48\x53\x57\x75\x37\x96\xbe\x56\xca\x63\x20\x81\x11\x60\x7c\x95\xf9\x6d\xd6\x54\x62\x99\x81\x51\x85\x5a\xe9\x80\xfd\x59\xae\x97\x13\x50\x2a\x6c\xe5\x5c\x3c\x62\xdf\x4f\x60\x53\x3f\x81\x7b\x90\x06\x6e\xba\x85\x2b\x62\xc8\x5e\x74\x78\xbe\x64\xb5\x63\x7b\x5f\xf5\x5a\x18\x91\x7f\x9e\x1f\x5c\x3f\x63\x4f\x80\x42\x5b\x7d\x55\x6e\x95\x4a\x95\x4d\x6d\x85\x60\xa8\x67\xe0\x72\xde\x51\xdd\x5b\x81\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe7\x6c\xde\x72\x5b\x62\x6d\x94\xae\x7e\xbd\x81\x13\x6d\x53\x51\x9c\x5f\x04\x59\x74\x52\xaa\x60\x12\x59\x73\x66\x96\x86\x50\x75\x9f\x63\x2a\x61\xe6\x7c\xef\x8b\xfa\x54\xe6\x6b\x27\x9e\x25\x6b\xb4\x85\xd5\x54\x55\x50\x76\x6c\xa4\x55\x6a\x8d\xb4\x72\x2c\x5e\x15\x60\x15\x74\x36\x62\xcd\x63\x92\x72\x4c\x5f\x98\x6e\x43\x6d\x3e\x65\x00\x6f\x58\x76\xd8\x78\xd0\x76\xfc\x75\x54\x52\x24\x53\xdb\x4e\x53\x5e\x9e\x65\xc1\x80\x2a\x80\xd6\x62\x9b\x54\x86\x52\x28\x70\xae\x88\x8d\x8d\xd1\x6c\xe1\x54\x78\x80\xda", /* 5380 */ "\x00\x00\x57\xf9\x88\xf4\x8d\x54\x96\x6a\x91\x4d\x4f\x69\x6c\x9b\x55\xb7\x76\xc6\x78\x30\x62\xa8\x70\xf9\x6f\x8e\x5f\x6d\x84\xec\x68\xda\x78\x7c\x7b\xf7\x81\xa8\x67\x0b\x9e\x4f\x63\x67\x78\xb0\x57\x6f\x78\x12\x97\x39\x62\x79\x62\xab\x52\x88\x74\x35\x6b\xd7\x55\x64\x81\x3e\x75\xb2\x76\xae\x53\x39\x75\xde\x50\xfb\x5c\x41\x8b\x6c\x7b\xc7\x50\x4f\x72\x47\x9a\x97\x98\xd8\x6f\x02\x74\xe2\x79\x68\x64\x87\x77\xa5\x62\xfc\x98\x91\x8d\x2b\x54\xc1\x80\x58\x4e\x52\x57\x6a\x82\xf9\x84\x0d\x5e\x73\x51\xed\x74\xf6\x8b\xc4\x5c\x4f\x57\x61\x6c\xfc\x98\x87\x5a\x46\x78\x34\x9b\x44\x8f\xeb\x7c\x95\x52\x56\x62\x51\x94\xfa\x4e\xc6\x83\x86\x84\x61\x83\xe9\x84\xb2\x57\xd4\x67\x34\x57\x03\x66\x6e\x6d\x66\x8c\x31\x66\xdd\x70\x11\x67\x1f\x6b\x3a\x68\x16\x62\x1a\x59\xbb\x4e\x03\x51\xc4\x6f\x06\x67\xd2\x6c\x8f\x51\x76\x68\xcb\x59\x47\x6b\x67\x75\x66\x5d\x0e\x81\x10\x9f\x50\x65\xd7\x79\x48\x79\x41\x9a\x91\x8d\x77\x5c\x82\x4e\x5e\x4f\x01\x54\x2f\x59\x51\x78\x0c\x56\x68\x6c\x14\x8f\xc4\x5f\x03\x6c\x7d\x6c\xe3\x8b\xab\x63\x90\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x70\x6d\x3d\x72\x75\x62\x66\x94\x8e\x94\xc5\x53\x43\x8f\xc1\x7b\x7e\x4e\xdf\x8c\x26\x4e\x7e\x9e\xd4\x94\xb1\x94\xb3\x52\x4d\x6f\x5c\x90\x63\x6d\x45\x8c\x34\x58\x11\x5d\x4c\x6b\x20\x6b\x49\x67\xaa\x54\x5b\x81\x54\x7f\x8c\x58\x99\x85\x37\x5f\x3a\x62\xa2\x6a\x47\x95\x39\x65\x72\x60\x84\x68\x65\x77\xa7\x4e\x54\x4f\xa8\x5d\xe7\x97\x98\x64\xac\x7f\xd8\x5c\xed\x4f\xcf\x7a\x8d\x52\x07\x83\x04\x4e\x14\x60\x2f\x7a\x83\x94\xa6\x4f\xb5\x4e\xb2\x79\xe6\x74\x34\x52\xe4\x82\xb9\x64\xd2\x79\xbd\x5b\xdd\x6c\x81", /* 5480 */ "\x00\x00\x97\x52\x8f\x7b\x6c\x22\x50\x3e\x53\x7f\x6e\x05\x64\xce\x66\x74\x6c\x30\x60\xc5\x98\x77\x8b\xf7\x5e\x86\x74\x3c\x7a\x77\x79\xcb\x4e\x18\x90\xb1\x74\x03\x6c\x42\x56\xda\x91\x4b\x6c\xc5\x8d\x8b\x53\x3a\x86\xc6\x66\xf2\x8e\xaf\x5c\x48\x9a\x71\x6e\x20\x53\xd6\x5a\x36\x9f\x8b\x8d\xa3\x53\xbb\x57\x08\x98\xa7\x67\x43\x91\x9b\x6c\xc9\x51\x68\x75\xca\x62\xf3\x72\xac\x52\x38\x52\x9d\x7f\x3a\x70\x94\x76\x38\x53\x74\x9e\x4a\x69\xb7\x78\x6e\x96\xc0\x88\xd9\x7f\xa4\x71\x36\x71\xc3\x51\x89\x67\xd3\x74\xe4\x58\xe4\x65\x18\x56\xb7\x8b\xa9\x99\x76\x62\x70\x7e\xd5\x60\xf9\x70\xed\x58\xec\x4e\xc1\x4e\xba\x5f\xcd\x97\xe7\x4e\xfb\x8b\xa4\x52\x03\x59\x8a\x7e\xab\x62\x54\x4e\xcd\x65\xe5\x62\x0e\x83\x38\x84\xc9\x83\x63\x87\x8d\x71\x94\x6e\xb6\x5b\xb9\x7e\xd2\x51\x97\x63\xc9\x67\xd4\x80\x89\x83\x39\x88\x15\x51\x12\x5b\x7a\x59\x82\x8f\xb1\x4e\x73\x6c\x5d\x51\x65\x89\x25\x8f\x6f\x96\x2e\x85\x4a\x74\x5e\x95\x10\x95\xf0\x6d\xa6\x82\xe5\x5f\x31\x64\x92\x6d\x12\x84\x28\x81\x6e\x9c\xc3\x58\x5e\x8d\x5b\x4e\x09\x53\xc1\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x1e\x65\x63\x68\x51\x55\xd3\x4e\x27\x64\x14\x9a\x9a\x62\x6b\x5a\xc2\x74\x5f\x82\x72\x6d\xa9\x68\xee\x50\xe7\x83\x8e\x78\x02\x67\x40\x52\x39\x6c\x99\x7e\xb1\x50\xbb\x55\x65\x71\x5e\x7b\x5b\x66\x52\x73\xca\x82\xeb\x67\x49\x5c\x71\x52\x20\x71\x7d\x88\x6b\x95\xea\x96\x55\x64\xc5\x8d\x61\x81\xb3\x55\x84\x6c\x55\x62\x47\x7f\x2e\x58\x92\x4f\x24\x55\x46\x8d\x4f\x66\x4c\x4e\x0a\x5c\x1a\x88\xf3\x68\xa2\x63\x4e\x7a\x0d\x70\xe7\x82\x8d\x52\xfa\x97\xf6\x5c\x11\x54\xe8\x90\xb5\x7e\xcd\x59\x62\x8d\x4a\x86\xc7", /* 5580 */ "\x00\x00\x82\x0c\x82\x0d\x8d\x66\x64\x44\x5c\x04\x61\x51\x6d\x89\x79\x3e\x8b\xbe\x78\x37\x75\x33\x54\x7b\x4f\x38\x8e\xab\x6d\xf1\x5a\x20\x7e\xc5\x79\x5e\x6c\x88\x5b\xa1\x5a\x76\x75\x1a\x80\xbe\x61\x4e\x6e\x17\x58\xf0\x75\x1f\x75\x25\x72\x72\x53\x47\x7e\xf3\x77\x01\x76\xdb\x52\x69\x80\xdc\x57\x23\x5e\x08\x59\x31\x72\xee\x65\xbd\x6e\x7f\x8b\xd7\x5c\x38\x86\x71\x53\x41\x77\xf3\x62\xfe\x65\xf6\x4e\xc0\x98\xdf\x86\x80\x5b\x9e\x8b\xc6\x53\xf2\x77\xe2\x4f\x7f\x5c\x4e\x9a\x76\x59\xcb\x5f\x0f\x79\x3a\x58\xeb\x4e\x16\x67\xff\x4e\x8b\x62\xed\x8a\x93\x90\x1d\x52\xbf\x66\x2f\x55\xdc\x56\x6c\x90\x02\x4e\xd5\x4f\x8d\x91\xca\x99\x70\x6c\x0f\x5e\x02\x60\x43\x5b\xa4\x89\xc6\x8b\xd5\x65\x36\x62\x4b\x99\x96\x5b\x88\x5b\xff\x63\x88\x55\x2e\x53\xd7\x76\x26\x51\x7d\x85\x2c\x67\xa2\x68\xb3\x6b\x8a\x62\x92\x8f\x93\x53\xd4\x82\x12\x6d\xd1\x75\x8f\x4e\x66\x8d\x4e\x5b\x70\x71\x9f\x85\xaf\x66\x91\x66\xd9\x7f\x72\x87\x00\x9e\xcd\x9f\x20\x5c\x5e\x67\x2f\x8f\xf0\x68\x11\x67\x5f\x62\x0d\x7a\xd6\x58\x85\x5e\xb6\x65\x70\x6f\x31\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x55\x52\x37\x80\x0d\x64\x54\x88\x70\x75\x29\x5e\x05\x68\x13\x62\xf4\x97\x1c\x53\xcc\x72\x3d\x8c\x01\x6c\x34\x77\x61\x7a\x0e\x54\x2e\x77\xac\x98\x7a\x82\x1c\x8b\xf4\x78\x55\x67\x14\x70\xc1\x65\xaf\x64\x95\x56\x36\x60\x1d\x79\xc1\x53\xf8\x4e\x1d\x6b\x7b\x80\x86\x5b\xfa\x55\xe3\x56\xdb\x4f\x3a\x4f\x3c\x99\x72\x5d\xf3\x67\x7e\x80\x38\x60\x02\x98\x82\x90\x01\x5b\x8b\x8b\xbc\x8b\xf5\x64\x1c\x82\x58\x64\xde\x55\xfd\x82\xcf\x91\x65\x4f\xd7\x7d\x20\x90\x1f\x7c\x9f\x50\xf3\x58\x51\x6e\xaf\x5b\xbf\x8b\xc9", /* 5680 */ "\x00\x00\x80\x83\x91\x78\x84\x9c\x7b\x97\x86\x7d\x96\x8b\x96\x8f\x7e\xe5\x9a\xd3\x78\x8e\x5c\x81\x7a\x57\x90\x42\x96\xa7\x79\x5f\x5b\x59\x63\x5f\x7b\x0b\x84\xd1\x68\xad\x55\x06\x7f\x29\x74\x10\x7d\x22\x95\x01\x62\x40\x58\x4c\x4e\xd6\x5b\x83\x59\x79\x58\x54\x73\x6d\x63\x1e\x8e\x4b\x8e\x0f\x80\xce\x82\xd4\x62\xac\x53\xf0\x6c\xf0\x91\x5e\x59\x2a\x60\x01\x6c\x70\x57\x4d\x64\x4a\x8d\x2a\x76\x2b\x6e\xe9\x57\x5b\x6a\x80\x75\xf0\x6f\x6d\x8c\x2d\x8c\x08\x57\x66\x6b\xef\x88\x92\x78\xb3\x63\xa2\x53\xf9\x70\xad\x6c\x64\x58\x58\x64\x2a\x58\x02\x68\xe0\x81\x9b\x55\x10\x7c\xd6\x50\x18\x8e\xba\x6d\xcc\x8d\x9f\x70\xeb\x63\x8f\x6d\x9b\x6e\xd4\x7e\xe6\x84\x04\x68\x43\x90\x03\x6d\xd8\x96\x76\x8b\xa8\x59\x57\x72\x79\x85\xe4\x81\x7e\x75\xbc\x8a\x8a\x68\xaf\x52\x54\x8e\x22\x95\x11\x63\xd0\x98\x98\x8e\x44\x55\x7c\x4f\x53\x66\xff\x56\x8f\x60\xd5\x6d\x95\x52\x43\x5c\x49\x59\x29\x6d\xfb\x58\x6b\x75\x30\x75\x1c\x60\x6c\x82\x14\x81\x46\x63\x11\x67\x61\x8f\xe2\x77\x3a\x8d\xf3\x8d\x34\x94\xc1\x5e\x16\x53\x85\x54\x2c\x70\xc3\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x40\x5e\xf7\x50\x5c\x4e\xad\x5e\xad\x63\x3a\x82\x47\x90\x1a\x68\x50\x91\x6e\x77\xb3\x54\x0c\x94\xdc\x5f\x64\x7a\xe5\x68\x76\x63\x45\x7b\x52\x7e\xdf\x75\xdb\x50\x77\x62\x95\x59\x34\x90\x0f\x51\xf8\x79\xc3\x7a\x81\x56\xfe\x5f\x92\x90\x14\x6d\x82\x5c\x60\x57\x1f\x54\x10\x51\x54\x6e\x4d\x56\xe2\x63\xa8\x98\x93\x81\x7f\x87\x15\x89\x2a\x90\x00\x54\x1e\x5c\x6f\x81\xc0\x62\xd6\x62\x58\x81\x31\x9e\x35\x96\x40\x9a\x6e\x9a\x7c\x69\x2d\x59\xa5\x62\xd3\x55\x3e\x63\x16\x54\xc7\x86\xd9\x6d\x3c\x5a\x03\x74\xe6", /* 5780 */ "\x00\x00\x88\x9c\x6b\x6a\x59\x16\x8c\x4c\x5f\x2f\x6e\x7e\x73\xa9\x98\x7d\x4e\x38\x70\xf7\x5b\x8c\x78\x97\x63\x3d\x66\x5a\x76\x96\x60\xcb\x5b\x9b\x5a\x49\x4e\x07\x81\x55\x6c\x6a\x73\x8b\x4e\xa1\x67\x89\x7f\x51\x5f\x80\x65\xfa\x67\x1b\x5f\xd8\x59\x84\x5a\x01\x5d\xcd\x5f\xae\x53\x71\x97\xe6\x8f\xdd\x68\x45\x56\xf4\x55\x2f\x60\xdf\x4e\x3a\x6f\x4d\x7e\xf4\x82\xc7\x84\x0e\x59\xd4\x4f\x1f\x4f\x2a\x5c\x3e\x7e\xac\x67\x2a\x85\x1a\x54\x73\x75\x4f\x80\xc3\x55\x82\x9b\x4f\x4f\x4d\x6e\x2d\x8c\x13\x5c\x09\x61\x70\x53\x6b\x76\x1f\x6e\x29\x86\x8a\x65\x87\x95\xfb\x7e\xb9\x54\x3b\x7a\x33\x7d\x0a\x95\xee\x55\xe1\x7f\xc1\x74\xee\x63\x1d\x87\x17\x6d\xa1\x7a\x9d\x62\x11\x65\xa1\x53\x67\x63\xe1\x6c\x83\x5d\xeb\x54\x5c\x94\xa8\x4e\x4c\x6c\x61\x8b\xec\x5c\x4b\x65\xe0\x82\x9c\x68\xa7\x54\x3e\x54\x34\x6b\xcb\x6b\x66\x4e\x94\x63\x42\x53\x48\x82\x1e\x4f\x0d\x4f\xae\x57\x5e\x62\x0a\x96\xfe\x66\x64\x72\x69\x52\xff\x52\xa1\x60\x9f\x8b\xef\x66\x14\x71\x99\x67\x90\x89\x7f\x78\x52\x77\xfd\x66\x70\x56\x3b\x54\x38\x95\x21\x72\x7a\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x60\x6f\x5e\x0c\x60\x89\x81\x9d\x59\x15\x60\xdc\x71\x84\x70\xef\x6e\xaa\x6c\x50\x72\x80\x6a\x84\x88\xad\x5e\x2d\x4e\x60\x5a\xb3\x55\x9c\x94\xe3\x6d\x17\x7c\xfb\x96\x99\x62\x0f\x7e\xc6\x77\x8e\x86\x7e\x53\x23\x97\x1e\x8f\x96\x66\x87\x5c\xe1\x4f\xa0\x72\xed\x4e\x0b\x53\xa6\x59\x0f\x54\x13\x63\x80\x95\x28\x51\x48\x4e\xd9\x9c\x9c\x7e\xa4\x54\xb8\x8d\x24\x88\x54\x82\x37\x95\xf2\x6d\x8e\x5f\x26\x5a\xcc\x66\x3e\x96\x69\x73\xb0\x73\x2e\x53\xbf\x81\x7a\x99\x85\x7f\xa1\x5b\xaa\x96\x77\x96\x50\x7e\xbf", /* 5880 */ "\x00\x00\x76\xf8\x53\xa2\x95\x76\x99\x99\x7b\xb1\x89\x44\x6e\x58\x4e\x61\x7f\xd4\x79\x65\x8b\xe6\x60\xf3\x54\xcd\x4e\xab\x98\x79\x5d\xf7\x6a\x61\x50\xcf\x54\x11\x8c\x61\x84\x27\x78\x5d\x97\x04\x52\x4a\x54\xee\x56\xa3\x95\x00\x6d\x88\x5b\xb5\x6d\xc6\x66\x53\x5c\x0f\x5b\x5d\x68\x21\x80\x96\x55\x78\x7b\x11\x65\x48\x69\x54\x4e\x9b\x6b\x47\x87\x4e\x97\x8b\x53\x4f\x63\x1f\x64\x3a\x90\xaa\x65\x9c\x80\xc1\x8c\x10\x51\x99\x68\xb0\x53\x78\x87\xf9\x61\xc8\x6c\xc4\x6c\xfb\x8c\x22\x5c\x51\x85\xaa\x82\xaf\x95\x0c\x6b\x23\x8f\x9b\x65\xb0\x5f\xfb\x5f\xc3\x4f\xe1\x88\x45\x66\x1f\x81\x65\x73\x29\x60\xfa\x51\x74\x52\x11\x57\x8b\x5f\x62\x90\xa2\x88\x4c\x91\x92\x5e\x78\x67\x4f\x60\x27\x59\xd3\x51\x44\x51\xf6\x80\xf8\x53\x08\x6c\x79\x96\xc4\x71\x8a\x4f\x11\x4f\xee\x7f\x9e\x67\x3d\x55\xc5\x95\x08\x79\xc0\x88\x96\x7e\xe3\x58\x9f\x62\x0c\x97\x00\x86\x5a\x56\x18\x98\x7b\x5f\x90\x8b\xb8\x84\xc4\x91\x57\x53\xd9\x65\xed\x5e\x8f\x75\x5c\x60\x64\x7d\x6e\x5a\x7f\x7e\xea\x7e\xed\x8f\x69\x55\xa7\x5b\xa3\x60\xac\x65\xcb\x73\x84\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x09\x76\x63\x77\x29\x7e\xda\x97\x74\x85\x9b\x5b\x66\x7a\x74\x96\xea\x88\x40\x52\xcb\x71\x8f\x5f\xaa\x65\xec\x8b\xe2\x5b\xfb\x9a\x6f\x5d\xe1\x6b\x89\x6c\x5b\x8b\xad\x8b\xaf\x90\x0a\x8f\xc5\x53\x8b\x62\xbc\x9e\x26\x9e\x2d\x54\x40\x4e\x2b\x82\xbd\x72\x59\x86\x9c\x5d\x16\x88\x59\x6d\xaf\x96\xc5\x54\xd1\x4e\x9a\x8b\xb6\x71\x09\x54\xbd\x96\x09\x70\xdf\x6d\xf9\x76\xd0\x4e\x25\x78\x14\x87\x12\x5c\xa9\x5e\xf6\x8a\x00\x98\x9c\x96\x0e\x70\x8e\x6c\xbf\x59\x44\x63\xa9\x77\x3c\x88\x4d\x6f\x14\x82\x73\x58\x30", /* 5980 */ "\x00\x00\x71\xd5\x53\x8c\x78\x1a\x96\xc1\x55\x01\x5f\x66\x71\x30\x5b\xb4\x8c\x1a\x9a\x8c\x6b\x83\x59\x2e\x9e\x2f\x79\xe7\x67\x68\x62\x6c\x4f\x6f\x75\xa1\x7f\x8a\x6d\x0b\x96\x33\x6c\x27\x4e\xf0\x75\xd2\x51\x7b\x68\x37\x6f\x3e\x90\x80\x81\x70\x59\x96\x74\x76\x64\x47\x5c\x27\x90\x65\x7a\x91\x8c\x23\x59\xda\x54\xac\x82\x00\x83\x6f\x89\x81\x80\x00\x69\x30\x56\x4e\x80\x36\x72\x37\x91\xce\x51\xb6\x4e\x5f\x98\x75\x63\x96\x4e\x1a\x53\xf6\x66\xf3\x81\x4b\x59\x1c\x6d\xb2\x4e\x00\x58\xf9\x53\x3b\x63\xd6\x94\xf1\x4f\x9d\x4f\x0a\x88\x63\x98\x90\x59\x37\x90\x57\x79\xfb\x4e\xea\x80\xf0\x75\x91\x6c\x82\x5b\x9c\x59\xe8\x5f\x5d\x69\x05\x86\x81\x50\x1a\x5d\xf2\x4e\x59\x77\xe3\x4e\xe5\x82\x7a\x62\x91\x66\x13\x90\x91\x5c\x79\x4e\xbf\x5f\x79\x81\xc6\x90\x38\x80\x84\x75\xab\x4e\xa6\x88\xd4\x61\x0f\x6b\xc5\x5f\xc6\x4e\x49\x76\xca\x6e\xa2\x8b\xe3\x8b\xae\x8c\x0a\x8b\xd1\x5f\x02\x7f\xfc\x7f\xcc\x7e\xce\x83\x35\x83\x6b\x56\xe0\x6b\xb7\x97\xf3\x96\x34\x59\xfb\x54\x1f\x94\xf6\x6d\xeb\x5b\xc5\x99\x6e\x5c\x39\x5f\x15\x96\x90\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x70\x82\xf1\x6a\x31\x5a\x74\x9e\x70\x5e\x94\x7f\x28\x83\xb9\x84\x24\x84\x25\x83\x67\x87\x47\x8f\xce\x8d\x62\x76\xc8\x5f\x71\x98\x96\x78\x6c\x66\x20\x54\xdf\x62\xe5\x4f\x63\x81\xc3\x75\xc8\x5e\xb8\x96\xcd\x8e\x0a\x86\xf9\x54\x8f\x6c\xf3\x6d\x8c\x6c\x38\x60\x7f\x52\xc7\x75\x28\x5e\x7d\x4f\x18\x60\xa0\x5f\xe7\x5c\x24\x75\x31\x90\xae\x94\xc0\x72\xb9\x6c\xb9\x6e\x38\x91\x49\x67\x09\x53\xcb\x53\xf3\x4f\x51\x91\xc9\x8b\xf1\x53\xc8\x5e\x7c\x8f\xc2\x6d\xe4\x4e\x8e\x76\xc2\x69\x86\x86\x5e\x61\x1a\x82\x06", /* 5a80 */ "\x00\x00\x4f\x59\x4f\xde\x90\x3e\x9c\x7c\x61\x09\x6e\x1d\x6e\x14\x96\x85\x4e\x88\x5a\x31\x96\xe8\x4e\x0e\x5c\x7f\x79\xb9\x5b\x87\x8b\xed\x7f\xbd\x73\x89\x57\xdf\x82\x8b\x90\xc1\x54\x01\x90\x47\x55\xbb\x5c\xea\x5f\xa1\x61\x08\x6b\x32\x72\xf1\x80\xb2\x8a\x89\x6d\x74\x5b\xd3\x88\xd5\x98\x84\x8c\x6b\x9a\x6d\x9e\x33\x6e\x0a\x51\xa4\x51\x43\x57\xa3\x88\x81\x53\x9f\x63\xf4\x8f\x95\x56\xed\x54\x58\x57\x06\x73\x3f\x6e\x90\x7f\x18\x8f\xdc\x82\xd1\x61\x3f\x60\x28\x96\x62\x66\xf0\x7e\xa6\x8d\x8a\x8d\xc3\x94\xa5\x5c\xb3\x7c\xa4\x67\x08\x60\xa6\x96\x05\x80\x18\x4e\x91\x90\xe7\x53\x00\x96\x68\x51\x41\x8f\xd0\x85\x74\x91\x5d\x66\x55\x97\xf5\x5b\x55\x53\x1d\x78\x38\x67\x42\x68\x3d\x54\xc9\x70\x7e\x5b\xb0\x8f\x7d\x51\x8d\x57\x28\x54\xb1\x65\x12\x66\x82\x8d\x5e\x8d\x43\x81\x0f\x84\x6c\x90\x6d\x7c\xdf\x51\xff\x85\xfb\x67\xa3\x65\xe9\x6f\xa1\x86\xa4\x8e\x81\x56\x6a\x90\x20\x76\x82\x70\x76\x71\xe5\x8d\x23\x62\xe9\x52\x19\x6c\xfd\x8d\x3c\x60\x0e\x58\x9e\x61\x8e\x66\xfe\x8d\x60\x62\x4e\x55\xb3\x6e\x23\x67\x2d\x8f\x67\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe1\x95\xf8\x77\x28\x68\x05\x69\xa8\x54\x8b\x4e\x4d\x70\xb8\x8b\xc8\x64\x58\x65\x8b\x5b\x85\x7a\x84\x50\x3a\x5b\xe8\x77\xbb\x6b\xe1\x8a\x79\x7c\x98\x6c\xbe\x76\xcf\x65\xa9\x8f\x97\x5d\x2d\x5c\x55\x86\x38\x68\x08\x53\x60\x62\x18\x7a\xd9\x6e\x5b\x7e\xfd\x6a\x1f\x7a\xe0\x5f\x70\x6f\x33\x5f\x20\x63\x8c\x6d\xa8\x67\x56\x4e\x08\x5e\x10\x8d\x26\x4e\xd7\x80\xc0\x76\x34\x96\x9c\x62\xdb\x66\x2d\x62\x7e\x6c\xbc\x8d\x75\x71\x67\x7f\x69\x51\x46\x80\x87\x53\xec\x90\x6e\x62\x98\x54\xf2\x86\xf0\x8f\x99\x80\x05", /* 5b80 */ "\x00\x00\x95\x17\x85\x17\x8f\xd9\x6d\x59\x73\xcd\x65\x9f\x77\x1f\x75\x04\x78\x27\x81\xfb\x8d\x1e\x94\x88\x4f\xa6\x67\x95\x75\xb9\x8b\xca\x97\x07\x63\x2f\x95\x47\x96\x35\x84\xb8\x63\x23\x77\x41\x5f\x81\x72\xf0\x4e\x89\x60\x14\x65\x74\x62\xef\x6b\x63\x65\x3f\x5e\x27\x75\xc7\x90\xd1\x8b\xc1\x82\x9d\x67\x9d\x65\x2f\x54\x31\x87\x18\x77\xe5\x80\xa2\x81\x02\x6c\x41\x4e\x4b\x7e\xc7\x80\x4c\x76\xf4\x69\x0d\x6b\x96\x62\x67\x50\x3c\x4f\x84\x57\x40\x63\x07\x6b\x62\x8d\xbe\x53\xea\x65\xe8\x7e\xb8\x5f\xd7\x63\x1a\x63\xb7\x81\xf3\x81\xf4\x7f\x6e\x5e\x1c\x5c\xd9\x52\x36\x66\x7a\x79\xe9\x7a\x1a\x8d\x28\x70\x99\x75\xd4\x6e\xde\x6c\xbb\x7a\x92\x4e\x2d\x76\xc5\x5f\xe0\x94\x9f\x88\x77\x7e\xc8\x79\xcd\x80\xbf\x91\xcd\x4e\xf2\x4f\x17\x82\x1f\x54\x68\x5d\xde\x6d\x32\x8b\xcc\x7c\xa5\x8f\x74\x80\x98\x5e\x1a\x54\x92\x76\xb1\x5b\x99\x66\x3c\x9a\xa4\x73\xe0\x68\x2a\x86\xdb\x67\x31\x73\x2a\x8b\xf8\x8b\xdb\x90\x10\x7a\xf9\x70\xdb\x71\x6e\x62\xc4\x77\xa9\x56\x31\x4e\x3b\x84\x57\x67\xf1\x52\xa9\x86\xc0\x8d\x2e\x94\xf8\x7b\x51\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x4f\x6c\xe8\x79\x5d\x9a\x7b\x62\x93\x72\x2a\x62\xfd\x4e\x13\x78\x16\x8f\x6c\x64\xb0\x8d\x5a\x7b\xc6\x68\x69\x5e\x84\x88\xc5\x59\x86\x64\x9e\x58\xee\x72\xb6\x69\x0e\x95\x25\x8f\xfd\x8d\x58\x57\x60\x7f\x00\x8c\x06\x51\xc6\x63\x49\x62\xd9\x53\x53\x68\x4c\x74\x22\x83\x01\x91\x4c\x55\x44\x77\x40\x70\x7c\x6d\x4a\x51\x79\x54\xa8\x8d\x44\x59\xff\x6e\xcb\x6d\xc4\x5b\x5c\x7d\x2b\x4e\xd4\x7c\x7d\x6e\xd3\x5b\x50\x81\xea\x6e\x0d\x5b\x57\x9b\x03\x68\xd5\x8e\x2a\x5b\x97\x7e\xfc\x60\x3b\x7e\xb5\x90\xb9\x8d\x70", /* 5c80 */ "\x00\x00\x59\x4f\x63\xcd\x79\xdf\x8d\xb3\x53\x52\x65\xcf\x79\x56\x8b\xc5\x96\x3b\x7e\xc4\x94\xbb\x7e\x82\x56\x34\x91\x89\x67\x00\x7f\x6a\x5c\x0a\x90\x75\x66\x28\x5d\xe6\x4f\x50\x67\xde\x50\x5a\x4f\x5c\x57\x50\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8d\x4e\x0c\x51\x40\x4e\x10\x5e\xff\x53\x45\x4e\x15\x4e\x98\x4e\x1e\x9b\x32\x5b\x6c\x56\x69\x4e\x28\x79\xba\x4e\x3f\x53\x15\x4e\x47\x59\x2d\x72\x3b\x53\x6e\x6c\x10\x56\xdf\x80\xe4\x99\x97\x6b\xd3\x77\x7e\x9f\x17\x4e\x36\x4e\x9f\x9f\x10\x4e\x5c\x4e\x69\x4e\x93\x82\x88\x5b\x5b\x55\x6c\x56\x0f\x4e\xc4\x53\x8d\x53\x9d\x53\xa3\x53\xa5\x53\xae\x97\x65\x8d\x5d\x53\x1a\x53\xf5\x53\x26\x53\x2e\x53\x3e\x8d\x5c\x53\x66\x53\x63\x52\x02\x52\x08\x52\x0e\x52\x2d\x52\x33\x52\x3f\x52\x40\x52\x4c\x52\x5e\x52\x61\x52\x5c\x84\xaf\x52\x7d\x52\x82\x52\x81\x52\x90\x52\x93\x51\x82\x7f\x54\x4e\xbb\x4e\xc3\x4e\xc9\x4e\xc2\x4e\xe8\x4e\xe1\x4e\xeb\x4e\xde\x4f\x1b\x4e\xf3\x4f\x22\x4f\x64\x4e\xf5\x4f\x25\x4f\x27\x4f\x09\x4f\x2b\x4f\x5e\x4f\x67\x65\x38\x4f\x5a\x4f\x5d\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x5f\x4f\x57\x4f\x32\x4f\x3d\x4f\x76\x4f\x74\x4f\x91\x4f\x89\x4f\x83\x4f\x8f\x4f\x7e\x4f\x7b\x4f\xaa\x4f\x7c\x4f\xac\x4f\x94\x4f\xe6\x4f\xe8\x4f\xea\x4f\xc5\x4f\xda\x4f\xe3\x4f\xdc\x4f\xd1\x4f\xdf\x4f\xf8\x50\x29\x50\x4c\x4f\xf3\x50\x2c\x50\x0f\x50\x2e\x50\x2d\x4f\xfe\x50\x1c\x50\x0c\x50\x25\x50\x28\x50\x7e\x50\x43\x50\x55\x50\x48\x50\x4e\x50\x6c\x50\x7b\x50\xa5\x50\xa7\x50\xa9\x50\xba\x50\xd6\x51\x06\x50\xed\x50\xec\x50\xe6\x50\xee\x51\x07\x51\x0b\x4e\xdd\x6c\x3d\x4f\x58\x4f\x65\x4f\xce\x9f\xa0", /* 5d80 */ "\x00\x00\x6c\x46\x7c\x74\x51\x6e\x5d\xfd\x9e\xc9\x99\x98\x51\x81\x59\x14\x52\xf9\x53\x0d\x8a\x07\x53\x10\x51\xeb\x59\x19\x51\x55\x4e\xa0\x51\x56\x4e\xb3\x88\x6e\x88\xa4\x4e\xb5\x81\x14\x88\xd2\x79\x80\x5b\x34\x88\x03\x7f\xb8\x51\xab\x51\xb1\x51\xbd\x51\xbc\x51\xc7\x51\x96\x51\xa2\x51\xa5\x8b\xa0\x8b\xa6\x8b\xa7\x8b\xaa\x8b\xb4\x8b\xb5\x8b\xb7\x8b\xc2\x8b\xc3\x8b\xcb\x8b\xcf\x8b\xce\x8b\xd2\x8b\xd3\x8b\xd4\x8b\xd6\x8b\xd8\x8b\xd9\x8b\xdc\x8b\xdf\x8b\xe0\x8b\xe4\x8b\xe8\x8b\xe9\x8b\xee\x8b\xf0\x8b\xf3\x8b\xf6\x8b\xf9\x8b\xfc\x8b\xff\x8c\x00\x8c\x02\x8c\x04\x8c\x07\x8c\x0c\x8c\x0f\x8c\x11\x8c\x12\x8c\x14\x8c\x15\x8c\x16\x8c\x19\x8c\x1b\x8c\x18\x8c\x1d\x8c\x1f\x8c\x20\x8c\x21\x8c\x25\x8c\x27\x8c\x2a\x8c\x2b\x8c\x2e\x8c\x2f\x8c\x32\x8c\x33\x8c\x35\x8c\x36\x53\x69\x53\x7a\x96\x1d\x96\x22\x96\x21\x96\x31\x96\x2a\x96\x3d\x96\x3c\x96\x42\x96\x49\x96\x54\x96\x5f\x96\x67\x96\x6c\x96\x72\x96\x74\x96\x88\x96\x8d\x96\x97\x96\xb0\x90\x97\x90\x9b\x90\x9d\x90\x99\x90\xac\x90\xa1\x90\xb4\x90\xb3\x90\xb6\x90\xba\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xb8\x90\xb0\x90\xcf\x90\xc5\x90\xbe\x90\xd0\x90\xc4\x90\xc7\x90\xd3\x90\xe6\x90\xe2\x90\xdc\x90\xd7\x90\xdb\x90\xeb\x90\xef\x90\xfe\x91\x04\x91\x22\x91\x1e\x91\x23\x91\x31\x91\x2f\x91\x39\x91\x43\x91\x46\x52\x0d\x59\x42\x52\xa2\x52\xac\x52\xad\x52\xbe\x54\xff\x52\xd0\x52\xd6\x52\xf0\x53\xdf\x71\xee\x77\xcd\x5e\xf4\x51\xf5\x51\xfc\x9b\x2f\x53\xb6\x5f\x01\x75\x5a\x5d\xef\x57\x4c\x57\xa9\x57\xa1\x58\x7e\x58\xbc\x58\xc5\x58\xd1\x57\x29\x57\x2c\x57\x2a\x57\x33\x57\x39\x57\x2e\x57\x2f\x57\x5c\x57\x3b", /* 5e80 */ "\x00\x00\x57\x42\x57\x69\x57\x85\x57\x6b\x57\x86\x57\x7c\x57\x7b\x57\x68\x57\x6d\x57\x76\x57\x73\x57\xad\x57\xa4\x57\x8c\x57\xb2\x57\xcf\x57\xa7\x57\xb4\x57\x93\x57\xa0\x57\xd5\x57\xd8\x57\xda\x57\xd9\x57\xd2\x57\xb8\x57\xf4\x57\xef\x57\xf8\x57\xe4\x57\xdd\x58\x0b\x58\x0d\x57\xfd\x57\xed\x58\x00\x58\x1e\x58\x19\x58\x44\x58\x20\x58\x65\x58\x6c\x58\x81\x58\x89\x58\x9a\x58\x80\x99\xa8\x9f\x19\x61\xff\x82\x79\x82\x7d\x82\x7f\x82\x8f\x82\x8a\x82\xa8\x82\x84\x82\x8e\x82\x91\x82\x97\x82\x99\x82\xab\x82\xb8\x82\xbe\x82\xb0\x82\xc8\x82\xca\x82\xe3\x82\x98\x82\xb7\x82\xae\x82\xcb\x82\xcc\x82\xc1\x82\xa9\x82\xb4\x82\xa1\x82\xaa\x82\x9f\x82\xc4\x82\xce\x82\xa4\x82\xe1\x83\x09\x82\xf7\x82\xe4\x83\x0f\x83\x07\x82\xdc\x82\xf4\x82\xd2\x82\xd8\x83\x0c\x82\xfb\x82\xd3\x83\x11\x83\x1a\x83\x06\x83\x14\x83\x15\x82\xe0\x82\xd5\x83\x1c\x83\x51\x83\x5b\x83\x5c\x83\x08\x83\x92\x83\x3c\x83\x34\x83\x31\x83\x9b\x83\x5e\x83\x2f\x83\x4f\x83\x47\x83\x43\x83\x5f\x83\x40\x83\x17\x83\x60\x83\x2d\x83\x3a\x83\x33\x83\x66\x83\x65\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x68\x83\x1b\x83\x69\x83\x6c\x83\x6a\x83\x6d\x83\x6e\x83\xb0\x83\x78\x83\xb3\x83\xb4\x83\xa0\x83\xaa\x83\x93\x83\x9c\x83\x85\x83\x7c\x83\xb6\x83\xa9\x83\x7d\x83\xb8\x83\x7b\x83\x98\x83\x9e\x83\xa8\x83\xba\x83\xbc\x83\xc1\x84\x01\x83\xe5\x83\xd8\x58\x07\x84\x18\x84\x0b\x83\xdd\x83\xfd\x83\xd6\x84\x1c\x84\x38\x84\x11\x84\x06\x83\xd4\x83\xdf\x84\x0f\x84\x03\x83\xf8\x83\xf9\x83\xea\x83\xc5\x83\xc0\x84\x26\x83\xf0\x83\xe1\x84\x5c\x84\x51\x84\x5a\x84\x59\x84\x73\x84\x87\x84\x88\x84\x7a\x84\x89\x84\x78", /* 5f80 */ "\x00\x00\x84\x3c\x84\x46\x84\x69\x84\x76\x84\x8c\x84\x8e\x84\x31\x84\x6d\x84\xc1\x84\xcd\x84\xd0\x84\xe6\x84\xbd\x84\xd3\x84\xca\x84\xbf\x84\xba\x84\xe0\x84\xa1\x84\xb9\x84\xb4\x84\x97\x84\xe5\x84\xe3\x85\x0c\x75\x0d\x85\x38\x84\xf0\x85\x39\x85\x1f\x85\x3a\x85\x56\x85\x3b\x84\xff\x84\xfc\x85\x59\x85\x48\x85\x68\x85\x64\x85\x5e\x85\x7a\x77\xa2\x85\x43\x85\x72\x85\x7b\x85\xa4\x85\xa8\x85\x87\x85\x8f\x85\x79\x85\xae\x85\x9c\x85\x85\x85\xb9\x85\xb7\x85\xb0\x85\xd3\x85\xc1\x85\xdc\x85\xff\x86\x27\x86\x05\x86\x29\x86\x16\x86\x3c\x5e\xfe\x5f\x08\x59\x3c\x59\x41\x80\x37\x59\x55\x59\x5a\x59\x58\x53\x0f\x5c\x22\x5c\x25\x5c\x2c\x5c\x34\x62\x4c\x62\x6a\x62\x9f\x62\xbb\x62\xca\x62\xda\x62\xd7\x62\xee\x63\x22\x62\xf6\x63\x39\x63\x4b\x63\x43\x63\xad\x63\xf6\x63\x71\x63\x7a\x63\x8e\x63\xb4\x63\x6d\x63\xac\x63\x8a\x63\x69\x63\xae\x63\xbc\x63\xf2\x63\xf8\x63\xe0\x63\xff\x63\xc4\x63\xde\x63\xce\x64\x52\x63\xc6\x63\xbe\x64\x45\x64\x41\x64\x0b\x64\x1b\x64\x20\x64\x0c\x64\x26\x64\x21\x64\x5e\x64\x84\x64\x6d\x64\x96\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7a\x64\xb7\x64\xb8\x64\x99\x64\xba\x64\xc0\x64\xd0\x64\xd7\x64\xe4\x64\xe2\x65\x09\x65\x25\x65\x2e\x5f\x0b\x5f\xd2\x75\x19\x5f\x11\x53\x5f\x53\xf1\x53\xfd\x53\xe9\x53\xe8\x53\xfb\x54\x12\x54\x16\x54\x06\x54\x4b\x54\x52\x54\x53\x54\x54\x54\x56\x54\x43\x54\x21\x54\x57\x54\x59\x54\x23\x54\x32\x54\x82\x54\x94\x54\x77\x54\x71\x54\x64\x54\x9a\x54\x9b\x54\x84\x54\x76\x54\x66\x54\x9d\x54\xd0\x54\xad\x54\xc2\x54\xb4\x54\xd2\x54\xa7\x54\xa6\x54\xd3\x54\xd4\x54\x72\x54\xa3\x54\xd5\x54\xbb\x54\xbf\x54\xcc", /* 6080 */ "\x00\x00\x54\xd9\x54\xda\x54\xdc\x54\xa9\x54\xaa\x54\xa4\x54\xdd\x54\xcf\x54\xde\x55\x1b\x54\xe7\x55\x20\x54\xfd\x55\x14\x54\xf3\x55\x22\x55\x23\x55\x0f\x55\x11\x55\x27\x55\x2a\x55\x67\x55\x8f\x55\xb5\x55\x49\x55\x6d\x55\x41\x55\x55\x55\x3f\x55\x50\x55\x3c\x55\x37\x55\x56\x55\x75\x55\x76\x55\x77\x55\x33\x55\x30\x55\x5c\x55\x8b\x55\xd2\x55\x83\x55\xb1\x55\xb9\x55\x88\x55\x81\x55\x9f\x55\x7e\x55\xd6\x55\x91\x55\x7b\x55\xdf\x55\xbd\x55\xbe\x55\x94\x55\x99\x55\xea\x55\xf7\x55\xc9\x56\x1f\x55\xd1\x55\xeb\x55\xec\x55\xd4\x55\xe6\x55\xdd\x55\xc4\x55\xef\x55\xe5\x55\xf2\x55\xf3\x55\xcc\x55\xcd\x55\xe8\x55\xf5\x55\xe4\x8f\x94\x56\x1e\x56\x08\x56\x0c\x56\x01\x56\x24\x56\x23\x55\xfe\x56\x00\x56\x27\x56\x2d\x56\x58\x56\x39\x56\x57\x56\x2c\x56\x4d\x56\x62\x56\x59\x56\x5c\x56\x4c\x56\x54\x56\x86\x56\x64\x56\x71\x56\x6b\x56\x7b\x56\x7c\x56\x85\x56\x93\x56\xaf\x56\xd4\x56\xd7\x56\xdd\x56\xe1\x56\xf5\x56\xeb\x56\xf9\x56\xff\x57\x04\x57\x0a\x57\x09\x57\x1c\x5e\x0f\x5e\x19\x5e\x14\x5e\x11\x5e\x31\x5e\x3b\x5e\x3c\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x37\x5e\x44\x5e\x54\x5e\x5b\x5e\x5e\x5e\x61\x5c\x8c\x5c\x7a\x5c\x8d\x5c\x90\x5c\x96\x5c\x88\x5c\x98\x5c\x99\x5c\x91\x5c\x9a\x5c\x9c\x5c\xb5\x5c\xa2\x5c\xbd\x5c\xac\x5c\xab\x5c\xb1\x5c\xa3\x5c\xc1\x5c\xb7\x5c\xc4\x5c\xd2\x5c\xe4\x5c\xcb\x5c\xe5\x5d\x02\x5d\x03\x5d\x27\x5d\x26\x5d\x2e\x5d\x24\x5d\x1e\x5d\x06\x5d\x1b\x5d\x58\x5d\x3e\x5d\x34\x5d\x3d\x5d\x6c\x5d\x5b\x5d\x6f\x5d\x5d\x5d\x6b\x5d\x4b\x5d\x4a\x5d\x69\x5d\x74\x5d\x82\x5d\x99\x5d\x9d\x8c\x73\x5d\xb7\x5d\xc5\x5f\x73\x5f\x77\x5f\x82\x5f\x87", /* 6180 */ "\x00\x00\x5f\x89\x5f\x8c\x5f\x95\x5f\x99\x5f\x9c\x5f\xa8\x5f\xad\x5f\xb5\x5f\xbc\x88\x62\x5f\x61\x72\xad\x72\xb0\x72\xb4\x72\xb7\x72\xb8\x72\xc3\x72\xc1\x72\xce\x72\xcd\x72\xd2\x72\xe8\x72\xef\x72\xe9\x72\xf2\x72\xf4\x72\xf7\x73\x01\x72\xf3\x73\x03\x72\xfa\x72\xfb\x73\x17\x73\x13\x73\x21\x73\x0a\x73\x1e\x73\x1d\x73\x15\x73\x22\x73\x39\x73\x25\x73\x2c\x73\x38\x73\x31\x73\x50\x73\x4d\x73\x57\x73\x60\x73\x6c\x73\x6f\x73\x7e\x82\x1b\x59\x25\x98\xe7\x59\x24\x59\x02\x99\x63\x99\x67\x99\x68\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x74\x99\x77\x99\x7d\x99\x80\x99\x84\x99\x87\x99\x8a\x99\x8d\x99\x90\x99\x91\x99\x93\x99\x94\x99\x95\x5e\x80\x5e\x91\x5e\x8b\x5e\x96\x5e\xa5\x5e\xa0\x5e\xb9\x5e\xb5\x5e\xbe\x5e\xb3\x8d\x53\x5e\xd2\x5e\xd1\x5e\xdb\x5e\xe8\x5e\xea\x81\xba\x5f\xc4\x5f\xc9\x5f\xd6\x5f\xcf\x60\x03\x5f\xee\x60\x04\x5f\xe1\x5f\xe4\x5f\xfe\x60\x05\x60\x06\x5f\xea\x5f\xed\x5f\xf8\x60\x19\x60\x35\x60\x26\x60\x1b\x60\x0f\x60\x0d\x60\x29\x60\x2b\x60\x0a\x60\x3f\x60\x21\x60\x78\x60\x79\x60\x7b\x60\x7a\x60\x42\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6a\x60\x7d\x60\x96\x60\x9a\x60\xad\x60\x9d\x60\x83\x60\x92\x60\x8c\x60\x9b\x60\xec\x60\xbb\x60\xb1\x60\xdd\x60\xd8\x60\xc6\x60\xda\x60\xb4\x61\x20\x61\x26\x61\x15\x61\x23\x60\xf4\x61\x00\x61\x0e\x61\x2b\x61\x4a\x61\x75\x61\xac\x61\x94\x61\xa7\x61\xb7\x61\xd4\x61\xf5\x5f\xdd\x96\xb3\x95\xe9\x95\xeb\x95\xf1\x95\xf3\x95\xf5\x95\xf6\x95\xfc\x95\xfe\x96\x03\x96\x04\x96\x06\x96\x08\x96\x0a\x96\x0b\x96\x0c\x96\x0d\x96\x0f\x96\x12\x96\x15\x96\x16\x96\x17\x96\x19\x96\x1a\x4e\x2c\x72\x3f\x62\x15\x6c\x35", /* 6280 */ "\x00\x00\x6c\x54\x6c\x5c\x6c\x4a\x6c\xa3\x6c\x85\x6c\x90\x6c\x94\x6c\x8c\x6c\x68\x6c\x69\x6c\x74\x6c\x76\x6c\x86\x6c\xa9\x6c\xd0\x6c\xd4\x6c\xad\x6c\xf7\x6c\xf8\x6c\xf1\x6c\xd7\x6c\xb2\x6c\xe0\x6c\xd6\x6c\xfa\x6c\xeb\x6c\xee\x6c\xb1\x6c\xd3\x6c\xef\x6c\xfe\x6d\x39\x6d\x27\x6d\x0c\x6d\x43\x6d\x48\x6d\x07\x6d\x04\x6d\x19\x6d\x0e\x6d\x2b\x6d\x4d\x6d\x2e\x6d\x35\x6d\x1a\x6d\x4f\x6d\x52\x6d\x54\x6d\x33\x6d\x91\x6d\x6f\x6d\x9e\x6d\xa0\x6d\x5e\x6d\x93\x6d\x94\x6d\x5c\x6d\x60\x6d\x7c\x6d\x63\x6e\x1a\x6d\xc7\x6d\xc5\x6d\xde\x6e\x0e\x6d\xbf\x6d\xe0\x6e\x11\x6d\xe6\x6d\xdd\x6d\xd9\x6e\x16\x6d\xab\x6e\x0c\x6d\xae\x6e\x2b\x6e\x6e\x6e\x4e\x6e\x6b\x6e\xb2\x6e\x5f\x6e\x86\x6e\x53\x6e\x54\x6e\x32\x6e\x25\x6e\x44\x6e\xdf\x6e\xb1\x6e\x98\x6e\xe0\x6f\x2d\x6e\xe2\x6e\xa5\x6e\xa7\x6e\xbd\x6e\xbb\x6e\xb7\x6e\xd7\x6e\xb4\x6e\xcf\x6e\x8f\x6e\xc2\x6e\x9f\x6f\x62\x6f\x46\x6f\x47\x6f\x24\x6f\x15\x6e\xf9\x6f\x2f\x6f\x36\x6f\x4b\x6f\x74\x6f\x2a\x6f\x09\x6f\x29\x6f\x89\x6f\x8d\x6f\x8c\x6f\x78\x6f\x72\x6f\x7c\x6f\x7a\x6f\xd1\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xc9\x6f\xa7\x6f\xb9\x6f\xb6\x6f\xc2\x6f\xe1\x6f\xee\x6f\xde\x6f\xe0\x6f\xef\x70\x1a\x70\x23\x70\x1b\x70\x39\x70\x35\x70\x4f\x70\x5e\x5b\x80\x5b\x84\x5b\x95\x5b\x93\x5b\xa5\x5b\xb8\x75\x2f\x9a\x9e\x64\x34\x5b\xe4\x5b\xee\x89\x30\x5b\xf0\x8e\x47\x8b\x07\x8f\xb6\x8f\xd3\x8f\xd5\x8f\xe5\x8f\xee\x8f\xe4\x8f\xe9\x8f\xe6\x8f\xf3\x8f\xe8\x90\x05\x90\x04\x90\x0b\x90\x26\x90\x11\x90\x0d\x90\x16\x90\x21\x90\x35\x90\x36\x90\x2d\x90\x2f\x90\x44\x90\x51\x90\x52\x90\x50\x90\x68\x90\x58\x90\x62\x90\x5b\x66\xb9", /* 6380 */ "\x00\x00\x90\x74\x90\x7d\x90\x82\x90\x88\x90\x83\x90\x8b\x5f\x50\x5f\x57\x5f\x56\x5f\x58\x5c\x3b\x54\xab\x5c\x50\x5c\x59\x5b\x71\x5c\x63\x5c\x66\x7f\xbc\x5f\x2a\x5f\x29\x5f\x2d\x82\x74\x5f\x3c\x9b\x3b\x5c\x6e\x59\x81\x59\x83\x59\x8d\x59\xa9\x59\xaa\x59\xa3\x59\x97\x59\xca\x59\xab\x59\x9e\x59\xa4\x59\xd2\x59\xb2\x59\xaf\x59\xd7\x59\xbe\x5a\x05\x5a\x06\x59\xdd\x5a\x08\x59\xe3\x59\xd8\x59\xf9\x5a\x0c\x5a\x09\x5a\x32\x5a\x34\x5a\x11\x5a\x23\x5a\x13\x5a\x40\x5a\x67\x5a\x4a\x5a\x55\x5a\x3c\x5a\x62\x5a\x75\x80\xec\x5a\xaa\x5a\x9b\x5a\x77\x5a\x7a\x5a\xbe\x5a\xeb\x5a\xb2\x5a\xd2\x5a\xd4\x5a\xb8\x5a\xe0\x5a\xe3\x5a\xf1\x5a\xd6\x5a\xe6\x5a\xd8\x5a\xdc\x5b\x09\x5b\x17\x5b\x16\x5b\x32\x5b\x37\x5b\x40\x5c\x15\x5c\x1c\x5b\x5a\x5b\x65\x5b\x73\x5b\x51\x5b\x53\x5b\x62\x9a\x75\x9a\x77\x9a\x78\x9a\x7a\x9a\x7f\x9a\x7d\x9a\x80\x9a\x81\x9a\x85\x9a\x88\x9a\x8a\x9a\x90\x9a\x92\x9a\x93\x9a\x96\x9a\x98\x9a\x9b\x9a\x9c\x9a\x9d\x9a\x9f\x9a\xa0\x9a\xa2\x9a\xa3\x9a\xa5\x9a\xa7\x7e\x9f\x7e\xa1\x7e\xa3\x7e\xa5\x7e\xa8\x7e\xa9\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xad\x7e\xb0\x7e\xbe\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc9\x7e\xcb\x7e\xcc\x7e\xd0\x7e\xd4\x7e\xd7\x7e\xdb\x7e\xe0\x7e\xe1\x7e\xe8\x7e\xeb\x7e\xee\x7e\xef\x7e\xf1\x7e\xf2\x7f\x0d\x7e\xf6\x7e\xfa\x7e\xfb\x7e\xfe\x7f\x01\x7f\x02\x7f\x03\x7f\x07\x7f\x08\x7f\x0b\x7f\x0c\x7f\x0f\x7f\x11\x7f\x12\x7f\x17\x7f\x19\x7f\x1c\x7f\x1b\x7f\x1f\x7f\x21\x7f\x22\x7f\x23\x7f\x24\x7f\x25\x7f\x26\x7f\x27\x7f\x2a\x7f\x2b\x7f\x2c\x7f\x2d\x7f\x2f\x7f\x30\x7f\x31\x7f\x32\x7f\x33\x7f\x35\x5e\x7a\x75\x7f\x5d\xdb\x75\x3e\x90\x95", /* 6480 */ "\x00\x00\x73\x8e\x73\x91\x73\xae\x73\xa2\x73\x9f\x73\xcf\x73\xc2\x73\xd1\x73\xb7\x73\xb3\x73\xc0\x73\xc9\x73\xc8\x73\xe5\x73\xd9\x98\x7c\x74\x0a\x73\xe9\x73\xe7\x73\xde\x73\xba\x73\xf2\x74\x0f\x74\x2a\x74\x5b\x74\x26\x74\x25\x74\x28\x74\x30\x74\x2e\x74\x2c\x74\x1b\x74\x1a\x74\x41\x74\x5c\x74\x57\x74\x55\x74\x59\x74\x77\x74\x6d\x74\x7e\x74\x9c\x74\x8e\x74\x80\x74\x81\x74\x87\x74\x8b\x74\x9e\x74\xa8\x74\xa9\x74\x90\x74\xa7\x74\xd2\x74\xba\x97\xea\x97\xeb\x97\xec\x67\x4c\x67\x53\x67\x5e\x67\x48\x67\x69\x67\xa5\x67\x87\x67\x6a\x67\x73\x67\x98\x67\xa7\x67\x75\x67\xa8\x67\x9e\x67\xad\x67\x8b\x67\x77\x67\x7c\x67\xf0\x68\x09\x67\xd8\x68\x0a\x67\xe9\x67\xb0\x68\x0c\x67\xd9\x67\xb5\x67\xda\x67\xb3\x67\xdd\x68\x00\x67\xc3\x67\xb8\x67\xe2\x68\x0e\x67\xc1\x67\xfd\x68\x32\x68\x33\x68\x60\x68\x61\x68\x4e\x68\x62\x68\x44\x68\x64\x68\x83\x68\x1d\x68\x55\x68\x66\x68\x41\x68\x67\x68\x40\x68\x3e\x68\x4a\x68\x49\x68\x29\x68\xb5\x68\x8f\x68\x74\x68\x77\x68\x93\x68\x6b\x68\xc2\x69\x6e\x68\xfc\x69\x1f\x69\x20\x68\xf9\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x24\x68\xf0\x69\x0b\x69\x01\x69\x57\x68\xe3\x69\x10\x69\x71\x69\x39\x69\x60\x69\x42\x69\x5d\x69\x84\x69\x6b\x69\x80\x69\x98\x69\x78\x69\x34\x69\xcc\x69\x87\x69\x88\x69\xce\x69\x89\x69\x66\x69\x63\x69\x79\x69\x9b\x69\xa7\x69\xbb\x69\xab\x69\xad\x69\xd4\x69\xb1\x69\xc1\x69\xca\x69\xdf\x69\x95\x69\xe0\x69\x8d\x69\xff\x6a\x2f\x69\xed\x6a\x17\x6a\x18\x6a\x65\x69\xf2\x6a\x44\x6a\x3e\x6a\xa0\x6a\x50\x6a\x5b\x6a\x35\x6a\x8e\x6a\x79\x6a\x3d\x6a\x28\x6a\x58\x6a\x7c\x6a\x91\x6a\x90\x6a\xa9\x6a\x97\x6a\xab", /* 6580 */ "\x00\x00\x73\x37\x73\x52\x6b\x81\x6b\x82\x6b\x87\x6b\x84\x6b\x92\x6b\x93\x6b\x8d\x6b\x9a\x6b\x9b\x6b\xa1\x6b\xaa\x8f\x6b\x8f\x6d\x8f\x71\x8f\x72\x8f\x73\x8f\x75\x8f\x76\x8f\x78\x8f\x77\x8f\x79\x8f\x7a\x8f\x7c\x8f\x7e\x8f\x81\x8f\x82\x8f\x84\x8f\x87\x8f\x8b\x8f\x8d\x8f\x8e\x8f\x8f\x8f\x98\x8f\x9a\x8e\xce\x62\x0b\x62\x17\x62\x1b\x62\x1f\x62\x22\x62\x21\x62\x25\x62\x24\x62\x2c\x81\xe7\x74\xef\x74\xf4\x74\xff\x75\x0f\x75\x11\x75\x13\x65\x34\x65\xee\x65\xef\x65\xf0\x66\x0a\x66\x19\x67\x72\x66\x03\x66\x15\x66\x00\x70\x85\x66\xf7\x66\x1d\x66\x34\x66\x31\x66\x36\x66\x35\x80\x06\x66\x5f\x66\x54\x66\x41\x66\x4f\x66\x56\x66\x61\x66\x57\x66\x77\x66\x84\x66\x8c\x66\xa7\x66\x9d\x66\xbe\x66\xdb\x66\xdc\x66\xe6\x66\xe9\x8d\x32\x8d\x33\x8d\x36\x8d\x3b\x8d\x3d\x8d\x40\x8d\x45\x8d\x46\x8d\x48\x8d\x49\x8d\x47\x8d\x4d\x8d\x55\x8d\x59\x89\xc7\x89\xca\x89\xcb\x89\xcc\x89\xce\x89\xcf\x89\xd0\x89\xd1\x72\x6e\x72\x9f\x72\x5d\x72\x66\x72\x6f\x72\x7e\x72\x7f\x72\x84\x72\x8b\x72\x8d\x72\x8f\x72\x92\x63\x08\x63\x32\x63\xb0\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x3f\x64\xd8\x80\x04\x6b\xea\x6b\xf3\x6b\xfd\x6b\xf5\x6b\xf9\x6c\x05\x6c\x07\x6c\x06\x6c\x0d\x6c\x15\x6c\x18\x6c\x19\x6c\x1a\x6c\x21\x6c\x29\x6c\x24\x6c\x2a\x6c\x32\x65\x35\x65\x55\x65\x6b\x72\x4d\x72\x52\x72\x56\x72\x30\x86\x62\x52\x16\x80\x9f\x80\x9c\x80\x93\x80\xbc\x67\x0a\x80\xbd\x80\xb1\x80\xab\x80\xad\x80\xb4\x80\xb7\x80\xe7\x80\xe8\x80\xe9\x80\xea\x80\xdb\x80\xc2\x80\xc4\x80\xd9\x80\xcd\x80\xd7\x67\x10\x80\xdd\x80\xeb\x80\xf1\x80\xf4\x80\xed\x81\x0d\x81\x0e\x80\xf2\x80\xfc\x67\x15\x81\x12", /* 6680 */ "\x00\x00\x8c\x5a\x81\x36\x81\x1e\x81\x2c\x81\x18\x81\x32\x81\x48\x81\x4c\x81\x53\x81\x74\x81\x59\x81\x5a\x81\x71\x81\x60\x81\x69\x81\x7c\x81\x7d\x81\x6d\x81\x67\x58\x4d\x5a\xb5\x81\x88\x81\x82\x81\x91\x6e\xd5\x81\xa3\x81\xaa\x81\xcc\x67\x26\x81\xca\x81\xbb\x81\xc1\x81\xa6\x6b\x24\x6b\x37\x6b\x39\x6b\x43\x6b\x46\x6b\x59\x98\xd1\x98\xd2\x98\xd3\x98\xd5\x98\xd9\x98\xda\x6b\xb3\x5f\x40\x6b\xc2\x89\xf3\x65\x90\x9f\x51\x65\x93\x65\xbc\x65\xc6\x65\xc4\x65\xc3\x65\xcc\x65\xce\x65\xd2\x65\xd6\x70\x80\x70\x9c\x70\x96\x70\x9d\x70\xbb\x70\xc0\x70\xb7\x70\xab\x70\xb1\x70\xe8\x70\xca\x71\x10\x71\x13\x71\x16\x71\x2f\x71\x31\x71\x73\x71\x5c\x71\x68\x71\x45\x71\x72\x71\x4a\x71\x78\x71\x7a\x71\x98\x71\xb3\x71\xb5\x71\xa8\x71\xa0\x71\xe0\x71\xd4\x71\xe7\x71\xf9\x72\x1d\x72\x28\x70\x6c\x71\x18\x71\x66\x71\xb9\x62\x3e\x62\x3d\x62\x43\x62\x48\x62\x49\x79\x3b\x79\x40\x79\x46\x79\x49\x79\x5b\x79\x5c\x79\x53\x79\x5a\x79\x62\x79\x57\x79\x60\x79\x6f\x79\x67\x79\x7a\x79\x85\x79\x8a\x79\x9a\x79\xa7\x79\xb3\x5f\xd1\x5f\xd0\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x3c\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\x59\x60\x63\x60\xab\x61\x06\x61\x0d\x61\x5d\x61\xa9\x61\x9d\x61\xcb\x61\xd1\x62\x06\x80\x80\x80\x7f\x6c\x93\x6c\xf6\x6d\xfc\x77\xf6\x77\xf8\x78\x00\x78\x09\x78\x17\x78\x18\x78\x11\x65\xab\x78\x2d\x78\x1c\x78\x1d\x78\x39\x78\x3a\x78\x3b\x78\x1f\x78\x3c\x78\x25\x78\x2c\x78\x23\x78\x29\x78\x4e\x78\x6d\x78\x56\x78\x57\x78\x26\x78\x50\x78\x47\x78\x4c\x78\x6a\x78\x9b\x78\x93\x78\x9a\x78\x87\x78\x9c\x78\xa1\x78\xa3\x78\xb2\x78\xb9\x78\xa5\x78\xd4\x78\xd9\x78\xc9", /* 6780 */ "\x00\x00\x78\xec\x78\xf2\x79\x05\x78\xf4\x79\x13\x79\x24\x79\x1e\x79\x34\x9f\x9b\x9e\xf9\x9e\xfb\x9e\xfc\x76\xf1\x77\x04\x77\x0d\x76\xf9\x77\x07\x77\x08\x77\x1a\x77\x22\x77\x19\x77\x2d\x77\x26\x77\x35\x77\x38\x77\x50\x77\x51\x77\x47\x77\x43\x77\x5a\x77\x68\x77\x62\x77\x65\x77\x7f\x77\x8d\x77\x7d\x77\x80\x77\x8c\x77\x91\x77\x9f\x77\xa0\x77\xb0\x77\xb5\x77\xbd\x75\x3a\x75\x40\x75\x4e\x75\x4b\x75\x48\x75\x5b\x75\x72\x75\x79\x75\x83\x7f\x58\x7f\x61\x7f\x5f\x8a\x48\x7f\x68\x7f\x74\x7f\x71\x7f\x79\x7f\x81\x7f\x7e\x76\xcd\x76\xe5\x88\x32\x94\x85\x94\x86\x94\x87\x94\x8b\x94\x8a\x94\x8c\x94\x8d\x94\x8f\x94\x90\x94\x94\x94\x97\x94\x95\x94\x9a\x94\x9b\x94\x9c\x94\xa3\x94\xa4\x94\xab\x94\xaa\x94\xad\x94\xac\x94\xaf\x94\xb0\x94\xb2\x94\xb4\x94\xb6\x94\xb7\x94\xb8\x94\xb9\x94\xba\x94\xbc\x94\xbd\x94\xbf\x94\xc4\x94\xc8\x94\xc9\x94\xca\x94\xcb\x94\xcc\x94\xcd\x94\xce\x94\xd0\x94\xd1\x94\xd2\x94\xd5\x94\xd6\x94\xd7\x94\xd9\x94\xd8\x94\xdb\x94\xde\x94\xdf\x94\xe0\x94\xe2\x94\xe4\x94\xe5\x94\xe7\x94\xe8\x94\xea\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe9\x94\xeb\x94\xee\x94\xef\x94\xf3\x94\xf4\x94\xf5\x94\xf7\x94\xf9\x94\xfc\x94\xfd\x94\xff\x95\x03\x95\x02\x95\x06\x95\x07\x95\x09\x95\x0a\x95\x0d\x95\x0e\x95\x0f\x95\x12\x95\x13\x95\x14\x95\x15\x95\x16\x95\x18\x95\x1b\x95\x1d\x95\x1e\x95\x1f\x95\x22\x95\x2a\x95\x2b\x95\x29\x95\x2c\x95\x31\x95\x32\x95\x34\x95\x36\x95\x37\x95\x38\x95\x3c\x95\x3e\x95\x3f\x95\x42\x95\x35\x95\x44\x95\x45\x95\x46\x95\x49\x95\x4c\x95\x4e\x95\x4f\x95\x52\x95\x53\x95\x54\x95\x56\x95\x57\x95\x58\x95\x59\x95\x5b\x95\x5e", /* 6880 */ "\x00\x00\x95\x5f\x95\x5d\x95\x61\x95\x62\x95\x64\x95\x65\x95\x66\x95\x67\x95\x68\x95\x69\x95\x6a\x95\x6b\x95\x6c\x95\x6f\x95\x71\x95\x72\x95\x73\x95\x3a\x77\xe7\x77\xec\x96\xc9\x79\xd5\x79\xed\x79\xe3\x79\xeb\x7a\x06\x5d\x47\x7a\x03\x7a\x02\x7a\x1e\x7a\x14\x7a\x39\x7a\x37\x7a\x51\x9e\xcf\x99\xa5\x7a\x70\x76\x88\x76\x8e\x76\x93\x76\x99\x76\xa4\x74\xde\x74\xe0\x75\x2c\x9e\x20\x9e\x22\x9e\x28\x9e\x29\x9e\x2a\x9e\x2b\x9e\x2c\x9e\x32\x9e\x31\x9e\x36\x9e\x38\x9e\x37\x9e\x39\x9e\x3a\x9e\x3e\x9e\x41\x9e\x42\x9e\x44\x9e\x46\x9e\x47\x9e\x48\x9e\x49\x9e\x4b\x9e\x4c\x9e\x4e\x9e\x51\x9e\x55\x9e\x57\x9e\x5a\x9e\x5b\x9e\x5c\x9e\x5e\x9e\x63\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x9e\x6b\x9e\x6c\x9e\x71\x9e\x6d\x9e\x73\x75\x92\x75\x94\x75\x96\x75\xa0\x75\x9d\x75\xac\x75\xa3\x75\xb3\x75\xb4\x75\xb8\x75\xc4\x75\xb1\x75\xb0\x75\xc3\x75\xc2\x75\xd6\x75\xcd\x75\xe3\x75\xe8\x75\xe6\x75\xe4\x75\xeb\x75\xe7\x76\x03\x75\xf1\x75\xfc\x75\xff\x76\x10\x76\x00\x76\x05\x76\x0c\x76\x17\x76\x0a\x76\x25\x76\x18\x76\x15\x76\x19\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x1b\x76\x3c\x76\x22\x76\x20\x76\x40\x76\x2d\x76\x30\x76\x3f\x76\x35\x76\x43\x76\x3e\x76\x33\x76\x4d\x76\x5e\x76\x54\x76\x5c\x76\x56\x76\x6b\x76\x6f\x7f\xca\x7a\xe6\x7a\x78\x7a\x79\x7a\x80\x7a\x86\x7a\x88\x7a\x95\x7a\xa6\x7a\xa0\x7a\xac\x7a\xa8\x7a\xad\x7a\xb3\x88\x64\x88\x69\x88\x72\x88\x7d\x88\x7f\x88\x82\x88\xa2\x88\xc6\x88\xb7\x88\xbc\x88\xc9\x88\xe2\x88\xce\x88\xe3\x88\xe5\x88\xf1\x89\x1a\x88\xfc\x88\xe8\x88\xfe\x88\xf0\x89\x21\x89\x19\x89\x13\x89\x1b\x89\x0a\x89\x34\x89\x2b\x89\x36\x89\x41", /* 6980 */ "\x00\x00\x89\x66\x89\x7b\x75\x8b\x80\xe5\x76\xb2\x76\xb4\x77\xdc\x80\x12\x80\x14\x80\x16\x80\x1c\x80\x20\x80\x22\x80\x25\x80\x26\x80\x27\x80\x29\x80\x28\x80\x31\x80\x0b\x80\x35\x80\x43\x80\x46\x80\x4d\x80\x52\x80\x69\x80\x71\x89\x83\x98\x78\x98\x80\x98\x83\x98\x89\x98\x8c\x98\x8d\x98\x8f\x98\x94\x98\x9a\x98\x9b\x98\x9e\x98\x9f\x98\xa1\x98\xa2\x98\xa5\x98\xa6\x86\x4d\x86\x54\x86\x6c\x86\x6e\x86\x7f\x86\x7a\x86\x7c\x86\x7b\x86\xa8\x86\x8d\x86\x8b\x86\xac\x86\x9d\x86\xa7\x86\xa3\x86\xaa\x86\x93\x86\xa9\x86\xb6\x86\xc4\x86\xb5\x86\xce\x86\xb0\x86\xba\x86\xb1\x86\xaf\x86\xc9\x86\xcf\x86\xb4\x86\xe9\x86\xf1\x86\xf2\x86\xed\x86\xf3\x86\xd0\x87\x13\x86\xde\x86\xf4\x86\xdf\x86\xd8\x86\xd1\x87\x03\x87\x07\x86\xf8\x87\x08\x87\x0a\x87\x0d\x87\x09\x87\x23\x87\x3b\x87\x1e\x87\x25\x87\x2e\x87\x1a\x87\x3e\x87\x48\x87\x34\x87\x31\x87\x29\x87\x37\x87\x3f\x87\x82\x87\x22\x87\x7d\x87\x7e\x87\x7b\x87\x60\x87\x70\x87\x4c\x87\x6e\x87\x8b\x87\x53\x87\x63\x87\x7c\x87\x64\x87\x59\x87\x65\x87\x93\x87\xaf\x87\xa8\x87\xd2\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xc6\x87\x88\x87\x85\x87\xad\x87\x97\x87\x83\x87\xab\x87\xe5\x87\xac\x87\xb5\x87\xb3\x87\xcb\x87\xd3\x87\xbd\x87\xd1\x87\xc0\x87\xca\x87\xdb\x87\xea\x87\xe0\x87\xee\x88\x16\x88\x13\x87\xfe\x88\x0a\x88\x1b\x88\x21\x88\x39\x88\x3c\x7f\x36\x7f\x42\x7f\x44\x7f\x45\x82\x10\x7a\xfa\x7a\xfd\x7b\x08\x7b\x03\x7b\x04\x7b\x15\x7b\x0a\x7b\x2b\x7b\x0f\x7b\x47\x7b\x38\x7b\x2a\x7b\x19\x7b\x2e\x7b\x31\x7b\x20\x7b\x25\x7b\x24\x7b\x33\x7b\x3e\x7b\x1e\x7b\x58\x7b\x5a\x7b\x45\x7b\x75\x7b\x4c\x7b\x5d\x7b\x60\x7b\x6e", /* 6a80 */ "\x00\x00\x7b\x7b\x7b\x62\x7b\x72\x7b\x71\x7b\x90\x7b\xa6\x7b\xa7\x7b\xb8\x7b\xac\x7b\x9d\x7b\xa8\x7b\x85\x7b\xaa\x7b\x9c\x7b\xa2\x7b\xab\x7b\xb4\x7b\xd1\x7b\xc1\x7b\xcc\x7b\xdd\x7b\xda\x7b\xe5\x7b\xe6\x7b\xea\x7c\x0c\x7b\xfe\x7b\xfc\x7c\x0f\x7c\x16\x7c\x0b\x7c\x1f\x7c\x2a\x7c\x26\x7c\x38\x7c\x41\x7c\x40\x81\xfe\x82\x01\x82\x02\x82\x04\x81\xec\x88\x44\x82\x21\x82\x22\x82\x23\x82\x2d\x82\x2f\x82\x28\x82\x2b\x82\x38\x82\x3b\x82\x33\x82\x34\x82\x3e\x82\x44\x82\x49\x82\x4b\x82\x4f\x82\x5a\x82\x5f\x82\x68\x88\x7e\x88\x85\x88\x88\x88\xd8\x88\xdf\x89\x5e\x7f\x9d\x7f\x9f\x7f\xa7\x7f\xaf\x7f\xb0\x7f\xb2\x7c\x7c\x65\x49\x7c\x91\x7c\x9d\x7c\x9c\x7c\x9e\x7c\xa2\x7c\xb2\x7c\xbc\x7c\xbd\x7c\xc1\x7c\xc7\x7c\xcc\x7c\xcd\x7c\xc8\x7c\xc5\x7c\xd7\x7c\xe8\x82\x6e\x66\xa8\x7f\xbf\x7f\xce\x7f\xd5\x7f\xe5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xee\x7f\xf3\x7c\xf8\x7d\x77\x7d\xa6\x7d\xae\x7e\x47\x7e\x9b\x9e\xb8\x9e\xb4\x8d\x73\x8d\x84\x8d\x94\x8d\x91\x8d\xb1\x8d\x67\x8d\x6d\x8c\x47\x8c\x49\x91\x4a\x91\x50\x91\x4e\x91\x4f\x91\x64\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x62\x91\x61\x91\x70\x91\x69\x91\x6f\x91\x7d\x91\x7e\x91\x72\x91\x74\x91\x79\x91\x8c\x91\x85\x91\x90\x91\x8d\x91\x91\x91\xa2\x91\xa3\x91\xaa\x91\xad\x91\xae\x91\xaf\x91\xb5\x91\xb4\x91\xba\x8c\x55\x9e\x7e\x8d\xb8\x8d\xeb\x8e\x05\x8e\x59\x8e\x69\x8d\xb5\x8d\xbf\x8d\xbc\x8d\xba\x8d\xc4\x8d\xd6\x8d\xd7\x8d\xda\x8d\xde\x8d\xce\x8d\xcf\x8d\xdb\x8d\xc6\x8d\xec\x8d\xf7\x8d\xf8\x8d\xe3\x8d\xf9\x8d\xfb\x8d\xe4\x8e\x09\x8d\xfd\x8e\x14\x8e\x1d\x8e\x1f\x8e\x2c\x8e\x2e\x8e\x23\x8e\x2f\x8e\x3a\x8e\x40\x8e\x39", /* 6b80 */ "\x00\x00\x8e\x35\x8e\x3d\x8e\x31\x8e\x49\x8e\x41\x8e\x42\x8e\x51\x8e\x52\x8e\x4a\x8e\x70\x8e\x76\x8e\x7c\x8e\x6f\x8e\x74\x8e\x85\x8e\x8f\x8e\x94\x8e\x90\x8e\x9c\x8e\x9e\x8c\x78\x8c\x82\x8c\x8a\x8c\x85\x8c\x98\x8c\x94\x65\x9b\x89\xd6\x89\xde\x89\xda\x89\xdc\x89\xe5\x89\xeb\x89\xef\x8a\x3e\x8b\x26\x97\x53\x96\xe9\x96\xf3\x96\xef\x97\x06\x97\x01\x97\x08\x97\x0f\x97\x0e\x97\x2a\x97\x2d\x97\x30\x97\x3e\x9f\x80\x9f\x83\x9f\x85\x9f\x86\x9f\x87\x9f\x88\x9f\x89\x9f\x8a\x9f\x8c\x9e\xfe\x9f\x0b\x9f\x0d\x96\xb9\x96\xbc\x96\xbd\x96\xce\x96\xd2\x77\xbf\x96\xe0\x92\x8e\x92\xae\x92\xc8\x93\x3e\x93\x6a\x93\xca\x93\x8f\x94\x3e\x94\x6b\x9c\x7f\x9c\x82\x9c\x85\x9c\x86\x9c\x87\x9c\x88\x7a\x23\x9c\x8b\x9c\x8e\x9c\x90\x9c\x91\x9c\x92\x9c\x94\x9c\x95\x9c\x9a\x9c\x9b\x9c\x9e\x9c\x9f\x9c\xa0\x9c\xa1\x9c\xa2\x9c\xa3\x9c\xa5\x9c\xa6\x9c\xa7\x9c\xa8\x9c\xa9\x9c\xab\x9c\xad\x9c\xae\x9c\xb0\x9c\xb1\x9c\xb2\x9c\xb3\x9c\xb4\x9c\xb5\x9c\xb6\x9c\xb7\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xca\x9c\xcb\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xcc\x9c\xcd\x9c\xce\x9c\xcf\x9c\xd0\x9c\xd3\x9c\xd4\x9c\xd5\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xdc\x9c\xdd\x9c\xdf\x9c\xe2\x97\x7c\x97\x85\x97\x91\x97\x92\x97\x94\x97\xaf\x97\xab\x97\xa3\x97\xb2\x97\xb4\x9a\xb1\x9a\xb0\x9a\xb7\x9e\x58\x9a\xb6\x9a\xba\x9a\xbc\x9a\xc1\x9a\xc0\x9a\xc5\x9a\xc2\x9a\xcb\x9a\xcc\x9a\xd1\x9b\x45\x9b\x43\x9b\x47\x9b\x49\x9b\x48\x9b\x4d\x9b\x51\x98\xe8\x99\x0d\x99\x2e\x99\x55\x99\x54\x9a\xdf\x9a\xe1\x9a\xe6\x9a\xef\x9a\xeb\x9a\xfb\x9a\xed\x9a\xf9\x9b\x08\x9b\x0f\x9b\x13\x9b\x1f", /* 6c80 */ "\x00\x00\x9b\x23\x9e\xbd\x9e\xbe\x7e\x3b\x9e\x82\x9e\x87\x9e\x88\x9e\x8b\x9e\x92\x93\xd6\x9e\x9d\x9e\x9f\x9e\xdb\x9e\xdc\x9e\xdd\x9e\xe0\x9e\xdf\x9e\xe2\x9e\xe9\x9e\xe7\x9e\xe5\x9e\xea\x9e\xef\x9f\x22\x9f\x2c\x9f\x2f\x9f\x39\x9f\x37\x9f\x3d\x9f\x3e\x9f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ NULL, /* 6d80 */ NULL, /* 6e00 */ NULL, /* 6e80 */ NULL, /* 6f00 */ NULL, /* 6f80 */ NULL, /* 7000 */ NULL, /* 7080 */ NULL, /* 7100 */ NULL, /* 7180 */ NULL, /* 7200 */ NULL, /* 7280 */ NULL, /* 7300 */ NULL, /* 7380 */ NULL, /* 7400 */ NULL, /* 7480 */ NULL, /* 7500 */ NULL, /* 7580 */ NULL, /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 7680 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* 7780 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* 7880 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* 7980 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* 7a80 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* 7b80 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* 7c80 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* 7d80 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* 7e80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* 7f80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* 8000 */ NULL, /* 8080 */ NULL, /* 8100 */ NULL, /* 8180 */ NULL, /* 8200 */ NULL, /* 8280 */ NULL, /* 8300 */ NULL, /* 8380 */ NULL, /* 8400 */ NULL, /* 8480 */ NULL, /* 8500 */ NULL, /* 8580 */ NULL, /* 8600 */ NULL, /* 8680 */ NULL, /* 8700 */ NULL, /* 8780 */ NULL, /* 8800 */ NULL, /* 8880 */ NULL, /* 8900 */ NULL, /* 8980 */ NULL, /* 8a00 */ NULL, /* 8a80 */ NULL, /* 8b00 */ NULL, /* 8b80 */ NULL, /* 8c00 */ NULL, /* 8c80 */ NULL, /* 8d00 */ NULL, /* 8d80 */ NULL, /* 8e00 */ NULL, /* 8e80 */ NULL, /* 8f00 */ NULL, /* 8f80 */ NULL, /* 9000 */ NULL, /* 9080 */ NULL, /* 9100 */ NULL, /* 9180 */ NULL, /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ NULL, /* e080 */ NULL, /* e100 */ NULL, /* e180 */ NULL, /* e200 */ NULL, /* e280 */ NULL, /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp937", "0x03a70343" /* 935, 835 */, "big5-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-937_P110-1999 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\xa1\x44\xed\x44\x4b\x00\x00\x00\x00\x44\xee\x00\x00\x43\x79\x46\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x53\x00\x00\x45\x51\x45\x52\x45\x54\x00\x00\x47\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x44\x4a\x44\x4a\x00\x00\x00\x00\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x43\x77\x43\x78\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x43\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x73\x00\x00\x44\x50\x44\xef\x00\x00\x42\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x42\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x46\xbb\x00\x00\x00\x00\x00\x00\x46\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x46\xd4\x46\xd5\x46\xd7\x46\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xef\x46\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6e\x00\x00\x43\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x43\x70\x00\x00\x43\x4e\x43\x71\x00\x00\x00\x00\x00\x00\x43\x4f\x43\x64\x00\x00\x00\x00\x43\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xda\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc5\x00\x00\x00\x00\x43\x61\x44\x4d\x46\xcc\x46\xcb\x00\x00\x00\x00\x42\x4f\x00\x00\x44\x7c\x00\x00\x43\x6c\x43\x6d\x46\xc8\x46\xc9\x46\xd0\x43\x63\x00\x00\x46\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa1\x43\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x46\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x43\x5d\x43\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x43\x68\x43\x69\x00\x00\x00\x00\x43\x66\x43\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xd2\x00\x00\x00\x00\x00\x00\x46\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8d\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x00\x00\x47\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x41\x46\x42\x46\x43\x46\x44\x46\x45\x46\x46\x46\x47\x46\x48\x46\x49\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x46\x52\x46\x53\x46\x54\x46\x55\x46\x56\x46\x57\x46\x58\x46\x59\x46\x5a\x00\x00\x00\x00", /* 2480 */ NULL, /* 2500 */ "\x46\x75\x43\xb7\x46\x76\x43\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x78\x00\x00\x00\x00\x43\xb9\x46\x79\x00\x00\x00\x00\x43\xe1\x46\x7a\x00\x00\x00\x00\x43\xe3\x46\x7b\x00\x00\x00\x00\x43\xe2\x46\x73\x43\xee\x00\x00\x00\x00\x43\xe9\x00\x00\x00\x00\x43\xe4\x46\x72\x43\xf0\x00\x00\x00\x00\x43\xeb\x00\x00\x00\x00\x43\xe6\x46\x71\x00\x00\x00\x00\x43\xea\x43\xef\x00\x00\x00\x00\x43\xe5\x46\x70\x00\x00\x00\x00\x43\xec\x43\xf1\x00\x00\x00\x00\x43\xe7\x46\x6f\x00\x00\x00\x00\x43\xed\x00\x00\x00\x00\x43\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x46\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x82\x00\x00\x00\x00\x46\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x83\x00\x00\x00\x00\x46\x7c\x46\x7d\x46\x7f\x46\x7e\x46\x89\x46\x8a\x46\x8b\x46\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x46\x60\x46\x61\x46\x62\x46\x63\x46\x64\x46\x65\x46\x66\x46\x67\x46\x6e\x46\x6d\x46\x6c\x46\x6b\x46\x6a\x46\x69\x46\x68\x00\x00\x00\x00\x00\x00\x00\x00\x46\x74\x46\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x85\x46\x86\x46\x88\x46\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x76\x00\x00\x00\x00\x43\x75\x00\x00\x43\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x46\xb9\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe9\x46\xea\x00\x00\x00\x00\x45\x41\x45\x42\x45\x43\x45\x44\x45\x45\x45\x46\x45\x47\x45\x48\x45\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x56\x45\x57\x45\x58\x45\x59\x45\x5a\x45\x5b\x45\x5c\x45\x5d\x45\x5e\x45\x5f\x45\x60\x45\x61\x45\x62\x45\x63\x45\x64\x45\x65\x45\x66\x45\x67\x45\x68\x45\x69\x45\x6a\x45\x6b\x45\x6c\x45\x6d\x45\x6e\x45\x6f\x45\x70\x45\x71\x45\x72\x45\x73\x45\x74\x45\x75\x45\x76\x45\x77\x45\x78\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3300 */ NULL, /* 3380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe2\x46\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xdd\x46\xde\x46\xdf\x00\x00\x00\x00\x46\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe0\x00\x00\x00\x00\x46\xcf\x46\xce\x00\x00\x00\x00\x46\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x4c\x41\x4c\x43\x00\x00\x4c\x44\x00\x00\x00\x00\x00\x00\x69\x46\x4c\x57\x4c\x55\x4c\x58\x4c\x56\x69\x47\x4c\x83\x69\x50\x69\x4e\x4c\x82\x4c\x81\x00\x00\x00\x00\x4c\xe1\x4c\xe0\x4c\xdf\x00\x00\x4c\xe2\x4c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa1\x4d\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xe3\x00\x00\x48\x42\x00\x00\x00\x00\x4c\x59\x00\x00\x4c\x84\x69\x51\x00\x00\x4c\x85\x69\x64\x4e\x8c\x6b\x52\x00\x00\x00\x00\x48\x43\x00\x00\x4c\x5a\x4c\x86\x00\x00\x4c\xe3\x69\x65\x00\x00\x00\x00\x48\x44\x00\x00\x00\x00\x69\x41\x4c\x45\x00\x00\x4c\x5c\x00\x00\x69\x48\x4c\x5d\x00\x00\x00\x00\x4c\x87\x00\x00\x4c\xe4\x4c\xe6\x4c\xe5\x00\x00\x00\x00\x4d\xa3\x4d\xa4\x00\x00\x00\x00\x4f\xe4\x00\x00\x53\xfd\x4c\x42\x00\x00\x00\x00\x69\x42\x4c\x46\x4c\x5f\x4c\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x92\x72\x6f", /* 4e80 */ "\x00\x00\x00\x00\x5b\xa9\x79\x77\x79\x78\x48\x46\x4c\x47\x00\x00\x4c\x89\x00\x00\x00\x00\x4f\xe6\x4c\x48\x69\x49\x4c\x60\x00\x00\x00\x00\x4c\x8a\x4c\x8c\x69\x52\x4c\x8d\x4c\x8b\x00\x00\x00\x00\x00\x00\x4d\xa6\x00\x00\x4f\xe7\x00\x00\x00\x00\x4f\xe8\x51\xe6\x48\x48\x4c\x61\x4c\x8e\x00\x00\x4d\xa7\x4d\xa9\x4d\xa8\x00\x00\x4e\x8d\x00\x00\x00\x00\x4f\xe9\x4f\xea\x51\xe7\x51\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x54\x41\x00\x00\x00\x00\x79\x79\x00\x00\x00\x00\x8f\x66\x4c\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x90\x4c\x8f\x69\x53\x4c\x91\x4c\x97\x00\x00\x4c\x92\x4c\x93\x69\x55\x69\x54\x4c\x95\x4c\x96\x00\x00\x4c\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe9\x4c\xea\x4c\xeb\x4c\xec\x4c\xe8\x4c\xef\x69\x6b\x00\x00\x69\x67\x69\x6a\x4c\xf0\x4d\x43\x00\x00\x69\x69\x00\x00\x4c\xed\x4c\xee\x4c\xe7\x00\x00\x00\x00\x69\x66\x69\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb6\x69\x90\x4d\xb3\x4d\xb7\x69\x9a\x69\x8e\x4d\xb4\x69\x92\x00\x00\x00\x00\x00\x00\x4d\xb5\x00\x00\x4d\xb8\x00\x00\x4d\xaa", /* 4f00 */ "\x69\x91\x4d\xb9\x69\x95\x00\x00\x69\x99\x69\x96\x00\x00\x00\x00\x69\x93\x4d\xab\x4d\xad\x4d\xba\x00\x00\x4d\xaf\x69\x8b\x4d\xb2\x4d\xb0\x4d\xb1\x69\x9b\x69\x98\x69\x8f\x4d\xae\x00\x00\x00\x00\x69\x8c\x4d\xac\x00\x00\x00\x00\x00\x00\x69\x94\x00\x00\x00\x00\x00\x00\x00\x00\x69\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x8d\x6a\x48\x00\x00\x4e\xa3\x4e\x96\x00\x00\x00\x00\x6a\x49\x4e\x93\x00\x00\x4e\xa5\x00\x00\x4e\x9b\x00\x00\x4e\x9a\x69\xfa\x4e\x9e\x4e\x99\x6a\x42\x6a\x4a\x00\x00\x6a\x46\x00\x00\x4e\x9c\x00\x00\x00\x00\x4e\x9f\x4e\x90\x4e\xa8\x69\xfc\x00\x00\x00\x00\x6b\x5e\x4e\x8e\x4e\xa4\x4e\x8f\x4e\x97\x4e\x98\x6a\x44\x69\xfd\x4e\x9d\x4e\x95\x69\xf9\x4e\x91\x6a\x47\x4e\xa6\x4e\xa9\x4e\x94\x4e\xa1\x4e\xa7\x4e\x92\x6a\x45\x4e\xa2\x6a\x4b\x69\xfb\x4e\xa0\x6a\x41\x00\x00\x00\x00\x6a\x43\x00\x00\x4f\xf8\x6b\x60\x6b\x6c\x4f\xf0\x00\x00\x6b\x6d\x4f\xeb\x4f\xf5\x00\x00\x00\x00\x4f\xee\x6b\x5a\x4f\xf6\x6b\x59\x6b\x5d\x6b\x64\x6b\x62\x50\x41\x4f\xf9\x6b\x54\x6b\x56\x4f\xfb\x4f\xef", /* 4f80 */ "\x6b\x57\x6b\x63\x6b\x6a\x4f\xf4\x6b\x5c\x6b\x55\x4f\xf3\x6b\x58\x4f\xf7\x6b\x5b\x00\x00\x4f\xf2\x00\x00\x4f\xed\x00\x00\x4f\xfc\x6b\x65\x4f\xfd\x6b\x69\x00\x00\x6b\x67\x6b\x6b\x4f\xfa\x6b\x5f\x6b\x53\x00\x00\x6b\x61\x4f\xf1\x6b\x66\x4f\xec\x6b\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf7\x51\xeb\x00\x00\x00\x00\x6d\x43\x6d\x4b\x00\x00\x51\xea\x51\xf2\x52\x41\x00\x00\x6d\x51\x6d\x4f\x6d\x4a\x00\x00\x00\x00\x00\x00\x51\xec\x6d\x50\x6d\x46\x51\xfa\x51\xf1\x51\xf9\x6d\x41\x00\x00\x6d\x4d\x00\x00\x6d\x44\x51\xf5\x6d\x45\x00\x00\x6c\xfd\x51\xfc\x51\xef\x51\xf8\x51\xee\x00\x00\x6d\x42\x6d\x47\x00\x00\x6d\x4e\x51\xf6\x51\xf3\x6d\x49\x51\xfb\x6d\x4c\x6d\x48\x51\xf0\x51\xfd\x51\xf4\x51\xed\x51\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x52\x00\x00\x54\x5b\x54\x45\x00\x00\x54\x55\x00\x00\x54\x5a\x6f\x93\x6f\x92\x6f\x97\x6f\x98\x54\x48\x00\x00\x54\x51\x00\x00\x00\x00\x00\x00\x54\x5e\x00\x00", /* 5000 */ "\x54\x52\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x8c\x54\x4b\x6f\x8d\x00\x00\x54\x60\x00\x00\x54\x57\x54\x42\x54\x43\x6f\xa0\x56\xa3\x00\x00\x54\x50\x54\x4f\x6f\x8e\x54\x53\x72\x7f\x54\x4a\x6f\x99\x54\x59\x54\x58\x54\x4e\x6f\x91\x6f\x9a\x00\x00\x6f\x8b\x54\x4d\x6f\x9b\x54\x56\x6f\x8f\x54\x44\x00\x00\x54\x47\x54\x46\x6f\x9c\x54\x54\x54\x49\x54\x5d\x54\x5f\x6f\x96\x54\x5c\x00\x00\x6f\x9e\x6f\x90\x6f\x9f\x00\x00\x6f\x94\x00\x00\x6f\x9d\x00\x00\x6f\x95\x00\x00\x00\x00\x00\x00\x00\x00\x54\x4c\x00\x00\x00\x00\x00\x00\x72\x88\x72\x7b\x00\x00\x56\x97\x00\x00\x72\x81\x72\x87\x56\x96\x72\x79\x56\x9a\x72\x7d\x72\x76\x56\x98\x72\x7a\x56\x9d\x56\xa2\x00\x00\x72\x8c\x00\x00\x72\x75\x00\x00\x56\x9e\x00\x00\x72\x8b\x00\x00\x00\x00\x56\x99\x72\x7c\x56\x95\x72\x77\x72\x73\x72\x82\x72\x74\x72\x72\x72\x7e\x72\x85\x72\x86\x56\x9b\x00\x00\x00\x00\x75\xc0\x72\x83\x72\x71\x72\x84\x00\x00\x56\xa5\x72\x89\x56\xa4\x72\x70\x00\x00\x72\x78\x72\x8a\x56\xa0\x56\x9f\x56\x9c\x56\xa1\x00\x00\x00\x00\x56\x93\x00\x00\x00\x00\x56\x94\x00\x00\x00\x00", /* 5080 */ "\x59\x4e\x00\x00\x75\xc3\x75\xbc\x00\x00\x59\x4b\x00\x00\x75\xc4\x00\x00\x00\x00\x00\x00\x75\xba\x75\xbd\x59\x4a\x75\xbe\x00\x00\x00\x00\x59\x4d\x75\xc2\x00\x00\x75\xb8\x75\xb7\x59\x4f\x00\x00\x59\x50\x59\x4c\x59\x51\x75\xb6\x75\xc1\x75\xbf\x75\xb9\x00\x00\x00\x00\x00\x00\x59\x49\x75\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb0\x5b\xaa\x79\x7d\x5b\xb3\x79\x84\x79\x87\x5b\xac\x5b\xad\x79\x81\x5b\xab\x79\x8a\x5b\xb1\x79\x8b\x00\x00\x79\x86\x5b\xb2\x00\x00\x79\x7a\x5b\xaf\x79\x7b\x00\x00\x79\x85\x79\x83\x00\x00\x79\x7e\x5b\xae\x79\x7c\x5b\xb4\x79\x82\x79\x89\x79\x7f\x79\x88\x00\x00\x00\x00\x5d\xfb\x5d\xf8\x00\x00\x5d\xf9\x00\x00\x7d\x43\x7c\xf8\x5d\xf7\x5d\xf4\x7c\xf9\x00\x00\x00\x00\x5d\xf6\x7c\xfc\x00\x00\x7d\x41\x00\x00\x00\x00\x7d\x48\x00\x00\x00\x00\x7d\x47\x7d\x42\x5d\xf3\x7c\xf7\x5d\xf1\x7c\xfa\x5d\xfc\x7c\xfd\x00\x00\x7d\x44\x5d\xf5\x5d\xf2\x7d\x46\x7d\x45\x5d\xfa\x00\x00\x7c\xfb\x00\x00\x60\x42\x80\x76\x00\x00\x80\x73\x60\x43\x00\x00\x60\x41\x00\x00\x80\x7a\x80\x77\x80\x70", /* 5100 */ "\x5f\xfd\x00\x00\x60\x44\x80\x71\x5f\xfc\x60\x47\x80\x74\x80\x75\x60\x45\x60\x46\x80\x7b\x80\x78\x80\x79\x00\x00\x00\x00\x00\x00\x62\x53\x83\xc3\x62\x50\x83\xc0\x62\x52\x62\x54\x00\x00\x83\xc1\x62\x51\x00\x00\x83\xc2\x00\x00\x83\xbf\x00\x00\x00\x00\x63\xc0\x86\xc8\x63\xc1\x86\xc6\x00\x00\x86\xc7\x86\xc5\x86\xc4\x00\x00\x00\x00\x86\xc9\x63\xbf\x00\x00\x00\x00\x89\x65\x89\x66\x00\x00\x80\x72\x89\x64\x63\xc2\x66\x4b\x8b\x5a\x8b\x5b\x00\x00\x67\x83\x67\x84\x8e\x70\x8e\x6f\x67\xd7\x67\xd6\x90\x41\x00\x00\x4c\x4a\x4c\x62\x4c\x99\x00\x00\x4c\x98\x4c\xf2\x4c\xf1\x4d\xbd\x4d\xbc\x4d\xbe\x4d\xbb\x00\x00\x4e\xab\x4e\xaa\x4e\xac\x00\x00\x00\x00\x00\x00\x00\x00\x50\x43\x00\x00\x50\x42\x50\x44\x00\x00\x52\x42\x00\x00\x46\xf1\x6f\xa1\x46\xf2\x56\xa6\x46\xf4\x46\xf3\x75\xc5\x00\x00\x46\xf5\x5d\xfd\x46\xf6\x00\x00\x4c\x4b\x00\x00\x4c\x9a\x4d\xbf\x50\x45\x00\x00\x4c\x4c\x4c\x9d\x4c\x9b\x4c\x9c\x00\x00\x00\x00\x4d\xc0\x00\x00\x00\x00\x00\x00\x4e\xad\x50\x47\x50\x46\x50\x48\x00\x00\x00\x00\x00\x00\x54\x61\x00\x00\x00\x00\x00\x00", /* 5180 */ "\x62\x55\x00\x00\x48\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4f\x00\x00\x4c\xf3\x4c\xf4\x00\x00\x00\x00\x4d\xc1\x00\x00\x6a\x4c\x00\x00\x52\x44\x52\x43\x6f\xa3\x6f\xa2\x56\xa7\x48\x4e\x4c\x9e\x69\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x6e\x00\x00\x52\x45\x00\x00\x54\x64\x00\x00\x54\x62\x54\x63\x00\x00\x00\x00\x00\x00\x00\x00\x62\x56\x48\x4f\x4c\xf5\x00\x00\x00\x00\x00\x00\x4d\xc2\x69\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xae\x4e\xaf\x00\x00\x6a\x4d\x00\x00\x00\x00\x6b\x6f\x50\x49\x6b\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xa5\x6f\xa6\x54\x67\x00\x00\x6f\xa7\x00\x00\x6f\xa4\x54\x68\x54\x66\x54\x65\x6f\xa8\x00\x00\x72\x8d\x00\x00\x00\x00\x00\x00\x75\xc6\x00\x00\x00\x00\x79\x8c\x7d\x49\x00\x00\x00\x00\x00\x00\x60\x48\x62\x57\x83\xc4\x00\x00\x4c\x4d\x4c\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xa8\x59\x53\x00\x00\x5e\x41\x00\x00\x69\x43\x4c\x9f\x00\x00\x4c\xf8\x4c\xf6\x4c\xf7\x00\x00\x00\x00\x50\x4a\x00\x00\x00\x00", /* 5200 */ "\x4c\x4e\x4c\x4f\x00\x00\x4c\x63\x00\x00\x00\x00\x4c\xa0\x4c\xa1\x4c\xa2\x69\x9e\x4c\xf9\x00\x00\x69\x6c\x00\x00\x4d\xc6\x00\x00\x69\x9f\x4d\xc4\x4d\xc5\x69\x9d\x00\x00\x00\x00\x4d\xc7\x4d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x4e\x51\xce\x6a\x4f\x00\x00\x00\x00\x6a\x50\x00\x00\x00\x00\x4e\xb1\x4e\xb0\x00\x00\x00\x00\x4e\xb4\x4e\xb2\x4e\xb3\x00\x00\x00\x00\x00\x00\x50\x50\x00\x00\x50\x4f\x6b\x75\x6b\x72\x6b\x73\x00\x00\x6b\x71\x50\x51\x50\x4d\x50\x4c\x00\x00\x50\x4e\x50\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x52\x00\x00\x52\x47\x6d\x53\x00\x00\x6b\x74\x52\x4c\x00\x00\x6d\x54\x52\x48\x52\x4b\x52\x4a\x52\x49\x52\x46\x00\x00\x00\x00\x00\x00\x6f\xab\x00\x00\x54\x6b\x6f\xae\x54\x69\x00\x00\x00\x00\x00\x00\x6f\xaa\x54\x6c\x54\x6a\x54\x6d\x6f\xac\x6f\xad\x00\x00\x6f\xa9\x6f\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x57\x56\xa9\x72\x8e\x72\x90\x72\x8f\x72\x91\x56\xaa\x00\x00\x00\x00\x59\x54\x00\x00\x59\x55\x59\x56\x00\x00\x5b\xb6\x79\x8e\x00\x00\x79\x8d\x79\x8f\x79\x90\x5b\xb7\x00\x00\x5b\xb5", /* 5280 */ "\x7d\x4a\x7d\x4b\x5e\x43\x5e\x42\x7e\xe2\x00\x00\x00\x00\x60\x49\x60\x4a\x60\x4b\x60\x4d\x80\x7c\x80\x7d\x60\x4c\x00\x00\x00\x00\x00\x00\x62\x58\x00\x00\x62\x59\x00\x00\x00\x00\x8b\x5c\x8e\x72\x8e\x71\x90\x42\x00\x00\x4c\x50\x00\x00\x00\x00\x00\x00\x4c\xfb\x4c\xfa\x00\x00\x00\x00\x4d\xc8\x00\x00\x00\x00\x69\xa0\x00\x00\x00\x00\x4e\xb6\x4e\xb7\x4e\xb5\x4e\xb8\x6a\x51\x6a\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x54\x6b\x76\x00\x00\x50\x53\x00\x00\x6d\x55\x52\x50\x6d\x56\x52\x4f\x00\x00\x00\x00\x00\x00\x52\x4d\x00\x00\x52\x4e\x00\x00\x00\x00\x00\x00\x6f\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x56\xab\x72\x93\x00\x00\x56\xae\x72\x92\x57\xaa\x56\xad\x56\xac\x00\x00\x59\x5a\x00\x00\x59\x59\x59\x58\x5b\xb8\x00\x00\x00\x00\x5b\xbb\x5b\xbc\x5b\xba\x00\x00\x5b\xb9\x00\x00\x00\x00\x7d\x4c\x00\x00\x7d\x4d\x00\x00\x00\x00\x00\x00\x80\x7f\x60\x4e\x80\x7e\x00\x00\x62\x5a\x86\xca\x63\xc3\x00\x00\x8b\x5d\x66\xdf\x48\x54\x4c\x64\x4c\xa3\x69\x57\x00\x00\x4c\xa4\x4c\xa5", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xfc\x4c\xfd\x00\x00\x4d\xc9\x6a\x53\x6b\x77\x6b\x78\x00\x00\x52\x51\x6f\xb1\x56\xb0\x56\xaf\x75\xc8\x75\xc7\x00\x00\x00\x00\x4c\x51\x4c\xa6\x4d\x41\x00\x00\x56\xb1\x69\x44\x00\x00\x69\x6d\x4d\x42\x00\x00\x69\xa2\x4d\xcb\x4d\xca\x69\xa1\x4e\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6e\x00\x00\x00\x00\x72\x94\x00\x00\x5b\xbd\x7d\x4e\x5e\x44\x00\x00\x00\x00\x83\xc5\x00\x00\x00\x00\x8c\xeb\x48\x57\x4c\xa7\x00\x00\x00\x00\x6b\x79\x6d\x57\x56\xb4\x56\xb2\x56\xb3\x4c\x52\x00\x00\x4c\x65\x45\x4b\x4c\xaa\x00\x00\x4c\xa9\x4c\xa8\x4d\x45\x4d\x44\x00\x00\x69\x6e\x69\xa3\x00\x00\x00\x00\x00\x00\x50\x58\x50\x55\x50\x57\x50\x56\x00\x00\x00\x00\x52\x52\x00\x00\x00\x00\x59\x5b\x00\x00\x4c\x53\x00\x00\x4c\xab\x00\x00\x4d\x47\x4d\x46\x00\x00\x6a\x54\x00\x00\x00\x00\x50\x59\x00\x00\x00\x00\x48\x5a\x00\x00\x00\x00\x69\x58\x00\x00\x4d\x49\x4d\x48\x4d\xcc\x4d\xcd\x6a\x55\x4e\xba\x00\x00\x4e\xbb\x00\x00\x50\x5a\x50\x5b\x50\x5c\x00\x00\x52\x53\x6d\x58\x00\x00\x00\x00\x54\x6f", /* 5380 */ "\x00\x00\x00\x00\x69\x45\x00\x00\x4c\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xa4\x00\x00\x00\x00\x00\x00\x6a\x56\x6a\x57\x00\x00\x00\x00\x6b\x7a\x00\x00\x6b\x7b\x00\x00\x6d\x5a\x6d\x59\x6d\x5c\x6d\x5b\x52\x54\x00\x00\x72\x95\x54\x71\x6f\xb2\x54\x70\x00\x00\x00\x00\x00\x00\x00\x00\x75\xc9\x59\x5c\x00\x00\x75\xca\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x4f\x5e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4f\x00\x00\x8b\x5e\x00\x00\x48\x5c\x00\x00\x00\x00\x69\x59\x00\x00\x4d\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x54\x4c\x66\x4c\xae\x4c\xad\x00\x00\x4c\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x50\x5d\x50\x5f\x00\x00\x00\x00\x00\x00\x52\x55\x00\x00\x00\x00\x00\x00\x54\x72\x00\x00\x83\xc6\x65\x5a\x4c\x67\x4d\x4c\x4d\x5b\x4d\x56\x00\x00\x4d\x51\x4d\x50\x4d\x57\x4d\x55\x4d\x4e\x4d\x5c\x4d\x4f\x4d\x4b\x4d\x5a\x4d\x59\x4d\x58\x4d\x4d\x00\x00\x4d\x54\x00\x00\x00\x00\x4d\x53\x00\x00\x00\x00\x4d\x5d\x4d\x52\x00\x00\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x4d\xd3\x00\x00\x4d\xd9\x4d\xd5\x00\x00\x4d\xdb\x69\xa5\x4d\xd8\x4d\xce\x4d\xd1\x4d\xd4\x4d\xd0\x4d\xd7\x4d\xda\x4d\xcf\x4d\xd2\x4d\xd6\x4d\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x60\x6a\x5d\x00\x00\x4e\xc8\x6a\x5e\x4e\xbc\x4e\xbe\x4e\xd6\x4e\xd1\x00\x00\x00\x00\x00\x00\x6a\x65\x6a\x5f\x4e\xc0\x4e\xc2\x6a\x64\x4e\xc9\x6a\x5a\x4e\xd5\x4e\xd7\x4e\xbd\x4e\xce\x00\x00\x6a\x58\x4e\xd4\x00\x00\x4e\xc5\x00\x00\x4e\xcf\x4e\xd0\x6a\x59\x4e\xcd\x4e\xcb\x00\x00\x4e\xcc\x4e\xd2\x6a\x61\x4e\xbf\x00\x00\x4e\xd3\x6a\x63\x4e\xc7\x4e\xc4\x00\x00\x6a\x5c\x4e\xc3\x6a\x66\x4e\xc6\x00\x00\x4e\xca\x00\x00\x00\x00\x00\x00\x4e\xc1\x6a\x62\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x8d\x6b\x8c\x50\x71\x6b\x8f\x6b\x91\x6b\x86\x6b\x89\x6b\x90\x50\x72\x00\x00\x00\x00\x6b\x83\x6b\x87\x00\x00\x00\x00\x6b\x8b\x6d\x6b\x50\x6d\x6d\x6f\x50\x60\x6b\x88\x50\x61\x50\x6e\x50\x67\x50\x63\x00\x00\x6b\x84\x50\x66\x50\x6b\x50\x74\x6b\x85\x6b\x7d", /* 5480 */ "\x50\x65\x6b\x7e\x6b\x81\x00\x00\x50\x68\x00\x00\x50\x6a\x6b\x7c\x6b\x82\x00\x00\x00\x00\x50\x73\x50\x6f\x6b\x8a\x50\x75\x00\x00\x50\x6c\x6b\x7f\x50\x69\x00\x00\x00\x00\x50\x64\x50\x62\x00\x00\x6b\x8e\x00\x00\x50\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x6a\x6d\x5e\x6d\x6d\x00\x00\x00\x00\x6d\x60\x52\x5c\x52\x6a\x52\x58\x52\x69\x52\x61\x52\x66\x52\x56\x6d\x5f\x6d\x65\x52\x65\x6d\x71\x52\x67\x00\x00\x52\x5d\x00\x00\x00\x00\x6d\x67\x6d\x64\x52\x5b\x00\x00\x6d\x5d\x52\x68\x6d\x6c\x52\x60\x6d\x6e\x52\x6b\x52\x57\x52\x62\x52\x5f\x6d\x62\x52\x63\x6d\x68\x6d\x69\x52\x5e\x52\x64\x52\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x52\x59\x6d\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x70\x00\x00\x6f\xc6\x54\x7f\x6f\xb4\x00\x00\x6f\xb9\x54\x78\x54\x84\x6f\xb7\x54\x73\x54\x7d\x54\x83\x6f\xbe\x00\x00\x54\x7e\x54\x82\x00\x00\x00\x00\x6f\xc1\x54\x79\x6f\xb8\x00\x00\x00\x00\x00\x00\x6f\xc4\x6f\xc5\x00\x00\x54\x7b\x6f\xc3\x54\x77\x54\x87\x00\x00\x6f\xbb", /* 5500 */ "\x00\x00\x54\x75\x00\x00\x6f\xc8\x6f\xbc\x6f\xc0\x54\x7a\x54\x86\x6f\xbd\x54\x81\x6f\xc2\x6f\xc9\x72\xa4\x00\x00\x6f\xc7\x54\x88\x54\x74\x6f\xbf\x6f\xb6\x00\x00\x54\x7c\x00\x00\x00\x00\x6f\xb5\x00\x00\x00\x00\x6f\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xb3\x54\x85\x00\x00\x00\x00\x72\x9c\x00\x00\x56\xc8\x72\xaa\x56\xc6\x56\xc3\x72\xa1\x56\xbf\x72\xa5\x56\xca\x72\x9b\x72\xa0\x72\x9f\x54\x76\x56\xc5\x72\xa8\x00\x00\x72\xab\x72\x98\x00\x00\x59\x6e\x00\x00\x72\xac\x56\xcb\x00\x00\x56\xbd\x56\xba\x72\xa3\x56\xb7\x00\x00\x72\xa9\x00\x00\x56\xbe\x72\xad\x00\x00\x72\x99\x72\xa7\x56\xc1\x72\x9a\x72\x9d\x72\xa2\x00\x00\x00\x00\x56\xc2\x56\xc0\x56\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc7\x00\x00\x56\xbb\x57\x97\x00\x00\x56\xbc\x72\x9e\x56\xc9\x56\xc4\x72\xa6\x56\xb9\x00\x00\x00\x00\x00\x00\x56\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x96\x72\x97\x75\xcf\x00\x00\x00\x00\x00\x00\x59\x5d\x59\x60\x75\xda\x59\x74\x75\xdd", /* 5580 */ "\x59\x5e\x75\xd6\x59\x64\x59\x6a\x5a\xc2\x00\x00\x00\x00\x59\x68\x75\xd3\x59\x75\x59\x61\x59\x69\x75\xdb\x79\x9e\x75\xe0\x75\xd4\x00\x00\x75\xcb\x75\xd8\x75\xd2\x59\x67\x75\xde\x00\x00\x00\x00\x59\x63\x59\x77\x59\x70\x00\x00\x59\x65\x59\x62\x00\x00\x59\x6d\x00\x00\x75\xdf\x75\xd1\x75\xd7\x75\xd9\x75\xcd\x75\xdc\x59\x5f\x75\xcc\x00\x00\x59\x66\x59\x76\x59\x72\x75\xce\x59\x6c\x00\x00\x00\x00\x59\x73\x59\x6f\x59\x6b\x00\x00\x75\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x71\x00\x00\x00\x00\x00\x00\x79\x9c\x79\x98\x00\x00\x79\xa7\x79\x91\x79\x9a\x5b\xcb\x5b\xcc\x5b\xc4\x79\xa3\x5b\xce\x79\x96\x79\x95\x79\x93\x79\xa5\x5b\xc2\x79\x9f\x79\x94\x5b\xc5\x79\x9d\x5b\xc0\x79\x99\x79\xa0\x79\xa2\x00\x00\x00\x00\x79\xa6\x5b\xc9\x79\x92\x5b\xc3\x79\x97\x00\x00\x5b\xbe\x00\x00\x5b\xca\x79\xa1\x5b\xc6\x5b\xc7\x5b\xcd\x5b\xc1\x46\xf7\x5b\xbf\x79\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc8\x00\x00\x00\x00\x79\xa4\x00\x00\x00\x00\x00\x00\x5e\x55\x5e\x50\x00\x00\x7d\x5e\x7d\x5a\x00\x00\x7d\x54\x5e\x4a\x5e\x46\x7d\x5d", /* 5600 */ "\x5e\x47\x7d\x57\x7d\x59\x00\x00\x7d\x5c\x00\x00\x5e\x4c\x00\x00\x5e\x53\x5e\x4d\x00\x00\x00\x00\x7d\x52\x5e\x4e\x5e\x4f\x7d\x55\x5e\x54\x00\x00\x7d\x53\x7d\x58\x5e\x4b\x7d\x51\x5e\x51\x5e\x49\x00\x00\x00\x00\x00\x00\x5e\x48\x7d\x56\x7d\x5b\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x50\x00\x00\x60\x56\x80\x91\x00\x00\x80\x8e\x00\x00\x60\x50\x60\x5c\x60\x5d\x00\x00\x60\x53\x80\x8c\x60\x55\x80\x84\x60\x5b\x00\x00\x80\x90\x60\x52\x80\x92\x60\x51\x00\x00\x80\x8d\x80\x8f\x60\x54\x80\x8b\x80\x85\x80\x82\x00\x00\x00\x00\x75\xd0\x80\x88\x00\x00\x80\x81\x80\x87\x80\x86\x00\x00\x80\x83\x00\x00\x60\x58\x00\x00\x00\x00\x00\x00\x00\x00\x60\x57\x00\x00\x00\x00\x00\x00\x60\x59\x80\x89\x62\x5b\x80\x8a\x00\x00\x00\x00\x00\x00\x83\xcf\x00\x00\x83\xc8\x00\x00\x62\x67\x83\xcc\x62\x5f\x62\x63\x83\xcb\x00\x00\x62\x62\x62\x5e\x62\x61\x62\x5c\x62\x66\x83\xcd\x83\xc9\x62\x65\x83\xc7\x62\x64\x83\xce\x83\xca\x60\x5a\x00\x00\x62\x68\x83\xd0\x62\x60\x62\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x86\xd1\x86\xd3", /* 5680 */ "\x63\xc5\x86\xd4\x86\xd2\x86\xd0\x86\xcf\x63\xc7\x86\xce\x63\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x86\xcc\x86\xcd\x63\xc4\x63\xc9\x63\xc6\x00\x00\x00\x00\x86\xcb\x00\x00\x65\x5b\x00\x00\x89\x69\x89\x67\x89\x6c\x89\x6a\x00\x00\x89\x68\x89\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4c\x8b\x61\x8b\x62\x66\xe0\x00\x00\x8b\x63\x8b\x5f\x8b\x64\x8b\x60\x65\x5c\x00\x00\x00\x00\x00\x00\x8c\xec\x8c\xee\x66\xe3\x8c\xed\x66\xe2\x66\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe4\x8e\x74\x8e\x75\x00\x00\x67\x86\x67\x85\x67\x87\x8e\x73\x00\x00\x8f\x68\x8f\x67\x00\x00\x67\xd8\x67\xda\x67\xd9\x8f\x69\x68\x54\x90\xb5\x00\x00\x00\x00\x00\x00\x68\x7d\x00\x00\x90\xb4\x90\xfd\x00\x00\x00\x00\x69\x4a\x00\x00\x00\x00\x4d\x5f\x4d\x5e\x00\x00\x4d\xdf\x4d\xde\x69\xa7\x4d\xdd\x69\xa6\x00\x00\x00\x00\x4e\xda\x6a\x69\x00\x00\x6a\x68\x00\x00\x00\x00\x4e\xd8\x4e\xdb\x00\x00\x00\x00\x6a\x67\x00\x00\x4e\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x92\x00\x00\x6b\x93\x50\x76\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6c", /* 5700 */ "\x00\x00\x6f\xca\x6f\xcb\x54\x89\x54\x8a\x00\x00\x00\x00\x72\xaf\x56\xcd\x56\xcf\x72\xae\x56\xce\x75\xe1\x59\x78\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcf\x5b\xd0\x79\xa8\x00\x00\x5e\x57\x00\x00\x5e\x56\x00\x00\x80\x93\x83\xd2\x83\xd1\x00\x00\x91\x7c\x4c\x68\x69\x5a\x00\x00\x69\x6f\x69\x70\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe2\x4d\xe6\x69\xa9\x00\x00\x4d\xe4\x4d\xe3\x69\xa8\x4d\xe5\x4d\xe1\x00\x00\x00\x00\x4d\xe0\x69\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xe5\x00\x00\x00\x00\x4e\xe2\x00\x00\x4e\xde\x6a\x6a\x00\x00\x00\x00\x00\x00\x6a\x6b\x00\x00\x4e\xe0\x00\x00\x6a\x6d\x4e\xdc\x6a\x6e\x6a\x6c\x4e\xdf\x4e\xe1\x4e\xe4\x4e\xe3\x4e\xdd\x6a\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x7b\x6b\xa0\x00\x00\x50\x7d\x00\x00\x50\x7c\x00\x00\x6b\xa1\x50\x7a\x50\x79\x6b\x97\x00\x00\x6b\x96\x00\x00\x6b\x94\x6b\x99\x6b\x98\x6b\x95\x6b\x9e\x6b\x9f\x6b\x9c\x6b\x9a\x50\x78\x00\x00\x00\x00\x00\x00\x6b\x9d\x50\x7e\x6b\xa2\x00\x00\x00\x00", /* 5780 */ "\x6b\x9b\x00\x00\x52\x6d\x50\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6e\x6d\x76\x00\x00\x00\x00\x6d\x7c\x00\x00\x00\x00\x00\x00\x52\x74\x6d\x7a\x6d\x81\x00\x00\x6d\x77\x6d\x7b\x6d\x7d\x6d\x7f\x6d\x79\x00\x00\x6d\x78\x6d\x73\x6d\x74\x52\x6f\x00\x00\x52\x71\x52\x70\x6d\x75\x6d\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x72\x6f\xd5\x00\x00\x6f\xd4\x6f\xd9\x6f\xd0\x00\x00\x6f\xd3\x6f\xd2\x00\x00\x6f\xd6\x00\x00\x6f\xda\x54\x8b\x54\x8e\x00\x00\x00\x00\x6f\xd1\x6f\xd7\x00\x00\x00\x00\x00\x00\x54\x8d\x6f\xcc\x00\x00\x52\x72\x72\xbd\x6f\xd8\x00\x00\x6f\xcf\x00\x00\x54\x8c\x6f\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\xb4\x00\x00\x00\x00\x56\xd0\x56\xd4\x72\xc4\x72\xb2\x72\xc0\x56\xd5\x72\xc2\x00\x00\x72\xc8\x00\x00\x72\xcc\x00\x00\x00\x00\x72\xc3\x72\xb7\x72\xbf\x00\x00\x72\xcd\x72\xcb\x72\xc1\x72\xbc\x72\xb5\x75\xe9\x72\xb3\x56\xd9\x72\xba\x56\xda\x56\xd6\x72\xb0\x72\xc6\x72\xb8\x00\x00\x00\x00", /* 5800 */ "\x72\xb6\x72\xc9\x56\xd7\x00\x00\x72\xcf\x56\xd1\x56\xd3\x72\xbe\x72\xb9\x54\x8f\x56\xd2\x72\xbb\x72\xca\x72\xce\x72\xc5\x00\x00\x72\xc7\x00\x00\x00\x00\x00\x00\x72\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe4\x00\x00\x75\xed\x75\xec\x59\x81\x75\xe5\x00\x00\x59\x82\x59\x7f\x00\x00\x75\xe7\x59\x7c\x75\xeb\x00\x00\x75\xe6\x75\xe8\x75\xe2\x59\x7a\x00\x00\x75\xf5\x75\xf4\x75\xf1\x59\x79\x59\x7d\x59\x7e\x6f\xcd\x75\xee\x59\x7b\x56\xd8\x75\xf0\x75\xe3\x75\xf3\x75\xf2\x00\x00\x75\xf6\x00\x00\x79\xb6\x00\x00\x75\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xea\x79\xae\x5b\xda\x5b\xdd\x5b\xd8\x79\xad\x79\xb1\x79\xac\x00\x00\x5b\xd2\x5b\xdc\x79\xa9\x5b\xd6\x79\xb0\x00\x00\x5b\xd4\x5b\xd3\x79\xb3\x5b\xd5\x79\xb5\x00\x00\x79\xb2\x5b\xd1\x00\x00\x00\x00\x00\x00\x5b\xdb\x79\xb7\x79\xab\x79\xb4\x00\x00\x00\x00\x79\xaa\x00\x00\x00\x00\x5b\xd7\x00\x00\x5b\xd9\x00\x00\x79\xaf\x00\x00\x79\xb8\x00\x00\x00\x00\x7d\x66\x5e\x58\x7d\x6c\x00\x00\x00\x00\x5e\x5d\x7d\x68\x7d\x6f\x7d\x60\x5e\x5f\x5e\x59\x7d\x65", /* 5880 */ "\x60\x5e\x7d\x64\x7d\x6d\x5e\x5a\x00\x00\x5e\x5e\x7d\x63\x7d\x69\x7d\x6e\x7d\x5f\x5e\x5c\x7d\x67\x00\x00\x00\x00\x7d\x6b\x7d\x71\x7d\x61\x7d\x6a\x00\x00\x5e\x5b\x7d\x70\x00\x00\x00\x00\x00\x00\x7d\x62\x00\x00\x00\x00\x00\x00\x60\x62\x80\x95\x60\x60\x60\x5f\x80\x97\x80\x9c\x00\x00\x80\x98\x00\x00\x80\x9b\x60\x65\x00\x00\x62\x4e\x60\x64\x00\x00\x80\x94\x80\x9a\x00\x00\x60\x63\x80\x99\x00\x00\x80\x96\x00\x00\x60\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\xd7\x00\x00\x83\xd9\x83\xd4\x62\x6a\x83\xd6\x00\x00\x62\x69\x83\xd8\x00\x00\x00\x00\x62\x6c\x83\xda\x62\x6b\x83\xd3\x83\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcd\x86\xd7\x00\x00\x63\xcc\x86\xd8\x63\xcb\x86\xd6\x63\xca\x86\xd5\x00\x00\x65\x5e\x65\x5d\x8b\x65\x8b\x67\x00\x00\x8b\x66\x66\x4d\x66\x4e\x00\x00\x00\x00\x66\x4f\x8c\xef\x66\xe5\x00\x00\x00\x00\x90\x44\x90\x43\x68\x7e\x00\x00\x4c\x69\x4c\xb0\x00\x00\x00\x00\x4e\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x82\x00\x00\x00\x00\x00\x00\x00\x00\x59\x83\x59\x84\x00\x00\x79\xb9\x5e\x60\x7d\x72\x80\x9d", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x69\x5b\x00\x00\x00\x00\x6a\x70\x00\x00\x00\x00\x00\x00\x48\x62\x00\x00\x6b\xa3\x6d\x83\x6f\xdb\x54\x90\x00\x00\x00\x00\x8b\x68\x00\x00\x67\x88\x4c\x6a\x4d\x60\x69\x71\x00\x00\x4d\xe7\x4d\xe8\x00\x00\x50\x7f\x00\x00\x00\x00\x00\x00\x56\xdb\x00\x00\x5e\x62\x00\x00\x5e\x63\x5e\x61\x00\x00\x4c\x6b\x00\x00\x4c\xb1\x4c\xb3\x4c\xb2\x69\x5c\x4c\xb4\x4d\x61\x69\x72\x00\x00\x4d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe9\x4d\xea\x00\x00\x00\x00\x00\x00\x69\xab\x00\x00\x4e\xe7\x00\x00\x6a\x71\x00\x00\x00\x00\x00\x00\x50\x84\x6b\xa4\x00\x00\x50\x82\x50\x83\x50\x81\x6f\xdc\x00\x00\x00\x00\x00\x00\x52\x78\x52\x77\x52\x79\x52\x76\x00\x00\x6d\x84\x50\x85\x52\x75\x00\x00\x54\x91\x54\x92\x00\x00\x54\x93\x00\x00\x72\xd0\x00\x00\x00\x00\x00\x00\x59\x85\x75\xf7\x56\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xde\x00\x00\x5e\x65\x5e\x64\x7d\x73\x00\x00\x60\x66\x62\x6d\x00\x00\x89\x6d\x8f\x6a\x90\x45\x4c\x6c\x4d\x63\x00\x00\x4d\x64\x69\xb1\x4d\xec\x4d\xef\x00\x00\x69\xaf\x69\xad\x4d\xee\x69\xb0\x69\xb2", /* 5980 */ "\x69\xac\x4d\xf1\x4d\xf0\x4d\xed\x4d\xeb\x69\xae\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf2\x00\x00\x00\x00\x4e\xef\x6a\x76\x6a\x79\x6a\x78\x00\x00\x4e\xe9\x4e\xf1\x00\x00\x00\x00\x4e\xee\x6a\x75\x6a\x73\x4e\xed\x00\x00\x00\x00\x00\x00\x4e\xe8\x4e\xeb\x00\x00\x6a\x74\x6a\x7b\x6a\x77\x4e\xec\x4e\xf0\x4e\xf3\x6a\x72\x6a\x7a\x4e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8a\x50\x92\x00\x00\x6b\xb0\x6b\xa9\x50\x93\x6b\xb4\x6b\xa5\x6b\xac\x00\x00\x00\x00\x50\x89\x6b\xa6\x50\x87\x6b\xad\x6b\xb1\x50\x86\x00\x00\x6b\xb2\x6b\xab\x00\x00\x6b\xae\x00\x00\x50\x95\x50\x8c\x6b\xb5\x6b\xb3\x00\x00\x50\x91\x50\x8f\x6b\xaa\x50\x8e\x6b\xa8\x6b\xa7\x50\x8d\x50\x8b\x50\x94\x50\x90\x50\x88\x00\x00\x6b\xaf\x00\x00\x52\x7b\x00\x00\x52\x83\x6d\x92\x52\x7a\x6d\x8a\x6d\x86\x00\x00\x6d\x96\x6d\x85\x00\x00\x52\x7d\x6d\x8f\x52\x81\x52\x84\x00\x00\x52\x7e\x6d\x93\x52\x82\x00\x00\x54\x9a\x6d\x99\x6d\x87\x00\x00\x00\x00\x6d\x89\x6d\x90\x6d\x94\x6d\x98\x6d\x95\x6d\x8e\x6d\x91\x00\x00\x00\x00\x6d\x8b\x52\x86\x6d\x8d\x6d\x8c\x6d\x97\x52\x7c", /* 5a00 */ "\x6d\x88\x52\x85\x00\x00\x52\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa0\x6f\xe4\x00\x00\x54\x9f\x00\x00\x00\x00\x6f\xe2\x00\x00\x54\x94\x00\x00\x54\x99\x00\x00\x6f\xe1\x6f\xde\x6f\xe3\x54\x95\x6f\xdd\x00\x00\x54\x98\x54\x96\x00\x00\x6f\xe5\x54\x97\x54\x9b\x00\x00\x00\x00\x54\x9c\x00\x00\x54\x9e\x00\x00\x00\x00\x00\x00\x54\x9d\x00\x00\x00\x00\x00\x00\x6f\xdf\x6f\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xe6\x00\x00\x72\xd7\x56\xdd\x76\x48\x72\xd6\x72\xe9\x00\x00\x00\x00\x56\xe3\x00\x00\x72\xe7\x00\x00\x56\xe2\x56\xde\x72\xf0\x72\xe0\x72\xe3\x00\x00\x56\xe6\x72\xed\x72\xe5\x56\xdf\x56\xe7\x00\x00\x72\xea\x72\xe8\x00\x00\x00\x00\x72\xd9\x72\xee\x72\xe2\x72\xdd\x00\x00\x72\xd3\x72\xef\x72\xdf\x72\xd2\x00\x00\x56\xe5\x72\xe4\x72\xf1\x72\xe1\x72\xd5\x72\xda\x72\xd1\x00\x00\x56\xe4\x00\x00\x72\xde\x72\xdb\x56\xe0\x72\xd4\x00\x00\x72\xec\x56\xe1\x00\x00\x72\xdc\x72\xd8\x00\x00\x00\x00\x72\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x86\x76\x41\x00\x00\x75\xfb\x76\x4f\x76\x43\x76\x50\x00\x00\x59\x88", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x76\x4c\x76\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x4a\x76\x4d\x76\x51\x00\x00\x72\xe6\x76\x53\x79\xcd\x00\x00\x59\x89\x76\x54\x75\xf9\x76\x46\x00\x00\x76\x4b\x00\x00\x00\x00\x59\x87\x59\x8a\x76\x52\x76\x55\x75\xfd\x75\xfa\x00\x00\x00\x00\x75\xfc\x00\x00\x00\x00\x76\x44\x76\x42\x59\x8b\x00\x00\x76\x4e\x00\x00\x00\x00\x76\x45\x00\x00\x76\x47\x75\xf8\x79\xc1\x79\xbf\x5b\xe7\x5b\xe5\x79\xc9\x79\xc0\x79\xca\x79\xc6\x79\xbe\x79\xcc\x79\xbd\x79\xc4\x5b\xe4\x5b\xe3\x5b\xe2\x79\xc2\x79\xc7\x5b\xdf\x5b\xe6\x00\x00\x79\xbb\x00\x00\x79\xc5\x79\xba\x79\xc3\x5b\xe0\x79\xc8\x79\xbc\x5b\xe1\x79\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x77\x5e\x6a\x5e\x69\x5e\x6b\x7d\x84\x7d\x79\x7d\x7f\x7d\x74\x7d\x83\x7d\x82\x7d\x86\x7d\x7e\x5e\x66\x7d\x7d\x5e\x6c\x00\x00\x7d\x76\x5e\x67\x00\x00\x7d\x85\x5e\x68\x7d\x78\x7d\x7b\x7d\x81\x7d\x7a\x7d\x75\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x7c\x80\x9f\x60\x6a\x80\xa2\x80\xa1\x80\xa4\x80\xa6\x00\x00\x60\x68\x00\x00\x80\xa0\x00\x00\x80\x9e", /* 5b00 */ "\x00\x00\x80\xa7\x80\xa5\x80\xa3\x00\x00\x80\xa9\x00\x00\x80\xa8\x60\x6c\x60\x67\x00\x00\x60\x69\x60\x6b\x00\x00\x00\x00\x80\xaa\x83\xe1\x00\x00\x00\x00\x83\xe0\x83\xdf\x00\x00\x83\xe2\x83\xdb\x00\x00\x83\xdc\x83\xe4\x83\xdd\x00\x00\x62\x6e\x83\xe6\x00\x00\x83\xe5\x83\xde\x00\x00\x86\xdc\x63\xd0\x86\xda\x86\xdf\x86\xde\x83\xe3\x00\x00\x63\xcf\x00\x00\x86\xdd\x86\xd9\x86\xe1\x86\xe0\x63\xce\x00\x00\x86\xdb\x00\x00\x62\x6f\x00\x00\x00\x00\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x89\x6e\x8b\x69\x8b\x6a\x8b\x6b\x66\xe6\x00\x00\x00\x00\x66\xe7\x00\x00\x8c\xf0\x00\x00\x8e\x77\x8e\x76\x00\x00\x00\x00\x8f\x6b\x8f\x6c\x90\x46\x90\xb6\x00\x00\x4c\x6d\x4c\x6e\x00\x00\x4c\x6f\x4c\xb5\x4d\x65\x69\xb3\x4d\xf2\x4d\xf3\x00\x00\x4e\xf6\x4e\xf7\x4e\xf5\x4e\xf4\x00\x00\x50\x96\x00\x00\x00\x00\x6b\xb6\x50\x98\x50\x97\x6b\xb7\x00\x00\x00\x00\x00\x00\x52\x87\x00\x00\x54\xa1\x6f\xe7\x00\x00\x72\xf3\x00\x00\x56\xe8\x59\x8d\x72\xf2\x59\x8c\x00\x00\x5e\x6d\x00\x00\x7d\x87\x62\x70\x00\x00\x63\xd1\x86\xe2\x00\x00\x66\xe8\x00\x00\x67\xdb", /* 5b80 */ "\x48\x67\x69\x73\x00\x00\x4d\x66\x69\x74\x4d\xf6\x00\x00\x4d\xf4\x4d\xf5\x4d\xf7\x00\x00\x4e\xf9\x4e\xf8\x00\x00\x6a\x7c\x4e\xfa\x00\x00\x00\x00\x6a\x7d\x6b\xb8\x00\x00\x6b\xb9\x00\x00\x50\x99\x50\x9b\x50\x9d\x50\x9a\x50\x9e\x50\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x8b\x52\x88\x52\x8a\x52\x8c\x52\x89\x6f\xe8\x6d\x9a\x00\x00\x00\x00\x00\x00\x6f\xea\x6f\xe9\x54\xa7\x00\x00\x54\xa3\x00\x00\x00\x00\x54\xa4\x54\xa6\x54\xa8\x54\xa5\x00\x00\x54\xaa\x54\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xed\x72\xf5\x72\xf4\x56\xec\x00\x00\x56\xeb\x56\xea\x56\xee\x56\xe9\x00\x00\x00\x00\x76\x5b\x76\x58\x59\x8f\x76\x57\x76\x5c\x00\x00\x59\x91\x76\x5a\x59\x8e\x59\x90\x76\x59\x00\x00\x79\xce\x00\x00\x79\xcf\x79\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6e\x5e\x76\x7d\x88\x5e\x70\x5e\x74\x7d\x89\x5e\x75\x5e\x71\x5e\x72\x5e\x6f\x5e\x73\x60\x6f\x76\x56\x60\x70\x60\x6e\x00\x00\x60\x6d\x83\xe7\x62\x71\x86\xe3\x86\xe4\x00\x00\x00\x00\x66\x50\x66\xe9\x00\x00\x4c\x70\x00\x00\x4d\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x52\x8d\x00\x00\x6f\xeb\x54\xab\x00\x00\x00\x00\x56\xf1\x56\xf0\x56\xef\x59\x92\x59\x93\x76\x5d\x5e\x77\x62\x72\x4c\x71\x69\x5d\x4c\xb6\x69\x75\x00\x00\x00\x00\x69\xb4\x4d\xf9\x00\x00\x00\x00\x00\x00\x50\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x79\xd1\x00\x00\x00\x00\x4c\x72\x00\x00\x4c\xb7\x69\xb5\x00\x00\x00\x00\x6a\x7e\x00\x00\x6a\x7f\x00\x00\x4e\xfb\x00\x00\x00\x00\x00\x00\x76\x5e\x59\x94\x00\x00\x79\xd2\x00\x00\x00\x00\x00\x00\x63\xd2\x4c\x73\x4c\x88\x4c\xb8\x69\x76\x4d\x67\x00\x00\x4f\x42\x4f\x41\x4e\xfc\x4e\xfd\x00\x00\x00\x00\x6b\xba\x50\xa1\x50\xa2\x6b\xbb\x50\xa0\x00\x00\x00\x00\x52\x91\x6d\x9b\x52\x90\x52\x8e\x52\x8f\x54\xae\x54\xac\x00\x00\x00\x00\x6f\xed\x54\xad\x6f\xec\x00\x00\x54\xa2\x72\xf6\x00\x00\x00\x00\x56\xf3\x56\xf4\x00\x00\x00\x00\x56\xf2\x00\x00\x5e\x78\x7d\x8a\x60\x71\x60\x72\x00\x00\x80\xab\x63\xd3\x89\x6f\x89\x70\x00\x00\x67\x89\x90\xb7\x69\x4c\x4c\xb9\x00\x00\x4c\x74\x00\x00\x69\x78\x69\x77\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfa\x69\xb7\x69\xb8\x69\xb6\x00\x00\x69\xb9\x00\x00", /* 5c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x88\x00\x00\x6a\x83\x6a\x85\x6a\x87\x6a\x84\x4f\x46\x6a\x81\x00\x00\x6a\x82\x4f\x43\x4f\x44\x6a\x86\x6a\x89\x4f\x45\x6a\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc9\x00\x00\x6b\xc3\x6b\xbe\x50\xa4\x6b\xc6\x6b\xc4\x6b\xbd\x6b\xca\x6b\xcd\x6b\xc8\x6b\xc1\x50\xa6\x6b\xc7\x50\xa7\x6b\xc2\x6b\xc5\x6b\xbc\x6b\xc0\x6b\xcc\x50\xa8\x00\x00\x50\xa9\x00\x00\x6b\xbf\x6b\xcb\x50\xa3\x50\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xac\x6d\xa5\x6d\xab\x6d\xa4\x6d\xa6\x6d\xa0\x6d\x9e\x00\x00\x6d\xad\x6d\xaa\x6d\x9c\x00\x00\x52\x93\x6d\xa8\x6d\xa9\x00\x00\x6d\xa7\x6d\x9f\x6d\x9d\x52\x92\x6d\xa3\x6d\xa1\x00\x00\x00\x00\x6d\xa2\x6d\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb3\x00\x00\x54\xb2\x00\x00\x6f\xee\x54\xaf\x6f\xf0\x00\x00\x54\xb4\x6f\xf1\x00\x00\x00\x00\x54\xb7\x00\x00\x54\xb5\x6f\xf2\x6d\xaf\x6f\xf4\x00\x00\x54\xb1\x00\x00\x54\xb0\x00\x00\x6f\xef", /* 5d00 */ "\x6f\xf3\x54\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x56\xf6\x56\xf5\x00\x00\x00\x00\x00\x00\x72\xf8\x72\xfc\x73\x41\x56\xf7\x73\x44\x00\x00\x56\xfb\x73\x46\x00\x00\x56\xfd\x00\x00\x56\xf9\x57\x44\x00\x00\x57\x41\x72\xfa\x56\xf8\x00\x00\x72\xf9\x72\xf7\x73\x48\x72\xfb\x00\x00\x56\xfa\x73\x47\x57\x42\x73\x43\x73\x42\x57\x43\x72\xfd\x56\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x73\x49\x00\x00\x73\x45\x76\x6d\x76\x74\x76\x69\x59\x97\x76\x65\x76\x75\x76\x5f\x76\x72\x76\x70\x76\x6a\x00\x00\x76\x73\x76\x6c\x00\x00\x76\x64\x76\x76\x76\x62\x76\x6f\x76\x60\x00\x00\x76\x77\x00\x00\x59\x98\x00\x00\x76\x71\x79\xd5\x76\x63\x59\x95\x00\x00\x76\x67\x00\x00\x59\x96\x76\x66\x76\x6b\x00\x00\x00\x00\x76\x68\x00\x00\x00\x00\x00\x00\x76\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x79\xd9\x00\x00\x00\x00\x00\x00\x79\xdc\x79\xd4\x00\x00\x79\xd6\x00\x00\x79\xdb\x79\xda\x5b\xe8\x00\x00\x76\x61\x79\xd8\x00\x00\x00\x00\x5b\xe9\x00\x00\x79\xd3\x79\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x91\x00\x00\x7d\x98\x7d\x8f\x00\x00\x7d\x96\x7d\x8d\x7d\x95\x7d\x99", /* 5d80 */ "\x7d\x8c\x7d\x90\x7d\x8b\x00\x00\x5e\x79\x00\x00\x7d\x8e\x5e\x7a\x7d\x94\x7d\x93\x7d\x92\x00\x00\x00\x00\x7d\x97\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaf\x80\xb1\x60\x74\x80\xb2\x00\x00\x80\xad\x00\x00\x80\xac\x80\xb6\x00\x00\x80\xb4\x60\x73\x80\xb7\x80\xae\x80\xb3\x80\xb5\x80\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x83\xeb\x83\xf0\x83\xea\x83\xef\x00\x00\x83\xe8\x83\xf2\x83\xee\x83\xf3\x83\xed\x83\xe9\x83\xf1\x00\x00\x83\xf4\x83\xec\x00\x00\x86\xe5\x63\xd7\x00\x00\x63\xd5\x00\x00\x63\xd4\x63\xd6\x00\x00\x00\x00\x89\x71\x00\x00\x8a\xc0\x8b\x6c\x00\x00\x00\x00\x8c\xf1\x8c\xf2\x00\x00\x66\xea\x00\x00\x8e\x78\x00\x00\x67\x8a\x00\x00\x8e\x79\x00\x00\x8f\x6e\x67\xdd\x00\x00\x67\xdc\x8f\x6d\x68\x55\x00\x00\x90\x47\x00\x00\x00\x00\x48\x6e\x00\x00\x4c\x75\x4d\xfb\x69\xba\x6a\x8b\x4f\xd5\x57\x45\x00\x00\x00\x00\x4c\x76\x4d\x6a\x4d\x69\x4d\x68\x00\x00\x00\x00\x4f\x47\x00\x00\x00\x00\x54\xb8\x00\x00\x79\xdd\x4c\x77\x4c\x78\x4c\x79\x4c\xba\x00\x00\x00\x00\x52\x94\x00\x00\x6d\xb0\x00\x00\x00\x00\x00\x00\x59\x99\x4c\x7a\x69\x5e", /* 5e00 */ "\x00\x00\x00\x00\x4d\x6b\x4d\x6c\x69\x79\x00\x00\x4d\xfc\x00\x00\x00\x00\x00\x00\x6a\x8c\x00\x00\x4f\x48\x00\x00\x6a\x8d\x00\x00\x00\x00\x50\xaf\x00\x00\x00\x00\x6b\xcf\x50\xad\x50\xac\x6b\xce\x50\xaa\x6b\xd0\x50\xab\x50\xae\x00\x00\x52\x95\x00\x00\x52\x97\x6d\xb4\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb5\x52\x96\x00\x00\x00\x00\x6f\xf6\x6f\xf5\x00\x00\x54\xba\x00\x00\x54\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x48\x73\x4b\x00\x00\x57\x47\x57\x49\x57\x46\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9b\x73\x4a\x00\x00\x59\x9c\x76\x79\x00\x00\x59\x9d\x76\x78\x59\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x79\xe0\x79\xe2\x5b\xea\x79\xe1\x79\xdf\x79\xde\x00\x00\x00\x00\x00\x00\x7d\x9c\x5e\x7f\x5e\x7d\x00\x00\x5e\x7e\x7d\x9a\x7d\x9b\x00\x00\x5e\x7b\x80\xbb\x80\xb9\x00\x00\x60\x76\x80\xba\x60\x77\x60\x75\x5e\x7c\x00\x00\x00\x00\x83\xf7\x83\xf5\x83\xf6\x80\xb8\x86\xe7\x63\xd8\x86\xe6\x89\x72\x89\x73\x83\xf8\x8b\x6d\x00\x00\x4c\x7b\x4d\x6d\x4e\x41\x69\xbb\x4d\xfd\x00\x00\x50\xb0\x5b\xeb\x48\x73\x4c\xbb\x4d\x6e\x52\x98\x59\x9e\x48\x74", /* 5e80 */ "\x69\x7a\x00\x00\x69\x7b\x00\x00\x69\xbc\x00\x00\x00\x00\x4f\x4a\x6a\x91\x6a\x8f\x4f\x4b\x6a\x8e\x6a\x90\x6a\x92\x00\x00\x4f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb4\x50\xb5\x50\xb2\x00\x00\x00\x00\x50\xb1\x6d\xb9\x50\xb3\x00\x00\x00\x00\x00\x00\x52\x99\x00\x00\x6d\xb8\x6d\xba\x6d\xb7\x6d\xbb\x52\x9a\x54\xbd\x6f\xf7\x00\x00\x6f\xf9\x54\xbb\x6f\xfa\x54\xbc\x6f\xf8\x00\x00\x6d\xb6\x73\x4c\x73\x4f\x73\x50\x73\x4d\x57\x4d\x57\x4c\x57\x4a\x57\x4b\x73\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x57\x4e\x00\x00\x00\x00\x59\xa0\x59\xa1\x00\x00\x59\xa2\x79\xe3\x79\xe5\x79\xe7\x5b\xed\x5b\xec\x59\x9f\x79\xe6\x79\xe4\x00\x00\x7d\xa0\x00\x00\x00\x00\x7d\x9e\x7d\xa4\x5e\x81\x7d\xa5\x7d\xa2\x5e\x82\x7d\x9f\x7d\x9d\x7d\xa3\x60\x79\x80\xbd\x7d\xa1\x60\x7b\x80\xbe\x60\x7a\x60\x7d\x80\xbf\x60\x78\x60\x7c\x00\x00\x83\xfd\x83\xfb\x83\xfa\x83\xfc\x83\xf9\x00\x00\x00\x00\x66\x52\x00\x00\x8c\xf3\x8c\xf4\x00\x00\x8e\x7a\x8f\x6f\x68\xa1\x48\x75\x00\x00\x50\xb6\x4f\x4c\x00\x00\x00\x00\x52\x9b\x00\x00\x00\x00\x00\x00\x4c\x7c\x4c\xbc", /* 5f00 */ "\x00\x00\x4d\x6f\x69\xbd\x00\x00\x4f\x4d\x6a\x93\x00\x00\x6d\xbc\x52\x9c\x00\x00\x5e\x83\x4c\x7d\x00\x00\x00\x00\x00\x00\x4e\x42\x00\x00\x00\x00\x5b\xee\x4c\x7e\x4c\xbd\x4c\xbe\x00\x00\x4d\x71\x4d\x70\x00\x00\x69\xbe\x4e\x43\x00\x00\x6a\x94\x00\x00\x4f\x4e\x00\x00\x00\x00\x6b\xd2\x6b\xd3\x6b\xd4\x00\x00\x50\xb7\x50\xb8\x6b\xd1\x50\xb9\x00\x00\x00\x00\x00\x00\x52\x9d\x6d\xbd\x00\x00\x6f\xfc\x54\xbe\x00\x00\x6f\xfb\x00\x00\x57\x4f\x73\x51\x57\x50\x73\x52\x00\x00\x00\x00\x00\x00\x59\xa3\x00\x00\x00\x00\x00\x00\x79\xe8\x00\x00\x00\x00\x7d\xa7\x7d\xa6\x00\x00\x5e\x84\x00\x00\x60\x7e\x80\xc0\x62\x73\x84\x41\x63\xd9\x00\x00\x67\xde\x90\x49\x48\x79\x00\x00\x00\x00\x00\x00\x6b\xd5\x00\x00\x6d\xbe\x57\x51\x76\x7a\x5b\xef\x00\x00\x00\x00\x00\x00\x65\x60\x65\x60\x00\x00\x00\x00\x48\x7a\x4f\x50\x00\x00\x4f\x4f\x52\x9e\x00\x00\x6f\xfd\x00\x00\x57\x53\x58\xa8\x57\x54\x57\x52\x59\xa4\x00\x00\x7d\xa8\x5e\x85\x60\x7f\x00\x00\x69\x4d\x69\xbf\x00\x00\x6a\x96\x4f\x51\x6a\x95\x4f\x52\x00\x00\x00\x00\x50\xbd\x6b\xd8\x6b\xd7\x50\xbc", /* 5f80 */ "\x50\xba\x50\xbb\x6b\xd6\x00\x00\x00\x00\x52\xa0\x6d\xbf\x52\xa3\x52\x9f\x52\xa5\x52\xa1\x52\xa2\x52\xa4\x00\x00\x00\x00\x00\x00\x54\xc1\x54\xc0\x54\xbf\x00\x00\x00\x00\x00\x00\x73\x54\x57\x55\x57\x58\x57\x56\x00\x00\x73\x53\x57\x5b\x00\x00\x57\x57\x73\x55\x57\x5a\x57\x59\x00\x00\x00\x00\x00\x00\x76\x7c\x76\x7b\x00\x00\x59\xa7\x59\xa5\x59\xa6\x76\x7d\x5b\xf0\x79\xea\x5b\xf1\x79\xe9\x00\x00\x00\x00\x80\xc1\x00\x00\x00\x00\x60\x82\x7d\xa9\x60\x81\x00\x00\x5e\x86\x00\x00\x86\xe9\x84\x42\x63\xda\x86\xe8\x8b\x6e\x8c\xf5\x8c\xf6\x00\x00\x4c\xbf\x00\x00\x4d\x72\x00\x00\x00\x00\x00\x00\x69\x7c\x00\x00\x00\x00\x4f\x54\x4f\x56\x00\x00\x69\xc2\x6a\x99\x6a\x98\x6a\x97\x00\x00\x69\xc1\x69\xc0\x4e\x45\x4f\x55\x4f\x53\x4e\x44\x00\x00\x00\x00\x00\x00\x50\xbe\x6b\xd9\x00\x00\x50\xbf\x6a\x9e\x00\x00\x6a\xa0\x6a\x9f\x6b\xda\x00\x00\x00\x00\x6a\x9b\x00\x00\x4f\x5a\x4f\x58\x00\x00\x6a\x9a\x6a\x9c\x6a\xa2\x00\x00\x4f\x57\x00\x00\x6a\x9d\x6a\xa6\x50\xc1\x00\x00\x6a\xa3\x4f\x59\x00\x00\x6a\xa1\x6a\xa4\x00\x00\x50\xc0\x00\x00\x50\xc2", /* 6000 */ "\x6a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xee\x6b\xe1\x6b\xdf\x6b\xed\x6b\xe8\x52\xaa\x50\xc3\x6b\xe9\x6b\xec\x52\xa6\x6b\xeb\x50\xc4\x50\xc9\x50\xc7\x6b\xe2\x00\x00\x6b\xdd\x6b\xe4\x50\xce\x6b\xef\x52\xa7\x6b\xe5\x00\x00\x52\xa8\x50\xca\x6b\xe7\x00\x00\x6d\xce\x52\xa9\x6b\xdc\x50\xcb\x52\xab\x50\xcc\x50\xc8\x50\xcd\x6b\xe6\x6b\xdb\x6b\xea\x50\xc5\x00\x00\x00\x00\x6b\xde\x6b\xe3\x6b\xe0\x50\xc6\x00\x00\x6d\xc0\x00\x00\x6d\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xcb\x70\x44\x6d\xcc\x52\xb1\x6d\xcf\x6d\xc5\x52\xb0\x6d\xc7\x00\x00\x6d\xc8\x00\x00\x00\x00\x6d\xca\x52\xac\x00\x00\x00\x00\x54\xc5\x00\x00\x00\x00\x6d\xc6\x6d\xc2\x54\xc6\x00\x00\x00\x00\x6d\xd0\x54\xc2\x70\x42\x6d\xc9\x00\x00\x70\x41\x6d\xc4\x6d\xcd\x00\x00\x00\x00\x52\xaf\x54\xc3\x52\xb5\x54\xc4\x6d\xd1\x70\x43\x52\xae\x54\xc8\x52\xb4\x52\xb3\x52\xb2\x54\xc7\x6d\xd2\x54\xc9\x52\xad\x00\x00\x6d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x5c", /* 6080 */ "\x70\x47\x70\x49\x00\x00\x70\x4b\x54\xca\x54\xd0\x73\x58\x70\x4f\x70\x46\x57\x5e\x73\x56\x00\x00\x54\xcf\x54\xcd\x70\x51\x00\x00\x73\x57\x00\x00\x70\x48\x00\x00\x54\xce\x70\x4c\x54\xd1\x70\x4e\x00\x00\x00\x00\x54\xcc\x70\x4d\x70\x50\x70\x4a\x00\x00\x54\xcb\x57\x5f\x00\x00\x70\x45\x57\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x57\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x5a\x73\x63\x59\xaa\x00\x00\x57\x62\x57\x67\x59\xab\x73\x65\x57\x6e\x76\x7f\x73\x5b\x57\x66\x57\x69\x57\x64\x73\x59\x73\x67\x73\x6a\x76\x8f\x00\x00\x73\x68\x76\x84\x57\x65\x57\x6c\x57\x70\x73\x62\x76\x7e\x73\x66\x57\x61\x76\x81\x73\x69\x76\x83\x73\x5e\x00\x00\x59\xa8\x00\x00\x73\x5c\x73\x5d\x57\x6b\x00\x00\x00\x00\x57\x6a\x73\x60\x57\x6f\x73\x64\x57\x68\x73\x61\x00\x00\x57\x6d\x59\xac\x59\xa9\x76\x82\x00\x00\x73\x5f\x00\x00\x57\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb1\x59\xb5\x76\x86\x5b\xf6\x59\xb3\x76\x8a\x59\xb7\x79\xeb\x76\x8c\x5b\xf8\x59\xaf\x59\xb2\x76\x8d\x00\x00\x76\x8e\x76\x94", /* 6100 */ "\x59\xb9\x5b\xf9\x00\x00\x76\x90\x76\x95\x76\x89\x5c\x46\x00\x00\x5b\xfa\x59\xb8\x76\x87\x76\x96\x00\x00\x5c\x45\x59\xb6\x5b\xf3\x76\x93\x00\x00\x59\xba\x76\x8b\x76\x85\x59\xb0\x76\x88\x00\x00\x76\x91\x00\x00\x5b\xf2\x5b\xf7\x59\xad\x76\x92\x00\x00\x5b\xf5\x00\x00\x00\x00\x00\x00\x59\xae\x00\x00\x00\x00\x00\x00\x5c\x44\x7d\xab\x79\xf6\x00\x00\x79\xee\x7d\xaa\x00\x00\x79\xf2\x79\xf4\x00\x00\x00\x00\x79\xf1\x00\x00\x5c\x43\x00\x00\x79\xf0\x5c\x47\x00\x00\x00\x00\x00\x00\x7d\xba\x00\x00\x00\x00\x5c\x42\x5e\x88\x79\xf7\x7d\xac\x00\x00\x00\x00\x5b\xfd\x79\xef\x79\xf3\x5e\x87\x5b\xf4\x79\xec\x79\xed\x5e\x89\x5b\xfc\x5c\x41\x5b\xfb\x79\xf5\x00\x00\x00\x00\x7d\xb0\x7d\xb1\x7d\xb6\x60\x87\x7d\xbd\x00\x00\x5e\x8f\x00\x00\x5e\x8e\x7d\xb8\x00\x00\x60\x86\x7d\xad\x5e\x8d\x00\x00\x7d\xbc\x5e\x8b\x5e\x8c\x00\x00\x7d\xb9\x80\xd2\x60\x84\x59\xb4\x00\x00\x7d\xbb\x60\x8b\x7d\xb3\x00\x00\x60\x85\x00\x00\x60\x8a\x7d\xae\x7d\xb2\x7d\xaf\x7d\xb5\x5e\x90\x60\x83\x5e\x8a\x00\x00\x80\xc4\x7d\xb7\x00\x00\x60\x89\x00\x00\x60\x8c\x00\x00", /* 6180 */ "\x7d\xb4\x00\x00\x60\x88\x80\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc8\x62\x77\x80\xc2\x84\x4e\x80\xd1\x60\x90\x00\x00\x60\x8e\x62\x75\x80\xce\x80\xca\x60\x94\x00\x00\x84\x45\x00\x00\x00\x00\x00\x00\x60\x92\x80\xc9\x00\x00\x84\x43\x00\x00\x80\xcd\x00\x00\x80\xd0\x80\xc7\x00\x00\x60\x93\x00\x00\x00\x00\x60\x8d\x84\x44\x62\x76\x80\xcf\x60\x8f\x60\x91\x80\xcc\x60\x95\x80\xcb\x80\xc6\x80\xc5\x62\x74\x80\xd3\x84\x47\x86\xeb\x62\x79\x00\x00\x84\x4d\x00\x00\x84\x4b\x00\x00\x86\xec\x00\x00\x62\x7a\x84\x4c\x00\x00\x84\x49\x63\xdc\x86\xea\x00\x00\x84\x46\x84\x48\x63\xdd\x62\x7c\x63\xdb\x62\x7b\x63\xdf\x84\x4a\x62\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x7c\x00\x00\x89\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xf2\x89\x75\x86\xee\x00\x00\x00\x00\x65\x61\x86\xf0\x86\xef\x63\xde\x86\xed\x86\xf1\x89\x7d\x89\x79\x89\x7b\x00\x00\x89\x76\x89\x77\x00\x00\x89\x7a\x89\x78\x66\x53\x00\x00\x00\x00\x66\x56\x66\x55\x66\x54\x66\xeb\x8c\xf7\x66\xec\x8b\x6f\x67\x8b\x8e\x7b\x67\x8c\x67\xdf", /* 6200 */ "\x68\x56\x90\x4a\x00\x00\x90\x4b\x90\x4c\x00\x00\x00\x00\x91\xaa\x4c\xc0\x69\x7d\x4d\x73\x00\x00\x4e\x47\x4e\x48\x4e\x46\x00\x00\x4e\x49\x4f\x5c\x4f\x5b\x00\x00\x6b\xf0\x50\xd0\x50\xcf\x00\x00\x00\x00\x70\x52\x57\x71\x57\x72\x00\x00\x00\x00\x00\x00\x59\xbb\x79\xf8\x5c\x48\x5c\x49\x79\xfa\x79\xfc\x79\xfb\x00\x00\x7d\xbf\x00\x00\x7d\xbe\x5e\x91\x7d\xc0\x00\x00\x80\xd4\x60\x96\x00\x00\x62\x7d\x00\x00\x63\xe0\x65\x62\x63\xe1\x00\x00\x4c\xc1\x00\x00\x00\x00\x00\x00\x6a\xa7\x00\x00\x00\x00\x6b\xf1\x50\xd2\x50\xd1\x50\xd3\x52\xb6\x6d\xd3\x6d\xd4\x00\x00\x00\x00\x70\x53\x54\xd2\x57\x73\x59\xbc\x76\x97\x4c\xc2\x00\x00\x4c\x7f\x4c\xc3\x00\x00\x69\x7e\x4d\x77\x4d\x76\x4d\x74\x4d\x75\x00\x00\x00\x00\x00\x00\x4e\x4c\x69\xca\x69\xcc\x4e\x4b\x69\xc4\x00\x00\x69\xc5\x00\x00\x69\xcb\x69\xc7\x69\xc9\x4e\x4a\x69\xc6\x69\xc3\x69\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x63\x4f\x6c\x4f\x6a\x6a\xb1\x6a\xae\x6a\xb6\x4f\x68\x6a\xb7\x00\x00\x4f\x61\x6a\xb4\x00\x00\x4f\x67\x6a\xb0\x6a\xaf\x4f\x65\x6a\xb5\x4f\x66\x50\xd4", /* 6280 */ "\x4f\x60\x6a\xb2\x00\x00\x6a\xa8\x4f\x5d\x00\x00\x4f\x70\x6a\xad\x6a\xb3\x4f\x62\x4f\x64\x00\x00\x6a\xa9\x00\x00\x6a\xaa\x6a\xab\x00\x00\x4f\x6f\x4f\x69\x4f\x6e\x6a\xac\x4f\x6d\x4f\x5f\x4f\x5e\x4f\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xe2\x6b\xfd\x6b\xf6\x50\xdd\x50\xf0\x6b\xf2\x6b\xf9\x6b\xfb\x6c\x41\x50\xeb\x00\x00\x6b\xfa\x6b\xf3\x50\xe9\x6b\xf7\x00\x00\x6c\x42\x50\xda\x00\x00\x6b\xfc\x50\xe4\x50\xe3\x6b\xf5\x50\xd8\x00\x00\x00\x00\x50\xd9\x00\x00\x50\xd7\x00\x00\x50\xef\x50\xe7\x50\xe1\x50\xd5\x6b\xf8\x50\xe0\x50\xd6\x50\xe8\x50\xf1\x6d\xd5\x50\xe5\x6b\xf4\x50\xdb\x50\xde\x50\xdf\x00\x00\x50\xed\x50\xee\x50\xec\x50\xe6\x50\xea\x50\xdc\x52\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xdb\x52\xc3\x52\xbb\x52\xbd\x52\xc2\x6d\xe7\x52\xc0\x70\x54\x54\xd3\x52\xc5\x6d\xd8\x6d\xe0\x52\xc1\x6d\xdf\x6d\xdc\x6d\xe4\x6d\xe6\x52\xba\x52\xbe\x52\xc4\x54\xd5", /* 6300 */ "\x6d\xe1\x52\xbc\x52\xc7\x6d\xda\x00\x00\x00\x00\x00\x00\x52\xbf\x54\xd4\x52\xb9\x00\x00\x6d\xd7\x6d\xde\x6d\xd6\x6d\xd9\x6d\xdd\x70\x55\x52\xc6\x00\x00\x6d\xe2\x6d\xe3\x6d\xe5\x52\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe3\x70\x61\x54\xe1\x54\xe2\x70\x57\x70\x67\x00\x00\x54\xd8\x00\x00\x00\x00\x73\x6b\x70\x69\x70\x63\x00\x00\x70\x5a\x00\x00\x70\x6c\x70\x5d\x54\xde\x73\x83\x70\x60\x54\xe0\x54\xd7\x00\x00\x70\x6e\x70\x62\x54\xda\x70\x5b\x70\x58\x70\x59\x54\xdb\x70\x68\x70\x6f\x54\xdd\x70\x5f\x70\x5e\x54\xe5\x54\xe4\x54\xd6\x54\xdc\x54\xdf\x70\x6b\x00\x00\x00\x00\x70\x65\x54\xd9\x70\x56\x70\x6d\x70\x64\x70\x66\x70\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x6c\x00\x00\x57\x7b\x57\x90\x57\x8f\x00\x00\x57\x84\x00\x00\x73\x7e\x73\x7a\x73\x77\x73\x8a\x57\x7e\x57\x76\x00\x00\x00\x00\x73\x7c\x59\xcc\x57\x7a\x73\x85\x00\x00\x57\x91\x57\x8e\x73\x81\x73\x6f\x00\x00\x00\x00", /* 6380 */ "\x57\x8d\x73\x87\x73\x6e\x57\x82\x57\x86\x73\x86\x00\x00\x73\x78\x57\x87\x57\x81\x73\x6d\x00\x00\x59\xbe\x73\x89\x73\x76\x57\x8c\x73\x79\x73\x88\x57\x8b\x00\x00\x76\x98\x00\x00\x57\x77\x73\x74\x57\x7c\x57\x88\x00\x00\x57\x83\x73\x7d\x73\x73\x73\x71\x73\x84\x57\x74\x57\x89\x57\x78\x59\xbd\x73\x82\x57\x79\x00\x00\x57\x75\x57\x85\x57\x7f\x57\x7d\x73\x75\x57\x8a\x73\x72\x73\x7f\x73\x7b\x76\x9a\x76\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x70\x76\xaa\x00\x00\x59\xc0\x00\x00\x76\xb0\x76\x9f\x76\xad\x79\xfd\x59\xc3\x76\xb1\x76\xb4\x59\xc2\x76\xa2\x76\xb3\x76\xb2\x59\xc4\x76\x9b\x59\xbf\x59\xc7\x00\x00\x59\xc5\x76\xaf\x00\x00\x76\xa5\x59\xc9\x76\xb6\x76\xae\x76\xb7\x59\xd1\x59\xcf\x76\xac\x76\xab\x00\x00\x76\xa9\x76\xa3\x59\xc8\x00\x00\x59\xc6\x70\x5c\x76\x9c\x00\x00\x7a\x5e\x76\x9d\x59\xc1\x59\xce\x7a\x42\x00\x00\x59\xca\x59\xcb\x76\x9e\x76\xb5\x7a\x41\x76\xa6\x76\xa1\x59\xcd\x76\xa7\x76\xa4\x00\x00\x00\x00\x59\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x58\x00\x00\x00\x00\x7a\x45\x7a\x58\x7a\x5d\x7a\x51\x5c\x54\x7a\x62\x5c\x51\x7a\x43\x00\x00\x7a\x44\x5c\x4a\x5c\x53\x7a\x4b\x5c\x56\x5c\x57\x7a\x4c\x00\x00\x7a\x59\x7a\x5f\x5c\x52\x00\x00\x5c\x4c\x7a\x4a\x7a\x46\x7a\x61\x7a\x4f\x7a\x50\x7a\x47\x7a\x5b\x7a\x52\x7a\x5c\x7a\x54\x00\x00\x5c\x4d\x7d\xc1\x5c\x50\x5c\x4e\x7a\x60\x7a\x57\x7a\x53\x00\x00\x00\x00\x7a\x48\x5e\x9b\x7a\x56\x5c\x55\x7a\x4e\x00\x00\x7a\x4d\x00\x00\x00\x00\x00\x00\x5c\x4f\x5c\x4b\x7d\xd6\x7a\x5a\x7a\x55\x00\x00\x7a\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xd1\x00\x00\x7d\xc2\x7d\xcd\x00\x00\x7d\xd4\x5e\x99\x59\xd0\x7d\xd2\x5e\x94\x00\x00\x00\x00\x00\x00\x5e\x93\x7d\xd9\x00\x00\x7d\xc3\x7d\xd0\x7d\xc4\x7d\xcf\x5e\x97\x7d\xd3\x76\xa8\x00\x00\x00\x00\x00\x00\x7d\xda\x7d\xcb\x5e\x9a\x80\xe2\x60\x97\x00\x00\x7d\xd8\x7d\xd7\x5e\x9c\x80\xd5\x60\x98\x80\xd6\x00\x00\x7d\xc7\x7d\xc8\x7d\xc5\x7d\xca\x7d\xc6\x7d\xdb\x5e\x96\x60\x99\x5e\x98\x5e\x9d\x00\x00\x7d\xc9\x00\x00\x7d\xd5", /* 6480 */ "\x00\x00\x00\x00\x7d\xce\x00\x00\x00\x00\x80\xd9\x00\x00\x5e\x92\x60\x9c\x84\x55\x80\xde\x80\xdd\x80\xdf\x00\x00\x00\x00\x80\xdc\x60\x9d\x68\xcb\x60\xa3\x60\xa0\x00\x00\x60\xa1\x80\xd7\x80\xda\x80\xe4\x60\xa9\x60\xa7\x00\x00\x80\xdb\x76\xa0\x60\x9a\x80\xe1\x80\xd8\x00\x00\x60\xaa\x80\xe0\x5e\x95\x60\x9f\x7d\xcc\x00\x00\x00\x00\x60\xa2\x00\x00\x60\xa6\x60\xa8\x60\xa5\x60\xa4\x00\x00\x60\x9e\x80\xe3\x60\x9b\x60\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x82\x62\x83\x84\x54\x62\x8c\x62\x89\x00\x00\x62\x7f\x62\x87\x84\x56\x62\x85\x62\x7e\x00\x00\x62\x86\x00\x00\x84\x53\x63\xe3\x62\x81\x00\x00\x62\x88\x63\xe2\x84\x52\x84\x51\x00\x00\x62\x8a\x00\x00\x62\x8b\x00\x00\x84\x50\x84\x4f\x63\xe4\x84\x59\x62\x84\x84\x57\x00\x00\x00\x00\x00\x00\x00\x00\x63\xe5\x00\x00\x63\xea\x86\xf5\x86\xf7\x00\x00\x63\xe7\x00\x00\x86\xf8\x86\xf4\x00\x00\x86\xf6\x63\xe8\x63\xeb\x00\x00\x86\xf3\x63\xe6\x63\xe9\x65\x64\x84\x58\x65\x63\x00\x00\x00\x00\x65\x69\x89\x82\x00\x00\x65\x67\x65\x68\x89\x85\x89\x81\x65\x65\x89\x7e", /* 6500 */ "\x66\x57\x89\x83\x00\x00\x89\x84\x89\x7f\x00\x00\x65\x66\x8b\x70\x00\x00\x8b\x73\x00\x00\x00\x00\x8b\x74\x8b\x72\x8b\x75\x66\x58\x8b\x71\x00\x00\x00\x00\x8c\xfb\x66\xee\x8c\xfa\x8c\xf9\x8c\xf8\x66\xed\x66\xef\x00\x00\x8e\x7c\x67\x8e\x67\x8d\x00\x00\x00\x00\x8f\x71\x8f\x70\x8f\x73\x68\x57\x67\xe0\x90\x4e\x8f\x72\x00\x00\x00\x00\x90\x4d\x68\x59\x68\x58\x68\x7f\x90\xb8\x91\x41\x4c\xc4\x00\x00\x00\x00\x76\xb8\x84\x5a\x48\x82\x00\x00\x4e\x4d\x6a\xb8\x4f\x73\x4f\x71\x00\x00\x4f\x72\x00\x00\x6c\x43\x50\xf2\x52\xc8\x00\x00\x6d\xe8\x00\x00\x6d\xe9\x00\x00\x52\xc9\x70\x71\x00\x00\x54\xe6\x54\xe7\x70\x70\x00\x00\x00\x00\x00\x00\x00\x00\x57\x98\x00\x00\x57\x94\x00\x00\x73\x8b\x57\x9b\x57\x9a\x57\x93\x57\x96\x57\x99\x57\x95\x00\x00\x00\x00\x76\xbc\x57\x92\x59\xd3\x00\x00\x00\x00\x00\x00\x59\xd5\x59\xd6\x76\xbb\x76\xbe\x59\xd4\x76\xb9\x76\xbd\x00\x00\x76\xba\x00\x00\x5c\x59\x00\x00\x00\x00\x7a\x63\x00\x00\x00\x00\x5e\x9e\x7d\xdc\x62\x8d\x60\xac\x80\xe5\x60\xad\x60\xae\x80\xe7\x80\xe6\x80\xe8\x84\x5c\x00\x00\x00\x00\x84\x5b", /* 6580 */ "\x86\xfa\x86\xf9\x63\xec\x63\xed\x8b\x76\x00\x00\x00\x00\x4c\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x76\xbf\x00\x00\x00\x00\x00\x00\x59\xd8\x59\xd7\x7a\x64\x00\x00\x89\x86\x67\x8f\x90\x4f\x4c\xc6\x00\x00\x54\xe8\x00\x00\x57\x9d\x57\x9c\x76\xc0\x76\xc1\x5c\x5a\x7d\xdd\x5e\x9f\x84\x5d\x00\x00\x4c\xc7\x4d\x78\x00\x00\x50\xf3\x6c\x44\x00\x00\x6d\xea\x52\xca\x57\x9e\x00\x00\x76\xc2\x59\xd9\x5c\x5b\x00\x00\x80\xe9\x80\xea\x00\x00\x00\x00\x86\xfb\x65\x6a\x91\x42\x4c\xc8\x00\x00\x6c\x45\x50\xf4\x52\xcb\x00\x00\x6d\xeb\x00\x00\x54\xe9\x70\x75\x70\x73\x70\x74\x54\xea\x70\x72\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa0\x57\xa1\x73\x8c\x57\xa2\x57\x9f\x76\xc3\x00\x00\x76\xc4\x7a\x65\x00\x00\x00\x00\x5e\xa1\x5e\xa0\x00\x00\x00\x00\x86\xfc\x89\x87\x00\x00\x8b\x78\x8b\x77\x8c\xfc\x48\x87\x69\x5f\x52\xcc\x00\x00\x00\x00\x4c\xc9\x4d\x79\x00\x00\x4e\x4f\x4e\x4e\x00\x00\x00\x00\x4e\x50\x4e\x51\x69\xce\x69\xcd\x6a\xb9\x4f\x74\x6a\xbc\x6a\xbb\x6a\xba\x6a\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x50\xf5\x6c\x4b\x6c\x47\x6c\x50\x00\x00\x00\x00", /* 6600 */ "\x50\xfc\x00\x00\x50\xfa\x6c\x4c\x6c\x48\x6c\x4f\x50\xf9\x51\x43\x6c\x4a\x6c\x46\x51\x42\x6c\x4d\x50\xf8\x6c\x4e\x50\xfb\x50\xfd\x6c\x52\x6c\x51\x6c\x49\x50\xf7\x50\xf6\x51\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xf0\x6d\xf6\x00\x00\x52\xd2\x52\xcf\x6d\xed\x6d\xf2\x00\x00\x52\xd5\x52\xcd\x6d\xf1\x52\xd0\x52\xd3\x00\x00\x00\x00\x6d\xf4\x00\x00\x52\xce\x6d\xf9\x52\xd1\x00\x00\x52\xd4\x6d\xee\x6d\xf3\x6d\xf7\x6d\xef\x6d\xec\x00\x00\x00\x00\x6d\xf8\x6d\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xf2\x54\xeb\x54\xee\x00\x00\x54\xf1\x00\x00\x70\x78\x00\x00\x54\xec\x70\x76\x00\x00\x54\xf0\x00\x00\x00\x00\x54\xed\x00\x00\x70\x79\x54\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x90\x57\xa4\x73\x8f\x73\x91\x57\xa3\x57\xa8\x70\x77\x00\x00\x73\x8e\x73\x92\x00\x00\x57\xa5\x73\x8d\x57\xa7\x00\x00\x57\xa6\x00\x00\x76\xcb\x00\x00\x76\xc6\x00\x00\x59\xda\x59\xde\x59\xdb\x76\xc9\x76\xcc\x00\x00\x59\xdc\x00\x00\x59\xdd\x59\xe2\x7a\x6e\x76\xca\x59\xe0\x76\xc7\x76\xc5\x00\x00\x59\xe1\x00\x00", /* 6680 */ "\x76\xc8\x00\x00\x00\x00\x00\x00\x5c\x61\x00\x00\x7a\x66\x5c\x5e\x5c\x5f\x5c\x5d\x7a\x6b\x7a\x6a\x7a\x67\x5c\x63\x00\x00\x00\x00\x7a\x69\x59\xdf\x00\x00\x00\x00\x7a\x6d\x7a\x68\x5c\x60\x5c\x5c\x5c\x62\x7a\x6c\x00\x00\x00\x00\x00\x00\x5e\xa4\x00\x00\x7d\xe0\x7d\xdf\x7d\xde\x5e\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa3\x80\xed\x80\xf0\x60\xb0\x00\x00\x00\x00\x60\xaf\x80\xf1\x80\xec\x60\xb2\x80\xee\x00\x00\x60\xb1\x80\xeb\x00\x00\x80\xef\x62\x93\x62\x90\x84\x66\x84\x65\x00\x00\x84\x64\x84\x5f\x00\x00\x84\x60\x00\x00\x00\x00\x00\x00\x62\x91\x00\x00\x62\x8e\x62\x92\x84\x5e\x62\x8f\x84\x61\x84\x62\x84\x67\x00\x00\x00\x00\x84\x63\x00\x00\x00\x00\x86\xfd\x00\x00\x00\x00\x00\x00\x63\xef\x00\x00\x89\x8a\x63\xee\x89\x88\x89\x89\x65\x6b\x66\x5a\x8b\x79\x00\x00\x66\x59\x00\x00\x00\x00\x8d\x41\x8d\x42\x00\x00\x66\xf0\x00\x00\x8c\xfd\x67\x90\x00\x00\x90\x50\x68\x5a\x90\xb9\x90\xba\x00\x00\x4c\xca\x00\x00\x4e\x52\x4e\x53\x4f\x75\x00\x00\x6c\x53\x52\xd6\x54\xf3\x57\xa9\x00\x00\x00\x00\x56\xb6\x00\x00\x59\xe3\x59\xe4", /* 6700 */ "\x59\x52\x76\xcd\x00\x00\x5c\x64\x7d\xe2\x7d\xe1\x00\x00\x00\x00\x4c\xcb\x4e\x54\x6c\x54\x51\x45\x00\x00\x51\x44\x00\x00\x6d\xfa\x6d\xfb\x00\x00\x70\x7a\x70\x7b\x54\xf4\x54\xf5\x00\x00\x54\xf6\x73\x93\x00\x00\x00\x00\x57\xab\x00\x00\x59\xe6\x00\x00\x59\xe5\x7a\x6f\x7b\xc2\x7d\xe3\x84\x68\x00\x00\x00\x00\x65\x6c\x66\xf1\x4c\xcc\x00\x00\x4d\x7c\x4d\x7d\x4d\x7b\x4d\x7e\x4d\x7a\x00\x00\x00\x00\x4e\x57\x00\x00\x69\xd6\x4e\x56\x4e\x58\x00\x00\x00\x00\x69\xd1\x69\xd0\x69\xd3\x69\xd2\x69\xd5\x4e\x55\x69\xcf\x69\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbe\x4f\x7f\x6a\xbf\x6a\xc3\x4f\x7e\x00\x00\x6a\xc7\x6a\xc2\x6a\xc5\x4f\x77\x4f\x78\x4f\x79\x4f\x7a\x00\x00\x4f\x82\x00\x00\x6a\xc1\x4f\x7c\x4f\x83\x00\x00\x6a\xc0\x6a\xc6\x00\x00\x4f\x7b\x6a\xc4\x4f\x7d\x4f\x76\x4f\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5a\x00\x00\x6c\x56\x51\x46\x00\x00\x51\x50\x51\x51\x51\x49\x51\x5b\x51\x4b\x6c\x5e\x51\x56\x6c\x59\x51\x4c\x6c\x68\x6c\x69\x6c\x61\x6c\x5a\x51\x59\x6c\x66\x51\x54\x51\x52", /* 6780 */ "\x00\x00\x6c\x67\x00\x00\x6c\x65\x6c\x5d\x6c\x55\x6c\x5c\x51\x4d\x00\x00\x51\x53\x00\x00\x51\x47\x6c\x60\x6c\x5f\x6c\x57\x00\x00\x51\x55\x6c\x63\x6c\x58\x51\x58\x6c\x6a\x51\x48\x00\x00\x51\x4f\x6c\x5b\x6c\x64\x51\x57\x00\x00\x51\x4a\x51\x4e\x00\x00\x6c\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x5e\x52\xde\x52\xeb\x00\x00\x6e\x59\x6e\x4f\x52\xe4\x6e\x4d\x52\xdd\x6e\x48\x52\xe7\x6e\x55\x6e\x42\x6e\x44\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x47\x6d\xfc\x6e\x54\x6e\x64\x52\xe2\x6e\x49\x6e\x5b\x00\x00\x6e\x41\x6e\x62\x6e\x63\x6e\x66\x6e\x5d\x6e\x4e\x6e\x56\x52\xe8\x52\xdb\x52\xe3\x52\xef\x52\xd8\x52\xda\x00\x00\x00\x00\x00\x00\x6e\x46\x52\xec\x52\xe5\x6e\x60\x6e\x43\x52\xee\x52\xe9\x6e\x4c\x00\x00\x00\x00\x52\xed\x6e\x53\x6e\x4b\x52\xe6\x6e\x5f\x6e\x57\x00\x00\x52\xe0\x6e\x65\x6e\x4a\x52\xdc\x6e\x5c\x6e\x52\x52\xe1\x6e\x58\x52\xd9\x6d\xfd\x52\xea\x55\x48\x52\xdf\x6e\x51\x6e\x50\x6e\x45\x00\x00\x6e\x61\x00\x00\x6e\x5a\x00\x00\x00\x00\x52\xd7", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x90\x55\x4f\x70\x91\x00\x00\x70\x85\x55\x44\x55\x50\x00\x00\x70\x7d\x00\x00\x70\x87\x70\x8f\x00\x00\x70\x7c\x70\x98\x54\xf7\x00\x00\x00\x00\x00\x00\x70\x97\x70\x92\x00\x00\x70\x93\x55\x42\x55\x4d\x70\x89\x00\x00\x70\x8a\x70\x94\x70\x8b\x00\x00\x70\x86\x70\x7f\x70\x81\x70\x8e\x70\x88\x00\x00\x00\x00\x54\xf8\x54\xfc\x70\x96\x70\x82\x55\x4b\x55\x47\x00\x00\x00\x00\x55\x4a\x55\x51\x54\xfd\x55\x4c\x70\x8d\x55\x4e\x54\xfa\x00\x00\x54\xf9\x70\x7e\x00\x00\x70\x83\x55\x45\x70\x95\x70\x8c\x70\x84\x55\x49\x55\x46\x00\x00\x54\xfb\x55\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\xa8\x00\x00\x73\x98\x73\x99\x73\x9d\x00\x00\x73\xac\x73\xa9\x00\x00\x73\xa2\x73\xa1\x57\xb2\x73\xa5\x73\xb4\x73\x94\x00\x00\x73\xb5\x73\xa7\x73\xb9\x73\xad\x57\xb1", /* 6880 */ "\x73\xab\x57\xac\x57\xc1\x57\xb7\x00\x00\x57\xbb\x57\xba\x73\x95\x00\x00\x73\xb2\x73\xb8\x73\xb0\x73\xb7\x00\x00\x00\x00\x73\xa4\x73\x96\x73\xb6\x73\xa6\x57\xaf\x57\xbc\x00\x00\x73\xaf\x57\xb5\x00\x00\x00\x00\x00\x00\x73\xae\x73\x97\x57\xbd\x00\x00\x57\xbf\x73\xb1\x57\xc0\x57\xae\x73\x9e\x73\xb3\x00\x00\x00\x00\x57\xb4\x57\xbe\x73\xa0\x73\xaa\x73\x9b\x73\x9f\x57\xb9\x73\x9a\x57\xad\x57\xb6\x57\xb3\x73\xa3\x55\x43\x76\xe4\x57\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb8\x00\x00\x76\xe7\x76\xfd\x76\xf2\x59\xfa\x00\x00\x59\xf5\x76\xe1\x59\xf6\x76\xf1\x00\x00\x76\xea\x76\xf7\x59\xf2\x76\xcf\x76\xf9\x59\xe8\x76\xd7\x59\xeb\x59\xea\x00\x00\x59\xfb\x00\x00\x76\xd1\x76\xf3\x76\xf4\x59\xed\x59\xe9\x76\xdf\x00\x00\x59\xf4\x76\xda\x00\x00\x76\xf5\x59\xf0\x76\xed\x76\xfa\x76\xd4\x76\xd9\x76\xd3\x00\x00\x59\xef\x76\xe6\x7a\x86\x76\xd5\x59\xf3\x76\xde\x76\xf6\x59\xee\x76\xdb\x76\xd8\x76\xe9\x59\xf1\x59\xe7\x59\xfd\x76\xec\x76\xeb\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x76\xd0\x59\xec\x76\xf8\x76\xe0\x76\xe2\x00\x00\x76\xef\x76\xee\x76\xce\x59\xf7\x59\xf9\x76\xd6\x76\xdd\x76\xe5\x59\xf8\x76\xdc\x76\xe8\x76\xfb\x00\x00\x76\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x76\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x9a\x5c\x6c\x00\x00\x7a\x98\x7a\x83\x7a\x88\x7a\x81\x00\x00\x7a\x94\x7a\x72\x7a\x79\x00\x00\x7a\x92\x7a\x9c\x7a\x84\x00\x00\x7a\x76\x7a\x8a\x7a\x8f\x7a\x7a\x00\x00\x7a\x8c\x7a\x77\x00\x00\x00\x00\x7a\x7e\x7a\x7f\x5c\x6e\x7a\x93\x7a\x91\x00\x00\x7a\x73\x7a\x96\x00\x00\x7a\x97\x7a\x99\x5c\x72\x5c\x6a\x00\x00\x73\x9c\x7a\x7b\x7a\x8e\x7a\x7c\x5c\x67\x5c\x77\x7a\x95\x5c\x75\x5c\x71\x7a\x71\x5c\x69\x00\x00\x7a\x74\x5c\x76\x00\x00\x7a\x85\x7a\x70\x00\x00\x5c\x6f\x7a\x89\x7a\x78\x5c\x70\x7a\x82\x5c\x66\x59\xfc\x7a\x8b\x76\xe3\x7a\x75\x00\x00\x00\x00\x7a\x90\x5c\x6b\x7a\x8d\x5c\x68\x7a\x87\x5c\x73\x7a\x7d\x7a\x9b\x00\x00\x00\x00\x00\x00\x00\x00", /* 6980 */ "\x00\x00\x00\x00\x5c\x6d\x7b\x4e\x00\x00\x00\x00\x5c\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xf1\x7d\xef\x00\x00\x7e\x48\x7d\xed\x00\x00\x7e\x42\x5c\x65\x5e\xa7\x7d\xe9\x7e\x47\x00\x00\x7d\xee\x7d\xfc\x5e\xac\x5e\xa5\x00\x00\x7e\x45\x00\x00\x7d\xe7\x7e\x44\x00\x00\x5e\xb7\x7d\xf8\x7e\x4b\x5e\xb5\x7d\xf0\x5e\xa6\x7d\xf2\x7e\x43\x5e\xaf\x7d\xeb\x5e\xb3\x5e\xa9\x7d\xf4\x7d\xea\x7d\xe4\x00\x00\x7e\x41\x5e\xb0\x7e\x4a\x7d\xe5\x5e\xad\x00\x00\x7d\xfa\x00\x00\x5e\xae\x7d\xec\x7d\xf7\x7d\xf3\x7d\xf5\x00\x00\x5e\xa8\x7e\x49\x5e\xb6\x7d\xf6\x00\x00\x7e\x4c\x00\x00\x00\x00\x7d\xe6\x7d\xfb\x5e\xab\x5e\xb4\x5e\xb2\x7d\xe8\x7d\xfd\x5e\xb1\x00\x00\x00\x00\x5e\xaa\x7d\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xfd\x00\x00\x80\xf9\x80\xf5\x81\x4c\x81\x49\x60\xb5\x00\x00\x00\x00\x81\x50\x80\xfc\x60\xc0\x81\x46\x00\x00\x00\x00\x80\xf8\x81\x45\x60\xbd\x81\x59\x00\x00\x81\x56\x81\x48\x80\xf6\x00\x00\x00\x00\x81\x4d\x81\x4f\x60\xb9\x81\x43\x80\xfb", /* 6a00 */ "\x80\xf2\x60\xb6\x60\xbe\x00\x00\x81\x52\x60\xbf\x80\xf3\x81\x58\x81\x4b\x81\x51\x60\xbc\x00\x00\x00\x00\x81\x4e\x00\x00\x81\x55\x00\x00\x60\xc1\x00\x00\x60\xbb\x81\x47\x80\xf7\x81\x5a\x80\xf4\x81\x53\x60\xb8\x00\x00\x81\x41\x00\x00\x81\x42\x60\xb7\x60\xb4\x80\xfa\x60\xba\x00\x00\x60\xb3\x00\x00\x81\x54\x81\x57\x81\x44\x84\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x6d\x00\x00\x84\x69\x62\xa0\x00\x00\x00\x00\x62\x95\x62\x9a\x62\x96\x84\x77\x84\x83\x62\x94\x84\x6f\x84\x78\x81\x4a\x84\x79\x00\x00\x00\x00\x62\x9b\x00\x00\x84\x89\x62\x9f\x62\xa2\x84\x6b\x00\x00\x62\x9e\x00\x00\x84\x87\x84\x88\x84\x7d\x84\x7c\x84\x74\x00\x00\x00\x00\x84\x7e\x84\x86\x84\x85\x00\x00\x62\x99\x62\x97\x84\x76\x84\x73\x00\x00\x84\x70\x84\x84\x62\xa1\x84\x82\x62\x9d\x62\x9c\x00\x00\x84\x7b\x00\x00\x84\x6a\x84\x6c\x84\x6e\x84\x81\x84\x7a\x62\x98\x00\x00\x84\x71\x00\x00\x84\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf7\x87\x52", /* 6a80 */ "\x63\xf0\x87\x43\x00\x00\x87\x4e\x63\xf2\x87\x55\x00\x00\x87\x4a\x00\x00\x87\x45\x00\x00\x00\x00\x87\x56\x87\x41\x87\x4c\x00\x00\x63\xf9\x87\x51\x87\x57\x87\x4b\x63\xf1\x87\x4d\x87\x42\x63\xf8\x00\x00\x00\x00\x87\x54\x87\x47\x63\xf4\x00\x00\x87\x49\x87\x46\x63\xfa\x87\x48\x63\xf3\x63\xf6\x87\x50\x87\x44\x87\x53\x00\x00\x87\x4f\x00\x00\x00\x00\x00\x00\x65\x6e\x89\x95\x65\x73\x65\x74\x00\x00\x00\x00\x00\x00\x65\x6d\x89\x94\x00\x00\x89\x91\x89\x92\x65\x71\x89\x8c\x89\x90\x65\x70\x00\x00\x89\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x65\x72\x65\x6f\x00\x00\x89\x8b\x89\x8f\x89\x93\x00\x00\x00\x00\x00\x00\x8b\x7f\x8b\x7c\x8b\x86\x00\x00\x8b\x85\x8b\x83\x8b\x7d\x00\x00\x66\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x7e\x66\x5d\x63\xf5\x8b\x82\x66\x5c\x8b\x87\x8b\x81\x8b\x7b\x89\x8e\x00\x00\x00\x00\x00\x00\x66\x5b\x00\x00\x8b\x7a\x8d\x46\x00\x00\x8d\x45\x8b\x84\x66\xf2\x00\x00\x8d\x49\x8d\x4a\x8d\x44\x8d\x48\x00\x00\x8d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x81\x8d\x47\x67\x93\x67\x91\x8e\x7e\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x8e\x82\x00\x00\x8e\x7d\x8e\x7f\x67\x92\x00\x00\x00\x00\x00\x00\x8f\x75\x8f\x76\x67\xe1\x8f\x74\x00\x00\x00\x00\x00\x00\x90\x53\x68\x5b\x90\x51\x90\x52\x90\xbb\x00\x00\x00\x00\x68\xa2\x91\x45\x91\x43\x91\x44\x91\x46\x00\x00\x00\x00\x00\x00\x91\xab\x00\x00\x4c\xcd\x4e\x59\x00\x00\x51\x5c\x00\x00\x6c\x6b\x00\x00\x00\x00\x6e\x67\x00\x00\x00\x00\x00\x00\x70\x99\x70\x9b\x00\x00\x70\x9a\x00\x00\x70\x9c\x57\xc2\x73\xbb\x70\x9d\x00\x00\x73\xba\x73\xbc\x73\xbd\x77\x41\x5a\x42\x77\x42\x77\x44\x5a\x43\x5a\x41\x77\x43\x00\x00\x7a\xa2\x7a\xa0\x7a\x9f\x00\x00\x7a\x9e\x7a\x9d\x5c\x78\x7a\xa1\x5e\xb8\x7e\x4d\x7e\x4f\x5e\xb9\x7e\x4e\x60\xc3\x00\x00\x60\xc2\x81\x5b\x00\x00\x00\x00\x84\x8b\x84\x8a\x84\x8c\x00\x00\x00\x00\x62\xa3\x00\x00\x87\x58\x63\xfb\x00\x00\x89\x96\x65\x75\x8b\x88\x67\xe2\x4c\xce\x4d\x7f\x4e\x5a\x4f\x84\x51\x5d\x51\x5e\x00\x00\x00\x00\x52\xf0\x00\x00\x00\x00\x70\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x79\x00\x00\x00\x00\x00\x00\x81\xda\x62\xa4\x65\x76\x4c\xcf\x00\x00\x4e\x5b\x00\x00\x00\x00\x6c\x6d\x51\x5f", /* 6b80 */ "\x6c\x6c\x00\x00\x6e\x68\x52\xf1\x6e\x69\x00\x00\x52\xf2\x00\x00\x70\xa0\x55\x53\x55\x52\x00\x00\x73\xc2\x73\xc0\x73\xc1\x73\xbf\x00\x00\x73\xbe\x00\x00\x00\x00\x77\x45\x77\x48\x5a\x45\x77\x46\x5a\x44\x77\x47\x00\x00\x7a\xa3\x00\x00\x00\x00\x7e\x50\x7e\x51\x7e\x52\x00\x00\x81\x5e\x81\x5d\x60\xc4\x81\x5c\x81\x5f\x84\x8d\x00\x00\x00\x00\x84\x8e\x84\x8f\x00\x00\x87\x59\x63\xfc\x65\x77\x8b\x89\x00\x00\x67\x94\x69\x60\x00\x00\x52\xf3\x6e\x6a\x55\x54\x00\x00\x00\x00\x57\xc3\x00\x00\x5a\x46\x77\x49\x00\x00\x5c\x7b\x5c\x7a\x00\x00\x00\x00\x7e\x53\x7e\x54\x60\xc5\x60\xc6\x84\x91\x84\x90\x89\x97\x90\x54\x4c\xd0\x69\x61\x4d\x81\x00\x00\x4f\x85\x6a\xc8\x00\x00\x52\xf4\x5c\x7c\x4c\xd1\x00\x00\x6e\x6b\x52\xf5\x6e\x6c\x00\x00\x63\xfd\x4c\xd2\x00\x00\x00\x00\x6c\x6e\x00\x00\x6e\x6d\x00\x00\x70\xa5\x70\xa4\x70\xa2\x00\x00\x70\xa1\x70\xa6\x70\xa3\x00\x00\x00\x00\x57\xc4\x57\xc5\x00\x00\x00\x00\x5a\x47\x77\x4a\x00\x00\x77\x4b\x77\x4c\x00\x00\x00\x00\x00\x00\x7a\xa8\x7a\xa9\x7a\xa7\x00\x00\x7a\xa5\x7a\xa6\x5c\x7d\x7e\x55\x81\x62", /* 6c00 */ "\x81\x61\x81\x60\x81\x63\x84\x93\x84\x92\x62\xa5\x84\x94\x00\x00\x64\x41\x87\x5a\x00\x00\x89\x98\x8b\x8a\x8f\x77\x00\x00\x4c\xd3\x4d\x83\x4d\x82\x00\x00\x51\x60\x69\x62\x69\x7f\x4e\x5c\x00\x00\x69\xd7\x6a\xc9\x6a\xca\x51\x61\x00\x00\x6c\x6f\x00\x00\x52\xf6\x6e\x6e\x6e\x6f\x00\x00\x55\x55\x55\x59\x70\xa7\x55\x58\x55\x56\x55\x57\x00\x00\x73\xc3\x57\xc6\x5a\x4a\x00\x00\x5a\x48\x5a\x49\x77\x4d\x00\x00\x00\x00\x5e\xba\x4c\xd4\x00\x00\x69\x81\x00\x00\x4d\x84\x00\x00\x00\x00\x69\x84\x00\x00\x00\x00\x4d\x87\x69\x83\x4d\x86\x4d\x85\x4f\x86\x69\x82\x00\x00\x00\x00\x69\xd8\x00\x00\x00\x00\x00\x00\x69\xdc\x69\xde\x69\xdf\x4e\x66\x4e\x67\x69\xdb\x4e\x62\x00\x00\x69\xd9\x00\x00\x69\xdd\x4e\x63\x00\x00\x4e\x5e\x00\x00\x4e\x5f\x00\x00\x4e\x65\x69\xda\x4e\x5d\x4f\x87\x4e\x60\x4e\x61\x4e\x64\x00\x00\x00\x00\x00\x00\x6a\xdb\x6a\xd9\x6a\xcc\x4f\x93\x6a\xd3\x4f\x8e\x6a\xcd\x00\x00\x6a\xd5\x00\x00\x6a\xd2\x4f\x91\x6a\xd1\x4f\x98\x6a\xda\x4f\x9a\x00\x00\x4f\x9c\x00\x00\x6a\xcb\x00\x00\x4f\x8f\x6a\xdc\x00\x00\x4f\x96\x4f\x99\x00\x00", /* 6c80 */ "\x6c\x87\x4f\x89\x4f\xa0\x4f\x97\x6a\xce\x4f\x8c\x4f\x9b\x6a\xd6\x4f\x8a\x4f\x8b\x6c\x85\x6a\xcf\x4f\x92\x4f\x9d\x6a\xdd\x6a\xd0\x4f\x90\x00\x00\x4f\x95\x6c\x70\x4f\x9e\x6a\xd7\x4f\x94\x00\x00\x4f\x9f\x4f\x88\x6a\xd4\x4f\x8d\x6a\xd8\x6c\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6d\x51\x7d\x6c\x77\x51\x74\x00\x00\x6c\x8d\x51\x65\x00\x00\x51\x68\x6c\x84\x00\x00\x6c\x75\x6c\x79\x51\x70\x51\x72\x6c\x7c\x51\x79\x51\x6b\x51\x69\x51\x6a\x51\x78\x6c\x89\x51\x73\x6c\x7b\x6c\x7d\x51\x71\x51\x76\x6c\x7e\x6c\x8c\x00\x00\x52\xf7\x51\x7c\x00\x00\x51\x66\x6c\x8b\x00\x00\x6c\x8f\x6c\x7a\x6c\x91\x6c\x82\x51\x6f\x6c\x76\x51\x6e\x51\x81\x51\x75\x00\x00\x6c\x74\x6e\x78\x51\x7b\x51\x7f\x6c\x83\x6c\x88\x00\x00\x51\x82\x51\x7a\x51\x6c\x51\x62\x00\x00\x51\x67\x00\x00\x6c\x78\x51\x63\x6c\x90\x00\x00\x6c\x72\x6c\x71\x6c\x7f\x6c\x73\x51\x7e\x55\x5a\x51\x77\x6c\x81\x51\x64\x00\x00\x53\x49\x00\x00\x00\x00\x00\x00\x6c\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x6e\x7f\x6e\x83\x00\x00\x6e\x86\x6e\x7a\x00\x00\x00\x00\x6e\x89\x6e\x8c\x6e\x8e\x6e\x77\x52\xf8\x52\xfd\x70\xac\x53\x50\x6e\x87\x6e\x8f\x6e\x7e\x6e\x76\x00\x00\x00\x00\x00\x00\x70\xc7\x53\x43\x6e\x84\x6e\x7b\x6e\x7d\x53\x48\x00\x00\x6e\x81\x53\x42\x6e\x73\x6e\x8a\x00\x00\x6e\x8d\x00\x00\x00\x00\x52\xfc\x00\x00\x53\x4b\x6e\x70\x53\x4d\x52\xfa\x53\x51\x6e\x8b\x6e\x72\x53\x4e\x70\xc1\x6c\x8a\x53\x41\x52\xf9\x6e\x79\x6e\x71\x53\x4f\x53\x47\x6e\x85\x53\x4c\x53\x4a\x6e\x7c\x53\x44\x6e\x74\x53\x45\x53\x46\x6e\x75\x6e\x88\x52\xfb\x6e\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xaf\x55\x62\x55\x67\x00\x00\x00\x00\x00\x00\x70\xb8\x70\xbe\x70\xba\x70\xad\x70\xb0\x70\xa9\x70\xaa\x55\x6e\x55\x5f\x70\xb9\x70\xc2\x55\x69\x55\x5b\x00\x00\x55\x64\x70\xb1\x55\x66\x70\xb2\x70\xbc\x00\x00\x00\x00\x00\x00\x55\x68\x70\xcb\x70\xab\x55\x61\x55\x60\x55\x6c\x70\xa8\x70\xc9\x70\xbd\x70\xca\x70\xc4\x70\xb6", /* 6d80 */ "\x70\xc5\x00\x00\x70\xbf\x70\xc8\x70\xc6\x55\x6d\x70\xb7\x55\x5e\x55\x5d\x55\x65\x55\x6b\x70\xc3\x55\x6a\x70\xb4\x57\xc7\x00\x00\x70\xcc\x70\xb3\x70\xae\x55\x63\x55\x6f\x55\x5c\x00\x00\x70\xbb\x70\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe9\x73\xc5\x73\xc9\x00\x00\x57\xd6\x57\xd4\x00\x00\x00\x00\x57\xcb\x73\xc7\x73\xc6\x57\xdf\x00\x00\x73\xcc\x57\xd9\x00\x00\x73\xde\x73\xea\x57\xc8\x73\xdb\x73\xd4\x57\xeb\x73\xc4\x00\x00\x73\xe0\x00\x00\x57\xe8\x57\xdc\x57\xe7\x57\xd2\x73\xd0\x73\xe2\x73\xda\x57\xd3\x57\xcd\x73\xe8\x00\x00\x73\xe1\x73\xe3\x57\xd5\x57\xdd\x73\xe5\x73\xce\x73\xdf\x73\xd3\x73\xe7\x57\xe2\x57\xca\x57\xe0\x73\xd8\x73\xd6\x73\xd7\x57\xd7\x73\xd2\x73\xd1\x57\xcc\x73\xcb\x73\xe9\x57\xce\x73\xd5\x57\xec\x00\x00\x57\xe6\x73\xca\x57\xe3\x57\xe1\x57\xea\x73\xdc\x57\xe5\x70\xb5\x73\xdd\x57\xe4\x73\xe4\x57\xc9\x73\xd9\x57\xdb\x73\xcd\x57\xda\x00\x00\x57\xd8\x57\xd0\x57\xcf\x77\x4e\x73\xe6\x00\x00\x00\x00", /* 6e00 */ "\x73\xcf\x00\x00\x00\x00\x77\x63\x00\x00\x57\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x67\x57\xde\x5a\x55\x77\x5d\x5a\x63\x00\x00\x77\x51\x5a\x52\x5a\x4e\x77\x6f\x5a\x54\x5a\x58\x5a\x53\x5a\x5c\x77\x73\x77\x6a\x00\x00\x00\x00\x77\x58\x5a\x61\x5a\x5b\x77\x64\x5a\x4b\x77\x70\x77\x69\x5a\x4f\x77\x5e\x5a\x5e\x77\x7b\x77\x7c\x00\x00\x5a\x4c\x77\x6e\x5a\x60\x77\x62\x77\x54\x77\x55\x5a\x64\x77\x59\x77\x60\x77\x5a\x00\x00\x5a\x62\x5a\x6a\x77\x56\x77\x4f\x77\x50\x00\x00\x77\x52\x5a\x51\x77\x5f\x00\x00\x5a\x5f\x5a\x68\x00\x00\x00\x00\x77\x61\x77\x79\x77\x71\x5a\x4d\x77\x77\x5a\x59\x00\x00\x5a\x57\x00\x00\x77\x7d\x5a\x56\x77\x67\x77\x5b\x77\x65\x5a\x6d\x77\x6b\x77\x68\x77\x57\x5a\x69\x77\x75\x77\x72\x77\x7a\x5a\x50\x77\x66\x5a\x6c\x00\x00\x77\x6d\x00\x00\x00\x00\x5a\x5a\x5a\x5d\x00\x00\x77\x6c\x5a\x6b\x77\x5c\x73\xc8\x00\x00\x00\x00\x77\x76\x77\x74\x77\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6e80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x53\x5a\x66\x00\x00\x00\x00\x00\x00\x7a\xc8\x7a\xc7\x7a\xad\x5c\x84\x00\x00\x7a\xc6\x7a\xb0\x7a\xb1\x00\x00\x5c\x8e\x7a\xcf\x5c\x89\x7a\xc5\x00\x00\x7a\xaa\x5c\x8f\x5c\x85\x7a\xb9\x7a\xaf\x7a\xb2\x7a\xca\x5c\x7e\x7a\xd1\x7a\xc9\x5c\x88\x7a\xbe\x5c\x93\x00\x00\x00\x00\x5c\x92\x5c\x8c\x00\x00\x00\x00\x7a\xd0\x5c\x7f\x7a\xbc\x7a\xb3\x7a\xc0\x7a\xcc\x5c\x94\x00\x00\x5c\x82\x7a\xbb\x91\xc7\x7a\xb4\x5c\x8b\x00\x00\x5c\x8a\x7a\xb7\x7a\xc1\x7a\xcb\x7a\xae\x7a\xb8\x5c\x83\x7a\xc2\x5c\x90\x5c\x87\x7a\xb5\x5c\x86\x7a\xac\x7a\xba\x7a\xce\x5a\x65\x5e\xd6\x7a\xbd\x7e\x56\x7a\xbf\x7a\xcd\x5c\x8d\x7a\xb6\x5c\x81\x5c\x91\x60\xd8\x7a\xab\x00\x00\x7a\xc4\x00\x00\x00\x00\x00\x00\x7a\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x72\x5e\xd3\x7e\x67\x7e\x6c\x5e\xc8\x00\x00\x7e\x58\x5e\xd5\x00\x00\x5e\xbf\x7e\x57\x7e\x78\x5e\xd7\x7e\x5b\x7e\x6b\x00\x00\x7e\x5d\x7e\x7b\x7e\x77\x5e\xbd\x5e\xc7", /* 6f00 */ "\x81\x7d\x5e\xd4\x5e\xc5\x7e\x59\x00\x00\x7e\x76\x5e\xc9\x7e\x73\x7e\x81\x7e\x5f\x7e\x68\x00\x00\x00\x00\x7e\x7e\x7e\x74\x5e\xc4\x00\x00\x00\x00\x7e\x66\x5e\xbe\x5e\xbc\x5e\xce\x00\x00\x00\x00\x7e\x64\x7e\x61\x7e\x62\x00\x00\x7e\x7a\x00\x00\x7e\x7f\x7e\x7d\x5e\xc2\x7e\x82\x5e\xc6\x5e\xcd\x00\x00\x7e\x5a\x81\x65\x7e\x63\x00\x00\x5e\xc0\x5e\xd2\x5e\xcf\x5e\xc3\x7e\x6d\x7e\x5e\x5e\xd0\x7e\x6f\x5e\xca\x5e\xcc\x5e\xbb\x00\x00\x7e\x71\x7e\x69\x7e\x5c\x5e\xcb\x7e\x79\x7e\x7c\x7e\x65\x7e\x70\x00\x00\x5e\xc1\x60\xc7\x7e\x6e\x81\x64\x00\x00\x7e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x60\x81\x6e\x81\x78\x60\xca\x81\x77\x81\x84\x60\xcc\x81\x75\x00\x00\x81\x79\x60\xd7\x00\x00\x81\x70\x60\xcf\x00\x00\x81\x7c\x84\x9c\x60\xdb\x60\xda\x81\x7e\x81\x6d\x81\x89\x60\xd5\x00\x00\x60\xcb\x81\x82\x00\x00\x81\x86\x81\x8b\x81\x7f\x81\x73\x60\xce\x60\xd1\x60\xd9\x60\xd4\x00\x00\x81\x76\x7e\x6a\x00\x00\x00\x00\x81\x72\x81\x8a\x60\xd0\x00\x00\x60\xd3\x81\x8c\x60\xc8\x81\x81\x81\x66\x81\x87", /* 6f80 */ "\x64\x4a\x00\x00\x81\x74\x00\x00\x60\xc9\x81\x6f\x60\xcd\x81\x67\x5e\xd1\x81\x6b\x00\x00\x81\x85\x81\x6c\x81\x6a\x60\xd2\x00\x00\x81\x83\x00\x00\x81\x69\x81\x7b\x81\x7a\x81\x88\x81\x71\x60\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x9f\x00\x00\x62\xb2\x62\xa8\x84\xab\x84\x97\x62\xaa\x84\xa3\x62\xb1\x62\xac\x84\xa1\x87\x5c\x84\xa7\x84\xad\x84\xa6\x84\x95\x84\xa4\x84\xaf\x84\xb1\x62\xa7\x84\xb0\x62\xad\x62\xb3\x00\x00\x62\xb0\x00\x00\x84\xaa\x62\xaf\x84\xa5\x00\x00\x84\x99\x84\x9e\x00\x00\x84\xa9\x62\xae\x62\xab\x62\xa6\x62\xa9\x84\x9d\x00\x00\x81\x68\x84\x98\x84\x9b\x84\xac\x84\xa0\x84\x96\x87\x5b\x84\xae\x84\x9a\x84\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x87\x5e\x64\x4e\x00\x00\x00\x00\x64\x42\x00\x00\x00\x00\x64\x46\x87\x60\x87\x66\x87\x64\x64\x44\x64\x45\x64\x4c\x87\x67\x87\x5f\x64\x47\x00\x00\x87\x63\x87\x62\x87\x68\x64\x4d\x00\x00\x64\x48\x64\x4b\x87\x61\x64\x4f\x64\x49\x64\x50\x64\x43\x87\x65\x00\x00\x87\x5d\x00\x00\x00\x00\x89\xa5\x00\x00\x00\x00\x65\x7c\x89\xa2\x89\xa4\x00\x00\x65\x7a\x89\xa0", /* 7000 */ "\x89\xa1\x89\x9c\x00\x00\x00\x00\x84\xa2\x89\x9d\x65\x7b\x89\x99\x00\x00\x65\x78\x89\xa6\x65\x79\x89\x9a\x89\x9b\x89\x9f\x65\x7e\x00\x00\x65\x7d\x00\x00\x00\x00\x89\x9e\x66\x64\x8b\x8e\x8b\x94\x66\x65\x8b\x8b\x66\x62\x66\x5f\x8b\x96\x66\x63\x00\x00\x66\x60\x8b\x8d\x8b\x90\x8b\x91\x8b\x92\x8b\x95\x00\x00\x89\xa3\x8b\x8c\x66\x61\x8b\x93\x8b\x97\x8b\x8f\x00\x00\x00\x00\x00\x00\x8d\x4d\x66\xf4\x8d\x50\x66\xf5\x8d\x58\x8d\x4f\x8d\x4c\x00\x00\x8d\x4e\x8d\x52\x8d\x55\x8d\x54\x8d\x57\x8d\x4b\x00\x00\x66\xf3\x8d\x53\x8d\x56\x8d\x59\x8d\x51\x8e\x83\x8e\x84\x8e\x88\x8e\x89\x00\x00\x8e\x86\x8e\x87\x8e\x85\x00\x00\x67\x95\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe3\x8f\x7b\x00\x00\x00\x00\x8f\x78\x8f\x79\x8f\x7a\x67\xe4\x00\x00\x90\x56\x90\x55\x00\x00\x90\xbe\x68\x81\x90\xbc\x90\xbf\x90\xbd\x91\x47\x68\xa3\x68\xb1\x91\x93\x91\x7d\x00\x00\x91\x92\x91\xc0\x91\xc1\x4c\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x68\x69\xe0\x00\x00\x00\x00\x6a\xde\x00\x00\x4f\xa1\x00\x00\x4f\xa4\x00\x00\x6a\xdf\x00\x00\x4f\xa2\x4f\xa3\x00\x00\x00\x00", /* 7080 */ "\x00\x00\x00\x00\x6c\x9a\x6c\x9c\x6c\x97\x6c\x94\x6c\x96\x00\x00\x00\x00\x00\x00\x51\x86\x00\x00\x00\x00\x00\x00\x51\x84\x00\x00\x00\x00\x6c\x98\x51\x85\x6c\x95\x6c\x92\x51\x83\x6c\x99\x00\x00\x6c\x93\x51\x87\x6c\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x91\x00\x00\x6e\x95\x00\x00\x00\x00\x53\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x98\x00\x00\x53\x52\x53\x55\x53\x57\x53\x59\x53\x56\x6e\x94\x6e\x93\x00\x00\x53\x54\x6e\x96\x6e\x97\x00\x00\x6e\x90\x53\x58\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x6e\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xda\x70\xdb\x70\xdc\x55\x74\x00\x00\x55\x70\x70\xd1\x00\x00\x70\xd9\x70\xde\x55\x75\x00\x00\x70\xcf\x70\xd5\x70\xce\x70\xd8\x00\x00\x00\x00\x70\xd4\x55\x71\x55\x73\x70\xdd\x00\x00\x70\xcd\x70\xd0\x70\xd6\x00\x00\x70\xd7\x70\xdf\x70\xd3\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf1\x73\xf1\x00\x00\x00\x00\x73\xf3\x73\xef\x00\x00\x73\xfb\x73\xed\x73\xfa\x57\xed\x73\xeb\x77\x82\x73\xf5\x57\xf0\x00\x00\x73\xf6", /* 7100 */ "\x73\xf9\x00\x00\x73\xfd\x00\x00\x73\xf2\x00\x00\x73\xf7\x00\x00\x00\x00\x57\xee\x57\xef\x73\xfc\x73\xf0\x73\xec\x74\x41\x00\x00\x73\xf4\x00\x00\x00\x00\x73\xf8\x00\x00\x00\x00\x00\x00\x73\xee\x00\x00\x5a\x6e\x5a\x6f\x77\x8c\x5a\x75\x00\x00\x77\x7f\x77\x89\x77\x7e\x5a\x72\x77\x87\x77\x85\x00\x00\x77\x86\x5a\x70\x00\x00\x77\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x83\x77\x81\x5a\x71\x77\x84\x77\x88\x00\x00\x00\x00\x00\x00\x5a\x73\x00\x00\x00\x00\x00\x00\x77\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xd7\x7a\xde\x7a\xe0\x7a\xe6\x00\x00\x5c\xa1\x7a\xd2\x00\x00\x5c\x99\x00\x00\x7a\xe1\x5c\x9e\x7a\xe7\x5c\x95\x00\x00\x7a\xe4\x00\x00\x7a\xd4\x7a\xe5\x7a\xd3\x00\x00\x5c\xa3\x00\x00\x7a\xdf\x5c\x96\x7a\xe8\x00\x00\x5c\x9b\x7a\xd8\x5c\xa0\x7a\xe3\x7a\xd6\x7a\xdd\x7a\xd9\x7a\xd5\x5c\x98\x5c\x9f\x5c\x9d\x5c\x9a\x5c\xa2\x5c\x97\x7a\xdc\x00\x00\x5c\x9c\x00\x00\x5a\x74\x00\x00\x7a\xe2\x00\x00\x7a\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xdb\x00\x00\x00\x00\x7e\x8a\x00\x00\x5e\xda\x00\x00\x00\x00", /* 7180 */ "\x7e\x86\x7e\x8c\x7e\x88\x00\x00\x5e\xdc\x7e\x87\x7e\x8b\x7e\x83\x00\x00\x7e\x85\x5e\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x89\x7e\x84\x00\x00\x5e\xdd\x00\x00\x5e\xd8\x00\x00\x00\x00\x7e\x8d\x00\x00\x5e\xd9\x81\x92\x81\x8f\x81\x9b\x81\x95\x81\x97\x60\xdc\x81\x91\x81\x99\x00\x00\x00\x00\x81\x98\x81\x96\x00\x00\x81\x9c\x60\xdf\x81\x93\x81\x9a\x00\x00\x60\xdd\x00\x00\x00\x00\x81\x8e\x81\x90\x60\xde\x81\x8d\x81\x9d\x00\x00\x81\x94\x00\x00\x00\x00\x84\xb5\x62\xba\x00\x00\x00\x00\x84\xc0\x84\xbe\x62\xb4\x84\xb4\x84\xb7\x84\xb8\x84\xb3\x62\xbe\x62\xbf\x84\xb2\x84\xc1\x84\xbc\x62\xb8\x62\xb5\x84\xbb\x84\xb9\x00\x00\x00\x00\x62\xbb\x84\xbd\x62\xb6\x00\x00\x62\xb7\x00\x00\x84\xba\x62\xb9\x84\xb6\x00\x00\x84\xbf\x62\xbc\x84\xc2\x84\xc3\x62\xbd\x00\x00\x00\x00\x64\x52\x64\x59\x87\x69\x87\x6f\x00\x00\x87\x6d\x64\x55\x64\x54\x64\x51\x87\x6b\x00\x00\x00\x00\x00\x00\x64\x57\x64\x56\x64\x53\x00\x00\x87\x6e\x87\x6a\x87\x6c\x00\x00\x64\x58\x00\x00\x00\x00\x00\x00\x65\x83\x89\xa9\x00\x00\x65\x7f\x65\x81\x89\xab\x65\x82\x89\xa8", /* 7200 */ "\x00\x00\x89\xa7\x8b\x9b\x89\xaa\x00\x00\x8b\x9c\x66\x66\x8b\x9a\x00\x00\x00\x00\x8b\x99\x00\x00\x8b\x98\x66\x67\x00\x00\x00\x00\x66\xf6\x00\x00\x00\x00\x8d\x5a\x8d\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x8c\x8e\x8b\x67\x96\x00\x00\x8e\x8a\x8f\x7c\x8f\x7d\x00\x00\x00\x00\x90\x57\x90\xc0\x00\x00\x00\x00\x91\x48\x91\xac\x68\xc5\x91\xb6\x4c\xd6\x00\x00\x51\x88\x51\x89\x00\x00\x00\x00\x53\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x64\x5a\x4c\xd7\x00\x00\x51\x8a\x55\x76\x5c\xa4\x4c\xd8\x00\x00\x57\xf2\x5e\xde\x69\x63\x00\x00\x6e\x99\x70\xe0\x00\x00\x7e\x8e\x00\x00\x64\x5b\x4c\xd9\x51\x8b\x6e\x9a\x6e\x9b\x77\x8d\x5a\x76\x00\x00\x00\x00\x7a\xe9\x00\x00\x00\x00\x5c\xa5\x7e\x8f\x00\x00\x00\x00\x60\xe0\x00\x00\x66\x68\x4c\xda\x77\x8e\x4c\xdb\x00\x00\x4e\x6a\x69\xe1\x4e\x69\x4f\xa7\x4f\xa6\x4f\xa5\x6a\xe0\x00\x00\x00\x00\x00\x00\x51\x8c\x00\x00\x51\x8d\x6c\x9d\x00\x00\x6e\x9c\x00\x00\x6e\x9f\x53\x5d\x6e\x9d\x00\x00\x53\x5c\x6e\x9e\x53\x5e\x00\x00\x70\xe3\x70\xe2\x70\xe1\x55\x77\x00\x00\x74\x43\x74\x44\x57\xf3\x74\x42\x74\x45", /* 7280 */ "\x5a\x78\x57\xf4\x00\x00\x00\x00\x5a\x77\x77\x92\x77\x91\x00\x00\x77\x8f\x77\x90\x00\x00\x77\x93\x7a\xeb\x7a\xea\x7a\xee\x00\x00\x7a\xed\x7a\xec\x5e\xdf\x7e\x92\x00\x00\x7e\x91\x5e\xe0\x7e\x90\x81\x9e\x00\x00\x81\x9f\x60\xe1\x00\x00\x84\xc4\x84\xc5\x00\x00\x00\x00\x8b\xa1\x66\x69\x8b\xa0\x8b\x9f\x8b\x9d\x8b\x9e\x67\x97\x8d\x5c\x8f\x7e\x91\x49\x00\x00\x4c\xdc\x00\x00\x69\x85\x4d\x88\x69\x86\x00\x00\x00\x00\x00\x00\x69\xe2\x69\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe6\x00\x00\x00\x00\x6a\xe2\x00\x00\x6a\xe1\x51\x8e\x6a\xe5\x4f\xa9\x6a\xe3\x4f\xa8\x6a\xe7\x6a\xe4\x00\x00\x00\x00\x6c\xa1\x6e\xa0\x6c\x9f\x6c\xa6\x00\x00\x51\x8f\x00\x00\x51\x92\x6c\xa7\x6c\xa3\x00\x00\x6c\xa4\x00\x00\x6c\x9e\x51\x91\x6c\xa0\x51\x90\x6c\xa5\x00\x00\x6c\xa2\x00\x00\x00\x00\x6e\xa4\x53\x60\x53\x61\x00\x00\x6e\xa7\x6e\xa1\x00\x00\x6e\xa6\x00\x00\x6e\xa2\x53\x5f\x6e\xa5\x6e\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xe9\x70\xe6\x00\x00\x70\xe8\x55\x7c\x55\x7b\x55\x79\x70\xe5\x70\xea\x55\x78\x55\x7a\x70\xe7\x74\x4d", /* 7300 */ "\x70\xe4\x70\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x48\x74\x4c\x00\x00\x74\x4b\x77\x95\x77\xa0\x00\x00\x00\x00\x74\x4e\x00\x00\x74\x49\x77\x94\x57\xf8\x00\x00\x00\x00\x57\xf7\x74\x47\x74\x4a\x57\xf9\x00\x00\x57\xf6\x57\xf5\x74\x46\x74\x4f\x00\x00\x00\x00\x00\x00\x77\x97\x77\x9e\x00\x00\x5a\x7a\x77\x9d\x77\x9a\x00\x00\x5a\x7c\x00\x00\x00\x00\x00\x00\x77\x9c\x00\x00\x00\x00\x77\x96\x77\x98\x77\x9b\x77\x99\x5a\x7b\x77\x9f\x5a\x79\x5c\xa6\x00\x00\x00\x00\x7a\xf2\x7a\xf1\x7a\xef\x00\x00\x5c\xa9\x5c\xa8\x7a\xf3\x00\x00\x7a\xf0\x7e\x93\x5e\xe1\x5c\xa7\x00\x00\x00\x00\x00\x00\x7a\xf5\x7a\xf4\x00\x00\x7e\x96\x7e\x94\x60\xe2\x00\x00\x5e\xe2\x7e\x95\x81\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe3\x81\xa0\x81\xa9\x81\xa8\x81\xa6\x00\x00\x81\xa5\x81\xa2\x81\xa3\x81\xa4\x81\xa7\x81\xaa\x00\x00\x00\x00\x84\xca\x84\xc7\x84\xc8\x62\xc0\x84\xc6\x84\xcc\x84\xcb\x84\xc9\x00\x00\x87\x71\x87\x72\x64\x5c\x00\x00\x64\x5d\x87\x70\x00\x00\x65\x85\x89\xac\x65\x84\x66\x6a\x00\x00\x66\x6b\x66\xf7\x8d\x5e\x8d\x5d\x8e\x8d\x8f\x7f", /* 7380 */ "\x67\xe5\x90\x59\x90\x58\x90\x5a\x4d\x89\x6e\xa8\x55\x7d\x57\xfa\x74\x50\x4d\x8a\x69\x87\x4c\xdd\x00\x00\x00\x00\x69\xe4\x00\x00\x00\x00\x00\x00\x6a\xec\x6a\xea\x6a\xeb\x6a\xe8\x4f\xaa\x6a\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xaf\x00\x00\x51\x95\x6c\xad\x6c\xa9\x6c\xac\x00\x00\x6c\xa8\x51\x97\x6c\xab\x00\x00\x51\x94\x51\x93\x00\x00\x51\x96\x6c\xae\x6c\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x53\x65\x53\x68\x6e\xb0\x6e\xaf\x6e\xae\x53\x62\x6e\xb7\x6e\xad\x00\x00\x53\x64\x70\xf0\x00\x00\x6e\xb4\x6e\xb2\x53\x67\x00\x00\x6e\xaa\x6e\xb5\x00\x00\x6e\xac\x6e\xb6\x6e\xb3\x6e\xab\x00\x00\x53\x63\x6e\xb8\x6e\xa9\x53\x66\x00\x00\x00\x00\x00\x00\x00\x00\x70\xf5\x70\xec\x70\xf7\x00\x00\x70\xef\x70\xfa\x70\xfb\x70\xed\x70\xf9\x70\xf6\x70\xf4\x70\xf8\x55\x84\x00\x00\x55\x82\x00\x00\x00\x00\x70\xf2\x00\x00\x70\xee\x00\x00\x70\xf1\x70\xfc\x70\xf3\x55\x83\x6e\xb1\x00\x00\x55\x7e\x55\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x5e\x74\x53\x74\x51\x00\x00\x74\x52\x00\x00\x74\x59\x00\x00\x74\x5a\x74\x56\x58\x42\x74\x5b", /* 7400 */ "\x74\x58\x74\x55\x00\x00\x57\xfd\x74\x54\x57\xfb\x58\x41\x74\x57\x74\x5f\x55\x7f\x57\xfc\x74\x5d\x74\x5c\x58\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xa5\x00\x00\x00\x00\x00\x00\x77\xa6\x5a\x87\x00\x00\x77\xac\x00\x00\x00\x00\x77\xae\x77\xa7\x5a\x81\x77\xab\x77\xaa\x5a\x82\x5a\x88\x00\x00\x5a\x89\x77\xad\x5a\x7e\x77\xa4\x77\xa2\x77\xa8\x77\xa1\x5a\x86\x77\xa3\x77\xa9\x77\xaf\x5a\x7f\x5a\x85\x5a\x83\x5a\x84\x00\x00\x00\x00\x00\x00\x5a\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb0\x7a\xfc\x5c\xaf\x7b\x43\x00\x00\x7a\xf6\x00\x00\x7b\x44\x00\x00\x00\x00\x00\x00\x7a\xf7\x7a\xf8\x00\x00\x7b\x45\x7b\x42\x7a\xfd\x7b\x41\x7a\xfa\x7a\xf9\x00\x00\x7b\x46\x5c\xac\x00\x00\x7a\xfb\x00\x00\x5c\xb1\x5c\xab\x5c\xb2\x5c\xb3\x00\x00\x5c\xae\x5c\xad\x00\x00\x00\x00\x7e\x97\x5e\xe4\x5e\xe3\x00\x00\x00\x00\x7e\x9c\x00\x00\x60\xe4\x5e\xe5\x00\x00\x00\x00\x5e\xe7\x7e\x9d\x5c\xaa\x5e\xe6\x7e\x99\x7e\x9b\x7e\x98\x00\x00\x7e\x9a\x00\x00\x00\x00\x00\x00\x81\xb4\x00\x00\x00\x00\x81\xb3\x81\xb0\x60\xe7\x84\xcd", /* 7480 */ "\x60\xe8\x81\xaf\x00\x00\x60\xe6\x00\x00\x81\xb1\x81\xae\x81\xab\x81\xb2\x81\xac\x81\xad\x60\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x87\x76\x00\x00\x84\xd1\x00\x00\x84\xd0\x84\xd2\x00\x00\x87\x73\x62\xc3\x00\x00\x84\xce\x00\x00\x62\xc1\x00\x00\x62\xc5\x62\xc4\x84\xcf\x84\xd3\x00\x00\x62\xc2\x00\x00\x87\x7a\x64\x60\x65\x86\x64\x61\x64\x5e\x87\x77\x87\x75\x00\x00\x87\x78\x00\x00\x87\x7b\x64\x5f\x87\x79\x87\x74\x00\x00\x00\x00\x89\xaf\x89\xb2\x8b\xa4\x89\xad\x00\x00\x8d\x5f\x89\xb3\x00\x00\x66\x6c\x89\xb1\x65\x87\x89\xae\x89\xb0\x89\xb4\x8b\xa5\x00\x00\x8b\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x66\x6d\x8b\xa2\x00\x00\x00\x00\x00\x00\x66\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x67\x99\x8f\x82\x67\x98\x8f\x84\x8f\x81\x8f\x83\x68\x5c\x90\xc1\x4d\x8b\x6c\xb0\x70\xfd\x71\x41\x58\x44\x7b\x47\x62\xc6\x66\x6e\x67\xe6\x90\xc2\x4d\x8c\x00\x00\x6c\xb1\x46\xf8\x00\x00\x00\x00\x6e\xb9\x00\x00\x6e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x42\x71\x43\x58\x45\x58\x46\x00\x00\x00\x00\x00\x00\x77\xb0\x00\x00\x7b\x4a\x7b\x49\x7b\x48", /* 7500 */ "\x7e\x9e\x00\x00\x7e\x9f\x7e\xa0\x5e\xe8\x00\x00\x00\x00\x81\xb6\x81\xb5\x00\x00\x00\x00\x84\xd4\x62\xc7\x62\xc8\x00\x00\x87\x7f\x87\x7c\x87\x7d\x87\x7e\x89\xb6\x89\xb5\x65\x88\x8b\xa6\x8e\x8e\x4d\x8d\x00\x00\x53\x69\x00\x00\x58\x47\x7b\x4b\x00\x00\x4d\x8e\x00\x00\x71\x44\x58\x48\x00\x00\x00\x00\x5a\x8a\x5a\x8b\x00\x00\x4d\x8f\x4d\x90\x69\xe5\x4f\xac\x4f\xab\x53\x6a\x6e\xbb\x77\xb1\x4d\x91\x4d\x92\x4d\x93\x4d\x94\x00\x00\x00\x00\x00\x00\x4f\xad\x4f\xae\x6a\xee\x6a\xed\x00\x00\x00\x00\x51\x98\x6c\xb4\x6c\xb2\x6c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xbc\x6e\xbd\x00\x00\x00\x00\x53\x6e\x53\x6c\x00\x00\x53\x6d\x53\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x55\x85\x00\x00\x00\x00\x00\x00\x00\x00\x55\x89\x55\x88\x71\x45\x55\x87\x55\x86\x00\x00\x71\x46\x00\x00\x00\x00\x58\x4b\x74\x61\x74\x60\x58\x49\x58\x4a\x00\x00\x00\x00\x00\x00\x5a\x8d\x5a\x8c\x77\xb3\x00\x00\x00\x00\x77\xb2\x58\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb4\x7b\x4d\x5c\xb5\x7b\x4c\x00\x00\x00\x00\x00\x00\x7e\xa1\x81\xb7\x60\xe9", /* 7580 */ "\x84\xd5\x00\x00\x00\x00\x00\x00\x87\x81\x00\x00\x66\x70\x66\x6f\x00\x00\x00\x00\x67\xe7\x4d\x95\x6c\xb5\x00\x00\x00\x00\x58\x4d\x7e\xa2\x5e\xe9\x48\xa8\x00\x00\x6a\xef\x6a\xf0\x00\x00\x00\x00\x6c\xb6\x51\x9a\x51\x9b\x00\x00\x00\x00\x51\x99\x00\x00\x00\x00\x00\x00\x00\x00\x53\x72\x53\x73\x53\x70\x53\x71\x00\x00\x6e\xbe\x00\x00\x00\x00\x6e\xbf\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x71\x47\x00\x00\x55\x8d\x55\x8e\x00\x00\x58\x50\x71\x4d\x00\x00\x55\x93\x55\x91\x71\x4e\x71\x49\x55\x90\x55\x8f\x55\x8a\x71\x4c\x71\x4b\x71\x48\x55\x92\x00\x00\x71\x4a\x55\x8b\x00\x00\x55\x8c\x00\x00\x00\x00\x58\x51\x74\x65\x74\x66\x58\x52\x74\x62\x74\x64\x74\x68\x74\x67\x74\x63\x00\x00\x58\x4e\x58\x4f\x00\x00\x77\xbb\x5a\x92\x5a\x91\x77\xb5\x5a\x8f\x00\x00\x77\xb8\x5a\x93\x77\xb9\x5a\x94\x77\xb6\x5a\x8e\x5a\x90\x77\xba\x00\x00\x77\xb7\x77\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x5a\x00\x00\x7b\x4f\x5c\xb7\x5c\xba\x5c\xb9\x5c\xbe\x5c\xbd\x7b\x5b\x7b\x59\x7b\x52\x7b\x56\x7b\x55\x5c\xbb\x7b\x58\x7b\x54\x7b\x5c\x7b\x53\x5c\xbc", /* 7600 */ "\x5c\xb6\x5c\xb8\x00\x00\x7b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xa4\x5e\xed\x7e\xa8\x5e\xec\x7e\xa5\x5e\xeb\x00\x00\x7b\x50\x7b\x57\x7e\xa7\x00\x00\x5e\xee\x7e\xa9\x7e\xa6\x7e\xa3\x00\x00\x00\x00\x81\xba\x81\xbe\x81\xc0\x81\xbc\x81\xbb\x81\xb9\x60\xec\x60\xea\x60\xef\x60\xf0\x81\xbd\x60\xed\x81\xb8\x60\xee\x5e\xea\x81\xbf\x60\xeb\x00\x00\x00\x00\x00\x00\x84\xd7\x00\x00\x84\xd6\x84\xde\x84\xd8\x84\xdd\x84\xda\x62\xc9\x84\xdc\x00\x00\x00\x00\x62\xca\x00\x00\x62\xcb\x00\x00\x84\xdb\x84\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x64\x63\x87\x82\x00\x00\x00\x00\x64\x62\x87\x85\x87\x83\x87\x84\x00\x00\x00\x00\x64\x64\x00\x00\x00\x00\x00\x00\x89\xba\x00\x00\x65\x8b\x89\xbb\x00\x00\x00\x00\x65\x89\x89\xbc\x65\x8a\x89\xb9\x89\xbd\x00\x00\x89\xb7\x00\x00\x00\x00\x66\x71\x8b\xa7\x66\x72\x66\xf9\x00\x00\x89\xb8\x66\xfa\x00\x00\x00\x00\x00\x00\x67\x9a\x8e\x8f\x00\x00\x67\xe9\x8f\x85\x67\xe8\x00\x00\x90\x5b\x68\x82\x68\x83\x00\x00\x00\x00\x91\xbc\x48\xa9\x00\x00\x53\x74\x6e\xc0\x00\x00\x5a\x95\x5a\x96\x4d\x96\x4e\x6b\x69\xe6", /* 7680 */ "\x00\x00\x6a\xf1\x4f\xaf\x00\x00\x51\x9c\x00\x00\x53\x75\x53\x76\x53\x77\x74\x6a\x71\x4f\x55\x94\x00\x00\x00\x00\x58\x53\x74\x69\x00\x00\x00\x00\x77\xbd\x5a\x98\x00\x00\x77\xbc\x5a\x97\x00\x00\x00\x00\x7b\x5d\x60\xf1\x81\xc4\x81\xc1\x81\xc2\x81\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x86\x00\x00\x89\xbe\x00\x00\x00\x00\x00\x00\x8d\x61\x8d\x60\x00\x00\x8f\x86\x4d\x97\x6c\xb7\x55\x95\x00\x00\x00\x00\x00\x00\x5a\x99\x7b\x5e\x00\x00\x00\x00\x7e\xaa\x00\x00\x60\xf2\x84\xdf\x00\x00\x89\xbf\x8d\x62\x4d\x98\x00\x00\x00\x00\x51\x9d\x53\x7a\x6e\xc1\x53\x7b\x53\x79\x00\x00\x53\x78\x71\x50\x55\x96\x00\x00\x00\x00\x55\x97\x55\x98\x00\x00\x00\x00\x00\x00\x58\x55\x74\x6b\x58\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xbe\x58\x56\x5a\x9a\x7b\x5f\x5c\xbf\x5c\xc0\x00\x00\x5e\xef\x00\x00\x5e\xf0\x60\xf3\x62\xcd\x84\xe0\x62\xcc\x00\x00\x87\x87\x64\x65\x00\x00\x89\xc0\x8d\x63\x4d\x99\x4f\xb0\x6c\xba\x6c\xb9\x51\x9e\x6c\xb8\x51\x9f\x6c\xbb\x00\x00\x6e\xc7\x53\x7e\x53\x7d\x6e\xc9\x6e\xc8\x53\x83\x00\x00\x53\x82\x00\x00", /* 7700 */ "\x00\x00\x53\x7c\x00\x00\x6e\xc3\x6e\xc4\x6e\xc5\x00\x00\x53\x84\x6e\xc2\x53\x7f\x6e\xc6\x53\x81\x00\x00\x00\x00\x00\x00\x00\x00\x71\x53\x71\x57\x71\x55\x71\x54\x00\x00\x71\x58\x00\x00\x00\x00\x00\x00\x71\x59\x71\x5a\x71\x52\x00\x00\x71\x51\x00\x00\x55\x9a\x55\x9b\x00\x00\x71\x5b\x71\x56\x00\x00\x74\x74\x00\x00\x71\x5c\x55\x9c\x55\x99\x00\x00\x00\x00\x00\x00\x74\x6e\x00\x00\x74\x6d\x00\x00\x74\x6f\x74\x70\x74\x72\x74\x71\x74\x76\x58\x5a\x58\x57\x58\x5b\x74\x6c\x58\x5c\x74\x75\x58\x59\x74\x73\x58\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xc1\x77\xc3\x77\xbf\x77\xc0\x00\x00\x00\x00\x77\xc4\x77\xc6\x77\xc7\x77\xc2\x77\xc5\x5a\x9b\x00\x00\x00\x00\x7b\x63\x00\x00\x7b\x68\x7b\x60\x7b\x64\x00\x00\x00\x00\x7b\x69\x7b\x65\x5c\xc1\x5c\xc9\x00\x00\x5c\xc4\x7b\x61\x7b\x62\x5e\xf4\x5c\xcc\x5c\xc5\x00\x00\x5c\xca\x5c\xc3\x7b\x67\x5c\xcb\x7b\x66\x5c\xc7\x5c\xc2\x5c\xc8\x7b\x6a\x7e\xaf\x7e\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc6\x00\x00\x00\x00\x7e\xac\x5e\xf2\x7e\xb2\x5e\xf3", /* 7780 */ "\x7e\xb0\x7e\xab\x7e\xae\x7e\xb3\x5e\xf1\x7e\xad\x00\x00\x60\xf5\x81\xc8\x81\xc7\x00\x00\x60\xf8\x60\xf6\x81\xc5\x60\xf4\x81\xc6\x00\x00\x60\xf7\x00\x00\x00\x00\x00\x00\x84\xe8\x00\x00\x84\xea\x00\x00\x84\xe9\x84\xe1\x84\xe5\x84\xe4\x84\xe2\x62\xcf\x62\xd0\x62\xce\x84\xe3\x84\xe6\x84\xe7\x00\x00\x62\xd1\x00\x00\x64\x6a\x87\x8f\x00\x00\x64\x67\x87\x89\x64\x69\x64\x6b\x00\x00\x00\x00\x64\x68\x87\x8e\x87\x8a\x64\x66\x87\x8d\x87\x88\x87\x8c\x87\x8b\x00\x00\x00\x00\x89\xc2\x65\x8e\x65\x8f\x65\x8c\x00\x00\x65\x8d\x00\x00\x00\x00\x89\xc1\x00\x00\x8b\xaa\x00\x00\x00\x00\x66\x73\x00\x00\x8b\xa8\x8b\xa9\x00\x00\x8d\x64\x8d\x67\x8d\x65\x8d\x66\x8e\x90\x00\x00\x00\x00\x67\x9b\x90\x5c\x90\xc3\x00\x00\x68\x84\x91\x4a\x91\x4b\x68\xb2\x4d\x9a\x53\x85\x00\x00\x77\xc8\x00\x00\x7b\x6b\x00\x00\x4d\x9b\x4f\xb1\x00\x00\x51\xa0\x00\x00\x6e\xca\x6e\xcb\x55\x9d\x00\x00\x00\x00\x77\xc9\x5a\x9c\x5c\xcd\x64\x6c\x87\x90\x8b\xab\x8d\x68\x4d\x9c\x00\x00\x00\x00\x00\x00\x6c\xc1\x6c\xbc\x6c\xbe\x6c\xc0\x6c\xbf\x6c\xbd\x51\xa1\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x53\x86\x6e\xd4\x00\x00\x6e\xcf\x6e\xcc\x00\x00\x00\x00\x6e\xd3\x00\x00\x00\x00\x53\x88\x53\x89\x6e\xd2\x6e\xd1\x6e\xd0\x6e\xcd\x6e\xce\x6e\xd5\x53\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa1\x00\x00\x55\xa7\x55\xa6\x71\x65\x71\x5f\x71\x5d\x00\x00\x55\xa4\x74\x7d\x55\x9f\x71\x62\x71\x66\x71\x68\x71\x64\x71\x5e\x55\xa5\x71\x63\x71\x61\x55\x9e\x71\x69\x55\xa8\x71\x67\x55\xa2\x71\x60\x00\x00\x55\xa3\x55\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5e\x00\x00\x74\x7e\x00\x00\x00\x00\x74\x77\x74\x79\x74\x7b\x00\x00\x74\x7c\x74\x7a\x58\x5f\x00\x00\x74\x7f\x00\x00\x74\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xcd\x5a\x9d\x77\xd5\x00\x00\x77\xca\x00\x00\x77\xd6\x00\x00\x77\xcb\x77\xcc\x00\x00\x00\x00\x77\xd4\x77\xd3\x77\xd0\x58\x5d\x5a\x9e\x77\xce\x77\xd1\x5a\x9f\x77\xd2\x77\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x76\x00\x00\x7b\x7a\x5c\xd4\x00\x00\x7e\xb9\x5c\xd7", /* 7880 */ "\x7b\x78\x00\x00\x00\x00\x7b\x75\x7b\x70\x7b\x72\x7b\x73\x7b\x6c\x00\x00\x5c\xd3\x00\x00\x00\x00\x5c\xd2\x00\x00\x5c\xce\x7b\x6f\x00\x00\x5c\xd5\x00\x00\x5c\xd6\x7b\x6e\x7b\x71\x7b\x79\x5c\xd0\x5c\xd1\x7b\x77\x7b\x6d\x00\x00\x00\x00\x00\x00\x7e\xbb\x5e\xf6\x7e\xbd\x7b\x74\x7e\xbf\x5e\xfa\x7e\xc0\x7e\xbc\x00\x00\x5e\xf7\x7e\xb8\x5e\xf9\x7e\xb5\x7e\xba\x7e\xbe\x7e\xb7\x00\x00\x00\x00\x5c\xcf\x00\x00\x7e\xb4\x5e\xf8\x7e\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xfb\x81\xca\x61\x42\x00\x00\x60\xfd\x00\x00\x00\x00\x5e\xf5\x00\x00\x81\xd1\x81\xd2\x60\xfa\x00\x00\x00\x00\x81\xd0\x81\xd3\x60\xfc\x60\xf9\x81\xcc\x81\xc9\x81\xce\x81\xcb\x61\x43\x81\xcd\x00\x00\x00\x00\x81\xcf\x61\x41\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x84\xf1\x00\x00\x84\xeb\x84\xef\x84\xf5\x84\xf6\x84\xf2\x84\xf3\x84\xf0\x00\x00\x84\xed\x00\x00\x62\xd5\x62\xd2\x84\xec\x84\xee\x00\x00\x62\xd4\x84\xf4\x00\x00\x64\x70\x00\x00\x00\x00\x87\x96\x87\x91\x64\x6f\x00\x00\x00\x00\x64\x6d\x00\x00\x87\x98\x64\x6e\x87\x94\x87\x95\x87\x92\x87\x99\x89\xc3", /* 7900 */ "\x00\x00\x64\x71\x87\x93\x00\x00\x87\x9a\x87\x97\x00\x00\x00\x00\x00\x00\x89\xc7\x00\x00\x00\x00\x89\xc4\x00\x00\x65\x90\x00\x00\x89\xc8\x89\xca\x89\xc9\x89\xc5\x89\xc6\x00\x00\x00\x00\x8b\xb0\x00\x00\x66\x74\x00\x00\x8b\xad\x8b\xaf\x8b\xac\x8b\xb1\x00\x00\x00\x00\x8b\xae\x00\x00\x8d\x6a\x8d\x6d\x8d\x69\x66\xfb\x8d\x6b\x8d\x6c\x8d\x6e\x66\xfc\x67\x41\x66\xfd\x8e\x91\x00\x00\x8e\x93\x00\x00\x8e\x92\x00\x00\x00\x00\x00\x00\x8f\x87\x00\x00\x00\x00\x90\xc4\x91\x4c\x4d\x9d\x00\x00\x00\x00\x6a\xf2\x51\xa2\x6c\xc3\x51\xa3\x51\xa4\x6c\xc2\x00\x00\x6e\xda\x6e\xd9\x53\x8a\x53\x8d\x53\x8c\x53\x8b\x6e\xd6\x6e\xd8\x6e\xd7\x00\x00\x00\x00\x71\x6c\x55\xaa\x71\x70\x71\x6f\x71\x6e\x71\x6a\x55\xa9\x55\xad\x55\xb0\x00\x00\x00\x00\x55\xb1\x71\x6b\x71\x6d\x55\xaf\x55\xae\x55\xac\x55\xab\x74\x87\x00\x00\x74\x85\x74\x81\x58\x60\x00\x00\x74\x82\x58\x61\x74\x83\x74\x84\x74\x86\x00\x00\x58\x62\x00\x00\x00\x00\x77\xda\x00\x00\x77\xd9\x77\xd8\x77\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x7e\x5c\xd8\x00\x00\x7b\x7b\x7b\x7d\x00\x00\x5c\xd9", /* 7980 */ "\x00\x00\x5c\xda\x7b\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xc9\x00\x00\x7e\xc2\x7e\xc3\x00\x00\x5e\xfd\x5e\xfb\x5e\xfc\x7e\xcb\x00\x00\x7e\xca\x7e\xc7\x7e\xc6\x7e\xc5\x7e\xc4\x7e\xc8\x7e\xc1\x00\x00\x81\xd4\x81\xd9\x81\xd7\x00\x00\x00\x00\x00\x00\x81\xd6\x81\xd5\x81\xd8\x00\x00\x84\xf7\x00\x00\x62\xd6\x64\x72\x87\x9c\x00\x00\x64\x73\x87\x9b\x89\xcc\x89\xcb\x65\x91\x00\x00\x8b\xb2\x66\x75\x8d\x6f\x67\xea\x8f\x88\x00\x00\x90\xc6\x90\xc5\x69\x88\x53\x8e\x53\x8f\x74\x88\x00\x00\x5c\xdc\x4d\x9e\x4f\xb4\x4f\xb3\x4f\xb2\x00\x00\x00\x00\x00\x00\x6c\xc4\x00\x00\x00\x00\x51\xa6\x51\xa5\x00\x00\x53\x92\x00\x00\x6e\xdc\x6e\xdf\x6e\xdd\x00\x00\x53\x90\x53\x91\x00\x00\x00\x00\x6e\xdb\x6e\xde\x00\x00\x55\xb8\x00\x00\x00\x00\x00\x00\x71\x77\x71\x79\x71\x78\x55\xb5\x71\x73\x00\x00\x00\x00\x55\xb3\x55\xb2\x00\x00\x55\xb6\x55\xb4\x00\x00\x55\xb7\x71\x76\x71\x71\x71\x72\x71\x75\x71\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x8b\x74\x8c\x74\x8a\x00\x00\x74\x89\x58\x63\x00\x00\x00\x00\x00\x00\x00\x00", /* 7a00 */ "\x5a\xa4\x00\x00\x77\xdb\x77\xdd\x77\xdf\x5a\xa3\x00\x00\x00\x00\x5a\xa1\x00\x00\x77\xdc\x5a\xa2\x77\xde\x5a\xa0\x00\x00\x00\x00\x7b\x89\x7b\x7f\x7b\x83\x7b\x87\x5c\xe0\x7b\x85\x00\x00\x7b\x84\x7b\x81\x7b\x82\x5c\xde\x7b\x88\x5c\xdd\x00\x00\x5c\xe2\x5c\xe1\x5c\xdf\x00\x00\x7b\x86\x00\x00\x00\x00\x00\x00\x7e\xd1\x00\x00\x7e\xd0\x00\x00\x00\x00\x7e\xcc\x00\x00\x00\x00\x5f\x41\x7e\xcf\x7e\xce\x5f\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x48\x00\x00\x81\xdb\x00\x00\x61\x49\x61\x45\x61\x47\x00\x00\x61\x44\x61\x46\x00\x00\x00\x00\x00\x00\x84\xf8\x00\x00\x62\xd9\x84\xfa\x84\xf9\x00\x00\x7e\xcd\x62\xdb\x62\xda\x62\xd7\x62\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xa1\x00\x00\x87\x9f\x64\x74\x87\xa0\x00\x00\x87\xa2\x87\x9e\x87\x9d\x00\x00\x00\x00\x89\xcd\x65\x94\x65\x92\x65\x93\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xb3\x8b\xb4\x66\x77\x00\x00\x66\x76\x8d\x71\x8d\x72\x8d\x70\x00\x00\x8f\x89\x8f\x8a\x00\x00\x00\x00\x4d\x9f\x69\xe7\x4f\xb5\x00\x00\x6c\xc5\x51\xa8\x51\xa7\x6c\xc6\x00\x00\x00\x00\x6e\xe1\x53\x93", /* 7a80 */ "\x6e\xe0\x53\x94\x00\x00\x00\x00\x55\xb9\x71\x7c\x71\x7a\x71\x81\x55\xba\x71\x7b\x71\x7f\x71\x7d\x71\x7e\x00\x00\x00\x00\x74\x8d\x74\x8f\x00\x00\x58\x64\x00\x00\x74\x8e\x58\x65\x5a\xa7\x5a\xa6\x5a\xa5\x77\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x8c\x5c\xe3\x5c\xe4\x00\x00\x7b\x8b\x7b\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xd2\x5f\x44\x5f\x43\x7e\xd3\x7e\xd4\x00\x00\x61\x4b\x61\x4a\x00\x00\x85\x41\x81\xdc\x81\xde\x81\xdd\x84\xfd\x84\xfb\x85\x42\x84\xfc\x00\x00\x62\xdc\x00\x00\x00\x00\x00\x00\x87\xa3\x64\x75\x87\xa4\x87\xa5\x00\x00\x00\x00\x65\x95\x65\x96\x00\x00\x67\x42\x00\x00\x00\x00\x68\x5d\x4d\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x82\x55\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x58\xfc\x00\x00\x00\x00\x5a\xa9\x77\xe2\x5a\xa8\x77\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x8d\x00\x00\x5f\x45\x7e\xd5\x5f\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x43\x8d\x73\x00\x00\x4e\x6c\x51\xa9\x6c\xc7\x00\x00\x53\x96\x00\x00\x53\x95", /* 7b00 */ "\x6e\xe3\x6e\xe4\x00\x00\x00\x00\x71\x84\x71\x86\x55\xbc\x00\x00\x71\x88\x71\x8b\x71\x89\x00\x00\x00\x00\x00\x00\x71\x8a\x71\x87\x71\x83\x55\xbd\x71\x8c\x71\x85\x00\x00\x00\x00\x00\x00\x00\x00\x74\x98\x58\x6b\x74\xa1\x58\x68\x00\x00\x74\x9a\x58\x6c\x00\x00\x58\x66\x00\x00\x74\x95\x74\xa2\x74\x96\x74\x93\x58\x6a\x00\x00\x58\x67\x00\x00\x74\x99\x74\x9c\x58\x69\x74\x9d\x58\x6d\x74\x9e\x74\x94\x74\x9b\x74\x9f\x74\x97\x74\x92\x74\x90\x00\x00\x00\x00\x74\xa0\x00\x00\x00\x00\x77\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x77\xe9\x00\x00\x00\x00\x00\x00\x77\xe5\x77\xeb\x5a\xac\x74\x91\x77\xe6\x5a\xaa\x77\xe3\x5a\xb1\x77\xe7\x5a\xb0\x77\xe8\x5a\xb2\x5a\xad\x5a\xb3\x5a\xae\x00\x00\x5a\xaf\x00\x00\x5a\xab\x00\x00\x77\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe7\x7b\x98\x00\x00\x7b\x9b\x7b\x8f\x7b\x94\x7b\x8e\x5c\xe9\x00\x00\x7b\x92\x00\x00\x00\x00\x00\x00\x7b\x90\x5c\xe8\x00\x00\x7b\x97\x7b\x96\x7b\x93\x7b\x95\x7b\x91\x5f\x4a\x7b\x9a\x5c\xe5\x7b\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7b80 */ "\x00\x00\x00\x00\x7e\xe5\x00\x00\x5f\x51\x7e\xe0\x00\x00\x5f\x50\x7e\xd6\x00\x00\x7e\xd8\x5f\x49\x7e\xdd\x7e\xdc\x7e\xdf\x5f\x4e\x7e\xda\x7e\xd9\x00\x00\x00\x00\x5f\x4d\x5f\x48\x7e\xdb\x5f\x4b\x7e\xe1\x7e\xe3\x00\x00\x7e\xde\x7e\xd7\x5f\x4c\x00\x00\x00\x00\x61\x53\x5f\x47\x00\x00\x00\x00\x7e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe2\x61\x4c\x00\x00\x81\xe4\x00\x00\x61\x4d\x00\x00\x00\x00\x61\x4f\x81\xe7\x00\x00\x81\xdf\x5f\x4f\x81\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe1\x00\x00\x5c\xe6\x61\x52\x00\x00\x00\x00\x61\x4e\x00\x00\x61\x50\x61\x51\x00\x00\x62\xdf\x81\xe6\x81\xe0\x61\x54\x00\x00\x81\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x4c\x85\x47\x00\x00\x00\x00\x85\x51\x62\xdd\x85\x49\x62\xe1\x85\x4f\x85\x46\x85\x43\x85\x52\x64\x7b\x62\xe2\x85\x4e\x85\x44\x62\xe0\x85\x48\x62\xe4\x85\x45\x85\x4a\x62\xe3\x85\x4d\x85\x50\x00\x00\x00\x00\x00\x00\x00\x00\x87\xb7\x87\xb8\x87\xa8\x87\xaf\x87\xad\x00\x00\x00\x00\x64\x79\x87\xb4\x85\x4b\x00\x00\x87\xab\x00\x00\x87\xb5\x64\x78\x87\xaa", /* 7c00 */ "\x87\xa9\x87\xb3\x87\xb0\x87\xb2\x00\x00\x87\xa6\x87\xb6\x64\x76\x00\x00\x87\xb1\x87\xba\x87\xae\x64\x7a\x64\x77\x87\xac\x87\xa7\x87\xb9\x62\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\xd0\x00\x00\x00\x00\x89\xce\x89\xd4\x65\x9a\x89\xd2\x89\xd1\x65\x9c\x89\xd7\x65\x9b\x00\x00\x89\xd8\x89\xd5\x65\x98\x89\xd6\x89\xcf\x65\x99\x65\x97\x8b\xb8\x89\xd3\x00\x00\x00\x00\x89\xd9\x00\x00\x00\x00\x8b\xb5\x00\x00\x00\x00\x00\x00\x66\x7c\x66\x7a\x8b\xb7\x00\x00\x8b\xb9\x8b\xb6\x66\x7b\x66\x78\x66\x79\x66\x7d\x00\x00\x00\x00\x67\x45\x00\x00\x8d\x78\x00\x00\x8d\x77\x8d\x75\x8d\x74\x8d\x76\x00\x00\x67\x44\x67\x46\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x8e\x95\x8e\x94\x00\x00\x00\x00\x8f\x8b\x00\x00\x8f\x8d\x8f\x8f\x8f\x8e\x8f\x8c\x00\x00\x00\x00\x67\xec\x67\xeb\x00\x00\x00\x00\x68\x5f\x68\x5e\x68\x60\x90\x5e\x90\x5d\x00\x00\x91\x4d\x90\xc7\x91\x4e\x68\xa4\x00\x00\x68\xa5\x91\x7e\x00\x00\x00\x00\x68\xca\x4e\x6d\x00\x00\x6c\xc8\x00\x00\x00\x00\x6e\xe6\x6e\xe7\x6e\xe5\x00\x00\x00\x00\x53\x97\x00\x00\x6e\xe8", /* 7c80 */ "\x6e\xe9\x6e\xea\x00\x00\x00\x00\x71\x8d\x71\x93\x00\x00\x00\x00\x71\x91\x55\xbe\x71\x8f\x00\x00\x71\x90\x71\x92\x00\x00\x00\x00\x00\x00\x71\x8e\x58\x6e\x00\x00\x74\xa3\x58\x70\x74\xa5\x58\x6f\x74\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xed\x5a\xb4\x00\x00\x77\xef\x77\xec\x74\xa6\x00\x00\x5a\xb5\x00\x00\x00\x00\x77\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x9e\x00\x00\x5c\xea\x7b\x9c\x5c\xeb\x7b\x9d\x5c\xec\x00\x00\x00\x00\x00\x00\x5f\x52\x7e\xe9\x7e\xe6\x7e\xe8\x5f\x53\x5f\x54\x7e\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe8\x00\x00\x00\x00\x81\xe9\x00\x00\x61\x55\x81\xeb\x81\xea\x00\x00\x46\xf9\x00\x00\x85\x56\x85\x57\x85\x53\x00\x00\x85\x54\x62\xe5\x62\xe6\x85\x55\x00\x00\x64\x82\x00\x00\x00\x00\x64\x7d\x64\x83\x64\x7e\x64\x81\x64\x7c\x00\x00\x64\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x65\x9d\x87\xbb\x00\x00\x8b\xbb\x00\x00\x8b\xba\x00\x00\x8d\x79\x67\x47\x67\x48\x8f\x91\x8e\x96\x00\x00\x8f\x90\x00\x00\x91\x4f\x91\x94\x4e\x6e\x00\x00\x00\x00\x4f\xb6\x00\x00\x6c\xc9\x51\xaa\x00\x00", /* 7d00 */ "\x53\x9a\x6e\xed\x53\x98\x6e\xeb\x53\x9d\x53\x99\x53\x9e\x53\x9c\x6e\xec\x53\x9b\x55\xc2\x55\xc1\x71\x9e\x55\xca\x71\x97\x71\x9d\x55\xc6\x71\x96\x71\x9c\x71\x9a\x55\xc5\x55\xc7\x71\x99\x55\xc0\x71\x98\x55\xcb\x55\xc8\x55\xcc\x55\xc9\x71\x95\x71\x94\x71\x9b\x55\xc3\x55\xbf\x55\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xb5\x74\xae\x00\x00\x5a\xba\x74\xad\x00\x00\x58\x74\x58\x7b\x58\x78\x58\x7e\x58\x7d\x58\x79\x00\x00\x74\xa7\x74\xaa\x00\x00\x74\xa9\x58\x75\x74\xab\x74\xb4\x58\x76\x74\xa8\x74\xb1\x74\xb2\x58\x77\x74\xaf\x58\x7c\x58\x72\x58\x7a\x74\xac\x58\x71\x74\xb0\x00\x00\x00\x00\x74\xb3\x00\x00\x00\x00\x00\x00\x78\x43\x77\xf7\x5a\xb7\x78\x41\x77\xfb\x77\xf3\x77\xfc\x5a\xb9\x77\xf4\x00\x00\x77\xf0\x00\x00\x00\x00\x5c\xf2\x77\xf9\x00\x00\x5a\xb6\x78\x42\x00\x00\x5a\xbd\x5a\xbf\x77\xf2\x00\x00\x00\x00\x5a\xbe\x77\xf5\x5a\xb8\x77\xfd\x77\xf6\x77\xfa\x00\x00\x77\xf8\x5a\xbb\x77\xf1\x5a\xc0\x58\x73\x5a\xbc\x5a\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xee\x7b\xa5\x7b\xa7\x7b\xa9\x7b\xad\x00\x00\x7b\xa3", /* 7d80 */ "\x7b\xa1\x5c\xf0\x00\x00\x7b\xa8\x7b\xac\x7b\xa4\x7b\xa0\x00\x00\x7b\x9f\x00\x00\x00\x00\x00\x00\x7b\xaa\x7b\xa2\x7b\xa6\x5c\xf1\x00\x00\x5c\xef\x7b\xae\x5c\xed\x7b\xab\x00\x00\x7e\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x7e\xf2\x61\x62\x7e\xfc\x5f\x5a\x7f\x43\x5f\x60\x7e\xed\x00\x00\x00\x00\x7e\xfd\x7e\xea\x00\x00\x7f\x42\x7e\xee\x00\x00\x5f\x67\x5f\x64\x7f\x41\x7e\xf8\x5f\x56\x5f\x5e\x5f\x5d\x00\x00\x5f\x5c\x5f\x62\x00\x00\x7e\xeb\x5f\x63\x7e\xf9\x5f\x5f\x5f\x55\x7e\xfb\x5f\x58\x5f\x59\x5f\x61\x7e\xf0\x7e\xef\x7e\xec\x00\x00\x7e\xf4\x7e\xf1\x7e\xf5\x5f\x66\x00\x00\x7f\x44\x5f\x5b\x7e\xf6\x7e\xf7\x00\x00\x7e\xf3\x00\x00\x00\x00\x00\x00\x5f\x65\x00\x00\x00\x00\x00\x00\x00\x00\x81\xf0\x61\x5a\x61\x63\x61\x5f\x81\xed\x00\x00\x61\x5c\x61\x60\x81\xf9\x61\x56\x81\xf1\x00\x00\x61\x5e\x00\x00\x00\x00\x81\xf4\x81\xef\x61\x5d\x61\x61\x81\xee\x00\x00\x61\x5b\x00\x00\x81\xf8\x61\x58\x81\xf7\x81\xf6\x61\x64\x80\xbc\x61\x57\x00\x00\x81\xf5\x81\xec\x00\x00\x61\x65\x81\xf3\x61\x59\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x81\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe9\x62\xee\x62\xe7\x85\x64\x85\x5b\x85\x67\x85\x5f\x85\x65\x62\xef\x62\xe8\x85\x58\x85\x5e\x85\x68\x85\x61\x85\x66\x85\x5a\x00\x00\x00\x00\x85\x62\x62\xea\x85\x60\x62\xed\x62\xec\x85\x5c\x85\x5d\x85\x59\x85\x63\x62\xeb\x85\x6a\x85\x69\x00\x00\x00\x00\x00\x00\x87\xc6\x87\xc2\x64\x8a\x00\x00\x87\xbc\x64\x84\x64\x94\x87\xc8\x64\x8c\x64\x88\x87\xbf\x64\x8f\x64\x92\x87\xca\x64\x87\x87\xc1\x64\x90\x87\xcc\x87\xc9\x87\xbd\x64\x8b\x64\x85\x64\x93\x87\xc4\x64\x8e\x87\xbe\x64\x89\x87\xcb\x64\x8d\x64\x86\x87\xc5\x64\x91\x87\xc3\x00\x00\x00\x00\x87\xc7\x00\x00\x00\x00\x00\x00\x89\xdb\x89\xe1\x65\xa3\x89\xe4\x65\x9e\x65\x9f\x89\xdc\x89\xe3\x89\xde\x65\xa4\x65\xa1\x00\x00\x89\xda\x00\x00\x65\xa0\x89\xe0\x89\xe2\x65\xa2\x89\xdf\x89\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xc5\x66\x82\x66\x83\x66\x7e\x00\x00\x66\x7f\x00\x00\x8b\xc1\x8b\xbf\x00\x00\x8b\xc3\x66\x85\x8b\xc4\x8b\xbd\x8b\xbc\x8b\xc0\x8b\xbe\x66\x81\x8b\xc2\x8d\x7a\x67\x4b\x67\x4a\x8d\x7b\x00\x00", /* 7e80 */ "\x8d\x7d\x8d\x7c\x67\x4c\x00\x00\x00\x00\x00\x00\x8e\x9b\x8e\x98\x8e\x99\x00\x00\x8e\x97\x8e\x9a\x67\x9e\x8e\x9c\x00\x00\x67\x9d\x00\x00\x8f\x92\x00\x00\x68\x61\x68\x63\x90\x5f\x68\x62\x90\xc8\x91\x51\x91\x53\x91\x50\x91\x52\x68\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6f\x00\x00\x53\x9f\x70\xd2\x55\xcd\x00\x00\x00\x00\x58\x7f\x78\x44\x78\x45\x00\x00\x00\x00\x00\x00\x85\x6b\x64\x95\x87\xcd\x00\x00\x00\x00\x65\xa5\x00\x00\x8b\xc7\x8b\xc6\x67\x4d\x8e\x9d\x00\x00\x8f\x93\x68\x85\x69\xe8\x00\x00\x00\x00\x51\xab\x4f\xb7\x00\x00\x00\x00\x6e\xee\x00\x00\x00\x00\x71\xa4\x71\x9f\x71\xa3\x71\xa1\x55\xce\x71\xa2\x71\xa0\x00\x00\x74\xb6\x00\x00\x78\x46\x78\x47\x7b\xb1\x7b\xb2\x5c\xf4\x5c\xf5\x7b\xb0\x7b\xb3\x7b\xaf\x5c\xf3\x00\x00\x5f\x68\x00\x00\x5c\xf6\x7f\x45\x00\x00\x61\x66\x81\xfa\x61\x67\x00\x00\x62\xf0\x85\x6e\x85\x6c\x85\x6d\x87\xd0\x87\xcf\x87\xce", /* 7f80 */ "\x00\x00\x00\x00\x00\x00\x8b\xc8\x00\x00\x66\x84\x8b\xc9\x8f\x94\x68\x86\x90\xc9\x4e\x70\x51\xad\x51\xac\x6e\xf0\x53\xa0\x00\x00\x00\x00\x6e\xef\x71\xa6\x00\x00\x55\xcf\x74\xb7\x71\xa5\x00\x00\x00\x00\x00\x00\x58\x82\x74\xba\x74\xb8\x74\xb9\x58\x81\x00\x00\x78\x49\x78\x4a\x78\x48\x00\x00\x5c\xf9\x7b\xb5\x7b\xb4\x7b\xb6\x5c\xf8\x5c\xf7\x00\x00\x00\x00\x81\xfb\x81\xfd\x00\x00\x61\x68\x81\xfc\x85\x6f\x62\xf1\x89\xe6\x00\x00\x89\xe5\x66\x86\x8b\xca\x66\x88\x66\x87\x8d\x7e\x8e\x9e\x67\x9f\x4e\x71\x6e\xf1\x53\xa1\x71\xa9\x55\xd1\x71\xa8\x71\xa7\x00\x00\x55\xd0\x00\x00\x74\xc0\x00\x00\x74\xc2\x74\xbb\x74\xbc\x58\x83\x74\xbd\x58\x84\x74\xc1\x74\xbe\x74\xbf\x58\x85\x00\x00\x5a\xc3\x5a\xc4\x00\x00\x78\x4b\x00\x00\x00\x00\x00\x00\x7b\xb7\x7b\xb8\x00\x00\x7f\x49\x5f\x6b\x5f\x69\x5f\x6a\x7f\x46\x7f\x47\x00\x00\x7f\x48\x82\x45\x00\x00\x82\x46\x61\x69\x82\x43\x82\x42\x82\x44\x82\x41\x62\xf4\x85\x70\x62\xf2\x62\xf3\x87\xd2\x64\x96\x87\xd1\x89\x55\x00\x00\x89\xe7\x89\xe8\x65\xa6\x00\x00\x65\xa7\x64\x97\x8b\xcb\x8b\xcc\x8d\x7f", /* 8000 */ "\x67\x4e\x4e\x72\x00\x00\x4e\x73\x53\xa2\x51\xae\x55\xd2\x6e\xf2\x00\x00\x00\x00\x00\x00\x5a\xc5\x4e\x74\x53\xa4\x6e\xf3\x6e\xf4\x53\xa3\x53\xa5\x4e\x75\x00\x00\x6e\xf5\x55\xd4\x71\xaa\x55\xd6\x55\xd3\x55\xd5\x00\x00\x74\xc5\x58\x86\x00\x00\x74\xc4\x74\xc3\x00\x00\x7b\xb9\x00\x00\x00\x00\x7f\x4a\x00\x00\x61\x6a\x00\x00\x62\xf5\x85\x72\x85\x71\x00\x00\x87\xd3\x00\x00\x00\x00\x00\x00\x8e\x9f\x00\x00\x00\x00\x4e\x76\x6a\xf3\x6c\xca\x53\xa6\x6e\xf6\x00\x00\x71\xac\x00\x00\x00\x00\x00\x00\x55\xd7\x71\xab\x55\xd8\x00\x00\x00\x00\x00\x00\x74\xc7\x00\x00\x00\x00\x58\x88\x74\xc6\x74\xc8\x00\x00\x58\x87\x00\x00\x00\x00\x00\x00\x00\x00\x78\x4d\x78\x4e\x78\x4c\x5a\xc6\x00\x00\x00\x00\x00\x00\x5c\xfa\x00\x00\x5c\xfb\x00\x00\x5f\x6d\x00\x00\x7f\x4c\x7f\x4b\x5f\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x47\x00\x00\x00\x00\x82\x48\x00\x00\x00\x00\x00\x00\x00\x00\x85\x73\x00\x00\x00\x00\x64\x9b\x64\x9a\x64\x98\x64\x99\x64\x9c\x00\x00\x89\xe9\x65\xa9\x65\xa8\x8b\xcd\x8d\x81\x00\x00\x00\x00\x00\x00\x67\xee\x67\xed\x4e\x77", /* 8080 */ "\x00\x00\x00\x00\x70\x9f\x00\x00\x5c\xfd\x5a\xc7\x5c\xfc\x5f\x6e\x00\x00\x4e\x78\x69\x89\x4e\x79\x4e\x7a\x00\x00\x00\x00\x6c\xcb\x6a\xf6\x00\x00\x6a\xf7\x4f\xb9\x00\x00\x6a\xf4\x4f\xb8\x00\x00\x4f\xbb\x6a\xf5\x4f\xbd\x4f\xbc\x6a\xf8\x4f\xba\x00\x00\x00\x00\x00\x00\x51\xb3\x51\xb1\x6c\xcd\x00\x00\x51\xb0\x00\x00\x00\x00\x00\x00\x51\xb5\x51\xb7\x51\xb4\x00\x00\x6c\xd0\x6c\xcc\x51\xb8\x00\x00\x51\xb2\x4f\xbe\x00\x00\x51\xb6\x6c\xcf\x00\x00\x00\x00\x6c\xce\x00\x00\x51\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xfc\x53\xaa\x53\xab\x6f\x41\x00\x00\x6e\xf8\x6e\xfb\x6f\x47\x6f\x45\x00\x00\x53\xac\x6f\x4b\x53\xaf\x6f\x48\x6e\xfd\x6e\xfa\x00\x00\x00\x00\x78\x50\x6f\x46\x53\xa7\x6f\x49\x6e\xf7\x6f\x43\x53\xa9\x53\xae\x6f\x44\x53\xb2\x53\xb0\x00\x00\x6e\xf9\x53\xad\x00\x00\x6f\x42\x53\xb1\x53\xa8\x6f\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xdd\x00\x00\x55\xe6\x55\xdb\x55\xd9\x71\xae\x55\xe1\x55\xde\x71\xb0\x00\x00\x00\x00\x55\xe0\x71\xaf\x71\xad\x71\xb2\x55\xe5\x55\xe3\x78\x4f\x00\x00", /* 8100 */ "\x71\xb3\x71\xb1\x55\xda\x00\x00\x00\x00\x55\xdc\x55\xdf\x00\x00\x55\xe2\x00\x00\x55\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xd2\x58\x8a\x00\x00\x74\xc9\x74\xcb\x00\x00\x74\xcc\x00\x00\x74\xd4\x74\xd0\x74\xce\x00\x00\x74\xd1\x74\xd5\x58\x8b\x58\x8f\x74\xca\x00\x00\x74\xd3\x00\x00\x58\x8d\x00\x00\x58\x8c\x74\xcf\x74\xcd\x00\x00\x58\x89\x58\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xcd\x78\x58\x00\x00\x00\x00\x78\x56\x5a\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x78\x51\x7b\xc7\x00\x00\x5a\xce\x78\x55\x00\x00\x00\x00\x78\x52\x5a\xca\x5a\xd0\x78\x57\x5a\xcc\x78\x54\x5f\x6f\x5a\xcb\x78\x53\x5a\xd1\x5a\xc9\x5a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xbf\x7b\xbd\x00\x00\x7b\xc3\x00\x00\x7b\xbb\x7b\xc8\x7b\xc0\x00\x00\x7b\xba\x5d\x44\x5d\x4a\x7b\xc5\x00\x00\x7b\xbe\x00\x00\x5d\x47\x00\x00\x00\x00\x5d\x45\x7b\xc6\x5d\x42\x5d\x41\x7b\xc1\x5d\x46\x5a\xd2\x00\x00\x7b\xc4\x7b\xbc\x5d\x43\x5d\x48\x5d\x49\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x74", /* 8180 */ "\x5f\x70\x00\x00\x5f\x75\x7f\x4f\x00\x00\x00\x00\x7f\x4e\x7f\x50\x5f\x72\x7f\x4d\x5f\x73\x7f\x53\x7f\x52\x7f\x51\x00\x00\x5f\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x4c\x00\x00\x82\x4f\x61\x70\x82\x4e\x61\x6f\x61\x6b\x61\x6c\x61\x6d\x82\x4b\x82\x4a\x61\x6e\x00\x00\x82\x4d\x82\x49\x00\x00\x00\x00\x85\x75\x85\x7f\x62\xf8\x62\xf7\x00\x00\x85\x79\x85\x7b\x00\x00\x85\x76\x00\x00\x85\x7a\x85\x74\x85\x7d\x62\xf6\x85\x7c\x85\x78\x00\x00\x85\x7e\x00\x00\x85\x77\x64\x9f\x87\xd4\x87\xda\x64\xa3\x64\xa5\x64\xa2\x64\xa1\x00\x00\x64\xa0\x64\x9e\x87\xd5\x87\xd8\x64\x9d\x87\xd9\x00\x00\x64\xa4\x87\xd7\x00\x00\x87\xd6\x65\xaa\x00\x00\x65\xab\x89\xec\x89\xea\x89\xeb\x00\x00\x00\x00\x8b\xcf\x00\x00\x8b\xce\x66\x89\x8d\x83\x67\x4f\x8d\x82\x00\x00\x8e\xa0\x8f\x95\x67\xef\x91\x54\x91\x55\x68\x64\x4e\x7b\x00\x00\x51\xb9\x78\x59\x5f\x76\x64\xa6\x87\xdb\x4e\x7c\x00\x00\x55\xe8\x55\xe7\x78\x5a\x00\x00\x00\x00\x00\x00\x85\x81\x4e\x7d\x53\xb3\x00\x00\x00\x00\x78\x5b\x78\x5c\x78\x5d\x5f\x77\x62\xf9\x4e\x7e\x00\x00\x51\xba\x6f\x4c", /* 8200 */ "\x55\xe9\x71\xb4\x58\x90\x00\x00\x78\x5e\x5d\x4b\x00\x00\x5f\x78\x62\xfa\x64\xa7\x65\xac\x8d\x84\x4e\x7f\x51\xbb\x00\x00\x00\x00\x55\xea\x74\xd6\x5a\xd3\x00\x00\x5f\x79\x7f\x54\x82\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x81\x5a\xd4\x7b\xc9\x5f\x7a\x4e\x82\x6c\xd1\x6f\x4d\x53\xb4\x00\x00\x00\x00\x71\xb6\x00\x00\x00\x00\x55\xed\x00\x00\x55\xeb\x55\xec\x55\xee\x00\x00\x00\x00\x71\xb5\x00\x00\x00\x00\x74\xdb\x74\xd8\x74\xda\x58\x91\x58\x93\x58\x92\x74\xd7\x58\x94\x74\xd9\x00\x00\x78\x5f\x78\x60\x00\x00\x78\x61\x7b\xcc\x00\x00\x7b\xcd\x00\x00\x7b\xcb\x7b\xce\x00\x00\x5d\x4c\x00\x00\x7b\xca\x00\x00\x5f\x7b\x00\x00\x00\x00\x82\x55\x82\x51\x82\x54\x82\x56\x82\x53\x82\x52\x00\x00\x85\x82\x85\x83\x85\x84\x62\xfb\x62\xfc\x87\xdd\x87\xdc\x87\xde\x00\x00\x89\xee\x89\xed\x00\x00\x8b\xd1\x00\x00\x8b\xd2\x8b\xd0\x00\x00\x67\x50\x00\x00\x8d\x85\x8d\x86\x00\x00\x8f\x96\x90\x60\x90\xca\x4e\x83\x4f\xbf\x00\x00\x64\xa8\x4e\x84\x00\x00\x74\xdc\x78\x62\x00\x00\x68\x8d\x69\xe9\x00\x00\x00\x00\x00\x00\x69\xea\x69\xec\x4e\x85\x69\xed", /* 8280 */ "\x69\xeb\x00\x00\x00\x00\x6b\x43\x6b\x44\x6a\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x42\x4f\xc1\x00\x00\x4f\xc2\x6a\xfc\x6a\xfa\x6a\xf9\x6a\xfd\x4f\xc0\x6b\x41\x6f\x4e\x00\x00\x00\x00\x00\x00\x6c\xd6\x51\xbe\x6c\xd5\x6c\xd7\x00\x00\x51\xbd\x6c\xdc\x51\xc1\x6c\xd2\x6c\xe0\x6c\xe6\x51\xc8\x6c\xe3\x51\xc5\x00\x00\x6c\xd9\x6c\xdf\x6c\xe1\x00\x00\x6c\xd4\x51\xc4\x51\xbf\x6c\xda\x51\xc6\x51\xc9\x51\xc3\x00\x00\x51\xbc\x6c\xde\x6c\xd8\x6c\xe5\x51\xcb\x51\xc7\x51\xc2\x6c\xdd\x55\xef\x6c\xdb\x51\xc0\x51\xca\x00\x00\x6c\xd3\x00\x00\x6c\xe2\x6c\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc5\x53\xbf\x53\xc7\x53\xc4\x6f\x55\x6f\x58\x53\xc0\x00\x00\x6f\x4f\x00\x00\x53\xb9\x53\xc3\x00\x00\x53\xc6\x53\xc8\x6f\x64\x6f\x5b\x00\x00\x53\xb8\x6f\x63\x53\xbc\x53\xba\x53\xb5\x6f\x53\x00\x00\x6f\x62\x6f\x57\x6f\x5a\x6f\x67\x00\x00\x53\xc9\x6f\x61\x53\xc1\x6f\x5c\x6f\x66\x6f\x59\x6f\x5d\x6f\x60\x00\x00\x00\x00\x6f\x51\x6f\x65\x6f\x5f\x00\x00\x00\x00\x6f\x50\x00\x00", /* 8300 */ "\x6f\x54\x53\xc2\x53\xbd\x53\xb6\x53\xbb\x53\xb7\x53\xca\x6f\x52\x71\xc7\x53\xbe\x00\x00\x00\x00\x6f\x5e\x6d\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\xca\x55\xfd\x00\x00\x71\xba\x00\x00\x71\xc5\x71\xc1\x00\x00\x71\xd4\x00\x00\x71\xcc\x00\x00\x71\xc2\x00\x00\x71\xcb\x71\xbc\x71\xc0\x71\xd7\x56\x43\x71\xcf\x71\xc6\x55\xf0\x71\xd5\x71\xb8\x00\x00\x71\xce\x00\x00\x56\x42\x55\xfa\x71\xb7\x55\xf8\x55\xf7\x55\xfc\x71\xcd\x55\xf4\x55\xfb\x6f\x56\x78\x63\x71\xc8\x00\x00\x00\x00\x71\xbe\x56\x41\x71\xbf\x71\xc3\x56\x44\x71\xb9\x71\xd1\x00\x00\x71\xd0\x71\xd8\x55\xf6\x55\xf3\x71\xd6\x71\xd2\x71\xc9\x71\xc4\x55\xf9\x55\xf5\x71\xbb\x55\xf1\x71\xd3\x55\xf2\x00\x00\x71\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xe2\x74\xe4\x74\xe9\x74\xfd\x58\xa2\x58\x98\x00\x00\x74\xe1\x58\xa3\x58\xa4\x74\xec\x74\xf3\x74\xf9", /* 8380 */ "\x00\x00\x74\xe6\x00\x00\x74\xed\x00\x00\x00\x00\x58\xa5\x74\xfb\x74\xf6\x58\xa0\x58\x9e\x74\xf2\x74\xee\x74\xe0\x58\x95\x74\xe5\x74\xdd\x00\x00\x58\x9d\x58\x9f\x74\xea\x74\xe7\x58\x9a\x74\xf7\x58\x97\x74\xe8\x75\x41\x74\xf0\x00\x00\x74\xef\x58\x96\x00\x00\x58\xa1\x00\x00\x58\x99\x74\xde\x74\xe3\x74\xf4\x74\xfa\x58\xa6\x74\xdf\x74\xeb\x74\xf1\x58\x9c\x00\x00\x00\x00\x74\xfc\x74\xf5\x74\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9b\x00\x00\x78\x73\x78\x67\x5a\xdc\x78\x85\x78\x8d\x78\x90\x5a\xda\x78\x6f\x78\x89\x78\x70\x78\x7e\x5a\xe7\x78\x7a\x5a\xe4\x00\x00\x78\x7b\x78\x64\x00\x00\x78\x8a\x00\x00\x00\x00\x5a\xed\x78\x87\x78\x7c\x78\x92\x78\x77\x7b\xee\x00\x00\x78\x95\x5a\xeb\x78\x75\x78\x82\x5a\xee\x5a\xd9\x78\x79\x78\x93\x78\x72\x78\x6b\x78\x76\x00\x00\x78\x6a\x78\x68\x5a\xd5\x78\x8b\x78\x71\x78\x8e\x00\x00\x78\x8f\x5a\xdd\x5a\xe2\x5a\xde\x5a\xe6\x78\x86\x5a\xdf\x78\x7d\x78\x6d\x00\x00\x5a\xd7\x78\x65\x78\x88\x78\x91\x78\x6c\x5a\xe5\x78\x96\x78\x78", /* 8400 */ "\x00\x00\x78\x74\x00\x00\x5a\xd6\x5a\xea\x00\x00\x78\x84\x5a\xec\x00\x00\x78\x7f\x5a\xe1\x5a\xdb\x5a\xe3\x5a\xd8\x5a\xe9\x78\x81\x78\x6e\x78\x83\x78\x69\x78\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xed\x00\x00\x7c\x46\x5c\xdb\x7b\xf2\x00\x00\x7b\xf0\x7b\xdb\x5d\x50\x7b\xeb\x7c\x42\x7b\xe7\x5d\x58\x7c\x41\x7b\xe5\x5a\xe8\x7b\xf5\x7b\xe6\x7b\xfc\x5d\x57\x5d\x4f\x00\x00\x7b\xd0\x7b\xd8\x00\x00\x7b\xf1\x7b\xe9\x7c\x45\x7b\xec\x5d\x5d\x7b\xfd\x00\x00\x5d\x54\x00\x00\x7b\xef\x7b\xf7\x7b\xdc\x7b\xf6\x00\x00\x7c\x4a\x7b\xd7\x7b\xf8\x00\x00\x7c\x48\x00\x00\x7b\xd1\x5a\xe0\x00\x00\x7b\xdf\x7b\xde\x5d\x56\x00\x00\x7b\xe2\x7b\xe4\x7b\xf3\x7c\x47\x5d\x59\x00\x00\x5d\x5a\x00\x00\x7b\xd6\x5d\x52\x7b\xda\x7c\x43\x5d\x5b\x00\x00\x5d\x53\x5d\x55\x5d\x5c\x7c\x49\x7b\xf9\x7b\xf4\x00\x00\x00\x00\x7b\xe1\x7b\xe0\x5d\x51\x7b\xd2\x5d\x4e\x7b\xea\x7b\xd3\x7b\xe8\x00\x00\x00\x00\x7b\xdd\x7c\x44\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x5d\x4d\x00\x00\x00\x00\x00\x00\x7b\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xd5\x7b\xfb\x7b\xd4\x5f\x89\x7f\x7c\x00\x00\x00\x00\x7f\x6b\x00\x00\x00\x00\x7f\x55\x7f\x73\x5f\x81\x7f\x64\x7f\x6e\x5f\x84\x7f\x67\x5f\x82\x7f\x58\x7f\x76\x7f\x57\x7f\x6a\x00\x00\x7f\x56\x00\x00\x00\x00\x7f\x68\x7f\x71\x7f\x6f\x7f\x63\x7f\x5e\x7f\x5c\x00\x00\x7f\x5d\x7f\x70\x7f\x7b\x7f\x65\x5f\x83\x00\x00\x7f\x60\x00\x00\x7f\x74\x00\x00\x5f\x86\x7f\x5f\x7f\x59\x7f\x69\x5f\x8a\x00\x00\x00\x00\x5f\x7d\x5f\x87\x7f\x61\x7f\x5b\x00\x00\x5f\x7f\x7b\xfa\x5f\x7e\x7f\x6c\x00\x00\x5f\x7c\x5f\x8c\x5f\x85\x7f\x6d\x7f\x62\x7f\x5a\x7f\x75\x7f\x66\x5f\x8b\x7f\x79\x5f\x88\x7f\x78\x00\x00\x7f\x72\x7f\x77\x00\x00\x00\x00\x00\x00\x7f\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x7e\x82\x7f\x82\x72\x82\x71\x82\x6d\x61\x7c\x00\x00\x61\x74\x82\x82\x82\x81\x7b\xcf\x82\x6a\x82\x6e\x82\x68\x00\x00\x82\x7b\x82\x6c\x00\x00\x82\x83\x82\x65\x82\x63\x82\x6f\x82\x79\x82\x74\x61\x7e", /* 8500 */ "\x82\x5a\x00\x00\x82\x78\x00\x00\x00\x00\x00\x00\x61\x7f\x7b\xe3\x82\x66\x82\x5d\x82\x60\x82\x87\x82\x67\x82\x5e\x82\x5c\x82\x59\x00\x00\x61\x78\x82\x70\x61\x77\x61\x7b\x82\x6b\x82\x73\x61\x71\x82\x84\x82\x88\x61\x73\x00\x00\x82\x62\x82\x76\x82\x7a\x82\x5f\x82\x85\x61\x7a\x00\x00\x61\x79\x82\x57\x61\x7d\x82\x7d\x82\x61\x82\x75\x82\x5b\x82\x69\x82\x64\x61\x75\x61\x76\x82\x77\x82\x89\x82\x86\x82\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x58\x00\x00\x61\x72\x85\x95\x00\x00\x85\x8c\x85\x8f\x00\x00\x63\x45\x85\x91\x85\x86\x85\x8d\x85\x93\x63\x42\x63\x46\x62\xfd\x00\x00\x00\x00\x85\x88\x85\x98\x00\x00\x00\x00\x85\x92\x00\x00\x85\x89\x85\xa1\x85\x9b\x85\x85\x87\xf1\x85\x8b\x63\x41\x00\x00\x85\x96\x00\x00\x85\xa0\x63\x49\x00\x00\x85\x9d\x85\x8a\x85\x90\x85\x94\x85\x8e\x85\xa2\x85\x9f\x85\x9c\x63\x43\x63\x44\x63\x48\x85\x87\x85\xa3\x63\x47\x85\x99\x00\x00\x00\x00\x85\x97\x00\x00\x00\x00\x00\x00\x85\x9a\x88\x41\x87\xeb\x87\xf0\x87\xfd\x87\xef\x87\xe7\x87\xec\x00\x00\x64\xab\x00\x00", /* 8580 */ "\x87\xe0\x87\xf8\x87\xfa\x87\xdf\x64\xaa\x87\xfc\x87\xf4\x64\xb1\x87\xfb\x87\xed\x64\xb3\x87\xe5\x85\x9e\x87\xf5\x87\xf2\x87\xe1\x88\x43\x64\xad\x00\x00\x00\x00\x64\xae\x87\xe3\x87\xf3\x00\x00\x88\x42\x87\xf6\x87\xe9\x64\xb0\x64\xac\x87\xf7\x87\xea\x88\x44\x87\xe4\x87\xee\x87\xf9\x87\xe6\x87\xe8\x00\x00\x65\xb5\x87\xe2\x64\xb2\x65\xae\x64\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x64\xaf\x65\xb2\x8a\x41\x00\x00\x89\xf4\x89\xef\x89\xf5\x8a\x42\x8a\x46\x8a\x45\x65\xb4\x65\xb3\x00\x00\x00\x00\x89\xf6\x8a\x47\x89\xf9\x89\xf1\x00\x00\x89\xf3\x89\xf2\x89\xf8\x89\xfd\x89\xf0\x89\xf7\x89\xfc\x65\xb1\x00\x00\x89\xfa\x00\x00\x65\xaf\x89\xfb\x65\xad\x65\xb0\x8b\xe2\x8a\x43\x00\x00\x00\x00\x66\x8d\x00\x00\x8b\xda\x8b\xde\x8b\xd6\x8b\xd9\x00\x00\x8b\xe1\x66\x8b\x8b\xe6\x8b\xdf\x00\x00\x8b\xd7\x8b\xe7\x8b\xe0\x66\x8e\x66\x8f\x8b\xe4\x00\x00\x8b\xd8\x66\x8a\x66\x8c\x8b\xd3\x8b\xdb\x8b\xd5\x00\x00\x8b\xe5\x8b\xe3\x8b\xd4\x8b\xdc\x00\x00\x00\x00\x00\x00\x8d\x8d\x66\x90\x8b\xdd\x67\x52\x67\x54\x67\x51\x00\x00\x8d\x92\x8d\x8a\x8d\x88", /* 8600 */ "\x8d\x8c\x8d\x89\x00\x00\x00\x00\x8d\x8e\x8d\x90\x67\x55\x67\x57\x00\x00\x8d\x8f\x67\x58\x67\x56\x8d\x91\x00\x00\x00\x00\x00\x00\x00\x00\x67\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa0\x8e\xa1\x8e\xa7\x67\xa2\x8d\x8b\x8e\xa6\x00\x00\x8e\xad\x8e\xa4\x8e\xab\x8e\xaa\x8d\x87\x8e\xa5\x8a\x44\x8e\xae\x8e\xa3\x8e\xa8\x00\x00\x8e\xac\x8e\xa2\x00\x00\x8f\x9a\x67\xa1\x8e\xa9\x00\x00\x00\x00\x90\x65\x8f\x9b\x8f\x99\x8f\x97\x8f\x98\x8f\x9c\x00\x00\x68\x65\x90\x63\x90\x61\x90\x66\x90\x64\x00\x00\x90\x67\x68\x66\x90\x62\x00\x00\x00\x00\x90\xcb\x00\x00\x00\x00\x91\x56\x91\x57\x91\x58\x00\x00\x00\x00\x91\xb7\x91\xad\x69\xee\x51\xcc\x00\x00\x53\xcb\x00\x00\x71\xda\x71\xd9\x56\x45\x58\xa7\x75\x43\x00\x00\x00\x00\x75\x42\x00\x00\x5a\xef\x5d\x5f\x00\x00\x5d\x5e\x5d\x60\x00\x00\x7f\x7d\x82\x8a\x85\xa4\x85\xa6\x85\xa5\x00\x00\x64\xb4\x88\x45\x8a\x48\x91\x95\x4e\x86\x00\x00\x6c\xe9\x6c\xea\x6c\xe8\x6c\xe7\x51\xcd\x00\x00\x6f\x6b\x6f\x69\x00\x00\x00\x00\x6f\x68\x00\x00\x53\xcc\x53\xce\x53\xcd\x6f\x6a\x00\x00\x00\x00\x00\x00", /* 8680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\xe6\x71\xe3\x71\xe1\x00\x00\x00\x00\x56\x46\x71\xe4\x56\x4b\x71\xde\x71\xed\x00\x00\x71\xef\x71\xdf\x00\x00\x56\x48\x71\xf0\x71\xeb\x71\xdd\x71\xe2\x71\xec\x71\xe8\x71\xe5\x00\x00\x56\x4d\x71\xee\x71\xe0\x00\x00\x00\x00\x71\xe9\x71\xdb\x56\x4c\x56\x49\x71\xe7\x00\x00\x71\xea\x71\xdc\x56\x4a\x56\x47\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb1\x75\x4a\x58\xb0\x00\x00\x75\x4d\x75\x50\x58\xad\x58\xab\x75\x45\x75\x4e\x75\x4c\x75\x49\x75\x51\x75\x52\x75\x54\x75\x55\x75\x44\x58\xaa\x75\x47\x75\x46\x75\x53\x58\xac\x75\x48\x58\xae\x58\xa9\x75\x4b\x58\xb2\x00\x00\x58\xaf\x75\x4f\x00\x00\x00\x00\x00\x00\x5a\xf6\x78\xa5\x00\x00\x78\x9a\x5a\xf3\x00\x00\x7c\x50\x78\xa3\x78\x97\x5a\xf1\x78\x9c\x5a\xf4\x78\xa0\x78\x9e\x5a\xf7\x5a\xf0\x00\x00\x00\x00\x78\x98\x78\x9b\x5a\xf5\x00\x00\x78\x99\x00\x00\x78\xa4\x78\xa2\x78\x9d\x78\x9f\x78\xa1\x5a\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x51\x7c\x57\x7c\x4d\x7c\x53\x5d\x61\x7c\x4f\x5d\x67\x00\x00\x00\x00\x5d\x66\x00\x00", /* 8700 */ "\x5d\x65\x7c\x56\x5d\x68\x5d\x69\x7c\x4c\x7c\x59\x5d\x6a\x5d\x64\x5d\x63\x7c\x55\x5d\x6b\x7c\x4b\x7c\x4e\x7c\x58\x7c\x54\x00\x00\x00\x00\x7f\x9e\x7f\x93\x5d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x93\x7f\x87\x7f\x9c\x7f\x88\x5f\x8e\x00\x00\x7f\x85\x00\x00\x7f\x8e\x7f\x86\x5f\x90\x7f\x7f\x7f\x9b\x5f\x91\x7f\x98\x7f\x99\x7f\x81\x5f\x96\x7f\x90\x00\x00\x7f\x8a\x7f\x91\x7f\x84\x00\x00\x7f\x9d\x7f\x95\x7f\x8f\x7f\x7e\x5f\x92\x7f\x96\x00\x00\x5f\x95\x7f\x9a\x00\x00\x7f\x94\x5f\x8f\x7f\x92\x00\x00\x7f\x8c\x5f\x8d\x7f\x83\x7f\x8b\x7f\x97\x7f\x89\x00\x00\x00\x00\x7f\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8a\x7c\x52\x82\x9c\x82\xa5\x82\x9b\x82\x97\x82\x94\x61\x8b\x82\x92\x5f\x94\x82\x8b\x61\x89\x82\x91\x61\x88\x82\x96\x82\x93\x82\xa3\x82\x9e\x82\x98\x82\x9d\x61\x84\x82\x95\x82\xa8\x82\x8c\x82\x8d\x82\xa4\x61\x85\x82\xa9\x61\x87\x82\xaa\x82\x9a\x7f\x82\x82\xa0\x82\x99\x82\xa2\x82\x9f\x00\x00\x00\x00\x00\x00\x82\x90\x61\x82\x82\xa7\x61\x83\x82\x8e\x61\x86\x85\xb0\x82\xa1\x82\xa6\x00\x00\x00\x00\x00\x00\x00\x00", /* 8780 */ "\x00\x00\x85\xad\x61\x81\x63\x4a\x85\xb7\x85\xb3\x00\x00\x85\xb1\x85\xac\x85\xbb\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x85\xa8\x85\xb4\x85\xb5\x85\xab\x85\xaa\x85\xb8\x00\x00\x85\xae\x85\xa9\x85\xaf\x00\x00\x85\xba\x85\xa7\x85\xb9\x85\xb6\x63\x4c\x63\x4b\x00\x00\x00\x00\x63\x4d\x85\xb2\x8a\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x47\x64\xba\x88\x4b\x88\x48\x88\x4f\x88\x55\x88\x4a\x00\x00\x88\x5e\x64\xb7\x88\x58\x88\x4d\x88\x59\x88\x54\x88\x5b\x88\x4c\x64\xbc\x64\xbb\x88\x4e\x88\x5c\x88\x46\x88\x5a\x64\xb5\x00\x00\x88\x52\x88\x51\x88\x56\x88\x49\x64\xb9\x00\x00\x64\xbd\x88\x50\x88\x57\x64\xbe\x88\x53\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb6\x64\xb8\x8a\x55\x8a\x53\x00\x00\x00\x00\x8a\x5a\x8a\x57\x8a\x5b\x00\x00\x8a\x4c\x8a\x54\x8a\x5f\x88\x5d\x8a\x50\x65\xb9\x82\x8f\x8a\x4b\x8a\x58\x8a\x52\x8a\x4f\x8a\x4a\x8a\x49\x8a\x5e\x00\x00\x8a\x4e\x8a\x4d\x65\xb7\x8a\x56\x00\x00\x65\xb6\x00\x00\x00\x00\x65\xb8\x8a\x51\x8a\x5d\x00\x00\x8b\xeb\x8b\xec\x00\x00\x66\x94\x8b\xe9\x66\x91\x8b\xf1\x00\x00\x66\x95\x8b\xf3", /* 8800 */ "\x8b\xe8\x8a\x5c\x8b\xf5\x8b\xea\x00\x00\x66\x92\x8b\xf0\x00\x00\x8b\xf2\x8b\xed\x8b\xf4\x8b\xef\x8b\xee\x66\x93\x00\x00\x00\x00\x8d\x94\x8d\x95\x00\x00\x8d\x97\x67\x59\x67\x5a\x8d\x98\x8d\x96\x00\x00\x8d\x93\x00\x00\x8e\xb1\x8e\xb4\x8e\xb0\x00\x00\x67\xa6\x8e\xb2\x67\xa5\x67\xa4\x67\xa3\x8e\xb3\x8f\xa1\x8f\x9f\x00\x00\x8f\x9e\x8e\xaf\x8f\xa0\x8e\xb5\x8f\x9d\x00\x00\x90\x6a\x90\x48\x90\x68\x68\x67\x90\x69\x90\x6b\x00\x00\x90\xce\x68\x87\x90\xcd\x90\xcc\x68\x88\x00\x00\x68\xa6\x91\x7f\x91\x97\x91\x96\x91\x98\x4e\x87\x6f\x6c\x00\x00\x71\xf1\x71\xf2\x00\x00\x00\x00\x00\x00\x78\xa6\x00\x00\x8e\xb6\x90\xcf\x4e\x88\x53\xcf\x6f\x6d\x00\x00\x00\x00\x00\x00\x75\x56\x58\xb3\x00\x00\x78\xa8\x78\xa7\x5a\xf8\x00\x00\x5d\x6c\x82\xab\x61\x8c\x00\x00\x61\x8d\x00\x00\x00\x00\x00\x00\x63\x4f\x68\x89\x4e\x89\x00\x00\x00\x00\x00\x00\x6f\x6e\x51\xcf\x6f\x70\x6f\x6f\x53\xd0\x00\x00\x71\xf3\x00\x00\x71\xfa\x56\x4e\x71\xf8\x71\xf6\x00\x00\x71\xfd\x71\xf4\x71\xf5\x56\x4f\x00\x00\x56\x53\x00\x00\x00\x00\x72\x41\x56\x52\x71\xfc\x71\xf9", /* 8880 */ "\x71\xf7\x56\x50\x56\x51\x71\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb5\x75\x57\x00\x00\x58\xba\x75\x67\x58\xb9\x75\x69\x00\x00\x00\x00\x75\x5d\x58\xb7\x75\x68\x00\x00\x75\x58\x58\xb8\x75\x64\x75\x60\x75\x62\x75\x5c\x75\x63\x00\x00\x00\x00\x58\xb4\x75\x5f\x00\x00\x75\x5e\x75\x5a\x00\x00\x75\x65\x00\x00\x00\x00\x75\x61\x75\x59\x00\x00\x75\x5b\x58\xb6\x75\x66\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xfb\x78\xb3\x00\x00\x00\x00\x00\x00\x78\xaf\x78\xb1\x78\xac\x78\xab\x78\xa9\x00\x00\x78\xb0\x78\xb2\x78\xae\x00\x00\x78\xad\x5a\xf9\x5a\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xb5\x5d\x74\x7c\x5b\x7c\x61\x7c\x5c\x7c\x5d\x00\x00\x7c\x62\x00\x00\x5d\x76\x00\x00\x5d\x6e\x5d\x75\x7c\x5a\x78\xaa\x5d\x71\x5d\x6f\x7c\x60\x7c\x5f\x5d\x70\x5d\x72\x7c\x5e\x5d\x6d\x00\x00\x5d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xa0\x5f\x9d\x00\x00\x00\x00\x7f\xab\x7f\xaa\x00\x00\x7f\xa5\x5f\x9f\x7f\xa9\x7f\xa1\x7f\xa2\x5f\x97\x5f\x99\x00\x00\x7f\xa7\x7f\x9f\x5f\x9b\x5f\x9a\x7f\xa3\x7f\xa8\x7f\xa6\x5f\x9c\x7f\xa4\x00\x00", /* 8900 */ "\x00\x00\x78\xb4\x5f\x98\x00\x00\x00\x00\x82\xac\x82\xb3\x61\x8f\x00\x00\x82\xb7\x61\x93\x82\xaf\x82\xad\x00\x00\x82\xb6\x00\x00\x61\x8e\x82\xb5\x61\x90\x61\x91\x82\xae\x61\x92\x82\xb4\x82\xb0\x82\xb1\x82\xb2\x5f\x9e\x00\x00\x00\x00\x00\x00\x85\xbc\x85\xc8\x00\x00\x63\x54\x85\xc3\x85\xc5\x00\x00\x63\x52\x85\xbd\x85\xc1\x00\x00\x85\xc4\x63\x50\x63\x53\x85\xc7\x85\xbf\x85\xc0\x85\xc6\x85\xbe\x85\xc2\x63\x51\x88\x60\x00\x00\x88\x5f\x64\xc0\x88\x65\x64\xc2\x00\x00\x00\x00\x64\xbf\x88\x61\x64\xc3\x88\x62\x00\x00\x00\x00\x88\x63\x88\x66\x00\x00\x64\xc1\x00\x00\x8a\x64\x00\x00\x00\x00\x8a\x67\x00\x00\x8a\x61\x8a\x63\x00\x00\x00\x00\x8a\x62\x8a\x65\x8a\x66\x88\x64\x8a\x60\x00\x00\x00\x00\x66\x98\x8b\xf9\x8b\xfc\x8c\x41\x8b\xf7\x8b\xf8\x8b\xfb\x8b\xfd\x66\x99\x66\x97\x66\x96\x8b\xfa\x8b\xf6\x8d\x99\x67\x5b\x00\x00\x8d\x9a\x00\x00\x00\x00\x8e\xb8\x67\xa7\x8e\xba\x67\xa8\x8e\xb7\x8e\xb9\x67\xf1\x00\x00\x8f\xa2\x67\xf0\x90\x6e\x90\x6d\x00\x00\x90\x6c\x00\x00\x00\x00\x91\x59\x91\x5a\x91\x5c\x91\x5b\x00\x00\x69\xef\x4e\x8a", /* 8980 */ "\x00\x00\x53\xd1\x75\x6a\x5a\xfc\x00\x00\x7c\x63\x65\xba\x00\x00\x8c\x42\x00\x00\x00\x00\x4f\xc3\x00\x00\x00\x00\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x58\xbb\x00\x00\x78\xb6\x5a\xfd\x78\xb8\x78\xb7\x00\x00\x00\x00\x7c\x64\x5d\x77\x7f\xac\x7f\xaf\x7f\xae\x00\x00\x7f\xad\x82\xb8\x82\xba\x82\xb9\x00\x00\x63\x56\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x64\xc4\x88\x67\x88\x69\x88\x68\x00\x00\x00\x00\x65\xbb\x00\x00\x00\x00\x00\x00\x8c\x44\x8c\x43\x00\x00\x8d\x9b\x67\x5c\x00\x00\x00\x00\x67\xa9\x8f\xa4\x8f\xa3\x68\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc4\x6f\x71\x53\xd2\x75\x6d\x75\x6b\x00\x00\x00\x00\x75\x6c\x78\xba\x78\xbb\x7c\x6b\x78\xb9\x00\x00\x7c\x65\x7c\x69\x7c\x68\x7c\x6a\x5d\x78\x7c\x67\x7c\x66\x7c\x6c\x00\x00\x7f\xb2\x7f\xb0\x00\x00\x7f\xb1\x82\xbd\x82\xbb\x00\x00\x00\x00\x82\xbc\x85\xc9\x88\x6a\x88\x6b\x65\xbc\x00\x00\x8c\x45\x8d\x9c\x67\x5d\x00\x00\x8e\xbb\x8f\xa5\x67\xf2\x00\x00\x90\x6f\x91\x5d", /* 8a00 */ "\x4f\xc5\x00\x00\x53\xd4\x53\xd5\x6f\x72\x00\x00\x00\x00\x6f\x73\x53\xd3\x00\x00\x56\x59\x00\x00\x56\x57\x00\x00\x56\x56\x56\x5d\x56\x55\x56\x5e\x72\x42\x56\x5b\x00\x00\x56\x58\x56\x5c\x56\x5a\x56\x54\x00\x00\x00\x00\x58\xc4\x00\x00\x58\xbe\x75\x71\x58\xc3\x00\x00\x00\x00\x58\xc5\x58\xbf\x00\x00\x58\xc0\x00\x00\x75\x6f\x00\x00\x00\x00\x58\xbd\x00\x00\x75\x70\x58\xc2\x00\x00\x00\x00\x75\x6e\x58\xc1\x00\x00\x00\x00\x5b\x4b\x00\x00\x5b\x4d\x00\x00\x00\x00\x78\xbe\x5b\x4c\x5b\x41\x5b\x45\x00\x00\x5d\x8c\x7c\x71\x78\xc0\x5b\x46\x00\x00\x00\x00\x78\xc3\x78\xc4\x5b\x4a\x00\x00\x78\xc6\x00\x00\x78\xc8\x00\x00\x78\xc9\x78\xbd\x78\xbc\x78\xca\x5b\x49\x78\xc7\x78\xc5\x00\x00\x5b\x47\x5b\x43\x5b\x4e\x78\xc1\x78\xc2\x78\xbf\x00\x00\x5b\x48\x00\x00\x00\x00\x5b\x44\x00\x00\x5b\x42\x7c\x70\x5d\x87\x5d\x82\x00\x00\x00\x00\x5d\x7c\x00\x00\x5d\x8d\x5d\x7d\x00\x00\x5d\x79\x5d\x89\x5d\x86\x5d\x88\x00\x00\x5d\x7e\x5d\x84\x5d\x7a\x5d\x7b\x7c\x78\x7c\x75\x7c\x6d\x7c\x72\x00\x00\x5d\x8a\x7c\x79\x5d\x8b\x5d\x81\x00\x00\x00\x00\x7c\x6f", /* 8a80 */ "\x00\x00\x7c\x77\x7c\x73\x7c\x76\x7c\x74\x5d\x85\x7c\x6e\x5d\x7f\x00\x00\x00\x00\x00\x00\x7f\xb5\x5f\xa1\x5f\xa4\x00\x00\x7f\xb7\x00\x00\x5f\xac\x7f\xb6\x5f\xa6\x00\x00\x61\x98\x7f\xb8\x00\x00\x5f\xab\x7f\xb4\x5f\xad\x00\x00\x00\x00\x00\x00\x5f\xa2\x00\x00\x5d\x83\x5f\xa5\x00\x00\x5f\xa3\x5f\xa7\x5f\xa9\x5f\xa0\x5f\xae\x5f\xaa\x00\x00\x5f\xa8\x7f\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x61\x9f\x00\x00\x61\x9b\x00\x00\x00\x00\x00\x00\x61\xa2\x00\x00\x82\xc0\x61\xa3\x82\xcc\x82\xc5\x61\x94\x82\xcd\x82\xc7\x61\x9e\x82\xc8\x00\x00\x61\x9d\x82\xcb\x61\x97\x82\xc9\x82\xbf\x61\x96\x85\xd4\x61\x9c\x00\x00\x61\x99\x00\x00\x61\xa1\x00\x00\x82\xbe\x00\x00\x82\xc2\x61\x95\x82\xc1\x82\xc3\x82\xc4\x61\xa0\x82\xc6\x82\xca\x82\xce\x00\x00\x61\xa4\x63\x5c\x85\xcf\x85\xd5\x85\xd2\x85\xca\x85\xd6\x85\xcb\x00\x00\x85\xd1\x00\x00\x63\x57\x63\x5d\x85\xd7\x00\x00\x00\x00\x63\x59\x00\x00\x63\x63\x63\x5e\x85\xd9\x85\xd3\x63\x5a\x85\xcc\x63\x64\x85\xcd\x85\xce\x63\x65\x63\x62\x61\x9a\x00\x00\x63\x58\x85\xda\x63\x66\x00\x00\x63\x5f\x85\xd8", /* 8b00 */ "\x63\x5b\x63\x60\x63\x61\x00\x00\x64\xcc\x88\x70\x88\x79\x88\x76\x88\x78\x00\x00\x64\xc9\x88\x71\x00\x00\x88\x77\x64\xc5\x88\x73\x64\xcd\x88\x6f\x88\x74\x88\x7b\x85\xd0\x88\x75\x88\x6e\x64\xc6\x88\x6d\x64\xc7\x88\x7c\x64\xc8\x88\x7a\x64\xcb\x88\x6c\x00\x00\x64\xca\x00\x00\x88\x72\x8a\x6a\x8a\x78\x8a\x73\x8a\x75\x8a\x69\x65\xbd\x00\x00\x8a\x68\x65\xc0\x65\xbf\x00\x00\x8a\x77\x8a\x6f\x8a\x6c\x8a\x72\x00\x00\x8a\x6b\x00\x00\x8a\x6d\x8a\x76\x8a\x74\x00\x00\x65\xbe\x8a\x7b\x8a\x79\x8a\x70\x8a\x7a\x8a\x71\x00\x00\x8c\x49\x66\x9a\x8c\x50\x00\x00\x00\x00\x8e\xbe\x66\xa1\x8a\x6e\x8c\x47\x66\x9d\x8c\x48\x8c\x4d\x00\x00\x00\x00\x66\x9f\x66\xa0\x8c\x46\x8c\x4f\x8c\x51\x8c\x4a\x8c\x4c\x8c\x4e\x8c\x4b\x8c\x52\x66\x9c\x66\xa2\x66\x9e\x00\x00\x66\x9b\x8d\x9f\x00\x00\x67\x62\x8d\x9d\x00\x00\x00\x00\x8d\xa1\x00\x00\x8d\xa2\x67\x60\x8d\xa3\x8d\xa0\x00\x00\x8d\x9e\x67\x63\x67\x5f\x8d\xa4\x00\x00\x67\x61\x67\x5e\x00\x00\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x67\xab\x8e\xbd\x8e\xbc\x8e\xbf\x8e\xc0\x00\x00\x67\xac\x8f\xa6\x8f\xab", /* 8b80 */ "\x67\xf3\x00\x00\x8f\xa8\x00\x00\x8f\xa7\x8f\xaa\x8f\xa9\x00\x00\x90\x73\x00\x00\x68\x68\x90\x72\x90\x70\x00\x00\x90\x71\x00\x00\x00\x00\x00\x00\x68\x8b\x68\x8a\x90\xd0\x90\xd1\x68\x8c\x00\x00\x91\x5e\x91\x5f\x68\xb3\x00\x00\x68\xb9\x00\x00\x91\x99\x91\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc6\x00\x00\x75\x72\x00\x00\x75\x73\x7c\x7a\x7f\xb9\x82\xcf\x64\xcf\x00\x00\x64\xce\x8a\x7c\x8c\x53\x00\x00\x90\x74\x4f\xc7\x72\x43\x56\x5f\x58\xc6\x7c\x7c\x7c\x7b\x61\xa5\x82\xd0\x61\xa6\x88\x7d\x65\xc1\x00\x00\x00\x00\x00\x00\x68\xc2\x4f\xc8\x6c\xeb\x72\x44\x00\x00\x00\x00\x58\xc7\x00\x00\x75\x74\x75\x75\x00\x00\x78\xcb\x00\x00\x5b\x4f\x5d\x8e\x00\x00\x7c\x7e\x7c\x7d\x7c\x7f\x00\x00\x7f\xba\x7f\xbb\x5f\xaf\x63\x67\x61\xa7\x63\x68\x00\x00\x88\x82\x88\x7e\x88\x81\x88\x7f\x64\xd0\x00\x00\x8a\x7d\x8c\x55\x8c\x54\x6b\x45\x56\x61\x56\x60\x72\x45\x00\x00\x75\x76\x00\x00\x00\x00", /* 8c80 */ "\x78\xcd\x78\xcc\x5b\x50\x00\x00\x7c\x82\x7c\x83\x7c\x81\x00\x00\x00\x00\x5d\x90\x5d\x8f\x00\x00\x5f\xb1\x5f\xb0\x00\x00\x82\xd1\x85\xdd\x85\xdb\x85\xdc\x63\x69\x88\x84\x88\x83\x00\x00\x8a\x81\x8a\x7f\x8a\x7e\x8c\x56\x00\x00\x91\x9a\x4f\xc9\x53\xd6\x00\x00\x53\xd7\x56\x62\x56\x63\x72\x47\x72\x46\x75\x77\x00\x00\x58\xcd\x58\xcb\x58\xc8\x58\xcc\x58\xca\x58\xc9\x00\x00\x00\x00\x5b\x51\x78\xd0\x00\x00\x5d\x95\x5b\x53\x5b\x58\x78\xd2\x5b\x5a\x5b\x59\x5b\x5c\x78\xd1\x78\xce\x5b\x56\x5b\x52\x5b\x54\x78\xcf\x5b\x5b\x5b\x57\x5b\x55\x5d\x97\x5d\x96\x5d\x94\x5d\x98\x00\x00\x5d\x92\x5d\x93\x00\x00\x5d\x91\x00\x00\x7c\x84\x00\x00\x00\x00\x7f\xbd\x00\x00\x5f\xb3\x5f\xb4\x5f\xb2\x00\x00\x7f\xbc\x00\x00\x7f\xbe\x00\x00\x82\xd4\x82\xd6\x00\x00\x61\xb0\x82\xd7\x61\xa9\x82\xd3\x61\xa8\x61\xb2\x61\xae\x61\xaf\x61\xab\x82\xd2\x61\xaa\x82\xd8\x82\xd5\x00\x00\x61\xb1\x00\x00\x61\xac\x61\xad\x85\xdf\x00\x00\x85\xe1\x85\xe0\x00\x00\x85\xe2\x63\x6a\x85\xde\x00\x00\x00\x00\x64\xd4\x88\x85\x64\xd1\x64\xd5\x64\xd3\x64\xd2\x8a\x82\x00\x00", /* 8d00 */ "\x8a\x85\x00\x00\x8a\x84\x00\x00\x8a\x83\x65\xc2\x8c\x57\x8c\x58\x66\xa3\x8c\x59\x66\xa4\x00\x00\x00\x00\x67\x65\x00\x00\x67\x64\x8e\xc1\x00\x00\x00\x00\x67\xad\x8e\xc2\x8f\xac\x67\xf4\x67\xf5\x00\x00\x90\x75\x00\x00\x68\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x00\x00\x58\xcf\x58\xce\x7c\x85\x7c\x86\x00\x00\x5f\xb5\x85\xe3\x61\xb3\x85\xe4\x88\x86\x4f\xcb\x00\x00\x6f\x74\x53\xd9\x53\xd8\x00\x00\x72\x48\x56\x64\x72\x49\x75\x7a\x00\x00\x75\x79\x00\x00\x75\x78\x00\x00\x00\x00", /* 8d80 */ "\x78\xd4\x5b\x5f\x00\x00\x00\x00\x78\xd3\x5b\x5e\x00\x00\x00\x00\x00\x00\x78\xd5\x5b\x5d\x00\x00\x7c\x88\x7c\x8b\x7c\x89\x7c\x8a\x7c\x8e\x7c\x87\x7c\x8f\x7c\x8c\x7c\x8d\x5f\xb7\x7f\xbf\x00\x00\x00\x00\x5f\xb6\x00\x00\x82\xdc\x82\xda\x00\x00\x00\x00\x61\xb4\x82\xd9\x82\xdb\x00\x00\x61\xb5\x00\x00\x85\xe5\x00\x00\x85\xe6\x64\xd6\x00\x00\x8c\x5b\x8c\x5d\x8c\x5a\x8c\x5c\x8d\xa5\x8e\xc3\x00\x00\x00\x00\x91\x81\x4f\xcc\x53\xda\x72\x4a\x72\x4c\x72\x4b\x00\x00\x75\x7d\x58\xd1\x00\x00\x75\x7b\x00\x00\x58\xd0\x75\x7e\x00\x00\x75\x7f\x75\x7c\x00\x00\x00\x00\x78\xe1\x5b\x67\x78\xd9\x78\xdf\x00\x00\x00\x00\x5b\x62\x5b\x65\x78\xd8\x5b\x60\x78\xdc\x7c\x95\x5b\x64\x00\x00\x78\xd7\x00\x00\x78\xdd\x78\xda\x78\xe0\x78\xd6\x78\xde\x5b\x63\x5b\x66\x78\xdb\x5b\x61\x00\x00\x5d\x9a\x7c\x91\x5d\x99\x7c\x98\x7c\x97\x5d\xa0\x00\x00\x5d\xa1\x7c\x99\x5d\x9b\x7c\x96\x5d\x9f\x7c\x9b\x7c\x92\x00\x00\x7c\x94\x5d\x9c\x7c\x90\x7c\x93\x7c\x9a\x5d\x9d\x7c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9e\x00\x00\x5f\xb8\x7f\xc4\x7f\xca\x7f\xc2", /* 8e00 */ "\x7f\xcb\x00\x00\x7f\xc1\x7f\xc6\x7f\xcc\x7f\xc9\x7f\xc8\x7f\xc7\x00\x00\x7f\xc0\x7f\xc5\x00\x00\x00\x00\x7f\xc3\x00\x00\x61\xba\x61\xb7\x82\xe5\x82\xea\x82\xec\x82\xe9\x82\xe2\x82\xe4\x82\xee\x82\xeb\x82\xe6\x82\xef\x82\xe3\x82\xed\x61\xb8\x61\xbe\x61\xbc\x82\xdd\x61\xbd\x61\xb9\x82\xde\x82\xe0\x82\xdf\x82\xe7\x82\xe8\x00\x00\x61\xbb\x00\x00\x61\xb6\x00\x00\x00\x00\x82\xe1\x00\x00\x85\xf0\x63\x6c\x00\x00\x85\xe7\x63\x6d\x63\x70\x85\xec\x00\x00\x85\xe9\x63\x6f\x00\x00\x00\x00\x85\xed\x85\xee\x85\xe8\x85\xf1\x85\xea\x85\xef\x63\x6e\x00\x00\x63\x6b\x85\xeb\x00\x00\x88\x8c\x64\xd9\x64\xd7\x64\xda\x64\xd8\x88\x8b\x88\x88\x88\x87\x00\x00\x88\x8a\x00\x00\x00\x00\x88\x89\x8a\x93\x65\xc8\x8a\x8a\x8a\x89\x00\x00\x65\xc3\x8a\x8f\x8a\x8e\x8a\x86\x8a\x91\x8a\x8b\x65\xc7\x8a\x88\x8a\x90\x8a\x87\x65\xc4\x65\xc6\x8a\x8c\x65\xc5\x8a\x8d\x00\x00\x8a\x92\x8c\x61\x00\x00\x66\xa9\x8c\x5e\x00\x00\x8c\x62\x00\x00\x00\x00\x66\xa6\x8c\x60\x66\xab\x00\x00\x66\xa8\x00\x00\x8c\x5f\x00\x00\x66\xaa\x8c\x63\x66\xa5\x00\x00\x00\x00\x00\x00", /* 8e80 */ "\x00\x00\x67\x67\x67\x69\x00\x00\x8d\xa8\x67\x68\x8d\xa6\x66\xa7\x8d\xa7\x67\x66\x67\xae\x67\xb0\x8e\xc5\x67\xaf\x8e\xc4\x00\x00\x8f\xb1\x67\xf6\x8f\xb0\x67\xf7\x8f\xae\x8f\xad\x8f\xb2\x8f\xb3\x90\x76\x00\x00\x8f\xaf\x00\x00\x00\x00\x90\xd5\x90\xd2\x90\xd3\x90\xd4\x68\xa8\x00\x00\x91\x62\x91\x61\x91\x60\x91\x82\x00\x00\x91\xae\x91\x9b\x68\xba\x4f\xcd\x56\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xbf\x00\x00\x00\x00\x85\xf2\x00\x00\x00\x00\x65\xc9\x00\x00\x8c\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x9c\x4f\xce\x51\xd0\x53\xdc\x53\xdb\x00\x00\x56\x68\x00\x00\x72\x4d\x56\x66\x72\x4e\x56\x67\x00\x00\x00\x00\x75\x85\x75\x81\x00\x00\x00\x00\x58\xd2\x75\x84\x75\x83\x75\x82\x58\xd3\x75\x86\x75\x87\x00\x00\x00\x00\x00\x00\x78\xe8\x78\xe6\x78\xea\x78\xeb\x78\xf1\x00\x00\x78\xed\x78\xef\x00\x00\x78\xe7\x78\xe2\x00\x00\x78\xee\x00\x00\x00\x00\x78\xf0\x78\xe9\x78\xec\x78\xe3\x5b\x69\x78\xe5\x78\xe4\x5b\x68\x5b\x6a\x00\x00\x5d\xa5\x7c\x9e", /* 8f00 */ "\x7c\xa0\x7c\x9f\x7c\xa4\x5d\xa3\x00\x00\x7c\xa1\x7c\x9d\x7c\xa2\x7c\xa3\x5d\xa4\x5d\xa6\x7c\xa5\x00\x00\x7f\xd0\x7f\xcf\x00\x00\x7f\xcd\x7f\xce\x5f\xba\x5f\xbc\x5f\xb9\x5f\xbb\x82\xf6\x82\xf7\x82\xf2\x00\x00\x82\xf3\x61\xc1\x61\xc6\x61\xc0\x61\xc7\x61\xc2\x82\xf4\x00\x00\x00\x00\x82\xf5\x82\xf1\x61\xc8\x61\xc4\x00\x00\x00\x00\x61\xc3\x61\xc5\x00\x00\x82\xf0\x00\x00\x85\xf4\x63\x72\x00\x00\x00\x00\x85\xf6\x63\x74\x85\xf9\x85\xf5\x85\xf3\x85\xf8\x63\x73\x85\xf7\x00\x00\x63\x71\x00\x00\x00\x00\x64\xdc\x64\xdf\x88\x8e\x00\x00\x64\xdd\x88\x8d\x64\xdb\x64\xde\x8a\x94\x8a\x95\x8a\x96\x65\xca\x00\x00\x8a\x97\x00\x00\x65\xcb\x66\xad\x8c\x67\x8c\x68\x8c\x66\x8c\x65\x8c\x69\x66\xac\x8d\xac\x8d\xaa\x8d\xab\x8d\xad\x8d\xa9\x8d\xae\x8e\xc7\x00\x00\x8e\xc8\x8e\xc6\x67\xb1\x8f\xb4\x67\xf8\x8f\xb5\x90\x78\x90\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcf\x5b\x6b\x00\x00\x00\x00\x5d\xa7\x00\x00\x00\x00\x00\x00\x5f\xbd\x00\x00\x00\x00\x63\x76\x00\x00\x63\x75\x00\x00\x00\x00\x00\x00\x00\x00\x66\xae\x67\x49\x67\xb2\x4f\xd0\x56\x69\x5d\xa8\x00\x00\x8c\x6a\x48\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x47\x00\x00\x00\x00\x4f\xd1\x00\x00\x4f\xd4\x4f\xd3\x4f\xd2\x00\x00\x00\x00\x6b\x46\x00\x00\x6c\xed\x00\x00\x6c\xef\x51\xd1\x00\x00\x00\x00\x51\xd3\x6c\xec\x6c\xee\x51\xd2\x6c\xf1\x6c\xf0\x6c\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x78\x6f\x76\x53\xdf\x6f\x75\x53\xe4\x53\xe1\x53\xde\x00\x00\x53\xe5\x00\x00\x53\xe0\x53\xe3\x00\x00\x53\xe2\x6f\x77\x00\x00\x53\xdd\x00\x00\x00\x00\x00\x00\x56\x6f\x72\x50\x72\x56\x56\x6c\x56\x73\x00\x00\x56\x6e\x72\x53\x72\x55\x56\x71\x72\x4f\x72\x52", /* 9000 */ "\x56\x6d\x56\x6a\x72\x51\x56\x70\x72\x54\x56\x72\x56\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x75\x89\x75\x8c\x58\xd5\x00\x00\x58\xdf\x58\xdb\x75\x8a\x00\x00\x00\x00\x58\xe3\x58\xdc\x58\xe1\x58\xd7\x00\x00\x58\xd4\x58\xd6\x58\xe2\x75\x8b\x58\xda\x58\xdd\x58\xd9\x58\xde\x75\x8d\x58\xe0\x58\xd8\x75\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xf2\x5b\x6c\x78\xf4\x00\x00\x5b\x6e\x5b\x70\x00\x00\x78\xf3\x5b\x6d\x5b\x71\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x5d\xae\x7c\xaa\x5d\xb6\x7c\xa7\x00\x00\x5d\xb7\x5d\xac\x00\x00\x7c\xa8\x00\x00\x00\x00\x5d\xb1\x00\x00\x7c\xa9\x5d\xaa\x5d\xa9\x00\x00\x5d\xb4\x5d\xb3\x5d\xb2\x5d\xb0\x5d\xb5\x7c\xa6\x5d\xab\x5d\xad\x5d\xaf\x00\x00\x00\x00\x5f\xbf\x5f\xc2\x00\x00\x5f\xc6\x5f\xc0\x5f\xc5\x5f\xc3\x00\x00\x5f\xbe\x00\x00\x5f\xc4\x5f\xc1\x00\x00\x00\x00\x00\x00\x82\xfb\x61\xcb\x61\xc9\x00\x00\x82\xfc\x00\x00\x61\xcc\x61\xca\x82\xfa\x82\xf9\x00\x00\x63\x7a\x82\xf8\x63\x78\x63\x77\x85\xfa\x61\xcd\x63\x79\x85\xfb\x63\x7c\x85\xfc\x63\x7b\x64\xe1\x88\x90\x64\xe0", /* 9080 */ "\x64\xe5\x64\xe3\x64\xe4\x65\xcd\x64\xe2\x88\x8f\x85\xfd\x65\xcc\x65\xce\x00\x00\x66\xaf\x66\xb0\x00\x00\x8d\xaf\x00\x00\x68\x6a\x68\x69\x4f\xd6\x00\x00\x00\x00\x69\xf4\x56\x74\x00\x00\x69\xf1\x69\xf2\x69\xf0\x00\x00\x69\xf3\x00\x00\x00\x00\x6b\x4b\x6b\x48\x6b\x4d\x6b\x49\x4f\xd7\x4f\xda\x00\x00\x6b\x4a\x4f\xd9\x6b\x4c\x00\x00\x00\x00\x4f\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xf5\x6c\xf7\x51\xd6\x6c\xf3\x6c\xf6\x6c\xf4\x51\xd4\x51\xd7\x00\x00\x51\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x7a\x6f\x7e\x6f\x7b\x00\x00\x53\xe8\x00\x00\x53\xe9\x00\x00\x6f\x7d\x00\x00\x6f\x7f\x6f\x82\x00\x00\x53\xe6\x6f\x81\x00\x00\x00\x00\x53\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x94\x6f\x7c\x72\x57\x72\x60\x72\x5e\x72\x59\x72\x5a\x72\x5f\x72\x61\x56\x76\x00\x00\x72\x5c\x72\x58\x56\x75\x56\x77\x72\x5b\x72\x62\x72\x5d\x00\x00\x00\x00\x58\xe4\x75\x97\x75\x8f\x75\x95\x75\x96\x58\xe5\x00\x00\x75\x8e\x75\x90\x6f\x79\x75\x92\x75\x93\x75\x91\x5b\x73\x00\x00\x00\x00\x00\x00\x78\xfb\x86\x41\x78\xfc\x78\xf9\x58\xe6\x5b\x75\x78\xf8", /* 9100 */ "\x79\x41\x78\xfd\x5b\x72\x79\x44\x78\xf7\x79\x43\x78\xf5\x79\x42\x78\xfa\x5b\x74\x00\x00\x7c\xb1\x00\x00\x7c\xac\x7c\xb2\x7c\xad\x7c\xab\x7c\xae\x5d\xb8\x00\x00\x7c\xb0\x00\x00\x7c\xaf\x5d\xb9\x5f\xc8\x5f\xc7\x7f\xd7\x7f\xda\x7f\xd2\x7f\xd6\x5f\xc9\x7f\xd5\x7f\xd3\x7f\xd9\x7f\xd4\x7f\xd1\x7f\xd8\x00\x00\x83\x45\x61\xd0\x8a\x98\x83\x42\x83\x43\x83\x41\x78\xf6\x61\xcf\x83\x46\x82\xfd\x61\xce\x61\xd1\x83\x44\x86\x42\x63\x7d\x86\x43\x86\x44\x00\x00\x88\x91\x64\xe6\x8a\x99\x8a\x9a\x00\x00\x00\x00\x8a\x9b\x8c\x6c\x8c\x6b\x8d\xb1\x00\x00\x8d\xb0\x8e\xca\x8e\xcb\x8e\xc9\x8f\xb6\x67\xf9\x4f\xdb\x53\xeb\x53\xea\x56\x7a\x56\x79\x72\x64\x72\x65\x72\x63\x00\x00\x56\x78\x75\x9b\x00\x00\x75\x9c\x75\x98\x58\xe7\x75\x99\x00\x00\x75\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x79\x47\x79\x49\x79\x45\x79\x48\x5b\x76\x79\x46\x5b\x77\x00\x00\x00\x00\x79\xf9\x5d\xbc\x5d\xbb\x00\x00\x5d\xba\x00\x00\x7c\xb3\x7c\xb4\x00\x00\x00\x00\x7f\xdc\x7f\xde\x5f\xcd\x5f\xca\x00\x00\x5f\xcc\x5f\xcb\x7f\xdd\x7f\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9180 */ "\x83\x4d\x83\x4a\x83\x4b\x61\xd5\x83\x4c\x83\x47\x83\x48\x61\xd2\x00\x00\x61\xd3\x83\x49\x61\xd4\x00\x00\x86\x48\x00\x00\x86\x49\x86\x46\x86\x47\x63\x7e\x86\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x95\x88\x92\x88\x94\x64\xe9\x88\x98\x64\xe8\x88\x96\x88\x99\x88\x97\x88\x93\x64\xe7\x00\x00\x8a\x9d\x00\x00\x8a\x9e\x8a\x9c\x00\x00\x8a\xa0\x65\xcf\x65\xd0\x8c\x6e\x66\xb2\x8a\x9f\x8c\x6d\x66\xb1\x8d\xb4\x8d\xb5\x67\x6a\x8d\xb3\x00\x00\x8d\xb2\x00\x00\x8e\xcc\x67\xb3\x00\x00\x90\x79\x90\xd7\x90\xd6\x00\x00\x68\x8f\x68\xa9\x90\xd8\x91\x83\x00\x00\x68\xbb\x4f\xdc\x51\xd8\x00\x00\x5d\xbd\x00\x00\x67\x6b\x4f\xdd\x53\xec\x58\xe8\x5b\x78\x65\xd1\x51\xd9\x00\x00\x6f\x84\x6f\x83\x72\x66\x00\x00\x56\x7d\x56\x7b\x56\x7f\x72\x68\x00\x00\x56\x7e\x56\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x72\x67\x58\xeb\x75\xa2\x00\x00\x58\xea\x58\xec\x75\xa7\x58\xee\x75\xa4\x75\xa5\x75\x9d\x58\xed\x75\xa8\x00\x00\x00\x00\x75\x9f\x00\x00\x75\xa0\x75\x9e\x58\xe9\x00\x00\x75\xa6\x75\xa1\x75\xa3\x00\x00\x00\x00\x00\x00\x79\x55\x00\x00\x79\x54", /* 9200 */ "\x79\x52\x79\x4a\x79\x59\x79\x4d\x79\x57\x79\x5e\x79\x56\x5b\x81\x00\x00\x5b\x7c\x79\x4b\x00\x00\x79\x51\x5b\x7e\x00\x00\x79\x50\x5b\x7f\x5b\x82\x79\x53\x00\x00\x5b\x79\x5b\x7a\x79\x5f\x79\x5d\x00\x00\x79\x5c\x79\x4e\x00\x00\x79\x5a\x00\x00\x5b\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x7b\x79\x5b\x79\x4c\x79\x4f\x79\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x44\x7c\xbe\x00\x00\x7c\xb7\x7c\xca\x7c\xd3\x7c\xba\x5d\xc8\x00\x00\x7c\xc7\x5d\xbe\x5d\xc0\x5d\xcc\x7c\xb8\x00\x00\x00\x00\x5d\xc1\x5d\xc3\x5d\xcd\x5d\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xcb\x7c\xc0\x00\x00\x7c\xb5\x5d\xc9\x7c\xbf\x5d\xc5\x7c\xd1\x5d\xca\x7c\xcf\x7c\xc3\x7c\xcd\x5d\xc7\x7c\xb6\x7c\xd0\x7c\xcb\x00\x00\x7c\xd2\x5d\xbf\x00\x00\x00\x00\x5d\xce\x5d\xc4\x00\x00\x00\x00\x7c\xbc\x00\x00\x7c\xc4\x7c\xc8\x00\x00\x7c\xcc\x5d\xc6\x7c\xbb\x7c\xb9\x7c\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x7c\xc2\x7c\xc1\x00\x00\x7c\xc6\x7c\xc9\x00\x00\x7c\xce\x00\x00\x00\x00\x00\x00\x7f\xe1\x00\x00\x5f\xce\x7f\xeb\x7f\xe3\x5f\xd3\x5f\xd7\x7f\xf4\x7f\xfc\x7f\xed", /* 9280 */ "\x5f\xcf\x00\x00\x7f\xf1\x7c\xbd\x00\x00\x5f\xd0\x7f\xf8\x7f\xfd\x7f\xf5\x00\x00\x7f\xf7\x80\x43\x7f\xf9\x7f\xe7\x7f\xf0\x00\x00\x00\x00\x5f\xd8\x00\x00\x5f\xd4\x7f\xe5\x7f\xf2\x5f\xd2\x7f\xec\x5f\xd1\x7f\xfa\x7f\xe9\x7f\xe2\x5f\xd5\x80\x42\x00\x00\x00\x00\x7f\xe4\x7f\xf6\x7f\xf3\x7f\xee\x7f\xe0\x7f\xdf\x7f\xe8\x7f\xfb\x5f\xd6\x80\x41\x7f\xe6\x7f\xea\x61\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe2\x61\xdd\x83\x6e\x83\x6b\x83\x53\x61\xd8\x00\x00\x00\x00\x00\x00\x61\xd7\x61\xde\x00\x00\x00\x00\x00\x00\x83\x51\x61\xdc\x83\x5d\x83\x4f\x83\x50\x61\xd6\x83\x6d\x61\xe0\x83\x60\x83\x65\x83\x5f\x86\x5b\x83\x5b\x83\x63\x83\x61\x83\x54\x83\x4e\x83\x69\x61\xdf\x83\x6a\x00\x00\x83\x64\x00\x00\x83\x59\x83\x57\x83\x52\x00\x00\x00\x00\x00\x00\x83\x5a\x83\x67\x83\x56\x83\x66\x83\x6c\x00\x00\x00\x00\x61\xdb\x00\x00\x83\x62\x83\x68\x83\x5e\x83\x58\x61\xd9\x00\x00\x00\x00\x00\x00\x7f\xef\x83\x5c\x61\xe1\x83\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x61\x63\x82\x86\x60\x86\x5d\x86\x70\x63\x86\x00\x00\x86\x6d\x86\x65", /* 9300 */ "\x86\x6f\x86\x56\x86\x63\x00\x00\x63\x88\x00\x00\x86\x4e\x00\x00\x86\x4c\x86\x6e\x00\x00\x86\x6c\x86\x6b\x86\x5a\x86\x59\x86\x4f\x63\x8a\x00\x00\x86\x55\x86\x5f\x86\x6a\x63\x8d\x86\x71\x00\x00\x64\xf1\x63\x8f\x63\x89\x86\x53\x00\x00\x86\x5c\x86\x4b\x86\x4d\x63\x7f\x63\x8c\x63\x85\x86\x54\x86\x64\x86\x5e\x63\x8b\x86\x4a\x64\xec\x86\x66\x86\x69\x63\x87\x00\x00\x86\x58\x63\x8e\x63\x84\x00\x00\x00\x00\x00\x00\x63\x83\x86\x62\x86\x68\x63\x81\x00\x00\x86\x51\x86\x67\x00\x00\x00\x00\x86\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x57\x88\x9f\x00\x00\x88\xa4\x64\xee\x64\xf0\x88\xaa\x64\xea\x88\xb9\x88\xb0\x88\xa5\x88\xa6\x88\xaf\x00\x00\x64\xf7\x88\xae\x88\x9e\x88\xad\x88\xa1\x88\xba\x64\xf6\x64\xf4\x88\xa2\x00\x00\x88\xb5\x00\x00\x88\xa7\x88\xb4\x00\x00\x88\xb6\x88\x9d\x64\xef\x00\x00\x88\xb7\x00\x00\x00\x00\x88\xab\x00\x00\x64\xf3\x88\xa8\x00\x00\x00\x00\x64\xf5\x88\xb1\x00\x00\x00\x00\x00\x00\x64\xed\x88\xa3\x88\xb2\x00\x00\x88\xac\x86\x50\x88\xb3\x88\xa0\x00\x00\x64\xf2\x00\x00", /* 9380 */ "\x88\xb8\x00\x00\x64\xeb\x88\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xae\x8a\xa7\x65\xd3\x00\x00\x8a\xa2\x8a\xb1\x8a\xa9\x88\xa9\x00\x00\x8a\xb3\x8a\xa3\x00\x00\x65\xd2\x8a\xad\x65\xd4\x65\xdc\x65\xda\x8a\xaf\x65\xdb\x8a\xa5\x00\x00\x8a\xa6\x8a\xab\x8a\xb0\x00\x00\x88\x9a\x65\xd5\x8a\xb8\x8a\xb5\x8a\xb9\x8a\xac\x8a\xa8\x8a\xb6\x8c\x79\x8a\xaa\x00\x00\x65\xd8\x00\x00\x65\xd7\x88\x9c\x65\xd9\x8a\xb2\x8a\xb4\x65\xd6\x8a\xb7\x8a\xa1\x00\x00\x8a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x83\x00\x00\x8c\x72\x66\xb6\x8c\x81\x00\x00\x00\x00\x8c\x70\x66\xb7\x00\x00\x8c\x7b\x00\x00\x8c\x77\x66\xbc\x8c\x82\x8c\x71\x8c\x74\x66\xb4\x8c\x84\x00\x00\x8c\x7c\x8c\x7f\x66\xba\x66\xbf\x66\xbd\x8c\x78\x8c\x73\x00\x00\x66\xb8\x66\xb9\x8c\x6f\x66\xb5\x00\x00\x66\xb3\x66\xbb\x8c\x7e\x66\xbe\x00\x00\x8c\x7a\x8c\x85\x66\xc0\x00\x00\x00\x00\x00\x00\x8c\x76\x00\x00\x8c\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xc2\x8d\xd0\x8d\xc4\x8d\xcb\x8c\x75\x8d\xc9\x8d\xb8\x8d\xce\x67\x6e\x8d\xbc\x8d\xcd", /* 9400 */ "\x8d\xc3\x00\x00\x00\x00\x67\x6d\x00\x00\x00\x00\x8d\xd2\x8d\xc5\x00\x00\x8d\xca\x8d\xcc\x8d\xb6\x8d\xcf\x8d\xc1\x8d\xc6\x8d\xba\x8d\xbe\x8d\xd1\x8d\xc8\x8d\xb7\x8d\xbb\x8d\xbd\x8d\xc7\x00\x00\x67\x6c\x8d\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbf\x8e\xd0\x8e\xd5\x67\xba\x8e\xd7\x00\x00\x67\xb4\x00\x00\x8e\xd3\x8e\xd9\x67\xb9\x67\xb5\x00\x00\x67\xb6\x8e\xcf\x8e\xd6\x67\xb8\x8e\xd4\x67\xb7\x8e\xce\x8e\xd2\x8e\xd1\x00\x00\x8e\xcd\x8e\xd8\x00\x00\x00\x00\x00\x00\x67\xfa\x8f\xbd\x8f\xc0\x8f\xbc\x8f\xbe\x8f\xbf\x8f\xb9\x8f\xba\x8f\xb7\x00\x00\x00\x00\x8f\xbb\x8f\xb8\x67\xfb\x67\xfc\x00\x00\x00\x00\x90\x7b\x00\x00\x90\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x7c\x90\x7e\x00\x00\x68\x6c\x00\x00\x90\x7a\x68\x6b\x68\x6d\x00\x00\x00\x00\x00\x00\x90\xda\x90\xdb\x68\x90\x90\xd9\x00\x00\x91\x64\x91\x63\x91\x65\x68\xab\x91\x66\x68\xaa\x91\x67\x91\x84\x91\x87\x91\x86\x68\xb4\x91\x85\x00\x00\x00\x00\x00\x00\x68\xbe\x68\xbc\x68\xbd\x68\xc3", /* 9480 */ "\x91\xb0\x91\xb1\x91\xaf\x91\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xda\x00\x00\x00\x00\x75\xa9\x79\x60\x83\x6f\x8c\x86\x00\x00\x00\x00", /* 9580 */ "\x51\xdb\x00\x00\x53\xed\x56\x81\x00\x00\x00\x00\x75\xaa\x00\x00\x75\xab\x58\xef\x00\x00\x5b\x85\x79\x62\x79\x61\x5b\x89\x5b\x84\x79\x63\x5b\x86\x5b\x88\x5b\x87\x5b\x83\x00\x00\x00\x00\x00\x00\x5d\xcf\x00\x00\x00\x00\x7c\xd7\x7c\xd5\x00\x00\x7c\xd6\x7c\xd4\x00\x00\x5f\xd9\x00\x00\x5f\xdc\x5f\xde\x5f\xdd\x00\x00\x00\x00\x5f\xda\x5f\xdb\x00\x00\x83\x71\x83\x70\x61\xe3\x83\x72\x00\x00\x83\x73\x61\xe4\x00\x00\x00\x00\x00\x00\x86\x79\x86\x77\x88\xc0\x00\x00\x86\x75\x86\x76\x63\x90\x86\x72\x86\x7a\x86\x74\x86\x78\x88\xbc\x00\x00\x00\x00\x88\xbe\x00\x00\x88\xbf\x64\xfc\x88\xbb\x64\xfb\x88\xbd\x64\xf8\x64\xf9\x64\xfa\x86\x73\x00\x00\x00\x00\x65\xdf\x8a\xbc\x8a\xba\x8a\xbb\x65\xdd\x65\xe0\x65\xde\x00\x00\x00\x00\x00\x00\x8c\x87\x8c\x88\x66\xc1\x00\x00\x8d\xd3\x8d\xd5\x8d\xd4\x67\x6f\x67\xbb\x8e\xdc\x8e\xdb\x8e\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x69\x8a\x00\x00\x69\xf7\x4e\x8b\x69\xf5\x69\xf8\x69\xf6\x00\x00\x00\x00\x00\x00\x6b\x4f\x00\x00\x4f\xe1\x00\x00\x4f\xe2\x6b\x51\x4f\xdf\x6b\x50\x6b\x4e\x4f\xe0\x4f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xf8\x6c\xfb\x51\xdf\x6c\xfa\x6c\xf9\x00\x00\x51\xde\x51\xdd\x00\x00\x51\xe1\x6c\xfc\x51\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x89\x53\xef\x53\xf0\x53\xf1\x6f\x8a\x6f\x86\x53\xee\x6f\x87\x00\x00\x6f\x88\x6f\x85\x00\x00\x00\x00\x00\x00\x56\x88\x00\x00\x00\x00\x56\x85\x72\x69\x56\x86\x56\x89\x72\x6a\x00\x00\x56\x84\x56\x82\x56\x83\x56\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf0\x75\xae\x58\xf8\x75\xad\x00\x00\x75\xb0\x58\xf4\x75\xaf\x5b\x91\x58\xf2\x58\xf5\x58\xf1\x58\xf6\x58\xf7\x58\xf3\x00\x00\x00\x00\x00\x00\x75\xac\x5b\x8d\x79\x65\x00\x00", /* 9680 */ "\x79\x69\x00\x00\x00\x00\x79\x68\x5b\x92\x5b\x8e\x5b\x8f\x79\x64\x79\x66\x79\x67\x5b\x8a\x5b\x8c\x00\x00\x5b\x90\x5b\x8b\x00\x00\x00\x00\x7c\xda\x7c\xd8\x7c\xd9\x5d\xd1\x5d\xd2\x00\x00\x7c\xdb\x5d\xd0\x5f\xdf\x00\x00\x5f\xe1\x5f\xe0\x00\x00\x80\x45\x00\x00\x00\x00\x80\x46\x83\x75\x00\x00\x83\x74\x00\x00\x00\x00\x63\x91\x63\x92\x86\x7b\x63\x93\x00\x00\x88\xc3\x00\x00\x88\xc1\x00\x00\x88\xc2\x64\xfd\x00\x00\x8a\xbd\x66\xc2\x00\x00\x48\xeb\x00\x00\x65\x41\x51\xe2\x00\x00\x56\x8a\x72\x6b\x00\x00\x00\x00\x75\xb1\x58\xf9\x5b\x93\x79\x6a\x79\x6c\x5b\x95\x5b\x94\x5b\x96\x5b\x97\x79\x6b\x5d\xd5\x5d\xd6\x5d\xd4\x5f\xe2\x5d\xd3\x7c\xdc\x00\x00\x00\x00\x00\x00\x5f\xe3\x83\x76\x86\x7c\x63\x94\x65\x42\x8a\xbe\x8a\xc2\x65\xe3\x8a\xbf\x65\xe4\x65\xe2\x8a\xc3\x65\xe5\x8a\xc1\x00\x00\x8c\x89\x65\xe1\x66\xc3\x00\x00\x90\xdc\x00\x00\x00\x00\x51\xe3\x58\xfb\x58\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x98\x79\x6e\x79\x6d\x5b\x99\x00\x00\x00\x00\x7c\xe0\x5d\xda\x5d\xd7\x7c\xdf\x5d\xd9\x7c\xdd\x5d\xd8\x00\x00\x7c\xde\x00\x00\x80\x47", /* 9700 */ "\x5f\xe4\x00\x00\x83\x79\x00\x00\x61\xe5\x83\x77\x61\xe6\x61\xe7\x83\x78\x61\xe8\x00\x00\x86\x7d\x00\x00\x63\x98\x63\x95\x63\x9a\x86\x7f\x63\x96\x86\x7e\x63\x99\x00\x00\x00\x00\x63\x97\x00\x00\x88\xc6\x88\xc8\x00\x00\x00\x00\x65\x43\x88\xc7\x65\x44\x88\xc5\x88\xc4\x00\x00\x8a\xc5\x8a\xc4\x65\xe6\x8a\xc6\x8c\x8e\x66\xc5\x8c\x8d\x8c\x8a\x66\xc4\x8c\x8b\x8c\x8c\x00\x00\x8d\xd6\x8d\xd7\x67\x70\x00\x00\x67\xbe\x00\x00\x00\x00\x8e\xdd\x00\x00\x00\x00\x67\xbc\x67\xbd\x8e\xde\x00\x00\x00\x00\x67\xfd\x68\x41\x8f\xc1\x00\x00\x00\x00\x68\x91\x90\xde\x68\x93\x00\x00\x90\xdd\x90\xdf\x68\x92\x91\x68\x00\x00\x91\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe4\x00\x00\x00\x00\x00\x00\x5d\xdb\x00\x00\x80\x48\x00\x00\x83\x7a\x63\x9b\x63\x9c\x00\x00\x51\xe5\x00\x00\x61\xe9\x66\xc6\x53\xf2\x00\x00\x00\x00\x00\x00\x63\x9d\x00\x00\x68\x6e\x53\xf3\x75\xb2\x00\x00\x79\x6f\x00\x00\x79\x71\x00\x00\x79\x70\x00\x00\x7c\xe4\x7c\xe1\x5d\xdc\x00\x00\x5d\xdd\x7c\xe2\x7c\xe3\x00\x00\x80\x4a\x80\x4f\x5f\xe5\x80\x49\x80\x4b\x80\x52", /* 9780 */ "\x80\x4d\x80\x51\x80\x4e\x80\x4c\x80\x50\x5f\xe6\x00\x00\x00\x00\x83\x7d\x00\x00\x83\x7b\x61\xeb\x00\x00\x61\xea\x83\x7c\x61\xec\x00\x00\x00\x00\x00\x00\x00\x00\x86\x83\x00\x00\x00\x00\x86\x82\x63\x9e\x86\x81\x88\xc9\x00\x00\x88\xcb\x88\xcd\x88\xcc\x00\x00\x65\x45\x88\xca\x8a\xcd\x65\xe7\x8a\xcb\x8a\xce\x65\xe8\x00\x00\x8a\xc9\x00\x00\x8a\xcc\x8a\xca\x8a\xc7\x65\xe9\x8a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x8f\x00\x00\x00\x00\x8c\x91\x8c\x90\x00\x00\x8d\xd8\x00\x00\x8d\xd9\x00\x00\x00\x00\x00\x00\x8e\xdf\x00\x00\x68\x43\x00\x00\x68\x42\x90\x7f\x90\x81\x68\x94\x90\xe0\x00\x00\x68\xb5\x00\x00\x53\xf4\x5b\x9a\x80\x54\x80\x53\x83\x7f\x83\x7e\x00\x00\x00\x00\x65\x46\x88\xcf\x88\xce\x8a\xd1\x8a\xcf\x8a\xd2\x8a\xd0\x00\x00\x00\x00\x66\xc7\x8c\x92\x8c\x93\x8c\x94\x00\x00\x8e\xe0\x00\x00\x8f\xc2\x00\x00\x90\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf5\x00\x00\x00\x00\x86\x84\x88\xd0\x00\x00\x53\xf6\x00\x00\x00\x00\x5f\xe7\x00\x00\x86\x85\x65\xea\x8a\xd3\x66\xc8\x00\x00\x8d\xda\x8d\xdb\x67\xbf", /* 9800 */ "\x90\x82\x53\xf7\x59\x41\x59\x42\x75\xb3\x5b\x9b\x5b\x9c\x79\x72\x5b\x9d\x00\x00\x5d\xe1\x00\x00\x5d\xe3\x7c\xe6\x7c\xe7\x7c\xe5\x5d\xde\x5d\xdf\x5d\xe2\x5d\xe0\x00\x00\x00\x00\x80\x55\x5f\xe8\x5f\xe9\x00\x00\x00\x00\x83\x87\x61\xef\x83\x82\x83\x81\x00\x00\x83\x86\x61\xed\x00\x00\x00\x00\x63\xa5\x00\x00\x83\x83\x83\x88\x83\x85\x83\x84\x00\x00\x61\xee\x00\x00\x63\xa3\x00\x00\x86\x87\x63\x9f\x00\x00\x86\x88\x00\x00\x00\x00\x86\x86\x00\x00\x63\xa2\x63\xa0\x63\xa4\x00\x00\x63\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\xd1\x00\x00\x88\xd6\x88\xd2\x88\xd5\x65\x47\x00\x00\x87\xc0\x88\xd4\x88\xd3\x00\x00\x65\xed\x65\xeb\x65\xee\x65\xec\x8a\xd4\x8a\xd5\x8a\xd6\x65\xef\x00\x00\x00\x00\x00\x00\x8c\x98\x66\xca\x8c\x96\x00\x00\x66\xcb\x8c\x95\x8c\x97\x66\xc9\x8d\xdf\x8d\xdc\x00\x00\x8d\xdd\x8d\xde\x8e\xe1\x67\xc1\x00\x00\x67\xc0\x00\x00\x8f\xc4\x8f\xc3\x68\x44\x00\x00\x00\x00\x00\x00\x68\x6f\x68\x95\x68\xac\x91\x69\x91\x9e\x91\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf8\x79\x73\x00\x00\x00\x00\x7c\xe8\x80\x56\x80\x57\x5f\xea\x00\x00\x5f\xeb\x83\x89\x61\xf0\x00\x00\x00\x00\x65\x48\x00\x00\x8a\xd7\x00\x00\x65\xf0\x8c\x9b\x66\xcc\x8c\x9a\x8c\x9c\x8c\x99\x8e\xe4\x8d\xe0\x8d\xe1\x00\x00\x67\x71\x00\x00\x8e\xe3\x00\x00\x00\x00\x8e\xe2\x00\x00\x8f\xc5\x91\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf9\x00\x00\x00\x00\x00\x00\x53\xfa\x00\x00\x00\x00\x56\x8b\x72\x6c\x00\x00\x75\xb4\x00\x00\x5b\x9e\x00\x00\x5b\xa1\x5b\x9f\x79\x74\x00\x00\x5b\xa3\x00\x00\x5b\xa0\x00\x00\x00\x00\x5b\xa2\x00\x00\x5d\xe5\x00\x00\x7c\xe9\x00\x00\x00\x00\x7c\xea\x83\x8b\x00\x00\x5d\xe4\x5d\xe6\x5d\xe7\x00\x00", /* 9900 */ "\x80\x59\x00\x00\x80\x58\x5f\xec\x00\x00\x5f\xed\x00\x00\x80\x5a\x83\x8a\x5f\xef\x61\xf1\x00\x00\x5f\xee\x00\x00\x00\x00\x00\x00\x63\xa6\x83\x8c\x61\xf3\x61\xf2\x83\x8d\x83\x90\x83\x8e\x83\x8f\x61\xf4\x00\x00\x63\xab\x63\xa9\x00\x00\x00\x00\x63\xa8\x86\x8a\x00\x00\x63\xaa\x00\x00\x00\x00\x86\x89\x88\xd7\x00\x00\x86\x8b\x63\xa7\x86\x8c\x88\xda\x88\xd8\x88\xd9\x88\xde\x65\xf4\x88\xdd\x88\xe0\x88\xdf\x88\xdc\x88\xdb\x00\x00\x65\x49\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xda\x00\x00\x8a\xd9\x65\xf3\x65\xf1\x65\xf2\x00\x00\x8a\xd8\x00\x00\x8c\x9f\x00\x00\x66\xcd\x00\x00\x8c\x9e\x8c\x9d\x66\xce\x00\x00\x8d\xe6\x8d\xe5\x00\x00\x8d\xe3\x00\x00\x8d\xe2\x67\x73\x67\x72\x8d\xe7\x8f\xc6\x68\x45\x8e\xe6\x67\xc2\x8e\xe5\x8d\xe4\x00\x00\x8f\xc7\x68\x70\x00\x00\x68\xad\x91\x6a\x00\x00\x91\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xfb\x75\xb5\x88\xe1\x53\xfc\x00\x00\x00\x00\x80\x5c\x80\x5b\x86\x8d\x00\x00\x00\x00\x88\xe3\x00\x00\x88\xe2\x00\x00\x65\xf5\x8c\xa0\x8c\xa1\x67\x74\x00\x00\x00\x00\x91\xa2\x56\x8c\x5b\xa5\x5b\xa4\x7c\xeb\x7c\xed\x5d\xe9\x7c\xec\x5d\xe8\x5d\xea\x7c\xee\x00\x00\x00\x00\x00\x00\x80\x5e\x80\x60\x80\x5f\x00\x00\x80\x62\x00\x00\x00\x00\x00\x00\x5f\xf0\x80\x61\x80\x5d\x00\x00\x00\x00\x00\x00\x80\x63\x00\x00\x83\x97\x00\x00\x83\x9a\x83\x9c\x83\x92\x83\x96\x83\x93\x61\xf6\x61\xf9\x61\xfb\x83\x94\x83\x95\x61\xfa\x83\x98\x83\x9b\x83\x99\x61\xfc\x00\x00\x61\xf8\x83\x91\x61\xf5\x00\x00\x61\xf7\x00\x00\x00\x00\x63\xad\x86\x93\x86\x91\x86\x90\x00\x00\x86\x96\x00\x00\x86\x95\x86\x94\x00\x00\x86\x8f\x63\xac\x86\x8e\x00\x00\x86\x92\x63\xae\x00\x00\x00\x00\x88\xe6\x00\x00\x88\xea\x88\xe7\x88\xe9\x88\xe8\x88\xe5\x88\xeb\x88\xee\x88\xec\x88\xed\x65\x4b", /* 9a00 */ "\x00\x00\x65\x4a\x88\xe4\x88\xef\x8a\xdf\x8a\xe2\x8a\xe4\x8a\xe3\x00\x00\x8a\xdd\x8a\xe1\x8a\xdc\x00\x00\x8a\xde\x65\xf6\x8a\xdb\x00\x00\x8a\xe0\x00\x00\x00\x00\x8c\xae\x8c\xa3\x66\xcf\x00\x00\x00\x00\x66\xd0\x8c\xa2\x8c\xa7\x8c\xad\x8c\xa5\x8c\xac\x00\x00\x8c\xa9\x00\x00\x8c\xa8\x8c\xab\x8c\xa6\x8c\xa4\x00\x00\x8c\xaa\x00\x00\x8d\xee\x8d\xec\x67\x75\x8d\xeb\x8d\xf1\x8d\xef\x00\x00\x67\x76\x8d\xea\x8d\xe8\x00\x00\x8d\xe9\x67\x78\x8d\xed\x67\x77\x8d\xf0\x8e\xe7\x8e\xed\x00\x00\x00\x00\x8e\xe8\x67\xc6\x8e\xee\x67\xc5\x8e\xec\x8e\xeb\x67\xc4\x8e\xea\x67\xc3\x8e\xe9\x00\x00\x8f\xcd\x8f\xcf\x8f\xce\x00\x00\x8f\xcb\x68\x47\x8f\xc8\x8f\xcc\x8f\xd1\x00\x00\x8f\xd0\x8f\xc9\x8f\xca\x68\x46\x90\x83\x68\x73\x00\x00\x90\x84\x68\x71\x68\x72\x00\x00\x00\x00\x90\xe2\x68\x96\x91\x88\x00\x00\x68\xb6\x00\x00\x91\xa3\x68\xb7\x91\xa4\x91\xa5\x91\xb3\x91\xb2\x68\xc6\x91\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8d\x00\x00\x00\x00\x7c\xf0\x00\x00\x7c\xef\x00\x00\x5f\xf1\x5f\xf2\x80\x64\x00\x00\x83\x9d\x86\x99\x00\x00\x00\x00\x61\xfd\x63\xaf\x86\x97\x00\x00\x86\x9a\x63\xb0\x00\x00\x88\xf0\x86\x98\x8a\xe5\x65\xf7\x8c\xaf\x00\x00\x00\x00\x00\x00\x8d\xf4\x8d\xf2\x00\x00\x00\x00\x8d\xf3\x00\x00\x00\x00\x8e\xef\x00\x00\x67\xc7\x8f\xd2\x68\x76\x68\x48\x68\x74\x68\x75\x90\xe3\x68\xae\x00\x00\x56\x8e\x00\x00\x00\x00\x00\x00\x8a\xe6\x00\x00\x00\x00\x72\x6d\x00\x00\x5d\xeb\x00\x00\x80\x65\x00\x00\x00\x00\x5f\xf3\x80\x66\x00\x00\x00\x00\x00\x00\x83\x9f\x83\x9e\x63\xb2\x62\x41\x62\x42\x00\x00\x83\xa2\x83\xa1\x83\xa0\x00\x00\x00\x00\x86\x9b\x86\x9e\x00\x00\x86\x9d\x86\x9c\x63\xb1\x88\xf4\x88\xf2\x88\xf1\x00\x00", /* 9b00 */ "\x00\x00\x88\xf3\x00\x00\x65\xf8\x8a\xe8\x8a\xe9\x65\xf9\x00\x00\x8a\xe7\x00\x00\x8c\xb1\x8c\xb0\x8c\xb3\x66\xd1\x8c\xb2\x00\x00\x8d\xf5\x8d\xf7\x8d\xf6\x00\x00\x00\x00\x8e\xf0\x8e\xf3\x8e\xf1\x8e\xf2\x8f\xd3\x68\x49\x00\x00\x00\x00\x00\x00\x90\x85\x90\x86\x90\x87\x00\x00\x68\x97\x68\xaf\x91\xa6\x56\x8f\x00\x00\x62\x43\x63\xb3\x8a\xea\x00\x00\x8f\xd4\x00\x00\x00\x00\x91\xb4\x72\x6e\x00\x00\x68\xc7\x56\x90\x86\x9f\x00\x00\x8a\xeb\x00\x00\x8c\xb4\x00\x00\x00\x00\x8e\xf4\x8f\xd5\x56\x91\x00\x00\x80\x67\x80\x68\x00\x00\x5f\xf4\x5f\xf5\x83\xa4\x62\x45\x62\x44\x83\xa3\x00\x00\x88\xf5\x00\x00\x8a\xec\x8a\xee\x8a\xed\x65\xfc\x65\xfb\x65\xfa\x00\x00\x67\xc9\x8e\xf5\x00\x00\x67\xc8\x8f\xd7\x8f\xd6\x00\x00\x68\x98\x90\xe4\x59\x43\x7c\xf1\x00\x00\x00\x00\x00\x00\x80\x6b\x80\x69\x80\x6a\x00\x00\x00\x00\x83\xad\x00\x00\x83\xa8\x83\xa5\x83\xac\x00\x00\x00\x00\x00\x00\x83\xae\x00\x00\x00\x00\x62\x47\x83\xab\x83\xa7\x00\x00\x00\x00\x83\xa6\x83\xaa\x83\xa9\x62\x46\x00\x00\x00\x00\x86\xaa\x86\xa5\x86\xa3\x86\xac\x86\xa4\x00\x00", /* 9b80 */ "\x86\xa0\x00\x00\x86\xa6\x00\x00\x00\x00\x86\xa1\x89\x41\x86\xa2\x86\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xa9\x63\xb4\x86\xa8\x86\xa7\x00\x00\x86\xab\x00\x00\x00\x00\x00\x00\x00\x00\x88\xf6\x88\xf9\x00\x00\x00\x00\x88\xf8\x00\x00\x89\x43\x88\xfb\x89\x42\x00\x00\x88\xfd\x88\xfc\x88\xfa\x00\x00\x88\xf7\x00\x00\x65\x4e\x65\x4d\x00\x00\x65\x4f\x65\x4c\x89\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xf4\x8a\xf7\x00\x00\x8a\xf5\x8a\xf9\x00\x00\x00\x00\x00\x00\x8a\xfa\x00\x00\x8a\xf2\x66\x44\x8a\xf3\x00\x00\x8a\xf1\x8a\xf8\x00\x00\x8a\xf0\x8a\xef\x66\x43\x66\x41\x65\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xf6\x8c\xbd\x8c\xc3\x66\xd4\x8c\xbe\x00\x00\x8c\xc1\x8c\xc5\x66\xd5\x8c\xc0\x00\x00\x8c\xb8\x00\x00\x8c\xb7\x8c\xc4\x8c\xbb\x00\x00\x8c\xb9\x8c\xc2\x8c\xba\x66\xd3\x66\xd2\x00\x00\x8c\xb5\x8c\xb6\x8c\xbf\x00\x00\x00\x00\x00\x00\x8c\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xfa\x8d\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x66\x42\x00\x00\x00\x00", /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xfb\x8e\x44\x8e\x42\x8d\xf9\x8e\x47\x00\x00\x8d\xf8\x00\x00\x67\x7a\x8e\x43\x00\x00\x00\x00\x00\x00\x8d\xfc\x67\x79\x8e\x46\x00\x00\x00\x00\x8e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x8e\xf8\x8e\xf7\x00\x00\x00\x00\x00\x00\x8f\x41\x00\x00\x8e\xfa\x8e\xfd\x67\xcb\x00\x00\x00\x00\x8e\xfb\x8e\xfc\x00\x00\x8e\xf6\x8e\xf9\x67\xca\x00\x00\x00\x00\x00\x00\x68\x4b\x8f\xe2\x8f\xdd\x8f\xe1\x00\x00\x8f\xe4\x8f\xe0\x00\x00\x8f\xdc\x00\x00\x68\x4d\x8f\xdf\x8f\xe3\x68\x4c\x8f\xda\x8e\x41\x8f\xde\x00\x00\x00\x00\x8f\xdb\x00\x00\x8f\xd8\x00\x00\x8f\xd9\x68\x4a\x90\x8b\x90\x8d\x90\x90\x90\x8c\x90\x91\x00\x00\x90\x8a\x00\x00\x90\x88\x00\x00\x68\x77\x90\x8e\x68\x79\x68\x78\x90\x89\x90\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x90\xe9\x68\x99\x90\xea\x00\x00\x90\xe8\x90\xe5\x00\x00\x00\x00\x90\xe7\x90\xe6\x91\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x91\x6d\x91\x6c\x00\x00\x00\x00\x91\x8b\x00\x00\x91\x8a\x91\x89\x91\x8c\x00\x00\x68\xbf\x68\xc0\x91\xba\x91\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x44\x79\x75\x7c\xf4\x00\x00\x5d\xec\x7c\xf2\x00\x00\x00\x00\x7c\xf3\x00\x00\x00\x00\x00\x00\x80\x6c\x80\x6d\x5f\xf8\x5f\xf6\x80\x6e\x5f\xf7\x83\xb3\x00\x00\x83\xb6\x83\xb0\x83\xb7\x83\xaf\x83\xb1\x00\x00\x83\xb2", /* 9d00 */ "\x83\xb5\x00\x00\x00\x00\x62\x4a\x83\xba\x83\xb9\x62\x48\x83\xb4\x83\xb8\x62\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xb7\x00\x00\x63\xb9\x00\x00\x86\xb2\x63\xb5\x00\x00\x86\xaf\x86\xb5\x86\xb8\x00\x00\x63\xba\x00\x00\x86\xb4\x86\xb1\x86\xb9\x86\xb0\x00\x00\x86\xb6\x63\xb6\x00\x00\x86\xae\x63\xb7\x00\x00\x63\xb8\x86\xb3\x00\x00\x00\x00\x00\x00\x89\x56\x89\x49\x89\x4a\x89\x4d\x89\x4b\x00\x00\x89\x45\x00\x00\x00\x00\x89\x48\x89\x52\x89\x4c\x00\x00\x00\x00\x65\x50\x00\x00\x89\x54\x89\x51\x65\x51\x89\x53\x89\x46\x89\x4f\x89\x50\x00\x00\x89\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x41\x8b\x43\x8b\x46\x00\x00\x00\x00\x8a\xfd\x00\x00\x66\x45\x8b\x48\x8a\xfc\x8b\x49\x00\x00\x8b\x45\x8b\x47\x8b\x4b\x8b\x44\x8b\x4c\x8b\x42\x8a\xfb\x66\x46\x00\x00\x8b\x4a\x66\x47\x66\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\x8c\xdf\x8c\xd6\x66\xd9\x8c\xd2\x66\xda\x00\x00\x00\x00\x8c\xdb\x8c\xd5\x8c\xcb\x66\xd8\x8c\xd8\x8c\xd3\x8c\xd4\x00\x00\x8c\xc6\x8c\xcd\x8c\xdc\x00\x00\x8c\xd9\x00\x00\x8c\xd1\x00\x00\x8c\xdd", /* 9d80 */ "\x8c\xcc\x8c\xc7\x8c\xda\x00\x00\x8c\xc9\x8c\xd7\x8c\xce\x8c\xde\x8c\xca\x66\xd6\x8c\xc8\x8c\xcf\x8c\xd0\x00\x00\x00\x00\x00\x00\x8e\x4e\x00\x00\x8e\x4c\x00\x00\x8e\x51\x00\x00\x8e\x5d\x8e\x54\x8e\x4d\x8e\x49\x8e\x56\x8e\x4f\x8e\x52\x8e\x4b\x8e\x59\x8e\x48\x8e\x50\x8e\x55\x8e\x57\x8e\x5a\x8e\x4a\x00\x00\x8e\x5e\x8e\x5f\x8e\x58\x8e\x5c\x8e\x53\x00\x00\x8f\x51\x8f\x54\x00\x00\x67\xcc\x00\x00\x8f\x53\x8f\x58\x8f\x56\x67\xcd\x8f\x4d\x8f\x43\x8f\x42\x67\xcf\x8f\x4f\x8f\x50\x8f\x4c\x8f\x44\x00\x00\x8f\x49\x8e\x5b\x00\x00\x8f\x45\x67\xce\x8f\x4b\x00\x00\x8f\x4a\x00\x00\x8f\x46\x8f\x52\x00\x00\x8f\x47\x8f\xe9\x8f\x55\x8f\x57\x8f\x4e\x8f\x48\x8f\xea\x8f\xec\x8f\xe6\x68\x4e\x00\x00\x8f\xf3\x8f\xf1\x68\x4f\x8f\xf0\x8f\xef\x8f\xe8\x8f\xe5\x8f\xeb\x8f\xf4\x8f\xe7\x8f\xed\x00\x00\x90\x9a\x90\x9f\x90\x95\x90\x98\x68\x7a\x90\x9c\x00\x00\x90\xa3\x8f\xee\x00\x00\x90\x96\x90\xa0\x90\xa4\x90\x9b\x90\x94\x90\x9e\x00\x00\x90\x9d\x90\xa2\x90\xa1\x8f\xf2\x90\x99\x90\x93\x90\x97\x68\x9a\x68\x9b\x90\x92\x00\x00\x90\xf5\x90\xec\x90\xf4", /* 9e00 */ "\x90\xf1\x90\xf2\x90\xeb\x90\xee\x90\xf6\x90\xf0\x90\xef\x90\xed\x00\x00\x90\xf3\x00\x00\x91\x6e\x00\x00\x91\x6f\x00\x00\x91\x71\x91\x70\x91\x73\x91\x72\x91\x8e\x91\x8d\x91\xa7\x00\x00\x91\xa8\x00\x00\x91\xb5\x68\xc4\x68\xc8\x00\x00\x91\xbf\x68\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x45\x00\x00\x00\x00\x00\x00\x67\x7b\x8f\x59\x00\x00\x68\x9c\x68\x9d\x00\x00\x59\x46", /* 9e80 */ "\x7c\xf5\x00\x00\x5d\xed\x83\xbb\x00\x00\x00\x00\x86\xbb\x86\xbc\x86\xba\x89\x58\x89\x57\x65\x52\x8b\x4e\x89\x59\x8b\x4d\x00\x00\x00\x00\x8c\xe1\x66\xdb\x66\xdd\x8c\xe0\x00\x00\x00\x00\x66\xdc\x00\x00\x8e\x60\x8e\x62\x8e\x61\x8f\x5a\x67\xd0\x00\x00\x68\x7b\x90\xf7\x91\x74\x00\x00\x00\x00\x91\xc2\x59\x47\x00\x00\x80\x6f\x00\x00\x62\x4b\x00\x00\x00\x00\x00\x00\x86\xbe\x86\xbd\x00\x00\x89\x5a\x00\x00\x00\x00\x00\x00\x66\xde\x67\x7c\x8f\xf5\x91\xbb\x00\x00\x00\x00\x00\x00\x59\x48\x5f\xf9\x00\x00\x62\x4c\x00\x00\x8c\xe2\x00\x00\x90\xa5\x5b\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x89\x5b\x00\x00\x00\x00\x00\x00\x68\xb0\x5b\xa7\x62\x4d\x65\x53\x90\xa6\x5b\xa8\x00\x00\x83\xbc\x63\xbc\x86\xbf\x86\xc0\x00\x00\x63\xbb\x00\x00\x89\x5c\x65\x57\x65\x55\x65\x56\x65\x54\x8b\x4f\x66\x48\x00\x00\x00\x00\x00\x00\x8e\x64\x8e\x63\x8e\x66\x8e\x65\x67\x7d\x00\x00\x00\x00\x8f\x5b\x00\x00\x8f\x5d\x8f\x5c\x67\xd1\x8f\xf6\x00\x00\x90\xa7\x90\xa8\x68\x7c\x91\x75\x91\x8f\x68\xc1\x00\x00\x79\x76\x86\xc1\x89\x5d\x8c\xe3\x7c\xf6\x00\x00\x89\x5e", /* 9f00 */ "\x8b\x51\x8b\x50\x00\x00\x00\x00\x00\x00\x00\x00\x90\xa9\x68\x9e\x00\x00\x91\x76\x91\x90\x00\x00\x00\x00\x00\x00\x5d\xee\x83\xbd\x83\xbe\x00\x00\x86\xc2\x5d\xef\x00\x00\x66\x49\x8b\x52\x00\x00\x8f\x5f\x67\xd2\x8f\x60\x8f\x5e\x90\xaa\x00\x00\x90\xf8\x00\x00\x5d\xf0\x00\x00\x89\x61\x89\x60\x89\x5f\x8b\x53\x00\x00\x00\x00\x8b\x57\x8b\x56\x8b\x55\x8b\x54\x66\x4a\x8c\xe4\x8e\x68\x67\x7e\x8e\x67\x8f\x61\x8f\xf9\x8f\xf8\x68\x50\x8f\xf7\x90\xad\x90\xac\x90\xab\x00\x00\x00\x00\x5f\xfa\x00\x00\x86\xc3\x65\x58\x00\x00\x8c\xe5\x8c\xe6\x8f\xfa\x90\xae\x00\x00\x00\x00\x90\xf9\x91\x77\x91\xa9\x91\xc4\x5f\xfb\x65\x59\x8b\x58\x8c\xe7\x8f\x62\x90\xaf\x00\x00\x00\x00\x62\x4f\x00\x00\x89\x62\x8b\x59\x8c\xe8\x8c\xe9\x8c\xea\x8e\x6d\x00\x00\x8e\x69\x67\xd3\x8e\x6c\x8e\x6b\x67\x7f\x8e\x6a\x67\x82\x00\x00\x67\x81\x8f\x64\x8f\x63\x67\xd4\x67\xd5\x00\x00\x00\x00\x68\x52\x8f\xfb\x68\x51\x00\x00\x90\xb2\x90\xb3\x90\xb1\x90\xb0\x68\xa0\x00\x00\x90\xfa\x90\xfb\x90\xfc\x68\x9f\x91\x78\x91\x7b\x91\x7a\x91\x79\x00\x00\x00\x00\x91\xc3\x00\x00", /* 9f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbd\x00\x00\x00\x00\x66\x51\x8e\x6e\x8f\x65\x00\x00\x68\x53\x8f\xfc\x00\x00\x00\x00\x91\xc5\x00\x00\x00\x00\x00\x00\x63\xbe\x00\x00\x00\x00\x00\x00\x89\x63\x00\x00\x8f\xfd\x00\x00\x91\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\xc2\x41\xc2\x42\xc2\x43\xc2\x44\xc2\x45\xc2\x46\xc2\x47\xc2\x48\xc2\x49\xc2\x4a\xc2\x4b\xc2\x4c\xc2\x4d\xc2\x4e\xc2\x4f\xc2\x50\xc2\x51\xc2\x52\xc2\x53\xc2\x54\xc2\x55\xc2\x56\xc2\x57\xc2\x58\xc2\x59\xc2\x5a\xc2\x5b\xc2\x5c\xc2\x5d\xc2\x5e\xc2\x5f\xc2\x60\xc2\x61\xc2\x62\xc2\x63\xc2\x64\xc2\x65\xc2\x66\xc2\x67\xc2\x68\xc2\x69\xc2\x6a\xc2\x6b\xc2\x6c\xc2\x6d\xc2\x6e\xc2\x6f\xc2\x70\xc2\x71\xc2\x72\xc2\x73\xc2\x74\xc2\x75\xc2\x76\xc2\x77\xc2\x78\xc2\x79\xc2\x7a\xc2\x7b\xc2\x7c\xc2\x7d\xc2\x7e\xc2\x7f\xc2\x81\xc2\x82\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\xc2\x88\xc2\x89\xc2\x8a\xc2\x8b\xc2\x8c\xc2\x8d\xc2\x8e\xc2\x8f\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\xc2\x95\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\xc2\xa3\xc2\xa4\xc2\xa5\xc2\xa6\xc2\xa7\xc2\xa8\xc2\xa9\xc2\xaa\xc2\xab\xc2\xac\xc2\xad\xc2\xae\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc2\xc0\xc2\xc1", /* e080 */ "\xc2\xc2\xc2\xc3\xc2\xc4\xc2\xc5\xc2\xc6\xc2\xc7\xc2\xc8\xc2\xc9\xc2\xca\xc2\xcb\xc2\xcc\xc2\xcd\xc2\xce\xc2\xcf\xc2\xd0\xc2\xd1\xc2\xd2\xc2\xd3\xc2\xd4\xc2\xd5\xc2\xd6\xc2\xd7\xc2\xd8\xc2\xd9\xc2\xda\xc2\xdb\xc2\xdc\xc2\xdd\xc2\xde\xc2\xdf\xc2\xe0\xc2\xe1\xc2\xe2\xc2\xe3\xc2\xe4\xc2\xe5\xc2\xe6\xc2\xe7\xc2\xe8\xc2\xe9\xc2\xea\xc2\xeb\xc2\xec\xc2\xed\xc2\xee\xc2\xef\xc2\xf0\xc2\xf1\xc2\xf2\xc2\xf3\xc2\xf4\xc2\xf5\xc2\xf6\xc2\xf7\xc2\xf8\xc2\xf9\xc2\xfa\xc2\xfb\xc2\xfc\xc2\xfd\xc3\x41\xc3\x42\xc3\x43\xc3\x44\xc3\x45\xc3\x46\xc3\x47\xc3\x48\xc3\x49\xc3\x4a\xc3\x4b\xc3\x4c\xc3\x4d\xc3\x4e\xc3\x4f\xc3\x50\xc3\x51\xc3\x52\xc3\x53\xc3\x54\xc3\x55\xc3\x56\xc3\x57\xc3\x58\xc3\x59\xc3\x5a\xc3\x5b\xc3\x5c\xc3\x5d\xc3\x5e\xc3\x5f\xc3\x60\xc3\x61\xc3\x62\xc3\x63\xc3\x64\xc3\x65\xc3\x66\xc3\x67\xc3\x68\xc3\x69\xc3\x6a\xc3\x6b\xc3\x6c\xc3\x6d\xc3\x6e\xc3\x6f\xc3\x70\xc3\x71\xc3\x72\xc3\x73\xc3\x74\xc3\x75\xc3\x76\xc3\x77\xc3\x78\xc3\x79\xc3\x7a\xc3\x7b\xc3\x7c\xc3\x7d\xc3\x7e\xc3\x7f\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85", /* e100 */ "\xc3\x86\xc3\x87\xc3\x88\xc3\x89\xc3\x8a\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\xc3\x90\xc3\x91\xc3\x92\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\xc3\x9d\xc3\x9e\xc3\x9f\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xb7\xc3\xb8\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf\xc3\xc0\xc3\xc1\xc3\xc2\xc3\xc3\xc3\xc4\xc3\xc5\xc3\xc6\xc3\xc7\xc3\xc8\xc3\xc9\xc3\xca\xc3\xcb\xc3\xcc\xc3\xcd\xc3\xce\xc3\xcf\xc3\xd0\xc3\xd1\xc3\xd2\xc3\xd3\xc3\xd4\xc3\xd5\xc3\xd6\xc3\xd7\xc3\xd8\xc3\xd9\xc3\xda\xc3\xdb\xc3\xdc\xc3\xdd\xc3\xde\xc3\xdf\xc3\xe0\xc3\xe1\xc3\xe2\xc3\xe3\xc3\xe4\xc3\xe5\xc3\xe6\xc3\xe7\xc3\xe8\xc3\xe9\xc3\xea\xc3\xeb\xc3\xec\xc3\xed\xc3\xee\xc3\xef\xc3\xf0\xc3\xf1\xc3\xf2\xc3\xf3\xc3\xf4\xc3\xf5\xc3\xf6\xc3\xf7\xc3\xf8\xc3\xf9\xc3\xfa\xc3\xfb\xc3\xfc\xc3\xfd\xc4\x41\xc4\x42\xc4\x43\xc4\x44\xc4\x45\xc4\x46\xc4\x47\xc4\x48", /* e180 */ "\xc4\x49\xc4\x4a\xc4\x4b\xc4\x4c\xc4\x4d\xc4\x4e\xc4\x4f\xc4\x50\xc4\x51\xc4\x52\xc4\x53\xc4\x54\xc4\x55\xc4\x56\xc4\x57\xc4\x58\xc4\x59\xc4\x5a\xc4\x5b\xc4\x5c\xc4\x5d\xc4\x5e\xc4\x5f\xc4\x60\xc4\x61\xc4\x62\xc4\x63\xc4\x64\xc4\x65\xc4\x66\xc4\x67\xc4\x68\xc4\x69\xc4\x6a\xc4\x6b\xc4\x6c\xc4\x6d\xc4\x6e\xc4\x6f\xc4\x70\xc4\x71\xc4\x72\xc4\x73\xc4\x74\xc4\x75\xc4\x76\xc4\x77\xc4\x78\xc4\x79\xc4\x7a\xc4\x7b\xc4\x7c\xc4\x7d\xc4\x7e\xc4\x7f\xc4\x81\xc4\x82\xc4\x83\xc4\x84\xc4\x85\xc4\x86\xc4\x87\xc4\x88\xc4\x89\xc4\x8a\xc4\x8b\xc4\x8c\xc4\x8d\xc4\x8e\xc4\x8f\xc4\x90\xc4\x91\xc4\x92\xc4\x93\xc4\x94\xc4\x95\xc4\x96\xc4\x97\xc4\x98\xc4\x99\xc4\x9a\xc4\x9b\xc4\x9c\xc4\x9d\xc4\x9e\xc4\x9f\xc4\xa0\xc4\xa1\xc4\xa2\xc4\xa3\xc4\xa4\xc4\xa5\xc4\xa6\xc4\xa7\xc4\xa8\xc4\xa9\xc4\xaa\xc4\xab\xc4\xac\xc4\xad\xc4\xae\xc4\xaf\xc4\xb0\xc4\xb1\xc4\xb2\xc4\xb3\xc4\xb4\xc4\xb5\xc4\xb6\xc4\xb7\xc4\xb8\xc4\xb9\xc4\xba\xc4\xbb\xc4\xbc\xc4\xbd\xc4\xbe\xc4\xbf\xc4\xc0\xc4\xc1\xc4\xc2\xc4\xc3\xc4\xc4\xc4\xc5\xc4\xc6\xc4\xc7\xc4\xc8\xc4\xc9", /* e200 */ "\xc4\xca\xc4\xcb\xc4\xcc\xc4\xcd\xc4\xce\xc4\xcf\xc4\xd0\xc4\xd1\xc4\xd2\xc4\xd3\xc4\xd4\xc4\xd5\xc4\xd6\xc4\xd7\xc4\xd8\xc4\xd9\xc4\xda\xc4\xdb\xc4\xdc\xc4\xdd\xc4\xde\xc4\xdf\xc4\xe0\xc4\xe1\xc4\xe2\xc4\xe3\xc4\xe4\xc4\xe5\xc4\xe6\xc4\xe7\xc4\xe8\xc4\xe9\xc4\xea\xc4\xeb\xc4\xec\xc4\xed\xc4\xee\xc4\xef\xc4\xf0\xc4\xf1\xc4\xf2\xc4\xf3\xc4\xf4\xc4\xf5\xc4\xf6\xc4\xf7\xc4\xf8\xc4\xf9\xc4\xfa\xc4\xfb\xc4\xfc\xc4\xfd\xc5\x41\xc5\x42\xc5\x43\xc5\x44\xc5\x45\xc5\x46\xc5\x47\xc5\x48\xc5\x49\xc5\x4a\xc5\x4b\xc5\x4c\xc5\x4d\xc5\x4e\xc5\x4f\xc5\x50\xc5\x51\xc5\x52\xc5\x53\xc5\x54\xc5\x55\xc5\x56\xc5\x57\xc5\x58\xc5\x59\xc5\x5a\xc5\x5b\xc5\x5c\xc5\x5d\xc5\x5e\xc5\x5f\xc5\x60\xc5\x61\xc5\x62\xc5\x63\xc5\x64\xc5\x65\xc5\x66\xc5\x67\xc5\x68\xc5\x69\xc5\x6a\xc5\x6b\xc5\x6c\xc5\x6d\xc5\x6e\xc5\x6f\xc5\x70\xc5\x71\xc5\x72\xc5\x73\xc5\x74\xc5\x75\xc5\x76\xc5\x77\xc5\x78\xc5\x79\xc5\x7a\xc5\x7b\xc5\x7c\xc5\x7d\xc5\x7e\xc5\x7f\xc5\x81\xc5\x82\xc5\x83\xc5\x84\xc5\x85\xc5\x86\xc5\x87\xc5\x88\xc5\x89\xc5\x8a\xc5\x8b\xc5\x8c\xc5\x8d", /* e280 */ "\xc5\x8e\xc5\x8f\xc5\x90\xc5\x91\xc5\x92\xc5\x93\xc5\x94\xc5\x95\xc5\x96\xc5\x97\xc5\x98\xc5\x99\xc5\x9a\xc5\x9b\xc5\x9c\xc5\x9d\xc5\x9e\xc5\x9f\xc5\xa0\xc5\xa1\xc5\xa2\xc5\xa3\xc5\xa4\xc5\xa5\xc5\xa6\xc5\xa7\xc5\xa8\xc5\xa9\xc5\xaa\xc5\xab\xc5\xac\xc5\xad\xc5\xae\xc5\xaf\xc5\xb0\xc5\xb1\xc5\xb2\xc5\xb3\xc5\xb4\xc5\xb5\xc5\xb6\xc5\xb7\xc5\xb8\xc5\xb9\xc5\xba\xc5\xbb\xc5\xbc\xc5\xbd\xc5\xbe\xc5\xbf\xc5\xc0\xc5\xc1\xc5\xc2\xc5\xc3\xc5\xc4\xc5\xc5\xc5\xc6\xc5\xc7\xc5\xc8\xc5\xc9\xc5\xca\xc5\xcb\xc5\xcc\xc5\xcd\xc5\xce\xc5\xcf\xc5\xd0\xc5\xd1\xc5\xd2\xc5\xd3\xc5\xd4\xc5\xd5\xc5\xd6\xc5\xd7\xc5\xd8\xc5\xd9\xc5\xda\xc5\xdb\xc5\xdc\xc5\xdd\xc5\xde\xc5\xdf\xc5\xe0\xc5\xe1\xc5\xe2\xc5\xe3\xc5\xe4\xc5\xe5\xc5\xe6\xc5\xe7\xc5\xe8\xc5\xe9\xc5\xea\xc5\xeb\xc5\xec\xc5\xed\xc5\xee\xc5\xef\xc5\xf0\xc5\xf1\xc5\xf2\xc5\xf3\xc5\xf4\xc5\xf5\xc5\xf6\xc5\xf7\xc5\xf8\xc5\xf9\xc5\xfa\xc5\xfb\xc5\xfc\xc5\xfd\xc6\x41\xc6\x42\xc6\x43\xc6\x44\xc6\x45\xc6\x46\xc6\x47\xc6\x48\xc6\x49\xc6\x4a\xc6\x4b\xc6\x4c\xc6\x4d\xc6\x4e\xc6\x4f\xc6\x50", /* e300 */ "\xc6\x51\xc6\x52\xc6\x53\xc6\x54\xc6\x55\xc6\x56\xc6\x57\xc6\x58\xc6\x59\xc6\x5a\xc6\x5b\xc6\x5c\xc6\x5d\xc6\x5e\xc6\x5f\xc6\x60\xc6\x61\xc6\x62\xc6\x63\xc6\x64\xc6\x65\xc6\x66\xc6\x67\xc6\x68\xc6\x69\xc6\x6a\xc6\x6b\xc6\x6c\xc6\x6d\xc6\x6e\xc6\x6f\xc6\x70\xc6\x71\xc6\x72\xc6\x73\xc6\x74\xc6\x75\xc6\x76\xc6\x77\xc6\x78\xc6\x79\xc6\x7a\xc6\x7b\xc6\x7c\xc6\x7d\xc6\x7e\xc6\x7f\xc6\x81\xc6\x82\xc6\x83\xc6\x84\xc6\x85\xc6\x86\xc6\x87\xc6\x88\xc6\x89\xc6\x8a\xc6\x8b\xc6\x8c\xc6\x8d\xc6\x8e\xc6\x8f\xc6\x90\xc6\x91\xc6\x92\xc6\x93\xc6\x94\xc6\x95\xc6\x96\xc6\x97\xc6\x98\xc6\x99\xc6\x9a\xc6\x9b\xc6\x9c\xc6\x9d\xc6\x9e\xc6\x9f\xc6\xa0\xc6\xa1\xc6\xa2\xc6\xa3\xc6\xa4\xc6\xa5\xc6\xa6\xc6\xa7\xc6\xa8\xc6\xa9\xc6\xaa\xc6\xab\xc6\xac\xc6\xad\xc6\xae\xc6\xaf\xc6\xb0\xc6\xb1\xc6\xb2\xc6\xb3\xc6\xb4\xc6\xb5\xc6\xb6\xc6\xb7\xc6\xb8\xc6\xb9\xc6\xba\xc6\xbb\xc6\xbc\xc6\xbd\xc6\xbe\xc6\xbf\xc6\xc0\xc6\xc1\xc6\xc2\xc6\xc3\xc6\xc4\xc6\xc5\xc6\xc6\xc6\xc7\xc6\xc8\xc6\xc9\xc6\xca\xc6\xcb\xc6\xcc\xc6\xcd\xc6\xce\xc6\xcf\xc6\xd0\xc6\xd1", /* e380 */ "\xc6\xd2\xc6\xd3\xc6\xd4\xc6\xd5\xc6\xd6\xc6\xd7\xc6\xd8\xc6\xd9\xc6\xda\xc6\xdb\xc6\xdc\xc6\xdd\xc6\xde\xc6\xdf\xc6\xe0\xc6\xe1\xc6\xe2\xc6\xe3\xc6\xe4\xc6\xe5\xc6\xe6\xc6\xe7\xc6\xe8\xc6\xe9\xc6\xea\xc6\xeb\xc6\xec\xc6\xed\xc6\xee\xc6\xef\xc6\xf0\xc6\xf1\xc6\xf2\xc6\xf3\xc6\xf4\xc6\xf5\xc6\xf6\xc6\xf7\xc6\xf8\xc6\xf9\xc6\xfa\xc6\xfb\xc6\xfc\xc6\xfd\xc7\x41\xc7\x42\xc7\x43\xc7\x44\xc7\x45\xc7\x46\xc7\x47\xc7\x48\xc7\x49\xc7\x4a\xc7\x4b\xc7\x4c\xc7\x4d\xc7\x4e\xc7\x4f\xc7\x50\xc7\x51\xc7\x52\xc7\x53\xc7\x54\xc7\x55\xc7\x56\xc7\x57\xc7\x58\xc7\x59\xc7\x5a\xc7\x5b\xc7\x5c\xc7\x5d\xc7\x5e\xc7\x5f\xc7\x60\xc7\x61\xc7\x62\xc7\x63\xc7\x64\xc7\x65\xc7\x66\xc7\x67\xc7\x68\xc7\x69\xc7\x6a\xc7\x6b\xc7\x6c\xc7\x6d\xc7\x6e\xc7\x6f\xc7\x70\xc7\x71\xc7\x72\xc7\x73\xc7\x74\xc7\x75\xc7\x76\xc7\x77\xc7\x78\xc7\x79\xc7\x7a\xc7\x7b\xc7\x7c\xc7\x7d\xc7\x7e\xc7\x7f\xc7\x81\xc7\x82\xc7\x83\xc7\x84\xc7\x85\xc7\x86\xc7\x87\xc7\x88\xc7\x89\xc7\x8a\xc7\x8b\xc7\x8c\xc7\x8d\xc7\x8e\xc7\x8f\xc7\x90\xc7\x91\xc7\x92\xc7\x93\xc7\x94\xc7\x95", /* e400 */ "\xc7\x96\xc7\x97\xc7\x98\xc7\x99\xc7\x9a\xc7\x9b\xc7\x9c\xc7\x9d\xc7\x9e\xc7\x9f\xc7\xa0\xc7\xa1\xc7\xa2\xc7\xa3\xc7\xa4\xc7\xa5\xc7\xa6\xc7\xa7\xc7\xa8\xc7\xa9\xc7\xaa\xc7\xab\xc7\xac\xc7\xad\xc7\xae\xc7\xaf\xc7\xb0\xc7\xb1\xc7\xb2\xc7\xb3\xc7\xb4\xc7\xb5\xc7\xb6\xc7\xb7\xc7\xb8\xc7\xb9\xc7\xba\xc7\xbb\xc7\xbc\xc7\xbd\xc7\xbe\xc7\xbf\xc7\xc0\xc7\xc1\xc7\xc2\xc7\xc3\xc7\xc4\xc7\xc5\xc7\xc6\xc7\xc7\xc7\xc8\xc7\xc9\xc7\xca\xc7\xcb\xc7\xcc\xc7\xcd\xc7\xce\xc7\xcf\xc7\xd0\xc7\xd1\xc7\xd2\xc7\xd3\xc7\xd4\xc7\xd5\xc7\xd6\xc7\xd7\xc7\xd8\xc7\xd9\xc7\xda\xc7\xdb\xc7\xdc\xc7\xdd\xc7\xde\xc7\xdf\xc7\xe0\xc7\xe1\xc7\xe2\xc7\xe3\xc7\xe4\xc7\xe5\xc7\xe6\xc7\xe7\xc7\xe8\xc7\xe9\xc7\xea\xc7\xeb\xc7\xec\xc7\xed\xc7\xee\xc7\xef\xc7\xf0\xc7\xf1\xc7\xf2\xc7\xf3\xc7\xf4\xc7\xf5\xc7\xf6\xc7\xf7\xc7\xf8\xc7\xf9\xc7\xfa\xc7\xfb\xc7\xfc\xc7\xfd\xc8\x41\xc8\x42\xc8\x43\xc8\x44\xc8\x45\xc8\x46\xc8\x47\xc8\x48\xc8\x49\xc8\x4a\xc8\x4b\xc8\x4c\xc8\x4d\xc8\x4e\xc8\x4f\xc8\x50\xc8\x51\xc8\x52\xc8\x53\xc8\x54\xc8\x55\xc8\x56\xc8\x57\xc8\x58", /* e480 */ "\xc8\x59\xc8\x5a\xc8\x5b\xc8\x5c\xc8\x5d\xc8\x5e\xc8\x5f\xc8\x60\xc8\x61\xc8\x62\xc8\x63\xc8\x64\xc8\x65\xc8\x66\xc8\x67\xc8\x68\xc8\x69\xc8\x6a\xc8\x6b\xc8\x6c\xc8\x6d\xc8\x6e\xc8\x6f\xc8\x70\xc8\x71\xc8\x72\xc8\x73\xc8\x74\xc8\x75\xc8\x76\xc8\x77\xc8\x78\xc8\x79\xc8\x7a\xc8\x7b\xc8\x7c\xc8\x7d\xc8\x7e\xc8\x7f\xc8\x81\xc8\x82\xc8\x83\xc8\x84\xc8\x85\xc8\x86\xc8\x87\xc8\x88\xc8\x89\xc8\x8a\xc8\x8b\xc8\x8c\xc8\x8d\xc8\x8e\xc8\x8f\xc8\x90\xc8\x91\xc8\x92\xc8\x93\xc8\x94\xc8\x95\xc8\x96\xc8\x97\xc8\x98\xc8\x99\xc8\x9a\xc8\x9b\xc8\x9c\xc8\x9d\xc8\x9e\xc8\x9f\xc8\xa0\xc8\xa1\xc8\xa2\xc8\xa3\xc8\xa4\xc8\xa5\xc8\xa6\xc8\xa7\xc8\xa8\xc8\xa9\xc8\xaa\xc8\xab\xc8\xac\xc8\xad\xc8\xae\xc8\xaf\xc8\xb0\xc8\xb1\xc8\xb2\xc8\xb3\xc8\xb4\xc8\xb5\xc8\xb6\xc8\xb7\xc8\xb8\xc8\xb9\xc8\xba\xc8\xbb\xc8\xbc\xc8\xbd\xc8\xbe\xc8\xbf\xc8\xc0\xc8\xc1\xc8\xc2\xc8\xc3\xc8\xc4\xc8\xc5\xc8\xc6\xc8\xc7\xc8\xc8\xc8\xc9\xc8\xca\xc8\xcb\xc8\xcc\xc8\xcd\xc8\xce\xc8\xcf\xc8\xd0\xc8\xd1\xc8\xd2\xc8\xd3\xc8\xd4\xc8\xd5\xc8\xd6\xc8\xd7\xc8\xd8\xc8\xd9", /* e500 */ "\xc8\xda\xc8\xdb\xc8\xdc\xc8\xdd\xc8\xde\xc8\xdf\xc8\xe0\xc8\xe1\xc8\xe2\xc8\xe3\xc8\xe4\xc8\xe5\xc8\xe6\xc8\xe7\xc8\xe8\xc8\xe9\xc8\xea\xc8\xeb\xc8\xec\xc8\xed\xc8\xee\xc8\xef\xc8\xf0\xc8\xf1\xc8\xf2\xc8\xf3\xc8\xf4\xc8\xf5\xc8\xf6\xc8\xf7\xc8\xf8\xc8\xf9\xc8\xfa\xc8\xfb\xc8\xfc\xc8\xfd\xc9\x41\xc9\x42\xc9\x43\xc9\x44\xc9\x45\xc9\x46\xc9\x47\xc9\x48\xc9\x49\xc9\x4a\xc9\x4b\xc9\x4c\xc9\x4d\xc9\x4e\xc9\x4f\xc9\x50\xc9\x51\xc9\x52\xc9\x53\xc9\x54\xc9\x55\xc9\x56\xc9\x57\xc9\x58\xc9\x59\xc9\x5a\xc9\x5b\xc9\x5c\xc9\x5d\xc9\x5e\xc9\x5f\xc9\x60\xc9\x61\xc9\x62\xc9\x63\xc9\x64\xc9\x65\xc9\x66\xc9\x67\xc9\x68\xc9\x69\xc9\x6a\xc9\x6b\xc9\x6c\xc9\x6d\xc9\x6e\xc9\x6f\xc9\x70\xc9\x71\xc9\x72\xc9\x73\xc9\x74\xc9\x75\xc9\x76\xc9\x77\xc9\x78\xc9\x79\xc9\x7a\xc9\x7b\xc9\x7c\xc9\x7d\xc9\x7e\xc9\x7f\xc9\x81\xc9\x82\xc9\x83\xc9\x84\xc9\x85\xc9\x86\xc9\x87\xc9\x88\xc9\x89\xc9\x8a\xc9\x8b\xc9\x8c\xc9\x8d\xc9\x8e\xc9\x8f\xc9\x90\xc9\x91\xc9\x92\xc9\x93\xc9\x94\xc9\x95\xc9\x96\xc9\x97\xc9\x98\xc9\x99\xc9\x9a\xc9\x9b\xc9\x9c\xc9\x9d", /* e580 */ "\xc9\x9e\xc9\x9f\xc9\xa0\xc9\xa1\xc9\xa2\xc9\xa3\xc9\xa4\xc9\xa5\xc9\xa6\xc9\xa7\xc9\xa8\xc9\xa9\xc9\xaa\xc9\xab\xc9\xac\xc9\xad\xc9\xae\xc9\xaf\xc9\xb0\xc9\xb1\xc9\xb2\xc9\xb3\xc9\xb4\xc9\xb5\xc9\xb6\xc9\xb7\xc9\xb8\xc9\xb9\xc9\xba\xc9\xbb\xc9\xbc\xc9\xbd\xc9\xbe\xc9\xbf\xc9\xc0\xc9\xc1\xc9\xc2\xc9\xc3\xc9\xc4\xc9\xc5\xc9\xc6\xc9\xc7\xc9\xc8\xc9\xc9\xc9\xca\xc9\xcb\xc9\xcc\xc9\xcd\xc9\xce\xc9\xcf\xc9\xd0\xc9\xd1\xc9\xd2\xc9\xd3\xc9\xd4\xc9\xd5\xc9\xd6\xc9\xd7\xc9\xd8\xc9\xd9\xc9\xda\xc9\xdb\xc9\xdc\xc9\xdd\xc9\xde\xc9\xdf\xc9\xe0\xc9\xe1\xc9\xe2\xc9\xe3\xc9\xe4\xc9\xe5\xc9\xe6\xc9\xe7\xc9\xe8\xc9\xe9\xc9\xea\xc9\xeb\xc9\xec\xc9\xed\xc9\xee\xc9\xef\xc9\xf0\xc9\xf1\xc9\xf2\xc9\xf3\xc9\xf4\xc9\xf5\xc9\xf6\xc9\xf7\xc9\xf8\xc9\xf9\xc9\xfa\xc9\xfb\xc9\xfc\xc9\xfd\xca\x41\xca\x42\xca\x43\xca\x44\xca\x45\xca\x46\xca\x47\xca\x48\xca\x49\xca\x4a\xca\x4b\xca\x4c\xca\x4d\xca\x4e\xca\x4f\xca\x50\xca\x51\xca\x52\xca\x53\xca\x54\xca\x55\xca\x56\xca\x57\xca\x58\xca\x59\xca\x5a\xca\x5b\xca\x5c\xca\x5d\xca\x5e\xca\x5f\xca\x60", /* e600 */ "\xca\x61\xca\x62\xca\x63\xca\x64\xca\x65\xca\x66\xca\x67\xca\x68\xca\x69\xca\x6a\xca\x6b\xca\x6c\xca\x6d\xca\x6e\xca\x6f\xca\x70\xca\x71\xca\x72\xca\x73\xca\x74\xca\x75\xca\x76\xca\x77\xca\x78\xca\x79\xca\x7a\xca\x7b\xca\x7c\xca\x7d\xca\x7e\xca\x7f\xca\x81\xca\x82\xca\x83\xca\x84\xca\x85\xca\x86\xca\x87\xca\x88\xca\x89\xca\x8a\xca\x8b\xca\x8c\xca\x8d\xca\x8e\xca\x8f\xca\x90\xca\x91\xca\x92\xca\x93\xca\x94\xca\x95\xca\x96\xca\x97\xca\x98\xca\x99\xca\x9a\xca\x9b\xca\x9c\xca\x9d\xca\x9e\xca\x9f\xca\xa0\xca\xa1\xca\xa2\xca\xa3\xca\xa4\xca\xa5\xca\xa6\xca\xa7\xca\xa8\xca\xa9\xca\xaa\xca\xab\xca\xac\xca\xad\xca\xae\xca\xaf\xca\xb0\xca\xb1\xca\xb2\xca\xb3\xca\xb4\xca\xb5\xca\xb6\xca\xb7\xca\xb8\xca\xb9\xca\xba\xca\xbb\xca\xbc\xca\xbd\xca\xbe\xca\xbf\xca\xc0\xca\xc1\xca\xc2\xca\xc3\xca\xc4\xca\xc5\xca\xc6\xca\xc7\xca\xc8\xca\xc9\xca\xca\xca\xcb\xca\xcc\xca\xcd\xca\xce\xca\xcf\xca\xd0\xca\xd1\xca\xd2\xca\xd3\xca\xd4\xca\xd5\xca\xd6\xca\xd7\xca\xd8\xca\xd9\xca\xda\xca\xdb\xca\xdc\xca\xdd\xca\xde\xca\xdf\xca\xe0\xca\xe1", /* e680 */ "\xca\xe2\xca\xe3\xca\xe4\xca\xe5\xca\xe6\xca\xe7\xca\xe8\xca\xe9\xca\xea\xca\xeb\xca\xec\xca\xed\xca\xee\xca\xef\xca\xf0\xca\xf1\xca\xf2\xca\xf3\xca\xf4\xca\xf5\xca\xf6\xca\xf7\xca\xf8\xca\xf9\xca\xfa\xca\xfb\xca\xfc\xca\xfd\xcb\x41\xcb\x42\xcb\x43\xcb\x44\xcb\x45\xcb\x46\xcb\x47\xcb\x48\xcb\x49\xcb\x4a\xcb\x4b\xcb\x4c\xcb\x4d\xcb\x4e\xcb\x4f\xcb\x50\xcb\x51\xcb\x52\xcb\x53\xcb\x54\xcb\x55\xcb\x56\xcb\x57\xcb\x58\xcb\x59\xcb\x5a\xcb\x5b\xcb\x5c\xcb\x5d\xcb\x5e\xcb\x5f\xcb\x60\xcb\x61\xcb\x62\xcb\x63\xcb\x64\xcb\x65\xcb\x66\xcb\x67\xcb\x68\xcb\x69\xcb\x6a\xcb\x6b\xcb\x6c\xcb\x6d\xcb\x6e\xcb\x6f\xcb\x70\xcb\x71\xcb\x72\xcb\x73\xcb\x74\xcb\x75\xcb\x76\xcb\x77\xcb\x78\xcb\x79\xcb\x7a\xcb\x7b\xcb\x7c\xcb\x7d\xcb\x7e\xcb\x7f\xcb\x81\xcb\x82\xcb\x83\xcb\x84\xcb\x85\xcb\x86\xcb\x87\xcb\x88\xcb\x89\xcb\x8a\xcb\x8b\xcb\x8c\xcb\x8d\xcb\x8e\xcb\x8f\xcb\x90\xcb\x91\xcb\x92\xcb\x93\xcb\x94\xcb\x95\xcb\x96\xcb\x97\xcb\x98\xcb\x99\xcb\x9a\xcb\x9b\xcb\x9c\xcb\x9d\xcb\x9e\xcb\x9f\xcb\xa0\xcb\xa1\xcb\xa2\xcb\xa3\xcb\xa4\xcb\xa5", /* e700 */ "\xcb\xa6\xcb\xa7\xcb\xa8\xcb\xa9\xcb\xaa\xcb\xab\xcb\xac\xcb\xad\xcb\xae\xcb\xaf\xcb\xb0\xcb\xb1\xcb\xb2\xcb\xb3\xcb\xb4\xcb\xb5\xcb\xb6\xcb\xb7\xcb\xb8\xcb\xb9\xcb\xba\xcb\xbb\xcb\xbc\xcb\xbd\xcb\xbe\xcb\xbf\xcb\xc0\xcb\xc1\xcb\xc2\xcb\xc3\xcb\xc4\xcb\xc5\xcb\xc6\xcb\xc7\xcb\xc8\xcb\xc9\xcb\xca\xcb\xcb\xcb\xcc\xcb\xcd\xcb\xce\xcb\xcf\xcb\xd0\xcb\xd1\xcb\xd2\xcb\xd3\xcb\xd4\xcb\xd5\xcb\xd6\xcb\xd7\xcb\xd8\xcb\xd9\xcb\xda\xcb\xdb\xcb\xdc\xcb\xdd\xcb\xde\xcb\xdf\xcb\xe0\xcb\xe1\xcb\xe2\xcb\xe3\xcb\xe4\xcb\xe5\xcb\xe6\xcb\xe7\xcb\xe8\xcb\xe9\xcb\xea\xcb\xeb\xcb\xec\xcb\xed\xcb\xee\xcb\xef\xcb\xf0\xcb\xf1\xcb\xf2\xcb\xf3\xcb\xf4\xcb\xf5\xcb\xf6\xcb\xf7\xcb\xf8\xcb\xf9\xcb\xfa\xcb\xfb\xcb\xfc\xcb\xfd\xcc\x41\xcc\x42\xcc\x43\xcc\x44\xcc\x45\xcc\x46\xcc\x47\xcc\x48\xcc\x49\xcc\x4a\xcc\x4b\xcc\x4c\xcc\x4d\xcc\x4e\xcc\x4f\xcc\x50\xcc\x51\xcc\x52\xcc\x53\xcc\x54\xcc\x55\xcc\x56\xcc\x57\xcc\x58\xcc\x59\xcc\x5a\xcc\x5b\xcc\x5c\xcc\x5d\xcc\x5e\xcc\x5f\xcc\x60\xcc\x61\xcc\x62\xcc\x63\xcc\x64\xcc\x65\xcc\x66\xcc\x67\xcc\x68", /* e780 */ "\xcc\x69\xcc\x6a\xcc\x6b\xcc\x6c\xcc\x6d\xcc\x6e\xcc\x6f\xcc\x70\xcc\x71\xcc\x72\xcc\x73\xcc\x74\xcc\x75\xcc\x76\xcc\x77\xcc\x78\xcc\x79\xcc\x7a\xcc\x7b\xcc\x7c\xcc\x7d\xcc\x7e\xcc\x7f\xcc\x81\xcc\x82\xcc\x83\xcc\x84\xcc\x85\xcc\x86\xcc\x87\xcc\x88\xcc\x89\xcc\x8a\xcc\x8b\xcc\x8c\xcc\x8d\xcc\x8e\xcc\x8f\xcc\x90\xcc\x91\xcc\x92\xcc\x93\xcc\x94\xcc\x95\xcc\x96\xcc\x97\xcc\x98\xcc\x99\xcc\x9a\xcc\x9b\xcc\x9c\xcc\x9d\xcc\x9e\xcc\x9f\xcc\xa0\xcc\xa1\xcc\xa2\xcc\xa3\xcc\xa4\xcc\xa5\xcc\xa6\xcc\xa7\xcc\xa8\xcc\xa9\xcc\xaa\xcc\xab\xcc\xac\xcc\xad\xcc\xae\xcc\xaf\xcc\xb0\xcc\xb1\xcc\xb2\xcc\xb3\xcc\xb4\xcc\xb5\xcc\xb6\xcc\xb7\xcc\xb8\xcc\xb9\xcc\xba\xcc\xbb\xcc\xbc\xcc\xbd\xcc\xbe\xcc\xbf\xcc\xc0\xcc\xc1\xcc\xc2\xcc\xc3\xcc\xc4\xcc\xc5\xcc\xc6\xcc\xc7\xcc\xc8\xcc\xc9\xcc\xca\xcc\xcb\xcc\xcc\xcc\xcd\xcc\xce\xcc\xcf\xcc\xd0\xcc\xd1\xcc\xd2\xcc\xd3\xcc\xd4\xcc\xd5\xcc\xd6\xcc\xd7\xcc\xd8\xcc\xd9\xcc\xda\xcc\xdb\xcc\xdc\xcc\xdd\xcc\xde\xcc\xdf\xcc\xe0\xcc\xe1\xcc\xe2\xcc\xe3\xcc\xe4\xcc\xe5\xcc\xe6\xcc\xe7\xcc\xe8\xcc\xe9", /* e800 */ "\xcc\xea\xcc\xeb\xcc\xec\xcc\xed\xcc\xee\xcc\xef\xcc\xf0\xcc\xf1\xcc\xf2\xcc\xf3\xcc\xf4\xcc\xf5\xcc\xf6\xcc\xf7\xcc\xf8\xcc\xf9\xcc\xfa\xcc\xfb\xcc\xfc\xcc\xfd\xcd\x41\xcd\x42\xcd\x43\xcd\x44\xcd\x45\xcd\x46\xcd\x47\xcd\x48\xcd\x49\xcd\x4a\xcd\x4b\xcd\x4c\xcd\x4d\xcd\x4e\xcd\x4f\xcd\x50\xcd\x51\xcd\x52\xcd\x53\xcd\x54\xcd\x55\xcd\x56\xcd\x57\xcd\x58\xcd\x59\xcd\x5a\xcd\x5b\xcd\x5c\xcd\x5d\xcd\x5e\xcd\x5f\xcd\x60\xcd\x61\xcd\x62\xcd\x63\xcd\x64\xcd\x65\xcd\x66\xcd\x67\xcd\x68\xcd\x69\xcd\x6a\xcd\x6b\xcd\x6c\xcd\x6d\xcd\x6e\xcd\x6f\xcd\x70\xcd\x71\xcd\x72\xcd\x73\xcd\x74\xcd\x75\xcd\x76\xcd\x77\xcd\x78\xcd\x79\xcd\x7a\xcd\x7b\xcd\x7c\xcd\x7d\xcd\x7e\xcd\x7f\xcd\x81\xcd\x82\xcd\x83\xcd\x84\xcd\x85\xcd\x86\xcd\x87\xcd\x88\xcd\x89\xcd\x8a\xcd\x8b\xcd\x8c\xcd\x8d\xcd\x8e\xcd\x8f\xcd\x90\xcd\x91\xcd\x92\xcd\x93\xcd\x94\xcd\x95\xcd\x96\xcd\x97\xcd\x98\xcd\x99\xcd\x9a\xcd\x9b\xcd\x9c\xcd\x9d\xcd\x9e\xcd\x9f\xcd\xa0\xcd\xa1\xcd\xa2\xcd\xa3\xcd\xa4\xcd\xa5\xcd\xa6\xcd\xa7\xcd\xa8\xcd\xa9\xcd\xaa\xcd\xab\xcd\xac\xcd\xad", /* e880 */ "\xcd\xae\xcd\xaf\xcd\xb0\xcd\xb1\xcd\xb2\xcd\xb3\xcd\xb4\xcd\xb5\xcd\xb6\xcd\xb7\xcd\xb8\xcd\xb9\xcd\xba\xcd\xbb\xcd\xbc\xcd\xbd\xcd\xbe\xcd\xbf\xcd\xc0\xcd\xc1\xcd\xc2\xcd\xc3\xcd\xc4\xcd\xc5\xcd\xc6\xcd\xc7\xcd\xc8\xcd\xc9\xcd\xca\xcd\xcb\xcd\xcc\xcd\xcd\xcd\xce\xcd\xcf\xcd\xd0\xcd\xd1\xcd\xd2\xcd\xd3\xcd\xd4\xcd\xd5\xcd\xd6\xcd\xd7\xcd\xd8\xcd\xd9\xcd\xda\xcd\xdb\xcd\xdc\xcd\xdd\xcd\xde\xcd\xdf\xcd\xe0\xcd\xe1\xcd\xe2\xcd\xe3\xcd\xe4\xcd\xe5\xcd\xe6\xcd\xe7\xcd\xe8\xcd\xe9\xcd\xea\xcd\xeb\xcd\xec\xcd\xed\xcd\xee\xcd\xef\xcd\xf0\xcd\xf1\xcd\xf2\xcd\xf3\xcd\xf4\xcd\xf5\xcd\xf6\xcd\xf7\xcd\xf8\xcd\xf9\xcd\xfa\xcd\xfb\xcd\xfc\xcd\xfd\xce\x41\xce\x42\xce\x43\xce\x44\xce\x45\xce\x46\xce\x47\xce\x48\xce\x49\xce\x4a\xce\x4b\xce\x4c\xce\x4d\xce\x4e\xce\x4f\xce\x50\xce\x51\xce\x52\xce\x53\xce\x54\xce\x55\xce\x56\xce\x57\xce\x58\xce\x59\xce\x5a\xce\x5b\xce\x5c\xce\x5d\xce\x5e\xce\x5f\xce\x60\xce\x61\xce\x62\xce\x63\xce\x64\xce\x65\xce\x66\xce\x67\xce\x68\xce\x69\xce\x6a\xce\x6b\xce\x6c\xce\x6d\xce\x6e\xce\x6f\xce\x70", /* e900 */ "\xce\x71\xce\x72\xce\x73\xce\x74\xce\x75\xce\x76\xce\x77\xce\x78\xce\x79\xce\x7a\xce\x7b\xce\x7c\xce\x7d\xce\x7e\xce\x7f\xce\x81\xce\x82\xce\x83\xce\x84\xce\x85\xce\x86\xce\x87\xce\x88\xce\x89\xce\x8a\xce\x8b\xce\x8c\xce\x8d\xce\x8e\xce\x8f\xce\x90\xce\x91\xce\x92\xce\x93\xce\x94\xce\x95\xce\x96\xce\x97\xce\x98\xce\x99\xce\x9a\xce\x9b\xce\x9c\xce\x9d\xce\x9e\xce\x9f\xce\xa0\xce\xa1\xce\xa2\xce\xa3\xce\xa4\xce\xa5\xce\xa6\xce\xa7\xce\xa8\xce\xa9\xce\xaa\xce\xab\xce\xac\xce\xad\xce\xae\xce\xaf\xce\xb0\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xce\xb5\xce\xb6\xce\xb7\xce\xb8\xce\xb9\xce\xba\xce\xbb\xce\xbc\xce\xbd\xce\xbe\xce\xbf\xce\xc0\xce\xc1\xce\xc2\xce\xc3\xce\xc4\xce\xc5\xce\xc6\xce\xc7\xce\xc8\xce\xc9\xce\xca\xce\xcb\xce\xcc\xce\xcd\xce\xce\xce\xcf\xce\xd0\xce\xd1\xce\xd2\xce\xd3\xce\xd4\xce\xd5\xce\xd6\xce\xd7\xce\xd8\xce\xd9\xce\xda\xce\xdb\xce\xdc\xce\xdd\xce\xde\xce\xdf\xce\xe0\xce\xe1\xce\xe2\xce\xe3\xce\xe4\xce\xe5\xce\xe6\xce\xe7\xce\xe8\xce\xe9\xce\xea\xce\xeb\xce\xec\xce\xed\xce\xee\xce\xef\xce\xf0\xce\xf1", /* e980 */ "\xce\xf2\xce\xf3\xce\xf4\xce\xf5\xce\xf6\xce\xf7\xce\xf8\xce\xf9\xce\xfa\xce\xfb\xce\xfc\xce\xfd\xcf\x41\xcf\x42\xcf\x43\xcf\x44\xcf\x45\xcf\x46\xcf\x47\xcf\x48\xcf\x49\xcf\x4a\xcf\x4b\xcf\x4c\xcf\x4d\xcf\x4e\xcf\x4f\xcf\x50\xcf\x51\xcf\x52\xcf\x53\xcf\x54\xcf\x55\xcf\x56\xcf\x57\xcf\x58\xcf\x59\xcf\x5a\xcf\x5b\xcf\x5c\xcf\x5d\xcf\x5e\xcf\x5f\xcf\x60\xcf\x61\xcf\x62\xcf\x63\xcf\x64\xcf\x65\xcf\x66\xcf\x67\xcf\x68\xcf\x69\xcf\x6a\xcf\x6b\xcf\x6c\xcf\x6d\xcf\x6e\xcf\x6f\xcf\x70\xcf\x71\xcf\x72\xcf\x73\xcf\x74\xcf\x75\xcf\x76\xcf\x77\xcf\x78\xcf\x79\xcf\x7a\xcf\x7b\xcf\x7c\xcf\x7d\xcf\x7e\xcf\x7f\xcf\x81\xcf\x82\xcf\x83\xcf\x84\xcf\x85\xcf\x86\xcf\x87\xcf\x88\xcf\x89\xcf\x8a\xcf\x8b\xcf\x8c\xcf\x8d\xcf\x8e\xcf\x8f\xcf\x90\xcf\x91\xcf\x92\xcf\x93\xcf\x94\xcf\x95\xcf\x96\xcf\x97\xcf\x98\xcf\x99\xcf\x9a\xcf\x9b\xcf\x9c\xcf\x9d\xcf\x9e\xcf\x9f\xcf\xa0\xcf\xa1\xcf\xa2\xcf\xa3\xcf\xa4\xcf\xa5\xcf\xa6\xcf\xa7\xcf\xa8\xcf\xa9\xcf\xaa\xcf\xab\xcf\xac\xcf\xad\xcf\xae\xcf\xaf\xcf\xb0\xcf\xb1\xcf\xb2\xcf\xb3\xcf\xb4\xcf\xb5", /* ea00 */ "\xcf\xb6\xcf\xb7\xcf\xb8\xcf\xb9\xcf\xba\xcf\xbb\xcf\xbc\xcf\xbd\xcf\xbe\xcf\xbf\xcf\xc0\xcf\xc1\xcf\xc2\xcf\xc3\xcf\xc4\xcf\xc5\xcf\xc6\xcf\xc7\xcf\xc8\xcf\xc9\xcf\xca\xcf\xcb\xcf\xcc\xcf\xcd\xcf\xce\xcf\xcf\xcf\xd0\xcf\xd1\xcf\xd2\xcf\xd3\xcf\xd4\xcf\xd5\xcf\xd6\xcf\xd7\xcf\xd8\xcf\xd9\xcf\xda\xcf\xdb\xcf\xdc\xcf\xdd\xcf\xde\xcf\xdf\xcf\xe0\xcf\xe1\xcf\xe2\xcf\xe3\xcf\xe4\xcf\xe5\xcf\xe6\xcf\xe7\xcf\xe8\xcf\xe9\xcf\xea\xcf\xeb\xcf\xec\xcf\xed\xcf\xee\xcf\xef\xcf\xf0\xcf\xf1\xcf\xf2\xcf\xf3\xcf\xf4\xcf\xf5\xcf\xf6\xcf\xf7\xcf\xf8\xcf\xf9\xcf\xfa\xcf\xfb\xcf\xfc\xcf\xfd\xd0\x41\xd0\x42\xd0\x43\xd0\x44\xd0\x45\xd0\x46\xd0\x47\xd0\x48\xd0\x49\xd0\x4a\xd0\x4b\xd0\x4c\xd0\x4d\xd0\x4e\xd0\x4f\xd0\x50\xd0\x51\xd0\x52\xd0\x53\xd0\x54\xd0\x55\xd0\x56\xd0\x57\xd0\x58\xd0\x59\xd0\x5a\xd0\x5b\xd0\x5c\xd0\x5d\xd0\x5e\xd0\x5f\xd0\x60\xd0\x61\xd0\x62\xd0\x63\xd0\x64\xd0\x65\xd0\x66\xd0\x67\xd0\x68\xd0\x69\xd0\x6a\xd0\x6b\xd0\x6c\xd0\x6d\xd0\x6e\xd0\x6f\xd0\x70\xd0\x71\xd0\x72\xd0\x73\xd0\x74\xd0\x75\xd0\x76\xd0\x77\xd0\x78", /* ea80 */ "\xd0\x79\xd0\x7a\xd0\x7b\xd0\x7c\xd0\x7d\xd0\x7e\xd0\x7f\xd0\x81\xd0\x82\xd0\x83\xd0\x84\xd0\x85\xd0\x86\xd0\x87\xd0\x88\xd0\x89\xd0\x8a\xd0\x8b\xd0\x8c\xd0\x8d\xd0\x8e\xd0\x8f\xd0\x90\xd0\x91\xd0\x92\xd0\x93\xd0\x94\xd0\x95\xd0\x96\xd0\x97\xd0\x98\xd0\x99\xd0\x9a\xd0\x9b\xd0\x9c\xd0\x9d\xd0\x9e\xd0\x9f\xd0\xa0\xd0\xa1\xd0\xa2\xd0\xa3\xd0\xa4\xd0\xa5\xd0\xa6\xd0\xa7\xd0\xa8\xd0\xa9\xd0\xaa\xd0\xab\xd0\xac\xd0\xad\xd0\xae\xd0\xaf\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5\xd0\xb6\xd0\xb7\xd0\xb8\xd0\xb9\xd0\xba\xd0\xbb\xd0\xbc\xd0\xbd\xd0\xbe\xd0\xbf\xd0\xc0\xd0\xc1\xd0\xc2\xd0\xc3\xd0\xc4\xd0\xc5\xd0\xc6\xd0\xc7\xd0\xc8\xd0\xc9\xd0\xca\xd0\xcb\xd0\xcc\xd0\xcd\xd0\xce\xd0\xcf\xd0\xd0\xd0\xd1\xd0\xd2\xd0\xd3\xd0\xd4\xd0\xd5\xd0\xd6\xd0\xd7\xd0\xd8\xd0\xd9\xd0\xda\xd0\xdb\xd0\xdc\xd0\xdd\xd0\xde\xd0\xdf\xd0\xe0\xd0\xe1\xd0\xe2\xd0\xe3\xd0\xe4\xd0\xe5\xd0\xe6\xd0\xe7\xd0\xe8\xd0\xe9\xd0\xea\xd0\xeb\xd0\xec\xd0\xed\xd0\xee\xd0\xef\xd0\xf0\xd0\xf1\xd0\xf2\xd0\xf3\xd0\xf4\xd0\xf5\xd0\xf6\xd0\xf7\xd0\xf8\xd0\xf9", /* eb00 */ "\xd0\xfa\xd0\xfb\xd0\xfc\xd0\xfd\xd1\x41\xd1\x42\xd1\x43\xd1\x44\xd1\x45\xd1\x46\xd1\x47\xd1\x48\xd1\x49\xd1\x4a\xd1\x4b\xd1\x4c\xd1\x4d\xd1\x4e\xd1\x4f\xd1\x50\xd1\x51\xd1\x52\xd1\x53\xd1\x54\xd1\x55\xd1\x56\xd1\x57\xd1\x58\xd1\x59\xd1\x5a\xd1\x5b\xd1\x5c\xd1\x5d\xd1\x5e\xd1\x5f\xd1\x60\xd1\x61\xd1\x62\xd1\x63\xd1\x64\xd1\x65\xd1\x66\xd1\x67\xd1\x68\xd1\x69\xd1\x6a\xd1\x6b\xd1\x6c\xd1\x6d\xd1\x6e\xd1\x6f\xd1\x70\xd1\x71\xd1\x72\xd1\x73\xd1\x74\xd1\x75\xd1\x76\xd1\x77\xd1\x78\xd1\x79\xd1\x7a\xd1\x7b\xd1\x7c\xd1\x7d\xd1\x7e\xd1\x7f\xd1\x81\xd1\x82\xd1\x83\xd1\x84\xd1\x85\xd1\x86\xd1\x87\xd1\x88\xd1\x89\xd1\x8a\xd1\x8b\xd1\x8c\xd1\x8d\xd1\x8e\xd1\x8f\xd1\x90\xd1\x91\xd1\x92\xd1\x93\xd1\x94\xd1\x95\xd1\x96\xd1\x97\xd1\x98\xd1\x99\xd1\x9a\xd1\x9b\xd1\x9c\xd1\x9d\xd1\x9e\xd1\x9f\xd1\xa0\xd1\xa1\xd1\xa2\xd1\xa3\xd1\xa4\xd1\xa5\xd1\xa6\xd1\xa7\xd1\xa8\xd1\xa9\xd1\xaa\xd1\xab\xd1\xac\xd1\xad\xd1\xae\xd1\xaf\xd1\xb0\xd1\xb1\xd1\xb2\xd1\xb3\xd1\xb4\xd1\xb5\xd1\xb6\xd1\xb7\xd1\xb8\xd1\xb9\xd1\xba\xd1\xbb\xd1\xbc\xd1\xbd", /* eb80 */ "\xd1\xbe\xd1\xbf\xd1\xc0\xd1\xc1\xd1\xc2\xd1\xc3\xd1\xc4\xd1\xc5\xd1\xc6\xd1\xc7\xd1\xc8\xd1\xc9\xd1\xca\xd1\xcb\xd1\xcc\xd1\xcd\xd1\xce\xd1\xcf\xd1\xd0\xd1\xd1\xd1\xd2\xd1\xd3\xd1\xd4\xd1\xd5\xd1\xd6\xd1\xd7\xd1\xd8\xd1\xd9\xd1\xda\xd1\xdb\xd1\xdc\xd1\xdd\xd1\xde\xd1\xdf\xd1\xe0\xd1\xe1\xd1\xe2\xd1\xe3\xd1\xe4\xd1\xe5\xd1\xe6\xd1\xe7\xd1\xe8\xd1\xe9\xd1\xea\xd1\xeb\xd1\xec\xd1\xed\xd1\xee\xd1\xef\xd1\xf0\xd1\xf1\xd1\xf2\xd1\xf3\xd1\xf4\xd1\xf5\xd1\xf6\xd1\xf7\xd1\xf8\xd1\xf9\xd1\xfa\xd1\xfb\xd1\xfc\xd1\xfd\xd2\x41\xd2\x42\xd2\x43\xd2\x44\xd2\x45\xd2\x46\xd2\x47\xd2\x48\xd2\x49\xd2\x4a\xd2\x4b\xd2\x4c\xd2\x4d\xd2\x4e\xd2\x4f\xd2\x50\xd2\x51\xd2\x52\xd2\x53\xd2\x54\xd2\x55\xd2\x56\xd2\x57\xd2\x58\xd2\x59\xd2\x5a\xd2\x5b\xd2\x5c\xd2\x5d\xd2\x5e\xd2\x5f\xd2\x60\xd2\x61\xd2\x62\xd2\x63\xd2\x64\xd2\x65\xd2\x66\xd2\x67\xd2\x68\xd2\x69\xd2\x6a\xd2\x6b\xd2\x6c\xd2\x6d\xd2\x6e\xd2\x6f\xd2\x70\xd2\x71\xd2\x72\xd2\x73\xd2\x74\xd2\x75\xd2\x76\xd2\x77\xd2\x78\xd2\x79\xd2\x7a\xd2\x7b\xd2\x7c\xd2\x7d\xd2\x7e\xd2\x7f\xd2\x81", /* ec00 */ "\xd2\x82\xd2\x83\xd2\x84\xd2\x85\xd2\x86\xd2\x87\xd2\x88\xd2\x89\xd2\x8a\xd2\x8b\xd2\x8c\xd2\x8d\xd2\x8e\xd2\x8f\xd2\x90\xd2\x91\xd2\x92\xd2\x93\xd2\x94\xd2\x95\xd2\x96\xd2\x97\xd2\x98\xd2\x99\xd2\x9a\xd2\x9b\xd2\x9c\xd2\x9d\xd2\x9e\xd2\x9f\xd2\xa0\xd2\xa1\xd2\xa2\xd2\xa3\xd2\xa4\xd2\xa5\xd2\xa6\xd2\xa7\xd2\xa8\xd2\xa9\xd2\xaa\xd2\xab\xd2\xac\xd2\xad\xd2\xae\xd2\xaf\xd2\xb0\xd2\xb1\xd2\xb2\xd2\xb3\xd2\xb4\xd2\xb5\xd2\xb6\xd2\xb7\xd2\xb8\xd2\xb9\xd2\xba\xd2\xbb\xd2\xbc\xd2\xbd\xd2\xbe\xd2\xbf\xd2\xc0\xd2\xc1\xd2\xc2\xd2\xc3\xd2\xc4\xd2\xc5\xd2\xc6\xd2\xc7\xd2\xc8\xd2\xc9\xd2\xca\xd2\xcb\xd2\xcc\xd2\xcd\xd2\xce\xd2\xcf\xd2\xd0\xd2\xd1\xd2\xd2\xd2\xd3\xd2\xd4\xd2\xd5\xd2\xd6\xd2\xd7\xd2\xd8\xd2\xd9\xd2\xda\xd2\xdb\xd2\xdc\xd2\xdd\xd2\xde\xd2\xdf\xd2\xe0\xd2\xe1\xd2\xe2\xd2\xe3\xd2\xe4\xd2\xe5\xd2\xe6\xd2\xe7\xd2\xe8\xd2\xe9\xd2\xea\xd2\xeb\xd2\xec\xd2\xed\xd2\xee\xd2\xef\xd2\xf0\xd2\xf1\xd2\xf2\xd2\xf3\xd2\xf4\xd2\xf5\xd2\xf6\xd2\xf7\xd2\xf8\xd2\xf9\xd2\xfa\xd2\xfb\xd2\xfc\xd2\xfd\xd3\x41\xd3\x42\xd3\x43\xd3\x44", /* ec80 */ "\xd3\x45\xd3\x46\xd3\x47\xd3\x48\xd3\x49\xd3\x4a\xd3\x4b\xd3\x4c\xd3\x4d\xd3\x4e\xd3\x4f\xd3\x50\xd3\x51\xd3\x52\xd3\x53\xd3\x54\xd3\x55\xd3\x56\xd3\x57\xd3\x58\xd3\x59\xd3\x5a\xd3\x5b\xd3\x5c\xd3\x5d\xd3\x5e\xd3\x5f\xd3\x60\xd3\x61\xd3\x62\xd3\x63\xd3\x64\xd3\x65\xd3\x66\xd3\x67\xd3\x68\xd3\x69\xd3\x6a\xd3\x6b\xd3\x6c\xd3\x6d\xd3\x6e\xd3\x6f\xd3\x70\xd3\x71\xd3\x72\xd3\x73\xd3\x74\xd3\x75\xd3\x76\xd3\x77\xd3\x78\xd3\x79\xd3\x7a\xd3\x7b\xd3\x7c\xd3\x7d\xd3\x7e\xd3\x7f\xd3\x81\xd3\x82\xd3\x83\xd3\x84\xd3\x85\xd3\x86\xd3\x87\xd3\x88\xd3\x89\xd3\x8a\xd3\x8b\xd3\x8c\xd3\x8d\xd3\x8e\xd3\x8f\xd3\x90\xd3\x91\xd3\x92\xd3\x93\xd3\x94\xd3\x95\xd3\x96\xd3\x97\xd3\x98\xd3\x99\xd3\x9a\xd3\x9b\xd3\x9c\xd3\x9d\xd3\x9e\xd3\x9f\xd3\xa0\xd3\xa1\xd3\xa2\xd3\xa3\xd3\xa4\xd3\xa5\xd3\xa6\xd3\xa7\xd3\xa8\xd3\xa9\xd3\xaa\xd3\xab\xd3\xac\xd3\xad\xd3\xae\xd3\xaf\xd3\xb0\xd3\xb1\xd3\xb2\xd3\xb3\xd3\xb4\xd3\xb5\xd3\xb6\xd3\xb7\xd3\xb8\xd3\xb9\xd3\xba\xd3\xbb\xd3\xbc\xd3\xbd\xd3\xbe\xd3\xbf\xd3\xc0\xd3\xc1\xd3\xc2\xd3\xc3\xd3\xc4\xd3\xc5", /* ed00 */ "\xd3\xc6\xd3\xc7\xd3\xc8\xd3\xc9\xd3\xca\xd3\xcb\xd3\xcc\xd3\xcd\xd3\xce\xd3\xcf\xd3\xd0\xd3\xd1\xd3\xd2\xd3\xd3\xd3\xd4\xd3\xd5\xd3\xd6\xd3\xd7\xd3\xd8\xd3\xd9\xd3\xda\xd3\xdb\xd3\xdc\xd3\xdd\xd3\xde\xd3\xdf\xd3\xe0\xd3\xe1\xd3\xe2\xd3\xe3\xd3\xe4\xd3\xe5\xd3\xe6\xd3\xe7\xd3\xe8\xd3\xe9\xd3\xea\xd3\xeb\xd3\xec\xd3\xed\xd3\xee\xd3\xef\xd3\xf0\xd3\xf1\xd3\xf2\xd3\xf3\xd3\xf4\xd3\xf5\xd3\xf6\xd3\xf7\xd3\xf8\xd3\xf9\xd3\xfa\xd3\xfb\xd3\xfc\xd3\xfd\xd4\x41\xd4\x42\xd4\x43\xd4\x44\xd4\x45\xd4\x46\xd4\x47\xd4\x48\xd4\x49\xd4\x4a\xd4\x4b\xd4\x4c\xd4\x4d\xd4\x4e\xd4\x4f\xd4\x50\xd4\x51\xd4\x52\xd4\x53\xd4\x54\xd4\x55\xd4\x56\xd4\x57\xd4\x58\xd4\x59\xd4\x5a\xd4\x5b\xd4\x5c\xd4\x5d\xd4\x5e\xd4\x5f\xd4\x60\xd4\x61\xd4\x62\xd4\x63\xd4\x64\xd4\x65\xd4\x66\xd4\x67\xd4\x68\xd4\x69\xd4\x6a\xd4\x6b\xd4\x6c\xd4\x6d\xd4\x6e\xd4\x6f\xd4\x70\xd4\x71\xd4\x72\xd4\x73\xd4\x74\xd4\x75\xd4\x76\xd4\x77\xd4\x78\xd4\x79\xd4\x7a\xd4\x7b\xd4\x7c\xd4\x7d\xd4\x7e\xd4\x7f\xd4\x81\xd4\x82\xd4\x83\xd4\x84\xd4\x85\xd4\x86\xd4\x87\xd4\x88\xd4\x89", /* ed80 */ "\xd4\x8a\xd4\x8b\xd4\x8c\xd4\x8d\xd4\x8e\xd4\x8f\xd4\x90\xd4\x91\xd4\x92\xd4\x93\xd4\x94\xd4\x95\xd4\x96\xd4\x97\xd4\x98\xd4\x99\xd4\x9a\xd4\x9b\xd4\x9c\xd4\x9d\xd4\x9e\xd4\x9f\xd4\xa0\xd4\xa1\xd4\xa2\xd4\xa3\xd4\xa4\xd4\xa5\xd4\xa6\xd4\xa7\xd4\xa8\xd4\xa9\xd4\xaa\xd4\xab\xd4\xac\xd4\xad\xd4\xae\xd4\xaf\xd4\xb0\xd4\xb1\xd4\xb2\xd4\xb3\xd4\xb4\xd4\xb5\xd4\xb6\xd4\xb7\xd4\xb8\xd4\xb9\xd4\xba\xd4\xbb\xd4\xbc\xd4\xbd\xd4\xbe\xd4\xbf\xd4\xc0\xd4\xc1\xd4\xc2\xd4\xc3\xd4\xc4\xd4\xc5\xd4\xc6\xd4\xc7\xd4\xc8\xd4\xc9\xd4\xca\xd4\xcb\xd4\xcc\xd4\xcd\xd4\xce\xd4\xcf\xd4\xd0\xd4\xd1\xd4\xd2\xd4\xd3\xd4\xd4\xd4\xd5\xd4\xd6\xd4\xd7\xd4\xd8\xd4\xd9\xd4\xda\xd4\xdb\xd4\xdc\xd4\xdd\xd4\xde\xd4\xdf\xd4\xe0\xd4\xe1\xd4\xe2\xd4\xe3\xd4\xe4\xd4\xe5\xd4\xe6\xd4\xe7\xd4\xe8\xd4\xe9\xd4\xea\xd4\xeb\xd4\xec\xd4\xed\xd4\xee\xd4\xef\xd4\xf0\xd4\xf1\xd4\xf2\xd4\xf3\xd4\xf4\xd4\xf5\xd4\xf6\xd4\xf7\xd4\xf8\xd4\xf9\xd4\xfa\xd4\xfb\xd4\xfc\xd4\xfd\xd5\x41\xd5\x42\xd5\x43\xd5\x44\xd5\x45\xd5\x46\xd5\x47\xd5\x48\xd5\x49\xd5\x4a\xd5\x4b\xd5\x4c", /* ee00 */ "\xd5\x4d\xd5\x4e\xd5\x4f\xd5\x50\xd5\x51\xd5\x52\xd5\x53\xd5\x54\xd5\x55\xd5\x56\xd5\x57\xd5\x58\xd5\x59\xd5\x5a\xd5\x5b\xd5\x5c\xd5\x5d\xd5\x5e\xd5\x5f\xd5\x60\xd5\x61\xd5\x62\xd5\x63\xd5\x64\xd5\x65\xd5\x66\xd5\x67\xd5\x68\xd5\x69\xd5\x6a\xd5\x6b\xd5\x6c\xd5\x6d\xd5\x6e\xd5\x6f\xd5\x70\xd5\x71\xd5\x72\xd5\x73\xd5\x74\xd5\x75\xd5\x76\xd5\x77\xd5\x78\xd5\x79\xd5\x7a\xd5\x7b\xd5\x7c\xd5\x7d\xd5\x7e\xd5\x7f\xd5\x81\xd5\x82\xd5\x83\xd5\x84\xd5\x85\xd5\x86\xd5\x87\xd5\x88\xd5\x89\xd5\x8a\xd5\x8b\xd5\x8c\xd5\x8d\xd5\x8e\xd5\x8f\xd5\x90\xd5\x91\xd5\x92\xd5\x93\xd5\x94\xd5\x95\xd5\x96\xd5\x97\xd5\x98\xd5\x99\xd5\x9a\xd5\x9b\xd5\x9c\xd5\x9d\xd5\x9e\xd5\x9f\xd5\xa0\xd5\xa1\xd5\xa2\xd5\xa3\xd5\xa4\xd5\xa5\xd5\xa6\xd5\xa7\xd5\xa8\xd5\xa9\xd5\xaa\xd5\xab\xd5\xac\xd5\xad\xd5\xae\xd5\xaf\xd5\xb0\xd5\xb1\xd5\xb2\xd5\xb3\xd5\xb4\xd5\xb5\xd5\xb6\xd5\xb7\xd5\xb8\xd5\xb9\xd5\xba\xd5\xbb\xd5\xbc\xd5\xbd\xd5\xbe\xd5\xbf\xd5\xc0\xd5\xc1\xd5\xc2\xd5\xc3\xd5\xc4\xd5\xc5\xd5\xc6\xd5\xc7\xd5\xc8\xd5\xc9\xd5\xca\xd5\xcb\xd5\xcc\xd5\xcd", /* ee80 */ "\xd5\xce\xd5\xcf\xd5\xd0\xd5\xd1\xd5\xd2\xd5\xd3\xd5\xd4\xd5\xd5\xd5\xd6\xd5\xd7\xd5\xd8\xd5\xd9\xd5\xda\xd5\xdb\xd5\xdc\xd5\xdd\xd5\xde\xd5\xdf\xd5\xe0\xd5\xe1\xd5\xe2\xd5\xe3\xd5\xe4\xd5\xe5\xd5\xe6\xd5\xe7\xd5\xe8\xd5\xe9\xd5\xea\xd5\xeb\xd5\xec\xd5\xed\xd5\xee\xd5\xef\xd5\xf0\xd5\xf1\xd5\xf2\xd5\xf3\xd5\xf4\xd5\xf5\xd5\xf6\xd5\xf7\xd5\xf8\xd5\xf9\xd5\xfa\xd5\xfb\xd5\xfc\xd5\xfd\xd6\x41\xd6\x42\xd6\x43\xd6\x44\xd6\x45\xd6\x46\xd6\x47\xd6\x48\xd6\x49\xd6\x4a\xd6\x4b\xd6\x4c\xd6\x4d\xd6\x4e\xd6\x4f\xd6\x50\xd6\x51\xd6\x52\xd6\x53\xd6\x54\xd6\x55\xd6\x56\xd6\x57\xd6\x58\xd6\x59\xd6\x5a\xd6\x5b\xd6\x5c\xd6\x5d\xd6\x5e\xd6\x5f\xd6\x60\xd6\x61\xd6\x62\xd6\x63\xd6\x64\xd6\x65\xd6\x66\xd6\x67\xd6\x68\xd6\x69\xd6\x6a\xd6\x6b\xd6\x6c\xd6\x6d\xd6\x6e\xd6\x6f\xd6\x70\xd6\x71\xd6\x72\xd6\x73\xd6\x74\xd6\x75\xd6\x76\xd6\x77\xd6\x78\xd6\x79\xd6\x7a\xd6\x7b\xd6\x7c\xd6\x7d\xd6\x7e\xd6\x7f\xd6\x81\xd6\x82\xd6\x83\xd6\x84\xd6\x85\xd6\x86\xd6\x87\xd6\x88\xd6\x89\xd6\x8a\xd6\x8b\xd6\x8c\xd6\x8d\xd6\x8e\xd6\x8f\xd6\x90\xd6\x91", /* ef00 */ "\xd6\x92\xd6\x93\xd6\x94\xd6\x95\xd6\x96\xd6\x97\xd6\x98\xd6\x99\xd6\x9a\xd6\x9b\xd6\x9c\xd6\x9d\xd6\x9e\xd6\x9f\xd6\xa0\xd6\xa1\xd6\xa2\xd6\xa3\xd6\xa4\xd6\xa5\xd6\xa6\xd6\xa7\xd6\xa8\xd6\xa9\xd6\xaa\xd6\xab\xd6\xac\xd6\xad\xd6\xae\xd6\xaf\xd6\xb0\xd6\xb1\xd6\xb2\xd6\xb3\xd6\xb4\xd6\xb5\xd6\xb6\xd6\xb7\xd6\xb8\xd6\xb9\xd6\xba\xd6\xbb\xd6\xbc\xd6\xbd\xd6\xbe\xd6\xbf\xd6\xc0\xd6\xc1\xd6\xc2\xd6\xc3\xd6\xc4\xd6\xc5\xd6\xc6\xd6\xc7\xd6\xc8\xd6\xc9\xd6\xca\xd6\xcb\xd6\xcc\xd6\xcd\xd6\xce\xd6\xcf\xd6\xd0\xd6\xd1\xd6\xd2\xd6\xd3\xd6\xd4\xd6\xd5\xd6\xd6\xd6\xd7\xd6\xd8\xd6\xd9\xd6\xda\xd6\xdb\xd6\xdc\xd6\xdd\xd6\xde\xd6\xdf\xd6\xe0\xd6\xe1\xd6\xe2\xd6\xe3\xd6\xe4\xd6\xe5\xd6\xe6\xd6\xe7\xd6\xe8\xd6\xe9\xd6\xea\xd6\xeb\xd6\xec\xd6\xed\xd6\xee\xd6\xef\xd6\xf0\xd6\xf1\xd6\xf2\xd6\xf3\xd6\xf4\xd6\xf5\xd6\xf6\xd6\xf7\xd6\xf8\xd6\xf9\xd6\xfa\xd6\xfb\xd6\xfc\xd6\xfd\xd7\x41\xd7\x42\xd7\x43\xd7\x44\xd7\x45\xd7\x46\xd7\x47\xd7\x48\xd7\x49\xd7\x4a\xd7\x4b\xd7\x4c\xd7\x4d\xd7\x4e\xd7\x4f\xd7\x50\xd7\x51\xd7\x52\xd7\x53\xd7\x54", /* ef80 */ "\xd7\x55\xd7\x56\xd7\x57\xd7\x58\xd7\x59\xd7\x5a\xd7\x5b\xd7\x5c\xd7\x5d\xd7\x5e\xd7\x5f\xd7\x60\xd7\x61\xd7\x62\xd7\x63\xd7\x64\xd7\x65\xd7\x66\xd7\x67\xd7\x68\xd7\x69\xd7\x6a\xd7\x6b\xd7\x6c\xd7\x6d\xd7\x6e\xd7\x6f\xd7\x70\xd7\x71\xd7\x72\xd7\x73\xd7\x74\xd7\x75\xd7\x76\xd7\x77\xd7\x78\xd7\x79\xd7\x7a\xd7\x7b\xd7\x7c\xd7\x7d\xd7\x7e\xd7\x7f\xd7\x81\xd7\x82\xd7\x83\xd7\x84\xd7\x85\xd7\x86\xd7\x87\xd7\x88\xd7\x89\xd7\x8a\xd7\x8b\xd7\x8c\xd7\x8d\xd7\x8e\xd7\x8f\xd7\x90\xd7\x91\xd7\x92\xd7\x93\xd7\x94\xd7\x95\xd7\x96\xd7\x97\xd7\x98\xd7\x99\xd7\x9a\xd7\x9b\xd7\x9c\xd7\x9d\xd7\x9e\xd7\x9f\xd7\xa0\xd7\xa1\xd7\xa2\xd7\xa3\xd7\xa4\xd7\xa5\xd7\xa6\xd7\xa7\xd7\xa8\xd7\xa9\xd7\xaa\xd7\xab\xd7\xac\xd7\xad\xd7\xae\xd7\xaf\xd7\xb0\xd7\xb1\xd7\xb2\xd7\xb3\xd7\xb4\xd7\xb5\xd7\xb6\xd7\xb7\xd7\xb8\xd7\xb9\xd7\xba\xd7\xbb\xd7\xbc\xd7\xbd\xd7\xbe\xd7\xbf\xd7\xc0\xd7\xc1\xd7\xc2\xd7\xc3\xd7\xc4\xd7\xc5\xd7\xc6\xd7\xc7\xd7\xc8\xd7\xc9\xd7\xca\xd7\xcb\xd7\xcc\xd7\xcd\xd7\xce\xd7\xcf\xd7\xd0\xd7\xd1\xd7\xd2\xd7\xd3\xd7\xd4\xd7\xd5", /* f000 */ "\xd7\xd6\xd7\xd7\xd7\xd8\xd7\xd9\xd7\xda\xd7\xdb\xd7\xdc\xd7\xdd\xd7\xde\xd7\xdf\xd7\xe0\xd7\xe1\xd7\xe2\xd7\xe3\xd7\xe4\xd7\xe5\xd7\xe6\xd7\xe7\xd7\xe8\xd7\xe9\xd7\xea\xd7\xeb\xd7\xec\xd7\xed\xd7\xee\xd7\xef\xd7\xf0\xd7\xf1\xd7\xf2\xd7\xf3\xd7\xf4\xd7\xf5\xd7\xf6\xd7\xf7\xd7\xf8\xd7\xf9\xd7\xfa\xd7\xfb\xd7\xfc\xd7\xfd\xd8\x41\xd8\x42\xd8\x43\xd8\x44\xd8\x45\xd8\x46\xd8\x47\xd8\x48\xd8\x49\xd8\x4a\xd8\x4b\xd8\x4c\xd8\x4d\xd8\x4e\xd8\x4f\xd8\x50\xd8\x51\xd8\x52\xd8\x53\xd8\x54\xd8\x55\xd8\x56\xd8\x57\xd8\x58\xd8\x59\xd8\x5a\xd8\x5b\xd8\x5c\xd8\x5d\xd8\x5e\xd8\x5f\xd8\x60\xd8\x61\xd8\x62\xd8\x63\xd8\x64\xd8\x65\xd8\x66\xd8\x67\xd8\x68\xd8\x69\xd8\x6a\xd8\x6b\xd8\x6c\xd8\x6d\xd8\x6e\xd8\x6f\xd8\x70\xd8\x71\xd8\x72\xd8\x73\xd8\x74\xd8\x75\xd8\x76\xd8\x77\xd8\x78\xd8\x79\xd8\x7a\xd8\x7b\xd8\x7c\xd8\x7d\xd8\x7e\xd8\x7f\xd8\x81\xd8\x82\xd8\x83\xd8\x84\xd8\x85\xd8\x86\xd8\x87\xd8\x88\xd8\x89\xd8\x8a\xd8\x8b\xd8\x8c\xd8\x8d\xd8\x8e\xd8\x8f\xd8\x90\xd8\x91\xd8\x92\xd8\x93\xd8\x94\xd8\x95\xd8\x96\xd8\x97\xd8\x98\xd8\x99", /* f080 */ "\xd8\x9a\xd8\x9b\xd8\x9c\xd8\x9d\xd8\x9e\xd8\x9f\xd8\xa0\xd8\xa1\xd8\xa2\xd8\xa3\xd8\xa4\xd8\xa5\xd8\xa6\xd8\xa7\xd8\xa8\xd8\xa9\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae\xd8\xaf\xd8\xb0\xd8\xb1\xd8\xb2\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba\xd8\xbb\xd8\xbc\xd8\xbd\xd8\xbe\xd8\xbf\xd8\xc0\xd8\xc1\xd8\xc2\xd8\xc3\xd8\xc4\xd8\xc5\xd8\xc6\xd8\xc7\xd8\xc8\xd8\xc9\xd8\xca\xd8\xcb\xd8\xcc\xd8\xcd\xd8\xce\xd8\xcf\xd8\xd0\xd8\xd1\xd8\xd2\xd8\xd3\xd8\xd4\xd8\xd5\xd8\xd6\xd8\xd7\xd8\xd8\xd8\xd9\xd8\xda\xd8\xdb\xd8\xdc\xd8\xdd\xd8\xde\xd8\xdf\xd8\xe0\xd8\xe1\xd8\xe2\xd8\xe3\xd8\xe4\xd8\xe5\xd8\xe6\xd8\xe7\xd8\xe8\xd8\xe9\xd8\xea\xd8\xeb\xd8\xec\xd8\xed\xd8\xee\xd8\xef\xd8\xf0\xd8\xf1\xd8\xf2\xd8\xf3\xd8\xf4\xd8\xf5\xd8\xf6\xd8\xf7\xd8\xf8\xd8\xf9\xd8\xfa\xd8\xfb\xd8\xfc\xd8\xfd\xd9\x41\xd9\x42\xd9\x43\xd9\x44\xd9\x45\xd9\x46\xd9\x47\xd9\x48\xd9\x49\xd9\x4a\xd9\x4b\xd9\x4c\xd9\x4d\xd9\x4e\xd9\x4f\xd9\x50\xd9\x51\xd9\x52\xd9\x53\xd9\x54\xd9\x55\xd9\x56\xd9\x57\xd9\x58\xd9\x59\xd9\x5a\xd9\x5b\xd9\x5c", /* f100 */ "\xd9\x5d\xd9\x5e\xd9\x5f\xd9\x60\xd9\x61\xd9\x62\xd9\x63\xd9\x64\xd9\x65\xd9\x66\xd9\x67\xd9\x68\xd9\x69\xd9\x6a\xd9\x6b\xd9\x6c\xd9\x6d\xd9\x6e\xd9\x6f\xd9\x70\xd9\x71\xd9\x72\xd9\x73\xd9\x74\xd9\x75\xd9\x76\xd9\x77\xd9\x78\xd9\x79\xd9\x7a\xd9\x7b\xd9\x7c\xd9\x7d\xd9\x7e\xd9\x7f\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x88\xd9\x89\xd9\x8a\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f\xd9\x90\xd9\x91\xd9\x92\xd9\x93\xd9\x94\xd9\x95\xd9\x96\xd9\x97\xd9\x98\xd9\x99\xd9\x9a\xd9\x9b\xd9\x9c\xd9\x9d\xd9\x9e\xd9\x9f\xd9\xa0\xd9\xa1\xd9\xa2\xd9\xa3\xd9\xa4\xd9\xa5\xd9\xa6\xd9\xa7\xd9\xa8\xd9\xa9\xd9\xaa\xd9\xab\xd9\xac\xd9\xad\xd9\xae\xd9\xaf\xd9\xb0\xd9\xb1\xd9\xb2\xd9\xb3\xd9\xb4\xd9\xb5\xd9\xb6\xd9\xb7\xd9\xb8\xd9\xb9\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf\xd9\xc0\xd9\xc1\xd9\xc2\xd9\xc3\xd9\xc4\xd9\xc5\xd9\xc6\xd9\xc7\xd9\xc8\xd9\xc9\xd9\xca\xd9\xcb\xd9\xcc\xd9\xcd\xd9\xce\xd9\xcf\xd9\xd0\xd9\xd1\xd9\xd2\xd9\xd3\xd9\xd4\xd9\xd5\xd9\xd6\xd9\xd7\xd9\xd8\xd9\xd9\xd9\xda\xd9\xdb\xd9\xdc\xd9\xdd", /* f180 */ "\xd9\xde\xd9\xdf\xd9\xe0\xd9\xe1\xd9\xe2\xd9\xe3\xd9\xe4\xd9\xe5\xd9\xe6\xd9\xe7\xd9\xe8\xd9\xe9\xd9\xea\xd9\xeb\xd9\xec\xd9\xed\xd9\xee\xd9\xef\xd9\xf0\xd9\xf1\xd9\xf2\xd9\xf3\xd9\xf4\xd9\xf5\xd9\xf6\xd9\xf7\xd9\xf8\xd9\xf9\xd9\xfa\xd9\xfb\xd9\xfc\xd9\xfd\xda\x41\xda\x42\xda\x43\xda\x44\xda\x45\xda\x46\xda\x47\xda\x48\xda\x49\xda\x4a\xda\x4b\xda\x4c\xda\x4d\xda\x4e\xda\x4f\xda\x50\xda\x51\xda\x52\xda\x53\xda\x54\xda\x55\xda\x56\xda\x57\xda\x58\xda\x59\xda\x5a\xda\x5b\xda\x5c\xda\x5d\xda\x5e\xda\x5f\xda\x60\xda\x61\xda\x62\xda\x63\xda\x64\xda\x65\xda\x66\xda\x67\xda\x68\xda\x69\xda\x6a\xda\x6b\xda\x6c\xda\x6d\xda\x6e\xda\x6f\xda\x70\xda\x71\xda\x72\xda\x73\xda\x74\xda\x75\xda\x76\xda\x77\xda\x78\xda\x79\xda\x7a\xda\x7b\xda\x7c\xda\x7d\xda\x7e\xda\x7f\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87\xda\x88\xda\x89\xda\x8a\xda\x8b\xda\x8c\xda\x8d\xda\x8e\xda\x8f\xda\x90\xda\x91\xda\x92\xda\x93\xda\x94\xda\x95\xda\x96\xda\x97\xda\x98\xda\x99\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f\xda\xa0\xda\xa1", /* f200 */ "\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8\xda\xa9\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9\xda\xba\xda\xbb\xda\xbc\xda\xbd\xda\xbe\xda\xbf\xda\xc0\xda\xc1\xda\xc2\xda\xc3\xda\xc4\xda\xc5\xda\xc6\xda\xc7\xda\xc8\xda\xc9\xda\xca\xda\xcb\xda\xcc\xda\xcd\xda\xce\xda\xcf\xda\xd0\xda\xd1\xda\xd2\xda\xd3\xda\xd4\xda\xd5\xda\xd6\xda\xd7\xda\xd8\xda\xd9\xda\xda\xda\xdb\xda\xdc\xda\xdd\xda\xde\xda\xdf\xda\xe0\xda\xe1\xda\xe2\xda\xe3\xda\xe4\xda\xe5\xda\xe6\xda\xe7\xda\xe8\xda\xe9\xda\xea\xda\xeb\xda\xec\xda\xed\xda\xee\xda\xef\xda\xf0\xda\xf1\xda\xf2\xda\xf3\xda\xf4\xda\xf5\xda\xf6\xda\xf7\xda\xf8\xda\xf9\xda\xfa\xda\xfb\xda\xfc\xda\xfd\xdb\x41\xdb\x42\xdb\x43\xdb\x44\xdb\x45\xdb\x46\xdb\x47\xdb\x48\xdb\x49\xdb\x4a\xdb\x4b\xdb\x4c\xdb\x4d\xdb\x4e\xdb\x4f\xdb\x50\xdb\x51\xdb\x52\xdb\x53\xdb\x54\xdb\x55\xdb\x56\xdb\x57\xdb\x58\xdb\x59\xdb\x5a\xdb\x5b\xdb\x5c\xdb\x5d\xdb\x5e\xdb\x5f\xdb\x60\xdb\x61\xdb\x62\xdb\x63\xdb\x64", /* f280 */ "\xdb\x65\xdb\x66\xdb\x67\xdb\x68\xdb\x69\xdb\x6a\xdb\x6b\xdb\x6c\xdb\x6d\xdb\x6e\xdb\x6f\xdb\x70\xdb\x71\xdb\x72\xdb\x73\xdb\x74\xdb\x75\xdb\x76\xdb\x77\xdb\x78\xdb\x79\xdb\x7a\xdb\x7b\xdb\x7c\xdb\x7d\xdb\x7e\xdb\x7f\xdb\x81\xdb\x82\xdb\x83\xdb\x84\xdb\x85\xdb\x86\xdb\x87\xdb\x88\xdb\x89\xdb\x8a\xdb\x8b\xdb\x8c\xdb\x8d\xdb\x8e\xdb\x8f\xdb\x90\xdb\x91\xdb\x92\xdb\x93\xdb\x94\xdb\x95\xdb\x96\xdb\x97\xdb\x98\xdb\x99\xdb\x9a\xdb\x9b\xdb\x9c\xdb\x9d\xdb\x9e\xdb\x9f\xdb\xa0\xdb\xa1\xdb\xa2\xdb\xa3\xdb\xa4\xdb\xa5\xdb\xa6\xdb\xa7\xdb\xa8\xdb\xa9\xdb\xaa\xdb\xab\xdb\xac\xdb\xad\xdb\xae\xdb\xaf\xdb\xb0\xdb\xb1\xdb\xb2\xdb\xb3\xdb\xb4\xdb\xb5\xdb\xb6\xdb\xb7\xdb\xb8\xdb\xb9\xdb\xba\xdb\xbb\xdb\xbc\xdb\xbd\xdb\xbe\xdb\xbf\xdb\xc0\xdb\xc1\xdb\xc2\xdb\xc3\xdb\xc4\xdb\xc5\xdb\xc6\xdb\xc7\xdb\xc8\xdb\xc9\xdb\xca\xdb\xcb\xdb\xcc\xdb\xcd\xdb\xce\xdb\xcf\xdb\xd0\xdb\xd1\xdb\xd2\xdb\xd3\xdb\xd4\xdb\xd5\xdb\xd6\xdb\xd7\xdb\xd8\xdb\xd9\xdb\xda\xdb\xdb\xdb\xdc\xdb\xdd\xdb\xde\xdb\xdf\xdb\xe0\xdb\xe1\xdb\xe2\xdb\xe3\xdb\xe4\xdb\xe5", /* f300 */ "\xdb\xe6\xdb\xe7\xdb\xe8\xdb\xe9\xdb\xea\xdb\xeb\xdb\xec\xdb\xed\xdb\xee\xdb\xef\xdb\xf0\xdb\xf1\xdb\xf2\xdb\xf3\xdb\xf4\xdb\xf5\xdb\xf6\xdb\xf7\xdb\xf8\xdb\xf9\xdb\xfa\xdb\xfb\xdb\xfc\xdb\xfd\xdc\x41\xdc\x42\xdc\x43\xdc\x44\xdc\x45\xdc\x46\xdc\x47\xdc\x48\xdc\x49\xdc\x4a\xdc\x4b\xdc\x4c\xdc\x4d\xdc\x4e\xdc\x4f\xdc\x50\xdc\x51\xdc\x52\xdc\x53\xdc\x54\xdc\x55\xdc\x56\xdc\x57\xdc\x58\xdc\x59\xdc\x5a\xdc\x5b\xdc\x5c\xdc\x5d\xdc\x5e\xdc\x5f\xdc\x60\xdc\x61\xdc\x62\xdc\x63\xdc\x64\xdc\x65\xdc\x66\xdc\x67\xdc\x68\xdc\x69\xdc\x6a\xdc\x6b\xdc\x6c\xdc\x6d\xdc\x6e\xdc\x6f\xdc\x70\xdc\x71\xdc\x72\xdc\x73\xdc\x74\xdc\x75\xdc\x76\xdc\x77\xdc\x78\xdc\x79\xdc\x7a\xdc\x7b\xdc\x7c\xdc\x7d\xdc\x7e\xdc\x7f\xdc\x81\xdc\x82\xdc\x83\xdc\x84\xdc\x85\xdc\x86\xdc\x87\xdc\x88\xdc\x89\xdc\x8a\xdc\x8b\xdc\x8c\xdc\x8d\xdc\x8e\xdc\x8f\xdc\x90\xdc\x91\xdc\x92\xdc\x93\xdc\x94\xdc\x95\xdc\x96\xdc\x97\xdc\x98\xdc\x99\xdc\x9a\xdc\x9b\xdc\x9c\xdc\x9d\xdc\x9e\xdc\x9f\xdc\xa0\xdc\xa1\xdc\xa2\xdc\xa3\xdc\xa4\xdc\xa5\xdc\xa6\xdc\xa7\xdc\xa8\xdc\xa9", /* f380 */ "\xdc\xaa\xdc\xab\xdc\xac\xdc\xad\xdc\xae\xdc\xaf\xdc\xb0\xdc\xb1\xdc\xb2\xdc\xb3\xdc\xb4\xdc\xb5\xdc\xb6\xdc\xb7\xdc\xb8\xdc\xb9\xdc\xba\xdc\xbb\xdc\xbc\xdc\xbd\xdc\xbe\xdc\xbf\xdc\xc0\xdc\xc1\xdc\xc2\xdc\xc3\xdc\xc4\xdc\xc5\xdc\xc6\xdc\xc7\xdc\xc8\xdc\xc9\xdc\xca\xdc\xcb\xdc\xcc\xdc\xcd\xdc\xce\xdc\xcf\xdc\xd0\xdc\xd1\xdc\xd2\xdc\xd3\xdc\xd4\xdc\xd5\xdc\xd6\xdc\xd7\xdc\xd8\xdc\xd9\xdc\xda\xdc\xdb\xdc\xdc\xdc\xdd\xdc\xde\xdc\xdf\xdc\xe0\xdc\xe1\xdc\xe2\xdc\xe3\xdc\xe4\xdc\xe5\xdc\xe6\xdc\xe7\xdc\xe8\xdc\xe9\xdc\xea\xdc\xeb\xdc\xec\xdc\xed\xdc\xee\xdc\xef\xdc\xf0\xdc\xf1\xdc\xf2\xdc\xf3\xdc\xf4\xdc\xf5\xdc\xf6\xdc\xf7\xdc\xf8\xdc\xf9\xdc\xfa\xdc\xfb\xdc\xfc\xdc\xfd\xdd\x41\xdd\x42\xdd\x43\xdd\x44\xdd\x45\xdd\x46\xdd\x47\xdd\x48\xdd\x49\xdd\x4a\xdd\x4b\xdd\x4c\xdd\x4d\xdd\x4e\xdd\x4f\xdd\x50\xdd\x51\xdd\x52\xdd\x53\xdd\x54\xdd\x55\xdd\x56\xdd\x57\xdd\x58\xdd\x59\xdd\x5a\xdd\x5b\xdd\x5c\xdd\x5d\xdd\x5e\xdd\x5f\xdd\x60\xdd\x61\xdd\x62\xdd\x63\xdd\x64\xdd\x65\xdd\x66\xdd\x67\xdd\x68\xdd\x69\xdd\x6a\xdd\x6b\xdd\x6c", /* f400 */ "\xdd\x6d\xdd\x6e\xdd\x6f\xdd\x70\xdd\x71\xdd\x72\xdd\x73\xdd\x74\xdd\x75\xdd\x76\xdd\x77\xdd\x78\xdd\x79\xdd\x7a\xdd\x7b\xdd\x7c\xdd\x7d\xdd\x7e\xdd\x7f\xdd\x81\xdd\x82\xdd\x83\xdd\x84\xdd\x85\xdd\x86\xdd\x87\xdd\x88\xdd\x89\xdd\x8a\xdd\x8b\xdd\x8c\xdd\x8d\xdd\x8e\xdd\x8f\xdd\x90\xdd\x91\xdd\x92\xdd\x93\xdd\x94\xdd\x95\xdd\x96\xdd\x97\xdd\x98\xdd\x99\xdd\x9a\xdd\x9b\xdd\x9c\xdd\x9d\xdd\x9e\xdd\x9f\xdd\xa0\xdd\xa1\xdd\xa2\xdd\xa3\xdd\xa4\xdd\xa5\xdd\xa6\xdd\xa7\xdd\xa8\xdd\xa9\xdd\xaa\xdd\xab\xdd\xac\xdd\xad\xdd\xae\xdd\xaf\xdd\xb0\xdd\xb1\xdd\xb2\xdd\xb3\xdd\xb4\xdd\xb5\xdd\xb6\xdd\xb7\xdd\xb8\xdd\xb9\xdd\xba\xdd\xbb\xdd\xbc\xdd\xbd\xdd\xbe\xdd\xbf\xdd\xc0\xdd\xc1\xdd\xc2\xdd\xc3\xdd\xc4\xdd\xc5\xdd\xc6\xdd\xc7\xdd\xc8\xdd\xc9\xdd\xca\xdd\xcb\xdd\xcc\xdd\xcd\xdd\xce\xdd\xcf\xdd\xd0\xdd\xd1\xdd\xd2\xdd\xd3\xdd\xd4\xdd\xd5\xdd\xd6\xdd\xd7\xdd\xd8\xdd\xd9\xdd\xda\xdd\xdb\xdd\xdc\xdd\xdd\xdd\xde\xdd\xdf\xdd\xe0\xdd\xe1\xdd\xe2\xdd\xe3\xdd\xe4\xdd\xe5\xdd\xe6\xdd\xe7\xdd\xe8\xdd\xe9\xdd\xea\xdd\xeb\xdd\xec\xdd\xed", /* f480 */ "\xdd\xee\xdd\xef\xdd\xf0\xdd\xf1\xdd\xf2\xdd\xf3\xdd\xf4\xdd\xf5\xdd\xf6\xdd\xf7\xdd\xf8\xdd\xf9\xdd\xfa\xdd\xfb\xdd\xfc\xdd\xfd\xde\x41\xde\x42\xde\x43\xde\x44\xde\x45\xde\x46\xde\x47\xde\x48\xde\x49\xde\x4a\xde\x4b\xde\x4c\xde\x4d\xde\x4e\xde\x4f\xde\x50\xde\x51\xde\x52\xde\x53\xde\x54\xde\x55\xde\x56\xde\x57\xde\x58\xde\x59\xde\x5a\xde\x5b\xde\x5c\xde\x5d\xde\x5e\xde\x5f\xde\x60\xde\x61\xde\x62\xde\x63\xde\x64\xde\x65\xde\x66\xde\x67\xde\x68\xde\x69\xde\x6a\xde\x6b\xde\x6c\xde\x6d\xde\x6e\xde\x6f\xde\x70\xde\x71\xde\x72\xde\x73\xde\x74\xde\x75\xde\x76\xde\x77\xde\x78\xde\x79\xde\x7a\xde\x7b\xde\x7c\xde\x7d\xde\x7e\xde\x7f\xde\x81\xde\x82\xde\x83\xde\x84\xde\x85\xde\x86\xde\x87\xde\x88\xde\x89\xde\x8a\xde\x8b\xde\x8c\xde\x8d\xde\x8e\xde\x8f\xde\x90\xde\x91\xde\x92\xde\x93\xde\x94\xde\x95\xde\x96\xde\x97\xde\x98\xde\x99\xde\x9a\xde\x9b\xde\x9c\xde\x9d\xde\x9e\xde\x9f\xde\xa0\xde\xa1\xde\xa2\xde\xa3\xde\xa4\xde\xa5\xde\xa6\xde\xa7\xde\xa8\xde\xa9\xde\xaa\xde\xab\xde\xac\xde\xad\xde\xae\xde\xaf\xde\xb0\xde\xb1", /* f500 */ "\xde\xb2\xde\xb3\xde\xb4\xde\xb5\xde\xb6\xde\xb7\xde\xb8\xde\xb9\xde\xba\xde\xbb\xde\xbc\xde\xbd\xde\xbe\xde\xbf\xde\xc0\xde\xc1\xde\xc2\xde\xc3\xde\xc4\xde\xc5\xde\xc6\xde\xc7\xde\xc8\xde\xc9\xde\xca\xde\xcb\xde\xcc\xde\xcd\xde\xce\xde\xcf\xde\xd0\xde\xd1\xde\xd2\xde\xd3\xde\xd4\xde\xd5\xde\xd6\xde\xd7\xde\xd8\xde\xd9\xde\xda\xde\xdb\xde\xdc\xde\xdd\xde\xde\xde\xdf\xde\xe0\xde\xe1\xde\xe2\xde\xe3\xde\xe4\xde\xe5\xde\xe6\xde\xe7\xde\xe8\xde\xe9\xde\xea\xde\xeb\xde\xec\xde\xed\xde\xee\xde\xef\xde\xf0\xde\xf1\xde\xf2\xde\xf3\xde\xf4\xde\xf5\xde\xf6\xde\xf7\xde\xf8\xde\xf9\xde\xfa\xde\xfb\xde\xfc\xde\xfd\xdf\x41\xdf\x42\xdf\x43\xdf\x44\xdf\x45\xdf\x46\xdf\x47\xdf\x48\xdf\x49\xdf\x4a\xdf\x4b\xdf\x4c\xdf\x4d\xdf\x4e\xdf\x4f\xdf\x50\xdf\x51\xdf\x52\xdf\x53\xdf\x54\xdf\x55\xdf\x56\xdf\x57\xdf\x58\xdf\x59\xdf\x5a\xdf\x5b\xdf\x5c\xdf\x5d\xdf\x5e\xdf\x5f\xdf\x60\xdf\x61\xdf\x62\xdf\x63\xdf\x64\xdf\x65\xdf\x66\xdf\x67\xdf\x68\xdf\x69\xdf\x6a\xdf\x6b\xdf\x6c\xdf\x6d\xdf\x6e\xdf\x6f\xdf\x70\xdf\x71\xdf\x72\xdf\x73\xdf\x74", /* f580 */ "\xdf\x75\xdf\x76\xdf\x77\xdf\x78\xdf\x79\xdf\x7a\xdf\x7b\xdf\x7c\xdf\x7d\xdf\x7e\xdf\x7f\xdf\x81\xdf\x82\xdf\x83\xdf\x84\xdf\x85\xdf\x86\xdf\x87\xdf\x88\xdf\x89\xdf\x8a\xdf\x8b\xdf\x8c\xdf\x8d\xdf\x8e\xdf\x8f\xdf\x90\xdf\x91\xdf\x92\xdf\x93\xdf\x94\xdf\x95\xdf\x96\xdf\x97\xdf\x98\xdf\x99\xdf\x9a\xdf\x9b\xdf\x9c\xdf\x9d\xdf\x9e\xdf\x9f\xdf\xa0\xdf\xa1\xdf\xa2\xdf\xa3\xdf\xa4\xdf\xa5\xdf\xa6\xdf\xa7\xdf\xa8\xdf\xa9\xdf\xaa\xdf\xab\xdf\xac\xdf\xad\xdf\xae\xdf\xaf\xdf\xb0\xdf\xb1\xdf\xb2\xdf\xb3\xdf\xb4\xdf\xb5\xdf\xb6\xdf\xb7\xdf\xb8\xdf\xb9\xdf\xba\xdf\xbb\xdf\xbc\xdf\xbd\xdf\xbe\xdf\xbf\xdf\xc0\xdf\xc1\xdf\xc2\xdf\xc3\xdf\xc4\xdf\xc5\xdf\xc6\xdf\xc7\xdf\xc8\xdf\xc9\xdf\xca\xdf\xcb\xdf\xcc\xdf\xcd\xdf\xce\xdf\xcf\xdf\xd0\xdf\xd1\xdf\xd2\xdf\xd3\xdf\xd4\xdf\xd5\xdf\xd6\xdf\xd7\xdf\xd8\xdf\xd9\xdf\xda\xdf\xdb\xdf\xdc\xdf\xdd\xdf\xde\xdf\xdf\xdf\xe0\xdf\xe1\xdf\xe2\xdf\xe3\xdf\xe4\xdf\xe5\xdf\xe6\xdf\xe7\xdf\xe8\xdf\xe9\xdf\xea\xdf\xeb\xdf\xec\xdf\xed\xdf\xee\xdf\xef\xdf\xf0\xdf\xf1\xdf\xf2\xdf\xf3\xdf\xf4\xdf\xf5", /* f600 */ "\xdf\xf6\xdf\xf7\xdf\xf8\xdf\xf9\xdf\xfa\xdf\xfb\xdf\xfc\xdf\xfd\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9", /* f680 */ "\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc\xe0\xfd\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c", /* f700 */ "\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd", /* f780 */ "\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1", /* f800 */ "\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\x00\x00\x00\x00\x44\x5c\x46\xa8\x46\xa9\x46\xaa\x46\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4b\x7a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x41\x46\xa7\x47\x49\x46\xb6\x46\xbc\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xa4\x46\xa5\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xa0\x46\xa1\x46\xa2\x46\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x46\xbe\x46\xbf\x46\xc2\x46\xc3\x46\xc0\x46\xc1\x46\xbd\x47\x42\x47\x43\x47\x44\x00\x00\x47\x45\x47\x46\x47\x47\x47\x48\x47\x4a\x47\x4b\x47\x4c\x47\x4d\x47\x4e\x47\x4f\x47\x50\x47\x53\x47\x54\x46\xc4\x47\x55\x47\x56\x47\x57\x47\x58\x47\x59\x00\x00\x47\x5a\x47\x5b\x47\x5c\x47\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x46\xb8\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x00\x00\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x47\x51\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-937_P110-1999 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\x27\x3d\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x35\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x3e\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x20\x27\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x23\x12\x22\x02\x22\x07\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\x00\x00\x00\x00\x22\x6a\x22\x6b\x00\x00\x22\x3d\x22\x1d\x00\x00\x22\x2c\x22\x08\x22\x0b\x22\x86\x22\x87\x22\x82\x22\x83\x00\x00\x00\x00\x22\x27\x22\x28\x21\xd2\x21\xd4\x22\x00\x22\x03\x21\x2b\x20\x30\x26\x6f\x26\x6d\x26\x6a\x20\x20\x20\x21\x00\xb6\x25\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x01\x25\x03\x25\x0f\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x25\x13\x25\x1b\x25\x17\x25\x23\x25\x33\x25\x2b\x25\x3b\x25\x4b\x25\x20\x25\x2f\x25\x28\x25\x37\x25\x3f\x25\x1d\x25\x30\x25\x25\x25\x38\x25\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x14\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x20\x32\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x02\xba\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x66\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x67\x22\x35\x26\x40\x00\xd7\x00\xf7\x22\x25\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x00\xb4\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x21\x30\x22\x30\x23\x30\x24\x30\x25\x30\x26\x30\x27\x30\x28\x30\x29\x53\x41\x53\x44\x53\x45\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xca\x02\xc7\x02\xcb\x02\xd9\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ NULL, /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x81\x25\x82\x25\x83\x25\x84\x25\x85\x25\x86\x25\x87\x25\x88\x25\x8f\x25\x8e\x25\x8d\x25\x8c\x25\x8b\x25\x8a\x25\x89\x25\x3c\x25\x34\x25\x2c\x25\x24\x25\x1c\x25\x94\x25\x00\x25\x02\x25\x95\x25\x0c\x25\x10\x25\x14\x25\x18\x25\x6d\x25\x6e\x25\x70\x25\x6f", /* 4680 */ "\x00\x00\x25\x50\x25\x5e\x25\x6a\x25\x61\x25\xe2\x25\xe3\x25\xe5\x25\xe4\x25\x71\x25\x72\x25\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x41\xfe\x42\xfe\x43\xfe\x44\xfe\x3b\xfe\x3c\x00\x00\xfe\x31\xf8\x3f\xf8\x40\xf8\x41\xf8\x42\xfe\x35\xfe\x36\xfe\x37\xfe\x38\xfe\x39\xfe\x3a\xfe\x3d\xfe\x3e\xfe\x3f\xfe\x40\xfe\x33\x25\x74\xff\x0a\x30\x03\x32\xa3\x21\x05\xfe\x34\xfe\x4f\xfe\x49\xfe\x4a\xfe\x4d\xfe\x4e\xfe\x4b\xfe\x4c\xfe\x61\x22\x1a\x22\x52\x22\x61\x22\x29\x22\x2a\x22\xa5\x22\x20\x22\x1f\x22\xbf\x33\xd2\x33\xd1\x22\x2b\x22\x2e\x22\x95\x22\x99\x21\x96\x21\x97\x21\x99\x21\x98\x00\x00\x00\x00\x22\x15\x21\x09\x33\xd5\x33\x9c\x33\x9d\x33\x9e\x33\xce\x33\xa1\x33\x8e\x33\x8f\x33\xc4\x00\xb7\x00\x00\x00\x00\x00\x00\x30\x1d\x30\x1e\x00\x00\x00\x00\x00\x00\x21\xe7\x21\xb8\x21\xb9\x51\x59\x51\x5b\x51\x5e\x51\x5d\x51\x61\x51\x63\x55\xe7\x74\xe9\x7c\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x30\xfe\x50\xfe\x51\xfe\x52\xfe\x54\xfe\x55\xfe\x56\xfe\x57\xfe\x32\xfe\x58\xfe\x59\xfe\x5a\xfe\x5b\xfe\x5c\xfe\x5d\xfe\x5e\xff\xe3\x02\xcd\xfe\x5f\xfe\x60\xfe\x62\xfe\x63\xfe\x64\xfe\x65\xfe\x66\xfe\x68\xfe\x69\xfe\x6a\xfe\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4780 */ "\x00\x00\x24\x00\x24\x01\x24\x02\x24\x03\x24\x04\x24\x05\x24\x06\x24\x07\x24\x08\x24\x09\x24\x0a\x24\x0b\x24\x0c\x24\x0d\x24\x0e\x24\x0f\x24\x10\x24\x11\x24\x12\x24\x13\x24\x14\x24\x15\x24\x16\x24\x17\x24\x18\x24\x19\x24\x1a\x24\x1b\x24\x1c\x24\x1d\x24\x1e\x24\x1f\x24\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x28\x4e\x36\x4e\x3f\x4e\x59\x4e\x85\x4e\x8c\x4e\xa0\x4e\xba\x51\x3f\x51\x65\x51\x6b\x51\x82\x51\x96\x51\xab\x51\xe0\x51\xf5\x52\x00\x52\x9b\x52\xf9\x53\x15\x53\x1a\x53\x38\x53\x41\x53\x5c\x53\x69\x53\x82\x53\xb6\x53\xc8\x53\xe3\x56\xd7\x57\x1f\x58\xeb\x59\x0a\x59\x15\x59\x27\x59\x73\x5b\x50\x5b\x80\x5b\xf8\x5c\x0f\x5c\x22\x5c\x38\x5c\x6e\x5c\x71\x5d\xdb\x5d\xe5\x5d\xf1\x5d\xfe\x5e\x72\x5e\x7a\x5e\x7f\x5e\xf4\x5e\xfe\x5f\x0b\x5f\x13\x5f\x50\x5f\x61\x5f\x73\x5f\xc3\x62\x08\x62\x36\x62\x4b", /* 4880 */ "\x00\x00\x65\x2f\x65\x34\x65\x87\x65\x97\x65\xa4\x65\xb9\x65\xe0\x65\xe5\x66\xf0\x67\x08\x67\x28\x6b\x20\x6b\x62\x6b\x79\x6b\xb3\x6b\xcb\x6b\xd4\x6b\xdb\x6c\x0f\x6c\x14\x6c\x34\x70\x6b\x72\x2a\x72\x36\x72\x3b\x72\x3f\x72\x47\x72\x59\x72\x5b\x72\xac\x73\x84\x73\x89\x74\xdc\x74\xe6\x75\x18\x75\x1f\x75\x28\x75\x30\x75\x8b\x75\x92\x76\x76\x76\x7d\x76\xae\x76\xbf\x76\xee\x77\xdb\x77\xe2\x77\xf3\x79\x3a\x79\xb8\x79\xbe\x7a\x74\x7a\xcb\x7a\xf9\x7c\x73\x7c\xf8\x7f\x36\x7f\x51\x7f\x8a\x7f\xbd\x80\x01\x80\x0c\x80\x12\x80\x33\x80\x7f\x80\x89\x81\xe3\x81\xea\x81\xf3\x81\xfc\x82\x0c\x82\x1b\x82\x1f\x82\x6e\x82\x72\x82\x78\x86\x4d\x86\x6b\x88\x40\x88\x4c\x88\x63\x89\x7e\x89\x8b\x89\xd2\x8a\x00\x8c\x37\x8c\x46\x8c\x55\x8c\x78\x8c\x9d\x8d\x64\x8d\x70\x8d\xb3\x8e\xab\x8e\xca\x8f\x9b\x8f\xb0\x8f\xb5\x90\x91\x91\x49\x91\xc6\x91\xcc\x91\xd1\x95\x77\x95\x80\x96\x1c\x96\xb6\x96\xb9\x96\xe8\x97\x52\x97\x5e\x97\x62\x97\x69\x97\xcb\x97\xed\x97\xf3\x98\x01\x98\xa8\x98\xdb\x98\xdf\x99\x96\x99\x99\x99\xac\x9a\xa8\x9a\xd8\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xdf\x9b\x25\x9b\x2f\x9b\x32\x9b\x3c\x9b\x5a\x9c\xe5\x9e\x75\x9e\x7f\x9e\xa5\x9e\xbb\x9e\xc3\x9e\xcd\x9e\xd1\x9e\xf9\x9e\xfd\x9f\x0e\x9f\x13\x9f\x20\x9f\x3b\x9f\x4a\x9f\x52\x9f\x8d\x9f\x9c\x9f\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x59\x4e\x01\x4e\x03\x4e\x43\x4e\x5d\x4e\x86\x4e\x8c\x4e\xba\x51\x3f\x51\x65\x51\x6b\x51\xe0\x52\x00\x52\x01\x52\x9b\x53\x15\x53\x41\x53\x5c\x53\xc8\x4e\x09\x4e\x0b\x4e\x08\x4e\x0a\x4e\x2b\x4e\x38\x51\xe1\x4e\x45\x4e\x48\x4e\x5f\x4e\x5e\x4e\x8e\x4e\xa1\x51\x40\x52\x03\x52\xfa\x53\x43\x53\xc9\x53\xe3\x57\x1f\x58\xeb\x59\x15\x59\x27\x59\x73\x5b\x50\x5b\x51\x5b\x53\x5b\xf8\x5c\x0f\x5c\x22\x5c\x38\x5c\x71\x5d\xdd\x5d\xe5\x5d\xf1\x5d\xf2\x5d\xf3\x5d\xfe\x5e\x72\x5e\xfe\x5f\x0b\x5f\x13\x62\x4d", /* 4c80 */ "\x00\x00\x4e\x11\x4e\x10\x4e\x0d\x4e\x2d\x4e\x30\x4e\x39\x4e\x4b\x5c\x39\x4e\x88\x4e\x91\x4e\x95\x4e\x92\x4e\x94\x4e\xa2\x4e\xc1\x4e\xc0\x4e\xc3\x4e\xc6\x4e\xc7\x4e\xcd\x4e\xca\x4e\xcb\x4e\xc4\x51\x43\x51\x41\x51\x67\x51\x6d\x51\x6e\x51\x6c\x51\x97\x51\xf6\x52\x06\x52\x07\x52\x08\x52\xfb\x52\xfe\x52\xff\x53\x16\x53\x39\x53\x48\x53\x47\x53\x45\x53\x5e\x53\x84\x53\xcb\x53\xca\x53\xcd\x58\xec\x59\x29\x59\x2b\x59\x2a\x59\x2d\x5b\x54\x5c\x11\x5c\x24\x5c\x3a\x5c\x6f\x5d\xf4\x5e\x7b\x5e\xff\x5f\x14\x5f\x15\x5f\xc3\x62\x08\x62\x36\x62\x4b\x62\x4e\x65\x2f\x65\x87\x65\x97\x65\xa4\x65\xb9\x65\xe5\x66\xf0\x67\x08\x67\x28\x6b\x20\x6b\x62\x6b\x79\x6b\xcb\x6b\xd4\x6b\xdb\x6c\x0f\x6c\x34\x70\x6b\x72\x2a\x72\x36\x72\x3b\x72\x47\x72\x59\x72\x5b\x72\xac\x73\x8b\x4e\x19\x4e\x16\x4e\x15\x4e\x14\x4e\x18\x4e\x3b\x4e\x4d\x4e\x4f\x4e\x4e\x4e\xe5\x4e\xd8\x4e\xd4\x4e\xd5\x4e\xd6\x4e\xd7\x4e\xe3\x4e\xe4\x4e\xd9\x4e\xde\x51\x45\x51\x44\x51\x89\x51\x8a\x51\xac\x51\xf9\x51\xfa\x51\xf8\x52\x0a\x52\xa0\x52\x9f\x53\x05\x53\x06\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x17\x53\x1d\x4e\xdf\x53\x4a\x53\x49\x53\x61\x53\x60\x53\x6f\x53\x6e\x53\xbb\x53\xef\x53\xe4\x53\xf3\x53\xec\x53\xee\x53\xe9\x53\xe8\x53\xfc\x53\xf8\x53\xf5\x53\xeb\x53\xe6\x53\xea\x53\xf2\x53\xf1\x53\xf0\x53\xe5\x53\xed\x53\xfb\x56\xdb\x56\xda\x59\x16\x59\x2e\x59\x31\x59\x74\x59\x76\x5b\x55\x5b\x83\x5c\x3c\x5d\xe8\x5d\xe7\x5d\xe6\x5e\x02\x5e\x03\x5e\x73\x5e\x7c\x5f\x01\x5f\x18\x5f\x17\x5f\xc5\x62\x0a\x62\x53\x62\x54\x62\x52\x62\x51\x65\xa5\x65\xe6\x67\x2e\x67\x2c\x67\x2a\x67\x2b\x67\x2d\x6b\x63", /* 4d80 */ "\x00\x00\x6b\xcd\x6c\x11\x6c\x10\x6c\x38\x6c\x41\x6c\x40\x6c\x3e\x72\xaf\x73\x84\x73\x89\x74\xdc\x74\xe6\x75\x18\x75\x1f\x75\x28\x75\x29\x75\x30\x75\x31\x75\x32\x75\x33\x75\x8b\x76\x7d\x76\xae\x76\xbf\x76\xee\x77\xdb\x77\xe2\x77\xf3\x79\x3a\x79\xbe\x7a\x74\x7a\xcb\x4e\x1e\x4e\x1f\x4e\x52\x4e\x53\x4e\x69\x4e\x99\x4e\xa4\x4e\xa6\x4e\xa5\x4e\xff\x4f\x09\x4f\x19\x4f\x0a\x4f\x15\x4f\x0d\x4f\x10\x4f\x11\x4f\x0f\x4e\xf2\x4e\xf6\x4e\xfb\x4e\xf0\x4e\xf3\x4e\xfd\x4f\x01\x4f\x0b\x51\x49\x51\x47\x51\x46\x51\x48\x51\x68\x51\x71\x51\x8d\x51\xb0\x52\x17\x52\x11\x52\x12\x52\x0e\x52\x16\x52\xa3\x53\x08\x53\x21\x53\x20\x53\x70\x53\x71\x54\x09\x54\x0f\x54\x0c\x54\x0a\x54\x10\x54\x01\x54\x0b\x54\x04\x54\x11\x54\x0d\x54\x08\x54\x03\x54\x0e\x54\x06\x54\x12\x56\xe0\x56\xde\x56\xdd\x57\x33\x57\x30\x57\x28\x57\x2d\x57\x2c\x57\x2f\x57\x29\x59\x19\x59\x1a\x59\x37\x59\x38\x59\x84\x59\x78\x59\x83\x59\x7d\x59\x79\x59\x82\x59\x81\x5b\x57\x5b\x58\x5b\x87\x5b\x88\x5b\x85\x5b\x89\x5b\xfa\x5c\x16\x5c\x79\x5d\xde\x5e\x06\x5e\x76\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x74\x5f\x0f\x5f\x1b\x5f\xd9\x5f\xd6\x62\x0e\x62\x0c\x62\x0d\x62\x10\x62\x63\x62\x5b\x62\x58\x65\x36\x65\xe9\x65\xe8\x65\xec\x65\xed\x66\xf2\x66\xf3\x67\x09\x67\x3d\x67\x34\x67\x31\x67\x35\x6b\x21\x6b\x64\x6b\x7b\x6c\x16\x6c\x5d\x6c\x57\x6c\x59\x6c\x5f\x6c\x60\x6c\x50\x6c\x55\x6c\x61\x6c\x5b\x6c\x4d\x6c\x4e\x70\x70\x72\x5f\x72\x5d\x76\x7e\x7a\xf9\x7c\x73\x7c\xf8\x7f\x36\x7f\x8a\x7f\xbd\x80\x01\x80\x03\x80\x0c\x80\x12\x80\x33\x80\x7f\x80\x89\x80\x8b\x80\x8c\x81\xe3\x81\xea\x81\xf3\x81\xfc\x82\x0c", /* 4e80 */ "\x00\x00\x82\x1b\x82\x1f\x82\x6e\x82\x72\x82\x7e\x86\x6b\x88\x40\x88\x4c\x88\x63\x89\x7f\x96\x21\x4e\x32\x4e\xa8\x4f\x4d\x4f\x4f\x4f\x47\x4f\x57\x4f\x5e\x4f\x34\x4f\x5b\x4f\x55\x4f\x30\x4f\x50\x4f\x51\x4f\x3d\x4f\x3a\x4f\x38\x4f\x43\x4f\x54\x4f\x3c\x4f\x46\x4f\x63\x4f\x5c\x4f\x60\x4f\x2f\x4f\x4e\x4f\x36\x4f\x59\x4f\x5d\x4f\x48\x4f\x5a\x51\x4c\x51\x4b\x51\x4d\x51\x75\x51\xb6\x51\xb7\x52\x25\x52\x24\x52\x29\x52\x2a\x52\x28\x52\xab\x52\xa9\x52\xaa\x52\xac\x53\x23\x53\x73\x53\x75\x54\x1d\x54\x2d\x54\x1e\x54\x3e\x54\x26\x54\x4e\x54\x27\x54\x46\x54\x43\x54\x33\x54\x48\x54\x42\x54\x1b\x54\x29\x54\x4a\x54\x39\x54\x3b\x54\x38\x54\x2e\x54\x35\x54\x36\x54\x20\x54\x3c\x54\x40\x54\x31\x54\x2b\x54\x1f\x54\x2c\x56\xea\x56\xf0\x56\xe4\x56\xeb\x57\x4a\x57\x51\x57\x40\x57\x4d\x57\x47\x57\x4e\x57\x3e\x57\x50\x57\x4f\x57\x3b\x58\xef\x59\x3e\x59\x9d\x59\x92\x59\xa8\x59\x9e\x59\xa3\x59\x99\x59\x96\x59\x8d\x59\xa4\x59\x93\x59\x8a\x59\xa5\x5b\x5d\x5b\x5c\x5b\x5a\x5b\x5b\x5b\x8c\x5b\x8b\x5b\x8f\x5c\x2c\x5c\x40\x5c\x41\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x3f\x5c\x3e\x5c\x90\x5c\x91\x5c\x94\x5c\x8c\x5d\xeb\x5e\x0c\x5e\x8f\x5e\x87\x5e\x8a\x5e\xf7\x5f\x04\x5f\x1f\x5f\x64\x5f\x62\x5f\x77\x5f\x79\x5f\xd8\x5f\xcc\x5f\xd7\x5f\xcd\x5f\xf1\x5f\xeb\x5f\xf8\x5f\xea\x62\x12\x62\x11\x62\x84\x62\x97\x62\x96\x62\x80\x62\x76\x62\x89\x62\x6d\x62\x8a\x62\x7c\x62\x7e\x62\x79\x62\x73\x62\x92\x62\x6f\x62\x98\x62\x6e\x62\x95\x62\x93\x62\x91\x62\x86\x65\x39\x65\x3b\x65\x38\x65\xf1\x66\xf4\x67\x5f\x67\x4e\x67\x4f\x67\x50\x67\x51\x67\x5c\x67\x56\x67\x5e\x67\x49\x67\x46", /* 4f80 */ "\x00\x00\x67\x60\x67\x53\x67\x57\x6b\x65\x6b\xcf\x6c\x42\x6c\x5e\x6c\x99\x6c\x81\x6c\x88\x6c\x89\x6c\x85\x6c\x9b\x6c\x6a\x6c\x7a\x6c\x90\x6c\x70\x6c\x8c\x6c\x68\x6c\x96\x6c\x92\x6c\x7d\x6c\x83\x6c\x72\x6c\x7e\x6c\x74\x6c\x86\x6c\x76\x6c\x8d\x6c\x94\x6c\x98\x6c\x82\x70\x76\x70\x7c\x70\x7d\x70\x78\x72\x62\x72\x61\x72\x60\x72\xc4\x72\xc2\x73\x96\x75\x2c\x75\x2b\x75\x37\x75\x38\x76\x82\x76\xef\x77\xe3\x79\xc1\x79\xc0\x79\xbf\x7a\x76\x7c\xfb\x7f\x55\x80\x96\x80\x93\x80\x9d\x80\x98\x80\x9b\x80\x9a\x80\xb2\x82\x6f\x82\x92\x82\x8b\x82\x8d\x89\x8b\x89\xd2\x8a\x00\x8c\x37\x8c\x46\x8c\x55\x8c\x9d\x8d\x64\x8d\x70\x8d\xb3\x8e\xab\x8e\xca\x8f\x9b\x8f\xb0\x8f\xc2\x8f\xc6\x8f\xc5\x8f\xc4\x5d\xe1\x90\x91\x90\xa2\x90\xaa\x90\xa6\x90\xa3\x91\x49\x91\xc6\x91\xcc\x96\x32\x96\x2e\x96\x31\x96\x2a\x96\x2c\x4e\x26\x4e\x56\x4e\x73\x4e\x8b\x4e\x9b\x4e\x9e\x4e\xab\x4e\xac\x4f\x6f\x4f\x9d\x4f\x8d\x4f\x73\x4f\x7f\x4f\x6c\x4f\x9b\x4f\x8b\x4f\x86\x4f\x83\x4f\x70\x4f\x75\x4f\x88\x4f\x69\x4f\x7b\x4f\x96\x4f\x7e\x4f\x8f\x4f\x91\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7a\x51\x54\x51\x52\x51\x55\x51\x69\x51\x77\x51\x76\x51\x78\x51\xbd\x51\xfd\x52\x3b\x52\x38\x52\x37\x52\x3a\x52\x30\x52\x2e\x52\x36\x52\x41\x52\xbe\x52\xbb\x53\x52\x53\x54\x53\x53\x53\x51\x53\x66\x53\x77\x53\x78\x53\x79\x53\xd6\x53\xd4\x53\xd7\x54\x73\x54\x75\x54\x96\x54\x78\x54\x95\x54\x80\x54\x7b\x54\x77\x54\x84\x54\x92\x54\x86\x54\x7c\x54\x90\x54\x71\x54\x76\x54\x8c\x54\x9a\x54\x62\x54\x68\x54\x8b\x54\x7d\x54\x8e\x56\xfa\x57\x83\x57\x77\x57\x6a\x57\x69\x57\x61\x57\x66\x57\x64\x57\x7c\x59\x1c", /* 5080 */ "\x00\x00\x59\x49\x59\x47\x59\x48\x59\x44\x59\x54\x59\xbe\x59\xbb\x59\xd4\x59\xb9\x59\xae\x59\xd1\x59\xc6\x59\xd0\x59\xcd\x59\xcb\x59\xd3\x59\xca\x59\xaf\x59\xb3\x59\xd2\x59\xc5\x5b\x5f\x5b\x64\x5b\x63\x5b\x97\x5b\x9a\x5b\x98\x5b\x9c\x5b\x99\x5b\x9b\x5c\x1a\x5c\x48\x5c\x45\x5c\x46\x5c\xb7\x5c\xa1\x5c\xb8\x5c\xa9\x5c\xab\x5c\xb1\x5c\xb3\x5e\x18\x5e\x1a\x5e\x16\x5e\x15\x5e\x1b\x5e\x11\x5e\x78\x5e\x9a\x5e\x97\x5e\x9c\x5e\x95\x5e\x96\x5e\xf6\x5f\x26\x5f\x27\x5f\x29\x5f\x80\x5f\x81\x5f\x7f\x5f\x7c\x5f\xdd\x5f\xe0\x5f\xfd\x5f\xf5\x5f\xff\x60\x0f\x60\x14\x60\x2f\x60\x35\x60\x16\x60\x2a\x60\x15\x60\x21\x60\x27\x60\x29\x60\x2b\x60\x1b\x62\x16\x62\x15\x62\x3f\x62\x3e\x62\x40\x62\x7f\x62\xc9\x62\xcc\x62\xc4\x62\xbf\x62\xc2\x62\xb9\x62\xd2\x62\xdb\x62\xab\x62\xd3\x62\xd4\x62\xcb\x62\xc8\x62\xa8\x62\xbd\x62\xbc\x62\xd0\x62\xd9\x62\xc7\x62\xcd\x62\xb5\x62\xda\x62\xb1\x62\xd8\x62\xd6\x62\xd7\x62\xc6\x62\xac\x62\xce\x65\x3e\x65\xa7\x65\xbc\x65\xfa\x66\x14\x66\x13\x66\x0c\x66\x06\x66\x02\x66\x0e\x66\x00\x66\x0f\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x15\x66\x0a\x66\x07\x67\x0d\x67\x0b\x67\x6d\x67\x8b\x67\x95\x67\x71\x67\x9c\x67\x73\x67\x77\x67\x87\x67\x9d\x67\x97\x67\x6f\x67\x70\x67\x7f\x67\x89\x67\x7e\x67\x90\x67\x75\x67\x9a\x67\x93\x67\x7c\x67\x6a\x67\x72\x6b\x23\x6b\x66\x6b\x67\x6b\x7f\x6c\x13\x6c\x1b\x6c\xe3\x6c\xe8\x6c\xf3\x6c\xb1\x6c\xcc\x6c\xe5\x6c\xb3\x6c\xbd\x6c\xbe\x6c\xbc\x6c\xe2\x6c\xab\x6c\xd5\x6c\xd3\x6c\xb8\x6c\xc4\x6c\xb9\x6c\xc1\x6c\xae\x6c\xd7\x6c\xc5\x6c\xf1\x6c\xbf\x6c\xbb\x6c\xe1\x6c\xdb\x6c\xca\x6c\xac\x6c\xef\x6c\xdc", /* 5180 */ "\x00\x00\x6c\xd6\x6c\xe0\x70\x95\x70\x8e\x70\x92\x70\x8a\x70\x99\x72\x2c\x72\x2d\x72\x38\x72\x48\x72\x67\x72\x69\x72\xc0\x72\xce\x72\xd9\x72\xd7\x72\xd0\x73\xa9\x73\xa8\x73\x9f\x73\xab\x73\xa5\x75\x3d\x75\x9d\x75\x99\x75\x9a\x76\x84\x76\xc2\x76\xf2\x76\xf4\x77\xe5\x77\xfd\x79\x3e\x79\x40\x79\x41\x79\xc9\x79\xc8\x7a\x7a\x7a\x79\x7a\xfa\x7c\xfe\x7f\x54\x7f\x8c\x7f\x8b\x80\x05\x80\xba\x80\xa5\x80\xa2\x80\xb1\x80\xa1\x80\xab\x80\xa9\x80\xb4\x80\xaa\x80\xaf\x81\xe5\x81\xfe\x82\x0d\x82\xb3\x82\x9d\x82\x99\x82\xad\x82\xbd\x82\x9f\x82\xb9\x82\xb1\x82\xac\x82\xa5\x82\xaf\x82\xb8\x82\xa3\x82\xb0\x82\xbe\x82\xb7\x86\x4e\x86\x71\x52\x1d\x88\x68\x8e\xcb\x8f\xce\x8f\xd4\x8f\xd1\x90\xb5\x90\xb8\x90\xb1\x90\xb6\x91\xc7\x91\xd1\x95\x77\x95\x80\x96\x1c\x96\x40\x96\x3f\x96\x3b\x96\x44\x96\x42\x96\xb9\x96\xe8\x97\x52\x97\x5e\x4e\x9f\x4e\xad\x4e\xae\x4f\xe1\x4f\xb5\x4f\xaf\x4f\xbf\x4f\xe0\x4f\xd1\x4f\xcf\x4f\xdd\x4f\xc3\x4f\xb6\x4f\xd8\x4f\xdf\x4f\xca\x4f\xd7\x4f\xae\x4f\xd0\x4f\xc4\x4f\xc2\x4f\xda\x4f\xce\x4f\xde\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb7\x51\x57\x51\x92\x51\x91\x51\xa0\x52\x4e\x52\x43\x52\x4a\x52\x4d\x52\x4c\x52\x4b\x52\x47\x52\xc7\x52\xc9\x52\xc3\x52\xc1\x53\x0d\x53\x57\x53\x7b\x53\x9a\x53\xdb\x54\xac\x54\xc0\x54\xa8\x54\xce\x54\xc9\x54\xb8\x54\xa6\x54\xb3\x54\xc7\x54\xc2\x54\xbd\x54\xaa\x54\xc1\x54\xc4\x54\xc8\x54\xaf\x54\xab\x54\xb1\x54\xbb\x54\xa9\x54\xa7\x54\xbf\x56\xff\x57\x82\x57\x8b\x57\xa0\x57\xa3\x57\xa2\x57\xce\x57\xae\x57\x93\x59\x55\x59\x51\x59\x4f\x59\x4e\x59\x50\x59\xdc\x59\xd8\x59\xff\x59\xe3\x59\xe8\x5a\x03", /* 5280 */ "\x00\x00\x59\xe5\x59\xea\x59\xda\x59\xe6\x5a\x01\x59\xfb\x5b\x69\x5b\xa3\x5b\xa6\x5b\xa4\x5b\xa2\x5b\xa5\x5c\x01\x5c\x4e\x5c\x4f\x5c\x4d\x5c\x4b\x5c\xd9\x5c\xd2\x5d\xf7\x5e\x1d\x5e\x25\x5e\x1f\x5e\x7d\x5e\xa0\x5e\xa6\x5e\xfa\x5f\x08\x5f\x2d\x5f\x65\x5f\x88\x5f\x85\x5f\x8a\x5f\x8b\x5f\x87\x5f\x8c\x5f\x89\x60\x12\x60\x1d\x60\x20\x60\x25\x60\x0e\x60\x28\x60\x4d\x60\x70\x60\x68\x60\x62\x60\x46\x60\x43\x60\x6c\x60\x6b\x60\x6a\x60\x64\x62\x41\x62\xdc\x63\x16\x63\x09\x62\xfc\x62\xed\x63\x01\x62\xee\x62\xfd\x63\x07\x62\xf1\x62\xf7\x62\xef\x62\xec\x62\xfe\x62\xf4\x63\x11\x63\x02\x65\x3f\x65\x45\x65\xab\x65\xbd\x65\xe2\x66\x25\x66\x2d\x66\x20\x66\x27\x66\x2f\x66\x1f\x66\x28\x66\x31\x66\x24\x66\xf7\x67\xff\x67\xd3\x67\xf1\x67\xd4\x67\xd0\x67\xec\x67\xb6\x67\xaf\x67\xf5\x67\xe9\x67\xef\x67\xc4\x67\xd1\x67\xb4\x67\xda\x67\xe5\x67\xb8\x67\xcf\x67\xde\x67\xf3\x67\xb0\x67\xd9\x67\xe2\x67\xdd\x67\xd2\x6b\x6a\x6b\x83\x6b\x86\x6b\xb5\x6b\xd2\x6b\xd7\x6c\x1f\x6c\xc9\x6d\x0b\x6d\x32\x6d\x2a\x6d\x41\x6d\x25\x6d\x0c\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x31\x6d\x1e\x6d\x17\x6d\x3b\x6d\x3d\x6d\x3e\x6d\x36\x6d\x1b\x6c\xf5\x6d\x39\x6d\x27\x6d\x38\x6d\x29\x6d\x2e\x6d\x35\x6d\x0e\x6d\x2b\x70\xab\x70\xba\x70\xb3\x70\xac\x70\xaf\x70\xad\x70\xb8\x70\xae\x70\xa4\x72\x30\x72\x72\x72\x6f\x72\x74\x72\xe9\x72\xe0\x72\xe1\x73\xb7\x73\xca\x73\xbb\x73\xb2\x73\xcd\x73\xc0\x73\xb3\x75\x1a\x75\x2d\x75\x4f\x75\x4c\x75\x4e\x75\x4b\x75\xab\x75\xa4\x75\xa5\x75\xa2\x75\xa3\x76\x78\x76\x86\x76\x87\x76\x88\x76\xc8\x76\xc6\x76\xc3\x76\xc5\x77\x01\x76\xf9\x76\xf8\x77\x09", /* 5380 */ "\x00\x00\x77\x0b\x76\xfe\x76\xfc\x77\x07\x77\xdc\x78\x02\x78\x14\x78\x0c\x78\x0d\x79\x46\x79\x49\x79\x48\x79\x47\x79\xb9\x79\xba\x79\xd1\x79\xd2\x79\xcb\x7a\x7f\x7a\x81\x7a\xff\x7a\xfd\x7c\x7d\x7d\x02\x7d\x05\x7d\x00\x7d\x09\x7d\x07\x7d\x04\x7d\x06\x7f\x38\x7f\x8e\x7f\xbf\x80\x04\x80\x10\x80\x0d\x80\x11\x80\x36\x80\xd6\x80\xe5\x80\xda\x80\xc3\x80\xc4\x80\xcc\x80\xe1\x80\xdb\x80\xce\x80\xde\x80\xe4\x80\xdd\x81\xf4\x82\x22\x82\xe7\x83\x03\x83\x05\x82\xe3\x82\xdb\x82\xe6\x83\x04\x82\xe5\x83\x02\x83\x09\x82\xd2\x82\xd7\x82\xf1\x83\x01\x82\xdc\x82\xd4\x82\xd1\x82\xde\x82\xd3\x82\xdf\x82\xef\x83\x06\x86\x50\x86\x79\x86\x7b\x86\x7a\x88\x4d\x88\x6b\x89\x81\x89\xd4\x8a\x08\x8a\x02\x8a\x03\x8c\x9e\x8c\xa0\x8d\x74\x8d\x73\x8d\xb4\x8e\xcd\x8e\xcc\x8f\xf0\x8f\xe6\x8f\xe2\x8f\xea\x8f\xe5\x8f\xed\x8f\xeb\x8f\xe4\x8f\xe8\x90\xca\x90\xce\x90\xc1\x90\xc3\x91\x4b\x91\x4a\x91\xcd\x95\x82\x96\x50\x96\x4b\x96\x4c\x96\x4d\x97\x62\x97\x69\x97\xcb\x97\xed\x97\xf3\x98\x01\x98\xa8\x98\xdb\x98\xdf\x99\x96\x99\x99\x4e\x58\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb3\x50\x0c\x50\x0d\x50\x23\x4f\xef\x50\x26\x50\x25\x4f\xf8\x50\x29\x50\x16\x50\x06\x50\x3c\x50\x1f\x50\x1a\x50\x12\x50\x11\x4f\xfa\x50\x00\x50\x14\x50\x28\x4f\xf1\x50\x21\x50\x0b\x50\x19\x50\x18\x4f\xf3\x4f\xee\x50\x2d\x50\x2a\x4f\xfe\x50\x2b\x50\x09\x51\x7c\x51\xa4\x51\xa5\x51\xa2\x51\xcd\x51\xcc\x51\xc6\x51\xcb\x52\x56\x52\x5c\x52\x54\x52\x5b\x52\x5d\x53\x2a\x53\x7f\x53\x9f\x53\x9d\x53\xdf\x54\xe8\x55\x10\x55\x01\x55\x37\x54\xfc\x54\xe5\x54\xf2\x55\x06\x54\xfa\x55\x14\x54\xe9\x54\xed\x54\xe1", /* 5480 */ "\x00\x00\x55\x09\x54\xee\x54\xea\x54\xe6\x55\x27\x55\x07\x54\xfd\x55\x0f\x57\x03\x57\x04\x57\xc2\x57\xd4\x57\xcb\x57\xc3\x58\x09\x59\x0f\x59\x57\x59\x58\x59\x5a\x5a\x11\x5a\x18\x5a\x1c\x5a\x1f\x5a\x1b\x5a\x13\x59\xec\x5a\x20\x5a\x23\x5a\x29\x5a\x25\x5a\x0c\x5a\x09\x5b\x6b\x5c\x58\x5b\xb0\x5b\xb3\x5b\xb6\x5b\xb4\x5b\xae\x5b\xb5\x5b\xb9\x5b\xb8\x5c\x04\x5c\x51\x5c\x55\x5c\x50\x5c\xed\x5c\xfd\x5c\xfb\x5c\xea\x5c\xe8\x5c\xf0\x5c\xf6\x5d\x01\x5c\xf4\x5d\xee\x5e\x2d\x5e\x2b\x5e\xab\x5e\xad\x5e\xa7\x5f\x31\x5f\x92\x5f\x91\x5f\x90\x60\x59\x60\x63\x60\x65\x60\x50\x60\x55\x60\x6d\x60\x69\x60\x6f\x60\x84\x60\x9f\x60\x9a\x60\x8d\x60\x94\x60\x8c\x60\x85\x60\x96\x62\x47\x62\xf3\x63\x08\x62\xff\x63\x4e\x63\x3e\x63\x2f\x63\x55\x63\x42\x63\x46\x63\x4f\x63\x49\x63\x3a\x63\x50\x63\x3d\x63\x2a\x63\x2b\x63\x28\x63\x4d\x63\x4c\x65\x48\x65\x49\x65\x99\x65\xc1\x65\xc5\x66\x42\x66\x49\x66\x4f\x66\x43\x66\x52\x66\x4c\x66\x45\x66\x41\x66\xf8\x67\x14\x67\x15\x67\x17\x68\x21\x68\x38\x68\x48\x68\x46\x68\x53\x68\x39\x68\x42\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x54\x68\x29\x68\xb3\x68\x17\x68\x4c\x68\x51\x68\x3d\x67\xf4\x68\x50\x68\x40\x68\x3c\x68\x43\x68\x2a\x68\x45\x68\x13\x68\x18\x68\x41\x6b\x8a\x6b\x89\x6b\xb7\x6c\x23\x6c\x27\x6c\x28\x6c\x26\x6c\x24\x6c\xf0\x6d\x6a\x6d\x95\x6d\x88\x6d\x87\x6d\x66\x6d\x78\x6d\x77\x6d\x59\x6d\x93\x6d\x6c\x6d\x89\x6d\x6e\x6d\x5a\x6d\x74\x6d\x69\x6d\x8c\x6d\x8a\x6d\x79\x6d\x85\x6d\x65\x6d\x94\x70\xca\x70\xd8\x70\xe4\x70\xd9\x70\xc8\x70\xcf\x72\x39\x72\x79\x72\xfc\x72\xf9\x72\xfd\x72\xf8\x72\xf7\x73\x86\x73\xed\x74\x09", /* 5580 */ "\x00\x00\x73\xee\x73\xe0\x73\xea\x73\xde\x75\x54\x75\x5d\x75\x5c\x75\x5a\x75\x59\x75\xbe\x75\xc5\x75\xc7\x75\xb2\x75\xb3\x75\xbd\x75\xbc\x75\xb9\x75\xc2\x75\xb8\x76\x8b\x76\xb0\x76\xca\x76\xcd\x76\xce\x77\x29\x77\x1f\x77\x20\x77\x28\x77\xe9\x78\x30\x78\x27\x78\x38\x78\x1d\x78\x34\x78\x37\x78\x25\x78\x2d\x78\x20\x78\x1f\x78\x32\x79\x55\x79\x50\x79\x60\x79\x5f\x79\x56\x79\x5e\x79\x5d\x79\x57\x79\x5a\x79\xe4\x79\xe3\x79\xe7\x79\xdf\x79\xe6\x79\xe9\x79\xd8\x7a\x84\x7a\x88\x7a\xd9\x7b\x06\x7b\x11\x7c\x89\x7d\x21\x7d\x17\x7d\x0b\x7d\x0a\x7d\x20\x7d\x22\x7d\x14\x7d\x10\x7d\x15\x7d\x1a\x7d\x1c\x7d\x0d\x7d\x19\x7d\x1b\x7f\x3a\x7f\x5f\x7f\x94\x7f\xc5\x7f\xc1\x80\x06\x80\x18\x80\x15\x80\x19\x80\x17\x80\x3d\x80\x3f\x80\xf1\x81\x02\x80\xf0\x81\x05\x80\xed\x80\xf4\x81\x06\x80\xf8\x80\xf3\x81\x08\x80\xfd\x81\x0a\x80\xfc\x80\xef\x81\xed\x81\xec\x82\x00\x82\x10\x82\x2a\x82\x2b\x82\x28\x82\x2c\x82\xbb\x83\x2b\x83\x52\x83\x54\x83\x4a\x83\x38\x83\x50\x83\x49\x83\x35\x83\x34\x83\x4f\x83\x32\x83\x39\x83\x36\x83\x17\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x40\x83\x31\x83\x28\x83\x43\x86\x54\x86\x8a\x86\xaa\x86\x93\x86\xa4\x86\xa9\x86\x8c\x86\xa3\x86\x9c\x88\x70\x88\x77\x88\x81\x88\x82\x88\x7d\x88\x79\x8a\x18\x8a\x10\x8a\x0e\x8a\x0c\x8a\x15\x8a\x0a\x8a\x17\x8a\x13\x8a\x16\x8a\x0f\x8a\x11\x8c\x48\x8c\x7a\x8c\x79\x8c\xa1\x8c\xa2\x8d\x77\x8e\xac\x8e\xd2\x8e\xd4\x8e\xcf\x8f\xb1\x90\x01\x90\x06\x8f\xf7\x90\x00\x8f\xfa\x8f\xf4\x90\x03\x8f\xfd\x90\x05\x8f\xf8\x90\x95\x90\xe1\x90\xdd\x90\xe2\x91\x52\x91\x4d\x91\x4c\x91\xd8\x91\xdd\x91\xd7\x91\xdc\x91\xd9", /* 5680 */ "\x00\x00\x95\x83\x96\x62\x96\x63\x96\x61\x96\x5b\x96\x5d\x96\x64\x96\x58\x96\x5e\x96\xbb\x98\xe2\x99\xac\x9a\xa8\x9a\xd8\x9b\x25\x9b\x32\x9b\x3c\x4e\x7e\x50\x7a\x50\x7d\x50\x5c\x50\x47\x50\x43\x50\x4c\x50\x5a\x50\x49\x50\x65\x50\x76\x50\x4e\x50\x55\x50\x75\x50\x74\x50\x77\x50\x4f\x50\x0f\x50\x6f\x50\x6d\x51\x5c\x51\x95\x51\xf0\x52\x6a\x52\x6f\x52\xd2\x52\xd9\x52\xd8\x52\xd5\x53\x10\x53\x0f\x53\x19\x53\x3f\x53\x40\x53\x3e\x53\xc3\x66\xfc\x55\x46\x55\x6a\x55\x66\x55\x44\x55\x5e\x55\x61\x55\x43\x55\x4a\x55\x31\x55\x56\x55\x4f\x55\x55\x55\x2f\x55\x64\x55\x38\x55\x2e\x55\x5c\x55\x2c\x55\x63\x55\x33\x55\x41\x55\x57\x57\x08\x57\x0b\x57\x09\x57\xdf\x58\x05\x58\x0a\x58\x06\x57\xe0\x57\xe4\x57\xfa\x58\x02\x58\x35\x57\xf7\x57\xf9\x59\x20\x59\x62\x5a\x36\x5a\x41\x5a\x49\x5a\x66\x5a\x6a\x5a\x40\x5a\x3c\x5a\x62\x5a\x5a\x5a\x46\x5a\x4a\x5b\x70\x5b\xc7\x5b\xc5\x5b\xc4\x5b\xc2\x5b\xbf\x5b\xc6\x5c\x09\x5c\x08\x5c\x07\x5c\x60\x5c\x5c\x5c\x5d\x5d\x07\x5d\x06\x5d\x0e\x5d\x1b\x5d\x16\x5d\x22\x5d\x11\x5d\x29\x5d\x14\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x19\x5d\x24\x5d\x27\x5d\x17\x5d\xe2\x5e\x38\x5e\x36\x5e\x33\x5e\x37\x5e\xb7\x5e\xb8\x5e\xb6\x5e\xb5\x5e\xbe\x5f\x35\x5f\x37\x5f\x57\x5f\x6c\x5f\x69\x5f\x6b\x5f\x97\x5f\x99\x5f\x9e\x5f\x98\x5f\xa1\x5f\xa0\x5f\x9c\x60\x7f\x60\xa3\x60\x89\x60\xa0\x60\xa8\x60\xcb\x60\xb4\x60\xe6\x60\xbd\x60\xc5\x60\xbb\x60\xb5\x60\xdc\x60\xbc\x60\xd8\x60\xd5\x60\xc6\x60\xdf\x60\xb8\x60\xda\x60\xc7\x62\x1a\x62\x1b\x62\x48\x63\xa0\x63\xa7\x63\x72\x63\x96\x63\xa2\x63\xa5\x63\x77\x63\x67\x63\x98\x63\xaa\x63\x71\x63\xa9", /* 5780 */ "\x00\x00\x63\x89\x63\x83\x63\x9b\x63\x6b\x63\xa8\x63\x84\x63\x88\x63\x99\x63\xa1\x63\xac\x63\x92\x63\x8f\x63\x80\x63\x7b\x63\x69\x63\x68\x63\x7a\x65\x5d\x65\x56\x65\x51\x65\x59\x65\x57\x55\x5f\x65\x4f\x65\x58\x65\x55\x65\x54\x65\x9c\x65\x9b\x65\xac\x65\xcf\x65\xcb\x65\xcc\x65\xce\x66\x5d\x66\x5a\x66\x64\x66\x68\x66\x66\x66\x5e\x66\xf9\x52\xd7\x67\x1b\x68\x81\x68\xaf\x68\xa2\x68\x93\x68\xb5\x68\x7f\x68\x76\x68\xb1\x68\xa7\x68\x97\x68\xb0\x68\x83\x68\xc4\x68\xad\x68\x86\x68\x85\x68\x94\x68\x9d\x68\xa8\x68\x9f\x68\xa1\x68\x82\x6b\x32\x6b\xba\x6b\xeb\x6b\xec\x6c\x2b\x6d\x8e\x6d\xbc\x6d\xf3\x6d\xd9\x6d\xb2\x6d\xe1\x6d\xcc\x6d\xe4\x6d\xfb\x6d\xfa\x6e\x05\x6d\xc7\x6d\xcb\x6d\xaf\x6d\xd1\x6d\xae\x6d\xde\x6d\xf9\x6d\xb8\x6d\xf7\x6d\xf5\x6d\xc5\x6d\xd2\x6e\x1a\x6d\xb5\x6d\xda\x6d\xeb\x6d\xd8\x6d\xea\x6d\xf1\x6d\xee\x6d\xe8\x6d\xc6\x6d\xc4\x6d\xaa\x6d\xec\x6d\xbf\x6d\xe6\x70\xf9\x71\x09\x71\x0a\x70\xfd\x70\xef\x72\x3d\x72\x7d\x72\x81\x73\x1c\x73\x1b\x73\x16\x73\x13\x73\x19\x73\x87\x74\x05\x74\x0a\x74\x03\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x73\xfe\x74\x0d\x74\xe0\x74\xf6\x74\xf7\x75\x1c\x75\x22\x75\x65\x75\x66\x75\x62\x75\x70\x75\x8f\x75\xd4\x75\xd5\x75\xb5\x75\xca\x75\xcd\x76\x8e\x76\xd4\x76\xd2\x76\xdb\x77\x37\x77\x3e\x77\x3c\x77\x36\x77\x38\x77\x3a\x78\x6b\x78\x43\x78\x4e\x79\x65\x79\x68\x79\x6d\x79\xfb\x7a\x92\x7a\x95\x7b\x20\x7b\x28\x7b\x1b\x7b\x2c\x7b\x26\x7b\x19\x7b\x1e\x7b\x2e\x7c\x92\x7c\x97\x7c\x95\x7d\x46\x7d\x43\x7d\x71\x7d\x2e\x7d\x39\x7d\x3c\x7d\x40\x7d\x30\x7d\x33\x7d\x44\x7d\x2f\x7d\x42\x7d\x32\x7d\x31\x7f\x3d", /* 5880 */ "\x00\x00\x7f\x9e\x7f\x9a\x7f\xcc\x7f\xce\x7f\xd2\x80\x1c\x80\x4a\x80\x46\x81\x2f\x81\x16\x81\x23\x81\x2b\x81\x29\x81\x30\x81\x24\x82\x02\x82\x35\x82\x37\x82\x36\x82\x39\x83\x8e\x83\x9e\x83\x98\x83\x78\x83\xa2\x83\x96\x83\xbd\x83\xab\x83\x92\x83\x8a\x83\x93\x83\x89\x83\xa0\x83\x77\x83\x7b\x83\x7c\x83\x86\x83\xa7\x86\x55\x5f\x6a\x86\xc7\x86\xc0\x86\xb6\x86\xc4\x86\xb5\x86\xc6\x86\xcb\x86\xb1\x86\xaf\x86\xc9\x88\x53\x88\x9e\x88\x88\x88\xab\x88\x92\x88\x96\x88\x8d\x88\x8b\x89\x93\x89\x8f\x8a\x2a\x8a\x1d\x8a\x23\x8a\x25\x8a\x31\x8a\x2d\x8a\x1f\x8a\x1b\x8a\x22\x8c\x49\x8c\x5a\x8c\xa9\x8c\xac\x8c\xab\x8c\xa8\x8c\xaa\x8c\xa7\x8d\x67\x8d\x66\x8d\xbe\x8d\xba\x8e\xdb\x8e\xdf\x90\x19\x90\x0d\x90\x1a\x90\x17\x90\x23\x90\x1f\x90\x1d\x90\x10\x90\x15\x90\x1e\x90\x20\x90\x0f\x90\x22\x90\x16\x90\x1b\x90\x14\x90\xe8\x90\xed\x90\xfd\x91\x57\x91\xce\x91\xf5\x91\xe6\x91\xe3\x91\xe7\x91\xed\x91\xe9\x95\x89\x96\x6a\x96\x75\x96\x73\x96\x78\x96\x70\x96\x74\x96\x76\x96\x77\x96\x6c\x96\xc0\x96\xea\x96\xe9\x7a\xe0\x7a\xdf\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x02\x98\x03\x9b\x5a\x9c\xe5\x9e\x75\x9e\x7f\x9e\xa5\x9e\xbb\x50\xa2\x50\x8d\x50\x85\x50\x99\x50\x91\x50\x80\x50\x96\x50\x98\x50\x9a\x67\x00\x51\xf1\x52\x72\x52\x74\x52\x75\x52\x69\x52\xde\x52\xdd\x52\xdb\x53\x5a\x53\xa5\x55\x7b\x55\x80\x55\xa7\x55\x7c\x55\x8a\x55\x9d\x55\x98\x55\x82\x55\x9c\x55\xaa\x55\x94\x55\x87\x55\x8b\x55\x83\x55\xb3\x55\xae\x55\x9f\x55\x3e\x55\xb2\x55\x9a\x55\xbb\x55\xac\x55\xb1\x55\x7e\x55\x89\x55\xab\x55\x99\x57\x0d\x58\x2f\x58\x2a\x58\x34\x58\x24\x58\x30\x58\x31\x58\x21", /* 5980 */ "\x00\x00\x58\x1d\x58\x20\x58\xf9\x58\xfa\x59\x60\x5a\x77\x5a\x9a\x5a\x7f\x5a\x92\x5a\x9b\x5a\xa7\x5b\x73\x5b\x71\x5b\xd2\x5b\xcc\x5b\xd3\x5b\xd0\x5c\x0a\x5c\x0b\x5c\x31\x5d\x4c\x5d\x50\x5d\x34\x5d\x47\x5d\xfd\x5e\x45\x5e\x3d\x5e\x40\x5e\x43\x5e\x7e\x5e\xca\x5e\xc1\x5e\xc2\x5e\xc4\x5f\x3c\x5f\x6d\x5f\xa9\x5f\xaa\x5f\xa8\x60\xd1\x60\xe1\x60\xb2\x60\xb6\x60\xe0\x61\x1c\x61\x23\x60\xfa\x61\x15\x60\xf0\x60\xfb\x60\xf4\x61\x68\x60\xf1\x61\x0e\x60\xf6\x61\x09\x61\x00\x61\x12\x62\x1f\x62\x49\x63\xa3\x63\x8c\x63\xcf\x63\xc0\x63\xe9\x63\xc9\x63\xc6\x63\xcd\x63\xd2\x63\xe3\x63\xd0\x63\xe1\x63\xd6\x63\xed\x63\xee\x63\x76\x63\xf4\x63\xea\x63\xdb\x64\x52\x63\xda\x63\xf9\x65\x5e\x65\x66\x65\x62\x65\x63\x65\x91\x65\x90\x65\xaf\x66\x6e\x66\x70\x66\x74\x66\x76\x66\x6f\x66\x91\x66\x7a\x66\x7e\x66\x77\x66\xfe\x66\xff\x67\x1f\x67\x1d\x68\xfa\x68\xd5\x68\xe0\x68\xd8\x68\xd7\x69\x05\x68\xdf\x68\xf5\x68\xee\x68\xe7\x68\xf9\x68\xd2\x68\xf2\x68\xe3\x68\xcb\x68\xcd\x69\x0d\x69\x12\x69\x0e\x68\xc9\x68\xda\x69\x6e\x68\xfb\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x3e\x6b\x3a\x6b\x3d\x6b\x98\x6b\x96\x6b\xbc\x6b\xef\x6c\x2e\x6c\x2f\x6c\x2c\x6e\x2f\x6e\x38\x6e\x54\x6e\x21\x6e\x32\x6e\x67\x6e\x4a\x6e\x20\x6e\x25\x6e\x23\x6e\x1b\x6e\x5b\x6e\x58\x6e\x24\x6e\x56\x6e\x6e\x6e\x2d\x6e\x26\x6e\x6f\x6e\x34\x6e\x4d\x6e\x3a\x6e\x2c\x6e\x43\x6e\x1d\x6e\x3e\x6e\xcb\x6e\x89\x6e\x19\x6e\x4e\x6e\x63\x6e\x44\x6e\x72\x6e\x69\x6e\x5f\x71\x19\x71\x1a\x71\x26\x71\x30\x71\x21\x71\x36\x71\x6e\x71\x1c\x72\x4c\x72\x84\x72\x80\x73\x36\x73\x25\x73\x34\x73\x29\x74\x3a\x74\x2a\x74\x33", /* 5a80 */ "\x00\x00\x74\x22\x74\x25\x74\x35\x74\x36\x74\x34\x74\x2f\x74\x1b\x74\x26\x74\x28\x75\x25\x75\x26\x75\x6b\x75\x6a\x75\xe2\x75\xdb\x75\xe3\x75\xd9\x75\xd8\x75\xde\x75\xe0\x76\x7b\x76\x7c\x76\x96\x76\x93\x76\xb4\x76\xdc\x77\x4f\x77\xed\x78\x5d\x78\x6c\x78\x6f\x7a\x0d\x7a\x08\x7a\x0b\x7a\x05\x7a\x00\x7a\x98\x7a\x97\x7a\x96\x7a\xe5\x7a\xe3\x7b\x49\x7b\x56\x7b\x46\x7b\x50\x7b\x52\x7b\x54\x7b\x4d\x7b\x4b\x7b\x4f\x7b\x51\x7c\x9f\x7c\xa5\x7d\x5e\x7d\x50\x7d\x68\x7d\x55\x7d\x2b\x7d\x6e\x7d\x72\x7d\x61\x7d\x66\x7d\x62\x7d\x70\x7d\x73\x55\x84\x7f\xd4\x7f\xd5\x80\x0b\x80\x52\x80\x85\x81\x55\x81\x54\x81\x4b\x81\x51\x81\x4e\x81\x39\x81\x46\x81\x3e\x81\x4c\x81\x53\x81\x74\x82\x12\x82\x1c\x83\xe9\x84\x03\x83\xf8\x84\x0d\x83\xe0\x83\xc5\x84\x0b\x83\xc1\x83\xef\x83\xf1\x83\xf4\x84\x57\x84\x0a\x83\xf0\x84\x0c\x83\xcc\x83\xfd\x83\xf2\x83\xca\x84\x38\x84\x0e\x84\x04\x83\xdc\x84\x07\x83\xd4\x83\xdf\x86\x5b\x86\xdf\x86\xd9\x86\xed\x86\xd4\x86\xdb\x86\xe4\x86\xd0\x86\xde\x88\x57\x88\xc1\x88\xc2\x88\xb1\x89\x83\x89\x96\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x3b\x8a\x60\x8a\x55\x8a\x5e\x8a\x3c\x8a\x41\x8a\x54\x8a\x5b\x8a\x50\x8a\x46\x8a\x34\x8a\x3a\x8a\x36\x8a\x56\x8c\x61\x8c\x82\x8c\xaf\x8c\xbc\x8c\xb3\x8c\xbd\x8c\xc1\x8c\xbb\x8c\xc0\x8c\xb4\x8c\xb7\x8c\xb6\x8c\xbf\x8c\xb8\x8d\x8a\x8d\x85\x8d\x81\x8d\xce\x8d\xdd\x8d\xcb\x8d\xda\x8d\xd1\x8d\xcc\x8d\xdb\x8d\xc6\x8e\xfb\x8e\xf8\x8e\xfc\x8f\x9c\x90\x2e\x90\x35\x90\x31\x90\x38\x90\x32\x90\x36\x91\x02\x90\xf5\x91\x09\x90\xfe\x91\x63\x91\x65\x91\xcf\x92\x14\x92\x15\x92\x23\x92\x09\x92\x1e\x92\x0d\x92\x10", /* 5b80 */ "\x00\x00\x92\x07\x92\x11\x95\x94\x95\x8f\x95\x8b\x95\x91\x95\x93\x95\x92\x95\x8e\x96\x8a\x96\x8e\x96\x8b\x96\x7d\x96\x85\x96\x86\x96\x8d\x96\x72\x96\x84\x96\xc1\x96\xc5\x96\xc4\x96\xc6\x96\xc7\x96\xef\x96\xf2\x97\xcc\x98\x05\x98\x06\x98\x08\x98\xe7\x98\xea\x98\xef\x98\xe9\x98\xf2\x98\xed\x99\xae\x99\xad\x9e\xc3\x9e\xcd\x9e\xd1\x4e\x82\x50\xad\x50\xb5\x50\xb2\x50\xb3\x50\xc5\x50\xbe\x50\xac\x50\xb7\x50\xbb\x50\xaf\x50\xc7\x52\x7f\x52\x77\x52\x7d\x52\xdf\x52\xe6\x52\xe4\x52\xe2\x52\xe3\x53\x2f\x55\xdf\x55\xe8\x55\xd3\x55\xe6\x55\xce\x55\xdc\x55\xc7\x55\xd1\x55\xe3\x55\xe4\x55\xef\x55\xda\x55\xe1\x55\xc5\x55\xc6\x55\xe5\x55\xc9\x57\x12\x57\x13\x58\x5e\x58\x51\x58\x58\x58\x57\x58\x5a\x58\x54\x58\x6b\x58\x4c\x58\x6d\x58\x4a\x58\x62\x58\x52\x58\x4b\x59\x67\x5a\xc1\x5a\xc9\x5a\xcc\x5a\xbe\x5a\xbd\x5a\xbc\x5a\xb3\x5a\xc2\x5a\xb2\x5d\x69\x5d\x6f\x5e\x4c\x5e\x79\x5e\xc9\x5e\xc8\x5f\x12\x5f\x59\x5f\xac\x5f\xae\x61\x1a\x61\x0f\x61\x48\x61\x1f\x60\xf3\x61\x1b\x60\xf9\x61\x01\x61\x08\x61\x4e\x61\x4c\x61\x44\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x4d\x61\x3e\x61\x34\x61\x27\x61\x0d\x61\x06\x61\x37\x62\x21\x62\x22\x64\x13\x64\x3e\x64\x1e\x64\x2a\x64\x2d\x64\x3d\x64\x2c\x64\x0f\x64\x1c\x64\x14\x64\x0d\x64\x36\x64\x16\x64\x17\x64\x06\x65\x6c\x65\x9f\x65\xb0\x66\x97\x66\x89\x66\x87\x66\x88\x66\x96\x66\x84\x66\x98\x66\x8d\x67\x03\x69\x94\x69\x6d\x69\x5a\x69\x77\x69\x60\x69\x54\x69\x75\x69\x30\x69\x82\x69\x4a\x69\x68\x69\x6b\x69\x5e\x69\x53\x69\x79\x69\x86\x69\x5d\x69\x63\x69\x5b\x6b\x47\x6b\x72\x6b\xc0\x6b\xbf\x6b\xd3\x6b\xfd\x6e\xa2\x6e\xaf", /* 5c80 */ "\x00\x00\x6e\xd3\x6e\xb6\x6e\xc2\x6e\x90\x6e\x9d\x6e\xc7\x6e\xc5\x6e\xa5\x6e\x98\x6e\xbc\x6e\xba\x6e\xab\x6e\xd1\x6e\x96\x6e\x9c\x6e\xc4\x6e\xd4\x6e\xaa\x6e\xa7\x6e\xb4\x71\x4e\x71\x59\x71\x69\x71\x64\x71\x49\x71\x67\x71\x5c\x71\x6c\x71\x66\x71\x4c\x71\x65\x71\x5e\x71\x46\x71\x68\x71\x56\x72\x3a\x72\x52\x73\x37\x73\x45\x73\x3f\x73\x3e\x74\x6f\x74\x5a\x74\x55\x74\x5f\x74\x5e\x74\x41\x74\x3f\x74\x59\x74\x5b\x74\x5c\x75\x76\x75\x78\x76\x00\x75\xf0\x76\x01\x75\xf2\x75\xf1\x75\xfa\x75\xff\x75\xf4\x75\xf3\x76\xde\x76\xdf\x77\x5b\x77\x6b\x77\x66\x77\x5e\x77\x63\x77\x79\x77\x6a\x77\x6c\x77\x5c\x77\x65\x77\x68\x77\x62\x77\xee\x78\x8e\x78\xb0\x78\x97\x78\x98\x78\x8c\x78\x89\x78\x7c\x78\x91\x78\x93\x78\x7f\x79\x7a\x79\x7f\x79\x81\x84\x2c\x79\xbd\x7a\x1c\x7a\x1a\x7a\x20\x7a\x14\x7a\x1f\x7a\x1e\x7a\x9f\x7a\xa0\x7b\x77\x7b\xc0\x7b\x60\x7b\x6e\x7b\x67\x7c\xb1\x7c\xb3\x7c\xb5\x7d\x93\x7d\x79\x7d\x91\x7d\x81\x7d\x8f\x7d\x5b\x7f\x6e\x7f\x69\x7f\x6a\x7f\x72\x7f\xa9\x7f\xa8\x7f\xa4\x80\x56\x80\x58\x80\x86\x80\x84\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x71\x81\x70\x81\x78\x81\x65\x81\x6e\x81\x73\x81\x6b\x81\x79\x81\x7a\x81\x66\x82\x05\x82\x47\x84\x82\x84\x77\x84\x3d\x84\x31\x84\x75\x84\x66\x84\x6b\x84\x49\x84\x6c\x84\x5b\x84\x3c\x84\x35\x84\x61\x84\x63\x84\x69\x84\x6d\x84\x46\x86\x5e\x86\x5c\x86\x5f\x86\xf9\x87\x13\x87\x08\x87\x07\x87\x00\x86\xfe\x86\xfb\x87\x02\x87\x03\x87\x06\x87\x0a\x88\x59\x88\xdf\x88\xd4\x88\xd9\x88\xdc\x88\xd8\x88\xdd\x88\xe1\x88\xca\x88\xd5\x88\xd2\x89\x9c\x89\xe3\x8a\x6b\x8a\x72\x8a\x73\x8a\x66\x8a\x69\x8a\x70\x8a\x87", /* 5d80 */ "\x00\x00\x8a\x7c\x8a\x63\x8a\xa0\x8a\x71\x8a\x85\x8a\x6d\x8a\x62\x8a\x6e\x8a\x6c\x8a\x79\x8a\x7b\x8a\x3e\x8a\x68\x8c\x62\x8c\x8a\x8c\x89\x8c\xca\x8c\xc7\x8c\xc8\x8c\xc4\x8c\xb2\x8c\xc3\x8c\xc2\x8c\xc5\x8d\xe1\x8d\xdf\x8d\xe8\x8d\xef\x8d\xf3\x8d\xfa\x8d\xea\x8d\xe4\x8d\xe6\x8e\xb2\x8f\x03\x8f\x09\x8e\xfe\x8f\x0a\x8f\x9f\x8f\xb2\x90\x4b\x90\x4a\x90\x53\x90\x42\x90\x54\x90\x3c\x90\x55\x90\x50\x90\x47\x90\x4f\x90\x4e\x90\x4d\x90\x51\x90\x3e\x90\x41\x91\x12\x91\x17\x91\x6c\x91\x6a\x91\x69\x91\xc9\x92\x37\x92\x57\x92\x38\x92\x3d\x92\x40\x92\x3e\x92\x5b\x92\x4b\x92\x64\x92\x51\x92\x34\x92\x49\x92\x4d\x92\x45\x92\x39\x92\x3f\x92\x5a\x95\x98\x96\x98\x96\x94\x96\x95\x96\xcd\x96\xcb\x96\xc9\x96\xca\x96\xf7\x96\xfb\x96\xf9\x96\xf6\x97\x56\x97\x74\x97\x76\x98\x10\x98\x11\x98\x13\x98\x0a\x98\x12\x98\x0c\x98\xfc\x98\xf4\x98\xfd\x98\xfe\x99\xb3\x99\xb1\x99\xb4\x9a\xe1\x9c\xe9\x9e\x82\x9f\x0e\x9f\x13\x9f\x20\x50\xe7\x50\xee\x50\xe5\x50\xd6\x50\xed\x50\xda\x50\xd5\x50\xcf\x50\xd1\x50\xf1\x50\xce\x50\xe9\x51\x62\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf3\x52\x83\x52\x82\x53\x31\x53\xad\x55\xfe\x56\x00\x56\x1b\x56\x17\x55\xfd\x56\x14\x56\x06\x56\x09\x56\x0d\x56\x0e\x55\xf7\x56\x16\x56\x1f\x56\x08\x56\x10\x55\xf6\x57\x18\x57\x16\x58\x75\x58\x7e\x58\x83\x58\x93\x58\x8a\x58\x79\x58\x85\x58\x7d\x58\xfd\x59\x25\x59\x22\x59\x24\x59\x6a\x59\x69\x5a\xe1\x5a\xe6\x5a\xe9\x5a\xd7\x5a\xd6\x5a\xd8\x5a\xe3\x5b\x75\x5b\xde\x5b\xe7\x5b\xe1\x5b\xe5\x5b\xe6\x5b\xe8\x5b\xe2\x5b\xe4\x5b\xdf\x5c\x0d\x5c\x62\x5d\x84\x5d\x87\x5e\x5b\x5e\x63\x5e\x55\x5e\x57\x5e\x54", /* 5e80 */ "\x00\x00\x5e\xd3\x5e\xd6\x5f\x0a\x5f\x46\x5f\x70\x5f\xb9\x61\x47\x61\x3f\x61\x4b\x61\x77\x61\x62\x61\x63\x61\x5f\x61\x5a\x61\x58\x61\x75\x62\x2a\x64\x87\x64\x58\x64\x54\x64\xa4\x64\x78\x64\x5f\x64\x7a\x64\x51\x64\x67\x64\x34\x64\x6d\x64\x7b\x65\x72\x65\xa1\x65\xd7\x65\xd6\x66\xa2\x66\xa8\x66\x9d\x69\x9c\x69\xa8\x69\x95\x69\xc1\x69\xae\x69\xd3\x69\xcb\x69\x9b\x69\xb7\x69\xbb\x69\xab\x69\xb4\x69\xd0\x69\xcd\x69\xad\x69\xcc\x69\xa6\x69\xc3\x69\xa3\x6b\x49\x6b\x4c\x6c\x33\x6f\x33\x6f\x14\x6e\xfe\x6f\x13\x6e\xf4\x6f\x29\x6f\x3e\x6f\x20\x6f\x2c\x6f\x0f\x6f\x02\x6f\x22\x6e\xff\x6e\xef\x6f\x06\x6f\x31\x6f\x38\x6f\x32\x6f\x23\x6f\x15\x6f\x2b\x6f\x2f\x6f\x88\x6f\x2a\x6e\xec\x6f\x01\x6e\xf2\x6e\xcc\x6e\xf7\x71\x94\x71\x99\x71\x7d\x71\x8a\x71\x84\x71\x92\x72\x3e\x72\x92\x72\x96\x73\x44\x73\x50\x74\x64\x74\x63\x74\x6a\x74\x70\x74\x6d\x75\x04\x75\x91\x76\x27\x76\x0d\x76\x0b\x76\x09\x76\x13\x76\xe1\x76\xe3\x77\x84\x77\x7d\x77\x7f\x77\x61\x78\xc1\x78\x9f\x78\xa7\x78\xb3\x78\xa9\x78\xa3\x79\x8e\x79\x8f\x79\x8d\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x2e\x7a\x31\x7a\xaa\x7a\xa9\x7a\xed\x7a\xef\x7b\xa1\x7b\x95\x7b\x8b\x7b\x75\x7b\x97\x7b\x9d\x7b\x94\x7b\x8f\x7b\xb8\x7b\x87\x7b\x84\x7c\xb9\x7c\xbd\x7c\xbe\x7d\xbb\x7d\xb0\x7d\x9c\x7d\xbd\x7d\xbe\x7d\xa0\x7d\xca\x7d\xb4\x7d\xb2\x7d\xb1\x7d\xba\x7d\xa2\x7d\xbf\x7d\xb5\x7d\xb8\x7d\xad\x7d\xd2\x7d\xc7\x7d\xac\x7f\x70\x7f\xe0\x7f\xe1\x7f\xdf\x80\x5e\x80\x5a\x80\x87\x81\x50\x81\x80\x81\x8f\x81\x88\x81\x8a\x81\x7f\x81\x82\x81\xe7\x81\xfa\x82\x07\x82\x14\x82\x1e\x82\x4b\x84\xc9\x84\xbf\x84\xc6\x84\xc4", /* 5f80 */ "\x00\x00\x84\x99\x84\x9e\x84\xb2\x84\x9c\x84\xcb\x84\xb8\x84\xc0\x84\xd3\x84\x90\x84\xbc\x84\xd1\x84\xca\x87\x3f\x87\x1c\x87\x3b\x87\x22\x87\x25\x87\x34\x87\x18\x87\x55\x87\x37\x87\x29\x88\xf3\x89\x02\x88\xf4\x88\xf9\x88\xf8\x88\xfd\x88\xe8\x89\x1a\x88\xef\x8a\xa6\x8a\x8c\x8a\x9e\x8a\xa3\x8a\x8d\x8a\xa1\x8a\x93\x8a\xa4\x8a\xaa\x8a\xa5\x8a\xa8\x8a\x98\x8a\x91\x8a\x9a\x8a\xa7\x8c\x6a\x8c\x8d\x8c\x8c\x8c\xd3\x8c\xd1\x8c\xd2\x8d\x6b\x8d\x99\x8d\x95\x8d\xfc\x8f\x14\x8f\x12\x8f\x15\x8f\x13\x8f\xa3\x90\x60\x90\x58\x90\x5c\x90\x63\x90\x59\x90\x5e\x90\x62\x90\x5d\x90\x5b\x91\x19\x91\x18\x91\x1e\x91\x75\x91\x78\x91\x77\x91\x74\x92\x78\x92\x80\x92\x85\x92\x98\x92\x96\x92\x7b\x92\x93\x92\x9c\x92\xa8\x92\x7c\x92\x91\x95\xa1\x95\xa8\x95\xa9\x95\xa3\x95\xa5\x95\xa4\x96\x99\x96\x9c\x96\x9b\x96\xcc\x96\xd2\x97\x00\x97\x7c\x97\x85\x97\xf6\x98\x17\x98\x18\x98\xaf\x98\xb1\x99\x03\x99\x05\x99\x0c\x99\x09\x99\xc1\x9a\xaf\x9a\xb0\x9a\xe6\x9b\x41\x9b\x42\x9c\xf4\x9c\xf6\x9c\xf3\x9e\xbc\x9f\x3b\x9f\x4a\x51\x04\x51\x00\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xfb\x50\xf5\x50\xf9\x51\x02\x51\x08\x51\x09\x51\x05\x51\xdc\x52\x87\x52\x88\x52\x89\x52\x8d\x52\x8a\x52\xf0\x53\xb2\x56\x2e\x56\x3b\x56\x39\x56\x32\x56\x3f\x56\x34\x56\x29\x56\x53\x56\x4e\x56\x57\x56\x74\x56\x36\x56\x2f\x56\x30\x58\x80\x58\x9f\x58\x9e\x58\xb3\x58\x9c\x58\xae\x58\xa9\x58\xa6\x59\x6d\x5b\x09\x5a\xfb\x5b\x0b\x5a\xf5\x5b\x0c\x5b\x08\x5b\xee\x5b\xec\x5b\xe9\x5b\xeb\x5c\x64\x5c\x65\x5d\x9d\x5d\x94\x5e\x62\x5e\x5f\x5e\x61\x5e\xe2\x5e\xda\x5e\xdf\x5e\xdd\x5e\xe3\x5e\xe0\x5f\x48\x5f\x71", /* 6080 */ "\x00\x00\x5f\xb7\x5f\xb5\x61\x76\x61\x67\x61\x6e\x61\x5d\x61\x55\x61\x82\x61\x7c\x61\x70\x61\x6b\x61\x7e\x61\xa7\x61\x90\x61\xab\x61\x8e\x61\xac\x61\x9a\x61\xa4\x61\x94\x61\xae\x62\x2e\x64\x69\x64\x6f\x64\x79\x64\x9e\x64\xb2\x64\x88\x64\x90\x64\xb0\x64\xa5\x64\x93\x64\x95\x64\xa9\x64\x92\x64\xae\x64\xad\x64\xab\x64\x9a\x64\xac\x64\x99\x64\xa2\x64\xb3\x65\x75\x65\x77\x65\x78\x66\xae\x66\xab\x66\xb4\x66\xb1\x6a\x23\x6a\x1f\x69\xe8\x6a\x01\x6a\x1e\x6a\x19\x69\xfd\x6a\x21\x6a\x13\x6a\x0a\x69\xf3\x6a\x02\x6a\x05\x69\xed\x6a\x11\x6b\x50\x6b\x4e\x6b\xa4\x6b\xc5\x6b\xc6\x6f\x3f\x6f\x7c\x6f\x84\x6f\x51\x6f\x66\x6f\x54\x6f\x86\x6f\x6d\x6f\x5b\x6f\x78\x6f\x6e\x6f\x8e\x6f\x7a\x6f\x70\x6f\x64\x6f\x97\x6f\x58\x6e\xd5\x6f\x6f\x6f\x60\x6f\x5f\x71\x9f\x71\xac\x71\xb1\x71\xa8\x72\x56\x72\x9b\x73\x4e\x73\x57\x74\x69\x74\x8b\x74\x83\x74\x7e\x74\x80\x75\x7f\x76\x20\x76\x29\x76\x1f\x76\x24\x76\x26\x76\x21\x76\x22\x76\x9a\x76\xba\x76\xe4\x77\x8e\x77\x87\x77\x8c\x77\x91\x77\x8b\x78\xcb\x78\xc5\x78\xba\x78\xca\x78\xbe\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xd5\x78\xbc\x78\xd0\x7a\x3f\x7a\x3c\x7a\x40\x7a\x3d\x7a\x37\x7a\x3b\x7a\xaf\x7a\xae\x7b\xad\x7b\xb1\x7b\xc4\x7b\xb4\x7b\xc6\x7b\xc7\x7b\xc1\x7b\xa0\x7b\xcc\x7c\xca\x7d\xe0\x7d\xf4\x7d\xef\x7d\xfb\x7d\xd8\x7d\xec\x7d\xdd\x7d\xe8\x7d\xe3\x7d\xda\x7d\xde\x7d\xe9\x7d\x9e\x7d\xd9\x7d\xf2\x7d\xf9\x7f\x75\x7f\x77\x7f\xaf\x7f\xe9\x80\x26\x81\x9b\x81\x9c\x81\x9d\x81\xa0\x81\x9a\x81\x98\x85\x17\x85\x3d\x85\x1a\x84\xee\x85\x2c\x85\x2d\x85\x13\x85\x11\x85\x23\x85\x21\x85\x14\x84\xec\x85\x25\x84\xff\x85\x06", /* 6180 */ "\x00\x00\x87\x82\x87\x74\x87\x76\x87\x60\x87\x66\x87\x78\x87\x68\x87\x59\x87\x57\x87\x4c\x87\x53\x88\x5b\x88\x5d\x89\x10\x89\x07\x89\x12\x89\x13\x89\x15\x89\x0a\x8a\xbc\x8a\xd2\x8a\xc7\x8a\xc4\x8a\x95\x8a\xcb\x8a\xf8\x8a\xb2\x8a\xc9\x8a\xc2\x8a\xbf\x8a\xb0\x8a\xd6\x8a\xcd\x8a\xb6\x8a\xb9\x8a\xdb\x8c\x4c\x8c\x4e\x8c\x6c\x8c\xe0\x8c\xde\x8c\xe6\x8c\xe4\x8c\xec\x8c\xed\x8c\xe2\x8c\xe3\x8c\xdc\x8c\xea\x8c\xe1\x8d\x6d\x8d\x9f\x8d\xa3\x8e\x2b\x8e\x10\x8e\x1d\x8e\x22\x8e\x0f\x8e\x29\x8e\x1f\x8e\x21\x8e\x1e\x8e\xba\x8f\x1d\x8f\x1b\x8f\x1f\x8f\x29\x8f\x26\x8f\x2a\x8f\x1c\x8f\x1e\x8f\x25\x90\x69\x90\x6e\x90\x68\x90\x6d\x90\x77\x91\x30\x91\x2d\x91\x27\x91\x31\x91\x87\x91\x89\x91\x8b\x91\x83\x92\xc5\x92\xbb\x92\xb7\x92\xea\x92\xac\x92\xe4\x92\xc1\x92\xb3\x92\xbc\x92\xd2\x92\xc7\x92\xf0\x92\xb2\x95\xad\x95\xb1\x97\x04\x97\x06\x97\x07\x97\x09\x97\x60\x97\x8d\x97\x8b\x97\x8f\x98\x21\x98\x2b\x98\x1c\x98\xb3\x99\x0a\x99\x13\x99\x12\x99\x18\x99\xdd\x99\xd0\x99\xdf\x99\xdb\x99\xd1\x99\xd5\x99\xd2\x99\xd9\x9a\xb7\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xee\x9a\xef\x9b\x27\x9b\x45\x9b\x44\x9b\x77\x9b\x6f\x9d\x06\x9d\x09\x9d\x03\x9e\xa9\x9e\xbe\x9e\xce\x58\xa8\x9f\x52\x51\x12\x51\x18\x51\x14\x51\x10\x51\x15\x51\x80\x51\xaa\x51\xdd\x52\x91\x52\x93\x52\xf3\x56\x59\x56\x6b\x56\x79\x56\x69\x56\x64\x56\x78\x56\x6a\x56\x68\x56\x65\x56\x71\x56\x6f\x56\x6c\x56\x62\x56\x76\x58\xc1\x58\xbe\x58\xc7\x58\xc5\x59\x6e\x5b\x1d\x5b\x34\x5b\x78\x5b\xf0\x5c\x0e\x5f\x4a\x61\xb2\x61\x91\x61\xa9\x61\x8a\x61\xcd\x61\xb6\x61\xbe\x61\xca\x61\xc8\x62\x30\x64\xc5\x64\xc1", /* 6280 */ "\x00\x00\x64\xcb\x64\xbb\x64\xbc\x64\xda\x64\xc4\x64\xc7\x64\xc2\x64\xcd\x64\xbf\x64\xd2\x64\xd4\x64\xbe\x65\x74\x66\xc6\x66\xc9\x66\xb9\x66\xc4\x66\xc7\x66\xb8\x6a\x3d\x6a\x38\x6a\x3a\x6a\x59\x6a\x6b\x6a\x58\x6a\x39\x6a\x44\x6a\x62\x6a\x61\x6a\x4b\x6a\x47\x6a\x35\x6a\x5f\x6a\x48\x6b\x59\x6b\x77\x6c\x05\x6f\xc2\x6f\xb1\x6f\xa1\x6f\xc3\x6f\xa4\x6f\xc1\x6f\xa7\x6f\xb3\x6f\xc0\x6f\xb9\x6f\xb6\x6f\xa6\x6f\xa0\x6f\xb4\x71\xbe\x71\xc9\x71\xd0\x71\xd2\x71\xc8\x71\xd5\x71\xb9\x71\xce\x71\xd9\x71\xdc\x71\xc3\x71\xc4\x73\x68\x74\x9c\x74\xa3\x74\x98\x74\x9f\x74\x9e\x74\xe2\x75\x0c\x75\x0d\x76\x34\x76\x38\x76\x3a\x76\xe7\x76\xe5\x77\xa0\x77\x9e\x77\x9f\x77\xa5\x78\xe8\x78\xda\x78\xec\x78\xe7\x79\xa6\x7a\x4d\x7a\x4e\x7a\x46\x7a\x4c\x7a\x4b\x7a\xba\x7b\xd9\x7c\x11\x7b\xc9\x7b\xe4\x7b\xdb\x7b\xe1\x7b\xe9\x7b\xe6\x7c\xd5\x7c\xd6\x7e\x0a\x7e\x11\x7e\x08\x7e\x1b\x7e\x23\x7e\x1e\x7e\x1d\x7e\x09\x7e\x10\x7f\x79\x7f\xb2\x7f\xf0\x7f\xf1\x7f\xee\x80\x28\x81\xb3\x81\xa9\x81\xa8\x81\xfb\x82\x08\x82\x58\x82\x59\x85\x4a\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x59\x85\x48\x85\x68\x85\x69\x85\x43\x85\x49\x85\x6d\x85\x6a\x85\x5e\x87\x83\x87\x9f\x87\x9e\x87\xa2\x87\x8d\x88\x61\x89\x2a\x89\x32\x89\x25\x89\x2b\x89\x21\x89\xaa\x89\xa6\x8a\xe6\x8a\xfa\x8a\xeb\x8a\xf1\x8b\x00\x8a\xdc\x8a\xe7\x8a\xee\x8a\xfe\x8b\x01\x8b\x02\x8a\xf7\x8a\xed\x8a\xf3\x8a\xf6\x8a\xfc\x8c\x6b\x8c\x6d\x8c\x93\x8c\xf4\x8e\x44\x8e\x31\x8e\x34\x8e\x42\x8e\x39\x8e\x35\x8f\x3b\x8f\x2f\x8f\x38\x8f\x33\x8f\xa8\x8f\xa6\x90\x75\x90\x74\x90\x78\x90\x72\x90\x7c\x90\x7a\x91\x34\x91\x92\x93\x20", /* 6380 */ "\x00\x00\x93\x36\x92\xf8\x93\x33\x93\x2f\x93\x22\x92\xfc\x93\x2b\x93\x04\x93\x1a\x93\x10\x93\x26\x93\x21\x93\x15\x93\x2e\x93\x19\x95\xbb\x96\xa7\x96\xa8\x96\xaa\x96\xd5\x97\x0e\x97\x11\x97\x16\x97\x0d\x97\x13\x97\x0f\x97\x5b\x97\x5c\x97\x66\x97\x98\x98\x30\x98\x38\x98\x3b\x98\x37\x98\x2d\x98\x39\x98\x24\x99\x10\x99\x28\x99\x1e\x99\x1b\x99\x21\x99\x1a\x99\xed\x99\xe2\x99\xf1\x9a\xb8\x9a\xbc\x9a\xfb\x9a\xed\x9b\x28\x9b\x91\x9d\x15\x9d\x23\x9d\x26\x9d\x28\x9d\x12\x9d\x1b\x9e\xd8\x9e\xd4\x9f\x8d\x9f\x9c\x51\x2a\x51\x1f\x51\x21\x51\x32\x52\xf5\x56\x8e\x56\x80\x56\x90\x56\x85\x56\x87\x56\x8f\x58\xd5\x58\xd3\x58\xd1\x58\xce\x5b\x30\x5b\x2a\x5b\x24\x5b\x7a\x5c\x37\x5c\x68\x5d\xbc\x5d\xba\x5d\xbd\x5d\xb8\x5e\x6b\x5f\x4c\x5f\xbd\x61\xc9\x61\xc2\x61\xc7\x61\xe6\x61\xcb\x62\x32\x62\x34\x64\xce\x64\xca\x64\xd8\x64\xe0\x64\xf0\x64\xe6\x64\xec\x64\xf1\x64\xe2\x64\xed\x65\x82\x65\x83\x66\xd9\x66\xd6\x6a\x80\x6a\x94\x6a\x84\x6a\xa2\x6a\x9c\x6a\xdb\x6a\xa3\x6a\x7e\x6a\x97\x6a\x90\x6a\xa0\x6b\x5c\x6b\xae\x6b\xda\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x08\x6f\xd8\x6f\xf1\x6f\xdf\x6f\xe0\x6f\xdb\x6f\xe4\x6f\xeb\x6f\xef\x6f\x80\x6f\xec\x6f\xe1\x6f\xe9\x6f\xd5\x6f\xee\x6f\xf0\x71\xe7\x71\xdf\x71\xee\x71\xe6\x71\xe5\x71\xed\x71\xec\x71\xf4\x71\xe0\x72\x35\x72\x46\x73\x70\x73\x72\x74\xa9\x74\xb0\x74\xa6\x74\xa8\x76\x46\x76\x42\x76\x4c\x76\xea\x77\xb3\x77\xaa\x77\xb0\x77\xac\x77\xa7\x77\xad\x77\xef\x78\xf7\x78\xfa\x78\xf4\x78\xef\x79\x01\x79\xa7\x79\xaa\x7a\x57\x7a\xbf\x7c\x07\x7c\x0d\x7b\xfe\x7b\xf7\x7c\x0c\x7b\xe0\x7c\xe0\x7c\xdc\x7c\xde\x7c\xe2", /* 6480 */ "\x00\x00\x7c\xdf\x7c\xd9\x7c\xdd\x7e\x2e\x7e\x3e\x7e\x46\x7e\x37\x7e\x32\x7e\x43\x7e\x2b\x7e\x3d\x7e\x31\x7e\x45\x7e\x41\x7e\x34\x7e\x39\x7e\x48\x7e\x35\x7e\x3f\x7e\x2f\x7f\x44\x7f\xf3\x7f\xfc\x80\x71\x80\x72\x80\x70\x80\x6f\x80\x73\x81\xc6\x81\xc3\x81\xba\x81\xc2\x81\xc0\x81\xbf\x81\xbd\x81\xc9\x81\xbe\x81\xe8\x82\x09\x82\x71\x85\xaa\x85\x84\x85\x7e\x85\x9c\x85\x91\x85\x94\x85\xaf\x85\x9b\x85\x87\x85\xa8\x85\x8a\x86\x67\x87\xc0\x87\xd1\x87\xb3\x87\xd2\x87\xc6\x87\xab\x87\xbb\x87\xba\x87\xc8\x87\xcb\x89\x3b\x89\x36\x89\x44\x89\x38\x89\x3d\x89\xac\x8b\x0e\x8b\x17\x8b\x19\x8b\x1b\x8b\x0a\x8b\x20\x8b\x1d\x8b\x04\x8b\x10\x8c\x41\x8c\x3f\x8c\x73\x8c\xfa\x8c\xfd\x8c\xfc\x8c\xf8\x8c\xfb\x8d\xa8\x8e\x49\x8e\x4b\x8e\x48\x8e\x4a\x8f\x44\x8f\x3e\x8f\x42\x8f\x45\x8f\x3f\x90\x7f\x90\x7d\x90\x84\x90\x81\x90\x82\x90\x80\x91\x39\x91\xa3\x91\x9e\x91\x9c\x93\x4d\x93\x82\x93\x28\x93\x75\x93\x4a\x93\x65\x93\x4b\x93\x18\x93\x7e\x93\x6c\x93\x5b\x93\x70\x93\x5a\x93\x54\x95\xca\x95\xcb\x95\xcc\x95\xc8\x95\xc6\x96\xb1\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xb8\x96\xd6\x97\x1c\x97\x1e\x97\xa0\x97\xd3\x98\x46\x98\xb6\x99\x35\x9a\x01\x99\xff\x9b\xae\x9b\xab\x9b\xaa\x9b\xad\x9d\x3b\x9d\x3f\x9e\x8b\x9e\xcf\x9e\xde\x9e\xdc\x9e\xdd\x9e\xdb\x9f\x3e\x9f\x4b\x53\xe2\x56\x95\x56\xae\x58\xd9\x58\xd8\x5b\x38\x5f\x5e\x61\xe3\x62\x33\x64\xf4\x64\xf2\x64\xfe\x65\x06\x64\xfa\x64\xfb\x64\xf7\x65\xb7\x66\xdc\x67\x26\x6a\xb3\x6a\xac\x6a\xc3\x6a\xbb\x6a\xb8\x6a\xc2\x6a\xae\x6a\xaf\x6b\x5f\x6b\x78\x6b\xaf\x70\x09\x70\x0b\x6f\xfe\x70\x06\x6f\xfa\x70\x11\x70\x0f\x71\xfb", /* 6580 */ "\x00\x00\x71\xfc\x71\xfe\x71\xf8\x73\x77\x73\x75\x74\xa7\x74\xbf\x75\x15\x76\x56\x76\x58\x76\x52\x77\xbd\x77\xbf\x77\xbb\x77\xbc\x79\x0e\x79\xae\x7a\x61\x7a\x62\x7a\x60\x7a\xc4\x7a\xc5\x7c\x2b\x7c\x27\x7c\x2a\x7c\x1e\x7c\x23\x7c\x21\x7c\xe7\x7e\x54\x7e\x55\x7e\x5e\x7e\x5a\x7e\x61\x7e\x52\x7e\x59\x7f\x48\x7f\xf9\x7f\xfb\x80\x77\x80\x76\x81\xcd\x81\xcf\x82\x0a\x85\xcf\x85\xa9\x85\xcd\x85\xd0\x85\xc9\x85\xb0\x85\xba\x85\xb9\x85\xa6\x87\xef\x87\xec\x87\xf2\x87\xe0\x89\x86\x89\xb2\x89\xf4\x8b\x28\x8b\x39\x8b\x2c\x8b\x2b\x8c\x50\x8d\x05\x8e\x59\x8e\x63\x8e\x66\x8e\x64\x8e\x5f\x8e\x55\x8e\xc0\x8f\x49\x8f\x4d\x90\x87\x90\x83\x90\x88\x91\xab\x91\xac\x91\xd0\x93\x94\x93\x8a\x93\x96\x93\xa2\x93\xb3\x93\xae\x93\xac\x93\xb0\x93\x98\x93\x9a\x93\x97\x95\xd4\x95\xd6\x95\xd0\x95\xd5\x96\xe2\x96\xdc\x96\xd9\x96\xdb\x96\xde\x97\x24\x97\xa3\x97\xa6\x97\xad\x97\xf9\x98\x4d\x98\x4f\x98\x4c\x98\x4e\x98\x53\x98\xba\x99\x3e\x99\x3f\x99\x3d\x99\x2e\x99\xa5\x9a\x0e\x9a\xc1\x9b\x03\x9b\x06\x9b\x4f\x9b\x4e\x9b\x4d\x9b\xca\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xc9\x9b\xfd\x9b\xc8\x9b\xc0\x9d\x51\x9d\x5d\x9d\x60\x9e\xe0\x9f\x15\x9f\x2c\x51\x33\x56\xa5\x58\xde\x58\xdf\x58\xe2\x5b\xf5\x9f\x90\x5e\xec\x61\xf2\x61\xf7\x61\xf6\x61\xf5\x65\x00\x65\x0f\x66\xe0\x66\xdd\x6a\xe5\x6a\xdd\x6a\xda\x6a\xd3\x70\x1b\x70\x1f\x70\x28\x70\x1a\x70\x1d\x70\x15\x70\x18\x72\x06\x72\x0d\x72\x58\x72\xa2\x73\x78\x73\x7a\x74\xbd\x74\xca\x74\xe3\x75\x87\x75\x86\x76\x5f\x76\x61\x77\xc7\x79\x19\x79\xb1\x7a\x6b\x7a\x69\x7c\x3e\x7c\x3f\x7c\x38\x7c\x3d\x7c\x37\x7c\x40\x7e\x6b\x7e\x6d", /* 6680 */ "\x00\x00\x7e\x79\x7e\x69\x7e\x6a\x7f\x85\x7e\x73\x7f\xb6\x7f\xb9\x7f\xb8\x81\xd8\x85\xe9\x85\xdd\x85\xea\x85\xd5\x85\xe4\x85\xe5\x85\xf7\x87\xfb\x88\x05\x88\x0d\x87\xf9\x87\xfe\x89\x60\x89\x5f\x89\x56\x89\x5e\x8b\x41\x8b\x5c\x8b\x58\x8b\x49\x8b\x5a\x8b\x4e\x8b\x4f\x8b\x46\x8b\x59\x8d\x08\x8d\x0a\x8e\x7c\x8e\x72\x8e\x87\x8e\x76\x8e\x6c\x8e\x7a\x8e\x74\x8f\x54\x8f\x4e\x8f\xad\x90\x8a\x90\x8b\x91\xb1\x91\xae\x93\xe1\x93\xd1\x93\xdf\x93\xc3\x93\xc8\x93\xdc\x93\xdd\x93\xd6\x93\xe2\x93\xcd\x93\xd8\x93\xe4\x93\xd7\x93\xe8\x95\xdc\x96\xb4\x96\xe3\x97\x2a\x97\x27\x97\x61\x97\xdc\x97\xfb\x98\x5e\x98\x58\x98\x5b\x98\xbc\x99\x45\x99\x49\x9a\x16\x9a\x19\x9b\x0d\x9b\xe8\x9b\xe7\x9b\xd6\x9b\xdb\x9d\x89\x9d\x61\x9d\x72\x9d\x6a\x9d\x6c\x9e\x92\x9e\x97\x9e\x93\x9e\xb4\x52\xf8\x56\xa8\x56\xb7\x56\xb6\x56\xb4\x56\xbc\x58\xe4\x5b\x40\x5b\x43\x5b\x7d\x5b\xf6\x5d\xc9\x61\xf8\x61\xfa\x65\x18\x65\x14\x65\x19\x66\xe6\x67\x27\x6a\xec\x70\x3e\x70\x30\x70\x32\x72\x10\x73\x7b\x74\xcf\x76\x62\x76\x65\x79\x26\x79\x2a\x79\x2c\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x2b\x7a\xc7\x7a\xf6\x7c\x4c\x7c\x43\x7c\x4d\x7c\xef\x7c\xf0\x8f\xae\x7e\x7d\x7e\x7c\x7e\x82\x7f\x4c\x80\x00\x81\xda\x82\x66\x85\xfb\x85\xf9\x86\x11\x85\xfa\x86\x06\x86\x0b\x86\x07\x86\x0a\x88\x14\x88\x15\x89\x64\x89\xba\x89\xf8\x8b\x70\x8b\x6c\x8b\x66\x8b\x6f\x8b\x5f\x8b\x6b\x8d\x0f\x8d\x0d\x8e\x89\x8e\x81\x8e\x85\x8e\x82\x91\xb4\x91\xcb\x94\x18\x94\x03\x93\xfd\x95\xe1\x97\x30\x98\xc4\x99\x52\x99\x51\x99\xa8\x9a\x2b\x9a\x30\x9a\x37\x9a\x35\x9c\x13\x9c\x0d\x9e\x79\x9e\xb5\x9e\xe8\x9f\x2f\x9f\x5f", /* 6780 */ "\x00\x00\x9f\x63\x9f\x61\x51\x37\x51\x38\x56\xc1\x56\xc0\x56\xc2\x59\x14\x5c\x6c\x5d\xcd\x61\xfc\x61\xfe\x65\x1d\x65\x1c\x65\x95\x66\xe9\x6a\xfb\x6b\x04\x6a\xfa\x6b\xb2\x70\x4c\x72\x1b\x72\xa7\x74\xd6\x74\xd4\x76\x69\x77\xd3\x7c\x50\x7e\x8f\x7e\x8c\x7f\xbc\x86\x17\x86\x2d\x86\x1a\x88\x23\x88\x22\x88\x21\x88\x1f\x89\x6a\x89\x6c\x89\xbd\x8b\x74\x8b\x77\x8b\x7d\x8d\x13\x8e\x8a\x8e\x8d\x8e\x8b\x8f\x5f\x8f\xaf\x91\xba\x94\x2e\x94\x33\x94\x35\x94\x3a\x94\x38\x94\x32\x94\x2b\x95\xe2\x97\x38\x97\x39\x97\x32\x97\xff\x98\x67\x98\x65\x99\x57\x9a\x45\x9a\x43\x9a\x40\x9a\x3e\x9a\xcf\x9b\x54\x9b\x51\x9c\x2d\x9c\x25\x9d\xaf\x9d\xb4\x9d\xc2\x9d\xb8\x9e\x9d\x9e\xef\x9f\x19\x9f\x5c\x9f\x66\x9f\x67\x51\x3c\x51\x3b\x56\xc8\x56\xca\x56\xc9\x5b\x7f\x5d\xd4\x5d\xd2\x5f\x4e\x61\xff\x65\x24\x6b\x0a\x6b\x61\x70\x51\x70\x58\x73\x80\x74\xe4\x75\x8a\x76\x6e\x76\x6c\x79\xb3\x7c\x60\x7c\x5f\x80\x7e\x80\x7d\x81\xdf\x89\x72\x89\x6f\x89\xfc\x8b\x80\x8d\x16\x8d\x17\x8e\x91\x8e\x93\x8f\x61\x91\x48\x94\x44\x94\x51\x94\x52\x97\x3d\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x3e\x97\xc3\x97\xc1\x98\x6b\x99\x55\x9a\x55\x9a\x4d\x9a\xd2\x9b\x1a\x9c\x49\x9c\x31\x9c\x3e\x9c\x3b\x9d\xd3\x9d\xd7\x9f\x34\x9f\x6c\x9f\x6a\x9f\x94\x56\xcc\x5d\xd6\x62\x00\x65\x23\x65\x2b\x65\x2a\x66\xec\x6b\x10\x74\xda\x7a\xca\x7c\x64\x7c\x63\x7c\x65\x7e\x93\x7e\x96\x7e\x94\x81\xe2\x86\x38\x86\x3f\x88\x31\x8b\x8a\x90\x90\x90\x8f\x94\x63\x94\x60\x94\x64\x97\x68\x98\x6f\x99\x5c\x9a\x5a\x9a\x5b\x9a\x57\x9a\xd3\x9a\xd4\x9a\xd1\x9c\x54\x9c\x57\x9c\x56\x9d\xe5\x9e\x9f\x9e\xf4\x56\xd1\x58\xe9\x65\x2c", /* 6880 */ "\x00\x00\x70\x5e\x76\x71\x76\x72\x77\xd7\x7f\x50\x7f\x88\x88\x36\x88\x39\x88\x62\x8b\x93\x8b\x92\x8b\x96\x82\x77\x8d\x1b\x91\xc0\x94\x6a\x97\x42\x97\x48\x97\x44\x97\xc6\x98\x70\x9a\x5f\x9b\x22\x9b\x58\x9c\x5f\x9d\xf9\x9d\xfa\x9e\x7c\x9e\x7d\x9f\x07\x9f\x77\x9f\x72\x5e\xf3\x6b\x16\x70\x63\x7c\x6c\x7c\x6e\x88\x3b\x89\xc0\x8e\xa1\x91\xc1\x94\x72\x94\x70\x98\x71\x99\x5e\x9a\xd6\x9b\x23\x9e\xcc\x70\x64\x77\xda\x8b\x9a\x94\x77\x97\xc9\x9a\x62\x9a\x65\x7e\x9c\x8b\x9c\x8e\xaa\x91\xc5\x94\x7d\x94\x7e\x94\x7c\x9c\x77\x9c\x78\x9e\xf7\x8c\x54\x94\x7f\x9e\x1a\x72\x28\x9a\x6a\x9b\x31\x9e\x1b\x9e\x1e\x7c\x72\x64\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x42\x4e\x5c\x51\xf5\x53\x1a\x53\x82\x4e\x07\x4e\x0c\x4e\x47\x4e\x8d\x56\xd7\xfa\x0c\x5c\x6e\x5f\x73\x4e\x0f\x51\x87\x4e\x0e\x4e\x2e\x4e\x93\x4e\xc2\x4e\xc9\x4e\xc8\x51\x98\x52\xfc\x53\x6c\x53\xb9\x57\x20\x59\x03\x59\x2c\x5c\x10\x5d\xff\x65\xe1\x6b\xb3\x6b\xcc\x6c\x14\x72\x3f\x4e\x31\x4e\x3c\x4e\xe8\x4e\xdc\x4e\xe9\x4e\xe1\x4e\xdd\x4e\xda\x52\x0c\x53\x1c\x53\x4c\x57\x22\x57\x23\x59\x17\x59\x2f\x5b\x81\x5b\x84\x5c\x12\x5c\x3b\x5c\x74\x5c\x73\x5e\x04\x5e\x80\x5e\x82\x5f\xc9\x62\x09\x62\x50\x6c\x15", /* 6980 */ "\x00\x00\x6c\x36\x6c\x43\x6c\x3f\x6c\x3b\x72\xae\x72\xb0\x73\x8a\x79\xb8\x80\x8a\x96\x1e\x4f\x0e\x4f\x18\x4f\x2c\x4e\xf5\x4f\x14\x4e\xf1\x4f\x00\x4e\xf7\x4f\x08\x4f\x1d\x4f\x02\x4f\x05\x4f\x22\x4f\x13\x4f\x04\x4e\xf4\x4f\x12\x51\xb1\x52\x13\x52\x09\x52\x10\x52\xa6\x53\x22\x53\x1f\x53\x4d\x53\x8a\x54\x07\x56\xe1\x56\xdf\x57\x2e\x57\x2a\x57\x34\x59\x3c\x59\x80\x59\x7c\x59\x85\x59\x7b\x59\x7e\x59\x77\x59\x7f\x5b\x56\x5c\x15\x5c\x25\x5c\x7c\x5c\x7a\x5c\x7b\x5c\x7e\x5d\xdf\x5e\x75\x5e\x84\x5f\x02\x5f\x1a\x5f\x74\x5f\xd5\x5f\xd4\x5f\xcf\x62\x65\x62\x5c\x62\x5e\x62\x64\x62\x61\x62\x66\x62\x62\x62\x59\x62\x60\x62\x5a\x65\xef\x65\xee\x67\x3e\x67\x39\x67\x38\x67\x3b\x67\x3a\x67\x3f\x67\x3c\x67\x33\x6c\x18\x6c\x46\x6c\x52\x6c\x5c\x6c\x4f\x6c\x4a\x6c\x54\x6c\x4b\x6c\x4c\x70\x71\x72\x5e\x72\xb4\x72\xb5\x73\x8e\x75\x2a\x76\x7f\x7a\x75\x7f\x51\x82\x78\x82\x7c\x82\x80\x82\x7d\x82\x7f\x86\x4d\x89\x7e\x90\x99\x90\x97\x90\x98\x90\x9b\x90\x94\x96\x22\x96\x24\x96\x20\x96\x23\x4f\x56\x4f\x3b\x4f\x62\x4f\x49\x4f\x53\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x64\x4f\x3e\x4f\x67\x4f\x52\x4f\x5f\x4f\x41\x4f\x58\x4f\x2d\x4f\x33\x4f\x3f\x4f\x61\x51\x8f\x51\xb9\x52\x1c\x52\x1e\x52\x21\x52\xad\x52\xae\x53\x09\x53\x63\x53\x72\x53\x8e\x53\x8f\x54\x30\x54\x37\x54\x2a\x54\x54\x54\x45\x54\x19\x54\x1c\x54\x25\x54\x18\x54\x3d\x54\x4f\x54\x41\x54\x28\x54\x24\x54\x47\x56\xee\x56\xe7\x56\xe5\x57\x41\x57\x45\x57\x4c\x57\x49\x57\x4b\x57\x52\x59\x06\x59\x40\x59\xa6\x59\x98\x59\xa0\x59\x97\x59\x8e\x59\xa2\x59\x90\x59\x8f\x59\xa7\x59\xa1\x5b\x8e\x5b\x92\x5c\x28\x5c\x2a", /* 6a80 */ "\x00\x00\x5c\x8d\x5c\x8f\x5c\x88\x5c\x8b\x5c\x89\x5c\x92\x5c\x8a\x5c\x86\x5c\x93\x5c\x95\x5d\xe0\x5e\x0a\x5e\x0e\x5e\x8b\x5e\x89\x5e\x8c\x5e\x88\x5e\x8d\x5f\x05\x5f\x1d\x5f\x78\x5f\x76\x5f\xd2\x5f\xd1\x5f\xd0\x5f\xed\x5f\xe8\x5f\xee\x5f\xf3\x5f\xe1\x5f\xe4\x5f\xe3\x5f\xfa\x5f\xef\x5f\xf7\x5f\xfb\x60\x00\x5f\xf4\x62\x3a\x62\x83\x62\x8c\x62\x8e\x62\x8f\x62\x94\x62\x87\x62\x71\x62\x7b\x62\x7a\x62\x70\x62\x81\x62\x88\x62\x77\x62\x7d\x62\x72\x62\x74\x65\x37\x65\xf0\x65\xf4\x65\xf3\x65\xf2\x65\xf5\x67\x45\x67\x47\x67\x59\x67\x55\x67\x4c\x67\x48\x67\x5d\x67\x4d\x67\x5a\x67\x4b\x6b\xd0\x6c\x19\x6c\x1a\x6c\x78\x6c\x67\x6c\x6b\x6c\x84\x6c\x8b\x6c\x8f\x6c\x71\x6c\x6f\x6c\x69\x6c\x9a\x6c\x6d\x6c\x87\x6c\x95\x6c\x9c\x6c\x66\x6c\x73\x6c\x65\x6c\x7b\x6c\x8e\x70\x74\x70\x7a\x72\x63\x72\xbf\x72\xbd\x72\xc3\x72\xc6\x72\xc1\x72\xba\x72\xc5\x73\x95\x73\x97\x73\x93\x73\x94\x73\x92\x75\x3a\x75\x39\x75\x94\x75\x95\x76\x81\x79\x3d\x80\x34\x80\x95\x80\x99\x80\x90\x80\x92\x80\x9c\x82\x90\x82\x8f\x82\x85\x82\x8e\x82\x91\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x93\x82\x8a\x82\x83\x82\x84\x8c\x78\x8f\xc9\x8f\xbf\x90\x9f\x90\xa1\x90\xa5\x90\x9e\x90\xa7\x90\xa0\x96\x30\x96\x28\x96\x2f\x96\x2d\x4e\x33\x4f\x98\x4f\x7c\x4f\x85\x4f\x7d\x4f\x80\x4f\x87\x4f\x76\x4f\x74\x4f\x89\x4f\x84\x4f\x77\x4f\x4c\x4f\x97\x4f\x6a\x4f\x9a\x4f\x79\x4f\x81\x4f\x78\x4f\x90\x4f\x9c\x4f\x94\x4f\x9e\x4f\x92\x4f\x82\x4f\x95\x4f\x6b\x4f\x6e\x51\x9e\x51\xbc\x51\xbe\x52\x35\x52\x32\x52\x33\x52\x46\x52\x31\x52\xbc\x53\x0a\x53\x0b\x53\x3c\x53\x92\x53\x94\x54\x87\x54\x7f\x54\x81\x54\x91", /* 6b80 */ "\x00\x00\x54\x82\x54\x88\x54\x6b\x54\x7a\x54\x7e\x54\x65\x54\x6c\x54\x74\x54\x66\x54\x8d\x54\x6f\x54\x61\x54\x60\x54\x98\x54\x63\x54\x67\x54\x64\x56\xf7\x56\xf9\x57\x6f\x57\x72\x57\x6d\x57\x6b\x57\x71\x57\x70\x57\x76\x57\x80\x57\x75\x57\x7b\x57\x73\x57\x74\x57\x62\x57\x68\x57\x7d\x59\x0c\x59\x45\x59\xb5\x59\xba\x59\xcf\x59\xce\x59\xb2\x59\xcc\x59\xc1\x59\xb6\x59\xbc\x59\xc3\x59\xd6\x59\xb1\x59\xbd\x59\xc0\x59\xc8\x59\xb4\x59\xc7\x5b\x62\x5b\x65\x5b\x93\x5b\x95\x5c\x44\x5c\x47\x5c\xae\x5c\xa4\x5c\xa0\x5c\xb5\x5c\xaf\x5c\xa8\x5c\xac\x5c\x9f\x5c\xa3\x5c\xad\x5c\xa2\x5c\xaa\x5c\xa7\x5c\x9d\x5c\xa5\x5c\xb6\x5c\xb0\x5c\xa6\x5e\x17\x5e\x14\x5e\x19\x5f\x28\x5f\x22\x5f\x23\x5f\x24\x5f\x54\x5f\x82\x5f\x7e\x5f\x7d\x5f\xde\x5f\xe5\x60\x2d\x60\x26\x60\x19\x60\x32\x60\x0b\x60\x34\x60\x0a\x60\x17\x60\x33\x60\x1a\x60\x1e\x60\x2c\x60\x22\x60\x0d\x60\x10\x60\x2e\x60\x13\x60\x11\x60\x0c\x60\x09\x60\x1c\x62\x14\x62\x3d\x62\xad\x62\xb4\x62\xd1\x62\xbe\x62\xaa\x62\xb6\x62\xca\x62\xae\x62\xb3\x62\xaf\x62\xbb\x62\xa9\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb0\x62\xb8\x65\x3d\x65\xa8\x65\xbb\x66\x09\x65\xfc\x66\x04\x66\x12\x66\x08\x65\xfb\x66\x03\x66\x0b\x66\x0d\x66\x05\x65\xfd\x66\x11\x66\x10\x66\xf6\x67\x0a\x67\x85\x67\x6c\x67\x8e\x67\x92\x67\x76\x67\x7b\x67\x98\x67\x86\x67\x84\x67\x74\x67\x8d\x67\x8c\x67\x7a\x67\x9f\x67\x91\x67\x99\x67\x83\x67\x7d\x67\x81\x67\x78\x67\x79\x67\x94\x6b\x25\x6b\x80\x6b\x7e\x6b\xde\x6c\x1d\x6c\x93\x6c\xec\x6c\xeb\x6c\xee\x6c\xd9\x6c\xb6\x6c\xd4\x6c\xad\x6c\xe7\x6c\xb7\x6c\xd0\x6c\xc2\x6c\xba\x6c\xc3\x6c\xc6\x6c\xed", /* 6c80 */ "\x00\x00\x6c\xf2\x6c\xd2\x6c\xdd\x6c\xb4\x6c\x8a\x6c\x9d\x6c\x80\x6c\xde\x6c\xc0\x6d\x30\x6c\xcd\x6c\xc7\x6c\xb0\x6c\xf9\x6c\xcf\x6c\xe9\x6c\xd1\x70\x94\x70\x98\x70\x85\x70\x93\x70\x86\x70\x84\x70\x91\x70\x96\x70\x82\x70\x9a\x70\x83\x72\x6a\x72\xd6\x72\xcb\x72\xd8\x72\xc9\x72\xdc\x72\xd2\x72\xd4\x72\xda\x72\xcc\x72\xd1\x73\xa4\x73\xa1\x73\xad\x73\xa6\x73\xa2\x73\xa0\x73\xac\x73\x9d\x74\xdd\x74\xe8\x75\x3f\x75\x40\x75\x3e\x75\x8c\x75\x98\x76\xaf\x76\xf3\x76\xf1\x76\xf0\x76\xf5\x77\xf8\x77\xfc\x77\xf9\x77\xfb\x77\xfa\x77\xf7\x79\x42\x79\x3f\x79\xc5\x7a\x78\x7a\x7b\x7a\xfb\x7c\x75\x7c\xfd\x80\x35\x80\x8f\x80\xae\x80\xa3\x80\xb8\x80\xb5\x80\xad\x82\x20\x82\xa0\x82\xc0\x82\xab\x82\x9a\x82\x98\x82\x9b\x82\xb5\x82\xa7\x82\xae\x82\xbc\x82\x9e\x82\xba\x82\xb4\x82\xa8\x82\xa1\x82\xa9\x82\xc2\x82\xa4\x82\xc3\x82\xb6\x82\xa2\x86\x70\x86\x6f\x86\x6d\x86\x6e\x8c\x56\x8f\xd2\x8f\xcb\x8f\xd3\x8f\xcd\x8f\xd6\x8f\xd5\x8f\xd7\x90\xb2\x90\xb4\x90\xaf\x90\xb3\x90\xb0\x96\x39\x96\x3d\x96\x3c\x96\x3a\x96\x43\x4f\xcd\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc5\x4f\xd3\x4f\xb2\x4f\xc9\x4f\xcb\x4f\xc1\x4f\xd4\x4f\xdc\x4f\xd9\x4f\xbb\x4f\xb3\x4f\xdb\x4f\xc7\x4f\xd6\x4f\xba\x4f\xc0\x4f\xb9\x4f\xec\x52\x44\x52\x49\x52\xc0\x52\xc2\x53\x3d\x53\x7c\x53\x97\x53\x96\x53\x99\x53\x98\x54\xba\x54\xa1\x54\xad\x54\xa5\x54\xcf\x54\xc3\x83\x0d\x54\xb7\x54\xae\x54\xd6\x54\xb6\x54\xc5\x54\xc6\x54\xa0\x54\x70\x54\xbc\x54\xa2\x54\xbe\x54\x72\x54\xde\x54\xb0\x57\xb5\x57\x9e\x57\x9f\x57\xa4\x57\x8c\x57\x97\x57\x9d\x57\x9b\x57\x94\x57\x98\x57\x8f\x57\x99\x57\xa5\x57\x9a", /* 6d80 */ "\x00\x00\x57\x95\x58\xf4\x59\x0d\x59\x53\x59\xe1\x59\xde\x59\xee\x5a\x00\x59\xf1\x59\xdd\x59\xfa\x59\xfd\x59\xfc\x59\xf6\x59\xe4\x59\xf2\x59\xf7\x59\xdb\x59\xe9\x59\xf3\x59\xf5\x59\xe0\x59\xfe\x59\xf4\x59\xed\x5b\xa8\x5c\x4c\x5c\xd0\x5c\xd8\x5c\xcc\x5c\xd7\x5c\xcb\x5c\xdb\x5c\xde\x5c\xda\x5c\xc9\x5c\xc7\x5c\xca\x5c\xd6\x5c\xd3\x5c\xd4\x5c\xcf\x5c\xc8\x5c\xc6\x5c\xce\x5c\xdf\x5c\xf8\x5d\xf9\x5e\x21\x5e\x22\x5e\x23\x5e\x20\x5e\x24\x5e\xb0\x5e\xa4\x5e\xa2\x5e\x9b\x5e\xa3\x5e\xa5\x5f\x07\x5f\x2e\x5f\x56\x5f\x86\x60\x37\x60\x39\x60\x54\x60\x72\x60\x5e\x60\x45\x60\x53\x60\x47\x60\x49\x60\x5b\x60\x4c\x60\x40\x60\x42\x60\x5f\x60\x24\x60\x44\x60\x58\x60\x66\x60\x6e\x62\x42\x62\x43\x62\xcf\x63\x0d\x63\x0b\x62\xf5\x63\x0e\x63\x03\x62\xeb\x62\xf9\x63\x0f\x63\x0c\x62\xf8\x62\xf6\x63\x00\x63\x13\x63\x14\x62\xfa\x63\x15\x62\xfb\x62\xf0\x65\x41\x65\x43\x65\xaa\x65\xbf\x66\x36\x66\x21\x66\x32\x66\x35\x66\x1c\x66\x26\x66\x22\x66\x33\x66\x2b\x66\x3a\x66\x1d\x66\x34\x66\x39\x66\x2e\x67\x0f\x67\x10\x67\xc1\x67\xf2\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc8\x67\xba\x67\xdc\x67\xbb\x67\xf8\x67\xd8\x67\xc0\x67\xb7\x67\xc5\x67\xeb\x67\xe4\x67\xdf\x67\xb5\x67\xcd\x67\xb3\x67\xf7\x67\xf6\x67\xee\x67\xe3\x67\xc2\x67\xb9\x67\xce\x67\xe7\x67\xf0\x67\xb2\x67\xfc\x67\xc6\x67\xed\x67\xcc\x67\xae\x67\xe6\x67\xdb\x67\xfa\x67\xc9\x67\xca\x67\xc3\x67\xea\x67\xcb\x6b\x28\x6b\x82\x6b\x84\x6b\xb6\x6b\xd6\x6b\xd8\x6b\xe0\x6c\x20\x6c\x21\x6d\x28\x6d\x34\x6d\x2d\x6d\x1f\x6d\x3c\x6d\x3f\x6d\x12\x6d\x0a\x6c\xda\x6d\x33\x6d\x04\x6d\x19\x6d\x3a\x6d\x1a\x6d\x11\x6d\x00", /* 6e80 */ "\x00\x00\x6d\x1d\x6d\x42\x6d\x01\x6d\x18\x6d\x37\x6d\x03\x6d\x0f\x6d\x40\x6d\x07\x6d\x20\x6d\x2c\x6d\x08\x6d\x22\x6d\x09\x6d\x10\x70\xb7\x70\x9f\x70\xbe\x70\xb1\x70\xb0\x70\xa1\x70\xb4\x70\xb5\x70\xa9\x72\x41\x72\x49\x72\x4a\x72\x6c\x72\x70\x72\x73\x72\x6e\x72\xca\x72\xe4\x72\xe8\x72\xeb\x72\xdf\x72\xea\x72\xe6\x72\xe3\x73\x85\x73\xcc\x73\xc2\x73\xc8\x73\xc5\x73\xb9\x73\xb6\x73\xb5\x73\xb4\x73\xeb\x73\xbf\x73\xc7\x73\xbe\x73\xc3\x73\xc6\x73\xb8\x73\xcb\x74\xec\x74\xee\x75\x2e\x75\x47\x75\x48\x75\xa7\x75\xaa\x76\x79\x76\xc4\x77\x08\x77\x03\x77\x04\x77\x05\x77\x0a\x76\xf7\x76\xfb\x76\xfa\x77\xe7\x77\xe8\x78\x06\x78\x11\x78\x12\x78\x05\x78\x10\x78\x0f\x78\x0e\x78\x09\x78\x03\x78\x13\x79\x4a\x79\x4c\x79\x4b\x79\x45\x79\x44\x79\xd5\x79\xcd\x79\xcf\x79\xd6\x79\xce\x7a\x80\x7a\x7e\x7a\xd1\x7b\x00\x7b\x01\x7c\x7a\x7c\x78\x7c\x79\x7c\x7f\x7c\x80\x7c\x81\x7d\x03\x7d\x08\x7d\x01\x7f\x58\x7f\x91\x7f\x8d\x7f\xbe\x80\x07\x80\x0e\x80\x0f\x80\x14\x80\x37\x80\xd8\x80\xc7\x80\xe0\x80\xd1\x80\xc8\x80\xc2\x80\xd0\x00\x00\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc5\x80\xe3\x80\xd9\x80\xdc\x80\xca\x80\xd5\x80\xc9\x80\xcf\x80\xd7\x80\xe6\x80\xcd\x81\xff\x82\x21\x82\x94\x82\xd9\x82\xfe\x82\xf9\x83\x07\x82\xe8\x83\x00\x82\xd5\x83\x3a\x82\xeb\x82\xd6\x82\xf4\x82\xec\x82\xe1\x82\xf2\x82\xf5\x83\x0c\x82\xfb\x82\xf6\x82\xf0\x82\xea\x82\xe4\x82\xe0\x82\xfa\x82\xf3\x82\xed\x86\x77\x86\x74\x86\x7c\x86\x73\x88\x41\x88\x4e\x88\x67\x88\x6a\x88\x69\x89\xd3\x8a\x04\x8a\x07\x8d\x72\x8f\xe3\x8f\xe1\x8f\xee\x8f\xe0\x90\xf1\x90\xbd\x90\xbf\x90\xd5\x90\xc5\x90\xbe\x90\xc7", /* 6f80 */ "\x00\x00\x90\xcb\x90\xc8\x91\xd4\x91\xd3\x96\x54\x96\x4f\x96\x51\x96\x53\x96\x4a\x96\x4e\x50\x1e\x50\x05\x50\x07\x50\x13\x50\x22\x50\x30\x50\x1b\x4f\xf5\x4f\xf4\x50\x33\x50\x37\x50\x2c\x4f\xf6\x4f\xf7\x50\x17\x50\x1c\x50\x20\x50\x27\x50\x35\x50\x2f\x50\x31\x50\x0e\x51\x5a\x51\x94\x51\x93\x51\xca\x51\xc4\x51\xc5\x51\xc8\x51\xce\x52\x61\x52\x5a\x52\x52\x52\x5e\x52\x5f\x52\x55\x52\x62\x52\xcd\x53\x0e\x53\x9e\x55\x26\x54\xe2\x55\x17\x55\x12\x54\xe7\x54\xf3\x54\xe4\x55\x1a\x54\xff\x55\x04\x55\x08\x54\xeb\x55\x11\x55\x05\x54\xf1\x55\x0a\x54\xfb\x54\xf7\x54\xf8\x54\xe0\x55\x0e\x55\x03\x55\x0b\x57\x01\x57\x02\x57\xcc\x58\x32\x57\xd5\x57\xd2\x57\xba\x57\xc6\x57\xbd\x57\xbc\x57\xb8\x57\xb6\x57\xbf\x57\xc7\x57\xd0\x57\xb9\x57\xc1\x59\x0e\x59\x4a\x5a\x19\x5a\x16\x5a\x2d\x5a\x2e\x5a\x15\x5a\x0f\x5a\x17\x5a\x0a\x5a\x1e\x5a\x33\x5b\x6c\x5b\xa7\x5b\xad\x5b\xac\x5c\x03\x5c\x56\x5c\x54\x5c\xec\x5c\xff\x5c\xee\x5c\xf1\x5c\xf7\x5d\x00\x5c\xf9\x5e\x29\x5e\x28\x5e\xa8\x5e\xae\x5e\xaa\x5e\xac\x5f\x33\x5f\x30\x5f\x67\x00\x00\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\xa2\x60\x88\x60\x80\x60\x92\x60\x81\x60\x9d\x60\x83\x60\x95\x60\x9b\x60\x97\x60\x87\x60\x9c\x60\x8e\x62\x19\x62\x46\x62\xf2\x63\x10\x63\x56\x63\x2c\x63\x44\x63\x45\x63\x36\x63\x43\x63\xe4\x63\x39\x63\x4b\x63\x4a\x63\x3c\x63\x29\x63\x41\x63\x34\x63\x58\x63\x54\x63\x59\x63\x2d\x63\x47\x63\x33\x63\x5a\x63\x51\x63\x38\x63\x57\x63\x40\x63\x48\x65\x4a\x65\x46\x65\xc6\x65\xc3\x65\xc4\x65\xc2\x66\x4a\x66\x5f\x66\x47\x66\x51\x67\x12\x67\x13\x68\x1f\x68\x1a\x68\x49\x68\x32", /* 7080 */ "\x00\x00\x68\x33\x68\x3b\x68\x4b\x68\x4f\x68\x16\x68\x31\x68\x1c\x68\x35\x68\x2b\x68\x2d\x68\x2f\x68\x4e\x68\x44\x68\x34\x68\x1d\x68\x12\x68\x14\x68\x26\x68\x28\x68\x2e\x68\x4d\x68\x3a\x68\x25\x68\x20\x6b\x2c\x6b\x2f\x6b\x2d\x6b\x31\x6b\x34\x6b\x6d\x80\x82\x6b\x88\x6b\xe6\x6b\xe4\x6b\xe8\x6b\xe3\x6b\xe2\x6b\xe7\x6c\x25\x6d\x7a\x6d\x63\x6d\x64\x6d\x76\x6d\x0d\x6d\x61\x6d\x92\x6d\x58\x6d\x62\x6d\x6d\x6d\x6f\x6d\x91\x6d\x8d\x6d\xef\x6d\x7f\x6d\x86\x6d\x5e\x6d\x67\x6d\x60\x6d\x97\x6d\x70\x6d\x7c\x6d\x5f\x6d\x82\x6d\x98\x6d\x2f\x6d\x68\x6d\x8b\x6d\x7e\x6d\x80\x6d\x84\x6d\x16\x6d\x83\x6d\x7b\x6d\x7d\x6d\x75\x6d\x90\x70\xdc\x70\xd3\x70\xd1\x70\xdd\x70\xcb\x7f\x39\x70\xe2\x70\xd7\x70\xd2\x70\xde\x70\xe0\x70\xd4\x70\xcd\x70\xc5\x70\xc6\x70\xc7\x70\xda\x70\xce\x70\xe1\x72\x42\x72\x78\x72\x77\x72\x76\x73\x00\x72\xfa\x72\xf4\x72\xfe\x72\xf6\x72\xf3\x72\xfb\x73\x01\x73\xd3\x73\xd9\x73\xe5\x73\xd6\x73\xbc\x73\xe7\x73\xe3\x73\xe9\x73\xdc\x73\xd2\x73\xdb\x73\xd4\x73\xdd\x73\xda\x73\xd7\x73\xd8\x73\xe8\x74\xde\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xdf\x74\xf4\x74\xf5\x75\x21\x75\x5b\x75\x5f\x75\xb0\x75\xc1\x75\xbb\x75\xc4\x75\xc0\x75\xbf\x75\xb6\x75\xba\x76\x8a\x76\xc9\x77\x1d\x77\x1b\x77\x10\x77\x13\x77\x12\x77\x23\x77\x11\x77\x15\x77\x19\x77\x1a\x77\x22\x77\x27\x78\x23\x78\x2c\x78\x22\x78\x35\x78\x2f\x78\x28\x78\x2e\x78\x2b\x78\x21\x78\x29\x78\x33\x78\x2a\x78\x31\x79\x54\x79\x5b\x79\x4f\x79\x5c\x79\x53\x79\x52\x79\x51\x79\xeb\x79\xec\x79\xe0\x79\xee\x79\xed\x79\xea\x79\xdc\x79\xde\x79\xdd\x7a\x86\x7a\x89\x7a\x85\x7a\x8b\x7a\x8c\x7a\x8a", /* 7180 */ "\x00\x00\x7a\x87\x7a\xd8\x7b\x10\x7b\x04\x7b\x13\x7b\x05\x7b\x0f\x7b\x08\x7b\x0a\x7b\x0e\x7b\x09\x7b\x12\x7c\x84\x7c\x91\x7c\x8a\x7c\x8c\x7c\x88\x7c\x8d\x7c\x85\x7d\x1e\x7d\x1d\x7d\x11\x7d\x0e\x7d\x18\x7d\x16\x7d\x13\x7d\x1f\x7d\x12\x7d\x0f\x7d\x0c\x7f\x5c\x7f\x61\x7f\x5e\x7f\x60\x7f\x5d\x7f\x5b\x7f\x96\x7f\x92\x7f\xc3\x7f\xc2\x7f\xc0\x80\x16\x80\x3e\x80\x39\x80\xfa\x80\xf2\x80\xf9\x80\xf5\x81\x01\x80\xfb\x81\x00\x82\x01\x82\x2f\x82\x25\x83\x33\x83\x2d\x83\x44\x83\x19\x83\x51\x83\x25\x83\x56\x83\x3f\x83\x41\x83\x26\x83\x1c\x83\x22\x83\x42\x83\x4e\x83\x1b\x83\x2a\x83\x08\x83\x3c\x83\x4d\x83\x16\x83\x24\x83\x20\x83\x37\x83\x2f\x83\x29\x83\x47\x83\x45\x83\x4c\x83\x53\x83\x1e\x83\x2c\x83\x4b\x83\x27\x83\x48\x86\x53\x86\x52\x86\xa2\x86\xa8\x86\x96\x86\x8d\x86\x91\x86\x9e\x86\x87\x86\x97\x86\x86\x86\x8b\x86\x9a\x86\x85\x86\xa5\x86\x99\x86\xa1\x86\xa7\x86\x95\x86\x98\x86\x8e\x86\x9d\x86\x90\x86\x94\x88\x43\x88\x44\x88\x6d\x88\x75\x88\x76\x88\x72\x88\x80\x88\x71\x88\x7f\x88\x6f\x88\x83\x88\x7e\x88\x74\x00\x00\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x7c\x8a\x12\x8c\x47\x8c\x57\x8c\x7b\x8c\xa4\x8c\xa3\x8d\x76\x8d\x78\x8d\xb5\x8d\xb7\x8d\xb6\x8e\xd1\x8e\xd3\x8f\xfe\x8f\xf5\x90\x02\x8f\xff\x8f\xfb\x90\x04\x8f\xfc\x8f\xf6\x90\xd6\x90\xe0\x90\xd9\x90\xda\x90\xe3\x90\xdf\x90\xe5\x90\xd8\x90\xdb\x90\xd7\x90\xdc\x90\xe4\x91\x50\x91\x4e\x91\x4f\x91\xd5\x91\xe2\x91\xda\x96\x5c\x96\x5f\x96\xbc\x98\xe3\x9a\xdf\x9b\x2f\x4e\x7f\x50\x70\x50\x6a\x50\x61\x50\x5e\x50\x60\x50\x53\x50\x4b\x50\x5d\x50\x72\x50\x48\x50\x4d\x50\x41\x50\x5b\x50\x4a\x50\x62\x50\x15", /* 7280 */ "\x00\x00\x50\x45\x50\x5f\x50\x69\x50\x6b\x50\x63\x50\x64\x50\x46\x50\x40\x50\x6e\x50\x73\x50\x57\x50\x51\x51\xd0\x52\x6b\x52\x6d\x52\x6c\x52\x6e\x52\xd6\x52\xd3\x53\x2d\x53\x9c\x55\x75\x55\x76\x55\x3c\x55\x4d\x55\x50\x55\x34\x55\x2a\x55\x51\x55\x62\x55\x36\x55\x35\x55\x30\x55\x52\x55\x45\x55\x0c\x55\x32\x55\x65\x55\x4e\x55\x39\x55\x48\x55\x2d\x55\x3b\x55\x40\x55\x4b\x57\x0a\x57\x07\x57\xfb\x58\x14\x57\xe2\x57\xf6\x57\xdc\x57\xf4\x58\x00\x57\xed\x57\xfd\x58\x08\x57\xf8\x58\x0b\x57\xf3\x57\xcf\x58\x07\x57\xee\x57\xe3\x57\xf2\x57\xe5\x57\xec\x57\xe1\x58\x0e\x57\xfc\x58\x10\x57\xe7\x58\x01\x58\x0c\x57\xf1\x57\xe9\x57\xf0\x58\x0d\x58\x04\x59\x5c\x5a\x60\x5a\x58\x5a\x55\x5a\x67\x5a\x5e\x5a\x38\x5a\x35\x5a\x6d\x5a\x50\x5a\x5f\x5a\x65\x5a\x6c\x5a\x53\x5a\x64\x5a\x57\x5a\x43\x5a\x5d\x5a\x52\x5a\x44\x5a\x5b\x5a\x48\x5a\x8e\x5a\x3e\x5a\x4d\x5a\x39\x5a\x4c\x5a\x70\x5a\x69\x5a\x47\x5a\x51\x5a\x56\x5a\x42\x5a\x5c\x5b\x72\x5b\x6e\x5b\xc1\x5b\xc0\x5c\x59\x5d\x1e\x5d\x0b\x5d\x1d\x5d\x1a\x5d\x20\x5d\x0c\x5d\x28\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x0d\x5d\x26\x5d\x25\x5d\x0f\x5d\x30\x5d\x12\x5d\x23\x5d\x1f\x5d\x2e\x5e\x3e\x5e\x34\x5e\xb1\x5e\xb4\x5e\xb9\x5e\xb2\x5e\xb3\x5f\x36\x5f\x38\x5f\x9b\x5f\x96\x5f\x9f\x60\x8a\x60\x90\x60\x86\x60\xbe\x60\xb0\x60\xba\x60\xd3\x60\xd4\x60\xcf\x60\xe4\x60\xd9\x60\xdd\x60\xc8\x60\xb1\x60\xdb\x60\xb7\x60\xca\x60\xbf\x60\xc3\x60\xcd\x60\xc0\x63\x32\x63\x65\x63\x8a\x63\x82\x63\x7d\x63\xbd\x63\x9e\x63\xad\x63\x9d\x63\x97\x63\xab\x63\x8e\x63\x6f\x63\x87\x63\x90\x63\x6e\x63\xaf\x63\x75\x63\x9c\x63\x6d\x63\xae", /* 7380 */ "\x00\x00\x63\x7c\x63\xa4\x63\x3b\x63\x9f\x63\x78\x63\x85\x63\x81\x63\x91\x63\x8d\x63\x70\x65\x53\x65\xcd\x66\x65\x66\x61\x66\x5b\x66\x59\x66\x5c\x66\x62\x67\x18\x68\x79\x68\x87\x68\x90\x68\x9c\x68\x6d\x68\x6e\x68\xae\x68\xab\x69\x56\x68\x6f\x68\xa3\x68\xac\x68\xa9\x68\x75\x68\x74\x68\xb2\x68\x8f\x68\x77\x68\x92\x68\x7c\x68\x6b\x68\x72\x68\xaa\x68\x80\x68\x71\x68\x7e\x68\x9b\x68\x96\x68\x8b\x68\xa0\x68\x89\x68\xa4\x68\x78\x68\x7b\x68\x91\x68\x8c\x68\x8a\x68\x7d\x6b\x36\x6b\x33\x6b\x37\x6b\x38\x6b\x91\x6b\x8f\x6b\x8d\x6b\x8e\x6b\x8c\x6c\x2a\x6d\xc0\x6d\xab\x6d\xb4\x6d\xb3\x6e\x74\x6d\xac\x6d\xe9\x6d\xe2\x6d\xb7\x6d\xf6\x6d\xd4\x6e\x00\x6d\xc8\x6d\xe0\x6d\xdf\x6d\xd6\x6d\xbe\x6d\xe5\x6d\xdc\x6d\xdd\x6d\xdb\x6d\xf4\x6d\xca\x6d\xbd\x6d\xed\x6d\xf0\x6d\xba\x6d\xd5\x6d\xc2\x6d\xcf\x6d\xc9\x6d\xd0\x6d\xf2\x6d\xd3\x6d\xfd\x6d\xd7\x6d\xcd\x6d\xe3\x6d\xbb\x70\xfa\x71\x0d\x70\xf7\x71\x17\x70\xf4\x71\x0c\x70\xf0\x71\x04\x70\xf3\x71\x10\x70\xfc\x70\xff\x71\x06\x71\x13\x71\x00\x70\xf8\x70\xf6\x71\x0b\x71\x02\x00\x00\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x0e\x72\x7e\x72\x7b\x72\x7c\x72\x7f\x73\x1d\x73\x17\x73\x07\x73\x11\x73\x18\x73\x0a\x73\x08\x72\xff\x73\x0f\x73\x1e\x73\x88\x73\xf6\x73\xf8\x73\xf5\x74\x04\x74\x01\x73\xfd\x74\x07\x74\x00\x73\xfa\x73\xfc\x73\xff\x74\x0c\x74\x0b\x73\xf4\x74\x08\x75\x64\x75\x63\x75\xce\x75\xd2\x75\xcf\x75\xcb\x75\xcc\x75\xd1\x75\xd0\x76\x8f\x76\x89\x76\xd3\x77\x39\x77\x2f\x77\x2d\x77\x31\x77\x32\x77\x34\x77\x33\x77\x3d\x77\x25\x77\x3b\x77\x35\x78\x48\x78\x52\x78\x49\x78\x4d\x78\x4a\x78\x4c\x78\x26\x78\x45\x78\x50", /* 7480 */ "\x00\x00\x79\x64\x79\x67\x79\x69\x79\x6a\x79\x63\x79\x6b\x79\x61\x79\xbb\x79\xfa\x79\xf8\x79\xf6\x79\xf7\x7a\x8f\x7a\x94\x7a\x90\x7b\x35\x7b\x47\x7b\x34\x7b\x25\x7b\x30\x7b\x22\x7b\x24\x7b\x33\x7b\x18\x7b\x2a\x7b\x1d\x7b\x31\x7b\x2b\x7b\x2d\x7b\x2f\x7b\x32\x7b\x38\x7b\x1a\x7b\x23\x7c\x94\x7c\x98\x7c\x96\x7c\xa3\x7d\x35\x7d\x3d\x7d\x38\x7d\x36\x7d\x3a\x7d\x45\x7d\x2c\x7d\x29\x7d\x41\x7d\x47\x7d\x3e\x7d\x3f\x7d\x4a\x7d\x3b\x7d\x28\x7f\x63\x7f\x95\x7f\x9c\x7f\x9d\x7f\x9b\x7f\xca\x7f\xcb\x7f\xcd\x7f\xd0\x7f\xd1\x7f\xc7\x7f\xcf\x7f\xc9\x80\x1f\x80\x1e\x80\x1b\x80\x47\x80\x43\x80\x48\x81\x18\x81\x25\x81\x19\x81\x1b\x81\x2d\x81\x1f\x81\x2c\x81\x1e\x81\x21\x81\x15\x81\x27\x81\x1d\x81\x22\x82\x11\x82\x38\x82\x33\x82\x3a\x82\x34\x82\x32\x82\x74\x83\x90\x83\xa3\x83\xa8\x83\x8d\x83\x7a\x83\x73\x83\xa4\x83\x74\x83\x8f\x83\x81\x83\x95\x83\x99\x83\x75\x83\x94\x83\xa9\x83\x7d\x83\x83\x83\x8c\x83\x9d\x83\x9b\x83\xaa\x83\x8b\x83\x7e\x83\xa5\x83\xaf\x83\x88\x83\x97\x83\xb0\x83\x7f\x83\xa6\x83\x87\x83\xae\x83\x76\x00\x00\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x9a\x86\x59\x86\x56\x86\xbf\x86\xb7\x86\xc2\x86\xc1\x86\xc5\x86\xba\x86\xb0\x86\xc8\x86\xb9\x86\xb3\x86\xb8\x86\xcc\x86\xb4\x86\xbb\x86\xbc\x86\xc3\x86\xbd\x86\xbe\x88\x52\x88\x89\x88\x95\x88\xa8\x88\xa2\x88\xaa\x88\x9a\x88\x91\x88\xa1\x88\x9f\x88\x98\x88\xa7\x88\x99\x88\x9b\x88\x97\x88\xa4\x88\xac\x88\x8c\x88\x93\x88\x8e\x89\x82\x89\xd6\x89\xd9\x89\xd5\x8a\x30\x8a\x27\x8a\x2c\x8a\x1e\x8c\x39\x8c\x3b\x8c\x5c\x8c\x5d\x8c\x7d\x8c\xa5\x8d\x7d\x8d\x7b\x8d\x79\x8d\xbc\x8d\xc2\x8d\xb9\x8d\xbf\x8d\xc1", /* 7580 */ "\x00\x00\x8e\xd8\x8e\xde\x8e\xdd\x8e\xdc\x8e\xd7\x8e\xe0\x8e\xe1\x90\x24\x90\x0b\x90\x11\x90\x1c\x90\x0c\x90\x21\x90\xef\x90\xea\x90\xf0\x90\xf4\x90\xf2\x90\xf3\x90\xd4\x90\xeb\x90\xec\x90\xe9\x91\x56\x91\x58\x91\x5a\x91\x53\x91\x55\x91\xec\x91\xf4\x91\xf1\x91\xf3\x91\xf8\x91\xe4\x91\xf9\x91\xea\x91\xeb\x91\xf7\x91\xe8\x91\xee\x95\x7a\x95\x86\x95\x88\x96\x7c\x96\x6d\x96\x6b\x96\x71\x96\x6f\x96\xbf\x97\x6a\x98\x04\x98\xe5\x99\x97\x50\x9b\x50\x95\x50\x94\x50\x9e\x50\x8b\x50\xa3\x50\x83\x50\x8c\x50\x8e\x50\x9d\x50\x68\x50\x9c\x50\x92\x50\x82\x50\x87\x51\x5f\x51\xd4\x53\x12\x53\x11\x53\xa4\x53\xa7\x55\x91\x55\xa8\x55\xa5\x55\xad\x55\x77\x56\x45\x55\xa2\x55\x93\x55\x88\x55\x8f\x55\xb5\x55\x81\x55\xa3\x55\x92\x55\xa4\x55\x7d\x55\x8c\x55\xa6\x55\x7f\x55\x95\x55\xa1\x55\x8e\x57\x0c\x58\x29\x58\x37\x58\x19\x58\x1e\x58\x27\x58\x23\x58\x28\x57\xf5\x58\x48\x58\x25\x58\x1c\x58\x1b\x58\x33\x58\x3f\x58\x36\x58\x2e\x58\x39\x58\x38\x58\x2d\x58\x2c\x58\x3b\x59\x61\x5a\xaf\x5a\x94\x5a\x9f\x5a\x7a\x5a\xa2\x5a\x9e\x00\x00\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x78\x5a\xa6\x5a\x7c\x5a\xa5\x5a\xac\x5a\x95\x5a\xae\x5a\x37\x5a\x84\x5a\x8a\x5a\x97\x5a\x83\x5a\x8b\x5a\xa9\x5a\x7b\x5a\x7d\x5a\x8c\x5a\x9c\x5a\x8f\x5a\x93\x5a\x9d\x5b\xea\x5b\xcd\x5b\xcb\x5b\xd4\x5b\xd1\x5b\xca\x5b\xce\x5c\x0c\x5c\x30\x5d\x37\x5d\x43\x5d\x6b\x5d\x41\x5d\x4b\x5d\x3f\x5d\x35\x5d\x51\x5d\x4e\x5d\x55\x5d\x33\x5d\x3a\x5d\x52\x5d\x3d\x5d\x31\x5d\x59\x5d\x42\x5d\x39\x5d\x49\x5d\x38\x5d\x3c\x5d\x32\x5d\x36\x5d\x40\x5d\x45\x5e\x44\x5e\x41\x5f\x58\x5f\xa6\x5f\xa5\x5f\xab\x60\xc9\x60\xb9", /* 7680 */ "\x00\x00\x60\xcc\x60\xe2\x60\xce\x60\xc4\x61\x14\x60\xf2\x61\x0a\x61\x16\x61\x05\x60\xf5\x61\x13\x60\xf8\x60\xfc\x60\xfe\x60\xc1\x61\x03\x61\x18\x61\x1d\x61\x10\x60\xff\x61\x04\x61\x0b\x62\x4a\x63\x94\x63\xb1\x63\xb0\x63\xce\x63\xe5\x63\xe8\x63\xef\x63\xc3\x64\x9d\x63\xf3\x63\xca\x63\xe0\x63\xf6\x63\xd5\x63\xf2\x63\xf5\x64\x61\x63\xdf\x63\xbe\x63\xdd\x63\xdc\x63\xc4\x63\xd8\x63\xd3\x63\xc2\x63\xc7\x63\xcc\x63\xcb\x63\xc8\x63\xf0\x63\xd7\x63\xd9\x65\x32\x65\x67\x65\x6a\x65\x64\x65\x5c\x65\x68\x65\x65\x65\x8c\x65\x9d\x65\x9e\x65\xae\x65\xd0\x65\xd2\x66\x7c\x66\x6c\x66\x7b\x66\x80\x66\x71\x66\x79\x66\x6a\x66\x72\x67\x01\x69\x0c\x68\xd3\x69\x04\x68\xdc\x69\x2a\x68\xec\x68\xea\x68\xf1\x69\x0f\x68\xd6\x68\xf7\x68\xeb\x68\xe4\x68\xf6\x69\x13\x69\x10\x68\xf3\x68\xe1\x69\x07\x68\xcc\x69\x08\x69\x70\x68\xb4\x69\x11\x68\xef\x68\xc6\x69\x14\x68\xf8\x68\xd0\x68\xfd\x68\xfc\x68\xe8\x69\x0b\x69\x0a\x69\x17\x68\xce\x68\xc8\x68\xdd\x68\xde\x68\xe6\x68\xf4\x68\xd1\x69\x06\x68\xd4\x68\xe9\x69\x15\x69\x25\x68\xc7\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x39\x6b\x3b\x6b\x3f\x6b\x3c\x6b\x94\x6b\x97\x6b\x99\x6b\x95\x6b\xbd\x6b\xf0\x6b\xf2\x6b\xf3\x6c\x30\x6d\xfc\x6e\x46\x6e\x47\x6e\x1f\x6e\x49\x6e\x88\x6e\x3c\x6e\x3d\x6e\x45\x6e\x62\x6e\x2b\x6e\x3f\x6e\x41\x6e\x5d\x6e\x73\x6e\x1c\x6e\x33\x6e\x4b\x6e\x40\x6e\x51\x6e\x3b\x6e\x03\x6e\x2e\x6e\x5e\x6e\x68\x6e\x5c\x6e\x61\x6e\x31\x6e\x28\x6e\x60\x6e\x71\x6e\x6b\x6e\x39\x6e\x22\x6e\x30\x6e\x53\x6e\x65\x6e\x27\x6e\x78\x6e\x64\x6e\x77\x6e\x55\x6e\x79\x6e\x52\x6e\x66\x6e\x35\x6e\x36\x6e\x5a\x71\x20\x71\x1e", /* 7780 */ "\x00\x00\x71\x2f\x70\xfb\x71\x2e\x71\x31\x71\x23\x71\x25\x71\x22\x71\x32\x71\x1f\x71\x28\x71\x3a\x71\x1b\x72\x4b\x72\x5a\x72\x88\x72\x89\x72\x86\x72\x85\x72\x8b\x73\x12\x73\x0b\x73\x30\x73\x22\x73\x31\x73\x33\x73\x27\x73\x32\x73\x2d\x73\x26\x73\x23\x73\x35\x73\x0c\x74\x2e\x74\x2c\x74\x30\x74\x2b\x74\x16\x74\x1a\x74\x21\x74\x2d\x74\x31\x74\x24\x74\x23\x74\x1d\x74\x29\x74\x20\x74\x32\x74\xfb\x75\x2f\x75\x6f\x75\x6c\x75\xe7\x75\xda\x75\xe1\x75\xe6\x75\xdd\x75\xdf\x75\xe4\x75\xd7\x76\x95\x76\x92\x76\xda\x77\x46\x77\x47\x77\x44\x77\x4d\x77\x45\x77\x4a\x77\x4e\x77\x4b\x77\x4c\x77\xde\x77\xec\x78\x60\x78\x64\x78\x65\x78\x5c\x78\x6d\x78\x71\x78\x6a\x78\x6e\x78\x70\x78\x69\x78\x68\x78\x5e\x78\x62\x79\x74\x79\x73\x79\x72\x79\x70\x7a\x02\x7a\x0a\x7a\x03\x7a\x0c\x7a\x04\x7a\x99\x7a\xe6\x7a\xe4\x7b\x4a\x7b\x3b\x7b\x44\x7b\x48\x7b\x4c\x7b\x4e\x7b\x40\x7b\x58\x7b\x45\x7c\xa2\x7c\x9e\x7c\xa8\x7c\xa1\x7d\x58\x7d\x6f\x7d\x63\x7d\x53\x7d\x56\x7d\x67\x7d\x6a\x7d\x4f\x7d\x6d\x7d\x5c\x7d\x6b\x7d\x52\x7d\x54\x7d\x69\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x51\x7d\x5f\x7d\x4e\x7f\x3e\x7f\x3f\x7f\x65\x7f\x66\x7f\xa2\x7f\xa0\x7f\xa1\x7f\xd7\x80\x51\x80\x4f\x80\x50\x80\xfe\x80\xd4\x81\x43\x81\x4a\x81\x52\x81\x4f\x81\x47\x81\x3d\x81\x4d\x81\x3a\x81\xe6\x81\xee\x81\xf7\x81\xf8\x81\xf9\x82\x04\x82\x3c\x82\x3d\x82\x3f\x82\x75\x83\x3b\x83\xcf\x83\xf9\x84\x23\x83\xc0\x83\xe8\x84\x12\x83\xe7\x83\xe4\x83\xfc\x83\xf6\x84\x10\x83\xc6\x83\xc8\x83\xeb\x83\xe3\x83\xbf\x84\x01\x83\xdd\x83\xe5\x83\xd8\x83\xff\x83\xe1\x83\xcb\x83\xce\x83\xd6\x83\xf5\x83\xc9\x84\x09", /* 7880 */ "\x00\x00\x84\x0f\x83\xde\x84\x11\x84\x06\x83\xc2\x83\xf3\x83\xd5\x83\xfa\x83\xc7\x83\xd1\x83\xea\x84\x13\x83\xc3\x83\xec\x83\xee\x83\xc4\x83\xfb\x83\xd7\x83\xe2\x84\x1b\x83\xdb\x83\xfe\x86\xd8\x86\xe2\x86\xe6\x86\xd3\x86\xe3\x86\xda\x86\xea\x86\xdd\x86\xeb\x86\xdc\x86\xec\x86\xe9\x86\xd7\x86\xe8\x86\xd1\x88\x48\x88\x56\x88\x55\x88\xba\x88\xd7\x88\xb9\x88\xb8\x88\xc0\x88\xbe\x88\xb6\x88\xbc\x88\xb7\x88\xbd\x88\xb2\x89\x01\x88\xc9\x89\x95\x89\x98\x89\x97\x89\xdd\x89\xda\x89\xdb\x8a\x4e\x8a\x4d\x8a\x39\x8a\x59\x8a\x40\x8a\x57\x8a\x58\x8a\x44\x8a\x45\x8a\x52\x8a\x48\x8a\x51\x8a\x4a\x8a\x4c\x8a\x4f\x8c\x5f\x8c\x81\x8c\x80\x8c\xba\x8c\xbe\x8c\xb0\x8c\xb9\x8c\xb5\x8d\x84\x8d\x80\x8d\x89\x8d\xd8\x8d\xd3\x8d\xcd\x8d\xc7\x8d\xd6\x8d\xdc\x8d\xcf\x8d\xd5\x8d\xd9\x8d\xc8\x8d\xd7\x8d\xc5\x8e\xef\x8e\xf7\x8e\xfa\x8e\xf9\x8e\xe6\x8e\xee\x8e\xe5\x8e\xf5\x8e\xe7\x8e\xe8\x8e\xf6\x8e\xeb\x8e\xf1\x8e\xec\x8e\xf4\x8e\xe9\x90\x2d\x90\x34\x90\x2f\x91\x06\x91\x2c\x91\x04\x90\xff\x90\xfc\x91\x08\x90\xf9\x90\xfb\x91\x01\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x00\x91\x07\x91\x05\x91\x03\x91\x61\x91\x64\x91\x5f\x91\x62\x91\x60\x92\x01\x92\x0a\x92\x25\x92\x03\x92\x1a\x92\x26\x92\x0f\x92\x0c\x92\x00\x92\x12\x91\xff\x91\xfd\x92\x06\x92\x04\x92\x27\x92\x02\x92\x1c\x92\x24\x92\x19\x92\x17\x92\x05\x92\x16\x95\x7b\x95\x8d\x95\x8c\x95\x90\x96\x87\x96\x7e\x96\x88\x96\x89\x96\x83\x96\x80\x96\xc2\x96\xc8\x96\xc3\x96\xf1\x96\xf0\x97\x6c\x97\x70\x97\x6e\x98\x07\x98\xa9\x98\xeb\x9c\xe6\x9e\xf9\x4e\x83\x4e\x84\x4e\xb6\x50\xbd\x50\xbf\x50\xc6\x50\xae\x50\xc4\x50\xca", /* 7980 */ "\x00\x00\x50\xb4\x50\xc8\x50\xc2\x50\xb0\x50\xc1\x50\xba\x50\xb1\x50\xcb\x50\xc9\x50\xb6\x50\xb8\x51\xd7\x52\x7a\x52\x78\x52\x7b\x52\x7c\x55\xc3\x55\xdb\x55\xcc\x55\xd0\x55\xcb\x55\xca\x55\xdd\x55\xc0\x55\xd4\x55\xc4\x55\xe9\x55\xbf\x55\xd2\x55\x8d\x55\xcf\x55\xd5\x55\xe2\x55\xd6\x55\xc8\x55\xf2\x55\xcd\x55\xd9\x55\xc2\x57\x14\x58\x53\x58\x68\x58\x64\x58\x4f\x58\x4d\x58\x49\x58\x6f\x58\x55\x58\x4e\x58\x5d\x58\x59\x58\x65\x58\x5b\x58\x3d\x58\x63\x58\x71\x58\xfc\x5a\xc7\x5a\xc4\x5a\xcb\x5a\xba\x5a\xb8\x5a\xb1\x5a\xb5\x5a\xb0\x5a\xbf\x5a\xc8\x5a\xbb\x5a\xc6\x5a\xb7\x5a\xc0\x5a\xca\x5a\xb4\x5a\xb6\x5a\xcd\x5a\xb9\x5a\x90\x5b\xd6\x5b\xd8\x5b\xd9\x5c\x1f\x5c\x33\x5d\x71\x5d\x63\x5d\x4a\x5d\x65\x5d\x72\x5d\x6c\x5d\x5e\x5d\x68\x5d\x67\x5d\x62\x5d\xf0\x5e\x4f\x5e\x4e\x5e\x4a\x5e\x4d\x5e\x4b\x5e\xc5\x5e\xcc\x5e\xc6\x5e\xcb\x5e\xc7\x5f\x40\x5f\xaf\x5f\xad\x60\xf7\x61\x49\x61\x4a\x61\x2b\x61\x45\x61\x36\x61\x32\x61\x2e\x61\x46\x61\x2f\x61\x4f\x61\x29\x61\x40\x62\x20\x91\x68\x62\x23\x62\x25\x62\x24\x63\xc5\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf1\x63\xeb\x64\x10\x64\x12\x64\x09\x64\x20\x64\x24\x64\x33\x64\x43\x64\x1f\x64\x15\x64\x18\x64\x39\x64\x37\x64\x22\x64\x23\x64\x0c\x64\x26\x64\x30\x64\x28\x64\x41\x64\x35\x64\x2f\x64\x0a\x64\x1a\x64\x40\x64\x25\x64\x27\x64\x0b\x63\xe7\x64\x1b\x64\x2e\x64\x21\x64\x0e\x65\x6f\x65\x92\x65\xd3\x66\x86\x66\x8c\x66\x95\x66\x90\x66\x8b\x66\x8a\x66\x99\x66\x94\x66\x78\x67\x20\x69\x66\x69\x5f\x69\x38\x69\x4e\x69\x62\x69\x71\x69\x3f\x69\x45\x69\x6a\x69\x39\x69\x42\x69\x57\x69\x59\x69\x7a\x69\x48\x69\x49", /* 7a80 */ "\x00\x00\x69\x35\x69\x6c\x69\x33\x69\x3d\x69\x65\x68\xf0\x69\x78\x69\x34\x69\x69\x69\x40\x69\x6f\x69\x44\x69\x76\x69\x58\x69\x41\x69\x74\x69\x4c\x69\x3b\x69\x4b\x69\x37\x69\x5c\x69\x4f\x69\x51\x69\x32\x69\x52\x69\x2f\x69\x7b\x69\x3c\x6b\x46\x6b\x45\x6b\x43\x6b\x42\x6b\x48\x6b\x41\x6b\x9b\xfa\x0d\x6b\xfb\x6b\xfc\x6b\xf9\x6b\xf7\x6b\xf8\x6e\x9b\x6e\xd6\x6e\xc8\x6e\x8f\x6e\xc0\x6e\x9f\x6e\x93\x6e\x94\x6e\xa0\x6e\xb1\x6e\xb9\x6e\xc6\x6e\xd2\x6e\xbd\x6e\xc1\x6e\x9e\x6e\xc9\x6e\xb7\x6e\xb0\x6e\xcd\x6e\xa6\x6e\xcf\x6e\xb2\x6e\xbe\x6e\xc3\x6e\xdc\x6e\xd8\x6e\x99\x6e\x92\x6e\x8e\x6e\x8d\x6e\xa4\x6e\xa1\x6e\xbf\x6e\xb3\x6e\xd0\x6e\xca\x6e\x97\x6e\xae\x6e\xa3\x71\x47\x71\x54\x71\x52\x71\x63\x71\x60\x71\x41\x71\x5d\x71\x62\x71\x72\x71\x78\x71\x6a\x71\x61\x71\x42\x71\x58\x71\x43\x71\x4b\x71\x70\x71\x5f\x71\x50\x71\x53\x71\x44\x71\x4d\x71\x5a\x72\x4f\x72\x8d\x72\x8c\x72\x91\x72\x90\x72\x8e\x73\x3c\x73\x42\x73\x3b\x73\x3a\x73\x40\x73\x4a\x73\x49\x74\x44\x74\x4a\x74\x4b\x74\x52\x74\x51\x74\x57\x74\x40\x74\x4f\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x50\x74\x4e\x74\x42\x74\x46\x74\x4d\x74\x54\x74\xe1\x74\xff\x74\xfe\x74\xfd\x75\x1d\x75\x79\x75\x77\x69\x83\x75\xef\x76\x0f\x76\x03\x75\xf7\x75\xfe\x75\xfc\x75\xf9\x75\xf8\x76\x10\x75\xfb\x75\xf6\x75\xed\x75\xf5\x75\xfd\x76\x99\x76\xb5\x76\xdd\x77\x55\x77\x5f\x77\x60\x77\x52\x77\x56\x77\x5a\x77\x69\x77\x67\x77\x54\x77\x59\x77\x6d\x77\xe0\x78\x87\x78\x9a\x78\x94\x78\x8f\x78\x84\x78\x95\x78\x85\x78\x86\x78\xa1\x78\x83\x78\x79\x78\x99\x78\x80\x78\x96\x78\x7b\x79\x7c\x79\x82\x79\x7d\x79\x79\x7a\x11", /* 7b80 */ "\x00\x00\x7a\x18\x7a\x19\x7a\x12\x7a\x17\x7a\x15\x7a\x22\x7a\x13\x7a\x1b\x7a\x10\x7a\xa3\x7a\xa2\x7a\x9e\x7a\xeb\x7b\x66\x7b\x64\x7b\x6d\x7b\x74\x7b\x69\x7b\x72\x7b\x65\x7b\x73\x7b\x71\x7b\x70\x7b\x61\x7b\x78\x7b\x76\x7b\x63\x7c\xb2\x7c\xb4\x7c\xaf\x7d\x88\x7d\x86\x7d\x80\x7d\x8d\x7d\x7f\x7d\x85\x7d\x7a\x7d\x8e\x7d\x7b\x7d\x83\x7d\x7c\x7d\x8c\x7d\x94\x7d\x84\x7d\x7d\x7d\x92\x7f\x6d\x7f\x6b\x7f\x67\x7f\x68\x7f\x6c\x7f\xa6\x7f\xa5\x7f\xa7\x7f\xdb\x7f\xdc\x80\x21\x81\x64\x81\x60\x81\x77\x81\x5c\x81\x69\x81\x5b\x81\x62\x81\x72\x67\x21\x81\x5e\x81\x76\x81\x67\x81\x6f\x81\x44\x81\x61\x82\x1d\x82\x49\x82\x44\x82\x40\x82\x42\x82\x45\x84\xf1\x84\x3f\x84\x56\x84\x76\x84\x79\x84\x8f\x84\x8d\x84\x65\x84\x51\x84\x40\x84\x86\x84\x67\x84\x30\x84\x4d\x84\x7d\x84\x5a\x84\x59\x84\x74\x84\x73\x84\x5d\x85\x07\x84\x5e\x84\x37\x84\x3a\x84\x34\x84\x7a\x84\x43\x84\x78\x84\x32\x84\x45\x84\x29\x83\xd9\x84\x4b\x84\x2f\x84\x42\x84\x2d\x84\x5f\x84\x70\x84\x39\x84\x4e\x84\x4c\x84\x52\x84\x6f\x84\xc5\x84\x8e\x84\x3b\x84\x47\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x36\x84\x33\x84\x68\x84\x7e\x84\x44\x84\x2b\x84\x60\x84\x54\x84\x6e\x84\x50\x87\x0b\x87\x04\x86\xf7\x87\x0c\x86\xfa\x86\xd6\x86\xf5\x87\x4d\x86\xf8\x87\x0e\x87\x09\x87\x01\x86\xf6\x87\x0d\x87\x05\x88\xd6\x88\xcb\x88\xcd\x88\xce\x88\xde\x88\xdb\x88\xda\x88\xcc\x88\xd0\x89\x85\x89\x9b\x89\xdf\x89\xe5\x89\xe4\x89\xe1\x89\xe0\x89\xe2\x89\xdc\x89\xe6\x8a\x76\x8a\x86\x8a\x7f\x8a\x61\x8a\x3f\x8a\x77\x8a\x82\x8a\x84\x8a\x75\x8a\x83\x8a\x81\x8a\x74\x8a\x7a\x8c\x3c\x8c\x4b\x8c\x4a\x8c\x65\x8c\x64\x8c\x66", /* 7c80 */ "\x00\x00\x8c\x86\x8c\x84\x8c\x85\x8c\xcc\x8d\x68\x8d\x69\x8d\x91\x8d\x8c\x8d\x8e\x8d\x8f\x8d\x8d\x8d\x93\x8d\x94\x8d\x90\x8d\x92\x8d\xf0\x8d\xe0\x8d\xec\x8d\xf1\x8d\xee\x8d\xd0\x8d\xe9\x8d\xe3\x8d\xe2\x8d\xe7\x8d\xf2\x8d\xeb\x8d\xf4\x8f\x06\x8e\xff\x8f\x01\x8f\x00\x8f\x05\x8f\x07\x8f\x08\x8f\x02\x8f\x0b\x90\x52\x90\x3f\x90\x44\x90\x49\x90\x3d\x91\x10\x91\x0d\x91\x0f\x91\x11\x91\x16\x91\x14\x91\x0b\x91\x0e\x91\x6e\x91\x6f\x92\x48\x92\x52\x92\x30\x92\x3a\x92\x66\x92\x33\x92\x65\x92\x5e\x92\x83\x92\x2e\x92\x4a\x92\x46\x92\x6d\x92\x6c\x92\x4f\x92\x60\x92\x67\x92\x6f\x92\x36\x92\x61\x92\x70\x92\x31\x92\x54\x92\x63\x92\x50\x92\x72\x92\x4e\x92\x53\x92\x4c\x92\x56\x92\x32\x95\x9f\x95\x9c\x95\x9e\x95\x9b\x96\x92\x96\x93\x96\x91\x96\x97\x96\xce\x96\xfa\x96\xfd\x96\xf8\x96\xf5\x97\x73\x97\x77\x97\x78\x97\x72\x98\x0f\x98\x0d\x98\x0e\x98\xac\x98\xf6\x98\xf9\x99\xaf\x99\xb2\x99\xb0\x99\xb5\x9a\xad\x9a\xab\x9b\x5b\x9c\xea\x9c\xed\x9c\xe7\x9e\x80\x9e\xfd\x50\xe6\x50\xd4\x50\xd7\x50\xe8\x50\xf3\x50\xdb\x50\xea\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdd\x50\xe4\x50\xd3\x50\xec\x50\xf0\x50\xef\x50\xe3\x50\xe0\x51\xd8\x52\x80\x52\x81\x52\xe9\x52\xeb\x53\x30\x53\xac\x56\x27\x56\x15\x56\x0c\x56\x12\x55\xfc\x56\x0f\x56\x1c\x56\x01\x56\x13\x56\x02\x55\xfa\x56\x1d\x56\x04\x55\xff\x55\xf9\x58\x89\x58\x7c\x58\x90\x58\x98\x58\x86\x58\x81\x58\x7f\x58\x74\x58\x8b\x58\x7a\x58\x87\x58\x91\x58\x8e\x58\x76\x58\x82\x58\x88\x58\x7b\x58\x94\x58\x8f\x58\xfe\x59\x6b\x5a\xdc\x5a\xee\x5a\xe5\x5a\xd5\x5a\xea\x5a\xda\x5a\xed\x5a\xeb\x5a\xf3\x5a\xe2\x5a\xe0\x5a\xdb", /* 7d80 */ "\x00\x00\x5a\xec\x5a\xde\x5a\xdd\x5a\xd9\x5a\xe8\x5a\xdf\x5b\x77\x5b\xe0\x5b\xe3\x5c\x63\x5d\x82\x5d\x80\x5d\x7d\x5d\x86\x5d\x7a\x5d\x81\x5d\x77\x5d\x8a\x5d\x89\x5d\x88\x5d\x7e\x5d\x7c\x5d\x8d\x5d\x79\x5d\x7f\x5e\x58\x5e\x59\x5e\x53\x5e\xd8\x5e\xd1\x5e\xd7\x5e\xce\x5e\xdc\x5e\xd5\x5e\xd9\x5e\xd2\x5e\xd4\x5f\x44\x5f\x43\x5f\x6f\x5f\xb6\x61\x2c\x61\x28\x61\x41\x61\x5e\x61\x71\x61\x73\x61\x52\x61\x53\x61\x72\x61\x6c\x61\x80\x61\x74\x61\x54\x61\x7a\x61\x5b\x61\x65\x61\x3b\x61\x6a\x61\x61\x61\x56\x62\x29\x62\x27\x62\x2b\x64\x2b\x64\x4d\x64\x5b\x64\x5d\x64\x74\x64\x76\x64\x72\x64\x73\x64\x7d\x64\x75\x64\x66\x64\xa6\x64\x4e\x64\x82\x64\x5e\x64\x5c\x64\x4b\x64\x53\x64\x60\x64\x50\x64\x7f\x64\x3f\x64\x6c\x64\x6b\x64\x59\x64\x65\x64\x77\x65\x73\x65\xa0\x66\xa1\x66\xa0\x66\x9f\x67\x05\x67\x04\x67\x22\x69\xb1\x69\xb6\x69\xc9\x69\xa0\x69\xce\x69\x96\x69\xb0\x69\xac\x69\xbc\x69\x91\x69\x99\x69\x8e\x69\xa7\x69\x8d\x69\xa9\x69\xbe\x69\xaf\x69\xbf\x69\xc4\x69\xbd\x69\xa4\x69\xd4\x69\xb9\x69\xca\x69\x9a\x69\xcf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xb3\x69\x93\x69\xaa\x69\xa1\x69\x9e\x69\xd9\x69\x97\x69\x90\x69\xc2\x69\xb5\x69\xa5\x69\xc6\x6b\x4a\x6b\x4d\x6b\x4b\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xc3\x6b\xc4\x6b\xfe\x6e\xce\x6e\xf5\x6e\xf1\x6f\x03\x6f\x25\x6e\xf8\x6f\x37\x6e\xfb\x6f\x2e\x6f\x09\x6f\x4e\x6f\x19\x6f\x1a\x6f\x27\x6f\x18\x6f\x3b\x6f\x12\x6e\xed\x6f\x0a\x6f\x36\x6f\x73\x6e\xf9\x6e\xee\x6f\x2d\x6f\x40\x6f\x30\x6f\x3c\x6f\x35\x6e\xeb\x6f\x07\x6f\x0e\x6f\x43\x6f\x05\x6e\xfd\x6e\xf6\x6f\x39\x6f\x1c\x6e\xfc\x6f\x3a\x6f\x1f\x6f\x0d\x6f\x1e", /* 7e80 */ "\x00\x00\x6f\x08\x6f\x21\x71\x87\x71\x90\x71\x89\x71\x80\x71\x85\x71\x82\x71\x8f\x71\x7b\x71\x86\x71\x81\x71\x97\x72\x44\x72\x53\x72\x97\x72\x95\x72\x93\x73\x43\x73\x4d\x73\x51\x73\x4c\x74\x62\x74\x73\x74\x71\x74\x75\x74\x72\x74\x67\x74\x6e\x75\x00\x75\x02\x75\x03\x75\x7d\x75\x90\x76\x16\x76\x08\x76\x0c\x76\x15\x76\x11\x76\x0a\x76\x14\x76\xb8\x77\x81\x77\x7c\x77\x85\x77\x82\x77\x6e\x77\x80\x77\x6f\x77\x7e\x77\x83\x78\xb2\x78\xaa\x78\xb4\x78\xad\x78\xa8\x78\x7e\x78\xab\x78\x9e\x78\xa5\x78\xa0\x78\xac\x78\xa2\x78\xa4\x79\x98\x79\x8a\x79\x8b\x79\x96\x79\x95\x79\x94\x79\x93\x79\x97\x79\x88\x79\x92\x79\x90\x7a\x2b\x7a\x4a\x7a\x30\x7a\x2f\x7a\x28\x7a\x26\x7a\xa8\x7a\xab\x7a\xac\x7a\xee\x7b\x88\x7b\x9c\x7b\x8a\x7b\x91\x7b\x90\x7b\x96\x7b\x8d\x7b\x8c\x7b\x9b\x7b\x8e\x7b\x85\x7b\x98\x52\x84\x7b\x99\x7b\xa4\x7b\x82\x7c\xbb\x7c\xbf\x7c\xbc\x7c\xba\x7d\xa7\x7d\xb7\x7d\xc2\x7d\xa3\x7d\xaa\x7d\xc1\x7d\xc0\x7d\xc5\x7d\x9d\x7d\xce\x7d\xc4\x7d\xc6\x7d\xcb\x7d\xcc\x7d\xaf\x7d\xb9\x7d\x96\x7d\xbc\x7d\x9f\x7d\xa6\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xae\x7d\xa9\x7d\xa1\x7d\xc9\x7f\x73\x7f\xe2\x7f\xe3\x7f\xe5\x7f\xde\x80\x24\x80\x5d\x80\x5c\x81\x89\x81\x86\x81\x83\x81\x87\x81\x8d\x81\x8c\x81\x8b\x82\x15\x84\x97\x84\xa4\x84\xa1\x84\x9f\x84\xba\x84\xce\x84\xc2\x84\xac\x84\xae\x84\xab\x84\xb9\x84\xb4\x84\xc1\x84\xcd\x84\xaa\x84\x9a\x84\xb1\x84\xd0\x84\x9d\x84\xa7\x84\xbb\x84\xa2\x84\x94\x84\xc7\x84\xcc\x84\x9b\x84\xa9\x84\xaf\x84\xa8\x84\xd6\x84\x98\x84\xb6\x84\xcf\x84\xa0\x84\xd7\x84\xd4\x84\xd2\x84\xdb\x84\xb0\x84\x91\x86\x61\x87\x33\x87\x23", /* 7f80 */ "\x00\x00\x87\x28\x87\x6b\x87\x40\x87\x2e\x87\x1e\x87\x21\x87\x19\x87\x1b\x87\x43\x87\x2c\x87\x41\x87\x3e\x87\x46\x87\x20\x87\x32\x87\x2a\x87\x2d\x87\x3c\x87\x12\x87\x3a\x87\x31\x87\x35\x87\x42\x87\x26\x87\x27\x87\x38\x87\x24\x87\x1a\x87\x30\x87\x11\x88\xf7\x88\xe7\x88\xf1\x88\xf2\x88\xfa\x88\xfe\x88\xee\x88\xfc\x88\xf6\x88\xfb\x88\xf0\x88\xec\x88\xeb\x89\x9d\x89\xa1\x89\x9f\x89\x9e\x89\xe9\x89\xeb\x89\xe8\x8a\xab\x8a\x99\x8a\x8b\x8a\x92\x8a\x8f\x8a\x96\x8c\x3d\x8c\x68\x8c\x69\x8c\xd5\x8c\xcf\x8c\xd7\x8d\x96\x8e\x09\x8e\x02\x8d\xff\x8e\x0d\x8d\xfd\x8e\x0a\x8e\x03\x8e\x07\x8e\x06\x8e\x05\x8d\xfe\x8e\x00\x8e\x04\x8f\x10\x8f\x11\x8f\x0e\x8f\x0d\x91\x23\x91\x1c\x91\x20\x91\x22\x91\x1f\x91\x1d\x91\x1a\x91\x24\x91\x21\x91\x1b\x91\x7a\x91\x72\x91\x79\x91\x73\x92\xa5\x92\xa4\x92\x76\x92\x9b\x92\x7a\x92\xa0\x92\x94\x92\xaa\x92\x8d\x92\xa6\x92\x9a\x92\xab\x92\x79\x92\x97\x92\x7f\x92\xa3\x92\xee\x92\x8e\x92\x82\x92\x95\x92\xa2\x92\x7d\x92\x88\x92\xa1\x92\x8a\x92\x86\x92\x8c\x92\x99\x92\xa7\x92\x7e\x92\x87\x00\x00\x00\x00", /* 8000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\xa9\x92\x9d\x92\x8b\x92\x2d\x96\x9e\x96\xa1\x96\xff\x97\x58\x97\x7d\x97\x7a\x97\x7e\x97\x83\x97\x80\x97\x82\x97\x7b\x97\x84\x97\x81\x97\x7f\x97\xce\x97\xcd\x98\x16\x98\xad\x98\xae\x99\x02\x99\x00\x99\x07\x99\x9d\x99\x9c\x99\xc3\x99\xb9\x99\xbb\x99\xba\x99\xc2\x99\xbd\x99\xc7\x9a\xb1\x9a\xe3\x9a\xe7\x9b\x3e\x9b\x3f\x9b\x60\x9b\x61\x9b\x5f\x9c\xf1\x9c\xf2\x9c\xf5\x9e\xa7\x50\xff\x51\x03\x51\x30\x50\xf8\x51\x06\x51\x07\x50\xf6\x50\xfe\x51\x0b\x51\x0c\x50\xfd\x51\x0a\x52\x8b\x52\x8c\x52\xf1\x52\xef", /* 8080 */ "\x00\x00\x56\x48\x56\x42\x56\x4c\x56\x35\x56\x41\x56\x4a\x56\x49\x56\x46\x56\x58\x56\x5a\x56\x40\x56\x33\x56\x3d\x56\x2c\x56\x3e\x56\x38\x56\x2a\x56\x3a\x57\x1a\x58\xab\x58\x9d\x58\xb1\x58\xa0\x58\xa3\x58\xaf\x58\xac\x58\xa5\x58\xa1\x58\xff\x5a\xff\x5a\xf4\x5a\xfd\x5a\xf7\x5a\xf6\x5b\x03\x5a\xf8\x5b\x02\x5a\xf9\x5b\x01\x5b\x07\x5b\x05\x5b\x0f\x5c\x67\x5d\x99\x5d\x97\x5d\x9f\x5d\x92\x5d\xa2\x5d\x93\x5d\x95\x5d\xa0\x5d\x9c\x5d\xa1\x5d\x9a\x5d\x9e\x5e\x69\x5e\x5d\x5e\x60\x5e\x5c\x7d\xf3\x5e\xdb\x5e\xde\x5e\xe1\x5f\x49\x5f\xb2\x61\x8b\x61\x83\x61\x79\x61\xb1\x61\xb0\x61\xa2\x61\x89\x61\x9b\x61\x93\x61\xaf\x61\xad\x61\x9f\x61\x92\x61\xaa\x61\xa1\x61\x8d\x61\x66\x61\xb3\x62\x2d\x64\x6e\x64\x70\x64\x96\x64\xa0\x64\x85\x64\x97\x64\x9c\x64\x8f\x64\x8b\x64\x8a\x64\x8c\x64\xa3\x64\x9f\x64\x68\x64\xb1\x64\x98\x65\x76\x65\x7a\x65\x79\x65\x7b\x65\xb2\x65\xb3\x66\xb5\x66\xb0\x66\xa9\x66\xb2\x66\xb7\x66\xaa\x66\xaf\x6a\x00\x6a\x06\x6a\x17\x69\xe5\x69\xf8\x6a\x15\x69\xf1\x69\xe4\x6a\x20\x69\xff\x69\xec\x69\xe2\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1b\x6a\x1d\x69\xfe\x6a\x27\x69\xf2\x69\xee\x6a\x14\x69\xf7\x69\xe7\x6a\x40\x6a\x08\x69\xe6\x69\xfb\x6a\x0d\x69\xfc\x69\xeb\x6a\x09\x6a\x04\x6a\x18\x6a\x25\x6a\x0f\x69\xf6\x6a\x26\x6a\x07\x69\xf4\x6a\x16\x6b\x51\x6b\xa5\x6b\xa3\x6b\xa2\x6b\xa6\x6c\x01\x6c\x00\x6b\xff\x6c\x02\x6f\x41\x6f\x26\x6f\x7e\x6f\x87\x6f\xc6\x6f\x92\x6f\x8d\x6f\x89\x6f\x8c\x6f\x62\x6f\x4f\x6f\x85\x6f\x5a\x6f\x96\x6f\x76\x6f\x6c\x6f\x82\x6f\x55\x6f\x72\x6f\x52\x6f\x50\x6f\x57\x6f\x94\x6f\x93\x6f\x5d\x6f\x00\x6f\x61\x6f\x6b", /* 8180 */ "\x00\x00\x6f\x7d\x6f\x67\x6f\x90\x6f\x53\x6f\x8b\x6f\x69\x6f\x7f\x6f\x95\x6f\x63\x6f\x77\x6f\x6a\x6f\x7b\x71\xb2\x71\xaf\x71\x9b\x71\xb0\x71\xa0\x71\x9a\x71\xa9\x71\xb5\x71\x9d\x71\xa5\x71\x9e\x71\xa4\x71\xa1\x71\xaa\x71\x9c\x71\xa7\x71\xb3\x72\x98\x72\x9a\x73\x58\x73\x52\x73\x5e\x73\x5f\x73\x60\x73\x5d\x73\x5b\x73\x61\x73\x5a\x73\x59\x73\x62\x74\x87\x74\x89\x74\x8a\x74\x86\x74\x81\x74\x7d\x74\x85\x74\x88\x74\x7c\x74\x79\x75\x08\x75\x07\x75\x7e\x76\x25\x76\x1e\x76\x19\x76\x1d\x76\x1c\x76\x23\x76\x1a\x76\x28\x76\x1b\x76\x9c\x76\x9d\x76\x9e\x76\x9b\x77\x8d\x77\x8f\x77\x89\x77\x88\x78\xcd\x78\xbb\x78\xcf\x78\xcc\x78\xd1\x78\xce\x78\xd4\x78\xc8\x78\xc3\x78\xc4\x78\xc9\x79\x9a\x79\xa1\x79\xa0\x79\x9c\x79\xa2\x79\x9b\x6b\x76\x7a\x39\x7a\xb2\x7a\xb4\x7a\xb3\x7b\xb7\x7b\xcb\x7b\xbe\x7b\xac\x7b\xce\x7b\xaf\x7b\xb9\x7b\xca\x7b\xb5\x7c\xc5\x7c\xc8\x7c\xcc\x7c\xcb\x7d\xf7\x7d\xdb\x7d\xea\x7d\xe7\x7d\xd7\x7d\xe1\x7e\x03\x7d\xfa\x7d\xe6\x7d\xf6\x7d\xf1\x7d\xf0\x7d\xee\x7d\xdf\x7f\x76\x7f\xac\x7f\xb0\x7f\xad\x00\x00\x00\x00", /* 8200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xed\x7f\xeb\x7f\xea\x7f\xec\x7f\xe6\x7f\xe8\x80\x64\x80\x67\x81\xa3\x81\x9f\x81\x9e\x81\x95\x81\xa2\x81\x99\x81\x97\x82\x16\x82\x4f\x82\x53\x82\x52\x82\x50\x82\x4e\x82\x51\x85\x24\x85\x3b\x85\x0f\x85\x00\x85\x29\x85\x0e\x85\x09\x85\x0d\x85\x1f\x85\x0a\x85\x27\x85\x1c\x84\xfb\x85\x2b\x84\xfa\x85\x08\x85\x0c\x84\xf4\x85\x2a\x84\xf2\x85\x15\x84\xf7\x84\xeb\x84\xf3\x84\xfc\x85\x12\x84\xea\x84\xe9\x85\x16\x84\xfe\x85\x28\x85\x1d\x85\x2e\x85\x02\x84\xfd\x85\x1e\x84\xf6\x85\x31\x85\x26\x84\xe7\x84\xe8", /* 8280 */ "\x00\x00\x84\xf0\x84\xef\x84\xf9\x85\x18\x85\x20\x85\x30\x85\x0b\x85\x19\x85\x2f\x86\x62\x87\x56\x87\x63\x87\x64\x87\x77\x87\xe1\x87\x73\x87\x58\x87\x54\x87\x5b\x87\x52\x87\x61\x87\x5a\x87\x51\x87\x5e\x87\x6d\x87\x6a\x87\x50\x87\x4e\x87\x5f\x87\x5d\x87\x6f\x87\x6c\x87\x7a\x87\x6e\x87\x5c\x87\x65\x87\x4f\x87\x7b\x87\x75\x87\x62\x87\x67\x87\x69\x88\x5a\x89\x05\x89\x0c\x89\x14\x89\x0b\x89\x17\x89\x18\x89\x19\x89\x06\x89\x16\x89\x11\x89\x0e\x89\x09\x89\xa2\x89\xa4\x89\xa3\x89\xed\x89\xf0\x89\xec\x8a\xcf\x8a\xc6\x8a\xb8\x8a\xd3\x8a\xd1\x8a\xd4\x8a\xd5\x8a\xbb\x8a\xd7\x8a\xbe\x8a\xc0\x8a\xc5\x8a\xd8\x8a\xc3\x8a\xba\x8a\xbd\x8a\xd9\x8c\x3e\x8c\x4d\x8c\x8f\x8c\xe5\x8c\xdf\x8c\xd9\x8c\xe8\x8c\xda\x8c\xdd\x8c\xe7\x8d\xa0\x8d\x9c\x8d\xa1\x8d\x9b\x8e\x20\x8e\x23\x8e\x25\x8e\x24\x8e\x2e\x8e\x15\x8e\x1b\x8e\x16\x8e\x11\x8e\x19\x8e\x26\x8e\x27\x8e\x14\x8e\x12\x8e\x18\x8e\x13\x8e\x1c\x8e\x17\x8e\x1a\x8f\x2c\x8f\x24\x8f\x18\x8f\x1a\x8f\x20\x8f\x23\x8f\x16\x8f\x17\x90\x73\x90\x70\x90\x6f\x90\x67\x90\x6b\x91\x2f\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x2b\x91\x29\x91\x2a\x91\x32\x91\x26\x91\x2e\x91\x85\x91\x86\x91\x8a\x91\x81\x91\x82\x91\x84\x91\x80\x92\xd0\x92\xc3\x92\xc4\x92\xc0\x92\xd9\x92\xb6\x92\xcf\x92\xf1\x92\xdf\x92\xd8\x92\xe9\x92\xd7\x92\xdd\x92\xcc\x92\xef\x92\xc2\x92\xe8\x92\xca\x92\xc8\x92\xce\x92\xe6\x92\xcd\x92\xd5\x92\xc9\x92\xe0\x92\xde\x92\xe7\x92\xd1\x92\xd3\x92\xb5\x92\xe1\x92\xc6\x92\xb4\x95\x7c\x95\xac\x95\xab\x95\xae\x95\xb0\x96\xa4\x96\xa2\x96\xd3\x97\x05\x97\x08\x97\x02\x97\x5a\x97\x8a\x97\x8e\x97\x88\x97\xd0\x97\xcf", /* 8380 */ "\x00\x00\x98\x1e\x98\x1d\x98\x26\x98\x29\x98\x28\x98\x20\x98\x1b\x98\x27\x98\xb2\x99\x08\x98\xfa\x99\x11\x99\x14\x99\x16\x99\x17\x99\x15\x99\xdc\x99\xcd\x99\xcf\x99\xd3\x99\xd4\x99\xce\x99\xc9\x99\xd6\x99\xd8\x99\xcb\x99\xd7\x99\xcc\x9a\xb3\x9a\xec\x9a\xeb\x9a\xf3\x9a\xf2\x9a\xf1\x9b\x46\x9b\x43\x9b\x67\x9b\x74\x9b\x71\x9b\x66\x9b\x76\x9b\x75\x9b\x70\x9b\x68\x9b\x64\x9b\x6c\x9c\xfc\x9c\xfa\x9c\xfd\x9c\xff\x9c\xf7\x9d\x07\x9d\x00\x9c\xf9\x9c\xfb\x9d\x08\x9d\x05\x9d\x04\x9e\x83\x9e\xd3\x9f\x0f\x9f\x10\x51\x1c\x51\x13\x51\x17\x51\x1a\x51\x11\x51\xde\x53\x34\x53\xe1\x56\x70\x56\x60\x56\x6e\x56\x73\x56\x66\x56\x63\x56\x6d\x56\x72\x56\x5e\x56\x77\x57\x1c\x57\x1b\x58\xc8\x58\xbd\x58\xc9\x58\xbf\x58\xba\x58\xc2\x58\xbc\x58\xc6\x5b\x17\x5b\x19\x5b\x1b\x5b\x21\x5b\x14\x5b\x13\x5b\x10\x5b\x16\x5b\x28\x5b\x1a\x5b\x20\x5b\x1e\x5b\xef\x5d\xac\x5d\xb1\x5d\xa9\x5d\xa7\x5d\xb5\x5d\xb0\x5d\xae\x5d\xaa\x5d\xa8\x5d\xb2\x5d\xad\x5d\xaf\x5d\xb4\x5e\x67\x5e\x68\x5e\x66\x5e\x6f\x5e\xe9\x5e\xe7\x5e\xe6\x5e\xe8\x5e\xe5\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4b\x5f\xbc\x61\x9d\x61\xa8\x61\x96\x61\xc5\x61\xb4\x61\xc6\x61\xc1\x61\xcc\x61\xba\x61\xbf\x61\xb8\x61\x8c\x64\xd7\x64\xd6\x64\xd0\x64\xcf\x64\xc9\x64\xbd\x64\x89\x64\xc3\x64\xdb\x64\xf3\x64\xd9\x65\x33\x65\x7f\x65\x7c\x65\xa2\x66\xc8\x66\xbe\x66\xc0\x66\xca\x66\xcb\x66\xcf\x66\xbd\x66\xbb\x66\xba\x66\xcc\x67\x23\x6a\x34\x6a\x66\x6a\x49\x6a\x67\x6a\x32\x6a\x68\x6a\x3e\x6a\x5d\x6a\x6d\x6a\x76\x6a\x5b\x6a\x51\x6a\x28\x6a\x5a\x6a\x3b\x6a\x3f\x6a\x41\x6a\x6a\x6a\x64\x6a\x50\x6a\x4f\x6a\x54\x6a\x6f", /* 8480 */ "\x00\x00\x6a\x69\x6a\x60\x6a\x3c\x6a\x5e\x6a\x56\x6a\x55\x6a\x4d\x6a\x4e\x6a\x46\x6b\x55\x6b\x54\x6b\x56\x6b\xa7\x6b\xaa\x6b\xab\x6b\xc8\x6b\xc7\x6c\x04\x6c\x03\x6c\x06\x6f\xad\x6f\xcb\x6f\xa3\x6f\xc7\x6f\xbc\x6f\xce\x6f\xc8\x6f\x5e\x6f\xc4\x6f\xbd\x6f\x9e\x6f\xca\x6f\xa8\x70\x04\x6f\xa5\x6f\xae\x6f\xba\x6f\xac\x6f\xaa\x6f\xcf\x6f\xbf\x6f\xb8\x6f\xa2\x6f\xc9\x6f\xab\x6f\xcd\x6f\xaf\x6f\xb2\x6f\xb0\x71\xc5\x71\xc2\x71\xbf\x71\xb8\x71\xd6\x71\xc0\x71\xc1\x71\xcb\x71\xd4\x71\xca\x71\xc7\x71\xcf\x71\xbd\x71\xd8\x71\xbc\x71\xc6\x71\xda\x71\xdb\x72\x9d\x72\x9e\x73\x69\x73\x66\x73\x67\x73\x6c\x73\x65\x73\x6b\x73\x6a\x74\x7f\x74\x9a\x74\xa0\x74\x94\x74\x92\x74\x95\x74\xa1\x75\x0b\x75\x80\x76\x2f\x76\x2d\x76\x31\x76\x3d\x76\x33\x76\x3c\x76\x35\x76\x32\x76\x30\x76\xbb\x76\xe6\x77\x9a\x77\x9d\x77\xa1\x77\x9c\x77\x9b\x77\xa2\x77\xa3\x77\x95\x77\x99\x77\x97\x78\xdd\x78\xe9\x78\xe5\x78\xea\x78\xde\x78\xe3\x78\xdb\x78\xe1\x78\xe2\x78\xed\x78\xdf\x78\xe0\x79\xa4\x7a\x44\x7a\x48\x7a\x47\x7a\xb6\x7a\xb8\x7a\xb5\x00\x00\x00\x00", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xb1\x7a\xb7\x7b\xde\x7b\xe3\x7b\xe7\x7b\xdd\x7b\xd5\x7b\xe5\x7b\xda\x7b\xe8\x7b\xf9\x7b\xd4\x7b\xea\x7b\xe2\x7b\xdc\x7b\xeb\x7b\xd8\x7b\xdf\x7c\xd2\x7c\xd4\x7c\xd7\x7c\xd0\x7c\xd1\x7e\x12\x7e\x21\x7e\x17\x7e\x0c\x7e\x1f\x7e\x20\x7e\x13\x7e\x0e\x7e\x1c\x7e\x15\x7e\x1a\x7e\x22\x7e\x0b\x7e\x0f\x7e\x16\x7e\x0d\x7e\x14\x7e\x25\x7e\x24\x7f\x43\x7f\x7b\x7f\x7c\x7f\x7a\x7f\xb1\x7f\xef\x80\x2a\x80\x29\x80\x6c\x81\xb1\x81\xa6\x81\xae\x81\xb9\x81\xb5\x81\xab\x81\xb0\x81\xac\x81\xb4\x81\xb2\x81\xb7\x81\xa7", /* 8580 */ "\x00\x00\x81\xf2\x82\x55\x82\x56\x82\x57\x85\x56\x85\x45\x85\x6b\x85\x4d\x85\x53\x85\x61\x85\x58\x85\x40\x85\x46\x85\x64\x85\x41\x85\x62\x85\x44\x85\x51\x85\x47\x85\x63\x85\x3e\x85\x5b\x85\x71\x85\x4e\x85\x6e\x85\x75\x85\x55\x85\x67\x85\x60\x85\x8c\x85\x66\x85\x5d\x85\x54\x85\x65\x85\x6c\x86\x63\x86\x65\x86\x64\x87\x9b\x87\x8f\x87\x97\x87\x93\x87\x92\x87\x88\x87\x81\x87\x96\x87\x98\x87\x79\x87\x87\x87\xa3\x87\x85\x87\x90\x87\x91\x87\x9d\x87\x84\x87\x94\x87\x9c\x87\x9a\x87\x89\x89\x1e\x89\x26\x89\x30\x89\x2d\x89\x2e\x89\x27\x89\x31\x89\x22\x89\x29\x89\x23\x89\x2f\x89\x2c\x89\x1f\x89\xf1\x8a\xe0\x8a\xe2\x8a\xf2\x8a\xf4\x8a\xf5\x8a\xdd\x8b\x14\x8a\xe4\x8a\xdf\x8a\xf0\x8a\xc8\x8a\xde\x8a\xe1\x8a\xe8\x8a\xff\x8a\xef\x8a\xfb\x8c\x91\x8c\x92\x8c\x90\x8c\xf5\x8c\xee\x8c\xf1\x8c\xf0\x8c\xf3\x8d\x6c\x8d\x6e\x8d\xa5\x8d\xa7\x8e\x33\x8e\x3e\x8e\x38\x8e\x40\x8e\x45\x8e\x36\x8e\x3c\x8e\x3d\x8e\x41\x8e\x30\x8e\x3f\x8e\xbd\x8f\x36\x8f\x2e\x8f\x35\x8f\x32\x8f\x39\x8f\x37\x8f\x34\x90\x76\x90\x79\x90\x7b\x90\x86\x00\x00\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xfa\x91\x33\x91\x35\x91\x36\x91\x93\x91\x90\x91\x91\x91\x8d\x91\x8f\x93\x27\x93\x1e\x93\x08\x93\x1f\x93\x06\x93\x0f\x93\x7a\x93\x38\x93\x3c\x93\x1b\x93\x23\x93\x12\x93\x01\x93\x46\x93\x2d\x93\x0e\x93\x0d\x92\xcb\x93\x1d\x92\xfa\x93\x25\x93\x13\x92\xf9\x92\xf7\x93\x34\x93\x02\x93\x24\x92\xff\x93\x29\x93\x39\x93\x35\x93\x2a\x93\x14\x93\x0c\x93\x0b\x92\xfe\x93\x09\x93\x00\x92\xfb\x93\x16\x95\xbc\x95\xcd\x95\xbe\x95\xb9\x95\xba\x95\xb6\x95\xbf\x95\xb5\x95\xbd\x96\xa9\x96\xd4\x97\x0b\x97\x12\x97\x10", /* 8680 */ "\x00\x00\x97\x99\x97\x97\x97\x94\x97\xf0\x97\xf8\x98\x35\x98\x2f\x98\x32\x99\x24\x99\x1f\x99\x27\x99\x29\x99\x9e\x99\xee\x99\xec\x99\xe5\x99\xe4\x99\xf0\x99\xe3\x99\xea\x99\xe9\x99\xe7\x9a\xb9\x9a\xbf\x9a\xb4\x9a\xbb\x9a\xf6\x9a\xfa\x9a\xf9\x9a\xf7\x9b\x33\x9b\x80\x9b\x85\x9b\x87\x9b\x7c\x9b\x7e\x9b\x7b\x9b\x82\x9b\x93\x9b\x92\x9b\x90\x9b\x7a\x9b\x95\x9b\x7d\x9b\x88\x9d\x25\x9d\x17\x9d\x20\x9d\x1e\x9d\x14\x9d\x29\x9d\x1d\x9d\x18\x9d\x22\x9d\x10\x9d\x19\x9d\x1f\x9e\x88\x9e\x86\x9e\x87\x9e\xae\x9e\xad\x9e\xd5\x9e\xd6\x9e\xfa\x9f\x12\x9f\x3d\x51\x26\x51\x25\x51\x22\x51\x24\x51\x20\x51\x29\x52\xf4\x56\x93\x56\x8c\x56\x8d\x56\x86\x56\x84\x56\x83\x56\x7e\x56\x82\x56\x7f\x56\x81\x58\xd6\x58\xd4\x58\xcf\x58\xd2\x5b\x2d\x5b\x25\x5b\x32\x5b\x23\x5b\x2c\x5b\x27\x5b\x26\x5b\x2f\x5b\x2e\x5b\x7b\x5b\xf1\x5b\xf2\x5d\xb7\x5e\x6c\x5e\x6a\x5f\xbe\x5f\xbb\x61\xc3\x61\xb5\x61\xbc\x61\xe7\x61\xe0\x61\xe5\x61\xe4\x61\xe8\x61\xde\x64\xef\x64\xe9\x64\xe3\x64\xeb\x64\xe4\x64\xe8\x65\x81\x65\x80\x65\xb6\x65\xda\x66\xd2\x00\x00\x00\x00", /* 8700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8d\x6a\x96\x6a\x81\x6a\xa5\x6a\x89\x6a\x9f\x6a\x9b\x6a\xa1\x6a\x9e\x6a\x87\x6a\x93\x6a\x8e\x6a\x95\x6a\x83\x6a\xa8\x6a\xa4\x6a\x91\x6a\x7f\x6a\xa6\x6a\x9a\x6a\x85\x6a\x8c\x6a\x92\x6b\x5b\x6b\xad\x6c\x09\x6f\xcc\x6f\xa9\x6f\xf4\x6f\xd4\x6f\xe3\x6f\xdc\x6f\xed\x6f\xe7\x6f\xe6\x6f\xde\x6f\xf2\x6f\xdd\x6f\xe2\x6f\xe8\x71\xe1\x71\xf1\x71\xe8\x71\xf2\x71\xe4\x71\xf0\x71\xe2\x73\x73\x73\x6e\x73\x6f\x74\x97\x74\xb2\x74\xab\x74\x90\x74\xaa\x74\xad\x74\xb1\x74\xa5\x74\xaf\x75\x10\x75\x11\x75\x12\x75\x0f", /* 8780 */ "\x00\x00\x75\x84\x76\x43\x76\x48\x76\x49\x76\x47\x76\xa4\x76\xe9\x77\xb5\x77\xab\x77\xb2\x77\xb7\x77\xb6\x77\xb4\x77\xb1\x77\xa8\x77\xf0\x78\xf3\x78\xfd\x79\x02\x78\xfb\x78\xfc\x78\xf2\x79\x05\x78\xf9\x78\xfe\x79\x04\x79\xab\x79\xa8\x7a\x5c\x7a\x5b\x7a\x56\x7a\x58\x7a\x54\x7a\x5a\x7a\xbe\x7a\xc0\x7a\xc1\x7c\x05\x7c\x0f\x7b\xf2\x7c\x00\x7b\xff\x7b\xfb\x7c\x0e\x7b\xf4\x7c\x0b\x7b\xf3\x7c\x02\x7c\x09\x7c\x03\x7c\x01\x7b\xf8\x7b\xfd\x7c\x06\x7b\xf0\x7b\xf1\x7c\x10\x7c\x0a\x7c\xe8\x7e\x2d\x7e\x3c\x7e\x42\x7e\x33\x98\x48\x7e\x38\x7e\x2a\x7e\x49\x7e\x40\x7e\x47\x7e\x29\x7e\x4c\x7e\x30\x7e\x3b\x7e\x36\x7e\x44\x7e\x3a\x7f\x45\x7f\x7f\x7f\x7e\x7f\x7d\x7f\xf4\x7f\xf2\x80\x2c\x81\xbb\x81\xc4\x81\xcc\x81\xca\x81\xc5\x81\xc7\x81\xbc\x81\xe9\x82\x5b\x82\x5a\x82\x5c\x85\x83\x85\x80\x85\x8f\x85\xa7\x85\x95\x85\xa0\x85\x8b\x85\xa3\x85\x7b\x85\xa4\x85\x9a\x85\x9e\x85\x77\x85\x7c\x85\x89\x85\xa1\x85\x7a\x85\x78\x85\x57\x85\x8e\x85\x96\x85\x86\x85\x8d\x85\x99\x85\x9d\x85\x81\x85\xa2\x85\x82\x85\x88\x85\x85\x85\x79\x00\x00\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x76\x85\x98\x85\x90\x85\x9f\x86\x68\x87\xbe\x87\xaa\x87\xad\x87\xc5\x87\xb0\x87\xac\x87\xb9\x87\xb5\x87\xbc\x87\xae\x87\xc9\x87\xc3\x87\xc2\x87\xcc\x87\xb7\x87\xaf\x87\xc4\x87\xca\x87\xb4\x87\xb6\x87\xbf\x87\xb8\x87\xbd\x87\xde\x87\xb2\x89\x35\x89\x33\x89\x3c\x89\x3e\x89\x41\x89\x52\x89\x37\x89\x42\x89\xad\x89\xaf\x89\xae\x89\xf2\x89\xf3\x8b\x1e\x8b\x18\x8b\x16\x8b\x11\x8b\x05\x8b\x0b\x8b\x22\x8b\x0f\x8b\x12\x8b\x15\x8b\x07\x8b\x0d\x8b\x08\x8b\x06\x8b\x1c\x8b\x13\x8b\x1a\x8c\x4f\x8c\x70\x8c\x72", /* 8880 */ "\x00\x00\x8c\x71\x8c\x6f\x8c\x95\x8c\x94\x8c\xf9\x8d\x6f\x8e\x4e\x8e\x4d\x8e\x53\x8e\x50\x8e\x4c\x8e\x47\x8f\x43\x8f\x40\x90\x85\x90\x7e\x91\x38\x91\x9a\x91\xa2\x91\x9b\x91\x99\x91\x9f\x91\xa1\x91\x9d\x91\xa0\x93\xa1\x93\x83\x93\xaf\x93\x64\x93\x56\x93\x47\x93\x7c\x93\x58\x93\x5c\x93\x76\x93\x49\x93\x50\x93\x51\x93\x60\x93\x6d\x93\x8f\x93\x4c\x93\x6a\x93\x79\x93\x57\x93\x55\x93\x52\x93\x4f\x93\x71\x93\x77\x93\x7b\x93\x61\x93\x5e\x93\x63\x93\x67\x93\x80\x93\x4e\x93\x59\x95\xc7\x95\xc0\x95\xc9\x95\xc3\x95\xc5\x95\xb7\x96\xae\x96\xb0\x96\xac\x97\x20\x97\x1f\x97\x18\x97\x1d\x97\x19\x97\x9a\x97\xa1\x97\x9c\x97\x9e\x97\x9d\x97\xd5\x97\xd4\x97\xf1\x98\x41\x98\x44\x98\x4a\x98\x49\x98\x45\x98\x43\x99\x25\x99\x2b\x99\x2c\x99\x2a\x99\x33\x99\x32\x99\x2f\x99\x2d\x99\x31\x99\x30\x99\x98\x99\xa3\x99\xa1\x9a\x02\x99\xfa\x99\xf4\x99\xf7\x99\xf9\x99\xf8\x99\xf6\x99\xfb\x99\xfd\x99\xfe\x99\xfc\x9a\x03\x9a\xbe\x9a\xfe\x9a\xfd\x9b\x01\x9a\xfc\x9b\x48\x9b\x9a\x9b\xa8\x9b\x9e\x9b\x9b\x9b\xa6\x9b\xa1\x9b\xa5\x9b\xa4\x00\x00\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x86\x9b\xa2\x9b\xa0\x9b\xaf\x9d\x33\x9d\x41\x9d\x67\x9d\x36\x9d\x2e\x9d\x2f\x9d\x31\x9d\x38\x9d\x30\x9d\x45\x9d\x42\x9d\x43\x9d\x3e\x9d\x37\x9d\x40\x9d\x3d\x7f\xf5\x9d\x2d\x9e\x8a\x9e\x89\x9e\x8d\x9e\xb0\x9e\xc8\x9e\xda\x9e\xfb\x9e\xff\x9f\x24\x9f\x23\x9f\x22\x9f\x54\x9f\xa0\x51\x31\x51\x2d\x51\x2e\x56\x98\x56\x9c\x56\x97\x56\x9a\x56\x9d\x56\x99\x59\x70\x5b\x3c\x5c\x69\x5c\x6a\x5d\xc0\x5e\x6d\x5e\x6e\x61\xd8\x61\xdf\x61\xed\x61\xee\x61\xf1\x61\xea\x61\xf0\x61\xeb\x61\xd6\x61\xe9\x64\xff\x65\x04", /* 8980 */ "\x00\x00\x64\xfd\x64\xf8\x65\x01\x65\x03\x64\xfc\x65\x94\x65\xdb\x66\xda\x66\xdb\x66\xd8\x6a\xc5\x6a\xb9\x6a\xbd\x6a\xe1\x6a\xc6\x6a\xba\x6a\xb6\x6a\xb7\x6a\xc7\x6a\xb4\x6a\xad\x6b\x5e\x6b\xc9\x6c\x0b\x70\x07\x70\x0c\x70\x0d\x70\x01\x70\x05\x70\x14\x70\x0e\x6f\xff\x70\x00\x6f\xfb\x70\x26\x6f\xfc\x6f\xf7\x70\x0a\x72\x01\x71\xff\x71\xf9\x72\x03\x71\xfd\x73\x76\x74\xb8\x74\xc0\x74\xb5\x74\xc1\x74\xbe\x74\xb6\x74\xbb\x74\xc2\x75\x14\x75\x13\x76\x5c\x76\x64\x76\x59\x76\x50\x76\x53\x76\x57\x76\x5a\x76\xa6\x76\xbd\x76\xec\x77\xc2\x77\xba\x78\xff\x79\x0c\x79\x13\x79\x14\x79\x09\x79\x10\x79\x12\x79\x11\x79\xad\x79\xac\x7a\x5f\x7c\x1c\x7c\x29\x7c\x19\x7c\x20\x7c\x1f\x7c\x2d\x7c\x1d\x7c\x26\x7c\x28\x7c\x22\x7c\x25\x7c\x30\x7e\x5c\x7e\x50\x7e\x56\x7e\x63\x7e\x58\x7e\x62\x7e\x5f\x7e\x51\x7e\x60\x7e\x57\x7e\x53\x7f\xb5\x7f\xb3\x7f\xf7\x7f\xf8\x80\x75\x81\xd1\x81\xd2\x81\xd0\x82\x5f\x82\x5e\x85\xb4\x85\xc6\x85\xc0\x85\xc3\x85\xc2\x85\xb3\x85\xb5\x85\xbd\x85\xc7\x85\xc4\x85\xbf\x85\xcb\x85\xce\x85\xc8\x85\xc5\x00\x00\x00\x00", /* 8a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\xb1\x85\xb6\x85\xd2\x86\x24\x85\xb8\x85\xb7\x85\xbe\x86\x69\x87\xe7\x87\xe6\x87\xe2\x87\xdb\x87\xeb\x87\xea\x87\xe5\x87\xdf\x87\xf3\x87\xe4\x87\xd4\x87\xdc\x87\xd3\x87\xed\x87\xd8\x87\xe3\x87\xa4\x87\xd7\x87\xd9\x88\x01\x87\xf4\x87\xe8\x87\xdd\x89\x53\x89\x4b\x89\x4f\x89\x4c\x89\x46\x89\x50\x89\x51\x89\x49\x8b\x2a\x8b\x27\x8b\x23\x8b\x33\x8b\x30\x8b\x35\x8b\x47\x8b\x2f\x8b\x3c\x8b\x3e\x8b\x31\x8b\x25\x8b\x37\x8b\x26\x8b\x36\x8b\x2e\x8b\x24\x8b\x3b\x8b\x3d\x8b\x3a\x8c\x42\x8c\x75\x8c\x99\x8c\x98", /* 8a80 */ "\x00\x00\x8c\x97\x8c\xfe\x8d\x04\x8d\x02\x8d\x00\x8e\x5c\x8e\x62\x8e\x60\x8e\x57\x8e\x56\x8e\x5e\x8e\x65\x8e\x67\x8e\x5b\x8e\x5a\x8e\x61\x8e\x5d\x8e\x69\x8e\x54\x8f\x46\x8f\x47\x8f\x48\x8f\x4b\x91\x28\x91\x3a\x91\x3b\x91\x3e\x91\xa8\x91\xa5\x91\xa7\x91\xaf\x91\xaa\x93\xb5\x93\x8c\x93\x92\x93\xb7\x93\x9b\x93\x9d\x93\x89\x93\xa7\x93\x8e\x93\xaa\x93\x9e\x93\xa6\x93\x95\x93\x88\x93\x99\x93\x9f\x93\x8d\x93\xb1\x93\x91\x93\xb2\x93\xa4\x93\xa8\x93\xb4\x93\xa3\x93\xa5\x95\xd2\x95\xd3\x95\xd1\x96\xb3\x96\xd7\x96\xda\x5d\xc2\x96\xdf\x96\xd8\x96\xdd\x97\x23\x97\x22\x97\x25\x97\xac\x97\xae\x97\xa8\x97\xab\x97\xa4\x97\xaa\x97\xa2\x97\xa5\x97\xd7\x97\xd9\x97\xd6\x97\xd8\x97\xfa\x98\x50\x98\x51\x98\x52\x98\xb8\x99\x41\x99\x3c\x99\x3a\x9a\x0f\x9a\x0b\x9a\x09\x9a\x0d\x9a\x04\x9a\x11\x9a\x0a\x9a\x05\x9a\x07\x9a\x06\x9a\xc0\x9a\xdc\x9b\x08\x9b\x04\x9b\x05\x9b\x29\x9b\x35\x9b\x4a\x9b\x4c\x9b\x4b\x9b\xc7\x9b\xc6\x9b\xc3\x9b\xbf\x9b\xc1\x9b\xb5\x9b\xb8\x9b\xd3\x9b\xb6\x9b\xc4\x9b\xb9\x9b\xbd\x9d\x5c\x9d\x53\x9d\x4f\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x4a\x9d\x5b\x9d\x4b\x9d\x59\x9d\x56\x9d\x4c\x9d\x57\x9d\x52\x9d\x54\x9d\x5f\x9d\x58\x9d\x5a\x9e\x8e\x9e\x8c\x9e\xdf\x9f\x01\x9f\x00\x9f\x16\x9f\x25\x9f\x2b\x9f\x2a\x9f\x29\x9f\x28\x9f\x4c\x9f\x55\x51\x34\x51\x35\x52\x96\x52\xf7\x53\xb4\x56\xab\x56\xad\x56\xa6\x56\xa7\x56\xaa\x56\xac\x58\xda\x58\xdd\x58\xdb\x59\x12\x5b\x3d\x5b\x3e\x5b\x3f\x5d\xc3\x5e\x70\x5f\xbf\x61\xfb\x65\x07\x65\x10\x65\x0d\x65\x09\x65\x0c\x65\x0e\x65\x84\x65\xde\x65\xdd\x66\xde\x6a\xe7\x6a\xe0\x6a\xcc\x6a\xd1\x6a\xd9\x6a\xcb", /* 8b80 */ "\x00\x00\x6a\xdf\x6a\xdc\x6a\xd0\x6a\xeb\x6a\xcf\x6a\xcd\x6a\xde\x6b\x60\x6b\xb0\x6c\x0c\x70\x19\x70\x27\x70\x20\x70\x16\x70\x2b\x70\x21\x70\x22\x70\x23\x70\x29\x70\x17\x70\x24\x70\x1c\x70\x2a\x72\x0c\x72\x0a\x72\x07\x72\x02\x72\x05\x72\xa5\x72\xa6\x72\xa4\x72\xa3\x72\xa1\x74\xcb\x74\xc5\x74\xb7\x74\xc3\x75\x16\x76\x60\x77\xc9\x77\xca\x77\xc4\x77\xf1\x79\x1d\x79\x1b\x79\x21\x79\x1c\x79\x17\x79\x1e\x79\xb0\x7a\x67\x7a\x68\x7c\x33\x7c\x3c\x7c\x39\x7c\x2c\x7c\x3b\x7c\xec\x7c\xea\x7e\x76\x7e\x75\x7e\x78\x7e\x70\x7e\x77\x7e\x6f\x7e\x7a\x7e\x72\x7e\x74\x7e\x68\x7f\x4b\x7f\x4a\x7f\x83\x7f\x86\x7f\xb7\x7f\xfd\x7f\xfe\x80\x78\x81\xd7\x81\xd5\x82\x64\x82\x61\x82\x63\x85\xeb\x85\xf1\x85\xed\x85\xd9\x85\xe1\x85\xe8\x85\xda\x85\xd7\x85\xec\x85\xf2\x85\xf8\x85\xd8\x85\xdf\x85\xe3\x85\xdc\x85\xd1\x85\xf0\x85\xe6\x85\xef\x85\xde\x85\xe2\x88\x00\x87\xfa\x88\x03\x87\xf6\x87\xf7\x88\x09\x88\x0c\x88\x0b\x88\x06\x87\xfc\x88\x08\x87\xff\x88\x0a\x88\x02\x89\x62\x89\x5a\x89\x5b\x89\x57\x89\x61\x89\x5c\x89\x58\x89\x5d\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x59\x89\x88\x89\xb7\x89\xb6\x89\xf6\x8b\x50\x8b\x48\x8b\x4a\x8b\x40\x8b\x53\x8b\x56\x8b\x54\x8b\x4b\x8b\x55\x8b\x51\x8b\x42\x8b\x52\x8b\x57\x8c\x43\x8c\x77\x8c\x76\x8c\x9a\x8d\x06\x8d\x07\x8d\x09\x8d\xac\x8d\xaa\x8d\xad\x8d\xab\x8e\x6d\x8e\x78\x8e\x73\x8e\x6a\x8e\x6f\x8e\x7b\x8e\xc2\x8f\x52\x8f\x51\x8f\x4f\x8f\x50\x8f\x53\x8f\xb4\x91\x40\x91\x3f\x91\xb0\x91\xad\x93\xde\x93\xc7\x93\xcf\x93\xc2\x93\xda\x93\xd0\x93\xf9\x93\xec\x93\xcc\x93\xd9\x93\xa9\x93\xe6\x93\xca\x93\xd4\x93\xee\x93\xe3\x93\xd5", /* 8c80 */ "\x00\x00\x93\xc4\x93\xce\x93\xc0\x93\xd2\x93\xe7\x95\x7d\x95\xda\x95\xdb\x96\xe1\x97\x29\x97\x2b\x97\x2c\x97\x28\x97\x26\x97\xb3\x97\xb7\x97\xb6\x97\xdd\x97\xde\x97\xdf\x98\x5c\x98\x59\x98\x5d\x98\x57\x98\xbf\x98\xbd\x98\xbb\x98\xbe\x99\x48\x99\x47\x99\x43\x99\xa6\x99\xa7\x9a\x1a\x9a\x15\x9a\x25\x9a\x1d\x9a\x24\x9a\x1b\x9a\x22\x9a\x20\x9a\x27\x9a\x23\x9a\x1e\x9a\x1c\x9a\x14\x9a\xc2\x9b\x0b\x9b\x0a\x9b\x0e\x9b\x0c\x9b\x37\x9b\xea\x9b\xeb\x9b\xe0\x9b\xde\x9b\xe4\x9b\xe6\x9b\xe2\x9b\xf0\x9b\xd4\x9b\xd7\x9b\xec\x9b\xdc\x9b\xd9\x9b\xe5\x9b\xd5\x9b\xe1\x9b\xda\x9d\x77\x9d\x81\x9d\x8a\x9d\x84\x9d\x88\x9d\x71\x9d\x80\x9d\x78\x9d\x86\x9d\x8b\x9d\x8c\x9d\x7d\x9d\x6b\x9d\x74\x9d\x75\x9d\x70\x9d\x69\x9d\x85\x9d\x73\x9d\x7b\x9d\x82\x9d\x6f\x9d\x79\x9d\x7f\x9d\x87\x9d\x68\x9e\x94\x9e\x91\x9e\xc0\x9e\xfc\x9f\x2d\x9f\x40\x9f\x41\x9f\x4d\x9f\x56\x9f\x57\x9f\x58\x53\x37\x56\xb2\x56\xb5\x56\xb3\x58\xe3\x5b\x45\x5d\xc6\x5d\xc7\x5e\xee\x5e\xef\x5f\xc0\x5f\xc1\x61\xf9\x65\x17\x65\x16\x65\x15\x65\x13\x65\xdf\x66\xe8\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe3\x66\xe4\x6a\xf3\x6a\xf0\x6a\xea\x6a\xe8\x6a\xf9\x6a\xf1\x6a\xee\x6a\xef\x70\x3c\x70\x35\x70\x2f\x70\x37\x70\x34\x70\x31\x70\x42\x70\x38\x70\x3f\x70\x3a\x70\x39\x70\x40\x70\x3b\x70\x33\x70\x41\x72\x13\x72\x14\x72\xa8\x73\x7d\x73\x7c\x74\xba\x76\xab\x76\xaa\x76\xbe\x76\xed\x77\xcc\x77\xce\x77\xcf\x77\xcd\x77\xf2\x79\x25\x79\x23\x79\x27\x79\x28\x79\x24\x79\x29\x79\xb2\x7a\x6e\x7a\x6c\x7a\x6d\x7a\xf7\x7c\x49\x7c\x48\x7c\x4a\x7c\x47\x7c\x45\x7c\xee\x7e\x7b\x7e\x7e\x7e\x81\x7e\x80\x7f\xba\x7f\xff", /* 8d80 */ "\x00\x00\x80\x79\x81\xdb\x81\xd9\x82\x0b\x82\x68\x82\x69\x86\x22\x85\xff\x86\x01\x85\xfe\x86\x1b\x86\x00\x85\xf6\x86\x04\x86\x09\x86\x05\x86\x0c\x85\xfd\x88\x19\x88\x10\x88\x11\x88\x17\x88\x13\x88\x16\x89\x63\x89\x66\x89\xb9\x89\xf7\x8b\x60\x8b\x6a\x8b\x5d\x8b\x68\x8b\x63\x8b\x65\x8b\x67\x8b\x6d\x8d\xae\x8e\x86\x8e\x88\x8e\x84\x8f\x59\x8f\x56\x8f\x57\x8f\x55\x8f\x58\x8f\x5a\x90\x8d\x91\x43\x91\x41\x91\xb7\x91\xb5\x91\xb2\x91\xb3\x94\x0b\x94\x13\x93\xfb\x94\x20\x94\x0f\x94\x14\x93\xfe\x94\x15\x94\x10\x94\x28\x94\x19\x94\x0d\x93\xf5\x94\x00\x93\xf7\x94\x07\x94\x0e\x94\x16\x94\x12\x93\xfa\x94\x09\x93\xf8\x94\x0a\x93\xff\x93\xfc\x94\x0c\x93\xf6\x94\x11\x94\x06\x95\xde\x95\xe0\x95\xdf\x97\x2e\x97\x2f\x97\xb9\x97\xbb\x97\xfd\x97\xfe\x98\x60\x98\x62\x98\x63\x98\x5f\x98\xc1\x98\xc2\x99\x50\x99\x4e\x99\x59\x99\x4c\x99\x4b\x99\x53\x9a\x32\x9a\x34\x9a\x31\x9a\x2c\x9a\x2a\x9a\x36\x9a\x29\x9a\x2e\x9a\x38\x9a\x2d\x9a\xc7\x9a\xca\x9a\xc6\x9b\x10\x9b\x12\x9b\x11\x9c\x0b\x9c\x08\x9b\xf7\x9c\x05\x9c\x12\x9b\xf8\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x40\x9c\x07\x9c\x0e\x9c\x06\x9c\x17\x9c\x14\x9c\x09\x9d\x9f\x9d\x99\x9d\xa4\x9d\x9d\x9d\x92\x9d\x98\x9d\x90\x9d\x9b\x9d\xa0\x9d\x94\x9d\x9c\x9d\xaa\x9d\x97\x9d\xa1\x9d\x9a\x9d\xa2\x9d\xa8\x9d\x9e\x9d\xa3\x9d\xbf\x9d\xa9\x9d\x96\x9d\xa6\x9d\xa7\x9e\x99\x9e\x9b\x9e\x9a\x9e\xe5\x9e\xe4\x9e\xe7\x9e\xe6\x9f\x30\x9f\x2e\x9f\x5b\x9f\x60\x9f\x5e\x9f\x5d\x9f\x59\x9f\x91\x51\x3a\x51\x39\x52\x98\x52\x97\x56\xc3\x56\xbd\x56\xbe\x5b\x48\x5b\x47\x5d\xcb\x5d\xcf\x5e\xf1\x61\xfd\x65\x1b\x6b\x02\x6a\xfc\x6b\x03", /* 8e80 */ "\x00\x00\x6a\xf8\x6b\x00\x70\x43\x70\x44\x70\x4a\x70\x48\x70\x49\x70\x45\x70\x46\x72\x1d\x72\x1a\x72\x19\x73\x7e\x75\x17\x76\x6a\x77\xd0\x79\x2d\x79\x31\x79\x2f\x7c\x54\x7c\x53\x7c\xf2\x7e\x8a\x7e\x87\x7e\x88\x7e\x8b\x7e\x86\x7e\x8d\x7f\x4d\x7f\xbb\x80\x30\x81\xdd\x86\x18\x86\x2a\x86\x26\x86\x1f\x86\x23\x86\x1c\x86\x19\x86\x27\x86\x2e\x86\x21\x86\x20\x86\x29\x86\x1e\x86\x25\x88\x29\x88\x1d\x88\x1b\x88\x20\x88\x24\x88\x1c\x88\x2b\x88\x4a\x89\x6d\x89\x69\x89\x6e\x89\x6b\x89\xfa\x8b\x79\x8b\x78\x8b\x45\x8b\x7a\x8b\x7b\x8d\x10\x8d\x14\x8d\xaf\x8e\x8e\x8e\x8c\x8f\x5e\x8f\x5b\x8f\x5d\x91\x46\x91\x44\x91\x45\x91\xb9\x94\x3f\x94\x3b\x94\x36\x94\x29\x94\x3d\x94\x3c\x94\x30\x94\x39\x94\x2a\x94\x37\x94\x2c\x94\x40\x94\x31\x95\xe5\x95\xe4\x95\xe3\x97\x35\x97\x3a\x97\xbf\x97\xe1\x98\x64\x98\xc9\x98\xc6\x98\xc0\x99\x58\x99\x56\x9a\x39\x9a\x3d\x9a\x46\x9a\x44\x9a\x42\x9a\x41\x9a\x3a\x9a\x3f\x9a\xcd\x9b\x15\x9b\x17\x9b\x18\x9b\x16\x9b\x3a\x9b\x52\x9c\x2b\x9c\x1d\x9c\x1c\x9c\x2c\x9c\x23\x9c\x28\x9c\x29\x9c\x24\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x21\x9d\xb7\x9d\xb6\x9d\xbc\x9d\xc1\x9d\xc7\x9d\xca\x9d\xcf\x9d\xbe\x9d\xc5\x9d\xc3\x9d\xbb\x9d\xb5\x9d\xce\x9d\xb9\x9d\xba\x9d\xac\x9d\xc8\x9d\xb1\x9d\xad\x9d\xcc\x9d\xb3\x9d\xcd\x9d\xb2\x9e\x7a\x9e\x9c\x9e\xeb\x9e\xee\x9e\xed\x9f\x1b\x9f\x18\x9f\x1a\x9f\x31\x9f\x4e\x9f\x65\x9f\x64\x9f\x92\x4e\xb9\x56\xc6\x56\xc5\x56\xcb\x59\x71\x5b\x4b\x5b\x4c\x5d\xd5\x5d\xd1\x5e\xf2\x65\x21\x65\x20\x65\x26\x65\x22\x6b\x0b\x6b\x08\x6b\x09\x6c\x0d\x70\x55\x70\x56\x70\x57\x70\x52\x72\x1e\x72\x1f\x72\xa9\x73\x7f", /* 8f80 */ "\x00\x00\x74\xd8\x74\xd5\x74\xd9\x74\xd7\x76\x6d\x76\xad\x79\x35\x79\xb4\x7a\x70\x7a\x71\x7c\x57\x7c\x5c\x7c\x59\x7c\x5b\x7c\x5a\x7c\xf4\x7c\xf1\x7e\x91\x7f\x4f\x7f\x87\x81\xde\x82\x6b\x86\x34\x86\x35\x86\x33\x86\x2c\x86\x32\x86\x36\x88\x2c\x88\x28\x88\x26\x88\x2a\x88\x25\x89\x71\x89\xbf\x89\xbe\x89\xfb\x8b\x7e\x8b\x84\x8b\x82\x8b\x86\x8b\x85\x8b\x7f\x8d\x15\x8e\x95\x8e\x94\x8e\x9a\x8e\x92\x8e\x90\x8e\x96\x8e\x97\x8f\x60\x8f\x62\x91\x47\x94\x4c\x94\x50\x94\x4a\x94\x4b\x94\x4f\x94\x47\x94\x45\x94\x48\x94\x49\x94\x46\x97\x3f\x97\xe3\x98\x6a\x98\x69\x98\xcb\x99\x54\x99\x5b\x9a\x4e\x9a\x53\x9a\x54\x9a\x4c\x9a\x4f\x9a\x48\x9a\x4a\x9a\x49\x9a\x52\x9a\x50\x9a\xd0\x9b\x19\x9b\x2b\x9b\x3b\x9b\x56\x9b\x55\x9c\x46\x9c\x48\x9c\x3f\x9c\x44\x9c\x39\x9c\x33\x9c\x41\x9c\x3c\x9c\x37\x9c\x34\x9c\x32\x9c\x3d\x9c\x36\x9d\xdb\x9d\xd2\x9d\xde\x9d\xda\x9d\xcb\x9d\xd0\x9d\xdc\x9d\xd1\x9d\xdf\x9d\xe9\x9d\xd9\x9d\xd8\x9d\xd6\x9d\xf5\x9d\xd5\x9d\xdd\x9e\xb6\x9e\xf0\x9f\x35\x9f\x33\x9f\x32\x9f\x42\x9f\x6b\x9f\x95\x9f\xa2\x00\x00\x00\x00", /* 9000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x3d\x52\x99\x58\xe8\x58\xe7\x59\x72\x5b\x4d\x5d\xd8\x88\x2f\x5f\x4f\x62\x01\x62\x03\x62\x04\x65\x29\x65\x25\x65\x96\x66\xeb\x6b\x11\x6b\x12\x6b\x0f\x6b\xca\x70\x5b\x70\x5a\x72\x22\x73\x82\x73\x81\x73\x83\x76\x70\x77\xd4\x7c\x67\x7c\x66\x7e\x95\x82\x6c\x86\x3a\x86\x40\x86\x39\x86\x3c\x86\x31\x86\x3b\x86\x3e\x88\x30\x88\x32\x88\x2e\x88\x33\x89\x76\x89\x74\x89\x73\x89\xfe\x8b\x8c\x8b\x8e\x8b\x8b\x8b\x88\x8c\x45\x8d\x19\x8e\x98\x8f\x64\x8f\x63\x91\xbc\x94\x62\x94\x55\x94\x5d\x94\x57\x94\x5e\x97\xc4", /* 9080 */ "\x00\x00\x97\xc5\x98\x00\x9a\x56\x9a\x59\x9b\x1e\x9b\x1f\x9b\x20\x9c\x52\x9c\x58\x9c\x50\x9c\x4a\x9c\x4d\x9c\x4b\x9c\x55\x9c\x59\x9c\x4c\x9c\x4e\x9d\xfb\x9d\xf7\x9d\xef\x9d\xe3\x9d\xeb\x9d\xf8\x9d\xe4\x9d\xf6\x9d\xe1\x9d\xee\x9d\xe6\x9d\xf2\x9d\xf0\x9d\xe2\x9d\xec\x9d\xf4\x9d\xf3\x9d\xe8\x9d\xed\x9e\xc2\x9e\xd0\x9e\xf2\x9e\xf3\x9f\x06\x9f\x1c\x9f\x38\x9f\x37\x9f\x36\x9f\x43\x9f\x4f\x9f\x71\x9f\x70\x9f\x6e\x9f\x6f\x56\xd3\x56\xcd\x5b\x4e\x5c\x6d\x65\x2d\x66\xed\x66\xee\x6b\x13\x70\x5f\x70\x61\x70\x5d\x70\x60\x72\x23\x74\xdb\x74\xe5\x77\xd5\x79\x38\x79\xb7\x79\xb6\x7c\x6a\x7e\x97\x7f\x89\x82\x6d\x86\x43\x88\x38\x88\x37\x88\x35\x88\x4b\x8b\x94\x8b\x95\x8e\x9e\x8e\x9f\x8e\xa0\x8e\x9d\x91\xbe\x91\xbd\x91\xc2\x94\x6b\x94\x68\x94\x69\x96\xe5\x97\x46\x97\x43\x97\x47\x97\xc7\x97\xe5\x9a\x5e\x9a\xd5\x9b\x59\x9c\x63\x9c\x67\x9c\x66\x9c\x62\x9c\x5e\x9c\x60\x9e\x02\x9d\xfe\x9e\x07\x9e\x03\x9e\x06\x9e\x05\x9e\x00\x9e\x01\x9e\x09\x9d\xff\x9d\xfd\x9e\x04\x9e\xa0\x9f\x1e\x9f\x46\x9f\x74\x9f\x75\x9f\x76\x56\xd4\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x2e\x65\xb8\x6b\x18\x6b\x19\x6b\x17\x6b\x1a\x70\x62\x72\x26\x72\xaa\x77\xd8\x77\xd9\x79\x39\x7c\x69\x7c\x6b\x7c\xf6\x7e\x9a\x7e\x98\x7e\x9b\x7e\x99\x81\xe0\x81\xe1\x86\x46\x86\x47\x86\x48\x89\x79\x89\x7a\x89\x7c\x89\x7b\x89\xff\x8b\x98\x8b\x99\x8e\xa5\x8e\xa4\x8e\xa3\x94\x6e\x94\x6d\x94\x6f\x94\x71\x94\x73\x97\x49\x98\x72\x99\x5f\x9c\x68\x9c\x6e\x9c\x6d\x9e\x0b\x9e\x0d\x9e\x10\x9e\x0f\x9e\x12\x9e\x11\x9e\xa1\x9e\xf5\x9f\x09\x9f\x47\x9f\x78\x9f\x7b\x9f\x7a\x9f\x79\x57\x1e\x70\x66\x7c\x6f\x88\x3c", /* 9180 */ "\x00\x00\x8d\xb2\x8e\xa6\x91\xc3\x94\x74\x94\x78\x94\x76\x94\x75\x9a\x60\x9c\x74\x9c\x73\x9c\x71\x9c\x75\x9e\x14\x9e\x13\x9e\xf6\x9f\x0a\x9f\xa4\x70\x68\x70\x65\x7c\xf7\x86\x6a\x88\x3e\x88\x3d\x88\x3f\x8b\x9e\x8c\x9c\x8e\xa9\x8e\xc9\x97\x4b\x98\x73\x98\x74\x98\xcc\x99\x61\x99\xab\x9a\x64\x9a\x66\x9a\x67\x9b\x24\x9e\x15\x9e\x17\x9f\x48\x62\x07\x6b\x1e\x72\x27\x86\x4c\x8e\xa8\x94\x82\x94\x80\x94\x81\x9a\x69\x9a\x68\x9b\x2e\x9e\x19\x72\x29\x86\x4b\x8b\x9f\x94\x83\x9c\x79\x9e\xb7\x76\x75\x9a\x6b\x9c\x7a\x9e\x1d\x70\x69\x70\x6a\x9e\xa4\x9f\x7e\x9f\x49\x9f\x98\x69\x1e\x6e\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* c280 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* c300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* c380 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* c400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* c480 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* c500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* c580 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* c600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* c680 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* c700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* c780 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* c800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* c880 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* c900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* c980 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* ca00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* ca80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* cb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* cb80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* cc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96", /* cc80 */ "\x00\x00\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xe7\xa8\xe7\xa9\xe7\xaa\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe7\xff\xe8\x00\xe8\x01\xe8\x02\xe8\x03\xe8\x04\xe8\x05\xe8\x06\xe8\x07\xe8\x08\xe8\x09\xe8\x0a\xe8\x0b\xe8\x0c\xe8\x0d\xe8\x0e\xe8\x0f\xe8\x10\xe8\x11\xe8\x12\xe8\x13\x00\x00\x00\x00", /* cd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x14\xe8\x15\xe8\x16\xe8\x17\xe8\x18\xe8\x19\xe8\x1a\xe8\x1b\xe8\x1c\xe8\x1d\xe8\x1e\xe8\x1f\xe8\x20\xe8\x21\xe8\x22\xe8\x23\xe8\x24\xe8\x25\xe8\x26\xe8\x27\xe8\x28\xe8\x29\xe8\x2a\xe8\x2b\xe8\x2c\xe8\x2d\xe8\x2e\xe8\x2f\xe8\x30\xe8\x31\xe8\x32\xe8\x33\xe8\x34\xe8\x35\xe8\x36\xe8\x37\xe8\x38\xe8\x39\xe8\x3a\xe8\x3b\xe8\x3c\xe8\x3d\xe8\x3e\xe8\x3f\xe8\x40\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52", /* cd80 */ "\x00\x00\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\x00\x00\x00\x00", /* ce00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe8\xff\xe9\x00\xe9\x01\xe9\x02\xe9\x03\xe9\x04\xe9\x05\xe9\x06\xe9\x07\xe9\x08\xe9\x09\xe9\x0a\xe9\x0b\xe9\x0c\xe9\x0d\xe9\x0e", /* ce80 */ "\x00\x00\xe9\x0f\xe9\x10\xe9\x11\xe9\x12\xe9\x13\xe9\x14\xe9\x15\xe9\x16\xe9\x17\xe9\x18\xe9\x19\xe9\x1a\xe9\x1b\xe9\x1c\xe9\x1d\xe9\x1e\xe9\x1f\xe9\x20\xe9\x21\xe9\x22\xe9\x23\xe9\x24\xe9\x25\xe9\x26\xe9\x27\xe9\x28\xe9\x29\xe9\x2a\xe9\x2b\xe9\x2c\xe9\x2d\xe9\x2e\xe9\x2f\xe9\x30\xe9\x31\xe9\x32\xe9\x33\xe9\x34\xe9\x35\xe9\x36\xe9\x37\xe9\x38\xe9\x39\xe9\x3a\xe9\x3b\xe9\x3c\xe9\x3d\xe9\x3e\xe9\x3f\xe9\x40\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xe9\x58\xe9\x59\xe9\x5a\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\x00\x00\x00\x00", /* cf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca", /* cf80 */ "\x00\x00\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xe9\xff\xea\x00\xea\x01\xea\x02\xea\x03\xea\x04\xea\x05\xea\x06\xea\x07\xea\x08\xea\x09\xea\x0a\xea\x0b\xea\x0c\xea\x0d\xea\x0e\xea\x0f\xea\x10\xea\x11\xea\x12\xea\x13\xea\x14\xea\x15\xea\x16\xea\x17\xea\x18\xea\x19\xea\x1a\xea\x1b\xea\x1c\xea\x1d\xea\x1e\xea\x1f\xea\x20\xea\x21\xea\x22\xea\x23\xea\x24\xea\x25\xea\x26\xea\x27\xea\x28\xea\x29\xea\x2a\xea\x2b\xea\x2c\xea\x2d\xea\x2e\xea\x2f\xea\x30\xea\x31\xea\x32\xea\x33\xea\x34\xea\x35\xea\x36\xea\x37\xea\x38\xea\x39\xea\x3a\xea\x3b\xea\x3c\xea\x3d\xea\x3e\xea\x3f\xea\x40\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\x00\x00\x00\x00", /* d000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86", /* d080 */ "\x00\x00\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xea\xff\xeb\x00\xeb\x01\xeb\x02\xeb\x03\x00\x00\x00\x00", /* d100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x04\xeb\x05\xeb\x06\xeb\x07\xeb\x08\xeb\x09\xeb\x0a\xeb\x0b\xeb\x0c\xeb\x0d\xeb\x0e\xeb\x0f\xeb\x10\xeb\x11\xeb\x12\xeb\x13\xeb\x14\xeb\x15\xeb\x16\xeb\x17\xeb\x18\xeb\x19\xeb\x1a\xeb\x1b\xeb\x1c\xeb\x1d\xeb\x1e\xeb\x1f\xeb\x20\xeb\x21\xeb\x22\xeb\x23\xeb\x24\xeb\x25\xeb\x26\xeb\x27\xeb\x28\xeb\x29\xeb\x2a\xeb\x2b\xeb\x2c\xeb\x2d\xeb\x2e\xeb\x2f\xeb\x30\xeb\x31\xeb\x32\xeb\x33\xeb\x34\xeb\x35\xeb\x36\xeb\x37\xeb\x38\xeb\x39\xeb\x3a\xeb\x3b\xeb\x3c\xeb\x3d\xeb\x3e\xeb\x3f\xeb\x40\xeb\x41\xeb\x42", /* d180 */ "\x00\x00\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d\xeb\x5e\xeb\x5f\xeb\x60\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\x00\x00\x00\x00", /* d200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xeb\xd7\xeb\xd8\xeb\xd9\xeb\xda\xeb\xdb\xeb\xdc\xeb\xdd\xeb\xde\xeb\xdf\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xeb\xf2\xeb\xf3\xeb\xf4\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe", /* d280 */ "\x00\x00\xeb\xff\xec\x00\xec\x01\xec\x02\xec\x03\xec\x04\xec\x05\xec\x06\xec\x07\xec\x08\xec\x09\xec\x0a\xec\x0b\xec\x0c\xec\x0d\xec\x0e\xec\x0f\xec\x10\xec\x11\xec\x12\xec\x13\xec\x14\xec\x15\xec\x16\xec\x17\xec\x18\xec\x19\xec\x1a\xec\x1b\xec\x1c\xec\x1d\xec\x1e\xec\x1f\xec\x20\xec\x21\xec\x22\xec\x23\xec\x24\xec\x25\xec\x26\xec\x27\xec\x28\xec\x29\xec\x2a\xec\x2b\xec\x2c\xec\x2d\xec\x2e\xec\x2f\xec\x30\xec\x31\xec\x32\xec\x33\xec\x34\xec\x35\xec\x36\xec\x37\xec\x38\xec\x39\xec\x3a\xec\x3b\xec\x3c\xec\x3d\xec\x3e\xec\x3f\xec\x40\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\x00\x00\x00\x00", /* d300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba", /* d380 */ "\x00\x00\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xec\xff\xed\x00\xed\x01\xed\x02\xed\x03\xed\x04\xed\x05\xed\x06\xed\x07\xed\x08\xed\x09\xed\x0a\xed\x0b\xed\x0c\xed\x0d\xed\x0e\xed\x0f\xed\x10\xed\x11\xed\x12\xed\x13\xed\x14\xed\x15\xed\x16\xed\x17\xed\x18\xed\x19\xed\x1a\xed\x1b\xed\x1c\xed\x1d\xed\x1e\xed\x1f\xed\x20\xed\x21\xed\x22\xed\x23\xed\x24\xed\x25\xed\x26\xed\x27\xed\x28\xed\x29\xed\x2a\xed\x2b\xed\x2c\xed\x2d\xed\x2e\xed\x2f\xed\x30\xed\x31\xed\x32\xed\x33\xed\x34\xed\x35\xed\x36\xed\x37\x00\x00\x00\x00", /* d400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x38\xed\x39\xed\x3a\xed\x3b\xed\x3c\xed\x3d\xed\x3e\xed\x3f\xed\x40\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76", /* d480 */ "\x00\x00\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\x00\x00\x00\x00", /* d500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xed\xff\xee\x00\xee\x01\xee\x02\xee\x03\xee\x04\xee\x05\xee\x06\xee\x07\xee\x08\xee\x09\xee\x0a\xee\x0b\xee\x0c\xee\x0d\xee\x0e\xee\x0f\xee\x10\xee\x11\xee\x12\xee\x13\xee\x14\xee\x15\xee\x16\xee\x17\xee\x18\xee\x19\xee\x1a\xee\x1b\xee\x1c\xee\x1d\xee\x1e\xee\x1f\xee\x20\xee\x21\xee\x22\xee\x23\xee\x24\xee\x25\xee\x26\xee\x27\xee\x28\xee\x29\xee\x2a\xee\x2b\xee\x2c\xee\x2d\xee\x2e\xee\x2f\xee\x30\xee\x31\xee\x32", /* d580 */ "\x00\x00\xee\x33\xee\x34\xee\x35\xee\x36\xee\x37\xee\x38\xee\x39\xee\x3a\xee\x3b\xee\x3c\xee\x3d\xee\x3e\xee\x3f\xee\x40\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\x00\x00\x00\x00", /* d600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee", /* d680 */ "\x00\x00\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xee\xff\xef\x00\xef\x01\xef\x02\xef\x03\xef\x04\xef\x05\xef\x06\xef\x07\xef\x08\xef\x09\xef\x0a\xef\x0b\xef\x0c\xef\x0d\xef\x0e\xef\x0f\xef\x10\xef\x11\xef\x12\xef\x13\xef\x14\xef\x15\xef\x16\xef\x17\xef\x18\xef\x19\xef\x1a\xef\x1b\xef\x1c\xef\x1d\xef\x1e\xef\x1f\xef\x20\xef\x21\xef\x22\xef\x23\xef\x24\xef\x25\xef\x26\xef\x27\xef\x28\xef\x29\xef\x2a\xef\x2b\xef\x2c\xef\x2d\xef\x2e\xef\x2f\xef\x30\xef\x31\xef\x32\xef\x33\xef\x34\xef\x35\xef\x36\xef\x37\xef\x38\xef\x39\xef\x3a\xef\x3b\xef\x3c\xef\x3d\xef\x3e\xef\x3f\xef\x40\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\x00\x00\x00\x00", /* d700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa", /* d780 */ "\x00\x00\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xef\xd2\xef\xd3\xef\xd4\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xef\xff\xf0\x00\xf0\x01\xf0\x02\xf0\x03\xf0\x04\xf0\x05\xf0\x06\xf0\x07\xf0\x08\xf0\x09\xf0\x0a\xf0\x0b\xf0\x0c\xf0\x0d\xf0\x0e\xf0\x0f\xf0\x10\xf0\x11\xf0\x12\xf0\x13\xf0\x14\xf0\x15\xf0\x16\xf0\x17\xf0\x18\xf0\x19\xf0\x1a\xf0\x1b\xf0\x1c\xf0\x1d\xf0\x1e\xf0\x1f\xf0\x20\xf0\x21\xf0\x22\xf0\x23\xf0\x24\xf0\x25\xf0\x26\xf0\x27\x00\x00\x00\x00", /* d800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x28\xf0\x29\xf0\x2a\xf0\x2b\xf0\x2c\xf0\x2d\xf0\x2e\xf0\x2f\xf0\x30\xf0\x31\xf0\x32\xf0\x33\xf0\x34\xf0\x35\xf0\x36\xf0\x37\xf0\x38\xf0\x39\xf0\x3a\xf0\x3b\xf0\x3c\xf0\x3d\xf0\x3e\xf0\x3f\xf0\x40\xf0\x41\xf0\x42\xf0\x43\xf0\x44\xf0\x45\xf0\x46\xf0\x47\xf0\x48\xf0\x49\xf0\x4a\xf0\x4b\xf0\x4c\xf0\x4d\xf0\x4e\xf0\x4f\xf0\x50\xf0\x51\xf0\x52\xf0\x53\xf0\x54\xf0\x55\xf0\x56\xf0\x57\xf0\x58\xf0\x59\xf0\x5a\xf0\x5b\xf0\x5c\xf0\x5d\xf0\x5e\xf0\x5f\xf0\x60\xf0\x61\xf0\x62\xf0\x63\xf0\x64\xf0\x65\xf0\x66", /* d880 */ "\x00\x00\xf0\x67\xf0\x68\xf0\x69\xf0\x6a\xf0\x6b\xf0\x6c\xf0\x6d\xf0\x6e\xf0\x6f\xf0\x70\xf0\x71\xf0\x72\xf0\x73\xf0\x74\xf0\x75\xf0\x76\xf0\x77\xf0\x78\xf0\x79\xf0\x7a\xf0\x7b\xf0\x7c\xf0\x7d\xf0\x7e\xf0\x7f\xf0\x80\xf0\x81\xf0\x82\xf0\x83\xf0\x84\xf0\x85\xf0\x86\xf0\x87\xf0\x88\xf0\x89\xf0\x8a\xf0\x8b\xf0\x8c\xf0\x8d\xf0\x8e\xf0\x8f\xf0\x90\xf0\x91\xf0\x92\xf0\x93\xf0\x94\xf0\x95\xf0\x96\xf0\x97\xf0\x98\xf0\x99\xf0\x9a\xf0\x9b\xf0\x9c\xf0\x9d\xf0\x9e\xf0\x9f\xf0\xa0\xf0\xa1\xf0\xa2\xf0\xa3\xf0\xa4\xf0\xa5\xf0\xa6\xf0\xa7\xf0\xa8\xf0\xa9\xf0\xaa\xf0\xab\xf0\xac\xf0\xad\xf0\xae\xf0\xaf\xf0\xb0\xf0\xb1\xf0\xb2\xf0\xb3\xf0\xb4\xf0\xb5\xf0\xb6\xf0\xb7\xf0\xb8\xf0\xb9\xf0\xba\xf0\xbb\xf0\xbc\xf0\xbd\xf0\xbe\xf0\xbf\xf0\xc0\xf0\xc1\xf0\xc2\xf0\xc3\xf0\xc4\xf0\xc5\xf0\xc6\xf0\xc7\xf0\xc8\xf0\xc9\xf0\xca\xf0\xcb\xf0\xcc\xf0\xcd\xf0\xce\xf0\xcf\xf0\xd0\xf0\xd1\xf0\xd2\xf0\xd3\xf0\xd4\xf0\xd5\xf0\xd6\xf0\xd7\xf0\xd8\xf0\xd9\xf0\xda\xf0\xdb\xf0\xdc\xf0\xdd\xf0\xde\xf0\xdf\xf0\xe0\xf0\xe1\xf0\xe2\xf0\xe3\x00\x00\x00\x00", /* d900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xe4\xf0\xe5\xf0\xe6\xf0\xe7\xf0\xe8\xf0\xe9\xf0\xea\xf0\xeb\xf0\xec\xf0\xed\xf0\xee\xf0\xef\xf0\xf0\xf0\xf1\xf0\xf2\xf0\xf3\xf0\xf4\xf0\xf5\xf0\xf6\xf0\xf7\xf0\xf8\xf0\xf9\xf0\xfa\xf0\xfb\xf0\xfc\xf0\xfd\xf0\xfe\xf0\xff\xf1\x00\xf1\x01\xf1\x02\xf1\x03\xf1\x04\xf1\x05\xf1\x06\xf1\x07\xf1\x08\xf1\x09\xf1\x0a\xf1\x0b\xf1\x0c\xf1\x0d\xf1\x0e\xf1\x0f\xf1\x10\xf1\x11\xf1\x12\xf1\x13\xf1\x14\xf1\x15\xf1\x16\xf1\x17\xf1\x18\xf1\x19\xf1\x1a\xf1\x1b\xf1\x1c\xf1\x1d\xf1\x1e\xf1\x1f\xf1\x20\xf1\x21\xf1\x22", /* d980 */ "\x00\x00\xf1\x23\xf1\x24\xf1\x25\xf1\x26\xf1\x27\xf1\x28\xf1\x29\xf1\x2a\xf1\x2b\xf1\x2c\xf1\x2d\xf1\x2e\xf1\x2f\xf1\x30\xf1\x31\xf1\x32\xf1\x33\xf1\x34\xf1\x35\xf1\x36\xf1\x37\xf1\x38\xf1\x39\xf1\x3a\xf1\x3b\xf1\x3c\xf1\x3d\xf1\x3e\xf1\x3f\xf1\x40\xf1\x41\xf1\x42\xf1\x43\xf1\x44\xf1\x45\xf1\x46\xf1\x47\xf1\x48\xf1\x49\xf1\x4a\xf1\x4b\xf1\x4c\xf1\x4d\xf1\x4e\xf1\x4f\xf1\x50\xf1\x51\xf1\x52\xf1\x53\xf1\x54\xf1\x55\xf1\x56\xf1\x57\xf1\x58\xf1\x59\xf1\x5a\xf1\x5b\xf1\x5c\xf1\x5d\xf1\x5e\xf1\x5f\xf1\x60\xf1\x61\xf1\x62\xf1\x63\xf1\x64\xf1\x65\xf1\x66\xf1\x67\xf1\x68\xf1\x69\xf1\x6a\xf1\x6b\xf1\x6c\xf1\x6d\xf1\x6e\xf1\x6f\xf1\x70\xf1\x71\xf1\x72\xf1\x73\xf1\x74\xf1\x75\xf1\x76\xf1\x77\xf1\x78\xf1\x79\xf1\x7a\xf1\x7b\xf1\x7c\xf1\x7d\xf1\x7e\xf1\x7f\xf1\x80\xf1\x81\xf1\x82\xf1\x83\xf1\x84\xf1\x85\xf1\x86\xf1\x87\xf1\x88\xf1\x89\xf1\x8a\xf1\x8b\xf1\x8c\xf1\x8d\xf1\x8e\xf1\x8f\xf1\x90\xf1\x91\xf1\x92\xf1\x93\xf1\x94\xf1\x95\xf1\x96\xf1\x97\xf1\x98\xf1\x99\xf1\x9a\xf1\x9b\xf1\x9c\xf1\x9d\xf1\x9e\xf1\x9f\x00\x00\x00\x00", /* da00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\xa0\xf1\xa1\xf1\xa2\xf1\xa3\xf1\xa4\xf1\xa5\xf1\xa6\xf1\xa7\xf1\xa8\xf1\xa9\xf1\xaa\xf1\xab\xf1\xac\xf1\xad\xf1\xae\xf1\xaf\xf1\xb0\xf1\xb1\xf1\xb2\xf1\xb3\xf1\xb4\xf1\xb5\xf1\xb6\xf1\xb7\xf1\xb8\xf1\xb9\xf1\xba\xf1\xbb\xf1\xbc\xf1\xbd\xf1\xbe\xf1\xbf\xf1\xc0\xf1\xc1\xf1\xc2\xf1\xc3\xf1\xc4\xf1\xc5\xf1\xc6\xf1\xc7\xf1\xc8\xf1\xc9\xf1\xca\xf1\xcb\xf1\xcc\xf1\xcd\xf1\xce\xf1\xcf\xf1\xd0\xf1\xd1\xf1\xd2\xf1\xd3\xf1\xd4\xf1\xd5\xf1\xd6\xf1\xd7\xf1\xd8\xf1\xd9\xf1\xda\xf1\xdb\xf1\xdc\xf1\xdd\xf1\xde", /* da80 */ "\x00\x00\xf1\xdf\xf1\xe0\xf1\xe1\xf1\xe2\xf1\xe3\xf1\xe4\xf1\xe5\xf1\xe6\xf1\xe7\xf1\xe8\xf1\xe9\xf1\xea\xf1\xeb\xf1\xec\xf1\xed\xf1\xee\xf1\xef\xf1\xf0\xf1\xf1\xf1\xf2\xf1\xf3\xf1\xf4\xf1\xf5\xf1\xf6\xf1\xf7\xf1\xf8\xf1\xf9\xf1\xfa\xf1\xfb\xf1\xfc\xf1\xfd\xf1\xfe\xf1\xff\xf2\x00\xf2\x01\xf2\x02\xf2\x03\xf2\x04\xf2\x05\xf2\x06\xf2\x07\xf2\x08\xf2\x09\xf2\x0a\xf2\x0b\xf2\x0c\xf2\x0d\xf2\x0e\xf2\x0f\xf2\x10\xf2\x11\xf2\x12\xf2\x13\xf2\x14\xf2\x15\xf2\x16\xf2\x17\xf2\x18\xf2\x19\xf2\x1a\xf2\x1b\xf2\x1c\xf2\x1d\xf2\x1e\xf2\x1f\xf2\x20\xf2\x21\xf2\x22\xf2\x23\xf2\x24\xf2\x25\xf2\x26\xf2\x27\xf2\x28\xf2\x29\xf2\x2a\xf2\x2b\xf2\x2c\xf2\x2d\xf2\x2e\xf2\x2f\xf2\x30\xf2\x31\xf2\x32\xf2\x33\xf2\x34\xf2\x35\xf2\x36\xf2\x37\xf2\x38\xf2\x39\xf2\x3a\xf2\x3b\xf2\x3c\xf2\x3d\xf2\x3e\xf2\x3f\xf2\x40\xf2\x41\xf2\x42\xf2\x43\xf2\x44\xf2\x45\xf2\x46\xf2\x47\xf2\x48\xf2\x49\xf2\x4a\xf2\x4b\xf2\x4c\xf2\x4d\xf2\x4e\xf2\x4f\xf2\x50\xf2\x51\xf2\x52\xf2\x53\xf2\x54\xf2\x55\xf2\x56\xf2\x57\xf2\x58\xf2\x59\xf2\x5a\xf2\x5b\x00\x00\x00\x00", /* db00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x5c\xf2\x5d\xf2\x5e\xf2\x5f\xf2\x60\xf2\x61\xf2\x62\xf2\x63\xf2\x64\xf2\x65\xf2\x66\xf2\x67\xf2\x68\xf2\x69\xf2\x6a\xf2\x6b\xf2\x6c\xf2\x6d\xf2\x6e\xf2\x6f\xf2\x70\xf2\x71\xf2\x72\xf2\x73\xf2\x74\xf2\x75\xf2\x76\xf2\x77\xf2\x78\xf2\x79\xf2\x7a\xf2\x7b\xf2\x7c\xf2\x7d\xf2\x7e\xf2\x7f\xf2\x80\xf2\x81\xf2\x82\xf2\x83\xf2\x84\xf2\x85\xf2\x86\xf2\x87\xf2\x88\xf2\x89\xf2\x8a\xf2\x8b\xf2\x8c\xf2\x8d\xf2\x8e\xf2\x8f\xf2\x90\xf2\x91\xf2\x92\xf2\x93\xf2\x94\xf2\x95\xf2\x96\xf2\x97\xf2\x98\xf2\x99\xf2\x9a", /* db80 */ "\x00\x00\xf2\x9b\xf2\x9c\xf2\x9d\xf2\x9e\xf2\x9f\xf2\xa0\xf2\xa1\xf2\xa2\xf2\xa3\xf2\xa4\xf2\xa5\xf2\xa6\xf2\xa7\xf2\xa8\xf2\xa9\xf2\xaa\xf2\xab\xf2\xac\xf2\xad\xf2\xae\xf2\xaf\xf2\xb0\xf2\xb1\xf2\xb2\xf2\xb3\xf2\xb4\xf2\xb5\xf2\xb6\xf2\xb7\xf2\xb8\xf2\xb9\xf2\xba\xf2\xbb\xf2\xbc\xf2\xbd\xf2\xbe\xf2\xbf\xf2\xc0\xf2\xc1\xf2\xc2\xf2\xc3\xf2\xc4\xf2\xc5\xf2\xc6\xf2\xc7\xf2\xc8\xf2\xc9\xf2\xca\xf2\xcb\xf2\xcc\xf2\xcd\xf2\xce\xf2\xcf\xf2\xd0\xf2\xd1\xf2\xd2\xf2\xd3\xf2\xd4\xf2\xd5\xf2\xd6\xf2\xd7\xf2\xd8\xf2\xd9\xf2\xda\xf2\xdb\xf2\xdc\xf2\xdd\xf2\xde\xf2\xdf\xf2\xe0\xf2\xe1\xf2\xe2\xf2\xe3\xf2\xe4\xf2\xe5\xf2\xe6\xf2\xe7\xf2\xe8\xf2\xe9\xf2\xea\xf2\xeb\xf2\xec\xf2\xed\xf2\xee\xf2\xef\xf2\xf0\xf2\xf1\xf2\xf2\xf2\xf3\xf2\xf4\xf2\xf5\xf2\xf6\xf2\xf7\xf2\xf8\xf2\xf9\xf2\xfa\xf2\xfb\xf2\xfc\xf2\xfd\xf2\xfe\xf2\xff\xf3\x00\xf3\x01\xf3\x02\xf3\x03\xf3\x04\xf3\x05\xf3\x06\xf3\x07\xf3\x08\xf3\x09\xf3\x0a\xf3\x0b\xf3\x0c\xf3\x0d\xf3\x0e\xf3\x0f\xf3\x10\xf3\x11\xf3\x12\xf3\x13\xf3\x14\xf3\x15\xf3\x16\xf3\x17\x00\x00\x00\x00", /* dc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x18\xf3\x19\xf3\x1a\xf3\x1b\xf3\x1c\xf3\x1d\xf3\x1e\xf3\x1f\xf3\x20\xf3\x21\xf3\x22\xf3\x23\xf3\x24\xf3\x25\xf3\x26\xf3\x27\xf3\x28\xf3\x29\xf3\x2a\xf3\x2b\xf3\x2c\xf3\x2d\xf3\x2e\xf3\x2f\xf3\x30\xf3\x31\xf3\x32\xf3\x33\xf3\x34\xf3\x35\xf3\x36\xf3\x37\xf3\x38\xf3\x39\xf3\x3a\xf3\x3b\xf3\x3c\xf3\x3d\xf3\x3e\xf3\x3f\xf3\x40\xf3\x41\xf3\x42\xf3\x43\xf3\x44\xf3\x45\xf3\x46\xf3\x47\xf3\x48\xf3\x49\xf3\x4a\xf3\x4b\xf3\x4c\xf3\x4d\xf3\x4e\xf3\x4f\xf3\x50\xf3\x51\xf3\x52\xf3\x53\xf3\x54\xf3\x55\xf3\x56", /* dc80 */ "\x00\x00\xf3\x57\xf3\x58\xf3\x59\xf3\x5a\xf3\x5b\xf3\x5c\xf3\x5d\xf3\x5e\xf3\x5f\xf3\x60\xf3\x61\xf3\x62\xf3\x63\xf3\x64\xf3\x65\xf3\x66\xf3\x67\xf3\x68\xf3\x69\xf3\x6a\xf3\x6b\xf3\x6c\xf3\x6d\xf3\x6e\xf3\x6f\xf3\x70\xf3\x71\xf3\x72\xf3\x73\xf3\x74\xf3\x75\xf3\x76\xf3\x77\xf3\x78\xf3\x79\xf3\x7a\xf3\x7b\xf3\x7c\xf3\x7d\xf3\x7e\xf3\x7f\xf3\x80\xf3\x81\xf3\x82\xf3\x83\xf3\x84\xf3\x85\xf3\x86\xf3\x87\xf3\x88\xf3\x89\xf3\x8a\xf3\x8b\xf3\x8c\xf3\x8d\xf3\x8e\xf3\x8f\xf3\x90\xf3\x91\xf3\x92\xf3\x93\xf3\x94\xf3\x95\xf3\x96\xf3\x97\xf3\x98\xf3\x99\xf3\x9a\xf3\x9b\xf3\x9c\xf3\x9d\xf3\x9e\xf3\x9f\xf3\xa0\xf3\xa1\xf3\xa2\xf3\xa3\xf3\xa4\xf3\xa5\xf3\xa6\xf3\xa7\xf3\xa8\xf3\xa9\xf3\xaa\xf3\xab\xf3\xac\xf3\xad\xf3\xae\xf3\xaf\xf3\xb0\xf3\xb1\xf3\xb2\xf3\xb3\xf3\xb4\xf3\xb5\xf3\xb6\xf3\xb7\xf3\xb8\xf3\xb9\xf3\xba\xf3\xbb\xf3\xbc\xf3\xbd\xf3\xbe\xf3\xbf\xf3\xc0\xf3\xc1\xf3\xc2\xf3\xc3\xf3\xc4\xf3\xc5\xf3\xc6\xf3\xc7\xf3\xc8\xf3\xc9\xf3\xca\xf3\xcb\xf3\xcc\xf3\xcd\xf3\xce\xf3\xcf\xf3\xd0\xf3\xd1\xf3\xd2\xf3\xd3\x00\x00\x00\x00", /* dd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xd4\xf3\xd5\xf3\xd6\xf3\xd7\xf3\xd8\xf3\xd9\xf3\xda\xf3\xdb\xf3\xdc\xf3\xdd\xf3\xde\xf3\xdf\xf3\xe0\xf3\xe1\xf3\xe2\xf3\xe3\xf3\xe4\xf3\xe5\xf3\xe6\xf3\xe7\xf3\xe8\xf3\xe9\xf3\xea\xf3\xeb\xf3\xec\xf3\xed\xf3\xee\xf3\xef\xf3\xf0\xf3\xf1\xf3\xf2\xf3\xf3\xf3\xf4\xf3\xf5\xf3\xf6\xf3\xf7\xf3\xf8\xf3\xf9\xf3\xfa\xf3\xfb\xf3\xfc\xf3\xfd\xf3\xfe\xf3\xff\xf4\x00\xf4\x01\xf4\x02\xf4\x03\xf4\x04\xf4\x05\xf4\x06\xf4\x07\xf4\x08\xf4\x09\xf4\x0a\xf4\x0b\xf4\x0c\xf4\x0d\xf4\x0e\xf4\x0f\xf4\x10\xf4\x11\xf4\x12", /* dd80 */ "\x00\x00\xf4\x13\xf4\x14\xf4\x15\xf4\x16\xf4\x17\xf4\x18\xf4\x19\xf4\x1a\xf4\x1b\xf4\x1c\xf4\x1d\xf4\x1e\xf4\x1f\xf4\x20\xf4\x21\xf4\x22\xf4\x23\xf4\x24\xf4\x25\xf4\x26\xf4\x27\xf4\x28\xf4\x29\xf4\x2a\xf4\x2b\xf4\x2c\xf4\x2d\xf4\x2e\xf4\x2f\xf4\x30\xf4\x31\xf4\x32\xf4\x33\xf4\x34\xf4\x35\xf4\x36\xf4\x37\xf4\x38\xf4\x39\xf4\x3a\xf4\x3b\xf4\x3c\xf4\x3d\xf4\x3e\xf4\x3f\xf4\x40\xf4\x41\xf4\x42\xf4\x43\xf4\x44\xf4\x45\xf4\x46\xf4\x47\xf4\x48\xf4\x49\xf4\x4a\xf4\x4b\xf4\x4c\xf4\x4d\xf4\x4e\xf4\x4f\xf4\x50\xf4\x51\xf4\x52\xf4\x53\xf4\x54\xf4\x55\xf4\x56\xf4\x57\xf4\x58\xf4\x59\xf4\x5a\xf4\x5b\xf4\x5c\xf4\x5d\xf4\x5e\xf4\x5f\xf4\x60\xf4\x61\xf4\x62\xf4\x63\xf4\x64\xf4\x65\xf4\x66\xf4\x67\xf4\x68\xf4\x69\xf4\x6a\xf4\x6b\xf4\x6c\xf4\x6d\xf4\x6e\xf4\x6f\xf4\x70\xf4\x71\xf4\x72\xf4\x73\xf4\x74\xf4\x75\xf4\x76\xf4\x77\xf4\x78\xf4\x79\xf4\x7a\xf4\x7b\xf4\x7c\xf4\x7d\xf4\x7e\xf4\x7f\xf4\x80\xf4\x81\xf4\x82\xf4\x83\xf4\x84\xf4\x85\xf4\x86\xf4\x87\xf4\x88\xf4\x89\xf4\x8a\xf4\x8b\xf4\x8c\xf4\x8d\xf4\x8e\xf4\x8f\x00\x00\x00\x00", /* de00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x90\xf4\x91\xf4\x92\xf4\x93\xf4\x94\xf4\x95\xf4\x96\xf4\x97\xf4\x98\xf4\x99\xf4\x9a\xf4\x9b\xf4\x9c\xf4\x9d\xf4\x9e\xf4\x9f\xf4\xa0\xf4\xa1\xf4\xa2\xf4\xa3\xf4\xa4\xf4\xa5\xf4\xa6\xf4\xa7\xf4\xa8\xf4\xa9\xf4\xaa\xf4\xab\xf4\xac\xf4\xad\xf4\xae\xf4\xaf\xf4\xb0\xf4\xb1\xf4\xb2\xf4\xb3\xf4\xb4\xf4\xb5\xf4\xb6\xf4\xb7\xf4\xb8\xf4\xb9\xf4\xba\xf4\xbb\xf4\xbc\xf4\xbd\xf4\xbe\xf4\xbf\xf4\xc0\xf4\xc1\xf4\xc2\xf4\xc3\xf4\xc4\xf4\xc5\xf4\xc6\xf4\xc7\xf4\xc8\xf4\xc9\xf4\xca\xf4\xcb\xf4\xcc\xf4\xcd\xf4\xce", /* de80 */ "\x00\x00\xf4\xcf\xf4\xd0\xf4\xd1\xf4\xd2\xf4\xd3\xf4\xd4\xf4\xd5\xf4\xd6\xf4\xd7\xf4\xd8\xf4\xd9\xf4\xda\xf4\xdb\xf4\xdc\xf4\xdd\xf4\xde\xf4\xdf\xf4\xe0\xf4\xe1\xf4\xe2\xf4\xe3\xf4\xe4\xf4\xe5\xf4\xe6\xf4\xe7\xf4\xe8\xf4\xe9\xf4\xea\xf4\xeb\xf4\xec\xf4\xed\xf4\xee\xf4\xef\xf4\xf0\xf4\xf1\xf4\xf2\xf4\xf3\xf4\xf4\xf4\xf5\xf4\xf6\xf4\xf7\xf4\xf8\xf4\xf9\xf4\xfa\xf4\xfb\xf4\xfc\xf4\xfd\xf4\xfe\xf4\xff\xf5\x00\xf5\x01\xf5\x02\xf5\x03\xf5\x04\xf5\x05\xf5\x06\xf5\x07\xf5\x08\xf5\x09\xf5\x0a\xf5\x0b\xf5\x0c\xf5\x0d\xf5\x0e\xf5\x0f\xf5\x10\xf5\x11\xf5\x12\xf5\x13\xf5\x14\xf5\x15\xf5\x16\xf5\x17\xf5\x18\xf5\x19\xf5\x1a\xf5\x1b\xf5\x1c\xf5\x1d\xf5\x1e\xf5\x1f\xf5\x20\xf5\x21\xf5\x22\xf5\x23\xf5\x24\xf5\x25\xf5\x26\xf5\x27\xf5\x28\xf5\x29\xf5\x2a\xf5\x2b\xf5\x2c\xf5\x2d\xf5\x2e\xf5\x2f\xf5\x30\xf5\x31\xf5\x32\xf5\x33\xf5\x34\xf5\x35\xf5\x36\xf5\x37\xf5\x38\xf5\x39\xf5\x3a\xf5\x3b\xf5\x3c\xf5\x3d\xf5\x3e\xf5\x3f\xf5\x40\xf5\x41\xf5\x42\xf5\x43\xf5\x44\xf5\x45\xf5\x46\xf5\x47\xf5\x48\xf5\x49\xf5\x4a\xf5\x4b\x00\x00\x00\x00", /* df00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x4c\xf5\x4d\xf5\x4e\xf5\x4f\xf5\x50\xf5\x51\xf5\x52\xf5\x53\xf5\x54\xf5\x55\xf5\x56\xf5\x57\xf5\x58\xf5\x59\xf5\x5a\xf5\x5b\xf5\x5c\xf5\x5d\xf5\x5e\xf5\x5f\xf5\x60\xf5\x61\xf5\x62\xf5\x63\xf5\x64\xf5\x65\xf5\x66\xf5\x67\xf5\x68\xf5\x69\xf5\x6a\xf5\x6b\xf5\x6c\xf5\x6d\xf5\x6e\xf5\x6f\xf5\x70\xf5\x71\xf5\x72\xf5\x73\xf5\x74\xf5\x75\xf5\x76\xf5\x77\xf5\x78\xf5\x79\xf5\x7a\xf5\x7b\xf5\x7c\xf5\x7d\xf5\x7e\xf5\x7f\xf5\x80\xf5\x81\xf5\x82\xf5\x83\xf5\x84\xf5\x85\xf5\x86\xf5\x87\xf5\x88\xf5\x89\xf5\x8a", /* df80 */ "\x00\x00\xf5\x8b\xf5\x8c\xf5\x8d\xf5\x8e\xf5\x8f\xf5\x90\xf5\x91\xf5\x92\xf5\x93\xf5\x94\xf5\x95\xf5\x96\xf5\x97\xf5\x98\xf5\x99\xf5\x9a\xf5\x9b\xf5\x9c\xf5\x9d\xf5\x9e\xf5\x9f\xf5\xa0\xf5\xa1\xf5\xa2\xf5\xa3\xf5\xa4\xf5\xa5\xf5\xa6\xf5\xa7\xf5\xa8\xf5\xa9\xf5\xaa\xf5\xab\xf5\xac\xf5\xad\xf5\xae\xf5\xaf\xf5\xb0\xf5\xb1\xf5\xb2\xf5\xb3\xf5\xb4\xf5\xb5\xf5\xb6\xf5\xb7\xf5\xb8\xf5\xb9\xf5\xba\xf5\xbb\xf5\xbc\xf5\xbd\xf5\xbe\xf5\xbf\xf5\xc0\xf5\xc1\xf5\xc2\xf5\xc3\xf5\xc4\xf5\xc5\xf5\xc6\xf5\xc7\xf5\xc8\xf5\xc9\xf5\xca\xf5\xcb\xf5\xcc\xf5\xcd\xf5\xce\xf5\xcf\xf5\xd0\xf5\xd1\xf5\xd2\xf5\xd3\xf5\xd4\xf5\xd5\xf5\xd6\xf5\xd7\xf5\xd8\xf5\xd9\xf5\xda\xf5\xdb\xf5\xdc\xf5\xdd\xf5\xde\xf5\xdf\xf5\xe0\xf5\xe1\xf5\xe2\xf5\xe3\xf5\xe4\xf5\xe5\xf5\xe6\xf5\xe7\xf5\xe8\xf5\xe9\xf5\xea\xf5\xeb\xf5\xec\xf5\xed\xf5\xee\xf5\xef\xf5\xf0\xf5\xf1\xf5\xf2\xf5\xf3\xf5\xf4\xf5\xf5\xf5\xf6\xf5\xf7\xf5\xf8\xf5\xf9\xf5\xfa\xf5\xfb\xf5\xfc\xf5\xfd\xf5\xfe\xf5\xff\xf6\x00\xf6\x01\xf6\x02\xf6\x03\xf6\x04\xf6\x05\xf6\x06\xf6\x07\x00\x00\x00\x00", /* e000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x08\xf6\x09\xf6\x0a\xf6\x0b\xf6\x0c\xf6\x0d\xf6\x0e\xf6\x0f\xf6\x10\xf6\x11\xf6\x12\xf6\x13\xf6\x14\xf6\x15\xf6\x16\xf6\x17\xf6\x18\xf6\x19\xf6\x1a\xf6\x1b\xf6\x1c\xf6\x1d\xf6\x1e\xf6\x1f\xf6\x20\xf6\x21\xf6\x22\xf6\x23\xf6\x24\xf6\x25\xf6\x26\xf6\x27\xf6\x28\xf6\x29\xf6\x2a\xf6\x2b\xf6\x2c\xf6\x2d\xf6\x2e\xf6\x2f\xf6\x30\xf6\x31\xf6\x32\xf6\x33\xf6\x34\xf6\x35\xf6\x36\xf6\x37\xf6\x38\xf6\x39\xf6\x3a\xf6\x3b\xf6\x3c\xf6\x3d\xf6\x3e\xf6\x3f\xf6\x40\xf6\x41\xf6\x42\xf6\x43\xf6\x44\xf6\x45\xf6\x46", /* e080 */ "\x00\x00\xf6\x47\xf6\x48\xf6\x49\xf6\x4a\xf6\x4b\xf6\x4c\xf6\x4d\xf6\x4e\xf6\x4f\xf6\x50\xf6\x51\xf6\x52\xf6\x53\xf6\x54\xf6\x55\xf6\x56\xf6\x57\xf6\x58\xf6\x59\xf6\x5a\xf6\x5b\xf6\x5c\xf6\x5d\xf6\x5e\xf6\x5f\xf6\x60\xf6\x61\xf6\x62\xf6\x63\xf6\x64\xf6\x65\xf6\x66\xf6\x67\xf6\x68\xf6\x69\xf6\x6a\xf6\x6b\xf6\x6c\xf6\x6d\xf6\x6e\xf6\x6f\xf6\x70\xf6\x71\xf6\x72\xf6\x73\xf6\x74\xf6\x75\xf6\x76\xf6\x77\xf6\x78\xf6\x79\xf6\x7a\xf6\x7b\xf6\x7c\xf6\x7d\xf6\x7e\xf6\x7f\xf6\x80\xf6\x81\xf6\x82\xf6\x83\xf6\x84\xf6\x85\xf6\x86\xf6\x87\xf6\x88\xf6\x89\xf6\x8a\xf6\x8b\xf6\x8c\xf6\x8d\xf6\x8e\xf6\x8f\xf6\x90\xf6\x91\xf6\x92\xf6\x93\xf6\x94\xf6\x95\xf6\x96\xf6\x97\xf6\x98\xf6\x99\xf6\x9a\xf6\x9b\xf6\x9c\xf6\x9d\xf6\x9e\xf6\x9f\xf6\xa0\xf6\xa1\xf6\xa2\xf6\xa3\xf6\xa4\xf6\xa5\xf6\xa6\xf6\xa7\xf6\xa8\xf6\xa9\xf6\xaa\xf6\xab\xf6\xac\xf6\xad\xf6\xae\xf6\xaf\xf6\xb0\xf6\xb1\xf6\xb2\xf6\xb3\xf6\xb4\xf6\xb5\xf6\xb6\xf6\xb7\xf6\xb8\xf6\xb9\xf6\xba\xf6\xbb\xf6\xbc\xf6\xbd\xf6\xbe\xf6\xbf\xf6\xc0\xf6\xc1\xf6\xc2\xf6\xc3\x00\x00\x00\x00", /* e100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xc4\xf6\xc5\xf6\xc6\xf6\xc7\xf6\xc8\xf6\xc9\xf6\xca\xf6\xcb\xf6\xcc\xf6\xcd\xf6\xce\xf6\xcf\xf6\xd0\xf6\xd1\xf6\xd2\xf6\xd3\xf6\xd4\xf6\xd5\xf6\xd6\xf6\xd7\xf6\xd8\xf6\xd9\xf6\xda\xf6\xdb\xf6\xdc\xf6\xdd\xf6\xde\xf6\xdf\xf6\xe0\xf6\xe1\xf6\xe2\xf6\xe3\xf6\xe4\xf6\xe5\xf6\xe6\xf6\xe7\xf6\xe8\xf6\xe9\xf6\xea\xf6\xeb\xf6\xec\xf6\xed\xf6\xee\xf6\xef\xf6\xf0\xf6\xf1\xf6\xf2\xf6\xf3\xf6\xf4\xf6\xf5\xf6\xf6\xf6\xf7\xf6\xf8\xf6\xf9\xf6\xfa\xf6\xfb\xf6\xfc\xf6\xfd\xf6\xfe\xf6\xff\xf7\x00\xf7\x01\xf7\x02", /* e180 */ "\x00\x00\xf7\x03\xf7\x04\xf7\x05\xf7\x06\xf7\x07\xf7\x08\xf7\x09\xf7\x0a\xf7\x0b\xf7\x0c\xf7\x0d\xf7\x0e\xf7\x0f\xf7\x10\xf7\x11\xf7\x12\xf7\x13\xf7\x14\xf7\x15\xf7\x16\xf7\x17\xf7\x18\xf7\x19\xf7\x1a\xf7\x1b\xf7\x1c\xf7\x1d\xf7\x1e\xf7\x1f\xf7\x20\xf7\x21\xf7\x22\xf7\x23\xf7\x24\xf7\x25\xf7\x26\xf7\x27\xf7\x28\xf7\x29\xf7\x2a\xf7\x2b\xf7\x2c\xf7\x2d\xf7\x2e\xf7\x2f\xf7\x30\xf7\x31\xf7\x32\xf7\x33\xf7\x34\xf7\x35\xf7\x36\xf7\x37\xf7\x38\xf7\x39\xf7\x3a\xf7\x3b\xf7\x3c\xf7\x3d\xf7\x3e\xf7\x3f\xf7\x40\xf7\x41\xf7\x42\xf7\x43\xf7\x44\xf7\x45\xf7\x46\xf7\x47\xf7\x48\xf7\x49\xf7\x4a\xf7\x4b\xf7\x4c\xf7\x4d\xf7\x4e\xf7\x4f\xf7\x50\xf7\x51\xf7\x52\xf7\x53\xf7\x54\xf7\x55\xf7\x56\xf7\x57\xf7\x58\xf7\x59\xf7\x5a\xf7\x5b\xf7\x5c\xf7\x5d\xf7\x5e\xf7\x5f\xf7\x60\xf7\x61\xf7\x62\xf7\x63\xf7\x64\xf7\x65\xf7\x66\xf7\x67\xf7\x68\xf7\x69\xf7\x6a\xf7\x6b\xf7\x6c\xf7\x6d\xf7\x6e\xf7\x6f\xf7\x70\xf7\x71\xf7\x72\xf7\x73\xf7\x74\xf7\x75\xf7\x76\xf7\x77\xf7\x78\xf7\x79\xf7\x7a\xf7\x7b\xf7\x7c\xf7\x7d\xf7\x7e\xf7\x7f\x00\x00\x00\x00", /* e200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x80\xf7\x81\xf7\x82\xf7\x83\xf7\x84\xf7\x85\xf7\x86\xf7\x87\xf7\x88\xf7\x89\xf7\x8a\xf7\x8b\xf7\x8c\xf7\x8d\xf7\x8e\xf7\x8f\xf7\x90\xf7\x91\xf7\x92\xf7\x93\xf7\x94\xf7\x95\xf7\x96\xf7\x97\xf7\x98\xf7\x99\xf7\x9a\xf7\x9b\xf7\x9c\xf7\x9d\xf7\x9e\xf7\x9f\xf7\xa0\xf7\xa1\xf7\xa2\xf7\xa3\xf7\xa4\xf7\xa5\xf7\xa6\xf7\xa7\xf7\xa8\xf7\xa9\xf7\xaa\xf7\xab\xf7\xac\xf7\xad\xf7\xae\xf7\xaf\xf7\xb0\xf7\xb1\xf7\xb2\xf7\xb3\xf7\xb4\xf7\xb5\xf7\xb6\xf7\xb7\xf7\xb8\xf7\xb9\xf7\xba\xf7\xbb\xf7\xbc\xf7\xbd\xf7\xbe", /* e280 */ "\x00\x00\xf7\xbf\xf7\xc0\xf7\xc1\xf7\xc2\xf7\xc3\xf7\xc4\xf7\xc5\xf7\xc6\xf7\xc7\xf7\xc8\xf7\xc9\xf7\xca\xf7\xcb\xf7\xcc\xf7\xcd\xf7\xce\xf7\xcf\xf7\xd0\xf7\xd1\xf7\xd2\xf7\xd3\xf7\xd4\xf7\xd5\xf7\xd6\xf7\xd7\xf7\xd8\xf7\xd9\xf7\xda\xf7\xdb\xf7\xdc\xf7\xdd\xf7\xde\xf7\xdf\xf7\xe0\xf7\xe1\xf7\xe2\xf7\xe3\xf7\xe4\xf7\xe5\xf7\xe6\xf7\xe7\xf7\xe8\xf7\xe9\xf7\xea\xf7\xeb\xf7\xec\xf7\xed\xf7\xee\xf7\xef\xf7\xf0\xf7\xf1\xf7\xf2\xf7\xf3\xf7\xf4\xf7\xf5\xf7\xf6\xf7\xf7\xf7\xf8\xf7\xf9\xf7\xfa\xf7\xfb\xf7\xfc\xf7\xfd\xf7\xfe\xf7\xff\xf8\x00\xf8\x01\xf8\x02\xf8\x03\xf8\x04\xf8\x05\xf8\x06\xf8\x07\xf8\x08\xf8\x09\xf8\x0a\xf8\x0b\xf8\x0c\xf8\x0d\xf8\x0e\xf8\x0f\xf8\x10\xf8\x11\xf8\x12\xf8\x13\xf8\x14\xf8\x15\xf8\x16\xf8\x17\xf8\x18\xf8\x19\xf8\x1a\xf8\x1b\xf8\x1c\xf8\x1d\xf8\x1e\xf8\x1f\xf8\x20\xf8\x21\xf8\x22\xf8\x23\xf8\x24\xf8\x25\xf8\x26\xf8\x27\xf8\x28\xf8\x29\xf8\x2a\xf8\x2b\xf8\x2c\xf8\x2d\xf8\x2e\xf8\x2f\xf8\x30\xf8\x31\xf8\x32\xf8\x33\xf8\x34\xf8\x35\xf8\x36\xf8\x37\xf8\x38\xf8\x39\xf8\x3a\xf8\x3b\x00\x00\x00\x00", /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp1388", "0x03a90345" /* 937, 837 */, "gb18030.2000-1,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-1388_P103-2001 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x88\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x00\x00\x43\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x44\x46\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x48\x46\x46\x46\x5a\x00\x00\x46\x4c\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x46\x50\x46\x4e\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x46\x54\x46\x52\x00\x00\x46\x59\x00\x00\x00\x00\x00\x00", /* 0100 */ "\x00\x00\x46\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5d\x00\x00\x00\x00\x00\x00\x46\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x46\x4b\x00\x00\x46\x4f\x00\x00\x46\x53\x00\x00\x46\x55\x00\x00\x46\x56\x00\x00\x46\x57\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x46\x00\x00\x45\x45\xcd\x41\xcd\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ "\x47\x5d\x47\x5e\x47\x5f\x47\x60\x47\x61\x47\x62\x47\x63\x47\x64\x47\x65\x47\x66\x47\x67\x47\x68\x47\x69\x47\x6a\x47\x6b\x47\x6c\x47\x6d\x47\x6e\x47\x6f\x47\x70\x47\x71\x47\x72\x47\x73\x47\x74\x47\x75\x47\x76\x47\x77\x47\x78\x47\x79\x47\x7a\x47\x7b\x47\x7c\x47\x7d\x47\x7e\x47\x7f\x47\x80\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8d\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x47\xa1\x47\xa2\x47\xa3\x47\xa4\x47\xa5\x47\xa6\x47\xa7\x47\xa8\x47\xa9\x47\xaa\x47\xab\x47\xac\x47\xad\x47\xae\x47\xaf\x47\xb0\x47\xb1\x47\xb2\x47\xb3\x47\xb4\x47\xb5\x47\xb6\x47\xb7\x47\xb8\x47\xb9\x47\xba\x47\xbb\x47\xbc\x47\xbd\x47\xbe\x47\xbf\x47\xc0\x47\xc1\x47\xc2\x47\xc3\x47\xc4\x47\xc5\x47\xc6\x47\xc7\x47\xc8\x47\xc9\x47\xca\x47\xcb\x47\xcc\x47\xcd\x47\xce\x47\xcf\x47\xd0\x47\xd1\x47\xd2\x47\xd3\x47\xd4\x47\xd5\x47\xd6\x47\xd7\x47\xd8\x47\xd9\x47\xda\x47\xdb\x47\xdc", /* 0680 */ "\x47\xdd\x47\xde\x47\xdf\x47\xe0\x47\xe1\x47\xe2\x47\xe3\x47\xe4\x47\xe5\x47\xe6\x47\xe7\x47\xe8\x47\xe9\x47\xea\x47\xeb\x47\xec\x47\xed\x47\xee\x47\xef\x47\xf0\x47\xf1\x47\xf2\x47\xf3\x47\xf4\x47\xf5\x47\xf6\x47\xf7\x47\xf8\x47\xf9\x47\xfa\x47\xfb\x47\xfc\x47\xfd\x47\xfe\x48\x41\x48\x42\x48\x43\x48\x44\x48\x45\x48\x46\x48\x47\x48\x48\x48\x49\x48\x4a\x48\x4b\x48\x4c\x48\x4d\x48\x4e\x48\x4f\x48\x50\x48\x51\x48\x52\x48\x53\x48\x54\x48\x55\x48\x56\x48\x57\x48\x58\x48\x59\x48\x5a\x48\x5b\x48\x5c\x48\x5d\x48\x5e\x48\x5f\x48\x60\x48\x61\x48\x62\x48\x63\x48\x64\x48\x65\x48\x66\x48\x67\x48\x68\x48\x69\x48\x6a\x48\x6b\x48\x6c\x48\x6d\x48\x6e\x48\x6f\x48\x70\x48\x71\x48\x72\x48\x73\x48\x74\x48\x75\x48\x76\x48\x77\x48\x78\x48\x79\x48\x7a\x48\x7b\x48\x7c\x48\x7d\x48\x7e\x48\x7f\x48\x80\x48\x81\x48\x82\x48\x83\x48\x84\x48\x85\x48\x86\x48\x87\x48\x88\x48\x89\x48\x8a\x48\x8b\x48\x8c\x48\x8d\x48\x8e\x48\x8f\x48\x90\x48\x91\x48\x92\x48\x93\x48\x94\x48\x95\x48\x96\x48\x97\x48\x98\x48\x99\x48\x9a\x48\x9b\x48\x9c\x48\x9d\x48\x9e", /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ "\x6d\x41\x6d\x42\x6d\x43\x6d\x44\x6d\x45\x6d\x46\x6d\x47\x6d\x48\x6d\x49\x6d\x4a\x6d\x4b\x6d\x4c\x6d\x4d\x6d\x4e\x6d\x4f\x6d\x50\x6d\x51\x6d\x52\x6d\x53\x6d\x54\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x59\x6d\x5a\x6d\x5b\x6d\x5c\x6d\x5d\x6d\x5e\x6d\x5f\x6d\x60\x6d\x61\x6d\x62\x6d\x63\x6d\x64\x6d\x65\x6d\x66\x6d\x67\x6d\x68\x6d\x69\x6d\x6a\x6d\x6b\x6d\x6c\x6d\x6d\x6d\x6e\x6d\x6f\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x74\x6d\x75\x6d\x76\x6d\x77\x6d\x78\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7c\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x82\x6d\x83\x6d\x84\x6d\x85\x6d\x86\x6d\x87\x6d\x88\x6d\x89\x6d\x8a\x6d\x8b\x6d\x8c\x6d\x8d\x6d\x8e\x6d\x8f\x6d\x90\x6d\x91\x6d\x92\x6d\x93\x6d\x94\x6d\x95\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9b\x6d\x9c\x6d\x9d\x6d\x9e\x6d\x9f\x6d\xa0\x6d\xa1\x6d\xa2\x6d\xa3\x6d\xa4\x6d\xa5\x6d\xa6\x6d\xa7\x6d\xa8\x6d\xa9\x6d\xaa\x6d\xab\x6d\xac\x6d\xad\x6d\xae\x6d\xaf\x6d\xb0\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb4\x6d\xb5\x6d\xb6\x6d\xb7\x6d\xb8\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xbf\x6d\xc0", /* 0f80 */ "\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc4\x6d\xc5\x6d\xc6\x6d\xc7\x6d\xc8\x6d\xc9\x6d\xca\x6d\xcb\x6d\xcc\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd1\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd6\x6d\xd7\x6d\xd8\x6d\xd9\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdd\x6d\xde\x6d\xdf\x6d\xe0\x6d\xe1\x6d\xe2\x6d\xe3\x6d\xe4\x6d\xe5\x6d\xe6\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xeb\x6d\xec\x6d\xed\x6d\xee\x6d\xef\x6d\xf0\x6d\xf1\x6d\xf2\x6d\xf3\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf7\x6d\xf8\x6d\xf9\x6d\xfa\x6d\xfb\x6d\xfc\x6d\xfd\x6d\xfe\x6e\x41\x6e\x42\x6e\x43\x6e\x44\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4d\x6e\x4e\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x53\x6e\x54\x6e\x55\x6e\x56\x6e\x57\x6e\x58\x6e\x59\x6e\x5a\x6e\x5b\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x5f\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6b\x6e\x6c\x6e\x6d\x6e\x6e\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x7e\x6e\x7f\x6e\x80\x6e\x81\x6e\x82", /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ "\x6e\x83\x6e\x84\x6e\x85\x6e\x86\x6e\x87\x6e\x88\x6e\x89\x6e\x8a\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x8f\x6e\x90\x6e\x91\x6e\x92\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x98\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9c\x6e\x9d\x6e\x9e\x6e\x9f\x6e\xa0\x6e\xa1\x6e\xa2\x6e\xa3\x6e\xa4\x6e\xa5\x6e\xa6\x6e\xa7\x6e\xa8\x6e\xa9\x6e\xaa\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xaf\x6e\xb0\x6e\xb1\x6e\xb2\x6e\xb3\x6e\xb4\x6e\xb5\x6e\xb6\x6e\xb7\x6e\xb8\x6e\xb9\x6e\xba\x6e\xbb\x6e\xbc\x6e\xbd\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc1\x6e\xc2\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc7\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcb\x6e\xcc\x6e\xcd\x6e\xce\x6e\xcf\x6e\xd0\x6e\xd1\x6e\xd2\x6e\xd3\x6e\xd4\x6e\xd5\x6e\xd6\x6e\xd7\x6e\xd8\x6e\xd9\x6e\xda\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xde\x6e\xdf\x6e\xe0\x6e\xe1\x6e\xe2\x6e\xe3\x6e\xe4\x6e\xe5\x6e\xe6\x6e\xe7\x6e\xe8\x6e\xe9\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf4\x6e\xf5\x6e\xf6\x6e\xf7\x6e\xf8\x6e\xf9\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6f\x41\x6f\x42\x6f\x43\x6f\x44", /* 1880 */ "\x6f\x45\x6f\x46\x6f\x47\x6f\x48\x6f\x49\x6f\x4a\x6f\x4b\x6f\x4c\x6f\x4d\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x58\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5c\x6f\x5d\x6f\x5e\x6f\x5f\x6f\x60\x6f\x61\x6f\x62\x6f\x63\x6f\x64\x6f\x65\x6f\x66\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6d\x6f\x6e\x6f\x6f\x6f\x70\x6f\x71\x6f\x72\x6f\x73\x6f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\xcd\x44\xcd\x45\x44\x4a\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x8b\x00\x00\x44\xee\x44\xef\x00\x00\xcd\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\xcd\x47\x00\x00\x00\x00\x00\x00\xcd\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\xcd\x49\xcd\x4a\xcd\x4b\xcd\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x66\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\xcd\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6b\x00\x00\x00\x00\x45\x77\x44\x4d\xcd\x4e\x45\x6e\x00\x00\x00\x00\xcd\x4f\x00\x00\x45\x6d\x00\x00\x45\x63\x45\x64\x45\x68\x45\x67\x45\x71\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x45\x62\x45\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x75\x00\x00\x00\x00\x00\x00\x45\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x45\x73\x00\x00\x00\x00\x44\x67\x44\x77\xcd\x51\xcd\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x90\x00\x00\x00\x00\x00\x00\x45\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0", /* 2480 */ "\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2500 */ "\x46\xa4\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x54\xcd\x55\xcd\x56\xcd\x57\xcd\x58\xcd\x59\xcd\x5a\xcd\x5b\xcd\x5c\xcd\x5d\xcd\x5e\xcd\x5f\xcd\x60\xcd\x61\xcd\x62\xcd\x63\xcd\x64\xcd\x65\xcd\x66\xcd\x67\xcd\x68\xcd\x69\xcd\x6a\xcd\x6b\xcd\x6c\xcd\x6d\xcd\x6e\xcd\x6f\xcd\x70\xcd\x71\xcd\x72\xcd\x73\xcd\x74\xcd\x75\xcd\x76\xcd\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\xcd\x78\xcd\x79\xcd\x7a\xcd\x7b\xcd\x7c\xcd\x7d\xcd\x7e\xcd\x7f\xcd\x81\xcd\x82\xcd\x83\xcd\x84\xcd\x85\xcd\x86\xcd\x87\x00\x00\x00\x00\x00\x00\xcd\x88\xcd\x89\xcd\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x8b\xcd\x8c\xcd\x8d\xcd\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\xcd\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ "\x00\x00\xce\x56\x00\x00\x00\x00\xce\x5a\x00\x00\x00\x00\x00\x00\xce\x5d\x00\x00\x00\x00\xce\x5e\xce\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x71\x00\x00\x00\x00\xce\x74\x00\x00\x00\x00\x00\x00\xce\x77\x00\x00\x00\x00\x00\x00\x00\x00\xce\x79\x00\x00\x00\x00\xce\x7a\xce\x7b\x00\x00\x00\x00\x00\x00\xce\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2f00 */ NULL, /* 2f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xca\xcd\xcb\xcd\xcc\xcd\xcd\xcd\xce\xcd\xcf\xcd\xd0\xcd\xd1\xcd\xd2\xcd\xd3\xcd\xd4\xcd\xd5\x00\x00\x00\x00\x00\x00\x00\x00", /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x45\x5b\x45\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x91\xcd\x92\x00\x00\x00\x00\xcd\x93\xcd\x94\xcd\x95\xcd\x96\xcd\x97\xcd\x98\xcd\x99\xcd\x9a\xcd\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xc9\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3300 */ NULL, /* 3380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9d\xcd\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9f\xcd\xa0\xcd\xa1\x00\x00\x00\x00\xcd\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa4\x00\x00\x00\x00\xcd\xa5\xcd\xa6\x00\x00\x00\x00\xcd\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3400 */ "\xcf\x41\xcf\x42\xcf\x43\xcf\x44\xcf\x45\xcf\x46\xcf\x47\xcf\x48\xcf\x49\xcf\x4a\xcf\x4b\xcf\x4c\xcf\x4d\xcf\x4e\xcf\x4f\xcf\x50\xcf\x51\xcf\x52\xcf\x53\xcf\x54\xcf\x55\xcf\x56\xcf\x57\xcf\x58\xcf\x59\xcf\x5a\xcf\x5b\xcf\x5c\xcf\x5d\xcf\x5e\xcf\x5f\xcf\x60\xcf\x61\xcf\x62\xcf\x63\xcf\x64\xcf\x65\xcf\x66\xcf\x67\xcf\x68\xcf\x69\xcf\x6a\xcf\x6b\xcf\x6c\xcf\x6d\xcf\x6e\xcf\x6f\xcf\x70\xcf\x71\xcf\x72\xcf\x73\xcf\x74\xcf\x75\xcf\x76\xcf\x77\xcf\x78\xcf\x79\xcf\x7a\xcf\x7b\xcf\x7c\xcf\x7d\xcf\x7e\xcf\x7f\xcf\x80\xcf\x81\xcf\x82\xcf\x83\xcf\x84\xcf\x85\xcf\x86\xcf\x87\xce\x5c\xcf\x88\xcf\x89\xcf\x8a\xcf\x8b\xcf\x8c\xcf\x8d\xcf\x8e\xcf\x8f\xcf\x90\xcf\x91\xcf\x92\xcf\x93\xcf\x94\xcf\x95\xcf\x96\xcf\x97\xcf\x98\xcf\x99\xcf\x9a\xcf\x9b\xcf\x9c\xcf\x9d\xcf\x9e\xcf\x9f\xcf\xa0\xcf\xa1\xcf\xa2\xcf\xa3\xcf\xa4\xcf\xa5\xcf\xa6\xcf\xa7\xcf\xa8\xcf\xa9\xcf\xaa\xcf\xab\xcf\xac\xcf\xad\xcf\xae\xcf\xaf\xcf\xb0\xcf\xb1\xcf\xb2\xce\x5b\xcf\xb3\xcf\xb4\xcf\xb5\xcf\xb6\xcf\xb7\xcf\xb8\xcf\xb9\xcf\xba\xcf\xbb\xcf\xbc\xcf\xbd\xcf\xbe", /* 3480 */ "\xcf\xbf\xcf\xc0\xcf\xc1\xcf\xc2\xcf\xc3\xcf\xc4\xcf\xc5\xcf\xc6\xcf\xc7\xcf\xc8\xcf\xc9\xcf\xca\xcf\xcb\xcf\xcc\xcf\xcd\xcf\xce\xcf\xcf\xcf\xd0\xcf\xd1\xcf\xd2\xcf\xd3\xcf\xd4\xcf\xd5\xcf\xd6\xcf\xd7\xcf\xd8\xcf\xd9\xcf\xda\xcf\xdb\xcf\xdc\xcf\xdd\xcf\xde\xcf\xdf\xcf\xe0\xcf\xe1\xcf\xe2\xcf\xe3\xcf\xe4\xcf\xe5\xcf\xe6\xcf\xe7\xcf\xe8\xcf\xe9\xcf\xea\xcf\xeb\xcf\xec\xcf\xed\xcf\xee\xcf\xef\xcf\xf0\xcf\xf1\xcf\xf2\xcf\xf3\xcf\xf4\xcf\xf5\xcf\xf6\xcf\xf7\xcf\xf8\xcf\xf9\xcf\xfa\xcf\xfb\xcf\xfc\xcf\xfd\xcf\xfe\xd0\x41\xd0\x42\xd0\x43\xd0\x44\xd0\x45\xd0\x46\xd0\x47\xd0\x48\xd0\x49\xd0\x4a\xd0\x4b\xd0\x4c\xd0\x4d\xd0\x4e\xd0\x4f\xd0\x50\xd0\x51\xd0\x52\xd0\x53\xd0\x54\xd0\x55\xd0\x56\xd0\x57\xd0\x58\xd0\x59\xd0\x5a\xd0\x5b\xd0\x5c\xd0\x5d\xd0\x5e\xd0\x5f\xd0\x60\xd0\x61\xd0\x62\xd0\x63\xd0\x64\xd0\x65\xd0\x66\xd0\x67\xd0\x68\xd0\x69\xd0\x6a\xd0\x6b\xd0\x6c\xd0\x6d\xd0\x6e\xd0\x6f\xd0\x70\xd0\x71\xd0\x72\xd0\x73\xd0\x74\xd0\x75\xd0\x76\xd0\x77\xd0\x78\xd0\x79\xd0\x7a\xd0\x7b\xd0\x7c\xd0\x7d\xd0\x7e\xd0\x7f\xd0\x80", /* 3500 */ "\xd0\x81\xd0\x82\xd0\x83\xd0\x84\xd0\x85\xd0\x86\xd0\x87\xd0\x88\xd0\x89\xd0\x8a\xd0\x8b\xd0\x8c\xd0\x8d\xd0\x8e\xd0\x8f\xd0\x90\xd0\x91\xd0\x92\xd0\x93\xd0\x94\xd0\x95\xd0\x96\xd0\x97\xd0\x98\xd0\x99\xd0\x9a\xd0\x9b\xd0\x9c\xd0\x9d\xd0\x9e\xd0\x9f\xd0\xa0\xd0\xa1\xd0\xa2\xd0\xa3\xd0\xa4\xd0\xa5\xd0\xa6\xd0\xa7\xd0\xa8\xd0\xa9\xd0\xaa\xd0\xab\xd0\xac\xd0\xad\xd0\xae\xd0\xaf\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5\xd0\xb6\xd0\xb7\xd0\xb8\xd0\xb9\xd0\xba\xd0\xbb\xd0\xbc\xd0\xbd\xd0\xbe\xd0\xbf\xd0\xc0\xd0\xc1\xd0\xc2\xd0\xc3\xd0\xc4\xd0\xc5\xd0\xc6\xd0\xc7\xd0\xc8\xd0\xc9\xd0\xca\xd0\xcb\xd0\xcc\xd0\xcd\xd0\xce\xd0\xcf\xd0\xd0\xd0\xd1\xd0\xd2\xd0\xd3\xd0\xd4\xd0\xd5\xd0\xd6\xd0\xd7\xd0\xd8\xd0\xd9\xd0\xda\xd0\xdb\xd0\xdc\xd0\xdd\xd0\xde\xd0\xdf\xd0\xe0\xd0\xe1\xd0\xe2\xd0\xe3\xd0\xe4\xd0\xe5\xd0\xe6\xd0\xe7\xd0\xe8\xd0\xe9\xd0\xea\xd0\xeb\xd0\xec\xd0\xed\xd0\xee\xd0\xef\xd0\xf0\xd0\xf1\xd0\xf2\xd0\xf3\xd0\xf4\xd0\xf5\xd0\xf6\xd0\xf7\xd0\xf8\xd0\xf9\xd0\xfa\xd0\xfb\xd0\xfc\xd0\xfd\xd0\xfe\xd1\x41\xd1\x42", /* 3580 */ "\xd1\x43\xd1\x44\xd1\x45\xd1\x46\xd1\x47\xd1\x48\xd1\x49\xd1\x4a\xd1\x4b\xd1\x4c\xd1\x4d\xd1\x4e\xd1\x4f\xd1\x50\xd1\x51\xd1\x52\xd1\x53\xd1\x54\xd1\x55\xd1\x56\xd1\x57\xd1\x58\xd1\x59\xd1\x5a\xd1\x5b\xd1\x5c\xd1\x5d\xd1\x5e\xd1\x5f\xd1\x60\xce\x60\xd1\x61\xd1\x62\xd1\x63\xd1\x64\xd1\x65\xd1\x66\xd1\x67\xd1\x68\xd1\x69\xd1\x6a\xd1\x6b\xd1\x6c\xd1\x6d\xd1\x6e\xd1\x6f\xd1\x70\xd1\x71\xd1\x72\xd1\x73\xd1\x74\xd1\x75\xd1\x76\xd1\x77\xd1\x78\xd1\x79\xd1\x7a\xd1\x7b\xd1\x7c\xd1\x7d\xd1\x7e\xd1\x7f\xd1\x80\xd1\x81\xd1\x82\xd1\x83\xd1\x84\xd1\x85\xd1\x86\xd1\x87\xd1\x88\xd1\x89\xd1\x8a\xd1\x8b\xd1\x8c\xd1\x8d\xd1\x8e\xd1\x8f\xd1\x90\xd1\x91\xd1\x92\xd1\x93\xd1\x94\xd1\x95\xd1\x96\xd1\x97\xd1\x98\xd1\x99\xd1\x9a\xd1\x9b\xd1\x9c\xd1\x9d\xd1\x9e\xd1\x9f\xd1\xa0\xd1\xa1\xd1\xa2\xd1\xa3\xd1\xa4\xd1\xa5\xd1\xa6\xd1\xa7\xd1\xa8\xd1\xa9\xd1\xaa\xd1\xab\xd1\xac\xd1\xad\xd1\xae\xd1\xaf\xd1\xb0\xd1\xb1\xd1\xb2\xd1\xb3\xd1\xb4\xd1\xb5\xd1\xb6\xd1\xb7\xd1\xb8\xd1\xb9\xd1\xba\xd1\xbb\xd1\xbc\xd1\xbd\xd1\xbe\xd1\xbf\xd1\xc0\xd1\xc1", /* 3600 */ "\xd1\xc2\xd1\xc3\xd1\xc4\xd1\xc5\xd1\xc6\xd1\xc7\xd1\xc8\xd1\xc9\xd1\xca\xd1\xcb\xd1\xcc\xd1\xcd\xd1\xce\xd1\xcf\xce\x62\xd1\xd0\xd1\xd1\xd1\xd2\xd1\xd3\xd1\xd4\xd1\xd5\xd1\xd6\xd1\xd7\xd1\xd8\xd1\xd9\xd1\xda\xce\x61\xd1\xdb\xd1\xdc\xd1\xdd\xd1\xde\xd1\xdf\xd1\xe0\xd1\xe1\xd1\xe2\xd1\xe3\xd1\xe4\xd1\xe5\xd1\xe6\xd1\xe7\xd1\xe8\xd1\xe9\xd1\xea\xd1\xeb\xd1\xec\xd1\xed\xd1\xee\xd1\xef\xd1\xf0\xd1\xf1\xd1\xf2\xd1\xf3\xd1\xf4\xd1\xf5\xd1\xf6\xd1\xf7\xd1\xf8\xd1\xf9\xd1\xfa\xd1\xfb\xd1\xfc\xd1\xfd\xd1\xfe\xd2\x41\xd2\x42\xd2\x43\xd2\x44\xd2\x45\xd2\x46\xd2\x47\xd2\x48\xd2\x49\xd2\x4a\xd2\x4b\xd2\x4c\xd2\x4d\xd2\x4e\xd2\x4f\xd2\x50\xd2\x51\xd2\x52\xd2\x53\xd2\x54\xd2\x55\xd2\x56\xd2\x57\xd2\x58\xd2\x59\xd2\x5a\xd2\x5b\xd2\x5c\xd2\x5d\xd2\x5e\xd2\x5f\xd2\x60\xd2\x61\xd2\x62\xd2\x63\xd2\x64\xd2\x65\xd2\x66\xd2\x67\xd2\x68\xd2\x69\xd2\x6a\xd2\x6b\xd2\x6c\xd2\x6d\xd2\x6e\xd2\x6f\xd2\x70\xd2\x71\xd2\x72\xd2\x73\xd2\x74\xd2\x75\xd2\x76\xd2\x77\xd2\x78\xd2\x79\xd2\x7a\xd2\x7b\xd2\x7c\xd2\x7d\xd2\x7e\xd2\x7f\xd2\x80\xd2\x81", /* 3680 */ "\xd2\x82\xd2\x83\xd2\x84\xd2\x85\xd2\x86\xd2\x87\xd2\x88\xd2\x89\xd2\x8a\xd2\x8b\xd2\x8c\xd2\x8d\xd2\x8e\xd2\x8f\xd2\x90\xd2\x91\xd2\x92\xd2\x93\xd2\x94\xd2\x95\xd2\x96\xd2\x97\xd2\x98\xd2\x99\xd2\x9a\xd2\x9b\xd2\x9c\xd2\x9d\xd2\x9e\xd2\x9f\xd2\xa0\xd2\xa1\xd2\xa2\xd2\xa3\xd2\xa4\xd2\xa5\xd2\xa6\xd2\xa7\xd2\xa8\xd2\xa9\xd2\xaa\xd2\xab\xd2\xac\xd2\xad\xd2\xae\xd2\xaf\xd2\xb0\xd2\xb1\xd2\xb2\xd2\xb3\xd2\xb4\xd2\xb5\xd2\xb6\xd2\xb7\xd2\xb8\xd2\xb9\xd2\xba\xd2\xbb\xd2\xbc\xd2\xbd\xd2\xbe\xd2\xbf\xd2\xc0\xd2\xc1\xd2\xc2\xd2\xc3\xd2\xc4\xd2\xc5\xd2\xc6\xd2\xc7\xd2\xc8\xd2\xc9\xd2\xca\xd2\xcb\xd2\xcc\xd2\xcd\xd2\xce\xd2\xcf\xd2\xd0\xd2\xd1\xd2\xd2\xd2\xd3\xd2\xd4\xd2\xd5\xd2\xd6\xd2\xd7\xd2\xd8\xd2\xd9\xd2\xda\xd2\xdb\xd2\xdc\xd2\xdd\xd2\xde\xd2\xdf\xd2\xe0\xd2\xe1\xd2\xe2\xd2\xe3\xd2\xe4\xd2\xe5\xd2\xe6\xd2\xe7\xd2\xe8\xd2\xe9\xd2\xea\xd2\xeb\xd2\xec\xd2\xed\xd2\xee\xd2\xef\xd2\xf0\xd2\xf1\xd2\xf2\xd2\xf3\xd2\xf4\xd2\xf5\xd2\xf6\xd2\xf7\xd2\xf8\xd2\xf9\xd2\xfa\xd2\xfb\xd2\xfc\xd2\xfd\xd2\xfe\xd3\x41\xd3\x42\xd3\x43", /* 3700 */ "\xd3\x44\xd3\x45\xd3\x46\xd3\x47\xd3\x48\xd3\x49\xd3\x4a\xd3\x4b\xd3\x4c\xd3\x4d\xd3\x4e\xd3\x4f\xd3\x50\xd3\x51\xd3\x52\xd3\x53\xd3\x54\xd3\x55\xd3\x56\xd3\x57\xd3\x58\xd3\x59\xd3\x5a\xd3\x5b\xd3\x5c\xd3\x5d\xd3\x5e\xd3\x5f\xd3\x60\xd3\x61\xd3\x62\xd3\x63\xd3\x64\xd3\x65\xd3\x66\xd3\x67\xd3\x68\xd3\x69\xd3\x6a\xd3\x6b\xd3\x6c\xd3\x6d\xd3\x6e\xd3\x6f\xd3\x70\xd3\x71\xd3\x72\xd3\x73\xd3\x74\xd3\x75\xd3\x76\xd3\x77\xd3\x78\xd3\x79\xd3\x7a\xd3\x7b\xd3\x7c\xd3\x7d\xd3\x7e\xd3\x7f\xd3\x80\xd3\x81\xd3\x82\xd3\x83\xd3\x84\xd3\x85\xd3\x86\xd3\x87\xd3\x88\xd3\x89\xd3\x8a\xd3\x8b\xd3\x8c\xd3\x8d\xd3\x8e\xd3\x8f\xd3\x90\xd3\x91\xd3\x92\xd3\x93\xd3\x94\xd3\x95\xd3\x96\xd3\x97\xd3\x98\xd3\x99\xd3\x9a\xd3\x9b\xd3\x9c\xd3\x9d\xd3\x9e\xd3\x9f\xd3\xa0\xd3\xa1\xd3\xa2\xd3\xa3\xd3\xa4\xd3\xa5\xd3\xa6\xd3\xa7\xd3\xa8\xd3\xa9\xd3\xaa\xd3\xab\xd3\xac\xd3\xad\xd3\xae\xd3\xaf\xd3\xb0\xd3\xb1\xd3\xb2\xd3\xb3\xd3\xb4\xd3\xb5\xd3\xb6\xd3\xb7\xd3\xb8\xd3\xb9\xd3\xba\xd3\xbb\xd3\xbc\xd3\xbd\xd3\xbe\xd3\xbf\xd3\xc0\xd3\xc1\xd3\xc2\xd3\xc3", /* 3780 */ "\xd3\xc4\xd3\xc5\xd3\xc6\xd3\xc7\xd3\xc8\xd3\xc9\xd3\xca\xd3\xcb\xd3\xcc\xd3\xcd\xd3\xce\xd3\xcf\xd3\xd0\xd3\xd1\xd3\xd2\xd3\xd3\xd3\xd4\xd3\xd5\xd3\xd6\xd3\xd7\xd3\xd8\xd3\xd9\xd3\xda\xd3\xdb\xd3\xdc\xd3\xdd\xd3\xde\xd3\xdf\xd3\xe0\xd3\xe1\xd3\xe2\xd3\xe3\xd3\xe4\xd3\xe5\xd3\xe6\xd3\xe7\xd3\xe8\xd3\xe9\xd3\xea\xd3\xeb\xd3\xec\xd3\xed\xd3\xee\xd3\xef\xd3\xf0\xd3\xf1\xd3\xf2\xd3\xf3\xd3\xf4\xd3\xf5\xd3\xf6\xd3\xf7\xd3\xf8\xd3\xf9\xd3\xfa\xd3\xfb\xd3\xfc\xd3\xfd\xd3\xfe\xd4\x41\xd4\x42\xd4\x43\xd4\x44\xd4\x45\xd4\x46\xd4\x47\xd4\x48\xd4\x49\xd4\x4a\xd4\x4b\xd4\x4c\xd4\x4d\xd4\x4e\xd4\x4f\xd4\x50\xd4\x51\xd4\x52\xd4\x53\xd4\x54\xd4\x55\xd4\x56\xd4\x57\xd4\x58\xd4\x59\xd4\x5a\xd4\x5b\xd4\x5c\xd4\x5d\xd4\x5e\xd4\x5f\xd4\x60\xd4\x61\xd4\x62\xd4\x63\xd4\x64\xd4\x65\xd4\x66\xd4\x67\xd4\x68\xd4\x69\xd4\x6a\xd4\x6b\xd4\x6c\xd4\x6d\xd4\x6e\xd4\x6f\xd4\x70\xd4\x71\xd4\x72\xd4\x73\xd4\x74\xd4\x75\xd4\x76\xd4\x77\xd4\x78\xd4\x79\xd4\x7a\xd4\x7b\xd4\x7c\xd4\x7d\xd4\x7e\xd4\x7f\xd4\x80\xd4\x81\xd4\x82\xd4\x83\xd4\x84\xd4\x85", /* 3800 */ "\xd4\x86\xd4\x87\xd4\x88\xd4\x89\xd4\x8a\xd4\x8b\xd4\x8c\xd4\x8d\xd4\x8e\xd4\x8f\xd4\x90\xd4\x91\xd4\x92\xd4\x93\xd4\x94\xd4\x95\xd4\x96\xd4\x97\xd4\x98\xd4\x99\xd4\x9a\xd4\x9b\xd4\x9c\xd4\x9d\xd4\x9e\xd4\x9f\xd4\xa0\xd4\xa1\xd4\xa2\xd4\xa3\xd4\xa4\xd4\xa5\xd4\xa6\xd4\xa7\xd4\xa8\xd4\xa9\xd4\xaa\xd4\xab\xd4\xac\xd4\xad\xd4\xae\xd4\xaf\xd4\xb0\xd4\xb1\xd4\xb2\xd4\xb3\xd4\xb4\xd4\xb5\xd4\xb6\xd4\xb7\xd4\xb8\xd4\xb9\xd4\xba\xd4\xbb\xd4\xbc\xd4\xbd\xd4\xbe\xd4\xbf\xd4\xc0\xd4\xc1\xd4\xc2\xd4\xc3\xd4\xc4\xd4\xc5\xd4\xc6\xd4\xc7\xd4\xc8\xd4\xc9\xd4\xca\xd4\xcb\xd4\xcc\xd4\xcd\xd4\xce\xd4\xcf\xd4\xd0\xd4\xd1\xd4\xd2\xd4\xd3\xd4\xd4\xd4\xd5\xd4\xd6\xd4\xd7\xd4\xd8\xd4\xd9\xd4\xda\xd4\xdb\xd4\xdc\xd4\xdd\xd4\xde\xd4\xdf\xd4\xe0\xd4\xe1\xd4\xe2\xd4\xe3\xd4\xe4\xd4\xe5\xd4\xe6\xd4\xe7\xd4\xe8\xd4\xe9\xd4\xea\xd4\xeb\xd4\xec\xd4\xed\xd4\xee\xd4\xef\xd4\xf0\xd4\xf1\xd4\xf2\xd4\xf3\xd4\xf4\xd4\xf5\xd4\xf6\xd4\xf7\xd4\xf8\xd4\xf9\xd4\xfa\xd4\xfb\xd4\xfc\xd4\xfd\xd4\xfe\xd5\x41\xd5\x42\xd5\x43\xd5\x44\xd5\x45\xd5\x46\xd5\x47", /* 3880 */ "\xd5\x48\xd5\x49\xd5\x4a\xd5\x4b\xd5\x4c\xd5\x4d\xd5\x4e\xd5\x4f\xd5\x50\xd5\x51\xd5\x52\xd5\x53\xd5\x54\xd5\x55\xd5\x56\xd5\x57\xd5\x58\xd5\x59\xd5\x5a\xd5\x5b\xd5\x5c\xd5\x5d\xd5\x5e\xd5\x5f\xd5\x60\xd5\x61\xd5\x62\xd5\x63\xd5\x64\xd5\x65\xd5\x66\xd5\x67\xd5\x68\xd5\x69\xd5\x6a\xd5\x6b\xd5\x6c\xd5\x6d\xd5\x6e\xd5\x6f\xd5\x70\xd5\x71\xd5\x72\xd5\x73\xd5\x74\xd5\x75\xd5\x76\xd5\x77\xd5\x78\xd5\x79\xd5\x7a\xd5\x7b\xd5\x7c\xd5\x7d\xd5\x7e\xd5\x7f\xd5\x80\xd5\x81\xd5\x82\xd5\x83\xd5\x84\xd5\x85\xd5\x86\xd5\x87\xd5\x88\xd5\x89\xd5\x8a\xd5\x8b\xd5\x8c\xd5\x8d\xd5\x8e\xd5\x8f\xd5\x90\xd5\x91\xd5\x92\xd5\x93\xd5\x94\xd5\x95\xd5\x96\xd5\x97\xd5\x98\xd5\x99\xd5\x9a\xd5\x9b\xd5\x9c\xd5\x9d\xd5\x9e\xd5\x9f\xd5\xa0\xd5\xa1\xd5\xa2\xd5\xa3\xd5\xa4\xd5\xa5\xd5\xa6\xd5\xa7\xd5\xa8\xd5\xa9\xd5\xaa\xd5\xab\xd5\xac\xd5\xad\xd5\xae\xd5\xaf\xd5\xb0\xd5\xb1\xd5\xb2\xd5\xb3\xd5\xb4\xd5\xb5\xd5\xb6\xd5\xb7\xd5\xb8\xd5\xb9\xd5\xba\xd5\xbb\xd5\xbc\xd5\xbd\xd5\xbe\xd5\xbf\xd5\xc0\xd5\xc1\xd5\xc2\xd5\xc3\xd5\xc4\xd5\xc5\xd5\xc6\xd5\xc7", /* 3900 */ "\xd5\xc8\xd5\xc9\xd5\xca\xd5\xcb\xd5\xcc\xd5\xcd\xd5\xce\xd5\xcf\xd5\xd0\xd5\xd1\xd5\xd2\xd5\xd3\xd5\xd4\xd5\xd5\xd5\xd6\xd5\xd7\xd5\xd8\xd5\xd9\xd5\xda\xd5\xdb\xd5\xdc\xd5\xdd\xd5\xde\xd5\xdf\xce\x66\xd5\xe0\xd5\xe1\xd5\xe2\xd5\xe3\xd5\xe4\xd5\xe5\xd5\xe6\xd5\xe7\xd5\xe8\xd5\xe9\xd5\xea\xd5\xeb\xd5\xec\xd5\xed\xd5\xee\xd5\xef\xd5\xf0\xd5\xf1\xd5\xf2\xd5\xf3\xd5\xf4\xd5\xf5\xd5\xf6\xd5\xf7\xd5\xf8\xd5\xf9\xd5\xfa\xd5\xfb\xd5\xfc\xd5\xfd\xd5\xfe\xd6\x41\xd6\x42\xd6\x43\xd6\x44\xd6\x45\xd6\x46\xd6\x47\xd6\x48\xd6\x49\xd6\x4a\xd6\x4b\xd6\x4c\xd6\x4d\xd6\x4e\xd6\x4f\xd6\x50\xd6\x51\xd6\x52\xd6\x53\xd6\x54\xd6\x55\xd6\x56\xd6\x57\xd6\x58\xd6\x59\xd6\x5a\xd6\x5b\xd6\x5c\xd6\x5d\xd6\x5e\xd6\x5f\xd6\x60\xd6\x61\xd6\x62\xd6\x63\xd6\x64\xd6\x65\xd6\x66\xd6\x67\xd6\x68\xd6\x69\xd6\x6a\xd6\x6b\xd6\x6c\xd6\x6d\xd6\x6e\xd6\x6f\xd6\x70\xd6\x71\xd6\x72\xd6\x73\xd6\x74\xd6\x75\xd6\x76\xce\x65\xd6\x77\xd6\x78\xd6\x79\xd6\x7a\xd6\x7b\xd6\x7c\xd6\x7d\xd6\x7e\xd6\x7f\xd6\x80\xd6\x81\xd6\x82\xd6\x83\xd6\x84\xd6\x85\xd6\x86\xd6\x87", /* 3980 */ "\xd6\x88\xd6\x89\xd6\x8a\xd6\x8b\xd6\x8c\xd6\x8d\xd6\x8e\xd6\x8f\xd6\x90\xd6\x91\xd6\x92\xd6\x93\xd6\x94\xd6\x95\xd6\x96\xd6\x97\xd6\x98\xd6\x99\xd6\x9a\xd6\x9b\xd6\x9c\xd6\x9d\xd6\x9e\xd6\x9f\xd6\xa0\xd6\xa1\xd6\xa2\xd6\xa3\xd6\xa4\xd6\xa5\xd6\xa6\xd6\xa7\xd6\xa8\xd6\xa9\xd6\xaa\xd6\xab\xd6\xac\xd6\xad\xd6\xae\xd6\xaf\xd6\xb0\xd6\xb1\xd6\xb2\xd6\xb3\xd6\xb4\xd6\xb5\xd6\xb6\xd6\xb7\xd6\xb8\xd6\xb9\xd6\xba\xd6\xbb\xd6\xbc\xd6\xbd\xd6\xbe\xd6\xbf\xd6\xc0\xd6\xc1\xd6\xc2\xd6\xc3\xd6\xc4\xd6\xc5\xd6\xc6\xd6\xc7\xd6\xc8\xd6\xc9\xd6\xca\xd6\xcb\xd6\xcc\xd6\xcd\xd6\xce\xd6\xcf\xd6\xd0\xd6\xd1\xd6\xd2\xd6\xd3\xd6\xd4\xd6\xd5\xd6\xd6\xce\x68\xce\x6b\xd6\xd7\xd6\xd8\xd6\xd9\xd6\xda\xd6\xdb\xd6\xdc\xd6\xdd\xd6\xde\xd6\xdf\xd6\xe0\xd6\xe1\xd6\xe2\xd6\xe3\xd6\xe4\xce\x69\xd6\xe5\xd6\xe6\xd6\xe7\xd6\xe8\xd6\xe9\xd6\xea\xd6\xeb\xd6\xec\xd6\xed\xd6\xee\xd6\xef\xd6\xf0\xd6\xf1\xd6\xf2\xd6\xf3\xd6\xf4\xd6\xf5\xd6\xf6\xd6\xf7\xd6\xf8\xd6\xf9\xd6\xfa\xd6\xfb\xd6\xfc\xd6\xfd\xd6\xfe\xd7\x41\xd7\x42\xd7\x43\xd7\x44\xd7\x45\xd7\x46", /* 3a00 */ "\xd7\x47\xd7\x48\xd7\x49\xd7\x4a\xd7\x4b\xd7\x4c\xd7\x4d\xd7\x4e\xd7\x4f\xd7\x50\xd7\x51\xd7\x52\xd7\x53\xd7\x54\xd7\x55\xd7\x56\xd7\x57\xd7\x58\xd7\x59\xd7\x5a\xd7\x5b\xd7\x5c\xd7\x5d\xd7\x5e\xd7\x5f\xd7\x60\xd7\x61\xd7\x62\xd7\x63\xd7\x64\xd7\x65\xd7\x66\xd7\x67\xd7\x68\xd7\x69\xd7\x6a\xd7\x6b\xd7\x6c\xd7\x6d\xd7\x6e\xd7\x6f\xd7\x70\xd7\x71\xd7\x72\xd7\x73\xd7\x74\xd7\x75\xd7\x76\xd7\x77\xd7\x78\xd7\x79\xd7\x7a\xd7\x7b\xd7\x7c\xd7\x7d\xd7\x7e\xd7\x7f\xd7\x80\xd7\x81\xd7\x82\xd7\x83\xd7\x84\xd7\x85\xd7\x86\xd7\x87\xd7\x88\xd7\x89\xd7\x8a\xd7\x8b\xd7\x8c\xd7\x8d\xd7\x8e\xd7\x8f\xd7\x90\xd7\x91\xd7\x92\xd7\x93\xd7\x94\xd7\x95\xd7\x96\xd7\x97\xd7\x98\xd7\x99\xd7\x9a\xd7\x9b\xd7\x9c\xd7\x9d\xd7\x9e\xd7\x9f\xd7\xa0\xd7\xa1\xd7\xa2\xd7\xa3\xd7\xa4\xd7\xa5\xd7\xa6\xd7\xa7\xd7\xa8\xd7\xa9\xd7\xaa\xd7\xab\xd7\xac\xd7\xad\xd7\xae\xd7\xaf\xd7\xb0\xd7\xb1\xd7\xb2\xd7\xb3\xd7\xb4\xd7\xb5\xd7\xb6\xd7\xb7\xd7\xb8\xd7\xb9\xce\x6a\xd7\xba\xd7\xbb\xd7\xbc\xd7\xbd\xd7\xbe\xd7\xbf\xd7\xc0\xd7\xc1\xd7\xc2\xd7\xc3\xd7\xc4\xd7\xc5", /* 3a80 */ "\xd7\xc6\xd7\xc7\xd7\xc8\xd7\xc9\xd7\xca\xd7\xcb\xd7\xcc\xd7\xcd\xd7\xce\xd7\xcf\xd7\xd0\xd7\xd1\xd7\xd2\xd7\xd3\xd7\xd4\xd7\xd5\xd7\xd6\xd7\xd7\xd7\xd8\xd7\xd9\xd7\xda\xd7\xdb\xd7\xdc\xd7\xdd\xd7\xde\xd7\xdf\xd7\xe0\xd7\xe1\xd7\xe2\xd7\xe3\xd7\xe4\xd7\xe5\xd7\xe6\xd7\xe7\xd7\xe8\xd7\xe9\xd7\xea\xd7\xeb\xd7\xec\xd7\xed\xd7\xee\xd7\xef\xd7\xf0\xd7\xf1\xd7\xf2\xd7\xf3\xd7\xf4\xd7\xf5\xd7\xf6\xd7\xf7\xd7\xf8\xd7\xf9\xd7\xfa\xd7\xfb\xd7\xfc\xd7\xfd\xd7\xfe\xd8\x41\xd8\x42\xd8\x43\xd8\x44\xd8\x45\xd8\x46\xd8\x47\xd8\x48\xd8\x49\xd8\x4a\xd8\x4b\xd8\x4c\xd8\x4d\xd8\x4e\xd8\x4f\xd8\x50\xd8\x51\xd8\x52\xd8\x53\xd8\x54\xd8\x55\xd8\x56\xd8\x57\xd8\x58\xd8\x59\xd8\x5a\xd8\x5b\xd8\x5c\xd8\x5d\xd8\x5e\xd8\x5f\xd8\x60\xd8\x61\xd8\x62\xd8\x63\xd8\x64\xd8\x65\xd8\x66\xd8\x67\xd8\x68\xd8\x69\xd8\x6a\xd8\x6b\xd8\x6c\xd8\x6d\xd8\x6e\xd8\x6f\xd8\x70\xd8\x71\xd8\x72\xd8\x73\xd8\x74\xd8\x75\xd8\x76\xd8\x77\xd8\x78\xd8\x79\xd8\x7a\xd8\x7b\xd8\x7c\xd8\x7d\xd8\x7e\xd8\x7f\xd8\x80\xd8\x81\xd8\x82\xd8\x83\xd8\x84\xd8\x85\xd8\x86\xd8\x87", /* 3b00 */ "\xd8\x88\xd8\x89\xd8\x8a\xd8\x8b\xd8\x8c\xd8\x8d\xd8\x8e\xd8\x8f\xd8\x90\xd8\x91\xd8\x92\xd8\x93\xd8\x94\xd8\x95\xd8\x96\xd8\x97\xd8\x98\xd8\x99\xd8\x9a\xd8\x9b\xd8\x9c\xd8\x9d\xd8\x9e\xd8\x9f\xd8\xa0\xd8\xa1\xd8\xa2\xd8\xa3\xd8\xa4\xd8\xa5\xd8\xa6\xd8\xa7\xd8\xa8\xd8\xa9\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae\xd8\xaf\xd8\xb0\xd8\xb1\xd8\xb2\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba\xd8\xbb\xd8\xbc\xd8\xbd\xd8\xbe\xd8\xbf\xd8\xc0\xd8\xc1\xd8\xc2\xd8\xc3\xd8\xc4\xd8\xc5\xd8\xc6\xd8\xc7\xd8\xc8\xd8\xc9\xd8\xca\xd8\xcb\xd8\xcc\xd8\xcd\xd8\xce\xd8\xcf\xd8\xd0\xd8\xd1\xd8\xd2\xd8\xd3\xd8\xd4\xd8\xd5\xce\x6e\xd8\xd6\xd8\xd7\xd8\xd8\xd8\xd9\xd8\xda\xd8\xdb\xd8\xdc\xd8\xdd\xd8\xde\xd8\xdf\xd8\xe0\xd8\xe1\xd8\xe2\xd8\xe3\xd8\xe4\xd8\xe5\xd8\xe6\xd8\xe7\xd8\xe8\xd8\xe9\xd8\xea\xd8\xeb\xd8\xec\xd8\xed\xd8\xee\xd8\xef\xd8\xf0\xd8\xf1\xd8\xf2\xd8\xf3\xd8\xf4\xd8\xf5\xd8\xf6\xd8\xf7\xd8\xf8\xd8\xf9\xd8\xfa\xd8\xfb\xd8\xfc\xd8\xfd\xd8\xfe\xd9\x41\xd9\x42\xd9\x43\xd9\x44\xd9\x45\xd9\x46\xd9\x47\xd9\x48", /* 3b80 */ "\xd9\x49\xd9\x4a\xd9\x4b\xd9\x4c\xd9\x4d\xd9\x4e\xd9\x4f\xd9\x50\xd9\x51\xd9\x52\xd9\x53\xd9\x54\xd9\x55\xd9\x56\xd9\x57\xd9\x58\xd9\x59\xd9\x5a\xd9\x5b\xd9\x5c\xd9\x5d\xd9\x5e\xd9\x5f\xd9\x60\xd9\x61\xd9\x62\xd9\x63\xd9\x64\xd9\x65\xd9\x66\xd9\x67\xd9\x68\xd9\x69\xd9\x6a\xd9\x6b\xd9\x6c\xd9\x6d\xd9\x6e\xd9\x6f\xd9\x70\xd9\x71\xd9\x72\xd9\x73\xd9\x74\xd9\x75\xd9\x76\xd9\x77\xd9\x78\xd9\x79\xd9\x7a\xd9\x7b\xd9\x7c\xd9\x7d\xd9\x7e\xd9\x7f\xd9\x80\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x88\xd9\x89\xd9\x8a\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f\xd9\x90\xd9\x91\xd9\x92\xd9\x93\xd9\x94\xd9\x95\xd9\x96\xd9\x97\xd9\x98\xd9\x99\xd9\x9a\xd9\x9b\xd9\x9c\xd9\x9d\xd9\x9e\xd9\x9f\xd9\xa0\xd9\xa1\xd9\xa2\xd9\xa3\xd9\xa4\xd9\xa5\xd9\xa6\xd9\xa7\xd9\xa8\xd9\xa9\xd9\xaa\xd9\xab\xd9\xac\xd9\xad\xd9\xae\xd9\xaf\xd9\xb0\xd9\xb1\xd9\xb2\xd9\xb3\xd9\xb4\xd9\xb5\xd9\xb6\xd9\xb7\xd9\xb8\xd9\xb9\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf\xd9\xc0\xd9\xc1\xd9\xc2\xd9\xc3\xd9\xc4\xd9\xc5\xd9\xc6\xd9\xc7\xd9\xc8", /* 3c00 */ "\xd9\xc9\xd9\xca\xd9\xcb\xd9\xcc\xd9\xcd\xd9\xce\xd9\xcf\xd9\xd0\xd9\xd1\xd9\xd2\xd9\xd3\xd9\xd4\xd9\xd5\xd9\xd6\xd9\xd7\xd9\xd8\xd9\xd9\xd9\xda\xd9\xdb\xd9\xdc\xd9\xdd\xd9\xde\xd9\xdf\xd9\xe0\xd9\xe1\xd9\xe2\xd9\xe3\xd9\xe4\xd9\xe5\xd9\xe6\xd9\xe7\xd9\xe8\xd9\xe9\xd9\xea\xd9\xeb\xd9\xec\xd9\xed\xd9\xee\xd9\xef\xd9\xf0\xd9\xf1\xd9\xf2\xd9\xf3\xd9\xf4\xd9\xf5\xd9\xf6\xd9\xf7\xd9\xf8\xd9\xf9\xd9\xfa\xd9\xfb\xd9\xfc\xd9\xfd\xd9\xfe\xda\x41\xda\x42\xda\x43\xda\x44\xda\x45\xda\x46\xda\x47\xda\x48\xda\x49\xda\x4a\xda\x4b\xda\x4c\xda\x4d\xda\x4e\xda\x4f\xda\x50\xda\x51\xda\x52\xda\x53\xda\x54\xda\x55\xda\x56\xda\x57\xda\x58\xda\x59\xda\x5a\xda\x5b\xda\x5c\xda\x5d\xda\x5e\xda\x5f\xda\x60\xda\x61\xda\x62\xda\x63\xda\x64\xda\x65\xda\x66\xda\x67\xda\x68\xda\x69\xda\x6a\xda\x6b\xda\x6c\xda\x6d\xda\x6e\xda\x6f\xda\x70\xda\x71\xda\x72\xda\x73\xda\x74\xda\x75\xda\x76\xda\x77\xda\x78\xce\x6f\xda\x79\xda\x7a\xda\x7b\xda\x7c\xda\x7d\xda\x7e\xda\x7f\xda\x80\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87\xda\x88\xda\x89", /* 3c80 */ "\xda\x8a\xda\x8b\xda\x8c\xda\x8d\xda\x8e\xda\x8f\xda\x90\xda\x91\xda\x92\xda\x93\xda\x94\xda\x95\xda\x96\xda\x97\xda\x98\xda\x99\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f\xda\xa0\xda\xa1\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8\xda\xa9\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9\xda\xba\xda\xbb\xda\xbc\xda\xbd\xda\xbe\xda\xbf\xda\xc0\xda\xc1\xda\xc2\xda\xc3\xda\xc4\xda\xc5\xda\xc6\xda\xc7\xda\xc8\xda\xc9\xda\xca\xda\xcb\xda\xcc\xda\xcd\xda\xce\xda\xcf\xda\xd0\xda\xd1\xda\xd2\xda\xd3\xda\xd4\xda\xd5\xda\xd6\xda\xd7\xda\xd8\xda\xd9\xda\xda\xda\xdb\xda\xdc\xda\xdd\xda\xde\xda\xdf\xda\xe0\xda\xe1\xda\xe2\xda\xe3\xda\xe4\xda\xe5\xda\xe6\xda\xe7\xda\xe8\xda\xe9\xce\x70\xda\xea\xda\xeb\xda\xec\xda\xed\xda\xee\xda\xef\xda\xf0\xda\xf1\xda\xf2\xda\xf3\xda\xf4\xda\xf5\xda\xf6\xda\xf7\xda\xf8\xda\xf9\xda\xfa\xda\xfb\xda\xfc\xda\xfd\xda\xfe\xdb\x41\xdb\x42\xdb\x43\xdb\x44\xdb\x45\xdb\x46\xdb\x47\xdb\x48\xdb\x49\xdb\x4a", /* 3d00 */ "\xdb\x4b\xdb\x4c\xdb\x4d\xdb\x4e\xdb\x4f\xdb\x50\xdb\x51\xdb\x52\xdb\x53\xdb\x54\xdb\x55\xdb\x56\xdb\x57\xdb\x58\xdb\x59\xdb\x5a\xdb\x5b\xdb\x5c\xdb\x5d\xdb\x5e\xdb\x5f\xdb\x60\xdb\x61\xdb\x62\xdb\x63\xdb\x64\xdb\x65\xdb\x66\xdb\x67\xdb\x68\xdb\x69\xdb\x6a\xdb\x6b\xdb\x6c\xdb\x6d\xdb\x6e\xdb\x6f\xdb\x70\xdb\x71\xdb\x72\xdb\x73\xdb\x74\xdb\x75\xdb\x76\xdb\x77\xdb\x78\xdb\x79\xdb\x7a\xdb\x7b\xdb\x7c\xdb\x7d\xdb\x7e\xdb\x7f\xdb\x80\xdb\x81\xdb\x82\xdb\x83\xdb\x84\xdb\x85\xdb\x86\xdb\x87\xdb\x88\xdb\x89\xdb\x8a\xdb\x8b\xdb\x8c\xdb\x8d\xdb\x8e\xdb\x8f\xdb\x90\xdb\x91\xdb\x92\xdb\x93\xdb\x94\xdb\x95\xdb\x96\xdb\x97\xdb\x98\xdb\x99\xdb\x9a\xdb\x9b\xdb\x9c\xdb\x9d\xdb\x9e\xdb\x9f\xdb\xa0\xdb\xa1\xdb\xa2\xdb\xa3\xdb\xa4\xdb\xa5\xdb\xa6\xdb\xa7\xdb\xa8\xdb\xa9\xdb\xaa\xdb\xab\xdb\xac\xdb\xad\xdb\xae\xdb\xaf\xdb\xb0\xdb\xb1\xdb\xb2\xdb\xb3\xdb\xb4\xdb\xb5\xdb\xb6\xdb\xb7\xdb\xb8\xdb\xb9\xdb\xba\xdb\xbb\xdb\xbc\xdb\xbd\xdb\xbe\xdb\xbf\xdb\xc0\xdb\xc1\xdb\xc2\xdb\xc3\xdb\xc4\xdb\xc5\xdb\xc6\xdb\xc7\xdb\xc8\xdb\xc9\xdb\xca", /* 3d80 */ "\xdb\xcb\xdb\xcc\xdb\xcd\xdb\xce\xdb\xcf\xdb\xd0\xdb\xd1\xdb\xd2\xdb\xd3\xdb\xd4\xdb\xd5\xdb\xd6\xdb\xd7\xdb\xd8\xdb\xd9\xdb\xda\xdb\xdb\xdb\xdc\xdb\xdd\xdb\xde\xdb\xdf\xdb\xe0\xdb\xe1\xdb\xe2\xdb\xe3\xdb\xe4\xdb\xe5\xdb\xe6\xdb\xe7\xdb\xe8\xdb\xe9\xdb\xea\xdb\xeb\xdb\xec\xdb\xed\xdb\xee\xdb\xef\xdb\xf0\xdb\xf1\xdb\xf2\xdb\xf3\xdb\xf4\xdb\xf5\xdb\xf6\xdb\xf7\xdb\xf8\xdb\xf9\xdb\xfa\xdb\xfb\xdb\xfc\xdb\xfd\xdb\xfe\xdc\x41\xdc\x42\xdc\x43\xdc\x44\xdc\x45\xdc\x46\xdc\x47\xdc\x48\xdc\x49\xdc\x4a\xdc\x4b\xdc\x4c\xdc\x4d\xdc\x4e\xdc\x4f\xdc\x50\xdc\x51\xdc\x52\xdc\x53\xdc\x54\xdc\x55\xdc\x56\xdc\x57\xdc\x58\xdc\x59\xdc\x5a\xdc\x5b\xdc\x5c\xdc\x5d\xdc\x5e\xdc\x5f\xdc\x60\xdc\x61\xdc\x62\xdc\x63\xdc\x64\xdc\x65\xdc\x66\xdc\x67\xdc\x68\xdc\x69\xdc\x6a\xdc\x6b\xdc\x6c\xdc\x6d\xdc\x6e\xdc\x6f\xdc\x70\xdc\x71\xdc\x72\xdc\x73\xdc\x74\xdc\x75\xdc\x76\xdc\x77\xdc\x78\xdc\x79\xdc\x7a\xdc\x7b\xdc\x7c\xdc\x7d\xdc\x7e\xdc\x7f\xdc\x80\xdc\x81\xdc\x82\xdc\x83\xdc\x84\xdc\x85\xdc\x86\xdc\x87\xdc\x88\xdc\x89\xdc\x8a\xdc\x8b\xdc\x8c", /* 3e00 */ "\xdc\x8d\xdc\x8e\xdc\x8f\xdc\x90\xdc\x91\xdc\x92\xdc\x93\xdc\x94\xdc\x95\xdc\x96\xdc\x97\xdc\x98\xdc\x99\xdc\x9a\xdc\x9b\xdc\x9c\xdc\x9d\xdc\x9e\xdc\x9f\xdc\xa0\xdc\xa1\xdc\xa2\xdc\xa3\xdc\xa4\xdc\xa5\xdc\xa6\xdc\xa7\xdc\xa8\xdc\xa9\xdc\xaa\xdc\xab\xdc\xac\xdc\xad\xdc\xae\xdc\xaf\xdc\xb0\xdc\xb1\xdc\xb2\xdc\xb3\xdc\xb4\xdc\xb5\xdc\xb6\xdc\xb7\xdc\xb8\xdc\xb9\xdc\xba\xdc\xbb\xdc\xbc\xdc\xbd\xdc\xbe\xdc\xbf\xdc\xc0\xdc\xc1\xdc\xc2\xdc\xc3\xdc\xc4\xdc\xc5\xdc\xc6\xdc\xc7\xdc\xc8\xdc\xc9\xdc\xca\xdc\xcb\xdc\xcc\xdc\xcd\xdc\xce\xdc\xcf\xdc\xd0\xdc\xd1\xdc\xd2\xdc\xd3\xdc\xd4\xdc\xd5\xdc\xd6\xdc\xd7\xdc\xd8\xdc\xd9\xdc\xda\xdc\xdb\xdc\xdc\xdc\xdd\xdc\xde\xdc\xdf\xdc\xe0\xdc\xe1\xdc\xe2\xdc\xe3\xdc\xe4\xdc\xe5\xdc\xe6\xdc\xe7\xdc\xe8\xdc\xe9\xdc\xea\xdc\xeb\xdc\xec\xdc\xed\xdc\xee\xdc\xef\xdc\xf0\xdc\xf1\xdc\xf2\xdc\xf3\xdc\xf4\xdc\xf5\xdc\xf6\xdc\xf7\xdc\xf8\xdc\xf9\xdc\xfa\xdc\xfb\xdc\xfc\xdc\xfd\xdc\xfe\xdd\x41\xdd\x42\xdd\x43\xdd\x44\xdd\x45\xdd\x46\xdd\x47\xdd\x48\xdd\x49\xdd\x4a\xdd\x4b\xdd\x4c\xdd\x4d\xdd\x4e", /* 3e80 */ "\xdd\x4f\xdd\x50\xdd\x51\xdd\x52\xdd\x53\xdd\x54\xdd\x55\xdd\x56\xdd\x57\xdd\x58\xdd\x59\xdd\x5a\xdd\x5b\xdd\x5c\xdd\x5d\xdd\x5e\xdd\x5f\xdd\x60\xdd\x61\xdd\x62\xdd\x63\xdd\x64\xdd\x65\xdd\x66\xdd\x67\xdd\x68\xdd\x69\xdd\x6a\xdd\x6b\xdd\x6c\xdd\x6d\xdd\x6e\xdd\x6f\xdd\x70\xdd\x71\xdd\x72\xdd\x73\xdd\x74\xdd\x75\xdd\x76\xdd\x77\xdd\x78\xdd\x79\xdd\x7a\xdd\x7b\xdd\x7c\xdd\x7d\xdd\x7e\xdd\x7f\xdd\x80\xdd\x81\xdd\x82\xdd\x83\xdd\x84\xdd\x85\xdd\x86\xdd\x87\xdd\x88\xdd\x89\xdd\x8a\xdd\x8b\xdd\x8c\xdd\x8d\xdd\x8e\xdd\x8f\xdd\x90\xdd\x91\xdd\x92\xdd\x93\xdd\x94\xdd\x95\xdd\x96\xdd\x97\xdd\x98\xdd\x99\xdd\x9a\xdd\x9b\xdd\x9c\xdd\x9d\xdd\x9e\xdd\x9f\xdd\xa0\xdd\xa1\xdd\xa2\xdd\xa3\xdd\xa4\xdd\xa5\xdd\xa6\xdd\xa7\xdd\xa8\xdd\xa9\xdd\xaa\xdd\xab\xdd\xac\xdd\xad\xdd\xae\xdd\xaf\xdd\xb0\xdd\xb1\xdd\xb2\xdd\xb3\xdd\xb4\xdd\xb5\xdd\xb6\xdd\xb7\xdd\xb8\xdd\xb9\xdd\xba\xdd\xbb\xdd\xbc\xdd\xbd\xdd\xbe\xdd\xbf\xdd\xc0\xdd\xc1\xdd\xc2\xdd\xc3\xdd\xc4\xdd\xc5\xdd\xc6\xdd\xc7\xdd\xc8\xdd\xc9\xdd\xca\xdd\xcb\xdd\xcc\xdd\xcd\xdd\xce", /* 3f00 */ "\xdd\xcf\xdd\xd0\xdd\xd1\xdd\xd2\xdd\xd3\xdd\xd4\xdd\xd5\xdd\xd6\xdd\xd7\xdd\xd8\xdd\xd9\xdd\xda\xdd\xdb\xdd\xdc\xdd\xdd\xdd\xde\xdd\xdf\xdd\xe0\xdd\xe1\xdd\xe2\xdd\xe3\xdd\xe4\xdd\xe5\xdd\xe6\xdd\xe7\xdd\xe8\xdd\xe9\xdd\xea\xdd\xeb\xdd\xec\xdd\xed\xdd\xee\xdd\xef\xdd\xf0\xdd\xf1\xdd\xf2\xdd\xf3\xdd\xf4\xdd\xf5\xdd\xf6\xdd\xf7\xdd\xf8\xdd\xf9\xdd\xfa\xdd\xfb\xdd\xfc\xdd\xfd\xdd\xfe\xde\x41\xde\x42\xde\x43\xde\x44\xde\x45\xde\x46\xde\x47\xde\x48\xde\x49\xde\x4a\xde\x4b\xde\x4c\xde\x4d\xde\x4e\xde\x4f\xde\x50\xde\x51\xde\x52\xde\x53\xde\x54\xde\x55\xde\x56\xde\x57\xde\x58\xde\x59\xde\x5a\xde\x5b\xde\x5c\xde\x5d\xde\x5e\xde\x5f\xde\x60\xde\x61\xde\x62\xde\x63\xde\x64\xde\x65\xde\x66\xde\x67\xde\x68\xde\x69\xde\x6a\xde\x6b\xde\x6c\xde\x6d\xde\x6e\xde\x6f\xde\x70\xde\x71\xde\x72\xde\x73\xde\x74\xde\x75\xde\x76\xde\x77\xde\x78\xde\x79\xde\x7a\xde\x7b\xde\x7c\xde\x7d\xde\x7e\xde\x7f\xde\x80\xde\x81\xde\x82\xde\x83\xde\x84\xde\x85\xde\x86\xde\x87\xde\x88\xde\x89\xde\x8a\xde\x8b\xde\x8c\xde\x8d\xde\x8e\xde\x8f\xde\x90", /* 3f80 */ "\xde\x91\xde\x92\xde\x93\xde\x94\xde\x95\xde\x96\xde\x97\xde\x98\xde\x99\xde\x9a\xde\x9b\xde\x9c\xde\x9d\xde\x9e\xde\x9f\xde\xa0\xde\xa1\xde\xa2\xde\xa3\xde\xa4\xde\xa5\xde\xa6\xde\xa7\xde\xa8\xde\xa9\xde\xaa\xde\xab\xde\xac\xde\xad\xde\xae\xde\xaf\xde\xb0\xde\xb1\xde\xb2\xde\xb3\xde\xb4\xde\xb5\xde\xb6\xde\xb7\xde\xb8\xde\xb9\xde\xba\xde\xbb\xde\xbc\xde\xbd\xde\xbe\xde\xbf\xde\xc0\xde\xc1\xde\xc2\xde\xc3\xde\xc4\xde\xc5\xde\xc6\xde\xc7\xde\xc8\xde\xc9\xde\xca\xde\xcb\xde\xcc\xde\xcd\xde\xce\xde\xcf\xde\xd0\xde\xd1\xde\xd2\xde\xd3\xde\xd4\xde\xd5\xde\xd6\xde\xd7\xde\xd8\xde\xd9\xde\xda\xde\xdb\xde\xdc\xde\xdd\xde\xde\xde\xdf\xde\xe0\xde\xe1\xde\xe2\xde\xe3\xde\xe4\xde\xe5\xde\xe6\xde\xe7\xde\xe8\xde\xe9\xde\xea\xde\xeb\xde\xec\xde\xed\xde\xee\xde\xef\xde\xf0\xde\xf1\xde\xf2\xde\xf3\xde\xf4\xde\xf5\xde\xf6\xde\xf7\xde\xf8\xde\xf9\xde\xfa\xde\xfb\xde\xfc\xde\xfd\xde\xfe\xdf\x41\xdf\x42\xdf\x43\xdf\x44\xdf\x45\xdf\x46\xdf\x47\xdf\x48\xdf\x49\xdf\x4a\xdf\x4b\xdf\x4c\xdf\x4d\xdf\x4e\xdf\x4f\xdf\x50\xdf\x51\xdf\x52", /* 4000 */ "\xdf\x53\xdf\x54\xdf\x55\xdf\x56\xdf\x57\xdf\x58\xdf\x59\xdf\x5a\xdf\x5b\xdf\x5c\xdf\x5d\xdf\x5e\xdf\x5f\xdf\x60\xdf\x61\xdf\x62\xdf\x63\xdf\x64\xdf\x65\xdf\x66\xdf\x67\xdf\x68\xdf\x69\xdf\x6a\xdf\x6b\xdf\x6c\xdf\x6d\xdf\x6e\xdf\x6f\xdf\x70\xdf\x71\xdf\x72\xdf\x73\xdf\x74\xdf\x75\xdf\x76\xdf\x77\xdf\x78\xdf\x79\xdf\x7a\xdf\x7b\xdf\x7c\xdf\x7d\xdf\x7e\xdf\x7f\xdf\x80\xdf\x81\xdf\x82\xdf\x83\xdf\x84\xdf\x85\xdf\x86\xdf\x87\xdf\x88\xdf\x89\xdf\x8a\xdf\x8b\xdf\x8c\xdf\x8d\xdf\x8e\xdf\x8f\xdf\x90\xdf\x91\xdf\x92\xdf\x93\xdf\x94\xdf\x95\xdf\x96\xdf\x97\xdf\x98\xdf\x99\xdf\x9a\xdf\x9b\xdf\x9c\xdf\x9d\xdf\x9e\xdf\x9f\xdf\xa0\xdf\xa1\xdf\xa2\xdf\xa3\xdf\xa4\xdf\xa5\xdf\xa6\xdf\xa7\xdf\xa8\xce\x75\xdf\xa9\xdf\xaa\xdf\xab\xdf\xac\xdf\xad\xdf\xae\xdf\xaf\xdf\xb0\xdf\xb1\xdf\xb2\xdf\xb3\xdf\xb4\xdf\xb5\xdf\xb6\xdf\xb7\xdf\xb8\xdf\xb9\xdf\xba\xdf\xbb\xdf\xbc\xdf\xbd\xdf\xbe\xdf\xbf\xdf\xc0\xdf\xc1\xdf\xc2\xdf\xc3\xdf\xc4\xdf\xc5\xdf\xc6\xdf\xc7\xdf\xc8\xdf\xc9\xdf\xca\xdf\xcb\xdf\xcc\xdf\xcd\xdf\xce\xdf\xcf\xdf\xd0\xdf\xd1", /* 4080 */ "\xdf\xd2\xdf\xd3\xdf\xd4\xdf\xd5\xdf\xd6\xdf\xd7\xdf\xd8\xdf\xd9\xdf\xda\xdf\xdb\xdf\xdc\xdf\xdd\xdf\xde\xdf\xdf\xdf\xe0\xdf\xe1\xdf\xe2\xdf\xe3\xdf\xe4\xdf\xe5\xdf\xe6\xdf\xe7\xdf\xe8\xdf\xe9\xdf\xea\xdf\xeb\xdf\xec\xdf\xed\xdf\xee\xdf\xef\xdf\xf0\xdf\xf1\xdf\xf2\xdf\xf3\xdf\xf4\xdf\xf5\xdf\xf6\xdf\xf7\xdf\xf8\xdf\xf9\xdf\xfa\xdf\xfb\xdf\xfc\xdf\xfd\xdf\xfe\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93", /* 4100 */ "\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xce\x76\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54", /* 4180 */ "\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4", /* 4200 */ "\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96", /* 4280 */ "\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58", /* 4300 */ "\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xce\x78\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7", /* 4380 */ "\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xce\x7e\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xce\x7d\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xce\x81\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96", /* 4400 */ "\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58", /* 4480 */ "\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xce\x82\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7", /* 4500 */ "\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99", /* 4580 */ "\xe6\x9a\xe6\x9b\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b", /* 4600 */ "\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xce\x84\xe7\xa8\xe7\xa9\xe7\xaa\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xce\x83\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9", /* 4680 */ "\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b", /* 4700 */ "\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xce\x86\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xce\x87\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xce\x88\xe9\x58\xe9\x59\xe9\x5a", /* 4780 */ "\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xce\x89\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9", /* 4800 */ "\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b", /* 4880 */ "\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xeb\x41\xeb\x42\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d", /* 4900 */ "\xeb\x5e\xeb\x5f\xeb\x60\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xce\x8b\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xce\x8c\xeb\xd7\xeb\xd8\xce\x8d\xeb\xd9\xeb\xda", /* 4980 */ "\xeb\xdb\xeb\xdc\xce\x8e\xce\x8f\xeb\xdd\xce\x90\xce\x91\xeb\xde\xeb\xdf\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xce\x93\xeb\xf2\xeb\xf3\xeb\xf4\xce\x92\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xce\x95\xce\x94\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94", /* 4a00 */ "\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56", /* 4a80 */ "\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6", /* 4b00 */ "\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98", /* 4b80 */ "\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a", /* 4c00 */ "\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xce\x9c\xef\xd2\xef\xd3\xef\xd4\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9", /* 4c80 */ "\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xce\x99\xce\x9a\xce\x9b\xce\x9d\xce\x98\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xf6\x41\xf6\x42\xf6\x43\xf6\x44\xf6\x45\xf6\x46\xf6\x47\xf6\x48\xf6\x49\xf6\x4a\xf6\x4b\xf6\x4c\xf6\x4d\xf6\x4e\xf6\x4f\xf6\x50\xf6\x51\xf6\x52\xf6\x53\xf6\x54\xf6\x55\xf6\x56\xf6\x57\xf6\x58\xf6\x59\xf6\x5a\xf6\x5b\xf6\x5c\xf6\x5d\xf6\x5e\xf6\x5f\xf6\x60\xf6\x61\xf6\x62\xf6\x63\xf6\x64\xf6\x65\xf6\x66\xf6\x67\xf6\x68\xf6\x69\xf6\x6a\xf6\x6b\xf6\x6c\xf6\x6d\xf6\x6e\xf6\x6f\xf6\x70\xf6\x71\xf6\x72\xf6\x73\xf6\x74\xf6\x75\xf6\x76\xf6\x77\xf6\x78\xf6\x79\xf6\x7a\xf6\x7b\xf6\x7c\xf6\x7d\xf6\x7e\xf6\x7f\xf6\x80\xf6\x81\xf6\x82\xf6\x83\xf6\x84\xf6\x85\xf6\x86\xf6\x87\xf6\x88\xf6\x89\xf6\x8a\xf6\x8b\xf6\x8c\xf6\x8d\xf6\x8e\xf6\x8f\xf6\x90\xf6\x91\xf6\x92\xf6\x93\xf6\x94\xf6\x95\xf6\x96", /* 4d00 */ "\xf6\x97\xf6\x98\xf6\x99\xf6\x9a\xf6\x9b\xf6\x9c\xf6\x9d\xf6\x9e\xf6\x9f\xf6\xa0\xf6\xa1\xf6\xa2\xf6\xa3\xf6\xa4\xf6\xa5\xf6\xa6\xf6\xa7\xf6\xa8\xf6\xa9\xce\x9e\xce\x9f\xce\xa0\xce\xa1\xce\xa2\xce\xa3\xce\xa4\xf6\xaa\xf6\xab\xf6\xac\xf6\xad\xf6\xae\xf6\xaf\xf6\xb0\xf6\xb1\xf6\xb2\xf6\xb3\xf6\xb4\xf6\xb5\xf6\xb6\xf6\xb7\xf6\xb8\xf6\xb9\xf6\xba\xf6\xbb\xf6\xbc\xf6\xbd\xf6\xbe\xf6\xbf\xf6\xc0\xf6\xc1\xf6\xc2\xf6\xc3\xf6\xc4\xf6\xc5\xf6\xc6\xf6\xc7\xf6\xc8\xf6\xc9\xf6\xca\xf6\xcb\xf6\xcc\xf6\xcd\xf6\xce\xf6\xcf\xf6\xd0\xf6\xd1\xf6\xd2\xf6\xd3\xf6\xd4\xf6\xd5\xf6\xd6\xf6\xd7\xf6\xd8\xf6\xd9\xf6\xda\xf6\xdb\xf6\xdc\xf6\xdd\xf6\xde\xf6\xdf\xf6\xe0\xf6\xe1\xf6\xe2\xf6\xe3\xf6\xe4\xf6\xe5\xf6\xe6\xf6\xe7\xf6\xe8\xf6\xe9\xf6\xea\xf6\xeb\xf6\xec\xf6\xed\xf6\xee\xf6\xef\xf6\xf0\xf6\xf1\xf6\xf2\xf6\xf3\xf6\xf4\xf6\xf5\xf6\xf6\xf6\xf7\xf6\xf8\xf6\xf9\xf6\xfa\xf6\xfb\xf6\xfc\xf6\xfd\xf6\xfe\xf7\x41\xf7\x42\xf7\x43\xf7\x44\xf7\x45\xf7\x46\xf7\x47\xf7\x48\xf7\x49\xf7\x4a\xf7\x4b\xf7\x4c\xf7\x4d\xf7\x4e\xf7\x4f\xf7\x50\xf7\x51", /* 4d80 */ "\xf7\x52\xf7\x53\xf7\x54\xf7\x55\xf7\x56\xf7\x57\xf7\x58\xf7\x59\xf7\x5a\xf7\x5b\xf7\x5c\xf7\x5d\xf7\x5e\xf7\x5f\xf7\x60\xf7\x61\xf7\x62\xf7\x63\xf7\x64\xf7\x65\xf7\x66\xf7\x67\xf7\x68\xf7\x69\xf7\x6a\xf7\x6b\xf7\x6c\xf7\x6d\xf7\x6e\xf7\x6f\xf7\x70\xf7\x71\xf7\x72\xf7\x73\xf7\x74\xf7\x75\xf7\x76\xf7\x77\xf7\x78\xf7\x79\xf7\x7a\xf7\x7b\xf7\x7c\xf7\x7d\xf7\x7e\xf7\x7f\xce\xa5\xf7\x80\xf7\x81\xf7\x82\xf7\x83\xf7\x84\xf7\x85\xf7\x86\xf7\x87\xf7\x88\xf7\x89\xf7\x8a\xf7\x8b\xf7\x8c\xf7\x8d\xf7\x8e\xf7\x8f\xf7\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4e00 */ "\x59\xba\x4b\xa0\x81\x41\x53\xde\x81\x42\x81\x43\x81\x44\x57\x93\x5b\x69\x54\xfc\x55\x6f\x58\x62\x5c\xa1\x49\xba\x5a\x8c\x81\x45\x5c\xa3\x4a\x94\x81\x46\x5c\x48\x54\x72\x5c\xa6\x55\xbf\x81\x47\x54\x91\x49\x9c\x59\xb4\x4a\xd3\x4b\xaa\x56\x5f\x5c\xa8\x81\x48\x81\x49\x81\x4a\x4b\xa9\x81\x4b\x51\x5d\x59\x6f\x81\x4c\x55\x45\x5c\xac\x81\x4d\x4c\xf5\x59\x5e\x62\x7c\x5b\xcf\x81\x4e\x81\x4f\x4c\x82\x81\x50\x4a\xad\x81\x51\x51\x79\x81\x52\x5c\xbb\x81\x53\x57\x89\x4b\x44\x57\xa9\x5b\xf6\x81\x54\x50\xf5\x4f\xd8\x5c\xae\x81\x55\x81\x56\x81\x57\x52\xca\x81\x58\x4f\xc2\x81\x59\x5c\xb0\x52\x54\x59\xe4\x81\x5a\x5b\xad\x57\xd9\x5b\x47\x4d\xf4\x4c\x46\x50\xd5\x81\x5b\x53\xb8\x53\x72\x54\x67\x81\x5c\x4d\x74\x81\x5d\x4a\x6b\x59\xd1\x81\x5e\x81\x5f\x5c\xbe\x4f\xc4\x53\xf1\x59\xb1\x58\x50\x58\x88\x81\x60\x81\x61\x81\x62\x81\x63\x55\xe8\x81\x64\x81\x65\x5c\xbf\x81\x66\x81\x67\x81\x68\x81\x69\x81\x6a\x81\x6b\x51\xf1\x51\xd1\x81\x6c\x54\xe8\x81\x6d\x81\x6e\x81\x6f\x81\x70\x81\x71\x81\x72\x81\x73\x81\x74\x81\x75\x81\x76\x54\x4c\x81\x77", /* 4e80 */ "\x81\x78\x81\x79\x81\x7a\x81\x7b\x81\x7c\x81\x7d\x51\x6b\x81\x7e\x5a\x89\x5b\x9a\x81\x7f\x55\xc1\x4b\xfd\x5c\xa0\x5a\x7a\x50\x98\x81\x81\x5a\xc5\x4e\x45\x5c\xc0\x57\xe4\x4f\xad\x81\x82\x81\x83\x5c\xa7\x81\x84\x59\x67\x58\xa8\x81\x85\x81\x86\x81\x87\x5c\xbc\x5d\x90\x57\x97\x50\x5a\x81\x88\x4f\x5b\x4d\xa4\x59\xdf\x49\xf9\x4d\xdf\x52\xb5\x81\x89\x58\x8e\x4f\xa8\x57\x44\x51\x61\x81\x8a\x81\x8b\x81\x8c\x54\x77\x5d\x92\x81\x8d\x5d\x95\x81\x8e\x81\x8f\x81\x90\x81\x91\x54\xca\x5c\xe8\x81\x92\x81\x93\x81\x94\x59\xd9\x55\xb1\x54\xc9\x5c\xeb\x5c\xe9\x5c\xc5\x4f\x97\x53\xcc\x4a\x91\x81\x95\x5c\xea\x4f\x92\x4f\x8a\x81\x96\x54\xd3\x4a\xd2\x81\x97\x81\x98\x51\xd7\x81\x99\x49\xd5\x5c\x70\x55\xca\x56\x9c\x5b\x6c\x4c\xb5\x58\x69\x81\x9a\x81\x9b\x81\x9c\x5d\x7a\x5c\xef\x54\x4a\x81\x9d\x5c\xed\x81\x9e\x4a\xf9\x51\x8f\x59\xd3\x81\x9f\x81\xa0\x5c\xec\x81\xa1\x59\xc6\x5c\xee\x52\x67\x81\xa2\x81\xa3\x81\xa4\x59\x97\x81\xa5\x5b\xd8\x5c\xf1\x81\xa6\x5c\xf4\x4e\xfd\x4e\xda\x81\xa7\x81\xa8\x81\xa9\x54\xcd\x81\xaa\x4c\x7d\x81\xab\x4c\x62", /* 4f00 */ "\x81\xac\x53\xf2\x81\xad\x81\xae\x81\xaf\x81\xb0\x81\xb1\x81\xb2\x81\xb3\x5c\xf7\x59\xc0\x81\xb4\x81\xb5\x57\xe8\x4e\xbe\x4c\x9d\x4c\x45\x58\xdc\x81\xb6\x81\xb7\x81\xb8\x81\xb9\x81\xba\x5b\xd9\x5a\x65\x4e\x90\x4e\x82\x5c\xf0\x81\xbb\x81\xbc\x55\x41\x57\xaf\x4a\xaa\x81\xbd\x5c\xf2\x81\xbe\x55\x6b\x5c\xf5\x51\xd6\x5c\xf6\x81\xbf\x81\xc0\x57\xb0\x5c\xf8\x81\xc1\x81\xc2\x81\xc3\x49\xad\x4d\x60\x81\xc4\x5d\x43\x81\xc5\x48\xe8\x81\xc6\x51\x87\x81\xc7\x55\x8d\x81\xc8\x56\x65\x81\xc9\x56\x66\x5d\x44\x81\xca\x81\xcb\x81\xcc\x81\xcd\x81\xce\x4b\x89\x81\xcf\x81\xd0\x4b\x4b\x81\xd1\x81\xd2\x81\xd3\x81\xd4\x81\xd5\x81\xd6\x57\xba\x4b\x6d\x5c\x41\x5c\x95\x5a\x73\x81\xd7\x56\xe4\x81\xd8\x4d\xcd\x81\xd9\x5d\x42\x5d\x7c\x5a\x81\x5c\xfc\x4c\x91\x5c\x98\x5c\xfd\x5c\xf9\x5d\x41\x52\xe2\x81\xda\x81\xdb\x5a\x56\x5c\xf3\x5d\x7d\x81\xdc\x5c\xfa\x81\xdd\x53\x86\x81\xde\x81\xdf\x50\xcf\x81\xe0\x81\xe1\x59\x91\x48\xda\x81\xe2\x81\xe3\x4e\xd0\x5d\x46\x81\xe4\x5d\x45\x81\xe5\x81\xe6\x81\xe7\x81\xe8\x5d\x4c\x5d\x4e\x81\xe9\x5d\x4b\x55\xb8", /* 4f80 */ "\x81\xea\x81\xeb\x81\xec\x5d\x49\x5b\xb5\x81\xed\x81\xee\x81\xef\x4a\x7e\x5d\x48\x81\xf0\x50\xfc\x81\xf1\x55\xcb\x81\xf2\x5d\x4a\x81\xf3\x5d\x47\x81\xf4\x81\xf5\x5d\x50\x81\xf6\x81\xf7\x4b\xb0\x81\xf8\x81\xf9\x81\xfa\x4d\x49\x81\xfb\x59\xbf\x81\xfc\x81\xfd\x58\x60\x82\x41\x82\x42\x51\xc1\x82\x43\x4f\x64\x5b\x8d\x49\xdf\x54\x68\x50\x8c\x5d\x4d\x82\x44\x5d\x4f\x82\x45\x57\xe9\x4d\xed\x82\x46\x82\x47\x82\x48\x82\x49\x82\x4a\x54\x76\x82\x4b\x82\x4c\x82\x4d\x82\x4e\x82\x4f\x82\x50\x82\x51\x82\x52\x82\x53\x49\x84\x82\x54\x82\x55\x82\x56\x4a\xd8\x4b\xec\x5d\x54\x82\x57\x82\x58\x82\x59\x82\x5a\x50\x41\x82\x5b\x82\x5c\x82\x5d\x5d\x7e\x54\x6e\x50\xfd\x5d\x58\x82\x5e\x82\x5f\x82\x60\x82\x61\x82\x62\x56\x77\x4c\x9e\x82\x63\x5d\x55\x82\x64\x5d\x57\x49\x43\x5a\x82\x5d\x59\x82\x65\x58\xc4\x82\x66\x5d\x56\x82\x67\x82\x68\x5d\x51\x82\x69\x5d\x52\x51\x49\x5d\x53\x82\x6a\x82\x6b\x4e\xf2\x58\xdd\x4c\xa8\x82\x6c\x4f\xe2\x82\x6d\x5d\x5d\x82\x6e\x82\x6f\x82\x70\x82\x71\x5d\x5a\x82\x72\x48\xb2\x82\x73\x82\x74\x82\x75\x5d\x62\x82\x76", /* 5000 */ "\x82\x77\x82\x78\x82\x79\x82\x7a\x82\x7b\x82\x7c\x82\x7d\x82\x7e\x82\x7f\x82\x81\x82\x82\x82\x83\x5d\x64\x49\x56\x82\x84\x5d\x5f\x82\x85\x82\x86\x4b\x59\x82\x87\x4f\xf2\x82\x88\x82\x89\x82\x8a\x56\xc7\x4d\xf1\x59\xcf\x82\x8b\x5d\x63\x82\x8c\x82\x8d\x4f\x89\x82\x8e\x4a\x4b\x82\x8f\x82\x90\x82\x91\x5d\x65\x4f\xea\x82\x92\x5d\x66\x5d\x5b\x52\xde\x82\x93\x5d\x5e\x5d\x61\x5d\x60\x82\x94\x82\x95\x82\x96\x82\x97\x82\x98\x82\x99\x82\x9a\x82\x9b\x82\x9c\x82\x9d\x82\x9e\x5b\x4e\x82\x9f\x5b\xb4\x82\xa0\x54\x84\x82\xa1\x82\xa2\x82\xa3\x82\xa4\x5d\x68\x82\xa5\x82\xa6\x82\xa7\x4e\xd8\x5d\x6a\x82\xa8\x82\xa9\x82\xaa\x5d\x5c\x82\xab\x5d\x6b\x53\xaa\x82\xac\x82\xad\x82\xae\x82\xaf\x82\xb0\x5d\x69\x82\xb1\x82\xb2\x82\xb3\x82\xb4\x5c\x97\x82\xb5\x57\x43\x82\xb6\x82\xb7\x82\xb8\x82\xb9\x82\xba\x82\xbb\x82\xbc\x82\xbd\x4f\x41\x82\xbe\x82\xbf\x82\xc0\x82\xc1\x82\xc2\x82\xc3\x5d\x6c\x82\xc4\x82\xc5\x82\xc6\x82\xc7\x82\xc8\x82\xc9\x82\xca\x82\xcb\x82\xcc\x53\x5c\x57\x55\x82\xcd\x82\xce\x82\xcf\x5d\x6d\x82\xd0\x82\xd1\x5d\x67\x4a\x45", /* 5080 */ "\x50\x9f\x82\xd2\x82\xd3\x82\xd4\x82\xd5\x4c\xb4\x82\xd6\x82\xd7\x50\xfb\x82\xd8\x82\xd9\x82\xda\x82\xdb\x48\xf7\x82\xdc\x82\xdd\x82\xde\x82\xdf\x82\xe0\x82\xe1\x82\xe2\x82\xe3\x82\xe4\x82\xe5\x82\xe6\x82\xe7\x82\xe8\x82\xe9\x82\xea\x82\xeb\x82\xec\x82\xed\x82\xee\x82\xef\x82\xf0\x4a\xf5\x82\xf1\x5d\x6e\x82\xf2\x5d\x6f\x4a\xa1\x5d\x70\x82\xf3\x82\xf4\x4a\xde\x82\xf5\x82\xf6\x82\xf7\x82\xf8\x82\xf9\x48\xc0\x82\xfa\x82\xfb\x82\xfc\x82\xfd\x83\x41\x83\x42\x83\x43\x5d\x71\x55\x55\x83\x44\x83\x45\x83\x46\x83\x47\x83\x48\x83\x49\x83\x4a\x83\x4b\x83\x4c\x83\x4d\x83\x4e\x83\x4f\x83\x50\x83\x51\x83\x52\x83\x53\x83\x54\x83\x55\x83\x56\x58\x92\x83\x57\x83\x58\x83\x59\x83\x5a\x83\x5b\x83\x5c\x5d\x72\x83\x5d\x83\x5e\x83\x5f\x51\x65\x83\x60\x83\x61\x83\x62\x83\x63\x83\x64\x83\x65\x83\x66\x83\x67\x83\x68\x83\x69\x83\x6a\x5d\x76\x55\x4e\x83\x6b\x83\x6c\x83\x6d\x83\x6e\x5d\x75\x5d\x74\x5d\x77\x83\x6f\x83\x70\x83\x71\x83\x72\x56\x7b\x83\x73\x4f\x49\x83\x74\x83\x75\x83\x76\x83\x77\x83\x78\x53\xa6\x83\x79\x83\x7a\x83\x7b\x83\x7c", /* 5100 */ "\x83\x7d\x83\x7e\x83\x7f\x83\x81\x83\x82\x83\x83\x5d\x73\x5d\x78\x83\x84\x83\x85\x83\x86\x5d\x79\x83\x87\x83\x88\x83\x89\x83\x8a\x83\x8b\x83\x8c\x54\xe4\x83\x8d\x83\x8e\x83\x8f\x83\x90\x83\x91\x83\x92\x83\x93\x83\x94\x83\x95\x83\x96\x83\x97\x83\x98\x83\x99\x83\x9a\x50\xdb\x83\x9b\x83\x9c\x83\x9d\x83\x9e\x83\x9f\x83\xa0\x83\xa1\x83\xa2\x83\xa3\x83\xa4\x83\xa5\x83\xa6\x83\xa7\x83\xa8\x83\xa9\x83\xaa\x83\xab\x83\xac\x83\xad\x83\xae\x83\xaf\x83\xb0\x83\xb1\x83\xb2\x83\xb3\x83\xb4\x83\xb5\x83\xb6\x83\xb7\x4b\xf8\x5c\xa2\x5a\xc9\x83\xb8\x5a\xa9\x58\xd5\x4a\x85\x5b\x77\x83\xb9\x58\x68\x4d\x83\x83\xba\x50\x6b\x83\xbb\x52\x83\x83\xbc\x83\xbd\x83\xbe\x4b\xd1\x83\xbf\x83\xc0\x57\x63\x5d\x8f\x5d\x91\x83\xc1\x83\xc2\x83\xc3\x4b\x53\x83\xc4\x4b\xb4\x83\xc5\x83\xc6\x83\xc7\x83\xc8\x83\xc9\x4f\xa3\x83\xca\x83\xcb\x54\xea\x83\xcc\x83\xcd\x54\xaa\x83\xce\x83\xcf\x48\xca\x4d\x4b\x51\x9a\x5d\x83\x83\xd0\x50\xbb\x4d\x52\x83\xd1\x4d\x78\x58\xca\x49\x99\x53\xe3\x4f\xde\x4b\x85\x5c\x68\x83\xd2\x59\x99\x4e\xe5\x55\xdd\x83\xd3\x83\xd4", /* 5180 */ "\x4e\xbc\x5d\x87\x5c\xe6\x83\xd5\x83\xd6\x52\xd9\x83\xd7\x83\xd8\x4c\xd3\x54\xbc\x83\xd9\x83\xda\x49\xe0\x5a\xd8\x83\xdb\x83\xdc\x83\xdd\x83\xde\x52\x50\x83\xdf\x83\xe0\x52\x82\x5d\xa1\x54\xde\x83\xe1\x58\xb3\x83\xe2\x4f\xfb\x53\x49\x83\xe3\x83\xe4\x83\xe5\x4d\x7a\x83\xe6\x5d\xa2\x83\xe7\x5a\xa8\x5d\xa3\x83\xe8\x83\xe9\x83\xea\x83\xeb\x83\xec\x5d\x9c\x4b\xab\x83\xed\x83\xee\x4c\x8c\x49\x9a\x5d\x9d\x4a\x86\x4f\xf5\x83\xef\x50\x97\x59\xb0\x50\xe3\x83\xf0\x83\xf1\x83\xf2\x4b\xb2\x5d\x9f\x5d\x9e\x83\xf3\x83\xf4\x4f\xba\x83\xf5\x83\xf6\x83\xf7\x53\xdf\x83\xf8\x5c\x5c\x5d\xa0\x83\xf9\x51\x59\x83\xfa\x4b\x93\x51\x89\x83\xfb\x83\xfc\x4e\xf4\x83\xfd\x4a\xd4\x84\x41\x84\x42\x84\x43\x84\x44\x84\x45\x84\x46\x84\x47\x84\x48\x84\x49\x51\x7d\x84\x4a\x52\xfc\x84\x4b\x84\x4c\x4e\xb7\x4c\x52\x84\x4d\x84\x4e\x4c\x90\x84\x4f\x84\x50\x84\x51\x84\x52\x84\x53\x84\x54\x5d\x8d\x84\x55\x53\xbd\x84\x56\x50\x4d\x4e\x6b\x84\x57\x84\x58\x4b\x6a\x84\x59\x5e\x69\x58\xd6\x84\x5a\x57\x59\x48\xbb\x4a\x97\x4e\x98\x5e\x6a\x4d\xae\x84\x5b\x5a\xe3", /* 5200 */ "\x4b\x56\x4b\x94\x5c\xd5\x54\xcf\x84\x5c\x84\x5d\x4c\x76\x54\x70\x5c\xd6\x84\x5e\x50\x4f\x84\x5f\x84\x60\x5e\x5b\x5c\xd7\x84\x61\x84\x62\x58\xcb\x4e\x4e\x84\x63\x84\x64\x84\x65\x66\x5e\x51\x70\x51\x96\x5a\xf1\x4c\xd4\x4a\xb3\x84\x66\x4a\x96\x84\x67\x84\x68\x55\x5e\x84\x69\x84\x6a\x84\x6b\x53\x70\x84\x6c\x84\x6d\x84\x6e\x53\x79\x50\xfa\x84\x6f\x49\x91\x84\x70\x5c\xd8\x4d\x6e\x84\x71\x4b\x5d\x84\x72\x84\x73\x5c\xd9\x84\x74\x84\x75\x5b\xc5\x56\x42\x54\xae\x55\x52\x4a\xcb\x50\x6c\x84\x76\x4d\x95\x84\x77\x5c\xda\x5c\xdb\x4b\xe6\x4e\xc0\x56\xe9\x84\x78\x84\x79\x84\x7a\x84\x7b\x84\x7c\x84\x7d\x58\x98\x84\x7e\x5c\xdc\x54\x50\x84\x7f\x84\x81\x4d\x70\x4f\x43\x84\x82\x84\x83\x56\xdd\x84\x84\x53\xc9\x84\x85\x84\x86\x84\x87\x84\x88\x84\x89\x5c\xdf\x84\x8a\x5c\xdd\x84\x8b\x84\x8c\x5c\xde\x84\x8d\x84\x8e\x84\x8f\x48\xfd\x84\x90\x4f\xe6\x84\x91\x55\xa2\x4e\xf3\x84\x92\x84\x93\x84\x94\x84\x95\x4c\xb0\x84\x96\x84\x97\x4c\xed\x84\x98\x84\x99\x84\x9a\x84\x9b\x84\x9c\x84\x9d\x84\x9e\x84\x9f\x84\xa0\x84\xa1\x5c\xe1\x84\xa2\x4f\x6b", /* 5280 */ "\x84\xa3\x5c\xe3\x5c\xe2\x84\xa4\x84\xa5\x84\xa6\x84\xa7\x84\xa8\x53\x9d\x84\xa9\x84\xaa\x84\xab\x84\xac\x84\xad\x84\xae\x84\xaf\x5c\xe4\x84\xb0\x84\xb1\x5c\xe5\x84\xb2\x84\xb3\x84\xb4\x84\xb5\x84\xb6\x84\xb7\x84\xb8\x51\x46\x84\xb9\x54\xaf\x48\xeb\x4d\x46\x4e\xd2\x57\xf0\x5e\x5d\x51\x73\x84\xba\x84\xbb\x84\xbc\x84\xbd\x4b\xae\x5b\xf9\x53\x4c\x4f\x79\x5e\x5e\x5e\x5f\x84\xbe\x84\xbf\x84\xc0\x50\xf7\x4f\xa1\x50\xcc\x84\xc1\x84\xc2\x84\xc3\x84\xc4\x84\xc5\x84\xc6\x84\xc7\x84\xc8\x84\xc9\x84\xca\x5e\x60\x55\xc5\x84\xcb\x84\xcc\x84\xcd\x49\xa9\x84\xce\x84\xcf\x84\xd0\x5a\x62\x84\xd1\x52\x84\x84\xd2\x59\x4b\x84\xd3\x84\xd4\x84\xd5\x84\xd6\x5e\x62\x84\xd7\x50\xd4\x84\xd8\x84\xd9\x84\xda\x5e\x63\x84\xdb\x50\x51\x84\xdc\x84\xdd\x84\xde\x84\xdf\x84\xe0\x84\xe1\x52\xbb\x84\xe2\x84\xe3\x84\xe4\x84\xe5\x54\x7a\x84\xe6\x84\xe7\x84\xe8\x84\xe9\x84\xea\x84\xeb\x84\xec\x84\xed\x84\xee\x84\xef\x84\xf0\x5e\x64\x84\xf1\x84\xf2\x84\xf3\x84\xf4\x84\xf5\x84\xf6\x84\xf7\x84\xf8\x5d\x89\x55\x77\x84\xf9\x84\xfa\x84\xfb\x4d\x54\x57\xef", /* 5300 */ "\x5a\xc7\x84\xfc\x84\xfd\x85\x41\x85\x42\x48\xfb\x4a\xd1\x85\x43\x58\xd8\x85\x44\x85\x45\x85\x46\x85\x47\x5d\x8a\x85\x48\x5f\xca\x5d\x8c\x85\x49\x85\x4a\x85\x4b\x85\x4c\x5c\xaf\x4e\x4f\x49\x51\x85\x4d\x4a\x77\x5c\xcd\x85\x4e\x85\x4f\x5a\xd0\x85\x50\x85\x51\x4f\x53\x50\x90\x85\x52\x58\x5b\x85\x53\x85\x54\x5c\xcf\x85\x55\x85\x56\x85\x57\x4c\x6b\x85\x58\x85\x59\x85\x5a\x5c\xd0\x85\x5b\x85\x5c\x85\x5d\x85\x5e\x85\x5f\x85\x60\x85\x61\x85\x62\x85\x63\x85\x64\x53\xa4\x54\x99\x59\xbc\x85\x65\x85\x66\x5c\xd1\x52\xe3\x85\x67\x55\xad\x85\x68\x54\x47\x85\x69\x5c\xa5\x85\x6a\x55\x9e\x57\xe6\x4e\x7c\x48\xea\x85\x6b\x85\x6c\x85\x6d\x4e\x4a\x58\xac\x85\x6e\x49\x50\x5c\x85\x5c\x5f\x85\x6f\x4b\x45\x51\xf3\x52\xce\x85\x70\x85\x71\x49\xa8\x85\x72\x49\xb6\x85\x73\x49\x86\x60\x52\x5b\x5c\x50\x48\x51\xab\x5c\xd4\x51\xb0\x85\x74\x5c\xd3\x57\xd3\x85\x75\x5d\xdf\x85\x76\x57\xbf\x85\x77\x85\x78\x5c\xb3\x52\x4e\x5a\x41\x57\xa2\x85\x79\x4e\xb3\x54\xb3\x51\xd0\x85\x7a\x4f\xec\x58\xb5\x85\x7b\x5d\xe0\x85\x7c\x85\x7d\x85\x7e\x85\x7f\x54\x85", /* 5380 */ "\x85\x81\x85\x82\x4a\x47\x85\x83\x4b\xf1\x56\xfb\x50\xf9\x85\x84\x85\x85\x50\xf6\x85\x86\x59\x59\x59\x82\x5c\xc6\x85\x87\x85\x88\x85\x89\x85\x8a\x85\x8b\x85\x8c\x85\x8d\x49\xdd\x85\x8e\x85\x8f\x50\xe4\x85\x90\x4d\xf0\x85\x91\x85\x92\x5c\xc7\x85\x93\x5a\xac\x85\x94\x85\x95\x58\x82\x5c\xc8\x85\x96\x5c\xc9\x58\x63\x85\x97\x4a\x99\x4f\xc6\x85\x98\x85\x99\x85\x9a\x85\x9b\x5c\xca\x85\x9c\x85\x9d\x85\x9e\x85\x9f\x85\xa0\x85\xa1\x85\xa2\x5e\x6c\x85\xa3\x85\xa4\x85\xa5\x85\xa6\x54\xa4\x85\xa7\x85\xa8\x85\xa9\x58\x78\x85\xaa\x54\xfd\x49\xcd\x85\xab\x85\xac\x85\xad\x85\xae\x85\xaf\x5a\x76\x49\xe5\x4e\xaf\x5a\x71\x56\x4b\x4c\x54\x85\xb0\x85\xb1\x85\xb2\x4c\x42\x85\xb3\x85\xb4\x55\xe4\x85\xb5\x54\xa0\x55\xdb\x49\x85\x58\xef\x85\xb6\x53\x71\x85\xb7\x85\xb8\x85\xb9\x5e\x65\x4b\x9f\x85\xba\x85\xbb\x50\x7a\x4d\x65\x4f\xe3\x51\x8e\x85\xbc\x60\x56\x60\x55\x5b\xba\x4f\x70\x5b\x79\x48\xc7\x4b\xa2\x50\x69\x56\xa7\x60\x53\x55\xb6\x5a\x72\x85\xbd\x5c\xce\x59\xb5\x4d\xc4\x56\x5e\x56\xbd\x85\xbe\x60\x57\x4b\x91\x60\x54\x85\xbf\x85\xc0", /* 5400 */ "\x85\xc1\x5a\x96\x85\xc2\x4a\x74\x4c\xf6\x85\xc3\x60\x5a\x85\xc4\x4d\xce\x4e\xa9\x4b\x96\x85\xc5\x57\x4c\x52\x9c\x4d\xf2\x50\xf3\x57\x62\x58\x93\x60\x58\x58\x65\x85\xc6\x51\xbf\x60\x59\x51\xef\x85\xc7\x85\xc8\x85\xc9\x4f\xfc\x85\xca\x51\x7f\x57\x6c\x59\xf6\x4c\x6d\x60\x61\x85\xcb\x60\x64\x85\xcc\x85\xcd\x4c\x92\x48\xc8\x4b\xd5\x4c\x74\x85\xce\x4d\xab\x56\xfc\x50\x74\x56\x51\x53\xf3\x85\xcf\x5b\xa7\x60\x65\x85\xd0\x57\xe1\x4a\x53\x85\xd1\x85\xd2\x57\xfb\x4a\xb4\x85\xd3\x57\xc6\x4d\xef\x85\xd4\x57\xe0\x85\xd5\x59\x5d\x85\xd6\x85\xd7\x60\x60\x85\xd8\x85\xd9\x4a\xf3\x85\xda\x4a\x6a\x85\xdb\x4c\xe5\x60\x5b\x85\xdc\x85\xdd\x85\xde\x85\xdf\x52\xc4\x85\xe0\x60\x5c\x60\x5d\x60\x5e\x53\x5b\x60\x5f\x60\x62\x5a\xb0\x60\x63\x85\xe1\x54\x5a\x57\xd7\x85\xe2\x85\xe3\x85\xe4\x85\xe5\x85\xe6\x52\xd7\x85\xe7\x60\x6a\x85\xe8\x60\x6f\x85\xe9\x5b\xdb\x85\xea\x85\xeb\x85\xec\x85\xed\x85\xee\x85\xef\x85\xf0\x85\xf1\x60\x69\x60\x7a\x57\xb5\x85\xf2\x4d\xc6\x60\x6e\x60\x68\x53\x7e\x85\xf3\x85\xf4\x55\x8c\x4d\xf3\x52\x9d\x85\xf5\x85\xf6", /* 5480 */ "\x4f\xd6\x85\xf7\x60\x66\x85\xf8\x60\x6d\x85\xf9\x53\x78\x85\xfa\x85\xfb\x85\xfc\x85\xfd\x5b\x46\x4d\xcc\x86\x41\x4f\xcb\x5a\x5d\x4c\xbf\x86\x42\x5b\xe3\x86\x43\x60\x67\x4d\x5e\x50\x47\x86\x44\x86\x45\x51\x9d\x60\x6b\x60\x6c\x86\x46\x60\x70\x86\x47\x86\x48\x86\x49\x86\x4a\x86\x4b\x60\x7b\x60\x86\x86\x4c\x60\x77\x60\x76\x5c\x69\x60\x84\x60\x85\x63\x8c\x59\xa6\x60\x72\x86\x4d\x50\x49\x86\x4e\x5a\xda\x86\x4f\x50\x68\x60\x74\x86\x50\x86\x51\x86\x52\x58\x6c\x86\x53\x86\x54\x60\x7d\x86\x55\x59\x6a\x86\x56\x60\x7e\x48\xa6\x53\xb6\x60\x73\x86\x57\x4d\xe4\x86\x58\x4b\xde\x57\x7b\x4d\x9f\x5a\xd4\x86\x59\x86\x5a\x60\x7f\x58\x8d\x48\xa4\x60\x88\x60\x71\x59\x66\x60\x75\x60\x78\x60\x79\x60\x7c\x86\x5b\x4e\x49\x86\x5c\x60\x81\x60\x82\x86\x5d\x60\x83\x60\x87\x60\x89\x5a\x54\x86\x5e\x86\x5f\x86\x60\x86\x61\x86\x62\x4c\xe6\x53\x56\x60\x8b\x55\x7a\x51\x48\x52\xc3\x86\x63\x86\x64\x50\x7e\x58\x99\x86\x65\x86\x66\x86\x67\x5b\x7c\x60\x8f\x86\x68\x86\x69\x86\x6a\x86\x6b\x86\x6c\x86\x6d\x49\xb7\x86\x6e\x4d\xde\x60\x8d\x86\x6f\x5e\x61", /* 5500 */ "\x86\x70\x59\x85\x86\x71\x86\x72\x86\x73\x86\x74\x56\x95\x4a\xbc\x86\x75\x48\xa5\x86\x76\x86\x77\x86\x78\x86\x79\x86\x7a\x60\x92\x56\xc5\x60\x93\x86\x7b\x86\x7c\x60\x8e\x86\x7d\x86\x7e\x86\x7f\x86\x81\x86\x82\x86\x83\x60\x8a\x86\x84\x86\x85\x86\x86\x86\x87\x60\x8c\x86\x88\x60\x90\x60\x91\x4e\x5d\x86\x89\x86\x8a\x60\x94\x86\x8b\x86\x8c\x60\x95\x86\x8d\x4e\x43\x86\x8e\x55\xda\x57\xa7\x60\xa6\x4a\x4a\x86\x8f\x60\xa5\x86\x90\x86\x91\x86\x92\x60\xa0\x86\x93\x86\x94\x86\x95\x86\x96\x60\x9f\x86\x97\x57\x79\x60\x9d\x86\x98\x60\x9b\x86\x99\x50\x70\x5c\x64\x86\x9a\x55\x6c\x86\x9b\x86\x9c\x60\x99\x48\xa0\x86\x9d\x86\x9e\x86\x9f\x86\xa0\x86\xa1\x60\x9e\x86\xa2\x86\xa3\x86\xa4\x86\xa5\x60\x9c\x60\xa1\x86\xa6\x86\xa7\x86\xa8\x86\xa9\x86\xaa\x60\xa7\x86\xab\x86\xac\x86\xad\x86\xae\x4c\x68\x86\xaf\x86\xb0\x53\xa0\x55\x56\x50\xb1\x60\x96\x86\xb1\x86\xb2\x53\x5e\x86\xb3\x5c\xc3\x60\x9a\x52\xf5\x86\xb4\x86\xb5\x86\xb6\x86\xb7\x86\xb8\x86\xb9\x60\xa2\x60\xa3\x60\xa4\x58\xa4\x86\xba\x86\xbb\x60\xb3\x56\xe3\x86\xbc\x60\xb0\x86\xbd", /* 5580 */ "\x50\x46\x60\xae\x57\xb8\x60\xaa\x55\x66\x86\xbe\x86\xbf\x50\xad\x60\xad\x4d\xec\x4d\xaf\x60\xa8\x86\xc0\x86\xc1\x86\xc2\x60\x97\x86\xc3\x60\xb2\x86\xc4\x86\xc5\x60\xb7\x86\xc6\x86\xc7\x86\xc8\x4a\xac\x60\xb8\x86\xc9\x86\xca\x58\x52\x4d\xc7\x86\xcb\x60\xaf\x86\xcc\x86\xcd\x86\xce\x86\xcf\x86\xd0\x86\xd1\x86\xd2\x58\xf9\x86\xd3\x86\xd4\x86\xd5\x86\xd6\x86\xd7\x86\xd8\x86\xd9\x86\xda\x86\xdb\x60\xab\x86\xdc\x5a\xfa\x86\xdd\x60\x98\x86\xde\x53\x88\x86\xdf\x60\xac\x86\xe0\x5a\x98\x86\xe1\x60\xb5\x60\xb6\x86\xe2\x86\xe3\x86\xe4\x86\xe5\x86\xe6\x60\xc3\x58\xe0\x86\xe7\x86\xe8\x86\xe9\x60\xbb\x86\xea\x86\xeb\x60\xc8\x60\xc9\x86\xec\x86\xed\x86\xee\x60\xbd\x60\xa9\x55\x44\x60\xc0\x86\xef\x60\xb1\x86\xf0\x86\xf1\x86\xf2\x86\xf3\x86\xf4\x55\xc7\x60\xc2\x86\xf5\x60\xb4\x86\xf6\x57\xca\x86\xf7\x56\x63\x60\xcc\x60\xc5\x60\xc1\x86\xf8\x60\xca\x86\xf9\x60\xb9\x60\xbe\x60\xbf\x86\xfa\x86\xfb\x60\xc4\x86\xfc\x86\xfd\x60\xc6\x60\xc7\x87\x41\x60\xcb\x87\x42\x60\xba\x87\x43\x87\x44\x87\x45\x87\x46\x87\x47\x56\x74\x60\xd4\x87\x48", /* 5600 */ "\x60\xd5\x60\xd1\x87\x49\x87\x4a\x87\x4b\x87\x4c\x87\x4d\x87\x4e\x60\xcf\x4e\xcd\x87\x4f\x87\x50\x60\xd0\x87\x51\x4c\xc1\x5c\xc4\x87\x52\x87\x53\x87\x54\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x58\xe9\x87\x5a\x87\x5b\x51\xee\x87\x5c\x87\x5d\x60\xce\x60\xbc\x87\x5e\x87\x5f\x87\x60\x60\xd3\x60\xd2\x87\x61\x87\x62\x60\xd6\x87\x63\x87\x64\x87\x65\x87\x66\x60\xdb\x60\xd7\x87\x67\x87\x68\x87\x69\x5b\xf5\x4a\x50\x87\x6a\x5c\x8d\x87\x6b\x56\x5b\x87\x6c\x87\x6d\x60\xd9\x87\x6e\x57\xfa\x87\x6f\x87\x70\x87\x71\x4d\xd8\x87\x72\x87\x73\x87\x74\x87\x75\x87\x76\x87\x77\x87\x78\x87\x79\x87\x7a\x87\x7b\x87\x7c\x87\x7d\x60\xe0\x60\xdc\x59\xac\x87\x7e\x87\x7f\x87\x81\x87\x82\x87\x83\x60\xe1\x87\x84\x87\x85\x60\xda\x60\xd8\x60\xde\x87\x86\x87\x87\x60\xdf\x87\x88\x87\x89\x87\x8a\x87\x8b\x87\x8c\x60\xdd\x87\x8d\x60\xe3\x87\x8e\x87\x8f\x87\x90\x53\xf6\x5c\xab\x5a\xea\x60\xe5\x55\xc8\x87\x91\x87\x92\x87\x93\x87\x94\x60\xe4\x87\x95\x87\x96\x87\x97\x87\x98\x4c\xc0\x87\x99\x87\x9a\x87\x9b\x87\x9c\x60\xe6\x60\xe7\x87\x9d\x87\x9e\x87\x9f", /* 5680 */ "\x87\xa0\x87\xa1\x87\xa2\x87\xa3\x87\xa4\x60\xe8\x60\xe2\x87\xa5\x87\xa6\x87\xa7\x87\xa8\x87\xa9\x87\xaa\x87\xab\x4d\xbe\x56\xe6\x87\xac\x87\xad\x87\xae\x60\xe9\x87\xaf\x87\xb0\x87\xb1\x87\xb2\x87\xb3\x87\xb4\x87\xb5\x87\xb6\x87\xb7\x87\xb8\x87\xb9\x87\xba\x87\xbb\x87\xbc\x87\xbd\x58\x9a\x87\xbe\x87\xbf\x87\xc0\x87\xc1\x87\xc2\x87\xc3\x87\xc4\x87\xc5\x87\xc6\x87\xc7\x87\xc8\x60\xea\x87\xc9\x87\xca\x87\xcb\x87\xcc\x87\xcd\x87\xce\x87\xcf\x54\xc1\x87\xd0\x87\xd1\x87\xd2\x87\xd3\x4f\x60\x87\xd4\x87\xd5\x87\xd6\x87\xd7\x87\xd8\x87\xd9\x87\xda\x87\xdb\x87\xdc\x87\xdd\x87\xde\x87\xdf\x87\xe0\x52\xd1\x87\xe1\x87\xe2\x87\xe3\x87\xe4\x87\xe5\x87\xe6\x87\xe7\x87\xe8\x87\xe9\x60\xeb\x87\xea\x87\xeb\x60\xec\x87\xec\x87\xed\x54\x95\x56\x64\x87\xee\x60\xed\x4e\x78\x5c\xb5\x59\xf1\x60\xee\x57\x65\x87\xef\x4b\xd9\x87\xf0\x87\xf1\x87\xf2\x87\xf3\x87\xf4\x87\xf5\x60\xf0\x87\xf6\x5a\xaf\x87\xf7\x87\xf8\x50\xa6\x4a\xd0\x87\xf9\x87\xfa\x57\xa6\x60\xef\x87\xfb\x87\xfc\x87\xfd\x60\xf1\x4d\x6c\x88\x41\x88\x42\x4d\x9b\x57\x5c\x60\xf2", /* 5700 */ "\x88\x43\x88\x44\x88\x45\x53\xd3\x60\xf3\x88\x46\x5a\xb1\x88\x47\x54\xa5\x60\xf5\x60\xf4\x88\x48\x88\x49\x88\x4a\x88\x4b\x88\x4c\x88\x4d\x88\x4e\x88\x4f\x88\x50\x88\x51\x88\x52\x88\x53\x88\x54\x88\x55\x88\x56\x88\x57\x88\x58\x60\xf6\x88\x59\x88\x5a\x57\x61\x88\x5b\x88\x5c\x88\x5d\x55\xa4\x88\x5e\x88\x5f\x88\x60\x88\x61\x5a\xd9\x5e\x77\x5e\x79\x88\x62\x5e\x78\x4d\x88\x5e\x7c\x5e\x7d\x4b\x78\x88\x63\x88\x64\x5e\x7a\x88\x65\x88\x66\x88\x67\x88\x68\x88\x69\x5e\x7b\x4a\x41\x5e\x7f\x88\x6a\x88\x6b\x4e\x99\x88\x6c\x5b\xb6\x88\x6d\x5e\x81\x88\x6e\x88\x6f\x88\x70\x88\x71\x4f\xf8\x88\x72\x88\x73\x4c\x5b\x88\x74\x5e\x70\x56\xad\x50\x52\x4e\x55\x5c\x99\x50\x73\x88\x75\x88\x76\x88\x77\x88\x78\x88\x79\x50\x8a\x88\x7a\x88\x7b\x4e\xe0\x56\xb2\x5e\x7e\x48\xd2\x57\xea\x4c\x78\x5c\x59\x53\xc1\x88\x7c\x88\x7d\x50\xa3\x88\x7e\x56\xb8\x88\x7f\x5e\x88\x5e\x82\x53\xb9\x5e\x84\x88\x81\x5e\x89\x88\x82\x53\x98\x88\x83\x88\x84\x88\x85\x5e\x8b\x88\x86\x88\x87\x5e\x8a\x50\x60\x88\x88\x88\x89\x88\x8a\x5e\x87\x5e\x86\x88\x8b\x88\x8c\x88\x8d", /* 5780 */ "\x88\x8e\x88\x8f\x4a\xb8\x50\xab\x51\xa1\x5e\x83\x5e\x85\x88\x90\x88\x91\x88\x92\x88\x93\x58\xcc\x5e\x8e\x88\x94\x88\x95\x88\x96\x88\x97\x88\x98\x50\xdc\x5e\x93\x88\x99\x88\x9a\x88\x9b\x88\x9c\x88\x9d\x88\x9e\x88\x9f\x4b\xe1\x88\xa0\x88\xa1\x88\xa2\x88\xa3\x5e\x94\x5e\x72\x4d\x58\x5a\xaa\x5e\x8d\x88\xa4\x50\x71\x5e\x91\x88\xa5\x5e\x71\x88\xa6\x4b\x87\x88\xa7\x5e\x8c\x50\x86\x88\xa8\x88\xa9\x88\xaa\x5e\x8f\x88\xab\x5e\x92\x88\xac\x88\xad\x88\xae\x5e\x9a\x88\xaf\x88\xb0\x88\xb1\x88\xb2\x88\xb3\x88\xb4\x88\xb5\x88\xb6\x88\xb7\x4d\x41\x48\xa2\x88\xb8\x88\xb9\x88\xba\x88\xbb\x88\xbc\x88\xbd\x88\xbe\x51\xf0\x88\xbf\x88\xc0\x4a\x67\x5e\x90\x88\xc1\x88\xc2\x5e\x99\x88\xc3\x53\xd1\x5e\x95\x88\xc4\x88\xc5\x5e\x96\x5e\x98\x5e\x97\x88\xc6\x88\xc7\x5e\x9f\x88\xc8\x5a\x93\x49\xb9\x88\xc9\x88\xca\x88\xcb\x5e\x9e\x88\xcc\x88\xcd\x88\xce\x88\xcf\x88\xd0\x88\xd1\x88\xd2\x88\xd3\x5e\xa3\x88\xd4\x5e\x9c\x88\xd5\x88\xd6\x88\xd7\x88\xd8\x5e\x9b\x88\xd9\x88\xda\x88\xdb\x5e\x9d\x53\x81\x4e\x9a\x88\xdc\x88\xdd\x5e\xa2\x88\xde\x88\xdf", /* 5800 */ "\x5e\xa4\x88\xe0\x56\xc2\x88\xe1\x88\xe2\x88\xe3\x4b\xd0\x5f\x60\x88\xe4\x88\xe5\x88\xe6\x5e\xa0\x88\xe7\x5e\xa1\x88\xe8\x88\xe9\x88\xea\x54\x55\x88\xeb\x88\xec\x88\xed\x4b\xe8\x88\xee\x88\xef\x88\xf0\x5e\xa6\x88\xf1\x88\xf2\x88\xf3\x88\xf4\x5e\xa5\x88\xf5\x5e\xa8\x49\x44\x88\xf6\x88\xf7\x4b\x6c\x88\xf8\x88\xf9\x88\xfa\x88\xfb\x88\xfc\x50\x50\x88\xfd\x89\x41\x89\x42\x89\x43\x89\x44\x59\x7f\x89\x45\x89\x46\x89\x47\x89\x48\x4b\xc1\x89\x49\x89\x4a\x89\x4b\x89\x4c\x89\x4d\x89\x4e\x89\x4f\x89\x50\x89\x51\x89\x52\x89\x53\x89\x54\x89\x55\x89\x56\x5e\xa7\x89\x57\x89\x58\x89\x59\x89\x5a\x89\x5b\x89\x5c\x89\x5d\x56\x9b\x66\x94\x89\x5e\x89\x5f\x89\x60\x56\x7c\x89\x61\x89\x62\x56\x9f\x89\x63\x89\x64\x89\x65\x56\xc0\x89\x66\x89\x67\x89\x68\x89\x69\x89\x6a\x54\xfa\x89\x6b\x89\x6c\x89\x6d\x89\x6e\x89\x6f\x89\x70\x5e\xa9\x89\x71\x89\x72\x89\x73\x89\x74\x89\x75\x56\xed\x5e\xaa\x89\x76\x89\x77\x89\x78\x89\x79\x89\x7a\x89\x7b\x89\x7c\x89\x7d\x89\x7e\x89\x7f\x89\x81\x89\x82\x89\x83\x89\x84\x89\x85\x89\x86\x89\x87\x5e\x73\x89\x88", /* 5880 */ "\x5e\xae\x5e\xab\x89\x89\x4f\xb2\x89\x8a\x55\xfa\x89\x8b\x89\x8c\x89\x8d\x5e\xac\x89\x8e\x89\x8f\x89\x90\x89\x91\x89\x92\x89\x93\x89\x94\x89\x95\x55\x6a\x52\xb8\x89\x96\x89\x97\x89\x98\x89\x99\x89\x9a\x54\x5d\x5e\xad\x89\x9b\x89\x9c\x89\x9d\x5a\xf5\x58\xe5\x89\x9e\x89\x9f\x89\xa0\x89\xa1\x89\xa2\x89\xa3\x89\xa4\x89\xa5\x52\xaa\x4b\xd4\x89\xa6\x89\xa7\x89\xa8\x89\xa9\x89\xaa\x89\xab\x89\xac\x89\xad\x89\xae\x89\xaf\x89\xb0\x89\xb1\x89\xb2\x89\xb3\x89\xb4\x89\xb5\x89\xb6\x89\xb7\x5e\x74\x89\xb8\x89\xb9\x89\xba\x89\xbb\x49\x7a\x89\xbc\x89\xbd\x89\xbe\x5e\x75\x89\xbf\x89\xc0\x89\xc1\x89\xc2\x89\xc3\x89\xc4\x89\xc5\x89\xc6\x89\xc7\x89\xc8\x89\xc9\x5e\x76\x89\xca\x89\xcb\x89\xcc\x4d\xbd\x89\xcd\x89\xce\x89\xcf\x89\xd0\x89\xd1\x89\xd2\x89\xd3\x89\xd4\x89\xd5\x89\xd6\x89\xd7\x89\xd8\x89\xd9\x89\xda\x54\xbf\x89\xdb\x89\xdc\x89\xdd\x89\xde\x89\xdf\x89\xe0\x55\xbe\x54\xc8\x89\xe1\x5c\x53\x89\xe2\x55\x9a\x89\xe3\x89\xe4\x50\x67\x89\xe5\x89\xe6\x4d\xf7\x89\xe7\x89\xe8\x59\xbb\x89\xe9\x89\xea\x89\xeb\x89\xec\x89\xed\x89\xee", /* 5900 */ "\x89\xef\x89\xf0\x61\xb9\x89\xf1\x4a\xa5\x89\xf2\x89\xf3\x49\x58\x89\xf4\x89\xf5\x89\xf6\x89\xf7\x89\xf8\x4c\xb3\x89\xf9\x58\x64\x89\xfa\x89\xfb\x89\xfc\x89\xfd\x5d\x88\x58\x46\x57\x83\x8a\x41\x8a\x42\x5d\x8e\x4b\xdf\x8a\x43\x59\xb8\x8a\x44\x8a\x45\x4d\x5b\x8a\x46\x8a\x47\x8a\x48\x8a\x49\x61\xb8\x61\xb6\x8a\x4a\x4a\xf2\x8a\x4b\x56\xeb\x56\xaa\x4c\x93\x8a\x4c\x5c\xb1\x59\x8c\x4d\xba\x8a\x4d\x55\xa6\x8a\x4e\x8a\x4f\x57\x57\x8a\x50\x8a\x51\x59\xc3\x50\x85\x4e\xcf\x4b\xe0\x8a\x52\x5f\xc4\x8a\x53\x8a\x54\x8a\x55\x8a\x56\x5f\xc5\x5e\x5c\x8a\x57\x59\x79\x8a\x58\x8a\x59\x53\xe5\x52\xcd\x4c\x8f\x8a\x5a\x4c\x7c\x8a\x5b\x8a\x5c\x50\x9d\x5c\x81\x8a\x5d\x53\xf4\x8a\x5e\x8a\x5f\x49\x5c\x5f\xc7\x4f\x51\x56\xd6\x5f\xc9\x8a\x60\x5f\xc8\x8a\x61\x8a\x62\x8a\x63\x8a\x64\x8a\x65\x4b\x8d\x8a\x66\x55\x7d\x8a\x67\x8a\x68\x48\xc1\x8a\x69\x8a\x6a\x8a\x6b\x8a\x6c\x8a\x6d\x8a\x6e\x8a\x6f\x8a\x70\x8a\x71\x8a\x72\x8a\x73\x8a\x74\x8a\x75\x53\x4e\x53\x4b\x8a\x76\x52\xcb\x8a\x77\x4e\xe8\x56\x9e\x8a\x78\x8a\x79\x8a\x7a\x4d\xc2\x8a\x7b\x8a\x7c", /* 5980 */ "\x8a\x7d\x63\x9a\x54\xe6\x63\x9b\x57\x9e\x8a\x7e\x5c\x51\x4c\xbd\x51\xe7\x8a\x7f\x54\xd0\x8a\x81\x8a\x82\x63\x9c\x8a\x83\x8a\x84\x8a\x85\x8a\x86\x4b\xc9\x4e\xca\x8a\x87\x8a\x88\x59\x9e\x63\xa0\x8a\x89\x52\x8f\x8a\x8a\x8a\x8b\x8a\x8c\x8a\x8d\x63\xa3\x8a\x8e\x8a\x8f\x8a\x90\x8a\x91\x63\x9f\x63\xa4\x57\x77\x8a\x92\x8a\x93\x4c\x61\x63\x9d\x63\x9e\x63\xa2\x8a\x94\x8a\x95\x52\xdc\x63\xa7\x8a\x96\x8a\x97\x63\xa6\x8a\x98\x8a\x99\x8a\x9a\x8a\x9b\x8a\x9c\x8a\x9d\x52\x63\x8a\x9e\x53\xdd\x8a\x9f\x8a\xa0\x63\xa9\x8a\xa1\x8a\xa2\x8a\xa3\x8a\xa4\x8a\xa5\x8a\xa6\x8a\xa7\x52\xb6\x8a\xa8\x8a\xa9\x8a\xaa\x63\xa1\x55\xbb\x8a\xab\x8a\xac\x8a\xad\x8a\xae\x4f\x84\x4d\x63\x63\xa5\x58\xd4\x57\xae\x8a\xaf\x8a\xb0\x63\xa8\x63\xaf\x8a\xb1\x59\xa5\x8a\xb2\x4f\x4a\x63\xac\x8a\xb3\x8a\xb4\x8a\xb5\x8a\xb6\x8a\xb7\x63\xae\x8a\xb8\x50\xd0\x8a\xb9\x8a\xba\x59\xcb\x8a\xbb\x8a\xbc\x8a\xbd\x4e\xa6\x8a\xbe\x8a\xbf\x8a\xc0\x8a\xc1\x8a\xc2\x8a\xc3\x8a\xc4\x8a\xc5\x8a\xc6\x8a\xc7\x8a\xc8\x8a\xc9\x63\xb0\x8a\xca\x59\xf5\x8a\xcb\x8a\xcc\x8a\xcd\x5c\x6b", /* 5a00 */ "\x8a\xce\x57\x9f\x8a\xcf\x57\x7e\x51\xa5\x63\xaa\x63\xab\x4f\x5f\x63\xad\x63\xb2\x8a\xd0\x8a\xd1\x63\xb1\x8a\xd2\x8a\xd3\x8a\xd4\x8a\xd5\x63\xb5\x8a\xd6\x63\xb7\x8a\xd7\x8a\xd8\x8a\xd9\x8a\xda\x52\xee\x8a\xdb\x8a\xdc\x8a\xdd\x52\xc7\x8a\xde\x8a\xdf\x4f\xe9\x55\x90\x8a\xe0\x8a\xe1\x63\xb6\x8a\xe2\x4b\xef\x8a\xe3\x8a\xe4\x8a\xe5\x52\x85\x8a\xe6\x8a\xe7\x8a\xe8\x8a\xe9\x8a\xea\x8a\xeb\x8a\xec\x5a\x8a\x63\xb3\x8a\xed\x63\xb4\x8a\xee\x54\xa1\x8a\xef\x8a\xf0\x8a\xf1\x8a\xf2\x8a\xf3\x63\xbc\x8a\xf4\x8a\xf5\x8a\xf6\x63\xb8\x8a\xf7\x8a\xf8\x8a\xf9\x8a\xfa\x8a\xfb\x53\xc4\x8a\xfc\x8a\xfd\x57\x92\x63\xba\x8b\x41\x8b\x42\x8b\x43\x8b\x44\x8b\x45\x8b\x46\x8b\x47\x8b\x48\x8b\x49\x8b\x4a\x63\xbb\x8b\x4b\x8b\x4c\x8b\x4d\x8b\x4e\x4e\x8a\x8b\x4f\x8b\x50\x8b\x51\x8b\x52\x8b\x53\x8b\x54\x8b\x55\x63\xbd\x8b\x56\x8b\x57\x8b\x58\x8b\x59\x63\xb9\x8b\x5a\x8b\x5b\x50\xb6\x8b\x5c\x8b\x5d\x8b\x5e\x8b\x5f\x8b\x60\x8b\x61\x8b\x62\x8b\x63\x8b\x64\x5a\x44\x63\xbe\x55\x95\x63\xc2\x8b\x65\x8b\x66\x63\xc3\x8b\x67\x8b\x68\x8b\x69\x8b\x6a\x58\xf5", /* 5a80 */ "\x8b\x6b\x8b\x6c\x8b\x6d\x8b\x6e\x8b\x6f\x8b\x70\x8b\x71\x8b\x72\x8b\x73\x8b\x74\x8b\x75\x8b\x76\x8b\x77\x8b\x78\x8b\x79\x8b\x7a\x8b\x7b\x8b\x7c\x52\x5d\x8b\x7d\x8b\x7e\x8b\x7f\x8b\x81\x8b\x82\x8b\x83\x8b\x84\x52\x64\x63\xc1\x8b\x85\x8b\x86\x8b\x87\x8b\x88\x8b\x89\x8b\x8a\x8b\x8b\x8b\x8c\x8b\x8d\x8b\x8e\x8b\x8f\x8b\x90\x8b\x91\x8b\x92\x63\xc0\x8b\x93\x8b\x94\x8b\x95\x8b\x96\x8b\x97\x8b\x98\x8b\x99\x63\xc6\x58\x51\x8b\x9a\x66\x95\x8b\x9b\x8b\x9c\x63\xc9\x8b\x9d\x8b\x9e\x8b\x9f\x8b\xa0\x8b\xa1\x63\xc4\x8b\xa2\x8b\xa3\x4e\xdd\x55\x49\x8b\xa4\x8b\xa5\x8b\xa6\x8b\xa7\x8b\xa8\x8b\xa9\x4e\xb4\x8b\xaa\x8b\xab\x58\x73\x8b\xac\x8b\xad\x8b\xae\x8b\xaf\x8b\xb0\x63\xc7\x8b\xb1\x63\xc8\x8b\xb2\x63\xcd\x8b\xb3\x63\xcf\x8b\xb4\x8b\xb5\x8b\xb6\x63\xd0\x8b\xb7\x8b\xb8\x8b\xb9\x63\xca\x4b\x75\x8b\xba\x63\xcb\x8b\xbb\x8b\xbc\x63\xce\x8b\xbd\x8b\xbe\x52\xda\x8b\xbf\x63\xc5\x8b\xc0\x8b\xc1\x8b\xc2\x8b\xc3\x8b\xc4\x63\xcc\x8b\xc5\x8b\xc6\x8b\xc7\x8b\xc8\x8b\xc9\x8b\xca\x8b\xcb\x8b\xcc\x8b\xcd\x8b\xce\x8b\xcf\x8b\xd0\x8b\xd1\x8b\xd2", /* 5b00 */ "\x8b\xd3\x8b\xd4\x8b\xd5\x8b\xd6\x8b\xd7\x8b\xd8\x8b\xd9\x8b\xda\x8b\xdb\x63\xd1\x8b\xdc\x8b\xdd\x8b\xde\x8b\xdf\x8b\xe0\x8b\xe1\x8b\xe2\x8b\xe3\x8b\xe4\x8b\xe5\x8b\xe6\x8b\xe7\x63\xd3\x63\xd2\x8b\xe8\x8b\xe9\x8b\xea\x8b\xeb\x8b\xec\x8b\xed\x8b\xee\x8b\xef\x8b\xf0\x8b\xf1\x8b\xf2\x8b\xf3\x8b\xf4\x8b\xf5\x8b\xf6\x8b\xf7\x8b\xf8\x8b\xf9\x8b\xfa\x8b\xfb\x8b\xfc\x8b\xfd\x8c\x41\x8c\x42\x8c\x43\x8c\x44\x63\xd4\x8c\x45\x5d\x99\x8c\x46\x8c\x47\x63\xd5\x8c\x48\x8c\x49\x8c\x4a\x8c\x4b\x8c\x4c\x8c\x4d\x8c\x4e\x8c\x4f\x63\xd6\x8c\x50\x8c\x51\x8c\x52\x8c\x53\x8c\x54\x8c\x55\x8c\x56\x8c\x57\x8c\x58\x8c\x59\x8c\x5a\x8c\x5b\x8c\x5c\x8c\x5d\x8c\x5e\x5c\x73\x63\xdc\x8c\x5f\x63\xdd\x50\x77\x5a\xcf\x8c\x60\x5c\x76\x4a\xe5\x56\x90\x63\xd9\x5c\xc2\x5c\x6e\x58\xa1\x8c\x61\x52\x6f\x8c\x62\x8c\x63\x63\xde\x4e\xbd\x4d\x62\x63\xda\x59\x47\x8c\x64\x8c\x65\x4d\xa1\x51\xce\x8c\x66\x5c\xaa\x8c\x67\x8c\x68\x8c\x69\x55\xea\x63\x8f\x8c\x6a\x63\xdb\x8c\x6b\x4c\x96\x8c\x6c\x8c\x6d\x8c\x6e\x8c\x6f\x54\xe5\x8c\x70\x8c\x71\x52\xf4\x8c\x72\x8c\x73", /* 5b80 */ "\x63\x52\x52\xfd\x8c\x74\x56\x9d\x63\x53\x5b\x4c\x8c\x75\x5a\x8f\x55\xd7\x48\xb1\x8c\x76\x56\x6e\x57\x8b\x8c\x77\x8c\x78\x4d\xe9\x8c\x79\x8c\x7a\x8c\x7b\x63\x55\x8c\x7c\x63\x54\x8c\x7d\x5c\x7a\x4d\x79\x5b\xe5\x4b\xa7\x57\x91\x59\xca\x49\x46\x55\xb4\x8c\x7e\x4a\x89\x55\x94\x50\x6d\x58\xfa\x55\xd1\x63\x56\x4e\x62\x8c\x7f\x8c\x81\x8c\x82\x58\x7c\x4d\x4c\x8c\x83\x8c\x84\x8c\x85\x8c\x86\x5a\xd6\x8c\x87\x8c\x88\x4d\xa5\x59\x88\x58\x9d\x4e\xd1\x8c\x89\x63\x57\x54\xdc\x8c\x8a\x8c\x8b\x8c\x8c\x50\x8e\x49\x97\x56\x7e\x8c\x8d\x8c\x8e\x4e\xc4\x8c\x8f\x4e\xc3\x59\xf9\x52\x7c\x50\x7c\x8c\x90\x8c\x91\x8c\x92\x8c\x93\x4c\xba\x8c\x94\x8c\x95\x8c\x96\x52\x62\x8c\x97\x4d\xad\x5a\xa1\x8c\x98\x8c\x99\x8c\x9a\x8c\x9b\x8c\x9c\x8c\x9d\x8c\x9e\x8c\x9f\x8c\xa0\x54\x7e\x52\xae\x49\xeb\x8c\xa1\x4d\x71\x8c\xa2\x8c\xa3\x63\x5b\x51\x68\x8c\xa4\x8c\xa5\x5b\x4f\x8c\xa6\x8c\xa7\x8c\xa8\x8c\xa9\x8c\xaa\x63\x5c\x8c\xab\x63\x5e\x8c\xac\x8c\xad\x8c\xae\x8c\xaf\x8c\xb0\x8c\xb1\x8c\xb2\x4a\xe6\x4b\xd3\x56\x62\x59\x50\x4b\x5c\x8c\xb3\x8c\xb4\x55\xd8", /* 5c00 */ "\x8c\xb5\x4c\x83\x8c\xb6\x8c\xb7\x55\x85\x8c\xb8\x4f\x4b\x8c\xb9\x8c\xba\x57\xbd\x5c\x91\x8c\xbb\x8c\xbc\x8c\xbd\x8c\xbe\x58\xa0\x8c\xbf\x55\x79\x8c\xc0\x8c\xc1\x4b\xfa\x63\xd7\x4e\xe1\x8c\xc2\x4a\x5e\x8c\xc3\x55\x70\x8c\xc4\x63\xd8\x4a\x42\x8c\xc5\x8c\xc6\x8c\xc7\x8c\xc8\x5f\xcb\x8c\xc9\x5a\x68\x5f\xcc\x8c\xca\x59\xa1\x8c\xcb\x8c\xcc\x8c\xcd\x8c\xce\x5f\xcd\x8c\xcf\x8c\xd0\x8c\xd1\x8c\xd2\x4f\xcc\x8c\xd3\x8c\xd4\x5f\xce\x8c\xd5\x8c\xd6\x8c\xd7\x55\xab\x59\xfb\x4a\x7f\x63\x8b\x52\xe0\x4f\xa0\x57\xb1\x52\xf1\x4f\xd5\x53\xa7\x49\xe2\x8c\xd8\x8c\xd9\x4f\xd2\x8c\xda\x8c\xdb\x54\x9d\x56\xea\x4f\x8d\x57\xdc\x8c\xdc\x8c\xdd\x55\xb9\x53\xc0\x63\x8d\x58\xbb\x8c\xde\x8c\xdf\x8c\xe0\x5b\x59\x8c\xe1\x8c\xe2\x8c\xe3\x63\x8e\x8c\xe4\x8c\xe5\x8c\xe6\x8c\xe7\x55\xf3\x8c\xe8\x57\x60\x51\xc4\x8c\xe9\x63\x90\x8c\xea\x51\xc3\x63\x91\x8c\xeb\x8c\xec\x8c\xed\x8c\xee\x8c\xef\x8c\xf0\x8c\xf1\x63\x99\x57\x6d\x8c\xf2\x55\x5d\x8c\xf3\x8c\xf4\x8c\xf5\x8c\xf6\x8c\xf7\x8c\xf8\x8c\xf9\x59\xd8\x61\x48\x8c\xfa\x8c\xfb\x8c\xfc\x8c\xfd\x5a\x8d", /* 5c80 */ "\x8d\x41\x56\x8b\x53\xf0\x8d\x42\x8d\x43\x8d\x44\x8d\x45\x8d\x46\x61\x4c\x8d\x47\x8d\x48\x8d\x49\x61\x47\x61\x49\x8d\x4a\x8d\x4b\x61\x4a\x61\x4f\x8d\x4c\x8d\x4d\x49\xec\x8d\x4e\x61\x4b\x4c\xd9\x61\x4d\x61\x4e\x61\x50\x4b\x5a\x61\x51\x8d\x4f\x8d\x50\x8d\x51\x8d\x52\x8d\x53\x61\x53\x61\x58\x8d\x54\x8d\x55\x8d\x56\x8d\x57\x8d\x58\x59\x72\x8d\x59\x61\x56\x61\x55\x51\x8c\x8d\x5a\x8d\x5b\x8d\x5c\x61\x57\x8d\x5d\x5a\xbf\x8d\x5e\x61\x52\x8d\x5f\x61\x5a\x48\xb5\x8d\x60\x8d\x61\x8d\x62\x8d\x63\x61\x54\x8d\x64\x50\x9a\x8d\x65\x61\x59\x8d\x66\x8d\x67\x61\x5b\x8d\x68\x8d\x69\x8d\x6a\x8d\x6b\x8d\x6c\x8d\x6d\x61\x5e\x8d\x6e\x8d\x6f\x8d\x70\x8d\x71\x8d\x72\x8d\x73\x61\x5c\x8d\x74\x8d\x75\x8d\x76\x8d\x77\x8d\x78\x8d\x79\x5b\xc4\x8d\x7a\x8d\x7b\x8d\x7c\x8d\x7d\x8d\x7e\x8d\x7f\x8d\x81\x58\x5f\x8d\x82\x8d\x83\x61\x5d\x61\x5f\x51\xcc\x8d\x84\x4b\xea\x8d\x85\x5a\x99\x8d\x86\x8d\x87\x54\x6d\x8d\x88\x8d\x89\x4c\x86\x8d\x8a\x8d\x8b\x8d\x8c\x8d\x8d\x8d\x8e\x8d\x8f\x8d\x90\x8d\x91\x8d\x92\x8d\x93\x4f\xfd\x8d\x94\x8d\x95\x8d\x96\x8d\x97", /* 5d00 */ "\x8d\x98\x8d\x99\x61\x60\x61\x61\x8d\x9a\x8d\x9b\x61\x67\x4a\x88\x8d\x9c\x8d\x9d\x8d\x9e\x8d\x9f\x8d\xa0\x8d\xa1\x53\xe8\x8d\xa2\x8d\xa3\x8d\xa4\x8d\xa5\x8d\xa6\x4a\xdd\x8d\xa7\x59\x62\x8d\xa8\x8d\xa9\x8d\xaa\x8d\xab\x61\x68\x8d\xac\x8d\xad\x61\x66\x8d\xae\x8d\xaf\x8d\xb0\x8d\xb1\x8d\xb2\x61\x65\x8d\xb3\x61\x63\x61\x62\x8d\xb4\x49\x60\x8d\xb5\x8d\xb6\x8d\xb7\x5b\x58\x61\x64\x8d\xb8\x8d\xb9\x8d\xba\x8d\xbb\x8d\xbc\x61\x6b\x8d\xbd\x8d\xbe\x8d\xbf\x8d\xc0\x8d\xc1\x8d\xc2\x8d\xc3\x8d\xc4\x61\x6c\x61\x6a\x8d\xc5\x8d\xc6\x8d\xc7\x8d\xc8\x8d\xc9\x8d\xca\x8d\xcb\x8d\xcc\x68\x9b\x8d\xcd\x8d\xce\x61\x73\x61\x72\x54\x56\x8d\xcf\x8d\xd0\x8d\xd1\x8d\xd2\x8d\xd3\x8d\xd4\x8d\xd5\x8d\xd6\x8d\xd7\x8d\xd8\x8d\xd9\x61\x69\x8d\xda\x8d\xdb\x61\x6e\x8d\xdc\x61\x70\x8d\xdd\x8d\xde\x8d\xdf\x8d\xe0\x8d\xe1\x8d\xe2\x8d\xe3\x8d\xe4\x8d\xe5\x8d\xe6\x8d\xe7\x61\x74\x8d\xe8\x61\x71\x61\x6d\x8d\xe9\x8d\xea\x61\x6f\x8d\xeb\x8d\xec\x8d\xed\x8d\xee\x61\x75\x8d\xef\x8d\xf0\x8d\xf1\x8d\xf2\x8d\xf3\x8d\xf4\x8d\xf5\x8d\xf6\x8d\xf7\x8d\xf8\x8d\xf9", /* 5d80 */ "\x8d\xfa\x8d\xfb\x61\x76\x8d\xfc\x8d\xfd\x8e\x41\x8e\x42\x8e\x43\x8e\x44\x8e\x45\x8e\x46\x8e\x47\x8e\x48\x8e\x49\x8e\x4a\x8e\x4b\x8e\x4c\x8e\x4d\x8e\x4e\x8e\x4f\x8e\x50\x8e\x51\x8e\x52\x8e\x53\x8e\x54\x61\x77\x8e\x55\x8e\x56\x8e\x57\x61\x78\x8e\x58\x8e\x59\x8e\x5a\x8e\x5b\x8e\x5c\x8e\x5d\x8e\x5e\x8e\x5f\x8e\x60\x8e\x61\x8e\x62\x8e\x63\x8e\x64\x8e\x65\x8e\x66\x8e\x67\x8e\x68\x8e\x69\x8e\x6a\x8e\x6b\x8e\x6c\x8e\x6d\x8e\x6e\x8e\x6f\x8e\x70\x61\x7a\x8e\x71\x8e\x72\x8e\x73\x8e\x74\x8e\x75\x8e\x76\x8e\x77\x8e\x78\x8e\x79\x8e\x7a\x8e\x7b\x8e\x7c\x8e\x7d\x61\x7b\x8e\x7e\x8e\x7f\x8e\x81\x8e\x82\x8e\x83\x8e\x84\x8e\x85\x57\xa0\x8e\x86\x8e\x87\x8e\x88\x8e\x89\x8e\x8a\x8e\x8b\x8e\x8c\x8e\x8d\x8e\x8e\x8e\x8f\x8e\x90\x8e\x91\x8e\x92\x64\x7d\x8e\x93\x4a\xa7\x5b\xdc\x8e\x94\x8e\x95\x59\x52\x4a\x52\x8e\x96\x8e\x97\x4d\x44\x5c\x94\x54\x69\x4f\xdd\x4d\x4e\x8e\x98\x57\xd6\x8e\x99\x8e\x9a\x49\xed\x5e\x6f\x8e\x9b\x4e\xb9\x59\xd0\x56\x68\x48\xcc\x8e\x9c\x8e\x9d\x58\x90\x8e\x9e\x8e\x9f\x8e\xa0\x8e\xa1\x8e\xa2\x5d\x84\x4f\x8e\x8e\xa3", /* 5e00 */ "\x8e\xa4\x49\x72\x55\xcf\x49\xbb\x8e\xa5\x56\x47\x4c\x4b\x8e\xa6\x55\xa5\x8e\xa7\x8e\xa8\x8e\xa9\x58\x43\x8e\xaa\x8e\xab\x60\xf7\x5b\x6a\x60\xfa\x8e\xac\x8e\xad\x60\xf9\x53\x61\x56\xfa\x8e\xae\x51\x51\x60\xf8\x5b\xe2\x49\xae\x5b\xc3\x4b\x7b\x8e\xaf\x8e\xb0\x8e\xb1\x8e\xb2\x8e\xb3\x8e\xb4\x8e\xb5\x8e\xb6\x4a\xf7\x5b\xa0\x8e\xb7\x8e\xb8\x8e\xb9\x8e\xba\x8e\xbb\x58\x4f\x48\xee\x8e\xbc\x8e\xbd\x60\xfb\x8e\xbe\x8e\xbf\x8e\xc0\x8e\xc1\x8e\xc2\x61\x41\x4a\x43\x8e\xc3\x8e\xc4\x60\xfc\x60\xfd\x52\x51\x8e\xc5\x8e\xc6\x8e\xc7\x8e\xc8\x52\x7d\x8e\xc9\x61\x42\x4c\x9a\x8e\xca\x8e\xcb\x8e\xcc\x8e\xcd\x8e\xce\x8e\xcf\x4e\x6f\x8e\xd0\x8e\xd1\x8e\xd2\x8e\xd3\x8e\xd4\x8e\xd5\x8e\xd6\x61\x43\x52\xba\x8e\xd7\x8e\xd8\x8e\xd9\x8e\xda\x8e\xdb\x61\x44\x8e\xdc\x8e\xdd\x61\x45\x8e\xde\x8e\xdf\x61\x46\x4a\xb0\x8e\xe0\x8e\xe1\x8e\xe2\x8e\xe3\x8e\xe4\x8e\xe5\x8e\xe6\x8e\xe7\x8e\xe8\x8e\xe9\x8e\xea\x8e\xeb\x8e\xec\x8e\xed\x8e\xee\x4c\xc8\x53\xbc\x52\xe9\x8e\xef\x49\xa1\x8e\xf0\x58\xd1\x8e\xf1\x64\x7b\x4e\x63\x5a\x77\x5a\x64\x8e\xf2\x4d\x84", /* 5e80 */ "\x61\xce\x8e\xf3\x8e\xf4\x8e\xf5\x5c\x4f\x8e\xf6\x54\x8d\x49\x73\x8e\xf7\x8e\xf8\x4a\xb1\x61\xd0\x8e\xf9\x8e\xfa\x8e\xfb\x58\xf1\x51\xad\x61\xcf\x8e\xfc\x50\x83\x5a\x46\x4b\x77\x61\xd1\x4b\x8b\x8e\xfd\x52\x8e\x4c\xfc\x8f\x41\x4c\xad\x8f\x42\x53\x73\x4c\x6f\x61\xd3\x8f\x43\x8f\x44\x8f\x45\x8f\x46\x61\xd2\x4b\xc7\x5c\x9a\x8f\x47\x8f\x48\x8f\x49\x8f\x4a\x8f\x4b\x57\x45\x8f\x4c\x8f\x4d\x8f\x4e\x8f\x4f\x8f\x50\x61\xd7\x8f\x51\x61\xd5\x55\xfb\x50\x55\x5a\x59\x61\xd4\x8f\x52\x8f\x53\x8f\x54\x8f\x55\x61\xd6\x8f\x56\x8f\x57\x8f\x58\x8f\x59\x8f\x5a\x8f\x5b\x8f\x5c\x8f\x5d\x8f\x5e\x8f\x5f\x51\x4e\x50\xc7\x8f\x60\x8f\x61\x8f\x62\x8f\x63\x8f\x64\x8f\x65\x61\xda\x61\xd9\x50\xa9\x8f\x66\x8f\x67\x51\x6e\x8f\x68\x8f\x69\x8f\x6a\x8f\x6b\x61\xdb\x8f\x6c\x8f\x6d\x8f\x6e\x8f\x6f\x8f\x70\x8f\x71\x8f\x72\x8f\x73\x8f\x74\x8f\x75\x8f\x76\x8f\x77\x61\xdc\x8f\x78\x61\xdd\x8f\x79\x8f\x7a\x8f\x7b\x8f\x7c\x8f\x7d\x8f\x7e\x8f\x7f\x8f\x81\x8f\x82\x5e\x68\x8f\x83\x59\x73\x57\x42\x8f\x84\x8f\x85\x4f\x48\x8f\x86\x8f\x87\x8f\x88\x5f\xc2\x5c\xa4", /* 5f00 */ "\x50\x4a\x5e\x6d\x59\xeb\x53\xf9\x53\x4a\x8f\x89\x8f\x8a\x8f\x8b\x5f\xc3\x8f\x8c\x49\x77\x60\x4e\x8f\x8d\x8f\x8e\x8f\x8f\x55\xbc\x8f\x90\x60\x51\x8f\x91\x4d\x4d\x8f\x92\x59\xfc\x8f\x93\x4c\xa4\x4d\xea\x8f\x94\x8f\x95\x4a\x7a\x8f\x96\x8f\x97\x8f\x98\x4b\x7c\x5b\x65\x8f\x99\x8f\x9a\x8f\x9b\x8f\x9c\x52\x76\x58\x72\x4e\x41\x8f\x9d\x63\x94\x63\x93\x8f\x9e\x8f\x9f\x63\x95\x8f\xa0\x57\x85\x8f\xa1\x54\xf4\x8f\xa2\x8f\xa3\x8f\xa4\x8f\xa5\x8f\xa6\x8f\xa7\x8f\xa8\x4b\x4f\x54\x5f\x8f\xa9\x63\x97\x8f\xaa\x8f\xab\x8f\xac\x66\xaf\x8f\xad\x8f\xae\x8f\xaf\x8f\xb0\x8f\xb1\x8f\xb2\x8f\xb3\x8f\xb4\x8f\xb5\x8f\xb6\x8f\xb7\x8f\xb8\x8f\xb9\x8f\xba\x8f\xbb\x63\x87\x8f\xbc\x4d\x8a\x4b\x51\x8f\xbd\x51\xbb\x63\x89\x63\x88\x63\x8a\x8f\xbe\x8f\xbf\x8f\xc0\x8f\xc1\x59\xcc\x8f\xc2\x8f\xc3\x8f\xc4\x61\x8b\x58\xcd\x8f\xc5\x57\x4e\x8f\xc6\x59\x86\x8f\xc7\x8f\xc8\x49\xc9\x49\x8c\x8f\xc9\x49\x93\x53\x8e\x8f\xca\x8f\xcb\x5b\x63\x5a\x50\x8f\xcc\x61\x7c\x8f\xcd\x8f\xce\x8f\xcf\x61\x7d\x8f\xd0\x59\xda\x8f\xd1\x4a\x59\x49\x6b\x8f\xd2\x8f\xd3\x8f\xd4", /* 5f80 */ "\x57\x9a\x5b\x98\x61\x7e\x8f\xd5\x4f\xb5\x4a\xfc\x8f\xd6\x61\x7f\x4d\xdb\x61\x81\x4e\x52\x51\xc8\x61\x82\x8f\xd7\x8f\xd8\x8f\xd9\x58\xeb\x8f\xda\x57\x5d\x8f\xdb\x8f\xdc\x61\x83\x8f\xdd\x4b\x63\x53\x67\x61\x84\x8f\xde\x8f\xdf\x61\x85\x8f\xe0\x8f\xe1\x8f\xe2\x8f\xe3\x5a\x9a\x8f\xe4\x8f\xe5\x8f\xe6\x8f\xe7\x8f\xe8\x8f\xe9\x61\x86\x8f\xea\x59\x4d\x8f\xeb\x8f\xec\x61\x87\x57\xa1\x8f\xed\x8f\xee\x8f\xef\x8f\xf0\x8f\xf1\x8f\xf2\x61\x88\x8f\xf3\x4b\x62\x8f\xf4\x8f\xf5\x8f\xf6\x8f\xf7\x61\x89\x4e\x75\x8f\xf8\x8f\xf9\x8f\xfa\x8f\xfb\x8f\xfc\x58\xc3\x61\xdf\x49\x78\x59\xe3\x8f\xfd\x90\x41\x61\xe0\x90\x42\x90\x43\x4e\xc8\x54\xcb\x90\x44\x61\xe2\x66\xfd\x66\xfc\x60\x4f\x90\x45\x90\x46\x90\x47\x61\xe1\x5b\xbd\x57\x9d\x52\x46\x90\x48\x90\x49\x90\x4a\x62\x63\x90\x4b\x90\x4c\x5b\xd1\x61\xe6\x90\x4d\x90\x4e\x61\xe7\x90\x4f\x90\x50\x5a\x67\x90\x51\x90\x52\x61\xeb\x50\x8d\x90\x53\x61\xec\x61\xe4\x90\x54\x90\x55\x4a\x60\x90\x56\x90\x57\x90\x58\x52\xed\x90\x59\x90\x5a\x61\xed\x90\x5b\x90\x5c\x58\xc2\x90\x5d\x4d\xf5\x61\xe8\x4c\x7e", /* 6000 */ "\x4e\x53\x56\xab\x56\x6b\x61\xe3\x61\xe5\x61\xe9\x61\xea\x90\x5e\x90\x5f\x90\x60\x61\xf6\x90\x61\x90\x62\x61\xf3\x5a\xf4\x61\xf2\x90\x63\x90\x64\x53\x4d\x90\x65\x5b\x9b\x53\x62\x49\xbf\x90\x66\x90\x67\x61\xee\x90\x68\x61\xf1\x51\x4f\x56\x5c\x90\x69\x90\x6a\x4b\x41\x61\xf8\x90\x6b\x90\x6c\x90\x6d\x4e\xb0\x61\xf0\x58\xd3\x5a\xb8\x61\xf4\x4d\x76\x61\xf5\x90\x6e\x90\x6f\x90\x70\x54\x73\x90\x71\x90\x72\x90\x73\x90\x74\x90\x75\x61\xef\x90\x76\x90\x77\x90\x78\x90\x79\x90\x7a\x5c\x7c\x67\x41\x90\x7b\x90\x7c\x61\xf7\x90\x7d\x67\x45\x61\xfd\x55\xd0\x90\x7e\x90\x7f\x90\x81\x90\x82\x90\x83\x90\x84\x90\x85\x51\x55\x90\x86\x4e\x70\x90\x87\x90\x88\x50\x76\x90\x89\x4d\xe2\x90\x8a\x90\x8b\x56\x41\x90\x8c\x90\x8d\x90\x8e\x67\x46\x67\x43\x90\x8f\x90\x90\x67\x42\x90\x91\x90\x92\x90\x93\x90\x94\x4e\x76\x67\x47\x58\xf3\x90\x95\x90\x96\x67\x44\x4d\xdd\x4b\xf6\x62\x41\x4b\xb1\x56\xf0\x4d\x47\x90\x97\x58\x42\x54\x41\x90\x98\x90\x99\x50\x72\x90\x9a\x90\x9b\x4b\xf0\x90\x9c\x61\xf9\x61\xfa\x61\xfc\x61\xfb\x52\xd4\x62\x42\x90\x9d\x5a\x61", /* 6080 */ "\x90\x9e\x90\x9f\x90\xa0\x62\x47\x54\x64\x90\xa1\x90\xa2\x90\xa3\x90\xa4\x58\x44\x90\xa5\x90\xa6\x62\x49\x4d\xb6\x90\xa7\x90\xa8\x90\xa9\x90\xaa\x62\x48\x90\xab\x4e\x7a\x90\xac\x62\x43\x90\xad\x90\xae\x90\xaf\x62\x44\x62\x4a\x90\xb0\x62\x46\x90\xb1\x57\xf1\x5a\x66\x90\xb2\x90\xb3\x4e\x5c\x90\xb4\x90\xb5\x5a\xc2\x90\xb6\x52\xf9\x90\xb7\x90\xb8\x67\x48\x58\xfb\x62\x45\x90\xb9\x52\x96\x90\xba\x62\x4d\x49\x4f\x90\xbb\x62\x52\x90\xbc\x90\xbd\x90\xbe\x4e\xc1\x90\xbf\x90\xc0\x62\x4c\x4b\x5f\x90\xc1\x90\xc2\x90\xc3\x90\xc4\x90\xc5\x90\xc6\x90\xc7\x90\xc8\x54\x8a\x62\x50\x90\xc9\x90\xca\x90\xcb\x4f\xa9\x57\x90\x90\xcc\x90\xcd\x90\xce\x90\xcf\x90\xd0\x4e\x94\x90\xd1\x90\xd2\x90\xd3\x56\xe7\x90\xd4\x90\xd5\x62\x4f\x90\xd6\x62\x51\x90\xd7\x58\x47\x62\x4e\x90\xd8\x57\xa8\x4e\x7d\x90\xd9\x90\xda\x90\xdb\x90\xdc\x90\xdd\x4b\x8c\x4f\xe4\x49\xd1\x4a\x6d\x90\xde\x49\x59\x62\x4b\x49\xd0\x4b\x4c\x4d\x7f\x4b\xe7\x90\xdf\x90\xe0\x58\x8c\x62\x57\x90\xe1\x4e\x6c\x90\xe2\x90\xe3\x54\xc6\x58\xc9\x90\xe4\x90\xe5\x90\xe6\x90\xe7\x90\xe8", /* 6100 */ "\x62\x58\x4a\x8f\x90\xe9\x90\xea\x90\xeb\x90\xec\x67\x49\x90\xed\x5a\x9b\x5a\x85\x90\xee\x90\xef\x90\xf0\x67\x4a\x62\x59\x59\xe1\x90\xf1\x90\xf2\x90\xf3\x90\xf4\x90\xf5\x62\x55\x90\xf6\x90\xf7\x90\xf8\x90\xf9\x5a\x7e\x90\xfa\x90\xfb\x90\xfc\x90\xfd\x4c\xcf\x62\x53\x91\x41\x91\x42\x62\x56\x4c\x7f\x91\x43\x62\x54\x50\xa1\x91\x44\x91\x45\x91\x46\x62\x5a\x91\x47\x91\x48\x91\x49\x91\x4a\x91\x4b\x91\x4c\x91\x4d\x91\x4e\x91\x4f\x91\x50\x91\x51\x91\x52\x91\x53\x91\x54\x91\x55\x91\x56\x91\x57\x91\x58\x91\x59\x5a\xb7\x91\x5a\x91\x5b\x91\x5c\x91\x5d\x91\x5e\x91\x5f\x91\x60\x91\x61\x4a\xc7\x91\x62\x62\x5b\x91\x63\x4e\x65\x91\x64\x55\x98\x91\x65\x91\x66\x55\x86\x91\x67\x91\x68\x91\x69\x52\xbc\x91\x6a\x91\x6b\x91\x6c\x91\x6d\x91\x6e\x91\x6f\x91\x70\x67\x4b\x91\x71\x91\x72\x91\x73\x91\x74\x51\xfc\x91\x75\x91\x76\x91\x77\x91\x78\x4e\x7b\x50\x4e\x91\x79\x91\x7a\x91\x7b\x91\x7c\x91\x7d\x91\x7e\x91\x7f\x57\xbe\x91\x81\x91\x82\x91\x83\x91\x84\x62\x5c\x91\x85\x50\x56\x91\x86\x91\x87\x91\x88\x91\x89\x91\x8a\x91\x8b\x91\x8c\x91\x8d", /* 6180 */ "\x91\x8e\x91\x8f\x91\x90\x91\x91\x91\x92\x91\x93\x91\x94\x91\x95\x91\x96\x91\x97\x91\x98\x49\x90\x91\x99\x91\x9a\x5a\xf6\x91\x9b\x91\x9c\x91\x9d\x91\x9e\x91\x9f\x62\x5e\x91\xa0\x91\xa1\x91\xa2\x91\xa3\x91\xa4\x91\xa5\x91\xa6\x91\xa7\x67\x4d\x91\xa8\x91\xa9\x91\xaa\x91\xab\x91\xac\x91\xad\x91\xae\x91\xaf\x91\xb0\x62\x5f\x4d\xa8\x67\x4c\x91\xb1\x91\xb2\x62\x5d\x91\xb3\x91\xb4\x91\xb5\x91\xb6\x91\xb7\x91\xb8\x91\xb9\x91\xba\x91\xbb\x91\xbc\x62\x60\x91\xbd\x91\xbe\x91\xbf\x91\xc0\x91\xc1\x91\xc2\x4d\xb5\x91\xc3\x91\xc4\x91\xc5\x4b\xad\x91\xc6\x91\xc7\x91\xc8\x91\xc9\x91\xca\x58\xb7\x91\xcb\x48\xc2\x67\x4e\x91\xcc\x91\xcd\x91\xce\x91\xcf\x91\xd0\x67\x4f\x50\xc0\x91\xd1\x62\x61\x91\xd2\x91\xd3\x91\xd4\x91\xd5\x91\xd6\x91\xd7\x91\xd8\x91\xd9\x91\xda\x91\xdb\x91\xdc\x91\xdd\x91\xde\x91\xdf\x91\xe0\x91\xe1\x91\xe2\x53\x53\x91\xe3\x91\xe4\x91\xe5\x91\xe6\x91\xe7\x91\xe8\x91\xe9\x91\xea\x91\xeb\x91\xec\x91\xed\x91\xee\x91\xef\x91\xf0\x62\x62\x91\xf1\x91\xf2\x91\xf3\x91\xf4\x91\xf5\x91\xf6\x91\xf7\x91\xf8\x91\xf9\x5e\xb1", /* 6200 */ "\x91\xfa\x91\xfb\x91\xfc\x91\xfd\x92\x41\x92\x42\x67\x50\x92\x43\x4c\xe9\x92\x44\x57\xeb\x65\xa6\x58\xe6\x55\xf8\x54\xd5\x58\x57\x4a\x69\x57\xd1\x4f\x85\x92\x45\x92\x46\x62\x7e\x4e\x93\x65\xa7\x5b\x5d\x92\x47\x53\xdc\x65\xa8\x92\x48\x92\x49\x92\x4a\x65\xa9\x92\x4b\x65\xab\x65\xaa\x92\x4c\x65\xad\x65\xac\x92\x4d\x92\x4e\x92\x4f\x92\x50\x4f\x78\x92\x51\x65\xae\x92\x52\x51\xbd\x92\x53\x92\x54\x92\x55\x92\x56\x4a\xc0\x4a\xf6\x92\x57\x92\x58\x4e\x47\x92\x59\x92\x5a\x92\x5b\x92\x5c\x92\x5d\x66\xe5\x66\xe4\x4c\x5f\x56\x9a\x49\x83\x92\x5e\x66\xe6\x92\x5f\x92\x60\x92\x61\x55\x68\x66\xe7\x66\xe8\x92\x62\x55\xd5\x5f\xcf\x49\xc4\x5a\xf9\x92\x63\x92\x64\x53\xca\x48\xc6\x4a\xf1\x54\xd2\x92\x65\x92\x66\x92\x67\x57\x70\x92\x68\x92\x69\x50\x58\x92\x6a\x92\x6b\x92\x6c\x92\x6d\x92\x6e\x92\x6f\x92\x70\x50\x7b\x92\x71\x92\x72\x54\x44\x5b\xb3\x92\x73\x50\xa8\x5f\xd0\x55\x48\x59\x90\x53\x44\x48\xe6\x4a\x56\x54\xc4\x92\x74\x92\x75\x48\xe1\x92\x76\x92\x77\x4c\x97\x92\x78\x92\x79\x53\x9b\x92\x7a\x92\x7b\x4b\xf2\x92\x7c\x5b\x72\x4a\x70", /* 6280 */ "\x4e\xbb\x92\x7d\x92\x7e\x92\x7f\x4a\x4d\x92\x81\x92\x82\x92\x83\x92\x84\x4f\xf0\x48\xd0\x92\x85\x92\x86\x92\x87\x92\x88\x92\x89\x92\x8a\x59\xd5\x55\xe2\x5c\x45\x92\x8b\x57\x56\x4b\xb5\x50\x59\x5b\x7b\x92\x8c\x4c\xa6\x53\x77\x92\x8d\x92\x8e\x92\x8f\x5f\xd1\x50\x79\x51\xd4\x54\x60\x92\x90\x4e\x44\x49\x48\x92\x91\x92\x92\x53\x8b\x92\x93\x92\x94\x53\x9c\x56\xa6\x92\x95\x92\x96\x92\x97\x92\x98\x49\x47\x92\x99\x92\x9a\x92\x9b\x4b\x76\x92\x9c\x92\x9d\x92\x9e\x52\xa7\x92\x9f\x5f\xd2\x59\x5a\x4a\x8a\x92\xa0\x52\x93\x92\xa1\x92\xa2\x4c\x98\x92\xa3\x5b\xf3\x4b\x43\x49\xef\x52\xb3\x52\xe8\x50\xac\x5f\xd3\x92\xa4\x48\xe7\x53\x64\x51\x81\x92\xa5\x4d\x75\x92\xa6\x4f\xdb\x57\x78\x48\xcd\x92\xa7\x57\x6f\x5f\xd5\x4f\xcf\x5c\x5e\x5f\xd4\x5b\x70\x48\xdc\x92\xa8\x92\xa9\x52\xe1\x92\xaa\x92\xab\x51\xa2\x4e\xef\x92\xac\x5a\x55\x50\xb8\x53\x41\x49\xa5\x5a\xf0\x92\xad\x92\xae\x50\xa7\x55\xc2\x5f\xd6\x5b\x9d\x92\xaf\x4d\x50\x92\xb0\x54\xac\x56\x49\x92\xb1\x5f\xd8\x50\x5d\x92\xb2\x92\xb3\x92\xb4\x92\xb5\x53\xb3\x5c\x47\x55\xaf\x52\xc2", /* 6300 */ "\x92\xb6\x4a\x76\x4d\x72\x92\xb7\x92\xb8\x92\xb9\x92\xba\x5b\xb7\x65\xfb\x48\xb3\x92\xbb\x92\xbc\x92\xbd\x92\xbe\x50\x87\x92\xbf\x92\xc0\x56\xf3\x92\xc1\x92\xc2\x92\xc3\x92\xc4\x57\x7a\x92\xc5\x92\xc6\x92\xc7\x5b\xbe\x51\xcd\x92\xc8\x57\xcd\x56\xa1\x58\xad\x52\xd2\x4b\x52\x5f\xd7\x5b\x96\x4e\xb6\x4e\x73\x92\xc9\x92\xca\x48\xa3\x92\xcb\x53\x52\x4a\xeb\x92\xcc\x92\xcd\x92\xce\x5b\x92\x92\xcf\x92\xd0\x65\xfc\x92\xd1\x92\xd2\x92\xd3\x92\xd4\x92\xd5\x92\xd6\x5f\xd9\x57\x46\x92\xd7\x92\xd8\x57\x8d\x92\xd9\x92\xda\x92\xdb\x92\xdc\x57\xe5\x5f\xdb\x92\xdd\x57\x51\x50\xa5\x92\xde\x92\xdf\x5c\x5d\x92\xe0\x5f\xda\x48\xc5\x4d\xb3\x55\x73\x52\xf2\x4f\xe7\x92\xe1\x92\xe2\x92\xe3\x92\xe4\x49\xb5\x92\xe5\x92\xe6\x92\xe7\x92\xe8\x92\xe9\x92\xea\x92\xeb\x92\xec\x50\xcb\x56\x91\x92\xed\x4e\xf0\x4e\x5b\x4b\x57\x92\xee\x92\xef\x92\xf0\x53\x96\x92\xf1\x5f\xe5\x92\xf2\x92\xf3\x92\xf4\x5f\xe2\x4f\xdc\x92\xf5\x92\xf6\x5f\xde\x92\xf7\x92\xf8\x92\xf9\x92\xfa\x4a\xb6\x4f\x7d\x92\xfb\x92\xfc\x5f\xdf\x52\xec\x92\xfd\x93\x41\x93\x42\x93\x43", /* 6380 */ "\x58\x66\x93\x44\x4b\x81\x93\x45\x93\x46\x93\x47\x93\x48\x4b\xdd\x55\xd9\x4b\x95\x5f\xe4\x93\x49\x5b\x66\x93\x4a\x5f\xe0\x56\xcc\x53\xfd\x93\x4b\x53\x65\x93\x4c\x93\x4d\x93\x4e\x59\xb3\x93\x4f\x4f\xf1\x93\x50\x93\x51\x93\x52\x93\x53\x93\x54\x93\x55\x93\x56\x51\xd2\x93\x57\x56\xbc\x4a\x58\x93\x58\x4f\x73\x93\x59\x50\x78\x57\x66\x59\x7a\x4a\xea\x93\x5a\x5f\xe3\x5f\xdc\x5f\xe6\x93\x5b\x65\xfd\x93\x5c\x93\x5d\x51\xaf\x5f\xe1\x93\x5e\x93\x5f\x5b\xbf\x4b\x47\x93\x60\x49\xf3\x93\x61\x5f\xe7\x93\x62\x5f\xf1\x93\x63\x93\x64\x93\x65\x93\x66\x93\x67\x5f\xec\x93\x68\x5f\xf0\x93\x69\x93\x6a\x54\xdf\x93\x6b\x93\x6c\x93\x6d\x5c\x82\x5f\xee\x52\x89\x56\xe0\x93\x6e\x49\xe4\x93\x6f\x93\x70\x93\x71\x59\xbd\x93\x72\x93\x73\x93\x74\x93\x75\x93\x76\x93\x77\x93\x78\x5f\xed\x93\x79\x5f\xea\x57\xd4\x93\x7a\x4a\xa6\x93\x7b\x93\x7c\x93\x7d\x93\x7e\x93\x7f\x50\x4b\x4f\xbd\x93\x81\x93\x82\x4f\x72\x93\x83\x93\x84\x93\x85\x93\x86\x5f\xe8\x93\x87\x5a\xad\x93\x88\x5f\xdd\x93\x89\x5f\xe9\x93\x8a\x93\x8b\x93\x8c\x93\x8d\x50\xbe\x93\x8e\x5f\xeb", /* 6400 */ "\x49\xf2\x4c\xe8\x51\xa6\x93\x8f\x93\x90\x4f\x61\x93\x91\x93\x92\x93\x93\x93\x94\x93\x95\x5f\xf4\x5f\xf7\x93\x96\x93\x97\x49\xaa\x4a\xa3\x93\x98\x93\x99\x4a\xe9\x55\x46\x93\x9a\x93\x9b\x93\x9c\x93\x9d\x93\x9e\x93\x9f\x5f\xf5\x56\x71\x93\xa0\x4c\xe2\x93\xa1\x5f\xf6\x5f\xf9\x93\xa2\x93\xa3\x93\xa4\x93\xa5\x5f\xf8\x93\xa6\x93\xa7\x93\xa8\x56\xc1\x93\xa9\x48\xe0\x4a\xed\x93\xaa\x93\xab\x93\xac\x93\xad\x93\xae\x93\xaf\x63\x5a\x93\xb0\x93\xb1\x93\xb2\x93\xb3\x93\xb4\x58\xae\x93\xb5\x93\xb6\x49\xea\x93\xb7\x66\x41\x93\xb8\x5f\xf3\x93\xb9\x93\xba\x55\x84\x5f\xf2\x48\xd9\x59\xa0\x49\x98\x93\xbb\x56\xae\x93\xbc\x93\xbd\x93\xbe\x93\xbf\x93\xc0\x93\xc1\x93\xc2\x5f\xef\x93\xc3\x56\x44\x93\xc4\x93\xc5\x93\xc6\x5b\x4a\x93\xc7\x93\xc8\x93\xc9\x93\xca\x93\xcb\x5f\xfa\x93\xcc\x93\xcd\x93\xce\x93\xcf\x93\xd0\x93\xd1\x93\xd2\x93\xd3\x4a\xdc\x93\xd4\x52\xa5\x93\xd5\x93\xd6\x93\xd7\x5f\xfc\x93\xd8\x93\xd9\x93\xda\x93\xdb\x93\xdc\x93\xdd\x93\xde\x93\xdf\x93\xe0\x93\xe1\x52\x9f\x52\xa0\x60\x41\x93\xe2\x93\xe3\x93\xe4\x93\xe5\x93\xe6", /* 6480 */ "\x93\xe7\x93\xe8\x51\x6c\x93\xe9\x5f\xfb\x4f\xee\x93\xea\x53\xb1\x93\xeb\x93\xec\x93\xed\x93\xee\x93\xef\x93\xf0\x93\xf1\x93\xf2\x93\xf3\x4a\x65\x54\xf5\x93\xf4\x93\xf5\x56\x5a\x5f\xfd\x93\xf6\x93\xf7\x60\x44\x93\xf8\x93\xf9\x93\xfa\x93\xfb\x5c\x52\x93\xfc\x93\xfd\x94\x41\x94\x42\x94\x43\x4a\x57\x94\x44\x94\x45\x94\x46\x94\x47\x51\x63\x94\x48\x94\x49\x54\x6b\x49\xa4\x4a\xe8\x94\x4a\x5c\x4b\x94\x4b\x94\x4c\x94\x4d\x94\x4e\x52\xeb\x94\x4f\x60\x42\x60\x43\x94\x50\x60\x45\x94\x51\x4d\xb2\x94\x52\x94\x53\x94\x54\x60\x46\x94\x55\x50\xdd\x94\x56\x94\x57\x55\x63\x94\x58\x94\x59\x94\x5a\x94\x5b\x94\x5c\x94\x5d\x94\x5e\x49\xd8\x54\x87\x94\x5f\x60\x47\x94\x60\x54\x7c\x94\x61\x94\x62\x94\x63\x94\x64\x60\x48\x66\x42\x94\x65\x94\x66\x94\x67\x94\x68\x94\x69\x56\x73\x94\x6a\x94\x6b\x94\x6c\x60\x4a\x94\x6d\x60\x49\x94\x6e\x49\xc0\x94\x6f\x94\x70\x94\x71\x94\x72\x94\x73\x94\x74\x94\x75\x94\x76\x94\x77\x94\x78\x94\x79\x94\x7a\x94\x7b\x94\x7c\x94\x7d\x94\x7e\x94\x7f\x94\x81\x94\x82\x94\x83\x94\x84\x94\x85\x94\x86\x94\x87\x94\x88", /* 6500 */ "\x53\x6a\x94\x89\x94\x8a\x94\x8b\x94\x8c\x94\x8d\x94\x8e\x94\x8f\x94\x90\x60\x4b\x94\x91\x94\x92\x94\x93\x94\x94\x94\x95\x94\x96\x94\x97\x94\x98\x5a\xdb\x94\x99\x94\x9a\x94\x9b\x94\x9c\x94\x9d\x54\xc0\x94\x9e\x94\x9f\x94\xa0\x94\xa1\x94\xa2\x94\xa3\x94\xa4\x94\xa5\x94\xa6\x94\xa7\x94\xa8\x94\xa9\x60\x4c\x94\xaa\x94\xab\x94\xac\x94\xad\x94\xae\x4f\xef\x94\xaf\x94\xb0\x60\x4d\x5b\xa6\x94\xb1\x94\xb2\x94\xb3\x94\xb4\x65\xb6\x66\x56\x55\xd4\x94\xb5\x5c\xfb\x4c\xc3\x94\xb6\x4d\x45\x94\xb7\x94\xb8\x4c\x65\x5b\x9f\x94\xb9\x94\xba\x94\xbb\x94\xbc\x94\xbd\x4d\x6a\x94\xbe\x94\xbf\x58\xa6\x6a\xcc\x94\xc0\x94\xc1\x4b\x70\x94\xc2\x94\xc3\x52\x95\x94\xc4\x4f\xc7\x94\xc5\x94\xc6\x94\xc7\x66\x57\x48\xbc\x94\xc8\x94\xc9\x4f\x6c\x94\xca\x51\x52\x94\xcb\x49\x76\x4a\x48\x94\xcc\x94\xcd\x94\xce\x4c\xd1\x55\x42\x94\xcf\x94\xd0\x4b\xd7\x94\xd1\x94\xd2\x94\xd3\x94\xd4\x66\x58\x4f\xb3\x94\xd5\x94\xd6\x94\xd7\x55\xfc\x94\xd8\x54\x63\x94\xd9\x5b\x9c\x94\xda\x94\xdb\x4c\x94\x94\xdc\x94\xdd\x94\xde\x94\xdf\x94\xe0\x94\xe1\x94\xe2\x94\xe3", /* 6580 */ "\x94\xe4\x94\xe5\x94\xe6\x94\xe7\x94\xe8\x94\xe9\x94\xea\x57\xc3\x94\xeb\x94\xec\x94\xed\x5b\x4b\x49\x94\x94\xee\x94\xef\x94\xf0\x66\xb2\x48\xde\x94\xf1\x66\xb4\x94\xf2\x94\xf3\x94\xf4\x4b\xb6\x94\xf5\x51\x6f\x94\xf6\x6b\x9b\x58\xb0\x94\xf7\x94\xf8\x5b\x86\x94\xf9\x57\xd2\x94\xfa\x94\xfb\x4f\x90\x4a\x83\x94\xfc\x4c\xaa\x94\xfd\x5b\x56\x95\x41\x67\x5d\x95\x42\x4b\xce\x95\x43\x56\x59\x58\xc1\x95\x44\x95\x45\x95\x46\x95\x47\x95\x48\x95\x49\x95\x4a\x95\x4b\x4c\x5d\x95\x4c\x95\x4d\x66\xb5\x55\xa8\x95\x4e\x95\x4f\x95\x50\x53\x74\x95\x51\x66\xb8\x66\xb7\x51\xc2\x66\xb6\x95\x52\x95\x53\x95\x54\x95\x55\x58\xfc\x66\xb9\x95\x56\x66\xba\x5c\x86\x95\x57\x95\x58\x66\xbb\x95\x59\x95\x5a\x95\x5b\x66\xbc\x53\xeb\x95\x5c\x95\x5d\x95\x5e\x95\x5f\x95\x60\x95\x61\x95\x62\x95\x63\x57\xdd\x95\x64\x4e\xc7\x95\x65\x95\x66\x54\xd4\x4b\x49\x4f\xc8\x5b\xbb\x5a\xe6\x95\x67\x95\x68\x59\x4e\x58\xf0\x65\xb7\x65\xb8\x65\xb9\x4d\xb4\x95\x69\x95\x6a\x95\x6b\x95\x6c\x55\xb0\x50\x96\x95\x6d\x95\x6e\x57\x9b\x95\x6f\x95\x70\x95\x71\x95\x72\x95\x73", /* 6600 */ "\x65\xbf\x95\x74\x48\xb9\x65\xbd\x95\x75\x95\x76\x50\xa4\x95\x77\x95\x78\x95\x79\x65\xba\x95\x7a\x49\xfc\x95\x7b\x52\x98\x4e\x89\x95\x7c\x95\x7d\x95\x7e\x59\xd6\x57\xf3\x65\xbe\x95\x7f\x95\x81\x95\x82\x65\xbb\x95\x83\x95\x84\x95\x85\x65\xc2\x95\x86\x58\xc6\x5a\x53\x95\x87\x95\x88\x95\x89\x95\x8a\x4a\xb9\x95\x8b\x52\x61\x5c\x93\x95\x8c\x95\x8d\x95\x8e\x95\x8f\x5b\x71\x95\x90\x55\xc6\x95\x91\x65\xc4\x95\x92\x95\x93\x65\xc3\x65\xc6\x65\xc5\x95\x94\x95\x95\x95\x96\x95\x97\x95\x98\x5b\xe6\x95\x99\x58\x74\x95\x9a\x95\x9b\x65\xca\x95\x9c\x4e\x6e\x95\x9d\x95\x9e\x95\x9f\x95\xa0\x95\xa1\x95\xa2\x95\xa3\x4f\x9b\x55\x6e\x95\xa4\x95\xa5\x65\xcb\x95\xa6\x95\xa7\x55\x59\x58\x9f\x65\xc9\x5a\xcd\x65\xcc\x65\xce\x95\xa8\x95\xa9\x57\x8e\x95\xaa\x95\xab\x95\xac\x95\xad\x65\xc8\x95\xae\x65\xcd\x95\xaf\x95\xb0\x57\xed\x95\xb1\x4e\x7e\x95\xb2\x4a\x5f\x95\xb3\x95\xb4\x95\xb5\x95\xb6\x95\xb7\x53\xd4\x4f\xaf\x57\xf9\x95\xb8\x95\xb9\x95\xba\x54\x88\x95\xbb\x4f\xa6\x65\xcf\x95\xbc\x95\xbd\x5b\xc6\x95\xbe\x95\xbf\x95\xc0\x51\x60\x95\xc1", /* 6680 */ "\x95\xc2\x95\xc3\x5a\xdc\x95\xc4\x65\xd0\x95\xc5\x95\xc6\x58\x5e\x95\xc7\x95\xc8\x95\xc9\x95\xca\x65\xd1\x95\xcb\x95\xcc\x95\xcd\x95\xce\x55\xed\x95\xcf\x95\xd0\x95\xd1\x95\xd2\x53\x4f\x48\xb4\x95\xd3\x95\xd4\x95\xd5\x95\xd6\x95\xd7\x65\xd3\x95\xd8\x95\xd9\x95\xda\x95\xdb\x95\xdc\x95\xdd\x95\xde\x95\xdf\x95\xe0\x65\xd2\x6a\xde\x95\xe1\x95\xe2\x95\xe3\x95\xe4\x95\xe5\x52\xb9\x95\xe6\x95\xe7\x95\xe8\x95\xe9\x95\xea\x49\x49\x95\xeb\x95\xec\x95\xed\x95\xee\x63\x7f\x95\xef\x95\xf0\x95\xf1\x95\xf2\x65\xd4\x95\xf3\x95\xf4\x95\xf5\x95\xf6\x95\xf7\x95\xf8\x95\xf9\x95\xfa\x95\xfb\x95\xfc\x95\xfd\x96\x41\x96\x42\x96\x43\x96\x44\x96\x45\x96\x46\x96\x47\x96\x48\x96\x49\x96\x4a\x96\x4b\x96\x4c\x96\x4d\x96\x4e\x96\x4f\x55\xee\x96\x50\x65\xd5\x65\xd6\x53\xd7\x96\x51\x96\x52\x96\x53\x96\x54\x96\x55\x96\x56\x96\x57\x96\x58\x65\xd7\x96\x59\x96\x5a\x65\xd8\x96\x5b\x96\x5c\x96\x5d\x96\x5e\x96\x5f\x96\x60\x5a\xba\x96\x61\x54\x9b\x59\xb6\x4c\xfb\x96\x62\x96\x63\x65\xc1\x96\x64\x49\xdb\x96\x65\x96\x66\x51\xfb\x96\x67\x5a\xf7\x56\xe5", /* 6700 */ "\x5c\x8f\x96\x68\x96\x69\x96\x6a\x96\x6b\x96\x6c\x96\x6d\x96\x6e\x5a\xc1\x5a\x70\x66\x63\x53\x94\x96\x6f\x4c\x9f\x96\x70\x96\x71\x66\x74\x96\x72\x96\x73\x96\x74\x56\x57\x66\x7e\x96\x75\x50\xc9\x96\x76\x96\x77\x96\x78\x57\x9c\x96\x79\x4a\x4f\x96\x7a\x53\xd9\x96\x7b\x96\x7c\x96\x7d\x96\x7e\x96\x7f\x96\x81\x66\x9d\x96\x82\x52\xbd\x96\x83\x57\xb3\x52\xa8\x49\x5e\x5a\xfc\x96\x84\x55\xf4\x96\x85\x5b\xeb\x96\x86\x96\x87\x53\xd2\x4b\xe3\x96\x88\x96\x89\x96\x8a\x96\x8b\x4e\x9b\x96\x8c\x96\x8d\x58\xdf\x96\x8e\x96\x8f\x55\x51\x96\x90\x5a\xd2\x54\xa7\x96\x91\x96\x92\x4c\xca\x96\x93\x64\xbd\x55\x5c\x96\x94\x96\x95\x64\xba\x96\x96\x50\xed\x58\xd2\x49\xc3\x4a\xe4\x96\x97\x64\xbb\x96\x98\x96\x99\x5b\x68\x96\x9a\x96\x9b\x96\x9c\x96\x9d\x96\x9e\x4b\xc4\x96\x9f\x64\xbc\x55\xf7\x4c\xdb\x56\xf4\x96\xa0\x96\xa1\x96\xa2\x50\xb3\x96\xa3\x96\xa4\x59\x8f\x64\xbe\x64\xc1\x96\xa5\x96\xa6\x4d\xbb\x96\xa7\x49\x4d\x4f\x7c\x96\xa8\x65\xbc\x64\xc2\x96\xa9\x64\xc5\x96\xaa\x64\xca\x96\xab\x96\xac\x96\xad\x96\xae\x64\xcb\x96\xaf\x56\x69\x48\xe4", /* 6780 */ "\x96\xb0\x4e\xaa\x96\xb1\x96\xb2\x4d\x59\x96\xb3\x96\xb4\x64\xc0\x96\xb5\x57\x98\x96\xb6\x64\xc9\x96\xb7\x96\xb8\x96\xb9\x96\xba\x57\xf5\x96\xbb\x96\xbc\x96\xbd\x96\xbe\x5b\x8e\x96\xbf\x51\x76\x64\xc3\x96\xc0\x52\x56\x96\xc1\x4d\x9c\x5b\xa5\x64\xc7\x96\xc2\x96\xc3\x96\xc4\x55\xdf\x5a\xe5\x96\xc5\x64\xbf\x96\xc6\x64\xc4\x64\xc6\x96\xc7\x54\x59\x4c\x84\x96\xc8\x64\xc8\x96\xc9\x50\x7d\x64\xd1\x96\xca\x96\xcb\x64\xd6\x96\xcc\x64\xd4\x4e\xdb\x4e\xce\x64\xda\x96\xcd\x96\xce\x96\xcf\x96\xd0\x96\xd1\x96\xd2\x96\xd3\x96\xd4\x64\xdd\x96\xd5\x64\xd9\x49\x9b\x96\xd6\x96\xd7\x96\xd8\x96\xd9\x96\xda\x96\xdb\x96\xdc\x96\xdd\x96\xde\x96\xdf\x48\xd7\x52\xb2\x4c\xcb\x53\xe1\x54\xbd\x54\xe0\x96\xe0\x96\xe1\x96\xe2\x64\xce\x64\xd3\x64\xd5\x96\xe3\x4d\x92\x64\xd7\x5c\x96\x96\xe4\x52\xfa\x96\xe5\x64\xdb\x96\xe6\x96\xe7\x49\xe8\x96\xe8\x96\xe9\x96\xea\x64\xd0\x96\xeb\x96\xec\x4e\xec\x96\xed\x96\xee\x50\x62\x64\xcc\x5b\xf8\x96\xef\x51\x99\x49\xf0\x96\xf0\x96\xf1\x96\xf2\x96\xf3\x96\xf4\x96\xf5\x96\xf6\x96\xf7\x64\xde\x96\xf8\x55\xc0", /* 6800 */ "\x64\xd8\x96\xf9\x96\xfa\x96\xfb\x96\xfc\x5b\x44\x96\xfd\x49\x8b\x5b\x5b\x64\xcd\x64\xcf\x4b\xaf\x64\xd2\x97\x41\x64\xdc\x50\xb7\x97\x42\x55\xf6\x97\x43\x56\x48\x97\x44\x97\x45\x53\xdb\x50\xf4\x97\x46\x97\x47\x97\x48\x97\x49\x97\x4a\x64\xe8\x97\x4b\x97\x4c\x97\x4d\x58\xa2\x97\x4e\x97\x4f\x97\x50\x97\x51\x97\x52\x97\x53\x97\x54\x64\xf1\x5b\xe9\x97\x55\x97\x56\x97\x57\x97\x58\x97\x59\x97\x5a\x97\x5b\x64\xdf\x64\xe0\x97\x5c\x97\x5d\x97\x5e\x59\x9a\x4d\xca\x4c\xf8\x97\x5f\x97\x60\x4c\xf0\x5a\xd3\x64\xee\x97\x61\x64\xed\x64\xeb\x4d\x91\x56\xd1\x64\xe5\x57\xa5\x50\x93\x97\x62\x48\xb7\x64\xf0\x64\xef\x97\x63\x5c\x60\x97\x64\x64\xe3\x97\x65\x57\x49\x55\x43\x97\x66\x4e\x58\x4f\x7b\x64\xe9\x97\x67\x97\x68\x97\x69\x97\x6a\x97\x6b\x97\x6c\x97\x6d\x97\x6e\x97\x6f\x97\x70\x64\xe1\x64\xe2\x64\xe4\x4b\x55\x64\xe6\x54\x65\x64\xea\x64\xec\x4f\x50\x5c\x4e\x97\x71\x64\xf7\x97\x72\x97\x73\x97\x74\x97\x75\x97\x76\x97\x77\x97\x78\x97\x79\x64\xf4\x97\x7a\x57\x50\x64\xf5\x97\x7b\x97\x7c\x97\x7d\x97\x7e\x97\x7f\x97\x81\x97\x82\x97\x83", /* 6880 */ "\x97\x84\x51\x5a\x97\x85\x64\xe7\x97\x86\x52\x57\x48\xef\x97\x87\x97\x88\x97\x89\x97\x8a\x97\x8b\x97\x8c\x97\x8d\x97\x8e\x64\xf3\x97\x8f\x97\x90\x97\x91\x64\xf6\x97\x92\x97\x93\x97\x94\x4d\x43\x97\x95\x97\x96\x97\x97\x97\x98\x97\x99\x97\x9a\x97\x9b\x97\x9c\x97\x9d\x97\x9e\x55\x72\x97\x9f\x97\xa0\x97\xa1\x52\x6e\x57\xdf\x50\xe5\x97\xa2\x97\xa3\x97\xa4\x97\xa5\x56\x94\x97\xa6\x56\xdc\x58\xb4\x97\xa7\x97\xa8\x55\xe0\x97\xa9\x64\xf2\x97\xaa\x97\xab\x97\xac\x97\xad\x97\xae\x97\xaf\x97\xb0\x97\xb1\x97\xb2\x97\xb3\x4e\xeb\x97\xb4\x64\xf8\x97\xb5\x97\xb6\x97\xb7\x97\xb8\x97\xb9\x97\xba\x52\x7e\x97\xbb\x53\xe4\x97\xbc\x4d\x98\x97\xbd\x97\xbe\x97\xbf\x97\xc0\x48\xf3\x97\xc1\x97\xc2\x5c\x78\x97\xc3\x97\xc4\x4e\xab\x97\xc5\x53\x90\x97\xc6\x97\xc7\x97\xc8\x97\xc9\x97\xca\x56\xc3\x97\xcb\x97\xcc\x65\x46\x97\xcd\x97\xce\x97\xcf\x97\xd0\x97\xd1\x97\xd2\x97\xd3\x97\xd4\x97\xd5\x97\xd6\x55\x4d\x97\xd7\x65\x42\x50\xe1\x97\xd8\x97\xd9\x97\xda\x50\x63\x97\xdb\x97\xdc\x97\xdd\x64\xfd\x4d\x77\x97\xde\x64\xfa\x97\xdf\x97\xe0\x97\xe1", /* 6900 */ "\x97\xe2\x65\x44\x97\xe3\x97\xe4\x97\xe5\x59\xcd\x97\xe6\x97\xe7\x97\xe8\x97\xe9\x97\xea\x65\x43\x97\xeb\x5b\xb1\x5c\x55\x97\xec\x65\x47\x97\xed\x4f\x57\x97\xee\x97\xef\x97\xf0\x97\xf1\x97\xf2\x97\xf3\x97\xf4\x97\xf5\x97\xf6\x97\xf7\x97\xf8\x97\xf9\x64\xfb\x64\xfc\x97\xfa\x97\xfb\x97\xfc\x65\x41\x97\xfd\x98\x41\x98\x42\x98\x43\x98\x44\x98\x45\x98\x46\x98\x47\x57\x76\x98\x48\x98\x49\x59\xab\x98\x4a\x98\x4b\x98\x4c\x65\x52\x98\x4d\x98\x4e\x98\x4f\x98\x50\x65\x49\x98\x51\x98\x52\x98\x53\x4a\xa9\x98\x54\x4a\xba\x98\x55\x98\x56\x65\x4b\x98\x57\x98\x58\x98\x59\x98\x5a\x98\x5b\x98\x5c\x98\x5d\x98\x5e\x98\x5f\x98\x60\x98\x61\x98\x62\x98\x63\x98\x64\x98\x65\x98\x66\x98\x67\x58\xa7\x98\x68\x98\x69\x65\x45\x98\x6a\x98\x6b\x4a\x9f\x98\x6c\x98\x6d\x65\x4c\x50\xe2\x98\x6e\x65\x4a\x98\x6f\x98\x70\x65\x59\x98\x71\x98\x72\x65\x58\x98\x73\x98\x74\x98\x75\x98\x76\x65\x4e\x98\x77\x98\x78\x64\xf9\x98\x79\x98\x7a\x65\x48\x98\x7b\x98\x7c\x98\x7d\x98\x7e\x98\x7f\x50\x4c\x65\x51\x65\x5a\x98\x81\x98\x82\x51\xa4\x98\x83\x98\x84\x98\x85", /* 6980 */ "\x65\x4f\x98\x86\x4c\xc4\x98\x87\x65\x4d\x98\x88\x5a\x7c\x65\x54\x65\x55\x65\x57\x98\x89\x98\x8a\x98\x8b\x65\x67\x98\x8c\x98\x8d\x98\x8e\x98\x8f\x98\x90\x98\x91\x50\xc5\x65\x65\x98\x92\x98\x93\x65\x50\x98\x94\x98\x95\x65\x5b\x48\xf0\x98\x96\x98\x97\x98\x98\x98\x99\x98\x9a\x98\x9b\x98\x9c\x98\x9d\x98\x9e\x98\x9f\x65\x5c\x5b\x45\x98\xa0\x98\xa1\x65\x5e\x98\xa2\x65\x5f\x98\xa3\x98\xa4\x98\xa5\x65\x61\x98\xa6\x98\xa7\x51\x92\x98\xa8\x98\xa9\x54\xb5\x98\xaa\x98\xab\x98\xac\x65\x5d\x98\xad\x98\xae\x98\xaf\x98\xb0\x98\xb1\x65\x62\x98\xb2\x98\xb3\x98\xb4\x98\xb5\x98\xb6\x98\xb7\x98\xb8\x98\xb9\x65\x63\x98\xba\x65\x53\x98\xbb\x65\x56\x98\xbc\x4e\x51\x98\xbd\x98\xbe\x98\xbf\x65\x60\x98\xc0\x98\xc1\x98\xc2\x98\xc3\x98\xc4\x98\xc5\x4e\xf6\x98\xc6\x98\xc7\x98\xc8\x65\x64\x65\x66\x98\xc9\x98\xca\x98\xcb\x98\xcc\x98\xcd\x98\xce\x98\xcf\x98\xd0\x98\xd1\x98\xd2\x98\xd3\x98\xd4\x65\x6a\x98\xd5\x98\xd6\x98\xd7\x98\xd8\x65\x6e\x98\xd9\x98\xda\x98\xdb\x98\xdc\x98\xdd\x98\xde\x98\xdf\x98\xe0\x98\xe1\x98\xe2\x49\xda\x98\xe3\x65\x68", /* 6a00 */ "\x98\xe4\x98\xe5\x98\xe6\x98\xe7\x98\xe8\x98\xe9\x98\xea\x98\xeb\x98\xec\x98\xed\x4c\x4e\x98\xee\x98\xef\x98\xf0\x98\xf1\x98\xf2\x98\xf3\x98\xf4\x98\xf5\x98\xf6\x98\xf7\x98\xf8\x98\xf9\x65\x6b\x65\x6c\x98\xfa\x98\xfb\x98\xfc\x98\xfd\x99\x41\x99\x42\x5b\x61\x99\x43\x52\xa2\x99\x44\x99\x45\x99\x46\x99\x47\x99\x48\x99\x49\x65\x78\x99\x4a\x4d\xe0\x99\x4b\x99\x4c\x99\x4d\x99\x4e\x65\x69\x99\x4f\x5a\x43\x99\x50\x99\x51\x99\x52\x65\x74\x99\x53\x99\x54\x99\x55\x99\x56\x99\x57\x99\x58\x99\x59\x65\x77\x65\x70\x99\x5a\x99\x5b\x99\x5c\x99\x5d\x99\x5e\x65\x6f\x99\x5f\x99\x60\x54\x61\x99\x61\x99\x62\x99\x63\x99\x64\x99\x65\x99\x66\x99\x67\x99\x68\x65\x72\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x6d\x99\x6e\x99\x6f\x65\x79\x4a\x68\x99\x70\x65\x73\x99\x71\x99\x72\x99\x73\x99\x74\x99\x75\x58\x91\x99\x76\x99\x77\x99\x78\x65\x6d\x99\x79\x99\x7a\x99\x7b\x99\x7c\x99\x7d\x99\x7e\x99\x7f\x99\x81\x99\x82\x99\x83\x99\x84\x4a\x98\x99\x85\x99\x86\x99\x87\x99\x88\x99\x89\x99\x8a\x99\x8b\x65\x76\x99\x8c\x99\x8d\x65\x7a\x99\x8e\x99\x8f\x99\x90", /* 6a80 */ "\x56\xb3\x99\x91\x99\x92\x99\x93\x58\x4d\x99\x94\x99\x95\x99\x96\x99\x97\x99\x98\x99\x99\x99\x9a\x99\x9b\x99\x9c\x65\x75\x99\x9d\x65\x7c\x65\x7b\x99\x9e\x99\x9f\x99\xa0\x99\xa1\x99\xa2\x65\x7e\x99\xa3\x99\xa4\x99\xa5\x99\xa6\x99\xa7\x99\xa8\x99\xa9\x99\xaa\x65\x71\x99\xab\x99\xac\x99\xad\x99\xae\x99\xaf\x99\xb0\x99\xb1\x99\xb2\x65\x7d\x99\xb3\x65\x7f\x52\x6a\x99\xb4\x99\xb5\x99\xb6\x99\xb7\x99\xb8\x99\xb9\x99\xba\x99\xbb\x99\xbc\x99\xbd\x99\xbe\x99\xbf\x99\xc0\x99\xc1\x99\xc2\x99\xc3\x99\xc4\x99\xc5\x99\xc6\x99\xc7\x99\xc8\x99\xc9\x99\xca\x99\xcb\x99\xcc\x99\xcd\x99\xce\x99\xcf\x99\xd0\x99\xd1\x99\xd2\x99\xd3\x99\xd4\x99\xd5\x99\xd6\x99\xd7\x99\xd8\x99\xd9\x99\xda\x99\xdb\x99\xdc\x99\xdd\x99\xde\x99\xdf\x99\xe0\x99\xe1\x99\xe2\x99\xe3\x99\xe4\x99\xe5\x99\xe6\x99\xe7\x99\xe8\x99\xe9\x99\xea\x99\xeb\x99\xec\x99\xed\x99\xee\x99\xef\x99\xf0\x99\xf1\x99\xf2\x99\xf3\x99\xf4\x99\xf5\x99\xf6\x99\xf7\x99\xf8\x99\xf9\x99\xfa\x99\xfb\x99\xfc\x99\xfd\x9a\x41\x9a\x42\x9a\x43\x9a\x44\x9a\x45\x9a\x46\x9a\x47\x9a\x48\x9a\x49", /* 6b00 */ "\x9a\x4a\x9a\x4b\x9a\x4c\x9a\x4d\x9a\x4e\x9a\x4f\x9a\x50\x9a\x51\x9a\x52\x9a\x53\x9a\x54\x9a\x55\x9a\x56\x9a\x57\x9a\x58\x9a\x59\x9a\x5a\x9a\x5b\x9a\x5c\x9a\x5d\x9a\x5e\x9a\x5f\x9a\x60\x9a\x61\x9a\x62\x9a\x63\x9a\x64\x9a\x65\x9a\x66\x9a\x67\x9a\x68\x9a\x69\x54\x57\x4a\xcd\x4e\x56\x58\xbf\x66\xa2\x9a\x6a\x9a\x6b\x53\x57\x9a\x6c\x9a\x6d\x9a\x6e\x9a\x6f\x9a\x70\x9a\x71\x9a\x72\x9a\x73\x9a\x74\x9a\x75\x5a\x9c\x9a\x76\x9a\x77\x9a\x78\x9a\x79\x66\xa3\x9a\x7a\x66\xa4\x53\xda\x9a\x7b\x9a\x7c\x9a\x7d\x50\x8f\x9a\x7e\x9a\x7f\x9a\x81\x9a\x82\x66\xa5\x9a\x83\x9a\x84\x66\xa6\x58\xa9\x9a\x85\x54\x58\x9a\x86\x9a\x87\x4c\xe7\x9a\x88\x9a\x89\x9a\x8a\x9a\x8b\x9a\x8c\x9a\x8d\x9a\x8e\x9a\x8f\x9a\x90\x9a\x91\x9a\x92\x9a\x93\x66\xa7\x9a\x94\x9a\x95\x9a\x96\x9a\x97\x9a\x98\x9a\x99\x9a\x9a\x9a\x9b\x5b\xb8\x5b\x9e\x4a\xca\x49\xbc\x57\xe3\x53\xe6\x9a\x9c\x9a\x9d\x57\x82\x9a\x9e\x9a\x9f\x9a\xa0\x9a\xa1\x9a\xa2\x9a\xa3\x9a\xa4\x9a\xa5\x9a\xa6\x9a\xa7\x9a\xa8\x9a\xa9\x9a\xaa\x9a\xab\x4a\xf4\x9a\xac\x56\x60\x4e\xde\x9a\xad\x9a\xae\x9a\xaf", /* 6b80 */ "\x9a\xb0\x65\x83\x65\x84\x59\x8b\x65\x86\x9a\xb1\x4a\xf8\x65\x85\x9a\xb2\x59\x53\x55\xe1\x49\xcf\x9a\xb3\x65\x89\x9a\xb4\x9a\xb5\x9a\xb6\x9a\xb7\x65\x87\x65\x88\x9a\xb8\x9a\xb9\x5b\xb2\x9a\xba\x9a\xbb\x9a\xbc\x65\x8a\x65\x8b\x9a\xbd\x9a\xbe\x9a\xbf\x9a\xc0\x9a\xc1\x65\x8c\x9a\xc2\x9a\xc3\x9a\xc4\x9a\xc5\x9a\xc6\x9a\xc7\x9a\xc8\x9a\xc9\x65\x8d\x9a\xca\x9a\xcb\x9a\xcc\x9a\xcd\x9a\xce\x9a\xcf\x9a\xd0\x9a\xd1\x66\xae\x53\x59\x4b\xcd\x9a\xd2\x59\xf2\x9a\xd3\x9a\xd4\x9a\xd5\x9a\xd6\x9a\xd7\x9a\xd8\x9a\xd9\x4b\x8f\x9a\xda\x4e\x79\x66\xb0\x9a\xdb\x9a\xdc\x59\xe2\x9a\xdd\x9a\xde\x9a\xdf\x9a\xe0\x9a\xe1\x57\xe2\x9a\xe2\x52\xb7\x9a\xe3\x52\x5f\x9a\xe4\x9a\xe5\x4b\xbd\x5c\xb8\x49\x68\x49\x6f\x49\x71\x53\x9f\x9a\xe6\x49\x70\x9a\xe7\x52\x4b\x9a\xe8\x9a\xe9\x9a\xea\x9a\xeb\x9a\xec\x5b\x51\x9a\xed\x9a\xee\x9a\xef\x9a\xf0\x9a\xf1\x9a\xf2\x9a\xf3\x9a\xf4\x66\x44\x4d\xc0\x9a\xf5\x9a\xf6\x9a\xf7\x56\xb9\x9a\xf8\x9a\xf9\x9a\xfa\x66\x45\x9a\xfb\x66\x47\x9a\xfc\x9a\xfd\x9b\x41\x66\x48\x9b\x42\x9b\x43\x9b\x44\x66\x46\x9b\x45\x9b\x46", /* 6c00 */ "\x9b\x47\x9b\x48\x9b\x49\x9b\x4a\x9b\x4b\x66\x49\x66\x4b\x66\x4a\x9b\x4c\x9b\x4d\x9b\x4e\x9b\x4f\x9b\x50\x66\x4c\x9b\x51\x55\xce\x5c\xb4\x52\x92\x9b\x52\x52\x45\x53\xf7\x66\x4d\x52\xc9\x9b\x53\x66\x4e\x66\x4f\x66\x50\x4c\x75\x9b\x54\x9b\x55\x9b\x56\x4c\x9b\x9b\x57\x66\x51\x54\x83\x9b\x58\x66\x53\x9b\x59\x4d\xa3\x59\x96\x48\xb0\x66\x52\x66\x54\x9b\x5a\x9b\x5b\x9b\x5c\x4b\x4a\x51\xc7\x54\x89\x9b\x5d\x66\x55\x9b\x5e\x56\x4e\x62\x7f\x9b\x5f\x9b\x60\x5a\x60\x9b\x61\x9b\x62\x9b\x63\x9b\x64\x5d\x7b\x9b\x65\x9b\x66\x57\x41\x5b\xac\x54\x94\x9b\x67\x9b\x68\x9b\x69\x5d\x81\x4e\x84\x9b\x6a\x4d\xb9\x62\x83\x9b\x6b\x9b\x6c\x9b\x6d\x9b\x6e\x9b\x6f\x58\x4b\x9b\x70\x9b\x71\x9b\x72\x62\x81\x55\x67\x9b\x73\x4d\xb8\x9b\x74\x9b\x75\x9b\x76\x59\x54\x62\x82\x54\xe9\x4d\x4f\x4f\x4d\x4a\x78\x57\xda\x9b\x77\x9b\x78\x56\xbf\x9b\x79\x9b\x7a\x9b\x7b\x62\x89\x62\x8a\x57\x95\x9b\x7c\x9b\x7d\x9b\x7e\x9b\x7f\x9b\x81\x56\xac\x9b\x82\x4e\xb2\x9b\x83\x62\x8b\x9b\x84\x62\x8c\x9b\x85\x9b\x86\x58\xd9\x9b\x87\x9b\x88\x9b\x89\x53\xfa\x4c\x7a\x9b\x8a", /* 6c80 */ "\x9b\x8b\x54\x7f\x59\xc9\x57\xd5\x9b\x8c\x62\x85\x62\x8d\x9b\x8d\x55\x93\x4a\x61\x9b\x8e\x9b\x8f\x62\x88\x9b\x90\x9b\x91\x53\xe2\x62\x86\x9b\x92\x9b\x93\x67\x53\x62\x87\x9b\x94\x9b\x95\x9b\x96\x9b\x97\x55\x53\x9b\x98\x53\x87\x9b\x99\x9b\x9a\x9b\x9b\x4d\x55\x9b\x9c\x52\x5b\x9b\x9d\x62\x84\x53\x5d\x51\x44\x51\xd8\x49\xd6\x9b\x9e\x62\x8e\x4e\x46\x52\xac\x9b\x9f\x62\x91\x4f\xd9\x9b\xa0\x9b\xa1\x62\x9c\x62\x96\x4d\xd2\x9b\xa2\x9b\xa3\x9b\xa4\x9b\xa5\x4c\x70\x5a\x6d\x9b\xa6\x5b\xcd\x5b\x73\x4d\x61\x5b\x54\x59\x78\x9b\xa7\x9b\xa8\x9b\xa9\x9b\xaa\x58\xb8\x54\x97\x9b\xab\x9b\xac\x9b\xad\x54\xa9\x49\xb3\x9b\xae\x52\x7a\x9b\xaf\x9b\xb0\x9b\xb1\x62\x8f\x9b\xb2\x9b\xb3\x62\x9d\x62\x90\x4c\x48\x62\x98\x62\x95\x9b\xb4\x9b\xb5\x9b\xb6\x4c\x5a\x9b\xb7\x9b\xb8\x53\x42\x9b\xb9\x62\x97\x53\x7d\x49\xa7\x53\xfb\x9b\xba\x52\xdf\x9b\xbb\x9b\xbc\x5c\x42\x9b\xbd\x50\xe0\x62\x9a\x9b\xbe\x9b\xbf\x62\x9b\x62\x9e\x56\xa8\x62\x94\x9b\xc0\x5a\x5e\x9b\xc1\x49\x63\x67\x54\x62\x92\x62\x93\x9b\xc2\x62\x99\x58\xb9\x53\xc2\x5a\xf2\x62\x9f\x9b\xc3", /* 6d00 */ "\x9b\xc4\x4f\x81\x9b\xc5\x9b\xc6\x62\xa6\x9b\xc7\x9b\xc8\x62\xa5\x9b\xc9\x9b\xca\x9b\xcb\x59\x94\x62\xa2\x9b\xcc\x62\xa8\x9b\xcd\x9b\xce\x9b\xcf\x54\xf6\x9b\xd0\x9b\xd1\x9b\xd2\x9b\xd3\x58\x54\x9b\xd4\x62\xa7\x62\xad\x51\xe4\x9b\xd5\x9b\xd6\x4b\xb3\x9b\xd7\x9b\xd8\x9b\xd9\x9b\xda\x9b\xdb\x9b\xdc\x4f\x93\x9b\xdd\x62\xa1\x9b\xde\x9b\xdf\x4d\xe8\x62\xa9\x9b\xe0\x9b\xe1\x62\xab\x9b\xe2\x9b\xe3\x4b\xfc\x5b\xdd\x62\xb1\x9b\xe4\x62\xac\x9b\xe5\x9b\xe6\x9b\xe7\x62\xa0\x9b\xe8\x4e\x8f\x57\x7d\x54\x42\x53\x69\x9b\xe9\x9b\xea\x51\x98\x9b\xeb\x62\xa3\x9b\xec\x54\x53\x4f\x4c\x4f\x5d\x62\xa4\x9b\xed\x5c\x67\x49\xe1\x9b\xee\x62\xaa\x4e\xc2\x62\xae\x9b\xef\x4e\x8c\x62\xaf\x53\x48\x62\xb0\x9b\xf0\x9b\xf1\x9b\xf2\x9b\xf3\x5b\x84\x50\x43\x9b\xf4\x62\xb9\x9b\xf5\x62\xb6\x9b\xf6\x62\xba\x9b\xf7\x9b\xf8\x62\xbc\x9b\xf9\x9b\xfa\x53\xd5\x9b\xfb\x9b\xfc\x4d\xc5\x50\xca\x9b\xfd\x9c\x41\x9c\x42\x4c\xa0\x62\xb3\x9c\x43\x9c\x44\x9c\x45\x9c\x46\x5a\xa0\x9c\x47\x9c\x48\x4d\xa2\x4f\x9f\x9c\x49\x9c\x4a\x9c\x4b\x62\xbb\x9c\x4c\x9c\x4d\x9c\x4e", /* 6d80 */ "\x9c\x4f\x9c\x50\x57\x5f\x9c\x51\x9c\x52\x52\xf8\x9c\x53\x9c\x54\x58\x9c\x55\x87\x9c\x55\x9c\x56\x5a\x5f\x9c\x57\x58\x71\x9c\x58\x9c\x59\x62\xb2\x9c\x5a\x62\xb7\x62\xb8\x56\xe8\x9c\x5b\x9c\x5c\x9c\x5d\x9c\x5e\x9c\x5f\x56\xcd\x9c\x60\x50\xd3\x62\xb4\x51\x50\x62\xb5\x57\xcf\x9c\x61\x4e\x61\x4b\x73\x9c\x62\x54\xf2\x4f\x47\x5b\x67\x55\x4c\x4c\xa1\x62\xc9\x9c\x63\x9c\x64\x62\xcb\x59\x64\x9c\x65\x9c\x66\x59\xb9\x9c\x67\x9c\x68\x4d\xac\x9c\x69\x9c\x6a\x4d\xd3\x9c\x6b\x9c\x6c\x9c\x6d\x9c\x6e\x9c\x6f\x9c\x70\x62\xc2\x4b\x8e\x9c\x71\x9c\x72\x9c\x73\x5c\x6d\x62\xbf\x58\x9e\x62\xbe\x9c\x74\x9c\x75\x9c\x76\x51\x7c\x56\xc9\x9c\x77\x9c\x78\x9c\x79\x9c\x7a\x55\xe6\x9c\x7b\x9c\x7c\x9c\x7d\x9c\x7e\x52\xd6\x9c\x7f\x56\xd3\x62\xc7\x9c\x81\x9c\x82\x9c\x83\x62\xc6\x62\xc0\x9c\x84\x62\xc3\x4b\x4d\x9c\x85\x9c\x86\x5a\x79\x9c\x87\x62\xc5\x9c\x88\x9c\x89\x9c\x8a\x9c\x8b\x59\xf8\x4a\xe2\x9c\x8c\x4e\x54\x9c\x8d\x9c\x8e\x55\x8f\x9c\x8f\x4a\xbd\x9c\x90\x9c\x91\x9c\x92\x4e\x8d\x9c\x93\x59\x6d\x9c\x94\x56\xec\x67\x55\x9c\x95\x9c\x96\x9c\x97", /* 6e00 */ "\x9c\x98\x9c\x99\x9c\x9a\x9c\x9b\x9c\x9c\x54\x86\x9c\x9d\x9c\x9e\x9c\x9f\x9c\xa0\x5a\xa7\x9c\xa1\x62\xca\x5c\x75\x62\xc1\x9c\xa2\x4f\x45\x62\xc4\x9c\xa3\x9c\xa4\x5a\x87\x9c\xa5\x62\xc8\x55\x99\x9c\xa6\x9c\xa7\x62\xbd\x9c\xa8\x9c\xa9\x5a\x86\x9c\xaa\x9c\xab\x54\x9f\x4b\xc8\x9c\xac\x5a\xfb\x49\xb2\x62\xd6\x9c\xad\x9c\xae\x9c\xaf\x57\xc1\x9c\xb0\x62\xcc\x9c\xb1\x57\xbb\x9c\xb2\x4c\xda\x9c\xb3\x9c\xb4\x62\xd5\x9c\xb5\x50\x6a\x9c\xb6\x9c\xb7\x9c\xb8\x5a\x6e\x9c\xb9\x52\x8d\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xbe\x9c\xbf\x9c\xc0\x9c\xc1\x53\x68\x62\xd7\x9c\xc2\x9c\xc3\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xc8\x9c\xc9\x57\x64\x62\xce\x9c\xca\x9c\xcb\x9c\xcc\x9c\xcd\x62\xd3\x62\xd4\x9c\xce\x4d\xfd\x9c\xcf\x58\x87\x9c\xd0\x9c\xd1\x5b\x5f\x9c\xd2\x9c\xd3\x9c\xd4\x62\xd1\x9c\xd5\x9c\xd6\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xda\x9c\xdb\x9c\xdc\x9c\xdd\x9c\xde\x9c\xdf\x62\xcf\x9c\xe0\x9c\xe1\x62\xcd\x9c\xe2\x9c\xe3\x9c\xe4\x9c\xe5\x9c\xe6\x9c\xe7\x9c\xe8\x9c\xe9\x9c\xea\x9c\xeb\x9c\xec\x9c\xed\x9c\xee\x9c\xef\x9c\xf0\x57\x86\x55\xa9", /* 6e80 */ "\x9c\xf1\x9c\xf2\x9c\xf3\x50\xa2\x9c\xf4\x4f\x46\x62\xd2\x9c\xf5\x9c\xf6\x4c\xc7\x9c\xf7\x9c\xf8\x9c\xf9\x9c\xfa\x9c\xfb\x62\xe6\x5a\xb3\x9c\xfc\x9c\xfd\x9d\x41\x9d\x42\x9d\x43\x9d\x44\x9d\x45\x62\xda\x9d\x46\x9d\x47\x9d\x48\x51\x90\x9d\x49\x9d\x4a\x62\xe8\x9d\x4b\x9d\x4c\x59\xe6\x9d\x4d\x9d\x4e\x62\xde\x9d\x4f\x62\xdf\x9d\x50\x9d\x51\x58\x4a\x9d\x52\x9d\x53\x9d\x54\x9d\x55\x56\x7d\x9d\x56\x62\xd9\x62\xd0\x9d\x57\x62\xe4\x9d\x58\x54\xdb\x62\xe2\x9d\x59\x9d\x5a\x52\xe6\x62\xe1\x9d\x5b\x62\xe0\x9d\x5c\x9d\x5d\x9d\x5e\x4a\x9d\x62\xe7\x9d\x5f\x9d\x60\x9d\x61\x9d\x62\x4b\x82\x9d\x63\x9d\x64\x9d\x65\x5c\x6c\x9d\x66\x9d\x67\x9d\x68\x62\xe5\x9d\x69\x4e\x4c\x9d\x6a\x5c\x72\x56\xce\x66\x99\x9d\x6b\x62\xe3\x9d\x6c\x9d\x6d\x4d\x97\x9d\x6e\x9d\x6f\x9d\x70\x5b\xcc\x62\xd8\x62\xdb\x51\xf9\x62\xdd\x9d\x71\x51\xca\x50\xc3\x51\xcf\x9d\x72\x49\x96\x56\xb1\x9d\x73\x9d\x74\x9d\x75\x9d\x76\x9d\x77\x9d\x78\x9d\x79\x9d\x7a\x9d\x7b\x9d\x7c\x4b\x6e\x9d\x7d\x9d\x7e\x9d\x7f\x9d\x81\x62\xee\x9d\x82\x9d\x83\x9d\x84\x9d\x85\x9d\x86\x9d\x87", /* 6f00 */ "\x9d\x88\x9d\x89\x53\xae\x9d\x8a\x9d\x8b\x9d\x8c\x53\xe0\x9d\x8d\x9d\x8e\x62\xf4\x9d\x8f\x9d\x90\x9d\x91\x9d\x92\x9d\x93\x51\xa8\x9d\x94\x9d\x95\x9d\x96\x50\xeb\x59\x7d\x62\xed\x9d\x97\x9d\x98\x9d\x99\x9d\x9a\x9d\x9b\x9d\x9c\x9d\x9d\x9d\x9e\x9d\x9f\x9d\xa0\x52\xad\x9d\xa1\x9d\xa2\x9d\xa3\x62\xec\x9d\xa4\x9d\xa5\x9d\xa6\x9d\xa7\x62\xf5\x62\xf3\x51\xfd\x9d\xa8\x62\xdc\x9d\xa9\x62\xef\x9d\xaa\x55\xfd\x9d\xab\x5b\x64\x9d\xac\x9d\xad\x62\xf0\x9d\xae\x9d\xaf\x9d\xb0\x9d\xb1\x9d\xb2\x9d\xb3\x9d\xb4\x59\x9b\x9d\xb5\x9d\xb6\x9d\xb7\x9d\xb8\x9d\xb9\x9d\xba\x9d\xbb\x62\xea\x62\xeb\x9d\xbc\x9d\xbd\x9d\xbe\x62\xf1\x9d\xbf\x57\xaa\x9d\xc0\x9d\xc1\x9d\xc2\x9d\xc3\x9d\xc4\x9d\xc5\x9d\xc6\x9d\xc7\x9d\xc8\x9d\xc9\x53\x6b\x9d\xca\x9d\xcb\x9d\xcc\x54\x51\x9d\xcd\x51\xb9\x9d\xce\x9d\xcf\x9d\xd0\x62\xe9\x9d\xd1\x9d\xd2\x9d\xd3\x51\x6a\x9d\xd4\x9d\xd5\x9d\xd6\x9d\xd7\x9d\xd8\x9d\xd9\x56\xb5\x4a\x51\x9d\xda\x9d\xdb\x9d\xdc\x62\xfa\x9d\xdd\x62\xf2\x9d\xde\x9d\xdf\x9d\xe0\x62\xf9\x9d\xe1\x62\xfc\x9d\xe2\x62\xfb\x9d\xe3\x9d\xe4\x9d\xe5", /* 6f80 */ "\x9d\xe6\x9d\xe7\x9d\xe8\x9d\xe9\x4a\x6e\x9d\xea\x9d\xeb\x9d\xec\x4a\x5a\x62\xf6\x9d\xed\x9d\xee\x62\xf8\x62\xf7\x53\x8d\x9d\xef\x9d\xf0\x9d\xf1\x9d\xf2\x9d\xf3\x9d\xf4\x9d\xf5\x9d\xf6\x9d\xf7\x9d\xf8\x9d\xf9\x9d\xfa\x9d\xfb\x50\xbc\x9d\xfc\x9d\xfd\x9e\x41\x9e\x42\x5a\xe7\x9e\x43\x9e\x44\x9e\x45\x9e\x46\x9e\x47\x63\x42\x9e\x48\x9e\x49\x9e\x4a\x9e\x4b\x9e\x4c\x9e\x4d\x9e\x4e\x9e\x4f\x9e\x50\x9e\x51\x9e\x52\x48\xc3\x9e\x53\x9e\x54\x63\x44\x9e\x55\x9e\x56\x63\x43\x9e\x57\x9e\x58\x9e\x59\x9e\x5a\x9e\x5b\x9e\x5c\x4e\xa3\x9e\x5d\x63\x45\x9e\x5e\x9e\x5f\x9e\x60\x9e\x61\x9e\x62\x9e\x63\x63\x41\x9e\x64\x9e\x65\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x62\xfd\x49\x95\x9e\x6b\x9e\x6c\x9e\x6d\x9e\x6e\x9e\x6f\x9e\x70\x9e\x71\x9e\x72\x9e\x73\x9e\x74\x9e\x75\x63\x48\x9e\x76\x63\x49\x63\x46\x9e\x77\x9e\x78\x9e\x79\x9e\x7a\x9e\x7b\x9e\x7c\x9e\x7d\x9e\x7e\x9e\x7f\x9e\x81\x9e\x82\x9e\x83\x63\x47\x63\x4a\x9e\x84\x9e\x85\x9e\x86\x9e\x87\x9e\x88\x9e\x89\x9e\x8a\x9e\x8b\x9e\x8c\x9e\x8d\x9e\x8e\x9e\x8f\x9e\x90\x9e\x91\x9e\x92\x9e\x93", /* 7000 */ "\x9e\x94\x9e\x95\x9e\x96\x9e\x97\x9e\x98\x9e\x99\x9e\x9a\x9e\x9b\x9e\x9c\x9e\x9d\x9e\x9e\x9e\x9f\x9e\xa0\x9e\xa1\x9e\xa2\x9e\xa3\x9e\xa4\x53\xd8\x9e\xa5\x9e\xa6\x9e\xa7\x9e\xa8\x9e\xa9\x9e\xaa\x9e\xab\x9e\xac\x63\x4b\x63\x4d\x9e\xad\x9e\xae\x9e\xaf\x9e\xb0\x9e\xb1\x9e\xb2\x9e\xb3\x63\x4c\x9e\xb4\x9e\xb5\x9e\xb6\x9e\xb7\x9e\xb8\x9e\xb9\x9e\xba\x9e\xbb\x9e\xbc\x9e\xbd\x9e\xbe\x9e\xbf\x9e\xc0\x9e\xc1\x9e\xc2\x9e\xc3\x9e\xc4\x63\x4f\x9e\xc5\x9e\xc6\x9e\xc7\x63\x4e\x9e\xc8\x9e\xc9\x9e\xca\x9e\xcb\x9e\xcc\x9e\xcd\x9e\xce\x9e\xcf\x9e\xd0\x9e\xd1\x9e\xd2\x9e\xd3\x9e\xd4\x9e\xd5\x9e\xd6\x9e\xd7\x9e\xd8\x9e\xd9\x4d\x81\x9e\xda\x9e\xdb\x63\x50\x9e\xdc\x9e\xdd\x9e\xde\x9e\xdf\x9e\xe0\x9e\xe1\x9e\xe2\x9e\xe3\x9e\xe4\x9e\xe5\x9e\xe6\x9e\xe7\x9e\xe8\x9e\xe9\x63\x51\x9e\xea\x9e\xeb\x9e\xec\x9e\xed\x9e\xee\x9e\xef\x9e\xf0\x9e\xf1\x9e\xf2\x9e\xf3\x9e\xf4\x9e\xf5\x4e\x91\x66\xe0\x52\x91\x9e\xf6\x4b\x66\x4e\x72\x9e\xf7\x9e\xf8\x9e\xf9\x9e\xfa\x51\x8a\x5a\xed\x9e\xfb\x4f\xc3\x9e\xfc\x9e\xfd\x9f\x41\x5c\x66\x9f\x42\x5a\xd5\x49\xd2", /* 7080 */ "\x66\xbd\x9f\x43\x9f\x44\x9f\x45\x9f\x46\x65\xc0\x9f\x47\x9f\x48\x9f\x49\x51\xae\x4a\xb5\x9f\x4a\x9f\x4b\x9f\x4c\x59\x77\x9f\x4d\x9f\x4e\x9f\x4f\x4a\x54\x9f\x50\x54\xb1\x50\x5b\x66\xbf\x9f\x51\x9f\x52\x5b\xca\x9f\x53\x9f\x54\x66\xbe\x66\xc0\x9f\x55\x9f\x56\x9f\x57\x9f\x58\x9f\x59\x9f\x5a\x9f\x5b\x9f\x5c\x9f\x5d\x9f\x5e\x9f\x5f\x9f\x60\x9f\x61\x66\xc4\x4f\xe5\x56\xbe\x53\x7a\x4f\xbb\x9f\x62\x66\xc5\x9f\x63\x49\x9f\x9f\x64\x9f\x65\x9f\x66\x66\xc3\x5b\x48\x4b\x84\x9f\x67\x66\xc1\x51\x56\x4a\x84\x9f\x68\x9f\x69\x66\xc2\x56\x58\x50\xc2\x56\xfd\x9f\x6a\x9f\x6b\x9f\x6c\x9f\x6d\x51\x72\x9f\x6e\x66\xc7\x9f\x6f\x9f\x70\x9f\x71\x9f\x72\x9f\x73\x9f\x74\x9f\x75\x9f\x76\x9f\x77\x9f\x78\x9f\x79\x9f\x7a\x9f\x7b\x4d\xe5\x50\xd2\x9f\x7c\x5b\xf1\x9f\x7d\x9f\x7e\x9f\x7f\x59\x6c\x9f\x81\x9f\x82\x9f\x83\x9f\x84\x50\x5e\x9f\x85\x4c\x53\x55\x75\x66\xc6\x4e\x83\x9f\x86\x56\xcb\x4f\x9e\x54\xc7\x9f\x87\x58\x49\x9f\x88\x9f\x89\x9f\x8a\x9f\x8b\x9f\x8c\x9f\x8d\x9f\x8e\x57\x8a\x9f\x8f\x53\x8c\x9f\x90\x9f\x91\x9f\x92\x4c\x8a\x9f\x93\x9f\x94", /* 7100 */ "\x9f\x95\x9f\x96\x9f\x97\x9f\x98\x9f\x99\x9f\x9a\x9f\x9b\x9f\x9c\x9f\x9d\x59\x69\x4d\xb7\x9f\x9e\x9f\x9f\x9f\xa0\x9f\xa1\x9f\xa2\x66\xc8\x9f\xa3\x9f\xa4\x66\xc9\x9f\xa5\x4e\x60\x66\xca\x9f\xa6\x66\xe1\x49\x5a\x4c\x79\x9f\xa7\x9f\xa8\x9f\xa9\x9f\xaa\x9f\xab\x9f\xac\x9f\xad\x9f\xae\x9f\xaf\x9f\xb0\x9f\xb1\x4f\x59\x9f\xb2\x9f\xb3\x9f\xb4\x9f\xb5\x9f\xb6\x9f\xb7\x9f\xb8\x9f\xb9\x66\xcb\x59\x87\x66\xcc\x9f\xba\x9f\xbb\x9f\xbc\x9f\xbd\x54\xba\x9f\xbe\x9f\xbf\x9f\xc0\x9f\xc1\x9f\xc2\x9f\xc3\x9f\xc4\x9f\xc5\x9f\xc6\x9f\xc7\x9f\xc8\x9f\xc9\x9f\xca\x9f\xcb\x66\xd0\x9f\xcc\x9f\xcd\x9f\xce\x9f\xcf\x66\xd2\x9f\xd0\x4e\x6d\x9f\xd1\x4e\xe4\x9f\xd2\x9f\xd3\x9f\xd4\x9f\xd5\x9f\xd6\x9f\xd7\x9f\xd8\x9f\xd9\x9f\xda\x9f\xdb\x9f\xdc\x9f\xdd\x9f\xde\x66\xce\x9f\xdf\x55\x57\x9f\xe0\x9f\xe1\x9f\xe2\x9f\xe3\x9f\xe4\x52\x5a\x9f\xe5\x66\xe2\x5b\x75\x66\xcf\x9f\xe6\x9f\xe7\x9f\xe8\x9f\xe9\x9f\xea\x5b\xf2\x9f\xeb\x9f\xec\x9f\xed\x66\xd1\x66\xcd\x9f\xee\x9f\xef\x9f\xf0\x9f\xf1\x66\xd3\x9f\xf2\x66\xd4\x9f\xf3\x9f\xf4\x55\x5f\x9f\xf5\x9f\xf6", /* 7180 */ "\x9f\xf7\x9f\xf8\x9f\xf9\x9f\xfa\x58\x48\x9f\xfb\x9f\xfc\x9f\xfd\xa0\x41\xa0\x42\x58\xdb\xa0\x43\xa0\x44\xa0\x45\xa0\x46\x59\x4c\xa0\x47\xa0\x48\xa0\x49\xa0\x4a\x54\xda\xa0\x4b\xa0\x4c\xa0\x4d\x66\xd5\x57\xf4\xa0\x4e\xa0\x4f\xa0\x50\xa0\x51\xa0\x52\x55\xeb\x66\xd9\xa0\x53\xa0\x54\xa0\x55\xa0\x56\xa0\x57\xa0\x58\xa0\x59\x66\xd8\xa0\x5a\xa0\x5b\xa0\x5c\x48\xbd\xa0\x5d\xa0\x5e\xa0\x5f\xa0\x60\xa0\x61\xa0\x62\x66\xd6\xa0\x63\x66\xd7\xa0\x64\xa0\x65\xa0\x66\x66\xe3\xa0\x67\xa0\x68\xa0\x69\xa0\x6a\xa0\x6b\xa0\x6c\xa0\x6d\xa0\x6e\xa0\x6f\x54\xbb\xa0\x70\xa0\x71\xa0\x72\xa0\x73\xa0\x74\xa0\x75\xa0\x76\xa0\x77\xa0\x78\xa0\x79\x51\x67\xa0\x7a\xa0\x7b\xa0\x7c\xa0\x7d\xa0\x7e\x66\xdb\x59\x81\xa0\x7f\xa0\x81\xa0\x82\xa0\x83\xa0\x84\xa0\x85\xa0\x86\xa0\x87\xa0\x88\xa0\x89\x66\xda\xa0\x8a\xa0\x8b\xa0\x8c\xa0\x8d\x5a\xee\xa0\x8e\x66\xdc\xa0\x8f\xa0\x90\xa0\x91\xa0\x92\xa0\x93\xa0\x94\x5e\x66\xa0\x95\xa0\x96\xa0\x97\xa0\x98\xa0\x99\xa0\x9a\xa0\x9b\xa0\x9c\xa0\x9d\xa0\x9e\x66\xdd\xa0\x9f\xa0\xa0\xa0\xa1\xa0\xa2\xa0\xa3\xa0\xa4", /* 7200 */ "\xa0\xa5\xa0\xa6\xa0\xa7\xa0\xa8\xa0\xa9\xa0\xaa\x49\x4c\xa0\xab\xa0\xac\xa0\xad\xa0\xae\xa0\xaf\xa0\xb0\xa0\xb1\xa0\xb2\xa0\xb3\xa0\xb4\xa0\xb5\xa0\xb6\xa0\xb7\xa0\xb8\xa0\xb9\xa0\xba\xa0\xbb\xa0\xbc\xa0\xbd\xa0\xbe\xa0\xbf\xa0\xc0\x66\xde\xa0\xc1\xa0\xc2\xa0\xc3\xa0\xc4\xa0\xc5\xa0\xc6\xa0\xc7\xa0\xc8\xa0\xc9\xa0\xca\x66\xdf\xa0\xcb\x5c\x46\xa0\xcc\x53\x60\xa0\xcd\xa0\xce\xa0\xcf\x66\x5c\x48\xad\xa0\xd0\xa0\xd1\xa0\xd2\x4f\xf3\x4c\xb7\x59\xae\x48\xd5\x4b\x9a\xa0\xd3\x5c\xb2\xa0\xd4\x56\x4c\xa0\xd5\x62\x7d\xa0\xd6\xa0\xd7\xa0\xd8\xa0\xd9\xa0\xda\xa0\xdb\xa0\xdc\x53\xab\x48\xe5\xa0\xdd\xa0\xde\xa0\xdf\x53\x66\x66\x59\xa0\xe0\xa0\xe1\xa0\xe2\xa0\xe3\x66\x5a\xa0\xe4\xa0\xe5\xa0\xe6\x66\x5b\xa0\xe7\xa0\xe8\x59\x60\xa0\xe9\x53\x43\xa0\xea\x65\xf1\xa0\xeb\x52\xb1\xa0\xec\x52\xb4\x50\xcd\xa0\xed\xa0\xee\xa0\xef\x65\xf2\x52\xc0\xa0\xf0\x57\xee\xa0\xf1\xa0\xf2\xa0\xf3\xa0\xf4\x65\xef\x65\xf3\xa0\xf5\xa0\xf6\x55\x9d\xa0\xf7\xa0\xf8\x54\x43\xa0\xf9\xa0\xfa\xa0\xfb\x56\xd7\x57\xfd\xa0\xfc\xa0\xfd\xa1\x41\x65\xf4\x65\xf5", /* 7280 */ "\x58\x4c\x50\xe6\xa1\x42\xa1\x43\x65\xf6\xa1\x44\xa1\x45\xa1\x46\xa1\x47\xa1\x48\x4b\xbe\x65\xf7\xa1\x49\x65\xf8\xa1\x4a\x65\xf9\xa1\x4b\xa1\x4c\x65\xfa\xa1\x4d\xa1\x4e\xa1\x4f\xa1\x50\xa1\x51\xa1\x52\xa1\x53\xa1\x54\xa1\x55\xa1\x56\xa1\x57\xa1\x58\x65\xf0\xa1\x59\xa1\x5a\xa1\x5b\xa1\x5c\xa1\x5d\xa1\x5e\xa1\x5f\xa1\x60\xa1\x61\xa1\x62\xa1\x63\xa1\x64\x54\xad\x61\x8c\xa1\x65\x4c\x58\x61\x8d\xa1\x66\xa1\x67\xa1\x68\x61\x8e\xa1\x69\x5c\x54\x61\x8f\x61\x90\x5a\x6c\xa1\x6a\xa1\x6b\xa1\x6c\xa1\x6d\xa1\x6e\xa1\x6f\xa1\x70\x61\x92\x50\x92\x61\x91\x4b\x72\xa1\x71\xa1\x72\xa1\x73\x49\x57\xa1\x74\xa1\x75\xa1\x76\xa1\x77\x61\x94\x61\x93\xa1\x78\x4d\xfb\xa1\x79\x61\x95\xa1\x7a\xa1\x7b\xa1\x7c\xa1\x7d\x4d\x57\xa1\x7e\x4f\xd0\xa1\x7f\xa1\x81\xa1\x82\xa1\x83\x52\xfb\xa1\x84\x4d\xdc\x4f\x66\xa1\x85\xa1\x86\xa1\x87\xa1\x88\xa1\x89\xa1\x8a\x61\x96\x61\x98\xa1\x8b\xa1\x8c\x4b\xbf\x58\x61\x55\xa7\x61\x97\x5b\x99\x5a\x9d\x61\x99\x61\x9d\x61\x9a\xa1\x8d\xa1\x8e\x61\x9b\x50\xe9\xa1\x8f\x61\x9f\x61\xa0\x50\xc6\xa1\x90\xa1\x91\xa1\x92", /* 7300 */ "\xa1\x93\x61\x9c\xa1\x94\x61\x9e\xa1\x95\xa1\x96\xa1\x97\xa1\x98\xa1\x99\xa1\x9a\x61\xa4\xa1\x9b\xa1\x9c\xa1\x9d\x51\x74\xa1\x9e\xa1\x9f\xa1\xa0\xa1\xa1\x61\xa2\xa1\xa2\x61\xa7\x49\xfd\x61\xa1\xa1\xa3\xa1\xa4\xa1\xa5\x52\x6d\x49\xc1\x61\xa6\x61\xa5\xa1\xa6\xa1\xa7\x61\xa3\x61\xa8\xa1\xa8\xa1\xa9\x61\xaa\xa1\xaa\xa1\xab\xa1\xac\x58\xc8\x5b\xec\x52\x48\x61\xab\xa1\xad\x58\x77\xa1\xae\xa1\xaf\x61\xad\xa1\xb0\xa1\xb1\x4d\xee\xa1\xb2\xa1\xb3\x65\x81\x61\xac\x61\xa9\xa1\xb4\xa1\xb5\xa1\xb6\xa1\xb7\x4e\x4b\x5a\xb2\xa1\xb8\xa1\xb9\xa1\xba\xa1\xbb\xa1\xbc\xa1\xbd\xa1\xbe\xa1\xbf\xa1\xc0\xa1\xc1\xa1\xc2\xa1\xc3\xa1\xc4\x61\xaf\xa1\xc5\xa1\xc6\x61\xae\xa1\xc7\x65\x82\xa1\xc8\xa1\xc9\xa1\xca\xa1\xcb\x61\xb0\xa1\xcc\xa1\xcd\xa1\xce\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xd2\xa1\xd3\x61\xb1\xa1\xd4\xa1\xd5\xa1\xd6\xa1\xd7\xa1\xd8\xa1\xd9\xa1\xda\xa1\xdb\xa1\xdc\xa1\xdd\xa1\xde\x61\xb2\x56\xa0\xa1\xdf\x61\xb3\xa1\xe0\xa1\xe1\xa1\xe2\xa1\xe3\xa1\xe4\xa1\xe5\xa1\xe6\xa1\xe7\xa1\xe8\xa1\xe9\xa1\xea\xa1\xeb\xa1\xec\xa1\xed\x61\xb4\xa1\xee", /* 7380 */ "\xa1\xef\xa1\xf0\xa1\xf1\xa1\xf2\x58\xfd\xa1\xf3\xa1\xf4\x51\xc9\xa1\xf5\x5a\x92\xa1\xf6\x57\x96\xa1\xf7\xa1\xf8\x64\x81\xa1\xf9\xa1\xfa\x64\x82\xa1\xfb\xa1\xfc\xa1\xfd\xa2\x41\x4f\xc0\xa2\x42\xa2\x43\xa2\x44\xa2\x45\x51\xe9\xa2\x46\xa2\x47\xa2\x48\x64\x85\xa2\x49\xa2\x4a\x64\x84\xa2\x4b\xa2\x4c\xa2\x4d\xa2\x4e\xa2\x4f\xa2\x50\x57\x87\xa2\x51\x52\x55\xa2\x52\xa2\x53\x64\x83\x4e\x57\x58\x76\xa2\x54\x51\x82\x64\x8a\xa2\x55\xa2\x56\xa2\x57\x64\x89\xa2\x58\xa2\x59\x64\x95\x49\xa2\xa2\x5a\xa2\x5b\xa2\x5c\xa2\x5d\x64\x8b\xa2\x5e\x64\x87\xa2\x5f\xa2\x60\xa2\x61\xa2\x62\xa2\x63\x64\x8d\x64\x8c\x55\x5a\xa2\x64\xa2\x65\x5b\x85\xa2\x66\x64\x86\x4c\x49\x64\x88\xa2\x67\xa2\x68\xa2\x69\xa2\x6a\xa2\x6b\xa2\x6c\xa2\x6d\x64\x8f\xa2\x6e\xa2\x6f\xa2\x70\xa2\x71\x64\x94\xa2\x72\x5b\xe8\xa2\x73\xa2\x74\xa2\x75\xa2\x76\x64\x8e\xa2\x77\x64\x93\xa2\x78\x64\x92\xa2\x79\xa2\x7a\xa2\x7b\x48\xdf\xa2\x7c\xa2\x7d\xa2\x7e\xa2\x7f\x64\x96\xa2\x81\xa2\x82\xa2\x83\xa2\x84\xa2\x85\xa2\x86\xa2\x87\xa2\x88\xa2\x89\xa2\x8a\xa2\x8b\xa2\x8c\xa2\x8d", /* 7400 */ "\xa2\x8e\xa2\x8f\xa2\x90\x54\x93\xa2\x91\x50\xc4\x50\xec\xa2\x92\xa2\x93\x51\x91\x64\x91\xa2\x94\xa2\x95\xa2\x96\xa2\x97\x64\x97\x56\x97\xa2\x98\xa2\x99\xa2\x9a\xa2\x9b\xa2\x9c\xa2\x9d\xa2\x9e\xa2\x9f\xa2\xa0\x64\xa1\x64\xa0\xa2\xa1\xa2\xa2\xa2\xa3\xa2\xa4\xa2\xa5\xa2\xa6\x5c\x61\xa2\xa7\xa2\xa8\x64\x9b\x64\x9a\xa2\xa9\x64\x9c\xa2\xaa\x64\x98\xa2\xab\x64\x9f\xa2\xac\x64\x9e\xa2\xad\x64\x9d\xa2\xae\xa2\xaf\x51\x75\x54\x79\x53\x9e\x53\x63\xa2\xb0\xa2\xb1\xa2\xb2\xa2\xb3\xa2\xb4\x54\x8e\xa2\xb5\xa2\xb6\xa2\xb7\xa2\xb8\x64\xa2\xa2\xb9\xa2\xba\xa2\xbb\xa2\xbc\xa2\xbd\xa2\xbe\xa2\xbf\xa2\xc0\xa2\xc1\xa2\xc2\xa2\xc3\xa2\xc4\xa2\xc5\xa2\xc6\xa2\xc7\xa2\xc8\xa2\xc9\xa2\xca\xa2\xcb\x64\xa5\xa2\xcc\x64\xa4\xa2\xcd\x64\xa6\x4d\xf6\x64\x99\x64\xa3\xa2\xce\x54\xef\x55\x4a\xa2\xcf\xa2\xd0\xa2\xd1\xa2\xd2\xa2\xd3\xa2\xd4\xa2\xd5\xa2\xd6\xa2\xd7\xa2\xd8\xa2\xd9\xa2\xda\xa2\xdb\x64\xa8\xa2\xdc\xa2\xdd\x4d\x86\xa2\xde\xa2\xdf\xa2\xe0\xa2\xe1\xa2\xe2\x59\x9f\x64\xa7\xa2\xe3\xa2\xe4\xa2\xe5\xa2\xe6\xa2\xe7\xa2\xe8\x64\xa9\xa2\xe9", /* 7480 */ "\x64\xac\x64\xad\xa2\xea\x51\x47\xa2\xeb\xa2\xec\xa2\xed\x64\xae\xa2\xee\xa2\xef\xa2\xf0\x64\xaf\xa2\xf1\xa2\xf2\x64\xab\xa2\xf3\x64\xb3\xa2\xf4\xa2\xf5\xa2\xf6\xa2\xf7\xa2\xf8\xa2\xf9\xa2\xfa\xa2\xfb\xa2\xfc\xa2\xfd\xa3\x41\x64\xaa\xa3\x42\x64\xb0\xa3\x43\xa3\x44\xa3\x45\xa3\x46\xa3\x47\xa3\x48\xa3\x49\xa3\x4a\x64\xb4\x64\xb1\x64\xb2\xa3\x4b\xa3\x4c\xa3\x4d\xa3\x4e\xa3\x4f\xa3\x50\xa3\x51\xa3\x52\xa3\x53\xa3\x54\xa3\x55\xa3\x56\xa3\x57\xa3\x58\xa3\x59\xa3\x5a\x64\xb6\xa3\x5b\xa3\x5c\xa3\x5d\xa3\x5e\xa3\x5f\xa3\x60\xa3\x61\xa3\x62\xa3\x63\xa3\x64\xa3\x65\xa3\x66\xa3\x67\xa3\x68\xa3\x69\xa3\x6a\xa3\x6b\xa3\x6c\xa3\x6d\xa3\x6e\xa3\x6f\xa3\x70\xa3\x71\x64\xb5\xa3\x72\xa3\x73\xa3\x74\xa3\x75\xa3\x76\xa3\x77\xa3\x78\xa3\x79\xa3\x7a\x4d\x6f\xa3\x7b\x68\xab\xa3\x7c\x68\xac\xa3\x7d\x53\xaf\x48\xe9\x54\xbe\xa3\x7e\x57\x7f\xa3\x7f\xa3\x81\xa3\x82\xa3\x83\xa3\x84\xa3\x85\xa3\x86\x57\xcc\x65\xb0\xa3\x87\xa3\x88\xa3\x89\xa3\x8a\x65\xb1\xa3\x8b\x53\xbe\x4a\xc8\xa3\x8c\xa3\x8d\xa3\x8e\xa3\x8f\xa3\x90\xa3\x91\xa3\x92\x65\xb2", /* 7500 */ "\xa3\x93\xa3\x94\xa3\x95\xa3\x96\x5b\x88\xa3\x97\xa3\x98\xa3\x99\xa3\x9a\xa3\x9b\xa3\x9c\xa3\x9d\xa3\x9e\x5f\x9a\xa3\x9f\x65\xb3\xa3\xa0\x65\xb4\xa3\xa1\x65\xb5\xa3\xa2\xa3\xa3\xa3\xa4\xa3\xa5\x4c\xc9\x60\x50\x55\x96\xa3\xa6\x56\xef\xa3\xa7\xa3\xa8\x55\x9b\xa3\xa9\xa3\xaa\xa3\xab\xa3\xac\xa3\xad\x55\x9c\xa3\xae\xa3\xaf\x5a\x63\x56\x46\xa3\xb0\x4c\xa5\x68\xad\x49\x62\xa3\xb1\x63\x58\x56\xee\x5a\x69\x4e\xd6\x55\x8b\xa3\xb2\x4b\x88\xa3\xb3\x52\xcf\x4b\x8a\xa3\xb4\x67\xad\x4e\x4d\xa3\xb5\xa3\xb6\x64\x7e\xa3\xb7\x67\xae\xa3\xb8\xa3\xb9\xa3\xba\xa3\xbb\x4a\x49\xa3\xbc\xa3\xbd\x67\xb1\xa3\xbe\xa3\xbf\x67\xb0\x4f\x88\xa3\xc0\x67\xaf\x57\xb6\xa3\xc1\xa3\xc2\xa3\xc3\xa3\xc4\x53\x6f\xa3\xc5\xa3\xc6\xa3\xc7\xa3\xc8\x51\x95\x5e\x6e\x67\xb2\x58\xf2\xa3\xc9\xa3\xca\xa3\xcb\xa3\xcc\xa3\xcd\xa3\xce\xa3\xcf\xa3\xd0\x51\xd3\x53\xe7\xa3\xd1\xa3\xd2\xa3\xd3\x4c\x4c\xa3\xd4\xa3\xd5\xa3\xd6\xa3\xd7\xa3\xd8\xa3\xd9\xa3\xda\x67\xb3\xa3\xdb\x4a\x8c\xa3\xdc\xa3\xdd\xa3\xde\x4e\x9c\x67\xb4\xa3\xdf\xa3\xe0\xa3\xe1\xa3\xe2\xa3\xe3\x64\x7c", /* 7580 */ "\xa3\xe4\xa3\xe5\xa3\xe6\x67\xb5\xa3\xe7\xa3\xe8\x4f\x4e\xa3\xe9\xa3\xea\xa3\xeb\xa3\xec\x69\x83\xa3\xed\xa3\xee\xa3\xef\x55\xe7\xa3\xf0\x59\xc8\x68\xd9\xa3\xf1\x68\xda\xa3\xf2\x68\xdb\x51\x66\xa3\xf3\x4c\xec\x4f\xcd\xa3\xf4\xa3\xf5\x68\xdd\xa3\xf6\x53\x51\x68\xdc\x59\x92\xa3\xf7\x68\xdf\x48\xcb\x4f\x8b\xa3\xf8\xa3\xf9\xa3\xfa\xa3\xfb\xa3\xfc\x59\xde\x68\xde\xa3\xfd\x4a\xae\x4c\x89\x68\xe5\x68\xe4\x53\xa2\x68\xe0\x68\xe1\x4a\xc2\xa4\x41\xa4\x42\x68\xe2\x5b\x8f\xa4\x43\xa4\x44\x56\xda\x4f\xd1\x4e\xb1\xa4\x45\xa4\x46\xa4\x47\x68\xe7\x68\xe6\x68\xe3\x49\xa0\xa4\x48\x5b\xa1\x5a\x58\x4f\xb6\x54\xab\xa4\x49\xa4\x4a\x68\xe9\xa4\x4b\xa4\x4c\xa4\x4d\xa4\x4e\x59\x98\xa4\x4f\x5b\xcb\x4d\xda\x68\xe8\xa4\x50\x4b\xba\xa4\x51\xa4\x52\x57\x54\xa4\x53\xa4\x54\x53\xa5\xa4\x55\xa4\x56\xa4\x57\x51\x41\x68\xea\x68\xed\xa4\x58\x68\xec\x68\xef\x68\xeb\xa4\x59\x4e\x5e\x68\xee\xa4\x5a\xa4\x5b\xa4\x5c\xa4\x5d\x56\xb4\x68\xf1\xa4\x5e\xa4\x5f\x4a\x75\xa4\x60\xa4\x61\xa4\x62\xa4\x63\x49\x74\xa4\x64\xa4\x65\x68\xf2\xa4\x66\xa4\x67\x68\xf3", /* 7600 */ "\x68\xf5\x4a\xe0\xa4\x68\x68\xf0\xa4\x69\x68\xf6\xa4\x6a\xa4\x6b\xa4\x6c\xa4\x6d\x68\xf9\xa4\x6e\x68\xf7\xa4\x6f\xa4\x70\xa4\x71\x68\xf4\xa4\x72\xa4\x73\xa4\x74\xa4\x75\x68\xfc\xa4\x76\x68\xf8\x68\xfb\x68\xfd\xa4\x77\x69\x41\xa4\x78\xa4\x79\xa4\x7a\x57\xc0\x69\x44\xa4\x7b\x69\x43\xa4\x7c\x51\x97\x68\xfa\x55\xdc\xa4\x7d\xa4\x7e\x4a\xf0\x49\x92\x56\xb0\xa4\x7f\x69\x46\xa4\x81\xa4\x82\x69\x47\xa4\x83\xa4\x84\x69\x4c\x5b\x6e\x69\x49\xa4\x85\xa4\x86\x54\xb2\xa4\x87\xa4\x88\xa4\x89\x69\x42\xa4\x8a\x69\x4b\x69\x48\x69\x45\xa4\x8b\xa4\x8c\x69\x4a\xa4\x8d\xa4\x8e\xa4\x8f\xa4\x90\xa4\x91\xa4\x92\xa4\x93\xa4\x94\x48\xa8\x69\x4d\xa4\x95\xa4\x96\xa4\x97\xa4\x98\xa4\x99\xa4\x9a\x69\x4f\xa4\x9b\x69\x51\xa4\x9c\xa4\x9d\xa4\x9e\xa4\x9f\xa4\xa0\x69\x50\xa4\xa1\x69\x4e\xa4\xa2\xa4\xa3\xa4\xa4\xa4\xa5\x59\x42\xa4\xa6\xa4\xa7\xa4\xa8\xa4\xa9\xa4\xaa\xa4\xab\xa4\xac\x69\x52\xa4\xad\xa4\xae\xa4\xaf\x69\x53\xa4\xb0\xa4\xb1\xa4\xb2\xa4\xb3\xa4\xb4\xa4\xb5\xa4\xb6\xa4\xb7\x4d\x90\xa4\xb8\xa4\xb9\x4b\x67\xa4\xba\x48\xd6\x48\xd8\xa4\xbb", /* 7680 */ "\xa4\xbc\xa4\xbd\x5a\xec\xa4\xbe\x4b\x64\xa4\xbf\x4f\x74\x4e\x6a\x68\xa6\xa4\xc0\xa4\xc1\x4c\xdd\xa4\xc2\xa4\xc3\x68\xa7\xa4\xc4\xa4\xc5\x48\xa7\xa4\xc6\x68\xa8\xa4\xc7\xa4\xc8\x57\x8f\xa4\xc9\xa4\xca\x68\xa9\xa4\xcb\xa4\xcc\xa4\xcd\xa4\xce\xa4\xcf\xa4\xd0\xa4\xd1\xa4\xd2\xa4\xd3\xa4\xd4\x68\xaa\xa4\xd5\xa4\xd6\xa4\xd7\xa4\xd8\xa4\xd9\xa4\xda\xa4\xdb\xa4\xdc\xa4\xdd\x53\xa3\xa4\xde\xa4\xdf\x5b\xe4\x69\x85\xa4\xe0\x69\x86\xa4\xe1\xa4\xe2\xa4\xe3\xa4\xe4\xa4\xe5\xa4\xe6\xa4\xe7\xa4\xe8\xa4\xe9\xa4\xea\x52\x94\xa4\xeb\xa4\xec\x5a\x7b\xa4\xed\xa4\xee\x5b\xd0\x53\x89\xa4\xef\x5a\x4f\xa4\xf0\x59\xe5\xa4\xf1\xa4\xf2\x67\xc0\x48\xba\x5b\x55\x59\x6e\x4e\xdf\x4d\xcf\xa4\xf3\x50\x99\xa4\xf4\x4c\xc6\x4b\x61\x53\x6c\xa4\xf5\xa4\xf6\x55\xa1\xa4\xf7\xa4\xf8\xa4\xf9\x52\x6b\xa4\xfa\xa4\xfb\xa4\xfc\xa4\xfd\xa5\x41\x67\xc1\xa5\x42\xa5\x43\xa5\x44\xa5\x45\xa5\x46\xa5\x47\xa5\x48\xa5\x49\x52\xbe\x4b\xa1\xa5\x4a\x67\x8d\x52\x44\xa5\x4b\x5b\xb0\xa5\x4c\xa5\x4d\xa5\x4e\x58\x81\x67\x90\xa5\x4f\xa5\x50\x53\x6e\xa5\x51\x4b\xdb\xa5\x52", /* 7700 */ "\xa5\x53\x55\xa0\xa5\x54\xa5\x55\x67\x8e\xa5\x56\xa5\x57\x67\x91\x67\x92\x52\x5c\xa5\x58\x50\x54\xa5\x59\x67\x8f\xa5\x5a\xa5\x5b\xa5\x5c\xa5\x5d\xa5\x5e\xa5\x5f\xa5\x60\xa5\x61\xa5\x62\xa5\x63\xa5\x64\x67\x95\x67\x93\xa5\x65\xa5\x66\xa5\x67\xa5\x68\x5b\x87\x52\x7f\xa5\x69\x67\x94\xa5\x6a\xa5\x6b\xa5\x6c\x67\x97\xa5\x6d\x5b\x43\x59\x43\xa5\x6e\xa5\x6f\xa5\x70\x67\x96\xa5\x71\x52\x70\xa5\x72\xa5\x73\xa5\x74\xa5\x75\xa5\x76\x67\x98\x50\x95\x4f\xeb\x67\x99\xa5\x77\x56\xf6\xa5\x78\x59\x7b\xa5\x79\xa5\x7a\xa5\x7b\x5c\x65\x5b\x97\xa5\x7c\x67\x9d\xa5\x7d\xa5\x7e\xa5\x7f\x67\x9c\xa5\x81\xa5\x82\xa5\x83\xa5\x84\xa5\x85\xa5\x86\xa5\x87\xa5\x88\x67\x9a\x67\x9b\xa5\x89\xa5\x8a\xa5\x8b\xa5\x8c\xa5\x8d\xa5\x8e\xa5\x8f\xa5\x90\x67\x9e\x4f\xa5\xa5\x91\xa5\x92\xa5\x93\xa5\x94\xa5\x95\x56\x4f\x67\xa0\x4b\xbc\xa5\x96\x67\xa1\x52\xbf\xa5\x97\x67\x9f\xa5\x98\xa5\x99\x4f\x7e\x49\xc6\xa5\x9a\xa5\x9b\xa5\x9c\xa5\x9d\xa5\x9e\xa5\x9f\xa5\xa0\xa5\xa1\xa5\xa2\xa5\xa3\xa5\xa4\xa5\xa5\x4b\xc2\xa5\xa6\xa5\xa7\xa5\xa8\x67\xa4\x5c\xb9\x67\xa2", /* 7780 */ "\x67\xa5\xa5\xa9\xa5\xaa\xa5\xab\x52\x8a\x4a\x93\xa5\xac\xa5\xad\xa5\xae\xa5\xaf\xa5\xb0\xa5\xb1\x67\xa6\x67\xa3\x58\x59\xa5\xb2\xa5\xb3\x67\xa7\x51\xf6\xa5\xb4\xa5\xb5\xa5\xb6\xa5\xb7\xa5\xb8\xa5\xb9\xa5\xba\xa5\xbb\xa5\xbc\xa5\xbd\xa5\xbe\xa5\xbf\x67\xa8\x67\xa9\xa5\xc0\x5f\xaa\xa5\xc1\xa5\xc2\x53\xb2\xa5\xc3\x54\x66\xa5\xc4\x5b\xf4\x4b\x69\xa5\xc5\x56\x52\xa5\xc6\xa5\xc7\xa5\xc8\x67\xaa\xa5\xc9\xa5\xca\x57\x4b\xa5\xcb\x67\xab\xa5\xcc\xa5\xcd\xa5\xce\xa5\xcf\xa5\xd0\x5b\x50\xa5\xd1\x67\xac\xa5\xd2\x6b\xc3\xa5\xd3\xa5\xd4\xa5\xd5\xa5\xd6\xa5\xd7\xa5\xd8\xa5\xd9\xa5\xda\xa5\xdb\xa5\xdc\xa5\xdd\xa5\xde\xa5\xdf\x5e\x67\xa5\xe0\xa5\xe1\xa5\xe2\xa5\xe3\xa5\xe4\xa5\xe5\xa5\xe6\xa5\xe7\xa5\xe8\x4a\xa2\xa5\xe9\xa5\xea\xa5\xeb\x52\x4c\x69\x87\xa5\xec\xa5\xed\xa5\xee\xa5\xef\xa5\xf0\x55\xb7\x59\xd2\xa5\xf1\x5b\xa9\xa5\xf2\x68\x93\xa5\xf3\x4f\xd7\xa5\xf4\x4f\x63\x68\x94\x4b\xcb\x48\xaa\xa5\xf5\xa5\xf6\xa5\xf7\xa5\xf8\x55\xae\xa5\xf9\xa5\xfa\x67\x56\xa5\xfb\x67\x57\xa5\xfc\xa5\xfd\xa6\x41\xa6\x42\x57\xf8\x4c\x4f\x50\x94", /* 7800 */ "\x67\x58\x51\xea\x55\x50\xa6\x43\xa6\x44\xa6\x45\xa6\x46\xa6\x47\xa6\x48\x67\x59\xa6\x49\xa6\x4a\x53\xf5\x50\x53\xa6\x4b\xa6\x4c\xa6\x4d\x67\x5c\x53\x99\xa6\x4e\x59\x70\xa6\x4f\x5c\x49\x67\x5a\x67\x5b\xa6\x50\x59\x83\xa6\x51\x67\x5f\x67\x60\xa6\x52\x67\x64\xa6\x53\xa6\x54\xa6\x55\x67\x68\xa6\x56\x67\x66\x67\x6e\x5b\x89\xa6\x57\x67\x69\xa6\x58\xa6\x59\x67\x67\x67\x5e\xa6\x5a\xa6\x5b\x53\x8a\xa6\x5c\xa6\x5d\xa6\x5e\x53\xc5\xa6\x5f\xa6\x60\x55\x8a\x5a\xd1\x67\x61\x67\x62\x67\x63\x67\x65\xa6\x61\x50\xf8\xa6\x62\x4a\xa0\xa6\x63\xa6\x64\xa6\x65\xa6\x66\x4d\x89\xa6\x67\x67\x70\xa6\x68\xa6\x69\xa6\x6a\xa6\x6b\x67\x71\xa6\x6c\x67\x6a\xa6\x6d\x67\x6f\xa6\x6e\x57\xf7\xa6\x6f\xa6\x70\x56\x56\x67\x6c\x67\x6d\xa6\x71\xa6\x72\xa6\x73\xa6\x74\xa6\x75\x58\x96\xa6\x76\xa6\x77\xa6\x78\xa6\x79\xa6\x7a\xa6\x7b\xa6\x7c\xa6\x7d\xa6\x7e\xa6\x7f\xa6\x81\xa6\x82\x67\x72\x51\x93\x5a\x52\x67\x6b\x54\xb6\xa6\x83\xa6\x84\xa6\x85\xa6\x86\xa6\x87\xa6\x88\xa6\x89\xa6\x8a\x4e\xee\xa6\x8b\xa6\x8c\xa6\x8d\xa6\x8e\x53\x91\xa6\x8f\xa6\x90\xa6\x91", /* 7880 */ "\xa6\x92\xa6\x93\xa6\x94\xa6\x95\xa6\x96\xa6\x97\xa6\x98\x67\x76\xa6\x99\x4b\x90\xa6\x9a\xa6\x9b\x51\xb4\x48\xac\x56\x8a\xa6\x9c\xa6\x9d\x49\x4e\xa6\x9e\x67\x74\xa6\x9f\xa6\xa0\xa6\xa1\x57\x8c\x4b\x83\xa6\xa2\x67\x75\x67\x73\x67\x77\xa6\xa3\xa6\xa4\x4b\x9b\xa6\xa5\x67\x78\xa6\xa6\x67\x79\xa6\xa7\x67\x7c\xa6\xa8\x49\x6c\xa6\xa9\xa6\xaa\xa6\xab\xa6\xac\xa6\xad\xa6\xae\xa6\xaf\xa6\xb0\x53\x97\x4e\xed\x67\x7a\x56\xbb\x49\xe9\xa6\xb1\xa6\xb2\xa6\xb3\xa6\xb4\x67\x7b\xa6\xb5\xa6\xb6\xa6\xb7\xa6\xb8\x52\xea\xa6\xb9\xa6\xba\x4a\xc4\xa6\xbb\xa6\xbc\xa6\xbd\x48\xf4\xa6\xbe\xa6\xbf\xa6\xc0\x67\x7f\x50\xd9\x4a\xe7\xa6\xc1\xa6\xc2\xa6\xc3\xa6\xc4\x53\x6d\xa6\xc5\xa6\xc6\xa6\xc7\x67\x7d\x50\x64\xa6\xc8\xa6\xc9\xa6\xca\x67\x7e\xa6\xcb\xa6\xcc\xa6\xcd\xa6\xce\xa6\xcf\xa6\xd0\xa6\xd1\xa6\xd2\xa6\xd3\xa6\xd4\xa6\xd5\xa6\xd6\xa6\xd7\xa6\xd8\x52\xa4\xa6\xd9\xa6\xda\xa6\xdb\x67\x81\xa6\xdc\xa6\xdd\xa6\xde\xa6\xdf\xa6\xe0\x67\x82\xa6\xe1\x67\x84\xa6\xe2\xa6\xe3\x51\x77\xa6\xe4\xa6\xe5\x4e\x67\xa6\xe6\xa6\xe7\xa6\xe8\xa6\xe9\xa6\xea", /* 7900 */ "\xa6\xeb\x4f\x58\xa6\xec\xa6\xed\xa6\xee\x67\x83\xa6\xef\xa6\xf0\xa6\xf1\xa6\xf2\xa6\xf3\xa6\xf4\xa6\xf5\xa6\xf6\xa6\xf7\xa6\xf8\xa6\xf9\xa6\xfa\xa6\xfb\x67\x85\xa6\xfc\xa6\xfd\xa7\x41\xa7\x42\xa7\x43\xa7\x44\xa7\x45\xa7\x46\xa7\x47\xa7\x48\x67\x87\xa7\x49\xa7\x4a\xa7\x4b\xa7\x4c\xa7\x4d\x67\x86\xa7\x4e\xa7\x4f\xa7\x50\xa7\x51\xa7\x52\xa7\x53\xa7\x54\xa7\x55\xa7\x56\xa7\x57\xa7\x58\xa7\x59\xa7\x5a\xa7\x5b\xa7\x5c\x67\x88\xa7\x5d\xa7\x5e\xa7\x5f\xa7\x60\xa7\x61\x55\xbd\x66\xe9\x50\xf0\xa7\x62\x55\x88\xa7\x63\x66\xea\x53\xed\xa7\x64\xa7\x65\xa7\x66\xa7\x67\x66\xeb\xa7\x68\x53\xec\x66\xec\xa7\x69\xa7\x6a\xa7\x6b\xa7\x6c\xa7\x6d\xa7\x6e\xa7\x6f\xa7\x70\xa7\x71\x66\xef\xa7\x72\xa7\x73\x5c\x87\x66\xf2\xa7\x74\xa7\x75\x66\xf0\x66\xed\x66\xee\x5c\x43\x55\x92\x56\x8f\x66\xf3\xa7\x76\x66\xf1\xa7\x77\xa7\x78\x58\x8a\xa7\x79\x66\xf5\x53\xb0\xa7\x7a\xa7\x7b\xa7\x7c\xa7\x7d\x4e\xbf\xa7\x7e\x66\xf4\xa7\x7f\xa7\x81\xa7\x82\xa7\x83\xa7\x84\xa7\x85\xa7\x86\x4b\x5b\x4e\x97\xa7\x87\x66\xf6\xa7\x88\xa7\x89\xa7\x8a\xa7\x8b\xa7\x8c", /* 7980 */ "\x5d\x98\x4f\x9c\xa7\x8d\xa7\x8e\x51\xba\x66\xf7\xa7\x8f\xa7\x90\xa7\x91\xa7\x92\x66\xf8\xa7\x93\xa7\x94\xa7\x95\xa7\x96\x4c\xa2\xa7\x97\xa7\x98\xa7\x99\xa7\x9a\xa7\x9b\xa7\x9c\xa7\x9d\xa7\x9e\xa7\x9f\xa7\xa0\x66\xf9\xa7\xa1\xa7\xa2\xa7\xa3\xa7\xa4\xa7\xa5\xa7\xa6\xa7\xa7\xa7\xa8\xa7\xa9\xa7\xaa\xa7\xab\xa7\xac\x66\xfa\xa7\xad\xa7\xae\xa7\xaf\xa7\xb0\xa7\xb1\xa7\xb2\xa7\xb3\xa7\xb4\xa7\xb5\xa7\xb6\xa7\xb7\x66\xfb\xa7\xb8\xa7\xb9\xa7\xba\xa7\xbb\xa7\xbc\x5a\x8e\x5c\xad\x50\xea\xa7\xbd\x54\x7d\x4d\xcb\xa7\xbe\x58\xe2\x56\x5d\xa7\xbf\x57\x5a\xa7\xc0\xa7\xc1\x4c\xd0\xa7\xc2\xa7\xc3\x49\x9d\xa7\xc4\x54\x90\xa7\xc5\x5b\xd5\xa7\xc6\xa7\xc7\xa7\xc8\x50\x66\x52\x8c\xa7\xc9\xa7\xca\x68\x96\xa7\xcb\xa7\xcc\x52\x78\xa7\xcd\xa7\xce\xa7\xcf\xa7\xd0\xa7\xd1\xa7\xd2\x5c\x83\xa7\xd3\xa7\xd4\xa7\xd5\x68\x98\x4a\x73\xa7\xd6\x54\x78\x59\x8e\xa7\xd7\x5b\xc7\xa7\xd8\x68\x99\xa7\xd9\x68\x97\xa7\xda\x4e\x9e\x4a\x66\xa7\xdb\xa7\xdc\xa7\xdd\xa7\xde\xa7\xdf\xa7\xe0\xa7\xe1\x4f\x75\xa7\xe2\xa7\xe3\x59\xc5\xa7\xe4\x4e\x81\xa7\xe5\xa7\xe6", /* 7a00 */ "\x58\x41\xa7\xe7\x68\x9d\x68\x9c\xa7\xe8\xa7\xe9\x68\x9a\xa7\xea\xa7\xeb\xa7\xec\xa7\xed\x4a\x6c\xa7\xee\x55\x74\x56\x50\xa7\xef\xa7\xf0\xa7\xf1\xa7\xf2\xa7\xf3\x68\x9f\xa7\xf4\xa7\xf5\x48\xdd\xa7\xf6\xa7\xf7\x5b\xc8\xa7\xf8\xa7\xf9\xa7\xfa\x68\x9e\xa7\xfb\x4a\x8e\xa7\xfc\xa7\xfd\x6b\xd4\xa8\x41\xa8\x42\xa8\x43\xa8\x44\xa8\x45\xa8\x46\xa8\x47\xa8\x48\xa8\x49\xa8\x4a\xa8\x4b\xa8\x4c\xa8\x4d\xa8\x4e\xa8\x4f\x57\xc7\xa8\x50\xa8\x51\xa8\x52\x68\xa1\xa8\x53\x68\xa0\xa8\x54\x4b\x5e\x4e\xd9\x4e\x9d\xa8\x55\x4c\xe4\xa8\x56\xa8\x57\xa8\x58\xa8\x59\xa8\x5a\xa8\x5b\x52\xc1\xa8\x5c\xa8\x5d\xa8\x5e\xa8\x5f\xa8\x60\xa8\x61\xa8\x62\xa8\x63\xa8\x64\xa8\x65\x68\xa2\xa8\x66\xa8\x67\xa8\x68\xa8\x69\xa8\x6a\x56\x8c\xa8\x6b\xa8\x6c\xa8\x6d\xa8\x6e\xa8\x6f\xa8\x70\xa8\x71\xa8\x72\xa8\x73\xa8\x74\xa8\x75\xa8\x76\xa8\x77\xa8\x78\xa8\x79\xa8\x7a\xa8\x7b\xa8\x7c\xa8\x7d\xa8\x7e\xa8\x7f\xa8\x81\xa8\x82\xa8\x83\x68\xa5\xa8\x84\xa8\x85\xa8\x86\x59\x48\xa8\x87\x4f\xbe\x54\x8f\x69\x56\x69\x57\x50\x75\xa8\x88\xa8\x89\xa8\x8a\xa8\x8b\x4a\xa8", /* 7a80 */ "\x69\x58\x57\x5b\xa8\x8c\x54\x74\x5b\x4d\xa8\x8d\x69\x59\xa8\x8e\x69\x5a\xa8\x8f\xa8\x90\xa8\x91\xa8\x92\x54\x6f\xa8\x93\xa8\x94\xa8\x95\x59\xa3\x5b\xce\xa8\x96\xa8\x97\x69\x5b\x4f\x71\x4a\xaf\x4f\xbc\xa8\x98\xa8\x99\xa8\x9a\x4a\xdb\x57\xd0\xa8\x9b\x50\x7f\x69\x5d\xa8\x9c\xa8\x9d\xa8\x9e\xa8\x9f\x50\x9b\x69\x5c\xa8\xa0\x69\x5f\xa8\xa1\xa8\xa2\xa8\xa3\x69\x5e\x69\x60\xa8\xa4\xa8\xa5\xa8\xa6\xa8\xa7\xa8\xa8\x69\x61\xa8\xa9\xa8\xaa\xa8\xab\xa8\xac\xa8\xad\xa8\xae\xa8\xaf\xa8\xb0\xa8\xb1\xa8\xb2\xa8\xb3\x51\x9f\xa8\xb4\xa8\xb5\xa8\xb6\xa8\xb7\xa8\xb8\xa8\xb9\xa8\xba\xa8\xbb\xa8\xbc\xa8\xbd\xa8\xbe\x51\x42\xa8\xbf\xa8\xc0\xa8\xc1\xa8\xc2\xa8\xc3\xa8\xc4\xa8\xc5\xa8\xc6\xa8\xc7\xa8\xc8\x55\xf9\xa8\xc9\xa8\xca\x5b\x5e\xa8\xcb\xa8\xcc\xa8\xcd\xa8\xce\x4f\xb9\x4f\xb8\x5b\x62\xa8\xcf\xa8\xd0\x50\x42\xa8\xd1\x57\x4f\x69\x55\xa8\xd2\xa8\xd3\xa8\xd4\xa8\xd5\xa8\xd6\xa8\xd7\x4f\x7f\xa8\xd8\x4b\xca\xa8\xd9\xa8\xda\xa8\xdb\xa8\xdc\xa8\xdd\xa8\xde\xa8\xdf\xa8\xe0\xa8\xe1\x5b\xf0\x6a\x63\xa8\xe2\xa8\xe3\x6a\x64\xa8\xe4\x4c\xcc", /* 7b00 */ "\xa8\xe5\xa8\xe6\xa8\xe7\x6a\x66\x6a\x67\xa8\xe8\x48\xc9\xa8\xe9\x6a\x65\xa8\xea\x6a\x69\x56\x92\xa8\xeb\xa8\xec\xa8\xed\x6a\x6b\xa8\xee\x58\xa5\xa8\xef\xa8\xf0\x49\x6a\x6a\x68\xa8\xf1\xa8\xf2\xa8\xf3\x6a\x6f\xa8\xf4\x4b\x71\xa8\xf5\xa8\xf6\x6a\x77\xa8\xf7\x6a\x72\xa8\xf8\xa8\xf9\xa8\xfa\x6a\x74\x6a\x73\x4c\x9c\xa8\xfb\x49\x5f\xa8\xfc\x6a\x6e\x6a\x6a\x4b\x7a\xa8\xfd\x6a\x70\xa9\x41\xa9\x42\x6a\x71\xa9\x43\x6a\x75\xa9\x44\xa9\x45\xa9\x46\xa9\x47\x6a\x6d\xa9\x48\x4e\xe2\xa9\x49\x51\x9e\xa9\x4a\x6a\x76\xa9\x4b\xa9\x4c\xa9\x4d\xa9\x4e\xa9\x4f\xa9\x50\x6a\x7a\xa9\x51\x6a\x6c\xa9\x52\x4b\x68\xa9\x53\x4f\x8f\x6a\x7c\xa9\x54\xa9\x55\x4c\x44\x50\x91\x5b\xfd\x57\x52\xa9\x56\x4a\xef\xa9\x57\x49\xde\xa9\x58\x6a\x78\xa9\x59\x6a\x79\x55\x58\xa9\x5a\x6a\x7d\xa9\x5b\xa9\x5c\x6a\x7e\xa9\x5d\x6a\x82\xa9\x5e\xa9\x5f\xa9\x60\xa9\x61\xa9\x62\xa9\x63\xa9\x64\xa9\x65\xa9\x66\xa9\x67\xa9\x68\x6a\x7f\xa9\x69\xa9\x6a\x6a\x84\x6a\x83\xa9\x6b\xa9\x6c\x6a\x7b\xa9\x6d\x50\x8b\xa9\x6e\x4a\x90\xa9\x6f\x6a\x81\xa9\x70\xa9\x71\x54\x49\xa9\x72", /* 7b80 */ "\x4e\xf1\xa9\x73\xa9\x74\xa9\x75\xa9\x76\x6a\x8c\xa9\x77\xa9\x78\xa9\x79\xa9\x7a\xa9\x7b\xa9\x7c\xa9\x7d\x4d\x5f\xa9\x7e\xa9\x7f\x6a\x85\xa9\x81\xa9\x82\xa9\x83\x49\xac\x4e\x9f\xa9\x84\x56\x84\xa9\x85\xa9\x86\xa9\x87\xa9\x88\x6a\x8e\x6a\x8a\xa9\x89\xa9\x8a\xa9\x8b\x4d\x7c\x6a\x8f\xa9\x8c\xa9\x8d\xa9\x8e\x6a\x86\x6a\x87\x6a\x8b\x51\xe0\x6a\x8d\x6a\x90\x6a\x89\x4e\xfc\xa9\x8f\xa9\x90\xa9\x91\x58\x85\xa9\x92\xa9\x93\x6a\x91\xa9\x94\xa9\x95\xa9\x96\x6a\x88\xa9\x97\xa9\x98\xa9\x99\xa9\x9a\xa9\x9b\xa9\x9c\xa9\x9d\xa9\x9e\x6a\x93\xa9\x9f\xa9\xa0\xa9\xa1\xa9\xa2\x5c\x4d\x53\xa9\xa9\xa3\xa9\xa4\xa9\xa5\xa9\xa6\x6a\x94\xa9\xa7\xa9\xa8\xa9\xa9\xa9\xaa\x6a\x92\xa9\xab\x51\xa7\xa9\xac\xa9\xad\xa9\xae\xa9\xaf\xa9\xb0\x4c\xdc\x6a\x96\xa9\xb1\xa9\xb2\x6a\x95\xa9\xb3\xa9\xb4\xa9\xb5\x4a\xda\xa9\xb6\xa9\xb7\xa9\xb8\x6a\x97\x6a\x98\xa9\xb9\xa9\xba\xa9\xbb\x6a\x99\xa9\xbc\xa9\xbd\xa9\xbe\x50\xb9\xa9\xbf\xa9\xc0\x50\xe8\xa9\xc1\xa9\xc2\xa9\xc3\xa9\xc4\xa9\xc5\x53\x92\xa9\xc6\xa9\xc7\xa9\xc8\xa9\xc9\x6a\x9c\xa9\xca\x6a\x9b\xa9\xcb", /* 7c00 */ "\xa9\xcc\xa9\xcd\xa9\xce\xa9\xcf\xa9\xd0\xa9\xd1\xa9\xd2\x4a\xd7\xa9\xd3\xa9\xd4\xa9\xd5\x6a\x9f\x6a\x9a\xa9\xd6\xa9\xd7\x6a\x9d\xa9\xd8\xa9\xd9\xa9\xda\xa9\xdb\xa9\xdc\xa9\xdd\x6a\x9e\xa9\xde\xa9\xdf\xa9\xe0\xa9\xe1\xa9\xe2\xa9\xe3\xa9\xe4\xa9\xe5\x6a\xa0\xa9\xe6\xa9\xe7\xa9\xe8\xa9\xe9\xa9\xea\xa9\xeb\x6a\xa2\x4e\x69\xa9\xec\xa9\xed\x6a\xa1\xa9\xee\xa9\xef\xa9\xf0\xa9\xf1\xa9\xf2\xa9\xf3\xa9\xf4\xa9\xf5\xa9\xf6\xa9\xf7\xa9\xf8\xa9\xf9\xa9\xfa\x6a\xa3\xa9\xfb\xa9\xfc\xa9\xfd\xaa\x41\xaa\x42\xaa\x43\x49\xbd\x6a\xa5\x6a\xa4\xaa\x44\xaa\x45\xaa\x46\xaa\x47\xaa\x48\xaa\x49\xaa\x4a\xaa\x4b\xaa\x4c\xaa\x4d\xaa\x4e\x4e\xad\xaa\x4f\xaa\x50\xaa\x51\xaa\x52\xaa\x53\xaa\x54\xaa\x55\xaa\x56\xaa\x57\xaa\x58\xaa\x59\xaa\x5a\xaa\x5b\xaa\x5c\xaa\x5d\xaa\x5e\xaa\x5f\xaa\x60\xaa\x61\xaa\x62\xaa\x63\xaa\x64\xaa\x65\xaa\x66\xaa\x67\xaa\x68\xaa\x69\xaa\x6a\xaa\x6b\xaa\x6c\xaa\x6d\xaa\x6e\xaa\x6f\xaa\x70\xaa\x71\xaa\x72\xaa\x73\x52\x77\x5d\x82\xaa\x74\xaa\x75\xaa\x76\xaa\x77\xaa\x78\xaa\x79\x50\xdf\x6a\xcb\x5c\x71\xaa\x7a\xaa\x7b", /* 7c80 */ "\xaa\x7c\xaa\x7d\xaa\x7e\xaa\x7f\xaa\x81\xaa\x82\xaa\x83\xaa\x84\xaa\x85\x4c\x7b\xaa\x86\xaa\x87\xaa\x88\xaa\x89\xaa\x8a\xaa\x8b\xaa\x8c\x6a\xcd\x51\x43\xaa\x8d\xaa\x8e\x53\xc8\xaa\x8f\x4a\xd5\x5b\x53\xaa\x90\xaa\x91\xaa\x92\x6a\xcf\x6a\xce\x6a\xd0\x56\x7a\xaa\x93\xaa\x94\x6a\xd1\xaa\x95\x5a\xc0\x5b\xdf\xaa\x96\xaa\x97\xaa\x98\xaa\x99\x4c\x81\xaa\x9a\xaa\x9b\xaa\x9c\x51\x58\xaa\x9d\xaa\x9e\x51\x5b\x6a\xd2\x4f\xab\xaa\x9f\xaa\xa0\xaa\xa1\xaa\xa2\xaa\xa3\x4a\xe1\xaa\xa4\xaa\xa5\x6a\xd3\x6a\xd4\x4f\xaa\xaa\xa6\xaa\xa7\x6a\xd5\xaa\xa8\xaa\xa9\xaa\xaa\x6a\xda\xaa\xab\x6a\xd6\x6a\xd9\xaa\xac\x4d\xfc\xaa\xad\x6a\xd7\x6a\xd8\xaa\xae\xaa\xaf\xaa\xb0\xaa\xb1\xaa\xb2\xaa\xb3\xaa\xb4\x4c\xe1\x56\xc6\x6a\xdb\xaa\xb5\x49\xd9\xaa\xb6\xaa\xb7\x52\x73\xaa\xb8\xaa\xb9\x5a\xe2\x50\x57\xaa\xba\xaa\xbb\xaa\xbc\xaa\xbd\xaa\xbe\xaa\xbf\xaa\xc0\x6a\xdc\xaa\xc1\xaa\xc2\xaa\xc3\xaa\xc4\xaa\xc5\xaa\xc6\x53\x54\xaa\xc7\xaa\xc8\xaa\xc9\xaa\xca\xaa\xcb\xaa\xcc\xaa\xcd\xaa\xce\x6a\xe8\xaa\xcf\xaa\xd0\x58\x55\xaa\xd1\xaa\xd2\xaa\xd3\xaa\xd4", /* 7d00 */ "\xaa\xd5\xaa\xd6\xaa\xd7\xaa\xd8\xaa\xd9\xaa\xda\xaa\xdb\xaa\xdc\xaa\xdd\xaa\xde\x57\xc8\xaa\xdf\xaa\xe0\xaa\xe1\xaa\xe2\xaa\xe3\xaa\xe4\xaa\xe5\xaa\xe6\xaa\xe7\xaa\xe8\xaa\xe9\xaa\xea\xaa\xeb\xaa\xec\xaa\xed\xaa\xee\xaa\xef\xaa\xf0\xaa\xf1\xaa\xf2\xaa\xf3\x56\x78\xaa\xf4\x56\x98\xaa\xf5\xaa\xf6\xaa\xf7\xaa\xf8\x4f\x95\xaa\xf9\xaa\xfa\xaa\xfb\x5c\x6f\xaa\xfc\xaa\xfd\xab\x41\x50\xda\xab\x42\xab\x43\xab\x44\xab\x45\xab\x46\xab\x47\xab\x48\xab\x49\xab\x4a\xab\x4b\xab\x4c\xab\x4d\xab\x4e\xab\x4f\xab\x50\xab\x51\xab\x52\xab\x53\xab\x54\xab\x55\xab\x56\xab\x57\xab\x58\xab\x59\xab\x5a\xab\x5b\xab\x5c\xab\x5d\xab\x5e\xab\x5f\xab\x60\xab\x61\xab\x62\xab\x63\xab\x64\xab\x65\xab\x66\xab\x67\xab\x68\xab\x69\xab\x6a\xab\x6b\xab\x6c\xab\x6d\xab\x6e\xab\x6f\xab\x70\xab\x71\xab\x72\xab\x73\xab\x74\xab\x75\xab\x76\xab\x77\xab\x78\xab\x79\xab\x7a\xab\x7b\xab\x7c\xab\x7d\xab\x7e\xab\x7f\x58\xf4\xab\x81\xab\x82\xab\x83\xab\x84\xab\x85\xab\x86\xab\x87\xab\x88\x6a\xe9\xab\x89\xab\x8a\xab\x8b\xab\x8c\xab\x8d\xab\x8e\xab\x8f\xab\x90", /* 7d80 */ "\xab\x91\xab\x92\xab\x93\xab\x94\xab\x95\xab\x96\xab\x97\xab\x98\xab\x99\xab\x9a\xab\x9b\xab\x9c\xab\x9d\xab\x9e\xab\x9f\xab\xa0\xab\xa1\xab\xa2\xab\xa3\xab\xa4\xab\xa5\xab\xa6\xab\xa7\xab\xa8\xab\xa9\xab\xaa\xab\xab\xab\xac\xab\xad\xab\xae\xab\xaf\xab\xb0\xab\xb1\xab\xb2\xab\xb3\xab\xb4\xab\xb5\xab\xb6\x6a\xea\xab\xb7\xab\xb8\xab\xb9\xab\xba\xab\xbb\xab\xbc\xab\xbd\x6a\xeb\xab\xbe\xab\xbf\xab\xc0\xab\xc1\xab\xc2\xab\xc3\xab\xc4\xab\xc5\xab\xc6\xab\xc7\xab\xc8\xab\xc9\xab\xca\xab\xcb\xab\xcc\xab\xcd\xab\xce\xab\xcf\xab\xd0\xab\xd1\xab\xd2\xab\xd3\xab\xd4\xab\xd5\xab\xd6\xab\xd7\xab\xd8\xab\xd9\xab\xda\xab\xdb\xab\xdc\xab\xdd\xab\xde\xab\xdf\xab\xe0\xab\xe1\xab\xe2\xab\xe3\xab\xe4\xab\xe5\xab\xe6\xab\xe7\xab\xe8\xab\xe9\xab\xea\xab\xeb\xab\xec\xab\xed\xab\xee\xab\xef\xab\xf0\xab\xf1\xab\xf2\xab\xf3\xab\xf4\xab\xf5\xab\xf6\xab\xf7\xab\xf8\xab\xf9\xab\xfa\xab\xfb\xab\xfc\xab\xfd\xac\x41\xac\x42\xac\x43\xac\x44\xac\x45\xac\x46\xac\x47\xac\x48\xac\x49\xac\x4a\xac\x4b\xac\x4c\xac\x4d\xac\x4e\xac\x4f\xac\x50\xac\x51", /* 7e00 */ "\xac\x52\xac\x53\xac\x54\xac\x55\xac\x56\xac\x57\xac\x58\xac\x59\xac\x5a\xac\x5b\xac\x5c\xac\x5d\xac\x5e\xac\x5f\xac\x60\xac\x61\xac\x62\xac\x63\xac\x64\xac\x65\xac\x66\xac\x67\xac\x68\xac\x69\xac\x6a\xac\x6b\xac\x6c\xac\x6d\xac\x6e\xac\x6f\xac\x70\xac\x71\xac\x72\xac\x73\xac\x74\xac\x75\xac\x76\xac\x77\xac\x78\xac\x79\xac\x7a\xac\x7b\xac\x7c\xac\x7d\xac\x7e\xac\x7f\xac\x81\xac\x82\xac\x83\xac\x84\xac\x85\xac\x86\xac\x87\xac\x88\xac\x89\xac\x8a\xac\x8b\xac\x8c\xac\x8d\x6c\x84\xac\x8e\xac\x8f\xac\x90\xac\x91\xac\x92\x4c\x51\xac\x93\xac\x94\xac\x95\xac\x96\xac\x97\x6a\xec\xac\x98\xac\x99\xac\x9a\xac\x9b\xac\x9c\xac\x9d\xac\x9e\xac\x9f\xac\xa0\xac\xa1\xac\xa2\xac\xa3\xac\xa4\xac\xa5\xac\xa6\xac\xa7\xac\xa8\xac\xa9\xac\xaa\xac\xab\xac\xac\xac\xad\xac\xae\xac\xaf\xac\xb0\xac\xb1\xac\xb2\xac\xb3\xac\xb4\xac\xb5\xac\xb6\xac\xb7\xac\xb8\xac\xb9\xac\xba\xac\xbb\xac\xbc\xac\xbd\xac\xbe\xac\xbf\xac\xc0\xac\xc1\xac\xc2\xac\xc3\xac\xc4\xac\xc5\xac\xc6\xac\xc7\xac\xc8\xac\xc9\xac\xca\xac\xcb\xac\xcc\xac\xcd\xac\xce\xac\xcf", /* 7e80 */ "\xac\xd0\xac\xd1\x5c\x8c\xac\xd2\xac\xd3\xac\xd4\xac\xd5\xac\xd6\xac\xd7\xac\xd8\xac\xd9\xac\xda\xac\xdb\xac\xdc\xac\xdd\xac\xde\xac\xdf\xac\xe0\xac\xe1\xac\xe2\xac\xe3\xac\xe4\xac\xe5\xac\xe6\xac\xe7\xac\xe8\xac\xe9\x6a\xed\xac\xea\xac\xeb\xac\xec\x63\xf8\x4f\xbf\x63\xf9\x4d\xeb\x63\xfa\x58\x6b\x63\xfb\x5a\xbb\x4e\xb5\x63\xfc\x63\xfd\x4e\xcc\x54\xd1\x57\xb2\x64\x41\xac\xed\x4a\xbe\x64\x42\x55\x54\x4c\xd8\x52\xc8\xac\xee\x5c\x7d\x51\xd9\x4c\x77\x5b\xbc\x57\xc5\x4c\x64\xac\xef\xac\xf0\x53\x46\x64\x43\x58\x7f\x64\x44\x64\x45\x64\x46\x51\x57\x5c\x8a\x55\x91\x58\x58\x5b\xae\x5b\xd4\x64\x47\x48\xec\x64\x48\x64\x49\x55\x7c\x59\xee\x4f\xac\x64\x4a\x48\xf2\x54\xdd\x4f\x82\x64\x4b\x54\xc5\xac\xf1\x64\x4c\x4e\x87\x4c\xf7\x59\x44\x64\x4d\x51\xe6\x4f\xf7\x4f\x6a\x57\x53\x64\x4e\x64\x4f\x4f\xed\x58\xe4\xac\xf2\x56\x88\x56\xcf\x4e\xcb\x64\x50\x4e\xa7\x58\xf6\x64\x51\xac\xf3\x58\xf7\x64\x52\x64\x53\x4a\xc1\x64\x54\x64\x55\x55\x9f\x57\xab\x52\x81\x64\x57\x49\x61\x4a\x92\xac\xf4\x64\x58\x64\x59\x5c\x7b\x5b\x60\x64\x5a\x51\xcb", /* 7f00 */ "\x5c\x5a\x64\x5b\x64\x5c\x64\x5d\x4e\xe9\x52\x86\x50\xc1\x64\x5e\x64\x5f\x4e\xa8\xac\xf5\x64\x60\x64\x61\x64\x56\x4b\xcf\x64\x62\xac\xf6\x64\x63\x64\x64\x4e\x5a\x4b\x7e\x51\xc5\x49\x81\x64\x65\x5a\xb4\x64\x66\x4c\xbe\x64\x68\x64\x67\x4c\x8d\xac\xf7\x64\x69\x49\xf7\x64\x6a\x64\x6b\x64\x6c\x64\x6d\x64\x6e\x64\x6f\x64\x70\x5a\x47\x56\x96\x64\x71\x64\x72\x64\x73\x64\x74\x55\x69\x64\x75\x64\x76\x64\x77\x64\x78\x64\x79\x4f\x69\x64\x7a\x6a\x5e\xac\xf8\x4c\xd6\xac\xf9\x54\xb0\xac\xfa\xac\xfb\xac\xfc\xac\xfd\xad\x41\xad\x42\xad\x43\x6a\x5f\xad\x44\x6a\x60\x6a\x61\xad\x45\xad\x46\xad\x47\xad\x48\xad\x49\xad\x4a\xad\x4b\xad\x4c\xad\x4d\xad\x4e\x4d\x7e\x57\x99\xad\x4f\xad\x50\x5c\xe7\x4d\xb0\xad\x51\x51\xdd\x67\xb6\xad\x52\x4c\x43\xad\x53\xad\x54\xad\x55\xad\x56\x67\xb8\xad\x57\x67\xb7\x48\xd4\xad\x58\xad\x59\xad\x5a\xad\x5b\xad\x5c\x67\xba\x5b\x76\x5c\x90\xad\x5d\xad\x5e\xad\x5f\x5b\xc2\xad\x60\xad\x61\x67\xbc\x55\xef\xad\x62\x67\xbb\xad\x63\xad\x64\xad\x65\xad\x66\x67\xbd\xad\x67\xad\x68\xad\x69\xad\x6a\x67\xbf\xad\x6b", /* 7f80 */ "\xad\x6c\x67\xbe\xad\x6d\xad\x6e\xad\x6f\xad\x70\xad\x71\xad\x72\xad\x73\xad\x74\x59\x93\xad\x75\x54\x5c\xad\x76\x52\x60\xad\x77\xad\x78\xad\x79\xad\x7a\xad\x7b\x4c\xe0\xad\x7c\xad\x7d\xad\x7e\xad\x7f\xad\x81\x51\x88\xad\x82\xad\x83\x6a\xc5\x58\xde\x6a\xc6\xad\x84\x58\x7b\xad\x85\xad\x86\x54\xb9\xad\x87\xad\x88\x6a\xc7\xad\x89\xad\x8a\xad\x8b\xad\x8c\xad\x8d\xad\x8e\xad\x8f\x6a\xc8\x6a\xc9\xad\x90\x6a\xca\xad\x91\xad\x92\xad\x93\xad\x94\xad\x95\x5d\x9b\x4c\xfd\xad\x96\xad\x97\x63\x92\x5a\x91\xad\x98\x6a\xdf\xad\x99\x57\xcb\xad\x9a\xad\x9b\xad\x9c\x4a\x82\xad\x9d\xad\x9e\xad\x9f\xad\xa0\x69\x54\xad\xa1\x59\xed\xad\xa2\x6a\xe0\xad\xa3\xad\xa4\xad\xa5\xad\xa6\xad\xa7\x58\x89\x6a\xe1\xad\xa8\xad\xa9\x54\x6c\xad\xaa\xad\xab\xad\xac\xad\xad\xad\xae\xad\xaf\x4b\x74\x4a\xe3\x6a\xe3\xad\xb0\xad\xb1\xad\xb2\x6a\xe2\x6a\xe4\xad\xb3\xad\xb4\x6a\xe5\xad\xb5\xad\xb6\xad\xb7\xad\xb8\x6a\xe6\xad\xb9\x4d\xb1\x48\xbe\xad\xba\x6a\xe7\xad\xbb\xad\xbc\xad\xbd\xad\xbe\xad\xbf\xad\xc0\xad\xc1\x4c\x4d\x59\xec\xad\xc2\xad\xc3\xad\xc4", /* 8000 */ "\x59\xaa\x50\xce\xad\xc5\x50\x5c\x66\x43\x5b\x7f\x65\xc7\xad\xc6\xad\xc7\xad\xc8\xad\xc9\x69\x94\x4b\xf7\x56\x43\xad\xca\xad\xcb\x52\xcc\xad\xcc\x69\x88\xad\xcd\x69\x89\x4c\xfa\x69\x8a\x4d\xc3\x5a\xc4\x48\xd1\xad\xce\xad\xcf\x69\x8b\xad\xd0\xad\xd1\xad\xd2\x69\x8c\xad\xd3\x69\x8d\xad\xd4\xad\xd5\x69\x8e\x69\x8f\x69\x90\x69\x92\x69\x91\x53\x75\xad\xd6\xad\xd7\xad\xd8\xad\xd9\xad\xda\xad\xdb\x69\x93\xad\xdc\x4b\xf9\xad\xdd\x69\x95\x59\xad\x5f\xc6\x56\x6a\xad\xde\xad\xdf\x4a\x7c\xad\xe0\x4b\x42\xad\xe1\x4d\x42\xad\xe2\xad\xe3\x52\xf3\x69\x96\xad\xe4\xad\xe5\x69\x97\xad\xe6\xad\xe7\xad\xe8\x51\x64\x51\x9c\x5b\xaf\x69\x98\xad\xe9\xad\xea\xad\xeb\xad\xec\x69\x99\xad\xed\x51\x4a\xad\xee\xad\xef\xad\xf0\x53\xb7\xad\xf1\x4f\xda\xad\xf2\xad\xf3\xad\xf4\xad\xf5\xad\xf6\xad\xf7\xad\xf8\xad\xf9\xad\xfa\xad\xfb\xad\xfc\xad\xfd\xae\x41\xae\x42\x69\x9a\x4a\xce\xae\x43\xae\x44\xae\x45\xae\x46\xae\x47\xae\x48\x69\x9b\xae\x49\xae\x4a\xae\x4b\xae\x4c\xae\x4d\xae\x4e\xae\x4f\xae\x50\xae\x51\xae\x52\xae\x53\xae\x54\xae\x55\x67\x52", /* 8080 */ "\x67\x51\xae\x56\xae\x57\x56\x81\x59\xdd\xae\x58\x56\x61\x5b\x78\xae\x59\x54\xe1\xae\x5a\x50\xde\x4e\xa0\xae\x5b\xae\x5c\xae\x5d\xae\x5e\xae\x5f\xae\x60\x66\x61\xae\x61\xae\x62\x58\xa3\xae\x63\x5b\xe1\xae\x64\x4b\xc6\x4c\xd7\x66\x60\x4c\xcd\xae\x65\x66\x5f\x4a\x46\x4d\x69\x5b\xaa\xae\x66\x4c\x95\x4c\x6a\xae\x67\xae\x68\xae\x69\x4e\xe6\x4c\x5e\x66\x66\xae\x6a\x66\x67\x48\xb8\x50\x6f\xae\x6b\x66\x65\x5a\x9e\xae\x6c\x66\x68\xae\x6d\xae\x6e\x66\x69\xae\x6f\xae\x70\x4c\x6e\xae\x71\x66\x62\x66\x64\x55\x97\x5b\xd6\x5b\x6d\x58\xb1\x66\x6f\x57\xb7\x66\x70\xae\x72\x4b\x48\xae\x73\xae\x74\xae\x75\xae\x76\xae\x77\x49\x53\x66\x72\x56\xa4\xae\x78\xae\x79\xae\x7a\xae\x7b\xae\x7c\xae\x7d\xae\x7e\x53\x76\x66\x73\xae\x7f\x66\x71\x53\x7f\x66\x6e\x55\xa3\x66\x75\x48\xfa\xae\x81\xae\x82\x4d\xf9\xae\x83\xae\x84\x5c\xb6\x69\x84\xae\x85\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x76\x63\xbf\x66\x79\xae\x86\x50\x89\x59\xc7\x66\x77\x66\x7c\x4c\xeb\x66\x78\xae\x87\x4f\x5a\xae\x88\x58\xd7\xae\x89\x48\xb6\xae\x8a\x66\x7d\x52\xdb\xae\x8b\xae\x8c", /* 8100 */ "\xae\x8d\xae\x8e\x5b\xab\xae\x8f\xae\x90\xae\x91\x4a\xdf\xae\x92\xae\x93\x51\xf5\x4e\xb8\xae\x94\xae\x95\x66\x7a\x66\x7b\x5a\xdf\x53\xe9\x52\xd3\x66\x7f\x53\x47\x5d\x96\xae\x96\x49\xb0\xae\x97\x66\x85\xae\x98\x4f\x65\xae\x99\xae\x9a\xae\x9b\x66\x83\xae\x9c\xae\x9d\xae\x9e\xae\x9f\xae\xa0\xae\xa1\xae\xa2\xae\xa3\xae\xa4\xae\xa5\xae\xa6\xae\xa7\xae\xa8\x66\x84\xae\xa9\xae\xaa\x4c\xab\xae\xab\x57\x71\x66\x86\xae\xac\xae\xad\xae\xae\x66\x82\xae\xaf\x51\x53\xae\xb0\xae\xb1\xae\xb2\xae\xb3\xae\xb4\x53\xa1\xae\xb5\xae\xb6\xae\xb7\xae\xb8\xae\xb9\xae\xba\xae\xbb\x56\xf2\xae\xbc\x66\x87\xae\xbd\x50\xaf\x59\xb7\x66\x88\xae\xbe\xae\xbf\xae\xc0\x4c\xae\x4c\xac\xae\xc1\x66\x89\x54\x5b\x57\x94\xae\xc2\xae\xc3\xae\xc4\x66\x8b\x66\x8c\xae\xc5\xae\xc6\xae\xc7\xae\xc8\xae\xc9\x66\x8e\xae\xca\xae\xcb\xae\xcc\xae\xcd\x58\xc7\xae\xce\x66\x93\xae\xcf\x66\x8f\xae\xd0\xae\xd1\xae\xd2\x66\x92\x54\xf8\xae\xd3\x59\x9d\x66\x8d\xae\xd4\xae\xd5\x66\x8a\xae\xd6\xae\xd7\xae\xd8\xae\xd9\x4c\xb8\x58\x79\x52\xe4\x66\x90\x66\x91\x56\xd9\x57\x68", /* 8180 */ "\x48\xf1\xae\xda\x66\x97\xae\xdb\xae\xdc\xae\xdd\xae\xde\xae\xdf\x66\x96\xae\xe0\x49\xb1\xae\xe1\xae\xe2\xae\xe3\xae\xe4\x4c\xdf\xae\xe5\x66\x98\xae\xe6\xae\xe7\xae\xe8\xae\xe9\xae\xea\xae\xeb\x49\x8d\xae\xec\xae\xed\x56\xc4\x52\xa3\x58\x45\xae\xee\xae\xef\xae\xf0\xae\xf1\xae\xf2\x66\x9a\xae\xf3\xae\xf4\x66\xa1\xae\xf5\x53\x93\xae\xf6\x66\x9b\xae\xf7\xae\xf8\xae\xf9\xae\xfa\xae\xfb\xae\xfc\xae\xfd\xaf\x41\x55\x65\xaf\x42\xaf\x43\xaf\x44\xaf\x45\xaf\x46\xaf\x47\x61\xde\x66\x9f\xaf\x48\xaf\x49\xaf\x4a\xaf\x4b\x57\x6e\x66\xa0\x49\x7b\x5a\x57\xaf\x4c\xaf\x4d\x59\xdb\xaf\x4e\xaf\x4f\xaf\x50\x66\x9e\xaf\x51\x66\x9c\xaf\x52\xaf\x53\xaf\x54\xaf\x55\xaf\x56\xaf\x57\xaf\x58\xaf\x59\xaf\x5a\xaf\x5b\xaf\x5c\xaf\x5d\xaf\x5e\xaf\x5f\xaf\x60\xaf\x61\xaf\x62\xaf\x63\xaf\x64\xaf\x65\xaf\x66\xaf\x67\x4a\x5c\xaf\x68\xaf\x69\xaf\x6a\x65\xaf\xaf\x6b\xaf\x6c\x5c\x74\xaf\x6d\x6a\xaa\x4a\x95\xaf\x6e\xaf\x6f\xaf\x70\xaf\x71\xaf\x72\x5b\xc0\x5b\xc1\xaf\x73\xaf\x74\xaf\x75\xaf\x76\xaf\x77\xaf\x78\x5b\x8a\x4f\xc9\xaf\x79\x6a\xa6\xaf\x7a", /* 8200 */ "\x59\xa7\x6a\xa7\x6a\xa8\xaf\x7b\x6a\xa9\x4f\xca\x5a\x7f\xaf\x7c\xaf\x7d\xaf\x7e\xaf\x7f\xaf\x81\x55\x81\x55\x82\xaf\x82\xaf\x83\x6a\x62\xaf\x84\x55\xe5\xaf\x85\x56\xf1\xaf\x86\xaf\x87\xaf\x88\xaf\x89\xaf\x8a\xaf\x8b\x61\xb5\x56\x54\xaf\x8c\x57\xe7\x5b\xda\xaf\x8d\x6a\xac\x6a\xad\x6a\xae\xaf\x8e\xaf\x8f\xaf\x90\xaf\x91\x6a\xb1\xaf\x92\x4d\xbc\x6a\xb2\x48\xe2\x6a\xaf\xaf\x93\x6a\xb0\x4f\x42\x49\xd4\xaf\x94\x6a\xb5\x6a\xb6\x4b\xe5\x49\xaf\x58\x6f\x6a\xb3\x4a\xab\xaf\x95\x6a\xb4\xaf\x96\xaf\x97\x6a\xb7\xaf\x98\xaf\x99\xaf\x9a\xaf\x9b\xaf\x9c\x6a\xb8\xaf\x9d\xaf\x9e\x57\x47\xaf\x9f\x6a\xb9\xaf\xa0\x6a\xba\xaf\xa1\xaf\xa2\xaf\xa3\x6a\xbb\xaf\xa4\xaf\xa5\xaf\xa6\xaf\xa7\xaf\xa8\xaf\xa9\xaf\xaa\xaf\xab\x56\x72\xaf\xac\x6a\xbc\xaf\xad\xaf\xae\xaf\xaf\xaf\xb0\x6a\xbd\xaf\xb1\xaf\xb2\xaf\xb3\xaf\xb4\xaf\xb5\xaf\xb6\xaf\xb7\xaf\xb8\x6a\xbe\xaf\xb9\xaf\xba\xaf\xbb\xaf\xbc\xaf\xbd\x6a\xdd\x51\x5c\x4e\xe7\xaf\xbe\x55\x4b\x59\x7e\x63\x96\xaf\xbf\xaf\xc0\xaf\xc1\xaf\xc2\x5e\xb2\x59\xd4\xaf\xc3\xaf\xc4\x5e\xb3\x48\xab\x5e\xb4", /* 8280 */ "\xaf\xc5\xaf\xc6\x4f\x7a\xaf\xc7\x5e\xb8\xaf\xc8\xaf\xc9\xaf\xca\x5c\xc1\xaf\xcb\x5e\xb6\x5a\x94\xaf\xcc\x55\x76\x5e\xb9\x5e\xb5\xaf\xcd\x5e\xba\x52\x42\xaf\xce\xaf\xcf\xaf\xd0\xaf\xd1\x5e\xbb\x5e\xc4\x5e\xbc\xaf\xd2\xaf\xd3\x57\xde\x5b\xa4\xaf\xd4\x5e\xce\xaf\xd5\x5e\xcc\xaf\xd6\xaf\xd7\x5e\xd1\x4f\x87\x51\xaa\xaf\xd8\x5e\xb7\x5e\xca\x5e\xcd\x5e\xbd\x4c\x72\x48\xc4\x5e\xc6\x58\xbd\x5e\xc0\x4e\x48\xaf\xd9\x4c\x5c\x5e\xcb\xaf\xda\xaf\xdb\x5e\xc5\x5e\xbe\x54\x7b\xaf\xdc\xaf\xdd\xaf\xde\x59\x5f\x5e\xbf\xaf\xdf\xaf\xe0\x5e\xc9\xaf\xe1\xaf\xe2\x5e\xcf\xaf\xe3\xaf\xe4\x57\xac\x5e\xc1\xaf\xe5\x5e\xc2\x5e\xc7\x5e\xc8\x49\xd3\x5e\xd0\x56\x75\xaf\xe6\x5a\xb6\x5e\xda\x5e\xde\x56\xa5\x5e\xe5\xaf\xe7\x52\x88\x5e\xdb\xaf\xe8\xaf\xe9\x50\x61\x5e\xd8\xaf\xea\x48\xf9\x4d\x56\x5e\xe4\x5e\xd2\xaf\xeb\x5e\xc3\x5e\xd5\x54\xf3\x50\x81\xaf\xec\xaf\xed\xaf\xee\xaf\xef\x55\x5b\xaf\xf0\xaf\xf1\xaf\xf2\x49\x5d\xaf\xf3\x5a\x42\xaf\xf4\xaf\xf5\x5e\xd9\xaf\xf6\xaf\xf7\x5e\xd4\xaf\xf8\x53\xba\xaf\xf9\x5e\xdd\xaf\xfa\xaf\xfb\xaf\xfc\xaf\xfd", /* 8300 */ "\xb0\x41\x5c\x62\x52\x4f\x4c\x56\x54\x71\x52\x49\x5e\xe1\x5e\xd7\x5e\xea\x5e\xd3\xb0\x42\xb0\x43\x5e\xdc\xb0\x44\x4f\xa4\x5e\xd6\xb0\x45\x5e\xdf\xb0\x46\xb0\x47\x5e\xe2\x5e\xe3\xb0\x48\x5e\xf7\xb0\x49\xb0\x4a\x5e\xe0\x5f\x42\x5e\xe6\xb0\x4b\xb0\x4c\xb0\x4d\xb0\x4e\xb0\x4f\xb0\x50\xb0\x51\xb0\x52\xb0\x53\xb0\x54\x4e\xea\x4a\xc3\xb0\x55\xb0\x56\x52\x43\x49\xe6\x5e\xf9\xb0\x57\x5e\xf1\xb0\x58\x5e\xee\xb0\x59\x5e\xfb\x5e\xed\x59\xef\x49\xe7\xb0\x5a\x54\xd6\x54\xe2\x5e\xfa\xb0\x5b\x5e\xec\xb0\x5c\xb0\x5d\xb0\x5e\x5e\xf6\xb0\x5f\xb0\x60\x5e\xf4\xb0\x61\xb0\x62\x4f\xa2\x5e\xf3\xb0\x63\x49\xdc\xb0\x64\xb0\x65\xb0\x66\xb0\x67\xb0\x68\x5e\xf2\x4e\xf5\x5e\xe7\x4e\x64\xb0\x69\x50\xf2\xb0\x6a\xb0\x6b\xb0\x6c\xb0\x6d\xb0\x6e\x4e\xd3\x5e\xe8\x5e\xe9\xb0\x6f\x5e\xf0\x5e\xf5\x5e\xf8\x4b\x54\xb0\x70\x54\xd8\x4e\x88\x5e\xfd\x5e\xfc\x5a\x4b\x5f\x41\x5f\x43\x5f\x45\x59\xf0\x5f\x44\x5f\x46\x5f\x47\x59\xa8\xb0\x71\xb0\x72\xb0\x73\xb0\x74\xb0\x75\xb0\x76\xb0\x77\x4d\xc8\x5f\x49\xb0\x78\xb0\x79\x5f\x56\x5f\x51\x5f\x54\xb0\x7a\xb0\x7b", /* 8380 */ "\xb0\x7c\xb0\x7d\xb0\x7e\xb0\x7f\xb0\x81\x5f\x50\x53\xcd\xb0\x82\xb0\x83\x50\xf1\xb0\x84\xb0\x85\xb0\x86\xb0\x87\x55\x4f\xb0\x88\xb0\x89\xb0\x8a\x5e\xeb\x5f\x4e\xb0\x8b\xb0\x8c\xb0\x8d\xb0\x8e\x5f\x57\xb0\x8f\xb0\x90\x5e\xef\x5f\x4f\xb0\x91\x5f\x58\xb0\x92\x5f\x4c\xb0\x93\xb0\x94\xb0\x95\xb0\x96\xb0\x97\xb0\x98\xb0\x99\x5f\x59\x5f\x53\x5f\x4d\x52\xa9\xb0\x9a\xb0\x9b\xb0\x9c\xb0\x9d\x5f\x48\x50\xb2\x51\x4b\x5f\x4a\x5f\x4b\xb0\x9e\x5f\x52\x4e\x92\x5f\x55\x5a\x48\x5f\x5a\xb0\x9f\x5f\x5b\x52\x47\xb0\xa0\xb0\xa1\x5f\x72\x5f\x5c\xb0\xa2\xb0\xa3\xb0\xa4\x5f\x71\xb0\xa5\x4d\x5d\xb0\xa6\xb0\xa7\x4f\xd4\xb0\xa8\x4f\xf9\xb0\xa9\xb0\xaa\x4d\xc9\xb0\xab\xb0\xac\xb0\xad\xb0\xae\x5f\x6a\xb0\xaf\x5f\x65\xb0\xb0\x5f\x5f\xb0\xb1\xb0\xb2\xb0\xb3\x49\xca\x5f\x63\xb0\xb4\x5f\x6b\x49\xa3\x5f\x75\xb0\xb5\xb0\xb6\xb0\xb7\x5f\x5e\xb0\xb8\xb0\xb9\xb0\xba\x53\xcf\x5f\x70\xb0\xbb\xb0\xbc\xb0\xbd\xb0\xbe\xb0\xbf\x5f\x74\x51\x83\x4c\x66\xb0\xc0\xb0\xc1\xb0\xc2\xb0\xc3\xb0\xc4\x5f\x6e\x5f\x6f\xb0\xc5\xb0\xc6\xb0\xc7\x5f\x64\xb0\xc8\xb0\xc9", /* 8400 */ "\xb0\xca\x5f\x5d\xb0\xcb\x5f\x6d\x56\xd0\xb0\xcc\x5f\x69\xb0\xcd\xb0\xce\xb0\xcf\xb0\xd0\x5f\x62\x52\x68\x53\xbb\x57\xad\x5f\x6c\xb0\xd1\x5f\x68\xb0\xd2\xb0\xd3\xb0\xd4\xb0\xd5\xb0\xd6\xb0\xd7\x5f\x61\xb0\xd8\xb0\xd9\xb0\xda\x5f\x66\x51\xdb\xb0\xdb\xb0\xdc\xb0\xdd\xb0\xde\xb0\xdf\xb0\xe0\x5a\x49\x5a\x4a\x5f\x73\x58\x95\x54\xf7\xb0\xe1\xb0\xe2\xb0\xe3\xb0\xe4\xb0\xe5\xb0\xe6\xb0\xe7\xb0\xe8\x5f\x87\xb0\xe9\xb0\xea\xb0\xeb\xb0\xec\xb0\xed\xb0\xee\x5f\x67\xb0\xef\xb0\xf0\xb0\xf1\x5f\x81\x51\xe3\xb0\xf2\xb0\xf3\xb0\xf4\xb0\xf5\xb0\xf6\xb0\xf7\xb0\xf8\xb0\xf9\x5f\x82\xb0\xfa\xb0\xfb\xb0\xfc\xb0\xfd\xb1\x41\xb1\x42\xb1\x43\xb1\x44\xb1\x45\xb1\x46\x5f\x77\xb1\x47\xb1\x48\xb1\x49\xb1\x4a\xb1\x4b\x5b\xf7\xb1\x4c\x5f\x79\x5f\x78\x4c\xef\x5f\x76\xb1\x4d\xb1\x4e\xb1\x4f\xb1\x50\x53\xce\xb1\x51\x4b\xac\xb1\x52\xb1\x53\xb1\x54\xb1\x55\xb1\x56\x5f\x83\xb1\x57\x4d\xf8\x5a\xe0\x5f\x88\xb1\x58\xb1\x59\xb1\x5a\x4a\xcf\xb1\x5b\x5f\x7a\xb1\x5c\x50\x9c\x5f\x84\xb1\x5d\x5f\x7f\xb1\x5e\x5f\x7d\xb1\x5f\xb1\x60\xb1\x61\xb1\x62\xb1\x63", /* 8480 */ "\xb1\x64\xb1\x65\x4b\x79\xb1\x66\xb1\x67\xb1\x68\xb1\x69\x5f\x7b\x5f\x7c\x5f\x7e\xb1\x6a\x4f\x4f\x5f\x85\xb1\x6b\x5f\x86\xb1\x6c\xb1\x6d\xb1\x6e\xb1\x6f\xb1\x70\xb1\x71\xb1\x72\xb1\x73\x5f\x96\xb1\x74\x52\x69\xb1\x75\xb1\x76\x56\x83\xb1\x77\xb1\x78\xb1\x79\xb1\x7a\x5f\x93\xb1\x7b\xb1\x7c\xb1\x7d\xb1\x7e\xb1\x7f\xb1\x81\xb1\x82\xb1\x83\xb1\x84\xb1\x85\xb1\x86\xb1\x87\xb1\x88\x5c\xe0\xb1\x89\xb1\x8a\x53\xd0\xb1\x8b\x5f\x95\xb1\x8c\xb1\x8d\xb1\x8e\x5b\x95\x5f\x94\x5f\x91\xb1\x8f\xb1\x90\x5f\x8d\xb1\x91\x5f\x90\xb1\x92\x5f\x89\xb1\x93\xb1\x94\x58\xed\xb1\x95\xb1\x96\xb1\x97\xb1\x98\x54\xd7\x5f\x8f\xb1\x99\xb1\x9a\x5f\x8a\xb1\x9b\xb1\x9c\x5f\x8b\x56\x93\xb1\x9d\x5f\x8e\xb1\x9e\xb1\x9f\x49\x6d\xb1\xa0\xb1\xa1\xb1\xa2\xb1\xa3\xb1\xa4\xb1\xa5\x50\xb5\xb1\xa6\x4e\xba\x5f\x92\xb1\xa7\xb1\xa8\x5f\x98\xb1\xa9\x5f\x97\x5f\x8c\xb1\xaa\xb1\xab\xb1\xac\xb1\xad\xb1\xae\x53\x8f\xb1\xaf\xb1\xb0\xb1\xb1\x5f\x9c\xb1\xb2\xb1\xb3\xb1\xb4\xb1\xb5\xb1\xb6\xb1\xb7\xb1\xb8\xb1\xb9\xb1\xba\xb1\xbb\xb1\xbc\x5f\xa3\xb1\xbd\xb1\xbe\x5f\xa2", /* 8500 */ "\xb1\xbf\xb1\xc0\xb1\xc1\xb1\xc2\xb1\xc3\xb1\xc4\xb1\xc5\xb1\xc6\xb1\xc7\xb1\xc8\xb1\xc9\xb1\xca\x5f\x99\xb1\xcb\xb1\xcc\xb1\xcd\xb1\xce\x52\x90\xb1\xcf\x51\xfa\xb1\xd0\xb1\xd1\xb1\xd2\x5b\x82\xb1\xd3\xb1\xd4\x57\xb4\xb1\xd5\xb1\xd6\xb1\xd7\xb1\xd8\x5f\x9e\xb1\xd9\x49\xcb\xb1\xda\xb1\xdb\xb1\xdc\xb1\xdd\xb1\xde\xb1\xdf\xb1\xe0\xb1\xe1\xb1\xe2\x52\xe7\x55\xde\xb1\xe3\xb1\xe4\xb1\xe5\xb1\xe6\xb1\xe7\xb1\xe8\xb1\xe9\xb1\xea\xb1\xeb\xb1\xec\x54\x5e\x5f\x9b\x5f\x9d\x5f\x9f\x5f\xa1\x48\xa9\x49\x6e\xb1\xed\xb1\xee\xb1\xef\xb1\xf0\xb1\xf1\x5f\xab\xb1\xf2\xb1\xf3\xb1\xf4\xb1\xf5\x5f\xa5\x4f\x56\x54\xee\xb1\xf6\xb1\xf7\xb1\xf8\xb1\xf9\xb1\xfa\xb1\xfb\xb1\xfc\xb1\xfd\xb2\x41\xb2\x42\xb2\x43\x5f\xa0\xb2\x44\xb2\x45\x5f\xa4\xb2\x46\xb2\x47\xb2\x48\xb2\x49\x5f\xa8\xb2\x4a\xb2\x4b\xb2\x4c\xb2\x4d\xb2\x4e\x5f\xa7\xb2\x4f\xb2\x50\xb2\x51\x5f\xa6\xb2\x52\xb2\x53\xb2\x54\xb2\x55\xb2\x56\xb2\x57\xb2\x58\xb2\x59\xb2\x5a\x5f\xac\xb2\x5b\x5a\xcb\xb2\x5c\xb2\x5d\xb2\x5e\xb2\x5f\x5f\xb2\x5f\xa9\x5f\xad\xb2\x60\xb2\x61\x50\xd8\xb2\x62", /* 8580 */ "\xb2\x63\xb2\x64\xb2\x65\xb2\x66\x49\x41\x5f\xb5\xb2\x67\x5f\xb0\xb2\x68\xb2\x69\xb2\x6a\xb2\x6b\xb2\x6c\xb2\x6d\xb2\x6e\x5f\xb1\xb2\x6f\xb2\x70\xb2\x71\xb2\x72\xb2\x73\xb2\x74\xb2\x75\xb2\x76\xb2\x77\xb2\x78\xb2\x79\x59\x46\x5f\xb4\xb2\x7a\xb2\x7b\xb2\x7c\xb2\x7d\xb2\x7e\xb2\x7f\xb2\x81\x5f\xae\xb2\x82\xb2\x83\xb2\x84\x5f\xaf\xb2\x85\x58\xbc\xb2\x86\xb2\x87\xb2\x88\x5f\xb3\x55\xec\x5f\xb8\xb2\x89\xb2\x8a\xb2\x8b\xb2\x8c\xb2\x8d\xb2\x8e\x5f\xb7\xb2\x8f\x5f\xb6\xb2\x90\xb2\x91\xb2\x92\xb2\x93\xb2\x94\xb2\x95\xb2\x96\x5f\xba\xb2\x97\xb2\x98\xb2\x99\xb2\x9a\xb2\x9b\xb2\x9c\xb2\x9d\x4f\x86\xb2\x9e\xb2\x9f\xb2\xa0\xb2\xa1\xb2\xa2\x49\xd7\x52\x8b\xb2\xa3\xb2\xa4\x5f\xb9\xb2\xa5\x53\x5a\xb2\xa6\xb2\xa7\xb2\xa8\xb2\xa9\xb2\xaa\xb2\xab\x5f\xbb\xb2\xac\xb2\xad\xb2\xae\xb2\xaf\xb2\xb0\xb2\xb1\xb2\xb2\x56\xd8\xb2\xb3\xb2\xb4\xb2\xb5\xb2\xb6\x4c\x4a\xb2\xb7\xb2\xb8\xb2\xb9\xb2\xba\xb2\xbb\xb2\xbc\xb2\xbd\xb2\xbe\xb2\xbf\xb2\xc0\xb2\xc1\xb2\xc2\xb2\xc3\xb2\xc4\xb2\xc5\xb2\xc6\xb2\xc7\x5a\xe4\xb2\xc8\xb2\xc9\xb2\xca\x5f\xbc", /* 8600 */ "\xb2\xcb\xb2\xcc\xb2\xcd\xb2\xce\xb2\xcf\x5f\xbe\xb2\xd0\xb2\xd1\xb2\xd2\xb2\xd3\xb2\xd4\xb2\xd5\xb2\xd6\xb2\xd7\xb2\xd8\xb2\xd9\xb2\xda\x52\xa1\xb2\xdb\xb2\xdc\xb2\xdd\xb2\xde\x5f\xc0\xb2\xdf\xb2\xe0\xb2\xe1\xb2\xe2\xb2\xe3\xb2\xe4\xb2\xe5\xb2\xe6\xb2\xe7\xb2\xe8\xb2\xe9\xb2\xea\xb2\xeb\xb2\xec\xb2\xed\xb2\xee\x5f\xbd\xb2\xef\x5f\xbf\xb2\xf0\xb2\xf1\xb2\xf2\xb2\xf3\xb2\xf4\xb2\xf5\xb2\xf6\xb2\xf7\xb2\xf8\xb2\xf9\xb2\xfa\xb2\xfb\xb2\xfc\xb2\xfd\x5b\x5a\xb3\x41\xb3\x42\xb3\x43\x5f\xc1\xb3\x44\xb3\x45\xb3\x46\xb3\x47\xb3\x48\xb3\x49\xb3\x4a\xb3\x4b\xb3\x4c\xb3\x4d\xb3\x4e\xb3\x4f\xb3\x50\xb3\x51\xb3\x52\xb3\x53\x69\xad\x4e\x42\x51\xb1\x53\x50\x51\xc6\xb3\x54\xb3\x55\x69\xae\xb3\x56\xb3\x57\xb3\x58\xb3\x59\xb3\x5a\x58\xe8\xb3\x5b\xb3\x5c\xb3\x5d\x5a\x7d\xb3\x5e\xb3\x5f\xb3\x60\x66\x5d\xb3\x61\xb3\x62\xb3\x63\xb3\x64\xb3\x65\xb3\x66\xb3\x67\xb3\x68\x4a\x87\x69\xaf\xb3\x69\x69\xb0\xb3\x6a\xb3\x6b\x55\xac\xb3\x6c\xb3\x6d\xb3\x6e\xb3\x6f\xb3\x70\xb3\x71\xb3\x72\x4d\xe6\x69\xb2\x69\xb4\x69\xb3\x56\x85\x58\x5a\x69\xb1", /* 8680 */ "\x55\xb3\x59\xce\x51\xeb\xb3\x73\xb3\x74\xb3\x75\xb3\x76\xb3\x77\xb3\x78\xb3\x79\x57\xc2\x69\xb7\x48\xf5\x69\xb6\xb3\x7a\xb3\x7b\xb3\x7c\xb3\x7d\xb3\x7e\x69\xbd\xb3\x7f\x49\xce\xb3\x81\xb3\x82\xb3\x83\xb3\x84\xb3\x85\xb3\x86\x59\x61\x69\xb9\xb3\x87\xb3\x88\xb3\x89\xb3\x8a\xb3\x8b\x69\xbb\x5a\xe8\xb3\x8c\xb3\x8d\x69\xba\x69\xb5\x69\xbe\x69\xbc\xb3\x8e\x69\xb8\xb3\x8f\xb3\x90\x69\xc6\x69\xc3\x69\xc5\xb3\x91\xb3\x92\x69\xc9\x69\xc1\x69\xbf\xb3\x93\xb3\x94\xb3\x95\x69\xc4\xb3\x96\xb3\x97\xb3\x98\xb3\x99\xb3\x9a\x5b\xfa\xb3\x9b\xb3\x9c\xb3\x9d\x69\xc0\xb3\x9e\x54\x9a\x55\x7f\xb3\x9f\x69\xc7\x4d\x66\x4b\x50\xb3\xa0\xb3\xa1\x69\xc2\x69\xc8\x69\xcf\x69\xd5\xb3\xa2\xb3\xa3\x4e\x77\xb3\xa4\xb3\xa5\xb3\xa6\x69\xd4\x57\x7c\xb3\xa7\x5b\xea\xb3\xa8\xb3\xa9\x69\xd1\x69\xd3\xb3\xaa\xb3\xab\xb3\xac\xb3\xad\x4c\xf1\xb3\xae\xb3\xaf\xb3\xb0\xb3\xb1\x69\xca\xb3\xb2\xb3\xb3\xb3\xb4\x69\xcd\x51\xf8\xb3\xb5\x5b\x7d\x69\xcb\x69\xcc\x69\xce\x69\xd2\xb3\xb6\xb3\xb7\xb3\xb8\x69\xd8\x5a\x5c\xb3\xb9\xb3\xba\xb3\xbb\xb3\xbc\x4b\xe9\xb3\xbd", /* 8700 */ "\x55\xf0\xb3\xbe\x4c\x85\x69\xd6\xb3\xbf\xb3\xc0\xb3\xc1\x69\xd7\x69\xd9\x69\xdc\x69\xda\xb3\xc2\xb3\xc3\x69\xdb\xb3\xc4\xb3\xc5\xb3\xc6\xb3\xc7\x59\x71\x69\xd0\xb3\xc8\x57\x69\xb3\xc9\x57\xce\x5b\xa8\xb3\xca\x69\xe2\xb3\xcb\x52\x7b\xb3\xcc\x69\xdf\xb3\xcd\xb3\xce\x50\xae\x69\xeb\x69\xdd\xb3\xcf\x69\xe0\xb3\xd0\xb3\xd1\xb3\xd2\x69\xe7\xb3\xd3\xb3\xd4\xb3\xd5\xb3\xd6\x69\xe1\xb3\xd7\xb3\xd8\x69\xe6\xb3\xd9\xb3\xda\x69\xe5\xb3\xdb\xb3\xdc\x69\xe8\xb3\xdd\xb3\xde\xb3\xdf\x69\xde\xb3\xe0\xb3\xe1\x69\xe3\x69\xe9\xb3\xe2\xb3\xe3\xb3\xe4\xb3\xe5\xb3\xe6\xb3\xe7\xb3\xe8\x5a\x4c\x69\xe4\x49\xf4\xb3\xe9\xb3\xea\x69\xf1\xb3\xeb\x58\xaa\xb3\xec\xb3\xed\xb3\xee\xb3\xef\x69\xf4\xb3\xf0\xb3\xf1\xb3\xf2\x4e\x68\xb3\xf3\x69\xf8\xb3\xf4\xb3\xf5\xb3\xf6\xb3\xf7\xb3\xf8\xb3\xf9\x69\xef\xb3\xfa\xb3\xfb\x69\xf5\x69\xf7\x69\xf9\xb3\xfc\xb3\xfd\xb4\x41\xb4\x42\xb4\x43\xb4\x44\xb4\x45\xb4\x46\x69\xf2\xb4\x47\x69\xf0\xb4\x48\xb4\x49\xb4\x4a\x4d\xfa\xb4\x4b\x4b\x9c\xb4\x4c\xb4\x4d\xb4\x4e\xb4\x4f\x69\xee\x69\xf6\x69\xec\x69\xed\xb4\x50", /* 8780 */ "\xb4\x51\xb4\x52\x69\xea\x6a\x46\xb4\x53\x6a\x43\xb4\x54\xb4\x55\x6a\x42\xb4\x56\xb4\x57\x69\xf3\xb4\x58\x54\xd9\xb4\x59\xb4\x5a\xb4\x5b\xb4\x5c\xb4\x5d\x69\xfa\xb4\x5e\xb4\x5f\xb4\x60\x6a\x45\xb4\x61\xb4\x62\xb4\x63\xb4\x64\xb4\x65\xb4\x66\xb4\x67\x52\x99\xb4\x68\xb4\x69\xb4\x6a\xb4\x6b\xb4\x6c\xb4\x6d\xb4\x6e\xb4\x6f\x69\xfc\xb4\x70\xb4\x71\x6a\x47\x6a\x49\x6a\x44\xb4\x72\x69\xfb\xb4\x73\xb4\x74\xb4\x75\x6a\x4b\xb4\x76\x6a\x4a\xb4\x77\xb4\x78\xb4\x79\xb4\x7a\x51\xdc\xb4\x7b\xb4\x7c\x6a\x4e\xb4\x7d\xb4\x7e\x6a\x50\xb4\x7f\xb4\x81\xb4\x82\xb4\x83\xb4\x84\x6a\x41\xb4\x85\xb4\x86\xb4\x87\x6a\x51\x6a\x4c\xb4\x88\xb4\x89\xb4\x8a\xb4\x8b\xb4\x8c\x6a\x4f\x69\xfd\x6a\x4d\xb4\x8d\xb4\x8e\xb4\x8f\xb4\x90\xb4\x91\xb4\x92\xb4\x93\x6a\x52\xb4\x94\xb4\x95\xb4\x96\xb4\x97\x6a\x54\xb4\x98\xb4\x99\xb4\x9a\xb4\x9b\x6a\x48\xb4\x9c\xb4\x9d\xb4\x9e\xb4\x9f\x6a\x53\xb4\xa0\xb4\xa1\xb4\xa2\x6a\x55\xb4\xa3\xb4\xa4\xb4\xa5\xb4\xa6\xb4\xa7\xb4\xa8\xb4\xa9\xb4\xaa\xb4\xab\xb4\xac\x58\xb6\xb4\xad\xb4\xae\xb4\xaf\xb4\xb0\x6a\x58\xb4\xb1", /* 8800 */ "\xb4\xb2\xb4\xb3\xb4\xb4\x5d\x9a\xb4\xb5\xb4\xb6\xb4\xb7\xb4\xb8\xb4\xb9\xb4\xba\x6a\x59\xb4\xbb\xb4\xbc\xb4\xbd\xb4\xbe\xb4\xbf\xb4\xc0\xb4\xc1\xb4\xc2\x6a\x57\xb4\xc3\x54\xe3\x6a\x56\xb4\xc4\xb4\xc5\xb4\xc6\xb4\xc7\x6a\x5a\xb4\xc8\xb4\xc9\xb4\xca\xb4\xcb\xb4\xcc\x6a\x5b\x4a\xbf\xb4\xcd\xb4\xce\xb4\xcf\xb4\xd0\xb4\xd1\xb4\xd2\xb4\xd3\xb4\xd4\xb4\xd5\xb4\xd6\xb4\xd7\xb4\xd8\xb4\xd9\xb4\xda\xb4\xdb\x67\xc2\xb4\xdc\xb4\xdd\xb4\xde\xb4\xdf\xb4\xe0\xb4\xe1\x6a\x5c\xb4\xe2\xb4\xe3\x6a\x5d\xb4\xe4\xb4\xe5\xb4\xe6\x59\x4a\xb4\xe7\xb4\xe8\xb4\xe9\x6a\xab\x58\xc5\xb4\xea\xb4\xeb\xb4\xec\xb4\xed\xb4\xee\xb4\xef\x58\xcf\x59\x7c\xb4\xf0\xb4\xf1\xb4\xf2\xb4\xf3\xb4\xf4\xb4\xf5\x58\x6e\xb4\xf6\xb4\xf7\x4f\x76\xb4\xf8\x59\x63\xb4\xf9\xb4\xfa\xb4\xfb\xb4\xfc\xb4\xfd\xb5\x41\xb5\x42\x4d\xe1\x61\x8a\x59\xc1\x69\x62\x49\xb8\xb5\x43\xb5\x44\x49\x8e\x69\x63\xb5\x45\x55\x60\x4a\x64\xb5\x46\x5d\x93\xb5\x47\x56\x45\xb5\x48\x69\x64\xb5\x49\xb5\x4a\xb5\x4b\xb5\x4c\x5b\xd3\xb5\x4d\xb5\x4e\xb5\x4f\xb5\x50\xb5\x51\x69\x65\x6a\xbf\x69\x66", /* 8880 */ "\xb5\x52\x5a\xab\x69\x67\xb5\x53\x48\xbf\x6a\xc0\xb5\x54\xb5\x55\x6a\xc1\xb5\x56\xb5\x57\x4a\xfb\xb5\x58\x53\x7b\xb5\x59\xb5\x5a\xb5\x5b\xb5\x5c\x56\xba\xb5\x5d\xb5\x5e\xb5\x5f\x58\xe3\xb5\x60\xb5\x61\xb5\x62\xb5\x63\xb5\x64\x57\x81\xb5\x65\xb5\x66\xb5\x67\xb5\x68\xb5\x69\x69\x68\xb5\x6a\x5d\x94\xb5\x6b\xb5\x6c\xb5\x6d\xb5\x6e\xb5\x6f\xb5\x70\x49\x5b\xb5\x71\x58\x4e\xb5\x72\xb5\x73\xb5\x74\x4c\xa3\xb5\x75\xb5\x76\xb5\x77\xb5\x78\xb5\x79\x69\x6a\xb5\x7a\xb5\x7b\xb5\x7c\xb5\x7d\x69\x6b\xb5\x7e\xb5\x7f\xb5\x81\xb5\x82\x49\xc2\x51\x71\xb5\x83\xb5\x84\x5c\x50\x69\x69\xb5\x85\xb5\x86\x69\x6c\xb5\x87\xb5\x88\xb5\x89\xb5\x8a\x69\x6e\xb5\x8b\xb5\x8c\xb5\x8d\x5d\x97\xb5\x8e\x59\xe0\x5a\xa2\xb5\x8f\xb5\x90\x6a\xc2\x54\xb8\xb5\x91\xb5\x92\xb5\x93\xb5\x94\xb5\x95\x6a\xc3\xb5\x96\xb5\x97\x69\x6d\x69\x6f\x50\x84\x69\x70\xb5\x98\xb5\x99\x69\x74\xb5\x9a\xb5\x9b\xb5\x9c\xb5\x9d\xb5\x9e\xb5\x9f\xb5\xa0\x69\x76\x69\x71\xb5\xa1\x55\x71\x53\x82\xb5\xa2\xb5\xa3\xb5\xa4\x51\xe2\x4d\x9d\xb5\xa5\xb5\xa6\x69\x73\xb5\xa7\x69\x75\xb5\xa8", /* 8900 */ "\xb5\xa9\xb5\xaa\x4d\x73\xb5\xab\xb5\xac\xb5\xad\xb5\xae\xb5\xaf\xb5\xb0\xb5\xb1\x69\x7b\xb5\xb2\xb5\xb3\xb5\xb4\xb5\xb5\xb5\xb6\x4d\xd5\xb5\xb7\x48\xfc\x69\x79\xb5\xb8\xb5\xb9\xb5\xba\xb5\xbb\xb5\xbc\x69\x78\x69\x72\x69\x7a\xb5\xbd\xb5\xbe\xb5\xbf\xb5\xc0\xb5\xc1\x69\x77\xb5\xc2\xb5\xc3\xb5\xc4\x54\xeb\xb5\xc5\xb5\xc6\xb5\xc7\xb5\xc8\x57\x6a\x69\x7d\xb5\xc9\xb5\xca\xb5\xcb\xb5\xcc\x63\x5d\xb5\xcd\xb5\xce\xb5\xcf\x69\x7c\xb5\xd0\x69\x7e\xb5\xd1\xb5\xd2\xb5\xd3\xb5\xd4\xb5\xd5\xb5\xd6\xb5\xd7\xb5\xd8\xb5\xd9\xb5\xda\x69\x7f\xb5\xdb\xb5\xdc\x58\x86\xb5\xdd\xb5\xde\xb5\xdf\xb5\xe0\xb5\xe1\xb5\xe2\xb5\xe3\xb5\xe4\xb5\xe5\xb5\xe6\xb5\xe7\xb5\xe8\xb5\xe9\xb5\xea\xb5\xeb\xb5\xec\xb5\xed\xb5\xee\xb5\xef\xb5\xf0\xb5\xf1\xb5\xf2\xb5\xf3\xb5\xf4\xb5\xf5\x6a\xc4\x4f\x94\xb5\xf6\xb5\xf7\xb5\xf8\xb5\xf9\xb5\xfa\xb5\xfb\x69\x81\xb5\xfc\xb5\xfd\xb6\x41\xb6\x42\xb6\x43\xb6\x44\xb6\x45\xb6\x46\xb6\x47\xb6\x48\xb6\x49\xb6\x4a\xb6\x4b\xb6\x4c\xb6\x4d\xb6\x4e\xb6\x4f\xb6\x50\xb6\x51\xb6\x52\x69\x82\xb6\x53\xb6\x54\xb6\x55\x57\xf6", /* 8980 */ "\xb6\x56\x59\xa9\xb6\x57\x69\x9c\xb6\x58\xb6\x59\x4c\xb1\xb6\x5a\xb6\x5b\xb6\x5c\xb6\x5d\xb6\x5e\xb6\x5f\xb6\x60\xb6\x61\xb6\x62\xb6\x63\xb6\x64\xb6\x65\xb6\x66\xb6\x67\xb6\x68\xb6\x69\xb6\x6a\xb6\x6b\xb6\x6c\xb6\x6d\xb6\x6e\xb6\x6f\xb6\x70\xb6\x71\xb6\x72\xb6\x73\xb6\x74\xb6\x75\xb6\x76\xb6\x77\xb6\x78\xb6\x79\xb6\x7a\xb6\x7b\xb6\x7c\xb6\x7d\xb6\x7e\xb6\x7f\xb6\x81\xb6\x82\xb6\x83\xb6\x84\xb6\x85\xb6\x86\xb6\x87\xb6\x88\xb6\x89\xb6\x8a\xb6\x8b\xb6\x8c\xb6\x8d\xb6\x8e\xb6\x8f\xb6\x90\xb6\x91\xb6\x92\xb6\x93\xb6\x94\x4e\xfa\x4d\x7b\xb6\x95\x4d\x87\x52\x79\x55\xd2\x65\xe7\x50\xbf\x4f\xf4\x65\xe8\x65\xe9\x65\xea\xb6\x96\x65\xeb\x65\xec\x65\xed\x65\xee\x4f\x67\xb6\x97\xb6\x98\xb6\x99\x6b\x9c\xb6\x9a\xb6\x9b\xb6\x9c\x6b\x9e\xb6\x9d\x6b\x9f\xb6\x9e\x6b\x9d\xb6\x9f\xb6\xa0\xb6\xa1\xb6\xa2\x4f\x83\xb6\xa3\x6b\xa0\x4a\xa4\xb6\xa4\xb6\xa5\xb6\xa6\xb6\xa7\x6b\xa1\xb6\xa8\xb6\xa9\xb6\xaa\x6b\xa2\xb6\xab\xb6\xac\xb6\xad\x66\xb1\xb6\xae\xb6\xaf\xb6\xb0\xb6\xb1\xb6\xb2\xb6\xb3\xb6\xb4\xb6\xb5\xb6\xb6\xb6\xb7\xb6\xb8\xb6\xb9", /* 8a00 */ "\x59\x74\xb6\xba\xb6\xbb\xb6\xbc\xb6\xbd\xb6\xbe\xb6\xbf\x5d\x8b\xb6\xc0\xb6\xc1\xb6\xc2\xb6\xc3\xb6\xc4\xb6\xc5\xb6\xc6\xb6\xc7\xb6\xc8\xb6\xc9\xb6\xca\xb6\xcb\xb6\xcc\xb6\xcd\xb6\xce\xb6\xcf\xb6\xd0\xb6\xd1\xb6\xd2\xb6\xd3\xb6\xd4\xb6\xd5\xb6\xd6\xb6\xd7\xb6\xd8\xb6\xd9\xb6\xda\xb6\xdb\xb6\xdc\xb6\xdd\xb6\xde\xb6\xdf\xb6\xe0\xb6\xe1\xb6\xe2\xb6\xe3\xb6\xe4\xb6\xe5\xb6\xe6\xb6\xe7\xb6\xe8\xb6\xe9\xb6\xea\xb6\xeb\xb6\xec\xb6\xed\xb6\xee\xb6\xef\xb6\xf0\xb6\xf1\xb6\xf2\xb6\xf3\xb6\xf4\xb6\xf5\x6b\xa3\xb6\xf6\xb6\xf7\xb6\xf8\xb6\xf9\xb6\xfa\xb6\xfb\xb6\xfc\xb6\xfd\xb7\x41\x67\xb9\xb7\x42\xb7\x43\xb7\x44\xb7\x45\xb7\x46\xb7\x47\xb7\x48\xb7\x49\xb7\x4a\xb7\x4b\xb7\x4c\xb7\x4d\xb7\x4e\xb7\x4f\xb7\x50\xb7\x51\xb7\x52\xb7\x53\xb7\x54\xb7\x55\xb7\x56\xb7\x57\xb7\x58\xb7\x59\xb7\x5a\xb7\x5b\xb7\x5c\xb7\x5d\xb7\x5e\xb7\x5f\xb7\x60\xb7\x61\xb7\x62\xb7\x63\xb7\x64\xb7\x65\xb7\x66\xb7\x67\xb7\x68\xb7\x69\xb7\x6a\xb7\x6b\xb7\x6c\xb7\x6d\xb7\x6e\xb7\x6f\xb7\x70\xb7\x71\x5b\x52\xb7\x72\xb7\x73\xb7\x74\xb7\x75\xb7\x76\xb7\x77", /* 8a80 */ "\xb7\x78\xb7\x79\xb7\x7a\xb7\x7b\xb7\x7c\xb7\x7d\xb7\x7e\xb7\x7f\xb7\x81\x5a\x9f\x56\xdb\xb7\x82\xb7\x83\xb7\x84\xb7\x85\xb7\x86\xb7\x87\xb7\x88\xb7\x89\x55\xc3\xb7\x8a\xb7\x8b\xb7\x8c\xb7\x8d\xb7\x8e\xb7\x8f\xb7\x90\xb7\x91\xb7\x92\xb7\x93\xb7\x94\xb7\x95\xb7\x96\xb7\x97\xb7\x98\xb7\x99\xb7\x9a\xb7\x9b\xb7\x9c\xb7\x9d\xb7\x9e\xb7\x9f\xb7\xa0\xb7\xa1\xb7\xa2\xb7\xa3\xb7\xa4\xb7\xa5\xb7\xa6\xb7\xa7\xb7\xa8\xb7\xa9\xb7\xaa\xb7\xab\xb7\xac\xb7\xad\xb7\xae\xb7\xaf\xb7\xb0\xb7\xb1\xb7\xb2\xb7\xb3\xb7\xb4\xb7\xb5\xb7\xb6\xb7\xb7\xb7\xb8\xb7\xb9\xb7\xba\xb7\xbb\xb7\xbc\xb7\xbd\xb7\xbe\xb7\xbf\xb7\xc0\xb7\xc1\xb7\xc2\xb7\xc3\xb7\xc4\xb7\xc5\xb7\xc6\xb7\xc7\xb7\xc8\xb7\xc9\xb7\xca\xb7\xcb\xb7\xcc\xb7\xcd\xb7\xce\xb7\xcf\xb7\xd0\xb7\xd1\xb7\xd2\xb7\xd3\xb7\xd4\xb7\xd5\xb7\xd6\xb7\xd7\xb7\xd8\xb7\xd9\xb7\xda\xb7\xdb\xb7\xdc\xb7\xdd\xb7\xde\xb7\xdf\xb7\xe0\xb7\xe1\xb7\xe2\xb7\xe3\xb7\xe4\xb7\xe5\xb7\xe6\xb7\xe7\xb7\xe8\xb7\xe9\xb7\xea\xb7\xeb\xb7\xec\xb7\xed\xb7\xee\xb7\xef\xb7\xf0\xb7\xf1\xb7\xf2\xb7\xf3\xb7\xf4\xb7\xf5", /* 8b00 */ "\xb7\xf6\xb7\xf7\xb7\xf8\xb7\xf9\xb7\xfa\xb7\xfb\xb7\xfc\x63\x60\xb7\xfd\xb8\x41\xb8\x42\xb8\x43\xb8\x44\xb8\x45\xb8\x46\xb8\x47\xb8\x48\xb8\x49\xb8\x4a\xb8\x4b\xb8\x4c\xb8\x4d\xb8\x4e\xb8\x4f\xb8\x50\xb8\x51\xb8\x52\xb8\x53\xb8\x54\xb8\x55\xb8\x56\xb8\x57\xb8\x58\xb8\x59\xb8\x5a\xb8\x5b\xb8\x5c\xb8\x5d\x6b\xa4\xb8\x5e\xb8\x5f\xb8\x60\xb8\x61\xb8\x62\xb8\x63\xb8\x64\xb8\x65\xb8\x66\xb8\x67\xb8\x68\xb8\x69\xb8\x6a\xb8\x6b\xb8\x6c\xb8\x6d\xb8\x6e\xb8\x6f\xb8\x70\xb8\x71\xb8\x72\xb8\x73\xb8\x74\xb8\x75\xb8\x76\xb8\x77\xb8\x78\xb8\x79\xb8\x7a\xb8\x7b\xb8\x7c\xb8\x7d\xb8\x7e\xb8\x7f\xb8\x81\xb8\x82\xb8\x83\xb8\x84\xb8\x85\xb8\x86\xb8\x87\xb8\x88\xb8\x89\xb8\x8a\xb8\x8b\xb8\x8c\xb8\x8d\xb8\x8e\xb8\x8f\xb8\x90\xb8\x91\xb8\x92\xb8\x93\xb8\x94\xb8\x95\xb8\x96\xb8\x97\xb8\x98\xb8\x99\xb8\x9a\xb8\x9b\xb8\x9c\xb8\x9d\x4f\xae\xb8\x9e\xb8\x9f\xb8\xa0\xb8\xa1\xb8\xa2\x53\xa8\xb8\xa3\xb8\xa4\xb8\xa5\xb8\xa6\xb8\xa7\xb8\xa8\xb8\xa9\xb8\xaa\xb8\xab\xb8\xac\xb8\xad\xb8\xae\xb8\xaf\xb8\xb0\xb8\xb1\xb8\xb2\xb8\xb3\xb8\xb4\xb8\xb5", /* 8b80 */ "\xb8\xb6\xb8\xb7\xb8\xb8\xb8\xb9\xb8\xba\xb8\xbb\xb8\xbc\xb8\xbd\xb8\xbe\xb8\xbf\xb8\xc0\xb8\xc1\xb8\xc2\xb8\xc3\xb8\xc4\xb8\xc5\xb8\xc6\xb8\xc7\xb8\xc8\xb8\xc9\xb8\xca\xb8\xcb\xb8\xcc\xb8\xcd\xb8\xce\xb8\xcf\xb8\xd0\xb8\xd1\xb8\xd2\xb8\xd3\xb8\xd4\xb8\xd5\x5d\xa4\x4e\xc5\x4b\xa8\x4c\xbb\x54\xce\x4e\xa4\x5d\xa5\x5d\xa6\x56\xd5\x54\xc2\x5d\xa7\x53\xfc\xb8\xd6\x59\x55\x59\xe8\x59\x56\x4e\xc6\xb8\xd7\x4f\x52\x4e\x85\x5d\xa8\x5d\xa9\x59\x68\x5d\xaa\x58\xec\x4b\xee\x51\xda\xb8\xd8\x56\x6f\x4c\x8e\x55\x89\x4c\x63\x4f\xf6\x5b\xa3\x5d\xab\x5d\xac\x53\xbf\x5c\x88\x55\xb5\xb8\xd9\x5b\x49\x56\x7f\x5b\x90\x5d\xad\x5b\xde\x4a\xc9\x5d\xaf\x5d\xae\xb8\xda\x59\xea\x5d\xb0\x5d\xb1\x5d\xb2\x55\xd3\x5d\xb3\x55\xaa\x5d\xb4\x5d\xb5\x4a\x6f\x5b\xee\x5d\xb6\x4e\x50\x4b\x4e\x5d\xb7\x5d\xb8\x4d\x8f\x59\x4f\x59\xe7\x5d\xb9\x4c\xc2\x58\x8b\x49\xee\x5d\xba\x5d\xbb\xb8\xdb\x4f\x8c\x57\xdb\x5a\x90\x5d\xbc\x57\xf2\x5d\xbd\x5a\x75\x4e\x86\x5d\xbe\x56\x55\x56\x70\x5d\xbf\x54\x8c\x5b\xed\x5d\xc0\x53\x55\x4b\xc0\x5d\xc1\x4c\x6c\x50\x6e\x5d\xc2", /* 8c00 */ "\x5d\xc3\x56\x4d\x5d\xc4\x4b\x98\x5d\xc5\x51\x62\x5c\x5b\x5d\xc6\x56\xb7\xb8\xdc\x59\xe9\x52\xb0\x5d\xc7\x4b\x9e\x4e\x71\x5d\xc8\x58\xb2\x5d\xc9\x5d\xca\x57\xbc\x5d\xcb\x5d\xcc\x5d\xcd\x49\xf6\x5d\xd0\x5d\xce\x59\x89\x5d\xcf\x52\x75\x5d\xd1\xb8\xdd\x5d\xd2\x5d\xd3\x5d\xd4\x58\xba\x59\xa4\x48\xf8\x5d\xd5\x54\x4b\x5d\xd6\x4f\x98\x52\x41\x5d\xd7\x5d\xd8\x52\x9e\x56\xb6\x5d\xd9\x5d\xda\x50\xbd\x53\xd6\x5d\xdb\x5d\xdc\x54\x54\x5d\xdd\x5d\xde\x4d\x68\xb8\xde\xb8\xdf\xb8\xe0\xb8\xe1\xb8\xe2\xb8\xe3\xb8\xe4\xb8\xe5\xb8\xe6\x4e\x8e\xb8\xe7\xb8\xe8\xb8\xe9\xb8\xea\x4b\xb8\x6a\xf7\xb8\xeb\x6a\xf8\xb8\xec\xb8\xed\x57\x84\xb8\xee\xb8\xef\xb8\xf0\xb8\xf1\xb8\xf2\xb8\xf3\xb8\xf4\xb8\xf5\x6b\x59\xb8\xf6\xb8\xf7\xb8\xf8\xb8\xf9\x66\x81\xb8\xfa\xb8\xfb\xb8\xfc\xb8\xfd\xb9\x41\xb9\x42\x58\x94\x4e\x5f\xb9\x43\xb9\x44\xb9\x45\xb9\x46\xb9\x47\xb9\x48\xb9\x49\x4d\xbf\x5a\xa4\xb9\x4a\xb9\x4b\xb9\x4c\xb9\x4d\xb9\x4e\xb9\x4f\xb9\x50\x61\x79\xb9\x51\xb9\x52\xb9\x53\xb9\x54\x6b\x95\x49\x4a\x49\xf1\xb9\x55\xb9\x56\xb9\x57\xb9\x58\xb9\x59", /* 8c80 */ "\xb9\x5a\xb9\x5b\x6b\x96\xb9\x5c\xb9\x5d\x6b\x98\xb9\x5e\xb9\x5f\xb9\x60\x4d\xd0\x6b\x97\xb9\x61\x52\x52\xb9\x62\xb9\x63\xb9\x64\xb9\x65\xb9\x66\xb9\x67\xb9\x68\x6b\x9a\xb9\x69\xb9\x6a\xb9\x6b\x6b\x99\xb9\x6c\xb9\x6d\xb9\x6e\xb9\x6f\xb9\x70\xb9\x71\xb9\x72\xb9\x73\xb9\x74\xb9\x75\xb9\x76\xb9\x77\xb9\x78\xb9\x79\xb9\x7a\xb9\x7b\xb9\x7c\xb9\x7d\xb9\x7e\xb9\x7f\xb9\x81\xb9\x82\xb9\x83\xb9\x84\xb9\x85\xb9\x86\xb9\x87\xb9\x88\xb9\x89\xb9\x8a\xb9\x8b\xb9\x8c\xb9\x8d\xb9\x8e\xb9\x8f\xb9\x90\xb9\x91\xb9\x92\xb9\x93\xb9\x94\xb9\x95\xb9\x96\xb9\x97\xb9\x98\xb9\x99\xb9\x9a\xb9\x9b\xb9\x9c\xb9\x9d\xb9\x9e\xb9\x9f\xb9\xa0\xb9\xa1\xb9\xa2\xb9\xa3\xb9\xa4\xb9\xa5\xb9\xa6\xb9\xa7\xb9\xa8\xb9\xa9\xb9\xaa\xb9\xab\xb9\xac\xb9\xad\xb9\xae\xb9\xaf\xb9\xb0\xb9\xb1\xb9\xb2\xb9\xb3\xb9\xb4\xb9\xb5\xb9\xb6\xb9\xb7\xb9\xb8\xb9\xb9\xb9\xba\xb9\xbb\xb9\xbc\xb9\xbd\xb9\xbe\xb9\xbf\xb9\xc0\xb9\xc1\xb9\xc2\xb9\xc3\xb9\xc4\xb9\xc5\xb9\xc6\xb9\xc7\xb9\xc8\xb9\xc9\xb9\xca\xb9\xcb\xb9\xcc\xb9\xcd\xb9\xce\xb9\xcf\xb9\xd0\xb9\xd1\xb9\xd2\xb9\xd3", /* 8d00 */ "\xb9\xd4\xb9\xd5\xb9\xd6\xb9\xd7\xb9\xd8\xb9\xd9\xb9\xda\xb9\xdb\xb9\xdc\xb9\xdd\xb9\xde\xb9\xdf\xb9\xe0\xb9\xe1\xb9\xe2\xb9\xe3\xb9\xe4\xb9\xe5\xb9\xe6\xb9\xe7\xb9\xe8\xb9\xe9\xb9\xea\xb9\xeb\xb9\xec\xb9\xed\xb9\xee\xb9\xef\xb9\xf0\x49\x54\x5b\x8b\x4c\xb9\xb9\xf1\x4d\x51\x49\xc5\x5a\xef\x58\x6d\x48\xdb\x5b\x6b\x4e\x96\x5b\xc9\x4c\x57\x56\xaf\x53\xb5\x49\x82\x4d\x5a\x5b\xfb\x4d\x82\x4c\x41\x4e\xf9\x65\xd9\x65\xda\x56\xf8\x4d\x94\x65\xdb\x4a\xfa\x52\x53\x4c\x71\x4d\xd7\x65\xdc\x5a\xf3\x65\xdd\x4e\xd5\x4e\x7f\x65\xde\x51\x7e\x51\xb7\x5a\xde\x5c\x6a\x65\xdf\x65\xe0\x65\xe3\x65\xe1\x65\xe2\x55\x7e\x4c\xb2\x4b\xc3\x65\xe4\x55\xe9\x55\x6d\x4a\xcc\xb9\xf2\xb9\xf3\x61\xd8\x53\x83\x65\xe5\x50\xb4\xb9\xf4\x5c\x58\x65\xe6\x5c\x4c\x54\xfb\x5c\xd2\x5c\xcc\x5a\xdd\xb9\xf5\x5a\xf8\x55\x64\x5a\x4e\x4c\xd2\x4a\x81\xb9\xf6\x55\x83\x6a\xf5\xb9\xf7\xb9\xf8\xb9\xf9\x4d\xd4\xb9\xfa\x6a\xf6\xb9\xfb\xb9\xfc\x5c\x7f\xb9\xfd\xba\x41\x6a\xf0\x4c\xaf\x5b\x74\x4c\xce\x53\xef\xba\x42\xba\x43\xba\x44\xba\x45\xba\x46\xba\x47\xba\x48\xba\x49", /* 8d80 */ "\xba\x4a\x4a\x63\xba\x4b\xba\x4c\x6a\xf1\x4a\x4c\xba\x4d\xba\x4e\xba\x4f\xba\x50\x5a\xbc\x54\x98\xba\x51\xba\x52\xba\x53\xba\x54\xba\x55\x6a\xf3\xba\x56\xba\x57\x6a\xf2\xba\x58\xba\x59\xba\x5a\xba\x5b\xba\x5c\xba\x5d\xba\x5e\xba\x5f\xba\x60\xba\x61\x56\xca\xba\x62\xba\x63\xba\x64\x54\xa3\xba\x65\xba\x66\xba\x67\xba\x68\xba\x69\xba\x6a\xba\x6b\xba\x6c\xba\x6d\xba\x6e\xba\x6f\xba\x70\xba\x71\x6a\xf4\xba\x72\x5c\x84\x53\x5f\x6b\x60\xba\x73\xba\x74\x6b\x5b\xba\x75\x6b\x63\xba\x76\x6b\x62\xba\x77\x5b\xb9\x6b\x61\xba\x78\xba\x79\xba\x7a\x5a\xbd\x6b\x64\xba\x7b\x6b\x6c\xba\x7c\xba\x7d\xba\x7e\xba\x7f\x48\xce\x4b\x99\xba\x81\x6b\x69\x6b\x6a\xba\x82\x53\x7c\xba\x83\xba\x84\xba\x85\xba\x86\x6b\x65\x6b\x66\xba\x87\xba\x88\x6b\x67\x6b\x6b\xba\x89\x4f\xdf\x6b\x68\x4c\xf9\xba\x8a\xba\x8b\xba\x8c\x6b\x70\x6b\x73\xba\x8d\xba\x8e\xba\x8f\x50\x88\xba\x90\x4d\x93\x6b\x5c\x6b\x6d\xba\x91\xba\x92\x51\xb6\xba\x93\xba\x94\xba\x95\x56\xf7\xba\x96\x4e\xf8\xba\x97\x6b\x6e\x6b\x6f\x6b\x71\x4b\xe4\x6b\x72\xba\x98\x6b\x75\xba\x99\xba\x9a", /* 8e00 */ "\xba\x9b\xba\x9c\xba\x9d\xba\x9e\xba\x9f\x6b\x5d\xba\xa0\xba\xa1\xba\xa2\x6b\x74\x5a\x5b\xba\xa3\x4a\x8d\xba\xa4\xba\xa5\x56\xa3\xba\xa6\xba\xa7\xba\xa8\xba\xa9\x6b\x76\xba\xaa\xba\xab\xba\xac\xba\xad\xba\xae\xba\xaf\xba\xb0\xba\xb1\x6b\x77\x4f\xe0\x6b\x78\xba\xb2\xba\xb3\x56\xde\x6b\x7b\xba\xb4\xba\xb5\xba\xb6\xba\xb7\xba\xb8\x49\xc7\x5c\x79\xba\xb9\x6b\x79\xba\xba\x6b\x7a\x6b\x7c\xba\xbb\x6b\x83\xba\xbc\xba\xbd\xba\xbe\x6b\x81\xba\xbf\xba\xc0\xba\xc1\x6b\x7f\x6b\x7d\xba\xc2\xba\xc3\x6b\x82\xba\xc4\xba\xc5\x6b\x7e\x6b\x85\x6b\x86\xba\xc6\x56\xe2\xba\xc7\xba\xc8\x63\x5f\x4b\x58\x6b\x84\x6b\x89\x56\xa2\xba\xc9\xba\xca\xba\xcb\xba\xcc\xba\xcd\x6b\x87\x6b\x88\xba\xce\xba\xcf\xba\xd0\xba\xd1\xba\xd2\xba\xd3\x6b\x5e\xba\xd4\xba\xd5\xba\xd6\xba\xd7\xba\xd8\xba\xd9\xba\xda\xba\xdb\xba\xdc\xba\xdd\xba\xde\xba\xdf\x49\x64\xba\xe0\xba\xe1\x6b\x5f\xba\xe2\xba\xe3\x4b\x65\x49\xe3\xba\xe4\x6b\x8d\x6b\x8a\xba\xe5\x4b\xd6\xba\xe6\x6b\x8e\xba\xe7\x6b\x8b\xba\xe8\xba\xe9\xba\xea\xba\xeb\xba\xec\x6b\x8c\xba\xed\xba\xee\x4a\xd9", /* 8e80 */ "\xba\xef\x5a\xe9\xba\xf0\xba\xf1\xba\xf2\x6b\x8f\xba\xf3\x4a\x9a\xba\xf4\xba\xf5\xba\xf6\xba\xf7\xba\xf8\xba\xf9\xba\xfa\x6b\x90\x6b\x92\xba\xfb\xba\xfc\xba\xfd\x6b\x91\xbb\x41\xbb\x42\xbb\x43\xbb\x44\xbb\x45\xbb\x46\xbb\x47\x6b\x93\xbb\x48\x6b\x94\xbb\x49\xbb\x4a\xbb\x4b\xbb\x4c\xbb\x4d\xbb\x4e\xbb\x4f\xbb\x50\xbb\x51\xbb\x52\xbb\x53\xbb\x54\x55\x8e\x4d\x4a\xbb\x55\xbb\x56\x54\x9c\xbb\x57\xbb\x58\x4b\xe2\xbb\x59\xbb\x5a\xbb\x5b\xbb\x5c\xbb\x5d\xbb\x5e\xbb\x5f\x56\xc8\xbb\x60\xbb\x61\xbb\x62\xbb\x63\xbb\x64\xbb\x65\xbb\x66\xbb\x67\xbb\x68\xbb\x69\xbb\x6a\xbb\x6b\xbb\x6c\xbb\x6d\xbb\x6e\xbb\x6f\xbb\x70\xbb\x71\xbb\x72\x65\xa5\xbb\x73\xbb\x74\xbb\x75\xbb\x76\xbb\x77\xbb\x78\xbb\x79\xbb\x7a\xbb\x7b\xbb\x7c\xbb\x7d\xbb\x7e\xbb\x7f\xbb\x81\xbb\x82\xbb\x83\xbb\x84\xbb\x85\xbb\x86\xbb\x87\xbb\x88\xbb\x89\xbb\x8a\xbb\x8b\xbb\x8c\xbb\x8d\xbb\x8e\xbb\x8f\xbb\x90\xbb\x91\xbb\x92\xbb\x93\xbb\x94\xbb\x95\xbb\x96\xbb\x97\xbb\x98\xbb\x99\xbb\x9a\xbb\x9b\xbb\x9c\xbb\x9d\xbb\x9e\xbb\x9f\xbb\xa0\xbb\xa1\xbb\xa2\xbb\xa3\xbb\xa4", /* 8f00 */ "\xbb\xa5\xbb\xa6\xbb\xa7\xbb\xa8\xbb\xa9\xbb\xaa\xbb\xab\xbb\xac\xbb\xad\xbb\xae\xbb\xaf\xbb\xb0\xbb\xb1\xbb\xb2\xbb\xb3\xbb\xb4\xbb\xb5\xbb\xb6\xbb\xb7\xbb\xb8\xbb\xb9\xbb\xba\xbb\xbb\xbb\xbc\xbb\xbd\xbb\xbe\xbb\xbf\xbb\xc0\xbb\xc1\xbb\xc2\xbb\xc3\xbb\xc4\xbb\xc5\xbb\xc6\xbb\xc7\xbb\xc8\xbb\xc9\xbb\xca\xbb\xcb\xbb\xcc\xbb\xcd\xbb\xce\xbb\xcf\xbb\xd0\xbb\xd1\xbb\xd2\xbb\xd3\xbb\xd4\xbb\xd5\xbb\xd6\xbb\xd7\xbb\xd8\xbb\xd9\xbb\xda\xbb\xdb\xbb\xdc\xbb\xdd\xbb\xde\xbb\xdf\xbb\xe0\xbb\xe1\xbb\xe2\xbb\xe3\xbb\xe4\xbb\xe5\xbb\xe6\xbb\xe7\xbb\xe8\xbb\xe9\xbb\xea\xbb\xeb\xbb\xec\xbb\xed\xbb\xee\xbb\xef\xbb\xf0\xbb\xf1\xbb\xf2\xbb\xf3\xbb\xf4\xbb\xf5\xbb\xf6\xbb\xf7\xbb\xf8\xbb\xf9\xbb\xfa\xbb\xfb\xbb\xfc\xbb\xfd\xbc\x41\xbc\x42\xbc\x43\xbc\x44\xbc\x45\xbc\x46\xbc\x47\xbc\x48\xbc\x49\xbc\x4a\xbc\x4b\xbc\x4c\xbc\x4d\x4a\x55\x5a\xfd\x4d\x8d\x58\xf8\xbc\x4e\x65\x8e\x5c\x4a\x65\x8f\x51\xd5\x54\xec\x4d\xe3\x65\x90\x65\x91\x65\x92\x5b\xe0\x65\x93\x65\x94\x65\x96\x65\x95\x65\x97\x65\x98\x54\x82\x65\x99\x5a\xd7\x65\x9a\x4f\x6e", /* 8f80 */ "\xbc\x4f\x65\x9b\x65\x9c\x4f\x6f\x65\x9d\x4c\xa7\x51\x5e\x65\x9e\x49\x52\x4e\x74\x4d\x96\x65\x9f\xbc\x50\x65\xa0\x65\xa1\x65\xa2\x4c\x99\x4e\xac\xbc\x51\x55\xe3\x60\xcd\x5a\xae\x58\x5d\x5b\x57\x65\xa3\x5b\x7e\x65\xa4\x58\xc0\x4d\x5c\xbc\x52\x4a\xc6\x49\x79\xbc\x53\xbc\x54\xbc\x55\x50\xb0\xbc\x56\xbc\x57\xbc\x58\xbc\x59\x49\x87\x49\x88\xbc\x5a\x49\x89\xbc\x5b\xbc\x5c\xbc\x5d\xbc\x5e\x4a\x5d\x54\xe7\xbc\x5f\xbc\x60\xbc\x61\xbc\x62\x63\x61\xbc\x63\xbc\x64\x49\x7f\xbc\x65\xbc\x66\xbc\x67\x51\x69\x4a\xee\xbc\x68\xbc\x69\x54\x48\x5a\x78\xbc\x6a\x53\xf8\x59\x58\xbc\x6b\x4d\x9e\x51\xf4\xbc\x6c\xbc\x6d\xbc\x6e\xbc\x6f\xbc\x70\x5a\x4d\xbc\x71\x5a\xca\x4f\x9d\xbc\x72\x63\x62\x4c\x55\x63\x63\xbc\x73\xbc\x74\x4e\x59\x5b\x83\xbc\x75\x4f\x99\x5a\xb5\x57\xa4\x51\x4c\x4a\x79\xbc\x76\xbc\x77\x56\xf5\xbc\x78\x63\x66\x63\x64\x63\x68\xbc\x79\x63\x6a\x63\x67\x4b\x6f\x53\xc7\xbc\x7a\x4b\x9d\x63\x65\xbc\x7b\x55\xf5\xbc\x7c\xbc\x7d\x63\x69\xbc\x7e\xbc\x7f\xbc\x81\x52\x74\x49\x65\x4e\xa2\xbc\x82\xbc\x83\xbc\x84\x5c\x57\xbc\x85\xbc\x86", /* 9000 */ "\x57\x6b\x56\x6d\x55\xc9\x56\xd2\x63\x6c\x63\x6b\x52\xe5\xbc\x87\xbc\x88\x59\x41\x59\x57\x63\x6d\xbc\x89\x63\x70\xbc\x8a\x57\x58\x5b\xef\x63\x6f\x4b\x7d\xbc\x8b\x57\x5e\xbc\x8c\x63\x71\x4b\xb9\xbc\x8d\xbc\x8e\x57\x48\x4d\x85\xbc\x8f\x55\xc4\x4a\x71\x56\x79\x5a\xeb\x63\x72\x4c\x8b\xbc\x90\xbc\x91\xbc\x92\x63\x6e\xbc\x93\xbc\x94\xbc\x95\xbc\x96\xbc\x97\xbc\x98\x63\x75\x4a\xfd\x63\x76\xbc\x99\xbc\x9a\xbc\x9b\xbc\x9c\xbc\x9d\x63\x73\x63\x74\xbc\x9e\x59\xdc\xbc\x9f\xbc\xa0\x51\xde\x49\x66\xbc\xa1\x5a\x83\xbc\xa2\xbc\xa3\x4b\xdc\x56\x8d\xbc\xa4\x63\x77\xbc\xa5\xbc\xa6\x5a\x97\xbc\xa7\xbc\xa8\xbc\xa9\xbc\xaa\xbc\xab\x49\x8a\xbc\xac\x4b\xf3\x63\x7a\x63\x78\x63\x79\x4b\x60\xbc\xad\xbc\xae\xbc\xaf\x59\xc4\x63\x7c\xbc\xb0\xbc\xb1\x63\x7e\xbc\xb2\xbc\xb3\xbc\xb4\xbc\xb5\xbc\xb6\xbc\xb7\x63\x7d\x54\x52\xbc\xb8\x59\xa2\xbc\xb9\xbc\xba\x63\x7b\xbc\xbb\xbc\xbc\xbc\xbd\xbc\xbe\x5a\xe1\x5b\x7a\xbc\xbf\xbc\xc0\xbc\xc1\xbc\xc2\xbc\xc3\x63\x81\x5c\x92\xbc\xc4\xbc\xc5\xbc\xc6\xbc\xc7\xbc\xc8\xbc\xc9\xbc\xca\x63\x82\xbc\xcb\x49\x7c", /* 9080 */ "\x59\x9c\xbc\xcc\x63\x83\x63\x85\xbc\xcd\xbc\xce\xbc\xcf\xbc\xd0\x63\x84\xbc\xd1\xbc\xd2\x63\x86\xbc\xd3\xbc\xd4\xbc\xd5\xbc\xd6\xbc\xd7\x59\xd7\xbc\xd8\x4b\x6b\xbc\xd9\x64\x7f\xbc\xda\x5d\xf4\xbc\xdb\x5d\xf7\xbc\xdc\x5d\xf5\xbc\xdd\x5d\xf6\xbc\xde\xbc\xdf\xbc\xe0\x5d\xf9\x58\xce\x52\xc6\xbc\xe1\xbc\xe2\x48\xed\xbc\xe3\xbc\xe4\xbc\xe5\x58\xaf\xbc\xe6\x5d\xf8\xbc\xe7\x5a\x6a\x4d\xa9\x5e\x42\x54\x92\xbc\xe8\x5d\xfb\x5d\xfa\x55\x7b\x5d\xfc\xbc\xe9\x5e\x41\x5c\x7e\x5d\xfd\x51\x7a\xbc\xea\xbc\xeb\x5e\x45\xbc\xec\xbc\xed\x5a\x95\xbc\xee\xbc\xef\x5e\x47\x5e\x44\xbc\xf0\x5e\x48\xbc\xf1\xbc\xf2\x4f\x5c\xbc\xf3\xbc\xf4\xbc\xf5\x50\xc8\x5e\x43\x5e\x46\x5b\xa2\xbc\xf6\x5e\x49\xbc\xf7\xbc\xf8\xbc\xf9\x5e\x4d\xbc\xfa\xbc\xfb\xbc\xfc\x5e\x4e\x5e\x4c\x4d\xc1\xbc\xfd\xbd\x41\xbd\x42\x50\x44\x5e\x4b\xbd\x43\xbd\x44\xbd\x45\x5e\x4a\x5a\xc6\x49\xbe\xbd\x46\xbd\x47\x5e\x4f\xbd\x48\x4d\x9a\xbd\x49\x5e\x50\xbd\x4a\xbd\x4b\xbd\x4c\xbd\x4d\x4a\x5b\xbd\x4e\xbd\x4f\xbd\x50\x4b\x46\xbd\x51\xbd\x52\xbd\x53\xbd\x54\x4b\xbb\x5e\x51\xbd\x55", /* 9100 */ "\xbd\x56\xbd\x57\x4b\xf4\xbd\x58\x5e\x52\xbd\x59\xbd\x5a\xbd\x5b\xbd\x5c\xbd\x5d\xbd\x5e\xbd\x5f\xbd\x60\xbd\x61\xbd\x62\xbd\x63\xbd\x64\xbd\x65\xbd\x66\xbd\x67\xbd\x68\xbd\x69\xbd\x6a\xbd\x6b\xbd\x6c\x49\x69\xbd\x6d\xbd\x6e\xbd\x6f\xbd\x70\x5e\x54\xbd\x71\xbd\x72\xbd\x73\x5e\x53\x5e\x55\xbd\x74\xbd\x75\xbd\x76\xbd\x77\xbd\x78\xbd\x79\xbd\x7a\xbd\x7b\xbd\x7c\xbd\x7d\xbd\x7e\x5e\x57\xbd\x7f\x5e\x56\xbd\x81\xbd\x82\xbd\x83\xbd\x84\xbd\x85\xbd\x86\xbd\x87\x5e\x58\xbd\x88\xbd\x89\xbd\x8a\xbd\x8b\xbd\x8c\xbd\x8d\xbd\x8e\xbd\x8f\xbd\x90\x5e\x59\xbd\x91\xbd\x92\x5e\x5a\xbd\x93\xbd\x94\x5a\x6f\x6a\xf9\x54\x96\x5c\x63\x53\x85\x6a\xfb\x6a\xfc\x6a\xfa\xbd\x95\x4f\xc5\xbd\x96\xbd\x97\xbd\x98\xbd\x99\x58\xee\xbd\x9a\xbd\x9b\x4c\x73\xbd\x9c\xbd\x9d\x5a\xcc\x56\xa9\xbd\x9e\xbd\x9f\x6b\x42\x6b\x41\x4d\xa7\x6a\xfd\x56\x76\xbd\xa0\xbd\xa1\xbd\xa2\x6b\x44\x50\xd1\xbd\xa3\x4a\x8b\xbd\xa4\x57\x4a\x6b\x45\x6b\x43\x4f\x54\x6b\x48\xbd\xa5\x6b\x49\x4f\x6d\x52\x58\x50\x82\x56\x82\x6b\x4a\xbd\xa6\xbd\xa7\xbd\xa8\x6b\x46\x6b\x47\x52\xef", /* 9180 */ "\xbd\xa9\xbd\xaa\xbd\xab\xbd\xac\xbd\xad\x6b\x4c\xbd\xae\x4a\xbb\xbd\xaf\x5c\x8e\xbd\xb0\x4a\xd6\x6b\x4b\x6b\x4e\xbd\xb1\xbd\xb2\x6b\x4d\x6b\x4f\x58\xd0\xbd\xb3\xbd\xb4\xbd\xb5\xbd\xb6\xbd\xb7\xbd\xb8\xbd\xb9\x52\x71\x54\xa8\xbd\xba\xbd\xbb\xbd\xbc\xbd\xbd\xbd\xbe\xbd\xbf\x6b\x50\x6b\x51\xbd\xc0\xbd\xc1\xbd\xc2\xbd\xc3\xbd\xc4\xbd\xc5\x6b\x52\xbd\xc6\xbd\xc7\x6b\x53\x6b\x54\x6b\x55\xbd\xc8\xbd\xc9\xbd\xca\xbd\xcb\x6b\x57\x6b\x56\xbd\xcc\xbd\xcd\xbd\xce\xbd\xcf\x6b\x58\xbd\xd0\xbd\xd1\xbd\xd2\xbd\xd3\xbd\xd4\xbd\xd5\xbd\xd6\xbd\xd7\xbd\xd8\xbd\xd9\xbd\xda\xbd\xdb\x49\xc8\xbd\xdc\x5a\x74\x55\xcc\xbd\xdd\x50\xee\x5b\xd7\x59\xaf\x51\x5f\xbd\xde\x4f\x91\xbd\xdf\xbd\xe0\xbd\xe1\xbd\xe2\xbd\xe3\xbd\xe4\xbd\xe5\xbd\xe6\xbd\xe7\xbd\xe8\x4c\xa9\xbd\xe9\xbd\xea\xbd\xeb\xbd\xec\xbd\xed\xbd\xee\xbd\xef\xbd\xf0\xbd\xf1\xbd\xf2\xbd\xf3\xbd\xf4\xbd\xf5\xbd\xf6\xbd\xf7\xbd\xf8\xbd\xf9\xbd\xfa\xbd\xfb\xbd\xfc\xbd\xfd\xbe\x41\xbe\x42\xbe\x43\xbe\x44\xbe\x45\xbe\x46\xbe\x47\xbe\x48\xbe\x49\xbe\x4a\xbe\x4b\xbe\x4c\xbe\x4d\xbe\x4e", /* 9200 */ "\xbe\x4f\xbe\x50\xbe\x51\xbe\x52\xbe\x53\xbe\x54\xbe\x55\xbe\x56\xbe\x57\xbe\x58\xbe\x59\xbe\x5a\xbe\x5b\xbe\x5c\xbe\x5d\xbe\x5e\xbe\x5f\xbe\x60\xbe\x61\xbe\x62\xbe\x63\xbe\x64\xbe\x65\xbe\x66\xbe\x67\xbe\x68\xbe\x69\xbe\x6a\xbe\x6b\xbe\x6c\xbe\x6d\xbe\x6e\xbe\x6f\xbe\x70\xbe\x71\xbe\x72\xbe\x73\xbe\x74\xbe\x75\xbe\x76\xbe\x77\xbe\x78\xbe\x79\xbe\x7a\xbe\x7b\xbe\x7c\xbe\x7d\xbe\x7e\xbe\x7f\xbe\x81\xbe\x82\xbe\x83\xbe\x84\xbe\x85\xbe\x86\xbe\x87\xbe\x88\xbe\x89\xbe\x8a\xbe\x8b\xbe\x8c\xbe\x8d\xbe\x8e\xbe\x8f\xbe\x90\xbe\x91\xbe\x92\xbe\x93\xbe\x94\xbe\x95\xbe\x96\xbe\x97\xbe\x98\xbe\x99\xbe\x9a\xbe\x9b\xbe\x9c\xbe\x9d\xbe\x9e\xbe\x9f\xbe\xa0\xbe\xa1\xbe\xa2\xbe\xa3\xbe\xa4\xbe\xa5\xbe\xa6\xbe\xa7\xbe\xa8\xbe\xa9\xbe\xaa\xbe\xab\xbe\xac\xbe\xad\xbe\xae\xbe\xaf\xbe\xb0\xbe\xb1\xbe\xb2\xbe\xb3\xbe\xb4\xbe\xb5\xbe\xb6\xbe\xb7\xbe\xb8\xbe\xb9\xbe\xba\xbe\xbb\xbe\xbc\xbe\xbd\xbe\xbe\xbe\xbf\xbe\xc0\xbe\xc1\xbe\xc2\xbe\xc3\x4e\xf7\xbe\xc4\xbe\xc5\xbe\xc6\xbe\xc7\xbe\xc8\xbe\xc9\xbe\xca\xbe\xcb\xbe\xcc\xbe\xcd\xbe\xce", /* 9280 */ "\xbe\xcf\xbe\xd0\xbe\xd1\xbe\xd2\xbe\xd3\xbe\xd4\xbe\xd5\xbe\xd6\xbe\xd7\xbe\xd8\xbe\xd9\xbe\xda\xbe\xdb\xbe\xdc\x6b\xc5\xbe\xdd\xbe\xde\xbe\xdf\xbe\xe0\xbe\xe1\xbe\xe2\xbe\xe3\xbe\xe4\xbe\xe5\xbe\xe6\xbe\xe7\xbe\xe8\xbe\xe9\xbe\xea\xbe\xeb\xbe\xec\xbe\xed\xbe\xee\xbe\xef\xbe\xf0\xbe\xf1\xbe\xf2\xbe\xf3\xbe\xf4\xbe\xf5\xbe\xf6\xbe\xf7\xbe\xf8\xbe\xf9\xbe\xfa\xbe\xfb\x6b\xc6\xbe\xfc\xbe\xfd\xbf\x41\xbf\x42\xbf\x43\xbf\x44\xbf\x45\xbf\x46\xbf\x47\xbf\x48\xbf\x49\xbf\x4a\xbf\x4b\xbf\x4c\xbf\x4d\xbf\x4e\xbf\x4f\xbf\x50\xbf\x51\xbf\x52\xbf\x53\xbf\x54\xbf\x55\xbf\x56\xbf\x57\x6b\xc7\xbf\x58\xbf\x59\xbf\x5a\xbf\x5b\xbf\x5c\xbf\x5d\xbf\x5e\xbf\x5f\xbf\x60\xbf\x61\xbf\x62\xbf\x63\xbf\x64\xbf\x65\xbf\x66\xbf\x67\xbf\x68\xbf\x69\xbf\x6a\xbf\x6b\xbf\x6c\xbf\x6d\xbf\x6e\xbf\x6f\xbf\x70\xbf\x71\xbf\x72\xbf\x73\xbf\x74\xbf\x75\xbf\x76\xbf\x77\xbf\x78\xbf\x79\xbf\x7a\xbf\x7b\xbf\x7c\xbf\x7d\xbf\x7e\xbf\x7f\xbf\x81\xbf\x82\xbf\x83\xbf\x84\xbf\x85\xbf\x86\xbf\x87\xbf\x88\xbf\x89\xbf\x8a\xbf\x8b\xbf\x8c\xbf\x8d\xbf\x8e\xbf\x8f", /* 9300 */ "\xbf\x90\xbf\x91\xbf\x92\xbf\x93\xbf\x94\xbf\x95\xbf\x96\xbf\x97\xbf\x98\xbf\x99\xbf\x9a\xbf\x9b\xbf\x9c\xbf\x9d\xbf\x9e\xbf\x9f\xbf\xa0\xbf\xa1\xbf\xa2\xbf\xa3\xbf\xa4\xbf\xa5\xbf\xa6\xbf\xa7\xbf\xa8\xbf\xa9\xbf\xaa\xbf\xab\xbf\xac\xbf\xad\xbf\xae\xbf\xaf\xbf\xb0\xbf\xb1\xbf\xb2\xbf\xb3\xbf\xb4\xbf\xb5\xbf\xb6\xbf\xb7\xbf\xb8\xbf\xb9\xbf\xba\xbf\xbb\xbf\xbc\xbf\xbd\xbf\xbe\xbf\xbf\xbf\xc0\xbf\xc1\xbf\xc2\xbf\xc3\xbf\xc4\xbf\xc5\xbf\xc6\xbf\xc7\xbf\xc8\xbf\xc9\xbf\xca\xbf\xcb\xbf\xcc\xbf\xcd\x6b\xc8\xbf\xce\xbf\xcf\xbf\xd0\xbf\xd1\xbf\xd2\xbf\xd3\xbf\xd4\xbf\xd5\xbf\xd6\xbf\xd7\xbf\xd8\xbf\xd9\xbf\xda\xbf\xdb\xbf\xdc\xbf\xdd\xbf\xde\xbf\xdf\xbf\xe0\xbf\xe1\xbf\xe2\xbf\xe3\xbf\xe4\xbf\xe5\xbf\xe6\xbf\xe7\xbf\xe8\xbf\xe9\xbf\xea\xbf\xeb\xbf\xec\xbf\xed\xbf\xee\xbf\xef\xbf\xf0\xbf\xf1\xbf\xf2\xbf\xf3\xbf\xf4\xbf\xf5\xbf\xf6\xbf\xf7\xbf\xf8\x6b\xc9\xbf\xf9\xbf\xfa\xbf\xfb\xbf\xfc\xbf\xfd\xc0\x41\xc0\x42\xc0\x43\xc0\x44\xc0\x45\xc0\x46\xc0\x47\xc0\x48\xc0\x49\xc0\x4a\xc0\x4b\xc0\x4c\xc0\x4d\xc0\x4e\xc0\x4f\xc0\x50", /* 9380 */ "\xc0\x51\xc0\x52\xc0\x53\xc0\x54\xc0\x55\xc0\x56\xc0\x57\xc0\x58\xc0\x59\xc0\x5a\xc0\x5b\xc0\x5c\xc0\x5d\xc0\x5e\xc0\x5f\x6b\xcb\xc0\x60\xc0\x61\xc0\x62\xc0\x63\xc0\x64\xc0\x65\xc0\x66\xc0\x67\xc0\x68\xc0\x69\xc0\x6a\xc0\x6b\xc0\x6c\xc0\x6d\xc0\x6e\xc0\x6f\xc0\x70\xc0\x71\xc0\x72\xc0\x73\xc0\x74\xc0\x75\xc0\x76\xc0\x77\xc0\x78\xc0\x79\xc0\x7a\xc0\x7b\xc0\x7c\xc0\x7d\xc0\x7e\xc0\x7f\xc0\x81\xc0\x82\xc0\x83\xc0\x84\xc0\x85\xc0\x86\xc0\x87\xc0\x88\xc0\x89\xc0\x8a\xc0\x8b\xc0\x8c\xc0\x8d\xc0\x8e\xc0\x8f\xc0\x90\xc0\x91\xc0\x92\xc0\x93\xc0\x94\xc0\x95\xc0\x96\xc0\x97\xc0\x98\xc0\x99\xc0\x9a\x6b\xca\xc0\x9b\xc0\x9c\xc0\x9d\xc0\x9e\xc0\x9f\xc0\xa0\xc0\xa1\xc0\xa2\xc0\xa3\xc0\xa4\xc0\xa5\x6c\x8a\xc0\xa6\xc0\xa7\xc0\xa8\xc0\xa9\xc0\xaa\xc0\xab\xc0\xac\xc0\xad\xc0\xae\xc0\xaf\xc0\xb0\xc0\xb1\xc0\xb2\xc0\xb3\xc0\xb4\xc0\xb5\xc0\xb6\xc0\xb7\xc0\xb8\xc0\xb9\xc0\xba\xc0\xbb\xc0\xbc\xc0\xbd\xc0\xbe\xc0\xbf\xc0\xc0\xc0\xc1\xc0\xc2\xc0\xc3\xc0\xc4\xc0\xc5\xc0\xc6\xc0\xc7\xc0\xc8\xc0\xc9\xc0\xca\xc0\xcb\xc0\xcc\xc0\xcd\xc0\xce", /* 9400 */ "\xc0\xcf\xc0\xd0\xc0\xd1\xc0\xd2\xc0\xd3\xc0\xd4\xc0\xd5\xc0\xd6\xc0\xd7\xc0\xd8\xc0\xd9\xc0\xda\xc0\xdb\xc0\xdc\xc0\xdd\xc0\xde\xc0\xdf\xc0\xe0\xc0\xe1\xc0\xe2\xc0\xe3\xc0\xe4\xc0\xe5\xc0\xe6\xc0\xe7\xc0\xe8\xc0\xe9\xc0\xea\xc0\xeb\xc0\xec\xc0\xed\xc0\xee\xc0\xef\xc0\xf0\xc0\xf1\xc0\xf2\xc0\xf3\xc0\xf4\xc0\xf5\xc0\xf6\xc0\xf7\xc0\xf8\xc0\xf9\xc0\xfa\xc0\xfb\xc0\xfc\xc0\xfd\xc1\x41\xc1\x42\xc1\x43\xc1\x44\xc1\x45\xc1\x46\xc1\x47\xc1\x48\xc1\x49\xc1\x4a\xc1\x4b\xc1\x4c\xc1\x4d\xc1\x4e\xc1\x4f\x6b\xcc\xc1\x50\xc1\x51\xc1\x52\xc1\x53\xc1\x54\xc1\x55\xc1\x56\xc1\x57\xc1\x58\xc1\x59\xc1\x5a\xc1\x5b\xc1\x5c\xc1\x5d\xc1\x5e\xc1\x5f\xc1\x60\xc1\x61\xc1\x62\xc1\x63\xc1\x64\xc1\x65\xc1\x66\xc1\x67\xc1\x68\xc1\x69\xc1\x6a\xc1\x6b\xc1\x6c\xc1\x6d\xc1\x6e\xc1\x6f\xc1\x70\xc1\x71\xc1\x72\xc1\x73\xc1\x74\xc1\x75\xc1\x76\xc1\x77\xc1\x78\xc1\x79\xc1\x7a\xc1\x7b\x6b\xcd\xc1\x7c\xc1\x7d\xc1\x7e\xc1\x7f\xc1\x81\xc1\x82\xc1\x83\xc1\x84\xc1\x85\xc1\x86\xc1\x87\xc1\x88\xc1\x89\xc1\x8a\xc1\x8b\xc1\x8c\xc1\x8d\xc1\x8e\xc1\x8f\xc1\x90", /* 9480 */ "\xc1\x91\xc1\x92\xc1\x93\xc1\x94\xc1\x95\x67\xc3\x67\xc4\x67\xc5\x5b\x8c\x4b\xa3\x67\xc7\x67\xc6\x67\xc8\x67\xc9\x54\x45\x67\xca\x67\xcb\xc1\x96\x4c\x50\x4b\x97\x67\xcc\x67\xce\xc1\x97\x67\xcd\xc1\x98\x4c\xc5\x67\xcf\x67\xd0\x67\xd1\x4b\xda\x4a\x4e\x5b\xd2\x52\xc5\x49\x55\x4c\xd5\x67\xd2\x67\xd3\x5a\xbe\x54\x75\x4f\xfa\x57\xd8\x4d\x53\x67\xd5\x67\xd4\x67\xd7\x67\xd6\x53\x45\x67\xd8\x67\xd9\x54\x4e\x67\xda\x54\x4f\x67\xdb\x49\xa6\x67\xdc\x67\xdd\x67\xde\x67\xdf\x67\xe0\x5c\x8b\x67\xe1\x67\xe2\x4e\xd7\x67\xe3\x5a\x6b\x56\xf9\x49\xab\x51\x86\x67\xe4\x54\x46\x52\x4d\xc1\x99\x67\xe5\x67\xe6\x67\xe7\x67\xe8\x67\xe9\x67\xea\x67\xeb\xc1\x9a\x67\xec\x67\xed\x67\xee\xc1\x9b\xc1\x9c\x67\xef\x67\xf0\x67\xf1\x67\xf3\x67\xf2\xc1\x9d\x67\xf4\x57\x4d\x51\xc0\x67\xf5\x67\xf6\x67\xf7\x5b\x41\x67\xf8\x58\x53\x67\xf9\x67\xfa\xc1\x9e\x67\xfb\x67\xfc\x68\x41\x67\xfd\x68\x42\x4c\xf4\x52\x9b\x68\x43\x68\x44\x4f\x62\x59\xbe\x49\xf8\x68\x45\x68\x46\x68\x47\x59\xf7\x68\x48\x5b\xfc\x68\x49\x53\xcb\xc1\x9f\x68\x4a\x68\x4b\x51\x54\x68\x4c", /* 9500 */ "\x58\x9b\x56\x99\x68\x4e\x68\x4d\x4a\x9b\x4d\x99\x68\x4f\x68\x50\x58\xe1\x68\x51\x68\x52\x4c\x87\x58\xbe\x68\x53\x68\x54\x68\x55\x54\xf0\x56\xdf\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x5b\x81\x68\x5b\x4a\xec\x52\x4a\x68\x5c\xc1\xa0\x68\x5d\x68\x5e\x68\x5f\xc1\xa1\x57\xfc\x68\x60\x51\xdf\x4a\xb7\x5c\x56\x4f\x96\xc1\xa2\x58\x67\x68\x63\x68\x61\x68\x62\x68\x64\x4b\xa6\x4e\xfb\x4f\xe1\x52\x6c\x68\x65\x68\x66\xc1\xa3\x68\x67\x68\x6f\x68\x68\x68\x69\x68\x6a\x54\x62\x68\x92\x4b\xcc\x68\x6b\xc1\xa4\x68\x6c\x68\x6d\x4b\xc5\x52\x5e\x68\x6e\xc1\xa5\x68\x70\x68\x71\x68\x72\x5b\x93\xc1\xa6\x68\x73\x52\xf6\xc1\xa7\x68\x74\x52\xf7\x68\x75\x68\x76\x4c\xe3\x48\xf6\x68\x77\x68\x78\x68\x79\xc1\xa8\x68\x7a\x68\x7b\x68\x7c\x68\x7d\xc1\xa9\x68\x7e\x4f\xb4\x68\x82\x68\x7f\x68\x81\xc1\xaa\x68\x83\x68\x84\x51\x6d\x68\x85\x68\x86\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x50\xd7\xc1\xab\x68\x8e\x51\x4d\x68\x8f\x68\x90\x68\x91\xc1\xac\xc1\xad\x58\x83\xc1\xae\xc1\xaf\xc1\xb0\xc1\xb1\xc1\xb2\xc1\xb3\xc1\xb4\xc1\xb5\x4a\x44", /* 9580 */ "\xc1\xb6\xc1\xb7\xc1\xb8\xc1\xb9\xc1\xba\xc1\xbb\xc1\xbc\xc1\xbd\xc1\xbe\xc1\xbf\xc1\xc0\xc1\xc1\xc1\xc2\xc1\xc3\xc1\xc4\xc1\xc5\xc1\xc6\xc1\xc7\xc1\xc8\xc1\xc9\xc1\xca\xc1\xcb\xc1\xcc\xc1\xcd\xc1\xce\xc1\xcf\xc1\xd0\xc1\xd1\xc1\xd2\xc1\xd3\xc1\xd4\xc1\xd5\xc1\xd6\xc1\xd7\xc1\xd8\xc1\xd9\xc1\xda\xc1\xdb\xc1\xdc\xc1\xdd\xc1\xde\xc1\xdf\xc1\xe0\xc1\xe1\xc1\xe2\xc1\xe3\xc1\xe4\xc1\xe5\xc1\xe6\xc1\xe7\xc1\xe8\xc1\xe9\xc1\xea\xc1\xeb\xc1\xec\xc1\xed\xc1\xee\xc1\xef\xc1\xf0\xc1\xf1\xc1\xf2\xc1\xf3\xc1\xf4\xc1\xf5\xc1\xf6\xc1\xf7\xc1\xf8\xc1\xf9\xc1\xfa\xc1\xfb\xc1\xfc\xc1\xfd\xc2\x41\xc2\x42\xc2\x43\xc2\x44\xc2\x45\xc2\x46\xc2\x47\xc2\x48\xc2\x49\xc2\x4a\xc2\x4b\xc2\x4c\xc2\x4d\xc2\x4e\xc2\x4f\xc2\x50\xc2\x51\xc2\x52\xc2\x53\xc2\x54\xc2\x55\xc2\x56\xc2\x57\xc2\x58\xc2\x59\xc2\x5a\xc2\x5b\xc2\x5c\xc2\x5d\xc2\x5e\xc2\x5f\xc2\x60\x52\x65\x62\x65\x55\x61\x62\x66\xc2\x61\x49\x75\x57\xc9\x4a\xb2\x54\xf1\x62\x67\x58\x70\x62\x68\x4e\xe3\x62\x69\x62\x6a\x52\x66\x5b\x42\x52\xd5\x4d\x8c\x57\xc4\x62\x6b\x52\x97\x62\x6c\xc2\x62", /* 9600 */ "\x4c\x47\x4c\xf2\x4d\xd1\x62\x6d\x62\x6e\x5a\xc3\x62\x6f\xc2\x63\x62\x70\x59\x6b\x62\x71\x62\x72\x62\x73\x62\x74\x59\x76\x62\x75\x49\xfa\x50\xba\x62\x76\xc2\x64\x50\xaa\x62\x77\x62\x78\x62\x79\xc2\x65\x62\x7a\x62\x7b\xc2\x66\x4c\xb6\x5d\xe1\xc2\x67\x4b\xd2\xc2\x68\x5d\xe3\x5d\xe2\xc2\x69\xc2\x6a\xc2\x6b\xc2\x6c\xc2\x6d\xc2\x6e\xc2\x6f\x5d\xe5\xc2\x70\xc2\x71\xc2\x72\x54\xed\xc2\x73\xc2\x74\x5d\xe4\x4c\x60\x59\x95\x59\xf4\x5b\x94\x4f\x77\xc2\x75\xc2\x76\xc2\x77\xc2\x78\x5c\x89\x5d\xe7\x5d\xe6\xc2\x79\x48\xa1\x57\x73\xc2\x7a\x5d\xe8\xc2\x7b\x4c\xbc\x4e\xc9\x51\xbc\x51\xa3\x4a\x62\x5d\xe9\xc2\x7c\x51\xa9\x52\xaf\x4f\x55\xc2\x7d\xc2\x7e\x58\x7e\xc2\x7f\xc2\x81\xc2\x82\x5d\xea\x55\x62\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\x49\x7d\xc2\x88\xc2\x89\xc2\x8a\x5d\xeb\xc2\x8b\x4b\xb7\x5a\xb9\xc2\x8c\x4a\x9e\xc2\x8d\xc2\x8e\x5d\xec\x5a\xc8\x58\x75\x53\x84\xc2\x8f\x5d\xed\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\x5d\xee\xc2\x95\x5d\xef\x51\x8b\x56\xd4\x58\x7d\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d", /* 9680 */ "\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\x5a\x88\x51\xa0\xc2\xa3\x5d\xf0\xc2\xa4\xc2\xa5\x56\x86\xc2\xa6\x5d\xf1\xc2\xa7\x56\x87\x59\xfd\xc2\xa8\xc2\xa9\xc2\xaa\x4c\xf3\xc2\xab\xc2\xac\x5d\xf2\x48\xae\x58\x56\xc2\xad\xc2\xae\x5b\x6f\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\x56\x8e\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc2\xc0\x5d\xf3\xc2\xc1\xc2\xc2\x62\x64\xc2\xc3\xc2\xc4\x51\x45\xc2\xc5\xc2\xc6\x6b\xbe\xc2\xc7\xc2\xc8\x6b\xbf\x6b\xc0\x52\xd0\xc2\xc9\x54\xb7\x59\x84\xc2\xca\xc2\xcb\x58\xda\x59\x65\x4e\xae\x4d\x6d\xc2\xcc\x68\x95\xc2\xcd\xc2\xce\x4a\xc5\x5a\x5a\x6b\xc1\x4a\x9c\xc2\xcf\xc2\xd0\x6b\xc2\xc2\xd1\xc2\xd2\x4b\x92\xc2\xd3\xc2\xd4\xc2\xd5\xc2\xd6\xc2\xd7\xc2\xd8\xc2\xd9\xc2\xda\xc2\xdb\xc2\xdc\x6b\xc4\xc2\xdd\xc2\xde\xc2\xdf\xc2\xe0\xc2\xe1\xc2\xe2\xc2\xe3\x5a\x8b\x6b\xa6\x59\x49\xc2\xe4\xc2\xe5\xc2\xe6\xc2\xe7\x6b\xa8\xc2\xe8\xc2\xe9\xc2\xea\x6b\xa7\xc2\xeb\xc2\xec\x51\x84\x50\xd6\xc2\xed\x49\x42\xc2\xee\xc2\xef\xc2\xf0\xc2\xf1\x57\xec\xc2\xf2", /* 9700 */ "\x58\xe7\x6b\xaa\xc2\xf3\xc2\xf4\x58\x97\xc2\xf5\x6b\xa9\x5b\x91\x6b\xab\x52\x59\xc2\xf6\xc2\xf7\xc2\xf8\x4e\x95\x6b\xad\x6b\xac\xc2\xf9\xc2\xfa\xc2\xfb\x52\xdd\xc2\xfc\xc2\xfd\x51\x78\xc3\x41\xc3\x42\xc3\x43\xc3\x44\xc3\x45\x56\x4a\xc3\x46\x58\x5c\xc3\x47\xc3\x48\xc3\x49\xc3\x4a\xc3\x4b\xc3\x4c\xc3\x4d\xc3\x4e\xc3\x4f\xc3\x50\xc3\x51\x6b\xae\xc3\x52\xc3\x53\x6b\xaf\xc3\x54\xc3\x55\x6b\xb0\xc3\x56\x51\xb5\xc3\x57\xc3\x58\xc3\x59\xc3\x5a\xc3\x5b\x48\xd3\x53\x9a\xc3\x5c\xc3\x5d\xc3\x5e\xc3\x5f\x6b\xb1\xc3\x60\xc3\x61\xc3\x62\xc3\x63\xc3\x64\xc3\x65\xc3\x66\xc3\x67\xc3\x68\xc3\x69\xc3\x6a\xc3\x6b\xc3\x6c\xc3\x6d\xc3\x6e\xc3\x6f\xc3\x70\xc3\x71\xc3\x72\x54\x81\x6b\xa5\xc3\x73\xc3\x74\x4f\xb7\xc3\x75\xc3\x76\x4f\xb1\xc3\x77\x4b\x86\xc3\x78\xc3\x79\x4c\x67\xc3\x7a\x50\x5f\x52\x72\x52\x87\xc3\x7b\xc3\x7c\x5c\xcb\xc3\x7d\xc3\x7e\xc3\x7f\x4c\xee\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85\xc3\x86\xc3\x87\xc3\x88\xc3\x89\x4f\x9a\x59\x45\xc3\x8a\x48\xcf\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\x6c\x50\xc3\x90\xc3\x91\xc3\x92", /* 9780 */ "\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\x6c\x51\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\x58\xab\xc3\x9d\x48\xaf\xc3\x9e\xc3\x9f\xc3\xa0\x6c\x52\x6c\x53\xc3\xa1\x6c\x54\xc3\xa2\xc3\xa3\xc3\xa4\x54\x6a\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\x4f\xce\xc3\xac\xc3\xad\x6c\x57\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\x6c\x56\xc3\xb5\x49\x7e\xc3\xb6\x6c\x55\xc3\xb7\xc3\xb8\x6c\x58\xc3\xb9\x6c\x59\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf\xc3\xc0\xc3\xc1\xc3\xc2\xc3\xc3\xc3\xc4\xc3\xc5\xc3\xc6\xc3\xc7\xc3\xc8\xc3\xc9\xc3\xca\xc3\xcb\xc3\xcc\xc3\xcd\xc3\xce\xc3\xcf\xc3\xd0\xc3\xd1\xc3\xd2\xc3\xd3\xc3\xd4\xc3\xd5\xc3\xd6\xc3\xd7\xc3\xd8\xc3\xd9\xc3\xda\xc3\xdb\xc3\xdc\xc3\xdd\xc3\xde\xc3\xdf\xc3\xe0\xc3\xe1\xc3\xe2\xc3\xe3\xc3\xe4\xc3\xe5\xc3\xe6\xc3\xe7\xc3\xe8\xc3\xe9\xc3\xea\x57\xa3\x54\xcc\xc3\xeb\x4d\xaa\x64\xb7\x64\xb8\x64\xb9\x4f\xc1\xc3\xec\xc3\xed\xc3\xee\xc3\xef\xc3\xf0\x59\xf3\xc3\xf1\x5a\xce\x55\x78\xc3\xf2\xc3\xf3\xc3\xf4\xc3\xf5\xc3\xf6\xc3\xf7\xc3\xf8\xc3\xf9\xc3\xfa", /* 9800 */ "\xc3\xfb\xc3\xfc\xc3\xfd\xc4\x41\xc4\x42\xc4\x43\xc4\x44\xc4\x45\xc4\x46\xc4\x47\xc4\x48\xc4\x49\xc4\x4a\xc4\x4b\xc4\x4c\xc4\x4d\xc4\x4e\xc4\x4f\xc4\x50\xc4\x51\xc4\x52\xc4\x53\xc4\x54\xc4\x55\xc4\x56\xc4\x57\xc4\x58\xc4\x59\xc4\x5a\xc4\x5b\xc4\x5c\xc4\x5d\xc4\x5e\xc4\x5f\xc4\x60\xc4\x61\xc4\x62\xc4\x63\xc4\x64\xc4\x65\xc4\x66\xc4\x67\xc4\x68\xc4\x69\xc4\x6a\xc4\x6b\xc4\x6c\xc4\x6d\xc4\x6e\xc4\x6f\xc4\x70\xc4\x71\xc4\x72\xc4\x73\xc4\x74\xc4\x75\xc4\x76\xc4\x77\xc4\x78\xc4\x79\xc4\x7a\xc4\x7b\xc4\x7c\xc4\x7d\xc4\x7e\xc4\x7f\xc4\x81\xc4\x82\xc4\x83\xc4\x84\xc4\x85\xc4\x86\xc4\x87\xc4\x88\xc4\x89\xc4\x8a\xc4\x8b\xc4\x8c\xc4\x8d\xc4\x8e\xc4\x8f\xc4\x90\xc4\x91\xc4\x92\xc4\x93\xc4\x94\xc4\x95\xc4\x96\xc4\x97\xc4\x98\xc4\x99\xc4\x9a\xc4\x9b\xc4\x9c\xc4\x9d\xc4\x9e\xc4\x9f\xc4\xa0\xc4\xa1\xc4\xa2\xc4\xa3\xc4\xa4\xc4\xa5\xc4\xa6\xc4\xa7\xc4\xa8\xc4\xa9\xc4\xaa\xc4\xab\xc4\xac\xc4\xad\xc4\xae\xc4\xaf\xc4\xb0\xc4\xb1\xc4\xb2\xc4\xb3\x59\xb2\x4b\xa4\x54\x8b\x69\x9d\x58\x8f\x56\x53\x58\xea\x64\x90\x57\x88\x4d\x6b\x4b\xd8", /* 9880 */ "\x69\x9e\x48\xe3\x56\x6c\x69\x9f\x5a\xa3\x51\xac\x51\x8d\x53\xc3\x4f\xb0\x69\xa0\x4e\xd4\xc4\xb4\x69\xa1\x69\xa2\xc4\xb5\x69\xa3\x59\xc2\x53\xb4\xc4\xb6\x57\x67\x69\xa4\xc4\xb7\x5a\x51\x50\x65\x56\xe1\xc4\xb8\x69\xa5\x69\xa6\x59\x75\x4b\xed\x69\xa7\x69\xa8\x4b\x7f\x69\xa9\x69\xaa\xc4\xb9\x49\xfb\x69\xab\x69\xac\x54\xa6\xc4\xba\xc4\xbb\xc4\xbc\xc4\xbd\xc4\xbe\xc4\xbf\xc4\xc0\xc4\xc1\xc4\xc2\xc4\xc3\xc4\xc4\xc4\xc5\xc4\xc6\xc4\xc7\xc4\xc8\xc4\xc9\xc4\xca\xc4\xcb\xc4\xcc\xc4\xcd\xc4\xce\xc4\xcf\xc4\xd0\xc4\xd1\xc4\xd2\xc4\xd3\xc4\xd4\xc4\xd5\xc4\xd6\xc4\xd7\xc4\xd8\xc4\xd9\xc4\xda\xc4\xdb\xc4\xdc\xc4\xdd\xc4\xde\xc4\xdf\x4c\x88\xc4\xe0\xc4\xe1\x66\xa8\x66\xa9\x66\xaa\xc4\xe2\x66\xab\xc4\xe3\xc4\xe4\x53\xad\x66\xac\x66\xad\xc4\xe5\xc4\xe6\xc4\xe7\x4c\x69\x55\xb2\xc4\xe8\xc4\xe9\xc4\xea\xc4\xeb\xc4\xec\xc4\xed\xc4\xee\x61\xb7\x6c\x6f\xc4\xef\xc4\xf0\xc4\xf1\xc4\xf2\xc4\xf3\xc4\xf4\xc4\xf5\xc4\xf6\xc4\xf7\xc4\xf8\xc4\xf9\xc4\xfa\xc4\xfb\xc4\xfc\xc4\xfd\xc5\x41\xc5\x42\xc5\x43\xc5\x44\xc5\x45\xc5\x46\xc5\x47\xc5\x48", /* 9900 */ "\xc5\x49\xc5\x4a\xc5\x4b\xc5\x4c\xc5\x4d\xc5\x4e\xc5\x4f\xc5\x50\xc5\x51\xc5\x52\xc5\x53\xc5\x54\xc5\x55\x6c\x70\xc5\x56\xc5\x57\x49\xcc\xc5\x58\xc5\x59\xc5\x5a\xc5\x5b\xc5\x5c\xc5\x5d\xc5\x5e\xc5\x5f\xc5\x60\xc5\x61\xc5\x62\xc5\x63\xc5\x64\xc5\x65\xc5\x66\xc5\x67\xc5\x68\xc5\x69\xc5\x6a\xc5\x6b\xc5\x6c\xc5\x6d\xc5\x6e\xc5\x6f\xc5\x70\xc5\x71\xc5\x72\xc5\x73\xc5\x74\x6c\x71\xc5\x75\xc5\x76\xc5\x77\xc5\x78\xc5\x79\xc5\x7a\xc5\x7b\xc5\x7c\xc5\x7d\xc5\x7e\xc5\x7f\xc5\x81\xc5\x82\xc5\x83\xc5\x84\xc5\x85\xc5\x86\xc5\x87\xc5\x88\xc5\x89\xc5\x8a\xc5\x8b\xc5\x8c\xc5\x8d\xc5\x8e\xc5\x8f\xc5\x90\xc5\x91\xc5\x92\xc5\x93\xc5\x94\xc5\x95\xc5\x96\xc5\x97\xc5\x98\xc5\x99\xc5\x9a\x6c\x73\x6c\x72\xc5\x9b\xc5\x9c\xc5\x9d\xc5\x9e\xc5\x9f\xc5\xa0\xc5\xa1\xc5\xa2\xc5\xa3\xc5\xa4\xc5\xa5\xc5\xa6\xc5\xa7\x61\xba\xc5\xa8\x4e\xa1\xc5\xa9\x61\xbb\x61\xbc\x61\xbd\x61\xbe\x61\xbf\x61\xc0\x4c\x59\x59\xfa\x4f\x44\x55\xcd\x49\x45\x56\x67\xc5\xaa\x61\xc1\x4b\xfb\x54\xc3\x61\xc2\xc5\xab\xc5\xac\x4f\x68\xc5\xad\x49\x9e\x61\xc3\xc5\xae\x4b\xf5", /* 9980 */ "\x61\xc4\x52\xd8\xc5\xaf\xc5\xb0\x61\xc5\x58\x7a\x4d\x7d\x61\xc6\x50\xa0\xc5\xb1\x61\xc7\x49\xf5\xc5\xb2\x61\xc8\xc5\xb3\x51\x94\x61\xc9\x61\xca\x51\xf7\x61\xcb\x61\xcc\x61\xcd\x55\xd6\x5c\xb7\x5d\x86\x58\x84\xc5\xb4\xc5\xb5\xc5\xb6\xc5\xb7\xc5\xb8\xc5\xb9\xc5\xba\xc5\xbb\xc5\xbc\xc5\xbd\xc5\xbe\x68\xa4\xc5\xbf\xc5\xc0\x5e\xaf\xc5\xc1\xc5\xc2\xc5\xc3\xc5\xc4\xc5\xc5\xc5\xc6\xc5\xc7\xc5\xc8\xc5\xc9\xc5\xca\xc5\xcb\xc5\xcc\xc5\xcd\xc5\xce\xc5\xcf\xc5\xd0\xc5\xd1\xc5\xd2\xc5\xd3\xc5\xd4\xc5\xd5\xc5\xd6\xc5\xd7\xc5\xd8\xc5\xd9\xc5\xda\xc5\xdb\xc5\xdc\xc5\xdd\xc5\xde\xc5\xdf\xc5\xe0\xc5\xe1\xc5\xe2\xc5\xe3\xc5\xe4\xc5\xe5\xc5\xe6\xc5\xe7\xc5\xe8\xc5\xe9\xc5\xea\xc5\xeb\xc5\xec\xc5\xed\xc5\xee\xc5\xef\xc5\xf0\xc5\xf1\xc5\xf2\xc5\xf3\xc5\xf4\xc5\xf5\xc5\xf6\xc5\xf7\xc5\xf8\xc5\xf9\xc5\xfa\xc5\xfb\xc5\xfc\xc5\xfd\xc6\x41\xc6\x42\xc6\x43\xc6\x44\xc6\x45\xc6\x46\xc6\x47\xc6\x48\xc6\x49\xc6\x4a\xc6\x4b\xc6\x4c\xc6\x4d\xc6\x4e\xc6\x4f\xc6\x50\xc6\x51\xc6\x52\xc6\x53\xc6\x54\xc6\x55\xc6\x56\xc6\x57\xc6\x58\xc6\x59\xc6\x5a", /* 9a00 */ "\xc6\x5b\xc6\x5c\xc6\x5d\xc6\x5e\xc6\x5f\xc6\x60\xc6\x61\xc6\x62\xc6\x63\xc6\x64\xc6\x65\xc6\x66\xc6\x67\xc6\x68\xc6\x69\xc6\x6a\xc6\x6b\xc6\x6c\xc6\x6d\xc6\x6e\xc6\x6f\xc6\x70\xc6\x71\xc6\x72\xc6\x73\xc6\x74\xc6\x75\xc6\x76\xc6\x77\xc6\x78\xc6\x79\xc6\x7a\xc6\x7b\xc6\x7c\xc6\x7d\xc6\x7e\xc6\x7f\xc6\x81\xc6\x82\xc6\x83\xc6\x84\xc6\x85\xc6\x86\xc6\x87\xc6\x88\xc6\x89\xc6\x8a\xc6\x8b\xc6\x8c\xc6\x8d\xc6\x8e\xc6\x8f\xc6\x90\xc6\x91\xc6\x92\xc6\x93\xc6\x94\xc6\x95\xc6\x96\xc6\x97\xc6\x98\xc6\x99\xc6\x9a\xc6\x9b\xc6\x9c\xc6\x9d\xc6\x9e\xc6\x9f\xc6\xa0\xc6\xa1\xc6\xa2\xc6\xa3\xc6\xa4\xc6\xa5\xc6\xa6\xc6\xa7\xc6\xa8\xc6\xa9\xc6\xaa\xc6\xab\xc6\xac\xc6\xad\xc6\xae\xc6\xaf\xc6\xb0\xc6\xb1\xc6\xb2\xc6\xb3\xc6\xb4\xc6\xb5\xc6\xb6\xc6\xb7\xc6\xb8\xc6\xb9\xc6\xba\xc6\xbb\xc6\xbc\xc6\xbd\xc6\xbe\xc6\xbf\xc6\xc0\xc6\xc1\xc6\xc2\xc6\xc3\xc6\xc4\xc6\xc5\xc6\xc6\xc6\xc7\x51\xec\x5a\xa5\x57\x74\x59\x51\x4a\x7b\x54\x9e\xc6\xc8\x49\xb4\x51\xbe\x63\xdf\x55\xba\x63\xe0\x63\xe1\x4f\xd3\x63\xe2\x5c\x44\x57\x75\x63\xe4\x4e\xdc\x63\xe3", /* 9a80 */ "\x63\xe5\x63\xe6\x51\xed\xc6\xc9\x4f\x5e\x63\xe7\x51\xe5\x4d\xa6\x63\xe8\xc6\xca\x63\xe9\x4a\x72\x59\x8a\xc6\xcb\xc6\xcc\x50\x45\x63\xea\x53\xee\x63\xeb\x63\xec\xc6\xcd\xc6\xce\x63\xed\x53\xac\x63\xee\xc6\xcf\x55\x47\x63\xef\x63\xf0\x63\xf1\x63\x59\x63\xf2\x63\xf3\x51\xe1\x63\xf4\x63\xf5\x5b\xe7\x63\xf6\xc6\xd0\x63\xf7\x4d\x67\xc6\xd1\xc6\xd2\xc6\xd3\xc6\xd4\xc6\xd5\xc6\xd6\xc6\xd7\x6c\x5b\x6c\x5a\xc6\xd8\xc6\xd9\xc6\xda\xc6\xdb\x6c\x5e\x6c\x5c\x4d\xa0\xc6\xdc\x6c\x5f\xc6\xdd\x6c\x60\xc6\xde\xc6\xdf\xc6\xe0\x6c\x62\x6c\x61\x6c\x64\xc6\xe1\xc6\xe2\x6c\x63\xc6\xe3\xc6\xe4\xc6\xe5\xc6\xe6\xc6\xe7\x6c\x65\x6c\x66\xc6\xe8\xc6\xe9\xc6\xea\xc6\xeb\x6c\x67\xc6\xec\x56\x89\xc6\xed\xc6\xee\xc6\xef\xc6\xf0\x4c\xde\xc6\xf1\xc6\xf2\xc6\xf3\xc6\xf4\xc6\xf5\xc6\xf6\x6c\x74\xc6\xf7\x6c\x75\xc6\xf8\xc6\xf9\xc6\xfa\xc6\xfb\x6c\x76\xc6\xfc\xc6\xfd\xc7\x41\xc7\x42\x6c\x78\xc7\x43\x6c\x7a\xc7\x44\x6c\x77\xc7\x45\xc7\x46\xc7\x47\xc7\x48\xc7\x49\xc7\x4a\xc7\x4b\xc7\x4c\xc7\x4d\x6c\x7b\xc7\x4e\x6c\x79\xc7\x4f\xc7\x50\xc7\x51\xc7\x52", /* 9b00 */ "\xc7\x53\xc7\x54\xc7\x55\x5c\x77\xc7\x56\xc7\x57\xc7\x58\xc7\x59\x6c\x7c\xc7\x5a\xc7\x5b\xc7\x5c\xc7\x5d\xc7\x5e\xc7\x5f\x6c\x7d\xc7\x60\xc7\x61\xc7\x62\x6c\x7e\xc7\x63\xc7\x64\xc7\x65\xc7\x66\xc7\x67\xc7\x68\xc7\x69\xc7\x6a\xc7\x6b\xc7\x6c\xc7\x6d\x6c\x7f\xc7\x6e\xc7\x6f\xc7\x70\x6c\x81\xc7\x71\xc7\x72\xc7\x73\xc7\x74\xc7\x75\xc7\x76\xc7\x77\xc7\x78\xc7\x79\xc7\x7a\xc7\x7b\x5e\x6b\xc7\x7c\xc7\x7d\x5c\xa9\xc7\x7e\xc7\x7f\xc7\x81\xc7\x82\xc7\x83\xc7\x84\xc7\x85\xc7\x86\x63\x98\x4d\x8e\xc7\x87\xc7\x88\xc7\x89\xc7\x8a\x50\x9e\x4e\x8b\x6c\x69\x53\xc6\x6c\x68\xc7\x8b\x6c\x6a\x6c\x6c\x6c\x6b\xc7\x8c\xc7\x8d\xc7\x8e\x6c\x6d\xc7\x8f\x57\xb9\xc7\x90\x6c\x6e\xc7\x91\xc7\x92\x52\xa6\xc7\x93\xc7\x94\xc7\x95\xc7\x96\xc7\x97\xc7\x98\xc7\x99\xc7\x9a\xc7\x9b\xc7\x9c\xc7\x9d\xc7\x9e\xc7\x9f\xc7\xa0\xc7\xa1\xc7\xa2\xc7\xa3\xc7\xa4\xc7\xa5\xc7\xa6\xc7\xa7\xc7\xa8\xc7\xa9\xc7\xaa\xc7\xab\xc7\xac\xc7\xad\xc7\xae\xc7\xaf\xc7\xb0\xc7\xb1\xc7\xb2\xc7\xb3\xc7\xb4\xc7\xb5\xc7\xb6\xc7\xb7\xc7\xb8\xc7\xb9\xc7\xba\xc7\xbb\xc7\xbc\xc7\xbd", /* 9b80 */ "\xc7\xbe\xc7\xbf\xc7\xc0\xc7\xc1\xc7\xc2\xc7\xc3\xc7\xc4\xc7\xc5\xc7\xc6\xc7\xc7\xc7\xc8\xc7\xc9\xc7\xca\xc7\xcb\xc7\xcc\xc7\xcd\xc7\xce\xc7\xcf\xc7\xd0\xc7\xd1\xc7\xd2\xc7\xd3\xc7\xd4\xc7\xd5\xc7\xd6\xc7\xd7\xc7\xd8\xc7\xd9\xc7\xda\xc7\xdb\xc7\xdc\xc7\xdd\xc7\xde\xc7\xdf\xc7\xe0\xc7\xe1\xc7\xe2\xc7\xe3\xc7\xe4\xc7\xe5\xc7\xe6\xc7\xe7\xc7\xe8\xc7\xe9\xc7\xea\xc7\xeb\xc7\xec\xc7\xed\xc7\xee\xc7\xef\xc7\xf0\xc7\xf1\xc7\xf2\xc7\xf3\xc7\xf4\xc7\xf5\xc7\xf6\xc7\xf7\xc7\xf8\xc7\xf9\xc7\xfa\xc7\xfb\xc7\xfc\xc7\xfd\xc8\x41\xc8\x42\xc8\x43\xc8\x44\xc8\x45\xc8\x46\xc8\x47\xc8\x48\xc8\x49\xc8\x4a\xc8\x4b\xc8\x4c\xc8\x4d\xc8\x4e\xc8\x4f\xc8\x50\xc8\x51\xc8\x52\xc8\x53\xc8\x54\xc8\x55\xc8\x56\xc8\x57\xc8\x58\xc8\x59\xc8\x5a\xc8\x5b\xc8\x5c\xc8\x5d\xc8\x5e\xc8\x5f\xc8\x60\xc8\x61\xc8\x62\xc8\x63\xc8\x64\xc8\x65\xc8\x66\xc8\x67\xc8\x68\xc8\x69\xc8\x6a\xc8\x6b\xc8\x6c\xc8\x6d\xc8\x6e\xc8\x6f\xc8\x70\xc8\x71\xc8\x72\xc8\x73\xc8\x74\xc8\x75\xc8\x76\xc8\x77\xc8\x78\xc8\x79\xc8\x7a\xc8\x7b\xc8\x7c\xc8\x7d\xc8\x7e\xc8\x7f\xc8\x81", /* 9c00 */ "\xc8\x82\xc8\x83\xc8\x84\xc8\x85\xc8\x86\xc8\x87\xc8\x88\xc8\x89\xc8\x8a\xc8\x8b\xc8\x8c\xc8\x8d\xc8\x8e\xc8\x8f\xc8\x90\xc8\x91\xc8\x92\xc8\x93\xc8\x94\xc8\x95\xc8\x96\xc8\x97\xc8\x98\xc8\x99\xc8\x9a\xc8\x9b\xc8\x9c\xc8\x9d\xc8\x9e\xc8\x9f\xc8\xa0\xc8\xa1\xc8\xa2\xc8\xa3\xc8\xa4\xc8\xa5\xc8\xa6\xc8\xa7\xc8\xa8\xc8\xa9\xc8\xaa\xc8\xab\xc8\xac\xc8\xad\xc8\xae\xc8\xaf\xc8\xb0\xc8\xb1\xc8\xb2\xc8\xb3\xc8\xb4\xc8\xb5\xc8\xb6\xc8\xb7\xc8\xb8\xc8\xb9\xc8\xba\xc8\xbb\xc8\xbc\xc8\xbd\xc8\xbe\xc8\xbf\xc8\xc0\xc8\xc1\xc8\xc2\xc8\xc3\xc8\xc4\xc8\xc5\xc8\xc6\xc8\xc7\xc8\xc8\xc8\xc9\xc8\xca\xc8\xcb\xc8\xcc\xc8\xcd\xc8\xce\xc8\xcf\xc8\xd0\xc8\xd1\xc8\xd2\xc8\xd3\xc8\xd4\xc8\xd5\xc8\xd6\xc8\xd7\xc8\xd8\xc8\xd9\xc8\xda\xc8\xdb\xc8\xdc\xc8\xdd\xc8\xde\xc8\xdf\xc8\xe0\xc8\xe1\xc8\xe2\xc8\xe3\xc8\xe4\xc8\xe5\xc8\xe6\xc8\xe7\xc8\xe8\xc8\xe9\xc8\xea\xc8\xeb\xc8\xec\xc8\xed\xc8\xee\xc8\xef\xc8\xf0\xc8\xf1\xc8\xf2\xc8\xf3\xc8\xf4\xc8\xf5\xc8\xf6\xc8\xf7\xc8\xf8\xc8\xf9\xc8\xfa\xc8\xfb\xc8\xfc\xc8\xfd\x5a\x84\xc9\x41\xc9\x42\x6b\xce", /* 9c80 */ "\xc9\x43\x51\xb2\x6b\xcf\xc9\x44\xc9\x45\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\xc9\x46\xc9\x47\x6b\xd5\xc9\x48\x49\x4b\x6b\xd6\xc9\x49\x6b\xd7\x6b\xd8\x6b\xd9\xc9\x4a\x6b\xda\x6b\xdb\xc9\x4b\xc9\x4c\xc9\x4d\xc9\x4e\x6b\xdc\x6b\xdd\x58\x6a\xc9\x4f\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x50\xef\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\xc9\x50\x6b\xe9\xc9\x51\x6b\xea\x6b\xeb\xc9\x52\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x4f\xa7\xc9\x53\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\xc9\x54\xc9\x55\xc9\x56\xc9\x57\xc9\x58\x54\xf9\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\xc9\x59\xc9\x5a\x6b\xfc\x6b\xfd\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\xc9\x5b\xc9\x5c\x6c\x46\x6c\x47\x6c\x48\x49\x8f\x6c\x49\x6c\x4a\x6c\x4b\xc9\x5d\xc9\x5e\x6c\x4c\x6c\x4d\x51\x7b\x6c\x4e\xc9\x5f\xc9\x60\x6c\x4f\xc9\x61\xc9\x62\xc9\x63\xc9\x64\xc9\x65\xc9\x66\xc9\x67\xc9\x68\xc9\x69\xc9\x6a\xc9\x6b\xc9\x6c\xc9\x6d\xc9\x6e\xc9\x6f\xc9\x70\xc9\x71\xc9\x72\xc9\x73\xc9\x74\xc9\x75\xc9\x76\xc9\x77\xc9\x78\xc9\x79\xc9\x7a\xc9\x7b\xc9\x7c\xc9\x7d", /* 9d00 */ "\xc9\x7e\xc9\x7f\xc9\x81\xc9\x82\xc9\x83\xc9\x84\xc9\x85\xc9\x86\xc9\x87\xc9\x88\xc9\x89\xc9\x8a\xc9\x8b\xc9\x8c\xc9\x8d\xc9\x8e\xc9\x8f\xc9\x90\xc9\x91\xc9\x92\xc9\x93\xc9\x94\xc9\x95\xc9\x96\xc9\x97\xc9\x98\xc9\x99\xc9\x9a\xc9\x9b\xc9\x9c\xc9\x9d\xc9\x9e\xc9\x9f\xc9\xa0\xc9\xa1\xc9\xa2\xc9\xa3\xc9\xa4\xc9\xa5\xc9\xa6\xc9\xa7\xc9\xa8\xc9\xa9\xc9\xaa\xc9\xab\xc9\xac\xc9\xad\xc9\xae\xc9\xaf\xc9\xb0\xc9\xb1\xc9\xb2\xc9\xb3\xc9\xb4\xc9\xb5\xc9\xb6\xc9\xb7\xc9\xb8\xc9\xb9\xc9\xba\xc9\xbb\xc9\xbc\xc9\xbd\xc9\xbe\xc9\xbf\xc9\xc0\xc9\xc1\xc9\xc2\xc9\xc3\xc9\xc4\xc9\xc5\xc9\xc6\xc9\xc7\xc9\xc8\xc9\xc9\xc9\xca\xc9\xcb\xc9\xcc\xc9\xcd\xc9\xce\xc9\xcf\xc9\xd0\xc9\xd1\xc9\xd2\xc9\xd3\xc9\xd4\xc9\xd5\xc9\xd6\xc9\xd7\xc9\xd8\xc9\xd9\xc9\xda\xc9\xdb\xc9\xdc\xc9\xdd\xc9\xde\xc9\xdf\xc9\xe0\xc9\xe1\xc9\xe2\xc9\xe3\xc9\xe4\xc9\xe5\xc9\xe6\xc9\xe7\xc9\xe8\xc9\xe9\xc9\xea\xc9\xeb\xc9\xec\xc9\xed\xc9\xee\xc9\xef\xc9\xf0\xc9\xf1\xc9\xf2\xc9\xf3\xc9\xf4\xc9\xf5\xc9\xf6\xc9\xf7\xc9\xf8\xc9\xf9\xc9\xfa\xc9\xfb\xc9\xfc\xc9\xfd\xca\x41", /* 9d80 */ "\xca\x42\xca\x43\xca\x44\xca\x45\xca\x46\xca\x47\xca\x48\xca\x49\xca\x4a\xca\x4b\xca\x4c\xca\x4d\xca\x4e\xca\x4f\xca\x50\xca\x51\xca\x52\xca\x53\xca\x54\xca\x55\xca\x56\xca\x57\xca\x58\xca\x59\xca\x5a\xca\x5b\xca\x5c\xca\x5d\xca\x5e\xca\x5f\xca\x60\xca\x61\xca\x62\xca\x63\xca\x64\xca\x65\xca\x66\xca\x67\xca\x68\xca\x69\xca\x6a\xca\x6b\xca\x6c\xca\x6d\xca\x6e\xca\x6f\xca\x70\xca\x71\xca\x72\xca\x73\xca\x74\xca\x75\xca\x76\xca\x77\xca\x78\xca\x79\xca\x7a\xca\x7b\xca\x7c\xca\x7d\xca\x7e\xca\x7f\xca\x81\xca\x82\xca\x83\xca\x84\xca\x85\xca\x86\xca\x87\xca\x88\xca\x89\xca\x8a\xca\x8b\xca\x8c\xca\x8d\xca\x8e\xca\x8f\xca\x90\xca\x91\xca\x92\xca\x93\xca\x94\xca\x95\xca\x96\xca\x97\xca\x98\xca\x99\xca\x9a\xca\x9b\xca\x9c\xca\x9d\xca\x9e\xca\x9f\xca\xa0\xca\xa1\xca\xa2\xca\xa3\xca\xa4\xca\xa5\xca\xa6\xca\xa7\xca\xa8\xca\xa9\xca\xaa\xca\xab\xca\xac\xca\xad\xca\xae\xca\xaf\xca\xb0\xca\xb1\xca\xb2\xca\xb3\xca\xb4\xca\xb5\xca\xb6\xca\xb7\xca\xb8\xca\xb9\xca\xba\xca\xbb\xca\xbc\xca\xbd\xca\xbe\xca\xbf\xca\xc0\xca\xc1\xca\xc2", /* 9e00 */ "\xca\xc3\xca\xc4\xca\xc5\xca\xc6\xca\xc7\xca\xc8\xca\xc9\xca\xca\xca\xcb\xca\xcc\xca\xcd\xca\xce\xca\xcf\xca\xd0\xca\xd1\xca\xd2\xca\xd3\xca\xd4\xca\xd5\xca\xd6\xca\xd7\xca\xd8\xca\xd9\xca\xda\xca\xdb\xca\xdc\xca\xdd\xca\xde\xca\xdf\xca\xe0\xca\xe1\x52\xf0\x68\xae\x4e\xa5\x68\xaf\x52\x9a\xca\xe2\x53\x58\x59\x5b\xca\xe3\x68\xb0\x68\xb1\x68\xb2\x68\xb3\x68\xb4\x59\x5c\xca\xe4\x59\x8d\xca\xe5\x68\xb6\x68\xb5\x5a\xa6\xca\xe6\x57\x72\x68\xb7\x68\xb9\x68\xb8\x68\xba\x68\xbb\xca\xe7\xca\xe8\x4c\xea\x68\xbc\x4d\xe7\xca\xe9\x68\xbd\x68\xbe\x4f\xe8\x68\xbf\x4b\xeb\x68\xc0\x68\xc1\x68\xc2\x68\xc3\x54\xb4\x68\xc4\x68\xc5\xca\xea\x68\xc6\x53\x95\xca\xeb\x68\xc7\xca\xec\xca\xed\xca\xee\x68\xc8\xca\xef\x68\xc9\x6c\x5d\xca\xf0\x68\xca\x68\xcb\x68\xcc\xca\xf1\x68\xcd\xca\xf2\xca\xf3\xca\xf4\xca\xf5\x68\xce\x4d\xd6\xca\xf6\x68\xcf\x68\xd0\x68\xd1\x68\xd2\x68\xd3\x68\xd4\x68\xd5\x68\xd7\xca\xf7\xca\xf8\x5a\x45\x68\xd6\xca\xf9\x68\xd8\xca\xfa\xca\xfb\xca\xfc\xca\xfd\xcb\x41\xcb\x42\xcb\x43\xcb\x44\xcb\x45\xcb\x46\x6b\x5a\x51\xb8", /* 9e80 */ "\xcb\x47\xcb\x48\x6c\x85\xcb\x49\xcb\x4a\xcb\x4b\xcb\x4c\x6c\x86\x6c\x87\xcb\x4d\xcb\x4e\x6c\x88\xcb\x4f\xcb\x50\xcb\x51\xcb\x52\xcb\x53\xcb\x54\x6c\x89\x51\xb3\xcb\x55\xcb\x56\xcb\x57\xcb\x58\xcb\x59\xcb\x5a\xcb\x5b\xcb\x5c\xcb\x5d\x6c\x8b\xcb\x5e\x6c\x8c\xcb\x5f\xcb\x60\xcb\x61\xcb\x62\xcb\x63\xcb\x64\x51\xf2\xcb\x65\xcb\x66\xcb\x67\xcb\x68\xcb\x69\xcb\x6a\xcb\x6b\xcb\x6c\xcb\x6d\xcb\x6e\xcb\x6f\xcb\x70\xcb\x71\x6a\xef\xcb\x72\xcb\x73\xcb\x74\x6a\xee\xcb\x75\xcb\x76\x51\xe8\xcb\x77\x6c\x82\x6c\x83\xcb\x78\xcb\x79\xcb\x7a\xcb\x7b\xcb\x7c\x4e\x66\xcb\x7d\xcb\x7e\xcb\x7f\xcb\x81\x5d\x85\xcb\x82\xcb\x83\xcb\x84\x55\xf1\x50\xe7\x68\xa3\xcb\x85\x4d\xd9\xcb\x86\xcb\x87\x54\x4d\xcb\x88\xcb\x89\xcb\x8a\x52\xab\xcb\x8b\xcb\x8c\x6c\x8d\x6c\x8e\x6c\x8f\xcb\x8d\x6c\x91\x6c\x90\xcb\x8e\x6c\x92\xcb\x8f\xcb\x90\x6c\x95\xcb\x91\x6c\x94\xcb\x92\x6c\x93\x6c\x96\xcb\x93\xcb\x94\xcb\x95\xcb\x96\x6c\x97\xcb\x97\xcb\x98\xcb\x99\xcb\x9a\xcb\x9b\xcb\x9c\xcb\x9d\xcb\x9e\xcb\x9f\x67\x8a\xcb\xa0\x67\x8b\x67\x8c\xcb\xa1\x6b\xbb\xcb\xa2", /* 9f00 */ "\xcb\xa3\xcb\xa4\xcb\xa5\xcb\xa6\xcb\xa7\xcb\xa8\xcb\xa9\xcb\xaa\xcb\xab\xcb\xac\xcb\xad\x6b\xbc\xcb\xae\x6b\xbd\x4b\xa5\xcb\xaf\x5c\xbd\xcb\xb0\xcb\xb1\x4d\x64\xcb\xb2\xcb\xb3\xcb\xb4\x5c\xba\xcb\xb5\x5e\xb0\xcb\xb6\xcb\xb7\xcb\xb8\xcb\xb9\xcb\xba\xcb\xbb\x55\xf2\xcb\xbc\x6c\x98\xcb\xbd\xcb\xbe\xcb\xbf\xcb\xc0\xcb\xc1\xcb\xc2\xcb\xc3\xcb\xc4\xcb\xc5\x6c\x99\xcb\xc6\xcb\xc7\x6c\x9a\xcb\xc8\xcb\xc9\xcb\xca\xcb\xcb\xcb\xcc\xcb\xcd\xcb\xce\x6c\x9c\xcb\xcf\x6c\x9b\xcb\xd0\x49\x67\xcb\xd1\x6c\x9d\x6c\x9e\xcb\xd2\xcb\xd3\xcb\xd4\xcb\xd5\xcb\xd6\x6c\x9f\xcb\xd7\xcb\xd8\xcb\xd9\xcb\xda\xcb\xdb\xcb\xdc\xcb\xdd\xcb\xde\xcb\xdf\xcb\xe0\xcb\xe1\x53\xea\x66\xb3\xcb\xe2\xcb\xe3\xcb\xe4\xcb\xe5\xcb\xe6\xcb\xe7\xcb\xe8\xcb\xe9\xcb\xea\xcb\xeb\xcb\xec\xcb\xed\xcb\xee\xcb\xef\xcb\xf0\xcb\xf1\xcb\xf2\xcb\xf3\xcb\xf4\xcb\xf5\xcb\xf6\xcb\xf7\xcb\xf8\xcb\xf9\xcb\xfa\xcb\xfb\xcb\xfc\xcb\xfd\xcc\x41\xcc\x42\xcc\x43\xcc\x44\xcc\x45\xcc\x46\xcc\x47\xcc\x48\xcc\x49\xcc\x4a\xcc\x4b\xcc\x4c\xcc\x4d\xcc\x4e\xcc\x4f\xcc\x50\xcc\x51\x4a\x7d", /* 9f80 */ "\x6b\xb2\xcc\x52\xcc\x53\x6b\xb3\x51\x85\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x54\xa2\x6b\xba\xcc\x54\xcc\x55\xcc\x56\xcc\x57\xcc\x58\xcc\x59\xcc\x5a\xcc\x5b\xcc\x5c\xcc\x5d\xcc\x5e\xcc\x5f\x51\x9b\x4d\x48\x67\x89\xcc\x60\xcc\x61\xcc\x62\x4d\x8b\x5d\x7f\xcc\x63\xcc\x64\xcc\x65\xcc\x66\xcc\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ "\x6f\x75\x6f\x76\x6f\x77\x6f\x78\x6f\x79\x6f\x7a\x6f\x7b\x6f\x7c\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x84\x6f\x85\x6f\x86\x6f\x87\x6f\x88\x6f\x89\x6f\x8a\x6f\x8b\x6f\x8c\x6f\x8d\x6f\x8e\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9c\x6f\x9d\x6f\x9e\x6f\x9f\x6f\xa0\x6f\xa1\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa7\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb3\x6f\xb4\x6f\xb5\x6f\xb6\x6f\xb7\x6f\xb8\x6f\xb9\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc0\x6f\xc1\x6f\xc2\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xc9\x6f\xca\x6f\xcb\x6f\xcc\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd1\x6f\xd2\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xde\x6f\xdf\x6f\xe0\x6f\xe1\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea\x6f\xeb\x6f\xec\x6f\xed\x6f\xee\x6f\xef\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4", /* a080 */ "\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4c\x70\x4d\x70\x4e\x70\x4f\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5e\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6b\x70\x6c\x70\x6d\x70\x6e\x70\x6f\x70\x70\x70\x71\x70\x72\x70\x73\x70\x74\x70\x75\x70\x76\x70\x77\x70\x78\x70\x79\x70\x7a\x70\x7b\x70\x7c\x70\x7d\x70\x7e\x70\x7f\x70\x80\x70\x81\x70\x82\x70\x83\x70\x84\x70\x85\x70\x86\x70\x87\x70\x88\x70\x89\x70\x8a\x70\x8b\x70\x8c\x70\x8d\x70\x8e\x70\x8f\x70\x90\x70\x91\x70\x92\x70\x93\x70\x94\x70\x95\x70\x96\x70\x97\x70\x98\x70\x99\x70\x9a\x70\x9b\x70\x9c\x70\x9d\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xab\x70\xac\x70\xad\x70\xae\x70\xaf\x70\xb0\x70\xb1\x70\xb2\x70\xb3\x70\xb4\x70\xb5\x70\xb6", /* a100 */ "\x70\xb7\x70\xb8\x70\xb9\x70\xba\x70\xbb\x70\xbc\x70\xbd\x70\xbe\x70\xbf\x70\xc0\x70\xc1\x70\xc2\x70\xc3\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc8\x70\xc9\x70\xca\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xd8\x70\xd9\x70\xda\x70\xdb\x70\xdc\x70\xdd\x70\xde\x70\xdf\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe4\x70\xe5\x70\xe6\x70\xe7\x70\xe8\x70\xe9\x70\xea\x70\xeb\x70\xec\x70\xed\x70\xee\x70\xef\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf7\x70\xf8\x70\xf9\x70\xfa\x70\xfb\x70\xfc\x70\xfd\x70\xfe\x71\x41\x71\x42\x71\x43\x71\x44\x71\x45\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4a\x71\x4b\x71\x4c\x71\x4d\x71\x4e\x71\x4f\x71\x50\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5c\x71\x5d\x71\x5e\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x64\x71\x65\x71\x66\x71\x67\x71\x68\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6e\x71\x6f\x71\x70\x71\x71\x71\x72\x71\x73\x71\x74\x71\x75\x71\x76\x71\x77\x71\x78", /* a180 */ "\x71\x79\x71\x7a\x71\x7b\x71\x7c\x71\x7d\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x84\x71\x85\x71\x86\x71\x87\x71\x88\x71\x89\x71\x8a\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x8f\x71\x90\x71\x91\x71\x92\x71\x93\x71\x94\x71\x95\x71\x96\x71\x97\x71\x98\x71\x99\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\x9f\x71\xa0\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa8\x71\xa9\x71\xaa\x71\xab\x71\xac\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb3\x71\xb4\x71\xb5\x71\xb6\x71\xb7\x71\xb8\x71\xb9\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc3\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xce\x71\xcf\x71\xd0\x71\xd1\x71\xd2\x71\xd3\x71\xd4\x71\xd5\x71\xd6\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe0\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe5\x71\xe6\x71\xe7\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xee\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8", /* a200 */ "\x71\xf9\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x47\x72\x48\x72\x49\x72\x4a\x72\x4b\x72\x4c\x72\x4d\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x52\x72\x53\x72\x54\x72\x55\x72\x56\x72\x57\x72\x58\x72\x59\x72\x5a\x72\x5b\x72\x5c\x72\x5d\x72\x5e\x72\x5f\x72\x60\x72\x61\x72\x62\x72\x63\x72\x64\x72\x65\x72\x66\x72\x67\x72\x68\x72\x69\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x6e\x72\x6f\x72\x70\x72\x71\x72\x72\x72\x73\x72\x74\x72\x75\x72\x76\x72\x77\x72\x78\x72\x79\x72\x7a\x72\x7b\x72\x7c\x72\x7d\x72\x7e\x72\x7f\x72\x80\x72\x81\x72\x82\x72\x83\x72\x84\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8a\x72\x8b\x72\x8c\x72\x8d\x72\x8e\x72\x8f\x72\x90\x72\x91\x72\x92\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\x9f\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xac\x72\xad\x72\xae\x72\xaf\x72\xb0\x72\xb1\x72\xb2\x72\xb3\x72\xb4\x72\xb5\x72\xb6\x72\xb7\x72\xb8\x72\xb9\x72\xba", /* a280 */ "\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc1\x72\xc2\x72\xc3\x72\xc4\x72\xc5\x72\xc6\x72\xc7\x72\xc8\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcd\x72\xce\x72\xcf\x72\xd0\x72\xd1\x72\xd2\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd7\x72\xd8\x72\xd9\x72\xda\x72\xdb\x72\xdc\x72\xdd\x72\xde\x72\xdf\x72\xe0\x72\xe1\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xe8\x72\xe9\x72\xea\x72\xeb\x72\xec\x72\xed\x72\xee\x72\xef\x72\xf0\x72\xf1\x72\xf2\x72\xf3\x72\xf4\x72\xf5\x72\xf6\x72\xf7\x72\xf8\x72\xf9\x72\xfa\x72\xfb\x72\xfc\x72\xfd\x72\xfe\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4d\x73\x4e\x73\x4f\x73\x50\x73\x51\x73\x52\x73\x53\x73\x54\x73\x55\x73\x56\x73\x57\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x60\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6c\x73\x6d\x73\x6e\x73\x6f\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c", /* a300 */ "\x73\x7d\x73\x7e\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x84\x73\x85\x73\x86\x73\x87\x73\x88\x73\x89\x73\x8a\x73\x8b\x73\x8c\x73\x8d\x73\x8e\x73\x8f\x73\x90\x73\x91\x73\x92\x73\x93\x73\x94\x73\x95\x73\x96\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9b\x73\x9c\x73\x9d\x73\x9e\x73\x9f\x73\xa0\x73\xa1\x73\xa2\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xa9\x73\xaa\x73\xab\x73\xac\x73\xad\x73\xae\x73\xaf\x73\xb0\x73\xb1\x73\xb2\x73\xb3\x73\xb4\x73\xb5\x73\xb6\x73\xb7\x73\xb8\x73\xb9\x73\xba\x73\xbb\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc0\x73\xc1\x73\xc2\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xc8\x73\xc9\x73\xca\x73\xcb\x73\xcc\x73\xcd\x73\xce\x73\xcf\x73\xd0\x73\xd1\x73\xd2\x73\xd3\x73\xd4\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xd9\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xde\x73\xdf\x73\xe0\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe5\x73\xe6\x73\xe7\x73\xe8\x73\xe9\x73\xea\x73\xeb\x73\xec\x73\xed\x73\xee\x73\xef\x73\xf0\x73\xf1\x73\xf2\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc", /* a380 */ "\x73\xfd\x73\xfe\x74\x41\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x55\x74\x56\x74\x57\x74\x58\x74\x59\x74\x5a\x74\x5b\x74\x5c\x74\x5d\x74\x5e\x74\x5f\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6d\x74\x6e\x74\x6f\x74\x70\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x76\x74\x77\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7e\x74\x7f\x74\x80\x74\x81\x74\x82\x74\x83\x74\x84\x74\x85\x74\x86\x74\x87\x74\x88\x74\x89\x74\x8a\x74\x8b\x74\x8c\x74\x8d\x74\x8e\x74\x8f\x74\x90\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96\x74\x97\x74\x98\x74\x99\x74\x9a\x74\x9b\x74\x9c\x74\x9d\x74\x9e\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xa7\x74\xa8\x74\xa9\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xba\x74\xbb\x74\xbc\x74\xbd\x74\xbe", /* a400 */ "\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd2\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdc\x74\xdd\x74\xde\x74\xdf\x74\xe0\x74\xe1\x74\xe2\x74\xe3\x74\xe4\x74\xe5\x74\xe6\x74\xe7\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xee\x74\xef\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf4\x74\xf5\x74\xf6\x74\xf7\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x41\x75\x42\x75\x43\x75\x44\x75\x45\x75\x46\x75\x47\x75\x48\x75\x49\x75\x4a\x75\x4b\x75\x4c\x75\x4d\x75\x4e\x75\x4f\x75\x50\x75\x51\x75\x52\x75\x53\x75\x54\x75\x55\x75\x56\x75\x57\x75\x58\x75\x59\x75\x5a\x75\x5b\x75\x5c\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x65\x75\x66\x75\x67\x75\x68\x75\x69\x75\x6a\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x72\x75\x73\x75\x74\x75\x75\x75\x76\x75\x77\x75\x78\x75\x79\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x7f\x75\x80", /* a480 */ "\x75\x81\x75\x82\x75\x83\x75\x84\x75\x85\x75\x86\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8b\x75\x8c\x75\x8d\x75\x8e\x75\x8f\x75\x90\x75\x91\x75\x92\x75\x93\x75\x94\x75\x95\x75\x96\x75\x97\x75\x98\x75\x99\x75\x9a\x75\x9b\x75\x9c\x75\x9d\x75\x9e\x75\x9f\x75\xa0\x75\xa1\x75\xa2\x75\xa3\x75\xa4\x75\xa5\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xab\x75\xac\x75\xad\x75\xae\x75\xaf\x75\xb0\x75\xb1\x75\xb2\x75\xb3\x75\xb4\x75\xb5\x75\xb6\x75\xb7\x75\xb8\x75\xb9\x75\xba\x75\xbb\x75\xbc\x75\xbd\x75\xbe\x75\xbf\x75\xc0\x75\xc1\x75\xc2\x75\xc3\x75\xc4\x75\xc5\x75\xc6\x75\xc7\x75\xc8\x75\xc9\x75\xca\x75\xcb\x75\xcc\x75\xcd\x75\xce\x75\xcf\x75\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1", /* e080 */ "\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85", /* e100 */ "\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48", /* e180 */ "\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9", /* e200 */ "\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d", /* e280 */ "\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50", /* e300 */ "\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1", /* e380 */ "\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95", /* e400 */ "\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58", /* e480 */ "\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9", /* e500 */ "\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d", /* e580 */ "\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60", /* e600 */ "\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1", /* e680 */ "\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5", /* e700 */ "\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x80\x41\x80\x42\x80\x43\x80\x44\x80\x45\x80\x46\x80\x47\x80\x48\x80\x49\x80\x4a\x80\x4b\x80\x4c\x80\x4d\x80\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x90\xfc\x91\xfc\x92\xfc\x93\xfc\x94\xfc\x95\xfc\x96\xfc\x97\xfc\x98\xfc\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x57\xce\x58\xce\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x67\x00\x00\x00\x00\x00\x00\x00\x00\xce\x6c\xce\x6d\x00\x00\x00\x00\x00\x00\x00\x00\xce\x72\xce\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x96\xce\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5b\x44\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x46\xce\x47\xce\x48\xce\x49\x00\x00\xce\x4a\x00\x00\xce\x4b\xce\x4c\x00\x00\x00\x00\x00\x00\xce\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x4e\xce\x4f\xce\x50\x00\x00\xce\x51\xce\x52\x00\x00\x00\x00\xce\x53\xce\x54\xce\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x47\xf8\x48\xf8\x49\xf8\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x6b\xf8\x6c\xf8\x6d\xf8\x6e\x00\x00\x00\x00", /* fb80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x7f\xf8\x80\xf8\x81\xf8\x82\xf8\x83\xf8\x84\xf8\x85\xf8\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x9b\xf8\x9c\xf8\x9d\xf8\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xc4\xf8\xc5\xf8\xc6\xf8\xc7\xf8\xc8\xf8\xc9\xf8\xca\xf8\xcb\xf8\xcc\xf8\xcd\xf8\xce\xf8\xcf\xf8\xd0\xf8\xd1\xf8\xd2\xf8\xd3\xf8\xd4\xf8\xd5\xf8\xd6\xf8\xd7\xf8\xd8\xf8\xd9\xf8\xda\xf8\xdb\xf8\xdc\xf8\xdd\xf8\xde\xf8\xdf\xf8\xe0\xf8\xe1\xf8\xe2\xf8\xe3\xf8\xe4\xf8\xe5\xf8\xe6\xf8\xe7\xf8\xe8\xf8\xe9\xf8\xea\xf8\xeb\xf8\xec\xf8\xed\xf8\xee\xf8\xef\xf8\xf0", /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa8\x47\x51\x00\x00\x47\x52\x47\x53\x47\x41\x47\x42\x47\x4f\x47\x50\x47\x43\x47\x44\x47\x4d\x47\x4e\x47\x47\x47\x48\x47\x45\x47\x46\x47\x49\x47\x4a\x47\x4b\x47\x4c\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa9\xcd\xaa\xcd\xab\xcd\xac\xcd\xad\xcd\xae\xcd\xaf\xcd\xb0\xcd\xb1\xcd\xb2\x00\x00\xcd\xb3\xcd\xb4\xcd\xb5\xcd\xb6\x00\x00\xcd\xb7\xcd\xb8\xcd\xb9\xcd\xba\xcd\xbb\xcd\xbc\xcd\xbd\xcd\xbe\xcd\xbf\xcd\xc0\xcd\xc1\xcd\xc2\xcd\xc3\xcd\xc4\x00\x00\xcd\xc5\xcd\xc6\xcd\xc7\xcd\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fe80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xd0\xfb\xd1\xfb\xd2\xfb\xd3\xfb\xd4\xfb\xd5\xfb\xd6\xfb\xd7\xfb\xd8\xfb\xd9\x00\x00\x00\x00\xfb\xdc\xfb\xdd\xfb\xde\xfb\xdf\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xe4\xfb\xe5\xfb\xe6\xfb\xe7\xfb\xe8\xfb\xe9\xfb\xea\xfb\xeb\xfb\xec\xfb\xed\xfb\xee\xfb\xef\xfb\xf0\xfb\xf1\x00\x00\x00\x00\xfb\xf4\xfb\xf5\xfb\xf6\xfb\xf7\xfb\xf8\xfb\xf9\xfb\xfa\xfb\xfb\xfb\xfc\xfb\xfd\xfb\xfe\xfc\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x52\xfc\x53\xfc\x54\xfc\x55\xfc\x56\xfc\x57\xfc\x58\xfc\x59\xfc\x5a\xfc\x5b\xfc\x5c\xfc\x5d\xfc\x5e\xfc\x5f\xfc\x60\xfc\x61\xfc\x62\xfc\x63\xfc\x64\xfc\x65\xfc\x66\xfc\x67\xfc\x68\xfc\x69\xfc\x6a\xfc\x6b\xfc\x6c\xfc\x6d\xfc\x6e\xfc\x6f\xfc\x70\xfc\x71\xfc\x72\xfc\x73\xfc\x74\xfc\x75\xfc\x76\xfc\x77\xfc\x78\xfc\x79\xfc\x7a\xfc\x7b\xfc\x7c\xfc\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x84\xfc\x85\x00\x00\x00\x00\x00\x00", /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-1388_P103-2001 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x21\x6a\x21\x6b\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\xf8\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x15\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x64\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x65\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x16\x30\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x36\x22\x27\x22\x28\x22\x11\x22\x0f\x22\x2a\x22\x29\x22\x08\x22\x37\x22\x1a\x22\xa5\x22\x25\x22\x20\x23\x12\x22\x99\x22\x2b\x22\x2e\x22\x61\x22\x4c\x22\x48\x22\x3d\x22\x1d\x00\x00\x22\x6e\x22\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x20\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x88\x24\x89\x24\x8a\x24\x8b\x24\x8c\x24\x8d\x24\x8e\x24\x8f\x24\x90\x24\x91\x24\x92\x24\x93\x24\x94\x24\x95\x24\x96\x24\x97\x24\x98\x24\x99\x24\x9a\x24\x9b\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x24\x7e\x24\x7f\x24\x80\x24\x81\x24\x82\x24\x83\x24\x84\x24\x85\x24\x86\x24\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x20\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x20\x32\x21\x32\x22\x32\x23\x32\x24\x32\x25\x32\x26\x32\x27\x32\x28\x32\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xe1\x01\xce\x00\xe0\x01\x13\x00\xe9\x01\x1b\x00\xe8\x01\x2b\x00\xed\x01\xd0\x00\xec\x01\x4d\x00\xf3\x01\xd2\x00\xf2\x01\x6b\x00\xfa\x01\xd4\x00\xf9\x01\xd6\x01\xd8\x01\xda\x01\xdc\x00\xfc\x00\xea\x02\x51\xe7\xc7\x01\x44\x01\x48\x01\xf9\x02\x61\x00\x00\x00\x00\x00\x00\x00\x00\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f", /* 4680 */ "\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x25\x01\x25\x02\x25\x03\x25\x04\x25\x05\x25\x06\x25\x07\x25\x08\x25\x09\x25\x0a\x25\x0b\x25\x0c\x25\x0d\x25\x0e\x25\x0f\x25\x10\x25\x11\x25\x12\x25\x13\x25\x14\x25\x15\x25\x16\x25\x17\x25\x18\x25\x19\x25\x1a\x25\x1b\x25\x1c\x25\x1d\x25\x1e\x25\x1f\x25\x20\x25\x21\x25\x22\x25\x23\x25\x24\x25\x25\x25\x26\x25\x27\x25\x28\x25\x29\x25\x2a\x25\x2b\x25\x2c\x25\x2d\x25\x2e\x25\x2f\x25\x30\x25\x31\x25\x32\x25\x33\x25\x34\x25\x35\x25\x36\x25\x37\x25\x38\x25\x39\x25\x3a\x25\x3b\x25\x3c\x25\x3d\x25\x3e\x25\x3f\x25\x40\x25\x41\x25\x42\x25\x43\x25\x44\x25\x45\x25\x46\x25\x47\x25\x48\x25\x49\x25\x4a\x25\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x35\xfe\x36\xfe\x39\xfe\x3a\xfe\x3f\xfe\x40\xfe\x3d\xfe\x3e\xfe\x41\xfe\x42\xfe\x43\xfe\x44\xfe\x3b\xfe\x3c\xfe\x37\xfe\x38\xfe\x31\xfe\x33\xfe\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x06\x01\x06\x02\x06\x03\x06\x04\x06\x05\x06\x06\x06\x07\x06\x08\x06\x09\x06\x0a\x06\x0b\x06\x0c\x06\x0d\x06\x0e\x06\x0f\x06\x10\x06\x11\x06\x12\x06\x13\x06\x14\x06\x15\x06\x16\x06\x17\x06\x18\x06\x19\x06\x1a\x06\x1b\x06\x1c\x06\x1d\x06\x1e\x06\x1f\x06\x20\x06\x21\x06\x22", /* 4780 */ "\x06\x23\x06\x24\x06\x25\x06\x26\x06\x27\x06\x28\x06\x29\x06\x2a\x06\x2b\x06\x2c\x06\x2d\x06\x2e\x06\x2f\x06\x30\x06\x31\x06\x32\x06\x33\x06\x34\x06\x35\x06\x36\x06\x37\x06\x38\x06\x39\x06\x3a\x06\x3b\x06\x3c\x06\x3d\x06\x3e\x06\x3f\x06\x40\x06\x41\x06\x42\x06\x43\x06\x44\x06\x45\x06\x46\x06\x47\x06\x48\x06\x49\x06\x4a\x06\x4b\x06\x4c\x06\x4d\x06\x4e\x06\x4f\x06\x50\x06\x51\x06\x52\x06\x53\x06\x54\x06\x55\x06\x56\x06\x57\x06\x58\x06\x59\x06\x5a\x06\x5b\x06\x5c\x06\x5d\x06\x5e\x06\x5f\x06\x60\x06\x61\x06\x62\x06\x63\x06\x64\x06\x65\x06\x66\x06\x67\x06\x68\x06\x69\x06\x6a\x06\x6b\x06\x6c\x06\x6d\x06\x6e\x06\x6f\x06\x70\x06\x71\x06\x72\x06\x73\x06\x74\x06\x75\x06\x76\x06\x77\x06\x78\x06\x79\x06\x7a\x06\x7b\x06\x7c\x06\x7d\x06\x7e\x06\x7f\x06\x80\x06\x81\x06\x82\x06\x83\x06\x84\x06\x85\x06\x86\x06\x87\x06\x88\x06\x89\x06\x8a\x06\x8b\x06\x8c\x06\x8d\x06\x8e\x06\x8f\x06\x90\x06\x91\x06\x92\x06\x93\x06\x94\x06\x95\x06\x96\x06\x97\x06\x98\x06\x99\x06\x9a\x06\x9b\x06\x9c\x06\x9d\x06\x9e\x06\x9f\x06\xa0\x06\xa1\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\xa2\x06\xa3\x06\xa4\x06\xa5\x06\xa6\x06\xa7\x06\xa8\x06\xa9\x06\xaa\x06\xab\x06\xac\x06\xad\x06\xae\x06\xaf\x06\xb0\x06\xb1\x06\xb2\x06\xb3\x06\xb4\x06\xb5\x06\xb6\x06\xb7\x06\xb8\x06\xb9\x06\xba\x06\xbb\x06\xbc\x06\xbd\x06\xbe\x06\xbf\x06\xc0\x06\xc1\x06\xc2\x06\xc3\x06\xc4\x06\xc5\x06\xc6\x06\xc7\x06\xc8\x06\xc9\x06\xca\x06\xcb\x06\xcc\x06\xcd\x06\xce\x06\xcf\x06\xd0\x06\xd1\x06\xd2\x06\xd3\x06\xd4\x06\xd5\x06\xd6\x06\xd7\x06\xd8\x06\xd9\x06\xda\x06\xdb\x06\xdc\x06\xdd\x06\xde\x06\xdf\x06\xe0", /* 4880 */ "\x06\xe1\x06\xe2\x06\xe3\x06\xe4\x06\xe5\x06\xe6\x06\xe7\x06\xe8\x06\xe9\x06\xea\x06\xeb\x06\xec\x06\xed\x06\xee\x06\xef\x06\xf0\x06\xf1\x06\xf2\x06\xf3\x06\xf4\x06\xf5\x06\xf6\x06\xf7\x06\xf8\x06\xf9\x06\xfa\x06\xfb\x06\xfc\x06\xfd\x06\xfe\x06\xff\x00\x00\x55\x4a\x96\x3f\x57\xc3\x63\x28\x54\xce\x55\x09\x54\xc0\x76\x91\x76\x4c\x85\x3c\x77\xee\x82\x7e\x78\x8d\x72\x31\x96\x98\x97\x8d\x6c\x28\x5b\x89\x4f\xfa\x63\x09\x66\x97\x5c\xb8\x80\xfa\x68\x48\x80\xae\x66\x02\x76\xce\x51\xf9\x65\x56\x71\xac\x7f\xf1\x88\x84\x50\xb2\x59\x65\x61\xca\x6f\xb3\x82\xad\x63\x4c\x62\x52\x53\xed\x54\x27\x7b\x06\x51\x6b\x75\xa4\x5d\xf4\x62\xd4\x8d\xcb\x97\x76\x62\x8a\x80\x19\x57\x5d\x97\x38\x7f\x62\x72\x38\x76\x7d\x67\xcf\x76\x7e\x64\x46\x4f\x70\x8d\x25\x62\xdc\x7a\x17\x65\x91\x73\xed\x64\x2c\x62\x73\x82\x2c\x98\x81\x67\x7f\x72\x48\x62\x6e\x62\xcc\x4f\x34\x74\xe3\x53\x4a\x52\x9e\x7e\xca\x90\xa6\x5e\x2e\x68\x86\x69\x9c\x81\x80\x7e\xd1\x68\xd2\x78\xc5\x86\x8c\x95\x51\x50\x8d\x8c\x24\x82\xde\x80\xde\x53\x05\x89\x12\x52\x65\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x84\x96\xf9\x4f\xdd\x58\x21\x99\x71\x5b\x9d\x62\xb1\x62\xa5\x66\xb4\x8c\x79\x9c\x8d\x72\x06\x67\x6f\x78\x91\x60\xb2\x53\x51\x53\x17\x8f\x88\x80\xcc\x8d\x1d\x94\xa1\x50\x0d\x72\xc8\x59\x07\x60\xeb\x71\x19\x88\xab\x59\x54\x82\xef\x67\x2c\x7b\x28\x5d\x29\x7e\xf7\x75\x2d\x6c\xf5\x8e\x66\x8f\xf8\x90\x3c\x9f\x3b\x6b\xd4\x91\x19\x7b\x14\x5f\x7c\x78\xa7\x84\xd6\x85\x3d\x6b\xd5\x6b\xd9\x6b\xd6\x5e\x01\x5e\x87\x75\xf9\x95\xed\x65\x5d\x5f\x0a\x5f\xc5\x8f\x9f\x58\xc1\x81\xc2\x90\x7f\x96\x5b\x97\xad\x8f\xb9", /* 4980 */ "\x00\x00\x7f\x16\x8d\x2c\x62\x41\x4f\xbf\x53\xd8\x53\x5e\x8f\xa8\x8f\xa9\x8f\xab\x90\x4d\x68\x07\x5f\x6a\x81\x98\x88\x68\x9c\xd6\x61\x8b\x52\x2b\x76\x2a\x5f\x6c\x65\x8c\x6f\xd2\x6e\xe8\x5b\xbe\x64\x48\x51\x75\x51\xb0\x67\xc4\x4e\x19\x79\xc9\x99\x7c\x70\xb3\x75\xc5\x5e\x76\x73\xbb\x83\xe0\x64\xad\x62\xe8\x94\xb5\x6c\xe2\x53\x5a\x52\xc3\x64\x0f\x94\xc2\x7b\x94\x4f\x2f\x5e\x1b\x82\x36\x81\x16\x81\x8a\x6e\x24\x6c\xca\x9a\x73\x63\x55\x53\x5c\x54\xfa\x88\x65\x57\xe0\x4e\x0d\x5e\x03\x6b\x65\x7c\x3f\x90\xe8\x60\x16\x64\xe6\x73\x1c\x88\xc1\x67\x50\x62\x4d\x8d\x22\x77\x6c\x8e\x29\x91\xc7\x5f\x69\x83\xdc\x85\x21\x99\x10\x53\xc2\x86\x95\x6b\x8b\x60\xed\x60\xe8\x70\x7f\x82\xcd\x82\x31\x4e\xd3\x6c\xa7\x85\xcf\x64\xcd\x7c\xd9\x69\xfd\x66\xf9\x83\x49\x53\x95\x7b\x56\x4f\xa7\x51\x8c\x6d\x4b\x5c\x42\x8e\x6d\x63\xd2\x53\xc9\x83\x2c\x83\x36\x67\xe5\x78\xb4\x64\x3d\x5b\xdf\x5c\x94\x5d\xee\x8b\xe7\x62\xc6\x67\xf4\x8c\x7a\x64\x00\x63\xba\x87\x49\x99\x8b\x8c\x17\x7f\x20\x94\xf2\x4e\xa7\x96\x10\x98\xa4\x66\x0c\x73\x16\x00\x00\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x3a\x5c\x1d\x5e\x38\x95\x7f\x50\x7f\x80\xa0\x53\x82\x65\x5e\x75\x45\x55\x31\x50\x21\x8d\x85\x62\x84\x94\x9e\x67\x1d\x56\x32\x6f\x6e\x5d\xe2\x54\x35\x70\x92\x8f\x66\x62\x6f\x64\xa4\x63\xa3\x5f\x7b\x6f\x88\x90\xf4\x81\xe3\x8f\xb0\x5c\x18\x66\x68\x5f\xf1\x6c\x89\x96\x48\x8d\x81\x88\x6c\x64\x91\x79\xf0\x57\xce\x6a\x59\x62\x10\x54\x48\x4e\x58\x7a\x0b\x60\xe9\x6f\x84\x8b\xda\x62\x7f\x90\x1e\x9a\x8b\x79\xe4\x54\x03\x75\xf4\x63\x01\x53\x19\x6c\x60\x8f\xdf\x5f\x1b\x9a\x70\x80\x3b\x9f\x7f\x4f\x88\x5c\x3a", /* 4a80 */ "\x00\x00\x8d\x64\x7f\xc5\x65\xa5\x70\xbd\x51\x45\x51\xb2\x86\x6b\x5d\x07\x5b\xa0\x62\xbd\x91\x6c\x75\x74\x8e\x0c\x7a\x20\x61\x01\x7b\x79\x4e\xc7\x7e\xf8\x77\x85\x4e\x11\x81\xed\x52\x1d\x51\xfa\x6a\x71\x53\xa8\x8e\x87\x95\x04\x96\xcf\x6e\xc1\x96\x64\x69\x5a\x78\x40\x50\xa8\x77\xd7\x64\x10\x89\xe6\x59\x04\x63\xe3\x5d\xdd\x7a\x7f\x69\x3d\x4f\x20\x82\x39\x55\x98\x4e\x32\x75\xae\x7a\x97\x5e\x62\x5e\x8a\x95\xef\x52\x1b\x54\x39\x70\x8a\x63\x76\x95\x24\x57\x82\x66\x25\x69\x3f\x91\x87\x55\x07\x6d\xf3\x7e\xaf\x88\x22\x62\x33\x7e\xf0\x75\xb5\x83\x28\x78\xc1\x96\xcc\x8f\x9e\x61\x48\x74\xf7\x8b\xcd\x6b\x64\x52\x3a\x8d\x50\x6b\x21\x80\x6a\x84\x71\x56\xf1\x53\x06\x4e\xce\x4e\x1b\x51\xd1\x7c\x97\x91\x8b\x7c\x07\x4f\xc3\x8e\x7f\x7b\xe1\x7a\x9c\x64\x67\x5d\x14\x50\xac\x81\x06\x76\x01\x7c\xb9\x6d\xec\x7f\xe0\x67\x51\x5b\x58\x5b\xf8\x78\xcb\x64\xae\x64\x13\x63\xaa\x63\x2b\x95\x19\x64\x2d\x8f\xbe\x7b\x54\x76\x29\x62\x53\x59\x27\x54\x46\x6b\x79\x50\xa3\x62\x34\x5e\x26\x6b\x86\x4e\xe3\x8d\x37\x88\x8b\x5f\x85\x90\x2e\x00\x00\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x20\x80\x3d\x62\xc5\x4e\x39\x53\x55\x90\xf8\x63\xb8\x80\xc6\x65\xe6\x6c\x2e\x4f\x46\x60\xee\x6d\xe1\x8b\xde\x5f\x39\x86\xcb\x5f\x53\x63\x21\x51\x5a\x83\x61\x68\x63\x52\x00\x63\x63\x8e\x48\x50\x12\x5c\x9b\x79\x77\x5b\xfc\x52\x30\x7a\x3b\x60\xbc\x90\x53\x76\xd7\x5f\xb7\x5f\x97\x76\x84\x8e\x6c\x70\x6f\x76\x7b\x7b\x49\x77\xaa\x51\xf3\x90\x93\x58\x24\x4f\x4e\x6e\xf4\x8f\xea\x65\x4c\x7b\x1b\x72\xc4\x6d\xa4\x7f\xdf\x5a\xe1\x62\xb5\x5e\x95\x57\x30\x84\x82\x7b\x2c\x5e\x1d\x5f\x1f\x90\x12\x7f\x14\x98\xa0", /* 4b80 */ "\x00\x00\x63\x82\x6e\xc7\x78\x98\x70\xb9\x51\x78\x97\x5b\x57\xab\x75\x35\x4f\x43\x75\x38\x5e\x97\x60\xe6\x59\x60\x6d\xc0\x6b\xbf\x78\x89\x53\xfc\x96\xd5\x51\xcb\x52\x01\x63\x89\x54\x0a\x94\x93\x8c\x03\x8d\xcc\x72\x39\x78\x9f\x87\x76\x8f\xed\x8c\x0d\x53\xe0\x4e\x01\x76\xef\x53\xee\x94\x89\x98\x76\x9f\x0e\x95\x2d\x5b\x9a\x8b\xa2\x4e\x22\x4e\x1c\x51\xac\x84\x63\x61\xc2\x52\xa8\x68\x0b\x4f\x97\x60\x6b\x51\xbb\x6d\x1e\x51\x5c\x62\x96\x65\x97\x96\x61\x8c\x46\x90\x17\x75\xd8\x90\xfd\x77\x63\x6b\xd2\x72\x8a\x72\xec\x8b\xfb\x58\x35\x77\x79\x8d\x4c\x67\x5c\x95\x40\x80\x9a\x5e\xa6\x6e\x21\x59\x92\x7a\xef\x77\xed\x95\x3b\x6b\xb5\x65\xad\x7f\x0e\x58\x06\x51\x51\x96\x1f\x5b\xf9\x58\xa9\x54\x28\x8e\x72\x65\x66\x98\x7f\x56\xe4\x94\x9d\x76\xfe\x90\x41\x63\x87\x54\xc6\x59\x1a\x59\x3a\x57\x9b\x8e\xb2\x67\x35\x8d\xfa\x82\x35\x52\x41\x60\xf0\x58\x15\x86\xfe\x5c\xe8\x9e\x45\x4f\xc4\x98\x9d\x8b\xb9\x5a\x25\x60\x76\x53\x84\x62\x7c\x90\x4f\x91\x02\x99\x7f\x60\x69\x80\x0c\x51\x3f\x80\x33\x5c\x14\x99\x75\x6d\x31\x4e\x8c\x00\x00\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x30\x53\xd1\x7f\x5a\x7b\x4f\x4f\x10\x4e\x4f\x96\x00\x6c\xd5\x73\xd0\x85\xe9\x5e\x06\x75\x6a\x7f\xfb\x6a\x0a\x77\xfe\x94\x92\x7e\x41\x51\xe1\x70\xe6\x53\xcd\x8f\xd4\x83\x03\x8d\x29\x72\xaf\x99\x6d\x6c\xdb\x57\x4a\x82\xb3\x65\xb9\x80\xaa\x62\x3f\x96\x32\x59\xa8\x4e\xff\x8b\xbf\x7e\xba\x65\x3e\x83\xf2\x97\x5e\x55\x61\x98\xde\x80\xa5\x53\x2a\x8b\xfd\x54\x20\x80\xba\x5e\x9f\x6c\xb8\x8d\x39\x82\xac\x91\x5a\x54\x29\x6c\x1b\x52\x06\x7e\xb7\x57\x5f\x71\x1a\x6c\x7e\x7c\x89\x59\x4b\x4e\xfd\x5f\xff\x61\x24", /* 4c80 */ "\x00\x00\x7c\xaa\x4e\x30\x5c\x01\x67\xab\x87\x02\x5c\xf0\x95\x0b\x98\xce\x75\xaf\x70\xfd\x90\x22\x51\xaf\x7f\x1d\x8b\xbd\x59\x49\x51\xe4\x4f\x5b\x54\x26\x59\x2b\x65\x77\x80\xa4\x5b\x75\x62\x76\x62\xc2\x8f\x90\x5e\x45\x6c\x1f\x7b\x26\x4f\x0f\x4f\xd8\x67\x0d\x6d\x6e\x6d\xaa\x79\x8f\x88\xb1\x5f\x17\x75\x2b\x62\x9a\x8f\x85\x4f\xef\x91\xdc\x65\xa7\x81\x2f\x81\x51\x5e\x9c\x81\x50\x8d\x74\x52\x6f\x89\x86\x8d\x4b\x59\x0d\x50\x85\x4e\xd8\x96\x1c\x72\x36\x81\x79\x8d\x1f\x5b\xcc\x8b\xa3\x96\x44\x59\x87\x7f\x1a\x54\x90\x56\x76\x56\x0e\x8b\xe5\x65\x39\x69\x82\x94\x99\x76\xd6\x6e\x89\x5e\x72\x75\x18\x67\x46\x67\xd1\x7a\xff\x80\x9d\x8d\x76\x61\x1f\x79\xc6\x65\x62\x8d\x63\x51\x88\x52\x1a\x94\xa2\x7f\x38\x80\x9b\x7e\xb2\x5c\x97\x6e\x2f\x67\x60\x7b\xd9\x76\x8b\x9a\xd8\x81\x8f\x7f\x94\x7c\xd5\x64\x1e\x95\x50\x7a\x3f\x54\x4a\x54\xe5\x6b\x4c\x64\x01\x62\x08\x9e\x3d\x80\xf3\x75\x99\x52\x72\x97\x69\x84\x5b\x68\x3c\x86\xe4\x96\x01\x96\x94\x94\xec\x4e\x2a\x54\x04\x7e\xd9\x68\x39\x8d\xdf\x80\x15\x66\xf4\x5e\x9a\x7f\xb9\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x80\x3f\x68\x97\x5d\xe5\x65\x3b\x52\x9f\x60\x6d\x9f\x9a\x4f\x9b\x8e\xac\x51\x6c\x5b\xab\x5f\x13\x5d\xe9\x6c\x5e\x62\xf1\x8d\x21\x51\x71\x94\xa9\x52\xfe\x6c\x9f\x82\xdf\x72\xd7\x57\xa2\x67\x84\x8d\x2d\x59\x1f\x8f\x9c\x83\xc7\x54\x95\x7b\x8d\x4f\x30\x6c\xbd\x5b\x64\x59\xd1\x9f\x13\x53\xe4\x86\xca\x9a\xa8\x8c\x37\x80\xa1\x65\x45\x98\x7e\x56\xfa\x96\xc7\x52\x2e\x74\xdc\x52\x50\x5b\xe1\x63\x02\x89\x02\x4e\x56\x62\xd0\x60\x2a\x68\xfa\x51\x73\x5b\x98\x51\xa0\x89\xc2\x7b\xa1\x99\x86\x7f\x50\x60\xef", /* 4d80 */ "\x00\x00\x70\x4c\x8d\x2f\x51\x49\x5e\x7f\x90\x1b\x74\x70\x89\xc4\x57\x2d\x78\x45\x5f\x52\x9f\x9f\x95\xfa\x8f\x68\x9b\x3c\x8b\xe1\x76\x78\x68\x42\x67\xdc\x8d\xea\x8d\x35\x52\x3d\x8f\x8a\x6e\xda\x68\xcd\x95\x05\x90\xed\x56\xfd\x67\x9c\x88\xf9\x8f\xc7\x54\xc8\x9a\xb8\x5b\x69\x6d\x77\x6c\x26\x4e\xa5\x5b\xb3\x9a\x87\x91\x63\x61\xa8\x90\xaf\x97\xe9\x54\x2b\x6d\xb5\x5b\xd2\x51\xfd\x55\x8a\x7f\x55\x7f\xf0\x64\xbc\x63\x4d\x65\xf1\x61\xbe\x60\x8d\x71\x0a\x6c\x57\x6c\x49\x59\x2f\x67\x6d\x82\x2a\x58\xd5\x56\x8e\x8c\x6a\x6b\xeb\x90\xdd\x59\x7d\x80\x17\x53\xf7\x6d\x69\x54\x75\x55\x9d\x83\x77\x83\xcf\x68\x38\x79\xbe\x54\x8c\x4f\x55\x54\x08\x76\xd2\x8c\x89\x96\x02\x6c\xb3\x6d\xb8\x8d\x6b\x89\x10\x9e\x64\x8d\x3a\x56\x3f\x9e\xd1\x75\xd5\x5f\x88\x72\xe0\x60\x68\x54\xfc\x4e\xa8\x6a\x2a\x88\x61\x60\x52\x8f\x70\x54\xc4\x70\xd8\x86\x79\x9e\x3f\x6d\x2a\x5b\x8f\x5f\x18\x7e\xa2\x55\x89\x4f\xaf\x73\x34\x54\x3c\x53\x9a\x50\x19\x54\x0e\x54\x7c\x4e\x4e\x5f\xfd\x74\x5a\x58\xf6\x84\x6b\x80\xe1\x87\x74\x72\xd0\x7c\xca\x6e\x56\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x27\x86\x4e\x55\x2c\x62\xa4\x4e\x92\x6c\xaa\x62\x37\x82\xb1\x54\xd7\x53\x4e\x73\x3e\x6e\xd1\x75\x3b\x52\x12\x53\x16\x8b\xdd\x69\xd0\x5f\x8a\x60\x00\x6d\xee\x57\x4f\x6b\x22\x73\xaf\x68\x53\x8f\xd8\x7f\x13\x63\x62\x60\xa3\x55\x24\x75\xea\x8c\x62\x71\x15\x6d\xa3\x5b\xa6\x5e\x7b\x83\x52\x61\x4c\x9e\xc4\x78\xfa\x87\x57\x7c\x27\x76\x87\x51\xf0\x60\xf6\x71\x4c\x66\x43\x5e\x4c\x60\x4d\x8c\x0e\x70\x70\x63\x25\x8f\x89\x5f\xbd\x60\x62\x86\xd4\x56\xde\x6b\xc1\x60\x94\x61\x67\x53\x49\x60\xe0\x66\x66\x8d\x3f", /* 4e80 */ "\x00\x00\x79\xfd\x4f\x1a\x70\xe9\x6c\x47\x8b\xb3\x8b\xf2\x7e\xd8\x83\x64\x66\x0f\x5a\x5a\x9b\x42\x6d\x51\x6d\xf7\x8c\x41\x6d\x3b\x4f\x19\x70\x6b\x83\xb7\x62\x16\x60\xd1\x97\x0d\x8d\x27\x79\x78\x51\xfb\x57\x3e\x57\xfa\x67\x3a\x75\x78\x7a\x3d\x79\xef\x7b\x95\x80\x8c\x99\x65\x8f\xf9\x6f\xc0\x8b\xa5\x9e\x21\x59\xec\x7e\xe9\x7f\x09\x54\x09\x67\x81\x68\xd8\x8f\x91\x7c\x4d\x96\xc6\x53\xca\x60\x25\x75\xbe\x6c\x72\x53\x73\x5a\xc9\x7e\xa7\x63\x24\x51\xe0\x81\x0a\x5d\xf1\x84\xdf\x62\x80\x51\x80\x5b\x63\x4f\x0e\x79\x6d\x52\x42\x60\xb8\x6d\x4e\x5b\xc4\x5b\xc2\x8b\xa1\x8b\xb0\x65\xe2\x5f\xcc\x96\x45\x59\x93\x7e\xe7\x7e\xaa\x56\x09\x67\xb7\x59\x39\x4f\x73\x5b\xb6\x52\xa0\x83\x5a\x98\x8a\x8d\x3e\x75\x32\x94\xbe\x50\x47\x7a\x3c\x4e\xf7\x67\xb6\x9a\x7e\x5a\xc1\x6b\x7c\x76\xd1\x57\x5a\x5c\x16\x7b\x3a\x95\xf4\x71\x4e\x51\x7c\x80\xa9\x82\x70\x59\x78\x7f\x04\x83\x27\x68\xc0\x67\xec\x78\xb1\x78\x77\x62\xe3\x63\x61\x7b\x80\x4f\xed\x52\x6a\x51\xcf\x83\x50\x69\xdb\x92\x74\x8d\xf5\x8d\x31\x89\xc1\x95\x2e\x7b\xad\x4e\xf6\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x65\x82\x30\x52\x51\x99\x6f\x6e\x10\x6e\x85\x6d\xa7\x5e\xfa\x50\xf5\x59\xdc\x5c\x06\x6d\x46\x6c\x5f\x75\x86\x84\x8b\x68\x68\x59\x56\x8b\xb2\x53\x20\x91\x71\x96\x4d\x85\x49\x69\x12\x79\x01\x71\x26\x80\xf6\x4e\xa4\x90\xca\x6d\x47\x9a\x84\x5a\x07\x56\xbc\x64\x05\x94\xf0\x77\xeb\x4f\xa5\x81\x1a\x72\xe1\x89\xd2\x99\x7a\x7f\x34\x7e\xde\x52\x7f\x65\x59\x91\x75\x8f\x7f\x8f\x83\x53\xeb\x7a\x96\x63\xed\x63\xa5\x76\x86\x79\xf8\x88\x57\x96\x36\x62\x2a\x52\xab\x82\x82\x68\x54\x67\x70\x63\x77\x77\x6b\x7a\xed", /* 4f80 */ "\x00\x00\x6d\x01\x7e\xd3\x89\xe3\x59\xd0\x62\x12\x85\xc9\x82\xa5\x75\x4c\x50\x1f\x4e\xcb\x75\xa5\x8b\xeb\x5c\x4a\x5d\xfe\x7b\x4b\x65\xa4\x91\xd1\x4e\xca\x6d\x25\x89\x5f\x7d\x27\x95\x26\x4e\xc5\x8c\x28\x8f\xdb\x97\x73\x66\x4b\x79\x81\x8f\xd1\x70\xec\x6d\x78\x5c\x3d\x52\xb2\x83\x46\x51\x62\x83\x0e\x77\x5b\x66\x76\x9c\xb8\x4e\xac\x60\xca\x7c\xbe\x7c\xb3\x7e\xcf\x4e\x95\x8b\x66\x66\x6f\x98\x88\x97\x59\x58\x83\x65\x6c\x95\x5c\x5f\x84\x75\xc9\x97\x56\x7a\xdf\x7a\xde\x51\xc0\x70\xaf\x7a\x98\x63\xea\x7a\x76\x7e\xa0\x73\x96\x97\xed\x4e\x45\x70\x78\x4e\x5d\x91\x52\x53\xa9\x65\x51\x65\xe7\x81\xfc\x82\x05\x54\x8e\x5c\x31\x75\x9a\x97\xa0\x62\xd8\x72\xd9\x75\xbd\x5c\x45\x9a\x79\x83\xca\x5c\x40\x54\x80\x77\xe9\x4e\x3e\x6c\xae\x80\x5a\x62\xd2\x63\x6e\x5d\xe8\x51\x77\x8d\xdd\x8e\x1e\x95\x2f\x4f\xf1\x53\xe5\x60\xe7\x70\xac\x52\x67\x63\x50\x9e\x43\x5a\x1f\x50\x26\x77\x37\x53\x77\x7e\xe2\x64\x85\x65\x2b\x62\x89\x63\x98\x50\x14\x72\x35\x89\xc9\x51\xb3\x8b\xc0\x7e\xdd\x57\x47\x83\xcc\x94\xa7\x51\x9b\x54\x1b\x5c\xfb\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x7a\xe3\x6d\x5a\x90\xe1\x9a\x8f\x55\x80\x54\x96\x53\x61\x54\xaf\x5f\x00\x63\xe9\x69\x77\x51\xef\x61\x68\x52\x0a\x58\x2a\x52\xd8\x57\x4e\x78\x0d\x77\x0b\x5e\xb7\x61\x77\x7c\xe0\x62\x5b\x62\x97\x4e\xa2\x70\x95\x80\x03\x62\xf7\x70\xe4\x97\x60\x57\x77\x82\xdb\x67\xef\x68\xf5\x78\xd5\x98\x97\x79\xd1\x58\xf3\x54\xb3\x53\xef\x6e\x34\x51\x4b\x52\x3b\x5b\xa2\x8b\xfe\x80\xaf\x55\x43\x57\xa6\x60\x73\x57\x51\x54\x2d\x7a\x7a\x60\x50\x5b\x54\x63\xa7\x62\xa0\x53\xe3\x62\x63\x5b\xc7\x67\xaf\x54\xed\x7a\x9f", /* 5080 */ "\x00\x00\x82\xe6\x91\x77\x5e\x93\x88\xe4\x59\x38\x57\xae\x63\x0e\x8d\xe8\x80\xef\x57\x57\x7b\x77\x4f\xa9\x5f\xeb\x5b\xbd\x6b\x3e\x53\x21\x7b\x50\x72\xc2\x68\x46\x77\xff\x77\x36\x65\xf7\x51\xb5\x4e\x8f\x76\xd4\x5c\xbf\x7a\xa5\x84\x75\x59\x4e\x9b\x41\x50\x80\x99\x88\x61\x27\x6e\x83\x57\x64\x66\x06\x63\x46\x56\xf0\x62\xec\x62\x69\x5e\xd3\x96\x14\x57\x83\x62\xc9\x55\x87\x87\x21\x81\x4a\x8f\xa3\x55\x66\x83\xb1\x67\x65\x8d\x56\x84\xdd\x5a\x6a\x68\x0f\x62\xe6\x7b\xee\x96\x11\x51\x70\x6f\x9c\x8c\x30\x63\xfd\x89\xc8\x61\xd2\x7f\x06\x70\xc2\x6e\xe5\x74\x05\x69\x94\x72\xfc\x5e\xca\x90\xce\x67\x17\x6d\x6a\x63\x5e\x52\xb3\x72\x62\x80\x01\x4f\x6c\x59\xe5\x91\x6a\x70\xd9\x6d\x9d\x52\xd2\x4e\x50\x96\xf7\x95\x6d\x85\x7e\x78\xca\x7d\x2f\x51\x21\x57\x92\x64\xc2\x80\x8b\x7c\x7b\x6c\xea\x68\xf1\x69\x5e\x51\xb7\x53\x98\x68\xa8\x72\x81\x9e\xce\x7b\xf1\x72\xf8\x79\xbb\x6f\x13\x74\x06\x67\x4e\x91\xcc\x9c\xa4\x79\x3c\x83\x89\x83\x54\x54\x0f\x68\x17\x4e\x3d\x53\x89\x52\xb1\x78\x3e\x53\x86\x52\x29\x50\x88\x4f\x8b\x4f\xd0\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe2\x7a\xcb\x7c\x92\x6c\xa5\x96\xb6\x52\x9b\x74\x83\x54\xe9\x4f\xe9\x80\x54\x83\xb2\x8f\xde\x95\x70\x5e\xc9\x60\x1c\x6d\x9f\x5e\x18\x65\x5b\x81\x38\x94\xfe\x60\x4b\x70\xbc\x7e\xc3\x7c\xae\x51\xc9\x68\x81\x7c\xb1\x82\x6f\x4e\x24\x8f\x86\x91\xcf\x66\x7e\x4e\xae\x8c\x05\x64\xa9\x80\x4a\x50\xda\x75\x97\x71\xce\x5b\xe5\x8f\xbd\x6f\x66\x4e\x86\x64\x82\x95\x63\x5e\xd6\x65\x99\x52\x17\x88\xc2\x70\xc8\x52\xa3\x73\x0e\x74\x33\x67\x97\x78\xf7\x97\x16\x4e\x34\x90\xbb\x9c\xde\x6d\xcb\x51\xdb\x8d\x41\x54\x1d", /* 5180 */ "\x00\x00\x62\xce\x73\xb2\x83\xf1\x96\xf6\x9f\x84\x94\xc3\x4f\x36\x7f\x9a\x51\xcc\x70\x75\x96\x75\x5c\xad\x98\x86\x53\xe6\x4e\xe4\x6e\x9c\x74\x09\x69\xb4\x78\x6b\x99\x8f\x75\x59\x52\x18\x76\x24\x6d\x41\x67\xf3\x51\x6d\x9f\x99\x80\x4b\x54\x99\x7b\x3c\x7a\xbf\x96\x86\x57\x84\x62\xe2\x96\x47\x69\x7c\x5a\x04\x64\x02\x7b\xd3\x6f\x0f\x96\x4b\x82\xa6\x53\x62\x98\x85\x5e\x90\x70\x89\x63\xb3\x53\x64\x86\x4f\x9c\x81\x9e\x93\x78\x8c\x97\x32\x8d\xef\x8d\x42\x9e\x7f\x6f\x5e\x79\x84\x5f\x55\x96\x46\x62\x2e\x9a\x74\x54\x15\x94\xdd\x4f\xa3\x65\xc5\x5c\x65\x5c\x61\x7f\x15\x86\x51\x6c\x2f\x5f\x8b\x73\x87\x6e\xe4\x7e\xff\x5c\xe6\x63\x1b\x5b\x6a\x6e\xe6\x53\x75\x4e\x71\x63\xa0\x75\x65\x62\xa1\x8f\x6e\x4f\x26\x4e\xd1\x6c\xa6\x7e\xb6\x8b\xba\x84\x1d\x87\xba\x7f\x57\x90\x3b\x95\x23\x7b\xa9\x9a\xa1\x88\xf8\x84\x3d\x6d\x1b\x9a\x86\x7e\xdc\x59\x88\x9e\xbb\x73\x9b\x78\x01\x86\x82\x9a\x6c\x9a\x82\x56\x1b\x54\x17\x57\xcb\x4e\x70\x9e\xa6\x53\x56\x8f\xc8\x81\x09\x77\x92\x99\x92\x86\xee\x6e\xe1\x85\x13\x66\xfc\x61\x62\x6f\x2b\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x29\x82\x92\x83\x2b\x76\xf2\x6c\x13\x5f\xd9\x83\xbd\x73\x2b\x83\x05\x95\x1a\x6b\xdb\x77\xdb\x94\xc6\x53\x6f\x83\x02\x51\x92\x5e\x3d\x8c\x8c\x8d\x38\x4e\x48\x73\xab\x67\x9a\x68\x85\x91\x76\x97\x09\x71\x64\x6c\xa1\x77\x09\x5a\x92\x95\x41\x6b\xcf\x7f\x8e\x66\x27\x5b\xd0\x59\xb9\x5a\x9a\x95\xe8\x95\xf7\x4e\xec\x84\x0c\x84\x99\x6a\xac\x76\xdf\x95\x30\x73\x1b\x68\xa6\x5b\x5f\x77\x2f\x91\x9a\x97\x61\x7c\xdc\x8f\xf7\x8c\x1c\x5f\x25\x7c\x73\x79\xd8\x89\xc5\x6c\xcc\x87\x1c\x5b\xc6\x5e\x42\x68\xc9\x77\x20", /* 5280 */ "\x00\x00\x7e\xf5\x51\x95\x51\x4d\x52\xc9\x5a\x29\x7f\x05\x97\x62\x82\xd7\x63\xcf\x77\x84\x85\xd0\x79\xd2\x6e\x3a\x5e\x99\x59\x99\x85\x11\x70\x6d\x6c\x11\x62\xbf\x76\xbf\x65\x4f\x60\xaf\x95\xfd\x66\x0e\x87\x9f\x9e\x23\x94\xed\x54\x0d\x54\x7d\x8c\x2c\x64\x78\x64\x79\x86\x11\x6a\x21\x81\x9c\x78\xe8\x64\x69\x9b\x54\x62\xb9\x67\x2b\x83\xab\x58\xa8\x9e\xd8\x6c\xab\x6f\x20\x5b\xde\x96\x4c\x8c\x0b\x72\x5f\x67\xd0\x62\xc7\x72\x61\x4e\xa9\x59\xc6\x6b\xcd\x58\x93\x66\xae\x5e\x55\x52\xdf\x61\x55\x67\x28\x76\xee\x77\x66\x72\x67\x7a\x46\x62\xff\x54\xea\x54\x50\x94\xa0\x90\xa3\x5a\x1c\x7e\xb3\x6c\x16\x4e\x43\x59\x76\x80\x10\x59\x48\x53\x57\x75\x37\x96\xbe\x56\xca\x63\x20\x81\x11\x60\x7c\x95\xf9\x6d\xd6\x54\x62\x99\x81\x51\x85\x5a\xe9\x80\xfd\x59\xae\x97\x13\x50\x2a\x6c\xe5\x5c\x3c\x62\xdf\x4f\x60\x53\x3f\x81\x7b\x90\x06\x6e\xba\x85\x2b\x62\xc8\x5e\x74\x78\xbe\x64\xb5\x63\x7b\x5f\xf5\x5a\x18\x91\x7f\x9e\x1f\x5c\x3f\x63\x4f\x80\x42\x5b\x7d\x55\x6e\x95\x4a\x95\x4d\x6d\x85\x60\xa8\x67\xe0\x72\xde\x51\xdd\x5b\x81\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe7\x6c\xde\x72\x5b\x62\x6d\x94\xae\x7e\xbd\x81\x13\x6d\x53\x51\x9c\x5f\x04\x59\x74\x52\xaa\x60\x12\x59\x73\x66\x96\x86\x50\x75\x9f\x63\x2a\x61\xe6\x7c\xef\x8b\xfa\x54\xe6\x6b\x27\x9e\x25\x6b\xb4\x85\xd5\x54\x55\x50\x76\x6c\xa4\x55\x6a\x8d\xb4\x72\x2c\x5e\x15\x60\x15\x74\x36\x62\xcd\x63\x92\x72\x4c\x5f\x98\x6e\x43\x6d\x3e\x65\x00\x6f\x58\x76\xd8\x78\xd0\x76\xfc\x75\x54\x52\x24\x53\xdb\x4e\x53\x5e\x9e\x65\xc1\x80\x2a\x80\xd6\x62\x9b\x54\x86\x52\x28\x70\xae\x88\x8d\x8d\xd1\x6c\xe1\x54\x78\x80\xda", /* 5380 */ "\x00\x00\x57\xf9\x88\xf4\x8d\x54\x96\x6a\x91\x4d\x4f\x69\x6c\x9b\x55\xb7\x76\xc6\x78\x30\x62\xa8\x70\xf9\x6f\x8e\x5f\x6d\x84\xec\x68\xda\x78\x7c\x7b\xf7\x81\xa8\x67\x0b\x9e\x4f\x63\x67\x78\xb0\x57\x6f\x78\x12\x97\x39\x62\x79\x62\xab\x52\x88\x74\x35\x6b\xd7\x55\x64\x81\x3e\x75\xb2\x76\xae\x53\x39\x75\xde\x50\xfb\x5c\x41\x8b\x6c\x7b\xc7\x50\x4f\x72\x47\x9a\x97\x98\xd8\x6f\x02\x74\xe2\x79\x68\x64\x87\x77\xa5\x62\xfc\x98\x91\x8d\x2b\x54\xc1\x80\x58\x4e\x52\x57\x6a\x82\xf9\x84\x0d\x5e\x73\x51\xed\x74\xf6\x8b\xc4\x5c\x4f\x57\x61\x6c\xfc\x98\x87\x5a\x46\x78\x34\x9b\x44\x8f\xeb\x7c\x95\x52\x56\x62\x51\x94\xfa\x4e\xc6\x83\x86\x84\x61\x83\xe9\x84\xb2\x57\xd4\x67\x34\x57\x03\x66\x6e\x6d\x66\x8c\x31\x66\xdd\x70\x11\x67\x1f\x6b\x3a\x68\x16\x62\x1a\x59\xbb\x4e\x03\x51\xc4\x6f\x06\x67\xd2\x6c\x8f\x51\x76\x68\xcb\x59\x47\x6b\x67\x75\x66\x5d\x0e\x81\x10\x9f\x50\x65\xd7\x79\x48\x79\x41\x9a\x91\x8d\x77\x5c\x82\x4e\x5e\x4f\x01\x54\x2f\x59\x51\x78\x0c\x56\x68\x6c\x14\x8f\xc4\x5f\x03\x6c\x7d\x6c\xe3\x8b\xab\x63\x90\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x70\x6d\x3d\x72\x75\x62\x66\x94\x8e\x94\xc5\x53\x43\x8f\xc1\x7b\x7e\x4e\xdf\x8c\x26\x4e\x7e\x9e\xd4\x94\xb1\x94\xb3\x52\x4d\x6f\x5c\x90\x63\x6d\x45\x8c\x34\x58\x11\x5d\x4c\x6b\x20\x6b\x49\x67\xaa\x54\x5b\x81\x54\x7f\x8c\x58\x99\x85\x37\x5f\x3a\x62\xa2\x6a\x47\x95\x39\x65\x72\x60\x84\x68\x65\x77\xa7\x4e\x54\x4f\xa8\x5d\xe7\x97\x98\x64\xac\x7f\xd8\x5c\xed\x4f\xcf\x7a\x8d\x52\x07\x83\x04\x4e\x14\x60\x2f\x7a\x83\x94\xa6\x4f\xb5\x4e\xb2\x79\xe6\x74\x34\x52\xe4\x82\xb9\x64\xd2\x79\xbd\x5b\xdd\x6c\x81", /* 5480 */ "\x00\x00\x97\x52\x8f\x7b\x6c\x22\x50\x3e\x53\x7f\x6e\x05\x64\xce\x66\x74\x6c\x30\x60\xc5\x98\x77\x8b\xf7\x5e\x86\x74\x3c\x7a\x77\x79\xcb\x4e\x18\x90\xb1\x74\x03\x6c\x42\x56\xda\x91\x4b\x6c\xc5\x8d\x8b\x53\x3a\x86\xc6\x66\xf2\x8e\xaf\x5c\x48\x9a\x71\x6e\x20\x53\xd6\x5a\x36\x9f\x8b\x8d\xa3\x53\xbb\x57\x08\x98\xa7\x67\x43\x91\x9b\x6c\xc9\x51\x68\x75\xca\x62\xf3\x72\xac\x52\x38\x52\x9d\x7f\x3a\x70\x94\x76\x38\x53\x74\x9e\x4a\x69\xb7\x78\x6e\x96\xc0\x88\xd9\x7f\xa4\x71\x36\x71\xc3\x51\x89\x67\xd3\x74\xe4\x58\xe4\x65\x18\x56\xb7\x8b\xa9\x99\x76\x62\x70\x7e\xd5\x60\xf9\x70\xed\x58\xec\x4e\xc1\x4e\xba\x5f\xcd\x97\xe7\x4e\xfb\x8b\xa4\x52\x03\x59\x8a\x7e\xab\x62\x54\x4e\xcd\x65\xe5\x62\x0e\x83\x38\x84\xc9\x83\x63\x87\x8d\x71\x94\x6e\xb6\x5b\xb9\x7e\xd2\x51\x97\x63\xc9\x67\xd4\x80\x89\x83\x39\x88\x15\x51\x12\x5b\x7a\x59\x82\x8f\xb1\x4e\x73\x6c\x5d\x51\x65\x89\x25\x8f\x6f\x96\x2e\x85\x4a\x74\x5e\x95\x10\x95\xf0\x6d\xa6\x82\xe5\x5f\x31\x64\x92\x6d\x12\x84\x28\x81\x6e\x9c\xc3\x58\x5e\x8d\x5b\x4e\x09\x53\xc1\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x1e\x65\x63\x68\x51\x55\xd3\x4e\x27\x64\x14\x9a\x9a\x62\x6b\x5a\xc2\x74\x5f\x82\x72\x6d\xa9\x68\xee\x50\xe7\x83\x8e\x78\x02\x67\x40\x52\x39\x6c\x99\x7e\xb1\x50\xbb\x55\x65\x71\x5e\x7b\x5b\x66\x52\x73\xca\x82\xeb\x67\x49\x5c\x71\x52\x20\x71\x7d\x88\x6b\x95\xea\x96\x55\x64\xc5\x8d\x61\x81\xb3\x55\x84\x6c\x55\x62\x47\x7f\x2e\x58\x92\x4f\x24\x55\x46\x8d\x4f\x66\x4c\x4e\x0a\x5c\x1a\x88\xf3\x68\xa2\x63\x4e\x7a\x0d\x70\xe7\x82\x8d\x52\xfa\x97\xf6\x5c\x11\x54\xe8\x90\xb5\x7e\xcd\x59\x62\x8d\x4a\x86\xc7", /* 5580 */ "\x00\x00\x82\x0c\x82\x0d\x8d\x66\x64\x44\x5c\x04\x61\x51\x6d\x89\x79\x3e\x8b\xbe\x78\x37\x75\x33\x54\x7b\x4f\x38\x8e\xab\x6d\xf1\x5a\x20\x7e\xc5\x79\x5e\x6c\x88\x5b\xa1\x5a\x76\x75\x1a\x80\xbe\x61\x4e\x6e\x17\x58\xf0\x75\x1f\x75\x25\x72\x72\x53\x47\x7e\xf3\x77\x01\x76\xdb\x52\x69\x80\xdc\x57\x23\x5e\x08\x59\x31\x72\xee\x65\xbd\x6e\x7f\x8b\xd7\x5c\x38\x86\x71\x53\x41\x77\xf3\x62\xfe\x65\xf6\x4e\xc0\x98\xdf\x86\x80\x5b\x9e\x8b\xc6\x53\xf2\x77\xe2\x4f\x7f\x5c\x4e\x9a\x76\x59\xcb\x5f\x0f\x79\x3a\x58\xeb\x4e\x16\x67\xff\x4e\x8b\x62\xed\x8a\x93\x90\x1d\x52\xbf\x66\x2f\x55\xdc\x56\x6c\x90\x02\x4e\xd5\x4f\x8d\x91\xca\x99\x70\x6c\x0f\x5e\x02\x60\x43\x5b\xa4\x89\xc6\x8b\xd5\x65\x36\x62\x4b\x99\x96\x5b\x88\x5b\xff\x63\x88\x55\x2e\x53\xd7\x76\x26\x51\x7d\x85\x2c\x67\xa2\x68\xb3\x6b\x8a\x62\x92\x8f\x93\x53\xd4\x82\x12\x6d\xd1\x75\x8f\x4e\x66\x8d\x4e\x5b\x70\x71\x9f\x85\xaf\x66\x91\x66\xd9\x7f\x72\x87\x00\x9e\xcd\x9f\x20\x5c\x5e\x67\x2f\x8f\xf0\x68\x11\x67\x5f\x62\x0d\x7a\xd6\x58\x85\x5e\xb6\x65\x70\x6f\x31\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x55\x52\x37\x80\x0d\x64\x54\x88\x70\x75\x29\x5e\x05\x68\x13\x62\xf4\x97\x1c\x53\xcc\x72\x3d\x8c\x01\x6c\x34\x77\x61\x7a\x0e\x54\x2e\x77\xac\x98\x7a\x82\x1c\x8b\xf4\x78\x55\x67\x14\x70\xc1\x65\xaf\x64\x95\x56\x36\x60\x1d\x79\xc1\x53\xf8\x4e\x1d\x6b\x7b\x80\x86\x5b\xfa\x55\xe3\x56\xdb\x4f\x3a\x4f\x3c\x99\x72\x5d\xf3\x67\x7e\x80\x38\x60\x02\x98\x82\x90\x01\x5b\x8b\x8b\xbc\x8b\xf5\x64\x1c\x82\x58\x64\xde\x55\xfd\x82\xcf\x91\x65\x4f\xd7\x7d\x20\x90\x1f\x7c\x9f\x50\xf3\x58\x51\x6e\xaf\x5b\xbf\x8b\xc9", /* 5680 */ "\x00\x00\x80\x83\x91\x78\x84\x9c\x7b\x97\x86\x7d\x96\x8b\x96\x8f\x7e\xe5\x9a\xd3\x78\x8e\x5c\x81\x7a\x57\x90\x42\x96\xa7\x79\x5f\x5b\x59\x63\x5f\x7b\x0b\x84\xd1\x68\xad\x55\x06\x7f\x29\x74\x10\x7d\x22\x95\x01\x62\x40\x58\x4c\x4e\xd6\x5b\x83\x59\x79\x58\x54\x73\x6d\x63\x1e\x8e\x4b\x8e\x0f\x80\xce\x82\xd4\x62\xac\x53\xf0\x6c\xf0\x91\x5e\x59\x2a\x60\x01\x6c\x70\x57\x4d\x64\x4a\x8d\x2a\x76\x2b\x6e\xe9\x57\x5b\x6a\x80\x75\xf0\x6f\x6d\x8c\x2d\x8c\x08\x57\x66\x6b\xef\x88\x92\x78\xb3\x63\xa2\x53\xf9\x70\xad\x6c\x64\x58\x58\x64\x2a\x58\x02\x68\xe0\x81\x9b\x55\x10\x7c\xd6\x50\x18\x8e\xba\x6d\xcc\x8d\x9f\x70\xeb\x63\x8f\x6d\x9b\x6e\xd4\x7e\xe6\x84\x04\x68\x43\x90\x03\x6d\xd8\x96\x76\x8b\xa8\x59\x57\x72\x79\x85\xe4\x81\x7e\x75\xbc\x8a\x8a\x68\xaf\x52\x54\x8e\x22\x95\x11\x63\xd0\x98\x98\x8e\x44\x55\x7c\x4f\x53\x66\xff\x56\x8f\x60\xd5\x6d\x95\x52\x43\x5c\x49\x59\x29\x6d\xfb\x58\x6b\x75\x30\x75\x1c\x60\x6c\x82\x14\x81\x46\x63\x11\x67\x61\x8f\xe2\x77\x3a\x8d\xf3\x8d\x34\x94\xc1\x5e\x16\x53\x85\x54\x2c\x70\xc3\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x40\x5e\xf7\x50\x5c\x4e\xad\x5e\xad\x63\x3a\x82\x47\x90\x1a\x68\x50\x91\x6e\x77\xb3\x54\x0c\x94\xdc\x5f\x64\x7a\xe5\x68\x76\x63\x45\x7b\x52\x7e\xdf\x75\xdb\x50\x77\x62\x95\x59\x34\x90\x0f\x51\xf8\x79\xc3\x7a\x81\x56\xfe\x5f\x92\x90\x14\x6d\x82\x5c\x60\x57\x1f\x54\x10\x51\x54\x6e\x4d\x56\xe2\x63\xa8\x98\x93\x81\x7f\x87\x15\x89\x2a\x90\x00\x54\x1e\x5c\x6f\x81\xc0\x62\xd6\x62\x58\x81\x31\x9e\x35\x96\x40\x9a\x6e\x9a\x7c\x69\x2d\x59\xa5\x62\xd3\x55\x3e\x63\x16\x54\xc7\x86\xd9\x6d\x3c\x5a\x03\x74\xe6", /* 5780 */ "\x00\x00\x88\x9c\x6b\x6a\x59\x16\x8c\x4c\x5f\x2f\x6e\x7e\x73\xa9\x98\x7d\x4e\x38\x70\xf7\x5b\x8c\x78\x97\x63\x3d\x66\x5a\x76\x96\x60\xcb\x5b\x9b\x5a\x49\x4e\x07\x81\x55\x6c\x6a\x73\x8b\x4e\xa1\x67\x89\x7f\x51\x5f\x80\x65\xfa\x67\x1b\x5f\xd8\x59\x84\x5a\x01\x5d\xcd\x5f\xae\x53\x71\x97\xe6\x8f\xdd\x68\x45\x56\xf4\x55\x2f\x60\xdf\x4e\x3a\x6f\x4d\x7e\xf4\x82\xc7\x84\x0e\x59\xd4\x4f\x1f\x4f\x2a\x5c\x3e\x7e\xac\x67\x2a\x85\x1a\x54\x73\x75\x4f\x80\xc3\x55\x82\x9b\x4f\x4f\x4d\x6e\x2d\x8c\x13\x5c\x09\x61\x70\x53\x6b\x76\x1f\x6e\x29\x86\x8a\x65\x87\x95\xfb\x7e\xb9\x54\x3b\x7a\x33\x7d\x0a\x95\xee\x55\xe1\x7f\xc1\x74\xee\x63\x1d\x87\x17\x6d\xa1\x7a\x9d\x62\x11\x65\xa1\x53\x67\x63\xe1\x6c\x83\x5d\xeb\x54\x5c\x94\xa8\x4e\x4c\x6c\x61\x8b\xec\x5c\x4b\x65\xe0\x82\x9c\x68\xa7\x54\x3e\x54\x34\x6b\xcb\x6b\x66\x4e\x94\x63\x42\x53\x48\x82\x1e\x4f\x0d\x4f\xae\x57\x5e\x62\x0a\x96\xfe\x66\x64\x72\x69\x52\xff\x52\xa1\x60\x9f\x8b\xef\x66\x14\x71\x99\x67\x90\x89\x7f\x78\x52\x77\xfd\x66\x70\x56\x3b\x54\x38\x95\x21\x72\x7a\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x60\x6f\x5e\x0c\x60\x89\x81\x9d\x59\x15\x60\xdc\x71\x84\x70\xef\x6e\xaa\x6c\x50\x72\x80\x6a\x84\x88\xad\x5e\x2d\x4e\x60\x5a\xb3\x55\x9c\x94\xe3\x6d\x17\x7c\xfb\x96\x99\x62\x0f\x7e\xc6\x77\x8e\x86\x7e\x53\x23\x97\x1e\x8f\x96\x66\x87\x5c\xe1\x4f\xa0\x72\xed\x4e\x0b\x53\xa6\x59\x0f\x54\x13\x63\x80\x95\x28\x51\x48\x4e\xd9\x9c\x9c\x7e\xa4\x54\xb8\x8d\x24\x88\x54\x82\x37\x95\xf2\x6d\x8e\x5f\x26\x5a\xcc\x66\x3e\x96\x69\x73\xb0\x73\x2e\x53\xbf\x81\x7a\x99\x85\x7f\xa1\x5b\xaa\x96\x77\x96\x50\x7e\xbf", /* 5880 */ "\x00\x00\x76\xf8\x53\xa2\x95\x76\x99\x99\x7b\xb1\x89\x44\x6e\x58\x4e\x61\x7f\xd4\x79\x65\x8b\xe6\x60\xf3\x54\xcd\x4e\xab\x98\x79\x5d\xf7\x6a\x61\x50\xcf\x54\x11\x8c\x61\x84\x27\x78\x5d\x97\x04\x52\x4a\x54\xee\x56\xa3\x95\x00\x6d\x88\x5b\xb5\x6d\xc6\x66\x53\x5c\x0f\x5b\x5d\x68\x21\x80\x96\x55\x78\x7b\x11\x65\x48\x69\x54\x4e\x9b\x6b\x47\x87\x4e\x97\x8b\x53\x4f\x63\x1f\x64\x3a\x90\xaa\x65\x9c\x80\xc1\x8c\x10\x51\x99\x68\xb0\x53\x78\x87\xf9\x61\xc8\x6c\xc4\x6c\xfb\x8c\x22\x5c\x51\x85\xaa\x82\xaf\x95\x0c\x6b\x23\x8f\x9b\x65\xb0\x5f\xfb\x5f\xc3\x4f\xe1\x88\x45\x66\x1f\x81\x65\x73\x29\x60\xfa\x51\x74\x52\x11\x57\x8b\x5f\x62\x90\xa2\x88\x4c\x91\x92\x5e\x78\x67\x4f\x60\x27\x59\xd3\x51\x44\x51\xf6\x80\xf8\x53\x08\x6c\x79\x96\xc4\x71\x8a\x4f\x11\x4f\xee\x7f\x9e\x67\x3d\x55\xc5\x95\x08\x79\xc0\x88\x96\x7e\xe3\x58\x9f\x62\x0c\x97\x00\x86\x5a\x56\x18\x98\x7b\x5f\x90\x8b\xb8\x84\xc4\x91\x57\x53\xd9\x65\xed\x5e\x8f\x75\x5c\x60\x64\x7d\x6e\x5a\x7f\x7e\xea\x7e\xed\x8f\x69\x55\xa7\x5b\xa3\x60\xac\x65\xcb\x73\x84\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x09\x76\x63\x77\x29\x7e\xda\x97\x74\x85\x9b\x5b\x66\x7a\x74\x96\xea\x88\x40\x52\xcb\x71\x8f\x5f\xaa\x65\xec\x8b\xe2\x5b\xfb\x9a\x6f\x5d\xe1\x6b\x89\x6c\x5b\x8b\xad\x8b\xaf\x90\x0a\x8f\xc5\x53\x8b\x62\xbc\x9e\x26\x9e\x2d\x54\x40\x4e\x2b\x82\xbd\x72\x59\x86\x9c\x5d\x16\x88\x59\x6d\xaf\x96\xc5\x54\xd1\x4e\x9a\x8b\xb6\x71\x09\x54\xbd\x96\x09\x70\xdf\x6d\xf9\x76\xd0\x4e\x25\x78\x14\x87\x12\x5c\xa9\x5e\xf6\x8a\x00\x98\x9c\x96\x0e\x70\x8e\x6c\xbf\x59\x44\x63\xa9\x77\x3c\x88\x4d\x6f\x14\x82\x73\x58\x30", /* 5980 */ "\x00\x00\x71\xd5\x53\x8c\x78\x1a\x96\xc1\x55\x01\x5f\x66\x71\x30\x5b\xb4\x8c\x1a\x9a\x8c\x6b\x83\x59\x2e\x9e\x2f\x79\xe7\x67\x68\x62\x6c\x4f\x6f\x75\xa1\x7f\x8a\x6d\x0b\x96\x33\x6c\x27\x4e\xf0\x75\xd2\x51\x7b\x68\x37\x6f\x3e\x90\x80\x81\x70\x59\x96\x74\x76\x64\x47\x5c\x27\x90\x65\x7a\x91\x8c\x23\x59\xda\x54\xac\x82\x00\x83\x6f\x89\x81\x80\x00\x69\x30\x56\x4e\x80\x36\x72\x37\x91\xce\x51\xb6\x4e\x5f\x98\x75\x63\x96\x4e\x1a\x53\xf6\x66\xf3\x81\x4b\x59\x1c\x6d\xb2\x4e\x00\x58\xf9\x53\x3b\x63\xd6\x94\xf1\x4f\x9d\x4f\x0a\x88\x63\x98\x90\x59\x37\x90\x57\x79\xfb\x4e\xea\x80\xf0\x75\x91\x6c\x82\x5b\x9c\x59\xe8\x5f\x5d\x69\x05\x86\x81\x50\x1a\x5d\xf2\x4e\x59\x77\xe3\x4e\xe5\x82\x7a\x62\x91\x66\x13\x90\x91\x5c\x79\x4e\xbf\x5f\x79\x81\xc6\x90\x38\x80\x84\x75\xab\x4e\xa6\x88\xd4\x61\x0f\x6b\xc5\x5f\xc6\x4e\x49\x76\xca\x6e\xa2\x8b\xe3\x8b\xae\x8c\x0a\x8b\xd1\x5f\x02\x7f\xfc\x7f\xcc\x7e\xce\x83\x35\x83\x6b\x56\xe0\x6b\xb7\x97\xf3\x96\x34\x59\xfb\x54\x1f\x94\xf6\x6d\xeb\x5b\xc5\x99\x6e\x5c\x39\x5f\x15\x96\x90\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x70\x82\xf1\x6a\x31\x5a\x74\x9e\x70\x5e\x94\x7f\x28\x83\xb9\x84\x24\x84\x25\x83\x67\x87\x47\x8f\xce\x8d\x62\x76\xc8\x5f\x71\x98\x96\x78\x6c\x66\x20\x54\xdf\x62\xe5\x4f\x63\x81\xc3\x75\xc8\x5e\xb8\x96\xcd\x8e\x0a\x86\xf9\x54\x8f\x6c\xf3\x6d\x8c\x6c\x38\x60\x7f\x52\xc7\x75\x28\x5e\x7d\x4f\x18\x60\xa0\x5f\xe7\x5c\x24\x75\x31\x90\xae\x94\xc0\x72\xb9\x6c\xb9\x6e\x38\x91\x49\x67\x09\x53\xcb\x53\xf3\x4f\x51\x91\xc9\x8b\xf1\x53\xc8\x5e\x7c\x8f\xc2\x6d\xe4\x4e\x8e\x76\xc2\x69\x86\x86\x5e\x61\x1a\x82\x06", /* 5a80 */ "\x00\x00\x4f\x59\x4f\xde\x90\x3e\x9c\x7c\x61\x09\x6e\x1d\x6e\x14\x96\x85\x4e\x88\x5a\x31\x96\xe8\x4e\x0e\x5c\x7f\x79\xb9\x5b\x87\x8b\xed\x7f\xbd\x73\x89\x57\xdf\x82\x8b\x90\xc1\x54\x01\x90\x47\x55\xbb\x5c\xea\x5f\xa1\x61\x08\x6b\x32\x72\xf1\x80\xb2\x8a\x89\x6d\x74\x5b\xd3\x88\xd5\x98\x84\x8c\x6b\x9a\x6d\x9e\x33\x6e\x0a\x51\xa4\x51\x43\x57\xa3\x88\x81\x53\x9f\x63\xf4\x8f\x95\x56\xed\x54\x58\x57\x06\x73\x3f\x6e\x90\x7f\x18\x8f\xdc\x82\xd1\x61\x3f\x60\x28\x96\x62\x66\xf0\x7e\xa6\x8d\x8a\x8d\xc3\x94\xa5\x5c\xb3\x7c\xa4\x67\x08\x60\xa6\x96\x05\x80\x18\x4e\x91\x90\xe7\x53\x00\x96\x68\x51\x41\x8f\xd0\x85\x74\x91\x5d\x66\x55\x97\xf5\x5b\x55\x53\x1d\x78\x38\x67\x42\x68\x3d\x54\xc9\x70\x7e\x5b\xb0\x8f\x7d\x51\x8d\x57\x28\x54\xb1\x65\x12\x66\x82\x8d\x5e\x8d\x43\x81\x0f\x84\x6c\x90\x6d\x7c\xdf\x51\xff\x85\xfb\x67\xa3\x65\xe9\x6f\xa1\x86\xa4\x8e\x81\x56\x6a\x90\x20\x76\x82\x70\x76\x71\xe5\x8d\x23\x62\xe9\x52\x19\x6c\xfd\x8d\x3c\x60\x0e\x58\x9e\x61\x8e\x66\xfe\x8d\x60\x62\x4e\x55\xb3\x6e\x23\x67\x2d\x8f\x67\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe1\x95\xf8\x77\x28\x68\x05\x69\xa8\x54\x8b\x4e\x4d\x70\xb8\x8b\xc8\x64\x58\x65\x8b\x5b\x85\x7a\x84\x50\x3a\x5b\xe8\x77\xbb\x6b\xe1\x8a\x79\x7c\x98\x6c\xbe\x76\xcf\x65\xa9\x8f\x97\x5d\x2d\x5c\x55\x86\x38\x68\x08\x53\x60\x62\x18\x7a\xd9\x6e\x5b\x7e\xfd\x6a\x1f\x7a\xe0\x5f\x70\x6f\x33\x5f\x20\x63\x8c\x6d\xa8\x67\x56\x4e\x08\x5e\x10\x8d\x26\x4e\xd7\x80\xc0\x76\x34\x96\x9c\x62\xdb\x66\x2d\x62\x7e\x6c\xbc\x8d\x75\x71\x67\x7f\x69\x51\x46\x80\x87\x53\xec\x90\x6e\x62\x98\x54\xf2\x86\xf0\x8f\x99\x80\x05", /* 5b80 */ "\x00\x00\x95\x17\x85\x17\x8f\xd9\x6d\x59\x73\xcd\x65\x9f\x77\x1f\x75\x04\x78\x27\x81\xfb\x8d\x1e\x94\x88\x4f\xa6\x67\x95\x75\xb9\x8b\xca\x97\x07\x63\x2f\x95\x47\x96\x35\x84\xb8\x63\x23\x77\x41\x5f\x81\x72\xf0\x4e\x89\x60\x14\x65\x74\x62\xef\x6b\x63\x65\x3f\x5e\x27\x75\xc7\x90\xd1\x8b\xc1\x82\x9d\x67\x9d\x65\x2f\x54\x31\x87\x18\x77\xe5\x80\xa2\x81\x02\x6c\x41\x4e\x4b\x7e\xc7\x80\x4c\x76\xf4\x69\x0d\x6b\x96\x62\x67\x50\x3c\x4f\x84\x57\x40\x63\x07\x6b\x62\x8d\xbe\x53\xea\x65\xe8\x7e\xb8\x5f\xd7\x63\x1a\x63\xb7\x81\xf3\x81\xf4\x7f\x6e\x5e\x1c\x5c\xd9\x52\x36\x66\x7a\x79\xe9\x7a\x1a\x8d\x28\x70\x99\x75\xd4\x6e\xde\x6c\xbb\x7a\x92\x4e\x2d\x76\xc5\x5f\xe0\x94\x9f\x88\x77\x7e\xc8\x79\xcd\x80\xbf\x91\xcd\x4e\xf2\x4f\x17\x82\x1f\x54\x68\x5d\xde\x6d\x32\x8b\xcc\x7c\xa5\x8f\x74\x80\x98\x5e\x1a\x54\x92\x76\xb1\x5b\x99\x66\x3c\x9a\xa4\x73\xe0\x68\x2a\x86\xdb\x67\x31\x73\x2a\x8b\xf8\x8b\xdb\x90\x10\x7a\xf9\x70\xdb\x71\x6e\x62\xc4\x77\xa9\x56\x31\x4e\x3b\x84\x57\x67\xf1\x52\xa9\x86\xc0\x8d\x2e\x94\xf8\x7b\x51\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x4f\x6c\xe8\x79\x5d\x9a\x7b\x62\x93\x72\x2a\x62\xfd\x4e\x13\x78\x16\x8f\x6c\x64\xb0\x8d\x5a\x7b\xc6\x68\x69\x5e\x84\x88\xc5\x59\x86\x64\x9e\x58\xee\x72\xb6\x69\x0e\x95\x25\x8f\xfd\x8d\x58\x57\x60\x7f\x00\x8c\x06\x51\xc6\x63\x49\x62\xd9\x53\x53\x68\x4c\x74\x22\x83\x01\x91\x4c\x55\x44\x77\x40\x70\x7c\x6d\x4a\x51\x79\x54\xa8\x8d\x44\x59\xff\x6e\xcb\x6d\xc4\x5b\x5c\x7d\x2b\x4e\xd4\x7c\x7d\x6e\xd3\x5b\x50\x81\xea\x6e\x0d\x5b\x57\x9b\x03\x68\xd5\x8e\x2a\x5b\x97\x7e\xfc\x60\x3b\x7e\xb5\x90\xb9\x8d\x70", /* 5c80 */ "\x00\x00\x59\x4f\x63\xcd\x79\xdf\x8d\xb3\x53\x52\x65\xcf\x79\x56\x8b\xc5\x96\x3b\x7e\xc4\x94\xbb\x7e\x82\x56\x34\x91\x89\x67\x00\x7f\x6a\x5c\x0a\x90\x75\x66\x28\x5d\xe6\x4f\x50\x67\xde\x50\x5a\x4f\x5c\x57\x50\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8d\x4e\x0c\x51\x40\x4e\x10\x5e\xff\x53\x45\x4e\x15\x4e\x98\x4e\x1e\x9b\x32\x5b\x6c\x56\x69\x4e\x28\x79\xba\x4e\x3f\x53\x15\x4e\x47\x59\x2d\x72\x3b\x53\x6e\x6c\x10\x56\xdf\x80\xe4\x99\x97\x6b\xd3\x77\x7e\x9f\x17\x4e\x36\x4e\x9f\x9f\x10\x4e\x5c\x4e\x69\x4e\x93\x82\x88\x5b\x5b\x55\x6c\x56\x0f\x4e\xc4\x53\x8d\x53\x9d\x53\xa3\x53\xa5\x53\xae\x97\x65\x8d\x5d\x53\x1a\x53\xf5\x53\x26\x53\x2e\x53\x3e\x8d\x5c\x53\x66\x53\x63\x52\x02\x52\x08\x52\x0e\x52\x2d\x52\x33\x52\x3f\x52\x40\x52\x4c\x52\x5e\x52\x61\x52\x5c\x84\xaf\x52\x7d\x52\x82\x52\x81\x52\x90\x52\x93\x51\x82\x7f\x54\x4e\xbb\x4e\xc3\x4e\xc9\x4e\xc2\x4e\xe8\x4e\xe1\x4e\xeb\x4e\xde\x4f\x1b\x4e\xf3\x4f\x22\x4f\x64\x4e\xf5\x4f\x25\x4f\x27\x4f\x09\x4f\x2b\x4f\x5e\x4f\x67\x65\x38\x4f\x5a\x4f\x5d\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x5f\x4f\x57\x4f\x32\x4f\x3d\x4f\x76\x4f\x74\x4f\x91\x4f\x89\x4f\x83\x4f\x8f\x4f\x7e\x4f\x7b\x4f\xaa\x4f\x7c\x4f\xac\x4f\x94\x4f\xe6\x4f\xe8\x4f\xea\x4f\xc5\x4f\xda\x4f\xe3\x4f\xdc\x4f\xd1\x4f\xdf\x4f\xf8\x50\x29\x50\x4c\x4f\xf3\x50\x2c\x50\x0f\x50\x2e\x50\x2d\x4f\xfe\x50\x1c\x50\x0c\x50\x25\x50\x28\x50\x7e\x50\x43\x50\x55\x50\x48\x50\x4e\x50\x6c\x50\x7b\x50\xa5\x50\xa7\x50\xa9\x50\xba\x50\xd6\x51\x06\x50\xed\x50\xec\x50\xe6\x50\xee\x51\x07\x51\x0b\x4e\xdd\x6c\x3d\x4f\x58\x4f\x65\x4f\xce\x9f\xa0", /* 5d80 */ "\x00\x00\x6c\x46\x7c\x74\x51\x6e\x5d\xfd\x9e\xc9\x99\x98\x51\x81\x59\x14\x52\xf9\x53\x0d\x8a\x07\x53\x10\x51\xeb\x59\x19\x51\x55\x4e\xa0\x51\x56\x4e\xb3\x88\x6e\x88\xa4\x4e\xb5\x81\x14\x88\xd2\x79\x80\x5b\x34\x88\x03\x7f\xb8\x51\xab\x51\xb1\x51\xbd\x51\xbc\x51\xc7\x51\x96\x51\xa2\x51\xa5\x8b\xa0\x8b\xa6\x8b\xa7\x8b\xaa\x8b\xb4\x8b\xb5\x8b\xb7\x8b\xc2\x8b\xc3\x8b\xcb\x8b\xcf\x8b\xce\x8b\xd2\x8b\xd3\x8b\xd4\x8b\xd6\x8b\xd8\x8b\xd9\x8b\xdc\x8b\xdf\x8b\xe0\x8b\xe4\x8b\xe8\x8b\xe9\x8b\xee\x8b\xf0\x8b\xf3\x8b\xf6\x8b\xf9\x8b\xfc\x8b\xff\x8c\x00\x8c\x02\x8c\x04\x8c\x07\x8c\x0c\x8c\x0f\x8c\x11\x8c\x12\x8c\x14\x8c\x15\x8c\x16\x8c\x19\x8c\x1b\x8c\x18\x8c\x1d\x8c\x1f\x8c\x20\x8c\x21\x8c\x25\x8c\x27\x8c\x2a\x8c\x2b\x8c\x2e\x8c\x2f\x8c\x32\x8c\x33\x8c\x35\x8c\x36\x53\x69\x53\x7a\x96\x1d\x96\x22\x96\x21\x96\x31\x96\x2a\x96\x3d\x96\x3c\x96\x42\x96\x49\x96\x54\x96\x5f\x96\x67\x96\x6c\x96\x72\x96\x74\x96\x88\x96\x8d\x96\x97\x96\xb0\x90\x97\x90\x9b\x90\x9d\x90\x99\x90\xac\x90\xa1\x90\xb4\x90\xb3\x90\xb6\x90\xba\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xb8\x90\xb0\x90\xcf\x90\xc5\x90\xbe\x90\xd0\x90\xc4\x90\xc7\x90\xd3\x90\xe6\x90\xe2\x90\xdc\x90\xd7\x90\xdb\x90\xeb\x90\xef\x90\xfe\x91\x04\x91\x22\x91\x1e\x91\x23\x91\x31\x91\x2f\x91\x39\x91\x43\x91\x46\x52\x0d\x59\x42\x52\xa2\x52\xac\x52\xad\x52\xbe\x54\xff\x52\xd0\x52\xd6\x52\xf0\x53\xdf\x71\xee\x77\xcd\x5e\xf4\x51\xf5\x51\xfc\x9b\x2f\x53\xb6\x5f\x01\x75\x5a\x5d\xef\x57\x4c\x57\xa9\x57\xa1\x58\x7e\x58\xbc\x58\xc5\x58\xd1\x57\x29\x57\x2c\x57\x2a\x57\x33\x57\x39\x57\x2e\x57\x2f\x57\x5c\x57\x3b", /* 5e80 */ "\x00\x00\x57\x42\x57\x69\x57\x85\x57\x6b\x57\x86\x57\x7c\x57\x7b\x57\x68\x57\x6d\x57\x76\x57\x73\x57\xad\x57\xa4\x57\x8c\x57\xb2\x57\xcf\x57\xa7\x57\xb4\x57\x93\x57\xa0\x57\xd5\x57\xd8\x57\xda\x57\xd9\x57\xd2\x57\xb8\x57\xf4\x57\xef\x57\xf8\x57\xe4\x57\xdd\x58\x0b\x58\x0d\x57\xfd\x57\xed\x58\x00\x58\x1e\x58\x19\x58\x44\x58\x20\x58\x65\x58\x6c\x58\x81\x58\x89\x58\x9a\x58\x80\x99\xa8\x9f\x19\x61\xff\x82\x79\x82\x7d\x82\x7f\x82\x8f\x82\x8a\x82\xa8\x82\x84\x82\x8e\x82\x91\x82\x97\x82\x99\x82\xab\x82\xb8\x82\xbe\x82\xb0\x82\xc8\x82\xca\x82\xe3\x82\x98\x82\xb7\x82\xae\x82\xcb\x82\xcc\x82\xc1\x82\xa9\x82\xb4\x82\xa1\x82\xaa\x82\x9f\x82\xc4\x82\xce\x82\xa4\x82\xe1\x83\x09\x82\xf7\x82\xe4\x83\x0f\x83\x07\x82\xdc\x82\xf4\x82\xd2\x82\xd8\x83\x0c\x82\xfb\x82\xd3\x83\x11\x83\x1a\x83\x06\x83\x14\x83\x15\x82\xe0\x82\xd5\x83\x1c\x83\x51\x83\x5b\x83\x5c\x83\x08\x83\x92\x83\x3c\x83\x34\x83\x31\x83\x9b\x83\x5e\x83\x2f\x83\x4f\x83\x47\x83\x43\x83\x5f\x83\x40\x83\x17\x83\x60\x83\x2d\x83\x3a\x83\x33\x83\x66\x83\x65\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x68\x83\x1b\x83\x69\x83\x6c\x83\x6a\x83\x6d\x83\x6e\x83\xb0\x83\x78\x83\xb3\x83\xb4\x83\xa0\x83\xaa\x83\x93\x83\x9c\x83\x85\x83\x7c\x83\xb6\x83\xa9\x83\x7d\x83\xb8\x83\x7b\x83\x98\x83\x9e\x83\xa8\x83\xba\x83\xbc\x83\xc1\x84\x01\x83\xe5\x83\xd8\x58\x07\x84\x18\x84\x0b\x83\xdd\x83\xfd\x83\xd6\x84\x1c\x84\x38\x84\x11\x84\x06\x83\xd4\x83\xdf\x84\x0f\x84\x03\x83\xf8\x83\xf9\x83\xea\x83\xc5\x83\xc0\x84\x26\x83\xf0\x83\xe1\x84\x5c\x84\x51\x84\x5a\x84\x59\x84\x73\x84\x87\x84\x88\x84\x7a\x84\x89\x84\x78", /* 5f80 */ "\x00\x00\x84\x3c\x84\x46\x84\x69\x84\x76\x84\x8c\x84\x8e\x84\x31\x84\x6d\x84\xc1\x84\xcd\x84\xd0\x84\xe6\x84\xbd\x84\xd3\x84\xca\x84\xbf\x84\xba\x84\xe0\x84\xa1\x84\xb9\x84\xb4\x84\x97\x84\xe5\x84\xe3\x85\x0c\x75\x0d\x85\x38\x84\xf0\x85\x39\x85\x1f\x85\x3a\x85\x56\x85\x3b\x84\xff\x84\xfc\x85\x59\x85\x48\x85\x68\x85\x64\x85\x5e\x85\x7a\x77\xa2\x85\x43\x85\x72\x85\x7b\x85\xa4\x85\xa8\x85\x87\x85\x8f\x85\x79\x85\xae\x85\x9c\x85\x85\x85\xb9\x85\xb7\x85\xb0\x85\xd3\x85\xc1\x85\xdc\x85\xff\x86\x27\x86\x05\x86\x29\x86\x16\x86\x3c\x5e\xfe\x5f\x08\x59\x3c\x59\x41\x80\x37\x59\x55\x59\x5a\x59\x58\x53\x0f\x5c\x22\x5c\x25\x5c\x2c\x5c\x34\x62\x4c\x62\x6a\x62\x9f\x62\xbb\x62\xca\x62\xda\x62\xd7\x62\xee\x63\x22\x62\xf6\x63\x39\x63\x4b\x63\x43\x63\xad\x63\xf6\x63\x71\x63\x7a\x63\x8e\x63\xb4\x63\x6d\x63\xac\x63\x8a\x63\x69\x63\xae\x63\xbc\x63\xf2\x63\xf8\x63\xe0\x63\xff\x63\xc4\x63\xde\x63\xce\x64\x52\x63\xc6\x63\xbe\x64\x45\x64\x41\x64\x0b\x64\x1b\x64\x20\x64\x0c\x64\x26\x64\x21\x64\x5e\x64\x84\x64\x6d\x64\x96\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7a\x64\xb7\x64\xb8\x64\x99\x64\xba\x64\xc0\x64\xd0\x64\xd7\x64\xe4\x64\xe2\x65\x09\x65\x25\x65\x2e\x5f\x0b\x5f\xd2\x75\x19\x5f\x11\x53\x5f\x53\xf1\x53\xfd\x53\xe9\x53\xe8\x53\xfb\x54\x12\x54\x16\x54\x06\x54\x4b\x54\x52\x54\x53\x54\x54\x54\x56\x54\x43\x54\x21\x54\x57\x54\x59\x54\x23\x54\x32\x54\x82\x54\x94\x54\x77\x54\x71\x54\x64\x54\x9a\x54\x9b\x54\x84\x54\x76\x54\x66\x54\x9d\x54\xd0\x54\xad\x54\xc2\x54\xb4\x54\xd2\x54\xa7\x54\xa6\x54\xd3\x54\xd4\x54\x72\x54\xa3\x54\xd5\x54\xbb\x54\xbf\x54\xcc", /* 6080 */ "\x00\x00\x54\xd9\x54\xda\x54\xdc\x54\xa9\x54\xaa\x54\xa4\x54\xdd\x54\xcf\x54\xde\x55\x1b\x54\xe7\x55\x20\x54\xfd\x55\x14\x54\xf3\x55\x22\x55\x23\x55\x0f\x55\x11\x55\x27\x55\x2a\x55\x67\x55\x8f\x55\xb5\x55\x49\x55\x6d\x55\x41\x55\x55\x55\x3f\x55\x50\x55\x3c\x55\x37\x55\x56\x55\x75\x55\x76\x55\x77\x55\x33\x55\x30\x55\x5c\x55\x8b\x55\xd2\x55\x83\x55\xb1\x55\xb9\x55\x88\x55\x81\x55\x9f\x55\x7e\x55\xd6\x55\x91\x55\x7b\x55\xdf\x55\xbd\x55\xbe\x55\x94\x55\x99\x55\xea\x55\xf7\x55\xc9\x56\x1f\x55\xd1\x55\xeb\x55\xec\x55\xd4\x55\xe6\x55\xdd\x55\xc4\x55\xef\x55\xe5\x55\xf2\x55\xf3\x55\xcc\x55\xcd\x55\xe8\x55\xf5\x55\xe4\x8f\x94\x56\x1e\x56\x08\x56\x0c\x56\x01\x56\x24\x56\x23\x55\xfe\x56\x00\x56\x27\x56\x2d\x56\x58\x56\x39\x56\x57\x56\x2c\x56\x4d\x56\x62\x56\x59\x56\x5c\x56\x4c\x56\x54\x56\x86\x56\x64\x56\x71\x56\x6b\x56\x7b\x56\x7c\x56\x85\x56\x93\x56\xaf\x56\xd4\x56\xd7\x56\xdd\x56\xe1\x56\xf5\x56\xeb\x56\xf9\x56\xff\x57\x04\x57\x0a\x57\x09\x57\x1c\x5e\x0f\x5e\x19\x5e\x14\x5e\x11\x5e\x31\x5e\x3b\x5e\x3c\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x37\x5e\x44\x5e\x54\x5e\x5b\x5e\x5e\x5e\x61\x5c\x8c\x5c\x7a\x5c\x8d\x5c\x90\x5c\x96\x5c\x88\x5c\x98\x5c\x99\x5c\x91\x5c\x9a\x5c\x9c\x5c\xb5\x5c\xa2\x5c\xbd\x5c\xac\x5c\xab\x5c\xb1\x5c\xa3\x5c\xc1\x5c\xb7\x5c\xc4\x5c\xd2\x5c\xe4\x5c\xcb\x5c\xe5\x5d\x02\x5d\x03\x5d\x27\x5d\x26\x5d\x2e\x5d\x24\x5d\x1e\x5d\x06\x5d\x1b\x5d\x58\x5d\x3e\x5d\x34\x5d\x3d\x5d\x6c\x5d\x5b\x5d\x6f\x5d\x5d\x5d\x6b\x5d\x4b\x5d\x4a\x5d\x69\x5d\x74\x5d\x82\x5d\x99\x5d\x9d\x8c\x73\x5d\xb7\x5d\xc5\x5f\x73\x5f\x77\x5f\x82\x5f\x87", /* 6180 */ "\x00\x00\x5f\x89\x5f\x8c\x5f\x95\x5f\x99\x5f\x9c\x5f\xa8\x5f\xad\x5f\xb5\x5f\xbc\x88\x62\x5f\x61\x72\xad\x72\xb0\x72\xb4\x72\xb7\x72\xb8\x72\xc3\x72\xc1\x72\xce\x72\xcd\x72\xd2\x72\xe8\x72\xef\x72\xe9\x72\xf2\x72\xf4\x72\xf7\x73\x01\x72\xf3\x73\x03\x72\xfa\x72\xfb\x73\x17\x73\x13\x73\x21\x73\x0a\x73\x1e\x73\x1d\x73\x15\x73\x22\x73\x39\x73\x25\x73\x2c\x73\x38\x73\x31\x73\x50\x73\x4d\x73\x57\x73\x60\x73\x6c\x73\x6f\x73\x7e\x82\x1b\x59\x25\x98\xe7\x59\x24\x59\x02\x99\x63\x99\x67\x99\x68\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x74\x99\x77\x99\x7d\x99\x80\x99\x84\x99\x87\x99\x8a\x99\x8d\x99\x90\x99\x91\x99\x93\x99\x94\x99\x95\x5e\x80\x5e\x91\x5e\x8b\x5e\x96\x5e\xa5\x5e\xa0\x5e\xb9\x5e\xb5\x5e\xbe\x5e\xb3\x8d\x53\x5e\xd2\x5e\xd1\x5e\xdb\x5e\xe8\x5e\xea\x81\xba\x5f\xc4\x5f\xc9\x5f\xd6\x5f\xcf\x60\x03\x5f\xee\x60\x04\x5f\xe1\x5f\xe4\x5f\xfe\x60\x05\x60\x06\x5f\xea\x5f\xed\x5f\xf8\x60\x19\x60\x35\x60\x26\x60\x1b\x60\x0f\x60\x0d\x60\x29\x60\x2b\x60\x0a\x60\x3f\x60\x21\x60\x78\x60\x79\x60\x7b\x60\x7a\x60\x42\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6a\x60\x7d\x60\x96\x60\x9a\x60\xad\x60\x9d\x60\x83\x60\x92\x60\x8c\x60\x9b\x60\xec\x60\xbb\x60\xb1\x60\xdd\x60\xd8\x60\xc6\x60\xda\x60\xb4\x61\x20\x61\x26\x61\x15\x61\x23\x60\xf4\x61\x00\x61\x0e\x61\x2b\x61\x4a\x61\x75\x61\xac\x61\x94\x61\xa7\x61\xb7\x61\xd4\x61\xf5\x5f\xdd\x96\xb3\x95\xe9\x95\xeb\x95\xf1\x95\xf3\x95\xf5\x95\xf6\x95\xfc\x95\xfe\x96\x03\x96\x04\x96\x06\x96\x08\x96\x0a\x96\x0b\x96\x0c\x96\x0d\x96\x0f\x96\x12\x96\x15\x96\x16\x96\x17\x96\x19\x96\x1a\x4e\x2c\x72\x3f\x62\x15\x6c\x35", /* 6280 */ "\x00\x00\x6c\x54\x6c\x5c\x6c\x4a\x6c\xa3\x6c\x85\x6c\x90\x6c\x94\x6c\x8c\x6c\x68\x6c\x69\x6c\x74\x6c\x76\x6c\x86\x6c\xa9\x6c\xd0\x6c\xd4\x6c\xad\x6c\xf7\x6c\xf8\x6c\xf1\x6c\xd7\x6c\xb2\x6c\xe0\x6c\xd6\x6c\xfa\x6c\xeb\x6c\xee\x6c\xb1\x6c\xd3\x6c\xef\x6c\xfe\x6d\x39\x6d\x27\x6d\x0c\x6d\x43\x6d\x48\x6d\x07\x6d\x04\x6d\x19\x6d\x0e\x6d\x2b\x6d\x4d\x6d\x2e\x6d\x35\x6d\x1a\x6d\x4f\x6d\x52\x6d\x54\x6d\x33\x6d\x91\x6d\x6f\x6d\x9e\x6d\xa0\x6d\x5e\x6d\x93\x6d\x94\x6d\x5c\x6d\x60\x6d\x7c\x6d\x63\x6e\x1a\x6d\xc7\x6d\xc5\x6d\xde\x6e\x0e\x6d\xbf\x6d\xe0\x6e\x11\x6d\xe6\x6d\xdd\x6d\xd9\x6e\x16\x6d\xab\x6e\x0c\x6d\xae\x6e\x2b\x6e\x6e\x6e\x4e\x6e\x6b\x6e\xb2\x6e\x5f\x6e\x86\x6e\x53\x6e\x54\x6e\x32\x6e\x25\x6e\x44\x6e\xdf\x6e\xb1\x6e\x98\x6e\xe0\x6f\x2d\x6e\xe2\x6e\xa5\x6e\xa7\x6e\xbd\x6e\xbb\x6e\xb7\x6e\xd7\x6e\xb4\x6e\xcf\x6e\x8f\x6e\xc2\x6e\x9f\x6f\x62\x6f\x46\x6f\x47\x6f\x24\x6f\x15\x6e\xf9\x6f\x2f\x6f\x36\x6f\x4b\x6f\x74\x6f\x2a\x6f\x09\x6f\x29\x6f\x89\x6f\x8d\x6f\x8c\x6f\x78\x6f\x72\x6f\x7c\x6f\x7a\x6f\xd1\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xc9\x6f\xa7\x6f\xb9\x6f\xb6\x6f\xc2\x6f\xe1\x6f\xee\x6f\xde\x6f\xe0\x6f\xef\x70\x1a\x70\x23\x70\x1b\x70\x39\x70\x35\x70\x4f\x70\x5e\x5b\x80\x5b\x84\x5b\x95\x5b\x93\x5b\xa5\x5b\xb8\x75\x2f\x9a\x9e\x64\x34\x5b\xe4\x5b\xee\x89\x30\x5b\xf0\x8e\x47\x8b\x07\x8f\xb6\x8f\xd3\x8f\xd5\x8f\xe5\x8f\xee\x8f\xe4\x8f\xe9\x8f\xe6\x8f\xf3\x8f\xe8\x90\x05\x90\x04\x90\x0b\x90\x26\x90\x11\x90\x0d\x90\x16\x90\x21\x90\x35\x90\x36\x90\x2d\x90\x2f\x90\x44\x90\x51\x90\x52\x90\x50\x90\x68\x90\x58\x90\x62\x90\x5b\x66\xb9", /* 6380 */ "\x00\x00\x90\x74\x90\x7d\x90\x82\x90\x88\x90\x83\x90\x8b\x5f\x50\x5f\x57\x5f\x56\x5f\x58\x5c\x3b\x54\xab\x5c\x50\x5c\x59\x5b\x71\x5c\x63\x5c\x66\x7f\xbc\x5f\x2a\x5f\x29\x5f\x2d\x82\x74\x5f\x3c\x9b\x3b\x5c\x6e\x59\x81\x59\x83\x59\x8d\x59\xa9\x59\xaa\x59\xa3\x59\x97\x59\xca\x59\xab\x59\x9e\x59\xa4\x59\xd2\x59\xb2\x59\xaf\x59\xd7\x59\xbe\x5a\x05\x5a\x06\x59\xdd\x5a\x08\x59\xe3\x59\xd8\x59\xf9\x5a\x0c\x5a\x09\x5a\x32\x5a\x34\x5a\x11\x5a\x23\x5a\x13\x5a\x40\x5a\x67\x5a\x4a\x5a\x55\x5a\x3c\x5a\x62\x5a\x75\x80\xec\x5a\xaa\x5a\x9b\x5a\x77\x5a\x7a\x5a\xbe\x5a\xeb\x5a\xb2\x5a\xd2\x5a\xd4\x5a\xb8\x5a\xe0\x5a\xe3\x5a\xf1\x5a\xd6\x5a\xe6\x5a\xd8\x5a\xdc\x5b\x09\x5b\x17\x5b\x16\x5b\x32\x5b\x37\x5b\x40\x5c\x15\x5c\x1c\x5b\x5a\x5b\x65\x5b\x73\x5b\x51\x5b\x53\x5b\x62\x9a\x75\x9a\x77\x9a\x78\x9a\x7a\x9a\x7f\x9a\x7d\x9a\x80\x9a\x81\x9a\x85\x9a\x88\x9a\x8a\x9a\x90\x9a\x92\x9a\x93\x9a\x96\x9a\x98\x9a\x9b\x9a\x9c\x9a\x9d\x9a\x9f\x9a\xa0\x9a\xa2\x9a\xa3\x9a\xa5\x9a\xa7\x7e\x9f\x7e\xa1\x7e\xa3\x7e\xa5\x7e\xa8\x7e\xa9\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xad\x7e\xb0\x7e\xbe\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc9\x7e\xcb\x7e\xcc\x7e\xd0\x7e\xd4\x7e\xd7\x7e\xdb\x7e\xe0\x7e\xe1\x7e\xe8\x7e\xeb\x7e\xee\x7e\xef\x7e\xf1\x7e\xf2\x7f\x0d\x7e\xf6\x7e\xfa\x7e\xfb\x7e\xfe\x7f\x01\x7f\x02\x7f\x03\x7f\x07\x7f\x08\x7f\x0b\x7f\x0c\x7f\x0f\x7f\x11\x7f\x12\x7f\x17\x7f\x19\x7f\x1c\x7f\x1b\x7f\x1f\x7f\x21\x7f\x22\x7f\x23\x7f\x24\x7f\x25\x7f\x26\x7f\x27\x7f\x2a\x7f\x2b\x7f\x2c\x7f\x2d\x7f\x2f\x7f\x30\x7f\x31\x7f\x32\x7f\x33\x7f\x35\x5e\x7a\x75\x7f\x5d\xdb\x75\x3e\x90\x95", /* 6480 */ "\x00\x00\x73\x8e\x73\x91\x73\xae\x73\xa2\x73\x9f\x73\xcf\x73\xc2\x73\xd1\x73\xb7\x73\xb3\x73\xc0\x73\xc9\x73\xc8\x73\xe5\x73\xd9\x98\x7c\x74\x0a\x73\xe9\x73\xe7\x73\xde\x73\xba\x73\xf2\x74\x0f\x74\x2a\x74\x5b\x74\x26\x74\x25\x74\x28\x74\x30\x74\x2e\x74\x2c\x74\x1b\x74\x1a\x74\x41\x74\x5c\x74\x57\x74\x55\x74\x59\x74\x77\x74\x6d\x74\x7e\x74\x9c\x74\x8e\x74\x80\x74\x81\x74\x87\x74\x8b\x74\x9e\x74\xa8\x74\xa9\x74\x90\x74\xa7\x74\xd2\x74\xba\x97\xea\x97\xeb\x97\xec\x67\x4c\x67\x53\x67\x5e\x67\x48\x67\x69\x67\xa5\x67\x87\x67\x6a\x67\x73\x67\x98\x67\xa7\x67\x75\x67\xa8\x67\x9e\x67\xad\x67\x8b\x67\x77\x67\x7c\x67\xf0\x68\x09\x67\xd8\x68\x0a\x67\xe9\x67\xb0\x68\x0c\x67\xd9\x67\xb5\x67\xda\x67\xb3\x67\xdd\x68\x00\x67\xc3\x67\xb8\x67\xe2\x68\x0e\x67\xc1\x67\xfd\x68\x32\x68\x33\x68\x60\x68\x61\x68\x4e\x68\x62\x68\x44\x68\x64\x68\x83\x68\x1d\x68\x55\x68\x66\x68\x41\x68\x67\x68\x40\x68\x3e\x68\x4a\x68\x49\x68\x29\x68\xb5\x68\x8f\x68\x74\x68\x77\x68\x93\x68\x6b\x68\xc2\x69\x6e\x68\xfc\x69\x1f\x69\x20\x68\xf9\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x24\x68\xf0\x69\x0b\x69\x01\x69\x57\x68\xe3\x69\x10\x69\x71\x69\x39\x69\x60\x69\x42\x69\x5d\x69\x84\x69\x6b\x69\x80\x69\x98\x69\x78\x69\x34\x69\xcc\x69\x87\x69\x88\x69\xce\x69\x89\x69\x66\x69\x63\x69\x79\x69\x9b\x69\xa7\x69\xbb\x69\xab\x69\xad\x69\xd4\x69\xb1\x69\xc1\x69\xca\x69\xdf\x69\x95\x69\xe0\x69\x8d\x69\xff\x6a\x2f\x69\xed\x6a\x17\x6a\x18\x6a\x65\x69\xf2\x6a\x44\x6a\x3e\x6a\xa0\x6a\x50\x6a\x5b\x6a\x35\x6a\x8e\x6a\x79\x6a\x3d\x6a\x28\x6a\x58\x6a\x7c\x6a\x91\x6a\x90\x6a\xa9\x6a\x97\x6a\xab", /* 6580 */ "\x00\x00\x73\x37\x73\x52\x6b\x81\x6b\x82\x6b\x87\x6b\x84\x6b\x92\x6b\x93\x6b\x8d\x6b\x9a\x6b\x9b\x6b\xa1\x6b\xaa\x8f\x6b\x8f\x6d\x8f\x71\x8f\x72\x8f\x73\x8f\x75\x8f\x76\x8f\x78\x8f\x77\x8f\x79\x8f\x7a\x8f\x7c\x8f\x7e\x8f\x81\x8f\x82\x8f\x84\x8f\x87\x8f\x8b\x8f\x8d\x8f\x8e\x8f\x8f\x8f\x98\x8f\x9a\x8e\xce\x62\x0b\x62\x17\x62\x1b\x62\x1f\x62\x22\x62\x21\x62\x25\x62\x24\x62\x2c\x81\xe7\x74\xef\x74\xf4\x74\xff\x75\x0f\x75\x11\x75\x13\x65\x34\x65\xee\x65\xef\x65\xf0\x66\x0a\x66\x19\x67\x72\x66\x03\x66\x15\x66\x00\x70\x85\x66\xf7\x66\x1d\x66\x34\x66\x31\x66\x36\x66\x35\x80\x06\x66\x5f\x66\x54\x66\x41\x66\x4f\x66\x56\x66\x61\x66\x57\x66\x77\x66\x84\x66\x8c\x66\xa7\x66\x9d\x66\xbe\x66\xdb\x66\xdc\x66\xe6\x66\xe9\x8d\x32\x8d\x33\x8d\x36\x8d\x3b\x8d\x3d\x8d\x40\x8d\x45\x8d\x46\x8d\x48\x8d\x49\x8d\x47\x8d\x4d\x8d\x55\x8d\x59\x89\xc7\x89\xca\x89\xcb\x89\xcc\x89\xce\x89\xcf\x89\xd0\x89\xd1\x72\x6e\x72\x9f\x72\x5d\x72\x66\x72\x6f\x72\x7e\x72\x7f\x72\x84\x72\x8b\x72\x8d\x72\x8f\x72\x92\x63\x08\x63\x32\x63\xb0\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x3f\x64\xd8\x80\x04\x6b\xea\x6b\xf3\x6b\xfd\x6b\xf5\x6b\xf9\x6c\x05\x6c\x07\x6c\x06\x6c\x0d\x6c\x15\x6c\x18\x6c\x19\x6c\x1a\x6c\x21\x6c\x29\x6c\x24\x6c\x2a\x6c\x32\x65\x35\x65\x55\x65\x6b\x72\x4d\x72\x52\x72\x56\x72\x30\x86\x62\x52\x16\x80\x9f\x80\x9c\x80\x93\x80\xbc\x67\x0a\x80\xbd\x80\xb1\x80\xab\x80\xad\x80\xb4\x80\xb7\x80\xe7\x80\xe8\x80\xe9\x80\xea\x80\xdb\x80\xc2\x80\xc4\x80\xd9\x80\xcd\x80\xd7\x67\x10\x80\xdd\x80\xeb\x80\xf1\x80\xf4\x80\xed\x81\x0d\x81\x0e\x80\xf2\x80\xfc\x67\x15\x81\x12", /* 6680 */ "\x00\x00\x8c\x5a\x81\x36\x81\x1e\x81\x2c\x81\x18\x81\x32\x81\x48\x81\x4c\x81\x53\x81\x74\x81\x59\x81\x5a\x81\x71\x81\x60\x81\x69\x81\x7c\x81\x7d\x81\x6d\x81\x67\x58\x4d\x5a\xb5\x81\x88\x81\x82\x81\x91\x6e\xd5\x81\xa3\x81\xaa\x81\xcc\x67\x26\x81\xca\x81\xbb\x81\xc1\x81\xa6\x6b\x24\x6b\x37\x6b\x39\x6b\x43\x6b\x46\x6b\x59\x98\xd1\x98\xd2\x98\xd3\x98\xd5\x98\xd9\x98\xda\x6b\xb3\x5f\x40\x6b\xc2\x89\xf3\x65\x90\x9f\x51\x65\x93\x65\xbc\x65\xc6\x65\xc4\x65\xc3\x65\xcc\x65\xce\x65\xd2\x65\xd6\x70\x80\x70\x9c\x70\x96\x70\x9d\x70\xbb\x70\xc0\x70\xb7\x70\xab\x70\xb1\x70\xe8\x70\xca\x71\x10\x71\x13\x71\x16\x71\x2f\x71\x31\x71\x73\x71\x5c\x71\x68\x71\x45\x71\x72\x71\x4a\x71\x78\x71\x7a\x71\x98\x71\xb3\x71\xb5\x71\xa8\x71\xa0\x71\xe0\x71\xd4\x71\xe7\x71\xf9\x72\x1d\x72\x28\x70\x6c\x71\x18\x71\x66\x71\xb9\x62\x3e\x62\x3d\x62\x43\x62\x48\x62\x49\x79\x3b\x79\x40\x79\x46\x79\x49\x79\x5b\x79\x5c\x79\x53\x79\x5a\x79\x62\x79\x57\x79\x60\x79\x6f\x79\x67\x79\x7a\x79\x85\x79\x8a\x79\x9a\x79\xa7\x79\xb3\x5f\xd1\x5f\xd0\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x3c\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\x59\x60\x63\x60\xab\x61\x06\x61\x0d\x61\x5d\x61\xa9\x61\x9d\x61\xcb\x61\xd1\x62\x06\x80\x80\x80\x7f\x6c\x93\x6c\xf6\x6d\xfc\x77\xf6\x77\xf8\x78\x00\x78\x09\x78\x17\x78\x18\x78\x11\x65\xab\x78\x2d\x78\x1c\x78\x1d\x78\x39\x78\x3a\x78\x3b\x78\x1f\x78\x3c\x78\x25\x78\x2c\x78\x23\x78\x29\x78\x4e\x78\x6d\x78\x56\x78\x57\x78\x26\x78\x50\x78\x47\x78\x4c\x78\x6a\x78\x9b\x78\x93\x78\x9a\x78\x87\x78\x9c\x78\xa1\x78\xa3\x78\xb2\x78\xb9\x78\xa5\x78\xd4\x78\xd9\x78\xc9", /* 6780 */ "\x00\x00\x78\xec\x78\xf2\x79\x05\x78\xf4\x79\x13\x79\x24\x79\x1e\x79\x34\x9f\x9b\x9e\xf9\x9e\xfb\x9e\xfc\x76\xf1\x77\x04\x77\x0d\x76\xf9\x77\x07\x77\x08\x77\x1a\x77\x22\x77\x19\x77\x2d\x77\x26\x77\x35\x77\x38\x77\x50\x77\x51\x77\x47\x77\x43\x77\x5a\x77\x68\x77\x62\x77\x65\x77\x7f\x77\x8d\x77\x7d\x77\x80\x77\x8c\x77\x91\x77\x9f\x77\xa0\x77\xb0\x77\xb5\x77\xbd\x75\x3a\x75\x40\x75\x4e\x75\x4b\x75\x48\x75\x5b\x75\x72\x75\x79\x75\x83\x7f\x58\x7f\x61\x7f\x5f\x8a\x48\x7f\x68\x7f\x74\x7f\x71\x7f\x79\x7f\x81\x7f\x7e\x76\xcd\x76\xe5\x88\x32\x94\x85\x94\x86\x94\x87\x94\x8b\x94\x8a\x94\x8c\x94\x8d\x94\x8f\x94\x90\x94\x94\x94\x97\x94\x95\x94\x9a\x94\x9b\x94\x9c\x94\xa3\x94\xa4\x94\xab\x94\xaa\x94\xad\x94\xac\x94\xaf\x94\xb0\x94\xb2\x94\xb4\x94\xb6\x94\xb7\x94\xb8\x94\xb9\x94\xba\x94\xbc\x94\xbd\x94\xbf\x94\xc4\x94\xc8\x94\xc9\x94\xca\x94\xcb\x94\xcc\x94\xcd\x94\xce\x94\xd0\x94\xd1\x94\xd2\x94\xd5\x94\xd6\x94\xd7\x94\xd9\x94\xd8\x94\xdb\x94\xde\x94\xdf\x94\xe0\x94\xe2\x94\xe4\x94\xe5\x94\xe7\x94\xe8\x94\xea\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe9\x94\xeb\x94\xee\x94\xef\x94\xf3\x94\xf4\x94\xf5\x94\xf7\x94\xf9\x94\xfc\x94\xfd\x94\xff\x95\x03\x95\x02\x95\x06\x95\x07\x95\x09\x95\x0a\x95\x0d\x95\x0e\x95\x0f\x95\x12\x95\x13\x95\x14\x95\x15\x95\x16\x95\x18\x95\x1b\x95\x1d\x95\x1e\x95\x1f\x95\x22\x95\x2a\x95\x2b\x95\x29\x95\x2c\x95\x31\x95\x32\x95\x34\x95\x36\x95\x37\x95\x38\x95\x3c\x95\x3e\x95\x3f\x95\x42\x95\x35\x95\x44\x95\x45\x95\x46\x95\x49\x95\x4c\x95\x4e\x95\x4f\x95\x52\x95\x53\x95\x54\x95\x56\x95\x57\x95\x58\x95\x59\x95\x5b\x95\x5e", /* 6880 */ "\x00\x00\x95\x5f\x95\x5d\x95\x61\x95\x62\x95\x64\x95\x65\x95\x66\x95\x67\x95\x68\x95\x69\x95\x6a\x95\x6b\x95\x6c\x95\x6f\x95\x71\x95\x72\x95\x73\x95\x3a\x77\xe7\x77\xec\x96\xc9\x79\xd5\x79\xed\x79\xe3\x79\xeb\x7a\x06\x5d\x47\x7a\x03\x7a\x02\x7a\x1e\x7a\x14\x7a\x39\x7a\x37\x7a\x51\x9e\xcf\x99\xa5\x7a\x70\x76\x88\x76\x8e\x76\x93\x76\x99\x76\xa4\x74\xde\x74\xe0\x75\x2c\x9e\x20\x9e\x22\x9e\x28\x9e\x29\x9e\x2a\x9e\x2b\x9e\x2c\x9e\x32\x9e\x31\x9e\x36\x9e\x38\x9e\x37\x9e\x39\x9e\x3a\x9e\x3e\x9e\x41\x9e\x42\x9e\x44\x9e\x46\x9e\x47\x9e\x48\x9e\x49\x9e\x4b\x9e\x4c\x9e\x4e\x9e\x51\x9e\x55\x9e\x57\x9e\x5a\x9e\x5b\x9e\x5c\x9e\x5e\x9e\x63\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x9e\x6b\x9e\x6c\x9e\x71\x9e\x6d\x9e\x73\x75\x92\x75\x94\x75\x96\x75\xa0\x75\x9d\x75\xac\x75\xa3\x75\xb3\x75\xb4\x75\xb8\x75\xc4\x75\xb1\x75\xb0\x75\xc3\x75\xc2\x75\xd6\x75\xcd\x75\xe3\x75\xe8\x75\xe6\x75\xe4\x75\xeb\x75\xe7\x76\x03\x75\xf1\x75\xfc\x75\xff\x76\x10\x76\x00\x76\x05\x76\x0c\x76\x17\x76\x0a\x76\x25\x76\x18\x76\x15\x76\x19\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x1b\x76\x3c\x76\x22\x76\x20\x76\x40\x76\x2d\x76\x30\x76\x3f\x76\x35\x76\x43\x76\x3e\x76\x33\x76\x4d\x76\x5e\x76\x54\x76\x5c\x76\x56\x76\x6b\x76\x6f\x7f\xca\x7a\xe6\x7a\x78\x7a\x79\x7a\x80\x7a\x86\x7a\x88\x7a\x95\x7a\xa6\x7a\xa0\x7a\xac\x7a\xa8\x7a\xad\x7a\xb3\x88\x64\x88\x69\x88\x72\x88\x7d\x88\x7f\x88\x82\x88\xa2\x88\xc6\x88\xb7\x88\xbc\x88\xc9\x88\xe2\x88\xce\x88\xe3\x88\xe5\x88\xf1\x89\x1a\x88\xfc\x88\xe8\x88\xfe\x88\xf0\x89\x21\x89\x19\x89\x13\x89\x1b\x89\x0a\x89\x34\x89\x2b\x89\x36\x89\x41", /* 6980 */ "\x00\x00\x89\x66\x89\x7b\x75\x8b\x80\xe5\x76\xb2\x76\xb4\x77\xdc\x80\x12\x80\x14\x80\x16\x80\x1c\x80\x20\x80\x22\x80\x25\x80\x26\x80\x27\x80\x29\x80\x28\x80\x31\x80\x0b\x80\x35\x80\x43\x80\x46\x80\x4d\x80\x52\x80\x69\x80\x71\x89\x83\x98\x78\x98\x80\x98\x83\x98\x89\x98\x8c\x98\x8d\x98\x8f\x98\x94\x98\x9a\x98\x9b\x98\x9e\x98\x9f\x98\xa1\x98\xa2\x98\xa5\x98\xa6\x86\x4d\x86\x54\x86\x6c\x86\x6e\x86\x7f\x86\x7a\x86\x7c\x86\x7b\x86\xa8\x86\x8d\x86\x8b\x86\xac\x86\x9d\x86\xa7\x86\xa3\x86\xaa\x86\x93\x86\xa9\x86\xb6\x86\xc4\x86\xb5\x86\xce\x86\xb0\x86\xba\x86\xb1\x86\xaf\x86\xc9\x86\xcf\x86\xb4\x86\xe9\x86\xf1\x86\xf2\x86\xed\x86\xf3\x86\xd0\x87\x13\x86\xde\x86\xf4\x86\xdf\x86\xd8\x86\xd1\x87\x03\x87\x07\x86\xf8\x87\x08\x87\x0a\x87\x0d\x87\x09\x87\x23\x87\x3b\x87\x1e\x87\x25\x87\x2e\x87\x1a\x87\x3e\x87\x48\x87\x34\x87\x31\x87\x29\x87\x37\x87\x3f\x87\x82\x87\x22\x87\x7d\x87\x7e\x87\x7b\x87\x60\x87\x70\x87\x4c\x87\x6e\x87\x8b\x87\x53\x87\x63\x87\x7c\x87\x64\x87\x59\x87\x65\x87\x93\x87\xaf\x87\xa8\x87\xd2\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xc6\x87\x88\x87\x85\x87\xad\x87\x97\x87\x83\x87\xab\x87\xe5\x87\xac\x87\xb5\x87\xb3\x87\xcb\x87\xd3\x87\xbd\x87\xd1\x87\xc0\x87\xca\x87\xdb\x87\xea\x87\xe0\x87\xee\x88\x16\x88\x13\x87\xfe\x88\x0a\x88\x1b\x88\x21\x88\x39\x88\x3c\x7f\x36\x7f\x42\x7f\x44\x7f\x45\x82\x10\x7a\xfa\x7a\xfd\x7b\x08\x7b\x03\x7b\x04\x7b\x15\x7b\x0a\x7b\x2b\x7b\x0f\x7b\x47\x7b\x38\x7b\x2a\x7b\x19\x7b\x2e\x7b\x31\x7b\x20\x7b\x25\x7b\x24\x7b\x33\x7b\x3e\x7b\x1e\x7b\x58\x7b\x5a\x7b\x45\x7b\x75\x7b\x4c\x7b\x5d\x7b\x60\x7b\x6e", /* 6a80 */ "\x00\x00\x7b\x7b\x7b\x62\x7b\x72\x7b\x71\x7b\x90\x7b\xa6\x7b\xa7\x7b\xb8\x7b\xac\x7b\x9d\x7b\xa8\x7b\x85\x7b\xaa\x7b\x9c\x7b\xa2\x7b\xab\x7b\xb4\x7b\xd1\x7b\xc1\x7b\xcc\x7b\xdd\x7b\xda\x7b\xe5\x7b\xe6\x7b\xea\x7c\x0c\x7b\xfe\x7b\xfc\x7c\x0f\x7c\x16\x7c\x0b\x7c\x1f\x7c\x2a\x7c\x26\x7c\x38\x7c\x41\x7c\x40\x81\xfe\x82\x01\x82\x02\x82\x04\x81\xec\x88\x44\x82\x21\x82\x22\x82\x23\x82\x2d\x82\x2f\x82\x28\x82\x2b\x82\x38\x82\x3b\x82\x33\x82\x34\x82\x3e\x82\x44\x82\x49\x82\x4b\x82\x4f\x82\x5a\x82\x5f\x82\x68\x88\x7e\x88\x85\x88\x88\x88\xd8\x88\xdf\x89\x5e\x7f\x9d\x7f\x9f\x7f\xa7\x7f\xaf\x7f\xb0\x7f\xb2\x7c\x7c\x65\x49\x7c\x91\x7c\x9d\x7c\x9c\x7c\x9e\x7c\xa2\x7c\xb2\x7c\xbc\x7c\xbd\x7c\xc1\x7c\xc7\x7c\xcc\x7c\xcd\x7c\xc8\x7c\xc5\x7c\xd7\x7c\xe8\x82\x6e\x66\xa8\x7f\xbf\x7f\xce\x7f\xd5\x7f\xe5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xee\x7f\xf3\x7c\xf8\x7d\x77\x7d\xa6\x7d\xae\x7e\x47\x7e\x9b\x9e\xb8\x9e\xb4\x8d\x73\x8d\x84\x8d\x94\x8d\x91\x8d\xb1\x8d\x67\x8d\x6d\x8c\x47\x8c\x49\x91\x4a\x91\x50\x91\x4e\x91\x4f\x91\x64\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x62\x91\x61\x91\x70\x91\x69\x91\x6f\x91\x7d\x91\x7e\x91\x72\x91\x74\x91\x79\x91\x8c\x91\x85\x91\x90\x91\x8d\x91\x91\x91\xa2\x91\xa3\x91\xaa\x91\xad\x91\xae\x91\xaf\x91\xb5\x91\xb4\x91\xba\x8c\x55\x9e\x7e\x8d\xb8\x8d\xeb\x8e\x05\x8e\x59\x8e\x69\x8d\xb5\x8d\xbf\x8d\xbc\x8d\xba\x8d\xc4\x8d\xd6\x8d\xd7\x8d\xda\x8d\xde\x8d\xce\x8d\xcf\x8d\xdb\x8d\xc6\x8d\xec\x8d\xf7\x8d\xf8\x8d\xe3\x8d\xf9\x8d\xfb\x8d\xe4\x8e\x09\x8d\xfd\x8e\x14\x8e\x1d\x8e\x1f\x8e\x2c\x8e\x2e\x8e\x23\x8e\x2f\x8e\x3a\x8e\x40\x8e\x39", /* 6b80 */ "\x00\x00\x8e\x35\x8e\x3d\x8e\x31\x8e\x49\x8e\x41\x8e\x42\x8e\x51\x8e\x52\x8e\x4a\x8e\x70\x8e\x76\x8e\x7c\x8e\x6f\x8e\x74\x8e\x85\x8e\x8f\x8e\x94\x8e\x90\x8e\x9c\x8e\x9e\x8c\x78\x8c\x82\x8c\x8a\x8c\x85\x8c\x98\x8c\x94\x65\x9b\x89\xd6\x89\xde\x89\xda\x89\xdc\x89\xe5\x89\xeb\x89\xef\x8a\x3e\x8b\x26\x97\x53\x96\xe9\x96\xf3\x96\xef\x97\x06\x97\x01\x97\x08\x97\x0f\x97\x0e\x97\x2a\x97\x2d\x97\x30\x97\x3e\x9f\x80\x9f\x83\x9f\x85\x9f\x86\x9f\x87\x9f\x88\x9f\x89\x9f\x8a\x9f\x8c\x9e\xfe\x9f\x0b\x9f\x0d\x96\xb9\x96\xbc\x96\xbd\x96\xce\x96\xd2\x77\xbf\x96\xe0\x92\x8e\x92\xae\x92\xc8\x93\x3e\x93\x6a\x93\xca\x93\x8f\x94\x3e\x94\x6b\x9c\x7f\x9c\x82\x9c\x85\x9c\x86\x9c\x87\x9c\x88\x7a\x23\x9c\x8b\x9c\x8e\x9c\x90\x9c\x91\x9c\x92\x9c\x94\x9c\x95\x9c\x9a\x9c\x9b\x9c\x9e\x9c\x9f\x9c\xa0\x9c\xa1\x9c\xa2\x9c\xa3\x9c\xa5\x9c\xa6\x9c\xa7\x9c\xa8\x9c\xa9\x9c\xab\x9c\xad\x9c\xae\x9c\xb0\x9c\xb1\x9c\xb2\x9c\xb3\x9c\xb4\x9c\xb5\x9c\xb6\x9c\xb7\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xca\x9c\xcb\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xcc\x9c\xcd\x9c\xce\x9c\xcf\x9c\xd0\x9c\xd3\x9c\xd4\x9c\xd5\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xdc\x9c\xdd\x9c\xdf\x9c\xe2\x97\x7c\x97\x85\x97\x91\x97\x92\x97\x94\x97\xaf\x97\xab\x97\xa3\x97\xb2\x97\xb4\x9a\xb1\x9a\xb0\x9a\xb7\x9e\x58\x9a\xb6\x9a\xba\x9a\xbc\x9a\xc1\x9a\xc0\x9a\xc5\x9a\xc2\x9a\xcb\x9a\xcc\x9a\xd1\x9b\x45\x9b\x43\x9b\x47\x9b\x49\x9b\x48\x9b\x4d\x9b\x51\x98\xe8\x99\x0d\x99\x2e\x99\x55\x99\x54\x9a\xdf\x9a\xe1\x9a\xe6\x9a\xef\x9a\xeb\x9a\xfb\x9a\xed\x9a\xf9\x9b\x08\x9b\x0f\x9b\x13\x9b\x1f", /* 6c80 */ "\x00\x00\x9b\x23\x9e\xbd\x9e\xbe\x7e\x3b\x9e\x82\x9e\x87\x9e\x88\x9e\x8b\x9e\x92\x93\xd6\x9e\x9d\x9e\x9f\x9e\xdb\x9e\xdc\x9e\xdd\x9e\xe0\x9e\xdf\x9e\xe2\x9e\xe9\x9e\xe7\x9e\xe5\x9e\xea\x9e\xef\x9f\x22\x9f\x2c\x9f\x2f\x9f\x39\x9f\x37\x9f\x3d\x9f\x3e\x9f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x0f\x01\x0f\x02\x0f\x03\x0f\x04\x0f\x05\x0f\x06\x0f\x07\x0f\x08\x0f\x09\x0f\x0a\x0f\x0b\x0f\x0c\x0f\x0d\x0f\x0e\x0f\x0f\x0f\x10\x0f\x11\x0f\x12\x0f\x13\x0f\x14\x0f\x15\x0f\x16\x0f\x17\x0f\x18\x0f\x19\x0f\x1a\x0f\x1b\x0f\x1c\x0f\x1d\x0f\x1e\x0f\x1f\x0f\x20\x0f\x21\x0f\x22\x0f\x23\x0f\x24\x0f\x25\x0f\x26\x0f\x27\x0f\x28\x0f\x29\x0f\x2a\x0f\x2b\x0f\x2c\x0f\x2d\x0f\x2e\x0f\x2f\x0f\x30\x0f\x31\x0f\x32\x0f\x33\x0f\x34\x0f\x35\x0f\x36\x0f\x37\x0f\x38\x0f\x39\x0f\x3a\x0f\x3b\x0f\x3c\x0f\x3d\x0f\x3e", /* 6d80 */ "\x0f\x3f\x0f\x40\x0f\x41\x0f\x42\x0f\x43\x0f\x44\x0f\x45\x0f\x46\x0f\x47\x0f\x48\x0f\x49\x0f\x4a\x0f\x4b\x0f\x4c\x0f\x4d\x0f\x4e\x0f\x4f\x0f\x50\x0f\x51\x0f\x52\x0f\x53\x0f\x54\x0f\x55\x0f\x56\x0f\x57\x0f\x58\x0f\x59\x0f\x5a\x0f\x5b\x0f\x5c\x0f\x5d\x0f\x5e\x0f\x5f\x0f\x60\x0f\x61\x0f\x62\x0f\x63\x0f\x64\x0f\x65\x0f\x66\x0f\x67\x0f\x68\x0f\x69\x0f\x6a\x0f\x6b\x0f\x6c\x0f\x6d\x0f\x6e\x0f\x6f\x0f\x70\x0f\x71\x0f\x72\x0f\x73\x0f\x74\x0f\x75\x0f\x76\x0f\x77\x0f\x78\x0f\x79\x0f\x7a\x0f\x7b\x0f\x7c\x0f\x7d\x0f\x7e\x0f\x7f\x0f\x80\x0f\x81\x0f\x82\x0f\x83\x0f\x84\x0f\x85\x0f\x86\x0f\x87\x0f\x88\x0f\x89\x0f\x8a\x0f\x8b\x0f\x8c\x0f\x8d\x0f\x8e\x0f\x8f\x0f\x90\x0f\x91\x0f\x92\x0f\x93\x0f\x94\x0f\x95\x0f\x96\x0f\x97\x0f\x98\x0f\x99\x0f\x9a\x0f\x9b\x0f\x9c\x0f\x9d\x0f\x9e\x0f\x9f\x0f\xa0\x0f\xa1\x0f\xa2\x0f\xa3\x0f\xa4\x0f\xa5\x0f\xa6\x0f\xa7\x0f\xa8\x0f\xa9\x0f\xaa\x0f\xab\x0f\xac\x0f\xad\x0f\xae\x0f\xaf\x0f\xb0\x0f\xb1\x0f\xb2\x0f\xb3\x0f\xb4\x0f\xb5\x0f\xb6\x0f\xb7\x0f\xb8\x0f\xb9\x0f\xba\x0f\xbb\x0f\xbc\x0f\xbd\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\xbe\x0f\xbf\x0f\xc0\x0f\xc1\x0f\xc2\x0f\xc3\x0f\xc4\x0f\xc5\x0f\xc6\x0f\xc7\x0f\xc8\x0f\xc9\x0f\xca\x0f\xcb\x0f\xcc\x0f\xcd\x0f\xce\x0f\xcf\x0f\xd0\x0f\xd1\x0f\xd2\x0f\xd3\x0f\xd4\x0f\xd5\x0f\xd6\x0f\xd7\x0f\xd8\x0f\xd9\x0f\xda\x0f\xdb\x0f\xdc\x0f\xdd\x0f\xde\x0f\xdf\x0f\xe0\x0f\xe1\x0f\xe2\x0f\xe3\x0f\xe4\x0f\xe5\x0f\xe6\x0f\xe7\x0f\xe8\x0f\xe9\x0f\xea\x0f\xeb\x0f\xec\x0f\xed\x0f\xee\x0f\xef\x0f\xf0\x0f\xf1\x0f\xf2\x0f\xf3\x0f\xf4\x0f\xf5\x0f\xf6\x0f\xf7\x0f\xf8\x0f\xf9\x0f\xfa\x0f\xfb\x0f\xfc", /* 6e80 */ "\x0f\xfd\x0f\xfe\x0f\xff\x18\x00\x18\x01\x18\x02\x18\x03\x18\x04\x18\x05\x18\x06\x18\x07\x18\x08\x18\x09\x18\x0a\x18\x0b\x18\x0c\x18\x0d\x18\x0e\x18\x0f\x18\x10\x18\x11\x18\x12\x18\x13\x18\x14\x18\x15\x18\x16\x18\x17\x18\x18\x18\x19\x18\x1a\x18\x1b\x18\x1c\x18\x1d\x18\x1e\x18\x1f\x18\x20\x18\x21\x18\x22\x18\x23\x18\x24\x18\x25\x18\x26\x18\x27\x18\x28\x18\x29\x18\x2a\x18\x2b\x18\x2c\x18\x2d\x18\x2e\x18\x2f\x18\x30\x18\x31\x18\x32\x18\x33\x18\x34\x18\x35\x18\x36\x18\x37\x18\x38\x18\x39\x18\x3a\x18\x3b\x18\x3c\x18\x3d\x18\x3e\x18\x3f\x18\x40\x18\x41\x18\x42\x18\x43\x18\x44\x18\x45\x18\x46\x18\x47\x18\x48\x18\x49\x18\x4a\x18\x4b\x18\x4c\x18\x4d\x18\x4e\x18\x4f\x18\x50\x18\x51\x18\x52\x18\x53\x18\x54\x18\x55\x18\x56\x18\x57\x18\x58\x18\x59\x18\x5a\x18\x5b\x18\x5c\x18\x5d\x18\x5e\x18\x5f\x18\x60\x18\x61\x18\x62\x18\x63\x18\x64\x18\x65\x18\x66\x18\x67\x18\x68\x18\x69\x18\x6a\x18\x6b\x18\x6c\x18\x6d\x18\x6e\x18\x6f\x18\x70\x18\x71\x18\x72\x18\x73\x18\x74\x18\x75\x18\x76\x18\x77\x18\x78\x18\x79\x18\x7a\x18\x7b\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x7c\x18\x7d\x18\x7e\x18\x7f\x18\x80\x18\x81\x18\x82\x18\x83\x18\x84\x18\x85\x18\x86\x18\x87\x18\x88\x18\x89\x18\x8a\x18\x8b\x18\x8c\x18\x8d\x18\x8e\x18\x8f\x18\x90\x18\x91\x18\x92\x18\x93\x18\x94\x18\x95\x18\x96\x18\x97\x18\x98\x18\x99\x18\x9a\x18\x9b\x18\x9c\x18\x9d\x18\x9e\x18\x9f\x18\xa0\x18\xa1\x18\xa2\x18\xa3\x18\xa4\x18\xa5\x18\xa6\x18\xa7\x18\xa8\x18\xa9\x18\xaa\x18\xab\x18\xac\x18\xad\x18\xae\x18\xaf\xa0\x00\xa0\x01\xa0\x02\xa0\x03\xa0\x04\xa0\x05\xa0\x06\xa0\x07\xa0\x08\xa0\x09\xa0\x0a", /* 6f80 */ "\xa0\x0b\xa0\x0c\xa0\x0d\xa0\x0e\xa0\x0f\xa0\x10\xa0\x11\xa0\x12\xa0\x13\xa0\x14\xa0\x15\xa0\x16\xa0\x17\xa0\x18\xa0\x19\xa0\x1a\xa0\x1b\xa0\x1c\xa0\x1d\xa0\x1e\xa0\x1f\xa0\x20\xa0\x21\xa0\x22\xa0\x23\xa0\x24\xa0\x25\xa0\x26\xa0\x27\xa0\x28\xa0\x29\xa0\x2a\xa0\x2b\xa0\x2c\xa0\x2d\xa0\x2e\xa0\x2f\xa0\x30\xa0\x31\xa0\x32\xa0\x33\xa0\x34\xa0\x35\xa0\x36\xa0\x37\xa0\x38\xa0\x39\xa0\x3a\xa0\x3b\xa0\x3c\xa0\x3d\xa0\x3e\xa0\x3f\xa0\x40\xa0\x41\xa0\x42\xa0\x43\xa0\x44\xa0\x45\xa0\x46\xa0\x47\xa0\x48\xa0\x49\xa0\x4a\xa0\x4b\xa0\x4c\xa0\x4d\xa0\x4e\xa0\x4f\xa0\x50\xa0\x51\xa0\x52\xa0\x53\xa0\x54\xa0\x55\xa0\x56\xa0\x57\xa0\x58\xa0\x59\xa0\x5a\xa0\x5b\xa0\x5c\xa0\x5d\xa0\x5e\xa0\x5f\xa0\x60\xa0\x61\xa0\x62\xa0\x63\xa0\x64\xa0\x65\xa0\x66\xa0\x67\xa0\x68\xa0\x69\xa0\x6a\xa0\x6b\xa0\x6c\xa0\x6d\xa0\x6e\xa0\x6f\xa0\x70\xa0\x71\xa0\x72\xa0\x73\xa0\x74\xa0\x75\xa0\x76\xa0\x77\xa0\x78\xa0\x79\xa0\x7a\xa0\x7b\xa0\x7c\xa0\x7d\xa0\x7e\xa0\x7f\xa0\x80\xa0\x81\xa0\x82\xa0\x83\xa0\x84\xa0\x85\xa0\x86\xa0\x87\xa0\x88\xa0\x89\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x8a\xa0\x8b\xa0\x8c\xa0\x8d\xa0\x8e\xa0\x8f\xa0\x90\xa0\x91\xa0\x92\xa0\x93\xa0\x94\xa0\x95\xa0\x96\xa0\x97\xa0\x98\xa0\x99\xa0\x9a\xa0\x9b\xa0\x9c\xa0\x9d\xa0\x9e\xa0\x9f\xa0\xa0\xa0\xa1\xa0\xa2\xa0\xa3\xa0\xa4\xa0\xa5\xa0\xa6\xa0\xa7\xa0\xa8\xa0\xa9\xa0\xaa\xa0\xab\xa0\xac\xa0\xad\xa0\xae\xa0\xaf\xa0\xb0\xa0\xb1\xa0\xb2\xa0\xb3\xa0\xb4\xa0\xb5\xa0\xb6\xa0\xb7\xa0\xb8\xa0\xb9\xa0\xba\xa0\xbb\xa0\xbc\xa0\xbd\xa0\xbe\xa0\xbf\xa0\xc0\xa0\xc1\xa0\xc2\xa0\xc3\xa0\xc4\xa0\xc5\xa0\xc6\xa0\xc7\xa0\xc8", /* 7080 */ "\xa0\xc9\xa0\xca\xa0\xcb\xa0\xcc\xa0\xcd\xa0\xce\xa0\xcf\xa0\xd0\xa0\xd1\xa0\xd2\xa0\xd3\xa0\xd4\xa0\xd5\xa0\xd6\xa0\xd7\xa0\xd8\xa0\xd9\xa0\xda\xa0\xdb\xa0\xdc\xa0\xdd\xa0\xde\xa0\xdf\xa0\xe0\xa0\xe1\xa0\xe2\xa0\xe3\xa0\xe4\xa0\xe5\xa0\xe6\xa0\xe7\xa0\xe8\xa0\xe9\xa0\xea\xa0\xeb\xa0\xec\xa0\xed\xa0\xee\xa0\xef\xa0\xf0\xa0\xf1\xa0\xf2\xa0\xf3\xa0\xf4\xa0\xf5\xa0\xf6\xa0\xf7\xa0\xf8\xa0\xf9\xa0\xfa\xa0\xfb\xa0\xfc\xa0\xfd\xa0\xfe\xa0\xff\xa1\x00\xa1\x01\xa1\x02\xa1\x03\xa1\x04\xa1\x05\xa1\x06\xa1\x07\xa1\x08\xa1\x09\xa1\x0a\xa1\x0b\xa1\x0c\xa1\x0d\xa1\x0e\xa1\x0f\xa1\x10\xa1\x11\xa1\x12\xa1\x13\xa1\x14\xa1\x15\xa1\x16\xa1\x17\xa1\x18\xa1\x19\xa1\x1a\xa1\x1b\xa1\x1c\xa1\x1d\xa1\x1e\xa1\x1f\xa1\x20\xa1\x21\xa1\x22\xa1\x23\xa1\x24\xa1\x25\xa1\x26\xa1\x27\xa1\x28\xa1\x29\xa1\x2a\xa1\x2b\xa1\x2c\xa1\x2d\xa1\x2e\xa1\x2f\xa1\x30\xa1\x31\xa1\x32\xa1\x33\xa1\x34\xa1\x35\xa1\x36\xa1\x37\xa1\x38\xa1\x39\xa1\x3a\xa1\x3b\xa1\x3c\xa1\x3d\xa1\x3e\xa1\x3f\xa1\x40\xa1\x41\xa1\x42\xa1\x43\xa1\x44\xa1\x45\xa1\x46\xa1\x47\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x48\xa1\x49\xa1\x4a\xa1\x4b\xa1\x4c\xa1\x4d\xa1\x4e\xa1\x4f\xa1\x50\xa1\x51\xa1\x52\xa1\x53\xa1\x54\xa1\x55\xa1\x56\xa1\x57\xa1\x58\xa1\x59\xa1\x5a\xa1\x5b\xa1\x5c\xa1\x5d\xa1\x5e\xa1\x5f\xa1\x60\xa1\x61\xa1\x62\xa1\x63\xa1\x64\xa1\x65\xa1\x66\xa1\x67\xa1\x68\xa1\x69\xa1\x6a\xa1\x6b\xa1\x6c\xa1\x6d\xa1\x6e\xa1\x6f\xa1\x70\xa1\x71\xa1\x72\xa1\x73\xa1\x74\xa1\x75\xa1\x76\xa1\x77\xa1\x78\xa1\x79\xa1\x7a\xa1\x7b\xa1\x7c\xa1\x7d\xa1\x7e\xa1\x7f\xa1\x80\xa1\x81\xa1\x82\xa1\x83\xa1\x84\xa1\x85\xa1\x86", /* 7180 */ "\xa1\x87\xa1\x88\xa1\x89\xa1\x8a\xa1\x8b\xa1\x8c\xa1\x8d\xa1\x8e\xa1\x8f\xa1\x90\xa1\x91\xa1\x92\xa1\x93\xa1\x94\xa1\x95\xa1\x96\xa1\x97\xa1\x98\xa1\x99\xa1\x9a\xa1\x9b\xa1\x9c\xa1\x9d\xa1\x9e\xa1\x9f\xa1\xa0\xa1\xa1\xa1\xa2\xa1\xa3\xa1\xa4\xa1\xa5\xa1\xa6\xa1\xa7\xa1\xa8\xa1\xa9\xa1\xaa\xa1\xab\xa1\xac\xa1\xad\xa1\xae\xa1\xaf\xa1\xb0\xa1\xb1\xa1\xb2\xa1\xb3\xa1\xb4\xa1\xb5\xa1\xb6\xa1\xb7\xa1\xb8\xa1\xb9\xa1\xba\xa1\xbb\xa1\xbc\xa1\xbd\xa1\xbe\xa1\xbf\xa1\xc0\xa1\xc1\xa1\xc2\xa1\xc3\xa1\xc4\xa1\xc5\xa1\xc6\xa1\xc7\xa1\xc8\xa1\xc9\xa1\xca\xa1\xcb\xa1\xcc\xa1\xcd\xa1\xce\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xd2\xa1\xd3\xa1\xd4\xa1\xd5\xa1\xd6\xa1\xd7\xa1\xd8\xa1\xd9\xa1\xda\xa1\xdb\xa1\xdc\xa1\xdd\xa1\xde\xa1\xdf\xa1\xe0\xa1\xe1\xa1\xe2\xa1\xe3\xa1\xe4\xa1\xe5\xa1\xe6\xa1\xe7\xa1\xe8\xa1\xe9\xa1\xea\xa1\xeb\xa1\xec\xa1\xed\xa1\xee\xa1\xef\xa1\xf0\xa1\xf1\xa1\xf2\xa1\xf3\xa1\xf4\xa1\xf5\xa1\xf6\xa1\xf7\xa1\xf8\xa1\xf9\xa1\xfa\xa1\xfb\xa1\xfc\xa1\xfd\xa1\xfe\xa1\xff\xa2\x00\xa2\x01\xa2\x02\xa2\x03\xa2\x04\xa2\x05\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x06\xa2\x07\xa2\x08\xa2\x09\xa2\x0a\xa2\x0b\xa2\x0c\xa2\x0d\xa2\x0e\xa2\x0f\xa2\x10\xa2\x11\xa2\x12\xa2\x13\xa2\x14\xa2\x15\xa2\x16\xa2\x17\xa2\x18\xa2\x19\xa2\x1a\xa2\x1b\xa2\x1c\xa2\x1d\xa2\x1e\xa2\x1f\xa2\x20\xa2\x21\xa2\x22\xa2\x23\xa2\x24\xa2\x25\xa2\x26\xa2\x27\xa2\x28\xa2\x29\xa2\x2a\xa2\x2b\xa2\x2c\xa2\x2d\xa2\x2e\xa2\x2f\xa2\x30\xa2\x31\xa2\x32\xa2\x33\xa2\x34\xa2\x35\xa2\x36\xa2\x37\xa2\x38\xa2\x39\xa2\x3a\xa2\x3b\xa2\x3c\xa2\x3d\xa2\x3e\xa2\x3f\xa2\x40\xa2\x41\xa2\x42\xa2\x43\xa2\x44", /* 7280 */ "\xa2\x45\xa2\x46\xa2\x47\xa2\x48\xa2\x49\xa2\x4a\xa2\x4b\xa2\x4c\xa2\x4d\xa2\x4e\xa2\x4f\xa2\x50\xa2\x51\xa2\x52\xa2\x53\xa2\x54\xa2\x55\xa2\x56\xa2\x57\xa2\x58\xa2\x59\xa2\x5a\xa2\x5b\xa2\x5c\xa2\x5d\xa2\x5e\xa2\x5f\xa2\x60\xa2\x61\xa2\x62\xa2\x63\xa2\x64\xa2\x65\xa2\x66\xa2\x67\xa2\x68\xa2\x69\xa2\x6a\xa2\x6b\xa2\x6c\xa2\x6d\xa2\x6e\xa2\x6f\xa2\x70\xa2\x71\xa2\x72\xa2\x73\xa2\x74\xa2\x75\xa2\x76\xa2\x77\xa2\x78\xa2\x79\xa2\x7a\xa2\x7b\xa2\x7c\xa2\x7d\xa2\x7e\xa2\x7f\xa2\x80\xa2\x81\xa2\x82\xa2\x83\xa2\x84\xa2\x85\xa2\x86\xa2\x87\xa2\x88\xa2\x89\xa2\x8a\xa2\x8b\xa2\x8c\xa2\x8d\xa2\x8e\xa2\x8f\xa2\x90\xa2\x91\xa2\x92\xa2\x93\xa2\x94\xa2\x95\xa2\x96\xa2\x97\xa2\x98\xa2\x99\xa2\x9a\xa2\x9b\xa2\x9c\xa2\x9d\xa2\x9e\xa2\x9f\xa2\xa0\xa2\xa1\xa2\xa2\xa2\xa3\xa2\xa4\xa2\xa5\xa2\xa6\xa2\xa7\xa2\xa8\xa2\xa9\xa2\xaa\xa2\xab\xa2\xac\xa2\xad\xa2\xae\xa2\xaf\xa2\xb0\xa2\xb1\xa2\xb2\xa2\xb3\xa2\xb4\xa2\xb5\xa2\xb6\xa2\xb7\xa2\xb8\xa2\xb9\xa2\xba\xa2\xbb\xa2\xbc\xa2\xbd\xa2\xbe\xa2\xbf\xa2\xc0\xa2\xc1\xa2\xc2\xa2\xc3\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\xc4\xa2\xc5\xa2\xc6\xa2\xc7\xa2\xc8\xa2\xc9\xa2\xca\xa2\xcb\xa2\xcc\xa2\xcd\xa2\xce\xa2\xcf\xa2\xd0\xa2\xd1\xa2\xd2\xa2\xd3\xa2\xd4\xa2\xd5\xa2\xd6\xa2\xd7\xa2\xd8\xa2\xd9\xa2\xda\xa2\xdb\xa2\xdc\xa2\xdd\xa2\xde\xa2\xdf\xa2\xe0\xa2\xe1\xa2\xe2\xa2\xe3\xa2\xe4\xa2\xe5\xa2\xe6\xa2\xe7\xa2\xe8\xa2\xe9\xa2\xea\xa2\xeb\xa2\xec\xa2\xed\xa2\xee\xa2\xef\xa2\xf0\xa2\xf1\xa2\xf2\xa2\xf3\xa2\xf4\xa2\xf5\xa2\xf6\xa2\xf7\xa2\xf8\xa2\xf9\xa2\xfa\xa2\xfb\xa2\xfc\xa2\xfd\xa2\xfe\xa2\xff\xa3\x00\xa3\x01\xa3\x02", /* 7380 */ "\xa3\x03\xa3\x04\xa3\x05\xa3\x06\xa3\x07\xa3\x08\xa3\x09\xa3\x0a\xa3\x0b\xa3\x0c\xa3\x0d\xa3\x0e\xa3\x0f\xa3\x10\xa3\x11\xa3\x12\xa3\x13\xa3\x14\xa3\x15\xa3\x16\xa3\x17\xa3\x18\xa3\x19\xa3\x1a\xa3\x1b\xa3\x1c\xa3\x1d\xa3\x1e\xa3\x1f\xa3\x20\xa3\x21\xa3\x22\xa3\x23\xa3\x24\xa3\x25\xa3\x26\xa3\x27\xa3\x28\xa3\x29\xa3\x2a\xa3\x2b\xa3\x2c\xa3\x2d\xa3\x2e\xa3\x2f\xa3\x30\xa3\x31\xa3\x32\xa3\x33\xa3\x34\xa3\x35\xa3\x36\xa3\x37\xa3\x38\xa3\x39\xa3\x3a\xa3\x3b\xa3\x3c\xa3\x3d\xa3\x3e\xa3\x3f\xa3\x40\xa3\x41\xa3\x42\xa3\x43\xa3\x44\xa3\x45\xa3\x46\xa3\x47\xa3\x48\xa3\x49\xa3\x4a\xa3\x4b\xa3\x4c\xa3\x4d\xa3\x4e\xa3\x4f\xa3\x50\xa3\x51\xa3\x52\xa3\x53\xa3\x54\xa3\x55\xa3\x56\xa3\x57\xa3\x58\xa3\x59\xa3\x5a\xa3\x5b\xa3\x5c\xa3\x5d\xa3\x5e\xa3\x5f\xa3\x60\xa3\x61\xa3\x62\xa3\x63\xa3\x64\xa3\x65\xa3\x66\xa3\x67\xa3\x68\xa3\x69\xa3\x6a\xa3\x6b\xa3\x6c\xa3\x6d\xa3\x6e\xa3\x6f\xa3\x70\xa3\x71\xa3\x72\xa3\x73\xa3\x74\xa3\x75\xa3\x76\xa3\x77\xa3\x78\xa3\x79\xa3\x7a\xa3\x7b\xa3\x7c\xa3\x7d\xa3\x7e\xa3\x7f\xa3\x80\xa3\x81\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x82\xa3\x83\xa3\x84\xa3\x85\xa3\x86\xa3\x87\xa3\x88\xa3\x89\xa3\x8a\xa3\x8b\xa3\x8c\xa3\x8d\xa3\x8e\xa3\x8f\xa3\x90\xa3\x91\xa3\x92\xa3\x93\xa3\x94\xa3\x95\xa3\x96\xa3\x97\xa3\x98\xa3\x99\xa3\x9a\xa3\x9b\xa3\x9c\xa3\x9d\xa3\x9e\xa3\x9f\xa3\xa0\xa3\xa1\xa3\xa2\xa3\xa3\xa3\xa4\xa3\xa5\xa3\xa6\xa3\xa7\xa3\xa8\xa3\xa9\xa3\xaa\xa3\xab\xa3\xac\xa3\xad\xa3\xae\xa3\xaf\xa3\xb0\xa3\xb1\xa3\xb2\xa3\xb3\xa3\xb4\xa3\xb5\xa3\xb6\xa3\xb7\xa3\xb8\xa3\xb9\xa3\xba\xa3\xbb\xa3\xbc\xa3\xbd\xa3\xbe\xa3\xbf\xa3\xc0", /* 7480 */ "\xa3\xc1\xa3\xc2\xa3\xc3\xa3\xc4\xa3\xc5\xa3\xc6\xa3\xc7\xa3\xc8\xa3\xc9\xa3\xca\xa3\xcb\xa3\xcc\xa3\xcd\xa3\xce\xa3\xcf\xa3\xd0\xa3\xd1\xa3\xd2\xa3\xd3\xa3\xd4\xa3\xd5\xa3\xd6\xa3\xd7\xa3\xd8\xa3\xd9\xa3\xda\xa3\xdb\xa3\xdc\xa3\xdd\xa3\xde\xa3\xdf\xa3\xe0\xa3\xe1\xa3\xe2\xa3\xe3\xa3\xe4\xa3\xe5\xa3\xe6\xa3\xe7\xa3\xe8\xa3\xe9\xa3\xea\xa3\xeb\xa3\xec\xa3\xed\xa3\xee\xa3\xef\xa3\xf0\xa3\xf1\xa3\xf2\xa3\xf3\xa3\xf4\xa3\xf5\xa3\xf6\xa3\xf7\xa3\xf8\xa3\xf9\xa3\xfa\xa3\xfb\xa3\xfc\xa3\xfd\xa3\xfe\xa3\xff\xa4\x00\xa4\x01\xa4\x02\xa4\x03\xa4\x04\xa4\x05\xa4\x06\xa4\x07\xa4\x08\xa4\x09\xa4\x0a\xa4\x0b\xa4\x0c\xa4\x0d\xa4\x0e\xa4\x0f\xa4\x10\xa4\x11\xa4\x12\xa4\x13\xa4\x14\xa4\x15\xa4\x16\xa4\x17\xa4\x18\xa4\x19\xa4\x1a\xa4\x1b\xa4\x1c\xa4\x1d\xa4\x1e\xa4\x1f\xa4\x20\xa4\x21\xa4\x22\xa4\x23\xa4\x24\xa4\x25\xa4\x26\xa4\x27\xa4\x28\xa4\x29\xa4\x2a\xa4\x2b\xa4\x2c\xa4\x2d\xa4\x2e\xa4\x2f\xa4\x30\xa4\x31\xa4\x32\xa4\x33\xa4\x34\xa4\x35\xa4\x36\xa4\x37\xa4\x38\xa4\x39\xa4\x3a\xa4\x3b\xa4\x3c\xa4\x3d\xa4\x3e\xa4\x3f\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x40\xa4\x41\xa4\x42\xa4\x43\xa4\x44\xa4\x45\xa4\x46\xa4\x47\xa4\x48\xa4\x49\xa4\x4a\xa4\x4b\xa4\x4c\xa4\x4d\xa4\x4e\xa4\x4f\xa4\x50\xa4\x51\xa4\x52\xa4\x53\xa4\x54\xa4\x55\xa4\x56\xa4\x57\xa4\x58\xa4\x59\xa4\x5a\xa4\x5b\xa4\x5c\xa4\x5d\xa4\x5e\xa4\x5f\xa4\x60\xa4\x61\xa4\x62\xa4\x63\xa4\x64\xa4\x65\xa4\x66\xa4\x67\xa4\x68\xa4\x69\xa4\x6a\xa4\x6b\xa4\x6c\xa4\x6d\xa4\x6e\xa4\x6f\xa4\x70\xa4\x71\xa4\x72\xa4\x73\xa4\x74\xa4\x75\xa4\x76\xa4\x77\xa4\x78\xa4\x79\xa4\x7a\xa4\x7b\xa4\x7c\xa4\x7d\xa4\x7e", /* 7580 */ "\xa4\x7f\xa4\x80\xa4\x81\xa4\x82\xa4\x83\xa4\x84\xa4\x85\xa4\x86\xa4\x87\xa4\x88\xa4\x89\xa4\x8a\xa4\x8b\xa4\x8c\xa4\x8d\xa4\x8e\xa4\x8f\xa4\x90\xa4\x91\xa4\x92\xa4\x93\xa4\x94\xa4\x95\xa4\x96\xa4\x97\xa4\x98\xa4\x99\xa4\x9a\xa4\x9b\xa4\x9c\xa4\x9d\xa4\x9e\xa4\x9f\xa4\xa0\xa4\xa1\xa4\xa2\xa4\xa3\xa4\xa4\xa4\xa5\xa4\xa6\xa4\xa7\xa4\xa8\xa4\xa9\xa4\xaa\xa4\xab\xa4\xac\xa4\xad\xa4\xae\xa4\xaf\xa4\xb0\xa4\xb1\xa4\xb2\xa4\xb3\xa4\xb4\xa4\xb5\xa4\xb6\xa4\xb7\xa4\xb8\xa4\xb9\xa4\xba\xa4\xbb\xa4\xbc\xa4\xbd\xa4\xbe\xa4\xbf\xa4\xc0\xa4\xc1\xa4\xc2\xa4\xc3\xa4\xc4\xa4\xc5\xa4\xc6\xa4\xc7\xa4\xc8\xa4\xc9\xa4\xca\xa4\xcb\xa4\xcc\xa4\xcd\xa4\xce\xa4\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 7680 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* 7780 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* 7880 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* 7980 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* 7a80 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* 7b80 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* 7c80 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* 7d80 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* 7e80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* 7f80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* 8000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8080 */ NULL, /* 8100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x02\x4e\x04\x4e\x05\x4e\x06\x4e\x0f\x4e\x12\x4e\x17\x4e\x1f\x4e\x20\x4e\x21\x4e\x23\x4e\x26\x4e\x29\x4e\x2e\x4e\x2f\x4e\x31\x4e\x33\x4e\x35\x4e\x37\x4e\x3c\x4e\x40\x4e\x41\x4e\x42\x4e\x44\x4e\x46\x4e\x4a\x4e\x51\x4e\x55\x4e\x57\x4e\x5a\x4e\x5b\x4e\x62\x4e\x63\x4e\x64\x4e\x65\x4e\x67\x4e\x68\x4e\x6a\x4e\x6b\x4e\x6c\x4e\x6d\x4e\x6e\x4e\x6f\x4e\x72\x4e\x74\x4e\x75\x4e\x76\x4e\x77\x4e\x78\x4e\x79\x4e\x7a\x4e\x7b\x4e\x7c\x4e\x7d\x4e\x7f\x4e\x80\x4e\x81\x4e\x82\x4e\x83\x4e\x84\x4e\x85\x4e\x87\x4e\x8a", /* 8180 */ "\x00\x00\x4e\x90\x4e\x96\x4e\x97\x4e\x99\x4e\x9c\x4e\x9d\x4e\x9e\x4e\xa3\x4e\xaa\x4e\xaf\x4e\xb0\x4e\xb1\x4e\xb4\x4e\xb6\x4e\xb7\x4e\xb8\x4e\xb9\x4e\xbc\x4e\xbd\x4e\xbe\x4e\xc8\x4e\xcc\x4e\xcf\x4e\xd0\x4e\xd2\x4e\xda\x4e\xdb\x4e\xdc\x4e\xe0\x4e\xe2\x4e\xe6\x4e\xe7\x4e\xe9\x4e\xed\x4e\xee\x4e\xef\x4e\xf1\x4e\xf4\x4e\xf8\x4e\xf9\x4e\xfa\x4e\xfc\x4e\xfe\x4f\x00\x4f\x02\x4f\x03\x4f\x04\x4f\x05\x4f\x06\x4f\x07\x4f\x08\x4f\x0b\x4f\x0c\x4f\x12\x4f\x13\x4f\x14\x4f\x15\x4f\x16\x4f\x1c\x4f\x1d\x4f\x21\x4f\x23\x4f\x28\x4f\x29\x4f\x2c\x4f\x2d\x4f\x2e\x4f\x31\x4f\x33\x4f\x35\x4f\x37\x4f\x39\x4f\x3b\x4f\x3e\x4f\x3f\x4f\x40\x4f\x41\x4f\x42\x4f\x44\x4f\x45\x4f\x47\x4f\x48\x4f\x49\x4f\x4a\x4f\x4b\x4f\x4c\x4f\x52\x4f\x54\x4f\x56\x4f\x61\x4f\x62\x4f\x66\x4f\x68\x4f\x6a\x4f\x6b\x4f\x6d\x4f\x6e\x4f\x71\x4f\x72\x4f\x75\x4f\x77\x4f\x78\x4f\x79\x4f\x7a\x4f\x7d\x4f\x80\x4f\x81\x4f\x82\x4f\x85\x4f\x86\x4f\x87\x4f\x8a\x4f\x8c\x4f\x8e\x4f\x90\x4f\x92\x4f\x93\x4f\x95\x4f\x96\x4f\x98\x4f\x99\x4f\x9a\x4f\x9c\x4f\x9e\x4f\x9f\x00\x00\x00\x00", /* 8200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa1\x4f\xa2\x4f\xa4\x4f\xab\x4f\xad\x4f\xb0\x4f\xb1\x4f\xb2\x4f\xb3\x4f\xb4\x4f\xb6\x4f\xb7\x4f\xb8\x4f\xb9\x4f\xba\x4f\xbb\x4f\xbc\x4f\xbd\x4f\xbe\x4f\xc0\x4f\xc1\x4f\xc2\x4f\xc6\x4f\xc7\x4f\xc8\x4f\xc9\x4f\xcb\x4f\xcc\x4f\xcd\x4f\xd2\x4f\xd3\x4f\xd4\x4f\xd5\x4f\xd6\x4f\xd9\x4f\xdb\x4f\xe0\x4f\xe2\x4f\xe4\x4f\xe5\x4f\xe7\x4f\xeb\x4f\xec\x4f\xf0\x4f\xf2\x4f\xf4\x4f\xf5\x4f\xf6\x4f\xf7\x4f\xf9\x4f\xfb\x4f\xfc\x4f\xfd\x4f\xff\x50\x00\x50\x01\x50\x02\x50\x03\x50\x04\x50\x05\x50\x06\x50\x07\x50\x08", /* 8280 */ "\x00\x00\x50\x09\x50\x0a\x50\x0b\x50\x0e\x50\x10\x50\x11\x50\x13\x50\x15\x50\x16\x50\x17\x50\x1b\x50\x1d\x50\x1e\x50\x20\x50\x22\x50\x23\x50\x24\x50\x27\x50\x2b\x50\x2f\x50\x30\x50\x31\x50\x32\x50\x33\x50\x34\x50\x35\x50\x36\x50\x37\x50\x38\x50\x39\x50\x3b\x50\x3d\x50\x3f\x50\x40\x50\x41\x50\x42\x50\x44\x50\x45\x50\x46\x50\x49\x50\x4a\x50\x4b\x50\x4d\x50\x50\x50\x51\x50\x52\x50\x53\x50\x54\x50\x56\x50\x57\x50\x58\x50\x59\x50\x5b\x50\x5d\x50\x5e\x50\x5f\x50\x60\x50\x61\x50\x62\x50\x63\x50\x64\x50\x66\x50\x67\x50\x68\x50\x69\x50\x6a\x50\x6b\x50\x6d\x50\x6e\x50\x6f\x50\x70\x50\x71\x50\x72\x50\x73\x50\x74\x50\x75\x50\x78\x50\x79\x50\x7a\x50\x7c\x50\x7d\x50\x81\x50\x82\x50\x83\x50\x84\x50\x86\x50\x87\x50\x89\x50\x8a\x50\x8b\x50\x8c\x50\x8e\x50\x8f\x50\x90\x50\x91\x50\x92\x50\x93\x50\x94\x50\x95\x50\x96\x50\x97\x50\x98\x50\x99\x50\x9a\x50\x9b\x50\x9c\x50\x9d\x50\x9e\x50\x9f\x50\xa0\x50\xa1\x50\xa2\x50\xa4\x50\xa6\x50\xaa\x50\xab\x50\xad\x50\xae\x50\xaf\x50\xb0\x50\xb1\x50\xb3\x50\xb4\x50\xb5\x50\xb6\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb7\x50\xb8\x50\xb9\x50\xbc\x50\xbd\x50\xbe\x50\xbf\x50\xc0\x50\xc1\x50\xc2\x50\xc3\x50\xc4\x50\xc5\x50\xc6\x50\xc7\x50\xc8\x50\xc9\x50\xca\x50\xcb\x50\xcc\x50\xcd\x50\xce\x50\xd0\x50\xd1\x50\xd2\x50\xd3\x50\xd4\x50\xd5\x50\xd7\x50\xd8\x50\xd9\x50\xdb\x50\xdc\x50\xdd\x50\xde\x50\xdf\x50\xe0\x50\xe1\x50\xe2\x50\xe3\x50\xe4\x50\xe5\x50\xe8\x50\xe9\x50\xea\x50\xeb\x50\xef\x50\xf0\x50\xf1\x50\xf2\x50\xf4\x50\xf6\x50\xf7\x50\xf8\x50\xf9\x50\xfa\x50\xfc\x50\xfd\x50\xfe\x50\xff\x51\x00\x51\x01\x51\x02", /* 8380 */ "\x00\x00\x51\x03\x51\x04\x51\x05\x51\x08\x51\x09\x51\x0a\x51\x0c\x51\x0d\x51\x0e\x51\x0f\x51\x10\x51\x11\x51\x13\x51\x14\x51\x15\x51\x16\x51\x17\x51\x18\x51\x19\x51\x1a\x51\x1b\x51\x1c\x51\x1d\x51\x1e\x51\x1f\x51\x20\x51\x22\x51\x23\x51\x24\x51\x25\x51\x26\x51\x27\x51\x28\x51\x29\x51\x2a\x51\x2b\x51\x2c\x51\x2d\x51\x2e\x51\x2f\x51\x30\x51\x31\x51\x32\x51\x33\x51\x34\x51\x35\x51\x36\x51\x37\x51\x38\x51\x39\x51\x3a\x51\x3b\x51\x3c\x51\x3d\x51\x3e\x51\x42\x51\x47\x51\x4a\x51\x4c\x51\x4e\x51\x4f\x51\x50\x51\x52\x51\x53\x51\x57\x51\x58\x51\x59\x51\x5b\x51\x5d\x51\x5e\x51\x5f\x51\x60\x51\x61\x51\x63\x51\x64\x51\x66\x51\x67\x51\x69\x51\x6a\x51\x6f\x51\x72\x51\x7a\x51\x7e\x51\x7f\x51\x83\x51\x84\x51\x86\x51\x87\x51\x8a\x51\x8b\x51\x8e\x51\x8f\x51\x90\x51\x91\x51\x93\x51\x94\x51\x98\x51\x9a\x51\x9d\x51\x9e\x51\x9f\x51\xa1\x51\xa3\x51\xa6\x51\xa7\x51\xa8\x51\xa9\x51\xaa\x51\xad\x51\xae\x51\xb4\x51\xb8\x51\xb9\x51\xba\x51\xbe\x51\xbf\x51\xc1\x51\xc2\x51\xc3\x51\xc5\x51\xc8\x51\xca\x51\xcd\x51\xce\x51\xd0\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd2\x51\xd3\x51\xd4\x51\xd5\x51\xd6\x51\xd7\x51\xd8\x51\xd9\x51\xda\x51\xdc\x51\xde\x51\xdf\x51\xe2\x51\xe3\x51\xe5\x51\xe6\x51\xe7\x51\xe8\x51\xe9\x51\xea\x51\xec\x51\xee\x51\xf1\x51\xf2\x51\xf4\x51\xf7\x51\xfe\x52\x04\x52\x05\x52\x09\x52\x0b\x52\x0c\x52\x0f\x52\x10\x52\x13\x52\x14\x52\x15\x52\x1c\x52\x1e\x52\x1f\x52\x21\x52\x22\x52\x23\x52\x25\x52\x26\x52\x27\x52\x2a\x52\x2c\x52\x2f\x52\x31\x52\x32\x52\x34\x52\x35\x52\x3c\x52\x3e\x52\x44\x52\x45\x52\x46\x52\x47\x52\x48\x52\x49\x52\x4b\x52\x4e", /* 8480 */ "\x00\x00\x52\x4f\x52\x52\x52\x53\x52\x55\x52\x57\x52\x58\x52\x59\x52\x5a\x52\x5b\x52\x5d\x52\x5f\x52\x60\x52\x62\x52\x63\x52\x64\x52\x66\x52\x68\x52\x6b\x52\x6c\x52\x6d\x52\x6e\x52\x70\x52\x71\x52\x73\x52\x74\x52\x75\x52\x76\x52\x77\x52\x78\x52\x79\x52\x7a\x52\x7b\x52\x7c\x52\x7e\x52\x80\x52\x83\x52\x84\x52\x85\x52\x86\x52\x87\x52\x89\x52\x8a\x52\x8b\x52\x8c\x52\x8d\x52\x8e\x52\x8f\x52\x91\x52\x92\x52\x94\x52\x95\x52\x96\x52\x97\x52\x98\x52\x99\x52\x9a\x52\x9c\x52\xa4\x52\xa5\x52\xa6\x52\xa7\x52\xae\x52\xaf\x52\xb0\x52\xb4\x52\xb5\x52\xb6\x52\xb7\x52\xb8\x52\xb9\x52\xba\x52\xbb\x52\xbc\x52\xbd\x52\xc0\x52\xc1\x52\xc2\x52\xc4\x52\xc5\x52\xc6\x52\xc8\x52\xca\x52\xcc\x52\xcd\x52\xce\x52\xcf\x52\xd1\x52\xd3\x52\xd4\x52\xd5\x52\xd7\x52\xd9\x52\xda\x52\xdb\x52\xdc\x52\xdd\x52\xde\x52\xe0\x52\xe1\x52\xe2\x52\xe3\x52\xe5\x52\xe6\x52\xe7\x52\xe8\x52\xe9\x52\xea\x52\xeb\x52\xec\x52\xed\x52\xee\x52\xef\x52\xf1\x52\xf2\x52\xf3\x52\xf4\x52\xf5\x52\xf6\x52\xf7\x52\xf8\x52\xfb\x52\xfc\x52\xfd\x53\x01\x53\x02\x00\x00\x00\x00", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x03\x53\x04\x53\x07\x53\x09\x53\x0a\x53\x0b\x53\x0c\x53\x0e\x53\x11\x53\x12\x53\x13\x53\x14\x53\x18\x53\x1b\x53\x1c\x53\x1e\x53\x1f\x53\x22\x53\x24\x53\x25\x53\x27\x53\x28\x53\x29\x53\x2b\x53\x2c\x53\x2d\x53\x2f\x53\x30\x53\x31\x53\x32\x53\x33\x53\x34\x53\x35\x53\x36\x53\x37\x53\x38\x53\x3c\x53\x3d\x53\x40\x53\x42\x53\x44\x53\x46\x53\x4b\x53\x4c\x53\x4d\x53\x50\x53\x54\x53\x58\x53\x59\x53\x5b\x53\x5d\x53\x65\x53\x68\x53\x6a\x53\x6c\x53\x6d\x53\x72\x53\x76\x53\x79\x53\x7b\x53\x7c\x53\x7d\x53\x7e", /* 8580 */ "\x00\x00\x53\x80\x53\x81\x53\x83\x53\x87\x53\x88\x53\x8a\x53\x8e\x53\x8f\x53\x90\x53\x91\x53\x92\x53\x93\x53\x94\x53\x96\x53\x97\x53\x99\x53\x9b\x53\x9c\x53\x9e\x53\xa0\x53\xa1\x53\xa4\x53\xa7\x53\xaa\x53\xab\x53\xac\x53\xad\x53\xaf\x53\xb0\x53\xb1\x53\xb2\x53\xb3\x53\xb4\x53\xb5\x53\xb7\x53\xb8\x53\xb9\x53\xba\x53\xbc\x53\xbd\x53\xbe\x53\xc0\x53\xc3\x53\xc4\x53\xc5\x53\xc6\x53\xc7\x53\xce\x53\xcf\x53\xd0\x53\xd2\x53\xd3\x53\xd5\x53\xda\x53\xdc\x53\xdd\x53\xde\x53\xe1\x53\xe2\x53\xe7\x53\xf4\x53\xfa\x53\xfe\x53\xff\x54\x00\x54\x02\x54\x05\x54\x07\x54\x0b\x54\x14\x54\x18\x54\x19\x54\x1a\x54\x1c\x54\x22\x54\x24\x54\x25\x54\x2a\x54\x30\x54\x33\x54\x36\x54\x37\x54\x3a\x54\x3d\x54\x3f\x54\x41\x54\x42\x54\x44\x54\x45\x54\x47\x54\x49\x54\x4c\x54\x4d\x54\x4e\x54\x4f\x54\x51\x54\x5a\x54\x5d\x54\x5e\x54\x5f\x54\x60\x54\x61\x54\x63\x54\x65\x54\x67\x54\x69\x54\x6a\x54\x6b\x54\x6c\x54\x6d\x54\x6e\x54\x6f\x54\x70\x54\x74\x54\x79\x54\x7a\x54\x7e\x54\x7f\x54\x81\x54\x83\x54\x85\x54\x87\x54\x88\x54\x89\x54\x8a\x00\x00\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8d\x54\x91\x54\x93\x54\x97\x54\x98\x54\x9c\x54\x9e\x54\x9f\x54\xa0\x54\xa1\x54\xa2\x54\xa5\x54\xae\x54\xb0\x54\xb2\x54\xb5\x54\xb6\x54\xb7\x54\xb9\x54\xba\x54\xbc\x54\xbe\x54\xc3\x54\xc5\x54\xca\x54\xcb\x54\xd6\x54\xd8\x54\xdb\x54\xe0\x54\xe1\x54\xe2\x54\xe3\x54\xe4\x54\xeb\x54\xec\x54\xef\x54\xf0\x54\xf1\x54\xf4\x54\xf5\x54\xf6\x54\xf7\x54\xf8\x54\xf9\x54\xfb\x54\xfe\x55\x00\x55\x02\x55\x03\x55\x04\x55\x05\x55\x08\x55\x0a\x55\x0b\x55\x0c\x55\x0d\x55\x0e\x55\x12\x55\x13\x55\x15\x55\x16\x55\x17", /* 8680 */ "\x00\x00\x55\x18\x55\x19\x55\x1a\x55\x1c\x55\x1d\x55\x1e\x55\x1f\x55\x21\x55\x25\x55\x26\x55\x28\x55\x29\x55\x2b\x55\x2d\x55\x32\x55\x34\x55\x35\x55\x36\x55\x38\x55\x39\x55\x3a\x55\x3b\x55\x3d\x55\x40\x55\x42\x55\x45\x55\x47\x55\x48\x55\x4b\x55\x4c\x55\x4d\x55\x4e\x55\x4f\x55\x51\x55\x52\x55\x53\x55\x54\x55\x57\x55\x58\x55\x59\x55\x5a\x55\x5b\x55\x5d\x55\x5e\x55\x5f\x55\x60\x55\x62\x55\x63\x55\x68\x55\x69\x55\x6b\x55\x6f\x55\x70\x55\x71\x55\x72\x55\x73\x55\x74\x55\x79\x55\x7a\x55\x7d\x55\x7f\x55\x85\x55\x86\x55\x8c\x55\x8d\x55\x8e\x55\x90\x55\x92\x55\x93\x55\x95\x55\x96\x55\x97\x55\x9a\x55\x9b\x55\x9e\x55\xa0\x55\xa1\x55\xa2\x55\xa3\x55\xa4\x55\xa5\x55\xa6\x55\xa8\x55\xa9\x55\xaa\x55\xab\x55\xac\x55\xad\x55\xae\x55\xaf\x55\xb0\x55\xb2\x55\xb4\x55\xb6\x55\xb8\x55\xba\x55\xbc\x55\xbf\x55\xc0\x55\xc1\x55\xc2\x55\xc3\x55\xc6\x55\xc7\x55\xc8\x55\xca\x55\xcb\x55\xce\x55\xcf\x55\xd0\x55\xd5\x55\xd7\x55\xd8\x55\xd9\x55\xda\x55\xdb\x55\xde\x55\xe0\x55\xe2\x55\xe7\x55\xe9\x55\xed\x55\xee\x55\xf0\x55\xf1\x00\x00\x00\x00", /* 8700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf4\x55\xf6\x55\xf8\x55\xf9\x55\xfa\x55\xfb\x55\xfc\x55\xff\x56\x02\x56\x03\x56\x04\x56\x05\x56\x06\x56\x07\x56\x0a\x56\x0b\x56\x0d\x56\x10\x56\x11\x56\x12\x56\x13\x56\x14\x56\x15\x56\x16\x56\x17\x56\x19\x56\x1a\x56\x1c\x56\x1d\x56\x20\x56\x21\x56\x22\x56\x25\x56\x26\x56\x28\x56\x29\x56\x2a\x56\x2b\x56\x2e\x56\x2f\x56\x30\x56\x33\x56\x35\x56\x37\x56\x38\x56\x3a\x56\x3c\x56\x3d\x56\x3e\x56\x40\x56\x41\x56\x42\x56\x43\x56\x44\x56\x45\x56\x46\x56\x47\x56\x48\x56\x49\x56\x4a\x56\x4b\x56\x4f\x56\x50", /* 8780 */ "\x00\x00\x56\x51\x56\x52\x56\x53\x56\x55\x56\x56\x56\x5a\x56\x5b\x56\x5d\x56\x5e\x56\x5f\x56\x60\x56\x61\x56\x63\x56\x65\x56\x66\x56\x67\x56\x6d\x56\x6e\x56\x6f\x56\x70\x56\x72\x56\x73\x56\x74\x56\x75\x56\x77\x56\x78\x56\x79\x56\x7a\x56\x7d\x56\x7e\x56\x7f\x56\x80\x56\x81\x56\x82\x56\x83\x56\x84\x56\x87\x56\x88\x56\x89\x56\x8a\x56\x8b\x56\x8c\x56\x8d\x56\x90\x56\x91\x56\x92\x56\x94\x56\x95\x56\x96\x56\x97\x56\x98\x56\x99\x56\x9a\x56\x9b\x56\x9c\x56\x9d\x56\x9e\x56\x9f\x56\xa0\x56\xa1\x56\xa2\x56\xa4\x56\xa5\x56\xa6\x56\xa7\x56\xa8\x56\xa9\x56\xaa\x56\xab\x56\xac\x56\xad\x56\xae\x56\xb0\x56\xb1\x56\xb2\x56\xb3\x56\xb4\x56\xb5\x56\xb6\x56\xb8\x56\xb9\x56\xba\x56\xbb\x56\xbd\x56\xbe\x56\xbf\x56\xc0\x56\xc1\x56\xc2\x56\xc3\x56\xc4\x56\xc5\x56\xc6\x56\xc7\x56\xc8\x56\xc9\x56\xcb\x56\xcc\x56\xcd\x56\xce\x56\xcf\x56\xd0\x56\xd1\x56\xd2\x56\xd3\x56\xd5\x56\xd6\x56\xd8\x56\xd9\x56\xdc\x56\xe3\x56\xe5\x56\xe6\x56\xe7\x56\xe8\x56\xe9\x56\xea\x56\xec\x56\xee\x56\xef\x56\xf2\x56\xf3\x56\xf6\x56\xf7\x56\xf8\x00\x00\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xfb\x56\xfc\x57\x00\x57\x01\x57\x02\x57\x05\x57\x07\x57\x0b\x57\x0c\x57\x0d\x57\x0e\x57\x0f\x57\x10\x57\x11\x57\x12\x57\x13\x57\x14\x57\x15\x57\x16\x57\x17\x57\x18\x57\x19\x57\x1a\x57\x1b\x57\x1d\x57\x1e\x57\x20\x57\x21\x57\x22\x57\x24\x57\x25\x57\x26\x57\x27\x57\x2b\x57\x31\x57\x32\x57\x34\x57\x35\x57\x36\x57\x37\x57\x38\x57\x3c\x57\x3d\x57\x3f\x57\x41\x57\x43\x57\x44\x57\x45\x57\x46\x57\x48\x57\x49\x57\x4b\x57\x52\x57\x53\x57\x54\x57\x55\x57\x56\x57\x58\x57\x59\x57\x62\x57\x63\x57\x65\x57\x67", /* 8880 */ "\x00\x00\x57\x6c\x57\x6e\x57\x70\x57\x71\x57\x72\x57\x74\x57\x75\x57\x78\x57\x79\x57\x7a\x57\x7d\x57\x7e\x57\x7f\x57\x80\x57\x81\x57\x87\x57\x88\x57\x89\x57\x8a\x57\x8d\x57\x8e\x57\x8f\x57\x90\x57\x91\x57\x94\x57\x95\x57\x96\x57\x97\x57\x98\x57\x99\x57\x9a\x57\x9c\x57\x9d\x57\x9e\x57\x9f\x57\xa5\x57\xa8\x57\xaa\x57\xac\x57\xaf\x57\xb0\x57\xb1\x57\xb3\x57\xb5\x57\xb6\x57\xb7\x57\xb9\x57\xba\x57\xbb\x57\xbc\x57\xbd\x57\xbe\x57\xbf\x57\xc0\x57\xc1\x57\xc4\x57\xc5\x57\xc6\x57\xc7\x57\xc8\x57\xc9\x57\xca\x57\xcc\x57\xcd\x57\xd0\x57\xd1\x57\xd3\x57\xd6\x57\xd7\x57\xdb\x57\xdc\x57\xde\x57\xe1\x57\xe2\x57\xe3\x57\xe5\x57\xe6\x57\xe7\x57\xe8\x57\xe9\x57\xea\x57\xeb\x57\xec\x57\xee\x57\xf0\x57\xf1\x57\xf2\x57\xf3\x57\xf5\x57\xf6\x57\xf7\x57\xfb\x57\xfc\x57\xfe\x57\xff\x58\x01\x58\x03\x58\x04\x58\x05\x58\x08\x58\x09\x58\x0a\x58\x0c\x58\x0e\x58\x0f\x58\x10\x58\x12\x58\x13\x58\x14\x58\x16\x58\x17\x58\x18\x58\x1a\x58\x1b\x58\x1c\x58\x1d\x58\x1f\x58\x22\x58\x23\x58\x25\x58\x26\x58\x27\x58\x28\x58\x29\x58\x2b\x00\x00\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x2c\x58\x2d\x58\x2e\x58\x2f\x58\x31\x58\x32\x58\x33\x58\x34\x58\x36\x58\x37\x58\x38\x58\x39\x58\x3a\x58\x3b\x58\x3c\x58\x3d\x58\x3e\x58\x3f\x58\x40\x58\x41\x58\x42\x58\x43\x58\x45\x58\x46\x58\x47\x58\x48\x58\x49\x58\x4a\x58\x4b\x58\x4e\x58\x4f\x58\x50\x58\x52\x58\x53\x58\x55\x58\x56\x58\x57\x58\x59\x58\x5a\x58\x5b\x58\x5c\x58\x5d\x58\x5f\x58\x60\x58\x61\x58\x62\x58\x63\x58\x64\x58\x66\x58\x67\x58\x68\x58\x69\x58\x6a\x58\x6d\x58\x6e\x58\x6f\x58\x70\x58\x71\x58\x72\x58\x73\x58\x74\x58\x75\x58\x76", /* 8980 */ "\x00\x00\x58\x77\x58\x78\x58\x79\x58\x7a\x58\x7b\x58\x7c\x58\x7d\x58\x7f\x58\x82\x58\x84\x58\x86\x58\x87\x58\x88\x58\x8a\x58\x8b\x58\x8c\x58\x8d\x58\x8e\x58\x8f\x58\x90\x58\x91\x58\x94\x58\x95\x58\x96\x58\x97\x58\x98\x58\x9b\x58\x9c\x58\x9d\x58\xa0\x58\xa1\x58\xa2\x58\xa3\x58\xa4\x58\xa5\x58\xa6\x58\xa7\x58\xaa\x58\xab\x58\xac\x58\xad\x58\xae\x58\xaf\x58\xb0\x58\xb1\x58\xb2\x58\xb3\x58\xb4\x58\xb5\x58\xb6\x58\xb7\x58\xb8\x58\xb9\x58\xba\x58\xbb\x58\xbd\x58\xbe\x58\xbf\x58\xc0\x58\xc2\x58\xc3\x58\xc4\x58\xc6\x58\xc7\x58\xc8\x58\xc9\x58\xca\x58\xcb\x58\xcc\x58\xcd\x58\xce\x58\xcf\x58\xd0\x58\xd2\x58\xd3\x58\xd4\x58\xd6\x58\xd7\x58\xd8\x58\xd9\x58\xda\x58\xdb\x58\xdc\x58\xdd\x58\xde\x58\xdf\x58\xe0\x58\xe1\x58\xe2\x58\xe3\x58\xe5\x58\xe6\x58\xe7\x58\xe8\x58\xe9\x58\xea\x58\xed\x58\xef\x58\xf1\x58\xf2\x58\xf4\x58\xf5\x58\xf7\x58\xf8\x58\xfa\x58\xfb\x58\xfc\x58\xfd\x58\xfe\x58\xff\x59\x00\x59\x01\x59\x03\x59\x05\x59\x06\x59\x08\x59\x09\x59\x0a\x59\x0b\x59\x0c\x59\x0e\x59\x10\x59\x11\x59\x12\x59\x13\x00\x00\x00\x00", /* 8a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x17\x59\x18\x59\x1b\x59\x1d\x59\x1e\x59\x20\x59\x21\x59\x22\x59\x23\x59\x26\x59\x28\x59\x2c\x59\x30\x59\x32\x59\x33\x59\x35\x59\x36\x59\x3b\x59\x3d\x59\x3e\x59\x3f\x59\x40\x59\x43\x59\x45\x59\x46\x59\x4a\x59\x4c\x59\x4d\x59\x50\x59\x52\x59\x53\x59\x59\x59\x5b\x59\x5c\x59\x5d\x59\x5e\x59\x5f\x59\x61\x59\x63\x59\x64\x59\x66\x59\x67\x59\x68\x59\x69\x59\x6a\x59\x6b\x59\x6c\x59\x6d\x59\x6e\x59\x6f\x59\x70\x59\x71\x59\x72\x59\x75\x59\x77\x59\x7a\x59\x7b\x59\x7c\x59\x7e\x59\x7f\x59\x80\x59\x85\x59\x89", /* 8a80 */ "\x00\x00\x59\x8b\x59\x8c\x59\x8e\x59\x8f\x59\x90\x59\x91\x59\x94\x59\x95\x59\x98\x59\x9a\x59\x9b\x59\x9c\x59\x9d\x59\x9f\x59\xa0\x59\xa1\x59\xa2\x59\xa6\x59\xa7\x59\xac\x59\xad\x59\xb0\x59\xb1\x59\xb3\x59\xb4\x59\xb5\x59\xb6\x59\xb7\x59\xb8\x59\xba\x59\xbc\x59\xbd\x59\xbf\x59\xc0\x59\xc1\x59\xc2\x59\xc3\x59\xc4\x59\xc5\x59\xc7\x59\xc8\x59\xc9\x59\xcc\x59\xcd\x59\xce\x59\xcf\x59\xd5\x59\xd6\x59\xd9\x59\xdb\x59\xde\x59\xdf\x59\xe0\x59\xe1\x59\xe2\x59\xe4\x59\xe6\x59\xe7\x59\xe9\x59\xea\x59\xeb\x59\xed\x59\xee\x59\xef\x59\xf0\x59\xf1\x59\xf2\x59\xf3\x59\xf4\x59\xf5\x59\xf6\x59\xf7\x59\xf8\x59\xfa\x59\xfc\x59\xfd\x59\xfe\x5a\x00\x5a\x02\x5a\x0a\x5a\x0b\x5a\x0d\x5a\x0e\x5a\x0f\x5a\x10\x5a\x12\x5a\x14\x5a\x15\x5a\x16\x5a\x17\x5a\x19\x5a\x1a\x5a\x1b\x5a\x1d\x5a\x1e\x5a\x21\x5a\x22\x5a\x24\x5a\x26\x5a\x27\x5a\x28\x5a\x2a\x5a\x2b\x5a\x2c\x5a\x2d\x5a\x2e\x5a\x2f\x5a\x30\x5a\x33\x5a\x35\x5a\x37\x5a\x38\x5a\x39\x5a\x3a\x5a\x3b\x5a\x3d\x5a\x3e\x5a\x3f\x5a\x41\x5a\x42\x5a\x43\x5a\x44\x5a\x45\x5a\x47\x5a\x48\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4b\x5a\x4c\x5a\x4d\x5a\x4e\x5a\x4f\x5a\x50\x5a\x51\x5a\x52\x5a\x53\x5a\x54\x5a\x56\x5a\x57\x5a\x58\x5a\x59\x5a\x5b\x5a\x5c\x5a\x5d\x5a\x5e\x5a\x5f\x5a\x60\x5a\x61\x5a\x63\x5a\x64\x5a\x65\x5a\x66\x5a\x68\x5a\x69\x5a\x6b\x5a\x6c\x5a\x6d\x5a\x6e\x5a\x6f\x5a\x70\x5a\x71\x5a\x72\x5a\x73\x5a\x78\x5a\x79\x5a\x7b\x5a\x7c\x5a\x7d\x5a\x7e\x5a\x80\x5a\x81\x5a\x82\x5a\x83\x5a\x84\x5a\x85\x5a\x86\x5a\x87\x5a\x88\x5a\x89\x5a\x8a\x5a\x8b\x5a\x8c\x5a\x8d\x5a\x8e\x5a\x8f\x5a\x90\x5a\x91\x5a\x93\x5a\x94\x5a\x95", /* 8b80 */ "\x00\x00\x5a\x96\x5a\x97\x5a\x98\x5a\x99\x5a\x9c\x5a\x9d\x5a\x9e\x5a\x9f\x5a\xa0\x5a\xa1\x5a\xa2\x5a\xa3\x5a\xa4\x5a\xa5\x5a\xa6\x5a\xa7\x5a\xa8\x5a\xa9\x5a\xab\x5a\xac\x5a\xad\x5a\xae\x5a\xaf\x5a\xb0\x5a\xb1\x5a\xb4\x5a\xb6\x5a\xb7\x5a\xb9\x5a\xba\x5a\xbb\x5a\xbc\x5a\xbd\x5a\xbf\x5a\xc0\x5a\xc3\x5a\xc4\x5a\xc5\x5a\xc6\x5a\xc7\x5a\xc8\x5a\xca\x5a\xcb\x5a\xcd\x5a\xce\x5a\xcf\x5a\xd0\x5a\xd1\x5a\xd3\x5a\xd5\x5a\xd7\x5a\xd9\x5a\xda\x5a\xdb\x5a\xdd\x5a\xde\x5a\xdf\x5a\xe2\x5a\xe4\x5a\xe5\x5a\xe7\x5a\xe8\x5a\xea\x5a\xec\x5a\xed\x5a\xee\x5a\xef\x5a\xf0\x5a\xf2\x5a\xf3\x5a\xf4\x5a\xf5\x5a\xf6\x5a\xf7\x5a\xf8\x5a\xf9\x5a\xfa\x5a\xfb\x5a\xfc\x5a\xfd\x5a\xfe\x5a\xff\x5b\x00\x5b\x01\x5b\x02\x5b\x03\x5b\x04\x5b\x05\x5b\x06\x5b\x07\x5b\x08\x5b\x0a\x5b\x0b\x5b\x0c\x5b\x0d\x5b\x0e\x5b\x0f\x5b\x10\x5b\x11\x5b\x12\x5b\x13\x5b\x14\x5b\x15\x5b\x18\x5b\x19\x5b\x1a\x5b\x1b\x5b\x1c\x5b\x1d\x5b\x1e\x5b\x1f\x5b\x20\x5b\x21\x5b\x22\x5b\x23\x5b\x24\x5b\x25\x5b\x26\x5b\x27\x5b\x28\x5b\x29\x5b\x2a\x5b\x2b\x5b\x2c\x5b\x2d\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x2e\x5b\x2f\x5b\x30\x5b\x31\x5b\x33\x5b\x35\x5b\x36\x5b\x38\x5b\x39\x5b\x3a\x5b\x3b\x5b\x3c\x5b\x3d\x5b\x3e\x5b\x3f\x5b\x41\x5b\x42\x5b\x43\x5b\x44\x5b\x45\x5b\x46\x5b\x47\x5b\x48\x5b\x49\x5b\x4a\x5b\x4b\x5b\x4c\x5b\x4d\x5b\x4e\x5b\x4f\x5b\x52\x5b\x56\x5b\x5e\x5b\x60\x5b\x61\x5b\x67\x5b\x68\x5b\x6b\x5b\x6d\x5b\x6e\x5b\x6f\x5b\x72\x5b\x74\x5b\x76\x5b\x77\x5b\x78\x5b\x79\x5b\x7b\x5b\x7c\x5b\x7e\x5b\x7f\x5b\x82\x5b\x86\x5b\x8a\x5b\x8d\x5b\x8e\x5b\x90\x5b\x91\x5b\x92\x5b\x94\x5b\x96\x5b\x9f\x5b\xa7", /* 8c80 */ "\x00\x00\x5b\xa8\x5b\xa9\x5b\xac\x5b\xad\x5b\xae\x5b\xaf\x5b\xb1\x5b\xb2\x5b\xb7\x5b\xba\x5b\xbb\x5b\xbc\x5b\xc0\x5b\xc1\x5b\xc3\x5b\xc8\x5b\xc9\x5b\xca\x5b\xcb\x5b\xcd\x5b\xce\x5b\xcf\x5b\xd1\x5b\xd4\x5b\xd5\x5b\xd6\x5b\xd7\x5b\xd8\x5b\xd9\x5b\xda\x5b\xdb\x5b\xdc\x5b\xe0\x5b\xe2\x5b\xe3\x5b\xe6\x5b\xe7\x5b\xe9\x5b\xea\x5b\xeb\x5b\xec\x5b\xed\x5b\xef\x5b\xf1\x5b\xf2\x5b\xf3\x5b\xf4\x5b\xf5\x5b\xf6\x5b\xf7\x5b\xfd\x5b\xfe\x5c\x00\x5c\x02\x5c\x03\x5c\x05\x5c\x07\x5c\x08\x5c\x0b\x5c\x0c\x5c\x0d\x5c\x0e\x5c\x10\x5c\x12\x5c\x13\x5c\x17\x5c\x19\x5c\x1b\x5c\x1e\x5c\x1f\x5c\x20\x5c\x21\x5c\x23\x5c\x26\x5c\x28\x5c\x29\x5c\x2a\x5c\x2b\x5c\x2d\x5c\x2e\x5c\x2f\x5c\x30\x5c\x32\x5c\x33\x5c\x35\x5c\x36\x5c\x37\x5c\x43\x5c\x44\x5c\x46\x5c\x47\x5c\x4c\x5c\x4d\x5c\x52\x5c\x53\x5c\x54\x5c\x56\x5c\x57\x5c\x58\x5c\x5a\x5c\x5b\x5c\x5c\x5c\x5d\x5c\x5f\x5c\x62\x5c\x64\x5c\x67\x5c\x68\x5c\x69\x5c\x6a\x5c\x6b\x5c\x6c\x5c\x6d\x5c\x70\x5c\x72\x5c\x73\x5c\x74\x5c\x75\x5c\x76\x5c\x77\x5c\x78\x5c\x7b\x5c\x7c\x5c\x7d\x5c\x7e\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x80\x5c\x83\x5c\x84\x5c\x85\x5c\x86\x5c\x87\x5c\x89\x5c\x8a\x5c\x8b\x5c\x8e\x5c\x8f\x5c\x92\x5c\x93\x5c\x95\x5c\x9d\x5c\x9e\x5c\x9f\x5c\xa0\x5c\xa1\x5c\xa4\x5c\xa5\x5c\xa6\x5c\xa7\x5c\xa8\x5c\xaa\x5c\xae\x5c\xaf\x5c\xb0\x5c\xb2\x5c\xb4\x5c\xb6\x5c\xb9\x5c\xba\x5c\xbb\x5c\xbc\x5c\xbe\x5c\xc0\x5c\xc2\x5c\xc3\x5c\xc5\x5c\xc6\x5c\xc7\x5c\xc8\x5c\xc9\x5c\xca\x5c\xcc\x5c\xcd\x5c\xce\x5c\xcf\x5c\xd0\x5c\xd1\x5c\xd3\x5c\xd4\x5c\xd5\x5c\xd6\x5c\xd7\x5c\xd8\x5c\xda\x5c\xdb\x5c\xdc\x5c\xdd\x5c\xde\x5c\xdf", /* 8d80 */ "\x00\x00\x5c\xe0\x5c\xe2\x5c\xe3\x5c\xe7\x5c\xe9\x5c\xeb\x5c\xec\x5c\xee\x5c\xef\x5c\xf1\x5c\xf2\x5c\xf3\x5c\xf4\x5c\xf5\x5c\xf6\x5c\xf7\x5c\xf8\x5c\xf9\x5c\xfa\x5c\xfc\x5c\xfd\x5c\xfe\x5c\xff\x5d\x00\x5d\x01\x5d\x04\x5d\x05\x5d\x08\x5d\x09\x5d\x0a\x5d\x0b\x5d\x0c\x5d\x0d\x5d\x0f\x5d\x10\x5d\x11\x5d\x12\x5d\x13\x5d\x15\x5d\x17\x5d\x18\x5d\x19\x5d\x1a\x5d\x1c\x5d\x1d\x5d\x1f\x5d\x20\x5d\x21\x5d\x22\x5d\x23\x5d\x25\x5d\x28\x5d\x2a\x5d\x2b\x5d\x2c\x5d\x2f\x5d\x30\x5d\x31\x5d\x32\x5d\x33\x5d\x35\x5d\x36\x5d\x37\x5d\x38\x5d\x39\x5d\x3a\x5d\x3b\x5d\x3c\x5d\x3f\x5d\x40\x5d\x41\x5d\x42\x5d\x43\x5d\x44\x5d\x45\x5d\x46\x5d\x48\x5d\x49\x5d\x4d\x5d\x4e\x5d\x4f\x5d\x50\x5d\x51\x5d\x52\x5d\x53\x5d\x54\x5d\x55\x5d\x56\x5d\x57\x5d\x59\x5d\x5a\x5d\x5c\x5d\x5e\x5d\x5f\x5d\x60\x5d\x61\x5d\x62\x5d\x63\x5d\x64\x5d\x65\x5d\x66\x5d\x67\x5d\x68\x5d\x6a\x5d\x6d\x5d\x6e\x5d\x70\x5d\x71\x5d\x72\x5d\x73\x5d\x75\x5d\x76\x5d\x77\x5d\x78\x5d\x79\x5d\x7a\x5d\x7b\x5d\x7c\x5d\x7d\x5d\x7e\x5d\x7f\x5d\x80\x5d\x81\x5d\x83\x5d\x84\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x85\x5d\x86\x5d\x87\x5d\x88\x5d\x89\x5d\x8a\x5d\x8b\x5d\x8c\x5d\x8d\x5d\x8e\x5d\x8f\x5d\x90\x5d\x91\x5d\x92\x5d\x93\x5d\x94\x5d\x95\x5d\x96\x5d\x97\x5d\x98\x5d\x9a\x5d\x9b\x5d\x9c\x5d\x9e\x5d\x9f\x5d\xa0\x5d\xa1\x5d\xa2\x5d\xa3\x5d\xa4\x5d\xa5\x5d\xa6\x5d\xa7\x5d\xa8\x5d\xa9\x5d\xaa\x5d\xab\x5d\xac\x5d\xad\x5d\xae\x5d\xaf\x5d\xb0\x5d\xb1\x5d\xb2\x5d\xb3\x5d\xb4\x5d\xb5\x5d\xb6\x5d\xb8\x5d\xb9\x5d\xba\x5d\xbb\x5d\xbc\x5d\xbd\x5d\xbe\x5d\xbf\x5d\xc0\x5d\xc1\x5d\xc2\x5d\xc3\x5d\xc4\x5d\xc6\x5d\xc7", /* 8e80 */ "\x00\x00\x5d\xc8\x5d\xc9\x5d\xca\x5d\xcb\x5d\xcc\x5d\xce\x5d\xcf\x5d\xd0\x5d\xd1\x5d\xd2\x5d\xd3\x5d\xd4\x5d\xd5\x5d\xd6\x5d\xd7\x5d\xd8\x5d\xd9\x5d\xda\x5d\xdc\x5d\xdf\x5d\xe0\x5d\xe3\x5d\xe4\x5d\xea\x5d\xec\x5d\xed\x5d\xf0\x5d\xf5\x5d\xf6\x5d\xf8\x5d\xf9\x5d\xfa\x5d\xfb\x5d\xfc\x5d\xff\x5e\x00\x5e\x04\x5e\x07\x5e\x09\x5e\x0a\x5e\x0b\x5e\x0d\x5e\x0e\x5e\x12\x5e\x13\x5e\x17\x5e\x1e\x5e\x1f\x5e\x20\x5e\x21\x5e\x22\x5e\x23\x5e\x24\x5e\x25\x5e\x28\x5e\x29\x5e\x2a\x5e\x2b\x5e\x2c\x5e\x2f\x5e\x30\x5e\x32\x5e\x33\x5e\x34\x5e\x35\x5e\x36\x5e\x39\x5e\x3a\x5e\x3e\x5e\x3f\x5e\x40\x5e\x41\x5e\x43\x5e\x46\x5e\x47\x5e\x48\x5e\x49\x5e\x4a\x5e\x4b\x5e\x4d\x5e\x4e\x5e\x4f\x5e\x50\x5e\x51\x5e\x52\x5e\x53\x5e\x56\x5e\x57\x5e\x58\x5e\x59\x5e\x5a\x5e\x5c\x5e\x5d\x5e\x5f\x5e\x60\x5e\x63\x5e\x64\x5e\x65\x5e\x66\x5e\x67\x5e\x68\x5e\x69\x5e\x6a\x5e\x6b\x5e\x6c\x5e\x6d\x5e\x6e\x5e\x6f\x5e\x70\x5e\x71\x5e\x75\x5e\x77\x5e\x79\x5e\x7e\x5e\x81\x5e\x82\x5e\x83\x5e\x85\x5e\x88\x5e\x89\x5e\x8c\x5e\x8d\x5e\x8e\x5e\x92\x5e\x98\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9b\x5e\x9d\x5e\xa1\x5e\xa2\x5e\xa3\x5e\xa4\x5e\xa8\x5e\xa9\x5e\xaa\x5e\xab\x5e\xac\x5e\xae\x5e\xaf\x5e\xb0\x5e\xb1\x5e\xb2\x5e\xb4\x5e\xba\x5e\xbb\x5e\xbc\x5e\xbd\x5e\xbf\x5e\xc0\x5e\xc1\x5e\xc2\x5e\xc3\x5e\xc4\x5e\xc5\x5e\xc6\x5e\xc7\x5e\xc8\x5e\xcb\x5e\xcc\x5e\xcd\x5e\xce\x5e\xcf\x5e\xd0\x5e\xd4\x5e\xd5\x5e\xd7\x5e\xd8\x5e\xd9\x5e\xda\x5e\xdc\x5e\xdd\x5e\xde\x5e\xdf\x5e\xe0\x5e\xe1\x5e\xe2\x5e\xe3\x5e\xe4\x5e\xe5\x5e\xe6\x5e\xe7\x5e\xe9\x5e\xeb\x5e\xec\x5e\xed\x5e\xee\x5e\xef\x5e\xf0\x5e\xf1", /* 8f80 */ "\x00\x00\x5e\xf2\x5e\xf3\x5e\xf5\x5e\xf8\x5e\xf9\x5e\xfb\x5e\xfc\x5e\xfd\x5f\x05\x5f\x06\x5f\x07\x5f\x09\x5f\x0c\x5f\x0d\x5f\x0e\x5f\x10\x5f\x12\x5f\x14\x5f\x16\x5f\x19\x5f\x1a\x5f\x1c\x5f\x1d\x5f\x1e\x5f\x21\x5f\x22\x5f\x23\x5f\x24\x5f\x28\x5f\x2b\x5f\x2c\x5f\x2e\x5f\x30\x5f\x32\x5f\x33\x5f\x34\x5f\x35\x5f\x36\x5f\x37\x5f\x38\x5f\x3b\x5f\x3d\x5f\x3e\x5f\x3f\x5f\x41\x5f\x42\x5f\x43\x5f\x44\x5f\x45\x5f\x46\x5f\x47\x5f\x48\x5f\x49\x5f\x4a\x5f\x4b\x5f\x4c\x5f\x4d\x5f\x4e\x5f\x4f\x5f\x51\x5f\x54\x5f\x59\x5f\x5a\x5f\x5b\x5f\x5c\x5f\x5e\x5f\x5f\x5f\x60\x5f\x63\x5f\x65\x5f\x67\x5f\x68\x5f\x6b\x5f\x6e\x5f\x6f\x5f\x72\x5f\x74\x5f\x75\x5f\x76\x5f\x78\x5f\x7a\x5f\x7d\x5f\x7e\x5f\x7f\x5f\x83\x5f\x86\x5f\x8d\x5f\x8e\x5f\x8f\x5f\x91\x5f\x93\x5f\x94\x5f\x96\x5f\x9a\x5f\x9b\x5f\x9d\x5f\x9e\x5f\x9f\x5f\xa0\x5f\xa2\x5f\xa3\x5f\xa4\x5f\xa5\x5f\xa6\x5f\xa7\x5f\xa9\x5f\xab\x5f\xac\x5f\xaf\x5f\xb0\x5f\xb1\x5f\xb2\x5f\xb3\x5f\xb4\x5f\xb6\x5f\xb8\x5f\xb9\x5f\xba\x5f\xbb\x5f\xbe\x5f\xbf\x5f\xc0\x5f\xc1\x5f\xc2\x5f\xc7\x00\x00\x00\x00", /* 9000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc8\x5f\xca\x5f\xcb\x5f\xce\x5f\xd3\x5f\xd4\x5f\xd5\x5f\xda\x5f\xdb\x5f\xdc\x5f\xde\x5f\xdf\x5f\xe2\x5f\xe3\x5f\xe5\x5f\xe6\x5f\xe8\x5f\xe9\x5f\xec\x5f\xef\x5f\xf0\x5f\xf2\x5f\xf3\x5f\xf4\x5f\xf6\x5f\xf7\x5f\xf9\x5f\xfa\x5f\xfc\x60\x07\x60\x08\x60\x09\x60\x0b\x60\x0c\x60\x10\x60\x11\x60\x13\x60\x17\x60\x18\x60\x1a\x60\x1e\x60\x1f\x60\x22\x60\x23\x60\x24\x60\x2c\x60\x2d\x60\x2e\x60\x30\x60\x31\x60\x32\x60\x33\x60\x34\x60\x36\x60\x37\x60\x38\x60\x39\x60\x3a\x60\x3d\x60\x3e\x60\x40\x60\x44\x60\x45", /* 9080 */ "\x00\x00\x60\x46\x60\x47\x60\x48\x60\x49\x60\x4a\x60\x4c\x60\x4e\x60\x4f\x60\x51\x60\x53\x60\x54\x60\x56\x60\x57\x60\x58\x60\x5b\x60\x5c\x60\x5e\x60\x5f\x60\x60\x60\x61\x60\x65\x60\x66\x60\x6e\x60\x71\x60\x72\x60\x74\x60\x75\x60\x77\x60\x7e\x60\x80\x60\x81\x60\x82\x60\x85\x60\x86\x60\x87\x60\x88\x60\x8a\x60\x8b\x60\x8e\x60\x8f\x60\x90\x60\x91\x60\x93\x60\x95\x60\x97\x60\x98\x60\x99\x60\x9c\x60\x9e\x60\xa1\x60\xa2\x60\xa4\x60\xa5\x60\xa7\x60\xa9\x60\xaa\x60\xae\x60\xb0\x60\xb3\x60\xb5\x60\xb6\x60\xb7\x60\xb9\x60\xba\x60\xbd\x60\xbe\x60\xbf\x60\xc0\x60\xc1\x60\xc2\x60\xc3\x60\xc4\x60\xc7\x60\xc8\x60\xc9\x60\xcc\x60\xcd\x60\xce\x60\xcf\x60\xd0\x60\xd2\x60\xd3\x60\xd4\x60\xd6\x60\xd7\x60\xd9\x60\xdb\x60\xde\x60\xe1\x60\xe2\x60\xe3\x60\xe4\x60\xe5\x60\xea\x60\xf1\x60\xf2\x60\xf5\x60\xf7\x60\xf8\x60\xfb\x60\xfc\x60\xfd\x60\xfe\x60\xff\x61\x02\x61\x03\x61\x04\x61\x05\x61\x07\x61\x0a\x61\x0b\x61\x0c\x61\x10\x61\x11\x61\x12\x61\x13\x61\x14\x61\x16\x61\x17\x61\x18\x61\x19\x61\x1b\x61\x1c\x61\x1d\x61\x1e\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x21\x61\x22\x61\x25\x61\x28\x61\x29\x61\x2a\x61\x2c\x61\x2d\x61\x2e\x61\x2f\x61\x30\x61\x31\x61\x32\x61\x33\x61\x34\x61\x35\x61\x36\x61\x37\x61\x38\x61\x39\x61\x3a\x61\x3b\x61\x3c\x61\x3d\x61\x3e\x61\x40\x61\x41\x61\x42\x61\x43\x61\x44\x61\x45\x61\x46\x61\x47\x61\x49\x61\x4b\x61\x4d\x61\x4f\x61\x50\x61\x52\x61\x53\x61\x54\x61\x56\x61\x57\x61\x58\x61\x59\x61\x5a\x61\x5b\x61\x5c\x61\x5e\x61\x5f\x61\x60\x61\x61\x61\x63\x61\x64\x61\x65\x61\x66\x61\x69\x61\x6a\x61\x6b\x61\x6c\x61\x6d\x61\x6e\x61\x6f", /* 9180 */ "\x00\x00\x61\x71\x61\x72\x61\x73\x61\x74\x61\x76\x61\x78\x61\x79\x61\x7a\x61\x7b\x61\x7c\x61\x7d\x61\x7e\x61\x7f\x61\x80\x61\x81\x61\x82\x61\x83\x61\x84\x61\x85\x61\x86\x61\x87\x61\x88\x61\x89\x61\x8a\x61\x8c\x61\x8d\x61\x8f\x61\x90\x61\x91\x61\x92\x61\x93\x61\x95\x61\x96\x61\x97\x61\x98\x61\x99\x61\x9a\x61\x9b\x61\x9c\x61\x9e\x61\x9f\x61\xa0\x61\xa1\x61\xa2\x61\xa3\x61\xa4\x61\xa5\x61\xa6\x61\xaa\x61\xab\x61\xad\x61\xae\x61\xaf\x61\xb0\x61\xb1\x61\xb2\x61\xb3\x61\xb4\x61\xb5\x61\xb6\x61\xb8\x61\xb9\x61\xba\x61\xbb\x61\xbc\x61\xbd\x61\xbf\x61\xc0\x61\xc1\x61\xc3\x61\xc4\x61\xc5\x61\xc6\x61\xc7\x61\xc9\x61\xcc\x61\xcd\x61\xce\x61\xcf\x61\xd0\x61\xd3\x61\xd5\x61\xd6\x61\xd7\x61\xd8\x61\xd9\x61\xda\x61\xdb\x61\xdc\x61\xdd\x61\xde\x61\xdf\x61\xe0\x61\xe1\x61\xe2\x61\xe3\x61\xe4\x61\xe5\x61\xe7\x61\xe8\x61\xe9\x61\xea\x61\xeb\x61\xec\x61\xed\x61\xee\x61\xef\x61\xf0\x61\xf1\x61\xf2\x61\xf3\x61\xf4\x61\xf6\x61\xf7\x61\xf8\x61\xf9\x61\xfa\x61\xfb\x61\xfc\x61\xfd\x61\xfe\x62\x00\x62\x01\x62\x02\x62\x03\x00\x00\x00\x00", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x04\x62\x05\x62\x07\x62\x09\x62\x13\x62\x14\x62\x19\x62\x1c\x62\x1d\x62\x1e\x62\x20\x62\x23\x62\x26\x62\x27\x62\x28\x62\x29\x62\x2b\x62\x2d\x62\x2f\x62\x30\x62\x31\x62\x32\x62\x35\x62\x36\x62\x38\x62\x39\x62\x3a\x62\x3b\x62\x3c\x62\x42\x62\x44\x62\x45\x62\x46\x62\x4a\x62\x4f\x62\x50\x62\x55\x62\x56\x62\x57\x62\x59\x62\x5a\x62\x5c\x62\x5d\x62\x5e\x62\x5f\x62\x60\x62\x61\x62\x62\x62\x64\x62\x65\x62\x68\x62\x71\x62\x72\x62\x74\x62\x75\x62\x77\x62\x78\x62\x7a\x62\x7b\x62\x7d\x62\x81\x62\x82\x62\x83", /* 9280 */ "\x00\x00\x62\x85\x62\x86\x62\x87\x62\x88\x62\x8b\x62\x8c\x62\x8d\x62\x8e\x62\x8f\x62\x90\x62\x94\x62\x99\x62\x9c\x62\x9d\x62\x9e\x62\xa3\x62\xa6\x62\xa7\x62\xa9\x62\xaa\x62\xad\x62\xae\x62\xaf\x62\xb0\x62\xb2\x62\xb3\x62\xb4\x62\xb6\x62\xb7\x62\xb8\x62\xba\x62\xbe\x62\xc0\x62\xc1\x62\xc3\x62\xcb\x62\xcf\x62\xd1\x62\xd5\x62\xdd\x62\xde\x62\xe0\x62\xe1\x62\xe4\x62\xea\x62\xeb\x62\xf0\x62\xf2\x62\xf5\x62\xf8\x62\xf9\x62\xfa\x62\xfb\x63\x00\x63\x03\x63\x04\x63\x05\x63\x06\x63\x0a\x63\x0b\x63\x0c\x63\x0d\x63\x0f\x63\x10\x63\x12\x63\x13\x63\x14\x63\x15\x63\x17\x63\x18\x63\x19\x63\x1c\x63\x26\x63\x27\x63\x29\x63\x2c\x63\x2d\x63\x2e\x63\x30\x63\x31\x63\x33\x63\x34\x63\x35\x63\x36\x63\x37\x63\x38\x63\x3b\x63\x3c\x63\x3e\x63\x3f\x63\x40\x63\x41\x63\x44\x63\x47\x63\x48\x63\x4a\x63\x51\x63\x52\x63\x53\x63\x54\x63\x56\x63\x57\x63\x58\x63\x59\x63\x5a\x63\x5b\x63\x5c\x63\x5d\x63\x60\x63\x64\x63\x65\x63\x66\x63\x68\x63\x6a\x63\x6b\x63\x6c\x63\x6f\x63\x70\x63\x72\x63\x73\x63\x74\x63\x75\x63\x78\x63\x79\x63\x7c\x00\x00\x00\x00", /* 9300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7d\x63\x7e\x63\x7f\x63\x81\x63\x83\x63\x84\x63\x85\x63\x86\x63\x8b\x63\x8d\x63\x91\x63\x93\x63\x94\x63\x95\x63\x97\x63\x99\x63\x9a\x63\x9b\x63\x9c\x63\x9d\x63\x9e\x63\x9f\x63\xa1\x63\xa4\x63\xa6\x63\xab\x63\xaf\x63\xb1\x63\xb2\x63\xb5\x63\xb6\x63\xb9\x63\xbb\x63\xbd\x63\xbf\x63\xc0\x63\xc1\x63\xc2\x63\xc3\x63\xc5\x63\xc7\x63\xc8\x63\xca\x63\xcb\x63\xcc\x63\xd1\x63\xd3\x63\xd4\x63\xd5\x63\xd7\x63\xd8\x63\xd9\x63\xda\x63\xdb\x63\xdc\x63\xdd\x63\xdf\x63\xe2\x63\xe4\x63\xe5\x63\xe6\x63\xe7\x63\xe8", /* 9380 */ "\x00\x00\x63\xeb\x63\xec\x63\xee\x63\xef\x63\xf0\x63\xf1\x63\xf3\x63\xf5\x63\xf7\x63\xf9\x63\xfa\x63\xfb\x63\xfc\x63\xfe\x64\x03\x64\x04\x64\x06\x64\x07\x64\x08\x64\x09\x64\x0a\x64\x0d\x64\x0e\x64\x11\x64\x12\x64\x15\x64\x16\x64\x17\x64\x18\x64\x19\x64\x1a\x64\x1d\x64\x1f\x64\x22\x64\x23\x64\x24\x64\x25\x64\x27\x64\x28\x64\x29\x64\x2b\x64\x2e\x64\x2f\x64\x30\x64\x31\x64\x32\x64\x33\x64\x35\x64\x36\x64\x37\x64\x38\x64\x39\x64\x3b\x64\x3c\x64\x3e\x64\x40\x64\x42\x64\x43\x64\x49\x64\x4b\x64\x4c\x64\x4d\x64\x4e\x64\x4f\x64\x50\x64\x51\x64\x53\x64\x55\x64\x56\x64\x57\x64\x59\x64\x5a\x64\x5b\x64\x5c\x64\x5d\x64\x5f\x64\x60\x64\x61\x64\x62\x64\x63\x64\x64\x64\x65\x64\x66\x64\x68\x64\x6a\x64\x6b\x64\x6c\x64\x6e\x64\x6f\x64\x70\x64\x71\x64\x72\x64\x73\x64\x74\x64\x75\x64\x76\x64\x77\x64\x7b\x64\x7c\x64\x7d\x64\x7e\x64\x7f\x64\x80\x64\x81\x64\x83\x64\x86\x64\x88\x64\x89\x64\x8a\x64\x8b\x64\x8c\x64\x8d\x64\x8e\x64\x8f\x64\x90\x64\x93\x64\x94\x64\x97\x64\x98\x64\x9a\x64\x9b\x64\x9c\x64\x9d\x64\x9f\x64\xa0\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa2\x64\xa3\x64\xa5\x64\xa6\x64\xa7\x64\xa8\x64\xaa\x64\xab\x64\xaf\x64\xb1\x64\xb2\x64\xb3\x64\xb4\x64\xb6\x64\xb9\x64\xbb\x64\xbd\x64\xbe\x64\xbf\x64\xc1\x64\xc3\x64\xc4\x64\xc6\x64\xc7\x64\xc8\x64\xc9\x64\xca\x64\xcb\x64\xcc\x64\xcf\x64\xd1\x64\xd3\x64\xd4\x64\xd5\x64\xd6\x64\xd9\x64\xda\x64\xdb\x64\xdc\x64\xdd\x64\xdf\x64\xe0\x64\xe1\x64\xe3\x64\xe5\x64\xe7\x64\xe8\x64\xe9\x64\xea\x64\xeb\x64\xec\x64\xed\x64\xee\x64\xef\x64\xf0\x64\xf1\x64\xf2\x64\xf3\x64\xf4\x64\xf5\x64\xf6\x64\xf7", /* 9480 */ "\x00\x00\x64\xf8\x64\xf9\x64\xfa\x64\xfb\x64\xfc\x64\xfd\x64\xfe\x64\xff\x65\x01\x65\x02\x65\x03\x65\x04\x65\x05\x65\x06\x65\x07\x65\x08\x65\x0a\x65\x0b\x65\x0c\x65\x0d\x65\x0e\x65\x0f\x65\x10\x65\x11\x65\x13\x65\x14\x65\x15\x65\x16\x65\x17\x65\x19\x65\x1a\x65\x1b\x65\x1c\x65\x1d\x65\x1e\x65\x1f\x65\x20\x65\x21\x65\x22\x65\x23\x65\x24\x65\x26\x65\x27\x65\x28\x65\x29\x65\x2a\x65\x2c\x65\x2d\x65\x30\x65\x31\x65\x32\x65\x33\x65\x37\x65\x3a\x65\x3c\x65\x3d\x65\x40\x65\x41\x65\x42\x65\x43\x65\x44\x65\x46\x65\x47\x65\x4a\x65\x4b\x65\x4d\x65\x4e\x65\x50\x65\x52\x65\x53\x65\x54\x65\x57\x65\x58\x65\x5a\x65\x5c\x65\x5f\x65\x60\x65\x61\x65\x64\x65\x65\x65\x67\x65\x68\x65\x69\x65\x6a\x65\x6d\x65\x6e\x65\x6f\x65\x71\x65\x73\x65\x75\x65\x76\x65\x78\x65\x79\x65\x7a\x65\x7b\x65\x7c\x65\x7d\x65\x7e\x65\x7f\x65\x80\x65\x81\x65\x82\x65\x83\x65\x84\x65\x85\x65\x86\x65\x88\x65\x89\x65\x8a\x65\x8d\x65\x8e\x65\x8f\x65\x92\x65\x94\x65\x95\x65\x96\x65\x98\x65\x9a\x65\x9d\x65\x9e\x65\xa0\x65\xa2\x65\xa3\x65\xa6\x65\xa8\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xaa\x65\xac\x65\xae\x65\xb1\x65\xb2\x65\xb3\x65\xb4\x65\xb5\x65\xb6\x65\xb7\x65\xb8\x65\xba\x65\xbb\x65\xbe\x65\xbf\x65\xc0\x65\xc2\x65\xc7\x65\xc8\x65\xc9\x65\xca\x65\xcd\x65\xd0\x65\xd1\x65\xd3\x65\xd4\x65\xd5\x65\xd8\x65\xd9\x65\xda\x65\xdb\x65\xdc\x65\xdd\x65\xde\x65\xdf\x65\xe1\x65\xe3\x65\xe4\x65\xea\x65\xeb\x65\xf2\x65\xf3\x65\xf4\x65\xf5\x65\xf8\x65\xf9\x65\xfb\x65\xfc\x65\xfd\x65\xfe\x65\xff\x66\x01\x66\x04\x66\x05\x66\x07\x66\x08\x66\x09\x66\x0b\x66\x0d\x66\x10\x66\x11\x66\x12\x66\x16", /* 9580 */ "\x00\x00\x66\x17\x66\x18\x66\x1a\x66\x1b\x66\x1c\x66\x1e\x66\x21\x66\x22\x66\x23\x66\x24\x66\x26\x66\x29\x66\x2a\x66\x2b\x66\x2c\x66\x2e\x66\x30\x66\x32\x66\x33\x66\x37\x66\x38\x66\x39\x66\x3a\x66\x3b\x66\x3d\x66\x3f\x66\x40\x66\x42\x66\x44\x66\x45\x66\x46\x66\x47\x66\x48\x66\x49\x66\x4a\x66\x4d\x66\x4e\x66\x50\x66\x51\x66\x58\x66\x59\x66\x5b\x66\x5c\x66\x5d\x66\x5e\x66\x60\x66\x62\x66\x63\x66\x65\x66\x67\x66\x69\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x71\x66\x72\x66\x73\x66\x75\x66\x78\x66\x79\x66\x7b\x66\x7c\x66\x7d\x66\x7f\x66\x80\x66\x81\x66\x83\x66\x85\x66\x86\x66\x88\x66\x89\x66\x8a\x66\x8b\x66\x8d\x66\x8e\x66\x8f\x66\x90\x66\x92\x66\x93\x66\x94\x66\x95\x66\x98\x66\x99\x66\x9a\x66\x9b\x66\x9c\x66\x9e\x66\x9f\x66\xa0\x66\xa1\x66\xa2\x66\xa3\x66\xa4\x66\xa5\x66\xa6\x66\xa9\x66\xaa\x66\xab\x66\xac\x66\xad\x66\xaf\x66\xb0\x66\xb1\x66\xb2\x66\xb3\x66\xb5\x66\xb6\x66\xb7\x66\xb8\x66\xba\x66\xbb\x66\xbc\x66\xbd\x66\xbf\x66\xc0\x66\xc1\x66\xc2\x66\xc3\x66\xc4\x66\xc5\x66\xc6\x66\xc7\x66\xc8\x66\xc9\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xca\x66\xcb\x66\xcc\x66\xcd\x66\xce\x66\xcf\x66\xd0\x66\xd1\x66\xd2\x66\xd3\x66\xd4\x66\xd5\x66\xd6\x66\xd7\x66\xd8\x66\xda\x66\xde\x66\xdf\x66\xe0\x66\xe1\x66\xe2\x66\xe3\x66\xe4\x66\xe5\x66\xe7\x66\xe8\x66\xea\x66\xeb\x66\xec\x66\xed\x66\xee\x66\xef\x66\xf1\x66\xf5\x66\xf6\x66\xf8\x66\xfa\x66\xfb\x66\xfd\x67\x01\x67\x02\x67\x03\x67\x04\x67\x05\x67\x06\x67\x07\x67\x0c\x67\x0e\x67\x0f\x67\x11\x67\x12\x67\x13\x67\x16\x67\x18\x67\x19\x67\x1a\x67\x1c\x67\x1e\x67\x20\x67\x21\x67\x22\x67\x23\x67\x24", /* 9680 */ "\x00\x00\x67\x25\x67\x27\x67\x29\x67\x2e\x67\x30\x67\x32\x67\x33\x67\x36\x67\x37\x67\x38\x67\x39\x67\x3b\x67\x3c\x67\x3e\x67\x3f\x67\x41\x67\x44\x67\x45\x67\x47\x67\x4a\x67\x4b\x67\x4d\x67\x52\x67\x54\x67\x55\x67\x57\x67\x58\x67\x59\x67\x5a\x67\x5b\x67\x5d\x67\x62\x67\x63\x67\x64\x67\x66\x67\x67\x67\x6b\x67\x6c\x67\x6e\x67\x71\x67\x74\x67\x76\x67\x78\x67\x79\x67\x7a\x67\x7b\x67\x7d\x67\x80\x67\x82\x67\x83\x67\x85\x67\x86\x67\x88\x67\x8a\x67\x8c\x67\x8d\x67\x8e\x67\x8f\x67\x91\x67\x92\x67\x93\x67\x94\x67\x96\x67\x99\x67\x9b\x67\x9f\x67\xa0\x67\xa1\x67\xa4\x67\xa6\x67\xa9\x67\xac\x67\xae\x67\xb1\x67\xb2\x67\xb4\x67\xb9\x67\xba\x67\xbb\x67\xbc\x67\xbd\x67\xbe\x67\xbf\x67\xc0\x67\xc2\x67\xc5\x67\xc6\x67\xc7\x67\xc8\x67\xc9\x67\xca\x67\xcb\x67\xcc\x67\xcd\x67\xce\x67\xd5\x67\xd6\x67\xd7\x67\xdb\x67\xdf\x67\xe1\x67\xe3\x67\xe4\x67\xe6\x67\xe7\x67\xe8\x67\xea\x67\xeb\x67\xed\x67\xee\x67\xf2\x67\xf5\x67\xf6\x67\xf7\x67\xf8\x67\xf9\x67\xfa\x67\xfb\x67\xfc\x67\xfe\x68\x01\x68\x02\x68\x03\x68\x04\x68\x06\x00\x00\x00\x00", /* 9700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x0d\x68\x10\x68\x12\x68\x14\x68\x15\x68\x18\x68\x19\x68\x1a\x68\x1b\x68\x1c\x68\x1e\x68\x1f\x68\x20\x68\x22\x68\x23\x68\x24\x68\x25\x68\x26\x68\x27\x68\x28\x68\x2b\x68\x2c\x68\x2d\x68\x2e\x68\x2f\x68\x30\x68\x31\x68\x34\x68\x35\x68\x36\x68\x3a\x68\x3b\x68\x3f\x68\x47\x68\x4b\x68\x4d\x68\x4f\x68\x52\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x68\x5b\x68\x5c\x68\x5d\x68\x5e\x68\x5f\x68\x6a\x68\x6c\x68\x6d\x68\x6e\x68\x6f\x68\x70\x68\x71\x68\x72\x68\x73\x68\x75\x68\x78\x68\x79\x68\x7a\x68\x7b\x68\x7c", /* 9780 */ "\x00\x00\x68\x7d\x68\x7e\x68\x7f\x68\x80\x68\x82\x68\x84\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x68\x8e\x68\x90\x68\x91\x68\x92\x68\x94\x68\x95\x68\x96\x68\x98\x68\x99\x68\x9a\x68\x9b\x68\x9c\x68\x9d\x68\x9e\x68\x9f\x68\xa0\x68\xa1\x68\xa3\x68\xa4\x68\xa5\x68\xa9\x68\xaa\x68\xab\x68\xac\x68\xae\x68\xb1\x68\xb2\x68\xb4\x68\xb6\x68\xb7\x68\xb8\x68\xb9\x68\xba\x68\xbb\x68\xbc\x68\xbd\x68\xbe\x68\xbf\x68\xc1\x68\xc3\x68\xc4\x68\xc5\x68\xc6\x68\xc7\x68\xc8\x68\xca\x68\xcc\x68\xce\x68\xcf\x68\xd0\x68\xd1\x68\xd3\x68\xd4\x68\xd6\x68\xd7\x68\xd9\x68\xdb\x68\xdc\x68\xdd\x68\xde\x68\xdf\x68\xe1\x68\xe2\x68\xe4\x68\xe5\x68\xe6\x68\xe7\x68\xe8\x68\xe9\x68\xea\x68\xeb\x68\xec\x68\xed\x68\xef\x68\xf2\x68\xf3\x68\xf4\x68\xf6\x68\xf7\x68\xf8\x68\xfb\x68\xfd\x68\xfe\x68\xff\x69\x00\x69\x02\x69\x03\x69\x04\x69\x06\x69\x07\x69\x08\x69\x09\x69\x0a\x69\x0c\x69\x0f\x69\x11\x69\x13\x69\x14\x69\x15\x69\x16\x69\x17\x69\x18\x69\x19\x69\x1a\x69\x1b\x69\x1c\x69\x1d\x69\x1e\x69\x21\x69\x22\x69\x23\x69\x25\x00\x00\x00\x00", /* 9800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x26\x69\x27\x69\x28\x69\x29\x69\x2a\x69\x2b\x69\x2c\x69\x2e\x69\x2f\x69\x31\x69\x32\x69\x33\x69\x35\x69\x36\x69\x37\x69\x38\x69\x3a\x69\x3b\x69\x3c\x69\x3e\x69\x40\x69\x41\x69\x43\x69\x44\x69\x45\x69\x46\x69\x47\x69\x48\x69\x49\x69\x4a\x69\x4b\x69\x4c\x69\x4d\x69\x4e\x69\x4f\x69\x50\x69\x51\x69\x52\x69\x53\x69\x55\x69\x56\x69\x58\x69\x59\x69\x5b\x69\x5c\x69\x5f\x69\x61\x69\x62\x69\x64\x69\x65\x69\x67\x69\x68\x69\x69\x69\x6a\x69\x6c\x69\x6d\x69\x6f\x69\x70\x69\x72\x69\x73\x69\x74\x69\x75\x69\x76", /* 9880 */ "\x00\x00\x69\x7a\x69\x7b\x69\x7d\x69\x7e\x69\x7f\x69\x81\x69\x83\x69\x85\x69\x8a\x69\x8b\x69\x8c\x69\x8e\x69\x8f\x69\x90\x69\x91\x69\x92\x69\x93\x69\x96\x69\x97\x69\x99\x69\x9a\x69\x9d\x69\x9e\x69\x9f\x69\xa0\x69\xa1\x69\xa2\x69\xa3\x69\xa4\x69\xa5\x69\xa6\x69\xa9\x69\xaa\x69\xac\x69\xae\x69\xaf\x69\xb0\x69\xb2\x69\xb3\x69\xb5\x69\xb6\x69\xb8\x69\xb9\x69\xba\x69\xbc\x69\xbd\x69\xbe\x69\xbf\x69\xc0\x69\xc2\x69\xc3\x69\xc4\x69\xc5\x69\xc6\x69\xc7\x69\xc8\x69\xc9\x69\xcb\x69\xcd\x69\xcf\x69\xd1\x69\xd2\x69\xd3\x69\xd5\x69\xd6\x69\xd7\x69\xd8\x69\xd9\x69\xda\x69\xdc\x69\xdd\x69\xde\x69\xe1\x69\xe2\x69\xe3\x69\xe4\x69\xe5\x69\xe6\x69\xe7\x69\xe8\x69\xe9\x69\xea\x69\xeb\x69\xec\x69\xee\x69\xef\x69\xf0\x69\xf1\x69\xf3\x69\xf4\x69\xf5\x69\xf6\x69\xf7\x69\xf8\x69\xf9\x69\xfa\x69\xfb\x69\xfc\x69\xfe\x6a\x00\x6a\x01\x6a\x02\x6a\x03\x6a\x04\x6a\x05\x6a\x06\x6a\x07\x6a\x08\x6a\x09\x6a\x0b\x6a\x0c\x6a\x0d\x6a\x0e\x6a\x0f\x6a\x10\x6a\x11\x6a\x12\x6a\x13\x6a\x14\x6a\x15\x6a\x16\x6a\x19\x6a\x1a\x6a\x1b\x6a\x1c\x00\x00\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1d\x6a\x1e\x6a\x20\x6a\x22\x6a\x23\x6a\x24\x6a\x25\x6a\x26\x6a\x27\x6a\x29\x6a\x2b\x6a\x2c\x6a\x2d\x6a\x2e\x6a\x30\x6a\x32\x6a\x33\x6a\x34\x6a\x36\x6a\x37\x6a\x38\x6a\x39\x6a\x3a\x6a\x3b\x6a\x3c\x6a\x3f\x6a\x40\x6a\x41\x6a\x42\x6a\x43\x6a\x45\x6a\x46\x6a\x48\x6a\x49\x6a\x4a\x6a\x4b\x6a\x4c\x6a\x4d\x6a\x4e\x6a\x4f\x6a\x51\x6a\x52\x6a\x53\x6a\x54\x6a\x55\x6a\x56\x6a\x57\x6a\x5a\x6a\x5c\x6a\x5d\x6a\x5e\x6a\x5f\x6a\x60\x6a\x62\x6a\x63\x6a\x64\x6a\x66\x6a\x67\x6a\x68\x6a\x69\x6a\x6a\x6a\x6b\x6a\x6c", /* 9980 */ "\x00\x00\x6a\x6d\x6a\x6e\x6a\x6f\x6a\x70\x6a\x72\x6a\x73\x6a\x74\x6a\x75\x6a\x76\x6a\x77\x6a\x78\x6a\x7a\x6a\x7b\x6a\x7d\x6a\x7e\x6a\x7f\x6a\x81\x6a\x82\x6a\x83\x6a\x85\x6a\x86\x6a\x87\x6a\x88\x6a\x89\x6a\x8a\x6a\x8b\x6a\x8c\x6a\x8d\x6a\x8f\x6a\x92\x6a\x93\x6a\x94\x6a\x95\x6a\x96\x6a\x98\x6a\x99\x6a\x9a\x6a\x9b\x6a\x9c\x6a\x9d\x6a\x9e\x6a\x9f\x6a\xa1\x6a\xa2\x6a\xa3\x6a\xa4\x6a\xa5\x6a\xa6\x6a\xa7\x6a\xa8\x6a\xaa\x6a\xad\x6a\xae\x6a\xaf\x6a\xb0\x6a\xb1\x6a\xb2\x6a\xb3\x6a\xb4\x6a\xb5\x6a\xb6\x6a\xb7\x6a\xb8\x6a\xb9\x6a\xba\x6a\xbb\x6a\xbc\x6a\xbd\x6a\xbe\x6a\xbf\x6a\xc0\x6a\xc1\x6a\xc2\x6a\xc3\x6a\xc4\x6a\xc5\x6a\xc6\x6a\xc7\x6a\xc8\x6a\xc9\x6a\xca\x6a\xcb\x6a\xcc\x6a\xcd\x6a\xce\x6a\xcf\x6a\xd0\x6a\xd1\x6a\xd2\x6a\xd3\x6a\xd4\x6a\xd5\x6a\xd6\x6a\xd7\x6a\xd8\x6a\xd9\x6a\xda\x6a\xdb\x6a\xdc\x6a\xdd\x6a\xde\x6a\xdf\x6a\xe0\x6a\xe1\x6a\xe2\x6a\xe3\x6a\xe4\x6a\xe5\x6a\xe6\x6a\xe7\x6a\xe8\x6a\xe9\x6a\xea\x6a\xeb\x6a\xec\x6a\xed\x6a\xee\x6a\xef\x6a\xf0\x6a\xf1\x6a\xf2\x6a\xf3\x6a\xf4\x6a\xf5\x6a\xf6\x00\x00\x00\x00", /* 9a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf7\x6a\xf8\x6a\xf9\x6a\xfa\x6a\xfb\x6a\xfc\x6a\xfd\x6a\xfe\x6a\xff\x6b\x00\x6b\x01\x6b\x02\x6b\x03\x6b\x04\x6b\x05\x6b\x06\x6b\x07\x6b\x08\x6b\x09\x6b\x0a\x6b\x0b\x6b\x0c\x6b\x0d\x6b\x0e\x6b\x0f\x6b\x10\x6b\x11\x6b\x12\x6b\x13\x6b\x14\x6b\x15\x6b\x16\x6b\x17\x6b\x18\x6b\x19\x6b\x1a\x6b\x1b\x6b\x1c\x6b\x1d\x6b\x1e\x6b\x1f\x6b\x25\x6b\x26\x6b\x28\x6b\x29\x6b\x2a\x6b\x2b\x6b\x2c\x6b\x2d\x6b\x2e\x6b\x2f\x6b\x30\x6b\x31\x6b\x33\x6b\x34\x6b\x35\x6b\x36\x6b\x38\x6b\x3b\x6b\x3c\x6b\x3d\x6b\x3f\x6b\x40", /* 9a80 */ "\x00\x00\x6b\x41\x6b\x42\x6b\x44\x6b\x45\x6b\x48\x6b\x4a\x6b\x4b\x6b\x4d\x6b\x4e\x6b\x4f\x6b\x50\x6b\x51\x6b\x52\x6b\x53\x6b\x54\x6b\x55\x6b\x56\x6b\x57\x6b\x58\x6b\x5a\x6b\x5b\x6b\x5c\x6b\x5d\x6b\x5e\x6b\x5f\x6b\x60\x6b\x61\x6b\x68\x6b\x69\x6b\x6b\x6b\x6c\x6b\x6d\x6b\x6e\x6b\x6f\x6b\x70\x6b\x71\x6b\x72\x6b\x73\x6b\x74\x6b\x75\x6b\x76\x6b\x77\x6b\x78\x6b\x7a\x6b\x7d\x6b\x7e\x6b\x7f\x6b\x80\x6b\x85\x6b\x88\x6b\x8c\x6b\x8e\x6b\x8f\x6b\x90\x6b\x91\x6b\x94\x6b\x95\x6b\x97\x6b\x98\x6b\x99\x6b\x9c\x6b\x9d\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xa2\x6b\xa3\x6b\xa4\x6b\xa5\x6b\xa6\x6b\xa7\x6b\xa8\x6b\xa9\x6b\xab\x6b\xac\x6b\xad\x6b\xae\x6b\xaf\x6b\xb0\x6b\xb1\x6b\xb2\x6b\xb6\x6b\xb8\x6b\xb9\x6b\xba\x6b\xbb\x6b\xbc\x6b\xbd\x6b\xbe\x6b\xc0\x6b\xc3\x6b\xc4\x6b\xc6\x6b\xc7\x6b\xc8\x6b\xc9\x6b\xca\x6b\xcc\x6b\xce\x6b\xd0\x6b\xd1\x6b\xd8\x6b\xda\x6b\xdc\x6b\xdd\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe2\x6b\xe3\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x6b\xe9\x6b\xec\x6b\xed\x6b\xee\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf4\x6b\xf6\x6b\xf7\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xf8\x6b\xfa\x6b\xfb\x6b\xfc\x6b\xfe\x6b\xff\x6c\x00\x6c\x01\x6c\x02\x6c\x03\x6c\x04\x6c\x08\x6c\x09\x6c\x0a\x6c\x0b\x6c\x0c\x6c\x0e\x6c\x12\x6c\x17\x6c\x1c\x6c\x1d\x6c\x1e\x6c\x20\x6c\x23\x6c\x25\x6c\x2b\x6c\x2c\x6c\x2d\x6c\x31\x6c\x33\x6c\x36\x6c\x37\x6c\x39\x6c\x3a\x6c\x3b\x6c\x3c\x6c\x3e\x6c\x3f\x6c\x43\x6c\x44\x6c\x45\x6c\x48\x6c\x4b\x6c\x4c\x6c\x4d\x6c\x4e\x6c\x4f\x6c\x51\x6c\x52\x6c\x53\x6c\x56\x6c\x58\x6c\x59\x6c\x5a\x6c\x62\x6c\x63\x6c\x65\x6c\x66\x6c\x67\x6c\x6b\x6c\x6c\x6c\x6d\x6c\x6e", /* 9b80 */ "\x00\x00\x6c\x6f\x6c\x71\x6c\x73\x6c\x75\x6c\x77\x6c\x78\x6c\x7a\x6c\x7b\x6c\x7c\x6c\x7f\x6c\x80\x6c\x84\x6c\x87\x6c\x8a\x6c\x8b\x6c\x8d\x6c\x8e\x6c\x91\x6c\x92\x6c\x95\x6c\x96\x6c\x97\x6c\x98\x6c\x9a\x6c\x9c\x6c\x9d\x6c\x9e\x6c\xa0\x6c\xa2\x6c\xa8\x6c\xac\x6c\xaf\x6c\xb0\x6c\xb4\x6c\xb5\x6c\xb6\x6c\xb7\x6c\xba\x6c\xc0\x6c\xc1\x6c\xc2\x6c\xc3\x6c\xc6\x6c\xc7\x6c\xc8\x6c\xcb\x6c\xcd\x6c\xce\x6c\xcf\x6c\xd1\x6c\xd2\x6c\xd8\x6c\xd9\x6c\xda\x6c\xdc\x6c\xdd\x6c\xdf\x6c\xe4\x6c\xe6\x6c\xe7\x6c\xe9\x6c\xec\x6c\xed\x6c\xf2\x6c\xf4\x6c\xf9\x6c\xff\x6d\x00\x6d\x02\x6d\x03\x6d\x05\x6d\x06\x6d\x08\x6d\x09\x6d\x0a\x6d\x0d\x6d\x0f\x6d\x10\x6d\x11\x6d\x13\x6d\x14\x6d\x15\x6d\x16\x6d\x18\x6d\x1c\x6d\x1d\x6d\x1f\x6d\x20\x6d\x21\x6d\x22\x6d\x23\x6d\x24\x6d\x26\x6d\x28\x6d\x29\x6d\x2c\x6d\x2d\x6d\x2f\x6d\x30\x6d\x34\x6d\x36\x6d\x37\x6d\x38\x6d\x3a\x6d\x3f\x6d\x40\x6d\x42\x6d\x44\x6d\x49\x6d\x4c\x6d\x50\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x5b\x6d\x5d\x6d\x5f\x6d\x61\x6d\x62\x6d\x64\x6d\x65\x6d\x67\x6d\x68\x6d\x6b\x00\x00\x00\x00", /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x6c\x6d\x6d\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x75\x6d\x76\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x83\x6d\x84\x6d\x86\x6d\x87\x6d\x8a\x6d\x8b\x6d\x8d\x6d\x8f\x6d\x90\x6d\x92\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9c\x6d\xa2\x6d\xa5\x6d\xac\x6d\xad\x6d\xb0\x6d\xb1\x6d\xb3\x6d\xb4\x6d\xb6\x6d\xb7\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc8\x6d\xc9\x6d\xca\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd7", /* 9c80 */ "\x00\x00\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdf\x6d\xe2\x6d\xe3\x6d\xe5\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xed\x6d\xef\x6d\xf0\x6d\xf2\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf8\x6d\xfa\x6d\xfd\x6d\xfe\x6d\xff\x6e\x00\x6e\x01\x6e\x02\x6e\x03\x6e\x04\x6e\x06\x6e\x07\x6e\x08\x6e\x09\x6e\x0b\x6e\x0f\x6e\x12\x6e\x13\x6e\x15\x6e\x18\x6e\x19\x6e\x1b\x6e\x1c\x6e\x1e\x6e\x1f\x6e\x22\x6e\x26\x6e\x27\x6e\x28\x6e\x2a\x6e\x2c\x6e\x2e\x6e\x30\x6e\x31\x6e\x33\x6e\x35\x6e\x36\x6e\x37\x6e\x39\x6e\x3b\x6e\x3c\x6e\x3d\x6e\x3e\x6e\x3f\x6e\x40\x6e\x41\x6e\x42\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x55\x6e\x57\x6e\x59\x6e\x5a\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6c\x6e\x6d\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x80\x6e\x81\x6e\x82\x6e\x84\x6e\x87\x6e\x88\x6e\x8a\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x91\x6e\x92\x00\x00\x00\x00", /* 9d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9d\x6e\x9e\x6e\xa0\x6e\xa1\x6e\xa3\x6e\xa4\x6e\xa6\x6e\xa8\x6e\xa9\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xb0\x6e\xb3\x6e\xb5\x6e\xb8\x6e\xb9\x6e\xbc\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcc\x6e\xcd\x6e\xce\x6e\xd0\x6e\xd2\x6e\xd6\x6e\xd8\x6e\xd9\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xe3\x6e\xe7\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf5\x6e\xf6\x6e\xf7", /* 9d80 */ "\x00\x00\x6e\xf8\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6e\xff\x6f\x00\x6f\x01\x6f\x03\x6f\x04\x6f\x05\x6f\x07\x6f\x08\x6f\x0a\x6f\x0b\x6f\x0c\x6f\x0d\x6f\x0e\x6f\x10\x6f\x11\x6f\x12\x6f\x16\x6f\x17\x6f\x18\x6f\x19\x6f\x1a\x6f\x1b\x6f\x1c\x6f\x1d\x6f\x1e\x6f\x1f\x6f\x21\x6f\x22\x6f\x23\x6f\x25\x6f\x26\x6f\x27\x6f\x28\x6f\x2c\x6f\x2e\x6f\x30\x6f\x32\x6f\x34\x6f\x35\x6f\x37\x6f\x38\x6f\x39\x6f\x3a\x6f\x3b\x6f\x3c\x6f\x3d\x6f\x3f\x6f\x40\x6f\x41\x6f\x42\x6f\x43\x6f\x44\x6f\x45\x6f\x48\x6f\x49\x6f\x4a\x6f\x4c\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5d\x6f\x5f\x6f\x60\x6f\x61\x6f\x63\x6f\x64\x6f\x65\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6f\x6f\x70\x6f\x71\x6f\x73\x6f\x75\x6f\x76\x6f\x77\x6f\x79\x6f\x7b\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x85\x6f\x86\x6f\x87\x6f\x8a\x6f\x8b\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9d\x6f\x9e\x00\x00\x00\x00", /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x9f\x6f\xa0\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb4\x6f\xb5\x6f\xb7\x6f\xb8\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc1\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xca\x6f\xcb\x6f\xcc\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xdf\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea", /* 9e80 */ "\x00\x00\x6f\xeb\x6f\xec\x6f\xed\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x6f\xff\x70\x00\x70\x01\x70\x02\x70\x03\x70\x04\x70\x05\x70\x06\x70\x07\x70\x08\x70\x09\x70\x0a\x70\x0b\x70\x0c\x70\x0d\x70\x0e\x70\x0f\x70\x10\x70\x12\x70\x13\x70\x14\x70\x15\x70\x16\x70\x17\x70\x18\x70\x19\x70\x1c\x70\x1d\x70\x1e\x70\x1f\x70\x20\x70\x21\x70\x22\x70\x24\x70\x25\x70\x26\x70\x27\x70\x28\x70\x29\x70\x2a\x70\x2b\x70\x2c\x70\x2d\x70\x2e\x70\x2f\x70\x30\x70\x31\x70\x32\x70\x33\x70\x34\x70\x36\x70\x37\x70\x38\x70\x3a\x70\x3b\x70\x3c\x70\x3d\x70\x3e\x70\x3f\x70\x40\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4d\x70\x4e\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6e\x70\x71\x70\x72\x70\x73\x70\x74\x70\x77\x70\x79\x70\x7a\x00\x00\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x7b\x70\x7d\x70\x81\x70\x82\x70\x83\x70\x84\x70\x86\x70\x87\x70\x88\x70\x8b\x70\x8c\x70\x8d\x70\x8f\x70\x90\x70\x91\x70\x93\x70\x97\x70\x98\x70\x9a\x70\x9b\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xb0\x70\xb2\x70\xb4\x70\xb5\x70\xb6\x70\xba\x70\xbe\x70\xbf\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc9\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xda\x70\xdc\x70\xdd\x70\xde", /* 9f80 */ "\x00\x00\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe5\x70\xea\x70\xee\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf8\x70\xfa\x70\xfb\x70\xfc\x70\xfe\x70\xff\x71\x00\x71\x01\x71\x02\x71\x03\x71\x04\x71\x05\x71\x06\x71\x07\x71\x08\x71\x0b\x71\x0c\x71\x0d\x71\x0e\x71\x0f\x71\x11\x71\x12\x71\x14\x71\x17\x71\x1b\x71\x1c\x71\x1d\x71\x1e\x71\x1f\x71\x20\x71\x21\x71\x22\x71\x23\x71\x24\x71\x25\x71\x27\x71\x28\x71\x29\x71\x2a\x71\x2b\x71\x2c\x71\x2d\x71\x2e\x71\x32\x71\x33\x71\x34\x71\x35\x71\x37\x71\x38\x71\x39\x71\x3a\x71\x3b\x71\x3c\x71\x3d\x71\x3e\x71\x3f\x71\x40\x71\x41\x71\x42\x71\x43\x71\x44\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4b\x71\x4d\x71\x4f\x71\x50\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5d\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x65\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6f\x71\x70\x71\x71\x71\x74\x71\x75\x71\x76\x71\x77\x71\x79\x71\x7b\x71\x7c\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x85\x71\x86\x71\x87\x00\x00\x00\x00", /* a000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x88\x71\x89\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x90\x71\x91\x71\x92\x71\x93\x71\x95\x71\x96\x71\x97\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa9\x71\xaa\x71\xab\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb4\x71\xb6\x71\xb7\x71\xb8\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xcf\x71\xd0\x71\xd1\x71\xd2\x71\xd3\x71\xd6", /* a080 */ "\x00\x00\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe6\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x71\xff\x72\x00\x72\x01\x72\x02\x72\x03\x72\x04\x72\x05\x72\x07\x72\x08\x72\x09\x72\x0a\x72\x0b\x72\x0c\x72\x0d\x72\x0e\x72\x0f\x72\x10\x72\x11\x72\x12\x72\x13\x72\x14\x72\x15\x72\x16\x72\x17\x72\x18\x72\x19\x72\x1a\x72\x1b\x72\x1c\x72\x1e\x72\x1f\x72\x20\x72\x21\x72\x22\x72\x23\x72\x24\x72\x25\x72\x26\x72\x27\x72\x29\x72\x2b\x72\x2d\x72\x2e\x72\x2f\x72\x32\x72\x33\x72\x34\x72\x3a\x72\x3c\x72\x3e\x72\x40\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x49\x72\x4a\x72\x4b\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x53\x72\x54\x72\x55\x72\x57\x72\x58\x72\x5a\x72\x5c\x72\x5e\x72\x60\x72\x63\x72\x64\x72\x65\x72\x68\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x70\x72\x71\x72\x73\x72\x74\x72\x76\x72\x77\x72\x78\x72\x7b\x72\x7c\x00\x00\x00\x00", /* a100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x7d\x72\x82\x72\x83\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8c\x72\x8e\x72\x90\x72\x91\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xae\x72\xb1\x72\xb2\x72\xb3\x72\xb5\x72\xba\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc5\x72\xc6\x72\xc7\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcf\x72\xd1\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd8\x72\xda", /* a180 */ "\x00\x00\x72\xdb\x72\xdc\x72\xdd\x72\xdf\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xea\x72\xeb\x72\xf5\x72\xf6\x72\xf9\x72\xfd\x72\xfe\x72\xff\x73\x00\x73\x02\x73\x04\x73\x05\x73\x06\x73\x07\x73\x08\x73\x09\x73\x0b\x73\x0c\x73\x0d\x73\x0f\x73\x10\x73\x11\x73\x12\x73\x14\x73\x18\x73\x19\x73\x1a\x73\x1f\x73\x20\x73\x23\x73\x24\x73\x26\x73\x27\x73\x28\x73\x2d\x73\x2f\x73\x30\x73\x32\x73\x33\x73\x35\x73\x36\x73\x3a\x73\x3b\x73\x3c\x73\x3d\x73\x40\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4e\x73\x4f\x73\x51\x73\x53\x73\x54\x73\x55\x73\x56\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6e\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c\x73\x7d\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x85\x73\x86\x73\x88\x73\x8a\x73\x8c\x73\x8d\x73\x8f\x73\x90\x73\x92\x73\x93\x73\x94\x00\x00\x00\x00", /* a200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x95\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9c\x73\x9d\x73\x9e\x73\xa0\x73\xa1\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xaa\x73\xac\x73\xad\x73\xb1\x73\xb4\x73\xb5\x73\xb6\x73\xb8\x73\xb9\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc1\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xcb\x73\xcc\x73\xce\x73\xd2\x73\xd3\x73\xd4\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xdf\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe6\x73\xe8\x73\xea\x73\xeb\x73\xec\x73\xee\x73\xef\x73\xf0\x73\xf1", /* a280 */ "\x00\x00\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc\x73\xfd\x73\xfe\x73\xff\x74\x00\x74\x01\x74\x02\x74\x04\x74\x07\x74\x08\x74\x0b\x74\x0c\x74\x0d\x74\x0e\x74\x11\x74\x12\x74\x13\x74\x14\x74\x15\x74\x16\x74\x17\x74\x18\x74\x19\x74\x1c\x74\x1d\x74\x1e\x74\x1f\x74\x20\x74\x21\x74\x23\x74\x24\x74\x27\x74\x29\x74\x2b\x74\x2d\x74\x2f\x74\x31\x74\x32\x74\x37\x74\x38\x74\x39\x74\x3a\x74\x3b\x74\x3d\x74\x3e\x74\x3f\x74\x40\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x56\x74\x58\x74\x5d\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6e\x74\x6f\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7f\x74\x82\x74\x84\x74\x85\x74\x86\x74\x88\x74\x89\x74\x8a\x74\x8c\x74\x8d\x74\x8f\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96\x74\x97\x74\x98\x74\x99\x74\x9a\x00\x00\x00\x00", /* a300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x9b\x74\x9d\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xbb\x74\xbc\x74\xbd\x74\xbe\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdd\x74\xdf\x74\xe1\x74\xe5\x74\xe7", /* a380 */ "\x00\x00\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf5\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x00\x75\x01\x75\x02\x75\x03\x75\x05\x75\x06\x75\x07\x75\x08\x75\x09\x75\x0a\x75\x0b\x75\x0c\x75\x0e\x75\x10\x75\x12\x75\x14\x75\x15\x75\x16\x75\x17\x75\x1b\x75\x1d\x75\x1e\x75\x20\x75\x21\x75\x22\x75\x23\x75\x24\x75\x26\x75\x27\x75\x2a\x75\x2e\x75\x34\x75\x36\x75\x39\x75\x3c\x75\x3d\x75\x3f\x75\x41\x75\x42\x75\x43\x75\x44\x75\x46\x75\x47\x75\x49\x75\x4a\x75\x4d\x75\x50\x75\x51\x75\x52\x75\x53\x75\x55\x75\x56\x75\x57\x75\x58\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x67\x75\x68\x75\x69\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x73\x75\x75\x75\x76\x75\x77\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x80\x75\x81\x75\x82\x75\x84\x75\x85\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8c\x75\x8d\x75\x8e\x75\x90\x75\x93\x75\x95\x75\x98\x75\x9b\x75\x9c\x75\x9e\x75\xa2\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xad\x00\x00\x00\x00", /* a400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xb6\x75\xb7\x75\xba\x75\xbb\x75\xbf\x75\xc0\x75\xc1\x75\xc6\x75\xcb\x75\xcc\x75\xce\x75\xcf\x75\xd0\x75\xd1\x75\xd3\x75\xd7\x75\xd9\x75\xda\x75\xdc\x75\xdd\x75\xdf\x75\xe0\x75\xe1\x75\xe5\x75\xe9\x75\xec\x75\xed\x75\xee\x75\xef\x75\xf2\x75\xf3\x75\xf5\x75\xf6\x75\xf7\x75\xf8\x75\xfa\x75\xfb\x75\xfd\x75\xfe\x76\x02\x76\x04\x76\x06\x76\x07\x76\x08\x76\x09\x76\x0b\x76\x0d\x76\x0e\x76\x0f\x76\x11\x76\x12\x76\x13\x76\x14\x76\x16\x76\x1a\x76\x1c\x76\x1d\x76\x1e\x76\x21\x76\x23\x76\x27\x76\x28\x76\x2c", /* a480 */ "\x00\x00\x76\x2e\x76\x2f\x76\x31\x76\x32\x76\x36\x76\x37\x76\x39\x76\x3a\x76\x3b\x76\x3d\x76\x41\x76\x42\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x55\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5d\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6c\x76\x6d\x76\x6e\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x79\x76\x7a\x76\x7c\x76\x7f\x76\x80\x76\x81\x76\x83\x76\x85\x76\x89\x76\x8a\x76\x8c\x76\x8d\x76\x8f\x76\x90\x76\x92\x76\x94\x76\x95\x76\x97\x76\x98\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xaf\x76\xb0\x76\xb3\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xc0\x76\xc1\x76\xc3\x76\xc4\x76\xc7\x76\xc9\x76\xcb\x76\xcc\x76\xd3\x76\xd5\x76\xd9\x76\xda\x76\xdc\x76\xdd\x76\xde\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x00\x00\x00\x00", /* a500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\xe4\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xf0\x76\xf3\x76\xf5\x76\xf6\x76\xf7\x76\xfa\x76\xfb\x76\xfd\x76\xff\x77\x00\x77\x02\x77\x03\x77\x05\x77\x06\x77\x0a\x77\x0c\x77\x0e\x77\x0f\x77\x10\x77\x11\x77\x12\x77\x13\x77\x14\x77\x15\x77\x16\x77\x17\x77\x18\x77\x1b\x77\x1c\x77\x1d\x77\x1e\x77\x21\x77\x23\x77\x24\x77\x25\x77\x27\x77\x2a\x77\x2b\x77\x2c\x77\x2e\x77\x30\x77\x31\x77\x32\x77\x33\x77\x34\x77\x39\x77\x3b\x77\x3d\x77\x3e\x77\x3f\x77\x42\x77\x44\x77\x45\x77\x46", /* a580 */ "\x00\x00\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x64\x77\x67\x77\x69\x77\x6a\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x7a\x77\x7b\x77\x7c\x77\x81\x77\x82\x77\x83\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8f\x77\x90\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\xa1\x77\xa3\x77\xa4\x77\xa6\x77\xa8\x77\xab\x77\xad\x77\xae\x77\xaf\x77\xb1\x77\xb2\x77\xb4\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbc\x77\xbe\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd8\x77\xd9\x77\xda\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe4\x77\xe6\x77\xe8\x77\xea\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf4\x77\xf5\x77\xf7\x77\xf9\x77\xfa\x00\x00\x00\x00", /* a600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xfb\x77\xfc\x78\x03\x78\x04\x78\x05\x78\x06\x78\x07\x78\x08\x78\x0a\x78\x0b\x78\x0e\x78\x0f\x78\x10\x78\x13\x78\x15\x78\x19\x78\x1b\x78\x1e\x78\x20\x78\x21\x78\x22\x78\x24\x78\x28\x78\x2a\x78\x2b\x78\x2e\x78\x2f\x78\x31\x78\x32\x78\x33\x78\x35\x78\x36\x78\x3d\x78\x3f\x78\x41\x78\x42\x78\x43\x78\x44\x78\x46\x78\x48\x78\x49\x78\x4a\x78\x4b\x78\x4d\x78\x4f\x78\x51\x78\x53\x78\x54\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67", /* a680 */ "\x00\x00\x78\x68\x78\x69\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7d\x78\x7e\x78\x7f\x78\x80\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x88\x78\x8a\x78\x8b\x78\x8f\x78\x90\x78\x92\x78\x94\x78\x95\x78\x96\x78\x99\x78\x9d\x78\x9e\x78\xa0\x78\xa2\x78\xa4\x78\xa6\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbf\x78\xc0\x78\xc2\x78\xc3\x78\xc4\x78\xc6\x78\xc7\x78\xc8\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd1\x78\xd2\x78\xd3\x78\xd6\x78\xd7\x78\xd8\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe9\x78\xea\x78\xeb\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf3\x78\xf5\x78\xf6\x78\xf8\x78\xf9\x78\xfb\x78\xfc\x78\xfd\x78\xfe\x78\xff\x79\x00\x79\x02\x79\x03\x79\x04\x79\x06\x79\x07\x79\x08\x79\x09\x79\x0a\x79\x0b\x79\x0c\x79\x0d\x79\x0e\x79\x0f\x79\x10\x79\x11\x79\x12\x79\x14\x79\x15\x00\x00\x00\x00", /* a700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x16\x79\x17\x79\x18\x79\x19\x79\x1a\x79\x1b\x79\x1c\x79\x1d\x79\x1f\x79\x20\x79\x21\x79\x22\x79\x23\x79\x25\x79\x26\x79\x27\x79\x28\x79\x29\x79\x2a\x79\x2b\x79\x2c\x79\x2d\x79\x2e\x79\x2f\x79\x30\x79\x31\x79\x32\x79\x33\x79\x35\x79\x36\x79\x37\x79\x38\x79\x39\x79\x3d\x79\x3f\x79\x42\x79\x43\x79\x44\x79\x45\x79\x47\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x54\x79\x55\x79\x58\x79\x59\x79\x61\x79\x63\x79\x64\x79\x66\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6e\x79\x70", /* a780 */ "\x00\x00\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x79\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x82\x79\x83\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8b\x79\x8c\x79\x8d\x79\x8e\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xbc\x79\xbf\x79\xc2\x79\xc4\x79\xc5\x79\xc7\x79\xc8\x79\xca\x79\xcc\x79\xce\x79\xcf\x79\xd0\x79\xd3\x79\xd4\x79\xd6\x79\xd7\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xe0\x79\xe1\x79\xe2\x79\xe5\x79\xe8\x79\xea\x79\xec\x79\xee\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf9\x79\xfa\x79\xfc\x79\xfe\x79\xff\x7a\x01\x7a\x04\x7a\x05\x7a\x07\x7a\x08\x7a\x09\x7a\x0a\x7a\x0c\x7a\x0f\x7a\x10\x7a\x11\x7a\x12\x7a\x13\x7a\x15\x7a\x16\x7a\x18\x7a\x19\x7a\x1b\x7a\x1c\x7a\x1d\x7a\x1f\x7a\x21\x7a\x22\x00\x00\x00\x00", /* a800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x24\x7a\x25\x7a\x26\x7a\x27\x7a\x28\x7a\x29\x7a\x2a\x7a\x2b\x7a\x2c\x7a\x2d\x7a\x2e\x7a\x2f\x7a\x30\x7a\x31\x7a\x32\x7a\x34\x7a\x35\x7a\x36\x7a\x38\x7a\x3a\x7a\x3e\x7a\x40\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c", /* a880 */ "\x00\x00\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x71\x7a\x72\x7a\x73\x7a\x75\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x82\x7a\x85\x7a\x87\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8e\x7a\x8f\x7a\x90\x7a\x93\x7a\x94\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9e\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa7\x7a\xa9\x7a\xaa\x7a\xab\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd7\x7a\xd8\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xe1\x7a\xe2\x7a\xe4\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xee\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xfb\x7a\xfc\x7a\xfe\x7b\x00\x7b\x01\x7b\x02\x7b\x05\x7b\x07\x7b\x09\x7b\x0c\x7b\x0d\x7b\x0e\x7b\x10\x7b\x12\x7b\x13\x7b\x16\x7b\x17\x7b\x18\x7b\x1a\x7b\x1c\x7b\x1d\x7b\x1f\x7b\x21\x7b\x22\x7b\x23\x7b\x27\x7b\x29\x7b\x2d\x00\x00\x00\x00", /* a900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x2f\x7b\x30\x7b\x32\x7b\x34\x7b\x35\x7b\x36\x7b\x37\x7b\x39\x7b\x3b\x7b\x3d\x7b\x3f\x7b\x40\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x46\x7b\x48\x7b\x4a\x7b\x4d\x7b\x4e\x7b\x53\x7b\x55\x7b\x57\x7b\x59\x7b\x5c\x7b\x5e\x7b\x5f\x7b\x61\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6f\x7b\x70\x7b\x73\x7b\x74\x7b\x76\x7b\x78\x7b\x7a\x7b\x7c\x7b\x7d\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8e\x7b\x8f", /* a980 */ "\x00\x00\x7b\x91\x7b\x92\x7b\x93\x7b\x96\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb2\x7b\xb3\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd2\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xdb\x7b\xdc\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xeb\x7b\xec\x7b\xed\x7b\xef\x7b\xf0\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfd\x7b\xff\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x7c\x04\x7c\x05\x7c\x06\x7c\x08\x7c\x09\x7c\x0a\x7c\x0d\x7c\x0e\x7c\x10\x7c\x11\x7c\x12\x7c\x13\x7c\x14\x7c\x15\x7c\x17\x7c\x18\x7c\x19\x7c\x1a\x7c\x1b\x7c\x1c\x7c\x1d\x7c\x1e\x7c\x20\x7c\x21\x7c\x22\x7c\x23\x7c\x24\x7c\x25\x7c\x28\x7c\x29\x7c\x2b\x7c\x2c\x7c\x2d\x7c\x2e\x7c\x2f\x7c\x30\x7c\x31\x7c\x32\x7c\x33\x7c\x34\x7c\x35\x7c\x36\x7c\x37\x7c\x39\x7c\x3a\x7c\x3b\x00\x00\x00\x00", /* aa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x3c\x7c\x3d\x7c\x3e\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7e\x7c\x7f\x7c\x80\x7c\x81\x7c\x82\x7c\x83", /* aa80 */ "\x00\x00\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x93\x7c\x94\x7c\x96\x7c\x99\x7c\x9a\x7c\x9b\x7c\xa0\x7c\xa1\x7c\xa3\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xab\x7c\xac\x7c\xad\x7c\xaf\x7c\xb0\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xba\x7c\xbb\x7c\xbf\x7c\xc0\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc6\x7c\xc9\x7c\xcb\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd8\x7c\xda\x7c\xdb\x7c\xdd\x7c\xde\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf9\x7c\xfa\x7c\xfc\x7c\xfd\x7c\xfe\x7c\xff\x7d\x00\x7d\x01\x7d\x02\x7d\x03\x7d\x04\x7d\x05\x7d\x06\x7d\x07\x7d\x08\x7d\x09\x7d\x0b\x7d\x0c\x7d\x0d\x7d\x0e\x7d\x0f\x7d\x10\x7d\x11\x7d\x12\x7d\x13\x7d\x14\x7d\x15\x7d\x16\x7d\x17\x7d\x18\x7d\x19\x7d\x1a\x7d\x1b\x7d\x1c\x7d\x1d\x7d\x1e\x7d\x1f\x7d\x21\x7d\x23\x7d\x24\x7d\x25\x7d\x26\x7d\x28\x7d\x29\x7d\x2a\x7d\x2c\x7d\x2d\x00\x00\x00\x00", /* ab00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x2e\x7d\x30\x7d\x31\x7d\x32\x7d\x33\x7d\x34\x7d\x35\x7d\x36\x7d\x37\x7d\x38\x7d\x39\x7d\x3a\x7d\x3b\x7d\x3c\x7d\x3d\x7d\x3e\x7d\x3f\x7d\x40\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d", /* ab80 */ "\x00\x00\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x80\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x00\x00\x00\x00", /* ac00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7d\xfe\x7d\xff\x7e\x00\x7e\x01\x7e\x02\x7e\x03\x7e\x04\x7e\x05\x7e\x06\x7e\x07\x7e\x08\x7e\x09\x7e\x0a\x7e\x0b\x7e\x0c\x7e\x0d\x7e\x0e\x7e\x0f\x7e\x10\x7e\x11\x7e\x12\x7e\x13\x7e\x14\x7e\x15\x7e\x16\x7e\x17\x7e\x18\x7e\x19\x7e\x1a\x7e\x1b\x7e\x1c\x7e\x1d\x7e\x1e\x7e\x1f\x7e\x20\x7e\x21\x7e\x22\x7e\x23\x7e\x24\x7e\x25\x7e\x26\x7e\x27\x7e\x28\x7e\x29\x7e\x2a\x7e\x2b\x7e\x2c\x7e\x2d", /* ac80 */ "\x00\x00\x7e\x2e\x7e\x2f\x7e\x30\x7e\x31\x7e\x32\x7e\x33\x7e\x34\x7e\x35\x7e\x36\x7e\x37\x7e\x38\x7e\x39\x7e\x3a\x7e\x3c\x7e\x3d\x7e\x3e\x7e\x3f\x7e\x40\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x80\x7e\x81\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9c\x7e\x9d\x7e\x9e\x7e\xae\x7e\xb4\x7e\xbb\x7e\xbc\x7e\xd6\x7e\xe4\x7e\xec\x7e\xf9\x7f\x0a\x7f\x10\x7f\x1e\x7f\x37\x7f\x39\x7f\x3b\x7f\x3c\x7f\x3d\x7f\x3e\x00\x00\x00\x00", /* ad00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x3f\x7f\x40\x7f\x41\x7f\x43\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x52\x7f\x53\x7f\x56\x7f\x59\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x60\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6f\x7f\x70\x7f\x73\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7f\x7f\x80\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8b\x7f\x8d\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x95\x7f\x96\x7f\x97\x7f\x98", /* ad80 */ "\x00\x00\x7f\x99\x7f\x9b\x7f\x9c\x7f\xa0\x7f\xa2\x7f\xa3\x7f\xa5\x7f\xa6\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xb1\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xba\x7f\xbb\x7f\xbe\x7f\xc0\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xcb\x7f\xcd\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd6\x7f\xd7\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe7\x7f\xe8\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xef\x7f\xf2\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfd\x7f\xfe\x7f\xff\x80\x02\x80\x07\x80\x08\x80\x09\x80\x0a\x80\x0e\x80\x0f\x80\x11\x80\x13\x80\x1a\x80\x1b\x80\x1d\x80\x1e\x80\x1f\x80\x21\x80\x23\x80\x24\x80\x2b\x80\x2c\x80\x2d\x80\x2e\x80\x2f\x80\x30\x80\x32\x80\x34\x80\x39\x80\x3a\x80\x3c\x80\x3e\x80\x40\x80\x41\x80\x44\x80\x45\x80\x47\x80\x48\x80\x49\x80\x4e\x80\x4f\x80\x50\x80\x51\x80\x53\x80\x55\x80\x56\x80\x57\x80\x59\x80\x5b\x80\x5c\x80\x5d\x80\x5e\x80\x5f\x80\x60\x80\x61\x80\x62\x80\x63\x80\x64\x80\x65\x80\x66\x00\x00\x00\x00", /* ae00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x67\x80\x68\x80\x6b\x80\x6c\x80\x6d\x80\x6e\x80\x6f\x80\x70\x80\x72\x80\x73\x80\x74\x80\x75\x80\x76\x80\x77\x80\x78\x80\x79\x80\x7a\x80\x7b\x80\x7c\x80\x7d\x80\x7e\x80\x81\x80\x82\x80\x85\x80\x88\x80\x8a\x80\x8d\x80\x8e\x80\x8f\x80\x90\x80\x91\x80\x92\x80\x94\x80\x95\x80\x97\x80\x99\x80\x9e\x80\xa3\x80\xa6\x80\xa7\x80\xa8\x80\xac\x80\xb0\x80\xb3\x80\xb5\x80\xb6\x80\xb8\x80\xb9\x80\xbb\x80\xc5\x80\xc7\x80\xc8\x80\xc9\x80\xca\x80\xcb\x80\xcf\x80\xd0\x80\xd1\x80\xd2\x80\xd3\x80\xd4\x80\xd5\x80\xd8", /* ae80 */ "\x00\x00\x80\xdf\x80\xe0\x80\xe2\x80\xe3\x80\xe6\x80\xee\x80\xf5\x80\xf7\x80\xf9\x80\xfb\x80\xfe\x80\xff\x81\x00\x81\x01\x81\x03\x81\x04\x81\x05\x81\x07\x81\x08\x81\x0b\x81\x0c\x81\x15\x81\x17\x81\x19\x81\x1b\x81\x1c\x81\x1d\x81\x1f\x81\x20\x81\x21\x81\x22\x81\x23\x81\x24\x81\x25\x81\x26\x81\x27\x81\x28\x81\x29\x81\x2a\x81\x2b\x81\x2d\x81\x2e\x81\x30\x81\x33\x81\x34\x81\x35\x81\x37\x81\x39\x81\x3a\x81\x3b\x81\x3c\x81\x3d\x81\x3f\x81\x40\x81\x41\x81\x42\x81\x43\x81\x44\x81\x45\x81\x47\x81\x49\x81\x4d\x81\x4e\x81\x4f\x81\x52\x81\x56\x81\x57\x81\x58\x81\x5b\x81\x5c\x81\x5d\x81\x5e\x81\x5f\x81\x61\x81\x62\x81\x63\x81\x64\x81\x66\x81\x68\x81\x6a\x81\x6b\x81\x6c\x81\x6f\x81\x72\x81\x73\x81\x75\x81\x76\x81\x77\x81\x78\x81\x81\x81\x83\x81\x84\x81\x85\x81\x86\x81\x87\x81\x89\x81\x8b\x81\x8c\x81\x8d\x81\x8e\x81\x90\x81\x92\x81\x93\x81\x94\x81\x95\x81\x96\x81\x97\x81\x99\x81\x9a\x81\x9e\x81\x9f\x81\xa0\x81\xa1\x81\xa2\x81\xa4\x81\xa5\x81\xa7\x81\xa9\x81\xab\x81\xac\x81\xad\x81\xae\x81\xaf\x81\xb0\x81\xb1\x00\x00\x00\x00", /* af00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xb2\x81\xb4\x81\xb5\x81\xb6\x81\xb7\x81\xb8\x81\xb9\x81\xbc\x81\xbd\x81\xbe\x81\xbf\x81\xc4\x81\xc5\x81\xc7\x81\xc8\x81\xc9\x81\xcb\x81\xcd\x81\xce\x81\xcf\x81\xd0\x81\xd1\x81\xd2\x81\xd3\x81\xd4\x81\xd5\x81\xd6\x81\xd7\x81\xd8\x81\xd9\x81\xda\x81\xdb\x81\xdc\x81\xdd\x81\xde\x81\xdf\x81\xe0\x81\xe1\x81\xe2\x81\xe4\x81\xe5\x81\xe6\x81\xe8\x81\xe9\x81\xeb\x81\xee\x81\xef\x81\xf0\x81\xf1\x81\xf2\x81\xf5\x81\xf6\x81\xf7\x81\xf8\x81\xf9\x81\xfa\x81\xfd\x81\xff\x82\x03\x82\x07\x82\x08\x82\x09\x82\x0a", /* af80 */ "\x00\x00\x82\x0b\x82\x0e\x82\x0f\x82\x11\x82\x13\x82\x15\x82\x16\x82\x17\x82\x18\x82\x19\x82\x1a\x82\x1d\x82\x20\x82\x24\x82\x25\x82\x26\x82\x27\x82\x29\x82\x2e\x82\x32\x82\x3a\x82\x3c\x82\x3d\x82\x3f\x82\x40\x82\x41\x82\x42\x82\x43\x82\x45\x82\x46\x82\x48\x82\x4a\x82\x4c\x82\x4d\x82\x4e\x82\x50\x82\x51\x82\x52\x82\x53\x82\x54\x82\x55\x82\x56\x82\x57\x82\x59\x82\x5b\x82\x5c\x82\x5d\x82\x5e\x82\x60\x82\x61\x82\x62\x82\x63\x82\x64\x82\x65\x82\x66\x82\x67\x82\x69\x82\x6a\x82\x6b\x82\x6c\x82\x6d\x82\x71\x82\x75\x82\x76\x82\x77\x82\x78\x82\x7b\x82\x7c\x82\x80\x82\x81\x82\x83\x82\x85\x82\x86\x82\x87\x82\x89\x82\x8c\x82\x90\x82\x93\x82\x94\x82\x95\x82\x96\x82\x9a\x82\x9b\x82\x9e\x82\xa0\x82\xa2\x82\xa3\x82\xa7\x82\xb2\x82\xb5\x82\xb6\x82\xba\x82\xbb\x82\xbc\x82\xbf\x82\xc0\x82\xc2\x82\xc3\x82\xc5\x82\xc6\x82\xc9\x82\xd0\x82\xd6\x82\xd9\x82\xda\x82\xdd\x82\xe2\x82\xe7\x82\xe8\x82\xe9\x82\xea\x82\xec\x82\xed\x82\xee\x82\xf0\x82\xf2\x82\xf3\x82\xf5\x82\xf6\x82\xf8\x82\xfa\x82\xfc\x82\xfd\x82\xfe\x82\xff\x00\x00\x00\x00", /* b000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x83\x0a\x83\x0b\x83\x0d\x83\x10\x83\x12\x83\x13\x83\x16\x83\x18\x83\x19\x83\x1d\x83\x1e\x83\x1f\x83\x20\x83\x21\x83\x22\x83\x23\x83\x24\x83\x25\x83\x26\x83\x29\x83\x2a\x83\x2e\x83\x30\x83\x32\x83\x37\x83\x3b\x83\x3d\x83\x3e\x83\x3f\x83\x41\x83\x42\x83\x44\x83\x45\x83\x48\x83\x4a\x83\x4b\x83\x4c\x83\x4d\x83\x4e\x83\x53\x83\x55\x83\x56\x83\x57\x83\x58\x83\x59\x83\x5d\x83\x62\x83\x70\x83\x71\x83\x72\x83\x73\x83\x74\x83\x75\x83\x76\x83\x79\x83\x7a\x83\x7e\x83\x7f\x83\x80\x83\x81\x83\x82\x83\x83", /* b080 */ "\x00\x00\x83\x84\x83\x87\x83\x88\x83\x8a\x83\x8b\x83\x8c\x83\x8d\x83\x8f\x83\x90\x83\x91\x83\x94\x83\x95\x83\x96\x83\x97\x83\x99\x83\x9a\x83\x9d\x83\x9f\x83\xa1\x83\xa2\x83\xa3\x83\xa4\x83\xa5\x83\xa6\x83\xa7\x83\xac\x83\xad\x83\xae\x83\xaf\x83\xb5\x83\xbb\x83\xbe\x83\xbf\x83\xc2\x83\xc3\x83\xc4\x83\xc6\x83\xc8\x83\xc9\x83\xcb\x83\xcd\x83\xce\x83\xd0\x83\xd1\x83\xd2\x83\xd3\x83\xd5\x83\xd7\x83\xd9\x83\xda\x83\xdb\x83\xde\x83\xe2\x83\xe3\x83\xe4\x83\xe6\x83\xe7\x83\xe8\x83\xeb\x83\xec\x83\xed\x83\xee\x83\xef\x83\xf3\x83\xf4\x83\xf5\x83\xf6\x83\xf7\x83\xfa\x83\xfb\x83\xfc\x83\xfe\x83\xff\x84\x00\x84\x02\x84\x05\x84\x07\x84\x08\x84\x09\x84\x0a\x84\x10\x84\x12\x84\x13\x84\x14\x84\x15\x84\x16\x84\x17\x84\x19\x84\x1a\x84\x1b\x84\x1e\x84\x1f\x84\x20\x84\x21\x84\x22\x84\x23\x84\x29\x84\x2a\x84\x2b\x84\x2c\x84\x2d\x84\x2e\x84\x2f\x84\x30\x84\x32\x84\x33\x84\x34\x84\x35\x84\x36\x84\x37\x84\x39\x84\x3a\x84\x3b\x84\x3e\x84\x3f\x84\x40\x84\x41\x84\x42\x84\x43\x84\x44\x84\x45\x84\x47\x84\x48\x84\x49\x84\x4a\x00\x00\x00\x00", /* b100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x4b\x84\x4c\x84\x4d\x84\x4e\x84\x4f\x84\x50\x84\x52\x84\x53\x84\x54\x84\x55\x84\x56\x84\x58\x84\x5d\x84\x5e\x84\x5f\x84\x60\x84\x62\x84\x64\x84\x65\x84\x66\x84\x67\x84\x68\x84\x6a\x84\x6e\x84\x6f\x84\x70\x84\x72\x84\x74\x84\x77\x84\x79\x84\x7b\x84\x7c\x84\x7d\x84\x7e\x84\x7f\x84\x80\x84\x81\x84\x83\x84\x84\x84\x85\x84\x86\x84\x8a\x84\x8d\x84\x8f\x84\x90\x84\x91\x84\x92\x84\x93\x84\x94\x84\x95\x84\x96\x84\x98\x84\x9a\x84\x9b\x84\x9d\x84\x9e\x84\x9f\x84\xa0\x84\xa2\x84\xa3\x84\xa4\x84\xa5\x84\xa6", /* b180 */ "\x00\x00\x84\xa7\x84\xa8\x84\xa9\x84\xaa\x84\xab\x84\xac\x84\xad\x84\xae\x84\xb0\x84\xb1\x84\xb3\x84\xb5\x84\xb6\x84\xb7\x84\xbb\x84\xbc\x84\xbe\x84\xc0\x84\xc2\x84\xc3\x84\xc5\x84\xc6\x84\xc7\x84\xc8\x84\xcb\x84\xcc\x84\xce\x84\xcf\x84\xd2\x84\xd4\x84\xd5\x84\xd7\x84\xd8\x84\xd9\x84\xda\x84\xdb\x84\xdc\x84\xde\x84\xe1\x84\xe2\x84\xe4\x84\xe7\x84\xe8\x84\xe9\x84\xea\x84\xeb\x84\xed\x84\xee\x84\xef\x84\xf1\x84\xf2\x84\xf3\x84\xf4\x84\xf5\x84\xf6\x84\xf7\x84\xf8\x84\xf9\x84\xfa\x84\xfb\x84\xfd\x84\xfe\x85\x00\x85\x01\x85\x02\x85\x03\x85\x04\x85\x05\x85\x06\x85\x07\x85\x08\x85\x09\x85\x0a\x85\x0b\x85\x0d\x85\x0e\x85\x0f\x85\x10\x85\x12\x85\x14\x85\x15\x85\x16\x85\x18\x85\x19\x85\x1b\x85\x1c\x85\x1d\x85\x1e\x85\x20\x85\x22\x85\x23\x85\x24\x85\x25\x85\x26\x85\x27\x85\x28\x85\x29\x85\x2a\x85\x2d\x85\x2e\x85\x2f\x85\x30\x85\x31\x85\x32\x85\x33\x85\x34\x85\x35\x85\x36\x85\x3e\x85\x3f\x85\x40\x85\x41\x85\x42\x85\x44\x85\x45\x85\x46\x85\x47\x85\x4b\x85\x4c\x85\x4d\x85\x4e\x85\x4f\x85\x50\x85\x51\x85\x52\x00\x00\x00\x00", /* b200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x53\x85\x54\x85\x55\x85\x57\x85\x58\x85\x5a\x85\x5b\x85\x5c\x85\x5d\x85\x5f\x85\x60\x85\x61\x85\x62\x85\x63\x85\x65\x85\x66\x85\x67\x85\x69\x85\x6a\x85\x6b\x85\x6c\x85\x6d\x85\x6e\x85\x6f\x85\x70\x85\x71\x85\x73\x85\x75\x85\x76\x85\x77\x85\x78\x85\x7c\x85\x7d\x85\x7f\x85\x80\x85\x81\x85\x82\x85\x83\x85\x86\x85\x88\x85\x89\x85\x8a\x85\x8b\x85\x8c\x85\x8d\x85\x8e\x85\x90\x85\x91\x85\x92\x85\x93\x85\x94\x85\x95\x85\x96\x85\x97\x85\x98\x85\x99\x85\x9a\x85\x9d\x85\x9e\x85\x9f\x85\xa0\x85\xa1\x85\xa2", /* b280 */ "\x00\x00\x85\xa3\x85\xa5\x85\xa6\x85\xa7\x85\xa9\x85\xab\x85\xac\x85\xad\x85\xb1\x85\xb2\x85\xb3\x85\xb4\x85\xb5\x85\xb6\x85\xb8\x85\xba\x85\xbb\x85\xbc\x85\xbd\x85\xbe\x85\xbf\x85\xc0\x85\xc2\x85\xc3\x85\xc4\x85\xc5\x85\xc6\x85\xc7\x85\xc8\x85\xca\x85\xcb\x85\xcc\x85\xcd\x85\xce\x85\xd1\x85\xd2\x85\xd4\x85\xd6\x85\xd7\x85\xd8\x85\xd9\x85\xda\x85\xdb\x85\xdd\x85\xde\x85\xdf\x85\xe0\x85\xe1\x85\xe2\x85\xe3\x85\xe5\x85\xe6\x85\xe7\x85\xe8\x85\xea\x85\xeb\x85\xec\x85\xed\x85\xee\x85\xef\x85\xf0\x85\xf1\x85\xf2\x85\xf3\x85\xf4\x85\xf5\x85\xf6\x85\xf7\x85\xf8\x85\xf9\x85\xfa\x85\xfc\x85\xfd\x85\xfe\x86\x00\x86\x01\x86\x02\x86\x03\x86\x04\x86\x06\x86\x07\x86\x08\x86\x09\x86\x0a\x86\x0b\x86\x0c\x86\x0d\x86\x0e\x86\x0f\x86\x10\x86\x12\x86\x13\x86\x14\x86\x15\x86\x17\x86\x18\x86\x19\x86\x1a\x86\x1b\x86\x1c\x86\x1d\x86\x1e\x86\x1f\x86\x20\x86\x21\x86\x22\x86\x23\x86\x24\x86\x25\x86\x26\x86\x28\x86\x2a\x86\x2b\x86\x2c\x86\x2d\x86\x2e\x86\x2f\x86\x30\x86\x31\x86\x32\x86\x33\x86\x34\x86\x35\x86\x36\x86\x37\x00\x00\x00\x00", /* b300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x39\x86\x3a\x86\x3b\x86\x3d\x86\x3e\x86\x3f\x86\x40\x86\x41\x86\x42\x86\x43\x86\x44\x86\x45\x86\x46\x86\x47\x86\x48\x86\x49\x86\x4a\x86\x4b\x86\x4c\x86\x52\x86\x53\x86\x55\x86\x56\x86\x57\x86\x58\x86\x59\x86\x5b\x86\x5c\x86\x5d\x86\x5f\x86\x60\x86\x61\x86\x63\x86\x64\x86\x65\x86\x66\x86\x67\x86\x68\x86\x69\x86\x6a\x86\x6d\x86\x6f\x86\x70\x86\x72\x86\x73\x86\x74\x86\x75\x86\x76\x86\x77\x86\x78\x86\x83\x86\x84\x86\x85\x86\x86\x86\x87\x86\x88\x86\x89\x86\x8e\x86\x8f\x86\x90\x86\x91\x86\x92\x86\x94", /* b380 */ "\x00\x00\x86\x96\x86\x97\x86\x98\x86\x99\x86\x9a\x86\x9b\x86\x9e\x86\x9f\x86\xa0\x86\xa1\x86\xa2\x86\xa5\x86\xa6\x86\xab\x86\xad\x86\xae\x86\xb2\x86\xb3\x86\xb7\x86\xb8\x86\xb9\x86\xbb\x86\xbc\x86\xbd\x86\xbe\x86\xbf\x86\xc1\x86\xc2\x86\xc3\x86\xc5\x86\xc8\x86\xcc\x86\xcd\x86\xd2\x86\xd3\x86\xd5\x86\xd6\x86\xd7\x86\xda\x86\xdc\x86\xdd\x86\xe0\x86\xe1\x86\xe2\x86\xe3\x86\xe5\x86\xe6\x86\xe7\x86\xe8\x86\xea\x86\xeb\x86\xec\x86\xef\x86\xf5\x86\xf6\x86\xf7\x86\xfa\x86\xfb\x86\xfc\x86\xfd\x86\xff\x87\x01\x87\x04\x87\x05\x87\x06\x87\x0b\x87\x0c\x87\x0e\x87\x0f\x87\x10\x87\x11\x87\x14\x87\x16\x87\x19\x87\x1b\x87\x1d\x87\x1f\x87\x20\x87\x24\x87\x26\x87\x27\x87\x28\x87\x2a\x87\x2b\x87\x2c\x87\x2d\x87\x2f\x87\x30\x87\x32\x87\x33\x87\x35\x87\x36\x87\x38\x87\x39\x87\x3a\x87\x3c\x87\x3d\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46\x87\x4a\x87\x4b\x87\x4d\x87\x4f\x87\x50\x87\x51\x87\x52\x87\x54\x87\x55\x87\x56\x87\x58\x87\x5a\x87\x5b\x87\x5c\x87\x5d\x87\x5e\x87\x5f\x87\x61\x87\x62\x87\x66\x87\x67\x00\x00\x00\x00", /* b400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x68\x87\x69\x87\x6a\x87\x6b\x87\x6c\x87\x6d\x87\x6f\x87\x71\x87\x72\x87\x73\x87\x75\x87\x77\x87\x78\x87\x79\x87\x7a\x87\x7f\x87\x80\x87\x81\x87\x84\x87\x86\x87\x87\x87\x89\x87\x8a\x87\x8c\x87\x8e\x87\x8f\x87\x90\x87\x91\x87\x92\x87\x94\x87\x95\x87\x96\x87\x98\x87\x99\x87\x9a\x87\x9b\x87\x9c\x87\x9d\x87\x9e\x87\xa0\x87\xa1\x87\xa2\x87\xa3\x87\xa4\x87\xa5\x87\xa6\x87\xa7\x87\xa9\x87\xaa\x87\xae\x87\xb0\x87\xb1\x87\xb2\x87\xb4\x87\xb6\x87\xb7\x87\xb8\x87\xb9\x87\xbb\x87\xbc\x87\xbe\x87\xbf\x87\xc1", /* b480 */ "\x00\x00\x87\xc2\x87\xc3\x87\xc4\x87\xc5\x87\xc7\x87\xc8\x87\xc9\x87\xcc\x87\xcd\x87\xce\x87\xcf\x87\xd0\x87\xd4\x87\xd5\x87\xd6\x87\xd7\x87\xd8\x87\xd9\x87\xda\x87\xdc\x87\xdd\x87\xde\x87\xdf\x87\xe1\x87\xe2\x87\xe3\x87\xe4\x87\xe6\x87\xe7\x87\xe8\x87\xe9\x87\xeb\x87\xec\x87\xed\x87\xef\x87\xf0\x87\xf1\x87\xf2\x87\xf3\x87\xf4\x87\xf5\x87\xf6\x87\xf7\x87\xf8\x87\xfa\x87\xfb\x87\xfc\x87\xfd\x87\xff\x88\x00\x88\x01\x88\x02\x88\x04\x88\x05\x88\x06\x88\x07\x88\x08\x88\x09\x88\x0b\x88\x0c\x88\x0d\x88\x0e\x88\x0f\x88\x10\x88\x11\x88\x12\x88\x14\x88\x17\x88\x18\x88\x19\x88\x1a\x88\x1c\x88\x1d\x88\x1e\x88\x1f\x88\x20\x88\x23\x88\x24\x88\x25\x88\x26\x88\x27\x88\x28\x88\x29\x88\x2a\x88\x2b\x88\x2c\x88\x2d\x88\x2e\x88\x2f\x88\x30\x88\x31\x88\x33\x88\x34\x88\x35\x88\x36\x88\x37\x88\x38\x88\x3a\x88\x3b\x88\x3d\x88\x3e\x88\x3f\x88\x41\x88\x42\x88\x43\x88\x46\x88\x47\x88\x48\x88\x49\x88\x4a\x88\x4b\x88\x4e\x88\x4f\x88\x50\x88\x51\x88\x52\x88\x53\x88\x55\x88\x56\x88\x58\x88\x5a\x88\x5b\x88\x5c\x88\x5d\x88\x5e\x00\x00\x00\x00", /* b500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x5f\x88\x60\x88\x66\x88\x67\x88\x6a\x88\x6d\x88\x6f\x88\x71\x88\x73\x88\x74\x88\x75\x88\x76\x88\x78\x88\x79\x88\x7a\x88\x7b\x88\x7c\x88\x80\x88\x83\x88\x86\x88\x87\x88\x89\x88\x8a\x88\x8c\x88\x8e\x88\x8f\x88\x90\x88\x91\x88\x93\x88\x94\x88\x95\x88\x97\x88\x98\x88\x99\x88\x9a\x88\x9b\x88\x9d\x88\x9e\x88\x9f\x88\xa0\x88\xa1\x88\xa3\x88\xa5\x88\xa6\x88\xa7\x88\xa8\x88\xa9\x88\xaa\x88\xac\x88\xae\x88\xaf\x88\xb0\x88\xb2\x88\xb3\x88\xb4\x88\xb5\x88\xb6\x88\xb8\x88\xb9\x88\xba\x88\xbb\x88\xbd\x88\xbe", /* b580 */ "\x00\x00\x88\xbf\x88\xc0\x88\xc3\x88\xc4\x88\xc7\x88\xc8\x88\xca\x88\xcb\x88\xcc\x88\xcd\x88\xcf\x88\xd0\x88\xd1\x88\xd3\x88\xd6\x88\xd7\x88\xda\x88\xdb\x88\xdc\x88\xdd\x88\xde\x88\xe0\x88\xe1\x88\xe6\x88\xe7\x88\xe9\x88\xea\x88\xeb\x88\xec\x88\xed\x88\xee\x88\xef\x88\xf2\x88\xf5\x88\xf6\x88\xf7\x88\xfa\x88\xfb\x88\xfd\x88\xff\x89\x00\x89\x01\x89\x03\x89\x04\x89\x05\x89\x06\x89\x07\x89\x08\x89\x09\x89\x0b\x89\x0c\x89\x0d\x89\x0e\x89\x0f\x89\x11\x89\x14\x89\x15\x89\x16\x89\x17\x89\x18\x89\x1c\x89\x1d\x89\x1e\x89\x1f\x89\x20\x89\x22\x89\x23\x89\x24\x89\x26\x89\x27\x89\x28\x89\x29\x89\x2c\x89\x2d\x89\x2e\x89\x2f\x89\x31\x89\x32\x89\x33\x89\x35\x89\x37\x89\x38\x89\x39\x89\x3a\x89\x3b\x89\x3c\x89\x3d\x89\x3e\x89\x3f\x89\x40\x89\x42\x89\x43\x89\x45\x89\x46\x89\x47\x89\x48\x89\x49\x89\x4a\x89\x4b\x89\x4c\x89\x4d\x89\x4e\x89\x4f\x89\x50\x89\x51\x89\x52\x89\x53\x89\x54\x89\x55\x89\x56\x89\x57\x89\x58\x89\x59\x89\x5a\x89\x5b\x89\x5c\x89\x5d\x89\x60\x89\x61\x89\x62\x89\x63\x89\x64\x89\x65\x89\x67\x89\x68\x00\x00\x00\x00", /* b600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x69\x89\x6a\x89\x6b\x89\x6c\x89\x6d\x89\x6e\x89\x6f\x89\x70\x89\x71\x89\x72\x89\x73\x89\x74\x89\x75\x89\x76\x89\x77\x89\x78\x89\x79\x89\x7a\x89\x7c\x89\x7d\x89\x7e\x89\x80\x89\x82\x89\x84\x89\x85\x89\x87\x89\x88\x89\x89\x89\x8a\x89\x8b\x89\x8c\x89\x8d\x89\x8e\x89\x8f\x89\x90\x89\x91\x89\x92\x89\x93\x89\x94\x89\x95\x89\x96\x89\x97\x89\x98\x89\x99\x89\x9a\x89\x9b\x89\x9c\x89\x9d\x89\x9e\x89\x9f\x89\xa0\x89\xa1\x89\xa2\x89\xa3\x89\xa4\x89\xa5\x89\xa6\x89\xa7\x89\xa8\x89\xa9\x89\xaa\x89\xab\x89\xac", /* b680 */ "\x00\x00\x89\xad\x89\xae\x89\xaf\x89\xb0\x89\xb1\x89\xb2\x89\xb3\x89\xb4\x89\xb5\x89\xb6\x89\xb7\x89\xb8\x89\xb9\x89\xba\x89\xbb\x89\xbc\x89\xbd\x89\xbe\x89\xbf\x89\xc0\x89\xc3\x89\xcd\x89\xd3\x89\xd4\x89\xd5\x89\xd7\x89\xd8\x89\xd9\x89\xdb\x89\xdd\x89\xdf\x89\xe0\x89\xe1\x89\xe2\x89\xe4\x89\xe7\x89\xe8\x89\xe9\x89\xea\x89\xec\x89\xed\x89\xee\x89\xf0\x89\xf1\x89\xf2\x89\xf4\x89\xf5\x89\xf6\x89\xf7\x89\xf8\x89\xf9\x89\xfa\x89\xfb\x89\xfc\x89\xfd\x89\xfe\x89\xff\x8a\x01\x8a\x02\x8a\x03\x8a\x04\x8a\x05\x8a\x06\x8a\x08\x8a\x09\x8a\x0a\x8a\x0b\x8a\x0c\x8a\x0d\x8a\x0e\x8a\x0f\x8a\x10\x8a\x11\x8a\x12\x8a\x13\x8a\x14\x8a\x15\x8a\x16\x8a\x17\x8a\x18\x8a\x19\x8a\x1a\x8a\x1b\x8a\x1c\x8a\x1d\x8a\x1e\x8a\x1f\x8a\x20\x8a\x21\x8a\x22\x8a\x23\x8a\x24\x8a\x25\x8a\x26\x8a\x27\x8a\x28\x8a\x29\x8a\x2a\x8a\x2b\x8a\x2c\x8a\x2d\x8a\x2e\x8a\x2f\x8a\x30\x8a\x31\x8a\x32\x8a\x33\x8a\x34\x8a\x35\x8a\x36\x8a\x37\x8a\x38\x8a\x39\x8a\x3a\x8a\x3b\x8a\x3c\x8a\x3d\x8a\x3f\x8a\x40\x8a\x41\x8a\x42\x8a\x43\x8a\x44\x8a\x45\x8a\x46\x00\x00\x00\x00", /* b700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x47\x8a\x49\x8a\x4a\x8a\x4b\x8a\x4c\x8a\x4d\x8a\x4e\x8a\x4f\x8a\x50\x8a\x51\x8a\x52\x8a\x53\x8a\x54\x8a\x55\x8a\x56\x8a\x57\x8a\x58\x8a\x59\x8a\x5a\x8a\x5b\x8a\x5c\x8a\x5d\x8a\x5e\x8a\x5f\x8a\x60\x8a\x61\x8a\x62\x8a\x63\x8a\x64\x8a\x65\x8a\x66\x8a\x67\x8a\x68\x8a\x69\x8a\x6a\x8a\x6b\x8a\x6c\x8a\x6d\x8a\x6e\x8a\x6f\x8a\x70\x8a\x71\x8a\x72\x8a\x73\x8a\x74\x8a\x75\x8a\x76\x8a\x77\x8a\x78\x8a\x7a\x8a\x7b\x8a\x7c\x8a\x7d\x8a\x7e\x8a\x7f\x8a\x80\x8a\x81\x8a\x82\x8a\x83\x8a\x84\x8a\x85\x8a\x86\x8a\x87", /* b780 */ "\x00\x00\x8a\x88\x8a\x8b\x8a\x8c\x8a\x8d\x8a\x8e\x8a\x8f\x8a\x90\x8a\x91\x8a\x92\x8a\x94\x8a\x95\x8a\x96\x8a\x97\x8a\x98\x8a\x99\x8a\x9a\x8a\x9b\x8a\x9c\x8a\x9d\x8a\x9e\x8a\x9f\x8a\xa0\x8a\xa1\x8a\xa2\x8a\xa3\x8a\xa4\x8a\xa5\x8a\xa6\x8a\xa7\x8a\xa8\x8a\xa9\x8a\xaa\x8a\xab\x8a\xac\x8a\xad\x8a\xae\x8a\xaf\x8a\xb0\x8a\xb1\x8a\xb2\x8a\xb3\x8a\xb4\x8a\xb5\x8a\xb6\x8a\xb7\x8a\xb8\x8a\xb9\x8a\xba\x8a\xbb\x8a\xbc\x8a\xbd\x8a\xbe\x8a\xbf\x8a\xc0\x8a\xc1\x8a\xc2\x8a\xc3\x8a\xc4\x8a\xc5\x8a\xc6\x8a\xc7\x8a\xc8\x8a\xc9\x8a\xca\x8a\xcb\x8a\xcc\x8a\xcd\x8a\xce\x8a\xcf\x8a\xd0\x8a\xd1\x8a\xd2\x8a\xd3\x8a\xd4\x8a\xd5\x8a\xd6\x8a\xd7\x8a\xd8\x8a\xd9\x8a\xda\x8a\xdb\x8a\xdc\x8a\xdd\x8a\xde\x8a\xdf\x8a\xe0\x8a\xe1\x8a\xe2\x8a\xe3\x8a\xe4\x8a\xe5\x8a\xe6\x8a\xe7\x8a\xe8\x8a\xe9\x8a\xea\x8a\xeb\x8a\xec\x8a\xed\x8a\xee\x8a\xef\x8a\xf0\x8a\xf1\x8a\xf2\x8a\xf3\x8a\xf4\x8a\xf5\x8a\xf6\x8a\xf7\x8a\xf8\x8a\xf9\x8a\xfa\x8a\xfb\x8a\xfc\x8a\xfd\x8a\xfe\x8a\xff\x8b\x00\x8b\x01\x8b\x02\x8b\x03\x8b\x04\x8b\x05\x8b\x06\x8b\x08\x00\x00\x00\x00", /* b800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x09\x8b\x0a\x8b\x0b\x8b\x0c\x8b\x0d\x8b\x0e\x8b\x0f\x8b\x10\x8b\x11\x8b\x12\x8b\x13\x8b\x14\x8b\x15\x8b\x16\x8b\x17\x8b\x18\x8b\x19\x8b\x1a\x8b\x1b\x8b\x1c\x8b\x1d\x8b\x1e\x8b\x1f\x8b\x20\x8b\x21\x8b\x22\x8b\x23\x8b\x24\x8b\x25\x8b\x27\x8b\x28\x8b\x29\x8b\x2a\x8b\x2b\x8b\x2c\x8b\x2d\x8b\x2e\x8b\x2f\x8b\x30\x8b\x31\x8b\x32\x8b\x33\x8b\x34\x8b\x35\x8b\x36\x8b\x37\x8b\x38\x8b\x39\x8b\x3a\x8b\x3b\x8b\x3c\x8b\x3d\x8b\x3e\x8b\x3f\x8b\x40\x8b\x41\x8b\x42\x8b\x43\x8b\x44\x8b\x45\x8b\x46\x8b\x47\x8b\x48", /* b880 */ "\x00\x00\x8b\x49\x8b\x4a\x8b\x4b\x8b\x4c\x8b\x4d\x8b\x4e\x8b\x4f\x8b\x50\x8b\x51\x8b\x52\x8b\x53\x8b\x54\x8b\x55\x8b\x56\x8b\x57\x8b\x58\x8b\x59\x8b\x5a\x8b\x5b\x8b\x5c\x8b\x5d\x8b\x5e\x8b\x5f\x8b\x60\x8b\x61\x8b\x62\x8b\x63\x8b\x64\x8b\x65\x8b\x67\x8b\x68\x8b\x69\x8b\x6a\x8b\x6b\x8b\x6d\x8b\x6e\x8b\x6f\x8b\x70\x8b\x71\x8b\x72\x8b\x73\x8b\x74\x8b\x75\x8b\x76\x8b\x77\x8b\x78\x8b\x79\x8b\x7a\x8b\x7b\x8b\x7c\x8b\x7d\x8b\x7e\x8b\x7f\x8b\x80\x8b\x81\x8b\x82\x8b\x83\x8b\x84\x8b\x85\x8b\x86\x8b\x87\x8b\x88\x8b\x89\x8b\x8a\x8b\x8b\x8b\x8c\x8b\x8d\x8b\x8e\x8b\x8f\x8b\x90\x8b\x91\x8b\x92\x8b\x93\x8b\x94\x8b\x95\x8b\x96\x8b\x97\x8b\x98\x8b\x99\x8b\x9a\x8b\x9b\x8b\x9c\x8b\x9d\x8b\x9e\x8b\x9f\x8b\xac\x8b\xb1\x8b\xbb\x8b\xc7\x8b\xd0\x8b\xea\x8c\x09\x8c\x1e\x8c\x38\x8c\x39\x8c\x3a\x8c\x3b\x8c\x3c\x8c\x3d\x8c\x3e\x8c\x3f\x8c\x40\x8c\x42\x8c\x43\x8c\x44\x8c\x45\x8c\x48\x8c\x4a\x8c\x4b\x8c\x4d\x8c\x4e\x8c\x4f\x8c\x50\x8c\x51\x8c\x52\x8c\x53\x8c\x54\x8c\x56\x8c\x57\x8c\x58\x8c\x59\x8c\x5b\x8c\x5c\x8c\x5d\x8c\x5e\x00\x00\x00\x00", /* b900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x5f\x8c\x60\x8c\x63\x8c\x64\x8c\x65\x8c\x66\x8c\x67\x8c\x68\x8c\x69\x8c\x6c\x8c\x6d\x8c\x6e\x8c\x6f\x8c\x70\x8c\x71\x8c\x72\x8c\x74\x8c\x75\x8c\x76\x8c\x77\x8c\x7b\x8c\x7c\x8c\x7d\x8c\x7e\x8c\x7f\x8c\x80\x8c\x81\x8c\x83\x8c\x84\x8c\x86\x8c\x87\x8c\x88\x8c\x8b\x8c\x8d\x8c\x8e\x8c\x8f\x8c\x90\x8c\x91\x8c\x92\x8c\x93\x8c\x95\x8c\x96\x8c\x97\x8c\x99\x8c\x9a\x8c\x9b\x8c\x9c\x8c\x9d\x8c\x9e\x8c\x9f\x8c\xa0\x8c\xa1\x8c\xa2\x8c\xa3\x8c\xa4\x8c\xa5\x8c\xa6\x8c\xa7\x8c\xa8\x8c\xa9\x8c\xaa\x8c\xab\x8c\xac", /* b980 */ "\x00\x00\x8c\xad\x8c\xae\x8c\xaf\x8c\xb0\x8c\xb1\x8c\xb2\x8c\xb3\x8c\xb4\x8c\xb5\x8c\xb6\x8c\xb7\x8c\xb8\x8c\xb9\x8c\xba\x8c\xbb\x8c\xbc\x8c\xbd\x8c\xbe\x8c\xbf\x8c\xc0\x8c\xc1\x8c\xc2\x8c\xc3\x8c\xc4\x8c\xc5\x8c\xc6\x8c\xc7\x8c\xc8\x8c\xc9\x8c\xca\x8c\xcb\x8c\xcc\x8c\xcd\x8c\xce\x8c\xcf\x8c\xd0\x8c\xd1\x8c\xd2\x8c\xd3\x8c\xd4\x8c\xd5\x8c\xd6\x8c\xd7\x8c\xd8\x8c\xd9\x8c\xda\x8c\xdb\x8c\xdc\x8c\xdd\x8c\xde\x8c\xdf\x8c\xe0\x8c\xe1\x8c\xe2\x8c\xe3\x8c\xe4\x8c\xe5\x8c\xe6\x8c\xe7\x8c\xe8\x8c\xe9\x8c\xea\x8c\xeb\x8c\xec\x8c\xed\x8c\xee\x8c\xef\x8c\xf0\x8c\xf1\x8c\xf2\x8c\xf3\x8c\xf4\x8c\xf5\x8c\xf6\x8c\xf7\x8c\xf8\x8c\xf9\x8c\xfa\x8c\xfb\x8c\xfc\x8c\xfd\x8c\xfe\x8c\xff\x8d\x00\x8d\x01\x8d\x02\x8d\x03\x8d\x04\x8d\x05\x8d\x06\x8d\x07\x8d\x08\x8d\x09\x8d\x0a\x8d\x0b\x8d\x0c\x8d\x0d\x8d\x0e\x8d\x0f\x8d\x10\x8d\x11\x8d\x12\x8d\x13\x8d\x14\x8d\x15\x8d\x16\x8d\x17\x8d\x18\x8d\x19\x8d\x1a\x8d\x1b\x8d\x1c\x8d\x20\x8d\x51\x8d\x52\x8d\x57\x8d\x5f\x8d\x65\x8d\x68\x8d\x69\x8d\x6a\x8d\x6c\x8d\x6e\x8d\x6f\x8d\x71\x00\x00\x00\x00", /* ba00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x72\x8d\x78\x8d\x79\x8d\x7a\x8d\x7b\x8d\x7c\x8d\x7d\x8d\x7e\x8d\x7f\x8d\x80\x8d\x82\x8d\x83\x8d\x86\x8d\x87\x8d\x88\x8d\x89\x8d\x8c\x8d\x8d\x8d\x8e\x8d\x8f\x8d\x90\x8d\x92\x8d\x93\x8d\x95\x8d\x96\x8d\x97\x8d\x98\x8d\x99\x8d\x9a\x8d\x9b\x8d\x9c\x8d\x9d\x8d\x9e\x8d\xa0\x8d\xa1\x8d\xa2\x8d\xa4\x8d\xa5\x8d\xa6\x8d\xa7\x8d\xa8\x8d\xa9\x8d\xaa\x8d\xab\x8d\xac\x8d\xad\x8d\xae\x8d\xaf\x8d\xb0\x8d\xb2\x8d\xb6\x8d\xb7\x8d\xb9\x8d\xbb\x8d\xbd\x8d\xc0\x8d\xc1\x8d\xc2\x8d\xc5\x8d\xc7\x8d\xc8\x8d\xc9\x8d\xca", /* ba80 */ "\x00\x00\x8d\xcd\x8d\xd0\x8d\xd2\x8d\xd3\x8d\xd4\x8d\xd5\x8d\xd8\x8d\xd9\x8d\xdc\x8d\xe0\x8d\xe1\x8d\xe2\x8d\xe5\x8d\xe6\x8d\xe7\x8d\xe9\x8d\xed\x8d\xee\x8d\xf0\x8d\xf1\x8d\xf2\x8d\xf4\x8d\xf6\x8d\xfc\x8d\xfe\x8d\xff\x8e\x00\x8e\x01\x8e\x02\x8e\x03\x8e\x04\x8e\x06\x8e\x07\x8e\x08\x8e\x0b\x8e\x0d\x8e\x0e\x8e\x10\x8e\x11\x8e\x12\x8e\x13\x8e\x15\x8e\x16\x8e\x17\x8e\x18\x8e\x19\x8e\x1a\x8e\x1b\x8e\x1c\x8e\x20\x8e\x21\x8e\x24\x8e\x25\x8e\x26\x8e\x27\x8e\x28\x8e\x2b\x8e\x2d\x8e\x30\x8e\x32\x8e\x33\x8e\x34\x8e\x36\x8e\x37\x8e\x38\x8e\x3b\x8e\x3c\x8e\x3e\x8e\x3f\x8e\x43\x8e\x45\x8e\x46\x8e\x4c\x8e\x4d\x8e\x4e\x8e\x4f\x8e\x50\x8e\x53\x8e\x54\x8e\x55\x8e\x56\x8e\x57\x8e\x58\x8e\x5a\x8e\x5b\x8e\x5c\x8e\x5d\x8e\x5e\x8e\x5f\x8e\x60\x8e\x61\x8e\x62\x8e\x63\x8e\x64\x8e\x65\x8e\x67\x8e\x68\x8e\x6a\x8e\x6b\x8e\x6e\x8e\x71\x8e\x73\x8e\x75\x8e\x77\x8e\x78\x8e\x79\x8e\x7a\x8e\x7b\x8e\x7d\x8e\x7e\x8e\x80\x8e\x82\x8e\x83\x8e\x84\x8e\x86\x8e\x88\x8e\x89\x8e\x8a\x8e\x8b\x8e\x8c\x8e\x8d\x8e\x8e\x8e\x91\x8e\x92\x8e\x93\x00\x00\x00\x00", /* bb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x95\x8e\x96\x8e\x97\x8e\x98\x8e\x99\x8e\x9a\x8e\x9b\x8e\x9d\x8e\x9f\x8e\xa0\x8e\xa1\x8e\xa2\x8e\xa3\x8e\xa4\x8e\xa5\x8e\xa6\x8e\xa7\x8e\xa8\x8e\xa9\x8e\xaa\x8e\xad\x8e\xae\x8e\xb0\x8e\xb1\x8e\xb3\x8e\xb4\x8e\xb5\x8e\xb6\x8e\xb7\x8e\xb8\x8e\xb9\x8e\xbb\x8e\xbc\x8e\xbd\x8e\xbe\x8e\xbf\x8e\xc0\x8e\xc1\x8e\xc2\x8e\xc3\x8e\xc4\x8e\xc5\x8e\xc6\x8e\xc7\x8e\xc8\x8e\xc9\x8e\xca\x8e\xcb\x8e\xcc\x8e\xcd\x8e\xcf\x8e\xd0\x8e\xd1\x8e\xd2\x8e\xd3\x8e\xd4\x8e\xd5\x8e\xd6\x8e\xd7\x8e\xd8\x8e\xd9\x8e\xda\x8e\xdb", /* bb80 */ "\x00\x00\x8e\xdc\x8e\xdd\x8e\xde\x8e\xdf\x8e\xe0\x8e\xe1\x8e\xe2\x8e\xe3\x8e\xe4\x8e\xe5\x8e\xe6\x8e\xe7\x8e\xe8\x8e\xe9\x8e\xea\x8e\xeb\x8e\xec\x8e\xed\x8e\xee\x8e\xef\x8e\xf0\x8e\xf1\x8e\xf2\x8e\xf3\x8e\xf4\x8e\xf5\x8e\xf6\x8e\xf7\x8e\xf8\x8e\xf9\x8e\xfa\x8e\xfb\x8e\xfc\x8e\xfd\x8e\xfe\x8e\xff\x8f\x00\x8f\x01\x8f\x02\x8f\x03\x8f\x04\x8f\x05\x8f\x06\x8f\x07\x8f\x08\x8f\x09\x8f\x0a\x8f\x0b\x8f\x0c\x8f\x0d\x8f\x0e\x8f\x0f\x8f\x10\x8f\x11\x8f\x12\x8f\x13\x8f\x14\x8f\x15\x8f\x16\x8f\x17\x8f\x18\x8f\x19\x8f\x1a\x8f\x1b\x8f\x1c\x8f\x1d\x8f\x1e\x8f\x1f\x8f\x20\x8f\x21\x8f\x22\x8f\x23\x8f\x24\x8f\x25\x8f\x26\x8f\x27\x8f\x28\x8f\x29\x8f\x2a\x8f\x2b\x8f\x2c\x8f\x2d\x8f\x2e\x8f\x2f\x8f\x30\x8f\x31\x8f\x32\x8f\x33\x8f\x34\x8f\x35\x8f\x36\x8f\x37\x8f\x38\x8f\x39\x8f\x3a\x8f\x3b\x8f\x3c\x8f\x3d\x8f\x3e\x8f\x3f\x8f\x40\x8f\x41\x8f\x42\x8f\x43\x8f\x44\x8f\x45\x8f\x46\x8f\x47\x8f\x48\x8f\x49\x8f\x4a\x8f\x4b\x8f\x4c\x8f\x4d\x8f\x4e\x8f\x4f\x8f\x50\x8f\x51\x8f\x52\x8f\x53\x8f\x54\x8f\x55\x8f\x56\x8f\x57\x8f\x58\x00\x00\x00\x00", /* bc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x59\x8f\x5a\x8f\x5b\x8f\x5c\x8f\x5d\x8f\x5e\x8f\x5f\x8f\x60\x8f\x61\x8f\x62\x8f\x63\x8f\x64\x8f\x65\x8f\x6a\x8f\x80\x8f\x8c\x8f\x92\x8f\x9d\x8f\xa0\x8f\xa1\x8f\xa2\x8f\xa4\x8f\xa5\x8f\xa6\x8f\xa7\x8f\xaa\x8f\xac\x8f\xad\x8f\xae\x8f\xaf\x8f\xb2\x8f\xb3\x8f\xb4\x8f\xb5\x8f\xb7\x8f\xb8\x8f\xba\x8f\xbb\x8f\xbc\x8f\xbf\x8f\xc0\x8f\xc3\x8f\xc6\x8f\xc9\x8f\xca\x8f\xcb\x8f\xcc\x8f\xcd\x8f\xcf\x8f\xd2\x8f\xd6\x8f\xd7\x8f\xda\x8f\xe0\x8f\xe1\x8f\xe3\x8f\xe7\x8f\xec\x8f\xef\x8f\xf1\x8f\xf2\x8f\xf4\x8f\xf5", /* bc80 */ "\x00\x00\x8f\xf6\x8f\xfa\x8f\xfb\x8f\xfc\x8f\xfe\x8f\xff\x90\x07\x90\x08\x90\x0c\x90\x0e\x90\x13\x90\x15\x90\x18\x90\x19\x90\x1c\x90\x23\x90\x24\x90\x25\x90\x27\x90\x28\x90\x29\x90\x2a\x90\x2b\x90\x2c\x90\x30\x90\x31\x90\x32\x90\x33\x90\x34\x90\x37\x90\x39\x90\x3a\x90\x3d\x90\x3f\x90\x40\x90\x43\x90\x45\x90\x46\x90\x48\x90\x49\x90\x4a\x90\x4b\x90\x4c\x90\x4e\x90\x54\x90\x55\x90\x56\x90\x59\x90\x5a\x90\x5c\x90\x5d\x90\x5e\x90\x5f\x90\x60\x90\x61\x90\x64\x90\x66\x90\x67\x90\x69\x90\x6a\x90\x6b\x90\x6c\x90\x6f\x90\x70\x90\x71\x90\x72\x90\x73\x90\x76\x90\x77\x90\x78\x90\x79\x90\x7a\x90\x7b\x90\x7c\x90\x7e\x90\x81\x90\x84\x90\x85\x90\x86\x90\x87\x90\x89\x90\x8a\x90\x8c\x90\x8d\x90\x8e\x90\x8f\x90\x90\x90\x92\x90\x94\x90\x96\x90\x98\x90\x9a\x90\x9c\x90\x9e\x90\x9f\x90\xa0\x90\xa4\x90\xa5\x90\xa7\x90\xa8\x90\xa9\x90\xab\x90\xad\x90\xb2\x90\xb7\x90\xbc\x90\xbd\x90\xbf\x90\xc0\x90\xc2\x90\xc3\x90\xc6\x90\xc8\x90\xc9\x90\xcb\x90\xcc\x90\xcd\x90\xd2\x90\xd4\x90\xd5\x90\xd6\x90\xd8\x90\xd9\x90\xda\x90\xde\x00\x00\x00\x00", /* bd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xdf\x90\xe0\x90\xe3\x90\xe4\x90\xe5\x90\xe9\x90\xea\x90\xec\x90\xee\x90\xf0\x90\xf1\x90\xf2\x90\xf3\x90\xf5\x90\xf6\x90\xf7\x90\xf9\x90\xfa\x90\xfb\x90\xfc\x90\xff\x91\x00\x91\x01\x91\x03\x91\x05\x91\x06\x91\x07\x91\x08\x91\x09\x91\x0a\x91\x0b\x91\x0c\x91\x0d\x91\x0e\x91\x0f\x91\x10\x91\x11\x91\x12\x91\x13\x91\x14\x91\x15\x91\x16\x91\x17\x91\x18\x91\x1a\x91\x1b\x91\x1c\x91\x1d\x91\x1f\x91\x20\x91\x21\x91\x24\x91\x25\x91\x26\x91\x27\x91\x28\x91\x29\x91\x2a\x91\x2b\x91\x2c\x91\x2d\x91\x2e\x91\x30", /* bd80 */ "\x00\x00\x91\x32\x91\x33\x91\x34\x91\x35\x91\x36\x91\x37\x91\x38\x91\x3a\x91\x3b\x91\x3c\x91\x3d\x91\x3e\x91\x3f\x91\x40\x91\x41\x91\x42\x91\x44\x91\x45\x91\x47\x91\x48\x91\x51\x91\x53\x91\x54\x91\x55\x91\x56\x91\x58\x91\x59\x91\x5b\x91\x5c\x91\x5f\x91\x60\x91\x66\x91\x67\x91\x68\x91\x6b\x91\x6d\x91\x73\x91\x7a\x91\x7b\x91\x7c\x91\x80\x91\x81\x91\x82\x91\x83\x91\x84\x91\x86\x91\x88\x91\x8a\x91\x8e\x91\x8f\x91\x93\x91\x94\x91\x95\x91\x96\x91\x97\x91\x98\x91\x99\x91\x9c\x91\x9d\x91\x9e\x91\x9f\x91\xa0\x91\xa1\x91\xa4\x91\xa5\x91\xa6\x91\xa7\x91\xa8\x91\xa9\x91\xab\x91\xac\x91\xb0\x91\xb1\x91\xb2\x91\xb3\x91\xb6\x91\xb7\x91\xb8\x91\xb9\x91\xbb\x91\xbc\x91\xbd\x91\xbe\x91\xbf\x91\xc0\x91\xc1\x91\xc2\x91\xc3\x91\xc4\x91\xc5\x91\xc6\x91\xc8\x91\xcb\x91\xd0\x91\xd2\x91\xd3\x91\xd4\x91\xd5\x91\xd6\x91\xd7\x91\xd8\x91\xd9\x91\xda\x91\xdb\x91\xdd\x91\xde\x91\xdf\x91\xe0\x91\xe1\x91\xe2\x91\xe3\x91\xe4\x91\xe5\x91\xe6\x91\xe7\x91\xe8\x91\xe9\x91\xea\x91\xeb\x91\xec\x91\xed\x91\xee\x91\xef\x91\xf0\x91\xf1\x00\x00\x00\x00", /* be00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xf2\x91\xf3\x91\xf4\x91\xf5\x91\xf6\x91\xf7\x91\xf8\x91\xf9\x91\xfa\x91\xfb\x91\xfc\x91\xfd\x91\xfe\x91\xff\x92\x00\x92\x01\x92\x02\x92\x03\x92\x04\x92\x05\x92\x06\x92\x07\x92\x08\x92\x09\x92\x0a\x92\x0b\x92\x0c\x92\x0d\x92\x0e\x92\x0f\x92\x10\x92\x11\x92\x12\x92\x13\x92\x14\x92\x15\x92\x16\x92\x17\x92\x18\x92\x19\x92\x1a\x92\x1b\x92\x1c\x92\x1d\x92\x1e\x92\x1f\x92\x20\x92\x21\x92\x22\x92\x23\x92\x24\x92\x25\x92\x26\x92\x27\x92\x28\x92\x29\x92\x2a\x92\x2b\x92\x2c\x92\x2d\x92\x2e\x92\x2f\x92\x30", /* be80 */ "\x00\x00\x92\x31\x92\x32\x92\x33\x92\x34\x92\x35\x92\x36\x92\x37\x92\x38\x92\x39\x92\x3a\x92\x3b\x92\x3c\x92\x3d\x92\x3e\x92\x3f\x92\x40\x92\x41\x92\x42\x92\x43\x92\x44\x92\x45\x92\x46\x92\x47\x92\x48\x92\x49\x92\x4a\x92\x4b\x92\x4c\x92\x4d\x92\x4e\x92\x4f\x92\x50\x92\x51\x92\x52\x92\x53\x92\x54\x92\x55\x92\x56\x92\x57\x92\x58\x92\x59\x92\x5a\x92\x5b\x92\x5c\x92\x5d\x92\x5e\x92\x5f\x92\x60\x92\x61\x92\x62\x92\x63\x92\x64\x92\x65\x92\x66\x92\x67\x92\x68\x92\x69\x92\x6a\x92\x6b\x92\x6c\x92\x6d\x92\x6e\x92\x6f\x92\x70\x92\x71\x92\x72\x92\x73\x92\x75\x92\x76\x92\x77\x92\x78\x92\x79\x92\x7a\x92\x7b\x92\x7c\x92\x7d\x92\x7e\x92\x7f\x92\x80\x92\x81\x92\x82\x92\x83\x92\x84\x92\x85\x92\x86\x92\x87\x92\x88\x92\x89\x92\x8a\x92\x8b\x92\x8c\x92\x8d\x92\x8f\x92\x90\x92\x91\x92\x92\x92\x93\x92\x94\x92\x95\x92\x96\x92\x97\x92\x98\x92\x99\x92\x9a\x92\x9b\x92\x9c\x92\x9d\x92\x9e\x92\x9f\x92\xa0\x92\xa1\x92\xa2\x92\xa3\x92\xa4\x92\xa5\x92\xa6\x92\xa7\x92\xa8\x92\xa9\x92\xaa\x92\xab\x92\xac\x92\xad\x92\xaf\x92\xb0\x00\x00\x00\x00", /* bf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\xb1\x92\xb2\x92\xb3\x92\xb4\x92\xb5\x92\xb6\x92\xb7\x92\xb8\x92\xb9\x92\xba\x92\xbb\x92\xbc\x92\xbd\x92\xbe\x92\xbf\x92\xc0\x92\xc1\x92\xc2\x92\xc3\x92\xc4\x92\xc5\x92\xc6\x92\xc7\x92\xc9\x92\xca\x92\xcb\x92\xcc\x92\xcd\x92\xce\x92\xcf\x92\xd0\x92\xd1\x92\xd2\x92\xd3\x92\xd4\x92\xd5\x92\xd6\x92\xd7\x92\xd8\x92\xd9\x92\xda\x92\xdb\x92\xdc\x92\xdd\x92\xde\x92\xdf\x92\xe0\x92\xe1\x92\xe2\x92\xe3\x92\xe4\x92\xe5\x92\xe6\x92\xe7\x92\xe8\x92\xe9\x92\xea\x92\xeb\x92\xec\x92\xed\x92\xee\x92\xef\x92\xf0", /* bf80 */ "\x00\x00\x92\xf1\x92\xf2\x92\xf3\x92\xf4\x92\xf5\x92\xf6\x92\xf7\x92\xf8\x92\xf9\x92\xfa\x92\xfb\x92\xfc\x92\xfd\x92\xfe\x92\xff\x93\x00\x93\x01\x93\x02\x93\x03\x93\x04\x93\x05\x93\x06\x93\x07\x93\x08\x93\x09\x93\x0a\x93\x0b\x93\x0c\x93\x0d\x93\x0e\x93\x0f\x93\x10\x93\x11\x93\x12\x93\x13\x93\x14\x93\x15\x93\x16\x93\x17\x93\x18\x93\x19\x93\x1a\x93\x1b\x93\x1c\x93\x1d\x93\x1e\x93\x1f\x93\x20\x93\x21\x93\x22\x93\x23\x93\x24\x93\x25\x93\x26\x93\x27\x93\x28\x93\x29\x93\x2a\x93\x2b\x93\x2c\x93\x2d\x93\x2e\x93\x2f\x93\x30\x93\x31\x93\x32\x93\x33\x93\x34\x93\x35\x93\x36\x93\x37\x93\x38\x93\x39\x93\x3a\x93\x3b\x93\x3c\x93\x3d\x93\x3f\x93\x40\x93\x41\x93\x42\x93\x43\x93\x44\x93\x45\x93\x46\x93\x47\x93\x48\x93\x49\x93\x4a\x93\x4b\x93\x4c\x93\x4d\x93\x4e\x93\x4f\x93\x50\x93\x51\x93\x52\x93\x53\x93\x54\x93\x55\x93\x56\x93\x57\x93\x58\x93\x59\x93\x5a\x93\x5b\x93\x5c\x93\x5d\x93\x5e\x93\x5f\x93\x60\x93\x61\x93\x62\x93\x63\x93\x64\x93\x65\x93\x66\x93\x67\x93\x68\x93\x69\x93\x6b\x93\x6c\x93\x6d\x93\x6e\x93\x6f\x00\x00\x00\x00", /* c000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x70\x93\x71\x93\x72\x93\x73\x93\x74\x93\x75\x93\x76\x93\x77\x93\x78\x93\x79\x93\x7a\x93\x7b\x93\x7c\x93\x7d\x93\x7e\x93\x7f\x93\x80\x93\x81\x93\x82\x93\x83\x93\x84\x93\x85\x93\x86\x93\x87\x93\x88\x93\x89\x93\x8a\x93\x8b\x93\x8c\x93\x8d\x93\x8e\x93\x90\x93\x91\x93\x92\x93\x93\x93\x94\x93\x95\x93\x96\x93\x97\x93\x98\x93\x99\x93\x9a\x93\x9b\x93\x9c\x93\x9d\x93\x9e\x93\x9f\x93\xa0\x93\xa1\x93\xa2\x93\xa3\x93\xa4\x93\xa5\x93\xa6\x93\xa7\x93\xa8\x93\xa9\x93\xaa\x93\xab\x93\xac\x93\xad\x93\xae\x93\xaf", /* c080 */ "\x00\x00\x93\xb0\x93\xb1\x93\xb2\x93\xb3\x93\xb4\x93\xb5\x93\xb6\x93\xb7\x93\xb8\x93\xb9\x93\xba\x93\xbb\x93\xbc\x93\xbd\x93\xbe\x93\xbf\x93\xc0\x93\xc1\x93\xc2\x93\xc3\x93\xc4\x93\xc5\x93\xc6\x93\xc7\x93\xc8\x93\xc9\x93\xcb\x93\xcc\x93\xcd\x93\xce\x93\xcf\x93\xd0\x93\xd1\x93\xd2\x93\xd3\x93\xd4\x93\xd5\x93\xd7\x93\xd8\x93\xd9\x93\xda\x93\xdb\x93\xdc\x93\xdd\x93\xde\x93\xdf\x93\xe0\x93\xe1\x93\xe2\x93\xe3\x93\xe4\x93\xe5\x93\xe6\x93\xe7\x93\xe8\x93\xe9\x93\xea\x93\xeb\x93\xec\x93\xed\x93\xee\x93\xef\x93\xf0\x93\xf1\x93\xf2\x93\xf3\x93\xf4\x93\xf5\x93\xf6\x93\xf7\x93\xf8\x93\xf9\x93\xfa\x93\xfb\x93\xfc\x93\xfd\x93\xfe\x93\xff\x94\x00\x94\x01\x94\x02\x94\x03\x94\x04\x94\x05\x94\x06\x94\x07\x94\x08\x94\x09\x94\x0a\x94\x0b\x94\x0c\x94\x0d\x94\x0e\x94\x0f\x94\x10\x94\x11\x94\x12\x94\x13\x94\x14\x94\x15\x94\x16\x94\x17\x94\x18\x94\x19\x94\x1a\x94\x1b\x94\x1c\x94\x1d\x94\x1e\x94\x1f\x94\x20\x94\x21\x94\x22\x94\x23\x94\x24\x94\x25\x94\x26\x94\x27\x94\x28\x94\x29\x94\x2a\x94\x2b\x94\x2c\x94\x2d\x94\x2e\x00\x00\x00\x00", /* c100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x2f\x94\x30\x94\x31\x94\x32\x94\x33\x94\x34\x94\x35\x94\x36\x94\x37\x94\x38\x94\x39\x94\x3a\x94\x3b\x94\x3c\x94\x3d\x94\x3f\x94\x40\x94\x41\x94\x42\x94\x43\x94\x44\x94\x45\x94\x46\x94\x47\x94\x48\x94\x49\x94\x4a\x94\x4b\x94\x4c\x94\x4d\x94\x4e\x94\x4f\x94\x50\x94\x51\x94\x52\x94\x53\x94\x54\x94\x55\x94\x56\x94\x57\x94\x58\x94\x59\x94\x5a\x94\x5b\x94\x5c\x94\x5d\x94\x5e\x94\x5f\x94\x60\x94\x61\x94\x62\x94\x63\x94\x64\x94\x65\x94\x66\x94\x67\x94\x68\x94\x69\x94\x6a\x94\x6c\x94\x6d\x94\x6e\x94\x6f", /* c180 */ "\x00\x00\x94\x70\x94\x71\x94\x72\x94\x73\x94\x74\x94\x75\x94\x76\x94\x77\x94\x78\x94\x79\x94\x7a\x94\x7b\x94\x7c\x94\x7d\x94\x7e\x94\x7f\x94\x80\x94\x81\x94\x82\x94\x83\x94\x84\x94\x91\x94\x96\x94\x98\x94\xc7\x94\xcf\x94\xd3\x94\xd4\x94\xda\x94\xe6\x94\xfb\x95\x1c\x95\x20\x95\x27\x95\x33\x95\x3d\x95\x43\x95\x48\x95\x4b\x95\x55\x95\x5a\x95\x60\x95\x6e\x95\x74\x95\x75\x95\x77\x95\x78\x95\x79\x95\x7a\x95\x7b\x95\x7c\x95\x7d\x95\x7e\x95\x80\x95\x81\x95\x82\x95\x83\x95\x84\x95\x85\x95\x86\x95\x87\x95\x88\x95\x89\x95\x8a\x95\x8b\x95\x8c\x95\x8d\x95\x8e\x95\x8f\x95\x90\x95\x91\x95\x92\x95\x93\x95\x94\x95\x95\x95\x96\x95\x97\x95\x98\x95\x99\x95\x9a\x95\x9b\x95\x9c\x95\x9d\x95\x9e\x95\x9f\x95\xa0\x95\xa1\x95\xa2\x95\xa3\x95\xa4\x95\xa5\x95\xa6\x95\xa7\x95\xa8\x95\xa9\x95\xaa\x95\xab\x95\xac\x95\xad\x95\xae\x95\xaf\x95\xb0\x95\xb1\x95\xb2\x95\xb3\x95\xb4\x95\xb5\x95\xb6\x95\xb7\x95\xb8\x95\xb9\x95\xba\x95\xbb\x95\xbc\x95\xbd\x95\xbe\x95\xbf\x95\xc0\x95\xc1\x95\xc2\x95\xc3\x95\xc4\x95\xc5\x95\xc6\x95\xc7\x00\x00\x00\x00", /* c200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\xc8\x95\xc9\x95\xca\x95\xcb\x95\xcc\x95\xcd\x95\xce\x95\xcf\x95\xd0\x95\xd1\x95\xd2\x95\xd3\x95\xd4\x95\xd5\x95\xd6\x95\xd7\x95\xd8\x95\xd9\x95\xda\x95\xdb\x95\xdc\x95\xdd\x95\xde\x95\xdf\x95\xe0\x95\xe1\x95\xe2\x95\xe3\x95\xe4\x95\xe5\x95\xe6\x95\xe7\x95\xec\x95\xff\x96\x07\x96\x13\x96\x18\x96\x1b\x96\x1e\x96\x20\x96\x23\x96\x24\x96\x25\x96\x26\x96\x27\x96\x28\x96\x29\x96\x2b\x96\x2c\x96\x2d\x96\x2f\x96\x30\x96\x37\x96\x38\x96\x39\x96\x3a\x96\x3e\x96\x41\x96\x43\x96\x4a\x96\x4e\x96\x4f\x96\x51", /* c280 */ "\x00\x00\x96\x52\x96\x53\x96\x56\x96\x57\x96\x58\x96\x59\x96\x5a\x96\x5c\x96\x5d\x96\x5e\x96\x60\x96\x63\x96\x65\x96\x66\x96\x6b\x96\x6d\x96\x6e\x96\x6f\x96\x70\x96\x71\x96\x73\x96\x78\x96\x79\x96\x7a\x96\x7b\x96\x7c\x96\x7d\x96\x7e\x96\x7f\x96\x80\x96\x81\x96\x82\x96\x83\x96\x84\x96\x87\x96\x89\x96\x8a\x96\x8c\x96\x8e\x96\x91\x96\x92\x96\x93\x96\x95\x96\x96\x96\x9a\x96\x9b\x96\x9d\x96\x9e\x96\x9f\x96\xa0\x96\xa1\x96\xa2\x96\xa3\x96\xa4\x96\xa5\x96\xa6\x96\xa8\x96\xa9\x96\xaa\x96\xab\x96\xac\x96\xad\x96\xae\x96\xaf\x96\xb1\x96\xb2\x96\xb4\x96\xb5\x96\xb7\x96\xb8\x96\xba\x96\xbb\x96\xbf\x96\xc2\x96\xc3\x96\xc8\x96\xca\x96\xcb\x96\xd0\x96\xd1\x96\xd3\x96\xd4\x96\xd6\x96\xd7\x96\xd8\x96\xd9\x96\xda\x96\xdb\x96\xdc\x96\xdd\x96\xde\x96\xdf\x96\xe1\x96\xe2\x96\xe3\x96\xe4\x96\xe5\x96\xe6\x96\xe7\x96\xeb\x96\xec\x96\xed\x96\xee\x96\xf0\x96\xf1\x96\xf2\x96\xf4\x96\xf5\x96\xf8\x96\xfa\x96\xfb\x96\xfc\x96\xfd\x96\xff\x97\x02\x97\x03\x97\x05\x97\x0a\x97\x0b\x97\x0c\x97\x10\x97\x11\x97\x12\x97\x14\x97\x15\x00\x00\x00\x00", /* c300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x17\x97\x18\x97\x19\x97\x1a\x97\x1b\x97\x1d\x97\x1f\x97\x20\x97\x21\x97\x22\x97\x23\x97\x24\x97\x25\x97\x26\x97\x27\x97\x28\x97\x29\x97\x2b\x97\x2c\x97\x2e\x97\x2f\x97\x31\x97\x33\x97\x34\x97\x35\x97\x36\x97\x37\x97\x3a\x97\x3b\x97\x3c\x97\x3d\x97\x3f\x97\x40\x97\x41\x97\x42\x97\x43\x97\x44\x97\x45\x97\x46\x97\x47\x97\x48\x97\x49\x97\x4a\x97\x4b\x97\x4c\x97\x4d\x97\x4e\x97\x4f\x97\x50\x97\x51\x97\x54\x97\x55\x97\x57\x97\x58\x97\x5a\x97\x5c\x97\x5d\x97\x5f\x97\x63\x97\x64\x97\x66\x97\x67\x97\x68", /* c380 */ "\x00\x00\x97\x6a\x97\x6b\x97\x6c\x97\x6d\x97\x6e\x97\x6f\x97\x70\x97\x71\x97\x72\x97\x75\x97\x77\x97\x78\x97\x79\x97\x7a\x97\x7b\x97\x7d\x97\x7e\x97\x7f\x97\x80\x97\x81\x97\x82\x97\x83\x97\x84\x97\x86\x97\x87\x97\x88\x97\x89\x97\x8a\x97\x8c\x97\x8e\x97\x8f\x97\x90\x97\x93\x97\x95\x97\x96\x97\x97\x97\x99\x97\x9a\x97\x9b\x97\x9c\x97\x9d\x97\x9e\x97\x9f\x97\xa1\x97\xa2\x97\xa4\x97\xa5\x97\xa6\x97\xa7\x97\xa8\x97\xa9\x97\xaa\x97\xac\x97\xae\x97\xb0\x97\xb1\x97\xb3\x97\xb5\x97\xb6\x97\xb7\x97\xb8\x97\xb9\x97\xba\x97\xbb\x97\xbc\x97\xbd\x97\xbe\x97\xbf\x97\xc0\x97\xc1\x97\xc2\x97\xc3\x97\xc4\x97\xc5\x97\xc6\x97\xc7\x97\xc8\x97\xc9\x97\xca\x97\xcb\x97\xcc\x97\xcd\x97\xce\x97\xcf\x97\xd0\x97\xd1\x97\xd2\x97\xd3\x97\xd4\x97\xd5\x97\xd6\x97\xd7\x97\xd8\x97\xd9\x97\xda\x97\xdb\x97\xdc\x97\xdd\x97\xde\x97\xdf\x97\xe0\x97\xe1\x97\xe2\x97\xe3\x97\xe4\x97\xe5\x97\xe8\x97\xee\x97\xef\x97\xf0\x97\xf1\x97\xf2\x97\xf4\x97\xf7\x97\xf8\x97\xf9\x97\xfa\x97\xfb\x97\xfc\x97\xfd\x97\xfe\x97\xff\x98\x00\x98\x01\x98\x02\x00\x00\x00\x00", /* c400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x03\x98\x04\x98\x05\x98\x06\x98\x07\x98\x08\x98\x09\x98\x0a\x98\x0b\x98\x0c\x98\x0d\x98\x0e\x98\x0f\x98\x10\x98\x11\x98\x12\x98\x13\x98\x14\x98\x15\x98\x16\x98\x17\x98\x18\x98\x19\x98\x1a\x98\x1b\x98\x1c\x98\x1d\x98\x1e\x98\x1f\x98\x20\x98\x21\x98\x22\x98\x23\x98\x24\x98\x25\x98\x26\x98\x27\x98\x28\x98\x29\x98\x2a\x98\x2b\x98\x2c\x98\x2d\x98\x2e\x98\x2f\x98\x30\x98\x31\x98\x32\x98\x33\x98\x34\x98\x35\x98\x36\x98\x37\x98\x38\x98\x39\x98\x3a\x98\x3b\x98\x3c\x98\x3d\x98\x3e\x98\x3f\x98\x40\x98\x41", /* c480 */ "\x00\x00\x98\x42\x98\x43\x98\x44\x98\x45\x98\x46\x98\x47\x98\x48\x98\x49\x98\x4a\x98\x4b\x98\x4c\x98\x4d\x98\x4e\x98\x4f\x98\x50\x98\x51\x98\x52\x98\x53\x98\x54\x98\x55\x98\x56\x98\x57\x98\x58\x98\x59\x98\x5a\x98\x5b\x98\x5c\x98\x5d\x98\x5e\x98\x5f\x98\x60\x98\x61\x98\x62\x98\x63\x98\x64\x98\x65\x98\x66\x98\x67\x98\x68\x98\x69\x98\x6a\x98\x6b\x98\x6c\x98\x6d\x98\x6e\x98\x6f\x98\x70\x98\x71\x98\x72\x98\x73\x98\x74\x98\x8b\x98\x8e\x98\x92\x98\x95\x98\x99\x98\xa3\x98\xa8\x98\xa9\x98\xaa\x98\xab\x98\xac\x98\xad\x98\xae\x98\xaf\x98\xb0\x98\xb1\x98\xb2\x98\xb3\x98\xb4\x98\xb5\x98\xb6\x98\xb7\x98\xb8\x98\xb9\x98\xba\x98\xbb\x98\xbc\x98\xbd\x98\xbe\x98\xbf\x98\xc0\x98\xc1\x98\xc2\x98\xc3\x98\xc4\x98\xc5\x98\xc6\x98\xc7\x98\xc8\x98\xc9\x98\xca\x98\xcb\x98\xcc\x98\xcd\x98\xcf\x98\xd0\x98\xd4\x98\xd6\x98\xd7\x98\xdb\x98\xdc\x98\xdd\x98\xe0\x98\xe1\x98\xe2\x98\xe3\x98\xe4\x98\xe5\x98\xe6\x98\xe9\x98\xea\x98\xeb\x98\xec\x98\xed\x98\xee\x98\xef\x98\xf0\x98\xf1\x98\xf2\x98\xf3\x98\xf4\x98\xf5\x98\xf6\x98\xf7\x00\x00\x00\x00", /* c500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\xf8\x98\xf9\x98\xfa\x98\xfb\x98\xfc\x98\xfd\x98\xfe\x98\xff\x99\x00\x99\x01\x99\x02\x99\x03\x99\x04\x99\x05\x99\x06\x99\x07\x99\x08\x99\x09\x99\x0a\x99\x0b\x99\x0c\x99\x0e\x99\x0f\x99\x11\x99\x12\x99\x13\x99\x14\x99\x15\x99\x16\x99\x17\x99\x18\x99\x19\x99\x1a\x99\x1b\x99\x1c\x99\x1d\x99\x1e\x99\x1f\x99\x20\x99\x21\x99\x22\x99\x23\x99\x24\x99\x25\x99\x26\x99\x27\x99\x28\x99\x29\x99\x2a\x99\x2b\x99\x2c\x99\x2d\x99\x2f\x99\x30\x99\x31\x99\x32\x99\x33\x99\x34\x99\x35\x99\x36\x99\x37\x99\x38\x99\x39", /* c580 */ "\x00\x00\x99\x3a\x99\x3b\x99\x3c\x99\x3d\x99\x3e\x99\x3f\x99\x40\x99\x41\x99\x42\x99\x43\x99\x44\x99\x45\x99\x46\x99\x47\x99\x48\x99\x49\x99\x4a\x99\x4b\x99\x4c\x99\x4d\x99\x4e\x99\x4f\x99\x50\x99\x51\x99\x52\x99\x53\x99\x56\x99\x57\x99\x58\x99\x59\x99\x5a\x99\x5b\x99\x5c\x99\x5d\x99\x5e\x99\x5f\x99\x60\x99\x61\x99\x62\x99\x64\x99\x66\x99\x73\x99\x78\x99\x79\x99\x7b\x99\x7e\x99\x82\x99\x83\x99\x89\x99\x8c\x99\x8e\x99\x9a\x99\x9b\x99\x9c\x99\x9d\x99\x9e\x99\x9f\x99\xa0\x99\xa1\x99\xa2\x99\xa3\x99\xa4\x99\xa6\x99\xa7\x99\xa9\x99\xaa\x99\xab\x99\xac\x99\xad\x99\xae\x99\xaf\x99\xb0\x99\xb1\x99\xb2\x99\xb3\x99\xb4\x99\xb5\x99\xb6\x99\xb7\x99\xb8\x99\xb9\x99\xba\x99\xbb\x99\xbc\x99\xbd\x99\xbe\x99\xbf\x99\xc0\x99\xc1\x99\xc2\x99\xc3\x99\xc4\x99\xc5\x99\xc6\x99\xc7\x99\xc8\x99\xc9\x99\xca\x99\xcb\x99\xcc\x99\xcd\x99\xce\x99\xcf\x99\xd0\x99\xd1\x99\xd2\x99\xd3\x99\xd4\x99\xd5\x99\xd6\x99\xd7\x99\xd8\x99\xd9\x99\xda\x99\xdb\x99\xdc\x99\xdd\x99\xde\x99\xdf\x99\xe0\x99\xe1\x99\xe2\x99\xe3\x99\xe4\x99\xe5\x00\x00\x00\x00", /* c600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xe6\x99\xe7\x99\xe8\x99\xe9\x99\xea\x99\xeb\x99\xec\x99\xed\x99\xee\x99\xef\x99\xf0\x99\xf1\x99\xf2\x99\xf3\x99\xf4\x99\xf5\x99\xf6\x99\xf7\x99\xf8\x99\xf9\x99\xfa\x99\xfb\x99\xfc\x99\xfd\x99\xfe\x99\xff\x9a\x00\x9a\x01\x9a\x02\x9a\x03\x9a\x04\x9a\x05\x9a\x06\x9a\x07\x9a\x08\x9a\x09\x9a\x0a\x9a\x0b\x9a\x0c\x9a\x0d\x9a\x0e\x9a\x0f\x9a\x10\x9a\x11\x9a\x12\x9a\x13\x9a\x14\x9a\x15\x9a\x16\x9a\x17\x9a\x18\x9a\x19\x9a\x1a\x9a\x1b\x9a\x1c\x9a\x1d\x9a\x1e\x9a\x1f\x9a\x20\x9a\x21\x9a\x22\x9a\x23\x9a\x24", /* c680 */ "\x00\x00\x9a\x25\x9a\x26\x9a\x27\x9a\x28\x9a\x29\x9a\x2a\x9a\x2b\x9a\x2c\x9a\x2d\x9a\x2e\x9a\x2f\x9a\x30\x9a\x31\x9a\x32\x9a\x33\x9a\x34\x9a\x35\x9a\x36\x9a\x37\x9a\x38\x9a\x39\x9a\x3a\x9a\x3b\x9a\x3c\x9a\x3d\x9a\x3e\x9a\x3f\x9a\x40\x9a\x41\x9a\x42\x9a\x43\x9a\x44\x9a\x45\x9a\x46\x9a\x47\x9a\x48\x9a\x49\x9a\x4a\x9a\x4b\x9a\x4c\x9a\x4d\x9a\x4e\x9a\x4f\x9a\x50\x9a\x51\x9a\x52\x9a\x53\x9a\x54\x9a\x55\x9a\x56\x9a\x57\x9a\x58\x9a\x59\x9a\x5a\x9a\x5b\x9a\x5c\x9a\x5d\x9a\x5e\x9a\x5f\x9a\x60\x9a\x61\x9a\x62\x9a\x63\x9a\x64\x9a\x65\x9a\x66\x9a\x67\x9a\x68\x9a\x69\x9a\x6a\x9a\x6b\x9a\x72\x9a\x83\x9a\x89\x9a\x8d\x9a\x8e\x9a\x94\x9a\x95\x9a\x99\x9a\xa6\x9a\xa9\x9a\xaa\x9a\xab\x9a\xac\x9a\xad\x9a\xae\x9a\xaf\x9a\xb2\x9a\xb3\x9a\xb4\x9a\xb5\x9a\xb9\x9a\xbb\x9a\xbd\x9a\xbe\x9a\xbf\x9a\xc3\x9a\xc4\x9a\xc6\x9a\xc7\x9a\xc8\x9a\xc9\x9a\xca\x9a\xcd\x9a\xce\x9a\xcf\x9a\xd0\x9a\xd2\x9a\xd4\x9a\xd5\x9a\xd6\x9a\xd7\x9a\xd9\x9a\xda\x9a\xdb\x9a\xdc\x9a\xdd\x9a\xde\x9a\xe0\x9a\xe2\x9a\xe3\x9a\xe4\x9a\xe5\x9a\xe7\x9a\xe8\x00\x00\x00\x00", /* c700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xe9\x9a\xea\x9a\xec\x9a\xee\x9a\xf0\x9a\xf1\x9a\xf2\x9a\xf3\x9a\xf4\x9a\xf5\x9a\xf6\x9a\xf7\x9a\xf8\x9a\xfa\x9a\xfc\x9a\xfd\x9a\xfe\x9a\xff\x9b\x00\x9b\x01\x9b\x02\x9b\x04\x9b\x05\x9b\x06\x9b\x07\x9b\x09\x9b\x0a\x9b\x0b\x9b\x0c\x9b\x0d\x9b\x0e\x9b\x10\x9b\x11\x9b\x12\x9b\x14\x9b\x15\x9b\x16\x9b\x17\x9b\x18\x9b\x19\x9b\x1a\x9b\x1b\x9b\x1c\x9b\x1d\x9b\x1e\x9b\x20\x9b\x21\x9b\x22\x9b\x24\x9b\x25\x9b\x26\x9b\x27\x9b\x28\x9b\x29\x9b\x2a\x9b\x2b\x9b\x2c\x9b\x2d\x9b\x2e\x9b\x30\x9b\x31\x9b\x33\x9b\x34", /* c780 */ "\x00\x00\x9b\x35\x9b\x36\x9b\x37\x9b\x38\x9b\x39\x9b\x3a\x9b\x3d\x9b\x3e\x9b\x3f\x9b\x40\x9b\x46\x9b\x4a\x9b\x4b\x9b\x4c\x9b\x4e\x9b\x50\x9b\x52\x9b\x53\x9b\x55\x9b\x56\x9b\x57\x9b\x58\x9b\x59\x9b\x5a\x9b\x5b\x9b\x5c\x9b\x5d\x9b\x5e\x9b\x5f\x9b\x60\x9b\x61\x9b\x62\x9b\x63\x9b\x64\x9b\x65\x9b\x66\x9b\x67\x9b\x68\x9b\x69\x9b\x6a\x9b\x6b\x9b\x6c\x9b\x6d\x9b\x6e\x9b\x6f\x9b\x70\x9b\x71\x9b\x72\x9b\x73\x9b\x74\x9b\x75\x9b\x76\x9b\x77\x9b\x78\x9b\x79\x9b\x7a\x9b\x7b\x9b\x7c\x9b\x7d\x9b\x7e\x9b\x7f\x9b\x80\x9b\x81\x9b\x82\x9b\x83\x9b\x84\x9b\x85\x9b\x86\x9b\x87\x9b\x88\x9b\x89\x9b\x8a\x9b\x8b\x9b\x8c\x9b\x8d\x9b\x8e\x9b\x8f\x9b\x90\x9b\x91\x9b\x92\x9b\x93\x9b\x94\x9b\x95\x9b\x96\x9b\x97\x9b\x98\x9b\x99\x9b\x9a\x9b\x9b\x9b\x9c\x9b\x9d\x9b\x9e\x9b\x9f\x9b\xa0\x9b\xa1\x9b\xa2\x9b\xa3\x9b\xa4\x9b\xa5\x9b\xa6\x9b\xa7\x9b\xa8\x9b\xa9\x9b\xaa\x9b\xab\x9b\xac\x9b\xad\x9b\xae\x9b\xaf\x9b\xb0\x9b\xb1\x9b\xb2\x9b\xb3\x9b\xb4\x9b\xb5\x9b\xb6\x9b\xb7\x9b\xb8\x9b\xb9\x9b\xba\x9b\xbb\x9b\xbc\x9b\xbd\x9b\xbe\x9b\xbf\x00\x00\x00\x00", /* c800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xc0\x9b\xc1\x9b\xc2\x9b\xc3\x9b\xc4\x9b\xc5\x9b\xc6\x9b\xc7\x9b\xc8\x9b\xc9\x9b\xca\x9b\xcb\x9b\xcc\x9b\xcd\x9b\xce\x9b\xcf\x9b\xd0\x9b\xd1\x9b\xd2\x9b\xd3\x9b\xd4\x9b\xd5\x9b\xd6\x9b\xd7\x9b\xd8\x9b\xd9\x9b\xda\x9b\xdb\x9b\xdc\x9b\xdd\x9b\xde\x9b\xdf\x9b\xe0\x9b\xe1\x9b\xe2\x9b\xe3\x9b\xe4\x9b\xe5\x9b\xe6\x9b\xe7\x9b\xe8\x9b\xe9\x9b\xea\x9b\xeb\x9b\xec\x9b\xed\x9b\xee\x9b\xef\x9b\xf0\x9b\xf1\x9b\xf2\x9b\xf3\x9b\xf4\x9b\xf5\x9b\xf6\x9b\xf7\x9b\xf8\x9b\xf9\x9b\xfa\x9b\xfb\x9b\xfc\x9b\xfd\x9b\xfe", /* c880 */ "\x00\x00\x9b\xff\x9c\x00\x9c\x01\x9c\x02\x9c\x03\x9c\x04\x9c\x05\x9c\x06\x9c\x07\x9c\x08\x9c\x09\x9c\x0a\x9c\x0b\x9c\x0c\x9c\x0d\x9c\x0e\x9c\x0f\x9c\x10\x9c\x11\x9c\x12\x9c\x13\x9c\x14\x9c\x15\x9c\x16\x9c\x17\x9c\x18\x9c\x19\x9c\x1a\x9c\x1b\x9c\x1c\x9c\x1d\x9c\x1e\x9c\x1f\x9c\x20\x9c\x21\x9c\x22\x9c\x23\x9c\x24\x9c\x25\x9c\x26\x9c\x27\x9c\x28\x9c\x29\x9c\x2a\x9c\x2b\x9c\x2c\x9c\x2d\x9c\x2e\x9c\x2f\x9c\x30\x9c\x31\x9c\x32\x9c\x33\x9c\x34\x9c\x35\x9c\x36\x9c\x37\x9c\x38\x9c\x39\x9c\x3a\x9c\x3b\x9c\x3c\x9c\x3d\x9c\x3e\x9c\x3f\x9c\x40\x9c\x41\x9c\x42\x9c\x43\x9c\x44\x9c\x45\x9c\x46\x9c\x47\x9c\x48\x9c\x49\x9c\x4a\x9c\x4b\x9c\x4c\x9c\x4d\x9c\x4e\x9c\x4f\x9c\x50\x9c\x51\x9c\x52\x9c\x53\x9c\x54\x9c\x55\x9c\x56\x9c\x57\x9c\x58\x9c\x59\x9c\x5a\x9c\x5b\x9c\x5c\x9c\x5d\x9c\x5e\x9c\x5f\x9c\x60\x9c\x61\x9c\x62\x9c\x63\x9c\x64\x9c\x65\x9c\x66\x9c\x67\x9c\x68\x9c\x69\x9c\x6a\x9c\x6b\x9c\x6c\x9c\x6d\x9c\x6e\x9c\x6f\x9c\x70\x9c\x71\x9c\x72\x9c\x73\x9c\x74\x9c\x75\x9c\x76\x9c\x77\x9c\x78\x9c\x79\x9c\x7a\x9c\x7b\x00\x00\x00\x00", /* c900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x7d\x9c\x7e\x9c\x80\x9c\x83\x9c\x84\x9c\x89\x9c\x8a\x9c\x8c\x9c\x8f\x9c\x93\x9c\x96\x9c\x97\x9c\x98\x9c\x99\x9c\x9d\x9c\xaa\x9c\xac\x9c\xaf\x9c\xb9\x9c\xbe\x9c\xbf\x9c\xc0\x9c\xc1\x9c\xc2\x9c\xc8\x9c\xc9\x9c\xd1\x9c\xd2\x9c\xda\x9c\xdb\x9c\xe0\x9c\xe1\x9c\xe3\x9c\xe4\x9c\xe5\x9c\xe6\x9c\xe7\x9c\xe8\x9c\xe9\x9c\xea\x9c\xeb\x9c\xec\x9c\xed\x9c\xee\x9c\xef\x9c\xf0\x9c\xf1\x9c\xf2\x9c\xf3\x9c\xf4\x9c\xf5\x9c\xf6\x9c\xf7\x9c\xf8\x9c\xf9\x9c\xfa\x9c\xfb\x9c\xfc\x9c\xfd\x9c\xfe\x9c\xff\x9d\x00\x9d\x01", /* c980 */ "\x00\x00\x9d\x02\x9d\x03\x9d\x04\x9d\x05\x9d\x06\x9d\x07\x9d\x08\x9d\x09\x9d\x0a\x9d\x0b\x9d\x0c\x9d\x0d\x9d\x0e\x9d\x0f\x9d\x10\x9d\x11\x9d\x12\x9d\x13\x9d\x14\x9d\x15\x9d\x16\x9d\x17\x9d\x18\x9d\x19\x9d\x1a\x9d\x1b\x9d\x1c\x9d\x1d\x9d\x1e\x9d\x1f\x9d\x20\x9d\x21\x9d\x22\x9d\x23\x9d\x24\x9d\x25\x9d\x26\x9d\x27\x9d\x28\x9d\x29\x9d\x2a\x9d\x2b\x9d\x2c\x9d\x2d\x9d\x2e\x9d\x2f\x9d\x30\x9d\x31\x9d\x32\x9d\x33\x9d\x34\x9d\x35\x9d\x36\x9d\x37\x9d\x38\x9d\x39\x9d\x3a\x9d\x3b\x9d\x3c\x9d\x3d\x9d\x3e\x9d\x3f\x9d\x40\x9d\x41\x9d\x42\x9d\x43\x9d\x44\x9d\x45\x9d\x46\x9d\x47\x9d\x48\x9d\x49\x9d\x4a\x9d\x4b\x9d\x4c\x9d\x4d\x9d\x4e\x9d\x4f\x9d\x50\x9d\x51\x9d\x52\x9d\x53\x9d\x54\x9d\x55\x9d\x56\x9d\x57\x9d\x58\x9d\x59\x9d\x5a\x9d\x5b\x9d\x5c\x9d\x5d\x9d\x5e\x9d\x5f\x9d\x60\x9d\x61\x9d\x62\x9d\x63\x9d\x64\x9d\x65\x9d\x66\x9d\x67\x9d\x68\x9d\x69\x9d\x6a\x9d\x6b\x9d\x6c\x9d\x6d\x9d\x6e\x9d\x6f\x9d\x70\x9d\x71\x9d\x72\x9d\x73\x9d\x74\x9d\x75\x9d\x76\x9d\x77\x9d\x78\x9d\x79\x9d\x7a\x9d\x7b\x9d\x7c\x9d\x7d\x9d\x7e\x00\x00\x00\x00", /* ca00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x7f\x9d\x80\x9d\x81\x9d\x82\x9d\x83\x9d\x84\x9d\x85\x9d\x86\x9d\x87\x9d\x88\x9d\x89\x9d\x8a\x9d\x8b\x9d\x8c\x9d\x8d\x9d\x8e\x9d\x8f\x9d\x90\x9d\x91\x9d\x92\x9d\x93\x9d\x94\x9d\x95\x9d\x96\x9d\x97\x9d\x98\x9d\x99\x9d\x9a\x9d\x9b\x9d\x9c\x9d\x9d\x9d\x9e\x9d\x9f\x9d\xa0\x9d\xa1\x9d\xa2\x9d\xa3\x9d\xa4\x9d\xa5\x9d\xa6\x9d\xa7\x9d\xa8\x9d\xa9\x9d\xaa\x9d\xab\x9d\xac\x9d\xad\x9d\xae\x9d\xaf\x9d\xb0\x9d\xb1\x9d\xb2\x9d\xb3\x9d\xb4\x9d\xb5\x9d\xb6\x9d\xb7\x9d\xb8\x9d\xb9\x9d\xba\x9d\xbb\x9d\xbc\x9d\xbd", /* ca80 */ "\x00\x00\x9d\xbe\x9d\xbf\x9d\xc0\x9d\xc1\x9d\xc2\x9d\xc3\x9d\xc4\x9d\xc5\x9d\xc6\x9d\xc7\x9d\xc8\x9d\xc9\x9d\xca\x9d\xcb\x9d\xcc\x9d\xcd\x9d\xce\x9d\xcf\x9d\xd0\x9d\xd1\x9d\xd2\x9d\xd3\x9d\xd4\x9d\xd5\x9d\xd6\x9d\xd7\x9d\xd8\x9d\xd9\x9d\xda\x9d\xdb\x9d\xdc\x9d\xdd\x9d\xde\x9d\xdf\x9d\xe0\x9d\xe1\x9d\xe2\x9d\xe3\x9d\xe4\x9d\xe5\x9d\xe6\x9d\xe7\x9d\xe8\x9d\xe9\x9d\xea\x9d\xeb\x9d\xec\x9d\xed\x9d\xee\x9d\xef\x9d\xf0\x9d\xf1\x9d\xf2\x9d\xf3\x9d\xf4\x9d\xf5\x9d\xf6\x9d\xf7\x9d\xf8\x9d\xf9\x9d\xfa\x9d\xfb\x9d\xfc\x9d\xfd\x9d\xfe\x9d\xff\x9e\x00\x9e\x01\x9e\x02\x9e\x03\x9e\x04\x9e\x05\x9e\x06\x9e\x07\x9e\x08\x9e\x09\x9e\x0a\x9e\x0b\x9e\x0c\x9e\x0d\x9e\x0e\x9e\x0f\x9e\x10\x9e\x11\x9e\x12\x9e\x13\x9e\x14\x9e\x15\x9e\x16\x9e\x17\x9e\x18\x9e\x19\x9e\x1a\x9e\x1b\x9e\x1c\x9e\x1d\x9e\x1e\x9e\x24\x9e\x27\x9e\x2e\x9e\x30\x9e\x34\x9e\x3b\x9e\x3c\x9e\x40\x9e\x4d\x9e\x50\x9e\x52\x9e\x53\x9e\x54\x9e\x56\x9e\x59\x9e\x5d\x9e\x5f\x9e\x60\x9e\x61\x9e\x62\x9e\x65\x9e\x6e\x9e\x6f\x9e\x72\x9e\x74\x9e\x75\x9e\x76\x9e\x77\x00\x00\x00\x00", /* cb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x78\x9e\x79\x9e\x7a\x9e\x7b\x9e\x7c\x9e\x7d\x9e\x80\x9e\x81\x9e\x83\x9e\x84\x9e\x85\x9e\x86\x9e\x89\x9e\x8a\x9e\x8c\x9e\x8d\x9e\x8e\x9e\x8f\x9e\x90\x9e\x91\x9e\x94\x9e\x95\x9e\x96\x9e\x97\x9e\x98\x9e\x99\x9e\x9a\x9e\x9b\x9e\x9c\x9e\x9e\x9e\xa0\x9e\xa1\x9e\xa2\x9e\xa3\x9e\xa4\x9e\xa5\x9e\xa7\x9e\xa8\x9e\xa9\x9e\xaa\x9e\xab\x9e\xac\x9e\xad\x9e\xae\x9e\xaf\x9e\xb0\x9e\xb1\x9e\xb2\x9e\xb3\x9e\xb5\x9e\xb6\x9e\xb7\x9e\xb9\x9e\xba\x9e\xbc\x9e\xbf\x9e\xc0\x9e\xc1\x9e\xc2\x9e\xc3\x9e\xc5\x9e\xc6\x9e\xc7", /* cb80 */ "\x00\x00\x9e\xc8\x9e\xca\x9e\xcb\x9e\xcc\x9e\xd0\x9e\xd2\x9e\xd3\x9e\xd5\x9e\xd6\x9e\xd7\x9e\xd9\x9e\xda\x9e\xde\x9e\xe1\x9e\xe3\x9e\xe4\x9e\xe6\x9e\xe8\x9e\xeb\x9e\xec\x9e\xed\x9e\xee\x9e\xf0\x9e\xf1\x9e\xf2\x9e\xf3\x9e\xf4\x9e\xf5\x9e\xf6\x9e\xf7\x9e\xf8\x9e\xfa\x9e\xfd\x9e\xff\x9f\x00\x9f\x01\x9f\x02\x9f\x03\x9f\x04\x9f\x05\x9f\x06\x9f\x07\x9f\x08\x9f\x09\x9f\x0a\x9f\x0c\x9f\x0f\x9f\x11\x9f\x12\x9f\x14\x9f\x15\x9f\x16\x9f\x18\x9f\x1a\x9f\x1b\x9f\x1c\x9f\x1d\x9f\x1e\x9f\x1f\x9f\x21\x9f\x23\x9f\x24\x9f\x25\x9f\x26\x9f\x27\x9f\x28\x9f\x29\x9f\x2a\x9f\x2b\x9f\x2d\x9f\x2e\x9f\x30\x9f\x31\x9f\x32\x9f\x33\x9f\x34\x9f\x35\x9f\x36\x9f\x38\x9f\x3a\x9f\x3c\x9f\x3f\x9f\x40\x9f\x41\x9f\x42\x9f\x43\x9f\x45\x9f\x46\x9f\x47\x9f\x48\x9f\x49\x9f\x4a\x9f\x4b\x9f\x4c\x9f\x4d\x9f\x4e\x9f\x4f\x9f\x52\x9f\x53\x9f\x54\x9f\x55\x9f\x56\x9f\x57\x9f\x58\x9f\x59\x9f\x5a\x9f\x5b\x9f\x5c\x9f\x5d\x9f\x5e\x9f\x5f\x9f\x60\x9f\x61\x9f\x62\x9f\x63\x9f\x64\x9f\x65\x9f\x66\x9f\x67\x9f\x68\x9f\x69\x9f\x6a\x9f\x6b\x9f\x6c\x9f\x6d\x00\x00\x00\x00", /* cc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x6e\x9f\x6f\x9f\x70\x9f\x71\x9f\x72\x9f\x73\x9f\x74\x9f\x75\x9f\x76\x9f\x77\x9f\x78\x9f\x79\x9f\x7a\x9f\x7b\x9f\x7c\x9f\x7d\x9f\x7e\x9f\x81\x9f\x82\x9f\x8d\x9f\x8e\x9f\x8f\x9f\x90\x9f\x91\x9f\x92\x9f\x93\x9f\x94\x9f\x95\x9f\x96\x9f\x97\x9f\x98\x9f\x9c\x9f\x9d\x9f\x9e\x9f\xa1\x9f\xa2\x9f\xa3\x9f\xa4\x9f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* cc80 */ NULL, /* cd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xca\x02\xcb\x02\xd9\x20\x13\x20\x14\x20\x35\x21\x05\x21\x09\x21\x96\x21\x97\x21\x98\x21\x99\x22\x15\x22\x1f\x22\x23\x22\x52\x22\x66\x22\x67\x22\xbf\x25\x50\x25\x51\x25\x52\x25\x53\x25\x54\x25\x55\x25\x56\x25\x57\x25\x58\x25\x59\x25\x5a\x25\x5b\x25\x5c\x25\x5d\x25\x5e\x25\x5f\x25\x60\x25\x61\x25\x62\x25\x63\x25\x64\x25\x65\x25\x66\x25\x67\x25\x68\x25\x69\x25\x6a\x25\x6b\x25\x6c\x25\x6d\x25\x6e\x25\x6f\x25\x70\x25\x71\x25\x72\x25\x73\x25\x81\x25\x82\x25\x83\x25\x84\x25\x85\x25\x86\x25\x87\x25\x88", /* cd80 */ "\x00\x00\x25\x89\x25\x8a\x25\x8b\x25\x8c\x25\x8d\x25\x8e\x25\x8f\x25\x93\x25\x94\x25\x95\x25\xe2\x25\xe3\x25\xe4\x25\xe5\x26\x09\x22\x95\x30\x1d\x30\x1e\x30\x21\x30\x22\x30\x23\x30\x24\x30\x25\x30\x26\x30\x27\x30\x28\x30\x29\x32\xa3\x33\x8e\x33\x8f\x33\x9c\x33\x9d\x33\x9e\x33\xa1\x33\xc4\x33\xce\x33\xd1\x33\xd2\x33\xd5\xfe\x30\xfe\x49\xfe\x4a\xfe\x4b\xfe\x4c\xfe\x4d\xfe\x4e\xfe\x4f\xfe\x50\xfe\x51\xfe\x52\xfe\x54\xfe\x55\xfe\x56\xfe\x57\xfe\x59\xfe\x5a\xfe\x5b\xfe\x5c\xfe\x5d\xfe\x5e\xfe\x5f\xfe\x60\xfe\x61\xfe\x62\xfe\x63\xfe\x64\xfe\x65\xfe\x66\xfe\x68\xfe\x69\xfe\x6a\xfe\x6b\x30\x3e\x2f\xf0\x2f\xf1\x2f\xf2\x2f\xf3\x2f\xf4\x2f\xf5\x2f\xf6\x2f\xf7\x2f\xf8\x2f\xf9\x2f\xfa\x2f\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ce00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x2c\xf9\x79\xf9\x95\xf9\xe7\xf9\xf1\xfa\x0c\xfa\x0d\xfa\x0e\xfa\x0f\xfa\x11\xfa\x13\xfa\x14\xfa\x18\xfa\x1f\xfa\x20\xfa\x21\xfa\x23\xfa\x24\xfa\x27\xfa\x28\xfa\x29\x2e\x81\xe8\x16\xe8\x17\xe8\x18\x2e\x84\x34\x73\x34\x47\x2e\x88\x2e\x8b\xe8\x1e\x35\x9e\x36\x1a\x36\x0e\x2e\x8c\x2e\x97\x39\x6e\x39\x18\xe8\x26\x39\xcf\x39\xdf\x3a\x73\x39\xd0\xe8\x2b\xe8\x2c\x3b\x4e\x3c\x6e\x3c\xe0\x2e\xa7\xe8\x31\xe8\x32\x2e\xaa\x40\x56\x41\x5f\x2e\xae\x43\x37\x2e\xb3\x2e\xb6\x2e\xb7\xe8\x3b\x43\xb1\x43\xac\x2e\xbb", /* ce80 */ "\x00\x00\x43\xdd\x44\xd6\x46\x61\x46\x4c\xe8\x43\x47\x23\x47\x29\x47\x7c\x47\x8d\x2e\xca\x49\x47\x49\x7a\x49\x7d\x49\x82\x49\x83\x49\x85\x49\x86\x49\x9f\x49\x9b\x49\xb7\x49\xb6\xe8\x54\xe8\x55\x4c\xa3\x4c\x9f\x4c\xa0\x4c\xa1\x4c\x77\x4c\xa2\x4d\x13\x4d\x14\x4d\x15\x4d\x16\x4d\x17\x4d\x18\x4d\x19\x4d\xae\xe8\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* cf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x34\x01\x34\x02\x34\x03\x34\x04\x34\x05\x34\x06\x34\x07\x34\x08\x34\x09\x34\x0a\x34\x0b\x34\x0c\x34\x0d\x34\x0e\x34\x0f\x34\x10\x34\x11\x34\x12\x34\x13\x34\x14\x34\x15\x34\x16\x34\x17\x34\x18\x34\x19\x34\x1a\x34\x1b\x34\x1c\x34\x1d\x34\x1e\x34\x1f\x34\x20\x34\x21\x34\x22\x34\x23\x34\x24\x34\x25\x34\x26\x34\x27\x34\x28\x34\x29\x34\x2a\x34\x2b\x34\x2c\x34\x2d\x34\x2e\x34\x2f\x34\x30\x34\x31\x34\x32\x34\x33\x34\x34\x34\x35\x34\x36\x34\x37\x34\x38\x34\x39\x34\x3a\x34\x3b\x34\x3c\x34\x3d\x34\x3e", /* cf80 */ "\x34\x3f\x34\x40\x34\x41\x34\x42\x34\x43\x34\x44\x34\x45\x34\x46\x34\x48\x34\x49\x34\x4a\x34\x4b\x34\x4c\x34\x4d\x34\x4e\x34\x4f\x34\x50\x34\x51\x34\x52\x34\x53\x34\x54\x34\x55\x34\x56\x34\x57\x34\x58\x34\x59\x34\x5a\x34\x5b\x34\x5c\x34\x5d\x34\x5e\x34\x5f\x34\x60\x34\x61\x34\x62\x34\x63\x34\x64\x34\x65\x34\x66\x34\x67\x34\x68\x34\x69\x34\x6a\x34\x6b\x34\x6c\x34\x6d\x34\x6e\x34\x6f\x34\x70\x34\x71\x34\x72\x34\x74\x34\x75\x34\x76\x34\x77\x34\x78\x34\x79\x34\x7a\x34\x7b\x34\x7c\x34\x7d\x34\x7e\x34\x7f\x34\x80\x34\x81\x34\x82\x34\x83\x34\x84\x34\x85\x34\x86\x34\x87\x34\x88\x34\x89\x34\x8a\x34\x8b\x34\x8c\x34\x8d\x34\x8e\x34\x8f\x34\x90\x34\x91\x34\x92\x34\x93\x34\x94\x34\x95\x34\x96\x34\x97\x34\x98\x34\x99\x34\x9a\x34\x9b\x34\x9c\x34\x9d\x34\x9e\x34\x9f\x34\xa0\x34\xa1\x34\xa2\x34\xa3\x34\xa4\x34\xa5\x34\xa6\x34\xa7\x34\xa8\x34\xa9\x34\xaa\x34\xab\x34\xac\x34\xad\x34\xae\x34\xaf\x34\xb0\x34\xb1\x34\xb2\x34\xb3\x34\xb4\x34\xb5\x34\xb6\x34\xb7\x34\xb8\x34\xb9\x34\xba\x34\xbb\x34\xbc\x34\xbd\x34\xbe\x34\xbf\x00\x00", /* d000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\xc0\x34\xc1\x34\xc2\x34\xc3\x34\xc4\x34\xc5\x34\xc6\x34\xc7\x34\xc8\x34\xc9\x34\xca\x34\xcb\x34\xcc\x34\xcd\x34\xce\x34\xcf\x34\xd0\x34\xd1\x34\xd2\x34\xd3\x34\xd4\x34\xd5\x34\xd6\x34\xd7\x34\xd8\x34\xd9\x34\xda\x34\xdb\x34\xdc\x34\xdd\x34\xde\x34\xdf\x34\xe0\x34\xe1\x34\xe2\x34\xe3\x34\xe4\x34\xe5\x34\xe6\x34\xe7\x34\xe8\x34\xe9\x34\xea\x34\xeb\x34\xec\x34\xed\x34\xee\x34\xef\x34\xf0\x34\xf1\x34\xf2\x34\xf3\x34\xf4\x34\xf5\x34\xf6\x34\xf7\x34\xf8\x34\xf9\x34\xfa\x34\xfb\x34\xfc\x34\xfd\x34\xfe", /* d080 */ "\x34\xff\x35\x00\x35\x01\x35\x02\x35\x03\x35\x04\x35\x05\x35\x06\x35\x07\x35\x08\x35\x09\x35\x0a\x35\x0b\x35\x0c\x35\x0d\x35\x0e\x35\x0f\x35\x10\x35\x11\x35\x12\x35\x13\x35\x14\x35\x15\x35\x16\x35\x17\x35\x18\x35\x19\x35\x1a\x35\x1b\x35\x1c\x35\x1d\x35\x1e\x35\x1f\x35\x20\x35\x21\x35\x22\x35\x23\x35\x24\x35\x25\x35\x26\x35\x27\x35\x28\x35\x29\x35\x2a\x35\x2b\x35\x2c\x35\x2d\x35\x2e\x35\x2f\x35\x30\x35\x31\x35\x32\x35\x33\x35\x34\x35\x35\x35\x36\x35\x37\x35\x38\x35\x39\x35\x3a\x35\x3b\x35\x3c\x35\x3d\x35\x3e\x35\x3f\x35\x40\x35\x41\x35\x42\x35\x43\x35\x44\x35\x45\x35\x46\x35\x47\x35\x48\x35\x49\x35\x4a\x35\x4b\x35\x4c\x35\x4d\x35\x4e\x35\x4f\x35\x50\x35\x51\x35\x52\x35\x53\x35\x54\x35\x55\x35\x56\x35\x57\x35\x58\x35\x59\x35\x5a\x35\x5b\x35\x5c\x35\x5d\x35\x5e\x35\x5f\x35\x60\x35\x61\x35\x62\x35\x63\x35\x64\x35\x65\x35\x66\x35\x67\x35\x68\x35\x69\x35\x6a\x35\x6b\x35\x6c\x35\x6d\x35\x6e\x35\x6f\x35\x70\x35\x71\x35\x72\x35\x73\x35\x74\x35\x75\x35\x76\x35\x77\x35\x78\x35\x79\x35\x7a\x35\x7b\x35\x7c\x35\x7d\x00\x00", /* d100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x7e\x35\x7f\x35\x80\x35\x81\x35\x82\x35\x83\x35\x84\x35\x85\x35\x86\x35\x87\x35\x88\x35\x89\x35\x8a\x35\x8b\x35\x8c\x35\x8d\x35\x8e\x35\x8f\x35\x90\x35\x91\x35\x92\x35\x93\x35\x94\x35\x95\x35\x96\x35\x97\x35\x98\x35\x99\x35\x9a\x35\x9b\x35\x9c\x35\x9d\x35\x9f\x35\xa0\x35\xa1\x35\xa2\x35\xa3\x35\xa4\x35\xa5\x35\xa6\x35\xa7\x35\xa8\x35\xa9\x35\xaa\x35\xab\x35\xac\x35\xad\x35\xae\x35\xaf\x35\xb0\x35\xb1\x35\xb2\x35\xb3\x35\xb4\x35\xb5\x35\xb6\x35\xb7\x35\xb8\x35\xb9\x35\xba\x35\xbb\x35\xbc\x35\xbd", /* d180 */ "\x35\xbe\x35\xbf\x35\xc0\x35\xc1\x35\xc2\x35\xc3\x35\xc4\x35\xc5\x35\xc6\x35\xc7\x35\xc8\x35\xc9\x35\xca\x35\xcb\x35\xcc\x35\xcd\x35\xce\x35\xcf\x35\xd0\x35\xd1\x35\xd2\x35\xd3\x35\xd4\x35\xd5\x35\xd6\x35\xd7\x35\xd8\x35\xd9\x35\xda\x35\xdb\x35\xdc\x35\xdd\x35\xde\x35\xdf\x35\xe0\x35\xe1\x35\xe2\x35\xe3\x35\xe4\x35\xe5\x35\xe6\x35\xe7\x35\xe8\x35\xe9\x35\xea\x35\xeb\x35\xec\x35\xed\x35\xee\x35\xef\x35\xf0\x35\xf1\x35\xf2\x35\xf3\x35\xf4\x35\xf5\x35\xf6\x35\xf7\x35\xf8\x35\xf9\x35\xfa\x35\xfb\x35\xfc\x35\xfd\x35\xfe\x35\xff\x36\x00\x36\x01\x36\x02\x36\x03\x36\x04\x36\x05\x36\x06\x36\x07\x36\x08\x36\x09\x36\x0a\x36\x0b\x36\x0c\x36\x0d\x36\x0f\x36\x10\x36\x11\x36\x12\x36\x13\x36\x14\x36\x15\x36\x16\x36\x17\x36\x18\x36\x19\x36\x1b\x36\x1c\x36\x1d\x36\x1e\x36\x1f\x36\x20\x36\x21\x36\x22\x36\x23\x36\x24\x36\x25\x36\x26\x36\x27\x36\x28\x36\x29\x36\x2a\x36\x2b\x36\x2c\x36\x2d\x36\x2e\x36\x2f\x36\x30\x36\x31\x36\x32\x36\x33\x36\x34\x36\x35\x36\x36\x36\x37\x36\x38\x36\x39\x36\x3a\x36\x3b\x36\x3c\x36\x3d\x36\x3e\x00\x00", /* d200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x3f\x36\x40\x36\x41\x36\x42\x36\x43\x36\x44\x36\x45\x36\x46\x36\x47\x36\x48\x36\x49\x36\x4a\x36\x4b\x36\x4c\x36\x4d\x36\x4e\x36\x4f\x36\x50\x36\x51\x36\x52\x36\x53\x36\x54\x36\x55\x36\x56\x36\x57\x36\x58\x36\x59\x36\x5a\x36\x5b\x36\x5c\x36\x5d\x36\x5e\x36\x5f\x36\x60\x36\x61\x36\x62\x36\x63\x36\x64\x36\x65\x36\x66\x36\x67\x36\x68\x36\x69\x36\x6a\x36\x6b\x36\x6c\x36\x6d\x36\x6e\x36\x6f\x36\x70\x36\x71\x36\x72\x36\x73\x36\x74\x36\x75\x36\x76\x36\x77\x36\x78\x36\x79\x36\x7a\x36\x7b\x36\x7c\x36\x7d", /* d280 */ "\x36\x7e\x36\x7f\x36\x80\x36\x81\x36\x82\x36\x83\x36\x84\x36\x85\x36\x86\x36\x87\x36\x88\x36\x89\x36\x8a\x36\x8b\x36\x8c\x36\x8d\x36\x8e\x36\x8f\x36\x90\x36\x91\x36\x92\x36\x93\x36\x94\x36\x95\x36\x96\x36\x97\x36\x98\x36\x99\x36\x9a\x36\x9b\x36\x9c\x36\x9d\x36\x9e\x36\x9f\x36\xa0\x36\xa1\x36\xa2\x36\xa3\x36\xa4\x36\xa5\x36\xa6\x36\xa7\x36\xa8\x36\xa9\x36\xaa\x36\xab\x36\xac\x36\xad\x36\xae\x36\xaf\x36\xb0\x36\xb1\x36\xb2\x36\xb3\x36\xb4\x36\xb5\x36\xb6\x36\xb7\x36\xb8\x36\xb9\x36\xba\x36\xbb\x36\xbc\x36\xbd\x36\xbe\x36\xbf\x36\xc0\x36\xc1\x36\xc2\x36\xc3\x36\xc4\x36\xc5\x36\xc6\x36\xc7\x36\xc8\x36\xc9\x36\xca\x36\xcb\x36\xcc\x36\xcd\x36\xce\x36\xcf\x36\xd0\x36\xd1\x36\xd2\x36\xd3\x36\xd4\x36\xd5\x36\xd6\x36\xd7\x36\xd8\x36\xd9\x36\xda\x36\xdb\x36\xdc\x36\xdd\x36\xde\x36\xdf\x36\xe0\x36\xe1\x36\xe2\x36\xe3\x36\xe4\x36\xe5\x36\xe6\x36\xe7\x36\xe8\x36\xe9\x36\xea\x36\xeb\x36\xec\x36\xed\x36\xee\x36\xef\x36\xf0\x36\xf1\x36\xf2\x36\xf3\x36\xf4\x36\xf5\x36\xf6\x36\xf7\x36\xf8\x36\xf9\x36\xfa\x36\xfb\x36\xfc\x00\x00", /* d300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\xfd\x36\xfe\x36\xff\x37\x00\x37\x01\x37\x02\x37\x03\x37\x04\x37\x05\x37\x06\x37\x07\x37\x08\x37\x09\x37\x0a\x37\x0b\x37\x0c\x37\x0d\x37\x0e\x37\x0f\x37\x10\x37\x11\x37\x12\x37\x13\x37\x14\x37\x15\x37\x16\x37\x17\x37\x18\x37\x19\x37\x1a\x37\x1b\x37\x1c\x37\x1d\x37\x1e\x37\x1f\x37\x20\x37\x21\x37\x22\x37\x23\x37\x24\x37\x25\x37\x26\x37\x27\x37\x28\x37\x29\x37\x2a\x37\x2b\x37\x2c\x37\x2d\x37\x2e\x37\x2f\x37\x30\x37\x31\x37\x32\x37\x33\x37\x34\x37\x35\x37\x36\x37\x37\x37\x38\x37\x39\x37\x3a\x37\x3b", /* d380 */ "\x37\x3c\x37\x3d\x37\x3e\x37\x3f\x37\x40\x37\x41\x37\x42\x37\x43\x37\x44\x37\x45\x37\x46\x37\x47\x37\x48\x37\x49\x37\x4a\x37\x4b\x37\x4c\x37\x4d\x37\x4e\x37\x4f\x37\x50\x37\x51\x37\x52\x37\x53\x37\x54\x37\x55\x37\x56\x37\x57\x37\x58\x37\x59\x37\x5a\x37\x5b\x37\x5c\x37\x5d\x37\x5e\x37\x5f\x37\x60\x37\x61\x37\x62\x37\x63\x37\x64\x37\x65\x37\x66\x37\x67\x37\x68\x37\x69\x37\x6a\x37\x6b\x37\x6c\x37\x6d\x37\x6e\x37\x6f\x37\x70\x37\x71\x37\x72\x37\x73\x37\x74\x37\x75\x37\x76\x37\x77\x37\x78\x37\x79\x37\x7a\x37\x7b\x37\x7c\x37\x7d\x37\x7e\x37\x7f\x37\x80\x37\x81\x37\x82\x37\x83\x37\x84\x37\x85\x37\x86\x37\x87\x37\x88\x37\x89\x37\x8a\x37\x8b\x37\x8c\x37\x8d\x37\x8e\x37\x8f\x37\x90\x37\x91\x37\x92\x37\x93\x37\x94\x37\x95\x37\x96\x37\x97\x37\x98\x37\x99\x37\x9a\x37\x9b\x37\x9c\x37\x9d\x37\x9e\x37\x9f\x37\xa0\x37\xa1\x37\xa2\x37\xa3\x37\xa4\x37\xa5\x37\xa6\x37\xa7\x37\xa8\x37\xa9\x37\xaa\x37\xab\x37\xac\x37\xad\x37\xae\x37\xaf\x37\xb0\x37\xb1\x37\xb2\x37\xb3\x37\xb4\x37\xb5\x37\xb6\x37\xb7\x37\xb8\x37\xb9\x37\xba\x00\x00", /* d400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\xbb\x37\xbc\x37\xbd\x37\xbe\x37\xbf\x37\xc0\x37\xc1\x37\xc2\x37\xc3\x37\xc4\x37\xc5\x37\xc6\x37\xc7\x37\xc8\x37\xc9\x37\xca\x37\xcb\x37\xcc\x37\xcd\x37\xce\x37\xcf\x37\xd0\x37\xd1\x37\xd2\x37\xd3\x37\xd4\x37\xd5\x37\xd6\x37\xd7\x37\xd8\x37\xd9\x37\xda\x37\xdb\x37\xdc\x37\xdd\x37\xde\x37\xdf\x37\xe0\x37\xe1\x37\xe2\x37\xe3\x37\xe4\x37\xe5\x37\xe6\x37\xe7\x37\xe8\x37\xe9\x37\xea\x37\xeb\x37\xec\x37\xed\x37\xee\x37\xef\x37\xf0\x37\xf1\x37\xf2\x37\xf3\x37\xf4\x37\xf5\x37\xf6\x37\xf7\x37\xf8\x37\xf9", /* d480 */ "\x37\xfa\x37\xfb\x37\xfc\x37\xfd\x37\xfe\x37\xff\x38\x00\x38\x01\x38\x02\x38\x03\x38\x04\x38\x05\x38\x06\x38\x07\x38\x08\x38\x09\x38\x0a\x38\x0b\x38\x0c\x38\x0d\x38\x0e\x38\x0f\x38\x10\x38\x11\x38\x12\x38\x13\x38\x14\x38\x15\x38\x16\x38\x17\x38\x18\x38\x19\x38\x1a\x38\x1b\x38\x1c\x38\x1d\x38\x1e\x38\x1f\x38\x20\x38\x21\x38\x22\x38\x23\x38\x24\x38\x25\x38\x26\x38\x27\x38\x28\x38\x29\x38\x2a\x38\x2b\x38\x2c\x38\x2d\x38\x2e\x38\x2f\x38\x30\x38\x31\x38\x32\x38\x33\x38\x34\x38\x35\x38\x36\x38\x37\x38\x38\x38\x39\x38\x3a\x38\x3b\x38\x3c\x38\x3d\x38\x3e\x38\x3f\x38\x40\x38\x41\x38\x42\x38\x43\x38\x44\x38\x45\x38\x46\x38\x47\x38\x48\x38\x49\x38\x4a\x38\x4b\x38\x4c\x38\x4d\x38\x4e\x38\x4f\x38\x50\x38\x51\x38\x52\x38\x53\x38\x54\x38\x55\x38\x56\x38\x57\x38\x58\x38\x59\x38\x5a\x38\x5b\x38\x5c\x38\x5d\x38\x5e\x38\x5f\x38\x60\x38\x61\x38\x62\x38\x63\x38\x64\x38\x65\x38\x66\x38\x67\x38\x68\x38\x69\x38\x6a\x38\x6b\x38\x6c\x38\x6d\x38\x6e\x38\x6f\x38\x70\x38\x71\x38\x72\x38\x73\x38\x74\x38\x75\x38\x76\x38\x77\x38\x78\x00\x00", /* d500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x79\x38\x7a\x38\x7b\x38\x7c\x38\x7d\x38\x7e\x38\x7f\x38\x80\x38\x81\x38\x82\x38\x83\x38\x84\x38\x85\x38\x86\x38\x87\x38\x88\x38\x89\x38\x8a\x38\x8b\x38\x8c\x38\x8d\x38\x8e\x38\x8f\x38\x90\x38\x91\x38\x92\x38\x93\x38\x94\x38\x95\x38\x96\x38\x97\x38\x98\x38\x99\x38\x9a\x38\x9b\x38\x9c\x38\x9d\x38\x9e\x38\x9f\x38\xa0\x38\xa1\x38\xa2\x38\xa3\x38\xa4\x38\xa5\x38\xa6\x38\xa7\x38\xa8\x38\xa9\x38\xaa\x38\xab\x38\xac\x38\xad\x38\xae\x38\xaf\x38\xb0\x38\xb1\x38\xb2\x38\xb3\x38\xb4\x38\xb5\x38\xb6\x38\xb7", /* d580 */ "\x38\xb8\x38\xb9\x38\xba\x38\xbb\x38\xbc\x38\xbd\x38\xbe\x38\xbf\x38\xc0\x38\xc1\x38\xc2\x38\xc3\x38\xc4\x38\xc5\x38\xc6\x38\xc7\x38\xc8\x38\xc9\x38\xca\x38\xcb\x38\xcc\x38\xcd\x38\xce\x38\xcf\x38\xd0\x38\xd1\x38\xd2\x38\xd3\x38\xd4\x38\xd5\x38\xd6\x38\xd7\x38\xd8\x38\xd9\x38\xda\x38\xdb\x38\xdc\x38\xdd\x38\xde\x38\xdf\x38\xe0\x38\xe1\x38\xe2\x38\xe3\x38\xe4\x38\xe5\x38\xe6\x38\xe7\x38\xe8\x38\xe9\x38\xea\x38\xeb\x38\xec\x38\xed\x38\xee\x38\xef\x38\xf0\x38\xf1\x38\xf2\x38\xf3\x38\xf4\x38\xf5\x38\xf6\x38\xf7\x38\xf8\x38\xf9\x38\xfa\x38\xfb\x38\xfc\x38\xfd\x38\xfe\x38\xff\x39\x00\x39\x01\x39\x02\x39\x03\x39\x04\x39\x05\x39\x06\x39\x07\x39\x08\x39\x09\x39\x0a\x39\x0b\x39\x0c\x39\x0d\x39\x0e\x39\x0f\x39\x10\x39\x11\x39\x12\x39\x13\x39\x14\x39\x15\x39\x16\x39\x17\x39\x19\x39\x1a\x39\x1b\x39\x1c\x39\x1d\x39\x1e\x39\x1f\x39\x20\x39\x21\x39\x22\x39\x23\x39\x24\x39\x25\x39\x26\x39\x27\x39\x28\x39\x29\x39\x2a\x39\x2b\x39\x2c\x39\x2d\x39\x2e\x39\x2f\x39\x30\x39\x31\x39\x32\x39\x33\x39\x34\x39\x35\x39\x36\x39\x37\x00\x00", /* d600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x38\x39\x39\x39\x3a\x39\x3b\x39\x3c\x39\x3d\x39\x3e\x39\x3f\x39\x40\x39\x41\x39\x42\x39\x43\x39\x44\x39\x45\x39\x46\x39\x47\x39\x48\x39\x49\x39\x4a\x39\x4b\x39\x4c\x39\x4d\x39\x4e\x39\x4f\x39\x50\x39\x51\x39\x52\x39\x53\x39\x54\x39\x55\x39\x56\x39\x57\x39\x58\x39\x59\x39\x5a\x39\x5b\x39\x5c\x39\x5d\x39\x5e\x39\x5f\x39\x60\x39\x61\x39\x62\x39\x63\x39\x64\x39\x65\x39\x66\x39\x67\x39\x68\x39\x69\x39\x6a\x39\x6b\x39\x6c\x39\x6d\x39\x6f\x39\x70\x39\x71\x39\x72\x39\x73\x39\x74\x39\x75\x39\x76\x39\x77", /* d680 */ "\x39\x78\x39\x79\x39\x7a\x39\x7b\x39\x7c\x39\x7d\x39\x7e\x39\x7f\x39\x80\x39\x81\x39\x82\x39\x83\x39\x84\x39\x85\x39\x86\x39\x87\x39\x88\x39\x89\x39\x8a\x39\x8b\x39\x8c\x39\x8d\x39\x8e\x39\x8f\x39\x90\x39\x91\x39\x92\x39\x93\x39\x94\x39\x95\x39\x96\x39\x97\x39\x98\x39\x99\x39\x9a\x39\x9b\x39\x9c\x39\x9d\x39\x9e\x39\x9f\x39\xa0\x39\xa1\x39\xa2\x39\xa3\x39\xa4\x39\xa5\x39\xa6\x39\xa7\x39\xa8\x39\xa9\x39\xaa\x39\xab\x39\xac\x39\xad\x39\xae\x39\xaf\x39\xb0\x39\xb1\x39\xb2\x39\xb3\x39\xb4\x39\xb5\x39\xb6\x39\xb7\x39\xb8\x39\xb9\x39\xba\x39\xbb\x39\xbc\x39\xbd\x39\xbe\x39\xbf\x39\xc0\x39\xc1\x39\xc2\x39\xc3\x39\xc4\x39\xc5\x39\xc6\x39\xc7\x39\xc8\x39\xc9\x39\xca\x39\xcb\x39\xcc\x39\xcd\x39\xce\x39\xd1\x39\xd2\x39\xd3\x39\xd4\x39\xd5\x39\xd6\x39\xd7\x39\xd8\x39\xd9\x39\xda\x39\xdb\x39\xdc\x39\xdd\x39\xde\x39\xe0\x39\xe1\x39\xe2\x39\xe3\x39\xe4\x39\xe5\x39\xe6\x39\xe7\x39\xe8\x39\xe9\x39\xea\x39\xeb\x39\xec\x39\xed\x39\xee\x39\xef\x39\xf0\x39\xf1\x39\xf2\x39\xf3\x39\xf4\x39\xf5\x39\xf6\x39\xf7\x39\xf8\x39\xf9\x00\x00", /* d700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\xfa\x39\xfb\x39\xfc\x39\xfd\x39\xfe\x39\xff\x3a\x00\x3a\x01\x3a\x02\x3a\x03\x3a\x04\x3a\x05\x3a\x06\x3a\x07\x3a\x08\x3a\x09\x3a\x0a\x3a\x0b\x3a\x0c\x3a\x0d\x3a\x0e\x3a\x0f\x3a\x10\x3a\x11\x3a\x12\x3a\x13\x3a\x14\x3a\x15\x3a\x16\x3a\x17\x3a\x18\x3a\x19\x3a\x1a\x3a\x1b\x3a\x1c\x3a\x1d\x3a\x1e\x3a\x1f\x3a\x20\x3a\x21\x3a\x22\x3a\x23\x3a\x24\x3a\x25\x3a\x26\x3a\x27\x3a\x28\x3a\x29\x3a\x2a\x3a\x2b\x3a\x2c\x3a\x2d\x3a\x2e\x3a\x2f\x3a\x30\x3a\x31\x3a\x32\x3a\x33\x3a\x34\x3a\x35\x3a\x36\x3a\x37\x3a\x38", /* d780 */ "\x3a\x39\x3a\x3a\x3a\x3b\x3a\x3c\x3a\x3d\x3a\x3e\x3a\x3f\x3a\x40\x3a\x41\x3a\x42\x3a\x43\x3a\x44\x3a\x45\x3a\x46\x3a\x47\x3a\x48\x3a\x49\x3a\x4a\x3a\x4b\x3a\x4c\x3a\x4d\x3a\x4e\x3a\x4f\x3a\x50\x3a\x51\x3a\x52\x3a\x53\x3a\x54\x3a\x55\x3a\x56\x3a\x57\x3a\x58\x3a\x59\x3a\x5a\x3a\x5b\x3a\x5c\x3a\x5d\x3a\x5e\x3a\x5f\x3a\x60\x3a\x61\x3a\x62\x3a\x63\x3a\x64\x3a\x65\x3a\x66\x3a\x67\x3a\x68\x3a\x69\x3a\x6a\x3a\x6b\x3a\x6c\x3a\x6d\x3a\x6e\x3a\x6f\x3a\x70\x3a\x71\x3a\x72\x3a\x74\x3a\x75\x3a\x76\x3a\x77\x3a\x78\x3a\x79\x3a\x7a\x3a\x7b\x3a\x7c\x3a\x7d\x3a\x7e\x3a\x7f\x3a\x80\x3a\x81\x3a\x82\x3a\x83\x3a\x84\x3a\x85\x3a\x86\x3a\x87\x3a\x88\x3a\x89\x3a\x8a\x3a\x8b\x3a\x8c\x3a\x8d\x3a\x8e\x3a\x8f\x3a\x90\x3a\x91\x3a\x92\x3a\x93\x3a\x94\x3a\x95\x3a\x96\x3a\x97\x3a\x98\x3a\x99\x3a\x9a\x3a\x9b\x3a\x9c\x3a\x9d\x3a\x9e\x3a\x9f\x3a\xa0\x3a\xa1\x3a\xa2\x3a\xa3\x3a\xa4\x3a\xa5\x3a\xa6\x3a\xa7\x3a\xa8\x3a\xa9\x3a\xaa\x3a\xab\x3a\xac\x3a\xad\x3a\xae\x3a\xaf\x3a\xb0\x3a\xb1\x3a\xb2\x3a\xb3\x3a\xb4\x3a\xb5\x3a\xb6\x3a\xb7\x3a\xb8\x00\x00", /* d800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\xb9\x3a\xba\x3a\xbb\x3a\xbc\x3a\xbd\x3a\xbe\x3a\xbf\x3a\xc0\x3a\xc1\x3a\xc2\x3a\xc3\x3a\xc4\x3a\xc5\x3a\xc6\x3a\xc7\x3a\xc8\x3a\xc9\x3a\xca\x3a\xcb\x3a\xcc\x3a\xcd\x3a\xce\x3a\xcf\x3a\xd0\x3a\xd1\x3a\xd2\x3a\xd3\x3a\xd4\x3a\xd5\x3a\xd6\x3a\xd7\x3a\xd8\x3a\xd9\x3a\xda\x3a\xdb\x3a\xdc\x3a\xdd\x3a\xde\x3a\xdf\x3a\xe0\x3a\xe1\x3a\xe2\x3a\xe3\x3a\xe4\x3a\xe5\x3a\xe6\x3a\xe7\x3a\xe8\x3a\xe9\x3a\xea\x3a\xeb\x3a\xec\x3a\xed\x3a\xee\x3a\xef\x3a\xf0\x3a\xf1\x3a\xf2\x3a\xf3\x3a\xf4\x3a\xf5\x3a\xf6\x3a\xf7", /* d880 */ "\x3a\xf8\x3a\xf9\x3a\xfa\x3a\xfb\x3a\xfc\x3a\xfd\x3a\xfe\x3a\xff\x3b\x00\x3b\x01\x3b\x02\x3b\x03\x3b\x04\x3b\x05\x3b\x06\x3b\x07\x3b\x08\x3b\x09\x3b\x0a\x3b\x0b\x3b\x0c\x3b\x0d\x3b\x0e\x3b\x0f\x3b\x10\x3b\x11\x3b\x12\x3b\x13\x3b\x14\x3b\x15\x3b\x16\x3b\x17\x3b\x18\x3b\x19\x3b\x1a\x3b\x1b\x3b\x1c\x3b\x1d\x3b\x1e\x3b\x1f\x3b\x20\x3b\x21\x3b\x22\x3b\x23\x3b\x24\x3b\x25\x3b\x26\x3b\x27\x3b\x28\x3b\x29\x3b\x2a\x3b\x2b\x3b\x2c\x3b\x2d\x3b\x2e\x3b\x2f\x3b\x30\x3b\x31\x3b\x32\x3b\x33\x3b\x34\x3b\x35\x3b\x36\x3b\x37\x3b\x38\x3b\x39\x3b\x3a\x3b\x3b\x3b\x3c\x3b\x3d\x3b\x3e\x3b\x3f\x3b\x40\x3b\x41\x3b\x42\x3b\x43\x3b\x44\x3b\x45\x3b\x46\x3b\x47\x3b\x48\x3b\x49\x3b\x4a\x3b\x4b\x3b\x4c\x3b\x4d\x3b\x4f\x3b\x50\x3b\x51\x3b\x52\x3b\x53\x3b\x54\x3b\x55\x3b\x56\x3b\x57\x3b\x58\x3b\x59\x3b\x5a\x3b\x5b\x3b\x5c\x3b\x5d\x3b\x5e\x3b\x5f\x3b\x60\x3b\x61\x3b\x62\x3b\x63\x3b\x64\x3b\x65\x3b\x66\x3b\x67\x3b\x68\x3b\x69\x3b\x6a\x3b\x6b\x3b\x6c\x3b\x6d\x3b\x6e\x3b\x6f\x3b\x70\x3b\x71\x3b\x72\x3b\x73\x3b\x74\x3b\x75\x3b\x76\x3b\x77\x00\x00", /* d900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x78\x3b\x79\x3b\x7a\x3b\x7b\x3b\x7c\x3b\x7d\x3b\x7e\x3b\x7f\x3b\x80\x3b\x81\x3b\x82\x3b\x83\x3b\x84\x3b\x85\x3b\x86\x3b\x87\x3b\x88\x3b\x89\x3b\x8a\x3b\x8b\x3b\x8c\x3b\x8d\x3b\x8e\x3b\x8f\x3b\x90\x3b\x91\x3b\x92\x3b\x93\x3b\x94\x3b\x95\x3b\x96\x3b\x97\x3b\x98\x3b\x99\x3b\x9a\x3b\x9b\x3b\x9c\x3b\x9d\x3b\x9e\x3b\x9f\x3b\xa0\x3b\xa1\x3b\xa2\x3b\xa3\x3b\xa4\x3b\xa5\x3b\xa6\x3b\xa7\x3b\xa8\x3b\xa9\x3b\xaa\x3b\xab\x3b\xac\x3b\xad\x3b\xae\x3b\xaf\x3b\xb0\x3b\xb1\x3b\xb2\x3b\xb3\x3b\xb4\x3b\xb5\x3b\xb6", /* d980 */ "\x3b\xb7\x3b\xb8\x3b\xb9\x3b\xba\x3b\xbb\x3b\xbc\x3b\xbd\x3b\xbe\x3b\xbf\x3b\xc0\x3b\xc1\x3b\xc2\x3b\xc3\x3b\xc4\x3b\xc5\x3b\xc6\x3b\xc7\x3b\xc8\x3b\xc9\x3b\xca\x3b\xcb\x3b\xcc\x3b\xcd\x3b\xce\x3b\xcf\x3b\xd0\x3b\xd1\x3b\xd2\x3b\xd3\x3b\xd4\x3b\xd5\x3b\xd6\x3b\xd7\x3b\xd8\x3b\xd9\x3b\xda\x3b\xdb\x3b\xdc\x3b\xdd\x3b\xde\x3b\xdf\x3b\xe0\x3b\xe1\x3b\xe2\x3b\xe3\x3b\xe4\x3b\xe5\x3b\xe6\x3b\xe7\x3b\xe8\x3b\xe9\x3b\xea\x3b\xeb\x3b\xec\x3b\xed\x3b\xee\x3b\xef\x3b\xf0\x3b\xf1\x3b\xf2\x3b\xf3\x3b\xf4\x3b\xf5\x3b\xf6\x3b\xf7\x3b\xf8\x3b\xf9\x3b\xfa\x3b\xfb\x3b\xfc\x3b\xfd\x3b\xfe\x3b\xff\x3c\x00\x3c\x01\x3c\x02\x3c\x03\x3c\x04\x3c\x05\x3c\x06\x3c\x07\x3c\x08\x3c\x09\x3c\x0a\x3c\x0b\x3c\x0c\x3c\x0d\x3c\x0e\x3c\x0f\x3c\x10\x3c\x11\x3c\x12\x3c\x13\x3c\x14\x3c\x15\x3c\x16\x3c\x17\x3c\x18\x3c\x19\x3c\x1a\x3c\x1b\x3c\x1c\x3c\x1d\x3c\x1e\x3c\x1f\x3c\x20\x3c\x21\x3c\x22\x3c\x23\x3c\x24\x3c\x25\x3c\x26\x3c\x27\x3c\x28\x3c\x29\x3c\x2a\x3c\x2b\x3c\x2c\x3c\x2d\x3c\x2e\x3c\x2f\x3c\x30\x3c\x31\x3c\x32\x3c\x33\x3c\x34\x3c\x35\x00\x00", /* da00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x36\x3c\x37\x3c\x38\x3c\x39\x3c\x3a\x3c\x3b\x3c\x3c\x3c\x3d\x3c\x3e\x3c\x3f\x3c\x40\x3c\x41\x3c\x42\x3c\x43\x3c\x44\x3c\x45\x3c\x46\x3c\x47\x3c\x48\x3c\x49\x3c\x4a\x3c\x4b\x3c\x4c\x3c\x4d\x3c\x4e\x3c\x4f\x3c\x50\x3c\x51\x3c\x52\x3c\x53\x3c\x54\x3c\x55\x3c\x56\x3c\x57\x3c\x58\x3c\x59\x3c\x5a\x3c\x5b\x3c\x5c\x3c\x5d\x3c\x5e\x3c\x5f\x3c\x60\x3c\x61\x3c\x62\x3c\x63\x3c\x64\x3c\x65\x3c\x66\x3c\x67\x3c\x68\x3c\x69\x3c\x6a\x3c\x6b\x3c\x6c\x3c\x6d\x3c\x6f\x3c\x70\x3c\x71\x3c\x72\x3c\x73\x3c\x74\x3c\x75", /* da80 */ "\x3c\x76\x3c\x77\x3c\x78\x3c\x79\x3c\x7a\x3c\x7b\x3c\x7c\x3c\x7d\x3c\x7e\x3c\x7f\x3c\x80\x3c\x81\x3c\x82\x3c\x83\x3c\x84\x3c\x85\x3c\x86\x3c\x87\x3c\x88\x3c\x89\x3c\x8a\x3c\x8b\x3c\x8c\x3c\x8d\x3c\x8e\x3c\x8f\x3c\x90\x3c\x91\x3c\x92\x3c\x93\x3c\x94\x3c\x95\x3c\x96\x3c\x97\x3c\x98\x3c\x99\x3c\x9a\x3c\x9b\x3c\x9c\x3c\x9d\x3c\x9e\x3c\x9f\x3c\xa0\x3c\xa1\x3c\xa2\x3c\xa3\x3c\xa4\x3c\xa5\x3c\xa6\x3c\xa7\x3c\xa8\x3c\xa9\x3c\xaa\x3c\xab\x3c\xac\x3c\xad\x3c\xae\x3c\xaf\x3c\xb0\x3c\xb1\x3c\xb2\x3c\xb3\x3c\xb4\x3c\xb5\x3c\xb6\x3c\xb7\x3c\xb8\x3c\xb9\x3c\xba\x3c\xbb\x3c\xbc\x3c\xbd\x3c\xbe\x3c\xbf\x3c\xc0\x3c\xc1\x3c\xc2\x3c\xc3\x3c\xc4\x3c\xc5\x3c\xc6\x3c\xc7\x3c\xc8\x3c\xc9\x3c\xca\x3c\xcb\x3c\xcc\x3c\xcd\x3c\xce\x3c\xcf\x3c\xd0\x3c\xd1\x3c\xd2\x3c\xd3\x3c\xd4\x3c\xd5\x3c\xd6\x3c\xd7\x3c\xd8\x3c\xd9\x3c\xda\x3c\xdb\x3c\xdc\x3c\xdd\x3c\xde\x3c\xdf\x3c\xe1\x3c\xe2\x3c\xe3\x3c\xe4\x3c\xe5\x3c\xe6\x3c\xe7\x3c\xe8\x3c\xe9\x3c\xea\x3c\xeb\x3c\xec\x3c\xed\x3c\xee\x3c\xef\x3c\xf0\x3c\xf1\x3c\xf2\x3c\xf3\x3c\xf4\x3c\xf5\x00\x00", /* db00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\xf6\x3c\xf7\x3c\xf8\x3c\xf9\x3c\xfa\x3c\xfb\x3c\xfc\x3c\xfd\x3c\xfe\x3c\xff\x3d\x00\x3d\x01\x3d\x02\x3d\x03\x3d\x04\x3d\x05\x3d\x06\x3d\x07\x3d\x08\x3d\x09\x3d\x0a\x3d\x0b\x3d\x0c\x3d\x0d\x3d\x0e\x3d\x0f\x3d\x10\x3d\x11\x3d\x12\x3d\x13\x3d\x14\x3d\x15\x3d\x16\x3d\x17\x3d\x18\x3d\x19\x3d\x1a\x3d\x1b\x3d\x1c\x3d\x1d\x3d\x1e\x3d\x1f\x3d\x20\x3d\x21\x3d\x22\x3d\x23\x3d\x24\x3d\x25\x3d\x26\x3d\x27\x3d\x28\x3d\x29\x3d\x2a\x3d\x2b\x3d\x2c\x3d\x2d\x3d\x2e\x3d\x2f\x3d\x30\x3d\x31\x3d\x32\x3d\x33\x3d\x34", /* db80 */ "\x3d\x35\x3d\x36\x3d\x37\x3d\x38\x3d\x39\x3d\x3a\x3d\x3b\x3d\x3c\x3d\x3d\x3d\x3e\x3d\x3f\x3d\x40\x3d\x41\x3d\x42\x3d\x43\x3d\x44\x3d\x45\x3d\x46\x3d\x47\x3d\x48\x3d\x49\x3d\x4a\x3d\x4b\x3d\x4c\x3d\x4d\x3d\x4e\x3d\x4f\x3d\x50\x3d\x51\x3d\x52\x3d\x53\x3d\x54\x3d\x55\x3d\x56\x3d\x57\x3d\x58\x3d\x59\x3d\x5a\x3d\x5b\x3d\x5c\x3d\x5d\x3d\x5e\x3d\x5f\x3d\x60\x3d\x61\x3d\x62\x3d\x63\x3d\x64\x3d\x65\x3d\x66\x3d\x67\x3d\x68\x3d\x69\x3d\x6a\x3d\x6b\x3d\x6c\x3d\x6d\x3d\x6e\x3d\x6f\x3d\x70\x3d\x71\x3d\x72\x3d\x73\x3d\x74\x3d\x75\x3d\x76\x3d\x77\x3d\x78\x3d\x79\x3d\x7a\x3d\x7b\x3d\x7c\x3d\x7d\x3d\x7e\x3d\x7f\x3d\x80\x3d\x81\x3d\x82\x3d\x83\x3d\x84\x3d\x85\x3d\x86\x3d\x87\x3d\x88\x3d\x89\x3d\x8a\x3d\x8b\x3d\x8c\x3d\x8d\x3d\x8e\x3d\x8f\x3d\x90\x3d\x91\x3d\x92\x3d\x93\x3d\x94\x3d\x95\x3d\x96\x3d\x97\x3d\x98\x3d\x99\x3d\x9a\x3d\x9b\x3d\x9c\x3d\x9d\x3d\x9e\x3d\x9f\x3d\xa0\x3d\xa1\x3d\xa2\x3d\xa3\x3d\xa4\x3d\xa5\x3d\xa6\x3d\xa7\x3d\xa8\x3d\xa9\x3d\xaa\x3d\xab\x3d\xac\x3d\xad\x3d\xae\x3d\xaf\x3d\xb0\x3d\xb1\x3d\xb2\x3d\xb3\x00\x00", /* dc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\xb4\x3d\xb5\x3d\xb6\x3d\xb7\x3d\xb8\x3d\xb9\x3d\xba\x3d\xbb\x3d\xbc\x3d\xbd\x3d\xbe\x3d\xbf\x3d\xc0\x3d\xc1\x3d\xc2\x3d\xc3\x3d\xc4\x3d\xc5\x3d\xc6\x3d\xc7\x3d\xc8\x3d\xc9\x3d\xca\x3d\xcb\x3d\xcc\x3d\xcd\x3d\xce\x3d\xcf\x3d\xd0\x3d\xd1\x3d\xd2\x3d\xd3\x3d\xd4\x3d\xd5\x3d\xd6\x3d\xd7\x3d\xd8\x3d\xd9\x3d\xda\x3d\xdb\x3d\xdc\x3d\xdd\x3d\xde\x3d\xdf\x3d\xe0\x3d\xe1\x3d\xe2\x3d\xe3\x3d\xe4\x3d\xe5\x3d\xe6\x3d\xe7\x3d\xe8\x3d\xe9\x3d\xea\x3d\xeb\x3d\xec\x3d\xed\x3d\xee\x3d\xef\x3d\xf0\x3d\xf1\x3d\xf2", /* dc80 */ "\x3d\xf3\x3d\xf4\x3d\xf5\x3d\xf6\x3d\xf7\x3d\xf8\x3d\xf9\x3d\xfa\x3d\xfb\x3d\xfc\x3d\xfd\x3d\xfe\x3d\xff\x3e\x00\x3e\x01\x3e\x02\x3e\x03\x3e\x04\x3e\x05\x3e\x06\x3e\x07\x3e\x08\x3e\x09\x3e\x0a\x3e\x0b\x3e\x0c\x3e\x0d\x3e\x0e\x3e\x0f\x3e\x10\x3e\x11\x3e\x12\x3e\x13\x3e\x14\x3e\x15\x3e\x16\x3e\x17\x3e\x18\x3e\x19\x3e\x1a\x3e\x1b\x3e\x1c\x3e\x1d\x3e\x1e\x3e\x1f\x3e\x20\x3e\x21\x3e\x22\x3e\x23\x3e\x24\x3e\x25\x3e\x26\x3e\x27\x3e\x28\x3e\x29\x3e\x2a\x3e\x2b\x3e\x2c\x3e\x2d\x3e\x2e\x3e\x2f\x3e\x30\x3e\x31\x3e\x32\x3e\x33\x3e\x34\x3e\x35\x3e\x36\x3e\x37\x3e\x38\x3e\x39\x3e\x3a\x3e\x3b\x3e\x3c\x3e\x3d\x3e\x3e\x3e\x3f\x3e\x40\x3e\x41\x3e\x42\x3e\x43\x3e\x44\x3e\x45\x3e\x46\x3e\x47\x3e\x48\x3e\x49\x3e\x4a\x3e\x4b\x3e\x4c\x3e\x4d\x3e\x4e\x3e\x4f\x3e\x50\x3e\x51\x3e\x52\x3e\x53\x3e\x54\x3e\x55\x3e\x56\x3e\x57\x3e\x58\x3e\x59\x3e\x5a\x3e\x5b\x3e\x5c\x3e\x5d\x3e\x5e\x3e\x5f\x3e\x60\x3e\x61\x3e\x62\x3e\x63\x3e\x64\x3e\x65\x3e\x66\x3e\x67\x3e\x68\x3e\x69\x3e\x6a\x3e\x6b\x3e\x6c\x3e\x6d\x3e\x6e\x3e\x6f\x3e\x70\x3e\x71\x00\x00", /* dd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x72\x3e\x73\x3e\x74\x3e\x75\x3e\x76\x3e\x77\x3e\x78\x3e\x79\x3e\x7a\x3e\x7b\x3e\x7c\x3e\x7d\x3e\x7e\x3e\x7f\x3e\x80\x3e\x81\x3e\x82\x3e\x83\x3e\x84\x3e\x85\x3e\x86\x3e\x87\x3e\x88\x3e\x89\x3e\x8a\x3e\x8b\x3e\x8c\x3e\x8d\x3e\x8e\x3e\x8f\x3e\x90\x3e\x91\x3e\x92\x3e\x93\x3e\x94\x3e\x95\x3e\x96\x3e\x97\x3e\x98\x3e\x99\x3e\x9a\x3e\x9b\x3e\x9c\x3e\x9d\x3e\x9e\x3e\x9f\x3e\xa0\x3e\xa1\x3e\xa2\x3e\xa3\x3e\xa4\x3e\xa5\x3e\xa6\x3e\xa7\x3e\xa8\x3e\xa9\x3e\xaa\x3e\xab\x3e\xac\x3e\xad\x3e\xae\x3e\xaf\x3e\xb0", /* dd80 */ "\x3e\xb1\x3e\xb2\x3e\xb3\x3e\xb4\x3e\xb5\x3e\xb6\x3e\xb7\x3e\xb8\x3e\xb9\x3e\xba\x3e\xbb\x3e\xbc\x3e\xbd\x3e\xbe\x3e\xbf\x3e\xc0\x3e\xc1\x3e\xc2\x3e\xc3\x3e\xc4\x3e\xc5\x3e\xc6\x3e\xc7\x3e\xc8\x3e\xc9\x3e\xca\x3e\xcb\x3e\xcc\x3e\xcd\x3e\xce\x3e\xcf\x3e\xd0\x3e\xd1\x3e\xd2\x3e\xd3\x3e\xd4\x3e\xd5\x3e\xd6\x3e\xd7\x3e\xd8\x3e\xd9\x3e\xda\x3e\xdb\x3e\xdc\x3e\xdd\x3e\xde\x3e\xdf\x3e\xe0\x3e\xe1\x3e\xe2\x3e\xe3\x3e\xe4\x3e\xe5\x3e\xe6\x3e\xe7\x3e\xe8\x3e\xe9\x3e\xea\x3e\xeb\x3e\xec\x3e\xed\x3e\xee\x3e\xef\x3e\xf0\x3e\xf1\x3e\xf2\x3e\xf3\x3e\xf4\x3e\xf5\x3e\xf6\x3e\xf7\x3e\xf8\x3e\xf9\x3e\xfa\x3e\xfb\x3e\xfc\x3e\xfd\x3e\xfe\x3e\xff\x3f\x00\x3f\x01\x3f\x02\x3f\x03\x3f\x04\x3f\x05\x3f\x06\x3f\x07\x3f\x08\x3f\x09\x3f\x0a\x3f\x0b\x3f\x0c\x3f\x0d\x3f\x0e\x3f\x0f\x3f\x10\x3f\x11\x3f\x12\x3f\x13\x3f\x14\x3f\x15\x3f\x16\x3f\x17\x3f\x18\x3f\x19\x3f\x1a\x3f\x1b\x3f\x1c\x3f\x1d\x3f\x1e\x3f\x1f\x3f\x20\x3f\x21\x3f\x22\x3f\x23\x3f\x24\x3f\x25\x3f\x26\x3f\x27\x3f\x28\x3f\x29\x3f\x2a\x3f\x2b\x3f\x2c\x3f\x2d\x3f\x2e\x3f\x2f\x00\x00", /* de00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x30\x3f\x31\x3f\x32\x3f\x33\x3f\x34\x3f\x35\x3f\x36\x3f\x37\x3f\x38\x3f\x39\x3f\x3a\x3f\x3b\x3f\x3c\x3f\x3d\x3f\x3e\x3f\x3f\x3f\x40\x3f\x41\x3f\x42\x3f\x43\x3f\x44\x3f\x45\x3f\x46\x3f\x47\x3f\x48\x3f\x49\x3f\x4a\x3f\x4b\x3f\x4c\x3f\x4d\x3f\x4e\x3f\x4f\x3f\x50\x3f\x51\x3f\x52\x3f\x53\x3f\x54\x3f\x55\x3f\x56\x3f\x57\x3f\x58\x3f\x59\x3f\x5a\x3f\x5b\x3f\x5c\x3f\x5d\x3f\x5e\x3f\x5f\x3f\x60\x3f\x61\x3f\x62\x3f\x63\x3f\x64\x3f\x65\x3f\x66\x3f\x67\x3f\x68\x3f\x69\x3f\x6a\x3f\x6b\x3f\x6c\x3f\x6d\x3f\x6e", /* de80 */ "\x3f\x6f\x3f\x70\x3f\x71\x3f\x72\x3f\x73\x3f\x74\x3f\x75\x3f\x76\x3f\x77\x3f\x78\x3f\x79\x3f\x7a\x3f\x7b\x3f\x7c\x3f\x7d\x3f\x7e\x3f\x7f\x3f\x80\x3f\x81\x3f\x82\x3f\x83\x3f\x84\x3f\x85\x3f\x86\x3f\x87\x3f\x88\x3f\x89\x3f\x8a\x3f\x8b\x3f\x8c\x3f\x8d\x3f\x8e\x3f\x8f\x3f\x90\x3f\x91\x3f\x92\x3f\x93\x3f\x94\x3f\x95\x3f\x96\x3f\x97\x3f\x98\x3f\x99\x3f\x9a\x3f\x9b\x3f\x9c\x3f\x9d\x3f\x9e\x3f\x9f\x3f\xa0\x3f\xa1\x3f\xa2\x3f\xa3\x3f\xa4\x3f\xa5\x3f\xa6\x3f\xa7\x3f\xa8\x3f\xa9\x3f\xaa\x3f\xab\x3f\xac\x3f\xad\x3f\xae\x3f\xaf\x3f\xb0\x3f\xb1\x3f\xb2\x3f\xb3\x3f\xb4\x3f\xb5\x3f\xb6\x3f\xb7\x3f\xb8\x3f\xb9\x3f\xba\x3f\xbb\x3f\xbc\x3f\xbd\x3f\xbe\x3f\xbf\x3f\xc0\x3f\xc1\x3f\xc2\x3f\xc3\x3f\xc4\x3f\xc5\x3f\xc6\x3f\xc7\x3f\xc8\x3f\xc9\x3f\xca\x3f\xcb\x3f\xcc\x3f\xcd\x3f\xce\x3f\xcf\x3f\xd0\x3f\xd1\x3f\xd2\x3f\xd3\x3f\xd4\x3f\xd5\x3f\xd6\x3f\xd7\x3f\xd8\x3f\xd9\x3f\xda\x3f\xdb\x3f\xdc\x3f\xdd\x3f\xde\x3f\xdf\x3f\xe0\x3f\xe1\x3f\xe2\x3f\xe3\x3f\xe4\x3f\xe5\x3f\xe6\x3f\xe7\x3f\xe8\x3f\xe9\x3f\xea\x3f\xeb\x3f\xec\x3f\xed\x00\x00", /* df00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xee\x3f\xef\x3f\xf0\x3f\xf1\x3f\xf2\x3f\xf3\x3f\xf4\x3f\xf5\x3f\xf6\x3f\xf7\x3f\xf8\x3f\xf9\x3f\xfa\x3f\xfb\x3f\xfc\x3f\xfd\x3f\xfe\x3f\xff\x40\x00\x40\x01\x40\x02\x40\x03\x40\x04\x40\x05\x40\x06\x40\x07\x40\x08\x40\x09\x40\x0a\x40\x0b\x40\x0c\x40\x0d\x40\x0e\x40\x0f\x40\x10\x40\x11\x40\x12\x40\x13\x40\x14\x40\x15\x40\x16\x40\x17\x40\x18\x40\x19\x40\x1a\x40\x1b\x40\x1c\x40\x1d\x40\x1e\x40\x1f\x40\x20\x40\x21\x40\x22\x40\x23\x40\x24\x40\x25\x40\x26\x40\x27\x40\x28\x40\x29\x40\x2a\x40\x2b\x40\x2c", /* df80 */ "\x40\x2d\x40\x2e\x40\x2f\x40\x30\x40\x31\x40\x32\x40\x33\x40\x34\x40\x35\x40\x36\x40\x37\x40\x38\x40\x39\x40\x3a\x40\x3b\x40\x3c\x40\x3d\x40\x3e\x40\x3f\x40\x40\x40\x41\x40\x42\x40\x43\x40\x44\x40\x45\x40\x46\x40\x47\x40\x48\x40\x49\x40\x4a\x40\x4b\x40\x4c\x40\x4d\x40\x4e\x40\x4f\x40\x50\x40\x51\x40\x52\x40\x53\x40\x54\x40\x55\x40\x57\x40\x58\x40\x59\x40\x5a\x40\x5b\x40\x5c\x40\x5d\x40\x5e\x40\x5f\x40\x60\x40\x61\x40\x62\x40\x63\x40\x64\x40\x65\x40\x66\x40\x67\x40\x68\x40\x69\x40\x6a\x40\x6b\x40\x6c\x40\x6d\x40\x6e\x40\x6f\x40\x70\x40\x71\x40\x72\x40\x73\x40\x74\x40\x75\x40\x76\x40\x77\x40\x78\x40\x79\x40\x7a\x40\x7b\x40\x7c\x40\x7d\x40\x7e\x40\x7f\x40\x80\x40\x81\x40\x82\x40\x83\x40\x84\x40\x85\x40\x86\x40\x87\x40\x88\x40\x89\x40\x8a\x40\x8b\x40\x8c\x40\x8d\x40\x8e\x40\x8f\x40\x90\x40\x91\x40\x92\x40\x93\x40\x94\x40\x95\x40\x96\x40\x97\x40\x98\x40\x99\x40\x9a\x40\x9b\x40\x9c\x40\x9d\x40\x9e\x40\x9f\x40\xa0\x40\xa1\x40\xa2\x40\xa3\x40\xa4\x40\xa5\x40\xa6\x40\xa7\x40\xa8\x40\xa9\x40\xaa\x40\xab\x40\xac\x00\x00", /* e000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xad\x40\xae\x40\xaf\x40\xb0\x40\xb1\x40\xb2\x40\xb3\x40\xb4\x40\xb5\x40\xb6\x40\xb7\x40\xb8\x40\xb9\x40\xba\x40\xbb\x40\xbc\x40\xbd\x40\xbe\x40\xbf\x40\xc0\x40\xc1\x40\xc2\x40\xc3\x40\xc4\x40\xc5\x40\xc6\x40\xc7\x40\xc8\x40\xc9\x40\xca\x40\xcb\x40\xcc\x40\xcd\x40\xce\x40\xcf\x40\xd0\x40\xd1\x40\xd2\x40\xd3\x40\xd4\x40\xd5\x40\xd6\x40\xd7\x40\xd8\x40\xd9\x40\xda\x40\xdb\x40\xdc\x40\xdd\x40\xde\x40\xdf\x40\xe0\x40\xe1\x40\xe2\x40\xe3\x40\xe4\x40\xe5\x40\xe6\x40\xe7\x40\xe8\x40\xe9\x40\xea\x40\xeb", /* e080 */ "\x40\xec\x40\xed\x40\xee\x40\xef\x40\xf0\x40\xf1\x40\xf2\x40\xf3\x40\xf4\x40\xf5\x40\xf6\x40\xf7\x40\xf8\x40\xf9\x40\xfa\x40\xfb\x40\xfc\x40\xfd\x40\xfe\x40\xff\x41\x00\x41\x01\x41\x02\x41\x03\x41\x04\x41\x05\x41\x06\x41\x07\x41\x08\x41\x09\x41\x0a\x41\x0b\x41\x0c\x41\x0d\x41\x0e\x41\x0f\x41\x10\x41\x11\x41\x12\x41\x13\x41\x14\x41\x15\x41\x16\x41\x17\x41\x18\x41\x19\x41\x1a\x41\x1b\x41\x1c\x41\x1d\x41\x1e\x41\x1f\x41\x20\x41\x21\x41\x22\x41\x23\x41\x24\x41\x25\x41\x26\x41\x27\x41\x28\x41\x29\x41\x2a\x41\x2b\x41\x2c\x41\x2d\x41\x2e\x41\x2f\x41\x30\x41\x31\x41\x32\x41\x33\x41\x34\x41\x35\x41\x36\x41\x37\x41\x38\x41\x39\x41\x3a\x41\x3b\x41\x3c\x41\x3d\x41\x3e\x41\x3f\x41\x40\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x41\x59\x41\x5a\x41\x5b\x41\x5c\x41\x5d\x41\x5e\x41\x60\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x00\x00", /* e100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x41\x79\x41\x7a\x41\x7b\x41\x7c\x41\x7d\x41\x7e\x41\x7f\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x86\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x41\xa1\x41\xa2\x41\xa3\x41\xa4\x41\xa5\x41\xa6\x41\xa7\x41\xa8\x41\xa9\x41\xaa", /* e180 */ "\x41\xab\x41\xac\x41\xad\x41\xae\x41\xaf\x41\xb0\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x41\xbb\x41\xbc\x41\xbd\x41\xbe\x41\xbf\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc6\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\xe1\x41\xe2\x41\xe3\x41\xe4\x41\xe5\x41\xe6\x41\xe7\x41\xe8\x41\xe9\x41\xea\x41\xeb\x41\xec\x41\xed\x41\xee\x41\xef\x41\xf0\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x41\xfd\x41\xfe\x41\xff\x42\x00\x42\x01\x42\x02\x42\x03\x42\x04\x42\x05\x42\x06\x42\x07\x42\x08\x42\x09\x42\x0a\x42\x0b\x42\x0c\x42\x0d\x42\x0e\x42\x0f\x42\x10\x42\x11\x42\x12\x42\x13\x42\x14\x42\x15\x42\x16\x42\x17\x42\x18\x42\x19\x42\x1a\x42\x1b\x42\x1c\x42\x1d\x42\x1e\x42\x1f\x42\x20\x42\x21\x42\x22\x42\x23\x42\x24\x42\x25\x42\x26\x42\x27\x42\x28\x42\x29\x00\x00", /* e200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x2a\x42\x2b\x42\x2c\x42\x2d\x42\x2e\x42\x2f\x42\x30\x42\x31\x42\x32\x42\x33\x42\x34\x42\x35\x42\x36\x42\x37\x42\x38\x42\x39\x42\x3a\x42\x3b\x42\x3c\x42\x3d\x42\x3e\x42\x3f\x42\x40\x42\x41\x42\x42\x42\x43\x42\x44\x42\x45\x42\x46\x42\x47\x42\x48\x42\x49\x42\x4a\x42\x4b\x42\x4c\x42\x4d\x42\x4e\x42\x4f\x42\x50\x42\x51\x42\x52\x42\x53\x42\x54\x42\x55\x42\x56\x42\x57\x42\x58\x42\x59\x42\x5a\x42\x5b\x42\x5c\x42\x5d\x42\x5e\x42\x5f\x42\x60\x42\x61\x42\x62\x42\x63\x42\x64\x42\x65\x42\x66\x42\x67\x42\x68", /* e280 */ "\x42\x69\x42\x6a\x42\x6b\x42\x6c\x42\x6d\x42\x6e\x42\x6f\x42\x70\x42\x71\x42\x72\x42\x73\x42\x74\x42\x75\x42\x76\x42\x77\x42\x78\x42\x79\x42\x7a\x42\x7b\x42\x7c\x42\x7d\x42\x7e\x42\x7f\x42\x80\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x8a\x42\x8b\x42\x8c\x42\x8d\x42\x8e\x42\x8f\x42\x90\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\x9a\x42\x9b\x42\x9c\x42\x9d\x42\x9e\x42\x9f\x42\xa0\x42\xa1\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xaa\x42\xab\x42\xac\x42\xad\x42\xae\x42\xaf\x42\xb0\x42\xb1\x42\xb2\x42\xb3\x42\xb4\x42\xb5\x42\xb6\x42\xb7\x42\xb8\x42\xb9\x42\xba\x42\xbb\x42\xbc\x42\xbd\x42\xbe\x42\xbf\x42\xc0\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xca\x42\xcb\x42\xcc\x42\xcd\x42\xce\x42\xcf\x42\xd0\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xda\x42\xdb\x42\xdc\x42\xdd\x42\xde\x42\xdf\x42\xe0\x42\xe1\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x00\x00", /* e300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\xe8\x42\xe9\x42\xea\x42\xeb\x42\xec\x42\xed\x42\xee\x42\xef\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\xfa\x42\xfb\x42\xfc\x42\xfd\x42\xfe\x42\xff\x43\x00\x43\x01\x43\x02\x43\x03\x43\x04\x43\x05\x43\x06\x43\x07\x43\x08\x43\x09\x43\x0a\x43\x0b\x43\x0c\x43\x0d\x43\x0e\x43\x0f\x43\x10\x43\x11\x43\x12\x43\x13\x43\x14\x43\x15\x43\x16\x43\x17\x43\x18\x43\x19\x43\x1a\x43\x1b\x43\x1c\x43\x1d\x43\x1e\x43\x1f\x43\x20\x43\x21\x43\x22\x43\x23\x43\x24\x43\x25\x43\x26", /* e380 */ "\x43\x27\x43\x28\x43\x29\x43\x2a\x43\x2b\x43\x2c\x43\x2d\x43\x2e\x43\x2f\x43\x30\x43\x31\x43\x32\x43\x33\x43\x34\x43\x35\x43\x36\x43\x38\x43\x39\x43\x3a\x43\x3b\x43\x3c\x43\x3d\x43\x3e\x43\x3f\x43\x40\x43\x41\x43\x42\x43\x43\x43\x44\x43\x45\x43\x46\x43\x47\x43\x48\x43\x49\x43\x4a\x43\x4b\x43\x4c\x43\x4d\x43\x4e\x43\x4f\x43\x50\x43\x51\x43\x52\x43\x53\x43\x54\x43\x55\x43\x56\x43\x57\x43\x58\x43\x59\x43\x5a\x43\x5b\x43\x5c\x43\x5d\x43\x5e\x43\x5f\x43\x60\x43\x61\x43\x62\x43\x63\x43\x64\x43\x65\x43\x66\x43\x67\x43\x68\x43\x69\x43\x6a\x43\x6b\x43\x6c\x43\x6d\x43\x6e\x43\x6f\x43\x70\x43\x71\x43\x72\x43\x73\x43\x74\x43\x75\x43\x76\x43\x77\x43\x78\x43\x79\x43\x7a\x43\x7b\x43\x7c\x43\x7d\x43\x7e\x43\x7f\x43\x80\x43\x81\x43\x82\x43\x83\x43\x84\x43\x85\x43\x86\x43\x87\x43\x88\x43\x89\x43\x8a\x43\x8b\x43\x8c\x43\x8d\x43\x8e\x43\x8f\x43\x90\x43\x91\x43\x92\x43\x93\x43\x94\x43\x95\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9b\x43\x9c\x43\x9d\x43\x9e\x43\x9f\x43\xa0\x43\xa1\x43\xa2\x43\xa3\x43\xa4\x43\xa5\x43\xa6\x00\x00", /* e400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa7\x43\xa8\x43\xa9\x43\xaa\x43\xab\x43\xad\x43\xae\x43\xaf\x43\xb0\x43\xb2\x43\xb3\x43\xb4\x43\xb5\x43\xb6\x43\xb7\x43\xb8\x43\xb9\x43\xba\x43\xbb\x43\xbc\x43\xbd\x43\xbe\x43\xbf\x43\xc0\x43\xc1\x43\xc2\x43\xc3\x43\xc4\x43\xc5\x43\xc6\x43\xc7\x43\xc8\x43\xc9\x43\xca\x43\xcb\x43\xcc\x43\xcd\x43\xce\x43\xcf\x43\xd0\x43\xd1\x43\xd2\x43\xd3\x43\xd4\x43\xd5\x43\xd6\x43\xd7\x43\xd8\x43\xd9\x43\xda\x43\xdb\x43\xdc\x43\xde\x43\xdf\x43\xe0\x43\xe1\x43\xe2\x43\xe3\x43\xe4\x43\xe5\x43\xe6\x43\xe7\x43\xe8", /* e480 */ "\x43\xe9\x43\xea\x43\xeb\x43\xec\x43\xed\x43\xee\x43\xef\x43\xf0\x43\xf1\x43\xf2\x43\xf3\x43\xf4\x43\xf5\x43\xf6\x43\xf7\x43\xf8\x43\xf9\x43\xfa\x43\xfb\x43\xfc\x43\xfd\x43\xfe\x43\xff\x44\x00\x44\x01\x44\x02\x44\x03\x44\x04\x44\x05\x44\x06\x44\x07\x44\x08\x44\x09\x44\x0a\x44\x0b\x44\x0c\x44\x0d\x44\x0e\x44\x0f\x44\x10\x44\x11\x44\x12\x44\x13\x44\x14\x44\x15\x44\x16\x44\x17\x44\x18\x44\x19\x44\x1a\x44\x1b\x44\x1c\x44\x1d\x44\x1e\x44\x1f\x44\x20\x44\x21\x44\x22\x44\x23\x44\x24\x44\x25\x44\x26\x44\x27\x44\x28\x44\x29\x44\x2a\x44\x2b\x44\x2c\x44\x2d\x44\x2e\x44\x2f\x44\x30\x44\x31\x44\x32\x44\x33\x44\x34\x44\x35\x44\x36\x44\x37\x44\x38\x44\x39\x44\x3a\x44\x3b\x44\x3c\x44\x3d\x44\x3e\x44\x3f\x44\x40\x44\x41\x44\x42\x44\x43\x44\x44\x44\x45\x44\x46\x44\x47\x44\x48\x44\x49\x44\x4a\x44\x4b\x44\x4c\x44\x4d\x44\x4e\x44\x4f\x44\x50\x44\x51\x44\x52\x44\x53\x44\x54\x44\x55\x44\x56\x44\x57\x44\x58\x44\x59\x44\x5a\x44\x5b\x44\x5c\x44\x5d\x44\x5e\x44\x5f\x44\x60\x44\x61\x44\x62\x44\x63\x44\x64\x44\x65\x44\x66\x44\x67\x00\x00", /* e500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x69\x44\x6a\x44\x6b\x44\x6c\x44\x6d\x44\x6e\x44\x6f\x44\x70\x44\x71\x44\x72\x44\x73\x44\x74\x44\x75\x44\x76\x44\x77\x44\x78\x44\x79\x44\x7a\x44\x7b\x44\x7c\x44\x7d\x44\x7e\x44\x7f\x44\x80\x44\x81\x44\x82\x44\x83\x44\x84\x44\x85\x44\x86\x44\x87\x44\x88\x44\x89\x44\x8a\x44\x8b\x44\x8c\x44\x8d\x44\x8e\x44\x8f\x44\x90\x44\x91\x44\x92\x44\x93\x44\x94\x44\x95\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9b\x44\x9c\x44\x9d\x44\x9e\x44\x9f\x44\xa0\x44\xa1\x44\xa2\x44\xa3\x44\xa4\x44\xa5\x44\xa6", /* e580 */ "\x44\xa7\x44\xa8\x44\xa9\x44\xaa\x44\xab\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xb0\x44\xb1\x44\xb2\x44\xb3\x44\xb4\x44\xb5\x44\xb6\x44\xb7\x44\xb8\x44\xb9\x44\xba\x44\xbb\x44\xbc\x44\xbd\x44\xbe\x44\xbf\x44\xc0\x44\xc1\x44\xc2\x44\xc3\x44\xc4\x44\xc5\x44\xc6\x44\xc7\x44\xc8\x44\xc9\x44\xca\x44\xcb\x44\xcc\x44\xcd\x44\xce\x44\xcf\x44\xd0\x44\xd1\x44\xd2\x44\xd3\x44\xd4\x44\xd5\x44\xd7\x44\xd8\x44\xd9\x44\xda\x44\xdb\x44\xdc\x44\xdd\x44\xde\x44\xdf\x44\xe0\x44\xe1\x44\xe2\x44\xe3\x44\xe4\x44\xe5\x44\xe6\x44\xe7\x44\xe8\x44\xe9\x44\xea\x44\xeb\x44\xec\x44\xed\x44\xee\x44\xef\x44\xf0\x44\xf1\x44\xf2\x44\xf3\x44\xf4\x44\xf5\x44\xf6\x44\xf7\x44\xf8\x44\xf9\x44\xfa\x44\xfb\x44\xfc\x44\xfd\x44\xfe\x44\xff\x45\x00\x45\x01\x45\x02\x45\x03\x45\x04\x45\x05\x45\x06\x45\x07\x45\x08\x45\x09\x45\x0a\x45\x0b\x45\x0c\x45\x0d\x45\x0e\x45\x0f\x45\x10\x45\x11\x45\x12\x45\x13\x45\x14\x45\x15\x45\x16\x45\x17\x45\x18\x45\x19\x45\x1a\x45\x1b\x45\x1c\x45\x1d\x45\x1e\x45\x1f\x45\x20\x45\x21\x45\x22\x45\x23\x45\x24\x45\x25\x45\x26\x00\x00", /* e600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x27\x45\x28\x45\x29\x45\x2a\x45\x2b\x45\x2c\x45\x2d\x45\x2e\x45\x2f\x45\x30\x45\x31\x45\x32\x45\x33\x45\x34\x45\x35\x45\x36\x45\x37\x45\x38\x45\x39\x45\x3a\x45\x3b\x45\x3c\x45\x3d\x45\x3e\x45\x3f\x45\x40\x45\x41\x45\x42\x45\x43\x45\x44\x45\x45\x45\x46\x45\x47\x45\x48\x45\x49\x45\x4a\x45\x4b\x45\x4c\x45\x4d\x45\x4e\x45\x4f\x45\x50\x45\x51\x45\x52\x45\x53\x45\x54\x45\x55\x45\x56\x45\x57\x45\x58\x45\x59\x45\x5a\x45\x5b\x45\x5c\x45\x5d\x45\x5e\x45\x5f\x45\x60\x45\x61\x45\x62\x45\x63\x45\x64\x45\x65", /* e680 */ "\x45\x66\x45\x67\x45\x68\x45\x69\x45\x6a\x45\x6b\x45\x6c\x45\x6d\x45\x6e\x45\x6f\x45\x70\x45\x71\x45\x72\x45\x73\x45\x74\x45\x75\x45\x76\x45\x77\x45\x78\x45\x79\x45\x7a\x45\x7b\x45\x7c\x45\x7d\x45\x7e\x45\x7f\x45\x80\x45\x81\x45\x82\x45\x83\x45\x84\x45\x85\x45\x86\x45\x87\x45\x88\x45\x89\x45\x8a\x45\x8b\x45\x8c\x45\x8d\x45\x8e\x45\x8f\x45\x90\x45\x91\x45\x92\x45\x93\x45\x94\x45\x95\x45\x96\x45\x97\x45\x98\x45\x99\x45\x9a\x45\x9b\x45\x9c\x45\x9d\x45\x9e\x45\x9f\x45\xa0\x45\xa1\x45\xa2\x45\xa3\x45\xa4\x45\xa5\x45\xa6\x45\xa7\x45\xa8\x45\xa9\x45\xaa\x45\xab\x45\xac\x45\xad\x45\xae\x45\xaf\x45\xb0\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xd9\x45\xda\x45\xdb\x45\xdc\x45\xdd\x45\xde\x45\xdf\x45\xe0\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x00\x00", /* e700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x45\xeb\x45\xec\x45\xed\x45\xee\x45\xef\x45\xf0\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x45\xfb\x45\xfc\x45\xfd\x45\xfe\x45\xff\x46\x00\x46\x01\x46\x02\x46\x03\x46\x04\x46\x05\x46\x06\x46\x07\x46\x08\x46\x09\x46\x0a\x46\x0b\x46\x0c\x46\x0d\x46\x0e\x46\x0f\x46\x10\x46\x11\x46\x12\x46\x13\x46\x14\x46\x15\x46\x16\x46\x17\x46\x18\x46\x19\x46\x1a\x46\x1b\x46\x1c\x46\x1d\x46\x1e\x46\x1f\x46\x20\x46\x21\x46\x22\x46\x23", /* e780 */ "\x46\x24\x46\x25\x46\x26\x46\x27\x46\x28\x46\x29\x46\x2a\x46\x2b\x46\x2c\x46\x2d\x46\x2e\x46\x2f\x46\x30\x46\x31\x46\x32\x46\x33\x46\x34\x46\x35\x46\x36\x46\x37\x46\x38\x46\x39\x46\x3a\x46\x3b\x46\x3c\x46\x3d\x46\x3e\x46\x3f\x46\x40\x46\x41\x46\x42\x46\x43\x46\x44\x46\x45\x46\x46\x46\x47\x46\x48\x46\x49\x46\x4a\x46\x4b\x46\x4d\x46\x4e\x46\x4f\x46\x50\x46\x51\x46\x52\x46\x53\x46\x54\x46\x55\x46\x56\x46\x57\x46\x58\x46\x59\x46\x5a\x46\x5b\x46\x5c\x46\x5d\x46\x5e\x46\x5f\x46\x60\x46\x62\x46\x63\x46\x64\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x46\x8a\x46\x8b\x46\x8c\x46\x8d\x46\x8e\x46\x8f\x46\x90\x46\x91\x46\x92\x46\x93\x46\x94\x46\x95\x46\x96\x46\x97\x46\x98\x46\x99\x46\x9a\x46\x9b\x46\x9c\x46\x9d\x46\x9e\x46\x9f\x46\xa0\x46\xa1\x46\xa2\x46\xa3\x46\xa4\x00\x00", /* e800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3", /* e880 */ "\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x46\xf0\x46\xf1\x46\xf2\x46\xf3\x46\xf4\x46\xf5\x46\xf6\x46\xf7\x46\xf8\x46\xf9\x46\xfa\x46\xfb\x46\xfc\x46\xfd\x46\xfe\x46\xff\x47\x00\x47\x01\x47\x02\x47\x03\x47\x04\x47\x05\x47\x06\x47\x07\x47\x08\x47\x09\x47\x0a\x47\x0b\x47\x0c\x47\x0d\x47\x0e\x47\x0f\x47\x10\x47\x11\x47\x12\x47\x13\x47\x14\x47\x15\x47\x16\x47\x17\x47\x18\x47\x19\x47\x1a\x47\x1b\x47\x1c\x47\x1d\x47\x1e\x47\x1f\x47\x20\x47\x21\x47\x22\x47\x24\x47\x25\x47\x26\x47\x27\x47\x28\x47\x2a\x47\x2b\x47\x2c\x47\x2d\x47\x2e\x47\x2f\x47\x30\x47\x31\x47\x32\x47\x33\x47\x34\x47\x35\x47\x36\x47\x37\x47\x38\x47\x39\x47\x3a\x47\x3b\x47\x3c\x47\x3d\x47\x3e\x47\x3f\x47\x40\x47\x41\x47\x42\x47\x43\x47\x44\x47\x45\x47\x46\x47\x47\x47\x48\x47\x49\x47\x4a\x47\x4b\x47\x4c\x47\x4d\x47\x4e\x47\x4f\x47\x50\x47\x51\x47\x52\x47\x53\x47\x54\x47\x55\x47\x56\x47\x57\x47\x58\x47\x59\x47\x5a\x47\x5b\x47\x5c\x47\x5d\x47\x5e\x47\x5f\x47\x60\x47\x61\x47\x62\x47\x63\x47\x64\x00\x00", /* e900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x65\x47\x66\x47\x67\x47\x68\x47\x69\x47\x6a\x47\x6b\x47\x6c\x47\x6d\x47\x6e\x47\x6f\x47\x70\x47\x71\x47\x72\x47\x73\x47\x74\x47\x75\x47\x76\x47\x77\x47\x78\x47\x79\x47\x7a\x47\x7b\x47\x7d\x47\x7e\x47\x7f\x47\x80\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x47\xa1\x47\xa2\x47\xa3\x47\xa4\x47\xa5", /* e980 */ "\x47\xa6\x47\xa7\x47\xa8\x47\xa9\x47\xaa\x47\xab\x47\xac\x47\xad\x47\xae\x47\xaf\x47\xb0\x47\xb1\x47\xb2\x47\xb3\x47\xb4\x47\xb5\x47\xb6\x47\xb7\x47\xb8\x47\xb9\x47\xba\x47\xbb\x47\xbc\x47\xbd\x47\xbe\x47\xbf\x47\xc0\x47\xc1\x47\xc2\x47\xc3\x47\xc4\x47\xc5\x47\xc6\x47\xc7\x47\xc8\x47\xc9\x47\xca\x47\xcb\x47\xcc\x47\xcd\x47\xce\x47\xcf\x47\xd0\x47\xd1\x47\xd2\x47\xd3\x47\xd4\x47\xd5\x47\xd6\x47\xd7\x47\xd8\x47\xd9\x47\xda\x47\xdb\x47\xdc\x47\xdd\x47\xde\x47\xdf\x47\xe0\x47\xe1\x47\xe2\x47\xe3\x47\xe4\x47\xe5\x47\xe6\x47\xe7\x47\xe8\x47\xe9\x47\xea\x47\xeb\x47\xec\x47\xed\x47\xee\x47\xef\x47\xf0\x47\xf1\x47\xf2\x47\xf3\x47\xf4\x47\xf5\x47\xf6\x47\xf7\x47\xf8\x47\xf9\x47\xfa\x47\xfb\x47\xfc\x47\xfd\x47\xfe\x47\xff\x48\x00\x48\x01\x48\x02\x48\x03\x48\x04\x48\x05\x48\x06\x48\x07\x48\x08\x48\x09\x48\x0a\x48\x0b\x48\x0c\x48\x0d\x48\x0e\x48\x0f\x48\x10\x48\x11\x48\x12\x48\x13\x48\x14\x48\x15\x48\x16\x48\x17\x48\x18\x48\x19\x48\x1a\x48\x1b\x48\x1c\x48\x1d\x48\x1e\x48\x1f\x48\x20\x48\x21\x48\x22\x48\x23\x48\x24\x00\x00", /* ea00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x25\x48\x26\x48\x27\x48\x28\x48\x29\x48\x2a\x48\x2b\x48\x2c\x48\x2d\x48\x2e\x48\x2f\x48\x30\x48\x31\x48\x32\x48\x33\x48\x34\x48\x35\x48\x36\x48\x37\x48\x38\x48\x39\x48\x3a\x48\x3b\x48\x3c\x48\x3d\x48\x3e\x48\x3f\x48\x40\x48\x41\x48\x42\x48\x43\x48\x44\x48\x45\x48\x46\x48\x47\x48\x48\x48\x49\x48\x4a\x48\x4b\x48\x4c\x48\x4d\x48\x4e\x48\x4f\x48\x50\x48\x51\x48\x52\x48\x53\x48\x54\x48\x55\x48\x56\x48\x57\x48\x58\x48\x59\x48\x5a\x48\x5b\x48\x5c\x48\x5d\x48\x5e\x48\x5f\x48\x60\x48\x61\x48\x62\x48\x63", /* ea80 */ "\x48\x64\x48\x65\x48\x66\x48\x67\x48\x68\x48\x69\x48\x6a\x48\x6b\x48\x6c\x48\x6d\x48\x6e\x48\x6f\x48\x70\x48\x71\x48\x72\x48\x73\x48\x74\x48\x75\x48\x76\x48\x77\x48\x78\x48\x79\x48\x7a\x48\x7b\x48\x7c\x48\x7d\x48\x7e\x48\x7f\x48\x80\x48\x81\x48\x82\x48\x83\x48\x84\x48\x85\x48\x86\x48\x87\x48\x88\x48\x89\x48\x8a\x48\x8b\x48\x8c\x48\x8d\x48\x8e\x48\x8f\x48\x90\x48\x91\x48\x92\x48\x93\x48\x94\x48\x95\x48\x96\x48\x97\x48\x98\x48\x99\x48\x9a\x48\x9b\x48\x9c\x48\x9d\x48\x9e\x48\x9f\x48\xa0\x48\xa1\x48\xa2\x48\xa3\x48\xa4\x48\xa5\x48\xa6\x48\xa7\x48\xa8\x48\xa9\x48\xaa\x48\xab\x48\xac\x48\xad\x48\xae\x48\xaf\x48\xb0\x48\xb1\x48\xb2\x48\xb3\x48\xb4\x48\xb5\x48\xb6\x48\xb7\x48\xb8\x48\xb9\x48\xba\x48\xbb\x48\xbc\x48\xbd\x48\xbe\x48\xbf\x48\xc0\x48\xc1\x48\xc2\x48\xc3\x48\xc4\x48\xc5\x48\xc6\x48\xc7\x48\xc8\x48\xc9\x48\xca\x48\xcb\x48\xcc\x48\xcd\x48\xce\x48\xcf\x48\xd0\x48\xd1\x48\xd2\x48\xd3\x48\xd4\x48\xd5\x48\xd6\x48\xd7\x48\xd8\x48\xd9\x48\xda\x48\xdb\x48\xdc\x48\xdd\x48\xde\x48\xdf\x48\xe0\x48\xe1\x48\xe2\x00\x00", /* eb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xe3\x48\xe4\x48\xe5\x48\xe6\x48\xe7\x48\xe8\x48\xe9\x48\xea\x48\xeb\x48\xec\x48\xed\x48\xee\x48\xef\x48\xf0\x48\xf1\x48\xf2\x48\xf3\x48\xf4\x48\xf5\x48\xf6\x48\xf7\x48\xf8\x48\xf9\x48\xfa\x48\xfb\x48\xfc\x48\xfd\x48\xfe\x48\xff\x49\x00\x49\x01\x49\x02\x49\x03\x49\x04\x49\x05\x49\x06\x49\x07\x49\x08\x49\x09\x49\x0a\x49\x0b\x49\x0c\x49\x0d\x49\x0e\x49\x0f\x49\x10\x49\x11\x49\x12\x49\x13\x49\x14\x49\x15\x49\x16\x49\x17\x49\x18\x49\x19\x49\x1a\x49\x1b\x49\x1c\x49\x1d\x49\x1e\x49\x1f\x49\x20\x49\x21", /* eb80 */ "\x49\x22\x49\x23\x49\x24\x49\x25\x49\x26\x49\x27\x49\x28\x49\x29\x49\x2a\x49\x2b\x49\x2c\x49\x2d\x49\x2e\x49\x2f\x49\x30\x49\x31\x49\x32\x49\x33\x49\x34\x49\x35\x49\x36\x49\x37\x49\x38\x49\x39\x49\x3a\x49\x3b\x49\x3c\x49\x3d\x49\x3e\x49\x3f\x49\x40\x49\x41\x49\x42\x49\x43\x49\x44\x49\x45\x49\x46\x49\x48\x49\x49\x49\x4a\x49\x4b\x49\x4c\x49\x4d\x49\x4e\x49\x4f\x49\x50\x49\x51\x49\x52\x49\x53\x49\x54\x49\x55\x49\x56\x49\x57\x49\x58\x49\x59\x49\x5a\x49\x5b\x49\x5c\x49\x5d\x49\x5e\x49\x5f\x49\x60\x49\x61\x49\x62\x49\x63\x49\x64\x49\x65\x49\x66\x49\x67\x49\x68\x49\x69\x49\x6a\x49\x6b\x49\x6c\x49\x6d\x49\x6e\x49\x6f\x49\x70\x49\x71\x49\x72\x49\x73\x49\x74\x49\x75\x49\x76\x49\x77\x49\x78\x49\x79\x49\x7b\x49\x7c\x49\x7e\x49\x7f\x49\x80\x49\x81\x49\x84\x49\x87\x49\x88\x49\x89\x49\x8a\x49\x8b\x49\x8c\x49\x8d\x49\x8e\x49\x8f\x49\x90\x49\x91\x49\x92\x49\x93\x49\x94\x49\x95\x49\x96\x49\x97\x49\x98\x49\x99\x49\x9a\x49\x9c\x49\x9d\x49\x9e\x49\xa0\x49\xa1\x49\xa2\x49\xa3\x49\xa4\x49\xa5\x49\xa6\x49\xa7\x49\xa8\x49\xa9\x00\x00", /* ec00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xaa\x49\xab\x49\xac\x49\xad\x49\xae\x49\xaf\x49\xb0\x49\xb1\x49\xb2\x49\xb3\x49\xb4\x49\xb5\x49\xb8\x49\xb9\x49\xba\x49\xbb\x49\xbc\x49\xbd\x49\xbe\x49\xbf\x49\xc0\x49\xc1\x49\xc2\x49\xc3\x49\xc4\x49\xc5\x49\xc6\x49\xc7\x49\xc8\x49\xc9\x49\xca\x49\xcb\x49\xcc\x49\xcd\x49\xce\x49\xcf\x49\xd0\x49\xd1\x49\xd2\x49\xd3\x49\xd4\x49\xd5\x49\xd6\x49\xd7\x49\xd8\x49\xd9\x49\xda\x49\xdb\x49\xdc\x49\xdd\x49\xde\x49\xdf\x49\xe0\x49\xe1\x49\xe2\x49\xe3\x49\xe4\x49\xe5\x49\xe6\x49\xe7\x49\xe8\x49\xe9\x49\xea", /* ec80 */ "\x49\xeb\x49\xec\x49\xed\x49\xee\x49\xef\x49\xf0\x49\xf1\x49\xf2\x49\xf3\x49\xf4\x49\xf5\x49\xf6\x49\xf7\x49\xf8\x49\xf9\x49\xfa\x49\xfb\x49\xfc\x49\xfd\x49\xfe\x49\xff\x4a\x00\x4a\x01\x4a\x02\x4a\x03\x4a\x04\x4a\x05\x4a\x06\x4a\x07\x4a\x08\x4a\x09\x4a\x0a\x4a\x0b\x4a\x0c\x4a\x0d\x4a\x0e\x4a\x0f\x4a\x10\x4a\x11\x4a\x12\x4a\x13\x4a\x14\x4a\x15\x4a\x16\x4a\x17\x4a\x18\x4a\x19\x4a\x1a\x4a\x1b\x4a\x1c\x4a\x1d\x4a\x1e\x4a\x1f\x4a\x20\x4a\x21\x4a\x22\x4a\x23\x4a\x24\x4a\x25\x4a\x26\x4a\x27\x4a\x28\x4a\x29\x4a\x2a\x4a\x2b\x4a\x2c\x4a\x2d\x4a\x2e\x4a\x2f\x4a\x30\x4a\x31\x4a\x32\x4a\x33\x4a\x34\x4a\x35\x4a\x36\x4a\x37\x4a\x38\x4a\x39\x4a\x3a\x4a\x3b\x4a\x3c\x4a\x3d\x4a\x3e\x4a\x3f\x4a\x40\x4a\x41\x4a\x42\x4a\x43\x4a\x44\x4a\x45\x4a\x46\x4a\x47\x4a\x48\x4a\x49\x4a\x4a\x4a\x4b\x4a\x4c\x4a\x4d\x4a\x4e\x4a\x4f\x4a\x50\x4a\x51\x4a\x52\x4a\x53\x4a\x54\x4a\x55\x4a\x56\x4a\x57\x4a\x58\x4a\x59\x4a\x5a\x4a\x5b\x4a\x5c\x4a\x5d\x4a\x5e\x4a\x5f\x4a\x60\x4a\x61\x4a\x62\x4a\x63\x4a\x64\x4a\x65\x4a\x66\x4a\x67\x4a\x68\x4a\x69\x00\x00", /* ed00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6a\x4a\x6b\x4a\x6c\x4a\x6d\x4a\x6e\x4a\x6f\x4a\x70\x4a\x71\x4a\x72\x4a\x73\x4a\x74\x4a\x75\x4a\x76\x4a\x77\x4a\x78\x4a\x79\x4a\x7a\x4a\x7b\x4a\x7c\x4a\x7d\x4a\x7e\x4a\x7f\x4a\x80\x4a\x81\x4a\x82\x4a\x83\x4a\x84\x4a\x85\x4a\x86\x4a\x87\x4a\x88\x4a\x89\x4a\x8a\x4a\x8b\x4a\x8c\x4a\x8d\x4a\x8e\x4a\x8f\x4a\x90\x4a\x91\x4a\x92\x4a\x93\x4a\x94\x4a\x95\x4a\x96\x4a\x97\x4a\x98\x4a\x99\x4a\x9a\x4a\x9b\x4a\x9c\x4a\x9d\x4a\x9e\x4a\x9f\x4a\xa0\x4a\xa1\x4a\xa2\x4a\xa3\x4a\xa4\x4a\xa5\x4a\xa6\x4a\xa7\x4a\xa8", /* ed80 */ "\x4a\xa9\x4a\xaa\x4a\xab\x4a\xac\x4a\xad\x4a\xae\x4a\xaf\x4a\xb0\x4a\xb1\x4a\xb2\x4a\xb3\x4a\xb4\x4a\xb5\x4a\xb6\x4a\xb7\x4a\xb8\x4a\xb9\x4a\xba\x4a\xbb\x4a\xbc\x4a\xbd\x4a\xbe\x4a\xbf\x4a\xc0\x4a\xc1\x4a\xc2\x4a\xc3\x4a\xc4\x4a\xc5\x4a\xc6\x4a\xc7\x4a\xc8\x4a\xc9\x4a\xca\x4a\xcb\x4a\xcc\x4a\xcd\x4a\xce\x4a\xcf\x4a\xd0\x4a\xd1\x4a\xd2\x4a\xd3\x4a\xd4\x4a\xd5\x4a\xd6\x4a\xd7\x4a\xd8\x4a\xd9\x4a\xda\x4a\xdb\x4a\xdc\x4a\xdd\x4a\xde\x4a\xdf\x4a\xe0\x4a\xe1\x4a\xe2\x4a\xe3\x4a\xe4\x4a\xe5\x4a\xe6\x4a\xe7\x4a\xe8\x4a\xe9\x4a\xea\x4a\xeb\x4a\xec\x4a\xed\x4a\xee\x4a\xef\x4a\xf0\x4a\xf1\x4a\xf2\x4a\xf3\x4a\xf4\x4a\xf5\x4a\xf6\x4a\xf7\x4a\xf8\x4a\xf9\x4a\xfa\x4a\xfb\x4a\xfc\x4a\xfd\x4a\xfe\x4a\xff\x4b\x00\x4b\x01\x4b\x02\x4b\x03\x4b\x04\x4b\x05\x4b\x06\x4b\x07\x4b\x08\x4b\x09\x4b\x0a\x4b\x0b\x4b\x0c\x4b\x0d\x4b\x0e\x4b\x0f\x4b\x10\x4b\x11\x4b\x12\x4b\x13\x4b\x14\x4b\x15\x4b\x16\x4b\x17\x4b\x18\x4b\x19\x4b\x1a\x4b\x1b\x4b\x1c\x4b\x1d\x4b\x1e\x4b\x1f\x4b\x20\x4b\x21\x4b\x22\x4b\x23\x4b\x24\x4b\x25\x4b\x26\x4b\x27\x00\x00", /* ee00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x28\x4b\x29\x4b\x2a\x4b\x2b\x4b\x2c\x4b\x2d\x4b\x2e\x4b\x2f\x4b\x30\x4b\x31\x4b\x32\x4b\x33\x4b\x34\x4b\x35\x4b\x36\x4b\x37\x4b\x38\x4b\x39\x4b\x3a\x4b\x3b\x4b\x3c\x4b\x3d\x4b\x3e\x4b\x3f\x4b\x40\x4b\x41\x4b\x42\x4b\x43\x4b\x44\x4b\x45\x4b\x46\x4b\x47\x4b\x48\x4b\x49\x4b\x4a\x4b\x4b\x4b\x4c\x4b\x4d\x4b\x4e\x4b\x4f\x4b\x50\x4b\x51\x4b\x52\x4b\x53\x4b\x54\x4b\x55\x4b\x56\x4b\x57\x4b\x58\x4b\x59\x4b\x5a\x4b\x5b\x4b\x5c\x4b\x5d\x4b\x5e\x4b\x5f\x4b\x60\x4b\x61\x4b\x62\x4b\x63\x4b\x64\x4b\x65\x4b\x66", /* ee80 */ "\x4b\x67\x4b\x68\x4b\x69\x4b\x6a\x4b\x6b\x4b\x6c\x4b\x6d\x4b\x6e\x4b\x6f\x4b\x70\x4b\x71\x4b\x72\x4b\x73\x4b\x74\x4b\x75\x4b\x76\x4b\x77\x4b\x78\x4b\x79\x4b\x7a\x4b\x7b\x4b\x7c\x4b\x7d\x4b\x7e\x4b\x7f\x4b\x80\x4b\x81\x4b\x82\x4b\x83\x4b\x84\x4b\x85\x4b\x86\x4b\x87\x4b\x88\x4b\x89\x4b\x8a\x4b\x8b\x4b\x8c\x4b\x8d\x4b\x8e\x4b\x8f\x4b\x90\x4b\x91\x4b\x92\x4b\x93\x4b\x94\x4b\x95\x4b\x96\x4b\x97\x4b\x98\x4b\x99\x4b\x9a\x4b\x9b\x4b\x9c\x4b\x9d\x4b\x9e\x4b\x9f\x4b\xa0\x4b\xa1\x4b\xa2\x4b\xa3\x4b\xa4\x4b\xa5\x4b\xa6\x4b\xa7\x4b\xa8\x4b\xa9\x4b\xaa\x4b\xab\x4b\xac\x4b\xad\x4b\xae\x4b\xaf\x4b\xb0\x4b\xb1\x4b\xb2\x4b\xb3\x4b\xb4\x4b\xb5\x4b\xb6\x4b\xb7\x4b\xb8\x4b\xb9\x4b\xba\x4b\xbb\x4b\xbc\x4b\xbd\x4b\xbe\x4b\xbf\x4b\xc0\x4b\xc1\x4b\xc2\x4b\xc3\x4b\xc4\x4b\xc5\x4b\xc6\x4b\xc7\x4b\xc8\x4b\xc9\x4b\xca\x4b\xcb\x4b\xcc\x4b\xcd\x4b\xce\x4b\xcf\x4b\xd0\x4b\xd1\x4b\xd2\x4b\xd3\x4b\xd4\x4b\xd5\x4b\xd6\x4b\xd7\x4b\xd8\x4b\xd9\x4b\xda\x4b\xdb\x4b\xdc\x4b\xdd\x4b\xde\x4b\xdf\x4b\xe0\x4b\xe1\x4b\xe2\x4b\xe3\x4b\xe4\x4b\xe5\x00\x00", /* ef00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe6\x4b\xe7\x4b\xe8\x4b\xe9\x4b\xea\x4b\xeb\x4b\xec\x4b\xed\x4b\xee\x4b\xef\x4b\xf0\x4b\xf1\x4b\xf2\x4b\xf3\x4b\xf4\x4b\xf5\x4b\xf6\x4b\xf7\x4b\xf8\x4b\xf9\x4b\xfa\x4b\xfb\x4b\xfc\x4b\xfd\x4b\xfe\x4b\xff\x4c\x00\x4c\x01\x4c\x02\x4c\x03\x4c\x04\x4c\x05\x4c\x06\x4c\x07\x4c\x08\x4c\x09\x4c\x0a\x4c\x0b\x4c\x0c\x4c\x0d\x4c\x0e\x4c\x0f\x4c\x10\x4c\x11\x4c\x12\x4c\x13\x4c\x14\x4c\x15\x4c\x16\x4c\x17\x4c\x18\x4c\x19\x4c\x1a\x4c\x1b\x4c\x1c\x4c\x1d\x4c\x1e\x4c\x1f\x4c\x20\x4c\x21\x4c\x22\x4c\x23\x4c\x24", /* ef80 */ "\x4c\x25\x4c\x26\x4c\x27\x4c\x28\x4c\x29\x4c\x2a\x4c\x2b\x4c\x2c\x4c\x2d\x4c\x2e\x4c\x2f\x4c\x30\x4c\x31\x4c\x32\x4c\x33\x4c\x34\x4c\x35\x4c\x36\x4c\x37\x4c\x38\x4c\x39\x4c\x3a\x4c\x3b\x4c\x3c\x4c\x3d\x4c\x3e\x4c\x3f\x4c\x40\x4c\x41\x4c\x42\x4c\x43\x4c\x44\x4c\x45\x4c\x46\x4c\x47\x4c\x48\x4c\x49\x4c\x4a\x4c\x4b\x4c\x4c\x4c\x4d\x4c\x4e\x4c\x4f\x4c\x50\x4c\x51\x4c\x52\x4c\x53\x4c\x54\x4c\x55\x4c\x56\x4c\x57\x4c\x58\x4c\x59\x4c\x5a\x4c\x5b\x4c\x5c\x4c\x5d\x4c\x5e\x4c\x5f\x4c\x60\x4c\x61\x4c\x62\x4c\x63\x4c\x64\x4c\x65\x4c\x66\x4c\x67\x4c\x68\x4c\x69\x4c\x6a\x4c\x6b\x4c\x6c\x4c\x6d\x4c\x6e\x4c\x6f\x4c\x70\x4c\x71\x4c\x72\x4c\x73\x4c\x74\x4c\x75\x4c\x76\x4c\x78\x4c\x79\x4c\x7a\x4c\x7b\x4c\x7c\x4c\x7d\x4c\x7e\x4c\x7f\x4c\x80\x4c\x81\x4c\x82\x4c\x83\x4c\x84\x4c\x85\x4c\x86\x4c\x87\x4c\x88\x4c\x89\x4c\x8a\x4c\x8b\x4c\x8c\x4c\x8d\x4c\x8e\x4c\x8f\x4c\x90\x4c\x91\x4c\x92\x4c\x93\x4c\x94\x4c\x95\x4c\x96\x4c\x97\x4c\x98\x4c\x99\x4c\x9a\x4c\x9b\x4c\x9c\x4c\x9d\x4c\x9e\x4c\xa4\x4c\xa5\x4c\xa6\x4c\xa7\x4c\xa8\x4c\xa9\x00\x00", /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xaa\x4c\xab\x4c\xac\x4c\xad\x4c\xae\x4c\xaf\x4c\xb0\x4c\xb1\x4c\xb2\x4c\xb3\x4c\xb4\x4c\xb5\x4c\xb6\x4c\xb7\x4c\xb8\x4c\xb9\x4c\xba\x4c\xbb\x4c\xbc\x4c\xbd\x4c\xbe\x4c\xbf\x4c\xc0\x4c\xc1\x4c\xc2\x4c\xc3\x4c\xc4\x4c\xc5\x4c\xc6\x4c\xc7\x4c\xc8\x4c\xc9\x4c\xca\x4c\xcb\x4c\xcc\x4c\xcd\x4c\xce\x4c\xcf\x4c\xd0\x4c\xd1\x4c\xd2\x4c\xd3\x4c\xd4\x4c\xd5\x4c\xd6\x4c\xd7\x4c\xd8\x4c\xd9\x4c\xda\x4c\xdb\x4c\xdc\x4c\xdd\x4c\xde\x4c\xdf\x4c\xe0\x4c\xe1\x4c\xe2\x4c\xe3\x4c\xe4\x4c\xe5\x4c\xe6\x4c\xe7\x4c\xe8", /* f680 */ "\x4c\xe9\x4c\xea\x4c\xeb\x4c\xec\x4c\xed\x4c\xee\x4c\xef\x4c\xf0\x4c\xf1\x4c\xf2\x4c\xf3\x4c\xf4\x4c\xf5\x4c\xf6\x4c\xf7\x4c\xf8\x4c\xf9\x4c\xfa\x4c\xfb\x4c\xfc\x4c\xfd\x4c\xfe\x4c\xff\x4d\x00\x4d\x01\x4d\x02\x4d\x03\x4d\x04\x4d\x05\x4d\x06\x4d\x07\x4d\x08\x4d\x09\x4d\x0a\x4d\x0b\x4d\x0c\x4d\x0d\x4d\x0e\x4d\x0f\x4d\x10\x4d\x11\x4d\x12\x4d\x1a\x4d\x1b\x4d\x1c\x4d\x1d\x4d\x1e\x4d\x1f\x4d\x20\x4d\x21\x4d\x22\x4d\x23\x4d\x24\x4d\x25\x4d\x26\x4d\x27\x4d\x28\x4d\x29\x4d\x2a\x4d\x2b\x4d\x2c\x4d\x2d\x4d\x2e\x4d\x2f\x4d\x30\x4d\x31\x4d\x32\x4d\x33\x4d\x34\x4d\x35\x4d\x36\x4d\x37\x4d\x38\x4d\x39\x4d\x3a\x4d\x3b\x4d\x3c\x4d\x3d\x4d\x3e\x4d\x3f\x4d\x40\x4d\x41\x4d\x42\x4d\x43\x4d\x44\x4d\x45\x4d\x46\x4d\x47\x4d\x48\x4d\x49\x4d\x4a\x4d\x4b\x4d\x4c\x4d\x4d\x4d\x4e\x4d\x4f\x4d\x50\x4d\x51\x4d\x52\x4d\x53\x4d\x54\x4d\x55\x4d\x56\x4d\x57\x4d\x58\x4d\x59\x4d\x5a\x4d\x5b\x4d\x5c\x4d\x5d\x4d\x5e\x4d\x5f\x4d\x60\x4d\x61\x4d\x62\x4d\x63\x4d\x64\x4d\x65\x4d\x66\x4d\x67\x4d\x68\x4d\x69\x4d\x6a\x4d\x6b\x4d\x6c\x4d\x6d\x4d\x6e\x00\x00", /* f700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6f\x4d\x70\x4d\x71\x4d\x72\x4d\x73\x4d\x74\x4d\x75\x4d\x76\x4d\x77\x4d\x78\x4d\x79\x4d\x7a\x4d\x7b\x4d\x7c\x4d\x7d\x4d\x7e\x4d\x7f\x4d\x80\x4d\x81\x4d\x82\x4d\x83\x4d\x84\x4d\x85\x4d\x86\x4d\x87\x4d\x88\x4d\x89\x4d\x8a\x4d\x8b\x4d\x8c\x4d\x8d\x4d\x8e\x4d\x8f\x4d\x90\x4d\x91\x4d\x92\x4d\x93\x4d\x94\x4d\x95\x4d\x96\x4d\x97\x4d\x98\x4d\x99\x4d\x9a\x4d\x9b\x4d\x9c\x4d\x9d\x4d\x9e\x4d\x9f\x4d\xa0\x4d\xa1\x4d\xa2\x4d\xa3\x4d\xa4\x4d\xa5\x4d\xa6\x4d\xa7\x4d\xa8\x4d\xa9\x4d\xaa\x4d\xab\x4d\xac\x4d\xad", /* f780 */ "\x4d\xaf\x4d\xb0\x4d\xb1\x4d\xb2\x4d\xb3\x4d\xb4\x4d\xb5\x4d\xb6\x4d\xb7\x4d\xb8\x4d\xb9\x4d\xba\x4d\xbb\x4d\xbc\x4d\xbd\x4d\xbe\x4d\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x56\xfb\x57\xfb\x58\xfb\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x7a\xfb\x7b\xfb\x7c\xfb\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x8e", /* f880 */ "\xfb\x8f\xfb\x90\xfb\x91\xfb\x92\xfb\x93\xfb\x94\xfb\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xaa\xfb\xab\xfb\xac\xfb\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xd3\xfb\xd4\xfb\xd5\xfb\xd6\xfb\xd7\xfb\xd8\xfb\xd9\xfb\xda\xfb\xdb\xfb\xdc\xfb\xdd\xfb\xde\xfb\xdf\xfb\xe0\xfb\xe1\xfb\xe2\xfb\xe3\xfb\xe4\xfb\xe5\xfb\xe6\xfb\xe7\xfb\xe8\xfb\xe9\xfb\xea\xfb\xeb\xfb\xec\xfb\xed\xfb\xee\xfb\xef\xfb\xf0\xfb\xf1\xfb\xf2\xfb\xf3\xfb\xf4\xfb\xf5\xfb\xf6\xfb\xf7\xfb\xf8\xfb\xf9\xfb\xfa\xfb\xfb\xfb\xfc\xfb\xfd\xfb\xfe\xfb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x89\xfe\x8a\xfe\x8b\xfe\x8c\xfe\x8d\xfe\x8e\xfe\x8f\xfe\x90\xfe\x91\xfe\x92\x00\x00\x00\x00\xfe\x95\xfe\x96\xfe\x97\xfe\x98\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x9d\xfe\x9e\xfe\x9f\xfe\xa0\xfe\xa1\xfe\xa2\xfe\xa3\xfe\xa4\xfe\xa5\xfe\xa6\xfe\xa7\xfe\xa8\xfe\xa9\xfe\xaa\x00\x00\x00\x00\xfe\xad\xfe\xae\xfe\xaf\xfe\xb0\xfe\xb1\xfe\xb2\xfe\xb3\xfe\xb4\xfe\xb5\xfe\xb6\xfe\xb7\x00\x00", /* fc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xc9\xfe\xca\xfe\xcb\xfe\xcc\xfe\xcd\xfe\xce\xfe\xcf\xfe\xd0\xfe\xd1\xfe\xd2\xfe\xd3\xfe\xd4\xfe\xd5\xfe\xd6\xfe\xd7\xfe\xd8\xfe\xd9\xfe\xda\xfe\xdb\xfe\xdc\xfe\xdd\xfe\xde\xfe\xdf\xfe\xe0\xfe\xe1\xfe\xe2\xfe\xe3\xfe\xe4\xfe\xe5\xfe\xe6\xfe\xe7\xfe\xe8\xfe\xe9\xfe\xea\xfe\xeb\xfe\xec\xfe\xed\xfe\xee\xfe\xef\xfe\xf0\xfe\xf1\xfe\xf2\xfe\xf3\xfe\xf4\x00\x00\x00\x00", /* fc80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfb\xfe\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { NULL } }; /* Code page aliases. */ typedef struct { char *alias; char *canon; } cpalias_t; cpalias_t cpaliases16[] = { { "chinese-gb18030", "cp1388" }, { "cp1027", "cp930" }, /* historical error */ { "cp290", "cp930" }, /* historical error */ { "cp936", "cp935" }, /* historical error */ { "japanese-1027", "cp930" }, /* historical error */ { "japanese-290", "cp930" }, /* historical error */ { "japanese-kana", "cp930" }, { "japanese-latin", "cp930" }, /* 930 and 939 DBCS are the same */ { "simplified-chinese", "cp935" }, { "traditional-chinese", "cp937" }, { NULL, NULL } }; static uni16_t *cur_uni16 = NULL; void charset_list_dbcs(void) { int i; int j; char *sep = ""; printf("DBCS host code pages (with aliases):\n"); for (i = 0; uni16[i].name != NULL; i++) { Boolean any = False; char *asep = " ("; printf("%s%s", sep, uni16[i].name); for (j = 0; cpaliases16[j].alias != NULL; j++) { if (!strcmp(cpaliases16[j].canon, uni16[i].name)) { printf("%s%s", asep, cpaliases16[j].alias); asep = ", "; any = True; } } if (any) printf(")"); sep = ", "; } printf("\n"); } /* * Translate a single DBCS EBCDIC character to Unicode. * * If EUO_BLANK_UNDEF is set, undisplayable characters are returned as * wide spaces (U+3000); otherwise they are returned as 0. */ ucs4_t ebcdic_dbcs_to_unicode(ebc_t c, unsigned flags) { int row, col; int ix; if (cur_uni16 == NULL || c < 0x100) return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; if (c == 0x4040) return 0x3000; row = (c >> 7) & 0x1ff; if (cur_uni16->ebc2u[row] == NULL) return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; col = (c & 0x7f) * 2; ix = ((cur_uni16->ebc2u[row][col] & 0xff) << 8) | (cur_uni16->ebc2u[row][col + 1] & 0xff); if (ix) return ix; else return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; } /* * Map a UCS-4 character to a DBCS EBCDIC character. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic_dbcs(ucs4_t u) { int row, col; int ix; if (cur_uni16 == NULL || !u) return 0; if (u == 0x3000) return 0x4040; row = (u >> 7) & 0x1ff; if (cur_uni16->u2ebc[row] == NULL) return 0; col = (u & 0x7f) * 2; ix = ((cur_uni16->u2ebc[row][col] & 0xff) << 8) | (cur_uni16->u2ebc[row][col + 1] & 0xff); return ix; } /* * Set the EBCDIC-to-Unicode DBCS translation table. * Returns 0 for success, -1 for failure. */ int set_uni_dbcs(const char *csname, const char **codepage, const char **display_charsets) { int i; const char *realname = csname; int rc = -1; /* Search for an alias. */ for (i = 0; cpaliases16[i].alias != NULL; i++) { if (!strcasecmp(csname, cpaliases16[i].alias)) { realname = cpaliases16[i].canon; break; } } /* Search for a match. */ for (i = 0; uni16[i].name != NULL; i++) { if (!strcasecmp(realname, uni16[i].name)) { cur_uni16 = &uni16[i]; *codepage = uni16[i].codepage; *display_charsets = uni16[i].display_charset; rc = 0; break; } } /* * If this fails (which we sometimes do on purpose), forget any * old setting. */ if (rc == -1) cur_uni16 = NULL; return rc; } #endif /*]*/ ibm-3270-3.3.10ga4/wpr3287/3270ds.h0000644000175000017500000003372511254565704015430 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES AND GTRC * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, JEFF * SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * 3270ds.h * * Header file for the 3270 Data Stream Protocol. */ /* 3270 commands */ #define CMD_W 0x01 /* write */ #define CMD_RB 0x02 /* read buffer */ #define CMD_NOP 0x03 /* no-op */ #define CMD_EW 0x05 /* erase/write */ #define CMD_RM 0x06 /* read modified */ #define CMD_EWA 0x0d /* erase/write alternate */ #define CMD_RMA 0x0e /* read modified all */ #define CMD_EAU 0x0f /* erase all unprotected */ #define CMD_WSF 0x11 /* write structured field */ /* SNA 3270 commands */ #define SNA_CMD_RMA 0x6e /* read modified all */ #define SNA_CMD_EAU 0x6f /* erase all unprotected */ #define SNA_CMD_EWA 0x7e /* erase/write alternate */ #define SNA_CMD_W 0xf1 /* write */ #define SNA_CMD_RB 0xf2 /* read buffer */ #define SNA_CMD_WSF 0xf3 /* write structured field */ #define SNA_CMD_EW 0xf5 /* erase/write */ #define SNA_CMD_RM 0xf6 /* read modified */ /* 3270 orders */ #define ORDER_PT 0x05 /* program tab */ #define ORDER_GE 0x08 /* graphic escape */ #define ORDER_SBA 0x11 /* set buffer address */ #define ORDER_EUA 0x12 /* erase unprotected to address */ #define ORDER_IC 0x13 /* insert cursor */ #define ORDER_SF 0x1d /* start field */ #define ORDER_SA 0x28 /* set attribute */ #define ORDER_SFE 0x29 /* start field extended */ #define ORDER_YALE 0x2b /* Yale sub command */ #define ORDER_MF 0x2c /* modify field */ #define ORDER_RA 0x3c /* repeat to address */ #define FCORDER_NULL 0x00 /* format control: null */ #define FCORDER_FF 0x0c /* form feed */ #define FCORDER_CR 0x0d /* carriage return */ #define FCORDER_SO 0x0e /* shift out (DBCS subfield) */ #define FCORDER_SI 0x0f /* shift in (DBCS end) */ #define FCORDER_NL 0x15 /* new line */ #define FCORDER_EM 0x19 /* end of medium */ #define FCORDER_DUP 0x1c /* duplicate */ #define FCORDER_FM 0x1e /* field mark */ #define FCORDER_SUB 0x3f /* substitute */ #define FCORDER_EO 0xff /* eight ones */ /* SCS control code, some overlap orders */ #define SCS_BS 0x16 /* Back Space */ #define SCS_BEL 0x2f /* Bell Function */ #define SCS_CR 0x0d /* Carriage Return */ #define SCS_ENP 0x14 /* Enable Presentation */ #define SCS_FF 0x0c /* Forms Feed */ #define SCS_GE 0x08 /* Graphic Escape */ #define SCS_HT 0x05 /* Horizontal Tab */ #define SCS_INP 0x24 /* Inhibit Presentation */ #define SCS_IRS 0x1e /* Interchange-Record Separator */ #define SCS_LF 0x25 /* Line Feed */ #define SCS_NL 0x15 /* New Line */ #define SCS_SA 0x28 /* Set Attribute: */ #define SCS_SA_RESET 0x00 /* Reset all */ #define SCS_SA_HIGHLIGHT 0x41 /* Highlighting */ #define SCS_SA_CS 0x42 /* Character set */ #define SCS_SA_GRID 0xc2 /* Grid */ #define SCS_SET 0x2b /* Set: */ #define SCS_SHF 0xc1 /* Horizontal format */ #define SCS_SLD 0xc6 /* Line Density */ #define SCS_SVF 0xc2 /* Vertical Format */ #define SCS_SO 0x0e /* Shift out (DBCS subfield start) */ #define SCS_SI 0x0f /* Shift in (DBCS subfield end) */ #define SCS_TRN 0x35 /* Transparent */ #define SCS_VCS 0x04 /* Vertical Channel Select */ #define SCS_VT 0x0b /* Vertical Tab */ /* Structured fields */ #define SF_READ_PART 0x01 /* read partition */ #define SF_RP_QUERY 0x02 /* query */ #define SF_RP_QLIST 0x03 /* query list */ #define SF_RPQ_LIST 0x00 /* QCODE list */ #define SF_RPQ_EQUIV 0x40 /* equivalent+ QCODE list */ #define SF_RPQ_ALL 0x80 /* all */ #define SF_ERASE_RESET 0x03 /* erase/reset */ #define SF_ER_DEFAULT 0x00 /* default */ #define SF_ER_ALT 0x80 /* alternate */ #define SF_SET_REPLY_MODE 0x09 /* set reply mode */ #define SF_SRM_FIELD 0x00 /* field */ #define SF_SRM_XFIELD 0x01 /* extended field */ #define SF_SRM_CHAR 0x02 /* character */ #define SF_CREATE_PART 0x0c /* create partition */ #define CPFLAG_PROT 0x40 /* protected flag */ #define CPFLAG_COPY_PS 0x20 /* local copy to presentation space */ #define CPFLAG_BASE 0x07 /* base character set index */ #define SF_OUTBOUND_DS 0x40 /* outbound 3270 DS */ #define SF_TRANSFER_DATA 0xd0 /* file transfer open request */ /* Query replies */ #define QR_SUMMARY 0x80 /* summary */ #define QR_USABLE_AREA 0x81 /* usable area */ #define QR_IMAGE 0x82 /* image */ #define QR_TEXT_PART 0x83 /* text partitions */ #define QR_ALPHA_PART 0x84 /* alphanumeric partitions */ #define QR_CHARSETS 0x85 /* character sets */ #define QR_COLOR 0x86 /* color */ #define QR_HIGHLIGHTING 0x87 /* highlighting */ #define QR_REPLY_MODES 0x88 /* reply modes */ #define QR_FIELD_VAL 0x8a /* field validation */ #define QR_MSR_CTL 0x8b /* MSR control */ #define QR_OUTLINING 0x8c /* field outlining */ #define QR_PART_CHAR 0x8e /* partition characteristics */ #define QR_OEM_AUX 0x8f /* OEM auxiliary device */ #define QR_FMT_PRES 0x90 /* format presentation */ #define QR_DBCS_ASIA 0x91 /* DBCS-Asia */ #define QR_SAVE_RESTORE 0x92 /* save/restore format */ #define QR_PC3270 0x93 /* PC3270 */ #define QR_FMT_SAD 0x94 /* format storage auxiliary device */ #define QR_DDM 0x95 /* distributed data management */ #define QR_STG_POOLS 0x96 /* storage pools */ #define QR_DIA 0x97 /* document interchange architecture */ #define QR_DATA_CHAIN 0x98 /* data chaining */ #define QR_AUX_DEVICE 0x99 /* auxiliary device */ #define QR_3270_IPDS 0x9a /* 3270 IPDS */ #define QR_PDDS 0x9c /* product defined data stream */ #define QR_IBM_AUX 0x9e /* IBM auxiliary device */ #define QR_BEGIN_EOF 0x9f /* begin/end of file */ #define QR_DEVICE_CHAR 0xa0 /* device characteristics */ #define QR_RPQNAMES 0xa1 /* RPQ names */ #define QR_DATA_STREAMS 0xa2 /* data streams */ #define QR_IMP_PART 0xa6 /* implicit partition */ #define QR_PAPER_FEED 0xa7 /* paper feed techniques */ #define QR_TRANSPARENCY 0xa8 /* transparency */ #define QR_SPC 0xa9 /* settable printer characteristics */ #define QR_IOCA_AD 0xaa /* IOCA auxiliary device */ #define QR_CPR 0xab /* cooperative proc. requestor */ #define QR_SEGMENT 0xb0 /* segment */ #define QR_PROCEDURE 0xb1 /* procedure */ #define QR_LINE_TYPE 0xb2 /* line type */ #define QR_PORT 0xb3 /* port */ #define QR_GCOLOR 0xb4 /* graphic color */ #define QR_XDR 0xb5 /* extended drawing routine */ #define QR_GSS 0xb6 /* graphic symbol sets */ #define QR_NULL 0xff /* null */ #define BA_TO_ROW(ba) ((ba) / COLS) #define BA_TO_COL(ba) ((ba) % COLS) #define ROWCOL_TO_BA(r,c) (((r) * COLS) + c) #define INC_BA(ba) { (ba) = ((ba) + 1) % (COLS * ROWS); } #define DEC_BA(ba) { (ba) = (ba) ? (ba - 1) : ((COLS*ROWS) - 1); } /* Field attributes. */ #define FA_PRINTABLE 0xc0 /* these make the character "printable" */ #define FA_PROTECT 0x20 /* unprotected (0) / protected (1) */ #define FA_NUMERIC 0x10 /* alphanumeric (0) /numeric (1) */ #define FA_INTENSITY 0x0c /* display/selector pen detectable: */ #define FA_INT_NORM_NSEL 0x00 /* 00 normal, non-detect */ #define FA_INT_NORM_SEL 0x04 /* 01 normal, detectable */ #define FA_INT_HIGH_SEL 0x08 /* 10 intensified, detectable */ #define FA_INT_ZERO_NSEL 0x0c /* 11 nondisplay, non-detect */ #define FA_RESERVED 0x02 /* must be 0 */ #define FA_MODIFY 0x01 /* modified (1) */ /* Bits in the field attribute that are stored. */ #define FA_MASK (FA_PROTECT | FA_NUMERIC | FA_INTENSITY | FA_MODIFY) /* Tests for various attribute properties. */ #define FA_IS_MODIFIED(c) ((c) & FA_MODIFY) #define FA_IS_NUMERIC(c) ((c) & FA_NUMERIC) #define FA_IS_PROTECTED(c) ((c) & FA_PROTECT) #define FA_IS_SKIP(c) (((c) & FA_PROTECT) && ((c) & FA_NUMERIC)) #define FA_IS_ZERO(c) \ (((c) & FA_INTENSITY) == FA_INT_ZERO_NSEL) #define FA_IS_HIGH(c) \ (((c) & FA_INTENSITY) == FA_INT_HIGH_SEL) #define FA_IS_NORMAL(c) \ ( \ ((c) & FA_INTENSITY) == FA_INT_NORM_NSEL \ || \ ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \ ) #define FA_IS_SELECTABLE(c) \ ( \ ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \ || \ ((c) & FA_INTENSITY) == FA_INT_HIGH_SEL \ ) #define FA_IS_INTENSE(c) \ ((c & FA_INT_HIGH_SEL) == FA_INT_HIGH_SEL) /* Extended attributes */ #define XA_ALL 0x00 #define XA_3270 0xc0 #define XA_VALIDATION 0xc1 #define XAV_FILL 0x04 #define XAV_ENTRY 0x02 #define XAV_TRIGGER 0x01 #define XA_OUTLINING 0xc2 #define XAO_UNDERLINE 0x01 #define XAO_RIGHT 0x02 #define XAO_OVERLINE 0x04 #define XAO_LEFT 0x08 #define XA_HIGHLIGHTING 0x41 #define XAH_DEFAULT 0x00 #define XAH_NORMAL 0xf0 #define XAH_BLINK 0xf1 #define XAH_REVERSE 0xf2 #define XAH_UNDERSCORE 0xf4 #define XAH_INTENSIFY 0xf8 #define XA_FOREGROUND 0x42 #define XAC_DEFAULT 0x00 #define XA_CHARSET 0x43 #define XA_BACKGROUND 0x45 #define XA_TRANSPARENCY 0x46 #define XAT_DEFAULT 0x00 #define XAT_OR 0xf0 #define XAT_XOR 0xf1 #define XAT_OPAQUE 0xff #define XA_INPUT_CONTROL 0xfe #define XAI_DISABLED 0x00 #define XAI_ENABLED 0x01 /* WCC definitions */ #define WCC_RESET(c) ((c) & 0x40) #define WCC_START_PRINTER(c) ((c) & 0x08) #define WCC_SOUND_ALARM(c) ((c) & 0x04) #define WCC_KEYBOARD_RESTORE(c) ((c) & 0x02) #define WCC_RESET_MDT(c) ((c) & 0x01) /* AIDs */ #define AID_NO 0x60 /* no AID generated */ #define AID_QREPLY 0x61 #define AID_ENTER 0x7d #define AID_PF1 0xf1 #define AID_PF2 0xf2 #define AID_PF3 0xf3 #define AID_PF4 0xf4 #define AID_PF5 0xf5 #define AID_PF6 0xf6 #define AID_PF7 0xf7 #define AID_PF8 0xf8 #define AID_PF9 0xf9 #define AID_PF10 0x7a #define AID_PF11 0x7b #define AID_PF12 0x7c #define AID_PF13 0xc1 #define AID_PF14 0xc2 #define AID_PF15 0xc3 #define AID_PF16 0xc4 #define AID_PF17 0xc5 #define AID_PF18 0xc6 #define AID_PF19 0xc7 #define AID_PF20 0xc8 #define AID_PF21 0xc9 #define AID_PF22 0x4a #define AID_PF23 0x4b #define AID_PF24 0x4c #define AID_OICR 0xe6 #define AID_MSR_MHS 0xe7 #define AID_SELECT 0x7e #define AID_PA1 0x6c #define AID_PA2 0x6e #define AID_PA3 0x6b #define AID_CLEAR 0x6d #define AID_SYSREQ 0xf0 #define AID_SF 0x88 #define SFID_QREPLY 0x81 /* Colors */ #define HOST_COLOR_NEUTRAL_BLACK 0 #define HOST_COLOR_BLUE 1 #define HOST_COLOR_RED 2 #define HOST_COLOR_PINK 3 #define HOST_COLOR_GREEN 4 #define HOST_COLOR_TURQUOISE 5 #define HOST_COLOR_YELLOW 6 #define HOST_COLOR_NEUTRAL_WHITE 7 #define HOST_COLOR_BLACK 8 #define HOST_COLOR_DEEP_BLUE 9 #define HOST_COLOR_ORANGE 10 #define HOST_COLOR_PURPLE 11 #define HOST_COLOR_PALE_GREEN 12 #define HOST_COLOR_PALE_TURQUOISE 13 #define HOST_COLOR_GREY 14 #define HOST_COLOR_WHITE 15 /* Data stream manipulation macros. */ #define MASK32 0xff000000U #define MASK24 0x00ff0000U #define MASK16 0x0000ff00U #define MASK08 0x000000ffU #define MINUS1 0xffffffffU #define SET16(ptr, val) { \ *((ptr)++) = ((val) & MASK16) >> 8; \ *((ptr)++) = ((val) & MASK08); \ } #define GET16(val, ptr) { \ (val) = *((ptr)+1); \ (val) += *(ptr) << 8; \ } #define SET32(ptr, val) { \ *((ptr)++) = ((val) & MASK32) >> 24; \ *((ptr)++) = ((val) & MASK24) >> 16; \ *((ptr)++) = ((val) & MASK16) >> 8; \ *((ptr)++) = ((val) & MASK08); \ } #define HIGH8(s) (((s) >> 8) & 0xff) #define LOW8(s) ((s) & 0xff) /* Other EBCDIC control codes. */ #define EBC_null 0x00 #define EBC_ff 0x0c #define EBC_cr 0x0d #define EBC_so 0x0e #define EBC_si 0x0f #define EBC_nl 0x15 #define EBC_em 0x19 #define EBC_dup 0x1c #define EBC_fm 0x1e #define EBC_sub 0x3f #define EBC_space 0x40 #define EBC_nobreakspace 0x41 #define EBC_period 0x4b #define EBC_ampersand 0x50 #define EBC_underscore 0x6d #define EBC_greater 0x6e #define EBC_question 0x6f #define EBC_Yacute 0xad #define EBC_diaeresis 0xbd #define EBC_minus 0xca #define EBC_0 0xf0 #define EBC_9 0xf9 #define EBC_eo 0xff #define EBC_less 0x4c #define EBC_greaer 0x6e #define EBC_P 0xd7 #define EBC_M 0xd4 #define EBC_U 0xe4 /* Unicode private-use definitions. */ #define UPRIV_GE_00 0xf700 /* first GE */ #define UPRIV_GE_ff 0xf7ff /* last GE */ #define UPRIV_sub 0xf8fc #define UPRIV_eo 0xf8fd #define UPRIV_fm 0xf8fe #define UPRIV_dup 0xf8ff /* BIND definitions. */ #define BIND_RU 0x31 #define BIND_OFF_MAXRU_SEC 10 #define BIND_OFF_MAXRU_PRI 11 #define BIND_OFF_RD 20 #define BIND_OFF_CD 21 #define BIND_OFF_RA 22 #define BIND_OFF_CA 23 #define BIND_OFF_SSIZE 24 #define BIND_OFF_PLU_NAME_LEN 27 #define BIND_PLU_NAME_MAX 8 #define BIND_OFF_PLU_NAME 28 /* Screen sizes. */ #define MODEL_2_ROWS 24 #define MODEL_2_COLS 80 #define MODEL_3_ROWS 32 #define MODEL_3_COLS 80 #define MODEL_4_ROWS 43 #define MODEL_4_COLS 80 #define MODEL_5_ROWS 27 #define MODEL_5_COLS 132 ibm-3270-3.3.10ga4/wpr3287/proxy.h0000644000175000017500000000367311254565704015666 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxy.h * Common definitions for proxy. */ #define PROXY_PASSTHRU "passthru" #define PORT_PASSTHRU "3514" #define PROXY_HTTP "http" #define PORT_HTTP "3128" #define PROXY_TELNET "telnet" #define PROXY_SOCKS4 "socks4" #define PORT_SOCKS4 "1080" #define PROXY_SOCKS4A "socks4a" #define PORT_SOCKS4A "1080" #define PROXY_SOCKS5 "socks5" #define PORT_SOCKS5 "1080" #define PROXY_SOCKS5D "socks5d" #define PORT_SOCKS5D "1080" ibm-3270-3.3.10ga4/wpr3287/proxyc.h0000644000175000017500000000334311254565704016023 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxyc.h * Declarations for proxy.c. */ extern int proxy_setup(char **phost, char **pport); extern int proxy_negotiate(int type, int fd, char *host, unsigned short port); extern char *proxy_type_name(int type); ibm-3270-3.3.10ga4/wpr3287/see.c0000644000175000017500000002356011254565704015251 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * see.c * 3270 data stream decode functions. * */ #include "globals.h" #if defined(X3270_TRACE) /*[*/ #include #include #include #include #include "3270ds.h" #include "tablesc.h" #include "utf8c.h" #include "seec.h" #include "unicodec.h" const char * unknown(unsigned char value) { static char buf[64]; (void) sprintf(buf, "unknown[0x%x]", value); return buf; } const char * see_ebc(unsigned char ch) { static char buf[8]; char mb[16]; ucs4_t uc; switch (ch) { case FCORDER_NULL: return "NULL"; case FCORDER_SUB: return "SUB"; case FCORDER_DUP: return "DUP"; case FCORDER_FM: return "FM"; case FCORDER_FF: return "FF"; case FCORDER_CR: return "CR"; case FCORDER_NL: return "NL"; case FCORDER_EM: return "EM"; case FCORDER_EO: return "EO"; case FCORDER_SI: return "SI"; case FCORDER_SO: return "SO"; } if (ebcdic_to_multibyte_x(ch, CS_BASE, mb, sizeof(mb), EUO_NONE, &uc) && (mb[0] != ' ' || ch == 0x40)) strcpy(buf, mb); else (void) sprintf(buf, "X'%02X'", ch); return buf; } const char * see_aid(unsigned char code) { switch (code) { case AID_NO: return "NoAID"; case AID_ENTER: return "Enter"; case AID_PF1: return "PF1"; case AID_PF2: return "PF2"; case AID_PF3: return "PF3"; case AID_PF4: return "PF4"; case AID_PF5: return "PF5"; case AID_PF6: return "PF6"; case AID_PF7: return "PF7"; case AID_PF8: return "PF8"; case AID_PF9: return "PF9"; case AID_PF10: return "PF10"; case AID_PF11: return "PF11"; case AID_PF12: return "PF12"; case AID_PF13: return "PF13"; case AID_PF14: return "PF14"; case AID_PF15: return "PF15"; case AID_PF16: return "PF16"; case AID_PF17: return "PF17"; case AID_PF18: return "PF18"; case AID_PF19: return "PF19"; case AID_PF20: return "PF20"; case AID_PF21: return "PF21"; case AID_PF22: return "PF22"; case AID_PF23: return "PF23"; case AID_PF24: return "PF24"; case AID_OICR: return "OICR"; case AID_MSR_MHS: return "MSR_MHS"; case AID_SELECT: return "Select"; case AID_PA1: return "PA1"; case AID_PA2: return "PA2"; case AID_PA3: return "PA3"; case AID_CLEAR: return "Clear"; case AID_SYSREQ: return "SysReq"; case AID_QREPLY: return "QueryReplyAID"; default: return unknown(code); } } const char * see_attr(unsigned char fa) { static char buf[256]; const char *paren = "("; buf[0] = '\0'; if (fa & FA_PROTECT) { (void) strcat(buf, paren); (void) strcat(buf, "protected"); paren = ","; if (fa & FA_NUMERIC) { (void) strcat(buf, paren); (void) strcat(buf, "skip"); paren = ","; } } else if (fa & FA_NUMERIC) { (void) strcat(buf, paren); (void) strcat(buf, "numeric"); paren = ","; } switch (fa & FA_INTENSITY) { case FA_INT_NORM_NSEL: break; case FA_INT_NORM_SEL: (void) strcat(buf, paren); (void) strcat(buf, "detectable"); paren = ","; break; case FA_INT_HIGH_SEL: (void) strcat(buf, paren); (void) strcat(buf, "intensified"); paren = ","; break; case FA_INT_ZERO_NSEL: (void) strcat(buf, paren); (void) strcat(buf, "nondisplay"); paren = ","; break; } if (fa & FA_MODIFY) { (void) strcat(buf, paren); (void) strcat(buf, "modified"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(default)"); return buf; } static const char * see_highlight(unsigned char setting) { switch (setting) { case XAH_DEFAULT: return "default"; case XAH_NORMAL: return "normal"; case XAH_BLINK: return "blink"; case XAH_REVERSE: return "reverse"; case XAH_UNDERSCORE: return "underscore"; case XAH_INTENSIFY: return "intensify"; default: return unknown(setting); } } const char * see_color(unsigned char setting) { static const char *color_name[] = { "neutralBlack", "blue", "red", "pink", "green", "turquoise", "yellow", "neutralWhite", "black", "deepBlue", "orange", "purple", "paleGreen", "paleTurquoise", "grey", "white" }; if (setting == XAC_DEFAULT) return "default"; else if (setting < 0xf0) return unknown(setting); else return color_name[setting - 0xf0]; } static const char * see_transparency(unsigned char setting) { switch (setting) { case XAT_DEFAULT: return "default"; case XAT_OR: return "or"; case XAT_XOR: return "xor"; case XAT_OPAQUE: return "opaque"; default: return unknown(setting); } } static const char * see_validation(unsigned char setting) { static char buf[64]; const char *paren = "("; (void) strcpy(buf, ""); if (setting & XAV_FILL) { (void) strcat(buf, paren); (void) strcat(buf, "fill"); paren = ","; } if (setting & XAV_ENTRY) { (void) strcat(buf, paren); (void) strcat(buf, "entry"); paren = ","; } if (setting & XAV_TRIGGER) { (void) strcat(buf, paren); (void) strcat(buf, "trigger"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(none)"); return buf; } static const char * see_outline(unsigned char setting) { static char buf[64]; const char *paren = "("; (void) strcpy(buf, ""); if (setting & XAO_UNDERLINE) { (void) strcat(buf, paren); (void) strcat(buf, "underline"); paren = ","; } if (setting & XAO_RIGHT) { (void) strcat(buf, paren); (void) strcat(buf, "right"); paren = ","; } if (setting & XAO_OVERLINE) { (void) strcat(buf, paren); (void) strcat(buf, "overline"); paren = ","; } if (setting & XAO_LEFT) { (void) strcat(buf, paren); (void) strcat(buf, "left"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(none)"); return buf; } static const char * see_input_control(unsigned char setting) { switch (setting) { case XAI_DISABLED: return "disabled"; case XAI_ENABLED: return "enabled"; default: return unknown(setting); } } const char * see_efa(unsigned char efa, unsigned char value) { static char buf[64]; switch (efa) { case XA_ALL: (void) sprintf(buf, " all(%x)", value); break; case XA_3270: (void) sprintf(buf, " 3270%s", see_attr(value)); break; case XA_VALIDATION: (void) sprintf(buf, " validation%s", see_validation(value)); break; case XA_OUTLINING: (void) sprintf(buf, " outlining(%s)", see_outline(value)); break; case XA_HIGHLIGHTING: (void) sprintf(buf, " highlighting(%s)", see_highlight(value)); break; case XA_FOREGROUND: (void) sprintf(buf, " foreground(%s)", see_color(value)); break; case XA_CHARSET: (void) sprintf(buf, " charset(%x)", value); break; case XA_BACKGROUND: (void) sprintf(buf, " background(%s)", see_color(value)); break; case XA_TRANSPARENCY: (void) sprintf(buf, " transparency(%s)", see_transparency(value)); break; case XA_INPUT_CONTROL: (void) sprintf(buf, " input-control(%s)", see_input_control(value)); break; default: (void) sprintf(buf, " %s[0x%x]", unknown(efa), value); break; } return buf; } const char * see_efa_only(unsigned char efa) { switch (efa) { case XA_ALL: return "all"; case XA_3270: return "3270"; case XA_VALIDATION: return "validation"; case XA_OUTLINING: return "outlining"; case XA_HIGHLIGHTING: return "highlighting"; case XA_FOREGROUND: return "foreground"; case XA_CHARSET: return "charset"; case XA_BACKGROUND: return "background"; case XA_TRANSPARENCY: return "transparency"; default: return unknown(efa); } } const char * see_qcode(unsigned char id) { static char buf[64]; switch (id) { case QR_CHARSETS: return "CharacterSets"; case QR_IMP_PART: return "ImplicitPartition"; case QR_SUMMARY: return "Summary"; case QR_USABLE_AREA: return "UsableArea"; case QR_COLOR: return "Color"; case QR_HIGHLIGHTING: return "Highlighting"; case QR_REPLY_MODES: return "ReplyModes"; case QR_DBCS_ASIA: return "DbcsAsia"; case QR_ALPHA_PART: return "AlphanumericPartitions"; case QR_DDM: return "DistributedDataManagement"; case QR_RPQNAMES: return "RPQNames"; default: (void) sprintf(buf, "unknown[0x%x]", id); return buf; } } #endif /*]*/ ibm-3270-3.3.10ga4/wpr3287/sf.c0000644000175000017500000004154611254565701015106 0ustar bastianbastian/* * Copyright (c) 1994-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * sf.c * This module handles 3270 structured fields. * */ #include #include #include #include "globals.h" #include "3270ds.h" #include #include "ctlrc.h" #if defined(X3270_FT) /*[*/ #include "ft_dftc.h" #endif /*]*/ #include "sfc.h" #include "telnetc.h" #include "trace_dsc.h" /* Externals: ctlr.c */ extern Boolean screen_alt; extern unsigned char reply_mode; extern int crm_nattr; extern unsigned char crm_attr[]; /* Statics */ static Boolean qr_in_progress = False; static enum pds sf_read_part(unsigned char buf[], unsigned buflen); static enum pds sf_erase_reset(unsigned char buf[], int buflen); static enum pds sf_set_reply_mode(unsigned char buf[], int buflen); static enum pds sf_outbound_ds(unsigned char buf[], int buflen); static void query_reply_start(void); static void do_query_reply(unsigned char code); static void query_reply_end(void); /* Some permanent substitutions. */ #define maxROWS 72 #define maxCOLS 66 #define char_width 10 #define char_height 20 #define standard_font 0 static unsigned char supported_replies[] = { QR_SUMMARY, /* 0x80 */ QR_USABLE_AREA, /* 0x81 */ QR_ALPHA_PART, /* 0x84 */ QR_CHARSETS, /* 0x85 */ QR_COLOR, /* 0x86 */ QR_HIGHLIGHTING, /* 0x87 */ QR_REPLY_MODES, /* 0x88 */ #if defined(X3270_DBCS) /*[*/ QR_DBCS_ASIA, /* 0x91 */ #endif /*]*/ QR_IMP_PART, /* 0xa6 */ #if defined(X3270_FT) /*[*/ QR_DDM, /* 0x95 */ #endif /*]*/ }; #define NSR (sizeof(supported_replies)/sizeof(unsigned char)) /* * Process a 3270 Write Structured Field command */ enum pds write_structured_field(unsigned char buf[], int buflen) { unsigned short fieldlen; unsigned char *cp = buf; Boolean first = True; enum pds rv = PDS_OKAY_NO_OUTPUT; enum pds rv_this = PDS_OKAY_NO_OUTPUT; Boolean bad_cmd = False; /* Skip the WSF command itself. */ cp++; buflen--; /* Interpret fields. */ while (buflen > 0) { if (first) trace_ds(" "); else trace_ds("< WriteStructuredField "); first = False; /* Pick out the field length. */ if (buflen < 2) { trace_ds("error: single byte at end of message\n"); return rv ? rv : PDS_BAD_CMD; } fieldlen = (cp[0] << 8) + cp[1]; if (fieldlen == 0) fieldlen = buflen; if (fieldlen < 3) { trace_ds("error: field length %d too small\n", fieldlen); return rv ? rv : PDS_BAD_CMD; } if ((int)fieldlen > buflen) { trace_ds("error: field length %d exceeds remaining " "message length %d\n", fieldlen, buflen); return rv ? rv : PDS_BAD_CMD; } /* Dispatch on the ID. */ switch (cp[2]) { case SF_READ_PART: trace_ds("ReadPartition"); rv_this = sf_read_part(cp, (int)fieldlen); break; case SF_ERASE_RESET: trace_ds("EraseReset"); rv_this = sf_erase_reset(cp, (int)fieldlen); break; case SF_SET_REPLY_MODE: trace_ds("SetReplyMode"); rv_this = sf_set_reply_mode(cp, (int)fieldlen); break; case SF_OUTBOUND_DS: trace_ds("OutboundDS"); rv_this = sf_outbound_ds(cp, (int)fieldlen); break; #if defined(X3270_FT) /*[*/ case SF_TRANSFER_DATA: /* File transfer data */ trace_ds("FileTransferData"); ft_dft_data(cp, (int)fieldlen); break; #endif /*]*/ default: trace_ds("unsupported ID 0x%02x\n", cp[2]); rv_this = PDS_BAD_CMD; break; } /* * Accumulate errors or output flags. * One real ugliness here is that if we have already * generated some output, then we have already positively * acknowledged the request, so if we fail here, we have no * way to return the error indication. */ if (rv_this < 0) bad_cmd = True; else rv |= rv_this; /* Skip to the next field. */ cp += fieldlen; buflen -= fieldlen; } if (first) trace_ds(" (null)\n"); if (bad_cmd && !rv) return PDS_BAD_CMD; else return rv; } static enum pds sf_read_part(unsigned char buf[], unsigned buflen) { unsigned char partition; unsigned i; int any = 0; const char *comma = ""; if (buflen < 5) { trace_ds(" error: field length %d too small\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; trace_ds("(0x%02x)", partition); switch (buf[4]) { case SF_RP_QUERY: trace_ds(" Query"); if (partition != 0xff) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); query_reply_start(); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ if (dbcs || supported_replies[i] != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(supported_replies[i]); } query_reply_end(); break; case SF_RP_QLIST: trace_ds(" QueryList "); if (partition != 0xff) { trace_ds("error: illegal partition\n"); return PDS_BAD_CMD; } if (buflen < 6) { trace_ds("error: missing request type\n"); return PDS_BAD_CMD; } query_reply_start(); switch (buf[5]) { case SF_RPQ_LIST: trace_ds("List("); if (buflen < 7) { trace_ds(")\n"); do_query_reply(QR_NULL); } else { for (i = 6; i < buflen; i++) { trace_ds("%s%s", comma, see_qcode(buf[i])); comma = ","; } trace_ds(")\n"); for (i = 0; i < NSR; i++) { if (memchr((char *)&buf[6], (char)supported_replies[i], buflen-6) #if defined(X3270_DBCS) /*[*/ && (dbcs || supported_replies[i] != QR_DBCS_ASIA) #endif /*]*/ ) { do_query_reply(supported_replies[i]); any++; } } if (!any) { do_query_reply(QR_NULL); } } break; case SF_RPQ_EQUIV: trace_ds("Equivlent+List("); for (i = 6; i < buflen; i++) { trace_ds("%s%s", comma, see_qcode(buf[i])); comma = ","; } trace_ds(")\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || supported_replies[i] != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(supported_replies[i]); break; case SF_RPQ_ALL: trace_ds("All\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || supported_replies[i] != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(supported_replies[i]); break; default: trace_ds("unknown request type 0x%02x\n", buf[5]); return PDS_BAD_CMD; } query_reply_end(); break; case SNA_CMD_RMA: trace_ds(" ReadModifiedAll"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); return PDS_BAD_CMD; break; case SNA_CMD_RB: trace_ds(" ReadBuffer"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); return PDS_BAD_CMD; break; case SNA_CMD_RM: trace_ds(" ReadModified"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); return PDS_BAD_CMD; break; default: trace_ds(" unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_OUTPUT; } static enum pds sf_erase_reset(unsigned char buf[], int buflen) { if (buflen != 4) { trace_ds(" error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } switch (buf[3]) { case SF_ER_DEFAULT: trace_ds(" Default\n"); break; case SF_ER_ALT: trace_ds(" Alternate\n"); break; default: trace_ds(" unknown type 0x%02x\n", buf[3]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static enum pds sf_set_reply_mode(unsigned char buf[], int buflen) { unsigned char partition; if (buflen < 5) { trace_ds(" error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; trace_ds("(0x%02x)", partition); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } switch (buf[4]) { case SF_SRM_FIELD: trace_ds(" Field\n"); break; case SF_SRM_XFIELD: trace_ds(" ExtendedField\n"); break; case SF_SRM_CHAR: trace_ds(" Character"); break; default: trace_ds(" unknown mode 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static enum pds sf_outbound_ds(unsigned char buf[], int buflen) { if (buflen < 5) { trace_ds(" error: field length %d too short\n", buflen); return PDS_BAD_CMD; } trace_ds("(0x%02x)", buf[3]); if (buf[3] != 0x00) { trace_ds(" error: illegal partition 0x%0x\n", buf[3]); return PDS_BAD_CMD; } switch (buf[4]) { case SNA_CMD_W: trace_ds(" Write"); if (buflen > 5) ctlr_write(&buf[4], buflen-4, False); else trace_ds("\n"); break; case SNA_CMD_EW: trace_ds(" EraseWrite"); if (buflen > 5) ctlr_write(&buf[4], buflen-4, True); else trace_ds("\n"); break; case SNA_CMD_EWA: trace_ds(" EraseWriteAlternate"); if (buflen > 5) ctlr_write(&buf[4], buflen-4, True); else trace_ds("\n"); break; case SNA_CMD_EAU: trace_ds(" EraseAllUnprotected\n"); break; default: trace_ds(" unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static void query_reply_start(void) { obptr = obuf; space3270out(1); *obptr++ = AID_SF; qr_in_progress = True; } static void do_query_reply(unsigned char code) { int len; unsigned i; const char *comma = ""; int obptr0 = obptr - obuf; unsigned char *obptr_len; unsigned short num, denom; if (qr_in_progress) { trace_ds("> StructuredField\n"); qr_in_progress = False; } space3270out(4); obptr += 2; /* skip length for now */ *obptr++ = SFID_QREPLY; *obptr++ = code; switch (code) { case QR_CHARSETS: trace_ds("> QueryReply(CharacterSets)\n"); space3270out(64); #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x8e; /* flags: GE, CGCSGID, DBCS */ else #endif /*]*/ *obptr++ = 0x82; /* flags: GE, CGCSGID present */ *obptr++ = 0x00; /* more flags */ *obptr++ = char_width; /* SDW */ *obptr++ = char_height; /* SDW */ *obptr++ = 0x00; /* no load PS */ *obptr++ = 0x00; *obptr++ = 0x00; *obptr++ = 0x00; #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x0b; /* DL (11 bytes) */ else #endif /*]*/ *obptr++ = 0x07; /* DL (7 bytes) */ *obptr++ = 0x00; /* SET 0: */ #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x00; /* FLAGS: non-load, single- plane, single-bute */ else #endif /*]*/ *obptr++ = 0x10; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ *obptr++ = 0x00; /* LCID 0 */ #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x00; /* SW 0 */ *obptr++ = 0x00; /* SH 0 */ *obptr++ = 0x00; /* SUBSN */ *obptr++ = 0x00; /* SUBSN */ } #endif /*]*/ SET32(obptr, cgcsgid); /* CGCSGID */ if (!standard_font) { /* special 3270 font, includes APL */ *obptr++ = 0x01;/* SET 1: */ *obptr++ = 0x10;/* FLAGS: non-loadable, single-plane, single-byte, no compare */ *obptr++ = 0xf1;/* LCID */ #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x00;/* SW 0 */ *obptr++ = 0x00;/* SH 0 */ *obptr++ = 0x00;/* SUBSN */ *obptr++ = 0x00;/* SUBSN */ } #endif /*]*/ *obptr++ = 0x03;/* CGCSGID: 3179-style APL2 */ *obptr++ = 0xc3; *obptr++ = 0x01; *obptr++ = 0x36; } #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x80; /* SET 0x80: */ *obptr++ = 0x20; /* FLAGS: DBCS */ *obptr++ = 0xf8; /* LCID: 0xf8 */ *obptr++ = char_width * 2; /* SW */ *obptr++ = char_height; /* SH */ *obptr++ = 0x41; /* SUBSN */ *obptr++ = 0x7f; /* SUBSN */ SET32(obptr, cgcsgid_dbcs); /* CGCSGID */ } #endif /*]*/ break; case QR_IMP_PART: trace_ds("> QueryReply(ImplicitPartition)\n"); space3270out(13); *obptr++ = 0x0; /* reserved */ *obptr++ = 0x0; *obptr++ = 0x0b; /* length of display size */ *obptr++ = 0x01; /* "implicit partition size" */ *obptr++ = 0x00; /* reserved */ SET16(obptr, 72); /* implicit partition width */ SET16(obptr, 66); /* implicit partition height */ SET16(obptr, maxCOLS); /* alternate height */ SET16(obptr, maxROWS); /* alternate width */ break; case QR_NULL: trace_ds("> QueryReply(Null)\n"); break; case QR_SUMMARY: trace_ds("> QueryReply(Summary("); space3270out(NSR); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ if (dbcs || supported_replies[i] != QR_DBCS_ASIA) { #endif /*]*/ trace_ds("%s%s", comma, see_qcode(supported_replies[i])); comma = ","; *obptr++ = supported_replies[i]; #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ } trace_ds("))\n"); break; case QR_USABLE_AREA: trace_ds("> QueryReply(UsableArea)\n"); space3270out(19); *obptr++ = 0x01; /* 12/14-bit addressing */ *obptr++ = 0x00; /* no special character features */ SET16(obptr, maxCOLS); /* usable width */ SET16(obptr, maxROWS); /* usable height */ *obptr++ = 0x01; /* units (mm) */ num = /*display_widthMM()*/ 8*5/4; denom = /*display_width()*/ 7 * 72; while (!(num %2) && !(denom % 2)) { num /= 2; denom /= 2; } SET16(obptr, (int)num); /* Xr numerator */ SET16(obptr, (int)denom); /* Xr denominator */ num = /*display_heightMM()*/ 11*5/4; denom = /*display_height()*/ 9*66; while (!(num %2) && !(denom % 2)) { num /= 2; denom /= 2; } SET16(obptr, (int)num); /* Yr numerator */ SET16(obptr, (int)denom); /* Yr denominator */ *obptr++ = char_width; /* AW */ *obptr++ = char_height; /* AH */ SET16(obptr, 0); /* buffer */ break; case QR_COLOR: trace_ds("> QueryReply(Color)\n"); space3270out(4 + 2*15); *obptr++ = 0x00; /* no options */ *obptr++ = 16; /* report on 16 colors */ *obptr++ = 0x00; /* default color: */ *obptr++ = 0xf0 + HOST_COLOR_GREEN; /* green */ for (i = 0xf1; i <= 0xff; i++) { *obptr++ = i; *obptr++ = i; } break; case QR_HIGHLIGHTING: trace_ds("> QueryReply(Highlighting)\n"); space3270out(11); *obptr++ = 5; /* report on 5 pairs */ *obptr++ = XAH_DEFAULT; /* default: */ *obptr++ = XAH_NORMAL; /* normal */ *obptr++ = XAH_BLINK; /* blink: */ *obptr++ = XAH_BLINK; /* blink */ *obptr++ = XAH_REVERSE; /* reverse: */ *obptr++ = XAH_REVERSE; /* reverse */ *obptr++ = XAH_UNDERSCORE; /* underscore: */ *obptr++ = XAH_UNDERSCORE; /* underscore */ *obptr++ = XAH_INTENSIFY; /* intensify: */ *obptr++ = XAH_INTENSIFY; /* intensify */ break; case QR_REPLY_MODES: trace_ds("> QueryReply(ReplyModes)\n"); space3270out(3); *obptr++ = SF_SRM_FIELD; *obptr++ = SF_SRM_XFIELD; *obptr++ = SF_SRM_CHAR; break; #if defined(X3270_DBCS) /*[*/ case QR_DBCS_ASIA: /* XXX: Should we support this, even when not in DBCS mode? */ trace_ds("> QueryReply(DbcsAsia)\n"); space3270out(7); *obptr++ = 0x00; /* flags (none) */ *obptr++ = 0x03; /* field length 3 */ *obptr++ = 0x01; /* SI/SO supported */ *obptr++ = 0x80; /* character set ID 0x80 */ *obptr++ = 0x03; /* field length 3 */ *obptr++ = 0x02; /* input control */ *obptr++ = 0x01; /* creation supported */ break; #endif /*]*/ case QR_ALPHA_PART: trace_ds("> QueryReply(AlphanumericPartitions)\n"); space3270out(4); *obptr++ = 0; /* 1 partition */ SET16(obptr, maxROWS*maxCOLS); /* buffer space */ *obptr++ = 0; /* no special features */ break; #if defined(X3270_FT) /*[*/ case QR_DDM: trace_ds("> QueryReply(DistributedDataManagement)\n"); space3270out(8); SET16(obptr,0); /* set reserved field to 0 */ SET16(obptr,2048); /* set inbound length limit */ SET16(obptr,2048); /* set outbound length limit */ SET16(obptr,0x0101); /* NSS=01, DDMSS=01 */ break; #endif /*]*/ default: return; /* internal error */ } obptr_len = obuf + obptr0; len = (obptr - obuf) - obptr0; SET16(obptr_len, len); } static void query_reply_end(void) { net_output(); } ibm-3270-3.3.10ga4/wpr3287/telnet.c0000644000175000017500000013302611254565701015764 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * telnet.c * This module initializes and manages a telnet socket to * the given IBM host. */ #include "globals.h" #if defined(_WIN32) /*[*/ #include #include #undef AF_INET6 #else /*][*/ #include #include #include #include #endif /*]*/ #define TELCMDS 1 #define TELOPTS 1 #include "arpa_telnet.h" #include #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #include #if defined(HAVE_LIBSSL) /*[*/ #include #include #endif /*]*/ #include "tn3270e.h" #include "ctlrc.h" #include "telnetc.h" #if !defined(TELOPT_STARTTLS) /*[*/ #define TELOPT_STARTTLS 46 #endif /*]*/ #define TLS_FOLLOWS 1 extern FILE *tracef; extern int ignoreeoj; extern int ssl_host; extern unsigned long eoj_timeout; extern void pr3287_exit(int); /* connection state */ enum cstate { NOT_CONNECTED, /* no socket, unknown mode */ PENDING, /* connection pending */ CONNECTED_INITIAL, /* connected, no mode yet */ CONNECTED_ANSI, /* connected in NVT ANSI mode */ CONNECTED_3270, /* connected in old-style 3270 mode */ CONNECTED_INITIAL_E, /* connected in TN3270E mode, unnegotiated */ CONNECTED_NVT, /* connected in TN3270E mode, NVT mode */ CONNECTED_SSCP, /* connected in TN3270E mode, SSCP-LU mode */ CONNECTED_TN3270E /* connected in TN3270E mode, 3270 mode */ }; enum cstate cstate = NOT_CONNECTED; #define PCONNECTED ((int)cstate >= (int)PENDING) #define HALF_CONNECTED (cstate == PENDING) #define CONNECTED ((int)cstate >= (int)CONNECTED_INITIAL) #define IN_NEITHER (cstate == CONNECTED_INITIAL) #define IN_ANSI (cstate == CONNECTED_ANSI || cstate == CONNECTED_NVT) #define IN_3270 (cstate == CONNECTED_3270 || cstate == CONNECTED_TN3270E || cstate == CONNECTED_SSCP) #define IN_SSCP (cstate == CONNECTED_SSCP) #define IN_TN3270E (cstate == CONNECTED_TN3270E) #define IN_E (cstate >= CONNECTED_INITIAL_E) static char *connected_lu = NULL; static char *connected_type = NULL; #define BUFSZ 4096 #define N_OPTS 256 static int on = 1; /* Globals */ time_t ns_time; int ns_brcvd; int ns_rrcvd; int ns_bsent; int ns_rsent; unsigned char *obuf; /* 3270 output buffer */ int obuf_size = 0; unsigned char *obptr = (unsigned char *) NULL; int linemode = 1; const char *termtype = "IBM-3287-1"; /* Externals */ #if !defined(_WIN32) /*[*/ extern unsigned long inet_addr(const char *); #endif /*]*/ static struct timeval ds_ts; /* Statics */ static int sock = -1; /* active socket */ static unsigned char myopts[N_OPTS], hisopts[N_OPTS]; /* telnet option flags */ static unsigned char *ibuf = (unsigned char *) NULL; /* 3270 input buffer */ static unsigned char *ibptr; static int ibuf_size = 0; /* size of ibuf */ static unsigned char *obuf_base = (unsigned char *)NULL; static unsigned char *netrbuf = (unsigned char *)NULL; /* network input buffer */ static unsigned char *sbbuf = (unsigned char *)NULL; /* telnet sub-option buffer */ static unsigned char *sbptr; static unsigned char telnet_state; static int syncing; static unsigned long e_funcs; /* negotiated TN3270E functions */ #define E_OPT(n) (1 << (n)) static unsigned short e_xmit_seq; /* transmit sequence number */ static int response_required; static int tn3270e_negotiated = 0; static enum { E_NONE, E_3270, E_NVT, E_SSCP } tn3270e_submode = E_NONE; static int tn3270e_bound = 0; static char **lus = (char **)NULL; static char **curr_lu = (char **)NULL; static char *try_lu = NULL; static char *try_assoc = NULL; static void setup_lus(char *luname, const char *assoc); static int telnet_fsm(unsigned char c); static void net_rawout(unsigned const char *buf, int len); static void check_in3270(void); static void store3270in(unsigned char c); static int tn3270e_negotiate(void); static int process_eor(void); static const char *tn3270e_function_names(const unsigned char *, int); static void tn3270e_subneg_send(unsigned char, unsigned long); static unsigned long tn3270e_fdecode(const unsigned char *, int); static void tn3270_ack(void); static void tn3270_nak(enum pds); static void tn3270e_ack(void); static void tn3270e_nak(enum pds); static void tn3270e_cleared(void); extern void trace_str(const char *s); static void vtrace_str(const char *fmt, ...); static const char *cmd(int c); static const char *opt(unsigned char c); static const char *nnn(int c); /* telnet states */ #define TNS_DATA 0 /* receiving data */ #define TNS_IAC 1 /* got an IAC */ #define TNS_WILL 2 /* got an IAC WILL */ #define TNS_WONT 3 /* got an IAC WONT */ #define TNS_DO 4 /* got an IAC DO */ #define TNS_DONT 5 /* got an IAC DONT */ #define TNS_SB 6 /* got an IAC SB */ #define TNS_SB_IAC 7 /* got an IAC after an IAC SB */ /* telnet predefined messages */ static unsigned char do_opt[] = { IAC, DO, '_' }; static unsigned char dont_opt[] = { IAC, DONT, '_' }; static unsigned char will_opt[] = { IAC, WILL, '_' }; static unsigned char wont_opt[] = { IAC, WONT, '_' }; static unsigned char functions_req[] = { IAC, SB, TELOPT_TN3270E, TN3270E_OP_FUNCTIONS }; const char *telquals[2] = { "IS", "SEND" }; const char *reason_code[8] = { "CONN-PARTNER", "DEVICE-IN-USE", "INV-ASSOCIATE", "INV-NAME", "INV-DEVICE-TYPE", "TYPE-NAME-ERROR", "UNKNOWN-ERROR", "UNSUPPORTED-REQ" }; #define rsn(n) (((n) <= TN3270E_REASON_UNSUPPORTED_REQ) ? \ reason_code[(n)] : "??") const char *function_name[5] = { "BIND-IMAGE", "DATA-STREAM-CTL", "RESPONSES", "SCS-CTL-CODES", "SYSREQ" }; #define fnn(n) (((n) <= TN3270E_FUNC_SYSREQ) ? \ function_name[(n)] : "??") const char *data_type[9] = { "3270-DATA", "SCS-DATA", "RESPONSE", "BIND-IMAGE", "UNBIND", "NVT-DATA", "REQUEST", "SSCP-LU-DATA", "PRINT-EOJ" }; #define e_dt(n) (((n) <= TN3270E_DT_PRINT_EOJ) ? \ data_type[(n)] : "??") const char *req_flag[1] = { " ERR-COND-CLEARED" }; #define e_rq(fn, n) (((fn) == TN3270E_DT_REQUEST) ? \ (((n) <= TN3270E_RQF_ERR_COND_CLEARED) ? \ req_flag[(n)] : " ??") : "") const char *hrsp_flag[3] = { "NO-RESPONSE", "ERROR-RESPONSE", "ALWAYS-RESPONSE" }; #define e_hrsp(n) (((n) <= TN3270E_RSF_ALWAYS_RESPONSE) ? \ hrsp_flag[(n)] : "??") const char *trsp_flag[2] = { "POSITIVE-RESPONSE", "NEGATIVE-RESPONSE" }; #define e_trsp(n) (((n) <= TN3270E_RSF_NEGATIVE_RESPONSE) ? \ trsp_flag[(n)] : "??") #define e_rsp(fn, n) (((fn) == TN3270E_DT_RESPONSE) ? e_trsp(n) : e_hrsp(n)) const char *neg_type[4] = { "COMMAND-REJECT", "INTERVENTION-REQUIRED", "OPERATION-CHECK", "COMPONENT-DISCONNECTED" }; #define e_neg_type(n) (((n) <= TN3270E_NEG_COMPONENT_DISCONNECTED) ? \ neg_type[n]: "??") #if defined(HAVE_LIBSSL) /*[*/ Boolean secure_connection = False; static SSL_CTX *ssl_ctx; static SSL *ssl_con; static Boolean need_tls_follows = False; static void ssl_init(void); #if OPENSSL_VERSION_NUMBER >= 0x00907000L /*[*/ #define INFO_CONST const #else /*][*/ #define INFO_CONST #endif /*]*/ static void client_info_callback(INFO_CONST SSL *s, int where, int ret); static int continue_tls(unsigned char *sbbuf, int len); #endif /*]*/ #if defined(_WIN32) /*[*/ #define socket_errno() WSAGetLastError() #define SE_EWOULDBLOCK WSAEWOULDBLOCK #define SE_ECONNRESET WSAECONNRESET #define SE_EINTR WSAEINTR #define SE_EAGAIN WSAEINPROGRESS #define SE_EPIPE WSAECONNABORTED #define SE_EINPROGRESS WSAEINPROGRESS #define SOCK_CLOSE(s) closesocket(s) #define SOCK_IOCTL(s, f, v) ioctlsocket(s, f, (DWORD *)v) #else /*][*/ #define socket_errno() errno #define SE_EWOULDBLOCK EWOULDBLOCK #define SE_ECONNRESET ECONNRESET #define SE_EINTR EINTR #define SE_EAGAIN EAGAIN #define SE_EPIPE EPIPE #if defined(EINPROGRESS) /*[*/ #define SE_EINPROGRESS EINPROGRESS #endif /*]*/ #define SOCK_CLOSE(s) close(s) #define SOCK_IOCTL ioctl #endif /*]*/ char * sockerrmsg(void) { static char buf[1024]; #if defined(_WIN32) /*[*/ if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, WSAGetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), buf, sizeof(buf), NULL) == 0) { sprintf(buf, "Windows error %d", WSAGetLastError()); } #else /*][*/ strcpy(buf, strerror(errno)); #endif /*]*/ return buf; } void popup_a_sockerr(char *fmt, ...) { va_list args; char buf[1024]; va_start(args, fmt); (void) vsprintf(buf, fmt, args); va_end(args); sprintf(buf + strlen(buf), ": %s", sockerrmsg()); errmsg("%s", buf); } /* * negotiate * Initialize the connection, and negotiate TN3270 options with the host. */ int negotiate(int s, char *lu, char *assoc) { /* Set options for inline out-of-band data and keepalives. */ if (setsockopt(s, SOL_SOCKET, SO_OOBINLINE, (char *)&on, sizeof(on)) < 0) { popup_a_sockerr("setsockopt(SO_OOBINLINE)"); return -1; } if (setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, (char *)&on, sizeof(on)) < 0) { popup_a_sockerr("setsockopt(SO_KEEPALIVE)"); return -1; } #if !defined(_WIN32) /*[*/ /* Don't share the socket with our children. */ (void) fcntl(s, F_SETFD, 1); #endif /*]*/ /* init ssl */ #if defined(HAVE_LIBSSL) /*[*/ if (ssl_host && !secure_connection) { ssl_init(); if (ssl_con == NULL) return -1; SSL_set_fd(ssl_con, s); if (!SSL_connect(ssl_con)) { popup_a_sockerr("SSL_connect failed"); return -1; } secure_connection = True; vtrace_str("TLS/DDL tunneled connection complete. " "Connection is now secure.\n"); } #endif /*]*/ /* Allocate the receive buffers. */ if (netrbuf == NULL) netrbuf = (unsigned char *)Malloc(BUFSZ); if (ibuf == NULL) ibuf = (unsigned char *)Malloc(BUFSIZ); ibuf_size = BUFSIZ; ibptr = ibuf; /* Set up the LU list. */ setup_lus(lu, assoc); /* Set up telnet options. */ (void) memset((char *) myopts, 0, sizeof(myopts)); (void) memset((char *) hisopts, 0, sizeof(hisopts)); e_funcs = E_OPT(TN3270E_FUNC_BIND_IMAGE) | E_OPT(TN3270E_FUNC_DATA_STREAM_CTL) | E_OPT(TN3270E_FUNC_RESPONSES) | E_OPT(TN3270E_FUNC_SCS_CTL_CODES) | E_OPT(TN3270E_FUNC_SYSREQ); e_xmit_seq = 0; response_required = TN3270E_RSF_NO_RESPONSE; #if defined(HAVE_LIBSSL) /*[*/ need_tls_follows = False; #endif /*]*/ telnet_state = TNS_DATA; /* Clear statistics and flags. */ (void) time(&ns_time); ns_brcvd = 0; ns_rrcvd = 0; ns_bsent = 0; ns_rsent = 0; syncing = 0; tn3270e_negotiated = 0; tn3270e_submode = E_NONE; tn3270e_bound = 0; /* Speak with the host until we suceed or give up. */ cstate = CONNECTED_INITIAL; sock = s; /* hack! */ while (!tn3270e_negotiated && /* TN3270E */ cstate != CONNECTED_3270 && /* TN3270 */ cstate != NOT_CONNECTED) { /* gave up */ if (net_input(s) < 0) return -1; } /* Success. */ return 0; } int process(int s) { while (cstate != NOT_CONNECTED) { fd_set rfds; struct timeval t; struct timeval *tp; int nr; FD_ZERO(&rfds); FD_SET(s, &rfds); if (eoj_timeout) { t.tv_sec = eoj_timeout; t.tv_usec = 0; tp = &t; } else tp = NULL; nr = select(s + 1, &rfds, NULL, NULL, tp); if (nr == 0 && eoj_timeout) print_eoj(); if (nr > 0 && FD_ISSET(s, &rfds)) { if (net_input(s) < 0) return -1; } } return 0; } /* Disconnect from the host. */ void net_disconnect(void) { if (sock != -1) { vtrace_str("SENT disconnect\n"); SOCK_CLOSE(sock); sock = -1; #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { SSL_shutdown(ssl_con); SSL_free(ssl_con); ssl_con = NULL; } secure_connection = False; #endif /*]*/ } } /* Set up the LU list. */ static void setup_lus(char *luname, const char *assoc) { char *lu; char *comma; int n_lus = 1; int i; connected_lu = NULL; connected_type = NULL; curr_lu = (char **)NULL; try_lu = NULL; if (lus) { Free(lus); lus = (char **)NULL; } if (assoc != NULL) { try_assoc = NewString(assoc); return; } if (luname == NULL || !luname[0]) { return; } /* * Count the commas in the LU name. That plus one is the * number of LUs to try. */ lu = luname; while ((comma = strchr(lu, ',')) != NULL) { n_lus++; lu++; } /* * Allocate enough memory to construct an argv[] array for * the LUs. */ lus = (char **)Malloc((n_lus+1) * sizeof(char *) + strlen(luname) + 1); /* Copy each LU into the array. */ lu = (char *)(lus + n_lus + 1); (void) strcpy(lu, luname); i = 0; do { lus[i++] = lu; comma = strchr(lu, ','); if (comma != NULL) { *comma = '\0'; lu = comma + 1; } } while (comma != NULL); lus[i] = NULL; curr_lu = lus; try_lu = *curr_lu; } /* * net_input * Called by the toolkit whenever there is input available on the * socket. Reads the data, processes the special telnet commands * and calls process_ds to process the 3270 data stream. */ int net_input(int s) { register unsigned char *cp; int nr; #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) nr = SSL_read(ssl_con, (char *) netrbuf, BUFSZ); else #endif /*]*/ nr = recv(s, (char *)netrbuf, BUFSZ, 0); if (nr < 0) { #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { unsigned long e; char err_buf[1024]; e = ERR_get_error(); (void) ERR_error_string(e, err_buf); vtrace_str("RCVD socket error %ld (%s)\n", e, err_buf); errmsg("SSL_read:\n%s", err_buf); cstate = NOT_CONNECTED; return -1; } #endif /*]*/ vtrace_str("RCVD socket error %s\n", sockerrmsg()); popup_a_sockerr("Socket read"); cstate = NOT_CONNECTED; return -1; } else if (nr == 0) { /* Host disconnected. */ trace_str("RCVD disconnect\n"); cstate = NOT_CONNECTED; return 0; } /* Process the data. */ trace_netdata('<', netrbuf, nr); ns_brcvd += nr; for (cp = netrbuf; cp < (netrbuf + nr); cp++) { if (telnet_fsm(*cp)) { cstate = NOT_CONNECTED; return -1; } } return 0; } /* Advance 'try_lu' to the next desired LU name. */ static void next_lu(void) { if (curr_lu != (char **)NULL && (try_lu = *++curr_lu) == NULL) curr_lu = (char **)NULL; } /* * telnet_fsm * Telnet finite-state machine. * Returns 0 for okay, -1 for errors. */ static int telnet_fsm(unsigned char c) { switch (telnet_state) { case TNS_DATA: /* normal data processing */ if (c == IAC) { /* got a telnet command */ telnet_state = TNS_IAC; break; } if (IN_ANSI && !IN_E) { /* NVT data? */ ; } else { store3270in(c); } break; case TNS_IAC: /* process a telnet command */ if (c != EOR && c != IAC) { vtrace_str("RCVD %s ", cmd(c)); } switch (c) { case IAC: /* escaped IAC, insert it */ if (IN_ANSI && !IN_E) { ; } else store3270in(c); telnet_state = TNS_DATA; break; case EOR: /* eor, process accumulated input */ trace_str("RCVD EOR"); if (IN_3270 || (IN_E && tn3270e_negotiated)) { trace_str("\n"); ns_rrcvd++; if (process_eor()) return -1; } else trace_str(" (ignored -- not in 3270 mode)\n"); ibptr = ibuf; telnet_state = TNS_DATA; break; case WILL: telnet_state = TNS_WILL; break; case WONT: telnet_state = TNS_WONT; break; case DO: telnet_state = TNS_DO; break; case DONT: telnet_state = TNS_DONT; break; case SB: telnet_state = TNS_SB; if (sbbuf == (unsigned char *)NULL) sbbuf = (unsigned char *)Malloc(1024); sbptr = sbbuf; break; case DM: trace_str("\n"); if (syncing) { syncing = 0; /* x_except_on(s); */ } telnet_state = TNS_DATA; break; case AO: if (IN_3270 && !IN_E) { trace_str("\n"); if (print_eoj() < 0) tn3270_nak(PDS_FAILED); } else { trace_str(" (ignored -- not in TN3270 mode)\n"); } ibptr = ibuf; telnet_state = TNS_DATA; break; case GA: case NOP: trace_str("\n"); telnet_state = TNS_DATA; break; default: trace_str(" (ignored -- unsupported)\n"); telnet_state = TNS_DATA; break; } break; case TNS_WILL: /* telnet WILL DO OPTION command */ vtrace_str("%s\n", opt(c)); switch (c) { case TELOPT_SGA: case TELOPT_BINARY: case TELOPT_EOR: case TELOPT_TTYPE: case TELOPT_ECHO: case TELOPT_TN3270E: if (!hisopts[c]) { hisopts[c] = 1; do_opt[2] = c; net_rawout(do_opt, sizeof(do_opt)); vtrace_str("SENT %s %s\n", cmd(DO), opt(c)); /* For UTS, volunteer to do EOR when they do. */ if (c == TELOPT_EOR && !myopts[c]) { myopts[c] = 1; will_opt[2] = c; net_rawout(will_opt, sizeof(will_opt)); vtrace_str("SENT %s %s\n", cmd(WILL), opt(c)); } check_in3270(); } break; default: dont_opt[2] = c; net_rawout(dont_opt, sizeof(dont_opt)); vtrace_str("SENT %s %s\n", cmd(DONT), opt(c)); break; } telnet_state = TNS_DATA; break; case TNS_WONT: /* telnet WONT DO OPTION command */ vtrace_str("%s\n", opt(c)); if (hisopts[c]) { hisopts[c] = 0; dont_opt[2] = c; net_rawout(dont_opt, sizeof(dont_opt)); vtrace_str("SENT %s %s\n", cmd(DONT), opt(c)); check_in3270(); } telnet_state = TNS_DATA; break; case TNS_DO: /* telnet PLEASE DO OPTION command */ vtrace_str("%s\n", opt(c)); switch (c) { case TELOPT_BINARY: case TELOPT_EOR: case TELOPT_TTYPE: case TELOPT_SGA: case TELOPT_TM: case TELOPT_TN3270E: #if defined(HAVE_LIBSSL) /*[*/ case TELOPT_STARTTLS: #endif /*]*/ if (!myopts[c]) { if (c != TELOPT_TM) myopts[c] = 1; will_opt[2] = c; net_rawout(will_opt, sizeof(will_opt)); vtrace_str("SENT %s %s\n", cmd(WILL), opt(c)); check_in3270(); } #if defined(HAVE_LIBSSL) /*[*/ if (c == TELOPT_STARTTLS) { static unsigned char follows_msg[] = { IAC, SB, TELOPT_STARTTLS, TLS_FOLLOWS, IAC, SE }; /* * Send IAC SB STARTTLS FOLLOWS IAC SE * to announce that what follows is TLS. */ net_rawout(follows_msg, sizeof(follows_msg)); vtrace_str("SENT %s %s FOLLOWS %s\n", cmd(SB), opt(TELOPT_STARTTLS), cmd(SE)); need_tls_follows = True; } #endif /*]*/ break; default: wont_opt[2] = c; net_rawout(wont_opt, sizeof(wont_opt)); vtrace_str("SENT %s %s\n", cmd(WONT), opt(c)); break; } telnet_state = TNS_DATA; break; case TNS_DONT: /* telnet PLEASE DON'T DO OPTION command */ vtrace_str("%s\n", opt(c)); if (myopts[c]) { myopts[c] = 0; wont_opt[2] = c; net_rawout(wont_opt, sizeof(wont_opt)); vtrace_str("SENT %s %s\n", cmd(WONT), opt(c)); check_in3270(); } telnet_state = TNS_DATA; break; case TNS_SB: /* telnet sub-option string command */ if (c == IAC) telnet_state = TNS_SB_IAC; else *sbptr++ = c; break; case TNS_SB_IAC: /* telnet sub-option string command */ *sbptr++ = c; if (c == SE) { telnet_state = TNS_DATA; if (sbbuf[0] == TELOPT_TTYPE && sbbuf[1] == TELQUAL_SEND) { int tt_len, tb_len; char *tt_out; vtrace_str("%s %s\n", opt(sbbuf[0]), telquals[sbbuf[1]]); if (lus != (char **)NULL && try_assoc == NULL && try_lu == NULL) { /* None of the LUs worked. */ errmsg("Cannot connect to specified " "LU"); return -1; } tt_len = strlen(termtype); if (try_lu != NULL && *try_lu) { tt_len += strlen(try_lu) + 1; connected_lu = try_lu; } else connected_lu = NULL; tb_len = 4 + tt_len + 2; tt_out = Malloc(tb_len + 1); (void) sprintf(tt_out, "%c%c%c%c%s%s%s%c%c", IAC, SB, TELOPT_TTYPE, TELQUAL_IS, termtype, (try_lu != NULL && *try_lu) ? "@" : "", (try_lu != NULL && *try_lu) ? try_lu : "", IAC, SE); net_rawout((unsigned char *)tt_out, tb_len); vtrace_str("SENT %s %s %s %.*s %s\n", cmd(SB), opt(TELOPT_TTYPE), telquals[TELQUAL_IS], tt_len, tt_out + 4, cmd(SE)); Free(tt_out); /* Advance to the next LU name. */ next_lu(); } else if (myopts[TELOPT_TN3270E] && sbbuf[0] == TELOPT_TN3270E) { if (tn3270e_negotiate()) return -1; } #if defined(HAVE_LIBSSL) /*[*/ else if (need_tls_follows && myopts[TELOPT_STARTTLS] && sbbuf[0] == TELOPT_STARTTLS) { if (continue_tls(sbbuf, sbptr - sbbuf) < 0) return -1; } #endif /*]*/ } else { telnet_state = TNS_SB; } break; } return 0; } /* Send a TN3270E terminal type request. */ static void tn3270e_request(void) { int tt_len, tb_len; char *tt_out; char *t; tt_len = strlen(termtype); if (try_assoc != NULL) tt_len += strlen(try_assoc) + 1; else if (try_lu != NULL && *try_lu) tt_len += strlen(try_lu) + 1; tb_len = 5 + tt_len + 2; tt_out = Malloc(tb_len + 1); t = tt_out; t += sprintf(tt_out, "%c%c%c%c%c%s", IAC, SB, TELOPT_TN3270E, TN3270E_OP_DEVICE_TYPE, TN3270E_OP_REQUEST, termtype); if (try_assoc != NULL) t += sprintf(t, "%c%s", TN3270E_OP_ASSOCIATE, try_assoc); else if (try_lu != NULL && *try_lu) t += sprintf(t, "%c%s", TN3270E_OP_CONNECT, try_lu); (void) sprintf(t, "%c%c", IAC, SE); net_rawout((unsigned char *)tt_out, tb_len); vtrace_str("SENT %s %s DEVICE-TYPE REQUEST %.*s%s%s%s%s " "%s\n", cmd(SB), opt(TELOPT_TN3270E), strlen(termtype), tt_out + 5, (try_assoc != NULL) ? " ASSOCIATE " : "", (try_assoc != NULL) ? try_assoc : "", (try_lu != NULL && *try_lu) ? " CONNECT " : "", (try_lu != NULL && *try_lu) ? try_lu : "", cmd(SE)); Free(tt_out); } /* * Negotiation of TN3270E options. * Returns 0 if okay, -1 if we have to give up altogether. */ static int tn3270e_negotiate(void) { #define LU_MAX 32 static char reported_lu[LU_MAX+1]; static char reported_type[LU_MAX+1]; int sblen; unsigned long e_rcvd; /* Find out how long the subnegotiation buffer is. */ for (sblen = 0; ; sblen++) { if (sbbuf[sblen] == SE) break; } vtrace_str("TN3270E "); switch (sbbuf[1]) { case TN3270E_OP_SEND: if (sbbuf[2] == TN3270E_OP_DEVICE_TYPE) { /* Host wants us to send our device type. */ vtrace_str("SEND DEVICE-TYPE SE\n"); tn3270e_request(); } else { vtrace_str("SEND ??%u SE\n", sbbuf[2]); } break; case TN3270E_OP_DEVICE_TYPE: /* Device type negotiation. */ vtrace_str("DEVICE-TYPE "); switch (sbbuf[2]) { case TN3270E_OP_IS: { int tnlen, snlen; /* Device type success. */ /* Isolate the terminal type and session. */ tnlen = 0; while (sbbuf[3+tnlen] != SE && sbbuf[3+tnlen] != TN3270E_OP_CONNECT) tnlen++; snlen = 0; if (sbbuf[3+tnlen] == TN3270E_OP_CONNECT) { while(sbbuf[3+tnlen+1+snlen] != SE) snlen++; } vtrace_str("IS %.*s CONNECT %.*s SE\n", tnlen, &sbbuf[3], snlen, &sbbuf[3+tnlen+1]); /* Remember the LU. */ if (tnlen) { if (tnlen > LU_MAX) tnlen = LU_MAX; (void)strncpy(reported_type, (char *)&sbbuf[3], tnlen); reported_type[tnlen] = '\0'; connected_type = reported_type; } if (snlen) { if (snlen > LU_MAX) snlen = LU_MAX; (void)strncpy(reported_lu, (char *)&sbbuf[3+tnlen+1], snlen); reported_lu[snlen] = '\0'; connected_lu = reported_lu; } /* Tell them what we can do. */ tn3270e_subneg_send(TN3270E_OP_REQUEST, e_funcs); break; } case TN3270E_OP_REJECT: /* Device type failure. */ vtrace_str("REJECT REASON %s SE\n", rsn(sbbuf[4])); if (try_assoc != NULL) { errmsg("Cannot associate with specified LU: %s", rsn(sbbuf[4])); return -1; } next_lu(); if (try_lu != NULL) { /* Try the next LU. */ tn3270e_request(); } else if (lus != NULL) { /* No more LUs to try. Give up. */ errmsg("Cannot connect to specified LU: %s", rsn(sbbuf[4])); return -1; } else { errmsg("Device type rejected, cannot connect: " "%s", rsn(sbbuf[4])); return -1; } break; default: vtrace_str("??%u SE\n", sbbuf[2]); break; } break; case TN3270E_OP_FUNCTIONS: /* Functions negotiation. */ vtrace_str("FUNCTIONS "); switch (sbbuf[2]) { case TN3270E_OP_REQUEST: /* Host is telling us what functions they want. */ vtrace_str("REQUEST %s SE\n", tn3270e_function_names(sbbuf+3, sblen-3)); e_rcvd = tn3270e_fdecode(sbbuf+3, sblen-3); if ((e_rcvd == e_funcs) || (e_funcs & ~e_rcvd)) { /* They want what we want, or less. Done. */ e_funcs = e_rcvd; tn3270e_subneg_send(TN3270E_OP_IS, e_funcs); tn3270e_negotiated = 1; vtrace_str("TN3270E option negotiation " "complete.\n"); check_in3270(); } else { /* * They want us to do something we can't. * Request the common subset. */ e_funcs &= e_rcvd; tn3270e_subneg_send(TN3270E_OP_REQUEST, e_funcs); } break; case TN3270E_OP_IS: /* They accept our last request. */ vtrace_str("IS %s SE\n", tn3270e_function_names(sbbuf+3, sblen-3)); e_rcvd = tn3270e_fdecode(sbbuf+3, sblen-3); if (e_rcvd != e_funcs) { if (e_funcs & ~e_rcvd) { /* They've removed something. Fine. */ e_funcs &= e_rcvd; } else { /* * They've added something. Abandon * TN3270E, they're brain dead. */ vtrace_str("Host illegally added " "function(s), aborting " "TN3270E\n"); wont_opt[2] = TELOPT_TN3270E; net_rawout(wont_opt, sizeof(wont_opt)); vtrace_str("SENT %s %s\n", cmd(WONT), opt(TELOPT_TN3270E)); myopts[TELOPT_TN3270E] = 0; check_in3270(); break; } } tn3270e_negotiated = 1; vtrace_str("TN3270E option negotiation complete.\n"); check_in3270(); break; default: vtrace_str("??%u SE\n", sbbuf[2]); break; } break; default: vtrace_str("??%u SE\n", sbbuf[1]); } /* Good enough for now. */ return 0; } /* Expand a string of TN3270E function codes into text. */ static const char * tn3270e_function_names(const unsigned char *buf, int len) { int i; static char text_buf[1024]; char *s = text_buf; if (!len) return("(null)"); for (i = 0; i < len; i++) { s += sprintf(s, "%s%s", (s == text_buf) ? "" : " ", fnn(buf[i])); } return text_buf; } /* Transmit a TN3270E FUNCTIONS REQUEST or FUNCTIONS IS message. */ static void tn3270e_subneg_send(unsigned char op, unsigned long funcs) { unsigned char proto_buf[7 + 32]; int proto_len; int i; /* Construct the buffers. */ (void) memcpy(proto_buf, functions_req, 4); proto_buf[4] = op; proto_len = 5; for (i = 0; i < 32; i++) { if (funcs & E_OPT(i)) proto_buf[proto_len++] = i; } /* Complete and send out the protocol message. */ proto_buf[proto_len++] = IAC; proto_buf[proto_len++] = SE; net_rawout(proto_buf, proto_len); /* Complete and send out the trace text. */ vtrace_str("SENT %s %s FUNCTIONS %s %s %s\n", cmd(SB), opt(TELOPT_TN3270E), (op == TN3270E_OP_REQUEST)? "REQUEST": "IS", tn3270e_function_names(proto_buf + 5, proto_len - 7), cmd(SE)); } /* Translate a string of TN3270E functions into a bit-map. */ static unsigned long tn3270e_fdecode(const unsigned char *buf, int len) { unsigned long r = 0L; int i; /* Note that this code silently ignores options >= 32. */ for (i = 0; i < len; i++) { if (buf[i] < 32) r |= E_OPT(buf[i]); } return r; } static int process_eor(void) { enum pds rv; if (syncing || !(ibptr - ibuf)) return(0); if (IN_E) { tn3270e_header *h = (tn3270e_header *)ibuf; vtrace_str("RCVD TN3270E(%s%s %s %u)\n", e_dt(h->data_type), e_rq(h->data_type, h->request_flag), e_rsp(h->data_type, h->response_flag), h->seq_number[0] << 8 | h->seq_number[1]); switch (h->data_type) { case TN3270E_DT_3270_DATA: case TN3270E_DT_SCS_DATA: if ((e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE)) && !tn3270e_bound) return 0; tn3270e_submode = E_3270; check_in3270(); response_required = h->response_flag; if (h->data_type == TN3270E_DT_3270_DATA) rv = process_ds(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); else rv = process_scs(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); if (rv < 0 && response_required != TN3270E_RSF_NO_RESPONSE) tn3270e_nak(rv); else if (rv == PDS_OKAY_NO_OUTPUT && response_required == TN3270E_RSF_ALWAYS_RESPONSE) tn3270e_ack(); response_required = TN3270E_RSF_NO_RESPONSE; return 0; case TN3270E_DT_BIND_IMAGE: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; tn3270e_bound = 1; check_in3270(); if (h->response_flag) tn3270e_ack(); return 0; case TN3270E_DT_UNBIND: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; tn3270e_bound = 0; if (tn3270e_submode == E_3270) tn3270e_submode = E_NONE; check_in3270(); if (print_eoj() == 0) rv = PDS_OKAY_NO_OUTPUT; else rv = PDS_FAILED; if (h->response_flag) { if (rv >= 0) tn3270e_ack(); else tn3270e_nak(rv); } print_unbind(); return 0; case TN3270E_DT_SSCP_LU_DATA: case TN3270E_DT_NVT_DATA: if (h->response_flag) tn3270e_nak(PDS_BAD_CMD); return 0; case TN3270E_DT_PRINT_EOJ: rv = PDS_OKAY_NO_OUTPUT; if (ignoreeoj) vtrace_str("(ignored)\n"); else if (print_eoj() < 0) rv = PDS_FAILED; if (h->response_flag) { if (rv >= 0) tn3270e_ack(); else tn3270e_nak(rv); } return 0; default: return 0; } } else { /* Plain old 3270 mode. */ rv = process_ds(ibuf, ibptr - ibuf); if (rv < 0) tn3270_nak(rv); else tn3270_ack(); return 0; } } /* * net_exception * Called when there is an exceptional condition on the socket. */ void net_exception(void) { trace_str("RCVD urgent data indication\n"); if (!syncing) { syncing = 1; /* x_except_off(); */ } } /* * Flavors of Network Output: * * net_output send a 3270 record * net_rawout send telnet protocol data */ /* * net_rawout * Send out raw telnet data. We assume that there will always be enough * space to buffer what we want to transmit, so we don't handle EAGAIN or * EWOULDBLOCK. */ static void net_rawout(unsigned const char *buf, int len) { int nw; trace_netdata('>', buf, len); while (len) { #if defined(OMTU) /*[*/ int n2w = len; int pause = 0; if (n2w > OMTU) { n2w = OMTU; pause = 1; } #else # define n2w len #endif #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) nw = SSL_write(ssl_con, (const char *) buf, n2w); else #endif /*]*/ nw = send(sock, (const char *) buf, n2w, 0); if (nw < 0) { #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { unsigned long e; char err_buf[1024]; e = ERR_get_error(); (void) ERR_error_string(e, err_buf); vtrace_str("RCVD socket error %ld (%s)\n", e, err_buf); errmsg("SSL_write:\n%s", err_buf); cstate = NOT_CONNECTED; return; } #endif /*]*/ vtrace_str("RCVD socket error %s\n", sockerrmsg()); if (socket_errno() == SE_EPIPE || socket_errno() == SE_ECONNRESET) { cstate = NOT_CONNECTED; return; } else if (socket_errno() == SE_EINTR) { goto bot; } else { popup_a_sockerr("Socket write"); cstate = NOT_CONNECTED; return; } } ns_bsent += nw; len -= nw; buf += nw; bot: #if defined(OMTU) /*[*/ if (pause) sleep(1); #endif /*]*/ ; } } /* * check_in3270 * Check for switches between NVT, SSCP-LU and 3270 modes. */ static void check_in3270(void) { enum cstate new_cstate = NOT_CONNECTED; static const char *state_name[] = { "unconnected", "pending", "connected initial", "TN3270 NVT", "TN3270 3270", "TN3270E", "TN3270E NVT", "TN3270E SSCP-LU", "TN3270E 3270" }; if (myopts[TELOPT_TN3270E]) { if (!tn3270e_negotiated) new_cstate = CONNECTED_INITIAL_E; else switch (tn3270e_submode) { case E_NONE: new_cstate = CONNECTED_INITIAL_E; break; case E_NVT: new_cstate = CONNECTED_NVT; break; case E_3270: new_cstate = CONNECTED_TN3270E; break; case E_SSCP: new_cstate = CONNECTED_SSCP; break; } } else if (myopts[TELOPT_BINARY] && myopts[TELOPT_EOR] && myopts[TELOPT_TTYPE] && hisopts[TELOPT_BINARY] && hisopts[TELOPT_EOR]) { new_cstate = CONNECTED_3270; } else if (cstate == CONNECTED_INITIAL) { /* Nothing has happened, yet. */ return; } else { new_cstate = CONNECTED_ANSI; } if (new_cstate != cstate) { int was_in_e = IN_E; vtrace_str("Now operating in %s mode.\n", state_name[new_cstate]); cstate = new_cstate; /* * If the user specified an association, and the host has * entered TELNET NVT mode or TN3270 (non-TN3270E) mode, * give up. */ if (try_assoc != NULL && !IN_E) { errmsg("Host does not support TN3270E, cannot " "associate with specified LU"); /* No return value, gotta abort here. */ pr3287_exit(1); } /* * If we've now switched between non-TN3270E mode and * TN3270E state, reset the LU list so we can try again * in the new mode. */ if (lus != (char **)NULL && was_in_e != IN_E) { curr_lu = lus; try_lu = *curr_lu; } /* Allocate the initial 3270 input buffer. */ if (new_cstate >= CONNECTED_INITIAL && !ibuf_size) { ibuf = (unsigned char *)Malloc(BUFSIZ); ibuf_size = BUFSIZ; ibptr = ibuf; } /* If we fell out of TN3270E, remove the state. */ if (!myopts[TELOPT_TN3270E]) { tn3270e_negotiated = 0; tn3270e_submode = E_NONE; tn3270e_bound = 0; } } } /* * store3270in * Store a character in the 3270 input buffer, checking for buffer * overflow and reallocating ibuf if necessary. */ static void store3270in(unsigned char c) { if (ibptr - ibuf >= ibuf_size) { ibuf_size += BUFSIZ; ibuf = (unsigned char *)Realloc((char *)ibuf, ibuf_size); ibptr = ibuf + ibuf_size - BUFSIZ; } *ibptr++ = c; } /* * space3270out * Ensure that more characters will fit in the 3270 output buffer. * Allocates the buffer in BUFSIZ chunks. * Allocates hidden space at the front of the buffer for TN3270E. */ void space3270out(int n) { unsigned nc = 0; /* amount of data currently in obuf */ unsigned more = 0; if (obuf_size) nc = obptr - obuf; while ((nc + n + EH_SIZE) > (obuf_size + more)) { more += BUFSIZ; } if (more) { obuf_size += more; obuf_base = (unsigned char *)Realloc((char *)obuf_base, obuf_size); obuf = obuf_base + EH_SIZE; obptr = obuf + nc; } } /* * nnn * Expands a number to a character string, for displaying unknown telnet * commands and options. */ static const char * nnn(int c) { static char buf[64]; (void) sprintf(buf, "%d", c); return buf; } /* * cmd * Expands a TELNET command into a character string. */ static const char * cmd(int c) { if (TELCMD_OK(c)) return TELCMD(c); else return nnn((int)c); } /* * opt * Expands a TELNET option into a character string. */ static const char * opt(unsigned char c) { if (TELOPT_OK(c)) return TELOPT(c); else if (c == TELOPT_TN3270E) return "TN3270E"; #if defined(HAVE_LIBSSL) /*[*/ else if (c == TELOPT_STARTTLS) return "START-TLS"; #endif /*]*/ else return nnn((int)c); } #define LINEDUMP_MAX 32 void trace_netdata(char direction, unsigned const char *buf, int len) { int offset; struct timeval ts; double tdiff; if (tracef == NULL) return; (void) gettimeofday(&ts, (struct timezone *)NULL); if (IN_3270) { tdiff = ((1.0e6 * (double)(ts.tv_sec - ds_ts.tv_sec)) + (double)(ts.tv_usec - ds_ts.tv_usec)) / 1.0e6; (void) fprintf(tracef, "%c +%gs\n", direction, tdiff); } ds_ts = ts; for (offset = 0; offset < len; offset++) { if (!(offset % LINEDUMP_MAX)) (void) fprintf(tracef, "%s%c 0x%-3x ", (offset ? "\n" : ""), direction, offset); (void) fprintf(tracef, "%02x", buf[offset]); } (void) fprintf(tracef, "\n"); } /* * net_output * Send 3270 output over the network, prepending TN3270E headers and * tacking on the necessary telnet end-of-record command. */ void net_output(void) { #define BSTART ((IN_TN3270E || IN_SSCP) ? obuf_base : obuf) /* Set the TN3720E header. */ if (IN_TN3270E || IN_SSCP) { tn3270e_header *h = (tn3270e_header *)obuf_base; /* Check for sending a TN3270E response. */ if (response_required == TN3270E_RSF_ALWAYS_RESPONSE) { tn3270e_ack(); response_required = TN3270E_RSF_NO_RESPONSE; } /* Set the outbound TN3270E header. */ h->data_type = IN_TN3270E ? TN3270E_DT_3270_DATA : TN3270E_DT_SSCP_LU_DATA; h->request_flag = 0; h->response_flag = 0; h->seq_number[0] = (e_xmit_seq >> 8) & 0xff; h->seq_number[1] = e_xmit_seq & 0xff; } /* Count the number of IACs in the message. */ { char *buf = (char *)BSTART; int len = obptr - BSTART; char *iac; int cnt = 0; while (len && (iac = memchr(buf, IAC, len)) != NULL) { cnt++; len -= iac - buf + 1; buf = iac + 1; } if (cnt) { space3270out(cnt); len = obptr - BSTART; buf = (char *)BSTART; /* Now quote them. */ while (len && (iac = memchr(buf, IAC, len)) != NULL) { int ml = len - (iac - buf); memmove(iac + 1, iac, ml); len -= iac - buf + 1; buf = iac + 2; obptr++; } } } /* Add IAC EOR to the end and send it. */ space3270out(2); *obptr++ = IAC; *obptr++ = EOR; if (IN_TN3270E || IN_SSCP) { vtrace_str("SENT TN3270E(%s NO-RESPONSE %u)\n", IN_TN3270E ? "3270-DATA" : "SSCP-LU-DATA", e_xmit_seq); if (e_funcs & E_OPT(TN3270E_FUNC_RESPONSES)) e_xmit_seq = (e_xmit_seq + 1) & 0x7fff; } net_rawout(BSTART, obptr - BSTART); trace_str("SENT EOR\n"); ns_rsent++; #undef BSTART } /* Send a TN3270 positive response to the server. */ static void tn3270_ack(void) { unsigned char rsp_buf[7]; int rsp_len = sizeof(rsp_buf); rsp_buf[0] = 0x01; /* SOH */ rsp_buf[1] = 0x6c; /* % */ rsp_buf[2] = 0xd9; /* R */ rsp_buf[3] = 0x02; /* Device End - No Error */ rsp_buf[4] = 0x00; /* No error */ rsp_buf[5] = IAC; rsp_buf[6] = EOR; vtrace_str("SENT TN3270 PRINTER STATUS(OKAY)\n"); net_rawout(rsp_buf, rsp_len); } /* Send a TN3270 negative response to the server. */ static void tn3270_nak(enum pds rv) { unsigned char rsp_buf[7]; int rsp_len = sizeof(rsp_buf); rsp_buf[0] = 0x01; /* SOH */ rsp_buf[1] = 0x6c; /* % */ rsp_buf[2] = 0xd9; /* R */ rsp_buf[3] = 0x04; /* Error */ switch (rv) { case PDS_BAD_CMD: rsp_buf[4] = 0x20; /* Command Rejected (CR) */ break; case PDS_BAD_ADDR: rsp_buf[4] = 0x04; /* Data check - invalid print data */ break; case PDS_FAILED: rsp_buf[4] = 0x10; /* Printer not ready */ break; default: rsp_buf[4] = 0x20; /* Command Rejected - shouldn't happen */ break; } rsp_buf[5] = IAC; rsp_buf[6] = EOR; vtrace_str("SENT TN3270 PRINTER STATUS(ERROR)\n"); net_rawout(rsp_buf, rsp_len); /* * If we just told the host 'intervention required', tell it * everything's okay now. */ if (rv == PDS_FAILED) tn3270_ack(); } /* Send a TN3270E positive response to the server. */ static void tn3270e_ack(void) { unsigned char rsp_buf[9]; tn3270e_header *h, *h_in; int rsp_len = EH_SIZE; h = (tn3270e_header *)rsp_buf; h_in = (tn3270e_header *)ibuf; h->data_type = TN3270E_DT_RESPONSE; h->request_flag = 0; h->response_flag = TN3270E_RSF_POSITIVE_RESPONSE; h->seq_number[0] = h_in->seq_number[0]; h->seq_number[1] = h_in->seq_number[1]; if (h->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = TN3270E_POS_DEVICE_END; rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; vtrace_str("SENT TN3270E(RESPONSE POSITIVE-RESPONSE " "%u) DEVICE-END\n", h_in->seq_number[0] << 8 | h_in->seq_number[1]); net_rawout(rsp_buf, rsp_len); } /* Send a TN3270E negative response to the server. */ static void tn3270e_nak(enum pds rv) { unsigned char rsp_buf[9], r; tn3270e_header *h, *h_in; int rsp_len = EH_SIZE; h = (tn3270e_header *)rsp_buf; h_in = (tn3270e_header *)ibuf; h->data_type = TN3270E_DT_RESPONSE; h->request_flag = 0; h->response_flag = TN3270E_RSF_NEGATIVE_RESPONSE; h->seq_number[0] = h_in->seq_number[0]; h->seq_number[1] = h_in->seq_number[1]; if (h->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; switch (rv) { default: case PDS_BAD_CMD: rsp_buf[rsp_len++] = r = TN3270E_NEG_COMMAND_REJECT; break; case PDS_BAD_ADDR: rsp_buf[rsp_len++] = r = TN3270E_NEG_OPERATION_CHECK; break; case PDS_FAILED: rsp_buf[rsp_len++] = r = TN3270E_NEG_INTERVENTION_REQUIRED; break; } rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; vtrace_str("SENT TN3270E(RESPONSE NEGATIVE-RESPONSE %u) %s\n", h_in->seq_number[0] << 8 | h_in->seq_number[1], e_neg_type(r)); net_rawout(rsp_buf, rsp_len); /* * If we just told the host 'intervention required', tell it * everything's okay now. */ if (r == TN3270E_NEG_INTERVENTION_REQUIRED) tn3270e_cleared(); } /* Send a TN3270E error cleared indication to the host. */ static void tn3270e_cleared(void) { unsigned char rsp_buf[9]; tn3270e_header *h; int rsp_len = EH_SIZE; h = (tn3270e_header *)rsp_buf; h->data_type = TN3270E_OP_REQUEST; h->request_flag = TN3270E_RQF_ERR_COND_CLEARED; h->response_flag = 0; h->seq_number[0] = (e_xmit_seq >> 8) & 0xff; h->seq_number[1] = e_xmit_seq & 0xff; if (h->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; vtrace_str("SENT TN3270E(REQUEST ERR-COND-CLEARED %u)\n", e_xmit_seq); net_rawout(rsp_buf, rsp_len); e_xmit_seq = (e_xmit_seq + 1) & 0x7fff; } /* Add a dummy TN3270E header to the output buffer. */ Boolean net_add_dummy_tn3270e(void) { tn3270e_header *h; if (!IN_E || tn3270e_submode == E_NONE) return False; space3270out(EH_SIZE); h = (tn3270e_header *)obptr; switch (tn3270e_submode) { case E_NONE: break; case E_NVT: h->data_type = TN3270E_DT_NVT_DATA; break; case E_SSCP: h->data_type = TN3270E_DT_SSCP_LU_DATA; break; case E_3270: h->data_type = TN3270E_DT_3270_DATA; break; } h->request_flag = 0; h->response_flag = TN3270E_RSF_NO_RESPONSE; h->seq_number[0] = 0; h->seq_number[1] = 0; obptr += EH_SIZE; return True; } /* * Add IAC EOR to a buffer. */ void net_add_eor(unsigned char *buf, int len) { buf[len++] = IAC; buf[len++] = EOR; } static void vtrace_str(const char *fmt, ...) { static char trace_msg[256]; va_list args; va_start(args, fmt); (void) vsprintf(trace_msg, fmt, args); trace_str(trace_msg); } #if defined(HAVE_LIBSSL) /*[*/ /* Initialize the OpenSSL library. */ static void ssl_init(void) { static Boolean ssl_initted = False; if (!ssl_initted) { SSL_load_error_strings(); SSL_library_init(); ssl_initted = True; ssl_ctx = SSL_CTX_new(SSLv23_method()); if (ssl_ctx == NULL) { errmsg("SSL_CTX_new failed"); ssl_host = False; return; } SSL_CTX_set_options(ssl_ctx, SSL_OP_ALL); } ssl_con = SSL_new(ssl_ctx); if (ssl_con == NULL) { errmsg("SSL_new failed"); return; } /* XXX: Get verify flags from a per-host resource. */ SSL_set_verify(ssl_con, 0/*xxx*/, NULL); SSL_CTX_set_info_callback(ssl_ctx, client_info_callback); /* XXX: Get cert_file and key_file from a per-host resource. */ SSL_CTX_set_default_verify_paths(ssl_ctx); } /* Callback for tracing protocol negotiation. */ static void client_info_callback(INFO_CONST SSL *s, int where, int ret) { if (where == SSL_CB_CONNECT_LOOP) { vtrace_str("SSL_connect: %s %s\n", SSL_state_string(s), SSL_state_string_long(s)); } else if (where == SSL_CB_CONNECT_EXIT) { if (ret == 0) { vtrace_str("SSL_connect: failed in %s %s\n", SSL_state_string(s), SSL_state_string_long(s)); } else if (ret < 0) { vtrace_str("SSL_connect: error in %s %s\n", SSL_state_string(s), SSL_state_string_long(s)); } } } /* Process a STARTTLS subnegotiation. */ static int continue_tls(unsigned char *sbbuf, int len) { /* Whatever happens, we're not expecting another SB STARTTLS. */ need_tls_follows = False; /* Make sure the option is FOLLOWS. */ if (len < 2 || sbbuf[1] != TLS_FOLLOWS) { /* Trace the junk. */ vtrace_str("%s ? %s\n", opt(TELOPT_STARTTLS), cmd(SE)); errmsg("TLS negotiation failure"); return -1; } /* Trace what we got. */ vtrace_str("%s FOLLOWS %s\n", opt(TELOPT_STARTTLS), cmd(SE)); /* Initialize the SSL library. */ ssl_init(); if (ssl_con == NULL) { /* Failed. */ return -1; } /* Set up the TLS/SSL connection. */ SSL_set_fd(ssl_con, sock); if (!SSL_connect(ssl_con)) { popup_a_sockerr("SSL_connect failed"); return -1; } secure_connection = True; /* Success. */ vtrace_str("TLS/SSL negotiated connection complete. " "Connection is now secure.\n"); return 0; } #endif /*]*/ ibm-3270-3.3.10ga4/wpr3287/winvers.c0000644000175000017500000000445211254565675016200 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * winvers.c * A Windows console-based 3270 Terminal Emulator * OS version query */ #include #include #include "winversc.h" int is_nt = 1; int has_ipv6 = 1; int get_version_info(void) { OSVERSIONINFO info; /* Figure out what version of Windows this is. */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); return -1; } /* Yes, people still run Win98. */ if (info.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) is_nt = 0; /* Win2K and earlier is IPv4-only. WinXP and later can have IPv6. */ if (!is_nt || info.dwMajorVersion < 5 || (info.dwMajorVersion == 5 && info.dwMinorVersion < 1)) { has_ipv6 = 0; } return 0; } ibm-3270-3.3.10ga4/wpr3287/trace_dsc.h0000644000175000017500000000477611254565701016436 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * trace_dsc.h * Global declarations for trace_ds.c. */ #if defined(X3270_TRACE) /*[*/ extern FILE *tracef; extern Boolean trace_skipping; const char *rcba(int baddr); const char *see_aid(unsigned char code); const char *see_attr(unsigned char fa); const char *see_color(unsigned char setting); const char *see_ebc(unsigned char ch); const char *see_efa(unsigned char efa, unsigned char value); const char *see_efa_only(unsigned char efa); const char *see_qcode(unsigned char id); void trace_ansi_disc(void); void trace_char(char c); void trace_ds(const char *fmt, ...); void trace_dsn(const char *fmt, ...); void trace_event(const char *fmt, ...); void trace_screen(void); const char *unknown(unsigned char value); #else /*][*/ #define tracef 0 #define trace_ds 0 && #define trace_dsn 0 && #define trace_event 0 && #define rcba 0 && #define see_aid 0 && #define see_attr 0 && #define see_color 0 && #define see_ebc 0 && #define see_efa 0 && #define see_efa_only 0 && #define see_qcode 0 && #endif /*]*/ ibm-3270-3.3.10ga4/wpr3287/html/0000755000175000017500000000000011261530022015246 5ustar bastianbastianibm-3270-3.3.10ga4/wpr3287/html/ReleaseNotes.html0000644000175000017500000016452011261530014020536 0ustar bastianbastian wpr3287 Release Notes

Changes in x3270, c3270, wc3270, s3270, tcl3270, pr3287 and wpr3287 3.3

3.3 is the current development line for the x3270 suite.

Changes in version 3.3.10ga4, 2. October 2009

  • [all x3270] Improved the File Transfer summary display.
  • [all x3270] Removed the keyboard lock when processing an Enter AID in SSCP-LU mode.
  • [x3270] Fixed a build problem when DBCS support is disabled.
  • [c3270] Made the special keymap key names (e.g., PRINT) case-insensitive.
  • [c3270] Fixed a problem with keyboard input in ISO 8859 locales.
  • [x3270] Increased the maximum number of fonts scanned to 50000.

Changes in version 3.3.10ga3, 15. September 2009

  • [x3270] Fixed some bugs in the xmkmf-free build.

Changes in version 3.3.10alpha2, 10. September 2009

  • [c3270] Added the ability to move the 3270 cursor with the mouse, if the terminal supports it. Add a Mouse resource, which can be set to False to disable it.
  • [all 3270] Added a Translate keyword to the Transfer action's parameters and an additional question to the interactive c3270/wc3270 Transfer dialog, to allow the automatic remapping of text (usually done to get the most accurate translation) to be disabled.
  • Restored the pop-up window that displays trace files.

Changes in version 3.3.10alpha1, 3. September 2009

  • [3270] Allow the program to be built without xmkmf.
  • [all 3270] Fixed the mapping of EBCDIC X'FF' to U+009F in ASCII-mode file transfers.
  • [all 3270] Fixed a crash in CUT-mode binary file sends, and corrected the local fopen() flags when receiving a binary file.
  • [x3270] Added the APL up- and down-arrow characters (↑ and ↓) to the 12-point fonts (thanks to Paul Scott for the fix).
  • [all 3270] Script comments are now allowed (any input line beginning with # or !).
  • [wc3270] Added support for the Enhanced keymap modifier (EnhancedReturn is the keypad Enter key. Also added Enter, PageUp and PageDown as aliases for the Windows keys RETURN, PRIOR and NEXT.
  • [wc3270] Added oversize, font size and background color support to the Session Wizard.
  • [x3270] Fixed a problem with ignored -set and -clear options.
  • [c3270 and wc3270] Added support for the -oversize auto option, which allows the emulator to use the entire area of the terminal or console window it is running in.
  • [x3270] Removed the huge delay at start-up.
  • [x3270, c3270, s3270 and wc3270] Added support for TCP-socket-based scripting via the -scriptport option. For wc3270, this is the first time that scripting has been available.
  • [all 3270 except x3270] Added support for the screenTraceFile resource.
  • [all 3270] Fixed a file descriptor leak with the -socket option.
  • [all 3270] Fixed a crash with the Toggle action and undefined toggles.
  • [wc3270] Implemented no-install mode (allowing wc3270 to run without installing the software) and auto-shortcut mode (where wc3270 automatically creates a temporary shortcut file to match a session file and runs it).
  • [all 3270] When a hostname resolves to multiple addresses, try each until one works.
  • [all 3270] Corrected an issue where the keyboard would lock on the first screen when connecting to hosts like Hercules.
  • [wc3270] Added mappings of the Page Up and Page Down keys to PF(7) and PF(8) respectively.
  • [wc3270, ws3270] Removed the .dll files from the distribution.
  • [c3270] Corrected an issue with cursor and function keys not being recognized if they are the first key pressed.
  • [all 3270] BIND image screen sizing is now observed.
  • [pr3287 and wpr3287] Corrected the -charset documentation on the manual page.
  • [all 3270] Resurrected flipped-screen mode via the Flip and ToggleReverse actions.
  • [all 3270] Added a Seconds form to the Wait action, allowing a script or macro to delay itself an arbitrary length of time.
  • [wc3270] Modified the PrintText action so that Wordpad is started minimized.

Changes in version 3.3.9ga11, 25. March 2009

  • [x3270 and c3270] Re-enable the ibm_hosts file (it was accidentally being ignored).
  • [all but wc3270] Don't crash when there is no iconv translation for the locale codeset.
  • [all but x3270] Fixed a build failure in glue.c when DBCS was disabled.
  • [wc3270] Corrected the default keymap so that the uppercase versions of the Alt mapping also work.
  • [wc3270] Corrected the documentation of the printTextFont and printTextSize resources.
  • [c3270] Corrected a number of errors in parsing CursesColorForxxx resources.
  • [c3270] Added support for -rv, which puts c3270 into black-on-white mode.
  • [c3270] Added support for 16-color terminals, with the -color8 option overriding this and forcing 8-color support only. On a 16-color terminal, -allbold is no longer the default.
  • [c3270, wc3270, s3270 and tcl3270] Ensured that command-line parameters override session files.
  • [c3270] Made session files replace profiles, rather than just overridding any common definitions. This is more intuitive and consistent with x3270.

Changes in version 3.3.9ga11, 27. February 2009

Common Changes

  • Improved hostname parsing. Now backslashes can be used to quote any character, and square brackets can be used to quote any element (LU name, host name, or port).
  • Fixed a number of compiler warnings from newer versions of gcc and a number of small memory leaks.
  • Overhauled the host code pages and CGCSGIDs for DBCS. Added sbcsCgcsgid and dbcsCgcsgid resources to override the compiled-in values.
  • Added a caption text option to the PrintText action, which will place the specified caption above the screen image. Within the text, the string %T% is interpolated to a timestamp.
  • Improved the state dump when tracing starts to include NVT and SSCP-LU state and the SNA BIND image.
  • Updated the copyright and licensing notices (now a standard BSD license).
  • Added support for carriage-return (0x0d) characters in the String action, which imply the Newline action.
  • Changed the Attn action so that it sends an IAC BREAK in TN3270 mode, and locks the keyboard in TN3270E mode when the session is not SNA bound.
  • Added Traditional Chinese (host code page 937) support.
  • Extended the String action's \e and \x sequences to accept 4-digit hex values, thus allowing EBCDIC DBCS input and arbitrary Unicode input. Also added \u as an alias for \x.

Changes to x3270

  • Fixed a crash when pasting an empty selection.
  • Made the Query Reply response for x3270 identical to the other tools.
  • Included fonts for Traditional Chinese.

Changes to x3270 and c3270

  • Removed the nested copy of pr3287. from the source. pr3287 must now be built separately from its own package.

Changes to wc3270

  • Corrected a problem with color mapping in the OIA.
  • Changed the New Session Wizard to the Session Wizard and gave it the ability to edit existing session files and re-create missing session files. Note that this ability is limited to session files created with 3.3.9beta10 or later.
  • Added a wc3270.printer.codepage resource to set the Windows code page for the associated pr3287 printer session.
  • Simplified the operation of the New Session Wizard, so it asks fewer questions.
  • Added a pager to interactive mode.
  • Made the PrintText font and point size configurable via the printTextFont and printTextSize resources.
  • Changed the default 'blue' color for created shortcuts to a somewhat lighter shade, to make it more readable.
  • Changed the Session Wizard to specify the code page and proper font when creating shortcuts for DBCS sessions. This should allow DBCS to work on Windows 2000 and Vista.
  • Included ws3270 in the wc3270 release.

Changes to c3270 and wc3270

  • Added feedback for the progress of file transfers.
  • Implemented the Info action, which writes a message to the OIA (the line below the display).
  • Added a no-prompt mode, via the -noprompt command-line option and the noPrompt resource .
  • Added automatic reconnect, via the -reconnect command-line option and the reconnect resource.

Changes to ws3270 (formerly available as a pre-release)

  • Fixed a bug which resulted in all command timings being displayed as '-'.
  • Added the -localcp option and localCP resource to change the Windows code page used for local workstation I/O.
  • Added DBCS support and support for building using Microsoft tools.

Changes to pr3287 and wpr3287

  • Fixed a serious character-mapping bug.
  • Added DBCS support.

Changes to specific versions

  • [c3270, s3270, s3270, ws3270 and x3270] Added support for session files.
  • [All except wc3270 and ws3270] Extended the rtf option of the PrintText to non-Windows platforms.
  • [All except x3270] Fixed a number of issues with -xrm option processing and keymap display when backslash sequences were used.

Changes in version 3.3.8p2, 13 December 2008

  • [wc3270] Corrected the handling of 8-bit and DBCS characters in the PrintText action.
  • [tcl3270] Extended configure to find the Tcl library version automatically.
  • [wc3270] Corrected a problem which caused mouse clicks not to be recognized (not moving the cursor) if NumLock was set.
  • [all] Corrected the configure script to recognize a separately-installed iconv library even if the iconv() function is defined in libc.
  • [wc3270] Restored the bell sound, and added a visualBell resource to disable it.

Changes in version 3.3.8p1, 20 October 2008

  • [wc3270] Restored the Ctrl-] mapping for the Escape action, which had been inadvertently removed.
  • [wc3270] wc3270 now starts successfully on Windows Vista.
  • [c3270] On platforms that require the iconv library, c3270 once again recognizes ncurses names in keymaps.
  • [x3270] The module keysym2ucs.c now builds on FreeBSD.
  • [x3270] Selections now work properly on platforms that do not support XA_UTF8_STRING.

Changes in version 3.3.8, 11 October 2008

Version 3.3.8 includes a significant internal change, using Unicode for all translations between the host and the local workstation. This change should be transparent, but users who depended on certain behaviors of the old implementation may see unexpected differences.

Common Changes

  • Many more EBCDIC characters, such as Graphics Escape line-drawing and APL characters, are now properly displayed (even without special 3270 fonts), traced, cut/pasted with other applications, and returned by scripting actions like Ascii.
  • With two exceptions, the locale's encoding is now observed consistently when reading keymaps, generating trace files, etc. The exceptions are:
    • tcl3270 always uses UTF-8, per the internal Tcl convention.
    • Because Cygwin doesn't really support locales, the Windows ANSI code page is used as the local encoding instead.
    • Stateful encodings such as ISO 2022 are untested and very likely do not work.
  • The ICU library is no longer used, and ICU .cnv files are no longer included with the code.
  • Translation to/from the local encoding requires one of two facilities: Either libc must support __STDC_ISO_10646__ (wchar_ts are defined to be unicode values, as on Linux and Windows), or there must be an iconv library that can translate between UTF-8 and all local encodings.
  • DBCS support is enabled by default, except on Windows. It can be explicitly disabled in the configure script to reduce the size of the executable (removing several large translation tables).
  • The -v/--verbose option has been added to display build and copyright information.
  • The Thai host code page has changed from 838 to 1160.

Changes Common to the 3270 Terminal Emulators

  • The Key action now accepts Unicode arguments in the form U+nnnn, removing possible ambiguity from translating from the
  • Added a Source action to read script commands from a file.
  • Added a 10 second timeout to the start of the Transfer action.
  • Added an unlockDelayMs resource to change the number of milliseconds of delay before atually unlocking the keyboard after the host requests it. The default is 350; use 0 to disable the delay altogether.
  • IND$FILE file transfer now transfers DBCS text files properly.

Changes Common to 3287 Printer Emulators

  • Added direct support for all x3270 host character sets via the -charset option.
  • Added -trnpre and -trnpost options to specify files containing transparent data to send to the printer before and after each print job, respectively.

Product-Speific Changes

  • [x3270] Commands entered into the Print Screen Text dialog are now saved by the Save Changed Options in File option.
  • [x3270] Fixed some bad interactions between the pop-up keypad and the GNOME window manager.
  • [x3270] The Euro fonts have been folded into the standard fonts.
  • [x3270] The font menu is now arranged hierarchically by foundry and family.
  • [c3270] Added an underscore toggle to allow underlined fields to be displayed even on consoles with no native underlining support, by substituting underscore '_' characters for blanks and nulls in underlined fields.
  • [c3270] Overhauled Meta and Alt key support. Removed support for the archaic Meta modifier in keymaps (it was an alias for setting bit 0x80 in each key). Replaced it with an Alt modifier, which matches the ESC sequence sent for the Alt key by many terminals, and which can be combined with full 8-bit input characters.
  • [c3270] Changed the interpretation of keymaps so that keys and symbols are matched in Unicode. That is, keymap text is converted from the current locale's encoding to Unicode before matching, and input character codes are converted to Unicode before matching. This eliminates the difficulty in creating keymaps and interpreting traces in non-Latin-1 locales -- needing to translate from the accidental interpretation of 8-bit values as Latin-1 when they are not -- but with the side-effect of rendering some carefully-crafted existing keymaps invalid. Keymaps can also be written using Unicode U+nnnn notation.
  • [c3270] Changed the metaEscape resource so that auto means on, instead of using the terminfo km resource.
  • [c3270] Added an acs resource to control the use of curses ACS codes. If c3270.acs is set to true (the default), c3270 will use curses ACS codes for line-drawing characters. If set to false, it will display line-drawing characters with Unicode.
  • [wc3270] Added an underscore toggle to control how underlined and blinking fields are displayed. If it is set (the default), underlined fields are displayed by substituting underscore (_) characters for blanks and nulls, and blinking fields actually blink. If it is clear, underlined and blinking fields are displayed with highlighted backgrounds, which is compatible with previous verions of wc3270.
  • [wc3270] Left-clicking with the mouse will now move the cursor to that location.
  • [wc3270] The PrintText action now works, and is mapped by default to the sequence Alt <Key>p. The printer.name resource defines the default printer to use.
  • [wc3270] The PrintText action can now be used to produce a RichText snapshot of the screen contents, via the rtf keyword.
  • [wc3270] The program longer attempts to set the console code page, which was error-prone and unnecessary.
  • [wc3270] The idle command feature now works, controlled by the idleCommand, idleCommandEnabled and idleTimeout resources.
  • [wc3270] The program no longer attempts to set the console code page, which could lead to hangs on Vista.
  • [wc3270] The installation now creates a program group item to explore the wc3270 Application Data directory.
  • [wc3270] Corrected a problem with console color overrides, which prevented reverse-video mode (white background) from working properly. For now, the recommended method for enabling reverse video mode is to add these lines to your session file:
          wc3270.consoleColorForHostColor0: 15
          wc3270.consoleColorForHostColor7: 0
  • [wc3270] wc3270 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.
  • [tcl3270] Added a commandTimeout resource to force any Tcl3270 command to time out after the specified number of seconds. (Thanks to Mark Young.)
  • [tcl3270] Fixed a per-command memory leak. (Thanks to Mark Young.)
  • [wpr3287] Added a -printercp option to specify a particular code page for printer output.
  • [wpr3287] wpr3287 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.

Changes in x3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in x3270 3.3.7p7, 4. July 2008

  • Bug Fixes:
    • Corrected input of 8-bit characters when x3270 is run in a UTF-8 locale.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.
  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.

Changes in x3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Fixed an issue with Idle commands, which would cause x3270 to exit with a Not Found error as soon as the idle command fired.

Changes in x3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed the annoying delay when x3270 starts with an error pop-up.
    • Shortened the manpage so that it displays on non-groff platforms. The full text is still available in the HTML version.
    • Plugged a number of memory leaks.
    • x3270 will now compile on platforms that do not support IPv6, such as Cygwin.
    • x3270 will no longer crash or spin when the -script option is used.
    • Shifted function keys should work again (they map to PF13-PF24).
    • The screen can now be resized larger, as well as smaller.
    • Removed the dependency on <bitmaps/gray>, which required installing an obscure X11 development package on some platforms.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added a SelectAll action, mapped to Ctrl-A.

Changes in c3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.
    • Allowed c3270 to build under SLES 10's unusual ncurses configuration.

Changes in c3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in c3270 3.3.7p4, 29. February 2008

  • Bug Fixes:
    • Fixed c3270's configure script again, so it will build on systems without the ncurses library.
    • Enabled idle command functionality, which had been accidentally disabled.

Changes in c3270 3.3.7p1, 28. December 2007

  • Bug Fixes:
    • c3270's configure script would not detect missing ncurses header files, and c3270 would not build if ncursesw was not installed.

Changes in c3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • c3270 will now display characters such as the notsign ¬ properly in terminal windows in UTF-8 locales. Note that this display support requires an ncurses or curses library that supports wide characters.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added display of the host code page and locale codeset to the show status command.
    • Added support for changing the color mappings. The curses color for a given host color can be specified with the resource c3270.cursesColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a curses color number (0 through 7).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      c3270.cursesColorForDefault
      c3270.cursesColorForIntensified
      c3270.cursesColorForProtected
      c3270.cursesColorForProtectedIntensified
             
      The value for each of these is a curses color number (0 through 7).

Changes in wc3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed idle command support.

Changes in wc3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Fixed a problem with transferring binary files, where 0x0d characters might be acidentally added to or removed from the data.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in wc3270 3.3.7p5, 11. April 2008

  • Bug Fixes:
    • After installation is complete, get rid of mkshort.exe, which shares its name (but not its functionality) with a computer surveillance application.
    • Corrected several issues with key event processing and the default keymap.

Changes in wc3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Changed the New Session Wizard to create the Application Data directory, so wc3270 can be run by any user, not just the one that installed it.
    • Changed the default window title from the pathname of the session to just the session name.

Changes in wc3270 3.3.7p2, 15. January 2008

  • Bug Fixes:
    • Fixed an embarassing problem that kept wpr3287 from starting.

Changes in wc3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed line-drawing characters.
    • Enabled IPv6 support for Windows XP and later.
    • Set the input code page correctly, so that keyboard input works correctly when there is a mismatch between the default Windows code page and the code page implied by the wc3270 character set option.
  • New Features:
    • Added limited support for Windows 98. wc3270 will install and run on Windows 98, but internationalization support is limited -- the only supported host code page is 37, and the only supported Windows code page is 437. This is expected to improve in the future.
    • Added a wc3270.highlightUnderline resource to control highlighting of underlined and blinking text. (Set to false to disable background highlighting.)
    • Moved session files, keymaps and trace files to the Application Data directory. (wc3270 will still look in its installation directory for session files and keymaps, after first searching the Application Data directory.) This makes wc3270 a better Windows citizen in general, and a better Vista citizen in particular.
    • Added support for changing the color mappings. The console color for a given host color can be specified with the resource wc3270.consoleColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a console color number (0 through 15).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      wc3270.hostColorForDefault
      wc3270.hostColorForIntensified
      wc3270.hostColorForProtected
      wc3270.hostColorForProtectedIntensified
             
      The value for each of these is a host color number; the actual color displayed is defined by the corresponding wc3270.consoleColorForHostColorn resource.
    • Added a new cp1153 character set. It implements host code page 1153 and uses Windows code page 1250, used primarily in Central Europe.
    • Added display of the Windows code page to the character set screen in the New Session Wizard.
    • Added display of the host and Windows code pages to the show status command.

Changes in s3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in s3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in s3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer(Ascii) actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

      NOTE: If you were were previously running s3270 in a UTF-8 locale, this is an incompatible change. To ensure the previous behavior, set your locale to C before starting s3270.

Changes in tcl3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in tcl3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in tcl3270 3.3.7p3, 22. Febuary 2008

  • Bug Fixes:
    • Fixed a problem with non-ASCII characters returned by the Ascii command.
    • Fixed a problem with the Connect command, which resulted in subsequent actions not blocking properly.

Changes in tcl3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

Changes in pr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in pr3287 3.3.7, 25. December 2007

  • Enhancements:
    • Added proxy support via the -proxy option.

Changes in wpr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in wpr3287 3.3.7, 25. December 2007

(none)

Changes in x3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Fixed the highlighted attribute for individual regions of the screen (versus the highlighted field attribute); it had been accidentally disabled.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Pseudo-Color mode is no more. This was the mode that x3270 used when a 3278 model was specified, or if the m3279 resource were set to False. Pseudo-Color assigned colors to regions of the screen based on intensity and light-pen selectability, and did not support 3279 colors. Now turning off color or selecting a 3278 results in something that looks like a 3278 (i.e., it's green). To resurrect Pseudo-Color mode, set the following resources:
        x3270.inputColor: orange
        x3270.boldColor: cyan

Changes in c3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Got local process (-e) support to work again.
    • Fixed -mono -allbold mode.
    • c3270 now paints the entire screen, not just the areas it intends to use, so there are no uninitialized regions.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for the 3270 background color attribute.
    • Added more mappings to the 3270 default keymap (IC -> ToggleInsert, Ctrl<Key>U -> DeleteField, etc.).
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Like x3270 and wc3270, -model 3278 now specifies a green-screen 3278 (if the terminal supports color), and like x3270, -mono specifies that any color capabilities reported by the terminal should be ignored.

Changes in wc3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Restored line-drawing character support.
    • Restored background color support in NVT mode.
    • Corrected some screen rendering issues.
    • Fixed screen trace (-set screenTrace).
    • Removed the -mono option and mono resource.
  • New Features:
    • Added the Spanish character set, CP 284.
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for setting the window title, either automatically, or via the -title option or wc3270.title resource.
    • Added gray background highlighting of underlined and blinking text. Windows consoles don't support these attributes, but at least they can be distinguished from other text now.
    • Added background color support in 3270 mode.
    • Added a window to monitor trace output.
    • Greatly improved key event tracing.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in s3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in tcl3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in wc3270 3.3.5p9, 10. June 2007

  • Bug Fixes:
    • The shortcut cursor size property is now obeyed.
    • The -model 3278 option now works correctly.
  • New Features:
    • Added secure connection status to the status line and the show status command.
    • Reverse video is now supported.
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added a keymap tutorial to the documentation.

Changes in wc3270 3.3.5p8, 29. April 2007

  • Bug Fixes:
    • Fixed a hang when wpr3287 exits unexpectedly.
    • Improved behavior when input comes from multiple sources, such as when pasting text.
    • Greatly improved screen update speed.
  • New Features:
    • Added wpr3287 support back to the wizard. It was in the GUI version, but was never in the text version.
    • Integrated new back-end printer support in wpr3287, including a new wc3270.printer.name resource.
    • Added a Paste() action, mapped to Ctrl-V, to do multi-line paste properly.
    • Added a .wc3270km suffix to keymap files.
    • Added keymap support to the wizard.
    • Added interactive prompting to the Transfer() action.

Changes in wpr3287 3.3.5p8, 29. April 2007

  • New Features:
    • Added direct support for Windows printers, instead of relying on the DOS PRINT command. This included changing the -command option to a -printer option, to specify the Windows printer to use as a back end.

Changes in x3270 3.3.5p6, 7. April 2007

  • Bug Fixes:
    • x3270 will now build with ICU 3.6.
    • A long-standing screen update bug is finally fixed.
    • The unused x3270hist.pl script is no longer installed.

Changes in c3270 3.3.5p4, 7. April 2007

  • Bug Fixes:
    • c3270 can now be built without File Transfer support.
    • The unused x3270hist.pl script is no longer installed.

Changes in wc3270 3.3.5p3, 2. March 2007

  • Bug Fixes:
    • Reverted the wc3270 New Session Wizard to the non-GUI version, because the GUI version, built with Microsoft Visual C++ 2005 Express Edition, had too many dependencies (latest service pack, .NET framework) on the target machine.

Changes in wc3270 3.3.5p2, 16. February 2007

  • Bug Fixes:
    • Ensured that the desktop shortcuts specify Lucida Console, so non-ASCII-7 characters are displayed properly.
  • New Features:
    • Added a file association for the .wc3270 suffix.
    • Replaced the console version of the New Session Wizard with a proper GUI version.

Changes in wc3270 3.3.5p1, 6. February 2007

  • Bug Fixes:
    • Added the working directory to the desktop links created by the setup program.
  • New Features:
    • Added printer session (wpr3287) support.

Changes in x3270 3.3.5, 1. February 2007

  • Bug Fixes:
    • Fixed a crash when the user's home directory or the ~/.x3270connect file wasn't writeable.
    • Fixed some endcases when pasting text that wraps lines and a field skip is encountered.
    • Fixed the handling of SI characters in cut/pasted text.
    • Allow the use of ICU version 3.0 or greater.
    • Fixed a scripting hang when the host disconnects during Wait(output)).
    • Turned the unlockDelay option back on by default.
    • Fixed a problem where unlockDelay could result in the keyboard never unlocking, if the host unlocked the keyboard often enough.
    • Added a workaround for very old snprintf() implementations.
    • Fixed a problem with DBCS input corrupting existing DBCS subfields.
    • Fixed a problem with the Wait action in the expect glue. (Thanks to Jason Howk for the fix.)
    • Enlarged the input buffer in x3270if. (Thanks to Igor Klingen for the fix.)
    • Fixed a SIGCHLD handler issue on AIX.
    • Fixed a problem with CR/LF translation on ASCII file transfers.
  • New Features:
    • Added a -socket option to x3270, s3270 and c3270 to allow a script to connect to a Unix-domain socket to control the emulator, and added a -p option to x3270if to connect to the socket.
    • Added optional support for plugins, with a first plugin to implement command history on VM/CMS and TSO hosts.
    • Allow arbitrary color names (#rrggbb) to be used in color schemes.
    • Added support for hierarchical macro menus.
    • Added an XkSelector resource to allow transparent support of non-English keyboards.
    • Added preliminary support the 16-bit display fonts and the Persian character set.
    • Added Title and WindowState actions to allow the x3270 window title and icon state to bw changed respectively.

Changes in x3270 3.3.4, 10. April 2005

  • Bug Fixes:
    • The code once again builds on Cygwin and other systems not supporting IPv6.
    • The -xrm option works again in x3270.
    • The -name X Toolkit option works with x3270, though not yet with app-defaults files.
    • Removed spurious 'no child' error messages from pr3287 on some systems.
    • Removed unintended blank-line suppression from the output of PrintText html string.
    • Restored some missing keymap definitions (rlx, ow) and some missing lines from other keymap definitions (apl).
    • Restored the automatic keyboard unlock delay when processing a macro or string. This allows macros and strings with embedded AID sequences to work with hosts that unlock the keyboard before they finish processing a command. Scripts are presumed to be able to figure out when the host is finished, or can set the unlockDelay resource to true get the delay all the time.
    • Fixed an apparent hang (actually just extreme slowness) when the host sends a message larger than 4 Kbytes on an SSL tunnel.
    • Removed spurious 'Wait timed out' errors in the Wait action.
  • New Features:
    • Added a newer, more flexible version of Don Russell's RPQNAMES support.
    • Added support for IPv6.
    • Added an oldclick keymap to restore the pre-3.3 mouse click behavior.

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta2, 1. February 2005

  • Bug Fixes:
    • Reduced the Resident Set Size (RSS) of x3270 from about 40 MBytes to less than 4 MBytes. This was a bug in how compiled-in app-defaults files were generated.
    • Got separate app-defaults files (configure --enable-app-defaults) to work again.
    • Fixed a crash when a login macro is used in NVT mode or when the host un-negotiates TN3270E mode.
    • Fixed the titles of the Copyright and Configuration pop-ups.
    • Temporarily disabled the RPQNAMES Query Reply. It was causing IBM QMF to crash. It can be re-enabled by adding #define X3270_RPQNAMES 1 to conf.h. Hopefully a proper fix can be found shortly.
  • New Features:

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta1, 31. December 2004

  • Bug Fixes:
    • The Transfer() action did not work at all -- it generated (null) as the name of the IND$FILE command. Also improved its behavior when invoked from a script or macro in x3270 and c3270.
    • Corrected the definition of the hebrew (code page 424) character set, removing undefined characters.
    • Corrected the display character set for the brazilian (code page 275) character set.
    • Corrected the character set definition logic so that undefined ASCII codes are truly undefined in NVT mode.
    • Corrected the ibm_hosts file (the hostsFile resource or the -hostsfile option). Variable and tilde substitution are now performed on the value, and if a non-default value is specified and the file does not exist, an error pop-up is generated.
    • Added a pause to make sure that c3270 start-up error messages will be seen.
    • Got the c3270 default field colors right, and made all-bold mode actually make all the fields bold.
    • Fixed the default primary/alternate screen size (it was alternate, it's supposed to be primary).
    • Fixed c3270 color support with ncurses and 80/132 screen-size switching. Sometimes only one of the screen sizes had color.
    • Fixed a memory leak in pr3287 when the -reconnect option is used. (Thanks to Marcelo Lemos for the fix.)
    • Fixed the output of NVT-mode ANSI line-drawing characters in the Ascii() scripting action. These were formerly all output as blanks; now they are output in the same was as x3270 3.2.
    • Fixed the display of NVT-mode ANSI line-drawing characters when x3270 is using a 3270 font.
    • Fixed the display of DBCS blanks, which sometimes displayed as 'undefined' characters.
    • Fixed DBCS character display with fonts whose maximum bounds are larger than their reported line-spacing bounds.
    • Fixed make depend.
    • Fixed x3270_glue.expect, which got confused when there was a whitespace-delimited double-quote in the emulator output.
    • Fixed crashes when the entire File or Options menus were suppressed.
    • Fixed a scripting hang when an UNBIND command arrived while an AID was pending.
    • Fixed a problem with the incomplete processing of a NULLing Program Tab order, which could leave formatting artifacts on the screen.
    • Removed <subchar1> clauses in two of the .ucm files that prevents later versions of ICU's makeconv from accepting them, and removed DOS carriage-return characters from the CP837 .ucm file.
    • Corrected some DFT-mode file upload problems: corrected the data length, and corrected an empty-buffer problem when the file size was an even multiple of the buffer size.
    • Corrected a DBCS conversion problem with ICU 3.0.
    • Added variable buffer-size support to DFT file transfers.
    • Corrected a line-drawing character bug in c3270.
    • Fixed a buffer overflow problem in the ReadBuffer action.
    • Fixed garbage characters generated for APL data by the Ascii and ReadBuffer actions.
    • Allow 0 timeouts in Wait actions.
  • New Features:
    • Added command-line options to the pr3287 trace file.
    • Added support for dead keys (acute, grave, circumflex, tilde, diaeresis) to the x3270 default keymap, and improved the Latin-1 compose map. (Thanks to Marcelo Lemos for the change.)
    • Added new actions for improved mouse interactions, and made them the default. Button 1 now moves the cursor, without the Shift key.
    • Added support for DBCS in pr3287, but only when started from an x3270 or c3270 session.
    • Added Don Russell's RPQNAMES support.
    • Removed Minolta-copyrighted 5250 code, because of licensing problems.
    • Added an aidWait toggle to allow AID script actions (Clear, Enter, PA and PF) to complete immediately without waiting for the host to unlock the keyboard, and a Wait(Unlock) action action to block a script until the keyboard is unlocked, regardless of the state of the new toggle.
    • Removed the old scripting hack that delayed actually unlocking the keyboard for 50ms after the host indicates that it should be unlocked. Added an unlockDelay resource, which can be set to true to turn the delay hack back on.
    • Added a dftBufferSize resource to set the default DFT buffer size.
    • Added an x3270 Save Screen Text menu option to save the screen image in a file, optionally in HTML.
    • Added options to the PrintText action to save to a file, to save HTML, and to return the text as script data.

Changes in x3270, c3270, s3270 and tcl3270 3.3.2, 1. December 2003

  • Bug Fixes:
    • Corrected an x3270 screen-redraw crash when using fixedSize and xim.
    • Corrected a problem in x3270_glue.expect, which caused Tcl syntax errors if a string began with a dash. Thanks to David Taylor for the fix.
    • Fixed a problem with x3270 DBCS input when using a single DBCS/SBCS character set.
    • Made DBCS encoding recognition automatic wherever possible, leaving the -km option for cases when x3270 can't figure it out from the locale.
    • Made c3270's configure more robust when it can't find one or the other of libncurses or ncurses.h.
    • Got automatic pr3287 start-up (-printerlu) working again in c3270.
    • Fixed an s3270 crash which made s3270 3.3.1alpha10 pretty much useless.
  • New Features:
    • Added support for Cyrillic keysyms to the x3270 Default() action.
    • Added an 'unlocked' icon for unencrypted connections, if x3270 is built with SSL/TLS support.
    • Error messages are now written to the trace file.
    • The response to the TELNET TIMING MARK option has been changed to make it compatible with the majority of TELNET clients. The response to DO TIMING MARK is now WONT TIMING MARK. To restore the previous behavior (responding with WILL TIMING MARK, originally derived from the BSD TELNET client), set the resource x3270.bsdTm to true.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha10, 29. August 2003

  • Bug Fixes:
    • Made nondisplay fields invisible to the Ascii() action.
    • Corrected start-field values at the beginning of data stream traces and in the 3270 Read Buffer response.
    • Corrected a tight loop in the macro error cancellation logic.
    • Corrected a crash when connecting to a host and there is no menu bar visible.
    • Corrected x3270 crashes in monochrome mode (-mono) and pseudo-color mode (-model 3278).
  • New Features:
    • Added a ReadBuffer() action to dump the entire contents of the 3270 buffer, including field attributes and extended attributes.
    • Added support for suppress resources for each menu item. If set to True, that menu item will not appear.
    • Added a suppressActions resource, a list of the names of actions to disable. This is primarily for controlled environments where the user does not have access to the x3270 command line, but can edit keymap definitions.
    • Added a Setverbose function to x3270_glue.expect to allow verbosity to be changed on the fly. (Courtesy of David Taylor.)
    • Added the ability to define resources in an environment variable, $X3270RDB. The environment variable overrides values set in the profile file, but is overridden by command-line options.
    • Added a fixedSize resource to force the x3270 main window to a particular size. fixedSize has the form widthxheight, in pixels. The 3270 display will float in the center of the window, if need be.
    • Added a new x3270 keypad position (x3270.keypad): insideRight. This positions the keypad on top of the upper right-hand corner of the x3270 window, just under the keypad button on the menu bar.

Changes in pr3287 3.3.1alpha10, 10. August 2003

  • Enhancements:
    • Added support for the -tracedir option, to specify a directory to store trace files in.
    • Added support the the -eojtimeout option, to automatically flush any pending print job after a specified period of inactivity.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha9, 24. July 2003

  • Bug Fixes:
    • DBCS character set names are displayed in the x3270 Options->Font menu only when DBCS support is built into x3270.
    • Removed the concept of 'per-host' resources. Use profiles for this.
    • Fixed idle commands. They were pretty much hopeless in 3.3.1alpha8 and 3.2.20.
    • Fixed a Unicode conversion crash.
    • Fixed a bug in processing the Modify Field order, which would cause the character set attribute for the field to be accidentally reset to the default.
  • New Features:
    • x3270 user-specified lists (character sets, hosts, fonts, color schemes) can now be organized into sub-lists. The name Bob>Fred>Tony specifies that there is a sub-list called Bob, which contains a sub-list Fred, which contains the item Tony.
    • The TELNET START-TLS option is now supported.

Changes in pr3287 3.3.1alpha9, 30. July 2003

  • Bug Fixes:
    • Ignore SIGINT in the print job process, so that killing an interactive pr3287 with ^C won't cause buffered data to be lost.
    • Fixed a problem with losing a byte of data after an SHF order.
    • Fixed the SCS HT order, which was completely broken.
  • Enhancements:
    • Added support for SIGUSR1 to flush the print job.
    • Added support for the TELNET START-TLS option.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha8, 15. April 2003

  • Bug Fixes:
    • Builds cleanly on Linux with -Wall -ansi -pedantic.
    • Builds without OpenSSL libraries being present.
    • Correctly records Field Attributes in the initial screen snapshot in a Data Stream Trace file.
    • Auto-Skip fields work properly.
    • "Dead" positions in DBCS fields are handled correctly.
    • Invalid host DBCS characters are handled better and are displayed in the Data Stream Trace file.
    • The Erase action now works properly with DBCS characters.
    • The x3270 Visible Control Characters toggle now works properly.
    • The EBCDIC notsign '¬' can now be entered in c3270 with Ctrl-A, ^ (it formerly caused an error message).
  • New Features:
    • The Erase action is now the default for the BackSpace key in x3270.
    • Ctrl-A, a is now mapped onto the Attn action in the c3270 default 3270 keymap.
    • Four more Japanese host code pages have been added: 930, 939, 1390 and 1399. This uses new support for combined SBCS/DBCS code pages.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1, 14. February 2003

  • Bug Fixes:
    • (Same as x3270 3.2.20)
  • New Features:
    • DBCS support for Simplfied Chinese and Japanese, including x3270 integration with XIM.
    • Tunneled SSL support added (entire Telnet session inside of an SSL tunnel). Uses the OpenSSL library. Toggled with an 'L:' prefix on the hostname.
    • A Visible Control Characters toggle replaces x3270's 3270d Debug Font.
    • About x3270 pop-up split into three smaller pieces.
ibm-3270-3.3.10ga4/wpr3287/html/Build.html0000644000175000017500000000507011254565705017217 0ustar bastianbastian wpr3287 Build Instructions

wpr3287 Build Instructions

Using MinGW

wpr3287 can be built on Windows using the MinGW tools under Cygwin. For more information about MinGW, visit the MinGW webpage. For more information about Cygwin, visit the Cygwin webpage.

The minimum set of Cygwin packages needed to build wpr3287 are:

  • The default set (bash, etc.)
  • The make package from the Devel group.
  • The gcc-core package from the Devel group.

[optional] If you want SSL support, you will need to build a MinGW OpenSSL library. That requres the following packages:

  • The openssl package from the Net group. Note that you want the source for openssl, not just the binaries.
  • The perl package from the Interpreters group.
[optional] To build and install the OpenSSL library, use the following Cygwin shell commands:
   cd /usr/src/openssl-*
   ./Configure --prefix=/usr/local/mingw-openssl mingw
   make
   make install

To build wpr3287 (with or without SSL support) start a Cygwin shell, cd to the directory where the source code resides, and type:

   make

wpr3287 was developed primarily on 32-bit Windows XP, but should be buildable on Windows Server 2003 or Windows 2000. It has not been built or tested on 64-bit Windows or on Windows Vista.

Using Microsoft Tools

To build wpr3287 using Microsoft Visual C++, start a Command Prompt window. At the command prompt, 'cd' to the wpr3287 source directory, and type:
   nmake /f Msc\Makefile

This will build wpr3287.exe. The DLLs it depends on are part of the wc3270 package and need to be built separately.

Note that the resulting version of wpr3287 will not include SSL support. To build wpr3287 with a statically-linked OpenSSL library, you must modify Msc\Makefile; instructions for doing that are included in the file.

ibm-3270-3.3.10ga4/wpr3287/html/wpr3287-man.html0000644000175000017500000002106711261530014020050 0ustar bastianbastian wpr3287 Manual Page

wpr3287 Manual Page

Contents

Name
Synopsis
Description
Options
Environment
Proxy
See Also
Copyrights
Version

Name

wpr3287 - IBM host printing tool

Synopsis

wpr3287 [ options ] [ L: ] [[ LUname [, LUname ...]@] hostname [: port ]]

Description

wpr3287 opens a telnet connection to an IBM host, and emulates an IBM 3287 printer. It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection).

If the hostname is prefixed with L:, the connection will be made through an SSL tunnel. wpr3287 also supports TELNET START-TLS option negotiation without any need for command-line options.

A specific LU name to use may be specified by prepending it to the hostname with an `@'. Multiple LU names to try can be separated by commas. An empty LU can be placed in the list with an extra comma.

The port to connect to defaults to telnet. This can be overridden by appending a port to the hostname with a colon `:'.

Options

wpr3287 understands the following options:
-assoc LUname
Causes the session to be associated with the specified LUname.
-blanklines
In LU3 formatted mode, print blank lines even if they are all NULLs or control characters. (This is a violation of the 3270 printer protocol, but some hosts require it.)
-charset name
Specifies an alternate host code page (input EBCDIC mapping). The default maps the U.S. English (037) code page to the the system ANSI code page (unless overridden by the -printercp option). wpr3287 generally supports the same host character sets as wc3270.
-nocrlf
Causes newline characters in the output to be left as-is, and not expanded to carriage-return/linefeed sequences.
-eojtimeout seconds
Causes wpr3287 to flush the print job after seconds seconds of inactivity.
-ignoreeoj
Ignore TN3270E PRINT-EOJ commands, relying on UNBIND commands to indicate the ends of print jobs.
-ffskip
Causes wpr3287 to ignore a FF (formfeed) order if it occurs at the top of a page.
-ffthru
In SCS mode, causes wpr3287 to pass FF (formfeed) orders through to the printer as ASCII formfeed characters, rather than simulating them based on the values of the MPL (maximum presentation line) and TM (top margin) parameters.
-printer printer
Specifies the Windows printer to use for each print job. The default is to use the printer specified by the $PRINTER environment variable, if defined, and otherwise to use the default Windows printer.
-printercp codepage
Specifies the code page to use when generating printer output. The default is to use the system ANSI code page.

The printer can be the name of a local printer, or a UNC path to a remote printer, e.g., \\server\printer1.

-proxy type:host[:port]
Causes wpr3287 to connect via the specified proxy, instead of using a direct connection. The host can be an IP address or hostname. The optional port can be a number or a service name. For a list of supported proxy types, see PROXY below.
-reconnect
Causes wpr3287 to reconnect to the host, whenever the connection is broken. There is a 5-second delay between reconnect attempts, to reduce network thrashing for down or misconfigured hosts.
-trace
Turns on data stream tracing. Trace information is usually saved in the file x3trc.pid.txt.
-trnpre file
Specifies a file containing data that will be sent to the printer before each print job. The file contents are treated as transparent data, i.e., they are not translated in any way.
-trnpost file
Specifies a file containing data that will be sent to the printer after each print job. The file contents are treated as transparent data, i.e., they are not translated in any way.
-v
Display build and version information and exit.

Environment

PRINTER
Specifies the Windows printer to use for print jobs. The -printer command-line option overrides $PRINTER.

Proxy

The -proxy option causes wpr3287 to use a proxy server to connect to the host. The syntax of the option is:
type:host[:port]
The supported values for type are:
Proxy Type
Protocol
Default Port
http
RFC 2817 HTTP tunnel (squid)
3128
passthru
Sun in.telnet-gw
none
socks4
SOCKS version 4
1080
socks5
SOCKS version 5 (RFC 1928)
1080
telnet
No protocol (just send connect host port)
none

The special types socks4a and socks5d can also be used to force the proxy server to do the hostname resolution for the SOCKS protocol.

See Also

wc3270(1)
Data Stream Programmer's Reference, IBM GA23-0059
Character Set Reference, IBM GA27-3831
3174 Establishment Controller Functional Description, IBM GA23-0218
RFC 1576, TN3270 Current Practices
RFC 1646, TN3270 Extensions for LUname and Printer Selection
RFC 2355, TN3270 Enhancements

Copyrights

Copyright © 1993-2009, Paul Mattes.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

*
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
*
Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC `AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Version

wpr3287 3.3.10ga4
This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/wpr3287/unicode.c0000644000175000017500000025016111254565704016122 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * unicode.c * A Windows console-based 3270 Terminal Emulator * EBCDIC/Unicode translation functions */ #include "globals.h" #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #include "3270ds.h" #if !defined(PR3287) /*[*/ #include "appres.h" #endif /*]*/ #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" #if !defined(PR3287) /*[*/ #include "utilc.h" #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(USE_ICONV) /*[*/ iconv_t i_u2mb = (iconv_t)-1; iconv_t i_mb2u = (iconv_t)-1; #if !defined(_LIBICONV_VERSION) || _LIBICONV_VERSION < 0x0108 /*[*/ typedef char *ici_t; /* old iconv */ #else /*][*/ typedef const char *ici_t; /* new iconv */ #endif /*]*/ #endif /*]*/ #define DEFAULT_CSNAME "us" #if defined(_WIN32) /*[*/ # if defined(WS3270) /*[*/ # define LOCAL_CODEPAGE appres.local_cp # else /*[*/ # define LOCAL_CODEPAGE CP_ACP # endif /*]*/ #endif /*]*/ /* * EBCDIC-to-Unicode translation tables. * Each table maps EBCDIC codes X'41' through X'FE' to UCS-2. * Other codes are mapped programmatically. */ #define UT_SIZE 190 #define UT_OFFSET 0x41 typedef struct { char *name; unsigned short code[UT_SIZE]; const char *host_codepage; const char *cgcsgid; const char *display_charset; } uni_t; static uni_t uni[] = { { "cp037", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp273", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "273", "273", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp275", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00c9, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x00c7, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e7, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e3, 0x003a, 0x00d5, 0x00c3, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f5, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e9, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "275", "275", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp277", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "277", "277", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp278", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "278", "278", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp280", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "280", "280", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp284", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "284", "284", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp285", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "285", "285", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp297", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "297", "297", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp424", { 0x5d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x05ea, 0x0000, 0x0000, 0x00a0, 0x0000, 0x0000, 0x0000, 0x21d4, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x00b8, 0x0000, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000 }, "424", "0x03ad01a8", "3270cg-8,iso10646-1,iso8859-8" }, { "cp500", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "500", "500", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp870", { 0x00a0, 0x00e2, 0x00e4, 0x0163, 0x00e1, 0x0103, 0x010d, 0x00e7, 0x0107, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x0119, 0x00eb, 0x016f, 0x00ed, 0x00ee, 0x013e, 0x013a, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x02dd, 0x00c1, 0x0102, 0x010c, 0x00c7, 0x0106, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x02c7, 0x00c9, 0x0118, 0x00cb, 0x016e, 0x00cd, 0x00ce, 0x013d, 0x0139, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x015b, 0x0148, 0x0111, 0x00fd, 0x0159, 0x015f, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00b8, 0x02db, 0x00a4, 0x0105, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x015a, 0x0147, 0x0110, 0x00dd, 0x0158, 0x015e, 0x00b7, 0x0104, 0x017c, 0x0162, 0x017b, 0x00a7, 0x017e, 0x017a, 0x017d, 0x0179, 0x0141, 0x0143, 0x0160, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x0155, 0x00f3, 0x0151, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x011a, 0x0171, 0x00fc, 0x0165, 0x00fa, 0x011b, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x010f, 0x00d4, 0x00d6, 0x0154, 0x00d3, 0x0150, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x010e, 0x0170, 0x00dc, 0x0164, 0x00da }, "870", "0x03bf0366", "iso10646-1,iso8859-2" }, { "cp871", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00fe, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00de, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "871", "871", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp875", { 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a8, 0x0386, 0x0388, 0x0389, 0x2207, 0x038a, 0x038c, 0x038e, 0x038f, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x00b4, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x00a3, 0x03ac, 0x03ad, 0x03ae, 0x0390, 0x03af, 0x03cc, 0x03cd, 0x03b0, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x03c9, 0x03ca, 0x03cb, 0x2018, 0x2015, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b1, 0x00bd, 0x0000, 0x00b7, 0x2019, 0x00a6, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00a7, 0x0000, 0x0000, 0x00ab, 0x00ac, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00a9, 0x0000, 0x0000, 0x00bb }, "875", "0x0464036b", "3270cg-7,iso10646-1,iso8859-7" }, { "cp880", { 0x0000, 0x0452, 0x0453, 0x0451, 0x0000, 0x0455, 0x0456, 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x0000, 0x045f, 0x042a, 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0403, 0x0401, 0x0000, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x040a, 0x040b, 0x040c, 0x0000, 0x0000, 0x040f, 0x044e, 0x0430, 0x0431, 0x0000, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0000, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0000, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x0000, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x005c, 0x00a4, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427 }, "880", "0x03bf0370", "iso10646-1,koi8-r" }, #if defined(X3270_DBCS) /*[*/ { "cp930", { /* 0x40 */ 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67, /* 0x48 */ 0xff68, 0xff69, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 0x50 */ 0x0026, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, 0x0000, /* 0x58 */ 0xff70, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, /* 0x60 */ 0x002d, 0x002f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, /* 0x68 */ 0x0067, 0x0068, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 0x70 */ 0x005b, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, /* 0x78 */ 0x0070, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 0x80 */ 0x005d, 0xff67, 0xff68, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 0x88 */ 0xff78, 0xff79, 0xff7a, 0x0071, 0xff7b, 0xff7c, 0xff7d, 0xff7e, /* 0x90 */ 0xff7f, 0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, /* 0x98 */ 0xff87, 0xff88, 0xff89, 0x0072, 0x0000, 0xff8a, 0xff8b, 0xff8c, /* 0xa0 */ 0x007e, 0x00af, 0xff8d, 0xff8e, 0xff8f, 0xff90, 0xff91, 0xff92, /* 0xa8 */ 0xff93, 0xff94, 0xff95, 0x0073, 0xff96, 0xff97, 0xff98, 0xff99, /* 0xb0 */ 0x005e, 0x00a2, 0x005c, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* 0xb8 */ 0x0079, 0x007a, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f, /* 0xc0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0xc8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xd0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* 0xd8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xe0 */ 0x0024, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* 0xe8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xf0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0xf8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } , "930", "0x04940122" /* 1172, 0290 */, "iso10646-1,jisx0201.1976-0" }, { "cp935", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "935", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp937", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "937", "0x04970025" /* 1175, 037 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp939", { /* 40 */ 0x0000, 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, /* 48 */ 0xff67, 0xff68, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 50 */ 0x0026, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, /* 58 */ 0xff70, 0xff71, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, /* 60 */ 0x002d, 0x002f, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 68 */ 0xff78, 0xff79, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 70 */ 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, 0xff80, 0xff81, /* 78 */ 0xff82, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 80 */ 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 88 */ 0x0068, 0x0069, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, 0xff88, /* 90 */ 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, /* 98 */ 0x0071, 0x0072, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, /* a0 */ 0x00af, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* a8 */ 0x0079, 0x007a, 0xff8f, 0xff90, 0xff91, 0x005b, 0xff92, 0xff93, /* b0 */ 0x005e, 0x00a3, 0x00a5, 0xff94, 0xff95, 0xff96, 0xff97, 0xff98, /* b8 */ 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0x005d, 0xff9e, 0xff9f, /* c0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* c8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* d8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x005c, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* e8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* f8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "939", "0x04940403" /* 1172, 1027 */, "iso10646-1,jisx0201.1976-0" }, #endif /*]*/ { "cp1026", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x007d, 0x0060, 0x00a6, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x02db, 0x00c6, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x005d, 0x0024, 0x0040, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x2014, 0x00a8, 0x00b4, 0x00d7, 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0x00ff, 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da }, "1026", "0x04800402", "iso10646-1,iso8859-9" }, { "cp1047", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x00ac, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1047", "1047", "iso10646-1,iso8859-1" }, { "cp1140", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1140", "0x02b70474" /* 695, 1140 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1141", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "1141", "0x02b70475" /* 695, 1141 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1142", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1142", "0x02b70476" /* 695, 1142 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1143", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1143", "0x02b70477" /* 695, 1143 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1144", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1144", "0x02b70478" /* 695, 1144 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1145", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1145", "0x02b70478" /* 695, 1145 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1146", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1146", "0x02b7047a" /* 695, 1146 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1147", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1147", "0x02b7047a" /* 695, 1147 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1148", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1148", "0x02b7047c" /* 695, 1148 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1149", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00de, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x20ac, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00fe, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1149", "0x02b7047d" /* 695, 1149 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1160", { 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, 0x005b, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0e48, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x005d, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x005e, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0e3f, 0x0e4e, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0e4f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, 0x0e5a, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e5b, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, 0x0e58, 0x0e59, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0e49, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0e3a, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x005c, 0x0e4a, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4b, 0x20ac }, "1160", "0x05730488" /* 1395, 1160 */, "iso10646-1,iso8859-11" }, #if defined(X3270_DBCS) /*[*/ { "cp1388", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "1388", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, #endif /*]*/ { "apl", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,iso10646-1" }, { "bracket", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37+", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { NULL } }; /* Code page aliases. */ typedef struct { char *alias; char *canon; } cpalias_t; cpalias_t cpaliases[] = { { "belgian", "cp500" }, { "belgian-euro", "cp1148" }, { "brazilian", "cp275" }, #if defined(X3270_DBCS) /*[*/ { "chinese-gb18030","cp1388" }, { "cp1027", "cp939" }, /* historical error */ { "cp290", "cp930" }, /* historical error */ #endif /*]*/ { "cp37", "cp037" }, #if defined(X3270_DBCS) /*[*/ { "cp836", "cp935" }, /* historical error */ #endif /*]*/ { "finnish", "cp278" }, { "finnish-euro", "cp1143" }, { "french", "cp297" }, { "french-euro", "cp1147" }, { "german", "cp273" }, { "german-euro", "cp1141" }, { "greek", "cp875" }, { "hebrew", "cp424" }, { "icelandic", "cp871" }, { "icelandic-euro", "cp1149" }, { "italian", "cp280" }, { "italian-euro", "cp1144" }, #if defined(X3270_DBCS) /*[*/ { "japanese-1027", "cp939" }, /* historical error */ { "japanese-290", "cp930" }, /* historical error */ { "japanese-kana", "cp930" }, { "japanese-latin", "cp939" }, #endif /*]*/ { "norwegian", "cp277" }, { "norwegian-euro", "cp1142" }, { "oldibm", "bracket" }, { "bracket437", "bracket" }, { "polish", "cp870" }, { "russian", "cp880" }, #if defined(X3270_DBCS) /*[*/ { "simplified-chinese","cp935" }, #endif /*]*/ { "slovenian", "cp870" }, { "spanish", "cp284" }, { "spanish-euro", "cp1145" }, { "thai", "cp1160" }, #if defined(X3270_DBCS) /*[*/ { "traditional-chinese", "cp937" }, #endif /*]*/ { "turkish", "cp1026" }, { "uk", "cp285" }, { "uk-euro", "cp1146" }, { DEFAULT_CSNAME, "cp037" }, { "us-euro", "cp1140" }, { "us-intl", "cp037" }, { NULL, NULL } }; static uni_t *cur_uni = NULL; void charset_list(void) { int i; int j; char *sep = ""; printf("SBCS host code pages (with aliases):\n"); for (i = 0; uni[i].name != NULL; i++) { Boolean any = False; char *asep = " ("; printf("%s%s", sep, uni[i].name); for (j = 0; cpaliases[j].alias != NULL; j++) { if (!strcmp(cpaliases[j].canon, uni[i].name)) { printf("%s%s", asep, cpaliases[j].alias); asep = ", "; any = True; } } if (any) printf(")"); sep = ", "; } printf("\n"); #if defined(X3270_DBCS) /*[*/ charset_list_dbcs(); #endif /*]*/ } /* * Translate a single EBCDIC character in an arbitrary character set to * Unicode. Note that CS_DBCS is never used -- use CS_BASE and pass an * EBCDIC character > 0xff. * * Returns 0 for no translation. */ ucs4_t ebcdic_to_unicode(ebc_t c, unsigned char cs, unsigned flags) { int iuc; ucs4_t uc; #if 0 /* I'm not sure why this was put in, but it breaks display of DUP and FM. Hopefully I'll figure out why it was put in in the first place and I can put it back under the right conditions. */ /* Control characters become blanks. */ if (c <= 0x41 || c == 0xff) uc = 0; #endif /* * We do not pay attention to BLANK_UNDEF -- we always return 0 * for undefined characters. */ flags &= ~EUO_BLANK_UNDEF; /* Dispatch on the character set. */ if ((cs & CS_GE) || ((cs & CS_MASK) == CS_APL)) { iuc = apl_to_unicode(c, flags); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs == CS_LINEDRAW) { iuc = linedraw_to_unicode(c /* XXX: flags */); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs != CS_BASE) uc = 0; else uc = ebcdic_base_to_unicode(c, flags); return uc; } /* * Translate a single EBCDIC character in the base or DBCS character sets to * Unicode. * * EBCDIC 'FM' and 'DUP' characters are treated specially. If EUO_UPRIV * is set, they are returned as U+f8fe and U+feff (private-use) respectively * so they can be displayed with overscores in the special 3270 font; * otherwise they are returned as '*' and ';'. * EBCDIC 'EO' and 'SUB' are special-cased to U+25cf and U+25a0, respectively. * * If EUO_BLANK_UNDEF is set, other undisplayable characters are returned as * spaces; otherwise they are returned as 0. */ ucs4_t ebcdic_base_to_unicode(ebc_t c, unsigned flags) { #if defined(X3270_DBCS) /*[*/ if (c & 0xff00) return ebcdic_dbcs_to_unicode(c, flags); #endif /*]*/ if (c == 0x40) return 0x0020; if (c >= UT_OFFSET && c < 0xff) { ebc_t uc = cur_uni->code[c - UT_OFFSET]; return uc? uc: ((flags & EUO_BLANK_UNDEF)? ' ': 0); } else switch (c) { case EBC_fm: return (flags & EUO_UPRIV)? UPRIV_fm: ';'; case EBC_dup: return (flags & EUO_UPRIV)? UPRIV_dup: '*'; case EBC_eo: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_eo: 0x25cf; /* solid circle */ case EBC_sub: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_sub: 0x25a0; /* solid block */ default: if (flags & EUO_BLANK_UNDEF) return ' '; else return 0; } } /* * Map a UCS-4 character to an EBCDIC character. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic(ucs4_t u) { int i; #if defined(X3270_DBCS) /*[*/ ebc_t d; #endif /*]*/ if (!u) return 0; if (u == 0x0020) return 0x40; for (i = 0; i < UT_SIZE; i++) { if (cur_uni->code[i] == u) { return UT_OFFSET + i; } } #if defined(X3270_DBCS) /*[*/ /* See if it's DBCS. */ d = unicode_to_ebcdic_dbcs(u); if (d) return d; #endif /*]*/ return 0; } /* * Map a UCS-4 character to an EBCDIC character, possibly including APL (GE) * characters. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic_ge(ucs4_t u, Boolean *ge) { ebc_t e; *ge = False; e = unicode_to_ebcdic(u); if (e) return e; /* Handle GEs. Yes, this is slow, but I'm lazy. */ for (e = 0x70; e <= 0xfe; e++) { if ((ucs4_t)apl_to_unicode(e, EUO_NONE) == u) { *ge = True; return e; } } return 0; } /* * Set the SBCS EBCDIC-to-Unicode translation table. * Returns 0 for success, -1 for failure. */ int set_uni(const char *csname, const char **host_codepage, const char **cgcsgid, const char **display_charsets) { int i; const char *realname; int rc = -1; Boolean cannot_fail = False; /* * If the csname is NULL, this is a fallback to the default * and the iconv lookup cannot fail. */ if (csname == NULL) { csname = DEFAULT_CSNAME; cannot_fail = True; } realname = csname; /* Search for an alias. */ for (i = 0; cpaliases[i].alias != NULL; i++) { if (!strcasecmp(csname, cpaliases[i].alias)) { realname = cpaliases[i].canon; break; } } /* Search for a match. */ for (i = 0; uni[i].name != NULL; i++) { if (!strcasecmp(realname, uni[i].name)) { cur_uni = &uni[i]; *host_codepage = uni[i].host_codepage; *cgcsgid = uni[i].cgcsgid; *display_charsets = uni[i].display_charset; rc = 0; break; } } if (cannot_fail && rc == -1) Error("Cannot find default charset definition"); #if defined(USE_ICONV) /*[*/ /* * wchar_t's are not Unicode, so getting to/from Unicode is only half * the battle. We need to use iconv() to get between Unicode to the * local multi-byte representation. We'll explicitly use UTF-8, which * appears to be the most broadly-supported translation. */ if (rc == 0) { if (!is_utf8) { /* * If iconv doesn't support the locale's codeset, then * this box is hosed. */ i_u2mb = iconv_open(locale_codeset, "UTF-8"); if (i_u2mb == (iconv_t)(-1)) rc = -1; else { i_mb2u = iconv_open("UTF-8", locale_codeset); if (i_mb2u == (iconv_t)(-1)) { iconv_close(i_u2mb); rc = -1; } } } if (rc == -1 && cannot_fail) { /* Try again with plain-old ASCII. */ #if defined(PR3287) /*[*/ Warning("Cannot find iconv translation from locale " "codeset to UTF-8, using ASCII"); #else /*][*/ xs_warning("Cannot find iconv translation from locale " "codeset '%s' to UTF-8, using ASCII", locale_codeset); #endif /*]*/ i_u2mb = iconv_open("ASCII", "UTF-8"); if (i_u2mb == (iconv_t)-1) Error("No iconv UTF-8 to ASCII translation"); i_mb2u = iconv_open("UTF-8", "ASCII"); if (i_mb2u == (iconv_t)-1) Error("No iconv ASCII to UTF-8 translation"); rc = 0; } } #endif /*]*/ return rc; } /* * Translate an x3270 font line-drawing character (the first two rows of a * standard X11 fixed-width font) to Unicode. * * Returns -1 if there is no translation. */ int linedraw_to_unicode(ebc_t c) { static ebc_t ld2uc[32] = { /* 00 */ 0x2588, 0x25c6, 0x2592, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, /* 08 */ 0x00b1, 0x0000, 0x0000, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, /* 10 */ 0x002d, 0x002d, 0x2500, 0x002d, 0x005f, 0x251c, 0x2524, 0x2534, /* 18 */ 0x252c, 0x2502, 0x2264, 0x2265, 0x03c0, 0x2260, 0x00a3, 0x2022 }; if (c < 32 && ld2uc[c] != 0x0000) return ld2uc[c]; else return -1; } int apl_to_unicode(ebc_t c, unsigned flags) { static ebc_t apl2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x25c6, 0x22c0, 0x00a8, 0x223b, 0x2378, 0x2377, 0x22a2, 0x22a3, /* 78 */ 0x2228, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x23b8, 0x23b9, 0x2502, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x2191, 0x2193, 0x2264, 0x2308, 0x230a, 0x2192, /* 90 */ 0x2395, 0x258c, 0x2590, 0x2580, 0x2584, 0x25a0, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x2283, 0x2282, 0x00a4, 0x25cb, 0x00b1, 0x2190, /* a0 */ 0x00af, 0x00b0, 0x2500, 0x2022, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x22c2, 0x22c3, 0x22a5, 0x005b, 0x2265, 0x2218, /* b0 */ 0x03b1, 0x03b5, 0x03b9, 0x03c1, 0x03c9, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x2207, 0x2206, 0x22a4, 0x005d, 0x2260, 0x2502, /* c0 */ 0x007b, 0x207c, 0x002b, 0x220e, 0x2514, 0x250c, 0x251c, 0x2534, /* c8 */ 0x00a7, 0x0000, 0x2372, 0x2371, 0x2337, 0x233d, 0x2342, 0x2349, /* d0 */ 0x007d, 0x207e, 0x002d, 0x253c, 0x2518, 0x2510, 0x2524, 0x252c, /* d8 */ 0x00b6, 0x0000, 0x2336, 0x0021, 0x2352, 0x234b, 0x235e, 0x235d, /* e0 */ 0x2261, 0x2081, 0x0282, 0x0283, 0x2364, 0x2365, 0x236a, 0x20ac, /* e8 */ 0x0000, 0x0000, 0x233f, 0x2240, 0x2235, 0x2296, 0x2339, 0x2355, /* f0 */ 0x2070, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x2075, 0x2076, 0x2077, /* f8 */ 0x2078, 0x2079, 0x0000, 0x236b, 0x2359, 0x235f, 0x234e, 0x0000 }; #if defined(C3270) /*[*/ static ebc_t apla2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x0000, 0x0000, 0x00a8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x0000, 0x0000, 0x007c, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 90 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x00a4, 0x0000, 0x00b1, 0x0000, /* a0 */ 0x00af, 0x00b0, 0x002d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x0000, 0x0000, /* b0 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x0000, 0x0000, 0x0000, 0x005d, 0x0000, 0x007c, /* c0 */ 0x007b, 0x0000, 0x002b, 0x0000, 0x002b, 0x002b, 0x002b, 0x002b, /* c8 */ 0x00a7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x0000, 0x002d, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, /* d8 */ 0x00b6, 0x0000, 0x0000, 0x0021, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x0000, 0x0000, 0x0282, 0x0283, 0x0000, 0x0000, 0x0000, 0x0000, /* e8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0000, 0x00b9, 0x00b2, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000, /* f8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; #endif /*]*/ #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) { if (c < 256 && apla2uc[c] != 0x0000) { #if defined(_WIN32) /*[*/ /* Windows DBCS fonts make U+0080..U+00ff wide, too. */ if (apla2uc[c] > 0x7f) return -1; #endif /*]*/ return apla2uc[c]; } else return -1; } #endif /*]*/ if (c < 256 && apl2uc[c] != 0x0000) return apl2uc[c]; else return -1; } /* * Translate an EBCDIC character to the current locale's multi-byte * representation. * * Returns the number of bytes in the multi-byte representation, including * the terminating NULL. mb[] should be big enough to include the NULL * in the result. * * Also returns in 'ucp' the UCS-4 Unicode value of the EBCDIC character. * * Note that 'ebc' is an ebc_t (uint16_t), not an unsigned char. This is * so that DBCS values can be passed in as 16 bits (with the first byte * in the high-order bits). There is no ambiguity because all valid EBCDIC * DBCS characters have a nonzero first byte. * * Returns 0 if EUO_BLANK_UNDEF is clear and there is no printable EBCDIC * translation for 'ebc'. * * Returns '?' in mb[] if there is no local multi-byte representation of * the EBCDIC character. */ int ebcdic_to_multibyte_x(ebc_t ebc, unsigned char cs, char mb[], int mb_len, unsigned flags, ucs4_t *ucp) { ucs4_t uc; #if defined(_WIN32) /*[*/ int nc; BOOL udc; wchar_t wuc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; wchar_t wuc; #else /*][*/ char u8b[7]; size_t nu8; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; #endif /*]*/ /* Translate from EBCDIC to Unicode. */ uc = ebcdic_to_unicode(ebc, cs, flags); if (ucp != NULL) *ucp = uc; if (uc == 0) { if (flags & EUO_BLANK_UNDEF) { mb[0] = ' '; mb[1] = '\0'; return 2; } else { return 0; } } /* Translate from Unicode to local multibyte. */ #if defined(_WIN32) /*[*/ /* * wchar_t's are Unicode. */ wuc = uc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc != 0) { mb[nc++] = '\0'; return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #elif defined(UNICODE_WCHAR) /*][*/ /* * wchar_t's are Unicode. * If 'is_utf8' is set, use unicode_to_utf8(). This allows us to set * 'is_utf8' directly, ignoring the locale, for Tcl. * Otherwise, use wctomb(). */ if (is_utf8) { nc = unicode_to_utf8(uc, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } wuc = uc; nc = wctomb(mb, uc); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ /* * Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(uc, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc < 0 || inbytesleft == nu8) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc < 0) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } /* Commonest version of ebcdic_to_multibyte_x: * cs is CS_BASE * EUO_BLANK_UNDEF is set * ucp is ignored */ int ebcdic_to_multibyte(ebc_t ebc, char mb[], int mb_len) { return ebcdic_to_multibyte_x(ebc, CS_BASE, mb, mb_len, EUO_BLANK_UNDEF, NULL); } /* * Convert an EBCDIC string to a multibyte string. * Makes lots of assumptions: standard character set, EUO_BLANK_UNDEF. * Returns the length of the multibyte string. */ int ebcdic_to_multibyte_string(unsigned char *ebc, size_t ebc_len, char mb[], size_t mb_len) { int nmb = 0; while (ebc_len && mb_len) { int xlen; xlen = ebcdic_to_multibyte(*ebc, mb, mb_len); if (xlen) { mb += xlen - 1; mb_len -= (xlen - 1); nmb += xlen - 1; } ebc++; ebc_len--; } return nmb; } /* * Return the maximum buffer length needed to translate 'len' EBCDIC characters * in the current locale. */ int mb_max_len(int len) { #if defined(_WIN32) /*[*/ /* * On Windows, it's 1:1 (we don't do DBCS, and we don't support locales * like UTF-8). */ return len + 1; #elif defined(UNICODE_WCHAR) /*][*/ /* Allocate enough space for shift-state transitions. */ return (MB_CUR_MAX * (len * 2)) + 1; #else /*]*/ if (is_utf8) return (len * 6) + 1; else /* * We don't actually know. Guess that MB_CUR_MAX is 16, and compute * as for UNICODE_WCHAR. */ return (16 * (len * 2)) + 1; #endif /*]*/ } /* * Translate a multi-byte character in the current locale to UCS-4. * * Returns a UCS-4 character or 0, indicating an error in translation. * Also returns the number of characters consumed. */ ucs4_t multibyte_to_unicode(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { size_t nw; ucs4_t ucs4; #if defined(_WIN32) /*[*/ wchar_t wc[3]; int i; /* Use MultiByteToWideChar() to get from the ANSI codepage to UTF-16. */ for (i = 1; i <= mb_len; i++) { nw = MultiByteToWideChar(LOCAL_CODEPAGE, MB_ERR_INVALID_CHARS, mb, i, wc, 3); if (nw != 0) break; } if (i > mb_len) { *errorp = ME_INVALID; return 0; } *consumedp = i; ucs4 = wc[0]; #elif defined(UNICODE_WCHAR) /*][*/ wchar_t wc[3]; /* wchar_t's are Unicode. */ if (is_utf8) { int nc; /* * Use utf8_to_unicode() instead of mbtowc(), so we can set is_utf8 * directly and ignore the locale for Tcl. */ nc = utf8_to_unicode(mb, mb_len, &ucs4); if (nc > 0) { *errorp = ME_NONE; *consumedp = nc; return ucs4; } else if (nc == 0) { *errorp = ME_SHORT; return 0; } else { *errorp = ME_INVALID; return 0; } } /* mbtowc() will translate to Unicode. */ nw = mbtowc(wc, mb, mb_len); if (nw == (size_t)-1) { if (errno == EILSEQ) *errorp = ME_INVALID; else *errorp = ME_SHORT; nw = mbtowc(NULL, NULL, 0); return 0; } /* * Reset the shift state. * XXX: Doing this will ruin the shift state if this function is called * repeatedly to process a string. There should probably be a parameter * passed in to control whether or not to reset the shift state, or * perhaps there should be a function to translate a string. */ *consumedp = nw; nw = mbtowc(NULL, NULL, 0); ucs4 = wc[0]; #else /*][*/ /* wchar_t's have unknown encoding. */ if (!is_utf8) { ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; char utf8buf[16]; size_t ibl; /* Translate from local MB to UTF-8 using iconv(). */ for (ibl = 1; ibl <= mb_len; ibl++) { inbuf = (ici_t)mb; outbuf = utf8buf; inbytesleft = ibl; outbytesleft = sizeof(utf8buf); nw = iconv(i_mb2u, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nw < 0) { if (errno == EILSEQ) { *errorp = ME_INVALID; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } else { if (ibl == mb_len) { *errorp = ME_SHORT; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } } } else break; } *consumedp = ibl - inbytesleft; /* Translate from UTF-8 to UCS-4. */ (void) utf8_to_unicode(utf8buf, sizeof(utf8buf) - outbytesleft, &ucs4); } else { /* Translate from UTF-8 to UCS-4. */ nw = utf8_to_unicode(mb, mb_len, &ucs4); if (nw < 0) { *errorp = ME_INVALID; return 0; } if (nw == 0) { *errorp = ME_SHORT; return 0; } *consumedp = nw; } #endif /*]*/ /* Translate from UCS4 to EBCDIC. */ return ucs4; } /* * Convert a multi-byte string to a UCS-4 string. * Does not NULL-terminate the result. * Returns the number of UCS-4 characters stored. */ int multibyte_to_unicode_string(char *mb, size_t mb_len, ucs4_t *ucs4, size_t u_len) { int consumed; enum me_fail error; int nr = 0; error = ME_NONE; while (u_len && mb_len && (*ucs4++ = multibyte_to_unicode(mb, mb_len, &consumed, &error)) != 0) { u_len--; mb += consumed; mb_len -= consumed; nr++; } if (error != ME_NONE) return -1; else return nr; } /* * Translate a multi-byte character in the current locale to an EBCDIC * character. * * Returns an 8-bit (SBCS) or 16-bit (DBCS) EBCDIC character, or 0, indicating * an error in translation. Also returns the number of characters consumed. */ ebc_t multibyte_to_ebcdic(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { ucs4_t ucs4; ucs4 = multibyte_to_unicode(mb, mb_len, consumedp, errorp); if (ucs4 == 0) return 0; return unicode_to_ebcdic(ucs4); } /* * Convert a local multi-byte string to an EBCDIC string. * Returns the length of the resulting EBCDIC string, or -1 if there is a * conversion error. */ int multibyte_to_ebcdic_string(char *mb, size_t mb_len, unsigned char *ebc, size_t ebc_len, enum me_fail *errorp) { int ne = 0; Boolean in_dbcs = False; while (mb_len > 0 && ebc_len > 0) { ebc_t e; int consumed; e = multibyte_to_ebcdic(mb, mb_len, &consumed, errorp); if (e == 0) return -1; if (e & 0xff00) { /* DBCS. */ if (!in_dbcs) { /* Make sure there's room for SO, b1, b2, SI. */ if (ebc_len < 4) return ne; *ebc++ = EBC_so; ebc_len++; ne++; in_dbcs = True; } /* Make sure there's room for b1, b2, SI. */ if (ebc_len < 3) { *ebc++ = EBC_si; ne++; return ne; } *ebc++ = (e >> 8) & 0xff; *ebc++ = e & 0xff; ebc_len -= 2; ne += 2; } else { /* SBCS. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; if (!--ebc_len) return ne; in_dbcs = False; } *ebc++ = e & 0xff; ebc_len--; ne++; } mb += consumed; mb_len -= consumed; } /* * Terminate the DBCS string, if we end inside it. * We're guaranteed to have space for the SI; we checked before adding * the last DBCS character. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; } return ne; } /* * Translate a UCS-4 character to a local multi-byte string. */ int unicode_to_multibyte(ucs4_t ucs4, char *mb, size_t mb_len) { #if defined(_WIN32) /*[*/ wchar_t wuc = ucs4; BOOL udc; int nc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc > 0) mb[nc++] = '\0'; return nc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; if (is_utf8) { nc = unicode_to_utf8(ucs4, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } nc = wctomb(mb, ucs4); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ int nu8; char u8b[16]; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; /* Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(ucs4, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } ibm-3270-3.3.10ga4/wpr3287/localdefs.h0000644000175000017500000000523111254565701016426 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * localdefs.h * Local definitions for pr3287. * * This file contains definitions for environment-specific * facilities, such as memory allocation, I/O registration, * and timers. */ /* These first definitions were cribbed from X11 -- but no X code is used. */ #define False 0 #define True 1 typedef void *XtPointer; typedef void *Widget; typedef void *XEvent; typedef char Boolean; typedef char *String; typedef unsigned int Cardinal; typedef unsigned long KeySym; #define Bool int typedef void (*XtActionProc)( Widget /* widget */, XEvent* /* event */, String* /* params */, Cardinal* /* num_params */ ); typedef struct _XtActionsRec{ String string; XtActionProc proc; } XtActionsRec; #define XtNumber(n) (sizeof(n)/sizeof((n)[0])) #define NoSymbol 0L /* These are local functions with similar semantics to X functions. */ extern void *Malloc(size_t); extern void Free(void *); extern void *Calloc(size_t, size_t); extern void *Realloc(void *, size_t); extern char *NewString(const char *); extern void Warning(const char *s); extern void Error(const char *s); #define X3270_TRACE 1 extern void errmsg(const char *, ...); ibm-3270-3.3.10ga4/wpr3287/LICENSE0000644000175000017500000000315711254565705015337 0ustar bastianbastianCopyright (c) 1993-2009, Paul Mattes. Copyright (c) 1990, Jeff Sparkes. Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ibm-3270-3.3.10ga4/wpr3287/pr3287.ico0000644000175000017500000001307611254565705015774 0ustar bastianbastian@@((@€&.)&4,,8*05,1302I/8:39F43F8;A8=L99M9?M7CT;>K;DTAAPAD`C;P@ILCEZADn‡HAPSEGYFEYDK`FIaIESGSPIW`LL[LOeKNTNObLSPO][QVlTPbQZcSVhSV^R^_U[ZSb‚\B\V_XUge\[OSuk[^f\bc_cc\kn]f_]nfaidfehappeklfowifmikxhlhfxpjsqmoxmswkxypotl|{rqRh˜§uaƒsv}q~tzan›‰x|}x„{z€|~zz……{ŸxŠ…†€‰fx¨……¸†z„‚•Ÿ‹„—Œ†‰‰’”‰ŒŽŠ“q‚®š„·w²‚‹¢ív ´“Œ’˜Œ‰³™“œ –•~Œ¹iˆË³—”¢•¢Ÿ™¢¥š ßŸÉŽ›œ¡“¹Š”»È©Ÿ ¥¥¡£«Ÿ¦¦ ©³£Ÿ•›º¥•­¤£²Í¤£¯·¨¤‘žÏ¢¥»µ©°ª©¶°¬®°ª³ž¥Ä¤¥Â·­¬Ò®¤¯®½»°¶¶°¹È±±¸´¶º´¾Â¸·Ã·¾¾º¼¸¸Ä¿¹ÃªÀ¿ÄÀÃſɿ¾ÎÌÂÂÌÀÇÒÿÝżͽÓÃÆÇÉÅÇÊÃÍÆÅÒÛÍÁÎÊÌÛËÇÎÈÒÚÉÌÊËÐÕÉÐÑÑÄËÊ×ÒËÕÙÎÎÏÑÖÏÏÛ×ÒÕãÓÏÖÐÚÝÓÒãÑÔÝÑØÓÖÔÚØÒÚÖØáÙÐÚÔÞÕÖÜÔÔáèÔßÞÙÜØÚßÞØâåÛÚàÛÞìÜØÛÞÜæÚáâßÚáÝßÜÝââÛåÛÛèÝßääàâäÞèÞÞëàãáßáæìâáìàççâåáâèõçÚçáëêçâäçåêåèäåëðæåêãîåäòêàùçêèçæóíéëíçñèéïïìçõèïõëêëìòìïíòíðòëõïòðïðöõñóöôîýòòüð÷ññþùõ÷ùòýÿø÷ö÷ýùúÿÿúýÿýøôýþüÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿµÿÿpG?Gÿ9+ÿÿÿÿdÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ_;A[™Ðò‰M1%=aÿšÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢‰T9Dq˜´¼ÈÒÒÞçÛȬ˜zP9,ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸpWARŠÀÏÒÒ²ÆÏÏÒÐÒÒÞáÚÔË—W<40ÿTÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®ÿA6^‰²ÝçÒÏÒ¬ÆÃÏÏËÎÏÏÑÖÑéåìÝȤ{i;:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPBgœÑáÞÒËÈÊÈðÏÜåØÒÏÒÑÏÏÏÏÏÒÒØçðÞÞ¬qD-,5Qk¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÕŸ”ØçÛÏÓÏÏÏÏÏÔ²϶ŸÏÍÏÒÏÏÎÒÏÎÒÏÔÐÃÊÓÝõëϨ™kG%/<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿóéÀ²ÞØÓËÏÏÃÊÆÈËÂò´är =ÃÒÐÍÎÐÏØÔÐÔÃÃÏÃÏÏËÏØàîîÞ¶“lr}ÿÿÿÿÿÿÿÿÿÿÿÿô¶¶°¹ÊÈÃÏÏÊÈÏöª²¾ÃÝz&<ËÒÐÎÏÏÔÛÜåÚÞáÑÍÐËÏÏÐÃÏËÚÞåçÞѼ°ÿÿÿÿÿÿÿÿÿÿó¥—‰œÂ¾¹¶­¥¥°ÃÒÄ´ÃÒβÏËÎÏÒÒØãÞÝÕ¡©»ÅËÔÐÐÃÑÐÑËÎÒÒÑÑÖ×´£ÿÿÿÿÿÿÿ÷ꉃœ¾¾¶°ª¦¶¦¯¾ÆÎ¼ÃÆÏÞÝÑÒÒÏÒÏÛØÞí·Žÿ’’’±åÐËÝÝØÐÑÐÔÏÑÖÒ¾ÿÿÿÿÿÿÿÿÿß”ˆˆœ²¶¾À¦­¶³¶¾ÒÐÉÍÏרÏÏÏÏÒÏÔÞãØÚÝÉ·½©©ÿס֫½èÛÜåÝ×ÏØÛªÿÿÿÿÿÿÿÿÿ陑™ªÀÏϳ{k¥¶ÃÔϲϤ}˜´ÏÒÔÞÏ×ÞÓËÊÂÑÐÛÛêßÕÅß¡ÛøÊªáëÏÍÑ˺ÿÿÿÿÿÿÿÿÿàœ”¯ËÆÂ_4‰¥»ÄÂÏ´çŠ0=5Bu¼ÛäïëÞÔÓ¾ÄÃÃÚßÖ×îëêÂåÞ¼ÓÛÜÏÿÿÿÿÿÿÿÿôÚ“˜˜ªËË´r|&T´È³²Ã´Ør ÄT>a‰¤¶Îëö÷å×ÊËÏÐéßêÞìÃÃÜåÞØÿÿÿÿÿÿÿÿÿÚ‰œ´ÏϲaY^¾¾Ã¿×Þã¤`5# &Î)  (Da¨ÞððïðìãËËÚ¶ÃÞÓãÿÿÿÿÿÿÿÿÿÿ騢³ÃÎÄ”WkÃ×ÚåèææçççÛäYˆ¬  >TO|”ž»ìöùѨÃÑ×ÿÿÿÿÿÿÿÿÿÿÿêÂÏÏÏ¿²ÃÐÒùïçåÝÞèìèçÞÒèëå²¼k !\@ $7i‘”¶×ÛûcÿÿÿÿÿÿÿÿÿôÀÂÂØ×Ûëïñè×ÛÜØØÓÔÛÔþœˆ`{‡ŠV@33)! !¦ÞÜïÿÿÿÿÿÿÿÿÿÿÿÿÖçììëÞÝÝÞÝåÞåÝØÞæëãðØq¥¶¼­¶¶²°Ÿœ™‡_OD3""" ,ÀÜíÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿïëç×éÖàéÄÄ´¤–Ôççç²—¬´»ÃÐÉÂÂÃÂÏϾ´°œ¨™|VF**$HáÛð»ÿÿÿÿÿÿÿÿÿÿÿÿÿâ÷ÿö÷ëððå­ª´Ç½ÞççÞ˜qí𘱶¾¾ÉÉÑÝÞåÖÅÄÀ¶¾ªk&*3Eižèë×~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôîôéÑÑôíëááäÃrŸúþíÝçßдª¶ÅÑ×ÐÏÑÑ´­P@_”‹Œ…ÿ.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÿÄÉÉÕÞØãÞÞÞijþþþþþþþûöçØÓ˶ÆÔË·¥{YGÔwIbn2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæÉÖ«ßÞÞðëëç´¨üþþþþþþþþþþþûñòïòWD|œmXmxÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿËÕ¹¥ÒÛÛÅ·„ñüþþþþþþþþþþþþþþþþúò¸¥+-¬wÿjÿ]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ–qyUJJŽþúþþþþþþþþþþþþþþþþþêå¤*P•åÿçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡¢¤“yNeoZhÙûüþþþþþþþþþþþþþþþþþñ—O*Ððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹ª–wXbts«þûüþþþþþþþþþþþþþþþúþû_Fèÿ‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¸Ö¹«†ˆ¸ÿüþþþþþþþþþþþþþþþþþþþûå´íÿÿ§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÚÅÕñóòüþþþþþþþþþþþþþþþþþþþþúö­»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬áùþúûþþúþþþþüþþþþþþþþþþþþþþüüêÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿûûýúÿþÿúûûþþþúþúüúþþûóôéÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿéÖÿùÿüôüþþûÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿfÿÿÿÿÿÿÿÿsÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿì'¿ÿÿÿÿÿàÿÿÿÿþÿÿÿÿø_ÿÿÿÐÿÿ€ÿüÿøøøð€øøøðøø?øø?ü?ÿ?þ@?ÿðÿúßÿüÿÿüÿþÿÿü?ÿÿþ_ÿÿü¿ÿÿüÿÿÿøÿÿÿÿРÿÿÿÿÿü _ÿÿÿÿÿÿÿ¿ÿÿÿï÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿibm-3270-3.3.10ga4/wpr3287/wsc.h0000644000175000017500000000331411254565705015272 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * wsc.h * Declarations for ws.c. */ char *ws_default_printer(void); int ws_endjob(void); int ws_flush(void); int ws_putc(char c); int ws_start(char *printer_name); int ws_write(char *s, int len); ibm-3270-3.3.10ga4/wpr3287/windirsc.h0000644000175000017500000000317011254565675016326 0ustar bastianbastian/* * Copyright (c) 2006-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ extern int get_dirs(char *argv0, char *appname, char **instdir, char **desktop, char **appdata, int *installed); ibm-3270-3.3.10ga4/wpr3287/tablesc.h0000644000175000017500000000334711254565704016120 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tablesc.h * Global declarations for tables.c. */ extern const unsigned char asc2cg0[256]; extern const unsigned char ebc2cg0[256]; extern const unsigned char ebc2asc0[256]; extern const unsigned char asc2ebc0[256]; ibm-3270-3.3.10ga4/ws3270/0000755000175000017500000000000011261530022014113 5ustar bastianbastianibm-3270-3.3.10ga4/ws3270/selectc.h0000644000175000017500000000316611254565673015742 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of selectc.h */ #define unselect(baddr, len) #define area_is_selected(baddr, len) False ibm-3270-3.3.10ga4/ws3270/x3270_glue.expect0000644000175000017500000002102711254565704017147 0ustar bastianbastian# Copyright (c) 2000-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the names of Paul Mattes nor the names of his contributors # may be used to endorse or promote products derived from this software # without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Glue functions between 'expect' and x3270 # Usage: source x3270_glue.expect namespace eval x3270 { variable verbose 0 variable pid 0 # Start function: Start ?-nohup? ?program? ?options? # # Sets up the 'expect' environment correctly and spawns a 3270 # interface process. # # The 'program' and 'options' can be: # "x3270 -script" to drive an x3270 session # "s3270" to drive a displayless 3270 session # "x3270if -i" to run as a child script of x3270 (via the Script() # action) # # If "args" is empty, or starts with an option besides '-nohup', # guesses which process to start. # It will only guess "x3270if -i" or "s3270"; if you want to start # x3270, you need to specify it explicitly. # # Returns the process ID of the spawned process. proc Start {args} { global stty_init timeout spawn_id env variable verbose variable pid if {$pid != 0} {return -code error "Already started."} # If the first argument is "-nohup", remember that as an # argument to 'spawn'. if {[lindex $args 0] == "-nohup"} { set nohup {-ignore HUP} set args [lrange $args 1 end] } { set nohup {} } # If there are no arguments, or the first argument is an # option, guess what to start. # If X3270INPUT is defined in the environment, this must be a # child script; start x3270if. Otherwise, this must be a peer # script; start s3270. if {$args == {} || [string index [lindex $args 0] 0] == "-"} { if {[info exists env(X3270INPUT)]} { set args [concat x3270if -i $args] } { if {$::tcl_platform(platform) == "windows"} { set args [concat ws3270 $args] } { set args [concat s3270 $args] } } } # Set up the pty initialization default. set stty_init -echo # Spawn the process. if {$verbose} { set pid [eval [concat spawn $nohup $args]] } { set pid [eval [concat spawn -noecho $nohup $args]] log_user 0 } # Set the 'expect' timeout. set timeout -1 return $pid } # Basic interface command. Used internally by the action functions # below. proc cmd {cmd} { variable verbose variable pid if {$pid==0} { return -code error "Not started yet." } if {$verbose} {puts "+$cmd"} send "$cmd\r" expect { -re "data: (.*)\r?\n.*\r?\nok\r?\n$" { set r $expect_out(buffer) } -re ".*ok\r?\n" { return {} } -re "(.*)\r?\n.*?\r?\nerror\r?\n" { return -code error "$expect_out(1,string)" } -re ".*error\r?\n" { return -code error \ "$cmd failed: $expect_out(buffer)" } eof { set pid 0; error "process died" } } # Convert result to a list. set ret {} set iter 0 while {1} { if {! [regexp "data: (.*?)\r?\n" $r dummy elt]} {break} if {$iter==1} {set ret [list $ret]} set r [string range $r [expr [string length $elt]+7] \ end] if {$iter > 0} { set ret [linsert $ret end $elt] } { set ret $elt } set iter [expr $iter + 1] } if {$verbose} {puts "ret $iter"} return $ret } # Convert an argument list to a comma-separated list that x3270 will # accept. proc commafy {alist} { set i 0 set a "" while {$i < [llength $alist]} { if {$i > 0} { set a "$a,[lindex $alist $i]" } { set a [lindex $alist $i] } incr i } return $a } # Quote a text string into x3270-acceptable format. proc stringify {text} { set a "\"" set i 0 while {$i < [string len $text]} { set c [string range $text $i $i] switch -- $c { "\n" { set a "$a\\n" } "\r" { set a "$a\\r" } " " { set a "$a\\ " } "\"" { set a "$a\\\"" } default { set a "$a$c" } } incr i } set a "$a\"" return $a } # User-accessible actions. # Some of these apply only to x3270 and x3270if, and not to s3270. proc AltCursor {} { return [cmd "AltCursor"] } proc Ascii {args} { return [cmd "Ascii([commafy $args])"] } proc AsciiField {} { return [cmd "AsciiField"] } proc Attn {} { return [cmd "Attn"] } proc BackSpace {} { return [cmd "BackSpace"] } proc BackTab {} { return [cmd "BackTab"] } proc CircumNot {} { return [cmd "CircumNot"] } proc Clear {} { return [cmd "Clear"] } proc CloseScript {} { return [cmd "CloseScript"] } proc Cols {} { return [lindex [Status] 7] } proc Compose {} { return [cmd "Compose"] } proc Connect {host} { return [cmd "Connect($host)"] } proc CursorSelect {} { return [cmd "CursorSelect"] } proc Delete {} { return [cmd "Delete"] } proc DeleteField {} { return [cmd "DeleteField"] } proc DeleteWord {} { return [cmd "DeleteWord"] } proc Disconnect {} { return [cmd "Disconnect"] } proc Down {} { return [cmd "Down"] } proc Dup {} { return [cmd "Dup"] } proc Ebcdic {args} { return [cmd "Ebcdic([commafy $args])"] } proc EbcdicField {} { return [cmd "EbcdicField"] } proc Enter {} { return [cmd "Enter"] } proc Erase {} { return [cmd "Erase"] } proc EraseEOF {} { return [cmd "EraseEOF"] } proc EraseInput {} { return [cmd "EraseInput"] } proc FieldEnd {} { return [cmd "FieldEnd"] } proc FieldMark {} { return [cmd "FieldMark"] } proc FieldExit {} { return [cmd "FieldExit"] } proc Flip {} { return [cmd "Flip"] } proc HexString {x} { return [cmd "HexString($x)"] } proc Home {} { return [cmd "Home"] } proc Info {text} { return [cmd "Info([stringify $text])"] } proc Insert {} { return [cmd "Insert"] } proc Interrupt {} { return [cmd "Interrupt"] } proc Key {k} { return [cmd "Key($k)"] } proc Keymap {k} { return [cmd "Keymap($k)"] } proc Left {} { return [cmd "Left"] } proc Left2 {} { return [cmd "Left2"] } proc MonoCase {} { return [cmd "MonoCase"] } proc MoveCursor {r c} { return [cmd "MoveCursor($r,$c)"] } proc Newline {} { return [cmd "Newline"] } proc NextWord {} { return [cmd "NextWord"] } proc PA {n} { return [cmd "PA($n)"] } proc PF {n} { return [cmd "PF($n)"] } proc PreviousWord {} { return [cmd "PreviousWord"] } proc Quit {} { exit } proc Reset {} { return [cmd "Reset"] } proc Right {} { return [cmd "Right"] } proc Right2 {} { return [cmd "Right2"] } proc Rows {} { return [lindex [Status] 6] } proc SetFont {font} { return [cmd "SetFont($font)"] } proc Snap {args} { return [cmd "Snap([commafy $args])"] } proc Status {} { variable verbose variable pid if {$pid==0} { return -code error "Not started yet." } if {$verbose} {puts "+(nothing)"} send "\r" expect { -re ".*ok\r?\n" { set r $expect_out(buffer) } eof { set pid 0; error "process died" } } return [string range $r 0 [expr [string length $r]-7]] } proc String {text} { return [cmd "String([stringify $text])"] } proc SysReq {} { return [cmd "SysReq"] } proc Tab {} { return [cmd "Tab"] } proc ToggleInsert {} { return [cmd "ToggleInsert"] } proc ToggleReverse {} { return [cmd "ToggleReverse"] } proc TemporaryKeymap {args} { return [cmd "TemporaryKeymap($args)"] } proc Transfer {args} { return [cmd "Transfer([commafy $args])"] } proc Up {} { return [cmd "Up"] } proc Wait {args} { return [cmd "Wait([commafy $args])"] } # Extra function to toggle verbosity on the fly. proc Setverbose {level} { variable verbose set verbose $level return } # Export all the user-visible functions. namespace export \[A-Z\]* } # Import all of the exported functions. namespace import x3270::* ibm-3270-3.3.10ga4/ws3270/Makefile0000755000175000017500000000774411254565672015617 0ustar bastianbastian# Copyright (c) 2007-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Makefile for ws3270 # Figure out if they've installed MinGW OpenSSL. SSLDIR = /usr/local/mingw-openssl HAVE_OPENSSL = $(shell [ -d $(SSLDIR) ] && echo yes) ifeq ($(HAVE_OPENSSL),yes) SSLCPP = -DHAVE_LIBSSL=1 -I$(SSLDIR)/include SSLLIB = -L$(SSLDIR)/lib -lssl -lcrypto -lwsock32 -ladvapi32 -lgdi32 -luser32 endif # Set command paths and mkfb (which has to run locally) based on whether # compiling natively on Cygwin, or cross-compiling on Linux. ifeq ($(CROSS),1) MKFB = mkfb CC = i586-mingw32msvc-gcc NATIVECC = gcc WINDRES = i586-mingw32msvc-windres NO_CYGWIN = else MKFB = mkfb.exe CC = gcc NATIVECC = gcc WINDRES = windres NO_CYGWIN = -mno-cygwin endif XCPPFLAGS = -D_WIN32 -DWS3270 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 -DWIN32_LEAN_AND_MEAN CFLAGS = $(EXTRA_FLAGS) $(NO_CYGWIN) -g -Wall -Werror $(XCPPFLAGS) -I. $(SSLCPP) SRCS = actions.c ansi.c apl.c charset.c ctlr.c fallbacks.c ft.c \ ft_cut.c ft_dft.c glue.c host.c idle.c kybd.c macros.c \ print.c printer.c proxy.c readres.c resolver.c resources.c rpq.c \ see.c sf.c smain.c strtok_r.c tables.c telnet.c toggles.c trace_ds.c \ utf8.c util.c w3misc.c windirs.c winvers.c xio.c XtGlue.c unicode.c VOBJS = actions.o ansi.o apl.o charset.o ctlr.o fallbacks.o ft.o \ ft_cut.o ft_dft.o glue.o host.o idle.o kybd.o macros.o \ print.o printer.o proxy.o readres.o resolver.o resources.o rpq.o \ see.o sf.o smain.o strtok_r.o tables.o telnet.o toggles.o trace_ds.o \ utf8.o util.o w3misc.o windirs.o winvers.o xio.o XtGlue.o ws3270res.o \ unicode.o unicode_dbcs.o OBJECTS = $(VOBJS) version.o LIBS = $(SSLLIB) -lws2_32 SHRTLIBS = -lole32 -luuid DLLFLAGS = $(EXTRA_FLAGS) -mno-cygwin -shared -Wl,--export-all-symbols -Wl,--enable-auto-import PROGS = ws3270.exe all: $(PROGS) version.o: $(VOBJS) version.txt mkversion.sh Makefile @chmod +x mkversion.sh version.txt sh ./mkversion.sh $(CC) ws3270 fallbacks.c: $(MKFB) X3270.xad Makefile $(RM) $@ ./$(MKFB) -c X3270.xad $@ $(MKFB): mkfb.c Makefile $(NATIVECC) -g -o $(MKFB) -D_WIN32 mkfb.c ws3270res.o: ws3270.rc ws3270.ico Makefile $(WINDRES) -i ws3270.rc -o ws3270res.o ws3270.exe: $(OBJECTS) Makefile $(CC) -o ws3270.exe $(CFLAGS) $(OBJECTS) $(LIBS) wversion.o: version.txt mkwversion.sh @chmod +x mkwversion.sh version.txt sh ./mkwversion.sh $(CC) clean: rm -f *.o mkfb mkfb.exe fallbacks.c clobber: clean rm -f $(PROGS) depend: gccmakedep -fMakefile $(XCPPFLAGS) -s "# DO NOT DELETE" $(SRCS) # ------------------------------------------------------------------------- # dependencies generated by makedepend # DO NOT DELETE ibm-3270-3.3.10ga4/ws3270/smain.c0000644000175000017500000001064011254565704015410 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, * GA 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor their * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR * GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * smain.c * A displayless 3270 Terminal Emulator * Main proceudre. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "screenc.h" #include "selectc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include "w3miscc.h" #include "windirsc.h" #include "winversc.h" #endif /*]*/ #if defined(_WIN32) /*[*/ char *instdir = NULL; char *myappdata = NULL; #endif /*]*/ void usage(char *msg) { if (msg != CN) fprintf(stderr, "%s\n", msg); fprintf(stderr, "Usage: %s [options] [ps:][LUname@]hostname[:port]\n", programname); fprintf(stderr, "Options:\n"); cmdline_help(False); exit(1); } static void main_connect(Boolean ignored) { if (CONNECTED || appres.disconnect_clear) ctlr_erase(True); } int main(int argc, char *argv[]) { const char *cl_hostname = CN; #if defined(_WIN32) /*[*/ (void) get_version_info(); if (get_dirs(argv[0], "ws3270", &instdir, NULL, &myappdata, NULL) < 0) exit(1); if (sockstart() < 0) exit(1); #endif /*]*/ argc = parse_command_line(argc, (const char **)argv, &cl_hostname); if (charset_init(appres.charset) != CS_OKAY) { xs_warning("Cannot find charset \"%s\"", appres.charset); (void) charset_init(NULL); } action_init(); ctlr_init(-1); ctlr_reinit(-1); kybd_init(); ansi_init(); sms_init(); register_schange(ST_CONNECT, main_connect); register_schange(ST_3270_MODE, main_connect); #if defined(X3270_FT) /*[*/ ft_init(); #endif /*]*/ #if !defined(_WIN32) /*[*/ /* Make sure we don't fall over any SIGPIPEs. */ (void) signal(SIGPIPE, SIG_IGN); #endif /*]*/ /* Handle initial toggle settings. */ #if defined(X3270_TRACE) /*[*/ if (!appres.debug_tracing) { appres.toggle[DS_TRACE].value = False; appres.toggle[EVENT_TRACE].value = False; } #endif /*]*/ initialize_toggles(); /* Connect to the host. */ if (cl_hostname != CN) { if (host_connect(cl_hostname) < 0) exit(1); /* Wait for negotiations to complete or fail. */ while (!IN_ANSI && !IN_3270) { (void) process_events(True); if (!PCONNECTED) exit(1); } } /* Prepare to run a peer script. */ peer_script_init(); /* Process events forever. */ while (1) { (void) process_events(True); #if !defined(_WIN32) /*[*/ if (children && waitpid(0, (int *)0, WNOHANG) > 0) --children; #endif /*]*/ } } ibm-3270-3.3.10ga4/ws3270/xio.c0000644000175000017500000000752211254565704015105 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, * GA 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor their * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR * GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xio.c * Low-level I/O setup functions and exit code. */ #include "globals.h" #include "actionsc.h" #include "hostc.h" #include "telnetc.h" #include "togglesc.h" #include "utilc.h" #include "xioc.h" /* Statics. */ static unsigned long ns_read_id; static unsigned long ns_exception_id; static Boolean reading = False; static Boolean excepting = False; /* * Called to set up input on a new network connection. */ void x_add_input(int net_sock) { ns_exception_id = AddExcept(net_sock, net_exception); excepting = True; ns_read_id = AddInput(net_sock, net_input); reading = True; } /* * Called when an exception is received to disable further exceptions. */ void x_except_off(void) { if (excepting) { RemoveInput(ns_exception_id); excepting = False; } } /* * Called when exception processing is complete to re-enable exceptions. * This includes removing and restoring reading, so the exceptions are always * processed first. */ void x_except_on(int net_sock) { if (excepting) return; if (reading) RemoveInput(ns_read_id); ns_exception_id = AddExcept(net_sock, net_exception); excepting = True; if (reading) ns_read_id = AddInput(net_sock, net_input); } /* * Called to disable input on a closing network connection. */ void x_remove_input(void) { if (reading) { RemoveInput(ns_read_id); reading = False; } if (excepting) { RemoveInput(ns_exception_id); excepting = False; } } /* * Application exit, with cleanup. */ void x3270_exit(int n) { static Boolean already_exiting = 0; /* Handle unintentional recursion. */ if (already_exiting) return; already_exiting = True; /* Turn off toggle-related activity. */ shutdown_toggles(); /* Shut down the socket gracefully. */ host_disconnect(False); /* Tell anyone else who's interested. */ st_changed(ST_EXITING, True); #if defined(WC3270) /*[*/ if (n) { char buf[2]; printf("\n[Press ] "); fflush(stdout); (void) fgets(buf, sizeof(buf), stdin); } #endif /*]*/ exit(n); } void Quit_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Quit_action, event, params, num_params); if (!w || !CONNECTED) { x3270_exit(0); } } ibm-3270-3.3.10ga4/ws3270/resolverc.h0000644000175000017500000000361311254565704016314 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resolverc.h * Hostname resolution. */ extern int resolve_host_and_port(const char *host, char *portname, int ix, unsigned short *pport, struct sockaddr *sa, socklen_t *sa_len, char *errmsg, int em_size, int *lastp); extern int numeric_host_and_port(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, char *errmsg, int em_len); ibm-3270-3.3.10ga4/ws3270/resources.c0000644000175000017500000001175711254565673016332 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include #include "localdefs.h" extern String fallbacks[]; /* s3270 substitute Xt resource database. */ #if defined(C3270) /*[*/ /* * These should be properly #ifdef'd in X3270.xad, but it would turn it into * spaghetti. */ static struct { char *name; char *value; } rdb[] = { { "message.hour", "hour" }, { "message.hours", "hours" }, { "message.minute", "minute" }, { "message.bindPluName", "BIND PLU name:" }, { "message.buildDisabled", "disabled" }, { "message.buildEnabled", "enabled" }, { "message.buildOpts", "Build options:" }, { "message.byte", "byte" }, { "message.bytes", "bytes" }, { "message.characterSet", "EBCDIC character set:" }, { "message.charMode", "NVT character mode" }, { "message.columns", "columns" }, { "message.connectedTo", "Connected to:" }, { "message.connectionPending", "Connection pending to:" }, { "message.dbcsCgcsgid", "Host DBCS CGCSGID:" }, { "message.defaultCharacterSet", "Default (us) EBCDIC character set" }, { "message.dsMode", "3270 mode" }, { "message.extendedDs", "extended data stream" }, { "message.fullColor", "color" }, { "message.hostCodePage", "Host code page:" }, { "message.keyboardMap", "Keyboard map:" }, { "message.lineMode", "NVT line mode" }, { "message.localeCodeset", "Locale codeset:" }, { "message.luName", "LU name:" }, { "message.minute", "minute" }, { "message.minutes", "minutes" }, { "message.model", "Model" }, { "message.mono", "monochrome" }, { "message.notConnected", "Not connected" }, { "message.port", "Port:" }, { "message.proxyType", "Proxy type:" }, { "message.Received", "Received" }, { "message.received", "received" }, { "message.record", "record" }, { "message.records", "records" }, { "message.rows", "rows" }, { "message.sbcsCgcsgid", "Host SBCS CGCSGID:" }, { "message.second", "second" }, { "message.seconds", "seconds" }, { "message.secure", "via TLS/SSL" }, { "message.sent", "Sent" }, { "message.server", "Server:" }, { "message.specialCharacters", "Special characters:" }, { "message.sscpMode", "SSCP-LU mode" }, { "message.standardDs", "standard data stream" }, { "message.terminalName", "Terminal name:" }, { "message.tn3270eNoOpts", "No TN3270E options" }, { "message.tn3270eOpts", "TN3270E options:" }, #if defined(_WIN32) /*[*/ { "message.windowsCodePage", "Windows code page:" }, #endif /*][*/ { NULL, NULL } }; #endif /*]*/ static struct dresource { struct dresource *next; const char *name; char *value; } *drdb = NULL, **drdb_next = &drdb; void add_resource(const char *name, char *value) { struct dresource *d; for (d = drdb; d != NULL; d = d->next) { if (!strcmp(d->name, name)) { d->value = value; return; } } d = Malloc(sizeof(struct dresource)); d->next = NULL; d->name = name; d->value = value; *drdb_next = d; drdb_next = &d->next; } char * get_resource(const char *name) { struct dresource *d; int i; for (d = drdb; d != NULL; d = d->next) { if (!strcmp(d->name, name)) { return d->value; } } for (i = 0; fallbacks[i] != NULL; i++) { if (!strncmp(fallbacks[i], name, strlen(name)) && *(fallbacks[i] + strlen(name)) == ':') { return fallbacks[i] + strlen(name) + 2; } } #if defined(C3270) /*[*/ for (i = 0; rdb[i].name != (char *)NULL; i++) { if (!strcmp(rdb[i].name, name)) { return rdb[i].value; } } #endif /*]*/ return NULL; } ibm-3270-3.3.10ga4/ws3270/XtGlue.c0000644000175000017500000004265611254565704015525 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* glue for missing Xt code */ #include "globals.h" #if defined(_WIN32) /*[*/ #include "appres.h" #include "trace_dsc.h" #include "xioc.h" #endif /*]*/ #include #include #include #include #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #if defined(_WIN32) /*[*/ #include #else /*][*/ #if defined(SEPARATE_SELECT_H) /*[*/ #include #endif /*]*/ #endif /*]*/ #define InputReadMask 0x1 #define InputExceptMask 0x2 #define InputWriteMask 0x4 #define MILLION 1000000L void (*Warning_redirect)(const char *) = NULL; void Error(const char *s) { fprintf(stderr, "Error: %s\n", s); #if defined(WC3270) /*[*/ x3270_exit(1); #else /*][*/ exit(1); #endif /*]*/ } void Warning(const char *s) { #if defined(C3270) /*[*/ extern Boolean any_error_output; #endif /*]*/ if (Warning_redirect != NULL) (*Warning_redirect)(s); else fprintf(stderr, "Warning: %s\n", s); #if defined(C3270) /*[*/ any_error_output = True; #endif /*]*/ } void * Malloc(size_t len) { char *r; r = malloc(len); if (r == (char *)NULL) Error("Out of memory"); return r; } void * Calloc(size_t nelem, size_t elsize) { char *r; r = malloc(nelem * elsize); if (r == (char *)NULL) Error("Out of memory"); return memset(r, '\0', nelem * elsize); } void * Realloc(void *p, size_t len) { p = realloc(p, len); if (p == NULL) Error("Out of memory"); return p; } void Free(void *p) { if (p != NULL) free(p); } char * NewString(const char *s) { return strcpy(Malloc(strlen(s) + 1), s); } static struct { /*const*/ char *name; /* not const because of ancient X11 API */ KeySym keysym; } latin1[] = { { "space", XK_space }, { "exclam", XK_exclam }, { "quotedbl", XK_quotedbl }, { "numbersign", XK_numbersign }, { "dollar", XK_dollar }, { "percent", XK_percent }, { "ampersand", XK_ampersand }, { "apostrophe", XK_apostrophe }, { "quoteright", XK_quoteright }, { "parenleft", XK_parenleft }, { "parenright", XK_parenright }, { "asterisk", XK_asterisk }, { "plus", XK_plus }, { "comma", XK_comma }, { "minus", XK_minus }, { "period", XK_period }, { "slash", XK_slash }, { "0", XK_0 }, { "1", XK_1 }, { "2", XK_2 }, { "3", XK_3 }, { "4", XK_4 }, { "5", XK_5 }, { "6", XK_6 }, { "7", XK_7 }, { "8", XK_8 }, { "9", XK_9 }, { "colon", XK_colon }, { "semicolon", XK_semicolon }, { "less", XK_less }, { "equal", XK_equal }, { "greater", XK_greater }, { "question", XK_question }, { "at", XK_at }, { "A", XK_A }, { "B", XK_B }, { "C", XK_C }, { "D", XK_D }, { "E", XK_E }, { "F", XK_F }, { "G", XK_G }, { "H", XK_H }, { "I", XK_I }, { "J", XK_J }, { "K", XK_K }, { "L", XK_L }, { "M", XK_M }, { "N", XK_N }, { "O", XK_O }, { "P", XK_P }, { "Q", XK_Q }, { "R", XK_R }, { "S", XK_S }, { "T", XK_T }, { "U", XK_U }, { "V", XK_V }, { "W", XK_W }, { "X", XK_X }, { "Y", XK_Y }, { "Z", XK_Z }, { "bracketleft", XK_bracketleft }, { "backslash", XK_backslash }, { "bracketright", XK_bracketright }, { "asciicircum", XK_asciicircum }, { "underscore", XK_underscore }, { "grave", XK_grave }, { "quoteleft", XK_quoteleft }, { "a", XK_a }, { "b", XK_b }, { "c", XK_c }, { "d", XK_d }, { "e", XK_e }, { "f", XK_f }, { "g", XK_g }, { "h", XK_h }, { "i", XK_i }, { "j", XK_j }, { "k", XK_k }, { "l", XK_l }, { "m", XK_m }, { "n", XK_n }, { "o", XK_o }, { "p", XK_p }, { "q", XK_q }, { "r", XK_r }, { "s", XK_s }, { "t", XK_t }, { "u", XK_u }, { "v", XK_v }, { "w", XK_w }, { "x", XK_x }, { "y", XK_y }, { "z", XK_z }, { "braceleft", XK_braceleft }, { "bar", XK_bar }, { "braceright", XK_braceright }, { "asciitilde", XK_asciitilde }, { "nobreakspace", XK_nobreakspace }, { "exclamdown", XK_exclamdown }, { "cent", XK_cent }, { "sterling", XK_sterling }, { "currency", XK_currency }, { "yen", XK_yen }, { "brokenbar", XK_brokenbar }, { "section", XK_section }, { "diaeresis", XK_diaeresis }, { "copyright", XK_copyright }, { "ordfeminine", XK_ordfeminine }, { "guillemotleft", XK_guillemotleft }, { "notsign", XK_notsign }, { "hyphen", XK_hyphen }, { "registered", XK_registered }, { "macron", XK_macron }, { "degree", XK_degree }, { "plusminus", XK_plusminus }, { "twosuperior", XK_twosuperior }, { "threesuperior", XK_threesuperior }, { "acute", XK_acute }, { "mu", XK_mu }, { "paragraph", XK_paragraph }, { "periodcentered", XK_periodcentered }, { "cedilla", XK_cedilla }, { "onesuperior", XK_onesuperior }, { "masculine", XK_masculine }, { "guillemotright", XK_guillemotright }, { "onequarter", XK_onequarter }, { "onehalf", XK_onehalf }, { "threequarters", XK_threequarters }, { "questiondown", XK_questiondown }, { "Agrave", XK_Agrave }, { "Aacute", XK_Aacute }, { "Acircumflex", XK_Acircumflex }, { "Atilde", XK_Atilde }, { "Adiaeresis", XK_Adiaeresis }, { "Aring", XK_Aring }, { "AE", XK_AE }, { "Ccedilla", XK_Ccedilla }, { "Egrave", XK_Egrave }, { "Eacute", XK_Eacute }, { "Ecircumflex", XK_Ecircumflex }, { "Ediaeresis", XK_Ediaeresis }, { "Igrave", XK_Igrave }, { "Iacute", XK_Iacute }, { "Icircumflex", XK_Icircumflex }, { "Idiaeresis", XK_Idiaeresis }, { "ETH", XK_ETH }, { "Eth", XK_Eth }, { "Ntilde", XK_Ntilde }, { "Ograve", XK_Ograve }, { "Oacute", XK_Oacute }, { "Ocircumflex", XK_Ocircumflex }, { "Otilde", XK_Otilde }, { "Odiaeresis", XK_Odiaeresis }, { "multiply", XK_multiply }, { "Ooblique", XK_Ooblique }, { "Ugrave", XK_Ugrave }, { "Uacute", XK_Uacute }, { "Ucircumflex", XK_Ucircumflex }, { "Udiaeresis", XK_Udiaeresis }, { "Yacute", XK_Yacute }, { "THORN", XK_THORN }, { "Thorn", XK_Thorn }, { "ssharp", XK_ssharp }, { "agrave", XK_agrave }, { "aacute", XK_aacute }, { "acircumflex", XK_acircumflex }, { "atilde", XK_atilde }, { "adiaeresis", XK_adiaeresis }, { "aring", XK_aring }, { "ae", XK_ae }, { "ccedilla", XK_ccedilla }, { "egrave", XK_egrave }, { "eacute", XK_eacute }, { "ecircumflex", XK_ecircumflex }, { "ediaeresis", XK_ediaeresis }, { "igrave", XK_igrave }, { "iacute", XK_iacute }, { "icircumflex", XK_icircumflex }, { "idiaeresis", XK_idiaeresis }, { "eth", XK_eth }, { "ntilde", XK_ntilde }, { "ograve", XK_ograve }, { "oacute", XK_oacute }, { "ocircumflex", XK_ocircumflex }, { "otilde", XK_otilde }, { "odiaeresis", XK_odiaeresis }, { "division", XK_division }, { "oslash", XK_oslash }, { "ugrave", XK_ugrave }, { "uacute", XK_uacute }, { "ucircumflex", XK_ucircumflex }, { "udiaeresis", XK_udiaeresis }, { "yacute", XK_yacute }, { "thorn", XK_thorn }, { "ydiaeresis", XK_ydiaeresis }, /* * The following are, umm, hacks to allow symbolic names for * control codes. */ #if !defined(_WIN32) /*[*/ { "BackSpace", 0x08 }, { "Tab", 0x09 }, { "Linefeed", 0x0a }, { "Return", 0x0d }, { "Escape", 0x1b }, { "Delete", 0x7f }, #endif /*]*/ { (char *)NULL, NoSymbol } }; KeySym StringToKeysym(char *s) { int i; if (strlen(s) == 1 && (*(unsigned char *)s & 0x7f) > ' ') return (KeySym)*(unsigned char *)s; for (i = 0; latin1[i].name != (char *)NULL; i++) { if (!strcmp(s, latin1[i].name)) return latin1[i].keysym; } return NoSymbol; } char * KeysymToString(KeySym k) { int i; for (i = 0; latin1[i].name != (char *)NULL; i++) { if (latin1[i].keysym == k) return latin1[i].name; } return (char *)NULL; } /* Timeouts. */ #if defined(_WIN32) /*[*/ static void ms_ts(unsigned long long *u) { FILETIME t; /* Get the system time, in 100ns units. */ GetSystemTimeAsFileTime(&t); memcpy(u, &t, sizeof(unsigned long long)); /* Divide by 10,000 to get ms. */ *u /= 10000ULL; } #endif /*]*/ typedef struct timeout { struct timeout *next; #if defined(_WIN32) /*[*/ unsigned long long ts; #else /*][*/ struct timeval tv; #endif /*]*/ void (*proc)(void); Boolean in_play; } timeout_t; #define TN (timeout_t *)NULL static timeout_t *timeouts = TN; unsigned long AddTimeOut(unsigned long interval_ms, void (*proc)(void)) { timeout_t *t_new; timeout_t *t; timeout_t *prev = TN; t_new = (timeout_t *)Malloc(sizeof(timeout_t)); t_new->proc = proc; t_new->in_play = False; #if defined(_WIN32) /*[*/ ms_ts(&t_new->ts); t_new->ts += interval_ms; #else /*][*/ (void) gettimeofday(&t_new->tv, NULL); t_new->tv.tv_sec += interval_ms / 1000L; t_new->tv.tv_usec += (interval_ms % 1000L) * 1000L; if (t_new->tv.tv_usec > MILLION) { t_new->tv.tv_sec += t_new->tv.tv_usec / MILLION; t_new->tv.tv_usec %= MILLION; } #endif /*]*/ /* Find where to insert this item. */ for (t = timeouts; t != TN; t = t->next) { #if defined(_WIN32) /*[*/ if (t->ts > t_new->ts) #else /*][*/ if (t->tv.tv_sec > t_new->tv.tv_sec || (t->tv.tv_sec == t_new->tv.tv_sec && t->tv.tv_usec > t_new->tv.tv_usec)) #endif /*]*/ break; prev = t; } /* Insert it. */ if (prev == TN) { /* Front. */ t_new->next = timeouts; timeouts = t_new; } else if (t == TN) { /* Rear. */ t_new->next = TN; prev->next = t_new; } else { /* Middle. */ t_new->next = t; prev->next = t_new; } return (unsigned long)t_new; } void RemoveTimeOut(unsigned long timer) { timeout_t *st = (timeout_t *)timer; timeout_t *t; timeout_t *prev = TN; if (st->in_play) return; for (t = timeouts; t != TN; t = t->next) { if (t == st) { if (prev != TN) prev->next = t->next; else timeouts = t->next; Free(t); return; } prev = t; } } /* Input events. */ typedef struct input { struct input *next; int source; int condition; void (*proc)(void); } input_t; static input_t *inputs = (input_t *)NULL; static Boolean inputs_changed = False; unsigned long AddInput(int source, void (*fn)(void)) { input_t *ip; ip = (input_t *)Malloc(sizeof(input_t)); ip->source = source; ip->condition = InputReadMask; ip->proc = fn; ip->next = inputs; inputs = ip; inputs_changed = True; return (unsigned long)ip; } unsigned long AddExcept(int source, void (*fn)(void)) { #if defined(_WIN32) /*[*/ return 0; #else /*][*/ input_t *ip; ip = (input_t *)Malloc(sizeof(input_t)); ip->source = source; ip->condition = InputExceptMask; ip->proc = fn; ip->next = inputs; inputs = ip; inputs_changed = True; return (unsigned long)ip; #endif /*]*/ } #if !defined(_WIN32) /*[*/ unsigned long AddOutput(int source, void (*fn)(void)) { input_t *ip; ip = (input_t *)Malloc(sizeof(input_t)); ip->source = source; ip->condition = InputWriteMask; ip->proc = fn; ip->next = inputs; inputs = ip; inputs_changed = True; return (unsigned long)ip; } #endif /*]*/ void RemoveInput(unsigned long id) { input_t *ip; input_t *prev = (input_t *)NULL; for (ip = inputs; ip != (input_t *)NULL; ip = ip->next) { if (ip == (input_t *)id) break; prev = ip; } if (ip == (input_t *)NULL) return; if (prev != (input_t *)NULL) prev->next = ip->next; else inputs = ip->next; Free(ip); inputs_changed = True; } #if !defined(_WIN32) /*[*/ /* * Modify the passed-in parameters so they reflect the values needed for * select(). */ int select_setup(int *nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval **timeout, struct timeval *timebuf) { input_t *ip; int r = 0; for (ip = inputs; ip != (input_t *)NULL; ip = ip->next) { if ((unsigned long)ip->condition & InputReadMask) { FD_SET(ip->source, readfds); if (ip->source >= *nfds) *nfds = ip->source + 1; r = 1; } if ((unsigned long)ip->condition & InputWriteMask) { FD_SET(ip->source, writefds); if (ip->source >= *nfds) *nfds = ip->source + 1; r = 1; } if ((unsigned long)ip->condition & InputExceptMask) { FD_SET(ip->source, exceptfds); if (ip->source >= *nfds) *nfds = ip->source + 1; r = 1; } } if (timeouts != TN) { struct timeval now, twait; (void) gettimeofday(&now, (void *)NULL); twait.tv_sec = timeouts->tv.tv_sec - now.tv_sec; twait.tv_usec = timeouts->tv.tv_usec - now.tv_usec; if (twait.tv_usec < 0L) { twait.tv_sec--; twait.tv_usec += MILLION; } if (twait.tv_sec < 0L) twait.tv_sec = twait.tv_usec = 0L; if (*timeout == NULL) { /* No timeout yet -- we're it. */ *timebuf = twait; *timeout = timebuf; r = 1; } else if (twait.tv_sec < (*timeout)->tv_sec || (twait.tv_sec == (*timeout)->tv_sec && twait.tv_usec < (*timeout)->tv_usec)) { /* We're sooner than what they're waiting for. */ **timeout = twait; r = 1; } } return r; } #endif /*]*/ #if defined(_WIN32) /*[*/ #define MAX_HA 256 #endif /*]*/ /* Event dispatcher. */ Boolean process_events(Boolean block) { #if defined(_WIN32) /*[*/ HANDLE ha[MAX_HA]; DWORD nha; DWORD tmo; DWORD ret; unsigned long long now; int i; #else /*][*/ fd_set rfds, wfds, xfds; int ns; struct timeval now, twait, *tp; #endif /*]*/ input_t *ip, *ip_next; struct timeout *t; Boolean any_events; Boolean processed_any = False; processed_any = False; retry: /* If we've processed any input, then don't block again. */ if (processed_any) block = False; any_events = False; #if defined(_WIN32) /*[*/ nha = 0; #else /*][*/ FD_ZERO(&rfds); FD_ZERO(&wfds); FD_ZERO(&xfds); #endif /*]*/ for (ip = inputs; ip != (input_t *)NULL; ip = ip->next) { if ((unsigned long)ip->condition & InputReadMask) { #if defined(_WIN32) /*[*/ ha[nha++] = (HANDLE)ip->source; #else /*][*/ FD_SET(ip->source, &rfds); #endif /*]*/ any_events = True; } #if !defined(_WIN32) /*[*/ if ((unsigned long)ip->condition & InputWriteMask) { FD_SET(ip->source, &wfds); any_events = True; } if ((unsigned long)ip->condition & InputExceptMask) { FD_SET(ip->source, &xfds); any_events = True; } #endif /*]*/ } if (block) { if (timeouts != TN) { #if defined(_WIN32) /*[*/ ms_ts(&now); if (now > timeouts->ts) tmo = 0; else tmo = timeouts->ts - now; #else /*][*/ (void) gettimeofday(&now, (void *)NULL); twait.tv_sec = timeouts->tv.tv_sec - now.tv_sec; twait.tv_usec = timeouts->tv.tv_usec - now.tv_usec; if (twait.tv_usec < 0L) { twait.tv_sec--; twait.tv_usec += MILLION; } if (twait.tv_sec < 0L) twait.tv_sec = twait.tv_usec = 0L; tp = &twait; #endif /*]*/ any_events = True; } else { #if defined(_WIN32) /*[*/ tmo = INFINITE; #else /*][*/ tp = (struct timeval *)NULL; #endif /*]*/ } } else { #if defined(_WIN32) /*[*/ tmo = 1; #else /*][*/ twait.tv_sec = twait.tv_usec = 0L; tp = &twait; #endif /*]*/ } if (!any_events) return processed_any; #if defined(_WIN32) /*[*/ ret = WaitForMultipleObjects(nha, ha, FALSE, tmo); if (ret == WAIT_FAILED) { #else /*][*/ ns = select(FD_SETSIZE, &rfds, &wfds, &xfds, tp); if (ns < 0) { if (errno != EINTR) Warning("process_events: select() failed"); #endif /*]*/ return processed_any; } inputs_changed = False; #if defined(_WIN32) /*[*/ for (i = 0, ip = inputs; ip != (input_t *)NULL; ip = ip_next, i++) { #else /*][*/ for (ip = inputs; ip != (input_t *)NULL; ip = ip_next) { #endif /*]*/ ip_next = ip->next; if (((unsigned long)ip->condition & InputReadMask) && #if defined(_WIN32) /*[*/ ret == WAIT_OBJECT_0 + i) { #else /*][*/ FD_ISSET(ip->source, &rfds)) { #endif /*]*/ (*ip->proc)(); processed_any = True; if (inputs_changed) goto retry; } #if !defined(_WIN32) /*[*/ if (((unsigned long)ip->condition & InputWriteMask) && FD_ISSET(ip->source, &wfds)) { (*ip->proc)(); processed_any = True; if (inputs_changed) goto retry; } if (((unsigned long)ip->condition & InputExceptMask) && FD_ISSET(ip->source, &xfds)) { (*ip->proc)(); processed_any = True; if (inputs_changed) goto retry; } #endif /*]*/ } /* See what's expired. */ if (timeouts != TN) { #if defined(_WIN32) /*[*/ ms_ts(&now); #else /*][*/ (void) gettimeofday(&now, (void *)NULL); #endif /*]*/ while ((t = timeouts) != TN) { #if defined(_WIN32) /*[*/ if (t->ts <= now) { #else /*][*/ if (t->tv.tv_sec < now.tv_sec || (t->tv.tv_sec == now.tv_sec && t->tv.tv_usec < now.tv_usec)) { #endif /*]*/ timeouts = t->next; t->in_play = True; (*t->proc)(); processed_any = True; Free(t); } else break; } } if (inputs_changed) goto retry; return processed_any; } ibm-3270-3.3.10ga4/ws3270/screen.h0000644000175000017500000000316111254565673015572 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of screen.h */ #define SELECTED(baddr) False extern int *char_width, *char_height; ibm-3270-3.3.10ga4/ws3270/utf8.c0000644000175000017500000001545611254565704015201 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utf8.c * 3270 Terminal Emulator * UTF-8 conversions */ #include "globals.h" #include "popupsc.h" #include "utf8c.h" char *locale_codeset = CN; Boolean is_utf8 = False; /* * Save the codeset from the locale, and set globals based on known values. */ void set_codeset(char *codeset_name) { #if !defined(TCL3270) /*[*/ is_utf8 = (!strcasecmp(codeset_name, "utf-8") || !strcasecmp(codeset_name, "utf8") || !strcasecmp(codeset_name, "utf_8")); #else /*][*/ /* * tcl3270 is always in UTF-8 mode, because it needs to * supply UTF-8 strings to libtcl and vice-versa. */ is_utf8 = True; #endif /*]*/ Replace(locale_codeset, NewString(codeset_name)); } /* * Convert from UCS-4 to UTF-8. * Returns: * >0: length of converted character * -1: invalid UCS-4 */ int unicode_to_utf8(ucs4_t ucs4, char *utf8) { if (ucs4 & 0x80000000) return -1; if (ucs4 <= 0x0000007f) { utf8[0] = ucs4 & 0x7f; /* 7 bits */ return 1; } else if (ucs4 <= 0x000007ff) { utf8[0] = 0xc0 | ((ucs4 >> 6) & 0x1f); /* upper 5 bits */ utf8[1] = 0x80 | (ucs4 & 0x3f); /* lower 6 bits */ return 2; } else if (ucs4 <= 0x0000ffff) { utf8[0] = 0xe0 | ((ucs4 >> 12) & 0x0f); /* upper 4 bits */ utf8[1] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 3; } else if (ucs4 <= 0x001fffff) { utf8[0] = 0xf0 | ((ucs4 >> 18) & 0x07); /* upper 3 bits */ utf8[1] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 4; } else if (ucs4 <= 0x03ffffff) { utf8[0] = 0xf8 | ((ucs4 >> 24) & 0x03); /* upper 2 bits */ utf8[1] = 0x80 | ((ucs4 >> 18) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[4] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 5; } else { utf8[0] = 0xfc | ((ucs4 >> 30) & 0x01); /* upper 1 bit */ utf8[1] = 0x80 | ((ucs4 >> 24) & 0x3f); /* next 6 bits */ utf8[2] = 0x80 | ((ucs4 >> 18) & 0x3f); /* next 6 bits */ utf8[3] = 0x80 | ((ucs4 >> 12) & 0x3f); /* next 6 bits */ utf8[4] = 0x80 | ((ucs4 >> 6) & 0x3f); /* next 6 bits */ utf8[5] = 0x80 | (ucs4 & 0x3f); /* last 6 bits */ return 6; } } /* * Convert at most 'len' bytes from a UTF-8 string to one UCS-4 character. * Returns: * >0: Number of characters consumed. * 0: Incomplete sequence. * -1: Invalid sequence. * -2: Illegal (too-long) encoding. * -3: Invalid lead byte. * * An invalid sequence can be either improperly composed, or using the wrong * encoding length (often used to get past spam filters and such). */ int utf8_to_unicode(const char *utf8, int len, ucs4_t *ucs4) { /* No input is by definition incomplete. */ if (!len) return 0; /* See if it's ASCII-7. */ if ((utf8[0] & 0xff) < 0x80) { *ucs4 = utf8[0] & 0x7f; return 1; } /* Now check for specific UTF-8 leading bytes. */ if ((utf8[0] & 0xe0) == 0xc0) { /* 110xxxxx 10xxxxxx * 0x00000080-0x000007ff */ if (len < 2) return 0; if ((utf8[1] & 0xc0) != 0x80) return -1; *ucs4 = ((utf8[0] << 6) & 0x7c0) | (utf8[1] & 0x03f); if (*ucs4 < 0x00000080) return -1; return 2; } if ((utf8[0] & 0xf0) == 0xe0) { /* 1110xxxx 10xxxxxx 10xxxxxx * 0x00000800-0x0000ffff */ if (len < 3) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 12) & 0xf000) | ((utf8[1] << 6) & 0x0fc0) | ((utf8[2]) & 0x003f); if (*ucs4 < 0x00000800) return -2; return 3; } if ((utf8[0] & 0xf8) == 0xf0) { /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x00010000-0x001fffff */ if (len < 4) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 18) & 0x1c0000) | ((utf8[1] << 12) & 0x03f000) | ((utf8[2] << 6) & 0x000fc0) | ((utf8[3]) & 0x00003f); if (*ucs4 < 0x00010000) return -2; return 4; } if ((utf8[0] & 0xfc) == 0xf8) { /* 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x00200000-0x03ffffff */ if (len < 5) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80) || ((utf8[4] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 24) & 0x3000000) | ((utf8[1] << 18) & 0x0fc0000) | ((utf8[2] << 12) & 0x003f000) | ((utf8[3] << 6) & 0x0000fc0) | ((utf8[4]) & 0x000003f); if (*ucs4 < 0x00200000) return -2; return 5; } if ((utf8[0] & 0xfe) == 0xfc) { /* 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx * 0x04000000-0x7fffffff */ if (len < 6) return 0; if (((utf8[1] & 0xc0) != 0x80) || ((utf8[2] & 0xc0) != 0x80) || ((utf8[3] & 0xc0) != 0x80) || ((utf8[4] & 0xc0) != 0x80) || ((utf8[5] & 0xc0) != 0x80)) return -1; *ucs4 = ((utf8[0] << 30) & 0x40000000) | ((utf8[1] << 24) & 0x3f000000) | ((utf8[2] << 18) & 0x00fc0000) | ((utf8[3] << 12) & 0x0003f000) | ((utf8[4] << 6) & 0x00000fc0) | ((utf8[5]) & 0x0000003f); if (*ucs4 < 0x04000000) return -2; return 6; } return -3; } ibm-3270-3.3.10ga4/ws3270/screenc.h0000644000175000017500000000373411254565673015743 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of screenc.h */ #define blink_start() #define cursor_move(baddr) cursor_addr = (baddr) #define display_heightMM() 100 #define display_height() 1 #define display_widthMM() 100 #define display_width() 1 #define mcursor_locked() #define mcursor_normal() #define mcursor_waiting() #define ring_bell() #define screen_disp(erasing) #define screen_flip() #define screen_obscured() False #define screen_scroll() #define screen_80() #define screen_132() ibm-3270-3.3.10ga4/ws3270/tn3270e.h0000644000175000017500000000704311254565704015413 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tn3270e.h * * Header file for the TN3270E Protocol, RFC 2355. */ /* Negotiation operations. */ #define TN3270E_OP_ASSOCIATE 0 #define TN3270E_OP_CONNECT 1 #define TN3270E_OP_DEVICE_TYPE 2 #define TN3270E_OP_FUNCTIONS 3 #define TN3270E_OP_IS 4 #define TN3270E_OP_REASON 5 #define TN3270E_OP_REJECT 6 #define TN3270E_OP_REQUEST 7 #define TN3270E_OP_SEND 8 /* Negotiation reason-codes. */ #define TN3270E_REASON_CONN_PARTNER 0 #define TN3270E_REASON_DEVICE_IN_USE 1 #define TN3270E_REASON_INV_ASSOCIATE 2 #define TN3270E_REASON_INV_DEVICE_NAME 3 #define TN3270E_REASON_INV_DEVICE_TYPE 4 #define TN3270E_REASON_TYPE_NAME_ERROR 5 #define TN3270E_REASON_UNKNOWN_ERROR 6 #define TN3270E_REASON_UNSUPPORTED_REQ 7 /* Negotiation function Names. */ #define TN3270E_FUNC_BIND_IMAGE 0 #define TN3270E_FUNC_DATA_STREAM_CTL 1 #define TN3270E_FUNC_RESPONSES 2 #define TN3270E_FUNC_SCS_CTL_CODES 3 #define TN3270E_FUNC_SYSREQ 4 /* Header data type names. */ #define TN3270E_DT_3270_DATA 0x00 #define TN3270E_DT_SCS_DATA 0x01 #define TN3270E_DT_RESPONSE 0x02 #define TN3270E_DT_BIND_IMAGE 0x03 #define TN3270E_DT_UNBIND 0x04 #define TN3270E_DT_NVT_DATA 0x05 #define TN3270E_DT_REQUEST 0x06 #define TN3270E_DT_SSCP_LU_DATA 0x07 #define TN3270E_DT_PRINT_EOJ 0x08 /* Header request flags. */ #define TN3270E_RQF_ERR_COND_CLEARED 0x00 /* Header response flags. */ #define TN3270E_RSF_NO_RESPONSE 0x00 #define TN3270E_RSF_ERROR_RESPONSE 0x01 #define TN3270E_RSF_ALWAYS_RESPONSE 0x02 #define TN3270E_RSF_POSITIVE_RESPONSE 0x00 #define TN3270E_RSF_NEGATIVE_RESPONSE 0x01 /* Header response data. */ #define TN3270E_POS_DEVICE_END 0x00 #define TN3270E_NEG_COMMAND_REJECT 0x00 #define TN3270E_NEG_INTERVENTION_REQUIRED 0x01 #define TN3270E_NEG_OPERATION_CHECK 0x02 #define TN3270E_NEG_COMPONENT_DISCONNECTED 0x03 /* TN3270E data header. */ typedef struct { unsigned char data_type; unsigned char request_flag; unsigned char response_flag; unsigned char seq_number[2]; /* actually, 16 bits, unaligned (!) */ } tn3270e_header; #define EH_SIZE 5 ibm-3270-3.3.10ga4/ws3270/readres.c0000644000175000017500000001320211254565704015723 0ustar bastianbastian/* * Copyright (c) 2009, Paul Mattes. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * readres.c * A displayless 3270 Terminal Emulator * Resource file reader. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "readresc.h" #include "screenc.h" #include "selectc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include #include "winversc.h" #endif /*]*/ #if !defined(ME) /*[*/ # if defined(C3270) /*[*/ # if defined(WC3270) /*[*/ # define ME "wc3270" # else /*][*/ # define ME "c3270" # endif /*]*/ # elif defined(S3270) /*[*/ # if defined(WS3270) /*[*/ # define ME "ws3270" # else /*][*/ # define ME "s3270" # endif /*]*/ # elif defined(TCL3270) /*][*/ # define ME "tcl3270" # endif /*]*/ #endif /*]*/ /* * Make sure a resource definition begins with the application name, then * split it into the name and the value. */ int validate_and_split_resource(const char *where, const char *arg, const char **left, unsigned *rnlenp, const char **right) { unsigned match_len; unsigned rnlen; const char *s = arg; static char me_dot[] = ME "."; static char me_star[] = ME "*"; /* Enforce "-3270." or "-3270*" or "*". */ if (!strncmp(s, me_dot, sizeof(me_dot)-1)) match_len = sizeof(me_dot)-1; else if (!strncmp(arg, me_star, sizeof(me_star)-1)) match_len = sizeof(me_star)-1; else if (arg[0] == '*') match_len = 1; else { xs_warning("%s: Invalid resource syntax '%.*s', name must " "begin with '%s'", where, (int)(sizeof(me_dot)-1), arg, me_dot); return -1; } /* Separate the parts. */ s = arg + match_len; while (*s && *s != ':' && !isspace(*s)) s++; rnlen = s - (arg + match_len); if (!rnlen) { xs_warning("%s: Invalid resource syntax, missing resource " "name", where); return -1; } while (isspace(*s)) s++; if (*s != ':') { xs_warning("%s: Invalid resource syntax, missing ':'", where); return -1; } s++; while (isspace(*s)) s++; /* Return what we got. */ *left = arg + match_len; *rnlenp = rnlen; *right = s; return 0; } /* Read resources from a file. */ int read_resource_filex(const char *filename, Boolean fatal, rrf_t *rrf) { FILE *f; int ilen; char buf[4096]; char *where; int lno = 0; f = fopen(filename, "r"); if (f == NULL) { if (fatal) xs_warning("Cannot open '%s': %s", filename, strerror(errno)); return -1; } /* Merge in what's in the file into the resource database. */ where = Malloc(strlen(filename) + 64); ilen = 0; while (fgets(buf + ilen, sizeof(buf) - ilen, f) != CN || ilen) { char *s; unsigned sl; Boolean bsl = False; lno++; /* Stip any trailing newline. */ sl = strlen(buf + ilen); if (sl && (buf + ilen)[sl-1] == '\n') (buf + ilen)[--sl] = '\0'; /* Check for a trailing backslash. */ s = buf + ilen; if ((sl > 0) && (s[sl - 1] == '\\')) { s[sl - 1] = '\0'; bsl = True; } /* Skip leading whitespace. */ s = buf; while (isspace(*s)) s++; /* If this line is a continuation, try again. */ if (bsl) { ilen += strlen(buf + ilen); if ((unsigned)ilen >= sizeof(buf) - 1) { (void) sprintf(where, "%s:%d: Line too long\n", filename, lno); Warning(where); break; } continue; } /* Skip comments. */ if (*s == '!') { ilen = 0; continue; } if (*s == '#') { (void) sprintf(where, "%s:%d: Invalid profile " "syntax ('#' ignored)", filename, lno); Warning(where); ilen = 0; continue; } /* Strip trailing whitespace and check for empty lines. */ sl = strlen(s); while (sl && isspace(s[sl-1])) s[--sl] = '\0'; if (!sl) { ilen = 0; continue; } /* Digest it. */ (void) sprintf(where, "%s:%d", filename, lno); parse_xrm(s, where); /* Get ready for the next iteration. */ ilen = 0; } Free(where); fclose(f); return 0; } ibm-3270-3.3.10ga4/ws3270/w3miscc.h0000644000175000017500000000372511254565704015664 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * w3misc.c * Miscellaneous Win32 functions. */ #if defined(_WIN32) /*[*/ #if defined(_WS2TCPIP_H) /*[*/ extern const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt); #endif /*]*/ extern int sockstart(void); extern const char *win32_strerror(int e); #if defined(_MSC_VER) /*[*/ extern int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg; extern int optind, opterr, optopt; #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/arpa_telnet.h0000644000175000017500000001140211254565704016601 0ustar bastianbastian/* @(#)telnet.h 1.7 88/08/19 SMI; from UCB 5.1 5/30/85 */ /* * Copyright (c) 1983 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */ /* * Definitions for the TELNET protocol. */ #ifndef _arpa_telnet_h #define _arpa_telnet_h #define IAC 255 /* interpret as command: */ #define DONT 254 /* you are not to use option */ #define DO 253 /* please, you use option */ #define WONT 252 /* I won't use option */ #define WILL 251 /* I will use option */ #define SB 250 /* interpret as subnegotiation */ #define GA 249 /* you may reverse the line */ #define EL 248 /* erase the current line */ #define EC 247 /* erase the current character */ #define AYT 246 /* are you there */ #define AO 245 /* abort output--but let prog finish */ #define IP 244 /* interrupt process--permanently */ #define BREAK 243 /* break */ #define DM 242 /* data mark--for connect. cleaning */ #define NOP 241 /* nop */ #define SE 240 /* end sub negotiation */ #define EOR 239 /* end of record (transparent mode) */ #define SUSP 237 /* suspend process */ #define xEOF 236 /* end of file */ #define SYNCH 242 /* for telfunc calls */ #ifdef TELCMDS const char *telcmds[] = { "EOF", "SUSP", "ABORT", "EOR", "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0 }; #endif #define TELCMD_FIRST xEOF #define TELCMD_LAST IAC #define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \ (unsigned int)(x) >= TELCMD_FIRST) #define TELCMD(x) telcmds[(x)-TELCMD_FIRST] /* telnet options */ #define TELOPT_BINARY 0 /* 8-bit data path */ #define TELOPT_ECHO 1 /* echo */ #define TELOPT_RCP 2 /* prepare to reconnect */ #define TELOPT_SGA 3 /* suppress go ahead */ #define TELOPT_NAMS 4 /* approximate message size */ #define TELOPT_STATUS 5 /* give status */ #define TELOPT_TM 6 /* timing mark */ #define TELOPT_RCTE 7 /* remote controlled transmission and echo */ #define TELOPT_NAOL 8 /* negotiate about output line width */ #define TELOPT_NAOP 9 /* negotiate about output page size */ #define TELOPT_NAOCRD 10 /* negotiate about CR disposition */ #define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */ #define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */ #define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */ #define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */ #define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */ #define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */ #define TELOPT_XASCII 17 /* extended ascic character set */ #define TELOPT_LOGOUT 18 /* force logout */ #define TELOPT_BM 19 /* byte macro */ #define TELOPT_DET 20 /* data entry terminal */ #define TELOPT_SUPDUP 21 /* supdup protocol */ #define TELOPT_SUPDUPOUTPUT 22 /* supdup output */ #define TELOPT_SNDLOC 23 /* send location */ #define TELOPT_TTYPE 24 /* terminal type */ #define TELOPT_EOR 25 /* end or record */ #define TELOPT_TUID 26 /* TACACS user identification */ #define TELOPT_OUTMRK 27 /* output marking */ #define TELOPT_TTYLOC 28 /* terminal location number */ #define TELOPT_3270REGIME 29 /* 3270 regime */ #define TELOPT_X3PAD 30 /* X.3 PAD */ #define TELOPT_NAWS 31 /* window size */ #define TELOPT_TSPEED 32 /* terminal speed */ #define TELOPT_LFLOW 33 /* remote flow control */ #define TELOPT_LINEMODE 34 /* linemode option */ #define TELOPT_XDISPLOC 35 /* X Display Location */ #define TELOPT_OLD_ENVIRON 36 /* old - Environment variables */ #define TELOPT_AUTHENTICATION 37/* authenticate */ #define TELOPT_ENCRYPT 38 /* encryption option */ #define TELOPT_NEW_ENVIRON 39 /* new - environment variables */ #define TELOPT_TN3270E 40 /* extended 3270 regime */ #define TELOPT_EXOPL 255 /* extended-options-list */ #define NTELOPTS (1+TELOPT_TN3270E) #ifdef TELOPTS const char *telopts[NTELOPTS+1] = { "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME", "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP", "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS", "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO", "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT", "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD", "TACACS UID", "OUTPUT MARKING", "TTYLOC", "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW", "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION", "ENCRYPT", "NEW-ENVIRON", "TN3270E", 0 }; #define TELOPT_FIRST TELOPT_BINARY #define TELOPT_LAST TELOPT_TN3270E #define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST) #define TELOPT(x) telopts[(x)-TELOPT_FIRST] #endif /* sub-option qualifiers */ #define TELQUAL_IS 0 /* option is... */ #define TELQUAL_SEND 1 /* send option */ #endif /*!_arpa_telnet_h*/ ibm-3270-3.3.10ga4/ws3270/printer.c0000644000175000017500000004172111254565704015770 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * printer.c * Printer session support */ #include "globals.h" #if (defined(C3270) || defined(X3270_DISPLAY)) && defined(X3270_PRINTER) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #endif /*]*/ #if defined(_WIN32) /*[*/ #include "windows.h" #endif /*]*/ #include #include #include #include #include "3270ds.h" #include "appres.h" #include "objects.h" #include "resources.h" #include "ctlr.h" #include "charsetc.h" #include "ctlrc.h" #include "hostc.h" #include "menubarc.h" #include "popupsc.h" #include "printerc.h" #include "printc.h" #include "savec.h" #if defined(C3270) /*[*/ #include "screenc.h" #endif /*]*/ #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utilc.h" #include "w3miscc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #define PRINTER_BUF 1024 /* Statics */ static int printer_pid = -1; #if defined(_WIN32) /*[*/ static HANDLE printer_handle = NULL; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ static Widget lu_shell = (Widget)NULL; #endif /*]*/ static struct pr3o { int fd; /* file descriptor */ unsigned long input_id; /* input ID */ unsigned long timeout_id; /* timeout ID */ int count; /* input count */ char buf[PRINTER_BUF]; /* input buffer */ } printer_stdout = { -1, 0L, 0L, 0 }, printer_stderr = { -1, 0L, 0L, 0 }; #if !defined(_WIN32) /*[*/ static void printer_output(void); static void printer_error(void); static void printer_otimeout(void); static void printer_etimeout(void); static void printer_dump(struct pr3o *p, Boolean is_err, Boolean is_dead); #endif /*]*/ static void printer_host_connect(Boolean connected _is_unused); static void printer_exiting(Boolean b _is_unused); /* Globals */ /* * Printer initialization function. */ void printer_init(void) { /* Register interest in host connects and mode changes. */ register_schange(ST_CONNECT, printer_host_connect); register_schange(ST_3270_MODE, printer_host_connect); register_schange(ST_EXITING, printer_exiting); } /* * Printer Start-up function * If 'lu' is non-NULL, then use the specific-LU form. * If not, use the assoc form. */ void printer_start(const char *lu) { const char *cmdlineName; const char *cmdline; #if !defined(_WIN32) /*[*/ const char *cmd; #else /*][*/ const char *printerName; #endif /*]*/ int cmd_len = 0; const char *s; char *cmd_text; char c; char charset_cmd[256]; /* -charset */ char *proxy_cmd = CN; /* -proxy */ #if defined(_WIN32) /*[*/ char *pcp_res = CN; char *printercp = CN; /* -printercp */ STARTUPINFO startupinfo; PROCESS_INFORMATION process_information; char *subcommand; char *space; #else /*][*/ int stdout_pipe[2]; int stderr_pipe[2]; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* Make sure the popups are initted. */ printer_popup_init(); #endif /*]*/ /* Can't start two. */ if (printer_pid != -1) { popup_an_error("printer is already running"); return; } /* Gotta be in 3270 mode. */ if (!IN_3270) { popup_an_error("Not in 3270 mode"); return; } /* Select the command line to use. */ if (lu == CN) { /* Associate with the current session. */ /* Gotta be in TN3270E mode. */ if (!IN_TN3270E) { popup_an_error("Not in TN3270E mode"); return; } /* Gotta be connected to an LU. */ if (connected_lu == CN) { popup_an_error("Not connected to a specific LU"); return; } lu = connected_lu; cmdlineName = ResAssocCommand; } else { /* Specific LU passed in. */ cmdlineName = ResLuCommandLine; } /* Fetch the command line and command resources. */ cmdline = get_resource(cmdlineName); if (cmdline == CN) { popup_an_error("%s resource not defined", cmdlineName); return; } #if !defined(_WIN32) /*[*/ cmd = get_resource(ResPrinterCommand); if (cmd == CN) { popup_an_error(ResPrinterCommand " resource not defined"); return; } #else /*][*/ printerName = get_resource(ResPrinterName); #endif /*]*/ /* Construct the charset option. */ (void) sprintf(charset_cmd, "-charset %s", get_charset_name()); /* Construct proxy option. */ if (appres.proxy != CN) { #if !defined(_WIN32) /*[*/ proxy_cmd = xs_buffer("-proxy \"%s\"", appres.proxy); #else /*][ */ proxy_cmd = xs_buffer("-proxy %s", appres.proxy); #endif /*]*/ } #if defined(_WIN32) /*[*/ pcp_res = get_resource(ResPrinterCodepage); if (pcp_res) printercp = xs_buffer("-printercp %s", pcp_res); #endif /*]*/ /* Construct the command line. */ /* Figure out how long it will be. */ cmd_len = strlen(cmdline) + 1; s = cmdline; while ((s = strstr(s, "%L%")) != CN) { cmd_len += strlen(lu) - 3; s += 3; } s = cmdline; while ((s = strstr(s, "%H%")) != CN) { cmd_len += strlen(qualified_host) - 3; s += 3; } #if !defined(_WIN32) /*[*/ s = cmdline; while ((s = strstr(s, "%C%")) != CN) { cmd_len += strlen(cmd) - 3; s += 3; } #endif /*]*/ s = cmdline; while ((s = strstr(s, "%R%")) != CN) { cmd_len += strlen(charset_cmd) - 3; s += 3; } s = cmdline; while ((s = strstr(s, "%P%")) != CN) { cmd_len += (proxy_cmd? strlen(proxy_cmd): 0) - 3; s += 3; } #if defined(_WIN32) /*[*/ s = cmdline; while ((s = strstr(s, "%I%")) != CN) { cmd_len += (printercp? strlen(printercp): 0) - 3; s += 3; } #endif /*]*/ /* Allocate a string buffer and substitute into it. */ cmd_text = Malloc(cmd_len); cmd_text[0] = '\0'; for (s = cmdline; (c = *s) != '\0'; s++) { char buf1[2]; if (c == '%') { if (!strncmp(s+1, "L%", 2)) { (void) strcat(cmd_text, lu); s += 2; continue; } else if (!strncmp(s+1, "H%", 2)) { (void) strcat(cmd_text, qualified_host); s += 2; continue; #if !defined(_WIN32) /*[*/ } else if (!strncmp(s+1, "C%", 2)) { (void) strcat(cmd_text, cmd); s += 2; continue; #endif /*]*/ } else if (!strncmp(s+1, "R%", 2)) { (void) strcat(cmd_text, charset_cmd); s += 2; continue; } else if (!strncmp(s+1, "P%", 2)) { if (proxy_cmd != CN) (void) strcat(cmd_text, proxy_cmd); s += 2; continue; #if defined(_WIN32) /*[*/ } else if (!strncmp(s+1, "I%", 2)) { if (printercp != CN) (void) strcat(cmd_text, printercp); s += 2; continue; #endif /*]*/ } } buf1[0] = c; buf1[1] = '\0'; (void) strcat(cmd_text, buf1); } trace_dsn("Printer command line: %s\n", cmd_text); #if !defined(_WIN32) /*[*/ /* Make pipes for printer's stdout and stderr. */ if (pipe(stdout_pipe) < 0) { popup_an_errno(errno, "pipe() failed"); Free(cmd_text); if (proxy_cmd != CN) Free(proxy_cmd); return; } (void) fcntl(stdout_pipe[0], F_SETFD, 1); if (pipe(stderr_pipe) < 0) { popup_an_errno(errno, "pipe() failed"); (void) close(stdout_pipe[0]); (void) close(stdout_pipe[1]); Free(cmd_text); if (proxy_cmd != CN) Free(proxy_cmd); return; } (void) fcntl(stderr_pipe[0], F_SETFD, 1); /* Fork and exec the printer session. */ trace_dsn("Printer command line: %s\n", cmd_text); switch (printer_pid = fork()) { case 0: /* child process */ (void) dup2(stdout_pipe[1], 1); (void) close(stdout_pipe[1]); (void) dup2(stderr_pipe[1], 2); (void) close(stderr_pipe[1]); if (setsid() < 0) { perror("setsid"); _exit(1); } (void) execlp("/bin/sh", "sh", "-c", cmd_text, CN); (void) perror("exec(printer)"); _exit(1); default: /* parent process */ (void) close(stdout_pipe[1]); printer_stdout.fd = stdout_pipe[0]; (void) close(stderr_pipe[1]); printer_stderr.fd = stderr_pipe[0]; printer_stdout.input_id = AddInput(printer_stdout.fd, printer_output); printer_stderr.input_id = AddInput(printer_stderr.fd, printer_error); ++children; break; case -1: /* error */ popup_an_errno(errno, "fork()"); (void) close(stdout_pipe[0]); (void) close(stdout_pipe[1]); (void) close(stderr_pipe[0]); (void) close(stderr_pipe[1]); break; } #else /*][*/ /* Pass the command via the environment. */ if (printerName != NULL) { static char pn_buf[1024]; sprintf(pn_buf, "PRINTER=%s", printerName); putenv(pn_buf); } /* Create the wpr3287 process. */ (void) memset(&startupinfo, '\0', sizeof(STARTUPINFO)); startupinfo.cb = sizeof(STARTUPINFO); (void) memset(&process_information, '\0', sizeof(PROCESS_INFORMATION)); subcommand = NewString(cmd_text); strcpy(subcommand, cmd_text); space = strchr(subcommand, ' '); if (space) { *space = '\0'; } if (!strcasecmp(subcommand, "wpr3287.exe") || !strcasecmp(subcommand, "wpr3287")) { char *pc; pc = xs_buffer("%s%s", instdir, subcommand); Free(subcommand); subcommand = pc; if (space) pc = xs_buffer("\"%s\" %s", subcommand, space + 1); else pc = xs_buffer("\"%s%s\"", instdir, cmd_text); Free(cmd_text); cmd_text = pc; } trace_dsn("Printer command line: %s\n", cmd_text); if (CreateProcess( subcommand, cmd_text, NULL, NULL, FALSE, 0, /* creation flags */ NULL, NULL, &startupinfo, &process_information) == 0) { popup_an_error("CreateProcess(%s) failed: %s", subcommand, win32_strerror(GetLastError())); } printer_handle = process_information.hProcess; CloseHandle(process_information.hThread); printer_pid = process_information.dwProcessId; Free(subcommand); #endif /*]*/ Free(cmd_text); if (proxy_cmd != CN) Free(proxy_cmd); #if defined(_WIN32) /*[*/ if (printercp != CN) Free(printercp); #endif /*]*/ /* Tell everyone else. */ st_changed(ST_PRINTER, True); } #if !defined(_WIN32) /*[*/ /* There's data from the printer session. */ static void printer_data(struct pr3o *p, Boolean is_err) { int space; int nr; static char exitmsg[] = "Printer session exited"; /* Read whatever there is. */ space = PRINTER_BUF - p->count - 1; nr = read(p->fd, p->buf + p->count, space); /* Handle read errors and end-of-file. */ if (nr < 0) { popup_an_errno(errno, "printer session pipe input"); printer_stop(); return; } if (nr == 0) { if (printer_stderr.timeout_id != 0L) { /* * Append a termination error message to whatever the * printer process said, and pop it up. */ p = &printer_stderr; space = PRINTER_BUF - p->count - 1; if (p->count && *(p->buf + p->count - 1) != '\n') { *(p->buf + p->count) = '\n'; p->count++; space--; } (void) strncpy(p->buf + p->count, exitmsg, space); p->count += strlen(exitmsg); if (p->count >= PRINTER_BUF) p->count = PRINTER_BUF - 1; printer_dump(p, True, True); } else { popup_an_error("%s", exitmsg); } printer_stop(); return; } /* Add it to the buffer, and add a NULL. */ p->count += nr; p->buf[p->count] = '\0'; /* * If there's no more room in the buffer, dump it now. Otherwise, * give it a second to generate more output. */ if (p->count >= PRINTER_BUF - 1) { printer_dump(p, is_err, False); } else if (p->timeout_id == 0L) { p->timeout_id = AddTimeOut(1000, is_err? printer_etimeout: printer_otimeout); } } /* The printer process has some output for us. */ static void printer_output(void) { printer_data(&printer_stdout, False); } /* The printer process has some error output for us. */ static void printer_error(void) { printer_data(&printer_stderr, True); } /* Timeout from printer output or error output. */ static void printer_timeout(struct pr3o *p, Boolean is_err) { /* Forget the timeout ID. */ p->timeout_id = 0L; /* Dump the output. */ printer_dump(p, is_err, False); } /* Timeout from printer output. */ static void printer_otimeout(void) { printer_timeout(&printer_stdout, False); } /* Timeout from printer error output. */ static void printer_etimeout(void) { printer_timeout(&printer_stderr, True); } /* Dump pending printer process output. */ static void printer_dump(struct pr3o *p, Boolean is_err, Boolean is_dead) { if (p->count) { /* * Strip any trailing newline, and make sure the buffer is * NULL terminated. */ if (p->buf[p->count - 1] == '\n') p->buf[--(p->count)] = '\0'; else if (p->buf[p->count]) p->buf[p->count] = '\0'; /* Dump it and clear the buffer. */ #if defined(X3270_DISPLAY) /*[*/ popup_printer_output(is_err, is_dead? NULL: printer_stop, "%s", p->buf); #else /*][*/ action_output("%s", p->buf); #endif p->count = 0; } } #endif /*]*/ #if defined(_WIN32) /*[*/ /* Check for an exited printer session. */ void printer_check(void) { DWORD exit_code; if (printer_pid != -1 && GetExitCodeProcess(printer_handle, &exit_code) != 0 && exit_code != STILL_ACTIVE) { printer_pid = -1; CloseHandle(printer_handle); printer_handle = NULL; st_changed(ST_PRINTER, False); popup_an_error("Printer process exited with status %ld", exit_code); } } #endif /*]*/ /* Close the printer session. */ void printer_stop(void) { /* Remove inputs. */ if (printer_stdout.input_id) { RemoveInput(printer_stdout.input_id); printer_stdout.input_id = 0L; } if (printer_stderr.input_id) { RemoveInput(printer_stderr.input_id); printer_stderr.input_id = 0L; } /* Cancel timeouts. */ if (printer_stdout.timeout_id) { RemoveTimeOut(printer_stdout.timeout_id); printer_stdout.timeout_id = 0L; } if (printer_stderr.timeout_id) { RemoveTimeOut(printer_stderr.timeout_id); printer_stderr.timeout_id = 0L; } /* Clear buffers. */ printer_stdout.count = 0; printer_stderr.count = 0; /* Kill the process. */ if (printer_pid != -1) { #if !defined(_WIN32) /*[*/ (void) kill(-printer_pid, SIGTERM); #else /*][*/ TerminateProcess(printer_handle, 0); #endif /*]*/ printer_pid = -1; #if defined(_WIN32) /*[*/ printer_handle = NULL; #endif /*]*/ } /* Tell everyone else. */ st_changed(ST_PRINTER, False); } /* The emulator is exiting. Make sure the printer session is cleaned up. */ static void printer_exiting(Boolean b _is_unused) { printer_stop(); } #if defined(X3270_DISPLAY) /*[*/ /* Callback for "OK" button on printer specific-LU popup */ static void lu_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { char *lu; if (w) { lu = XawDialogGetValueString((Widget)client_data); if (lu == CN || *lu == '\0') { popup_an_error("Must supply an LU"); return; } else XtPopdown(lu_shell); } else lu = (char *)client_data; printer_start(lu); } #endif /*]*/ /* Host connect/disconnect/3270-mode event. */ static void printer_host_connect(Boolean connected _is_unused) { if (IN_3270) { char *printer_lu = appres.printer_lu; if (printer_lu != CN && !printer_running()) { if (!strcmp(printer_lu, ".")) { if (IN_TN3270E) { /* Associate with TN3270E session. */ trace_dsn("Starting associated printer " "session.\n"); printer_start(CN); } } else { /* Specific LU. */ trace_dsn("Starting %s printer session.\n", printer_lu); printer_start(printer_lu); } } else if (!IN_E && printer_lu != CN && !strcmp(printer_lu, ".") && printer_running()) { /* Stop an automatic associated printer. */ trace_dsn("Stopping printer session.\n"); printer_stop(); } } else if (printer_running()) { /* * We're no longer in 3270 mode, then we can no longer have a * printer session. This may cause some fireworks if there is * a print job pending when we do this, so some sort of awful * timeout may be needed. */ trace_dsn("Stopping printer session.\n"); printer_stop(); } } #if defined(X3270_DISPLAY) /*[*/ /* Pop up the LU dialog box. */ void printer_lu_dialog(void) { if (lu_shell == NULL) lu_shell = create_form_popup("printerLu", lu_callback, (XtCallbackProc)NULL, FORM_NO_WHITE); popup_popup(lu_shell, XtGrabExclusive); } #endif /*]*/ Boolean printer_running(void) { return printer_pid != -1; } #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/util.c0000644000175000017500000005021611256027015015247 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * util.c * Utility functions for x3270/c3270/s3270/tcl3270 */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include "resources.h" #include "charsetc.h" #include "utilc.h" #define my_isspace(c) isspace((unsigned char)c) /* * Cheesy internal version of sprintf that allocates its own memory. */ static char * xs_vsprintf(const char *fmt, va_list args) { char *r = CN; #if defined(HAVE_VASPRINTF) /*[*/ int nw; nw = vasprintf(&r, fmt, args); if (nw < 0 || r == CN) Error("Out of memory"); return r; #else /*][*/ char buf[16384]; int nc; nc = vsprintf(buf, fmt, args); if (nc > sizeof(buf)) Error("Internal buffer overflow"); r = Malloc(nc + 1); return strcpy(r, buf); #endif /*]*/ } /* * Common helper functions to insert strings, through a template, into a new * buffer. * 'format' is assumed to be a printf format string with '%s's in it. */ char * xs_buffer(const char *fmt, ...) { va_list args; char *r; va_start(args, fmt); r = xs_vsprintf(fmt, args); va_end(args); return r; } /* Common uses of xs_buffer. */ void xs_warning(const char *fmt, ...) { va_list args; char *r; va_start(args, fmt); r = xs_vsprintf(fmt, args); va_end(args); Warning(r); Free(r); } void xs_error(const char *fmt, ...) { va_list args; char *r; va_start(args, fmt); r = xs_vsprintf(fmt, args); va_end(args); Error(r); Free(r); } /* Prettyprinter for strings with unprintable data. */ void fcatv(FILE *f, char *s) { char c; while ((c = *s++)) { switch (c) { case '\n': (void) fprintf(f, "\\n"); break; case '\t': (void) fprintf(f, "\\t"); break; case '\b': (void) fprintf(f, "\\b"); break; default: if ((c & 0x7f) < ' ') (void) fprintf(f, "\\%03o", c & 0xff); else fputc(c, f); break; } } } /* String version of fcatv. */ char * scatv(const char *s, char *buf, size_t len) { char c; char *dst = buf; while ((c = *s++) && len > 0) { char cbuf[5]; char *t = cbuf; /* Expand this character. */ switch (c) { case '\n': (void) strcpy(cbuf, "\\n"); break; case '\t': (void) strcpy(cbuf, "\\t"); break; case '\b': (void) strcpy(cbuf, "\\b"); break; default: if ((c & 0x7f) < ' ') (void) sprintf(cbuf, "\\%03o", c & 0xff); else { cbuf[0] = c; cbuf[1] = '\0'; } break; } /* Copy as much as will fit. */ while ((c = *t++) && len > 0) { *dst++ = c; len--; } } if (len > 0) *dst = '\0'; return buf; } /* * Definition resource splitter, for resources of the repeating form: * left: right\n * * Can be called iteratively to parse a list. * Returns 1 for success, 0 for EOF, -1 for error. * * Note: Modifies the input string. */ int split_dresource(char **st, char **left, char **right) { char *s = *st; char *t; Boolean quote; /* Skip leading white space. */ while (my_isspace(*s)) s++; /* If nothing left, EOF. */ if (!*s) return 0; /* There must be a left-hand side. */ if (*s == ':') return -1; /* Scan until an unquoted colon is found. */ *left = s; for (; *s && *s != ':' && *s != '\n'; s++) if (*s == '\\' && *(s+1) == ':') s++; if (*s != ':') return -1; /* Stip white space before the colon. */ for (t = s-1; my_isspace(*t); t--) *t = '\0'; /* Terminate the left-hand side. */ *(s++) = '\0'; /* Skip white space after the colon. */ while (*s != '\n' && my_isspace(*s)) s++; /* There must be a right-hand side. */ if (!*s || *s == '\n') return -1; /* Scan until an unquoted newline is found. */ *right = s; quote = False; for (; *s; s++) { if (*s == '\\' && *(s+1) == '"') s++; else if (*s == '"') quote = !quote; else if (!quote && *s == '\n') break; } /* Strip white space before the newline. */ if (*s) { t = s; *st = s+1; } else { t = s-1; *st = s; } while (my_isspace(*t)) *t-- = '\0'; /* Done. */ return 1; } /* * Split a DBCS resource into its parts. * Returns the number of parts found: * -1 error (empty sub-field) * 0 nothing found * 1 one and just one thing found * 2 two things found * 3 more than two things found */ int split_dbcs_resource(const char *value, char sep, char **part1, char **part2) { int n_parts = 0; const char *s = value; const char *f_start = CN; /* start of sub-field */ const char *f_end = CN; /* end of sub-field */ char c; char **rp; *part1 = CN; *part2 = CN; for( ; ; ) { c = *s; if (c == sep || c == '\0') { if (f_start == CN) return -1; if (f_end == CN) f_end = s; if (f_end == f_start) { if (c == sep) { if (*part1) { Free(*part1); *part1 = NULL; } if (*part2) { Free(*part2); *part2 = NULL; } return -1; } else return n_parts; } switch (n_parts) { case 0: rp = part1; break; case 1: rp = part2; break; default: return 3; } *rp = Malloc(f_end - f_start + 1); strncpy(*rp, f_start, f_end - f_start); (*rp)[f_end - f_start] = '\0'; f_end = CN; f_start = CN; n_parts++; if (c == '\0') return n_parts; } else if (isspace(c)) { if (f_end == CN) f_end = s; } else { if (f_start == CN) f_start = s; f_end = CN; } s++; } } #if defined(X3270_DISPLAY) /*[*/ /* * List resource splitter, for lists of elements speparated by newlines. * * Can be called iteratively. * Returns 1 for success, 0 for EOF, -1 for error. */ int split_lresource(char **st, char **value) { char *s = *st; char *t; Boolean quote; /* Skip leading white space. */ while (my_isspace(*s)) s++; /* If nothing left, EOF. */ if (!*s) return 0; /* Save starting point. */ *value = s; /* Scan until an unquoted newline is found. */ quote = False; for (; *s; s++) { if (*s == '\\' && *(s+1) == '"') s++; else if (*s == '"') quote = !quote; else if (!quote && *s == '\n') break; } /* Strip white space before the newline. */ if (*s) { t = s; *st = s+1; } else { t = s-1; *st = s; } while (my_isspace(*t)) *t-- = '\0'; /* Done. */ return 1; } #endif /*]*/ const char * get_message(const char *key) { static char namebuf[128]; char *r; (void) sprintf(namebuf, "%s.%s", ResMessage, key); if ((r = get_resource(namebuf)) != CN) return r; else { (void) sprintf(namebuf, "[missing \"%s\" message]", key); return namebuf; } } #define ex_getenv getenv /* Variable and tilde substitution functions. */ static char * var_subst(const char *s) { enum { VS_BASE, VS_QUOTE, VS_DOLLAR, VS_BRACE, VS_VN, VS_VNB, VS_EOF } state = VS_BASE; char c; int o_len = strlen(s) + 1; char *ob; char *o; const char *vn_start = CN; if (strchr(s, '$') == CN) return NewString(s); o_len = strlen(s) + 1; ob = Malloc(o_len); o = ob; # define LBR '{' # define RBR '}' while (state != VS_EOF) { c = *s; switch (state) { case VS_BASE: if (c == '\\') state = VS_QUOTE; else if (c == '$') state = VS_DOLLAR; else *o++ = c; break; case VS_QUOTE: if (c == '$') { *o++ = c; o_len--; } else { *o++ = '\\'; *o++ = c; } state = VS_BASE; break; case VS_DOLLAR: if (c == LBR) state = VS_BRACE; else if (isalpha(c) || c == '_') { vn_start = s; state = VS_VN; } else { *o++ = '$'; *o++ = c; state = VS_BASE; } break; case VS_BRACE: if (isalpha(c) || c == '_') { vn_start = s; state = VS_VNB; } else { *o++ = '$'; *o++ = LBR; *o++ = c; state = VS_BASE; } break; case VS_VN: case VS_VNB: if (!(isalnum(c) || c == '_')) { int vn_len; char *vn; char *vv; vn_len = s - vn_start; if (state == VS_VNB && c != RBR) { *o++ = '$'; *o++ = LBR; (void) strncpy(o, vn_start, vn_len); o += vn_len; state = VS_BASE; continue; /* rescan */ } vn = Malloc(vn_len + 1); (void) strncpy(vn, vn_start, vn_len); vn[vn_len] = '\0'; if ((vv = ex_getenv(vn))) { *o = '\0'; o_len = o_len - 1 /* '$' */ - (state == VS_VNB) /* { */ - vn_len /* name */ - (state == VS_VNB) /* } */ + strlen(vv); ob = Realloc(ob, o_len); o = strchr(ob, '\0'); (void) strcpy(o, vv); o += strlen(vv); } Free(vn); if (state == VS_VNB) { state = VS_BASE; break; } else { /* Rescan this character */ state = VS_BASE; continue; } } break; case VS_EOF: break; } s++; if (c == '\0') state = VS_EOF; } return ob; } #if !defined(_WIN32) /*[*/ /* * Do tilde (home directory) substitution on a string. Returns a malloc'd * result. */ static char * tilde_subst(const char *s) { char *slash; const char *name; const char *rest; struct passwd *p; char *r; char *mname = CN; /* Does it start with a "~"? */ if (*s != '~') return NewString(s); /* Terminate with "/". */ slash = strchr(s, '/'); if (slash) { int len = slash - s; mname = Malloc(len + 1); (void) strncpy(mname, s, len); mname[len] = '\0'; name = mname; rest = slash; } else { name = s; rest = strchr(name, '\0'); } /* Look it up. */ if (!strcmp(name, "~")) /* this user */ p = getpwuid(getuid()); else /* somebody else */ p = getpwnam(name + 1); /* Free any temporary copy. */ Free(mname); /* Substitute and return. */ if (p == (struct passwd *)NULL) r = NewString(s); else { r = Malloc(strlen(p->pw_dir) + strlen(rest) + 1); (void) strcpy(r, p->pw_dir); (void) strcat(r, rest); } return r; } #endif /*]*/ char * do_subst(const char *s, Boolean do_vars, Boolean do_tilde) { if (!do_vars && !do_tilde) return NewString(s); if (do_vars) { char *t; t = var_subst(s); #if !defined(_WIN32) /*[*/ if (do_tilde) { char *u; u = tilde_subst(t); Free(t); return u; } #endif /*]*/ return t; } #if !defined(_WIN32) /*[*/ return tilde_subst(s); #else /*][*/ return NewString(s); #endif /*]*/ } /* * ctl_see * Expands a character in the manner of "cat -v". */ char * ctl_see(int c) { static char buf[64]; char *p = buf; c &= 0xff; if ((c & 0x80) && (c <= 0xa0)) { *p++ = 'M'; *p++ = '-'; c &= 0x7f; } if (c >= ' ' && c != 0x7f) { *p++ = c; } else { *p++ = '^'; if (c == 0x7f) { *p++ = '?'; } else { *p++ = c + '@'; } } *p = '\0'; return buf; } /* A version of get_resource that accepts sprintf arguments. */ char * get_fresource(const char *fmt, ...) { va_list args; char *name; char *r; va_start(args, fmt); name = xs_vsprintf(fmt, args); va_end(args); r = get_resource(name); Free(name); return r; } /* * Whitespace stripper. */ char * strip_whitespace(const char *s) { char *t = NewString(s); while (*t && my_isspace(*t)) t++; if (*t) { char *u = t + strlen(t) - 1; while (my_isspace(*u)) { *u-- = '\0'; } } return t; } /* * Hierarchy (a>b>c) splitter. */ Boolean split_hier(char *label, char **base, char ***parents) { int n_parents = 0; char *gt; char *lp; label = NewString(label); for (lp = label; (gt = strchr(lp, '>')) != CN; lp = gt + 1) { if (gt == lp) return False; n_parents++; } if (!*lp) return False; if (n_parents) { *parents = (char **)Calloc(n_parents + 1, sizeof(char *)); for (n_parents = 0, lp = label; (gt = strchr(lp, '>')) != CN; lp = gt + 1) { (*parents)[n_parents++] = lp; *gt = '\0'; } *base = lp; } else { (*parents) = NULL; (*base) = label; } return True; } /* * Incremental, reallocing version of snprintf. */ #define RPF_BLKSIZE 4096 #define SP_TMP_LEN 16384 /* Initialize an RPF structure. */ void rpf_init(rpf_t *r) { r->buf = NULL; r->alloc_len = 0; r->cur_len = 0; } /* Reset an initialized RPF structure (re-use with length 0). */ void rpf_reset(rpf_t *r) { r->cur_len = 0; } /* Append a string to a dynamically-allocated buffer. */ void rpf(rpf_t *r, char *fmt, ...) { va_list a; Boolean need_realloc = False; int ns; char tbuf[SP_TMP_LEN]; /* Figure out how much space would be needed. */ va_start(a, fmt); ns = vsprintf(tbuf, fmt, a); /* XXX: dangerous, but so is vsnprintf */ va_end(a); if (ns >= SP_TMP_LEN) Error("rpf overrun"); /* Make sure we have that. */ while (r->alloc_len - r->cur_len < ns + 1) { r->alloc_len += RPF_BLKSIZE; need_realloc = True; } if (need_realloc) { r->buf = Realloc(r->buf, r->alloc_len); } /* Scribble onto the end of that. */ (void) strcpy(r->buf + r->cur_len, tbuf); r->cur_len += ns; } /* Free resources associated with an RPF. */ void rpf_free(rpf_t *r) { Free(r->buf); r->buf = NULL; r->alloc_len = 0; r->cur_len = 0; } #if defined(X3270_DISPLAY) /*[*/ /* Glue between x3270 and the X libraries. */ /* * A way to work around problems with Xt resources. It seems to be impossible * to get arbitrarily named resources. Someday this should be hacked to * add classes too. */ char * get_resource(const char *name) { XrmValue value; char *type; char *str; char *r = CN; str = xs_buffer("%s.%s", XtName(toplevel), name); if ((XrmGetResource(rdb, str, 0, &type, &value) == True) && *value.addr) r = value.addr; XtFree(str); return r; } /* * Input callbacks. */ typedef void voidfn(void); typedef struct iorec { voidfn *fn; XtInputId id; struct iorec *next; } iorec_t; static iorec_t *iorecs = NULL; static void io_fn(XtPointer closure, int *source _is_unused, XtInputId *id) { iorec_t *iorec; for (iorec = iorecs; iorec != NULL; iorec = iorec->next) { if (iorec->id == *id) { (*iorec->fn)(); break; } } } unsigned long AddInput(int sock, voidfn *fn) { iorec_t *iorec; iorec = (iorec_t *)XtMalloc(sizeof(iorec_t)); iorec->fn = fn; iorec->id = XtAppAddInput(appcontext, sock, (XtPointer) XtInputReadMask, io_fn, NULL); iorec->next = iorecs; iorecs = iorec; return iorec->id; } unsigned long AddExcept(int sock, voidfn *fn) { iorec_t *iorec; iorec = (iorec_t *)XtMalloc(sizeof(iorec_t)); iorec->fn = fn; iorec->id = XtAppAddInput(appcontext, sock, (XtPointer) XtInputExceptMask, io_fn, NULL); iorec->next = iorecs; iorecs = iorec; return iorec->id; } unsigned long AddOutput(int sock, voidfn *fn) { iorec_t *iorec; iorec = (iorec_t *)XtMalloc(sizeof(iorec_t)); iorec->fn = fn; iorec->id = XtAppAddInput(appcontext, sock, (XtPointer) XtInputWriteMask, io_fn, NULL); iorec->next = iorecs; iorecs = iorec; return iorec->id; } void RemoveInput(unsigned long cookie) { iorec_t *iorec; iorec_t *prev = NULL; for (iorec = iorecs; iorec != NULL; iorec = iorec->next) { if (iorec->id == (XtInputId)cookie) { break; } prev = iorec; } if (iorec != NULL) { XtRemoveInput((XtInputId)cookie); if (prev != NULL) prev->next = iorec->next; else iorecs = iorec->next; XtFree((XtPointer)iorec); } } /* * Timer callbacks. */ typedef struct torec { voidfn *fn; XtIntervalId id; struct torec *next; } torec_t; static torec_t *torecs = NULL; static void to_fn(XtPointer closure, XtIntervalId *id) { torec_t *torec; torec_t *prev = NULL; voidfn *fn = NULL; for (torec = torecs; torec != NULL; torec = torec->next) { if (torec->id == *id) { break; } prev = torec; } if (torec != NULL) { /* Remember the record. */ fn = torec->fn; /* Free the record. */ if (prev != NULL) prev->next = torec->next; else torecs = torec->next; XtFree((XtPointer)torec); /* Call the function. */ (*fn)(); } } unsigned long AddTimeOut(unsigned long msec, voidfn *fn) { torec_t *torec; torec = (torec_t *)XtMalloc(sizeof(torec_t)); torec->fn = fn; torec->id = XtAppAddTimeOut(appcontext, msec, to_fn, NULL); torec->next = torecs; torecs = torec; return (unsigned long)torec->id; } void RemoveTimeOut(unsigned long cookie) { torec_t *torec; torec_t *prev = NULL; for (torec = torecs; torec != NULL; torec = torec->next) { if (torec->id == (XtIntervalId)cookie) { break; } prev = torec; } if (torec != NULL) { XtRemoveTimeOut((XtIntervalId)cookie); if (prev != NULL) prev->next = torec->next; else torecs = torec->next; XtFree((XtPointer)torec); } else { Error("RemoveTimeOut: Can't find"); } } KeySym StringToKeysym(char *s) { return XStringToKeysym(s); } #endif /*]*/ /* Return configuration options. */ const char * build_options(void) { return "Build options:" #if defined(X3270_ANSI) /*[*/ " --enable-ansi" #else /*][*/ " --disable-ansi" #endif /*]*/ #if defined(X3270_APL) /*[*/ " --enable-apl" #else /*][*/ " --disable-apl" #endif /*]*/ #if defined(X3270_DBCS) /*[*/ " --enable-dbcs" #else /*][*/ " --disable-dbcs" #endif /*]*/ #if defined(X3270_FT) /*[*/ " --enable-ft" #else /*][*/ " --disable-ft" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ # if defined(X3270_KEYPAD) /*[*/ " --enable-keypad" # else /*][*/ " --disable-keypad" # endif /*]*/ #endif /*]*/ #if defined(X3270_LOCAL_PROCESS) /*[*/ " --enable-local-process" #else /*][*/ " --disable-local-process" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ # if defined(X3270_MENUS) /*[*/ " --enable-menus" # else /*][*/ " --disable-menus" # endif /*]*/ #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_PRINTER) /*[*/ " --enable-printer" # else /*][*/ " --disable-printer" # endif /*]*/ #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_SCRIPT) /*[*/ " --enable-script" # else /*][*/ " --disable-script" # endif /*]*/ #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ " --enable-tn3270e" #else /*][*/ " --disable-tn3270e" #endif /*]*/ #if defined(X3270_TRACE) /*[*/ " --enable-trace" #else /*][*/ " --disable-trace" #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ " --with-ssl" #else /*][*/ " --without-ssl" #endif /*]*/ #if defined(C3270) /*[*/ # if defined(HAVE_LIBREADLINE) /*[*/ " --with-readline" # else /*][*/ " --without-readline" # endif /*]*/ # if !defined(_WIN32) /*[*/ # if defined(CURSES_WIDE) /*[*/ " --with-curses-wide" # else /*][*/ " --without-curses-wide" # endif /*]*/ # endif /*]*/ #endif /*]*/ #if defined(USE_ICONV) /*[*/ " --with-iconv" #endif /*]*/ ; } void dump_version(void) { printf("%s\n%s\n", build, build_options()); charset_list(); printf("\n" "Copyright 1989-2009, Paul Mattes, GTRC and others.\n" "See the source code or documentation for licensing details.\n" "Distributed WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); exit(0); } /* Scale a number for display. */ const char * display_scale(double d, char *buf, size_t buflen) { if (d >= 1000000.0) snprintf(buf, buflen, "%.3g M", d / 1000000.0); else if (d >= 1000.0) snprintf(buf, buflen, "%.3g K", d / 1000.0); else snprintf(buf, buflen, "%.3g ", d); /* Don't trust snprintf. */ buf[buflen - 1] = '\0'; return buf; } ibm-3270-3.3.10ga4/ws3270/ft_cutc.h0000644000175000017500000000304511254565704015736 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ extern void ft_cut_data(void); ibm-3270-3.3.10ga4/ws3270/Msc/0000755000175000017500000000000011261530022014635 5ustar bastianbastianibm-3270-3.3.10ga4/ws3270/Msc/Makefile0000755000175000017500000001236511254565672016334 0ustar bastianbastian# Copyright (c) 2007-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # nmake Makefile for ws3270 # Set command paths. MKFB = mkfb.exe CC = cl /nologo RC = rc RM = erase # To build with a statically-linked OpenSSL library, uncomment the following # three lines (substituting your OpenSSL install location in the first). #SSLDIR = C:\where\openssl\is\installed #SSLDEF = /DHAVE_LIBSSL=1 /I$(SSLDIR)\include #SSLLIB = $(SSLDIR)\lib\ssleay32.lib $(SSLDIR)\lib\libeay32.lib gdi32.lib XCPPFLAGS = /D_WIN32 /DWS3270 /D_WIN32_WINNT=0x0500 /D_WIN32_IE=0x0500 /D_CRT_SECURE_NO_DEPRECATE /DWIN32_LEAN_AND_MEAN $(SSLDEF) CFLAGS = $(EXTRA_FLAGS) $(XCPPFLAGS) -I. VOBJS = XtGlue.obj actions.obj ansi.obj apl.obj charset.obj ctlr.obj \ fallbacks.obj ft.obj ft_cut.obj ft_dft.obj glue.obj host.obj idle.obj \ kybd.obj macros.obj print.obj printer.obj proxy.obj readres.obj \ resolver.obj resources.obj rpq.obj see.obj sf.obj smain.obj \ tables.obj telnet.obj toggles.obj trace_ds.obj unicode.obj \ unicode_dbcs.obj utf8.obj util.obj xio.obj w3misc.obj winvers.obj \ windirs.obj ws3270.RES OBJECTS = $(VOBJS) version.obj LIBS = $(SSLLIB) ws2_32.lib advapi32.lib user32.lib SHRTLIBS = ole32.lib WIZLIBS = ole32.lib winspool.lib advapi32.lib PROGS = ws3270.exe all: $(PROGS) version.obj: $(VOBJS) version.txt mkversion.exe Msc\Makefile mkversion.exe $(CC) $(CFLAGS) /c version.c mkversion.exe: Msc\mkversion.c $(CC) $(CFLAGS) /Fe$@ Msc\mkversion.c fallbacks.c: $(MKFB) X3270.xad Msc\Makefile $(MKFB) -c X3270.xad $@ fallbacks.obj: fallbacks.c $(CC) $(CFLAGS) /c fallbacks.c $(MKFB): mkfb.c Msc\Makefile $(CC) /Fe$(MKFB) /D_WIN32 /D_CRT_SECURE_NO_DEPRECATE mkfb.c ws3270.RES: ws3270.rc ws3270.ico Msc\Makefile $(RC) ws3270.rc ws3270.exe: $(OBJECTS) Msc\Makefile $(CC) /Fews3270.exe $(CFLAGS) $(OBJECTS) $(LIBS) wversion.obj: version.txt mkversion.exe mkversion.exe -w $(CC) $(CFLAGS) /c wversion.c clean: erase *.obj *.RES *.exp *.lib $(MKFB) fallbacks.c mkversion.exe version.c wversion.c clobber: clean erase $(PROGS) XtGlue.obj: XtGlue.c $(CC) $(CFLAGS) /c XtGlue.c actions.obj: actions.c $(CC) $(CFLAGS) /c actions.c ansi.obj: ansi.c $(CC) $(CFLAGS) /c ansi.c apl.obj: apl.c $(CC) $(CFLAGS) /c apl.c charset.obj: charset.c $(CC) $(CFLAGS) /c charset.c ctlr.obj: ctlr.c $(CC) $(CFLAGS) /c ctlr.c ft.obj: ft.c $(CC) $(CFLAGS) /c ft.c ft_cut.obj: ft.c $(CC) $(CFLAGS) /c ft_cut.c ft_dft.obj: ft_dft.c $(CC) $(CFLAGS) /c ft_dft.c glue.obj: glue.c $(CC) $(CFLAGS) /c glue.c host.obj: host.c $(CC) $(CFLAGS) /c host.c idle.obj: idle.c $(CC) $(CFLAGS) /c idle.c kybd.obj: kybd.c $(CC) $(CFLAGS) /c kybd.c macros.obj: macros.c $(CC) $(CFLAGS) /c macros.c print.obj: print.c $(CC) $(CFLAGS) /c print.c printer.obj: printer.c $(CC) $(CFLAGS) /c printer.c proxy.obj: proxy.c $(CC) $(CFLAGS) /c proxy.c readres.obj: readres.c $(CC) $(CFLAGS) /c readres.c resolver.obj: resolver.c $(CC) $(CFLAGS) /c resolver.c resources.obj: resources.c $(CC) $(CFLAGS) /c resources.c rpq.obj: rpq.c $(CC) $(CFLAGS) /c rpq.c see.obj: see.c $(CC) $(CFLAGS) /c see.c sf.obj: sf.c $(CC) $(CFLAGS) /c sf.c smain.obj: smain.c $(CC) $(CFLAGS) /c smain.c tables.obj: tables.c $(CC) $(CFLAGS) /c tables.c telnet.obj: telnet.c $(CC) $(CFLAGS) /c telnet.c toggles.obj: toggles.c $(CC) $(CFLAGS) /c toggles.c trace_ds.obj: trace_ds.c $(CC) $(CFLAGS) /c trace_ds.c unicode.obj: unicode.c $(CC) $(CFLAGS) /c unicode.c unicode_dbcs.obj: unicode_dbcs.c $(CC) $(CFLAGS) /c unicode_dbcs.c utf8.obj: utf8.c $(CC) $(CFLAGS) /c utf8.c util.obj: util.c $(CC) $(CFLAGS) /c util.c xio.obj: xio.c $(CC) $(CFLAGS) /c xio.c winvers.obj: winvers.c $(CC) $(CFLAGS) /c winvers.c windirs.obj: windirs.c $(CC) $(CFLAGS) /c windirs.c mkshort.obj: mkshort.c $(CC) $(CFLAGS) /c mkshort.c shortcut.obj: shortcut.c $(CC) $(CFLAGS) /c shortcut.c wizard.obj: wizard.c $(CC) $(CFLAGS) /c wizard.c w3misc.obj: w3misc.c $(CC) $(CFLAGS) /c w3misc.c ibm-3270-3.3.10ga4/ws3270/Msc/deprecated.h0000644000175000017500000000342311254565675017140 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * Redefinitions of POSIX functions that MSC doesn't like the names of. */ #define close _close #define fdopen _fdopen #define fileno _fileno #define getcwd _getcwd #define open _open #define putenv _putenv #define snprintf _snprintf #define unlink _unlink ibm-3270-3.3.10ga4/ws3270/Msc/mkversion.c0000755000175000017500000001172711254565675017061 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * This program is a C-language encapsulation of all but the last line of: * * #! /bin/sh * # Create version.o from version.txt * * # Ensure that 'date' emits 7-bit U.S. ASCII. * LANG=C * LC_ALL=C * export LANG LC_ALL * * set -e * * . ./version.txt * builddate=`date` * sccsdate=`date +%Y/%m/%d` * user=${LOGNAME-$USER} * * # Create an all numeric timestamp for rpqnames. * # rpq.c will return this string of numbers in bcd format * # It is OK to change the length (+ or -), but use * # decimal (0-9) digits only. Length must be even number of digits. * rpq_timestamp=`date +%Y%m%d%H%M%S` * * trap 'rm -f version.c' 0 1 2 15 * * cat <version.c * char *build = "${2-x3270} v$version $builddate $user"; * char *app_defaults_version = "$adversion"; * static char sccsid[] = "@(#)${2-x3270} v$version $sccsdate $user"; * * const char *build_rpq_timestamp = "$rpq_timestamp"; * const char *build_rpq_version = "$version"; * EOF */ #include #include #include #include static char * NewString(char *s) { char *t = malloc(strlen(s) + 1); if (t == NULL) { fprintf(stderr, "out of memory\n"); exit(1); } return strcpy(t, s); } int main(int argc, char *argv[]) { FILE *f; char buf[1024]; char *version = NULL; char *adversion = NULL; char *user; __time64_t t; char *builddate; struct tm *tm; char sccsdate[128]; char rpqtime[128]; int is_w = 0; char *ofile = "version.c"; char *progname = "wc3270"; if (argc > 1 && !strcmp(argv[1], "-w")) { is_w = 1; ofile = "wversion.c"; argv++; argc--; } if (argc > 1) progname = argv[1]; /* Read up version.txt. */ f = fopen("version.txt", "r"); if (f == NULL) { perror("version.txt"); return 1; } while (fgets(buf, sizeof(buf), f) != NULL) { if (!strncmp(buf, "version=\"", 9)) { char *q; version = NewString(buf + 9); q = strchr(version, '"'); if (q == NULL) { fprintf(stderr, "syntax error in version.txt\n"); return 1; } *q = '\0'; } else if (!strncmp(buf, "adversion=\"", 11)) { char *q; adversion = NewString(buf + 11); q = strchr(adversion, '"'); if (q == NULL) { fprintf(stderr, "syntax error in version.txt\n"); return 1; } *q = '\0'; } } fclose(f); if (version == NULL || adversion == NULL) { fprintf(stderr, "missing version= or adversion= in version.txt\n"); return 1; } /* Grab the username. */ user = getenv("USERNAME"); if (user == NULL) { fprintf(stderr, "No %USERNAME%?\n"); return 1; } /* Format the dates. */ _time64(&t); builddate = NewString(_ctime64(&t)); builddate[strlen(builddate) - 1] = '\0'; tm = _localtime64(&t); sprintf(sccsdate, "%d/%02d/%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday); sprintf(rpqtime, "%02d%02d%02d%02d%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); /* Create the code. */ f = fopen(ofile, "w"); if (f == NULL) { perror(ofile); return 1; } if (is_w) { fprintf(f, "char *wversion = \"%s\";\n", version); } else { fprintf(f, "char *build = \"%s v%s %s %s\";\n", progname, version, builddate, user); fprintf(f, "char *app_defaults_version = \"%s\";\n", adversion); fprintf(f, "static char sccsid[] = \"@(#)%s v%s %s %s\";\n", progname, version, sccsdate, user); fprintf(f, "const char *build_rpq_timestamp = \"%s\";\n", rpqtime); fprintf(f, "const char *build_rpq_version = \"%s\";\n", version); } fclose(f); return 0; } ibm-3270-3.3.10ga4/ws3270/Msc/README.txt0000644000175000017500000000123411254565672016360 0ustar bastianbastianThis directory contains files needed to build ws3270 with command-line Microsoft tools: Makefile Makefile for nmake. To use this Makefile, cd to the directory above this one and run: nmake /f Msc\Makefile mkversion.c C-language replacement for mkversion.sh and mkwversion.sh. deprecated.h #defines to work around some MS-deprecated POSIX function names. Official releases of ws3270 are built and tested with MinGW, not the Microsoft tools. These files are provided as-is, with no guarantee that the resulting executables and DLLs will function properly. Also note that the resulting executable will not include SSL support. ibm-3270-3.3.10ga4/ws3270/apl.c0000644000175000017500000001647611254565704015072 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * apl.c * This module handles APL-specific actions. */ #include "globals.h" #if defined(X3270_APL) /*[*/ #include #include "aplc.h" /* * APL keysym translation. * * This code looks a little odd because of how an APL font is implemented. * An APL font has APL graphics in place of the various accented letters and * special symbols in a regular font. APL keysym translation consists of * taking the keysym name for an APL symbol (these names are meaningful only to * x3270) and translating it into the keysym for the regular symbol that the * desired APL symbol _replaces_. * * For example, an APL font has the APL "jot" symbol where a regular font has * the "registered" symbol. So we take the keysym name "jot" and translate it * into the keysym XK_registered. When the XK_registered symbol is displayed * with an APL font, it appears as a "jot". * * The specification of which APL symbols replace which regular symbols is in * IBM GA27-3831, 3174 Establishment Controller Character Set Reference. * * In addition, several standard characters have different names for APL, * for example, "period" becomes "dot". These are included in the table as * well. */ static struct { const char *name; KeySym keysym; int is_ge; } axl[] = { { "Aunderbar", XK_nobreakspace, 1 }, { "Bunderbar", XK_acircumflex, 1 }, { "Cunderbar", XK_adiaeresis, 1 }, { "Dunderbar", XK_agrave, 1 }, { "Eunderbar", XK_aacute, 1 }, { "Funderbar", XK_atilde, 1 }, { "Gunderbar", XK_aring, 1 }, { "Hunderbar", XK_ccedilla, 1 }, { "Iunderbar", XK_ntilde, 1 }, { "Junderbar", XK_eacute, 1 }, { "Kunderbar", XK_ecircumflex, 1 }, { "Lunderbar", XK_ediaeresis, 1 }, { "Munderbar", XK_egrave, 1 }, { "Nunderbar", XK_iacute, 1 }, { "Ounderbar", XK_icircumflex, 1 }, { "Punderbar", XK_idiaeresis, 1 }, { "Qunderbar", XK_igrave, 1 }, { "Runderbar", XK_ssharp, 1 }, { "Sunderbar", XK_Acircumflex, 1 }, { "Tunderbar", XK_Adiaeresis, 1 }, { "Uunderbar", XK_Agrave, 1 }, { "Vunderbar", XK_Aacute, 1 }, { "Wunderbar", XK_Atilde, 1 }, { "Xunderbar", XK_Aring, 1 }, { "Yunderbar", XK_Ccedilla, 1 }, { "Zunderbar", XK_Ntilde, 1 }, { "alpha", XK_asciicircum, 1 }, { "bar", XK_minus, 0 }, { "braceleft", XK_braceleft, 1 }, { "braceright", XK_braceright, 1 }, { "bracketleft", XK_Yacute, 1 }, { "bracketright", XK_diaeresis, 1 }, { "circle", XK_cedilla, 1 }, { "circlebar", XK_Ograve, 1 }, { "circleslope", XK_otilde, 1 }, { "circlestar", XK_Ugrave, 1 }, { "circlestile", XK_ograve, 1 }, { "colon", XK_colon, 0 }, { "comma", XK_comma, 0 }, { "commabar", XK_W, 1 }, /* soliton */ { "del", XK_bracketleft, 1 }, { "delstile", XK_udiaeresis, 1 }, { "delta", XK_bracketright, 1 }, { "deltastile", XK_ugrave, 1 }, { "deltaunderbar", XK_Udiaeresis, 1 }, { "deltilde", XK_Ucircumflex, 1 }, { "diaeresis", XK_Ecircumflex, 1 }, { "diaeresiscircle", XK_V, 1 }, /* soliton */ { "diaeresisdot", XK_Odiaeresis, 1 }, { "diaeresisjot", XK_U, 1 }, /* soliton */ { "diamond", XK_oslash, 1 }, { "dieresis", XK_Ecircumflex, 1 }, { "dieresisdot", XK_Odiaeresis, 1 }, { "divide", XK_onehalf, 1 }, { "dot", XK_period, 0 }, { "downarrow", XK_guillemotright, 1 }, { "downcaret", XK_Igrave, 1 }, { "downcarettilde", XK_ocircumflex, 1 }, { "downshoe", XK_questiondown, 1 }, { "downstile", XK_thorn, 1 }, { "downtack", XK_ETH, 1 }, { "downtackjot", XK_Uacute, 1 }, { "downtackup", XK_onesuperior, 1 }, { "downtackuptack", XK_onesuperior, 1 }, { "epsilon", XK_sterling, 1 }, { "epsilonunderbar", XK_Iacute, 1 }, { "equal", XK_equal, 0 }, { "equalunderbar", XK_backslash, 1 }, { "euro", XK_X, 1 }, /* soliton */ { "greater", XK_greater, 0 }, { "iota", XK_yen, 1 }, { "iotaunderbar", XK_Egrave, 1 }, { "jot", XK_registered, 1 }, { "leftarrow", XK_currency, 1 }, { "leftbracket", XK_Yacute, 1 }, { "leftparen", XK_parenleft, 0 }, { "leftshoe", XK_masculine, 1 }, { "lefttack", XK_Icircumflex, 1 }, { "less", XK_less, 0 }, { "multiply", XK_paragraph, 1 }, { "notequal", XK_acute, 1 }, { "notgreater", XK_eth, 1 }, { "notless", XK_THORN, 1 }, { "omega", XK_copyright, 1 }, { "overbar", XK_mu, 1 }, { "plus", XK_plus, 0 }, { "plusminus", XK_AE, 1 }, { "quad", XK_degree, 1 }, { "quaddivide", XK_Oacute, 1 }, { "quadjot", XK_Ediaeresis, 1 }, { "quadquote", XK_uacute, 1 }, { "quadslope", XK_oacute, 1 }, { "query", XK_question, 0 }, { "quote", XK_apostrophe, 0 }, { "quotedot", XK_ucircumflex, 1 }, { "rho", XK_periodcentered, 1 }, { "rightarrow", XK_plusminus, 1 }, { "rightbracket", XK_diaeresis, 1 }, { "rightparen", XK_parenright, 0 }, { "rightshoe", XK_ordfeminine, 1 }, { "righttack", XK_Idiaeresis, 1 }, { "semicolon", XK_semicolon, 0 }, { "slash", XK_slash, 0 }, { "slashbar", XK_twosuperior, 1 }, { "slope", XK_onequarter, 1 }, { "slopebar", XK_Ocircumflex, 1 }, { "slopequad", XK_oacute, 1 }, { "splat", XK_ae, 1 }, { "squad", XK_odiaeresis, 1 }, { "star", XK_asterisk, 0 }, { "stile", XK_multiply, 1 }, { "tilde", XK_Ooblique, 1 }, { "times", XK_paragraph, 1 }, { "underbar", XK_underscore, 0 }, { "uparrow", XK_guillemotleft, 1 }, { "upcaret", XK_Eacute, 1 }, { "upcarettilde", XK_hyphen, 1 }, { "upshoe", XK_exclamdown, 1 }, { "upshoejot", XK_ydiaeresis, 1 }, { "upstile", XK_yacute, 1 }, { "uptack", XK_macron, 1 }, { "uptackjot", XK_Otilde, 1 }, { 0, 0 } }; /* * Translation from APL ksysym names to indirect APL keysyms. */ KeySym APLStringToKeysym(char *s, int *is_gep) { register int i; if (strncmp(s, "apl_", 4)) return NoSymbol; s += 4; for (i = 0; axl[i].name; i++) if (!strcmp(axl[i].name, s)) { *is_gep = axl[i].is_ge; return axl[i].keysym; } return NoSymbol; } #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/statusc.h0000644000175000017500000000371311254565673016004 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display verson of statusc.h */ #define status_compose(on, c, keytype) #define status_typeahead(on) #define status_script(on) #define status_reverse_mode(on) #define status_insert_mode(on) #define status_syswait() #define status_reset() #define status_twait() #define status_oerr(error_type) #define status_timing(t0, t1) #define status_ctlr_done() #define status_untiming() #define status_kybdlock() #define status_minus() #define status_lu(lu) ibm-3270-3.3.10ga4/ws3270/childc.h0000644000175000017500000000341211254565704015533 0ustar bastianbastian/* * Copyright (c) 2001-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * childc.h * Global declarations for child.c. */ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ extern int fork_child(void); extern void child_ignore_output(void); #else /*][*/ #define fork_child() fork() #define child_ignore_output() #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/charset.c0000644000175000017500000002167211254565704015741 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * charset.c * This module handles character sets. */ #include "globals.h" #include "3270ds.h" #include "resources.h" #include "appres.h" #include "cg.h" #include "charsetc.h" #include "kybdc.h" #include "popupsc.h" #if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) /*[*/ #include "screenc.h" #endif /*]*/ #include "tablesc.h" #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" #include "utilc.h" #include #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(__CYGWIN__) /*[*/ #include #undef _WIN32 #endif /*]*/ /* Globals. */ Boolean charset_changed = False; #define DEFAULT_CGEN 0x02b90000 #define DEFAULT_CSET 0x00000025 unsigned long cgcsgid = DEFAULT_CGEN | DEFAULT_CSET; unsigned long cgcsgid_dbcs = 0L; char *default_display_charset = "3270cg-1a,3270cg-1,iso8859-1"; /* Statics. */ static enum cs_result charset_init2(char *csname, const char *codepage, const char *cgcsgid, const char *display_charsets); static void set_cgcsgids(const char *spec); static int set_cgcsgid(char *spec, unsigned long *idp); static void set_host_codepage(char *codepage); static void set_charset_name(char *csname); static char *host_codepage = CN; static char *charset_name = CN; /* * Change character sets. */ enum cs_result charset_init(char *csname) { enum cs_result rc; #if !defined(_WIN32) /*[*/ char *codeset_name; #endif /*]*/ const char *codepage; const char *cgcsgid; const char *display_charsets; #if defined(X3270_DBCS) /*[*/ const char *dbcs_cgcsgid = NULL; const char *dbcs_display_charsets = NULL; Boolean need_free = False; #endif /*]*/ #if !defined(_WIN32) /*[*/ /* Get all of the locale stuff right. */ setlocale(LC_ALL, ""); /* Figure out the locale code set (character set encoding). */ codeset_name = nl_langinfo(CODESET); #if defined(__CYGWIN__) /*[*/ /* * Cygwin's locale support is quite limited. If the locale * indicates "US-ASCII", which appears to be the only supported * encoding, ignore it and use the Windows ANSI code page, which * observation indicates is what is actually supported. * * Hopefully at some point Cygwin will start returning something * meaningful here and this logic will stop triggering. */ if (!strcmp(codeset_name, "US-ASCII")) codeset_name = xs_buffer("CP%d", GetACP()); #endif /*]*/ set_codeset(codeset_name); #endif /*]*/ /* Do nothing, successfully. */ if (csname == CN || !strcasecmp(csname, "us")) { set_cgcsgids(CN); set_host_codepage(CN); set_charset_name(CN); #if defined(X3270_DISPLAY) /*[*/ (void) screen_new_display_charsets(default_display_charset, "us"); #endif /*]*/ (void) set_uni(CN, &codepage, &cgcsgid, &display_charsets); #if defined(X3270_DBCS) /*[*/ (void) set_uni_dbcs("", NULL, NULL); #endif /*]*/ return CS_OKAY; } if (set_uni(csname, &codepage, &cgcsgid, &display_charsets) < 0) return CS_NOTFOUND; if (appres.sbcs_cgcsgid != CN) cgcsgid = appres.sbcs_cgcsgid; /* override */ #if defined(X3270_DBCS) /*[*/ if (set_uni_dbcs(csname, &dbcs_cgcsgid, &dbcs_display_charsets) == 0) { if (appres.dbcs_cgcsgid != CN) dbcs_cgcsgid = appres.dbcs_cgcsgid; /* override */ cgcsgid = xs_buffer("%s+%s", cgcsgid, dbcs_cgcsgid); display_charsets = xs_buffer("%s+%s", display_charsets, dbcs_display_charsets); need_free = True; } #endif /*]*/ rc = charset_init2(csname, codepage, cgcsgid, display_charsets); #if defined(X3270_DBCS) /*[*/ if (need_free) { Free((char *)cgcsgid); Free((char *)display_charsets); } #endif /*]*/ if (rc != CS_OKAY) { return rc; } return CS_OKAY; } /* Set a CGCSGID. Return 0 for success, -1 for failure. */ static int set_cgcsgid(char *spec, unsigned long *r) { unsigned long cp; char *ptr; if (spec != CN && (cp = strtoul(spec, &ptr, 0)) && ptr != spec && *ptr == '\0') { if (!(cp & ~0xffffL)) *r = DEFAULT_CGEN | cp; else *r = cp; return 0; } else return -1; } /* Set the CGCSGIDs. */ static void set_cgcsgids(const char *spec) { int n_ids = 0; char *spec_copy; char *buf; char *token; if (spec != CN) { buf = spec_copy = NewString(spec); while (n_ids >= 0 && (token = strtok(buf, "+")) != CN) { unsigned long *idp = NULL; buf = CN; switch (n_ids) { case 0: idp = &cgcsgid; break; #if defined(X3270_DBCS) /*[*/ case 1: idp = &cgcsgid_dbcs; break; #endif /*]*/ default: popup_an_error("Extra CGCSGID(s), ignoring"); break; } if (idp == NULL) break; if (set_cgcsgid(token, idp) < 0) { popup_an_error("Invalid CGCSGID '%s', ignoring", token); n_ids = -1; break; } n_ids++; } Free(spec_copy); if (n_ids > 0) return; } if (appres.sbcs_cgcsgid != CN) cgcsgid = strtoul(appres.sbcs_cgcsgid, NULL, 0); else cgcsgid = DEFAULT_CGEN | DEFAULT_CSET; #if defined(X3270_DBCS) /*[*/ if (appres.dbcs_cgcsgid != CN) cgcsgid_dbcs = strtoul(appres.dbcs_cgcsgid, NULL, 0); else cgcsgid_dbcs = 0L; #endif /*]*/ } /* Set the host codepage. */ static void set_host_codepage(char *codepage) { if (codepage == CN) { Replace(host_codepage, NewString("037")); return; } if (host_codepage == CN || strcmp(host_codepage, codepage)) { Replace(host_codepage, NewString(codepage)); } } /* Set the global charset name. */ static void set_charset_name(char *csname) { if (csname == CN) { Replace(charset_name, NewString("us")); charset_changed = False; return; } if ((charset_name != CN && strcmp(charset_name, csname)) || (appres.charset != CN && strcmp(appres.charset, csname))) { Replace(charset_name, NewString(csname)); charset_changed = True; } } /* Character set init, part 2. */ static enum cs_result charset_init2(char *csname, const char *codepage, const char *cgcsgid, const char *display_charsets) { const char *rcs = display_charsets; int n_rcs = 0; char *rcs_copy, *buf, *token; /* Isolate the pieces. */ buf = rcs_copy = NewString(rcs); while ((token = strtok(buf, "+")) != CN) { buf = CN; switch (n_rcs) { case 0: #if defined(X3270_DBCS) /*[*/ case 1: #endif /*]*/ break; default: popup_an_error("Extra charset value(s), ignoring"); break; } n_rcs++; } Free(rcs_copy); #if defined(X3270_DBCS) /*[*/ /* Can't swap DBCS modes while connected. */ if (IN_3270 && (n_rcs == 2) != dbcs) { popup_an_error("Can't change DBCS modes while connected"); return CS_ILLEGAL; } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ if (!screen_new_display_charsets( rcs? rcs: default_display_charset, csname)) { return CS_PREREQ; } #else /*][*/ #if defined(X3270_DBCS) /*[*/ if (n_rcs > 1) dbcs = True; else dbcs = False; #endif /*]*/ #endif /*]*/ /* Set up the cgcsgids. */ set_cgcsgids(cgcsgid); /* Set up the host code page. */ set_host_codepage((char *)codepage); /* Set up the character set name. */ set_charset_name(csname); return CS_OKAY; } /* Return the current host codepage. */ char * get_host_codepage(void) { return (host_codepage != CN)? host_codepage: "037"; } /* Return the current character set name. */ char * get_charset_name(void) { return (charset_name != CN)? charset_name: ((appres.charset != CN)? appres.charset: "us"); } ibm-3270-3.3.10ga4/ws3270/ft_cut.c0000644000175000017500000004436311254565704015576 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ft_cut.c * File transfer, data movement logic, CUT version */ #include #include "globals.h" #if defined(X3270_FT) /*[*/ #include "appres.h" #include "ctlr.h" #include "3270ds.h" #include "actionsc.h" #include "charsetc.h" #include "ctlrc.h" #include "ft_cutc.h" #include "ft_cut_ds.h" #include "ftc.h" #include "kybdc.h" #include "popupsc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" static Boolean cut_xfer_in_progress = False; /* Data stream conversion tables. */ #define NQ 4 /* number of quadrants */ #define NE 77 /* number of elements per quadrant */ #define OTHER_2 2 /* "OTHER 2" quadrant (includes NULL) */ #define XLATE_NULL 0xc1 /* translation of NULL */ static char alphas[NE + 1] = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%&_()<+,-./:>?"; static struct { unsigned char selector; unsigned char xlate[NE]; } conv[NQ] = { { 0x5e, /* ';' */ { 0x40,0xc1,0xc2,0xc3, 0xc4,0xc5,0xc6,0xc7, 0xc8,0xc9,0xd1,0xd2, 0xd3,0xd4,0xd5,0xd6, 0xd7,0xd8,0xd9,0xe2, 0xe3,0xe4,0xe5,0xe6, 0xe7,0xe8,0xe9,0x81, 0x82,0x83,0x84,0x85, 0x86,0x87,0x88,0x89, 0x91,0x92,0x93,0x94, 0x95,0x96,0x97,0x98, 0x99,0xa2,0xa3,0xa4, 0xa5,0xa6,0xa7,0xa8, 0xa9,0xf0,0xf1,0xf2, 0xf3,0xf4,0xf5,0xf6, 0xf7,0xf8,0xf9,0x6c, 0x50,0x6d,0x4d,0x5d, 0x4c,0x4e,0x6b,0x60, 0x4b,0x61,0x7a,0x6e, 0x6f } }, { 0x7e, /* '=' */ { 0x20,0x41,0x42,0x43, 0x44,0x45,0x46,0x47, 0x48,0x49,0x4a,0x4b, 0x4c,0x4d,0x4e,0x4f, 0x50,0x51,0x52,0x53, 0x54,0x55,0x56,0x57, 0x58,0x59,0x5a,0x61, 0x62,0x63,0x64,0x65, 0x66,0x67,0x68,0x69, 0x6a,0x6b,0x6c,0x6d, 0x6e,0x6f,0x70,0x71, 0x72,0x73,0x74,0x75, 0x76,0x77,0x78,0x79, 0x7a,0x30,0x31,0x32, 0x33,0x34,0x35,0x36, 0x37,0x38,0x39,0x25, 0x26,0x27,0x28,0x29, 0x2a,0x2b,0x2c,0x2d, 0x2e,0x2f,0x3a,0x3b, 0x3f } }, { 0x5c, /* '*' */ { 0x00,0x00,0x01,0x02, 0x03,0x04,0x05,0x06, 0x07,0x08,0x09,0x0a, 0x0b,0x0c,0x0d,0x0e, 0x0f,0x10,0x11,0x12, 0x13,0x14,0x15,0x16, 0x17,0x18,0x19,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x3c,0x3d,0x3e, 0x00,0xfa,0xfb,0xfc, 0xfd,0xfe,0xff,0x7b, 0x7c,0x7d,0x7e,0x7f, 0x1a,0x1b,0x1c,0x1d, 0x1e,0x1f,0x00,0x00, 0x00 } }, { 0x7d, /* '\'' */ { 0x00,0xa0,0xa1,0xea, 0xeb,0xec,0xed,0xee, 0xef,0xe0,0xe1,0xaa, 0xab,0xac,0xad,0xae, 0xaf,0xb0,0xb1,0xb2, 0xb3,0xb4,0xb5,0xb6, 0xb7,0xb8,0xb9,0x80, 0x00,0xca,0xcb,0xcc, 0xcd,0xce,0xcf,0xc0, 0x00,0x8a,0x8b,0x8c, 0x8d,0x8e,0x8f,0x90, 0x00,0xda,0xdb,0xdc, 0xdd,0xde,0xdf,0xd0, 0x00,0x00,0x21,0x22, 0x23,0x24,0x5b,0x5c, 0x00,0x5e,0x5f,0x00, 0x9c,0x9d,0x9e,0x9f, 0xba,0xbb,0xbc,0xbd, 0xbe,0xbf,0x9a,0x9b, 0x00 } } }; static char table6[] = "abcdefghijklmnopqrstuvwxyz&-.,:+ABCDEFGHIJKLMNOPQRSTUVWXYZ012345"; static int quadrant = -1; static unsigned long expanded_length; static char *saved_errmsg = CN; #define XLATE_NBUF 32 static int xlate_buffered = 0; /* buffer count */ static int xlate_buf_ix = 0; /* buffer index */ static unsigned char xlate_buf[XLATE_NBUF]; /* buffer */ static void cut_control_code(void); static void cut_data_request(void); static void cut_retransmit(void); static void cut_data(void); static void cut_ack(void); static void cut_abort(const char *s, unsigned short reason); static unsigned from6(unsigned char c); /*static*/ int xlate_getc(void); /* * Convert a buffer for uploading (host->local). * Returns the length of the converted data. * If there is a conversion error, calls cut_abort() and returns -1. */ static int upload_convert(unsigned char *buf, int len, unsigned char *obuf, int obuf_len) { unsigned char *ob0 = obuf; unsigned char *ob = ob0; int nx; while (len-- && obuf_len) { unsigned char c = *buf++; char *ixp; int ix; int oq = -1; retry: if (quadrant < 0) { /* Find the quadrant. */ for (quadrant = 0; quadrant < NQ; quadrant++) { if (c == conv[quadrant].selector) break; } if (quadrant >= NQ) { cut_abort(get_message("ftCutConversionError"), SC_ABORT_XMIT); return -1; } continue; } /* Make sure it's in a valid range. */ if (c < 0x40 || c > 0xf9) { cut_abort(get_message("ftCutConversionError"), SC_ABORT_XMIT); return -1; } /* Translate to a quadrant index. */ ixp = strchr(alphas, ebc2asc0[c]); if (ixp == (char *)NULL) { /* Try a different quadrant. */ oq = quadrant; quadrant = -1; goto retry; } ix = ixp - alphas; /* * See if it's mapped by that quadrant, handling NULLs * specially. */ if (quadrant != OTHER_2 && c != XLATE_NULL && !conv[quadrant].xlate[ix]) { /* Try a different quadrant. */ oq = quadrant; quadrant = -1; goto retry; } /* Map it. */ c = conv[quadrant].xlate[ix]; if (ascii_flag && cr_flag && (c == '\r' || c == 0x1a)) continue; if (!(ascii_flag && remap_flag)) { /* No further translation necessary. */ *ob++ = c; obuf_len--; continue; } /* * Convert to local multi-byte. * We do that by inverting the host's EBCDIC-to-ASCII map, * getting back to EBCDIC, and converting to multi-byte from * there. */ #if defined(X3270_DBCS) /*[*/ switch (ft_dbcs_state) { case FT_DBCS_NONE: if (c == EBC_so) { ft_dbcs_state = FT_DBCS_SO; continue; } /* fall through to non-DBCS case below */ break; case FT_DBCS_SO: if (c == EBC_si) ft_dbcs_state = FT_DBCS_NONE; else { ft_dbcs_byte1 = i_asc2ft[c]; ft_dbcs_state = FT_DBCS_LEFT; } continue; case FT_DBCS_LEFT: if (c == EBC_si) { ft_dbcs_state = FT_DBCS_NONE; continue; } nx = ebcdic_to_multibyte((ft_dbcs_byte1 << 8) | i_asc2ft[c], (char *)ob, obuf_len); if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; ft_dbcs_state = FT_DBCS_SO; continue; } #endif /*]*/ if (c < 0x20 || ((c >= 0x80 && c < 0xa0 && c != 0x9f))) { /* * Control code, treat it as Unicode. * * Note that IND$FILE and the VM 'TYPE' command think * that EBCDIC X'E1' is a control code; IND$FILE maps * it onto ASCII 0x9f. So we skip it explicitly and * treat it as printable here. */ nx = unicode_to_multibyte(c, (char *)ob, obuf_len); } else if (c == 0xff) { nx = unicode_to_multibyte(0x9f, (char *)ob, obuf_len); } else { /* Displayable character, remap. */ c = i_asc2ft[c]; nx = ebcdic_to_multibyte(c, (char *)ob, obuf_len); } if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; } return ob - ob0; } /* * Store a download (local->host) character. * Returns the number of bytes stored. */ static int store_download(unsigned char c, unsigned char *ob) { unsigned char *ixp; unsigned ix; int oq; /* Quadrant already defined. */ if (quadrant >= 0) { ixp = (unsigned char *)memchr(conv[quadrant].xlate, c, NE); if (ixp != (unsigned char *)NULL) { ix = ixp - conv[quadrant].xlate; *ob++ = asc2ebc0[(int)alphas[ix]]; return 1; } } /* Locate a quadrant. */ oq = quadrant; for (quadrant = 0; quadrant < NQ; quadrant++) { if (quadrant == oq) continue; ixp = (unsigned char *)memchr(conv[quadrant].xlate, c, NE); if (ixp == (unsigned char *)NULL) continue; ix = ixp - conv[quadrant].xlate; *ob++ = conv[quadrant].selector; *ob++ = asc2ebc0[(int)alphas[ix]]; return 2; } quadrant = -1; fprintf(stderr, "Oops\n"); return 0; } /* Convert a buffer for downloading (local->host). */ /*static*/ int download_convert(unsigned const char *buf, unsigned len, unsigned char *xobuf) { unsigned char *ob0 = xobuf; unsigned char *ob = ob0; while (len) { unsigned char c = *buf; int consumed; enum me_fail error; ebc_t e; ucs4_t u; /* Handle nulls separately. */ if (!c) { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { ob += store_download(EBC_si, ob); ft_last_dbcs = False; } #endif /*]*/ if (quadrant != OTHER_2) { quadrant = OTHER_2; *ob++ = conv[quadrant].selector; } *ob++ = XLATE_NULL; buf++; len--; continue; } if (!(ascii_flag && remap_flag)) { ob += store_download(c, ob); buf++; len--; continue; } /* * Translate. * * The host uses a fixed EBCDIC-to-ASCII translation table, * which was derived empirically into i_ft2asc/i_asc2ft. * Invert that so that when the host applies its conversion, * it gets the right EBCDIC code. * * DBCS is a guess at this point, assuming that SO and SI * are unmodified by IND$FILE. */ u = multibyte_to_unicode((const char *)buf, len, &consumed, &error); if (u < 0x20 || ((u >= 0x80 && u < 0x9f))) e = i_asc2ft[u]; else if (u == 0x9f) e = 0xff; else e = unicode_to_ebcdic(u); if (e & 0xff00) { #if defined(X3270_DBCS) /*[*/ if (!ft_last_dbcs) ob += store_download(EBC_so, ob); ob += store_download(i_ft2asc[(e >> 8) & 0xff], ob); ob += store_download(i_ft2asc[e & 0xff], ob); ft_last_dbcs = True; #else /*][*/ ob += store_download('?', ob); #endif /*]*/ } else { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { ob += store_download(EBC_si, ob); ft_last_dbcs = False; } #endif /*]*/ if (e == 0) { ob += store_download('?', ob); } else { ob += store_download(i_ft2asc[e], ob); } } buf += consumed; len -= consumed; } return ob - ob0; } /* * Main entry point from ctlr.c. * We have received what looks like an appropriate message from the host. */ void ft_cut_data(void) { switch (ea_buf[O_FRAME_TYPE].cc) { case FT_CONTROL_CODE: cut_control_code(); break; case FT_DATA_REQUEST: cut_data_request(); break; case FT_RETRANSMIT: cut_retransmit(); break; case FT_DATA: cut_data(); break; default: trace_ds("< FT unknown 0x%02x\n", ea_buf[O_FRAME_TYPE].cc); cut_abort(get_message("ftCutUnknownFrame"), SC_ABORT_XMIT); break; } } /* * Process a control code from the host. */ static void cut_control_code(void) { unsigned short code; char *buf; char *bp; int i; trace_ds("< FT CONTROL_CODE "); code = (ea_buf[O_CC_STATUS_CODE].cc << 8) | ea_buf[O_CC_STATUS_CODE + 1].cc; switch (code) { case SC_HOST_ACK: trace_ds("HOST_ACK\n"); cut_xfer_in_progress = True; expanded_length = 0; quadrant = -1; xlate_buffered = 0; cut_ack(); ft_running(True); break; case SC_XFER_COMPLETE: trace_ds("XFER_COMPLETE\n"); cut_ack(); cut_xfer_in_progress = False; ft_complete((String)NULL); break; case SC_ABORT_FILE: case SC_ABORT_XMIT: trace_ds("ABORT\n"); cut_xfer_in_progress = False; cut_ack(); if (ft_state == FT_ABORT_SENT && saved_errmsg != CN) { buf = saved_errmsg; saved_errmsg = CN; } else { int mb_len = 161; bp = buf = Malloc(mb_len); for (i = 0; i < 80; i++) { int xlen; xlen = ebcdic_to_multibyte( ea_buf[O_CC_MESSAGE + i].cc, bp, mb_len); if (xlen) { bp += xlen - 1; mb_len -= xlen - 1; } } *bp-- = '\0'; while (bp >= buf && *bp == ' ') *bp-- = '\0'; if (bp >= buf && *bp == '$') *bp-- = '\0'; while (bp >= buf && *bp == ' ') *bp-- = '\0'; if (!*buf) strcpy(buf, get_message("ftHostCancel")); } ft_complete(buf); Free(buf); break; default: trace_ds("unknown 0x%04x\n", code); cut_abort(get_message("ftCutUnknownControl"), SC_ABORT_XMIT); break; } } /* * Process a data request from the host. */ static void cut_data_request(void) { unsigned char seq = ea_buf[O_DR_FRAME_SEQ].cc; int count; unsigned char cs; int c; int i; unsigned char attr; trace_ds("< FT DATA_REQUEST %u\n", from6(seq)); if (ft_state == FT_ABORT_WAIT) { cut_abort(get_message("ftUserCancel"), SC_ABORT_FILE); return; } /* Copy data into the screen buffer. */ count = 0; while (count < O_UP_MAX && (c = xlate_getc()) != EOF) { ctlr_add(O_UP_DATA + count, c, 0); count++; } /* Check for errors. */ if (ferror(ft_local_file)) { int j; char *msg; /* Clean out any data we may have written. */ for (j = 0; j < count; j++) ctlr_add(O_UP_DATA + j, 0, 0); /* Abort the transfer. */ msg = xs_buffer("read(%s): %s", ft_local_filename, strerror(errno)); cut_abort(msg, SC_ABORT_FILE); Free(msg); return; } /* Send special data for EOF. */ if (!count && feof(ft_local_file)) { ctlr_add(O_UP_DATA, EOF_DATA1, 0); ctlr_add(O_UP_DATA+1, EOF_DATA2, 0); count = 2; } /* Compute the other fields. */ ctlr_add(O_UP_FRAME_SEQ, seq, 0); cs = 0; for (i = 0; i < count; i++) cs ^= ea_buf[O_UP_DATA + i].cc; ctlr_add(O_UP_CSUM, asc2ebc0[(int)table6[cs & 0x3f]], 0); ctlr_add(O_UP_LEN, asc2ebc0[(int)table6[(count >> 6) & 0x3f]], 0); ctlr_add(O_UP_LEN+1, asc2ebc0[(int)table6[count & 0x3f]], 0); /* XXX: Change the data field attribute so it doesn't display. */ attr = ea_buf[O_DR_SF].fa; attr = (attr & ~FA_INTENSITY) | FA_INT_ZERO_NSEL; ctlr_add_fa(O_DR_SF, attr, 0); /* Send it up to the host. */ trace_ds("> FT DATA %u\n", from6(seq)); ft_update_length(); expanded_length += count; action_internal(Enter_action, IA_FT, CN, CN); } /* * (Improperly) process a retransmit from the host. */ static void cut_retransmit(void) { trace_ds("< FT RETRANSMIT\n"); cut_abort(get_message("ftCutRetransmit"), SC_ABORT_XMIT); } /* * Convert an encoded integer. */ static unsigned from6(unsigned char c) { char *p; c = ebc2asc0[c]; p = strchr(table6, c); if (p == CN) return 0; return p - table6; } /* * Process data from the host. */ static void cut_data(void) { static unsigned char cvbuf[O_RESPONSE - O_DT_DATA]; static unsigned char cvobuf[4 * (O_RESPONSE - O_DT_DATA)]; unsigned short raw_length; int conv_length; register int i; trace_ds("< FT DATA\n"); if (ft_state == FT_ABORT_WAIT) { cut_abort(get_message("ftUserCancel"), SC_ABORT_FILE); return; } /* Copy and convert the data. */ raw_length = from6(ea_buf[O_DT_LEN].cc) << 6 | from6(ea_buf[O_DT_LEN + 1].cc); if ((int)raw_length > O_RESPONSE - O_DT_DATA) { cut_abort(get_message("ftCutOversize"), SC_ABORT_XMIT); return; } for (i = 0; i < (int)raw_length; i++) cvbuf[i] = ea_buf[O_DT_DATA + i].cc; if (raw_length == 2 && cvbuf[0] == EOF_DATA1 && cvbuf[1] == EOF_DATA2) { trace_ds("< FT EOF\n"); cut_ack(); return; } conv_length = upload_convert(cvbuf, raw_length, cvobuf, sizeof(cvobuf)); if (conv_length < 0) return; /* Write it to the file. */ if (fwrite((char *)cvobuf, conv_length, 1, ft_local_file) == 0) { char *msg; msg = xs_buffer("write(%s): %s", ft_local_filename, strerror(errno)); cut_abort(msg, SC_ABORT_FILE); Free(msg); } else { ft_length += conv_length; ft_update_length(); cut_ack(); } } /* * Acknowledge a host command. */ static void cut_ack(void) { trace_ds("> FT ACK\n"); action_internal(Enter_action, IA_FT, CN, CN); } /* * Abort a transfer in progress. */ static void cut_abort(const char *s, unsigned short reason) { /* Save the error message. */ Replace(saved_errmsg, NewString(s)); /* Send the abort sequence. */ ctlr_add(RO_FRAME_TYPE, RFT_CONTROL_CODE, 0); ctlr_add(RO_FRAME_SEQ, ea_buf[O_DT_FRAME_SEQ].cc, 0); ctlr_add(RO_REASON_CODE, HIGH8(reason), 0); ctlr_add(RO_REASON_CODE+1, LOW8(reason), 0); trace_ds("> FT CONTROL_CODE ABORT\n"); action_internal(PF_action, IA_FT, "2", CN); /* Update the in-progress pop-up. */ ft_aborting(); } /* * Get the next translated character from the local file. * Returns the character (in EBCDIC), or EOF. */ /*static*/ int xlate_getc(void) { int r; int c; unsigned char cbuf[32]; int nc; int consumed; enum me_fail error; char mb[16]; int mb_len = 0; /* If there is a data buffered, return it. */ if (xlate_buffered) { r = xlate_buf[xlate_buf_ix]; xlate_buf_ix++; xlate_buffered--; return r; } if (ascii_flag) { /* * Get the next (possibly multi-byte) character from the file. */ do { c = fgetc(ft_local_file); if (c == EOF) { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { ft_last_dbcs = False; return EBC_si; } #endif /*]*/ return c; } ft_length++; mb[mb_len++] = c; error = ME_NONE; (void) multibyte_to_unicode(mb, mb_len, &consumed, &error); if (error == ME_INVALID) return -1; } while (error == ME_SHORT); /* Expand it. */ if (ascii_flag && cr_flag && !ft_last_cr && c == '\n') { nc = download_convert((unsigned const char *)"\r", 1, cbuf); } else { nc = 0; ft_last_cr = (c == '\r'); } } else { /* Binary, just read it. */ c = fgetc(ft_local_file); if (c == EOF) return c; mb[0] = c; mb_len = 1; nc = 0; ft_length++; } /* Convert it. */ nc += download_convert((unsigned char *)mb, mb_len, &cbuf[nc]); /* Return it and buffer what's left. */ r = cbuf[0]; if (nc > 1) { int i; for (i = 1; i < nc; i++) xlate_buf[xlate_buffered++] = cbuf[i]; xlate_buf_ix = 0; } return r; } #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/version.txt0000755000175000017500000000004611261527637016366 0ustar bastianbastianversion="3.3.10ga4" adversion="3.3.4" ibm-3270-3.3.10ga4/ws3270/readresc.h0000644000175000017500000000355611254565704016106 0ustar bastianbastian/* * Copyright (c) 2009, Paul Mattes. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * readresc.h * A displayless 3270 Terminal Emulator * Header for resource file reader. */ typedef void (rrf_t)(const char *, const char *); extern int validate_and_split_resource(const char *where, const char *arg, const char **left, unsigned *rnlenp, const char **right); extern int read_resource_filex(const char *filename, Boolean fatal, rrf_t *rrf); ibm-3270-3.3.10ga4/ws3270/actions.c0000644000175000017500000005370511254565704015752 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * actions.c * The X actions table and action debugging code. */ #include "globals.h" #include "appres.h" #include "actionsc.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "printc.h" #include "resources.h" #include "selectc.h" #include "togglesc.h" #include "trace_dsc.h" #include "utilc.h" #include "xioc.h" #if defined(X3270_FT) /*[*/ #include "ftc.h" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ #include "keypadc.h" #include "menubarc.h" #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) || defined(WC3270) /*[*/ #include "screenc.h" #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ #include #define MODMAP_SIZE 8 #define MAP_SIZE 13 #define MAX_MODS_PER 4 static struct { const char *name[MAX_MODS_PER]; unsigned int mask; Boolean is_meta; } skeymask[MAP_SIZE] = { { { "Shift" }, ShiftMask, False }, { { (char *)NULL } /* Lock */, LockMask, False }, { { "Ctrl" }, ControlMask, False }, { { CN }, Mod1Mask, False }, { { CN }, Mod2Mask, False }, { { CN }, Mod3Mask, False }, { { CN }, Mod4Mask, False }, { { CN }, Mod5Mask, False }, { { "Button1" }, Button1Mask, False }, { { "Button2" }, Button2Mask, False }, { { "Button3" }, Button3Mask, False }, { { "Button4" }, Button4Mask, False }, { { "Button5" }, Button5Mask, False } }; static Boolean know_mods = False; #endif /*]*/ XtActionsRec all_actions[] = { #if defined(C3270) && defined(X3270_SCRIPT) /*[*/ { "Abort", Abort_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "AltCursor", AltCursor_action }, #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ { "Compose", Compose_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "Cut", Cut_action }, { "Default", Default_action }, { "HandleMenu", HandleMenu_action }, { "HardPrint", PrintText_action }, { "HexString", HexString_action }, #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ { "Info", Info_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "Keymap", TemporaryKeymap_action }, { PA_PFX "ConfigureNotify", PA_ConfigureNotify_action }, { PA_END, PA_End_action }, #endif /*]*/ #if defined(C3270) /*[*/ { "Escape", Escape_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { PA_PFX "EnterLeave", PA_EnterLeave_action }, { PA_PFX "Expose", PA_Expose_action }, { PA_PFX "Focus", PA_Focus_action }, { PA_PFX "GraphicsExpose", PA_GraphicsExpose_action }, { PA_PFX "KeymapNotify", PA_KeymapNotify_action }, # if defined(X3270_TRACE) /*[*/ { PA_KEYMAP_TRACE, PA_KeymapTrace_action }, # endif /*]*/ { PA_PFX "Shift", PA_Shift_action }, { PA_PFX "StateChanged", PA_StateChanged_action }, { PA_PFX "VisibilityNotify",PA_VisibilityNotify_action }, { PA_PFX "WMProtocols", PA_WMProtocols_action }, { PA_PFX "confirm", PA_confirm_action }, { "PrintWindow", PrintWindow_action }, #endif /*]*/ { "PrintText", PrintText_action }, #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ { "Flip", Flip_action }, { "Redraw", Redraw_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "SetFont", SetFont_action }, { "TemporaryKeymap", TemporaryKeymap_action }, # if defined(X3270_FT) && defined(X3270_MENUS) /*[*/ { PA_PFX "dialog-next", PA_dialog_next_action }, { PA_PFX "dialog-focus", PA_dialog_focus_action }, # endif /*]*/ { "insert-selection", insert_selection_action }, { "move-select", move_select_action }, { "select-end", select_end_action }, { "select-extend", select_extend_action }, { "select-start", select_start_action }, { "set-select", set_select_action }, { "start-extend", start_extend_action }, #endif /*]*/ #if defined(X3270_SCRIPT) || defined(S3270) /*[*/ { "AnsiText", AnsiText_action }, #endif /*]*/ { "Ascii", Ascii_action }, { "AsciiField", AsciiField_action }, { "Attn", Attn_action }, { "BackSpace", BackSpace_action }, { "BackTab", BackTab_action }, #if defined(X3270_SCRIPT) && (defined(X3270_DISPLAY) || defined(C3270)) /*[*/ { "Bell", Bell_action }, #endif /*]*/ { "CircumNot", CircumNot_action }, { "Clear", Clear_action }, #if defined(C3270) /*[*/ { "Close", Disconnect_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "CloseScript", CloseScript_action }, #endif /*]*/ { "Connect", Connect_action }, #if defined(X3270_SCRIPT) /*[*/ { "ContinueScript", ContinueScript_action }, #endif /*]*/ { "CursorSelect", CursorSelect_action }, { "Delete", Delete_action }, { "DeleteField", DeleteField_action }, { "DeleteWord", DeleteWord_action }, { "Disconnect", Disconnect_action }, { "Down", Down_action }, { "Dup", Dup_action }, { "Ebcdic", Ebcdic_action }, { "EbcdicField", EbcdicField_action }, { "Enter", Enter_action }, { "Erase", Erase_action }, { "EraseEOF", EraseEOF_action }, { "EraseInput", EraseInput_action }, #if defined(X3270_SCRIPT) /*[*/ { "Execute", Execute_action }, #endif /*]*/ #if defined(C3270) || defined(WC3270) /*[*/ { "Exit", Quit_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "Expect", Expect_action }, #endif /*]*/ { "FieldEnd", FieldEnd_action }, { "FieldMark", FieldMark_action }, { "HexString", HexString_action}, #if defined(C3270) || defined(WC3270) /*[*/ { "Help", Help_action}, #endif/*]*/ #if defined(X3270_SCRIPT) /*[*/ { "Plugin", Plugin_action}, #endif/*]*/ { "Home", Home_action }, { "Insert", Insert_action }, { "Interrupt", Interrupt_action }, { "Key", Key_action }, #if defined(X3270_DISPLAY) /*[*/ { "KybdSelect", KybdSelect_action }, #endif /*]*/ { "Left", Left_action }, { "Left2", Left2_action }, #if defined(X3270_SCRIPT) || defined(S3270) /*[*/ { "Macro", Macro_action }, #endif /*]*/ { "MonoCase", MonoCase_action }, #if defined(X3270_DISPLAY) /*[*/ { "MouseSelect", MouseSelect_action }, #endif /*]*/ { "MoveCursor", MoveCursor_action }, { "Newline", Newline_action }, { "NextWord", NextWord_action }, #if defined(C3270) || defined(WC3270) /*[*/ { "Open", Connect_action }, #endif /*]*/ { "PA", PA_action }, { "PF", PF_action }, #if defined(WC3270) /*[*/ { "Paste", Paste_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "PauseScript", PauseScript_action }, #endif /*]*/ { "PreviousWord", PreviousWord_action }, #if defined(X3270_PRINTER) /*[*/ { "Printer", Printer_action }, #endif /*]*/ #if defined(X3270_SCRIPT) || defined(S3270) /*[*/ { "Query", Query_action }, #endif /*]*/ { "Quit", Quit_action }, #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ { "ReadBuffer", ReadBuffer_action }, #endif /*]*/ #if defined(X3270_MENUS) /*[*/ { "Reconnect", Reconnect_action }, #endif /*]*/ { "Reset", Reset_action }, { "Right", Right_action }, { "Right2", Right2_action }, #if defined(X3270_DISPLAY) /*[*/ { "SelectAll", SelectAll_action }, { "SelectDown", SelectDown_action }, { "SelectMotion", SelectMotion_action }, { "SelectUp", SelectUp_action }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { "Script", Script_action }, #endif /*]*/ #if defined(C3270) /*[*/ { "Show", Show_action }, #endif/*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ { "Snap", Snap_action }, #endif /*]*/ #if !defined(TCL3270) /*[*/ { "Source", Source_action }, #endif /*]*/ #if defined(TCL3270) /*[*/ { "Status", Status_action }, #endif /*]*/ { "String", String_action }, { "SysReq", SysReq_action }, { "Tab", Tab_action }, #if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ { "Title", Title_action }, #endif /*]*/ { "Toggle", Toggle_action }, { "ToggleInsert", ToggleInsert_action }, { "ToggleReverse", ToggleReverse_action }, #if defined(C3270) && defined(X3270_TRACE) /*[*/ { "Trace", Trace_action }, #endif/*]*/ #if defined(X3270_FT) /*[*/ { "Transfer", Transfer_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "Unselect", Unselect_action }, #endif /*]*/ { "Up", Up_action }, #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ { "Wait", Wait_action }, #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ { "WindowState", WindowState_action }, #endif /*]*/ { "ignore", ignore_action } }; int actioncount = XtNumber(all_actions); XtActionsRec *actions = NULL; /* Actions that are aliases for other actions. */ static char *aliased_actions[] = { "Close", "HardPrint", "Open", NULL }; enum iaction ia_cause; const char *ia_name[] = { "String", "Paste", "Screen redraw", "Keypad", "Default", "Key", "Macro", "Script", "Peek", "Typeahead", "File transfer", "Command", "Keymap", "Idle" }; /* No-op action for suppressed actions. */ static void suppressed_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(suppressed_action, event, params, num_params); } /* Look up an action name in the suppressed actions resource. */ static Boolean action_suppressed(String name, char *suppress) { char *s = suppress; char *t; while ((t = strstr(s, name)) != CN) { char b; char e = s[strlen(name)]; if (t == suppress) b = '\0'; else b = *(t - 1); if ((b == '\0' || b == ')' || isspace(b)) && (e == '\0' || e == '(' || isspace(e))) return True; s += strlen(name); } return False; } /* * Action table initialization. * Uses the suppressActions resource to prune the actions table. */ void action_init(void) { char *suppress; int i; /* See if there are any filters at all. */ suppress = get_resource(ResSuppressActions); if (suppress == CN) { actions = all_actions; return; } /* Yes, we'll need to copy the table and prune it. */ actions = (XtActionsRec *)Malloc(sizeof(all_actions)); memcpy(actions, all_actions, sizeof(all_actions)); for (i = 0; i < actioncount; i++) { if (action_suppressed(actions[i].string, suppress)) actions[i].proc = suppressed_action; } } /* * Return a name for an action. */ const char * action_name(XtActionProc action) { register int i; /* * XXX: It would be better if the real name could be displayed, with a * message indicating it is suppressed. */ if (action == suppressed_action) return "(suppressed)"; for (i = 0; i < actioncount; i++) if (actions[i].proc == action) { int j; Boolean aliased = False; for (j = 0; aliased_actions[j] != CN; j++) { if (!strcmp(aliased_actions[j], actions[i].string)) { aliased = True; break; } } if (!aliased) return actions[i].string; } return "(unknown)"; } #if defined(X3270_DISPLAY) /*[*/ /* * Search the modifier map to learn the modifier bits for Meta, Alt, Hyper and * Super. */ static void learn_modifiers(void) { XModifierKeymap *mm; int i, j, k; static char *default_modname[] = { CN, CN, "Ctrl", "Mod1", "Mod2", "Mod3", "Mod4", "Mod5", "Button1", "Button2", "Button3", "Button4", "Button5" }; mm = XGetModifierMapping(display); for (i = 0; i < MODMAP_SIZE; i++) { for (j = 0; j < mm->max_keypermod; j++) { KeyCode kc; const char *name = CN; Boolean is_meta = False; kc = mm->modifiermap[(i * mm->max_keypermod) + j]; if (!kc) continue; switch(XKeycodeToKeysym(display, kc, 0)) { case XK_Meta_L: case XK_Meta_R: name = "Meta"; is_meta = True; break; case XK_Alt_L: case XK_Alt_R: name = "Alt"; break; case XK_Super_L: case XK_Super_R: name = "Super"; break; case XK_Hyper_L: case XK_Hyper_R: name = "Hyper"; break; default: break; } if (name == CN) continue; if (is_meta) skeymask[i].is_meta = True; for (k = 0; k < MAX_MODS_PER; k++) { if (skeymask[i].name[k] == CN) break; else if (!strcmp(skeymask[i].name[k], name)) k = MAX_MODS_PER; } if (k >= MAX_MODS_PER) continue; skeymask[i].name[k] = name; } } for (i = 0; i < MODMAP_SIZE; i++) { if (skeymask[i].name[0] == CN) { skeymask[i].name[0] = default_modname[i]; } } XFreeModifiermap(mm); } #if defined(X3270_TRACE) /*[*/ /* * Return the symbolic name for the modifier combination (i.e., "Meta" instead * of "Mod2". Note that because it is possible to map multiple keysyms to the * same modifier bit, the answer may be ambiguous; we return the combinations * iteratively. */ static char * key_symbolic_state(unsigned int state, int *iteration) { static char rs[64]; static int ix[MAP_SIZE]; static int ix_ix[MAP_SIZE]; static int n_ix = 0; static int leftover = 0; const char *comma = ""; int i; if (!know_mods) { learn_modifiers(); know_mods = True; } if (*iteration == 0) { /* First time, build the table. */ n_ix = 0; for (i = 0; i < MAP_SIZE; i++) { if (skeymask[i].name[0] != CN && (state & skeymask[i].mask)) { ix[i] = 0; state &= ~skeymask[i].mask; ix_ix[n_ix++] = i; } else ix[i] = MAX_MODS_PER; } leftover = state; } /* Construct this result. */ rs[0] = '\0'; for (i = 0; i < n_ix; i++) { (void) strcat(rs, comma); (void) strcat(rs, skeymask[ix_ix[i]].name[ix[ix_ix[i]]]); comma = " "; } #if defined(VERBOSE_EVENTS) /*[*/ if (leftover) (void) sprintf(strchr(rs, '\0'), "%s?%d", comma, state); #endif /*]*/ /* * Iterate to the next. * This involves treating each slot like an n-ary number, where n is * the number of elements in the slot, iterating until the highest- * ordered slot rolls back over to 0. */ if (n_ix) { i = n_ix - 1; ix[ix_ix[i]]++; while (i >= 0 && (ix[ix_ix[i]] >= MAX_MODS_PER || skeymask[ix_ix[i]].name[ix[ix_ix[i]]] == CN)) { ix[ix_ix[i]] = 0; i = i - 1; if (i >= 0) ix[ix_ix[i]]++; } *iteration = i >= 0; } else *iteration = 0; return rs; } #endif /*]*/ /* Return whether or not an KeyPress event state includes the Meta key. */ Boolean event_is_meta(int state) { int i; /* Learn the modifier map. */ if (!know_mods) { learn_modifiers(); know_mods = True; } for (i = 0; i < MAP_SIZE; i++) { if (skeymask[i].name[0] != CN && skeymask[i].is_meta && (state & skeymask[i].mask)) { return True; } } return False; } #if defined(VERBOSE_EVENTS) /*[*/ static char * key_state(unsigned int state) { static char rs[64]; const char *comma = ""; static struct { const char *name; unsigned int mask; } keymask[] = { { "Shift", ShiftMask }, { "Lock", LockMask }, { "Control", ControlMask }, { "Mod1", Mod1Mask }, { "Mod2", Mod2Mask }, { "Mod3", Mod3Mask }, { "Mod4", Mod4Mask }, { "Mod5", Mod5Mask }, { "Button1", Button1Mask }, { "Button2", Button2Mask }, { "Button3", Button3Mask }, { "Button4", Button4Mask }, { "Button5", Button5Mask }, { CN, 0 }, }; int i; rs[0] = '\0'; for (i = 0; keymask[i].name; i++) { if (state & keymask[i].mask) { (void) strcat(rs, comma); (void) strcat(rs, keymask[i].name); comma = "|"; state &= ~keymask[i].mask; } } if (!rs[0]) (void) sprintf(rs, "%d", state); else if (state) (void) sprintf(strchr(rs, '\0'), "%s?%d", comma, state); return rs; } #endif /*]*/ #endif /*]*/ /* * Check the number of argument to an action, and possibly pop up a usage * message. * * Returns 0 if the argument count is correct, -1 otherwise. */ int check_usage(XtActionProc action, Cardinal nargs, Cardinal nargs_min, Cardinal nargs_max) { if (nargs >= nargs_min && nargs <= nargs_max) return 0; if (nargs_min == nargs_max) popup_an_error("%s requires %d argument%s", action_name(action), nargs_min, nargs_min == 1 ? "" : "s"); else popup_an_error("%s requires %d or %d arguments", action_name(action), nargs_min, nargs_max); cancel_if_idle_command(); return -1; } /* * Display an action debug message */ #if defined(X3270_TRACE) /*[*/ #define KSBUF 256 void action_debug(XtActionProc action, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; char pbuf[1024]; #if defined(X3270_DISPLAY) /*[*/ XKeyEvent *kevent; KeySym ks; XButtonEvent *bevent; XMotionEvent *mevent; XConfigureEvent *cevent; XClientMessageEvent *cmevent; XExposeEvent *exevent; const char *press = "Press"; const char *direction = "Down"; char dummystr[KSBUF+1]; char *atom_name; int ambiguous = 0; int state; const char *symname = ""; char snbuf[11]; #endif /*]*/ if (!toggled(EVENT_TRACE)) return; if (event == (XEvent *)NULL) { trace_event(" %s", ia_name[(int)ia_cause]); } #if defined(X3270_DISPLAY) /*[*/ else switch (event->type) { case KeyRelease: press = "Release"; case KeyPress: kevent = (XKeyEvent *)event; (void) XLookupString(kevent, dummystr, KSBUF, &ks, NULL); state = kevent->state; /* * If the keysym is a printable ASCII character, ignore the * Shift key. */ if (ks != ' ' && !(ks & ~0xff) && isprint(ks)) state &= ~ShiftMask; if (ks == NoSymbol) symname = "NoSymbol"; else if ((symname = XKeysymToString(ks)) == CN) { (void) sprintf(snbuf, "0x%lx", (unsigned long)ks); symname = snbuf; } do { int was_ambiguous = ambiguous; trace_event("%s ':%s%s'", was_ambiguous? " or": "Event", key_symbolic_state(state, &ambiguous), press, symname); } while (ambiguous); /* * If the keysym is an alphanumeric ASCII character, show the * case-insensitive alternative, sans the colon. */ if (!(ks & ~0xff) && isalpha(ks)) { ambiguous = 0; do { int was_ambiguous = ambiguous; trace_event(" %s '%s%s'", was_ambiguous? "or": "(case-insensitive:", key_symbolic_state(state, &ambiguous), press, symname); } while (ambiguous); trace_event(")"); } #if defined(VERBOSE_EVENTS) /*[*/ trace_event("\nKey%s [state %s, keycode %d, keysym " "0x%lx \"%s\"]", press, key_state(kevent->state), kevent->keycode, ks, symname); #endif /*]*/ break; case ButtonRelease: press = "Release"; direction = "Up"; case ButtonPress: bevent = (XButtonEvent *)event; do { int was_ambiguous = ambiguous; trace_event("%s '%s'", was_ambiguous? " or": "Event", key_symbolic_state(bevent->state, &ambiguous), bevent->button, direction); } while (ambiguous); #if defined(VERBOSE_EVENTS) /*[*/ trace_event("\nButton%s [state %s, button %d]", press, key_state(bevent->state), bevent->button); #endif /*]*/ break; case MotionNotify: mevent = (XMotionEvent *)event; do { int was_ambiguous = ambiguous; trace_event("%s '%s'", was_ambiguous? " or": "Event", key_symbolic_state(mevent->state, &ambiguous)); } while (ambiguous); #if defined(VERBOSE_EVENTS) /*[*/ trace_event("\nMotionNotify [state %s]", key_state(mevent->state)); #endif /*]*/ break; case EnterNotify: trace_event("EnterNotify"); break; case LeaveNotify: trace_event("LeaveNotify"); break; case FocusIn: trace_event("FocusIn"); break; case FocusOut: trace_event("FocusOut"); break; case KeymapNotify: trace_event("KeymapNotify"); break; case Expose: exevent = (XExposeEvent *)event; trace_event("Expose [%dx%d+%d+%d]", exevent->width, exevent->height, exevent->x, exevent->y); break; case PropertyNotify: trace_event("PropertyNotify"); break; case ClientMessage: cmevent = (XClientMessageEvent *)event; atom_name = XGetAtomName(display, (Atom)cmevent->data.l[0]); trace_event("ClientMessage [%s]", (atom_name == CN) ? "(unknown)" : atom_name); break; case ConfigureNotify: cevent = (XConfigureEvent *)event; trace_event("ConfigureNotify [%dx%d+%d+%d]", cevent->width, cevent->height, cevent->x, cevent->y); break; default: trace_event("Event %d", event->type); break; } if (keymap_trace != CN) trace_event(" via %s -> %s(", keymap_trace, action_name(action)); else #endif /*]*/ trace_event(" -> %s(", action_name(action)); for (i = 0; i < *num_params; i++) { trace_event("%s\"%s\"", i ? ", " : "", scatv(params[i], pbuf, sizeof(pbuf))); } trace_event(")\n"); trace_rollover_check(); } #endif /*]*/ /* * Wrapper for calling an action internally. */ void action_internal(XtActionProc action, enum iaction cause, const char *parm1, const char *parm2) { Cardinal count = 0; String parms[2]; /* Duplicate the parms, because XtActionProc doesn't grok 'const'. */ if (parm1 != CN) { parms[0] = NewString(parm1); count++; if (parm2 != CN) { parms[1] = NewString(parm2); count++; } } ia_cause = cause; (*action)((Widget) NULL, (XEvent *) NULL, count ? parms : (String *) NULL, &count); /* Free the parm copies. */ switch (count) { case 2: Free(parms[1]); /* fall through... */ case 1: Free(parms[0]); break; default: break; } } ibm-3270-3.3.10ga4/ws3270/ws3270.ico0000644000175000017500000016113611254565672015611 0ustar bastianbastianÈÈð+&ÈÈH¶,(Èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(È?6:<9;H8AD:?C8DE=<@;C@9GJ8GF@K=@F;F=?BC>FI?ED=LI>IJBAFBDO?HJ=NPADFAIQ>MLBHL@LNDJNCNJEMTDMQHGPFLLHJKDSGIKVCRPEQPCVVHJSINXGQSGSNIQJD`VLRVJVWNNPNQRLU\KU\NPRKZRI^\JYWJ\YOTYMY\QWWQZ\P\]TTbSUXTWbQZ]ObXQ`ZT]YPfdQa_U[_S_WSjbX]]Z\]Xa^VehY\hW`c[ZcWccUhdZ`g_^m]`h]cb]fh[hn`\d`bd\ko]gi[n``hkbb`]pe\qpadkagk_lfaj`Y~i\yodjpgfkgikZƒocpjenufikcsudnpbukbxrgmg[Œulkujpojsqmougzviv{lopiy{jtxonqhrb‹xmtsmvsg†yh„ndoiŠ|srmc—wsu‚ru}rxwr{wp‚p{}p}wn…}oƒww€w}}y{ˆx{ƒzy~x‰wt‹~w†q“…z}nœ†y†‰€}y“„~‡‚~|Š……ƒŠ„}„z“ul·{|—uq¯Š†ˆ•…ˆ‡†Š…Ž…Œ‹ƒ“†ƒ–‡ˆŒ†}¤‡‚žƒ›”†“ˆˆ”‰}«Ž¥—Œ—‹‘‘‘‹”‘‰™‹‰œ|¶—“•““—‘›˜Ÿ‘‘ž—¤’˜’£’§Œ}Ø™œ—²˜Œ¹–‰À˜™£ž™¢¦šžŸ—¨™—«§ ¨¡ž³£¥¨¨ ³££¯¢›Â ”Ò¤™È­§¯¡¢¿­­¸´®·´®Á±«È±ªÓºµ¼µµ¿°¨Ü½·É¼ƻ±å¿¾Ë½¶ÜÃÂÅÆ¹ñËËÎÏÉÓȽïËË×ËÄêÏÊãÒÒÖØÚÝÝÙäÚÖïáÝßÜÕùÞàäåçëíéëéçôìåýùûþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷äÜëûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëØÔàÜîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÇÃàÞàßã÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÂÑËÑÐßÞÜÜçõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÃÃÂÂÇÄÐÜßàãÞùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÁÇÇÇËǯºÇ×ãØÃÐëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿܺÁÇ»»¯»»­ÃÐÒ×ãÞëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÁǼºº«ººÂ¼«¯¬ÇÖ߯×çûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÂÇ»¯¬º¯¶»Â»¯¯ž¯ËÜÜÞäðûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôÅËú­º®¯»¬­¯»¬¯›®®ÐÜØÞßëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿܽº¯Ã«­£££®®¶¬¯« ®¾Ôçççãóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûº¼­»Ñ­¬¯¯   £®«¯¯ £ ÏäÞÜ×ãùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÁ»¶¯®¼¯ž£¶»£’ ¡–¤¡¶£–””®ËÜã×Üäúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷¼¼¬¡žžž¤¤¯­¤ ¤£—– ¶’–’’›ˆ«ÔߨӿíÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜ«£¯«­¤¤¤«£¤ ¤   —›“’‰zŠ“Šoˆ¤·Øé×à÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí¯£›•– ž›››£®¶—££ › –‹|€’І†€€ ÐÔàÏÜ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁ”­ž•””››¯££•›£‹ “Š}‹vt†Š‰†ˆ†m½ÐËÃÓçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿë•”ž››››“–›¤¤–¡› ›‹Œ›–y‹bru€€‹}}†Š}Š®ÄÈÐÜíÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû¯›¤–““››’’››ž›Š––’€‹ˆˆ‹o|l€t}uŠw€u“¼ØÈ§àõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ㣕¤›ˆ““’’Š’’––™€ŽŒ›Šy}€|yorzzt’t}utmu“®ØÔ·Þúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿù«¡–“––І““›“‹’ˆ“Š–€ŒynirŠzouuklw‰z€|yrtcu¶ÒÒÃÃðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÑ£žŠŠ–“ŠŠ’––‹‹’‹yŽ‹–“†tkmtrrgmŠzzoUgz}|oouymg®¾×àÜëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó«ž–ŠŠ“–““‹•ˆ““‹Ž‹€ŠˆŽ{uhlum€€umŠ€wwbkgrouyzmuh^xÒßÒ°Äóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˤ£›“‹‹–‰‹›‹‘‹€Š‹wˆylr[[goŠ€}lgagu^aSUmlbgrlr[[o•·°ÆÒÕûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëž­•†›–ŠŠ–•–‹‹Š€‹‘‹–€†igrmkuuh^t^tkcacoubWNmbgtum[oc[ŽÄÒÐÜßûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÑž›‹Š’•†’‹‰€ŠˆwŠu€vvl]dgbtu^Ytbggahghv^^aadrrgdligNcd–ØÒµ¶çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿë«­’•›—Ž—Š•€‹‹–‹ˆ‹ywviwrrlgihtgababbyur}rih[UVP^SYTmUNUY¥ÒÒÆÔôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ땞›“–••‰Š–‹‹Š’ŠŠ‹whky|kYmlkckblbcguhmiobU[Yg[M[N[PINRbWU–ÏÓÐÒß÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú¤›•““›€‹ˆ’“€‹w€r€youvmokibl}obaUgagnggarbRPUT^mPIMNN[aa[brbg Õ×È¿ßûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹£›•†‹’€uv€‹vrw‹urvrurah[aggUTb^hrUab^KPWUbRMTRORCPP=TSINNZVWPWocTg[PPW·ÖÕµÔõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁtŠvururg[gYYlU[bd|ugmWddOabNFMPWIIC=OC=RI@TMRR:O:IFRIUNRNRNNURKRcWWlWWWcRZ›×Ò¢Óóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿë€vuŠr[^uhiUbWgbRKVRUYbbbaTXacNOU>M:OIFFCC9RPGPPUVFPPNPGGPU[[WdbcQ[k–²ÝÕÓðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷“tlhrbY^iYaUSiU^UOUTOT[T^OGR>MKF=GN:=>>>9>>M>GJKJUp[UNGGGEWPWbU[ZQ\»ÔÃÏÔõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤^lhiidUS[VY^b^^V^NTUMIR[NRRKMGVY=ON@=3GB;IMGCVYYbZLREGCPPcWVbUPQ{±¿°È×õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤dgbRY^POOT[gX^dRIPNSJFTIRFFNPNMRM>2FF-GUN>8MFOICF@6QCIWPZGCEENG[[VV`WZI{ÈÐþ×ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷‘gmMFSYVOWTRRVbUOTNOJFRNKIRUbKII=FRF0::?=@3::@POL@PWGEBKVKPN[Z>IUŒ¿Ð¦¾éûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúëÖËóÿÿÿÿÿÿÿÿÿÿÿÞYgaRYRUY^FKYbYTROURMRR@IN?RMM>V?;:2>>3IG@F:F:;FIK<>KJPD;GGBWP@G::@GPPPNo[WMbµÓ±¾ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖ£ž†ghtËóÿÿÿÿÿÿÿÿùˆ^YJJOJJRVYabU^UdNVdaRUIFURMF;d;-3ENIFN@@;?G@BJRE9E4=;GNQWE@C2EPQLBGGPIbcbocGb°¿±¢Ü÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíw••€††turÃî÷ÿÿÿÿô“YiUFRIYUO^UJY^bOMRN=RTMKCOOKI>>M>//mF-@FF>GH=:GG-:@49EG<;?7BLB.671GEB;FN@NEIKGUZWUYWG-n··±¿È÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¤thttzruu}uwig^uttgrbcJY^JJUbRJURCMRYIMMPRFJ=@@@F8@>/=3/0/>8u¦¿±×ÕôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿㆬÑßÜžutruumivlllbahSTIOR@MMFJRRINMRIJKY?MNNPJO=:F::O--1-?;83::CFG-89B-F-2MN\\PI>--;vÓݱàúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí÷þþû÷íçܺugiiluli^XUbI>=OR>MIC=FOIXRKMJ>OGW?J?J=CC=;1=1>/)8'/:F?:29F92:;0:G:;GF<:-1.2A1P:F@E7E:-.;;RORRI;F19\ÄÒÈÏëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôÖÁiMMhÑÂtgagmlibiJJVJURI?KYORGMK?CI:RUIM3MFFFVO??9(--:83/--3;--8>:.;)9@11@2111-B;-..6.G:?J8>9<.%23GWVNGNEIF:;‹ÈÅİÓõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí²Y=^^guzr›Ç›aogmhb^UYJS^^IMNSO=FRF=F@FNNF=?FOF=:/-:9(91/9.F?8:F8-3:C-32?30;>9-)')V=/*-/0;;FM9PcM91:9G:KNFNGFOI.<;ŒÒÈ¿¿ØùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûË“”:=amgbvi€Ž®Ã‹vdgXUSJYFSIOIb^?;OJFR:?JJRM??F1=IR?F3/8:/(-.+-J?18-"0?%:91-;?:3-/)-GL40--/N@PK8-@<-?#;3==IGF@JCGN6@2l¥ÈÉ¿Èéûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿô•^†€^=/MbS€€”••€€›vibcaJJIOFYYJ==NFJ=OO=FJIIC1.->I?;:- '->-4G923;;)99(*)F-1.----9-1(332=6$);YRNA%)'@R;*N.*9M@2FGMM====??1:R82-!+:(-(-''2F2-0894--(C1-4+9.1!..-F@6.*Q@K+3/(2MG3:$-F::G<@@A9]¢¢ÈµÄðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«UztMmXO/Ouu€zrŠurUT}‹lUTKF>FRNGROVT=?J3>=F>=-FO=?(lO-'3// (-:14-8-<-1..2)2:96$.;.3'* +-+-'<@9.FO??==;J//O1/-0--('--8%0:'-1+1-2-.*26(-)(-)--='%::'-8.*-'))2)*:G:9MGN@::6L‘±ÄÈÉàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷wmz•mm=@€Š•‰¡žžulk^OOhwglRRMFFIMF=@M;=>FF=I2@9//2<.82---!/-- - ->3'.4.'-*".%2*-"%-9%-('(-% ))-:''%6--11.3-CIi†hXrOXmX€•ž––­£iiˆU^OSr‹cIRJ?13=FC?@@M0-M>>3-::3323223(%-+-+L49)%+/!-'-(/3)))2 +*.-:- -"1- ' '/! ''*)*..13>:<;:-.WŒÈϧ´ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷MTtXOOJ= >mzO€•–’žÁ¤›wˆŠuJ>RkroPTC1>O:>==?FFGF(--..-/-89-33.*/ *(LP*(" /1).'*' *. 4 ''! ( -)&%-)2+1+-KC;<.;;@Gˆ°ÆÓÆÔðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãS03//>M^amO>azz}†¡Â›•”†t}SCOMNmrdP@>?C=>;:M>8=?00=3?--*:.---=C.%.(+1 /"))*!+(/0*%ŠÃЀ*$# ' ' %(% -)+-('2-3=0>@M1Jn?]È×´±Øùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷£m‰M/'''3[ž”tuT^rm††ž•††}“u•†iRRO>OikbM21"FGG9:€¾È¿ÈæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖ^m»ÂO/OOam”’ŠŠ^rYiwž€€‰††u”€Š‰zORI-/Oy[PF3-??F@:2-/'33F//.2)610@@-*).2) %)*'--'8%Wõÿÿÿÿÿÿÿ¤%7'&)6$23 ')+"?1%9126)-K‘ÓȦÓîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿù“{Œ–“'Satit••†Šitmm^tmv“–­«‰‰•mUuiOUYIgY@NF8:?:-30?:-1/F3%.3-0+2:<2P. $%+(8.23%).7.-)"íÿÿÿÿÿÿÿÿÿg '%) $3-!1+%&*-!(/3-.4¥±µ¶Óôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ뤤‘‘‘S'Sˆb[rm‰’mo”tbb^ˆ}€ˆ•‰”wg^^Sa^SJ/-r“lT=?2M=--:/!/2:1/(-()/+((+d:*(-8+.("%*)'ËÿÿÿÿÿÿÿÿÿÿË %  ''2' ( %"#(%*$)-2..%!*6% ;nµ©ÈµØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖˆzwˆ¥®–UM†€hˆ}r^hŠ}tvg^XuŠwwz•­•Šwbr|iU?=-=hb[WL>R0-3/!0!-0/-332'(%6)(+".'("-((-")'-ŽÿÿÿÿÿÿÿÿÿÿÿÜ' %   ( %% !%..* %.3@?:9ŒÈ§Ÿ¿ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ËÑ­‰†“‹¥¥’^‰††}iYtwib“•Šzhth€’}z‰‰}w}diUF==bOF^cF8;W4#?-0' !/+*-"2-1 +)(!* ! .?/(-9óÿÿÿÿÿÿÿÿÿÿÿÑ! %(+'!'**/) !'-')Lµ¢·Ð÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùºÇËÔÞ››–– ™‹–†huttTRUu­Št^ht}u‰mmXTg^S^u}‰^:WUSPoŠ’rBP:/:3/(+-:00+ +$%1* %% "-;½ÿÿÿÿÿÿÿÿÿÿÿÿ»$ ' &'$% %))669;-‹ÄÓ¿¢Õúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­†»½ÇÜÄ®ž•†‹¥±¥°’hz€UXaaat‰t€z}}Umwibw^Yz†‹SXbMmUYMRg†ŠvI13--0 -(!(3-($%'%+)-GûÿÿÿÿÿÿÿÿÿÿÿûT'') ! ')%%%.".2-2-0Z¦È´Ó§äÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó ™–»­£»ÑÇíz}‘²² –›“ˆirSOh”zmzŠu^h^Y^tŠˆ€ŠgiMFt†tw^oRi‹žvKNN)6* 1*%(11+++  %ÜÿÿÿÿÿÿÿÿÿÿÿÿÔ% .' %!' !+ %))66(!9c§Èµ¿Òëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðϲ“£››«¼ËÜ®’Šˆ‘¥¦²¤ltwmSSJMSwhT^^SXub^twb^w•}uzˆ†a‰‰‰›”’ŒZ<9'!#! /1#! !!(& vÿÿÿÿÿÿÿÿÿÿÿÿ÷@3'.:')* ! *(%$)2221]©ÕÓ´ÔõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíЮž»º ¶Ð®»ž”Š™¢¥ ““hOhS?Jg}^m€€rg}^^ramžž¤Š¡›htˆtrŠ“€|†yU=-)*#!((/'%.* )íÿÿÿÿÿÿÿÿÿÿÿÿ¯4I629%" '&' %.*()(+..WӵȢÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúéÅ®¯ÑÑž¦¶¦ÇС•¢±°¦Ši^^gS8r€dituhruah€Š›£•‰£‹m^rІmrarUˆ“gG@*%++ –ÿÿÿÿÿÿÿÿÿÿÿÿã'2#'     %%'!%)-++*27Z°ÄŸ§´îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÞ·®ÐѼ¯®®ÄÑ»¯€€™¿¶–hOb}aMMS}TUStŠSS^m‰—†uކwt}||“†mr^a‰uglb93'!! óÿÿÿÿÿÿÿÿÿÿÿúU     !)%'(98.%{µµŸÆàùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùØÃÐÑ®¯ µÐ¼†wt‹¥·¢ŽlYb^^¡aOFM]w€}€“ˆŠy€†«”‰mhz’ua^rakhSUuvZd)'!"ÃÿÿÿÿÿÿÿÿÿÿÿÿÁ)'  -       ' '-9-0224{ÄÈÈÈßõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùäÃÄǺ¤u–½½¼“lyŒ¢¥¥€Šž£’gdKM^hth€†wthtt}z}ІzhhrbuwuibUUhrR  &Pûÿÿÿÿÿÿÿÿÿÿÿç6@.  -     +%+@3*)FŒ¿ÓŸŸÔôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüßż¯›£›¯½»­•€€‘¥±Ä›J?IuuXrbr|mˆ}^r‰umS^tzmbr†wX‰uiryTgyu’yK+ +'!ÖÿÿÿÿÿÿÿÿÿÿÿÿY%( "      '))  ) *.1:)GŒ°ÐŸ±Õûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùܰ®Â®½Çä•tl‹¢±™gNFbmbbdrat}hzŠŠX^i[rhvarguu|€uˆiVbtŠ‹kQ-?-%ùÿÿÿÿÿÿÿÿÿÿÿÐ -          () )-.836))P¦ÓÈŸµéÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôØ·««­‰y› ž›†€Œ™·¥“Uog^•iUuruŽ€Šmgu|‰›”‰”‰hoІ•ygrJTzt†m\Q2* ‹ÿÿÿÿÿÿÿÿÿÿÿ÷3.          !%"**1:91)-Z§°µ§Ó÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíÏ®«¤¡”¡‰›«Çžtv™µ°–uaTu^^ŽtmzzXr’”†twz›’•“•’–¡Š}t^hŠ’kkgtrL+‹ÿÿÿÿÿÿÿÿÿÿÿ’          '%.).29.)-*2k¿¢¿ÈÕõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíÈ››¬»›Ž­£•i¢¿°¤rat€o€ŽŠ‰z†z†€Š€†‰}£­£ž £••›¯”‰€†tgkc[[W:)3-/Yÿÿÿÿÿÿÿÿÿÿã           &&< ) 3336+K{ÈÕÈäÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúãÄ®¤­žm†yŠ›Š^bv¦·¥“vŠtikŽ’€m‹’”‰››«›•›¬«ž“›¯›‰ouž’|ghdGFKDP<1Ôÿÿÿÿÿÿÿÿú-             '%(>   %%)2:;;3*1cµàüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÞ·¤—¡|‹‹uކhv¿¿·“†i}‰”zhmow‰’•ž••”¯•‰ž¬¯†zubr€“ŠzŠˆzNI/PWG( Ôÿÿÿÿÿÿÿ† )           ) -) &%9(2E@N*.2*% GI          %CóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíË£’žººÑж¶Š€kŒ±É²®“¤—t|””uuzhgtuT^ld[ba[mm^bPG[P;:-9BZ.         "-ÜÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÏ«‘•¯ÇÑÇĶ’vl·Éż”†”•Ž‹“ziit|ctYwˆlhyr^vggMFF3-1;(00+Rb0          %‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÔ¯Š”¶¶Âð®ˆc[·Ï·»£–””†magylhu€^u}rhguhrdROPF-F-.(%Ln-        %% $".íÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüäÅ›ž¯¶Ç¾˜Žcl‘´Å·®›†€€†•}gggv^htgmUor]ibY;?1=/:<:3-1*"nvc"(      " "%%®ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùä½›’ž¶¶¶½®£|Wl¥¿Ä½ •‹’‹€mTMbrVYYbUlVYvVVJ??+ '!F;<;+<LZL         &""V÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ󨥓€†£ÒÄÇÇ’{ok¦Ó·»®•m€t^mbIttU[Uu^YgOR<:;.;-!--2( :d<KvK      %%. %)*ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóÏ«’}‰—Äö–›r{¿ÅÄ£›ugrckbYWIRUdgnU;-FK<:8+1-(10.199HZyp9    "$&1%"""–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðØ¤›ŠŽ–½·®¯®kcŽ´ÉÓÁ†gaT[mWTRIRgbUKFRGNP+;;LQ42-0*9*8+WpG       5 .PóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿîРˆˆ•—®¾½•bV‘·ÈÈ›yŽrdbghMRSccnKKFCO:<<:G:1.14CC+K**""Bvl(    "* """*%ÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúéÅ‹Ž|’–«½™ggn¢ÈÈ¿’ulUMoUOMcdY^FRPFFC-/*%1BG1::F2E.+1P11nV   %"GÐíôóØ&&7&*‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú羋y€ŠŽ€Œ‹•g]¥ÈÅ·™lUUW[PFOKC?LI=4F;4::+-9141CV9<'("Z{A  "  &Œùÿÿÿÿÿÿë{&Díÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùß½’’›—¯›‹{{¥ÉÈ¥vMIbWNZUU;;IICFFW<449*(C:G<--+%*B)%Blv9 1]úÿÿÿÿÿÿÿÿÿÜA"7™ÒëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõÜÄ‹w}€’–™–ŠŽZްÉÏ¢nJSPRRZ:CRC?K:PM:P90CPGB;;44AB4DC`™ŒF %4DAGL7;ÔûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÞ¾ldkrŽ€y{iL~ÈÕÕ™lccyZ]]B"@AAf§×òýõᵘ~§§‚5QƒQ_nffj‚„õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöåÙȧyqcP:Wd{¿áöûýךf…eD,f‚f`…‚‚jje³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöèÙ̧¶™qLKZµÙøýöÌe,f…Ÿ§…§‚j‚……feáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñêáÒ¶—Žo[kq~ÆæøýõÒµ§š§§‚…‚s„„³üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñèâÒ™ŽƒƒrPW‚ÍÛøøñÌšš¹¹‚f…s„‡òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüñèâÉŸ™Œy679qµÍåøøá¹¸œ¸‚f„‡Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöññ࿘cGBcš¹¹åøö⸸¸‡‡¸ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöïêÙÆµƒQEpp\ƒšÎèýøÛÚª¨¨öÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöñòâ¹§y\\A4`§³ÀèøìÚÊêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿññêâ³§fEE7QƒšÀÎìïåÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþññêÙ¸š‚GB6\š¸ÀâüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüòèêÚ¸œƒfAWp¸ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüñèåÚΜ‚qBÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöñèåÚÀœ…úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöèìñÎöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòïüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿÿÿÿÿÿÿÿÿÿðøÿÿÿÿÿÿÿÿÿÿÿàðÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÀ?ÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿ€ÿÿÿÿÿÿ?ÿÿÿÿÿÿÀÿÿÿÿÿþ?àÿÿÿÿÿþàÿÿÿÿÿþÿàÿÿÿÿüÿàÿÿÿÿøÿàÿÿÿÿøÿÀÿÿÿÿðÿÀÿÿÿÿøÿ€?ÿÿÿþÿ€ÿÿÿÿÿÿÿÿÿÀþÿÿÿÿðþÿÿÿüüÿÿÿÿ?üÿÿÿÿÀ?øÿÿÿÿððÿÿÿÿüð?ÿÿÿÿà?ÿÿÿÿ€?À?ÿÿÿÿàÀÿÿÿÿøÿÿÿÿÿþÿÿÿÿÿÿ€ÿÿÿÿÿÿàÿÿÿÿÿÿøÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿðÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿð€ÿÿÿÿÿÿÿÿÿÿÿü?à?ÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿibm-3270-3.3.10ga4/ws3270/mkversion.sh0000755000175000017500000000462111254565673016520 0ustar bastianbastian#! /bin/sh # # Copyright (c) 1999-2009, Paul Mattes. # Copyright (c) 2005, Don Russell. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor # the names of their contributors may be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Create version.o from version.txt #set -x # Ensure that 'date' emits 7-bit U.S. ASCII. LANG=C LC_ALL=C export LANG LC_ALL set -e . ./version.txt builddate=`date` sccsdate=`date +%Y/%m/%d` user=${LOGNAME-$USER} # Create an all numeric timestamp for rpqnames. # rpq.c will return this string of numbers in bcd format # It is OK to change the length (+ or -), but use # decimal (0-9) digits only. Length must be even number of digits. rpq_timestamp=`date +%Y%m%d%H%M%S` trap 'rm -f version.c' 0 1 2 15 cat <version.c char *build = "${2-x3270} v$version $builddate $user"; char *app_defaults_version = "$adversion"; static char sccsid[] = "@(#)${2-x3270} v$version $sccsdate $user"; const char *build_rpq_timestamp = "$rpq_timestamp"; const char *build_rpq_version = "$version"; EOF ${1-cc} -c version.c ibm-3270-3.3.10ga4/ws3270/host.c0000644000175000017500000006224611254565704015267 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * host.c * This module handles the ibm_hosts file, connecting to and * disconnecting from hosts, and state changes on the host * connection. */ #include "globals.h" #include "appres.h" #include "resources.h" #include "actionsc.h" #include "hostc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utilc.h" #include "xioc.h" #include #define RECONNECT_MS 2000 /* 2 sec before reconnecting to host */ #define RECONNECT_ERR_MS 5000 /* 5 sec before reconnecting to host */ #define MAX_RECENT 5 enum cstate cstate = NOT_CONNECTED; Boolean std_ds_host = False; Boolean no_login_host = False; Boolean non_tn3270e_host = False; Boolean passthru_host = False; Boolean ssl_host = False; #define LUNAME_SIZE 16 char luname[LUNAME_SIZE+1]; char *connected_lu = CN; char *connected_type = CN; Boolean ever_3270 = False; char *current_host = CN; char *full_current_host = CN; unsigned short current_port; char *reconnect_host = CN; char *qualified_host = CN; struct host *hosts = (struct host *)NULL; static struct host *last_host = (struct host *)NULL; static Boolean auto_reconnect_inprogress = False; static int net_sock = -1; #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ static unsigned long reconnect_id = 0; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ static void save_recent(const char *); #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ static void try_reconnect(void); #endif /*]*/ static char * stoken(char **s) { char *r; char *ss = *s; if (!*ss) return NULL; r = ss; while (*ss && *ss != ' ' && *ss != '\t') ss++; if (*ss) { *ss++ = '\0'; while (*ss == ' ' || *ss == '\t') ss++; } *s = ss; return r; } /* * Read the host file */ void hostfile_init(void) { FILE *hf; char buf[1024]; static Boolean hostfile_initted = False; struct host *h; char *hostfile_name; if (hostfile_initted) return; hostfile_initted = True; hostfile_name = appres.hostsfile; if (hostfile_name == CN) hostfile_name = xs_buffer("%s/ibm_hosts", appres.conf_dir); else hostfile_name = do_subst(appres.hostsfile, True, True); hf = fopen(hostfile_name, "r"); if (hf != (FILE *)NULL) { while (fgets(buf, sizeof(buf), hf)) { char *s = buf; char *name, *entry_type, *hostname; char *slash; if (strlen(buf) > (unsigned)1 && buf[strlen(buf) - 1] == '\n') { buf[strlen(buf) - 1] = '\0'; } while (isspace(*s)) s++; if (!*s || *s == '#') continue; name = stoken(&s); entry_type = stoken(&s); hostname = stoken(&s); if (!name || !entry_type || !hostname) { popup_an_error("Bad %s syntax, entry skipped", ResHostsFile); continue; } h = (struct host *)Malloc(sizeof(*h)); if (!split_hier(NewString(name), &h->name, &h->parents)) { Free(h); continue; } h->hostname = NewString(hostname); /* * Quick syntax extension to allow the hosts file to * specify a port as host/port. */ if ((slash = strchr(h->hostname, '/'))) *slash = ':'; if (!strcmp(entry_type, "primary")) h->entry_type = PRIMARY; else h->entry_type = ALIAS; if (*s) h->loginstring = NewString(s); else h->loginstring = CN; h->prev = last_host; h->next = (struct host *)NULL; if (last_host) last_host->next = h; else hosts = h; last_host = h; } (void) fclose(hf); } else if (appres.hostsfile != CN) { popup_an_errno(errno, "Cannot open " ResHostsFile " '%s'", appres.hostsfile); } Free(hostfile_name); #if defined(X3270_DISPLAY) /*[*/ /* * Read the recent-connection file, and prepend it to the hosts list. */ save_recent(CN); #endif /*]*/ } /* * Look up a host in the list. Turns aliases into real hostnames, and * finds loginstrings. */ static int hostfile_lookup(const char *name, char **hostname, char **loginstring) { struct host *h; hostfile_init(); for (h = hosts; h != (struct host *)NULL; h = h->next) { if (h->entry_type == RECENT) continue; if (!strcmp(name, h->name)) { *hostname = h->hostname; if (h->loginstring != CN) { *loginstring = h->loginstring; } else { *loginstring = appres.login_macro; } return 1; } } return 0; } #if defined(LOCAL_PROCESS) /*[*/ /* Recognize and translate "-e" options. */ static const char * parse_localprocess(const char *s) { int sl = strlen(OptLocalProcess); if (!strncmp(s, OptLocalProcess, sl)) { if (s[sl] == ' ') return(s + sl + 1); else if (s[sl] == '\0') { char *r; r = getenv("SHELL"); if (r != CN) return r; else return "/bin/sh"; } } return CN; } #endif /*]*/ static char *pfxstr = "AaCcLlNnPpSs"; /* * A new hostname parser. A bit more general. * Allows backslashes to quote anything. * Allows [ ] to quote : and @ inside any name (LU, host or port). * * Because the syntax is so awful, it needs to be picked apart explicitly. * Returns 0 for success, -1 for syntax error. */ static int new_split_host(char *raw, char **lu, char **host, char **port, unsigned *prefixes) { char *start = raw; int sl = strlen(raw); char *s; char *uq = NULL; int uq_len = 0; char *qmap = NULL; char *rqmap; char *errmsg = "nonspecific"; int rc = -1; Boolean quoted = False; int bracketed = 0; int n_ch = 0; int n_at = 0; int n_colon = 0; char *part[3] = { NULL, NULL, NULL }; int part_ix = 0; char *pfx; *lu = NULL; *host = NULL; *port = NULL; *prefixes = 0; /* Trim leading and trailing blanks. */ while (sl && isspace(*start)) { start++; sl--; } while (sl && isspace(start[sl - 1])) sl--; if (!sl) { errmsg = "empty string"; goto done; } /* * 'start' now points to the start of the string, and sl is its length. */ /* * Create a bit-map of quoted characters. * This includes and character preceded by \, and any : or @ inside * unquoted [ and ]. * This can fail if an unquoted [ is found inside a [ ], or if an * unquoted [ is not terminated, or if whitespace is found. * Backslashes and unquoted square brackets are deleted at this point. * Leaves a filtered copy of the string in uq[]. */ uq = Malloc(sl + 1); qmap = Malloc(sl + 1); memset(qmap, ' ', sl); qmap[sl] = '\0'; rqmap = qmap; for (s = start; s - start < sl; s++) { if (isspace(*s)) { errmsg = "contains whitespace"; goto done; } if (quoted) { qmap[uq_len] = '+'; quoted = False; uq[uq_len++] = *s; continue; } else if (*s == '\\') { quoted = True; continue; } if (bracketed) { if (*s == ':' || *s == '@') qmap[uq_len] = '+'; /* add the character below */ else if (*s == '[') { errmsg = "nested '['"; goto done; } else if (*s == ']') { /* * What follows has to be the end of the * string, or an unquoted ':' or a '@'. */ if ((s - start) == sl - 1 || *(s + 1) == '@' || *(s + 1) == ':') bracketed = 0; else { errmsg = "text following ']'"; goto done; } continue; } } else if (*s == '[') { /* * Make sure that what came before is the beginning of * the string or an unquoted : or @. */ if (uq_len == 0 || (qmap[uq_len - 1] == ' ' && (uq[uq_len - 1] == ':' || uq[uq_len - 1] == '@'))) bracketed = 1; else { errmsg = "text preceding '['"; goto done; } continue; } uq[uq_len++] = *s; } if (quoted) { errmsg = "dangling '\\'"; goto done; } if (bracketed) { errmsg = "missing ']'"; goto done; } if (!uq_len) { errmsg = "empty hostname"; goto done; } uq[uq_len] = '\0'; /* Trim off prefixes. */ s = uq; while ((pfx = strchr(pfxstr, *s)) != NULL && qmap[(s + 1) - uq] == ' ' && *(s + 1) == ':') { *prefixes |= 1 << ((pfx - pfxstr) / 2); s += 2; rqmap += 2; } start = s; /* * Now check for syntax: [LUname@]hostname[:port] * So more than one @, more than one :, : before @, or no text before @ * or :, or no text after : are all syntax errors. * This also lets us figure out which elements are there. */ while (*s) { if (rqmap[s - start] == ' ') { if (*s == '@') { if (n_ch == 0) { errmsg = "empty LU name"; goto done; } if (n_colon > 0) { errmsg = "'@' after ':'"; goto done; } if (n_at > 0) { errmsg = "double '@'"; goto done; } n_at++; n_ch = 0; } else if (*s == ':') { if (n_ch == 0) { errmsg = "empty hostname"; goto done; } if (n_colon > 0) { errmsg = "double ':'"; goto done; } n_colon++; n_ch = 0; } else n_ch++; } else n_ch++; s++; } if (!n_ch) { if (n_colon) errmsg = "empty port"; else errmsg = "empty hostname"; goto done; } /* * The syntax is clean, and we know what parts there are. * Split them out. */ if (n_at) { *lu = Malloc(uq_len + 1); part[0] = *lu; } *host = Malloc(uq_len + 1); part[1] = *host; if (n_colon) { *port = Malloc(uq_len + 1); part[2] = *port; } s = start; n_ch = 0; while (*s) { if (rqmap[s - start] == ' ' && (*s == '@' || *s == ':')) { part[part_ix][n_ch] = '\0'; part_ix++; n_ch = 0; } else { while (part[part_ix] == NULL) part_ix++; part[part_ix][n_ch++] = *s; } s++; } part[part_ix][n_ch] = '\0'; /* Success! */ rc = 0; done: if (uq != NULL) Free(uq); if (qmap != NULL) Free(qmap); if (rc < 0) popup_an_error("Hostname syntax error: %s", errmsg); return rc; } /* * Strip qualifiers from a hostname. * Returns the hostname part in a newly-malloc'd string. * 'needed' is returned True if anything was actually stripped. * Returns NULL if there is a syntax error. */ static char * split_host(char *s, Boolean *ansi, Boolean *std_ds, Boolean *passthru, Boolean *non_e, Boolean *secure, Boolean *no_login, char *xluname, char **port, Boolean *needed) { char *lu; char *host; unsigned prefixes; Boolean *pfxptr[6]; int i; *needed = False; /* Call the sane, new version. */ if (new_split_host(s, &lu, &host, port, &prefixes) < 0) return NULL; else { if (lu) { strncpy(xluname, lu, LUNAME_SIZE); xluname[LUNAME_SIZE] = '\0'; } else *xluname = '\0'; pfxptr[0] = ansi; /* A: */ pfxptr[1] = no_login; /* C: */ pfxptr[2] = secure; /* L: */ pfxptr[3] = non_e; /* N: */ pfxptr[4] = passthru; /* P: */ pfxptr[5] = std_ds; /* S: */ for (i = 0; i < 6; i++) if (prefixes & (1 << i)) *pfxptr[i] = True; *needed = (strcmp(s, host) != 0); return host; } } /* * Network connect/disconnect operations, combined with X input operations. * * Returns 0 for success, -1 for error. * Sets 'reconnect_host', 'current_host' and 'full_current_host' as * side-effects. */ int host_connect(const char *n) { char nb[2048]; /* name buffer */ char *s; /* temporary */ const char *chost; /* to whom we will connect */ char *target_name; char *ps = CN; char *port = CN; Boolean resolving; Boolean pending; static Boolean ansi_host; const char *localprocess_cmd = NULL; Boolean has_colons = False; if (CONNECTED || auto_reconnect_inprogress) return 0; /* Skip leading blanks. */ while (*n == ' ') n++; if (!*n) { popup_an_error("Invalid (empty) hostname"); return -1; } /* Save in a modifiable buffer. */ (void) strcpy(nb, n); /* Strip trailing blanks. */ s = nb + strlen(nb) - 1; while (*s == ' ') *s-- = '\0'; /* Remember this hostname, as the last hostname we connected to. */ Replace(reconnect_host, NewString(nb)); #if defined(X3270_DISPLAY) /*[*/ /* Remember this hostname in the recent connection list and file. */ save_recent(nb); #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ if ((localprocess_cmd = parse_localprocess(nb)) != CN) { chost = localprocess_cmd; port = appres.port; } else #endif /*]*/ { Boolean needed; /* Strip off and remember leading qualifiers. */ if ((s = split_host(nb, &ansi_host, &std_ds_host, &passthru_host, &non_tn3270e_host, &ssl_host, &no_login_host, luname, &port, &needed)) == CN) return -1; /* Look up the name in the hosts file. */ if (!needed && hostfile_lookup(s, &target_name, &ps)) { /* * Rescan for qualifiers. * Qualifiers, LU names, and ports are all overridden * by the hosts file. */ Free(s); if (!(s = split_host(target_name, &ansi_host, &std_ds_host, &passthru_host, &non_tn3270e_host, &ssl_host, &no_login_host, luname, &port, &needed))) return -1; } chost = s; /* Default the port. */ if (port == CN) port = appres.port; } /* * Store the original name in globals, even if we fail the connect * later: * current_host is the hostname part, stripped of qualifiers, luname * and port number * full_current_host is the entire string, for use in reconnecting */ if (n != full_current_host) { Replace(full_current_host, NewString(n)); } Replace(current_host, CN); if (localprocess_cmd != CN) { if (full_current_host[strlen(OptLocalProcess)] != '\0') current_host = NewString(full_current_host + strlen(OptLocalProcess) + 1); else current_host = NewString("default shell"); } else { current_host = s; } has_colons = (strchr(chost, ':') != NULL); Replace(qualified_host, xs_buffer("%s%s%s%s:%s", ssl_host? "L:": "", has_colons? "[": "", chost, has_colons? "]": "", port)); /* Attempt contact. */ ever_3270 = False; net_sock = net_connect(chost, port, localprocess_cmd != CN, &resolving, &pending); if (net_sock < 0 && !resolving) { #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_DISPLAY) /*[*/ if (appres.once) { /* Exit when the error pop-up pops down. */ exiting = True; } else # endif /*]*/ if (appres.reconnect) { auto_reconnect_inprogress = True; reconnect_id = AddTimeOut(RECONNECT_ERR_MS, try_reconnect); } #endif /*]*/ /* Redundantly signal a disconnect. */ st_changed(ST_CONNECT, False); return -1; } /* Still thinking about it? */ if (resolving) { cstate = RESOLVING; st_changed(ST_RESOLVING, True); return 0; } /* Success. */ /* Set pending string. */ if (ps == CN) ps = appres.login_macro; if (ps != CN) login_macro(ps); /* Prepare Xt for I/O. */ x_add_input(net_sock); /* Set state and tell the world. */ if (pending) { cstate = PENDING; st_changed(ST_HALF_CONNECT, True); } else { cstate = CONNECTED_INITIAL; st_changed(ST_CONNECT, True); #if defined(X3270_DISPLAY) /*[*/ if (appres.reconnect && error_popup_visible()) popdown_an_error(); #endif /*]*/ } return 0; } #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ /* * Reconnect to the last host. */ static void host_reconnect(void) { if (auto_reconnect_inprogress || current_host == CN || CONNECTED || HALF_CONNECTED) return; if (host_connect(reconnect_host) >= 0) auto_reconnect_inprogress = False; } /* * Called from timer to attempt an automatic reconnection. */ static void try_reconnect(void) { auto_reconnect_inprogress = False; host_reconnect(); } /* * Cancel any pending reconnect attempt. */ void host_cancel_reconnect(void) { if (auto_reconnect_inprogress) { RemoveTimeOut(reconnect_id); auto_reconnect_inprogress = False; } } #endif /*]*/ void host_disconnect(Boolean failed) { if (CONNECTED || HALF_CONNECTED) { x_remove_input(); net_disconnect(); net_sock = -1; #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ # if defined(X3270_DISPLAY) /*[*/ if (appres.once) { if (error_popup_visible()) { /* * If there is an error pop-up, exit when it * pops down. */ exiting = True; } else { /* Exit now. */ x3270_exit(0); return; } } else # endif /*]*/ if (appres.reconnect && !auto_reconnect_inprogress) { /* Schedule an automatic reconnection. */ auto_reconnect_inprogress = True; reconnect_id = AddTimeOut(failed? RECONNECT_ERR_MS: RECONNECT_MS, try_reconnect); } #endif /*]*/ /* * Remember a disconnect from ANSI mode, to keep screen tracing * in sync. */ #if defined(X3270_TRACE) /*[*/ if (IN_ANSI && toggled(SCREEN_TRACE)) trace_ansi_disc(); #endif /*]*/ cstate = NOT_CONNECTED; /* Propagate the news to everyone else. */ st_changed(ST_CONNECT, False); } } /* The host has entered 3270 or ANSI mode, or switched between them. */ void host_in3270(enum cstate new_cstate) { Boolean now3270 = (new_cstate == CONNECTED_3270 || new_cstate == CONNECTED_SSCP || new_cstate == CONNECTED_TN3270E); cstate = new_cstate; ever_3270 = now3270; st_changed(ST_3270_MODE, now3270); } void host_connected(void) { cstate = CONNECTED_INITIAL; st_changed(ST_CONNECT, True); #if defined(X3270_DISPLAY) /*[*/ if (appres.reconnect && error_popup_visible()) popdown_an_error(); #endif /*]*/ } /* Swap out net_sock. */ void host_newfd(int s) { /* Shut off the old. */ x_remove_input(); /* Turn on the new. */ net_sock = s; x_add_input(net_sock); } #if defined(X3270_DISPLAY) /*[*/ /* Comparison function for the qsort. */ static int host_compare(const void *e1, const void *e2) { const struct host *h1 = *(const struct host **)e1; const struct host *h2 = *(const struct host **)e2; int r; if (h1->connect_time > h2->connect_time) r = -1; else if (h1->connect_time < h2->connect_time) r = 1; else r = 0; #if defined(CFDEBUG) /*[*/ printf("%s %ld %d %s %ld\n", h1->name, h1->connect_time, r, h2->name, h2->connect_time); #endif /*]*/ return r; } #endif /*]*/ #if defined(CFDEBUG) /*[*/ static void dump_array(const char *when, struct host **array, int nh) { int i; printf("%s\n", when); for (i = 0; i < nh; i++) { printf(" %15s %ld\n", array[i]->name, array[i]->connect_time); } } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* Save the most recent host in the recent host list. */ static void save_recent(const char *hn) { char *lcf_name = CN; FILE *lcf = (FILE *)NULL; struct host *h; struct host *rest = (struct host *)NULL; int n_ent = 0; struct host *h_array[(MAX_RECENT * 2) + 1]; int nh = 0; int i, j; time_t t = time((time_t *)NULL); /* Allocate a new entry. */ if (hn != CN) { h = (struct host *)Malloc(sizeof(*h)); h->name = NewString(hn); h->parents = NULL; h->hostname = NewString(hn); h->entry_type = RECENT; h->loginstring = CN; h->connect_time = t; h_array[nh++] = h; } /* Put the existing entries into the array. */ for (h = hosts; h != (struct host *)NULL; h = h->next) { if (h->entry_type != RECENT) break; h_array[nh++] = h; } /* Save the ibm_hosts entries for later. */ rest = h; if (rest != (struct host *)NULL) rest->prev = (struct host *)NULL; /* * Read the last-connection file, to capture the any changes made by * other instances of x3270. */ if (appres.connectfile_name != CN && strcasecmp(appres.connectfile_name, "none")) { lcf_name = do_subst(appres.connectfile_name, True, True); lcf = fopen(lcf_name, "r"); } if (lcf != (FILE *)NULL) { char buf[1024]; while (fgets(buf, sizeof(buf), lcf) != CN) { int sl; time_t connect_time; char *ptr; /* Pick apart the entry. */ sl = strlen(buf); if (buf[sl - 1] == '\n') buf[sl-- - 1] = '\0'; if (!sl || buf[0] == '#' || (connect_time = strtoul(buf, &ptr, 10)) == 0L || ptr == buf || *ptr != ' ' || !*(ptr + 1)) continue; h = (struct host *)Malloc(sizeof(*h)); h->name = NewString(ptr + 1); h->parents = NULL; h->hostname = NewString(ptr + 1); h->entry_type = RECENT; h->loginstring = CN; h->connect_time = connect_time; h_array[nh++] = h; if (nh > (MAX_RECENT * 2) + 1) break; } fclose(lcf); } /* Sort the array, in reverse order by connect time. */ #if defined(CFDEBUG) /*[*/ dump_array("before", h_array, nh); #endif /*]*/ qsort(h_array, nh, sizeof(struct host *), host_compare); #if defined(CFDEBUG) /*[*/ dump_array("after", h_array, nh); #endif /*]*/ /* * Filter out duplicate host names, and limit the array to * MAX_RECENT entries total. */ hosts = (struct host *)NULL; last_host = (struct host *)NULL; for (i = 0; i < nh; i++) { h = h_array[i]; if (h == (struct host *)NULL) continue; h->next = (struct host *)NULL; if (last_host != (struct host *)NULL) last_host->next = h; h->prev = last_host; last_host = h; if (hosts == (struct host *)NULL) hosts = h; n_ent++; /* Zap the duplicates. */ for (j = i+1; j < nh; j++) { if (h_array[j] && (n_ent >= MAX_RECENT || !strcmp(h_array[i]->name, h_array[j]->name))) { #if defined(CFDEBUG) /*[*/ printf("%s is a dup of %s\n", h_array[j]->name, h_array[i]->name); #endif /*]*/ Free(h_array[j]->name); Free(h_array[j]->hostname); Free(h_array[j]); h_array[j] = (struct host *)NULL; } } } /* Re-attach the ibm_hosts entries to the end. */ if (rest != (struct host *)NULL) { if (last_host != (struct host *)NULL) { last_host->next = rest; } else { hosts = rest; } rest->prev = last_host; } /* If there's been a change, rewrite the file. */ if (hn != CN && appres.connectfile_name != CN && strcasecmp(appres.connectfile_name, "none")) { lcf = fopen(lcf_name, "w"); if (lcf != (FILE *)NULL) { fprintf(lcf, "# Created %s# by %s\n", ctime(&t), build); for (h = hosts; h != (struct host *)NULL; h = h->next) { if (h->entry_type != RECENT) break; (void) fprintf(lcf, "%lu %s\n", h->connect_time, h->name); } fclose(lcf); } } if (lcf_name != CN) Free(lcf_name); } #endif /*]*/ /* Support for state change callbacks. */ struct st_callback { struct st_callback *next; void (*func)(Boolean); }; static struct st_callback *st_callbacks[N_ST]; static struct st_callback *st_last[N_ST]; /* Register a function interested in a state change. */ void register_schange(int tx, void (*func)(Boolean)) { struct st_callback *st; st = (struct st_callback *)Malloc(sizeof(*st)); st->func = func; st->next = (struct st_callback *)NULL; if (st_last[tx] != (struct st_callback *)NULL) st_last[tx]->next = st; else st_callbacks[tx] = st; st_last[tx] = st; } /* Signal a state change. */ void st_changed(int tx, Boolean mode) { struct st_callback *st; for (st = st_callbacks[tx]; st != (struct st_callback *)NULL; st = st->next) { (*st->func)(mode); } } /* Explicit connect/disconnect actions. */ void Connect_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Connect_action, event, params, num_params); if (check_usage(Connect_action, *num_params, 1, 1) < 0) return; if (CONNECTED || HALF_CONNECTED) { popup_an_error("Already connected"); return; } (void) host_connect(params[0]); /* * If called from a script and the connection was successful (or * half-successful), pause the script until we are connected and * we have identified the host type. */ if (!w && (CONNECTED || HALF_CONNECTED)) sms_connect_wait(); } #if defined(X3270_MENUS) /*[*/ void Reconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Reconnect_action, event, params, num_params); if (check_usage(Reconnect_action, *num_params, 0, 0) < 0) return; if (CONNECTED || HALF_CONNECTED) { popup_an_error("Already connected"); return; } if (current_host == CN) { popup_an_error("No previous host to connect to"); return; } host_reconnect(); /* * If called from a script and the connection was successful (or * half-successful), pause the script until we are connected and * we have identified the host type. */ if (!w && (CONNECTED || HALF_CONNECTED)) sms_connect_wait(); } #endif /*]*/ void Disconnect_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Disconnect_action, event, params, num_params); if (check_usage(Disconnect_action, *num_params, 0, 0) < 0) return; host_disconnect(False); } ibm-3270-3.3.10ga4/ws3270/glue.c0000644000175000017500000011252011254565704015235 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * glue.c * A displayless 3270 Terminal Emulator * Glue for missing parts. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "gluec.h" #include "hostc.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "readresc.h" #include "screenc.h" #include "selectc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include "xioc.h" #if defined(_WIN32) /*[*/ #include #include "winversc.h" #endif /*]*/ extern void usage(char *); #define LAST_ARG "--" #if defined(C3270) /*[*/ # if defined(WC3270) /*[*/ # define SESSION_SFX ".wc3270" # define SESSION_SSFX ".wc3" # else /*][*/ # define SESSION_SFX ".c3270" # endif /*]*/ #elif defined(S3270) /*[*/ # if defined(WS3270) /*[*/ # define SESSION_SFX ".ws3270" # define SESSION_SSFX ".ws3" # else /*][*/ # define SESSION_SFX ".s3270" # endif /*]*/ #elif defined(TCL3270) /*[*/ # define SESSION_SFX ".tcl3270" #endif /*]*/ #define SESSION_SFX_LEN (int)(sizeof(SESSION_SFX) - 1) #if defined(_WIN32) /*[*/ # define SESSION_SSFX_LEN (int)(sizeof(SESSION_SSFX) - 1) #endif /*]*/ #if defined(C3270) /*[*/ extern Boolean merge_profile(void); extern Boolean any_error_output; #endif /*]*/ /* Statics */ static void no_minus(const char *arg); #if defined(LOCAL_PROCESS) /*[*/ static void parse_local_process(int *argcp, const char **argv, const char **cmds); #endif /*]*/ static void set_appres_defaults(void); static void parse_options(int *argcp, const char **argv); static void parse_set_clear(int *argcp, const char **argv); static int parse_model_number(char *m); /* Globals */ const char *programname; char full_model_name[13] = "IBM-"; char *model_name = &full_model_name[4]; AppRes appres; int children = 0; Boolean exiting = False; char *command_string = CN; static Boolean sfont = False; Boolean *standard_font = &sfont; char *profile_name = CN; char *profile_path = CN; struct toggle_name toggle_names[] = { #if defined(C3270) /*[*/ { ResMonoCase, MONOCASE }, #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { ResDsTrace, DS_TRACE }, #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResLineWrap, LINE_WRAP }, #endif /*]*/ { ResBlankFill, BLANK_FILL }, #if defined(X3270_TRACE) /*[*/ { ResScreenTrace, SCREEN_TRACE }, { ResEventTrace, EVENT_TRACE }, #endif /*]*/ #if defined(C3270) /*[*/ { ResMarginedPaste, MARGINED_PASTE }, #endif /*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ { ResAidWait, AID_WAIT }, #endif /*]*/ #if defined(C3270) /*[*/ { ResUnderscore, UNDERSCORE }, #endif /*]*/ { NULL, 0 } }; int parse_command_line(int argc, const char **argv, const char **cl_hostname) { int cl, i; int ovc, ovr; int hn_argc; int model_number; int sl; int xcmd_len = 0; char *xcmd; int xargc; const char **xargv; Boolean read_session_or_profile = False; /* Figure out who we are */ #if defined(_WIN32) /*[*/ programname = strrchr(argv[0], '\\'); #else /*][*/ programname = strrchr(argv[0], '/'); #endif /*]*/ if (programname) ++programname; else programname = argv[0]; /* Save the command string for tracing purposes. */ cl = strlen(programname); for (i = 0; i < argc; i++) { cl += 1 + strlen(argv[i]); } cl++; command_string = Malloc(cl); (void) strcpy(command_string, programname); for (i = 0; i < argc; i++) { (void) strcat(strcat(command_string, " "), argv[i]); } /* * Save the command-line options so they can be reapplied after * the session file or profile has been read in. */ xcmd_len = 0; for (i = 0; i < argc; i++) xcmd_len += strlen(argv[i]) + 1; xcmd = Malloc(xcmd_len + 1); xargv = (const char **)Malloc((argc + 1) * sizeof(char *)); xcmd_len = 0; for (i = 0; i < argc; i++) { xargv[i] = xcmd + xcmd_len; (void) strcpy(xcmd + xcmd_len, argv[i]); xcmd_len += strlen(argv[i]) + 1; } xargv[i] = CN; *(xcmd + xcmd_len) = '\0'; xargc = argc; #if defined(LOCAL_PROCESS) /*[*/ /* Pick out the -e option. */ parse_local_process(&argc, argv, cl_hostname); #endif /*]*/ /* Set the defaults. */ set_appres_defaults(); /* Parse command-line options. */ parse_options(&argc, argv); /* Pick out the remaining -set and -clear toggle options. */ parse_set_clear(&argc, argv); /* Now figure out if there's a hostname. */ for (hn_argc = 1; hn_argc < argc; hn_argc++) { if (!strcmp(argv[hn_argc], LAST_ARG)) break; } /* Verify command-line syntax. */ switch (hn_argc) { case 1: break; case 2: no_minus(argv[1]); *cl_hostname = argv[1]; break; case 3: no_minus(argv[1]); no_minus(argv[2]); *cl_hostname = xs_buffer("%s:%s", argv[1], argv[2]); break; default: usage("Too many command-line arguments"); break; } /* Delete the host name and any "--". */ if (argv[hn_argc] != CN && !strcmp(argv[hn_argc], LAST_ARG)) hn_argc++; if (hn_argc > 1) { for (i = 1; i < argc - hn_argc + 2; i++) { argv[i] = argv[i + hn_argc - 1]; } } /* Merge in the session. */ if (*cl_hostname != CN && (((sl = strlen(*cl_hostname)) > SESSION_SFX_LEN && !strcasecmp(*cl_hostname + sl - SESSION_SFX_LEN, SESSION_SFX)) #if defined(_WIN32) /*[*/ || ((sl = strlen(*cl_hostname)) > SESSION_SSFX_LEN && !strcasecmp(*cl_hostname + sl - SESSION_SSFX_LEN, SESSION_SSFX)) #endif /*]*/ )) { const char *pname; if (read_resource_file(*cl_hostname, True) < 0) x3270_exit(1); read_session_or_profile = True; pname = strrchr(*cl_hostname, '\\'); if (pname != CN) pname++; else pname = *cl_hostname; profile_name = NewString(pname); Replace(profile_path, NewString(profile_name)); sl = strlen(profile_name); if (sl > SESSION_SFX_LEN && !strcasecmp(profile_name + sl - SESSION_SFX_LEN, SESSION_SFX)) { profile_name[sl - SESSION_SFX_LEN] = '\0'; #if defined(_WIN32) /*[*/ } else if (sl > SESSION_SSFX_LEN && !strcasecmp(profile_name + sl - SESSION_SSFX_LEN, SESSION_SSFX)) { profile_name[sl - SESSION_SSFX_LEN] = '\0'; #endif /*]*/ } *cl_hostname = appres.hostname; /* might be NULL */ #if defined(C3270) && !defined(_WIN32) /*[*/ } else { /* Read in the profile only if there's no sesson file. */ read_session_or_profile = merge_profile(); #endif /*]*/ } /* * Now parse the command-line arguments again, so they take * precedence over the session file or profile. */ if (read_session_or_profile) { parse_options(&xargc, xargv); parse_set_clear(&xargc, xargv); } /* Can't free xcmd, parts of it are still in use. */ Free((char *)xargv); /* * All right, we have all of the resources defined. * Sort out the contradictory and implicit settings. */ /* * Sort out model and color modes, based on the model number resource. */ model_number = parse_model_number(appres.model); if (model_number < 0) { popup_an_error("Invalid model number: %s", appres.model); model_number = 0; } if (!model_number) { #if defined(RESTRICT_3279) /*[*/ model_number = 3; #else /*][*/ model_number = 4; #endif /*]*/ } #if defined(C3270) && !defined(_WIN32) /*[*/ if (appres.mono) appres.m3279 = False; #endif /*]*/ if (!appres.extended) appres.oversize = CN; #if defined(RESTRICT_3279) /*[*/ if (appres.m3279 && model_number == 4) model_number = 3; #endif /*]*/ ovc = 0; ovr = 0; if (appres.extended && appres.oversize != CN) { #if defined(C3270) /*[*/ if (!strcasecmp(appres.oversize, "auto")) { ovc = -1; ovr = -1; } else #endif /*]*/ { int x_ovc, x_ovr; char junk; if (sscanf(appres.oversize, "%dx%d%c", &x_ovc, &x_ovr, &junk) == 2) { ovc = x_ovc; ovr = x_ovr; } } } set_rows_cols(model_number, ovc, ovr); if (appres.termname != CN) termtype = appres.termname; else termtype = full_model_name; if (appres.apl_mode) appres.charset = Apl; if (*cl_hostname == CN) appres.once = False; if (appres.conf_dir == CN) appres.conf_dir = LIBX3270DIR; return argc; } static void no_minus(const char *arg) { if (arg[0] == '-') usage(xs_buffer("Unknown or incomplete option: %s", arg)); } #if defined(LOCAL_PROCESS) /*[*/ /* * Pick out the -e option. */ static void parse_local_process(int *argcp, const char **argv, const char **cmds) { int i, j; int e_len = -1; char *cmds_buf = NULL; for (i = 1; i < *argcp; i++) { if (strcmp(argv[i], OptLocalProcess)) continue; /* Matched. Copy 'em. */ e_len = strlen(OptLocalProcess) + 1; for (j = i+1; j < *argcp; j++) { e_len += 1 + strlen(argv[j]); } e_len++; cmds_buf = Malloc(e_len); (void) strcpy(cmds_buf, OptLocalProcess); for (j = i+1; j < *argcp; j++) { (void) strcat(strcat(cmds_buf, " "), argv[j]); } /* Stamp out the remaining args. */ *argcp = i; argv[i] = CN; break; } *cmds = cmds_buf; } #endif /*]*/ static void set_appres_defaults(void) { /* Set the defaults. */ #if defined(C3270) && !defined(_WIN32) /*[*/ appres.mono = False; #endif /*]*/ appres.extended = True; #if defined(C3270) /*[*/ appres.m3279 = True; #else /*][*/ appres.m3279 = False; #endif /*]*/ appres.modified_sel = False; appres.apl_mode = False; #if defined(C3270) || defined(TCL3270) /*[*/ appres.scripted = False; #else /*][*/ appres.scripted = True; #endif /*]*/ appres.numeric_lock = False; appres.secure = False; #if defined(C3270) /*[*/ appres.oerr_lock = True; #else /*][*/ appres.oerr_lock = False; #endif /*]*/ appres.typeahead = True; appres.debug_tracing = True; #if defined(C3270) /*[*/ appres.compose_map = "latin1"; appres.do_confirms = True; appres.reconnect = False; #endif /*]*/ appres.model = "4"; appres.hostsfile = CN; appres.port = "telnet"; #if !defined(_WIN32) /*[*/ appres.charset = "bracket"; #else /*][*/ if (is_nt) appres.charset = "bracket"; else appres.charset = "bracket437"; #endif /*]*/ appres.termname = CN; appres.macros = CN; #if defined(X3270_TRACE) && !defined(_WIN32) /*[*/ appres.trace_dir = "/tmp"; #endif /*]*/ #if defined(WC3270) /*[*/ appres.trace_monitor = True; #endif /*]*/ appres.oversize = CN; #if defined(C3270) /*[*/ appres.meta_escape = "auto"; appres.curses_keypad = True; appres.cbreak_mode = False; appres.ascii_box_draw = False; # if defined(C3270) && !defined(_WIN32) /*[*/ appres.mouse = True; # endif /*]*/ #if defined(CURSES_WIDE) /*[*/ appres.acs = True; #endif /*]*/ #endif /*]*/ #if defined(X3270_ANSI) /*[*/ appres.icrnl = True; appres.inlcr = False; appres.onlcr = True; appres.erase = "^H"; appres.kill = "^U"; appres.werase = "^W"; appres.rprnt = "^R"; appres.lnext = "^V"; appres.intr = "^C"; appres.quit = "^\\"; appres.eof = "^D"; #endif /*]*/ appres.unlock_delay = True; appres.unlock_delay_ms = 350; #if defined(X3270_FT) /*[*/ appres.dft_buffer_size = DFT_BUF; #endif /*]*/ #if defined(C3270) /*[*/ appres.toggle[CURSOR_POS].value = True; #endif /*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ appres.toggle[AID_WAIT].value = True; #endif /*]*/ #if defined(C3270) && defined(_WIN32) /*[*/ appres.toggle[UNDERSCORE].value = True; #endif /*]*/ #if defined(C3270) && defined(X3270_SCRIPT) /*[*/ appres.plugin_command = "x3270hist.pl"; #endif /*]*/ #if defined(WS3270) /*[*/ appres.local_cp = GetACP(); #endif /*]*/ } #if defined (C3270) /*[*/ # if defined(WIN32) /*[*/ # define APPNAME "wc3270" # else /*][*/ # define APPNAME "c3270" # endif /*]*/ #elif defined(S3270) /*[*/ # if defined(WIN32) /*[*/ # define APPNAME "ws3270" # else /*][*/ # define APPNAME "s3270" # endif /*]*/ #elif defined(TCL3270) /*[*/ # define APPNAME "tcl3270" #else # error "Unknwon application" #endif /*]*/ #if defined(_WIN32) /*[*/ # define PR3287_NAME "wpr3287" #else /*][*/ # define PR3287_NAME "pr3287" #endif /*]*/ #define offset(n) (void *)&appres.n #define toggle_offset(index) offset(toggle[index].value) static struct { const char *name; enum { OPT_BOOLEAN, OPT_STRING, OPT_XRM, OPT_SKIP2, OPT_NOP, OPT_INT, OPT_V, OPT_DONE } type; Boolean flag; const char *res_name; void *aoff; char *help_opts; char *help_text; } opts[] = { #if defined(C3270) /*[*/ { OptAllBold, OPT_BOOLEAN, True, ResAllBold, offset(all_bold_on), CN, "Display all text in bold" }, #endif /*]*/ #if defined(C3270) && !defined(_WIN32) /*[*/ { OptAltScreen,OPT_STRING, False, ResAltScreen, offset(altscreen), "", "Specify string to switch terminal from 80-column mode to 132-column mode" }, #endif /*]*/ #if defined(WC3270) /*[*/ { OptAutoShortcut,OPT_BOOLEAN, True, ResAutoShortcut,offset(auto_shortcut), CN, "Run in auto-shortcut mode" }, #endif /*]*/ { OptAplMode, OPT_BOOLEAN, True, ResAplMode, offset(apl_mode), CN, "Turn on APL mode" }, #if defined(C3270) && !defined(_WIN32) /*[*/ { OptCbreak, OPT_BOOLEAN, True, ResCbreak, offset(cbreak_mode), CN, "Force terminal CBREAK mode" }, #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ { OptCertFile, OPT_STRING, False, ResCertFile, offset(cert_file), "", "Specify OpenSSL certificate file" }, #endif /*]*/ { OptCharset, OPT_STRING, False, ResCharset, offset(charset), "", "Use host ECBDIC character set (code page) "}, { OptClear, OPT_SKIP2, False, NULL, NULL, "", "Turn on " }, #if defined(C3270) && !defined(_WIN32) /*[*/ { OptDefScreen,OPT_STRING, False, ResDefScreen, offset(defscreen), "", "Specify string to switch terminal from 80-column mode to 132-column mode" }, #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ { OptLocalProcess,OPT_SKIP2,False, NULL, NULL, " [...]", "Run instead of making TELNET conection" }, #endif /*]*/ { OptHostsFile,OPT_STRING, False, ResHostsFile, offset(hostsfile), "", "Use as the ibm_hosts file" }, #if defined(C3270) /*[*/ { OptKeymap, OPT_STRING, False, ResKeymap, offset(key_map), "[,...]", "Keyboard map name(s)" }, #endif /*]*/ #if defined(WS3270) /*[*/ { OptLocalCp, OPT_INT, False, ResLocalCp, offset(local_cp), "", "Use instead of ANSI codepage for local I/O" }, #endif /*]*/ { OptModel, OPT_STRING, False, ResModel, offset(model), "[327{8,9}-]", "Emulate a 3278 or 3279 model " }, #if defined(C3270) /*[*/ # if !defined(_WIN32) /*[*/ { OptMono, OPT_BOOLEAN, True, ResMono, offset(mono), CN, "Do not use terminal color capabilities" }, # endif /*]*/ #if defined(WC3270) /*[*/ { OptNoAutoShortcut,OPT_BOOLEAN,False,ResAutoShortcut,offset(auto_shortcut), CN, "Do not run in auto-shortcut mode" }, #endif /*]*/ { OptNoPrompt, OPT_BOOLEAN, True, ResNoPrompt, offset(no_prompt), CN, "Suppress interactive mode (" APPNAME "> prompt)" }, #endif /*]*/ { OptOnce, OPT_BOOLEAN, True, ResOnce, offset(once), CN, "Exit as soon as the host disconnects" }, { OptOversize, OPT_STRING, False, ResOversize, offset(oversize), "x", "Specify larger screen" }, { OptPort, OPT_STRING, False, ResPort, offset(port), "", "Specify default TELNET port" }, #if defined(C3270) /*[*/ { OptPrinterLu,OPT_STRING, False, ResPrinterLu, offset(printer_lu), "", "Automatically start a "PR3287_NAME" printer session to " }, { OptReconnect,OPT_BOOLEAN, True, ResReconnect, offset(reconnect), CN, "Reconnect to host as soon as it disconnects" }, #if !defined(_WIN32) /*[*/ { OptReverseVideo,OPT_BOOLEAN,True,ResReverseVideo,offset(reverse_video), CN, "Switch to black-on-white mode" }, #endif /*]*/ #endif /*]*/ { OptProxy, OPT_STRING, False, ResProxy, offset(proxy), ":[:]", "Secify proxy type and server" }, #if defined(S3270) /*[*/ { OptScripted, OPT_NOP, False, ResScripted, NULL, CN, "Turn on scripting" }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { OptScriptPort,OPT_INT, True, ResScriptPort, offset(script_port), "", "TCP port to listen on for script commands" }, #endif /*]*/ #if defined(C3270) /*[*/ { OptSecure, OPT_BOOLEAN, True, ResSecure, offset(secure), CN, "Restrict potentially-destructive user actions" }, #endif /*]*/ { OptSet, OPT_SKIP2, False, NULL, NULL, "", "Turn on " }, #if defined(X3270_SCRIPT) /*[*/ { OptSocket, OPT_BOOLEAN, True, ResSocket, offset(socket), CN, "Create socket for script control" }, #endif /*]*/ { OptTermName, OPT_STRING, False, ResTermName, offset(termname), "", "Send as TELNET terminal name" }, #if defined(WC3270) /*[*/ { OptTitle, OPT_STRING, False, ResTitle, offset(title), "", "Set window title to " }, #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { OptDsTrace, OPT_BOOLEAN, True, ResDsTrace, toggle_offset(DS_TRACE), CN, "Enable tracing" }, { OptTraceFile,OPT_STRING, False, ResTraceFile, offset(trace_file), "", "Write traces to " }, { OptTraceFileSize,OPT_STRING,False,ResTraceFileSize,offset(trace_file_size), "[KM]", "Limit trace file to bytes" }, #endif /*]*/ { OptV, OPT_V, False, NULL, NULL, CN, "Display build options and character sets" }, { OptVersion, OPT_V, False, NULL, NULL, CN, "Display build options and character sets" }, { "-xrm", OPT_XRM, False, NULL, NULL, "'" APPNAME ".: '", "Set to " }, { LAST_ARG, OPT_DONE, False, NULL, NULL, CN, "Terminate argument list" }, { CN, OPT_SKIP2, False, NULL, NULL, CN, CN } }; /* * Pick out command-line options and set up appres. */ static void parse_options(int *argcp, const char **argv) { int i, j; int argc_out = 0; const char **argv_out = (const char **) Malloc((*argcp + 1) * sizeof(char *)); /* Parse the command-line options. */ argv_out[argc_out++] = argv[0]; for (i = 1; i < *argcp; i++) { for (j = 0; opts[j].name != CN; j++) { if (!strcmp(argv[i], opts[j].name)) break; } if (opts[j].name == CN) { argv_out[argc_out++] = argv[i]; continue; } switch (opts[j].type) { case OPT_BOOLEAN: *(Boolean *)opts[j].aoff = opts[j].flag; if (opts[j].res_name != CN) add_resource(NewString(opts[j].name), opts[j].flag? "True": "False"); break; case OPT_STRING: if (i == *argcp - 1) /* missing arg */ continue; *(const char **)opts[j].aoff = argv[++i]; if (opts[j].res_name != CN) add_resource(NewString(opts[j].res_name), NewString(argv[i])); break; case OPT_XRM: if (i == *argcp - 1) /* missing arg */ continue; parse_xrm(argv[++i], "-xrm"); break; case OPT_SKIP2: argv_out[argc_out++] = argv[i++]; if (i < *argcp) argv_out[argc_out++] = argv[i]; break; case OPT_NOP: break; case OPT_INT: if (i == *argcp - 1) /* missing arg */ continue; *(int *)opts[j].aoff = atoi(argv[++i]); if (opts[j].res_name != CN) add_resource(NewString(opts[j].name), NewString(argv[i])); break; case OPT_V: dump_version(); break; case OPT_DONE: while (i < *argcp) argv_out[argc_out++] = argv[i++]; break; } } *argcp = argc_out; argv_out[argc_out] = CN; (void) memcpy((char *)argv, (char *)argv_out, (argc_out + 1) * sizeof(char *)); Free((char *)argv_out); #if defined(X3270_TRACE) /*[*/ /* One isn't very useful without the other. */ if (appres.toggle[DS_TRACE].value) appres.toggle[EVENT_TRACE].value = True; #endif /*]*/ } /* Disply command-line help. */ void cmdline_help (Boolean as_action) { int i; for (i = 0; opts[i].name != CN; i++) { if (as_action) { action_output(" %s%s%s", opts[i].name, opts[i].help_opts? " ": "", opts[i].help_opts? opts[i].help_opts: ""); action_output(" %s", opts[i].help_text); } else fprintf(stderr, " %s%s%s\n %s\n", opts[i].name, opts[i].help_opts? " ": "", opts[i].help_opts? opts[i].help_opts: "", opts[i].help_text); } } /* * Pick out -set and -clear toggle options. */ static void parse_set_clear(int *argcp, const char **argv) { int i, j; int argc_out = 0; const char **argv_out = (const char **) Malloc((*argcp + 1) * sizeof(char *)); argv_out[argc_out++] = argv[0]; for (i = 1; i < *argcp; i++) { Boolean is_set = False; if (!strcmp(argv[i], OptSet)) is_set = True; else if (strcmp(argv[i], OptClear)) { argv_out[argc_out++] = argv[i]; continue; } if (i == *argcp - 1) /* missing arg */ continue; /* Delete the argument. */ i++; for (j = 0; toggle_names[j].name != NULL; j++) if (!strcmp(argv[i], toggle_names[j].name)) { appres.toggle[toggle_names[j].index].value = is_set; break; } if (toggle_names[j].name == NULL) usage("Unknown toggle name"); } *argcp = argc_out; argv_out[argc_out] = CN; (void) memcpy((char *)argv, (char *)argv_out, (argc_out + 1) * sizeof(char *)); Free((char *)argv_out); } /* * Parse the model number. * Returns -1 (error), 0 (default), or the specified number. */ static int parse_model_number(char *m) { int sl; int n; sl = strlen(m); /* An empty model number is no good. */ if (!sl) { return 0; } if (sl > 1) { /* * If it's longer than one character, it needs to start with * '327[89]', and it sets the m3279 resource. */ if (!strncmp(m, "3278", 4)) { appres.m3279 = False; } else if (!strncmp(m, "3279", 4)) { appres.m3279 = True; } else { return -1; } m += 4; sl -= 4; /* Check more syntax. -E is allowed, but ignored. */ switch (m[0]) { case '\0': /* Use default model number. */ return 0; case '-': /* Model number specified. */ m++; sl--; break; default: return -1; } switch (sl) { case 1: /* n */ break; case 3: /* n-E */ if (strcasecmp(m + 1, "-E")) { return -1; } break; default: return -1; } } /* Check the numeric model number. */ n = atoi(m); if (n >= 2 && n <= 5) { return n; } else { return -1; } } /* * Parse '-xrm' options. * Understands only: * {c,s,tcl}3270.: value * Asterisks and class names need not apply. */ static struct { const char *name; void *address; enum resource_type { XRM_STRING, XRM_BOOLEAN, XRM_INT } type; } resources[] = { #if defined(C3270) /*[*/ { ResAllBold, offset(all_bold), XRM_STRING }, { ResAltScreen, offset(altscreen), XRM_STRING }, #endif /*]*/ #if defined(WC3270) /*[*/ { ResAutoShortcut,offset(auto_shortcut),XRM_BOOLEAN }, #endif /*]*/ { ResBsdTm, offset(bsd_tm), XRM_BOOLEAN }, #if defined(HAVE_LIBSSL) /*[*/ { ResCertFile, offset(cert_file), XRM_STRING }, #endif /*]*/ { ResCharset, offset(charset), XRM_STRING }, { ResColor8, offset(color8), XRM_BOOLEAN }, #if defined(TCL3270) /*[*/ { ResCommandTimeout, offset(command_timeout), XRM_INT }, #endif /*]*/ { ResConfDir, offset(conf_dir), XRM_STRING }, #if defined(X3270_DBCS) /*[*/ { ResDbcsCgcsgid, offset(dbcs_cgcsgid), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResDefScreen, offset(defscreen), XRM_STRING }, #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResEof, offset(eof), XRM_STRING }, { ResErase, offset(erase), XRM_STRING }, #endif /*]*/ { ResExtended, offset(extended), XRM_BOOLEAN }, #if defined(X3270_FT) /*[*/ { ResDftBufferSize,offset(dft_buffer_size),XRM_INT }, #endif /*]*/ { ResHostname, offset(hostname), XRM_STRING }, { ResHostsFile, offset(hostsfile), XRM_STRING }, #if defined(X3270_ANSI) /*[*/ { ResIcrnl, offset(icrnl), XRM_BOOLEAN }, { ResInlcr, offset(inlcr), XRM_BOOLEAN }, { ResOnlcr, offset(onlcr), XRM_BOOLEAN }, { ResIntr, offset(intr), XRM_STRING }, #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ { ResPluginCommand, offset(plugin_command), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResIdleCommand,offset(idle_command), XRM_STRING }, { ResIdleCommandEnabled,offset(idle_command_enabled), XRM_BOOLEAN }, { ResIdleTimeout,offset(idle_timeout), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResKeymap, offset(key_map), XRM_STRING }, { ResMetaEscape,offset(meta_escape), XRM_STRING }, { ResCursesKeypad,offset(curses_keypad),XRM_BOOLEAN }, { ResCbreak, offset(cbreak_mode), XRM_BOOLEAN }, { ResAsciiBoxDraw,offset(ascii_box_draw), XRM_BOOLEAN }, #if defined(CURSES_WIDE) /*[*/ { ResAcs, offset(acs), XRM_BOOLEAN }, #endif /*]*/ #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResKill, offset(kill), XRM_STRING }, { ResLnext, offset(lnext), XRM_STRING }, #endif /*]*/ #if defined(WS3270) /*[*/ { ResLocalCp, offset(local_cp), XRM_INT }, #endif /*]*/ { ResLoginMacro,offset(login_macro), XRM_STRING }, { ResM3279, offset(m3279), XRM_BOOLEAN }, { ResModel, offset(model), XRM_STRING }, { ResModifiedSel, offset(modified_sel), XRM_BOOLEAN }, #if defined(C3270) /*[*/ # if !defined(_WIN32) /*[*/ { ResMono, offset(mono), XRM_BOOLEAN }, { ResMouse, offset(mouse), XRM_BOOLEAN }, # endif /*]*/ { ResNoPrompt, offset(no_prompt), XRM_BOOLEAN }, #endif /*]*/ { ResNumericLock, offset(numeric_lock), XRM_BOOLEAN }, { ResOerrLock, offset(oerr_lock), XRM_BOOLEAN }, { ResOversize, offset(oversize), XRM_STRING }, { ResPort, offset(port), XRM_STRING }, #if defined(C3270) /*[*/ { ResPrinterLu, offset(printer_lu), XRM_STRING }, #endif /*]*/ { ResProxy, offset(proxy), XRM_STRING }, #if defined(X3270_ANSI) /*[*/ { ResQuit, offset(quit), XRM_STRING }, { ResRprnt, offset(rprnt), XRM_STRING }, #endif /*]*/ #if defined(C3270) /*[*/ { ResReconnect, offset(reconnect), XRM_BOOLEAN }, #if !defined(_WIN32) /*[*/ { ResReverseVideo,offset(reverse_video),XRM_BOOLEAN }, #endif /*]*/ #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { ResScreenTraceFile,offset(screentrace_file),XRM_STRING }, #endif /*]*/ { ResSecure, offset(secure), XRM_BOOLEAN }, { ResSbcsCgcsgid, offset(sbcs_cgcsgid), XRM_STRING }, #if defined(X3270_SCRIPT) /*[*/ { ResScriptPort,offset(script_port), XRM_INT }, #endif /*]*/ { ResTermName, offset(termname), XRM_STRING }, #if defined(WC3270) /*[*/ { ResTitle, offset(title), XRM_STRING }, #endif /*]*/ #if defined(X3270_TRACE) /*[*/ { ResTraceDir, offset(trace_dir), XRM_STRING }, { ResTraceFile, offset(trace_file), XRM_STRING }, { ResTraceFileSize,offset(trace_file_size),XRM_STRING }, #if defined(WC3270) /*[*/ { ResTraceMonitor,offset(trace_monitor),XRM_BOOLEAN }, #endif /*]*/ #endif /*]*/ { ResTypeahead, offset(typeahead), XRM_BOOLEAN }, { ResUnlockDelay,offset(unlock_delay), XRM_BOOLEAN }, { ResUnlockDelayMs,offset(unlock_delay_ms),XRM_INT }, #if defined(WC3270) /*[*/ { ResVisualBell,offset(visual_bell), XRM_BOOLEAN }, #endif /*]*/ #if defined(X3270_ANSI) /*[*/ { ResWerase, offset(werase), XRM_STRING }, #endif /*]*/ { CN, 0, XRM_STRING } }; /* * Compare two strings, allowing the second to differ by uppercasing the * first character of the second. */ static int strncapcmp(const char *known, const char *unknown, unsigned unk_len) { if (unk_len != strlen(known)) return -1; if (!strncmp(known, unknown, unk_len)) return 0; if (unk_len > 1 && unknown[0] == toupper(known[0]) && !strncmp(known + 1, unknown + 1, unk_len - 1)) return 0; return -1; } #if defined(C3270) /*[*/ struct host_color host_color[] = { { "NeutralBlack", HOST_COLOR_NEUTRAL_BLACK }, { "Blue", HOST_COLOR_BLUE }, { "Red", HOST_COLOR_RED }, { "Pink", HOST_COLOR_PINK }, { "Green", HOST_COLOR_GREEN }, { "Turquoise", HOST_COLOR_TURQUOISE }, { "Yellow", HOST_COLOR_YELLOW }, { "NeutralWhite", HOST_COLOR_NEUTRAL_WHITE }, { "Black", HOST_COLOR_BLACK }, { "DeepBlue", HOST_COLOR_DEEP_BLUE }, { "Orange", HOST_COLOR_ORANGE }, { "Purple", HOST_COLOR_PURPLE }, { "PaleGreen", HOST_COLOR_PALE_GREEN }, { "PaleTurquoise", HOST_COLOR_PALE_TURQUOISE }, { "Grey", HOST_COLOR_GREY }, { "Gray", HOST_COLOR_GREY }, /* alias */ { "White", HOST_COLOR_WHITE }, { CN, 0 } }; /* * Validate a resource that is fetched explicitly, rather than via appres. */ static int valid_explicit(const char *resname, unsigned len) { static struct { char *name; enum { V_FLAT, V_WILD, V_COLOR } type; } explicit_resources[] = { { ResKeymap, V_WILD }, { ResAssocCommand, V_FLAT }, { ResLuCommandLine, V_FLAT }, #if defined(_WIN32) /*[*/ { ResPrinterCodepage, V_FLAT }, { ResPrinterCommand, V_FLAT }, { ResPrinterName, V_FLAT }, { ResPrintTextFont, V_FLAT }, { ResPrintTextSize, V_FLAT }, { ResHostColorForDefault, V_FLAT }, { ResHostColorForIntensified, V_FLAT }, { ResHostColorForProtected, V_FLAT }, { ResHostColorForProtectedIntensified,V_FLAT }, { ResConsoleColorForHostColor, V_COLOR }, #else /*][*/ { ResPrintTextCommand, V_FLAT }, { ResCursesColorForDefault, V_FLAT }, { ResCursesColorForIntensified, V_FLAT }, { ResCursesColorForProtected, V_FLAT }, { ResCursesColorForProtectedIntensified,V_FLAT }, { ResCursesColorForHostColor, V_COLOR }, #endif /*]*/ { NULL, V_WILD } }; int i; int j; for (i = 0; explicit_resources[i].name != CN; i++) { unsigned sl = strlen(explicit_resources[i].name); switch (explicit_resources[i].type) { case V_FLAT: /* Exact match. */ if (len == sl && !strncmp(explicit_resources[i].name, resname, sl)) return 0; break; case V_WILD: /* xxx.* match. */ if (len > sl + 1 && resname[sl] == '.' && !strncmp(explicit_resources[i].name, resname, sl)) return 0; break; case V_COLOR: /* xxx or xxx match. */ for (j = 0; host_color[j].name != CN; j++) { char *x; x = xs_buffer("%s%s", explicit_resources[i].name, host_color[j].name); if (strlen(x) == len && !strncmp(x, resname, len)) { Free(x); return 0; } Free(x); x = xs_buffer("%s%d", explicit_resources[i].name, host_color[j].index); if (strlen(x) == len && !strncmp(x, resname, len)) { Free(x); return 0; } Free(x); } break; } } return -1; } #endif /*]*/ void parse_xrm(const char *arg, const char *where) { const char *name; unsigned rnlen; const char *s; int i; char *t; void *address = NULL; enum resource_type type = XRM_STRING; Boolean quoted; char c; #if defined(C3270) /*[*/ char *hide; Boolean arbitrary = False; #endif /*]*/ /* Validate and split. */ if (validate_and_split_resource(where, arg, &name, &rnlen, &s) < 0) return; /* Look up the name. */ for (i = 0; resources[i].name != CN; i++) { if (!strncapcmp(resources[i].name, name, rnlen)) { address = resources[i].address; type = resources[i].type; break; } } if (address == NULL) { for (i = 0; toggle_names[i].name != NULL; i++) { if (!strncapcmp(toggle_names[i].name, name, rnlen)) { address = &appres.toggle[toggle_names[i].index].value; type = XRM_BOOLEAN; break; } } } #if defined(C3270) /*[*/ if (address == NULL && valid_explicit(name, rnlen) == 0) { /* * Handle resources that are accessed only via get_resource(). */ address = &hide; type = XRM_STRING; arbitrary = True; } #endif /*]*/ if (address == NULL) { xs_warning("%s: Unknown resource name: %.*s", where, (int)rnlen, name); return; } switch (type) { case XRM_BOOLEAN: if (!strcasecmp(s, "true") || !strcasecmp(s, "t") || !strcmp(s, "1")) { *(Boolean *)address = True; } else if (!strcasecmp(s, "false") || !strcasecmp(s, "f") || !strcmp(s, "0")) { *(Boolean *)address = False; } else { xs_warning("%s: Invalid Boolean value: %s", where, s); } break; case XRM_STRING: t = Malloc(strlen(s) + 1); *(char **)address = t; quoted = False; while ((c = *s++) != '\0') { if (quoted) { switch (c) { case 'b': *t++ = '\b'; break; case 'f': *t++ = '\f'; break; case 'n': *t++ = '\n'; break; case 'r': *t++ = '\r'; break; case 't': *t++ = '\t'; break; default: /* Leave other backslashes intact. */ *t++ = '\\'; *t++ = c; break; } quoted = False; } else if (c == '\\') { quoted = True; } else { *t++ = c; } } *t = '\0'; break; case XRM_INT: { long n; char *ptr; n = strtol(s, &ptr, 0); if (*ptr != '\0') { xs_warning("%s: Invalid Integer value: %s", where, s); } else { *(int *)address = (int)n; } break; } } #if defined(C3270) /*[*/ /* Add a new, arbitrarily-named resource. */ if (arbitrary) { char *rsname; rsname = Malloc(rnlen + 1); (void) strncpy(rsname, name, rnlen); rsname[rnlen] = '\0'; add_resource(rsname, hide); } #endif /*]*/ } /* * Clean up a string for display (undo what parse_xrm does). */ char * safe_string(const char *s) { char *t = Malloc(1); int tlen = 1; *t = '\0'; /* * Translate the string to UCS4 a character at a time. * If the result is a control code or backslash, expand it. * Otherwise, translate it back to the local encoding and * append it to the output. */ while (*s) { ucs4_t u; int consumed; enum me_fail error; u = multibyte_to_unicode(s, strlen(s), &consumed, &error); if (u == 0) break; if (u < ' ') { char c = 0; int inc = 0; switch (u) { case '\b': c = 'b'; inc = 2; break; case '\f': c = 'f'; inc = 2; break; case '\n': c = 'n'; inc = 2; break; case '\r': c = 'r'; inc = 2; break; case '\t': c = 't'; inc = 2; break; default: inc = 6; break; } t = Realloc(t, tlen + inc); if (inc == 2) { *(t + tlen - 1) = '\\'; *(t + tlen) = c; } else { sprintf(t, "\\u%04x", u); } tlen += inc; } else { t = Realloc(t, tlen + consumed); memcpy(t + tlen - 1, s, consumed); tlen += consumed; } s += consumed; } *(t + tlen - 1) = '\0'; return t; } /* Read resources from a file. */ int read_resource_file(const char *filename, Boolean fatal) { return read_resource_filex(filename, fatal, parse_xrm); } /* Screen globals. */ static int cw = 7; int *char_width = &cw; static int ch = 7; int *char_height = &ch; Boolean visible_control = False; Boolean flipped = False; /* Replacements for functions in popups.c. */ #include Boolean error_popup_visible = False; static char vmsgbuf[4096]; /* Pop up an error dialog. */ void popup_an_error(const char *fmt, ...) { va_list args; char *s; int sl; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); /* * Multi-line messages are fine for X pop-ups, but they're no fun for * text applications. */ s = vmsgbuf; while ((s = strchr(s, '\n')) != NULL) { *s++ = ' '; } while ((sl = strlen(vmsgbuf)) > 0 && vmsgbuf[sl-1] == ' ') { vmsgbuf[--sl] = '\0'; } if (sms_redirect()) { sms_error(vmsgbuf); return; } else { #if defined(C3270) || defined(WC3270) /*[*/ screen_suspend(); any_error_output = True; #endif /*]*/ (void) fprintf(stderr, "%s\n", vmsgbuf); macro_output = True; } } /* Pop up an error dialog, based on an error number. */ void popup_an_errno(int errn, const char *fmt, ...) { va_list args; char *s; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); s = NewString(vmsgbuf); if (errn > 0) popup_an_error("%s:\n%s", s, strerror(errn)); else popup_an_error("%s", s); Free(s); } void action_output(const char *fmt, ...) { va_list args; va_start(args, fmt); (void) vsprintf(vmsgbuf, fmt, args); va_end(args); if (sms_redirect()) { sms_info("%s", vmsgbuf); return; } else { FILE *aout; #if defined(C3270) /*[*/ screen_suspend(); aout = start_pager(); any_error_output = True; #else /*][*/ aout = stdout; #endif /*]*/ #if defined(WC3270) /*[*/ pager_output(vmsgbuf); #else /*][*/ (void) fprintf(aout, "%s\n", vmsgbuf); #endif /*]*/ macro_output = True; } } ibm-3270-3.3.10ga4/ws3270/tables.c0000644000175000017500000002171311254565704015556 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * tables.c * Translation tables between the three character sets: * EBCDIC * ASCII (ISO Latin-1) * Character Generator ("3270" font) */ #include "globals.h" #include "tablesc.h" const unsigned char asc2cg0[256] = { /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*20*/ 0x10, 0x19, 0x13, 0x2c, 0x1a, 0x2e, 0x30, 0x12, /*28*/ 0x0d, 0x0c, 0xbf, 0x35, 0x33, 0x31, 0x32, 0x14, /*30*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /*38*/ 0x28, 0x29, 0x34, 0xbe, 0x09, 0x11, 0x08, 0x18, /*40*/ 0x2d, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*48*/ 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, /*50*/ 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, /*58*/ 0xb7, 0xb8, 0xb9, 0x0a, 0x15, 0x0b, 0x3a, 0x2f, /*60*/ 0x3d, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /*68*/ 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, /*70*/ 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*78*/ 0x97, 0x98, 0x99, 0x0f, 0x16, 0x0e, 0x3b, 0x00, /*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*a0*/ 0x01, 0x6e, 0x1b, 0x1c, 0x1f, 0x1d, 0x17, 0x2b, /*a8*/ 0x3c, 0xd0, 0x6a, 0x6c, 0x36, 0x07, 0xd1, 0x37, /*b0*/ 0x38, 0xd6, 0x68, 0x69, 0x3e, 0x54, 0x1e, 0x39, /*b8*/ 0x3f, 0x67, 0x6b, 0x6d, 0x4b, 0x4c, 0x4d, 0x6f, /*c0*/ 0x60, 0x7a, 0x75, 0x65, 0x70, 0xbc, 0xba, 0xbd, /*c8*/ 0x61, 0x7b, 0x76, 0x71, 0x62, 0x7c, 0x77, 0x72, /*d0*/ 0xd7, 0x7f, 0x63, 0x7d, 0x78, 0x66, 0x73, 0x5b, /*d8*/ 0xbb, 0x64, 0x7e, 0x79, 0x74, 0x48, 0xd9, 0x2a, /*e0*/ 0x40, 0x5a, 0x55, 0x45, 0x50, 0x9c, 0x9a, 0x4f, /*e8*/ 0x41, 0x4a, 0x56, 0x51, 0x42, 0x5c, 0x57, 0x52, /*f0*/ 0xf7, 0x5f, 0x43, 0x5d, 0x58, 0x46, 0x53, 0x9d, /*f8*/ 0x9b, 0x44, 0x5e, 0x59, 0x4e, 0x49, 0xf9, 0x47 }; const unsigned char ebc2cg0[256] = { /*00*/ 0x00, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*08*/ 0xdf, 0xdf, 0xdf, 0xdf, 0x02, 0x03, 0x00, 0x00, /*10*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0x04, 0xdf, 0xdf, /*18*/ 0xdf, 0x05, 0xdf, 0xdf, 0x9f, 0xdf, 0x9e, 0xdf, /*20*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*28*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*30*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*38*/ 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, /*40*/ 0x10, 0x01, 0x55, 0x50, 0x40, 0x5a, 0x45, 0x9c, /*48*/ 0x4f, 0x5f, 0x1b, 0x32, 0x09, 0x0d, 0x35, 0x16, /*50*/ 0x30, 0x4a, 0x56, 0x51, 0x41, 0x5c, 0x57, 0x52, /*58*/ 0x42, 0x2a, 0x19, 0x1a, 0xbf, 0x0c, 0xbe, 0x36, /*60*/ 0x31, 0x14, 0x75, 0x70, 0x60, 0x7a, 0x65, 0xbc, /*68*/ 0xbd, 0x7f, 0x17, 0x33, 0x2e, 0x2f, 0x08, 0x18, /*70*/ 0x9b, 0x7b, 0x76, 0x71, 0x61, 0x7c, 0x77, 0x72, /*78*/ 0x62, 0x3d, 0x34, 0x2c, 0x2d, 0x12, 0x11, 0x13, /*80*/ 0xbb, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /*88*/ 0x87, 0x88, 0x6c, 0x6d, 0xf7, 0x49, 0xf9, 0xd6, /*90*/ 0x38, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /*98*/ 0x90, 0x91, 0x6a, 0x6b, 0x9a, 0x3f, 0xba, 0x1f, /*a0*/ 0x54, 0x3b, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /*a8*/ 0x98, 0x99, 0x6e, 0x6f, 0xd7, 0x48, 0xd9, 0xd1, /*b0*/ 0x3a, 0x1c, 0x1d, 0x39, 0xd0, 0x2b, 0x1e, 0x4b, /*b8*/ 0x4c, 0x4d, 0x0a, 0x0b, 0x37, 0x3c, 0x3e, 0x5b, /*c0*/ 0x0f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*c8*/ 0xa7, 0xa8, 0x07, 0x58, 0x53, 0x43, 0x5d, 0x46, /*d0*/ 0x0e, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /*d8*/ 0xb0, 0xb1, 0x67, 0x59, 0x4e, 0x44, 0x5e, 0x47, /*e0*/ 0x15, 0x9d, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /*e8*/ 0xb8, 0xb9, 0x68, 0x78, 0x73, 0x63, 0x7d, 0x66, /*f0*/ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /*f8*/ 0x28, 0x29, 0x69, 0x79, 0x74, 0x64, 0x7e, 0x06 }; const unsigned char ebc2asc0[256] = { /*00*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*08*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*10*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*18*/ 0x20, 0x20, 0x20, 0x20, 0x2a, 0x20, 0x3b, 0x20, /*20*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*28*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*30*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*38*/ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, /*40*/ 0x20, 0x20, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, /*48*/ 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /*50*/ 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, /*58*/ 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0xac, /*60*/ 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, /*68*/ 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /*70*/ 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, /*78*/ 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /*80*/ 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /*88*/ 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /*90*/ 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /*98*/ 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /*a0*/ 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /*a8*/ 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0xdd, 0xde, 0xae, /*b0*/ 0x5e, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, /*b8*/ 0xbd, 0xbe, 0x5b, 0x5d, 0xaf, 0xa8, 0xb4, 0xd7, /*c0*/ 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /*c8*/ 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /*d0*/ 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /*d8*/ 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, /*e0*/ 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /*e8*/ 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /*f0*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /*f8*/ 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x20 }; const unsigned char asc2ebc0[256] = { /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*08*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*10*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*18*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*20*/ 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /*28*/ 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /*30*/ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /*38*/ 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /*40*/ 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /*48*/ 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /*50*/ 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /*58*/ 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /*60*/ 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /*68*/ 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /*70*/ 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /*78*/ 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x00, /*80*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*88*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*90*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*98*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*a0*/ 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /*a8*/ 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, /*b0*/ 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /*b8*/ 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /*c0*/ 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /*c8*/ 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /*d0*/ 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /*d8*/ 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /*e0*/ 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /*e8*/ 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /*f0*/ 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /*f8*/ 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf }; ibm-3270-3.3.10ga4/ws3270/ctlr.h0000644000175000017500000000362711254565704015261 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ctlr.h * External declarations for ctlr.c data structures. */ extern int buffer_addr; /* buffer address */ extern int cursor_addr; /* cursor address */ extern struct ea *ea_buf; /* 3270 device buffer */ extern struct ea *aea_buf; /* alternate 3270 device buffer */ extern Boolean formatted; /* contains at least one field? */ extern Boolean is_altbuffer; /* in alternate-buffer mode? */ ibm-3270-3.3.10ga4/ws3270/xioc.h0000644000175000017500000000350711254565704015254 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xioc.h * Global declarations for xio.c. */ extern void Quit_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void x3270_exit(int n); extern void x_add_input(int net_sock); extern void x_except_off(void); extern void x_except_on(int net_sock); extern void x_remove_input(void); ibm-3270-3.3.10ga4/ws3270/ansi.c0000644000175000017500000016035711254565704015246 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ansi.c * ANSI terminal emulation. */ #include "globals.h" #if defined(X3270_ANSI) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #endif /*]*/ #include "appres.h" #include "ctlr.h" #include "3270ds.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "hostc.h" #include "screenc.h" #include "scrollc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #define MB_MAX 16 #define PE_MAX 1024 #define SC 1 /* save cursor position */ #define RC 2 /* restore cursor position */ #define NL 3 /* new line */ #define UP 4 /* cursor up */ #define E2 5 /* second level of ESC processing */ #define rS 6 /* reset */ #define IC 7 /* insert chars */ #define DN 8 /* cursor down */ #define RT 9 /* cursor right */ #define LT 10 /* cursor left */ #define CM 11 /* cursor motion */ #define ED 12 /* erase in display */ #define EL 13 /* erase in line */ #define IL 14 /* insert lines */ #define DL 15 /* delete lines */ #define DC 16 /* delete characters */ #define SG 17 /* set graphic rendition */ #define BL 18 /* ring bell */ #define NP 19 /* new page */ #define BS 20 /* backspace */ #define CR 21 /* carriage return */ #define LF 22 /* line feed */ #define HT 23 /* horizontal tab */ #define E1 24 /* first level of ESC processing */ #define Xx 25 /* undefined control character (nop) */ #define Pc 26 /* printing character */ #define Sc 27 /* semicolon (after ESC [) */ #define Dg 28 /* digit (after ESC [ or ESC [ ?) */ #define RI 29 /* reverse index */ #define DA 30 /* send device attributes */ #define SM 31 /* set mode */ #define RM 32 /* reset mode */ #define DO 33 /* return terminal ID (obsolete) */ #define SR 34 /* device status report */ #define CS 35 /* character set designate */ #define E3 36 /* third level of ESC processing */ #define DS 37 /* DEC private set */ #define DR 38 /* DEC private reset */ #define DV 39 /* DEC private save */ #define DT 40 /* DEC private restore */ #define SS 41 /* set scrolling region */ #define TM 42 /* text mode (ESC ]) */ #define T2 43 /* semicolon (after ESC ]) */ #define TX 44 /* text parameter (after ESC ] n ;) */ #define TB 45 /* text parameter done (ESC ] n ; xxx BEL) */ #define TS 46 /* tab set */ #define TC 47 /* tab clear */ #define C2 48 /* character set designate (finish) */ #define G0 49 /* select G0 character set */ #define G1 50 /* select G1 character set */ #define G2 51 /* select G2 character set */ #define G3 52 /* select G3 character set */ #define S2 53 /* select G2 for next character */ #define S3 54 /* select G3 for next character */ #define MB 55 /* process multi-byte character */ static enum state { DATA = 0, ESC = 1, CSDES = 2, N1 = 3, DECP = 4, TEXT = 5, TEXT2 = 6, MBPEND = 7 } state = DATA; static enum state ansi_data_mode(int, int); static enum state dec_save_cursor(int, int); static enum state dec_restore_cursor(int, int); static enum state ansi_newline(int, int); static enum state ansi_cursor_up(int, int); static enum state ansi_esc2(int, int); static enum state ansi_reset(int, int); static enum state ansi_insert_chars(int, int); static enum state ansi_cursor_down(int, int); static enum state ansi_cursor_right(int, int); static enum state ansi_cursor_left(int, int); static enum state ansi_cursor_motion(int, int); static enum state ansi_erase_in_display(int, int); static enum state ansi_erase_in_line(int, int); static enum state ansi_insert_lines(int, int); static enum state ansi_delete_lines(int, int); static enum state ansi_delete_chars(int, int); static enum state ansi_sgr(int, int); static enum state ansi_bell(int, int); static enum state ansi_newpage(int, int); static enum state ansi_backspace(int, int); static enum state ansi_cr(int, int); static enum state ansi_lf(int, int); static enum state ansi_htab(int, int); static enum state ansi_escape(int, int); static enum state ansi_nop(int, int); static enum state ansi_printing(int, int); static enum state ansi_semicolon(int, int); static enum state ansi_digit(int, int); static enum state ansi_reverse_index(int, int); static enum state ansi_send_attributes(int, int); static enum state ansi_set_mode(int, int); static enum state ansi_reset_mode(int, int); static enum state dec_return_terminal_id(int, int); static enum state ansi_status_report(int, int); static enum state ansi_cs_designate(int, int); static enum state ansi_esc3(int, int); static enum state dec_set(int, int); static enum state dec_reset(int, int); static enum state dec_save(int, int); static enum state dec_restore(int, int); static enum state dec_scrolling_region(int, int); static enum state xterm_text_mode(int, int); static enum state xterm_text_semicolon(int, int); static enum state xterm_text(int, int); static enum state xterm_text_do(int, int); static enum state ansi_htab_set(int, int); static enum state ansi_htab_clear(int, int); static enum state ansi_cs_designate2(int, int); static enum state ansi_select_g0(int, int); static enum state ansi_select_g1(int, int); static enum state ansi_select_g2(int, int); static enum state ansi_select_g3(int, int); static enum state ansi_one_g2(int, int); static enum state ansi_one_g3(int, int); static enum state ansi_multibyte(int, int); typedef enum state (*afn_t)(int, int); static afn_t ansi_fn[] = { /* 0 */ &ansi_data_mode, /* 1 */ &dec_save_cursor, /* 2 */ &dec_restore_cursor, /* 3 */ &ansi_newline, /* 4 */ &ansi_cursor_up, /* 5 */ &ansi_esc2, /* 6 */ &ansi_reset, /* 7 */ &ansi_insert_chars, /* 8 */ &ansi_cursor_down, /* 9 */ &ansi_cursor_right, /* 10 */ &ansi_cursor_left, /* 11 */ &ansi_cursor_motion, /* 12 */ &ansi_erase_in_display, /* 13 */ &ansi_erase_in_line, /* 14 */ &ansi_insert_lines, /* 15 */ &ansi_delete_lines, /* 16 */ &ansi_delete_chars, /* 17 */ &ansi_sgr, /* 18 */ &ansi_bell, /* 19 */ &ansi_newpage, /* 20 */ &ansi_backspace, /* 21 */ &ansi_cr, /* 22 */ &ansi_lf, /* 23 */ &ansi_htab, /* 24 */ &ansi_escape, /* 25 */ &ansi_nop, /* 26 */ &ansi_printing, /* 27 */ &ansi_semicolon, /* 28 */ &ansi_digit, /* 29 */ &ansi_reverse_index, /* 30 */ &ansi_send_attributes, /* 31 */ &ansi_set_mode, /* 32 */ &ansi_reset_mode, /* 33 */ &dec_return_terminal_id, /* 34 */ &ansi_status_report, /* 35 */ &ansi_cs_designate, /* 36 */ &ansi_esc3, /* 37 */ &dec_set, /* 38 */ &dec_reset, /* 39 */ &dec_save, /* 40 */ &dec_restore, /* 41 */ &dec_scrolling_region, /* 42 */ &xterm_text_mode, /* 43 */ &xterm_text_semicolon, /* 44 */ &xterm_text, /* 45 */ &xterm_text_do, /* 46 */ &ansi_htab_set, /* 47 */ &ansi_htab_clear, /* 48 */ &ansi_cs_designate2, /* 49 */ &ansi_select_g0, /* 50 */ &ansi_select_g1, /* 51 */ &ansi_select_g2, /* 52 */ &ansi_select_g3, /* 53 */ &ansi_one_g2, /* 54 */ &ansi_one_g3, /* 55 */ &ansi_multibyte, }; static unsigned char st[8][256] = { /* * State table for base processing (state == DATA) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,BL,BS,HT,LF,LF,NP,CR,G1,G0, /* 10 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,E1,Xx,Xx,Xx,Xx, /* 20 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 30 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 40 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 50 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 60 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* 70 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Xx, /* 80 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx, /* 90 */ Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx,Xx, /* a0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* b0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* c0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* d0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* e0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc, /* f0 */ Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc,Pc }, /* * State table for ESC processing (state == ESC) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0,CS,CS,CS,CS, 0, 0, 0, 0, /* 30 */ 0, 0, 0, 0, 0, 0, 0,SC,RC, 0, 0, 0, 0, 0, 0, 0, /* 40 */ 0, 0, 0, 0, 0,NL, 0, 0,TS, 0, 0, 0, 0,RI,S2,S3, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,E2, 0,TM, 0, 0, /* 60 */ 0, 0, 0,rS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,G2,G3, /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC ()*+ C processing (state == CSDES) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ C2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 40 */ 0,C2,C2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC [ processing (state == N1) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg, 0,Sc, 0, 0, 0,E3, /* 40 */ IC,UP,DN,RT,LT, 0, 0, 0,CM, 0,ED,EL,IL,DL, 0, 0, /* 50 */ DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0,DA, 0, 0,CM,TC,SM, 0, 0, 0,RM,SG,SR, 0, /* 70 */ 0, 0,SS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC [ ? processing (state == DECP) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg, 0, 0, 0, 0, 0, 0, /* 40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0, 0, 0, 0, 0, 0,DS, 0, 0, 0,DR, 0, 0, 0, /* 70 */ 0, 0,DT,DV, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC ] processing (state == TEXT) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30 */ Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg,Dg, 0,T2, 0, 0, 0, 0, /* 40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* * State table for ESC ] n ; processing (state == TEXT2) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ 0, 0, 0, 0, 0, 0, 0,TB, 0, 0, 0, 0, 0, 0, 0, 0, /* 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 30 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 40 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 50 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 60 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 70 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,Xx, /* 80 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* 90 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* a0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* b0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* c0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* d0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* e0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX, /* f0 */ TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX,TX }, /* * State table for multi-byte characters (state == MBPEND) */ { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ /* 00 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 10 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 20 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 30 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 40 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 50 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 60 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 70 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 80 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* 90 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* a0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* b0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* c0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* d0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* e0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB, /* f0 */ MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB,MB }, }; /* Character sets. */ #define CS_G0 0 #define CS_G1 1 #define CS_G2 2 #define CS_G3 3 /* Character set designations. */ #define CSD_LD 0 #define CSD_UK 1 #define CSD_US 2 static int saved_cursor = 0; #define NN 20 static int n[NN], nx = 0; #define NT 256 static char text[NT + 1]; static int tx = 0; static int ansi_ch; static unsigned char gr = 0; static unsigned char saved_gr = 0; static unsigned char fg = 0; static unsigned char saved_fg = 0; static unsigned char bg = 0; static unsigned char saved_bg = 0; static int cset = CS_G0; static int saved_cset = CS_G0; static int csd[4] = { CSD_US, CSD_US, CSD_US, CSD_US }; static int saved_csd[4] = { CSD_US, CSD_US, CSD_US, CSD_US }; static int once_cset = -1; static int insert_mode = 0; static int auto_newline_mode = 0; static int appl_cursor = 0; static int saved_appl_cursor = 0; static int wraparound_mode = 1; static int saved_wraparound_mode = 1; static int rev_wraparound_mode = 0; static int saved_rev_wraparound_mode = 0; static int allow_wide_mode = 0; static int saved_allow_wide_mode = 0; static int wide_mode = 0; static int saved_wide_mode = 0; static Boolean saved_altbuffer = False; static int scroll_top = -1; static int scroll_bottom = -1; static unsigned char *tabs = (unsigned char *) NULL; static char gnnames[] = "()*+"; static char csnames[] = "0AB"; static int cs_to_change; static int pmi = 0; static char pending_mbs[MB_MAX]; static int pe = 0; static unsigned char ped[PE_MAX]; static Boolean held_wrap = False; static void ansi_scroll(void); static enum state ansi_data_mode(int ig1 _is_unused, int ig2 _is_unused) { return DATA; } static enum state dec_save_cursor(int ig1 _is_unused, int ig2 _is_unused) { int i; saved_cursor = cursor_addr; saved_cset = cset; for (i = 0; i < 4; i++) saved_csd[i] = csd[i]; saved_fg = fg; saved_bg = bg; saved_gr = gr; return DATA; } static enum state dec_restore_cursor(int ig1 _is_unused, int ig2 _is_unused) { int i; cset = saved_cset; for (i = 0; i < 4; i++) csd[i] = saved_csd[i]; fg = saved_fg; bg = saved_bg; gr = saved_gr; cursor_move(saved_cursor); held_wrap = False; return DATA; } static enum state ansi_newline(int ig1 _is_unused, int ig2 _is_unused) { int nc; cursor_move(cursor_addr - (cursor_addr % COLS)); nc = cursor_addr + COLS; if (nc < scroll_bottom * COLS) cursor_move(nc); else ansi_scroll(); held_wrap = False; return DATA; } static enum state ansi_cursor_up(int nn, int ig2 _is_unused) { int rr; if (nn < 1) nn = 1; rr = cursor_addr / COLS; if (rr - nn < 0) cursor_move(cursor_addr % COLS); else cursor_move(cursor_addr - (nn * COLS)); held_wrap = False; return DATA; } static enum state ansi_esc2(int ig1 _is_unused, int ig2 _is_unused) { register int i; for (i = 0; i < NN; i++) n[i] = 0; nx = 0; return N1; } static enum state ansi_reset(int ig1 _is_unused, int ig2 _is_unused) { int i; static Boolean first = True; gr = 0; saved_gr = 0; fg = 0; saved_fg = 0; bg = 0; saved_bg = 0; cset = CS_G0; saved_cset = CS_G0; csd[0] = csd[1] = csd[2] = csd[3] = CSD_US; saved_csd[0] = saved_csd[1] = saved_csd[2] = saved_csd[3] = CSD_US; once_cset = -1; saved_cursor = 0; insert_mode = 0; auto_newline_mode = 0; appl_cursor = 0; saved_appl_cursor = 0; wraparound_mode = 1; saved_wraparound_mode = 1; rev_wraparound_mode = 0; saved_rev_wraparound_mode = 0; allow_wide_mode = 0; saved_allow_wide_mode = 0; wide_mode = 0; allow_wide_mode = 0; saved_altbuffer = False; scroll_top = 1; scroll_bottom = ROWS; Replace(tabs, (unsigned char *)Malloc((COLS+7)/8)); for (i = 0; i < (COLS+7)/8; i++) tabs[i] = 0x01; held_wrap = False; if (!first) { ctlr_altbuffer(True); ctlr_aclear(0, ROWS * COLS, 1); ctlr_altbuffer(False); ctlr_clear(False); screen_80(); } first = False; pmi = 0; return DATA; } static enum state ansi_insert_chars(int nn, int ig2 _is_unused) { int cc = cursor_addr % COLS; /* current col */ int mc = COLS - cc; /* max chars that can be inserted */ int ns; /* chars that are shifting */ if (nn < 1) nn = 1; if (nn > mc) nn = mc; /* Move the surviving chars right */ ns = mc - nn; if (ns) ctlr_bcopy(cursor_addr, cursor_addr + nn, ns, 1); /* Clear the middle of the line */ ctlr_aclear(cursor_addr, nn, 1); return DATA; } static enum state ansi_cursor_down(int nn, int ig2 _is_unused) { int rr; if (nn < 1) nn = 1; rr = cursor_addr / COLS; if (rr + nn >= ROWS) cursor_move((ROWS-1)*COLS + (cursor_addr%COLS)); else cursor_move(cursor_addr + (nn * COLS)); held_wrap = False; return DATA; } static enum state ansi_cursor_right(int nn, int ig2 _is_unused) { int cc; if (nn < 1) nn = 1; cc = cursor_addr % COLS; if (cc == COLS-1) return DATA; if (cc + nn >= COLS) nn = COLS - 1 - cc; cursor_move(cursor_addr + nn); held_wrap = False; return DATA; } static enum state ansi_cursor_left(int nn, int ig2 _is_unused) { int cc; if (held_wrap) { held_wrap = False; return DATA; } if (nn < 1) nn = 1; cc = cursor_addr % COLS; if (!cc) return DATA; if (nn > cc) nn = cc; cursor_move(cursor_addr - nn); return DATA; } static enum state ansi_cursor_motion(int n1, int n2) { if (n1 < 1) n1 = 1; if (n1 > ROWS) n1 = ROWS; if (n2 < 1) n2 = 1; if (n2 > COLS) n2 = COLS; cursor_move((n1 - 1) * COLS + (n2 - 1)); held_wrap = False; return DATA; } static enum state ansi_erase_in_display(int nn, int ig2 _is_unused) { switch (nn) { case 0: /* below */ ctlr_aclear(cursor_addr, (ROWS * COLS) - cursor_addr, 1); break; case 1: /* above */ ctlr_aclear(0, cursor_addr + 1, 1); break; case 2: /* all (without moving cursor) */ if (cursor_addr == 0 && !is_altbuffer) scroll_save(ROWS, True); ctlr_aclear(0, ROWS * COLS, 1); break; } return DATA; } static enum state ansi_erase_in_line(int nn, int ig2 _is_unused) { int nc = cursor_addr % COLS; switch (nn) { case 0: /* to right */ ctlr_aclear(cursor_addr, COLS - nc, 1); break; case 1: /* to left */ ctlr_aclear(cursor_addr - nc, nc+1, 1); break; case 2: /* all */ ctlr_aclear(cursor_addr - nc, COLS, 1); break; } return DATA; } static enum state ansi_insert_lines(int nn, int ig2 _is_unused) { int rr = cursor_addr / COLS; /* current row */ int mr = scroll_bottom - rr; /* rows left at and below this one */ int ns; /* rows that are shifting */ /* If outside of the scrolling region, do nothing */ if (rr < scroll_top - 1 || rr >= scroll_bottom) return DATA; if (nn < 1) nn = 1; if (nn > mr) nn = mr; /* Move the victims down */ ns = mr - nn; if (ns) ctlr_bcopy(rr * COLS, (rr + nn) * COLS, ns * COLS, 1); /* Clear the middle of the screen */ ctlr_aclear(rr * COLS, nn * COLS, 1); return DATA; } static enum state ansi_delete_lines(int nn, int ig2 _is_unused) { int rr = cursor_addr / COLS; /* current row */ int mr = scroll_bottom - rr; /* max rows that can be deleted */ int ns; /* rows that are shifting */ /* If outside of the scrolling region, do nothing */ if (rr < scroll_top - 1 || rr >= scroll_bottom) return DATA; if (nn < 1) nn = 1; if (nn > mr) nn = mr; /* Move the surviving rows up */ ns = mr - nn; if (ns) ctlr_bcopy((rr + nn) * COLS, rr * COLS, ns * COLS, 1); /* Clear the rest of the screen */ ctlr_aclear((rr + ns) * COLS, nn * COLS, 1); return DATA; } static enum state ansi_delete_chars(int nn, int ig2 _is_unused) { int cc = cursor_addr % COLS; /* current col */ int mc = COLS - cc; /* max chars that can be deleted */ int ns; /* chars that are shifting */ if (nn < 1) nn = 1; if (nn > mc) nn = mc; /* Move the surviving chars left */ ns = mc - nn; if (ns) ctlr_bcopy(cursor_addr + nn, cursor_addr, ns, 1); /* Clear the end of the line */ ctlr_aclear(cursor_addr + ns, nn, 1); return DATA; } static enum state ansi_sgr(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 0: gr = 0; fg = 0; bg = 0; break; case 1: gr |= GR_INTENSIFY; break; case 4: gr |= GR_UNDERLINE; break; case 5: gr |= GR_BLINK; break; case 7: gr |= GR_REVERSE; break; case 30: fg = 0xf0; /* black */ break; case 31: fg = 0xf2; /* red */ break; case 32: fg = 0xf4; /* green */ break; case 33: fg = 0xf6; /* yellow */ break; case 34: fg = 0xf1; /* blue */ break; case 35: fg = 0xf3; /* magenta */ break; case 36: #if defined(WC3270) /*[*/ fg = 0xf6; /* turquoise */ #else /*][*/ fg = 0xfd; /* cyan */ #endif /*]*/ break; case 37: #if defined(WC3270) /*[*/ fg = 0xf7; /* white */ #else /*][*/ fg = 0xff; /* white */ #endif /*]*/ break; case 39: fg = 0; /* default */ break; case 40: bg = 0xf0; /* black */ break; case 41: bg = 0xf2; /* red */ break; case 42: bg = 0xf4; /* green */ break; case 43: bg = 0xf6; /* yellow */ break; case 44: bg = 0xf1; /* blue */ break; case 45: bg = 0xf3; /* magenta */ break; case 46: #if defined(WC3270) /*[*/ bg = 0xf6; /* turquoise */ #else /*][*/ bg = 0xfd; /* cyan */ #endif /*]*/ break; case 47: #if defined(WC3270) /*[*/ bg = 0xf7; /* white */ #else /*][*/ bg = 0xff; /* white */ #endif /*]*/ break; case 49: bg = 0; /* default */ break; } return DATA; } static enum state ansi_bell(int ig1 _is_unused, int ig2 _is_unused) { ring_bell(); return DATA; } static enum state ansi_newpage(int ig1 _is_unused, int ig2 _is_unused) { ctlr_clear(False); return DATA; } static enum state ansi_backspace(int ig1 _is_unused, int ig2 _is_unused) { if (held_wrap) { held_wrap = False; return DATA; } if (rev_wraparound_mode) { if (cursor_addr > (scroll_top - 1) * COLS) cursor_move(cursor_addr - 1); } else { if (cursor_addr % COLS) cursor_move(cursor_addr - 1); } return DATA; } static enum state ansi_cr(int ig1 _is_unused, int ig2 _is_unused) { if (cursor_addr % COLS) cursor_move(cursor_addr - (cursor_addr % COLS)); if (auto_newline_mode) (void) ansi_lf(0, 0); held_wrap = False; return DATA; } static enum state ansi_lf(int ig1 _is_unused, int ig2 _is_unused) { int nc = cursor_addr + COLS; held_wrap = False; /* If we're below the scrolling region, don't scroll. */ if ((cursor_addr / COLS) >= scroll_bottom) { if (nc < ROWS * COLS) cursor_move(nc); return DATA; } if (nc < scroll_bottom * COLS) cursor_move(nc); else ansi_scroll(); return DATA; } static enum state ansi_htab(int ig1 _is_unused, int ig2 _is_unused) { int col = cursor_addr % COLS; int i; held_wrap = False; if (col == COLS-1) return DATA; for (i = col+1; i < COLS-1; i++) if (tabs[i/8] & 1<<(i%8)) break; cursor_move(cursor_addr - col + i); return DATA; } static enum state ansi_escape(int ig1 _is_unused, int ig2 _is_unused) { return ESC; } static enum state ansi_nop(int ig1 _is_unused, int ig2 _is_unused) { return DATA; } #define PWRAP { \ nc = cursor_addr + 1; \ if (nc < scroll_bottom * COLS) \ cursor_move(nc); \ else { \ if (cursor_addr / COLS >= scroll_bottom) \ cursor_move(cursor_addr / COLS * COLS); \ else { \ ansi_scroll(); \ cursor_move(nc - COLS); \ } \ } \ } static enum state ansi_printing(int ig1 _is_unused, int ig2 _is_unused) { int nc; unsigned short ebc_ch; #if defined(X3270_DBCS) /*[*/ enum dbcs_state d; #endif /*]*/ if ((pmi == 0) && (ansi_ch & 0x80)) { char mbs[2]; int consumed; enum me_fail fail; unsigned long ucs4; mbs[0] = (char)ansi_ch; mbs[1] = '\0'; ucs4 = multibyte_to_unicode(mbs, 1, &consumed, &fail); if (ucs4 == 0) { switch (fail) { case ME_SHORT: /* Start munching multi-byte. */ pmi = 0; pending_mbs[pmi++] = (char)ansi_ch; return MBPEND; case ME_INVALID: default: /* Invalid multi-byte -> '?' */ ansi_ch = '?'; break; } } else { ansi_ch = ucs4; } } pmi = 0; /* Translate to EBCDIC to see if it's DBCS. */ ebc_ch = unicode_to_ebcdic(ansi_ch); if (ebc_ch & ~0xff) { #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif { ansi_ch = '?'; ebc_ch = asc2ebc0['?']; } } if (held_wrap) { PWRAP; held_wrap = False; } if (insert_mode) (void) ansi_insert_chars(1, 0); #if defined(X3270_DBCS) /*[*/ d = ctlr_dbcs_state(cursor_addr); #endif /*]*/ switch (csd[(once_cset != -1) ? once_cset : cset]) { case CSD_LD: /* line drawing "0" */ if (ansi_ch >= 0x5f && ansi_ch <= 0x7e) ctlr_add(cursor_addr, (unsigned char)(ansi_ch - 0x5f), CS_LINEDRAW); else if (ebc_ch & ~0xff) ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); else ctlr_add(cursor_addr, ebc_ch, CS_BASE); break; case CSD_UK: /* UK "A" */ if (ansi_ch == '#') ctlr_add(cursor_addr, 0x1e, CS_LINEDRAW); else if (ebc_ch & ~0xff) ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); else ctlr_add(cursor_addr, ebc_ch, CS_BASE); break; case CSD_US: /* US "B" */ #if !defined(X3270_DBCS) /*[*/ if (ebc_ch & ~0xff) ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); else ctlr_add(cursor_addr, ebc_ch, CS_BASE); #else /*][*/ if (ebc_ch & ~0xff) { /* Add a DBCS character to the buffer. */ if (!dbcs) { /* Not currently using a DBCS character set. */ ctlr_add(cursor_addr, unicode_to_ebcdic('?'), CS_BASE); break; } /* Get past the last column. */ if ((cursor_addr % COLS) == (COLS-1)) { if (!wraparound_mode) return DATA; ctlr_add(cursor_addr, EBC_space, CS_BASE); ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); cursor_addr = cursor_addr + 1; d = ctlr_dbcs_state(cursor_addr); } /* Add the left half. */ ctlr_add(cursor_addr, (ebc_ch >> 8) & 0xff, CS_DBCS); ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); /* Handle unaligned DBCS overwrite. */ if (d == DBCS_RIGHT || d == DBCS_RIGHT_WRAP) { int xaddr; xaddr = cursor_addr; DEC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ea_buf[xaddr].db = DBCS_NONE; } /* Add the right half. */ INC_BA(cursor_addr); ctlr_add(cursor_addr, ebc_ch & 0xff, CS_DBCS); ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); /* Handle cursor wrap. */ if (wraparound_mode) { if (!((cursor_addr + 1) % COLS)) { held_wrap = True; } else { PWRAP; } } else { if ((cursor_addr % COLS) != (COLS - 1)) cursor_move(cursor_addr + 1); } (void) ctlr_dbcs_postprocess(); return DATA; } /* Add an SBCS character to the buffer. */ ctlr_add(cursor_addr, ebc_ch, CS_BASE); #endif /*]*/ break; } #if defined(X3270_DBCS) /*[*/ /* Handle conflicts with existing DBCS characters. */ if (d == DBCS_RIGHT || d == DBCS_RIGHT_WRAP) { int xaddr; xaddr = cursor_addr; DEC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ea_buf[xaddr].db = DBCS_NONE; ea_buf[cursor_addr].db = DBCS_NONE; (void) ctlr_dbcs_postprocess(); } if (d == DBCS_LEFT || d == DBCS_LEFT_WRAP) { int xaddr; xaddr = cursor_addr; INC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ea_buf[xaddr].db = DBCS_NONE; ea_buf[cursor_addr].db = DBCS_NONE; (void) ctlr_dbcs_postprocess(); } #endif /*]*/ once_cset = -1; ctlr_add_gr(cursor_addr, gr); ctlr_add_fg(cursor_addr, fg); ctlr_add_bg(cursor_addr, bg); if (wraparound_mode) { /* * There is a fascinating behavior of xterm which we will * attempt to emulate here. When a character is printed in the * last column, the cursor sticks there, rather than wrapping * to the next line. Another printing character will put the * cursor in column 2 of the next line. One cursor-left * sequence won't budge it; two will. Saving and restoring * the cursor won't move the cursor, but will cancel all of * the above behaviors... * * In my opinion, very strange, but among other things, 'vi' * depends on it! */ if (!((cursor_addr + 1) % COLS)) { held_wrap = True; } else { PWRAP; } } else { if ((cursor_addr % COLS) != (COLS - 1)) cursor_move(cursor_addr + 1); } return DATA; } static enum state ansi_multibyte(int ig1, int ig2) { unsigned long ucs4; int consumed; enum me_fail fail; afn_t fn; if (pmi >= MB_MAX - 2) { /* String too long. */ pmi = 0; ansi_ch = '?'; return ansi_printing(ig1, ig2); } pending_mbs[pmi++] = (char)ansi_ch; pending_mbs[pmi] = '\0'; ucs4 = multibyte_to_unicode(pending_mbs, pmi, &consumed, &fail); if (ucs4 != 0) { /* Success! */ ansi_ch = ucs4; return ansi_printing(ig1, ig2); } if (fail == ME_SHORT) { /* Go get more. */ return MBPEND; } /* Failure. */ /* Replace the sequence with '?'. */ ucs4 = ansi_ch; /* save for later */ pmi = 0; ansi_ch = '?'; (void) ansi_printing(ig1, ig2); /* * Reprocess whatever we choked on (especially if it's a control * character). */ ansi_ch = ucs4; state = DATA; fn = ansi_fn[st[(int)DATA][ansi_ch]]; return (*fn)(n[0], n[1]); } static enum state ansi_semicolon(int ig1 _is_unused, int ig2 _is_unused) { if (nx >= NN) return DATA; nx++; return state; } static enum state ansi_digit(int ig1 _is_unused, int ig2 _is_unused) { n[nx] = (n[nx] * 10) + (ansi_ch - '0'); return state; } static enum state ansi_reverse_index(int ig1 _is_unused, int ig2 _is_unused) { int rr = cursor_addr / COLS; /* current row */ int np = (scroll_top - 1) - rr; /* number of rows in the scrolling region, above this line */ int ns; /* number of rows to scroll */ int nn = 1; /* number of rows to index */ held_wrap = False; /* If the cursor is above the scrolling region, do a simple margined cursor up. */ if (np < 0) { (void) ansi_cursor_up(nn, 0); return DATA; } /* Split the number of lines to scroll into ns */ if (nn > np) { ns = nn - np; nn = np; } else ns = 0; /* Move the cursor up without scrolling */ if (nn) (void) ansi_cursor_up(nn, 0); /* Insert lines at the top for backward scroll */ if (ns) (void) ansi_insert_lines(ns, 0); return DATA; } static enum state ansi_send_attributes(int nn, int ig2 _is_unused) { if (!nn) net_sends("\033[?1;2c"); return DATA; } static enum state dec_return_terminal_id(int ig1 _is_unused, int ig2 _is_unused) { return ansi_send_attributes(0, 0); } static enum state ansi_set_mode(int nn, int ig2 _is_unused) { switch (nn) { case 4: insert_mode = 1; break; case 20: auto_newline_mode = 1; break; } return DATA; } static enum state ansi_reset_mode(int nn, int ig2 _is_unused) { switch (nn) { case 4: insert_mode = 0; break; case 20: auto_newline_mode = 0; break; } return DATA; } static enum state ansi_status_report(int nn, int ig2 _is_unused) { static char cpr[11]; switch (nn) { case 5: net_sends("\033[0n"); break; case 6: (void) sprintf(cpr, "\033[%d;%dR", (cursor_addr/COLS) + 1, (cursor_addr%COLS) + 1); net_sends(cpr); break; } return DATA; } static enum state ansi_cs_designate(int ig1 _is_unused, int ig2 _is_unused) { cs_to_change = strchr(gnnames, ansi_ch) - gnnames; return CSDES; } static enum state ansi_cs_designate2(int ig1 _is_unused, int ig2 _is_unused) { csd[cs_to_change] = strchr(csnames, ansi_ch) - csnames; return DATA; } static enum state ansi_select_g0(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G0; return DATA; } static enum state ansi_select_g1(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G1; return DATA; } static enum state ansi_select_g2(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G2; return DATA; } static enum state ansi_select_g3(int ig1 _is_unused, int ig2 _is_unused) { cset = CS_G3; return DATA; } static enum state ansi_one_g2(int ig1 _is_unused, int ig2 _is_unused) { once_cset = CS_G2; return DATA; } static enum state ansi_one_g3(int ig1 _is_unused, int ig2 _is_unused) { once_cset = CS_G3; return DATA; } static enum state ansi_esc3(int ig1 _is_unused, int ig2 _is_unused) { return DECP; } static enum state dec_set(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* application cursor keys */ appl_cursor = 1; break; case 2: /* set G0-G3 */ csd[0] = csd[1] = csd[2] = csd[3] = CSD_US; break; case 3: /* 132-column mode */ if (allow_wide_mode) { wide_mode = 1; screen_132(); } break; case 7: /* wraparound mode */ wraparound_mode = 1; break; case 40: /* allow 80/132 switching */ allow_wide_mode = 1; break; case 45: /* reverse-wraparound mode */ rev_wraparound_mode = 1; break; case 47: /* alt buffer */ case 1049: ctlr_altbuffer(True); break; } return DATA; } static enum state dec_reset(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* normal cursor keys */ appl_cursor = 0; break; case 3: /* 132-column mode */ if (allow_wide_mode) { wide_mode = 0; screen_80(); } break; case 7: /* no wraparound mode */ wraparound_mode = 0; break; case 40: /* allow 80/132 switching */ allow_wide_mode = 0; break; case 45: /* no reverse-wraparound mode */ rev_wraparound_mode = 0; break; case 47: /* alt buffer */ case 1049: ctlr_altbuffer(False); break; } return DATA; } static enum state dec_save(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* application cursor keys */ saved_appl_cursor = appl_cursor; break; case 3: /* 132-column mode */ saved_wide_mode = wide_mode; break; case 7: /* wraparound mode */ saved_wraparound_mode = wraparound_mode; break; case 40: /* allow 80/132 switching */ saved_allow_wide_mode = allow_wide_mode; break; case 45: /* reverse-wraparound mode */ saved_rev_wraparound_mode = rev_wraparound_mode; break; case 47: /* alt buffer */ case 1049: saved_altbuffer = is_altbuffer; break; } return DATA; } static enum state dec_restore(int ig1 _is_unused, int ig2 _is_unused) { int i; for (i = 0; i <= nx && i < NN; i++) switch (n[i]) { case 1: /* application cursor keys */ appl_cursor = saved_appl_cursor; break; case 3: /* 132-column mode */ if (allow_wide_mode) { wide_mode = saved_wide_mode; if (wide_mode) screen_132(); else screen_80(); } break; case 7: /* wraparound mode */ wraparound_mode = saved_wraparound_mode; break; case 40: /* allow 80/132 switching */ allow_wide_mode = saved_allow_wide_mode; break; case 45: /* reverse-wraparound mode */ rev_wraparound_mode = saved_rev_wraparound_mode; break; case 47: /* alt buffer */ case 1049: /* alt buffer */ ctlr_altbuffer(saved_altbuffer); break; } return DATA; } static enum state dec_scrolling_region(int top, int bottom) { if (top < 1) top = 1; if (bottom > ROWS) bottom = ROWS; if (top <= bottom && (top > 1 || bottom < ROWS)) { scroll_top = top; scroll_bottom = bottom; cursor_move(0); } else { scroll_top = 1; scroll_bottom = ROWS; } return DATA; } static enum state xterm_text_mode(int ig1 _is_unused, int ig2 _is_unused) { nx = 0; n[0] = 0; return TEXT; } static enum state xterm_text_semicolon(int ig1 _is_unused, int ig2 _is_unused) { tx = 0; return TEXT2; } static enum state xterm_text(int ig1 _is_unused, int ig2 _is_unused) { if (tx < NT) text[tx++] = ansi_ch; return state; } static enum state xterm_text_do(int ig1 _is_unused, int ig2 _is_unused) { #if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ text[tx] = '\0'; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ switch (n[0]) { case 0: /* icon name and window title */ XtVaSetValues(toplevel, XtNiconName, text, NULL); XtVaSetValues(toplevel, XtNtitle, text, NULL); break; case 1: /* icon name */ XtVaSetValues(toplevel, XtNiconName, text, NULL); break; case 2: /* window_title */ XtVaSetValues(toplevel, XtNtitle, text, NULL); break; case 50: /* font */ screen_newfont(text, False, False); break; default: break; } #endif /*]*/ #if defined(WC3270) /*[*/ switch (n[0]) { case 0: /* icon name and window title */ case 2: /* window_title */ screen_title(text); break; default: break; } #endif /*]*/ return DATA; } static enum state ansi_htab_set(int ig1 _is_unused, int ig2 _is_unused) { register int col = cursor_addr % COLS; tabs[col/8] |= 1<<(col%8); return DATA; } static enum state ansi_htab_clear(int nn, int ig2 _is_unused) { register int col, i; switch (nn) { case 0: col = cursor_addr % COLS; tabs[col/8] &= ~(1<<(col%8)); break; case 3: for (i = 0; i < (COLS+7)/8; i++) tabs[i] = 0; break; } return DATA; } /* * Scroll the screen or the scrolling region. */ static void ansi_scroll(void) { held_wrap = False; /* Save the top line */ if (scroll_top == 1 && scroll_bottom == ROWS) { if (!is_altbuffer) scroll_save(1, False); ctlr_scroll(); return; } /* Scroll all but the last line up */ if (scroll_bottom > scroll_top) ctlr_bcopy(scroll_top * COLS, (scroll_top - 1) * COLS, (scroll_bottom - scroll_top) * COLS, 1); /* Clear the last line */ ctlr_aclear((scroll_bottom - 1) * COLS, COLS, 1); } /* Callback for when we enter ANSI mode. */ static void ansi_in3270(Boolean in3270) { if (!in3270) (void) ansi_reset(0, 0); } /* * External entry points */ void ansi_init(void) { register_schange(ST_3270_MODE, ansi_in3270); } void ansi_process(unsigned int c) { afn_t fn; c &= 0xff; ansi_ch = c; scroll_to_bottom(); #if defined(X3270_TRACE) /*[*/ if (toggled(SCREEN_TRACE)) trace_char((char)c); #endif /*]*/ fn = ansi_fn[st[(int)state][c]]; state = (*fn)(n[0], n[1]); /* Saving pending escape data. */ if (state == DATA) pe = 0; else if (pe < PE_MAX) ped[pe++] = c; } void ansi_send_up(void) { if (appl_cursor) net_sends("\033OA"); else net_sends("\033[A"); } void ansi_send_down(void) { if (appl_cursor) net_sends("\033OB"); else net_sends("\033[B"); } void ansi_send_right(void) { if (appl_cursor) net_sends("\033OC"); else net_sends("\033[C"); } void ansi_send_left(void) { if (appl_cursor) net_sends("\033OD"); else net_sends("\033[D"); } void ansi_send_home(void) { net_sends("\033[H"); } void ansi_send_clear(void) { net_sends("\033[2K"); } void ansi_send_pf(int nn) { static char fn_buf[6]; static int code[] = { /* * F1 through F12 are VT220 codes. (Note the discontinuity -- * \E[16~ is missing) */ 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 23, 24, /* * F13 through F20 are defined for xterm. */ 25, 26, 28, 29, 31, 32, 33, 34, /* * F21 through F24 are x3270 extensions. */ 35, 36, 37, 38 }; if (nn < 1 || (unsigned)nn > sizeof(code)/sizeof(code[0])) return; (void) sprintf(fn_buf, "\033[%d~", code[nn-1]); net_sends(fn_buf); } void ansi_send_pa(int nn) { static char fn_buf[4]; static char code[4] = { 'P', 'Q', 'R', 'S' }; if (nn < 1 || nn > 4) return; (void) sprintf(fn_buf, "\033O%c", code[nn-1]); net_sends(fn_buf); } void toggle_lineWrap(struct toggle *t _is_unused, enum toggle_type type _is_unused) { if (toggled(LINE_WRAP)) wraparound_mode = 1; else wraparound_mode = 0; } #if defined(X3270_TRACE) /*[*/ /* Emit an SGR command. */ static void emit_sgr(int mode) { space3270out((mode < 10)? 4: 5); *obptr++ = 0x1b; *obptr++ = '['; if (mode > 9) *obptr++ = '0' + (mode / 10); *obptr++ = '0' + (mode % 10); *obptr++ = 'm'; } /* Emit a DEC Private Mode command. */ static void emit_decpriv(int mode, char op) { space3270out((mode < 10)? 5: 6); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '?'; if (mode > 9) *obptr++ = '0' + (mode / 10); *obptr++ = '0' + (mode % 10); *obptr++ = op; } /* Emit a CUP (cursor position) command. */ static void emit_cup(int baddr) { if (baddr) { char cup_buf[11]; int sl; sl = sprintf(cup_buf, "\033[%d;%dH", (baddr / COLS) + 1, (baddr % COLS) + 1); space3270out(sl); strcpy((char *)obptr, cup_buf); obptr += sl; } else { space3270out(3); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = 'H'; } } /* Emit spaces or a CUP, whichever is shorter. */ static int ansi_dump_spaces(int spaces, int baddr) { if (spaces) { char cup_buf[11]; int sl; /* * Move the cursor, if it takes less space than * expanding the spaces. * It is possible to optimize this further with clever * CU[UDFB] sequences, but not (yet) worth the effort. */ sl = sprintf(cup_buf, "\033[%d;%dH", (baddr / COLS) + 1, (baddr % COLS) + 1); if (sl < spaces) { space3270out(sl); strcpy((char *)obptr, cup_buf); obptr += sl; } else { space3270out(spaces); while (spaces--) *obptr++ = ' '; } } return 0; } /* * Snap the provided screen buffer (primary or alternate). * This is (mostly) optimized to draw the minimum necessary, assuming a * blank screen. */ static void ansi_snap_one(struct ea *buf) { int baddr; int cur_gr = 0; int cur_fg = 0; int cur_bg = 0; int spaces = 0; static int uncolor_table[16] = { /* 0xf0 */ 0, /* 0xf1 */ 4, /* 0xf2 */ 1, /* 0xf3 */ 5, /* 0xf4 */ 2, /* 0xf5 */ 0, /* can't happen */ #if defined(WC3270) /*[*/ /* 0xf6 */ 6, #else /*][*/ /* 0xf6 */ 3, #endif /*]*/ #if defined(WC3270) /*[*/ /* 0xf7 */ 7, #else /*][*/ /* 0xf7 */ 0, /* can't happen */ #endif /*]*/ /* 0xf8 */ 0, /* can't happen */ /* 0xf9 */ 0, /* can't happen */ /* 0xfa */ 0, /* can't happen */ /* 0xfb */ 0, /* can't happen */ /* 0xfc */ 0, /* can't happen */ #if defined(WC3270) /*[*/ /* 0xfd */ 0, /* can't happen */ #else /*][*/ /* 0xfd */ 6, /* can't happen */ #endif /*]*/ /* 0xfe */ 0, /* can't happen */ #if defined(WC3270) /*[*/ /* 0xff */ 0, /* can't happen */ #else /*][*/ /* 0xff */ 7, /* can't happen */ #endif /*]*/ }; char mb[16]; int len; int xlen; int i; enum dbcs_state d; int c; int last_sgr = 0; #define EMIT_SGR(n) { emit_sgr(n); last_sgr = (n); } /* Draw what's on the screen. */ baddr = 0; do { int xgr = buf[baddr].gr; /* Set the attributes. */ if (xgr != cur_gr) { spaces = ansi_dump_spaces(spaces, baddr); if ((xgr ^ cur_gr) & cur_gr) { /* * Something turned off. Turn everything off, * then turn the remaining modes on below. */ EMIT_SGR(0); xgr = 0; } else { /* * Clear the bits in xgr that are already set * in cur_gr. Turn on the new modes. */ xgr &= ~cur_gr; } /* Turn on the attributes remaining in xgr. */ if (xgr & GR_INTENSIFY) EMIT_SGR(1); if (xgr & GR_UNDERLINE) EMIT_SGR(4); if (xgr & GR_BLINK) EMIT_SGR(5); if (xgr & GR_REVERSE) EMIT_SGR(7); cur_gr = buf[baddr].gr; } /* Set the colors. */ if (buf[baddr].fg != cur_fg) { spaces = ansi_dump_spaces(spaces, baddr); if (buf[baddr].fg) c = uncolor_table[buf[baddr].fg & 0x0f]; else c = 9; EMIT_SGR(30 + c); cur_fg = buf[baddr].fg; } if (buf[baddr].bg != cur_bg) { spaces = ansi_dump_spaces(spaces, baddr); if (buf[baddr].bg) c = uncolor_table[buf[baddr].bg & 0x0f]; else c = 9; EMIT_SGR(40 + c); cur_bg = buf[baddr].bg; } /* Expand the current character to multibyte. */ d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) { int xaddr = baddr; INC_BA(xaddr); len = ebcdic_to_multibyte(buf[baddr].cc << 8 | buf[xaddr].cc, mb, sizeof(mb)); } else if (IS_RIGHT(d)) { len = 0; } else { len = ebcdic_to_multibyte(buf[baddr].cc, mb, sizeof(mb)); } if (len > 0) len--; /* terminating NUL */ xlen = 0; for (i = 0; i < len; i++) { if ((mb[i] & 0xff) == 0xff) xlen++; } /* Optimize for white space. */ if (!cur_fg && !cur_bg && !cur_gr && ((len + xlen) == 1) && (mb[0] == ' ')) { spaces++; } else { if (spaces) spaces = ansi_dump_spaces(spaces, baddr); /* Emit the current character. */ space3270out(len + xlen); for (i = 0; i < len; i++) { if ((mb[i] & 0xff) == 0xff) *obptr++ = 0xff; *obptr++ = mb[i]; } } INC_BA(baddr); } while (baddr != 0); /* Remove any attributes we set above. */ if (last_sgr != 0) emit_sgr(0); } /* Snap the contents of the screen buffers in NVT mode. */ void ansi_snap(void) { /* * Note that ea_buf is the live buffer, and aea_buf is the other * buffer. So the task here is to draw the other buffer first, * then switch modes and draw the live one. */ if (is_altbuffer) { /* Draw the primary screen first. */ ansi_snap_one(aea_buf); emit_cup(0); /* Switch to the alternate. */ emit_decpriv(47, 'h'); /* Draw the secondary, and stay in alternate mode. */ ansi_snap_one(ea_buf); } else { int i; int any = 0; static struct ea zea = { 0, 0, 0, 0, 0, 0, 0, 0 }; /* See if aea_buf has anything in it. */ for (i = 0; i < ROWS * COLS; i++) { if (memcmp(&aea_buf[i], &zea, sizeof(struct ea))) { any = 1; break; } } if (any) { /* Switch to the alternate. */ emit_decpriv(47, 'h'); /* Draw the alternate screen. */ ansi_snap_one(aea_buf); emit_cup(0); /* Switch to the primary. */ emit_decpriv(47, 'l'); } /* Draw the primary, and stay in primary mode. */ ansi_snap_one(ea_buf); } } /* * Snap the non-default terminal modes. * This is a subtle piece of logic, and may harbor a few bugs yet. */ void ansi_snap_modes(void) { int i; static char csdsel[4] = "()*+"; /* Set up the saved cursor (cursor, fg, bg, gr, cset, csd). */ if (saved_cursor != 0 || saved_fg != 0 || saved_bg != 0 || saved_gr != 0 || saved_cset != CS_G0 || saved_csd[0] != CSD_US || saved_csd[1] != CSD_US || saved_csd[2] != CSD_US || saved_csd[3] != CSD_US) { if (saved_cursor != 0) emit_cup(saved_cursor); if (saved_fg != 0) emit_sgr(30 + saved_fg); if (saved_bg != 0) emit_sgr(40 + saved_bg); if (saved_gr != 0) { if (saved_gr & GR_INTENSIFY) emit_sgr(1); if (saved_gr & GR_UNDERLINE) emit_sgr(4); if (saved_gr & GR_BLINK) emit_sgr(5); if (saved_gr & GR_REVERSE) emit_sgr(7); } if (saved_cset != CS_G0) { switch (saved_cset) { case CS_G1: space3270out(1); *obptr++ = 0x0e; break; case CS_G2: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'N'; break; case CS_G3: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'O'; break; default: break; } } for (i = 0; i < 4; i++) { if (saved_csd[i] != CSD_US) { space3270out(3); *obptr++ = 0x1b; *obptr++ = csdsel[i]; *obptr++ = gnnames[saved_csd[i]]; } } /* Emit a SAVE CURSOR to stash these away. */ space3270out(2); *obptr++ = 0x1b; *obptr++ = '7'; } /* Now set the above to their current values, except for the cursor. */ if (fg != saved_fg) emit_sgr(30 + fg); if (bg != saved_bg) emit_sgr(40 + bg); if (gr != saved_gr) { emit_sgr(0); if (gr & GR_INTENSIFY) emit_sgr(1); if (gr & GR_UNDERLINE) emit_sgr(4); if (gr & GR_BLINK) emit_sgr(5); if (gr & GR_REVERSE) emit_sgr(7); } if (cset != saved_cset) { switch (cset) { case CS_G0: space3270out(1); *obptr++ = 0x0f; break; case CS_G1: space3270out(1); *obptr++ = 0x0e; break; case CS_G2: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'n'; break; case CS_G3: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'o'; break; default: break; } } for (i = 0; i < 4; i++) { if (csd[i] != saved_csd[i]) { space3270out(3); *obptr++ = 0x1b; *obptr++ = csdsel[i]; *obptr++ = gnnames[csd[i]]; } } /* * Handle appl_cursor, wrapaparound_mode, rev_wraparound_mode, * allow_wide_mode, wide_mode and altbuffer, both the saved values and * the current ones. */ if (saved_appl_cursor) { emit_decpriv(1, 'h'); /* set */ emit_decpriv(1, 's'); /* save */ if (!appl_cursor) emit_decpriv(1, 'l'); /* reset */ } else if (appl_cursor) { emit_decpriv(1, 'h'); /* set */ } if (saved_wide_mode) { emit_decpriv(3, 'h'); /* set */ emit_decpriv(3, 's'); /* save */ if (!wide_mode) emit_decpriv(3, 'l'); /* reset */ } else if (wide_mode) { emit_decpriv(3, 'h'); /* set */ } if (saved_wraparound_mode == 0) { emit_decpriv(7, 'h'); /* set (no-wraparound mode) */ emit_decpriv(7, 's'); /* save */ if (wraparound_mode) emit_decpriv(7, 'l'); /* reset */ } else if (!wraparound_mode) { emit_decpriv(7, 'h'); /* set (no-wraparound mode) */ } if (saved_allow_wide_mode) { emit_decpriv(40, 'h'); /* set */ emit_decpriv(40, 's'); /* save */ if (!allow_wide_mode) emit_decpriv(40, 'l'); /* reset */ } else if (allow_wide_mode) { emit_decpriv(40, 'h'); /* set */ } if (saved_rev_wraparound_mode) { emit_decpriv(45, 'h'); /* set (rev--wraparound mode) */ emit_decpriv(45, 's'); /* save */ if (!rev_wraparound_mode) emit_decpriv(45, 'l'); /* reset */ } else if (rev_wraparound_mode) { emit_decpriv(45, 'h'); /* set (rev-wraparound mode) */ } if (saved_altbuffer) { emit_decpriv(47, 'h'); /* set */ emit_decpriv(47, 's'); /* save */ if (!is_altbuffer) emit_decpriv(47, 'l'); /* reset */ } /* else not necessary to set it now -- it was already set when the screen was drawn */ /* * Now take care of auto_newline, insert mode, the scroll region * and tabs. */ if (auto_newline_mode) { space3270out(4); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '4'; *obptr++ = 'h'; } if (insert_mode) { space3270out(5); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '2'; *obptr++ = '0'; *obptr++ = 'h'; } if (scroll_top != 1 || scroll_bottom != ROWS) { space3270out(10); obptr += sprintf((char *)obptr, "\033[%d;%dr", scroll_top, scroll_bottom); } if (tabs) { unsigned char *deftabs; deftabs = (unsigned char *)Malloc((COLS+7)/8); for (i = 0; i < (COLS+7)/8; i++) deftabs[i] = 0x01; for (i = 0; i < COLS; i++) { if (tabs[i/8] & 1<<(i%8)) { if (!(deftabs[i/8] & 1<<(i%8))) { /* Tab was cleared. */ space3270out(15); obptr += sprintf((char *)obptr, "\033[%d;%dH", (cursor_addr / COLS) + 1, ((cursor_addr + i) % COLS) + 1); *obptr++ = 0x1b; *obptr++ = '['; *obptr++ = '0'; *obptr++ = 'g'; } } else { if (deftabs[i/8] & 1<<(i%8)) { /* Tab was set. */ space3270out(13); obptr += sprintf((char *)obptr, "\033[%d;%dH", (cursor_addr / COLS) + 1, ((cursor_addr + i) % COLS) + 1); *obptr++ = 0x1b; *obptr++ = 'H'; } } } } /* * We're done moving the cursor for other purposes (saving it, * messing with tabs). Put it where it should be now. */ emit_cup(cursor_addr); /* Now add any pending single-character CS change. */ switch (once_cset) { case CS_G2: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'N'; break; case CS_G3: space3270out(2); *obptr++ = 0x1b; *obptr++ = 'O'; break; default: break; } /* Now add any incomplete escape sequence. */ if (pe) { int xlen = 0; for (i = 0; i < pe; i++) if (ped[i] == 0xff) xlen++; space3270out(pe + xlen); for (i = 0; i < pe; i++) { if (ped[i] == 0xff) *obptr++ = 0xff; *obptr++ = ped[i]; } } /* Last, emit any incomplete multi-byte data. */ if (pmi) { space3270out(pmi); for (i = 0; i < pmi; i++) { *obptr++ = pending_mbs[i]; } } } #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/proxy.c0000644000175000017500000005361611254565704015474 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxy.c * This module implements various kinds of proxies. */ #include "globals.h" #if !defined(PR3287) /*[*/ #include "appres.h" #include "resources.h" #endif /*]*/ #if defined(_WIN32) /*[*/ #include #include #else /*][*/ #include #include #include #include #include #if defined(HAVE_SYS_SELECT_H) /*[*/ #include /* fd_set declaration */ #endif /*]*/ #endif /*]*/ #include "3270ds.h" #include "popupsc.h" #include "proxy.h" #include "proxyc.h" #include "resolverc.h" #include "telnetc.h" #include "trace_dsc.h" #include "w3miscc.h" #if defined(PR3287) /*[*/ extern char *proxy_spec; #endif /*]*/ #if defined(_WIN32) /*[*/ typedef unsigned long in_addr_t; #endif /*]*/ /* * Supported proxy types. * * At some point we will add SOCKS. */ enum { PT_NONE, PT_PASSTHRU, /* Sun telnet-passthru */ PT_HTTP, /* RFC 2817 CONNECT tunnel */ PT_TELNET, /* 'connect host port' proxy */ PT_SOCKS4, /* SOCKS version 4 (or 4A if necessary) */ PT_SOCKS4A, /* SOCKS version 4A (force remote name resolution) */ PT_SOCKS5, /* SOCKS version 5 (RFC 1928) */ PT_SOCKS5D, /* SOCKS version 5 (force remote name resolution) */ PT_MAX } proxytype_t; /* proxy type names -- keep these in sync with proxytype_t! */ char *type_name[] = { "unknown", "passthru", "HTTP", "TELNET", "SOCKS4", "SOCKS4A", "SOCKS5", "SOCKS5D" }; static int parse_host_port(char *s, char **phost, char **pport); static int proxy_passthru(int fd, char *host, unsigned short port); static int proxy_http(int fd, char *host, unsigned short port); static int proxy_telnet(int fd, char *host, unsigned short port); static int proxy_socks4(int fd, char *host, unsigned short port, int force_a); static int proxy_socks5(int fd, char *host, unsigned short port, int force_d); char * proxy_type_name(int type) { if (type < 1 || type >= PT_MAX) return "unknown"; else return type_name[type]; } /* * Resolve the type, hostname and port for a proxy. * Returns -1 for failure, 0 for no proxy, >0 (the proxy type) for success. */ int proxy_setup(char **phost, char **pport) { char *proxy; char *colon; int sl; #if defined(PR3287) /*[*/ proxy = proxy_spec; #else /*][*/ proxy = appres.proxy; #endif /*]*/ if (proxy == CN) return PT_NONE; if ((colon = strchr(proxy, ':')) == CN || (colon == proxy)) { popup_an_error("Invalid proxy syntax"); return -1; } sl = colon - proxy; if (sl == strlen(PROXY_PASSTHRU) && !strncasecmp(proxy, PROXY_PASSTHRU, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_PASSTHRU); return PT_PASSTHRU; } if (sl == strlen(PROXY_HTTP) && !strncasecmp(proxy, PROXY_HTTP, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_HTTP); return PT_HTTP; } if (sl == strlen(PROXY_TELNET) && !strncasecmp(proxy, PROXY_TELNET, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) { popup_an_error("Must specify port for telnet proxy"); return -1; } return PT_TELNET; } if (sl == strlen(PROXY_SOCKS4) && !strncasecmp(proxy, PROXY_SOCKS4, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS4); return PT_SOCKS4; } if (sl == strlen(PROXY_SOCKS4A) && !strncasecmp(proxy, PROXY_SOCKS4A, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS4A); return PT_SOCKS4A; } if (sl == strlen(PROXY_SOCKS5) && !strncasecmp(proxy, PROXY_SOCKS5, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS5); return PT_SOCKS5; } if (sl == strlen(PROXY_SOCKS5D) && !strncasecmp(proxy, PROXY_SOCKS5D, sl)) { if (parse_host_port(colon + 1, phost, pport) < 0) return -1; if (*pport == CN) *pport = NewString(PORT_SOCKS5D); return PT_SOCKS5D; } popup_an_error("Invalid proxy type '%.*s'", sl, proxy); return -1; } /* * Parse host[:port] from a string. * 'host' can be in square brackets to allow numeric IPv6 addresses. * Returns the host name and port name in heap memory. * Returns -1 for failure, 0 for success. */ static int parse_host_port(char *s, char **phost, char **pport) { char *colon; char *hstart; int hlen; if (*s == '[') { char *rbrack; /* Hostname in square brackets. */ hstart = s + 1; rbrack = strchr(s, ']'); if (rbrack == CN || rbrack == s + 1 || (*(rbrack + 1) != '\0' && *(rbrack + 1) != ':')) { popup_an_error("Invalid proxy hostname syntax"); return -1; } if (*(rbrack + 1) == ':') colon = rbrack + 1; else colon = NULL; hlen = rbrack - (s + 1); } else { hstart = s; colon = strchr(s, ':'); if (colon == s) { popup_an_error("Invalid proxy hostname syntax"); return -1; } if (colon == NULL) hlen = strlen(s); else hlen = colon - s; } /* Parse the port. */ if (colon == CN || !*(colon + 1)) *pport = CN; else *pport = NewString(colon + 1); /* Copy out the hostname. */ *phost = Malloc(hlen + 1); strncpy(*phost, hstart, hlen); (*phost)[hlen] = '\0'; return 0; } /* * Negotiate with the proxy server. * Returns -1 for failure, 0 for success. */ int proxy_negotiate(int type, int fd, char *host, unsigned short port) { switch (type) { case PT_NONE: return 0; case PT_PASSTHRU: return proxy_passthru(fd, host, port); case PT_HTTP: return proxy_http(fd, host, port); case PT_TELNET: return proxy_telnet(fd, host, port); case PT_SOCKS4: return proxy_socks4(fd, host, port, 0); case PT_SOCKS4A: return proxy_socks4(fd, host, port, 1); case PT_SOCKS5: return proxy_socks5(fd, host, port, 0); case PT_SOCKS5D: return proxy_socks5(fd, host, port, 1); default: return -1; } } /* Sun PASSTHRU proxy. */ static int proxy_passthru(int fd, char *host, unsigned short port) { char *buf; buf = Malloc(strlen(host) + 32); (void) sprintf(buf, "%s %u\r\n", host, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("Passthru Proxy: xmit '%.*s'", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("Passthru Proxy: send error"); Free(buf); return -1; } Free(buf); return 0; } /* HTTP (RFC 2817 CONNECT tunnel) proxy. */ static int proxy_http(int fd, char *host, unsigned short port) { char *buf; char *colon; char rbuf[1024]; int nr; int nread = 0; char *space; /* Send the CONNECT request. */ buf = Malloc(64 + strlen(host)); colon = strchr(host, ':'); sprintf(buf, "CONNECT %s%s%s:%u HTTP/1.1\r\n", (colon? "[": ""), host, (colon? "]": ""), port); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } sprintf(buf, "Host: %s%s%s:%u\r\n", (colon? "[": ""), host, (colon? "]": ""), port); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit '%.*s'\n", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } strcpy(buf, "\r\n"); #if defined(X3270_TRACE) /*[*/ trace_dsn("HTTP Proxy: xmit ''\n"); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("HTTP Proxy: send error"); Free(buf); return -1; } Free(buf); /* * Process the reply. * Read a byte at a time until \n or EOF. */ for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("HTTP Proxy: server timeout"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ return -1; } nr = recv(fd, &rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("HTTP Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ return -1; } if (nr == 0) { #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)rbuf, nread); #endif /*]*/ popup_an_error("HTTP Proxy: unexpected EOF"); return -1; } if (rbuf[nread] == '\r') continue; if (rbuf[nread] == '\n') break; if ((size_t)++nread >= sizeof(rbuf)) { nread = sizeof(rbuf) - 1; break; } } rbuf[nread] = '\0'; #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)rbuf, nread); trace_dsn("HTTP Proxy: recv '%s'\n", rbuf); #endif /*]*/ if (strncmp(rbuf, "HTTP/", 5) || (space = strchr(rbuf, ' ')) == CN) { popup_an_error("HTTP Proxy: unrecognized reply"); return -1; } if (*(space + 1) != '2') { popup_an_error("HTTP Proxy: CONNECT failed:\n%s", rbuf); return -1; } return 0; } /* TELNET proxy. */ static int proxy_telnet(int fd, char *host, unsigned short port) { char *buf; buf = Malloc(strlen(host) + 32); (void) sprintf(buf, "connect %s %u\r\n", host, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("TELNET Proxy: xmit '%.*s'", (int)(strlen(buf) - 2), buf); trace_netdata('>', (unsigned char *)buf, strlen(buf)); #endif /*]*/ if (send(fd, buf, strlen(buf), 0) < 0) { popup_a_sockerr("TELNET Proxy: send error"); Free(buf); return -1; } Free(buf); return 0; } /* SOCKS version 4 proxy. */ static int proxy_socks4(int fd, char *host, unsigned short port, int force_a) { struct hostent *hp; struct in_addr ipaddr; int use_4a = 0; char *user; char *buf; char *s; char rbuf[8]; int nr; int nread = 0; unsigned short rport; /* Resolve the hostname to an IPv4 address. */ if (force_a) use_4a = 1; else { hp = gethostbyname(host); if (hp != NULL) { memcpy(&ipaddr, hp->h_addr, hp->h_length); } else { ipaddr.s_addr = inet_addr(host); if (ipaddr.s_addr == (in_addr_t)-1) use_4a = 1; } } /* Resolve the username. */ user = getenv("USER"); if (user == CN) user = "nobody"; /* Send the request to the server. */ if (use_4a) { buf = Malloc(32 + strlen(user) + strlen(host)); s = buf; *s++ = 0x04; *s++ = 0x01; SET16(s, port); SET32(s, 0x00000001); strcpy(s, user); s += strlen(user) + 1; strcpy(s, host); s += strlen(host) + 1; #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS4 Proxy: version 4 connect port %u " "address 0.0.0.1 user '%s' host '%s'\n", port, user, host); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { popup_a_sockerr("SOCKS4 Proxy: send error"); Free(buf); return -1; } Free(buf); } else { unsigned long u; buf = Malloc(32 + strlen(user)); s = buf; *s++ = 0x04; *s++ = 0x01; SET16(s, port); u = ntohl(ipaddr.s_addr); SET32(s, u); strcpy(s, user); s += strlen(user) + 1; #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS4 Proxy: xmit version 4 connect port %u " "address %s user '%s'\n", port, inet_ntoa(ipaddr), user); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { Free(buf); popup_a_sockerr("SOCKS4 Proxy: send error"); return -1; } Free(buf); } /* * Process the reply. * Read 8 bytes of response. */ for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS4 Proxy: server timeout"); return -1; } nr = recv(fd, &rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS4 Proxy: receive error"); return -1; } if (nr == 0) break; if ((size_t)++nread >= sizeof(rbuf)) break; } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)rbuf, nread); if (use_4a) { struct in_addr a; rport = (rbuf[2] << 8) | rbuf[3]; memcpy(&a, &rbuf[4], 4); trace_dsn("SOCKS4 Proxy: recv status 0x%02x port %u " "address %s\n", rbuf[1], rport, inet_ntoa(a)); } else trace_dsn("SOCKS4 Proxy: recv status 0x%02x\n", rbuf[1]); #endif /*]*/ switch (rbuf[1]) { case 0x5a: break; case 0x5b: popup_an_error("SOCKS4 Proxy: request rejected or failed"); return -1; case 0x5c: popup_an_error("SOCKS4 Proxy: client is not reachable"); return -1; case 0x5d: popup_an_error("SOCKS4 Proxy: userid error"); return -1; default: popup_an_error("SOCKS4 Proxy: unknown status 0x%02x", rbuf[1]); return -1; } return 0; } /* SOCKS version 5 (RFC 1928) proxy. */ static int proxy_socks5(int fd, char *host, unsigned short port, int force_d) { union { struct sockaddr sa; struct sockaddr_in sin; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sin6; #endif /*]*/ } ha; socklen_t ha_len = 0; int use_name = 0; char *buf; char *s; unsigned char rbuf[8]; int nr; int nread = 0; int n2read = 0; char nbuf[256]; int done = 0; #if defined(X3270_TRACE) /*[*/ char *atype_name[] = { "", "IPv4", "", "domainname", "IPv6" }; unsigned char *portp; unsigned short rport; #endif /*]*/ if (force_d) use_name = 1; else { char errmsg[1024]; int rv; /* Resolve the hostname. */ rv = resolve_host_and_port(host, CN, 0, &rport, &ha.sa, &ha_len, errmsg, sizeof(errmsg), NULL); if (rv == -2) use_name = 1; else if (rv < 0) { popup_an_error("SOCKS5 proxy: %s/%u: %s", host, port, errmsg); return -1; } } /* Send the authentication request to the server. */ strcpy((char *)rbuf, "\005\001\000"); #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: xmit version 5 nmethods 1 (no auth)\n"); trace_netdata('>', rbuf, 3); #endif /*]*/ if (send(fd, (char *)rbuf, 3, 0) < 0) { popup_a_sockerr("SOCKS5 Proxy: send error"); return -1; } /* * Wait for the server reply. * Read 2 bytes of response. */ nread = 0; for (;;) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS5 Proxy: server timeout"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } nr = recv(fd, (char *)&rbuf[nread], 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS5 Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } if (nr == 0) { popup_a_sockerr("SOCKS5 Proxy: unexpected EOF"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', rbuf, nread); #endif /*]*/ return -1; } if (++nread >= 2) break; } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', rbuf, nread); #endif /*]*/ if (rbuf[0] != 0x05 || (rbuf[1] != 0 && rbuf[1] != 0xff)) { popup_an_error("SOCKS5 Proxy: bad authentication response"); return -1; } #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: recv version %d method %d\n", rbuf[0], rbuf[1]); #endif /*]*/ if (rbuf[1] == 0xff) { popup_an_error("SOCKS5 Proxy: authentication failure"); return -1; } /* Send the request to the server. */ buf = Malloc(32 + strlen(host)); s = buf; *s++ = 0x05; /* protocol version 5 */ *s++ = 0x01; /* CONNECT */ *s++ = 0x00; /* reserved */ if (use_name) { *s++ = 0x03; /* domain name */ *s++ = strlen(host); strcpy(s, host); s += strlen(host); } else if (ha.sa.sa_family == AF_INET) { *s++ = 0x01; /* IPv4 */ memcpy(s, &ha.sin.sin_addr, 4); s += 4; strcpy(nbuf, inet_ntoa(ha.sin.sin_addr)); #if defined(AF_INET6) /*[*/ } else { *s++ = 0x04; /* IPv6 */ memcpy(s, &ha.sin6.sin6_addr, sizeof(struct in6_addr)); s += sizeof(struct in6_addr); (void) inet_ntop(AF_INET6, &ha.sin6.sin6_addr, nbuf, sizeof(nbuf)); #endif /*]*/ } SET16(s, port); #if defined(X3270_TRACE) /*[*/ trace_dsn("SOCKS5 Proxy: xmit version 5 connect %s %s port %u\n", use_name? "domainname": ((ha.sa.sa_family == AF_INET)? "IPv4": "IPv6"), use_name? host: nbuf, port); trace_netdata('>', (unsigned char *)buf, s - buf); #endif /*]*/ if (send(fd, buf, s - buf, 0) < 0) { popup_a_sockerr("SOCKS5 Proxy: send error"); Free(buf); return -1; } Free(buf); /* * Process the reply. * Only the first two bytes of the response are interesting; * skip the rest. */ nread = 0; done = 0; buf = NULL; while (!done) { fd_set rfds; struct timeval tv; unsigned char r; FD_ZERO(&rfds); FD_SET(fd, &rfds); tv.tv_sec = 15; tv.tv_usec = 0; if (select(fd + 1, &rfds, NULL, NULL, &tv) < 0) { popup_an_error("SOCKS5 Proxy: server timeout"); return -1; } nr = recv(fd, (char *)&r, 1, 0); if (nr < 0) { popup_a_sockerr("SOCKS5 Proxy: receive error"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } if (nr == 0) { popup_an_error("SOCKS5 Proxy: unexpected EOF"); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } buf = Realloc(buf, nread + 1); buf[nread] = r; switch (nread++) { case 0: if (r != 0x05) { popup_an_error("SOCKS5 Proxy: incorrect " "reply version 0x%02x", r); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } break; case 1: #if defined(X3270_TRACE) /*[*/ if (r != 0x00) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ switch (r) { case 0x00: break; case 0x01: popup_an_error("SOCKS5 Proxy: server failure"); return -1; case 0x02: popup_an_error("SOCKS5 Proxy: connection not " "allowed"); return -1; case 0x03: popup_an_error("SOCKS5 Proxy: network " "unreachable"); return -1; case 0x04: popup_an_error("SOCKS5 Proxy: host " "unreachable"); return -1; case 0x05: popup_an_error("SOCKS5 Proxy: connection " "refused"); return -1; case 0x06: popup_an_error("SOCKS5 Proxy: ttl expired"); return -1; case 0x07: popup_an_error("SOCKS5 Proxy: command not " "supported"); return -1; case 0x08: popup_an_error("SOCKS5 Proxy: address type " "not supported"); return -1; default: popup_an_error("SOCKS5 Proxy: unknown server " "error 0x%02x", r); return -1; } break; case 2: break; case 3: switch (r) { case 0x01: n2read = 6; break; case 0x03: n2read = -1; break; #if defined(AF_INET6) /*[*/ case 0x04: n2read = sizeof(struct in6_addr) + 2; break; #endif /*]*/ default: popup_an_error("SOCKS5 Proxy: unknown server " "address type 0x%02x", r); #if defined(X3270_TRACE) /*[*/ if (nread) trace_netdata('<', (unsigned char *)buf, nread); #endif /*]*/ return -1; } break; default: if (n2read == -1) n2read = r + 2; else if (!--n2read) done = 1; break; } } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', (unsigned char *)buf, nread); switch (buf[3]) { case 0x01: /* IPv4 */ memcpy(&ha.sin.sin_addr, &buf[4], 4); strcpy(nbuf, inet_ntoa(ha.sin.sin_addr)); portp = (unsigned char *)&buf[4 + 4]; break; case 0x03: /* domainname */ strncpy(nbuf, &buf[5], buf[4]); nbuf[(unsigned char)buf[4]] = '\0'; portp = (unsigned char *)&buf[5 + (unsigned char)buf[4]]; break; #if defined(AF_INET6) /*[*/ case 0x04: /* IPv6 */ memcpy(&ha.sin6.sin6_addr, &buf[4], sizeof(struct in6_addr)); (void) inet_ntop(AF_INET6, &ha.sin6.sin6_addr, nbuf, sizeof(nbuf)); portp = (unsigned char *)&buf[4 + sizeof(struct in6_addr)]; break; #endif /*]*/ default: /* can't happen */ nbuf[0] = '\0'; portp = (unsigned char *)buf; break; } rport = (*portp << 8) + *(portp + 1); trace_dsn("SOCKS5 Proxy: recv version %d status 0x%02x address %s %s " "port %u\n", buf[0], buf[1], atype_name[(unsigned char)buf[3]], nbuf, rport); #endif /*]*/ Free(buf); return 0; } ibm-3270-3.3.10ga4/ws3270/popupsc.h0000644000175000017500000000331511254565673016005 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of popupsc.h */ extern void popup_an_errno(int errn, const char *fmt, ...); extern void popup_an_error(const char *fmt, ...); extern void action_output(const char *fmt, ...); ibm-3270-3.3.10ga4/ws3270/telnetc.h0000644000175000017500000000624411254565704015751 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * telnetc.h * Global declarations for telnet.c. */ /* Output buffer. */ extern unsigned char *obuf, *obptr; /* Spelled-out tty control character. */ struct ctl_char { const char *name; char value[3]; }; extern void net_abort(void); extern Boolean net_add_dummy_tn3270e(void); extern void net_add_eor(unsigned char *buf, int len); extern void net_break(void); extern void net_charmode(void); extern int net_connect(const char *, char *, Boolean, Boolean *, Boolean *); extern void net_disconnect(void); extern void net_exception(void); extern int net_getsockname(void *buf, int *len); extern void net_hexansi_out(unsigned char *buf, int len); extern void net_input(void); extern void net_interrupt(void); extern void net_linemode(void); extern struct ctl_char *net_linemode_chars(void); extern void net_output(void); extern const char *net_query_bind_plu_name(void); extern const char *net_query_connection_state(void); extern const char *net_query_host(void); extern const char *net_query_lu_name(void); extern void net_sendc(char c); extern void net_sends(const char *s); extern void net_send_erase(void); extern void net_send_kill(void); extern void net_send_werase(void); extern Boolean net_snap_options(void); extern void space3270out(int n); extern const char *tn3270e_current_opts(void); extern void trace_netdata(char direction, unsigned const char *buf, int len); extern void popup_a_sockerr(char *fmt, ...) printflike(1, 2); extern char *net_proxy_type(void); extern char *net_proxy_host(void); extern char *net_proxy_port(void); extern Boolean net_bound(void); ibm-3270-3.3.10ga4/ws3270/dialogc.h0000644000175000017500000000307611254565673015722 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * dialogc.h * Empty definitions for dialog.c. */ ibm-3270-3.3.10ga4/ws3270/X3270.xad0000644000175000017500000017653011256027001015352 0ustar bastianbastian! ! Copyright (c) 1995-2009, Paul Mattes. ! All rights reserved. ! ! Redistribution and use in source and binary forms, with or without ! modification, are permitted provided that the following conditions are met: ! * Redistributions of source code must retain the above copyright ! notice, this list of conditions and the following disclaimer. ! * Redistributions in binary form must reproduce the above copyright ! notice, this list of conditions and the following disclaimer in the ! documentation and/or other materials provided with the distribution. ! * Neither the names of Paul Mattes nor the names of his contributors ! may be used to endorse or promote products derived from this software ! without specific prior written permission. ! ! THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED ! WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ! MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO ! EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ! OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ! WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ! ! x3270 app-defaults file. This file is generally compiled into x3270, rather ! than installed. ! ! This file is in three sections: ! ! (1) User-Modifiable Resources ! Resources that are likeliest to be modified by an end user. ! ! (2) Labels and Messages ! Resources that are likely to be modified for translation into another ! language. ! ! (3) Base-Level Resources ! Resources required for the basic operation of x3270, not for the ! faint-hearted to modify. ! !============================================================================= ! Section 1: User-Modifiable Resources ! ! Resources that are likeliest to be modified by an end user. !============================================================================= ! ! Many of the resource definitions are commented out, because they are ! the defaults defined in x3270 itself. They are listed here so you can ! easily uncomment and change them. #ifndef STANDALONE ! ! Fonts ! *.emulatorFont: 3270 ! ! Color schemes for full-color (3279) mode ! Each scheme is a list of 23 items: ! 0 X color to use for IBM "neutral/black" (also used as ANSI color 0) ! 1 X color to use for IBM "blue" (also used for ANSI color 4) ! 2 X color to use for IBM "red" (also used for ANSI color 1) ! 3 X color to use for IBM "pink" (also used for ANSI color 5) ! 4 X color to use for IBM "green" (also used for ANSI color 2) ! 5 X color to use for IBM "turquoise" ! 6 X color to use for IBM "yellow" (also used for ANSI color 3) ! 7 X color to use for IBM "neutral/white" ! 8 X color to use for IBM "black" ! 9 X color to use for IBM "deep blue" ! 10 X color to use for IBM "orange" ! 11 X color to use for IBM "purple" ! 12 X color to use for IBM "pale green" ! 13 X color to use for IBM "pale turquoise" (also used for ANSI color 6) ! 14 X color to use for IBM "grey" ! 15 X color to use for IBM "white" (also used for ANSI color 7) ! 16 X color to use if one of 0..15 cannot be allocated (white or black) ! 17 X color to use as the default screen background ! 18 X color to use as the select background ! 19 IBM color index (0..15) to use for unprotected, unhighlighted fields ! 20 IBM color index (0..15) to use for unprotected, highlighted fields ! 21 IBM color index (0..15) to use for protected, unhighlighted fields ! 22 IBM color index (0..15) to use for protected, highlighted fields ! ! x3270.colorScheme: default x3270.colorScheme.default: \ black deepSkyBlue red pink \ green turquoise yellow white \ black blue3 orange purple \ paleGreen paleTurquoise2 grey white \ white black dimGrey \ 4 2 1 15 x3270.colorScheme.reverse: \ black blue firebrick pink \ green4 cadetBlue goldenrod black \ black blue3 orange purple \ paleGreen darkTurquoise grey black \ black white dimGrey \ 4 2 1 0 x3270.colorScheme.bright: \ black blue red magenta \ green turquoise yellow white \ black blue3 orange purple \ paleGreen cyan grey white \ white black dimGrey \ 4 2 1 15 x3270.colorScheme.cpe: \ black LightBlue1 PaleVioletRed1 \ pink green turquoise yellow white \ black LightBlue3 orange MediumPurple1 \ paleGreen paleTurquoise2 grey80 white \ white black dimGrey \ 4 2 1 15 x3270.colorScheme.greenScreen: \ green green green green \ green green green green \ green green green green \ green green green green \ white black dimGrey \ 4 15 4 15 #ifdef X3270_MENUS ! Color schemes listed on the Options color menu x3270.schemeList: Default 3279: default\n\ Bright: bright\n\ Reverse: reverse\n\ Green Screen: greenScreen ! Character sets listed on the Options menu x3270.charsetList: U.S. English (CP 037): us-intl\n\ Bracket (CP 037, modified): bracket\n\ APL (CP 037): apl\n\ Euro>U.S. English (CP 1140): us-euro\n\ Euro>Belgian (CP 1148): belgian-euro\n\ Euro>Finnish (CP 1143): finnish-euro\n\ Euro>French (CP 1147): french-euro\n\ Euro>German (CP 1141): german-euro\n\ Euro>Icelandic (CP 1149): icelandic-euro\n\ Euro>Italian (CP 1144): italian-euro\n\ Euro>Norwegian (CP 1142): norwegian-euro\n\ Euro>Spanish (CP 1145): spanish-euro\n\ Euro>United Kingdom (CP 1146): uk-euro\n\ Belgian (CP 500): belgian\n\ Brazilian (CP 275): brazilian\n\ #ifdef X3270_DBCS Chinese Simplified (CP 935): simplified-chinese\n\ Chinese GB 18030 (CP 1388): chinese-gb18030\n\ Chinese Traditional (CP 937): traditional-chinese\n\ #endif Finnish (CP 278): finnish\n\ French (CP 297): french\n\ German (CP 273): german\n\ Greek (CP 875): greek\n\ Hebrew (CP 424): hebrew\n\ Icelandic (CP 871): icelandic\n\ Italian (CP 280): italian\n\ #ifdef X3270_DBCS Japanese w/Kana (CP 930): japanese-kana\n\ Japanese w/Latin (CP 939): japanese-latin\n\ #endif Norwegian (CP 277): norwegian\n\ Open Systems (CP 1047): cp1047\n\ Polish (CP 870): cp870\n\ Russian (CP 880): russian\n\ Slovenian (CP 870): cp870\n\ Spanish (CP 284): spanish\n\ Thai (CP 1160): thai\n\ Turkish (CP 1026): turkish\n\ United Kingdom (CP 285): uk\n #endif ! ! Pseudo-colors for 3278 mode ! x3270.colorBackground: black ! x3270.selectBackground: dimGrey ! x3270.normalColor: green ! Note: the following values are the new defaults, which cause 3278's ! to display everything in green. ! x3270.inputColor: green ! x3270.boldColor: green ! To resurrect x3270's Pseudo-Color mode, which was how 3278's were ! displayed up through x3270 3.3.5, set the following resource values: ! x3270.inputColor: orange ! x3270.boldColor: cyan ! ! Cursors ! x3270.normalCursor: top_left_arrow ! x3270.waitCursor: watch ! x3270.lockedCursor: X_cursor ! ! Line-mode Telnet parameters ! x3270.icrnl: true ! x3270.inlcr: false ! x3270.erase: ^? ! x3270.kill: ^U ! x3270.werase: ^W ! x3270.rprnt: ^R ! x3270.lnext: ^V ! x3270.intr: ^C ! x3270.quit: ^\\ ! x3270.eof: ^D ! ! Toggles, using the same names as the "-set" and "-clear" options ! x3270.altCursor: false ! x3270.blankFill: false ! x3270.crosshair: false ! x3270.cursorBlink: false ! x3270.cursorPos: true ! x3270.dsTrace: false ! x3270.eventTrace: false ! x3270.lineWrap: true ! x3270.marginedPaste: false ! x3270.monoCase: false ! x3270.rectangleSelect: false ! x3270.screenTrace: false ! x3270.scrollBar: false ! x3270.showTiming: false ! ! Miscellaneous configuration parameters ! x3270.activeIcon: false ! x3270.allowResize: true ! x3270.bellVolume: 0 ! x3270.charset: bracket ! x3270.composeMap: latin1 ! x3270.connectFileName: ~/.x3270connect ! x3270.doConfirms: true ! x3270.debugTracing: true ! x3270.disconnectClear: false ! x3270.hostsFile: /usr/lib/X11/x3270/ibm_hosts ! x3270.highlightSelect: true ! x3270.idleCommand: ! x3270.idleTimeout: ~7m ! x3270.inputMethod: ! x3270.invertKeypadShift: false ! x3270.keymap: ! x3270.keypad: right ! x3270.keypadOn: false ! x3270.labelIcon: false ! x3270.m3279: false ! x3270.macros: ! x3270.menuBar: true ! x3270.modifiedSel: false ! x3270.modifiedSelColor: 10 ! x3270.model: 4 ! x3270.mono: false ! x3270.numericLock: false ! x3270.once: false ! x3270.pluginCommand: x3270hist.pl ! x3270.port: telnet ! x3270.preeditType: OverTheSpot+1 ! x3270.saveLines: 64 ! x3270.scripted: false ! x3270.suppressHost: false ! x3270.suppressFontMenu: false ! x3270.termName: ! x3270.traceDir: /tmp ! x3270.cursorColor: red ! (note: cursorColor is not used unless useCursorColor is true, below) ! x3270.useCursorColor: false ! x3270.visualBell: false ! x3270.visualSelect: false ! x3270.visualSelectColor: 6 ! ! Fonts listed on the Options menu and for screen resizing x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-1: \ 3270 Font (14 point): #resize 3270\n\ 8-point Font: #resize 3270gt8\n\ 12-point Font: #resize 3270-12\n\ 16-point Font: #resize 3270gt16\n\ 20-point Font: #resize 3270-20\n\ 24-point Font: #resize 3270gt24\n\ 32-point Font: #resize 3270gt32 x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-15: \ 3270 Font (14 point): #resize 3270\n\ 8-point Font: #resize 3270gt8\n\ 12-point Font: #resize 3270-12\n\ 16-point Font: #resize 3270gt16\n\ 20-point Font: #resize 3270-20\n\ 24-point Font: #resize 3270gt24\n\ 32-point Font: #resize 3270gt32 x3270.emulatorFontList.3270cg-1a,iso10646-1: 3270 x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-1+gb2312.1980-0,iso10646-1: \ 14-point 3270: 3270+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\ 20-point 3270: 3270-20+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\ 8x16: 8x16+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\ 12x24: 12x24+-isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0 x3270.emulatorFontList.iso10646-1,jisx0201.1976-0+jisx0208.1983-0,iso10646-1: \ 14-point: -misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0+-misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-0\n\ 16-point: -sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0+-jis-fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1983-0\n\ 18-point: -sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0+-misc-fixed-medium-r-normal-ja-18-120-100-100-c-180-iso10646-1\n\ 24-point: -sony-fixed-medium-r-normal--24-230-75-75-c-120-jisx0201.1976-0+-jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1983-0 x3270.emulatorFontList.3270cg-1a,3270cg-1,iso10646-1,iso8859-1+big5-0,iso10646-1: fixed+-wenquanyi-wenquanyi bitmap song-bold-r-normal--13-130-75-75-p-80-iso10646-1 #endif ! ! Print commands x3270.printTextCommand: lpr #ifndef STANDALONE x3270.printWindowCommand: xwd -id %d | xpr | lpr ! ! System V versions of print commands ! x3270.printTextCommand: lp ! x3270.printWindowCommand: xwd -id %d | xpr | lp ! ! Trace window command x3270.traceCommand: tail -f ! ! File transfer command ! x3270.ftCommand: ind$file ! ! Printer session options #endif #ifdef _WIN32 x3270.printer.assocCommandLine: wpr3287.exe -assoc %L% %R% %P% %I% %H% x3270.printer.luCommandLine: wpr3287.exe %R% %P% %I% %L%@%H% ! x3270.printer.name: #else x3270.printer.command: lpr x3270.printer.assocCommandLine: pr3287 -assoc %L% -command "%C%" %R% %P% "%H%" x3270.printer.luCommandLine: pr3287 -command "%C%" %R% %P% "%L%@%H%" #endif #ifndef STANDALONE ! ! Translation table for the '@server' pseudo-keymap, which is the keymap ! you get by default (in addition to the 'base' keymap, below). Maps server ! vendor strings to keymap names. x3270.serverKeymapList: \ Sun Microsystems, Inc.: sun_k5\n\ Hewlett-Packard Company: hp-k1\n ! ! Keymaps (keyboard and mouse mappings) ! ! Base keymap: What you get by default, in both 3270 and NVT modes. Any other ! user-specified keymap is logically added to this keymap. x3270.keymap.base: \ :Multi_key: Compose()\n\ Ctrl: HandleMenu(fileMenu)\n\ Ctrl: HandleMenu(optionsMenu)\n\ Ctrl: HandleMenu(hostMenu,macrosMenu)\n\ : SelectDown()\n\ ~Shift: SelectMotion()\n\ : ignore()\n\ : ignore()\n\ : insert-selection(PRIMARY)\n\ : start-extend()\n\ : select-extend()\n\ ~Shift: SelectUp(PRIMARY)\n\ ShiftInsert: insert-selection(PRIMARY)\n\ ShiftUp: KybdSelect(Up,PRIMARY)\n\ ShiftDown: KybdSelect(Down,PRIMARY)\n\ ShiftLeft: KybdSelect(Left,PRIMARY)\n\ ShiftRight: KybdSelect(Right,PRIMARY)\n\ ShiftF1: PF(13)\n\ ShiftF2: PF(14)\n\ ShiftF3: PF(15)\n\ ShiftF4: PF(16)\n\ ShiftF5: PF(17)\n\ ShiftF6: PF(18)\n\ ShiftF7: PF(19)\n\ ShiftF8: PF(20)\n\ ShiftF9: PF(21)\n\ ShiftF10: PF(22)\n\ ShiftF11: PF(23)\n\ ShiftF12: PF(24)\n\ MetaF1: PF(13)\n\ AltF1: PF(13)\n\ MetaF2: PF(14)\n\ AltF2: PF(14)\n\ MetaF3: PF(15)\n\ AltF3: PF(15)\n\ MetaF4: PF(16)\n\ AltF4: PF(16)\n\ MetaF5: PF(17)\n\ AltF5: PF(17)\n\ MetaF6: PF(18)\n\ AltF6: PF(18)\n\ MetaF7: PF(19)\n\ AltF7: PF(19)\n\ MetaF8: PF(20)\n\ AltF8: PF(20)\n\ MetaF9: PF(21)\n\ AltF9: PF(21)\n\ MetaF10: PF(22)\n\ AltF10: PF(22)\n\ MetaF11: PF(23)\n\ AltF11: PF(23)\n\ MetaF12: PF(24)\n\ AltF12: PF(24)\n\ :F1: PF(1)\n\ :F2: PF(2)\n\ :F3: PF(3)\n\ :F4: PF(4)\n\ :F5: PF(5)\n\ :F6: PF(6)\n\ :F7: PF(7)\n\ :F8: PF(8)\n\ :F9: PF(9)\n\ :F10: PF(10)\n\ :F11: PF(11)\n\ :F12: PF(12)\n\ :Print: PrintText()\n\ Altq: Quit()\n\ :dead_acute: Compose() Key(apostrophe)\n\ :dead_grave: Compose() Key(grave)\n\ :dead_circumflex: Compose() Key(asciicircum)\n\ :dead_tilde: Compose() Key(asciitilde)\n\ :dead_diaeresis: Compose() Key(quotedbl)\n ! ! Base keymap for 3270 mode. These mappings are added to the base keymap, ! but only when in 3270 mode. ! These were originally part of the base keymap, but were moved here, because ! they were no-ops in NVT mode, or interfered with NVT-mode data entry. ! ! Note that as yet, there is no x3270.keymap.base.nvt, which would define the ! base keymap extensions for NVT mode. ! x3270.keymap.base.3270: #override \ :Ctrl Shift: MouseSelect()\n\ Shift: MoveCursor()\n\ ShiftReturn: Newline()\n\ :Return: Enter()\n\ :Linefeed: Newline()\n\ :BackSpace: Erase()\n\ ShiftTab: BackTab()\n\ :MetaLeft: PreviousWord()\n\ :AltLeft: PreviousWord()\n\ :MetaRight: NextWord()\n\ :AltRight: NextWord()\n\ :Meta1: PA(1)\n\ :Alt1: PA(1)\n\ :Meta2: PA(2)\n\ :Alt2: PA(2)\n\ :Meta3: PA(3)\n\ :Alt3: PA(3)\n\ Metaa: Attn()\n\ Alta: Attn()\n\ Metab: PrintWindow()\n\ Altb: PrintWindow()\n\ Metac: Clear()\n\ Altc: Clear()\n\ Metad: Delete()\n\ Altd: Delete()\n\ Metae: EraseEOF()\n\ Alte: EraseEOF()\n\ Metaf: Flip()\n\ Altf: Flip()\n\ Metah: Home()\n\ Alth: Home()\n\ Metai: Insert()\n\ Alti: Insert()\n\ Metal: Redraw()\n\ Altl: Redraw()\n\ Metap: PrintText()\n\ Altp: PrintText()\n\ Metar: Reset()\n\ Altr: Reset()\n\ Metau: Unselect()\n\ Altu: Unselect()\n\ Ctrla: SelectAll(PRIMARY)\n\ Ctrlc: set-select(CLIPBOARD)\n\ Ctrlu: DeleteField()\n\ Ctrlw: DeleteWord()\n\ Ctrlv: insert-selection(CLIPBOARD)\n\ Altv: ToggleReverse()\n\ Metav: ToggleReverse() ! Keymap that exercises the optional history plugin. x3270.keymap.hist: ShiftPrior: Plugin(command,prev)\n\ ShiftNext: Plugin(command,next) ! Keymap that restores the old (pre 3.3) mouse-click behavior. x3270.keymap.oldclick: #override\n\ Ctrl: HandleMenu(fileMenu)\n\ Ctrl: HandleMenu(optionsMenu)\n\ Ctrl: HandleMenu(hostMenu,macrosMenu)\n\ : select-start()\n\ ~Shift: select-extend()\n\ : ignore()\n\ : ignore()\n\ : insert-selection(PRIMARY)\n\ : start-extend()\n\ : select-extend()\n\ ~Shift: select-end(PRIMARY) x3270.keymap.oldclick.3270: #override\n\ :Ctrl Shift: MouseSelect()\n\ Shift: MoveCursor() ! ! Start of keyboard-specific mappings. ! ! Sun Type 5 keyboard map. Not compatible with earlier Type 3 and Type 4 ! keymaps, but does a better job of mapping intuitive functions to the ! existing key labels, and has fewer surprises. x3270.keymap.sun_k5: \ Shift0x1005ff10: PF(23)\n\ Shift0x1005ff11: PF(24)\n\ :0x1005ff10: PF(11)\n\ :0x1005ff11: PF(12)\n\ ~@Num_LockF27: Home()\n\ ~@Num_LockF33: FieldEnd()\n\ :F18: insert-selection(PRIMARY)\n\ ShiftF22: SysReq()\n\ :F22: PrintText()\n\ KP_Enter: Newline()\n ! Sun Type 4 keyboard map, backwards-compatible with earlier versions of x3270. x3270.keymap.sun_k4: \ Shift0x1005ff10: PF(23)\n\ Shift0x1005ff11: PF(24)\n\ :0x1005ff10: PF(11)\n\ :0x1005ff11: PF(12)\n\ :KP_1: Key(1)\n\ :KP_2: Key(2)\n\ :KP_3: Key(3)\n\ :KP_4: Key(4)\n\ :KP_5: Key(5)\n\ :KP_6: Key(6)\n\ :KP_7: Key(7)\n\ :KP_8: Key(8)\n\ :KP_9: Key(9)\n\ :KP_0: Key(0)\n\ :KP_Decimal: Key(.)\n\ :F18: insert-selection(PRIMARY)\n\ :F19: SysReq()\n\ :F20: FieldMark()\n\ :F21: PA(1)\n\ :F22: PA(2)\n\ :F23: Dup()\n\ :F24: Reset()\n\ :F25: EraseEOF()\n\ :F26: EraseInput()\n\ :F27: Clear()\n\ :F29: Redraw()\n\ :F31: Home()\n\ :KP_Enter: Newline()\n\ :F35: Delete()\n ! Sun Type 3 keyboard. x3270.keymap.sun_k3: \ ShiftF21: PF(22)\n\ ShiftF22: PF(23)\n\ ShiftF23: PF(24)\n\ :MetaF21: PA(1)\n\ :MetaF22: PA(2)\n\ :MetaF23: Dup()\n\ :F19: SysReq()\n\ :0x0: FieldMark()\n\ :F21: PF(10)\n\ :F22: PF(11)\n\ :F23: PF(12)\n\ :F24: Reset()\n\ :F25: EraseEOF()\n\ :F26: EraseInput()\n\ :F27: Clear()\n\ :F31: Home()\n\ :F29: Redraw()\n\ :KP_Enter: Newline()\n\ :F35: Delete()\n x3270.keymap.ncd: \ :F13: Dup()\n\ :Linefeed: Dup()\n\ :F14: FieldMark()\n\ :Break: FieldMark()\n\ :Home: Home()\n\ :F17: Home()\n\ :End: EraseEOF()\n\ :F15: Reset()\n\ :Prior: Reset()\n\ :F16: Newline()\n\ :Next: Newline()\n\ :KP_Add: EraseInput()\n\ :Num_Lock: PF(13)\n\ :KP_Space: PF(13)\n\ :KP_Divide: PF(14)\n\ :KP_Multiply: PF(15)\n\ :KP_7: PF(16)\n\ :KP_8: PF(17)\n\ :KP_9: PF(18)\n\ :KP_4: PF(19)\n\ :KP_5: PF(20)\n\ :KP_6: PF(21)\n\ :KP_1: PF(22)\n\ :KP_2: PF(23)\n\ :KP_3: PF(24)\n\ :KP_Subtract: SysReq()\n\ :KP_0: PA(2)\n\ :KP_Decimal: PA(1)\n\ :KP_Enter: Clear()\n x3270.keymap.hp-k1: \ :KP_Tab: BackTab()\n\ :KP_Enter: Home()\n\ :KP_Separator: Delete()\n\ ShiftDelete: Delete()\n\ :Menu: EraseEOF()\n\ :KP_Multiply: PF(13)\n\ :KP_Divide: PF(14)\n\ :KP_Add: PF(15)\n\ :KP_7: PF(16)\n\ :KP_8: PF(17)\n\ :KP_9: PF(18)\n\ :KP_4: PF(19)\n\ :KP_5: PF(20)\n\ :KP_6: PF(21)\n\ :KP_1: PF(22)\n\ :KP_2: PF(23)\n\ :KP_3: PF(24)\n\ :KP_0: PA(2)\n\ :KP_Decimal: PA(1)\n ! Keymap for HP-PC101 workstation keyboard, Chris P-E x3270.keymap.hp-pc: \ :KP_Subtract: Compose()\n\ :KP_Enter: Enter()\n\ :Return: Newline()\n\ !F1: PF(1)\n\ !F2: PF(2)\n\ !F3: PF(3)\n\ !F4: PF(4)\n\ !F5: PF(5)\n\ !F6: PF(6)\n\ !F7: PF(7)\n\ !F8: PF(8)\n\ !F9: PF(9)\n\ !F10: PF(10)\n\ !F11: PF(11)\n\ !F12: PF(12)\n\ !ShifthpSystem: PF(13)\n\ !ShiftKP_Divide: PF(14)\n\ !ShiftKP_Multiply: PF(15)\n\ !ShiftKP_7: PF(16)\n\ !ShiftKP_8: PF(17)\n\ !ShiftKP_9: PF(18)\n\ !ShiftKP_4: PF(19)\n\ !ShiftKP_5: PF(20)\n\ !ShiftKP_6: PF(21)\n\ !ShiftKP_1: PF(22)\n\ !ShiftKP_2: PF(23)\n\ !ShiftKP_3: PF(24)\n\ !hpSystem: PF(1)\n\ !KP_Divide: PF(2)\n\ !KP_Multiply: PF(3)\n\ !KP_7: PF(4)\n\ !KP_8: PF(5)\n\ !KP_9: PF(6)\n\ !KP_4: PF(7)\n\ !KP_5: PF(8)\n\ !KP_6: PF(9)\n\ !KP_1: PF(10)\n\ !KP_2: PF(11)\n\ !KP_3: PF(12)\n\ !Break: Reset()\n\ !ShiftBreak: Attn()\n\ !MetaBreak: SysReq()\n\ !Prior: Dup()\n\ !Next: FieldMark()\n\ !Select: EraseEOF()\n\ !MetahpInsertChar: PA(1)\n\ !MetaHome: PA(2)\n\ !MetaPrior: PA(3)\n\ !hpInsertChar: Insert()\n\ !hpDeleteChar: Delete()\n\ !ShiftMenu: PrintWindow()\n\ !Menu: PrintText()\n ! Keymap for IBM X Terminal, Allan L. Bazinet x3270.keymap.ibm-xterm: \ :Execute: Enter()\n\ !Pause: Clear()\n\ !BackSpace: BackSpace()\Delete()\n\ !End: FieldEnd()\n\ !Altc: Clear()\n\ !AltPrint: SysReq()\n\ !CtrlHome: EraseInput()\n\ !CtrlEnd: EraseEOF()\n\ !ShiftTab: BackTab()\n\ :KP_Subtract: PA(1)\n\ :KP_Add: PA(2)\n\ :KP_Enter: Enter()\n\ :Prior: PA(1)\n\ :Next: PA(2)\n\ :Escape: Reset()\n\ :Control_L: Reset()\n\ :Insert: Insert()\n\ !ShiftRight: Right2()\n\ !ShiftLeft: Left2()\n ! Keymap for common 3270 functions on a PC keyboard, from Richard Lennox. x3270.keymap.rlx: #override \ Prior: PF(7)\n\ Next: PF(8)\n\ Control_R: Enter()\n\ Return: Newline()\n\ Pause: Clear()\n\ ShiftEscape: Attn()\n\ ShiftLeft: PreviousWord()\n\ ShiftRight: NextWord()\n\ CtrlLeft: PreviousWord()\n\ CtrlRight: NextWord()\n\ ShiftEnd: EraseEOF()\n\ End: FieldEnd() ! Keymap modifier for OpenWindows (makes button 2 the extend key; defines the ! Paste and Cut keys; uses CLIPBOARD). x3270.keymap.ow: #override \ ~Shift: select-start()\n\ ~Shift: select-extend()\n\ : start-extend()\n\ : select-extend()\n\ : ignore()\n\ : ignore()\n\ : insert-selection(CLIPBOARD,PRIMARY)\n\ : select-end(PRIMARY)\n\ :F16: set-select(CLIPBOARD)\n\ ShiftF18: insert-selection(PRIMARY)\n\ :F18: insert-selection(CLIPBOARD,PRIMARY)\n\ :F20: set-select(CLIPBOARD) Cut()\n ! APL keymap modifier. x3270.keymap.apl: #override \ !:Altbracketleft: Key(apl_leftarrow)\n\ !:Altbracketright: Key(apl_rightarrow)\n\ :bracketleft: Key(apl_bracketleft)\n\ :bracketright: Key(apl_bracketright)\n\ !:Alt1: Key(apl_diaeresis)\n\ !:Alt2: Key(apl_overbar)\n\ !:Alt3: Key(less)\n\ !:Alt4: Key(apl_notgreater)\n\ !:Alt5: Key(equal)\n\ !:Alt6: Key(apl_notless)\n\ !:Alt7: Key(greater)\n\ !:Alt8: Key(apl_notequal)\n\ !:Alt9: Key(apl_downcaret)\n\ !:Alt0: Key(apl_upcaret)\n\ !:Altminus: Key(apl_overbar)\n\ !:Altunderscore: Key(underscore)\n\ !:Alt=: Key(apl_multiply)\n\ !:Alt+: Key(apl_divide)\n\ !:Altasciitilde: Key(apl_tilde)\n\ !:Altbackslash: Key(apl_slope)\n\ !:Altbar: Key(apl_stile)\n\ :Alta: Key(apl_alpha)\n\ :Altb: Key(apl_downtack)\n\ :Altc: Key(apl_upshoe)\n\ :Altd: Key(apl_downstile)\n\ :Alte: Key(apl_epsilon)\n\ :Altf: Key(underscore)\n\ :Altg: Key(apl_del)\n\ :Alth: Key(apl_delta)\n\ :Alti: Key(apl_iota)\n\ :Altj: Key(apl_jot)\n\ :Altk: Key(apostrophe)\n\ :Altl: Key(apl_quad)\n\ :Altm: Key(apl_stile)\n\ :Altn: Key(apl_uptack)\n\ :Alto: Key(apl_circle)\n\ :Altp: Key(asterisk)\n\ :Altq: Key(question)\n\ :Altr: Key(apl_rho)\n\ :Alts: Key(apl_upstile)\n\ :Altt: Key(apl_tilde)\n\ :Altu: Key(apl_downarrow)\n\ :Altv: Key(apl_downshoe)\n\ :Altw: Key(apl_omega)\n\ :Altx: Key(apl_rightshoe)\n\ :Alty: Key(apl_uparrow)\n\ :Altz: Key(apl_leftshoe)\n\ :AltA: Key(apl_Aunderbar)\n\ :AltB: Key(apl_Bunderbar)\n\ :AltC: Key(apl_Cunderbar)\n\ :AltD: Key(apl_Dunderbar)\n\ :AltE: Key(apl_Eunderbar)\n\ :AltF: Key(apl_Funderbar)\n\ :AltG: Key(apl_Gunderbar)\n\ :AltH: Key(apl_Hunderbar)\n\ :AltI: Key(apl_Iunderbar)\n\ :AltJ: Key(apl_Junderbar)\n\ :AltK: Key(apl_Kunderbar)\n\ :AltL: Key(apl_Lunderbar)\n\ :AltM: Key(apl_Munderbar)\n\ :AltN: Key(apl_Nunderbar)\n\ :AltO: Key(apl_Ounderbar)\n\ :AltP: Key(apl_Punderbar)\n\ :AltQ: Key(apl_Qunderbar)\n\ :AltR: Key(apl_Runderbar)\n\ :AltS: Key(apl_Sunderbar)\n\ :AltT: Key(apl_Tunderbar)\n\ :AltU: Key(apl_Uunderbar)\n\ :AltV: Key(apl_Vunderbar)\n\ :AltW: Key(apl_Wunderbar)\n\ :AltX: Key(apl_Xunderbar)\n\ :AltY: Key(apl_Yunderbar)\n\ :AltZ: Key(apl_Zunderbar)\n ! ! Keymap for the "not" key, assumed to be above the "6" key on U.S. ! keyboards. This used to be part of the 3270 base keymap, but does not ! work properly on non-U.S. keyboards. x3270.keymap.not.3270: \ :asciicircum: Key(notsign) ! Helpful modifier to disply the translation table. x3270.keymap.t: \ Metat: XtDisplayTranslations()\n\ Altt: XtDisplayTranslations()\n ! International keymap modifiers. x3270.keymap.finnish7: \ :bracketleft: Key("adiaeresis")\n\ :bracketright: Key("aring")\n\ :backslash: Key("odiaeresis")\n\ :braceleft: Key("Adiaeresis")\n\ :braceright: Key("Aring")\n\ :bar: Key("Odiaeresis")\n x3270.keymap.norwegian7: \ :bracketleft: Key("ae")\n\ :backslash: Key("oslash")\n\ :bracketright: Key("aring")\n\ :braceleft: Key("AE")\n\ :bar: Key("Ooblique")\n\ :braceright: Key("Aring")\n\ :!Metau: Key("udiaeresis")\n\ :dollar: Key("currency")\n\ :at: Key("backslash")\n ! "Old" Norwegian keymap, compatible with older versions of x3270. x3270.keymap.oldnorwegian7: \ :bracketleft: Key("AE")\n\ :bracketright: Key("Aring")\n\ :backslash: Key("Ooblique")\n\ :braceleft: Key("ae")\n\ :braceright: Key("aring")\n\ :bar: Key("oslash")\n ! German keymap courtesy of Karlheinz Kandler x3270.keymap.german7: \ :bracketleft: Key("adiaeresis")\n\ :bracketright: Key("udiaeresis")\n\ :backslash: Key("odiaeresis")\n\ :braceleft: Key("Adiaeresis")\n\ :braceright: Key("Udiaeresis")\n\ :bar: Key("Odiaeresis")\n\ :asciicircum: Key("^")\n\ :asciitilde: Key("ssharp")\n\ :at: Key("section")\n ! Keymap modifier for RS/6000s with French AZERTY keyboards, which allows ! the diaeresis and circumflex keys to work intuitively (press diaereses, ! press "a", get "adiaeresis, etc.) x3270.keymap.fr6k: \ Shiftdead_diaeresis: Compose() Key(quotedbl)\n\ :dead_circumflex: Compose() Key(asciicircum)\n ! Icelandic keymap, courtesy of Rikhardur Egilsson x3270.keymap.icelandic: \ :dead_acute: Compose() Key(apostrophe)\n ! !============================================================================= ! Section 2: Labels and Messages ! ! These are resources that are likely to be modified for translation ! into another language. !============================================================================= ! x3270.errorPopup.title: x3270 Error x3270.errorPopup*cancelButton.label: Exit x3270.printerErrorPopup.title: x3270 Printer Error x3270.childErrorPopup.title: x3270 Child Process Error #ifdef X3270_MENUS x3270.infoPopup.title: x3270 Information x3270.printerInfoPopup.title: x3270 Printer Information x3270.childInfoPopup.title: x3270 Child Process Information x3270.connectPopup.title: x3270 Connect x3270.connectPopup.dialog.label: Enter Hostname x3270.fontPopup.title: x3270 Font x3270.fontPopup.dialog.label: Enter Font Name x3270.keymapPopup.title: x3270 Keymap x3270.keymapPopup.dialog.label: Enter Keymap Name x3270.oversizePopup.title: x3270 Oversize x3270.oversizePopup.dialog.label: Enter Dimensions (cols x rows) x3270.oversizePopup*confirmButton.label: Resize #endif #ifdef X3270_KEYPAD x3270.keypadPopup.title: x3270 Keypad #endif #ifdef X3270_MENUS x3270.printTextPopup.title: x3270 Screen Print x3270.printTextPopup.dialog.label: Enter Print Command x3270.printTextPopup*confirmButton.label: Print x3270.saveTextPopup.title: x3270 Screen Save x3270.saveTextPopup.dialog.label: Enter File Name x3270.saveTextPopup*confirmButton.label: Save as Text x3270.saveTextPopup*confirm2Button.label: Save as HTML x3270.printWindowPopup.title: x3270 Window Print x3270.printWindowPopup.dialog.label: Enter Print Command x3270.printWindowPopup*confirmButton.label: Print #endif #ifdef X3270_TRACE x3270.tracePopup.title: x3270 Tracing x3270.tracePopup.dialog.label: Enter Trace File Name x3270.tracePopup*confirmButton.label: Trace x3270.tracePopup*confirm2Button.label: No File x3270.screentracePopup.title: x3270 Screen Image Tracing x3270.screentracePopup.dialog.label: Enter File Name x3270.screentracePopup*confirmButton.label: Continuously x3270.screentracePopup*confirm2Button.label: Once #endif #ifdef X3270_MENUS x3270.executeActionPopup.title: x3270 Execute Action x3270.executeActionPopup.dialog.label: Enter Action and Parameters x3270.executeActionPopup*confirmButton.label: Execute x3270.saveOptionsPopup.title: x3270 Save Changed Options x3270.saveOptionsPopup.dialog.label: Enter Profile/Session File Name x3270.saveOptionsPopup*confirmButton.label: Save x3270.aboutCopyrightPopup.title: x3270 Copyright x3270.aboutConfigPopup.title: x3270 Configuration x3270.aboutStatusPopup.title: x3270 Connection Status x3270.connectPopup*confirmButton.label: Connect x3270.fontPopup*confirmButton.label: Select Font x3270.keymapPopup*confirmButton.label: Select Keymap #endif #ifdef X3270_FT x3270.ftPopup.title: x3270 File Transfer x3270.ftProgressPopup.title: x3270 File Transfer x3270.ftOverwritePopup.title: x3270 File Transfer #endif #ifdef X3270_SCRIPT x3270.idlePopup.title: x3270 Idle Command #endif x3270.kmPopup.title: x3270 Keymap x3270*confirmButton.label: OK x3270.printerErrorPopup*cancelButton.label: Abort Printer x3270.printerInfoPopup*cancelButton.label: Abort Printer x3270.childErrorPopup*cancelButton.label: Discard Output x3270.childInfoPopup*cancelButton.label: Discard Output x3270*cancelButton.label: Cancel #ifdef X3270_MENUS x3270*aboutOption.label: About x3270... x3270*aboutCopyright.label: Copyright x3270*aboutConfig.label: Configuration x3270*aboutStatus.label: Connection Status #ifdef X3270_FT x3270*ftOption.label: File Transfer... #endif #ifdef X3270_PRINTER x3270*printerOption.label: Printer Session x3270*assocButton.label: Start, associate with current LU x3270*luButton.label: Start, specific LU... x3270*printerOffButton.label: Stop Printer #endif x3270*abortScriptOption.label: Abort Scripts/Macros/Strings x3270*disconnectOption.label: Disconnect x3270*exitOption.label: Exit x3270 x3270*exitReallyOption.label: Disconnect and Exit x3270*printTextOption.label: Print Screen Text x3270*saveTextOption.label: Save Screen Text in File x3270*printWindowOption.label: Print Window Bitmap x3270*executeActionOption.label: Execute an Action x3270*fileMenuButton.label: File x3270*fileMenu.label: File #endif #ifdef X3270_FT x3270.ftPopup*justify: left x3270.ftPopup*send.label: Send to host x3270.ftPopup*receive.label: Receive from host x3270.ftPopup*ascii.label: Transfer ASCII file x3270.ftPopup*cr.label: Add/remove CR at end of line x3270.ftPopup*binary.label: Transfer binary file x3270.ftPopup*local.label: Local File Name x3270.ftPopup*host.label: Host File Name x3270.ftPopup*append.label: Append to file x3270.ftPopup*remap.label: Remap ASCII Characters x3270.ftPopup*vm.label: Host is VM/CMS x3270.ftPopup*tso.label: Host is TSO x3270.ftPopup*confirmButton.label: Transfer File x3270.ftPopup*file.label: Record Format x3270.ftPopup*recfmDefault.label: Default x3270.ftPopup*fixed.label: Fixed x3270.ftPopup*variable.label: Variable x3270.ftPopup*undefined.label: Undefined x3270.ftPopup*units.label: Space Allocation Units x3270.ftPopup*spaceDefault.label: Default x3270.ftPopup*tracks.label: Tracks x3270.ftPopup*cylinders.label: Cylinders x3270.ftPopup*avblock.label: Avblock x3270.ftPopup*lrecl.label: LRECL x3270.ftPopup*blksize.label: BLKSIZE x3270.ftPopup*primspace.label: Primary Space x3270.ftPopup*secspace.label: Secondary Space x3270.ftPopup*buffersize.label: DFT Buffer Size x3270.ftProgressPopup*fromLabel.label: Source: x3270.ftProgressPopup*fromLabel.justify: right x3270.ftProgressPopup*toLabel.label: Destination: x3270.ftProgressPopup*toLabel.justify: right x3270.ftProgressPopup*filename.justify: left x3270.ftOverwritePopup*overwriteName.label: Overwrite existing file %s? x3270.ftProgressPopup*waiting.label: Waiting for host acknowledgment... x3270.ftProgressPopup*status.label: %lu bytes transferred x3270.ftProgressPopup*aborting.label: Aborting transfer... #endif #ifdef X3270_SCRIPT x3270.idlePopup*justify: left x3270.idlePopup*command.label: Command(s) x3270.idlePopup*timeout.label: Timeout Value x3270.idlePopup*enable.label: Enable for this session x3270.idlePopup*enablePerm.label: Enable whenever connected x3270.idlePopup*disable.label: Disable x3270.idlePopup*hours.label: Hours x3270.idlePopup*minutes.label: Minutes x3270.idlePopup*seconds.label: Seconds x3270.idlePopup*fuzz.label: Vary time 0..10% #endif #ifdef X3270_PRINTER x3270.printerLuPopup.title: x3270 Printer Session x3270.printerLuPopup.dialog.label: Enter LU Name x3270.printerLuPopup*confirmButton.label: Start Session #endif #ifdef X3270_MENUS x3270*optionsMenuButton.label: Options x3270*optionsMenu.label: Options x3270*connectMenuButton.label: Connect x3270*macrosMenuButton.label: Macros x3270*macrosMenu.label: Macros x3270*hostMenu.label: Connect x3270*helpButton.label: Help x3270*otherHostOption.label: Other... x3270*togglesOption.label: Toggles x3270*fontsOption.label: Font x3270*modelsOption.label: Screen Size x3270*colorsOption.label: Color Scheme x3270*charsetOption.label: Character Set x3270*keymapOption.label: Change Keymap... x3270*idleCommandOption.label: Configure Idle Command x3270*keypadOption.label: Keypad x3270*monocaseOption.label: Monocase x3270*cursorBlinkOption.label: Blinking Cursor x3270*showTimingOption.label: Show Timing x3270*cursorPosOption.label: Track Cursor x3270*dsTraceOption.label: Trace Data Stream x3270*eventTraceOption.label: Trace Keyboard/Mouse Events x3270*screenTraceOption.label: Save Screen(s) in File x3270*scrollBarOption.label: Scrollbar x3270*lineWrapOption.label: Wraparound x3270*marginedPasteOption.label: Paste with Left Margin x3270*rectangleSelectOption.label: Select by Rectangles x3270*blankFillOption.label: Blank Fill x3270*crosshairOption.label: Crosshair Cursor x3270*visibleControlOption.label: Visible Control Chars x3270*underlineCursorOption.label: Underline Cursor x3270*blockCursorOption.label: Block Cursor x3270*otherFontOption.label: Other... x3270*lineModeOption.label: Line Mode x3270*characterModeOption.label: Character Mode x3270*extendedDsOption.label: Extended 3270 Data Stream x3270*m3278Option.label: Monochrome (3278) Emulation x3270*m3279Option.label: Color (3279) Emulation x3270*model2Option.label: Model 2 (80x24) x3270*model3Option.label: Model 3 (80x32) x3270*model4Option.label: Model 4 (80x43) x3270*model5Option.label: Model 5 (132x27) x3270*oversizeOption.label: Oversize... x3270*saveOption.label: Save Changed Options #endif ! ! Messages #ifdef X3270_MENUS x3270.message.processId: Process ID: x3270.message.windowId: Main window ID: x3270.message.model: Model x3270.message.rows: rows x3270.message.columns: columns x3270.message.mono: monochrome x3270.message.fullColor: color x3270.message.pseudoColor: pseudo-color x3270.message.extendedDs: extended data stream x3270.message.standardDs: standard data stream x3270.message.terminalName: Terminal name: x3270.message.luName: LU name: x3270.message.bindPluName: BIND PLU name: x3270.message.emulatorFont: Emulator font: x3270.message.emulatorFontDbcs: DBCS emulator font: x3270.message.xFont: standard X11 font x3270.message.cgFont: special 3270 CG font x3270.message.charset: Host EBCDIC character set: x3270.message.sbcsCgcsgid: Host SBCS CGCSGID: x3270.message.dbcsCgcsgid: Host DBCS CGCSGID: x3270.message.defaultCharacterSet: Default (us) EBCDIC character set x3270.message.displayCharacterSet: Display character set: x3270.message.displayCharacterSetDbcs: DBCS display character set: x3270.message.localeCodeset: Locale codeset: x3270.message.require: require x3270.message.have: have x3270.message.keyboardMap: Keyboard map: x3270.message.defaultKeyboardMap: Default keyboard map x3270.message.composeMap: Compose-key map: x3270.message.noComposeMap: No compose-key map x3270.message.activeIcon: Active icon x3270.message.iconFont: Icon font: x3270.message.iconLabelFont: Icon label font: x3270.message.staticIcon: Static bitmap icon x3270.message.connectedTo: Connected to: x3270.message.port: Port: x3270.message.secure: via TLS/SSL x3270.message.proxyType: Proxy type: x3270.message.server: Server: x3270.message.charMode: NVT character mode x3270.message.lineMode: NVT line mode x3270.message.dsMode: 3270 mode x3270.message.sscpMode: SSCP-LU mode x3270.message.tn3270eOpts: TN3270E options: x3270.message.tn3270eNoOpts: No TN3270E options x3270.message.connectionPending: Connection pending to: x3270.message.notConnected: Not connected x3270.message.specialCharacters: Special characters: x3270.message.hour: hour x3270.message.hours: hours x3270.message.minute: minute x3270.message.minutes: minutes x3270.message.second: second x3270.message.seconds: seconds x3270.message.sent: Sent x3270.message.Received: Received x3270.message.received: received x3270.message.byte: byte x3270.message.bytes: bytes x3270.message.record: record x3270.message.records: records x3270.message.statusDbcs: DBCS x3270.message.statusNotConnected: Not Connected x3270.message.statusTwait: Wait x3270.message.statusSyswait: System x3270.message.statusProtected: Protected x3270.message.statusNumeric: Numeric x3270.message.statusOverflow: Overflow x3270.message.statusInhibit: Inhibit x3270.message.statusScrolled: Scrolled x3270.message.statusMinus: No Function #endif x3270.message.statusConnecting: Connecting #endif #ifdef X3270_FT x3270.message.ftComplete: Transfer complete, %i bytes transferred\n\ %sbytes/sec in %s mode x3270.message.ftUnable: Cannot begin transfer x3270.message.ftStartTimeout: Transfer did not start within 10s x3270.message.ftUserCancel: Transfer cancelled by user x3270.message.ftHostCancel: Transfer cancelled by host x3270.message.ftCutUnknownFrame: Unknown frame type from host x3270.message.ftCutUnknownControl: Unknown FT control code from host x3270.message.ftCutRetransmit: Transmission error x3270.message.ftCutConversionError: Data conversion error x3270.message.ftCutOversize: Illegal frame length x3270.message.ftDisconnected: Host disconnected, transfer cancelled x3270.message.ftNot3270: Not in 3270 mode, transfer cancelled x3270.message.ftDftUnknownOpen: Uknown DFT Open type from host #endif x3270.message.inputMethod: X11 Input Method (XIM): x3270.message.ximState: state: x3270.message.ximDisabled: failed x3270.message.ximNotFound: not found x3270.message.ximActive: active x3270.message.ximLocale: locale: x3270.message.ximEncoding: encoding: #ifndef STANDALONE x3270.message.kmEvent: Event x3270.message.kmKeymapLine: Keymap:Line x3270.message.kmActions: Actions x3270.message.kmOverridden: \ -- overridden -- x3270.message.kmKeymap: Keymap x3270.message.kmTemporaryKeymap: Temporary keymap x3270.message.kmFile: from file x3270.message.kmResource: from resource x3270.message.kmFromServer: \ (expanded from '@server') ! !============================================================================= ! Section 3: Base-Level Resources ! ! Resources required for the basic operation of x3270, not for the ! faint-hearted to modify. !============================================================================= ! ! App-defaults file version x3270.adVersion: 3.3.4 ! ! Fonts #ifdef X3270_APL x3270.aplFont: 3270 #endif x3270.debugFont: 3270d x3270.iconFont: nil2 x3270.iconLabelFont: 8x13 #ifdef X3270_KEYPAD x3270*keyPad*large*font: fixed x3270*keyPad*small*font: -*-fixed-medium-r-semicondensed-*-12-*-* #endif x3270*value*font: fixed x3270*dataLabel.font: -*-courier-medium-r-normal--14-*-100-100-m-*-iso8859-1 !x3270*smallLabel.font: 5x7 x3270*smallLabel.font: 6x13 x3270*filename*font: fixed x3270*kmPopup*text*font: fixed x3270*font: -*-helvetica-bold-r-normal--14-*-100-100-p-*-iso8859-1 ! ! Menu configuration #ifdef X3270_MENUS x3270*menuBarContainer.borderWidth: 2 #endif #ifdef COLOR #ifdef X3270_KEYPAD x3270.keypadBackground: grey #endif #ifdef X3270_MENUS x3270*menuBarContainer.background: grey x3270*menuBarContainer.borderColor: grey40 x3270*fileMenuButton*background: grey x3270*optionsMenuButton*background: grey x3270*connectMenuButton*background: grey x3270*macrosMenuButton*background: grey x3270*helpButton*background: grey x3270*keypadButton*background: grey x3270*lockedIcon*background: grey x3270*lockedIcon*foreground: yellow4 x3270*lockedIcon*borderColor: grey x3270*unlockedIcon*background: grey x3270*unlockedIcon*borderColor: grey x3270*fileMenuButton*borderColor: grey x3270*optionsMenuButton*borderColor: grey x3270*connectMenuButton*borderColor: grey x3270*macrosMenuButton*borderColor: grey x3270*helpButton*borderColor: grey #endif #else #ifdef X3270_MENUS x3270*fileMenuButton*borderColor: XtDefaultBackground x3270*optionsMenuButton*borderColor: XtDefaultBackground x3270*connectMenuButton*borderColor: XtDefaultBackground x3270*macrosMenuButton*borderColor: XtDefaultBackground x3270*helpButton*borderColor: XtDefaultBackground #endif #endif #ifdef X3270_MENUS x3270*fileMenuButton*highlightThickness: 1 x3270*optionsMenuButton*highlightThickness: 1 x3270*connectMenuButton*highlightThickness: 1 x3270*macrosMenuButton*highlightThickness: 1 x3270*helpButton*highlightThickness: 1 x3270*keypadButton*highlightThickness: 1 #ifdef COLOR x3270*fileMenu*background: grey x3270*exitMenu*background: grey x3270*optionsMenu*background: grey x3270*hostMenu*background: grey x3270*macrosMenu*background: grey x3270*togglesMenu*background: grey x3270*fontsMenu*background: grey x3270*modelsMenu*background: grey x3270*colorsMenu*background: grey x3270*charsetMenu*background: grey x3270*printerMenu*background: grey #endif x3270*fileMenu.borderWidth: 2 x3270*exitMenu.borderWidth: 2 x3270*optionsMenu.borderWidth: 2 x3270*hostMenu.borderWidth: 2 x3270*macrosMenu.borderWidth: 2 x3270*togglesMenu.borderWidth: 2 x3270*fontsMenu.borderWidth: 2 x3270*modelsMenu.borderWidth: 2 x3270*colorsMenu.borderWidth: 2 x3270*charsetMenu.borderWidth: 2 #ifdef COLOR x3270*fileMenu.borderColor: grey40 x3270*exitMenu.borderColor: grey40 x3270*optionsMenu.borderColor: grey40 x3270*hostMenu.borderColor: grey40 x3270*macrosMenu.borderColor: grey40 x3270*togglesMenu.borderColor: grey40 x3270*fontsMenu.borderColor: grey40 x3270*modelsMenu.borderColor: grey40 x3270*colorsMenu.borderColor: grey40 x3270*charsetMenu.borderColor: grey40 #endif x3270*fileMenu*leftMargin: 20 x3270*fileMenu*rightMargin: 20 x3270*optionsMenu*rightMargin: 20 x3270*togglesMenu*leftMargin: 20 x3270*fontsMenu*leftMargin: 20 x3270*fontsMenu*rightMargin: 20 x3270*modelsMenu*leftMargin: 20 x3270*colorsMenu*leftMargin: 20 x3270*colorsMenu*rightMargin: 20 x3270*charsetMenu*leftMargin: 20 x3270*charsetMenu*rightMargin: 20 x3270*hostMenu*rightMargin: 20 x3270*macrosMenu*rightMargin: 20 #endif ! ! Confirm and cancel buttons ! borderWidth and borderColor are never specified anywhere else, so these ! always apply x3270*confirmButton.borderWidth: 2 x3270*confirm2Button*borderWidth: 2 x3270*cancelButton*borderWidth: 2 #ifdef COLOR x3270**confirmButton.borderColor: grey40 x3270**confirmButton.borderColor: grey40 x3270**confirm2Button.borderColor: grey40 x3270**cancelButton.borderColor: grey40 #endif ! foreground and background are often overridden by other resources, so they ! must be specified explicitly for each instance #ifdef COLOR x3270*dialog*confirmButton.foreground: black x3270*dialog*confirmButton.background: grey80 x3270*dialog*confirm2Button.background: grey80 x3270*dialog*cancelButton.foreground: firebrick x3270*dialog*cancelButton.background: grey80 #endif ! ! Values ! borderWidth and borderColor are never specified anywhere else, so these ! always apply #ifdef COLOR x3270*value.borderWidth: 2 x3270*value.borderColor: grey40 #endif ! background is overridden by dialog*background, so it must be specified ! explicitly #ifdef COLOR x3270*dialog*value*background: lavender #endif ! ! Overall defaults for dialog boxes #ifdef COLOR x3270*dialog*background: grey x3270*dialog*foreground: black #endif ! ! Fixed popup sizes x3270.errorPopup.width: 500 x3270.printerErrorPopup.width: 500 x3270.childErrorPopup.width: 500 x3270.infoPopup.width: 500 x3270.printerInfoPopup.width: 500 x3270.childInfoPopup.width: 500 x3270.printerLuPopup.width: 300 x3270.connectPopup.width: 300 x3270.fontPopup.width: 300 x3270.keymapPopup.width: 300 x3270.oversizePopup.width: 300 x3270.printTextPopup.width: 300 x3270.saveTextPopup.width: 300 x3270.printWindowPopup.width: 300 x3270.tracePopup.width: 300 x3270.screentracePopup.width: 300 x3270.executeActionPopup.width: 300 x3270.saveOptionsPopup.width: 300 ! ! Nondefault definitions for complex pop-ups #ifdef COLOR x3270.aboutCopyrightPopup*icon.foreground: darkslateblue x3270.aboutConfigPopup*icon.foreground: darkslateblue x3270.aboutStatusPopup*icon.foreground: darkslateblue x3270.errorPopup*label.foreground: firebrick x3270.printerErrorPopup*label.foreground: firebrick x3270.childErrorPopup*label.foreground: firebrick #ifdef X3270_FT x3270.ftProgressPopup*filename.borderWidth: 2 x3270.ftProgressPopup*filename.borderColor: grey40 x3270.ftProgressPopup*filename.background: lavender #endif #endif ! #ifdef X3270_KEYPAD ! Keypad key dimensions, in pixels x3270.keypad.keyHeight: 24 x3270.keypad.keyWidth: 48 x3270.keypad.pfWidth: 32 x3270.keypad.paWidth: 36 x3270.keypad.largeKeyWidth: 56 #endif ! ! Keymap display pop-up ! x3270*keymapDisplayOption.label: Display Current Keymap x3270.kmPopup*label.label: Current Keyboard Map x3270.kmPopup*sortActionOption.label: Sort by Action x3270.kmPopup*sortKeymapOption.label: Sort by Keymap x3270.kmPopup*sortEventOption.label: Sort by Event x3270.kmPopup*text*background: lavender x3270.kmPopup*text*foreground: black x3270.kmPopup*text.height: 250 x3270.kmPopup*text.width: 500 ! ! Basic event translations -- these should NEVER be changed without significant ! code changes x3270.translations: #override \n\ WM_PROTOCOLS: PA-WMProtocols()\n\ : PA-KeymapNotify()\n\ WM_STATE: PA-StateChanged()\n\ : PA-Focus()\n\ : PA-Focus()\n\ : PA-ConfigureNotify() x3270.container.translations: #override \n\ Shift_L: PA-Shift()\n\ Shift_L: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_R: PA-Shift()\n\ Alt_R: PA-Shift()\n\ :: Default()\n\ :: Default()\n\ :: Default() x3270*screen.translations: #override \n\ : PA-Expose()\n\ : PA-VisibilityNotify()\n\ : PA-GraphicsExpose()\n\ Shift_L: PA-Shift()\n\ Shift_L: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_R: PA-Shift()\n\ Alt_R: PA-Shift()\n\ :: Default()\n\ :: Default()\n\ :: Default() x3270icon.translations: #override \n\ : PA-Expose() #ifdef X3270_KEYPAD x3270.keypadPopup.translations: #override \n\ WM_PROTOCOLS: PA-WMProtocols()\n\ : PA-KeymapNotify()\n\ : PA-EnterLeave()\n\ : PA-EnterLeave() x3270.keypadPopup.container.translations: #override \n\ Shift_L: PA-Shift()\n\ Shift_L: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Shift_R: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_L: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Meta_R: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_L: PA-Shift()\n\ Alt_R: PA-Shift()\n\ Alt_R: PA-Shift()\n\ :: Default() #endif x3270.errorPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printerErrorPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.childErrorPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.errorPopup*translations: #override \n\ Return: PA-confirm() x3270.printerErrorPopup*translations: #override \n\ Return: PA-confirm() x3270.childErrorPopup*translations: #override \n\ Return: PA-confirm() x3270.infoPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printerInfoPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.childInfoPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.infoPopup*translations: #override \n\ Return: PA-confirm() x3270.printerInfoPopup*translations: #override \n\ Return: PA-confirm() x3270.childInfoPopup*translations: #override \n\ Return: PA-confirm() #ifdef X3270_MENUS x3270.connectPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.fontPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.keymapPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printTextPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.saveTextPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.printWindowPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.tracePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.screentracePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.executeActionPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.saveOptionsPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutCopyrightPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutCopyrightPopup*translations: #override \n\ Return: PA-confirm() x3270.aboutConfigPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutConfigPopup*translations: #override \n\ Return: PA-confirm() x3270.aboutStatusPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.aboutStatusPopup*translations: #override \n\ Return: PA-confirm() x3270.kmPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.kmPopup*translations: #override \n\ Return: PA-confirm() x3270.luPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() #endif #ifdef X3270_FT x3270.ftPopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() ! Note: WM_PROTOCOLS is explicitly not defined for ftPopup, so that the user ! can clear error conditions while a transfer is in progress. x3270.ftOverwritePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.ftPopup*value.translations: #override \n\ Return: PA-dialog-next()\n\ Tab: PA-dialog-next()\n\ : PA-dialog-focus() select-start()\n\ CtrlU: select-all(DUMMY) delete-selection() #endif #ifdef X3270_SCRIPT x3270.idlePopup.translations: \ WM_PROTOCOLS: PA-WMProtocols() x3270.idlePopup*value.translations: #override \n\ Return: PA-dialog-next()\n\ Tab: PA-dialog-next()\n\ : PA-dialog-focus() select-start()\n\ CtrlU: select-all(DUMMY) delete-selection() #endif x3270*value.translations: #override \n\ Return: PA-confirm()\n\ CtrlU: select-all(DUMMY) delete-selection() x3270*value.width: 200 ! Workaround for Xaw MenuButton bug that keeps menu items from highlighting ! when CapsLock or NumLock are down. Technically, this would require ! translations for all permutations of all 8 modifiers: shift, lock, control, ! mod1, mod2, mod3, mod4 and mod5. However, we will leave out shift and ! control, since they are "voluntary" key presses and would quadruple the ! size of this resource. x3270*MenuButton.translations: #override \n\ Lock: reset() PopupMenu()\n\ Mod1: reset() PopupMenu()\n\ Lock Mod1: reset() PopupMenu()\n\ Mod2: reset() PopupMenu()\n\ Lock Mod2: reset() PopupMenu()\n\ Mod1 Mod2: reset() PopupMenu()\n\ Lock Mod1 Mod2: reset() PopupMenu()\n\ Mod3: reset() PopupMenu()\n\ Lock Mod3: reset() PopupMenu()\n\ Mod1 Mod3: reset() PopupMenu()\n\ Lock Mod1 Mod3: reset() PopupMenu()\n\ Mod2 Mod3: reset() PopupMenu()\n\ Lock Mod2 Mod3: reset() PopupMenu()\n\ Mod1 Mod2 Mod3: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3: reset() PopupMenu()\n\ Mod4: reset() PopupMenu()\n\ Lock Mod4: reset() PopupMenu()\n\ Mod1 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod4: reset() PopupMenu()\n\ Mod2 Mod4: reset() PopupMenu()\n\ Lock Mod2 Mod4: reset() PopupMenu()\n\ Mod1 Mod2 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod4: reset() PopupMenu()\n\ Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod3 Mod4: reset() PopupMenu()\n\ Mod1 Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod3 Mod4: reset() PopupMenu()\n\ Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Mod1 Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3 Mod4: reset() PopupMenu()\n\ Mod5: reset() PopupMenu()\n\ Lock Mod5: reset() PopupMenu()\n\ Mod1 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod5: reset() PopupMenu()\n\ Mod2 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod5: reset() PopupMenu()\n\ Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod3 Mod5: reset() PopupMenu()\n\ Mod1 Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod3 Mod5: reset() PopupMenu()\n\ Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3 Mod5: reset() PopupMenu()\n\ Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod4 Mod5: reset() PopupMenu()\n\ Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod4 Mod5: reset() PopupMenu()\n\ Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Mod2 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod2 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Mod1 Mod2 Mod3 Mod4 Mod5: reset() PopupMenu()\n\ Lock Mod1 Mod2 Mod3 Mod4 Mod5: reset() PopupMenu() #endif ! Default compose-key map. ! Each line is of the form "keysym1 + keysym2 = keysym3", meaning "when the ! Compose key is pressed, followed by keysym1 and keysym2 (in either order), ! interpret it as keysym3." The definitions are case-sensitive. x3270.composeMap.latin1: \ c + bar = cent \n\ c + slash = cent \n\ L + minus = sterling \n\ Y + equal = yen \n\ S + S = section \n\ C + O = copyright \n\ a + underscore = ordfeminine \n\ less + less = guillemotleft \n\ R + O = registered \n\ plus + minus = plusminus \n\ o + underscore = masculine \n\ greater + greater = guillemotright \n\ 1 + 4 = onequarter \n\ 1 + 2 = onehalf \n\ 3 + 4 = threequarters \n\ bar + bar = brokenbar \n\ A + grave = Agrave \n\ A + apostrophe = Aacute \n\ A + asciicircum = Acircumflex \n\ A + asciitilde = Atilde \n\ A + quotedbl = Adiaeresis \n\ A + asterisk = Aring \n\ A + E = AE \n\ C + comma = Ccedilla \n\ C + apostrophe = Ccedilla \n\ E + grave = Egrave \n\ E + apostrophe = Eacute \n\ E + asciicircum = Ecircumflex \n\ E + quotedbl = Ediaeresis \n\ I + grave = Igrave \n\ I + apostrophe = Iacute \n\ I + asciicircum = Icircumflex \n\ I + quotedbl = Idiaeresis \n\ N + asciitilde = Ntilde \n\ O + grave = Ograve \n\ O + apostrophe = Oacute \n\ O + asciicircum = Ocircumflex \n\ O + asciitilde = Otilde \n\ O + quotedbl = Odiaeresis \n\ O + slash = Ooblique \n\ U + grave = Ugrave \n\ U + apostrophe = Uacute \n\ U + asciicircum = Ucircumflex \n\ U + quotedbl = Udiaeresis \n\ Y + apostrophe = Yacute \n\ s + s = ssharp \n\ a + grave = agrave \n\ a + apostrophe = aacute \n\ a + asciicircum = acircumflex \n\ a + asciitilde = atilde \n\ a + quotedbl = adiaeresis \n\ a + asterisk = aring \n\ a + e = ae \n\ c + comma = ccedilla \n\ c + apostrophe = ccedilla \n\ e + grave = egrave \n\ e + apostrophe = eacute \n\ e + asciicircum = ecircumflex \n\ e + quotedbl = ediaeresis \n\ i + grave = igrave \n\ i + apostrophe = iacute \n\ i + asciicircum = icircumflex \n\ i + quotedbl = idiaeresis \n\ n + asciitilde = ntilde \n\ o + grave = ograve \n\ o + apostrophe = oacute \n\ o + asciicircum = ocircumflex \n\ o + asciitilde = otilde \n\ o + quotedbl = odiaeresis \n\ o + slash = oslash \n\ u + grave = ugrave \n\ u + apostrophe = uacute \n\ u + asciicircum = ucircumflex \n\ u + quotedbl = udiaeresis \n\ y + apostrophe = yacute \n\ y + quotedbl = ydiaeresis \n\ apostrophe + apostrophe = apostrophe \n\ apostrophe + space = apostrophe \n\ asciicircum + asciicircum = asciicircum \n\ asciicircum + space = asciicircum \n\ asciitilde + asciitilde = asciitilde \n\ asciitilde + space = asciitilde \n\ grave + grave = grave \n\ grave + space = grave \n\ quotedbl + quotedbl = quotedbl \n\ quotedbl + space = quotedbl \n #ifndef STANDALONE #ifdef X3270_APL ! ! Compose-key map for APL. x3270.composeMap.apl: \ A + underscore = apl_Aunderbar \n\ B + underscore = apl_Bunderbar \n\ C + underscore = apl_Cunderbar \n\ D + underscore = apl_Dunderbar \n\ E + underscore = apl_Eunderbar \n\ F + underscore = apl_Funderbar \n\ G + underscore = apl_Gunderbar \n\ H + underscore = apl_Hunderbar \n\ I + underscore = apl_Iunderbar \n\ J + underscore = apl_Junderbar \n\ K + underscore = apl_Kunderbar \n\ L + underscore = apl_Lunderbar \n\ M + underscore = apl_Munderbar \n\ N + underscore = apl_Nunderbar \n\ O + underscore = apl_Ounderbar \n\ P + underscore = apl_Punderbar \n\ Q + underscore = apl_Qunderbar \n\ R + underscore = apl_Runderbar \n\ S + underscore = apl_Sunderbar \n\ T + underscore = apl_Tunderbar \n\ U + underscore = apl_Uunderbar \n\ V + underscore = apl_Vunderbar \n\ W + underscore = apl_Wunderbar \n\ X + underscore = apl_Xunderbar \n\ Y + underscore = apl_Yunderbar \n\ Z + underscore = apl_Zunderbar \n\ apl_upcaret + apl_downcaret = apl_diamond \n\ apl_quad + apl_jot = apl_quadjot \n\ apl_iota + underscore = apl_iotaunderbar \n\ apl_epsilon + underscore = apl_epsilonunderbar \n\ less + equal = apl_notgreater \n\ plus + minus = apl_plusminus \n\ greater + equal = apl_notless \n\ equal + slash = apl_notequal \n\ apl_upcaret + apl_tilde = apl_upcarettilde \n\ apl_upcaret + asciitilde = apl_upcarettilde \n\ apl_downcaret + apl_tilde = apl_downcarettilde \n\ apl_downcaret + asciitilde = apl_downcarettilde \n\ apl_circle + apl_stile = apl_circlestile \n\ apl_circle + bar = apl_circlestile \n\ apl_quad + apl_slope = apl_slopequad \n\ apl_quad + backslash = apl_slopequad \n\ apl_circle + apl_slope = apl_circleslope \n\ apl_circle + backslash = apl_circleslope \n\ apl_downtack + apl_uptack = apl_downtackup \n\ apostrophe + period = apl_quotedot \n\ apl_del + apl_stile = apl_delstile \n\ apl_del + bar = apl_delstile \n\ apl_delta + apl_stile = apl_deltastile \n\ apl_delta + bar = apl_deltastile \n\ apl_quad + apostrophe = apl_quadquote \n\ apl_upshoe + apl_jot = apl_upshoejot \n\ slash + minus = apl_slashbar \n\ apl_slope + minus = apl_slopebar \n\ backslash + minus = apl_slopebar \n\ apl_diaeresis + period = apl_diaeresisdot \n\ apl_circle + minus = apl_circlebar \n\ apl_quad + apl_divide = apl_quaddivide \n\ apl_uptack + apl_jot = apl_uptackjot \n\ apl_del + apl_tilde = apl_deltilde \n\ apl_del + asciitilde = apl_deltilde \n\ apl_delta + underscore = apl_deltaunderbar \n\ apl_circle + asterisk = apl_circlestar \n\ apl_downtack + apl_jot = apl_downtackjot \n\ equal + underscore = apl_equalunderbar \n\ apl_quad + apl_quad = apl_squad \n\ apl_diaeresis + apl_jot = apl_diaeresisjot \n\ apl_diaeresis + apl_circle = apl_diaeresiscircle \n\ comma + minus = apl_commabar \n\ c + equal = apl_euro \n\ C + equal = apl_euro \n\ minus + parenleft = apl_lefttack \n\ minus + parenright = apl_righttack \n #endif #endif #ifdef STANDALONE #ifdef _WIN32 ! wc3270 keymap for more 3270-ish behavior: The Enter key is Newline and the ! Right-Ctrl key is Enter. x3270.keymap.rctrl.3270: \ RightCtrlCTRL: Enter()\n\ Return: Newline() #endif #endif ibm-3270-3.3.10ga4/ws3270/macros.c0000644000175000017500000026252511254565704015600 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * macros.c * This module handles string, macro and script (sms) processing. */ #include "globals.h" #if defined(X3270_MENUS) /*[*/ #include #include #endif /*]*/ #if !defined(_WIN32) /*[*/ #include #include #include #include #include #include #endif /*]*/ #include #include #include #include #include "3270ds.h" #include "appres.h" #include "ctlr.h" #include "screen.h" #include "resources.h" #include "actionsc.h" #include "childc.h" #include "ctlrc.h" #include "ftc.h" #include "hostc.h" #include "idlec.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #if defined(X3270_PRINTER) /*[*/ #include "printerc.h" #endif /*]*/ #include "screenc.h" #include "seec.h" #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" #include "xioc.h" #if defined(_WIN32) /*[*/ #include "windows.h" #include #include "w3miscc.h" #endif /*]*/ #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #define ANSI_SAVE_SIZE 4096 #if defined(_WIN32) /*[*/ #define SOCK_CLOSE(s) closesocket(s) #else /*][*/ #define SOCK_CLOSE(s) close(s) #endif /*[*/ /* Externals */ extern int linemode; /* Globals */ struct macro_def *macro_defs = (struct macro_def *)NULL; Boolean macro_output = False; /* Statics */ typedef struct sms { struct sms *next; /* next sms on the stack */ char msc[1024]; /* input buffer */ int msc_len; /* length of input buffer */ char *dptr; /* data pointer (macros only) */ enum sms_state { SS_IDLE, /* no command active (scripts only) */ SS_INCOMPLETE, /* command(s) buffered and ready to run */ SS_RUNNING, /* command executing */ SS_KBWAIT, /* command awaiting keyboard unlock */ SS_CONNECT_WAIT,/* command awaiting connection to complete */ #if defined(X3270_FT) /*[*/ SS_FT_WAIT, /* command awaiting file transfer to complete */ #endif /*]*/ SS_TIME_WAIT, /* command awaiting simple timeout */ SS_PAUSED, /* stopped in PauseScript action */ SS_WAIT_NVT, /* awaiting completion of Wait(NVTMode) */ SS_WAIT_3270, /* awaiting completion of Wait(3270Mode) */ SS_WAIT_OUTPUT, /* awaiting completion of Wait(Output) */ SS_SWAIT_OUTPUT,/* awaiting completion of Snap(Wait) */ SS_WAIT_DISC, /* awaiting completion of Wait(Disconnect) */ SS_WAIT_IFIELD, /* awaiting completion of Wait(InputField) */ SS_WAIT_UNLOCK, /* awaiting completion of Wait(Unlock) */ SS_EXPECTING, /* awaiting completion of Expect() */ SS_CLOSING /* awaiting completion of Close() */ } state; enum sms_type { ST_STRING, /* string */ ST_MACRO, /* macro */ ST_COMMAND, /* interactive command */ ST_KEYMAP, /* keyboard map */ ST_IDLE, /* idle command */ ST_CHILD, /* child process */ ST_PEER, /* peer (external) process */ ST_FILE /* read commands from file */ } type; Boolean success; Boolean need_prompt; Boolean is_login; Boolean is_hex; /* flag for ST_STRING only */ Boolean output_wait_needed; Boolean executing; /* recursion avoidance */ Boolean accumulated; /* accumulated time flag */ Boolean idle_error; /* idle command caused an error */ Boolean is_socket; /* I/O is via a socket */ Boolean is_transient; /* I/O is via a transient socket */ Boolean is_external; /* I/O is via a transient socket to -socket */ unsigned long msec; /* total accumulated time */ FILE *outfile; int infd; #if defined(_WIN32) /*[*/ HANDLE inhandle; HANDLE child_handle; unsigned long exit_id; unsigned long listen_id; #endif /*]*/ int pid; unsigned long expect_id; unsigned long wait_id; } sms_t; #define SN ((sms_t *)NULL) static sms_t *sms = SN; static int sms_depth = 0; #if defined(X3270_SCRIPT) /*[*/ static int socketfd = -1; static unsigned long socket_id = 0L; # if defined(_WIN32) /*[*/ static HANDLE socket_event = NULL; # endif /*]*/ #endif /*]*/ #if defined(X3270_TRACE) /*[*/ static const char *sms_state_name[] = { "IDLE", "INCOMPLETE", "RUNNING", "KBWAIT", "CONNECT_WAIT", #if defined(X3270_FT) /*[*/ "FT_WAIT", #endif /*]*/ "TIME_WAIT", "PAUSED", "WAIT_NVT", "WAIT_3270", "WAIT_OUTPUT", "SWAIT_OUTPUT", "WAIT_DISC", "WAIT_IFIELD", "WAIT_UNLOCK", "EXPECTING", "CLOSING" }; #endif /*]*/ #if defined(X3270_MENUS) /*[*/ static struct macro_def *macro_last = (struct macro_def *) NULL; #endif /*]*/ static unsigned long stdin_id = 0L; static unsigned char *ansi_save_buf; static int ansi_save_cnt = 0; static int ansi_save_ix = 0; static char *expect_text = CN; static int expect_len = 0; static const char *st_name[] = { "String", "Macro", "Command", "KeymapAction", "IdleCommand", "ChildScript", "PeerScript", "File" }; static enum iaction st_cause[] = { IA_MACRO, IA_MACRO, IA_COMMAND, IA_KEYMAP, IA_IDLE, IA_MACRO, IA_MACRO }; #define ST_sNAME(s) st_name[(int)(s)->type] #define ST_NAME ST_sNAME(sms) #if defined(X3270_SCRIPT) /*[*/ static void cleanup_socket(Boolean b); #endif /*]*/ static void script_prompt(Boolean success); static void script_input(void); static void sms_pop(Boolean can_exit); #if defined(X3270_SCRIPT) /*[*/ static void socket_connection(void); # if defined(_WIN32) /*[*/ static void child_socket_connection(void); static void child_exited(void); # endif /*]*/ #endif /*]*/ static void wait_timed_out(void); static void read_from_file(void); static sms_t *sms_redirect_to(void); /* Macro that defines that the keyboard is locked due to user input. */ #define KBWAIT (kybdlock & (KL_OIA_LOCKED|KL_OIA_TWAIT|KL_DEFERRED_UNLOCK)) #if defined(X3270_SCRIPT) /*[*/ #define CKBWAIT (appres.toggle[AID_WAIT].value && KBWAIT) #else /*][*/ #define CKBWAIT (KBWAIT) #endif /*]*/ /* Macro that defines when it's safe to continue a Wait()ing sms. */ #define CAN_PROCEED ( \ IN_SSCP || \ (IN_3270 && (no_login_host || (formatted && cursor_addr)) && !CKBWAIT) || \ (IN_ANSI && !(kybdlock & KL_AWAITING_FIRST)) \ ) #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ static int plugin_pid = 0; /* process ID if running, or 0 */ static int plugin_outpipe = -1; /* from emulator, to plugin */ static int plugin_inpipe = -1; /* from plugin, to emulator */ static Bool plugin_started = False; /* True after INIT ack'ed */ static unsigned long plugin_input_id = 0L; /* input event */ static unsigned long plugin_timeout_id = 0L; /* timeout event */ #define PRB_MAX 1024 /* maximum reply size */ static char plugin_buf[PRB_MAX]; /* reply buffer */ static int prb_cnt = 0; /* pending reply size */ #define PLUGINSTART_SECS 5 /* timeout for init reply */ #define PLUGINWAIT_SECS 2 /* timeout for cmd or AID reply */ #define MAX_START_ARGS 10 /* max args for plugin command */ #define PLUGIN_QMAX 256 /* max pending INITs/AIDs/cmds */ static char plugin_tq[PLUGIN_QMAX]; /* FIFO of pending INITs/AIDs/cmds */ static int ptq_first = 0; /* FIFO index of first pending cmd */ static int ptq_last = 0; /* FIFO index of last pending cmd */ #define PLUGIN_BACKLOG (((ptq_last + PLUGIN_QMAX) - ptq_first) % PLUGIN_QMAX) #define PLUGIN_INIT 0 /* commands: initialize */ #define PLUGIN_AID 1 /* process AID */ #define PLUGIN_CMD 2 /* process command */ static Boolean plugin_complain = False; static Boolean plugin_start_failed = False; static char plugin_start_error[PRB_MAX]; static void plugin_start(char *command, char *argv[], Boolean complain); static void no_plugin(void); #endif /*]*/ #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ static void plugin_start_appres(Boolean complain) { int i = 0; char *args[MAX_START_ARGS]; char *ccopy = NewString(appres.plugin_command); char *command; char *s; command = strtok(ccopy, " \t"); if (command == NULL) { Free(ccopy); return; } args[i++] = command; while (i < MAX_START_ARGS - 1 && (s = strtok(NULL, " \t")) != NULL) { args[i++] = s; } args[i] = NULL; plugin_start(command, args, complain); Free(ccopy); } #endif /*]*/ /* Callbacks for state changes. */ static void sms_connect(Boolean connected) { #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ if (connected) { if (appres.plugin_command && !plugin_pid) { plugin_start_appres(False); } } else no_plugin(); #endif /*]*/ /* Hack to ensure that disconnects don't cause infinite recursion. */ if (sms != SN && sms->executing) return; if (!connected) { while (sms != SN && sms->is_login) { #if !defined(_WIN32) /*[*/ if (sms->type == ST_CHILD && sms->pid > 0) (void) kill(sms->pid, SIGTERM); #endif /*]*/ sms_pop(False); } } sms_continue(); } static void sms_in3270(Boolean in3270) { if (in3270 || IN_SSCP) sms_continue(); } /* One-time initialization. */ void sms_init(void) { register_schange(ST_CONNECT, sms_connect); register_schange(ST_3270_MODE, sms_in3270); } #if defined(X3270_MENUS) /*[*/ /* Parse the macros resource into the macro list */ void macros_init(void) { char *s = CN; char *name, *action; struct macro_def *m; int ns; int ix = 1; static char *last_s = CN; /* Free the previous macro definitions. */ while (macro_defs) { m = macro_defs->next; Free(macro_defs); macro_defs = m; } macro_defs = (struct macro_def *)NULL; macro_last = (struct macro_def *)NULL; if (last_s) { Free(last_s); last_s = CN; } /* Search for new ones. */ if (PCONNECTED) { char *rname; char *space; rname = NewString(current_host); if ((space = strchr(rname, ' '))) *space = '\0'; s = get_fresource("%s.%s", ResMacros, rname); Free(rname); } if (s == CN) { if (appres.macros == CN) return; s = NewString(appres.macros); } else s = NewString(s); last_s = s; while ((ns = split_dresource(&s, &name, &action)) == 1) { m = (struct macro_def *)Malloc(sizeof(*m)); if (!split_hier(name, &m->name, &m->parents)) { Free(m); continue; } m->action = action; if (macro_last) macro_last->next = m; else macro_defs = m; m->next = (struct macro_def *)NULL; macro_last = m; ix++; } if (ns < 0) { char buf[256]; (void) sprintf(buf, "Error in macro %d", ix); Warning(buf); } } #endif /*]*/ /* * Enable input from a script. */ static void script_enable(void) { #if defined(_WIN32) /*[*/ /* Windows child scripts are listening sockets. */ if (sms->type == ST_CHILD && sms->inhandle != INVALID_HANDLE_VALUE) { sms->listen_id = AddInput((int)sms->inhandle, child_socket_connection); return; } #endif /*]*/ if (sms->infd >= 0 && stdin_id == 0) { trace_dsn("Enabling input for %s[%d]\n", ST_NAME, sms_depth); #if defined(_WIN32) /*[*/ stdin_id = AddInput((int)sms->inhandle, script_input); #else /*][*/ stdin_id = AddInput(sms->infd, script_input); #endif /*]*/ } } /* * Disable input from a script. */ static void script_disable(void) { if (stdin_id != 0) { trace_dsn("Disabling input for %s[%d]\n", ST_NAME, sms_depth); RemoveInput(stdin_id); stdin_id = 0L; } } /* Allocate a new sms. */ static sms_t * new_sms(enum sms_type type) { sms_t *s; s = (sms_t *)Calloc(1, sizeof(sms_t)); s->state = SS_IDLE; s->type = type; s->dptr = s->msc; s->success = True; s->need_prompt = False; s->is_login = False; s->outfile = (FILE *)NULL; s->infd = -1; #if defined(_WIN32) /*[*/ s->inhandle = INVALID_HANDLE_VALUE; s->child_handle = INVALID_HANDLE_VALUE; #endif /*]*/ s->pid = -1; s->expect_id = 0L; s->wait_id = 0L; s->output_wait_needed = False; s->executing = False; s->accumulated = False; s->idle_error = False; s->msec = 0L; return s; } /* * Push an sms definition on the stack. * Returns whether or not that is legal. */ static Boolean sms_push(enum sms_type type) { sms_t *s; /* Preempt any running sms. */ if (sms != SN) { /* Remove the running sms's input. */ script_disable(); } s = new_sms(type); if (sms != SN) s->is_login = sms->is_login; /* propagate from parent */ s->next = sms; sms = s; /* Enable the abort button on the menu and the status indication. */ if (++sms_depth == 1) { menubar_as_set(True); status_script(True); } if (ansi_save_buf == (unsigned char *)NULL) ansi_save_buf = (unsigned char *)Malloc(ANSI_SAVE_SIZE); return True; } /* * Add an sms definition to the _bottom_ of the stack. */ static sms_t * sms_enqueue(enum sms_type type) { sms_t *s, *t, *t_prev = SN; /* Allocate and initialize a new structure. */ s = new_sms(type); /* Find the bottom of the stack. */ for (t = sms; t != SN; t = t->next) t_prev = t; if (t_prev == SN) { /* Empty stack. */ s->next = sms; sms = s; /* * Enable the abort button on the menu and the status * line indication. */ menubar_as_set(True); status_script(True); } else { /* Add to bottom. */ s->next = SN; t_prev->next = s; } sms_depth++; if (ansi_save_buf == (unsigned char *)NULL) ansi_save_buf = (unsigned char *)Malloc(ANSI_SAVE_SIZE); return s; } /* Pop an sms definition off the stack. */ static void sms_pop(Boolean can_exit) { sms_t *s; trace_dsn("%s[%d] complete\n", ST_NAME, sms_depth); /* When you pop the peer script, that's the end of x3270. */ if (sms->type == ST_PEER && !sms->is_transient && can_exit) x3270_exit(0); /* Remove the input event. */ script_disable(); /* Close the files. */ if (sms->outfile != NULL) fclose(sms->outfile); if (sms->infd >= 0) { if (sms->is_socket) SOCK_CLOSE(sms->infd); else close(sms->infd); } /* Cancel any pending timeouts. */ if (sms->expect_id != 0L) RemoveTimeOut(sms->expect_id); if (sms->wait_id != 0L) RemoveTimeOut(sms->wait_id); /* * If this was an idle command that generated an error, now is the * time to announce that. (If we announced it when the error first * occurred, we might be telling the wrong party, such as a script.) */ if (sms->idle_error) popup_an_error("Idle command disabled due to error"); #if defined(X3270_SCRIPT) /*[*/ /* If this was a -socket peer, get ready for another connection. */ if (sms->type == ST_PEER && sms->is_external) { #if defined(_WIN32) /*[*/ socket_id = AddInput((int)socket_event, socket_connection); #else /*][*/ socket_id = AddInput(socketfd, socket_connection); #endif /*]*/ } #endif /*]*/ /* Release the memory. */ s = sms; sms = s->next; Free(s); sms_depth--; if (sms == SN) { /* Turn off the menu option. */ menubar_as_set(False); status_script(False); } else if (CKBWAIT && (int)sms->state < (int)SS_KBWAIT) { /* The child implicitly blocked the parent. */ sms->state = SS_KBWAIT; trace_dsn("%s[%d] implicitly paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } else if (sms->state == SS_IDLE && sms->type != ST_FILE) { /* The parent needs to be restarted. */ script_enable(); } else if (sms->type == ST_FILE) { read_from_file(); } #if defined(_WIN32) /*[*/ /* If the new top sms is an exited script, pop it, too. */ if (sms != SN && sms->type == ST_CHILD && sms->child_handle == INVALID_HANDLE_VALUE) sms_pop(False); #endif /*]*/ } /* * Peer script initialization. * * Must be called after the initial call to connect to the host from the * command line, so that the initial state can be set properly. */ void peer_script_init(void) { sms_t *s; Boolean on_top; #if defined(X3270_SCRIPT) /*[*/ if (appres.script_port) { struct sockaddr_in sin; #if !defined(_WIN32) /*[*/ if (appres.socket) xs_warning("-scriptport overrides -socket"); #endif /*]*/ /* -scriptport overrides -script */ appres.scripted = False; /* Create the listening socket. */ socketfd = socket(AF_INET, SOCK_STREAM, 0); if (socketfd < 0) { #if !defined(_WIN32) /*[*/ popup_an_errno(errno, "socket()"); #else /*][*/ popup_an_error("socket(): %s", win32_strerror(GetLastError())); #endif /*]*/ return; } (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; sin.sin_port = htons(appres.script_port); sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); if (bind(socketfd, (struct sockaddr *)&sin, sizeof(sin)) < 0) { #if !defined(_WIN32) /*[*/ popup_an_errno(errno, "socket bind"); #else /*][*/ popup_an_error("socket bind: %s", win32_strerror(GetLastError())); #endif /*]*/ SOCK_CLOSE(socketfd); socketfd = -1; return; } if (listen(socketfd, 1) < 0) { #if !defined(_WIN32) /*[*/ popup_an_errno(errno, "socket listen"); #else /*][*/ popup_an_error("socket listen: %s", win32_strerror(GetLastError())); #endif /*]*/ SOCK_CLOSE(socketfd); socketfd = -1; return; } #if defined(_WIN32) /*[*/ socket_event = CreateEvent(NULL, FALSE, FALSE, NULL); if (socket_event == NULL) { popup_an_error("CreateEvent: %s", win32_strerror(GetLastError())); SOCK_CLOSE(socketfd); socketfd = -1; return; } if (WSAEventSelect(socketfd, socket_event, FD_ACCEPT) != 0) { popup_an_error("WSAEventSelect: %s", win32_strerror(GetLastError())); SOCK_CLOSE(socketfd); socketfd = -1; return; } socket_id = AddInput((int)socket_event, socket_connection); #else /*][*/ socket_id = AddInput(socketfd, socket_connection); #endif/*]*/ register_schange(ST_EXITING, cleanup_socket); return; } #endif /*]*/ #if defined(X3270_SCRIPT) && !defined(_WIN32) /*[*/ if (appres.socket && !appres.script_port) { struct sockaddr_un ssun; /* -socket overrides -script */ appres.scripted = False; /* Create the listening socket. */ socketfd = socket(AF_UNIX, SOCK_STREAM, 0); if (socketfd < 0) { popup_an_errno(errno, "Unix-domain socket"); return; } (void) memset(&ssun, '\0', sizeof(ssun)); ssun.sun_family = AF_UNIX; (void) sprintf(ssun.sun_path, "/tmp/x3sck.%u", getpid()); (void) unlink(ssun.sun_path); if (bind(socketfd, (struct sockaddr *)&ssun, sizeof(ssun)) < 0) { popup_an_errno(errno, "Unix-domain socket bind"); close(socketfd); socketfd = -1; return; } if (listen(socketfd, 1) < 0) { popup_an_errno(errno, "Unix-domain socket listen"); close(socketfd); socketfd = -1; (void) unlink(ssun.sun_path); return; } socket_id = AddInput(socketfd, socket_connection); register_schange(ST_EXITING, cleanup_socket); return; } #endif /*]*/ if (!appres.scripted) return; if (sms == SN) { /* No login script running, simply push a new sms. */ (void) sms_push(ST_PEER); s = sms; on_top = True; } else { /* Login script already running, pretend we started it. */ s = sms_enqueue(ST_PEER); s->state = SS_RUNNING; on_top = False; } s->infd = fileno(stdin); #if defined(_WIN32) /*[*/ s->inhandle = GetStdHandle(STD_INPUT_HANDLE); #endif /*]*/ s->outfile = stdout; (void) SETLINEBUF(s->outfile); /* even if it's a pipe */ if (on_top) { if (HALF_CONNECTED || (CONNECTED && (kybdlock & KL_AWAITING_FIRST))) s->state = SS_CONNECT_WAIT; else script_enable(); } } #if defined(X3270_SCRIPT) /*[*/ /* Accept a new socket connection. */ static void socket_connection(void) { int fd; sms_t *s; /* Accept the connection. */ #if !defined(_WIN32) /*[*/ if (appres.script_port) #endif /*]*/ { struct sockaddr_in sin; socklen_t len = sizeof(sin); (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; fd = accept(socketfd, (struct sockaddr *)&sin, &len); } #if !defined(_WIN32) /*[*/ else { struct sockaddr_un ssun; socklen_t len = sizeof(ssun); (void) memset(&ssun, '\0', sizeof(ssun)); ssun.sun_family = AF_UNIX; fd = accept(socketfd, (struct sockaddr *)&ssun, &len); } #endif /*]*/ if (fd < 0) { popup_an_errno(errno, "socket accept"); return; } trace_dsn("New script socket connection\n"); /* Push on a peer script. */ (void) sms_push(ST_PEER); s = sms; s->is_transient = True; s->is_external = True; s->infd = fd; #if !defined(_WIN32) /*[*/ s->outfile = fdopen(dup(fd), "w"); #endif /*]*/ #if defined(_WIN32) /*[*/ s->inhandle = CreateEvent(NULL, FALSE, FALSE, NULL); if (s->inhandle == NULL) { fprintf(stderr, "Can't create socket handle\n"); exit(1); } if (WSAEventSelect(s->infd, s->inhandle, FD_READ | FD_CLOSE) != 0) { fprintf(stderr, "Can't set socket handle events\n"); exit(1); } #endif /*]*/ s->is_socket = True; script_enable(); /* Don't accept any more connections. */ RemoveInput(socket_id); socket_id = 0L; } # if defined(_WIN32) /*[*/ /* Accept a new socket connection from a child process. */ static void child_socket_connection(void) { int fd; sms_t *old_sms; sms_t *s; struct sockaddr_in sin; socklen_t len = sizeof(sin); /* Accept the connection. */ (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; fd = accept(sms->infd, (struct sockaddr *)&sin, &len); if (fd < 0) { popup_an_error("socket accept: %s", win32_strerror(GetLastError())); return; } trace_dsn("New child script socket connection\n"); /* Push on a peer script. */ old_sms = sms; (void) sms_push(ST_PEER); s = sms; s->is_transient = True; s->infd = fd; s->inhandle = CreateEvent(NULL, FALSE, FALSE, NULL); if (s->inhandle == NULL) { fprintf(stderr, "Can't create socket handle\n"); exit(1); } if (WSAEventSelect(s->infd, s->inhandle, FD_READ | FD_CLOSE) != 0) { fprintf(stderr, "Can't set socket handle events\n"); exit(1); } s->is_socket = True; script_enable(); /* Don't accept any more connections on the global listen socket. */ RemoveInput(old_sms->listen_id); old_sms->listen_id = 0L; } #endif /*]*/ /* Clean up the Unix-domain socket. */ static void cleanup_socket(Boolean b _is_unused) { #if !defined(_WIN32) /*[*/ char buf[1024]; (void) sprintf(buf, "/tmp/x3sck.%u", getpid()); (void) unlink(buf); #endif /*]*/ } #endif /*]*/ #if defined(_WIN32) /*[*/ /* Process an event on a child script handle (presumably a process exit). */ static void child_exited(void) { sms_t *s; DWORD status; for (s = sms; s != NULL; s = s->next) { if (s->type == ST_CHILD) { status = 0; if (GetExitCodeProcess(s->child_handle, &status) == 0) { popup_an_error("GetExitCodeProcess failed: %s", win32_strerror(GetLastError())); } else if (status != STILL_ACTIVE) { trace_dsn("Child script exited with status " "0x%x\n", (unsigned)status); CloseHandle(s->child_handle); s->child_handle = INVALID_HANDLE_VALUE; RemoveInput(s->exit_id); s->exit_id = 0; if (s == sms) { sms_pop(False); sms_continue(); } break; } } } } #endif /*]*/ /* * Interpret and execute a script or macro command. */ enum em_stat { EM_CONTINUE, EM_PAUSE, EM_ERROR }; static enum em_stat execute_command(enum iaction cause, char *s, char **np) { enum { ME_GND, /* before action name */ ME_COMMENT, /* within a comment */ ME_FUNCTION, /* within action name */ ME_FUNCTIONx, /* saw whitespace after action name */ ME_LPAREN, /* saw left paren */ ME_P_PARM, /* paren: within unquoted parameter */ ME_P_QPARM, /* paren: within quoted parameter */ ME_P_BSL, /* paren: after backslash in quoted parameter */ ME_P_PARMx, /* paren: saw whitespace after parameter */ ME_S_PARM, /* space: within unquoted parameter */ ME_S_QPARM, /* space: within quoted parameter */ ME_S_BSL, /* space: after backslash in quoted parameter */ ME_S_PARMx /* space: saw whitespace after parameter */ } state = ME_GND; char c; char aname[64+1]; char parm[1024+1]; int nx = 0; Cardinal count = 0; String params[64]; int i, any, exact; int failreason = 0; Boolean saw_paren = False; static const char *fail_text[] = { /*1*/ "Action name must begin with an alphanumeric character", /*2*/ "Syntax error in action name", /*3*/ "Syntax error: \")\" or \",\" expected", /*4*/ "Extra data after parameters", /*5*/ "Syntax error: \")\" expected" }; #define fail(n) { failreason = n; goto failure; } #define free_params() { \ if (cause == IA_MACRO || cause == IA_KEYMAP || \ cause == IA_COMMAND || cause == IA_IDLE) { \ Cardinal j; \ for (j = 0; j < count; j++) \ Free(params[j]); \ } \ } parm[0] = '\0'; params[count] = parm; while ((c = *s++)) switch (state) { case ME_GND: if (isspace(c)) continue; else if (isalnum(c)) { state = ME_FUNCTION; nx = 0; aname[nx++] = c; } else if (c == '!' || c == '#') state = ME_COMMENT; else fail(1); break; case ME_COMMENT: break; case ME_FUNCTION: /* within function name */ if (c == '(' || isspace(c)) { aname[nx] = '\0'; if (c == '(') { nx = 0; state = ME_LPAREN; saw_paren = True; } else state = ME_FUNCTIONx; } else if (isalnum(c) || c == '_' || c == '-') { if (nx < 64) aname[nx++] = c; } else { fail(2); } break; case ME_FUNCTIONx: /* space after function name */ if (isspace(c)) continue; else if (c == '(') { nx = 0; state = ME_LPAREN; } else if (c == '"') { nx = 0; state = ME_S_QPARM; } else { state = ME_S_PARM; nx = 0; parm[nx++] = c; } break; case ME_LPAREN: if (isspace(c)) continue; else if (c == '"') state = ME_P_QPARM; else if (c == ',') { parm[nx++] = '\0'; params[++count] = &parm[nx]; } else if (c == ')') goto success; else { state = ME_P_PARM; parm[nx++] = c; } break; case ME_P_PARM: if (isspace(c)) { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_P_PARMx; } else if (c == ')') { parm[nx] = '\0'; ++count; goto success; } else if (c == ',') { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_LPAREN; } else { if (nx < 1024) parm[nx++] = c; } break; case ME_P_BSL: if (c == 'n' && nx < 1024) parm[nx++] = '\n'; else { if (c != '"' && nx < 1024) parm[nx++] = '\\'; if (nx < 1024) parm[nx++] = c; } state = ME_P_QPARM; break; case ME_P_QPARM: if (c == '"') { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_P_PARMx; } else if (c == '\\') { state = ME_P_BSL; } else if (nx < 1024) parm[nx++] = c; break; case ME_P_PARMx: if (isspace(c)) continue; else if (c == ',') state = ME_LPAREN; else if (c == ')') goto success; else fail(3); break; case ME_S_PARM: if (isspace(c)) { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_S_PARMx; } else { if (nx < 1024) parm[nx++] = c; } break; case ME_S_BSL: if (c == 'n' && nx < 1024) parm[nx++] = '\n'; else { if (c != '"' && nx < 1024) parm[nx++] = '\\'; if (nx < 1024) parm[nx++] = c; } state = ME_S_QPARM; break; case ME_S_QPARM: if (c == '"') { parm[nx++] = '\0'; params[++count] = &parm[nx]; state = ME_S_PARMx; } else if (c == '\\') { state = ME_S_BSL; } else if (nx < 1024) parm[nx++] = c; break; case ME_S_PARMx: if (isspace(c)) continue; else if (c == '"') state = ME_S_QPARM; else { parm[nx++] = c; state = ME_S_PARM; } break; } /* Terminal state. */ switch (state) { case ME_FUNCTION: /* mid-function-name */ aname[nx] = '\0'; break; case ME_FUNCTIONx: /* space after function */ break; case ME_GND: /* nothing */ case ME_COMMENT: if (np) *np = s - 1; return EM_CONTINUE; case ME_S_PARMx: /* space after space-style parameter */ break; case ME_S_PARM: /* mid space-style parameter */ parm[nx++] = '\0'; params[++count] = &parm[nx]; break; default: fail(5); } success: if (c) { while (*s && isspace(*s)) s++; if (*s) { if (np) *np = s; else fail(4); } else if (np) *np = s; } else if (np) *np = s-1; /* If it's a macro, do variable substitutions. */ if (cause == IA_MACRO || cause == IA_KEYMAP || cause == IA_COMMAND || cause == IA_IDLE) { Cardinal j; for (j = 0; j < count; j++) params[j] = do_subst(params[j], True, False); } /* Search the action list. */ if (!strncasecmp(aname, PA_PFX, strlen(PA_PFX))) { popup_an_error("Invalid action: %s", aname); free_params(); return EM_ERROR; } any = -1; exact = -1; for (i = 0; i < actioncount; i++) { if (!strcasecmp(aname, actions[i].string)) { exact = any = i; break; } } if (exact < 0) { for (i = 0; i < actioncount; i++) { if (!strncasecmp(aname, actions[i].string, strlen(aname))) { if (any >= 0) { popup_an_error("Ambiguous action name: " "%s", aname); free_params(); return EM_ERROR; } any = i; } } } if (any >= 0) { sms->accumulated = False; sms->msec = 0L; ia_cause = cause; (*actions[any].proc)((Widget)NULL, (XEvent *)NULL, count? params: (String *)NULL, &count); free_params(); screen_disp(False); } else { popup_an_error("Unknown action: %s", aname); free_params(); return EM_ERROR; } #if defined(X3270_FT) /*[*/ if (ft_state != FT_NONE) sms->state = SS_FT_WAIT; #endif /*]*/ if (CKBWAIT) return EM_PAUSE; else return EM_CONTINUE; failure: popup_an_error("%s", fail_text[failreason-1]); return EM_ERROR; #undef fail #undef free_params } /* Run the string at the top of the stack. */ static void run_string(void) { int len; int len_left; trace_dsn("%s[%d] running\n", ST_NAME, sms_depth); sms->state = SS_RUNNING; len = strlen(sms->dptr); trace_dsn("%sString[%d]: '%s'\n", sms->is_hex ? "Hex" : "", sms_depth, sms->dptr); if (sms->is_hex) { if (CKBWAIT) { sms->state = SS_KBWAIT; trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } else { hex_input(sms->dptr); sms_pop(False); } } else { if ((len_left = emulate_input(sms->dptr, len, False))) { sms->dptr += len - len_left; if (CKBWAIT) { sms->state = SS_KBWAIT; trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } } else { sms_pop(False); } } } /* Run the macro at the top of the stack. */ static void run_macro(void) { char *a = sms->dptr; char *nextm; enum em_stat es; sms_t *s; trace_dsn("%s[%d] running\n", ST_NAME, sms_depth); /* * Keep executing commands off the line until one pauses or * we run out of commands. */ while (*a) { /* * Check for command failure. */ if (!sms->success) { trace_dsn("%s[%d] failed\n", ST_NAME, sms_depth); /* Propogate it. */ if (sms->next != SN) sms->next->success = False; break; } sms->state = SS_RUNNING; trace_dsn("%s[%d]: '%s'\n", ST_NAME, sms_depth, a); s = sms; s->success = True; s->executing = True; es = execute_command(st_cause[s->type], a, &nextm); s->executing = False; s->dptr = nextm; /* * If a new sms was started, we will be resumed * when it completes. */ if (sms != s) { return; } /* Macro could not execute. Abort it. */ if (es == EM_ERROR) { trace_dsn("%s[%d] error\n", ST_NAME, sms_depth); /* Propogate it. */ if (sms->next != SN) sms->next->success = False; /* If it was an idle command, cancel it. */ cancel_if_idle_command(); break; } /* Macro paused, implicitly or explicitly. Suspend it. */ if (es == EM_PAUSE || (int)sms->state >= (int)SS_KBWAIT) { if (sms->state == SS_RUNNING) sms->state = SS_KBWAIT; trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); sms->dptr = nextm; return; } /* Macro ran. */ a = nextm; } /* Finished with this macro. */ sms_pop(False); } /* Push a macro (macro, command or keymap action) on the stack. */ static void push_xmacro(enum sms_type type, char *s, Boolean is_login) { macro_output = False; if (!sms_push(type)) return; (void) strncpy(sms->msc, s, 1023); sms->msc[1023] = '\0'; sms->msc_len = strlen(s); if (sms->msc_len > 1023) sms->msc_len = 1023; if (is_login) { sms->state = SS_WAIT_IFIELD; sms->is_login = True; } else sms->state = SS_INCOMPLETE; sms_continue(); } /* Push a macro on the stack. */ void push_macro(char *s, Boolean is_login) { push_xmacro(ST_MACRO, s, is_login); } /* Push an interactive command on the stack. */ void push_command(char *s) { push_xmacro(ST_COMMAND, s, False); } /* Push an keymap action on the stack. */ void push_keymap_action(char *s) { push_xmacro(ST_KEYMAP, s, False); } /* Push an keymap action on the stack. */ void push_idle(char *s) { push_xmacro(ST_IDLE, s, False); } /* Push a string on the stack. */ static void push_string(char *s, Boolean is_login, Boolean is_hex) { if (!sms_push(ST_STRING)) return; (void) strncpy(sms->msc, s, 1023); sms->msc[1023] = '\0'; sms->msc_len = strlen(s); if (sms->msc_len > 1023) sms->msc_len = 1023; if (is_login) { sms->state = SS_WAIT_IFIELD; sms->is_login = True; } else sms->state = SS_INCOMPLETE; sms->is_hex = is_hex; if (sms_depth == 1) sms_continue(); } /* Push a Source'd file on the stack. */ static void push_file(int fd) { if (!sms_push(ST_FILE)) return; sms->infd = fd; read_from_file(); } /* Set a pending string. */ void ps_set(char *s, Boolean is_hex) { push_string(s, False, is_hex); } #if defined(X3270_MENUS) /*[*/ /* Callback for macros menu. */ void macro_command(struct macro_def *m) { push_macro(m->action, False); } #endif /*]*/ /* * If the string looks like an action, e.g., starts with "Xxx(", run a login * macro. Otherwise, set a simple pending login string. */ void login_macro(char *s) { char *t = s; Boolean looks_right = False; while (isspace(*t)) t++; if (isalnum(*t)) { while (isalnum(*t)) t++; while (isspace(*t)) t++; if (*t == '(') looks_right = True; } if (looks_right) push_macro(s, True); else push_string(s, True, False); } /* Run the first command in the msc[] buffer. */ static void run_script(void) { trace_dsn("%s[%d] running\n", ST_NAME, sms_depth); for (;;) { char *ptr; int cmd_len; char *cmd; sms_t *s; enum em_stat es; /* If the script isn't idle, we're done. */ if (sms->state != SS_IDLE) break; /* If a prompt is required, send one. */ if (sms->need_prompt) { script_prompt(sms->success); sms->need_prompt = False; } /* If there isn't a pending command, we're done. */ if (!sms->msc_len) break; /* Isolate the command. */ ptr = memchr(sms->msc, '\n', sms->msc_len); if (!ptr) break; *ptr++ = '\0'; cmd_len = ptr - sms->msc; cmd = sms->msc; /* Execute it. */ sms->state = SS_RUNNING; sms->success = True; trace_dsn("%s[%d]: '%s'\n", ST_NAME, sms_depth, cmd); s = sms; s->executing = True; es = execute_command(IA_SCRIPT, cmd, (char **)NULL); s->executing = False; /* Move the rest of the buffer over. */ if (cmd_len < s->msc_len) { s->msc_len -= cmd_len; (void) memmove(s->msc, ptr, s->msc_len); } else s->msc_len = 0; /* * If a new sms was started, we will be resumed * when it completes. */ if (sms != s) { s->need_prompt = True; return; } /* Handle what it did. */ if (es == EM_PAUSE || (int)sms->state >= (int)SS_KBWAIT) { if (sms->state == SS_RUNNING) sms->state = SS_KBWAIT; script_disable(); if (sms->state == SS_CLOSING) { sms_pop(False); return; } sms->need_prompt = True; } else if (es == EM_ERROR) { trace_dsn("%s[%d] error\n", ST_NAME, sms_depth); script_prompt(False); /* If it was an idle command, cancel it. */ cancel_if_idle_command(); } else script_prompt(sms->success); if (sms->state == SS_RUNNING) sms->state = SS_IDLE; else { trace_dsn("%s[%d] paused %s\n", ST_NAME, sms_depth, sms_state_name[sms->state]); } } } /* Read the next command from a file. */ static void read_from_file(void) { char *dptr; int len_left = sizeof(sms->msc); sms->msc_len = 0; dptr = sms->msc; while (len_left) { int nr; nr = read(sms->infd, dptr, 1); if (nr < 0) { sms_pop(False); return; } if (nr == 0) { if (sms->msc_len == 0) { sms_pop(False); return; } else { *++dptr = '\0'; break; } } if (*dptr == '\n') { if (sms->msc_len) { *dptr = '\0'; break; } } dptr++; sms->msc_len++; len_left--; } /* Run the command as a macro. */ trace_dsn("%s[%d] read '%s'\n", ST_NAME, sms_depth, sms->msc); sms->state = SS_INCOMPLETE; push_macro(sms->dptr, False); } /* Handle an error generated during the execution of a script or macro. */ void sms_error(const char *msg) { sms_t *s; Boolean is_script = False; /* Print the error message. */ s = sms_redirect_to(); is_script = (s != NULL); if (is_script) { char *text = Malloc(strlen("data: ") + strlen(msg) + 2); char *newline; char *last_space; sprintf(text, "data: %s", msg); newline = text; while ((newline = strchr(newline, '\n')) != NULL) *newline++ = ' '; last_space = strrchr(text, ' '); if (last_space != NULL && last_space == text + strlen(text) - 1) *last_space = '\n'; else strcat(text, "\n"); if (s->is_socket) send(s->infd, text, strlen(text), 0); else fprintf(s->outfile, "%s", text); Free(text); } else (void) fprintf(stderr, "%s\n", msg); /* Fail the current command. */ sms->success = False; /* Cancel any login. */ if (s != NULL && s->is_login) host_disconnect(True); } /* * Generate a response to a script command. * Makes sure that each line of output is prefixed with 'data:', if * appropriate, and makes sure that the output is newline terminated. * * If the parameter is an empty string, generates nothing, but if it is a * newline, generates an empty line. */ void sms_info(const char *fmt, ...) { char *nl; char msgbuf[4096]; char *msg = msgbuf; va_list args; sms_t *s; va_start(args, fmt); vsprintf(msgbuf, fmt, args); va_end(args); do { int nc; nl = strchr(msg, '\n'); if (nl != CN) nc = nl - msg; else nc = strlen(msg); if (nc || (nl != CN)) { if ((s = sms_redirect_to()) != NULL) { char *text = Malloc(strlen("data: ") + nc + 2); sprintf(text, "data: %.*s\n", nc, msg); if (s->is_socket) send(s->infd, text, strlen(text), 0); else (void) fprintf(s->outfile, "%s", text); Free(text); } else (void) printf("%.*s\n", nc, msg); } msg = nl + 1; } while (nl); macro_output = True; } /* Process available input from a script. */ static void script_input(void) { char buf[128]; int nr; char *ptr; char c; trace_dsn("Input for %s[%d] %d\n", ST_NAME, sms_depth, sms->state); /* Read in what you can. */ if (sms->is_socket) nr = recv(sms->infd, buf, sizeof(buf), 0); else nr = read(sms->infd, buf, sizeof(buf)); if (nr < 0) { #if defined(_WIN32) /*[*/ if (sms->is_socket) popup_an_error("%s[%d] recv: %s", ST_NAME, sms_depth, win32_strerror(GetLastError())); else #endif popup_an_errno(errno, "%s[%d] read", ST_NAME, sms_depth); return; } if (nr == 0) { /* end of file */ trace_dsn("EOF %s[%d]\n", ST_NAME, sms_depth); sms_pop(True); sms_continue(); return; } /* Append to the pending command, ignoring returns. */ ptr = buf; while (nr--) if ((c = *ptr++) != '\r') sms->msc[sms->msc_len++] = c; /* Run the command(s). */ sms->state = SS_INCOMPLETE; sms_continue(); } /* Resume a paused sms, if conditions are now ripe. */ void sms_continue(void) { static Boolean continuing = False; if (continuing) return; continuing = True; while (True) { if (sms == SN) { continuing = False; return; } switch (sms->state) { case SS_IDLE: continuing = False; return; /* nothing to do */ case SS_INCOMPLETE: case SS_RUNNING: break; /* let it proceed */ case SS_KBWAIT: if (CKBWAIT) { continuing = False; return; } break; case SS_WAIT_NVT: if (IN_ANSI) { sms->state = SS_WAIT_IFIELD; continue; } continuing = False; return; case SS_WAIT_3270: if (IN_3270 | IN_SSCP) { sms->state = SS_WAIT_IFIELD; continue; } continuing = False; return; case SS_WAIT_UNLOCK: if (KBWAIT) { continuing = False; return; } break; case SS_WAIT_IFIELD: if (!CAN_PROCEED) { continuing = False; return; } /* fall through... */ case SS_CONNECT_WAIT: if (HALF_CONNECTED || (CONNECTED && (kybdlock & KL_AWAITING_FIRST))) { continuing = False; return; } if (!CONNECTED) { /* connection failed */ if (sms->need_prompt) { script_prompt(False); sms->need_prompt = False; } break; } break; #if defined(X3270_FT) /*[*/ case SS_FT_WAIT: if (ft_state == FT_NONE) break; else { continuing = False; return; } #endif /*]*/ case SS_TIME_WAIT: continuing = False; return; case SS_WAIT_OUTPUT: case SS_SWAIT_OUTPUT: if (!CONNECTED) { popup_an_error("Host disconnected"); break; } continuing = False; return; case SS_WAIT_DISC: if (!CONNECTED) break; else { continuing = False; return; } case SS_PAUSED: continuing = False; return; case SS_EXPECTING: continuing = False; return; case SS_CLOSING: continuing = False; return; /* can't happen, I hope */ } /* Restart the sms. */ sms->state = SS_IDLE; if (sms->wait_id != 0L) { RemoveTimeOut(sms->wait_id); sms->wait_id = 0L; } switch (sms->type) { case ST_STRING: run_string(); break; case ST_MACRO: case ST_COMMAND: case ST_KEYMAP: case ST_IDLE: run_macro(); break; case ST_PEER: case ST_CHILD: script_enable(); run_script(); break; case ST_FILE: read_from_file(); break; } } continuing = False; } /* * Return True if there is a pending macro. */ Boolean sms_in_macro(void) { sms_t *s; for (s = sms; s != NULL; s = s->next) { if (s->type == ST_MACRO || s->type == ST_STRING) return True; } return False; } /* * Macro- and script-specific actions. */ static void dump_range(int first, int len, Boolean in_ascii, struct ea *buf, int rel_rows _is_unused, int rel_cols) { register int i; Boolean any = False; Boolean is_zero = False; char *linebuf; char *s; linebuf = Malloc(maxCOLS * 4 + 1); s = linebuf; /* * If the client has looked at the live screen, then if they later * execute 'Wait(output)', they will need to wait for output from the * host. output_wait_needed is cleared by sms_host_output, * which is called from the write logic in ctlr.c. */ if (sms != SN && buf == ea_buf) sms->output_wait_needed = True; is_zero = FA_IS_ZERO(get_field_attribute(first)); for (i = 0; i < len; i++) { if (i && !((first + i) % rel_cols)) { *s = '\0'; action_output("%s", linebuf); s = linebuf; any = False; } if (in_ascii) { char mb[16]; ucs4_t uc; int j; int xlen; if (buf[first + i].fa) { is_zero = FA_IS_ZERO(buf[first + i].fa); s += sprintf(s, " "); } else if (is_zero) s += sprintf(s, " "); else #if defined(X3270_DBCS) /*[*/ if (IS_LEFT(ctlr_dbcs_state(first + i))) { xlen = ebcdic_to_multibyte( (buf[first + i].cc << 8) | buf[first + i + 1].cc, mb, sizeof(mb)); for (j = 0; j < xlen - 1; j++) { s += sprintf(s, "%c", mb[j]); } } else if (IS_RIGHT(ctlr_dbcs_state(first + i))) { continue; } else #endif /*]*/ { xlen = ebcdic_to_multibyte_x( buf[first + i].cc, buf[first + i].cs, mb, sizeof(mb), EUO_BLANK_UNDEF, &uc); for (j = 0; j < xlen - 1; j++) { s += sprintf(s, "%c", mb[j]); } } } else { s += sprintf(s, "%s%02x", i ? " " : "", buf[first + i].cc); } any = True; } if (any) { *s = '\0'; action_output("%s", linebuf); } Free(linebuf); } static void dump_fixed(String params[], Cardinal count, const char *name, Boolean in_ascii, struct ea *buf, int rel_rows, int rel_cols, int caddr) { int row, col, len, rows = 0, cols = 0; switch (count) { case 0: /* everything */ row = 0; col = 0; len = rel_rows*rel_cols; break; case 1: /* from cursor, for n */ row = caddr / rel_cols; col = caddr % rel_cols; len = atoi(params[0]); break; case 3: /* from (row,col), for n */ row = atoi(params[0]); col = atoi(params[1]); len = atoi(params[2]); break; case 4: /* from (row,col), for rows x cols */ row = atoi(params[0]); col = atoi(params[1]); rows = atoi(params[2]); cols = atoi(params[3]); len = 0; break; default: popup_an_error("%s requires 0, 1, 3 or 4 arguments", name); return; } if ( (row < 0 || row > rel_rows || col < 0 || col > rel_cols || len < 0) || ((count < 4) && ((row * rel_cols) + col + len > rel_rows * rel_cols)) || ((count == 4) && (cols < 0 || rows < 0 || col + cols > rel_cols || row + rows > rel_rows)) ) { popup_an_error("%s: Invalid argument", name); return; } if (count < 4) dump_range((row * rel_cols) + col, len, in_ascii, buf, rel_rows, rel_cols); else { int i; for (i = 0; i < rows; i++) dump_range(((row+i) * rel_cols) + col, cols, in_ascii, buf, rel_rows, rel_cols); } } static void dump_field(Cardinal count, const char *name, Boolean in_ascii) { int faddr; unsigned char fa; int start, baddr; int len = 0; if (count != 0) { popup_an_error("%s requires 0 arguments", name); return; } if (!formatted) { popup_an_error("%s: Screen is not formatted", name); return; } faddr = find_field_attribute(cursor_addr); fa = get_field_attribute(cursor_addr); start = faddr; INC_BA(start); baddr = start; do { if (ea_buf[baddr].fa) break; len++; INC_BA(baddr); } while (baddr != start); dump_range(start, len, in_ascii, ea_buf, ROWS, COLS); } void Ascii_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { dump_fixed(params, *num_params, action_name(Ascii_action), True, ea_buf, ROWS, COLS, cursor_addr); } void AsciiField_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params) { dump_field(*num_params, action_name(AsciiField_action), True); } void Ebcdic_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { dump_fixed(params, *num_params, action_name(Ebcdic_action), False, ea_buf, ROWS, COLS, cursor_addr); } void EbcdicField_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params) { dump_field(*num_params, action_name(EbcdicField_action), False); } static unsigned char calc_cs(unsigned char cs) { switch (cs & CS_MASK) { case CS_APL: return 0xf1; case CS_LINEDRAW: return 0xf2; case CS_DBCS: return 0xf8; default: return 0x00; } } /* * Internals of the ReadBuffer action. * Operates on the supplied 'buf' parameter, which might be the live * screen buffer 'ea_buf' or a copy saved with 'Snap'. */ static void do_read_buffer(String *params, Cardinal num_params, struct ea *buf, int fd) { register int baddr; unsigned char current_fg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; Boolean in_ebcdic = False; rpf_t r; if (num_params > 0) { if (num_params > 1) { popup_an_error("%s: extra agruments", action_name(ReadBuffer_action)); return; } if (!strncasecmp(params[0], "Ascii", strlen(params[0]))) in_ebcdic = False; else if (!strncasecmp(params[0], "Ebcdic", strlen(params[0]))) in_ebcdic = True; else { popup_an_error("%s: first parameter must be " "Ascii or Ebcdic", action_name(ReadBuffer_action)); return; } } if (fd >= 0) { char *s; int nw; s = xs_buffer("rows %d cols %d cursor %d\n", ROWS, COLS, cursor_addr); nw = write(fd, s, strlen(s)); Free(s); if (nw < 0) return; } rpf_init(&r); baddr = 0; do { if (!(baddr % COLS)) { if (baddr) { if (fd >= 0) { if (write(fd, r.buf + 1, strlen(r.buf + 1)) < 0) goto done; if (write(fd, "\n", 1) < 0) goto done; } else action_output("%s", r.buf + 1); } rpf_reset(&r); } if (buf[baddr].fa) { rpf(&r, " SF(%02x=%02x", XA_3270, buf[baddr].fa); if (buf[baddr].fg) rpf(&r, ",%02x=%02x", XA_FOREGROUND, buf[baddr].fg); if (buf[baddr].gr) rpf(&r, ",%02x=%02x", XA_HIGHLIGHTING, buf[baddr].gr | 0xf0); if (buf[baddr].cs & CS_MASK) rpf(&r, ",%02x=%02x", XA_CHARSET, calc_cs(buf[baddr].cs)); rpf(&r, ")"); } else { if (buf[baddr].fg != current_fg) { rpf(&r, " SA(%02x=%02x)", XA_FOREGROUND, buf[baddr].fg); current_fg = buf[baddr].fg; } if (buf[baddr].gr != current_gr) { rpf(&r, " SA(%02x=%02x)", XA_HIGHLIGHTING, buf[baddr].gr | 0xf0); current_gr = buf[baddr].gr; } if ((buf[baddr].cs & ~CS_GE) != (current_cs & ~CS_GE)) { rpf(&r, " SA(%02x=%02x)", XA_CHARSET, calc_cs(buf[baddr].cs)); current_cs = buf[baddr].cs; } if (in_ebcdic) { if (buf[baddr].cs & CS_GE) rpf(&r, " GE(%02x)", buf[baddr].cc); else rpf(&r, " %02x", buf[baddr].cc); } else { Boolean done = False; char mb[16]; int j; ucs4_t uc; #if defined(X3270_DBCS) /*[*/ int len; if (IS_LEFT(ctlr_dbcs_state(baddr))) { len = ebcdic_to_multibyte( (buf[baddr].cc << 8) | buf[baddr + 1].cc, mb, sizeof(mb)); rpf(&r, " "); for (j = 0; j < len-1; j++) rpf(&r, "%02x", mb[j] & 0xff); done = True; } else if (IS_RIGHT(ctlr_dbcs_state(baddr))) { rpf(&r, " -"); done = True; } #endif /*]*/ switch (buf[baddr].cc) { case EBC_null: mb[0] = '\0'; break; case EBC_so: mb[0] = 0x0e; mb[1] = '\0'; break; case EBC_si: mb[0] = 0x0f; mb[1] = '\0'; break; default: (void) ebcdic_to_multibyte_x( buf[baddr].cc, buf[baddr].cs, mb, sizeof(mb), EUO_NONE, &uc); break; } if (!done) { rpf(&r, " "); if (mb[0] == '\0') rpf(&r, "00"); else { for (j = 0; mb[j]; j++) { rpf(&r, "%02x", mb[j] & 0xff); } } } } } INC_BA(baddr); } while (baddr != 0); if (fd >= 0) { if (write(fd, r.buf + 1, strlen(r.buf + 1)) < 0) goto done; if (write(fd, "\n", 1) < 0) goto done; } else action_output("%s", r.buf + 1); done: rpf_free(&r); } /* * ReadBuffer action. */ void ReadBuffer_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { do_read_buffer(params, *num_params, ea_buf, -1); } /* * The sms prompt is preceeded by a status line with 11 fields: * * 1 keyboard status * U unlocked * L locked, waiting for host response * E locked, keying error * 2 formatting status of screen * F formatted * U unformatted * 3 protection status of current field * U unprotected (modifiable) * P protected * 4 connect status * N not connected * C(host) connected * 5 emulator mode * N not connected * C connected in ANSI character mode * L connected in ANSI line mode * P 3270 negotiation pending * I connected in 3270 mode * 6 model number * 7 rows * 8 cols * 9 cursor row * 10 cursor col * 11 main window id */ static char * status_string(void) { char kb_stat; char fmt_stat; char prot_stat; char *connect_stat = CN; char em_mode; char s[1024]; char *r; if (!kybdlock) kb_stat = 'U'; else if (!CONNECTED || KBWAIT) kb_stat = 'L'; else kb_stat = 'E'; if (formatted) fmt_stat = 'F'; else fmt_stat = 'U'; if (!formatted) prot_stat = 'U'; else { unsigned char fa; fa = get_field_attribute(cursor_addr); if (FA_IS_PROTECTED(fa)) prot_stat = 'P'; else prot_stat = 'U'; } if (CONNECTED) connect_stat = xs_buffer("C(%s)", current_host); else connect_stat = NewString("N"); if (CONNECTED) { if (IN_ANSI) { if (linemode) em_mode = 'L'; else em_mode = 'C'; } else if (IN_3270) em_mode = 'I'; else em_mode = 'P'; } else em_mode = 'N'; (void) sprintf(s, "%c %c %c %s %c %d %d %d %d %d 0x%lx", kb_stat, fmt_stat, prot_stat, connect_stat, em_mode, model_num, ROWS, COLS, cursor_addr / COLS, cursor_addr % COLS, #if defined(X3270_DISPLAY) /*[*/ XtWindow(toplevel) #else /*][*/ 0L #endif /*]*/ ); r = NewString(s); Free(connect_stat); return r; } static void script_prompt(Boolean success) { char *s; char timing[64]; char *t; s = status_string(); if (sms != SN && sms->accumulated) (void) sprintf(timing, "%ld.%03ld", sms->msec / 1000L, sms->msec % 1000L); else (void) strcpy(timing, "-"); t = Malloc(strlen(s) + 1 + strlen(timing) + 1 + 6 + 1); sprintf(t, "%s %s\n%s\n", s, timing, success ? "ok" : "error"); Free(s); if (sms->is_socket) { send(sms->infd, t, strlen(t), 0); } else { (void) fprintf(sms->outfile, "%s", t); (void) fflush(sms->outfile); } free(t); } /* Save the state of the screen for Snap queries. */ static char *snap_status = NULL; static struct ea *snap_buf = NULL; static int snap_rows = 0; static int snap_cols = 0; static int snap_field_start = -1; static int snap_field_length = -1; static int snap_caddr = 0; static void snap_save(void) { sms->output_wait_needed = True; Replace(snap_status, status_string()); Replace(snap_buf, (struct ea *)Malloc(ROWS*COLS*sizeof(struct ea))); (void) memcpy(snap_buf, ea_buf, ROWS*COLS*sizeof(struct ea)); snap_rows = ROWS; snap_cols = COLS; if (!formatted) { snap_field_start = -1; snap_field_length = -1; } else { int baddr; snap_field_length = 0; snap_field_start = find_field_attribute(cursor_addr); INC_BA(snap_field_start); baddr = snap_field_start; do { if (ea_buf[baddr].fa) break; snap_field_length++; INC_BA(baddr); } while (baddr != snap_field_start); } snap_caddr = cursor_addr; } /* * "Snap" action, maintains a snapshot for consistent multi-field comparisons: * * Snap [Save] * updates the saved image from the live image * Snap Rows * returns the number of rows * Snap Cols * returns the number of columns * Snap Staus * Snap Ascii ... * Snap AsciiField (not yet) * Snap Ebcdic ... * Snap EbcdicField (not yet) * Snap ReadBuffer * runs the named command * Snap Wait [tmo] Output * wait for the screen to change, then do a Snap Save */ void Snap_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (sms == SN || sms->state != SS_RUNNING) { popup_an_error("%s can only be called from scripts or macros", action_name(Snap_action)); return; } if (*num_params == 0) { snap_save(); return; } /* Handle 'Snap Wait' separately. */ if (!strcasecmp(params[0], action_name(Wait_action))) { long tmo = -1; char *ptr; Cardinal maxp = 0; if (*num_params > 1 && (tmo = strtol(params[1], &ptr, 10)) >= 0 && ptr != params[0] && *ptr == '\0') { maxp = 3; } else { tmo = -1; maxp = 2; } if (*num_params > maxp) { popup_an_error("Too many arguments to %s %s", action_name(Snap_action), action_name(Wait_action)); return; } if (*num_params < maxp) { popup_an_error("Too few arguments to %s %s", action_name(Snap_action), action_name(Wait_action)); return; } if (strcasecmp(params[*num_params - 1], "Output")) { popup_an_error("Unknown parameter to %s %s", action_name(Snap_action), action_name(Wait_action)); return; } /* Must be connected. */ if (!(CONNECTED || HALF_CONNECTED)) { popup_an_error("%s: Not connected", action_name(Snap_action)); return; } /* * Make sure we need to wait. * If we don't, then Snap(Wait) is equivalent to Snap(). */ if (!sms->output_wait_needed) { snap_save(); return; } /* Set the new state. */ sms->state = SS_SWAIT_OUTPUT; /* Set up a timeout, if they want one. */ if (tmo >= 0) sms->wait_id = AddTimeOut(tmo? (tmo * 1000): 1, wait_timed_out); return; } if (!strcasecmp(params[0], "Save")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } snap_save(); } else if (!strcasecmp(params[0], "Status")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } if (snap_status == NULL) { popup_an_error("No saved state"); return; } action_output("%s", snap_status); } else if (!strcasecmp(params[0], "Rows")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } if (snap_status == NULL) { popup_an_error("No saved state"); return; } action_output("%d", snap_rows); } else if (!strcasecmp(params[0], "Cols")) { if (*num_params != 1) { popup_an_error("Extra argument(s)"); return; } if (snap_status == NULL) { popup_an_error("No saved state"); return; } action_output("%d", snap_cols); } else if (!strcasecmp(params[0], action_name(Ascii_action))) { if (snap_status == NULL) { popup_an_error("No saved state"); return; } dump_fixed(params + 1, *num_params - 1, action_name(Ascii_action), True, snap_buf, snap_rows, snap_cols, snap_caddr); } else if (!strcasecmp(params[0], action_name(Ebcdic_action))) { if (snap_status == NULL) { popup_an_error("No saved state"); return; } dump_fixed(params + 1, *num_params - 1, action_name(Ebcdic_action), False, snap_buf, snap_rows, snap_cols, snap_caddr); } else if (!strcasecmp(params[0], action_name(ReadBuffer_action))) { if (snap_status == NULL) { popup_an_error("No saved state"); return; } do_read_buffer(params + 1, *num_params - 1, snap_buf, -1); } else { popup_an_error("%s: Argument must be Save, Status, Rows, Cols, " "%s, %s %s, or %s", action_name(Snap_action), action_name(Wait_action), action_name(Ascii_action), action_name(Ebcdic_action), action_name(ReadBuffer_action)); } } /* * Wait for various conditions. */ void Wait_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { enum sms_state next_state = SS_WAIT_IFIELD; long tmo = -1; char *ptr; Cardinal np; String *pr; /* Pick off the timeout parameter first. */ if (*num_params > 0 && (tmo = strtol(params[0], &ptr, 10)) >= 0 && ptr != params[0] && *ptr == '\0') { np = *num_params - 1; pr = params + 1; } else { tmo = -1; np = *num_params; pr = params; } if (np > 1) { popup_an_error("Too many arguments to %s or invalid timeout " "value", action_name(Wait_action)); return; } if (sms == SN || sms->state != SS_RUNNING) { popup_an_error("%s can only be called from scripts or macros", action_name(Wait_action)); return; } if (np == 1) { if (!strcasecmp(pr[0], "NVTMode") || !strcasecmp(pr[0], "ansi")) { if (!IN_ANSI) next_state = SS_WAIT_NVT; } else if (!strcasecmp(pr[0], "3270Mode") || !strcasecmp(pr[0], "3270")) { if (!IN_3270) next_state = SS_WAIT_3270; } else if (!strcasecmp(pr[0], "Output")) { if (sms->output_wait_needed) next_state = SS_WAIT_OUTPUT; else return; } else if (!strcasecmp(pr[0], "Disconnect")) { if (CONNECTED) next_state = SS_WAIT_DISC; else return; } else if (!strcasecmp(pr[0], "Unlock")) { if (KBWAIT) next_state = SS_WAIT_UNLOCK; else return; } else if (tmo > 0 && !strcasecmp(pr[0], "Seconds")) { next_state = SS_TIME_WAIT; } else if (strcasecmp(pr[0], "InputField")) { popup_an_error("%s argument must be InputField, " "NVTmode, 3270Mode, Output, Seconds, Disconnect " "or Unlock", action_name(Wait_action)); return; } } if (!(CONNECTED || HALF_CONNECTED)) { popup_an_error("%s: Not connected", action_name(Wait_action)); return; } /* Is it already okay? */ if (next_state == SS_WAIT_IFIELD && CAN_PROCEED) return; /* No, wait for it to happen. */ sms->state = next_state; /* Set up a timeout, if they want one. */ if (tmo >= 0) sms->wait_id = AddTimeOut(tmo? (tmo * 1000): 1, wait_timed_out); } /* * Callback from Connect() and Reconnect() actions, to minimally pause a * running sms. */ void sms_connect_wait(void) { if (sms != SN && (int)sms->state >= (int)SS_RUNNING && sms->state != SS_WAIT_IFIELD) { if (HALF_CONNECTED || (CONNECTED && (kybdlock & KL_AWAITING_FIRST))) sms->state = SS_CONNECT_WAIT; } } /* * Callback from ctlr.c, to indicate that the host has changed the screen. */ void sms_host_output(void) { if (sms != SN) { sms->output_wait_needed = False; switch (sms->state) { case SS_SWAIT_OUTPUT: snap_save(); /* fall through... */ case SS_WAIT_OUTPUT: sms->state = SS_RUNNING; sms_continue(); break; default: break; } } } /* Return whether error pop-ups and acition output should be short-circuited. */ static sms_t * sms_redirect_to(void) { sms_t *s; for (s = sms; s != SN; s = s->next) { if ((s->type == ST_CHILD || s->type == ST_PEER) && (s->state == SS_RUNNING || s->state == SS_CONNECT_WAIT || s->state == SS_WAIT_OUTPUT || s->state == SS_SWAIT_OUTPUT || s->wait_id != 0L)) return s; } return NULL; } /* Return whether error pop-ups and acition output should be short-circuited. */ Boolean sms_redirect(void) { return sms_redirect_to() != NULL; } #if defined(X3270_MENUS) || defined(C3270) /*[*/ /* Return whether any scripts are active. */ Boolean sms_active(void) { return sms != SN; } #endif /*]*/ /* Translate an expect string (uses C escape syntax). */ static void expand_expect(char *s) { char *t = Malloc(strlen(s) + 1); char c; enum { XS_BASE, XS_BS, XS_O, XS_X } state = XS_BASE; int n = 0; int nd = 0; static char hexes[] = "0123456789abcdef"; expect_text = t; while ((c = *s++)) { switch (state) { case XS_BASE: if (c == '\\') state = XS_BS; else *t++ = c; break; case XS_BS: switch (c) { case 'x': nd = 0; n = 0; state = XS_X; break; case 'r': *t++ = '\r'; state = XS_BASE; break; case 'n': *t++ = '\n'; state = XS_BASE; break; case 'b': *t++ = '\b'; state = XS_BASE; break; default: if (c >= '0' && c <= '7') { nd = 1; n = c - '0'; state = XS_O; } else { *t++ = c; state = XS_BASE; } break; } break; case XS_O: if (nd < 3 && c >= '0' && c <= '7') { n = (n * 8) + (c - '0'); nd++; } else { *t++ = n; *t++ = c; state = XS_BASE; } break; case XS_X: if (isxdigit(c)) { n = (n * 16) + strchr(hexes, tolower(c)) - hexes; nd++; } else { if (nd) *t++ = n; else *t++ = 'x'; *t++ = c; state = XS_BASE; } break; } } expect_len = t - expect_text; } /* 'mem' version of strstr */ static char * memstr(char *s1, char *s2, int n1, int n2) { int i; for (i = 0; i <= n1 - n2; i++, s1++) if (*s1 == *s2 && !memcmp(s1, s2, n2)) return s1; return CN; } /* Check for a match against an expect string. */ static Boolean expect_matches(void) { int ix, i; unsigned char buf[ANSI_SAVE_SIZE]; char *t; ix = (ansi_save_ix + ANSI_SAVE_SIZE - ansi_save_cnt) % ANSI_SAVE_SIZE; for (i = 0; i < ansi_save_cnt; i++) { buf[i] = ansi_save_buf[(ix + i) % ANSI_SAVE_SIZE]; } t = memstr((char *)buf, expect_text, ansi_save_cnt, expect_len); if (t != CN) { ansi_save_cnt -= ((unsigned char *)t - buf) + expect_len; Free(expect_text); expect_text = CN; return True; } else return False; } /* Store an ANSI character for use by the Ansi action. */ void sms_store(unsigned char c) { if (sms == SN) return; /* Save the character in the buffer. */ ansi_save_buf[ansi_save_ix++] = c; ansi_save_ix %= ANSI_SAVE_SIZE; if (ansi_save_cnt < ANSI_SAVE_SIZE) ansi_save_cnt++; /* If a script or macro is waiting to match a string, check now. */ if (sms->state == SS_EXPECTING && expect_matches()) { RemoveTimeOut(sms->expect_id); sms->expect_id = 0L; sms->state = SS_INCOMPLETE; sms_continue(); } } /* Dump whatever ANSI data has been sent by the host since last called. */ void AnsiText_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { register int i; int ix; unsigned char c; char linebuf[ANSI_SAVE_SIZE * 4 + 1]; char *s = linebuf; if (!ansi_save_cnt) return; ix = (ansi_save_ix + ANSI_SAVE_SIZE - ansi_save_cnt) % ANSI_SAVE_SIZE; for (i = 0; i < ansi_save_cnt; i++) { c = ansi_save_buf[(ix + i) % ANSI_SAVE_SIZE]; if (!(c & ~0x1f)) switch (c) { case '\n': s += sprintf(s, "\\n"); break; case '\r': s += sprintf(s, "\\r"); break; case '\b': s += sprintf(s, "\\b"); break; default: s += sprintf(s, "\\%03o", c); break; } else if (c == '\\') s += sprintf(s, "\\\\"); else *s++ = (char)c; } *s = '\0'; action_output("%s", linebuf); ansi_save_cnt = 0; ansi_save_ix = 0; } /* Pause a script. */ void PauseScript_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { if (sms == SN || (sms->type != ST_PEER && sms->type != ST_CHILD)) { popup_an_error("%s can only be called from a script", action_name(PauseScript_action)); return; } sms->state = SS_PAUSED; } /* Continue a script. */ void ContinueScript_action(Widget w, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (check_usage(ContinueScript_action, *num_params, 1, 1) < 0) return; /* * If this is a nested script, this action aborts the current script, * then applies to the previous one. */ if (w == (Widget)NULL && sms_depth > 1) sms_pop(False); /* Continue the previous script. */ if (sms == SN || sms->state != SS_PAUSED) { popup_an_error("%s: No script waiting", action_name(ContinueScript_action)); sms_continue(); return; } action_output("%s", params[0]); sms->state = SS_RUNNING; sms_continue(); } /* Stop listening to stdin. */ void CloseScript_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (sms != SN && (sms->type == ST_PEER || sms->type == ST_CHILD)) { /* Close this script. */ sms->state = SS_CLOSING; script_prompt(True); /* If nonzero status passed, fail the calling script. */ if (*num_params > 0 && atoi(params[0]) != 0 && sms->next != SN) { sms->next->success = False; if (sms->is_login) host_disconnect(True); } } else popup_an_error("%s can only be called from a script", action_name(CloseScript_action)); } /* Execute an arbitrary shell command. */ void Execute_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int status; if (check_usage(Execute_action, *num_params, 1, 1) < 0) return; status = system(params[0]); if (status < 0) { popup_an_errno(errno, "system(\"%s\") failed", params[0]); } else if (status != 0) { #if defined(_WIN32) /*[*/ popup_an_error("system(\"%s\") exited with status %d\n", params[0], status); #else /*][*/ if (WIFEXITED(status)) { popup_an_error("system(\"%s\") exited with status %d\n", params[0], WEXITSTATUS(status)); } else if (WIFSIGNALED(status)) { popup_an_error("system(\"%s\") killed by signal %d\n", params[0], WTERMSIG(status)); } else if (WIFSTOPPED(status)) { popup_an_error("system(\"%s\") stopped by signal %d\n", params[0], WSTOPSIG(status)); } #endif /*]*/ } } /* Timeout for Expect action. */ static void expect_timed_out(void) { if (sms == SN || sms->state != SS_EXPECTING) return; Free(expect_text); expect_text = CN; popup_an_error("%s: Timed out", action_name(Expect_action)); sms->expect_id = 0L; sms->state = SS_INCOMPLETE; sms->success = False; if (sms->is_login) host_disconnect(True); sms_continue(); } /* Timeout for Wait action. */ static void wait_timed_out(void) { /* If they just wanted a delay, succeed. */ if (sms->state == SS_TIME_WAIT) { sms->success = True; sms->state = SS_INCOMPLETE; sms_continue(); return; } /* Pop up the error message. */ popup_an_error("%s: Timed out", action_name(Wait_action)); /* Forget the ID. */ sms->wait_id = 0L; /* If this is a login macro, it has failed. */ if (sms->is_login) host_disconnect(True); sms->success = False; sms->state = SS_INCOMPLETE; /* Let the script proceed. */ sms_continue(); } /* Wait for a string from the host (ANSI mode only). */ void Expect_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int tmo; /* Verify the environment and parameters. */ if (sms == SN || sms->state != SS_RUNNING) { popup_an_error("%s can only be called from a script or macro", action_name(Expect_action)); return; } if (check_usage(Expect_action, *num_params, 1, 2) < 0) return; if (!IN_ANSI) { popup_an_error("%s is valid only when connected in ANSI mode", action_name(Expect_action)); } if (*num_params == 2) { tmo = atoi(params[1]); if (tmo < 1 || tmo > 600) { popup_an_error("%s: Invalid timeout: %s", action_name(Expect_action), params[1]); return; } } else tmo = 30; /* See if the text is there already; if not, wait for it. */ expand_expect(params[0]); if (!expect_matches()) { sms->expect_id = AddTimeOut(tmo * 1000, expect_timed_out); sms->state = SS_EXPECTING; } /* else allow sms to proceed */ } #if defined(X3270_MENUS) /*[*/ /* "Execute an Action" menu option */ static Widget execute_action_shell = (Widget)NULL; /* Callback for "OK" button on execute action popup */ static void execute_action_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *text; text = XawDialogGetValueString((Widget)client_data); XtPopdown(execute_action_shell); if (!text) return; push_macro(text, False); } void execute_action_option(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { if (execute_action_shell == NULL) execute_action_shell = create_form_popup("ExecuteAction", execute_action_callback, (XtCallbackProc)NULL, FORM_NO_CC); popup_popup(execute_action_shell, XtGrabExclusive); } #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ # if defined(_WIN32) /*[*/ /* Let the system pick a TCP port to bind to, and listen on it. */ static unsigned short pick_port(int *sp) { int s; struct sockaddr_in sin; socklen_t len; s = socket(PF_INET, SOCK_STREAM, 0); if (s < 0) { popup_an_error("socket: %s\n", win32_strerror(GetLastError())); return 0; } (void) memset(&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) { popup_an_error("bind: %s\n", win32_strerror(GetLastError())); closesocket(s); return 0; } len = sizeof(sin); if (getsockname(s, (struct sockaddr *)&sin, &len) < 0) { popup_an_error("getsockaddr: %s\n", win32_strerror(GetLastError())); closesocket(s); return 0; } if (listen(s, 10) < 0) { popup_an_error("listen: %s\n", win32_strerror(GetLastError())); closesocket(s); return 0; } *sp = s; return ntohs(sin.sin_port); } # endif /*]*/ /* "Script" action, runs a script as a child process. */ # if !defined(_WIN32) /*[*/ void Script_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int inpipe[2]; int outpipe[2]; if (*num_params < 1) { popup_an_error("%s requires at least one argument", action_name(Script_action)); return; } /* Create a new script description. */ if (!sms_push(ST_CHILD)) return; /* * Create pipes and stdout stream for the script process. * inpipe[] is read by x3270, written by the script * outpipe[] is written by x3270, read by the script */ if (pipe(inpipe) < 0) { sms_pop(False); popup_an_error("pipe() failed"); return; } if (pipe(outpipe) < 0) { (void) close(inpipe[0]); (void) close(inpipe[1]); sms_pop(False); popup_an_error("pipe() failed"); return; } if ((sms->outfile = fdopen(outpipe[1], "w")) == (FILE *)NULL) { (void) close(inpipe[0]); (void) close(inpipe[1]); (void) close(outpipe[0]); (void) close(outpipe[1]); sms_pop(False); popup_an_error("fdopen() failed"); return; } (void) SETLINEBUF(sms->outfile); /* Fork and exec the script process. */ if ((sms->pid = fork_child()) < 0) { (void) close(inpipe[0]); (void) close(inpipe[1]); (void) close(outpipe[0]); sms_pop(False); popup_an_error("fork() failed"); return; } /* Child processing. */ if (sms->pid == 0) { char **argv; Cardinal i; char env_buf[2][32]; /* Clean up the pipes. */ (void) close(outpipe[1]); (void) close(inpipe[0]); /* Export the names of the pipes into the environment. */ (void) sprintf(env_buf[0], "X3270OUTPUT=%d", outpipe[0]); (void) putenv(env_buf[0]); (void) sprintf(env_buf[1], "X3270INPUT=%d", inpipe[1]); (void) putenv(env_buf[1]); /* Set up arguments. */ argv = (char **)Malloc((*num_params + 1) * sizeof(char *)); for (i = 0; i < *num_params; i++) argv[i] = params[i]; argv[i] = CN; /* Exec. */ (void) execvp(params[0], argv); (void) fprintf(stderr, "exec(%s) failed\n", params[0]); (void) _exit(1); } /* Clean up our ends of the pipes. */ sms->infd = inpipe[0]; (void) close(inpipe[1]); (void) close(outpipe[0]); /* Enable input. */ script_enable(); /* Set up to reap the child's exit status. */ ++children; } # endif /*]*/ # if defined(_WIN32) /*[*/ /* "Script" action, runs a script as a child process. */ void Script_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { int s = -1; unsigned short port = 0; HANDLE hevent; char *pe; STARTUPINFO startupinfo; PROCESS_INFORMATION process_information; char *args; Cardinal i; if (*num_params < 1) { popup_an_error("%s requires at least one argument", action_name(Script_action)); return; } /* Set up X3270PORT for the child process. */ port = pick_port(&s); if (port == 0) return; hevent = CreateEvent(NULL, FALSE, FALSE, NULL); if (hevent == NULL) { popup_an_error("CreateEvent: %s", win32_strerror(GetLastError())); closesocket(s); return; } if (WSAEventSelect(s, hevent, FD_ACCEPT) != 0) { popup_an_error("WSAEventSelect: %s", win32_strerror(GetLastError())); closesocket(s); return; } pe = xs_buffer("X3270PORT=%d", port); putenv(pe); Free(pe); /* Start the child process. */ (void) memset(&startupinfo, '\0', sizeof(STARTUPINFO)); startupinfo.cb = sizeof(STARTUPINFO); (void) memset(&process_information, '\0', sizeof(PROCESS_INFORMATION)); args = NewString(params[0]); for (i = 1; i < *num_params; i++) { char *t; if (strchr(params[i], ' ') != NULL && params[i][0] != '"' && params[i][strlen(params[i]) - 1] != '"') t = xs_buffer("%s \"%s\"", args, params[i]); else t = xs_buffer("%s %s", args, params[i]); Free(args); args = t; } if (CreateProcess( NULL, args, NULL, NULL, FALSE, 0, NULL, NULL, &startupinfo, &process_information) == 0) { popup_an_error("CreateProcess(%s) failed: %s", params[0], win32_strerror(GetLastError())); Free(args); return; } else { Free(args); CloseHandle(process_information.hThread); } /* Create a new script description. */ if (!sms_push(ST_CHILD)) return; sms->child_handle = process_information.hProcess; sms->inhandle = hevent; sms->infd = s; /* * Wait for the child process to exit. * Note that this is an asynchronous event -- exits for multiple * children can happen in any order. */ sms->exit_id = AddInput((int)process_information.hProcess, child_exited); /* Allow the child script to connect back to us. */ sms->listen_id = AddInput((int)hevent, child_socket_connection); /* Enable input. */ script_enable(); } # endif /*]*/ #endif /*]*/ /* "Macro" action, explicitly invokes a named macro. */ void Macro_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { struct macro_def *m; if (check_usage(Macro_action, *num_params, 1, 1) < 0) return; for (m = macro_defs; m != (struct macro_def *)NULL; m = m->next) { if (!strcmp(m->name, params[0])) { push_macro(m->action, False); return; } } popup_an_error("no such macro: '%s'", params[0]); } #if defined(X3270_SCRIPT) /*[*/ /* * Idle cancellation: cancels the idle command if the current sms or any sms * that called it caused an error. */ void cancel_if_idle_command(void) { sms_t *s; for (s = sms; s != NULL; s = s->next) { if (s->type == ST_IDLE) { cancel_idle_timer(); s->idle_error = True; trace_dsn("Cancelling idle command"); break; } } } #endif /*]*/ #if defined(X3270_PRINTER) /*[*/ /* "Printer" action, starts or stops a printer session. */ void Printer_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (check_usage(Printer_action, *num_params, 1, 2) < 0) return; if (!strcasecmp(params[0], "Start")) { printer_start((*num_params > 1)? params[1] : CN); } else if (!strcasecmp(params[0], "Stop")) { if (*num_params != 1) { popup_an_error("%s: Extra argument(s)", action_name(Printer_action)); return; } printer_stop(); } else { popup_an_error("%s: Argument must Start or Stop", action_name(Printer_action)); } } #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ /* Abort all running scripts. */ void abort_script(void) { while (sms != SN) { #if !defined(_WIN32) /*[*/ if (sms->type == ST_CHILD && sms->pid > 0) (void) kill(sms->pid, SIGTERM); #endif /*]*/ sms_pop(True); } } /* "Abort" action, stops pending scripts. */ void Abort_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { #if !defined(_WIN32) /*[*/ child_ignore_output(); #endif /*]*/ abort_script(); } #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ /* Accumulate command execution time. */ void sms_accumulate_time(struct timeval *t0, struct timeval *t1) { if (sms != SN) { sms->accumulated = True; sms->msec += (t1->tv_sec - t0->tv_sec) * 1000 + (t1->tv_usec - t0->tv_usec + 500) / 1000; #if defined(DEBUG_ACCUMULATE) /*[*/ printf("%s: accumulated %lu msec\n", ST_NAME, sms->msec); #endif /*]*/ } } #endif /*]*/ void Query_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { static struct { char *name; const char *(*fn)(void); } queries[] = { { "BindPluName", net_query_bind_plu_name }, { "ConnectionState", net_query_connection_state }, { "Host", net_query_host }, { "LuName", net_query_lu_name }, { CN, NULL } }; int i; switch (*num_params) { case 0: for (i = 0; queries[i].name != CN; i++) { action_output("%s: %s", queries[i].name, (*queries[i].fn)()); } break; case 1: for (i = 0; queries[i].name != CN; i++) { if (!strcasecmp(params[0], queries[i].name)) { const char *s; s = (*queries[i].fn)(); action_output("%s\n", *s? s: " "); return; } } popup_an_error("%s: Unknown parameter", action_name(Query_action)); break; default: popup_an_error("%s: Requires 0 or 1 arguments", action_name(Query_action)); break; } } #if defined(X3270_SCRIPT) /*[*/ #if defined(X3270_PLUGIN) /*[*/ /* Plugin facility. */ static void no_plugin(void) { if (plugin_timeout_id != 0L) { RemoveTimeOut(plugin_timeout_id); plugin_timeout_id = 0L; } if (plugin_input_id != 0L) { RemoveInput(plugin_input_id); plugin_input_id = 0L; } if (plugin_inpipe != -1) { close(plugin_inpipe); plugin_inpipe = -1; } if (plugin_outpipe != -1) { close(plugin_outpipe); plugin_outpipe = -1; } plugin_pid = 0; plugin_started = False; prb_cnt = 0; ptq_first = ptq_last = 0; } /* Read a response from the plugin process. */ static void plugin_input(void) { int nr; char *nl; nr = read(plugin_inpipe, plugin_buf + prb_cnt, PRB_MAX - prb_cnt); if (nr < 0) { if (plugin_complain) popup_an_errno(errno, "Read from plugin command"); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Read from plugin command: %s", strerror(errno)); } no_plugin(); return; } if (nr == 0) { if (plugin_complain) popup_an_error("Plugin command exited"); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin command exited"); } no_plugin(); return; } nl = memchr(plugin_buf + prb_cnt, '\n', nr); if (nl != NULL) { int xtra; *nl = '\0'; trace_dsn("From plugin: %s\n", plugin_buf); switch (plugin_tq[ptq_first]) { case PLUGIN_INIT: if (strcasecmp(plugin_buf, "ok")) { if (plugin_complain) popup_an_error("Plugin start-up " "failed:\n%s", plugin_buf); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin start-up " "failed:\n%s", plugin_buf); } no_plugin(); } plugin_started = True; plugin_complain = True; break; case PLUGIN_AID: /* feedback is just for trace/debug purposes */ break; case PLUGIN_CMD: default: push_macro(plugin_buf, False); break; } ptq_first = (ptq_first + 1) % PLUGIN_QMAX; if (ptq_first == ptq_last) { RemoveInput(plugin_input_id); plugin_input_id = 0L; RemoveTimeOut(plugin_timeout_id); plugin_timeout_id = 0L; } xtra = (plugin_buf + prb_cnt + nr - 1) - nl; if (xtra > 0) (void) memmove(plugin_buf, nl + 1, xtra); prb_cnt = xtra; return; } prb_cnt += nr; if (prb_cnt >= PRB_MAX) { if (plugin_complain) popup_an_error("Plugin command buffer overflow"); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin command buffer overflow"); } no_plugin(); } } /* Plugin process took too long to answer. Kill it. */ static void plugin_timeout(void) { char *s; switch (plugin_tq[ptq_first]) { case PLUGIN_INIT: s = "init"; break; case PLUGIN_AID: s = "AID"; break; case PLUGIN_CMD: default: s = "command"; break; } if (plugin_complain) popup_an_error("Plugin %s timed out", s); else { plugin_start_failed = True; (void) snprintf(plugin_start_error, PRB_MAX, "Plugin %s timed out", s); } plugin_timeout_id = 0L; no_plugin(); } static void plugin_start(char *command, char *argv[], Boolean complain) { int inpipe[2]; int outpipe[2]; char *s; plugin_complain = complain; if (pipe(inpipe) < 0) { if (complain) popup_an_errno(errno, "pipe"); else { (void) snprintf(plugin_start_error, PRB_MAX, "pipe: %s", strerror(errno)); plugin_start_failed = True; } return; } if (pipe(outpipe) < 0) { if (complain) popup_an_errno(errno, "pipe"); else { (void) snprintf(plugin_start_error, PRB_MAX, "pipe: %s", strerror(errno)); plugin_start_failed = True; } close(inpipe[0]); close(inpipe[1]); return; } switch ((plugin_pid = fork())) { case -1: if (complain) popup_an_errno(errno, "fork"); else { (void) snprintf(plugin_start_error, PRB_MAX, "fork: %s", strerror(errno)); plugin_start_failed = True; } plugin_pid = 0; return; case 0: /* child */ (void) dup2(outpipe[0], 0); close(outpipe[0]); close(outpipe[1]); (void) dup2(inpipe[1], 1); close(inpipe[1]); (void) dup2(1, 2); close(inpipe[0]); if (execvp(command, argv) < 0) { char *buf = xs_buffer("%s: %s\n", command, strerror(errno)); write(2, buf, strlen(buf)); exit(1); } break; default: /* parent */ break; } /* Parent. */ plugin_inpipe = inpipe[0]; (void) fcntl(plugin_inpipe, F_SETFD, FD_CLOEXEC); close(inpipe[1]); plugin_outpipe = outpipe[1]; (void) fcntl(plugin_outpipe, F_SETFD, FD_CLOEXEC); close(outpipe[0]); prb_cnt = 0; /* Tell the plug-in what we're about. */ s = xs_buffer("x3270 host %s\n", current_host); (void) write(plugin_outpipe, s, strlen(s)); Free(s); /* Wait for the 'ok' from the child. */ ptq_first = ptq_last = 0; plugin_tq[ptq_last] = PLUGIN_INIT; ptq_last = (ptq_last + 1) % PLUGIN_QMAX; plugin_input_id = AddInput(plugin_inpipe, plugin_input); plugin_timeout_id = AddTimeOut(PLUGINSTART_SECS * 1000, plugin_timeout); plugin_started = False; } void Plugin_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (*num_params == 0) { popup_an_error("%s: Requires 1 or more arguments", action_name(Plugin_action)); return; } if (!strcasecmp(params[0], "Start")) { char *args[MAX_START_ARGS]; int i; if (*num_params < 2 && !appres.plugin_command) { popup_an_error("%s Start: Command name required", action_name(Plugin_action)); return; } if (plugin_pid) { popup_an_error("%s: Already running", action_name(Plugin_action)); return; } if (!CONNECTED) { popup_an_error("%s: Not connected", action_name(Plugin_action)); return; } if (*num_params >= 2) { for (i = 1; i < *num_params && i < MAX_START_ARGS; i++) args[i - 1] = params[i]; args[i - 1] = NULL; plugin_start(params[1], args, True); } else { plugin_start_appres(True); } } else if (!strcasecmp(params[0], "Stop")) { if (*num_params != 1) { popup_an_error("%s Stop: Extra argument(s)", action_name(Plugin_action)); return; } if (plugin_pid) { close(plugin_outpipe); plugin_outpipe = -1; close(plugin_inpipe); plugin_inpipe = -1; plugin_pid = 0; } } else if (!strcasecmp(params[0], "Command")) { int i; int s; if (*num_params < 2) { popup_an_error("%s Command: additional argument(s) " "required", action_name(Plugin_action)); return; } if (!plugin_pid) { if (plugin_start_failed) { popup_an_error("%s Command: Start failed:\n%s", action_name(Plugin_action), plugin_start_error); plugin_start_failed = False; } else { popup_an_error("%s Command: Not running", action_name(Plugin_action)); } return; } if (PLUGIN_BACKLOG >= PLUGIN_QMAX) { popup_an_error("%s Command: Plugin queue overflow", action_name(Plugin_action)); return; } if (write(plugin_outpipe, "command ", 8) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } for (i = 1; i < *num_params; i++) { if (i > 1) { if (write(plugin_outpipe, " ", 1) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } } if (write(plugin_outpipe, params[i], strlen(params[i])) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } } if (write(plugin_outpipe, "\n", 1) < 0) { popup_an_errno(errno, "write"); no_plugin(); return; } do_read_buffer(NULL, 0, ea_buf, plugin_outpipe); plugin_tq[ptq_last] = PLUGIN_CMD; ptq_last = (ptq_last + 1) % PLUGIN_QMAX; if (plugin_timeout_id != 0L) RemoveTimeOut(plugin_timeout_id); if (plugin_input_id == 0L) plugin_input_id = AddInput(plugin_inpipe, plugin_input); s = PLUGIN_BACKLOG * PLUGINWAIT_SECS; if (!plugin_started && s < PLUGINSTART_SECS) s = PLUGINSTART_SECS; plugin_timeout_id = AddTimeOut(s * 1000, plugin_timeout); } else { popup_an_error("%s: First argument must be Start, Stop or " "Command", action_name(Plugin_action)); return; } } /* Send an AID event to the plugin process. */ void plugin_aid(unsigned char aid) { char buf[64]; int s; /* No plugin, nothing to do. */ if (!plugin_pid) return; /* Make sure we don't overrun the response queue. */ if (PLUGIN_BACKLOG >= PLUGIN_QMAX) { trace_dsn("Plugin queue overflow\n"); return; } /* Write the AID and cursor position. */ snprintf(buf, sizeof(buf), "aid %s\n", see_aid(aid)); write(plugin_outpipe, buf, strlen(buf)); /* Write the screen buffer. */ do_read_buffer(NULL, 0, ea_buf, plugin_outpipe); /* * Wait for the response. * If we were already waiting for a response, wait a bit longer. */ plugin_tq[ptq_last] = PLUGIN_AID; ptq_last = (ptq_last + 1) % PLUGIN_QMAX; if (plugin_timeout_id != 0L) RemoveTimeOut(plugin_timeout_id); if (plugin_input_id == 0L) plugin_input_id = AddInput(plugin_inpipe, plugin_input); s = PLUGIN_BACKLOG * PLUGINWAIT_SECS; if (!plugin_started && s < PLUGINSTART_SECS) s = PLUGINSTART_SECS; plugin_timeout_id = AddTimeOut(s * 1000, plugin_timeout); } #else /*][*/ void Plugin_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { /* Do nothing. */ } #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ /* * Bell action, used by scripts to ring the console bell and enter a comment * into the trace log. */ void Bell_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { ring_bell(); } #endif /*]*/ #endif /*]*/ void Source_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int fd; action_debug(Source_action, event, params, num_params); if (check_usage(Source_action, *num_params, 1, 1) < 0) return; fd = open(params[0], O_RDONLY); if (fd < 0) { popup_an_errno(errno, "%s", params[0]); return; } push_file(fd); } ibm-3270-3.3.10ga4/ws3270/resolver.c0000644000175000017500000002254511254565704016151 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resolver.c * Hostname resolution. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #include #include #include #include #else /*][*/ #include #include #endif /*]*/ #include #include "resolverc.h" #include "w3miscc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ #if defined(_WIN32) /*[*/ static int win32_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res); static void win32_freeaddrinfo(struct addrinfo *res); static int win32_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags); #undef getaddrinfo #define getaddrinfo win32_getaddrinfo #undef freeaddrinfo #define freeaddrinfo win32_freeaddrinfo #undef getnameinfo #define getnameinfo win32_getnameinfo #endif /*]*/ /* * Resolve a hostname and port. * Returns 0 for success, -1 for fatal error (name resolution impossible), * -2 for simple error (cannot resolve the name). */ int resolve_host_and_port(const char *host, char *portname, int ix, unsigned short *pport, struct sockaddr *sa, socklen_t *sa_len, char *errmsg, int em_len, int *lastp) { #if defined(_WIN32) /*[*/ OSVERSIONINFO info; Boolean has_getaddrinfo = False; /* Figure out if we should use gethostbyname() or getaddrinfo(). */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); exit(1); } has_getaddrinfo = (info.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS && info.dwMajorVersion >= 5 && info.dwMinorVersion >= 1); if (has_getaddrinfo) #endif /*]*/ { #if defined(AF_INET6) /*[*/ struct addrinfo hints, *res0, *res; int rc; /* * Use getaddrinfo() to resolve the hostname and port * together. */ (void) memset(&hints, '\0', sizeof(struct addrinfo)); hints.ai_flags = 0; hints.ai_family = PF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; rc = getaddrinfo(host, portname, &hints, &res0); if (rc != 0) { snprintf(errmsg, em_len, "%s/%s:\n%s", host, portname? portname: "(none)", gai_strerror(rc)); return -2; } res = res0; /* * Return the reqested element. * Hopefully the list will not change between calls. */ while (ix && res->ai_next != NULL) { res = res->ai_next; ix--; } if (res == NULL) { /* Ran off the end? The list must have changed. */ snprintf(errmsg, em_len, "%s/%s:\n%s", host, portname? portname: "(none)", gai_strerror(EAI_AGAIN)); freeaddrinfo(res); return -2; } switch (res->ai_family) { case AF_INET: *pport = ntohs(((struct sockaddr_in *) res->ai_addr)->sin_port); break; case AF_INET6: *pport = ntohs(((struct sockaddr_in6 *) res->ai_addr)->sin6_port); break; default: snprintf(errmsg, em_len, "%s:\nunknown family %d", host, res->ai_family); freeaddrinfo(res); return -1; } (void) memcpy(sa, res->ai_addr, res->ai_addrlen); *sa_len = res->ai_addrlen; if (lastp != NULL) *lastp = (res->ai_next == NULL); freeaddrinfo(res0); #endif /*]*/ } #if defined(_WIN32) /*[*/ else #endif /*]*/ #if defined(_WIN32) || !defined(AF_INET6) /*[*/ { struct hostent *hp; struct servent *sp; unsigned short port; unsigned long lport; char *ptr; struct sockaddr_in *sin = (struct sockaddr_in *)sa; /* Get the port number. */ lport = strtoul(portname, &ptr, 0); if (ptr == portname || *ptr != '\0' || lport == 0L || lport & ~0xffff) { if (!(sp = getservbyname(portname, "tcp"))) { snprintf(errmsg, em_len, "Unknown port number or service: %s", portname); return -1; } port = sp->s_port; } else port = htons((unsigned short)lport); *pport = ntohs(port); /* Use gethostbyname() to resolve the hostname. */ hp = gethostbyname(host); if (hp == (struct hostent *) 0) { sin->sin_family = AF_INET; sin->sin_addr.s_addr = inet_addr(host); if (sin->sin_addr.s_addr == (unsigned long)-1) { snprintf(errmsg, em_len, "Unknown host:\n%s", host); return -2; } if (lastp != NULL) *lastp = True; } else { int i; for (i = 0; i < ix; i++) { if (hp->h_addr_list[i] == NULL) { snprintf(errmsg, em_len, "Unknown host:\n%s", host); return -2; } } sin->sin_family = hp->h_addrtype; (void) memmove(&sin->sin_addr, hp->h_addr_list[i], hp->h_length); if (lastp != NULL) *lastp = (hp->h_addr_list[i + 1] == NULL); } sin->sin_port = port; *sa_len = sizeof(struct sockaddr_in); } #endif /*]*/ return 0; } /* * Resolve a sockaddr into a numeric hostname and port. * Returns 0 for success, -1 for failure. */ int numeric_host_and_port(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, char *errmsg, int em_len) { #if defined(_WIN32) /*[*/ OSVERSIONINFO info; Boolean has_getnameinfo = False; /* Figure out if we should use inet_ntoa() or getnameinfo(). */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); exit(1); } has_getnameinfo = (info.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS && info.dwMajorVersion >= 5 && info.dwMinorVersion >= 1); if (has_getnameinfo) #endif /*]*/ { #if defined(AF_INET6) /*[*/ int rc; /* Use getnameinfo(). */ rc = getnameinfo(sa, salen, host, hostlen, serv, servlen, NI_NUMERICHOST | NI_NUMERICSERV); if (rc != 0) { snprintf(errmsg, em_len, "%s", gai_strerror(rc)); return -1; } #endif /*]*/ } #if defined(_WIN32) /*[*/ else #endif /*]*/ #if defined(_WIN32) || !defined(AF_INET6) /*[*/ { struct sockaddr_in *sin = (struct sockaddr_in *)sa; /* Use inet_ntoa() and snprintf(). */ snprintf(host, hostlen, "%s", inet_ntoa(sin->sin_addr)); snprintf(serv, servlen, "%u", ntohs(sin->sin_port)); } #endif /*]*/ return 0; } #if defined(_WIN32) /*[*/ /* * Windows-specific versions of getaddrinfo(), freeaddrinfo() and * gai_strerror(). * The symbols are resolved from ws2_32.dll at run-time, instead of * by linking against ws2_32.lib, because they are not defined on all * versions of Windows. */ typedef int (__stdcall *gai_fn)(const char *, const char *, const struct addrinfo *, struct addrinfo **); typedef void (__stdcall *fai_fn)(struct addrinfo*); typedef int (__stdcall *gni_fn)(const struct sockaddr *, socklen_t, char *, size_t, char *, size_t, int); /* Resolve a symbol in ws2_32.dll. */ static FARPROC get_ws2_32(const char *symbol) { static HMODULE ws2_32_handle = NULL; FARPROC p; if (ws2_32_handle == NULL) { ws2_32_handle = LoadLibrary("ws2_32.dll"); if (ws2_32_handle == NULL) { fprintf(stderr, "Can't load ws2_32.dll: %s\n", win32_strerror(GetLastError())); exit(1); } } p = GetProcAddress(ws2_32_handle, symbol); if (p == NULL) { fprintf(stderr, "Can't resolve %s in ws2_32.dll: %s\n", symbol, win32_strerror(GetLastError())); exit(1); } return p; } static int win32_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res) { static FARPROC gai_p = NULL; if (gai_p == NULL) gai_p = get_ws2_32("getaddrinfo"); return ((gai_fn)gai_p)(node, service, hints, res); } static void win32_freeaddrinfo(struct addrinfo *res) { static FARPROC fai_p = NULL; if (fai_p == NULL) fai_p = get_ws2_32("freeaddrinfo"); ((fai_fn)fai_p)(res); } static int win32_getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags) { static FARPROC gni_p = NULL; if (gni_p == NULL) gni_p = get_ws2_32("getnameinfo"); return ((gni_fn)gni_p)(sa, salen, host, hostlen, serv, servlen, flags); } #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/winversc.h0000644000175000017500000000312111254565675016151 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ extern int is_nt; extern int has_ipv6; extern int get_version_info(void); ibm-3270-3.3.10ga4/ws3270/menubarc.h0000644000175000017500000000453711254565704016112 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * menubarc.h * Global declarations for menubar.c. */ #if defined(X3270_MENUS) /*[*/ extern void HandleMenu_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) /*[*/ extern void menubar_as_set(Boolean sensitive); #else /*][*/ #define menubar_as_set(n) #endif /*]*/ extern void menubar_init(Widget container, Dimension overall_width, Dimension current_width); extern void menubar_keypad_changed(void); extern Dimension menubar_qheight(Dimension container_width); extern void menubar_resize(Dimension width); extern void menubar_retoggle(struct toggle *t); #else /*][*/ #define menubar_as_set(n) #define menubar_init(a, b, c) #define menubar_keypad_changed() #define menubar_qheight(n) 0 #define menubar_resize(n) #define menubar_retoggle(t) #define HandleMenu_action ignore_action #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/keypadc.h0000644000175000017500000000517611254565704015736 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * keypadc.h * Global declarations for keypad.c. */ extern Boolean keypad_changed; #if defined(X3270_KEYPAD) /*[*/ extern enum kp_placement { kp_right, kp_left, kp_bottom, kp_integral, kp_inside_right } kp_placement; extern void keypad_first_up(void); extern Widget keypad_init(Widget container, Dimension voffset, Dimension screen_width, Boolean floating, Boolean vert); extern void keypad_move(void); extern void keypad_placement_init(void); extern void keypad_popup_init(void); extern Dimension keypad_qheight(void); extern void keypad_set_keymap(void); extern void keypad_set_temp_keymap(XtTranslations trans); extern void keypad_shift(void); extern Dimension min_keypad_width(void); extern void keypad_popdown(Boolean *was_up); extern void keypad_popup(void); #else /*][*/ #define keypad_qheight() 0 #define min_keypad_width() 0 #define keypad_first_up() #define keypad_init(a, b, c, d, e) 0 #define keypad_move() #define keypad_placement_init() #define keypad_popup_init() #define keypad_set_keymap() #define keypad_set_temp_keymap(n) #define keypad_shift() #define keypad_popdown(w) #define keypad_popup() #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/ftc.h0000644000175000017500000000605311254565704015065 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * ftc.h * Global declarations for ft.c. */ #if defined(X3270_FT) /*[*/ extern Boolean ascii_flag; extern Boolean cr_flag; extern unsigned long ft_length; extern FILE *ft_local_file; extern char *ft_local_filename; enum ft_state { FT_NONE, /* No transfer in progress */ FT_AWAIT_ACK, /* IND$FILE sent, awaiting acknowledgement message */ FT_RUNNING, /* Ack received, data flowing */ FT_ABORT_WAIT, /* Awaiting chance to send an abort */ FT_ABORT_SENT /* Abort sent; awaiting response */ }; extern Boolean ft_last_cr; extern enum ft_state ft_state; extern Boolean remap_flag; extern unsigned char i_ft2asc[], i_asc2ft[]; #if defined(X3270_DBCS) /*[*/ enum ftd { FT_DBCS_NONE, FT_DBCS_SO, FT_DBCS_LEFT }; extern enum ftd ft_dbcs_state; extern unsigned char ft_dbcs_byte1; extern Boolean ft_last_dbcs; #endif /*]*/ extern void ft_aborting(void); extern void ft_complete(const char *errmsg); extern void ft_init(void); extern void ft_running(Boolean is_cut); extern void ft_update_length(void); extern void PA_dialog_focus_action(Widget w, XEvent *event, String *parms, Cardinal *num_parms); extern void PA_dialog_next_action(Widget w, XEvent *event, String *parms, Cardinal *num_parms); extern void popup_ft(Widget w, XtPointer call_parms, XtPointer call_data); extern void Transfer_action(Widget w, XEvent *event, String *parms, Cardinal *num_parms); #if !defined(X3270_MENUS) /*[*/ extern void ft_init(void); #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/unicode_dbcsc.h0000644000175000017500000000345011254565704017073 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #if defined(X3270_DBCS) /*[*/ extern ucs4_t ebcdic_dbcs_to_unicode(ebc_t e, unsigned flags); extern ebc_t unicode_to_ebcdic_dbcs(ucs4_t u); extern int set_uni_dbcs(const char *csname, const char **codepage, const char **display_charsets); extern void charset_list_dbcs(void); #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/trace_ds.c0000644000175000017500000006714311254565704016077 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * trace_ds.c * 3270 data stream tracing. * */ #include "globals.h" #if defined(X3270_TRACE) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #include #include #include "3270ds.h" #include "appres.h" #include "objects.h" #include "resources.h" #include "ctlr.h" #include "ansic.h" #include "charsetc.h" #include "childc.h" #include "ctlrc.h" #include "menubarc.h" #include "popupsc.h" #include "printc.h" #include "savec.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utf8c.h" #include "utilc.h" #include "w3miscc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ /* Maximum size of a tracefile header. */ #define MAX_HEADER_SIZE (10*1024) /* Minimum size of a trace file. */ #define MIN_TRACEFILE_SIZE (64*1024) #define MIN_TRACEFILE_SIZE_NAME "64K" /* System calls which may not be there. */ #if !defined(HAVE_FSEEKO) /*[*/ #define fseeko(s, o, w) fseek(s, (long)o, w) #define ftello(s) (off_t)ftell(s) #endif /*]*/ /* Statics */ static int dscnt = 0; #if !defined(_WIN32) /*[*/ static int tracewindow_pid = -1; #else /*][*/ static HANDLE tracewindow_handle = NULL; #endif /*]*/ static FILE *tracef = NULL; static FILE *tracef_pipe = NULL; static char *tracef_bufptr = CN; static off_t tracef_size = 0; static off_t tracef_max = 0; static char *tracef_midpoint_header = CN; static off_t tracef_midpoint = 0; static void vwtrace(const char *fmt, va_list args); static void wtrace(const char *fmt, ...); static char *create_tracefile_header(const char *mode); static void stop_tracing(void); /* Globals */ struct timeval ds_ts; Boolean trace_skipping = False; char *tracefile_name = NULL; /* display a (row,col) */ const char * rcba(int baddr) { static char buf[16]; (void) sprintf(buf, "(%d,%d)", baddr/COLS + 1, baddr%COLS + 1); return buf; } /* Data Stream trace print, handles line wraps */ static char *tdsbuf = CN; #define TDS_LEN 75 /* * This function is careful to do line breaks based on wchar_t's, not * bytes, so multi-byte characters are traced properly. * However, it doesn't know that DBCS characters are two columns wide, so it * will get those wrong and break too late. To get that right, it needs some * sort of function to tell it that a wchar_t is double-width, which we lack at * the moment. * * If wchar_t's are Unicode, it could perhaps use some sort of heuristic based * on which plane the character is in. */ static void trace_ds_s(char *s, Boolean can_break) { int len = strlen(s); int len0 = len + 1; int wlen; Boolean nl = False; wchar_t *w_buf; /* wchar_t translation of s */ wchar_t *w_cur; /* current wchar_t pointer */ wchar_t *w_chunk; /* transient wchar_t buffer */ char *mb_chunk; /* transient multibyte buffer */ if (!toggled(DS_TRACE) || tracef == NULL || !len) return; /* Allocate buffers for chunks of output data. */ mb_chunk = Malloc(len0); w_chunk = (wchar_t *)Malloc(len0 * sizeof(wchar_t)); /* Convert the input string to wchar_t's. */ w_buf = (wchar_t *)Malloc(len0 * sizeof(wchar_t)); wlen = mbstowcs(w_buf, s, len); if (wlen < 0) Error("trace_ds_s: mbstowcs failed"); w_cur = w_buf; /* Check for a trailing newline. */ if (len && s[len-1] == '\n') { wlen--; nl = True; } if (!can_break && dscnt + wlen >= 75) { wtrace("...\n... "); dscnt = 0; } while (dscnt + wlen >= 75) { int plen = 75-dscnt; int mblen; if (plen) { memcpy(w_chunk, w_cur, plen * sizeof(wchar_t)); w_chunk[plen] = 0; mblen = wcstombs(mb_chunk, w_chunk, len0); if (mblen <= 0) Error("trace_ds_s: wcstombs 1 failed"); } else { mb_chunk[0] = '\0'; mblen = 0; } wtrace("%.*s ...\n... ", mblen, mb_chunk); dscnt = 4; w_cur += plen; wlen -= plen; } if (wlen) { int mblen; memcpy(w_chunk, w_cur, wlen * sizeof(wchar_t)); w_chunk[wlen] = 0; mblen = wcstombs(mb_chunk, w_chunk, len0); if (mblen <= 0) Error("trace_ds_s: wcstombs 2 failed"); wtrace("%.*s", mblen, mb_chunk); dscnt += wlen; } if (nl) { wtrace("\n"); dscnt = 0; } Free(mb_chunk); Free(w_buf); Free(w_chunk); } void trace_ds(const char *fmt, ...) { va_list args; if (!toggled(DS_TRACE) || tracef == NULL) return; va_start(args, fmt); /* allocate buffer */ if (tdsbuf == CN) tdsbuf = Malloc(4096); /* print out remainder of message */ (void) vsprintf(tdsbuf, fmt, args); trace_ds_s(tdsbuf, True); va_end(args); } void trace_ds_nb(const char *fmt, ...) { va_list args; if (!toggled(DS_TRACE) || tracef == NULL) return; va_start(args, fmt); /* allocate buffer */ if (tdsbuf == CN) tdsbuf = Malloc(4096); /* print out remainder of message */ (void) vsprintf(tdsbuf, fmt, args); trace_ds_s(tdsbuf, False); va_end(args); } /* Conditional event trace. */ void trace_event(const char *fmt, ...) { va_list args; if (!toggled(EVENT_TRACE) || tracef == NULL) return; /* print out message */ va_start(args, fmt); vwtrace(fmt, args); va_end(args); } /* Conditional data stream trace, without line splitting. */ void trace_dsn(const char *fmt, ...) { va_list args; if (!toggled(DS_TRACE) || tracef == NULL) return; /* print out message */ va_start(args, fmt); vwtrace(fmt, args); va_end(args); } /* * Write to the trace file, varargs style. * This is the only function that actually does output to the trace file -- * all others are wrappers around this function. */ static void vwtrace(const char *fmt, va_list args) { if (tracef_bufptr != CN) { tracef_bufptr += vsprintf(tracef_bufptr, fmt, args); } else if (tracef != NULL) { int n2w, nw; char buf[16384]; buf[0] = 0; (void) vsnprintf(buf, sizeof(buf), fmt, args); buf[sizeof(buf) - 1] = '\0'; n2w = strlen(buf); nw = fwrite(buf, n2w, 1, tracef); if (nw == 1) { tracef_size += nw; fflush(tracef); } else { if (errno != EPIPE #if defined(EILSEQ) /*[*/ && errno != EILSEQ #endif /*]*/ ) popup_an_errno(errno, "Write to trace file failed"); #if defined(EILSEQ) /*[*/ if (errno != EILSEQ) #endif /*]*/ stop_tracing(); } if (tracef_pipe != NULL) { nw = fwrite(buf, n2w, 1, tracef_pipe); if (nw != 1) { (void) fclose(tracef_pipe); tracef_pipe = NULL; } else { fflush(tracef_pipe); } } } } /* Write to the trace file. */ static void wtrace(const char *fmt, ...) { if (tracef != NULL) { va_list args; va_start(args, fmt); vwtrace(fmt, args); va_end(args); } } static void stop_tracing(void) { if (tracef != NULL && tracef != stdout) (void) fclose(tracef); tracef = NULL; if (tracef_pipe != NULL) { (void) fclose(tracef_pipe); tracef_pipe = NULL; } if (toggled(DS_TRACE)) { toggle_toggle(&appres.toggle[DS_TRACE]); menubar_retoggle(&appres.toggle[DS_TRACE]); } if (toggled(EVENT_TRACE)) { toggle_toggle(&appres.toggle[EVENT_TRACE]); menubar_retoggle(&appres.toggle[EVENT_TRACE]); } } /* Check for a trace file rollover event. */ void trace_rollover_check(void) { if (tracef == NULL || tracef_max == 0) return; /* See if we've reached the midpoint. */ if (!tracef_midpoint) { if (tracef_size >= tracef_max / 2) { tracef_midpoint = ftello(tracef); #if defined(ROLLOVER_DEBUG) /*[*/ printf("midpoint is %lld\n", tracef_midpoint); #endif /*]*/ tracef_midpoint_header = create_tracefile_header("rolled over"); } return; } /* See if we've reached a rollover point. */ if (tracef_size >= tracef_max) { char buf[8*1024]; int nr; off_t rpos = tracef_midpoint, wpos = 0; if (!tracef_midpoint) Error("Tracefile rollover logic error"); #if defined(ROLLOVER_DEBUG) /*[*/ printf("rolling over at %lld\n", tracef_size); #endif /*]*/ /* * Overwrite the file with the midpoint header, and the data * which follows the midpoint. */ if (fseeko(tracef, 0, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(0) failed"); stop_tracing(); return; } wtrace("%s", tracef_midpoint_header); wpos = ftello(tracef); if (wpos < 0) { popup_an_errno(errno, "trace file ftello() failed"); stop_tracing(); return; } if (fseeko(tracef, rpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld) failed", (long)rpos); stop_tracing(); return; } #if defined(ROLLOVER_DEBUG) /*[*/ printf("rpos = %lld, wpos = %lld\n", rpos, wpos); #endif /*]*/ while ((nr = fread(buf, 1, sizeof(buf), tracef)) > 0) { rpos = ftello(tracef); if (fseeko(tracef, wpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld) " "failed", (long)wpos); stop_tracing(); return; } if (fwrite(buf, nr, 1, tracef) < 1) break; wpos = ftello(tracef); if (wpos < 0) { popup_an_errno(errno, "trace file ftello() " "failed"); stop_tracing(); return; } if (fseeko(tracef, rpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld)" "failed", (long)rpos); stop_tracing(); return; } } if (ferror(tracef)) { popup_an_errno(errno, "trace file rollover copy " "failed"); stop_tracing(); return; } #if defined(ROLLOVER_DEBUG) /*[*/ printf("final wpos = %lld\n", wpos); #endif /*]*/ #if !defined(_MSC_VER) /*[*/ if (ftruncate(fileno(tracef), wpos) < 0) { popup_an_errno(errno, "trace file ftruncate(%ld) " "failed", (long)wpos); stop_tracing(); return; } #endif /*]*/ if (fseeko(tracef, wpos, SEEK_SET) < 0) { popup_an_errno(errno, "trace file fseeko(%ld) failed", (long)wpos); stop_tracing(); return; } #if defined(_MSC_VER) /*[*/ SetEndOfFile((HANDLE)_get_osfhandle(fileno(tracef))); #endif /*]*/ tracef_size = wpos; tracef_midpoint = wpos; Replace(tracef_midpoint_header, create_tracefile_header("rolled over")); } } #if defined(X3270_DISPLAY) /*[*/ static Widget trace_shell = (Widget)NULL; #endif /*]*/ static int trace_reason; /* Create a trace file header. */ static char * create_tracefile_header(const char *mode) { char *buf; time_t clk; /* Create a buffer and redirect output. */ buf = Malloc(MAX_HEADER_SIZE); tracef_bufptr = buf; /* Display current status */ clk = time((time_t *)0); wtrace("Trace %s %s", mode, ctime(&clk)); wtrace(" Version: %s\n", build); wtrace(" %s\n", build_options()); save_yourself(); wtrace(" Command: %s\n", command_string); wtrace(" Model %s, %d rows x %d cols", model_name, maxROWS, maxCOLS); #if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) /*[*/ wtrace(", %s display", appres.mono ? "monochrome" : "color"); #endif /*]*/ if (appres.extended) wtrace(", extended data stream"); wtrace(", %s emulation", appres.m3279 ? "color" : "monochrome"); wtrace(", %s charset", get_charset_name()); if (appres.apl_mode) wtrace(", APL mode"); wtrace("\n"); #if !defined(_WIN32) /*[*/ wtrace(" Locale codeset: %s\n", locale_codeset); #else /*][*/ wtrace(" ANSI codepage: %d\n", GetACP()); # if defined(WS3270) /*[*/ wtrace(" Local codepage: %d\n", appres.local_cp); # endif /*]*/ #endif /*]*/ wtrace(" Host codepage: %d", (int)(cgcsgid & 0xffff)); #if defined(X3270_DBCS) /*[*/ if (dbcs) wtrace("+%d", (int)(cgcsgid_dbcs & 0xffff)); #endif /*]*/ wtrace("\n"); if (CONNECTED) wtrace(" Connected to %s, port %u\n", current_host, current_port); /* Snap the current TELNET options. */ if (net_snap_options()) { wtrace(" TELNET state:\n"); trace_netdata('<', obuf, obptr - obuf); } /* Dump the screen contents and modes into the trace file. */ if (CONNECTED) { /* * Note that if the screen is not formatted, we do not * attempt to save what's on it. However, if we're in * 3270 SSCP-LU or NVT mode, we'll do a dummy, empty * write to ensure that the display is in the right * mode. */ if (formatted) { wtrace(" Screen contents (3270):\n"); obptr = obuf; #if defined(X3270_TN3270E) /*[*/ (void) net_add_dummy_tn3270e(); #endif /*]*/ ctlr_snap_buffer(); space3270out(2); net_add_eor(obuf, obptr - obuf); obptr += 2; trace_netdata('<', obuf, obptr - obuf); obptr = obuf; #if defined(X3270_TN3270E) /*[*/ (void) net_add_dummy_tn3270e(); #endif /*]*/ if (ctlr_snap_modes()) { wtrace(" 3270 modes:\n"); space3270out(2); net_add_eor(obuf, obptr - obuf); obptr += 2; trace_netdata('<', obuf, obptr - obuf); } } #if defined(X3270_TN3270E) /*[*/ else if (IN_E) { obptr = obuf; (void) net_add_dummy_tn3270e(); wtrace(" Screen contents (%s):\n", IN_SSCP? "SSCP-LU": "TN3270E-NVT"); if (IN_SSCP) ctlr_snap_buffer_sscp_lu(); else if (IN_ANSI) ansi_snap(); space3270out(2); net_add_eor(obuf, obptr - obuf); obptr += 2; trace_netdata('<', obuf, obptr - obuf); if (IN_ANSI) { wtrace(" NVT modes:\n"); obptr = obuf; ansi_snap_modes(); trace_netdata('<', obuf, obptr - obuf); } } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ else if (IN_ANSI) { obptr = obuf; wtrace(" Screen contents (NVT):\n"); ansi_snap(); trace_netdata('<', obuf, obptr - obuf); wtrace(" NVT modes:\n"); obptr = obuf; ansi_snap_modes(); trace_netdata('<', obuf, obptr - obuf); } #endif /*]*/ } wtrace(" Data stream:\n"); /* Return the buffer. */ tracef_bufptr = CN; return buf; } /* Calculate the tracefile maximum size. */ static void get_tracef_max(void) { static Boolean calculated = False; char *ptr; Boolean bad = False; if (calculated) return; calculated = True; if (appres.trace_file_size == CN || !strcmp(appres.trace_file_size, "0") || !strncasecmp(appres.trace_file_size, "none", strlen(appres.trace_file_size))) { tracef_max = 0; return; } tracef_max = strtoul(appres.trace_file_size, &ptr, 0); if (tracef_max == 0 || ptr == appres.trace_file_size || *(ptr + 1)) { bad = True; } else switch (*ptr) { case 'k': case 'K': tracef_max *= 1024; break; case 'm': case 'M': tracef_max *= 1024 * 1024; break; case '\0': break; default: bad = True; break; } if (bad) { tracef_max = MIN_TRACEFILE_SIZE; #if defined(X3270_DISPLAY) /*[*/ popup_an_info("Invalid %s '%s', assuming " MIN_TRACEFILE_SIZE_NAME, ResTraceFileSize, appres.trace_file_size); #endif /*]*/ } else if (tracef_max < MIN_TRACEFILE_SIZE) { tracef_max = MIN_TRACEFILE_SIZE; } } /* Parse the name '/dev/fd', so we can simulate it. */ static int get_devfd(const char *pathname) { unsigned long fd; char *ptr; if (strncmp(pathname, "/dev/fd/", 8)) return -1; fd = strtoul(pathname + 8, &ptr, 10); if (ptr == pathname + 8 || *ptr != '\0' || fd < 0) return -1; return fd; } /* Callback for "OK" button on trace popup */ static void tracefile_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { char *tfn = CN; int devfd = -1; #if defined(X3270_DISPLAY) /*[*/ int pipefd[2]; Boolean just_piped = False; #endif /*]*/ char *buf; #if defined(X3270_DISPLAY) /*[*/ if (w) tfn = XawDialogGetValueString((Widget)client_data); else #endif /*]*/ tfn = (char *)client_data; tfn = do_subst(tfn, True, True); if (strchr(tfn, '\'') || ((int)strlen(tfn) > 0 && tfn[strlen(tfn)-1] == '\\')) { popup_an_error("Illegal file name: %s", tfn); Free(tfn); return; } tracef_max = 0; tracef_midpoint = 0; Replace(tracef_midpoint_header, CN); if (!strcmp(tfn, "stdout")) { tracef = stdout; } else { #if defined(X3270_DISPLAY) /*[*/ FILE *pipefile = NULL; if (!strcmp(tfn, "none") || !tfn[0]) { just_piped = True; if (!appres.trace_monitor) { popup_an_error("Must specify a trace file " "name"); free(tfn); return; } } if (appres.trace_monitor) { if (pipe(pipefd) < 0) { popup_an_errno(errno, "pipe() failed"); Free(tfn); return; } pipefile = fdopen(pipefd[1], "w"); if (pipefile == NULL) { popup_an_errno(errno, "fdopen() failed"); (void) close(pipefd[0]); (void) close(pipefd[1]); Free(tfn); return; } (void) SETLINEBUF(pipefile); (void) fcntl(pipefd[1], F_SETFD, 1); } if (just_piped) { tracef = pipefile; } else #endif /*]*/ { #if defined(X3270_DISPLAY) /*[*/ tracef_pipe = pipefile; #endif /*]*/ /* Get the trace file maximum. */ get_tracef_max(); /* If there's a limit, the file can't exist. */ if (tracef_max && !access(tfn, R_OK)) { popup_an_error("Trace file '%s' already exists", tfn); #if defined(X3270_DISPLAY) /*[*/ fclose(tracef_pipe); (void) close(pipefd[0]); (void) close(pipefd[1]); #endif /*]*/ Free(tfn); return; } /* Open and configure the file. */ if ((devfd = get_devfd(tfn)) >= 0) tracef = fdopen(dup(devfd), "a"); else tracef = fopen(tfn, tracef_max? "w+": "a"); if (tracef == (FILE *)NULL) { popup_an_errno(errno, "%s", tfn); #if defined(X3270_DISPLAY) /*[*/ fclose(tracef_pipe); (void) close(pipefd[0]); (void) close(pipefd[1]); #endif /*]*/ Free(tfn); return; } Replace(tracefile_name, NewString(tfn)); (void) SETLINEBUF(tracef); #if !defined(_WIN32) /*[*/ (void) fcntl(fileno(tracef), F_SETFD, 1); #endif /*]*/ } } #if defined(X3270_DISPLAY) /*[*/ /* Start the monitor window */ if (tracef != stdout && appres.trace_monitor) { switch (tracewindow_pid = fork_child()) { case 0: /* child process */ { char cmd[64]; (void) sprintf(cmd, "cat <&%d", pipefd[0]); (void) execlp("xterm", "xterm", "-title", just_piped? "trace": tfn, "-sb", "-e", "/bin/sh", "-c", cmd, CN); } (void) perror("exec(xterm) failed"); _exit(1); default: /* parent */ (void) close(pipefd[0]); ++children; break; case -1: /* error */ popup_an_errno(errno, "fork() failed"); break; } } #endif /*]*/ #if defined(_WIN32) && defined(C3270) /*[*/ /* Start the monitor window. */ if (tracef != stdout && appres.trace_monitor && is_installed) { STARTUPINFO startupinfo; PROCESS_INFORMATION process_information; char *path; char *args; (void) memset(&startupinfo, '\0', sizeof(STARTUPINFO)); startupinfo.cb = sizeof(STARTUPINFO); startupinfo.lpTitle = tfn; (void) memset(&process_information, '\0', sizeof(PROCESS_INFORMATION)); path = xs_buffer("%scatf.exe", instdir); args = xs_buffer("\"%scatf.exe\" \"%s\"", instdir, tfn); if (CreateProcess( path, args, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &startupinfo, &process_information) == 0) { popup_an_error("CreateProcess(%s) failed: %s", path, win32_strerror(GetLastError())); Free(path); Free(args); } else { Free(path); Free(args); tracewindow_handle = process_information.hProcess; CloseHandle(process_information.hThread); } } #endif /*]*/ Free(tfn); /* We're really tracing, turn the flag on. */ appres.toggle[trace_reason].value = True; appres.toggle[trace_reason].changed = True; menubar_retoggle(&appres.toggle[trace_reason]); /* Display current status. */ buf = create_tracefile_header("started"); wtrace("%s", buf); Free(buf); #if defined(X3270_DISPLAY) /*[*/ if (w) XtPopdown(trace_shell); #endif /*]*/ } #if defined(X3270_DISPLAY) /*[*/ /* Callback for "No File" button on trace popup */ static void no_tracefile_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { tracefile_callback((Widget)NULL, "", PN); XtPopdown(trace_shell); } #endif /*]*/ /* Open the trace file. */ static void tracefile_on(int reason, enum toggle_type tt) { char *tracefile_buf = NULL; char *tracefile; if (tracef != (FILE *)NULL) return; trace_reason = reason; if (appres.secure && tt != TT_INITIAL) { tracefile_callback((Widget)NULL, "none", PN); return; } if (appres.trace_file) tracefile = appres.trace_file; else { #if defined(_WIN32) /*[*/ tracefile_buf = xs_buffer("%s%sx3trc.%u.txt", (appres.trace_dir != CN)? appres.trace_dir: myappdata, (appres.trace_dir != CN)? "\\": "", getpid()); #else /*][*/ tracefile_buf = xs_buffer("%s/x3trc.%u", appres.trace_dir, getpid()); #endif /*]*/ tracefile = tracefile_buf; } #if defined(X3270_DISPLAY) /*[*/ if (tt == TT_INITIAL || tt == TT_ACTION) #endif /*]*/ { tracefile_callback((Widget)NULL, tracefile, PN); if (tracefile_buf != NULL) Free(tracefile_buf); return; } #if defined(X3270_DISPLAY) /*[*/ if (trace_shell == NULL) { trace_shell = create_form_popup("trace", tracefile_callback, appres.trace_monitor? no_tracefile_callback: NULL, FORM_NO_WHITE); XtVaSetValues(XtNameToWidget(trace_shell, ObjDialog), XtNvalue, tracefile, NULL); } /* Turn the toggle _off_ until the popup succeeds. */ appres.toggle[reason].value = False; appres.toggle[reason].changed = True; popup_popup(trace_shell, XtGrabExclusive); #endif /*]*/ if (tracefile_buf != NULL) Free(tracefile_buf); } /* Close the trace file. */ static void tracefile_off(void) { time_t clk; clk = time((time_t *)0); wtrace("Trace stopped %s", ctime(&clk)); #if !defined(_WIN32) /*[*/ if (tracewindow_pid != -1) (void) kill(tracewindow_pid, SIGKILL); tracewindow_pid = -1; #else /*][*/ if (tracewindow_handle != NULL) { TerminateProcess(tracewindow_handle, 0); CloseHandle(tracewindow_handle); tracewindow_handle = NULL; } #endif /*]*/ stop_tracing(); } void toggle_dsTrace(struct toggle *t _is_unused, enum toggle_type tt) { /* If turning on trace and no trace file, open one. */ if (toggled(DS_TRACE) && tracef == NULL) tracefile_on(DS_TRACE, tt); /* If turning off trace and not still tracing events, close the trace file. */ else if (!toggled(DS_TRACE) && !toggled(EVENT_TRACE)) tracefile_off(); if (toggled(DS_TRACE)) (void) gettimeofday(&ds_ts, (struct timezone *)NULL); } void toggle_eventTrace(struct toggle *t _is_unused, enum toggle_type tt) { /* If turning on event debug, and no trace file, open one. */ if (toggled(EVENT_TRACE) && tracef == NULL) tracefile_on(EVENT_TRACE, tt); /* If turning off event debug, and not tracing the data stream, close the trace file. */ else if (!toggled(EVENT_TRACE) && !toggled(DS_TRACE)) tracefile_off(); } /* Screen trace file support. */ #if defined(X3270_DISPLAY) /*[*/ static Widget screentrace_shell = (Widget)NULL; #endif /*]*/ static FILE *screentracef = (FILE *)0; /* * Screen trace function, called when the host clears the screen. */ static void do_screentrace(void) { register int i; if (fprint_screen(screentracef, P_TEXT, 0, NULL)) { for (i = 0; i < COLS; i++) (void) fputc('=', screentracef); (void) fputc('\n', screentracef); } } void trace_screen(void) { trace_skipping = False; if (!toggled(SCREEN_TRACE) || !screentracef) return; do_screentrace(); } /* Called from ANSI emulation code to log a single character. */ void trace_char(char c) { if (!toggled(SCREEN_TRACE) || !screentracef) return; (void) fputc(c, screentracef); } /* * Called when disconnecting in ANSI mode, to finish off the trace file * and keep the next screen clear from re-recording the screen image. * (In a gross violation of data hiding and modularity, trace_skipping is * manipulated directly in ctlr_clear()). */ void trace_ansi_disc(void) { int i; (void) fputc('\n', screentracef); for (i = 0; i < COLS; i++) (void) fputc('=', screentracef); (void) fputc('\n', screentracef); trace_skipping = True; } /* * Screen tracing callback. * Returns True for success, False for failure. */ static Boolean screentrace_cb(char *tfn) { tfn = do_subst(tfn, True, True); screentracef = fopen(tfn, "a"); if (screentracef == (FILE *)NULL) { popup_an_errno(errno, "%s", tfn); Free(tfn); return False; } Free(tfn); (void) SETLINEBUF(screentracef); #if !defined(_WIN32) /*[*/ (void) fcntl(fileno(screentracef), F_SETFD, 1); #endif /*]*/ /* We're really tracing, turn the flag on. */ appres.toggle[SCREEN_TRACE].value = True; appres.toggle[SCREEN_TRACE].changed = True; menubar_retoggle(&appres.toggle[SCREEN_TRACE]); return True; } #if defined(X3270_DISPLAY) /*[*/ /* Callback for "OK" button on screentrace popup */ static void screentrace_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { if (screentrace_cb(XawDialogGetValueString((Widget)client_data))) XtPopdown(screentrace_shell); } /* Callback for second "OK" button on screentrace popup */ static void onescreen_callback(Widget w, XtPointer client_data, XtPointer call_data _is_unused) { char *tfn; if (w) tfn = XawDialogGetValueString((Widget)client_data); else tfn = (char *)client_data; tfn = do_subst(tfn, True, True); screentracef = fopen(tfn, "a"); if (screentracef == (FILE *)NULL) { popup_an_errno(errno, "%s", tfn); XtFree(tfn); return; } (void) fcntl(fileno(screentracef), F_SETFD, 1); XtFree(tfn); /* Save the current image, once. */ do_screentrace(); /* Close the file, we're done. */ (void) fclose(screentracef); screentracef = (FILE *)NULL; if (w) XtPopdown(screentrace_shell); } #endif /*]*/ void toggle_screenTrace(struct toggle *t _is_unused, enum toggle_type tt) { char *tracefile_buf = NULL; char *tracefile; if (toggled(SCREEN_TRACE)) { if (appres.screentrace_file) tracefile = appres.screentrace_file; else { #if defined(_WIN32) /*[*/ tracefile_buf = xs_buffer("%s%sx3scr.%u.txt", (appres.trace_dir != CN)? appres.trace_dir: myappdata, (appres.trace_dir != CN)? "\\": "", getpid()); #else /*][*/ tracefile_buf = xs_buffer("%s/x3scr.%u", appres.trace_dir, getpid()); #endif /*]*/ tracefile = tracefile_buf; } if (tt == TT_INITIAL || tt == TT_ACTION) { (void) screentrace_cb(NewString(tracefile)); if (tracefile_buf != NULL) Free(tracefile_buf); return; } #if defined(X3270_DISPLAY) /*[*/ if (screentrace_shell == NULL) { screentrace_shell = create_form_popup("screentrace", screentrace_callback, onescreen_callback, FORM_NO_WHITE); XtVaSetValues(XtNameToWidget(screentrace_shell, ObjDialog), XtNvalue, tracefile, NULL); } appres.toggle[SCREEN_TRACE].value = False; appres.toggle[SCREEN_TRACE].changed = True; popup_popup(screentrace_shell, XtGrabExclusive); #endif /*]*/ } else { if (ctlr_any_data() && !trace_skipping) do_screentrace(); (void) fclose(screentracef); } if (tracefile_buf != NULL) Free(tracefile_buf); } #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/Examples/0000755000175000017500000000000011261530022015671 5ustar bastianbastianibm-3270-3.3.10ga4/ws3270/Examples/cms_cmd.expect0000755000175000017500000001121611254565671020540 0ustar bastianbastian#!/bin/sh # \ exec tclsh "$0" ${1+"$@"} # Copyright (c) 2000-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Add the Expect module. package require Expect # Read in the glue functions. source x3270_glue.expect # Pluck the username, password and command from the command line. if {$argc != 4} { puts stderr "Usage: $argv0 hostname username password command" exit 1 } set hostname [lindex $argv 0] set username [lindex $argv 1] set password [lindex $argv 2] set command [lindex $argv 3] # Procedure to wait for a READ prompt from CMS or CP. proc waitread {} { Snap Save while {[Snap Ascii [expr [Snap Rows]-1] [expr [Snap Cols]-17] 4] != "READ"} { Snap Wait Output } } # Procedure to check for the CMS "Ready" prompt. # Returns its row number, or -1 for "MORE..." state, and leaves a screen with # data to read in the Snap buffer. proc cmd_done {} { global verbose Snap Save while {1} { if {[Snap Ascii [expr [Snap Rows]-1] [expr [Snap Cols]-20] 7] == "MORE..."} { if {$verbose} {puts "MORE..."} return -1 } set i [expr [Snap Rows]-2] while {$i >= 0} { set text [Snap Ascii $i 0 [Snap Cols]] switch -regexp $text { "Ready; T=.*" {return $i} "Ready\(.*\); T=.*" { error [Snap Ascii [expr $i-1] 0 \ [Snap Cols]] } "^ *\$" {} default { if {$verbose} {puts "Incomplete $i '[string trimright $text]'"} set i 0 } } incr i -1 } Snap Wait Output } } # Execute a command, return the output. proc cms_cmd {text} { global verbose # Clear the screen. Clear # Send the command. String "$text\n" # 'first' is the row where the first line of output will appear. For # the first screenful it's 1; after that it's 0. set first 1 # r is the result. set r {} while {1} { # Wait for a screenful. set d [cmd_done] # Dump out what's there. set i $first set first 0 if {$d < 0} {set last [expr [Snap Rows]-2]} {set last $d} while {$i < $last} { set r [linsert $r end [string trimright \ [Snap Ascii $i 0 [Snap Cols]]]] incr i } if {$d >= 0} {break} # Clear the screen and go around again. Clear } return $r } # Start of main procedure. # Set 'verbose' to 1 to get debug output from the glue functions. set verbose 0 # Start ws3270 Start # Setverbose 1 # Connect to the host and wait for an input field. Connect $hostname Wait InputField # Log in and wait for CP READ or VM READ mode. String "$username\t$password\n" waitread # If we can't log on, we're hosed. if {[Ascii 1 11 7] == "Already"} { puts stderr "Can't run -- already logged in." exit 1 } # If we're in CP mode, which means we disconnected last time, boot CMS. if {[Ascii [expr [Rows]-1] [expr [Cols]-20] 2] == "CP"} { Clear String "i cms\n" waitread } # Enter an empty command to get a CMS prompt. If we don't do this, there will # be a Ready prompt as the first line of output below. Clear Enter cmd_done # Get the output of the user's command and display it. if {[catch {cms_cmd $command} result]} { puts stderr $result set rc 1 } { for {set i 0} {$i < [llength $result]} {incr i} { puts [lindex $result $i] } set rc 0 } # Log off, and wait for the host to hang up on us, so we don't unintentionally # create a disconnected session. Clear if {! [catch {String "logoff\n"}]} {Wait Disconnect} exit $rc ibm-3270-3.3.10ga4/ws3270/ctlr.c0000644000175000017500000020560611254565704015255 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * ctlr.c * This module handles interpretation of the 3270 data stream and * maintenance of the 3270 device state. It was split out from * screen.c, which handles X operations. * */ #include "globals.h" #include #include "3270ds.h" #include "appres.h" #include "ctlr.h" #include "screen.h" #include "resources.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "ft_cutc.h" #include "ft_dftc.h" #include "hostc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "screenc.h" #include "scrollc.h" #include "seec.h" #include "selectc.h" #include "sfc.h" #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" /* Externals: kybd.c */ extern unsigned char aid; /* Globals */ int ROWS, COLS; int maxROWS, maxCOLS; int defROWS, defCOLS; int altROWS, altCOLS; int ov_rows, ov_cols; Boolean ov_auto; int model_num; int cursor_addr, buffer_addr; Boolean screen_alt = False; /* alternate screen? */ Boolean is_altbuffer = False; struct ea *ea_buf; /* 3270 device buffer */ /* ea_buf[-1] is the dummy default field attribute */ struct ea *aea_buf; /* alternate 3270 extended attribute buffer */ Boolean formatted = False; /* set in screen_disp */ Boolean screen_changed = False; int first_changed = -1; int last_changed = -1; unsigned char reply_mode = SF_SRM_FIELD; int crm_nattr = 0; unsigned char crm_attr[16]; Boolean dbcs = False; /* Statics */ static unsigned char *zero_buf; /* empty buffer, for area clears */ static void set_formatted(void); static void ctlr_blanks(void); static Boolean trace_primed = False; static unsigned char default_fg; static unsigned char default_bg; static unsigned char default_gr; static unsigned char default_cs; static unsigned char default_ic; static void ctlr_half_connect(Boolean ignored); static void ctlr_connect(Boolean ignored); static int sscp_start; static void ticking_stop(void); static void ctlr_add_ic(int baddr, unsigned char ic); /* * code_table is used to translate buffer addresses and attributes to the 3270 * datastream representation */ static unsigned char code_table[64] = { 0x40, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, }; #define IsBlank(c) ((c == EBC_null) || (c == EBC_space)) #define ALL_CHANGED { \ screen_changed = True; \ if (IN_ANSI) { first_changed = 0; last_changed = ROWS*COLS; } } #define REGION_CHANGED(f, l) { \ screen_changed = True; \ if (IN_ANSI) { \ if (first_changed == -1 || f < first_changed) first_changed = f; \ if (last_changed == -1 || l > last_changed) last_changed = l; } } #define ONE_CHANGED(n) REGION_CHANGED(n, n+1) #define DECODE_BADDR(c1, c2) \ ((((c1) & 0xC0) == 0x00) ? \ (((c1) & 0x3F) << 8) | (c2) : \ (((c1) & 0x3F) << 6) | ((c2) & 0x3F)) #define ENCODE_BADDR(ptr, addr) { \ if ((ROWS * COLS) > 0x1000) { \ *(ptr)++ = ((addr) >> 8) & 0x3F; \ *(ptr)++ = (addr) & 0xFF; \ } else { \ *(ptr)++ = code_table[((addr) >> 6) & 0x3F]; \ *(ptr)++ = code_table[(addr) & 0x3F]; \ } \ } /* * Initialize the emulated 3270 hardware. */ void ctlr_init(unsigned cmask _is_unused) { /* Register callback routines. */ register_schange(ST_HALF_CONNECT, ctlr_half_connect); register_schange(ST_CONNECT, ctlr_connect); register_schange(ST_3270_MODE, ctlr_connect); } /* * Reinitialize the emulated 3270 hardware. */ void ctlr_reinit(unsigned cmask) { static struct ea *real_ea_buf = NULL; static struct ea *real_aea_buf = NULL; if (cmask & MODEL_CHANGE) { /* Allocate buffers */ if (real_ea_buf) Free((char *)real_ea_buf); real_ea_buf = (struct ea *)Calloc(sizeof(struct ea), (maxROWS * maxCOLS) + 1); ea_buf = real_ea_buf + 1; if (real_aea_buf) Free((char *)real_aea_buf); real_aea_buf = (struct ea *)Calloc(sizeof(struct ea), (maxROWS * maxCOLS) + 1); aea_buf = real_aea_buf + 1; Replace(zero_buf, (unsigned char *)Calloc(sizeof(struct ea), maxROWS * maxCOLS)); cursor_addr = 0; buffer_addr = 0; } } /* * Deal with the relationships between model numbers and rows/cols. */ void set_rows_cols(int mn, int ovc, int ovr) { int defmod; if (ovc < 0 || ovr < 0) { ov_auto = True; ovc = 0; ovr = 0; } switch (mn) { case 2: maxCOLS = MODEL_2_COLS; maxROWS = MODEL_2_ROWS; model_num = 2; break; case 3: maxCOLS = MODEL_3_COLS; maxROWS = MODEL_3_ROWS; model_num = 3; break; case 4: #if defined(RESTRICT_3279) /*[*/ if (appres.m3279) { popup_an_error("No 3279 Model 4\nDefaulting to model 3"); set_rows_cols("3", ovc, ovr); return; } #endif /*]*/ maxCOLS = MODEL_4_COLS; maxROWS = MODEL_4_ROWS; model_num = 4; break; case 5: #if defined(RESTRICT_3279) /*[*/ if (appres.m3279) { popup_an_error("No 3279 Model 5\nDefaulting to model 3"); set_rows_cols(3, ovc, ovr); return; } #endif /*]*/ maxCOLS = MODEL_5_COLS; maxROWS = MODEL_5_ROWS; model_num = 5; break; default: #if defined(RESTRICT_3279) /*[*/ defmod = appres.m3279 ? 3 : 4; #else /*][*/ defmod = 4; #endif popup_an_error("Unknown model: %d\nDefaulting to %d", mn, defmod); set_rows_cols(defmod, ovc, ovr); return; } /* Apply oversize. */ ov_cols = 0; ov_rows = 0; if (ovc != 0 || ovr != 0) { if (ovc <= 0 || ovr <= 0) popup_an_error("Invalid %s %dx%d:\nNegative or zero", ResOversize, ovc, ovr); else if (ovc * ovr >= 0x4000) popup_an_error("Invalid %s %dx%d:\nToo big", ResOversize, ovc, ovr); else if (ovc > 0 && ovc < maxCOLS) popup_an_error("Invalid %s cols (%d):\nLess than model %d cols (%d)", ResOversize, ovc, model_num, maxCOLS); else if (ovr > 0 && ovr < maxROWS) popup_an_error("Invalid %s rows (%d):\nLess than model %d rows (%d)", ResOversize, ovr, model_num, maxROWS); else { ov_cols = maxCOLS = ovc; ov_rows = maxROWS = ovr; } } /* Update the model name. */ (void) sprintf(model_name, "327%c-%d%s", appres.m3279 ? '9' : '8', model_num, appres.extended ? "-E" : ""); /* Make sure that the current rows/cols are still 24x80. */ COLS = defCOLS = MODEL_2_COLS; ROWS = defROWS = MODEL_2_ROWS; screen_alt = False; /* Set the defaults for the alternate screen size. */ altROWS = maxROWS; altCOLS = maxCOLS; } /* * Set the formatted screen flag. A formatted screen is a screen that * has at least one field somewhere on it. */ static void set_formatted(void) { register int baddr; formatted = False; baddr = 0; do { if (ea_buf[baddr].fa) { formatted = True; break; } INC_BA(baddr); } while (baddr != 0); } /* * Called when a host is half connected. */ static void ctlr_half_connect(Boolean ignored _is_unused) { ticking_start(True); } /* * Called when a host connects, disconnects, or changes ANSI/3270 modes. */ static void ctlr_connect(Boolean ignored _is_unused) { ticking_stop(); status_untiming(); if (ever_3270) { ea_buf[-1].fa = FA_PRINTABLE | FA_MODIFY; aea_buf[-1].fa = FA_PRINTABLE | FA_MODIFY; } else { ea_buf[-1].fa = FA_PRINTABLE | FA_PROTECT; aea_buf[-1].fa = FA_PRINTABLE | FA_PROTECT; } if (!IN_3270 || (IN_SSCP && (kybdlock & KL_OIA_TWAIT))) { kybdlock_clr(KL_OIA_TWAIT, "ctlr_connect"); status_reset(); } default_fg = 0x00; default_bg = 0x00; default_gr = 0x00; default_cs = 0x00; default_ic = 0x00; reply_mode = SF_SRM_FIELD; crm_nattr = 0; /* On disconnect, reset the default and alternate dimensions. */ if (!CONNECTED) { defROWS = MODEL_2_ROWS; defCOLS = MODEL_2_COLS; altROWS = maxROWS; altCOLS = maxCOLS; ctlr_erase(False); } } /* * Find the buffer address of the field attribute for a given buffer address. * Returns -1 if the screen isn't formatted. */ int find_field_attribute(int baddr) { int sbaddr; if (!formatted) return -1; sbaddr = baddr; do { if (ea_buf[baddr].fa) return baddr; DEC_BA(baddr); } while (baddr != sbaddr); return -1; } /* * Find the field attribute for the given buffer address. Return its address * rather than its value. */ unsigned char get_field_attribute(register int baddr) { return ea_buf[find_field_attribute(baddr)].fa; } /* * Find the field attribute for the given buffer address, bounded by another * buffer address. Return the attribute in a parameter. * * Returns True if an attribute is found, False if boundary hit. */ Boolean get_bounded_field_attribute(register int baddr, register int bound, unsigned char *fa_out) { int sbaddr; if (!formatted) { *fa_out = ea_buf[-1].fa; return True; } sbaddr = baddr; do { if (ea_buf[baddr].fa) { *fa_out = ea_buf[baddr].fa; return True; } DEC_BA(baddr); } while (baddr != sbaddr && baddr != bound); /* Screen is unformatted (and 'formatted' is inaccurate). */ if (baddr == sbaddr) { *fa_out = ea_buf[-1].fa; return True; } /* Wrapped to boundary. */ return False; } /* * Given the address of a field attribute, return the address of the * extended attribute structure. */ struct ea * fa2ea(int baddr) { return &ea_buf[baddr]; } /* * Find the next unprotected field. Returns the address following the * unprotected attribute byte, or 0 if no nonzero-width unprotected field * can be found. */ int next_unprotected(int baddr0) { register int baddr, nbaddr; nbaddr = baddr0; do { baddr = nbaddr; INC_BA(nbaddr); if (ea_buf[baddr].fa && !FA_IS_PROTECTED(ea_buf[baddr].fa) && !ea_buf[nbaddr].fa) return nbaddr; } while (nbaddr != baddr0); return 0; } /* * Perform an erase command, which may include changing the (virtual) screen * size. */ void ctlr_erase(Boolean alt) { int newROWS, newCOLS; kybd_inhibit(False); ctlr_clear(True); /* Let a script go. */ sms_host_output(); if (alt) { newROWS = altROWS; newCOLS = altCOLS; } else { newROWS = defROWS; newCOLS = defCOLS; } if (alt == screen_alt && ROWS == newROWS && COLS == newCOLS) return; screen_disp(True); if (visible_control) { /* Blank the entire display. */ ctlr_blanks(); ROWS = maxROWS; COLS = maxCOLS; screen_disp(False); } ROWS = newROWS; COLS = newCOLS; if (visible_control) { /* Fill the active part of the screen with NULLs again. */ ctlr_clear(False); screen_disp(False); } screen_alt = alt; } /* * Interpret an incoming 3270 command. */ enum pds process_ds(unsigned char *buf, int buflen) { enum pds rv; if (!buflen) return PDS_OKAY_NO_OUTPUT; scroll_to_bottom(); trace_ds("< "); switch (buf[0]) { /* 3270 command */ case CMD_EAU: /* erase all unprotected */ case SNA_CMD_EAU: ctlr_erase_all_unprotected(); trace_ds("EraseAllUnprotected\n"); return PDS_OKAY_NO_OUTPUT; break; case CMD_EWA: /* erase/write alternate */ case SNA_CMD_EWA: ctlr_erase(True); trace_ds("EraseWriteAlternate"); if ((rv = ctlr_write(buf, buflen, True)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_EW: /* erase/write */ case SNA_CMD_EW: ctlr_erase(False); trace_ds("EraseWrite"); if ((rv = ctlr_write(buf, buflen, True)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_W: /* write */ case SNA_CMD_W: trace_ds("Write"); if ((rv = ctlr_write(buf, buflen, False)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_RB: /* read buffer */ case SNA_CMD_RB: trace_ds("ReadBuffer\n"); ctlr_read_buffer(aid); return PDS_OKAY_OUTPUT; break; case CMD_RM: /* read modifed */ case SNA_CMD_RM: trace_ds("ReadModified\n"); ctlr_read_modified(aid, False); return PDS_OKAY_OUTPUT; break; case CMD_RMA: /* read modifed all */ case SNA_CMD_RMA: trace_ds("ReadModifiedAll\n"); ctlr_read_modified(aid, True); return PDS_OKAY_OUTPUT; break; case CMD_WSF: /* write structured field */ case SNA_CMD_WSF: trace_ds("WriteStructuredField"); return write_structured_field(buf, buflen); break; case CMD_NOP: /* no-op */ trace_ds("NoOp\n"); return PDS_OKAY_NO_OUTPUT; break; default: /* unknown 3270 command */ popup_an_error("Unknown 3270 Data Stream command: 0x%X\n", buf[0]); return PDS_BAD_CMD; } } /* * Functions to insert SA attributes into the inbound data stream. */ static void insert_sa1(unsigned char attr, unsigned char value, unsigned char *currentp, Boolean *anyp) { if (value == *currentp) return; *currentp = value; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = attr; *obptr++ = value; if (*anyp) trace_ds("'"); trace_ds(" SetAttribute(%s)", see_efa(attr, value)); *anyp = False; } /* * Translate an internal character set number to a 3270DS characte set number. */ static unsigned char host_cs(unsigned char cs) { switch (cs & CS_MASK) { case CS_APL: case CS_LINEDRAW: return 0xf0 | (cs & CS_MASK); case CS_DBCS: return 0xf8; default: return 0; } } static void insert_sa(int baddr, unsigned char *current_fgp, unsigned char *current_bgp, unsigned char *current_grp, unsigned char *current_csp, Boolean *anyp) { if (reply_mode != SF_SRM_CHAR) return; if (memchr((char *)crm_attr, XA_FOREGROUND, crm_nattr)) insert_sa1(XA_FOREGROUND, ea_buf[baddr].fg, current_fgp, anyp); if (memchr((char *)crm_attr, XA_BACKGROUND, crm_nattr)) insert_sa1(XA_BACKGROUND, ea_buf[baddr].bg, current_bgp, anyp); if (memchr((char *)crm_attr, XA_HIGHLIGHTING, crm_nattr)) { unsigned char gr; gr = ea_buf[baddr].gr; if (gr) gr |= 0xf0; insert_sa1(XA_HIGHLIGHTING, gr, current_grp, anyp); } if (memchr((char *)crm_attr, XA_CHARSET, crm_nattr)) { insert_sa1(XA_CHARSET, host_cs(ea_buf[baddr].cs), current_csp, anyp); } } /* * Process a 3270 Read-Modified command and transmit the data back to the * host. */ void ctlr_read_modified(unsigned char aid_byte, Boolean all) { register int baddr, sbaddr; Boolean send_data = True; Boolean short_read = False; unsigned char current_fg = 0x00; unsigned char current_bg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; if (IN_SSCP && aid_byte != AID_ENTER) return; #if defined(X3270_FT) /*[*/ if (aid_byte == AID_SF) { dft_read_modified(); return; } #endif /*]*/ trace_ds("> "); obptr = obuf; switch (aid_byte) { case AID_SYSREQ: /* test request */ space3270out(4); *obptr++ = 0x01; /* soh */ *obptr++ = 0x5b; /* % */ *obptr++ = 0x61; /* / */ *obptr++ = 0x02; /* stx */ trace_ds("SYSREQ"); break; case AID_PA1: /* short-read AIDs */ case AID_PA2: case AID_PA3: case AID_CLEAR: if (!all) short_read = True; /* fall through... */ case AID_SELECT: /* No data on READ MODIFIED */ if (!all) send_data = False; /* fall through... */ default: /* ordinary AID */ if (!IN_SSCP) { space3270out(3); *obptr++ = aid_byte; trace_ds("%s", see_aid(aid_byte)); if (short_read) goto rm_done; ENCODE_BADDR(obptr, cursor_addr); trace_ds("%s", rcba(cursor_addr)); } else { space3270out(1); /* just in case */ } break; } baddr = 0; if (formatted) { /* find first field attribute */ do { if (ea_buf[baddr].fa) break; INC_BA(baddr); } while (baddr != 0); sbaddr = baddr; do { if (FA_IS_MODIFIED(ea_buf[baddr].fa)) { Boolean any = False; INC_BA(baddr); space3270out(3); *obptr++ = ORDER_SBA; ENCODE_BADDR(obptr, baddr); trace_ds(" SetBufferAddress%s", rcba(baddr)); while (!ea_buf[baddr].fa) { if (send_data && ea_buf[baddr].cc) { insert_sa(baddr, ¤t_fg, ¤t_bg, ¤t_gr, ¤t_cs, &any); if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; if (any) trace_ds("'"); trace_ds(" GraphicEscape"); any = False; } space3270out(1); *obptr++ = ea_buf[baddr].cc; if (ea_buf[baddr].cc <= 0x3f || ea_buf[baddr].cc == 0xff) { if (any) trace_ds("'"); trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); any = False; } else { if (!any) trace_ds(" '"); trace_ds("%s", see_ebc(ea_buf[baddr].cc)); any = True; } } INC_BA(baddr); } if (any) trace_ds("'"); } else { /* not modified - skip */ do { INC_BA(baddr); } while (!ea_buf[baddr].fa); } } while (baddr != sbaddr); } else { Boolean any = False; int nbytes = 0; /* * If we're in SSCP-LU mode, the starting point is where the * host left the cursor. */ if (IN_SSCP) baddr = sscp_start; do { if (ea_buf[baddr].cc) { insert_sa(baddr, ¤t_fg, ¤t_bg, ¤t_gr, ¤t_cs, &any); if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; if (any) trace_ds("' "); trace_ds(" GraphicEscape "); any = False; } space3270out(1); *obptr++ = ea_buf[baddr].cc; if (ea_buf[baddr].cc <= 0x3f || ea_buf[baddr].cc == 0xff) { if (any) trace_ds("'"); trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); any = False; } else { if (!any) trace_ds(" '"); trace_ds("%s", see_ebc(ea_buf[baddr].cc)); any = True; } nbytes++; } INC_BA(baddr); /* * If we're in SSCP-LU mode, end the return value at * 255 bytes, or where the screen wraps. */ if (IN_SSCP && (nbytes >= 255 || !baddr)) break; } while (baddr != 0); if (any) trace_ds("'"); } rm_done: trace_ds("\n"); net_output(); } /* * Process a 3270 Read-Buffer command and transmit the data back to the * host. */ void ctlr_read_buffer(unsigned char aid_byte) { register int baddr; unsigned char fa; Boolean any = False; int attr_count = 0; unsigned char current_fg = 0x00; unsigned char current_bg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; #if defined(X3270_FT) /*[*/ if (aid_byte == AID_SF) { dft_read_modified(); return; } #endif /*]*/ trace_ds("> "); obptr = obuf; space3270out(3); *obptr++ = aid_byte; ENCODE_BADDR(obptr, cursor_addr); trace_ds("%s%s", see_aid(aid_byte), rcba(cursor_addr)); baddr = 0; do { if (ea_buf[baddr].fa) { if (reply_mode == SF_SRM_FIELD) { space3270out(2); *obptr++ = ORDER_SF; } else { space3270out(4); *obptr++ = ORDER_SFE; attr_count = obptr - obuf; *obptr++ = 1; /* for now */ *obptr++ = XA_3270; } fa = ea_buf[baddr].fa & ~FA_PRINTABLE; *obptr++ = code_table[fa]; if (any) trace_ds("'"); trace_ds(" StartField%s%s%s", (reply_mode == SF_SRM_FIELD) ? "" : "Extended", rcba(baddr), see_attr(fa)); if (reply_mode != SF_SRM_FIELD) { if (ea_buf[baddr].fg) { space3270out(2); *obptr++ = XA_FOREGROUND; *obptr++ = ea_buf[baddr].fg; trace_ds("%s", see_efa(XA_FOREGROUND, ea_buf[baddr].fg)); (*(obuf + attr_count))++; } if (ea_buf[baddr].bg) { space3270out(2); *obptr++ = XA_BACKGROUND; *obptr++ = ea_buf[baddr].bg; trace_ds("%s", see_efa(XA_BACKGROUND, ea_buf[baddr].bg)); (*(obuf + attr_count))++; } if (ea_buf[baddr].gr) { space3270out(2); *obptr++ = XA_HIGHLIGHTING; *obptr++ = ea_buf[baddr].gr | 0xf0; trace_ds("%s", see_efa(XA_HIGHLIGHTING, ea_buf[baddr].gr | 0xf0)); (*(obuf + attr_count))++; } if (ea_buf[baddr].cs & CS_MASK) { space3270out(2); *obptr++ = XA_CHARSET; *obptr++ = host_cs(ea_buf[baddr].cs); trace_ds("%s", see_efa(XA_CHARSET, host_cs(ea_buf[baddr].cs))); (*(obuf + attr_count))++; } } any = False; } else { insert_sa(baddr, ¤t_fg, ¤t_bg, ¤t_gr, ¤t_cs, &any); if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; if (any) trace_ds("'"); trace_ds(" GraphicEscape"); any = False; } space3270out(1); *obptr++ = ea_buf[baddr].cc; if (ea_buf[baddr].cc <= 0x3f || ea_buf[baddr].cc == 0xff) { if (any) trace_ds("'"); trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); any = False; } else { if (!any) trace_ds(" '"); trace_ds("%s", see_ebc(ea_buf[baddr].cc)); any = True; } } INC_BA(baddr); } while (baddr != 0); if (any) trace_ds("'"); trace_ds("\n"); net_output(); } #if defined(X3270_TRACE) /*[*/ /* * Construct a 3270 command to reproduce the current state of the display, if * formatted. */ void ctlr_snap_buffer(void) { register int baddr = 0; int attr_count; unsigned char current_fg = 0x00; unsigned char current_bg = 0x00; unsigned char current_gr = 0x00; unsigned char current_cs = 0x00; unsigned char av; space3270out(2); *obptr++ = screen_alt ? CMD_EWA : CMD_EW; *obptr++ = code_table[0]; do { if (ea_buf[baddr].fa) { space3270out(4); *obptr++ = ORDER_SFE; attr_count = obptr - obuf; *obptr++ = 1; /* for now */ *obptr++ = XA_3270; *obptr++ = code_table[ea_buf[baddr].fa & ~FA_PRINTABLE]; if (ea_buf[baddr].fg) { space3270out(2); *obptr++ = XA_FOREGROUND; *obptr++ = ea_buf[baddr].fg; (*(obuf + attr_count))++; } if (ea_buf[baddr].bg) { space3270out(2); *obptr++ = XA_BACKGROUND; *obptr++ = ea_buf[baddr].fg; (*(obuf + attr_count))++; } if (ea_buf[baddr].gr) { space3270out(2); *obptr++ = XA_HIGHLIGHTING; *obptr++ = ea_buf[baddr].gr | 0xf0; (*(obuf + attr_count))++; } if (ea_buf[baddr].cs & CS_MASK) { space3270out(2); *obptr++ = XA_CHARSET; *obptr++ = host_cs(ea_buf[baddr].cs); (*(obuf + attr_count))++; } } else { av = ea_buf[baddr].fg; if (current_fg != av) { current_fg = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_FOREGROUND; *obptr++ = av; } av = ea_buf[baddr].bg; if (current_bg != av) { current_bg = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_BACKGROUND; *obptr++ = av; } av = ea_buf[baddr].gr; if (av) av |= 0xf0; if (current_gr != av) { current_gr = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_HIGHLIGHTING; *obptr++ = av; } av = ea_buf[baddr].cs & CS_MASK; if (av) av = host_cs(av); if (current_cs != av) { current_cs = av; space3270out(3); *obptr++ = ORDER_SA; *obptr++ = XA_CHARSET; *obptr++ = av; } if (ea_buf[baddr].cs & CS_GE) { space3270out(1); *obptr++ = ORDER_GE; } space3270out(1); *obptr++ = ea_buf[baddr].cc; } INC_BA(baddr); } while (baddr != 0); space3270out(4); *obptr++ = ORDER_SBA; ENCODE_BADDR(obptr, cursor_addr); *obptr++ = ORDER_IC; } /* * Construct a 3270 command to reproduce the reply mode. * Returns a Boolean indicating if one is necessary. */ Boolean ctlr_snap_modes(void) { int i; if (!IN_3270 || reply_mode == SF_SRM_FIELD) return False; space3270out(6 + crm_nattr); *obptr++ = CMD_WSF; *obptr++ = 0x00; /* implicit length */ *obptr++ = 0x00; *obptr++ = SF_SET_REPLY_MODE; *obptr++ = 0x00; /* partition 0 */ *obptr++ = reply_mode; if (reply_mode == SF_SRM_CHAR) for (i = 0; i < crm_nattr; i++) *obptr++ = crm_attr[i]; return True; } /* * Construct a 3270 command to reproduce the current state of the display * in SSCP-LU mode. */ void ctlr_snap_buffer_sscp_lu(void) { register int baddr = 0; /* Write out the screen contents once. */ do { if (ea_buf[baddr].cc == 0xff) { space3270out(1); *obptr++ = 0xff; } space3270out(1); *obptr++ = ea_buf[baddr].cc; INC_BA(baddr); } while (baddr != 0); /* Write them out again, until we hit where the cursor is. */ if (cursor_addr != baddr) { do { if (ea_buf[baddr].cc == 0xff) { space3270out(1); *obptr++ = 0xff; } space3270out(1); *obptr++ = ea_buf[baddr].cc; INC_BA(baddr); } while (baddr != cursor_addr); } } #endif /*]*/ /* * Process a 3270 Erase All Unprotected command. */ void ctlr_erase_all_unprotected(void) { register int baddr, sbaddr; unsigned char fa; Boolean f; kybd_inhibit(False); ALL_CHANGED; if (formatted) { /* find first field attribute */ baddr = 0; do { if (ea_buf[baddr].fa) break; INC_BA(baddr); } while (baddr != 0); sbaddr = baddr; f = False; do { fa = ea_buf[baddr].fa; if (!FA_IS_PROTECTED(fa)) { mdt_clear(baddr); do { INC_BA(baddr); if (!f) { cursor_move(baddr); f = True; } if (!ea_buf[baddr].fa) { ctlr_add(baddr, EBC_null, 0); } } while (!ea_buf[baddr].fa); } else { do { INC_BA(baddr); } while (!ea_buf[baddr].fa); } } while (baddr != sbaddr); if (!f) cursor_move(0); } else { ctlr_clear(True); } aid = AID_NO; do_reset(False); } /* * Process a 3270 Write command. */ enum pds ctlr_write(unsigned char buf[], int buflen, Boolean erase) { register unsigned char *cp; register int baddr; unsigned char current_fa; Boolean last_cmd; Boolean last_zpt; Boolean wcc_keyboard_restore, wcc_sound_alarm; Boolean ra_ge; int i; unsigned char na; int any_fa; unsigned char efa_fg; unsigned char efa_bg; unsigned char efa_gr; unsigned char efa_cs; unsigned char efa_ic; const char *paren = "("; enum { NONE, ORDER, SBA, TEXT, NULLCH } previous = NONE; enum pds rv = PDS_OKAY_NO_OUTPUT; int fa_addr; Boolean add_dbcs; unsigned char add_c1, add_c2 = 0; enum dbcs_state d; enum dbcs_why why = DBCS_FIELD; Boolean aborted = False; #if defined(X3270_DBCS) /*[*/ char mb[16]; #endif /*]*/ #define END_TEXT0 { if (previous == TEXT) trace_ds("'"); } #define END_TEXT(cmd) { END_TEXT0; trace_ds(" %s", cmd); } /* XXX: Should there be a ctlr_add_cs call here? */ #define START_FIELD(fa) { \ current_fa = fa; \ ctlr_add_fa(buffer_addr, fa, 0); \ ctlr_add_cs(buffer_addr, 0); \ ctlr_add_fg(buffer_addr, 0); \ ctlr_add_bg(buffer_addr, 0); \ ctlr_add_gr(buffer_addr, 0); \ ctlr_add_ic(buffer_addr, 0); \ trace_ds("%s", see_attr(fa)); \ formatted = True; \ } kybd_inhibit(False); if (buflen < 2) return PDS_BAD_CMD; default_fg = 0; default_bg = 0; default_gr = 0; default_cs = 0; default_ic = 0; trace_primed = True; buffer_addr = cursor_addr; if (WCC_RESET(buf[1])) { if (erase) reply_mode = SF_SRM_FIELD; trace_ds("%sreset", paren); paren = ","; } wcc_sound_alarm = WCC_SOUND_ALARM(buf[1]); if (wcc_sound_alarm) { trace_ds("%salarm", paren); paren = ","; } wcc_keyboard_restore = WCC_KEYBOARD_RESTORE(buf[1]); if (wcc_keyboard_restore) ticking_stop(); if (wcc_keyboard_restore) { trace_ds("%srestore", paren); paren = ","; } if (WCC_RESET_MDT(buf[1])) { trace_ds("%sresetMDT", paren); paren = ","; baddr = 0; if (appres.modified_sel) ALL_CHANGED; do { if (ea_buf[baddr].fa) { mdt_clear(baddr); } INC_BA(baddr); } while (baddr != 0); } if (strcmp(paren, "(")) trace_ds(")"); last_cmd = True; last_zpt = False; current_fa = get_field_attribute(buffer_addr); #define ABORT_WRITEx { \ rv = PDS_BAD_ADDR; \ aborted = True; \ break; \ } #define ABORT_WRITE(s) { \ trace_ds(" [" s "; write aborted]\n"); \ ABORT_WRITEx; \ } \ for (cp = &buf[2]; !aborted && cp < (buf + buflen); cp++) { switch (*cp) { case ORDER_SF: /* start field */ END_TEXT("StartField"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cp++; /* skip field attribute */ START_FIELD(*cp); ctlr_add_fg(buffer_addr, 0); ctlr_add_bg(buffer_addr, 0); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_SBA: /* set buffer address */ cp += 2; /* skip buffer address */ buffer_addr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("SetBufferAddress"); previous = SBA; trace_ds("%s", rcba(buffer_addr)); if (buffer_addr >= COLS * ROWS) { trace_ds("COLS %d ROWS %d\n", COLS, ROWS); ABORT_WRITE("invalid SBA address"); } current_fa = get_field_attribute(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_IC: /* insert cursor */ END_TEXT("InsertCursor"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cursor_move(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_PT: /* program tab */ END_TEXT("ProgramTab"); previous = ORDER; /* * If the buffer address is the field attribute of * of an unprotected field, simply advance one * position. */ if (ea_buf[buffer_addr].fa && !FA_IS_PROTECTED(ea_buf[buffer_addr].fa)) { INC_BA(buffer_addr); last_zpt = False; last_cmd = True; break; } /* * Otherwise, advance to the first position of the * next unprotected field. */ baddr = next_unprotected(buffer_addr); if (baddr < buffer_addr) baddr = 0; /* * Null out the remainder of the current field -- even * if protected -- if the PT doesn't follow a command * or order, or (honestly) if the last order we saw was * a null-filling PT that left the buffer address at 0. * XXX: There's some funky DBCS rule here. */ if (!last_cmd || last_zpt) { trace_ds("(nulling)"); while ((buffer_addr != baddr) && (!ea_buf[buffer_addr].fa)) { ctlr_add(buffer_addr, EBC_null, 0); ctlr_add_cs(buffer_addr, 0); ctlr_add_fg(buffer_addr, 0); ctlr_add_bg(buffer_addr, 0); ctlr_add_gr(buffer_addr, 0); ctlr_add_ic(buffer_addr, 0); INC_BA(buffer_addr); } if (baddr == 0) last_zpt = True; } else last_zpt = False; buffer_addr = baddr; last_cmd = True; break; case ORDER_RA: /* repeat to address */ END_TEXT("RepeatToAddress"); cp += 2; /* skip buffer address */ baddr = DECODE_BADDR(*(cp-1), *cp); trace_ds("%s", rcba(baddr)); cp++; /* skip char to repeat */ add_dbcs = False; ra_ge = False; previous = ORDER; #if defined(X3270_DBCS) /*[*/ if (dbcs) { d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("RA over right half of DBCS character"); } if (default_cs == CS_DBCS || d == DBCS_LEFT) { add_dbcs = True; } } if (add_dbcs) { if ((baddr - buffer_addr) % 2) { ABORT_WRITE("DBCS RA with odd length"); } add_c1 = *cp; cp++; if (cp >= buf + buflen) { ABORT_WRITE("missing second half of DBCS character"); } add_c2 = *cp; if (add_c1 == EBC_null) { switch (add_c2) { case EBC_null: case EBC_nl: case EBC_em: case EBC_ff: case EBC_cr: case EBC_dup: case EBC_fm: break; default: trace_ds(" [invalid DBCS RA control character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; } } else if (add_c1 < 0x40 || add_c1 > 0xfe || add_c2 < 0x40 || add_c2 > 0xfe) { trace_ds(" [invalid DBCS RA character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; } (void) ebcdic_to_multibyte( (add_c1 << 8) | add_c2, mb, sizeof(mb)); trace_ds_nb("'%s'", mb); } else #endif /*]*/ { if (*cp == ORDER_GE) { ra_ge = True; trace_ds("GraphicEscape"); cp++; } add_c1 = *cp; if (add_c1) trace_ds("'"); trace_ds("%s", see_ebc(add_c1)); if (add_c1) trace_ds("'"); } if (baddr >= COLS * ROWS) { ABORT_WRITE("invalid RA address"); } do { if (add_dbcs) { ctlr_add(buffer_addr, add_c1, default_cs); } else { if (ra_ge) ctlr_add(buffer_addr, add_c1, CS_GE); else if (default_cs) ctlr_add(buffer_addr, add_c1, default_cs); else ctlr_add(buffer_addr, add_c1, 0); } ctlr_add_fg(buffer_addr, default_fg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); if (add_dbcs) { ctlr_add(buffer_addr, add_c2, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } } while (buffer_addr != baddr); current_fa = get_field_attribute(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_EUA: /* erase unprotected to address */ cp += 2; /* skip buffer address */ baddr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("EraseUnprotectedAll"); if (previous != SBA) trace_ds("%s", rcba(baddr)); previous = ORDER; if (baddr >= COLS * ROWS) { ABORT_WRITE("invalid EUA address"); } d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("EUA overwriting right half of DBCS character"); } d = ctlr_lookleft_state(baddr, &why); if (d == DBCS_LEFT) { ABORT_WRITE("EUA overwriting left half of DBCS character"); } do { if (ea_buf[buffer_addr].fa) current_fa = ea_buf[buffer_addr].fa; else if (!FA_IS_PROTECTED(current_fa)) { ctlr_add(buffer_addr, EBC_null, CS_BASE); } INC_BA(buffer_addr); } while (buffer_addr != baddr); current_fa = get_field_attribute(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_GE: /* graphic escape */ /* XXX: DBCS? */ END_TEXT("GraphicEscape "); cp++; /* skip char */ previous = ORDER; if (*cp) trace_ds("'"); trace_ds("%s", see_ebc(*cp)); if (*cp) trace_ds("'"); ctlr_add(buffer_addr, *cp, CS_GE); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); current_fa = get_field_attribute(buffer_addr); last_cmd = False; last_zpt = False; break; case ORDER_MF: /* modify field */ END_TEXT("ModifyField"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cp++; na = *cp; if (ea_buf[buffer_addr].fa) { for (i = 0; i < (int)na; i++) { cp++; if (*cp == XA_3270) { trace_ds(" 3270"); cp++; ctlr_add_fa(buffer_addr, *cp, ea_buf[buffer_addr].cs); trace_ds("%s", see_attr(*cp)); } else if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) ctlr_add_fg(buffer_addr, *cp); } else if (*cp == XA_BACKGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) ctlr_add_bg(buffer_addr, *cp); } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; ctlr_add_gr(buffer_addr, *cp & 0x0f); } else if (*cp == XA_CHARSET) { int cs = 0; trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (*cp == 0xf1) cs = CS_APL; else if (*cp == 0xf8) cs = CS_DBCS; ctlr_add_cs(buffer_addr, cs); } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; } else if (*cp == XA_INPUT_CONTROL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); ctlr_add_ic(buffer_addr, (*(cp + 1) == 1)); cp++; } else { trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; } } INC_BA(buffer_addr); } else cp += na * 2; last_cmd = True; last_zpt = False; break; case ORDER_SFE: /* start field extended */ END_TEXT("StartFieldExtended"); if (previous != SBA) trace_ds("%s", rcba(buffer_addr)); previous = ORDER; cp++; /* skip order */ na = *cp; any_fa = 0; efa_fg = 0; efa_bg = 0; efa_gr = 0; efa_cs = 0; efa_ic = 0; for (i = 0; i < (int)na; i++) { cp++; if (*cp == XA_3270) { trace_ds(" 3270"); cp++; START_FIELD(*cp); any_fa++; } else if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) efa_fg = *cp; } else if (*cp == XA_BACKGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (appres.m3279) efa_bg = *cp; } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; efa_gr = *cp & 0x07; } else if (*cp == XA_CHARSET) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; if (*cp == 0xf1) efa_cs = CS_APL; else if (dbcs && (*cp == 0xf8)) efa_cs = CS_DBCS; else efa_cs = CS_BASE; } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); cp++; } else if (*cp == XA_INPUT_CONTROL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (dbcs) efa_ic = (*(cp + 1) == 1); cp++; } else { trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; } } if (!any_fa) START_FIELD(0); ctlr_add_cs(buffer_addr, efa_cs); ctlr_add_fg(buffer_addr, efa_fg); ctlr_add_bg(buffer_addr, efa_bg); ctlr_add_gr(buffer_addr, efa_gr); ctlr_add_ic(buffer_addr, efa_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case ORDER_SA: /* set attribute */ END_TEXT("SetAttribute"); previous = ORDER; cp++; if (*cp == XA_FOREGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (appres.m3279) default_fg = *(cp + 1); } else if (*cp == XA_BACKGROUND) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (appres.m3279) default_bg = *(cp + 1); } else if (*cp == XA_HIGHLIGHTING) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_gr = *(cp + 1) & 0x0f; } else if (*cp == XA_ALL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); default_fg = 0; default_bg = 0; default_gr = 0; default_cs = 0; default_ic = 0; } else if (*cp == XA_CHARSET) { trace_ds("%s", see_efa(*cp, *(cp + 1))); switch (*(cp + 1)) { case 0xf1: default_cs = CS_APL; break; case 0xf8: default_cs = CS_DBCS; break; default: default_cs = CS_BASE; break; } } else if (*cp == XA_INPUT_CONTROL) { trace_ds("%s", see_efa(*cp, *(cp + 1))); if (*(cp + 1) == 1) default_ic = 1; else default_ic = 0; } else trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; last_cmd = True; last_zpt = False; break; case FCORDER_SUB: /* format control orders */ case FCORDER_DUP: case FCORDER_FM: case FCORDER_FF: case FCORDER_CR: case FCORDER_NL: case FCORDER_EM: case FCORDER_EO: END_TEXT(see_ebc(*cp)); previous = ORDER; d = ctlr_lookleft_state(buffer_addr, &why); if (default_cs == CS_DBCS || d != DBCS_NONE) { ABORT_WRITE("invalid format control order in DBCS field"); } ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case FCORDER_SO: /* Look left for errors. */ END_TEXT(see_ebc(*cp)); d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("SO overwriting right half of DBCS character"); } if (d != DBCS_NONE && why == DBCS_FIELD) { ABORT_WRITE("SO in DBCS field"); } if (d != DBCS_NONE && why == DBCS_SUBFIELD) { ABORT_WRITE("double SO"); } /* All is well. */ previous = ORDER; ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case FCORDER_SI: /* Look left for errors. */ END_TEXT(see_ebc(*cp)); d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("SI overwriting right half of DBCS character"); } if (d != DBCS_NONE && why == DBCS_FIELD) { ABORT_WRITE("SI in DBCS field"); } fa_addr = find_field_attribute(buffer_addr); baddr = buffer_addr; DEC_BA(baddr); while (!aborted && ((fa_addr >= 0 && baddr != fa_addr) || (fa_addr < 0 && baddr != ROWS*COLS - 1))) { if (ea_buf[baddr].cc == FCORDER_SI) { ABORT_WRITE("double SI"); } if (ea_buf[baddr].cc == FCORDER_SO) break; DEC_BA(baddr); } if (aborted) break; if (ea_buf[baddr].cc != FCORDER_SO) { ABORT_WRITE("SI without SO"); } /* All is well. */ previous = ORDER; ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); last_cmd = True; last_zpt = False; break; case FCORDER_NULL: /* NULL or DBCS control char */ add_dbcs = False; d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("NULL overwriting right half of DBCS character"); } if (d != DBCS_NONE || default_cs == CS_DBCS) { add_c1 = EBC_null; cp++; if (cp >= buf + buflen) { ABORT_WRITE("missing second half of DBCS character"); } add_c2 = *cp; switch (add_c2) { case EBC_null: case EBC_nl: case EBC_em: case EBC_ff: case EBC_cr: case EBC_dup: case EBC_fm: /* DBCS control code */ END_TEXT(see_ebc(add_c2)); add_dbcs = True; break; case ORDER_SF: case ORDER_SFE: /* Dead position */ END_TEXT("DeadNULL"); cp--; break; default: trace_ds(" [invalid DBCS control character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; break; } if (aborted) break; } else { END_TEXT("NULL"); add_c1 = *cp; } previous = NULLCH; ctlr_add(buffer_addr, add_c1, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); if (add_dbcs) { ctlr_add(buffer_addr, add_c2, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } last_cmd = False; last_zpt = False; break; default: /* enter character */ if (*cp <= 0x3F) { END_TEXT("UnsupportedOrder"); trace_ds("(%02X)", *cp); previous = ORDER; last_cmd = True; last_zpt = False; break; } if (previous != TEXT) trace_ds(" '"); previous = TEXT; #if defined(X3270_DBCS) /*[*/ add_dbcs = False; d = ctlr_lookleft_state(buffer_addr, &why); if (d == DBCS_RIGHT) { ABORT_WRITE("overwriting right half of DBCS character"); } if (d != DBCS_NONE || default_cs == CS_DBCS) { add_c1 = *cp; cp++; if (cp >= buf + buflen) { ABORT_WRITE("missing second half of DBCS character"); } add_c2 = *cp; if (add_c1 < 0x40 || add_c1 > 0xfe || add_c2 < 0x40 || add_c2 > 0xfe) { trace_ds(" [invalid DBCS character X'%02x%02x'; write aborted]", add_c1, add_c2); ABORT_WRITEx; } add_dbcs = True; (void) ebcdic_to_multibyte( (add_c1 << 8) | add_c2, mb, sizeof(mb)); trace_ds_nb("%s", mb); } else { #endif /*]*/ add_c1 = *cp; trace_ds("%s", see_ebc(*cp)); #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ ctlr_add(buffer_addr, add_c1, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); #if defined(X3270_DBCS) /*[*/ if (add_dbcs) { ctlr_add(buffer_addr, add_c2, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } #endif /*]*/ last_cmd = False; last_zpt = False; break; } } set_formatted(); END_TEXT0; trace_ds("\n"); kybdlock_clr(KL_AWAITING_FIRST, "ctlr_write"); if (wcc_keyboard_restore) { aid = AID_NO; do_reset(False); } else if (kybdlock & KL_OIA_TWAIT) { kybdlock_clr(KL_OIA_TWAIT, "ctlr_write"); status_syswait(); } if (wcc_sound_alarm) ring_bell(); /* Set up the DBCS state. */ if (ctlr_dbcs_postprocess() < 0 && rv == PDS_OKAY_NO_OUTPUT) rv = PDS_BAD_ADDR; trace_primed = False; ps_process(); /* Let a script go. */ sms_host_output(); /* Tell 'em what happened. */ return rv; } #undef START_FIELDx #undef START_FIELD0 #undef START_FIELD #undef END_TEXT0 #undef END_TEXT #undef ABORT_WRITEx #undef ABORT_WRITE /* * Write SSCP-LU data, which is quite a bit dumber than regular 3270 * output. */ void ctlr_write_sscp_lu(unsigned char buf[], int buflen) { int i; unsigned char *cp = buf; int s_row; unsigned char c; int baddr; int text = False; /* * The 3174 Functionl Description says that anything but NL, NULL, FM, * or DUP is to be displayed as a graphic. However, to deal with * badly-behaved hosts, we filter out SF, IC and SBA sequences, and * we display other control codes as spaces. */ trace_ds("SSCP-LU data\n< "); for (i = 0; i < buflen; cp++, i++) { switch (*cp) { case FCORDER_NL: /* * Insert NULLs to the end of the line and advance to * the beginning of the next line. */ if (text) { trace_ds("'"); text = False; } trace_ds(" NL"); s_row = buffer_addr / COLS; while ((buffer_addr / COLS) == s_row) { ctlr_add(buffer_addr, EBC_null, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); } break; case ORDER_SF: /* Some hosts forget they're talking SSCP-LU. */ cp++; i++; if (text) { trace_ds("'"); text = False; } trace_ds(" SF%s %s [translated to space]\n", rcba(buffer_addr), see_attr(*cp)); ctlr_add(buffer_addr, EBC_space, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); break; case ORDER_IC: if (text) { trace_ds("'"); text = False; } trace_ds(" IC%s [ignored]\n", rcba(buffer_addr)); break; case ORDER_SBA: baddr = DECODE_BADDR(*(cp+1), *(cp+2)); trace_ds(" SBA%s [ignored]\n", rcba(baddr)); cp += 2; i += 2; break; case ORDER_GE: cp++; if (++i >= buflen) break; if (*cp <= 0x40) c = EBC_space; else c = *cp; if (text) { trace_ds("'"); text = False; } trace_ds(" GE '%s'", see_ebc(c)); ctlr_add(buffer_addr, c, CS_GE); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); break; default: if (!text) { trace_ds(" '"); text = True; } trace_ds("%s", see_ebc(*cp)); ctlr_add(buffer_addr, *cp, default_cs); ctlr_add_fg(buffer_addr, default_fg); ctlr_add_bg(buffer_addr, default_bg); ctlr_add_gr(buffer_addr, default_gr); ctlr_add_ic(buffer_addr, default_ic); INC_BA(buffer_addr); break; } } if (text) trace_ds("'"); trace_ds("\n"); cursor_move(buffer_addr); sscp_start = buffer_addr; /* Unlock the keyboard. */ aid = AID_NO; do_reset(False); /* Let a script go. */ sms_host_output(); } #if defined(X3270_DBCS) /*[*/ /* * Determine the DBCS state of a buffer location strictly by looking left. * Used only to validate write operations. * Returns only DBCS_LEFT, DBCS_RIGHT or DBCS_NONE. * Also returns whether the location is part of a DBCS field (SFE with the * DBCS character set), DBCS subfield (to the right of an SO within a non-DBCS * field), or DBCS attribute (has the DBCS character set extended attribute * within a non-DBCS field). * * This function should be used only to determine the legality of adding a * DBCS or SBCS character at baddr. */ enum dbcs_state ctlr_lookleft_state(int baddr, enum dbcs_why *why) { int faddr; int fdist; int xaddr; Boolean si = False; #define AT_END(f, b) \ (((f) < 0 && (b) == ROWS*COLS - 1) || \ ((f) >= 0 && (b) == (f))) /* If we're not in DBCS state, everything is DBCS_NONE. */ if (!dbcs) return DBCS_NONE; /* Find the field attribute, if any. */ faddr = find_field_attribute(baddr); /* * First in precedence is a DBCS field. * DBCS SA and SO/SI inside a DBCS field are errors, but are considered * defective DBCS characters. */ if (ea_buf[faddr].cs == CS_DBCS) { *why = DBCS_FIELD; fdist = (baddr + ROWS*COLS) - faddr; return (fdist % 2)? DBCS_LEFT: DBCS_RIGHT; } /* * The DBCS attribute takes precedence next. * SO and SI can appear within such a region, but they are single-byte * characters which effectively split it. */ if (ea_buf[baddr].cs == CS_DBCS) { if (ea_buf[baddr].cc == EBC_so || ea_buf[baddr].cc == EBC_si) return DBCS_NONE; xaddr = baddr; while (!AT_END(faddr, xaddr) && ea_buf[xaddr].cs == CS_DBCS && ea_buf[xaddr].cc != EBC_so && ea_buf[xaddr].cc != EBC_si) { DEC_BA(xaddr); } *why = DBCS_ATTRIBUTE; fdist = (baddr + ROWS*COLS) - xaddr; return (fdist % 2)? DBCS_LEFT: DBCS_RIGHT; } /* * Finally, look for a SO not followed by an SI. */ xaddr = baddr; DEC_BA(xaddr); while (!AT_END(faddr, xaddr)) { if (ea_buf[xaddr].cc == EBC_si) si = True; else if (ea_buf[xaddr].cc == EBC_so) { if (si) si = False; else { *why = DBCS_SUBFIELD; fdist = (baddr + ROWS*COLS) - xaddr; return (fdist % 2)? DBCS_LEFT: DBCS_RIGHT; } } DEC_BA(xaddr); } /* Nada. */ return DBCS_NONE; } static Boolean valid_dbcs_char(unsigned char c1, unsigned char c2) { if (c1 >= 0x40 && c1 < 0xff && c2 >= 0x40 && c2 < 0xff) return True; if (c1 != 0x00 || c2 < 0x40 || c2 >= 0xff) return False; switch (c2) { case EBC_null: case EBC_nl: case EBC_em: case EBC_ff: case EBC_cr: case EBC_dup: case EBC_fm: return True; default: return False; } } /* * Post-process DBCS state in the buffer. * This has two purposes: * * - Required post-processing validation, per the data stream spec, which can * cause the write operation to be rejected. * - Setting up the value of the all the db fields in ea_buf. * * This function is called at the end of every 3270 write operation, and also * after each batch of NVT write operations. It could also be called after * significant keyboard operations, but that might be too expensive. * * Returns 0 for success, -1 for failure. */ int ctlr_dbcs_postprocess(void) { int baddr; /* current buffer address */ int faddr0; /* address of first field attribute */ int faddr; /* address of current field attribute */ int last_baddr; /* last buffer address to search */ int pbaddr = -1; /* previous buffer address */ int dbaddr = -1; /* first data position of current DBCS (sub-) field */ Boolean so = False, si = False; Boolean dbcs_field = False; int rc = 0; /* If we're not in DBCS mode, do nothing. */ if (!dbcs) return 0; /* * Find the field attribute for location 0. If unformatted, it's the * dummy at -1. Also compute the starting and ending points for the * scan: the first location after that field attribute. */ faddr0 = find_field_attribute(0); baddr = faddr0; INC_BA(baddr); if (faddr0 < 0) last_baddr = 0; else last_baddr = faddr0; faddr = faddr0; dbcs_field = (ea_buf[faddr].cs & CS_MASK) == CS_DBCS; do { if (ea_buf[baddr].fa) { faddr = baddr; ea_buf[faddr].db = DBCS_NONE; dbcs_field = (ea_buf[faddr].cs & CS_MASK) == CS_DBCS; if (dbcs_field) { dbaddr = baddr; INC_BA(dbaddr); } else { dbaddr = -1; } /* * An SI followed by a field attribute shouldn't be * displayed with a wide cursor. */ if (pbaddr >= 0 && ea_buf[pbaddr].db == DBCS_SI) ea_buf[pbaddr].db = DBCS_NONE; } else { switch (ea_buf[baddr].cc) { case EBC_so: /* Two SO's or SO in DBCS field are invalid. */ if (so || dbcs_field) { trace_ds("DBCS postprocess: invalid SO " "found at %s\n", rcba(baddr)); rc = -1; } else { dbaddr = baddr; INC_BA(dbaddr); } ea_buf[baddr].db = DBCS_NONE; so = True; si = False; break; case EBC_si: /* Two SI's or SI in DBCS field are invalid. */ if (si || dbcs_field) { trace_ds("Postprocess: Invalid SO found " "at %s\n", rcba(baddr)); rc = -1; ea_buf[baddr].db = DBCS_NONE; } else { ea_buf[baddr].db = DBCS_SI; } dbaddr = -1; si = True; so = False; break; default: /* Non-base CS in DBCS subfield is invalid. */ if (so && ea_buf[baddr].cs != CS_BASE) { trace_ds("DBCS postprocess: invalid " "character set found at %s\n", rcba(baddr)); rc = -1; ea_buf[baddr].cs = CS_BASE; } if ((ea_buf[baddr].cs & CS_MASK) == CS_DBCS) { /* * Beginning or continuation of an SA DBCS * subfield. */ if (dbaddr < 0) { dbaddr = baddr; } } else if (!so && !dbcs_field) { /* * End of SA DBCS subfield. */ dbaddr = -1; } if (dbaddr >= 0) { /* * Turn invalid characters into spaces, * silently. */ if ((baddr + ROWS*COLS - dbaddr) % 2) { if (!valid_dbcs_char( ea_buf[pbaddr].cc, ea_buf[baddr].cc)) { ea_buf[pbaddr].cc = EBC_space; ea_buf[baddr].cc = EBC_space; } MAKE_RIGHT(baddr); } else { MAKE_LEFT(baddr); } } else ea_buf[baddr].db = DBCS_NONE; break; } } /* * Check for dead positions. * Turn them into NULLs, silently. */ if (pbaddr >= 0 && IS_LEFT(ea_buf[pbaddr].db) && !IS_RIGHT(ea_buf[baddr].db) && ea_buf[pbaddr].db != DBCS_DEAD) { if (!ea_buf[baddr].fa) { trace_ds("DBCS postprocess: dead position " "at %s\n", rcba(pbaddr)); rc = -1; } ea_buf[pbaddr].cc = EBC_null; ea_buf[pbaddr].db = DBCS_DEAD; } /* Check for SB's, which follow SIs. */ if (pbaddr >= 0 && ea_buf[pbaddr].db == DBCS_SI) ea_buf[baddr].db = DBCS_SB; /* Save this position as the previous and increment. */ pbaddr = baddr; INC_BA(baddr); } while (baddr != last_baddr); return rc; } #endif /*]*/ /* * Process pending input. */ void ps_process(void) { while (run_ta()) ; sms_continue(); #if defined(X3270_FT) /*[*/ /* Process file transfers. */ if (ft_state != FT_NONE && /* transfer in progress */ formatted && /* screen is formatted */ !screen_alt && /* 24x80 screen */ !kybdlock && /* keyboard not locked */ /* magic field */ ea_buf[1919].fa && FA_IS_SKIP(ea_buf[1919].fa)) { ft_cut_data(); } #endif /*]*/ } /* * Tell me if there is any data on the screen. */ Boolean ctlr_any_data(void) { register int i; for (i = 0; i < ROWS*COLS; i++) { if (!IsBlank(ea_buf[i].cc)) return True; } return False; } /* * Clear the text (non-status) portion of the display. Also resets the cursor * and buffer addresses and extended attributes. */ void ctlr_clear(Boolean can_snap) { /* Snap any data that is about to be lost into the trace file. */ if (ctlr_any_data()) { #if defined(X3270_TRACE) /*[*/ if (can_snap && !trace_skipping && toggled(SCREEN_TRACE)) trace_screen(); #endif /*]*/ scroll_save(maxROWS, ever_3270 ? False : True); } #if defined(X3270_TRACE) /*[*/ trace_skipping = False; #endif /*]*/ /* Clear the screen. */ (void) memset((char *)ea_buf, 0, ROWS*COLS*sizeof(struct ea)); ALL_CHANGED; cursor_move(0); buffer_addr = 0; unselect(0, ROWS*COLS); formatted = False; default_fg = 0; default_bg = 0; default_gr = 0; default_ic = 0; sscp_start = 0; } /* * Fill the screen buffer with blanks. */ static void ctlr_blanks(void) { int baddr; for (baddr = 0; baddr < maxROWS*maxCOLS; baddr++) { ea_buf[baddr].cc = EBC_space; } ALL_CHANGED; cursor_move(0); buffer_addr = 0; unselect(0, ROWS*COLS); formatted = False; } /* * Change a character in the 3270 buffer. * Removes any field attribute defined at that location. */ void ctlr_add(int baddr, unsigned char c, unsigned char cs) { unsigned char oc = 0; if (ea_buf[baddr].fa || ((oc = ea_buf[baddr].cc) != c || ea_buf[baddr].cs != cs)) { if (trace_primed && !IsBlank(oc)) { #if defined(X3270_TRACE) /*[*/ if (toggled(SCREEN_TRACE)) trace_screen(); #endif /*]*/ scroll_save(maxROWS, False); trace_primed = False; } if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].cc = c; ea_buf[baddr].cs = cs; ea_buf[baddr].fa = 0; } } /* * Set a field attribute in the 3270 buffer. */ void ctlr_add_fa(int baddr, unsigned char fa, unsigned char cs) { /* Put a null in the display buffer. */ ctlr_add(baddr, EBC_null, cs); /* * Store the new attribute, setting the 'printable' bits so that the * value will be non-zero. */ ea_buf[baddr].fa = FA_PRINTABLE | (fa & FA_MASK); } /* * Change the character set for a field in the 3270 buffer. */ void ctlr_add_cs(int baddr, unsigned char cs) { if (ea_buf[baddr].cs != cs) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].cs = cs; } } /* * Change the graphic rendition of a character in the 3270 buffer. */ void ctlr_add_gr(int baddr, unsigned char gr) { if (ea_buf[baddr].gr != gr) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].gr = gr; if (gr & GR_BLINK) blink_start(); } } /* * Change the foreground color for a character in the 3270 buffer. */ void ctlr_add_fg(int baddr, unsigned char color) { if (!appres.m3279) return; if ((color & 0xf0) != 0xf0) color = 0; if (ea_buf[baddr].fg != color) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].fg = color; } } /* * Change the background color for a character in the 3270 buffer. */ void ctlr_add_bg(int baddr, unsigned char color) { if (!appres.m3279) return; if ((color & 0xf0) != 0xf0) color = 0; if (ea_buf[baddr].bg != color) { if (SELECTED(baddr)) unselect(baddr, 1); ONE_CHANGED(baddr); ea_buf[baddr].bg = color; } } /* * Change the input control bit for a character in the 3270 buffer. */ static void ctlr_add_ic(int baddr, unsigned char ic) { ea_buf[baddr].ic = ic; } /* * Wrapping bersion of ctlr_bcopy. */ void ctlr_wrapping_memmove(int baddr_to, int baddr_from, int count) { /* * The 'to' region, the 'from' region, or both can wrap the screen, * and can overlap each other. memmove() is smart enough to deal with * overlaps, but not across a screen wrap. * * It's faster to figure out if none of this is true, then do a slow * location-at-a-time version only if it happens. */ if (baddr_from + count <= ROWS*COLS && baddr_to + count <= ROWS*COLS) { ctlr_bcopy(baddr_from, baddr_to, count, True); } else { int i, from, to; for (i = 0; i < count; i++) { if (baddr_to > baddr_from) { /* Shifting right, move left. */ to = (baddr_to + count - 1 - i) % ROWS*COLS; from = (baddr_from + count - 1 - i) % ROWS*COLS; } else { /* Shifting left, move right. */ to = (baddr_to + i) % ROWS*COLS; from = (baddr_from + i) % ROWS*COLS; } ctlr_bcopy(from, to, 1, True); } } } /* * Copy a block of characters in the 3270 buffer, optionally including all of * the extended attributes. (The character set, which is actually kept in the * extended attributes, is considered part of the characters here.) */ void ctlr_bcopy(int baddr_from, int baddr_to, int count, int move_ea) { /* Move the characters. */ if (memcmp((char *) &ea_buf[baddr_from], (char *) &ea_buf[baddr_to], count * sizeof(struct ea))) { (void) memmove(&ea_buf[baddr_to], &ea_buf[baddr_from], count * sizeof(struct ea)); REGION_CHANGED(baddr_to, baddr_to + count); /* * For the time being, if any selected text shifts around on * the screen, unhighlight it. Eventually there should be * logic for preserving the highlight if the *all* of the * selected text moves. */ if (area_is_selected(baddr_to, count)) unselect(baddr_to, count); } /* XXX: What about move_ea? */ } #if defined(X3270_ANSI) /*[*/ /* * Erase a region of the 3270 buffer, optionally clearing extended attributes * as well. */ void ctlr_aclear(int baddr, int count, int clear_ea) { if (memcmp((char *) &ea_buf[baddr], (char *) zero_buf, count * sizeof(struct ea))) { (void) memset((char *) &ea_buf[baddr], 0, count * sizeof(struct ea)); REGION_CHANGED(baddr, baddr + count); if (area_is_selected(baddr, count)) unselect(baddr, count); } /* XXX: What about clear_ea? */ } /* * Scroll the screen 1 row. * * This could be accomplished with ctlr_bcopy() and ctlr_aclear(), but this * operation is common enough to warrant a separate path. */ void ctlr_scroll(void) { int qty = (ROWS - 1) * COLS; Boolean obscured; /* Make sure nothing is selected. (later this can be fixed) */ unselect(0, ROWS*COLS); /* Synchronize pending changes prior to this. */ obscured = screen_obscured(); if (!obscured && screen_changed) screen_disp(False); /* Move ea_buf. */ (void) memmove(&ea_buf[0], &ea_buf[COLS], qty * sizeof(struct ea)); /* Clear the last line. */ (void) memset((char *) &ea_buf[qty], 0, COLS * sizeof(struct ea)); /* Update the screen. */ if (obscured) { ALL_CHANGED; } else { screen_scroll(); } } #endif /*]*/ /* * Note that a particular region of the screen has changed. */ void ctlr_changed(int bstart, int bend) { REGION_CHANGED(bstart, bend); } #if defined(X3270_ANSI) /*[*/ /* * Swap the regular and alternate screen buffers */ void ctlr_altbuffer(Boolean alt) { struct ea *etmp; if (alt != is_altbuffer) { etmp = ea_buf; ea_buf = aea_buf; aea_buf = etmp; is_altbuffer = alt; ALL_CHANGED; unselect(0, ROWS*COLS); /* * There may be blinkers on the alternate screen; schedule one * iteration just in case. */ blink_start(); } } #endif /*]*/ /* * Set or clear the MDT on an attribute */ void mdt_set(int baddr) { int faddr; faddr = find_field_attribute(baddr); if (faddr >= 0 && !(ea_buf[faddr].fa & FA_MODIFY)) { ea_buf[faddr].fa |= FA_MODIFY; if (appres.modified_sel) ALL_CHANGED; } } void mdt_clear(int baddr) { int faddr; faddr = find_field_attribute(baddr); if (faddr >= 0 && (ea_buf[faddr].fa & FA_MODIFY)) { ea_buf[faddr].fa &= ~FA_MODIFY; if (appres.modified_sel) ALL_CHANGED; } } /* * Support for screen-size swapping for scrolling */ void ctlr_shrink(void) { int baddr; for (baddr = 0; baddr < ROWS*COLS; baddr++) { if (!ea_buf[baddr].fa) ea_buf[baddr].cc = visible_control? EBC_space : EBC_null; } ALL_CHANGED; screen_disp(False); } #if defined(X3270_DBCS) /*[*/ /* * DBCS state query. * Returns: * DBCS_NONE: Buffer position is SBCS. * DBCS_LEFT: Buffer position is left half of a DBCS character. * DBCS_RIGHT: Buffer position is right half of a DBCS character. * DBCS_SI: Buffer position is the SI terminating a DBCS subfield (treated * as DBCS_LEFT for wide cursor tests) * DBCS_SB: Buffer position is an SBCS character after an SI (treated as * DBCS_RIGHT for wide cursor tests) * * Takes line-wrapping into account, which probably isn't done all that well. */ enum dbcs_state ctlr_dbcs_state(int baddr) { return dbcs? ea_buf[baddr].db: DBCS_NONE; } #endif /*]*/ /* * Transaction timing. The time between sending an interrupt (PF, PA, Enter, * Clear) and the host unlocking the keyboard is indicated on the status line * to an accuracy of 0.1 seconds. If we don't repaint the screen before we see * the unlock, the time should be fairly accurate. */ static struct timeval t_start; static Boolean ticking = False; static Boolean mticking = False; static unsigned long tick_id; static struct timeval t_want; /* Return the difference in milliseconds between two timevals. */ static long delta_msec(struct timeval *t1, struct timeval *t0) { return (t1->tv_sec - t0->tv_sec) * 1000 + (t1->tv_usec - t0->tv_usec + 500) / 1000; } static void keep_ticking(void) { struct timeval t1; long msec; do { (void) gettimeofday(&t1, (struct timezone *) 0); t_want.tv_sec++; msec = delta_msec(&t_want, &t1); } while (msec <= 0); tick_id = AddTimeOut(msec, keep_ticking); status_timing(&t_start, &t1); } void ticking_start(Boolean anyway) { (void) gettimeofday(&t_start, (struct timezone *) 0); mticking = True; if (!toggled(SHOW_TIMING) && !anyway) return; status_untiming(); if (ticking) RemoveTimeOut(tick_id); ticking = True; tick_id = AddTimeOut(1000, keep_ticking); t_want = t_start; } static void ticking_stop(void) { struct timeval t1; (void) gettimeofday(&t1, (struct timezone *) 0); if (mticking) { sms_accumulate_time(&t_start, &t1); mticking = False; } else { return; } if (!ticking) return; RemoveTimeOut(tick_id); ticking = False; status_timing(&t_start, &t1); } void toggle_showTiming(struct toggle *t _is_unused, enum toggle_type tt _is_unused) { if (!toggled(SHOW_TIMING)) status_untiming(); } /* * No-op toggle. */ void toggle_nop(struct toggle *t _is_unused, enum toggle_type tt _is_unused) { } ibm-3270-3.3.10ga4/ws3270/globals.h0000644000175000017500000002702011254565704015731 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2005, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes nor the * names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL AND JEFF SPARKES * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL OR JEFF * SPARKES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * globals.h * Common definitions for x3270, c3270, s3270 and tcl3270. */ /* Autoconf settings. */ #include "conf.h" /* autoconf settings */ #if defined(X3270_TN3270E) && !defined(X3270_ANSI) /*[*/ #define X3270_ANSI 1 /* RFC2355 requires NVT mode */ #endif /*]*/ #if defined(HAVE_VASPRINTF) && !defined(_GNU_SOURCE) /*[*/ #define _GNU_SOURCE /* vasprintf isn't POSIX */ #endif /*]*/ /* * OS-specific #defines. Except for the blocking-connect workarounds, these * should be replaced with autoconf probes as soon as possible. */ /* * BLOCKING_CONNECT_ONLY * Use only blocking sockets. */ #if defined(sco) /*[*/ #define BLOCKING_CONNECT_ONLY 1 #endif /*]*/ #if defined(apollo) /*[*/ #define BLOCKING_CONNECT_ONLY 1 #endif /*]*/ /* * Compiler-specific #defines. */ /* '_is_unused' explicitly flags an unused parameter */ #if defined(__GNUC__) /*[*/ #define _is_unused __attribute__((__unused__)) #define printflike(s,f) __attribute__ ((__format__ (__printf__, s, f))) #else /*][*/ #define _is_unused /* nothing */ #define printflike(s, f) /* nothing */ #endif /*]*/ /* * Prerequisite #includes. */ #include /* Unix standard I/O library */ #include /* Other Unix library functions */ #if !defined(_MSC_VER) /*[*/ #include /* Unix system calls */ #endif /*]*/ #include /* Character classes */ #include /* String manipulations */ #include /* Basic system data types */ #if !defined(_MSC_VER) /*[*/ #include /* System time-related data types */ #endif /*]*/ #include /* C library time functions */ #include "localdefs.h" /* {s,tcl,c}3270-specific defines */ /* * MSC glue. */ #if defined(_MSC_VER) /*[*/ #include /* for struct timeval */ extern int gettimeofday(struct timeval *, void *); #define R_OK 4 #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /*]*/ /* * Locale-related definitions. * Note that USE_ICONV can be used to override __STDC_ISO_10646__, so that * development of iconv-based logic can be done on 10646-compliant systems. */ #if defined(__STDC_ISO_10646__) && !defined(USE_ICONV) /*[*/ #define UNICODE_WCHAR 1 #endif /*]*/ #if !defined(_WIN32) && !defined(UNICODE_WCHAR) /*[*/ #undef USE_ICONV #define USE_ICONV 1 #include #endif /*]*/ /* * Unicode UCS-4 characters are (hopefully) 32 bits. * EBCDIC (including DBCS) is (hopefully) 16 bits. */ typedef unsigned int ucs4_t; typedef unsigned short ebc_t; /* * Cancel out contradictory parts. */ #if !defined(X3270_DISPLAY) /*[*/ #undef X3270_KEYPAD #undef X3270_MENUS #endif /*]*/ #if defined(C3270) && defined(X3270_DBCS) && !defined(CURSES_WIDE) /*[*/ #undef X3270_DBCS #endif /*]*/ /* Local process (-e) header files. */ #if defined(X3270_LOCAL_PROCESS) && defined(HAVE_FORKPTY) /*[*/ #define LOCAL_PROCESS 1 #include #if defined(HAVE_PTY_H) /*[*/ #include #endif /*]*/ #if defined(HAVE_LIBUTIL_H) /*[*/ #include #endif /*]*/ #if defined(HAVE_UTIL_H) /*[*/ #include #endif /*]*/ #endif /*]*/ /* Functions we may need to supply. */ #if defined(NEED_STRTOK_R) /*[*/ extern char *strtok_r(char *str, const char *sep, char **last); #endif /*]*/ /* Stop conflicting with curses' COLS, even if we don't link with it. */ #define COLS cCOLS /* Simple global variables */ extern int COLS; /* current */ extern int ROWS; extern int maxCOLS; /* maximum */ extern int maxROWS; extern int defROWS; /* default (EraseWrite) */ extern int defCOLS; extern int altROWS; /* alternate (EraseWriteAlternate) */ extern int altCOLS; #if defined(X3270_DISPLAY) /*[*/ extern Atom a_3270, a_registry, a_encoding; extern XtAppContext appcontext; #endif /*]*/ extern const char *build; extern const char *build_rpq_timestamp; extern const char *build_rpq_version; extern int children; extern char *connected_lu; extern char *connected_type; extern char *current_host; extern unsigned short current_port; #if defined(X3270_DBCS) /*[*/ extern Boolean dbcs; #endif /*]*/ #if defined(X3270_FT) /*[*/ extern int dft_buffersize; #endif /*]*/ extern char *efontname; extern Boolean ever_3270; extern Boolean exiting; #if defined(X3270_DISPLAY) /*[*/ extern Boolean *extended_3270font; extern Font *fid; extern Boolean *font_8bit; #endif /*]*/ extern Boolean flipped; extern char *full_current_host; extern char *full_efontname; #if defined(X3270_DBCS) /*[*/ extern char *full_efontname_dbcs; #endif /*]*/ extern char full_model_name[]; extern char *funky_font; extern char *hostname; #if defined(X3270_DBCS) /*[*/ #if defined(X3270_DISPLAY) /*[*/ extern char *locale_name; #endif /*]*/ #endif /*]*/ extern char luname[]; #if defined(LOCAL_PROCESS) /*[*/ extern Boolean local_process; #endif /*]*/ extern char *model_name; extern int model_num; extern Boolean no_login_host; extern Boolean non_tn3270e_host; extern int ov_cols, ov_rows; extern Boolean ov_auto; extern Boolean passthru_host; extern const char *programname; extern char *qualified_host; extern char *reconnect_host; extern int screen_depth; extern Boolean scroll_initted; #if defined(HAVE_LIBSSL) /*[*/ extern Boolean secure_connection; #endif /*]*/ extern Boolean shifted; extern Boolean ssl_host; extern Boolean *standard_font; extern Boolean std_ds_host; extern char *termtype; extern Widget toplevel; extern Boolean visible_control; extern int *xtra_width; #if defined(X3270_DISPLAY) /*[*/ extern Atom a_delete_me; extern Atom a_save_yourself; extern Atom a_state; extern Display *display; extern Pixmap gray; extern Pixel keypadbg_pixel; extern XrmDatabase rdb; extern Window root_window; extern char *user_title; #endif /*]*/ #if defined(_WIN32) && (defined(C3270) || defined(S3270)) /*[*/ extern char *instdir; extern char *myappdata; #endif /*]*/ #if defined(_WIN32) && defined(C3270) /*[*/ extern int is_installed; #endif /*]*/ /* Data types and complex global variables */ /* connection state */ enum cstate { NOT_CONNECTED, /* no socket, unknown mode */ RESOLVING, /* resolving hostname */ PENDING, /* connection pending */ CONNECTED_INITIAL, /* connected, no mode yet */ CONNECTED_ANSI, /* connected in NVT ANSI mode */ CONNECTED_3270, /* connected in old-style 3270 mode */ CONNECTED_INITIAL_E, /* connected in TN3270E mode, unnegotiated */ CONNECTED_NVT, /* connected in TN3270E mode, NVT mode */ CONNECTED_SSCP, /* connected in TN3270E mode, SSCP-LU mode */ CONNECTED_TN3270E /* connected in TN3270E mode, 3270 mode */ }; extern enum cstate cstate; #define PCONNECTED ((int)cstate >= (int)RESOLVING) #define HALF_CONNECTED (cstate == RESOLVING || cstate == PENDING) #define CONNECTED ((int)cstate >= (int)CONNECTED_INITIAL) #define IN_NEITHER (cstate == CONNECTED_INITIAL) #define IN_ANSI (cstate == CONNECTED_ANSI || cstate == CONNECTED_NVT) #define IN_3270 (cstate == CONNECTED_3270 || cstate == CONNECTED_TN3270E || cstate == CONNECTED_SSCP) #define IN_SSCP (cstate == CONNECTED_SSCP) #define IN_TN3270E (cstate == CONNECTED_TN3270E) #define IN_E (cstate >= CONNECTED_INITIAL_E) /* keyboard modifer bitmap */ #define ShiftKeyDown 0x01 #define MetaKeyDown 0x02 #define AltKeyDown 0x04 /* toggle names */ struct toggle_name { const char *name; int index; }; extern struct toggle_name toggle_names[]; /* extended attributes */ struct ea { unsigned char cc; /* EBCDIC or ASCII character code */ unsigned char fa; /* field attribute, it nonzero */ unsigned char fg; /* foreground color (0x00 or 0xf) */ unsigned char bg; /* background color (0x00 or 0xf) */ unsigned char gr; /* ANSI graphics rendition bits */ unsigned char cs; /* character set (GE flag, or 0..2) */ unsigned char ic; /* input control (DBCS) */ unsigned char db; /* DBCS state */ }; #define GR_BLINK 0x01 #define GR_REVERSE 0x02 #define GR_UNDERLINE 0x04 #define GR_INTENSIFY 0x08 #define CS_MASK 0x03 /* mask for specific character sets */ #define CS_BASE 0x00 /* base character set (X'00') */ #define CS_APL 0x01 /* APL character set (X'01' or GE) */ #define CS_LINEDRAW 0x02 /* DEC line-drawing character set (ANSI) */ #define CS_DBCS 0x03 /* DBCS character set (X'F8') */ #define CS_GE 0x04 /* cs flag for Graphic Escape */ /* translation lists */ struct trans_list { char *name; char *pathname; Boolean is_temp; Boolean from_server; struct trans_list *next; }; extern struct trans_list *trans_list; /* input key type */ enum keytype { KT_STD, KT_GE }; /* state changes */ #define ST_RESOLVING 1 #define ST_HALF_CONNECT 2 #define ST_CONNECT 3 #define ST_3270_MODE 4 #define ST_LINE_MODE 5 #define ST_REMODEL 6 #define ST_PRINTER 7 #define ST_EXITING 8 #define ST_CHARSET 9 #define N_ST 10 /* Naming convention for private actions. */ #define PA_PFX "PA-" /* Shorthand macros */ #define CN ((char *) NULL) #define PN ((XtPointer) NULL) #define Replace(var, value) { Free(var); var = (value); } /* Configuration change masks. */ #define NO_CHANGE 0x0000 /* no change */ #define MODEL_CHANGE 0x0001 /* screen dimensions changed */ #define FONT_CHANGE 0x0002 /* emulator font changed */ #define COLOR_CHANGE 0x0004 /* color scheme or 3278/9 mode changed */ #define SCROLL_CHANGE 0x0008 /* scrollbar snapped on or off */ #define CHARSET_CHANGE 0x0010 /* character set changed */ #define ALL_CHANGE 0xffff /* everything changed */ /* Portability macros */ /* Equivalent of setlinebuf */ #if defined(_IOLBF) /*[*/ #define SETLINEBUF(s) setvbuf(s, (char *)NULL, _IOLBF, BUFSIZ) #else /*][*/ #define SETLINEBUF(s) setlinebuf(s) #endif /*]*/ /* Motorola version of gettimeofday */ #if defined(MOTOROLA) #define gettimeofday(tp,tz) gettimeofday(tp) #endif /* Default DFT file transfer buffer size. */ #if defined(X3270_FT) && !defined(DFT_BUF) /*[*/ #define DFT_BUF (4 * 1024) #endif /*]*/ /* DBCS Preedit Types */ #if defined(X3270_DBCS) /*[*/ #define PT_ROOT "Root" #define PT_OVER_THE_SPOT "OverTheSpot" #define PT_OFF_THE_SPOT "OffTheSpot" #define PT_ON_THE_SPOT "OnTheSpot" #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/keymapc.h0000644000175000017500000000306511254565673015747 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* (Empty) non-display version of keymapc.h */ ibm-3270-3.3.10ga4/ws3270/idle.c0000644000175000017500000004453711254565704015232 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * idle.c * This module handles the idle command. */ #include "globals.h" #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #include #include #include #include #include #include #include #include #endif /*]*/ #include #include "appres.h" #include "dialogc.h" #include "hostc.h" #include "idlec.h" #include "macrosc.h" #include "objects.h" #include "popupsc.h" #include "resources.h" #include "trace_dsc.h" #include "utilc.h" /* Macros. */ #define MSEC_PER_SEC 1000L #define IDLE_SEC 1L #define IDLE_MIN 60L #define IDLE_HR (60L * 60L) #define IDLE_MS (7L * IDLE_MIN * MSEC_PER_SEC) #if defined(X3270_DISPLAY) /*[*/ #define FILE_WIDTH 300 /* width of file name widgets */ #define MARGIN 3 /* distance from margins to widgets */ #define CLOSE_VGAP 0 /* distance between paired toggles */ #define FAR_VGAP 10 /* distance between single toggles and groups */ #define BUTTON_GAP 5 /* horizontal distance between buttons */ #endif /*]*/ #define BN (Boolean *)NULL /* Externals. */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ extern Pixmap diamond; extern Pixmap no_diamond; extern Pixmap dot; extern Pixmap no_dot; #endif /*]*/ /* Globals. */ Boolean idle_changed = False; char *idle_command = CN; char *idle_timeout_string = CN; enum idle_enum idle_user_enabled = IDLE_DISABLED; /* Statics. */ static Boolean idle_enabled = False; /* validated and user-enabled */ static unsigned long idle_n = 0L; static unsigned long idle_multiplier = IDLE_SEC; static unsigned long idle_id; static unsigned long idle_ms; static Boolean idle_randomize = False; static Boolean idle_ticking = False; static void idle_in3270(Boolean in3270); static int process_timeout_value(char *t); #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static enum idle_enum s_disabled = IDLE_DISABLED; static enum idle_enum s_session = IDLE_SESSION; static enum idle_enum s_perm = IDLE_PERM; static char hms = 'm'; static Boolean fuzz = False; static char s_hours = 'h'; static char s_minutes = 'm'; static char s_seconds = 's'; static Widget idle_dialog, idle_shell, command_value, timeout_value; static Widget enable_toggle, enable_perm_toggle, disable_toggle; static Widget hours_toggle, minutes_toggle, seconds_toggle, fuzz_toggle; static sr_t *idle_sr = (sr_t *)NULL; static void idle_cancel(Widget w, XtPointer client_data, XtPointer call_data); static void idle_popup_callback(Widget w, XtPointer client_data, XtPointer call_data); static void idle_popup_init(void); static int idle_start(void); static void okay_callback(Widget w, XtPointer call_parms, XtPointer call_data); static void toggle_enable(Widget w, XtPointer client_data, XtPointer call_data); static void mark_toggle(Widget w, Pixmap p); static void toggle_hms(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_fuzz(Widget w, XtPointer client_data, XtPointer call_data); #endif /*]*/ /* Initialization. */ void idle_init(void) { char *cmd, *tmo; /* Register for state changes. */ register_schange(ST_3270_MODE, idle_in3270); register_schange(ST_CONNECT, idle_in3270); /* Get values from resources. */ cmd = appres.idle_command; idle_command = cmd? NewString(cmd): CN; tmo = appres.idle_timeout; idle_timeout_string = tmo? NewString(tmo): CN; if (appres.idle_command_enabled) idle_user_enabled = IDLE_PERM; else idle_user_enabled = IDLE_DISABLED; if (idle_user_enabled && idle_command != CN && process_timeout_value(idle_timeout_string) == 0) idle_enabled = True; /* Seed the random number generator (we seem to be the only user). */ #if defined(_WIN32) /*[*/ srand(time(NULL)); #else /*][*/ srandom(time(NULL)); #endif /*]*/ } /* * Process a timeout value: or ~?[0-9]+[HhMmSs] * Returns 0 for success, -1 for failure. * Sets idle_ms and idle_randomize as side-effects. */ static int process_timeout_value(char *t) { char *s = t; char *ptr; if (s == CN || *s == '\0') { idle_ms = IDLE_MS; idle_randomize = True; return 0; } if (*s == '~') { idle_randomize = True; s++; } idle_n = strtoul(s, &ptr, 0); if (idle_n <= 0) goto bad_idle; switch (*ptr) { case 'H': case 'h': idle_multiplier = IDLE_HR; break; case 'M': case 'm': idle_multiplier = IDLE_MIN; break; case 'S': case 's': case '\0': idle_multiplier = IDLE_SEC; break; default: goto bad_idle; } idle_ms = idle_n * idle_multiplier * MSEC_PER_SEC; return 0; bad_idle: popup_an_error("Invalid idle timeout value '%s'", t); idle_ms = 0L; idle_randomize = False; return -1; } /* Called when a host connects or disconnects. */ static void idle_in3270(Boolean in3270 _is_unused) { if (IN_3270) { reset_idle_timer(); } else { /* Not in 3270 mode any more, turn off the timeout. */ if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } /* If the user didn't want it to be permanent, disable it. */ if (idle_user_enabled != IDLE_PERM) idle_user_enabled = IDLE_DISABLED; } } /* * Idle timeout. */ static void idle_timeout(void) { trace_event("Idle timeout\n"); idle_ticking = False; push_idle(idle_command); reset_idle_timer(); } /* * Reset (and re-enable) the idle timer. Called when the user presses a key or * clicks with the mouse. */ void reset_idle_timer(void) { if (idle_enabled) { unsigned long idle_ms_now; if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } idle_ms_now = idle_ms; if (idle_randomize) { idle_ms_now = idle_ms; #if defined(_WIN32) /*[*/ idle_ms_now -= rand() % (idle_ms / 10L); #else /*][*/ idle_ms_now -= random() % (idle_ms / 10L); #endif /*]*/ } #if defined(DEBUG_IDLE_TIMEOUT) /*[*/ trace_event("Setting idle timeout to %lu\n", idle_ms_now); #endif /*]*/ idle_id = AddTimeOut(idle_ms_now, idle_timeout); idle_ticking = True; } } /* * Cancel the idle timer. This is called when there is an error in * processing the idle command. */ void cancel_idle_timer(void) { if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } idle_enabled = False; } char * get_idle_command(void) { return idle_command; } char * get_idle_timeout(void) { return idle_timeout_string; } #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ /* "Idle Command" dialog. */ /* * Pop up the "Idle" menu. * Called back from the "Configure Idle Command" option on the Options menu. */ void popup_idle(void) { char *its; char *s; /* Initialize it. */ if (idle_shell == (Widget)NULL) idle_popup_init(); /* * Split the idle_timeout_string (the raw resource value) into fuzz, * a number, and h/m/s. */ its = NewString(idle_timeout_string); if (its != CN) { if (*its == '~') { fuzz = True; its++; } else { fuzz = False; } s = its; while (isdigit(*s)) s++; switch (*s) { case 'h': case 'H': hms = 'h'; break; case 'm': case 'M': hms = 'm'; break; case 's': case 'S': hms = 's'; break; default: break; } *s = '\0'; } /* Set the resource values. */ dialog_set(&idle_sr, idle_dialog); XtVaSetValues(command_value, XtNstring, idle_command, NULL); XtVaSetValues(timeout_value, XtNstring, its, NULL); mark_toggle(enable_toggle, (idle_user_enabled == IDLE_SESSION)? diamond : no_diamond); mark_toggle(enable_perm_toggle, (idle_user_enabled == IDLE_PERM)? diamond : no_diamond); mark_toggle(disable_toggle, (idle_user_enabled == IDLE_DISABLED)? diamond : no_diamond); mark_toggle(hours_toggle, (hms == 'h') ? diamond : no_diamond); mark_toggle(minutes_toggle, (hms == 'm') ? diamond : no_diamond); mark_toggle(seconds_toggle, (hms == 's') ? diamond : no_diamond); mark_toggle(fuzz_toggle, fuzz ? dot : no_dot); /* Pop it up. */ popup_popup(idle_shell, XtGrabNone); } /* Initialize the idle pop-up. */ static void idle_popup_init(void) { Widget w; Widget cancel_button; Widget command_label, timeout_label; Widget okay_button; /* Prime the dialog functions. */ dialog_set(&idle_sr, idle_dialog); /* Create the menu shell. */ idle_shell = XtVaCreatePopupShell( "idlePopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(idle_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(idle_shell, XtNpopupCallback, idle_popup_callback, (XtPointer)NULL); /* Create the form within the shell. */ idle_dialog = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, idle_shell, NULL); /* Create the file name widgets. */ command_label = XtVaCreateManagedWidget( "command", labelWidgetClass, idle_dialog, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); command_value = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, idle_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNvertDistance, FAR_VGAP, XtNfromHoriz, command_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(command_label, command_value, XtNheight); w = XawTextGetSource(command_value); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_command); dialog_register_sensitivity(command_value, BN, False, BN, False, BN, False); timeout_label = XtVaCreateManagedWidget( "timeout", labelWidgetClass, idle_dialog, XtNfromVert, command_label, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); timeout_value = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, idle_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNdisplayCaret, False, XtNfromVert, command_label, XtNvertDistance, 3, XtNfromHoriz, timeout_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(timeout_label, timeout_value, XtNheight); dialog_match_dimension(command_label, timeout_label, XtNwidth); w = XawTextGetSource(timeout_value); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(timeout_value, BN, False, BN, False, BN, False); /* Create the hour/minute/seconds radio buttons. */ hours_toggle = XtVaCreateManagedWidget( "hours", commandWidgetClass, idle_dialog, XtNfromVert, timeout_value, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(hours_toggle, no_diamond); XtAddCallback(hours_toggle, XtNcallback, toggle_hms, (XtPointer)&s_hours); minutes_toggle = XtVaCreateManagedWidget( "minutes", commandWidgetClass, idle_dialog, XtNfromVert, timeout_value, XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, hours_toggle, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(minutes_toggle, diamond); XtAddCallback(minutes_toggle, XtNcallback, toggle_hms, (XtPointer)&s_minutes); seconds_toggle = XtVaCreateManagedWidget( "seconds", commandWidgetClass, idle_dialog, XtNfromVert, timeout_value, XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, minutes_toggle, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(seconds_toggle, no_diamond); XtAddCallback(seconds_toggle, XtNcallback, toggle_hms, (XtPointer)&s_seconds); /* Create the fuzz toggle. */ fuzz_toggle = XtVaCreateManagedWidget( "fuzz", commandWidgetClass, idle_dialog, XtNfromVert, hours_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNsensitive, True, NULL); dialog_apply_bitmap(fuzz_toggle, no_dot); XtAddCallback(fuzz_toggle, XtNcallback, toggle_fuzz, (XtPointer)NULL); /* Create enable/disable toggles. */ enable_toggle = XtVaCreateManagedWidget( "enable", commandWidgetClass, idle_dialog, XtNfromVert, fuzz_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(enable_toggle, (idle_user_enabled == IDLE_SESSION)? diamond : no_diamond); XtAddCallback(enable_toggle, XtNcallback, toggle_enable, (XtPointer)&s_session); enable_perm_toggle = XtVaCreateManagedWidget( "enablePerm", commandWidgetClass, idle_dialog, XtNfromVert, enable_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(enable_perm_toggle, (idle_user_enabled == IDLE_PERM)? diamond : no_diamond); XtAddCallback(enable_perm_toggle, XtNcallback, toggle_enable, (XtPointer)&s_perm); disable_toggle = XtVaCreateManagedWidget( "disable", commandWidgetClass, idle_dialog, XtNfromVert, enable_perm_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(disable_toggle, (idle_user_enabled == IDLE_DISABLED)? diamond : no_diamond); XtAddCallback(disable_toggle, XtNcallback, toggle_enable, (XtPointer)&s_disabled); /* Set up the buttons at the bottom. */ okay_button = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, idle_dialog, XtNfromVert, disable_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(okay_button, XtNcallback, okay_callback, (XtPointer)NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, idle_dialog, XtNfromVert, disable_toggle, XtNvertDistance, FAR_VGAP, XtNfromHoriz, okay_button, XtNhorizDistance, BUTTON_GAP, NULL); XtAddCallback(cancel_button, XtNcallback, idle_cancel, 0); } /* Callbacks for all the idle widgets. */ /* Idle pop-up popping up. */ static void idle_popup_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Set the focus to the command widget. */ PA_dialog_focus_action(command_value, (XEvent *)NULL, (String *)NULL, (Cardinal *)NULL); } /* Cancel button pushed. */ static void idle_cancel(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(idle_shell); } /* OK button pushed. */ static void okay_callback(Widget w _is_unused, XtPointer call_parms _is_unused, XtPointer call_data _is_unused) { if (idle_start() == 0) { idle_changed = True; XtPopdown(idle_shell); } } /* Mark a toggle. */ static void mark_toggle(Widget w, Pixmap p) { XtVaSetValues(w, XtNleftBitmap, p, NULL); } /* Hour/minute/second options. */ static void toggle_hms(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ hms = *(char *)client_data; /* Change the widget states. */ mark_toggle(hours_toggle, (hms == 'h') ? diamond : no_diamond); mark_toggle(minutes_toggle, (hms == 'm') ? diamond : no_diamond); mark_toggle(seconds_toggle, (hms == 's') ? diamond : no_diamond); } /* Fuzz option. */ static void toggle_fuzz(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ fuzz = !fuzz; /* Change the widget state. */ mark_toggle(fuzz_toggle, fuzz ? dot : no_dot); } /* Enable/disable options. */ static void toggle_enable(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ idle_user_enabled = *(enum idle_enum *)client_data; /* Change the widget states. */ mark_toggle(enable_toggle, (idle_user_enabled == IDLE_SESSION)? diamond: no_diamond); mark_toggle(enable_perm_toggle, (idle_user_enabled == IDLE_PERM)? diamond: no_diamond); mark_toggle(disable_toggle, (idle_user_enabled == IDLE_DISABLED)? diamond: no_diamond); } /* * Called when the user presses the OK button on the idle command dialog. * Returns 0 for success, -1 otherwise. */ static int idle_start(void) { char *cmd, *tmo, *its; /* Update the globals, so the dialog has the same values next time. */ XtVaGetValues(command_value, XtNstring, &cmd, NULL); Replace(idle_command, NewString(cmd)); XtVaGetValues(timeout_value, XtNstring, &tmo, NULL); its = Malloc(strlen(tmo) + 3); (void) sprintf(its, "%s%s%c", fuzz? "~": "", tmo, hms); Replace(idle_timeout_string, its); /* See if they've turned it off. */ if (!idle_user_enabled) { /* If they're turned it off, cancel the timer. */ idle_enabled = False; if (idle_ticking) { RemoveTimeOut(idle_id); idle_ticking = False; } return 0; } /* They've turned it on, and possibly reconfigured it. */ /* Validate the timeout. It should work, yes? */ if (process_timeout_value(its) < 0) { return -1; } /* Seems okay. Reset to the new interval and command. */ idle_enabled = True; if (IN_3270) { reset_idle_timer(); } return 0; } #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/windirs.c0000644000175000017500000002276711254565675016004 0ustar bastianbastian/* * Copyright (c) 2006-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * windirs.c * A Windows console-based 3270 Terminal Emulator * Find common directory paths. */ #include #include #include #include #include "windirsc.h" /* * If Win2K or later, use SHGetFoldersA from shell32.dll. * Otherwise, use the function below. */ /* Locate the desktop and appdata directories from the Windows registry. */ static int old_get_dirs(char **desktop, char **appdata) { HRESULT hres; HKEY hkey; DWORD index; /* Get some paths from Windows. */ hres = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", 0, KEY_QUERY_VALUE, &hkey); if (hres != ERROR_SUCCESS) { printf("Sorry, I can't figure out where your Desktop or " "Application Data directories are, Windows error " "%ld.\n", hres); return -1; } if (desktop != NULL) { *desktop = malloc(MAX_PATH); if (*desktop == NULL) return -1; (*desktop)[0] = '\0'; } if (appdata != NULL) { *appdata = malloc(MAX_PATH); if (*appdata == NULL) return -1; (*appdata)[0] = '\0'; } /* * Iterate to find Desktop and AppData. * We can't just go for them individually, because we can't use * ReqQueryValueEx on Win98, and ReqQueryValue doesn't work. */ for (index = 0; ; index++) { char name[MAX_PATH]; DWORD nlen = MAX_PATH; char value[MAX_PATH]; DWORD vlen = MAX_PATH; DWORD type; hres = RegEnumValue(hkey, index, name, &nlen, 0, &type, (unsigned char *)value, &vlen); if (hres != ERROR_SUCCESS) break; if (desktop != NULL && !strcmp(name, "Desktop")) strcpy(*desktop, value); else if (appdata != NULL && !strcmp(name, "AppData")) strcpy(*appdata, value); if ((desktop == NULL || (*desktop)[0]) && (appdata == NULL || (*appdata)[0])) break; } RegCloseKey(hkey); if ((desktop != NULL && !(*desktop)[0]) || (appdata != NULL && !(*appdata)[0])) { printf("Sorry, I can't figure out where your Desktop or " "Application Data directories are.\n"); return -1; } return 0; } /* * dll_SHGetFolderPath explicitly pulls SHGetFolderPathA out of shell32.dll, * so we won't get link errors on Win98. */ static HRESULT dll_SHGetFolderPath(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwFlags, LPTSTR pszPath) { static HMODULE handle = NULL; static FARPROC p = NULL; typedef HRESULT (__stdcall *sgfp_fn)(HWND, int, HANDLE, DWORD, LPSTR); if (handle == NULL) { handle = LoadLibrary("shell32.dll"); if (handle == NULL) { fprintf(stderr, "Cannot find shell32.dll\n"); return E_FAIL; } p = GetProcAddress(handle, "SHGetFolderPathA"); if (p == NULL) { fprintf(stderr, "Cannot find SHGetFolderPathA in " "shell32.dll\n"); return E_FAIL; } } return ((sgfp_fn)p)(hwndOwner, nFolder, hToken, dwFlags, pszPath); } /* Locate the desktop and appdata directories via the SHGetFolderPath API. */ static int new_get_dirs(char **desktop, char **appdata) { HRESULT r; if (desktop != NULL) { *desktop = malloc(MAX_PATH); if (*desktop == NULL) return -1; r = dll_SHGetFolderPath(NULL, CSIDL_DESKTOPDIRECTORY, NULL, SHGFP_TYPE_CURRENT, *desktop); if (r != S_OK) { printf("SHGetFolderPath(DESKTOPDIRECTORY) failed: " "0x%x\n", (int)r); fflush(stdout); return -1; } } if (appdata != NULL) { *appdata = malloc(MAX_PATH); if (*appdata == NULL) return -1; r = dll_SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, *appdata); if (r != S_OK) { printf("SHGetFolderPath(APPDATA) failed: 0x%x\n", (int)r); fflush(stdout); return -1; } } return 0; } /* Return the current working directory, always ending with a '\'. */ static char * getcwd_bsl(void) { char *wd; size_t sl; wd = _getcwd(NULL, 0); sl = strlen(wd); if (sl > 0 && wd[sl - 1] != '\\') { char *xwd; xwd = malloc(sl + 2); if (xwd == NULL) return NULL; strcpy(xwd, wd); strcat(xwd, "\\"); free(wd); wd = xwd; } return wd; } /* * Locate the installation, desktop and app-data directories. * Return them in malloc'd buffers, all with trailing backslashes. * Also return a flag indicating that the program was installed. * If returning AppData and the program is installed, make sure that the * directory exists. * * param[in] argv0 program's argv[0] * param[in] appname application name (for app-data) * param[out] instdir installation directory (or NULL) * param[out] desktop desktop directory (or NULL) * param[out] appdata app-data directory (or NULL) * param[out] installed is the program installed? * * Returns 0 for success, -1 for an unrecoverable error. * All returned directories end in '\'. * * Uses the presence of CATF.EXE to decide if the program is installed or * not. If not, appdata is returned as the cwd. */ int get_dirs(char *argv0, char *appname, char **instdir, char **desktop, char **appdata, int *installed) { char **xappdata = appdata; int is_installed = FALSE; if (appdata != NULL || installed != NULL) { HMODULE h; h = LoadLibrary("CATF.EXE"); if (h != NULL) { FreeLibrary(h); is_installed = TRUE; } else { is_installed = FALSE; } if (installed != NULL) *installed = is_installed; } /* * Use arg0 and GetFullPathName() to figure out the installation * directory. */ if (instdir != NULL) { char *bsl; char *tmp_instdir; DWORD rv; bsl = strrchr(argv0, '\\'); if (bsl != NULL) { /* argv0 contains a path. */ tmp_instdir = malloc(strlen(argv0) + 1); if (tmp_instdir == NULL) return -1; strcpy(tmp_instdir, argv0); if (bsl - argv0 > 0 && tmp_instdir[bsl - argv0 - 1] == ':') /* X:\foo */ tmp_instdir[bsl - argv0 + 1] = '\0'; else /* X:\foo\bar */ tmp_instdir[bsl - argv0] = '\0'; rv = GetFullPathName(tmp_instdir, 0, NULL, NULL); *instdir = malloc(rv + 2); if (*instdir == NULL) return -1; if (GetFullPathName(tmp_instdir, rv + 1, *instdir, NULL) == 0) return -1; free(tmp_instdir); /* Make sure instdir ends in '\\'. */ if ((*instdir)[strlen(*instdir) - 1] != '\\') strcat(*instdir, "\\"); } else { *instdir = getcwd_bsl(); if (*instdir == NULL) return -1; } } /* If not installed, app-data is cwd. */ if (appdata != NULL && !is_installed) { *appdata = getcwd_bsl(); if (*appdata == NULL) return -1; /* Keep xxx_get_dirs() from resolving it below. */ xappdata = NULL; } if (desktop != NULL || xappdata != NULL) { OSVERSIONINFO info; char *wsl; /* Figure out what version of Windows this is. */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); return -1; } if ((info.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) || (info.dwMajorVersion < 5)) { /* Use the registry. */ if (old_get_dirs(desktop, xappdata) < 0) return -1; } else { /* Use the API. */ if (new_get_dirs(desktop, xappdata) < 0) return -1; } /* Append a trailing "\" to Desktop. */ if (desktop != NULL && (*desktop)[strlen(*desktop) - 1] != '\\') { wsl = malloc(strlen(*desktop) + 2); if (wsl == NULL) return -1; sprintf(wsl, "%s\\", *desktop); free(*desktop); *desktop = wsl; } /* Append the application name and trailing "\" to AppData. */ if (xappdata != NULL) { size_t sl = strlen(*xappdata); wsl = malloc(sl + 1 + strlen(appname) + 2); if (wsl == NULL) return -1; sprintf(wsl, "%s\\%s\\", *xappdata, appname); free(*xappdata); *xappdata = wsl; /* * Create the AppData directory, in case the program * was installed by a different user. */ _mkdir(*xappdata); } } #if defined(DEBUG) /*[*/ printf("get_dirs: instdir '%s', desktop '%s', appdata '%s'\n", instdir? *instdir: "(none)", desktop? *desktop: "(none)", appdata? *appdata: "(none)"); printf("Enter..."); fflush(stdout); (void) getchar(); #endif /*]*/ return 0; } ibm-3270-3.3.10ga4/ws3270/unicodec.h0000644000175000017500000000640511254565704016103 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* EBCDIC-to-Unicode options */ #define EUO_NONE 0x00000000 /* no options */ #define EUO_BLANK_UNDEF 0x00000001 /* if undefined, return U+0020 */ #define EUO_UPRIV 0x00000002 /* translate FM/DUP/SUB/EO to UPRIV */ #define EUO_ASCII_BOX 0x00000004 /* use ASCII for box drawing */ extern ucs4_t ebcdic_to_unicode(ebc_t e, unsigned char cs, unsigned flags); extern ucs4_t ebcdic_base_to_unicode(ebc_t e, unsigned flags); extern ebc_t unicode_to_ebcdic(ucs4_t u); extern ebc_t unicode_to_ebcdic_ge(ucs4_t u, Boolean *ge); extern int set_uni(const char *csname, const char **host_codepage, const char **cgcsgid, const char **display_charsets); extern int linedraw_to_unicode(ebc_t e); extern int apl_to_unicode(ebc_t e, unsigned flags); #if !defined(_WIN32) && !defined(UNICODE_WCHAR) /*[*/ extern iconv_t i_u2mb; extern iconv_t i_mb2u; #endif /*]*/ extern int ebcdic_to_multibyte_x(ebc_t ebc, unsigned char cs, char mb[], int mb_len, unsigned flags, ucs4_t *uc); extern int ebcdic_to_multibyte(ebc_t ebc, char mb[], int mb_len); extern int ebcdic_to_multibyte_string(unsigned char *ebc, size_t ebc_len, char mb[], size_t mb_len); extern int mb_max_len(int len); enum me_fail { ME_NONE, /* no error */ ME_INVALID, /* invalid sequence */ ME_SHORT /* incomplete sequence */ }; extern ucs4_t multibyte_to_unicode(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp); extern int multibyte_to_unicode_string(char *mb, size_t mb_len, ucs4_t *ucs4, size_t u_len); extern ebc_t multibyte_to_ebcdic(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp); extern int multibyte_to_ebcdic_string(char *mb, size_t mb_len, unsigned char *ebc, size_t ebc_len, enum me_fail *errorp); extern int unicode_to_multibyte(ucs4_t ucs4, char *mb, size_t mb_len); ibm-3270-3.3.10ga4/ws3270/README.txt0000644000175000017500000000242211254565672015636 0ustar bastianbastianws3270 3.3 Release ws3270 is a scripted IBM 3278/3279 terminal emulator. Documentation is in the html directory. The files are: Intro What ws3270 is Lineage Where ws3270 came from (copyright stuff) Build How to build ws3270 from source FAQ Frequently Asked Questions (what to do when something goes wrong) New What's new in this release Bugs What's broken in this release Wishlist What isn't in this release There is a hypertext version of the ws3270 man page, and of the man page for x3270-script. Please read Build before going ahead and building the program. Also, if you have a problem, scan through FAQ; there are lots of interesting answers there. Updates to ws3270, as well as the current status of development and bugs, are available from the x3270 Web Page, http://x3270.sourceforge.net/. Feel free to send comments, criticism, suggestions, complaints, etc., to Paul Mattes, Paul.Mattes@usa.net. Requests will be addressed as time and resources permit. There is also an x3270 mailing list, which also includes information about ws3270, and which receives news about new releases. Send a message to Paul.Mattes@usa.net (a real person, with an automatic responses for certain subject lines) to get on the list. ibm-3270-3.3.10ga4/ws3270/rpq.c0000644000175000017500000005044111254565704015106 0ustar bastianbastian/* * Copyright (c) 2005-2009, Paul Mattes. * Copyright (c) 2004-2005, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * rpq.c * RPQNAMES structured field support. * */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #if !defined(_WIN32) /*[*/ #include #include #endif /*]*/ #include #include #include "3270ds.h" #include "appres.h" #include "popupsc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" /* Statics */ static Boolean select_rpq_terms(void); static int get_rpq_timezone(void); static int get_rpq_user(unsigned char buf[], const int buflen); #if !defined(_WIN32) /*[*/ static int get_rpq_address(unsigned char buf[], const int buflen); #endif /*]*/ static void rpq_warning(const char *fmt, ...); static void rpq_dump_warnings(void); static Boolean rpq_complained = False; #if !defined(_WIN32) /*[*/ static Boolean omit_due_space_limit = False; #endif /*]*/ /* * Define symbolic names for RPQ self-defining terms. * (Numbering is arbitrary, but must be 0-255 inclusive. * Do not renumber existing items because these identify the * self-defining term to the mainframe software. Changing pre-existing * values will possibly impact host based software. */ #define RPQ_ADDRESS 0 #define RPQ_TIMESTAMP 1 #define RPQ_TIMEZONE 2 #define RPQ_USER 3 #define RPQ_VERSION 4 /* * Define a table of RPQ self-defing terms. * NOTE: Synonyms could be specified by coding different text items but using * the same "id" value. * Items should be listed in alphabetical order by "text" name so if the user * specifies abbreviations, they work in a predictable manner. E.g., "TIME" * should match TIMESTAMP instead of TIMEZONE. */ static struct rpq_keyword { Boolean omit; /* set from X3270RPQ="kw1:kw2..." environment var */ int oride; /* displacement */ const Boolean allow_oride; const unsigned char id; const char *text; } rpq_keywords[] = { {True, 0, True, RPQ_ADDRESS, "ADDRESS"}, {True, 0, False, RPQ_TIMESTAMP, "TIMESTAMP"}, {True, 0, True, RPQ_TIMEZONE, "TIMEZONE"}, {True, 0, True, RPQ_USER, "USER"}, {True, 0, False, RPQ_VERSION, "VERSION"}, }; #define NS_RPQ (sizeof(rpq_keywords)/sizeof(rpq_keywords[0])) static char *x3270rpq; /* * RPQNAMES query reply. */ void do_qr_rpqnames(void) { #define TERM_PREFIX_SIZE 2 /* Each term has 1 byte length and 1 byte id */ unsigned char *rpql, *p_term; unsigned j; int term_id,i,x; int remaining = 254; /* maximum data area for rpqname reply */ Boolean omit_due_space_limit; trace_ds("> QueryReply(RPQNames)\n"); /* * Allocate enough space for the maximum allowed item. * By pre-allocating the space I don't have to worry about the * possibility of addresses changing. */ space3270out(4+4+1+remaining); /* Maximum space for an RPQNAME item */ SET32(obptr, 0); /* Device number, 0 = All */ SET32(obptr, 0); /* Model number, 0 = All */ rpql = obptr++; /* Save address to place data length. */ /* * Create fixed length portion - program id: x3270 * This is known 8-bit text so we can use asc2ebc0 to translate it. */ for (j = 0; j < 5; j++) { *obptr++ = asc2ebc0[(int)"x3270"[j]]; remaining--; } /* Create user selected variable-length self-defining terms. */ select_rpq_terms(); for (j=0; j remaining); if (!omit_due_space_limit) { for (i = 0; i < x; i++) { *obptr++ = asc2ebc0[(int)(*(build_rpq_version+i) & 0xff)]; } } break; case RPQ_TIMESTAMP: /* program build time (yyyymmddhhmmss bcd) */ x = strlen(build_rpq_timestamp); omit_due_space_limit = ((x+1)/2 > remaining); if (!omit_due_space_limit) { for (i=0; i < x; i+=2) { *obptr++ = ((*(build_rpq_timestamp+i) - '0') << 4) + (*(build_rpq_timestamp+i+1) - '0'); } } break; default: /* unsupported ID, (can't happen) */ Error("Unsupported RPQ term"); break; } if (omit_due_space_limit) rpq_warning("RPQ %s term omitted due to insufficient " "space", rpq_keywords[j].text); /* * The item is built, insert item length as needed and * adjust space remaining. * obptr now points at "next available byte". */ x = obptr-p_term; if (x > TERM_PREFIX_SIZE) { *p_term = x; remaining -= x; /* This includes length and id fields, correction below */ } else { /* We didn't add an item after all, reset pointer. */ obptr = p_term; } /* * When we calculated the length of the term, a few lines * above, that length included the term length and term id * prefix too. (TERM_PREFIX_SIZE) * But just prior to the switch statement, we decremented the * remaining space by that amount so subsequent routines would * be told how much space they have for their data, without * each routine having to account for that prefix. * That means the remaining space is actually more than we * think right now, by the length of the prefix.... add that * back so the remaining space is accurate. * * And... if there was no item added, we still have to make the * same correction to "claim back" the term prefix area so it * may be used by the next possible term. */ remaining += TERM_PREFIX_SIZE; } /* Fill in overall length of RPQNAME info */ *rpql = (obptr - rpql); rpq_dump_warnings(); } /* Utility function used by the RPQNAMES query reply. */ static Boolean select_rpq_terms(void) { size_t i; unsigned j,k; int len; char *uplist; char *p1, *p2; char *kw; Boolean is_no_form; /* See if the user wants any rpqname self-defining terms returned */ if ((x3270rpq = getenv("X3270RPQ")) == NULL) return False; /* * Make an uppercase copy of the user selections so I can match * keywords more easily. * If there are override values, I'll get those from the ORIGINAL * string so upper/lower case is preserved as necessary. */ uplist = (char *) malloc(strlen(x3270rpq)+1); assert(uplist != NULL); p1 = uplist; p2 = x3270rpq; do { *p1++ = toupper(*p2++); } while (*p2); *p1 = '\0'; for (i=0; i 2) && (strncmp("NO", kw, 2) == 0)); if (is_no_form) { kw+=2; /* skip "NO" prefix for matching keyword */ len-=2; /* adjust keyword length */ } for (j=0; j < NS_RPQ; j++) { if (strncmp(kw, rpq_keywords[j].text, len) == 0) { rpq_keywords[j].omit = is_no_form; if (*p1 == '=') { if (rpq_keywords[j].allow_oride) { rpq_keywords[j].oride = p1-uplist+1; } else { rpq_warning("RPQ %s term " "override " "ignored", p1); } } break; } } if (j >= NS_RPQ) { /* unrecognized keyword... */ if (strcmp(kw,"ALL") == 0) { for (k=0; k < NS_RPQ; k++) rpq_keywords[k].omit = is_no_form; } else { rpq_warning("RPQ term \"%s\" is unrecognized", kw); } } } free(uplist); /* * Return to caller with indication (T/F) of any items * to be selected (T) or are all terms suppressed? (F) */ for (i=0; i id != RPQ_TIMEZONE; kw++) { } /* Is there a user override? */ if ((kw->allow_oride) && (kw->oride > 0)) { ldiv_t hhmm; long x; p1 = x3270rpq+kw->oride; x = strtol(p1, &p2, 10); if (errno != 0) { rpq_warning("RPQ TIMEZONE term is invalid - " "use +/-hhmm"); return 4; } if ((*p2 != '\0') && (*p2 != ':') && (!isspace(*p2))) return 4; hhmm = ldiv(x, 100L); if (hhmm.rem > 59L) { rpq_warning("RPQ TIMEZONE term is invalid - " "use +/-hhmm"); return 4; } delta = (labs(hhmm.quot) * 60L) + hhmm.rem; if (hhmm.quot < 0L) delta = -delta; } else { /* * No override specified, try to get information from the * system. */ if ((here = time(NULL)) == (time_t)(-1)) { rpq_warning("RPQ: Unable to determine workstation " "local time"); return 1; } memcpy(&here_tm, localtime(&here), sizeof(struct tm)); if ((utc_tm = gmtime(&here)) == NULL) { rpq_warning("RPQ: Unable to determine workstation UTC " "time"); return 2; } /* * Do not take Daylight Saving Time into account. * We just want the "raw" time difference. */ here_tm.tm_isdst = 0; utc_tm->tm_isdst = 0; delta = difftime(mktime(&here_tm), mktime(utc_tm)) / 60L; } /* sanity check: difference cannot exceed +/- 12 hours */ if (labs(delta) > 720L) rpq_warning("RPQ timezone exceeds 12 hour UTC offset"); return (labs(delta) > 720L)? 3 : (int) delta; } /* Utility function used by the RPQNAMES query reply. */ static int get_rpq_user(unsigned char buf[], const int buflen) { /* * Text may be specified in one of two ways, but not both. * An environment variable provides the user interface: * - X3270RPQ: Keyword USER= * * NOTE: If the string begins with 0x then no ASCII/EBCDIC * translation is done. The hex characters will be sent as true hex * data. E.g., X3270RPQ="user=0x ab 12 EF" will result in 3 bytes * sent as 0xAB12EF. White space is optional in hex data format. * When hex format is required, the 0x prefix must be the first two * characters of the string. E.g., X3270RPQ="user= 0X AB" will * result in 6 bytes sent as 0x40F0E740C1C2 because the text is * accepted "as is" then translated from ASCII to EBCDIC. */ const char *rpqtext = CN; int x = 0; struct rpq_keyword *kw; char *sbuf, *sbuf0; const char *s; enum me_fail error; int xlen; /* id isn't necessarily the table index... locate item */ for (kw = &rpq_keywords[0]; kw -> id != RPQ_USER; kw++) { } if ((!kw->allow_oride) || (kw->oride <= 0)) return 0; rpqtext = x3270rpq + kw->oride; if ((*rpqtext == '0') && (toupper(*(rpqtext+1)) == 'X')) { /* text has 0x prefix... interpret as hex, no translation */ char hexstr[512]; /* more than enough room to copy */ char * p_h; char c; int x; Boolean is_first_hex_digit; p_h = &hexstr[0]; /* copy the hex digits from X3270RPQ, removing white * space, and using all upper case for the hex digits a-f. */ rpqtext += 2; /* skip 0x prefix */ for (*p_h = '\0'; *rpqtext; rpqtext++) { c = toupper(*rpqtext); if ((c==':') || (c=='\0')) break; if (isspace(c)) continue; /* skip white space */ if (!isxdigit(c)) { rpq_warning("RPQ USER term has non-hex " "character"); break; } x = (p_h - hexstr)/2; if (x >= buflen) { x = buflen; rpq_warning("RPQ USER term truncated after %d " "bytes", x); break; /* too long, truncate */ } *p_h++ = c; /* copy (upper case) character */ *p_h = '\0'; /* keep string properly terminated */ } /* * 'hexstr' is now a character string of 0-9, A-F only, * (a-f were converted to upper case). * There may be an odd number of characters, implying a leading * 0. The string is also known to fit in the area specified. */ /* hex digits are handled in pairs, set a flag so we keep track * of which hex digit we're currently working with. */ is_first_hex_digit = ((strlen(hexstr) % 2) == 0); if (!is_first_hex_digit) rpq_warning("RPQ USER term has odd number of hex " "digits"); *buf = 0; /* initialize first byte for possible implied leading zero */ for (p_h = &hexstr[0]; *p_h; p_h++) { int n; /* convert the hex character to a value 0-15 */ n = isdigit(*p_h) ? *p_h - '0' : *p_h - 'A' + 10; if (is_first_hex_digit) { *buf = n << 4; } else { *buf++ |= n; } is_first_hex_digit = !is_first_hex_digit; } return (strlen(hexstr)+1)/2; } /* plain text - subject to ascii/ebcdic translation */ /* * Copy the source string to a temporary buffer, terminating on * ':', unless preceded by '\'. */ sbuf = sbuf0 = Malloc(strlen(rpqtext) + 1); for (s = rpqtext; *s && (*s != ':'); s++) { if (*s == '\\' && *(s + 1)) { *sbuf++ = *++s; } else *sbuf++ = *s; } *sbuf = '\0'; /* Translate multibyte to EBCDIC in the target buffer. */ xlen = multibyte_to_ebcdic_string(sbuf0, strlen(sbuf0), buf, buflen, &error); if (xlen < 0) { rpq_warning("RPQ USER term translation error"); if (buflen) { *buf = asc2ebc0['?']; x = 1; } } else { x = xlen; } Free(sbuf0); return x; } #if !defined(_WIN32) /*[*/ static int get_rpq_address(unsigned char *buf, const int maxlen) { struct rpq_keyword *kw; int x = 0; if (maxlen < 2) { omit_due_space_limit = True; return 0; } /* id isn't necessarily the table index... locate item */ for (kw = &rpq_keywords[0]; kw->id != RPQ_ADDRESS; kw++) { } /* Is there a user override? */ if ((kw->allow_oride) && (kw->oride > 0)) { char *p1, *p2, *rpqtext; #if defined(AF_INET6) /*[*/ struct addrinfo *res; int ga_err; #else /*][*/ in_addr_t ia; #endif /*]*/ p1 = x3270rpq + kw->oride; rpqtext = (char *) malloc(strlen(p1) + 1); for (p2=rpqtext;*p1; p2++) { if (*p1 == ':') break; if ((*p1 == '\\') && (*(p1+1) == ':')) p1++; *p2 = *p1; p1++; } *p2 = '\0'; #if defined(AF_INET6) /*[*/ ga_err = getaddrinfo(rpqtext, NULL, NULL, &res); if (ga_err == 0) { void *src = NULL; int len = 0; SET16(buf, res->ai_family); x += 2; switch (res->ai_family) { case AF_INET: src = &((struct sockaddr_in *)res->ai_addr)->sin_addr; len = sizeof(struct in_addr); break; case AF_INET6: src = &((struct sockaddr_in6 *)res->ai_addr)->sin6_addr; len = sizeof(struct in6_addr); break; default: rpq_warning("RPQ ADDRESS term has " "unrecognized family %u", res->ai_family); break; } if (x + len <= maxlen) { x += len; (void) memcpy(buf, src, len); } else { rpq_warning("RPQ ADDRESS term incomplete due " "to space limit"); } /* Give back storage obtained by getaddrinfo */ freeaddrinfo(res); } else { rpq_warning("RPQ: can't resolve '%s': %s", rpqtext, gai_strerror(ga_err)); } #else /*][*/ /* * No IPv6 support. * Use plain old inet_addr() and gethostbyname(). */ ia = inet_addr(rpqtext); if (ia == htonl(INADDR_NONE)) { struct hostent *h; h = gethostbyname(rpqtext); if (h == NULL || h->h_addrtype != AF_INET) { rpq_warning("RPQ: gethostbyname error"); return 0; } (void) memcpy(&ia, h->h_addr_list[0], h->h_length); } SET16(buf, AF_INET); x += 2; if (x + sizeof(in_addr_t) <= maxlen) { (void) memcpy(buf, &ia, sizeof(in_addr_t)); x += sizeof(in_addr_t); } else { rpq_warning("RPQ ADDRESS term incomplete due to " "space limit"); } #endif /*]*/ free(rpqtext); } else { /* No override... get our address from the actual socket */ union { struct sockaddr sa; struct sockaddr_in sa4; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sa6; #endif /*]*/ } u; int addrlen = sizeof(u); void *src = NULL; int len = 0; if (net_getsockname(&u, &addrlen) < 0) return 0; SET16(buf, u.sa.sa_family); x += 2; switch (u.sa.sa_family) { case AF_INET: src = &u.sa4.sin_addr; len = sizeof(struct in_addr); break; #if defined(AF_INET6) /*[*/ case AF_INET6: src = &u.sa6.sin6_addr; len = sizeof(struct in6_addr); break; #endif /*]*/ default: rpq_warning("RPQ ADDRESS term has unrecognized " "family %u", u.sa.sa_family); break; } if (x + len <= maxlen) { (void) memcpy(buf, src, len); x += len; } else { rpq_warning("RPQ ADDRESS term incomplete due to space " "limit"); } } return x; } #endif /*]*/ #define RPQ_WARNBUF_SIZE 1024 static char *rpq_warnbuf = CN; static int rpq_wbcnt = 0; static void rpq_warning(const char *fmt, ...) { va_list a; /* Only accumulate RPQ warnings if they * have not been displayed already. */ if (!rpq_complained) { va_start(a, fmt); if (rpq_warnbuf == CN) rpq_warnbuf = Malloc(RPQ_WARNBUF_SIZE); if (rpq_wbcnt < RPQ_WARNBUF_SIZE) { *(rpq_warnbuf + rpq_wbcnt++) = '\n'; *(rpq_warnbuf + rpq_wbcnt) = '\0'; } if (rpq_wbcnt < RPQ_WARNBUF_SIZE) { rpq_wbcnt += vsnprintf(rpq_warnbuf + rpq_wbcnt, RPQ_WARNBUF_SIZE - rpq_wbcnt, fmt, a); } va_end(a); } } static void rpq_dump_warnings(void) { /* If there's something to complain about, only complain once. */ if (!rpq_complained && rpq_wbcnt) { popup_an_error("%s", rpq_warnbuf); rpq_wbcnt = 0; rpq_complained = True; free(rpq_warnbuf); rpq_warnbuf = CN; } } ibm-3270-3.3.10ga4/ws3270/charsetc.h0000644000175000017500000000406211254565704016103 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * charsetc.h * Global declarations for charset.c */ extern Boolean charset_changed; extern unsigned long cgcsgid; #if defined(X3270_DBCS) /*[*/ extern unsigned long cgcsgid_dbcs; #endif /*]*/ extern char *default_display_charset; enum cs_result { CS_OKAY, CS_NOTFOUND, CS_BAD, CS_PREREQ, CS_ILLEGAL }; extern enum cs_result charset_init(char *csname); extern char *get_charset_name(void); extern char *get_host_codepage(void); extern void charset_list(void); ibm-3270-3.3.10ga4/ws3270/ft_dft_ds.h0000644000175000017500000000506011254565704016242 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* DFT-style file transfer codes. */ /* Host requests. */ #define TR_OPEN_REQ 0x0012 /* open request */ #define TR_CLOSE_REQ 0x4112 /* close request */ #define TR_SET_CUR_REQ 0x4511 /* set cursor request */ #define TR_GET_REQ 0x4611 /* get request */ #define TR_INSERT_REQ 0x4711 /* insert request */ #define TR_DATA_INSERT 0x4704 /* data to insert */ /* PC replies. */ #define TR_GET_REPLY 0x4605 /* data for get */ #define TR_NORMAL_REPLY 0x4705 /* insert normal reply */ #define TR_ERROR_REPLY 0x08 /* error reply (low 8 bits) */ #define TR_CLOSE_REPLY 0x4109 /* close acknowledgement */ /* Other headers. */ #define TR_RECNUM_HDR 0x6306 /* record number header */ #define TR_ERROR_HDR 0x6904 /* error header */ #define TR_NOT_COMPRESSED 0xc080 /* data not compressed */ #define TR_BEGIN_DATA 0x61 /* beginning of data */ /* Error codes. */ #define TR_ERR_EOF 0x2200 /* get past end of file */ #define TR_ERR_CMDFAIL 0x0100 /* command failed */ ibm-3270-3.3.10ga4/ws3270/ft.c0000644000175000017500000015771211256026744014724 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * ft.c * This module handles the file transfer dialogs. */ #include "globals.h" #if defined(X3270_FT) /*[*/ #if defined(X3270_DISPLAY) /*[*/ #include #include #include #include #include #include #include #include #include #include #endif /*]*/ #include #include "appres.h" #include "actionsc.h" #include "charsetc.h" #include "ft_cutc.h" #include "ft_dftc.h" #include "ftc.h" #include "dialogc.h" #include "hostc.h" #if defined(C3270) || defined(WC3270) /*[*/ #include "icmdc.h" #endif /*]*/ #include "kybdc.h" #include "macrosc.h" #include "objects.h" #include "popupsc.h" #include "screenc.h" #include "tablesc.h" #include "telnetc.h" #include "utilc.h" #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ /* Macros. */ #define eos(s) strchr((s), '\0') #if defined(X3270_DISPLAY) /*[*/ #define FILE_WIDTH 300 /* width of file name widgets */ #define MARGIN 3 /* distance from margins to widgets */ #define CLOSE_VGAP 0 /* distance between paired toggles */ #define FAR_VGAP 10 /* distance between single toggles and groups */ #define BUTTON_GAP 5 /* horizontal distance between buttons */ #define COLUMN_GAP 40 /* distance between columns */ #endif /*]*/ #define BN (Boolean *)NULL /* Externals. */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ extern Pixmap diamond; extern Pixmap no_diamond; extern Pixmap null; extern Pixmap dot; extern Pixmap no_dot; #endif /*]*/ /* Globals. */ enum ft_state ft_state = FT_NONE; /* File transfer state */ char *ft_local_filename; /* Local file to transfer to/from */ FILE *ft_local_file = (FILE *)NULL; /* File descriptor for local file */ Boolean ft_last_cr = False; /* CR was last char in local file */ Boolean ascii_flag = True; /* Convert to ascii */ Boolean cr_flag = True; /* Add crlf to each line */ Boolean remap_flag = True; /* Remap ASCII<->EBCDIC */ unsigned long ft_length = 0; /* Length of transfer */ /* Statics. */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Widget ft_dialog, ft_shell, local_file, host_file; static Widget lrecl_widget, blksize_widget; static Widget primspace_widget, secspace_widget; static Widget send_toggle, receive_toggle; static Widget vm_toggle, tso_toggle; static Widget ascii_toggle, binary_toggle; static Widget cr_widget; static Widget remap_widget; static Widget buffersize_widget; #endif /*]*/ static char *ft_host_filename; /* Host file to transfer to/from */ static Boolean receive_flag = True; /* Current transfer is receive */ static Boolean append_flag = False; /* Append transfer */ static Boolean vm_flag = False; /* VM Transfer flag */ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Widget recfm_options[5]; static Widget units_options[5]; static struct toggle_list recfm_toggles = { recfm_options }; static struct toggle_list units_toggles = { units_options }; #endif /*]*/ static enum recfm { DEFAULT_RECFM, RECFM_FIXED, RECFM_VARIABLE, RECFM_UNDEFINED } recfm = DEFAULT_RECFM; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Boolean recfm_default = True; static enum recfm r_default_recfm = DEFAULT_RECFM; static enum recfm r_fixed = RECFM_FIXED; static enum recfm r_variable = RECFM_VARIABLE; static enum recfm r_undefined = RECFM_UNDEFINED; #endif /*]*/ static enum units { DEFAULT_UNITS, TRACKS, CYLINDERS, AVBLOCK } units = DEFAULT_UNITS; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Boolean units_default = True; static enum units u_default_units = DEFAULT_UNITS; static enum units u_tracks = TRACKS; static enum units u_cylinders = CYLINDERS; static enum units u_avblock = AVBLOCK; #endif /*]*/ static Boolean allow_overwrite = False; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static sr_t *ft_sr = (sr_t *)NULL; static Widget progress_shell, from_file, to_file; static Widget ft_status, waiting, aborting; static String status_string; #endif /*]*/ static struct timeval t0; /* Starting time */ static Boolean ft_is_cut; /* File transfer is CUT-style */ /* Translation table: "ASCII" to EBCDIC, as seen by IND$FILE. */ unsigned char i_asc2ft[256] = { 0x00,0x01,0x02,0x03,0x37,0x2d,0x2e,0x2f,0x16,0x05,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x3c,0x3d,0x32,0x26,0x18,0x19,0x3f,0x27,0x1c,0x1d,0x1e,0x1f, 0x40,0x5a,0x7f,0x7b,0x5b,0x6c,0x50,0x7d,0x4d,0x5d,0x5c,0x4e,0x6b,0x60,0x4b,0x61, 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0x7a,0x5e,0x4c,0x7e,0x6e,0x6f, 0x7c,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6, 0xd7,0xd8,0xd9,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0x4a,0xe0,0x4f,0x5f,0x6d, 0x79,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x91,0x92,0x93,0x94,0x95,0x96, 0x97,0x98,0x99,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xc0,0x6a,0xd0,0xa1,0x07, 0x20,0x21,0x22,0x23,0x24,0x15,0x06,0x17,0x28,0x29,0x2a,0x2b,0x2c,0x09,0x0a,0x1b, 0x30,0x31,0x1a,0x33,0x34,0x35,0x36,0x08,0x38,0x39,0x3a,0x3b,0x04,0x14,0x3e,0xe1, 0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x51,0x52,0x53,0x54,0x55,0x56,0x57, 0x58,0x59,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x70,0x71,0x72,0x73,0x74,0x75, 0x76,0x77,0x78,0x80,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x9a,0x9b,0x9c,0x9d,0x9e, 0x9f,0xa0,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7, 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xda,0xdb, 0xdc,0xdd,0xde,0xdf,0xea,0xeb,0xec,0xed,0xee,0xef,0xfa,0xfb,0xfc,0xfd,0xfe,0xff}; /* Translation table: EBCDIC to "ASCII", as seen by IND$FILE. */ unsigned char i_ft2asc[256] = { 0x00,0x01,0x02,0x03,0x9c,0x09,0x86,0x7f,0x97,0x8d,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x9d,0x85,0x08,0x87,0x18,0x19,0x92,0x8f,0x1c,0x1d,0x1e,0x1f, 0x80,0x81,0x82,0x83,0x84,0x00,0x17,0x1b,0x88,0x89,0x8a,0x8b,0x8c,0x05,0x06,0x07, 0x90,0x91,0x16,0x93,0x94,0x95,0x96,0x04,0x98,0x99,0x9a,0x9b,0x14,0x15,0x9e,0x1a, 0x20,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0x5b,0x2e,0x3c,0x28,0x2b,0x5d, 0x26,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0x21,0x24,0x2a,0x29,0x3b,0x5e, 0x2d,0x2f,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0x7c,0x2c,0x25,0x5f,0x3e,0x3f, 0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,0x60,0x3a,0x23,0x40,0x27,0x3d,0x22, 0xc3,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9, 0xca,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0xcb,0xcc,0xcd,0xce,0xcf,0xd0, 0xd1,0x7e,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7, 0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7, 0x7b,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0xe8,0xe9,0xea,0xeb,0xec,0xed, 0x7d,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0xee,0xef,0xf0,0xf1,0xf2,0xf3, 0x5c,0x9f,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9, 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xfa,0xfb,0xfc,0xfd,0xfe,0xff}; #if defined(X3270_DBCS) /*[*/ enum ftd ft_dbcs_state = FT_DBCS_NONE; unsigned char ft_dbcs_byte1; Boolean ft_last_dbcs = False; #endif /*]*/ #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static Widget overwrite_shell; #endif /*]*/ static Boolean ft_is_action; static unsigned long ft_start_id = 0; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ static void ft_cancel(Widget w, XtPointer client_data, XtPointer call_data); static void ft_popup_callback(Widget w, XtPointer client_data, XtPointer call_data); static void ft_popup_init(void); static int ft_start(void); static void ft_start_callback(Widget w, XtPointer call_parms, XtPointer call_data); static void overwrite_cancel_callback(Widget w, XtPointer client_data, XtPointer call_data); static void overwrite_okay_callback(Widget w, XtPointer client_data, XtPointer call_data); static void overwrite_popdown(Widget w, XtPointer client_data, XtPointer call_data); static void overwrite_popup_init(void); static void popup_overwrite(void); static void popup_progress(void); static void progress_cancel_callback(Widget w, XtPointer client_data, XtPointer call_data); static void progress_popup_callback(Widget w, XtPointer client_data, XtPointer call_data); static void progress_popup_init(void); static void recfm_callback(Widget w, XtPointer user_data, XtPointer call_data); static void toggle_append(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_ascii(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_cr(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_remap(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_receive(Widget w, XtPointer client_data, XtPointer call_data); static void toggle_vm(Widget w, XtPointer client_data, XtPointer call_data); static void units_callback(Widget w, XtPointer user_data, XtPointer call_data); #endif /*]*/ static void ft_connected(Boolean ignored); static void ft_in3270(Boolean ignored); /* Main external entry point. */ #if !defined(X3270_DISPLAY) || !defined(X3270_MENUS) /*[*/ void ft_init(void) { /* Register for state changes. */ register_schange(ST_CONNECT, ft_connected); register_schange(ST_3270_MODE, ft_in3270); } #endif /*]*/ /* Return the right value for fopen()ing the local file. */ static char * local_fflag(void) { static char ret[3]; int nr = 0; ret[nr++] = receive_flag? (append_flag? 'a': 'w' ): 'r'; if (!ascii_flag) ret[nr++] = 'b'; ret[nr] = '\0'; return ret; } /* Timeout function for stalled transfers. */ static void ft_didnt_start(void) { if (ft_local_file != NULL) { fclose(ft_local_file); ft_local_file = NULL; if (receive_flag && !append_flag) unlink(ft_local_filename); } allow_overwrite = False; ft_complete(get_message("ftStartTimeout")); sms_continue(); } #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ /* "File Transfer" dialog. */ /* * Pop up the "Transfer" menu. * Called back from the "File Transfer" option on the File menu. */ void popup_ft(Widget w _is_unused, XtPointer call_parms _is_unused, XtPointer call_data _is_unused) { /* Initialize it. */ if (ft_shell == (Widget)NULL) ft_popup_init(); /* Pop it up. */ dialog_set(&ft_sr, ft_dialog); popup_popup(ft_shell, XtGrabNone); } /* Initialize the transfer pop-up. */ static void ft_popup_init(void) { Widget w; Widget cancel_button; Widget local_label, host_label; Widget append_widget; Widget lrecl_label, blksize_label, primspace_label, secspace_label; Widget h_ref = (Widget)NULL; Dimension d1; Dimension maxw = 0; Widget recfm_label, units_label; Widget buffersize_label; Widget start_button; char buflen_buf[128]; /* Register for state changes. */ register_schange(ST_CONNECT, ft_connected); register_schange(ST_3270_MODE, ft_in3270); /* Prep the dialog functions. */ dialog_set(&ft_sr, ft_dialog); /* Create the menu shell. */ ft_shell = XtVaCreatePopupShell( "ftPopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(ft_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(ft_shell, XtNpopupCallback, ft_popup_callback, (XtPointer)NULL); /* Create the form within the shell. */ ft_dialog = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, ft_shell, NULL); /* Create the file name widgets. */ local_label = XtVaCreateManagedWidget( "local", labelWidgetClass, ft_dialog, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); local_file = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNvertDistance, FAR_VGAP, XtNfromHoriz, local_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(local_label, local_file, XtNheight); w = XawTextGetSource(local_file); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_unixfile); dialog_register_sensitivity(local_file, BN, False, BN, False, BN, False); host_label = XtVaCreateManagedWidget( "host", labelWidgetClass, ft_dialog, XtNfromVert, local_label, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); host_file = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNeditType, XawtextEdit, XtNwidth, FILE_WIDTH, XtNdisplayCaret, False, XtNfromVert, local_label, XtNvertDistance, 3, XtNfromHoriz, host_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(host_label, host_file, XtNheight); dialog_match_dimension(local_label, host_label, XtNwidth); w = XawTextGetSource(host_file); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_hostfile); dialog_register_sensitivity(host_file, BN, False, BN, False, BN, False); /* Create the left column. */ /* Create send/receive toggles. */ send_toggle = XtVaCreateManagedWidget( "send", commandWidgetClass, ft_dialog, XtNfromVert, host_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(send_toggle, receive_flag ? no_diamond : diamond); XtAddCallback(send_toggle, XtNcallback, toggle_receive, (XtPointer)&s_false); receive_toggle = XtVaCreateManagedWidget( "receive", commandWidgetClass, ft_dialog, XtNfromVert, send_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(receive_toggle, receive_flag ? diamond : no_diamond); XtAddCallback(receive_toggle, XtNcallback, toggle_receive, (XtPointer)&s_true); /* Create ASCII/binary toggles. */ ascii_toggle = XtVaCreateManagedWidget( "ascii", commandWidgetClass, ft_dialog, XtNfromVert, receive_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(ascii_toggle, ascii_flag ? diamond : no_diamond); XtAddCallback(ascii_toggle, XtNcallback, toggle_ascii, (XtPointer)&s_true); binary_toggle = XtVaCreateManagedWidget( "binary", commandWidgetClass, ft_dialog, XtNfromVert, ascii_toggle, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(binary_toggle, ascii_flag ? no_diamond : diamond); XtAddCallback(binary_toggle, XtNcallback, toggle_ascii, (XtPointer)&s_false); /* Create append toggle. */ append_widget = XtVaCreateManagedWidget( "append", commandWidgetClass, ft_dialog, XtNfromVert, binary_toggle, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(append_widget, append_flag ? dot : no_dot); XtAddCallback(append_widget, XtNcallback, toggle_append, NULL); /* Set up the recfm group. */ recfm_label = XtVaCreateManagedWidget( "file", labelWidgetClass, ft_dialog, XtNfromVert, append_widget, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_register_sensitivity(recfm_label, &receive_flag, False, BN, False, BN, False); recfm_options[0] = XtVaCreateManagedWidget( "recfmDefault", commandWidgetClass, ft_dialog, XtNfromVert, recfm_label, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[0], (recfm == DEFAULT_RECFM) ? diamond : no_diamond); XtAddCallback(recfm_options[0], XtNcallback, recfm_callback, (XtPointer)&r_default_recfm); dialog_register_sensitivity(recfm_options[0], &receive_flag, False, BN, False, BN, False); recfm_options[1] = XtVaCreateManagedWidget( "fixed", commandWidgetClass, ft_dialog, XtNfromVert, recfm_options[0], XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[1], (recfm == RECFM_FIXED) ? diamond : no_diamond); XtAddCallback(recfm_options[1], XtNcallback, recfm_callback, (XtPointer)&r_fixed); dialog_register_sensitivity(recfm_options[1], &receive_flag, False, BN, False, BN, False); recfm_options[2] = XtVaCreateManagedWidget( "variable", commandWidgetClass, ft_dialog, XtNfromVert, recfm_options[1], XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[2], (recfm == RECFM_VARIABLE) ? diamond : no_diamond); XtAddCallback(recfm_options[2], XtNcallback, recfm_callback, (XtPointer)&r_variable); dialog_register_sensitivity(recfm_options[2], &receive_flag, False, BN, False, BN, False); recfm_options[3] = XtVaCreateManagedWidget( "undefined", commandWidgetClass, ft_dialog, XtNfromVert, recfm_options[2], XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_apply_bitmap(recfm_options[3], (recfm == RECFM_UNDEFINED) ? diamond : no_diamond); XtAddCallback(recfm_options[3], XtNcallback, recfm_callback, (XtPointer)&r_undefined); dialog_register_sensitivity(recfm_options[3], &receive_flag, False, &vm_flag, False, BN, False); lrecl_label = XtVaCreateManagedWidget( "lrecl", labelWidgetClass, ft_dialog, XtNfromVert, recfm_options[3], XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_register_sensitivity(lrecl_label, &receive_flag, False, &recfm_default, False, BN, False); lrecl_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, recfm_options[3], XtNvertDistance, 3, XtNfromHoriz, lrecl_label, XtNhorizDistance, MARGIN, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(lrecl_label, lrecl_widget, XtNheight); w = XawTextGetSource(lrecl_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(lrecl_widget, &receive_flag, False, &recfm_default, False, BN, False); blksize_label = XtVaCreateManagedWidget( "blksize", labelWidgetClass, ft_dialog, XtNfromVert, lrecl_widget, XtNvertDistance, 3, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); dialog_match_dimension(blksize_label, lrecl_label, XtNwidth); dialog_register_sensitivity(blksize_label, &receive_flag, False, &recfm_default, False, BN, False); blksize_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, lrecl_widget, XtNvertDistance, 3, XtNfromHoriz, blksize_label, XtNhorizDistance, MARGIN, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(blksize_label, blksize_widget, XtNheight); w = XawTextGetSource(blksize_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(blksize_widget, &receive_flag, False, &recfm_default, False, BN, False); /* Find the widest widget in the left column. */ XtVaGetValues(send_toggle, XtNwidth, &maxw, NULL); h_ref = send_toggle; #define REMAX(w) { \ XtVaGetValues((w), XtNwidth, &d1, NULL); \ if (d1 > maxw) { \ maxw = d1; \ h_ref = (w); \ } \ } REMAX(receive_toggle); REMAX(ascii_toggle); REMAX(binary_toggle); REMAX(append_widget); #undef REMAX /* Create the right column buttons. */ /* Create VM/TSO toggle. */ vm_toggle = XtVaCreateManagedWidget( "vm", commandWidgetClass, ft_dialog, XtNfromVert, host_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(vm_toggle, vm_flag ? diamond : no_diamond); XtAddCallback(vm_toggle, XtNcallback, toggle_vm, (XtPointer)&s_true); tso_toggle = XtVaCreateManagedWidget( "tso", commandWidgetClass, ft_dialog, XtNfromVert, vm_toggle, XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(tso_toggle, vm_flag ? no_diamond : diamond); XtAddCallback(tso_toggle, XtNcallback, toggle_vm, (XtPointer)&s_false); /* Create CR toggle. */ cr_widget = XtVaCreateManagedWidget( "cr", commandWidgetClass, ft_dialog, XtNfromVert, tso_toggle, XtNvertDistance, FAR_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(cr_widget, cr_flag ? dot : no_dot); XtAddCallback(cr_widget, XtNcallback, toggle_cr, 0); dialog_register_sensitivity(cr_widget, BN, False, BN, False, BN, False); /* Create remap toggle. */ remap_widget = XtVaCreateManagedWidget( "remap", commandWidgetClass, ft_dialog, XtNfromVert, cr_widget, XtNfromHoriz, h_ref, XtNvertDistance, CLOSE_VGAP, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(remap_widget, remap_flag ? dot : no_dot); XtAddCallback(remap_widget, XtNcallback, toggle_remap, NULL); dialog_register_sensitivity(remap_widget, &ascii_flag, True, BN, False, BN, False); /* Set up the Units group. */ units_label = XtVaCreateManagedWidget( "units", labelWidgetClass, ft_dialog, XtNfromVert, append_widget, XtNvertDistance, FAR_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_register_sensitivity(units_label, &receive_flag, False, &vm_flag, False, BN, False); units_options[0] = XtVaCreateManagedWidget( "spaceDefault", commandWidgetClass, ft_dialog, XtNfromVert, units_label, XtNvertDistance, 3, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[0], (units == DEFAULT_UNITS) ? diamond : no_diamond); XtAddCallback(units_options[0], XtNcallback, units_callback, (XtPointer)&u_default_units); dialog_register_sensitivity(units_options[0], &receive_flag, False, &vm_flag, False, BN, False); units_options[1] = XtVaCreateManagedWidget( "tracks", commandWidgetClass, ft_dialog, XtNfromVert, units_options[0], XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[1], (units == TRACKS) ? diamond : no_diamond); XtAddCallback(units_options[1], XtNcallback, units_callback, (XtPointer)&u_tracks); dialog_register_sensitivity(units_options[1], &receive_flag, False, &vm_flag, False, BN, False); units_options[2] = XtVaCreateManagedWidget( "cylinders", commandWidgetClass, ft_dialog, XtNfromVert, units_options[1], XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[2], (units == CYLINDERS) ? diamond : no_diamond); XtAddCallback(units_options[2], XtNcallback, units_callback, (XtPointer)&u_cylinders); dialog_register_sensitivity(units_options[2], &receive_flag, False, &vm_flag, False, BN, False); units_options[3] = XtVaCreateManagedWidget( "avblock", commandWidgetClass, ft_dialog, XtNfromVert, units_options[2], XtNvertDistance, CLOSE_VGAP, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_apply_bitmap(units_options[3], (units == AVBLOCK) ? diamond : no_diamond); XtAddCallback(units_options[3], XtNcallback, units_callback, (XtPointer)&u_avblock); dialog_register_sensitivity(units_options[3], &receive_flag, False, &vm_flag, False, BN, False); primspace_label = XtVaCreateManagedWidget( "primspace", labelWidgetClass, ft_dialog, XtNfromVert, units_options[3], XtNvertDistance, 3, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_register_sensitivity(primspace_label, &receive_flag, False, &vm_flag, False, &units_default, False); primspace_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, units_options[3], XtNvertDistance, 3, XtNfromHoriz, primspace_label, XtNhorizDistance, 0, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(primspace_label, primspace_widget, XtNheight); w = XawTextGetSource(primspace_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(primspace_widget, &receive_flag, False, &vm_flag, False, &units_default, False); secspace_label = XtVaCreateManagedWidget( "secspace", labelWidgetClass, ft_dialog, XtNfromVert, primspace_widget, XtNvertDistance, 3, XtNfromHoriz, h_ref, XtNhorizDistance, COLUMN_GAP, XtNborderWidth, 0, NULL); dialog_match_dimension(primspace_label, secspace_label, XtNwidth); dialog_register_sensitivity(secspace_label, &receive_flag, False, &vm_flag, False, &units_default, False); secspace_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, primspace_widget, XtNvertDistance, 3, XtNfromHoriz, secspace_label, XtNhorizDistance, 0, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(secspace_label, secspace_widget, XtNheight); w = XawTextGetSource(secspace_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(secspace_widget, &receive_flag, False, &vm_flag, False, &units_default, False); /* Set up the DFT buffer size. */ buffersize_label = XtVaCreateManagedWidget( "buffersize", labelWidgetClass, ft_dialog, XtNfromVert, blksize_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); buffersize_widget = XtVaCreateManagedWidget( "value", asciiTextWidgetClass, ft_dialog, XtNfromVert, blksize_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, buffersize_label, XtNhorizDistance, 0, XtNwidth, 100, XtNeditType, XawtextEdit, XtNdisplayCaret, False, NULL); dialog_match_dimension(buffersize_label, buffersize_widget, XtNheight); w = XawTextGetSource(buffersize_widget); if (w == NULL) XtWarning("Cannot find text source in dialog"); else XtAddCallback(w, XtNcallback, dialog_text_callback, (XtPointer)&t_numeric); dialog_register_sensitivity(buffersize_widget, BN, False, BN, False, BN, False); set_dft_buffersize(); (void) sprintf(buflen_buf, "%d", dft_buffersize); XtVaSetValues(buffersize_widget, XtNstring, buflen_buf, NULL); /* Set up the buttons at the bottom. */ start_button = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, ft_dialog, XtNfromVert, buffersize_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(start_button, XtNcallback, ft_start_callback, (XtPointer)NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, ft_dialog, XtNfromVert, buffersize_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, start_button, XtNhorizDistance, BUTTON_GAP, NULL); XtAddCallback(cancel_button, XtNcallback, ft_cancel, 0); } /* Callbacks for all the transfer widgets. */ /* Transfer pop-up popping up. */ static void ft_popup_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Set the focus to the local file widget. */ PA_dialog_focus_action(local_file, (XEvent *)NULL, (String *)NULL, (Cardinal *)NULL); /* Disallow overwrites. */ allow_overwrite = False; } /* Cancel button pushed. */ static void ft_cancel(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(ft_shell); } /* recfm options. */ static void recfm_callback(Widget w, XtPointer user_data, XtPointer call_data _is_unused) { recfm = *(enum recfm *)user_data; recfm_default = (recfm == DEFAULT_RECFM); dialog_check_sensitivity(&recfm_default); dialog_flip_toggles(&recfm_toggles, w); } /* Units options. */ static void units_callback(Widget w, XtPointer user_data, XtPointer call_data _is_unused) { units = *(enum units *)user_data; units_default = (units == DEFAULT_UNITS); dialog_check_sensitivity(&units_default); dialog_flip_toggles(&units_toggles, w); } /* OK button pushed. */ static void ft_start_callback(Widget w _is_unused, XtPointer call_parms _is_unused, XtPointer call_data _is_unused) { if (ft_start()) { XtPopdown(ft_shell); popup_progress(); } } /* Send/receive options. */ static void toggle_receive(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag */ receive_flag = *(Boolean *)client_data; /* Change the widget states. */ dialog_mark_toggle(receive_toggle, receive_flag ? diamond : no_diamond); dialog_mark_toggle(send_toggle, receive_flag ? no_diamond : diamond); dialog_check_sensitivity(&receive_flag); } /* Ascii/binary options. */ static void toggle_ascii(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { /* Toggle the flag. */ ascii_flag = *(Boolean *)client_data; /* Change the widget states. */ dialog_mark_toggle(ascii_toggle, ascii_flag ? diamond : no_diamond); dialog_mark_toggle(binary_toggle, ascii_flag ? no_diamond : diamond); cr_flag = ascii_flag; remap_flag = ascii_flag; dialog_mark_toggle(cr_widget, cr_flag ? dot : no_dot); dialog_mark_toggle(remap_widget, remap_flag ? dot : no_dot); dialog_check_sensitivity(&ascii_flag); } /* CR option. */ static void toggle_cr(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle the cr flag */ cr_flag = !cr_flag; dialog_mark_toggle(w, cr_flag ? dot : no_dot); } /* Append option. */ static void toggle_append(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle Append Flag */ append_flag = !append_flag; dialog_mark_toggle(w, append_flag ? dot : no_dot); } /* Remap option. */ static void toggle_remap(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle Remap Flag */ remap_flag = !remap_flag; dialog_mark_toggle(w, remap_flag ? dot : no_dot); } /* TSO/VM option. */ static void toggle_vm(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Toggle the flag. */ vm_flag = *(Boolean *)client_data; /* Change the widget states. */ dialog_mark_toggle(vm_toggle, vm_flag ? diamond : no_diamond); dialog_mark_toggle(tso_toggle, vm_flag ? no_diamond : diamond); if (vm_flag) { if (recfm == RECFM_UNDEFINED) { recfm = DEFAULT_RECFM; recfm_default = True; dialog_flip_toggles(&recfm_toggles, recfm_toggles.widgets[0]); } } dialog_check_sensitivity(&vm_flag); } /* * Begin the transfer. * Returns 1 if the transfer has started, 0 otherwise. */ static int ft_start(void) { char opts[80]; char *op = opts + 1; char *cmd; String buffersize, lrecl, blksize, primspace, secspace; char updated_buffersize[128]; unsigned flen; ft_is_action = False; #if defined(X3270_DBCS) /*[*/ ft_dbcs_state = FT_DBCS_NONE; #endif /*]*/ /* Get the DFT buffer size. */ XtVaGetValues(buffersize_widget, XtNstring, &buffersize, NULL); if (*buffersize) dft_buffersize = atoi(buffersize); else dft_buffersize = 0; set_dft_buffersize(); (void) sprintf(updated_buffersize, "%d", dft_buffersize); XtVaSetValues(buffersize_widget, XtNstring, updated_buffersize, NULL); /* Get the host file from its widget */ XtVaGetValues(host_file, XtNstring, &ft_host_filename, NULL); if (!*ft_host_filename) return 0; /* XXX: probably more validation to do here */ /* Get the local file from it widget */ XtVaGetValues(local_file, XtNstring, &ft_local_filename, NULL); if (!*ft_local_filename) return 0; /* See if the local file can be overwritten. */ if (receive_flag && !append_flag && !allow_overwrite) { ft_local_file = fopen(ft_local_filename, ascii_flag? "r": "rb"); if (ft_local_file != (FILE *)NULL) { (void) fclose(ft_local_file); ft_local_file = (FILE *)NULL; popup_overwrite(); return 0; } } /* Open the local file. */ ft_local_file = fopen(ft_local_filename, local_fflag()); if (ft_local_file == (FILE *)NULL) { allow_overwrite = False; popup_an_errno(errno, "Local file '%s'", ft_local_filename); return 0; } /* Build the ind$file command */ op[0] = '\0'; if (ascii_flag) strcat(op, " ascii"); if (cr_flag) strcat(op, " crlf"); if (append_flag && !receive_flag) strcat(op, " append"); if (!receive_flag) { if (!vm_flag) { if (recfm != DEFAULT_RECFM) { /* RECFM Entered, process */ strcat(op, " recfm("); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; case RECFM_UNDEFINED: strcat(op, "u"); break; default: break; }; strcat(op, ")"); XtVaGetValues(lrecl_widget, XtNstring, &lrecl, NULL); if (strlen(lrecl) > 0) sprintf(eos(op), " lrecl(%s)", lrecl); XtVaGetValues(blksize_widget, XtNstring, &blksize, NULL); if (strlen(blksize) > 0) sprintf(eos(op), " blksize(%s)", blksize); } if (units != DEFAULT_UNITS) { /* Space Entered, processs it */ switch (units) { case TRACKS: strcat(op, " tracks"); break; case CYLINDERS: strcat(op, " cylinders"); break; case AVBLOCK: strcat(op, " avblock"); break; default: break; }; XtVaGetValues(primspace_widget, XtNstring, &primspace, NULL); if (strlen(primspace) > 0) { sprintf(eos(op), " space(%s", primspace); XtVaGetValues(secspace_widget, XtNstring, &secspace, NULL); if (strlen(secspace) > 0) sprintf(eos(op), ",%s", secspace); strcat(op, ")"); } } } else { if (recfm != DEFAULT_RECFM) { strcat(op, " recfm "); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; default: break; }; XtVaGetValues(lrecl_widget, XtNstring, &lrecl, NULL); if (strlen(lrecl) > 0) sprintf(eos(op), " lrecl %s", lrecl); } } } /* Insert the '(' for VM options. */ if (strlen(op) > 0 && vm_flag) { opts[0] = ' '; opts[1] = '('; op = opts; } /* Build the whole command. */ cmd = xs_buffer("ind\\e005Bfile %s %s%s\\n", receive_flag ? "get" : "put", ft_host_filename, op); /* Erase the line and enter the command. */ flen = kybd_prime(); if (!flen || flen < strlen(cmd) - 1) { XtFree(cmd); if (ft_local_file != NULL) { fclose(ft_local_file); ft_local_file = NULL; if (receive_flag && !append_flag) unlink(ft_local_filename); } popup_an_error("%s", get_message("ftUnable")); allow_overwrite = False; return 0; } (void) emulate_input(cmd, strlen(cmd), False); XtFree(cmd); /* Get this thing started. */ ft_state = FT_AWAIT_ACK; ft_is_cut = False; ft_last_cr = False; #if defined(X3270_DBCS) /*[*/ ft_last_dbcs = False; #endif /*]*/ return 1; } /* "Transfer in Progress" pop-up. */ /* Pop up the "in progress" pop-up. */ static void popup_progress(void) { /* Initialize it. */ if (progress_shell == (Widget)NULL) progress_popup_init(); /* Pop it up. */ popup_popup(progress_shell, XtGrabNone); } /* Initialize the "in progress" pop-up. */ static void progress_popup_init(void) { Widget progress_pop, from_label, to_label, cancel_button; /* Create the shell. */ progress_shell = XtVaCreatePopupShell( "ftProgressPopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(progress_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(progress_shell, XtNpopupCallback, progress_popup_callback, (XtPointer)NULL); /* Create a form structure to contain the other stuff */ progress_pop = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, progress_shell, NULL); /* Create the widgets. */ from_label = XtVaCreateManagedWidget( "fromLabel", labelWidgetClass, progress_pop, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); from_file = XtVaCreateManagedWidget( "filename", labelWidgetClass, progress_pop, XtNwidth, FILE_WIDTH, XtNvertDistance, FAR_VGAP, XtNfromHoriz, from_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(from_label, from_file, XtNheight); to_label = XtVaCreateManagedWidget( "toLabel", labelWidgetClass, progress_pop, XtNfromVert, from_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, NULL); to_file = XtVaCreateManagedWidget( "filename", labelWidgetClass, progress_pop, XtNwidth, FILE_WIDTH, XtNfromVert, from_label, XtNvertDistance, FAR_VGAP, XtNfromHoriz, to_label, XtNhorizDistance, 0, NULL); dialog_match_dimension(to_label, to_file, XtNheight); dialog_match_dimension(from_label, to_label, XtNwidth); waiting = XtVaCreateManagedWidget( "waiting", labelWidgetClass, progress_pop, XtNfromVert, to_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNmappedWhenManaged, False, NULL); ft_status = XtVaCreateManagedWidget( "status", labelWidgetClass, progress_pop, XtNfromVert, to_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNresizable, True, XtNmappedWhenManaged, False, NULL); XtVaGetValues(ft_status, XtNlabel, &status_string, NULL); status_string = XtNewString(status_string); aborting = XtVaCreateManagedWidget( "aborting", labelWidgetClass, progress_pop, XtNfromVert, to_label, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNmappedWhenManaged, False, NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, progress_pop, XtNfromVert, ft_status, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(cancel_button, XtNcallback, progress_cancel_callback, NULL); } /* Callbacks for the "in progress" pop-up. */ /* In-progress pop-up popped up. */ static void progress_popup_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtVaSetValues(from_file, XtNlabel, receive_flag ? ft_host_filename : ft_local_filename, NULL); XtVaSetValues(to_file, XtNlabel, receive_flag ? ft_local_filename : ft_host_filename, NULL); switch (ft_state) { case FT_AWAIT_ACK: XtUnmapWidget(ft_status); XtUnmapWidget(aborting); XtMapWidget(waiting); break; case FT_RUNNING: XtUnmapWidget(waiting); XtUnmapWidget(aborting); XtMapWidget(ft_status); break; case FT_ABORT_WAIT: case FT_ABORT_SENT: XtUnmapWidget(waiting); XtUnmapWidget(ft_status); XtMapWidget(aborting); break; default: break; } } /* In-progress "cancel" button. */ static void progress_cancel_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { if (ft_state == FT_RUNNING) { ft_state = FT_ABORT_WAIT; XtUnmapWidget(waiting); XtUnmapWidget(ft_status); XtMapWidget(aborting); } else { /* Impatient user or hung host -- just clean up. */ ft_complete(get_message("ftUserCancel")); } } /* "Overwrite existing?" pop-up. */ /* Pop up the "overwrite" pop-up. */ static void popup_overwrite(void) { /* Initialize it. */ if (overwrite_shell == (Widget)NULL) overwrite_popup_init(); /* Pop it up. */ popup_popup(overwrite_shell, XtGrabExclusive); } /* Initialize the "overwrite" pop-up. */ static void overwrite_popup_init(void) { Widget overwrite_pop, overwrite_name, okay_button, cancel_button; String overwrite_string, label, lf; Dimension d; /* Create the shell. */ overwrite_shell = XtVaCreatePopupShell( "ftOverwritePopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(overwrite_shell, XtNpopupCallback, place_popup, (XtPointer)CenterP); XtAddCallback(overwrite_shell, XtNpopdownCallback, overwrite_popdown, (XtPointer)NULL); /* Create a form structure to contain the other stuff */ overwrite_pop = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, overwrite_shell, NULL); /* Create the widgets. */ overwrite_name = XtVaCreateManagedWidget( "overwriteName", labelWidgetClass, overwrite_pop, XtNvertDistance, MARGIN, XtNhorizDistance, MARGIN, XtNborderWidth, 0, XtNresizable, True, NULL); XtVaGetValues(overwrite_name, XtNlabel, &overwrite_string, NULL); XtVaGetValues(local_file, XtNstring, &lf, NULL); label = xs_buffer(overwrite_string, lf); XtVaSetValues(overwrite_name, XtNlabel, label, NULL); XtFree(label); XtVaGetValues(overwrite_name, XtNwidth, &d, NULL); if ((Dimension)(d + 20) < 400) d = 400; else d += 20; XtVaSetValues(overwrite_name, XtNwidth, d, NULL); XtVaGetValues(overwrite_name, XtNheight, &d, NULL); XtVaSetValues(overwrite_name, XtNheight, d + 20, NULL); okay_button = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, overwrite_pop, XtNfromVert, overwrite_name, XtNvertDistance, FAR_VGAP, XtNhorizDistance, MARGIN, NULL); XtAddCallback(okay_button, XtNcallback, overwrite_okay_callback, NULL); cancel_button = XtVaCreateManagedWidget( ObjCancelButton, commandWidgetClass, overwrite_pop, XtNfromVert, overwrite_name, XtNvertDistance, FAR_VGAP, XtNfromHoriz, okay_button, XtNhorizDistance, BUTTON_GAP, NULL); XtAddCallback(cancel_button, XtNcallback, overwrite_cancel_callback, NULL); } /* Overwrite "okay" button. */ static void overwrite_okay_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(overwrite_shell); allow_overwrite = True; if (ft_start()) { XtPopdown(ft_shell); popup_progress(); } } /* Overwrite "cancel" button. */ static void overwrite_cancel_callback(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(overwrite_shell); } /* Overwrite pop-up popped down. */ static void overwrite_popdown(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtDestroyWidget(overwrite_shell); overwrite_shell = (Widget)NULL; } #endif /*]*/ /* External entry points called by ft_dft and ft_cut. */ /* Pop up a message, end the transfer. */ void ft_complete(const char *errmsg) { /* Close the local file. */ if (ft_local_file != (FILE *)NULL && fclose(ft_local_file) < 0) popup_an_errno(errno, "close(%s)", ft_local_filename); ft_local_file = (FILE *)NULL; /* Clean up the state. */ ft_state = FT_NONE; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ /* Pop down the in-progress shell. */ if (!ft_is_action) XtPopdown(progress_shell); #endif /*]*/ /* Pop up the text. */ if (errmsg != CN) { char *msg_copy = NewString(errmsg); /* Make sure the error message will fit on the display. */ if (strlen(msg_copy) > 50 && strchr(msg_copy, '\n') == CN) { char *s = msg_copy + 50; while (s > msg_copy && *s != ' ') s--; if (s > msg_copy) *s = '\n'; /* yikes! */ } #if defined(C3270) /*[*/ printf("\r%79s\n", ""); fflush(stdout); #endif /*]*/ popup_an_error("%s", msg_copy); Free(msg_copy); } else { struct timeval t1; double bytes_sec; char *buf; char kbuf[256]; (void) gettimeofday(&t1, (struct timezone *)NULL); bytes_sec = (double)ft_length / ((double)(t1.tv_sec - t0.tv_sec) + (double)(t1.tv_usec - t0.tv_usec) / 1.0e6); buf = Malloc(256); (void) sprintf(buf, get_message("ftComplete"), ft_length, display_scale(bytes_sec, kbuf, sizeof(kbuf)), ft_is_cut ? "CUT" : "DFT"); if (ft_is_action) { #if defined(C3270) /*[*/ printf("\r%79s\n", ""); fflush(stdout); #endif /*]*/ sms_info("%s", buf); sms_continue(); } #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ else popup_an_info("%s", buf); #endif /*]*/ Free(buf); } } /* Update the bytes-transferred count on the progress pop-up. */ void ft_update_length(void) { #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ char text_string[80]; /* Format the message */ if (!ft_is_action) { sprintf(text_string, status_string, ft_length); XtVaSetValues(ft_status, XtNlabel, text_string, NULL); } #endif /*]*/ #if defined(C3270) /*[*/ printf("\r%79s\rTransferred %lu bytes. ", "", ft_length); fflush(stdout); #endif /*]*/ } /* Process a transfer acknowledgement. */ void ft_running(Boolean is_cut) { if (ft_state == FT_AWAIT_ACK) { ft_state = FT_RUNNING; if (ft_start_id) { RemoveTimeOut(ft_start_id); ft_start_id = 0; } } ft_is_cut = is_cut; (void) gettimeofday(&t0, (struct timezone *)NULL); ft_length = 0; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ if (!ft_is_action) { XtUnmapWidget(waiting); ft_update_length(); XtMapWidget(ft_status); } #endif /*]*/ #if defined(C3270) /*[*/ ft_update_length(); #endif /*]*/ } /* Process a protocol-generated abort. */ void ft_aborting(void) { if (ft_state == FT_RUNNING || ft_state == FT_ABORT_WAIT) { ft_state = FT_ABORT_SENT; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ if (!ft_is_action) { XtUnmapWidget(waiting); XtUnmapWidget(ft_status); XtMapWidget(aborting); } #endif /*]*/ } } /* Process a disconnect abort. */ static void ft_connected(Boolean ignored _is_unused) { if (!CONNECTED && ft_state != FT_NONE) ft_complete(get_message("ftDisconnected")); } /* Process an abort from no longer being in 3270 mode. */ static void ft_in3270(Boolean ignored _is_unused) { if (!IN_3270 && ft_state != FT_NONE) ft_complete(get_message("ftNot3270")); } /* * Script/macro action for file transfer. * Transfer(option=value[,...]) * Options are: * Direction=send|receive default receive * HostFile=name required * LocalFile=name required * Host=[tso|vm] default tso * Mode=[ascii|binary] default ascii * Cr=[add|remove|keep] default add/remove * Remap=[yes|no] default yes * Exist=[keep|replace|append] default keep * Recfm=[default|fixed|variable|undefined] default default * Lrecl=n no default * Blksize=n no default * Allocation=[default|tracks|cylinders|avblock] default default * PrimarySpace=n no default * SecondarySpace=n no default */ static struct { const char *name; char *value; const char *keyword[4]; } tp[] = { { "Direction", CN, { "receive", "send" } }, { "HostFile" }, { "LocalFile" }, { "Host", CN, { "tso", "vm" } }, { "Mode", CN, { "ascii", "binary" } }, { "Cr", CN, { "auto", "remove", "add", "keep" } }, { "Remap", CN, { "yes", "no" } }, { "Exist", CN, { "keep", "replace", "append" } }, { "Recfm", CN, { "default", "fixed", "variable", "undefined" } }, { "Lrecl" }, { "Blksize" }, { "Allocation", CN, { "default", "tracks", "cylinders", "avblock" } }, { "PrimarySpace" }, { "SecondarySpace" }, { "BufferSize" }, { CN } }; enum ft_parm_name { PARM_DIRECTION, PARM_HOST_FILE, PARM_LOCAL_FILE, PARM_HOST, PARM_MODE, PARM_CR, PARM_REMAP, PARM_EXIST, PARM_RECFM, PARM_LRECL, PARM_BLKSIZE, PARM_ALLOCATION, PARM_PRIMARY_SPACE, PARM_SECONDARY_SPACE, PARM_BUFFER_SIZE, N_PARMS }; void Transfer_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int i, k; Cardinal j; long l; char *ptr; char opts[80]; char *op = opts + 1; char *cmd; unsigned flen; String *xparams = params; Cardinal xnparams = *num_params; action_debug(Transfer_action, event, params, num_params); ft_is_action = True; /* Make sure we're connected. */ if (!IN_3270) { popup_an_error("Not connected"); return; } #if defined(C3270) || defined(WC3270) /*[*/ /* Check for interactive mode. */ if (xnparams == 0 && escaped) { if (interactive_transfer(&xparams, &xnparams) < 0) { printf("\n"); fflush(stdout); action_output("Aborted"); return; } } #endif /*]*/ /* Set everything to the default. */ for (i = 0; i < N_PARMS; i++) { Free(tp[i].value); if (tp[i].keyword[0] != CN) tp[i].value = NewString(tp[i].keyword[0]); else tp[i].value = CN; } /* See what they specified. */ for (j = 0; j < xnparams; j++) { for (i = 0; i < N_PARMS; i++) { char *eq; int kwlen; eq = strchr(xparams[j], '='); if (eq == CN || eq == xparams[j] || !*(eq + 1)) { popup_an_error("Invalid option syntax: '%s'", xparams[j]); return; } kwlen = eq - xparams[j]; if (!strncasecmp(xparams[j], tp[i].name, kwlen) && !tp[i].name[kwlen]) { if (tp[i].keyword[0]) { for (k = 0; tp[i].keyword[k] != CN && k < 4; k++) { if (!strcasecmp(eq + 1, tp[i].keyword[k])) { break; } } if (k >= 4 || tp[i].keyword[k] == CN) { popup_an_error("Invalid option " "value: '%s'", eq + 1); return; } } else switch (i) { case PARM_LRECL: case PARM_BLKSIZE: case PARM_PRIMARY_SPACE: case PARM_SECONDARY_SPACE: case PARM_BUFFER_SIZE: l = strtol(eq + 1, &ptr, 10); if (ptr == eq + 1 || *ptr) { popup_an_error("Invalid option " "value: '%s'", eq + 1); return; } break; default: break; } tp[i].value = NewString(eq + 1); break; } } if (i >= N_PARMS) { popup_an_error("Unknown option: %s", xparams[j]); return; } } /* Check for required values. */ if (tp[PARM_HOST_FILE].value == CN) { popup_an_error("Missing 'HostFile' option"); return; } if (tp[PARM_LOCAL_FILE].value == CN) { popup_an_error("Missing 'LocalFile' option"); return; } /* * Start the transfer. Much of this is duplicated from ft_start() * and should be made common. */ if (tp[PARM_BUFFER_SIZE].value != CN) dft_buffersize = atoi(tp[PARM_BUFFER_SIZE].value); else dft_buffersize = 0; set_dft_buffersize(); receive_flag = !strcasecmp(tp[PARM_DIRECTION].value, "receive"); append_flag = !strcasecmp(tp[PARM_EXIST].value, "append"); allow_overwrite = !strcasecmp(tp[PARM_EXIST].value, "replace"); ascii_flag = !strcasecmp(tp[PARM_MODE].value, "ascii"); if (!strcasecmp(tp[PARM_CR].value, "auto")) { cr_flag = ascii_flag; } else { cr_flag = !strcasecmp(tp[PARM_CR].value, "remove") || !strcasecmp(tp[PARM_CR].value, "add"); } if (ascii_flag) remap_flag = !strcasecmp(tp[PARM_REMAP].value, "yes"); vm_flag = !strcasecmp(tp[PARM_HOST].value, "vm"); recfm = DEFAULT_RECFM; for (k = 0; tp[PARM_RECFM].keyword[k] != CN && k < 4; k++) { if (!strcasecmp(tp[PARM_RECFM].value, tp[PARM_RECFM].keyword[k])) { recfm = (enum recfm)k; break; } } units = DEFAULT_UNITS; for (k = 0; tp[PARM_ALLOCATION].keyword[k] != CN && k < 4; k++) { if (!strcasecmp(tp[PARM_ALLOCATION].value, tp[PARM_ALLOCATION].keyword[k])) { units = (enum units)k; break; } } ft_host_filename = tp[PARM_HOST_FILE].value; ft_local_filename = tp[PARM_LOCAL_FILE].value; /* See if the local file can be overwritten. */ if (receive_flag && !append_flag && !allow_overwrite) { ft_local_file = fopen(ft_local_filename, ascii_flag? "r": "rb"); if (ft_local_file != (FILE *)NULL) { (void) fclose(ft_local_file); popup_an_error("File exists"); return; } } /* Open the local file. */ ft_local_file = fopen(ft_local_filename, local_fflag()); if (ft_local_file == (FILE *)NULL) { popup_an_errno(errno, "Local file '%s'", ft_local_filename); return; } /* Build the ind$file command */ op[0] = '\0'; if (ascii_flag) strcat(op, " ascii"); if (cr_flag) strcat(op, " crlf"); if (append_flag && !receive_flag) strcat(op, " append"); if (!receive_flag) { if (!vm_flag) { if (recfm != DEFAULT_RECFM) { /* RECFM Entered, process */ strcat(op, " recfm("); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; case RECFM_UNDEFINED: strcat(op, "u"); break; default: break; }; strcat(op, ")"); if (tp[PARM_LRECL].value != CN) sprintf(eos(op), " lrecl(%s)", tp[PARM_LRECL].value); if (tp[PARM_BLKSIZE].value != CN) sprintf(eos(op), " blksize(%s)", tp[PARM_BLKSIZE].value); } if (units != DEFAULT_UNITS) { /* Space Entered, processs it */ switch (units) { case TRACKS: strcat(op, " tracks"); break; case CYLINDERS: strcat(op, " cylinders"); break; case AVBLOCK: strcat(op, " avblock"); break; default: break; }; if (tp[PARM_PRIMARY_SPACE].value != CN) { sprintf(eos(op), " space(%s", tp[PARM_PRIMARY_SPACE].value); if (tp[PARM_SECONDARY_SPACE].value) sprintf(eos(op), ",%s", tp[PARM_SECONDARY_SPACE].value); strcat(op, ")"); } } } else { if (recfm != DEFAULT_RECFM) { strcat(op, " recfm "); switch (recfm) { case RECFM_FIXED: strcat(op, "f"); break; case RECFM_VARIABLE: strcat(op, "v"); break; default: break; }; if (tp[PARM_LRECL].value) sprintf(eos(op), " lrecl %s", tp[PARM_LRECL].value); } } } /* Insert the '(' for VM options. */ if (strlen(op) > 0 && vm_flag) { opts[0] = ' '; opts[1] = '('; op = opts; } /* Build the whole command. */ cmd = xs_buffer("ind\\e005Bfile %s %s%s\\n", receive_flag ? "get" : "put", ft_host_filename, op); /* Erase the line and enter the command. */ flen = kybd_prime(); if (!flen || flen < strlen(cmd) - 1) { Free(cmd); if (ft_local_file != NULL) { fclose(ft_local_file); ft_local_file = NULL; if (receive_flag && !append_flag) unlink(ft_local_filename); } popup_an_error("%s", get_message("ftUnable")); return; } (void) emulate_input(cmd, strlen(cmd), False); Free(cmd); #if defined(C3270) /*[*/ if (!escaped) screen_suspend(); printf("Awaiting start of transfer... "); fflush(stdout); #endif /*]*/ /* Get this thing started. */ ft_start_id = AddTimeOut(10 * 1000, ft_didnt_start); ft_state = FT_AWAIT_ACK; ft_is_cut = False; } #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/scrollc.h0000644000175000017500000000315511254565673015757 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of scrollc.h */ #define scroll_save(n, trim_blanks) #define scroll_to_bottom() ibm-3270-3.3.10ga4/ws3270/ctlrc.h0000644000175000017500000001154111254565704015416 0ustar bastianbastian/* * Copyright (c) 2005-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ctlrc.h * Global declarations for ctlr.c. */ enum pds { PDS_OKAY_NO_OUTPUT = 0, /* command accepted, produced no output */ PDS_OKAY_OUTPUT = 1, /* command accepted, produced output */ PDS_BAD_CMD = -1, /* command rejected */ PDS_BAD_ADDR = -2 /* command contained a bad address */ }; void ctlr_aclear(int baddr, int count, int clear_ea); void ctlr_add(int baddr, unsigned char c, unsigned char cs); void ctlr_add_bg(int baddr, unsigned char color); void ctlr_add_cs(int baddr, unsigned char cs); void ctlr_add_fa(int baddr, unsigned char fa, unsigned char cs); void ctlr_add_fg(int baddr, unsigned char color); void ctlr_add_gr(int baddr, unsigned char gr); void ctlr_altbuffer(Boolean alt); Boolean ctlr_any_data(void); void ctlr_bcopy(int baddr_from, int baddr_to, int count, int move_ea); void ctlr_changed(int bstart, int bend); void ctlr_clear(Boolean can_snap); void ctlr_erase(Boolean alt); void ctlr_erase_all_unprotected(void); void ctlr_init(unsigned cmask); void ctlr_read_buffer(unsigned char aid_byte); void ctlr_read_modified(unsigned char aid_byte, Boolean all); void ctlr_reinit(unsigned cmask); void ctlr_scroll(void); void ctlr_shrink(void); void ctlr_snap_buffer(void); void ctlr_snap_buffer_sscp_lu(void); Boolean ctlr_snap_modes(void); void ctlr_wrapping_memmove(int baddr_to, int baddr_from, int count); enum pds ctlr_write(unsigned char buf[], int buflen, Boolean erase); void ctlr_write_sscp_lu(unsigned char buf[], int buflen); struct ea *fa2ea(int baddr); int find_field_attribute(int baddr); unsigned char get_field_attribute(register int baddr); Boolean get_bounded_field_attribute(register int baddr, register int bound, unsigned char *fa_out); void mdt_clear(int baddr); void mdt_set(int baddr); int next_unprotected(int baddr0); enum pds process_ds(unsigned char *buf, int buflen); void ps_process(void); void set_rows_cols(int mn, int ovc, int ovr); void ticking_start(Boolean anyway); void toggle_nop(struct toggle *t, enum toggle_type tt); void toggle_showTiming(struct toggle *t, enum toggle_type tt); enum dbcs_state { DBCS_NONE = 0, /* position is not DBCS */ DBCS_LEFT, /* position is left half of DBCS character */ DBCS_RIGHT, /* position is right half of DBCS character */ DBCS_SI, /* position is SI terminating DBCS subfield */ DBCS_SB, /* position is SBCS character after the SI */ DBCS_LEFT_WRAP, /* position is left half of split DBCS */ DBCS_RIGHT_WRAP, /* position is right half of split DBCS */ DBCS_DEAD /* position is dead left-half DBCS */ }; #define IS_LEFT(d) ((d) == DBCS_LEFT || (d) == DBCS_LEFT_WRAP) #define IS_RIGHT(d) ((d) == DBCS_RIGHT || (d) == DBCS_RIGHT_WRAP) #define IS_DBCS(d) (IS_LEFT(d) || IS_RIGHT(d)) #define MAKE_LEFT(b) { \ if (((b) % COLS) == ((ROWS * COLS) - 1)) \ ea_buf[(b)].db = DBCS_LEFT_WRAP; \ else \ ea_buf[(b)].db = DBCS_LEFT; \ } #define MAKE_RIGHT(b) { \ if (!((b) % COLS)) \ ea_buf[(b)].db = DBCS_RIGHT_WRAP; \ else \ ea_buf[(b)].db = DBCS_RIGHT; \ } #define SOSI(c) (((c) == EBC_so)? EBC_si: EBC_so) enum dbcs_why { DBCS_FIELD, DBCS_SUBFIELD, DBCS_ATTRIBUTE }; #if defined(X3270_DBCS) /*[*/ enum dbcs_state ctlr_dbcs_state(int baddr); extern enum dbcs_state ctlr_lookleft_state(int baddr, enum dbcs_why *why); int ctlr_dbcs_postprocess(void); #else /*][*/ #define ctlr_dbcs_state(b) DBCS_NONE #define ctlr_lookleft_state(b, w) DBCS_NONE #define ctlr_dbcs_postprocess() 0 #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/w3misc.c0000644000175000017500000001222111254565675015512 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * w3misc.c * Miscellaneous Win32 functions. */ #include "globals.h" #if !defined(_WIN32) /*[*/ #error This module is only for Win32. #endif /*]*/ #include #include #include #include #include "w3miscc.h" /* Initialize Winsock. */ int sockstart(void) { static int initted = 0; WORD wVersionRequested; WSADATA wsaData; if (initted) return 0; initted = 1; wVersionRequested = MAKEWORD(2, 2); if (WSAStartup(wVersionRequested, &wsaData) != 0) { fprintf(stderr, "WSAStartup failed: %s\n", win32_strerror(GetLastError())); return -1; } if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2) { fprintf(stderr, "Bad winsock version: %d.%d\n", LOBYTE(wsaData.wVersion), HIBYTE(wsaData.wVersion)); return -1; } return 0; } /* Convert a network address to a string. */ const char * inet_ntop(int af, const void *src, char *dst, socklen_t cnt) { union { struct sockaddr sa; struct sockaddr_in sin; struct sockaddr_in6 sin6; } sa; DWORD ssz; DWORD sz = cnt; memset(&sa, '\0', sizeof(sa)); switch (af) { case AF_INET: sa.sin = *(struct sockaddr_in *)src; /* struct copy */ ssz = sizeof(struct sockaddr_in); break; case AF_INET6: sa.sin6 = *(struct sockaddr_in6 *)src; /* struct copy */ ssz = sizeof(struct sockaddr_in6); break; default: if (cnt > 0) dst[0] = '\0'; return NULL; } sa.sa.sa_family = af; if (WSAAddressToString(&sa.sa, ssz, NULL, dst, &sz) != 0) { if (cnt > 0) dst[0] = '\0'; return NULL; } return dst; } /* Decode a Win32 error number. */ const char * win32_strerror(int e) { static char buffer[4096]; if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, e, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), buffer, sizeof(buffer), NULL) == 0) { sprintf(buffer, "Windows error %d", e); } return buffer; } #if defined(_MSC_VER) /*[*/ /* MinGW has gettimofday(), but MSVC does not. */ #include #define SECS_BETWEEN_EPOCHS 11644473600ULL #define SECS_TO_100NS 10000000ULL /* 10^7 */ int gettimeofday(struct timeval *tv, void *ignored) { FILETIME t; ULARGE_INTEGER u; GetSystemTimeAsFileTime(&t); memcpy(&u, &t, sizeof(ULARGE_INTEGER)); /* Isolate seconds and move epochs. */ tv->tv_sec = (DWORD)((u.QuadPart / SECS_TO_100NS) - SECS_BETWEEN_EPOCHS); tv->tv_usec = (u.QuadPart % SECS_TO_100NS) / 10ULL; return 0; } /* MinGW has getopt(), but MSVC does not. */ char *optarg; int optind = 1, opterr = 1, optopt; static const char *nextchar = NULL; int getopt(int argc, char * const argv[], const char *optstring) { char c; const char *s; if (optind == 1) nextchar = argv[optind++]; do { if (nextchar == argv[optind - 1]) { if (optind > argc) { --optind; /* went too far */ return -1; } if (nextchar == NULL) { --optind; /* went too far */ return -1; } if (!strcmp(nextchar, "--")) return -1; if (*nextchar++ != '-') { --optind; return -1; } } if ((c = *nextchar++) == '\0') nextchar = argv[optind++]; } while (nextchar == argv[optind - 1]); s = strchr(optstring, c); if (s == NULL) { if (opterr) fprintf(stderr, "Unknown option '%c'\n", c); return '?'; } if (*(s + 1) == ':') { if (*nextchar) { optarg = (char *)nextchar; nextchar = argv[optind++]; return c; } else if (optind < argc && argv[optind] != NULL) { optarg = (char *)argv[optind++]; nextchar = argv[optind++]; return c; } else { if (opterr) fprintf(stderr, "Missing value after '%c'\n", c); return -1; } } else return c; } #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/sfc.h0000644000175000017500000000320211254565704015055 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * sfc.h * Global declarations for sf.c. */ extern enum pds write_structured_field(unsigned char buf[], int buflen); ibm-3270-3.3.10ga4/ws3270/print.c0000644000175000017500000007103711254565704015444 0ustar bastianbastian/* * Copyright (c) 1994-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * print.c * Screen printing functions. */ #include "globals.h" #include "appres.h" #include "3270ds.h" #include "ctlr.h" #include "ctlrc.h" #include "tablesc.h" #include #if defined(X3270_DISPLAY) /*[*/ #include #include #endif /*]*/ #include "objects.h" #include "resources.h" #include "actionsc.h" #include "charsetc.h" #include "popupsc.h" #include "printc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include #include #include #include #endif /*]*/ #if defined(_MSC_VER) /*[*/ #include "Msc/deprecated.h" #endif /*]*/ /* Globals */ #if defined(X3270_DISPLAY) /*[*/ char *print_text_command = NULL; Boolean ptc_changed = FALSE; #endif /*]*/ /* Statics */ #if defined(X3270_DISPLAY) /*[*/ static Widget print_text_shell = (Widget)NULL; static Widget save_text_shell = (Widget)NULL; static Widget print_window_shell = (Widget)NULL; char *print_window_command = CN; #endif /*]*/ /* Print Text popup */ /* * Map default 3279 colors. This code is duplicated three times. ;-( */ static int color_from_fa(unsigned char fa) { static int field_colors[4] = { HOST_COLOR_GREEN, /* default */ HOST_COLOR_RED, /* intensified */ HOST_COLOR_BLUE, /* protected */ HOST_COLOR_WHITE /* protected, intensified */ # define DEFCOLOR_MAP(f) \ ((((f) & FA_PROTECT) >> 4) | (((f) & FA_INT_HIGH_SEL) >> 3)) }; if (appres.m3279) return field_colors[DEFCOLOR_MAP(fa)]; else return HOST_COLOR_GREEN; } /* * Map 3279 colors onto HTML colors. */ static char * html_color(int color) { static char *html_color_map[] = { "black", "deepSkyBlue", "red", "pink", "green", "turquoise", "yellow", "white", "black", "blue3", "orange", "purple", "paleGreen", "paleTurquoise2", "grey", "white" }; if (color >= HOST_COLOR_NEUTRAL_BLACK && color <= HOST_COLOR_WHITE) return html_color_map[color]; else return "black"; } /* Convert a caption string to UTF-8 RTF. */ static char * rtf_caption(const char *caption) { ucs4_t u; int consumed; enum me_fail error; char *result = Malloc(1); int rlen = 1; char uubuf[64]; char mb[16]; int nmb; result[0] = '\0'; while (*caption) { u = multibyte_to_unicode(caption, strlen(caption), &consumed, &error); if (u == 0) break; if (u & ~0x7f) { sprintf(uubuf, "\\u%u?", u); } else { nmb = unicode_to_multibyte(u, mb, sizeof(mb)); if (mb[0] == '\\' || mb[0] == '{' || mb[0] == '}') sprintf(uubuf, "\\%c", mb[0]); else if (mb[0] == '-') sprintf(uubuf, "\\_"); else if (mb[0] == ' ') sprintf(uubuf, "\\~"); else { uubuf[0] = mb[0]; uubuf[1] = '\0'; } } result = Realloc(result, rlen + strlen(uubuf)); strcat(result, uubuf); rlen += strlen(uubuf); caption += consumed; } return result; } /* Convert a caption string to UTF-8 HTML. */ static char * html_caption(const char *caption) { ucs4_t u; int consumed; enum me_fail error; char *result = Malloc(1); int rlen = 1; char u8buf[16]; int nu8; result[0] = '\0'; while (*caption) { u = multibyte_to_unicode(caption, strlen(caption), &consumed, &error); if (u == 0) break; switch (u) { case '<': result = Realloc(result, rlen + 4); strcat(result, "<"); rlen += 4; break; case '>': result = Realloc(result, rlen + 4); strcat(result, ">"); rlen += 4; break; case '&': result = Realloc(result, rlen + 5); strcat(result, "&"); rlen += 5; break; default: nu8 = unicode_to_utf8(u, u8buf); result = Realloc(result, rlen + nu8); memcpy(result + rlen - 1, u8buf, nu8); rlen += nu8; result[rlen - 1] = '\0'; break; } caption += consumed; } return result; } /* * Print the ASCIIfied contents of the screen onto a stream. * Returns True if anything printed, False otherwise. * * 'ptype' can specify: * P_TEXT: Ordinary text * P_HTML: HTML * P_RTF: Windows rich text * * 'opts' is an OR of: * FPS_EVEN_IF_EMPTY Create a file even if the screen is clear * FPS_MODIFIED_ITALIC Print modified fields in italic * font-style:normal|italic */ Boolean fprint_screen(FILE *f, ptype_t ptype, unsigned opts, char *caption) { register int i; unsigned long uc; int ns = 0; int nr = 0; Boolean any = False; int fa_addr = find_field_attribute(0); unsigned char fa = ea_buf[fa_addr].fa; int fa_fg, current_fg; int fa_bg, current_bg; Bool fa_high, current_high; Bool fa_ital, current_ital; Bool mi = ((opts & FPS_MODIFIED_ITALIC)) != 0; char *xcaption = NULL; if (caption != NULL) { char *ts = strstr(caption, "%T%"); if (ts != NULL) { time_t t = time(NULL); struct tm *tm = localtime(&t); xcaption = Malloc(strlen(caption) + 1 - 3 + 19); strncpy(xcaption, caption, ts - caption); sprintf(xcaption + (ts - caption), "%04d-%02d-%02d %02d:%02d:%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); strcat(xcaption, ts + 3); } else { xcaption = NewString(caption); } } if (ptype != P_TEXT) { opts |= FPS_EVEN_IF_EMPTY; } if (ea_buf[fa_addr].fg) fa_fg = ea_buf[fa_addr].fg & 0x0f; else fa_fg = color_from_fa(fa); current_fg = fa_fg; if (ea_buf[fa_addr].bg) fa_bg = ea_buf[fa_addr].bg & 0x0f; else fa_bg = HOST_COLOR_BLACK; current_bg = fa_bg; if (ea_buf[fa_addr].gr & GR_INTENSIFY) fa_high = True; else fa_high = FA_IS_HIGH(fa); current_high = fa_high; fa_ital = mi && FA_IS_MODIFIED(fa); current_ital = fa_ital; if (ptype == P_RTF) { char *pt_font = get_resource(ResPrintTextFont); char *pt_size = get_resource(ResPrintTextSize); int pt_nsize; if (pt_font == CN) pt_font = "Courier New"; if (pt_size == CN) pt_size = "8"; pt_nsize = atoi(pt_size); if (pt_nsize <= 0) pt_nsize = 8; fprintf(f, "{\\rtf1\\ansi\\ansicpg%u\\deff0\\deflang1033{\\fonttbl{\\f0\\fmodern\\fprq1\\fcharset0 %s;}}\n" "\\viewkind4\\uc1\\pard\\f0\\fs%d ", #if defined(_WIN32) /*[*/ GetACP(), #else /*][*/ 1252, /* the number doesn't matter */ #endif /*]*/ pt_font, pt_nsize * 2); if (xcaption != NULL) { char *hcaption = rtf_caption(xcaption); fprintf(f, "%s\\par\\par\n", hcaption); Free(hcaption); } if (current_high) fprintf(f, "\\b "); } if (ptype == P_HTML) { char *hcaption = NULL; /* Make the caption HTML-safe. */ if (xcaption != NULL) hcaption = html_caption(xcaption); /* Print the preamble. */ fprintf(f, "\n" "\n" " \n" "\n" " \n"); if (hcaption) fprintf(f, "

%s

\n", hcaption); fprintf(f, " " "\n" "
" "
",
			   html_color(current_fg),
			   html_color(current_bg),
			   current_high? "bold": "normal",
			   current_ital? "italic": "normal");
		if (hcaption != NULL)
			Free(hcaption);
	}

	if (ptype == P_TEXT) {
	    	if (xcaption != NULL)
		    	fprintf(f, "%s\n\n", xcaption);
	}

	for (i = 0; i < ROWS*COLS; i++) {
		char mb[16];
		int nmb;

		uc = 0;

		if (i && !(i % COLS)) {
		    	if (ptype == P_HTML)
			    	(void) fputc('\n', f);
			else
				nr++;
			ns = 0;
		}
		if (ea_buf[i].fa) {
			uc = ' ';
			fa = ea_buf[i].fa;
			if (ea_buf[i].fg)
				fa_fg = ea_buf[i].fg & 0x0f;
			else
				fa_fg = color_from_fa(fa);
			if (ea_buf[i].bg)
				fa_bg = ea_buf[i].bg & 0x0f;
			else
				fa_bg = HOST_COLOR_BLACK;
			if (ea_buf[i].gr & GR_INTENSIFY)
				fa_high = True;
			else
				fa_high = FA_IS_HIGH(fa);
			fa_ital = mi && FA_IS_MODIFIED(fa);
		}
		if (FA_IS_ZERO(fa)) {
#if defined(X3270_DBCS) /*[*/
			if (ctlr_dbcs_state(i) == DBCS_LEFT)
			    	uc = 0x3000;
			else
#endif /*]*/
				uc = ' ';
		} else {
		    	/* Convert EBCDIC to Unicode. */
#if defined(X3270_DBCS) /*[*/
			switch (ctlr_dbcs_state(i)) {
			case DBCS_NONE:
			case DBCS_SB:
			    	uc = ebcdic_to_unicode(ea_buf[i].cc,
					ea_buf[i].cs, EUO_NONE);
				if (uc == 0)
				    	uc = ' ';
				break;
			case DBCS_LEFT:
				uc = ebcdic_to_unicode(
					(ea_buf[i].cc << 8) |
					 ea_buf[i + 1].cc,
					CS_BASE, EUO_NONE);
				if (uc == 0)
				    	uc = 0x3000;
				break;
			case DBCS_RIGHT:
				/* skip altogether, we took care of it above */
				continue;
			default:
				uc = ' ';
				break;
			}
#else /*][*/
			uc = ebcdic_to_unicode(ea_buf[i].cc, ea_buf[i].cs,
				EUO_NONE);
			if (uc == 0)
				uc = ' ';
#endif /*]*/
		}

		/* Translate to a type-specific format and write it out. */
		if (uc == ' ' && ptype != P_HTML)
			ns++;
#if defined(X3270_DBCS) /*[*/
		else if (uc == 0x3000) {
		    	if (ptype == P_HTML)
			    	fprintf(f, "  ");
			else
				ns += 2;
		}
#endif /*]*/
		else {
			while (nr) {
			    	if (ptype == P_RTF)
				    	fprintf(f, "\\par");
				(void) fputc('\n', f);
				nr--;
			}
			while (ns) {
			    	if (ptype == P_RTF)
				    	fprintf(f, "\\~");
				else
					(void) fputc(' ', f);
				ns--;
			}
			if (ptype == P_RTF) {
				Bool high;

				if (ea_buf[i].gr & GR_INTENSIFY)
					high = True;
				else
					high = fa_high;
				if (high != current_high) {
					if (high)
						fprintf(f, "\\b ");
					else
						fprintf(f, "\\b0 ");
					current_high = high;
				}
			}
			if (ptype == P_HTML) {
				int fg_color, bg_color;
				Bool high;

				if (ea_buf[i].fg)
					fg_color = ea_buf[i].fg & 0x0f;
				else
					fg_color = fa_fg;
				if (ea_buf[i].bg)
					bg_color = ea_buf[i].bg & 0x0f;
				else
					bg_color = fa_bg;
				if (ea_buf[i].gr & GR_REVERSE) {
				    	int tmp;

					tmp = fg_color;
					fg_color = bg_color;
					bg_color = tmp;
				}

				if (i == cursor_addr) {
				    	fg_color = (bg_color == HOST_COLOR_RED)?
							HOST_COLOR_BLACK: bg_color;
					bg_color = HOST_COLOR_RED;
				}
				if (ea_buf[i].gr & GR_INTENSIFY)
					high = True;
				else
					high = fa_high;

				if (fg_color != current_fg ||
				    bg_color != current_bg ||
				    high != current_high ||
				    fa_ital != current_ital) {
					fprintf(f,
						"",
						html_color(fg_color),
						html_color(bg_color),
						high? "bold": "normal",
						fa_ital? "italic": "normal");
					current_fg = fg_color;
					current_bg = bg_color;
					current_high = high;
					current_ital = fa_ital;
				}
			}
			any = True;
			if (ptype == P_RTF) {
				if (uc & ~0x7f) {
					fprintf(f, "\\u%ld?", uc);
				} else {
					nmb = unicode_to_multibyte(uc,
						mb, sizeof(mb));
					if (mb[0] == '\\' ||
						mb[0] == '{' ||
						mb[0] == '}')
						fprintf(f, "\\%c",
							mb[0]);
					else if (mb[0] == '-')
						fprintf(f, "\\_");
					else if (mb[0] == ' ')
						fprintf(f, "\\~");
					else
						fputc(mb[0], f);
				}
			} else if (ptype == P_HTML) {
				if (uc == '<')
					fprintf(f, "<");
				else if (uc == '&')
				    	fprintf(f, "&");
				else if (uc == '>')
				    	fprintf(f, ">");
				else {
					nmb = unicode_to_utf8(uc, mb);
					{
					    int k;

					    for (k = 0; k < nmb; k++) {
						fputc(mb[k], f);
					    }
					}
				}
			} else {
				nmb = unicode_to_multibyte(uc,
					mb, sizeof(mb));
				(void) fputs(mb, f);
			}
		}
	}

	if (xcaption != NULL)
	    	Free(xcaption);

	if (ptype == P_HTML)
	    	(void) fputc('\n', f);
	else
		nr++;
	if (!any && !(opts & FPS_EVEN_IF_EMPTY) && ptype == P_TEXT)
		return False;
	while (nr) {
	    	if (ptype == P_RTF)
		    	fprintf(f, "\\par");
		if (ptype == P_TEXT)
			(void) fputc('\n', f);
		nr--;
	}
	if (ptype == P_RTF) {
	    	fprintf(f, "\n}\n%c", 0);
	}
	if (ptype == P_HTML) {
		fprintf(f, "%s
\n" " \n" "\n", current_high? "": ""); } return True; } #if !defined(_WIN32) /*[*/ /* Termination code for print text process. */ static void print_text_done(FILE *f, Boolean do_popdown #if defined(X3270_DISPLAY) /*[*/ _is_unused #endif /*]*/ ) { int status; status = pclose(f); if (status) { popup_an_error("Print program exited with status %d.", (status & 0xff00) > 8); } else { #if defined(X3270_DISPLAY) /*[*/ if (do_popdown) XtPopdown(print_text_shell); #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ if (appres.do_confirms) popup_an_info("Screen image printed."); #endif /*]*/ } } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* Callback for "OK" button on the print text popup. */ static void print_text_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *filter; FILE *f; filter = XawDialogGetValueString((Widget)client_data); if (!filter) { XtPopdown(print_text_shell); return; } if (!(f = popen(filter, "w"))) { popup_an_errno(errno, "popen(%s)", filter); return; } if (print_text_command == NULL || strcmp(print_text_command, filter)) { Replace(print_text_command, filter); ptc_changed = True; } (void) fprint_screen(f, P_TEXT, FPS_EVEN_IF_EMPTY, NULL); print_text_done(f, True); } /* Callback for "Plain Text" button on save text popup. */ static void save_text_plain_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *filename; FILE *f; filename = XawDialogGetValueString((Widget)client_data); if (!filename) { XtPopdown(save_text_shell); return; } if (!(f = fopen(filename, "a"))) { popup_an_errno(errno, "%s", filename); return; } (void) fprint_screen(f, P_TEXT, FPS_EVEN_IF_EMPTY, NULL); fclose(f); XtPopdown(save_text_shell); if (appres.do_confirms) popup_an_info("Screen image saved."); } /* Callback for "HTML" button on save text popup. */ static void save_text_html_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { char *filename; FILE *f; filename = XawDialogGetValueString((Widget)client_data); if (!filename) { XtPopdown(save_text_shell); return; } if (!(f = fopen(filename, "a"))) { popup_an_errno(errno, "%s", filename); return; } (void) fprint_screen(f, P_HTML, FPS_EVEN_IF_EMPTY, NULL); fclose(f); XtPopdown(save_text_shell); if (appres.do_confirms) popup_an_info("Screen image saved."); } /* Pop up the Print Text dialog, given a filter. */ static void popup_print_text(char *filter) { if (print_text_shell == NULL) { print_text_shell = create_form_popup("PrintText", print_text_callback, (XtCallbackProc)NULL, FORM_AS_IS); XtVaSetValues(XtNameToWidget(print_text_shell, ObjDialog), XtNvalue, filter, NULL); } popup_popup(print_text_shell, XtGrabExclusive); } /* Pop up the Save Text dialog. */ static void popup_save_text(char *filename) { if (save_text_shell == NULL) { save_text_shell = create_form_popup("SaveText", save_text_plain_callback, save_text_html_callback, FORM_AS_IS); } if (filename != CN) XtVaSetValues(XtNameToWidget(save_text_shell, ObjDialog), XtNvalue, filename, NULL); popup_popup(save_text_shell, XtGrabExclusive); } #endif /*]*/ #if defined(_WIN32) /*[*/ /* * A Windows version of something like mkstemp(). Creates a temporary * file in $TEMP, returning its path and an open file descriptor. */ int win_mkstemp(char **path, ptype_t ptype) { char *s; int fd; s = getenv("TEMP"); if (s == NULL) s = getenv("TMP"); if (s == NULL) s = "C:"; *path = xs_buffer("%s\\x3h%u.%s", s, getpid(), (ptype == P_RTF)? "rtf": "txt"); fd = open(*path, O_CREAT | O_RDWR, S_IREAD | S_IWRITE); if (fd < 0) { Free(*path); *path = NULL; } return fd; } /* * Find WORDPAD.EXE. */ #define PROGRAMFILES "%ProgramFiles%" char * find_wordpad(void) { char data[1024]; DWORD dlen; char *slash; static char *wp = NULL; HKEY key; if (wp != NULL) return wp; /* Get the shell print command for RTF files. */ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Classes\\rtffile\\shell\\print\\command", 0, KEY_READ, &key) != ERROR_SUCCESS) { return NULL; } dlen = sizeof(data); if (RegQueryValueEx(key, NULL, NULL, NULL, (LPVOID)data, &dlen) != ERROR_SUCCESS) { RegCloseKey(key); return NULL; } RegCloseKey(key); if (data[0] == '"') { char data2[1024]; char *q2; /* The first token is quoted; that's the path. */ strcpy(data2, data + 1); q2 = strchr(data2, '"'); if (q2 == NULL) { return NULL; } *q2 = '\0'; strcpy(data, data2); } else if ((slash = strchr(data, '/')) != NULL) { /* Find the "/p". */ *slash = '\0'; if (*(slash - 1) == ' ') *(slash - 1) = '\0'; } if (!strncasecmp(data, PROGRAMFILES, strlen(PROGRAMFILES))) { char *pf = getenv("PROGRAMFILES"); /* Substitute %ProgramFiles%. */ if (pf == NULL) { return NULL; } wp = xs_buffer("%s\\%s", pf, data + strlen(PROGRAMFILES)); } else { wp = NewString(data); } if (GetShortPathName(wp, data, sizeof(data)) != 0) { Free(wp); wp = NewString(data); } return wp; } #endif /*]*/ /* Print or save the contents of the screen as text. */ void PrintText_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; char *filter = CN; Boolean secure = appres.secure; ptype_t ptype = P_TEXT; Boolean use_file = False; Boolean use_string = False; char *temp_name = NULL; unsigned opts = FPS_EVEN_IF_EMPTY; char *caption = NULL; action_debug(PrintText_action, event, params, num_params); /* * Pick off optional arguments: * file directs the output to a file instead of a command; * must be the last keyword * html generates HTML output instead of ASCII text (and implies * 'file') * rtf generates RTF output instead of ASCII text (and implies * 'file') * modi print modified fields in italics * caption "text" * Adds caption text above the screen * %T% is replaced by a timestamp * secure disables the pop-up dialog, if this action is invoked from * a keymap * command directs the output to a command (this is the default, but * allows the command to be one of the other keywords); * must be the last keyword * string returns the data as a string, allowed only from scripts */ for (i = 0; i < *num_params; i++) { if (!strcasecmp(params[i], "file")) { use_file = True; i++; break; } else if (!strcasecmp(params[i], "html")) { ptype = P_HTML; use_file = True; } else if (!strcasecmp(params[i], "rtf")) { ptype = P_RTF; use_file = True; } else if (!strcasecmp(params[i], "secure")) { secure = True; } else if (!strcasecmp(params[i], "command")) { if ((ptype != P_TEXT) || use_file) { popup_an_error("%s: contradictory options", action_name(PrintText_action)); return; } i++; break; } else if (!strcasecmp(params[i], "string")) { if (ia_cause != IA_SCRIPT) { popup_an_error("%s(string) can only be used " "from a script", action_name(PrintText_action)); return; } use_string = True; use_file = True; } else if (!strcasecmp(params[i], "modi")) { opts |= FPS_MODIFIED_ITALIC; } else if (!strcasecmp(params[i], "caption")) { if (i == *num_params - 1) { popup_an_error("%s: mising caption parameter", action_name(PrintText_action)); return; } caption = params[++i]; } else { break; } } switch (*num_params - i) { case 0: /* Use the default. */ if (!use_file) { #if !defined(_WIN32) /*[*/ filter = get_resource(ResPrintTextCommand); #else /*][*/ filter = get_resource(ResPrinterName); /* XXX */ #endif /*]*/ } break; case 1: if (use_string) { popup_an_error("%s: extra arguments or invalid option(s)", action_name(PrintText_action)); return; } filter = params[i]; break; default: popup_an_error("%s: extra arguments or invalid option(s)", action_name(PrintText_action)); return; } #if defined(_WIN32) /*[*/ /* On Windows, use rich text. */ if (!use_string && !use_file && ptype != P_HTML) ptype = P_RTF; #endif /*]*/ if (filter != CN && filter[0] == '@') { /* * Starting the PrintTextCommand resource value with '@' * suppresses the pop-up dialog, as does setting the 'secure' * resource. */ secure = True; filter++; } if (!use_file && (filter == CN || !*filter)) #if !defined(_WIN32) /*[*/ filter = "lpr"; #else /*][*/ filter = CN; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ if (secure || ia_cause == IA_COMMAND || ia_cause == IA_MACRO || ia_cause == IA_SCRIPT) #endif /*]*/ { FILE *f; int fd = -1; /* Invoked non-interactively. */ if (use_file) { if (use_string) { #if defined(_WIN32) /*[*/ fd = win_mkstemp(&temp_name, ptype); #else /*][*/ temp_name = NewString("/tmp/x3hXXXXXX"); fd = mkstemp(temp_name); #endif /*]*/ if (fd < 0) { popup_an_errno(errno, "mkstemp"); return; } f = fdopen(fd, "w+"); } else { if (filter == CN || !*filter) { popup_an_error("%s: missing filename", action_name(PrintText_action)); return; } f = fopen(filter, "a"); } } else { #if !defined(_WIN32) /*[*/ f = popen(filter, "w"); #else /*][*/ fd = win_mkstemp(&temp_name, ptype); if (fd < 0) { popup_an_errno(errno, "mkstemp"); return; } f = fdopen(fd, "w+"); #endif /*]*/ } if (f == NULL) { popup_an_errno(errno, "%s: %s", action_name(PrintText_action), filter); if (fd >= 0) { (void) close(fd); } if (temp_name) { unlink(temp_name); Free(temp_name); } return; } (void) fprint_screen(f, ptype, opts, caption); if (use_string) { char buf[8192]; rewind(f); while (fgets(buf, sizeof(buf), f) != NULL) action_output("%s", buf); } if (use_file) fclose(f); else { #if !defined(_WIN32) /*[*/ print_text_done(f, False); #else /*][*/ char *wp; fclose(f); wp = find_wordpad(); if (wp == NULL) { popup_an_error("%s: Can't find WORDPAD.EXE", action_name(PrintText_action)); } else { char *cmd; if (filter != CN) cmd = xs_buffer("start /wait /min %s " "/pt \"%s\" \"%s\"", wp, temp_name, filter); else cmd = xs_buffer("start /wait /min %s " "/p \"%s\"", wp, temp_name); system(cmd); Free(cmd); } #if !defined(S3270) /*[*/ if (appres.do_confirms) popup_an_info("Screen image printed.\n"); #endif /*]*/ #endif /*]*/ } if (temp_name) { unlink(temp_name); Free(temp_name); } return; } #if defined(X3270_DISPLAY) /*[*/ /* Invoked interactively -- pop up the confirmation dialog. */ if (use_file) { popup_save_text(filter); } else { popup_print_text(filter); } #endif /*]*/ } #if defined(X3270_DISPLAY) /*[*/ #if defined(X3270_MENUS) /*[*/ /* Callback for Print Text menu option. */ void print_text_option(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { char *filter = get_resource(ResPrintTextCommand); Boolean secure = appres.secure; ptype_t ptype = P_TEXT; if (print_text_command != NULL) filter = print_text_command; else { filter = get_resource(ResPrintTextCommand); if (filter == NULL || !*filter) filter = "lpr"; print_text_command = XtNewString(filter); } /* Decode the filter. */ if (filter != CN && *filter == '@') { secure = True; filter++; } if (filter == CN || !*filter) filter = "lpr"; if (secure) { FILE *f; /* Print the screen without confirming. */ if (!(f = popen(filter, "w"))) { popup_an_errno(errno, "popen(%s)", filter); return; } (void) fprint_screen(f, ptype, FPS_EVEN_IF_EMPTY, NULL); print_text_done(f, False); } else { /* Pop up a dialog to confirm or modify their choice. */ popup_print_text(filter); } } /* Callback for Save Text menu option. */ void save_text_option(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { /* Pop up a dialog to confirm or modify their choice. */ popup_save_text(CN); } #endif /*]*/ /* Print Window popup */ /* * Printing the window bitmap is a rather convoluted process: * The PrintWindow action calls PrintWindow_action(), or a menu option calls * print_window_option(). * print_window_option() pops up the dialog. * The OK button on the dialog triggers print_window_callback. * print_window_callback pops down the dialog, then schedules a timeout * 1 second away. * When the timeout expires, it triggers snap_it(), which finally calls * xwd. * The timeout indirection is necessary because xwd prints the actual contents * of the window, including any pop-up dialog in front of it. We pop down the * dialog, but then it is up to the server and Xt to send us the appropriate * expose events to repaint our window. Hopefully, one second is enough to do * that. */ /* Termination procedure for window print. */ static void print_window_done(int status) { if (status) popup_an_error("Print program exited with status %d.", (status & 0xff00) >> 8); else if (appres.do_confirms) popup_an_info("Bitmap printed."); } /* Timeout callback for window print. */ static void snap_it(XtPointer closure _is_unused, XtIntervalId *id _is_unused) { if (!print_window_command) return; XSync(display, 0); print_window_done(system(print_window_command)); } /* Callback for "OK" button on print window popup. */ static void print_window_callback(Widget w _is_unused, XtPointer client_data, XtPointer call_data _is_unused) { print_window_command = XawDialogGetValueString((Widget)client_data); XtPopdown(print_window_shell); if (print_window_command) (void) XtAppAddTimeOut(appcontext, 1000, snap_it, 0); } /* Print the contents of the screen as a bitmap. */ void PrintWindow_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { char *filter = get_resource(ResPrintWindowCommand); char *fb = XtMalloc(strlen(filter) + 16); char *xfb = fb; Boolean secure = appres.secure; action_debug(PrintWindow_action, event, params, num_params); if (*num_params > 0) filter = params[0]; if (*num_params > 1) popup_an_error("%s: extra arguments ignored", action_name(PrintWindow_action)); if (filter == CN) { popup_an_error("%s: no %s defined", action_name(PrintWindow_action), ResPrintWindowCommand); return; } (void) sprintf(fb, filter, XtWindow(toplevel)); if (fb[0] == '@') { secure = True; xfb = fb + 1; } if (secure) { print_window_done(system(xfb)); Free(fb); return; } if (print_window_shell == NULL) print_window_shell = create_form_popup("printWindow", print_window_callback, (XtCallbackProc)NULL, FORM_AS_IS); XtVaSetValues(XtNameToWidget(print_window_shell, ObjDialog), XtNvalue, fb, NULL); popup_popup(print_window_shell, XtGrabExclusive); } #if defined(X3270_MENUS) /*[*/ /* Callback for menu Print Window option. */ void print_window_option(Widget w, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { Cardinal zero = 0; PrintWindow_action(w, (XEvent *)NULL, (String *)NULL, &zero); } #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/idlec.h0000644000175000017500000000425711254565704015375 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * idlec.h * Global declarations for idle.c. */ enum idle_enum { IDLE_DISABLED = 0, IDLE_SESSION = 1, IDLE_PERM = 2 }; #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ extern void cancel_idle_timer(void); extern void idle_init(void); extern void reset_idle_timer(void); extern char *get_idle_command(); extern char *get_idle_timeout(); extern Boolean idle_changed; extern char *idle_command; extern char *idle_timeout_string; extern enum idle_enum idle_user_enabled; #if defined(X3270_DISPLAY) && defined(X3270_MENUS) /*[*/ extern void popup_idle(void); #endif /*]*/ #else /*][*/ #define cancel_idle_timer() #define idle_init() #define reset_idle_timer() #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/utf8c.h0000644000175000017500000000344711254565704015346 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utf8c.h * 3270 Terminal Emulator * UTF-8 conversions */ extern char *locale_codeset; extern Boolean is_utf8; extern void set_codeset(char *codeset_name); extern int unicode_to_utf8(ucs4_t ucs4, char *utf8); extern int utf8_to_unicode(const char *utf8, int len, ucs4_t *ucs4); ibm-3270-3.3.10ga4/ws3270/mkfb.c0000644000175000017500000002706611254565704015232 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * mkfb.c * Utility to create RDB string definitions from a simple #ifdef'd .ad * file */ #include "conf.h" #include #include #include #include #define BUFSZ 1024 /* input line buffer size */ #define ARRSZ 8192 /* output array size */ #define SSSZ 10 /* maximum nested ifdef */ unsigned aix[ARRSZ]; /* fallback array indices */ unsigned xlno[ARRSZ]; /* fallback array line numbers */ unsigned n_fallbacks = 0; /* number of fallback entries */ /* ifdef state stack */ #define MODE_COLOR 0x00000001 #define MODE_FT 0x00000002 #define MODE_TRACE 0x00000004 #define MODE_MENUS 0x00000008 #define MODE_ANSI 0x00000010 #define MODE_KEYPAD 0x00000020 #define MODE_APL 0x00000040 #define MODE_PRINTER 0x00000080 #define MODE_STANDALONE 0x00000100 #define MODE_SCRIPT 0x00000200 #define MODE_DBCS 0x00000400 #define MODE__WIN32 0x00000800 #define MODEMASK 0x00000fff struct { unsigned long ifdefs; unsigned long ifndefs; unsigned lno; } ss[SSSZ]; unsigned ssp = 0; struct { const char *name; unsigned long mask; } parts[] = { { "COLOR", MODE_COLOR }, { "X3270_FT", MODE_FT }, { "X3270_TRACE", MODE_TRACE }, { "X3270_MENUS", MODE_MENUS }, { "X3270_ANSI", MODE_ANSI }, { "X3270_KEYPAD", MODE_KEYPAD }, { "X3270_APL", MODE_APL }, { "X3270_PRINTER", MODE_PRINTER }, { "STANDALONE", MODE_STANDALONE }, { "X3270_SCRIPT", MODE_SCRIPT }, { "X3270_DBCS", MODE_DBCS }, { "_WIN32", MODE__WIN32 } }; #define NPARTS (sizeof(parts)/sizeof(parts[0])) unsigned long is_defined = MODE_COLOR | #if defined(X3270_FT) MODE_FT #else 0 #endif | #if defined(X3270_TRACE) MODE_TRACE #else 0 #endif | #if defined(X3270_MENUS) MODE_MENUS #else 0 #endif | #if defined(X3270_ANSI) MODE_ANSI #else 0 #endif | #if defined(X3270_KEYPAD) MODE_KEYPAD #else 0 #endif | #if defined(X3270_APL) MODE_APL #else 0 #endif | #if defined(X3270_PRINTER) MODE_PRINTER #else 0 #endif | #if defined(X3270_SCRIPT) MODE_SCRIPT #else 0 #endif | #if defined(X3270_DBCS) MODE_DBCS #else 0 #endif | #if defined(_WIN32) MODE__WIN32 #else 0 #endif ; unsigned long is_undefined; char *me; void emit(FILE *t, int ix, char c); void usage(void) { fprintf(stderr, "usage: %s [infile [outfile]]\n", me); exit(1); } int main(int argc, char *argv[]) { char buf[BUFSZ]; int lno = 0; int cc = 0; unsigned i; int continued = 0; const char *filename = "standard input"; FILE *u, *t, *tc = NULL, *tm = NULL, *o; int cmode = 0; unsigned long ifdefs; unsigned long ifndefs; int last_continue = 0; /* Parse arguments. */ if ((me = strrchr(argv[0], '/')) != (char *)NULL) me++; else me = argv[0]; if (argc > 1 && !strcmp(argv[1], "-c")) { cmode = 1; is_defined |= MODE_STANDALONE; argc--; argv++; } switch (argc) { case 1: break; case 2: case 3: if (strcmp(argv[1], "-")) { if (freopen(argv[1], "r", stdin) == (FILE *)NULL) { perror(argv[1]); exit(1); } filename = argv[1]; } break; default: usage(); } is_undefined = MODE_COLOR | (~is_defined & MODEMASK); /* Do #ifdef, comment and whitespace processing first. */ u = tmpfile(); if (u == NULL) { perror("tmpfile"); exit(1); } while (fgets(buf, BUFSZ, stdin) != (char *)NULL) { char *s = buf; int sl; unsigned i; lno++; /* Skip leading white space. */ while (isspace(*s)) s++; if (cmode && (!strncmp(s, "x3270.", 6) || !strncmp(s, "x3270*", 6))) { s += 6; } /* Remove trailing white space. */ while ((sl = strlen(s)) && isspace(s[sl-1])) s[sl-1] = '\0'; /* Skip comments and empty lines. */ if ((!last_continue && *s == '!') || !*s) continue; /* Check for simple if[n]defs. */ if (*s == '#') { int ifnd = 1; if (!strncmp(s, "#ifdef ", 7) || !(ifnd = strncmp(s, "#ifndef ", 8))) { char *tk; if (ssp >= SSSZ) { fprintf(stderr, "%s, line %d: Stack overflow\n", filename, lno); exit(1); } ss[ssp].ifdefs = 0L; ss[ssp].ifndefs = 0L; ss[ssp].lno = lno; tk = s + 7 + !ifnd; for (i = 0; i < NPARTS; i++) { if (!strcmp(tk, parts[i].name)) { if (!ifnd) ss[ssp++].ifndefs = parts[i].mask; else ss[ssp++].ifdefs = parts[i].mask; break; } } if (i >= NPARTS) { fprintf(stderr, "%s, line %d: Unknown condition\n", filename, lno); exit(1); } continue; } else if (!strcmp(s, "#else")) { unsigned long tmp; if (!ssp) { fprintf(stderr, "%s, line %d: Missing #if[n]def\n", filename, lno); exit(1); } tmp = ss[ssp-1].ifdefs; ss[ssp-1].ifdefs = ss[ssp-1].ifndefs; ss[ssp-1].ifndefs = tmp; } else if (!strcmp(s, "#endif")) { if (!ssp) { fprintf(stderr, "%s, line %d: Missing #if[n]def\n", filename, lno); exit(1); } ssp--; } else { fprintf(stderr, "%s, line %d: Unrecognized # directive\n", filename, lno); exit(1); } continue; } /* Figure out if there's anything to emit. */ /* First, look for contradictions. */ ifdefs = 0; ifndefs = 0; for (i = 0; i < ssp; i++) { ifdefs |= ss[i].ifdefs; ifndefs |= ss[i].ifndefs; } if (ifdefs & ifndefs) { #ifdef DEBUG_IFDEFS fprintf(stderr, "contradiction, line %d\n", lno); #endif continue; } /* Then, apply the actual values. */ if (ifdefs && (ifdefs & is_defined) != ifdefs) { #ifdef DEBUG_IFDEFS fprintf(stderr, "ifdef failed, line %d\n", lno); #endif continue; } if (ifndefs && (ifndefs & is_undefined) != ifndefs) { #ifdef DEBUG_IFDEFS fprintf(stderr, "ifndef failed, line %d\n", lno); #endif continue; } /* Emit the text. */ fprintf(u, "%lx %lx %d\n%s\n", ifdefs, ifndefs, lno, s); last_continue = strlen(s) > 0 && s[strlen(s) - 1] == '\\'; } if (ssp) { fprintf(stderr, "%d missing #endif(s) in %s\n", ssp, filename); fprintf(stderr, "last #ifdef was at line %u\n", ss[ssp-1].lno); exit(1); } /* Re-scan, emitting code this time. */ rewind(u); t = tmpfile(); if (t == NULL) { perror("tmpfile"); exit(1); } if (!cmode) { tc = tmpfile(); if (tc == NULL) { perror("tmpfile"); exit(1); } tm = tmpfile(); if (tm == NULL) { perror("tmpfile"); exit(1); } } /* Emit the initial boilerplate. */ fprintf(t, "/* This file was created automatically from %s by mkfb. */\n\n", filename); if (cmode) { fprintf(t, "#include \"globals.h\"\n"); fprintf(t, "static unsigned char fsd[] = {\n"); } else { fprintf(t, "unsigned char common_fallbacks[] = {\n"); fprintf(tc, "unsigned char color_fallbacks[] = {\n"); fprintf(tm, "unsigned char mono_fallbacks[] = {\n"); } /* Scan the file, emitting the fsd array and creating the indices. */ while (fscanf(u, "%lx %lx %d\n", &ifdefs, &ifndefs, &lno) == 3) { char *s = buf; char c; int white; FILE *t_this = t; int ix = 0; if (fgets(buf, BUFSZ, u) == NULL) break; if (strlen(buf) > 0 && buf[strlen(buf)-1] == '\n') buf[strlen(buf)-1] = '\0'; #if 0 fprintf(stderr, "%lx %lx %d %s\n", ifdefs, ifndefs, lno, buf); #endif /* Add array offsets. */ if (cmode) { /* Ignore color. Accumulate offsets into an array. */ if (n_fallbacks >= ARRSZ) { fprintf(stderr, "%s, line %d: Buffer overflow\n", filename, lno); exit(1); } aix[n_fallbacks] = cc; xlno[n_fallbacks++] = lno; } else { /* Use color to decide which file to write into. */ if (!(ifdefs & MODE_COLOR) && !(ifndefs & MODE_COLOR)) { /* Both. */ t_this = t; ix = 0; } else if (ifdefs & MODE_COLOR) { /* Just color. */ t_this = tc; ix = 1; } else { /* Just mono. */ t_this = tm; ix = 2; } } continued = 0; white = 0; while ((c = *s++) != '\0') { if (c == ' ' || c == '\t') white++; else if (white) { emit(t_this, ix, ' '); cc++; white = 0; } switch (c) { case ' ': case '\t': break; case '#': if (!cmode) { emit(t_this, ix, '\\'); emit(t_this, ix, '#'); cc += 2; } else { emit(t_this, ix, c); cc++; } break; case '\\': if (*s == '\0') { continued = 1; break; } else if (cmode) { switch ((c = *s++)) { case 't': c = '\t'; break; case 'n': c = '\n'; break; default: break; } } /* else fall through */ default: emit(t_this, ix, c); cc++; break; } } if (white) { emit(t_this, ix, ' '); cc++; white = 0; } if (!continued) { if (cmode) emit(t_this, ix, 0); else emit(t_this, ix, '\n'); cc++; } } fclose(u); if (cmode) fprintf(t, "};\n\n"); else { emit(t, 0, 0); fprintf(t, "};\n\n"); emit(tc, 0, 0); fprintf(tc, "};\n\n"); emit(tm, 0, 0); fprintf(tm, "};\n\n"); } /* Open the output file. */ if (argc == 3) { o = fopen(argv[2], "w"); if (o == NULL) { perror(argv[2]); exit(1); } } else o = stdout; /* Copy tmp to output. */ rewind(t); if (!cmode) { rewind(tc); rewind(tm); } while (fgets(buf, sizeof(buf), t) != NULL) { fprintf(o, "%s", buf); } if (!cmode) { while (fgets(buf, sizeof(buf), tc) != NULL) { fprintf(o, "%s", buf); } while (fgets(buf, sizeof(buf), tm) != NULL) { fprintf(o, "%s", buf); } } if (cmode) { /* Emit the fallback array. */ fprintf(o, "String fallbacks[%u] = {\n", n_fallbacks + 1); for (i = 0; i < n_fallbacks; i++) { fprintf(o, "\t(String)&fsd[%u], /* line %u */\n", aix[i], xlno[i]); } fprintf(o, "\t(String)NULL\n};\n\n"); /* Emit some test code. */ fprintf(o, "%s", "#if defined(DEBUG) /*[*/\n\ #include \n\ int\n\ main(int argc, char *argv[])\n\ {\n\ int i;\n\ \n\ for (i = 0; fallbacks[i] != NULL; i++)\n\ printf(\"%d: %s\\n\", i, fallbacks[i]);\n\ return 0;\n\ }\n"); fprintf(o, "#endif /*]*/\n\n"); } if (o != stdout) fclose(o); fclose(t); if (!cmode) { fclose(tc); fclose(tm); } return 0; } static int n_out[3] = { 0, 0, 0 }; void emit(FILE *t, int ix, char c) { if (n_out[ix] >= 19) { fprintf(t, "\n"); n_out[ix] = 0; } fprintf(t, "%3d,", (unsigned char)c); n_out[ix]++; } ibm-3270-3.3.10ga4/ws3270/seec.h0000644000175000017500000000430011254565704015221 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * seec.h * Declarations for see.c * */ #if defined(X3270_TRACE) /*[*/ extern const char *see_aid(unsigned char code); extern const char *see_attr(unsigned char fa); extern const char *see_color(unsigned char setting); extern const char *see_ebc(unsigned char ch); extern const char *see_efa(unsigned char efa, unsigned char value); extern const char *see_efa_only(unsigned char efa); extern const char *see_qcode(unsigned char id); extern const char *unknown(unsigned char value); #else /*][*/ #define see_aid 0 && #define see_attr 0 && #define see_color 0 && #define see_ebc 0 && #define see_efa 0 && #define see_efa_only 0 && #define see_qcode 0 && #define unknown 0 && #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/unicode_dbcs.c0000644000175000017500000711141411254565704016732 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * unicode.c * A Windows console-based 3270 Terminal Emulator * DBCS EBCDIC/Unicode translation functions */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include "3270ds.h" #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" /* * DBCS EBCDIC-to-Unicode translation tables. */ #if defined(X3270_DBCS) /*[*/ typedef struct { char *name; const char *codepage; const char *display_charset; const char *u2ebc[512]; /* Unicode to EBCDIC vectors */ const char *ebc2u[512]; /* EBCDIC to Unicode vectors */ } uni16_t; static uni16_t uni16[] = { { "cp930", "0x080b012c" /* 2059, 300 */, "jisx0208.1983-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-300_P110-1997 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x6a\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x43\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x00\x00\x44\x4a\x00\x00\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x43\x77\x43\x78\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x73\x00\x00\x44\xee\x44\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6e\x00\x00\x43\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x43\x70\x00\x00\x43\x4e\x43\x71\x00\x00\x00\x00\x00\x00\x43\x4f\x43\x64\x00\x00\x00\x00\x43\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5f\x00\x00\x00\x00\x43\x61\x44\x4d\x00\x00\x43\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6c\x43\x6d\x43\x6b\x43\x6a\x43\x62\x43\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x43\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x43\x5d\x43\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x43\x68\x43\x69\x00\x00\x00\x00\x43\x66\x43\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ "\x43\x7c\x43\xb7\x43\x7d\x43\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7e\x00\x00\x00\x00\x43\xb9\x43\x7f\x00\x00\x00\x00\x43\xe1\x43\xb1\x00\x00\x00\x00\x43\xe3\x43\xb0\x00\x00\x00\x00\x43\xe2\x43\xb2\x43\xee\x00\x00\x00\x00\x43\xe9\x00\x00\x00\x00\x43\xe4\x43\xb4\x43\xf0\x00\x00\x00\x00\x43\xeb\x00\x00\x00\x00\x43\xe6\x43\xb3\x00\x00\x00\x00\x43\xea\x43\xef\x00\x00\x00\x00\x43\xe5\x43\xb5\x00\x00\x00\x00\x43\xec\x43\xf1\x00\x00\x00\x00\x43\xe7\x43\xb6\x00\x00\x00\x00\x43\xed\x00\x00\x00\x00\x43\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x76\x00\x00\x00\x00\x43\x75\x00\x00\x43\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x45\x41\x4b\xce\x00\x00\x45\x47\x00\x00\x00\x00\x00\x00\x45\x4d\x49\xd3\x45\x43\x45\x5e\x45\x5f\x00\x00\x46\xaf\x47\x89\x00\x00\x56\x42\x4d\xec\x00\x00\x00\x00\x4f\x97\x56\x43\x46\x9b\x57\x75\x4d\x56\x50\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x62\x00\x00\x00\x00\x48\x83\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7c\x00\x00\x56\x44\x00\x00\x56\x45\x00\x00\x00\x00\x45\x5c\x00\x00\x00\x00\x00\x00\x56\x46\x4c\xb8\x00\x00\x00\x00\x00\x00\x56\x47\x00\x00\x46\x7a\x48\xab\x00\x00\x47\x62\x54\xc8\x00\x00\x00\x00\x56\x48\x00\x00\x00\x00\x56\x49\x4b\x9f\x00\x00\x45\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xd8\x00\x00\x55\xa9\x54\xa5\x4f\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd0\x56\x4a\x49\x47\x56\x4b\x4b\xbd\x00\x00\x00\x00\x00\x00\x45\x49\x4e\xb5\x47\x49\x00\x00\x00\x00\x56\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbf\x00\x00\x4a\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x70\x00\x00", /* 4e80 */ "\x47\xc0\x00\x00\x56\x4d\x00\x00\x00\x00\x56\x4e\x4b\xb1\x00\x00\x47\xc2\x48\x96\x56\x4f\x45\xce\x45\x42\x00\x00\x56\x50\x00\x00\x00\x00\x49\x9d\x4b\x74\x00\x00\x45\x45\x45\x6d\x00\x00\x00\x00\x4b\xe4\x50\xe8\x00\x00\x55\xdc\x48\x67\x00\x00\x56\x52\x51\x67\x56\x53\x4c\xce\x56\x54\x00\x00\x47\x8e\x4f\x7f\x4f\xfa\x00\x00\x4b\xac\x00\x00\x00\x00\x4b\x73\x45\x75\x4e\x52\x49\x9c\x00\x00\x56\x55\x00\x00\x00\x00\x56\x56\x00\x00\x00\x00\x56\x57\x00\x00\x00\x00\x00\x00\x45\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd9\x47\x76\x56\x5c\x00\x00\x56\x5a\x00\x00\x56\x5b\x50\x85\x00\x00\x00\x00\x45\xe0\x48\x4b\x00\x00\x56\x59\x56\x58\x4b\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x54\x65\x48\xb5\x47\x55\x56\x5e\x47\x5d\x48\xa2\x00\x00\x00\x00\x00\x00\x44\x5c\x56\x5f\x56\x61\x00\x00\x56\x5d\x00\x00\x45\x9a\x49\xc3\x46\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x60\x4d\x71\x00\x00\x4d\xed\x00\x00\x48\x69\x00\x00\x00\x00\x00\x00\x48\xb2\x53\x41\x00\x00\x00\x00\x00\x00\x4a\x55\x56\x62\x00\x00\x00\x00\x00\x00", /* 4f00 */ "\x56\x65\x47\xd2\x00\x00\x56\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x63\x45\xb2\x00\x00\x00\x00\x4d\x99\x4e\x9f\x4a\x83\x50\xf6\x4a\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xbd\x00\x00\x56\x64\x48\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xa6\x56\x68\x00\x00\x00\x00\x00\x00\x49\xc9\x00\x00\x54\x4a\x00\x00\x46\xf4\x56\x6a\x50\x8a\x00\x00\x4b\xbc\x54\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xdf\x00\x00\x00\x00\x4e\xfe\x56\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xc8\x48\xa4\x46\xe0\x45\x76\x4c\xe6\x00\x00\x46\x96\x00\x00\x47\x70\x56\x6e\x56\x6b\x00\x00\x49\xc1\x56\x67\x56\x6f\x45\x94\x56\x69\x56\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7c\x56\x7a\x00\x00\x00\x00\x48\x76\x00\x00\x4b\x94\x51\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x56\x77\x54\x62\x00\x00\x00\x00\x48\xb6", /* 4f80 */ "\x00\x00\x00\x00\x00\x00\x4f\x98\x00\x00\x00\x00\x56\x7d\x00\x00\x56\x72\x00\x00\x56\x71\x4a\x46\x00\x00\x4f\xc2\x00\x00\x56\x73\x00\x00\x4f\x8d\x56\x70\x00\x00\x56\x7b\x00\x00\x56\x7e\x00\x00\x56\x76\x00\x00\x56\x74\x48\xbc\x00\x00\x4a\x9e\x00\x00\x00\x00\x52\xec\x47\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x78\x00\x00\x56\x75\x53\xb9\x53\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8c\x55\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4c\x00\x00\x00\x00\x48\x51\x4a\x6a\x54\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x52\x94\x46\x60\x00\x00\x00\x00\x56\x86\x56\x80\x00\x00\x56\x85\x56\x83\x00\x00\x00\x00\x56\x7f\x00\x00\x00\x00\x4e\x97\x56\x81\x00\x00\x56\x84\x56\x82\x00\x00\x45\xaa\x00\x00\x53\xc4\x52\xec\x45\xa5\x00\x00\x4b\x4a\x56\x87\x56\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xde\x56\x96\x00\x00\x00\x00\x00\x00\x4c\xe1\x00\x00\x4d\xb1\x51\xf8\x00\x00\x50\xf9\x00\x00\x4e\x67\x00\x00\x00\x00\x00\x00\x56\x95\x56\x94", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8f\x56\x99\x00\x00\x00\x00\x45\xd6\x00\x00\x49\xfa\x00\x00\x4a\xc4\x00\x00\x56\xa1\x00\x00\x56\x97\x4b\x6a\x00\x00\x56\x8c\x00\x00\x53\x43\x00\x00\x00\x00\x4c\xae\x56\x89\x00\x00\x00\x00\x00\x00\x56\x98\x4a\xd0\x00\x00\x56\x90\x56\x91\x55\x69\x48\x7d\x56\x8e\x52\xf1\x00\x00\x56\x8b\x56\x92\x56\x8d\x4d\x51\x56\x93\x4f\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x63\x00\x00\x00\x00\x52\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8a\x00\x00\x56\xa4\x56\x9a\x00\x00\x00\x00\x56\xa2\x56\x9b\x56\x9e\x4d\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x49\x56\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x56\x9c\x56\xa0\x00\x00\x00\x00\x00\x00\x56\x9f\x00\x00\x4e\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xa5\x00\x00\x00\x00\x00\x00\x56\xa3\x00\x00\x54\xd2\x00\x00\x49\x43\x4f\x95\x50\xc3\x00\x00\x56\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x50\x59\x00\x00\x00\x00", /* 5080 */ "\x56\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x56\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xe7\x00\x00\x00\x00\x00\x00\x4f\xc3\x00\x00\x00\x00\x56\xa8\x00\x00\x00\x00\x00\x00\x50\x9c\x46\xac\x56\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x43\x54\xda\x00\x00\x00\x00\x00\x00\x00\x00\x56\xad\x56\xb0\x56\xab\x4b\x58\x00\x00\x4c\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x43\x00\x00\x00\x00\x00\x00\x56\xb1\x00\x00\x00\x00\x4f\xc9\x00\x00\x00\x00\x00\x00\x56\xae\x56\xaf\x00\x00\x00\x00\x48\xec\x00\x00\x4b\xba\x00\x00\x55\xad\x00\x00\x00\x00\x00\x00\x4a\xbb\x52\xd4\x00\x00\x56\xb5\x00\x00\x4d\x82\x00\x00\x00\x00\x00\x00\x56\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb7\x00\x00\x56\xb4\x00\x00\x4e\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb6\x56\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb2\x56\xba\x00\x00\x00\x00\x00\x00\x56\xb9\x00\x00\x55\x78\x00\x00\x00\x00\x00\x00\x00\x00", /* 5100 */ "\x49\xca\x56\xbc\x56\xbd\x00\x00\x45\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x56\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6f\x00\x00\x56\xc0\x56\xbf\x56\xc1\x00\x00\x52\x90\x00\x00\x56\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa2\x00\x00\x56\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc4\x00\x00\x00\x00\x56\xc3\x56\xc6\x56\xc5\x00\x00\x00\x00\x56\xc7\x56\xc8\x4c\x91\x00\x00\x46\x95\x4b\xe8\x48\xc9\x4d\xf3\x55\x5a\x47\xa2\x45\x9e\x56\xc9\x47\x9e\x56\xca\x4b\x56\x50\x50\x00\x00\x46\x9f\x00\x00\x56\xcb\x00\x00\x56\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4b\x00\x00\x51\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xcd\x00\x00\x56\xce\x46\x65\x00\x00\x00\x00\x46\xb1\x56\xcf\x56\xd0\x45\x48\x46\xbb\x45\x46\x56\xd1\x00\x00\x00\x00\x47\xb3\x00\x00\x00\x00\x00\x00\x46\x49\x4f\x67\x47\xaf\x47\xc9\x00\x00\x00\x00\x00\x00\x48\xf4\x00\x00\x00\x00\x00\x00", /* 5180 */ "\x56\xd2\x00\x00\x56\xd3\x00\x00\x00\x00\x45\x8e\x46\x45\x00\x00\x00\x00\x56\xd6\x4e\xa1\x00\x00\x56\xd5\x48\xeb\x00\x00\x56\xd7\x61\x9d\x56\xd8\x4f\x8f\x56\xd9\x00\x00\x56\xda\x56\xdb\x52\x7e\x00\x00\x48\xc4\x00\x00\x00\x00\x00\x00\x56\xdc\x00\x00\x00\x00\x4e\x7b\x00\x00\x56\xdf\x00\x00\x56\xdd\x54\x67\x56\xde\x00\x00\x48\x78\x56\xe0\x56\xe1\x56\xe2\x4b\xde\x00\x00\x00\x00\x00\x00\x56\xe6\x56\xe4\x56\xe5\x56\xe3\x50\xc9\x56\xe7\x51\x46\x48\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xe9\x56\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xdc\x56\xea\x4f\x80\x00\x00\x00\x00\x56\xeb\x00\x00\x55\xf9\x53\x44\x4b\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x77\x00\x00\x00\x00\x00\x00\x00\x00\x56\xec\x68\x84\x4e\xd9\x00\x00\x00\x00\x56\xed\x4d\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x48\xe6\x55\x8a\x00\x00\x56\xee\x54\x9e\x00\x00\x56\xef\x56\xf0\x00\x00\x00\x00\x56\xf1\x51\xac\x00\x00\x00\x00\x00\x00\x56\xf2\x51\xec\x00\x00\x50\xcf\x50\xe6\x45\x9b\x00\x00\x00\x00\x4b\xb6\x56\xf3\x00\x00", /* 5200 */ "\x4c\x50\x00\x00\x00\x00\x4f\x44\x56\xf4\x00\x00\x45\xb4\x47\x65\x4b\x9b\x00\x00\x4c\xd7\x56\xf5\x00\x00\x00\x00\x54\xe3\x00\x00\x00\x00\x4c\x52\x00\x00\x00\x00\x56\xf6\x56\xf7\x00\x00\x4b\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x5c\x46\xdd\x00\x00\x56\xf8\x00\x00\x45\xbc\x56\xf9\x00\x00\x00\x00\x00\x00\x56\xfa\x00\x00\x4c\xdd\x00\x00\x00\x00\x56\xfb\x00\x00\x00\x00\x46\xc4\x48\xcf\x4b\x6b\x56\xfc\x4b\xc0\x4b\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x79\x56\xfd\x00\x00\x00\x00\x47\x4d\x00\x00\x00\x00\x4a\x90\x56\xfe\x51\xae\x45\xaf\x00\x00\x57\x41\x00\x00\x00\x00\x00\x00\x00\x00\x57\x43\x00\x00\x51\x99\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc7\x00\x00\x54\x81\x57\x42\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xd3\x47\x66\x54\x81\x00\x00\x00\x00\x00\x00\x57\x48\x57\x45\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4e\x4d\x85\x57\x44\x47\xd6\x57\x46\x57\x47\x4b\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x4a\x00\x00\x57\x49", /* 5280 */ "\x00\x00\x00\x00\x00\x00\x55\xd6\x00\x00\x00\x00\x00\x00\x49\xf0\x57\x4c\x51\x85\x00\x00\x00\x00\x00\x00\x57\x4b\x00\x00\x00\x00\x00\x00\x57\x4e\x57\x4d\x00\x00\x55\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf7\x57\x4f\x00\x00\x00\x00\x48\x70\x45\x9f\x00\x00\x00\x00\x4e\x68\x00\x00\x00\x00\x57\x50\x00\x00\x00\x00\x46\x71\x4a\x64\x54\xc6\x57\x51\x57\x52\x00\x00\x5f\xaa\x00\x00\x4d\x92\x00\x00\x00\x00\x48\xa9\x57\x54\x00\x00\x00\x00\x00\x00\x49\x78\x00\x00\x00\x00\x57\x53\x00\x00\x55\x6a\x00\x00\x57\x56\x57\x55\x00\x00\x54\xb1\x00\x00\x4e\xef\x00\x00\x46\x9c\x00\x00\x48\xce\x00\x00\x00\x00\x00\x00\x57\x57\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd6\x00\x00\x00\x00\x45\xe4\x00\x00\x53\x92\x4b\x9a\x46\xed\x00\x00\x57\x58\x00\x00\x45\xb5\x57\x59\x4a\xe1\x57\x5c\x00\x00\x47\xee\x57\x5a\x49\x9f\x00\x00\x57\x5b\x4c\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7a\x57\x5d\x00\x00\x57\x5e\x00\x00\x00\x00\x57\x5f\x57\x60\x54\x70\x00\x00\x00\x00\x00\x00\x51\xe9\x52\x97", /* 5300 */ "\x57\x61\x4f\x5b\x4e\xcb\x00\x00\x00\x00\x4a\xa8\x57\x62\x57\x63\x57\x64\x00\x00\x00\x00\x00\x00\x00\x00\x57\x66\x00\x00\x57\x68\x57\x67\x00\x00\x00\x00\x00\x00\x00\x00\x57\x69\x45\x90\x45\x5a\x00\x00\x54\x57\x57\x6a\x00\x00\x00\x00\x51\xb7\x00\x00\x00\x00\x4e\x6b\x4d\x4d\x00\x00\x57\x6c\x57\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xed\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6d\x00\x00\x57\x6e\x00\x00\x57\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x57\x70\x4f\xd1\x45\x54\x4a\x87\x00\x00\x00\x00\x00\x00\x50\xf1\x57\x71\x45\x4a\x00\x00\x45\x4c\x00\x00\x57\x72\x57\x73\x4e\x47\x45\xdf\x57\x74\x47\x90\x00\x00\x00\x00\x57\x76\x00\x00\x00\x00\x00\x00\x53\xad\x4a\xf2\x49\x96\x47\xd7\x00\x00\x00\x00\x45\x59\x48\xe3\x00\x00\x45\xf6\x00\x00\x51\xc0\x00\x00\x57\x79\x00\x00\x49\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xdb\x00\x00\x00\x00\x57\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x57\x7b\x4c\x82\x47\x99\x4b\x91\x57\x7c\x4b\x6d\x4a\xa4\x4c\xf5\x00\x00\x57\x7d\x4e\x79\x00\x00\x00\x00\x57\x7e\x00\x00\x00\x00\x00\x00\x53\xe2", /* 5380 */ "\x00\x00\x00\x00\x57\x7f\x00\x00\x53\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x80\x00\x00\x00\x00\x57\x81\x00\x00\x4f\x55\x00\x00\x49\x42\x00\x00\x00\x00\x00\x00\x00\x00\x45\x74\x57\x82\x00\x00\x00\x00\x00\x00\x00\x00\x57\x84\x57\x83\x00\x00\x51\x78\x53\x67\x00\x00\x00\x00\x00\x00\x53\xb7\x57\x85\x00\x00\x57\x86\x00\x00\x57\x87\x4c\x8e\x00\x00\x00\x00\x57\x88\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd2\x57\x89\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf5\x50\xa5\x48\x5c\x46\xd4\x4b\x71\x47\xf9\x47\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa5\x00\x00\x46\xa6\x48\x4c\x00\x00\x50\xf5\x00\x00\x55\xb2\x00\x00\x57\x8b\x00\x00\x57\x8c\x00\x00\x51\x94\x53\xf5\x45\x88\x45\xd4\x4c\x8b\x00\x00\x00\x00\x57\x91\x4f\x71\x4e\x41\x4d\xd5\x4f\x86\x57\x92\x57\x90\x47\xc6\x47\x78\x50\x42\x47\xd9\x48\x5a\x00\x00\x00\x00\x4f\x59\x48\xe2\x45\xf0\x00\x00\x57\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x57\x94\x00\x00\x55\xea\x47\xba\x00\x00\x00\x00\x00\x00\x45\xa0\x45\x7e\x53\xd3\x55\xbc\x46\x6d\x45\xf3\x51\xaf\x50\xc6\x4e\xb2\x46\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xcf\x00\x00\x57\x9d\x00\x00\x50\x7a\x53\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4f\x00\x00\x00\x00\x57\x9c\x00\x00\x49\xcb\x57\x97\x57\x98\x57\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x9b\x00\x00\x4b\x98\x49\xc4\x00\x00\x53\xe5\x57\x99\x57\x95\x47\xf6\x00\x00\x57\x96\x00\x00\x4b\x50\x00\x00\x00\x00\x00\x00\x50\x73\x00\x00\x4f\x56\x4a\xee\x49\x54\x00\x00\x00\x00\x00\x00\x57\x9e\x00\x00\x00\x00\x50\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xa1\x00\x00\x54\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa5\x57\xa3\x00\x00\x47\x7f\x00\x00\x57\xa0\x57\xaa\x57\xa4\x00\x00\x00\x00\x00\x00\x57\xa7\x4a\xf6\x49\xb0\x00\x00\x00\x00", /* 5480 */ "\x57\xa8\x00\x00\x00\x00\x00\x00\x57\xab\x00\x00\x57\xad\x00\x00\x00\x00\x00\x00\x57\xae\x4f\x50\x45\x7a\x00\x00\x57\xa1\x57\x9f\x57\xac\x00\x00\x57\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb2\x00\x00\x57\xbc\x57\xb4\x00\x00\x00\x00\x57\xb9\x57\xbd\x00\x00\x57\xba\x57\xb5\x00\x00\x00\x00\x57\xb1\x00\x00\x00\x00\x4c\xde\x53\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb3\x00\x00\x00\x00\x00\x00\x57\xb0\x52\xb1\x57\xbe\x00\x00\x4e\xf9\x45\xd0\x57\xbb\x00\x00\x57\xb6\x00\x00\x00\x00\x57\xaf\x57\xb8\x4a\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xcb\x57\xc7\x00\x00\x00\x00\x57\xbf\x57\xc1\x00\x00\x55\x68\x55\xf0\x00\x00\x00\x00\x00\x00\x57\xc6\x57\xc5\x00\x00\x00\x00\x00\x00\x47\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7c\x00\x00\x00\x00\x57\xc4\x00\x00\x57\xc0", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdb\x00\x00\x51\xb8\x4f\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x4b\xab\x00\x00\x00\x00\x00\x00\x57\xc3\x00\x00\x54\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcc\x4b\xe0\x00\x00\x4d\x43\x00\x00\x57\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x57\xd1\x57\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x54\x78\x00\x00\x57\xc9\x00\x00\x00\x00\x00\x00\x53\x83\x57\xce\x46\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcb\x00\x00\x00\x00\x46\xe4\x00\x00\x00\x00\x00\x00\x47\xe4\x00\x00\x00\x00\x57\xcf\x57\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcd\x57\xd3\x54\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x57\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xd8\x57\xdd\x00\x00\x57\xd9\x00\x00", /* 5580 */ "\x57\xd5\x00\x00\x00\x00\x57\xdf\x46\xb3\x00\x00\x57\xde\x57\xe1\x00\x00\x52\x53\x57\xd6\x55\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xda\x57\xd4\x52\xb5\x00\x00\x45\xd1\x54\x75\x57\xdb\x57\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xd3\x57\xe2\x57\xe0\x51\x68\x4d\x6d\x4c\x5f\x00\x00\x57\xdc\x00\x00\x4e\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe5\x57\xe3\x00\x00\x58\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa2\x00\x00\x57\xe6\x00\x00\x00\x00\x57\xe4\x00\x00\x00\x00\x00\x00\x4b\x5e\x57\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xeb\x00\x00\x57\xe9\x00\x00\x00\x00\x00\x00\x57\xee\x57\xed\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x63\x00\x00\x00\x00\x47\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xea\x00\x00\x57\xec\x54\xec\x50\xf3\x00\x00\x00\x00\x57\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf8\x00\x00\x50\xca\x57\xf3\x00\x00\x54\x7f\x00\x00\x57\xf2\x00\x00\x57\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x62\x00\x00\x57\xf0\x00\x00\x57\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf6\x00\x00\x00\x00\x00\x00\x45\xfc\x00\x00\x57\xfa\x57\xf5\x57\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6d\x00\x00\x00\x00\x00\x00\x55\xf1\x00\x00\x55\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5680 */ "\x57\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf7\x55\xd8\x00\x00\x00\x00\x58\x41\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x42\x00\x00\x51\x90\x00\x00\x00\x00\x58\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x46\x00\x00\x58\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x49\x00\x00\x00\x00\x00\x00\x58\x4c\x58\x4a\x58\x48\x58\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x58\x47\x00\x00\x51\x90\x00\x00\x00\x00\x00\x00\x58\x4d\x00\x00\x00\x00\x58\x4f\x00\x00\x58\x4e\x00\x00\x00\x00\x00\x00\x58\x50\x56\xd4\x00\x00\x50\x65\x45\x44\x00\x00\x00\x00\x46\xa9\x00\x00\x4a\x49\x00\x00\x00\x00\x47\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x51\x00\x00\x4b\x44\x00\x00\x4a\xfa\x47\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x52\x4a\x94\x00\x00\x00\x00\x45\x8f\x00\x00\x58\x53", /* 5700 */ "\x52\x66\x00\x00\x00\x00\x53\xcf\x58\x54\x00\x00\x00\x00\x00\x00\x58\x56\x58\x55\x00\x00\x51\xbd\x00\x00\x58\x57\x00\x00\x4f\x49\x00\x00\x00\x00\x47\xe1\x54\xe7\x00\x00\x00\x00\x58\x5a\x00\x00\x58\x59\x00\x00\x00\x00\x00\x00\x58\x5b\x00\x00\x00\x00\x46\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5c\x47\x82\x47\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x49\xe6\x00\x00\x00\x00\x45\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd1\x58\x5d\x00\x00\x00\x00\x58\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x58\x61\x00\x00\x45\xec\x00\x00\x00\x00\x00\x00\x00\x00\x49\xae\x00\x00\x00\x00\x4c\x55\x00\x00\x00\x00\x00\x00\x58\x5e\x58\x62\x4e\x8d\x4e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x65\x00\x00\x00\x00\x53\xa6\x58\x63\x51\xc4\x00\x00\x00\x00\x53\x98\x49\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x66", /* 5780 */ "\x00\x00\x00\x00\x4b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x64\x58\x67\x00\x00\x46\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x69\x00\x00\x54\x66\x47\xce\x58\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x6d\x00\x00\x58\x6c\x00\x00\x00\x00\x00\x00\x53\xcd\x00\x00\x00\x00\x58\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x71\x00\x00\x00\x00\x58\x6e\x00\x00\x00\x00\x58\x6f\x58\x73\x58\x70\x00\x00\x00\x00\x4e\xac\x00\x00\x00\x00\x45\xdb\x00\x00\x00\x00\x00\x00\x58\x74\x58\x75\x58\x72\x00\x00\x58\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf4\x00\x00\x00\x00\x48\xe9\x51\x7e\x00\x00\x00\x00\x58\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x48\x00\x00\x00\x00\x4d\x57\x00\x00\x4d\xac\x46\xf1\x00\x00\x46\xa3\x00\x00\x00\x00\x00\x00", /* 5800 */ "\x46\x9d\x00\x00\x49\x7f\x00\x00\x00\x00\x4a\xe7\x53\x71\x00\x00\x00\x00\x00\x00\x58\x78\x58\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xb0\x00\x00\x00\x00\x00\x00\x58\x7b\x00\x00\x00\x00\x00\x00\x53\xa7\x00\x00\x00\x00\x00\x00\x58\x7c\x00\x00\x00\x00\x4b\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xac\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x53\x50\xa4\x49\xb8\x00\x00\x00\x00\x45\xd9\x54\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7c\x00\x00\x00\x00\x58\x80\x00\x00\x00\x00\x53\x9f\x4b\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x53\x58\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc6\x58\x81\x00\x00\x4c\xcb\x00\x00\x00\x00\x48\x6a\x52\xf8\x4f\x6f\x46\x57\x00\x00\x00\x00\x00\x00\x53\xc1\x00\x00\x00\x00\x4f\x5e\x58\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x43\x00\x00\x4f\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x58\x83\x00\x00\x58\x86\x00\x00\x00\x00\x4d\x89\x00\x00\x00\x00\x00\x00\x58\x84\x00\x00\x00\x00\x00\x00\x00\x00\x52\x79\x00\x00", /* 5880 */ "\x00\x00\x00\x00\x00\x00\x4a\x95\x00\x00\x58\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbe\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x51\x50\x00\x00\x58\x8a\x58\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xfc\x00\x00\x00\x00\x58\x88\x00\x00\x00\x00\x58\x8b\x00\x00\x00\x00\x00\x00\x58\x8c\x52\x89\x00\x00\x00\x00\x00\x00\x00\x00\x58\x89\x58\x8d\x58\x8e\x55\x52\x00\x00\x00\x00\x54\x88\x00\x00\x00\x00\x4b\x95\x00\x00\x00\x00\x00\x00\x58\x8f\x00\x00\x4e\x8e\x00\x00\x00\x00\x4e\xc8\x00\x00\x51\x96\x00\x00\x00\x00\x00\x00\x00\x00\x58\x91\x00\x00\x58\x90\x00\x00\x55\xb9\x00\x00\x58\x92\x58\x94\x58\x93\x00\x00\x00\x00\x58\x96\x00\x00\x58\x95\x58\x97\x00\x00\x00\x00\x00\x00\x00\x00\x58\x98\x58\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x7d\x51\x4f\x00\x00\x4c\x9f\x58\x9a\x49\x6c\x4e\xb0\x47\x75\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9b\x00\x00\x58\x9c\x50\x77\x58\x9d\x58\x9e\x52\x75\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x58\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x6f\x58\xa0\x58\xa1\x00\x00\x00\x00\x00\x00\x49\x7e\x58\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc3\x46\x94\x00\x00\x52\xc8\x54\xdd\x45\xfe\x58\xa3\x48\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8b\x00\x00\x00\x00\x58\xa5\x00\x00\x45\x5b\x00\x00\x46\x8a\x45\xab\x45\x73\x58\xa6\x58\xa7\x47\x92\x00\x00\x00\x00\x49\x41\x58\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x51\x47\x58\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf2\x00\x00\x00\x00\x4d\x69\x45\xe6\x4d\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8f\x4c\x53\x58\xac\x4c\x64\x00\x00\x58\xad\x52\x84\x58\xab\x00\x00\x55\x83\x58\xaf\x00\x00\x58\xae\x58\xb0\x00\x00\x58\xb1\x00\x00\x00\x00\x58\xb4\x00\x00\x58\xb3\x58\xb2\x00\x00\x46\xe5\x00\x00\x58\xb5\x4e\xca\x58\xb7\x4e\xbb\x00\x00\x58\xb6\x00\x00\x4e\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x46\x99\x4d\x90\x00\x00\x00\x00\x00\x00\x58\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x46\x9e\x00\x00\x00\x00", /* 5980 */ "\x00\x00\x58\xb9\x4b\xf8\x51\xa2\x55\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x43\x00\x00\x00\x00\x58\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x95\x00\x00\x00\x00\x53\xd1\x00\x00\x00\x00\x4a\x66\x00\x00\x58\xbb\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xbd\x58\xbe\x4d\x9e\x00\x00\x00\x00\x50\xec\x00\x00\x00\x00\x00\x00\x53\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xdc\x58\xc0\x49\xa3\x00\x00\x00\x00\x53\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc1\x00\x00\x00\x00\x4c\xc1\x00\x00\x49\x90\x00\x00\x00\x00\x00\x00\x00\x00\x54\x9c\x53\xf2\x00\x00\x4f\xf1\x48\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc3\x58\xc4\x00\x00\x51\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x55\x55\xde\x00\x00\x58\xc2\x00\x00\x55\x8c\x4a\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x79\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb9\x00\x00\x00\x00\x00\x00\x4b\x42", /* 5a00 */ "\x00\x00\x4c\x65\x00\x00\x55\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x54\x00\x00\x58\xc9\x00\x00\x58\xc8\x00\x00\x00\x00\x58\xc6\x52\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc5\x00\x00\x00\x00\x00\x00\x54\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xce\x58\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x98\x00\x00\x00\x00\x00\x00\x58\xcb\x50\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xcc\x00\x00\x00\x00\x58\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd0\x00\x00\x00\x00\x00\x00\x49\x6f\x00\x00\x00\x00\x00\x00\x58\xd1\x00\x00\x58\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x54", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd2\x48\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xd3\x58\xd8\x58\xd4\x00\x00\x00\x00\x4e\x89\x58\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe0\x00\x00\x58\xd6\x4e\xc3\x00\x00\x00\x00\x00\x00\x58\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xdd\x58\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x67\x00\x00\x58\xd9\x00\x00\x00\x00\x58\xdb\x00\x00\x00\x00\x58\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xde\x58\xdf\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8b\x00\x00\x58\xe1\x58\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe4\x00\x00\x52\xea\x00\x00\x00\x00\x00\x00\x55\xe8\x00\x00\x58\xe3\x00\x00\x00\x00\x00\x00\x58\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe6\x00\x00\x58\xe9\x00\x00\x00\x00\x58\xe7\x00\x00\x58\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x64\x58\xea\x00\x00\x00\x00\x4b\xd9\x58\xeb\x58\xec\x48\xf2\x4a\x41\x00\x00\x52\x58\x58\xee\x4f\xf2\x45\xf4\x00\x00\x4f\x83\x00\x00\x00\x00\x00\x00\x4a\xec\x4e\xaf\x58\xef\x45\xbe\x00\x00\x00\x00\x58\xf0\x00\x00\x4c\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf1\x59\x5b\x00\x00\x58\xf2\x00\x00\x58\xf3\x00\x00\x00\x00\x58\xf4\x00\x00\x58\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b80 */ "\x58\xf6\x00\x00\x00\x00\x58\xf7\x00\x00\x48\x6f\x00\x00\x46\xd5\x46\xf0\x45\xa8\x00\x00\x52\x4d\x48\xc5\x4c\x75\x00\x00\x46\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5c\x00\x00\x47\xdd\x49\xa2\x4d\x64\x45\xe7\x50\xab\x4d\x8b\x49\x4d\x00\x00\x45\xed\x00\x00\x00\x00\x4a\xde\x49\x8f\x47\xb8\x4f\x7a\x58\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x92\x00\x00\x4e\xd4\x00\x00\x00\x00\x49\x68\x50\x78\x52\xef\x46\x86\x00\x00\x58\xf9\x48\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x82\x58\xfc\x00\x00\x4f\xe9\x58\xfa\x49\xdf\x4a\x84\x4a\x56\x58\xfb\x00\x00\x58\xfd\x00\x00\x00\x00\x45\xac\x00\x00\x00\x00\x00\x00\x59\x41\x00\x00\x4b\x81\x55\xf4\x52\x44\x00\x00\x00\x00\x00\x00\x59\x42\x00\x00\x00\x00\x47\xf8\x00\x00\x4b\x59\x59\x43\x4b\x93\x00\x00\x52\xb8\x59\x46\x00\x00\x59\x45\x59\x47\x51\xfc\x4f\xa9\x5c\x7e\x49\x87\x00\x00\x59\x48\x59\x44\x00\x00\x4c\x7a\x00\x00\x59\x49\x00\x00\x00\x00\x59\x4a\x00\x00\x55\x56\x59\x4b\x00\x00\x4b\x60\x00\x00\x46\xa0\x00\x00\x00\x00\x00\x00\x46\x56\x46\xb2", /* 5c00 */ "\x00\x00\x4d\x76\x49\xfb\x00\x00\x49\x8a\x59\x4c\x49\x59\x59\x4d\x59\x4e\x51\x89\x4c\xef\x4d\x5f\x00\x00\x59\x4f\x48\xae\x45\x5d\x00\x00\x48\x4a\x00\x00\x59\x50\x00\x00\x00\x00\x53\xc0\x00\x00\x00\x00\x00\x00\x48\x71\x00\x00\x00\x00\x00\x00\x59\x51\x00\x00\x59\x52\x00\x00\x59\x53\x00\x00\x53\xae\x00\x00\x00\x00\x00\x00\x59\x54\x00\x00\x00\x00\x00\x00\x00\x00\x68\x80\x00\x00\x00\x00\x00\x00\x4b\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x55\x51\x5d\x4c\x6b\x49\xce\x4a\x86\x4f\xb9\x45\xc8\x4c\xc6\x48\x8b\x59\x56\x00\x00\x00\x00\x00\x00\x48\x5e\x59\x57\x00\x00\x4d\x94\x00\x00\x4d\xa7\x45\xe9\x00\x00\x55\xba\x59\x58\x54\x43\x59\x5a\x54\xb2\x00\x00\x59\x59\x00\x00\x48\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x43\x00\x00\x00\x00\x47\x6d\x00\x00\x53\xfb\x55\xc0\x55\xc0\x00\x00\x4a\x8e\x4c\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x5c\x00\x00\x59\x5d\x4f\xdd\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\x00\x00\x59\x5e\x00\x00\x00\x00\x59\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x60\x00\x00\x00\x00\x00\x00\x47\x4a\x52\x5a\x00\x00\x00\x00\x59\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x59\x67\x00\x00\x54\xb9\x45\xbf\x00\x00\x59\x63\x50\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x52\x62\x00\x00\x4d\x46\x00\x00\x00\x00\x59\x65\x59\x66\x47\x48\x00\x00\x59\x68\x59\x64\x59\x6a\x00\x00\x59\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x69\x00\x00\x59\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x96\x51\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9d\x59\x6d\x59\x72\x00\x00\x00\x00\x59\x71\x00\x00\x4a\xac\x48\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x59\x70\x45\x6f\x00\x00\x00\x00\x00\x00\x59\x6f\x50\x72\x00\x00\x59\x6e\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x7f\x00\x00\x00\x00\x00\x00\x59\x73\x00\x00\x00\x00\x45\x7f\x00\x00\x00\x00\x59\x77\x00\x00\x00\x00\x51\x4d\x59\x74\x50\x74\x54\xf1\x59\x7c\x59\x7b\x59\x7a\x59\x76\x00\x00\x00\x00\x00\x00\x59\x75\x00\x00\x00\x00\x59\x79\x00\x00\x00\x00\x00\x00\x00\x00\x59\x78\x00\x00\x4f\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x83\x59\x7d\x00\x00\x59\x82\x00\x00\x49\x8c\x00\x00\x59\x7e\x59\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9e\x00\x00\x00\x00\x59\x85\x59\x87\x00\x00\x4e\xd3\x00\x00\x00\x00\x00\x00\x59\x86\x00\x00\x00\x00\x59\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d80 */ "\x00\x00\x00\x00\x59\x8b\x00\x00\x59\x8a\x00\x00\x00\x00\x59\x89\x00\x00\x00\x00\x00\x00\x47\xd1\x59\x8c\x00\x00\x00\x00\x00\x00\x59\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x59\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x90\x00\x00\x59\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x92\x59\x93\x59\x95\x4c\xe8\x00\x00\x59\x94\x4f\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x96\x00\x00\x00\x00\x49\xcf\x52\x81\x00\x00\x00\x00\x59\x97\x00\x00\x59\x99\x59\x98\x00\x00\x00\x00\x51\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9a\x00\x00\x45\x67\x47\x41\x00\x00\x00\x00\x4d\x47\x00\x00\x4c\x67\x00\x00\x45\x6a\x48\x5b\x4c\xa3\x4a\x52\x00\x00\x00\x00\x59\x9b\x00\x00\x00\x00\x49\x8b\x00\x00\x00\x00\x47\xad\x4a\x4b\x4a\xe6\x4e\x7d\x59\x9c\x00\x00\x53\xcb\x00\x00\x00\x00\x00\x00\x48\x93\x00\x00\x4e\x46\x4a\x7d\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x45\x53\x47\x6b\x00\x00\x00\x00\x4f\x75\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9d\x4a\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x59\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x51\xc7\x00\x00\x00\x00\x59\x9f\x59\x9e\x59\xa1\x00\x00\x48\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x44\x00\x00\x4b\x53\x00\x00\x49\x60\x49\x82\x00\x00\x00\x00\x4d\xc5\x00\x00\x00\x00\x59\xa2\x54\xbe\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x85\x00\x00\x00\x00\x59\xa5\x00\x00\x00\x00\x59\xa4\x59\xa3\x4a\x5e\x00\x00\x59\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x49\x6b\x00\x00\x59\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xa9\x4c\xca\x00\x00\x59\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x83\x00\x00\x48\xde\x59\xaa\x4e\x7f\x59\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6f\x45\x8d\x45\x60\x59\xac\x59\xad\x00\x00\x45\xa9\x48\xda\x59\xae\x50\xa2\x4d\xaf\x52\x5f\x4b\x57\x59\xaf", /* 5e80 */ "\x00\x00\x4b\x92\x00\x00\x45\xb7\x48\x50\x00\x00\x00\x00\x55\x8d\x00\x00\x00\x00\x4a\xed\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x64\x55\x4f\x48\x54\x00\x00\x00\x00\x51\x5a\x00\x00\x45\x51\x00\x00\x00\x00\x00\x00\x59\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xde\x48\xb1\x00\x00\x00\x00\x00\x00\x45\xf8\x00\x00\x48\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xeb\x50\xc1\x46\x9a\x4c\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb1\x59\xb2\x4b\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb3\x4e\xdb\x4e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb5\x59\xb4\x00\x00\x00\x00\x54\xad\x00\x00\x00\x00\x53\x6c\x00\x00\x00\x00\x00\x00\x59\xb7\x59\xb8\x00\x00\x59\xb6\x00\x00\x55\xaf\x55\x62\x59\xba\x59\xb9\x50\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x59\xbb\x59\xbc\x00\x00\x00\x00\x59\xbd\x00\x00\x00\x00\x00\x00\x59\xbe\x59\xbf\x00\x00\x59\xc0\x59\xc1\x00\x00\x47\xd0\x50\x5b\x52\xd6\x00\x00\x46\x66\x4b\xaf\x55\x64\x00\x00\x54\x4b\x51\xd9", /* 5f00 */ "\x00\x00\x4b\x47\x00\x00\x59\xc2\x54\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x59\xc3\x50\xcd\x59\xc4\x56\x41\x56\x51\x00\x00\x46\x8f\x50\xe1\x59\xc5\x00\x00\x4b\x63\x51\xe5\x46\xda\x59\xc6\x54\xac\x45\xd3\x00\x00\x00\x00\x55\x97\x00\x00\x00\x00\x00\x00\x4c\x9b\x00\x00\x59\xc7\x00\x00\x00\x00\x00\x00\x47\xe6\x4e\x42\x53\x6b\x00\x00\x59\xc8\x00\x00\x00\x00\x00\x00\x59\xc9\x00\x00\x59\xca\x00\x00\x4b\x6e\x00\x00\x00\x00\x59\xcb\x48\xba\x00\x00\x46\xd2\x59\xcc\x00\x00\x00\x00\x00\x00\x52\xe0\x00\x00\x4a\xd4\x00\x00\x00\x00\x59\xcd\x00\x00\x00\x00\x00\x00\x53\xc7\x00\x00\x00\x00\x59\xce\x00\x00\x53\x85\x00\x00\x59\xcf\x00\x00\x59\xd0\x00\x00\x00\x00\x59\xd1\x00\x00\x46\x5f\x00\x00\x00\x00\x59\xd2\x59\xd3\x00\x00\x59\xd4\x00\x00\x00\x00\x59\xd5\x59\xd6\x00\x00\x00\x00\x00\x00\x59\xd7\x46\x90\x00\x00\x00\x00\x00\x00\x45\xe1\x59\xd8\x00\x00\x4d\xcd\x51\x59\x4e\x86\x4e\x88\x52\x9c\x00\x00\x00\x00\x49\x64\x49\x5e\x00\x00\x59\xd9\x00\x00\x00\x00\x00\x00\x59\xda\x00\x00\x49\x5d\x00\x00\x00\x00\x47\x72\x00\x00\x00\x00\x59\xdd", /* 5f80 */ "\x4c\xea\x4a\x61\x59\xdc\x59\xdb\x4e\x60\x48\xa3\x00\x00\x59\xe0\x59\xdf\x00\x00\x59\xde\x49\x91\x45\xe5\x00\x00\x00\x00\x00\x00\x50\xb3\x59\xe1\x4c\x6c\x48\xfb\x00\x00\x00\x00\x00\x00\x47\xe8\x59\xe4\x59\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x59\xe3\x00\x00\x59\xe5\x46\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xe6\x4a\x70\x4e\xf5\x00\x00\x00\x00\x59\xe7\x4b\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x46\x54\x4c\x74\x00\x00\x00\x00\x59\xe8\x00\x00\x48\xf8\x00\x00\x00\x00\x59\xe9\x55\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe7\x00\x00\x47\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x97\x4b\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xea\x46\x61\x4c\x45\x4e\xa3\x00\x00\x00\x00\x48\x95\x59\xf0\x59\xf1\x00\x00\x46\x4f\x00\x00\x00\x00\x00\x00\x59\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x60\x00\x00\x00\x00\x00\x00\x00\x00\x59\xef\x59\xee\x00\x00\x00\x00\x00\x00\x4a\xae\x00\x00\x00\x00\x59\xed\x00\x00\x00\x00\x59\xeb\x00\x00\x50\x56\x00\x00\x59\xf2", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf7\x59\xfd\x59\xf5\x00\x00\x4c\xd6\x00\x00\x00\x00\x59\xfa\x4e\xf0\x00\x00\x00\x00\x59\xf4\x00\x00\x59\xf9\x50\x9f\x46\xad\x00\x00\x00\x00\x50\x81\x59\xf3\x00\x00\x00\x00\x00\x00\x47\xcc\x59\xfc\x46\x6e\x54\xde\x59\xf6\x4e\x71\x59\xfb\x00\x00\x00\x00\x00\x00\x55\x42\x00\x00\x59\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x42\x52\x56\x5a\x4c\x00\x00\x00\x00\x5a\x49\x00\x00\x00\x00\x00\x00\x5a\x48\x4b\xca\x00\x00\x5a\x4a\x00\x00\x00\x00\x4b\xd5\x00\x00\x47\xc7\x00\x00\x00\x00\x52\x98\x00\x00\x00\x00\x00\x00\x5a\x50\x5a\x41\x00\x00\x00\x00\x5a\x44\x00\x00\x5a\x47\x5a\x43\x00\x00\x55\x94\x5a\x4b\x5a\x4d\x4e\xce\x00\x00\x00\x00\x53\xb8\x4c\x81\x5a\x45\x5a\x4f\x5a\x4e\x49\x4e\x00\x00\x4b\xb0\x53\x84\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x5a\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6080 */ "\x00\x00\x5a\x52\x00\x00\x5a\x53\x5a\x55\x5a\x51\x00\x00\x00\x00\x00\x00\x54\x69\x5a\x57\x5a\x5c\x4d\xe3\x55\x44\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x5a\x00\x00\x50\x91\x00\x00\x5a\x58\x5a\x59\x00\x00\x00\x00\x5a\x54\x5a\x56\x00\x00\x00\x00\x00\x00\x4a\xb1\x4d\xd8\x00\x00\x00\x00\x4d\xeb\x00\x00\x00\x00\x48\x73\x5a\x5b\x00\x00\x4b\xcd\x49\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x9d\x52\x76\x53\xa3\x5a\x64\x55\x54\x00\x00\x5a\x5e\x00\x00\x00\x00\x00\x00\x51\x45\x5a\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x5f\x5a\x63\x4e\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x78\x00\x00\x5a\x61\x00\x00\x5a\x65\x00\x00\x00\x00\x5a\x66\x00\x00\x54\x9d\x00\x00\x4e\xd7\x00\x00\x5a\x5f\x4f\xe0\x5a\x60\x5a\x5d\x00\x00\x4b\x68\x00\x00\x00\x00\x00\x00\x55\x4a\x50\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb8\x5a\x73\x5a\x68\x48\xb3\x5a\x6e\x00\x00\x5a\x6b\x5a\x6c\x00\x00\x54\x72\x5a\x6f\x5a\x72\x00\x00\x00\x00\x00\x00\x00\x00", /* 6100 */ "\x5a\x6d\x52\x82\x00\x00\x5a\x70\x00\x00\x00\x00\x5a\x6a\x00\x00\x53\xc8\x50\x98\x00\x00\x00\x00\x00\x00\x5a\x74\x5a\x75\x47\x63\x00\x00\x5a\x76\x00\x00\x00\x00\x00\x00\x5a\x69\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb2\x45\xc6\x00\x00\x00\x00\x00\x00\x47\xf7\x5a\x67\x5a\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7b\x5a\x7a\x00\x00\x00\x00\x00\x00\x5a\x80\x00\x00\x00\x00\x00\x00\x5a\x7e\x00\x00\x00\x00\x00\x00\x5a\x81\x00\x00\x00\x00\x5a\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7f\x5a\x84\x5a\x7c\x51\xe3\x00\x00\x00\x00\x5a\x85\x00\x00\x5a\x86\x00\x00\x00\x00\x5a\x77\x4c\xbe\x00\x00\x5a\x7d\x48\xfd\x53\x8e\x5a\x78\x4a\x76\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x92\x00\x00\x52\xe3\x00\x00\x00\x00\x5a\x8a\x5a\x8b\x5a\x8c\x00\x00\x00\x00\x5a\x83\x00\x00\x5a\x91\x00\x00\x00\x00\x4d\xdb\x4d\xd3\x00\x00\x5a\x82\x00\x00\x4e\xb6\x52\x8a\x00\x00\x00\x00\x5a\x8d\x00\x00\x00\x00\x4c\x49\x5a\x8f\x4f\xad\x5a\x90\x00\x00\x5a\x87\x5a\x8e\x5a\x93\x48\xa8\x5a\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf4\x00\x00", /* 6180 */ "\x00\x00\x00\x00\x50\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x88\x00\x00\x00\x00\x5a\x99\x00\x00\x00\x00\x00\x00\x4f\x4a\x00\x00\x55\x5b\x5a\x9a\x00\x00\x00\x00\x5a\x98\x00\x00\x5a\x96\x00\x00\x5a\x94\x5a\x95\x55\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xfc\x00\x00\x00\x00\x53\xc2\x00\x00\x51\x75\x00\x00\x5a\x9b\x5a\x97\x00\x00\x5a\x9c\x00\x00\x00\x00\x00\x00\x47\xbe\x00\x00\x00\x00\x00\x00\x4e\x6c\x00\x00\x00\x00\x00\x00\x5a\xa3\x00\x00\x00\x00\x00\x00\x51\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa1\x00\x00\x00\x00\x5a\xa2\x4e\xa4\x5a\xa0\x5a\x9f\x5a\x9e\x5a\xa4\x5a\x9d\x5a\xa6\x00\x00\x00\x00\x4e\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa8\x00\x00\x00\x00\x5a\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x53\x00\x00\x5a\xa9\x00\x00\x5a\xab\x5a\xaa\x4d\xc6\x00\x00\x5a\xad\x00\x00\x5a\xaf\x5a\xac\x5a\xb0\x5a\xae", /* 6200 */ "\x5a\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xb2\x5a\xb3\x51\x61\x00\x00\x54\x60\x5a\xb4\x51\x7f\x00\x00\x45\xba\x49\xde\x4d\xa0\x5a\xb5\x5a\xb6\x00\x00\x4d\x7f\x00\x00\x00\x00\x00\x00\x55\x95\x5a\xb7\x00\x00\x64\x6e\x5a\xb8\x54\xd9\x00\x00\x5a\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x47\x64\x00\x00\x00\x00\x00\x00\x5a\xba\x00\x00\x00\x00\x00\x00\x5a\xbb\x4f\x92\x5a\xbc\x00\x00\x5a\xbd\x5a\xbe\x50\x92\x00\x00\x00\x00\x00\x00\x45\xcf\x00\x00\x00\x00\x4c\x44\x00\x00\x00\x00\x00\x00\x47\xdc\x45\x8c\x5a\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xca\x65\x5d\x50\xad\x00\x00\x45\xcb\x00\x00\x49\xf1\x5a\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x47\xea\x00\x00\x49\x81\x00\x00\x00\x00\x55\xd5\x00\x00\x00\x00\x5a\xc3\x00\x00\x00\x00\x5a\xc1\x00\x00\x5a\xc4\x00\x00\x00\x00\x5a\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb7\x00\x00\x00\x00\x4c\x69\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7a\x00\x00\x00\x00\x4c\x76\x00\x00\x00\x00\x5a\xc6\x00\x00\x5a\xca\x4c\x48", /* 6280 */ "\x48\xf7\x00\x00\x5a\xc7\x5a\xcd\x4e\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc8\x4e\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x66\x5a\xc9\x5a\xcb\x5a\xce\x47\x51\x5a\xcc\x4a\x67\x49\x8d\x00\x00\x00\x00\x5a\xdc\x4a\x85\x00\x00\x4e\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xda\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa6\x5a\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x86\x00\x00\x00\x00\x00\x00\x4b\x90\x00\x00\x00\x00\x00\x00\x51\xe0\x00\x00\x5a\xd1\x49\xe1\x4d\x53\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd9\x00\x00\x00\x00\x4a\xa1\x5a\xd4\x5a\xdb\x5a\xd5\x5a\xdd\x5a\xd8\x00\x00\x53\x45\x4f\xba\x00\x00\x5a\xd2\x53\xa2\x5a\xd0\x4f\x61\x4b\xdb\x5a\xd7\x00\x00\x00\x00\x5a\xcf\x50\x45\x52\x5c\x00\x00\x4b\xfd\x5a\xd6\x4e\xe2\x00\x00\x00\x00\x4d\x77\x48\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc5\x4e\xe5\x5a\xdf\x5a\xe4\x00\x00\x5a\xe0\x00\x00\x50\x8d\x00\x00\x5a\xe5\x4f\x9e\x55\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd7\x5a\xe6", /* 6300 */ "\x00\x00\x46\xd8\x5a\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb6\x5a\xe3\x54\x89\x00\x00\x00\x00\x5a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe1\x4f\x81\x00\x00\x00\x00\x54\x8f\x00\x00\x00\x00\x00\x00\x48\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x87\x00\x00\x00\x00\x52\xa8\x5a\xe9\x55\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa0\x00\x00\x00\x00\x55\x7d\x5a\xe8\x00\x00\x5a\xea\x5a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x41\x00\x00\x55\x46\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x85\x4b\xb3\x5a\xf5\x00\x00\x5a\xf4\x00\x00\x00\x00\x4e\xd6\x00\x00\x00\x00\x00\x00\x54\x93\x00\x00\x00\x00\x00\x00\x5a\xef\x4d\x8f\x00\x00\x00\x00\x4f\xc0\x54\xc0\x00\x00\x00\x00\x00\x00\x00\x00", /* 6380 */ "\x5a\xed\x00\x00\x00\x00\x4d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x61\x5a\xf2\x00\x00\x00\x00\x4e\xec\x00\x00\x5a\xec\x5a\xf1\x00\x00\x00\x00\x4c\xfa\x00\x00\x00\x00\x00\x00\x5a\xeb\x00\x00\x4d\x44\x00\x00\x00\x00\x4a\xe3\x00\x00\x00\x00\x00\x00\x5a\xf3\x55\xe6\x4b\x4f\x4b\x7f\x5a\xf0\x00\x00\x47\xa8\x00\x00\x4c\xac\x48\xd5\x55\xd0\x4a\x60\x5a\xee\x55\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc1\x00\x00\x54\xcd\x5a\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa3\x00\x00\x00\x00\x5a\xf7\x00\x00\x5a\xf9\x00\x00\x00\x00\x4e\xfd\x5b\x42\x00\x00\x5a\xfa\x00\x00\x00\x00\x5a\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xcf\x49\xb9\x00\x00\x5a\xfe\x00\x00\x00\x00\x00\x00\x4c\xf2\x00\x00\x00\x00\x00\x00\x4c\x46\x49\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x60\x00\x00\x5a\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd5\x5a\xfb\x5b\x41\x00\x00\x00\x00\x00\x00\x4f\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xd8\x00\x00\x5b\x4b\x00\x00\x00\x00\x00\x00\x5b\x45\x54\xa3\x00\x00\x5b\x4c\x5b\x49\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x46\x00\x00\x5b\x4a\x00\x00\x00\x00\x00\x00\x4d\xc8\x52\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x43\x00\x00\x5b\x47\x00\x00\x00\x00\x00\x00\x4e\x49\x00\x00\x00\x00\x00\x00\x50\xa3\x00\x00\x00\x00\x00\x00\x4e\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4d\x00\x00\x00\x00\x54\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4e\x00\x00\x48\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x51\x00\x00\x55\xf5\x00\x00\x51\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6480 */ "\x00\x00\x00\x00\x00\x00\x4a\x74\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xde\x5b\x57\x00\x00\x5b\x55\x00\x00\x00\x00\x00\x00\x00\x00\x53\x48\x00\x00\x00\x00\x5b\x53\x55\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x7a\x5b\x58\x00\x00\x00\x00\x00\x00\x5b\x59\x00\x00\x51\xe1\x00\x00\x4e\x62\x4c\x77\x00\x00\x53\x72\x00\x00\x4e\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x52\x00\x00\x5b\x56\x5b\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4e\x5b\x62\x00\x00\x00\x00\x5b\x5e\x00\x00\x5b\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x9b\x5b\x54\x00\x00\x00\x00\x00\x00\x5b\x5d\x00\x00\x5b\x60\x00\x00\x00\x00\x00\x00\x5b\x61\x00\x00\x5b\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x65\x5b\x66\x55\x43\x5b\x67\x00\x00\x00\x00\x4f\xd6\x5b\x64\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcd\x00\x00\x00\x00\x5b\x68\x00\x00\x5b\x63\x5b\x6b\x00\x00\x5b\x69\x00\x00\x5b\x6a\x00\x00\x00\x00\x00\x00\x5b\x6c\x00\x00\x00\x00\x5b\x6e\x55\xf6\x00\x00", /* 6500 */ "\x5b\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x5b\x70\x5b\x71\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x72\x5b\x74\x5b\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7f\x5b\x75\x5b\x76\x00\x00\x00\x00\x47\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x77\x5b\x78\x5b\x7a\x5b\x79\x5b\x7b\x48\x8f\x00\x00\x4b\xc5\x00\x00\x00\x00\x48\xaf\x45\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf7\x00\x00\x00\x00\x5b\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x80\x5b\x7e\x46\x47\x00\x00\x4c\x5c\x00\x00\x00\x00\x00\x00\x5b\x82\x5b\x7f\x4b\x8a\x5b\x81\x47\xa5\x00\x00\x00\x00\x00\x00\x5b\x83\x51\xb1\x00\x00\x00\x00\x00\x00\x4f\xcf\x4a\xc9\x00\x00\x00\x00\x49\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb0\x00\x00\x00\x00\x00\x00\x46\xcc\x00\x00\x5b\x84\x00\x00\x47\x7c\x4b\xf3\x00\x00\x49\x51\x5b\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6580 */ "\x00\x00\x00\x00\x5b\x86\x5b\x87\x00\x00\x00\x00\x00\x00\x45\xca\x58\xed\x46\x8e\x00\x00\x00\x00\x51\x9d\x00\x00\x47\xdb\x00\x00\x4b\x80\x52\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x83\x00\x00\x46\x4e\x00\x00\x5b\x89\x4b\xd1\x00\x00\x00\x00\x5b\x8a\x00\x00\x55\x81\x00\x00\x00\x00\x54\xcf\x51\x41\x00\x00\x51\xc2\x00\x00\x00\x00\x00\x00\x5b\x8b\x4e\xfc\x49\x89\x00\x00\x4e\xa5\x45\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8c\x00\x00\x45\xcd\x00\x00\x00\x00\x4d\xa4\x48\x88\x00\x00\x00\x00\x00\x00\x5b\x8f\x00\x00\x5b\x8d\x5b\x90\x4a\xcf\x5b\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7b\x5b\x91\x00\x00\x00\x00\x4a\xdc\x00\x00\x00\x00\x5b\x92\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xab\x00\x00\x5b\x93\x00\x00\x51\x65\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x95\x5b\x94\x4b\x77\x00\x00\x00\x00\x45\x62\x4d\x9d\x4c\x7b\x4d\x6a\x46\xe9\x00\x00\x00\x00\x4d\x67\x47\xec\x00\x00\x00\x00\x00\x00\x5b\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa3\x5b\x9c\x00\x00\x00\x00\x00\x00\x00\x00", /* 6600 */ "\x5b\x97\x00\x00\x5b\x99\x5b\x9b\x00\x00\x00\x00\x4f\xe7\x46\xfe\x00\x00\x5b\x9d\x52\x8e\x00\x00\x46\xd1\x00\x00\x45\xa6\x54\xe8\x00\x00\x00\x00\x00\x00\x47\xe9\x4c\x59\x5b\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa3\x00\x00\x5b\xa1\x47\xa9\x47\xac\x00\x00\x00\x00\x00\x00\x5b\xa4\x46\x62\x00\x00\x55\x9d\x48\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x45\xb3\x5b\xa0\x4b\xbb\x00\x00\x52\xeb\x00\x00\x00\x00\x5b\xa2\x5b\x9f\x51\x93\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9f\x4c\x98\x00\x00\x00\x00\x5b\x9e\x00\x00\x52\x51\x46\x51\x48\xb0\x5b\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa6\x00\x00\x4b\xb2\x00\x00\x00\x00\x00\x00\x51\xea\x00\x00\x00\x00\x54\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xa8\x00\x00\x5b\xab\x00\x00\x00\x00\x00\x00\x5b\xad\x5b\xa9\x4f\xce\x00\x00\x00\x00\x5b\xac\x00\x00\x5b\xaa\x5b\xa7\x55\x6d\x50\xa0\x51\xb2\x4c\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x49\xf8\x49\x93\x5b\xb0\x00\x00\x00\x00\x5b\xaf\x47\x95\x00\x00\x4a\xf8\x00\x00\x00\x00\x00\x00\x46\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6680 */ "\x00\x00\x4c\x83\x00\x00\x5b\xb1\x5b\xb3\x00\x00\x00\x00\x4f\x46\x5b\xb2\x4e\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xab\x00\x00\x00\x00\x4f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6c\x4b\xe2\x5b\xb5\x5b\xb4\x00\x00\x00\x00\x00\x00\x5b\xb7\x00\x00\x00\x00\x5b\xb6\x00\x00\x4c\xc7\x00\x00\x00\x00\x00\x00\x50\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x50\x93\x00\x00\x00\x00\x4a\xfe\x00\x00\x00\x00\x00\x00\x5b\xb8\x00\x00\x4c\xb2\x00\x00\x00\x00\x00\x00\x5b\xbf\x52\x43\x00\x00\x00\x00\x5b\xbe\x00\x00\x5b\xbd\x5b\xbb\x00\x00\x5b\xba\x00\x00\x00\x00\x5b\xb9\x00\x00\x00\x00\x4c\x56\x00\x00\x5b\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc0\x00\x00\x00\x00\x51\x52\x5b\xc1\x00\x00\x4b\xfe\x52\xa6\x00\x00\x00\x00\x51\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc2\x00\x00\x00\x00\x5b\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc4\x00\x00\x49\xb6\x4e\xbc\x4a\x6d\x5b\xc5\x00\x00\x5b\xc6\x47\x9d\x4e\xd2\x5b\xc7\x53\x97\x57\x8d\x49\x5f\x51\x66\x4b\xc3", /* 6700 */ "\x46\xf5\x00\x00\x00\x00\x56\xac\x00\x00\x00\x00\x00\x00\x00\x00\x45\x61\x46\x85\x00\x00\x4b\xc4\x00\x00\x47\xd4\x5b\xc8\x54\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa4\x55\xf3\x5b\xca\x48\x6e\x00\x00\x00\x00\x00\x00\x47\xbb\x00\x00\x47\x5c\x5b\xcb\x46\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcd\x5b\xce\x45\x6c\x00\x00\x49\xc6\x47\x46\x45\x66\x48\xf9\x5b\xd0\x00\x00\x00\x00\x4d\x42\x00\x00\x00\x00\x4e\xa2\x00\x00\x5b\xd2\x5b\xd3\x5b\xd4\x00\x00\x4d\x96\x00\x00\x00\x00\x50\xf0\x00\x00\x5b\xd1\x00\x00\x53\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd5\x00\x00\x00\x00\x46\x68\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x51\x50\xd0\x46\xbc\x45\x56\x00\x00\x54\xc1\x00\x00\x00\x00\x50\xf4\x00\x00\x00\x00\x5b\xd7\x00\x00\x00\x00\x52\x5d\x00\x00\x5b\xd6\x4b\x4b\x54\x80\x47\x5e\x51\xa6\x52\x91\x5b\xd9\x46\x76\x5b\xd8\x00\x00\x00\x00\x00\x00\x5b\xde\x00\x00\x00\x00\x50\x8b\x00\x00\x4c\x63\x5b\xdc\x45\x57\x5b\x9a\x5b\xe0\x00\x00\x4a\xa6\x00\x00\x52\x80\x00\x00\x00\x00\x00\x00\x00\x00\x54\xdf\x00\x00\x45\x78\x46\xb4", /* 6780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xdb\x00\x00\x52\x5e\x00\x00\x5b\xda\x00\x00\x5b\xdf\x54\xf2\x00\x00\x00\x00\x00\x00\x4a\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x78\x00\x00\x45\xa2\x00\x00\x00\x00\x49\xd9\x00\x00\x47\xb9\x46\x72\x00\x00\x00\x00\x4f\xd2\x5b\xe2\x52\xd0\x00\x00\x00\x00\x00\x00\x5b\xe1\x00\x00\x00\x00\x5b\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x61\x00\x00\x00\x00\x00\x00\x54\xc9\x5b\xe6\x00\x00\x4e\xe8\x5b\xe4\x5b\xe9\x5b\xf2\x00\x00\x5b\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf0\x55\xcd\x00\x00\x00\x00\x4a\x7f\x00\x00\x5b\xf4\x00\x00\x00\x00\x00\x00\x52\xd9\x00\x00\x00\x00\x00\x00\x5b\xf1\x49\x80\x50\x4a\x4e\xc1\x00\x00\x48\x9b\x4d\xea\x00\x00\x00\x00\x00\x00\x4f\xd8\x00\x00\x4e\xe1\x00\x00\x00\x00\x5b\xed\x54\xf3\x00\x00\x00\x00\x00\x00\x5b\xee\x00\x00\x5b\xeb\x00\x00\x00\x00\x5b\xea\x00\x00\x5b\xe8\x00\x00\x00\x00\x5b\xe7\x00\x00\x5b\xef\x5b\xe5\x00\x00\x4b\xea\x00\x00\x46\xea\x47\xa7\x51\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x73\x00\x00\x00\x00\x50\x54\x4a\xc1", /* 6800 */ "\x00\x00\x5b\xf3\x52\xd1\x47\xd3\x45\xfa\x51\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xe3\x00\x00\x00\x00\x4d\xcc\x47\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf5\x00\x00\x00\x00\x48\xbf\x52\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xde\x48\x56\x52\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfa\x00\x00\x55\xda\x00\x00\x00\x00\x00\x00\x4b\x9e\x46\x67\x00\x00\x00\x00\x47\xde\x4d\xe0\x00\x00\x00\x00\x5b\xf8\x50\xd6\x49\xab\x4a\xda\x5b\xf9\x00\x00\x5b\xf6\x00\x00\x48\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf7\x5b\xfb\x00\x00\x49\xc0\x48\x79\x5b\xec\x53\x6d\x53\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfd\x00\x00\x00\x00\x47\x71\x4d\x88\x00\x00\x51\xf3\x00\x00\x00\x00\x00\x00\x5b\xfc\x00\x00\x00\x00\x00\x00\x50\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x4b\x00\x00\x4e\x77\x5c\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x44\x5c\x42", /* 6880 */ "\x00\x00\x4e\x44\x00\x00\x5c\x48\x00\x00\x47\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfe\x5b\xfe\x5c\x45\x00\x00\x00\x00\x00\x00\x50\xda\x5c\x47\x00\x00\x00\x00\x52\xcc\x00\x00\x00\x00\x00\x00\x53\xbc\x00\x00\x4e\x92\x00\x00\x5c\x43\x52\xc6\x00\x00\x50\xac\x00\x00\x00\x00\x00\x00\x58\xa4\x52\xd3\x48\x58\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x46\x00\x00\x51\xe4\x46\x82\x53\x59\x00\x00\x53\x61\x00\x00\x5c\x4c\x49\xad\x00\x00\x00\x00\x5c\x4a\x5c\x4d\x00\x00\x5c\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb1\x00\x00\x5c\x60\x00\x00\x53\x86\x55\xca\x5c\x50\x4e\xf1\x00\x00\x5c\x56\x00\x00\x5c\x5f\x00\x00\x00\x00\x4b\x5a\x00\x00\x5c\x57\x5c\x59\x00\x00\x54\xc2\x5c\x52\x00\x00\x4b\xef\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xa9\x5c\x5e\x5c\x54\x00\x00\x5c\x5d\x00\x00\x00\x00\x00\x00\x5c\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x9d\x5c\x5b\x00\x00\x00\x00\x53\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x94\x55\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x54\x68\x5c\x4f\x00\x00\x00\x00\x5c\x5c\x4f\xf7\x00\x00\x00\x00\x5c\x51\x00\x00\x00\x00\x4d\xfd\x5c\x55\x47\xc5\x4b\xa0\x5c\x4e\x00\x00\x00\x00\x5c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xed\x53\x70\x51\x63\x48\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x63\x5c\x61\x5c\x64\x00\x00\x53\xfa\x5c\x53\x00\x00\x5c\x65\x00\x00\x5c\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x71\x00\x00\x00\x00\x00\x00\x54\xa7\x00\x00\x5c\x69\x00\x00\x00\x00\x52\xed\x00\x00\x00\x00\x00\x00\x5c\x6f\x00\x00\x4c\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x95\x5c\x6b\x55\xc5\x00\x00\x00\x00\x00\x00\x5c\x70\x53\x4c\x00\x00\x54\xe2\x5c\x73\x5c\x72\x00\x00\x4a\xdf\x52\x7c\x4d\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x6e\x00\x00\x5c\x6c\x54\xa2\x00\x00\x45\x6b\x53\xef\x4f\xae\x00\x00\x00\x00\x00\x00\x52\xb3\x5c\x6d\x49\xb7\x00\x00\x5c\x68\x5c\x6a\x5c\x67\x00\x00\x00\x00\x52\xba\x47\x61\x5c\x74\x00\x00", /* 6980 */ "\x00\x00\x5c\x75\x4c\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x52\x00\x00\x00\x00\x00\x00\x49\xeb\x00\x00\x00\x00\x54\x76\x00\x00\x00\x00\x55\xc7\x5c\x86\x00\x00\x00\x00\x5c\x79\x00\x00\x00\x00\x4d\x7e\x5c\x85\x00\x00\x00\x00\x00\x00\x5c\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4a\x00\x00\x00\x00\x5c\x80\x5c\x76\x00\x00\x53\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x82\x00\x00\x00\x00\x5c\x7c\x5c\x77\x00\x00\x5c\x7a\x00\x00\x5c\x83\x00\x00\x00\x00\x00\x00\x4d\xb9\x00\x00\x00\x00\x5c\x7f\x47\x96\x4e\xfa\x52\xdb\x5c\x7d\x00\x00\x54\x8c\x00\x00\x00\x00\x5c\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x48\x48\x68\x81\x00\x00\x00\x00\x00\x00\x5c\x81\x5c\x87\x00\x00\x00\x00\x00\x00\x5c\x90\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8f\x5c\x89\x00\x00\x00\x00\x5c\x94\x00\x00\x5c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x8d\x00\x00\x4b\x5c\x00\x00\x4d\xb7\x00\x00\x5c\x8c", /* 6a00 */ "\x00\x00\x00\x00\x5c\x8a\x00\x00\x00\x00\x53\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x95\x49\x4f\x5c\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x97\x5c\x99\x5c\x93\x00\x00\x00\x00\x53\x8b\x00\x00\x49\x66\x00\x00\x5c\x8b\x00\x00\x00\x00\x5c\x91\x53\x9b\x00\x00\x48\x64\x5c\x96\x5c\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xdc\x45\xf2\x4b\x6f\x00\x00\x00\x00\x5c\x88\x00\x00\x5c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x55\x85\x5c\x9f\x00\x00\x5c\xa7\x46\xcf\x4e\x69\x00\x00\x00\x00\x4b\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x9c\x00\x00\x5c\xa6\x5c\xa1\x5c\xa5\x00\x00\x00\x00\x45\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc2\x5c\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x00\x00\x55\xd4\x5c\xa2\x00\x00\x00\x00\x00\x00\x5c\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xa8\x5c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xaf\x4f\xb2", /* 6a80 */ "\x4f\xf5\x00\x00\x00\x00\x00\x00\x5c\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xab\x55\xee\x00\x00\x5c\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x55\x00\x00\x00\x00\x00\x00\x5c\x9e\x00\x00\x5c\xad\x5c\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb2\x00\x00\x5c\xb1\x00\x00\x54\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb5\x00\x00\x00\x00\x5c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb7\x5c\xb4\x52\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xba\x00\x00\x55\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xbb\x4d\xa6\x00\x00\x00\x00\x5c\xb8\x53\x62\x00\x00\x00\x00\x5c\xb9\x00\x00\x5c\xbc\x00\x00\x00\x00\x00\x00\x51\xc5\x00\x00\x5c\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc2\x52\xee\x00\x00\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xde\x5c\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc3\x00\x00\x00\x00\x00\x00\x5c\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf7\x00\x00\x5c\xc5\x4c\xb5\x45\x97\x00\x00\x4b\x9d\x00\x00\x00\x00\x00\x00\x4a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc7\x5c\xc6\x5c\xc8\x51\x7d\x00\x00\x00\x00\x4c\xf8\x4e\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xcc\x00\x00\x00\x00\x00\x00\x5c\xcb\x00\x00\x5c\xcd\x00\x00\x00\x00\x46\xf7\x00\x00\x54\x87\x00\x00\x5c\xce\x00\x00\x00\x00\x4d\x4e\x5c\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xcf\x00\x00\x5c\xd1\x00\x00\x00\x00\x00\x00\x5c\xd2\x00\x00\x5c\xd3\x48\xd8\x45\x77\x4d\x4c\x00\x00\x45\xb1\x00\x00\x00\x00\x47\xd8\x55\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x9f\x00\x00\x00\x00\x00\x00\x48\xe4\x49\x55\x00\x00\x00\x00\x00\x00\x5c\xd4\x5c\xd5\x00\x00\x49\x99\x00\x00\x00\x00\x00\x00\x5c\xd6", /* 6b80 */ "\x5c\xd7\x00\x00\x00\x00\x5c\xd9\x5c\xd8\x00\x00\x4f\x42\x00\x00\x00\x00\x53\xa4\x48\x65\x49\x92\x00\x00\x5c\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdc\x4e\x73\x00\x00\x5c\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdf\x5c\xe0\x00\x00\x00\x00\x00\x00\x5c\xe1\x00\x00\x5c\xe2\x5c\xe3\x5c\xe4\x54\x59\x47\xed\x00\x00\x5c\xe5\x00\x00\x00\x00\x49\xe9\x50\xc0\x5c\xe6\x00\x00\x00\x00\x48\x49\x58\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5b\x5c\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe8\x00\x00\x49\x69\x49\xf5\x00\x00\x00\x00\x00\x00\x4c\x97\x5c\xe9\x47\x4e\x00\x00\x5c\xea\x00\x00\x53\xd7\x00\x00\x00\x00\x46\xe2\x00\x00\x00\x00\x00\x00\x5c\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xed\x5c\xec\x00\x00\x00\x00\x5c\xef\x00\x00\x00\x00\x00\x00\x5c\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8e\x00\x00\x47\x56\x00\x00\x5c\xf1\x5c\xf2\x00\x00\x00\x00\x45\xb9\x00\x00\x00\x00\x00\x00\x5c\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf5\x5c\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x9c\x00\x00\x00\x00\x4c\xa4\x45\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6e\x5c\xf6\x53\x4d\x4d\x84\x49\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x50\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf8\x00\x00\x4e\xc4\x00\x00\x00\x00\x4e\x82\x00\x00\x5c\xf9\x55\x5e\x5c\xf7\x45\xad\x45\xe8\x00\x00\x5c\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x45\x00\x00\x52\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xfe\x50\xd2\x00\x00\x50\xc8\x5d\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa4\x00\x00\x00\x00\x49\x4c\x5d\x44\x00\x00", /* 6c80 */ "\x00\x00\x5d\x42\x5c\xfb\x55\xd9\x00\x00\x00\x00\x5c\xfd\x00\x00\x4c\x8f\x00\x00\x00\x00\x00\x00\x55\x98\x5c\xfc\x00\x00\x00\x00\x5d\x48\x00\x00\x5d\x47\x4f\xf8\x00\x00\x00\x00\x47\xfd\x00\x00\x00\x00\x4e\xad\x5d\x41\x5d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x75\x45\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xec\x00\x00\x00\x00\x5d\x4d\x00\x00\x00\x00\x5d\x50\x00\x00\x46\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xaa\x46\x5c\x5d\x52\x45\x84\x46\xc6\x5d\x4b\x5d\x51\x4e\x6f\x00\x00\x4a\x58\x00\x00\x00\x00\x5d\x49\x5d\x4c\x00\x00\x00\x00\x00\x00\x46\xee\x4d\xb8\x00\x00\x51\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd7\x00\x00\x46\x4a\x00\x00\x55\xc6\x00\x00\x5d\x55\x5d\x4e\x5d\x53\x00\x00\x5d\x4f\x00\x00\x00\x00\x00\x00\x4e\x87\x46\xca\x4d\x4b\x00\x00\x4e\x56\x00\x00\x00\x00\x49\x44\x00\x00\x5d\x56\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x54\x46\xf3\x5d\x4a\x00\x00\x4f\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xda\x5d\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x4e\x00\x00\x52\xb6\x00\x00\x54\x50\x00\x00\x00\x00\x4d\x98\x5d\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xdc\x00\x00\x00\x00\x00\x00\x50\xb7\x4f\xd4\x5d\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x72\x5d\x5c\x00\x00\x52\xac\x5d\x59\x00\x00\x50\xbc\x00\x00\x00\x00\x47\xb4\x00\x00\x5d\x5b\x4a\x72\x00\x00\x00\x00\x46\xfc\x00\x00\x00\x00\x4c\xc9\x46\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x66\x5d\x64\x00\x00\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5f\x5d\x63\x00\x00\x46\x6b\x00\x00\x00\x00\x46\xeb\x4a\x9d\x00\x00\x55\xcc\x00\x00\x4a\x8c\x5d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x7e\x00\x00\x00\x00\x45\xa7\x4d\x41\x5d\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x6a\x00\x00\x5d\x60\x48\x6b\x00\x00\x00\x00\x00\x00\x4f\x7d\x00\x00\x5d\x67\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x61\x00\x00\x5d\x68\x5d\x6b\x00\x00\x00\x00\x4d\xda\x00\x00\x5d\x69\x55\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x72\x00\x00\x00\x00\x4f\x91\x00\x00\x00\x00\x4a\x45\x00\x00\x00\x00\x5d\x6f\x00\x00\x00\x00\x5d\x73\x00\x00\x00\x00\x00\x00\x4e\x74\x00\x00\x00\x00\x00\x00\x4a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x7c\x5d\x75\x5d\x71\x00\x00\x00\x00\x00\x00\x52\xc7\x5d\x78\x00\x00\x00\x00\x5d\x74\x00\x00\x4a\xbf\x5d\x7b\x00\x00\x00\x00\x5d\x82\x00\x00\x00\x00\x55\xe1\x5d\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x77\x00\x00\x00\x00\x4c\xa5\x00\x00\x00\x00\x5d\x81\x00\x00\x5d\x70\x00\x00\x5d\x79\x00\x00\x5d\x83\x55\x4e\x5d\x76\x00\x00\x5d\x84\x00\x00\x00\x00\x47\x77\x5d\x7f\x48\x94\x00\x00\x48\xea\x00\x00\x4b\x46\x5d\x7a\x5d\x6c\x5d\x7d\x4a\x91\x5d\x80\x00\x00\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x96\x00\x00\x54\x41\x47\x69\x4a\xc0\x5d\x6d\x48\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x98\x00\x00\x51\x64\x00\x00\x00\x00\x00\x00\x5d\x87\x50\xe4\x47\x8a\x00\x00\x5d\x99\x00\x00\x5d\x92\x52\x7a\x45\xd2\x00\x00\x5d\x8c\x5d\x98\x4e\x43\x51\xa0\x5d\x93\x00\x00\x49\x50\x00\x00\x5d\x8f\x49\x45\x5d\x85\x5d\x6e\x48\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9a\x5d\x8a\x5d\x96\x00\x00\x5d\x95\x00\x00\x5d\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x88\x00\x00\x00\x00\x5d\x91\x5d\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x52\x00\x00\x51\x55\x00\x00\x00\x00\x53\xf3\x5d\x8e\x00\x00\x00\x00\x5d\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xbd\x00\x00\x00\x00\x00\x00\x5d\x8d\x00\x00\x00\x00\x5d\x86\x48\xbd\x00\x00\x00\x00\x5d\x88\x00\x00\x00\x00\x00\x00\x5d\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6b\x4c\x90", /* 6e80 */ "\x47\x5b\x00\x00\x5d\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x5d\xa5\x47\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xce\x00\x00\x5d\x9d\x00\x00\x00\x00\x00\x00\x4d\xc4\x4a\x4d\x00\x00\x5d\xa8\x00\x00\x00\x00\x52\x71\x00\x00\x00\x00\x53\x76\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa0\x00\x00\x00\x00\x5d\xa2\x00\x00\x00\x00\x00\x00\x48\xbe\x5d\x9e\x00\x00\x00\x00\x54\x97\x00\x00\x00\x00\x5d\x9f\x00\x00\x5d\xa6\x00\x00\x00\x00\x5d\xa7\x00\x00\x5d\xa1\x4e\xe6\x00\x00\x00\x00\x00\x00\x52\xa9\x00\x00\x48\x57\x5d\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa2\x00\x00\x52\x4a\x5d\xa3\x5d\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa3\x4d\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xab\x00\x00\x00\x00\x5d\xb1\x00\x00\x00\x00\x5d\xaf\x00\x00\x4f\xb7\x00\x00\x00\x00\x5d\xb7\x5d\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xad\x5d\xb4", /* 6f00 */ "\x00\x00\x4b\x78\x4f\xbc\x00\x00\x00\x00\x00\x00\x4d\xae\x00\x00\x00\x00\x54\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xc4\x00\x00\x55\x75\x00\x00\x5d\xb6\x49\xed\x54\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8e\x00\x00\x4f\x58\x54\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x6e\x4e\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xb0\x5d\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xb5\x5d\xae\x00\x00\x5d\xa9\x00\x00\x00\x00\x00\x00\x5d\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x4a\xc2\x00\x00\x00\x00\x00\x00\x5d\xc3\x00\x00\x00\x00\x5d\xbd\x4d\xc0\x00\x00\x00\x00\x46\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd2\x00\x00\x5d\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xbe\x4c\x93\x5d\xbc\x54\x46\x00\x00\x00\x00\x00\x00\x5d\xbf\x00\x00\x00\x00\x00\x00\x5d\xba\x00\x00\x5d\xb9\x00\x00\x5d\xc2\x00\x00\x00\x00\x00\x00", /* 6f80 */ "\x5d\xbb\x55\xa0\x5d\xc0\x00\x00\x48\x87\x00\x00\x5d\xb8\x00\x00\x5d\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xc5\x00\x00\x00\x00\x5d\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xcb\x00\x00\x5d\xc9\x4e\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x89\x00\x00\x5d\xc8\x00\x00\x5d\xca\x00\x00\x00\x00\x00\x00\x5d\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xd0\x50\xbe\x5d\xcf\x4a\xce\x00\x00\x00\x00\x5d\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xd4\x5d\xd1\x00\x00\x00\x00\x5d\xd3\x00\x00\x00\x00\x5d\xcd\x00\x00\x00\x00\x00\x00\x5d\xd0\x53\x80\x50\x7e\x00\x00\x00\x00\x51\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa3\x5d\xd2\x00\x00\x5d\xd6\x4d\xd4\x00\x00\x50\x55\x00\x00\x5d\xe2\x00\x00\x5d\xd5\x66\x58\x00\x00\x00\x00\x00\x00\x5d\xdb\x00\x00\x00\x00\x00\x00\x51\x87\x00\x00", /* 7000 */ "\x00\x00\x5d\xdd\x00\x00\x00\x00\x00\x00\x5d\xd7\x55\x50\x5d\xd8\x00\x00\x5d\xd9\x00\x00\x5d\xda\x00\x00\x00\x00\x00\x00\x5d\xde\x00\x00\x5d\xdc\x00\x00\x00\x00\x00\x00\x55\xd1\x00\x00\x00\x00\x5d\xe4\x00\x00\x5d\xe0\x5d\xdf\x00\x00\x52\xb0\x53\x5c\x5d\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xde\x52\xae\x5d\xe3\x00\x00\x00\x00\x00\x00\x46\x5b\x00\x00\x00\x00\x00\x00\x5d\xe5\x00\x00\x5d\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x85\x00\x00\x00\x00\x00\x00\x4b\x65\x4a\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x73\x00\x00\x00\x00\x00\x00\x54\x6a\x4c\xbc\x00\x00\x00\x00", /* 7080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xea\x00\x00\x00\x00\x00\x00\x49\x7d\x4f\xcb\x00\x00\x00\x00\x00\x00\x4d\xad\x00\x00\x00\x00\x00\x00\x4f\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xed\x5d\xee\x48\x61\x5d\xf0\x5d\xec\x00\x00\x00\x00\x00\x00\x52\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xef\x47\x88\x49\xd7\x52\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd1\x00\x00\x00\x00\x5d\xf2\x00\x00\x00\x00\x00\x00\x50\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf3\x00\x00\x00\x00\x00\x00\x53\x8c\x00\x00\x5d\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x87\x00\x00\x00\x00\x00\x00\x5d\xf8\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x53\xee\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xfa\x54\x4f\x00\x00\x5d\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x47\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xfc\x5d\xfd\x00\x00\x4c\x6f\x00\x00\x00\x00\x5e\x42\x00\x00\x54\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x85\x5e\x43\x00\x00\x00\x00\x4b\xdd\x00\x00\x00\x00\x5d\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x41\x00\x00\x54\xea\x53\x57\x5d\xfe\x47\x42\x00\x00\x54\xa0\x00\x00\x00\x00\x5e\x44\x00\x00\x4c\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x90\x00\x00\x00\x00", /* 7180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x47\x00\x00\x00\x00\x00\x00\x5e\x45\x00\x00\x46\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x46\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9d\x5e\x48\x00\x00\x00\x00\x00\x00\x4f\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbb\x00\x00\x00\x00\x00\x00\x5e\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x47\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x4d\x00\x00\x00\x00\x5e\x4b\x00\x00\x49\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf8\x5e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x53\x00\x00\x4a\x79\x00\x00\x5e\x4e\x00\x00\x5e\x51\x50\x47\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xfb\x5e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x66\x54\xce\x5e\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x56\x54\xe6\x57\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x54\x00\x00\x00\x00\x00\x00\x5e\x59\x00\x00\x5e\x57\x5e\x58\x00\x00\x5e\x5a\x5e\x5b", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x5c\x00\x00\x00\x00\x5e\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x5e\x00\x00\x4c\x87\x00\x00\x5e\x60\x5e\x5f\x00\x00\x00\x00\x5e\x61\x00\x00\x5e\x62\x00\x00\x00\x00\x53\xa9\x45\xcc\x00\x00\x00\x00\x00\x00\x50\x96\x5e\x63\x5e\x64\x52\xdd\x4c\x79\x5e\x65\x5e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x67\x47\x67\x4a\xbd\x00\x00\x00\x00\x5e\x68\x55\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x69\x53\xfc\x00\x00\x49\x73\x00\x00\x55\xb7\x00\x00\x4a\xaf\x00\x00\x50\x9a\x55\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7b\x00\x00\x46\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x58\x00\x00\x5e\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x46\xa2\x00\x00\x00\x00\x00\x00\x54\x8a\x5e\x6b\x00\x00", /* 7280 */ "\x53\x54\x5e\x6c\x5e\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6f\x00\x00\x00\x00\x00\x00\x5e\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xdc\x00\x00\x5e\x71\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x72\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc5\x00\x00\x00\x00\x4c\xa7\x00\x00\x5e\x73\x5e\x74\x00\x00\x00\x00\x00\x00\x48\x52\x00\x00\x00\x00\x5e\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x75\x00\x00\x00\x00\x00\x00\x4e\x5a\x5e\x76\x5e\x78\x00\x00\x5e\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7a\x00\x00\x51\xdb\x00\x00\x5e\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x52\x74\x00\x00\x4e\xcf\x00\x00\x50\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7d\x5e\x7e\x5e\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7b\x00\x00\x00\x00\x4a\xdb\x4c\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x80\x52\xfe\x5e\x7f\x00\x00\x00\x00\x50\x6f\x54\xd6\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x84\x5e\x81\x00\x00\x00\x00\x00\x00\x4a\x51\x5e\x83\x5e\x85\x00\x00\x4e\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x86\x5e\x8b\x00\x00\x00\x00\x00\x00\x5e\x88\x49\xc5\x4f\xd0\x00\x00\x00\x00\x4f\x45\x5e\x89\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x87\x00\x00\x50\x4f\x53\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8c\x4c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x95\x51\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8e\x5e\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x65\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x92\x00\x00\x5e\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x93\x00\x00\x4d\x61\x00\x00\x00\x00\x5e\x96\x00\x00\x5e\x94\x5e\x95\x00\x00\x51\xcb\x5e\x97\x00\x00\x00\x00\x00\x00\x00\x00", /* 7380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x6e\x00\x00\x00\x00\x47\x83\x00\x00\x45\xfd\x00\x00\x49\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf9\x5e\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9c\x00\x00\x5e\x99\x00\x00\x00\x00\x5e\x9d\x00\x00\x4c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x98\x5e\x9e\x53\x99\x00\x00\x00\x00\x4d\x5d\x5e\x9b\x00\x00\x00\x00\x00\x00\x5e\xa2\x00\x00\x00\x00\x00\x00\x5e\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa5\x00\x00\x4b\x99\x00\x00\x00\x00\x5e\xa1\x00\x00\x5e\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb9\x00\x00\x00\x00\x50\x66\x5e\xa3\x00\x00\x00\x00\x5e\xa4\x00\x00\x00\x00\x00\x00\x5e\xa8\x00\x00\x00\x00\x5e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xb7\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x48\xdb\x00\x00\x5e\xa9\x45\xeb\x5e\xa7\x00\x00\x50\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5c\x00\x00\x00\x00\x5e\xac\x5e\xaa\x00\x00\x00\x00\x5e\xad\x5e\xab\x00\x00\x00\x00\x00\x00\x5e\xae\x00\x00\x00\x00\x00\x00\x5e\xaf\x54\x53\x4c\xd8\x52\xa3\x52\x9f\x00\x00\x00\x00\x00\x00\x5e\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb2\x00\x00\x5e\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb1\x00\x00\x00\x00\x00\x00\x5e\xb4\x53\xf1\x4f\x52\x5e\xb6\x00\x00\x4b\x5b\x5e\xb3\x50\x8c\x00\x00\x5e\xbc\x5e\xb9\x5e\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb7\x5e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbe\x5e\xb8\x00\x00\x00\x00\x51\x88\x00\x00\x00\x00\x68\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbf\x00\x00", /* 7480 */ "\x00\x00\x00\x00\x00\x00\x52\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbd\x00\x00\x50\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc1\x5e\xc0\x00\x00\x00\x00\x5e\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x64\x00\x00\x00\x00\x00\x00\x5e\xc7\x00\x00\x54\x52\x5e\xc8\x00\x00\x00\x00\x49\xc2\x5e\xc9\x00\x00\x5e\xca\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xcb\x00\x00\x5e\xcc\x5e\xce\x5e\xcd\x00\x00\x00\x00\x00\x00\x4c\xd4\x5e\xcf\x5e\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7500 */ "\x00\x00\x5e\xd1\x00\x00\x5e\xd3\x5e\xd2\x5e\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xd6\x5e\xd5\x5e\xd7\x00\x00\x00\x00\x54\x95\x00\x00\x5e\xd8\x00\x00\x53\xe6\x00\x00\x00\x00\x4b\x55\x00\x00\x4b\x66\x00\x00\x52\xa7\x00\x00\x5e\xd9\x45\x99\x00\x00\x00\x00\x00\x00\x45\xc0\x00\x00\x55\xd7\x5e\xda\x00\x00\x45\xb6\x00\x00\x00\x00\x4d\x58\x5e\xdb\x00\x00\x00\x00\x58\xfe\x45\x63\x46\x7c\x48\xa0\x49\x67\x00\x00\x00\x00\x00\x00\x45\x7c\x57\x65\x00\x00\x45\x55\x46\x77\x5e\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xdd\x00\x00\x5e\xe1\x00\x00\x00\x00\x5e\xe0\x5e\xdf\x5b\x7c\x47\xae\x5e\xde\x00\x00\x55\x8f\x00\x00\x47\x8b\x00\x00\x00\x00\x4e\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x47\xab\x5e\xe3\x5e\xe2\x4d\x72\x50\x86\x00\x00\x00\x00\x49\xfe\x00\x00\x55\x9a\x00\x00\x5e\xe4\x4c\xf0\x51\xb4\x5e\xe5\x00\x00\x52\xfd\x48\xb9\x5e\xe6\x00\x00\x5e\xe9\x00\x00\x5e\xe7\x4a\xa9\x00\x00\x00\x00\x4e\x54\x5e\xe8\x00\x00\x5e\xeb\x50\xdd\x5e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xd4", /* 7580 */ "\x00\x00\x00\x00\x5e\xec\x00\x00\x00\x00\x00\x00\x5e\xed\x5e\xee\x00\x00\x5e\xf0\x5e\xef\x4e\xa0\x00\x00\x00\x00\x51\x71\x55\xb0\x00\x00\x4c\xb4\x00\x00\x00\x00\x5e\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf2\x00\x00\x00\x00\x5e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf5\x00\x00\x5e\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xfd\x4d\x97\x5e\xf7\x00\x00\x5e\xf9\x00\x00\x00\x00\x5e\xfb\x54\xe1\x00\x00\x00\x00\x5e\xfc\x5e\xfa\x51\x42\x00\x00\x00\x00\x00\x00\x5e\xf6\x5e\xf8\x00\x00\x49\xbf\x00\x00\x4e\x4a\x00\x00\x00\x00\x5f\x41\x00\x00\x00\x00\x5e\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x42\x00\x00\x51\x82\x53\xfd\x00\x00\x00\x00\x55\x49\x5f\x43\x00\x00\x4c\x47\x00\x00\x00\x00\x5f\x45\x00\x00\x00\x00\x00\x00\x51\x74\x5f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4a\x00\x00\x5f\x4c\x5f\x4d\x50\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4b\x00\x00\x5f\x48\x00\x00\x5f\x46\x5f\x47", /* 7600 */ "\x00\x00\x5f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4f\x00\x00\x5f\x4e\x00\x00\x52\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x50\x5f\x52\x5f\x53\x5f\x54\x00\x00\x5f\x55\x00\x00\x54\xa4\x5f\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x00\x00\x00\x00\x00\x00\x5f\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb7\x00\x00\x00\x00\x00\x00\x5f\x5c\x5f\x59\x5f\x5a\x00\x00\x00\x00\x00\x00\x54\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xaa\x00\x00\x00\x00\x00\x00\x53\x7e\x00\x00\x5f\x5b\x00\x00\x00\x00\x00\x00\x5f\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5e\x5f\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x62\x5f\x60\x5f\x61\x5f\x63\x00\x00\x5f\x64\x00\x00\x00\x00\x00\x00\x5f\x65\x00\x00\x5f\x66\x00\x00\x00\x00\x00\x00\x5f\x67\x00\x00\x53\x9a\x00\x00\x46\x4b\x46\xe8\x5f\x68\x46\x59\x45\x4b\x00\x00", /* 7680 */ "\x5f\x6a\x00\x00\x5f\x69\x5f\x6b\x45\xef\x00\x00\x4a\xb0\x4c\xbb\x5f\x6c\x00\x00\x00\x00\x5f\x6d\x00\x00\x00\x00\x52\x99\x00\x00\x52\xa4\x00\x00\x00\x00\x4e\x81\x00\x00\x00\x00\x53\x96\x00\x00\x00\x00\x5f\x6e\x5f\x6f\x5f\x72\x5f\x70\x00\x00\x5f\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xda\x00\x00\x5f\x74\x00\x00\x00\x00\x00\x00\x5f\x75\x00\x00\x00\x00\x68\x68\x5f\x76\x5f\x77\x5f\x78\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc7\x00\x00\x00\x00\x5f\x79\x53\xba\x00\x00\x00\x00\x50\x57\x00\x00\x51\xb5\x00\x00\x47\x74\x00\x00\x00\x00\x5f\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x7d\x00\x00\x00\x00\x00\x00\x5f\x7c\x4d\x65\x00\x00\x00\x00\x00\x00\x48\x44\x5c\xc9\x00\x00\x5f\x7e\x4b\x84\x00\x00\x5f\x7f\x00\x00\x49\xe3\x48\x90\x5f\x80\x00\x00\x53\xf7\x00\x00\x00\x00\x5f\x81\x00\x00\x00\x00\x00\x00\x46\x75\x00\x00\x00\x00\x00\x00\x50\x80\x00\x00\x46\x74\x00\x00\x00\x00\x00\x00\x46\x78\x00\x00\x00\x00\x5f\x83\x00\x00\x00\x00\x50\x82\x00\x00", /* 7700 */ "\x00\x00\x48\x47\x00\x00\x00\x00\x5f\x86\x00\x00\x00\x00\x5f\x85\x5f\x84\x52\xbc\x00\x00\x4d\xa2\x45\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8b\x00\x00\x00\x00\x51\xca\x46\x42\x4e\x6a\x00\x00\x00\x00\x00\x00\x5f\x87\x5f\x89\x5f\x8a\x00\x00\x00\x00\x5f\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8c\x5f\x8d\x00\x00\x4e\x5f\x00\x00\x49\xa5\x00\x00\x00\x00\x00\x00\x47\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x8e\x5f\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x90\x5f\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6c\x00\x00\x4a\x73\x00\x00\x5f\x94\x4a\x96\x00\x00\x5f\x91\x00\x00\x00\x00\x5f\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x97\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x96\x5f\x95", /* 7780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x99\x00\x00\x00\x00\x5f\x98\x00\x00\x00\x00\x5f\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9c\x00\x00\x5f\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb0\x52\x7d\x00\x00\x00\x00\x5f\x9d\x00\x00\x00\x00\x4f\x9b\x00\x00\x00\x00\x5f\x9e\x00\x00\x00\x00\x5f\x9f\x00\x00\x5f\xa3\x5f\xa1\x5f\xa2\x00\x00\x5f\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x50\x00\x00\x00\x00\x5f\xa6\x50\xed\x5f\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc1\x5f\xa8\x00\x00\x45\xb0\x00\x00\x55\xc9\x00\x00\x4e\x4d\x00\x00\x00\x00\x00\x00\x4a\x82\x5f\xa9\x51\xbb\x00\x00\x00\x00\x00\x00\x45\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xab\x00\x00\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x49\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xad\x00\x00\x46\xd3\x4c\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb0\x5f\xae\x00\x00\x00\x00\x00\x00\x4d\x45\x54\xb4\x52\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc2\x00\x00\x4a\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x84\x4a\xef\x00\x00\x00\x00\x53\x69\x00\x00\x00\x00\x52\xbf\x00\x00\x5f\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb6\x00\x00\x5f\xb9\x00\x00\x00\x00\x00\x00", /* 7880 */ "\x00\x00\x4f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb7\x51\x95\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xba\x53\x56\x5f\xb5\x00\x00\x00\x00\x51\x7b\x00\x00\x4f\xb1\x00\x00\x52\xd2\x00\x00\x54\x5b\x00\x00\x00\x00\x5f\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbb\x00\x00\x00\x00\x00\x00\x4d\xf8\x00\x00\x50\x7d\x5f\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x48\x7a\x00\x00\x5f\xc4\x00\x00\x5f\xc3\x00\x00\x00\x00\x4a\x62\x00\x00\x00\x00\x00\x00\x5f\xc5\x5f\xc0\x00\x00\x00\x00\x00\x00\x5f\xc6\x5f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x9c\x5f\xbf\x00\x00\x00\x00\x5f\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc8\x49\xb4\x00\x00\x00\x00\x00\x00\x5f\xc7\x00\x00\x00\x00\x48\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xca\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x51\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x9c\x00\x00\x00\x00\x5f\xcd\x4d\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xb9\x00\x00\x00\x00\x00\x00\x51\x4c\x5f\xd0\x5f\xcf\x00\x00\x00\x00\x00\x00\x5f\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x53\x00\x00\x49\x58\x00\x00\x46\x63\x00\x00\x5f\xd3\x53\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x92\x4e\xd8\x4f\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8c\x00\x00\x00\x00\x55\x5c\x00\x00\x5f\xd8\x4c\xdc\x53\x65\x00\x00\x00\x00\x5f\xd7\x00\x00\x00\x00\x4c\xeb\x45\xa1\x5f\xd6\x5f\xd4\x00\x00\x4f\x89\x00\x00\x00\x00\x49\xf9\x00\x00\x00\x00\x4d\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x53\x00\x00\x00\x00\x52\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xda", /* 7980 */ "\x50\xe7\x4d\x75\x00\x00\x00\x00\x50\xae\x4f\x87\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdb\x00\x00\x00\x00\x52\x86\x4b\xa7\x45\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xdf\x00\x00\x5f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xaa\x4f\xd7\x00\x00\x00\x00\x5f\xe0\x00\x00\x00\x00\x00\x00\x54\xf5\x00\x00\x50\xfa\x55\x53\x00\x00\x5f\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6a\x5f\xe2\x00\x00\x00\x00\x55\x5d\x54\x63\x53\xd0\x45\xf1\x46\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe3\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xed\x4d\xba\x00\x00\x00\x00\x5f\xe4\x00\x00\x00\x00\x4c\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x83\x00\x00\x54\xb5\x00\x00\x5f\xe7\x50\x8f\x00\x00\x4c\x8a\x5f\xe5\x00\x00\x4d\x9f\x00\x00\x00\x00\x5f\xe6\x00\x00\x00\x00\x00\x00\x4b\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x75\x00\x00\x00\x00\x00\x00\x00\x00", /* 7a00 */ "\x52\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe8\x00\x00\x00\x00\x47\xf4\x00\x00\x5f\xe9\x47\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xfa\x00\x00\x00\x00\x50\x87\x5f\xea\x5f\xeb\x4d\xcf\x00\x00\x52\x96\x00\x00\x00\x00\x5f\xec\x53\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x92\x00\x00\x00\x00\x5f\xed\x47\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xef\x00\x00\x00\x00\x00\x00\x5f\xf0\x4d\xbe\x4f\xc7\x5f\xee\x4f\xd5\x4e\x94\x00\x00\x48\xd4\x5f\xf1\x00\x00\x00\x00\x52\xbe\x00\x00\x00\x00\x5f\xf3\x00\x00\x00\x00\x00\x00\x48\x91\x52\x54\x50\xb8\x50\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf5\x5f\xf4\x4e\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf6\x00\x00\x4f\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf8\x00\x00\x00\x00\x00\x00\x4b\x86\x00\x00\x49\x86\x00\x00\x00\x00\x5f\xf9\x47\x8d\x00\x00\x00\x00\x5f\xfa\x00\x00\x4e\x91", /* 7a80 */ "\x00\x00\x4a\xfd\x00\x00\x51\x69\x54\x99\x00\x00\x00\x00\x00\x00\x5f\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb0\x4b\xe9\x00\x00\x5f\xfc\x5f\xfe\x60\x41\x5f\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x42\x4a\x65\x00\x00\x00\x00\x00\x00\x50\xaa\x49\xa7\x60\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x44\x00\x00\x00\x00\x00\x00\x55\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x47\x00\x00\x00\x00\x00\x00\x60\x46\x60\x49\x60\x48\x00\x00\x60\x4a\x52\xf0\x00\x00\x60\x4b\x45\xdd\x00\x00\x60\x4c\x00\x00\x60\x4d\x00\x00\x60\x4f\x60\x4e\x60\x51\x00\x00\x60\x50\x00\x00\x00\x00\x00\x00\x60\x52\x60\x53\x00\x00\x49\xe7\x60\x54\x00\x00\x66\xc1\x47\x6e\x60\x55\x60\x56\x54\x6b\x00\x00\x4d\x50\x60\x57\x60\x58\x00\x00\x00\x00\x51\xc8\x60\x5a\x00\x00\x60\x5b\x00\x00\x48\xef\x60\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x71\x00\x00\x60\x5d\x45\xf5\x54\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x52\x87", /* 7b00 */ "\x00\x00\x00\x00\x60\x5e\x00\x00\x54\xd5\x00\x00\x60\x62\x00\x00\x51\xcf\x00\x00\x60\x61\x60\x60\x00\x00\x00\x00\x00\x00\x60\x5f\x00\x00\x49\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe7\x60\x65\x00\x00\x4f\x41\x00\x00\x00\x00\x60\x66\x00\x00\x47\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf4\x4f\xd9\x00\x00\x60\x68\x00\x00\x00\x00\x00\x00\x46\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x63\x00\x00\x60\x67\x60\x64\x00\x00\x00\x00\x49\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6c\x4a\xc7\x00\x00\x4d\x9b\x46\xa7\x00\x00\x4b\x8f\x60\x6b\x60\x6a\x00\x00\x52\xf5\x60\x69\x4b\x45\x4b\x7c\x00\x00\x49\xd0\x00\x00\x46\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x84\x00\x00\x50\x48\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4e\x00\x00\x60\x73\x00\x00\x60\x71\x60\x72\x00\x00\x00\x00\x60\x70\x60\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7b80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9b\x4f\x51\x00\x00\x00\x00\x00\x00\x55\xa4\x00\x00\x60\x77\x00\x00\x60\x7b\x00\x00\x00\x00\x60\x7a\x00\x00\x4e\xe0\x4c\xcc\x00\x00\x48\x43\x60\x75\x60\x7c\x60\x79\x00\x00\x60\x78\x60\x74\x60\x82\x60\x76\x00\x00\x46\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x00\x00\x00\x00\x51\x8d\x00\x00\x00\x00\x00\x00\x4a\xfb\x00\x00\x00\x00\x60\x80\x00\x00\x00\x00\x00\x00\x50\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xa1\x51\xe8\x00\x00\x00\x00\x49\xe8\x00\x00\x60\x81\x4f\xb6\x00\x00\x49\xa8\x00\x00\x60\x7e\x60\x7f\x00\x00\x00\x00\x60\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x83\x00\x00\x00\x00\x48\x75\x00\x00\x00\x00\x00\x00\x4a\xd8\x60\x87\x60\x85\x00\x00\x00\x00\x60\x84\x00\x00\x00\x00\x00\x00\x54\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8c\x00\x00\x00\x00\x60\x8e\x60\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7c00 */ "\x60\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8d\x00\x00\x00\x00\x00\x00\x4f\x53\x57\x8a\x60\x8a\x60\x88\x00\x00\x00\x00\x51\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x60\x92\x00\x00\x4b\xec\x00\x00\x60\x8f\x00\x00\x00\x00\x00\x00\x60\x90\x00\x00\x00\x00\x60\x91\x60\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x93\x51\xab\x00\x00\x00\x00\x00\x00\x00\x00\x60\x95\x52\x70\x4f\x4c\x60\x96\x00\x00\x00\x00\x60\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x97\x4d\xfe\x00\x00\x51\xf2\x60\x9a\x00\x00\x00\x00\x00\x00\x4f\x99\x00\x00\x60\x99\x00\x00\x60\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9c\x4c\xee\x00\x00\x00\x00\x00\x00\x52\xaa\x60\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x6f\x00\x00\x60\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf0\x00\x00", /* 7c80 */ "\x00\x00\x55\xe7\x4e\x85\x60\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x9e\x00\x00\x4f\xcc\x00\x00\x53\xc9\x00\x00\x00\x00\x60\xa1\x00\x00\x4c\xa9\x00\x00\x00\x00\x4c\x4b\x00\x00\x4d\x59\x4b\xf7\x00\x00\x00\x00\x4f\xc8\x00\x00\x00\x00\x00\x00\x4b\xfb\x00\x00\x60\xa5\x60\xa3\x00\x00\x60\xa2\x52\xab\x00\x00\x4b\xd4\x60\xa7\x00\x00\x00\x00\x60\xa4\x00\x00\x60\xa6\x60\xab\x00\x00\x00\x00\x60\xaa\x60\xa9\x60\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xac\x00\x00\x00\x00\x00\x00\x60\xae\x46\x6c\x00\x00\x51\xbc\x00\x00\x60\xb0\x00\x00\x00\x00\x60\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x54\x71\x00\x00\x00\x00\x00\x00\x51\x60\x00\x00\x00\x00\x00\x00\x60\xb1\x00\x00\x00\x00\x00\x00\x48\x84\x00\x00\x60\xb3\x00\x00\x00\x00\x00\x00\x60\xb4\x00\x00\x54\x92\x51\x8c\x51\x4b\x00\x00\x60\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xb5\x00\x00\x00\x00\x60\xb6\x00\x00\x60\xb7\x00\x00\x60\xb8\x00\x00\x46\xc7\x00\x00\x52\xc2\x48\xfa\x00\x00\x00\x00\x51\xfe\x00\x00", /* 7d00 */ "\x46\xdb\x00\x00\x60\xba\x00\x00\x47\xbd\x4b\x67\x60\xb9\x00\x00\x00\x00\x00\x00\x60\xbd\x4c\xf9\x00\x00\x49\xe2\x00\x00\x00\x00\x4f\xb5\x00\x00\x00\x00\x00\x00\x47\xa6\x60\xbc\x00\x00\x4f\x47\x4c\x78\x46\x80\x49\xf3\x4f\xf3\x60\xbb\x00\x00\x00\x00\x00\x00\x47\x9f\x48\x77\x4c\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf0\x55\x92\x00\x00\x60\xc0\x51\x48\x47\x68\x00\x00\x60\xc1\x4e\x59\x00\x00\x60\xc3\x00\x00\x00\x00\x00\x00\x4c\xe4\x4c\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc2\x00\x00\x00\x00\x49\xf4\x55\x63\x46\xb9\x60\xbe\x60\xc5\x00\x00\x60\xc4\x00\x00\x00\x00\x60\xbf\x46\x88\x00\x00\x60\xc9\x60\xcc\x46\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd0\x60\xc6\x00\x00\x50\x6d\x00\x00\x00\x00\x4c\xe7\x4e\xf7\x60\xcd\x00\x00\x00\x00\x47\x57\x00\x00\x60\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcb\x00\x00\x00\x00\x48\x81\x52\x68\x60\xc7\x00\x00\x4a\xe4\x4a\xf3\x00\x00\x00\x00\x49\xf6\x00\x00\x00\x00\x00\x00\x54\xed\x00\x00\x00\x00", /* 7d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x74\x00\x00\x00\x00\x00\x00\x60\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x4a\x47\xcb\x54\xeb\x50\x70\x00\x00\x00\x00\x60\xdc\x60\xda\x00\x00\x60\xd8\x60\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd7\x51\xa3\x48\x80\x60\xd1\x60\xd9\x60\xdd\x48\xcb\x4a\x53\x00\x00\x4d\xc9\x60\xd3\x00\x00\x60\xd4\x60\xdb\x00\x00\x54\xd3\x54\xa6\x00\x00\x60\xd6\x49\xdc\x48\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xd5\x00\x00\x00\x00\x4b\x97\x53\x7d\x00\x00\x00\x00\x00\x00\x47\x93\x00\x00\x48\xa5\x4a\x9b\x00\x00\x00\x00\x60\xde\x60\xe1\x00\x00\x60\xdf\x00\x00\x46\x87\x00\x00\x60\xe8\x60\xe0\x60\xe3\x00\x00\x4a\x80\x60\xe7\x00\x00\x00\x00\x60\xe2\x00\x00\x00\x00\x00\x00\x48\x4e\x4c\xfc\x00\x00\x00\x00\x55\x6b\x00\x00\x00\x00\x4e\x9a\x00\x00\x00\x00\x60\xe6\x00\x00\x48\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe4\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x4b\xaa\x00\x00\x00\x00\x48\x59\x60\xe9\x00\x00\x00\x00\x00\x00\x60\xee\x60\xea\x60\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe6\x00\x00\x00\x00\x4f\x6b\x60\xed\x00\x00\x60\xeb\x5b\xcc\x55\xa8\x00\x00\x00\x00\x4e\x93\x00\x00\x00\x00\x00\x00\x00\x00\x49\xe4\x00\x00\x00\x00\x49\xf7\x00\x00\x00\x00\x60\xf2\x60\xf9\x00\x00\x00\x00\x60\xf4\x00\x00\x60\xf8\x00\x00\x60\xf6\x60\xef\x60\xf5\x00\x00\x60\xf3\x48\x66\x00\x00\x00\x00\x47\x59\x00\x00\x60\xf7\x00\x00\x00\x00\x60\xf0\x00\x00\x60\xf1\x00\x00\x48\x68\x53\x73\x00\x00\x52\xda\x00\x00\x00\x00\x00\x00\x00\x00\x60\xfd\x00\x00\x48\x9a\x51\xd4\x60\xfb\x00\x00\x00\x00\x60\xfe\x61\x41\x00\x00\x00\x00\x60\xfa\x60\xfc\x00\x00\x00\x00\x52\xda\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf1\x61\x42\x00\x00\x61\x45\x61\x44\x53\x73\x00\x00\x4d\x9a\x00\x00\x00\x00\x4b\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x43\x00\x00\x61\x47\x61\x46\x61\x48\x00\x00\x61\x4a", /* 7e80 */ "\x00\x00\x00\x00\x55\xeb\x61\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x52\x78\x61\x4c\x51\xbf\x00\x00\x61\x4e\x00\x00\x61\x4d\x55\xfa\x52\x73\x00\x00\x61\x4f\x61\x50\x61\x51\x00\x00\x61\x52\x00\x00\x00\x00\x00\x00\x00\x00\x61\x53\x53\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x84\x00\x00\x61\x54\x00\x00\x61\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x56\x00\x00\x61\x57\x00\x00\x00\x00\x00\x00\x00\x00\x61\x58\x54\xcb\x61\x59\x00\x00\x51\x6e\x61\x5a\x00\x00\x00\x00\x61\x5c\x61\x5b\x00\x00\x00\x00\x61\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5e\x61\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x61\x61\x60\x61\x62\x4c\x4e\x55\xef\x00\x00\x00\x00\x46\x8c\x00\x00\x4f\x82\x00\x00\x4c\x99\x00\x00\x00\x00\x55\x79\x00\x00\x55\xa5\x61\x63\x5a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f80 */ "\x00\x00\x00\x00\x61\x64\x61\x66\x00\x00\x4d\xfa\x61\x65\x61\x67\x61\x68\x00\x00\x4a\xd1\x00\x00\x61\x69\x00\x00\x45\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6d\x00\x00\x00\x00\x61\x6c\x61\x6b\x00\x00\x00\x00\x61\x6e\x00\x00\x61\x6f\x47\xb1\x00\x00\x00\x00\x00\x00\x55\x96\x45\x98\x00\x00\x00\x00\x00\x00\x00\x00\x61\x71\x61\x70\x00\x00\x00\x00\x61\x72\x00\x00\x00\x00\x00\x00\x61\x74\x00\x00\x61\x75\x61\x73\x00\x00\x00\x00\x00\x00\x47\x8f\x00\x00\x00\x00\x00\x00\x4f\xfb\x00\x00\x00\x00\x00\x00\x61\x78\x61\x79\x00\x00\x00\x00\x00\x00\x61\x7a\x00\x00\x4d\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x69\x00\x00\x54\xf9\x61\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x69\x61\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7d\x00\x00\x00\x00\x61\x7e\x00\x00\x55\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb6\x00\x00\x00\x00\x61\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x80\x00\x00\x51\xf6\x4d\xb5\x00\x00\x00\x00\x00\x00", /* 8000 */ "\x52\xa0\x49\x85\x00\x00\x47\x60\x61\x81\x46\x70\x53\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x61\x82\x51\xe6\x00\x00\x00\x00\x00\x00\x49\x8e\x00\x00\x61\x83\x00\x00\x00\x00\x49\x9a\x00\x00\x4f\xec\x54\xe4\x61\x84\x00\x00\x00\x00\x61\x85\x00\x00\x00\x00\x00\x00\x00\x00\x61\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xab\x00\x00\x00\x00\x4e\x99\x00\x00\x00\x00\x00\x00\x00\x00\x61\x89\x00\x00\x55\xb8\x00\x00\x61\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8b\x00\x00\x00\x00\x00\x00\x61\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8c\x00\x00\x00\x00\x00\x00\x4b\xb5\x00\x00\x61\x8d\x00\x00\x54\x79\x00\x00\x00\x00\x00\x00\x48\xbb\x61\x8e\x00\x00\x4b\x89\x61\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xca\x61\x93\x00\x00\x61\x92\x61\x91\x4d\xa8\x00\x00\x61\x94\x48\xd7\x00\x00\x61\x95\x00\x00\x00\x00\x00\x00\x61\x96\x53\xe4\x61\x97", /* 8080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x61\x98\x61\x99\x53\xb6\x4b\x41\x00\x00\x4a\x42\x00\x00\x55\x7f\x4e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x9a\x00\x00\x00\x00\x52\x67\x00\x00\x52\x6a\x00\x00\x61\x9b\x52\x92\x00\x00\x4c\x8c\x00\x00\x00\x00\x00\x00\x4c\xc5\x53\x82\x00\x00\x00\x00\x49\x7b\x00\x00\x00\x00\x00\x00\x4b\x79\x4c\xfb\x00\x00\x61\x9e\x61\x9c\x00\x00\x50\xeb\x00\x00\x52\xd5\x48\xac\x00\x00\x54\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf6\x61\xa3\x00\x00\x4e\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb2\x00\x00\x52\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x88\x00\x00\x00\x00\x61\xa1\x61\xa4\x61\x9f\x00\x00\x61\xa2\x50\xb6\x00\x00\x00\x00\x4d\x63\x00\x00\x00\x00\x4e\xe9\x61\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa6\x00\x00\x61\xa7\x00\x00\x00\x00\x4e\xab\x00\x00\x00\x00\x00\x00\x4b\xe3\x00\x00\x00\x00\x00\x00\x61\xb0\x47\x4f\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x48\x74\x00\x00\x00\x00\x50\x51\x55\xec\x47\xe3\x50\x79\x61\xa5\x53\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5c\x61\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xaa\x00\x00\x4a\xb4\x00\x00\x4c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x61\xad\x00\x00\x00\x00\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x61\xac\x00\x00\x00\x00\x00\x00\x00\x00\x61\xab\x00\x00\x00\x00\x52\xc4\x00\x00\x4d\x62\x61\xaf\x00\x00\x61\xae\x52\x47\x4c\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb3\x61\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x51\xce\x00\x00\x00\x00\x61\xb2\x00\x00\x4b\xa4\x61\xb1\x00\x00\x00\x00\x61\xb6\x00\x00\x00\x00\x00\x00\x4d\xb6\x4c\xa0\x52\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9a", /* 8180 */ "\x61\xba\x00\x00\x61\xbb\x61\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb8\x00\x00\x61\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd8\x00\x00\x00\x00\x00\x00\x61\xbf\x00\x00\x61\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x51\x91\x00\x00\x4d\x8a\x50\x60\x00\x00\x00\x00\x61\xbc\x00\x00\x00\x00\x61\xbe\x61\xc1\x00\x00\x00\x00\x00\x00\x4e\xf6\x61\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xc4\x00\x00\x00\x00\x50\x76\x00\x00\x61\xc0\x00\x00\x00\x00\x61\xc3\x00\x00\x61\xca\x00\x00\x00\x00\x61\xc7\x61\xc6\x53\x5f\x61\xc8\x00\x00\x61\xc9\x00\x00\x00\x00\x00\x00\x54\x74\x00\x00\x61\xc5\x61\xcb\x00\x00\x00\x00\x00\x00\x61\xcc\x00\x00\x00\x00\x00\x00\x61\xcd\x00\x00\x4d\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x61\xce\x61\xcf\x61\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd1\x61\xd2\x00\x00\x00\x00\x4a\x47\x00\x00\x53\x8a\x00\x00\x51\x73\x4c\xd0\x00\x00\x45\xc3\x00\x00\x00\x00\x4d\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x48\x4c\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd3\x61\xd4\x4a\x89\x00\x00\x61\xd5\x00\x00", /* 8200 */ "\x00\x00\x61\xd6\x61\xd7\x00\x00\x00\x00\x61\xd8\x00\x00\x53\x58\x46\x6a\x57\x78\x62\xba\x00\x00\x50\x94\x61\xd9\x4c\x58\x00\x00\x61\xda\x00\x00\x61\xdb\x00\x00\x00\x00\x00\x00\x61\xdc\x4e\x5b\x4c\xaa\x00\x00\x00\x00\x4f\xc1\x4f\xb8\x00\x00\x4a\x63\x4b\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdd\x48\x9f\x61\xde\x49\x56\x00\x00\x61\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe1\x00\x00\x54\xdb\x4b\x87\x53\xac\x61\xe0\x46\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xae\x61\xe3\x61\xe4\x00\x00\x00\x00\x61\xe5\x00\x00\x61\xe6\x00\x00\x00\x00\x61\xe8\x00\x00\x61\xe7\x00\x00\x4c\x4a\x00\x00\x61\xe9\x00\x00\x61\xea\x61\xeb\x00\x00\x00\x00\x55\xb4\x45\xc4\x00\x00\x61\xec\x47\xc3\x00\x00\x00\x00\x00\x00\x4d\x54\x61\xed\x53\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xee\x00\x00", /* 8280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9a\x00\x00\x61\xef\x00\x00\x00\x00\x00\x00\x00\x00\x61\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbd\x00\x00\x00\x00\x00\x00\x49\x72\x00\x00\x61\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7b\x4a\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x61\xf1\x61\xf4\x54\x42\x00\x00\x4f\xe5\x00\x00\x46\xd9\x00\x00\x46\x83\x00\x00\x00\x00\x00\x00\x00\x00\x49\x53\x4d\xd0\x00\x00\x61\xf3\x00\x00\x4e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4b\x61\xf9\x55\x59\x52\xd7\x00\x00\x00\x00\x4a\xb8\x00\x00\x62\x46\x00\x00\x53\x77\x62\x43\x00\x00\x62\x41\x61\xf7\x00\x00\x61\xf5\x00\x00\x61\xf6\x00\x00\x46\xd6\x4a\x5f\x54\xb0\x00\x00\x00\x00\x00\x00\x4d\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xee\x00\x00\x61\xfb\x61\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x61\xfe\x62\x44\x61\xfd\x00\x00\x00\x00\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x61\xf8\x46\x46\x61\xfc\x54\x7a\x4b\xd3\x62\x42\x00\x00\x00\x00\x62\x45\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4a\x53\xf6\x62\x52\x00\x00\x00\x00\x00\x00\x50\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x58\x00\x00\x00\x00\x00\x00\x00\x00\x47\x4c\x00\x00\x00\x00\x62\x51\x00\x00\x00\x00\x00\x00\x62\x50\x00\x00\x62\x4b\x54\x7b\x00\x00\x62\x49\x62\x47\x49\x77\x00\x00\x4d\xf7\x62\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x62\x4f\x53\xb3\x00\x00\x00\x00\x48\x42\x53\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5f\x62\x4e\x00\x00\x46\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5f\x00\x00\x62\x5a\x00\x00\x4b\xa1\x00\x00\x00\x00\x00\x00\x49\xe0\x62\x5d\x00\x00\x00\x00\x62\x5b", /* 8380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x62\x00\x00\x54\x86\x00\x00\x62\x63\x62\x5c\x00\x00\x00\x00\x00\x00\x62\x59\x00\x00\x00\x00\x00\x00\x00\x00\x62\x60\x00\x00\x00\x00\x62\x57\x00\x00\x00\x00\x00\x00\x62\x53\x00\x00\x00\x00\x00\x00\x51\xee\x62\x55\x62\x61\x00\x00\x62\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x64\x00\x00\x62\x54\x54\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc9\x00\x00\x00\x00\x00\x00\x62\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x75\x00\x00\x00\x00\x00\x00\x62\x6e\x00\x00\x00\x00\x00\x00\x47\x53\x00\x00\x62\x67\x00\x00\x00\x00\x46\xd7\x00\x00\x4c\x73\x00\x00\x62\x68\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x51\x00\x00\x00\x00\x51\x80\x00\x00\x62\x6c\x00\x00\x00\x00\x00\x00\x4b\xa8\x00\x00\x00\x00\x53\xd4\x62\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6a\x00\x00\x54\xe9\x00\x00\x00\x00\x00\x00\x4b\x6c\x51\x6d\x48\xcc\x62\x71\x00\x00\x62\x65\x00\x00\x62\x74\x62\x69\x00\x00\x00\x00\x00\x00\x62\x76\x00\x00\x62\x6a\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x62\x6b\x54\xf7\x00\x00\x00\x00\x62\x6f\x00\x00\x00\x00\x52\xc9\x62\x6d\x50\xdb\x62\x72\x54\x82\x00\x00\x00\x00\x00\x00\x00\x00\x62\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x73\x00\x00\x54\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4a\x62\x77\x00\x00\x4b\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7c\x00\x00\x00\x00\x00\x00\x62\x85\x00\x00\x00\x00\x62\x84\x00\x00\x00\x00\x00\x00\x62\x79\x47\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x82\x00\x00\x62\x7e\x45\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x59\x00\x00\x00\x00\x00\x00\x48\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x47\x62\x78\x50\x71\x00\x00\x00\x00\x4e\x72\x00\x00\x00\x00\x62\x81\x00\x00\x62\x7c\x4f\x79\x51\x6c\x62\x7f\x62\x83\x00\x00\x54\x4e\x00\x00\x00\x00\x00\x00\x50\xd9\x00\x00\x62\x7b\x00\x00\x62\x7d\x50\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x62\x80\x00\x00\x62\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x93\x00\x00\x00\x00\x00\x00\x4f\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x50\x95\x00\x00\x00\x00\x52\x59\x00\x00\x00\x00\x62\x89\x00\x00\x62\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x90\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb2\x00\x00\x62\x8a\x00\x00\x00\x00\x00\x00\x4a\xba\x62\x87\x00\x00\x62\x8c\x50\xb9\x00\x00\x00\x00\x62\x88\x00\x00\x62\x8f\x00\x00\x00\x00\x4c\x94\x00\x00\x62\x91\x00\x00\x00\x00\x50\x83\x62\x86\x4f\x6d\x00\x00\x62\x8b\x00\x00\x00\x00\x62\x8e\x4f\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x62\x92\x00\x00\x00\x00\x62\x94\x62\x8d\x00\x00\x52\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x88\x00\x00\x4b\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8b\x00\x00\x00\x00\x62\x95", /* 8500 */ "\x52\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6c\x00\x00\x55\x7b\x62\x9c\x62\x9b\x00\x00\x62\x97\x62\x98\x00\x00\x54\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9a\x00\x00\x54\xa8\x00\x00\x53\xf8\x00\x00\x00\x00\x4f\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x99\x4e\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd1\x00\x00\x00\x00\x62\xa0\x62\xa5\x00\x00\x52\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x62\xa4\x53\xa8\x62\xa6\x62\xa7\x00\x00\x00\x00\x55\x65\x00\x00\x00\x00\x00\x00\x00\x00\x62\x9e\x00\x00\x62\xa9\x00\x00\x54\x91\x62\xa3\x62\xa1\x62\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x50\xde\x54\xf0\x51\xd3\x62\xa8\x00\x00\x62\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb7\x00\x00", /* 8580 */ "\x62\xaa\x00\x00\x00\x00\x00\x00\x4a\x92\x00\x00\x00\x00\x62\xb4\x62\xac\x00\x00\x62\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb8\x62\xad\x00\x00\x00\x00\x62\xb1\x00\x00\x00\x00\x4c\xec\x00\x00\x51\xad\x00\x00\x62\xb2\x62\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xab\x00\x00\x4f\xbf\x00\x00\x62\xaf\x4c\xf1\x54\x5a\x49\x98\x46\xe1\x00\x00\x62\xb3\x53\xf9\x62\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xbf\x62\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xbc\x00\x00\x00\x00\x00\x00\x4e\xed\x00\x00\x62\xbe\x62\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc4\x62\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x68\x62\xc3\x00\x00\x00\x00\x00\x00\x4f\xf6\x4c\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe2\x00\x00\x62\xc5\x53\xed\x50\x5f\x00\x00\x00\x00\x62\xc9\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x54\x96\x00\x00\x00\x00\x00\x00\x4e\xda\x4c\xbf\x00\x00\x00\x00\x62\xc6\x62\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc7\x00\x00\x00\x00\x5c\xbd\x5c\xbe\x00\x00\x00\x00\x62\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa6\x00\x00\x5f\x82\x62\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcf\x4a\xab\x00\x00\x52\x60\x00\x00\x00\x00\x00\x00\x52\xfb\x62\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x72\x00\x00\x52\x50\x00\x00\x55\x88\x62\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x00\x00\x00\x00\x00\x00\x4b\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xb6\x00\x00\x51\x44\x00\x00\x00\x00\x00\x00\x00\x00", /* 8680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xaa\x62\xd8\x62\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd5\x00\x00\x4f\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd6\x55\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd7\x62\xd9\x62\xe3\x00\x00\x00\x00\x00\x00\x62\xdc\x62\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xdd\x00\x00\x62\xde\x4f\xea\x00\x00\x62\xe0\x00\x00\x53\xd8\x00\x00\x4d\xf9\x62\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbb\x00\x00\x62\xe9\x00\x00\x00\x00\x62\xe5\x62\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe6\x00\x00\x00\x00\x62\xe7\x4e\x66\x53\xa5\x4f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x4e\x62\xf3\x00\x00\x62\xef\x00\x00\x00\x00\x55\x99\x00\x00", /* 8700 */ "\x62\xed\x00\x00\x4e\xcd\x62\xee\x00\x00\x00\x00\x62\xeb\x00\x00\x62\xec\x62\xf1\x62\xf4\x00\x00\x00\x00\x62\xf2\x00\x00\x00\x00\x00\x00\x62\xf0\x62\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xdc\x00\x00\x62\xfa\x00\x00\x53\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf8\x00\x00\x00\x00\x00\x00\x62\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf5\x00\x00\x00\x00\x52\x6d\x00\x00\x00\x00\x00\x00\x62\xf7\x00\x00\x00\x00\x00\x00\x62\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x52\xa1\x62\xfd\x00\x00\x62\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x63\x49\x00\x00\x53\x47\x00\x00\x63\x42\x00\x00\x63\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xfb\x63\x46\x00\x00\x00\x00\x63\x4a\x00\x00\x00\x00\x51\xc3\x00\x00\x63\x43\x00\x00\x63\x45\x00\x00\x00\x00\x00\x00\x63\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x41\x00\x00\x4e\x6e\x00\x00\x62\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4b", /* 8780 */ "\x00\x00\x00\x00\x63\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x00\x00\x63\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x00\x00\x00\x00\x63\x4f\x00\x00\x00\x00\x00\x00\x63\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd6\x63\x59\x00\x00\x63\x51\x00\x00\x00\x00\x63\x52\x00\x00\x00\x00\x00\x00\x63\x56\x00\x00\x63\x4d\x54\xf4\x00\x00\x00\x00\x00\x00\x63\x50\x00\x00\x00\x00\x00\x00\x00\x00\x63\x53\x00\x00\x63\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x00\x00\x63\x5a\x00\x00\x00\x00\x63\x5b\x00\x00\x00\x00\x00\x00\x63\x63\x63\x64\x00\x00\x50\x90\x00\x00\x51\xc6\x00\x00\x00\x00\x63\x62\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbd\x00\x00\x63\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x61\x63\x5d\x63\x5f\x00\x00\x63\x65\x00\x00\x00\x00\x00\x00\x63\x66\x63\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa1\x00\x00\x63\x68\x63\x67\x53\x51\x00\x00\x00\x00\x00\x00\x63\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x63\x6b\x00\x00\x00\x00\x63\x6c\x00\x00\x63\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x43\x00\x00\x63\x6e\x00\x00\x63\x6f\x00\x00\x4b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xa4\x63\x70\x00\x00\x00\x00\x00\x00\x00\x00\x63\x71\x48\x6c\x00\x00\x00\x00\x00\x00\x4b\xa5\x00\x00\x63\x72\x00\x00\x47\x80\x00\x00\x4d\xa5\x63\x73\x00\x00\x00\x00\x4b\xed\x63\x74\x4a\xea\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc0\x00\x00\x00\x00\x63\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x54\x00\x00\x63\x7a\x00\x00\x00\x00\x63\x78\x00\x00\x52\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x79\x63\x77\x4a\xa7", /* 8880 */ "\x00\x00\x63\x76\x63\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x6a\x00\x00\x00\x00\x4a\x54\x00\x00\x63\x82\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7e\x00\x00\x00\x00\x00\x00\x4a\x57\x63\x7d\x00\x00\x63\x80\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7c\x00\x00\x00\x00\x00\x00\x63\x81\x00\x00\x63\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8d\x00\x00\x00\x00\x63\x7f\x00\x00\x54\xc5\x63\x86\x00\x00\x00\x00\x4f\x5a\x63\x85\x00\x00\x54\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x84\x00\x00\x49\xbd\x4f\x60\x63\x87\x63\x88\x48\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x63\x89\x46\xf8\x00\x00\x00\x00\x63\x8a\x63\x8b\x00\x00\x00\x00\x49\x6a\x63\x8c\x00\x00\x4f\x8a\x00\x00\x54\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x92\x4f\xa8\x53\x49\x63\x90\x00\x00\x00\x00\x4f\x43\x63\x8d\x00\x00\x00\x00\x63\x8f\x45\x7b\x4c\x8d\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x63\x8e\x00\x00\x63\x93\x00\x00\x00\x00\x4b\x51\x00\x00\x00\x00\x63\x97\x00\x00\x63\x94\x00\x00\x00\x00\x00\x00\x54\x5e\x00\x00\x51\xba\x63\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xda\x63\x96\x63\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x63\x95\x63\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9e\x00\x00\x63\xa0\x00\x00\x00\x00\x63\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9c\x00\x00\x63\x9f\x50\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa2\x63\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa4\x54\xaf\x63\xa3\x00\x00\x00\x00\x00\x00\x63\xa7\x00\x00\x63\xa5\x00\x00\x00\x00\x00\x00\x63\xa6\x00\x00\x00\x00\x63\xa8\x00\x00\x63\xa9\x00\x00\x00\x00\x4d\xdf\x00\x00\x63\xaa\x00\x00\x00\x00\x63\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xac\x45\x58", /* 8980 */ "\x00\x00\x46\x55\x00\x00\x63\xad\x00\x00\x00\x00\x4d\xf2\x4b\xfa\x63\xae\x00\x00\x63\xaf\x45\xbb\x00\x00\x00\x00\x00\x00\x46\xfb\x00\x00\x00\x00\x00\x00\x63\xb0\x00\x00\x00\x00\x4a\x50\x53\xeb\x63\xb1\x00\x00\x4a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb4\x4e\xd0\x00\x00\x63\xb3\x48\x85\x00\x00\x63\xb5\x00\x00\x00\x00\x63\xb6\x00\x00\x00\x00\x63\xb7\x48\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb8\x00\x00\x00\x00\x63\xba\x00\x00\x63\xb9\x63\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbc\x00\x00\x53\x60\x63\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xb7\x00\x00\x00\x00\x4c\xd1\x63\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbf\x00\x00\x00\x00\x00\x00\x63\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a00 */ "\x47\x9a\x00\x00\x4f\xc4\x63\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc9\x00\x00\x50\xf2\x00\x00\x63\xc4\x00\x00\x49\xd2\x00\x00\x63\xc3\x00\x00\x63\xc5\x4b\xc8\x00\x00\x00\x00\x63\xc2\x4a\xb6\x47\x94\x00\x00\x00\x00\x63\xc6\x00\x00\x63\xc7\x00\x00\x50\xef\x00\x00\x00\x00\x00\x00\x54\xcc\x00\x00\x63\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x71\x00\x00\x00\x00\x45\xe2\x00\x00\x00\x00\x00\x00\x4a\x9a\x00\x00\x4b\xad\x4c\xdf\x00\x00\x63\xc9\x63\xcb\x00\x00\x00\x00\x4d\x68\x4f\x66\x49\xba\x00\x00\x00\x00\x00\x00\x00\x00\x63\xca\x00\x00\x00\x00\x00\x00\x00\x00\x63\xce\x00\x00\x63\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x76\x55\xe3\x63\xcd\x00\x00\x4f\x88\x49\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcc\x00\x00\x00\x00\x4e\x90\x00\x00\x51\xc1\x00\x00\x63\xd3\x54\xfb\x00\x00\x00\x00\x49\x48\x00\x00\x00\x00\x4c\xb0\x00\x00\x50\xd3\x63\xd2\x63\xd1\x51\x8e\x00\x00\x4b\x5f\x47\x50\x4d\x8d\x4d\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd4\x00\x00\x00\x00\x63\xd0\x00\x00\x00\x00\x00\x00", /* 8a80 */ "\x00\x00\x00\x00\x63\xd6\x00\x00\x63\xd7\x63\xd5\x00\x00\x4e\xb4\x00\x00\x4d\x8c\x00\x00\x00\x00\x4b\x76\x4a\x7e\x00\x00\x00\x00\x00\x00\x63\xda\x00\x00\x4f\xa0\x00\x00\x4f\xa2\x00\x00\x00\x00\x4a\xcb\x00\x00\x63\xdd\x00\x00\x00\x00\x00\x00\x48\xe7\x00\x00\x46\xfd\x63\xd9\x00\x00\x63\xde\x4d\x91\x63\xdb\x63\xdc\x63\xdf\x63\xd8\x00\x00\x00\x00\x00\x00\x49\x52\x4a\x4f\x00\x00\x00\x00\x4b\x83\x00\x00\x49\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf2\x00\x00\x00\x00\x52\x65\x00\x00\x63\xe1\x46\x89\x00\x00\x00\x00\x63\xe3\x00\x00\x50\xb2\x00\x00\x00\x00\x49\x63\x00\x00\x00\x00\x00\x00\x4a\xe8\x63\xe0\x63\xe2\x00\x00\x4b\xc1\x00\x00\x00\x00\x51\x81\x00\x00\x00\x00\x00\x00\x48\xf3\x00\x00\x00\x00\x00\x00\x63\xe4\x63\xf2\x55\x70\x00\x00\x63\xf1\x63\xed\x63\xea\x63\xec\x63\xeb\x00\x00\x63\xe7\x00\x00\x52\x46\x63\xe6\x00\x00\x00\x00\x00\x00\x4e\x96\x00\x00\x4e\x9c\x4f\x9c\x00\x00\x00\x00\x63\xe8\x00\x00\x63\xe5\x00\x00\x00\x00\x63\xef\x63\xf0\x47\xe2\x00\x00\x55\xab\x00\x00\x00\x00\x00\x00\x4f\xe1\x00\x00", /* 8b00 */ "\x4f\x4d\x54\xe5\x55\x73\x00\x00\x4f\xe2\x00\x00\x00\x00\x63\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf3\x00\x00\x52\xf9\x00\x00\x63\xf7\x00\x00\x00\x00\x00\x00\x63\xe9\x00\x00\x63\xf6\x63\xf8\x00\x00\x49\x7c\x63\xf5\x4a\x6e\x00\x00\x4d\xbb\x00\x00\x00\x00\x63\xf9\x4d\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x63\xfd\x00\x00\x53\x81\x00\x00\x00\x00\x63\xfe\x55\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x87\x00\x00\x00\x00\x00\x00\x00\x00\x64\x41\x00\x00\x00\x00\x63\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x46\x00\x00\x00\x00\x64\x42\x00\x00\x64\x44\x64\x43\x00\x00\x00\x00\x00\x00\x64\x45\x00\x00\x00\x00\x64\x47\x00\x00\x4a\x75\x00\x00\x64\x49\x64\x48\x4e\x4f\x00\x00\x00\x00\x64\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x64\x4b\x64\x4d\x00\x00\x00\x00\x64\x4e\x47\x81\x61\x76\x4b\x7b\x00\x00\x64\x4a\x00\x00\x00\x00\x49\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x4f\x00\x00\x64\x50", /* 8b80 */ "\x64\x51\x00\x00\x00\x00\x51\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x88\x00\x00\x64\x52\x00\x00\x64\x53\x00\x00\x53\xfe\x00\x00\x64\x55\x64\x56\x00\x00\x00\x00\x64\x57\x00\x00\x00\x00\x64\x54\x64\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x81\x00\x00\x00\x00\x64\x59\x00\x00\x00\x00\x00\x00\x00\x00\x64\x5b\x00\x00\x64\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x99\x00\x00\x64\x5c\x00\x00\x46\x48\x00\x00\x64\x5d\x00\x00\x64\x5e\x00\x00\x64\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x60\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x94\x64\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x68\x53\x55\x64\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x63\x55\x93\x64\x64\x00\x00\x64\x65\x00\x00\x00\x00\x00\x00", /* 8c80 */ "\x00\x00\x00\x00\x64\x66\x00\x00\x00\x00\x64\x68\x00\x00\x00\x00\x00\x00\x64\x67\x64\x69\x00\x00\x50\x64\x64\x6a\x64\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x6d\x00\x00\x00\x00\x00\x00\x64\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x49\xea\x46\xb6\x00\x00\x49\xc8\x49\xaf\x4a\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa3\x4a\xeb\x4a\x5d\x64\x70\x49\xa1\x4b\xd2\x64\x6f\x64\x71\x4c\x62\x4d\xef\x00\x00\x64\x73\x64\x74\x48\x7f\x00\x00\x64\x76\x49\x74\x4a\xf4\x00\x00\x00\x00\x46\xd0\x50\x7b\x64\x72\x00\x00\x48\x72\x46\x41\x64\x75\x55\xf8\x4b\x4d\x50\x67\x00\x00\x00\x00\x46\x50\x64\x77\x00\x00\x4f\xfd\x00\x00\x00\x00\x64\x79\x64\x78\x00\x00\x00\x00\x53\x9e\x00\x00\x50\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7b\x4d\xee\x4f\x94\x00\x00\x4a\xad\x00\x00\x4f\x4f\x00\x00\x47\xe5\x64\x7a\x55\x66\x00\x00\x4f\xa7\x00\x00\x00\x00\x00\x00\x46\xec\x00\x00\x00\x00\x52\xc1\x00\x00\x00\x00\x64\x7c\x00\x00\x00\x00\x00\x00\x64\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7f\x64\x80\x4e\x8f\x64\x7e\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x53\x5a\x55\x74\x00\x00\x64\x81\x4c\x7c\x00\x00\x64\x82\x55\x84\x00\x00\x64\x84\x00\x00\x64\x83\x64\x86\x00\x00\x64\x85\x64\x87\x64\x88\x00\x00\x64\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xf9\x00\x00\x51\x51\x64\x8a\x00\x00\x00\x00\x00\x00\x53\xcc\x00\x00\x64\x8b\x00\x00\x00\x00\x4a\xaa\x64\x8c\x00\x00\x51\xc9\x50\xee\x00\x00\x64\x8d\x48\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d80 */ "\x00\x00\x64\x8f\x00\x00\x00\x00\x00\x00\x4a\x78\x00\x00\x00\x00\x00\x00\x00\x00\x46\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xed\x00\x00\x00\x00\x00\x00\x00\x00\x55\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x92\x00\x00\x00\x00\x00\x00\x64\x91\x00\x00\x00\x00\x00\x00\x64\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x98\x64\x96\x00\x00\x00\x00\x64\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x95\x00\x00\x00\x00\x00\x00\x64\x94\x64\x97\x00\x00\x4d\xc2\x00\x00\x64\x9b\x00\x00\x4c\xcd\x00\x00\x64\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x55\xcb\x00\x00\x64\x99\x64\x9a\x00\x00\x00\x00\x00\x00\x47\x84\x00\x00\x00\x00\x00\x00\x50\xb4\x00\x00\x50\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x9d\x00\x00\x00\x00\x64\x9f", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x9e\x64\xa0\x4c\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7c\x64\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa2\x64\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa7\x00\x00\x00\x00\x00\x00\x64\xa8\x64\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa5\x00\x00\x55\xa7\x00\x00\x00\x00\x64\xaa\x64\xae\x64\xab\x64\xa9\x00\x00\x64\xac\x00\x00\x00\x00\x00\x00\x64\xad\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb2\x00\x00\x00\x00\x00\x00\x64\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x68\x64\xb1\x00\x00\x00\x00\x64\xb3\x64\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb5\x00\x00\x52\xf6\x00\x00\x64\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb7\x00\x00\x00\x00\x00\x00", /* 8e80 */ "\x00\x00\x64\xb8\x00\x00\x00\x00\x64\xba\x64\xb9\x00\x00\x64\xb6\x00\x00\x00\x00\x64\xbc\x64\xbb\x00\x00\x4c\xa1\x00\x00\x00\x00\x00\x00\x64\xbe\x00\x00\x64\xbd\x64\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc2\x47\x9c\x50\x44\x00\x00\x00\x00\x53\x53\x53\x7a\x64\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc4\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x00\x00\x64\xc6\x64\xc5\x00\x00\x64\xc7\x00\x00\x46\x53\x64\xc8\x4d\xaa\x48\x97\x00\x00\x64\xc9\x00\x00\x00\x00\x4e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xca\x00\x00\x00\x00\x00\x00\x4c\xb1\x00\x00\x00\x00\x47\x52\x64\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa6\x00\x00\x00\x00\x64\xcd\x64\xcc\x48\xa6\x64\xcf\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x4a\x5a\x00\x00\x64\xd2\x00\x00\x00\x00\x00\x00\x4d\x6e\x64\xd0\x00\x00\x64\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xd4\x64\xd5\x4a\x68\x64\xd3\x00\x00\x00\x00\x00\x00\x64\xd7\x00\x00\x51\x5b\x64\xd6\x47\x87\x00\x00\x64\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xd9\x00\x00\x00\x00\x4e\xf4\x48\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa6\x00\x00\x00\x00\x00\x00\x64\xda\x00\x00\x00\x00\x00\x00\x00\x00\x46\x93\x64\xdc\x00\x00\x64\xdb\x00\x00\x00\x00\x64\xdf\x50\x6c\x00\x00\x00\x00\x64\xde\x00\x00\x50\xfe\x64\xdd\x64\xe1\x00\x00\x00\x00\x64\xe0\x00\x00\x00\x00\x64\xe2\x54\xee\x64\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe5\x00\x00\x00\x00\x50\xa9\x00\x00\x52\xe1\x64\xe6\x64\xe7\x64\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5e\x64\xe9\x00\x00\x4d\x74\x64\xea\x00\x00\x00\x00\x00\x00\x64\xeb\x00\x00\x00\x00\x00\x00\x64\xed\x64\xec\x00\x00\x00\x00\x00\x00\x00\x00\x64\xee\x61\x49\x64\xef\x47\xdf\x52\xe5\x48\x45\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf0\x00\x00\x00\x00\x45\xd5\x47\xf5\x48\x41\x00\x00\x00\x00\x54\x7e\x00\x00\x00\x00\x55\xdf\x00\x00\x49\xcd\x50\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xa9\x00\x00\x00\x00\x46\x73\x00\x00\x00\x00\x48\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf4\x00\x00\x00\x00\x64\xf3\x53\x5d\x00\x00\x00\x00\x64\xf6\x4e\x9e\x49\xef\x00\x00\x53\xdf\x00\x00\x64\xf5\x4a\x9c\x00\x00\x00\x00\x00\x00\x64\xf7\x00\x00\x00\x00\x4e\x58\x64\xfa\x64\xf9\x54\xa9\x00\x00\x00\x00\x49\xd1\x00\x00\x00\x00", /* 9000 */ "\x4b\x49\x47\x44\x00\x00\x4c\x72\x00\x00\x64\xf8\x4b\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x65\x44\x00\x00\x65\x41\x64\xfd\x4b\xda\x50\xbb\x64\xfb\x00\x00\x51\x5e\x48\xf0\x64\xfc\x65\x43\x4f\xb3\x00\x00\x4f\xca\x45\xe3\x00\x00\x00\x00\x53\xb1\x65\x42\x48\xcd\x45\xb8\x64\xfe\x4d\xce\x47\x54\x00\x00\x00\x00\x00\x00\x65\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x77\x00\x00\x00\x00\x4a\xd3\x46\x69\x00\x00\x00\x00\x54\x85\x65\x46\x00\x00\x4a\xd6\x65\x47\x00\x00\x00\x00\x55\xac\x00\x00\x65\x4e\x00\x00\x00\x00\x54\xf8\x4c\xf7\x00\x00\x00\x00\x4c\x6d\x00\x00\x49\xec\x00\x00\x65\x4d\x4a\x8b\x46\xab\x00\x00\x50\x5d\x48\x8d\x65\x48\x65\x4a\x65\x4b\x65\x4c\x45\x50\x46\xa4\x49\xbc\x65\x4f\x00\x00\x65\x50\x52\xf3\x00\x00\x00\x00\x54\x55\x00\x00\x65\x51\x00\x00\x46\xe3\x54\x4c\x00\x00\x4e\xc2\x00\x00\x68\x82\x00\x00\x65\x53\x65\x52\x49\xcc\x00\x00\x00\x00\x00\x00\x51\x43\x54\x58\x65\x54\x00\x00\x00\x00\x65\x57\x00\x00\x00\x00\x52\x6e\x65\x55\x53\x5b\x48\x5d\x00\x00\x4c\xda\x00\x00\x52\x6b\x65\x59\x00\x00\x4c\xc4", /* 9080 */ "\x65\x5b\x53\x7b\x65\x58\x60\x45\x4d\xa9\x00\x00\x00\x00\x51\x86\x00\x00\x65\x5a\x50\xea\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5c\x00\x00\x4c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x46\x00\x00\x00\x00\x46\xc5\x00\x00\x51\xa8\x00\x00\x4e\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5e\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x65\x60\x00\x00\x00\x00\x4d\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x52\x00\x00\x00\x00\x00\x00\x45\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x63\x00\x00\x00\x00\x65\x64\x00\x00\x00\x00\x49\x9e\x65\x61\x00\x00\x65\x62\x00\x00\x00\x00\x00\x00\x45\x95\x00\x00\x00\x00\x00\x00\x00\x00\x51\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb7\x00\x00\x49\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x4f\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x65\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x68\x00\x00\x00\x00\x65\x67\x00\x00\x00\x00\x00\x00\x65\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x54\x00\x00\x00\x00\x65\x6c\x00\x00\x65\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x73\x65\x6d\x55\x48\x52\xbb\x47\xf3\x55\x91\x00\x00\x00\x00\x00\x00\x47\x58\x00\x00\x4e\x7c\x00\x00\x65\x6e\x00\x00\x65\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xae\x65\x70\x00\x00\x65\x71\x00\x00\x00\x00\x00\x00\x65\x72\x50\xbd\x00\x00\x51\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x74\x65\x73\x00\x00\x4d\x86\x00\x00\x51\xeb\x48\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9180 */ "\x00\x00\x00\x00\x65\x77\x00\x00\x00\x00\x00\x00\x00\x00\x51\xa9\x00\x00\x65\x76\x00\x00\x65\x75\x00\x00\x51\x6f\x00\x00\x00\x00\x51\x70\x00\x00\x53\x78\x00\x00\x00\x00\x00\x00\x00\x00\x51\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x78\x00\x00\x50\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7b\x65\x79\x50\x7f\x00\x00\x00\x00\x65\x7a\x00\x00\x51\xfa\x00\x00\x00\x00\x65\x7d\x65\x7c\x00\x00\x00\x00\x50\xc2\x00\x00\x65\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7f\x65\x80\x00\x00\x00\x00\x00\x00\x00\x00\x53\x46\x53\xbf\x4d\x79\x52\x52\x00\x00\x65\x81\x47\x6c\x45\xa3\x45\x69\x47\xb5\x65\x82\x45\x86\x00\x00\x00\x00\x00\x00\x00\x00\x65\x87\x65\x85\x4f\xf4\x00\x00\x65\x83\x65\x84\x4a\xcc\x49\x88\x65\x86\x65\x88\x00\x00\x65\x89\x00\x00\x4c\xe3\x65\x8d\x65\x8f\x53\x4a\x4b\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8a\x65\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8b\x65\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd0\x00\x00\x00\x00\x65\x92", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x90\x00\x00\x00\x00\x00\x00\x65\x95\x00\x00\x00\x00\x4e\x63\x53\x8f\x00\x00\x65\x93\x52\x69\x00\x00\x00\x00\x65\x94\x65\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x98\x00\x00\x00\x00\x65\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xae\x00\x00\x00\x00\x55\xbf\x00\x00\x65\xa6\x65\x9b\x00\x00\x65\x9f\x00\x00\x00\x00\x65\xa4\x65\x9e\x00\x00\x00\x00\x00\x00\x45\xd7\x65\x9a\x00\x00\x00\x00\x65\xa0\x65\x9c\x00\x00\x65\xa7\x00\x00\x00\x00\x65\xa1\x00\x00\x65\xa2\x65\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x99\x00\x00\x65\xa3\x65\xa9\x49\xd4\x00\x00\x00\x00\x53\x93\x00\x00\x00\x00\x00\x00\x4e\xa8\x00\x00\x65\x9d\x00\x00\x4f\xb4\x65\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xac\x65\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x83\x00\x00", /* 9280 */ "\x47\x8c\x00\x00\x00\x00\x4c\xe2\x00\x00\x48\xc0\x00\x00\x00\x00\x52\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xad\x00\x00\x65\xaf\x00\x00\x65\xb1\x65\xae\x00\x00\x4d\xdc\x00\x00\x4e\x80\x65\xb0\x65\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbb\x00\x00\x65\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb3\x65\xb7\x00\x00\x54\x49\x65\xbd\x00\x00\x65\xb9\x00\x00\x65\xb5\x00\x00\x65\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbc\x00\x00\x00\x00\x00\x00\x52\xc0\x00\x00\x00\x00\x65\xb4\x00\x00\x65\xb2\x53\x63\x00\x00\x00\x00\x4d\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbe\x48\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe7\x53\x94\x65\xc2\x65\xc5\x46\xa1\x00\x00\x00\x00\x65\xc9", /* 9300 */ "\x00\x00\x00\x00\x65\xce\x00\x00\x00\x00\x00\x00\x55\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc0\x53\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xef\x65\xc7\x65\xcb\x00\x00\x00\x00\x65\xcc\x65\xc8\x00\x00\x4e\x57\x65\xc3\x65\xca\x65\xcd\x00\x00\x65\xc1\x4b\x8e\x00\x00\x53\xf0\x00\x00\x00\x00\x52\x57\x4f\xe6\x00\x00\x52\x83\x50\xb1\x00\x00\x00\x00\x48\x86\x00\x00\x00\x00\x65\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x65\xbe\x65\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc4\x00\x00\x00\x00\x00\x00\x51\xf7\x00\x00\x00\x00\x4b\x48\x00\x00\x55\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xaa\x00\x00\x65\xd4\x65\xd5\x00\x00\x00\x00\x00\x00\x48\xc7\x52\xad\x00\x00\x00\x00\x00\x00\x65\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x70\x00\x00\x65\xd3\x00\x00\x65\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd2\x00\x00\x53\xbd\x00\x00", /* 9380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xda\x00\x00\x4d\x70\x51\x97\x00\x00\x00\x00\x54\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd8\x00\x00\x00\x00\x54\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6e\x65\xd9\x4c\x89\x00\x00\x65\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe2\x00\x00\x00\x00\x65\xdd\x00\x00\x65\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe5\x50\x41\x00\x00\x00\x00\x00\x00\x00\x00\x65\xdc\x65\xde\x65\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe3\x65\xe4\x00\x00\x00\x00\x4a\x8d\x00\x00\x00\x00\x65\xe6\x65\xe0\x00\x00\x00\x00\x65\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x65\xec\x00\x00\x00\x00\x00\x00\x65\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xcd\x00\x00\x00\x00\x65\xea\x65\xe9\x00\x00\x00\x00\x00\x00\x4c\xc8\x52\xcf\x65\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf0\x00\x00\x00\x00\x00\x00\x51\x56\x65\xee\x00\x00\x53\x88\x00\x00\x65\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf2\x00\x00\x00\x00\x65\xf5\x65\xf4\x00\x00\x00\x00\x65\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4e\x65\xf3\x52\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf8\x65\xf7\x00\x00\x00\x00\x65\xfb\x00\x00\x65\xf9\x00\x00\x65\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x65\xfd\x00\x00\x66\x41\x00\x00\x00\x00\x00\x00\x00\x00\x66\x44\x66\x43\x66\x45\x66\x42", /* 9480 */ "\x00\x00\x66\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9580 */ "\x46\xaa\x00\x00\x66\x47\x51\x9c\x00\x00\x00\x00\x00\x00\x66\x48\x00\x00\x4b\x7d\x66\x49\x46\xcd\x00\x00\x00\x00\x00\x00\x54\x5f\x00\x00\x4d\xd9\x66\x4a\x45\xc1\x66\x4b\x00\x00\x66\x4c\x00\x00\x66\x4d\x66\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4f\x00\x00\x45\xc5\x4a\xe9\x54\x9b\x51\x72\x00\x00\x66\x51\x66\x50\x00\x00\x00\x00\x00\x00\x00\x00\x66\x52\x00\x00\x00\x00\x00\x00\x00\x00\x51\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x55\x00\x00\x66\x54\x66\x53\x00\x00\x66\x56\x00\x00\x00\x00\x00\x00\x00\x00\x66\x59\x00\x00\x00\x00\x00\x00\x53\x64\x00\x00\x00\x00\x66\x57\x00\x00\x66\x5b\x66\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x5d\x66\x5c\x66\x5e\x00\x00\x4b\xcc\x00\x00\x00\x00\x00\x00\x66\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x66\x60\x66\x62\x00\x00\x00\x00\x66\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x86\x00\x00\x00\x00\x00\x00\x00\x00\x66\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x64\x00\x00\x45\x91\x00\x00\x00\x00\x00\x00\x66\x65\x66\x66\x00\x00\x00\x00\x47\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xef\x00\x00\x00\x00\x00\x00\x46\xae\x4f\xe8\x00\x00\x66\x67\x00\x00\x4b\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x6a\x66\x69\x49\xe5\x00\x00\x66\x68\x48\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x57\x66\x6b\x66\x6c\x52\x72\x66\x6d\x00\x00\x00\x00\x49\xd8\x4c\x84\x49\x6d\x4f\xfe\x66\x6e\x00\x00\x00\x00\x00\x00\x55\xc3\x00\x00\x66\x71\x00\x00\x00\x00\x00\x00\x4c\xd2\x00\x00\x66\x70\x4e\x61\x00\x00\x50\xc7\x4a\xb7\x66\x6f\x49\x61\x00\x00\x4a\x6c\x00\x00\x00\x00\x47\xbf\x00\x00\x00\x00", /* 9680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb9\x46\x5d\x00\x00\x4c\xe5\x00\x00\x4a\x93\x66\x73\x00\x00\x66\x72\x49\xa9\x4e\x76\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5a\x66\x76\x00\x00\x66\x77\x66\x75\x53\xc3\x00\x00\x47\x97\x4b\xf9\x66\x79\x00\x00\x00\x00\x4e\xae\x00\x00\x00\x00\x4c\xe0\x00\x00\x00\x00\x00\x00\x66\x7a\x65\x56\x00\x00\x66\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x66\x7f\x66\x7e\x66\x7c\x66\x7d\x00\x00\x66\x80\x00\x00\x66\x81\x55\x45\x66\x82\x66\x83\x00\x00\x4f\xda\x4e\xd5\x00\x00\x00\x00\x00\x00\x4f\x64\x51\xa4\x00\x00\x00\x00\x45\x70\x47\x45\x47\xa0\x4c\x4d\x00\x00\x54\x77\x00\x00\x66\x85\x52\xb7\x52\x5b\x66\x84\x00\x00\x00\x00\x4a\x8a\x00\x00\x00\x00\x00\x00\x66\x86\x63\x54\x00\x00\x00\x00\x66\x88\x00\x00\x51\xfb\x66\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x97\x49\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x49\xdd\x00\x00\x49\xbb\x52\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x90\x00\x00\x4a\xbc\x00\x00\x00\x00\x00\x00\x50\x69\x4b\xd6\x00\x00\x66\x89\x00\x00\x45\x82\x00\x00\x00\x00\x00\x00\x00\x00", /* 9700 */ "\x47\xfb\x00\x00\x00\x00\x00\x00\x66\x8a\x00\x00\x66\x8b\x4d\xde\x66\x8c\x00\x00\x4f\x4b\x00\x00\x00\x00\x66\x8e\x66\x90\x66\x92\x00\x00\x66\x91\x00\x00\x66\x8f\x00\x00\x00\x00\x66\x93\x00\x00\x00\x00\x66\x8d\x00\x00\x00\x00\x4d\xe8\x00\x00\x4e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x94\x00\x00\x00\x00\x4e\x48\x00\x00\x00\x00\x66\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x96\x00\x00\x4b\xc6\x66\x97\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcf\x66\x98\x00\x00\x66\x99\x00\x00\x66\x9a\x66\x9b\x00\x00\x00\x00\x00\x00\x66\xa0\x66\x9e\x66\x9d\x00\x00\x66\x9c\x00\x00\x66\x9f\x66\xa1\x00\x00\x00\x00\x00\x00\x66\xa2\x00\x00\x66\xa3\x00\x00\x66\xa4\x46\x4c\x00\x00\x00\x00\x66\xa5\x48\xc3\x00\x00\x00\x00\x46\x44\x00\x00\x00\x00\x66\xa6\x00\x00\x48\xe1\x00\x00\x66\xa7\x68\x52\x46\x91\x00\x00\x66\xa8\x00\x00\x66\xa9\x00\x00\x66\xaa\x4a\xa3\x00\x00\x53\xb5\x00\x00\x66\xab\x00\x00\x00\x00\x00\x00\x52\xce\x00\x00\x00\x00\x4d\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x66\xac\x66\xb0\x00\x00\x66\xae\x00\x00\x00\x00\x00\x00", /* 9780 */ "\x00\x00\x66\xaf\x00\x00\x00\x00\x54\x45\x66\xad\x52\x77\x00\x00\x00\x00\x00\x00\x00\x00\x66\xb1\x00\x00\x50\x4c\x00\x00\x66\xb2\x66\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe7\x00\x00\x00\x00\x00\x00\x66\xb4\x00\x00\x00\x00\x00\x00\x51\xed\x00\x00\x00\x00\x66\xb7\x00\x00\x00\x00\x66\xb6\x00\x00\x66\xb5\x00\x00\x00\x00\x63\xfc\x00\x00\x54\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xb8\x66\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xba\x00\x00\x00\x00\x66\xbb\x00\x00\x66\xbc\x00\x00\x00\x00\x66\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xbf\x4f\xdf\x00\x00\x00\x00\x00\x00\x66\xc0\x48\x4d\x00\x00\x66\xc2\x52\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x55\x77\x00\x00\x00\x00\x00\x00\x4a\x5c", /* 9800 */ "\x00\x00\x4c\xd9\x4d\x5b\x49\x46\x00\x00\x4a\x97\x47\xb2\x00\x00\x46\xb0\x00\x00\x00\x00\x00\x00\x54\x56\x00\x00\x00\x00\x66\xc3\x4d\x4a\x53\x9d\x55\x57\x51\x7a\x00\x00\x00\x00\x00\x00\x55\xe4\x4a\xcd\x00\x00\x66\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc6\x00\x00\x00\x00\x66\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb3\x47\xeb\x00\x00\x00\x00\x4e\xb3\x00\x00\x00\x00\x00\x00\x55\x76\x00\x00\x00\x00\x66\xc7\x50\xfb\x66\xc8\x00\x00\x53\xab\x4a\x7a\x66\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x66\xca\x47\xfe\x47\xf1\x54\x8e\x66\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x48\xb8\x4a\xe5\x00\x00\x66\xcb\x4c\x57\x00\x00\x55\xc1\x55\xc1\x00\x00\x00\x00\x46\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xcc\x00\x00\x4e\xee\x00\x00\x00\x00\x00\x00\x66\xcd\x00\x00\x00\x00\x00\x00\x66\xce\x66\xcf\x66\xd0\x00\x00\x66\xd2\x66\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\xe7\x00\x00\x66\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd4\x00\x00\x66\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd8\x66\xd7\x00\x00\x66\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x8a\x66\xda\x00\x00\x00\x00\x46\xb8\x00\x00\x00\x00\x53\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdc\x00\x00\x66\xde\x00\x00\x66\xdb\x5c\xca\x46\xb5\x00\x00\x00\x00\x4b\xa3\x00\x00\x52\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x8f\x4d\x49\x49\x57\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x66\xe0\x00\x00\x50\xbf\x00\x00\x00\x00\x00\x00\x54\xbc\x49\x79\x00\x00\x50\xa7\x00\x00\x00\x00\x00\x00\x55\xb3\x00\x00\x66\xe2\x55\x4b\x66\xe3\x00\x00\x00\x00\x00\x00\x66\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe1\x66\xe8\x00\x00\x66\xea\x66\xe7\x00\x00\x00\x00\x66\xe9\x00\x00\x00\x00\x66\xe5\x48\x62\x00\x00\x00\x00\x00\x00\x66\xeb\x00\x00\x66\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xed\x66\xee\x00\x00\x00\x00\x00\x00\x66\xef\x00\x00\x00\x00\x66\xf1\x00\x00\x00\x00\x00\x00\x66\xf0\x00\x00\x66\xf3\x66\xf5\x00\x00\x00\x00\x00\x00\x66\xf2\x66\xf4\x52\xe8\x00\x00\x00\x00\x66\xf6\x00\x00\x51\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xbe\x66\xf7\x66\xf8\x46\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfa\x00\x00\x00\x00\x4b\x85\x00\x00\x00\x00\x00\x00\x46\x64\x66\xfb\x66\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x52\xdf\x50\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe5\x00\x00\x00\x00\x4d\xe5\x49\xac\x4c\xfe\x00\x00\x4f\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xf5\x67\x44\x49\xfc\x00\x00\x00\x00\x53\xbe\x00\x00\x00\x00\x67\x43\x00\x00\x00\x00\x67\x41\x00\x00\x67\x42\x00\x00\x66\xfe\x00\x00\x00\x00\x67\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x45\x67\x46\x00\x00\x00\x00\x67\x48\x67\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4b\x00\x00\x00\x00\x67\x4a\x00\x00\x00\x00\x00\x00\x4c\xc0", /* 9a00 */ "\x00\x00\x67\x4c\x00\x00\x00\x00\x00\x00\x67\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x58\x67\x4d\x00\x00\x00\x00\x4d\xd2\x48\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xda\x00\x00\x00\x00\x67\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x56\x00\x00\x67\x52\x00\x00\x67\x54\x67\x55\x00\x00\x67\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x58\x67\x59\x00\x00\x00\x00\x00\x00\x53\xda\x00\x00\x00\x00\x67\x57\x00\x00\x67\x5b\x00\x00\x00\x00\x4c\xd5\x67\x5a\x00\x00\x00\x00\x00\x00\x67\x5c\x00\x00\x00\x00\x67\x5d\x00\x00\x67\x60\x67\x5f\x00\x00\x00\x00\x00\x00\x67\x5e\x67\x61\x67\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x67\x63\x00\x00\x00\x00\x67\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9c\x00\x00\x00\x00\x00\x00\x67\x65\x00\x00\x00\x00\x00\x00\x67\x66\x00\x00\x00\x00\x00\x00\x52\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x67\x00\x00\x67\x6a\x00\x00\x67\x68\x67\x69\x00\x00\x00\x00\x00\x00\x45\x71\x67\x6b\x00\x00\x00\x00\x67\x6c\x00\x00\x67\x6d\x67\x6e\x00\x00\x00\x00\x67\x6f\x67\x70\x00\x00\x00\x00\x67\x71\x00\x00\x00\x00\x00\x00\x4c\xf6\x67\x73\x00\x00\x50\x9d\x67\x74\x67\x72\x00\x00\x67\x76\x00\x00\x00\x00\x67\x75\x00\x00\x00\x00\x67\x77\x00\x00\x00\x00\x00\x00\x67\x78\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7a\x00\x00\x67\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7c\x00\x00\x00\x00\x67\x7d\x67\x7e\x00\x00\x67\x7f\x00\x00\x67\x80\x67\x81\x67\x82\x67\x83\x00\x00\x00\x00\x00\x00\x67\x84\x67\x85\x00\x00\x67\x86\x67\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x88\x4a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x52\xcb\x50\xa8\x67\x8a\x67\x89\x4d\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x8b\x67\x8c\x53\x89\x00\x00\x67\x8d\x00\x00\x00\x00\x4d\xe2\x00\x00\x00\x00\x00\x00\x67\x8e\x00\x00\x48\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf4\x00\x00\x00\x00\x67\x91\x00\x00\x67\x90\x67\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b80 */ "\x00\x00\x00\x00\x00\x00\x67\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x8e\x67\x93\x00\x00\x67\x95\x52\x8d\x67\x92\x00\x00\x00\x00\x67\x96\x67\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x98\x67\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9a\x00\x00\x55\xce\x4e\xb7\x00\x00\x53\x91\x4c\xe9\x00\x00\x00\x00\x67\x9b\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa0\x00\x00\x67\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa1\x00\x00\x00\x00\x4f\xc6\x67\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa2\x00\x00\x67\xa3\x67\xa4\x00\x00\x67\xa8\x00\x00\x4f\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x50\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa9\x67\xa6\x67\xa5\x67\xa7\x00\x00\x00\x00\x00\x00\x4d\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x51\x67\xab\x67\xac\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c00 */ "\x67\xb1\x00\x00\x00\x00\x00\x00\x67\xad\x00\x00\x67\xb5\x00\x00\x67\xb6\x67\xb2\x67\xb8\x00\x00\x67\xb4\x55\x71\x00\x00\x00\x00\x52\x93\x00\x00\x67\xb7\x67\xb3\x67\xb0\x67\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbc\x00\x00\x00\x00\x67\xbb\x67\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6e\x67\xb9\x55\xc8\x67\xbd\x00\x00\x67\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd5\x51\xf0\x54\xab\x00\x00\x00\x00\x67\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc0\x67\xbe\x55\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4c\x00\x00\x00\x00\x67\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc5\x00\x00\x67\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x79\x00\x00\x67\xc8\x00\x00\x4d\x95\x00\x00\x67\xc7\x67\xc9\x00\x00\x00\x00\x00\x00\x67\xca\x00\x00\x00\x00\x4e\xa6\x4b\x70\x00\x00\x54\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d00 */ "\x00\x00\x00\x00\x00\x00\x67\xcc\x00\x00\x00\x00\x67\xcd\x51\xa1\x54\xfc\x67\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x54\x64\x00\x00\x00\x00\x00\x00\x67\xd4\x00\x00\x00\x00\x67\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc3\x00\x00\x00\x00\x00\x00\x67\xd2\x00\x00\x00\x00\x00\x00\x67\xd1\x00\x00\x00\x00\x67\xcf\x00\x00\x4c\x54\x00\x00\x67\xce\x50\xba\x67\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd6\x00\x00\x00\x00\x67\xd8\x67\xd6\x00\x00\x67\xd5\x00\x00\x00\x00\x67\xd7\x00\x00\x67\xd9\x00\x00\x67\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xdf\x67\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xdd\x00\x00\x00\x00\x4b\xe7\x67\xdb\x67\xdc\x00\x00\x50\xfd\x55\x7e\x00\x00\x00\x00\x67\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe4\x51\x8a\x00\x00\x00\x00\x67\xe5\x67\xe2\x00\x00\x67\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe3\x00\x00\x53\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe9\x00\x00\x67\xea\x00\x00\x00\x00\x00\x00\x50\xe5\x00\x00\x00\x00\x67\xeb\x00\x00\x47\x7a\x00\x00\x00\x00\x00\x00\x67\xef\x00\x00\x67\xf0\x67\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xed\x67\xf3\x00\x00\x67\xec\x00\x00\x67\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf2\x00\x00\x00\x00\x00\x00\x67\xf6\x00\x00\x00\x00\x00\x00\x54\x64\x00\x00\x67\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf9\x00\x00\x67\xfa\x00\x00\x00\x00\x4b\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xf7\x4b\x7a\x50\xaf\x00\x00\x00\x00\x67\xfb\x00\x00\x00\x00", /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xfe\x67\xfc\x67\xfd\x00\x00\x00\x00\x68\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x42\x00\x00\x00\x00\x4c\x7d\x68\x43\x00\x00\x00\x00\x4c\x7d\x68\x44\x00\x00\x46\x97", /* 9e80 */ "\x00\x00\x68\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x46\x00\x00\x00\x00\x68\x47\x68\x48\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4a\x51\xf9\x51\x9e\x00\x00\x68\x49\x00\x00\x4c\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4b\x00\x00\x51\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x4c\x4a\xe0\x00\x00\x00\x00\x53\xb4\x68\x4e\x00\x00\x00\x00\x68\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x61\x55\x5f\x00\x00\x00\x00\x68\x4d\x52\x61\x55\x5f\x48\xa7\x68\x50\x00\x00\x68\x51\x4e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x53\x55\xae\x51\xa7\x68\x54\x68\x55\x68\x56\x46\x79\x00\x00\x68\x57\x00\x00\x00\x00\x00\x00\x5e\x90\x4d\xbc\x00\x00\x51\xdd\x68\x58\x68\x5a\x68\x59\x00\x00\x68\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5c\x00\x00\x00\x00\x68\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x68\x5f\x00\x00\x68\x60\x68\x61\x00\x00\x68\x62\x00\x00\x68\x63\x68\x64\x68\x65\x00\x00\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x66\x68\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xaf\x00\x00\x68\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xcb\x68\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xfd\x00\x00\x00\x00\x68\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x6d\x51\xf5\x00\x00\x00\x00\x68\x6e\x68\x6f\x00\x00\x00\x00\x68\x70\x00\x00\x68\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x73\x68\x74\x68\x75\x4c\x80\x68\x72\x00\x00\x00\x00\x68\x76\x68\x77\x00\x00\x00\x00\x68\x79\x00\x00\x68\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7b\x00\x00\x00\x00\x00\x00\x68\x7c\x68\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x7e\x5f\xf7\x00\x00\x00\x00\x68\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x69\x41\x69\x42\x69\x43\x69\x44\x69\x45\x69\x46\x69\x47\x69\x48\x69\x49\x69\x4a\x69\x4b\x69\x4c\x69\x4d\x69\x4e\x69\x4f\x69\x50\x69\x51\x69\x52\x69\x53\x69\x54\x69\x55\x69\x56\x69\x57\x69\x58\x69\x59\x69\x5a\x69\x5b\x69\x5c\x69\x5d\x69\x5e\x69\x5f\x69\x60\x69\x61\x69\x62\x69\x63\x69\x64\x69\x65\x69\x66\x69\x67\x69\x68\x69\x69\x69\x6a\x69\x6b\x69\x6c\x69\x6d\x69\x6e\x69\x6f\x69\x70\x69\x71\x69\x72\x69\x73\x69\x74\x69\x75\x69\x76\x69\x77\x69\x78\x69\x79\x69\x7a\x69\x7b\x69\x7c\x69\x7d\x69\x7e\x69\x7f\x69\x80\x69\x81\x69\x82\x69\x83\x69\x84\x69\x85\x69\x86\x69\x87\x69\x88\x69\x89\x69\x8a\x69\x8b\x69\x8c\x69\x8d\x69\x8e\x69\x8f\x69\x90\x69\x91\x69\x92\x69\x93\x69\x94\x69\x95\x69\x96\x69\x97\x69\x98\x69\x99\x69\x9a\x69\x9b\x69\x9c\x69\x9d\x69\x9e\x69\x9f\x69\xa0\x69\xa1\x69\xa2\x69\xa3\x69\xa4\x69\xa5\x69\xa6\x69\xa7\x69\xa8\x69\xa9\x69\xaa\x69\xab\x69\xac\x69\xad\x69\xae\x69\xaf\x69\xb0\x69\xb1\x69\xb2\x69\xb3\x69\xb4\x69\xb5\x69\xb6\x69\xb7\x69\xb8\x69\xb9\x69\xba\x69\xbb\x69\xbc\x69\xbd\x69\xbe\x69\xbf\x69\xc0", /* e080 */ "\x69\xc1\x69\xc2\x69\xc3\x69\xc4\x69\xc5\x69\xc6\x69\xc7\x69\xc8\x69\xc9\x69\xca\x69\xcb\x69\xcc\x69\xcd\x69\xce\x69\xcf\x69\xd0\x69\xd1\x69\xd2\x69\xd3\x69\xd4\x69\xd5\x69\xd6\x69\xd7\x69\xd8\x69\xd9\x69\xda\x69\xdb\x69\xdc\x69\xdd\x69\xde\x69\xdf\x69\xe0\x69\xe1\x69\xe2\x69\xe3\x69\xe4\x69\xe5\x69\xe6\x69\xe7\x69\xe8\x69\xe9\x69\xea\x69\xeb\x69\xec\x69\xed\x69\xee\x69\xef\x69\xf0\x69\xf1\x69\xf2\x69\xf3\x69\xf4\x69\xf5\x69\xf6\x69\xf7\x69\xf8\x69\xf9\x69\xfa\x69\xfb\x69\xfc\x69\xfd\x69\xfe\x6a\x41\x6a\x42\x6a\x43\x6a\x44\x6a\x45\x6a\x46\x6a\x47\x6a\x48\x6a\x49\x6a\x4a\x6a\x4b\x6a\x4c\x6a\x4d\x6a\x4e\x6a\x4f\x6a\x50\x6a\x51\x6a\x52\x6a\x53\x6a\x54\x6a\x55\x6a\x56\x6a\x57\x6a\x58\x6a\x59\x6a\x5a\x6a\x5b\x6a\x5c\x6a\x5d\x6a\x5e\x6a\x5f\x6a\x60\x6a\x61\x6a\x62\x6a\x63\x6a\x64\x6a\x65\x6a\x66\x6a\x67\x6a\x68\x6a\x69\x6a\x6a\x6a\x6b\x6a\x6c\x6a\x6d\x6a\x6e\x6a\x6f\x6a\x70\x6a\x71\x6a\x72\x6a\x73\x6a\x74\x6a\x75\x6a\x76\x6a\x77\x6a\x78\x6a\x79\x6a\x7a\x6a\x7b\x6a\x7c\x6a\x7d\x6a\x7e\x6a\x7f\x6a\x80\x6a\x81\x6a\x82", /* e100 */ "\x6a\x83\x6a\x84\x6a\x85\x6a\x86\x6a\x87\x6a\x88\x6a\x89\x6a\x8a\x6a\x8b\x6a\x8c\x6a\x8d\x6a\x8e\x6a\x8f\x6a\x90\x6a\x91\x6a\x92\x6a\x93\x6a\x94\x6a\x95\x6a\x96\x6a\x97\x6a\x98\x6a\x99\x6a\x9a\x6a\x9b\x6a\x9c\x6a\x9d\x6a\x9e\x6a\x9f\x6a\xa0\x6a\xa1\x6a\xa2\x6a\xa3\x6a\xa4\x6a\xa5\x6a\xa6\x6a\xa7\x6a\xa8\x6a\xa9\x6a\xaa\x6a\xab\x6a\xac\x6a\xad\x6a\xae\x6a\xaf\x6a\xb0\x6a\xb1\x6a\xb2\x6a\xb3\x6a\xb4\x6a\xb5\x6a\xb6\x6a\xb7\x6a\xb8\x6a\xb9\x6a\xba\x6a\xbb\x6a\xbc\x6a\xbd\x6a\xbe\x6a\xbf\x6a\xc0\x6a\xc1\x6a\xc2\x6a\xc3\x6a\xc4\x6a\xc5\x6a\xc6\x6a\xc7\x6a\xc8\x6a\xc9\x6a\xca\x6a\xcb\x6a\xcc\x6a\xcd\x6a\xce\x6a\xcf\x6a\xd0\x6a\xd1\x6a\xd2\x6a\xd3\x6a\xd4\x6a\xd5\x6a\xd6\x6a\xd7\x6a\xd8\x6a\xd9\x6a\xda\x6a\xdb\x6a\xdc\x6a\xdd\x6a\xde\x6a\xdf\x6a\xe0\x6a\xe1\x6a\xe2\x6a\xe3\x6a\xe4\x6a\xe5\x6a\xe6\x6a\xe7\x6a\xe8\x6a\xe9\x6a\xea\x6a\xeb\x6a\xec\x6a\xed\x6a\xee\x6a\xef\x6a\xf0\x6a\xf1\x6a\xf2\x6a\xf3\x6a\xf4\x6a\xf5\x6a\xf6\x6a\xf7\x6a\xf8\x6a\xf9\x6a\xfa\x6a\xfb\x6a\xfc\x6a\xfd\x6a\xfe\x6b\x41\x6b\x42\x6b\x43\x6b\x44", /* e180 */ "\x6b\x45\x6b\x46\x6b\x47\x6b\x48\x6b\x49\x6b\x4a\x6b\x4b\x6b\x4c\x6b\x4d\x6b\x4e\x6b\x4f\x6b\x50\x6b\x51\x6b\x52\x6b\x53\x6b\x54\x6b\x55\x6b\x56\x6b\x57\x6b\x58\x6b\x59\x6b\x5a\x6b\x5b\x6b\x5c\x6b\x5d\x6b\x5e\x6b\x5f\x6b\x60\x6b\x61\x6b\x62\x6b\x63\x6b\x64\x6b\x65\x6b\x66\x6b\x67\x6b\x68\x6b\x69\x6b\x6a\x6b\x6b\x6b\x6c\x6b\x6d\x6b\x6e\x6b\x6f\x6b\x70\x6b\x71\x6b\x72\x6b\x73\x6b\x74\x6b\x75\x6b\x76\x6b\x77\x6b\x78\x6b\x79\x6b\x7a\x6b\x7b\x6b\x7c\x6b\x7d\x6b\x7e\x6b\x7f\x6b\x80\x6b\x81\x6b\x82\x6b\x83\x6b\x84\x6b\x85\x6b\x86\x6b\x87\x6b\x88\x6b\x89\x6b\x8a\x6b\x8b\x6b\x8c\x6b\x8d\x6b\x8e\x6b\x8f\x6b\x90\x6b\x91\x6b\x92\x6b\x93\x6b\x94\x6b\x95\x6b\x96\x6b\x97\x6b\x98\x6b\x99\x6b\x9a\x6b\x9b\x6b\x9c\x6b\x9d\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xa1\x6b\xa2\x6b\xa3\x6b\xa4\x6b\xa5\x6b\xa6\x6b\xa7\x6b\xa8\x6b\xa9\x6b\xaa\x6b\xab\x6b\xac\x6b\xad\x6b\xae\x6b\xaf\x6b\xb0\x6b\xb1\x6b\xb2\x6b\xb3\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x6b\xba\x6b\xbb\x6b\xbc\x6b\xbd\x6b\xbe\x6b\xbf\x6b\xc0\x6b\xc1\x6b\xc2\x6b\xc3\x6b\xc4", /* e200 */ "\x6b\xc5\x6b\xc6\x6b\xc7\x6b\xc8\x6b\xc9\x6b\xca\x6b\xcb\x6b\xcc\x6b\xcd\x6b\xce\x6b\xcf\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\x6b\xd4\x6b\xd5\x6b\xd6\x6b\xd7\x6b\xd8\x6b\xd9\x6b\xda\x6b\xdb\x6b\xdc\x6b\xdd\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x6b\xe9\x6b\xea\x6b\xeb\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\x6b\xfc\x6b\xfd\x6b\xfe\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\x6c\x46\x6c\x47\x6c\x48\x6c\x49\x6c\x4a\x6c\x4b\x6c\x4c\x6c\x4d\x6c\x4e\x6c\x4f\x6c\x50\x6c\x51\x6c\x52\x6c\x53\x6c\x54\x6c\x55\x6c\x56\x6c\x57\x6c\x58\x6c\x59\x6c\x5a\x6c\x5b\x6c\x5c\x6c\x5d\x6c\x5e\x6c\x5f\x6c\x60\x6c\x61\x6c\x62\x6c\x63\x6c\x64\x6c\x65\x6c\x66\x6c\x67\x6c\x68\x6c\x69\x6c\x6a\x6c\x6b\x6c\x6c\x6c\x6d\x6c\x6e\x6c\x6f\x6c\x70\x6c\x71\x6c\x72\x6c\x73\x6c\x74\x6c\x75\x6c\x76\x6c\x77\x6c\x78\x6c\x79\x6c\x7a\x6c\x7b\x6c\x7c\x6c\x7d\x6c\x7e\x6c\x7f\x6c\x80\x6c\x81\x6c\x82\x6c\x83\x6c\x84\x6c\x85\x6c\x86", /* e280 */ "\x6c\x87\x6c\x88\x6c\x89\x6c\x8a\x6c\x8b\x6c\x8c\x6c\x8d\x6c\x8e\x6c\x8f\x6c\x90\x6c\x91\x6c\x92\x6c\x93\x6c\x94\x6c\x95\x6c\x96\x6c\x97\x6c\x98\x6c\x99\x6c\x9a\x6c\x9b\x6c\x9c\x6c\x9d\x6c\x9e\x6c\x9f\x6c\xa0\x6c\xa1\x6c\xa2\x6c\xa3\x6c\xa4\x6c\xa5\x6c\xa6\x6c\xa7\x6c\xa8\x6c\xa9\x6c\xaa\x6c\xab\x6c\xac\x6c\xad\x6c\xae\x6c\xaf\x6c\xb0\x6c\xb1\x6c\xb2\x6c\xb3\x6c\xb4\x6c\xb5\x6c\xb6\x6c\xb7\x6c\xb8\x6c\xb9\x6c\xba\x6c\xbb\x6c\xbc\x6c\xbd\x6c\xbe\x6c\xbf\x6c\xc0\x6c\xc1\x6c\xc2\x6c\xc3\x6c\xc4\x6c\xc5\x6c\xc6\x6c\xc7\x6c\xc8\x6c\xc9\x6c\xca\x6c\xcb\x6c\xcc\x6c\xcd\x6c\xce\x6c\xcf\x6c\xd0\x6c\xd1\x6c\xd2\x6c\xd3\x6c\xd4\x6c\xd5\x6c\xd6\x6c\xd7\x6c\xd8\x6c\xd9\x6c\xda\x6c\xdb\x6c\xdc\x6c\xdd\x6c\xde\x6c\xdf\x6c\xe0\x6c\xe1\x6c\xe2\x6c\xe3\x6c\xe4\x6c\xe5\x6c\xe6\x6c\xe7\x6c\xe8\x6c\xe9\x6c\xea\x6c\xeb\x6c\xec\x6c\xed\x6c\xee\x6c\xef\x6c\xf0\x6c\xf1\x6c\xf2\x6c\xf3\x6c\xf4\x6c\xf5\x6c\xf6\x6c\xf7\x6c\xf8\x6c\xf9\x6c\xfa\x6c\xfb\x6c\xfc\x6c\xfd\x6c\xfe\x6d\x41\x6d\x42\x6d\x43\x6d\x44\x6d\x45\x6d\x46\x6d\x47\x6d\x48", /* e300 */ "\x6d\x49\x6d\x4a\x6d\x4b\x6d\x4c\x6d\x4d\x6d\x4e\x6d\x4f\x6d\x50\x6d\x51\x6d\x52\x6d\x53\x6d\x54\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x59\x6d\x5a\x6d\x5b\x6d\x5c\x6d\x5d\x6d\x5e\x6d\x5f\x6d\x60\x6d\x61\x6d\x62\x6d\x63\x6d\x64\x6d\x65\x6d\x66\x6d\x67\x6d\x68\x6d\x69\x6d\x6a\x6d\x6b\x6d\x6c\x6d\x6d\x6d\x6e\x6d\x6f\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x74\x6d\x75\x6d\x76\x6d\x77\x6d\x78\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7c\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x82\x6d\x83\x6d\x84\x6d\x85\x6d\x86\x6d\x87\x6d\x88\x6d\x89\x6d\x8a\x6d\x8b\x6d\x8c\x6d\x8d\x6d\x8e\x6d\x8f\x6d\x90\x6d\x91\x6d\x92\x6d\x93\x6d\x94\x6d\x95\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9b\x6d\x9c\x6d\x9d\x6d\x9e\x6d\x9f\x6d\xa0\x6d\xa1\x6d\xa2\x6d\xa3\x6d\xa4\x6d\xa5\x6d\xa6\x6d\xa7\x6d\xa8\x6d\xa9\x6d\xaa\x6d\xab\x6d\xac\x6d\xad\x6d\xae\x6d\xaf\x6d\xb0\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb4\x6d\xb5\x6d\xb6\x6d\xb7\x6d\xb8\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xbf\x6d\xc0\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc4\x6d\xc5\x6d\xc6\x6d\xc7\x6d\xc8", /* e380 */ "\x6d\xc9\x6d\xca\x6d\xcb\x6d\xcc\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd1\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd6\x6d\xd7\x6d\xd8\x6d\xd9\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdd\x6d\xde\x6d\xdf\x6d\xe0\x6d\xe1\x6d\xe2\x6d\xe3\x6d\xe4\x6d\xe5\x6d\xe6\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xeb\x6d\xec\x6d\xed\x6d\xee\x6d\xef\x6d\xf0\x6d\xf1\x6d\xf2\x6d\xf3\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf7\x6d\xf8\x6d\xf9\x6d\xfa\x6d\xfb\x6d\xfc\x6d\xfd\x6d\xfe\x6e\x41\x6e\x42\x6e\x43\x6e\x44\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4d\x6e\x4e\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x53\x6e\x54\x6e\x55\x6e\x56\x6e\x57\x6e\x58\x6e\x59\x6e\x5a\x6e\x5b\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x5f\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6b\x6e\x6c\x6e\x6d\x6e\x6e\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x7e\x6e\x7f\x6e\x80\x6e\x81\x6e\x82\x6e\x83\x6e\x84\x6e\x85\x6e\x86\x6e\x87\x6e\x88\x6e\x89\x6e\x8a", /* e400 */ "\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x8f\x6e\x90\x6e\x91\x6e\x92\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x98\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9c\x6e\x9d\x6e\x9e\x6e\x9f\x6e\xa0\x6e\xa1\x6e\xa2\x6e\xa3\x6e\xa4\x6e\xa5\x6e\xa6\x6e\xa7\x6e\xa8\x6e\xa9\x6e\xaa\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xaf\x6e\xb0\x6e\xb1\x6e\xb2\x6e\xb3\x6e\xb4\x6e\xb5\x6e\xb6\x6e\xb7\x6e\xb8\x6e\xb9\x6e\xba\x6e\xbb\x6e\xbc\x6e\xbd\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc1\x6e\xc2\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc7\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcb\x6e\xcc\x6e\xcd\x6e\xce\x6e\xcf\x6e\xd0\x6e\xd1\x6e\xd2\x6e\xd3\x6e\xd4\x6e\xd5\x6e\xd6\x6e\xd7\x6e\xd8\x6e\xd9\x6e\xda\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xde\x6e\xdf\x6e\xe0\x6e\xe1\x6e\xe2\x6e\xe3\x6e\xe4\x6e\xe5\x6e\xe6\x6e\xe7\x6e\xe8\x6e\xe9\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf4\x6e\xf5\x6e\xf6\x6e\xf7\x6e\xf8\x6e\xf9\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6f\x41\x6f\x42\x6f\x43\x6f\x44\x6f\x45\x6f\x46\x6f\x47\x6f\x48\x6f\x49\x6f\x4a\x6f\x4b\x6f\x4c", /* e480 */ "\x6f\x4d\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x58\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5c\x6f\x5d\x6f\x5e\x6f\x5f\x6f\x60\x6f\x61\x6f\x62\x6f\x63\x6f\x64\x6f\x65\x6f\x66\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6d\x6f\x6e\x6f\x6f\x6f\x70\x6f\x71\x6f\x72\x6f\x73\x6f\x74\x6f\x75\x6f\x76\x6f\x77\x6f\x78\x6f\x79\x6f\x7a\x6f\x7b\x6f\x7c\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x84\x6f\x85\x6f\x86\x6f\x87\x6f\x88\x6f\x89\x6f\x8a\x6f\x8b\x6f\x8c\x6f\x8d\x6f\x8e\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9c\x6f\x9d\x6f\x9e\x6f\x9f\x6f\xa0\x6f\xa1\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa7\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb3\x6f\xb4\x6f\xb5\x6f\xb6\x6f\xb7\x6f\xb8\x6f\xb9\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc0\x6f\xc1\x6f\xc2\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xc9\x6f\xca\x6f\xcb\x6f\xcc", /* e500 */ "\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd1\x6f\xd2\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xde\x6f\xdf\x6f\xe0\x6f\xe1\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea\x6f\xeb\x6f\xec\x6f\xed\x6f\xee\x6f\xef\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4c\x70\x4d\x70\x4e\x70\x4f\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5e\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6b\x70\x6c\x70\x6d\x70\x6e\x70\x6f\x70\x70\x70\x71\x70\x72\x70\x73\x70\x74\x70\x75\x70\x76\x70\x77\x70\x78\x70\x79\x70\x7a\x70\x7b\x70\x7c\x70\x7d\x70\x7e\x70\x7f\x70\x80\x70\x81\x70\x82\x70\x83\x70\x84\x70\x85\x70\x86\x70\x87\x70\x88\x70\x89\x70\x8a\x70\x8b\x70\x8c\x70\x8d\x70\x8e", /* e580 */ "\x70\x8f\x70\x90\x70\x91\x70\x92\x70\x93\x70\x94\x70\x95\x70\x96\x70\x97\x70\x98\x70\x99\x70\x9a\x70\x9b\x70\x9c\x70\x9d\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xab\x70\xac\x70\xad\x70\xae\x70\xaf\x70\xb0\x70\xb1\x70\xb2\x70\xb3\x70\xb4\x70\xb5\x70\xb6\x70\xb7\x70\xb8\x70\xb9\x70\xba\x70\xbb\x70\xbc\x70\xbd\x70\xbe\x70\xbf\x70\xc0\x70\xc1\x70\xc2\x70\xc3\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc8\x70\xc9\x70\xca\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xd8\x70\xd9\x70\xda\x70\xdb\x70\xdc\x70\xdd\x70\xde\x70\xdf\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe4\x70\xe5\x70\xe6\x70\xe7\x70\xe8\x70\xe9\x70\xea\x70\xeb\x70\xec\x70\xed\x70\xee\x70\xef\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf7\x70\xf8\x70\xf9\x70\xfa\x70\xfb\x70\xfc\x70\xfd\x70\xfe\x71\x41\x71\x42\x71\x43\x71\x44\x71\x45\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4a\x71\x4b\x71\x4c\x71\x4d\x71\x4e\x71\x4f\x71\x50", /* e600 */ "\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5c\x71\x5d\x71\x5e\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x64\x71\x65\x71\x66\x71\x67\x71\x68\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6e\x71\x6f\x71\x70\x71\x71\x71\x72\x71\x73\x71\x74\x71\x75\x71\x76\x71\x77\x71\x78\x71\x79\x71\x7a\x71\x7b\x71\x7c\x71\x7d\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x84\x71\x85\x71\x86\x71\x87\x71\x88\x71\x89\x71\x8a\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x8f\x71\x90\x71\x91\x71\x92\x71\x93\x71\x94\x71\x95\x71\x96\x71\x97\x71\x98\x71\x99\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\x9f\x71\xa0\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa8\x71\xa9\x71\xaa\x71\xab\x71\xac\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb3\x71\xb4\x71\xb5\x71\xb6\x71\xb7\x71\xb8\x71\xb9\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc3\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xce\x71\xcf\x71\xd0", /* e680 */ "\x71\xd1\x71\xd2\x71\xd3\x71\xd4\x71\xd5\x71\xd6\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe0\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe5\x71\xe6\x71\xe7\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xee\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8\x71\xf9\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x47\x72\x48\x72\x49\x72\x4a\x72\x4b\x72\x4c\x72\x4d\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x52\x72\x53\x72\x54\x72\x55\x72\x56\x72\x57\x72\x58\x72\x59\x72\x5a\x72\x5b\x72\x5c\x72\x5d\x72\x5e\x72\x5f\x72\x60\x72\x61\x72\x62\x72\x63\x72\x64\x72\x65\x72\x66\x72\x67\x72\x68\x72\x69\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x6e\x72\x6f\x72\x70\x72\x71\x72\x72\x72\x73\x72\x74\x72\x75\x72\x76\x72\x77\x72\x78\x72\x79\x72\x7a\x72\x7b\x72\x7c\x72\x7d\x72\x7e\x72\x7f\x72\x80\x72\x81\x72\x82\x72\x83\x72\x84\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8a\x72\x8b\x72\x8c\x72\x8d\x72\x8e\x72\x8f\x72\x90\x72\x91\x72\x92", /* e700 */ "\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\x9f\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xac\x72\xad\x72\xae\x72\xaf\x72\xb0\x72\xb1\x72\xb2\x72\xb3\x72\xb4\x72\xb5\x72\xb6\x72\xb7\x72\xb8\x72\xb9\x72\xba\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc1\x72\xc2\x72\xc3\x72\xc4\x72\xc5\x72\xc6\x72\xc7\x72\xc8\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcd\x72\xce\x72\xcf\x72\xd0\x72\xd1\x72\xd2\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd7\x72\xd8\x72\xd9\x72\xda\x72\xdb\x72\xdc\x72\xdd\x72\xde\x72\xdf\x72\xe0\x72\xe1\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xe8\x72\xe9\x72\xea\x72\xeb\x72\xec\x72\xed\x72\xee\x72\xef\x72\xf0\x72\xf1\x72\xf2\x72\xf3\x72\xf4\x72\xf5\x72\xf6\x72\xf7\x72\xf8\x72\xf9\x72\xfa\x72\xfb\x72\xfc\x72\xfd\x72\xfe\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4d\x73\x4e\x73\x4f\x73\x50\x73\x51\x73\x52\x73\x53\x73\x54", /* e780 */ "\x73\x55\x73\x56\x73\x57\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x60\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6c\x73\x6d\x73\x6e\x73\x6f\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c\x73\x7d\x73\x7e\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x84\x73\x85\x73\x86\x73\x87\x73\x88\x73\x89\x73\x8a\x73\x8b\x73\x8c\x73\x8d\x73\x8e\x73\x8f\x73\x90\x73\x91\x73\x92\x73\x93\x73\x94\x73\x95\x73\x96\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9b\x73\x9c\x73\x9d\x73\x9e\x73\x9f\x73\xa0\x73\xa1\x73\xa2\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xa9\x73\xaa\x73\xab\x73\xac\x73\xad\x73\xae\x73\xaf\x73\xb0\x73\xb1\x73\xb2\x73\xb3\x73\xb4\x73\xb5\x73\xb6\x73\xb7\x73\xb8\x73\xb9\x73\xba\x73\xbb\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc0\x73\xc1\x73\xc2\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xc8\x73\xc9\x73\xca\x73\xcb\x73\xcc\x73\xcd\x73\xce\x73\xcf\x73\xd0\x73\xd1\x73\xd2\x73\xd3\x73\xd4", /* e800 */ "\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xd9\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xde\x73\xdf\x73\xe0\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe5\x73\xe6\x73\xe7\x73\xe8\x73\xe9\x73\xea\x73\xeb\x73\xec\x73\xed\x73\xee\x73\xef\x73\xf0\x73\xf1\x73\xf2\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc\x73\xfd\x73\xfe\x74\x41\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x55\x74\x56\x74\x57\x74\x58\x74\x59\x74\x5a\x74\x5b\x74\x5c\x74\x5d\x74\x5e\x74\x5f\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6d\x74\x6e\x74\x6f\x74\x70\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x76\x74\x77\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7e\x74\x7f\x74\x80\x74\x81\x74\x82\x74\x83\x74\x84\x74\x85\x74\x86\x74\x87\x74\x88\x74\x89\x74\x8a\x74\x8b\x74\x8c\x74\x8d\x74\x8e\x74\x8f\x74\x90\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96", /* e880 */ "\x74\x97\x74\x98\x74\x99\x74\x9a\x74\x9b\x74\x9c\x74\x9d\x74\x9e\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xa7\x74\xa8\x74\xa9\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xba\x74\xbb\x74\xbc\x74\xbd\x74\xbe\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd2\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdc\x74\xdd\x74\xde\x74\xdf\x74\xe0\x74\xe1\x74\xe2\x74\xe3\x74\xe4\x74\xe5\x74\xe6\x74\xe7\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xee\x74\xef\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf4\x74\xf5\x74\xf6\x74\xf7\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x41\x75\x42\x75\x43\x75\x44\x75\x45\x75\x46\x75\x47\x75\x48\x75\x49\x75\x4a\x75\x4b\x75\x4c\x75\x4d\x75\x4e\x75\x4f\x75\x50\x75\x51\x75\x52\x75\x53\x75\x54\x75\x55\x75\x56\x75\x57\x75\x58", /* e900 */ "\x75\x59\x75\x5a\x75\x5b\x75\x5c\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x65\x75\x66\x75\x67\x75\x68\x75\x69\x75\x6a\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x72\x75\x73\x75\x74\x75\x75\x75\x76\x75\x77\x75\x78\x75\x79\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x7f\x75\x80\x75\x81\x75\x82\x75\x83\x75\x84\x75\x85\x75\x86\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8b\x75\x8c\x75\x8d\x75\x8e\x75\x8f\x75\x90\x75\x91\x75\x92\x75\x93\x75\x94\x75\x95\x75\x96\x75\x97\x75\x98\x75\x99\x75\x9a\x75\x9b\x75\x9c\x75\x9d\x75\x9e\x75\x9f\x75\xa0\x75\xa1\x75\xa2\x75\xa3\x75\xa4\x75\xa5\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xab\x75\xac\x75\xad\x75\xae\x75\xaf\x75\xb0\x75\xb1\x75\xb2\x75\xb3\x75\xb4\x75\xb5\x75\xb6\x75\xb7\x75\xb8\x75\xb9\x75\xba\x75\xbb\x75\xbc\x75\xbd\x75\xbe\x75\xbf\x75\xc0\x75\xc1\x75\xc2\x75\xc3\x75\xc4\x75\xc5\x75\xc6\x75\xc7\x75\xc8\x75\xc9\x75\xca\x75\xcb\x75\xcc\x75\xcd\x75\xce\x75\xcf\x75\xd0\x75\xd1\x75\xd2\x75\xd3\x75\xd4\x75\xd5\x75\xd6\x75\xd7\x75\xd8", /* e980 */ "\x75\xd9\x75\xda\x75\xdb\x75\xdc\x75\xdd\x75\xde\x75\xdf\x75\xe0\x75\xe1\x75\xe2\x75\xe3\x75\xe4\x75\xe5\x75\xe6\x75\xe7\x75\xe8\x75\xe9\x75\xea\x75\xeb\x75\xec\x75\xed\x75\xee\x75\xef\x75\xf0\x75\xf1\x75\xf2\x75\xf3\x75\xf4\x75\xf5\x75\xf6\x75\xf7\x75\xf8\x75\xf9\x75\xfa\x75\xfb\x75\xfc\x75\xfd\x75\xfe\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x80\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a", /* ea00 */ "\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x76\xfe\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c", /* ea80 */ "\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x80\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc", /* eb00 */ "\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x77\xfe\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x80\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e", /* eb80 */ "\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x78\xfe\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60", /* ec00 */ "\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x80\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0", /* ec80 */ "\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x79\xfe\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x80\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2", /* ed00 */ "\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7a\xfe\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64", /* ed80 */ "\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x80\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4", /* ee00 */ "\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7b\xfe\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x80\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6", /* ee80 */ "\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7c\xfe\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68", /* ef00 */ "\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x80\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8", /* ef80 */ "\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7d\xfe\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x80\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa", /* f000 */ "\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7e\xfe\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c", /* f080 */ "\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x80\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec", /* f100 */ "\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x7f\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x8e\x58\x77\x58\x82\x59\x80\x5b\xae\x5c\x66\x5c\x78\x5e\x49\x5e\x8a\x5f\x7a\x5f\xd2\x5f\xd5\x5f\xd9\x5f\xdd\x60\x59\x60\xad\x61\x77\x62\xb9\x62\xce\x62\xe2\x63\xee\x64\x8e\x64\xf1\x65\x49\x65\x66\x65\xb8\x65\xc6\x66\x78\x66\xdd\x66\xdf\x66\xe6\x67\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x00\x00\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x00\x00\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-300_P110-1997 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\x22\x12\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x22\x20\x22\xa5\x23\x12\x22\x02\x22\x07\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\x22\x61\x22\x52\x22\x6a\x22\x6b\x22\x1a\x22\x3d\x22\x1d\x22\x2b\x22\x2c\x22\x08\x22\x0b\x22\x86\x22\x87\x22\x82\x22\x83\x22\x2a\x22\x29\x22\x27\x22\x28\x21\xd2\x21\xd4\x22\x00\x22\x03\x21\x2b\x20\x30\x26\x6f\x26\x6d\x26\x6a\x20\x20\x20\x21\x00\xb6\x25\xef\x00\x00\x25\x00\x25\x02\x25\x0c\x25\x10", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\x30\x1c\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x25\x18\x25\x14\x25\x1c\x25\x2c\x25\x24\x25\x34\x25\x3c\x25\x01\x25\x03\x25\x0f\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x25\x13\x25\x1b\x25\x17\x25\x23\x25\x33\x25\x2b\x25\x3b\x25\x4b\x25\x20\x25\x2f\x25\x28\x25\x37\x25\x3f\x25\x1d\x25\x30\x25\x25\x25\x38\x25\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x14\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\x4e\xdd\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x66\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\xf8\x6f\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x67\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x8c\x4e\x09\x56\xdb\x4e\x94\x51\x6d\x4e\x03\x51\x6b\x4e\x5d\x53\x41\x76\x7e\x53\x43\x4e\x07\x51\x04\x90\xfd\x90\x53\x5e\x9c\x77\x0c\x5e\x02\x53\x3a\x75\x3a\x67\x51\x67\x71\x89\x7f\x53\x57\x53\x17\x59\x27\x4e\x2d\x5c\x0f\x4e\x0a\x4e\x0b\x5e\x74\x67\x08\x65\xe5\x75\x30\x5b\x50\x5c\x71\x67\x2c\x5d\xdd\x85\xe4\x91\xce\x5d\xe5\x69\x6d\x67\x28\x4e\x95\x90\xce\x5c\xf6\x96\xc4\x9a\xd8\x5c\xa1\x59\x2b\x53\x9f\x4e\xac\x4f\x50\x6b\x63\x67\x7e\x6a\x5f\x54\x8c\x88\xfd\x75\x37\x7f\x8e\x54\x09\x5d\x0e", /* 4580 */ "\x77\xf3\x8c\x37\x96\xfb\x95\x77\x6c\xbb\x6c\xa2\x91\xd1\x65\xb0\x53\xe3\x6a\x4b\x4e\x45\x79\x8f\x62\x40\x5e\x73\x51\x85\x56\xfd\x53\x16\x96\x2a\x5b\xae\x4e\xba\x4f\x5c\x90\xe8\x6e\x05\x6b\x21\x7f\xa9\x75\x1f\x4e\xe3\x51\xfa\x6c\x34\x68\xee\x51\x49\x52\xa0\x54\x08\x79\x5e\x67\x97\x91\xcd\x88\x4c\x4f\xe1\x66\x0e\x6d\x77\x5b\x89\x5e\x78\x4f\xdd\x59\x2a\x5b\xcc\x6c\x5f\x92\x34\x52\x4d\x77\xe5\x6b\x66\x4f\x0a\x66\x2d\x52\x06\x52\xdd\x75\x28\x5e\x83\x90\x20\x6c\x17\x62\x10\x89\x8b\x52\x29\x4f\x1a\x5b\x66\x5c\xa9\x75\x23\x95\x93\x57\x30\x81\xea\x82\x6f\x95\xa2\x61\x1b\x65\x3f\x5c\x3e\x8a\x08\x65\x87\x62\x4b\x72\x36\x65\xb9\x4e\x8b\x62\x38\x54\xc1\x55\x9c\x6e\x21\x5f\x18\x53\xe4\x8f\xba\x50\x09\x92\x44\x4e\x4b\x58\x34\x6d\x0b\x57\xce\x6d\x25\x7a\xcb\x5e\xa6\x53\x48\x4e\xca\x5f\x66\x8a\x2d\x90\x1a\x52\xd5\x5f\x8c\x59\x48\x5b\x9a\x6c\x60\x5c\x4b\x6d\x5c\x74\x06\x57\x42\x5b\x9f\x82\xf1\x76\x84\x53\xf8\x79\xc0\x6a\x2a\x54\x0d\x5b\x5d\x7a\xf9\x53\x5a\x52\x9b\x5e\xab\x84\x49\x68\x04\x6c\x38\x56\x68\x73\x89\x59\x1a\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\xc0\x77\x1f\x60\x75\x97\x59\x51\x86\x83\x02\x65\x4f\x8c\x4a\x51\x75\x6c\xd5\x76\x7a\x97\x52\x58\x97\x65\x99\x5f\xe0\x8c\xc7\x66\x42\x72\x69\x8e\xca\x5f\xb3\x89\x81\x5b\xfe\x58\x5a\x79\xcb\x76\x7d\x6c\xb3\x70\x2c\x6c\xb9\x96\x86\x85\x35\x5f\x53\x4f\xca\x5f\xd7\x66\x25\x79\x3e\x99\xac\x51\x65\x5e\xfa\x68\x39\x67\x49\x90\x32\x82\x08\x6d\x66\x7c\xbe\x54\x0c\x60\x27\x7c\x73\x80\x05\x52\xa9\x67\x9d\x8f\xd1\x76\xf4\x76\xee\x67\x65\x75\x3b\x76\xf8\x9e\xd2\x4e\x38\x82\x39\x75\x31\x58\xeb\x7b\x2c\x71\x8a", /* 4680 */ "\x7d\x19\x50\x65\x68\xb0\x82\xb3\x57\x1f\x67\x09\x5b\xb6\x7d\xda\x7d\x4c\x8a\xbf\x59\x29\x67\x1f\x7f\x6e\x6d\x45\x65\x89\x5f\x0f\x5f\x62\x97\x62\x7a\x2e\x8f\x38\x59\x16\x51\x43\x4f\x53\x9e\x7f\x5f\xa1\x59\x73\x5e\xb7\x4e\x16\x52\xc7\x58\x00\x59\x7d\x51\x50\x5b\xfa\x92\xfc\x72\x79\x57\xfc\x90\x54\x54\x11\x53\xd6\x7b\x49\x66\x7a\x56\xde\x95\x80\x90\x4b\x50\x99\x60\x1d\x96\x3f\x4e\x0d\x98\x08\x51\x68\x5b\xff\x55\x84\x67\x7f\x98\xef\x8c\x9e\x73\xfe\x98\xdf\x7d\x44\x98\x5e\x51\x6c\x67\x50\x99\x99\x55\x46\x7d\x50\x88\x68\x77\xe2\x6f\x5f\x79\xc1\x52\x36\x90\xa6\x6c\xbc\x7c\xf8\x5b\x8f\x7b\x56\x6c\xe2\x54\xe1\x65\x70\x95\x8b\x6e\x96\x6a\x39\x8c\xbb\x66\x0c\x5f\x37\x78\x14\x53\xcb\x5b\x87\x82\xe5\x83\xca\x63\x01\x82\xb1\x5f\x15\x7d\x00\x83\x52\x52\x25\x4f\xee\x8d\x8a\x4f\x4f\x85\xac\x6b\xdb\x90\x60\x55\x4f\x59\x65\x57\x8b\x5f\xc3\x76\x7b\x65\xe9\x67\xf3\x6d\x69\x8c\xea\x52\xd9\x6c\xc9\x5e\x38\x5b\x88\x57\xfa\x7b\xa1\x6c\xf0\x4f\x38\x67\x00\x4e\xe5\x6b\x4c\x88\xd5\x8d\x64\x8d\xb3\x89\x8f\x6d\x41\x8a\xa0\x66\x07\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xde\x71\x67\x58\x69\x90\x01\x96\xc5\x67\x2b\x54\xf2\x5c\xb8\x4e\x5f\x5c\x90\x52\x1d\x83\x28\x52\x47\x6b\xd4\x80\xfd\x8a\x71\x62\x95\x8e\xe2\x83\xc5\x90\x23\x4e\xd6\x6c\x11\x7d\x66\x91\x52\x7e\x41\x4f\xa1\x6e\x80\x67\x1d\x4e\xd8\x67\x61\x71\x21\x80\x03\x69\x7d\x4e\x3b\x61\x0f\x62\x26\x52\x07\x52\x64\x72\x47\x7d\x30\x6e\x08\x7a\x32\x5e\x03\x91\xcc\x5c\x5e\x7a\xe0\x59\x09\x4f\x55\x68\x5c\x5f\x7c\x67\xfb\x76\xca\x58\xf2\x4e\xc1\x6d\xf1\x53\xf0\x9c\xe5\x9d\xb4\x65\x2f\x65\x74\x89\xd2\x56\x09\x54\x73", /* 4780 */ "\x88\x5b\x8b\x70\x57\x27\x73\x87\x8d\xef\x70\x6b\x96\x1c\x8f\x1d\x70\xb9\x4e\x0e\x6e\x1b\x75\x51\x92\x80\x7a\x7a\x4e\xa4\x7f\xbd\x53\x4a\x53\xce\x59\x2e\x7d\xcf\x8a\x18\x66\x74\x69\xcb\x96\x9b\x68\x85\x53\x70\x8a\x00\x68\x17\x8e\xab\x66\xf8\x51\x4b\x7d\x20\x96\xc6\x7b\xc0\x51\x48\x6e\xdd\x6c\x7a\x65\x59\x7d\x14\x67\xf4\x63\xa5\x66\x1f\x77\x40\x75\x59\x66\x20\x5d\xf1\x75\x4c\x51\x77\x65\x6c\x7f\xa4\x98\x06\x51\x71\x6d\x3b\x91\xcf\x63\x07\x89\xe3\x5b\xa4\x67\x9c\x54\x04\x67\x1b\x96\x32\x7d\x04\x61\xb2\x96\x7d\x4e\x80\x56\xf3\x4e\x88\x82\x72\x7a\x0e\x69\x0d\x53\xef\x60\x52\x4f\x4d\x51\x78\x5f\xc5\x7d\x9a\x60\x25\x57\x28\x57\xa3\x54\x1b\x5e\xf6\x5d\x8b\x4f\x01\x68\x03\x67\x0d\x71\xb1\x52\x72\x53\x54\x6b\x69\x53\xf2\x51\x2a\x65\x8e\x62\x3f\x5b\x97\x68\x3c\x8f\xb0\x7b\x20\x57\x12\x8a\xf8\x81\x07\x55\x53\x8c\xe2\x5f\x25\x98\xa8\x5f\x97\x66\x13\x62\x53\x98\x2d\x65\xed\x6b\xb5\x52\xe2\x71\x36\x56\xe3\x98\x4d\x84\x3d\x91\x4d\x7a\x0b\x8f\xbb\x54\x3e\x61\x1f\x5b\xdb\x53\xcd\x7a\x14\x97\x00\x6e\x90\x6c\x96\x98\x4c\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xbc\x83\x49\x7b\x97\x76\xdb\x8f\xb2\x90\xa3\x77\x01\x69\xd8\x6b\xbf\x5c\x11\x4e\xcb\x53\xd7\x97\xf3\x7d\xe8\x59\xd4\x5e\x84\x4f\xc2\x72\xb6\x79\x3a\x5e\x97\x5a\x9b\x68\x2a\x6e\xcb\x68\xa8\x7e\x04\x53\xf3\x5d\xe6\x53\xca\x90\x78\x5c\x45\x60\xc5\x7d\xf4\x70\xad\x99\x28\x92\x71\x6a\x21\x6b\x8a\x7e\x3e\x4e\x9c\x7e\x4a\x4e\xf2\x58\x57\x6d\x88\x88\x53\x69\x1c\x67\x17\x5b\x85\x52\x9f\x5c\x1a\x8c\xbf\x60\xa6\x81\x02\x7b\xe0\x4f\x73\x7d\x21\x51\xa8\x68\x51\x78\xba\x72\x67\x4e\x26\x50\x24\x89\xb3\x8c\xb4", /* 4880 */ "\x7d\xad\x7d\x71\x5b\xbf\x4e\x21\x7c\xd6\x89\xaa\x93\x32\x6f\x84\x65\xbd\x5b\xb9\x98\xdb\x5c\x40\x79\x50\x90\x4e\x6c\x0f\x65\x39\x76\xe4\x7a\x4d\x6e\x0b\x5d\xfb\x6d\xf3\x5f\xdc\x4e\x89\x8e\xcd\x88\xc5\x91\x78\x7e\x54\x67\xd3\x5e\x1d\x7d\xbf\x7c\x89\x82\x2a\x75\x32\x54\x68\x4e\xd9\x5f\x85\x4f\x4e\x7d\xd1\x8e\xfd\x9e\xbb\x61\x76\x52\xb4\x78\xef\x4e\x39\x80\xb2\x96\x50\x5c\x0e\x65\x3e\x66\x43\x5e\xa7\x4e\xf6\x60\xf3\x9a\x13\x4e\xd5\x4f\x7f\x8f\x2a\x98\x54\x75\x6a\x5f\x35\x80\x5e\x4f\x9b\x6e\x6f\x6e\xb6\x68\x21\x92\x85\x92\xf3\x87\x8d\x97\x56\x51\x99\x5b\x8c\x6e\x2f\x93\x5b\x59\x1c\x51\x45\x9f\x8d\x7d\xb1\x83\xf1\x90\x1f\x52\xc9\x52\x37\x8d\x77\x64\x69\x53\xc2\x55\xb6\x7a\x42\x63\xa8\x8f\xd4\x80\x77\x6b\x62\x4f\x1d\x5e\x79\x74\x03\x6a\x29\x5c\x55\x5e\x61\x84\x5b\x5e\xad\x97\x5e\x53\xf7\x53\x58\x6b\x73\x62\xe1\x51\xe6\x8a\x9e\x66\x28\x57\xdf\x6d\xf5\x51\x8d\x50\xcd\x79\xd1\x9b\x5a\x7a\xef\x90\x14\x68\x48\x5b\x57\x8a\xd6\x51\x7c\x53\xc8\x63\x2f\x62\x80\x5f\xb9\x67\x2d\x7c\xfb\x5f\x93\x51\xb7\x61\x4b\x5c\xf0\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x31\x53\x9a\x50\x74\x6c\xe8\x6e\x2c\x98\x03\x4e\x57\x8a\x66\x57\x6a\x84\x29\x51\x5a\x6c\x7d\x5b\x9d\x60\x6d\x6a\x0b\x6e\x29\x65\x77\x8a\xac\x82\xb8\x54\x4a\x6b\x74\x82\x2c\x98\xfe\x79\x3c\x5c\x06\x96\xe3\x78\x02\x52\x24\x5f\x79\x5f\x71\x66\xfd\x5e\x2f\x96\x78\x93\x8c\x8a\xc7\x5f\x70\x60\xaa\x6a\x19\x75\x33\x5b\xb3\x6b\xcd\x88\xdc\x5e\x4c\x58\xf0\x96\x64\x7b\x39\x5a\x66\x4e\x7e\x7a\xf6\x82\x9d\x72\x5b\x8c\xb7\x79\xfb\x78\x5d\x83\x36\x52\xb9\x99\x0a\x52\xf2\x80\xa5\x8b\x19\x70\x89\x59\x0f\x58\x02", /* 4980 */ "\x67\xcf\x62\x55\x5e\x30\x71\x3c\x78\x6b\x80\x01\x7a\x76\x5b\xe9\x91\xdd\x65\xad\x5c\x04\x5d\xee\x5d\x50\x62\x98\x80\x10\x5b\xa3\x59\xcb\x5f\x8b\x6b\x8b\x66\x6f\x8c\x61\x90\xf7\x53\x53\x96\xe2\x85\xab\x6b\x7b\x80\x15\x64\xcd\x4e\xae\x4e\x91\x90\xe1\x52\xe4\x6c\x42\x8c\xab\x5b\x98\x59\xbb\x88\xcf\x77\x3c\x4f\x2f\x7a\xaf\x7b\xc9\x96\x8e\x63\xdb\x68\x42\x99\xc5\x68\xb6\x57\x47\x8c\xa1\x54\x7d\x73\x8b\x84\xb2\x90\xc1\x78\xe8\x7b\x11\x66\xf2\x69\x75\x58\x31\x63\xd0\x8a\x3c\x96\xea\x90\x55\x88\xc1\x99\x96\x75\xc5\x68\x50\x4f\x59\x74\xe6\x4e\xe4\x54\x39\x73\x2a\x67\x2a\x52\x5b\x8c\xa0\x4f\x34\x51\x00\x54\x2b\x90\x69\x8f\xc4\x5c\x3b\x5d\xcc\x7b\x54\x8f\xfd\x8a\x0e\x4e\x08\x92\x5b\x71\xc3\x8a\xb2\x70\xba\x96\x62\x67\x9a\x76\xae\x8b\x77\x7d\xbe\x96\xe8\x62\x11\x5b\xc4\x83\x7b\x62\xbc\x7d\x0d\x76\xe3\x7e\x2b\x96\x4d\x57\x2d\x7a\xdc\x7b\xc4\x6b\xba\x8c\x9d\x69\x8e\x90\x47\x6f\x14\x53\x60\x8f\xeb\x52\x87\x62\x4d\x65\x66\x7d\x1a\x7d\x42\x6b\xce\x7d\x79\x7e\x2e\x66\x6e\x79\x65\x50\x0b\x5c\x02\x99\xd2\x8a\x55\x75\x60\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x58\x80\x89\x50\xbe\x5e\x2b\x6d\xb2\x4f\x8b\x81\xe3\x81\xf3\x56\xe0\x7d\x99\x5d\xf2\x89\x9a\x6e\x9d\x6d\x17\x8a\xad\x89\x96\x73\x1b\x5d\xe8\x7d\xb2\x88\x8b\x4e\xfb\x5b\xc6\x88\x96\x6c\xc1\x84\x57\x8f\x03\x6b\xc5\x97\xff\x8c\xa9\x5e\x45\x82\xe6\x63\xaa\x5f\x81\x78\xc1\x82\x1e\x52\xaa\x7a\xaa\x59\x99\x62\x97\x8f\x14\x7f\xd2\x4f\xc3\x54\xc9\x96\x7a\x66\xf4\x8b\x1b\x5e\x72\x5f\xa9\x8a\x2a\x6d\x3e\x77\x63\x64\x83\x8b\x58\x61\x4e\x5a\x5a\x8d\x85\x71\xd0\x98\x3c\x72\xe9\x58\x3a\x5d\xfe\x8a\x8d\x67\xc4", /* 4a80 */ "\x7d\xe0\x4f\x11\x77\xed\x4f\x0f\x5b\xc5\x62\x9c\x5c\x3c\x53\x3b\x6d\xc0\x81\xfc\x96\xd1\x90\x4a\x6d\x6e\x93\xe1\x5c\x64\x98\xfc\x52\x4a\x6d\xfb\x85\x84\x96\x8a\x56\xfa\x58\x83\x77\x66\x98\x05\x4e\x73\x8c\x46\x8a\x31\x7d\xd2\x8f\xf0\x6d\x6a\x4f\x9d\x6b\x6f\x6b\x27\x62\xc5\x51\x1f\x97\x69\x53\x74\x9a\xa8\x67\x75\x88\x7f\x53\x05\x75\x70\x8d\x70\x86\x4e\x5c\xef\x8c\xde\x5f\xf5\x72\x5f\x76\x86\x60\x9f\x80\xcc\x59\xeb\x81\x31\x5e\x0c\x8a\x17\x96\x76\x82\xd7\x74\xb0\x84\xb8\x50\xd5\x96\xf2\x72\x48\x78\x34\x6d\xd1\x6e\x09\x67\xff\x6f\x54\x59\x15\x50\x0d\x72\xac\x9e\xc4\x7b\x46\x9b\x3c\x65\x63\x53\xbb\x8a\x98\x91\xdc\x98\x18\x6f\xc3\x65\xc5\x50\x1f\x7f\x8a\x6f\x64\x90\x31\x5f\x3e\x63\xf4\x90\x38\x8b\x66\x7b\xe4\x72\x06\x68\x43\x72\xec\x65\xcf\x82\xa6\x5b\xa2\x69\x60\x9e\xa6\x52\xdf\x67\x90\x63\x9b\x7d\x75\x98\x55\x5d\xf3\x58\x05\x8a\xcb\x95\xa3\x88\x63\x8c\xa8\x5b\x63\x5e\x8a\x54\x49\x78\x6c\x7d\x2b\x8c\xa2\x53\x52\x7d\x76\x8c\xb8\x70\x70\x54\x7c\x65\x45\x66\x76\x73\xb2\x56\xf2\x7b\xb1\x58\xa8\x7a\x81\x66\xae\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x87\x59\xff\x88\x40\x56\xf0\x7b\x51\x6d\xf7\x5f\x01\x93\x4b\x90\x00\x4f\xe3\x67\x5f\x4f\xbf\x8c\xc3\x52\x6f\x63\xa1\x54\x42\x89\x07\x69\x8a\x5e\x2d\x5a\x18\x75\x18\x51\x4d\x5e\x7e\x50\xb5\x5b\xdd\x68\xd2\x74\x5e\x69\xfb\x5f\xae\x55\xe3\x8a\x70\x5b\xf8\x58\x24\x83\x58\x5f\x13\x5e\x95\x70\x6f\x75\x1a\x7d\x05\x60\xe3\x7e\x70\x50\x12\x52\x38\x83\xef\x53\x73\x5f\x31\x6a\x2b\x9c\xf4\x53\xcc\x6d\x32\x4e\xab\x4e\x92\x84\x2c\x8a\x8c\x65\xe2\x6f\x01\x80\xa9\x9d\xf9\x8b\x72\x7b\x52\x95\x89\x6d\x74\x63\xa2", /* 4b80 */ "\x65\x90\x5b\xd2\x63\x19\x8a\xb0\x76\xdf\x99\xa8\x7a\x74\x82\x36\x88\x46\x80\x61\x65\x57\x59\x22\x96\x44\x88\xab\x93\x26\x7b\x4b\x62\xb5\x53\x71\x5e\x81\x5b\xdf\x4f\x75\x58\xc1\x70\x58\x7d\xca\x54\x38\x73\xe0\x52\xd8\x52\x08\x78\xd0\x6b\x23\x68\x38\x4e\x43\x69\x0e\x83\x77\x6e\xd1\x98\xf2\x81\x70\x88\x57\x8e\xf8\x79\x8e\x83\xdc\x8f\xce\x7e\x01\x55\x10\x4e\xa8\x8a\x33\x91\x62\x5e\xfb\x60\x6f\x4e\x86\x66\x4b\x63\x68\x52\x17\x80\x56\x51\xfd\x76\x42\x82\x1f\x96\x85\x50\xcf\x66\x2f\x4f\x3c\x4e\x59\x6a\x3d\x4e\x71\x52\x3a\x8a\xcf\x6a\x58\x66\xff\x67\x0b\x65\x3b\x97\x32\x5e\xc3\x8a\x13\x57\x82\x60\x4b\x86\x6b\x95\xd8\x60\xa9\x4e\x01\x63\xcf\x6f\xc0\x65\x9c\x8c\xac\x83\x05\x7c\xa7\x60\x50\x96\xf7\x5f\xcd\x64\x0d\x5b\x54\x90\x0f\x62\xd3\x59\xb9\x71\x59\x51\xac\x79\xf0\x55\x2f\x52\x75\x66\x97\x80\xf8\x4e\x98\x4e\xcf\x51\xcd\x9d\x5c\x51\x44\x7a\x93\x67\xf1\x58\x41\x7c\x21\x88\x61\x5c\x31\x68\xda\x91\xe7\x9d\xf2\x63\xee\x65\x75\x84\xee\x52\x3b\x6b\x32\x7c\x98\x59\x82\x96\x9c\x89\x87\x7c\x9f\x90\x06\x62\xdb\x66\xdc\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x55\x69\x82\x50\xac\x62\x3b\x5f\xd8\x63\xda\x75\xdb\x62\x7f\x61\x6e\x82\x66\x7c\x95\x71\x6e\x96\xc7\x7f\x6a\x54\x26\x52\x00\x83\xd3\x52\x11\x59\x4f\x9d\x28\x57\x4a\x66\xc7\x98\x58\x82\x0e\x66\x14\x73\x3f\x50\xb7\x65\x51\x5e\xb8\x5b\x6b\x55\xac\x5f\xeb\x63\x88\x8c\xaf\x67\x6f\x59\x51\x5a\x01\x71\xe5\x5d\xe3\x8c\x6a\x62\x71\x81\xf4\x5c\x3a\x5f\x92\x90\x45\x73\x84\x71\x49\x79\xd8\x79\x6d\x90\x03\x83\xcc\x5f\xb4\x5b\x8d\x62\x79\x64\xae\x7d\x18\x72\x3e\x5b\xee\x65\xe7\x8d\x08\x9e\x7c\x52\xe7\x5d\x07", /* 4c80 */ "\x9f\x62\x60\x69\x53\x6f\x66\x81\x96\x63\x5e\x3d\x62\xb1\x72\x2a\x6e\x4a\x93\xae\x79\xe6\x53\xe5\x80\x9d\x88\xfe\x53\xb3\x6c\x88\x6e\x7f\x51\x41\x90\x91\x6f\x6e\x84\xc4\x85\xea\x81\x29\x6b\xd2\x66\x3c\x7f\x72\x73\xc2\x5f\x1f\x79\x0e\x60\xb2\x72\xed\x58\xee\x81\x79\x8e\x8d\x5c\x65\x5d\xe7\x6c\x37\x6d\xe1\x86\x2d\x72\xaf\x8e\x0a\x7c\x92\x82\x18\x80\x33\x63\xa7\x92\x91\x50\x19\x81\x55\x8a\x69\x8e\xdf\x66\xb4\x81\x33\x75\x91\x6b\x20\x66\x69\x90\xf5\x4e\x32\x73\xea\x69\x3f\x76\x87\x70\x7d\x7d\x3a\x61\x48\x86\x07\x99\xff\x59\xc9\x78\x32\x78\x15\x90\x7f\x80\xa1\x5c\x3f\x66\xa2\x94\x18\x6d\x44\x5e\x55\x58\x54\x7b\x95\x8d\xe1\x4e\xa1\x8c\x5a\x81\xe8\x89\xe6\x96\x70\x52\x63\x74\xf6\x9a\x5a\x60\x12\x52\x0a\x74\x34\x98\x01\x90\x7a\x55\x04\x79\x56\x52\x30\x54\xb2\x8a\x34\x96\xa3\x4f\xf3\x92\x83\x91\xe3\x7d\x39\x96\x88\x4f\x51\x7d\x61\x5d\xba\x9b\xae\x5f\x80\x79\x5d\x85\x97\x8d\xa3\x7c\x60\x5c\x0a\x75\x65\x85\xa9\x63\xd6\x9e\x97\x7d\x22\x53\x75\x9a\xea\x90\x42\x6b\x3d\x7d\x0b\x63\x92\x80\xaa\x7d\xe9\x9f\x3b\x99\xc6\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x78\x67\x31\x55\x31\x63\x98\x78\x25\x5c\xb3\x5d\xe1\x92\xad\x98\xfd\x98\x10\x6c\xe3\x6b\x64\x53\x21\x6b\x53\x5e\x8f\x7a\xe5\x50\x2b\x6e\x56\x62\xbd\x82\x76\x6a\x9c\x4e\x18\x57\xf7\x75\x2b\x7c\x97\x82\xeb\x98\x02\x81\x1a\x73\xcd\x8f\x9b\x5c\x0b\x63\xe1\x73\x72\x81\x50\x80\xe1\x5b\x99\x76\xd7\x62\x91\x65\xec\x8a\x3a\x59\x47\x65\xe8\x6e\x7e\x66\x96\x55\xab\x8f\x09\x92\xed\x93\x96\x4e\xee\x75\x5c\x6f\x38\x8f\x9e\x79\x81\x5c\x01\x62\xe0\x9b\xe8\x91\xc8\x62\x76\x65\xcb\x8e\x0f\x8b\x21\x69\x9b\x62\x16", /* 4d80 */ "\x5a\x92\x90\xb8\x50\xda\x79\xdf\x6c\x41\x52\x70\x91\x75\x8b\x39\x68\x5d\x58\x75\x81\x9c\x5b\x9c\x8a\x89\x8a\x72\x9d\x8f\x63\x77\x59\x74\x8a\xa4\x52\xb1\x69\x62\x5c\x48\x9c\xe9\x67\x3a\x75\xb2\x6d\x1e\x4f\x0d\x7e\x6d\x7b\x48\x7f\xcc\x65\xe6\x59\xa5\x79\xe9\x62\x12\x6e\xde\x77\x0b\x8c\xa7\x65\xbc\x88\x5d\x6a\xdb\x5c\x4a\x80\x74\x90\x84\x8e\xcc\x65\xd7\x57\xf9\x70\x8e\x6f\x06\x5e\x7c\x77\xac\x4f\xf5\x59\x49\x81\xed\x9b\x45\x7f\xfc\x81\x78\x69\xfd\x6c\xca\x69\xc7\x79\xd2\x8b\x1d\x9e\xd9\x81\xd3\x7a\x3c\x79\x68\x6f\x5c\x63\xb2\x8d\xdd\x63\x83\x6e\x9c\x5e\x33\x61\xf8\x76\xbf\x64\x2c\x7d\xb4\x62\x47\x64\x58\x68\x16\x5f\x69\x90\x22\x7a\x1a\x82\xb9\x70\xc8\x9a\x12\x61\x63\x6f\xef\x53\xeb\x9d\x3b\x62\xfe\x60\xa0\x95\x91\x6d\x99\x61\x62\x92\x98\x63\x5c\x97\x07\x89\x72\x68\x3d\x51\xe1\x9b\x54\x60\x8c\x5b\x22\x99\xc4\x71\x26\x8a\x73\x97\x1c\x73\x96\x67\xd4\x60\xa3\x4e\x11\x4e\xf0\x8c\xdb\x8c\xb0\x79\x12\x97\x74\x89\x86\x51\x46\x57\xdc\x99\xd0\x80\xc3\x83\x38\x78\xa7\x86\xcd\x7f\x85\x50\x49\x82\x47\x69\x0b\x7c\x4d\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x5f\x26\x6e\x25\x68\x81\x93\x75\x5d\xfd\x53\x47\x97\x27\x64\x3a\x75\xc7\x6f\xa4\x73\xa9\x77\xe9\x94\x51\x8b\x5c\x80\x8c\x67\x4e\x4e\xad\x58\x2f\x75\x73\x8e\xd2\x6c\xe5\x93\x20\x8f\xf7\x7d\x33\x72\xc2\x82\x17\x74\x22\x82\xc5\x9a\x30\x77\x3a\x5f\x84\x96\x73\x64\xad\x92\x0d\x74\xdc\x60\xc7\x86\xed\x4f\xfa\x52\xa3\x6a\x3a\x77\x20\x53\x20\x61\xb6\x56\x74\x87\x76\x6c\xbf\x50\x5c\x60\x2a\x84\x66\x6b\x96\x6d\xbc\x97\xd3\x96\x8f\x68\x76\x60\xd1\x53\x78\x64\xa4\x51\xa0\x91\x54\x5d\xf4\x62\x9e\x5e\x63", /* 4e80 */ "\x92\x9a\x76\x93\x6c\x5a\x65\x97\x50\xe7\x7c\x82\x5f\x6b\x6c\xe1\x5f\x6c\x5a\xc1\x6f\x2c\x85\x2d\x64\x42\x57\x50\x58\xc7\x8c\xfc\x8a\x5e\x7a\x7f\x68\x9d\x7e\x26\x7a\x40\x73\x44\x8a\xeb\x4f\xd7\x7a\x63\x80\x36\x7d\xef\x80\xc6\x8a\xed\x73\x1f\x8f\xea\x4f\x0e\x75\x8b\x51\x8a\x67\x34\x5f\xd9\x61\xc7\x65\xaf\x9c\xf3\x5e\xca\x92\x62\x68\xdf\x6c\xb8\x80\xf4\x57\xcb\x6c\x99\x96\xa0\x5b\x64\x58\xf1\x68\xc4\x54\x10\x98\x30\x8a\x87\x4e\x5e\x61\x67\x9b\xab\x90\xaa\x55\xb0\x82\xbd\x59\x6a\x66\xf3\x82\x99\x58\x93\x71\x9f\x62\x84\x67\xd1\x90\x63\x5a\xcc\x6c\x57\x7c\xe7\x58\x51\x64\xb2\x58\xca\x83\x0e\x59\x68\x53\x02\x5a\x46\x87\x02\x60\x65\x72\xd9\x89\xa7\x66\x89\x66\xf9\x5d\x6f\x5b\xb0\x96\xbc\x63\x6e\x60\xdc\x79\x48\x51\xdd\x86\x06\x5e\xc9\x75\x54\x59\x6e\x6b\x04\x4f\x43\x7b\x94\x67\xda\x62\xdd\x62\x8a\x97\x1e\x62\xed\x6e\xc5\x50\x8d\x67\xb6\x80\xe4\x9e\xbf\x5e\xb5\x63\x8c\x85\xcd\x98\x67\x52\xc5\x60\x16\x68\xcb\x61\xd0\x57\x51\x8f\x29\x5f\xaa\x81\xa8\x7d\x62\x71\xc8\x54\xc0\x69\xcc\x6b\x3e\x65\xac\x63\xc3\x4f\x46\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x1b\x6b\x86\x88\xf8\x52\x03\x73\x2e\x66\x87\x7d\x17\x57\xf4\x57\x0f\x61\x8e\x97\x0a\x7c\x3f\x8b\x00\x78\x81\x8c\xe0\x54\x8b\x7b\x87\x74\x5b\x7c\x11\x88\x70\x53\x98\x54\x48\x6c\xf3\x6f\x22\x53\xf6\x88\xb4\x53\x01\x7a\x6b\x86\x95\x58\x6b\x5d\x29\x88\xc2\x62\xd2\x4e\x1e\x50\x36\x96\xc0\x73\x63\x8a\x3b\x51\x76\x71\x99\x7f\xe0\x88\x88\x7e\x1e\x4e\x4f\x84\xcb\x6f\x2b\x58\x59\x93\x6c\x53\xe9\x86\x5a\x91\x49\x86\xef\x5e\x06\x55\x07\x90\x2e\x67\x95\x84\x6c\x5b\xa5\x82\xa5\x84\x31\x6d\x8c\x63\xfa\x4e\xa5", /* 4f80 */ "\x51\xc6\x63\x28\x7f\x70\x5b\x5f\x5d\xbd\x99\xc8\x53\xec\x79\x85\x8a\x54\x79\x62\x88\xdf\x5b\x09\x4f\xb5\x4f\x91\x9b\x8e\x51\x92\x96\xf0\x6d\xaf\x62\x2f\x84\x90\x8c\xdc\x50\x75\x5c\xe0\x4e\x14\x4f\x83\x7c\x54\x84\xd1\x77\xb3\x8a\xee\x5c\xe8\x62\xf6\x66\x3b\x8a\x93\x85\x26\x8a\x95\x65\xfa\x67\x14\x53\xd4\x62\xab\x8c\xe6\x88\xf3\x5b\xe7\x86\x8a\x66\x8e\x58\x2a\x61\x70\x69\x6f\x9f\x13\x7a\x92\x78\x93\x6a\x7f\x90\x17\x92\x66\x7d\x10\x7b\xc7\x6e\xf4\x82\x1c\x5c\x3d\x62\xcd\x85\xc1\x6f\x02\x6e\x67\x66\x91\x85\xa6\x63\x7a\x82\x1b\x4f\x8d\x50\x91\x8a\x02\x62\xec\x9b\xc9\x7a\x3d\x7c\x9b\x50\xc5\x90\x19\x70\x8a\x7c\x8b\x64\xec\x66\x5f\x65\x62\x73\x2b\x53\x39\x67\xa0\x55\xa7\x6d\x2a\x7a\x3f\x64\xe6\x79\xa7\x67\xd8\x7b\x26\x96\xbb\x63\x11\x72\xa0\x5c\x6f\x70\x26\x97\xee\x60\xdf\x8a\xfe\x8b\x04\x84\x94\x9b\xd6\x82\xaf\x93\x2c\x66\x06\x96\x40\x5b\xc2\x86\xc7\x79\x49\x80\x17\x69\x19\x70\x92\x96\x3b\x7c\x7e\x59\xd3\x5b\x5c\x7d\x1b\x91\xd8\x6a\x80\x85\xe9\x69\x05\x6c\x93\x50\x2d\x4e\xa6\x7f\xc1\x61\xa4\x8c\xca\x96\x65\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\xd1\x53\xf1\x59\x8a\x8e\xac\x62\xd8\x68\x67\x71\xd5\x7b\x67\x50\x4f\x67\xd0\x82\xd1\x97\x8d\x74\x8b\x80\xba\x73\x36\x51\x4e\x81\x05\x90\xca\x58\x4a\x67\xfe\x6f\xf1\x5f\xfd\x76\xc6\x9a\x0e\x50\x7d\x96\x94\x5e\xf7\x7b\xb8\x90\x4d\x6c\x4e\x85\xfb\x81\x9d\x67\xaf\x56\x4c\x56\x06\x8c\x8c\x56\xda\x73\xed\x8c\xc4\x8f\xc5\x96\xf6\x6c\x50\x89\x44\x8f\x3f\x7d\x5e\x60\xe8\x72\xfc\x7d\x9c\x84\x63\x5c\xfb\x54\x46\x5d\x16\x6c\xa1\x81\xb3\x58\xfa\x5b\xb4\x81\x08\x54\x1f\x8c\xbc\x61\x82\x78\xa9\x6f\xe1\x91\xac", /* 5080 */ "\x76\xf2\x60\x20\x76\xfe\x84\xc9\x7f\x36\x4e\xc7\x75\x5d\x7a\x17\x84\xec\x75\xf4\x4f\x3a\x67\x6d\x74\x60\x62\xf3\x6f\x20\x79\xe4\x87\xf9\x60\x94\x62\x34\x66\xab\x82\x0c\x84\x99\x72\x3a\x5f\xcc\x61\x09\x70\xcf\x72\x61\x7a\x50\x50\x98\x9a\xed\x5d\x69\x60\x1c\x66\x67\x99\xb4\x5e\x7b\x64\x3e\x58\x30\x53\xc9\x7a\x9f\x99\x0c\x9b\x42\x8f\x5f\x7a\xae\x5b\x9b\x68\xa2\x62\x49\x79\x84\x9d\xfa\x54\x51\x93\x2f\x8a\xc4\x5f\x90\x8d\xf3\x5a\x2f\x80\xde\x6d\x29\x7a\x4f\x84\xbc\x9d\x2b\x90\x10\x6d\x38\x91\x6a\x6f\xc1\x99\x05\x6b\xbb\x5e\xb6\x91\xb8\x50\x76\x6f\x0f\x4e\x19\x54\x0f\x96\x75\x6c\x72\x51\xb4\x56\x31\x9f\x20\x66\xa6\x5f\x0a\x75\xab\x51\xf8\x67\x4f\x8d\xf5\x6c\x70\x8a\x6b\x75\x7f\x5c\xac\x68\x41\x8c\xd3\x9b\xdb\x84\x75\x68\x93\x84\x0c\x72\xdb\x75\x77\x85\x68\x78\x3a\x84\x7a\x5f\x10\x83\x1c\x68\x13\x6e\x1a\x9d\xaf\x51\xf9\x79\x80\x4e\x99\x5e\xe3\x90\x8a\x80\xaf\x59\xa8\x77\xdb\x8d\x74\x8a\x1f\x67\x3d\x53\x3f\x8a\x0a\x56\x18\x67\x56\x53\xd9\x4f\x10\x74\x09\x5a\x41\x4f\xf8\x79\xb0\x98\x38\x8e\x2a\x9d\x60\x8f\x44\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xa5\x75\xbe\x90\x6d\x86\x7b\x60\xbc\x51\xb6\x59\x37\x7d\x2f\x91\x6c\x69\xae\x7c\xe0\x79\x2a\x5d\x14\x64\xc1\x58\xec\x58\x9c\x8d\x66\x66\xd9\x61\xf2\x91\x2d\x6e\x58\x94\x35\x96\x5b\x72\x72\x5f\x6a\x5e\x9a\x8f\x1b\x5b\x95\x5c\x39\x90\x13\x83\x4f\x7c\xce\x62\x0a\x90\xed\x69\x1b\x6e\x15\x65\xdb\x66\xfe\x4e\x9f\x55\xaa\x7a\x83\x83\xe9\x8b\x83\x84\x6d\x83\xf0\x7f\x50\x91\x8d\x91\x90\x75\x8e\x95\xa5\x81\xe7\x75\xe2\x61\xa9\x8a\x50\x95\xb2\x53\xa8\x59\xf6\x98\x13\x78\x91\x7c\x17\x6b\x3a\x57\xe0\x62\x0e", /* 5180 */ "\x83\xd6\x8a\xd2\x75\xd4\x92\x7e\x59\xdc\x52\x89\x90\x87\x6f\xfe\x74\x73\x5c\x09\x9d\x6c\x84\xfc\x7c\xdf\x7b\xad\x8a\x6e\x59\x4e\x56\xca\x81\x9a\x79\x47\x66\x36\x53\xe1\x78\x87\x58\xcc\x93\x97\x6e\x13\x52\x56\x82\x8b\x9e\x9f\x95\x83\x65\x8c\x9e\x93\x73\x45\x6e\x26\x9d\x07\x59\x83\x7d\xac\x96\xc1\x61\xbe\x67\x62\x9e\xce\x90\xa8\x91\x87\x9f\x0e\x7c\x38\x51\xf1\x85\x99\x52\x4c\x54\x0e\x79\x01\x65\x5e\x66\x68\x5c\xe1\x75\x66\x76\xc8\x86\x79\x53\x1d\x55\x06\x79\x26\x89\x12\x77\xef\x7c\xc0\x57\x0b\x51\x5c\x7e\x8a\x53\x5c\x8a\x60\x65\xa7\x87\x66\x57\x66\x6a\xe8\x87\xfb\x5e\x16\x7a\xea\x8d\x73\x77\x1e\x73\x7a\x66\xe0\x94\x10\x81\x6b\x7b\x08\x91\xfc\x57\x37\x6f\xe4\x85\x6a\x7e\x55\x99\x57\x87\xba\x69\x4a\x81\x8f\x5e\xff\x89\x1c\x72\xd0\x98\x46\x9e\xdb\x8d\x99\x5d\xd6\x62\xb9\x64\xab\x4f\x76\x61\x3f\x68\xaf\x5f\x14\x80\x0c\x92\xf8\x7b\xc1\x52\xfe\x66\x4f\x91\x77\x51\xf6\x97\xa0\x83\x9e\x64\x7a\x9c\x3a\x68\x05\x7c\x4f\x68\x5f\x9b\x6f\x9f\x4b\x7f\xfb\x93\x48\x4f\xf6\x9e\x92\x91\xb1\x96\xdb\x5b\xe6\x6c\xcc\x7c\xfe\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x53\x68\x22\x66\xb9\x5b\xd4\x98\xf4\x8a\xe6\x81\x54\x78\x27\x74\xbd\x6e\xd3\x92\x88\x5a\x20\x5b\x8b\x86\xf8\x76\x0d\x86\x5c\x66\x41\x91\xc9\x55\x89\x7a\x4e\x59\xe5\x60\x42\x93\x2b\x5b\x5a\x84\x9c\x5c\x91\x96\xcd\x62\xd9\x67\x5c\x67\x87\x5e\x7d\x86\x50\x9e\xb9\x5c\xb1\x80\xce\x7a\x00\x8a\xbc\x57\x00\x80\x96\x7d\x72\x92\x11\x80\x98\x90\x7c\x77\x61\x87\x37\x90\x75\x81\x7a\x7c\x3e\x6e\xa2\x96\x5e\x7e\x90\x72\xd7\x58\xfd\x60\xb3\x97\x86\x7e\x88\x58\x7e\x6e\x20\x84\xdc\x69\x61\x77\xad\x51\x97\x65\x2a", /* 5280 */ "\x67\x77\x5d\xcd\x61\x01\x93\x2e\x59\x54\x63\x67\x79\x8d\x7a\xff\x80\xd6\x58\xb3\x61\x68\x6a\xc3\x74\x83\x9b\x92\x66\x0a\x64\x2d\x51\x18\x67\x63\x80\x9b\x9c\x10\x4f\xc9\x69\x53\x7a\x1c\x52\xff\x60\x55\x76\x8e\x81\x7f\x56\x42\x5f\x6d\x71\x94\x70\xbb\x74\x36\x80\x00\x88\x1f\x55\xda\x74\x35\x76\x90\x96\xeb\x66\xdd\x75\x1c\x63\x3d\x6e\xc9\x7c\x64\x7c\xa5\x6d\x35\x93\x5c\x70\x27\x5e\x25\x70\x1d\x54\xbd\x61\x1a\x69\x73\x6c\x6a\x55\x9a\x6d\x19\x96\xcc\x5b\xe1\x59\xfb\x69\x7c\x91\x4c\x77\x09\x85\x00\x7a\x46\x78\x72\x92\xe4\x8c\xed\x7c\xfa\x9d\x1b\x81\x4e\x9a\xc4\x68\xa0\x6d\xcb\x59\x18\x84\x0a\x56\x29\x9b\x41\x68\x97\x70\xb3\x97\x71\x94\x19\x67\xa2\x68\x02\x78\x95\x68\xa7\x50\xd6\x80\xb1\x5e\xf8\x82\xd4\x79\x7a\x67\xca\x7e\x61\x69\xcd\x51\xc4\x72\x3d\x68\x29\x99\xb3\x5f\x3c\x8f\x61\x68\x2b\x61\x55\x65\x91\x8f\xb1\x7e\x1b\x97\x98\x99\x52\x88\x77\x5b\x2c\x66\x31\x4f\xe0\x69\x39\x6a\xfb\x5b\xb5\x7a\xc8\x50\x26\x59\x44\x90\x59\x7b\x25\x7b\x4f\x8e\x74\x85\x43\x58\x58\x8b\x0e\x50\x39\x86\x54\x97\xf6\x75\x69\x72\xf8\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf7\x9d\x89\x50\x16\x51\xcc\x62\xcc\x91\xc6\x87\x55\x64\x9a\x88\xf4\x91\xe6\x68\x54\x69\x5a\x6c\x40\x7b\x6c\x67\x41\x77\xd7\x88\x23\x53\x84\x8e\xc0\x72\x80\x8c\x6b\x78\x8d\x71\x65\x82\x07\x68\xb1\x8d\x04\x90\x77\x70\x1e\x8f\xe6\x81\x0a\x81\xbf\x89\xdc\x68\xb3\x6a\xdf\x92\xea\x95\xc7\x79\x57\x7a\x20\x53\xa9\x8e\x5f\x78\x6f\x79\xb9\x5f\x27\x5e\xd6\x68\x53\x93\xac\x91\x9c\x69\x1a\x58\x06\x64\xb0\x7e\x6b\x7d\x8f\x68\xf2\x6e\xa5\x82\xdb\x91\x92\x52\x43\x8e\xb0\x90\x81\x72\x1b\x7d\xcb\x76\x56\x59\xac", /* 5380 */ "\x6f\xe0\x8b\x28\x80\xa2\x55\x44\x60\x70\x5f\x4a\x68\xc8\x63\x3a\x94\x38\x9b\x4f\x81\xe5\x6a\x17\x70\xdd\x69\xa7\x61\x4c\x92\x0e\x93\x10\x9b\xad\x52\xd7\x92\x5e\x92\xf9\x59\x93\x76\x96\x66\xfb\x57\x69\x73\xca\x76\x78\x6a\x1f\x7e\x9c\x98\x11\x8c\xd1\x58\x40\x63\x49\x87\x1c\x62\xd0\x60\xb4\x6b\x89\x86\xee\x57\x64\x58\x1d\x85\x49\x72\x35\x76\x52\x98\x3b\x82\x37\x53\x51\x5c\x24\x59\xbe\x58\x15\x90\x1d\x69\xb4\x83\x4a\x9e\xa9\x97\x6b\x80\x86\x53\xad\x60\x68\x4f\xae\x76\xc3\x6a\x05\x68\x9b\x93\x7e\x99\xd5\x91\xc7\x5c\x16\x58\x5e\x61\xa7\x96\x99\x4f\xdf\x82\x78\x9c\x52\x5f\x45\x61\x08\x7c\x8d\x80\x6f\x5d\xf7\x8d\x6b\x57\xb0\x98\xe2\x57\x03\x79\xbf\x59\x96\x79\x41\x54\x0a\x83\xdf\x9c\x39\x52\xd2\x6b\xd8\x86\xcb\x4e\xc0\x9a\x52\x53\x66\x80\x06\x73\x37\x64\x92\x8f\xed\x5a\xc9\x54\x20\x53\x7f\x4f\xaf\x80\x7e\x54\x3b\x75\x15\x7b\x18\x87\xec\x54\xb3\x70\x4c\x89\x97\x6c\xab\x85\xfa\x71\x30\x69\x6e\x93\x28\x74\x5a\x59\xd1\x6e\x5b\x61\x7e\x53\xe2\x83\x17\x76\xe7\x85\x23\x85\xaf\x69\x25\x5c\x60\x72\x59\x75\xd5\x8b\x90\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x07\x82\xad\x5c\x5b\x7b\xed\x97\x84\x6f\x70\x76\x4c\x88\xb7\x92\xd2\x4f\x36\x5e\xfe\x90\x61\x88\xe1\x84\x71\x71\x1a\x6d\x1b\x80\xb4\x74\xe2\x74\x33\x5a\x7f\x90\x5c\x98\x0c\x53\x19\x90\x6e\x6b\xb4\x85\xaa\x78\x97\x7a\xfa\x6a\xae\x89\x10\x95\x8f\x62\x0c\x4f\x3d\x4f\x7c\x79\xbe\x9d\xd7\x4e\xd4\x57\xa2\x51\xa5\x69\x00\x60\x89\x70\x7c\x7a\xe3\x89\x56\x93\xa7\x9c\x2d\x51\x12\x52\xfa\x7c\xca\x60\xf9\x70\x78\x81\xc6\x55\x9d\x69\x91\x96\xc9\x55\x3e\x80\x5a\x83\x04\x83\x32\x54\xfa\x56\x99\x8f\xbf\x56\x34", /* 5480 */ "\x67\x60\x52\x65\x84\x0e\x5e\x5f\x7b\x65\x90\x35\x83\x87\x6b\x4e\x58\xbe\x63\x09\x72\x7d\x97\xad\x69\xd0\x54\x6a\x98\x4e\x63\x2b\x71\x4e\x85\x57\x7c\xde\x63\x72\x68\xf9\x75\x11\x86\x02\x6e\xba\x5a\x3c\x7a\x84\x85\x1a\x95\xa4\x59\xd0\x60\xda\x51\xea\x5a\x29\x71\x69\x6f\x15\x69\x6b\x64\x14\x76\x26\x4e\x4e\x7d\xbb\x69\x34\x85\x21\x8f\xfa\x93\x54\x9c\x3b\x5f\x17\x5e\xd3\x82\x58\x89\x5f\x82\xe7\x52\xc3\x5c\x51\x83\xab\x78\x26\x79\xe1\x7f\xf0\x62\x6e\x60\xf0\x5c\xa8\x6f\x97\x71\xa8\x99\x09\x51\x32\x5e\x37\x5f\x04\x63\x7b\x67\x53\x68\xd7\x66\x52\x9c\xf6\x88\xb0\x52\xab\x4f\xc4\x4e\x3c\x67\xb3\x7c\x1e\x7f\x4d\x8a\x23\x64\x51\x71\xe6\x65\xa4\x6f\x09\x85\x3d\x50\x72\x7d\xba\x55\x5e\x7b\x04\x72\xfd\x6c\xd3\x84\x22\x62\x1f\x50\xad\x82\x35\x87\x18\x59\x19\x60\x28\x67\x7c\x6f\x23\x75\xb9\x69\x5c\x52\x0e\x80\x18\x8b\x01\x71\xed\x57\x13\x66\x0f\x83\xeb\x71\x64\x7d\x9b\x56\x17\x7d\x7d\x8f\x4d\x93\x18\x85\x69\x5d\x17\x67\x8c\x67\xde\x87\xc7\x79\xae\x58\x35\x84\x04\x90\x41\x7f\xd4\x6f\x51\x8a\x63\x9d\x08\x67\x0f\x93\x9a\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xac\x60\x2f\x64\xe2\x60\x8d\x96\xb7\x63\x57\x84\x61\x91\x4b\x75\xd8\x60\xe7\x99\x13\x9c\x57\x59\x84\x6d\xeb\x5e\x96\x70\x06\x9b\xf0\x58\xbb\x79\xb1\x60\xb6\x63\x3f\x5b\xf5\x98\x12\x55\x8b\x82\xd3\x51\x47\x61\x90\x79\x53\x79\xbd\x6c\x5d\x9e\xba\x9c\x48\x8d\xa8\x5e\xe0\x7d\x43\x5e\xfc\x85\x4e\x8c\xe4\x5a\xe1\x54\xe8\x50\x23\x52\xbe\x7d\xec\x85\x11\x66\x66\x6c\x3e\x72\x4c\x8a\xdc\x9c\x0d\x77\xa5\x8b\x02\x8d\x05\x6f\x11\x98\x34\x97\xfb\x50\xfb\x7f\x75\x5a\x03\x85\x13\x4f\xb6\x63\x4c\x9d\x61\x80\x8b", /* 5580 */ "\x52\x94\x65\xa1\x56\x7a\x59\x57\x8d\x0b\x6a\x35\x6a\xd3\x70\xf9\x86\x5e\x6f\xb1\x51\xe7\x7f\xeb\x59\xea\x5e\x87\x6b\x6a\x75\x4f\x71\x7d\x91\x4e\x7d\x2c\x8c\x79\x60\x62\x62\x1a\x7f\xa8\x5f\x1b\x6c\x8c\x86\xfe\x75\x62\x7b\x86\x9a\xb8\x66\x27\x7a\xba\x84\x4e\x6f\x81\x8b\x2c\x86\xa4\x6f\xeb\x7b\x8b\x7f\x77\x8f\x2f\x8e\x44\x7e\x23\x4e\x4d\x79\xa6\x8a\xfa\x90\x3c\x50\xd1\x9e\xcd\x5e\xdf\x75\x8f\x63\x1f\x53\xdb\x99\x10\x82\x6e\x62\xf7\x68\xfa\x72\x5d\x80\x3d\x58\xd5\x5c\x4d\x86\xd9\x54\x0b\x88\x05\x92\xf2\x92\x37\x5c\x62\x98\x5b\x86\xe4\x96\x6a\x72\x62\x69\x55\x6c\xd7\x69\x94\x9c\x2f\x77\xe7\x68\xc9\x8d\xe8\x6d\x6c\x67\xc1\x9b\xaa\x61\x9a\x63\xa9\x70\x15\x93\x06\x93\x4d\x6a\x61\x62\x58\x52\x83\x75\x25\x56\x87\x6c\x83\x68\x34\x64\x9e\x4e\x9b\x72\x52\x59\xe6\x8f\xc2\x5f\xbd\x6d\xd8\x85\xf7\x8a\x51\x98\x17\x99\xc1\x63\xa0\x7c\x81\x5b\x30\x81\x39\x54\x03\x7e\x82\x81\x06\x53\x2a\x6a\x8e\x7f\x6b\x54\xe9\x56\x78\x8a\xb9\x67\x15\x5b\xd3\x64\x78\x64\xfe\x6b\x1d\x8c\xc2\x51\xcb\x7e\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x0c\x4e\x10\x4e\x15\x4e\x28\x4e\x2a\x4e\x31\x4e\x36\x4e\x3f\x4e\x42\x4e\x56\x4e\x58\x4e\x62\x4e\x82\x4e\x85\x4e\x8a\x4e\x8e\x5f\x0d\x4e\x9e\x4e\xa0\x4e\xa2\x4e\xb0\x4e\xb3\x4e\xb6\x4e\xce\x4e\xcd\x4e\xc4\x4e\xc6\x4e\xc2\x4e\xe1\x4e\xd7\x4e\xde\x4e\xed\x4e\xdf\x4e\xfc\x4f\x09\x4f\x1c\x4f\x00\x4f\x03\x4f\x5a\x4f\x30\x4f\x5d\x4f\x39\x4f\x57\x4f\x47\x4f\x5e\x4f\x56\x4f\x5b\x4f\x92\x4f\x8a\x4f\x88\x4f\x8f\x4f\x9a\x4f\xad\x4f\x98\x4f\x7b\x4f\xab\x4f\x69\x4f\x70\x4f\x94\x4f\x6f\x4f\x86\x4f\x96\x4f\xd4", /* 5680 */ "\x4f\xce\x4f\xd8\x4f\xdb\x4f\xd1\x4f\xda\x4f\xd0\x4f\xcd\x4f\xe4\x4f\xe5\x50\x1a\x50\x40\x50\x28\x50\x14\x50\x2a\x50\x25\x50\x05\x50\x21\x50\x22\x50\x29\x50\x2c\x4f\xff\x4f\xfe\x4f\xef\x50\x11\x50\x1e\x50\x06\x50\x43\x50\x47\x50\x55\x50\x50\x50\x48\x50\x5a\x50\x56\x50\x0f\x50\x46\x50\x70\x50\x42\x50\x6c\x50\x78\x50\x80\x50\x94\x50\x9a\x50\x85\x50\xb4\x67\x03\x50\xb2\x50\xc9\x50\xca\x50\xb3\x50\xc2\x50\xf4\x50\xde\x50\xe5\x50\xd8\x50\xed\x50\xe3\x50\xee\x50\xf9\x50\xf5\x51\x09\x51\x01\x51\x02\x51\x1a\x51\x15\x51\x14\x51\x16\x51\x21\x51\x3a\x51\x37\x51\x3c\x51\x3b\x51\x3f\x51\x40\x51\x4a\x51\x4c\x51\x52\x51\x54\x51\x62\x51\x64\x51\x69\x51\x6a\x51\x6e\x51\x80\x51\x82\x56\xd8\x51\x8c\x51\x89\x51\x8f\x51\x91\x51\x93\x51\x95\x51\x96\x51\x9d\x51\xa4\x51\xa6\x51\xa2\x51\xa9\x51\xaa\x51\xab\x51\xb3\x51\xb1\x51\xb2\x51\xb0\x51\xb5\x51\xbe\x51\xbd\x51\xc5\x51\xc9\x51\xdb\x51\xe0\x51\xe9\x51\xec\x51\xed\x51\xf0\x51\xf5\x51\xfe\x52\x04\x52\x0b\x52\x14\x52\x15\x52\x27\x52\x2a\x52\x2e\x52\x33\x52\x39\x52\x44\x52\x4b\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x4f\x52\x5e\x52\x54\x52\x71\x52\x6a\x52\x73\x52\x74\x52\x69\x52\x7f\x52\x7d\x52\x8d\x52\x88\x52\x92\x52\x91\x52\x9c\x52\xa6\x52\xac\x52\xad\x52\xbc\x52\xb5\x52\xc1\x52\xc0\x52\xcd\x52\xdb\x52\xde\x52\xe3\x52\xe6\x52\xe0\x52\xf3\x52\xf5\x52\xf8\x52\xf9\x53\x00\x53\x06\x53\x07\x53\x08\x75\x38\x53\x0d\x53\x10\x53\x0f\x53\x15\x53\x1a\x53\x24\x53\x23\x53\x2f\x53\x31\x53\x33\x53\x38\x53\x40\x53\x45\x53\x46\x53\x49\x4e\x17\x53\x4d\x51\xd6\x82\x09\x53\x5e\x53\x69\x53\x6e\x53\x72\x53\x77\x53\x7b\x53\x82", /* 5780 */ "\x53\x93\x53\x96\x53\xa0\x53\xa6\x53\xa5\x53\xae\x53\xb0\x53\xb2\x53\xb6\x53\xc3\x7c\x12\x53\xdd\x53\xdf\x66\xfc\xfa\x0e\x71\xee\x53\xee\x53\xe8\x53\xed\x53\xfa\x54\x01\x54\x3d\x54\x40\x54\x2c\x54\x2d\x54\x3c\x54\x2e\x54\x36\x54\x29\x54\x1d\x54\x4e\x54\x8f\x54\x75\x54\x8e\x54\x5f\x54\x71\x54\x77\x54\x70\x54\x92\x54\x7b\x54\x80\x54\x9c\x54\x76\x54\x84\x54\x90\x54\x86\x54\x8a\x54\xc7\x54\xbc\x54\xaf\x54\xa2\x54\xb8\x54\xa5\x54\xac\x54\xc4\x54\xd8\x54\xc8\x54\xa8\x54\xab\x54\xc2\x54\xa4\x54\xa9\x54\xbe\x54\xe5\x54\xff\x54\xe6\x55\x0f\x55\x14\x54\xfd\x54\xee\x54\xed\x54\xe2\x55\x39\x55\x40\x55\x63\x55\x4c\x55\x2e\x55\x5c\x55\x45\x55\x56\x55\x57\x55\x38\x55\x33\x55\x5d\x55\x99\x55\x80\x55\x8a\x55\x9f\x55\x7b\x55\x7e\x55\x98\x55\x9e\x55\xae\x55\x7c\x55\x86\x55\x83\x55\xa9\x55\x87\x55\xa8\x55\xc5\x55\xdf\x55\xc4\x55\xdc\x55\xe4\x55\xd4\x55\xf9\x56\x14\x55\xf7\x56\x16\x55\xfe\x55\xfd\x56\x1b\x56\x4e\x56\x50\x56\x36\x56\x32\x56\x38\x56\x6b\x56\x64\x56\x86\x56\x2f\x56\x6c\x56\x6a\x71\xdf\x56\x94\x56\x8f\x56\x80\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8a\x56\xa0\x56\xa5\x56\xae\x56\xb6\x56\xb4\x56\xc8\x56\xc2\x56\xbc\x56\xc1\x56\xc3\x56\xc0\x56\xce\x56\xd3\x56\xd1\x56\xd7\x56\xee\x56\xf9\x56\xff\x57\x04\x57\x09\x57\x08\x57\x0d\x55\xc7\x57\x18\x57\x16\x57\x1c\x57\x26\x57\x38\x57\x4e\x57\x3b\x57\x59\x57\x40\x57\x4f\x57\x65\x57\x88\x57\x61\x57\x7f\x57\x89\x57\x93\x57\xa0\x57\xa4\x57\xb3\x57\xac\x57\xaa\x57\xc3\x57\xc6\x57\xc8\x57\xc0\x57\xd4\x57\xc7\x57\xd2\x57\xd3\x57\xd6\xfa\x0f\x58\x0a\x57\xe3\x58\x0b\x58\x19\x58\x21\x58\x4b\x58\x62\x6b\xc0", /* 5880 */ "\x58\x3d\x58\x52\xfa\x10\x58\x70\x58\x79\x58\x85\x58\x72\x58\x9f\x58\xab\x58\xb8\x58\x9e\x58\xae\x58\xb2\x58\xb9\x58\xba\x58\xc5\x58\xd3\x58\xd1\x58\xd7\x58\xd9\x58\xd8\x58\xde\x58\xdc\x58\xdf\x58\xe4\x58\xe5\x58\xef\x58\xf7\x58\xf9\x58\xfb\x58\xfc\x59\x02\x59\x0a\x59\x0b\x59\x10\x59\x1b\x68\xa6\x59\x25\x59\x2c\x59\x2d\x59\x32\x59\x38\x59\x3e\x59\x55\x59\x50\x59\x53\x59\x5a\x59\x58\x59\x5b\x59\x5d\x59\x63\x59\x62\x59\x60\x59\x67\x59\x6c\x59\x69\x59\x78\x59\x81\x59\x8d\x59\x9b\x59\x9d\x59\xa3\x59\xa4\x59\xb2\x59\xba\x59\xc6\x59\xe8\x59\xd9\x59\xda\x5a\x25\x5a\x1f\x5a\x11\x5a\x1c\x5a\x1a\x5a\x09\x5a\x40\x5a\x6c\x5a\x49\x5a\x35\x5a\x36\x5a\x62\x5a\x6a\x5a\x9a\x5a\xbc\x5a\xbe\x5a\xd0\x5a\xcb\x5a\xc2\x5a\xbd\x5a\xe3\x5a\xd7\x5a\xe6\x5a\xe9\x5a\xd6\x5a\xfa\x5a\xfb\x5b\x0c\x5b\x0b\x5b\x16\x5b\x32\x5b\x2a\x5b\x36\x5b\x3e\x5b\x43\x5b\x45\x5b\x40\x5b\x51\x5b\x55\x5b\x56\x65\x88\x5b\x5b\x5b\x65\x5b\x69\x5b\x70\x5b\x73\x5b\x75\x5b\x78\x5b\x7a\x5b\x80\x5b\x83\x5b\xa6\x5b\xb8\x5b\xc3\x5b\xc7\x5b\xc0\x5b\xc9\x75\x2f\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd0\x5b\xd8\x5b\xde\x5b\xec\x5b\xe4\x5b\xe2\x5b\xe5\x5b\xeb\x5b\xf0\x5b\xf3\x5b\xf6\x5c\x05\x5c\x07\x5c\x08\x5c\x0d\x5c\x13\x5c\x1e\x5c\x20\x5c\x22\x5c\x28\x5c\x38\x5c\x41\x5c\x46\x5c\x4e\x5c\x53\x5c\x50\x5b\x71\x5c\x6c\x5c\x6e\x5c\x76\x5c\x79\x5c\x8c\x5c\x94\x5c\xbe\x5c\xab\x5c\xbb\x5c\xb6\x5c\xb7\x5c\xa6\x5c\xba\x5c\xc5\x5c\xbc\x5c\xc7\x5c\xd9\x5c\xe9\x5c\xfd\x5c\xfa\x5c\xf5\x5c\xed\x5c\xea\x5d\x0b\x5d\x15\x5d\x1f\x5d\x1b\x5d\x11\x5d\x27\x5d\x22\x5d\x1a\x5d\x19\x5d\x18\x5d\x4c\x5d\x52\x5d\x53", /* 5980 */ "\xfa\x11\x5d\x5c\x5d\x4e\x5d\x4b\x5d\x42\x5d\x6c\x5d\x73\x5d\x6d\x5d\x76\x5d\x87\x5d\x84\x5d\x82\x5d\x8c\x5d\xa2\x5d\x9d\x5d\x90\x5d\xac\x5d\xae\x5d\xb7\x5d\xb8\x5d\xbc\x5d\xb9\x5d\xc9\x5d\xd0\x5d\xd3\x5d\xd2\x5d\xdb\x5d\xeb\x5d\xf5\x5e\x0b\x5e\x1a\x5e\x19\x5e\x11\x5e\x1b\x5e\x36\x5e\x44\x5e\x43\x5e\x40\x5e\x47\x5e\x4e\x5e\x57\x5e\x54\x5e\x62\x5e\x64\x5e\x75\x5e\x76\x5e\x7a\x5e\x7f\x5e\xa0\x5e\xc1\x5e\xc2\x5e\xc8\x5e\xd0\x5e\xcf\x5e\xdd\x5e\xda\x5e\xdb\x5e\xe2\x5e\xe1\x5e\xe8\x5e\xe9\x5e\xec\x5e\xf0\x5e\xf1\x5e\xf3\x5e\xf4\x5f\x03\x5f\x09\x5f\x0b\x5f\x11\x5f\x16\x5f\x21\x5f\x29\x5f\x2d\x5f\x2f\x5f\x34\x5f\x38\x5f\x41\x5f\x48\x5f\x4c\x5f\x4e\x5f\x51\x5f\x56\x5f\x57\x5f\x59\x5f\x5c\x5f\x5d\x5f\x61\x5f\x67\x5f\x73\x5f\x77\x5f\x83\x5f\x82\x5f\x7f\x5f\x8a\x5f\x88\x5f\x87\x5f\x91\x5f\x99\x5f\x9e\x5f\x98\x5f\xa0\x5f\xa8\x5f\xad\x5f\xb7\x5f\xbc\x5f\xd6\x5f\xfb\x5f\xe4\x5f\xf8\x5f\xf1\x5f\xf0\x5f\xdd\x5f\xde\x5f\xff\x60\x21\x60\x19\x60\x10\x60\x29\x60\x0e\x60\x31\x60\x1b\x60\x15\x60\x2b\x60\x26\x60\x0f\x60\x3a\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x5a\x60\x41\x60\x60\x60\x5d\x60\x6a\x60\x77\x60\x5f\x60\x4a\x60\x46\x60\x4d\x60\x63\x60\x43\x60\x64\x60\x6c\x60\x6b\x60\x59\x60\x85\x60\x81\x60\x83\x60\x9a\x60\x84\x60\x9b\x60\x8a\x60\x96\x60\x97\x60\x92\x60\xa7\x60\x8b\x60\xe1\x60\xb8\x60\xde\x60\xe0\x60\xd3\x60\xbd\x60\xc6\x60\xb5\x60\xd5\x60\xd8\x61\x20\x60\xf2\x61\x15\x61\x06\x60\xf6\x60\xf7\x61\x00\x60\xf4\x60\xfa\x61\x03\x61\x21\x60\xfb\x60\xf1\x61\x0d\x61\x0e\x61\x11\x61\x47\x61\x4d\x61\x37\x61\x28\x61\x27\x61\x3e\x61\x4a\x61\x30\x61\x3c", /* 5a80 */ "\x61\x2c\x61\x34\x61\x65\x61\x5d\x61\x3d\x61\x42\x61\x44\x61\x73\x61\x87\x61\x77\x61\x58\x61\x59\x61\x5a\x61\x6b\x61\x74\x61\x6f\x61\x71\x61\x5f\x61\x53\x61\x75\x61\x98\x61\x99\x61\x96\x61\xac\x61\x94\x61\x8a\x61\x91\x61\xab\x61\xae\x61\xcc\x61\xca\x61\xc9\x61\xc8\x61\xc3\x61\xc6\x61\xba\x61\xcb\x7f\x79\x61\xcd\x61\xe6\x61\xe3\x61\xf4\x61\xf7\x61\xf6\x61\xfd\x61\xfa\x61\xff\x61\xfc\x61\xfe\x62\x00\x62\x08\x62\x09\x62\x0d\x62\x13\x62\x14\x62\x1b\x62\x1e\x62\x21\x62\x2a\x62\x2e\x62\x30\x62\x32\x62\x33\x62\x41\x62\x4e\x62\x5e\x62\x63\x62\x5b\x62\x60\x62\x68\x62\x7c\x62\x82\x62\x89\x62\x92\x62\x7e\x62\x93\x62\x96\x62\x83\x62\x94\x62\xd7\x62\xd1\x62\xbb\x62\xcf\x62\xac\x62\xc6\x62\xc8\x62\xdc\x62\xd4\x62\xca\x62\xc2\x62\xa6\x62\xc7\x62\x9b\x62\xc9\x63\x0c\x62\xee\x62\xf1\x63\x27\x63\x02\x63\x08\x62\xef\x62\xf5\x62\xff\x63\x50\x63\x4d\x63\x3e\x63\x4f\x63\x96\x63\x8e\x63\x80\x63\xab\x63\x76\x63\xa3\x63\x8f\x63\x89\x63\x9f\x63\x6b\x63\x69\x63\xb5\x63\xbe\x63\xe9\x63\xc0\x63\xc6\x63\xf5\x63\xe3\x63\xc9\x63\xd2\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf6\x63\xc4\x64\x34\x64\x06\x64\x13\x64\x26\x64\x36\x64\x1c\x64\x17\x64\x28\x64\x0f\x64\x16\x64\x4e\x64\x67\x64\x6f\x64\x60\x64\x76\x64\xb9\x64\x9d\x64\xce\x64\x95\x64\xbb\x64\x93\x64\xa5\x64\xa9\x64\x88\x64\xbc\x64\xda\x64\xd2\x64\xc5\x64\xc7\x64\xd4\x64\xd8\x64\xc2\x64\xf1\x64\xe7\x64\xe0\x64\xe1\x64\xe3\x64\xef\x64\xf4\x64\xf6\x64\xf2\x64\xfa\x65\x00\x64\xfd\x65\x18\x65\x1c\x65\x1d\x65\x22\x65\x24\x65\x23\x65\x2b\x65\x2c\x65\x34\x65\x35\x65\x37\x65\x36\x65\x38\x75\x4b\x65\x48\x65\x4e\x65\x56", /* 5b80 */ "\x65\x4d\x65\x58\x65\x55\x65\x5d\x65\x72\x65\x78\x65\x82\x65\x83\x8b\x8a\x65\x9b\x65\x9f\x65\xab\x65\xb7\x65\xc3\x65\xc6\x65\xc1\x65\xc4\x65\xcc\x65\xd2\x65\xd9\x65\xe1\x65\xe0\x65\xf1\x66\x00\x66\x15\x66\x02\x67\x72\x66\x03\x65\xfb\x66\x09\x66\x3f\x66\x35\x66\x2e\x66\x1e\x66\x34\x66\x1c\x66\x24\x66\x44\x66\x49\x66\x65\x66\x57\x66\x5e\x66\x64\x66\x59\x66\x62\x66\x5d\xfa\x12\x66\x73\x66\x70\x66\x83\x66\x88\x66\x84\x66\x99\x66\x98\x66\xa0\x66\x9d\x66\xb2\x66\xc4\x66\xc1\x66\xbf\x66\xc9\x66\xbe\x66\xbc\x66\xb8\x66\xd6\x66\xda\x66\xe6\x66\xe9\x66\xf0\x66\xf5\x66\xf7\x66\xfa\x67\x0e\xf9\x29\x67\x16\x67\x1e\x7e\x22\x67\x26\x67\x27\x97\x38\x67\x2e\x67\x3f\x67\x36\x67\x37\x67\x38\x67\x46\x67\x5e\x67\x59\x67\x66\x67\x64\x67\x89\x67\x85\x67\x70\x67\xa9\x67\x6a\x67\x8b\x67\x73\x67\xa6\x67\xa1\x67\xbb\x67\xb7\x67\xef\x67\xb4\x67\xec\x67\xe9\x67\xb8\x67\xe7\x67\xe4\x68\x52\x67\xdd\x67\xe2\x67\xee\x67\xc0\x67\xce\x67\xb9\x68\x01\x67\xc6\x68\x1e\x68\x46\x68\x4d\x68\x40\x68\x44\x68\x32\x68\x4e\x68\x63\x68\x59\x68\x8e\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x77\x68\x7f\x68\x9f\x68\x7e\x68\x8f\x68\xad\x68\x94\x68\x83\x68\xbc\x68\xb9\x68\x74\x68\xb5\x68\xba\x69\x0f\x69\x01\x68\xca\x69\x08\x68\xd8\x69\x26\x68\xe1\x69\x0c\x68\xcd\x68\xd4\x68\xe7\x68\xd5\x69\x12\x68\xef\x69\x04\x68\xe3\x68\xe0\x68\xcf\x68\xc6\x69\x22\x69\x2a\x69\x21\x69\x23\x69\x28\xfa\x13\x69\x79\x69\x77\x69\x36\x69\x78\x69\x54\x69\x6a\x69\x74\x69\x68\x69\x3d\x69\x59\x69\x30\x69\x5e\x69\x5d\x69\x7e\x69\x81\x69\xb2\x69\xbf\xfa\x14\x69\x98\x69\xc1\x69\xd3\x69\xbe\x69\xce\x5b\xe8\x69\xca", /* 5c80 */ "\x69\xb1\x69\xdd\x69\xbb\x69\xc3\x69\xa0\x69\x9c\x69\x95\x69\xde\x6a\x2e\x69\xe8\x6a\x02\x6a\x1b\x69\xff\x69\xf9\x69\xf2\x69\xe7\x69\xe2\x6a\x1e\x69\xed\x6a\x14\x69\xeb\x6a\x0a\x6a\x22\x6a\x12\x6a\x23\x6a\x13\x6a\x30\x6a\x6b\x6a\x44\x6a\x0c\x6a\xa0\x6a\x36\x6a\x78\x6a\x47\x6a\x62\x6a\x59\x6a\x66\x6a\x48\x6a\x46\x6a\x38\x6a\x72\x6a\x73\x6a\x90\x6a\x8d\x6a\x84\x6a\xa2\x6a\xa3\x6a\x7e\x6a\x97\x6a\xac\x6a\xaa\x6a\xbb\x6a\xc2\x6a\xb8\x6a\xb3\x6a\xc1\x6a\xde\x6a\xe2\x6a\xd1\x6a\xda\x6a\xe4\x86\x16\x86\x17\x6a\xea\x6b\x05\x6b\x0a\x6a\xfa\x6b\x12\x6b\x16\x6b\x1f\x6b\x38\x6b\x37\x6b\x39\x76\xdc\x98\xee\x6b\x47\x6b\x43\x6b\x49\x6b\x50\x6b\x59\x6b\x54\x6b\x5b\x6b\x5f\x6b\x61\x6b\x78\x6b\x79\x6b\x7f\x6b\x80\x6b\x84\x6b\x83\x6b\x8d\x6b\x98\x6b\x95\x6b\x9e\x6b\xa4\x6b\xaa\x6b\xab\x6b\xaf\x6b\xb1\x6b\xb2\x6b\xb3\x6b\xb7\x6b\xbc\x6b\xc6\x6b\xcb\x6b\xd3\x6b\xd6\x6b\xdf\x6b\xec\x6b\xeb\x6b\xf3\x6b\xef\x6c\x08\x6c\x13\x6c\x14\x6c\x1b\x6c\x24\x6c\x23\x6c\x3f\x6c\x5e\x6c\x55\x6c\x5c\x6c\x62\x6c\x82\x6c\x8d\x6c\x86\x6c\x6f\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9a\x6c\x81\x6c\x9b\x6c\x7e\x6c\x68\x6c\x73\x6c\x92\x6c\x90\x6c\xc4\x6c\xf1\x6c\xbd\x6c\xc5\x6c\xae\x6c\xda\x6c\xdd\x6c\xb1\x6c\xbe\x6c\xba\x6c\xdb\x6c\xef\x6c\xd9\x6c\xea\x6d\x1f\x6d\x04\x6d\x36\x6d\x2b\x6d\x3d\x6d\x33\x6d\x12\x6d\x0c\x6d\x63\x6d\x87\x6d\x93\x6d\x6f\x6d\x64\x6d\x5a\x6d\x79\x6d\x59\x6d\x8e\x6d\x95\x6d\x9b\x6d\x85\x6d\x96\x6d\xf9\x6e\x0a\x6e\x2e\x6d\xb5\x6d\xe6\x6d\xc7\x6d\xac\x6d\xb8\x6d\xcf\x6d\xc6\x6d\xec\x6d\xde\x6d\xcc\x6d\xe8\x6d\xf8\x6d\xd2\x6d\xc5\x6d\xfa\x6d\xd9\x6d\xf2", /* 5d80 */ "\x6d\xfc\x6d\xe4\x6d\xd5\x6d\xea\x6d\xee\x6e\x2d\x6e\x6e\x6e\x19\x6e\x72\x6e\x5f\x6e\x39\x6e\x3e\x6e\x23\x6e\x6b\x6e\x5c\x6e\x2b\x6e\x76\x6e\x4d\x6e\x1f\x6e\x27\x6e\x43\x6e\x3c\x6e\x3a\x6e\x4e\x6e\x24\x6e\x1d\x6e\x38\x6e\x82\x6e\xaa\x6e\x98\x6e\xb7\x6e\xbd\x6e\xaf\x6e\xc4\x6e\xb2\x6e\xd4\x6e\xd5\x6e\x8f\x6e\xbf\x6e\xc2\x6e\x9f\x6f\x41\x6f\x45\x6e\xec\x6e\xf8\x6e\xfe\x6f\x3f\x6e\xf2\x6f\x31\x6e\xef\x6f\x32\x6e\xcc\x6e\xff\x6f\x3e\x6f\x13\x6e\xf7\x6f\x86\x6f\x7a\x6f\x78\x6f\x80\x6f\x6f\x6f\x5b\x6f\x6d\x6f\x74\x6f\x82\x6f\x88\x6f\x7c\x6f\x58\x6f\xc6\x6f\x8e\x6f\x91\x6f\x66\x6f\xb3\x6f\xa3\x6f\xb5\x6f\xa1\x6f\xb9\x6f\xdb\x6f\xaa\x6f\xc2\x6f\xdf\x6f\xd5\x6f\xec\x6f\xd8\x6f\xd4\x6f\xf5\x6f\xee\x70\x05\x70\x07\x70\x09\x70\x0b\x6f\xfa\x70\x11\x70\x01\x70\x0f\x70\x1b\x70\x1a\x70\x1f\x6f\xf3\x70\x28\x70\x18\x70\x30\x70\x3e\x70\x32\x70\x51\x70\x63\x70\x85\x70\x99\x70\xaf\x70\xab\x70\xac\x70\xb8\x70\xae\x70\xdf\x70\xcb\x70\xd9\x71\x09\x71\x0f\x71\x04\x70\xf1\x70\xfd\x71\x1c\x71\x19\x71\x5c\x71\x46\x71\x47\x71\x66\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x62\x71\x4c\x71\x56\x71\x6c\x71\x88\x71\x8f\x71\x84\x71\x95\xfa\x15\x71\xac\x71\xc1\x71\xb9\x71\xbe\x71\xd2\x71\xe7\x71\xc9\x71\xd4\x71\xd7\x71\xce\x71\xf5\x71\xe0\x71\xec\x71\xfb\x71\xfc\x71\xf9\x71\xfe\x71\xff\x72\x0d\x72\x10\x72\x28\x72\x2d\x72\x2c\x72\x30\x72\x32\x72\x3b\x72\x3c\x72\x3f\x72\x40\x72\x46\x72\x4b\x72\x58\x72\x74\x72\x7e\x72\x81\x72\x87\x72\x82\x72\x92\x72\x96\x72\xa2\x72\xa7\x72\xb1\x72\xb2\x72\xbe\x72\xc3\x72\xc6\x72\xc4\x72\xb9\x72\xce\x72\xd2\x72\xe2\x72\xe0\x72\xe1\x72\xf9", /* 5e80 */ "\x72\xf7\x73\x17\x73\x0a\x73\x1c\x73\x16\x73\x1d\x73\x24\x73\x34\x73\x29\x73\x2f\xfa\x16\x73\x25\x73\x3e\x73\x4f\x73\x4e\x73\x57\x9e\xd8\x73\x6a\x73\x68\x73\x70\x73\x77\x73\x78\x73\x75\x73\x7b\x73\xc8\x73\xbd\x73\xb3\x73\xce\x73\xbb\x73\xc0\x73\xc9\x73\xd6\x73\xe5\x73\xe3\x73\xd2\x73\xee\x73\xf1\x73\xde\x73\xf8\x74\x07\x73\xf5\x74\x05\x74\x26\x74\x2a\x74\x25\x74\x29\x74\x2e\x74\x32\x74\x3a\x74\x55\x74\x3f\x74\x5f\x74\x59\x74\x41\x74\x5c\x74\x69\x74\x70\x74\x63\x74\x6a\x74\x64\x74\x62\x74\x89\x74\x6f\x74\x7e\x74\x9f\x74\x9e\x74\xa2\x74\xa7\x74\xca\x74\xcf\x74\xd4\x74\xe0\x74\xe3\x74\xe7\x74\xe9\x74\xee\x74\xf0\x74\xf2\x74\xf1\x74\xf7\x74\xf8\x75\x01\x75\x04\x75\x03\x75\x05\x75\x0d\x75\x0c\x75\x0e\x75\x13\x75\x1e\x75\x26\x75\x2c\x75\x3c\x75\x44\x75\x4d\x75\x4a\x75\x49\x75\x46\x75\x5b\x75\x5a\x75\x64\x75\x67\x75\x6b\x75\x6f\x75\x74\x75\x6d\x75\x78\x75\x76\x75\x82\x75\x86\x75\x87\x75\x8a\x75\x89\x75\x94\x75\x9a\x75\x9d\x75\xa5\x75\xa3\x75\xc2\x75\xb3\x75\xc3\x75\xb5\x75\xbd\x75\xb8\x75\xbc\x75\xb1\x75\xcd\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xca\x75\xd2\x75\xd9\x75\xe3\x75\xde\x75\xfe\x75\xff\x75\xfc\x76\x01\x75\xf0\x75\xfa\x75\xf2\x75\xf3\x76\x0b\x76\x09\x76\x1f\x76\x27\x76\x20\x76\x21\x76\x22\x76\x24\x76\x34\x76\x30\x76\x3b\x76\x47\x76\x48\x76\x58\x76\x46\x76\x5c\x76\x61\x76\x62\x76\x68\x76\x69\x76\x67\x76\x6a\x76\x6c\x76\x70\x76\x72\x76\x76\x76\x7c\x76\x82\x76\x80\x76\x83\x76\x88\x76\x8b\x76\x99\x76\x9a\x76\x9c\x76\x9e\x76\x9b\x76\xa6\x76\xb0\x76\xb4\x76\xb8\x76\xb9\x76\xba\x76\xc2\xfa\x17\x76\xcd\x76\xd6\x76\xd2\x76\xde\x76\xe1", /* 5f80 */ "\x76\xe5\x76\xea\x86\x2f\x76\xfb\x77\x08\x77\x07\x77\x04\x77\x24\x77\x29\x77\x25\x77\x26\x77\x1b\x77\x37\x77\x38\x77\x46\x77\x47\x77\x5a\x77\x68\x77\x6b\x77\x5b\x77\x65\x77\x7f\x77\x7e\x77\x79\x77\x8e\x77\x8b\x77\x91\x77\xa0\x77\x9e\x77\xb0\x77\xb6\x77\xb9\x77\xbf\x77\xbc\x77\xbd\x77\xbb\x77\xc7\x77\xcd\x77\xda\x77\xdc\x77\xe3\x77\xee\x52\xaf\x77\xfc\x78\x0c\x78\x12\x78\x21\x78\x3f\x78\x20\x78\x45\x78\x4e\x78\x64\x78\x74\x78\x8e\x78\x7a\x78\x86\x78\x9a\x78\x7c\x78\x8c\x78\xa3\x78\xb5\x78\xaa\x78\xaf\x78\xd1\x78\xc6\x78\xcb\x78\xd4\x78\xbe\x78\xbc\x78\xc5\x78\xca\x78\xec\x78\xe7\x78\xda\x78\xfd\x78\xf4\x79\x07\x79\x11\x79\x19\x79\x2c\x79\x2b\x79\x30\xfa\x18\x79\x40\x79\x60\xfa\x19\x79\x5f\x79\x5a\x79\x55\xfa\x1a\x79\x7f\x79\x8a\x79\x94\xfa\x1b\x79\x9d\x79\x9b\x79\xaa\x79\xb3\x79\xba\x79\xc9\x79\xd5\x79\xe7\x79\xec\x79\xe3\x7a\x08\x7a\x0d\x7a\x18\x7a\x19\x7a\x1f\x7a\x31\x7a\x3e\x7a\x37\x7a\x3b\x7a\x43\x7a\x57\x7a\x49\x7a\x62\x7a\x61\x7a\x69\x9f\x9d\x7a\x70\x7a\x79\x7a\x7d\x7a\x88\x7a\x95\x7a\x98\x7a\x96\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x97\x7a\xa9\x7a\xb0\x7a\xb6\x90\x83\x7a\xc3\x7a\xbf\x7a\xc5\x7a\xc4\x7a\xc7\x7a\xca\x7a\xcd\x7a\xcf\x7a\xd2\x7a\xd1\x7a\xd5\x7a\xd3\x7a\xd9\x7a\xda\x7a\xdd\x7a\xe1\x7a\xe2\x7a\xe6\x7a\xe7\xfa\x1c\x7a\xeb\x7a\xed\x7a\xf0\x7a\xf8\x7b\x02\x7b\x0f\x7b\x0b\x7b\x0a\x7b\x06\x7b\x33\x7b\x36\x7b\x19\x7b\x1e\x7b\x35\x7b\x28\x7b\x50\x7b\x4d\x7b\x4c\x7b\x45\x7b\x5d\x7b\x75\x7b\x7a\x7b\x74\x7b\x70\x7b\x71\x7b\x6e\x7b\x9d\x7b\x98\x7b\x9f\x7b\x8d\x7b\x9c\x7b\x9a\x7b\x92\x7b\x8f\x7b\x99\x7b\xcf\x7b\xcb\x7b\xcc", /* 6080 */ "\x7b\xb4\x7b\xc6\x7b\x9e\x7b\xdd\x7b\xe9\x7b\xe6\x7b\xf7\x7b\xe5\x7c\x14\x7c\x00\x7c\x13\x7c\x07\x7b\xf3\x7c\x0d\x7b\xf6\x7c\x23\x7c\x27\x7c\x2a\x7c\x1f\x7c\x37\x7c\x2b\x7c\x3d\x7c\x40\x7c\x4c\x7c\x43\x7c\x56\x7c\x50\x7c\x58\x7c\x5f\x7c\x65\x7c\x6c\x7c\x75\x7c\x83\x7c\x90\x7c\xa4\x7c\xa2\x7c\xab\x7c\xa1\x7c\xad\x7c\xa8\x7c\xb3\x7c\xb2\x7c\xb1\x7c\xae\x7c\xb9\xfa\x1d\x7c\xbd\x7c\xc5\x7c\xc2\x7c\xd2\x7c\xe2\x7c\xd8\x7c\xdc\x7c\xef\x7c\xf2\x7c\xf4\x7c\xf6\x7d\x06\x7d\x02\x7d\x1c\x7d\x15\x7d\x0a\x7d\x45\x7d\x4b\x7d\x2e\x7d\x32\x7d\x3f\x7d\x35\x7d\x48\x7d\x46\x7d\x5c\x7d\x73\x7d\x56\x7d\x4e\x7d\x68\x7d\x6e\x7d\x4f\x7d\x63\x7d\x93\x7d\x89\x7d\x5b\x7d\xae\x7d\xa3\x7d\xb5\x7d\xb7\x7d\xc7\x7d\xbd\x7d\xab\x7d\xa2\x7d\xaf\x7d\xa0\x7d\xb8\x7d\x9f\x7d\xb0\x7d\xd5\x7d\xd8\x7d\xdd\x7d\xd6\x7d\xe4\x7d\xde\x7d\xfb\x7e\x0b\x7d\xf2\x7d\xe1\x7d\xdc\x7e\x05\x7e\x0a\x7e\x21\x7e\x12\x7e\x1f\x7e\x09\x7e\x3a\x7e\x46\x7e\x66\x7e\x31\x7e\x3d\x7e\x35\x7e\x3b\x7e\x39\x7e\x43\x7e\x37\x7e\x32\x7e\x5d\x7e\x56\x7e\x5e\x7e\x52\x7e\x59\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x5a\x7e\x67\x7e\x79\x7e\x6a\x7e\x69\x7e\x7c\x7e\x7b\x7e\x7d\x8f\xae\x7e\x7f\x7e\x83\x7e\x89\x7e\x8e\x7e\x8c\x7e\x92\x7e\x93\x7e\x94\x7e\x96\x7e\x9b\x7f\x38\x7f\x3a\x7f\x45\x7f\x47\x7f\x4c\x7f\x4e\x7f\x51\x7f\x55\x7f\x54\x7f\x58\x7f\x5f\x7f\x60\x7f\x68\x7f\x67\x7f\x69\x7f\x78\x7f\x82\x7f\x86\x7f\x83\x7f\x87\x7f\x88\x7f\x8c\x7f\x94\x7f\x9e\x7f\x9d\x7f\x9a\x7f\xa1\x7f\xa3\x7f\xaf\x7f\xae\x7f\xb2\x7f\xb9\x7f\xb6\x7f\xb8\x8b\x71\xfa\x1e\x7f\xc5\x7f\xc6\x7f\xca\x7f\xd5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xf3", /* 6180 */ "\x7f\xf9\x80\x04\x80\x0b\x80\x12\x80\x19\x80\x1c\x80\x21\x80\x28\x80\x3f\x80\x3b\x80\x4a\x80\x46\x80\x52\x80\x58\x80\x5f\x80\x62\x80\x68\x80\x73\x80\x72\x80\x70\x80\x76\x80\x79\x80\x7d\x80\x7f\x80\x84\x80\x85\x80\x93\x80\x9a\x80\xad\x51\x90\x80\xac\x80\xdb\x80\xe5\x80\xd9\x80\xdd\x80\xc4\x80\xda\x81\x09\x80\xef\x80\xf1\x81\x1b\x81\x23\x81\x2f\x81\x4b\x81\x46\x81\x3e\x81\x53\x81\x51\x81\x41\x81\x71\x81\x6e\x81\x65\x81\x5f\x81\x66\x81\x74\x81\x83\x81\x88\x81\x8a\x81\x80\x81\x82\x81\xa0\x81\x95\x81\xa3\x81\x93\x81\xb5\x81\xa4\x81\xa9\x81\xb8\x81\xb0\x81\xc8\x81\xbe\x81\xbd\x81\xc0\x81\xc2\x81\xba\x81\xc9\x81\xcd\x81\xd1\x81\xd8\x81\xd9\x81\xda\x81\xdf\x81\xe0\x81\xfa\x81\xfb\x81\xfe\x82\x01\x82\x02\x82\x05\x82\x0d\x82\x10\x82\x12\x82\x16\x82\x29\x82\x2b\x82\x2e\x82\x38\x82\x33\x82\x40\x82\x59\x82\x5a\x82\x5d\x82\x5f\x82\x64\x82\x62\x82\x68\x82\x6a\x82\x6b\x82\x71\x82\x77\x82\x7e\x82\x8d\x82\x92\x82\xab\x82\x9f\x82\xbb\x82\xac\x82\xe1\x82\xe3\x82\xdf\x83\x01\x82\xd2\x82\xf4\x82\xf3\x83\x03\x82\xfb\x82\xf9\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\xde\x83\x06\x82\xdc\x82\xfa\x83\x09\x82\xd9\x83\x35\x83\x62\x83\x34\x83\x16\x83\x31\x83\x40\x83\x39\x83\x50\x83\x45\x83\x2f\x83\x2b\x83\x18\x83\x9a\x83\xaa\x83\x9f\x83\xa2\x83\x96\x83\x23\x83\x8e\x83\x75\x83\x7f\x83\x8a\x83\x7c\x83\xb5\x83\x73\x83\x93\x83\xa0\x83\x85\x83\x89\x83\xa8\x83\xf4\x84\x13\x83\xc7\x83\xce\x83\xf7\x83\xfd\x84\x03\x83\xd8\x84\x0b\x83\xc1\x84\x07\x83\xe0\x83\xf2\x84\x0d\x84\x20\x83\xf6\x83\xbd\x83\xfb\x84\x2a\x84\x62\x84\x3c\x84\x84\x84\x77\x84\x6b\x84\x79\x84\x48\x84\x6e", /* 6280 */ "\x84\x82\x84\x69\x84\x46\x84\x6f\x84\x38\x84\x35\x84\xca\x84\xb9\x84\xbf\x84\x9f\x84\xb4\x84\xcd\x84\xbb\x84\xda\x84\xd0\x84\xc1\x84\xad\x84\xc6\x84\xd6\x84\xa1\x84\xd9\x84\xff\x84\xf4\x85\x17\x85\x18\x85\x2c\x85\x1f\x85\x15\x85\x14\x85\x06\x85\x53\x85\x5a\x85\x40\x85\x59\x85\x63\x85\x58\x85\x48\x85\x41\x85\x4a\x85\x4b\x85\x6b\x85\x55\x85\x80\x85\xa4\x85\x88\x85\x91\x85\x8a\x85\xa8\x85\x6d\x85\x94\x85\x9b\x85\xae\x85\x87\x85\x9c\x85\x77\x85\x7e\x85\x90\xfa\x1f\x82\x0a\x85\xb0\x85\xc9\x85\xba\x85\xcf\x85\xb9\x85\xd0\x85\xd5\x85\xdd\x85\xe5\x85\xdc\x85\xf9\x86\x0a\x86\x13\x86\x0b\x85\xfe\x86\x22\x86\x1a\x86\x30\x86\x3f\xfa\x20\x86\x4d\x4e\x55\x86\x55\x86\x5f\x86\x67\x86\x71\x86\x93\x86\xa3\x86\xa9\x86\x8b\x86\xaa\x86\x8c\x86\xb6\x86\xaf\x86\xc4\x86\xc6\x86\xb0\x86\xc9\x86\xce\xfa\x21\x86\xab\x86\xd4\x86\xde\x86\xe9\x86\xec\x86\xdf\x86\xdb\x87\x12\x87\x06\x87\x08\x87\x00\x87\x03\x86\xfb\x87\x11\x87\x09\x87\x0d\x86\xf9\x87\x0a\x87\x34\x87\x3f\x87\x3b\x87\x25\x87\x29\x87\x1a\x87\x5f\x87\x78\x87\x4c\x87\x4e\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x74\x87\x57\x87\x68\x87\x82\x87\x6a\x87\x60\x87\x6e\x87\x59\x87\x53\x87\x63\x87\x7f\x87\xa2\x87\xc6\x87\x9f\x87\xaf\x87\xcb\x87\xbd\x87\xc0\x87\xd0\x96\xd6\x87\xab\x87\xc4\x87\xb3\x87\xd2\x87\xbb\x87\xef\x87\xf2\x87\xe0\x88\x0e\x88\x07\x88\x0f\x88\x16\x88\x0d\x87\xfe\x87\xf6\x87\xf7\x88\x11\x88\x15\x88\x22\x88\x21\x88\x27\x88\x31\x88\x36\x88\x39\x88\x3b\x88\x42\x88\x44\x88\x4d\x88\x52\x88\x59\x88\x5e\x88\x62\x88\x6b\x88\x81\x88\x7e\x88\x75\x88\x7d\x88\x72\x88\x82\x88\x9e\x88\x97\x88\x92\x88\xae", /* 6380 */ "\x88\x99\x88\xa2\x88\x8d\x88\xa4\x88\xbf\x88\xb5\x88\xb1\x88\xc3\x88\xc4\x88\xd4\x88\xd8\x88\xd9\x88\xdd\x88\xf9\x89\x02\x88\xfc\x88\xf5\x88\xe8\x88\xf2\x89\x04\x89\x0c\x89\x2a\x89\x1d\x89\x0a\x89\x13\x89\x1e\x89\x25\x89\x2b\x89\x41\x89\x3b\x89\x36\x89\x43\x89\x38\x89\x4d\x89\x4c\x89\x60\x89\x5e\x89\x66\x89\x6a\x89\x64\x89\x6d\x89\x6f\x89\x74\x89\x77\x89\x7e\x89\x83\x89\x88\x89\x8a\x89\x93\x89\x98\x89\xa1\x89\xa9\x89\xa6\x89\xac\x89\xaf\x89\xb2\x89\xba\x89\xbf\x89\xbd\x89\xc0\x89\xda\x89\xdd\x89\xe7\x89\xf4\x89\xf8\x8a\x03\x8a\x16\x8a\x10\x8a\x0c\x8a\x12\x8a\x1b\x8a\x1d\x8a\x25\x8a\x36\x8a\x41\x8a\x37\x8a\x5b\x8a\x52\x8a\x46\x8a\x48\x8a\x7c\x8a\x6d\x8a\x6c\x8a\x62\x8a\x79\x8a\x85\x8a\x82\x8a\x84\x8a\xa8\x8a\xa1\x8a\x91\x8a\xa5\x8a\xa6\x8a\x9a\x8a\xa3\x8a\xa7\x8a\xcc\x8a\xbe\x8a\xcd\x8a\xc2\x8a\xda\x8a\xf3\x8a\xe7\x8a\xe4\x8a\xf1\x8b\x14\x8a\xe0\x8a\xe2\x8a\xe1\x8a\xdf\xfa\x22\x8a\xf6\x8a\xf7\x8a\xde\x8a\xdb\x8b\x0c\x8b\x07\x8b\x1a\x8b\x16\x8b\x10\x8b\x17\x8b\x20\x8b\x33\x8b\x41\x97\xab\x8b\x26\x8b\x2b\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x3e\x8b\x4c\x8b\x4f\x8b\x4e\x8b\x53\x8b\x49\x8b\x56\x8b\x5b\x8b\x5a\x8b\x74\x8b\x6b\x8b\x5f\x8b\x6c\x8b\x6f\x8b\x7d\x8b\x7f\x8b\x80\x8b\x8c\x8b\x8e\x8b\x99\x8b\x92\x8b\x93\x8b\x96\x8b\x9a\x8c\x3a\x8c\x41\x8c\x3f\x8c\x48\x8c\x4c\x8c\x4e\x8c\x50\x8c\x55\x8c\x62\x8c\x6c\x8c\x78\x8c\x7a\x8c\x7c\x8c\x82\x8c\x89\x8c\x85\x8c\x8a\x8c\x8d\x8c\x8e\x8c\x98\x8c\x94\x62\x1d\x8c\xad\x8c\xaa\x8c\xae\x8c\xbd\x8c\xb2\x8c\xb3\x8c\xc1\x8c\xb6\x8c\xc8\x8c\xce\x8c\xcd\x8c\xe3\x8c\xda\x8c\xf0\x8c\xf4\x8c\xfd\x8c\xfa", /* 6480 */ "\x8c\xfb\x8d\x07\x8d\x0a\x8d\x0f\x8d\x0d\x8d\x12\x8d\x10\x8d\x13\x8d\x14\x8d\x16\x8d\x67\x8d\x6d\x8d\x71\x8d\x76\xfa\x23\x8d\x81\x8d\xc2\x8d\xbe\x8d\xba\x8d\xcf\x8d\xda\x8d\xd6\x8d\xcc\x8d\xdb\x8d\xcb\x8d\xea\x8d\xeb\x8d\xdf\x8d\xe3\x8d\xfc\x8e\x08\x8d\xff\x8e\x09\x8e\x1d\x8e\x1e\x8e\x10\x8e\x1f\x8e\x42\x8e\x35\x8e\x30\x8e\x34\x8e\x4a\x8e\x47\x8e\x49\x8e\x4c\x8e\x50\x8e\x48\x8e\x59\x8e\x64\x8e\x60\x8e\x55\x8e\x63\x8e\x76\x8e\x72\x8e\x87\x8e\x7c\x8e\x81\x8e\x85\x8e\x84\x8e\x8b\x8e\x8a\x8e\x93\x8e\x91\x8e\x94\x8e\x99\x8e\xa1\x8e\xaa\x8e\xb1\x8e\xbe\x8e\xc6\x8e\xc5\x8e\xc8\x8e\xcb\x8e\xcf\x8e\xdb\x8e\xe3\x8e\xfc\x8e\xfb\x8e\xeb\x8e\xfe\x8f\x0a\x8f\x0c\x8f\x05\x8f\x15\x8f\x12\x8f\x13\x8f\x1c\x8f\x19\x8f\x1f\x8f\x26\x8f\x33\x8f\x3b\x8f\x39\x8f\x45\x8f\x42\x8f\x3e\x8f\x49\x8f\x46\x8f\x4c\x8f\x4e\x8f\x57\x8f\x5c\x8f\x62\x8f\x63\x8f\x64\x8f\x9c\x8f\x9f\x8f\xa3\x8f\xa8\x8f\xa7\x8f\xad\x8f\xaf\x8f\xb7\xfa\x24\x8f\xda\x8f\xe5\x8f\xe2\x8f\xef\x8f\xe9\x8f\xf4\x90\x05\x8f\xf9\x8f\xf8\x90\x11\x90\x15\x90\x0e\x90\x21\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x0d\x90\x1e\x90\x16\x90\x0b\x90\x27\x90\x36\x90\x39\x90\x4f\xfa\x25\x90\x50\x90\x51\x90\x52\x90\x49\x90\x3e\x90\x56\x90\x58\x90\x5e\x90\x68\x90\x67\x90\x6f\x90\x76\x96\xa8\x90\x72\x90\x82\x90\x7d\x90\x89\x90\x80\x90\x8f\x62\x48\x90\xaf\x90\xb1\x90\xb5\x90\xe2\x90\xe4\x90\xdb\x90\xde\x91\x02\xfa\x26\x91\x15\x91\x12\x91\x19\x91\x32\x91\x27\x91\x30\x91\x4a\x91\x56\x91\x58\x91\x63\x91\x65\x91\x69\x91\x73\x91\x72\x91\x8b\x91\x89\x91\x82\x91\xa2\x91\xab\x91\xaf\x91\xaa\x91\xb5\x91\xb4\x91\xba\x91\xc0", /* 6580 */ "\x91\xc1\x91\xcb\x91\xd0\x91\xda\x91\xdb\x91\xd7\x91\xde\x91\xd6\x91\xdf\x91\xe1\x91\xed\x91\xf5\x91\xee\x91\xe4\x91\xf6\x91\xe5\x92\x06\x92\x1e\x91\xff\x92\x10\x92\x14\x92\x0a\x92\x2c\x92\x15\x92\x29\x92\x57\x92\x45\x92\x3a\x92\x49\x92\x64\x92\x40\x92\x3c\x92\x48\x92\x4e\x92\x50\x92\x59\x92\x3f\x92\x51\x92\x39\x92\x4b\x92\x67\x92\x5a\x92\x9c\x92\xa7\x92\x77\x92\x78\x92\x96\x92\x93\x92\x9b\x92\x95\x92\xe9\x92\xcf\x92\xe7\x92\xd7\x92\xd9\x92\xd0\xfa\x27\x92\xd5\x92\xb9\x92\xb7\x92\xe0\x92\xd3\x93\x3a\x93\x35\x93\x0f\x93\x25\x92\xfa\x93\x21\x93\x44\x92\xfb\xfa\x28\x93\x19\x93\x1e\x92\xff\x93\x22\x93\x1a\x93\x1d\x93\x23\x93\x02\x93\x3b\x93\x70\x93\x60\x93\x7c\x93\x6e\x93\x56\x93\x57\x93\xb9\x93\xb0\x93\xa4\x93\xad\x93\x94\x93\xc8\x93\xd6\x93\xc6\x93\xd7\x93\xe8\x93\xe5\x93\xd8\x93\xc3\x93\xdd\x93\xde\x93\xd0\x93\xe4\x94\x1a\x93\xf8\x94\x14\x94\x13\x94\x21\x94\x03\x94\x07\x94\x36\x94\x2b\x94\x31\x94\x3a\x94\x41\x94\x52\x94\x45\x94\x44\x94\x48\x94\x5b\x94\x5a\x94\x60\x94\x62\x94\x5e\x94\x6a\x94\x75\x94\x70\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x77\x94\x7f\x94\x7d\x94\x7c\x94\x7e\x94\x81\x95\x82\x95\x87\x95\x8a\x95\x92\x95\x94\x95\x96\x95\x98\x95\x99\x95\xa0\x95\xa8\x95\xa7\x95\xad\x95\xbc\x95\xbb\x95\xb9\x95\xbe\x95\xca\x6f\xf6\x95\xc3\x95\xcd\x95\xcc\x95\xd5\x95\xd4\x95\xd6\x95\xdc\x95\xe1\x95\xe5\x95\xe2\x96\x21\x96\x28\x96\x2e\x96\x2f\x96\x42\x96\x4f\x96\x4c\x96\x4b\x96\x5c\x96\x5d\x96\x5f\x96\x66\x96\x77\x96\x72\x96\x6c\x96\x8d\x96\x8b\xf9\xdc\x96\x98\x96\x95\x96\x97\xfa\x29\x96\x9d\x96\xa7\x96\xaa\x96\xb1\x96\xb2\x96\xb0\x96\xaf", /* 6680 */ "\x96\xb4\x96\xb6\x96\xb8\x96\xb9\x96\xce\x96\xcb\x96\xd5\x96\xdc\x96\xd9\x96\xf9\x97\x04\x97\x06\x97\x08\x97\x19\x97\x0d\x97\x13\x97\x0e\x97\x11\x97\x0f\x97\x16\x97\x24\x97\x2a\x97\x30\x97\x33\x97\x39\x97\x3b\x97\x3d\x97\x3e\x97\x46\x97\x44\x97\x43\x97\x48\x97\x42\x97\x49\x97\x4d\x97\x4f\x97\x51\x97\x55\x97\x5c\x97\x60\x97\x64\x97\x66\x97\x68\x97\x6d\x97\x79\x97\x85\x97\x7c\x97\x81\x97\x7a\x97\x8b\x97\x8f\x97\x90\x97\x9c\x97\xa8\x97\xa6\x97\xa3\x97\xb3\x97\xb4\x97\xc3\x97\xc6\x97\xc8\x97\xcb\x97\xdc\x97\xed\x97\xf2\x7a\xdf\x97\xf5\x98\x0f\x98\x1a\x98\x24\x98\x21\x98\x37\x98\x3d\x98\x4f\x98\x4b\x98\x57\x98\x65\x98\x6b\x98\x6f\x98\x70\x98\x71\x98\x74\x98\x73\x98\xaa\x98\xaf\x98\xb1\x98\xb6\x98\xc4\x98\xc3\x98\xc6\x98\xdc\x98\xed\x98\xe9\xfa\x2a\x98\xeb\xfa\x2b\x99\x03\x99\x1d\x99\x12\x99\x14\x99\x18\x99\x27\xfa\x2c\x99\x21\x99\x1e\x99\x24\x99\x20\x99\x2c\x99\x2e\x99\x3d\x99\x3e\x99\x42\x99\x49\x99\x45\x99\x50\x99\x4b\x99\x51\x99\x4c\x99\x55\x99\x97\x99\x98\x99\x9e\x99\xa5\x99\xad\x99\xae\x99\xbc\x99\xdf\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xdb\x99\xdd\x99\xd8\x99\xd1\x99\xed\x99\xee\x99\xe2\x99\xf1\x99\xf2\x99\xfb\x99\xf8\x9a\x01\x9a\x0f\x9a\x05\x9a\x19\x9a\x2b\x9a\x37\x9a\x40\x9a\x45\x9a\x42\x9a\x43\x9a\x3e\x9a\x55\x9a\x4d\x9a\x4e\x9a\x5b\x9a\x57\x9a\x5f\x9a\x62\x9a\x69\x9a\x65\x9a\x64\x9a\x6a\x9a\x6b\x9a\xad\x9a\xb0\x9a\xbc\x9a\xc0\x9a\xcf\x9a\xd3\x9a\xd4\x9a\xd1\x9a\xd9\x9a\xdc\x9a\xde\x9a\xdf\x9a\xe2\x9a\xe3\x9a\xe6\x9a\xef\x9a\xeb\x9a\xee\x9a\xf4\x9a\xf1\x9a\xf7\x9a\xfb\x9b\x06\x9b\x18\x9b\x1a\x9b\x1f\x9b\x22\x9b\x23\x9b\x25", /* 6780 */ "\x9b\x27\x9b\x28\x9b\x29\x9b\x2a\x9b\x2e\x9b\x2f\x9b\x31\x9b\x32\x9b\x3b\x9b\x44\x9b\x43\x9b\x4d\x9b\x4e\x9b\x51\x9b\x58\x9b\x75\x9b\x74\x9b\x72\x9b\x93\x9b\x8f\x9b\x83\x9b\x91\x9b\x96\x9b\x97\x9b\x9f\x9b\xa0\x9b\xa8\x9b\xb1\x9b\xb4\x9b\xc0\x9b\xca\x9b\xbb\x9b\xb9\x9b\xc6\x9b\xcf\x9b\xd1\x9b\xd2\x9b\xe3\x9b\xe2\x9b\xe4\x9b\xd4\x9b\xe1\x9b\xf5\x9b\xf1\x9b\xf2\x9c\x04\x9c\x1b\x9c\x15\x9c\x14\x9c\x00\x9c\x09\x9c\x13\x9c\x0c\x9c\x06\x9c\x08\x9c\x12\x9c\x0a\x9c\x2e\x9c\x25\x9c\x24\x9c\x21\x9c\x30\x9c\x47\x9c\x32\x9c\x46\x9c\x3e\x9c\x5a\x9c\x60\x9c\x67\x9c\x76\x9c\x78\x9c\xeb\x9c\xe7\x9c\xec\x9c\xf0\x9d\x09\x9d\x03\x9d\x06\x9d\x2a\x9d\x26\x9d\x2c\x9d\x23\x9d\x1f\x9d\x15\x9d\x12\x9d\x41\x9d\x3f\x9d\x44\x9d\x3e\x9d\x46\x9d\x48\x9d\x5d\x9d\x5e\x9d\x59\x9d\x51\x9d\x50\x9d\x64\x9d\x72\x9d\x70\x9d\x87\x9d\x6b\x9d\x6f\x9d\x7a\x9d\x9a\x9d\xa4\x9d\xa9\x9d\xab\x9d\xb2\x9d\xc4\x9d\xc1\x9d\xbb\x9d\xb8\x9d\xba\x9d\xc6\x9d\xcf\x9d\xc2\xfa\x2d\x9d\xd9\x9d\xd3\x9d\xf8\x9d\xe6\x9d\xed\x9d\xef\x9d\xfd\x9e\x1a\x9e\x1b\x9e\x19\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x1e\x9e\x75\x9e\x79\x9e\x7d\x9e\x81\x9e\x88\x9e\x8b\x9e\x8c\x9e\x95\x9e\x91\x9e\x9d\x9e\xa5\x9e\xb8\x9e\xaa\x9e\xad\x9e\xbc\x9e\xbe\x97\x61\x9e\xcc\x9e\xcf\x9e\xd0\x9e\xd1\x9e\xd4\x9e\xdc\x9e\xde\x9e\xdd\x9e\xe0\x9e\xe5\x9e\xe8\x9e\xef\x9e\xf4\x9e\xf6\x9e\xf7\x9e\xf9\x9e\xfb\x9e\xfc\x9e\xfd\x9f\x07\x9f\x08\x76\xb7\x9f\x15\x9f\x21\x9f\x2c\x9f\x3e\x9f\x4a\x9f\x4e\x9f\x4f\x9f\x52\x9f\x54\x9f\x63\x9f\x5f\x9f\x60\x9f\x61\x9f\x66\x9f\x67\x9f\x6c\x9f\x6a\x9f\x77\x9f\x72\x9f\x76\x9f\x95\x9f\x9c\x9f\xa0", /* 6880 */ "\x5c\x2d\x69\xd9\x90\x65\x74\x76\x51\xdc\x71\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 6980 */ "\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc", /* 6a80 */ "\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba", /* 6b80 */ "\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78", /* 6c80 */ "\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36", /* 6d80 */ "\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4", /* 6e80 */ "\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2", /* 6f80 */ "\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70", /* 7080 */ "\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e", /* 7180 */ "\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec", /* 7280 */ "\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xe7\xa8\xe7\xa9\xe7\xaa", /* 7380 */ "\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe7\xff\xe8\x00\xe8\x01\xe8\x02\xe8\x03\xe8\x04\xe8\x05\xe8\x06\xe8\x07\xe8\x08\xe8\x09\xe8\x0a\xe8\x0b\xe8\x0c\xe8\x0d\xe8\x0e\xe8\x0f\xe8\x10\xe8\x11\xe8\x12\xe8\x13\xe8\x14\xe8\x15\xe8\x16\xe8\x17\xe8\x18\xe8\x19\xe8\x1a\xe8\x1b\xe8\x1c\xe8\x1d\xe8\x1e\xe8\x1f\xe8\x20\xe8\x21\xe8\x22\xe8\x23\xe8\x24\xe8\x25\xe8\x26\xe8\x27\xe8\x28\xe8\x29\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x2a\xe8\x2b\xe8\x2c\xe8\x2d\xe8\x2e\xe8\x2f\xe8\x30\xe8\x31\xe8\x32\xe8\x33\xe8\x34\xe8\x35\xe8\x36\xe8\x37\xe8\x38\xe8\x39\xe8\x3a\xe8\x3b\xe8\x3c\xe8\x3d\xe8\x3e\xe8\x3f\xe8\x40\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68", /* 7480 */ "\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe8\xff\xe9\x00\xe9\x01\xe9\x02\xe9\x03\xe9\x04\xe9\x05\xe9\x06\xe9\x07\xe9\x08\xe9\x09\xe9\x0a\xe9\x0b\xe9\x0c\xe9\x0d\xe9\x0e\xe9\x0f\xe9\x10\xe9\x11\xe9\x12\xe9\x13\xe9\x14\xe9\x15\xe9\x16\xe9\x17\xe9\x18\xe9\x19\xe9\x1a\xe9\x1b\xe9\x1c\xe9\x1d\xe9\x1e\xe9\x1f\xe9\x20\xe9\x21\xe9\x22\xe9\x23\xe9\x24\xe9\x25\xe9\x26", /* 7580 */ "\xe9\x27\xe9\x28\xe9\x29\xe9\x2a\xe9\x2b\xe9\x2c\xe9\x2d\xe9\x2e\xe9\x2f\xe9\x30\xe9\x31\xe9\x32\xe9\x33\xe9\x34\xe9\x35\xe9\x36\xe9\x37\xe9\x38\xe9\x39\xe9\x3a\xe9\x3b\xe9\x3c\xe9\x3d\xe9\x3e\xe9\x3f\xe9\x40\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xe9\x58\xe9\x59\xe9\x5a\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4", /* 7680 */ "\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xe9\xff\xea\x00\xea\x01\xea\x02\xea\x03\xea\x04\xea\x05\xea\x06\xea\x07\xea\x08\xea\x09\xea\x0a\xea\x0b\xea\x0c\xea\x0d\xea\x0e\xea\x0f\xea\x10\xea\x11\xea\x12\xea\x13\xea\x14\xea\x15\xea\x16\xea\x17\xea\x18\xea\x19\xea\x1a\xea\x1b\xea\x1c\xea\x1d\xea\x1e\xea\x1f\xea\x20\xea\x21\xea\x22\xea\x23\xea\x24\xea\x25\xea\x26\xea\x27\xea\x28\xea\x29\xea\x2a\xea\x2b\xea\x2c\xea\x2d\xea\x2e\xea\x2f\xea\x30\xea\x31\xea\x32\xea\x33\xea\x34\xea\x35\xea\x36\xea\x37\xea\x38\xea\x39\xea\x3a\xea\x3b\xea\x3c\xea\x3d\xea\x3e\xea\x3f\xea\x40\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2", /* 7780 */ "\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xea\xff\xeb\x00\xeb\x01\xeb\x02\xeb\x03\xeb\x04\xeb\x05\xeb\x06\xeb\x07\xeb\x08\xeb\x09\xeb\x0a\xeb\x0b\xeb\x0c\xeb\x0d\xeb\x0e\xeb\x0f\xeb\x10\xeb\x11\xeb\x12\xeb\x13\xeb\x14\xeb\x15\xeb\x16\xeb\x17\xeb\x18\xeb\x19\xeb\x1a\xeb\x1b\xeb\x1c\xeb\x1d\xeb\x1e\xeb\x1f\xeb\x20\xeb\x21\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x22\xeb\x23\xeb\x24\xeb\x25\xeb\x26\xeb\x27\xeb\x28\xeb\x29\xeb\x2a\xeb\x2b\xeb\x2c\xeb\x2d\xeb\x2e\xeb\x2f\xeb\x30\xeb\x31\xeb\x32\xeb\x33\xeb\x34\xeb\x35\xeb\x36\xeb\x37\xeb\x38\xeb\x39\xeb\x3a\xeb\x3b\xeb\x3c\xeb\x3d\xeb\x3e\xeb\x3f\xeb\x40\xeb\x41\xeb\x42\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d\xeb\x5e\xeb\x5f\xeb\x60", /* 7880 */ "\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xeb\xd7\xeb\xd8\xeb\xd9\xeb\xda\xeb\xdb\xeb\xdc\xeb\xdd\xeb\xde\xeb\xdf\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xeb\xf2\xeb\xf3\xeb\xf4\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe\xeb\xff\xec\x00\xec\x01\xec\x02\xec\x03\xec\x04\xec\x05\xec\x06\xec\x07\xec\x08\xec\x09\xec\x0a\xec\x0b\xec\x0c\xec\x0d\xec\x0e\xec\x0f\xec\x10\xec\x11\xec\x12\xec\x13\xec\x14\xec\x15\xec\x16\xec\x17\xec\x18\xec\x19\xec\x1a\xec\x1b\xec\x1c\xec\x1d\xec\x1e", /* 7980 */ "\xec\x1f\xec\x20\xec\x21\xec\x22\xec\x23\xec\x24\xec\x25\xec\x26\xec\x27\xec\x28\xec\x29\xec\x2a\xec\x2b\xec\x2c\xec\x2d\xec\x2e\xec\x2f\xec\x30\xec\x31\xec\x32\xec\x33\xec\x34\xec\x35\xec\x36\xec\x37\xec\x38\xec\x39\xec\x3a\xec\x3b\xec\x3c\xec\x3d\xec\x3e\xec\x3f\xec\x40\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc", /* 7a80 */ "\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xec\xff\xed\x00\xed\x01\xed\x02\xed\x03\xed\x04\xed\x05\xed\x06\xed\x07\xed\x08\xed\x09\xed\x0a\xed\x0b\xed\x0c\xed\x0d\xed\x0e\xed\x0f\xed\x10\xed\x11\xed\x12\xed\x13\xed\x14\xed\x15\xed\x16\xed\x17\xed\x18\xed\x19\xed\x1a\xed\x1b\xed\x1c\xed\x1d\xed\x1e\xed\x1f\xed\x20\xed\x21\xed\x22\xed\x23\xed\x24\xed\x25\xed\x26\xed\x27\xed\x28\xed\x29\xed\x2a\xed\x2b\xed\x2c\xed\x2d\xed\x2e\xed\x2f\xed\x30\xed\x31\xed\x32\xed\x33\xed\x34\xed\x35\xed\x36\xed\x37\xed\x38\xed\x39\xed\x3a\xed\x3b\xed\x3c\xed\x3d\xed\x3e\xed\x3f\xed\x40\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a", /* 7b80 */ "\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xed\xff\xee\x00\xee\x01\xee\x02\xee\x03\xee\x04\xee\x05\xee\x06\xee\x07\xee\x08\xee\x09\xee\x0a\xee\x0b\xee\x0c\xee\x0d\xee\x0e\xee\x0f\xee\x10\xee\x11\xee\x12\xee\x13\xee\x14\xee\x15\xee\x16\xee\x17\xee\x18\xee\x19\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x1a\xee\x1b\xee\x1c\xee\x1d\xee\x1e\xee\x1f\xee\x20\xee\x21\xee\x22\xee\x23\xee\x24\xee\x25\xee\x26\xee\x27\xee\x28\xee\x29\xee\x2a\xee\x2b\xee\x2c\xee\x2d\xee\x2e\xee\x2f\xee\x30\xee\x31\xee\x32\xee\x33\xee\x34\xee\x35\xee\x36\xee\x37\xee\x38\xee\x39\xee\x3a\xee\x3b\xee\x3c\xee\x3d\xee\x3e\xee\x3f\xee\x40\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58", /* 7c80 */ "\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xee\xff\xef\x00\xef\x01\xef\x02\xef\x03\xef\x04\xef\x05\xef\x06\xef\x07\xef\x08\xef\x09\xef\x0a\xef\x0b\xef\x0c\xef\x0d\xef\x0e\xef\x0f\xef\x10\xef\x11\xef\x12\xef\x13\xef\x14\xef\x15\xef\x16", /* 7d80 */ "\xef\x17\xef\x18\xef\x19\xef\x1a\xef\x1b\xef\x1c\xef\x1d\xef\x1e\xef\x1f\xef\x20\xef\x21\xef\x22\xef\x23\xef\x24\xef\x25\xef\x26\xef\x27\xef\x28\xef\x29\xef\x2a\xef\x2b\xef\x2c\xef\x2d\xef\x2e\xef\x2f\xef\x30\xef\x31\xef\x32\xef\x33\xef\x34\xef\x35\xef\x36\xef\x37\xef\x38\xef\x39\xef\x3a\xef\x3b\xef\x3c\xef\x3d\xef\x3e\xef\x3f\xef\x40\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xef\xd2\xef\xd3\xef\xd4", /* 7e80 */ "\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xef\xff\xf0\x00\xf0\x01\xf0\x02\xf0\x03\xf0\x04\xf0\x05\xf0\x06\xf0\x07\xf0\x08\xf0\x09\xf0\x0a\xf0\x0b\xf0\x0c\xf0\x0d\xf0\x0e\xf0\x0f\xf0\x10\xf0\x11\xf0\x12\xf0\x13\xf0\x14\xf0\x15\xf0\x16\xf0\x17\xf0\x18\xf0\x19\xf0\x1a\xf0\x1b\xf0\x1c\xf0\x1d\xf0\x1e\xf0\x1f\xf0\x20\xf0\x21\xf0\x22\xf0\x23\xf0\x24\xf0\x25\xf0\x26\xf0\x27\xf0\x28\xf0\x29\xf0\x2a\xf0\x2b\xf0\x2c\xf0\x2d\xf0\x2e\xf0\x2f\xf0\x30\xf0\x31\xf0\x32\xf0\x33\xf0\x34\xf0\x35\xf0\x36\xf0\x37\xf0\x38\xf0\x39\xf0\x3a\xf0\x3b\xf0\x3c\xf0\x3d\xf0\x3e\xf0\x3f\xf0\x40\xf0\x41\xf0\x42\xf0\x43\xf0\x44\xf0\x45\xf0\x46\xf0\x47\xf0\x48\xf0\x49\xf0\x4a\xf0\x4b\xf0\x4c\xf0\x4d\xf0\x4e\xf0\x4f\xf0\x50\xf0\x51\xf0\x52\xf0\x53\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x54\xf0\x55\xf0\x56\xf0\x57\xf0\x58\xf0\x59\xf0\x5a\xf0\x5b\xf0\x5c\xf0\x5d\xf0\x5e\xf0\x5f\xf0\x60\xf0\x61\xf0\x62\xf0\x63\xf0\x64\xf0\x65\xf0\x66\xf0\x67\xf0\x68\xf0\x69\xf0\x6a\xf0\x6b\xf0\x6c\xf0\x6d\xf0\x6e\xf0\x6f\xf0\x70\xf0\x71\xf0\x72\xf0\x73\xf0\x74\xf0\x75\xf0\x76\xf0\x77\xf0\x78\xf0\x79\xf0\x7a\xf0\x7b\xf0\x7c\xf0\x7d\xf0\x7e\xf0\x7f\xf0\x80\xf0\x81\xf0\x82\xf0\x83\xf0\x84\xf0\x85\xf0\x86\xf0\x87\xf0\x88\xf0\x89\xf0\x8a\xf0\x8b\xf0\x8c\xf0\x8d\xf0\x8e\xf0\x8f\xf0\x90\xf0\x91\xf0\x92", /* 7f80 */ "\xf0\x93\xf0\x94\xf0\x95\xf0\x96\xf0\x97\xf0\x98\xf0\x99\xf0\x9a\xf0\x9b\xf0\x9c\xf0\x9d\xf0\x9e\xf0\x9f\xf0\xa0\xf0\xa1\xf0\xa2\xf0\xa3\xf0\xa4\xf0\xa5\xf0\xa6\xf0\xa7\xf0\xa8\xf0\xa9\xf0\xaa\xf0\xab\xf0\xac\xf0\xad\xf0\xae\xf0\xaf\xf0\xb0\xf0\xb1\xf0\xb2\xf0\xb3\xf0\xb4\xf0\xb5\xf0\xb6\xf0\xb7\xf0\xb8\xf0\xb9\xf0\xba\xf0\xbb\xf0\xbc\xf0\xbd\xf0\xbe\xf0\xbf\xf0\xc0\xf0\xc1\xf0\xc2\xf0\xc3\xf0\xc4\xf0\xc5\xf0\xc6\xf0\xc7\xf0\xc8\xf0\xc9\xf0\xca\xf0\xcb\xf0\xcc\xf0\xcd\xf0\xce\xf0\xcf\xf0\xd0\xf0\xd1\xf0\xd2\xf0\xd3\xf0\xd4\xf0\xd5\xf0\xd6\xf0\xd7\xf0\xd8\xf0\xd9\xf0\xda\xf0\xdb\xf0\xdc\xf0\xdd\xf0\xde\xf0\xdf\xf0\xe0\xf0\xe1\xf0\xe2\xf0\xe3\xf0\xe4\xf0\xe5\xf0\xe6\xf0\xe7\xf0\xe8\xf0\xe9\xf0\xea\xf0\xeb\xf0\xec\xf0\xed\xf0\xee\xf0\xef\xf0\xf0\xf0\xf1\xf0\xf2\xf0\xf3\xf0\xf4\xf0\xf5\xf0\xf6\xf0\xf7\xf0\xf8\xf0\xf9\xf0\xfa\xf0\xfb\xf0\xfc\xf0\xfd\xf0\xfe\xf0\xff\xf1\x00\xf1\x01\xf1\x02\xf1\x03\xf1\x04\xf1\x05\xf1\x06\xf1\x07\xf1\x08\xf1\x09\xf1\x0a\xf1\x0b\xf1\x0c\xf1\x0d\xf1\x0e\xf1\x0f\xf1\x10\xf1\x11\x00\x00", /* 8000 */ NULL, /* 8080 */ NULL, /* 8100 */ NULL, /* 8180 */ NULL, /* 8200 */ NULL, /* 8280 */ NULL, /* 8300 */ NULL, /* 8380 */ NULL, /* 8400 */ NULL, /* 8480 */ NULL, /* 8500 */ NULL, /* 8580 */ NULL, /* 8600 */ NULL, /* 8680 */ NULL, /* 8700 */ NULL, /* 8780 */ NULL, /* 8800 */ NULL, /* 8880 */ NULL, /* 8900 */ NULL, /* 8980 */ NULL, /* 8a00 */ NULL, /* 8a80 */ NULL, /* 8b00 */ NULL, /* 8b80 */ NULL, /* 8c00 */ NULL, /* 8c80 */ NULL, /* 8d00 */ NULL, /* 8d80 */ NULL, /* 8e00 */ NULL, /* 8e80 */ NULL, /* 8f00 */ NULL, /* 8f80 */ NULL, /* 9000 */ NULL, /* 9080 */ NULL, /* 9100 */ NULL, /* 9180 */ NULL, /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ NULL, /* e080 */ NULL, /* e100 */ NULL, /* e180 */ NULL, /* e200 */ NULL, /* e280 */ NULL, /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp935", "0x04380345" /* 1080, 837 */, "gb2312.1980-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-837_P100-2000 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x88\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x44\x46\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x48\x46\x46\x46\x5a\x00\x00\x46\x4c\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x46\x50\x46\x4e\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x46\x54\x46\x52\x00\x00\x46\x59\x00\x00\x00\x00\x00\x00", /* 0100 */ "\x00\x00\x46\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x46\x4b\x00\x00\x46\x4f\x00\x00\x46\x53\x00\x00\x46\x55\x00\x00\x46\x56\x00\x00\x46\x57\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0200 */ NULL, /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x46\x00\x00\x45\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4a\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x8b\x00\x00\x44\xee\x44\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x66\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6b\x00\x00\x00\x00\x45\x77\x44\x4d\x00\x00\x45\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6d\x00\x00\x45\x63\x45\x64\x45\x68\x45\x67\x45\x71\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x45\x62\x45\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x75\x00\x00\x00\x00\x00\x00\x45\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x45\x73\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0", /* 2480 */ "\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2500 */ "\x46\xa4\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x45\x5b\x45\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x59\xba\x4b\xa0\x00\x00\x53\xde\x00\x00\x00\x00\x00\x00\x57\x93\x5b\x69\x54\xfc\x55\x6f\x58\x62\x5c\xa1\x49\xba\x5a\x8c\x00\x00\x5c\xa3\x4a\x94\x00\x00\x5c\x48\x54\x72\x5c\xa6\x55\xbf\x00\x00\x54\x91\x49\x9c\x59\xb4\x4a\xd3\x4b\xaa\x56\x5f\x5c\xa8\x00\x00\x00\x00\x00\x00\x4b\xa9\x00\x00\x51\x5d\x59\x6f\x00\x00\x55\x45\x5c\xac\x00\x00\x4c\xf5\x59\x5e\x62\x7c\x5b\xcf\x00\x00\x00\x00\x4c\x82\x00\x00\x4a\xad\x00\x00\x51\x79\x00\x00\x5c\xbb\x00\x00\x57\x89\x4b\x44\x57\xa9\x5b\xf6\x00\x00\x50\xf5\x4f\xd8\x5c\xae\x00\x00\x00\x00\x00\x00\x52\xca\x00\x00\x4f\xc2\x00\x00\x5c\xb0\x52\x54\x59\xe4\x00\x00\x5b\xad\x57\xd9\x5b\x47\x4d\xf4\x4c\x46\x50\xd5\x00\x00\x53\xb8\x53\x72\x54\x67\x00\x00\x4d\x74\x00\x00\x4a\x6b\x59\xd1\x00\x00\x00\x00\x5c\xbe\x4f\xc4\x53\xf1\x59\xb1\x58\x50\x58\x88\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe8\x00\x00\x00\x00\x5c\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf1\x51\xd1\x00\x00\x54\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x4c\x00\x00", /* 4e80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6b\x00\x00\x5a\x89\x5b\x9a\x00\x00\x55\xc1\x4b\xfd\x5c\xa0\x5a\x7a\x50\x98\x00\x00\x5a\xc5\x4e\x45\x5c\xc0\x57\xe4\x4f\xad\x00\x00\x00\x00\x5c\xa7\x00\x00\x59\x67\x58\xa8\x00\x00\x00\x00\x00\x00\x5c\xbc\x5d\x90\x57\x97\x50\x5a\x00\x00\x4f\x5b\x4d\xa4\x59\xdf\x49\xf9\x4d\xdf\x52\xb5\x00\x00\x58\x8e\x4f\xa8\x57\x44\x51\x61\x00\x00\x00\x00\x00\x00\x54\x77\x5d\x92\x00\x00\x5d\x95\x00\x00\x00\x00\x00\x00\x00\x00\x54\xca\x5c\xe8\x00\x00\x00\x00\x00\x00\x59\xd9\x55\xb1\x54\xc9\x5c\xeb\x5c\xe9\x5c\xc5\x4f\x97\x53\xcc\x4a\x91\x00\x00\x5c\xea\x4f\x92\x4f\x8a\x00\x00\x54\xd3\x4a\xd2\x00\x00\x00\x00\x51\xd7\x00\x00\x49\xd5\x5c\x70\x55\xca\x56\x9c\x5b\x6c\x4c\xb5\x58\x69\x00\x00\x00\x00\x00\x00\x5d\x7a\x5c\xef\x54\x4a\x00\x00\x5c\xed\x00\x00\x4a\xf9\x51\x8f\x59\xd3\x00\x00\x00\x00\x5c\xec\x00\x00\x59\xc6\x5c\xee\x52\x67\x00\x00\x00\x00\x00\x00\x59\x97\x00\x00\x5b\xd8\x5c\xf1\x00\x00\x5c\xf4\x4e\xfd\x4e\xda\x00\x00\x00\x00\x00\x00\x54\xcd\x00\x00\x4c\x7d\x00\x00\x4c\x62", /* 4f00 */ "\x00\x00\x53\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xf7\x59\xc0\x00\x00\x00\x00\x57\xe8\x4e\xbe\x4c\x9d\x4c\x45\x58\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd9\x5a\x65\x4e\x90\x4e\x82\x5c\xf0\x00\x00\x00\x00\x55\x41\x57\xaf\x4a\xaa\x00\x00\x5c\xf2\x00\x00\x55\x6b\x5c\xf5\x51\xd6\x5c\xf6\x00\x00\x00\x00\x57\xb0\x5c\xf8\x00\x00\x00\x00\x00\x00\x49\xad\x4d\x60\x00\x00\x5d\x43\x00\x00\x48\xe8\x00\x00\x51\x87\x00\x00\x55\x8d\x00\x00\x56\x65\x00\x00\x56\x66\x5d\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x89\x00\x00\x00\x00\x4b\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xba\x4b\x6d\x5c\x41\x5c\x95\x5a\x73\x00\x00\x56\xe4\x00\x00\x4d\xcd\x00\x00\x5d\x42\x5d\x7c\x5a\x81\x5c\xfc\x4c\x91\x5c\x98\x5c\xfd\x5c\xf9\x5d\x41\x52\xe2\x00\x00\x00\x00\x5a\x56\x5c\xf3\x5d\x7d\x00\x00\x5c\xfa\x00\x00\x53\x86\x00\x00\x00\x00\x50\xcf\x00\x00\x00\x00\x59\x91\x48\xda\x00\x00\x00\x00\x4e\xd0\x5d\x46\x00\x00\x5d\x45\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x4c\x5d\x4e\x00\x00\x5d\x4b\x55\xb8", /* 4f80 */ "\x00\x00\x00\x00\x00\x00\x5d\x49\x5b\xb5\x00\x00\x00\x00\x00\x00\x4a\x7e\x5d\x48\x00\x00\x50\xfc\x00\x00\x55\xcb\x00\x00\x5d\x4a\x00\x00\x5d\x47\x00\x00\x00\x00\x5d\x50\x00\x00\x00\x00\x4b\xb0\x00\x00\x00\x00\x00\x00\x4d\x49\x00\x00\x59\xbf\x00\x00\x00\x00\x58\x60\x00\x00\x00\x00\x51\xc1\x00\x00\x4f\x64\x5b\x8d\x49\xdf\x54\x68\x50\x8c\x5d\x4d\x00\x00\x5d\x4f\x00\x00\x57\xe9\x4d\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x84\x00\x00\x00\x00\x00\x00\x4a\xd8\x4b\xec\x5d\x54\x00\x00\x00\x00\x00\x00\x00\x00\x50\x41\x00\x00\x00\x00\x00\x00\x5d\x7e\x54\x6e\x50\xfd\x5d\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x77\x4c\x9e\x00\x00\x5d\x55\x00\x00\x5d\x57\x49\x43\x5a\x82\x5d\x59\x00\x00\x58\xc4\x00\x00\x5d\x56\x00\x00\x00\x00\x5d\x51\x00\x00\x5d\x52\x51\x49\x5d\x53\x00\x00\x00\x00\x4e\xf2\x58\xdd\x4c\xa8\x00\x00\x4f\xe2\x00\x00\x5d\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x5a\x00\x00\x48\xb2\x00\x00\x00\x00\x00\x00\x5d\x62\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x64\x49\x56\x00\x00\x5d\x5f\x00\x00\x00\x00\x4b\x59\x00\x00\x4f\xf2\x00\x00\x00\x00\x00\x00\x56\xc7\x4d\xf1\x59\xcf\x00\x00\x5d\x63\x00\x00\x00\x00\x4f\x89\x00\x00\x4a\x4b\x00\x00\x00\x00\x00\x00\x5d\x65\x4f\xea\x00\x00\x5d\x66\x5d\x5b\x52\xde\x00\x00\x5d\x5e\x5d\x61\x5d\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x4e\x00\x00\x5b\xb4\x00\x00\x54\x84\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x68\x00\x00\x00\x00\x00\x00\x4e\xd8\x5d\x6a\x00\x00\x00\x00\x00\x00\x5d\x5c\x00\x00\x5d\x6b\x53\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x97\x00\x00\x57\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x5c\x57\x55\x00\x00\x00\x00\x00\x00\x5d\x6d\x00\x00\x00\x00\x5d\x67\x4a\x45", /* 5080 */ "\x50\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb4\x00\x00\x00\x00\x50\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf5\x00\x00\x5d\x6e\x00\x00\x5d\x6f\x4a\xa1\x5d\x70\x00\x00\x00\x00\x4a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x71\x55\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x72\x00\x00\x00\x00\x00\x00\x51\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x76\x55\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x75\x5d\x74\x5d\x77\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7b\x00\x00\x4f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa6\x00\x00\x00\x00\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x73\x5d\x78\x00\x00\x00\x00\x00\x00\x5d\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xf8\x5c\xa2\x5a\xc9\x00\x00\x5a\xa9\x58\xd5\x4a\x85\x5b\x77\x00\x00\x58\x68\x4d\x83\x00\x00\x50\x6b\x00\x00\x52\x83\x00\x00\x00\x00\x00\x00\x4b\xd1\x00\x00\x00\x00\x57\x63\x5d\x8f\x5d\x91\x00\x00\x00\x00\x00\x00\x4b\x53\x00\x00\x4b\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa3\x00\x00\x00\x00\x54\xea\x00\x00\x00\x00\x54\xaa\x00\x00\x00\x00\x48\xca\x4d\x4b\x51\x9a\x5d\x83\x00\x00\x50\xbb\x4d\x52\x00\x00\x4d\x78\x58\xca\x49\x99\x53\xe3\x4f\xde\x4b\x85\x5c\x68\x00\x00\x59\x99\x4e\xe5\x55\xdd\x00\x00\x00\x00", /* 5180 */ "\x4e\xbc\x5d\x87\x5c\xe6\x00\x00\x00\x00\x52\xd9\x00\x00\x00\x00\x4c\xd3\x54\xbc\x00\x00\x00\x00\x49\xe0\x5a\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x52\x50\x00\x00\x00\x00\x52\x82\x5d\xa1\x54\xde\x00\x00\x58\xb3\x00\x00\x4f\xfb\x53\x49\x00\x00\x00\x00\x00\x00\x4d\x7a\x00\x00\x5d\xa2\x00\x00\x5a\xa8\x5d\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9c\x4b\xab\x00\x00\x00\x00\x4c\x8c\x49\x9a\x5d\x9d\x4a\x86\x4f\xf5\x00\x00\x50\x97\x59\xb0\x50\xe3\x00\x00\x00\x00\x00\x00\x4b\xb2\x5d\x9f\x5d\x9e\x00\x00\x00\x00\x4f\xba\x00\x00\x00\x00\x00\x00\x53\xdf\x00\x00\x5c\x5c\x5d\xa0\x00\x00\x51\x59\x00\x00\x4b\x93\x51\x89\x00\x00\x00\x00\x4e\xf4\x00\x00\x4a\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x7d\x00\x00\x52\xfc\x00\x00\x00\x00\x4e\xb7\x4c\x52\x00\x00\x00\x00\x4c\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8d\x00\x00\x53\xbd\x00\x00\x50\x4d\x4e\x6b\x00\x00\x00\x00\x4b\x6a\x00\x00\x5e\x69\x58\xd6\x00\x00\x57\x59\x48\xbb\x4a\x97\x4e\x98\x5e\x6a\x4d\xae\x00\x00\x5a\xe3", /* 5200 */ "\x4b\x56\x4b\x94\x5c\xd5\x54\xcf\x00\x00\x00\x00\x4c\x76\x54\x70\x5c\xd6\x00\x00\x50\x4f\x00\x00\x00\x00\x5e\x5b\x5c\xd7\x00\x00\x00\x00\x58\xcb\x4e\x4e\x00\x00\x00\x00\x00\x00\x66\x5e\x51\x70\x51\x96\x5a\xf1\x4c\xd4\x4a\xb3\x00\x00\x4a\x96\x00\x00\x00\x00\x55\x5e\x00\x00\x00\x00\x00\x00\x53\x70\x00\x00\x00\x00\x00\x00\x53\x79\x50\xfa\x00\x00\x49\x91\x00\x00\x5c\xd8\x4d\x6e\x00\x00\x4b\x5d\x00\x00\x00\x00\x5c\xd9\x00\x00\x00\x00\x5b\xc5\x56\x42\x54\xae\x55\x52\x4a\xcb\x50\x6c\x00\x00\x4d\x95\x00\x00\x5c\xda\x5c\xdb\x4b\xe6\x4e\xc0\x56\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x98\x00\x00\x5c\xdc\x54\x50\x00\x00\x00\x00\x4d\x70\x4f\x43\x00\x00\x00\x00\x56\xdd\x00\x00\x53\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xdf\x00\x00\x5c\xdd\x00\x00\x00\x00\x5c\xde\x00\x00\x00\x00\x00\x00\x48\xfd\x00\x00\x4f\xe6\x00\x00\x55\xa2\x4e\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb0\x00\x00\x00\x00\x4c\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe1\x00\x00\x4f\x6b", /* 5280 */ "\x00\x00\x5c\xe3\x5c\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe4\x00\x00\x00\x00\x5c\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x46\x00\x00\x54\xaf\x48\xeb\x4d\x46\x4e\xd2\x57\xf0\x5e\x5d\x51\x73\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xae\x5b\xf9\x53\x4c\x4f\x79\x5e\x5e\x5e\x5f\x00\x00\x00\x00\x00\x00\x50\xf7\x4f\xa1\x50\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x60\x55\xc5\x00\x00\x00\x00\x00\x00\x49\xa9\x00\x00\x00\x00\x00\x00\x5a\x62\x00\x00\x52\x84\x00\x00\x59\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x62\x00\x00\x50\xd4\x00\x00\x00\x00\x00\x00\x5e\x63\x00\x00\x50\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x89\x55\x77\x00\x00\x00\x00\x00\x00\x4d\x54\x57\xef", /* 5300 */ "\x5a\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x48\xfb\x4a\xd1\x00\x00\x58\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8a\x00\x00\x5f\xca\x5d\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xaf\x4e\x4f\x49\x51\x00\x00\x4a\x77\x5c\xcd\x00\x00\x00\x00\x5a\xd0\x00\x00\x00\x00\x4f\x53\x50\x90\x00\x00\x58\x5b\x00\x00\x00\x00\x5c\xcf\x00\x00\x00\x00\x00\x00\x4c\x6b\x00\x00\x00\x00\x00\x00\x5c\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa4\x54\x99\x59\xbc\x00\x00\x00\x00\x5c\xd1\x52\xe3\x00\x00\x55\xad\x00\x00\x54\x47\x00\x00\x5c\xa5\x00\x00\x55\x9e\x57\xe6\x4e\x7c\x48\xea\x00\x00\x00\x00\x00\x00\x4e\x4a\x58\xac\x00\x00\x49\x50\x5c\x85\x5c\x5f\x00\x00\x4b\x45\x51\xf3\x52\xce\x00\x00\x00\x00\x49\xa8\x00\x00\x49\xb6\x00\x00\x49\x86\x60\x52\x5b\x5c\x50\x48\x51\xab\x5c\xd4\x51\xb0\x00\x00\x5c\xd3\x57\xd3\x00\x00\x5d\xdf\x00\x00\x57\xbf\x00\x00\x00\x00\x5c\xb3\x52\x4e\x5a\x41\x57\xa2\x00\x00\x4e\xb3\x54\xb3\x51\xd0\x00\x00\x4f\xec\x58\xb5\x00\x00\x5d\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x54\x85", /* 5380 */ "\x00\x00\x00\x00\x4a\x47\x00\x00\x4b\xf1\x56\xfb\x50\xf9\x00\x00\x00\x00\x50\xf6\x00\x00\x59\x59\x59\x82\x5c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xdd\x00\x00\x00\x00\x50\xe4\x00\x00\x4d\xf0\x00\x00\x00\x00\x5c\xc7\x00\x00\x5a\xac\x00\x00\x00\x00\x58\x82\x5c\xc8\x00\x00\x5c\xc9\x58\x63\x00\x00\x4a\x99\x4f\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa4\x00\x00\x00\x00\x00\x00\x58\x78\x00\x00\x54\xfd\x49\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x76\x49\xe5\x4e\xaf\x5a\x71\x56\x4b\x4c\x54\x00\x00\x00\x00\x00\x00\x4c\x42\x00\x00\x00\x00\x55\xe4\x00\x00\x54\xa0\x55\xdb\x49\x85\x58\xef\x00\x00\x53\x71\x00\x00\x00\x00\x00\x00\x5e\x65\x4b\x9f\x00\x00\x00\x00\x50\x7a\x4d\x65\x4f\xe3\x51\x8e\x00\x00\x60\x56\x60\x55\x5b\xba\x4f\x70\x5b\x79\x48\xc7\x4b\xa2\x50\x69\x56\xa7\x60\x53\x55\xb6\x5a\x72\x00\x00\x5c\xce\x59\xb5\x4d\xc4\x56\x5e\x56\xbd\x00\x00\x60\x57\x4b\x91\x60\x54\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x5a\x96\x00\x00\x4a\x74\x4c\xf6\x00\x00\x60\x5a\x00\x00\x4d\xce\x4e\xa9\x4b\x96\x00\x00\x57\x4c\x52\x9c\x4d\xf2\x50\xf3\x57\x62\x58\x93\x60\x58\x58\x65\x00\x00\x51\xbf\x60\x59\x51\xef\x00\x00\x00\x00\x00\x00\x4f\xfc\x00\x00\x51\x7f\x57\x6c\x59\xf6\x4c\x6d\x60\x61\x00\x00\x60\x64\x00\x00\x00\x00\x4c\x92\x48\xc8\x4b\xd5\x4c\x74\x00\x00\x4d\xab\x56\xfc\x50\x74\x56\x51\x53\xf3\x00\x00\x5b\xa7\x60\x65\x00\x00\x57\xe1\x4a\x53\x00\x00\x00\x00\x57\xfb\x4a\xb4\x00\x00\x57\xc6\x4d\xef\x00\x00\x57\xe0\x00\x00\x59\x5d\x00\x00\x00\x00\x60\x60\x00\x00\x00\x00\x4a\xf3\x00\x00\x4a\x6a\x00\x00\x4c\xe5\x60\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc4\x00\x00\x60\x5c\x60\x5d\x60\x5e\x53\x5b\x60\x5f\x60\x62\x5a\xb0\x60\x63\x00\x00\x54\x5a\x57\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd7\x00\x00\x60\x6a\x00\x00\x60\x6f\x00\x00\x5b\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x69\x60\x7a\x57\xb5\x00\x00\x4d\xc6\x60\x6e\x60\x68\x53\x7e\x00\x00\x00\x00\x55\x8c\x4d\xf3\x52\x9d\x00\x00\x00\x00", /* 5480 */ "\x4f\xd6\x00\x00\x60\x66\x00\x00\x60\x6d\x00\x00\x53\x78\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x46\x4d\xcc\x00\x00\x4f\xcb\x5a\x5d\x4c\xbf\x00\x00\x5b\xe3\x00\x00\x60\x67\x4d\x5e\x50\x47\x00\x00\x00\x00\x51\x9d\x60\x6b\x60\x6c\x00\x00\x60\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x7b\x60\x86\x00\x00\x60\x77\x60\x76\x5c\x69\x60\x84\x60\x85\x63\x8c\x59\xa6\x60\x72\x00\x00\x50\x49\x00\x00\x5a\xda\x00\x00\x50\x68\x60\x74\x00\x00\x00\x00\x00\x00\x58\x6c\x00\x00\x00\x00\x60\x7d\x00\x00\x59\x6a\x00\x00\x60\x7e\x48\xa6\x53\xb6\x60\x73\x00\x00\x4d\xe4\x00\x00\x4b\xde\x57\x7b\x4d\x9f\x5a\xd4\x00\x00\x00\x00\x60\x7f\x58\x8d\x48\xa4\x60\x88\x60\x71\x59\x66\x60\x75\x60\x78\x60\x79\x60\x7c\x00\x00\x4e\x49\x00\x00\x60\x81\x60\x82\x00\x00\x60\x83\x60\x87\x60\x89\x5a\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe6\x53\x56\x60\x8b\x55\x7a\x51\x48\x52\xc3\x00\x00\x00\x00\x50\x7e\x58\x99\x00\x00\x00\x00\x00\x00\x5b\x7c\x60\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb7\x00\x00\x4d\xde\x60\x8d\x00\x00\x5e\x61", /* 5500 */ "\x00\x00\x59\x85\x00\x00\x00\x00\x00\x00\x00\x00\x56\x95\x4a\xbc\x00\x00\x48\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x92\x56\xc5\x60\x93\x00\x00\x00\x00\x60\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x60\x8c\x00\x00\x60\x90\x60\x91\x4e\x5d\x00\x00\x00\x00\x60\x94\x00\x00\x00\x00\x60\x95\x00\x00\x4e\x43\x00\x00\x55\xda\x57\xa7\x60\xa6\x4a\x4a\x00\x00\x60\xa5\x00\x00\x00\x00\x00\x00\x60\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9f\x00\x00\x57\x79\x60\x9d\x00\x00\x60\x9b\x00\x00\x50\x70\x5c\x64\x00\x00\x55\x6c\x00\x00\x00\x00\x60\x99\x48\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x60\x9c\x60\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x68\x00\x00\x00\x00\x53\xa0\x55\x56\x50\xb1\x60\x96\x00\x00\x00\x00\x53\x5e\x00\x00\x5c\xc3\x60\x9a\x52\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xa2\x60\xa3\x60\xa4\x58\xa4\x00\x00\x00\x00\x60\xb3\x56\xe3\x00\x00\x60\xb0\x00\x00", /* 5580 */ "\x50\x46\x60\xae\x57\xb8\x60\xaa\x55\x66\x00\x00\x00\x00\x50\xad\x60\xad\x4d\xec\x4d\xaf\x60\xa8\x00\x00\x00\x00\x00\x00\x60\x97\x00\x00\x60\xb2\x00\x00\x00\x00\x60\xb7\x00\x00\x00\x00\x00\x00\x4a\xac\x60\xb8\x00\x00\x00\x00\x58\x52\x4d\xc7\x00\x00\x60\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xab\x00\x00\x5a\xfa\x00\x00\x60\x98\x00\x00\x53\x88\x00\x00\x60\xac\x00\x00\x5a\x98\x00\x00\x60\xb5\x60\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xc3\x58\xe0\x00\x00\x00\x00\x00\x00\x60\xbb\x00\x00\x00\x00\x60\xc8\x60\xc9\x00\x00\x00\x00\x00\x00\x60\xbd\x60\xa9\x55\x44\x60\xc0\x00\x00\x60\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc7\x60\xc2\x00\x00\x60\xb4\x00\x00\x57\xca\x00\x00\x56\x63\x60\xcc\x60\xc5\x60\xc1\x00\x00\x60\xca\x00\x00\x60\xb9\x60\xbe\x60\xbf\x00\x00\x00\x00\x60\xc4\x00\x00\x00\x00\x60\xc6\x60\xc7\x00\x00\x60\xcb\x00\x00\x60\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x74\x60\xd4\x00\x00", /* 5600 */ "\x60\xd5\x60\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xcf\x4e\xcd\x00\x00\x00\x00\x60\xd0\x00\x00\x4c\xc1\x5c\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe9\x00\x00\x00\x00\x51\xee\x00\x00\x00\x00\x60\xce\x60\xbc\x00\x00\x00\x00\x00\x00\x60\xd3\x60\xd2\x00\x00\x00\x00\x60\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x60\xdb\x60\xd7\x00\x00\x00\x00\x00\x00\x5b\xf5\x4a\x50\x00\x00\x5c\x8d\x00\x00\x56\x5b\x00\x00\x00\x00\x60\xd9\x00\x00\x57\xfa\x00\x00\x00\x00\x00\x00\x4d\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe0\x60\xdc\x59\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe1\x00\x00\x00\x00\x60\xda\x60\xd8\x60\xde\x00\x00\x00\x00\x60\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xdd\x00\x00\x60\xe3\x00\x00\x00\x00\x00\x00\x53\xf6\x5c\xab\x5a\xea\x60\xe5\x55\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe6\x60\xe7\x00\x00\x00\x00\x00\x00", /* 5680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe8\x60\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xbe\x56\xe6\x00\x00\x00\x00\x00\x00\x60\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xeb\x00\x00\x00\x00\x60\xec\x00\x00\x00\x00\x54\x95\x56\x64\x00\x00\x60\xed\x4e\x78\x5c\xb5\x59\xf1\x60\xee\x57\x65\x00\x00\x4b\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf0\x00\x00\x5a\xaf\x00\x00\x00\x00\x50\xa6\x4a\xd0\x00\x00\x00\x00\x57\xa6\x60\xef\x00\x00\x00\x00\x00\x00\x60\xf1\x4d\x6c\x00\x00\x00\x00\x4d\x9b\x57\x5c\x60\xf2", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x53\xd3\x60\xf3\x00\x00\x5a\xb1\x00\x00\x54\xa5\x60\xf5\x60\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xf6\x00\x00\x00\x00\x57\x61\x00\x00\x00\x00\x00\x00\x55\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd9\x5e\x77\x5e\x79\x00\x00\x5e\x78\x4d\x88\x5e\x7c\x5e\x7d\x4b\x78\x00\x00\x00\x00\x5e\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x7b\x4a\x41\x5e\x7f\x00\x00\x00\x00\x4e\x99\x00\x00\x5b\xb6\x00\x00\x5e\x81\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf8\x00\x00\x00\x00\x4c\x5b\x00\x00\x5e\x70\x56\xad\x50\x52\x4e\x55\x5c\x99\x50\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8a\x00\x00\x00\x00\x4e\xe0\x56\xb2\x5e\x7e\x48\xd2\x57\xea\x4c\x78\x5c\x59\x53\xc1\x00\x00\x00\x00\x50\xa3\x00\x00\x56\xb8\x00\x00\x5e\x88\x5e\x82\x53\xb9\x5e\x84\x00\x00\x5e\x89\x00\x00\x53\x98\x00\x00\x00\x00\x00\x00\x5e\x8b\x00\x00\x00\x00\x5e\x8a\x50\x60\x00\x00\x00\x00\x00\x00\x5e\x87\x5e\x86\x00\x00\x00\x00\x00\x00", /* 5780 */ "\x00\x00\x00\x00\x4a\xb8\x50\xab\x51\xa1\x5e\x83\x5e\x85\x00\x00\x00\x00\x00\x00\x00\x00\x58\xcc\x5e\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdc\x5e\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x94\x5e\x72\x4d\x58\x5a\xaa\x5e\x8d\x00\x00\x50\x71\x5e\x91\x00\x00\x5e\x71\x00\x00\x4b\x87\x00\x00\x5e\x8c\x50\x86\x00\x00\x00\x00\x00\x00\x5e\x8f\x00\x00\x5e\x92\x00\x00\x00\x00\x00\x00\x5e\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x41\x48\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf0\x00\x00\x00\x00\x4a\x67\x5e\x90\x00\x00\x00\x00\x5e\x99\x00\x00\x53\xd1\x5e\x95\x00\x00\x00\x00\x5e\x96\x5e\x98\x5e\x97\x00\x00\x00\x00\x5e\x9f\x00\x00\x5a\x93\x49\xb9\x00\x00\x00\x00\x00\x00\x5e\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa3\x00\x00\x5e\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9b\x00\x00\x00\x00\x00\x00\x5e\x9d\x53\x81\x4e\x9a\x00\x00\x00\x00\x5e\xa2\x00\x00\x00\x00", /* 5800 */ "\x5e\xa4\x00\x00\x56\xc2\x00\x00\x00\x00\x00\x00\x4b\xd0\x5f\x60\x00\x00\x00\x00\x00\x00\x5e\xa0\x00\x00\x5e\xa1\x00\x00\x00\x00\x00\x00\x54\x55\x00\x00\x00\x00\x00\x00\x4b\xe8\x00\x00\x00\x00\x00\x00\x5e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa5\x00\x00\x5e\xa8\x49\x44\x00\x00\x00\x00\x4b\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x9b\x66\x94\x00\x00\x00\x00\x00\x00\x56\x7c\x00\x00\x00\x00\x56\x9f\x00\x00\x00\x00\x00\x00\x56\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xed\x5e\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x73\x00\x00", /* 5880 */ "\x5e\xae\x5e\xab\x00\x00\x4f\xb2\x00\x00\x55\xfa\x00\x00\x00\x00\x00\x00\x5e\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x6a\x52\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x5d\x5e\xad\x00\x00\x00\x00\x00\x00\x5a\xf5\x58\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xaa\x4b\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x74\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7a\x00\x00\x00\x00\x00\x00\x5e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x76\x00\x00\x00\x00\x00\x00\x4d\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbe\x54\xc8\x00\x00\x5c\x53\x00\x00\x55\x9a\x00\x00\x00\x00\x50\x67\x00\x00\x00\x00\x4d\xf7\x00\x00\x00\x00\x59\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x61\xb9\x00\x00\x4a\xa5\x00\x00\x00\x00\x49\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb3\x00\x00\x58\x64\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x88\x58\x46\x57\x83\x00\x00\x00\x00\x5d\x8e\x4b\xdf\x00\x00\x59\xb8\x00\x00\x00\x00\x4d\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb8\x61\xb6\x00\x00\x4a\xf2\x00\x00\x56\xeb\x56\xaa\x4c\x93\x00\x00\x5c\xb1\x59\x8c\x4d\xba\x00\x00\x55\xa6\x00\x00\x00\x00\x57\x57\x00\x00\x00\x00\x59\xc3\x50\x85\x4e\xcf\x4b\xe0\x00\x00\x5f\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc5\x5e\x5c\x00\x00\x59\x79\x00\x00\x00\x00\x53\xe5\x52\xcd\x4c\x8f\x00\x00\x4c\x7c\x00\x00\x00\x00\x50\x9d\x5c\x81\x00\x00\x53\xf4\x00\x00\x00\x00\x49\x5c\x5f\xc7\x4f\x51\x56\xd6\x5f\xc9\x00\x00\x5f\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8d\x00\x00\x55\x7d\x00\x00\x00\x00\x48\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4e\x53\x4b\x00\x00\x52\xcb\x00\x00\x4e\xe8\x56\x9e\x00\x00\x00\x00\x00\x00\x4d\xc2\x00\x00\x00\x00", /* 5980 */ "\x00\x00\x63\x9a\x54\xe6\x63\x9b\x57\x9e\x00\x00\x5c\x51\x4c\xbd\x51\xe7\x00\x00\x54\xd0\x00\x00\x00\x00\x63\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc9\x4e\xca\x00\x00\x00\x00\x59\x9e\x63\xa0\x00\x00\x52\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x63\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x63\x9f\x63\xa4\x57\x77\x00\x00\x00\x00\x4c\x61\x63\x9d\x63\x9e\x63\xa2\x00\x00\x00\x00\x52\xdc\x63\xa7\x00\x00\x00\x00\x63\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x63\x00\x00\x53\xdd\x00\x00\x00\x00\x63\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb6\x00\x00\x00\x00\x00\x00\x63\xa1\x55\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x84\x4d\x63\x63\xa5\x58\xd4\x57\xae\x00\x00\x00\x00\x63\xa8\x63\xaf\x00\x00\x59\xa5\x00\x00\x4f\x4a\x63\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xae\x00\x00\x50\xd0\x00\x00\x00\x00\x59\xcb\x00\x00\x00\x00\x00\x00\x4e\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb0\x00\x00\x59\xf5\x00\x00\x00\x00\x00\x00\x5c\x6b", /* 5a00 */ "\x00\x00\x57\x9f\x00\x00\x57\x7e\x51\xa5\x63\xaa\x63\xab\x4f\x5f\x63\xad\x63\xb2\x00\x00\x00\x00\x63\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb5\x00\x00\x63\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x52\xee\x00\x00\x00\x00\x00\x00\x52\xc7\x00\x00\x00\x00\x4f\xe9\x55\x90\x00\x00\x00\x00\x63\xb6\x00\x00\x4b\xef\x00\x00\x00\x00\x00\x00\x52\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8a\x63\xb3\x00\x00\x63\xb4\x00\x00\x54\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbc\x00\x00\x00\x00\x00\x00\x63\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc4\x00\x00\x00\x00\x57\x92\x63\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x63\xb9\x00\x00\x00\x00\x50\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x44\x63\xbe\x55\x95\x63\xc2\x00\x00\x00\x00\x63\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf5", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x64\x63\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc6\x58\x51\x00\x00\x66\x95\x00\x00\x00\x00\x63\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc4\x00\x00\x00\x00\x4e\xdd\x55\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb4\x00\x00\x00\x00\x58\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xc7\x00\x00\x63\xc8\x00\x00\x63\xcd\x00\x00\x63\xcf\x00\x00\x00\x00\x00\x00\x63\xd0\x00\x00\x00\x00\x00\x00\x63\xca\x4b\x75\x00\x00\x63\xcb\x00\x00\x00\x00\x63\xce\x00\x00\x00\x00\x52\xda\x00\x00\x63\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd3\x63\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd4\x00\x00\x5d\x99\x00\x00\x00\x00\x63\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x73\x63\xdc\x00\x00\x63\xdd\x50\x77\x5a\xcf\x00\x00\x5c\x76\x4a\xe5\x56\x90\x63\xd9\x5c\xc2\x5c\x6e\x58\xa1\x00\x00\x52\x6f\x00\x00\x00\x00\x63\xde\x4e\xbd\x4d\x62\x63\xda\x59\x47\x00\x00\x00\x00\x4d\xa1\x51\xce\x00\x00\x5c\xaa\x00\x00\x00\x00\x00\x00\x55\xea\x63\x8f\x00\x00\x63\xdb\x00\x00\x4c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe5\x00\x00\x00\x00\x52\xf4\x00\x00\x00\x00", /* 5b80 */ "\x63\x52\x52\xfd\x00\x00\x56\x9d\x63\x53\x5b\x4c\x00\x00\x5a\x8f\x55\xd7\x48\xb1\x00\x00\x56\x6e\x57\x8b\x00\x00\x00\x00\x4d\xe9\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x63\x54\x00\x00\x5c\x7a\x4d\x79\x5b\xe5\x4b\xa7\x57\x91\x59\xca\x49\x46\x55\xb4\x00\x00\x4a\x89\x55\x94\x50\x6d\x58\xfa\x55\xd1\x63\x56\x4e\x62\x00\x00\x00\x00\x00\x00\x58\x7c\x4d\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xd6\x00\x00\x00\x00\x4d\xa5\x59\x88\x58\x9d\x4e\xd1\x00\x00\x63\x57\x54\xdc\x00\x00\x00\x00\x00\x00\x50\x8e\x49\x97\x56\x7e\x00\x00\x00\x00\x4e\xc4\x00\x00\x4e\xc3\x59\xf9\x52\x7c\x50\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xba\x00\x00\x00\x00\x00\x00\x52\x62\x00\x00\x4d\xad\x5a\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x7e\x52\xae\x49\xeb\x00\x00\x4d\x71\x00\x00\x00\x00\x63\x5b\x51\x68\x00\x00\x00\x00\x5b\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5c\x00\x00\x63\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xe6\x4b\xd3\x56\x62\x59\x50\x4b\x5c\x00\x00\x00\x00\x55\xd8", /* 5c00 */ "\x00\x00\x4c\x83\x00\x00\x00\x00\x55\x85\x00\x00\x4f\x4b\x00\x00\x00\x00\x57\xbd\x5c\x91\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa0\x00\x00\x55\x79\x00\x00\x00\x00\x4b\xfa\x63\xd7\x4e\xe1\x00\x00\x4a\x5e\x00\x00\x55\x70\x00\x00\x63\xd8\x4a\x42\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcb\x00\x00\x5a\x68\x5f\xcc\x00\x00\x59\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcc\x00\x00\x00\x00\x5f\xce\x00\x00\x00\x00\x00\x00\x55\xab\x59\xfb\x4a\x7f\x63\x8b\x52\xe0\x4f\xa0\x57\xb1\x52\xf1\x4f\xd5\x53\xa7\x49\xe2\x00\x00\x00\x00\x4f\xd2\x00\x00\x00\x00\x54\x9d\x56\xea\x4f\x8d\x57\xdc\x00\x00\x00\x00\x55\xb9\x53\xc0\x63\x8d\x58\xbb\x00\x00\x00\x00\x00\x00\x5b\x59\x00\x00\x00\x00\x00\x00\x63\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf3\x00\x00\x57\x60\x51\xc4\x00\x00\x63\x90\x00\x00\x51\xc3\x63\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x99\x57\x6d\x00\x00\x55\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd8\x61\x48\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8d", /* 5c80 */ "\x00\x00\x56\x8b\x53\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x4c\x00\x00\x00\x00\x00\x00\x61\x47\x61\x49\x00\x00\x00\x00\x61\x4a\x61\x4f\x00\x00\x00\x00\x49\xec\x00\x00\x61\x4b\x4c\xd9\x61\x4d\x61\x4e\x61\x50\x4b\x5a\x61\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x53\x61\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x72\x00\x00\x61\x56\x61\x55\x51\x8c\x00\x00\x00\x00\x00\x00\x61\x57\x00\x00\x5a\xbf\x00\x00\x61\x52\x00\x00\x61\x5a\x48\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x61\x54\x00\x00\x50\x9a\x00\x00\x61\x59\x00\x00\x00\x00\x61\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5f\x00\x00\x00\x00\x61\x5d\x61\x5f\x51\xcc\x00\x00\x4b\xea\x00\x00\x5a\x99\x00\x00\x00\x00\x54\x6d\x00\x00\x00\x00\x4c\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xfd\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x61\x60\x61\x61\x00\x00\x00\x00\x61\x67\x4a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xdd\x00\x00\x59\x62\x00\x00\x00\x00\x00\x00\x00\x00\x61\x68\x00\x00\x00\x00\x61\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x65\x00\x00\x61\x63\x61\x62\x00\x00\x49\x60\x00\x00\x00\x00\x00\x00\x5b\x58\x61\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x6c\x61\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x9b\x00\x00\x00\x00\x61\x73\x61\x72\x54\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x69\x00\x00\x00\x00\x61\x6e\x00\x00\x61\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x74\x00\x00\x61\x71\x61\x6d\x00\x00\x00\x00\x61\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x61\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5d80 */ "\x00\x00\x00\x00\x61\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x77\x00\x00\x00\x00\x00\x00\x61\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7d\x00\x00\x4a\xa7\x5b\xdc\x00\x00\x00\x00\x59\x52\x4a\x52\x00\x00\x00\x00\x4d\x44\x5c\x94\x54\x69\x4f\xdd\x4d\x4e\x00\x00\x57\xd6\x00\x00\x00\x00\x49\xed\x5e\x6f\x00\x00\x4e\xb9\x59\xd0\x56\x68\x48\xcc\x00\x00\x00\x00\x58\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x84\x4f\x8e\x00\x00", /* 5e00 */ "\x00\x00\x49\x72\x55\xcf\x49\xbb\x00\x00\x56\x47\x4c\x4b\x00\x00\x55\xa5\x00\x00\x00\x00\x00\x00\x58\x43\x00\x00\x00\x00\x60\xf7\x5b\x6a\x60\xfa\x00\x00\x00\x00\x60\xf9\x53\x61\x56\xfa\x00\x00\x51\x51\x60\xf8\x5b\xe2\x49\xae\x5b\xc3\x4b\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf7\x5b\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x4f\x48\xee\x00\x00\x00\x00\x60\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x41\x4a\x43\x00\x00\x00\x00\x60\xfc\x60\xfd\x52\x51\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7d\x00\x00\x61\x42\x4c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x43\x52\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x44\x00\x00\x00\x00\x61\x45\x00\x00\x00\x00\x61\x46\x4a\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc8\x53\xbc\x52\xe9\x00\x00\x49\xa1\x00\x00\x58\xd1\x00\x00\x64\x7b\x4e\x63\x5a\x77\x5a\x64\x00\x00\x4d\x84", /* 5e80 */ "\x61\xce\x00\x00\x00\x00\x00\x00\x5c\x4f\x00\x00\x54\x8d\x49\x73\x00\x00\x00\x00\x4a\xb1\x61\xd0\x00\x00\x00\x00\x00\x00\x58\xf1\x51\xad\x61\xcf\x00\x00\x50\x83\x5a\x46\x4b\x77\x61\xd1\x4b\x8b\x00\x00\x52\x8e\x4c\xfc\x00\x00\x4c\xad\x00\x00\x53\x73\x4c\x6f\x61\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd2\x4b\xc7\x5c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd7\x00\x00\x61\xd5\x55\xfb\x50\x55\x5a\x59\x61\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x61\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x4e\x50\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xda\x61\xd9\x50\xa9\x00\x00\x00\x00\x51\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xdc\x00\x00\x61\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x68\x00\x00\x59\x73\x57\x42\x00\x00\x00\x00\x4f\x48\x00\x00\x00\x00\x00\x00\x5f\xc2\x5c\xa4", /* 5f00 */ "\x50\x4a\x5e\x6d\x59\xeb\x53\xf9\x53\x4a\x00\x00\x00\x00\x00\x00\x5f\xc3\x00\x00\x49\x77\x60\x4e\x00\x00\x00\x00\x00\x00\x55\xbc\x00\x00\x60\x51\x00\x00\x4d\x4d\x00\x00\x59\xfc\x00\x00\x4c\xa4\x4d\xea\x00\x00\x00\x00\x4a\x7a\x00\x00\x00\x00\x00\x00\x4b\x7c\x5b\x65\x00\x00\x00\x00\x00\x00\x00\x00\x52\x76\x58\x72\x4e\x41\x00\x00\x63\x94\x63\x93\x00\x00\x00\x00\x63\x95\x00\x00\x57\x85\x00\x00\x54\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x4f\x54\x5f\x00\x00\x63\x97\x00\x00\x00\x00\x00\x00\x66\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x87\x00\x00\x4d\x8a\x4b\x51\x00\x00\x51\xbb\x63\x89\x63\x88\x63\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x59\xcc\x00\x00\x00\x00\x00\x00\x61\x8b\x58\xcd\x00\x00\x57\x4e\x00\x00\x59\x86\x00\x00\x00\x00\x49\xc9\x49\x8c\x00\x00\x49\x93\x53\x8e\x00\x00\x00\x00\x5b\x63\x5a\x50\x00\x00\x61\x7c\x00\x00\x00\x00\x00\x00\x61\x7d\x00\x00\x59\xda\x00\x00\x4a\x59\x49\x6b\x00\x00\x00\x00\x00\x00", /* 5f80 */ "\x57\x9a\x5b\x98\x61\x7e\x00\x00\x4f\xb5\x4a\xfc\x00\x00\x61\x7f\x4d\xdb\x61\x81\x4e\x52\x51\xc8\x61\x82\x00\x00\x00\x00\x00\x00\x58\xeb\x00\x00\x57\x5d\x00\x00\x00\x00\x61\x83\x00\x00\x4b\x63\x53\x67\x61\x84\x00\x00\x00\x00\x61\x85\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x86\x00\x00\x59\x4d\x00\x00\x00\x00\x61\x87\x57\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x88\x00\x00\x4b\x62\x00\x00\x00\x00\x00\x00\x00\x00\x61\x89\x4e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc3\x61\xdf\x49\x78\x59\xe3\x00\x00\x00\x00\x61\xe0\x00\x00\x00\x00\x4e\xc8\x54\xcb\x00\x00\x61\xe2\x66\xfd\x66\xfc\x60\x4f\x00\x00\x00\x00\x00\x00\x61\xe1\x5b\xbd\x57\x9d\x52\x46\x00\x00\x00\x00\x00\x00\x62\x63\x00\x00\x00\x00\x5b\xd1\x61\xe6\x00\x00\x00\x00\x61\xe7\x00\x00\x00\x00\x5a\x67\x00\x00\x00\x00\x61\xeb\x50\x8d\x00\x00\x61\xec\x61\xe4\x00\x00\x00\x00\x4a\x60\x00\x00\x00\x00\x00\x00\x52\xed\x00\x00\x00\x00\x61\xed\x00\x00\x00\x00\x58\xc2\x00\x00\x4d\xf5\x61\xe8\x4c\x7e", /* 6000 */ "\x4e\x53\x56\xab\x56\x6b\x61\xe3\x61\xe5\x61\xe9\x61\xea\x00\x00\x00\x00\x00\x00\x61\xf6\x00\x00\x00\x00\x61\xf3\x5a\xf4\x61\xf2\x00\x00\x00\x00\x53\x4d\x00\x00\x5b\x9b\x53\x62\x49\xbf\x00\x00\x00\x00\x61\xee\x00\x00\x61\xf1\x51\x4f\x56\x5c\x00\x00\x00\x00\x4b\x41\x61\xf8\x00\x00\x00\x00\x00\x00\x4e\xb0\x61\xf0\x58\xd3\x5a\xb8\x61\xf4\x4d\x76\x61\xf5\x00\x00\x00\x00\x00\x00\x54\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x7c\x67\x41\x00\x00\x00\x00\x61\xf7\x00\x00\x67\x45\x61\xfd\x55\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x55\x00\x00\x4e\x70\x00\x00\x00\x00\x50\x76\x00\x00\x4d\xe2\x00\x00\x00\x00\x56\x41\x00\x00\x00\x00\x00\x00\x67\x46\x67\x43\x00\x00\x00\x00\x67\x42\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x76\x67\x47\x58\xf3\x00\x00\x00\x00\x67\x44\x4d\xdd\x4b\xf6\x62\x41\x4b\xb1\x56\xf0\x4d\x47\x00\x00\x58\x42\x54\x41\x00\x00\x00\x00\x50\x72\x00\x00\x00\x00\x4b\xf0\x00\x00\x61\xf9\x61\xfa\x61\xfc\x61\xfb\x52\xd4\x62\x42\x00\x00\x5a\x61", /* 6080 */ "\x00\x00\x00\x00\x00\x00\x62\x47\x54\x64\x00\x00\x00\x00\x00\x00\x00\x00\x58\x44\x00\x00\x00\x00\x62\x49\x4d\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x62\x48\x00\x00\x4e\x7a\x00\x00\x62\x43\x00\x00\x00\x00\x00\x00\x62\x44\x62\x4a\x00\x00\x62\x46\x00\x00\x57\xf1\x5a\x66\x00\x00\x00\x00\x4e\x5c\x00\x00\x00\x00\x5a\xc2\x00\x00\x52\xf9\x00\x00\x00\x00\x67\x48\x58\xfb\x62\x45\x00\x00\x52\x96\x00\x00\x62\x4d\x49\x4f\x00\x00\x62\x52\x00\x00\x00\x00\x00\x00\x4e\xc1\x00\x00\x00\x00\x62\x4c\x4b\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8a\x62\x50\x00\x00\x00\x00\x00\x00\x4f\xa9\x57\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x94\x00\x00\x00\x00\x00\x00\x56\xe7\x00\x00\x00\x00\x62\x4f\x00\x00\x62\x51\x00\x00\x58\x47\x62\x4e\x00\x00\x57\xa8\x4e\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8c\x4f\xe4\x49\xd1\x4a\x6d\x00\x00\x49\x59\x62\x4b\x49\xd0\x4b\x4c\x4d\x7f\x4b\xe7\x00\x00\x00\x00\x58\x8c\x62\x57\x00\x00\x4e\x6c\x00\x00\x00\x00\x54\xc6\x58\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6100 */ "\x62\x58\x4a\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x67\x49\x00\x00\x5a\x9b\x5a\x85\x00\x00\x00\x00\x00\x00\x67\x4a\x62\x59\x59\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x55\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xcf\x62\x53\x00\x00\x00\x00\x62\x56\x4c\x7f\x00\x00\x62\x54\x50\xa1\x00\x00\x00\x00\x00\x00\x62\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc7\x00\x00\x62\x5b\x00\x00\x4e\x65\x00\x00\x55\x98\x00\x00\x00\x00\x55\x86\x00\x00\x00\x00\x00\x00\x52\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x51\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x7b\x50\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5c\x00\x00\x50\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x90\x00\x00\x00\x00\x5a\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x5f\x4d\xa8\x67\x4c\x00\x00\x00\x00\x62\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb5\x00\x00\x00\x00\x00\x00\x4b\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb7\x00\x00\x48\xc2\x67\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x4f\x50\xc0\x00\x00\x62\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb1", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x50\x00\x00\x4c\xe9\x00\x00\x57\xeb\x65\xa6\x58\xe6\x55\xf8\x54\xd5\x58\x57\x4a\x69\x57\xd1\x4f\x85\x00\x00\x00\x00\x62\x7e\x4e\x93\x65\xa7\x5b\x5d\x00\x00\x53\xdc\x65\xa8\x00\x00\x00\x00\x00\x00\x65\xa9\x00\x00\x65\xab\x65\xaa\x00\x00\x65\xad\x65\xac\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x78\x00\x00\x65\xae\x00\x00\x51\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xc0\x4a\xf6\x00\x00\x00\x00\x4e\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe5\x66\xe4\x4c\x5f\x56\x9a\x49\x83\x00\x00\x66\xe6\x00\x00\x00\x00\x00\x00\x55\x68\x66\xe7\x66\xe8\x00\x00\x55\xd5\x5f\xcf\x49\xc4\x5a\xf9\x00\x00\x00\x00\x53\xca\x48\xc6\x4a\xf1\x54\xd2\x00\x00\x00\x00\x00\x00\x57\x70\x00\x00\x00\x00\x50\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x7b\x00\x00\x00\x00\x54\x44\x5b\xb3\x00\x00\x50\xa8\x5f\xd0\x55\x48\x59\x90\x53\x44\x48\xe6\x4a\x56\x54\xc4\x00\x00\x00\x00\x48\xe1\x00\x00\x00\x00\x4c\x97\x00\x00\x00\x00\x53\x9b\x00\x00\x00\x00\x4b\xf2\x00\x00\x5b\x72\x4a\x70", /* 6280 */ "\x4e\xbb\x00\x00\x00\x00\x00\x00\x4a\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xf0\x48\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd5\x55\xe2\x5c\x45\x00\x00\x57\x56\x4b\xb5\x50\x59\x5b\x7b\x00\x00\x4c\xa6\x53\x77\x00\x00\x00\x00\x00\x00\x5f\xd1\x50\x79\x51\xd4\x54\x60\x00\x00\x4e\x44\x49\x48\x00\x00\x00\x00\x53\x8b\x00\x00\x00\x00\x53\x9c\x56\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x49\x47\x00\x00\x00\x00\x00\x00\x4b\x76\x00\x00\x00\x00\x00\x00\x52\xa7\x00\x00\x5f\xd2\x59\x5a\x4a\x8a\x00\x00\x52\x93\x00\x00\x00\x00\x4c\x98\x00\x00\x5b\xf3\x4b\x43\x49\xef\x52\xb3\x52\xe8\x50\xac\x5f\xd3\x00\x00\x48\xe7\x53\x64\x51\x81\x00\x00\x4d\x75\x00\x00\x4f\xdb\x57\x78\x48\xcd\x00\x00\x57\x6f\x5f\xd5\x4f\xcf\x5c\x5e\x5f\xd4\x5b\x70\x48\xdc\x00\x00\x00\x00\x52\xe1\x00\x00\x00\x00\x51\xa2\x4e\xef\x00\x00\x5a\x55\x50\xb8\x53\x41\x49\xa5\x5a\xf0\x00\x00\x00\x00\x50\xa7\x55\xc2\x5f\xd6\x5b\x9d\x00\x00\x4d\x50\x00\x00\x54\xac\x56\x49\x00\x00\x5f\xd8\x50\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x53\xb3\x5c\x47\x55\xaf\x52\xc2", /* 6300 */ "\x00\x00\x4a\x76\x4d\x72\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb7\x65\xfb\x48\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x50\x87\x00\x00\x00\x00\x56\xf3\x00\x00\x00\x00\x00\x00\x00\x00\x57\x7a\x00\x00\x00\x00\x00\x00\x5b\xbe\x51\xcd\x00\x00\x57\xcd\x56\xa1\x58\xad\x52\xd2\x4b\x52\x5f\xd7\x5b\x96\x4e\xb6\x4e\x73\x00\x00\x00\x00\x48\xa3\x00\x00\x53\x52\x4a\xeb\x00\x00\x00\x00\x00\x00\x5b\x92\x00\x00\x00\x00\x65\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xd9\x57\x46\x00\x00\x00\x00\x57\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe5\x5f\xdb\x00\x00\x57\x51\x50\xa5\x00\x00\x00\x00\x5c\x5d\x00\x00\x5f\xda\x48\xc5\x4d\xb3\x55\x73\x52\xf2\x4f\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x49\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xcb\x56\x91\x00\x00\x4e\xf0\x4e\x5b\x4b\x57\x00\x00\x00\x00\x00\x00\x53\x96\x00\x00\x5f\xe5\x00\x00\x00\x00\x00\x00\x5f\xe2\x4f\xdc\x00\x00\x00\x00\x5f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb6\x4f\x7d\x00\x00\x00\x00\x5f\xdf\x52\xec\x00\x00\x00\x00\x00\x00\x00\x00", /* 6380 */ "\x58\x66\x00\x00\x4b\x81\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xdd\x55\xd9\x4b\x95\x5f\xe4\x00\x00\x5b\x66\x00\x00\x5f\xe0\x56\xcc\x53\xfd\x00\x00\x53\x65\x00\x00\x00\x00\x00\x00\x59\xb3\x00\x00\x4f\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd2\x00\x00\x56\xbc\x4a\x58\x00\x00\x4f\x73\x00\x00\x50\x78\x57\x66\x59\x7a\x4a\xea\x00\x00\x5f\xe3\x5f\xdc\x5f\xe6\x00\x00\x65\xfd\x00\x00\x00\x00\x51\xaf\x5f\xe1\x00\x00\x00\x00\x5b\xbf\x4b\x47\x00\x00\x49\xf3\x00\x00\x5f\xe7\x00\x00\x5f\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xec\x00\x00\x5f\xf0\x00\x00\x00\x00\x54\xdf\x00\x00\x00\x00\x00\x00\x5c\x82\x5f\xee\x52\x89\x56\xe0\x00\x00\x49\xe4\x00\x00\x00\x00\x00\x00\x59\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xed\x00\x00\x5f\xea\x57\xd4\x00\x00\x4a\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4b\x4f\xbd\x00\x00\x00\x00\x4f\x72\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xe8\x00\x00\x5a\xad\x00\x00\x5f\xdd\x00\x00\x5f\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x50\xbe\x00\x00\x5f\xeb", /* 6400 */ "\x49\xf2\x4c\xe8\x51\xa6\x00\x00\x00\x00\x4f\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf4\x5f\xf7\x00\x00\x00\x00\x49\xaa\x4a\xa3\x00\x00\x00\x00\x4a\xe9\x55\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf5\x56\x71\x00\x00\x4c\xe2\x00\x00\x5f\xf6\x5f\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xf8\x00\x00\x00\x00\x00\x00\x56\xc1\x00\x00\x48\xe0\x4a\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xae\x00\x00\x00\x00\x49\xea\x00\x00\x66\x41\x00\x00\x5f\xf3\x00\x00\x00\x00\x55\x84\x5f\xf2\x48\xd9\x59\xa0\x49\x98\x00\x00\x56\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xef\x00\x00\x56\x44\x00\x00\x00\x00\x00\x00\x5b\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xdc\x00\x00\x52\xa5\x00\x00\x00\x00\x00\x00\x5f\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x9f\x52\xa0\x60\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6480 */ "\x00\x00\x00\x00\x51\x6c\x00\x00\x5f\xfb\x4f\xee\x00\x00\x53\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x65\x54\xf5\x00\x00\x00\x00\x56\x5a\x5f\xfd\x00\x00\x00\x00\x60\x44\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x57\x00\x00\x00\x00\x00\x00\x00\x00\x51\x63\x00\x00\x00\x00\x54\x6b\x49\xa4\x4a\xe8\x00\x00\x5c\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xeb\x00\x00\x60\x42\x60\x43\x00\x00\x60\x45\x00\x00\x4d\xb2\x00\x00\x00\x00\x00\x00\x60\x46\x00\x00\x50\xdd\x00\x00\x00\x00\x55\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xd8\x54\x87\x00\x00\x60\x47\x00\x00\x54\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x60\x48\x66\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x73\x00\x00\x00\x00\x00\x00\x60\x4a\x00\x00\x60\x49\x00\x00\x49\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6500 */ "\x53\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xef\x00\x00\x00\x00\x60\x4d\x5b\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb6\x66\x56\x55\xd4\x00\x00\x5c\xfb\x4c\xc3\x00\x00\x4d\x45\x00\x00\x00\x00\x4c\x65\x5b\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6a\x00\x00\x00\x00\x58\xa6\x6a\xcc\x00\x00\x00\x00\x4b\x70\x00\x00\x00\x00\x52\x95\x00\x00\x4f\xc7\x00\x00\x00\x00\x00\x00\x66\x57\x48\xbc\x00\x00\x00\x00\x4f\x6c\x00\x00\x51\x52\x00\x00\x49\x76\x4a\x48\x00\x00\x00\x00\x00\x00\x4c\xd1\x55\x42\x00\x00\x00\x00\x4b\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x66\x58\x4f\xb3\x00\x00\x00\x00\x00\x00\x55\xfc\x00\x00\x54\x63\x00\x00\x5b\x9c\x00\x00\x00\x00\x4c\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc3\x00\x00\x00\x00\x00\x00\x5b\x4b\x49\x94\x00\x00\x00\x00\x00\x00\x66\xb2\x48\xde\x00\x00\x66\xb4\x00\x00\x00\x00\x00\x00\x4b\xb6\x00\x00\x51\x6f\x00\x00\x6b\x9b\x58\xb0\x00\x00\x00\x00\x5b\x86\x00\x00\x57\xd2\x00\x00\x00\x00\x4f\x90\x4a\x83\x00\x00\x4c\xaa\x00\x00\x5b\x56\x00\x00\x67\x5d\x00\x00\x4b\xce\x00\x00\x56\x59\x58\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x5d\x00\x00\x00\x00\x66\xb5\x55\xa8\x00\x00\x00\x00\x00\x00\x53\x74\x00\x00\x66\xb8\x66\xb7\x51\xc2\x66\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfc\x66\xb9\x00\x00\x66\xba\x5c\x86\x00\x00\x00\x00\x66\xbb\x00\x00\x00\x00\x00\x00\x66\xbc\x53\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xdd\x00\x00\x4e\xc7\x00\x00\x00\x00\x54\xd4\x4b\x49\x4f\xc8\x5b\xbb\x5a\xe6\x00\x00\x00\x00\x59\x4e\x58\xf0\x65\xb7\x65\xb8\x65\xb9\x4d\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb0\x50\x96\x00\x00\x00\x00\x57\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6600 */ "\x65\xbf\x00\x00\x48\xb9\x65\xbd\x00\x00\x00\x00\x50\xa4\x00\x00\x00\x00\x00\x00\x65\xba\x00\x00\x49\xfc\x00\x00\x52\x98\x4e\x89\x00\x00\x00\x00\x00\x00\x59\xd6\x57\xf3\x65\xbe\x00\x00\x00\x00\x00\x00\x65\xbb\x00\x00\x00\x00\x00\x00\x65\xc2\x00\x00\x58\xc6\x5a\x53\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xb9\x00\x00\x52\x61\x5c\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x71\x00\x00\x55\xc6\x00\x00\x65\xc4\x00\x00\x00\x00\x65\xc3\x65\xc6\x65\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xe6\x00\x00\x58\x74\x00\x00\x00\x00\x65\xca\x00\x00\x4e\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9b\x55\x6e\x00\x00\x00\x00\x65\xcb\x00\x00\x00\x00\x55\x59\x58\x9f\x65\xc9\x5a\xcd\x65\xcc\x65\xce\x00\x00\x00\x00\x57\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc8\x00\x00\x65\xcd\x00\x00\x00\x00\x57\xed\x00\x00\x4e\x7e\x00\x00\x4a\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd4\x4f\xaf\x57\xf9\x00\x00\x00\x00\x00\x00\x54\x88\x00\x00\x4f\xa6\x65\xcf\x00\x00\x00\x00\x5b\xc6\x00\x00\x00\x00\x00\x00\x51\x60\x00\x00", /* 6680 */ "\x00\x00\x00\x00\x5a\xdc\x00\x00\x65\xd0\x00\x00\x00\x00\x58\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x55\xed\x00\x00\x00\x00\x00\x00\x00\x00\x53\x4f\x48\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd2\x6a\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x49\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xee\x00\x00\x65\xd5\x65\xd6\x53\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xd7\x00\x00\x00\x00\x65\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xba\x00\x00\x54\x9b\x59\xb6\x4c\xfb\x00\x00\x00\x00\x65\xc1\x00\x00\x49\xdb\x00\x00\x00\x00\x51\xfb\x00\x00\x5a\xf7\x56\xe5", /* 6700 */ "\x5c\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xc1\x5a\x70\x66\x63\x53\x94\x00\x00\x4c\x9f\x00\x00\x00\x00\x66\x74\x00\x00\x00\x00\x00\x00\x56\x57\x66\x7e\x00\x00\x50\xc9\x00\x00\x00\x00\x00\x00\x57\x9c\x00\x00\x4a\x4f\x00\x00\x53\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x9d\x00\x00\x52\xbd\x00\x00\x57\xb3\x52\xa8\x49\x5e\x5a\xfc\x00\x00\x55\xf4\x00\x00\x5b\xeb\x00\x00\x00\x00\x53\xd2\x4b\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x9b\x00\x00\x00\x00\x58\xdf\x00\x00\x00\x00\x55\x51\x00\x00\x5a\xd2\x54\xa7\x00\x00\x00\x00\x4c\xca\x00\x00\x64\xbd\x55\x5c\x00\x00\x00\x00\x64\xba\x00\x00\x50\xed\x58\xd2\x49\xc3\x4a\xe4\x00\x00\x64\xbb\x00\x00\x00\x00\x5b\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc4\x00\x00\x64\xbc\x55\xf7\x4c\xdb\x56\xf4\x00\x00\x00\x00\x00\x00\x50\xb3\x00\x00\x00\x00\x59\x8f\x64\xbe\x64\xc1\x00\x00\x00\x00\x4d\xbb\x00\x00\x49\x4d\x4f\x7c\x00\x00\x65\xbc\x64\xc2\x00\x00\x64\xc5\x00\x00\x64\xca\x00\x00\x00\x00\x00\x00\x00\x00\x64\xcb\x00\x00\x56\x69\x48\xe4", /* 6780 */ "\x00\x00\x4e\xaa\x00\x00\x00\x00\x4d\x59\x00\x00\x00\x00\x64\xc0\x00\x00\x57\x98\x00\x00\x64\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8e\x00\x00\x51\x76\x64\xc3\x00\x00\x52\x56\x00\x00\x4d\x9c\x5b\xa5\x64\xc7\x00\x00\x00\x00\x00\x00\x55\xdf\x5a\xe5\x00\x00\x64\xbf\x00\x00\x64\xc4\x64\xc6\x00\x00\x54\x59\x4c\x84\x00\x00\x64\xc8\x00\x00\x50\x7d\x64\xd1\x00\x00\x00\x00\x64\xd6\x00\x00\x64\xd4\x4e\xdb\x4e\xce\x64\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xdd\x00\x00\x64\xd9\x49\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd7\x52\xb2\x4c\xcb\x53\xe1\x54\xbd\x54\xe0\x00\x00\x00\x00\x00\x00\x64\xce\x64\xd3\x64\xd5\x00\x00\x4d\x92\x64\xd7\x5c\x96\x00\x00\x52\xfa\x00\x00\x64\xdb\x00\x00\x00\x00\x49\xe8\x00\x00\x00\x00\x00\x00\x64\xd0\x00\x00\x00\x00\x4e\xec\x00\x00\x00\x00\x50\x62\x64\xcc\x5b\xf8\x00\x00\x51\x99\x49\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xde\x00\x00\x55\xc0", /* 6800 */ "\x64\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x44\x00\x00\x49\x8b\x5b\x5b\x64\xcd\x64\xcf\x4b\xaf\x64\xd2\x00\x00\x64\xdc\x50\xb7\x00\x00\x55\xf6\x00\x00\x56\x48\x00\x00\x00\x00\x53\xdb\x50\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe8\x00\x00\x00\x00\x00\x00\x58\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf1\x5b\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xdf\x64\xe0\x00\x00\x00\x00\x00\x00\x59\x9a\x4d\xca\x4c\xf8\x00\x00\x00\x00\x4c\xf0\x5a\xd3\x64\xee\x00\x00\x64\xed\x64\xeb\x4d\x91\x56\xd1\x64\xe5\x57\xa5\x50\x93\x00\x00\x48\xb7\x64\xf0\x64\xef\x00\x00\x5c\x60\x00\x00\x64\xe3\x00\x00\x57\x49\x55\x43\x00\x00\x4e\x58\x4f\x7b\x64\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xe1\x64\xe2\x64\xe4\x4b\x55\x64\xe6\x54\x65\x64\xea\x64\xec\x4f\x50\x5c\x4e\x00\x00\x64\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf4\x00\x00\x57\x50\x64\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6880 */ "\x00\x00\x51\x5a\x00\x00\x64\xe7\x00\x00\x52\x57\x48\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xf3\x00\x00\x00\x00\x00\x00\x64\xf6\x00\x00\x00\x00\x00\x00\x4d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x52\x6e\x57\xdf\x50\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x56\x94\x00\x00\x56\xdc\x58\xb4\x00\x00\x00\x00\x55\xe0\x00\x00\x64\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xeb\x00\x00\x64\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x7e\x00\x00\x53\xe4\x00\x00\x4d\x98\x00\x00\x00\x00\x00\x00\x00\x00\x48\xf3\x00\x00\x00\x00\x5c\x78\x00\x00\x00\x00\x4e\xab\x00\x00\x53\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc3\x00\x00\x00\x00\x65\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4d\x00\x00\x65\x42\x50\xe1\x00\x00\x00\x00\x00\x00\x50\x63\x00\x00\x00\x00\x00\x00\x64\xfd\x4d\x77\x00\x00\x64\xfa\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x65\x44\x00\x00\x00\x00\x00\x00\x59\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x43\x00\x00\x5b\xb1\x5c\x55\x00\x00\x65\x47\x00\x00\x4f\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xfb\x64\xfc\x00\x00\x00\x00\x00\x00\x65\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x76\x00\x00\x00\x00\x59\xab\x00\x00\x00\x00\x00\x00\x65\x52\x00\x00\x00\x00\x00\x00\x00\x00\x65\x49\x00\x00\x00\x00\x00\x00\x4a\xa9\x00\x00\x4a\xba\x00\x00\x00\x00\x65\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xa7\x00\x00\x00\x00\x65\x45\x00\x00\x00\x00\x4a\x9f\x00\x00\x00\x00\x65\x4c\x50\xe2\x00\x00\x65\x4a\x00\x00\x00\x00\x65\x59\x00\x00\x00\x00\x65\x58\x00\x00\x00\x00\x00\x00\x00\x00\x65\x4e\x00\x00\x00\x00\x64\xf9\x00\x00\x00\x00\x65\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x4c\x65\x51\x65\x5a\x00\x00\x00\x00\x51\xa4\x00\x00\x00\x00\x00\x00", /* 6980 */ "\x65\x4f\x00\x00\x4c\xc4\x00\x00\x65\x4d\x00\x00\x5a\x7c\x65\x54\x65\x55\x65\x57\x00\x00\x00\x00\x00\x00\x65\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xc5\x65\x65\x00\x00\x00\x00\x65\x50\x00\x00\x00\x00\x65\x5b\x48\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x5c\x5b\x45\x00\x00\x00\x00\x65\x5e\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x65\x61\x00\x00\x00\x00\x51\x92\x00\x00\x00\x00\x54\xb5\x00\x00\x00\x00\x00\x00\x65\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x63\x00\x00\x65\x53\x00\x00\x65\x56\x00\x00\x4e\x51\x00\x00\x00\x00\x00\x00\x65\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf6\x00\x00\x00\x00\x00\x00\x65\x64\x65\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xda\x00\x00\x65\x68", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6b\x65\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x61\x00\x00\x52\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x78\x00\x00\x4d\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x65\x69\x00\x00\x5a\x43\x00\x00\x00\x00\x00\x00\x65\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x77\x65\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x6f\x00\x00\x00\x00\x54\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x79\x4a\x68\x00\x00\x65\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x91\x00\x00\x00\x00\x00\x00\x65\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x76\x00\x00\x00\x00\x65\x7a\x00\x00\x00\x00\x00\x00", /* 6a80 */ "\x56\xb3\x00\x00\x00\x00\x00\x00\x58\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x75\x00\x00\x65\x7c\x65\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x7d\x00\x00\x65\x7f\x52\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x57\x4a\xcd\x4e\x56\x58\xbf\x66\xa2\x00\x00\x00\x00\x53\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa3\x00\x00\x66\xa4\x53\xda\x00\x00\x00\x00\x00\x00\x50\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa5\x00\x00\x00\x00\x66\xa6\x58\xa9\x00\x00\x54\x58\x00\x00\x00\x00\x4c\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb8\x5b\x9e\x4a\xca\x49\xbc\x57\xe3\x53\xe6\x00\x00\x00\x00\x57\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xf4\x00\x00\x56\x60\x4e\xde\x00\x00\x00\x00\x00\x00", /* 6b80 */ "\x00\x00\x65\x83\x65\x84\x59\x8b\x65\x86\x00\x00\x4a\xf8\x65\x85\x00\x00\x59\x53\x55\xe1\x49\xcf\x00\x00\x65\x89\x00\x00\x00\x00\x00\x00\x00\x00\x65\x87\x65\x88\x00\x00\x00\x00\x5b\xb2\x00\x00\x00\x00\x00\x00\x65\x8a\x65\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xae\x53\x59\x4b\xcd\x00\x00\x59\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x8f\x00\x00\x4e\x79\x66\xb0\x00\x00\x00\x00\x59\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe2\x00\x00\x52\xb7\x00\x00\x52\x5f\x00\x00\x00\x00\x4b\xbd\x5c\xb8\x49\x68\x49\x6f\x49\x71\x53\x9f\x00\x00\x49\x70\x00\x00\x52\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x44\x4d\xc0\x00\x00\x00\x00\x00\x00\x56\xb9\x00\x00\x00\x00\x00\x00\x66\x45\x00\x00\x66\x47\x00\x00\x00\x00\x00\x00\x66\x48\x00\x00\x00\x00\x00\x00\x66\x46\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x49\x66\x4b\x66\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4c\x00\x00\x55\xce\x5c\xb4\x52\x92\x00\x00\x52\x45\x53\xf7\x66\x4d\x52\xc9\x00\x00\x66\x4e\x66\x4f\x66\x50\x4c\x75\x00\x00\x00\x00\x00\x00\x4c\x9b\x00\x00\x66\x51\x54\x83\x00\x00\x66\x53\x00\x00\x4d\xa3\x59\x96\x48\xb0\x66\x52\x66\x54\x00\x00\x00\x00\x00\x00\x4b\x4a\x51\xc7\x54\x89\x00\x00\x66\x55\x00\x00\x56\x4e\x62\x7f\x00\x00\x00\x00\x5a\x60\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x7b\x00\x00\x00\x00\x57\x41\x5b\xac\x54\x94\x00\x00\x00\x00\x00\x00\x5d\x81\x4e\x84\x00\x00\x4d\xb9\x62\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x4b\x00\x00\x00\x00\x00\x00\x62\x81\x55\x67\x00\x00\x4d\xb8\x00\x00\x00\x00\x00\x00\x59\x54\x62\x82\x54\xe9\x4d\x4f\x4f\x4d\x4a\x78\x57\xda\x00\x00\x00\x00\x56\xbf\x00\x00\x00\x00\x00\x00\x62\x89\x62\x8a\x57\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xac\x00\x00\x4e\xb2\x00\x00\x62\x8b\x00\x00\x62\x8c\x00\x00\x00\x00\x58\xd9\x00\x00\x00\x00\x00\x00\x53\xfa\x4c\x7a\x00\x00", /* 6c80 */ "\x00\x00\x54\x7f\x59\xc9\x57\xd5\x00\x00\x62\x85\x62\x8d\x00\x00\x55\x93\x4a\x61\x00\x00\x00\x00\x62\x88\x00\x00\x00\x00\x53\xe2\x62\x86\x00\x00\x00\x00\x67\x53\x62\x87\x00\x00\x00\x00\x00\x00\x00\x00\x55\x53\x00\x00\x53\x87\x00\x00\x00\x00\x00\x00\x4d\x55\x00\x00\x52\x5b\x00\x00\x62\x84\x53\x5d\x51\x44\x51\xd8\x49\xd6\x00\x00\x62\x8e\x4e\x46\x52\xac\x00\x00\x62\x91\x4f\xd9\x00\x00\x00\x00\x62\x9c\x62\x96\x4d\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x70\x5a\x6d\x00\x00\x5b\xcd\x5b\x73\x4d\x61\x5b\x54\x59\x78\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb8\x54\x97\x00\x00\x00\x00\x00\x00\x54\xa9\x49\xb3\x00\x00\x52\x7a\x00\x00\x00\x00\x00\x00\x62\x8f\x00\x00\x00\x00\x62\x9d\x62\x90\x4c\x48\x62\x98\x62\x95\x00\x00\x00\x00\x00\x00\x4c\x5a\x00\x00\x00\x00\x53\x42\x00\x00\x62\x97\x53\x7d\x49\xa7\x53\xfb\x00\x00\x52\xdf\x00\x00\x00\x00\x5c\x42\x00\x00\x50\xe0\x62\x9a\x00\x00\x00\x00\x62\x9b\x62\x9e\x56\xa8\x62\x94\x00\x00\x5a\x5e\x00\x00\x49\x63\x67\x54\x62\x92\x62\x93\x00\x00\x62\x99\x58\xb9\x53\xc2\x5a\xf2\x62\x9f\x00\x00", /* 6d00 */ "\x00\x00\x4f\x81\x00\x00\x00\x00\x62\xa6\x00\x00\x00\x00\x62\xa5\x00\x00\x00\x00\x00\x00\x59\x94\x62\xa2\x00\x00\x62\xa8\x00\x00\x00\x00\x00\x00\x54\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x58\x54\x00\x00\x62\xa7\x62\xad\x51\xe4\x00\x00\x00\x00\x4b\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x93\x00\x00\x62\xa1\x00\x00\x00\x00\x4d\xe8\x62\xa9\x00\x00\x00\x00\x62\xab\x00\x00\x00\x00\x4b\xfc\x5b\xdd\x62\xb1\x00\x00\x62\xac\x00\x00\x00\x00\x00\x00\x62\xa0\x00\x00\x4e\x8f\x57\x7d\x54\x42\x53\x69\x00\x00\x00\x00\x51\x98\x00\x00\x62\xa3\x00\x00\x54\x53\x4f\x4c\x4f\x5d\x62\xa4\x00\x00\x5c\x67\x49\xe1\x00\x00\x62\xaa\x4e\xc2\x62\xae\x00\x00\x4e\x8c\x62\xaf\x53\x48\x62\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x84\x50\x43\x00\x00\x62\xb9\x00\x00\x62\xb6\x00\x00\x62\xba\x00\x00\x00\x00\x62\xbc\x00\x00\x00\x00\x53\xd5\x00\x00\x00\x00\x4d\xc5\x50\xca\x00\x00\x00\x00\x00\x00\x4c\xa0\x62\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa0\x00\x00\x00\x00\x4d\xa2\x4f\x9f\x00\x00\x00\x00\x00\x00\x62\xbb\x00\x00\x00\x00\x00\x00", /* 6d80 */ "\x00\x00\x00\x00\x57\x5f\x00\x00\x00\x00\x52\xf8\x00\x00\x00\x00\x58\x9c\x55\x87\x00\x00\x00\x00\x5a\x5f\x00\x00\x58\x71\x00\x00\x00\x00\x62\xb2\x00\x00\x62\xb7\x62\xb8\x56\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xcd\x00\x00\x50\xd3\x62\xb4\x51\x50\x62\xb5\x57\xcf\x00\x00\x4e\x61\x4b\x73\x00\x00\x54\xf2\x4f\x47\x5b\x67\x55\x4c\x4c\xa1\x62\xc9\x00\x00\x00\x00\x62\xcb\x59\x64\x00\x00\x00\x00\x59\xb9\x00\x00\x00\x00\x4d\xac\x00\x00\x00\x00\x4d\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xc2\x4b\x8e\x00\x00\x00\x00\x00\x00\x5c\x6d\x62\xbf\x58\x9e\x62\xbe\x00\x00\x00\x00\x00\x00\x51\x7c\x56\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x55\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x52\xd6\x00\x00\x56\xd3\x62\xc7\x00\x00\x00\x00\x00\x00\x62\xc6\x62\xc0\x00\x00\x62\xc3\x4b\x4d\x00\x00\x00\x00\x5a\x79\x00\x00\x62\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf8\x4a\xe2\x00\x00\x4e\x54\x00\x00\x00\x00\x55\x8f\x00\x00\x4a\xbd\x00\x00\x00\x00\x00\x00\x4e\x8d\x00\x00\x59\x6d\x00\x00\x56\xec\x67\x55\x00\x00\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x86\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xa7\x00\x00\x62\xca\x5c\x75\x62\xc1\x00\x00\x4f\x45\x62\xc4\x00\x00\x00\x00\x5a\x87\x00\x00\x62\xc8\x55\x99\x00\x00\x00\x00\x62\xbd\x00\x00\x00\x00\x5a\x86\x00\x00\x00\x00\x54\x9f\x4b\xc8\x00\x00\x5a\xfb\x49\xb2\x62\xd6\x00\x00\x00\x00\x00\x00\x57\xc1\x00\x00\x62\xcc\x00\x00\x57\xbb\x00\x00\x4c\xda\x00\x00\x00\x00\x62\xd5\x00\x00\x50\x6a\x00\x00\x00\x00\x00\x00\x5a\x6e\x00\x00\x52\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x68\x62\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x64\x62\xce\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x62\xd4\x00\x00\x4d\xfd\x00\x00\x58\x87\x00\x00\x00\x00\x5b\x5f\x00\x00\x00\x00\x00\x00\x62\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xcf\x00\x00\x00\x00\x62\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x86\x55\xa9", /* 6e80 */ "\x00\x00\x00\x00\x00\x00\x50\xa2\x00\x00\x4f\x46\x62\xd2\x00\x00\x00\x00\x4c\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe6\x5a\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xda\x00\x00\x00\x00\x00\x00\x51\x90\x00\x00\x00\x00\x62\xe8\x00\x00\x00\x00\x59\xe6\x00\x00\x00\x00\x62\xde\x00\x00\x62\xdf\x00\x00\x00\x00\x58\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x56\x7d\x00\x00\x62\xd9\x62\xd0\x00\x00\x62\xe4\x00\x00\x54\xdb\x62\xe2\x00\x00\x00\x00\x52\xe6\x62\xe1\x00\x00\x62\xe0\x00\x00\x00\x00\x00\x00\x4a\x9d\x62\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x82\x00\x00\x00\x00\x00\x00\x5c\x6c\x00\x00\x00\x00\x00\x00\x62\xe5\x00\x00\x4e\x4c\x00\x00\x5c\x72\x56\xce\x66\x99\x00\x00\x62\xe3\x00\x00\x00\x00\x4d\x97\x00\x00\x00\x00\x00\x00\x5b\xcc\x62\xd8\x62\xdb\x51\xf9\x62\xdd\x00\x00\x51\xca\x50\xc3\x51\xcf\x00\x00\x49\x96\x56\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x62\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x53\xae\x00\x00\x00\x00\x00\x00\x53\xe0\x00\x00\x00\x00\x62\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xa8\x00\x00\x00\x00\x00\x00\x50\xeb\x59\x7d\x62\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xad\x00\x00\x00\x00\x00\x00\x62\xec\x00\x00\x00\x00\x00\x00\x00\x00\x62\xf5\x62\xf3\x51\xfd\x00\x00\x62\xdc\x00\x00\x62\xef\x00\x00\x55\xfd\x00\x00\x5b\x64\x00\x00\x00\x00\x62\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xea\x62\xeb\x00\x00\x00\x00\x00\x00\x62\xf1\x00\x00\x57\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6b\x00\x00\x00\x00\x00\x00\x54\x51\x00\x00\x51\xb9\x00\x00\x00\x00\x00\x00\x62\xe9\x00\x00\x00\x00\x00\x00\x51\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb5\x4a\x51\x00\x00\x00\x00\x00\x00\x62\xfa\x00\x00\x62\xf2\x00\x00\x00\x00\x00\x00\x62\xf9\x00\x00\x62\xfc\x00\x00\x62\xfb\x00\x00\x00\x00\x00\x00", /* 6f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6e\x00\x00\x00\x00\x00\x00\x4a\x5a\x62\xf6\x00\x00\x00\x00\x62\xf8\x62\xf7\x53\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xc3\x00\x00\x00\x00\x63\x44\x00\x00\x00\x00\x63\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xa3\x00\x00\x63\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xfd\x49\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x48\x00\x00\x63\x49\x63\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x47\x63\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4b\x63\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x4f\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x81\x00\x00\x00\x00\x63\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x91\x66\xe0\x52\x91\x00\x00\x4b\x66\x4e\x72\x00\x00\x00\x00\x00\x00\x00\x00\x51\x8a\x5a\xed\x00\x00\x4f\xc3\x00\x00\x00\x00\x00\x00\x5c\x66\x00\x00\x5a\xd5\x49\xd2", /* 7080 */ "\x66\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x65\xc0\x00\x00\x00\x00\x00\x00\x51\xae\x4a\xb5\x00\x00\x00\x00\x00\x00\x59\x77\x00\x00\x00\x00\x00\x00\x4a\x54\x00\x00\x54\xb1\x50\x5b\x66\xbf\x00\x00\x00\x00\x5b\xca\x00\x00\x00\x00\x66\xbe\x66\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc4\x4f\xe5\x56\xbe\x53\x7a\x4f\xbb\x00\x00\x66\xc5\x00\x00\x49\x9f\x00\x00\x00\x00\x00\x00\x66\xc3\x5b\x48\x4b\x84\x00\x00\x66\xc1\x51\x56\x4a\x84\x00\x00\x00\x00\x66\xc2\x56\x58\x50\xc2\x56\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x51\x72\x00\x00\x66\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe5\x50\xd2\x00\x00\x5b\xf1\x00\x00\x00\x00\x00\x00\x59\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x4c\x53\x55\x75\x66\xc6\x4e\x83\x00\x00\x56\xcb\x4f\x9e\x54\xc7\x00\x00\x58\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x8a\x00\x00\x53\x8c\x00\x00\x00\x00\x00\x00\x4c\x8a\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x69\x4d\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xc8\x00\x00\x00\x00\x66\xc9\x00\x00\x4e\x60\x66\xca\x00\x00\x66\xe1\x49\x5a\x4c\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xcb\x59\x87\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x54\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd2\x00\x00\x4e\x6d\x00\x00\x4e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xce\x00\x00\x55\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x5a\x00\x00\x66\xe2\x5b\x75\x66\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf2\x00\x00\x00\x00\x00\x00\x66\xd1\x66\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd3\x00\x00\x66\xd4\x00\x00\x00\x00\x55\x5f\x00\x00\x00\x00", /* 7180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x58\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x59\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x54\xda\x00\x00\x00\x00\x00\x00\x66\xd5\x57\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xeb\x66\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd8\x00\x00\x00\x00\x00\x00\x48\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xd6\x00\x00\x66\xd7\x00\x00\x00\x00\x00\x00\x66\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdb\x59\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xda\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xee\x00\x00\x66\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xdf\x00\x00\x5c\x46\x00\x00\x53\x60\x00\x00\x00\x00\x00\x00\x66\x5c\x48\xad\x00\x00\x00\x00\x00\x00\x4f\xf3\x4c\xb7\x59\xae\x48\xd5\x4b\x9a\x00\x00\x5c\xb2\x00\x00\x56\x4c\x00\x00\x62\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xab\x48\xe5\x00\x00\x00\x00\x00\x00\x53\x66\x66\x59\x00\x00\x00\x00\x00\x00\x00\x00\x66\x5a\x00\x00\x00\x00\x00\x00\x66\x5b\x00\x00\x00\x00\x59\x60\x00\x00\x53\x43\x00\x00\x65\xf1\x00\x00\x52\xb1\x00\x00\x52\xb4\x50\xcd\x00\x00\x00\x00\x00\x00\x65\xf2\x52\xc0\x00\x00\x57\xee\x00\x00\x00\x00\x00\x00\x00\x00\x65\xef\x65\xf3\x00\x00\x00\x00\x55\x9d\x00\x00\x00\x00\x54\x43\x00\x00\x00\x00\x00\x00\x56\xd7\x57\xfd\x00\x00\x00\x00\x00\x00\x65\xf4\x65\xf5", /* 7280 */ "\x58\x4c\x50\xe6\x00\x00\x00\x00\x65\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbe\x65\xf7\x00\x00\x65\xf8\x00\x00\x65\xf9\x00\x00\x00\x00\x65\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xad\x61\x8c\x00\x00\x4c\x58\x61\x8d\x00\x00\x00\x00\x00\x00\x61\x8e\x00\x00\x5c\x54\x61\x8f\x61\x90\x5a\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x92\x50\x92\x61\x91\x4b\x72\x00\x00\x00\x00\x00\x00\x49\x57\x00\x00\x00\x00\x00\x00\x00\x00\x61\x94\x61\x93\x00\x00\x4d\xfb\x00\x00\x61\x95\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x57\x00\x00\x4f\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x52\xfb\x00\x00\x4d\xdc\x4f\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x96\x61\x98\x00\x00\x00\x00\x4b\xbf\x58\x61\x55\xa7\x61\x97\x5b\x99\x5a\x9d\x61\x99\x61\x9d\x61\x9a\x00\x00\x00\x00\x61\x9b\x50\xe9\x00\x00\x61\x9f\x61\xa0\x50\xc6\x00\x00\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x61\x9c\x00\x00\x61\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa4\x00\x00\x00\x00\x00\x00\x51\x74\x00\x00\x00\x00\x00\x00\x00\x00\x61\xa2\x00\x00\x61\xa7\x49\xfd\x61\xa1\x00\x00\x00\x00\x00\x00\x52\x6d\x49\xc1\x61\xa6\x61\xa5\x00\x00\x00\x00\x61\xa3\x61\xa8\x00\x00\x00\x00\x61\xaa\x00\x00\x00\x00\x00\x00\x58\xc8\x5b\xec\x52\x48\x61\xab\x00\x00\x58\x77\x00\x00\x00\x00\x61\xad\x00\x00\x00\x00\x4d\xee\x00\x00\x00\x00\x65\x81\x61\xac\x61\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x4b\x5a\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xaf\x00\x00\x00\x00\x61\xae\x00\x00\x65\x82\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb2\x56\xa0\x00\x00\x61\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb4\x00\x00", /* 7380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x00\x00\x00\x00\x51\xc9\x00\x00\x5a\x92\x00\x00\x57\x96\x00\x00\x00\x00\x64\x81\x00\x00\x00\x00\x64\x82\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe9\x00\x00\x00\x00\x00\x00\x64\x85\x00\x00\x00\x00\x64\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x87\x00\x00\x52\x55\x00\x00\x00\x00\x64\x83\x4e\x57\x58\x76\x00\x00\x51\x82\x64\x8a\x00\x00\x00\x00\x00\x00\x64\x89\x00\x00\x00\x00\x64\x95\x49\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8b\x00\x00\x64\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8d\x64\x8c\x55\x5a\x00\x00\x00\x00\x5b\x85\x00\x00\x64\x86\x4c\x49\x64\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x64\x94\x00\x00\x5b\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x64\x8e\x00\x00\x64\x93\x00\x00\x64\x92\x00\x00\x00\x00\x00\x00\x48\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x64\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x54\x93\x00\x00\x50\xc4\x50\xec\x00\x00\x00\x00\x51\x91\x64\x91\x00\x00\x00\x00\x00\x00\x00\x00\x64\x97\x56\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x61\x00\x00\x00\x00\x64\x9b\x64\x9a\x00\x00\x64\x9c\x00\x00\x64\x98\x00\x00\x64\x9f\x00\x00\x64\x9e\x00\x00\x64\x9d\x00\x00\x00\x00\x51\x75\x54\x79\x53\x9e\x53\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa5\x00\x00\x64\xa4\x00\x00\x64\xa6\x4d\xf6\x64\x99\x64\xa3\x00\x00\x54\xef\x55\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa8\x00\x00\x00\x00\x4d\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9f\x64\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa9\x00\x00", /* 7480 */ "\x64\xac\x64\xad\x00\x00\x51\x47\x00\x00\x00\x00\x00\x00\x64\xae\x00\x00\x00\x00\x00\x00\x64\xaf\x00\x00\x00\x00\x64\xab\x00\x00\x64\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xaa\x00\x00\x64\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb4\x64\xb1\x64\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6f\x00\x00\x68\xab\x00\x00\x68\xac\x00\x00\x53\xaf\x48\xe9\x54\xbe\x00\x00\x57\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xcc\x65\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb1\x00\x00\x53\xbe\x4a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xb2", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9a\x00\x00\x65\xb3\x00\x00\x65\xb4\x00\x00\x65\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xc9\x60\x50\x55\x96\x00\x00\x56\xef\x00\x00\x00\x00\x55\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x9c\x00\x00\x00\x00\x5a\x63\x56\x46\x00\x00\x4c\xa5\x68\xad\x49\x62\x00\x00\x63\x58\x56\xee\x5a\x69\x4e\xd6\x55\x8b\x00\x00\x4b\x88\x00\x00\x52\xcf\x4b\x8a\x00\x00\x67\xad\x4e\x4d\x00\x00\x00\x00\x64\x7e\x00\x00\x67\xae\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x49\x00\x00\x00\x00\x67\xb1\x00\x00\x00\x00\x67\xb0\x4f\x88\x00\x00\x67\xaf\x57\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x51\x95\x5e\x6e\x67\xb2\x58\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd3\x53\xe7\x00\x00\x00\x00\x00\x00\x4c\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb3\x00\x00\x4a\x8c\x00\x00\x00\x00\x00\x00\x4e\x9c\x67\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7c", /* 7580 */ "\x00\x00\x00\x00\x00\x00\x67\xb5\x00\x00\x00\x00\x4f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x69\x83\x00\x00\x00\x00\x00\x00\x55\xe7\x00\x00\x59\xc8\x68\xd9\x00\x00\x68\xda\x00\x00\x68\xdb\x51\x66\x00\x00\x4c\xec\x4f\xcd\x00\x00\x00\x00\x68\xdd\x00\x00\x53\x51\x68\xdc\x59\x92\x00\x00\x68\xdf\x48\xcb\x4f\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xde\x68\xde\x00\x00\x4a\xae\x4c\x89\x68\xe5\x68\xe4\x53\xa2\x68\xe0\x68\xe1\x4a\xc2\x00\x00\x00\x00\x68\xe2\x5b\x8f\x00\x00\x00\x00\x56\xda\x4f\xd1\x4e\xb1\x00\x00\x00\x00\x00\x00\x68\xe7\x68\xe6\x68\xe3\x49\xa0\x00\x00\x5b\xa1\x5a\x58\x4f\xb6\x54\xab\x00\x00\x00\x00\x68\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x59\x98\x00\x00\x5b\xcb\x4d\xda\x68\xe8\x00\x00\x4b\xba\x00\x00\x00\x00\x57\x54\x00\x00\x00\x00\x53\xa5\x00\x00\x00\x00\x00\x00\x51\x41\x68\xea\x68\xed\x00\x00\x68\xec\x68\xef\x68\xeb\x00\x00\x4e\x5e\x68\xee\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb4\x68\xf1\x00\x00\x00\x00\x4a\x75\x00\x00\x00\x00\x00\x00\x00\x00\x49\x74\x00\x00\x00\x00\x68\xf2\x00\x00\x00\x00\x68\xf3", /* 7600 */ "\x68\xf5\x4a\xe0\x00\x00\x68\xf0\x00\x00\x68\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x68\xf9\x00\x00\x68\xf7\x00\x00\x00\x00\x00\x00\x68\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x68\xfc\x00\x00\x68\xf8\x68\xfb\x68\xfd\x00\x00\x69\x41\x00\x00\x00\x00\x00\x00\x57\xc0\x69\x44\x00\x00\x69\x43\x00\x00\x51\x97\x68\xfa\x55\xdc\x00\x00\x00\x00\x4a\xf0\x49\x92\x56\xb0\x00\x00\x69\x46\x00\x00\x00\x00\x69\x47\x00\x00\x00\x00\x69\x4c\x5b\x6e\x69\x49\x00\x00\x00\x00\x54\xb2\x00\x00\x00\x00\x00\x00\x69\x42\x00\x00\x69\x4b\x69\x48\x69\x45\x00\x00\x00\x00\x69\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xa8\x69\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4f\x00\x00\x69\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x50\x00\x00\x69\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x59\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x52\x00\x00\x00\x00\x00\x00\x69\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x90\x00\x00\x00\x00\x4b\x67\x00\x00\x48\xd6\x48\xd8\x00\x00", /* 7680 */ "\x00\x00\x00\x00\x5a\xec\x00\x00\x4b\x64\x00\x00\x4f\x74\x4e\x6a\x68\xa6\x00\x00\x00\x00\x4c\xdd\x00\x00\x00\x00\x68\xa7\x00\x00\x00\x00\x48\xa7\x00\x00\x68\xa8\x00\x00\x00\x00\x57\x8f\x00\x00\x00\x00\x68\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa3\x00\x00\x00\x00\x5b\xe4\x69\x85\x00\x00\x69\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x94\x00\x00\x00\x00\x5a\x7b\x00\x00\x00\x00\x5b\xd0\x53\x89\x00\x00\x5a\x4f\x00\x00\x59\xe5\x00\x00\x00\x00\x67\xc0\x48\xba\x5b\x55\x59\x6e\x4e\xdf\x4d\xcf\x00\x00\x50\x99\x00\x00\x4c\xc6\x4b\x61\x53\x6c\x00\x00\x00\x00\x55\xa1\x00\x00\x00\x00\x00\x00\x52\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xbe\x4b\xa1\x00\x00\x67\x8d\x52\x44\x00\x00\x5b\xb0\x00\x00\x00\x00\x00\x00\x58\x81\x67\x90\x00\x00\x00\x00\x53\x6e\x00\x00\x4b\xdb\x00\x00", /* 7700 */ "\x00\x00\x55\xa0\x00\x00\x00\x00\x67\x8e\x00\x00\x00\x00\x67\x91\x67\x92\x52\x5c\x00\x00\x50\x54\x00\x00\x67\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x95\x67\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x87\x52\x7f\x00\x00\x67\x94\x00\x00\x00\x00\x00\x00\x67\x97\x00\x00\x5b\x43\x59\x43\x00\x00\x00\x00\x00\x00\x67\x96\x00\x00\x52\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x98\x50\x95\x4f\xeb\x67\x99\x00\x00\x56\xf6\x00\x00\x59\x7b\x00\x00\x00\x00\x00\x00\x5c\x65\x5b\x97\x00\x00\x67\x9d\x00\x00\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9a\x67\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x9e\x4f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x4f\x67\xa0\x4b\xbc\x00\x00\x67\xa1\x52\xbf\x00\x00\x67\x9f\x00\x00\x00\x00\x4f\x7e\x49\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xc2\x00\x00\x00\x00\x00\x00\x67\xa4\x5c\xb9\x67\xa2", /* 7780 */ "\x67\xa5\x00\x00\x00\x00\x00\x00\x52\x8a\x4a\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa6\x67\xa3\x58\x59\x00\x00\x00\x00\x67\xa7\x51\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa8\x67\xa9\x00\x00\x5f\xaa\x00\x00\x00\x00\x53\xb2\x00\x00\x54\x66\x00\x00\x5b\xf4\x4b\x69\x00\x00\x56\x52\x00\x00\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x57\x4b\x00\x00\x67\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x50\x00\x00\x67\xac\x00\x00\x6b\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa2\x00\x00\x00\x00\x00\x00\x52\x4c\x69\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xb7\x59\xd2\x00\x00\x5b\xa9\x00\x00\x68\x93\x00\x00\x4f\xd7\x00\x00\x4f\x63\x68\x94\x4b\xcb\x48\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x55\xae\x00\x00\x00\x00\x67\x56\x00\x00\x67\x57\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf8\x4c\x4f\x50\x94", /* 7800 */ "\x67\x58\x51\xea\x55\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x59\x00\x00\x00\x00\x53\xf5\x50\x53\x00\x00\x00\x00\x00\x00\x67\x5c\x53\x99\x00\x00\x59\x70\x00\x00\x5c\x49\x67\x5a\x67\x5b\x00\x00\x59\x83\x00\x00\x67\x5f\x67\x60\x00\x00\x67\x64\x00\x00\x00\x00\x00\x00\x67\x68\x00\x00\x67\x66\x67\x6e\x5b\x89\x00\x00\x67\x69\x00\x00\x00\x00\x67\x67\x67\x5e\x00\x00\x00\x00\x53\x8a\x00\x00\x00\x00\x00\x00\x53\xc5\x00\x00\x00\x00\x55\x8a\x5a\xd1\x67\x61\x67\x62\x67\x63\x67\x65\x00\x00\x50\xf8\x00\x00\x4a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x89\x00\x00\x67\x70\x00\x00\x00\x00\x00\x00\x00\x00\x67\x71\x00\x00\x67\x6a\x00\x00\x67\x6f\x00\x00\x57\xf7\x00\x00\x00\x00\x56\x56\x67\x6c\x67\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x72\x51\x93\x5a\x52\x67\x6b\x54\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xee\x00\x00\x00\x00\x00\x00\x00\x00\x53\x91\x00\x00\x00\x00\x00\x00", /* 7880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x76\x00\x00\x4b\x90\x00\x00\x00\x00\x51\xb4\x48\xac\x56\x8a\x00\x00\x00\x00\x49\x4e\x00\x00\x67\x74\x00\x00\x00\x00\x00\x00\x57\x8c\x4b\x83\x00\x00\x67\x75\x67\x73\x67\x77\x00\x00\x00\x00\x4b\x9b\x00\x00\x67\x78\x00\x00\x67\x79\x00\x00\x67\x7c\x00\x00\x49\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x97\x4e\xed\x67\x7a\x56\xbb\x49\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x67\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x52\xea\x00\x00\x00\x00\x4a\xc4\x00\x00\x00\x00\x00\x00\x48\xf4\x00\x00\x00\x00\x00\x00\x67\x7f\x50\xd9\x4a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x53\x6d\x00\x00\x00\x00\x00\x00\x67\x7d\x50\x64\x00\x00\x00\x00\x00\x00\x67\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa4\x00\x00\x00\x00\x00\x00\x67\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x82\x00\x00\x67\x84\x00\x00\x00\x00\x51\x77\x00\x00\x00\x00\x4e\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x4f\x58\x00\x00\x00\x00\x00\x00\x67\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xbd\x66\xe9\x50\xf0\x00\x00\x55\x88\x00\x00\x66\xea\x53\xed\x00\x00\x00\x00\x00\x00\x00\x00\x66\xeb\x00\x00\x53\xec\x66\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xef\x00\x00\x00\x00\x5c\x87\x66\xf2\x00\x00\x00\x00\x66\xf0\x66\xed\x66\xee\x5c\x43\x55\x92\x56\x8f\x66\xf3\x00\x00\x66\xf1\x00\x00\x00\x00\x58\x8a\x00\x00\x66\xf5\x53\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xbf\x00\x00\x66\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x5b\x4e\x97\x00\x00\x66\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7980 */ "\x5d\x98\x4f\x9c\x00\x00\x00\x00\x51\xba\x66\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8e\x5c\xad\x50\xea\x00\x00\x54\x7d\x4d\xcb\x00\x00\x58\xe2\x56\x5d\x00\x00\x57\x5a\x00\x00\x00\x00\x4c\xd0\x00\x00\x00\x00\x49\x9d\x00\x00\x54\x90\x00\x00\x5b\xd5\x00\x00\x00\x00\x00\x00\x50\x66\x52\x8c\x00\x00\x00\x00\x68\x96\x00\x00\x00\x00\x52\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x83\x00\x00\x00\x00\x00\x00\x68\x98\x4a\x73\x00\x00\x54\x78\x59\x8e\x00\x00\x5b\xc7\x00\x00\x68\x99\x00\x00\x68\x97\x00\x00\x4e\x9e\x4a\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x75\x00\x00\x00\x00\x59\xc5\x00\x00\x4e\x81\x00\x00\x00\x00", /* 7a00 */ "\x58\x41\x00\x00\x68\x9d\x68\x9c\x00\x00\x00\x00\x68\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6c\x00\x00\x55\x74\x56\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x9f\x00\x00\x00\x00\x48\xdd\x00\x00\x00\x00\x5b\xc8\x00\x00\x00\x00\x00\x00\x68\x9e\x00\x00\x4a\x8e\x00\x00\x00\x00\x6b\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc7\x00\x00\x00\x00\x00\x00\x68\xa1\x00\x00\x68\xa0\x00\x00\x4b\x5e\x4e\xd9\x4e\x9d\x00\x00\x4c\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa5\x00\x00\x00\x00\x00\x00\x59\x48\x00\x00\x4f\xbe\x54\x8f\x69\x56\x69\x57\x50\x75\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xa8", /* 7a80 */ "\x69\x58\x57\x5b\x00\x00\x54\x74\x5b\x4d\x00\x00\x69\x59\x00\x00\x69\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6f\x00\x00\x00\x00\x00\x00\x59\xa3\x5b\xce\x00\x00\x00\x00\x69\x5b\x4f\x71\x4a\xaf\x4f\xbc\x00\x00\x00\x00\x00\x00\x4a\xdb\x57\xd0\x00\x00\x50\x7f\x69\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9b\x69\x5c\x00\x00\x69\x5f\x00\x00\x00\x00\x00\x00\x69\x5e\x69\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf9\x00\x00\x00\x00\x5b\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb9\x4f\xb8\x5b\x62\x00\x00\x00\x00\x50\x42\x00\x00\x57\x4f\x69\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7f\x00\x00\x4b\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf0\x6a\x63\x00\x00\x00\x00\x6a\x64\x00\x00\x4c\xcc", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x6a\x66\x6a\x67\x00\x00\x48\xc9\x00\x00\x6a\x65\x00\x00\x6a\x69\x56\x92\x00\x00\x00\x00\x00\x00\x6a\x6b\x00\x00\x58\xa5\x00\x00\x00\x00\x49\x6a\x6a\x68\x00\x00\x00\x00\x00\x00\x6a\x6f\x00\x00\x4b\x71\x00\x00\x00\x00\x6a\x77\x00\x00\x6a\x72\x00\x00\x00\x00\x00\x00\x6a\x74\x6a\x73\x4c\x9c\x00\x00\x49\x5f\x00\x00\x6a\x6e\x6a\x6a\x4b\x7a\x00\x00\x6a\x70\x00\x00\x00\x00\x6a\x71\x00\x00\x6a\x75\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x6d\x00\x00\x4e\xe2\x00\x00\x51\x9e\x00\x00\x6a\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x7a\x00\x00\x6a\x6c\x00\x00\x4b\x68\x00\x00\x4f\x8f\x6a\x7c\x00\x00\x00\x00\x4c\x44\x50\x91\x5b\xfd\x57\x52\x00\x00\x4a\xef\x00\x00\x49\xde\x00\x00\x6a\x78\x00\x00\x6a\x79\x55\x58\x00\x00\x6a\x7d\x00\x00\x00\x00\x6a\x7e\x00\x00\x6a\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x7f\x00\x00\x00\x00\x6a\x84\x6a\x83\x00\x00\x00\x00\x6a\x7b\x00\x00\x50\x8b\x00\x00\x4a\x90\x00\x00\x6a\x81\x00\x00\x00\x00\x54\x49\x00\x00", /* 7b80 */ "\x4e\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x5f\x00\x00\x00\x00\x6a\x85\x00\x00\x00\x00\x00\x00\x49\xac\x4e\x9f\x00\x00\x56\x84\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8e\x6a\x8a\x00\x00\x00\x00\x00\x00\x4d\x7c\x6a\x8f\x00\x00\x00\x00\x00\x00\x6a\x86\x6a\x87\x6a\x8b\x51\xe0\x6a\x8d\x6a\x90\x6a\x89\x4e\xfc\x00\x00\x00\x00\x00\x00\x58\x85\x00\x00\x00\x00\x6a\x91\x00\x00\x00\x00\x00\x00\x6a\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x93\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x4d\x53\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x94\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x92\x00\x00\x51\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdc\x6a\x96\x00\x00\x00\x00\x6a\x95\x00\x00\x00\x00\x00\x00\x4a\xda\x00\x00\x00\x00\x00\x00\x6a\x97\x6a\x98\x00\x00\x00\x00\x00\x00\x6a\x99\x00\x00\x00\x00\x00\x00\x50\xb9\x00\x00\x00\x00\x50\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x92\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x9c\x00\x00\x6a\x9b\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xd7\x00\x00\x00\x00\x00\x00\x6a\x9f\x6a\x9a\x00\x00\x00\x00\x6a\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa2\x4e\x69\x00\x00\x00\x00\x6a\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xbd\x6a\xa5\x6a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x77\x5d\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdf\x6a\xcb\x5c\x71\x00\x00\x00\x00", /* 7c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xcd\x51\x43\x00\x00\x00\x00\x53\xc8\x00\x00\x4a\xd5\x5b\x53\x00\x00\x00\x00\x00\x00\x6a\xcf\x6a\xce\x6a\xd0\x56\x7a\x00\x00\x00\x00\x6a\xd1\x00\x00\x5a\xc0\x5b\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x81\x00\x00\x00\x00\x00\x00\x51\x58\x00\x00\x00\x00\x51\x5b\x6a\xd2\x4f\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\xe1\x00\x00\x00\x00\x6a\xd3\x6a\xd4\x4f\xaa\x00\x00\x00\x00\x6a\xd5\x00\x00\x00\x00\x00\x00\x6a\xda\x00\x00\x6a\xd6\x6a\xd9\x00\x00\x4d\xfc\x00\x00\x6a\xd7\x6a\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe1\x56\xc6\x6a\xdb\x00\x00\x49\xd9\x00\x00\x00\x00\x52\x73\x00\x00\x00\x00\x5a\xe2\x50\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe8\x00\x00\x00\x00\x58\x55\x00\x00\x00\x00\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x78\x00\x00\x56\x98\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x95\x00\x00\x00\x00\x00\x00\x5c\x6f\x00\x00\x00\x00\x00\x00\x50\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7d80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e80 */ "\x00\x00\x00\x00\x5c\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xed\x00\x00\x00\x00\x00\x00\x63\xf8\x4f\xbf\x63\xf9\x4d\xeb\x63\xfa\x58\x6b\x63\xfb\x5a\xbb\x4e\xb5\x63\xfc\x63\xfd\x4e\xcc\x54\xd1\x57\xb2\x64\x41\x00\x00\x4a\xbe\x64\x42\x55\x54\x4c\xd8\x52\xc8\x00\x00\x5c\x7d\x51\xd9\x4c\x77\x5b\xbc\x57\xc5\x4c\x64\x00\x00\x00\x00\x53\x46\x64\x43\x58\x7f\x64\x44\x64\x45\x64\x46\x51\x57\x5c\x8a\x55\x91\x58\x58\x5b\xae\x5b\xd4\x64\x47\x48\xec\x64\x48\x64\x49\x55\x7c\x59\xee\x4f\xac\x64\x4a\x48\xf2\x54\xdd\x4f\x82\x64\x4b\x54\xc5\x00\x00\x64\x4c\x4e\x87\x4c\xf7\x59\x44\x64\x4d\x51\xe6\x4f\xf7\x4f\x6a\x57\x53\x64\x4e\x64\x4f\x4f\xed\x58\xe4\x00\x00\x56\x88\x56\xcf\x4e\xcb\x64\x50\x4e\xa7\x58\xf6\x64\x51\x00\x00\x58\xf7\x64\x52\x64\x53\x4a\xc1\x64\x54\x64\x55\x55\x9f\x57\xab\x52\x81\x64\x57\x49\x61\x4a\x92\x00\x00\x64\x58\x64\x59\x5c\x7b\x5b\x60\x64\x5a\x51\xcb", /* 7f00 */ "\x5c\x5a\x64\x5b\x64\x5c\x64\x5d\x4e\xe9\x52\x86\x50\xc1\x64\x5e\x64\x5f\x4e\xa8\x00\x00\x64\x60\x64\x61\x64\x56\x4b\xcf\x64\x62\x00\x00\x64\x63\x64\x64\x4e\x5a\x4b\x7e\x51\xc5\x49\x81\x64\x65\x5a\xb4\x64\x66\x4c\xbe\x64\x68\x64\x67\x4c\x8d\x00\x00\x64\x69\x49\xf7\x64\x6a\x64\x6b\x64\x6c\x64\x6d\x64\x6e\x64\x6f\x64\x70\x5a\x47\x56\x96\x64\x71\x64\x72\x64\x73\x64\x74\x55\x69\x64\x75\x64\x76\x64\x77\x64\x78\x64\x79\x4f\x69\x64\x7a\x6a\x5e\x00\x00\x4c\xd6\x00\x00\x54\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5f\x00\x00\x6a\x60\x6a\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x7e\x57\x99\x00\x00\x00\x00\x5c\xe7\x4d\xb0\x00\x00\x51\xdd\x67\xb6\x00\x00\x4c\x43\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb8\x00\x00\x67\xb7\x48\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xba\x5b\x76\x5c\x90\x00\x00\x00\x00\x00\x00\x5b\xc2\x00\x00\x00\x00\x67\xbc\x55\xef\x00\x00\x67\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x67\xbf\x00\x00", /* 7f80 */ "\x00\x00\x67\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x93\x00\x00\x54\x5c\x00\x00\x52\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x88\x00\x00\x00\x00\x6a\xc5\x58\xde\x6a\xc6\x00\x00\x58\x7b\x00\x00\x00\x00\x54\xb9\x00\x00\x00\x00\x6a\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc8\x6a\xc9\x00\x00\x6a\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9b\x4c\xfd\x00\x00\x00\x00\x63\x92\x5a\x91\x00\x00\x6a\xdf\x00\x00\x57\xcb\x00\x00\x00\x00\x00\x00\x4a\x82\x00\x00\x00\x00\x00\x00\x00\x00\x69\x54\x00\x00\x59\xed\x00\x00\x6a\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x89\x6a\xe1\x00\x00\x00\x00\x54\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x74\x4a\xe3\x6a\xe3\x00\x00\x00\x00\x00\x00\x6a\xe2\x6a\xe4\x00\x00\x00\x00\x6a\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe6\x00\x00\x4d\xb1\x48\xbe\x00\x00\x6a\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4d\x59\xec\x00\x00\x00\x00\x00\x00", /* 8000 */ "\x59\xaa\x50\xce\x00\x00\x50\x5c\x66\x43\x5b\x7f\x65\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x69\x94\x4b\xf7\x56\x43\x00\x00\x00\x00\x52\xcc\x00\x00\x69\x88\x00\x00\x69\x89\x4c\xfa\x69\x8a\x4d\xc3\x5a\xc4\x48\xd1\x00\x00\x00\x00\x69\x8b\x00\x00\x00\x00\x00\x00\x69\x8c\x00\x00\x69\x8d\x00\x00\x00\x00\x69\x8e\x69\x8f\x69\x90\x69\x92\x69\x91\x53\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x93\x00\x00\x4b\xf9\x00\x00\x69\x95\x59\xad\x5f\xc6\x56\x6a\x00\x00\x00\x00\x4a\x7c\x00\x00\x4b\x42\x00\x00\x4d\x42\x00\x00\x00\x00\x52\xf3\x69\x96\x00\x00\x00\x00\x69\x97\x00\x00\x00\x00\x00\x00\x51\x64\x51\x9c\x5b\xaf\x69\x98\x00\x00\x00\x00\x00\x00\x00\x00\x69\x99\x00\x00\x51\x4a\x00\x00\x00\x00\x00\x00\x53\xb7\x00\x00\x4f\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x9a\x4a\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x52", /* 8080 */ "\x67\x51\x00\x00\x00\x00\x56\x81\x59\xdd\x00\x00\x56\x61\x5b\x78\x00\x00\x54\xe1\x00\x00\x50\xde\x4e\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x61\x00\x00\x00\x00\x58\xa3\x00\x00\x5b\xe1\x00\x00\x4b\xc6\x4c\xd7\x66\x60\x4c\xcd\x00\x00\x66\x5f\x4a\x46\x4d\x69\x5b\xaa\x00\x00\x4c\x95\x4c\x6a\x00\x00\x00\x00\x00\x00\x4e\xe6\x4c\x5e\x66\x66\x00\x00\x66\x67\x48\xb8\x50\x6f\x00\x00\x66\x65\x5a\x9e\x00\x00\x66\x68\x00\x00\x00\x00\x66\x69\x00\x00\x00\x00\x4c\x6e\x00\x00\x66\x62\x66\x64\x55\x97\x5b\xd6\x5b\x6d\x58\xb1\x66\x6f\x57\xb7\x66\x70\x00\x00\x4b\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x53\x66\x72\x56\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x76\x66\x73\x00\x00\x66\x71\x53\x7f\x66\x6e\x55\xa3\x66\x75\x48\xfa\x00\x00\x00\x00\x4d\xf9\x00\x00\x00\x00\x5c\xb6\x69\x84\x00\x00\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x76\x63\xbf\x66\x79\x00\x00\x50\x89\x59\xc7\x66\x77\x66\x7c\x4c\xeb\x66\x78\x00\x00\x4f\x5a\x00\x00\x58\xd7\x00\x00\x48\xb6\x00\x00\x66\x7d\x52\xdb\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x5b\xab\x00\x00\x00\x00\x00\x00\x4a\xdf\x00\x00\x00\x00\x51\xf5\x4e\xb8\x00\x00\x00\x00\x66\x7a\x66\x7b\x5a\xdf\x53\xe9\x52\xd3\x66\x7f\x53\x47\x5d\x96\x00\x00\x49\xb0\x00\x00\x66\x85\x00\x00\x4f\x65\x00\x00\x00\x00\x00\x00\x66\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x84\x00\x00\x00\x00\x4c\xab\x00\x00\x57\x71\x66\x86\x00\x00\x00\x00\x00\x00\x66\x82\x00\x00\x51\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xf2\x00\x00\x66\x87\x00\x00\x50\xaf\x59\xb7\x66\x88\x00\x00\x00\x00\x00\x00\x4c\xae\x4c\xac\x00\x00\x66\x89\x54\x5b\x57\x94\x00\x00\x00\x00\x00\x00\x66\x8b\x66\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x58\xc7\x00\x00\x66\x93\x00\x00\x66\x8f\x00\x00\x00\x00\x00\x00\x66\x92\x54\xf8\x00\x00\x59\x9d\x66\x8d\x00\x00\x00\x00\x66\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xb8\x58\x79\x52\xe4\x66\x90\x66\x91\x56\xd9\x57\x68", /* 8180 */ "\x48\xf1\x00\x00\x66\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x96\x00\x00\x49\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xdf\x00\x00\x66\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x8d\x00\x00\x00\x00\x56\xc4\x52\xa3\x58\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x9a\x00\x00\x00\x00\x66\xa1\x00\x00\x53\x93\x00\x00\x66\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xde\x66\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6e\x66\xa0\x49\x7b\x5a\x57\x00\x00\x00\x00\x59\xdb\x00\x00\x00\x00\x00\x00\x66\x9e\x00\x00\x66\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5c\x00\x00\x00\x00\x00\x00\x65\xaf\x00\x00\x00\x00\x5c\x74\x00\x00\x6a\xaa\x4a\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc0\x5b\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x8a\x4f\xc9\x00\x00\x6a\xa6\x00\x00", /* 8200 */ "\x59\xa7\x6a\xa7\x6a\xa8\x00\x00\x6a\xa9\x4f\xca\x5a\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x81\x55\x82\x00\x00\x00\x00\x6a\x62\x00\x00\x55\xe5\x00\x00\x56\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb5\x56\x54\x00\x00\x57\xe7\x5b\xda\x00\x00\x6a\xac\x6a\xad\x6a\xae\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xb1\x00\x00\x4d\xbc\x6a\xb2\x48\xe2\x6a\xaf\x00\x00\x6a\xb0\x4f\x42\x49\xd4\x00\x00\x6a\xb5\x6a\xb6\x4b\xe5\x49\xaf\x58\x6f\x6a\xb3\x4a\xab\x00\x00\x6a\xb4\x00\x00\x00\x00\x6a\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xb8\x00\x00\x00\x00\x57\x47\x00\x00\x6a\xb9\x00\x00\x6a\xba\x00\x00\x00\x00\x00\x00\x6a\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x72\x00\x00\x6a\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xdd\x51\x5c\x4e\xe7\x00\x00\x55\x4b\x59\x7e\x63\x96\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xb2\x59\xd4\x00\x00\x00\x00\x5e\xb3\x48\xab\x5e\xb4", /* 8280 */ "\x00\x00\x00\x00\x4f\x7a\x00\x00\x5e\xb8\x00\x00\x00\x00\x00\x00\x5c\xc1\x00\x00\x5e\xb6\x5a\x94\x00\x00\x55\x76\x5e\xb9\x5e\xb5\x00\x00\x5e\xba\x52\x42\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xbb\x5e\xc4\x5e\xbc\x00\x00\x00\x00\x57\xde\x5b\xa4\x00\x00\x5e\xce\x00\x00\x5e\xcc\x00\x00\x00\x00\x5e\xd1\x4f\x87\x51\xaa\x00\x00\x5e\xb7\x5e\xca\x5e\xcd\x5e\xbd\x4c\x72\x48\xc4\x5e\xc6\x58\xbd\x5e\xc0\x4e\x48\x00\x00\x4c\x5c\x5e\xcb\x00\x00\x00\x00\x5e\xc5\x5e\xbe\x54\x7b\x00\x00\x00\x00\x00\x00\x59\x5f\x5e\xbf\x00\x00\x00\x00\x5e\xc9\x00\x00\x00\x00\x5e\xcf\x00\x00\x00\x00\x57\xac\x5e\xc1\x00\x00\x5e\xc2\x5e\xc7\x5e\xc8\x49\xd3\x5e\xd0\x56\x75\x00\x00\x5a\xb6\x5e\xda\x5e\xde\x56\xa5\x5e\xe5\x00\x00\x52\x88\x5e\xdb\x00\x00\x00\x00\x50\x61\x5e\xd8\x00\x00\x48\xf9\x4d\x56\x5e\xe4\x5e\xd2\x00\x00\x5e\xc3\x5e\xd5\x54\xf3\x50\x81\x00\x00\x00\x00\x00\x00\x00\x00\x55\x5b\x00\x00\x00\x00\x00\x00\x49\x5d\x00\x00\x5a\x42\x00\x00\x00\x00\x5e\xd9\x00\x00\x00\x00\x5e\xd4\x00\x00\x53\xba\x00\x00\x5e\xdd\x00\x00\x00\x00\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x5c\x62\x52\x4f\x4c\x56\x54\x71\x52\x49\x5e\xe1\x5e\xd7\x5e\xea\x5e\xd3\x00\x00\x00\x00\x5e\xdc\x00\x00\x4f\xa4\x5e\xd6\x00\x00\x5e\xdf\x00\x00\x00\x00\x5e\xe2\x5e\xe3\x00\x00\x5e\xf7\x00\x00\x00\x00\x5e\xe0\x5f\x42\x5e\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xea\x4a\xc3\x00\x00\x00\x00\x52\x43\x49\xe6\x5e\xf9\x00\x00\x5e\xf1\x00\x00\x5e\xee\x00\x00\x5e\xfb\x5e\xed\x59\xef\x49\xe7\x00\x00\x54\xd6\x54\xe2\x5e\xfa\x00\x00\x5e\xec\x00\x00\x00\x00\x00\x00\x5e\xf6\x00\x00\x00\x00\x5e\xf4\x00\x00\x00\x00\x4f\xa2\x5e\xf3\x00\x00\x49\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xf2\x4e\xf5\x5e\xe7\x4e\x64\x00\x00\x50\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xd3\x5e\xe8\x5e\xe9\x00\x00\x5e\xf0\x5e\xf5\x5e\xf8\x4b\x54\x00\x00\x54\xd8\x4e\x88\x5e\xfd\x5e\xfc\x5a\x4b\x5f\x41\x5f\x43\x5f\x45\x59\xf0\x5f\x44\x5f\x46\x5f\x47\x59\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xc8\x5f\x49\x00\x00\x00\x00\x5f\x56\x5f\x51\x5f\x54\x00\x00\x00\x00", /* 8380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x50\x53\xcd\x00\x00\x00\x00\x50\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4f\x00\x00\x00\x00\x00\x00\x5e\xeb\x5f\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x00\x00\x00\x00\x5e\xef\x5f\x4f\x00\x00\x5f\x58\x00\x00\x5f\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x59\x5f\x53\x5f\x4d\x52\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x48\x50\xb2\x51\x4b\x5f\x4a\x5f\x4b\x00\x00\x5f\x52\x4e\x92\x5f\x55\x5a\x48\x5f\x5a\x00\x00\x5f\x5b\x52\x47\x00\x00\x00\x00\x5f\x72\x5f\x5c\x00\x00\x00\x00\x00\x00\x5f\x71\x00\x00\x4d\x5d\x00\x00\x00\x00\x4f\xd4\x00\x00\x4f\xf9\x00\x00\x00\x00\x4d\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x6a\x00\x00\x5f\x65\x00\x00\x5f\x5f\x00\x00\x00\x00\x00\x00\x49\xca\x5f\x63\x00\x00\x5f\x6b\x49\xa3\x5f\x75\x00\x00\x00\x00\x00\x00\x5f\x5e\x00\x00\x00\x00\x00\x00\x53\xcf\x5f\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x74\x51\x83\x4c\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x6e\x5f\x6f\x00\x00\x00\x00\x00\x00\x5f\x64\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x5f\x5d\x00\x00\x5f\x6d\x56\xd0\x00\x00\x5f\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x62\x52\x68\x53\xbb\x57\xad\x5f\x6c\x00\x00\x5f\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x61\x00\x00\x00\x00\x00\x00\x5f\x66\x51\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x49\x5a\x4a\x5f\x73\x58\x95\x54\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x67\x00\x00\x00\x00\x00\x00\x5f\x81\x51\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xf7\x00\x00\x5f\x79\x5f\x78\x4c\xef\x5f\x76\x00\x00\x00\x00\x00\x00\x00\x00\x53\xce\x00\x00\x4b\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x83\x00\x00\x4d\xf8\x5a\xe0\x5f\x88\x00\x00\x00\x00\x00\x00\x4a\xcf\x00\x00\x5f\x7a\x00\x00\x50\x9c\x5f\x84\x00\x00\x5f\x7f\x00\x00\x5f\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x4b\x79\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x7b\x5f\x7c\x5f\x7e\x00\x00\x4f\x4f\x5f\x85\x00\x00\x5f\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x96\x00\x00\x52\x69\x00\x00\x00\x00\x56\x83\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe0\x00\x00\x00\x00\x53\xd0\x00\x00\x5f\x95\x00\x00\x00\x00\x00\x00\x5b\x95\x5f\x94\x5f\x91\x00\x00\x00\x00\x5f\x8d\x00\x00\x5f\x90\x00\x00\x5f\x89\x00\x00\x00\x00\x58\xed\x00\x00\x00\x00\x00\x00\x00\x00\x54\xd7\x5f\x8f\x00\x00\x00\x00\x5f\x8a\x00\x00\x00\x00\x5f\x8b\x56\x93\x00\x00\x5f\x8e\x00\x00\x00\x00\x49\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb5\x00\x00\x4e\xba\x5f\x92\x00\x00\x00\x00\x5f\x98\x00\x00\x5f\x97\x5f\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x8f\x00\x00\x00\x00\x00\x00\x5f\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa3\x00\x00\x00\x00\x5f\xa2", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x99\x00\x00\x00\x00\x00\x00\x00\x00\x52\x90\x00\x00\x51\xfa\x00\x00\x00\x00\x00\x00\x5b\x82\x00\x00\x00\x00\x57\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x9e\x00\x00\x49\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xe7\x55\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x5e\x5f\x9b\x5f\x9d\x5f\x9f\x5f\xa1\x48\xa9\x49\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xab\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa5\x4f\x56\x54\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa0\x00\x00\x00\x00\x5f\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xa7\x00\x00\x00\x00\x00\x00\x5f\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xac\x00\x00\x5a\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb2\x5f\xa9\x5f\xad\x00\x00\x00\x00\x50\xd8\x00\x00", /* 8580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x49\x41\x5f\xb5\x00\x00\x5f\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x46\x5f\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xae\x00\x00\x00\x00\x00\x00\x5f\xaf\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x5f\xb3\x55\xec\x5f\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xb7\x00\x00\x5f\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xd7\x52\x8b\x00\x00\x00\x00\x5f\xb9\x00\x00\x53\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe4\x00\x00\x00\x00\x00\x00\x5f\xbc", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xbd\x00\x00\x5f\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x5a\x00\x00\x00\x00\x00\x00\x5f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xad\x4e\x42\x51\xb1\x53\x50\x51\xc6\x00\x00\x00\x00\x69\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xe8\x00\x00\x00\x00\x00\x00\x5a\x7d\x00\x00\x00\x00\x00\x00\x66\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x87\x69\xaf\x00\x00\x69\xb0\x00\x00\x00\x00\x55\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe6\x69\xb2\x69\xb4\x69\xb3\x56\x85\x58\x5a\x69\xb1", /* 8680 */ "\x55\xb3\x59\xce\x51\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x69\xb7\x48\xf5\x69\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xbd\x00\x00\x49\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x61\x69\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xbb\x5a\xe8\x00\x00\x00\x00\x69\xba\x69\xb5\x69\xbe\x69\xbc\x00\x00\x69\xb8\x00\x00\x00\x00\x69\xc6\x69\xc3\x69\xc5\x00\x00\x00\x00\x69\xc9\x69\xc1\x69\xbf\x00\x00\x00\x00\x00\x00\x69\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfa\x00\x00\x00\x00\x00\x00\x69\xc0\x00\x00\x54\x9a\x55\x7f\x00\x00\x69\xc7\x4d\x66\x4b\x50\x00\x00\x00\x00\x69\xc2\x69\xc8\x69\xcf\x69\xd5\x00\x00\x00\x00\x4e\x77\x00\x00\x00\x00\x00\x00\x69\xd4\x57\x7c\x00\x00\x5b\xea\x00\x00\x00\x00\x69\xd1\x69\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x69\xca\x00\x00\x00\x00\x00\x00\x69\xcd\x51\xf8\x00\x00\x5b\x7d\x69\xcb\x69\xcc\x69\xce\x69\xd2\x00\x00\x00\x00\x00\x00\x69\xd8\x5a\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe9\x00\x00", /* 8700 */ "\x55\xf0\x00\x00\x4c\x85\x69\xd6\x00\x00\x00\x00\x00\x00\x69\xd7\x69\xd9\x69\xdc\x69\xda\x00\x00\x00\x00\x69\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x59\x71\x69\xd0\x00\x00\x57\x69\x00\x00\x57\xce\x5b\xa8\x00\x00\x69\xe2\x00\x00\x52\x7b\x00\x00\x69\xdf\x00\x00\x00\x00\x50\xae\x69\xeb\x69\xdd\x00\x00\x69\xe0\x00\x00\x00\x00\x00\x00\x69\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x69\xe1\x00\x00\x00\x00\x69\xe6\x00\x00\x00\x00\x69\xe5\x00\x00\x00\x00\x69\xe8\x00\x00\x00\x00\x00\x00\x69\xde\x00\x00\x00\x00\x69\xe3\x69\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4c\x69\xe4\x49\xf4\x00\x00\x00\x00\x69\xf1\x00\x00\x58\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x69\xf4\x00\x00\x00\x00\x00\x00\x4e\x68\x00\x00\x69\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xef\x00\x00\x00\x00\x69\xf5\x69\xf7\x69\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xf2\x00\x00\x69\xf0\x00\x00\x00\x00\x00\x00\x4d\xfa\x00\x00\x4b\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x69\xee\x69\xf6\x69\xec\x69\xed\x00\x00", /* 8780 */ "\x00\x00\x00\x00\x69\xea\x6a\x46\x00\x00\x6a\x43\x00\x00\x00\x00\x6a\x42\x00\x00\x00\x00\x69\xf3\x00\x00\x54\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xfa\x00\x00\x00\x00\x00\x00\x6a\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xfc\x00\x00\x00\x00\x6a\x47\x6a\x49\x6a\x44\x00\x00\x69\xfb\x00\x00\x00\x00\x00\x00\x6a\x4b\x00\x00\x6a\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x00\x00\x6a\x4e\x00\x00\x00\x00\x6a\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x41\x00\x00\x00\x00\x00\x00\x6a\x51\x6a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x4f\x69\xfd\x6a\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x52\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x54\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x48\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x53\x00\x00\x00\x00\x00\x00\x6a\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x58\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x5d\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x57\x00\x00\x54\xe3\x6a\x56\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5b\x4a\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5c\x00\x00\x00\x00\x6a\x5d\x00\x00\x00\x00\x00\x00\x59\x4a\x00\x00\x00\x00\x00\x00\x6a\xab\x58\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xcf\x59\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x6e\x00\x00\x00\x00\x4f\x76\x00\x00\x59\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe1\x61\x8a\x59\xc1\x69\x62\x49\xb8\x00\x00\x00\x00\x49\x8e\x69\x63\x00\x00\x55\x60\x4a\x64\x00\x00\x5d\x93\x00\x00\x56\x45\x00\x00\x69\x64\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x65\x6a\xbf\x69\x66", /* 8880 */ "\x00\x00\x5a\xab\x69\x67\x00\x00\x48\xbf\x6a\xc0\x00\x00\x00\x00\x6a\xc1\x00\x00\x00\x00\x4a\xfb\x00\x00\x53\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x56\xba\x00\x00\x00\x00\x00\x00\x58\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x68\x00\x00\x5d\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x5b\x00\x00\x58\x4e\x00\x00\x00\x00\x00\x00\x4c\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc2\x51\x71\x00\x00\x00\x00\x5c\x50\x69\x69\x00\x00\x00\x00\x69\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x69\x6e\x00\x00\x00\x00\x00\x00\x5d\x97\x00\x00\x59\xe0\x5a\xa2\x00\x00\x00\x00\x6a\xc2\x54\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc3\x00\x00\x00\x00\x69\x6d\x69\x6f\x50\x84\x69\x70\x00\x00\x00\x00\x69\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x76\x69\x71\x00\x00\x55\x71\x53\x82\x00\x00\x00\x00\x00\x00\x51\xe2\x4d\x9d\x00\x00\x00\x00\x69\x73\x00\x00\x69\x75\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x4d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xd5\x00\x00\x48\xfc\x69\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x78\x69\x72\x69\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x77\x00\x00\x00\x00\x00\x00\x54\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x57\x6a\x69\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x63\x5d\x00\x00\x00\x00\x00\x00\x69\x7c\x00\x00\x69\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x7f\x00\x00\x00\x00\x58\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xc4\x4f\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x82\x00\x00\x00\x00\x00\x00\x57\xf6", /* 8980 */ "\x00\x00\x59\xa9\x00\x00\x69\x9c\x00\x00\x00\x00\x4c\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xfa\x4d\x7b\x00\x00\x4d\x87\x52\x79\x55\xd2\x65\xe7\x50\xbf\x4f\xf4\x65\xe8\x65\xe9\x65\xea\x00\x00\x65\xeb\x65\xec\x65\xed\x65\xee\x4f\x67\x00\x00\x00\x00\x00\x00\x6b\x9c\x00\x00\x00\x00\x00\x00\x6b\x9e\x00\x00\x6b\x9f\x00\x00\x6b\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x83\x00\x00\x6b\xa0\x4a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa1\x00\x00\x00\x00\x00\x00\x6b\xa2\x00\x00\x00\x00\x00\x00\x66\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a00 */ "\x59\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x9f\x56\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8b80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa4\x4e\xc5\x4b\xa8\x4c\xbb\x54\xce\x4e\xa4\x5d\xa5\x5d\xa6\x56\xd5\x54\xc2\x5d\xa7\x53\xfc\x00\x00\x59\x55\x59\xe8\x59\x56\x4e\xc6\x00\x00\x4f\x52\x4e\x85\x5d\xa8\x5d\xa9\x59\x68\x5d\xaa\x58\xec\x4b\xee\x51\xda\x00\x00\x56\x6f\x4c\x8e\x55\x89\x4c\x63\x4f\xf6\x5b\xa3\x5d\xab\x5d\xac\x53\xbf\x5c\x88\x55\xb5\x00\x00\x5b\x49\x56\x7f\x5b\x90\x5d\xad\x5b\xde\x4a\xc9\x5d\xaf\x5d\xae\x00\x00\x59\xea\x5d\xb0\x5d\xb1\x5d\xb2\x55\xd3\x5d\xb3\x55\xaa\x5d\xb4\x5d\xb5\x4a\x6f\x5b\xee\x5d\xb6\x4e\x50\x4b\x4e\x5d\xb7\x5d\xb8\x4d\x8f\x59\x4f\x59\xe7\x5d\xb9\x4c\xc2\x58\x8b\x49\xee\x5d\xba\x5d\xbb\x00\x00\x4f\x8c\x57\xdb\x5a\x90\x5d\xbc\x57\xf2\x5d\xbd\x5a\x75\x4e\x86\x5d\xbe\x56\x55\x56\x70\x5d\xbf\x54\x8c\x5b\xed\x5d\xc0\x53\x55\x4b\xc0\x5d\xc1\x4c\x6c\x50\x6e\x5d\xc2", /* 8c00 */ "\x5d\xc3\x56\x4d\x5d\xc4\x4b\x98\x5d\xc5\x51\x62\x5c\x5b\x5d\xc6\x56\xb7\x00\x00\x59\xe9\x52\xb0\x5d\xc7\x4b\x9e\x4e\x71\x5d\xc8\x58\xb2\x5d\xc9\x5d\xca\x57\xbc\x5d\xcb\x5d\xcc\x5d\xcd\x49\xf6\x5d\xd0\x5d\xce\x59\x89\x5d\xcf\x52\x75\x5d\xd1\x00\x00\x5d\xd2\x5d\xd3\x5d\xd4\x58\xba\x59\xa4\x48\xf8\x5d\xd5\x54\x4b\x5d\xd6\x4f\x98\x52\x41\x5d\xd7\x5d\xd8\x52\x9e\x56\xb6\x5d\xd9\x5d\xda\x50\xbd\x53\xd6\x5d\xdb\x5d\xdc\x54\x54\x5d\xdd\x5d\xde\x4d\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xb8\x6a\xf7\x00\x00\x6a\xf8\x00\x00\x00\x00\x57\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x59\x00\x00\x00\x00\x00\x00\x00\x00\x66\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x94\x4e\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xbf\x5a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x79\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x95\x49\x4a\x49\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c80 */ "\x00\x00\x00\x00\x6b\x96\x00\x00\x00\x00\x6b\x98\x00\x00\x00\x00\x00\x00\x4d\xd0\x6b\x97\x00\x00\x52\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x9a\x00\x00\x00\x00\x00\x00\x6b\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x54\x5b\x8b\x4c\xb9\x00\x00\x4d\x51\x49\xc5\x5a\xef\x58\x6d\x48\xdb\x5b\x6b\x4e\x96\x5b\xc9\x4c\x57\x56\xaf\x53\xb5\x49\x82\x4d\x5a\x5b\xfb\x4d\x82\x4c\x41\x4e\xf9\x65\xd9\x65\xda\x56\xf8\x4d\x94\x65\xdb\x4a\xfa\x52\x53\x4c\x71\x4d\xd7\x65\xdc\x5a\xf3\x65\xdd\x4e\xd5\x4e\x7f\x65\xde\x51\x7e\x51\xb7\x5a\xde\x5c\x6a\x65\xdf\x65\xe0\x65\xe3\x65\xe1\x65\xe2\x55\x7e\x4c\xb2\x4b\xc3\x65\xe4\x55\xe9\x55\x6d\x4a\xcc\x00\x00\x00\x00\x61\xd8\x53\x83\x65\xe5\x50\xb4\x00\x00\x5c\x58\x65\xe6\x5c\x4c\x54\xfb\x5c\xd2\x5c\xcc\x5a\xdd\x00\x00\x5a\xf8\x55\x64\x5a\x4e\x4c\xd2\x4a\x81\x00\x00\x55\x83\x6a\xf5\x00\x00\x00\x00\x00\x00\x4d\xd4\x00\x00\x6a\xf6\x00\x00\x00\x00\x5c\x7f\x00\x00\x00\x00\x6a\xf0\x4c\xaf\x5b\x74\x4c\xce\x53\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8d80 */ "\x00\x00\x4a\x63\x00\x00\x00\x00\x6a\xf1\x4a\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xbc\x54\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf3\x00\x00\x00\x00\x6a\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xca\x00\x00\x00\x00\x00\x00\x54\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf4\x00\x00\x5c\x84\x53\x5f\x6b\x60\x00\x00\x00\x00\x6b\x5b\x00\x00\x6b\x63\x00\x00\x6b\x62\x00\x00\x5b\xb9\x6b\x61\x00\x00\x00\x00\x00\x00\x5a\xbd\x6b\x64\x00\x00\x6b\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x48\xce\x4b\x99\x00\x00\x6b\x69\x6b\x6a\x00\x00\x53\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x65\x6b\x66\x00\x00\x00\x00\x6b\x67\x6b\x6b\x00\x00\x4f\xdf\x6b\x68\x4c\xf9\x00\x00\x00\x00\x00\x00\x6b\x70\x6b\x73\x00\x00\x00\x00\x00\x00\x50\x88\x00\x00\x4d\x93\x6b\x5c\x6b\x6d\x00\x00\x00\x00\x51\xb6\x00\x00\x00\x00\x00\x00\x56\xf7\x00\x00\x4e\xf8\x00\x00\x6b\x6e\x6b\x6f\x6b\x71\x4b\xe4\x6b\x72\x00\x00\x6b\x75\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5d\x00\x00\x00\x00\x00\x00\x6b\x74\x5a\x5b\x00\x00\x4a\x8d\x00\x00\x00\x00\x56\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x77\x4f\xe0\x6b\x78\x00\x00\x00\x00\x56\xde\x6b\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc7\x5c\x79\x00\x00\x6b\x79\x00\x00\x6b\x7a\x6b\x7c\x00\x00\x6b\x83\x00\x00\x00\x00\x00\x00\x6b\x81\x00\x00\x00\x00\x00\x00\x6b\x7f\x6b\x7d\x00\x00\x00\x00\x6b\x82\x00\x00\x00\x00\x6b\x7e\x6b\x85\x6b\x86\x00\x00\x56\xe2\x00\x00\x00\x00\x63\x5f\x4b\x58\x6b\x84\x6b\x89\x56\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x87\x6b\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x64\x00\x00\x00\x00\x6b\x5f\x00\x00\x00\x00\x4b\x65\x49\xe3\x00\x00\x6b\x8d\x6b\x8a\x00\x00\x4b\xd6\x00\x00\x6b\x8e\x00\x00\x6b\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x8c\x00\x00\x00\x00\x4a\xd9", /* 8e80 */ "\x00\x00\x5a\xe9\x00\x00\x00\x00\x00\x00\x6b\x8f\x00\x00\x4a\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x90\x6b\x92\x00\x00\x00\x00\x00\x00\x6b\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x93\x00\x00\x6b\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x8e\x4d\x4a\x00\x00\x00\x00\x54\x9c\x00\x00\x00\x00\x4b\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x55\x5a\xfd\x4d\x8d\x58\xf8\x00\x00\x65\x8e\x5c\x4a\x65\x8f\x51\xd5\x54\xec\x4d\xe3\x65\x90\x65\x91\x65\x92\x5b\xe0\x65\x93\x65\x94\x65\x96\x65\x95\x65\x97\x65\x98\x54\x82\x65\x99\x5a\xd7\x65\x9a\x4f\x6e", /* 8f80 */ "\x00\x00\x65\x9b\x65\x9c\x4f\x6f\x65\x9d\x4c\xa7\x51\x5e\x65\x9e\x49\x52\x4e\x74\x4d\x96\x65\x9f\x00\x00\x65\xa0\x65\xa1\x65\xa2\x4c\x99\x4e\xac\x00\x00\x55\xe3\x60\xcd\x5a\xae\x58\x5d\x5b\x57\x65\xa3\x5b\x7e\x65\xa4\x58\xc0\x4d\x5c\x00\x00\x4a\xc6\x49\x79\x00\x00\x00\x00\x00\x00\x50\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x49\x87\x49\x88\x00\x00\x49\x89\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5d\x54\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x63\x61\x00\x00\x00\x00\x49\x7f\x00\x00\x00\x00\x00\x00\x51\x69\x4a\xee\x00\x00\x00\x00\x54\x48\x5a\x78\x00\x00\x53\xf8\x59\x58\x00\x00\x4d\x9e\x51\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4d\x00\x00\x5a\xca\x4f\x9d\x00\x00\x63\x62\x4c\x55\x63\x63\x00\x00\x00\x00\x4e\x59\x5b\x83\x00\x00\x4f\x99\x5a\xb5\x57\xa4\x51\x4c\x4a\x79\x00\x00\x00\x00\x56\xf5\x00\x00\x63\x66\x63\x64\x63\x68\x00\x00\x63\x6a\x63\x67\x4b\x6f\x53\xc7\x00\x00\x4b\x9d\x63\x65\x00\x00\x55\xf5\x00\x00\x00\x00\x63\x69\x00\x00\x00\x00\x00\x00\x52\x74\x49\x65\x4e\xa2\x00\x00\x00\x00\x00\x00\x5c\x57\x00\x00\x00\x00", /* 9000 */ "\x57\x6b\x56\x6d\x55\xc9\x56\xd2\x63\x6c\x63\x6b\x52\xe5\x00\x00\x00\x00\x59\x41\x59\x57\x63\x6d\x00\x00\x63\x70\x00\x00\x57\x58\x5b\xef\x63\x6f\x4b\x7d\x00\x00\x57\x5e\x00\x00\x63\x71\x4b\xb9\x00\x00\x00\x00\x57\x48\x4d\x85\x00\x00\x55\xc4\x4a\x71\x56\x79\x5a\xeb\x63\x72\x4c\x8b\x00\x00\x00\x00\x00\x00\x63\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x75\x4a\xfd\x63\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x73\x63\x74\x00\x00\x59\xdc\x00\x00\x00\x00\x51\xde\x49\x66\x00\x00\x5a\x83\x00\x00\x00\x00\x4b\xdc\x56\x8d\x00\x00\x63\x77\x00\x00\x00\x00\x5a\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x8a\x00\x00\x4b\xf3\x63\x7a\x63\x78\x63\x79\x4b\x60\x00\x00\x00\x00\x00\x00\x59\xc4\x63\x7c\x00\x00\x00\x00\x63\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7d\x54\x52\x00\x00\x59\xa2\x00\x00\x00\x00\x63\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xe1\x5b\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x81\x5c\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x82\x00\x00\x49\x7c", /* 9080 */ "\x59\x9c\x00\x00\x63\x83\x63\x85\x00\x00\x00\x00\x00\x00\x00\x00\x63\x84\x00\x00\x00\x00\x63\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xd7\x00\x00\x4b\x6b\x00\x00\x64\x7f\x00\x00\x5d\xf4\x00\x00\x5d\xf7\x00\x00\x5d\xf5\x00\x00\x5d\xf6\x00\x00\x00\x00\x00\x00\x5d\xf9\x58\xce\x52\xc6\x00\x00\x00\x00\x48\xed\x00\x00\x00\x00\x00\x00\x58\xaf\x00\x00\x5d\xf8\x00\x00\x5a\x6a\x4d\xa9\x5e\x42\x54\x92\x00\x00\x5d\xfb\x5d\xfa\x55\x7b\x5d\xfc\x00\x00\x5e\x41\x5c\x7e\x5d\xfd\x51\x7a\x00\x00\x00\x00\x5e\x45\x00\x00\x00\x00\x5a\x95\x00\x00\x00\x00\x5e\x47\x5e\x44\x00\x00\x5e\x48\x00\x00\x00\x00\x4f\x5c\x00\x00\x00\x00\x00\x00\x50\xc8\x5e\x43\x5e\x46\x5b\xa2\x00\x00\x5e\x49\x00\x00\x00\x00\x00\x00\x5e\x4d\x00\x00\x00\x00\x00\x00\x5e\x4e\x5e\x4c\x4d\xc1\x00\x00\x00\x00\x00\x00\x50\x44\x5e\x4b\x00\x00\x00\x00\x00\x00\x5e\x4a\x5a\xc6\x49\xbe\x00\x00\x00\x00\x5e\x4f\x00\x00\x4d\x9a\x00\x00\x5e\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x5b\x00\x00\x00\x00\x00\x00\x4b\x46\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xbb\x5e\x51\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x4b\xf4\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x69\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x54\x00\x00\x00\x00\x00\x00\x5e\x53\x5e\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x57\x00\x00\x5e\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x59\x00\x00\x00\x00\x5e\x5a\x00\x00\x00\x00\x5a\x6f\x6a\xf9\x54\x96\x5c\x63\x53\x85\x6a\xfb\x6a\xfc\x6a\xfa\x00\x00\x4f\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x58\xee\x00\x00\x00\x00\x4c\x73\x00\x00\x00\x00\x5a\xcc\x56\xa9\x00\x00\x00\x00\x6b\x42\x6b\x41\x4d\xa7\x6a\xfd\x56\x76\x00\x00\x00\x00\x00\x00\x6b\x44\x50\xd1\x00\x00\x4a\x8b\x00\x00\x57\x4a\x6b\x45\x6b\x43\x4f\x54\x6b\x48\x00\x00\x6b\x49\x4f\x6d\x52\x58\x50\x82\x56\x82\x6b\x4a\x00\x00\x00\x00\x00\x00\x6b\x46\x6b\x47\x52\xef", /* 9180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x4c\x00\x00\x4a\xbb\x00\x00\x5c\x8e\x00\x00\x4a\xd6\x6b\x4b\x6b\x4e\x00\x00\x00\x00\x6b\x4d\x6b\x4f\x58\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x71\x54\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x50\x6b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x52\x00\x00\x00\x00\x6b\x53\x6b\x54\x6b\x55\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x57\x6b\x56\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xc8\x00\x00\x5a\x74\x55\xcc\x00\x00\x50\xee\x5b\xd7\x59\xaf\x51\x5f\x00\x00\x4f\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9480 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc3\x67\xc4\x67\xc5\x5b\x8c\x4b\xa3\x67\xc7\x67\xc6\x67\xc8\x67\xc9\x54\x45\x67\xca\x67\xcb\x00\x00\x4c\x50\x4b\x97\x67\xcc\x67\xce\x00\x00\x67\xcd\x00\x00\x4c\xc5\x67\xcf\x67\xd0\x67\xd1\x4b\xda\x4a\x4e\x5b\xd2\x52\xc5\x49\x55\x4c\xd5\x67\xd2\x67\xd3\x5a\xbe\x54\x75\x4f\xfa\x57\xd8\x4d\x53\x67\xd5\x67\xd4\x67\xd7\x67\xd6\x53\x45\x67\xd8\x67\xd9\x54\x4e\x67\xda\x54\x4f\x67\xdb\x49\xa6\x67\xdc\x67\xdd\x67\xde\x67\xdf\x67\xe0\x5c\x8b\x67\xe1\x67\xe2\x4e\xd7\x67\xe3\x5a\x6b\x56\xf9\x49\xab\x51\x86\x67\xe4\x54\x46\x52\x4d\x00\x00\x67\xe5\x67\xe6\x67\xe7\x67\xe8\x67\xe9\x67\xea\x67\xeb\x00\x00\x67\xec\x67\xed\x67\xee\x00\x00\x00\x00\x67\xef\x67\xf0\x67\xf1\x67\xf3\x67\xf2\x00\x00\x67\xf4\x57\x4d\x51\xc0\x67\xf5\x67\xf6\x67\xf7\x5b\x41\x67\xf8\x58\x53\x67\xf9\x67\xfa\x00\x00\x67\xfb\x67\xfc\x68\x41\x67\xfd\x68\x42\x4c\xf4\x52\x9b\x68\x43\x68\x44\x4f\x62\x59\xbe\x49\xf8\x68\x45\x68\x46\x68\x47\x59\xf7\x68\x48\x5b\xfc\x68\x49\x53\xcb\x00\x00\x68\x4a\x68\x4b\x51\x54\x68\x4c", /* 9500 */ "\x58\x9b\x56\x99\x68\x4e\x68\x4d\x4a\x9b\x4d\x99\x68\x4f\x68\x50\x58\xe1\x68\x51\x68\x52\x4c\x87\x58\xbe\x68\x53\x68\x54\x68\x55\x54\xf0\x56\xdf\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x5b\x81\x68\x5b\x4a\xec\x52\x4a\x68\x5c\x00\x00\x68\x5d\x68\x5e\x68\x5f\x00\x00\x57\xfc\x68\x60\x51\xdf\x4a\xb7\x5c\x56\x4f\x96\x00\x00\x58\x67\x68\x63\x68\x61\x68\x62\x68\x64\x4b\xa6\x4e\xfb\x4f\xe1\x52\x6c\x68\x65\x68\x66\x00\x00\x68\x67\x68\x6f\x68\x68\x68\x69\x68\x6a\x54\x62\x68\x92\x4b\xcc\x68\x6b\x00\x00\x68\x6c\x68\x6d\x4b\xc5\x52\x5e\x68\x6e\x00\x00\x68\x70\x68\x71\x68\x72\x5b\x93\x00\x00\x68\x73\x52\xf6\x00\x00\x68\x74\x52\xf7\x68\x75\x68\x76\x4c\xe3\x48\xf6\x68\x77\x68\x78\x68\x79\x00\x00\x68\x7a\x68\x7b\x68\x7c\x68\x7d\x00\x00\x68\x7e\x4f\xb4\x68\x82\x68\x7f\x68\x81\x00\x00\x68\x83\x68\x84\x51\x6d\x68\x85\x68\x86\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x50\xd7\x00\x00\x68\x8e\x51\x4d\x68\x8f\x68\x90\x68\x91\x00\x00\x00\x00\x58\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x44", /* 9580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x65\x62\x65\x55\x61\x62\x66\x00\x00\x49\x75\x57\xc9\x4a\xb2\x54\xf1\x62\x67\x58\x70\x62\x68\x4e\xe3\x62\x69\x62\x6a\x52\x66\x5b\x42\x52\xd5\x4d\x8c\x57\xc4\x62\x6b\x52\x97\x62\x6c\x00\x00", /* 9600 */ "\x4c\x47\x4c\xf2\x4d\xd1\x62\x6d\x62\x6e\x5a\xc3\x62\x6f\x00\x00\x62\x70\x59\x6b\x62\x71\x62\x72\x62\x73\x62\x74\x59\x76\x62\x75\x49\xfa\x50\xba\x62\x76\x00\x00\x50\xaa\x62\x77\x62\x78\x62\x79\x00\x00\x62\x7a\x62\x7b\x00\x00\x4c\xb6\x5d\xe1\x00\x00\x4b\xd2\x00\x00\x5d\xe3\x5d\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xe5\x00\x00\x00\x00\x00\x00\x54\xed\x00\x00\x00\x00\x5d\xe4\x4c\x60\x59\x95\x59\xf4\x5b\x94\x4f\x77\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x89\x5d\xe7\x5d\xe6\x00\x00\x48\xa1\x57\x73\x00\x00\x5d\xe8\x00\x00\x4c\xbc\x4e\xc9\x51\xbc\x51\xa3\x4a\x62\x5d\xe9\x00\x00\x51\xa9\x52\xaf\x4f\x55\x00\x00\x00\x00\x58\x7e\x00\x00\x00\x00\x00\x00\x5d\xea\x55\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x7d\x00\x00\x00\x00\x00\x00\x5d\xeb\x00\x00\x4b\xb7\x5a\xb9\x00\x00\x4a\x9e\x00\x00\x00\x00\x5d\xec\x5a\xc8\x58\x75\x53\x84\x00\x00\x5d\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xee\x00\x00\x5d\xef\x51\x8b\x56\xd4\x58\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x88\x51\xa0\x00\x00\x5d\xf0\x00\x00\x00\x00\x56\x86\x00\x00\x5d\xf1\x00\x00\x56\x87\x59\xfd\x00\x00\x00\x00\x00\x00\x4c\xf3\x00\x00\x00\x00\x5d\xf2\x48\xae\x58\x56\x00\x00\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xf3\x00\x00\x00\x00\x62\x64\x00\x00\x00\x00\x51\x45\x00\x00\x00\x00\x6b\xbe\x00\x00\x00\x00\x6b\xbf\x6b\xc0\x52\xd0\x00\x00\x54\xb7\x59\x84\x00\x00\x00\x00\x58\xda\x59\x65\x4e\xae\x4d\x6d\x00\x00\x68\x95\x00\x00\x00\x00\x4a\xc5\x5a\x5a\x6b\xc1\x4a\x9c\x00\x00\x00\x00\x6b\xc2\x00\x00\x00\x00\x4b\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x8b\x6b\xa6\x59\x49\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xa8\x00\x00\x00\x00\x00\x00\x6b\xa7\x00\x00\x00\x00\x51\x84\x50\xd6\x00\x00\x49\x42\x00\x00\x00\x00\x00\x00\x00\x00\x57\xec\x00\x00", /* 9700 */ "\x58\xe7\x6b\xaa\x00\x00\x00\x00\x58\x97\x00\x00\x6b\xa9\x5b\x91\x6b\xab\x52\x59\x00\x00\x00\x00\x00\x00\x4e\x95\x6b\xad\x6b\xac\x00\x00\x00\x00\x00\x00\x52\xdd\x00\x00\x00\x00\x51\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x4a\x00\x00\x58\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xae\x00\x00\x00\x00\x6b\xaf\x00\x00\x00\x00\x6b\xb0\x00\x00\x51\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xd3\x53\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x81\x6b\xa5\x00\x00\x00\x00\x4f\xb7\x00\x00\x00\x00\x4f\xb1\x00\x00\x4b\x86\x00\x00\x00\x00\x4c\x67\x00\x00\x50\x5f\x52\x72\x52\x87\x00\x00\x00\x00\x5c\xcb\x00\x00\x00\x00\x00\x00\x4c\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x9a\x59\x45\x00\x00\x48\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x50\x00\x00\x00\x00\x00\x00", /* 9780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xab\x00\x00\x48\xaf\x00\x00\x00\x00\x00\x00\x6c\x52\x6c\x53\x00\x00\x6c\x54\x00\x00\x00\x00\x00\x00\x54\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xce\x00\x00\x00\x00\x6c\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x56\x00\x00\x49\x7e\x00\x00\x6c\x55\x00\x00\x00\x00\x6c\x58\x00\x00\x6c\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa3\x54\xcc\x00\x00\x4d\xaa\x64\xb7\x64\xb8\x64\xb9\x4f\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xf3\x00\x00\x5a\xce\x55\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb2\x4b\xa4\x54\x8b\x69\x9d\x58\x8f\x56\x53\x58\xea\x64\x90\x57\x88\x4d\x6b\x4b\xd8", /* 9880 */ "\x69\x9e\x48\xe3\x56\x6c\x69\x9f\x5a\xa3\x51\xac\x51\x8d\x53\xc3\x4f\xb0\x69\xa0\x4e\xd4\x00\x00\x69\xa1\x69\xa2\x00\x00\x69\xa3\x59\xc2\x53\xb4\x00\x00\x57\x67\x69\xa4\x00\x00\x5a\x51\x50\x65\x56\xe1\x00\x00\x69\xa5\x69\xa6\x59\x75\x4b\xed\x69\xa7\x69\xa8\x4b\x7f\x69\xa9\x69\xaa\x00\x00\x49\xfb\x69\xab\x69\xac\x54\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x88\x00\x00\x00\x00\x66\xa8\x66\xa9\x66\xaa\x00\x00\x66\xab\x00\x00\x00\x00\x53\xad\x66\xac\x66\xad\x00\x00\x00\x00\x00\x00\x4c\x69\x55\xb2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xb7\x6c\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x70\x00\x00\x00\x00\x49\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x73\x6c\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xba\x00\x00\x4e\xa1\x00\x00\x61\xbb\x61\xbc\x61\xbd\x61\xbe\x61\xbf\x61\xc0\x4c\x59\x59\xfa\x4f\x44\x55\xcd\x49\x45\x56\x67\x00\x00\x61\xc1\x4b\xfb\x54\xc3\x61\xc2\x00\x00\x00\x00\x4f\x68\x00\x00\x49\x9e\x61\xc3\x00\x00\x4b\xf5", /* 9980 */ "\x61\xc4\x52\xd8\x00\x00\x00\x00\x61\xc5\x58\x7a\x4d\x7d\x61\xc6\x50\xa0\x00\x00\x61\xc7\x49\xf5\x00\x00\x61\xc8\x00\x00\x51\x94\x61\xc9\x61\xca\x51\xf7\x61\xcb\x61\xcc\x61\xcd\x55\xd6\x5c\xb7\x5d\x86\x58\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\xa4\x00\x00\x00\x00\x5e\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xec\x5a\xa5\x57\x74\x59\x51\x4a\x7b\x54\x9e\x00\x00\x49\xb4\x51\xbe\x63\xdf\x55\xba\x63\xe0\x63\xe1\x4f\xd3\x63\xe2\x5c\x44\x57\x75\x63\xe4\x4e\xdc\x63\xe3", /* 9a80 */ "\x63\xe5\x63\xe6\x51\xed\x00\x00\x4f\x5e\x63\xe7\x51\xe5\x4d\xa6\x63\xe8\x00\x00\x63\xe9\x4a\x72\x59\x8a\x00\x00\x00\x00\x50\x45\x63\xea\x53\xee\x63\xeb\x63\xec\x00\x00\x00\x00\x63\xed\x53\xac\x63\xee\x00\x00\x55\x47\x63\xef\x63\xf0\x63\xf1\x63\x59\x63\xf2\x63\xf3\x51\xe1\x63\xf4\x63\xf5\x5b\xe7\x63\xf6\x00\x00\x63\xf7\x4d\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x5b\x6c\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x5e\x6c\x5c\x4d\xa0\x00\x00\x6c\x5f\x00\x00\x6c\x60\x00\x00\x00\x00\x00\x00\x6c\x62\x6c\x61\x6c\x64\x00\x00\x00\x00\x6c\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x65\x6c\x66\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x67\x00\x00\x56\x89\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x74\x00\x00\x6c\x75\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x76\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x78\x00\x00\x6c\x7a\x00\x00\x6c\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7b\x00\x00\x6c\x79\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x5c\x77\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7d\x00\x00\x00\x00\x00\x00\x6c\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x7f\x00\x00\x00\x00\x00\x00\x6c\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6b\x00\x00\x00\x00\x5c\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x98\x4d\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x50\x9e\x4e\x8b\x6c\x69\x53\xc6\x6c\x68\x00\x00\x6c\x6a\x6c\x6c\x6c\x6b\x00\x00\x00\x00\x00\x00\x6c\x6d\x00\x00\x57\xb9\x00\x00\x6c\x6e\x00\x00\x00\x00\x52\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9b80 */ NULL, /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x84\x00\x00\x00\x00\x6b\xce", /* 9c80 */ "\x00\x00\x51\xb2\x6b\xcf\x00\x00\x00\x00\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\x00\x00\x00\x00\x6b\xd5\x00\x00\x49\x4b\x6b\xd6\x00\x00\x6b\xd7\x6b\xd8\x6b\xd9\x00\x00\x6b\xda\x6b\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xdc\x6b\xdd\x58\x6a\x00\x00\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x50\xef\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x00\x00\x6b\xe9\x00\x00\x6b\xea\x6b\xeb\x00\x00\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x4f\xa7\x00\x00\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xf9\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\x00\x00\x00\x00\x6b\xfc\x6b\xfd\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\x00\x00\x00\x00\x6c\x46\x6c\x47\x6c\x48\x49\x8f\x6c\x49\x6c\x4a\x6c\x4b\x00\x00\x00\x00\x6c\x4c\x6c\x4d\x51\x7b\x6c\x4e\x00\x00\x00\x00\x6c\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\xf0\x68\xae\x4e\xa5\x68\xaf\x52\x9a\x00\x00\x53\x58\x59\x5b\x00\x00\x68\xb0\x68\xb1\x68\xb2\x68\xb3\x68\xb4\x59\x5c\x00\x00\x59\x8d\x00\x00\x68\xb6\x68\xb5\x5a\xa6\x00\x00\x57\x72\x68\xb7\x68\xb9\x68\xb8\x68\xba\x68\xbb\x00\x00\x00\x00\x4c\xea\x68\xbc\x4d\xe7\x00\x00\x68\xbd\x68\xbe\x4f\xe8\x68\xbf\x4b\xeb\x68\xc0\x68\xc1\x68\xc2\x68\xc3\x54\xb4\x68\xc4\x68\xc5\x00\x00\x68\xc6\x53\x95\x00\x00\x68\xc7\x00\x00\x00\x00\x00\x00\x68\xc8\x00\x00\x68\xc9\x6c\x5d\x00\x00\x68\xca\x68\xcb\x68\xcc\x00\x00\x68\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x68\xce\x4d\xd6\x00\x00\x68\xcf\x68\xd0\x68\xd1\x68\xd2\x68\xd3\x68\xd4\x68\xd5\x68\xd7\x00\x00\x00\x00\x5a\x45\x68\xd6\x00\x00\x68\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x5a\x51\xb8", /* 9e80 */ "\x00\x00\x00\x00\x6c\x85\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x86\x6c\x87\x00\x00\x00\x00\x6c\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x89\x51\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x8b\x00\x00\x6c\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xef\x00\x00\x00\x00\x00\x00\x6a\xee\x00\x00\x00\x00\x51\xe8\x00\x00\x6c\x82\x6c\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x66\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x85\x00\x00\x00\x00\x00\x00\x55\xf1\x50\xe7\x68\xa3\x00\x00\x4d\xd9\x00\x00\x00\x00\x54\x4d\x00\x00\x00\x00\x00\x00\x52\xab\x00\x00\x00\x00\x6c\x8d\x6c\x8e\x6c\x8f\x00\x00\x6c\x91\x6c\x90\x00\x00\x6c\x92\x00\x00\x00\x00\x6c\x95\x00\x00\x6c\x94\x00\x00\x6c\x93\x6c\x96\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x8a\x00\x00\x67\x8b\x67\x8c\x00\x00\x6b\xbb\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xbc\x00\x00\x6b\xbd\x4b\xa5\x00\x00\x5c\xbd\x00\x00\x00\x00\x4d\x64\x00\x00\x00\x00\x00\x00\x5c\xba\x00\x00\x5e\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf2\x00\x00\x6c\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x99\x00\x00\x00\x00\x6c\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9c\x00\x00\x6c\x9b\x00\x00\x49\x67\x00\x00\x6c\x9d\x6c\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xea\x66\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x7d", /* 9f80 */ "\x6b\xb2\x00\x00\x00\x00\x6b\xb3\x51\x85\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x54\xa2\x6b\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x9b\x4d\x48\x67\x89\x00\x00\x00\x00\x00\x00\x4d\x8b\x5d\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1", /* e080 */ "\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85", /* e100 */ "\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48", /* e180 */ "\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9", /* e200 */ "\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d", /* e280 */ "\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50", /* e300 */ "\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1", /* e380 */ "\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95", /* e400 */ "\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58", /* e480 */ "\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9", /* e500 */ "\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d", /* e580 */ "\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60", /* e600 */ "\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1", /* e680 */ "\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5", /* e700 */ "\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5b\x44\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-837_P100-2000 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x21\x6a\x21\x6b\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\xf8\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x15\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x64\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x65\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x16\x30\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x36\x22\x27\x22\x28\x22\x11\x22\x0f\x22\x2a\x22\x29\x22\x08\x22\x37\x22\x1a\x22\xa5\x22\x25\x22\x20\x23\x12\x22\x99\x22\x2b\x22\x2e\x22\x61\x22\x4c\x22\x48\x22\x3d\x22\x1d\x00\x00\x22\x6e\x22\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x20\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x88\x24\x89\x24\x8a\x24\x8b\x24\x8c\x24\x8d\x24\x8e\x24\x8f\x24\x90\x24\x91\x24\x92\x24\x93\x24\x94\x24\x95\x24\x96\x24\x97\x24\x98\x24\x99\x24\x9a\x24\x9b\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x24\x7e\x24\x7f\x24\x80\x24\x81\x24\x82\x24\x83\x24\x84\x24\x85\x24\x86\x24\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x20\x32\x21\x32\x22\x32\x23\x32\x24\x32\x25\x32\x26\x32\x27\x32\x28\x32\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xe1\x01\xce\x00\xe0\x01\x13\x00\xe9\x01\x1b\x00\xe8\x01\x2b\x00\xed\x01\xd0\x00\xec\x01\x4d\x00\xf3\x01\xd2\x00\xf2\x01\x6b\x00\xfa\x01\xd4\x00\xf9\x01\xd6\x01\xd8\x01\xda\x01\xdc\x00\xfc\x00\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f", /* 4680 */ "\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x25\x01\x25\x02\x25\x03\x25\x04\x25\x05\x25\x06\x25\x07\x25\x08\x25\x09\x25\x0a\x25\x0b\x25\x0c\x25\x0d\x25\x0e\x25\x0f\x25\x10\x25\x11\x25\x12\x25\x13\x25\x14\x25\x15\x25\x16\x25\x17\x25\x18\x25\x19\x25\x1a\x25\x1b\x25\x1c\x25\x1d\x25\x1e\x25\x1f\x25\x20\x25\x21\x25\x22\x25\x23\x25\x24\x25\x25\x25\x26\x25\x27\x25\x28\x25\x29\x25\x2a\x25\x2b\x25\x2c\x25\x2d\x25\x2e\x25\x2f\x25\x30\x25\x31\x25\x32\x25\x33\x25\x34\x25\x35\x25\x36\x25\x37\x25\x38\x25\x39\x25\x3a\x25\x3b\x25\x3c\x25\x3d\x25\x3e\x25\x3f\x25\x40\x25\x41\x25\x42\x25\x43\x25\x44\x25\x45\x25\x46\x25\x47\x25\x48\x25\x49\x25\x4a\x25\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x4a\x96\x3f\x57\xc3\x63\x28\x54\xce\x55\x09\x54\xc0\x76\x91\x76\x4c\x85\x3c\x77\xee\x82\x7e\x78\x8d\x72\x31\x96\x98\x97\x8d\x6c\x28\x5b\x89\x4f\xfa\x63\x09\x66\x97\x5c\xb8\x80\xfa\x68\x48\x80\xae\x66\x02\x76\xce\x51\xf9\x65\x56\x71\xac\x7f\xf1\x88\x84\x50\xb2\x59\x65\x61\xca\x6f\xb3\x82\xad\x63\x4c\x62\x52\x53\xed\x54\x27\x7b\x06\x51\x6b\x75\xa4\x5d\xf4\x62\xd4\x8d\xcb\x97\x76\x62\x8a\x80\x19\x57\x5d\x97\x38\x7f\x62\x72\x38\x76\x7d\x67\xcf\x76\x7e\x64\x46\x4f\x70\x8d\x25\x62\xdc\x7a\x17\x65\x91\x73\xed\x64\x2c\x62\x73\x82\x2c\x98\x81\x67\x7f\x72\x48\x62\x6e\x62\xcc\x4f\x34\x74\xe3\x53\x4a\x52\x9e\x7e\xca\x90\xa6\x5e\x2e\x68\x86\x69\x9c\x81\x80\x7e\xd1\x68\xd2\x78\xc5\x86\x8c\x95\x51\x50\x8d\x8c\x24\x82\xde\x80\xde\x53\x05\x89\x12\x52\x65\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x84\x96\xf9\x4f\xdd\x58\x21\x99\x71\x5b\x9d\x62\xb1\x62\xa5\x66\xb4\x8c\x79\x9c\x8d\x72\x06\x67\x6f\x78\x91\x60\xb2\x53\x51\x53\x17\x8f\x88\x80\xcc\x8d\x1d\x94\xa1\x50\x0d\x72\xc8\x59\x07\x60\xeb\x71\x19\x88\xab\x59\x54\x82\xef\x67\x2c\x7b\x28\x5d\x29\x7e\xf7\x75\x2d\x6c\xf5\x8e\x66\x8f\xf8\x90\x3c\x9f\x3b\x6b\xd4\x91\x19\x7b\x14\x5f\x7c\x78\xa7\x84\xd6\x85\x3d\x6b\xd5\x6b\xd9\x6b\xd6\x5e\x01\x5e\x87\x75\xf9\x95\xed\x65\x5d\x5f\x0a\x5f\xc5\x8f\x9f\x58\xc1\x81\xc2\x90\x7f\x96\x5b\x97\xad\x8f\xb9", /* 4980 */ "\x00\x00\x7f\x16\x8d\x2c\x62\x41\x4f\xbf\x53\xd8\x53\x5e\x8f\xa8\x8f\xa9\x8f\xab\x90\x4d\x68\x07\x5f\x6a\x81\x98\x88\x68\x9c\xd6\x61\x8b\x52\x2b\x76\x2a\x5f\x6c\x65\x8c\x6f\xd2\x6e\xe8\x5b\xbe\x64\x48\x51\x75\x51\xb0\x67\xc4\x4e\x19\x79\xc9\x99\x7c\x70\xb3\x75\xc5\x5e\x76\x73\xbb\x83\xe0\x64\xad\x62\xe8\x94\xb5\x6c\xe2\x53\x5a\x52\xc3\x64\x0f\x94\xc2\x7b\x94\x4f\x2f\x5e\x1b\x82\x36\x81\x16\x81\x8a\x6e\x24\x6c\xca\x9a\x73\x63\x55\x53\x5c\x54\xfa\x88\x65\x57\xe0\x4e\x0d\x5e\x03\x6b\x65\x7c\x3f\x90\xe8\x60\x16\x64\xe6\x73\x1c\x88\xc1\x67\x50\x62\x4d\x8d\x22\x77\x6c\x8e\x29\x91\xc7\x5f\x69\x83\xdc\x85\x21\x99\x10\x53\xc2\x86\x95\x6b\x8b\x60\xed\x60\xe8\x70\x7f\x82\xcd\x82\x31\x4e\xd3\x6c\xa7\x85\xcf\x64\xcd\x7c\xd9\x69\xfd\x66\xf9\x83\x49\x53\x95\x7b\x56\x4f\xa7\x51\x8c\x6d\x4b\x5c\x42\x8e\x6d\x63\xd2\x53\xc9\x83\x2c\x83\x36\x67\xe5\x78\xb4\x64\x3d\x5b\xdf\x5c\x94\x5d\xee\x8b\xe7\x62\xc6\x67\xf4\x8c\x7a\x64\x00\x63\xba\x87\x49\x99\x8b\x8c\x17\x7f\x20\x94\xf2\x4e\xa7\x96\x10\x98\xa4\x66\x0c\x73\x16\x00\x00\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x3a\x5c\x1d\x5e\x38\x95\x7f\x50\x7f\x80\xa0\x53\x82\x65\x5e\x75\x45\x55\x31\x50\x21\x8d\x85\x62\x84\x94\x9e\x67\x1d\x56\x32\x6f\x6e\x5d\xe2\x54\x35\x70\x92\x8f\x66\x62\x6f\x64\xa4\x63\xa3\x5f\x7b\x6f\x88\x90\xf4\x81\xe3\x8f\xb0\x5c\x18\x66\x68\x5f\xf1\x6c\x89\x96\x48\x8d\x81\x88\x6c\x64\x91\x79\xf0\x57\xce\x6a\x59\x62\x10\x54\x48\x4e\x58\x7a\x0b\x60\xe9\x6f\x84\x8b\xda\x62\x7f\x90\x1e\x9a\x8b\x79\xe4\x54\x03\x75\xf4\x63\x01\x53\x19\x6c\x60\x8f\xdf\x5f\x1b\x9a\x70\x80\x3b\x9f\x7f\x4f\x88\x5c\x3a", /* 4a80 */ "\x00\x00\x8d\x64\x7f\xc5\x65\xa5\x70\xbd\x51\x45\x51\xb2\x86\x6b\x5d\x07\x5b\xa0\x62\xbd\x91\x6c\x75\x74\x8e\x0c\x7a\x20\x61\x01\x7b\x79\x4e\xc7\x7e\xf8\x77\x85\x4e\x11\x81\xed\x52\x1d\x51\xfa\x6a\x71\x53\xa8\x8e\x87\x95\x04\x96\xcf\x6e\xc1\x96\x64\x69\x5a\x78\x40\x50\xa8\x77\xd7\x64\x10\x89\xe6\x59\x04\x63\xe3\x5d\xdd\x7a\x7f\x69\x3d\x4f\x20\x82\x39\x55\x98\x4e\x32\x75\xae\x7a\x97\x5e\x62\x5e\x8a\x95\xef\x52\x1b\x54\x39\x70\x8a\x63\x76\x95\x24\x57\x82\x66\x25\x69\x3f\x91\x87\x55\x07\x6d\xf3\x7e\xaf\x88\x22\x62\x33\x7e\xf0\x75\xb5\x83\x28\x78\xc1\x96\xcc\x8f\x9e\x61\x48\x74\xf7\x8b\xcd\x6b\x64\x52\x3a\x8d\x50\x6b\x21\x80\x6a\x84\x71\x56\xf1\x53\x06\x4e\xce\x4e\x1b\x51\xd1\x7c\x97\x91\x8b\x7c\x07\x4f\xc3\x8e\x7f\x7b\xe1\x7a\x9c\x64\x67\x5d\x14\x50\xac\x81\x06\x76\x01\x7c\xb9\x6d\xec\x7f\xe0\x67\x51\x5b\x58\x5b\xf8\x78\xcb\x64\xae\x64\x13\x63\xaa\x63\x2b\x95\x19\x64\x2d\x8f\xbe\x7b\x54\x76\x29\x62\x53\x59\x27\x54\x46\x6b\x79\x50\xa3\x62\x34\x5e\x26\x6b\x86\x4e\xe3\x8d\x37\x88\x8b\x5f\x85\x90\x2e\x00\x00\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x20\x80\x3d\x62\xc5\x4e\x39\x53\x55\x90\xf8\x63\xb8\x80\xc6\x65\xe6\x6c\x2e\x4f\x46\x60\xee\x6d\xe1\x8b\xde\x5f\x39\x86\xcb\x5f\x53\x63\x21\x51\x5a\x83\x61\x68\x63\x52\x00\x63\x63\x8e\x48\x50\x12\x5c\x9b\x79\x77\x5b\xfc\x52\x30\x7a\x3b\x60\xbc\x90\x53\x76\xd7\x5f\xb7\x5f\x97\x76\x84\x8e\x6c\x70\x6f\x76\x7b\x7b\x49\x77\xaa\x51\xf3\x90\x93\x58\x24\x4f\x4e\x6e\xf4\x8f\xea\x65\x4c\x7b\x1b\x72\xc4\x6d\xa4\x7f\xdf\x5a\xe1\x62\xb5\x5e\x95\x57\x30\x84\x82\x7b\x2c\x5e\x1d\x5f\x1f\x90\x12\x7f\x14\x98\xa0", /* 4b80 */ "\x00\x00\x63\x82\x6e\xc7\x78\x98\x70\xb9\x51\x78\x97\x5b\x57\xab\x75\x35\x4f\x43\x75\x38\x5e\x97\x60\xe6\x59\x60\x6d\xc0\x6b\xbf\x78\x89\x53\xfc\x96\xd5\x51\xcb\x52\x01\x63\x89\x54\x0a\x94\x93\x8c\x03\x8d\xcc\x72\x39\x78\x9f\x87\x76\x8f\xed\x8c\x0d\x53\xe0\x4e\x01\x76\xef\x53\xee\x94\x89\x98\x76\x9f\x0e\x95\x2d\x5b\x9a\x8b\xa2\x4e\x22\x4e\x1c\x51\xac\x84\x63\x61\xc2\x52\xa8\x68\x0b\x4f\x97\x60\x6b\x51\xbb\x6d\x1e\x51\x5c\x62\x96\x65\x97\x96\x61\x8c\x46\x90\x17\x75\xd8\x90\xfd\x77\x63\x6b\xd2\x72\x8a\x72\xec\x8b\xfb\x58\x35\x77\x79\x8d\x4c\x67\x5c\x95\x40\x80\x9a\x5e\xa6\x6e\x21\x59\x92\x7a\xef\x77\xed\x95\x3b\x6b\xb5\x65\xad\x7f\x0e\x58\x06\x51\x51\x96\x1f\x5b\xf9\x58\xa9\x54\x28\x8e\x72\x65\x66\x98\x7f\x56\xe4\x94\x9d\x76\xfe\x90\x41\x63\x87\x54\xc6\x59\x1a\x59\x3a\x57\x9b\x8e\xb2\x67\x35\x8d\xfa\x82\x35\x52\x41\x60\xf0\x58\x15\x86\xfe\x5c\xe8\x9e\x45\x4f\xc4\x98\x9d\x8b\xb9\x5a\x25\x60\x76\x53\x84\x62\x7c\x90\x4f\x91\x02\x99\x7f\x60\x69\x80\x0c\x51\x3f\x80\x33\x5c\x14\x99\x75\x6d\x31\x4e\x8c\x00\x00\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x30\x53\xd1\x7f\x5a\x7b\x4f\x4f\x10\x4e\x4f\x96\x00\x6c\xd5\x73\xd0\x85\xe9\x5e\x06\x75\x6a\x7f\xfb\x6a\x0a\x77\xfe\x94\x92\x7e\x41\x51\xe1\x70\xe6\x53\xcd\x8f\xd4\x83\x03\x8d\x29\x72\xaf\x99\x6d\x6c\xdb\x57\x4a\x82\xb3\x65\xb9\x80\xaa\x62\x3f\x96\x32\x59\xa8\x4e\xff\x8b\xbf\x7e\xba\x65\x3e\x83\xf2\x97\x5e\x55\x61\x98\xde\x80\xa5\x53\x2a\x8b\xfd\x54\x20\x80\xba\x5e\x9f\x6c\xb8\x8d\x39\x82\xac\x91\x5a\x54\x29\x6c\x1b\x52\x06\x7e\xb7\x57\x5f\x71\x1a\x6c\x7e\x7c\x89\x59\x4b\x4e\xfd\x5f\xff\x61\x24", /* 4c80 */ "\x00\x00\x7c\xaa\x4e\x30\x5c\x01\x67\xab\x87\x02\x5c\xf0\x95\x0b\x98\xce\x75\xaf\x70\xfd\x90\x22\x51\xaf\x7f\x1d\x8b\xbd\x59\x49\x51\xe4\x4f\x5b\x54\x26\x59\x2b\x65\x77\x80\xa4\x5b\x75\x62\x76\x62\xc2\x8f\x90\x5e\x45\x6c\x1f\x7b\x26\x4f\x0f\x4f\xd8\x67\x0d\x6d\x6e\x6d\xaa\x79\x8f\x88\xb1\x5f\x17\x75\x2b\x62\x9a\x8f\x85\x4f\xef\x91\xdc\x65\xa7\x81\x2f\x81\x51\x5e\x9c\x81\x50\x8d\x74\x52\x6f\x89\x86\x8d\x4b\x59\x0d\x50\x85\x4e\xd8\x96\x1c\x72\x36\x81\x79\x8d\x1f\x5b\xcc\x8b\xa3\x96\x44\x59\x87\x7f\x1a\x54\x90\x56\x76\x56\x0e\x8b\xe5\x65\x39\x69\x82\x94\x99\x76\xd6\x6e\x89\x5e\x72\x75\x18\x67\x46\x67\xd1\x7a\xff\x80\x9d\x8d\x76\x61\x1f\x79\xc6\x65\x62\x8d\x63\x51\x88\x52\x1a\x94\xa2\x7f\x38\x80\x9b\x7e\xb2\x5c\x97\x6e\x2f\x67\x60\x7b\xd9\x76\x8b\x9a\xd8\x81\x8f\x7f\x94\x7c\xd5\x64\x1e\x95\x50\x7a\x3f\x54\x4a\x54\xe5\x6b\x4c\x64\x01\x62\x08\x9e\x3d\x80\xf3\x75\x99\x52\x72\x97\x69\x84\x5b\x68\x3c\x86\xe4\x96\x01\x96\x94\x94\xec\x4e\x2a\x54\x04\x7e\xd9\x68\x39\x8d\xdf\x80\x15\x66\xf4\x5e\x9a\x7f\xb9\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x80\x3f\x68\x97\x5d\xe5\x65\x3b\x52\x9f\x60\x6d\x9f\x9a\x4f\x9b\x8e\xac\x51\x6c\x5b\xab\x5f\x13\x5d\xe9\x6c\x5e\x62\xf1\x8d\x21\x51\x71\x94\xa9\x52\xfe\x6c\x9f\x82\xdf\x72\xd7\x57\xa2\x67\x84\x8d\x2d\x59\x1f\x8f\x9c\x83\xc7\x54\x95\x7b\x8d\x4f\x30\x6c\xbd\x5b\x64\x59\xd1\x9f\x13\x53\xe4\x86\xca\x9a\xa8\x8c\x37\x80\xa1\x65\x45\x98\x7e\x56\xfa\x96\xc7\x52\x2e\x74\xdc\x52\x50\x5b\xe1\x63\x02\x89\x02\x4e\x56\x62\xd0\x60\x2a\x68\xfa\x51\x73\x5b\x98\x51\xa0\x89\xc2\x7b\xa1\x99\x86\x7f\x50\x60\xef", /* 4d80 */ "\x00\x00\x70\x4c\x8d\x2f\x51\x49\x5e\x7f\x90\x1b\x74\x70\x89\xc4\x57\x2d\x78\x45\x5f\x52\x9f\x9f\x95\xfa\x8f\x68\x9b\x3c\x8b\xe1\x76\x78\x68\x42\x67\xdc\x8d\xea\x8d\x35\x52\x3d\x8f\x8a\x6e\xda\x68\xcd\x95\x05\x90\xed\x56\xfd\x67\x9c\x88\xf9\x8f\xc7\x54\xc8\x9a\xb8\x5b\x69\x6d\x77\x6c\x26\x4e\xa5\x5b\xb3\x9a\x87\x91\x63\x61\xa8\x90\xaf\x97\xe9\x54\x2b\x6d\xb5\x5b\xd2\x51\xfd\x55\x8a\x7f\x55\x7f\xf0\x64\xbc\x63\x4d\x65\xf1\x61\xbe\x60\x8d\x71\x0a\x6c\x57\x6c\x49\x59\x2f\x67\x6d\x82\x2a\x58\xd5\x56\x8e\x8c\x6a\x6b\xeb\x90\xdd\x59\x7d\x80\x17\x53\xf7\x6d\x69\x54\x75\x55\x9d\x83\x77\x83\xcf\x68\x38\x79\xbe\x54\x8c\x4f\x55\x54\x08\x76\xd2\x8c\x89\x96\x02\x6c\xb3\x6d\xb8\x8d\x6b\x89\x10\x9e\x64\x8d\x3a\x56\x3f\x9e\xd1\x75\xd5\x5f\x88\x72\xe0\x60\x68\x54\xfc\x4e\xa8\x6a\x2a\x88\x61\x60\x52\x8f\x70\x54\xc4\x70\xd8\x86\x79\x9e\x3f\x6d\x2a\x5b\x8f\x5f\x18\x7e\xa2\x55\x89\x4f\xaf\x73\x34\x54\x3c\x53\x9a\x50\x19\x54\x0e\x54\x7c\x4e\x4e\x5f\xfd\x74\x5a\x58\xf6\x84\x6b\x80\xe1\x87\x74\x72\xd0\x7c\xca\x6e\x56\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x27\x86\x4e\x55\x2c\x62\xa4\x4e\x92\x6c\xaa\x62\x37\x82\xb1\x54\xd7\x53\x4e\x73\x3e\x6e\xd1\x75\x3b\x52\x12\x53\x16\x8b\xdd\x69\xd0\x5f\x8a\x60\x00\x6d\xee\x57\x4f\x6b\x22\x73\xaf\x68\x53\x8f\xd8\x7f\x13\x63\x62\x60\xa3\x55\x24\x75\xea\x8c\x62\x71\x15\x6d\xa3\x5b\xa6\x5e\x7b\x83\x52\x61\x4c\x9e\xc4\x78\xfa\x87\x57\x7c\x27\x76\x87\x51\xf0\x60\xf6\x71\x4c\x66\x43\x5e\x4c\x60\x4d\x8c\x0e\x70\x70\x63\x25\x8f\x89\x5f\xbd\x60\x62\x86\xd4\x56\xde\x6b\xc1\x60\x94\x61\x67\x53\x49\x60\xe0\x66\x66\x8d\x3f", /* 4e80 */ "\x00\x00\x79\xfd\x4f\x1a\x70\xe9\x6c\x47\x8b\xb3\x8b\xf2\x7e\xd8\x83\x64\x66\x0f\x5a\x5a\x9b\x42\x6d\x51\x6d\xf7\x8c\x41\x6d\x3b\x4f\x19\x70\x6b\x83\xb7\x62\x16\x60\xd1\x97\x0d\x8d\x27\x79\x78\x51\xfb\x57\x3e\x57\xfa\x67\x3a\x75\x78\x7a\x3d\x79\xef\x7b\x95\x80\x8c\x99\x65\x8f\xf9\x6f\xc0\x8b\xa5\x9e\x21\x59\xec\x7e\xe9\x7f\x09\x54\x09\x67\x81\x68\xd8\x8f\x91\x7c\x4d\x96\xc6\x53\xca\x60\x25\x75\xbe\x6c\x72\x53\x73\x5a\xc9\x7e\xa7\x63\x24\x51\xe0\x81\x0a\x5d\xf1\x84\xdf\x62\x80\x51\x80\x5b\x63\x4f\x0e\x79\x6d\x52\x42\x60\xb8\x6d\x4e\x5b\xc4\x5b\xc2\x8b\xa1\x8b\xb0\x65\xe2\x5f\xcc\x96\x45\x59\x93\x7e\xe7\x7e\xaa\x56\x09\x67\xb7\x59\x39\x4f\x73\x5b\xb6\x52\xa0\x83\x5a\x98\x8a\x8d\x3e\x75\x32\x94\xbe\x50\x47\x7a\x3c\x4e\xf7\x67\xb6\x9a\x7e\x5a\xc1\x6b\x7c\x76\xd1\x57\x5a\x5c\x16\x7b\x3a\x95\xf4\x71\x4e\x51\x7c\x80\xa9\x82\x70\x59\x78\x7f\x04\x83\x27\x68\xc0\x67\xec\x78\xb1\x78\x77\x62\xe3\x63\x61\x7b\x80\x4f\xed\x52\x6a\x51\xcf\x83\x50\x69\xdb\x92\x74\x8d\xf5\x8d\x31\x89\xc1\x95\x2e\x7b\xad\x4e\xf6\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x65\x82\x30\x52\x51\x99\x6f\x6e\x10\x6e\x85\x6d\xa7\x5e\xfa\x50\xf5\x59\xdc\x5c\x06\x6d\x46\x6c\x5f\x75\x86\x84\x8b\x68\x68\x59\x56\x8b\xb2\x53\x20\x91\x71\x96\x4d\x85\x49\x69\x12\x79\x01\x71\x26\x80\xf6\x4e\xa4\x90\xca\x6d\x47\x9a\x84\x5a\x07\x56\xbc\x64\x05\x94\xf0\x77\xeb\x4f\xa5\x81\x1a\x72\xe1\x89\xd2\x99\x7a\x7f\x34\x7e\xde\x52\x7f\x65\x59\x91\x75\x8f\x7f\x8f\x83\x53\xeb\x7a\x96\x63\xed\x63\xa5\x76\x86\x79\xf8\x88\x57\x96\x36\x62\x2a\x52\xab\x82\x82\x68\x54\x67\x70\x63\x77\x77\x6b\x7a\xed", /* 4f80 */ "\x00\x00\x6d\x01\x7e\xd3\x89\xe3\x59\xd0\x62\x12\x85\xc9\x82\xa5\x75\x4c\x50\x1f\x4e\xcb\x75\xa5\x8b\xeb\x5c\x4a\x5d\xfe\x7b\x4b\x65\xa4\x91\xd1\x4e\xca\x6d\x25\x89\x5f\x7d\x27\x95\x26\x4e\xc5\x8c\x28\x8f\xdb\x97\x73\x66\x4b\x79\x81\x8f\xd1\x70\xec\x6d\x78\x5c\x3d\x52\xb2\x83\x46\x51\x62\x83\x0e\x77\x5b\x66\x76\x9c\xb8\x4e\xac\x60\xca\x7c\xbe\x7c\xb3\x7e\xcf\x4e\x95\x8b\x66\x66\x6f\x98\x88\x97\x59\x58\x83\x65\x6c\x95\x5c\x5f\x84\x75\xc9\x97\x56\x7a\xdf\x7a\xde\x51\xc0\x70\xaf\x7a\x98\x63\xea\x7a\x76\x7e\xa0\x73\x96\x97\xed\x4e\x45\x70\x78\x4e\x5d\x91\x52\x53\xa9\x65\x51\x65\xe7\x81\xfc\x82\x05\x54\x8e\x5c\x31\x75\x9a\x97\xa0\x62\xd8\x72\xd9\x75\xbd\x5c\x45\x9a\x79\x83\xca\x5c\x40\x54\x80\x77\xe9\x4e\x3e\x6c\xae\x80\x5a\x62\xd2\x63\x6e\x5d\xe8\x51\x77\x8d\xdd\x8e\x1e\x95\x2f\x4f\xf1\x53\xe5\x60\xe7\x70\xac\x52\x67\x63\x50\x9e\x43\x5a\x1f\x50\x26\x77\x37\x53\x77\x7e\xe2\x64\x85\x65\x2b\x62\x89\x63\x98\x50\x14\x72\x35\x89\xc9\x51\xb3\x8b\xc0\x7e\xdd\x57\x47\x83\xcc\x94\xa7\x51\x9b\x54\x1b\x5c\xfb\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x7a\xe3\x6d\x5a\x90\xe1\x9a\x8f\x55\x80\x54\x96\x53\x61\x54\xaf\x5f\x00\x63\xe9\x69\x77\x51\xef\x61\x68\x52\x0a\x58\x2a\x52\xd8\x57\x4e\x78\x0d\x77\x0b\x5e\xb7\x61\x77\x7c\xe0\x62\x5b\x62\x97\x4e\xa2\x70\x95\x80\x03\x62\xf7\x70\xe4\x97\x60\x57\x77\x82\xdb\x67\xef\x68\xf5\x78\xd5\x98\x97\x79\xd1\x58\xf3\x54\xb3\x53\xef\x6e\x34\x51\x4b\x52\x3b\x5b\xa2\x8b\xfe\x80\xaf\x55\x43\x57\xa6\x60\x73\x57\x51\x54\x2d\x7a\x7a\x60\x50\x5b\x54\x63\xa7\x62\xa0\x53\xe3\x62\x63\x5b\xc7\x67\xaf\x54\xed\x7a\x9f", /* 5080 */ "\x00\x00\x82\xe6\x91\x77\x5e\x93\x88\xe4\x59\x38\x57\xae\x63\x0e\x8d\xe8\x80\xef\x57\x57\x7b\x77\x4f\xa9\x5f\xeb\x5b\xbd\x6b\x3e\x53\x21\x7b\x50\x72\xc2\x68\x46\x77\xff\x77\x36\x65\xf7\x51\xb5\x4e\x8f\x76\xd4\x5c\xbf\x7a\xa5\x84\x75\x59\x4e\x9b\x41\x50\x80\x99\x88\x61\x27\x6e\x83\x57\x64\x66\x06\x63\x46\x56\xf0\x62\xec\x62\x69\x5e\xd3\x96\x14\x57\x83\x62\xc9\x55\x87\x87\x21\x81\x4a\x8f\xa3\x55\x66\x83\xb1\x67\x65\x8d\x56\x84\xdd\x5a\x6a\x68\x0f\x62\xe6\x7b\xee\x96\x11\x51\x70\x6f\x9c\x8c\x30\x63\xfd\x89\xc8\x61\xd2\x7f\x06\x70\xc2\x6e\xe5\x74\x05\x69\x94\x72\xfc\x5e\xca\x90\xce\x67\x17\x6d\x6a\x63\x5e\x52\xb3\x72\x62\x80\x01\x4f\x6c\x59\xe5\x91\x6a\x70\xd9\x6d\x9d\x52\xd2\x4e\x50\x96\xf7\x95\x6d\x85\x7e\x78\xca\x7d\x2f\x51\x21\x57\x92\x64\xc2\x80\x8b\x7c\x7b\x6c\xea\x68\xf1\x69\x5e\x51\xb7\x53\x98\x68\xa8\x72\x81\x9e\xce\x7b\xf1\x72\xf8\x79\xbb\x6f\x13\x74\x06\x67\x4e\x91\xcc\x9c\xa4\x79\x3c\x83\x89\x83\x54\x54\x0f\x68\x17\x4e\x3d\x53\x89\x52\xb1\x78\x3e\x53\x86\x52\x29\x50\x88\x4f\x8b\x4f\xd0\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe2\x7a\xcb\x7c\x92\x6c\xa5\x96\xb6\x52\x9b\x74\x83\x54\xe9\x4f\xe9\x80\x54\x83\xb2\x8f\xde\x95\x70\x5e\xc9\x60\x1c\x6d\x9f\x5e\x18\x65\x5b\x81\x38\x94\xfe\x60\x4b\x70\xbc\x7e\xc3\x7c\xae\x51\xc9\x68\x81\x7c\xb1\x82\x6f\x4e\x24\x8f\x86\x91\xcf\x66\x7e\x4e\xae\x8c\x05\x64\xa9\x80\x4a\x50\xda\x75\x97\x71\xce\x5b\xe5\x8f\xbd\x6f\x66\x4e\x86\x64\x82\x95\x63\x5e\xd6\x65\x99\x52\x17\x88\xc2\x70\xc8\x52\xa3\x73\x0e\x74\x33\x67\x97\x78\xf7\x97\x16\x4e\x34\x90\xbb\x9c\xde\x6d\xcb\x51\xdb\x8d\x41\x54\x1d", /* 5180 */ "\x00\x00\x62\xce\x73\xb2\x83\xf1\x96\xf6\x9f\x84\x94\xc3\x4f\x36\x7f\x9a\x51\xcc\x70\x75\x96\x75\x5c\xad\x98\x86\x53\xe6\x4e\xe4\x6e\x9c\x74\x09\x69\xb4\x78\x6b\x99\x8f\x75\x59\x52\x18\x76\x24\x6d\x41\x67\xf3\x51\x6d\x9f\x99\x80\x4b\x54\x99\x7b\x3c\x7a\xbf\x96\x86\x57\x84\x62\xe2\x96\x47\x69\x7c\x5a\x04\x64\x02\x7b\xd3\x6f\x0f\x96\x4b\x82\xa6\x53\x62\x98\x85\x5e\x90\x70\x89\x63\xb3\x53\x64\x86\x4f\x9c\x81\x9e\x93\x78\x8c\x97\x32\x8d\xef\x8d\x42\x9e\x7f\x6f\x5e\x79\x84\x5f\x55\x96\x46\x62\x2e\x9a\x74\x54\x15\x94\xdd\x4f\xa3\x65\xc5\x5c\x65\x5c\x61\x7f\x15\x86\x51\x6c\x2f\x5f\x8b\x73\x87\x6e\xe4\x7e\xff\x5c\xe6\x63\x1b\x5b\x6a\x6e\xe6\x53\x75\x4e\x71\x63\xa0\x75\x65\x62\xa1\x8f\x6e\x4f\x26\x4e\xd1\x6c\xa6\x7e\xb6\x8b\xba\x84\x1d\x87\xba\x7f\x57\x90\x3b\x95\x23\x7b\xa9\x9a\xa1\x88\xf8\x84\x3d\x6d\x1b\x9a\x86\x7e\xdc\x59\x88\x9e\xbb\x73\x9b\x78\x01\x86\x82\x9a\x6c\x9a\x82\x56\x1b\x54\x17\x57\xcb\x4e\x70\x9e\xa6\x53\x56\x8f\xc8\x81\x09\x77\x92\x99\x92\x86\xee\x6e\xe1\x85\x13\x66\xfc\x61\x62\x6f\x2b\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x29\x82\x92\x83\x2b\x76\xf2\x6c\x13\x5f\xd9\x83\xbd\x73\x2b\x83\x05\x95\x1a\x6b\xdb\x77\xdb\x94\xc6\x53\x6f\x83\x02\x51\x92\x5e\x3d\x8c\x8c\x8d\x38\x4e\x48\x73\xab\x67\x9a\x68\x85\x91\x76\x97\x09\x71\x64\x6c\xa1\x77\x09\x5a\x92\x95\x41\x6b\xcf\x7f\x8e\x66\x27\x5b\xd0\x59\xb9\x5a\x9a\x95\xe8\x95\xf7\x4e\xec\x84\x0c\x84\x99\x6a\xac\x76\xdf\x95\x30\x73\x1b\x68\xa6\x5b\x5f\x77\x2f\x91\x9a\x97\x61\x7c\xdc\x8f\xf7\x8c\x1c\x5f\x25\x7c\x73\x79\xd8\x89\xc5\x6c\xcc\x87\x1c\x5b\xc6\x5e\x42\x68\xc9\x77\x20", /* 5280 */ "\x00\x00\x7e\xf5\x51\x95\x51\x4d\x52\xc9\x5a\x29\x7f\x05\x97\x62\x82\xd7\x63\xcf\x77\x84\x85\xd0\x79\xd2\x6e\x3a\x5e\x99\x59\x99\x85\x11\x70\x6d\x6c\x11\x62\xbf\x76\xbf\x65\x4f\x60\xaf\x95\xfd\x66\x0e\x87\x9f\x9e\x23\x94\xed\x54\x0d\x54\x7d\x8c\x2c\x64\x78\x64\x79\x86\x11\x6a\x21\x81\x9c\x78\xe8\x64\x69\x9b\x54\x62\xb9\x67\x2b\x83\xab\x58\xa8\x9e\xd8\x6c\xab\x6f\x20\x5b\xde\x96\x4c\x8c\x0b\x72\x5f\x67\xd0\x62\xc7\x72\x61\x4e\xa9\x59\xc6\x6b\xcd\x58\x93\x66\xae\x5e\x55\x52\xdf\x61\x55\x67\x28\x76\xee\x77\x66\x72\x67\x7a\x46\x62\xff\x54\xea\x54\x50\x94\xa0\x90\xa3\x5a\x1c\x7e\xb3\x6c\x16\x4e\x43\x59\x76\x80\x10\x59\x48\x53\x57\x75\x37\x96\xbe\x56\xca\x63\x20\x81\x11\x60\x7c\x95\xf9\x6d\xd6\x54\x62\x99\x81\x51\x85\x5a\xe9\x80\xfd\x59\xae\x97\x13\x50\x2a\x6c\xe5\x5c\x3c\x62\xdf\x4f\x60\x53\x3f\x81\x7b\x90\x06\x6e\xba\x85\x2b\x62\xc8\x5e\x74\x78\xbe\x64\xb5\x63\x7b\x5f\xf5\x5a\x18\x91\x7f\x9e\x1f\x5c\x3f\x63\x4f\x80\x42\x5b\x7d\x55\x6e\x95\x4a\x95\x4d\x6d\x85\x60\xa8\x67\xe0\x72\xde\x51\xdd\x5b\x81\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe7\x6c\xde\x72\x5b\x62\x6d\x94\xae\x7e\xbd\x81\x13\x6d\x53\x51\x9c\x5f\x04\x59\x74\x52\xaa\x60\x12\x59\x73\x66\x96\x86\x50\x75\x9f\x63\x2a\x61\xe6\x7c\xef\x8b\xfa\x54\xe6\x6b\x27\x9e\x25\x6b\xb4\x85\xd5\x54\x55\x50\x76\x6c\xa4\x55\x6a\x8d\xb4\x72\x2c\x5e\x15\x60\x15\x74\x36\x62\xcd\x63\x92\x72\x4c\x5f\x98\x6e\x43\x6d\x3e\x65\x00\x6f\x58\x76\xd8\x78\xd0\x76\xfc\x75\x54\x52\x24\x53\xdb\x4e\x53\x5e\x9e\x65\xc1\x80\x2a\x80\xd6\x62\x9b\x54\x86\x52\x28\x70\xae\x88\x8d\x8d\xd1\x6c\xe1\x54\x78\x80\xda", /* 5380 */ "\x00\x00\x57\xf9\x88\xf4\x8d\x54\x96\x6a\x91\x4d\x4f\x69\x6c\x9b\x55\xb7\x76\xc6\x78\x30\x62\xa8\x70\xf9\x6f\x8e\x5f\x6d\x84\xec\x68\xda\x78\x7c\x7b\xf7\x81\xa8\x67\x0b\x9e\x4f\x63\x67\x78\xb0\x57\x6f\x78\x12\x97\x39\x62\x79\x62\xab\x52\x88\x74\x35\x6b\xd7\x55\x64\x81\x3e\x75\xb2\x76\xae\x53\x39\x75\xde\x50\xfb\x5c\x41\x8b\x6c\x7b\xc7\x50\x4f\x72\x47\x9a\x97\x98\xd8\x6f\x02\x74\xe2\x79\x68\x64\x87\x77\xa5\x62\xfc\x98\x91\x8d\x2b\x54\xc1\x80\x58\x4e\x52\x57\x6a\x82\xf9\x84\x0d\x5e\x73\x51\xed\x74\xf6\x8b\xc4\x5c\x4f\x57\x61\x6c\xfc\x98\x87\x5a\x46\x78\x34\x9b\x44\x8f\xeb\x7c\x95\x52\x56\x62\x51\x94\xfa\x4e\xc6\x83\x86\x84\x61\x83\xe9\x84\xb2\x57\xd4\x67\x34\x57\x03\x66\x6e\x6d\x66\x8c\x31\x66\xdd\x70\x11\x67\x1f\x6b\x3a\x68\x16\x62\x1a\x59\xbb\x4e\x03\x51\xc4\x6f\x06\x67\xd2\x6c\x8f\x51\x76\x68\xcb\x59\x47\x6b\x67\x75\x66\x5d\x0e\x81\x10\x9f\x50\x65\xd7\x79\x48\x79\x41\x9a\x91\x8d\x77\x5c\x82\x4e\x5e\x4f\x01\x54\x2f\x59\x51\x78\x0c\x56\x68\x6c\x14\x8f\xc4\x5f\x03\x6c\x7d\x6c\xe3\x8b\xab\x63\x90\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x70\x6d\x3d\x72\x75\x62\x66\x94\x8e\x94\xc5\x53\x43\x8f\xc1\x7b\x7e\x4e\xdf\x8c\x26\x4e\x7e\x9e\xd4\x94\xb1\x94\xb3\x52\x4d\x6f\x5c\x90\x63\x6d\x45\x8c\x34\x58\x11\x5d\x4c\x6b\x20\x6b\x49\x67\xaa\x54\x5b\x81\x54\x7f\x8c\x58\x99\x85\x37\x5f\x3a\x62\xa2\x6a\x47\x95\x39\x65\x72\x60\x84\x68\x65\x77\xa7\x4e\x54\x4f\xa8\x5d\xe7\x97\x98\x64\xac\x7f\xd8\x5c\xed\x4f\xcf\x7a\x8d\x52\x07\x83\x04\x4e\x14\x60\x2f\x7a\x83\x94\xa6\x4f\xb5\x4e\xb2\x79\xe6\x74\x34\x52\xe4\x82\xb9\x64\xd2\x79\xbd\x5b\xdd\x6c\x81", /* 5480 */ "\x00\x00\x97\x52\x8f\x7b\x6c\x22\x50\x3e\x53\x7f\x6e\x05\x64\xce\x66\x74\x6c\x30\x60\xc5\x98\x77\x8b\xf7\x5e\x86\x74\x3c\x7a\x77\x79\xcb\x4e\x18\x90\xb1\x74\x03\x6c\x42\x56\xda\x91\x4b\x6c\xc5\x8d\x8b\x53\x3a\x86\xc6\x66\xf2\x8e\xaf\x5c\x48\x9a\x71\x6e\x20\x53\xd6\x5a\x36\x9f\x8b\x8d\xa3\x53\xbb\x57\x08\x98\xa7\x67\x43\x91\x9b\x6c\xc9\x51\x68\x75\xca\x62\xf3\x72\xac\x52\x38\x52\x9d\x7f\x3a\x70\x94\x76\x38\x53\x74\x9e\x4a\x69\xb7\x78\x6e\x96\xc0\x88\xd9\x7f\xa4\x71\x36\x71\xc3\x51\x89\x67\xd3\x74\xe4\x58\xe4\x65\x18\x56\xb7\x8b\xa9\x99\x76\x62\x70\x7e\xd5\x60\xf9\x70\xed\x58\xec\x4e\xc1\x4e\xba\x5f\xcd\x97\xe7\x4e\xfb\x8b\xa4\x52\x03\x59\x8a\x7e\xab\x62\x54\x4e\xcd\x65\xe5\x62\x0e\x83\x38\x84\xc9\x83\x63\x87\x8d\x71\x94\x6e\xb6\x5b\xb9\x7e\xd2\x51\x97\x63\xc9\x67\xd4\x80\x89\x83\x39\x88\x15\x51\x12\x5b\x7a\x59\x82\x8f\xb1\x4e\x73\x6c\x5d\x51\x65\x89\x25\x8f\x6f\x96\x2e\x85\x4a\x74\x5e\x95\x10\x95\xf0\x6d\xa6\x82\xe5\x5f\x31\x64\x92\x6d\x12\x84\x28\x81\x6e\x9c\xc3\x58\x5e\x8d\x5b\x4e\x09\x53\xc1\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x1e\x65\x63\x68\x51\x55\xd3\x4e\x27\x64\x14\x9a\x9a\x62\x6b\x5a\xc2\x74\x5f\x82\x72\x6d\xa9\x68\xee\x50\xe7\x83\x8e\x78\x02\x67\x40\x52\x39\x6c\x99\x7e\xb1\x50\xbb\x55\x65\x71\x5e\x7b\x5b\x66\x52\x73\xca\x82\xeb\x67\x49\x5c\x71\x52\x20\x71\x7d\x88\x6b\x95\xea\x96\x55\x64\xc5\x8d\x61\x81\xb3\x55\x84\x6c\x55\x62\x47\x7f\x2e\x58\x92\x4f\x24\x55\x46\x8d\x4f\x66\x4c\x4e\x0a\x5c\x1a\x88\xf3\x68\xa2\x63\x4e\x7a\x0d\x70\xe7\x82\x8d\x52\xfa\x97\xf6\x5c\x11\x54\xe8\x90\xb5\x7e\xcd\x59\x62\x8d\x4a\x86\xc7", /* 5580 */ "\x00\x00\x82\x0c\x82\x0d\x8d\x66\x64\x44\x5c\x04\x61\x51\x6d\x89\x79\x3e\x8b\xbe\x78\x37\x75\x33\x54\x7b\x4f\x38\x8e\xab\x6d\xf1\x5a\x20\x7e\xc5\x79\x5e\x6c\x88\x5b\xa1\x5a\x76\x75\x1a\x80\xbe\x61\x4e\x6e\x17\x58\xf0\x75\x1f\x75\x25\x72\x72\x53\x47\x7e\xf3\x77\x01\x76\xdb\x52\x69\x80\xdc\x57\x23\x5e\x08\x59\x31\x72\xee\x65\xbd\x6e\x7f\x8b\xd7\x5c\x38\x86\x71\x53\x41\x77\xf3\x62\xfe\x65\xf6\x4e\xc0\x98\xdf\x86\x80\x5b\x9e\x8b\xc6\x53\xf2\x77\xe2\x4f\x7f\x5c\x4e\x9a\x76\x59\xcb\x5f\x0f\x79\x3a\x58\xeb\x4e\x16\x67\xff\x4e\x8b\x62\xed\x8a\x93\x90\x1d\x52\xbf\x66\x2f\x55\xdc\x56\x6c\x90\x02\x4e\xd5\x4f\x8d\x91\xca\x99\x70\x6c\x0f\x5e\x02\x60\x43\x5b\xa4\x89\xc6\x8b\xd5\x65\x36\x62\x4b\x99\x96\x5b\x88\x5b\xff\x63\x88\x55\x2e\x53\xd7\x76\x26\x51\x7d\x85\x2c\x67\xa2\x68\xb3\x6b\x8a\x62\x92\x8f\x93\x53\xd4\x82\x12\x6d\xd1\x75\x8f\x4e\x66\x8d\x4e\x5b\x70\x71\x9f\x85\xaf\x66\x91\x66\xd9\x7f\x72\x87\x00\x9e\xcd\x9f\x20\x5c\x5e\x67\x2f\x8f\xf0\x68\x11\x67\x5f\x62\x0d\x7a\xd6\x58\x85\x5e\xb6\x65\x70\x6f\x31\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x55\x52\x37\x80\x0d\x64\x54\x88\x70\x75\x29\x5e\x05\x68\x13\x62\xf4\x97\x1c\x53\xcc\x72\x3d\x8c\x01\x6c\x34\x77\x61\x7a\x0e\x54\x2e\x77\xac\x98\x7a\x82\x1c\x8b\xf4\x78\x55\x67\x14\x70\xc1\x65\xaf\x64\x95\x56\x36\x60\x1d\x79\xc1\x53\xf8\x4e\x1d\x6b\x7b\x80\x86\x5b\xfa\x55\xe3\x56\xdb\x4f\x3a\x4f\x3c\x99\x72\x5d\xf3\x67\x7e\x80\x38\x60\x02\x98\x82\x90\x01\x5b\x8b\x8b\xbc\x8b\xf5\x64\x1c\x82\x58\x64\xde\x55\xfd\x82\xcf\x91\x65\x4f\xd7\x7d\x20\x90\x1f\x7c\x9f\x50\xf3\x58\x51\x6e\xaf\x5b\xbf\x8b\xc9", /* 5680 */ "\x00\x00\x80\x83\x91\x78\x84\x9c\x7b\x97\x86\x7d\x96\x8b\x96\x8f\x7e\xe5\x9a\xd3\x78\x8e\x5c\x81\x7a\x57\x90\x42\x96\xa7\x79\x5f\x5b\x59\x63\x5f\x7b\x0b\x84\xd1\x68\xad\x55\x06\x7f\x29\x74\x10\x7d\x22\x95\x01\x62\x40\x58\x4c\x4e\xd6\x5b\x83\x59\x79\x58\x54\x73\x6d\x63\x1e\x8e\x4b\x8e\x0f\x80\xce\x82\xd4\x62\xac\x53\xf0\x6c\xf0\x91\x5e\x59\x2a\x60\x01\x6c\x70\x57\x4d\x64\x4a\x8d\x2a\x76\x2b\x6e\xe9\x57\x5b\x6a\x80\x75\xf0\x6f\x6d\x8c\x2d\x8c\x08\x57\x66\x6b\xef\x88\x92\x78\xb3\x63\xa2\x53\xf9\x70\xad\x6c\x64\x58\x58\x64\x2a\x58\x02\x68\xe0\x81\x9b\x55\x10\x7c\xd6\x50\x18\x8e\xba\x6d\xcc\x8d\x9f\x70\xeb\x63\x8f\x6d\x9b\x6e\xd4\x7e\xe6\x84\x04\x68\x43\x90\x03\x6d\xd8\x96\x76\x8b\xa8\x59\x57\x72\x79\x85\xe4\x81\x7e\x75\xbc\x8a\x8a\x68\xaf\x52\x54\x8e\x22\x95\x11\x63\xd0\x98\x98\x8e\x44\x55\x7c\x4f\x53\x66\xff\x56\x8f\x60\xd5\x6d\x95\x52\x43\x5c\x49\x59\x29\x6d\xfb\x58\x6b\x75\x30\x75\x1c\x60\x6c\x82\x14\x81\x46\x63\x11\x67\x61\x8f\xe2\x77\x3a\x8d\xf3\x8d\x34\x94\xc1\x5e\x16\x53\x85\x54\x2c\x70\xc3\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x40\x5e\xf7\x50\x5c\x4e\xad\x5e\xad\x63\x3a\x82\x47\x90\x1a\x68\x50\x91\x6e\x77\xb3\x54\x0c\x94\xdc\x5f\x64\x7a\xe5\x68\x76\x63\x45\x7b\x52\x7e\xdf\x75\xdb\x50\x77\x62\x95\x59\x34\x90\x0f\x51\xf8\x79\xc3\x7a\x81\x56\xfe\x5f\x92\x90\x14\x6d\x82\x5c\x60\x57\x1f\x54\x10\x51\x54\x6e\x4d\x56\xe2\x63\xa8\x98\x93\x81\x7f\x87\x15\x89\x2a\x90\x00\x54\x1e\x5c\x6f\x81\xc0\x62\xd6\x62\x58\x81\x31\x9e\x35\x96\x40\x9a\x6e\x9a\x7c\x69\x2d\x59\xa5\x62\xd3\x55\x3e\x63\x16\x54\xc7\x86\xd9\x6d\x3c\x5a\x03\x74\xe6", /* 5780 */ "\x00\x00\x88\x9c\x6b\x6a\x59\x16\x8c\x4c\x5f\x2f\x6e\x7e\x73\xa9\x98\x7d\x4e\x38\x70\xf7\x5b\x8c\x78\x97\x63\x3d\x66\x5a\x76\x96\x60\xcb\x5b\x9b\x5a\x49\x4e\x07\x81\x55\x6c\x6a\x73\x8b\x4e\xa1\x67\x89\x7f\x51\x5f\x80\x65\xfa\x67\x1b\x5f\xd8\x59\x84\x5a\x01\x5d\xcd\x5f\xae\x53\x71\x97\xe6\x8f\xdd\x68\x45\x56\xf4\x55\x2f\x60\xdf\x4e\x3a\x6f\x4d\x7e\xf4\x82\xc7\x84\x0e\x59\xd4\x4f\x1f\x4f\x2a\x5c\x3e\x7e\xac\x67\x2a\x85\x1a\x54\x73\x75\x4f\x80\xc3\x55\x82\x9b\x4f\x4f\x4d\x6e\x2d\x8c\x13\x5c\x09\x61\x70\x53\x6b\x76\x1f\x6e\x29\x86\x8a\x65\x87\x95\xfb\x7e\xb9\x54\x3b\x7a\x33\x7d\x0a\x95\xee\x55\xe1\x7f\xc1\x74\xee\x63\x1d\x87\x17\x6d\xa1\x7a\x9d\x62\x11\x65\xa1\x53\x67\x63\xe1\x6c\x83\x5d\xeb\x54\x5c\x94\xa8\x4e\x4c\x6c\x61\x8b\xec\x5c\x4b\x65\xe0\x82\x9c\x68\xa7\x54\x3e\x54\x34\x6b\xcb\x6b\x66\x4e\x94\x63\x42\x53\x48\x82\x1e\x4f\x0d\x4f\xae\x57\x5e\x62\x0a\x96\xfe\x66\x64\x72\x69\x52\xff\x52\xa1\x60\x9f\x8b\xef\x66\x14\x71\x99\x67\x90\x89\x7f\x78\x52\x77\xfd\x66\x70\x56\x3b\x54\x38\x95\x21\x72\x7a\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x60\x6f\x5e\x0c\x60\x89\x81\x9d\x59\x15\x60\xdc\x71\x84\x70\xef\x6e\xaa\x6c\x50\x72\x80\x6a\x84\x88\xad\x5e\x2d\x4e\x60\x5a\xb3\x55\x9c\x94\xe3\x6d\x17\x7c\xfb\x96\x99\x62\x0f\x7e\xc6\x77\x8e\x86\x7e\x53\x23\x97\x1e\x8f\x96\x66\x87\x5c\xe1\x4f\xa0\x72\xed\x4e\x0b\x53\xa6\x59\x0f\x54\x13\x63\x80\x95\x28\x51\x48\x4e\xd9\x9c\x9c\x7e\xa4\x54\xb8\x8d\x24\x88\x54\x82\x37\x95\xf2\x6d\x8e\x5f\x26\x5a\xcc\x66\x3e\x96\x69\x73\xb0\x73\x2e\x53\xbf\x81\x7a\x99\x85\x7f\xa1\x5b\xaa\x96\x77\x96\x50\x7e\xbf", /* 5880 */ "\x00\x00\x76\xf8\x53\xa2\x95\x76\x99\x99\x7b\xb1\x89\x44\x6e\x58\x4e\x61\x7f\xd4\x79\x65\x8b\xe6\x60\xf3\x54\xcd\x4e\xab\x98\x79\x5d\xf7\x6a\x61\x50\xcf\x54\x11\x8c\x61\x84\x27\x78\x5d\x97\x04\x52\x4a\x54\xee\x56\xa3\x95\x00\x6d\x88\x5b\xb5\x6d\xc6\x66\x53\x5c\x0f\x5b\x5d\x68\x21\x80\x96\x55\x78\x7b\x11\x65\x48\x69\x54\x4e\x9b\x6b\x47\x87\x4e\x97\x8b\x53\x4f\x63\x1f\x64\x3a\x90\xaa\x65\x9c\x80\xc1\x8c\x10\x51\x99\x68\xb0\x53\x78\x87\xf9\x61\xc8\x6c\xc4\x6c\xfb\x8c\x22\x5c\x51\x85\xaa\x82\xaf\x95\x0c\x6b\x23\x8f\x9b\x65\xb0\x5f\xfb\x5f\xc3\x4f\xe1\x88\x45\x66\x1f\x81\x65\x73\x29\x60\xfa\x51\x74\x52\x11\x57\x8b\x5f\x62\x90\xa2\x88\x4c\x91\x92\x5e\x78\x67\x4f\x60\x27\x59\xd3\x51\x44\x51\xf6\x80\xf8\x53\x08\x6c\x79\x96\xc4\x71\x8a\x4f\x11\x4f\xee\x7f\x9e\x67\x3d\x55\xc5\x95\x08\x79\xc0\x88\x96\x7e\xe3\x58\x9f\x62\x0c\x97\x00\x86\x5a\x56\x18\x98\x7b\x5f\x90\x8b\xb8\x84\xc4\x91\x57\x53\xd9\x65\xed\x5e\x8f\x75\x5c\x60\x64\x7d\x6e\x5a\x7f\x7e\xea\x7e\xed\x8f\x69\x55\xa7\x5b\xa3\x60\xac\x65\xcb\x73\x84\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x09\x76\x63\x77\x29\x7e\xda\x97\x74\x85\x9b\x5b\x66\x7a\x74\x96\xea\x88\x40\x52\xcb\x71\x8f\x5f\xaa\x65\xec\x8b\xe2\x5b\xfb\x9a\x6f\x5d\xe1\x6b\x89\x6c\x5b\x8b\xad\x8b\xaf\x90\x0a\x8f\xc5\x53\x8b\x62\xbc\x9e\x26\x9e\x2d\x54\x40\x4e\x2b\x82\xbd\x72\x59\x86\x9c\x5d\x16\x88\x59\x6d\xaf\x96\xc5\x54\xd1\x4e\x9a\x8b\xb6\x71\x09\x54\xbd\x96\x09\x70\xdf\x6d\xf9\x76\xd0\x4e\x25\x78\x14\x87\x12\x5c\xa9\x5e\xf6\x8a\x00\x98\x9c\x96\x0e\x70\x8e\x6c\xbf\x59\x44\x63\xa9\x77\x3c\x88\x4d\x6f\x14\x82\x73\x58\x30", /* 5980 */ "\x00\x00\x71\xd5\x53\x8c\x78\x1a\x96\xc1\x55\x01\x5f\x66\x71\x30\x5b\xb4\x8c\x1a\x9a\x8c\x6b\x83\x59\x2e\x9e\x2f\x79\xe7\x67\x68\x62\x6c\x4f\x6f\x75\xa1\x7f\x8a\x6d\x0b\x96\x33\x6c\x27\x4e\xf0\x75\xd2\x51\x7b\x68\x37\x6f\x3e\x90\x80\x81\x70\x59\x96\x74\x76\x64\x47\x5c\x27\x90\x65\x7a\x91\x8c\x23\x59\xda\x54\xac\x82\x00\x83\x6f\x89\x81\x80\x00\x69\x30\x56\x4e\x80\x36\x72\x37\x91\xce\x51\xb6\x4e\x5f\x98\x75\x63\x96\x4e\x1a\x53\xf6\x66\xf3\x81\x4b\x59\x1c\x6d\xb2\x4e\x00\x58\xf9\x53\x3b\x63\xd6\x94\xf1\x4f\x9d\x4f\x0a\x88\x63\x98\x90\x59\x37\x90\x57\x79\xfb\x4e\xea\x80\xf0\x75\x91\x6c\x82\x5b\x9c\x59\xe8\x5f\x5d\x69\x05\x86\x81\x50\x1a\x5d\xf2\x4e\x59\x77\xe3\x4e\xe5\x82\x7a\x62\x91\x66\x13\x90\x91\x5c\x79\x4e\xbf\x5f\x79\x81\xc6\x90\x38\x80\x84\x75\xab\x4e\xa6\x88\xd4\x61\x0f\x6b\xc5\x5f\xc6\x4e\x49\x76\xca\x6e\xa2\x8b\xe3\x8b\xae\x8c\x0a\x8b\xd1\x5f\x02\x7f\xfc\x7f\xcc\x7e\xce\x83\x35\x83\x6b\x56\xe0\x6b\xb7\x97\xf3\x96\x34\x59\xfb\x54\x1f\x94\xf6\x6d\xeb\x5b\xc5\x99\x6e\x5c\x39\x5f\x15\x96\x90\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x70\x82\xf1\x6a\x31\x5a\x74\x9e\x70\x5e\x94\x7f\x28\x83\xb9\x84\x24\x84\x25\x83\x67\x87\x47\x8f\xce\x8d\x62\x76\xc8\x5f\x71\x98\x96\x78\x6c\x66\x20\x54\xdf\x62\xe5\x4f\x63\x81\xc3\x75\xc8\x5e\xb8\x96\xcd\x8e\x0a\x86\xf9\x54\x8f\x6c\xf3\x6d\x8c\x6c\x38\x60\x7f\x52\xc7\x75\x28\x5e\x7d\x4f\x18\x60\xa0\x5f\xe7\x5c\x24\x75\x31\x90\xae\x94\xc0\x72\xb9\x6c\xb9\x6e\x38\x91\x49\x67\x09\x53\xcb\x53\xf3\x4f\x51\x91\xc9\x8b\xf1\x53\xc8\x5e\x7c\x8f\xc2\x6d\xe4\x4e\x8e\x76\xc2\x69\x86\x86\x5e\x61\x1a\x82\x06", /* 5a80 */ "\x00\x00\x4f\x59\x4f\xde\x90\x3e\x9c\x7c\x61\x09\x6e\x1d\x6e\x14\x96\x85\x4e\x88\x5a\x31\x96\xe8\x4e\x0e\x5c\x7f\x79\xb9\x5b\x87\x8b\xed\x7f\xbd\x73\x89\x57\xdf\x82\x8b\x90\xc1\x54\x01\x90\x47\x55\xbb\x5c\xea\x5f\xa1\x61\x08\x6b\x32\x72\xf1\x80\xb2\x8a\x89\x6d\x74\x5b\xd3\x88\xd5\x98\x84\x8c\x6b\x9a\x6d\x9e\x33\x6e\x0a\x51\xa4\x51\x43\x57\xa3\x88\x81\x53\x9f\x63\xf4\x8f\x95\x56\xed\x54\x58\x57\x06\x73\x3f\x6e\x90\x7f\x18\x8f\xdc\x82\xd1\x61\x3f\x60\x28\x96\x62\x66\xf0\x7e\xa6\x8d\x8a\x8d\xc3\x94\xa5\x5c\xb3\x7c\xa4\x67\x08\x60\xa6\x96\x05\x80\x18\x4e\x91\x90\xe7\x53\x00\x96\x68\x51\x41\x8f\xd0\x85\x74\x91\x5d\x66\x55\x97\xf5\x5b\x55\x53\x1d\x78\x38\x67\x42\x68\x3d\x54\xc9\x70\x7e\x5b\xb0\x8f\x7d\x51\x8d\x57\x28\x54\xb1\x65\x12\x66\x82\x8d\x5e\x8d\x43\x81\x0f\x84\x6c\x90\x6d\x7c\xdf\x51\xff\x85\xfb\x67\xa3\x65\xe9\x6f\xa1\x86\xa4\x8e\x81\x56\x6a\x90\x20\x76\x82\x70\x76\x71\xe5\x8d\x23\x62\xe9\x52\x19\x6c\xfd\x8d\x3c\x60\x0e\x58\x9e\x61\x8e\x66\xfe\x8d\x60\x62\x4e\x55\xb3\x6e\x23\x67\x2d\x8f\x67\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe1\x95\xf8\x77\x28\x68\x05\x69\xa8\x54\x8b\x4e\x4d\x70\xb8\x8b\xc8\x64\x58\x65\x8b\x5b\x85\x7a\x84\x50\x3a\x5b\xe8\x77\xbb\x6b\xe1\x8a\x79\x7c\x98\x6c\xbe\x76\xcf\x65\xa9\x8f\x97\x5d\x2d\x5c\x55\x86\x38\x68\x08\x53\x60\x62\x18\x7a\xd9\x6e\x5b\x7e\xfd\x6a\x1f\x7a\xe0\x5f\x70\x6f\x33\x5f\x20\x63\x8c\x6d\xa8\x67\x56\x4e\x08\x5e\x10\x8d\x26\x4e\xd7\x80\xc0\x76\x34\x96\x9c\x62\xdb\x66\x2d\x62\x7e\x6c\xbc\x8d\x75\x71\x67\x7f\x69\x51\x46\x80\x87\x53\xec\x90\x6e\x62\x98\x54\xf2\x86\xf0\x8f\x99\x80\x05", /* 5b80 */ "\x00\x00\x95\x17\x85\x17\x8f\xd9\x6d\x59\x73\xcd\x65\x9f\x77\x1f\x75\x04\x78\x27\x81\xfb\x8d\x1e\x94\x88\x4f\xa6\x67\x95\x75\xb9\x8b\xca\x97\x07\x63\x2f\x95\x47\x96\x35\x84\xb8\x63\x23\x77\x41\x5f\x81\x72\xf0\x4e\x89\x60\x14\x65\x74\x62\xef\x6b\x63\x65\x3f\x5e\x27\x75\xc7\x90\xd1\x8b\xc1\x82\x9d\x67\x9d\x65\x2f\x54\x31\x87\x18\x77\xe5\x80\xa2\x81\x02\x6c\x41\x4e\x4b\x7e\xc7\x80\x4c\x76\xf4\x69\x0d\x6b\x96\x62\x67\x50\x3c\x4f\x84\x57\x40\x63\x07\x6b\x62\x8d\xbe\x53\xea\x65\xe8\x7e\xb8\x5f\xd7\x63\x1a\x63\xb7\x81\xf3\x81\xf4\x7f\x6e\x5e\x1c\x5c\xd9\x52\x36\x66\x7a\x79\xe9\x7a\x1a\x8d\x28\x70\x99\x75\xd4\x6e\xde\x6c\xbb\x7a\x92\x4e\x2d\x76\xc5\x5f\xe0\x94\x9f\x88\x77\x7e\xc8\x79\xcd\x80\xbf\x91\xcd\x4e\xf2\x4f\x17\x82\x1f\x54\x68\x5d\xde\x6d\x32\x8b\xcc\x7c\xa5\x8f\x74\x80\x98\x5e\x1a\x54\x92\x76\xb1\x5b\x99\x66\x3c\x9a\xa4\x73\xe0\x68\x2a\x86\xdb\x67\x31\x73\x2a\x8b\xf8\x8b\xdb\x90\x10\x7a\xf9\x70\xdb\x71\x6e\x62\xc4\x77\xa9\x56\x31\x4e\x3b\x84\x57\x67\xf1\x52\xa9\x86\xc0\x8d\x2e\x94\xf8\x7b\x51\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x4f\x6c\xe8\x79\x5d\x9a\x7b\x62\x93\x72\x2a\x62\xfd\x4e\x13\x78\x16\x8f\x6c\x64\xb0\x8d\x5a\x7b\xc6\x68\x69\x5e\x84\x88\xc5\x59\x86\x64\x9e\x58\xee\x72\xb6\x69\x0e\x95\x25\x8f\xfd\x8d\x58\x57\x60\x7f\x00\x8c\x06\x51\xc6\x63\x49\x62\xd9\x53\x53\x68\x4c\x74\x22\x83\x01\x91\x4c\x55\x44\x77\x40\x70\x7c\x6d\x4a\x51\x79\x54\xa8\x8d\x44\x59\xff\x6e\xcb\x6d\xc4\x5b\x5c\x7d\x2b\x4e\xd4\x7c\x7d\x6e\xd3\x5b\x50\x81\xea\x6e\x0d\x5b\x57\x9b\x03\x68\xd5\x8e\x2a\x5b\x97\x7e\xfc\x60\x3b\x7e\xb5\x90\xb9\x8d\x70", /* 5c80 */ "\x00\x00\x59\x4f\x63\xcd\x79\xdf\x8d\xb3\x53\x52\x65\xcf\x79\x56\x8b\xc5\x96\x3b\x7e\xc4\x94\xbb\x7e\x82\x56\x34\x91\x89\x67\x00\x7f\x6a\x5c\x0a\x90\x75\x66\x28\x5d\xe6\x4f\x50\x67\xde\x50\x5a\x4f\x5c\x57\x50\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8d\x4e\x0c\x51\x40\x4e\x10\x5e\xff\x53\x45\x4e\x15\x4e\x98\x4e\x1e\x9b\x32\x5b\x6c\x56\x69\x4e\x28\x79\xba\x4e\x3f\x53\x15\x4e\x47\x59\x2d\x72\x3b\x53\x6e\x6c\x10\x56\xdf\x80\xe4\x99\x97\x6b\xd3\x77\x7e\x9f\x17\x4e\x36\x4e\x9f\x9f\x10\x4e\x5c\x4e\x69\x4e\x93\x82\x88\x5b\x5b\x55\x6c\x56\x0f\x4e\xc4\x53\x8d\x53\x9d\x53\xa3\x53\xa5\x53\xae\x97\x65\x8d\x5d\x53\x1a\x53\xf5\x53\x26\x53\x2e\x53\x3e\x8d\x5c\x53\x66\x53\x63\x52\x02\x52\x08\x52\x0e\x52\x2d\x52\x33\x52\x3f\x52\x40\x52\x4c\x52\x5e\x52\x61\x52\x5c\x84\xaf\x52\x7d\x52\x82\x52\x81\x52\x90\x52\x93\x51\x82\x7f\x54\x4e\xbb\x4e\xc3\x4e\xc9\x4e\xc2\x4e\xe8\x4e\xe1\x4e\xeb\x4e\xde\x4f\x1b\x4e\xf3\x4f\x22\x4f\x64\x4e\xf5\x4f\x25\x4f\x27\x4f\x09\x4f\x2b\x4f\x5e\x4f\x67\x65\x38\x4f\x5a\x4f\x5d\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x5f\x4f\x57\x4f\x32\x4f\x3d\x4f\x76\x4f\x74\x4f\x91\x4f\x89\x4f\x83\x4f\x8f\x4f\x7e\x4f\x7b\x4f\xaa\x4f\x7c\x4f\xac\x4f\x94\x4f\xe6\x4f\xe8\x4f\xea\x4f\xc5\x4f\xda\x4f\xe3\x4f\xdc\x4f\xd1\x4f\xdf\x4f\xf8\x50\x29\x50\x4c\x4f\xf3\x50\x2c\x50\x0f\x50\x2e\x50\x2d\x4f\xfe\x50\x1c\x50\x0c\x50\x25\x50\x28\x50\x7e\x50\x43\x50\x55\x50\x48\x50\x4e\x50\x6c\x50\x7b\x50\xa5\x50\xa7\x50\xa9\x50\xba\x50\xd6\x51\x06\x50\xed\x50\xec\x50\xe6\x50\xee\x51\x07\x51\x0b\x4e\xdd\x6c\x3d\x4f\x58\x4f\x65\x4f\xce\x9f\xa0", /* 5d80 */ "\x00\x00\x6c\x46\x7c\x74\x51\x6e\x5d\xfd\x9e\xc9\x99\x98\x51\x81\x59\x14\x52\xf9\x53\x0d\x8a\x07\x53\x10\x51\xeb\x59\x19\x51\x55\x4e\xa0\x51\x56\x4e\xb3\x88\x6e\x88\xa4\x4e\xb5\x81\x14\x88\xd2\x79\x80\x5b\x34\x88\x03\x7f\xb8\x51\xab\x51\xb1\x51\xbd\x51\xbc\x51\xc7\x51\x96\x51\xa2\x51\xa5\x8b\xa0\x8b\xa6\x8b\xa7\x8b\xaa\x8b\xb4\x8b\xb5\x8b\xb7\x8b\xc2\x8b\xc3\x8b\xcb\x8b\xcf\x8b\xce\x8b\xd2\x8b\xd3\x8b\xd4\x8b\xd6\x8b\xd8\x8b\xd9\x8b\xdc\x8b\xdf\x8b\xe0\x8b\xe4\x8b\xe8\x8b\xe9\x8b\xee\x8b\xf0\x8b\xf3\x8b\xf6\x8b\xf9\x8b\xfc\x8b\xff\x8c\x00\x8c\x02\x8c\x04\x8c\x07\x8c\x0c\x8c\x0f\x8c\x11\x8c\x12\x8c\x14\x8c\x15\x8c\x16\x8c\x19\x8c\x1b\x8c\x18\x8c\x1d\x8c\x1f\x8c\x20\x8c\x21\x8c\x25\x8c\x27\x8c\x2a\x8c\x2b\x8c\x2e\x8c\x2f\x8c\x32\x8c\x33\x8c\x35\x8c\x36\x53\x69\x53\x7a\x96\x1d\x96\x22\x96\x21\x96\x31\x96\x2a\x96\x3d\x96\x3c\x96\x42\x96\x49\x96\x54\x96\x5f\x96\x67\x96\x6c\x96\x72\x96\x74\x96\x88\x96\x8d\x96\x97\x96\xb0\x90\x97\x90\x9b\x90\x9d\x90\x99\x90\xac\x90\xa1\x90\xb4\x90\xb3\x90\xb6\x90\xba\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xb8\x90\xb0\x90\xcf\x90\xc5\x90\xbe\x90\xd0\x90\xc4\x90\xc7\x90\xd3\x90\xe6\x90\xe2\x90\xdc\x90\xd7\x90\xdb\x90\xeb\x90\xef\x90\xfe\x91\x04\x91\x22\x91\x1e\x91\x23\x91\x31\x91\x2f\x91\x39\x91\x43\x91\x46\x52\x0d\x59\x42\x52\xa2\x52\xac\x52\xad\x52\xbe\x54\xff\x52\xd0\x52\xd6\x52\xf0\x53\xdf\x71\xee\x77\xcd\x5e\xf4\x51\xf5\x51\xfc\x9b\x2f\x53\xb6\x5f\x01\x75\x5a\x5d\xef\x57\x4c\x57\xa9\x57\xa1\x58\x7e\x58\xbc\x58\xc5\x58\xd1\x57\x29\x57\x2c\x57\x2a\x57\x33\x57\x39\x57\x2e\x57\x2f\x57\x5c\x57\x3b", /* 5e80 */ "\x00\x00\x57\x42\x57\x69\x57\x85\x57\x6b\x57\x86\x57\x7c\x57\x7b\x57\x68\x57\x6d\x57\x76\x57\x73\x57\xad\x57\xa4\x57\x8c\x57\xb2\x57\xcf\x57\xa7\x57\xb4\x57\x93\x57\xa0\x57\xd5\x57\xd8\x57\xda\x57\xd9\x57\xd2\x57\xb8\x57\xf4\x57\xef\x57\xf8\x57\xe4\x57\xdd\x58\x0b\x58\x0d\x57\xfd\x57\xed\x58\x00\x58\x1e\x58\x19\x58\x44\x58\x20\x58\x65\x58\x6c\x58\x81\x58\x89\x58\x9a\x58\x80\x99\xa8\x9f\x19\x61\xff\x82\x79\x82\x7d\x82\x7f\x82\x8f\x82\x8a\x82\xa8\x82\x84\x82\x8e\x82\x91\x82\x97\x82\x99\x82\xab\x82\xb8\x82\xbe\x82\xb0\x82\xc8\x82\xca\x82\xe3\x82\x98\x82\xb7\x82\xae\x82\xcb\x82\xcc\x82\xc1\x82\xa9\x82\xb4\x82\xa1\x82\xaa\x82\x9f\x82\xc4\x82\xce\x82\xa4\x82\xe1\x83\x09\x82\xf7\x82\xe4\x83\x0f\x83\x07\x82\xdc\x82\xf4\x82\xd2\x82\xd8\x83\x0c\x82\xfb\x82\xd3\x83\x11\x83\x1a\x83\x06\x83\x14\x83\x15\x82\xe0\x82\xd5\x83\x1c\x83\x51\x83\x5b\x83\x5c\x83\x08\x83\x92\x83\x3c\x83\x34\x83\x31\x83\x9b\x83\x5e\x83\x2f\x83\x4f\x83\x47\x83\x43\x83\x5f\x83\x40\x83\x17\x83\x60\x83\x2d\x83\x3a\x83\x33\x83\x66\x83\x65\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x68\x83\x1b\x83\x69\x83\x6c\x83\x6a\x83\x6d\x83\x6e\x83\xb0\x83\x78\x83\xb3\x83\xb4\x83\xa0\x83\xaa\x83\x93\x83\x9c\x83\x85\x83\x7c\x83\xb6\x83\xa9\x83\x7d\x83\xb8\x83\x7b\x83\x98\x83\x9e\x83\xa8\x83\xba\x83\xbc\x83\xc1\x84\x01\x83\xe5\x83\xd8\x58\x07\x84\x18\x84\x0b\x83\xdd\x83\xfd\x83\xd6\x84\x1c\x84\x38\x84\x11\x84\x06\x83\xd4\x83\xdf\x84\x0f\x84\x03\x83\xf8\x83\xf9\x83\xea\x83\xc5\x83\xc0\x84\x26\x83\xf0\x83\xe1\x84\x5c\x84\x51\x84\x5a\x84\x59\x84\x73\x84\x87\x84\x88\x84\x7a\x84\x89\x84\x78", /* 5f80 */ "\x00\x00\x84\x3c\x84\x46\x84\x69\x84\x76\x84\x8c\x84\x8e\x84\x31\x84\x6d\x84\xc1\x84\xcd\x84\xd0\x84\xe6\x84\xbd\x84\xd3\x84\xca\x84\xbf\x84\xba\x84\xe0\x84\xa1\x84\xb9\x84\xb4\x84\x97\x84\xe5\x84\xe3\x85\x0c\x75\x0d\x85\x38\x84\xf0\x85\x39\x85\x1f\x85\x3a\x85\x56\x85\x3b\x84\xff\x84\xfc\x85\x59\x85\x48\x85\x68\x85\x64\x85\x5e\x85\x7a\x77\xa2\x85\x43\x85\x72\x85\x7b\x85\xa4\x85\xa8\x85\x87\x85\x8f\x85\x79\x85\xae\x85\x9c\x85\x85\x85\xb9\x85\xb7\x85\xb0\x85\xd3\x85\xc1\x85\xdc\x85\xff\x86\x27\x86\x05\x86\x29\x86\x16\x86\x3c\x5e\xfe\x5f\x08\x59\x3c\x59\x41\x80\x37\x59\x55\x59\x5a\x59\x58\x53\x0f\x5c\x22\x5c\x25\x5c\x2c\x5c\x34\x62\x4c\x62\x6a\x62\x9f\x62\xbb\x62\xca\x62\xda\x62\xd7\x62\xee\x63\x22\x62\xf6\x63\x39\x63\x4b\x63\x43\x63\xad\x63\xf6\x63\x71\x63\x7a\x63\x8e\x63\xb4\x63\x6d\x63\xac\x63\x8a\x63\x69\x63\xae\x63\xbc\x63\xf2\x63\xf8\x63\xe0\x63\xff\x63\xc4\x63\xde\x63\xce\x64\x52\x63\xc6\x63\xbe\x64\x45\x64\x41\x64\x0b\x64\x1b\x64\x20\x64\x0c\x64\x26\x64\x21\x64\x5e\x64\x84\x64\x6d\x64\x96\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7a\x64\xb7\x64\xb8\x64\x99\x64\xba\x64\xc0\x64\xd0\x64\xd7\x64\xe4\x64\xe2\x65\x09\x65\x25\x65\x2e\x5f\x0b\x5f\xd2\x75\x19\x5f\x11\x53\x5f\x53\xf1\x53\xfd\x53\xe9\x53\xe8\x53\xfb\x54\x12\x54\x16\x54\x06\x54\x4b\x54\x52\x54\x53\x54\x54\x54\x56\x54\x43\x54\x21\x54\x57\x54\x59\x54\x23\x54\x32\x54\x82\x54\x94\x54\x77\x54\x71\x54\x64\x54\x9a\x54\x9b\x54\x84\x54\x76\x54\x66\x54\x9d\x54\xd0\x54\xad\x54\xc2\x54\xb4\x54\xd2\x54\xa7\x54\xa6\x54\xd3\x54\xd4\x54\x72\x54\xa3\x54\xd5\x54\xbb\x54\xbf\x54\xcc", /* 6080 */ "\x00\x00\x54\xd9\x54\xda\x54\xdc\x54\xa9\x54\xaa\x54\xa4\x54\xdd\x54\xcf\x54\xde\x55\x1b\x54\xe7\x55\x20\x54\xfd\x55\x14\x54\xf3\x55\x22\x55\x23\x55\x0f\x55\x11\x55\x27\x55\x2a\x55\x67\x55\x8f\x55\xb5\x55\x49\x55\x6d\x55\x41\x55\x55\x55\x3f\x55\x50\x55\x3c\x55\x37\x55\x56\x55\x75\x55\x76\x55\x77\x55\x33\x55\x30\x55\x5c\x55\x8b\x55\xd2\x55\x83\x55\xb1\x55\xb9\x55\x88\x55\x81\x55\x9f\x55\x7e\x55\xd6\x55\x91\x55\x7b\x55\xdf\x55\xbd\x55\xbe\x55\x94\x55\x99\x55\xea\x55\xf7\x55\xc9\x56\x1f\x55\xd1\x55\xeb\x55\xec\x55\xd4\x55\xe6\x55\xdd\x55\xc4\x55\xef\x55\xe5\x55\xf2\x55\xf3\x55\xcc\x55\xcd\x55\xe8\x55\xf5\x55\xe4\x8f\x94\x56\x1e\x56\x08\x56\x0c\x56\x01\x56\x24\x56\x23\x55\xfe\x56\x00\x56\x27\x56\x2d\x56\x58\x56\x39\x56\x57\x56\x2c\x56\x4d\x56\x62\x56\x59\x56\x5c\x56\x4c\x56\x54\x56\x86\x56\x64\x56\x71\x56\x6b\x56\x7b\x56\x7c\x56\x85\x56\x93\x56\xaf\x56\xd4\x56\xd7\x56\xdd\x56\xe1\x56\xf5\x56\xeb\x56\xf9\x56\xff\x57\x04\x57\x0a\x57\x09\x57\x1c\x5e\x0f\x5e\x19\x5e\x14\x5e\x11\x5e\x31\x5e\x3b\x5e\x3c\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x37\x5e\x44\x5e\x54\x5e\x5b\x5e\x5e\x5e\x61\x5c\x8c\x5c\x7a\x5c\x8d\x5c\x90\x5c\x96\x5c\x88\x5c\x98\x5c\x99\x5c\x91\x5c\x9a\x5c\x9c\x5c\xb5\x5c\xa2\x5c\xbd\x5c\xac\x5c\xab\x5c\xb1\x5c\xa3\x5c\xc1\x5c\xb7\x5c\xc4\x5c\xd2\x5c\xe4\x5c\xcb\x5c\xe5\x5d\x02\x5d\x03\x5d\x27\x5d\x26\x5d\x2e\x5d\x24\x5d\x1e\x5d\x06\x5d\x1b\x5d\x58\x5d\x3e\x5d\x34\x5d\x3d\x5d\x6c\x5d\x5b\x5d\x6f\x5d\x5d\x5d\x6b\x5d\x4b\x5d\x4a\x5d\x69\x5d\x74\x5d\x82\x5d\x99\x5d\x9d\x8c\x73\x5d\xb7\x5d\xc5\x5f\x73\x5f\x77\x5f\x82\x5f\x87", /* 6180 */ "\x00\x00\x5f\x89\x5f\x8c\x5f\x95\x5f\x99\x5f\x9c\x5f\xa8\x5f\xad\x5f\xb5\x5f\xbc\x88\x62\x5f\x61\x72\xad\x72\xb0\x72\xb4\x72\xb7\x72\xb8\x72\xc3\x72\xc1\x72\xce\x72\xcd\x72\xd2\x72\xe8\x72\xef\x72\xe9\x72\xf2\x72\xf4\x72\xf7\x73\x01\x72\xf3\x73\x03\x72\xfa\x72\xfb\x73\x17\x73\x13\x73\x21\x73\x0a\x73\x1e\x73\x1d\x73\x15\x73\x22\x73\x39\x73\x25\x73\x2c\x73\x38\x73\x31\x73\x50\x73\x4d\x73\x57\x73\x60\x73\x6c\x73\x6f\x73\x7e\x82\x1b\x59\x25\x98\xe7\x59\x24\x59\x02\x99\x63\x99\x67\x99\x68\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x74\x99\x77\x99\x7d\x99\x80\x99\x84\x99\x87\x99\x8a\x99\x8d\x99\x90\x99\x91\x99\x93\x99\x94\x99\x95\x5e\x80\x5e\x91\x5e\x8b\x5e\x96\x5e\xa5\x5e\xa0\x5e\xb9\x5e\xb5\x5e\xbe\x5e\xb3\x8d\x53\x5e\xd2\x5e\xd1\x5e\xdb\x5e\xe8\x5e\xea\x81\xba\x5f\xc4\x5f\xc9\x5f\xd6\x5f\xcf\x60\x03\x5f\xee\x60\x04\x5f\xe1\x5f\xe4\x5f\xfe\x60\x05\x60\x06\x5f\xea\x5f\xed\x5f\xf8\x60\x19\x60\x35\x60\x26\x60\x1b\x60\x0f\x60\x0d\x60\x29\x60\x2b\x60\x0a\x60\x3f\x60\x21\x60\x78\x60\x79\x60\x7b\x60\x7a\x60\x42\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6a\x60\x7d\x60\x96\x60\x9a\x60\xad\x60\x9d\x60\x83\x60\x92\x60\x8c\x60\x9b\x60\xec\x60\xbb\x60\xb1\x60\xdd\x60\xd8\x60\xc6\x60\xda\x60\xb4\x61\x20\x61\x26\x61\x15\x61\x23\x60\xf4\x61\x00\x61\x0e\x61\x2b\x61\x4a\x61\x75\x61\xac\x61\x94\x61\xa7\x61\xb7\x61\xd4\x61\xf5\x5f\xdd\x96\xb3\x95\xe9\x95\xeb\x95\xf1\x95\xf3\x95\xf5\x95\xf6\x95\xfc\x95\xfe\x96\x03\x96\x04\x96\x06\x96\x08\x96\x0a\x96\x0b\x96\x0c\x96\x0d\x96\x0f\x96\x12\x96\x15\x96\x16\x96\x17\x96\x19\x96\x1a\x4e\x2c\x72\x3f\x62\x15\x6c\x35", /* 6280 */ "\x00\x00\x6c\x54\x6c\x5c\x6c\x4a\x6c\xa3\x6c\x85\x6c\x90\x6c\x94\x6c\x8c\x6c\x68\x6c\x69\x6c\x74\x6c\x76\x6c\x86\x6c\xa9\x6c\xd0\x6c\xd4\x6c\xad\x6c\xf7\x6c\xf8\x6c\xf1\x6c\xd7\x6c\xb2\x6c\xe0\x6c\xd6\x6c\xfa\x6c\xeb\x6c\xee\x6c\xb1\x6c\xd3\x6c\xef\x6c\xfe\x6d\x39\x6d\x27\x6d\x0c\x6d\x43\x6d\x48\x6d\x07\x6d\x04\x6d\x19\x6d\x0e\x6d\x2b\x6d\x4d\x6d\x2e\x6d\x35\x6d\x1a\x6d\x4f\x6d\x52\x6d\x54\x6d\x33\x6d\x91\x6d\x6f\x6d\x9e\x6d\xa0\x6d\x5e\x6d\x93\x6d\x94\x6d\x5c\x6d\x60\x6d\x7c\x6d\x63\x6e\x1a\x6d\xc7\x6d\xc5\x6d\xde\x6e\x0e\x6d\xbf\x6d\xe0\x6e\x11\x6d\xe6\x6d\xdd\x6d\xd9\x6e\x16\x6d\xab\x6e\x0c\x6d\xae\x6e\x2b\x6e\x6e\x6e\x4e\x6e\x6b\x6e\xb2\x6e\x5f\x6e\x86\x6e\x53\x6e\x54\x6e\x32\x6e\x25\x6e\x44\x6e\xdf\x6e\xb1\x6e\x98\x6e\xe0\x6f\x2d\x6e\xe2\x6e\xa5\x6e\xa7\x6e\xbd\x6e\xbb\x6e\xb7\x6e\xd7\x6e\xb4\x6e\xcf\x6e\x8f\x6e\xc2\x6e\x9f\x6f\x62\x6f\x46\x6f\x47\x6f\x24\x6f\x15\x6e\xf9\x6f\x2f\x6f\x36\x6f\x4b\x6f\x74\x6f\x2a\x6f\x09\x6f\x29\x6f\x89\x6f\x8d\x6f\x8c\x6f\x78\x6f\x72\x6f\x7c\x6f\x7a\x6f\xd1\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xc9\x6f\xa7\x6f\xb9\x6f\xb6\x6f\xc2\x6f\xe1\x6f\xee\x6f\xde\x6f\xe0\x6f\xef\x70\x1a\x70\x23\x70\x1b\x70\x39\x70\x35\x70\x4f\x70\x5e\x5b\x80\x5b\x84\x5b\x95\x5b\x93\x5b\xa5\x5b\xb8\x75\x2f\x9a\x9e\x64\x34\x5b\xe4\x5b\xee\x89\x30\x5b\xf0\x8e\x47\x8b\x07\x8f\xb6\x8f\xd3\x8f\xd5\x8f\xe5\x8f\xee\x8f\xe4\x8f\xe9\x8f\xe6\x8f\xf3\x8f\xe8\x90\x05\x90\x04\x90\x0b\x90\x26\x90\x11\x90\x0d\x90\x16\x90\x21\x90\x35\x90\x36\x90\x2d\x90\x2f\x90\x44\x90\x51\x90\x52\x90\x50\x90\x68\x90\x58\x90\x62\x90\x5b\x66\xb9", /* 6380 */ "\x00\x00\x90\x74\x90\x7d\x90\x82\x90\x88\x90\x83\x90\x8b\x5f\x50\x5f\x57\x5f\x56\x5f\x58\x5c\x3b\x54\xab\x5c\x50\x5c\x59\x5b\x71\x5c\x63\x5c\x66\x7f\xbc\x5f\x2a\x5f\x29\x5f\x2d\x82\x74\x5f\x3c\x9b\x3b\x5c\x6e\x59\x81\x59\x83\x59\x8d\x59\xa9\x59\xaa\x59\xa3\x59\x97\x59\xca\x59\xab\x59\x9e\x59\xa4\x59\xd2\x59\xb2\x59\xaf\x59\xd7\x59\xbe\x5a\x05\x5a\x06\x59\xdd\x5a\x08\x59\xe3\x59\xd8\x59\xf9\x5a\x0c\x5a\x09\x5a\x32\x5a\x34\x5a\x11\x5a\x23\x5a\x13\x5a\x40\x5a\x67\x5a\x4a\x5a\x55\x5a\x3c\x5a\x62\x5a\x75\x80\xec\x5a\xaa\x5a\x9b\x5a\x77\x5a\x7a\x5a\xbe\x5a\xeb\x5a\xb2\x5a\xd2\x5a\xd4\x5a\xb8\x5a\xe0\x5a\xe3\x5a\xf1\x5a\xd6\x5a\xe6\x5a\xd8\x5a\xdc\x5b\x09\x5b\x17\x5b\x16\x5b\x32\x5b\x37\x5b\x40\x5c\x15\x5c\x1c\x5b\x5a\x5b\x65\x5b\x73\x5b\x51\x5b\x53\x5b\x62\x9a\x75\x9a\x77\x9a\x78\x9a\x7a\x9a\x7f\x9a\x7d\x9a\x80\x9a\x81\x9a\x85\x9a\x88\x9a\x8a\x9a\x90\x9a\x92\x9a\x93\x9a\x96\x9a\x98\x9a\x9b\x9a\x9c\x9a\x9d\x9a\x9f\x9a\xa0\x9a\xa2\x9a\xa3\x9a\xa5\x9a\xa7\x7e\x9f\x7e\xa1\x7e\xa3\x7e\xa5\x7e\xa8\x7e\xa9\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xad\x7e\xb0\x7e\xbe\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc9\x7e\xcb\x7e\xcc\x7e\xd0\x7e\xd4\x7e\xd7\x7e\xdb\x7e\xe0\x7e\xe1\x7e\xe8\x7e\xeb\x7e\xee\x7e\xef\x7e\xf1\x7e\xf2\x7f\x0d\x7e\xf6\x7e\xfa\x7e\xfb\x7e\xfe\x7f\x01\x7f\x02\x7f\x03\x7f\x07\x7f\x08\x7f\x0b\x7f\x0c\x7f\x0f\x7f\x11\x7f\x12\x7f\x17\x7f\x19\x7f\x1c\x7f\x1b\x7f\x1f\x7f\x21\x7f\x22\x7f\x23\x7f\x24\x7f\x25\x7f\x26\x7f\x27\x7f\x2a\x7f\x2b\x7f\x2c\x7f\x2d\x7f\x2f\x7f\x30\x7f\x31\x7f\x32\x7f\x33\x7f\x35\x5e\x7a\x75\x7f\x5d\xdb\x75\x3e\x90\x95", /* 6480 */ "\x00\x00\x73\x8e\x73\x91\x73\xae\x73\xa2\x73\x9f\x73\xcf\x73\xc2\x73\xd1\x73\xb7\x73\xb3\x73\xc0\x73\xc9\x73\xc8\x73\xe5\x73\xd9\x98\x7c\x74\x0a\x73\xe9\x73\xe7\x73\xde\x73\xba\x73\xf2\x74\x0f\x74\x2a\x74\x5b\x74\x26\x74\x25\x74\x28\x74\x30\x74\x2e\x74\x2c\x74\x1b\x74\x1a\x74\x41\x74\x5c\x74\x57\x74\x55\x74\x59\x74\x77\x74\x6d\x74\x7e\x74\x9c\x74\x8e\x74\x80\x74\x81\x74\x87\x74\x8b\x74\x9e\x74\xa8\x74\xa9\x74\x90\x74\xa7\x74\xd2\x74\xba\x97\xea\x97\xeb\x97\xec\x67\x4c\x67\x53\x67\x5e\x67\x48\x67\x69\x67\xa5\x67\x87\x67\x6a\x67\x73\x67\x98\x67\xa7\x67\x75\x67\xa8\x67\x9e\x67\xad\x67\x8b\x67\x77\x67\x7c\x67\xf0\x68\x09\x67\xd8\x68\x0a\x67\xe9\x67\xb0\x68\x0c\x67\xd9\x67\xb5\x67\xda\x67\xb3\x67\xdd\x68\x00\x67\xc3\x67\xb8\x67\xe2\x68\x0e\x67\xc1\x67\xfd\x68\x32\x68\x33\x68\x60\x68\x61\x68\x4e\x68\x62\x68\x44\x68\x64\x68\x83\x68\x1d\x68\x55\x68\x66\x68\x41\x68\x67\x68\x40\x68\x3e\x68\x4a\x68\x49\x68\x29\x68\xb5\x68\x8f\x68\x74\x68\x77\x68\x93\x68\x6b\x68\xc2\x69\x6e\x68\xfc\x69\x1f\x69\x20\x68\xf9\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x24\x68\xf0\x69\x0b\x69\x01\x69\x57\x68\xe3\x69\x10\x69\x71\x69\x39\x69\x60\x69\x42\x69\x5d\x69\x84\x69\x6b\x69\x80\x69\x98\x69\x78\x69\x34\x69\xcc\x69\x87\x69\x88\x69\xce\x69\x89\x69\x66\x69\x63\x69\x79\x69\x9b\x69\xa7\x69\xbb\x69\xab\x69\xad\x69\xd4\x69\xb1\x69\xc1\x69\xca\x69\xdf\x69\x95\x69\xe0\x69\x8d\x69\xff\x6a\x2f\x69\xed\x6a\x17\x6a\x18\x6a\x65\x69\xf2\x6a\x44\x6a\x3e\x6a\xa0\x6a\x50\x6a\x5b\x6a\x35\x6a\x8e\x6a\x79\x6a\x3d\x6a\x28\x6a\x58\x6a\x7c\x6a\x91\x6a\x90\x6a\xa9\x6a\x97\x6a\xab", /* 6580 */ "\x00\x00\x73\x37\x73\x52\x6b\x81\x6b\x82\x6b\x87\x6b\x84\x6b\x92\x6b\x93\x6b\x8d\x6b\x9a\x6b\x9b\x6b\xa1\x6b\xaa\x8f\x6b\x8f\x6d\x8f\x71\x8f\x72\x8f\x73\x8f\x75\x8f\x76\x8f\x78\x8f\x77\x8f\x79\x8f\x7a\x8f\x7c\x8f\x7e\x8f\x81\x8f\x82\x8f\x84\x8f\x87\x8f\x8b\x8f\x8d\x8f\x8e\x8f\x8f\x8f\x98\x8f\x9a\x8e\xce\x62\x0b\x62\x17\x62\x1b\x62\x1f\x62\x22\x62\x21\x62\x25\x62\x24\x62\x2c\x81\xe7\x74\xef\x74\xf4\x74\xff\x75\x0f\x75\x11\x75\x13\x65\x34\x65\xee\x65\xef\x65\xf0\x66\x0a\x66\x19\x67\x72\x66\x03\x66\x15\x66\x00\x70\x85\x66\xf7\x66\x1d\x66\x34\x66\x31\x66\x36\x66\x35\x80\x06\x66\x5f\x66\x54\x66\x41\x66\x4f\x66\x56\x66\x61\x66\x57\x66\x77\x66\x84\x66\x8c\x66\xa7\x66\x9d\x66\xbe\x66\xdb\x66\xdc\x66\xe6\x66\xe9\x8d\x32\x8d\x33\x8d\x36\x8d\x3b\x8d\x3d\x8d\x40\x8d\x45\x8d\x46\x8d\x48\x8d\x49\x8d\x47\x8d\x4d\x8d\x55\x8d\x59\x89\xc7\x89\xca\x89\xcb\x89\xcc\x89\xce\x89\xcf\x89\xd0\x89\xd1\x72\x6e\x72\x9f\x72\x5d\x72\x66\x72\x6f\x72\x7e\x72\x7f\x72\x84\x72\x8b\x72\x8d\x72\x8f\x72\x92\x63\x08\x63\x32\x63\xb0\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x3f\x64\xd8\x80\x04\x6b\xea\x6b\xf3\x6b\xfd\x6b\xf5\x6b\xf9\x6c\x05\x6c\x07\x6c\x06\x6c\x0d\x6c\x15\x6c\x18\x6c\x19\x6c\x1a\x6c\x21\x6c\x29\x6c\x24\x6c\x2a\x6c\x32\x65\x35\x65\x55\x65\x6b\x72\x4d\x72\x52\x72\x56\x72\x30\x86\x62\x52\x16\x80\x9f\x80\x9c\x80\x93\x80\xbc\x67\x0a\x80\xbd\x80\xb1\x80\xab\x80\xad\x80\xb4\x80\xb7\x80\xe7\x80\xe8\x80\xe9\x80\xea\x80\xdb\x80\xc2\x80\xc4\x80\xd9\x80\xcd\x80\xd7\x67\x10\x80\xdd\x80\xeb\x80\xf1\x80\xf4\x80\xed\x81\x0d\x81\x0e\x80\xf2\x80\xfc\x67\x15\x81\x12", /* 6680 */ "\x00\x00\x8c\x5a\x81\x36\x81\x1e\x81\x2c\x81\x18\x81\x32\x81\x48\x81\x4c\x81\x53\x81\x74\x81\x59\x81\x5a\x81\x71\x81\x60\x81\x69\x81\x7c\x81\x7d\x81\x6d\x81\x67\x58\x4d\x5a\xb5\x81\x88\x81\x82\x81\x91\x6e\xd5\x81\xa3\x81\xaa\x81\xcc\x67\x26\x81\xca\x81\xbb\x81\xc1\x81\xa6\x6b\x24\x6b\x37\x6b\x39\x6b\x43\x6b\x46\x6b\x59\x98\xd1\x98\xd2\x98\xd3\x98\xd5\x98\xd9\x98\xda\x6b\xb3\x5f\x40\x6b\xc2\x89\xf3\x65\x90\x9f\x51\x65\x93\x65\xbc\x65\xc6\x65\xc4\x65\xc3\x65\xcc\x65\xce\x65\xd2\x65\xd6\x70\x80\x70\x9c\x70\x96\x70\x9d\x70\xbb\x70\xc0\x70\xb7\x70\xab\x70\xb1\x70\xe8\x70\xca\x71\x10\x71\x13\x71\x16\x71\x2f\x71\x31\x71\x73\x71\x5c\x71\x68\x71\x45\x71\x72\x71\x4a\x71\x78\x71\x7a\x71\x98\x71\xb3\x71\xb5\x71\xa8\x71\xa0\x71\xe0\x71\xd4\x71\xe7\x71\xf9\x72\x1d\x72\x28\x70\x6c\x71\x18\x71\x66\x71\xb9\x62\x3e\x62\x3d\x62\x43\x62\x48\x62\x49\x79\x3b\x79\x40\x79\x46\x79\x49\x79\x5b\x79\x5c\x79\x53\x79\x5a\x79\x62\x79\x57\x79\x60\x79\x6f\x79\x67\x79\x7a\x79\x85\x79\x8a\x79\x9a\x79\xa7\x79\xb3\x5f\xd1\x5f\xd0\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x3c\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\x59\x60\x63\x60\xab\x61\x06\x61\x0d\x61\x5d\x61\xa9\x61\x9d\x61\xcb\x61\xd1\x62\x06\x80\x80\x80\x7f\x6c\x93\x6c\xf6\x6d\xfc\x77\xf6\x77\xf8\x78\x00\x78\x09\x78\x17\x78\x18\x78\x11\x65\xab\x78\x2d\x78\x1c\x78\x1d\x78\x39\x78\x3a\x78\x3b\x78\x1f\x78\x3c\x78\x25\x78\x2c\x78\x23\x78\x29\x78\x4e\x78\x6d\x78\x56\x78\x57\x78\x26\x78\x50\x78\x47\x78\x4c\x78\x6a\x78\x9b\x78\x93\x78\x9a\x78\x87\x78\x9c\x78\xa1\x78\xa3\x78\xb2\x78\xb9\x78\xa5\x78\xd4\x78\xd9\x78\xc9", /* 6780 */ "\x00\x00\x78\xec\x78\xf2\x79\x05\x78\xf4\x79\x13\x79\x24\x79\x1e\x79\x34\x9f\x9b\x9e\xf9\x9e\xfb\x9e\xfc\x76\xf1\x77\x04\x77\x0d\x76\xf9\x77\x07\x77\x08\x77\x1a\x77\x22\x77\x19\x77\x2d\x77\x26\x77\x35\x77\x38\x77\x50\x77\x51\x77\x47\x77\x43\x77\x5a\x77\x68\x77\x62\x77\x65\x77\x7f\x77\x8d\x77\x7d\x77\x80\x77\x8c\x77\x91\x77\x9f\x77\xa0\x77\xb0\x77\xb5\x77\xbd\x75\x3a\x75\x40\x75\x4e\x75\x4b\x75\x48\x75\x5b\x75\x72\x75\x79\x75\x83\x7f\x58\x7f\x61\x7f\x5f\x8a\x48\x7f\x68\x7f\x74\x7f\x71\x7f\x79\x7f\x81\x7f\x7e\x76\xcd\x76\xe5\x88\x32\x94\x85\x94\x86\x94\x87\x94\x8b\x94\x8a\x94\x8c\x94\x8d\x94\x8f\x94\x90\x94\x94\x94\x97\x94\x95\x94\x9a\x94\x9b\x94\x9c\x94\xa3\x94\xa4\x94\xab\x94\xaa\x94\xad\x94\xac\x94\xaf\x94\xb0\x94\xb2\x94\xb4\x94\xb6\x94\xb7\x94\xb8\x94\xb9\x94\xba\x94\xbc\x94\xbd\x94\xbf\x94\xc4\x94\xc8\x94\xc9\x94\xca\x94\xcb\x94\xcc\x94\xcd\x94\xce\x94\xd0\x94\xd1\x94\xd2\x94\xd5\x94\xd6\x94\xd7\x94\xd9\x94\xd8\x94\xdb\x94\xde\x94\xdf\x94\xe0\x94\xe2\x94\xe4\x94\xe5\x94\xe7\x94\xe8\x94\xea\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe9\x94\xeb\x94\xee\x94\xef\x94\xf3\x94\xf4\x94\xf5\x94\xf7\x94\xf9\x94\xfc\x94\xfd\x94\xff\x95\x03\x95\x02\x95\x06\x95\x07\x95\x09\x95\x0a\x95\x0d\x95\x0e\x95\x0f\x95\x12\x95\x13\x95\x14\x95\x15\x95\x16\x95\x18\x95\x1b\x95\x1d\x95\x1e\x95\x1f\x95\x22\x95\x2a\x95\x2b\x95\x29\x95\x2c\x95\x31\x95\x32\x95\x34\x95\x36\x95\x37\x95\x38\x95\x3c\x95\x3e\x95\x3f\x95\x42\x95\x35\x95\x44\x95\x45\x95\x46\x95\x49\x95\x4c\x95\x4e\x95\x4f\x95\x52\x95\x53\x95\x54\x95\x56\x95\x57\x95\x58\x95\x59\x95\x5b\x95\x5e", /* 6880 */ "\x00\x00\x95\x5f\x95\x5d\x95\x61\x95\x62\x95\x64\x95\x65\x95\x66\x95\x67\x95\x68\x95\x69\x95\x6a\x95\x6b\x95\x6c\x95\x6f\x95\x71\x95\x72\x95\x73\x95\x3a\x77\xe7\x77\xec\x96\xc9\x79\xd5\x79\xed\x79\xe3\x79\xeb\x7a\x06\x5d\x47\x7a\x03\x7a\x02\x7a\x1e\x7a\x14\x7a\x39\x7a\x37\x7a\x51\x9e\xcf\x99\xa5\x7a\x70\x76\x88\x76\x8e\x76\x93\x76\x99\x76\xa4\x74\xde\x74\xe0\x75\x2c\x9e\x20\x9e\x22\x9e\x28\x9e\x29\x9e\x2a\x9e\x2b\x9e\x2c\x9e\x32\x9e\x31\x9e\x36\x9e\x38\x9e\x37\x9e\x39\x9e\x3a\x9e\x3e\x9e\x41\x9e\x42\x9e\x44\x9e\x46\x9e\x47\x9e\x48\x9e\x49\x9e\x4b\x9e\x4c\x9e\x4e\x9e\x51\x9e\x55\x9e\x57\x9e\x5a\x9e\x5b\x9e\x5c\x9e\x5e\x9e\x63\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x9e\x6b\x9e\x6c\x9e\x71\x9e\x6d\x9e\x73\x75\x92\x75\x94\x75\x96\x75\xa0\x75\x9d\x75\xac\x75\xa3\x75\xb3\x75\xb4\x75\xb8\x75\xc4\x75\xb1\x75\xb0\x75\xc3\x75\xc2\x75\xd6\x75\xcd\x75\xe3\x75\xe8\x75\xe6\x75\xe4\x75\xeb\x75\xe7\x76\x03\x75\xf1\x75\xfc\x75\xff\x76\x10\x76\x00\x76\x05\x76\x0c\x76\x17\x76\x0a\x76\x25\x76\x18\x76\x15\x76\x19\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x1b\x76\x3c\x76\x22\x76\x20\x76\x40\x76\x2d\x76\x30\x76\x3f\x76\x35\x76\x43\x76\x3e\x76\x33\x76\x4d\x76\x5e\x76\x54\x76\x5c\x76\x56\x76\x6b\x76\x6f\x7f\xca\x7a\xe6\x7a\x78\x7a\x79\x7a\x80\x7a\x86\x7a\x88\x7a\x95\x7a\xa6\x7a\xa0\x7a\xac\x7a\xa8\x7a\xad\x7a\xb3\x88\x64\x88\x69\x88\x72\x88\x7d\x88\x7f\x88\x82\x88\xa2\x88\xc6\x88\xb7\x88\xbc\x88\xc9\x88\xe2\x88\xce\x88\xe3\x88\xe5\x88\xf1\x89\x1a\x88\xfc\x88\xe8\x88\xfe\x88\xf0\x89\x21\x89\x19\x89\x13\x89\x1b\x89\x0a\x89\x34\x89\x2b\x89\x36\x89\x41", /* 6980 */ "\x00\x00\x89\x66\x89\x7b\x75\x8b\x80\xe5\x76\xb2\x76\xb4\x77\xdc\x80\x12\x80\x14\x80\x16\x80\x1c\x80\x20\x80\x22\x80\x25\x80\x26\x80\x27\x80\x29\x80\x28\x80\x31\x80\x0b\x80\x35\x80\x43\x80\x46\x80\x4d\x80\x52\x80\x69\x80\x71\x89\x83\x98\x78\x98\x80\x98\x83\x98\x89\x98\x8c\x98\x8d\x98\x8f\x98\x94\x98\x9a\x98\x9b\x98\x9e\x98\x9f\x98\xa1\x98\xa2\x98\xa5\x98\xa6\x86\x4d\x86\x54\x86\x6c\x86\x6e\x86\x7f\x86\x7a\x86\x7c\x86\x7b\x86\xa8\x86\x8d\x86\x8b\x86\xac\x86\x9d\x86\xa7\x86\xa3\x86\xaa\x86\x93\x86\xa9\x86\xb6\x86\xc4\x86\xb5\x86\xce\x86\xb0\x86\xba\x86\xb1\x86\xaf\x86\xc9\x86\xcf\x86\xb4\x86\xe9\x86\xf1\x86\xf2\x86\xed\x86\xf3\x86\xd0\x87\x13\x86\xde\x86\xf4\x86\xdf\x86\xd8\x86\xd1\x87\x03\x87\x07\x86\xf8\x87\x08\x87\x0a\x87\x0d\x87\x09\x87\x23\x87\x3b\x87\x1e\x87\x25\x87\x2e\x87\x1a\x87\x3e\x87\x48\x87\x34\x87\x31\x87\x29\x87\x37\x87\x3f\x87\x82\x87\x22\x87\x7d\x87\x7e\x87\x7b\x87\x60\x87\x70\x87\x4c\x87\x6e\x87\x8b\x87\x53\x87\x63\x87\x7c\x87\x64\x87\x59\x87\x65\x87\x93\x87\xaf\x87\xa8\x87\xd2\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xc6\x87\x88\x87\x85\x87\xad\x87\x97\x87\x83\x87\xab\x87\xe5\x87\xac\x87\xb5\x87\xb3\x87\xcb\x87\xd3\x87\xbd\x87\xd1\x87\xc0\x87\xca\x87\xdb\x87\xea\x87\xe0\x87\xee\x88\x16\x88\x13\x87\xfe\x88\x0a\x88\x1b\x88\x21\x88\x39\x88\x3c\x7f\x36\x7f\x42\x7f\x44\x7f\x45\x82\x10\x7a\xfa\x7a\xfd\x7b\x08\x7b\x03\x7b\x04\x7b\x15\x7b\x0a\x7b\x2b\x7b\x0f\x7b\x47\x7b\x38\x7b\x2a\x7b\x19\x7b\x2e\x7b\x31\x7b\x20\x7b\x25\x7b\x24\x7b\x33\x7b\x3e\x7b\x1e\x7b\x58\x7b\x5a\x7b\x45\x7b\x75\x7b\x4c\x7b\x5d\x7b\x60\x7b\x6e", /* 6a80 */ "\x00\x00\x7b\x7b\x7b\x62\x7b\x72\x7b\x71\x7b\x90\x7b\xa6\x7b\xa7\x7b\xb8\x7b\xac\x7b\x9d\x7b\xa8\x7b\x85\x7b\xaa\x7b\x9c\x7b\xa2\x7b\xab\x7b\xb4\x7b\xd1\x7b\xc1\x7b\xcc\x7b\xdd\x7b\xda\x7b\xe5\x7b\xe6\x7b\xea\x7c\x0c\x7b\xfe\x7b\xfc\x7c\x0f\x7c\x16\x7c\x0b\x7c\x1f\x7c\x2a\x7c\x26\x7c\x38\x7c\x41\x7c\x40\x81\xfe\x82\x01\x82\x02\x82\x04\x81\xec\x88\x44\x82\x21\x82\x22\x82\x23\x82\x2d\x82\x2f\x82\x28\x82\x2b\x82\x38\x82\x3b\x82\x33\x82\x34\x82\x3e\x82\x44\x82\x49\x82\x4b\x82\x4f\x82\x5a\x82\x5f\x82\x68\x88\x7e\x88\x85\x88\x88\x88\xd8\x88\xdf\x89\x5e\x7f\x9d\x7f\x9f\x7f\xa7\x7f\xaf\x7f\xb0\x7f\xb2\x7c\x7c\x65\x49\x7c\x91\x7c\x9d\x7c\x9c\x7c\x9e\x7c\xa2\x7c\xb2\x7c\xbc\x7c\xbd\x7c\xc1\x7c\xc7\x7c\xcc\x7c\xcd\x7c\xc8\x7c\xc5\x7c\xd7\x7c\xe8\x82\x6e\x66\xa8\x7f\xbf\x7f\xce\x7f\xd5\x7f\xe5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xee\x7f\xf3\x7c\xf8\x7d\x77\x7d\xa6\x7d\xae\x7e\x47\x7e\x9b\x9e\xb8\x9e\xb4\x8d\x73\x8d\x84\x8d\x94\x8d\x91\x8d\xb1\x8d\x67\x8d\x6d\x8c\x47\x8c\x49\x91\x4a\x91\x50\x91\x4e\x91\x4f\x91\x64\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x62\x91\x61\x91\x70\x91\x69\x91\x6f\x91\x7d\x91\x7e\x91\x72\x91\x74\x91\x79\x91\x8c\x91\x85\x91\x90\x91\x8d\x91\x91\x91\xa2\x91\xa3\x91\xaa\x91\xad\x91\xae\x91\xaf\x91\xb5\x91\xb4\x91\xba\x8c\x55\x9e\x7e\x8d\xb8\x8d\xeb\x8e\x05\x8e\x59\x8e\x69\x8d\xb5\x8d\xbf\x8d\xbc\x8d\xba\x8d\xc4\x8d\xd6\x8d\xd7\x8d\xda\x8d\xde\x8d\xce\x8d\xcf\x8d\xdb\x8d\xc6\x8d\xec\x8d\xf7\x8d\xf8\x8d\xe3\x8d\xf9\x8d\xfb\x8d\xe4\x8e\x09\x8d\xfd\x8e\x14\x8e\x1d\x8e\x1f\x8e\x2c\x8e\x2e\x8e\x23\x8e\x2f\x8e\x3a\x8e\x40\x8e\x39", /* 6b80 */ "\x00\x00\x8e\x35\x8e\x3d\x8e\x31\x8e\x49\x8e\x41\x8e\x42\x8e\x51\x8e\x52\x8e\x4a\x8e\x70\x8e\x76\x8e\x7c\x8e\x6f\x8e\x74\x8e\x85\x8e\x8f\x8e\x94\x8e\x90\x8e\x9c\x8e\x9e\x8c\x78\x8c\x82\x8c\x8a\x8c\x85\x8c\x98\x8c\x94\x65\x9b\x89\xd6\x89\xde\x89\xda\x89\xdc\x89\xe5\x89\xeb\x89\xef\x8a\x3e\x8b\x26\x97\x53\x96\xe9\x96\xf3\x96\xef\x97\x06\x97\x01\x97\x08\x97\x0f\x97\x0e\x97\x2a\x97\x2d\x97\x30\x97\x3e\x9f\x80\x9f\x83\x9f\x85\x9f\x86\x9f\x87\x9f\x88\x9f\x89\x9f\x8a\x9f\x8c\x9e\xfe\x9f\x0b\x9f\x0d\x96\xb9\x96\xbc\x96\xbd\x96\xce\x96\xd2\x77\xbf\x96\xe0\x92\x8e\x92\xae\x92\xc8\x93\x3e\x93\x6a\x93\xca\x93\x8f\x94\x3e\x94\x6b\x9c\x7f\x9c\x82\x9c\x85\x9c\x86\x9c\x87\x9c\x88\x7a\x23\x9c\x8b\x9c\x8e\x9c\x90\x9c\x91\x9c\x92\x9c\x94\x9c\x95\x9c\x9a\x9c\x9b\x9c\x9e\x9c\x9f\x9c\xa0\x9c\xa1\x9c\xa2\x9c\xa3\x9c\xa5\x9c\xa6\x9c\xa7\x9c\xa8\x9c\xa9\x9c\xab\x9c\xad\x9c\xae\x9c\xb0\x9c\xb1\x9c\xb2\x9c\xb3\x9c\xb4\x9c\xb5\x9c\xb6\x9c\xb7\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xca\x9c\xcb\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xcc\x9c\xcd\x9c\xce\x9c\xcf\x9c\xd0\x9c\xd3\x9c\xd4\x9c\xd5\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xdc\x9c\xdd\x9c\xdf\x9c\xe2\x97\x7c\x97\x85\x97\x91\x97\x92\x97\x94\x97\xaf\x97\xab\x97\xa3\x97\xb2\x97\xb4\x9a\xb1\x9a\xb0\x9a\xb7\x9e\x58\x9a\xb6\x9a\xba\x9a\xbc\x9a\xc1\x9a\xc0\x9a\xc5\x9a\xc2\x9a\xcb\x9a\xcc\x9a\xd1\x9b\x45\x9b\x43\x9b\x47\x9b\x49\x9b\x48\x9b\x4d\x9b\x51\x98\xe8\x99\x0d\x99\x2e\x99\x55\x99\x54\x9a\xdf\x9a\xe1\x9a\xe6\x9a\xef\x9a\xeb\x9a\xfb\x9a\xed\x9a\xf9\x9b\x08\x9b\x0f\x9b\x13\x9b\x1f", /* 6c80 */ "\x00\x00\x9b\x23\x9e\xbd\x9e\xbe\x7e\x3b\x9e\x82\x9e\x87\x9e\x88\x9e\x8b\x9e\x92\x93\xd6\x9e\x9d\x9e\x9f\x9e\xdb\x9e\xdc\x9e\xdd\x9e\xe0\x9e\xdf\x9e\xe2\x9e\xe9\x9e\xe7\x9e\xe5\x9e\xea\x9e\xef\x9f\x22\x9f\x2c\x9f\x2f\x9f\x39\x9f\x37\x9f\x3d\x9f\x3e\x9f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ NULL, /* 6d80 */ NULL, /* 6e00 */ NULL, /* 6e80 */ NULL, /* 6f00 */ NULL, /* 6f80 */ NULL, /* 7000 */ NULL, /* 7080 */ NULL, /* 7100 */ NULL, /* 7180 */ NULL, /* 7200 */ NULL, /* 7280 */ NULL, /* 7300 */ NULL, /* 7380 */ NULL, /* 7400 */ NULL, /* 7480 */ NULL, /* 7500 */ NULL, /* 7580 */ NULL, /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 7680 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* 7780 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* 7880 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* 7980 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* 7a80 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* 7b80 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* 7c80 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* 7d80 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* 7e80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* 7f80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* 8000 */ NULL, /* 8080 */ NULL, /* 8100 */ NULL, /* 8180 */ NULL, /* 8200 */ NULL, /* 8280 */ NULL, /* 8300 */ NULL, /* 8380 */ NULL, /* 8400 */ NULL, /* 8480 */ NULL, /* 8500 */ NULL, /* 8580 */ NULL, /* 8600 */ NULL, /* 8680 */ NULL, /* 8700 */ NULL, /* 8780 */ NULL, /* 8800 */ NULL, /* 8880 */ NULL, /* 8900 */ NULL, /* 8980 */ NULL, /* 8a00 */ NULL, /* 8a80 */ NULL, /* 8b00 */ NULL, /* 8b80 */ NULL, /* 8c00 */ NULL, /* 8c80 */ NULL, /* 8d00 */ NULL, /* 8d80 */ NULL, /* 8e00 */ NULL, /* 8e80 */ NULL, /* 8f00 */ NULL, /* 8f80 */ NULL, /* 9000 */ NULL, /* 9080 */ NULL, /* 9100 */ NULL, /* 9180 */ NULL, /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ NULL, /* e080 */ NULL, /* e100 */ NULL, /* e180 */ NULL, /* e200 */ NULL, /* e280 */ NULL, /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp937", "0x03a70343" /* 935, 835 */, "big5-0,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-937_P110-1999 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\xa1\x44\xed\x44\x4b\x00\x00\x00\x00\x44\xee\x00\x00\x43\x79\x46\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x53\x00\x00\x45\x51\x45\x52\x45\x54\x00\x00\x47\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\x44\x4a\x44\x4a\x00\x00\x00\x00\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x43\x77\x43\x78\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x43\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x73\x00\x00\x44\x50\x44\xef\x00\x00\x42\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x42\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ NULL, /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\x46\xbb\x00\x00\x00\x00\x00\x00\x46\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\x46\xd4\x46\xd5\x46\xd7\x46\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xef\x46\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x6e\x00\x00\x43\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x43\x70\x00\x00\x43\x4e\x43\x71\x00\x00\x00\x00\x00\x00\x43\x4f\x43\x64\x00\x00\x00\x00\x43\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xda\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc5\x00\x00\x00\x00\x43\x61\x44\x4d\x46\xcc\x46\xcb\x00\x00\x00\x00\x42\x4f\x00\x00\x44\x7c\x00\x00\x43\x6c\x43\x6d\x46\xc8\x46\xc9\x46\xd0\x43\x63\x00\x00\x46\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa1\x43\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x46\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x44\x67\x44\x77\x00\x00\x00\x00\x43\x5d\x43\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x43\x68\x43\x69\x00\x00\x00\x00\x43\x66\x43\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xd2\x00\x00\x00\x00\x00\x00\x46\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xcd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8d\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x00\x00\x47\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x41\x46\x42\x46\x43\x46\x44\x46\x45\x46\x46\x46\x47\x46\x48\x46\x49\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x46\x52\x46\x53\x46\x54\x46\x55\x46\x56\x46\x57\x46\x58\x46\x59\x46\x5a\x00\x00\x00\x00", /* 2480 */ NULL, /* 2500 */ "\x46\x75\x43\xb7\x46\x76\x43\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x78\x00\x00\x00\x00\x43\xb9\x46\x79\x00\x00\x00\x00\x43\xe1\x46\x7a\x00\x00\x00\x00\x43\xe3\x46\x7b\x00\x00\x00\x00\x43\xe2\x46\x73\x43\xee\x00\x00\x00\x00\x43\xe9\x00\x00\x00\x00\x43\xe4\x46\x72\x43\xf0\x00\x00\x00\x00\x43\xeb\x00\x00\x00\x00\x43\xe6\x46\x71\x00\x00\x00\x00\x43\xea\x43\xef\x00\x00\x00\x00\x43\xe5\x46\x70\x00\x00\x00\x00\x43\xec\x43\xf1\x00\x00\x00\x00\x43\xe7\x46\x6f\x00\x00\x00\x00\x43\xed\x00\x00\x00\x00\x43\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x46\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x82\x00\x00\x00\x00\x46\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x83\x00\x00\x00\x00\x46\x7c\x46\x7d\x46\x7f\x46\x7e\x46\x89\x46\x8a\x46\x8b\x46\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\x46\x60\x46\x61\x46\x62\x46\x63\x46\x64\x46\x65\x46\x66\x46\x67\x46\x6e\x46\x6d\x46\x6c\x46\x6b\x46\x6a\x46\x69\x46\x68\x00\x00\x00\x00\x00\x00\x00\x00\x46\x74\x46\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x85\x46\x86\x46\x88\x46\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x76\x00\x00\x00\x00\x43\x75\x00\x00\x43\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ "\x40\x40\x43\x44\x43\x41\x46\xb9\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe9\x46\xea\x00\x00\x00\x00\x45\x41\x45\x42\x45\x43\x45\x44\x45\x45\x45\x46\x45\x47\x45\x48\x45\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x56\x45\x57\x45\x58\x45\x59\x45\x5a\x45\x5b\x45\x5c\x45\x5d\x45\x5e\x45\x5f\x45\x60\x45\x61\x45\x62\x45\x63\x45\x64\x45\x65\x45\x66\x45\x67\x45\x68\x45\x69\x45\x6a\x45\x6b\x45\x6c\x45\x6d\x45\x6e\x45\x6f\x45\x70\x45\x71\x45\x72\x45\x73\x45\x74\x45\x75\x45\x76\x45\x77\x45\x78\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3300 */ NULL, /* 3380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe2\x46\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xdd\x46\xde\x46\xdf\x00\x00\x00\x00\x46\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xe0\x00\x00\x00\x00\x46\xcf\x46\xce\x00\x00\x00\x00\x46\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ NULL, /* 4080 */ NULL, /* 4100 */ NULL, /* 4180 */ NULL, /* 4200 */ NULL, /* 4280 */ NULL, /* 4300 */ NULL, /* 4380 */ NULL, /* 4400 */ NULL, /* 4480 */ NULL, /* 4500 */ NULL, /* 4580 */ NULL, /* 4600 */ NULL, /* 4680 */ NULL, /* 4700 */ NULL, /* 4780 */ NULL, /* 4800 */ NULL, /* 4880 */ NULL, /* 4900 */ NULL, /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ NULL, /* 4c80 */ NULL, /* 4d00 */ NULL, /* 4d80 */ NULL, /* 4e00 */ "\x4c\x41\x4c\x43\x00\x00\x4c\x44\x00\x00\x00\x00\x00\x00\x69\x46\x4c\x57\x4c\x55\x4c\x58\x4c\x56\x69\x47\x4c\x83\x69\x50\x69\x4e\x4c\x82\x4c\x81\x00\x00\x00\x00\x4c\xe1\x4c\xe0\x4c\xdf\x00\x00\x4c\xe2\x4c\xde\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa1\x4d\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xe3\x00\x00\x48\x42\x00\x00\x00\x00\x4c\x59\x00\x00\x4c\x84\x69\x51\x00\x00\x4c\x85\x69\x64\x4e\x8c\x6b\x52\x00\x00\x00\x00\x48\x43\x00\x00\x4c\x5a\x4c\x86\x00\x00\x4c\xe3\x69\x65\x00\x00\x00\x00\x48\x44\x00\x00\x00\x00\x69\x41\x4c\x45\x00\x00\x4c\x5c\x00\x00\x69\x48\x4c\x5d\x00\x00\x00\x00\x4c\x87\x00\x00\x4c\xe4\x4c\xe6\x4c\xe5\x00\x00\x00\x00\x4d\xa3\x4d\xa4\x00\x00\x00\x00\x4f\xe4\x00\x00\x53\xfd\x4c\x42\x00\x00\x00\x00\x69\x42\x4c\x46\x4c\x5f\x4c\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x92\x72\x6f", /* 4e80 */ "\x00\x00\x00\x00\x5b\xa9\x79\x77\x79\x78\x48\x46\x4c\x47\x00\x00\x4c\x89\x00\x00\x00\x00\x4f\xe6\x4c\x48\x69\x49\x4c\x60\x00\x00\x00\x00\x4c\x8a\x4c\x8c\x69\x52\x4c\x8d\x4c\x8b\x00\x00\x00\x00\x00\x00\x4d\xa6\x00\x00\x4f\xe7\x00\x00\x00\x00\x4f\xe8\x51\xe6\x48\x48\x4c\x61\x4c\x8e\x00\x00\x4d\xa7\x4d\xa9\x4d\xa8\x00\x00\x4e\x8d\x00\x00\x00\x00\x4f\xe9\x4f\xea\x51\xe7\x51\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x54\x41\x00\x00\x00\x00\x79\x79\x00\x00\x00\x00\x8f\x66\x4c\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x90\x4c\x8f\x69\x53\x4c\x91\x4c\x97\x00\x00\x4c\x92\x4c\x93\x69\x55\x69\x54\x4c\x95\x4c\x96\x00\x00\x4c\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xe9\x4c\xea\x4c\xeb\x4c\xec\x4c\xe8\x4c\xef\x69\x6b\x00\x00\x69\x67\x69\x6a\x4c\xf0\x4d\x43\x00\x00\x69\x69\x00\x00\x4c\xed\x4c\xee\x4c\xe7\x00\x00\x00\x00\x69\x66\x69\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xb6\x69\x90\x4d\xb3\x4d\xb7\x69\x9a\x69\x8e\x4d\xb4\x69\x92\x00\x00\x00\x00\x00\x00\x4d\xb5\x00\x00\x4d\xb8\x00\x00\x4d\xaa", /* 4f00 */ "\x69\x91\x4d\xb9\x69\x95\x00\x00\x69\x99\x69\x96\x00\x00\x00\x00\x69\x93\x4d\xab\x4d\xad\x4d\xba\x00\x00\x4d\xaf\x69\x8b\x4d\xb2\x4d\xb0\x4d\xb1\x69\x9b\x69\x98\x69\x8f\x4d\xae\x00\x00\x00\x00\x69\x8c\x4d\xac\x00\x00\x00\x00\x00\x00\x69\x94\x00\x00\x00\x00\x00\x00\x00\x00\x69\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x8d\x6a\x48\x00\x00\x4e\xa3\x4e\x96\x00\x00\x00\x00\x6a\x49\x4e\x93\x00\x00\x4e\xa5\x00\x00\x4e\x9b\x00\x00\x4e\x9a\x69\xfa\x4e\x9e\x4e\x99\x6a\x42\x6a\x4a\x00\x00\x6a\x46\x00\x00\x4e\x9c\x00\x00\x00\x00\x4e\x9f\x4e\x90\x4e\xa8\x69\xfc\x00\x00\x00\x00\x6b\x5e\x4e\x8e\x4e\xa4\x4e\x8f\x4e\x97\x4e\x98\x6a\x44\x69\xfd\x4e\x9d\x4e\x95\x69\xf9\x4e\x91\x6a\x47\x4e\xa6\x4e\xa9\x4e\x94\x4e\xa1\x4e\xa7\x4e\x92\x6a\x45\x4e\xa2\x6a\x4b\x69\xfb\x4e\xa0\x6a\x41\x00\x00\x00\x00\x6a\x43\x00\x00\x4f\xf8\x6b\x60\x6b\x6c\x4f\xf0\x00\x00\x6b\x6d\x4f\xeb\x4f\xf5\x00\x00\x00\x00\x4f\xee\x6b\x5a\x4f\xf6\x6b\x59\x6b\x5d\x6b\x64\x6b\x62\x50\x41\x4f\xf9\x6b\x54\x6b\x56\x4f\xfb\x4f\xef", /* 4f80 */ "\x6b\x57\x6b\x63\x6b\x6a\x4f\xf4\x6b\x5c\x6b\x55\x4f\xf3\x6b\x58\x4f\xf7\x6b\x5b\x00\x00\x4f\xf2\x00\x00\x4f\xed\x00\x00\x4f\xfc\x6b\x65\x4f\xfd\x6b\x69\x00\x00\x6b\x67\x6b\x6b\x4f\xfa\x6b\x5f\x6b\x53\x00\x00\x6b\x61\x4f\xf1\x6b\x66\x4f\xec\x6b\x68\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf7\x51\xeb\x00\x00\x00\x00\x6d\x43\x6d\x4b\x00\x00\x51\xea\x51\xf2\x52\x41\x00\x00\x6d\x51\x6d\x4f\x6d\x4a\x00\x00\x00\x00\x00\x00\x51\xec\x6d\x50\x6d\x46\x51\xfa\x51\xf1\x51\xf9\x6d\x41\x00\x00\x6d\x4d\x00\x00\x6d\x44\x51\xf5\x6d\x45\x00\x00\x6c\xfd\x51\xfc\x51\xef\x51\xf8\x51\xee\x00\x00\x6d\x42\x6d\x47\x00\x00\x6d\x4e\x51\xf6\x51\xf3\x6d\x49\x51\xfb\x6d\x4c\x6d\x48\x51\xf0\x51\xfd\x51\xf4\x51\xed\x51\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x52\x00\x00\x54\x5b\x54\x45\x00\x00\x54\x55\x00\x00\x54\x5a\x6f\x93\x6f\x92\x6f\x97\x6f\x98\x54\x48\x00\x00\x54\x51\x00\x00\x00\x00\x00\x00\x54\x5e\x00\x00", /* 5000 */ "\x54\x52\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x8c\x54\x4b\x6f\x8d\x00\x00\x54\x60\x00\x00\x54\x57\x54\x42\x54\x43\x6f\xa0\x56\xa3\x00\x00\x54\x50\x54\x4f\x6f\x8e\x54\x53\x72\x7f\x54\x4a\x6f\x99\x54\x59\x54\x58\x54\x4e\x6f\x91\x6f\x9a\x00\x00\x6f\x8b\x54\x4d\x6f\x9b\x54\x56\x6f\x8f\x54\x44\x00\x00\x54\x47\x54\x46\x6f\x9c\x54\x54\x54\x49\x54\x5d\x54\x5f\x6f\x96\x54\x5c\x00\x00\x6f\x9e\x6f\x90\x6f\x9f\x00\x00\x6f\x94\x00\x00\x6f\x9d\x00\x00\x6f\x95\x00\x00\x00\x00\x00\x00\x00\x00\x54\x4c\x00\x00\x00\x00\x00\x00\x72\x88\x72\x7b\x00\x00\x56\x97\x00\x00\x72\x81\x72\x87\x56\x96\x72\x79\x56\x9a\x72\x7d\x72\x76\x56\x98\x72\x7a\x56\x9d\x56\xa2\x00\x00\x72\x8c\x00\x00\x72\x75\x00\x00\x56\x9e\x00\x00\x72\x8b\x00\x00\x00\x00\x56\x99\x72\x7c\x56\x95\x72\x77\x72\x73\x72\x82\x72\x74\x72\x72\x72\x7e\x72\x85\x72\x86\x56\x9b\x00\x00\x00\x00\x75\xc0\x72\x83\x72\x71\x72\x84\x00\x00\x56\xa5\x72\x89\x56\xa4\x72\x70\x00\x00\x72\x78\x72\x8a\x56\xa0\x56\x9f\x56\x9c\x56\xa1\x00\x00\x00\x00\x56\x93\x00\x00\x00\x00\x56\x94\x00\x00\x00\x00", /* 5080 */ "\x59\x4e\x00\x00\x75\xc3\x75\xbc\x00\x00\x59\x4b\x00\x00\x75\xc4\x00\x00\x00\x00\x00\x00\x75\xba\x75\xbd\x59\x4a\x75\xbe\x00\x00\x00\x00\x59\x4d\x75\xc2\x00\x00\x75\xb8\x75\xb7\x59\x4f\x00\x00\x59\x50\x59\x4c\x59\x51\x75\xb6\x75\xc1\x75\xbf\x75\xb9\x00\x00\x00\x00\x00\x00\x59\x49\x75\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xb0\x5b\xaa\x79\x7d\x5b\xb3\x79\x84\x79\x87\x5b\xac\x5b\xad\x79\x81\x5b\xab\x79\x8a\x5b\xb1\x79\x8b\x00\x00\x79\x86\x5b\xb2\x00\x00\x79\x7a\x5b\xaf\x79\x7b\x00\x00\x79\x85\x79\x83\x00\x00\x79\x7e\x5b\xae\x79\x7c\x5b\xb4\x79\x82\x79\x89\x79\x7f\x79\x88\x00\x00\x00\x00\x5d\xfb\x5d\xf8\x00\x00\x5d\xf9\x00\x00\x7d\x43\x7c\xf8\x5d\xf7\x5d\xf4\x7c\xf9\x00\x00\x00\x00\x5d\xf6\x7c\xfc\x00\x00\x7d\x41\x00\x00\x00\x00\x7d\x48\x00\x00\x00\x00\x7d\x47\x7d\x42\x5d\xf3\x7c\xf7\x5d\xf1\x7c\xfa\x5d\xfc\x7c\xfd\x00\x00\x7d\x44\x5d\xf5\x5d\xf2\x7d\x46\x7d\x45\x5d\xfa\x00\x00\x7c\xfb\x00\x00\x60\x42\x80\x76\x00\x00\x80\x73\x60\x43\x00\x00\x60\x41\x00\x00\x80\x7a\x80\x77\x80\x70", /* 5100 */ "\x5f\xfd\x00\x00\x60\x44\x80\x71\x5f\xfc\x60\x47\x80\x74\x80\x75\x60\x45\x60\x46\x80\x7b\x80\x78\x80\x79\x00\x00\x00\x00\x00\x00\x62\x53\x83\xc3\x62\x50\x83\xc0\x62\x52\x62\x54\x00\x00\x83\xc1\x62\x51\x00\x00\x83\xc2\x00\x00\x83\xbf\x00\x00\x00\x00\x63\xc0\x86\xc8\x63\xc1\x86\xc6\x00\x00\x86\xc7\x86\xc5\x86\xc4\x00\x00\x00\x00\x86\xc9\x63\xbf\x00\x00\x00\x00\x89\x65\x89\x66\x00\x00\x80\x72\x89\x64\x63\xc2\x66\x4b\x8b\x5a\x8b\x5b\x00\x00\x67\x83\x67\x84\x8e\x70\x8e\x6f\x67\xd7\x67\xd6\x90\x41\x00\x00\x4c\x4a\x4c\x62\x4c\x99\x00\x00\x4c\x98\x4c\xf2\x4c\xf1\x4d\xbd\x4d\xbc\x4d\xbe\x4d\xbb\x00\x00\x4e\xab\x4e\xaa\x4e\xac\x00\x00\x00\x00\x00\x00\x00\x00\x50\x43\x00\x00\x50\x42\x50\x44\x00\x00\x52\x42\x00\x00\x46\xf1\x6f\xa1\x46\xf2\x56\xa6\x46\xf4\x46\xf3\x75\xc5\x00\x00\x46\xf5\x5d\xfd\x46\xf6\x00\x00\x4c\x4b\x00\x00\x4c\x9a\x4d\xbf\x50\x45\x00\x00\x4c\x4c\x4c\x9d\x4c\x9b\x4c\x9c\x00\x00\x00\x00\x4d\xc0\x00\x00\x00\x00\x00\x00\x4e\xad\x50\x47\x50\x46\x50\x48\x00\x00\x00\x00\x00\x00\x54\x61\x00\x00\x00\x00\x00\x00", /* 5180 */ "\x62\x55\x00\x00\x48\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4f\x00\x00\x4c\xf3\x4c\xf4\x00\x00\x00\x00\x4d\xc1\x00\x00\x6a\x4c\x00\x00\x52\x44\x52\x43\x6f\xa3\x6f\xa2\x56\xa7\x48\x4e\x4c\x9e\x69\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x6e\x00\x00\x52\x45\x00\x00\x54\x64\x00\x00\x54\x62\x54\x63\x00\x00\x00\x00\x00\x00\x00\x00\x62\x56\x48\x4f\x4c\xf5\x00\x00\x00\x00\x00\x00\x4d\xc2\x69\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xae\x4e\xaf\x00\x00\x6a\x4d\x00\x00\x00\x00\x6b\x6f\x50\x49\x6b\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xa5\x6f\xa6\x54\x67\x00\x00\x6f\xa7\x00\x00\x6f\xa4\x54\x68\x54\x66\x54\x65\x6f\xa8\x00\x00\x72\x8d\x00\x00\x00\x00\x00\x00\x75\xc6\x00\x00\x00\x00\x79\x8c\x7d\x49\x00\x00\x00\x00\x00\x00\x60\x48\x62\x57\x83\xc4\x00\x00\x4c\x4d\x4c\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xa8\x59\x53\x00\x00\x5e\x41\x00\x00\x69\x43\x4c\x9f\x00\x00\x4c\xf8\x4c\xf6\x4c\xf7\x00\x00\x00\x00\x50\x4a\x00\x00\x00\x00", /* 5200 */ "\x4c\x4e\x4c\x4f\x00\x00\x4c\x63\x00\x00\x00\x00\x4c\xa0\x4c\xa1\x4c\xa2\x69\x9e\x4c\xf9\x00\x00\x69\x6c\x00\x00\x4d\xc6\x00\x00\x69\x9f\x4d\xc4\x4d\xc5\x69\x9d\x00\x00\x00\x00\x4d\xc7\x4d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x4e\x51\xce\x6a\x4f\x00\x00\x00\x00\x6a\x50\x00\x00\x00\x00\x4e\xb1\x4e\xb0\x00\x00\x00\x00\x4e\xb4\x4e\xb2\x4e\xb3\x00\x00\x00\x00\x00\x00\x50\x50\x00\x00\x50\x4f\x6b\x75\x6b\x72\x6b\x73\x00\x00\x6b\x71\x50\x51\x50\x4d\x50\x4c\x00\x00\x50\x4e\x50\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x52\x00\x00\x52\x47\x6d\x53\x00\x00\x6b\x74\x52\x4c\x00\x00\x6d\x54\x52\x48\x52\x4b\x52\x4a\x52\x49\x52\x46\x00\x00\x00\x00\x00\x00\x6f\xab\x00\x00\x54\x6b\x6f\xae\x54\x69\x00\x00\x00\x00\x00\x00\x6f\xaa\x54\x6c\x54\x6a\x54\x6d\x6f\xac\x6f\xad\x00\x00\x6f\xa9\x6f\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x57\x56\xa9\x72\x8e\x72\x90\x72\x8f\x72\x91\x56\xaa\x00\x00\x00\x00\x59\x54\x00\x00\x59\x55\x59\x56\x00\x00\x5b\xb6\x79\x8e\x00\x00\x79\x8d\x79\x8f\x79\x90\x5b\xb7\x00\x00\x5b\xb5", /* 5280 */ "\x7d\x4a\x7d\x4b\x5e\x43\x5e\x42\x7e\xe2\x00\x00\x00\x00\x60\x49\x60\x4a\x60\x4b\x60\x4d\x80\x7c\x80\x7d\x60\x4c\x00\x00\x00\x00\x00\x00\x62\x58\x00\x00\x62\x59\x00\x00\x00\x00\x8b\x5c\x8e\x72\x8e\x71\x90\x42\x00\x00\x4c\x50\x00\x00\x00\x00\x00\x00\x4c\xfb\x4c\xfa\x00\x00\x00\x00\x4d\xc8\x00\x00\x00\x00\x69\xa0\x00\x00\x00\x00\x4e\xb6\x4e\xb7\x4e\xb5\x4e\xb8\x6a\x51\x6a\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x54\x6b\x76\x00\x00\x50\x53\x00\x00\x6d\x55\x52\x50\x6d\x56\x52\x4f\x00\x00\x00\x00\x00\x00\x52\x4d\x00\x00\x52\x4e\x00\x00\x00\x00\x00\x00\x6f\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x56\xab\x72\x93\x00\x00\x56\xae\x72\x92\x57\xaa\x56\xad\x56\xac\x00\x00\x59\x5a\x00\x00\x59\x59\x59\x58\x5b\xb8\x00\x00\x00\x00\x5b\xbb\x5b\xbc\x5b\xba\x00\x00\x5b\xb9\x00\x00\x00\x00\x7d\x4c\x00\x00\x7d\x4d\x00\x00\x00\x00\x00\x00\x80\x7f\x60\x4e\x80\x7e\x00\x00\x62\x5a\x86\xca\x63\xc3\x00\x00\x8b\x5d\x66\xdf\x48\x54\x4c\x64\x4c\xa3\x69\x57\x00\x00\x4c\xa4\x4c\xa5", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xfc\x4c\xfd\x00\x00\x4d\xc9\x6a\x53\x6b\x77\x6b\x78\x00\x00\x52\x51\x6f\xb1\x56\xb0\x56\xaf\x75\xc8\x75\xc7\x00\x00\x00\x00\x4c\x51\x4c\xa6\x4d\x41\x00\x00\x56\xb1\x69\x44\x00\x00\x69\x6d\x4d\x42\x00\x00\x69\xa2\x4d\xcb\x4d\xca\x69\xa1\x4e\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x6e\x00\x00\x00\x00\x72\x94\x00\x00\x5b\xbd\x7d\x4e\x5e\x44\x00\x00\x00\x00\x83\xc5\x00\x00\x00\x00\x8c\xeb\x48\x57\x4c\xa7\x00\x00\x00\x00\x6b\x79\x6d\x57\x56\xb4\x56\xb2\x56\xb3\x4c\x52\x00\x00\x4c\x65\x45\x4b\x4c\xaa\x00\x00\x4c\xa9\x4c\xa8\x4d\x45\x4d\x44\x00\x00\x69\x6e\x69\xa3\x00\x00\x00\x00\x00\x00\x50\x58\x50\x55\x50\x57\x50\x56\x00\x00\x00\x00\x52\x52\x00\x00\x00\x00\x59\x5b\x00\x00\x4c\x53\x00\x00\x4c\xab\x00\x00\x4d\x47\x4d\x46\x00\x00\x6a\x54\x00\x00\x00\x00\x50\x59\x00\x00\x00\x00\x48\x5a\x00\x00\x00\x00\x69\x58\x00\x00\x4d\x49\x4d\x48\x4d\xcc\x4d\xcd\x6a\x55\x4e\xba\x00\x00\x4e\xbb\x00\x00\x50\x5a\x50\x5b\x50\x5c\x00\x00\x52\x53\x6d\x58\x00\x00\x00\x00\x54\x6f", /* 5380 */ "\x00\x00\x00\x00\x69\x45\x00\x00\x4c\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xa4\x00\x00\x00\x00\x00\x00\x6a\x56\x6a\x57\x00\x00\x00\x00\x6b\x7a\x00\x00\x6b\x7b\x00\x00\x6d\x5a\x6d\x59\x6d\x5c\x6d\x5b\x52\x54\x00\x00\x72\x95\x54\x71\x6f\xb2\x54\x70\x00\x00\x00\x00\x00\x00\x00\x00\x75\xc9\x59\x5c\x00\x00\x75\xca\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x4f\x5e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x60\x4f\x00\x00\x8b\x5e\x00\x00\x48\x5c\x00\x00\x00\x00\x69\x59\x00\x00\x4d\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xb5\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x54\x4c\x66\x4c\xae\x4c\xad\x00\x00\x4c\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x5e\x00\x00\x50\x5d\x50\x5f\x00\x00\x00\x00\x00\x00\x52\x55\x00\x00\x00\x00\x00\x00\x54\x72\x00\x00\x83\xc6\x65\x5a\x4c\x67\x4d\x4c\x4d\x5b\x4d\x56\x00\x00\x4d\x51\x4d\x50\x4d\x57\x4d\x55\x4d\x4e\x4d\x5c\x4d\x4f\x4d\x4b\x4d\x5a\x4d\x59\x4d\x58\x4d\x4d\x00\x00\x4d\x54\x00\x00\x00\x00\x4d\x53\x00\x00\x00\x00\x4d\x5d\x4d\x52\x00\x00\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x4d\xd3\x00\x00\x4d\xd9\x4d\xd5\x00\x00\x4d\xdb\x69\xa5\x4d\xd8\x4d\xce\x4d\xd1\x4d\xd4\x4d\xd0\x4d\xd7\x4d\xda\x4d\xcf\x4d\xd2\x4d\xd6\x4d\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x60\x6a\x5d\x00\x00\x4e\xc8\x6a\x5e\x4e\xbc\x4e\xbe\x4e\xd6\x4e\xd1\x00\x00\x00\x00\x00\x00\x6a\x65\x6a\x5f\x4e\xc0\x4e\xc2\x6a\x64\x4e\xc9\x6a\x5a\x4e\xd5\x4e\xd7\x4e\xbd\x4e\xce\x00\x00\x6a\x58\x4e\xd4\x00\x00\x4e\xc5\x00\x00\x4e\xcf\x4e\xd0\x6a\x59\x4e\xcd\x4e\xcb\x00\x00\x4e\xcc\x4e\xd2\x6a\x61\x4e\xbf\x00\x00\x4e\xd3\x6a\x63\x4e\xc7\x4e\xc4\x00\x00\x6a\x5c\x4e\xc3\x6a\x66\x4e\xc6\x00\x00\x4e\xca\x00\x00\x00\x00\x00\x00\x4e\xc1\x6a\x62\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x8d\x6b\x8c\x50\x71\x6b\x8f\x6b\x91\x6b\x86\x6b\x89\x6b\x90\x50\x72\x00\x00\x00\x00\x6b\x83\x6b\x87\x00\x00\x00\x00\x6b\x8b\x6d\x6b\x50\x6d\x6d\x6f\x50\x60\x6b\x88\x50\x61\x50\x6e\x50\x67\x50\x63\x00\x00\x6b\x84\x50\x66\x50\x6b\x50\x74\x6b\x85\x6b\x7d", /* 5480 */ "\x50\x65\x6b\x7e\x6b\x81\x00\x00\x50\x68\x00\x00\x50\x6a\x6b\x7c\x6b\x82\x00\x00\x00\x00\x50\x73\x50\x6f\x6b\x8a\x50\x75\x00\x00\x50\x6c\x6b\x7f\x50\x69\x00\x00\x00\x00\x50\x64\x50\x62\x00\x00\x6b\x8e\x00\x00\x50\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x6a\x6d\x5e\x6d\x6d\x00\x00\x00\x00\x6d\x60\x52\x5c\x52\x6a\x52\x58\x52\x69\x52\x61\x52\x66\x52\x56\x6d\x5f\x6d\x65\x52\x65\x6d\x71\x52\x67\x00\x00\x52\x5d\x00\x00\x00\x00\x6d\x67\x6d\x64\x52\x5b\x00\x00\x6d\x5d\x52\x68\x6d\x6c\x52\x60\x6d\x6e\x52\x6b\x52\x57\x52\x62\x52\x5f\x6d\x62\x52\x63\x6d\x68\x6d\x69\x52\x5e\x52\x64\x52\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x52\x59\x6d\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x70\x00\x00\x6f\xc6\x54\x7f\x6f\xb4\x00\x00\x6f\xb9\x54\x78\x54\x84\x6f\xb7\x54\x73\x54\x7d\x54\x83\x6f\xbe\x00\x00\x54\x7e\x54\x82\x00\x00\x00\x00\x6f\xc1\x54\x79\x6f\xb8\x00\x00\x00\x00\x00\x00\x6f\xc4\x6f\xc5\x00\x00\x54\x7b\x6f\xc3\x54\x77\x54\x87\x00\x00\x6f\xbb", /* 5500 */ "\x00\x00\x54\x75\x00\x00\x6f\xc8\x6f\xbc\x6f\xc0\x54\x7a\x54\x86\x6f\xbd\x54\x81\x6f\xc2\x6f\xc9\x72\xa4\x00\x00\x6f\xc7\x54\x88\x54\x74\x6f\xbf\x6f\xb6\x00\x00\x54\x7c\x00\x00\x00\x00\x6f\xb5\x00\x00\x00\x00\x6f\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xb3\x54\x85\x00\x00\x00\x00\x72\x9c\x00\x00\x56\xc8\x72\xaa\x56\xc6\x56\xc3\x72\xa1\x56\xbf\x72\xa5\x56\xca\x72\x9b\x72\xa0\x72\x9f\x54\x76\x56\xc5\x72\xa8\x00\x00\x72\xab\x72\x98\x00\x00\x59\x6e\x00\x00\x72\xac\x56\xcb\x00\x00\x56\xbd\x56\xba\x72\xa3\x56\xb7\x00\x00\x72\xa9\x00\x00\x56\xbe\x72\xad\x00\x00\x72\x99\x72\xa7\x56\xc1\x72\x9a\x72\x9d\x72\xa2\x00\x00\x00\x00\x56\xc2\x56\xc0\x56\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x56\xc7\x00\x00\x56\xbb\x57\x97\x00\x00\x56\xbc\x72\x9e\x56\xc9\x56\xc4\x72\xa6\x56\xb9\x00\x00\x00\x00\x00\x00\x56\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x96\x72\x97\x75\xcf\x00\x00\x00\x00\x00\x00\x59\x5d\x59\x60\x75\xda\x59\x74\x75\xdd", /* 5580 */ "\x59\x5e\x75\xd6\x59\x64\x59\x6a\x5a\xc2\x00\x00\x00\x00\x59\x68\x75\xd3\x59\x75\x59\x61\x59\x69\x75\xdb\x79\x9e\x75\xe0\x75\xd4\x00\x00\x75\xcb\x75\xd8\x75\xd2\x59\x67\x75\xde\x00\x00\x00\x00\x59\x63\x59\x77\x59\x70\x00\x00\x59\x65\x59\x62\x00\x00\x59\x6d\x00\x00\x75\xdf\x75\xd1\x75\xd7\x75\xd9\x75\xcd\x75\xdc\x59\x5f\x75\xcc\x00\x00\x59\x66\x59\x76\x59\x72\x75\xce\x59\x6c\x00\x00\x00\x00\x59\x73\x59\x6f\x59\x6b\x00\x00\x75\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x71\x00\x00\x00\x00\x00\x00\x79\x9c\x79\x98\x00\x00\x79\xa7\x79\x91\x79\x9a\x5b\xcb\x5b\xcc\x5b\xc4\x79\xa3\x5b\xce\x79\x96\x79\x95\x79\x93\x79\xa5\x5b\xc2\x79\x9f\x79\x94\x5b\xc5\x79\x9d\x5b\xc0\x79\x99\x79\xa0\x79\xa2\x00\x00\x00\x00\x79\xa6\x5b\xc9\x79\x92\x5b\xc3\x79\x97\x00\x00\x5b\xbe\x00\x00\x5b\xca\x79\xa1\x5b\xc6\x5b\xc7\x5b\xcd\x5b\xc1\x46\xf7\x5b\xbf\x79\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xc8\x00\x00\x00\x00\x79\xa4\x00\x00\x00\x00\x00\x00\x5e\x55\x5e\x50\x00\x00\x7d\x5e\x7d\x5a\x00\x00\x7d\x54\x5e\x4a\x5e\x46\x7d\x5d", /* 5600 */ "\x5e\x47\x7d\x57\x7d\x59\x00\x00\x7d\x5c\x00\x00\x5e\x4c\x00\x00\x5e\x53\x5e\x4d\x00\x00\x00\x00\x7d\x52\x5e\x4e\x5e\x4f\x7d\x55\x5e\x54\x00\x00\x7d\x53\x7d\x58\x5e\x4b\x7d\x51\x5e\x51\x5e\x49\x00\x00\x00\x00\x00\x00\x5e\x48\x7d\x56\x7d\x5b\x00\x00\x5e\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x50\x00\x00\x60\x56\x80\x91\x00\x00\x80\x8e\x00\x00\x60\x50\x60\x5c\x60\x5d\x00\x00\x60\x53\x80\x8c\x60\x55\x80\x84\x60\x5b\x00\x00\x80\x90\x60\x52\x80\x92\x60\x51\x00\x00\x80\x8d\x80\x8f\x60\x54\x80\x8b\x80\x85\x80\x82\x00\x00\x00\x00\x75\xd0\x80\x88\x00\x00\x80\x81\x80\x87\x80\x86\x00\x00\x80\x83\x00\x00\x60\x58\x00\x00\x00\x00\x00\x00\x00\x00\x60\x57\x00\x00\x00\x00\x00\x00\x60\x59\x80\x89\x62\x5b\x80\x8a\x00\x00\x00\x00\x00\x00\x83\xcf\x00\x00\x83\xc8\x00\x00\x62\x67\x83\xcc\x62\x5f\x62\x63\x83\xcb\x00\x00\x62\x62\x62\x5e\x62\x61\x62\x5c\x62\x66\x83\xcd\x83\xc9\x62\x65\x83\xc7\x62\x64\x83\xce\x83\xca\x60\x5a\x00\x00\x62\x68\x83\xd0\x62\x60\x62\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x86\xd1\x86\xd3", /* 5680 */ "\x63\xc5\x86\xd4\x86\xd2\x86\xd0\x86\xcf\x63\xc7\x86\xce\x63\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x86\xcc\x86\xcd\x63\xc4\x63\xc9\x63\xc6\x00\x00\x00\x00\x86\xcb\x00\x00\x65\x5b\x00\x00\x89\x69\x89\x67\x89\x6c\x89\x6a\x00\x00\x89\x68\x89\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x4c\x8b\x61\x8b\x62\x66\xe0\x00\x00\x8b\x63\x8b\x5f\x8b\x64\x8b\x60\x65\x5c\x00\x00\x00\x00\x00\x00\x8c\xec\x8c\xee\x66\xe3\x8c\xed\x66\xe2\x66\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe4\x8e\x74\x8e\x75\x00\x00\x67\x86\x67\x85\x67\x87\x8e\x73\x00\x00\x8f\x68\x8f\x67\x00\x00\x67\xd8\x67\xda\x67\xd9\x8f\x69\x68\x54\x90\xb5\x00\x00\x00\x00\x00\x00\x68\x7d\x00\x00\x90\xb4\x90\xfd\x00\x00\x00\x00\x69\x4a\x00\x00\x00\x00\x4d\x5f\x4d\x5e\x00\x00\x4d\xdf\x4d\xde\x69\xa7\x4d\xdd\x69\xa6\x00\x00\x00\x00\x4e\xda\x6a\x69\x00\x00\x6a\x68\x00\x00\x00\x00\x4e\xd8\x4e\xdb\x00\x00\x00\x00\x6a\x67\x00\x00\x4e\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x92\x00\x00\x6b\x93\x50\x76\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6c", /* 5700 */ "\x00\x00\x6f\xca\x6f\xcb\x54\x89\x54\x8a\x00\x00\x00\x00\x72\xaf\x56\xcd\x56\xcf\x72\xae\x56\xce\x75\xe1\x59\x78\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xcf\x5b\xd0\x79\xa8\x00\x00\x5e\x57\x00\x00\x5e\x56\x00\x00\x80\x93\x83\xd2\x83\xd1\x00\x00\x91\x7c\x4c\x68\x69\x5a\x00\x00\x69\x6f\x69\x70\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe2\x4d\xe6\x69\xa9\x00\x00\x4d\xe4\x4d\xe3\x69\xa8\x4d\xe5\x4d\xe1\x00\x00\x00\x00\x4d\xe0\x69\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xe5\x00\x00\x00\x00\x4e\xe2\x00\x00\x4e\xde\x6a\x6a\x00\x00\x00\x00\x00\x00\x6a\x6b\x00\x00\x4e\xe0\x00\x00\x6a\x6d\x4e\xdc\x6a\x6e\x6a\x6c\x4e\xdf\x4e\xe1\x4e\xe4\x4e\xe3\x4e\xdd\x6a\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x7b\x6b\xa0\x00\x00\x50\x7d\x00\x00\x50\x7c\x00\x00\x6b\xa1\x50\x7a\x50\x79\x6b\x97\x00\x00\x6b\x96\x00\x00\x6b\x94\x6b\x99\x6b\x98\x6b\x95\x6b\x9e\x6b\x9f\x6b\x9c\x6b\x9a\x50\x78\x00\x00\x00\x00\x00\x00\x6b\x9d\x50\x7e\x6b\xa2\x00\x00\x00\x00", /* 5780 */ "\x6b\x9b\x00\x00\x52\x6d\x50\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6e\x6d\x76\x00\x00\x00\x00\x6d\x7c\x00\x00\x00\x00\x00\x00\x52\x74\x6d\x7a\x6d\x81\x00\x00\x6d\x77\x6d\x7b\x6d\x7d\x6d\x7f\x6d\x79\x00\x00\x6d\x78\x6d\x73\x6d\x74\x52\x6f\x00\x00\x52\x71\x52\x70\x6d\x75\x6d\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x72\x6f\xd5\x00\x00\x6f\xd4\x6f\xd9\x6f\xd0\x00\x00\x6f\xd3\x6f\xd2\x00\x00\x6f\xd6\x00\x00\x6f\xda\x54\x8b\x54\x8e\x00\x00\x00\x00\x6f\xd1\x6f\xd7\x00\x00\x00\x00\x00\x00\x54\x8d\x6f\xcc\x00\x00\x52\x72\x72\xbd\x6f\xd8\x00\x00\x6f\xcf\x00\x00\x54\x8c\x6f\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\xb4\x00\x00\x00\x00\x56\xd0\x56\xd4\x72\xc4\x72\xb2\x72\xc0\x56\xd5\x72\xc2\x00\x00\x72\xc8\x00\x00\x72\xcc\x00\x00\x00\x00\x72\xc3\x72\xb7\x72\xbf\x00\x00\x72\xcd\x72\xcb\x72\xc1\x72\xbc\x72\xb5\x75\xe9\x72\xb3\x56\xd9\x72\xba\x56\xda\x56\xd6\x72\xb0\x72\xc6\x72\xb8\x00\x00\x00\x00", /* 5800 */ "\x72\xb6\x72\xc9\x56\xd7\x00\x00\x72\xcf\x56\xd1\x56\xd3\x72\xbe\x72\xb9\x54\x8f\x56\xd2\x72\xbb\x72\xca\x72\xce\x72\xc5\x00\x00\x72\xc7\x00\x00\x00\x00\x00\x00\x72\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe4\x00\x00\x75\xed\x75\xec\x59\x81\x75\xe5\x00\x00\x59\x82\x59\x7f\x00\x00\x75\xe7\x59\x7c\x75\xeb\x00\x00\x75\xe6\x75\xe8\x75\xe2\x59\x7a\x00\x00\x75\xf5\x75\xf4\x75\xf1\x59\x79\x59\x7d\x59\x7e\x6f\xcd\x75\xee\x59\x7b\x56\xd8\x75\xf0\x75\xe3\x75\xf3\x75\xf2\x00\x00\x75\xf6\x00\x00\x79\xb6\x00\x00\x75\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xea\x79\xae\x5b\xda\x5b\xdd\x5b\xd8\x79\xad\x79\xb1\x79\xac\x00\x00\x5b\xd2\x5b\xdc\x79\xa9\x5b\xd6\x79\xb0\x00\x00\x5b\xd4\x5b\xd3\x79\xb3\x5b\xd5\x79\xb5\x00\x00\x79\xb2\x5b\xd1\x00\x00\x00\x00\x00\x00\x5b\xdb\x79\xb7\x79\xab\x79\xb4\x00\x00\x00\x00\x79\xaa\x00\x00\x00\x00\x5b\xd7\x00\x00\x5b\xd9\x00\x00\x79\xaf\x00\x00\x79\xb8\x00\x00\x00\x00\x7d\x66\x5e\x58\x7d\x6c\x00\x00\x00\x00\x5e\x5d\x7d\x68\x7d\x6f\x7d\x60\x5e\x5f\x5e\x59\x7d\x65", /* 5880 */ "\x60\x5e\x7d\x64\x7d\x6d\x5e\x5a\x00\x00\x5e\x5e\x7d\x63\x7d\x69\x7d\x6e\x7d\x5f\x5e\x5c\x7d\x67\x00\x00\x00\x00\x7d\x6b\x7d\x71\x7d\x61\x7d\x6a\x00\x00\x5e\x5b\x7d\x70\x00\x00\x00\x00\x00\x00\x7d\x62\x00\x00\x00\x00\x00\x00\x60\x62\x80\x95\x60\x60\x60\x5f\x80\x97\x80\x9c\x00\x00\x80\x98\x00\x00\x80\x9b\x60\x65\x00\x00\x62\x4e\x60\x64\x00\x00\x80\x94\x80\x9a\x00\x00\x60\x63\x80\x99\x00\x00\x80\x96\x00\x00\x60\x61\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\xd7\x00\x00\x83\xd9\x83\xd4\x62\x6a\x83\xd6\x00\x00\x62\x69\x83\xd8\x00\x00\x00\x00\x62\x6c\x83\xda\x62\x6b\x83\xd3\x83\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x63\xcd\x86\xd7\x00\x00\x63\xcc\x86\xd8\x63\xcb\x86\xd6\x63\xca\x86\xd5\x00\x00\x65\x5e\x65\x5d\x8b\x65\x8b\x67\x00\x00\x8b\x66\x66\x4d\x66\x4e\x00\x00\x00\x00\x66\x4f\x8c\xef\x66\xe5\x00\x00\x00\x00\x90\x44\x90\x43\x68\x7e\x00\x00\x4c\x69\x4c\xb0\x00\x00\x00\x00\x4e\xe6\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x82\x00\x00\x00\x00\x00\x00\x00\x00\x59\x83\x59\x84\x00\x00\x79\xb9\x5e\x60\x7d\x72\x80\x9d", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x69\x5b\x00\x00\x00\x00\x6a\x70\x00\x00\x00\x00\x00\x00\x48\x62\x00\x00\x6b\xa3\x6d\x83\x6f\xdb\x54\x90\x00\x00\x00\x00\x8b\x68\x00\x00\x67\x88\x4c\x6a\x4d\x60\x69\x71\x00\x00\x4d\xe7\x4d\xe8\x00\x00\x50\x7f\x00\x00\x00\x00\x00\x00\x56\xdb\x00\x00\x5e\x62\x00\x00\x5e\x63\x5e\x61\x00\x00\x4c\x6b\x00\x00\x4c\xb1\x4c\xb3\x4c\xb2\x69\x5c\x4c\xb4\x4d\x61\x69\x72\x00\x00\x4d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xe9\x4d\xea\x00\x00\x00\x00\x00\x00\x69\xab\x00\x00\x4e\xe7\x00\x00\x6a\x71\x00\x00\x00\x00\x00\x00\x50\x84\x6b\xa4\x00\x00\x50\x82\x50\x83\x50\x81\x6f\xdc\x00\x00\x00\x00\x00\x00\x52\x78\x52\x77\x52\x79\x52\x76\x00\x00\x6d\x84\x50\x85\x52\x75\x00\x00\x54\x91\x54\x92\x00\x00\x54\x93\x00\x00\x72\xd0\x00\x00\x00\x00\x00\x00\x59\x85\x75\xf7\x56\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xde\x00\x00\x5e\x65\x5e\x64\x7d\x73\x00\x00\x60\x66\x62\x6d\x00\x00\x89\x6d\x8f\x6a\x90\x45\x4c\x6c\x4d\x63\x00\x00\x4d\x64\x69\xb1\x4d\xec\x4d\xef\x00\x00\x69\xaf\x69\xad\x4d\xee\x69\xb0\x69\xb2", /* 5980 */ "\x69\xac\x4d\xf1\x4d\xf0\x4d\xed\x4d\xeb\x69\xae\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xf2\x00\x00\x00\x00\x4e\xef\x6a\x76\x6a\x79\x6a\x78\x00\x00\x4e\xe9\x4e\xf1\x00\x00\x00\x00\x4e\xee\x6a\x75\x6a\x73\x4e\xed\x00\x00\x00\x00\x00\x00\x4e\xe8\x4e\xeb\x00\x00\x6a\x74\x6a\x7b\x6a\x77\x4e\xec\x4e\xf0\x4e\xf3\x6a\x72\x6a\x7a\x4e\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x8a\x50\x92\x00\x00\x6b\xb0\x6b\xa9\x50\x93\x6b\xb4\x6b\xa5\x6b\xac\x00\x00\x00\x00\x50\x89\x6b\xa6\x50\x87\x6b\xad\x6b\xb1\x50\x86\x00\x00\x6b\xb2\x6b\xab\x00\x00\x6b\xae\x00\x00\x50\x95\x50\x8c\x6b\xb5\x6b\xb3\x00\x00\x50\x91\x50\x8f\x6b\xaa\x50\x8e\x6b\xa8\x6b\xa7\x50\x8d\x50\x8b\x50\x94\x50\x90\x50\x88\x00\x00\x6b\xaf\x00\x00\x52\x7b\x00\x00\x52\x83\x6d\x92\x52\x7a\x6d\x8a\x6d\x86\x00\x00\x6d\x96\x6d\x85\x00\x00\x52\x7d\x6d\x8f\x52\x81\x52\x84\x00\x00\x52\x7e\x6d\x93\x52\x82\x00\x00\x54\x9a\x6d\x99\x6d\x87\x00\x00\x00\x00\x6d\x89\x6d\x90\x6d\x94\x6d\x98\x6d\x95\x6d\x8e\x6d\x91\x00\x00\x00\x00\x6d\x8b\x52\x86\x6d\x8d\x6d\x8c\x6d\x97\x52\x7c", /* 5a00 */ "\x6d\x88\x52\x85\x00\x00\x52\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xa0\x6f\xe4\x00\x00\x54\x9f\x00\x00\x00\x00\x6f\xe2\x00\x00\x54\x94\x00\x00\x54\x99\x00\x00\x6f\xe1\x6f\xde\x6f\xe3\x54\x95\x6f\xdd\x00\x00\x54\x98\x54\x96\x00\x00\x6f\xe5\x54\x97\x54\x9b\x00\x00\x00\x00\x54\x9c\x00\x00\x54\x9e\x00\x00\x00\x00\x00\x00\x54\x9d\x00\x00\x00\x00\x00\x00\x6f\xdf\x6f\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xe6\x00\x00\x72\xd7\x56\xdd\x76\x48\x72\xd6\x72\xe9\x00\x00\x00\x00\x56\xe3\x00\x00\x72\xe7\x00\x00\x56\xe2\x56\xde\x72\xf0\x72\xe0\x72\xe3\x00\x00\x56\xe6\x72\xed\x72\xe5\x56\xdf\x56\xe7\x00\x00\x72\xea\x72\xe8\x00\x00\x00\x00\x72\xd9\x72\xee\x72\xe2\x72\xdd\x00\x00\x72\xd3\x72\xef\x72\xdf\x72\xd2\x00\x00\x56\xe5\x72\xe4\x72\xf1\x72\xe1\x72\xd5\x72\xda\x72\xd1\x00\x00\x56\xe4\x00\x00\x72\xde\x72\xdb\x56\xe0\x72\xd4\x00\x00\x72\xec\x56\xe1\x00\x00\x72\xdc\x72\xd8\x00\x00\x00\x00\x72\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x86\x76\x41\x00\x00\x75\xfb\x76\x4f\x76\x43\x76\x50\x00\x00\x59\x88", /* 5a80 */ "\x00\x00\x00\x00\x00\x00\x76\x4c\x76\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x4a\x76\x4d\x76\x51\x00\x00\x72\xe6\x76\x53\x79\xcd\x00\x00\x59\x89\x76\x54\x75\xf9\x76\x46\x00\x00\x76\x4b\x00\x00\x00\x00\x59\x87\x59\x8a\x76\x52\x76\x55\x75\xfd\x75\xfa\x00\x00\x00\x00\x75\xfc\x00\x00\x00\x00\x76\x44\x76\x42\x59\x8b\x00\x00\x76\x4e\x00\x00\x00\x00\x76\x45\x00\x00\x76\x47\x75\xf8\x79\xc1\x79\xbf\x5b\xe7\x5b\xe5\x79\xc9\x79\xc0\x79\xca\x79\xc6\x79\xbe\x79\xcc\x79\xbd\x79\xc4\x5b\xe4\x5b\xe3\x5b\xe2\x79\xc2\x79\xc7\x5b\xdf\x5b\xe6\x00\x00\x79\xbb\x00\x00\x79\xc5\x79\xba\x79\xc3\x5b\xe0\x79\xc8\x79\xbc\x5b\xe1\x79\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x77\x5e\x6a\x5e\x69\x5e\x6b\x7d\x84\x7d\x79\x7d\x7f\x7d\x74\x7d\x83\x7d\x82\x7d\x86\x7d\x7e\x5e\x66\x7d\x7d\x5e\x6c\x00\x00\x7d\x76\x5e\x67\x00\x00\x7d\x85\x5e\x68\x7d\x78\x7d\x7b\x7d\x81\x7d\x7a\x7d\x75\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x7c\x80\x9f\x60\x6a\x80\xa2\x80\xa1\x80\xa4\x80\xa6\x00\x00\x60\x68\x00\x00\x80\xa0\x00\x00\x80\x9e", /* 5b00 */ "\x00\x00\x80\xa7\x80\xa5\x80\xa3\x00\x00\x80\xa9\x00\x00\x80\xa8\x60\x6c\x60\x67\x00\x00\x60\x69\x60\x6b\x00\x00\x00\x00\x80\xaa\x83\xe1\x00\x00\x00\x00\x83\xe0\x83\xdf\x00\x00\x83\xe2\x83\xdb\x00\x00\x83\xdc\x83\xe4\x83\xdd\x00\x00\x62\x6e\x83\xe6\x00\x00\x83\xe5\x83\xde\x00\x00\x86\xdc\x63\xd0\x86\xda\x86\xdf\x86\xde\x83\xe3\x00\x00\x63\xcf\x00\x00\x86\xdd\x86\xd9\x86\xe1\x86\xe0\x63\xce\x00\x00\x86\xdb\x00\x00\x62\x6f\x00\x00\x00\x00\x00\x00\x65\x5f\x00\x00\x00\x00\x00\x00\x89\x6e\x8b\x69\x8b\x6a\x8b\x6b\x66\xe6\x00\x00\x00\x00\x66\xe7\x00\x00\x8c\xf0\x00\x00\x8e\x77\x8e\x76\x00\x00\x00\x00\x8f\x6b\x8f\x6c\x90\x46\x90\xb6\x00\x00\x4c\x6d\x4c\x6e\x00\x00\x4c\x6f\x4c\xb5\x4d\x65\x69\xb3\x4d\xf2\x4d\xf3\x00\x00\x4e\xf6\x4e\xf7\x4e\xf5\x4e\xf4\x00\x00\x50\x96\x00\x00\x00\x00\x6b\xb6\x50\x98\x50\x97\x6b\xb7\x00\x00\x00\x00\x00\x00\x52\x87\x00\x00\x54\xa1\x6f\xe7\x00\x00\x72\xf3\x00\x00\x56\xe8\x59\x8d\x72\xf2\x59\x8c\x00\x00\x5e\x6d\x00\x00\x7d\x87\x62\x70\x00\x00\x63\xd1\x86\xe2\x00\x00\x66\xe8\x00\x00\x67\xdb", /* 5b80 */ "\x48\x67\x69\x73\x00\x00\x4d\x66\x69\x74\x4d\xf6\x00\x00\x4d\xf4\x4d\xf5\x4d\xf7\x00\x00\x4e\xf9\x4e\xf8\x00\x00\x6a\x7c\x4e\xfa\x00\x00\x00\x00\x6a\x7d\x6b\xb8\x00\x00\x6b\xb9\x00\x00\x50\x99\x50\x9b\x50\x9d\x50\x9a\x50\x9e\x50\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x8b\x52\x88\x52\x8a\x52\x8c\x52\x89\x6f\xe8\x6d\x9a\x00\x00\x00\x00\x00\x00\x6f\xea\x6f\xe9\x54\xa7\x00\x00\x54\xa3\x00\x00\x00\x00\x54\xa4\x54\xa6\x54\xa8\x54\xa5\x00\x00\x54\xaa\x54\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xed\x72\xf5\x72\xf4\x56\xec\x00\x00\x56\xeb\x56\xea\x56\xee\x56\xe9\x00\x00\x00\x00\x76\x5b\x76\x58\x59\x8f\x76\x57\x76\x5c\x00\x00\x59\x91\x76\x5a\x59\x8e\x59\x90\x76\x59\x00\x00\x79\xce\x00\x00\x79\xcf\x79\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x6e\x5e\x76\x7d\x88\x5e\x70\x5e\x74\x7d\x89\x5e\x75\x5e\x71\x5e\x72\x5e\x6f\x5e\x73\x60\x6f\x76\x56\x60\x70\x60\x6e\x00\x00\x60\x6d\x83\xe7\x62\x71\x86\xe3\x86\xe4\x00\x00\x00\x00\x66\x50\x66\xe9\x00\x00\x4c\x70\x00\x00\x4d\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x52\x8d\x00\x00\x6f\xeb\x54\xab\x00\x00\x00\x00\x56\xf1\x56\xf0\x56\xef\x59\x92\x59\x93\x76\x5d\x5e\x77\x62\x72\x4c\x71\x69\x5d\x4c\xb6\x69\x75\x00\x00\x00\x00\x69\xb4\x4d\xf9\x00\x00\x00\x00\x00\x00\x50\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x79\xd1\x00\x00\x00\x00\x4c\x72\x00\x00\x4c\xb7\x69\xb5\x00\x00\x00\x00\x6a\x7e\x00\x00\x6a\x7f\x00\x00\x4e\xfb\x00\x00\x00\x00\x00\x00\x76\x5e\x59\x94\x00\x00\x79\xd2\x00\x00\x00\x00\x00\x00\x63\xd2\x4c\x73\x4c\x88\x4c\xb8\x69\x76\x4d\x67\x00\x00\x4f\x42\x4f\x41\x4e\xfc\x4e\xfd\x00\x00\x00\x00\x6b\xba\x50\xa1\x50\xa2\x6b\xbb\x50\xa0\x00\x00\x00\x00\x52\x91\x6d\x9b\x52\x90\x52\x8e\x52\x8f\x54\xae\x54\xac\x00\x00\x00\x00\x6f\xed\x54\xad\x6f\xec\x00\x00\x54\xa2\x72\xf6\x00\x00\x00\x00\x56\xf3\x56\xf4\x00\x00\x00\x00\x56\xf2\x00\x00\x5e\x78\x7d\x8a\x60\x71\x60\x72\x00\x00\x80\xab\x63\xd3\x89\x6f\x89\x70\x00\x00\x67\x89\x90\xb7\x69\x4c\x4c\xb9\x00\x00\x4c\x74\x00\x00\x69\x78\x69\x77\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfa\x69\xb7\x69\xb8\x69\xb6\x00\x00\x69\xb9\x00\x00", /* 5c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x88\x00\x00\x6a\x83\x6a\x85\x6a\x87\x6a\x84\x4f\x46\x6a\x81\x00\x00\x6a\x82\x4f\x43\x4f\x44\x6a\x86\x6a\x89\x4f\x45\x6a\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xc9\x00\x00\x6b\xc3\x6b\xbe\x50\xa4\x6b\xc6\x6b\xc4\x6b\xbd\x6b\xca\x6b\xcd\x6b\xc8\x6b\xc1\x50\xa6\x6b\xc7\x50\xa7\x6b\xc2\x6b\xc5\x6b\xbc\x6b\xc0\x6b\xcc\x50\xa8\x00\x00\x50\xa9\x00\x00\x6b\xbf\x6b\xcb\x50\xa3\x50\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xac\x6d\xa5\x6d\xab\x6d\xa4\x6d\xa6\x6d\xa0\x6d\x9e\x00\x00\x6d\xad\x6d\xaa\x6d\x9c\x00\x00\x52\x93\x6d\xa8\x6d\xa9\x00\x00\x6d\xa7\x6d\x9f\x6d\x9d\x52\x92\x6d\xa3\x6d\xa1\x00\x00\x00\x00\x6d\xa2\x6d\xae\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xb3\x00\x00\x54\xb2\x00\x00\x6f\xee\x54\xaf\x6f\xf0\x00\x00\x54\xb4\x6f\xf1\x00\x00\x00\x00\x54\xb7\x00\x00\x54\xb5\x6f\xf2\x6d\xaf\x6f\xf4\x00\x00\x54\xb1\x00\x00\x54\xb0\x00\x00\x6f\xef", /* 5d00 */ "\x6f\xf3\x54\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x56\xf6\x56\xf5\x00\x00\x00\x00\x00\x00\x72\xf8\x72\xfc\x73\x41\x56\xf7\x73\x44\x00\x00\x56\xfb\x73\x46\x00\x00\x56\xfd\x00\x00\x56\xf9\x57\x44\x00\x00\x57\x41\x72\xfa\x56\xf8\x00\x00\x72\xf9\x72\xf7\x73\x48\x72\xfb\x00\x00\x56\xfa\x73\x47\x57\x42\x73\x43\x73\x42\x57\x43\x72\xfd\x56\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x73\x49\x00\x00\x73\x45\x76\x6d\x76\x74\x76\x69\x59\x97\x76\x65\x76\x75\x76\x5f\x76\x72\x76\x70\x76\x6a\x00\x00\x76\x73\x76\x6c\x00\x00\x76\x64\x76\x76\x76\x62\x76\x6f\x76\x60\x00\x00\x76\x77\x00\x00\x59\x98\x00\x00\x76\x71\x79\xd5\x76\x63\x59\x95\x00\x00\x76\x67\x00\x00\x59\x96\x76\x66\x76\x6b\x00\x00\x00\x00\x76\x68\x00\x00\x00\x00\x00\x00\x76\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x79\xd9\x00\x00\x00\x00\x00\x00\x79\xdc\x79\xd4\x00\x00\x79\xd6\x00\x00\x79\xdb\x79\xda\x5b\xe8\x00\x00\x76\x61\x79\xd8\x00\x00\x00\x00\x5b\xe9\x00\x00\x79\xd3\x79\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x91\x00\x00\x7d\x98\x7d\x8f\x00\x00\x7d\x96\x7d\x8d\x7d\x95\x7d\x99", /* 5d80 */ "\x7d\x8c\x7d\x90\x7d\x8b\x00\x00\x5e\x79\x00\x00\x7d\x8e\x5e\x7a\x7d\x94\x7d\x93\x7d\x92\x00\x00\x00\x00\x7d\x97\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaf\x80\xb1\x60\x74\x80\xb2\x00\x00\x80\xad\x00\x00\x80\xac\x80\xb6\x00\x00\x80\xb4\x60\x73\x80\xb7\x80\xae\x80\xb3\x80\xb5\x80\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x83\xeb\x83\xf0\x83\xea\x83\xef\x00\x00\x83\xe8\x83\xf2\x83\xee\x83\xf3\x83\xed\x83\xe9\x83\xf1\x00\x00\x83\xf4\x83\xec\x00\x00\x86\xe5\x63\xd7\x00\x00\x63\xd5\x00\x00\x63\xd4\x63\xd6\x00\x00\x00\x00\x89\x71\x00\x00\x8a\xc0\x8b\x6c\x00\x00\x00\x00\x8c\xf1\x8c\xf2\x00\x00\x66\xea\x00\x00\x8e\x78\x00\x00\x67\x8a\x00\x00\x8e\x79\x00\x00\x8f\x6e\x67\xdd\x00\x00\x67\xdc\x8f\x6d\x68\x55\x00\x00\x90\x47\x00\x00\x00\x00\x48\x6e\x00\x00\x4c\x75\x4d\xfb\x69\xba\x6a\x8b\x4f\xd5\x57\x45\x00\x00\x00\x00\x4c\x76\x4d\x6a\x4d\x69\x4d\x68\x00\x00\x00\x00\x4f\x47\x00\x00\x00\x00\x54\xb8\x00\x00\x79\xdd\x4c\x77\x4c\x78\x4c\x79\x4c\xba\x00\x00\x00\x00\x52\x94\x00\x00\x6d\xb0\x00\x00\x00\x00\x00\x00\x59\x99\x4c\x7a\x69\x5e", /* 5e00 */ "\x00\x00\x00\x00\x4d\x6b\x4d\x6c\x69\x79\x00\x00\x4d\xfc\x00\x00\x00\x00\x00\x00\x6a\x8c\x00\x00\x4f\x48\x00\x00\x6a\x8d\x00\x00\x00\x00\x50\xaf\x00\x00\x00\x00\x6b\xcf\x50\xad\x50\xac\x6b\xce\x50\xaa\x6b\xd0\x50\xab\x50\xae\x00\x00\x52\x95\x00\x00\x52\x97\x6d\xb4\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb5\x52\x96\x00\x00\x00\x00\x6f\xf6\x6f\xf5\x00\x00\x54\xba\x00\x00\x54\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x48\x73\x4b\x00\x00\x57\x47\x57\x49\x57\x46\x00\x00\x00\x00\x00\x00\x00\x00\x59\x9b\x73\x4a\x00\x00\x59\x9c\x76\x79\x00\x00\x59\x9d\x76\x78\x59\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x79\xe0\x79\xe2\x5b\xea\x79\xe1\x79\xdf\x79\xde\x00\x00\x00\x00\x00\x00\x7d\x9c\x5e\x7f\x5e\x7d\x00\x00\x5e\x7e\x7d\x9a\x7d\x9b\x00\x00\x5e\x7b\x80\xbb\x80\xb9\x00\x00\x60\x76\x80\xba\x60\x77\x60\x75\x5e\x7c\x00\x00\x00\x00\x83\xf7\x83\xf5\x83\xf6\x80\xb8\x86\xe7\x63\xd8\x86\xe6\x89\x72\x89\x73\x83\xf8\x8b\x6d\x00\x00\x4c\x7b\x4d\x6d\x4e\x41\x69\xbb\x4d\xfd\x00\x00\x50\xb0\x5b\xeb\x48\x73\x4c\xbb\x4d\x6e\x52\x98\x59\x9e\x48\x74", /* 5e80 */ "\x69\x7a\x00\x00\x69\x7b\x00\x00\x69\xbc\x00\x00\x00\x00\x4f\x4a\x6a\x91\x6a\x8f\x4f\x4b\x6a\x8e\x6a\x90\x6a\x92\x00\x00\x4f\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb4\x50\xb5\x50\xb2\x00\x00\x00\x00\x50\xb1\x6d\xb9\x50\xb3\x00\x00\x00\x00\x00\x00\x52\x99\x00\x00\x6d\xb8\x6d\xba\x6d\xb7\x6d\xbb\x52\x9a\x54\xbd\x6f\xf7\x00\x00\x6f\xf9\x54\xbb\x6f\xfa\x54\xbc\x6f\xf8\x00\x00\x6d\xb6\x73\x4c\x73\x4f\x73\x50\x73\x4d\x57\x4d\x57\x4c\x57\x4a\x57\x4b\x73\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x57\x4e\x00\x00\x00\x00\x59\xa0\x59\xa1\x00\x00\x59\xa2\x79\xe3\x79\xe5\x79\xe7\x5b\xed\x5b\xec\x59\x9f\x79\xe6\x79\xe4\x00\x00\x7d\xa0\x00\x00\x00\x00\x7d\x9e\x7d\xa4\x5e\x81\x7d\xa5\x7d\xa2\x5e\x82\x7d\x9f\x7d\x9d\x7d\xa3\x60\x79\x80\xbd\x7d\xa1\x60\x7b\x80\xbe\x60\x7a\x60\x7d\x80\xbf\x60\x78\x60\x7c\x00\x00\x83\xfd\x83\xfb\x83\xfa\x83\xfc\x83\xf9\x00\x00\x00\x00\x66\x52\x00\x00\x8c\xf3\x8c\xf4\x00\x00\x8e\x7a\x8f\x6f\x68\xa1\x48\x75\x00\x00\x50\xb6\x4f\x4c\x00\x00\x00\x00\x52\x9b\x00\x00\x00\x00\x00\x00\x4c\x7c\x4c\xbc", /* 5f00 */ "\x00\x00\x4d\x6f\x69\xbd\x00\x00\x4f\x4d\x6a\x93\x00\x00\x6d\xbc\x52\x9c\x00\x00\x5e\x83\x4c\x7d\x00\x00\x00\x00\x00\x00\x4e\x42\x00\x00\x00\x00\x5b\xee\x4c\x7e\x4c\xbd\x4c\xbe\x00\x00\x4d\x71\x4d\x70\x00\x00\x69\xbe\x4e\x43\x00\x00\x6a\x94\x00\x00\x4f\x4e\x00\x00\x00\x00\x6b\xd2\x6b\xd3\x6b\xd4\x00\x00\x50\xb7\x50\xb8\x6b\xd1\x50\xb9\x00\x00\x00\x00\x00\x00\x52\x9d\x6d\xbd\x00\x00\x6f\xfc\x54\xbe\x00\x00\x6f\xfb\x00\x00\x57\x4f\x73\x51\x57\x50\x73\x52\x00\x00\x00\x00\x00\x00\x59\xa3\x00\x00\x00\x00\x00\x00\x79\xe8\x00\x00\x00\x00\x7d\xa7\x7d\xa6\x00\x00\x5e\x84\x00\x00\x60\x7e\x80\xc0\x62\x73\x84\x41\x63\xd9\x00\x00\x67\xde\x90\x49\x48\x79\x00\x00\x00\x00\x00\x00\x6b\xd5\x00\x00\x6d\xbe\x57\x51\x76\x7a\x5b\xef\x00\x00\x00\x00\x00\x00\x65\x60\x65\x60\x00\x00\x00\x00\x48\x7a\x4f\x50\x00\x00\x4f\x4f\x52\x9e\x00\x00\x6f\xfd\x00\x00\x57\x53\x58\xa8\x57\x54\x57\x52\x59\xa4\x00\x00\x7d\xa8\x5e\x85\x60\x7f\x00\x00\x69\x4d\x69\xbf\x00\x00\x6a\x96\x4f\x51\x6a\x95\x4f\x52\x00\x00\x00\x00\x50\xbd\x6b\xd8\x6b\xd7\x50\xbc", /* 5f80 */ "\x50\xba\x50\xbb\x6b\xd6\x00\x00\x00\x00\x52\xa0\x6d\xbf\x52\xa3\x52\x9f\x52\xa5\x52\xa1\x52\xa2\x52\xa4\x00\x00\x00\x00\x00\x00\x54\xc1\x54\xc0\x54\xbf\x00\x00\x00\x00\x00\x00\x73\x54\x57\x55\x57\x58\x57\x56\x00\x00\x73\x53\x57\x5b\x00\x00\x57\x57\x73\x55\x57\x5a\x57\x59\x00\x00\x00\x00\x00\x00\x76\x7c\x76\x7b\x00\x00\x59\xa7\x59\xa5\x59\xa6\x76\x7d\x5b\xf0\x79\xea\x5b\xf1\x79\xe9\x00\x00\x00\x00\x80\xc1\x00\x00\x00\x00\x60\x82\x7d\xa9\x60\x81\x00\x00\x5e\x86\x00\x00\x86\xe9\x84\x42\x63\xda\x86\xe8\x8b\x6e\x8c\xf5\x8c\xf6\x00\x00\x4c\xbf\x00\x00\x4d\x72\x00\x00\x00\x00\x00\x00\x69\x7c\x00\x00\x00\x00\x4f\x54\x4f\x56\x00\x00\x69\xc2\x6a\x99\x6a\x98\x6a\x97\x00\x00\x69\xc1\x69\xc0\x4e\x45\x4f\x55\x4f\x53\x4e\x44\x00\x00\x00\x00\x00\x00\x50\xbe\x6b\xd9\x00\x00\x50\xbf\x6a\x9e\x00\x00\x6a\xa0\x6a\x9f\x6b\xda\x00\x00\x00\x00\x6a\x9b\x00\x00\x4f\x5a\x4f\x58\x00\x00\x6a\x9a\x6a\x9c\x6a\xa2\x00\x00\x4f\x57\x00\x00\x6a\x9d\x6a\xa6\x50\xc1\x00\x00\x6a\xa3\x4f\x59\x00\x00\x6a\xa1\x6a\xa4\x00\x00\x50\xc0\x00\x00\x50\xc2", /* 6000 */ "\x6a\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xee\x6b\xe1\x6b\xdf\x6b\xed\x6b\xe8\x52\xaa\x50\xc3\x6b\xe9\x6b\xec\x52\xa6\x6b\xeb\x50\xc4\x50\xc9\x50\xc7\x6b\xe2\x00\x00\x6b\xdd\x6b\xe4\x50\xce\x6b\xef\x52\xa7\x6b\xe5\x00\x00\x52\xa8\x50\xca\x6b\xe7\x00\x00\x6d\xce\x52\xa9\x6b\xdc\x50\xcb\x52\xab\x50\xcc\x50\xc8\x50\xcd\x6b\xe6\x6b\xdb\x6b\xea\x50\xc5\x00\x00\x00\x00\x6b\xde\x6b\xe3\x6b\xe0\x50\xc6\x00\x00\x6d\xc0\x00\x00\x6d\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xcb\x70\x44\x6d\xcc\x52\xb1\x6d\xcf\x6d\xc5\x52\xb0\x6d\xc7\x00\x00\x6d\xc8\x00\x00\x00\x00\x6d\xca\x52\xac\x00\x00\x00\x00\x54\xc5\x00\x00\x00\x00\x6d\xc6\x6d\xc2\x54\xc6\x00\x00\x00\x00\x6d\xd0\x54\xc2\x70\x42\x6d\xc9\x00\x00\x70\x41\x6d\xc4\x6d\xcd\x00\x00\x00\x00\x52\xaf\x54\xc3\x52\xb5\x54\xc4\x6d\xd1\x70\x43\x52\xae\x54\xc8\x52\xb4\x52\xb3\x52\xb2\x54\xc7\x6d\xd2\x54\xc9\x52\xad\x00\x00\x6d\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x5c", /* 6080 */ "\x70\x47\x70\x49\x00\x00\x70\x4b\x54\xca\x54\xd0\x73\x58\x70\x4f\x70\x46\x57\x5e\x73\x56\x00\x00\x54\xcf\x54\xcd\x70\x51\x00\x00\x73\x57\x00\x00\x70\x48\x00\x00\x54\xce\x70\x4c\x54\xd1\x70\x4e\x00\x00\x00\x00\x54\xcc\x70\x4d\x70\x50\x70\x4a\x00\x00\x54\xcb\x57\x5f\x00\x00\x70\x45\x57\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x57\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x5a\x73\x63\x59\xaa\x00\x00\x57\x62\x57\x67\x59\xab\x73\x65\x57\x6e\x76\x7f\x73\x5b\x57\x66\x57\x69\x57\x64\x73\x59\x73\x67\x73\x6a\x76\x8f\x00\x00\x73\x68\x76\x84\x57\x65\x57\x6c\x57\x70\x73\x62\x76\x7e\x73\x66\x57\x61\x76\x81\x73\x69\x76\x83\x73\x5e\x00\x00\x59\xa8\x00\x00\x73\x5c\x73\x5d\x57\x6b\x00\x00\x00\x00\x57\x6a\x73\x60\x57\x6f\x73\x64\x57\x68\x73\x61\x00\x00\x57\x6d\x59\xac\x59\xa9\x76\x82\x00\x00\x73\x5f\x00\x00\x57\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\xb1\x59\xb5\x76\x86\x5b\xf6\x59\xb3\x76\x8a\x59\xb7\x79\xeb\x76\x8c\x5b\xf8\x59\xaf\x59\xb2\x76\x8d\x00\x00\x76\x8e\x76\x94", /* 6100 */ "\x59\xb9\x5b\xf9\x00\x00\x76\x90\x76\x95\x76\x89\x5c\x46\x00\x00\x5b\xfa\x59\xb8\x76\x87\x76\x96\x00\x00\x5c\x45\x59\xb6\x5b\xf3\x76\x93\x00\x00\x59\xba\x76\x8b\x76\x85\x59\xb0\x76\x88\x00\x00\x76\x91\x00\x00\x5b\xf2\x5b\xf7\x59\xad\x76\x92\x00\x00\x5b\xf5\x00\x00\x00\x00\x00\x00\x59\xae\x00\x00\x00\x00\x00\x00\x5c\x44\x7d\xab\x79\xf6\x00\x00\x79\xee\x7d\xaa\x00\x00\x79\xf2\x79\xf4\x00\x00\x00\x00\x79\xf1\x00\x00\x5c\x43\x00\x00\x79\xf0\x5c\x47\x00\x00\x00\x00\x00\x00\x7d\xba\x00\x00\x00\x00\x5c\x42\x5e\x88\x79\xf7\x7d\xac\x00\x00\x00\x00\x5b\xfd\x79\xef\x79\xf3\x5e\x87\x5b\xf4\x79\xec\x79\xed\x5e\x89\x5b\xfc\x5c\x41\x5b\xfb\x79\xf5\x00\x00\x00\x00\x7d\xb0\x7d\xb1\x7d\xb6\x60\x87\x7d\xbd\x00\x00\x5e\x8f\x00\x00\x5e\x8e\x7d\xb8\x00\x00\x60\x86\x7d\xad\x5e\x8d\x00\x00\x7d\xbc\x5e\x8b\x5e\x8c\x00\x00\x7d\xb9\x80\xd2\x60\x84\x59\xb4\x00\x00\x7d\xbb\x60\x8b\x7d\xb3\x00\x00\x60\x85\x00\x00\x60\x8a\x7d\xae\x7d\xb2\x7d\xaf\x7d\xb5\x5e\x90\x60\x83\x5e\x8a\x00\x00\x80\xc4\x7d\xb7\x00\x00\x60\x89\x00\x00\x60\x8c\x00\x00", /* 6180 */ "\x7d\xb4\x00\x00\x60\x88\x80\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc8\x62\x77\x80\xc2\x84\x4e\x80\xd1\x60\x90\x00\x00\x60\x8e\x62\x75\x80\xce\x80\xca\x60\x94\x00\x00\x84\x45\x00\x00\x00\x00\x00\x00\x60\x92\x80\xc9\x00\x00\x84\x43\x00\x00\x80\xcd\x00\x00\x80\xd0\x80\xc7\x00\x00\x60\x93\x00\x00\x00\x00\x60\x8d\x84\x44\x62\x76\x80\xcf\x60\x8f\x60\x91\x80\xcc\x60\x95\x80\xcb\x80\xc6\x80\xc5\x62\x74\x80\xd3\x84\x47\x86\xeb\x62\x79\x00\x00\x84\x4d\x00\x00\x84\x4b\x00\x00\x86\xec\x00\x00\x62\x7a\x84\x4c\x00\x00\x84\x49\x63\xdc\x86\xea\x00\x00\x84\x46\x84\x48\x63\xdd\x62\x7c\x63\xdb\x62\x7b\x63\xdf\x84\x4a\x62\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x7c\x00\x00\x89\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xf2\x89\x75\x86\xee\x00\x00\x00\x00\x65\x61\x86\xf0\x86\xef\x63\xde\x86\xed\x86\xf1\x89\x7d\x89\x79\x89\x7b\x00\x00\x89\x76\x89\x77\x00\x00\x89\x7a\x89\x78\x66\x53\x00\x00\x00\x00\x66\x56\x66\x55\x66\x54\x66\xeb\x8c\xf7\x66\xec\x8b\x6f\x67\x8b\x8e\x7b\x67\x8c\x67\xdf", /* 6200 */ "\x68\x56\x90\x4a\x00\x00\x90\x4b\x90\x4c\x00\x00\x00\x00\x91\xaa\x4c\xc0\x69\x7d\x4d\x73\x00\x00\x4e\x47\x4e\x48\x4e\x46\x00\x00\x4e\x49\x4f\x5c\x4f\x5b\x00\x00\x6b\xf0\x50\xd0\x50\xcf\x00\x00\x00\x00\x70\x52\x57\x71\x57\x72\x00\x00\x00\x00\x00\x00\x59\xbb\x79\xf8\x5c\x48\x5c\x49\x79\xfa\x79\xfc\x79\xfb\x00\x00\x7d\xbf\x00\x00\x7d\xbe\x5e\x91\x7d\xc0\x00\x00\x80\xd4\x60\x96\x00\x00\x62\x7d\x00\x00\x63\xe0\x65\x62\x63\xe1\x00\x00\x4c\xc1\x00\x00\x00\x00\x00\x00\x6a\xa7\x00\x00\x00\x00\x6b\xf1\x50\xd2\x50\xd1\x50\xd3\x52\xb6\x6d\xd3\x6d\xd4\x00\x00\x00\x00\x70\x53\x54\xd2\x57\x73\x59\xbc\x76\x97\x4c\xc2\x00\x00\x4c\x7f\x4c\xc3\x00\x00\x69\x7e\x4d\x77\x4d\x76\x4d\x74\x4d\x75\x00\x00\x00\x00\x00\x00\x4e\x4c\x69\xca\x69\xcc\x4e\x4b\x69\xc4\x00\x00\x69\xc5\x00\x00\x69\xcb\x69\xc7\x69\xc9\x4e\x4a\x69\xc6\x69\xc3\x69\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x63\x4f\x6c\x4f\x6a\x6a\xb1\x6a\xae\x6a\xb6\x4f\x68\x6a\xb7\x00\x00\x4f\x61\x6a\xb4\x00\x00\x4f\x67\x6a\xb0\x6a\xaf\x4f\x65\x6a\xb5\x4f\x66\x50\xd4", /* 6280 */ "\x4f\x60\x6a\xb2\x00\x00\x6a\xa8\x4f\x5d\x00\x00\x4f\x70\x6a\xad\x6a\xb3\x4f\x62\x4f\x64\x00\x00\x6a\xa9\x00\x00\x6a\xaa\x6a\xab\x00\x00\x4f\x6f\x4f\x69\x4f\x6e\x6a\xac\x4f\x6d\x4f\x5f\x4f\x5e\x4f\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xe2\x6b\xfd\x6b\xf6\x50\xdd\x50\xf0\x6b\xf2\x6b\xf9\x6b\xfb\x6c\x41\x50\xeb\x00\x00\x6b\xfa\x6b\xf3\x50\xe9\x6b\xf7\x00\x00\x6c\x42\x50\xda\x00\x00\x6b\xfc\x50\xe4\x50\xe3\x6b\xf5\x50\xd8\x00\x00\x00\x00\x50\xd9\x00\x00\x50\xd7\x00\x00\x50\xef\x50\xe7\x50\xe1\x50\xd5\x6b\xf8\x50\xe0\x50\xd6\x50\xe8\x50\xf1\x6d\xd5\x50\xe5\x6b\xf4\x50\xdb\x50\xde\x50\xdf\x00\x00\x50\xed\x50\xee\x50\xec\x50\xe6\x50\xea\x50\xdc\x52\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xdb\x52\xc3\x52\xbb\x52\xbd\x52\xc2\x6d\xe7\x52\xc0\x70\x54\x54\xd3\x52\xc5\x6d\xd8\x6d\xe0\x52\xc1\x6d\xdf\x6d\xdc\x6d\xe4\x6d\xe6\x52\xba\x52\xbe\x52\xc4\x54\xd5", /* 6300 */ "\x6d\xe1\x52\xbc\x52\xc7\x6d\xda\x00\x00\x00\x00\x00\x00\x52\xbf\x54\xd4\x52\xb9\x00\x00\x6d\xd7\x6d\xde\x6d\xd6\x6d\xd9\x6d\xdd\x70\x55\x52\xc6\x00\x00\x6d\xe2\x6d\xe3\x6d\xe5\x52\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xe3\x70\x61\x54\xe1\x54\xe2\x70\x57\x70\x67\x00\x00\x54\xd8\x00\x00\x00\x00\x73\x6b\x70\x69\x70\x63\x00\x00\x70\x5a\x00\x00\x70\x6c\x70\x5d\x54\xde\x73\x83\x70\x60\x54\xe0\x54\xd7\x00\x00\x70\x6e\x70\x62\x54\xda\x70\x5b\x70\x58\x70\x59\x54\xdb\x70\x68\x70\x6f\x54\xdd\x70\x5f\x70\x5e\x54\xe5\x54\xe4\x54\xd6\x54\xdc\x54\xdf\x70\x6b\x00\x00\x00\x00\x70\x65\x54\xd9\x70\x56\x70\x6d\x70\x64\x70\x66\x70\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x6c\x00\x00\x57\x7b\x57\x90\x57\x8f\x00\x00\x57\x84\x00\x00\x73\x7e\x73\x7a\x73\x77\x73\x8a\x57\x7e\x57\x76\x00\x00\x00\x00\x73\x7c\x59\xcc\x57\x7a\x73\x85\x00\x00\x57\x91\x57\x8e\x73\x81\x73\x6f\x00\x00\x00\x00", /* 6380 */ "\x57\x8d\x73\x87\x73\x6e\x57\x82\x57\x86\x73\x86\x00\x00\x73\x78\x57\x87\x57\x81\x73\x6d\x00\x00\x59\xbe\x73\x89\x73\x76\x57\x8c\x73\x79\x73\x88\x57\x8b\x00\x00\x76\x98\x00\x00\x57\x77\x73\x74\x57\x7c\x57\x88\x00\x00\x57\x83\x73\x7d\x73\x73\x73\x71\x73\x84\x57\x74\x57\x89\x57\x78\x59\xbd\x73\x82\x57\x79\x00\x00\x57\x75\x57\x85\x57\x7f\x57\x7d\x73\x75\x57\x8a\x73\x72\x73\x7f\x73\x7b\x76\x9a\x76\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x70\x76\xaa\x00\x00\x59\xc0\x00\x00\x76\xb0\x76\x9f\x76\xad\x79\xfd\x59\xc3\x76\xb1\x76\xb4\x59\xc2\x76\xa2\x76\xb3\x76\xb2\x59\xc4\x76\x9b\x59\xbf\x59\xc7\x00\x00\x59\xc5\x76\xaf\x00\x00\x76\xa5\x59\xc9\x76\xb6\x76\xae\x76\xb7\x59\xd1\x59\xcf\x76\xac\x76\xab\x00\x00\x76\xa9\x76\xa3\x59\xc8\x00\x00\x59\xc6\x70\x5c\x76\x9c\x00\x00\x7a\x5e\x76\x9d\x59\xc1\x59\xce\x7a\x42\x00\x00\x59\xca\x59\xcb\x76\x9e\x76\xb5\x7a\x41\x76\xa6\x76\xa1\x59\xcd\x76\xa7\x76\xa4\x00\x00\x00\x00\x59\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x58\x00\x00\x00\x00\x7a\x45\x7a\x58\x7a\x5d\x7a\x51\x5c\x54\x7a\x62\x5c\x51\x7a\x43\x00\x00\x7a\x44\x5c\x4a\x5c\x53\x7a\x4b\x5c\x56\x5c\x57\x7a\x4c\x00\x00\x7a\x59\x7a\x5f\x5c\x52\x00\x00\x5c\x4c\x7a\x4a\x7a\x46\x7a\x61\x7a\x4f\x7a\x50\x7a\x47\x7a\x5b\x7a\x52\x7a\x5c\x7a\x54\x00\x00\x5c\x4d\x7d\xc1\x5c\x50\x5c\x4e\x7a\x60\x7a\x57\x7a\x53\x00\x00\x00\x00\x7a\x48\x5e\x9b\x7a\x56\x5c\x55\x7a\x4e\x00\x00\x7a\x4d\x00\x00\x00\x00\x00\x00\x5c\x4f\x5c\x4b\x7d\xd6\x7a\x5a\x7a\x55\x00\x00\x7a\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xd1\x00\x00\x7d\xc2\x7d\xcd\x00\x00\x7d\xd4\x5e\x99\x59\xd0\x7d\xd2\x5e\x94\x00\x00\x00\x00\x00\x00\x5e\x93\x7d\xd9\x00\x00\x7d\xc3\x7d\xd0\x7d\xc4\x7d\xcf\x5e\x97\x7d\xd3\x76\xa8\x00\x00\x00\x00\x00\x00\x7d\xda\x7d\xcb\x5e\x9a\x80\xe2\x60\x97\x00\x00\x7d\xd8\x7d\xd7\x5e\x9c\x80\xd5\x60\x98\x80\xd6\x00\x00\x7d\xc7\x7d\xc8\x7d\xc5\x7d\xca\x7d\xc6\x7d\xdb\x5e\x96\x60\x99\x5e\x98\x5e\x9d\x00\x00\x7d\xc9\x00\x00\x7d\xd5", /* 6480 */ "\x00\x00\x00\x00\x7d\xce\x00\x00\x00\x00\x80\xd9\x00\x00\x5e\x92\x60\x9c\x84\x55\x80\xde\x80\xdd\x80\xdf\x00\x00\x00\x00\x80\xdc\x60\x9d\x68\xcb\x60\xa3\x60\xa0\x00\x00\x60\xa1\x80\xd7\x80\xda\x80\xe4\x60\xa9\x60\xa7\x00\x00\x80\xdb\x76\xa0\x60\x9a\x80\xe1\x80\xd8\x00\x00\x60\xaa\x80\xe0\x5e\x95\x60\x9f\x7d\xcc\x00\x00\x00\x00\x60\xa2\x00\x00\x60\xa6\x60\xa8\x60\xa5\x60\xa4\x00\x00\x60\x9e\x80\xe3\x60\x9b\x60\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x82\x62\x83\x84\x54\x62\x8c\x62\x89\x00\x00\x62\x7f\x62\x87\x84\x56\x62\x85\x62\x7e\x00\x00\x62\x86\x00\x00\x84\x53\x63\xe3\x62\x81\x00\x00\x62\x88\x63\xe2\x84\x52\x84\x51\x00\x00\x62\x8a\x00\x00\x62\x8b\x00\x00\x84\x50\x84\x4f\x63\xe4\x84\x59\x62\x84\x84\x57\x00\x00\x00\x00\x00\x00\x00\x00\x63\xe5\x00\x00\x63\xea\x86\xf5\x86\xf7\x00\x00\x63\xe7\x00\x00\x86\xf8\x86\xf4\x00\x00\x86\xf6\x63\xe8\x63\xeb\x00\x00\x86\xf3\x63\xe6\x63\xe9\x65\x64\x84\x58\x65\x63\x00\x00\x00\x00\x65\x69\x89\x82\x00\x00\x65\x67\x65\x68\x89\x85\x89\x81\x65\x65\x89\x7e", /* 6500 */ "\x66\x57\x89\x83\x00\x00\x89\x84\x89\x7f\x00\x00\x65\x66\x8b\x70\x00\x00\x8b\x73\x00\x00\x00\x00\x8b\x74\x8b\x72\x8b\x75\x66\x58\x8b\x71\x00\x00\x00\x00\x8c\xfb\x66\xee\x8c\xfa\x8c\xf9\x8c\xf8\x66\xed\x66\xef\x00\x00\x8e\x7c\x67\x8e\x67\x8d\x00\x00\x00\x00\x8f\x71\x8f\x70\x8f\x73\x68\x57\x67\xe0\x90\x4e\x8f\x72\x00\x00\x00\x00\x90\x4d\x68\x59\x68\x58\x68\x7f\x90\xb8\x91\x41\x4c\xc4\x00\x00\x00\x00\x76\xb8\x84\x5a\x48\x82\x00\x00\x4e\x4d\x6a\xb8\x4f\x73\x4f\x71\x00\x00\x4f\x72\x00\x00\x6c\x43\x50\xf2\x52\xc8\x00\x00\x6d\xe8\x00\x00\x6d\xe9\x00\x00\x52\xc9\x70\x71\x00\x00\x54\xe6\x54\xe7\x70\x70\x00\x00\x00\x00\x00\x00\x00\x00\x57\x98\x00\x00\x57\x94\x00\x00\x73\x8b\x57\x9b\x57\x9a\x57\x93\x57\x96\x57\x99\x57\x95\x00\x00\x00\x00\x76\xbc\x57\x92\x59\xd3\x00\x00\x00\x00\x00\x00\x59\xd5\x59\xd6\x76\xbb\x76\xbe\x59\xd4\x76\xb9\x76\xbd\x00\x00\x76\xba\x00\x00\x5c\x59\x00\x00\x00\x00\x7a\x63\x00\x00\x00\x00\x5e\x9e\x7d\xdc\x62\x8d\x60\xac\x80\xe5\x60\xad\x60\xae\x80\xe7\x80\xe6\x80\xe8\x84\x5c\x00\x00\x00\x00\x84\x5b", /* 6580 */ "\x86\xfa\x86\xf9\x63\xec\x63\xed\x8b\x76\x00\x00\x00\x00\x4c\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x76\xbf\x00\x00\x00\x00\x00\x00\x59\xd8\x59\xd7\x7a\x64\x00\x00\x89\x86\x67\x8f\x90\x4f\x4c\xc6\x00\x00\x54\xe8\x00\x00\x57\x9d\x57\x9c\x76\xc0\x76\xc1\x5c\x5a\x7d\xdd\x5e\x9f\x84\x5d\x00\x00\x4c\xc7\x4d\x78\x00\x00\x50\xf3\x6c\x44\x00\x00\x6d\xea\x52\xca\x57\x9e\x00\x00\x76\xc2\x59\xd9\x5c\x5b\x00\x00\x80\xe9\x80\xea\x00\x00\x00\x00\x86\xfb\x65\x6a\x91\x42\x4c\xc8\x00\x00\x6c\x45\x50\xf4\x52\xcb\x00\x00\x6d\xeb\x00\x00\x54\xe9\x70\x75\x70\x73\x70\x74\x54\xea\x70\x72\x00\x00\x00\x00\x00\x00\x00\x00\x57\xa0\x57\xa1\x73\x8c\x57\xa2\x57\x9f\x76\xc3\x00\x00\x76\xc4\x7a\x65\x00\x00\x00\x00\x5e\xa1\x5e\xa0\x00\x00\x00\x00\x86\xfc\x89\x87\x00\x00\x8b\x78\x8b\x77\x8c\xfc\x48\x87\x69\x5f\x52\xcc\x00\x00\x00\x00\x4c\xc9\x4d\x79\x00\x00\x4e\x4f\x4e\x4e\x00\x00\x00\x00\x4e\x50\x4e\x51\x69\xce\x69\xcd\x6a\xb9\x4f\x74\x6a\xbc\x6a\xbb\x6a\xba\x6a\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x50\xf5\x6c\x4b\x6c\x47\x6c\x50\x00\x00\x00\x00", /* 6600 */ "\x50\xfc\x00\x00\x50\xfa\x6c\x4c\x6c\x48\x6c\x4f\x50\xf9\x51\x43\x6c\x4a\x6c\x46\x51\x42\x6c\x4d\x50\xf8\x6c\x4e\x50\xfb\x50\xfd\x6c\x52\x6c\x51\x6c\x49\x50\xf7\x50\xf6\x51\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\xf0\x6d\xf6\x00\x00\x52\xd2\x52\xcf\x6d\xed\x6d\xf2\x00\x00\x52\xd5\x52\xcd\x6d\xf1\x52\xd0\x52\xd3\x00\x00\x00\x00\x6d\xf4\x00\x00\x52\xce\x6d\xf9\x52\xd1\x00\x00\x52\xd4\x6d\xee\x6d\xf3\x6d\xf7\x6d\xef\x6d\xec\x00\x00\x00\x00\x6d\xf8\x6d\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\xf2\x54\xeb\x54\xee\x00\x00\x54\xf1\x00\x00\x70\x78\x00\x00\x54\xec\x70\x76\x00\x00\x54\xf0\x00\x00\x00\x00\x54\xed\x00\x00\x70\x79\x54\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x90\x57\xa4\x73\x8f\x73\x91\x57\xa3\x57\xa8\x70\x77\x00\x00\x73\x8e\x73\x92\x00\x00\x57\xa5\x73\x8d\x57\xa7\x00\x00\x57\xa6\x00\x00\x76\xcb\x00\x00\x76\xc6\x00\x00\x59\xda\x59\xde\x59\xdb\x76\xc9\x76\xcc\x00\x00\x59\xdc\x00\x00\x59\xdd\x59\xe2\x7a\x6e\x76\xca\x59\xe0\x76\xc7\x76\xc5\x00\x00\x59\xe1\x00\x00", /* 6680 */ "\x76\xc8\x00\x00\x00\x00\x00\x00\x5c\x61\x00\x00\x7a\x66\x5c\x5e\x5c\x5f\x5c\x5d\x7a\x6b\x7a\x6a\x7a\x67\x5c\x63\x00\x00\x00\x00\x7a\x69\x59\xdf\x00\x00\x00\x00\x7a\x6d\x7a\x68\x5c\x60\x5c\x5c\x5c\x62\x7a\x6c\x00\x00\x00\x00\x00\x00\x5e\xa4\x00\x00\x7d\xe0\x7d\xdf\x7d\xde\x5e\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\xa3\x80\xed\x80\xf0\x60\xb0\x00\x00\x00\x00\x60\xaf\x80\xf1\x80\xec\x60\xb2\x80\xee\x00\x00\x60\xb1\x80\xeb\x00\x00\x80\xef\x62\x93\x62\x90\x84\x66\x84\x65\x00\x00\x84\x64\x84\x5f\x00\x00\x84\x60\x00\x00\x00\x00\x00\x00\x62\x91\x00\x00\x62\x8e\x62\x92\x84\x5e\x62\x8f\x84\x61\x84\x62\x84\x67\x00\x00\x00\x00\x84\x63\x00\x00\x00\x00\x86\xfd\x00\x00\x00\x00\x00\x00\x63\xef\x00\x00\x89\x8a\x63\xee\x89\x88\x89\x89\x65\x6b\x66\x5a\x8b\x79\x00\x00\x66\x59\x00\x00\x00\x00\x8d\x41\x8d\x42\x00\x00\x66\xf0\x00\x00\x8c\xfd\x67\x90\x00\x00\x90\x50\x68\x5a\x90\xb9\x90\xba\x00\x00\x4c\xca\x00\x00\x4e\x52\x4e\x53\x4f\x75\x00\x00\x6c\x53\x52\xd6\x54\xf3\x57\xa9\x00\x00\x00\x00\x56\xb6\x00\x00\x59\xe3\x59\xe4", /* 6700 */ "\x59\x52\x76\xcd\x00\x00\x5c\x64\x7d\xe2\x7d\xe1\x00\x00\x00\x00\x4c\xcb\x4e\x54\x6c\x54\x51\x45\x00\x00\x51\x44\x00\x00\x6d\xfa\x6d\xfb\x00\x00\x70\x7a\x70\x7b\x54\xf4\x54\xf5\x00\x00\x54\xf6\x73\x93\x00\x00\x00\x00\x57\xab\x00\x00\x59\xe6\x00\x00\x59\xe5\x7a\x6f\x7b\xc2\x7d\xe3\x84\x68\x00\x00\x00\x00\x65\x6c\x66\xf1\x4c\xcc\x00\x00\x4d\x7c\x4d\x7d\x4d\x7b\x4d\x7e\x4d\x7a\x00\x00\x00\x00\x4e\x57\x00\x00\x69\xd6\x4e\x56\x4e\x58\x00\x00\x00\x00\x69\xd1\x69\xd0\x69\xd3\x69\xd2\x69\xd5\x4e\x55\x69\xcf\x69\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xbe\x4f\x7f\x6a\xbf\x6a\xc3\x4f\x7e\x00\x00\x6a\xc7\x6a\xc2\x6a\xc5\x4f\x77\x4f\x78\x4f\x79\x4f\x7a\x00\x00\x4f\x82\x00\x00\x6a\xc1\x4f\x7c\x4f\x83\x00\x00\x6a\xc0\x6a\xc6\x00\x00\x4f\x7b\x6a\xc4\x4f\x7d\x4f\x76\x4f\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x5a\x00\x00\x6c\x56\x51\x46\x00\x00\x51\x50\x51\x51\x51\x49\x51\x5b\x51\x4b\x6c\x5e\x51\x56\x6c\x59\x51\x4c\x6c\x68\x6c\x69\x6c\x61\x6c\x5a\x51\x59\x6c\x66\x51\x54\x51\x52", /* 6780 */ "\x00\x00\x6c\x67\x00\x00\x6c\x65\x6c\x5d\x6c\x55\x6c\x5c\x51\x4d\x00\x00\x51\x53\x00\x00\x51\x47\x6c\x60\x6c\x5f\x6c\x57\x00\x00\x51\x55\x6c\x63\x6c\x58\x51\x58\x6c\x6a\x51\x48\x00\x00\x51\x4f\x6c\x5b\x6c\x64\x51\x57\x00\x00\x51\x4a\x51\x4e\x00\x00\x6c\x62\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x5e\x52\xde\x52\xeb\x00\x00\x6e\x59\x6e\x4f\x52\xe4\x6e\x4d\x52\xdd\x6e\x48\x52\xe7\x6e\x55\x6e\x42\x6e\x44\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x47\x6d\xfc\x6e\x54\x6e\x64\x52\xe2\x6e\x49\x6e\x5b\x00\x00\x6e\x41\x6e\x62\x6e\x63\x6e\x66\x6e\x5d\x6e\x4e\x6e\x56\x52\xe8\x52\xdb\x52\xe3\x52\xef\x52\xd8\x52\xda\x00\x00\x00\x00\x00\x00\x6e\x46\x52\xec\x52\xe5\x6e\x60\x6e\x43\x52\xee\x52\xe9\x6e\x4c\x00\x00\x00\x00\x52\xed\x6e\x53\x6e\x4b\x52\xe6\x6e\x5f\x6e\x57\x00\x00\x52\xe0\x6e\x65\x6e\x4a\x52\xdc\x6e\x5c\x6e\x52\x52\xe1\x6e\x58\x52\xd9\x6d\xfd\x52\xea\x55\x48\x52\xdf\x6e\x51\x6e\x50\x6e\x45\x00\x00\x6e\x61\x00\x00\x6e\x5a\x00\x00\x00\x00\x52\xd7", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x90\x55\x4f\x70\x91\x00\x00\x70\x85\x55\x44\x55\x50\x00\x00\x70\x7d\x00\x00\x70\x87\x70\x8f\x00\x00\x70\x7c\x70\x98\x54\xf7\x00\x00\x00\x00\x00\x00\x70\x97\x70\x92\x00\x00\x70\x93\x55\x42\x55\x4d\x70\x89\x00\x00\x70\x8a\x70\x94\x70\x8b\x00\x00\x70\x86\x70\x7f\x70\x81\x70\x8e\x70\x88\x00\x00\x00\x00\x54\xf8\x54\xfc\x70\x96\x70\x82\x55\x4b\x55\x47\x00\x00\x00\x00\x55\x4a\x55\x51\x54\xfd\x55\x4c\x70\x8d\x55\x4e\x54\xfa\x00\x00\x54\xf9\x70\x7e\x00\x00\x70\x83\x55\x45\x70\x95\x70\x8c\x70\x84\x55\x49\x55\x46\x00\x00\x54\xfb\x55\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\xa8\x00\x00\x73\x98\x73\x99\x73\x9d\x00\x00\x73\xac\x73\xa9\x00\x00\x73\xa2\x73\xa1\x57\xb2\x73\xa5\x73\xb4\x73\x94\x00\x00\x73\xb5\x73\xa7\x73\xb9\x73\xad\x57\xb1", /* 6880 */ "\x73\xab\x57\xac\x57\xc1\x57\xb7\x00\x00\x57\xbb\x57\xba\x73\x95\x00\x00\x73\xb2\x73\xb8\x73\xb0\x73\xb7\x00\x00\x00\x00\x73\xa4\x73\x96\x73\xb6\x73\xa6\x57\xaf\x57\xbc\x00\x00\x73\xaf\x57\xb5\x00\x00\x00\x00\x00\x00\x73\xae\x73\x97\x57\xbd\x00\x00\x57\xbf\x73\xb1\x57\xc0\x57\xae\x73\x9e\x73\xb3\x00\x00\x00\x00\x57\xb4\x57\xbe\x73\xa0\x73\xaa\x73\x9b\x73\x9f\x57\xb9\x73\x9a\x57\xad\x57\xb6\x57\xb3\x73\xa3\x55\x43\x76\xe4\x57\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xb8\x00\x00\x76\xe7\x76\xfd\x76\xf2\x59\xfa\x00\x00\x59\xf5\x76\xe1\x59\xf6\x76\xf1\x00\x00\x76\xea\x76\xf7\x59\xf2\x76\xcf\x76\xf9\x59\xe8\x76\xd7\x59\xeb\x59\xea\x00\x00\x59\xfb\x00\x00\x76\xd1\x76\xf3\x76\xf4\x59\xed\x59\xe9\x76\xdf\x00\x00\x59\xf4\x76\xda\x00\x00\x76\xf5\x59\xf0\x76\xed\x76\xfa\x76\xd4\x76\xd9\x76\xd3\x00\x00\x59\xef\x76\xe6\x7a\x86\x76\xd5\x59\xf3\x76\xde\x76\xf6\x59\xee\x76\xdb\x76\xd8\x76\xe9\x59\xf1\x59\xe7\x59\xfd\x76\xec\x76\xeb\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x76\xd0\x59\xec\x76\xf8\x76\xe0\x76\xe2\x00\x00\x76\xef\x76\xee\x76\xce\x59\xf7\x59\xf9\x76\xd6\x76\xdd\x76\xe5\x59\xf8\x76\xdc\x76\xe8\x76\xfb\x00\x00\x76\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x76\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x9a\x5c\x6c\x00\x00\x7a\x98\x7a\x83\x7a\x88\x7a\x81\x00\x00\x7a\x94\x7a\x72\x7a\x79\x00\x00\x7a\x92\x7a\x9c\x7a\x84\x00\x00\x7a\x76\x7a\x8a\x7a\x8f\x7a\x7a\x00\x00\x7a\x8c\x7a\x77\x00\x00\x00\x00\x7a\x7e\x7a\x7f\x5c\x6e\x7a\x93\x7a\x91\x00\x00\x7a\x73\x7a\x96\x00\x00\x7a\x97\x7a\x99\x5c\x72\x5c\x6a\x00\x00\x73\x9c\x7a\x7b\x7a\x8e\x7a\x7c\x5c\x67\x5c\x77\x7a\x95\x5c\x75\x5c\x71\x7a\x71\x5c\x69\x00\x00\x7a\x74\x5c\x76\x00\x00\x7a\x85\x7a\x70\x00\x00\x5c\x6f\x7a\x89\x7a\x78\x5c\x70\x7a\x82\x5c\x66\x59\xfc\x7a\x8b\x76\xe3\x7a\x75\x00\x00\x00\x00\x7a\x90\x5c\x6b\x7a\x8d\x5c\x68\x7a\x87\x5c\x73\x7a\x7d\x7a\x9b\x00\x00\x00\x00\x00\x00\x00\x00", /* 6980 */ "\x00\x00\x00\x00\x5c\x6d\x7b\x4e\x00\x00\x00\x00\x5c\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xf1\x7d\xef\x00\x00\x7e\x48\x7d\xed\x00\x00\x7e\x42\x5c\x65\x5e\xa7\x7d\xe9\x7e\x47\x00\x00\x7d\xee\x7d\xfc\x5e\xac\x5e\xa5\x00\x00\x7e\x45\x00\x00\x7d\xe7\x7e\x44\x00\x00\x5e\xb7\x7d\xf8\x7e\x4b\x5e\xb5\x7d\xf0\x5e\xa6\x7d\xf2\x7e\x43\x5e\xaf\x7d\xeb\x5e\xb3\x5e\xa9\x7d\xf4\x7d\xea\x7d\xe4\x00\x00\x7e\x41\x5e\xb0\x7e\x4a\x7d\xe5\x5e\xad\x00\x00\x7d\xfa\x00\x00\x5e\xae\x7d\xec\x7d\xf7\x7d\xf3\x7d\xf5\x00\x00\x5e\xa8\x7e\x49\x5e\xb6\x7d\xf6\x00\x00\x7e\x4c\x00\x00\x00\x00\x7d\xe6\x7d\xfb\x5e\xab\x5e\xb4\x5e\xb2\x7d\xe8\x7d\xfd\x5e\xb1\x00\x00\x00\x00\x5e\xaa\x7d\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xfd\x00\x00\x80\xf9\x80\xf5\x81\x4c\x81\x49\x60\xb5\x00\x00\x00\x00\x81\x50\x80\xfc\x60\xc0\x81\x46\x00\x00\x00\x00\x80\xf8\x81\x45\x60\xbd\x81\x59\x00\x00\x81\x56\x81\x48\x80\xf6\x00\x00\x00\x00\x81\x4d\x81\x4f\x60\xb9\x81\x43\x80\xfb", /* 6a00 */ "\x80\xf2\x60\xb6\x60\xbe\x00\x00\x81\x52\x60\xbf\x80\xf3\x81\x58\x81\x4b\x81\x51\x60\xbc\x00\x00\x00\x00\x81\x4e\x00\x00\x81\x55\x00\x00\x60\xc1\x00\x00\x60\xbb\x81\x47\x80\xf7\x81\x5a\x80\xf4\x81\x53\x60\xb8\x00\x00\x81\x41\x00\x00\x81\x42\x60\xb7\x60\xb4\x80\xfa\x60\xba\x00\x00\x60\xb3\x00\x00\x81\x54\x81\x57\x81\x44\x84\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x6d\x00\x00\x84\x69\x62\xa0\x00\x00\x00\x00\x62\x95\x62\x9a\x62\x96\x84\x77\x84\x83\x62\x94\x84\x6f\x84\x78\x81\x4a\x84\x79\x00\x00\x00\x00\x62\x9b\x00\x00\x84\x89\x62\x9f\x62\xa2\x84\x6b\x00\x00\x62\x9e\x00\x00\x84\x87\x84\x88\x84\x7d\x84\x7c\x84\x74\x00\x00\x00\x00\x84\x7e\x84\x86\x84\x85\x00\x00\x62\x99\x62\x97\x84\x76\x84\x73\x00\x00\x84\x70\x84\x84\x62\xa1\x84\x82\x62\x9d\x62\x9c\x00\x00\x84\x7b\x00\x00\x84\x6a\x84\x6c\x84\x6e\x84\x81\x84\x7a\x62\x98\x00\x00\x84\x71\x00\x00\x84\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf7\x87\x52", /* 6a80 */ "\x63\xf0\x87\x43\x00\x00\x87\x4e\x63\xf2\x87\x55\x00\x00\x87\x4a\x00\x00\x87\x45\x00\x00\x00\x00\x87\x56\x87\x41\x87\x4c\x00\x00\x63\xf9\x87\x51\x87\x57\x87\x4b\x63\xf1\x87\x4d\x87\x42\x63\xf8\x00\x00\x00\x00\x87\x54\x87\x47\x63\xf4\x00\x00\x87\x49\x87\x46\x63\xfa\x87\x48\x63\xf3\x63\xf6\x87\x50\x87\x44\x87\x53\x00\x00\x87\x4f\x00\x00\x00\x00\x00\x00\x65\x6e\x89\x95\x65\x73\x65\x74\x00\x00\x00\x00\x00\x00\x65\x6d\x89\x94\x00\x00\x89\x91\x89\x92\x65\x71\x89\x8c\x89\x90\x65\x70\x00\x00\x89\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x65\x72\x65\x6f\x00\x00\x89\x8b\x89\x8f\x89\x93\x00\x00\x00\x00\x00\x00\x8b\x7f\x8b\x7c\x8b\x86\x00\x00\x8b\x85\x8b\x83\x8b\x7d\x00\x00\x66\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x7e\x66\x5d\x63\xf5\x8b\x82\x66\x5c\x8b\x87\x8b\x81\x8b\x7b\x89\x8e\x00\x00\x00\x00\x00\x00\x66\x5b\x00\x00\x8b\x7a\x8d\x46\x00\x00\x8d\x45\x8b\x84\x66\xf2\x00\x00\x8d\x49\x8d\x4a\x8d\x44\x8d\x48\x00\x00\x8d\x43\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x81\x8d\x47\x67\x93\x67\x91\x8e\x7e\x00\x00\x00\x00\x00\x00", /* 6b00 */ "\x8e\x82\x00\x00\x8e\x7d\x8e\x7f\x67\x92\x00\x00\x00\x00\x00\x00\x8f\x75\x8f\x76\x67\xe1\x8f\x74\x00\x00\x00\x00\x00\x00\x90\x53\x68\x5b\x90\x51\x90\x52\x90\xbb\x00\x00\x00\x00\x68\xa2\x91\x45\x91\x43\x91\x44\x91\x46\x00\x00\x00\x00\x00\x00\x91\xab\x00\x00\x4c\xcd\x4e\x59\x00\x00\x51\x5c\x00\x00\x6c\x6b\x00\x00\x00\x00\x6e\x67\x00\x00\x00\x00\x00\x00\x70\x99\x70\x9b\x00\x00\x70\x9a\x00\x00\x70\x9c\x57\xc2\x73\xbb\x70\x9d\x00\x00\x73\xba\x73\xbc\x73\xbd\x77\x41\x5a\x42\x77\x42\x77\x44\x5a\x43\x5a\x41\x77\x43\x00\x00\x7a\xa2\x7a\xa0\x7a\x9f\x00\x00\x7a\x9e\x7a\x9d\x5c\x78\x7a\xa1\x5e\xb8\x7e\x4d\x7e\x4f\x5e\xb9\x7e\x4e\x60\xc3\x00\x00\x60\xc2\x81\x5b\x00\x00\x00\x00\x84\x8b\x84\x8a\x84\x8c\x00\x00\x00\x00\x62\xa3\x00\x00\x87\x58\x63\xfb\x00\x00\x89\x96\x65\x75\x8b\x88\x67\xe2\x4c\xce\x4d\x7f\x4e\x5a\x4f\x84\x51\x5d\x51\x5e\x00\x00\x00\x00\x52\xf0\x00\x00\x00\x00\x70\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x79\x00\x00\x00\x00\x00\x00\x81\xda\x62\xa4\x65\x76\x4c\xcf\x00\x00\x4e\x5b\x00\x00\x00\x00\x6c\x6d\x51\x5f", /* 6b80 */ "\x6c\x6c\x00\x00\x6e\x68\x52\xf1\x6e\x69\x00\x00\x52\xf2\x00\x00\x70\xa0\x55\x53\x55\x52\x00\x00\x73\xc2\x73\xc0\x73\xc1\x73\xbf\x00\x00\x73\xbe\x00\x00\x00\x00\x77\x45\x77\x48\x5a\x45\x77\x46\x5a\x44\x77\x47\x00\x00\x7a\xa3\x00\x00\x00\x00\x7e\x50\x7e\x51\x7e\x52\x00\x00\x81\x5e\x81\x5d\x60\xc4\x81\x5c\x81\x5f\x84\x8d\x00\x00\x00\x00\x84\x8e\x84\x8f\x00\x00\x87\x59\x63\xfc\x65\x77\x8b\x89\x00\x00\x67\x94\x69\x60\x00\x00\x52\xf3\x6e\x6a\x55\x54\x00\x00\x00\x00\x57\xc3\x00\x00\x5a\x46\x77\x49\x00\x00\x5c\x7b\x5c\x7a\x00\x00\x00\x00\x7e\x53\x7e\x54\x60\xc5\x60\xc6\x84\x91\x84\x90\x89\x97\x90\x54\x4c\xd0\x69\x61\x4d\x81\x00\x00\x4f\x85\x6a\xc8\x00\x00\x52\xf4\x5c\x7c\x4c\xd1\x00\x00\x6e\x6b\x52\xf5\x6e\x6c\x00\x00\x63\xfd\x4c\xd2\x00\x00\x00\x00\x6c\x6e\x00\x00\x6e\x6d\x00\x00\x70\xa5\x70\xa4\x70\xa2\x00\x00\x70\xa1\x70\xa6\x70\xa3\x00\x00\x00\x00\x57\xc4\x57\xc5\x00\x00\x00\x00\x5a\x47\x77\x4a\x00\x00\x77\x4b\x77\x4c\x00\x00\x00\x00\x00\x00\x7a\xa8\x7a\xa9\x7a\xa7\x00\x00\x7a\xa5\x7a\xa6\x5c\x7d\x7e\x55\x81\x62", /* 6c00 */ "\x81\x61\x81\x60\x81\x63\x84\x93\x84\x92\x62\xa5\x84\x94\x00\x00\x64\x41\x87\x5a\x00\x00\x89\x98\x8b\x8a\x8f\x77\x00\x00\x4c\xd3\x4d\x83\x4d\x82\x00\x00\x51\x60\x69\x62\x69\x7f\x4e\x5c\x00\x00\x69\xd7\x6a\xc9\x6a\xca\x51\x61\x00\x00\x6c\x6f\x00\x00\x52\xf6\x6e\x6e\x6e\x6f\x00\x00\x55\x55\x55\x59\x70\xa7\x55\x58\x55\x56\x55\x57\x00\x00\x73\xc3\x57\xc6\x5a\x4a\x00\x00\x5a\x48\x5a\x49\x77\x4d\x00\x00\x00\x00\x5e\xba\x4c\xd4\x00\x00\x69\x81\x00\x00\x4d\x84\x00\x00\x00\x00\x69\x84\x00\x00\x00\x00\x4d\x87\x69\x83\x4d\x86\x4d\x85\x4f\x86\x69\x82\x00\x00\x00\x00\x69\xd8\x00\x00\x00\x00\x00\x00\x69\xdc\x69\xde\x69\xdf\x4e\x66\x4e\x67\x69\xdb\x4e\x62\x00\x00\x69\xd9\x00\x00\x69\xdd\x4e\x63\x00\x00\x4e\x5e\x00\x00\x4e\x5f\x00\x00\x4e\x65\x69\xda\x4e\x5d\x4f\x87\x4e\x60\x4e\x61\x4e\x64\x00\x00\x00\x00\x00\x00\x6a\xdb\x6a\xd9\x6a\xcc\x4f\x93\x6a\xd3\x4f\x8e\x6a\xcd\x00\x00\x6a\xd5\x00\x00\x6a\xd2\x4f\x91\x6a\xd1\x4f\x98\x6a\xda\x4f\x9a\x00\x00\x4f\x9c\x00\x00\x6a\xcb\x00\x00\x4f\x8f\x6a\xdc\x00\x00\x4f\x96\x4f\x99\x00\x00", /* 6c80 */ "\x6c\x87\x4f\x89\x4f\xa0\x4f\x97\x6a\xce\x4f\x8c\x4f\x9b\x6a\xd6\x4f\x8a\x4f\x8b\x6c\x85\x6a\xcf\x4f\x92\x4f\x9d\x6a\xdd\x6a\xd0\x4f\x90\x00\x00\x4f\x95\x6c\x70\x4f\x9e\x6a\xd7\x4f\x94\x00\x00\x4f\x9f\x4f\x88\x6a\xd4\x4f\x8d\x6a\xd8\x6c\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x6d\x51\x7d\x6c\x77\x51\x74\x00\x00\x6c\x8d\x51\x65\x00\x00\x51\x68\x6c\x84\x00\x00\x6c\x75\x6c\x79\x51\x70\x51\x72\x6c\x7c\x51\x79\x51\x6b\x51\x69\x51\x6a\x51\x78\x6c\x89\x51\x73\x6c\x7b\x6c\x7d\x51\x71\x51\x76\x6c\x7e\x6c\x8c\x00\x00\x52\xf7\x51\x7c\x00\x00\x51\x66\x6c\x8b\x00\x00\x6c\x8f\x6c\x7a\x6c\x91\x6c\x82\x51\x6f\x6c\x76\x51\x6e\x51\x81\x51\x75\x00\x00\x6c\x74\x6e\x78\x51\x7b\x51\x7f\x6c\x83\x6c\x88\x00\x00\x51\x82\x51\x7a\x51\x6c\x51\x62\x00\x00\x51\x67\x00\x00\x6c\x78\x51\x63\x6c\x90\x00\x00\x6c\x72\x6c\x71\x6c\x7f\x6c\x73\x51\x7e\x55\x5a\x51\x77\x6c\x81\x51\x64\x00\x00\x53\x49\x00\x00\x00\x00\x00\x00\x6c\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x6e\x7f\x6e\x83\x00\x00\x6e\x86\x6e\x7a\x00\x00\x00\x00\x6e\x89\x6e\x8c\x6e\x8e\x6e\x77\x52\xf8\x52\xfd\x70\xac\x53\x50\x6e\x87\x6e\x8f\x6e\x7e\x6e\x76\x00\x00\x00\x00\x00\x00\x70\xc7\x53\x43\x6e\x84\x6e\x7b\x6e\x7d\x53\x48\x00\x00\x6e\x81\x53\x42\x6e\x73\x6e\x8a\x00\x00\x6e\x8d\x00\x00\x00\x00\x52\xfc\x00\x00\x53\x4b\x6e\x70\x53\x4d\x52\xfa\x53\x51\x6e\x8b\x6e\x72\x53\x4e\x70\xc1\x6c\x8a\x53\x41\x52\xf9\x6e\x79\x6e\x71\x53\x4f\x53\x47\x6e\x85\x53\x4c\x53\x4a\x6e\x7c\x53\x44\x6e\x74\x53\x45\x53\x46\x6e\x75\x6e\x88\x52\xfb\x6e\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xaf\x55\x62\x55\x67\x00\x00\x00\x00\x00\x00\x70\xb8\x70\xbe\x70\xba\x70\xad\x70\xb0\x70\xa9\x70\xaa\x55\x6e\x55\x5f\x70\xb9\x70\xc2\x55\x69\x55\x5b\x00\x00\x55\x64\x70\xb1\x55\x66\x70\xb2\x70\xbc\x00\x00\x00\x00\x00\x00\x55\x68\x70\xcb\x70\xab\x55\x61\x55\x60\x55\x6c\x70\xa8\x70\xc9\x70\xbd\x70\xca\x70\xc4\x70\xb6", /* 6d80 */ "\x70\xc5\x00\x00\x70\xbf\x70\xc8\x70\xc6\x55\x6d\x70\xb7\x55\x5e\x55\x5d\x55\x65\x55\x6b\x70\xc3\x55\x6a\x70\xb4\x57\xc7\x00\x00\x70\xcc\x70\xb3\x70\xae\x55\x63\x55\x6f\x55\x5c\x00\x00\x70\xbb\x70\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xe9\x73\xc5\x73\xc9\x00\x00\x57\xd6\x57\xd4\x00\x00\x00\x00\x57\xcb\x73\xc7\x73\xc6\x57\xdf\x00\x00\x73\xcc\x57\xd9\x00\x00\x73\xde\x73\xea\x57\xc8\x73\xdb\x73\xd4\x57\xeb\x73\xc4\x00\x00\x73\xe0\x00\x00\x57\xe8\x57\xdc\x57\xe7\x57\xd2\x73\xd0\x73\xe2\x73\xda\x57\xd3\x57\xcd\x73\xe8\x00\x00\x73\xe1\x73\xe3\x57\xd5\x57\xdd\x73\xe5\x73\xce\x73\xdf\x73\xd3\x73\xe7\x57\xe2\x57\xca\x57\xe0\x73\xd8\x73\xd6\x73\xd7\x57\xd7\x73\xd2\x73\xd1\x57\xcc\x73\xcb\x73\xe9\x57\xce\x73\xd5\x57\xec\x00\x00\x57\xe6\x73\xca\x57\xe3\x57\xe1\x57\xea\x73\xdc\x57\xe5\x70\xb5\x73\xdd\x57\xe4\x73\xe4\x57\xc9\x73\xd9\x57\xdb\x73\xcd\x57\xda\x00\x00\x57\xd8\x57\xd0\x57\xcf\x77\x4e\x73\xe6\x00\x00\x00\x00", /* 6e00 */ "\x73\xcf\x00\x00\x00\x00\x77\x63\x00\x00\x57\xd1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x67\x57\xde\x5a\x55\x77\x5d\x5a\x63\x00\x00\x77\x51\x5a\x52\x5a\x4e\x77\x6f\x5a\x54\x5a\x58\x5a\x53\x5a\x5c\x77\x73\x77\x6a\x00\x00\x00\x00\x77\x58\x5a\x61\x5a\x5b\x77\x64\x5a\x4b\x77\x70\x77\x69\x5a\x4f\x77\x5e\x5a\x5e\x77\x7b\x77\x7c\x00\x00\x5a\x4c\x77\x6e\x5a\x60\x77\x62\x77\x54\x77\x55\x5a\x64\x77\x59\x77\x60\x77\x5a\x00\x00\x5a\x62\x5a\x6a\x77\x56\x77\x4f\x77\x50\x00\x00\x77\x52\x5a\x51\x77\x5f\x00\x00\x5a\x5f\x5a\x68\x00\x00\x00\x00\x77\x61\x77\x79\x77\x71\x5a\x4d\x77\x77\x5a\x59\x00\x00\x5a\x57\x00\x00\x77\x7d\x5a\x56\x77\x67\x77\x5b\x77\x65\x5a\x6d\x77\x6b\x77\x68\x77\x57\x5a\x69\x77\x75\x77\x72\x77\x7a\x5a\x50\x77\x66\x5a\x6c\x00\x00\x77\x6d\x00\x00\x00\x00\x5a\x5a\x5a\x5d\x00\x00\x77\x6c\x5a\x6b\x77\x5c\x73\xc8\x00\x00\x00\x00\x77\x76\x77\x74\x77\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6e80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x53\x5a\x66\x00\x00\x00\x00\x00\x00\x7a\xc8\x7a\xc7\x7a\xad\x5c\x84\x00\x00\x7a\xc6\x7a\xb0\x7a\xb1\x00\x00\x5c\x8e\x7a\xcf\x5c\x89\x7a\xc5\x00\x00\x7a\xaa\x5c\x8f\x5c\x85\x7a\xb9\x7a\xaf\x7a\xb2\x7a\xca\x5c\x7e\x7a\xd1\x7a\xc9\x5c\x88\x7a\xbe\x5c\x93\x00\x00\x00\x00\x5c\x92\x5c\x8c\x00\x00\x00\x00\x7a\xd0\x5c\x7f\x7a\xbc\x7a\xb3\x7a\xc0\x7a\xcc\x5c\x94\x00\x00\x5c\x82\x7a\xbb\x91\xc7\x7a\xb4\x5c\x8b\x00\x00\x5c\x8a\x7a\xb7\x7a\xc1\x7a\xcb\x7a\xae\x7a\xb8\x5c\x83\x7a\xc2\x5c\x90\x5c\x87\x7a\xb5\x5c\x86\x7a\xac\x7a\xba\x7a\xce\x5a\x65\x5e\xd6\x7a\xbd\x7e\x56\x7a\xbf\x7a\xcd\x5c\x8d\x7a\xb6\x5c\x81\x5c\x91\x60\xd8\x7a\xab\x00\x00\x7a\xc4\x00\x00\x00\x00\x00\x00\x7a\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x72\x5e\xd3\x7e\x67\x7e\x6c\x5e\xc8\x00\x00\x7e\x58\x5e\xd5\x00\x00\x5e\xbf\x7e\x57\x7e\x78\x5e\xd7\x7e\x5b\x7e\x6b\x00\x00\x7e\x5d\x7e\x7b\x7e\x77\x5e\xbd\x5e\xc7", /* 6f00 */ "\x81\x7d\x5e\xd4\x5e\xc5\x7e\x59\x00\x00\x7e\x76\x5e\xc9\x7e\x73\x7e\x81\x7e\x5f\x7e\x68\x00\x00\x00\x00\x7e\x7e\x7e\x74\x5e\xc4\x00\x00\x00\x00\x7e\x66\x5e\xbe\x5e\xbc\x5e\xce\x00\x00\x00\x00\x7e\x64\x7e\x61\x7e\x62\x00\x00\x7e\x7a\x00\x00\x7e\x7f\x7e\x7d\x5e\xc2\x7e\x82\x5e\xc6\x5e\xcd\x00\x00\x7e\x5a\x81\x65\x7e\x63\x00\x00\x5e\xc0\x5e\xd2\x5e\xcf\x5e\xc3\x7e\x6d\x7e\x5e\x5e\xd0\x7e\x6f\x5e\xca\x5e\xcc\x5e\xbb\x00\x00\x7e\x71\x7e\x69\x7e\x5c\x5e\xcb\x7e\x79\x7e\x7c\x7e\x65\x7e\x70\x00\x00\x5e\xc1\x60\xc7\x7e\x6e\x81\x64\x00\x00\x7e\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x60\x81\x6e\x81\x78\x60\xca\x81\x77\x81\x84\x60\xcc\x81\x75\x00\x00\x81\x79\x60\xd7\x00\x00\x81\x70\x60\xcf\x00\x00\x81\x7c\x84\x9c\x60\xdb\x60\xda\x81\x7e\x81\x6d\x81\x89\x60\xd5\x00\x00\x60\xcb\x81\x82\x00\x00\x81\x86\x81\x8b\x81\x7f\x81\x73\x60\xce\x60\xd1\x60\xd9\x60\xd4\x00\x00\x81\x76\x7e\x6a\x00\x00\x00\x00\x81\x72\x81\x8a\x60\xd0\x00\x00\x60\xd3\x81\x8c\x60\xc8\x81\x81\x81\x66\x81\x87", /* 6f80 */ "\x64\x4a\x00\x00\x81\x74\x00\x00\x60\xc9\x81\x6f\x60\xcd\x81\x67\x5e\xd1\x81\x6b\x00\x00\x81\x85\x81\x6c\x81\x6a\x60\xd2\x00\x00\x81\x83\x00\x00\x81\x69\x81\x7b\x81\x7a\x81\x88\x81\x71\x60\xd6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x9f\x00\x00\x62\xb2\x62\xa8\x84\xab\x84\x97\x62\xaa\x84\xa3\x62\xb1\x62\xac\x84\xa1\x87\x5c\x84\xa7\x84\xad\x84\xa6\x84\x95\x84\xa4\x84\xaf\x84\xb1\x62\xa7\x84\xb0\x62\xad\x62\xb3\x00\x00\x62\xb0\x00\x00\x84\xaa\x62\xaf\x84\xa5\x00\x00\x84\x99\x84\x9e\x00\x00\x84\xa9\x62\xae\x62\xab\x62\xa6\x62\xa9\x84\x9d\x00\x00\x81\x68\x84\x98\x84\x9b\x84\xac\x84\xa0\x84\x96\x87\x5b\x84\xae\x84\x9a\x84\xa8\x00\x00\x00\x00\x00\x00\x00\x00\x87\x5e\x64\x4e\x00\x00\x00\x00\x64\x42\x00\x00\x00\x00\x64\x46\x87\x60\x87\x66\x87\x64\x64\x44\x64\x45\x64\x4c\x87\x67\x87\x5f\x64\x47\x00\x00\x87\x63\x87\x62\x87\x68\x64\x4d\x00\x00\x64\x48\x64\x4b\x87\x61\x64\x4f\x64\x49\x64\x50\x64\x43\x87\x65\x00\x00\x87\x5d\x00\x00\x00\x00\x89\xa5\x00\x00\x00\x00\x65\x7c\x89\xa2\x89\xa4\x00\x00\x65\x7a\x89\xa0", /* 7000 */ "\x89\xa1\x89\x9c\x00\x00\x00\x00\x84\xa2\x89\x9d\x65\x7b\x89\x99\x00\x00\x65\x78\x89\xa6\x65\x79\x89\x9a\x89\x9b\x89\x9f\x65\x7e\x00\x00\x65\x7d\x00\x00\x00\x00\x89\x9e\x66\x64\x8b\x8e\x8b\x94\x66\x65\x8b\x8b\x66\x62\x66\x5f\x8b\x96\x66\x63\x00\x00\x66\x60\x8b\x8d\x8b\x90\x8b\x91\x8b\x92\x8b\x95\x00\x00\x89\xa3\x8b\x8c\x66\x61\x8b\x93\x8b\x97\x8b\x8f\x00\x00\x00\x00\x00\x00\x8d\x4d\x66\xf4\x8d\x50\x66\xf5\x8d\x58\x8d\x4f\x8d\x4c\x00\x00\x8d\x4e\x8d\x52\x8d\x55\x8d\x54\x8d\x57\x8d\x4b\x00\x00\x66\xf3\x8d\x53\x8d\x56\x8d\x59\x8d\x51\x8e\x83\x8e\x84\x8e\x88\x8e\x89\x00\x00\x8e\x86\x8e\x87\x8e\x85\x00\x00\x67\x95\x00\x00\x00\x00\x00\x00\x00\x00\x67\xe3\x8f\x7b\x00\x00\x00\x00\x8f\x78\x8f\x79\x8f\x7a\x67\xe4\x00\x00\x90\x56\x90\x55\x00\x00\x90\xbe\x68\x81\x90\xbc\x90\xbf\x90\xbd\x91\x47\x68\xa3\x68\xb1\x91\x93\x91\x7d\x00\x00\x91\x92\x91\xc0\x91\xc1\x4c\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x68\x69\xe0\x00\x00\x00\x00\x6a\xde\x00\x00\x4f\xa1\x00\x00\x4f\xa4\x00\x00\x6a\xdf\x00\x00\x4f\xa2\x4f\xa3\x00\x00\x00\x00", /* 7080 */ "\x00\x00\x00\x00\x6c\x9a\x6c\x9c\x6c\x97\x6c\x94\x6c\x96\x00\x00\x00\x00\x00\x00\x51\x86\x00\x00\x00\x00\x00\x00\x51\x84\x00\x00\x00\x00\x6c\x98\x51\x85\x6c\x95\x6c\x92\x51\x83\x6c\x99\x00\x00\x6c\x93\x51\x87\x6c\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x91\x00\x00\x6e\x95\x00\x00\x00\x00\x53\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x98\x00\x00\x53\x52\x53\x55\x53\x57\x53\x59\x53\x56\x6e\x94\x6e\x93\x00\x00\x53\x54\x6e\x96\x6e\x97\x00\x00\x6e\x90\x53\x58\x00\x00\x53\x53\x00\x00\x00\x00\x00\x00\x6e\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xda\x70\xdb\x70\xdc\x55\x74\x00\x00\x55\x70\x70\xd1\x00\x00\x70\xd9\x70\xde\x55\x75\x00\x00\x70\xcf\x70\xd5\x70\xce\x70\xd8\x00\x00\x00\x00\x70\xd4\x55\x71\x55\x73\x70\xdd\x00\x00\x70\xcd\x70\xd0\x70\xd6\x00\x00\x70\xd7\x70\xdf\x70\xd3\x00\x00\x55\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xf1\x73\xf1\x00\x00\x00\x00\x73\xf3\x73\xef\x00\x00\x73\xfb\x73\xed\x73\xfa\x57\xed\x73\xeb\x77\x82\x73\xf5\x57\xf0\x00\x00\x73\xf6", /* 7100 */ "\x73\xf9\x00\x00\x73\xfd\x00\x00\x73\xf2\x00\x00\x73\xf7\x00\x00\x00\x00\x57\xee\x57\xef\x73\xfc\x73\xf0\x73\xec\x74\x41\x00\x00\x73\xf4\x00\x00\x00\x00\x73\xf8\x00\x00\x00\x00\x00\x00\x73\xee\x00\x00\x5a\x6e\x5a\x6f\x77\x8c\x5a\x75\x00\x00\x77\x7f\x77\x89\x77\x7e\x5a\x72\x77\x87\x77\x85\x00\x00\x77\x86\x5a\x70\x00\x00\x77\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x83\x77\x81\x5a\x71\x77\x84\x77\x88\x00\x00\x00\x00\x00\x00\x5a\x73\x00\x00\x00\x00\x00\x00\x77\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xd7\x7a\xde\x7a\xe0\x7a\xe6\x00\x00\x5c\xa1\x7a\xd2\x00\x00\x5c\x99\x00\x00\x7a\xe1\x5c\x9e\x7a\xe7\x5c\x95\x00\x00\x7a\xe4\x00\x00\x7a\xd4\x7a\xe5\x7a\xd3\x00\x00\x5c\xa3\x00\x00\x7a\xdf\x5c\x96\x7a\xe8\x00\x00\x5c\x9b\x7a\xd8\x5c\xa0\x7a\xe3\x7a\xd6\x7a\xdd\x7a\xd9\x7a\xd5\x5c\x98\x5c\x9f\x5c\x9d\x5c\x9a\x5c\xa2\x5c\x97\x7a\xdc\x00\x00\x5c\x9c\x00\x00\x5a\x74\x00\x00\x7a\xe2\x00\x00\x7a\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xdb\x00\x00\x00\x00\x7e\x8a\x00\x00\x5e\xda\x00\x00\x00\x00", /* 7180 */ "\x7e\x86\x7e\x8c\x7e\x88\x00\x00\x5e\xdc\x7e\x87\x7e\x8b\x7e\x83\x00\x00\x7e\x85\x5e\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x89\x7e\x84\x00\x00\x5e\xdd\x00\x00\x5e\xd8\x00\x00\x00\x00\x7e\x8d\x00\x00\x5e\xd9\x81\x92\x81\x8f\x81\x9b\x81\x95\x81\x97\x60\xdc\x81\x91\x81\x99\x00\x00\x00\x00\x81\x98\x81\x96\x00\x00\x81\x9c\x60\xdf\x81\x93\x81\x9a\x00\x00\x60\xdd\x00\x00\x00\x00\x81\x8e\x81\x90\x60\xde\x81\x8d\x81\x9d\x00\x00\x81\x94\x00\x00\x00\x00\x84\xb5\x62\xba\x00\x00\x00\x00\x84\xc0\x84\xbe\x62\xb4\x84\xb4\x84\xb7\x84\xb8\x84\xb3\x62\xbe\x62\xbf\x84\xb2\x84\xc1\x84\xbc\x62\xb8\x62\xb5\x84\xbb\x84\xb9\x00\x00\x00\x00\x62\xbb\x84\xbd\x62\xb6\x00\x00\x62\xb7\x00\x00\x84\xba\x62\xb9\x84\xb6\x00\x00\x84\xbf\x62\xbc\x84\xc2\x84\xc3\x62\xbd\x00\x00\x00\x00\x64\x52\x64\x59\x87\x69\x87\x6f\x00\x00\x87\x6d\x64\x55\x64\x54\x64\x51\x87\x6b\x00\x00\x00\x00\x00\x00\x64\x57\x64\x56\x64\x53\x00\x00\x87\x6e\x87\x6a\x87\x6c\x00\x00\x64\x58\x00\x00\x00\x00\x00\x00\x65\x83\x89\xa9\x00\x00\x65\x7f\x65\x81\x89\xab\x65\x82\x89\xa8", /* 7200 */ "\x00\x00\x89\xa7\x8b\x9b\x89\xaa\x00\x00\x8b\x9c\x66\x66\x8b\x9a\x00\x00\x00\x00\x8b\x99\x00\x00\x8b\x98\x66\x67\x00\x00\x00\x00\x66\xf6\x00\x00\x00\x00\x8d\x5a\x8d\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x8c\x8e\x8b\x67\x96\x00\x00\x8e\x8a\x8f\x7c\x8f\x7d\x00\x00\x00\x00\x90\x57\x90\xc0\x00\x00\x00\x00\x91\x48\x91\xac\x68\xc5\x91\xb6\x4c\xd6\x00\x00\x51\x88\x51\x89\x00\x00\x00\x00\x53\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x64\x5a\x4c\xd7\x00\x00\x51\x8a\x55\x76\x5c\xa4\x4c\xd8\x00\x00\x57\xf2\x5e\xde\x69\x63\x00\x00\x6e\x99\x70\xe0\x00\x00\x7e\x8e\x00\x00\x64\x5b\x4c\xd9\x51\x8b\x6e\x9a\x6e\x9b\x77\x8d\x5a\x76\x00\x00\x00\x00\x7a\xe9\x00\x00\x00\x00\x5c\xa5\x7e\x8f\x00\x00\x00\x00\x60\xe0\x00\x00\x66\x68\x4c\xda\x77\x8e\x4c\xdb\x00\x00\x4e\x6a\x69\xe1\x4e\x69\x4f\xa7\x4f\xa6\x4f\xa5\x6a\xe0\x00\x00\x00\x00\x00\x00\x51\x8c\x00\x00\x51\x8d\x6c\x9d\x00\x00\x6e\x9c\x00\x00\x6e\x9f\x53\x5d\x6e\x9d\x00\x00\x53\x5c\x6e\x9e\x53\x5e\x00\x00\x70\xe3\x70\xe2\x70\xe1\x55\x77\x00\x00\x74\x43\x74\x44\x57\xf3\x74\x42\x74\x45", /* 7280 */ "\x5a\x78\x57\xf4\x00\x00\x00\x00\x5a\x77\x77\x92\x77\x91\x00\x00\x77\x8f\x77\x90\x00\x00\x77\x93\x7a\xeb\x7a\xea\x7a\xee\x00\x00\x7a\xed\x7a\xec\x5e\xdf\x7e\x92\x00\x00\x7e\x91\x5e\xe0\x7e\x90\x81\x9e\x00\x00\x81\x9f\x60\xe1\x00\x00\x84\xc4\x84\xc5\x00\x00\x00\x00\x8b\xa1\x66\x69\x8b\xa0\x8b\x9f\x8b\x9d\x8b\x9e\x67\x97\x8d\x5c\x8f\x7e\x91\x49\x00\x00\x4c\xdc\x00\x00\x69\x85\x4d\x88\x69\x86\x00\x00\x00\x00\x00\x00\x69\xe2\x69\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xe6\x00\x00\x00\x00\x6a\xe2\x00\x00\x6a\xe1\x51\x8e\x6a\xe5\x4f\xa9\x6a\xe3\x4f\xa8\x6a\xe7\x6a\xe4\x00\x00\x00\x00\x6c\xa1\x6e\xa0\x6c\x9f\x6c\xa6\x00\x00\x51\x8f\x00\x00\x51\x92\x6c\xa7\x6c\xa3\x00\x00\x6c\xa4\x00\x00\x6c\x9e\x51\x91\x6c\xa0\x51\x90\x6c\xa5\x00\x00\x6c\xa2\x00\x00\x00\x00\x6e\xa4\x53\x60\x53\x61\x00\x00\x6e\xa7\x6e\xa1\x00\x00\x6e\xa6\x00\x00\x6e\xa2\x53\x5f\x6e\xa5\x6e\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\xe9\x70\xe6\x00\x00\x70\xe8\x55\x7c\x55\x7b\x55\x79\x70\xe5\x70\xea\x55\x78\x55\x7a\x70\xe7\x74\x4d", /* 7300 */ "\x70\xe4\x70\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x48\x74\x4c\x00\x00\x74\x4b\x77\x95\x77\xa0\x00\x00\x00\x00\x74\x4e\x00\x00\x74\x49\x77\x94\x57\xf8\x00\x00\x00\x00\x57\xf7\x74\x47\x74\x4a\x57\xf9\x00\x00\x57\xf6\x57\xf5\x74\x46\x74\x4f\x00\x00\x00\x00\x00\x00\x77\x97\x77\x9e\x00\x00\x5a\x7a\x77\x9d\x77\x9a\x00\x00\x5a\x7c\x00\x00\x00\x00\x00\x00\x77\x9c\x00\x00\x00\x00\x77\x96\x77\x98\x77\x9b\x77\x99\x5a\x7b\x77\x9f\x5a\x79\x5c\xa6\x00\x00\x00\x00\x7a\xf2\x7a\xf1\x7a\xef\x00\x00\x5c\xa9\x5c\xa8\x7a\xf3\x00\x00\x7a\xf0\x7e\x93\x5e\xe1\x5c\xa7\x00\x00\x00\x00\x00\x00\x7a\xf5\x7a\xf4\x00\x00\x7e\x96\x7e\x94\x60\xe2\x00\x00\x5e\xe2\x7e\x95\x81\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x60\xe3\x81\xa0\x81\xa9\x81\xa8\x81\xa6\x00\x00\x81\xa5\x81\xa2\x81\xa3\x81\xa4\x81\xa7\x81\xaa\x00\x00\x00\x00\x84\xca\x84\xc7\x84\xc8\x62\xc0\x84\xc6\x84\xcc\x84\xcb\x84\xc9\x00\x00\x87\x71\x87\x72\x64\x5c\x00\x00\x64\x5d\x87\x70\x00\x00\x65\x85\x89\xac\x65\x84\x66\x6a\x00\x00\x66\x6b\x66\xf7\x8d\x5e\x8d\x5d\x8e\x8d\x8f\x7f", /* 7380 */ "\x67\xe5\x90\x59\x90\x58\x90\x5a\x4d\x89\x6e\xa8\x55\x7d\x57\xfa\x74\x50\x4d\x8a\x69\x87\x4c\xdd\x00\x00\x00\x00\x69\xe4\x00\x00\x00\x00\x00\x00\x6a\xec\x6a\xea\x6a\xeb\x6a\xe8\x4f\xaa\x6a\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xaf\x00\x00\x51\x95\x6c\xad\x6c\xa9\x6c\xac\x00\x00\x6c\xa8\x51\x97\x6c\xab\x00\x00\x51\x94\x51\x93\x00\x00\x51\x96\x6c\xae\x6c\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x53\x65\x53\x68\x6e\xb0\x6e\xaf\x6e\xae\x53\x62\x6e\xb7\x6e\xad\x00\x00\x53\x64\x70\xf0\x00\x00\x6e\xb4\x6e\xb2\x53\x67\x00\x00\x6e\xaa\x6e\xb5\x00\x00\x6e\xac\x6e\xb6\x6e\xb3\x6e\xab\x00\x00\x53\x63\x6e\xb8\x6e\xa9\x53\x66\x00\x00\x00\x00\x00\x00\x00\x00\x70\xf5\x70\xec\x70\xf7\x00\x00\x70\xef\x70\xfa\x70\xfb\x70\xed\x70\xf9\x70\xf6\x70\xf4\x70\xf8\x55\x84\x00\x00\x55\x82\x00\x00\x00\x00\x70\xf2\x00\x00\x70\xee\x00\x00\x70\xf1\x70\xfc\x70\xf3\x55\x83\x6e\xb1\x00\x00\x55\x7e\x55\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x5e\x74\x53\x74\x51\x00\x00\x74\x52\x00\x00\x74\x59\x00\x00\x74\x5a\x74\x56\x58\x42\x74\x5b", /* 7400 */ "\x74\x58\x74\x55\x00\x00\x57\xfd\x74\x54\x57\xfb\x58\x41\x74\x57\x74\x5f\x55\x7f\x57\xfc\x74\x5d\x74\x5c\x58\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xa5\x00\x00\x00\x00\x00\x00\x77\xa6\x5a\x87\x00\x00\x77\xac\x00\x00\x00\x00\x77\xae\x77\xa7\x5a\x81\x77\xab\x77\xaa\x5a\x82\x5a\x88\x00\x00\x5a\x89\x77\xad\x5a\x7e\x77\xa4\x77\xa2\x77\xa8\x77\xa1\x5a\x86\x77\xa3\x77\xa9\x77\xaf\x5a\x7f\x5a\x85\x5a\x83\x5a\x84\x00\x00\x00\x00\x00\x00\x5a\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb0\x7a\xfc\x5c\xaf\x7b\x43\x00\x00\x7a\xf6\x00\x00\x7b\x44\x00\x00\x00\x00\x00\x00\x7a\xf7\x7a\xf8\x00\x00\x7b\x45\x7b\x42\x7a\xfd\x7b\x41\x7a\xfa\x7a\xf9\x00\x00\x7b\x46\x5c\xac\x00\x00\x7a\xfb\x00\x00\x5c\xb1\x5c\xab\x5c\xb2\x5c\xb3\x00\x00\x5c\xae\x5c\xad\x00\x00\x00\x00\x7e\x97\x5e\xe4\x5e\xe3\x00\x00\x00\x00\x7e\x9c\x00\x00\x60\xe4\x5e\xe5\x00\x00\x00\x00\x5e\xe7\x7e\x9d\x5c\xaa\x5e\xe6\x7e\x99\x7e\x9b\x7e\x98\x00\x00\x7e\x9a\x00\x00\x00\x00\x00\x00\x81\xb4\x00\x00\x00\x00\x81\xb3\x81\xb0\x60\xe7\x84\xcd", /* 7480 */ "\x60\xe8\x81\xaf\x00\x00\x60\xe6\x00\x00\x81\xb1\x81\xae\x81\xab\x81\xb2\x81\xac\x81\xad\x60\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x87\x76\x00\x00\x84\xd1\x00\x00\x84\xd0\x84\xd2\x00\x00\x87\x73\x62\xc3\x00\x00\x84\xce\x00\x00\x62\xc1\x00\x00\x62\xc5\x62\xc4\x84\xcf\x84\xd3\x00\x00\x62\xc2\x00\x00\x87\x7a\x64\x60\x65\x86\x64\x61\x64\x5e\x87\x77\x87\x75\x00\x00\x87\x78\x00\x00\x87\x7b\x64\x5f\x87\x79\x87\x74\x00\x00\x00\x00\x89\xaf\x89\xb2\x8b\xa4\x89\xad\x00\x00\x8d\x5f\x89\xb3\x00\x00\x66\x6c\x89\xb1\x65\x87\x89\xae\x89\xb0\x89\xb4\x8b\xa5\x00\x00\x8b\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x66\x6d\x8b\xa2\x00\x00\x00\x00\x00\x00\x66\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x67\x99\x8f\x82\x67\x98\x8f\x84\x8f\x81\x8f\x83\x68\x5c\x90\xc1\x4d\x8b\x6c\xb0\x70\xfd\x71\x41\x58\x44\x7b\x47\x62\xc6\x66\x6e\x67\xe6\x90\xc2\x4d\x8c\x00\x00\x6c\xb1\x46\xf8\x00\x00\x00\x00\x6e\xb9\x00\x00\x6e\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x42\x71\x43\x58\x45\x58\x46\x00\x00\x00\x00\x00\x00\x77\xb0\x00\x00\x7b\x4a\x7b\x49\x7b\x48", /* 7500 */ "\x7e\x9e\x00\x00\x7e\x9f\x7e\xa0\x5e\xe8\x00\x00\x00\x00\x81\xb6\x81\xb5\x00\x00\x00\x00\x84\xd4\x62\xc7\x62\xc8\x00\x00\x87\x7f\x87\x7c\x87\x7d\x87\x7e\x89\xb6\x89\xb5\x65\x88\x8b\xa6\x8e\x8e\x4d\x8d\x00\x00\x53\x69\x00\x00\x58\x47\x7b\x4b\x00\x00\x4d\x8e\x00\x00\x71\x44\x58\x48\x00\x00\x00\x00\x5a\x8a\x5a\x8b\x00\x00\x4d\x8f\x4d\x90\x69\xe5\x4f\xac\x4f\xab\x53\x6a\x6e\xbb\x77\xb1\x4d\x91\x4d\x92\x4d\x93\x4d\x94\x00\x00\x00\x00\x00\x00\x4f\xad\x4f\xae\x6a\xee\x6a\xed\x00\x00\x00\x00\x51\x98\x6c\xb4\x6c\xb2\x6c\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xbc\x6e\xbd\x00\x00\x00\x00\x53\x6e\x53\x6c\x00\x00\x53\x6d\x53\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x55\x85\x00\x00\x00\x00\x00\x00\x00\x00\x55\x89\x55\x88\x71\x45\x55\x87\x55\x86\x00\x00\x71\x46\x00\x00\x00\x00\x58\x4b\x74\x61\x74\x60\x58\x49\x58\x4a\x00\x00\x00\x00\x00\x00\x5a\x8d\x5a\x8c\x77\xb3\x00\x00\x00\x00\x77\xb2\x58\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xb4\x7b\x4d\x5c\xb5\x7b\x4c\x00\x00\x00\x00\x00\x00\x7e\xa1\x81\xb7\x60\xe9", /* 7580 */ "\x84\xd5\x00\x00\x00\x00\x00\x00\x87\x81\x00\x00\x66\x70\x66\x6f\x00\x00\x00\x00\x67\xe7\x4d\x95\x6c\xb5\x00\x00\x00\x00\x58\x4d\x7e\xa2\x5e\xe9\x48\xa8\x00\x00\x6a\xef\x6a\xf0\x00\x00\x00\x00\x6c\xb6\x51\x9a\x51\x9b\x00\x00\x00\x00\x51\x99\x00\x00\x00\x00\x00\x00\x00\x00\x53\x72\x53\x73\x53\x70\x53\x71\x00\x00\x6e\xbe\x00\x00\x00\x00\x6e\xbf\x53\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x71\x47\x00\x00\x55\x8d\x55\x8e\x00\x00\x58\x50\x71\x4d\x00\x00\x55\x93\x55\x91\x71\x4e\x71\x49\x55\x90\x55\x8f\x55\x8a\x71\x4c\x71\x4b\x71\x48\x55\x92\x00\x00\x71\x4a\x55\x8b\x00\x00\x55\x8c\x00\x00\x00\x00\x58\x51\x74\x65\x74\x66\x58\x52\x74\x62\x74\x64\x74\x68\x74\x67\x74\x63\x00\x00\x58\x4e\x58\x4f\x00\x00\x77\xbb\x5a\x92\x5a\x91\x77\xb5\x5a\x8f\x00\x00\x77\xb8\x5a\x93\x77\xb9\x5a\x94\x77\xb6\x5a\x8e\x5a\x90\x77\xba\x00\x00\x77\xb7\x77\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x5a\x00\x00\x7b\x4f\x5c\xb7\x5c\xba\x5c\xb9\x5c\xbe\x5c\xbd\x7b\x5b\x7b\x59\x7b\x52\x7b\x56\x7b\x55\x5c\xbb\x7b\x58\x7b\x54\x7b\x5c\x7b\x53\x5c\xbc", /* 7600 */ "\x5c\xb6\x5c\xb8\x00\x00\x7b\x51\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xa4\x5e\xed\x7e\xa8\x5e\xec\x7e\xa5\x5e\xeb\x00\x00\x7b\x50\x7b\x57\x7e\xa7\x00\x00\x5e\xee\x7e\xa9\x7e\xa6\x7e\xa3\x00\x00\x00\x00\x81\xba\x81\xbe\x81\xc0\x81\xbc\x81\xbb\x81\xb9\x60\xec\x60\xea\x60\xef\x60\xf0\x81\xbd\x60\xed\x81\xb8\x60\xee\x5e\xea\x81\xbf\x60\xeb\x00\x00\x00\x00\x00\x00\x84\xd7\x00\x00\x84\xd6\x84\xde\x84\xd8\x84\xdd\x84\xda\x62\xc9\x84\xdc\x00\x00\x00\x00\x62\xca\x00\x00\x62\xcb\x00\x00\x84\xdb\x84\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x64\x63\x87\x82\x00\x00\x00\x00\x64\x62\x87\x85\x87\x83\x87\x84\x00\x00\x00\x00\x64\x64\x00\x00\x00\x00\x00\x00\x89\xba\x00\x00\x65\x8b\x89\xbb\x00\x00\x00\x00\x65\x89\x89\xbc\x65\x8a\x89\xb9\x89\xbd\x00\x00\x89\xb7\x00\x00\x00\x00\x66\x71\x8b\xa7\x66\x72\x66\xf9\x00\x00\x89\xb8\x66\xfa\x00\x00\x00\x00\x00\x00\x67\x9a\x8e\x8f\x00\x00\x67\xe9\x8f\x85\x67\xe8\x00\x00\x90\x5b\x68\x82\x68\x83\x00\x00\x00\x00\x91\xbc\x48\xa9\x00\x00\x53\x74\x6e\xc0\x00\x00\x5a\x95\x5a\x96\x4d\x96\x4e\x6b\x69\xe6", /* 7680 */ "\x00\x00\x6a\xf1\x4f\xaf\x00\x00\x51\x9c\x00\x00\x53\x75\x53\x76\x53\x77\x74\x6a\x71\x4f\x55\x94\x00\x00\x00\x00\x58\x53\x74\x69\x00\x00\x00\x00\x77\xbd\x5a\x98\x00\x00\x77\xbc\x5a\x97\x00\x00\x00\x00\x7b\x5d\x60\xf1\x81\xc4\x81\xc1\x81\xc2\x81\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x86\x00\x00\x89\xbe\x00\x00\x00\x00\x00\x00\x8d\x61\x8d\x60\x00\x00\x8f\x86\x4d\x97\x6c\xb7\x55\x95\x00\x00\x00\x00\x00\x00\x5a\x99\x7b\x5e\x00\x00\x00\x00\x7e\xaa\x00\x00\x60\xf2\x84\xdf\x00\x00\x89\xbf\x8d\x62\x4d\x98\x00\x00\x00\x00\x51\x9d\x53\x7a\x6e\xc1\x53\x7b\x53\x79\x00\x00\x53\x78\x71\x50\x55\x96\x00\x00\x00\x00\x55\x97\x55\x98\x00\x00\x00\x00\x00\x00\x58\x55\x74\x6b\x58\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xbe\x58\x56\x5a\x9a\x7b\x5f\x5c\xbf\x5c\xc0\x00\x00\x5e\xef\x00\x00\x5e\xf0\x60\xf3\x62\xcd\x84\xe0\x62\xcc\x00\x00\x87\x87\x64\x65\x00\x00\x89\xc0\x8d\x63\x4d\x99\x4f\xb0\x6c\xba\x6c\xb9\x51\x9e\x6c\xb8\x51\x9f\x6c\xbb\x00\x00\x6e\xc7\x53\x7e\x53\x7d\x6e\xc9\x6e\xc8\x53\x83\x00\x00\x53\x82\x00\x00", /* 7700 */ "\x00\x00\x53\x7c\x00\x00\x6e\xc3\x6e\xc4\x6e\xc5\x00\x00\x53\x84\x6e\xc2\x53\x7f\x6e\xc6\x53\x81\x00\x00\x00\x00\x00\x00\x00\x00\x71\x53\x71\x57\x71\x55\x71\x54\x00\x00\x71\x58\x00\x00\x00\x00\x00\x00\x71\x59\x71\x5a\x71\x52\x00\x00\x71\x51\x00\x00\x55\x9a\x55\x9b\x00\x00\x71\x5b\x71\x56\x00\x00\x74\x74\x00\x00\x71\x5c\x55\x9c\x55\x99\x00\x00\x00\x00\x00\x00\x74\x6e\x00\x00\x74\x6d\x00\x00\x74\x6f\x74\x70\x74\x72\x74\x71\x74\x76\x58\x5a\x58\x57\x58\x5b\x74\x6c\x58\x5c\x74\x75\x58\x59\x74\x73\x58\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xc1\x77\xc3\x77\xbf\x77\xc0\x00\x00\x00\x00\x77\xc4\x77\xc6\x77\xc7\x77\xc2\x77\xc5\x5a\x9b\x00\x00\x00\x00\x7b\x63\x00\x00\x7b\x68\x7b\x60\x7b\x64\x00\x00\x00\x00\x7b\x69\x7b\x65\x5c\xc1\x5c\xc9\x00\x00\x5c\xc4\x7b\x61\x7b\x62\x5e\xf4\x5c\xcc\x5c\xc5\x00\x00\x5c\xca\x5c\xc3\x7b\x67\x5c\xcb\x7b\x66\x5c\xc7\x5c\xc2\x5c\xc8\x7b\x6a\x7e\xaf\x7e\xb1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xc6\x00\x00\x00\x00\x7e\xac\x5e\xf2\x7e\xb2\x5e\xf3", /* 7780 */ "\x7e\xb0\x7e\xab\x7e\xae\x7e\xb3\x5e\xf1\x7e\xad\x00\x00\x60\xf5\x81\xc8\x81\xc7\x00\x00\x60\xf8\x60\xf6\x81\xc5\x60\xf4\x81\xc6\x00\x00\x60\xf7\x00\x00\x00\x00\x00\x00\x84\xe8\x00\x00\x84\xea\x00\x00\x84\xe9\x84\xe1\x84\xe5\x84\xe4\x84\xe2\x62\xcf\x62\xd0\x62\xce\x84\xe3\x84\xe6\x84\xe7\x00\x00\x62\xd1\x00\x00\x64\x6a\x87\x8f\x00\x00\x64\x67\x87\x89\x64\x69\x64\x6b\x00\x00\x00\x00\x64\x68\x87\x8e\x87\x8a\x64\x66\x87\x8d\x87\x88\x87\x8c\x87\x8b\x00\x00\x00\x00\x89\xc2\x65\x8e\x65\x8f\x65\x8c\x00\x00\x65\x8d\x00\x00\x00\x00\x89\xc1\x00\x00\x8b\xaa\x00\x00\x00\x00\x66\x73\x00\x00\x8b\xa8\x8b\xa9\x00\x00\x8d\x64\x8d\x67\x8d\x65\x8d\x66\x8e\x90\x00\x00\x00\x00\x67\x9b\x90\x5c\x90\xc3\x00\x00\x68\x84\x91\x4a\x91\x4b\x68\xb2\x4d\x9a\x53\x85\x00\x00\x77\xc8\x00\x00\x7b\x6b\x00\x00\x4d\x9b\x4f\xb1\x00\x00\x51\xa0\x00\x00\x6e\xca\x6e\xcb\x55\x9d\x00\x00\x00\x00\x77\xc9\x5a\x9c\x5c\xcd\x64\x6c\x87\x90\x8b\xab\x8d\x68\x4d\x9c\x00\x00\x00\x00\x00\x00\x6c\xc1\x6c\xbc\x6c\xbe\x6c\xc0\x6c\xbf\x6c\xbd\x51\xa1\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x53\x86\x6e\xd4\x00\x00\x6e\xcf\x6e\xcc\x00\x00\x00\x00\x6e\xd3\x00\x00\x00\x00\x53\x88\x53\x89\x6e\xd2\x6e\xd1\x6e\xd0\x6e\xcd\x6e\xce\x6e\xd5\x53\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xa1\x00\x00\x55\xa7\x55\xa6\x71\x65\x71\x5f\x71\x5d\x00\x00\x55\xa4\x74\x7d\x55\x9f\x71\x62\x71\x66\x71\x68\x71\x64\x71\x5e\x55\xa5\x71\x63\x71\x61\x55\x9e\x71\x69\x55\xa8\x71\x67\x55\xa2\x71\x60\x00\x00\x55\xa3\x55\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x5e\x00\x00\x74\x7e\x00\x00\x00\x00\x74\x77\x74\x79\x74\x7b\x00\x00\x74\x7c\x74\x7a\x58\x5f\x00\x00\x74\x7f\x00\x00\x74\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xcd\x5a\x9d\x77\xd5\x00\x00\x77\xca\x00\x00\x77\xd6\x00\x00\x77\xcb\x77\xcc\x00\x00\x00\x00\x77\xd4\x77\xd3\x77\xd0\x58\x5d\x5a\x9e\x77\xce\x77\xd1\x5a\x9f\x77\xd2\x77\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x76\x00\x00\x7b\x7a\x5c\xd4\x00\x00\x7e\xb9\x5c\xd7", /* 7880 */ "\x7b\x78\x00\x00\x00\x00\x7b\x75\x7b\x70\x7b\x72\x7b\x73\x7b\x6c\x00\x00\x5c\xd3\x00\x00\x00\x00\x5c\xd2\x00\x00\x5c\xce\x7b\x6f\x00\x00\x5c\xd5\x00\x00\x5c\xd6\x7b\x6e\x7b\x71\x7b\x79\x5c\xd0\x5c\xd1\x7b\x77\x7b\x6d\x00\x00\x00\x00\x00\x00\x7e\xbb\x5e\xf6\x7e\xbd\x7b\x74\x7e\xbf\x5e\xfa\x7e\xc0\x7e\xbc\x00\x00\x5e\xf7\x7e\xb8\x5e\xf9\x7e\xb5\x7e\xba\x7e\xbe\x7e\xb7\x00\x00\x00\x00\x5c\xcf\x00\x00\x7e\xb4\x5e\xf8\x7e\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\xfb\x81\xca\x61\x42\x00\x00\x60\xfd\x00\x00\x00\x00\x5e\xf5\x00\x00\x81\xd1\x81\xd2\x60\xfa\x00\x00\x00\x00\x81\xd0\x81\xd3\x60\xfc\x60\xf9\x81\xcc\x81\xc9\x81\xce\x81\xcb\x61\x43\x81\xcd\x00\x00\x00\x00\x81\xcf\x61\x41\x00\x00\x00\x00\x00\x00\x00\x00\x62\xd3\x84\xf1\x00\x00\x84\xeb\x84\xef\x84\xf5\x84\xf6\x84\xf2\x84\xf3\x84\xf0\x00\x00\x84\xed\x00\x00\x62\xd5\x62\xd2\x84\xec\x84\xee\x00\x00\x62\xd4\x84\xf4\x00\x00\x64\x70\x00\x00\x00\x00\x87\x96\x87\x91\x64\x6f\x00\x00\x00\x00\x64\x6d\x00\x00\x87\x98\x64\x6e\x87\x94\x87\x95\x87\x92\x87\x99\x89\xc3", /* 7900 */ "\x00\x00\x64\x71\x87\x93\x00\x00\x87\x9a\x87\x97\x00\x00\x00\x00\x00\x00\x89\xc7\x00\x00\x00\x00\x89\xc4\x00\x00\x65\x90\x00\x00\x89\xc8\x89\xca\x89\xc9\x89\xc5\x89\xc6\x00\x00\x00\x00\x8b\xb0\x00\x00\x66\x74\x00\x00\x8b\xad\x8b\xaf\x8b\xac\x8b\xb1\x00\x00\x00\x00\x8b\xae\x00\x00\x8d\x6a\x8d\x6d\x8d\x69\x66\xfb\x8d\x6b\x8d\x6c\x8d\x6e\x66\xfc\x67\x41\x66\xfd\x8e\x91\x00\x00\x8e\x93\x00\x00\x8e\x92\x00\x00\x00\x00\x00\x00\x8f\x87\x00\x00\x00\x00\x90\xc4\x91\x4c\x4d\x9d\x00\x00\x00\x00\x6a\xf2\x51\xa2\x6c\xc3\x51\xa3\x51\xa4\x6c\xc2\x00\x00\x6e\xda\x6e\xd9\x53\x8a\x53\x8d\x53\x8c\x53\x8b\x6e\xd6\x6e\xd8\x6e\xd7\x00\x00\x00\x00\x71\x6c\x55\xaa\x71\x70\x71\x6f\x71\x6e\x71\x6a\x55\xa9\x55\xad\x55\xb0\x00\x00\x00\x00\x55\xb1\x71\x6b\x71\x6d\x55\xaf\x55\xae\x55\xac\x55\xab\x74\x87\x00\x00\x74\x85\x74\x81\x58\x60\x00\x00\x74\x82\x58\x61\x74\x83\x74\x84\x74\x86\x00\x00\x58\x62\x00\x00\x00\x00\x77\xda\x00\x00\x77\xd9\x77\xd8\x77\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x7e\x5c\xd8\x00\x00\x7b\x7b\x7b\x7d\x00\x00\x5c\xd9", /* 7980 */ "\x00\x00\x5c\xda\x7b\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xc9\x00\x00\x7e\xc2\x7e\xc3\x00\x00\x5e\xfd\x5e\xfb\x5e\xfc\x7e\xcb\x00\x00\x7e\xca\x7e\xc7\x7e\xc6\x7e\xc5\x7e\xc4\x7e\xc8\x7e\xc1\x00\x00\x81\xd4\x81\xd9\x81\xd7\x00\x00\x00\x00\x00\x00\x81\xd6\x81\xd5\x81\xd8\x00\x00\x84\xf7\x00\x00\x62\xd6\x64\x72\x87\x9c\x00\x00\x64\x73\x87\x9b\x89\xcc\x89\xcb\x65\x91\x00\x00\x8b\xb2\x66\x75\x8d\x6f\x67\xea\x8f\x88\x00\x00\x90\xc6\x90\xc5\x69\x88\x53\x8e\x53\x8f\x74\x88\x00\x00\x5c\xdc\x4d\x9e\x4f\xb4\x4f\xb3\x4f\xb2\x00\x00\x00\x00\x00\x00\x6c\xc4\x00\x00\x00\x00\x51\xa6\x51\xa5\x00\x00\x53\x92\x00\x00\x6e\xdc\x6e\xdf\x6e\xdd\x00\x00\x53\x90\x53\x91\x00\x00\x00\x00\x6e\xdb\x6e\xde\x00\x00\x55\xb8\x00\x00\x00\x00\x00\x00\x71\x77\x71\x79\x71\x78\x55\xb5\x71\x73\x00\x00\x00\x00\x55\xb3\x55\xb2\x00\x00\x55\xb6\x55\xb4\x00\x00\x55\xb7\x71\x76\x71\x71\x71\x72\x71\x75\x71\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x8b\x74\x8c\x74\x8a\x00\x00\x74\x89\x58\x63\x00\x00\x00\x00\x00\x00\x00\x00", /* 7a00 */ "\x5a\xa4\x00\x00\x77\xdb\x77\xdd\x77\xdf\x5a\xa3\x00\x00\x00\x00\x5a\xa1\x00\x00\x77\xdc\x5a\xa2\x77\xde\x5a\xa0\x00\x00\x00\x00\x7b\x89\x7b\x7f\x7b\x83\x7b\x87\x5c\xe0\x7b\x85\x00\x00\x7b\x84\x7b\x81\x7b\x82\x5c\xde\x7b\x88\x5c\xdd\x00\x00\x5c\xe2\x5c\xe1\x5c\xdf\x00\x00\x7b\x86\x00\x00\x00\x00\x00\x00\x7e\xd1\x00\x00\x7e\xd0\x00\x00\x00\x00\x7e\xcc\x00\x00\x00\x00\x5f\x41\x7e\xcf\x7e\xce\x5f\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x48\x00\x00\x81\xdb\x00\x00\x61\x49\x61\x45\x61\x47\x00\x00\x61\x44\x61\x46\x00\x00\x00\x00\x00\x00\x84\xf8\x00\x00\x62\xd9\x84\xfa\x84\xf9\x00\x00\x7e\xcd\x62\xdb\x62\xda\x62\xd7\x62\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xa1\x00\x00\x87\x9f\x64\x74\x87\xa0\x00\x00\x87\xa2\x87\x9e\x87\x9d\x00\x00\x00\x00\x89\xcd\x65\x94\x65\x92\x65\x93\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xb3\x8b\xb4\x66\x77\x00\x00\x66\x76\x8d\x71\x8d\x72\x8d\x70\x00\x00\x8f\x89\x8f\x8a\x00\x00\x00\x00\x4d\x9f\x69\xe7\x4f\xb5\x00\x00\x6c\xc5\x51\xa8\x51\xa7\x6c\xc6\x00\x00\x00\x00\x6e\xe1\x53\x93", /* 7a80 */ "\x6e\xe0\x53\x94\x00\x00\x00\x00\x55\xb9\x71\x7c\x71\x7a\x71\x81\x55\xba\x71\x7b\x71\x7f\x71\x7d\x71\x7e\x00\x00\x00\x00\x74\x8d\x74\x8f\x00\x00\x58\x64\x00\x00\x74\x8e\x58\x65\x5a\xa7\x5a\xa6\x5a\xa5\x77\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x8c\x5c\xe3\x5c\xe4\x00\x00\x7b\x8b\x7b\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xd2\x5f\x44\x5f\x43\x7e\xd3\x7e\xd4\x00\x00\x61\x4b\x61\x4a\x00\x00\x85\x41\x81\xdc\x81\xde\x81\xdd\x84\xfd\x84\xfb\x85\x42\x84\xfc\x00\x00\x62\xdc\x00\x00\x00\x00\x00\x00\x87\xa3\x64\x75\x87\xa4\x87\xa5\x00\x00\x00\x00\x65\x95\x65\x96\x00\x00\x67\x42\x00\x00\x00\x00\x68\x5d\x4d\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x82\x55\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfd\x58\xfc\x00\x00\x00\x00\x5a\xa9\x77\xe2\x5a\xa8\x77\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x8d\x00\x00\x5f\x45\x7e\xd5\x5f\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x43\x8d\x73\x00\x00\x4e\x6c\x51\xa9\x6c\xc7\x00\x00\x53\x96\x00\x00\x53\x95", /* 7b00 */ "\x6e\xe3\x6e\xe4\x00\x00\x00\x00\x71\x84\x71\x86\x55\xbc\x00\x00\x71\x88\x71\x8b\x71\x89\x00\x00\x00\x00\x00\x00\x71\x8a\x71\x87\x71\x83\x55\xbd\x71\x8c\x71\x85\x00\x00\x00\x00\x00\x00\x00\x00\x74\x98\x58\x6b\x74\xa1\x58\x68\x00\x00\x74\x9a\x58\x6c\x00\x00\x58\x66\x00\x00\x74\x95\x74\xa2\x74\x96\x74\x93\x58\x6a\x00\x00\x58\x67\x00\x00\x74\x99\x74\x9c\x58\x69\x74\x9d\x58\x6d\x74\x9e\x74\x94\x74\x9b\x74\x9f\x74\x97\x74\x92\x74\x90\x00\x00\x00\x00\x74\xa0\x00\x00\x00\x00\x77\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x77\xe9\x00\x00\x00\x00\x00\x00\x77\xe5\x77\xeb\x5a\xac\x74\x91\x77\xe6\x5a\xaa\x77\xe3\x5a\xb1\x77\xe7\x5a\xb0\x77\xe8\x5a\xb2\x5a\xad\x5a\xb3\x5a\xae\x00\x00\x5a\xaf\x00\x00\x5a\xab\x00\x00\x77\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xe7\x7b\x98\x00\x00\x7b\x9b\x7b\x8f\x7b\x94\x7b\x8e\x5c\xe9\x00\x00\x7b\x92\x00\x00\x00\x00\x00\x00\x7b\x90\x5c\xe8\x00\x00\x7b\x97\x7b\x96\x7b\x93\x7b\x95\x7b\x91\x5f\x4a\x7b\x9a\x5c\xe5\x7b\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7b80 */ "\x00\x00\x00\x00\x7e\xe5\x00\x00\x5f\x51\x7e\xe0\x00\x00\x5f\x50\x7e\xd6\x00\x00\x7e\xd8\x5f\x49\x7e\xdd\x7e\xdc\x7e\xdf\x5f\x4e\x7e\xda\x7e\xd9\x00\x00\x00\x00\x5f\x4d\x5f\x48\x7e\xdb\x5f\x4b\x7e\xe1\x7e\xe3\x00\x00\x7e\xde\x7e\xd7\x5f\x4c\x00\x00\x00\x00\x61\x53\x5f\x47\x00\x00\x00\x00\x7e\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe2\x61\x4c\x00\x00\x81\xe4\x00\x00\x61\x4d\x00\x00\x00\x00\x61\x4f\x81\xe7\x00\x00\x81\xdf\x5f\x4f\x81\xe5\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe1\x00\x00\x5c\xe6\x61\x52\x00\x00\x00\x00\x61\x4e\x00\x00\x61\x50\x61\x51\x00\x00\x62\xdf\x81\xe6\x81\xe0\x61\x54\x00\x00\x81\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x4c\x85\x47\x00\x00\x00\x00\x85\x51\x62\xdd\x85\x49\x62\xe1\x85\x4f\x85\x46\x85\x43\x85\x52\x64\x7b\x62\xe2\x85\x4e\x85\x44\x62\xe0\x85\x48\x62\xe4\x85\x45\x85\x4a\x62\xe3\x85\x4d\x85\x50\x00\x00\x00\x00\x00\x00\x00\x00\x87\xb7\x87\xb8\x87\xa8\x87\xaf\x87\xad\x00\x00\x00\x00\x64\x79\x87\xb4\x85\x4b\x00\x00\x87\xab\x00\x00\x87\xb5\x64\x78\x87\xaa", /* 7c00 */ "\x87\xa9\x87\xb3\x87\xb0\x87\xb2\x00\x00\x87\xa6\x87\xb6\x64\x76\x00\x00\x87\xb1\x87\xba\x87\xae\x64\x7a\x64\x77\x87\xac\x87\xa7\x87\xb9\x62\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\xd0\x00\x00\x00\x00\x89\xce\x89\xd4\x65\x9a\x89\xd2\x89\xd1\x65\x9c\x89\xd7\x65\x9b\x00\x00\x89\xd8\x89\xd5\x65\x98\x89\xd6\x89\xcf\x65\x99\x65\x97\x8b\xb8\x89\xd3\x00\x00\x00\x00\x89\xd9\x00\x00\x00\x00\x8b\xb5\x00\x00\x00\x00\x00\x00\x66\x7c\x66\x7a\x8b\xb7\x00\x00\x8b\xb9\x8b\xb6\x66\x7b\x66\x78\x66\x79\x66\x7d\x00\x00\x00\x00\x67\x45\x00\x00\x8d\x78\x00\x00\x8d\x77\x8d\x75\x8d\x74\x8d\x76\x00\x00\x67\x44\x67\x46\x00\x00\x00\x00\x67\x9c\x00\x00\x00\x00\x8e\x95\x8e\x94\x00\x00\x00\x00\x8f\x8b\x00\x00\x8f\x8d\x8f\x8f\x8f\x8e\x8f\x8c\x00\x00\x00\x00\x67\xec\x67\xeb\x00\x00\x00\x00\x68\x5f\x68\x5e\x68\x60\x90\x5e\x90\x5d\x00\x00\x91\x4d\x90\xc7\x91\x4e\x68\xa4\x00\x00\x68\xa5\x91\x7e\x00\x00\x00\x00\x68\xca\x4e\x6d\x00\x00\x6c\xc8\x00\x00\x00\x00\x6e\xe6\x6e\xe7\x6e\xe5\x00\x00\x00\x00\x53\x97\x00\x00\x6e\xe8", /* 7c80 */ "\x6e\xe9\x6e\xea\x00\x00\x00\x00\x71\x8d\x71\x93\x00\x00\x00\x00\x71\x91\x55\xbe\x71\x8f\x00\x00\x71\x90\x71\x92\x00\x00\x00\x00\x00\x00\x71\x8e\x58\x6e\x00\x00\x74\xa3\x58\x70\x74\xa5\x58\x6f\x74\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xed\x5a\xb4\x00\x00\x77\xef\x77\xec\x74\xa6\x00\x00\x5a\xb5\x00\x00\x00\x00\x77\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x9e\x00\x00\x5c\xea\x7b\x9c\x5c\xeb\x7b\x9d\x5c\xec\x00\x00\x00\x00\x00\x00\x5f\x52\x7e\xe9\x7e\xe6\x7e\xe8\x5f\x53\x5f\x54\x7e\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xe8\x00\x00\x00\x00\x81\xe9\x00\x00\x61\x55\x81\xeb\x81\xea\x00\x00\x46\xf9\x00\x00\x85\x56\x85\x57\x85\x53\x00\x00\x85\x54\x62\xe5\x62\xe6\x85\x55\x00\x00\x64\x82\x00\x00\x00\x00\x64\x7d\x64\x83\x64\x7e\x64\x81\x64\x7c\x00\x00\x64\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x65\x9d\x87\xbb\x00\x00\x8b\xbb\x00\x00\x8b\xba\x00\x00\x8d\x79\x67\x47\x67\x48\x8f\x91\x8e\x96\x00\x00\x8f\x90\x00\x00\x91\x4f\x91\x94\x4e\x6e\x00\x00\x00\x00\x4f\xb6\x00\x00\x6c\xc9\x51\xaa\x00\x00", /* 7d00 */ "\x53\x9a\x6e\xed\x53\x98\x6e\xeb\x53\x9d\x53\x99\x53\x9e\x53\x9c\x6e\xec\x53\x9b\x55\xc2\x55\xc1\x71\x9e\x55\xca\x71\x97\x71\x9d\x55\xc6\x71\x96\x71\x9c\x71\x9a\x55\xc5\x55\xc7\x71\x99\x55\xc0\x71\x98\x55\xcb\x55\xc8\x55\xcc\x55\xc9\x71\x95\x71\x94\x71\x9b\x55\xc3\x55\xbf\x55\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xb5\x74\xae\x00\x00\x5a\xba\x74\xad\x00\x00\x58\x74\x58\x7b\x58\x78\x58\x7e\x58\x7d\x58\x79\x00\x00\x74\xa7\x74\xaa\x00\x00\x74\xa9\x58\x75\x74\xab\x74\xb4\x58\x76\x74\xa8\x74\xb1\x74\xb2\x58\x77\x74\xaf\x58\x7c\x58\x72\x58\x7a\x74\xac\x58\x71\x74\xb0\x00\x00\x00\x00\x74\xb3\x00\x00\x00\x00\x00\x00\x78\x43\x77\xf7\x5a\xb7\x78\x41\x77\xfb\x77\xf3\x77\xfc\x5a\xb9\x77\xf4\x00\x00\x77\xf0\x00\x00\x00\x00\x5c\xf2\x77\xf9\x00\x00\x5a\xb6\x78\x42\x00\x00\x5a\xbd\x5a\xbf\x77\xf2\x00\x00\x00\x00\x5a\xbe\x77\xf5\x5a\xb8\x77\xfd\x77\xf6\x77\xfa\x00\x00\x77\xf8\x5a\xbb\x77\xf1\x5a\xc0\x58\x73\x5a\xbc\x5a\xc1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\xee\x7b\xa5\x7b\xa7\x7b\xa9\x7b\xad\x00\x00\x7b\xa3", /* 7d80 */ "\x7b\xa1\x5c\xf0\x00\x00\x7b\xa8\x7b\xac\x7b\xa4\x7b\xa0\x00\x00\x7b\x9f\x00\x00\x00\x00\x00\x00\x7b\xaa\x7b\xa2\x7b\xa6\x5c\xf1\x00\x00\x5c\xef\x7b\xae\x5c\xed\x7b\xab\x00\x00\x7e\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x57\x7e\xf2\x61\x62\x7e\xfc\x5f\x5a\x7f\x43\x5f\x60\x7e\xed\x00\x00\x00\x00\x7e\xfd\x7e\xea\x00\x00\x7f\x42\x7e\xee\x00\x00\x5f\x67\x5f\x64\x7f\x41\x7e\xf8\x5f\x56\x5f\x5e\x5f\x5d\x00\x00\x5f\x5c\x5f\x62\x00\x00\x7e\xeb\x5f\x63\x7e\xf9\x5f\x5f\x5f\x55\x7e\xfb\x5f\x58\x5f\x59\x5f\x61\x7e\xf0\x7e\xef\x7e\xec\x00\x00\x7e\xf4\x7e\xf1\x7e\xf5\x5f\x66\x00\x00\x7f\x44\x5f\x5b\x7e\xf6\x7e\xf7\x00\x00\x7e\xf3\x00\x00\x00\x00\x00\x00\x5f\x65\x00\x00\x00\x00\x00\x00\x00\x00\x81\xf0\x61\x5a\x61\x63\x61\x5f\x81\xed\x00\x00\x61\x5c\x61\x60\x81\xf9\x61\x56\x81\xf1\x00\x00\x61\x5e\x00\x00\x00\x00\x81\xf4\x81\xef\x61\x5d\x61\x61\x81\xee\x00\x00\x61\x5b\x00\x00\x81\xf8\x61\x58\x81\xf7\x81\xf6\x61\x64\x80\xbc\x61\x57\x00\x00\x81\xf5\x81\xec\x00\x00\x61\x65\x81\xf3\x61\x59\x00\x00\x00\x00\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x81\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe9\x62\xee\x62\xe7\x85\x64\x85\x5b\x85\x67\x85\x5f\x85\x65\x62\xef\x62\xe8\x85\x58\x85\x5e\x85\x68\x85\x61\x85\x66\x85\x5a\x00\x00\x00\x00\x85\x62\x62\xea\x85\x60\x62\xed\x62\xec\x85\x5c\x85\x5d\x85\x59\x85\x63\x62\xeb\x85\x6a\x85\x69\x00\x00\x00\x00\x00\x00\x87\xc6\x87\xc2\x64\x8a\x00\x00\x87\xbc\x64\x84\x64\x94\x87\xc8\x64\x8c\x64\x88\x87\xbf\x64\x8f\x64\x92\x87\xca\x64\x87\x87\xc1\x64\x90\x87\xcc\x87\xc9\x87\xbd\x64\x8b\x64\x85\x64\x93\x87\xc4\x64\x8e\x87\xbe\x64\x89\x87\xcb\x64\x8d\x64\x86\x87\xc5\x64\x91\x87\xc3\x00\x00\x00\x00\x87\xc7\x00\x00\x00\x00\x00\x00\x89\xdb\x89\xe1\x65\xa3\x89\xe4\x65\x9e\x65\x9f\x89\xdc\x89\xe3\x89\xde\x65\xa4\x65\xa1\x00\x00\x89\xda\x00\x00\x65\xa0\x89\xe0\x89\xe2\x65\xa2\x89\xdf\x89\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xc5\x66\x82\x66\x83\x66\x7e\x00\x00\x66\x7f\x00\x00\x8b\xc1\x8b\xbf\x00\x00\x8b\xc3\x66\x85\x8b\xc4\x8b\xbd\x8b\xbc\x8b\xc0\x8b\xbe\x66\x81\x8b\xc2\x8d\x7a\x67\x4b\x67\x4a\x8d\x7b\x00\x00", /* 7e80 */ "\x8d\x7d\x8d\x7c\x67\x4c\x00\x00\x00\x00\x00\x00\x8e\x9b\x8e\x98\x8e\x99\x00\x00\x8e\x97\x8e\x9a\x67\x9e\x8e\x9c\x00\x00\x67\x9d\x00\x00\x8f\x92\x00\x00\x68\x61\x68\x63\x90\x5f\x68\x62\x90\xc8\x91\x51\x91\x53\x91\x50\x91\x52\x68\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x6f\x00\x00\x53\x9f\x70\xd2\x55\xcd\x00\x00\x00\x00\x58\x7f\x78\x44\x78\x45\x00\x00\x00\x00\x00\x00\x85\x6b\x64\x95\x87\xcd\x00\x00\x00\x00\x65\xa5\x00\x00\x8b\xc7\x8b\xc6\x67\x4d\x8e\x9d\x00\x00\x8f\x93\x68\x85\x69\xe8\x00\x00\x00\x00\x51\xab\x4f\xb7\x00\x00\x00\x00\x6e\xee\x00\x00\x00\x00\x71\xa4\x71\x9f\x71\xa3\x71\xa1\x55\xce\x71\xa2\x71\xa0\x00\x00\x74\xb6\x00\x00\x78\x46\x78\x47\x7b\xb1\x7b\xb2\x5c\xf4\x5c\xf5\x7b\xb0\x7b\xb3\x7b\xaf\x5c\xf3\x00\x00\x5f\x68\x00\x00\x5c\xf6\x7f\x45\x00\x00\x61\x66\x81\xfa\x61\x67\x00\x00\x62\xf0\x85\x6e\x85\x6c\x85\x6d\x87\xd0\x87\xcf\x87\xce", /* 7f80 */ "\x00\x00\x00\x00\x00\x00\x8b\xc8\x00\x00\x66\x84\x8b\xc9\x8f\x94\x68\x86\x90\xc9\x4e\x70\x51\xad\x51\xac\x6e\xf0\x53\xa0\x00\x00\x00\x00\x6e\xef\x71\xa6\x00\x00\x55\xcf\x74\xb7\x71\xa5\x00\x00\x00\x00\x00\x00\x58\x82\x74\xba\x74\xb8\x74\xb9\x58\x81\x00\x00\x78\x49\x78\x4a\x78\x48\x00\x00\x5c\xf9\x7b\xb5\x7b\xb4\x7b\xb6\x5c\xf8\x5c\xf7\x00\x00\x00\x00\x81\xfb\x81\xfd\x00\x00\x61\x68\x81\xfc\x85\x6f\x62\xf1\x89\xe6\x00\x00\x89\xe5\x66\x86\x8b\xca\x66\x88\x66\x87\x8d\x7e\x8e\x9e\x67\x9f\x4e\x71\x6e\xf1\x53\xa1\x71\xa9\x55\xd1\x71\xa8\x71\xa7\x00\x00\x55\xd0\x00\x00\x74\xc0\x00\x00\x74\xc2\x74\xbb\x74\xbc\x58\x83\x74\xbd\x58\x84\x74\xc1\x74\xbe\x74\xbf\x58\x85\x00\x00\x5a\xc3\x5a\xc4\x00\x00\x78\x4b\x00\x00\x00\x00\x00\x00\x7b\xb7\x7b\xb8\x00\x00\x7f\x49\x5f\x6b\x5f\x69\x5f\x6a\x7f\x46\x7f\x47\x00\x00\x7f\x48\x82\x45\x00\x00\x82\x46\x61\x69\x82\x43\x82\x42\x82\x44\x82\x41\x62\xf4\x85\x70\x62\xf2\x62\xf3\x87\xd2\x64\x96\x87\xd1\x89\x55\x00\x00\x89\xe7\x89\xe8\x65\xa6\x00\x00\x65\xa7\x64\x97\x8b\xcb\x8b\xcc\x8d\x7f", /* 8000 */ "\x67\x4e\x4e\x72\x00\x00\x4e\x73\x53\xa2\x51\xae\x55\xd2\x6e\xf2\x00\x00\x00\x00\x00\x00\x5a\xc5\x4e\x74\x53\xa4\x6e\xf3\x6e\xf4\x53\xa3\x53\xa5\x4e\x75\x00\x00\x6e\xf5\x55\xd4\x71\xaa\x55\xd6\x55\xd3\x55\xd5\x00\x00\x74\xc5\x58\x86\x00\x00\x74\xc4\x74\xc3\x00\x00\x7b\xb9\x00\x00\x00\x00\x7f\x4a\x00\x00\x61\x6a\x00\x00\x62\xf5\x85\x72\x85\x71\x00\x00\x87\xd3\x00\x00\x00\x00\x00\x00\x8e\x9f\x00\x00\x00\x00\x4e\x76\x6a\xf3\x6c\xca\x53\xa6\x6e\xf6\x00\x00\x71\xac\x00\x00\x00\x00\x00\x00\x55\xd7\x71\xab\x55\xd8\x00\x00\x00\x00\x00\x00\x74\xc7\x00\x00\x00\x00\x58\x88\x74\xc6\x74\xc8\x00\x00\x58\x87\x00\x00\x00\x00\x00\x00\x00\x00\x78\x4d\x78\x4e\x78\x4c\x5a\xc6\x00\x00\x00\x00\x00\x00\x5c\xfa\x00\x00\x5c\xfb\x00\x00\x5f\x6d\x00\x00\x7f\x4c\x7f\x4b\x5f\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x47\x00\x00\x00\x00\x82\x48\x00\x00\x00\x00\x00\x00\x00\x00\x85\x73\x00\x00\x00\x00\x64\x9b\x64\x9a\x64\x98\x64\x99\x64\x9c\x00\x00\x89\xe9\x65\xa9\x65\xa8\x8b\xcd\x8d\x81\x00\x00\x00\x00\x00\x00\x67\xee\x67\xed\x4e\x77", /* 8080 */ "\x00\x00\x00\x00\x70\x9f\x00\x00\x5c\xfd\x5a\xc7\x5c\xfc\x5f\x6e\x00\x00\x4e\x78\x69\x89\x4e\x79\x4e\x7a\x00\x00\x00\x00\x6c\xcb\x6a\xf6\x00\x00\x6a\xf7\x4f\xb9\x00\x00\x6a\xf4\x4f\xb8\x00\x00\x4f\xbb\x6a\xf5\x4f\xbd\x4f\xbc\x6a\xf8\x4f\xba\x00\x00\x00\x00\x00\x00\x51\xb3\x51\xb1\x6c\xcd\x00\x00\x51\xb0\x00\x00\x00\x00\x00\x00\x51\xb5\x51\xb7\x51\xb4\x00\x00\x6c\xd0\x6c\xcc\x51\xb8\x00\x00\x51\xb2\x4f\xbe\x00\x00\x51\xb6\x6c\xcf\x00\x00\x00\x00\x6c\xce\x00\x00\x51\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\xfc\x53\xaa\x53\xab\x6f\x41\x00\x00\x6e\xf8\x6e\xfb\x6f\x47\x6f\x45\x00\x00\x53\xac\x6f\x4b\x53\xaf\x6f\x48\x6e\xfd\x6e\xfa\x00\x00\x00\x00\x78\x50\x6f\x46\x53\xa7\x6f\x49\x6e\xf7\x6f\x43\x53\xa9\x53\xae\x6f\x44\x53\xb2\x53\xb0\x00\x00\x6e\xf9\x53\xad\x00\x00\x6f\x42\x53\xb1\x53\xa8\x6f\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xdd\x00\x00\x55\xe6\x55\xdb\x55\xd9\x71\xae\x55\xe1\x55\xde\x71\xb0\x00\x00\x00\x00\x55\xe0\x71\xaf\x71\xad\x71\xb2\x55\xe5\x55\xe3\x78\x4f\x00\x00", /* 8100 */ "\x71\xb3\x71\xb1\x55\xda\x00\x00\x00\x00\x55\xdc\x55\xdf\x00\x00\x55\xe2\x00\x00\x55\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xd2\x58\x8a\x00\x00\x74\xc9\x74\xcb\x00\x00\x74\xcc\x00\x00\x74\xd4\x74\xd0\x74\xce\x00\x00\x74\xd1\x74\xd5\x58\x8b\x58\x8f\x74\xca\x00\x00\x74\xd3\x00\x00\x58\x8d\x00\x00\x58\x8c\x74\xcf\x74\xcd\x00\x00\x58\x89\x58\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xcd\x78\x58\x00\x00\x00\x00\x78\x56\x5a\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x78\x51\x7b\xc7\x00\x00\x5a\xce\x78\x55\x00\x00\x00\x00\x78\x52\x5a\xca\x5a\xd0\x78\x57\x5a\xcc\x78\x54\x5f\x6f\x5a\xcb\x78\x53\x5a\xd1\x5a\xc9\x5a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xbf\x7b\xbd\x00\x00\x7b\xc3\x00\x00\x7b\xbb\x7b\xc8\x7b\xc0\x00\x00\x7b\xba\x5d\x44\x5d\x4a\x7b\xc5\x00\x00\x7b\xbe\x00\x00\x5d\x47\x00\x00\x00\x00\x5d\x45\x7b\xc6\x5d\x42\x5d\x41\x7b\xc1\x5d\x46\x5a\xd2\x00\x00\x7b\xc4\x7b\xbc\x5d\x43\x5d\x48\x5d\x49\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x74", /* 8180 */ "\x5f\x70\x00\x00\x5f\x75\x7f\x4f\x00\x00\x00\x00\x7f\x4e\x7f\x50\x5f\x72\x7f\x4d\x5f\x73\x7f\x53\x7f\x52\x7f\x51\x00\x00\x5f\x71\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x4c\x00\x00\x82\x4f\x61\x70\x82\x4e\x61\x6f\x61\x6b\x61\x6c\x61\x6d\x82\x4b\x82\x4a\x61\x6e\x00\x00\x82\x4d\x82\x49\x00\x00\x00\x00\x85\x75\x85\x7f\x62\xf8\x62\xf7\x00\x00\x85\x79\x85\x7b\x00\x00\x85\x76\x00\x00\x85\x7a\x85\x74\x85\x7d\x62\xf6\x85\x7c\x85\x78\x00\x00\x85\x7e\x00\x00\x85\x77\x64\x9f\x87\xd4\x87\xda\x64\xa3\x64\xa5\x64\xa2\x64\xa1\x00\x00\x64\xa0\x64\x9e\x87\xd5\x87\xd8\x64\x9d\x87\xd9\x00\x00\x64\xa4\x87\xd7\x00\x00\x87\xd6\x65\xaa\x00\x00\x65\xab\x89\xec\x89\xea\x89\xeb\x00\x00\x00\x00\x8b\xcf\x00\x00\x8b\xce\x66\x89\x8d\x83\x67\x4f\x8d\x82\x00\x00\x8e\xa0\x8f\x95\x67\xef\x91\x54\x91\x55\x68\x64\x4e\x7b\x00\x00\x51\xb9\x78\x59\x5f\x76\x64\xa6\x87\xdb\x4e\x7c\x00\x00\x55\xe8\x55\xe7\x78\x5a\x00\x00\x00\x00\x00\x00\x85\x81\x4e\x7d\x53\xb3\x00\x00\x00\x00\x78\x5b\x78\x5c\x78\x5d\x5f\x77\x62\xf9\x4e\x7e\x00\x00\x51\xba\x6f\x4c", /* 8200 */ "\x55\xe9\x71\xb4\x58\x90\x00\x00\x78\x5e\x5d\x4b\x00\x00\x5f\x78\x62\xfa\x64\xa7\x65\xac\x8d\x84\x4e\x7f\x51\xbb\x00\x00\x00\x00\x55\xea\x74\xd6\x5a\xd3\x00\x00\x5f\x79\x7f\x54\x82\x50\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x81\x5a\xd4\x7b\xc9\x5f\x7a\x4e\x82\x6c\xd1\x6f\x4d\x53\xb4\x00\x00\x00\x00\x71\xb6\x00\x00\x00\x00\x55\xed\x00\x00\x55\xeb\x55\xec\x55\xee\x00\x00\x00\x00\x71\xb5\x00\x00\x00\x00\x74\xdb\x74\xd8\x74\xda\x58\x91\x58\x93\x58\x92\x74\xd7\x58\x94\x74\xd9\x00\x00\x78\x5f\x78\x60\x00\x00\x78\x61\x7b\xcc\x00\x00\x7b\xcd\x00\x00\x7b\xcb\x7b\xce\x00\x00\x5d\x4c\x00\x00\x7b\xca\x00\x00\x5f\x7b\x00\x00\x00\x00\x82\x55\x82\x51\x82\x54\x82\x56\x82\x53\x82\x52\x00\x00\x85\x82\x85\x83\x85\x84\x62\xfb\x62\xfc\x87\xdd\x87\xdc\x87\xde\x00\x00\x89\xee\x89\xed\x00\x00\x8b\xd1\x00\x00\x8b\xd2\x8b\xd0\x00\x00\x67\x50\x00\x00\x8d\x85\x8d\x86\x00\x00\x8f\x96\x90\x60\x90\xca\x4e\x83\x4f\xbf\x00\x00\x64\xa8\x4e\x84\x00\x00\x74\xdc\x78\x62\x00\x00\x68\x8d\x69\xe9\x00\x00\x00\x00\x00\x00\x69\xea\x69\xec\x4e\x85\x69\xed", /* 8280 */ "\x69\xeb\x00\x00\x00\x00\x6b\x43\x6b\x44\x6a\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x42\x4f\xc1\x00\x00\x4f\xc2\x6a\xfc\x6a\xfa\x6a\xf9\x6a\xfd\x4f\xc0\x6b\x41\x6f\x4e\x00\x00\x00\x00\x00\x00\x6c\xd6\x51\xbe\x6c\xd5\x6c\xd7\x00\x00\x51\xbd\x6c\xdc\x51\xc1\x6c\xd2\x6c\xe0\x6c\xe6\x51\xc8\x6c\xe3\x51\xc5\x00\x00\x6c\xd9\x6c\xdf\x6c\xe1\x00\x00\x6c\xd4\x51\xc4\x51\xbf\x6c\xda\x51\xc6\x51\xc9\x51\xc3\x00\x00\x51\xbc\x6c\xde\x6c\xd8\x6c\xe5\x51\xcb\x51\xc7\x51\xc2\x6c\xdd\x55\xef\x6c\xdb\x51\xc0\x51\xca\x00\x00\x6c\xd3\x00\x00\x6c\xe2\x6c\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xc5\x53\xbf\x53\xc7\x53\xc4\x6f\x55\x6f\x58\x53\xc0\x00\x00\x6f\x4f\x00\x00\x53\xb9\x53\xc3\x00\x00\x53\xc6\x53\xc8\x6f\x64\x6f\x5b\x00\x00\x53\xb8\x6f\x63\x53\xbc\x53\xba\x53\xb5\x6f\x53\x00\x00\x6f\x62\x6f\x57\x6f\x5a\x6f\x67\x00\x00\x53\xc9\x6f\x61\x53\xc1\x6f\x5c\x6f\x66\x6f\x59\x6f\x5d\x6f\x60\x00\x00\x00\x00\x6f\x51\x6f\x65\x6f\x5f\x00\x00\x00\x00\x6f\x50\x00\x00", /* 8300 */ "\x6f\x54\x53\xc2\x53\xbd\x53\xb6\x53\xbb\x53\xb7\x53\xca\x6f\x52\x71\xc7\x53\xbe\x00\x00\x00\x00\x6f\x5e\x6d\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\xca\x55\xfd\x00\x00\x71\xba\x00\x00\x71\xc5\x71\xc1\x00\x00\x71\xd4\x00\x00\x71\xcc\x00\x00\x71\xc2\x00\x00\x71\xcb\x71\xbc\x71\xc0\x71\xd7\x56\x43\x71\xcf\x71\xc6\x55\xf0\x71\xd5\x71\xb8\x00\x00\x71\xce\x00\x00\x56\x42\x55\xfa\x71\xb7\x55\xf8\x55\xf7\x55\xfc\x71\xcd\x55\xf4\x55\xfb\x6f\x56\x78\x63\x71\xc8\x00\x00\x00\x00\x71\xbe\x56\x41\x71\xbf\x71\xc3\x56\x44\x71\xb9\x71\xd1\x00\x00\x71\xd0\x71\xd8\x55\xf6\x55\xf3\x71\xd6\x71\xd2\x71\xc9\x71\xc4\x55\xf9\x55\xf5\x71\xbb\x55\xf1\x71\xd3\x55\xf2\x00\x00\x71\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xe2\x74\xe4\x74\xe9\x74\xfd\x58\xa2\x58\x98\x00\x00\x74\xe1\x58\xa3\x58\xa4\x74\xec\x74\xf3\x74\xf9", /* 8380 */ "\x00\x00\x74\xe6\x00\x00\x74\xed\x00\x00\x00\x00\x58\xa5\x74\xfb\x74\xf6\x58\xa0\x58\x9e\x74\xf2\x74\xee\x74\xe0\x58\x95\x74\xe5\x74\xdd\x00\x00\x58\x9d\x58\x9f\x74\xea\x74\xe7\x58\x9a\x74\xf7\x58\x97\x74\xe8\x75\x41\x74\xf0\x00\x00\x74\xef\x58\x96\x00\x00\x58\xa1\x00\x00\x58\x99\x74\xde\x74\xe3\x74\xf4\x74\xfa\x58\xa6\x74\xdf\x74\xeb\x74\xf1\x58\x9c\x00\x00\x00\x00\x74\xfc\x74\xf5\x74\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x9b\x00\x00\x78\x73\x78\x67\x5a\xdc\x78\x85\x78\x8d\x78\x90\x5a\xda\x78\x6f\x78\x89\x78\x70\x78\x7e\x5a\xe7\x78\x7a\x5a\xe4\x00\x00\x78\x7b\x78\x64\x00\x00\x78\x8a\x00\x00\x00\x00\x5a\xed\x78\x87\x78\x7c\x78\x92\x78\x77\x7b\xee\x00\x00\x78\x95\x5a\xeb\x78\x75\x78\x82\x5a\xee\x5a\xd9\x78\x79\x78\x93\x78\x72\x78\x6b\x78\x76\x00\x00\x78\x6a\x78\x68\x5a\xd5\x78\x8b\x78\x71\x78\x8e\x00\x00\x78\x8f\x5a\xdd\x5a\xe2\x5a\xde\x5a\xe6\x78\x86\x5a\xdf\x78\x7d\x78\x6d\x00\x00\x5a\xd7\x78\x65\x78\x88\x78\x91\x78\x6c\x5a\xe5\x78\x96\x78\x78", /* 8400 */ "\x00\x00\x78\x74\x00\x00\x5a\xd6\x5a\xea\x00\x00\x78\x84\x5a\xec\x00\x00\x78\x7f\x5a\xe1\x5a\xdb\x5a\xe3\x5a\xd8\x5a\xe9\x78\x81\x78\x6e\x78\x83\x78\x69\x78\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xed\x00\x00\x7c\x46\x5c\xdb\x7b\xf2\x00\x00\x7b\xf0\x7b\xdb\x5d\x50\x7b\xeb\x7c\x42\x7b\xe7\x5d\x58\x7c\x41\x7b\xe5\x5a\xe8\x7b\xf5\x7b\xe6\x7b\xfc\x5d\x57\x5d\x4f\x00\x00\x7b\xd0\x7b\xd8\x00\x00\x7b\xf1\x7b\xe9\x7c\x45\x7b\xec\x5d\x5d\x7b\xfd\x00\x00\x5d\x54\x00\x00\x7b\xef\x7b\xf7\x7b\xdc\x7b\xf6\x00\x00\x7c\x4a\x7b\xd7\x7b\xf8\x00\x00\x7c\x48\x00\x00\x7b\xd1\x5a\xe0\x00\x00\x7b\xdf\x7b\xde\x5d\x56\x00\x00\x7b\xe2\x7b\xe4\x7b\xf3\x7c\x47\x5d\x59\x00\x00\x5d\x5a\x00\x00\x7b\xd6\x5d\x52\x7b\xda\x7c\x43\x5d\x5b\x00\x00\x5d\x53\x5d\x55\x5d\x5c\x7c\x49\x7b\xf9\x7b\xf4\x00\x00\x00\x00\x7b\xe1\x7b\xe0\x5d\x51\x7b\xd2\x5d\x4e\x7b\xea\x7b\xd3\x7b\xe8\x00\x00\x00\x00\x7b\xdd\x7c\x44\x00\x00", /* 8480 */ "\x00\x00\x00\x00\x5d\x4d\x00\x00\x00\x00\x00\x00\x7b\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\xd5\x7b\xfb\x7b\xd4\x5f\x89\x7f\x7c\x00\x00\x00\x00\x7f\x6b\x00\x00\x00\x00\x7f\x55\x7f\x73\x5f\x81\x7f\x64\x7f\x6e\x5f\x84\x7f\x67\x5f\x82\x7f\x58\x7f\x76\x7f\x57\x7f\x6a\x00\x00\x7f\x56\x00\x00\x00\x00\x7f\x68\x7f\x71\x7f\x6f\x7f\x63\x7f\x5e\x7f\x5c\x00\x00\x7f\x5d\x7f\x70\x7f\x7b\x7f\x65\x5f\x83\x00\x00\x7f\x60\x00\x00\x7f\x74\x00\x00\x5f\x86\x7f\x5f\x7f\x59\x7f\x69\x5f\x8a\x00\x00\x00\x00\x5f\x7d\x5f\x87\x7f\x61\x7f\x5b\x00\x00\x5f\x7f\x7b\xfa\x5f\x7e\x7f\x6c\x00\x00\x5f\x7c\x5f\x8c\x5f\x85\x7f\x6d\x7f\x62\x7f\x5a\x7f\x75\x7f\x66\x5f\x8b\x7f\x79\x5f\x88\x7f\x78\x00\x00\x7f\x72\x7f\x77\x00\x00\x00\x00\x00\x00\x7f\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x7e\x82\x7f\x82\x72\x82\x71\x82\x6d\x61\x7c\x00\x00\x61\x74\x82\x82\x82\x81\x7b\xcf\x82\x6a\x82\x6e\x82\x68\x00\x00\x82\x7b\x82\x6c\x00\x00\x82\x83\x82\x65\x82\x63\x82\x6f\x82\x79\x82\x74\x61\x7e", /* 8500 */ "\x82\x5a\x00\x00\x82\x78\x00\x00\x00\x00\x00\x00\x61\x7f\x7b\xe3\x82\x66\x82\x5d\x82\x60\x82\x87\x82\x67\x82\x5e\x82\x5c\x82\x59\x00\x00\x61\x78\x82\x70\x61\x77\x61\x7b\x82\x6b\x82\x73\x61\x71\x82\x84\x82\x88\x61\x73\x00\x00\x82\x62\x82\x76\x82\x7a\x82\x5f\x82\x85\x61\x7a\x00\x00\x61\x79\x82\x57\x61\x7d\x82\x7d\x82\x61\x82\x75\x82\x5b\x82\x69\x82\x64\x61\x75\x61\x76\x82\x77\x82\x89\x82\x86\x82\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x58\x00\x00\x61\x72\x85\x95\x00\x00\x85\x8c\x85\x8f\x00\x00\x63\x45\x85\x91\x85\x86\x85\x8d\x85\x93\x63\x42\x63\x46\x62\xfd\x00\x00\x00\x00\x85\x88\x85\x98\x00\x00\x00\x00\x85\x92\x00\x00\x85\x89\x85\xa1\x85\x9b\x85\x85\x87\xf1\x85\x8b\x63\x41\x00\x00\x85\x96\x00\x00\x85\xa0\x63\x49\x00\x00\x85\x9d\x85\x8a\x85\x90\x85\x94\x85\x8e\x85\xa2\x85\x9f\x85\x9c\x63\x43\x63\x44\x63\x48\x85\x87\x85\xa3\x63\x47\x85\x99\x00\x00\x00\x00\x85\x97\x00\x00\x00\x00\x00\x00\x85\x9a\x88\x41\x87\xeb\x87\xf0\x87\xfd\x87\xef\x87\xe7\x87\xec\x00\x00\x64\xab\x00\x00", /* 8580 */ "\x87\xe0\x87\xf8\x87\xfa\x87\xdf\x64\xaa\x87\xfc\x87\xf4\x64\xb1\x87\xfb\x87\xed\x64\xb3\x87\xe5\x85\x9e\x87\xf5\x87\xf2\x87\xe1\x88\x43\x64\xad\x00\x00\x00\x00\x64\xae\x87\xe3\x87\xf3\x00\x00\x88\x42\x87\xf6\x87\xe9\x64\xb0\x64\xac\x87\xf7\x87\xea\x88\x44\x87\xe4\x87\xee\x87\xf9\x87\xe6\x87\xe8\x00\x00\x65\xb5\x87\xe2\x64\xb2\x65\xae\x64\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x64\xaf\x65\xb2\x8a\x41\x00\x00\x89\xf4\x89\xef\x89\xf5\x8a\x42\x8a\x46\x8a\x45\x65\xb4\x65\xb3\x00\x00\x00\x00\x89\xf6\x8a\x47\x89\xf9\x89\xf1\x00\x00\x89\xf3\x89\xf2\x89\xf8\x89\xfd\x89\xf0\x89\xf7\x89\xfc\x65\xb1\x00\x00\x89\xfa\x00\x00\x65\xaf\x89\xfb\x65\xad\x65\xb0\x8b\xe2\x8a\x43\x00\x00\x00\x00\x66\x8d\x00\x00\x8b\xda\x8b\xde\x8b\xd6\x8b\xd9\x00\x00\x8b\xe1\x66\x8b\x8b\xe6\x8b\xdf\x00\x00\x8b\xd7\x8b\xe7\x8b\xe0\x66\x8e\x66\x8f\x8b\xe4\x00\x00\x8b\xd8\x66\x8a\x66\x8c\x8b\xd3\x8b\xdb\x8b\xd5\x00\x00\x8b\xe5\x8b\xe3\x8b\xd4\x8b\xdc\x00\x00\x00\x00\x00\x00\x8d\x8d\x66\x90\x8b\xdd\x67\x52\x67\x54\x67\x51\x00\x00\x8d\x92\x8d\x8a\x8d\x88", /* 8600 */ "\x8d\x8c\x8d\x89\x00\x00\x00\x00\x8d\x8e\x8d\x90\x67\x55\x67\x57\x00\x00\x8d\x8f\x67\x58\x67\x56\x8d\x91\x00\x00\x00\x00\x00\x00\x00\x00\x67\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xa0\x8e\xa1\x8e\xa7\x67\xa2\x8d\x8b\x8e\xa6\x00\x00\x8e\xad\x8e\xa4\x8e\xab\x8e\xaa\x8d\x87\x8e\xa5\x8a\x44\x8e\xae\x8e\xa3\x8e\xa8\x00\x00\x8e\xac\x8e\xa2\x00\x00\x8f\x9a\x67\xa1\x8e\xa9\x00\x00\x00\x00\x90\x65\x8f\x9b\x8f\x99\x8f\x97\x8f\x98\x8f\x9c\x00\x00\x68\x65\x90\x63\x90\x61\x90\x66\x90\x64\x00\x00\x90\x67\x68\x66\x90\x62\x00\x00\x00\x00\x90\xcb\x00\x00\x00\x00\x91\x56\x91\x57\x91\x58\x00\x00\x00\x00\x91\xb7\x91\xad\x69\xee\x51\xcc\x00\x00\x53\xcb\x00\x00\x71\xda\x71\xd9\x56\x45\x58\xa7\x75\x43\x00\x00\x00\x00\x75\x42\x00\x00\x5a\xef\x5d\x5f\x00\x00\x5d\x5e\x5d\x60\x00\x00\x7f\x7d\x82\x8a\x85\xa4\x85\xa6\x85\xa5\x00\x00\x64\xb4\x88\x45\x8a\x48\x91\x95\x4e\x86\x00\x00\x6c\xe9\x6c\xea\x6c\xe8\x6c\xe7\x51\xcd\x00\x00\x6f\x6b\x6f\x69\x00\x00\x00\x00\x6f\x68\x00\x00\x53\xcc\x53\xce\x53\xcd\x6f\x6a\x00\x00\x00\x00\x00\x00", /* 8680 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\xe6\x71\xe3\x71\xe1\x00\x00\x00\x00\x56\x46\x71\xe4\x56\x4b\x71\xde\x71\xed\x00\x00\x71\xef\x71\xdf\x00\x00\x56\x48\x71\xf0\x71\xeb\x71\xdd\x71\xe2\x71\xec\x71\xe8\x71\xe5\x00\x00\x56\x4d\x71\xee\x71\xe0\x00\x00\x00\x00\x71\xe9\x71\xdb\x56\x4c\x56\x49\x71\xe7\x00\x00\x71\xea\x71\xdc\x56\x4a\x56\x47\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb1\x75\x4a\x58\xb0\x00\x00\x75\x4d\x75\x50\x58\xad\x58\xab\x75\x45\x75\x4e\x75\x4c\x75\x49\x75\x51\x75\x52\x75\x54\x75\x55\x75\x44\x58\xaa\x75\x47\x75\x46\x75\x53\x58\xac\x75\x48\x58\xae\x58\xa9\x75\x4b\x58\xb2\x00\x00\x58\xaf\x75\x4f\x00\x00\x00\x00\x00\x00\x5a\xf6\x78\xa5\x00\x00\x78\x9a\x5a\xf3\x00\x00\x7c\x50\x78\xa3\x78\x97\x5a\xf1\x78\x9c\x5a\xf4\x78\xa0\x78\x9e\x5a\xf7\x5a\xf0\x00\x00\x00\x00\x78\x98\x78\x9b\x5a\xf5\x00\x00\x78\x99\x00\x00\x78\xa4\x78\xa2\x78\x9d\x78\x9f\x78\xa1\x5a\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x51\x7c\x57\x7c\x4d\x7c\x53\x5d\x61\x7c\x4f\x5d\x67\x00\x00\x00\x00\x5d\x66\x00\x00", /* 8700 */ "\x5d\x65\x7c\x56\x5d\x68\x5d\x69\x7c\x4c\x7c\x59\x5d\x6a\x5d\x64\x5d\x63\x7c\x55\x5d\x6b\x7c\x4b\x7c\x4e\x7c\x58\x7c\x54\x00\x00\x00\x00\x7f\x9e\x7f\x93\x5d\x62\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x93\x7f\x87\x7f\x9c\x7f\x88\x5f\x8e\x00\x00\x7f\x85\x00\x00\x7f\x8e\x7f\x86\x5f\x90\x7f\x7f\x7f\x9b\x5f\x91\x7f\x98\x7f\x99\x7f\x81\x5f\x96\x7f\x90\x00\x00\x7f\x8a\x7f\x91\x7f\x84\x00\x00\x7f\x9d\x7f\x95\x7f\x8f\x7f\x7e\x5f\x92\x7f\x96\x00\x00\x5f\x95\x7f\x9a\x00\x00\x7f\x94\x5f\x8f\x7f\x92\x00\x00\x7f\x8c\x5f\x8d\x7f\x83\x7f\x8b\x7f\x97\x7f\x89\x00\x00\x00\x00\x7f\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x8a\x7c\x52\x82\x9c\x82\xa5\x82\x9b\x82\x97\x82\x94\x61\x8b\x82\x92\x5f\x94\x82\x8b\x61\x89\x82\x91\x61\x88\x82\x96\x82\x93\x82\xa3\x82\x9e\x82\x98\x82\x9d\x61\x84\x82\x95\x82\xa8\x82\x8c\x82\x8d\x82\xa4\x61\x85\x82\xa9\x61\x87\x82\xaa\x82\x9a\x7f\x82\x82\xa0\x82\x99\x82\xa2\x82\x9f\x00\x00\x00\x00\x00\x00\x82\x90\x61\x82\x82\xa7\x61\x83\x82\x8e\x61\x86\x85\xb0\x82\xa1\x82\xa6\x00\x00\x00\x00\x00\x00\x00\x00", /* 8780 */ "\x00\x00\x85\xad\x61\x81\x63\x4a\x85\xb7\x85\xb3\x00\x00\x85\xb1\x85\xac\x85\xbb\x00\x00\x00\x00\x00\x00\x63\x4e\x00\x00\x85\xa8\x85\xb4\x85\xb5\x85\xab\x85\xaa\x85\xb8\x00\x00\x85\xae\x85\xa9\x85\xaf\x00\x00\x85\xba\x85\xa7\x85\xb9\x85\xb6\x63\x4c\x63\x4b\x00\x00\x00\x00\x63\x4d\x85\xb2\x8a\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x47\x64\xba\x88\x4b\x88\x48\x88\x4f\x88\x55\x88\x4a\x00\x00\x88\x5e\x64\xb7\x88\x58\x88\x4d\x88\x59\x88\x54\x88\x5b\x88\x4c\x64\xbc\x64\xbb\x88\x4e\x88\x5c\x88\x46\x88\x5a\x64\xb5\x00\x00\x88\x52\x88\x51\x88\x56\x88\x49\x64\xb9\x00\x00\x64\xbd\x88\x50\x88\x57\x64\xbe\x88\x53\x00\x00\x00\x00\x00\x00\x00\x00\x64\xb6\x64\xb8\x8a\x55\x8a\x53\x00\x00\x00\x00\x8a\x5a\x8a\x57\x8a\x5b\x00\x00\x8a\x4c\x8a\x54\x8a\x5f\x88\x5d\x8a\x50\x65\xb9\x82\x8f\x8a\x4b\x8a\x58\x8a\x52\x8a\x4f\x8a\x4a\x8a\x49\x8a\x5e\x00\x00\x8a\x4e\x8a\x4d\x65\xb7\x8a\x56\x00\x00\x65\xb6\x00\x00\x00\x00\x65\xb8\x8a\x51\x8a\x5d\x00\x00\x8b\xeb\x8b\xec\x00\x00\x66\x94\x8b\xe9\x66\x91\x8b\xf1\x00\x00\x66\x95\x8b\xf3", /* 8800 */ "\x8b\xe8\x8a\x5c\x8b\xf5\x8b\xea\x00\x00\x66\x92\x8b\xf0\x00\x00\x8b\xf2\x8b\xed\x8b\xf4\x8b\xef\x8b\xee\x66\x93\x00\x00\x00\x00\x8d\x94\x8d\x95\x00\x00\x8d\x97\x67\x59\x67\x5a\x8d\x98\x8d\x96\x00\x00\x8d\x93\x00\x00\x8e\xb1\x8e\xb4\x8e\xb0\x00\x00\x67\xa6\x8e\xb2\x67\xa5\x67\xa4\x67\xa3\x8e\xb3\x8f\xa1\x8f\x9f\x00\x00\x8f\x9e\x8e\xaf\x8f\xa0\x8e\xb5\x8f\x9d\x00\x00\x90\x6a\x90\x48\x90\x68\x68\x67\x90\x69\x90\x6b\x00\x00\x90\xce\x68\x87\x90\xcd\x90\xcc\x68\x88\x00\x00\x68\xa6\x91\x7f\x91\x97\x91\x96\x91\x98\x4e\x87\x6f\x6c\x00\x00\x71\xf1\x71\xf2\x00\x00\x00\x00\x00\x00\x78\xa6\x00\x00\x8e\xb6\x90\xcf\x4e\x88\x53\xcf\x6f\x6d\x00\x00\x00\x00\x00\x00\x75\x56\x58\xb3\x00\x00\x78\xa8\x78\xa7\x5a\xf8\x00\x00\x5d\x6c\x82\xab\x61\x8c\x00\x00\x61\x8d\x00\x00\x00\x00\x00\x00\x63\x4f\x68\x89\x4e\x89\x00\x00\x00\x00\x00\x00\x6f\x6e\x51\xcf\x6f\x70\x6f\x6f\x53\xd0\x00\x00\x71\xf3\x00\x00\x71\xfa\x56\x4e\x71\xf8\x71\xf6\x00\x00\x71\xfd\x71\xf4\x71\xf5\x56\x4f\x00\x00\x56\x53\x00\x00\x00\x00\x72\x41\x56\x52\x71\xfc\x71\xf9", /* 8880 */ "\x71\xf7\x56\x50\x56\x51\x71\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x58\xb5\x75\x57\x00\x00\x58\xba\x75\x67\x58\xb9\x75\x69\x00\x00\x00\x00\x75\x5d\x58\xb7\x75\x68\x00\x00\x75\x58\x58\xb8\x75\x64\x75\x60\x75\x62\x75\x5c\x75\x63\x00\x00\x00\x00\x58\xb4\x75\x5f\x00\x00\x75\x5e\x75\x5a\x00\x00\x75\x65\x00\x00\x00\x00\x75\x61\x75\x59\x00\x00\x75\x5b\x58\xb6\x75\x66\x00\x00\x00\x00\x00\x00\x00\x00\x5a\xfb\x78\xb3\x00\x00\x00\x00\x00\x00\x78\xaf\x78\xb1\x78\xac\x78\xab\x78\xa9\x00\x00\x78\xb0\x78\xb2\x78\xae\x00\x00\x78\xad\x5a\xf9\x5a\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xb5\x5d\x74\x7c\x5b\x7c\x61\x7c\x5c\x7c\x5d\x00\x00\x7c\x62\x00\x00\x5d\x76\x00\x00\x5d\x6e\x5d\x75\x7c\x5a\x78\xaa\x5d\x71\x5d\x6f\x7c\x60\x7c\x5f\x5d\x70\x5d\x72\x7c\x5e\x5d\x6d\x00\x00\x5d\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xa0\x5f\x9d\x00\x00\x00\x00\x7f\xab\x7f\xaa\x00\x00\x7f\xa5\x5f\x9f\x7f\xa9\x7f\xa1\x7f\xa2\x5f\x97\x5f\x99\x00\x00\x7f\xa7\x7f\x9f\x5f\x9b\x5f\x9a\x7f\xa3\x7f\xa8\x7f\xa6\x5f\x9c\x7f\xa4\x00\x00", /* 8900 */ "\x00\x00\x78\xb4\x5f\x98\x00\x00\x00\x00\x82\xac\x82\xb3\x61\x8f\x00\x00\x82\xb7\x61\x93\x82\xaf\x82\xad\x00\x00\x82\xb6\x00\x00\x61\x8e\x82\xb5\x61\x90\x61\x91\x82\xae\x61\x92\x82\xb4\x82\xb0\x82\xb1\x82\xb2\x5f\x9e\x00\x00\x00\x00\x00\x00\x85\xbc\x85\xc8\x00\x00\x63\x54\x85\xc3\x85\xc5\x00\x00\x63\x52\x85\xbd\x85\xc1\x00\x00\x85\xc4\x63\x50\x63\x53\x85\xc7\x85\xbf\x85\xc0\x85\xc6\x85\xbe\x85\xc2\x63\x51\x88\x60\x00\x00\x88\x5f\x64\xc0\x88\x65\x64\xc2\x00\x00\x00\x00\x64\xbf\x88\x61\x64\xc3\x88\x62\x00\x00\x00\x00\x88\x63\x88\x66\x00\x00\x64\xc1\x00\x00\x8a\x64\x00\x00\x00\x00\x8a\x67\x00\x00\x8a\x61\x8a\x63\x00\x00\x00\x00\x8a\x62\x8a\x65\x8a\x66\x88\x64\x8a\x60\x00\x00\x00\x00\x66\x98\x8b\xf9\x8b\xfc\x8c\x41\x8b\xf7\x8b\xf8\x8b\xfb\x8b\xfd\x66\x99\x66\x97\x66\x96\x8b\xfa\x8b\xf6\x8d\x99\x67\x5b\x00\x00\x8d\x9a\x00\x00\x00\x00\x8e\xb8\x67\xa7\x8e\xba\x67\xa8\x8e\xb7\x8e\xb9\x67\xf1\x00\x00\x8f\xa2\x67\xf0\x90\x6e\x90\x6d\x00\x00\x90\x6c\x00\x00\x00\x00\x91\x59\x91\x5a\x91\x5c\x91\x5b\x00\x00\x69\xef\x4e\x8a", /* 8980 */ "\x00\x00\x53\xd1\x75\x6a\x5a\xfc\x00\x00\x7c\x63\x65\xba\x00\x00\x8c\x42\x00\x00\x00\x00\x4f\xc3\x00\x00\x00\x00\x00\x00\x58\xbc\x00\x00\x00\x00\x00\x00\x58\xbb\x00\x00\x78\xb6\x5a\xfd\x78\xb8\x78\xb7\x00\x00\x00\x00\x7c\x64\x5d\x77\x7f\xac\x7f\xaf\x7f\xae\x00\x00\x7f\xad\x82\xb8\x82\xba\x82\xb9\x00\x00\x63\x56\x00\x00\x00\x00\x00\x00\x63\x55\x00\x00\x64\xc4\x88\x67\x88\x69\x88\x68\x00\x00\x00\x00\x65\xbb\x00\x00\x00\x00\x00\x00\x8c\x44\x8c\x43\x00\x00\x8d\x9b\x67\x5c\x00\x00\x00\x00\x67\xa9\x8f\xa4\x8f\xa3\x68\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc4\x6f\x71\x53\xd2\x75\x6d\x75\x6b\x00\x00\x00\x00\x75\x6c\x78\xba\x78\xbb\x7c\x6b\x78\xb9\x00\x00\x7c\x65\x7c\x69\x7c\x68\x7c\x6a\x5d\x78\x7c\x67\x7c\x66\x7c\x6c\x00\x00\x7f\xb2\x7f\xb0\x00\x00\x7f\xb1\x82\xbd\x82\xbb\x00\x00\x00\x00\x82\xbc\x85\xc9\x88\x6a\x88\x6b\x65\xbc\x00\x00\x8c\x45\x8d\x9c\x67\x5d\x00\x00\x8e\xbb\x8f\xa5\x67\xf2\x00\x00\x90\x6f\x91\x5d", /* 8a00 */ "\x4f\xc5\x00\x00\x53\xd4\x53\xd5\x6f\x72\x00\x00\x00\x00\x6f\x73\x53\xd3\x00\x00\x56\x59\x00\x00\x56\x57\x00\x00\x56\x56\x56\x5d\x56\x55\x56\x5e\x72\x42\x56\x5b\x00\x00\x56\x58\x56\x5c\x56\x5a\x56\x54\x00\x00\x00\x00\x58\xc4\x00\x00\x58\xbe\x75\x71\x58\xc3\x00\x00\x00\x00\x58\xc5\x58\xbf\x00\x00\x58\xc0\x00\x00\x75\x6f\x00\x00\x00\x00\x58\xbd\x00\x00\x75\x70\x58\xc2\x00\x00\x00\x00\x75\x6e\x58\xc1\x00\x00\x00\x00\x5b\x4b\x00\x00\x5b\x4d\x00\x00\x00\x00\x78\xbe\x5b\x4c\x5b\x41\x5b\x45\x00\x00\x5d\x8c\x7c\x71\x78\xc0\x5b\x46\x00\x00\x00\x00\x78\xc3\x78\xc4\x5b\x4a\x00\x00\x78\xc6\x00\x00\x78\xc8\x00\x00\x78\xc9\x78\xbd\x78\xbc\x78\xca\x5b\x49\x78\xc7\x78\xc5\x00\x00\x5b\x47\x5b\x43\x5b\x4e\x78\xc1\x78\xc2\x78\xbf\x00\x00\x5b\x48\x00\x00\x00\x00\x5b\x44\x00\x00\x5b\x42\x7c\x70\x5d\x87\x5d\x82\x00\x00\x00\x00\x5d\x7c\x00\x00\x5d\x8d\x5d\x7d\x00\x00\x5d\x79\x5d\x89\x5d\x86\x5d\x88\x00\x00\x5d\x7e\x5d\x84\x5d\x7a\x5d\x7b\x7c\x78\x7c\x75\x7c\x6d\x7c\x72\x00\x00\x5d\x8a\x7c\x79\x5d\x8b\x5d\x81\x00\x00\x00\x00\x7c\x6f", /* 8a80 */ "\x00\x00\x7c\x77\x7c\x73\x7c\x76\x7c\x74\x5d\x85\x7c\x6e\x5d\x7f\x00\x00\x00\x00\x00\x00\x7f\xb5\x5f\xa1\x5f\xa4\x00\x00\x7f\xb7\x00\x00\x5f\xac\x7f\xb6\x5f\xa6\x00\x00\x61\x98\x7f\xb8\x00\x00\x5f\xab\x7f\xb4\x5f\xad\x00\x00\x00\x00\x00\x00\x5f\xa2\x00\x00\x5d\x83\x5f\xa5\x00\x00\x5f\xa3\x5f\xa7\x5f\xa9\x5f\xa0\x5f\xae\x5f\xaa\x00\x00\x5f\xa8\x7f\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x61\x9f\x00\x00\x61\x9b\x00\x00\x00\x00\x00\x00\x61\xa2\x00\x00\x82\xc0\x61\xa3\x82\xcc\x82\xc5\x61\x94\x82\xcd\x82\xc7\x61\x9e\x82\xc8\x00\x00\x61\x9d\x82\xcb\x61\x97\x82\xc9\x82\xbf\x61\x96\x85\xd4\x61\x9c\x00\x00\x61\x99\x00\x00\x61\xa1\x00\x00\x82\xbe\x00\x00\x82\xc2\x61\x95\x82\xc1\x82\xc3\x82\xc4\x61\xa0\x82\xc6\x82\xca\x82\xce\x00\x00\x61\xa4\x63\x5c\x85\xcf\x85\xd5\x85\xd2\x85\xca\x85\xd6\x85\xcb\x00\x00\x85\xd1\x00\x00\x63\x57\x63\x5d\x85\xd7\x00\x00\x00\x00\x63\x59\x00\x00\x63\x63\x63\x5e\x85\xd9\x85\xd3\x63\x5a\x85\xcc\x63\x64\x85\xcd\x85\xce\x63\x65\x63\x62\x61\x9a\x00\x00\x63\x58\x85\xda\x63\x66\x00\x00\x63\x5f\x85\xd8", /* 8b00 */ "\x63\x5b\x63\x60\x63\x61\x00\x00\x64\xcc\x88\x70\x88\x79\x88\x76\x88\x78\x00\x00\x64\xc9\x88\x71\x00\x00\x88\x77\x64\xc5\x88\x73\x64\xcd\x88\x6f\x88\x74\x88\x7b\x85\xd0\x88\x75\x88\x6e\x64\xc6\x88\x6d\x64\xc7\x88\x7c\x64\xc8\x88\x7a\x64\xcb\x88\x6c\x00\x00\x64\xca\x00\x00\x88\x72\x8a\x6a\x8a\x78\x8a\x73\x8a\x75\x8a\x69\x65\xbd\x00\x00\x8a\x68\x65\xc0\x65\xbf\x00\x00\x8a\x77\x8a\x6f\x8a\x6c\x8a\x72\x00\x00\x8a\x6b\x00\x00\x8a\x6d\x8a\x76\x8a\x74\x00\x00\x65\xbe\x8a\x7b\x8a\x79\x8a\x70\x8a\x7a\x8a\x71\x00\x00\x8c\x49\x66\x9a\x8c\x50\x00\x00\x00\x00\x8e\xbe\x66\xa1\x8a\x6e\x8c\x47\x66\x9d\x8c\x48\x8c\x4d\x00\x00\x00\x00\x66\x9f\x66\xa0\x8c\x46\x8c\x4f\x8c\x51\x8c\x4a\x8c\x4c\x8c\x4e\x8c\x4b\x8c\x52\x66\x9c\x66\xa2\x66\x9e\x00\x00\x66\x9b\x8d\x9f\x00\x00\x67\x62\x8d\x9d\x00\x00\x00\x00\x8d\xa1\x00\x00\x8d\xa2\x67\x60\x8d\xa3\x8d\xa0\x00\x00\x8d\x9e\x67\x63\x67\x5f\x8d\xa4\x00\x00\x67\x61\x67\x5e\x00\x00\x00\x00\x00\x00\x67\xaa\x00\x00\x00\x00\x67\xab\x8e\xbd\x8e\xbc\x8e\xbf\x8e\xc0\x00\x00\x67\xac\x8f\xa6\x8f\xab", /* 8b80 */ "\x67\xf3\x00\x00\x8f\xa8\x00\x00\x8f\xa7\x8f\xaa\x8f\xa9\x00\x00\x90\x73\x00\x00\x68\x68\x90\x72\x90\x70\x00\x00\x90\x71\x00\x00\x00\x00\x00\x00\x68\x8b\x68\x8a\x90\xd0\x90\xd1\x68\x8c\x00\x00\x91\x5e\x91\x5f\x68\xb3\x00\x00\x68\xb9\x00\x00\x91\x99\x91\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc6\x00\x00\x75\x72\x00\x00\x75\x73\x7c\x7a\x7f\xb9\x82\xcf\x64\xcf\x00\x00\x64\xce\x8a\x7c\x8c\x53\x00\x00\x90\x74\x4f\xc7\x72\x43\x56\x5f\x58\xc6\x7c\x7c\x7c\x7b\x61\xa5\x82\xd0\x61\xa6\x88\x7d\x65\xc1\x00\x00\x00\x00\x00\x00\x68\xc2\x4f\xc8\x6c\xeb\x72\x44\x00\x00\x00\x00\x58\xc7\x00\x00\x75\x74\x75\x75\x00\x00\x78\xcb\x00\x00\x5b\x4f\x5d\x8e\x00\x00\x7c\x7e\x7c\x7d\x7c\x7f\x00\x00\x7f\xba\x7f\xbb\x5f\xaf\x63\x67\x61\xa7\x63\x68\x00\x00\x88\x82\x88\x7e\x88\x81\x88\x7f\x64\xd0\x00\x00\x8a\x7d\x8c\x55\x8c\x54\x6b\x45\x56\x61\x56\x60\x72\x45\x00\x00\x75\x76\x00\x00\x00\x00", /* 8c80 */ "\x78\xcd\x78\xcc\x5b\x50\x00\x00\x7c\x82\x7c\x83\x7c\x81\x00\x00\x00\x00\x5d\x90\x5d\x8f\x00\x00\x5f\xb1\x5f\xb0\x00\x00\x82\xd1\x85\xdd\x85\xdb\x85\xdc\x63\x69\x88\x84\x88\x83\x00\x00\x8a\x81\x8a\x7f\x8a\x7e\x8c\x56\x00\x00\x91\x9a\x4f\xc9\x53\xd6\x00\x00\x53\xd7\x56\x62\x56\x63\x72\x47\x72\x46\x75\x77\x00\x00\x58\xcd\x58\xcb\x58\xc8\x58\xcc\x58\xca\x58\xc9\x00\x00\x00\x00\x5b\x51\x78\xd0\x00\x00\x5d\x95\x5b\x53\x5b\x58\x78\xd2\x5b\x5a\x5b\x59\x5b\x5c\x78\xd1\x78\xce\x5b\x56\x5b\x52\x5b\x54\x78\xcf\x5b\x5b\x5b\x57\x5b\x55\x5d\x97\x5d\x96\x5d\x94\x5d\x98\x00\x00\x5d\x92\x5d\x93\x00\x00\x5d\x91\x00\x00\x7c\x84\x00\x00\x00\x00\x7f\xbd\x00\x00\x5f\xb3\x5f\xb4\x5f\xb2\x00\x00\x7f\xbc\x00\x00\x7f\xbe\x00\x00\x82\xd4\x82\xd6\x00\x00\x61\xb0\x82\xd7\x61\xa9\x82\xd3\x61\xa8\x61\xb2\x61\xae\x61\xaf\x61\xab\x82\xd2\x61\xaa\x82\xd8\x82\xd5\x00\x00\x61\xb1\x00\x00\x61\xac\x61\xad\x85\xdf\x00\x00\x85\xe1\x85\xe0\x00\x00\x85\xe2\x63\x6a\x85\xde\x00\x00\x00\x00\x64\xd4\x88\x85\x64\xd1\x64\xd5\x64\xd3\x64\xd2\x8a\x82\x00\x00", /* 8d00 */ "\x8a\x85\x00\x00\x8a\x84\x00\x00\x8a\x83\x65\xc2\x8c\x57\x8c\x58\x66\xa3\x8c\x59\x66\xa4\x00\x00\x00\x00\x67\x65\x00\x00\x67\x64\x8e\xc1\x00\x00\x00\x00\x67\xad\x8e\xc2\x8f\xac\x67\xf4\x67\xf5\x00\x00\x90\x75\x00\x00\x68\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x00\x00\x58\xcf\x58\xce\x7c\x85\x7c\x86\x00\x00\x5f\xb5\x85\xe3\x61\xb3\x85\xe4\x88\x86\x4f\xcb\x00\x00\x6f\x74\x53\xd9\x53\xd8\x00\x00\x72\x48\x56\x64\x72\x49\x75\x7a\x00\x00\x75\x79\x00\x00\x75\x78\x00\x00\x00\x00", /* 8d80 */ "\x78\xd4\x5b\x5f\x00\x00\x00\x00\x78\xd3\x5b\x5e\x00\x00\x00\x00\x00\x00\x78\xd5\x5b\x5d\x00\x00\x7c\x88\x7c\x8b\x7c\x89\x7c\x8a\x7c\x8e\x7c\x87\x7c\x8f\x7c\x8c\x7c\x8d\x5f\xb7\x7f\xbf\x00\x00\x00\x00\x5f\xb6\x00\x00\x82\xdc\x82\xda\x00\x00\x00\x00\x61\xb4\x82\xd9\x82\xdb\x00\x00\x61\xb5\x00\x00\x85\xe5\x00\x00\x85\xe6\x64\xd6\x00\x00\x8c\x5b\x8c\x5d\x8c\x5a\x8c\x5c\x8d\xa5\x8e\xc3\x00\x00\x00\x00\x91\x81\x4f\xcc\x53\xda\x72\x4a\x72\x4c\x72\x4b\x00\x00\x75\x7d\x58\xd1\x00\x00\x75\x7b\x00\x00\x58\xd0\x75\x7e\x00\x00\x75\x7f\x75\x7c\x00\x00\x00\x00\x78\xe1\x5b\x67\x78\xd9\x78\xdf\x00\x00\x00\x00\x5b\x62\x5b\x65\x78\xd8\x5b\x60\x78\xdc\x7c\x95\x5b\x64\x00\x00\x78\xd7\x00\x00\x78\xdd\x78\xda\x78\xe0\x78\xd6\x78\xde\x5b\x63\x5b\x66\x78\xdb\x5b\x61\x00\x00\x5d\x9a\x7c\x91\x5d\x99\x7c\x98\x7c\x97\x5d\xa0\x00\x00\x5d\xa1\x7c\x99\x5d\x9b\x7c\x96\x5d\x9f\x7c\x9b\x7c\x92\x00\x00\x7c\x94\x5d\x9c\x7c\x90\x7c\x93\x7c\x9a\x5d\x9d\x7c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x9e\x00\x00\x5f\xb8\x7f\xc4\x7f\xca\x7f\xc2", /* 8e00 */ "\x7f\xcb\x00\x00\x7f\xc1\x7f\xc6\x7f\xcc\x7f\xc9\x7f\xc8\x7f\xc7\x00\x00\x7f\xc0\x7f\xc5\x00\x00\x00\x00\x7f\xc3\x00\x00\x61\xba\x61\xb7\x82\xe5\x82\xea\x82\xec\x82\xe9\x82\xe2\x82\xe4\x82\xee\x82\xeb\x82\xe6\x82\xef\x82\xe3\x82\xed\x61\xb8\x61\xbe\x61\xbc\x82\xdd\x61\xbd\x61\xb9\x82\xde\x82\xe0\x82\xdf\x82\xe7\x82\xe8\x00\x00\x61\xbb\x00\x00\x61\xb6\x00\x00\x00\x00\x82\xe1\x00\x00\x85\xf0\x63\x6c\x00\x00\x85\xe7\x63\x6d\x63\x70\x85\xec\x00\x00\x85\xe9\x63\x6f\x00\x00\x00\x00\x85\xed\x85\xee\x85\xe8\x85\xf1\x85\xea\x85\xef\x63\x6e\x00\x00\x63\x6b\x85\xeb\x00\x00\x88\x8c\x64\xd9\x64\xd7\x64\xda\x64\xd8\x88\x8b\x88\x88\x88\x87\x00\x00\x88\x8a\x00\x00\x00\x00\x88\x89\x8a\x93\x65\xc8\x8a\x8a\x8a\x89\x00\x00\x65\xc3\x8a\x8f\x8a\x8e\x8a\x86\x8a\x91\x8a\x8b\x65\xc7\x8a\x88\x8a\x90\x8a\x87\x65\xc4\x65\xc6\x8a\x8c\x65\xc5\x8a\x8d\x00\x00\x8a\x92\x8c\x61\x00\x00\x66\xa9\x8c\x5e\x00\x00\x8c\x62\x00\x00\x00\x00\x66\xa6\x8c\x60\x66\xab\x00\x00\x66\xa8\x00\x00\x8c\x5f\x00\x00\x66\xaa\x8c\x63\x66\xa5\x00\x00\x00\x00\x00\x00", /* 8e80 */ "\x00\x00\x67\x67\x67\x69\x00\x00\x8d\xa8\x67\x68\x8d\xa6\x66\xa7\x8d\xa7\x67\x66\x67\xae\x67\xb0\x8e\xc5\x67\xaf\x8e\xc4\x00\x00\x8f\xb1\x67\xf6\x8f\xb0\x67\xf7\x8f\xae\x8f\xad\x8f\xb2\x8f\xb3\x90\x76\x00\x00\x8f\xaf\x00\x00\x00\x00\x90\xd5\x90\xd2\x90\xd3\x90\xd4\x68\xa8\x00\x00\x91\x62\x91\x61\x91\x60\x91\x82\x00\x00\x91\xae\x91\x9b\x68\xba\x4f\xcd\x56\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xbf\x00\x00\x00\x00\x85\xf2\x00\x00\x00\x00\x65\xc9\x00\x00\x8c\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x9c\x4f\xce\x51\xd0\x53\xdc\x53\xdb\x00\x00\x56\x68\x00\x00\x72\x4d\x56\x66\x72\x4e\x56\x67\x00\x00\x00\x00\x75\x85\x75\x81\x00\x00\x00\x00\x58\xd2\x75\x84\x75\x83\x75\x82\x58\xd3\x75\x86\x75\x87\x00\x00\x00\x00\x00\x00\x78\xe8\x78\xe6\x78\xea\x78\xeb\x78\xf1\x00\x00\x78\xed\x78\xef\x00\x00\x78\xe7\x78\xe2\x00\x00\x78\xee\x00\x00\x00\x00\x78\xf0\x78\xe9\x78\xec\x78\xe3\x5b\x69\x78\xe5\x78\xe4\x5b\x68\x5b\x6a\x00\x00\x5d\xa5\x7c\x9e", /* 8f00 */ "\x7c\xa0\x7c\x9f\x7c\xa4\x5d\xa3\x00\x00\x7c\xa1\x7c\x9d\x7c\xa2\x7c\xa3\x5d\xa4\x5d\xa6\x7c\xa5\x00\x00\x7f\xd0\x7f\xcf\x00\x00\x7f\xcd\x7f\xce\x5f\xba\x5f\xbc\x5f\xb9\x5f\xbb\x82\xf6\x82\xf7\x82\xf2\x00\x00\x82\xf3\x61\xc1\x61\xc6\x61\xc0\x61\xc7\x61\xc2\x82\xf4\x00\x00\x00\x00\x82\xf5\x82\xf1\x61\xc8\x61\xc4\x00\x00\x00\x00\x61\xc3\x61\xc5\x00\x00\x82\xf0\x00\x00\x85\xf4\x63\x72\x00\x00\x00\x00\x85\xf6\x63\x74\x85\xf9\x85\xf5\x85\xf3\x85\xf8\x63\x73\x85\xf7\x00\x00\x63\x71\x00\x00\x00\x00\x64\xdc\x64\xdf\x88\x8e\x00\x00\x64\xdd\x88\x8d\x64\xdb\x64\xde\x8a\x94\x8a\x95\x8a\x96\x65\xca\x00\x00\x8a\x97\x00\x00\x65\xcb\x66\xad\x8c\x67\x8c\x68\x8c\x66\x8c\x65\x8c\x69\x66\xac\x8d\xac\x8d\xaa\x8d\xab\x8d\xad\x8d\xa9\x8d\xae\x8e\xc7\x00\x00\x8e\xc8\x8e\xc6\x67\xb1\x8f\xb4\x67\xf8\x8f\xb5\x90\x78\x90\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xcf\x5b\x6b\x00\x00\x00\x00\x5d\xa7\x00\x00\x00\x00\x00\x00\x5f\xbd\x00\x00\x00\x00\x63\x76\x00\x00\x63\x75\x00\x00\x00\x00\x00\x00\x00\x00\x66\xae\x67\x49\x67\xb2\x4f\xd0\x56\x69\x5d\xa8\x00\x00\x8c\x6a\x48\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x47\x00\x00\x00\x00\x4f\xd1\x00\x00\x4f\xd4\x4f\xd3\x4f\xd2\x00\x00\x00\x00\x6b\x46\x00\x00\x6c\xed\x00\x00\x6c\xef\x51\xd1\x00\x00\x00\x00\x51\xd3\x6c\xec\x6c\xee\x51\xd2\x6c\xf1\x6c\xf0\x6c\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x78\x6f\x76\x53\xdf\x6f\x75\x53\xe4\x53\xe1\x53\xde\x00\x00\x53\xe5\x00\x00\x53\xe0\x53\xe3\x00\x00\x53\xe2\x6f\x77\x00\x00\x53\xdd\x00\x00\x00\x00\x00\x00\x56\x6f\x72\x50\x72\x56\x56\x6c\x56\x73\x00\x00\x56\x6e\x72\x53\x72\x55\x56\x71\x72\x4f\x72\x52", /* 9000 */ "\x56\x6d\x56\x6a\x72\x51\x56\x70\x72\x54\x56\x72\x56\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x75\x89\x75\x8c\x58\xd5\x00\x00\x58\xdf\x58\xdb\x75\x8a\x00\x00\x00\x00\x58\xe3\x58\xdc\x58\xe1\x58\xd7\x00\x00\x58\xd4\x58\xd6\x58\xe2\x75\x8b\x58\xda\x58\xdd\x58\xd9\x58\xde\x75\x8d\x58\xe0\x58\xd8\x75\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xf2\x5b\x6c\x78\xf4\x00\x00\x5b\x6e\x5b\x70\x00\x00\x78\xf3\x5b\x6d\x5b\x71\x00\x00\x5b\x6f\x00\x00\x00\x00\x00\x00\x5d\xae\x7c\xaa\x5d\xb6\x7c\xa7\x00\x00\x5d\xb7\x5d\xac\x00\x00\x7c\xa8\x00\x00\x00\x00\x5d\xb1\x00\x00\x7c\xa9\x5d\xaa\x5d\xa9\x00\x00\x5d\xb4\x5d\xb3\x5d\xb2\x5d\xb0\x5d\xb5\x7c\xa6\x5d\xab\x5d\xad\x5d\xaf\x00\x00\x00\x00\x5f\xbf\x5f\xc2\x00\x00\x5f\xc6\x5f\xc0\x5f\xc5\x5f\xc3\x00\x00\x5f\xbe\x00\x00\x5f\xc4\x5f\xc1\x00\x00\x00\x00\x00\x00\x82\xfb\x61\xcb\x61\xc9\x00\x00\x82\xfc\x00\x00\x61\xcc\x61\xca\x82\xfa\x82\xf9\x00\x00\x63\x7a\x82\xf8\x63\x78\x63\x77\x85\xfa\x61\xcd\x63\x79\x85\xfb\x63\x7c\x85\xfc\x63\x7b\x64\xe1\x88\x90\x64\xe0", /* 9080 */ "\x64\xe5\x64\xe3\x64\xe4\x65\xcd\x64\xe2\x88\x8f\x85\xfd\x65\xcc\x65\xce\x00\x00\x66\xaf\x66\xb0\x00\x00\x8d\xaf\x00\x00\x68\x6a\x68\x69\x4f\xd6\x00\x00\x00\x00\x69\xf4\x56\x74\x00\x00\x69\xf1\x69\xf2\x69\xf0\x00\x00\x69\xf3\x00\x00\x00\x00\x6b\x4b\x6b\x48\x6b\x4d\x6b\x49\x4f\xd7\x4f\xda\x00\x00\x6b\x4a\x4f\xd9\x6b\x4c\x00\x00\x00\x00\x4f\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xf5\x6c\xf7\x51\xd6\x6c\xf3\x6c\xf6\x6c\xf4\x51\xd4\x51\xd7\x00\x00\x51\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x7a\x6f\x7e\x6f\x7b\x00\x00\x53\xe8\x00\x00\x53\xe9\x00\x00\x6f\x7d\x00\x00\x6f\x7f\x6f\x82\x00\x00\x53\xe6\x6f\x81\x00\x00\x00\x00\x53\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x94\x6f\x7c\x72\x57\x72\x60\x72\x5e\x72\x59\x72\x5a\x72\x5f\x72\x61\x56\x76\x00\x00\x72\x5c\x72\x58\x56\x75\x56\x77\x72\x5b\x72\x62\x72\x5d\x00\x00\x00\x00\x58\xe4\x75\x97\x75\x8f\x75\x95\x75\x96\x58\xe5\x00\x00\x75\x8e\x75\x90\x6f\x79\x75\x92\x75\x93\x75\x91\x5b\x73\x00\x00\x00\x00\x00\x00\x78\xfb\x86\x41\x78\xfc\x78\xf9\x58\xe6\x5b\x75\x78\xf8", /* 9100 */ "\x79\x41\x78\xfd\x5b\x72\x79\x44\x78\xf7\x79\x43\x78\xf5\x79\x42\x78\xfa\x5b\x74\x00\x00\x7c\xb1\x00\x00\x7c\xac\x7c\xb2\x7c\xad\x7c\xab\x7c\xae\x5d\xb8\x00\x00\x7c\xb0\x00\x00\x7c\xaf\x5d\xb9\x5f\xc8\x5f\xc7\x7f\xd7\x7f\xda\x7f\xd2\x7f\xd6\x5f\xc9\x7f\xd5\x7f\xd3\x7f\xd9\x7f\xd4\x7f\xd1\x7f\xd8\x00\x00\x83\x45\x61\xd0\x8a\x98\x83\x42\x83\x43\x83\x41\x78\xf6\x61\xcf\x83\x46\x82\xfd\x61\xce\x61\xd1\x83\x44\x86\x42\x63\x7d\x86\x43\x86\x44\x00\x00\x88\x91\x64\xe6\x8a\x99\x8a\x9a\x00\x00\x00\x00\x8a\x9b\x8c\x6c\x8c\x6b\x8d\xb1\x00\x00\x8d\xb0\x8e\xca\x8e\xcb\x8e\xc9\x8f\xb6\x67\xf9\x4f\xdb\x53\xeb\x53\xea\x56\x7a\x56\x79\x72\x64\x72\x65\x72\x63\x00\x00\x56\x78\x75\x9b\x00\x00\x75\x9c\x75\x98\x58\xe7\x75\x99\x00\x00\x75\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x79\x47\x79\x49\x79\x45\x79\x48\x5b\x76\x79\x46\x5b\x77\x00\x00\x00\x00\x79\xf9\x5d\xbc\x5d\xbb\x00\x00\x5d\xba\x00\x00\x7c\xb3\x7c\xb4\x00\x00\x00\x00\x7f\xdc\x7f\xde\x5f\xcd\x5f\xca\x00\x00\x5f\xcc\x5f\xcb\x7f\xdd\x7f\xdb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9180 */ "\x83\x4d\x83\x4a\x83\x4b\x61\xd5\x83\x4c\x83\x47\x83\x48\x61\xd2\x00\x00\x61\xd3\x83\x49\x61\xd4\x00\x00\x86\x48\x00\x00\x86\x49\x86\x46\x86\x47\x63\x7e\x86\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x95\x88\x92\x88\x94\x64\xe9\x88\x98\x64\xe8\x88\x96\x88\x99\x88\x97\x88\x93\x64\xe7\x00\x00\x8a\x9d\x00\x00\x8a\x9e\x8a\x9c\x00\x00\x8a\xa0\x65\xcf\x65\xd0\x8c\x6e\x66\xb2\x8a\x9f\x8c\x6d\x66\xb1\x8d\xb4\x8d\xb5\x67\x6a\x8d\xb3\x00\x00\x8d\xb2\x00\x00\x8e\xcc\x67\xb3\x00\x00\x90\x79\x90\xd7\x90\xd6\x00\x00\x68\x8f\x68\xa9\x90\xd8\x91\x83\x00\x00\x68\xbb\x4f\xdc\x51\xd8\x00\x00\x5d\xbd\x00\x00\x67\x6b\x4f\xdd\x53\xec\x58\xe8\x5b\x78\x65\xd1\x51\xd9\x00\x00\x6f\x84\x6f\x83\x72\x66\x00\x00\x56\x7d\x56\x7b\x56\x7f\x72\x68\x00\x00\x56\x7e\x56\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x72\x67\x58\xeb\x75\xa2\x00\x00\x58\xea\x58\xec\x75\xa7\x58\xee\x75\xa4\x75\xa5\x75\x9d\x58\xed\x75\xa8\x00\x00\x00\x00\x75\x9f\x00\x00\x75\xa0\x75\x9e\x58\xe9\x00\x00\x75\xa6\x75\xa1\x75\xa3\x00\x00\x00\x00\x00\x00\x79\x55\x00\x00\x79\x54", /* 9200 */ "\x79\x52\x79\x4a\x79\x59\x79\x4d\x79\x57\x79\x5e\x79\x56\x5b\x81\x00\x00\x5b\x7c\x79\x4b\x00\x00\x79\x51\x5b\x7e\x00\x00\x79\x50\x5b\x7f\x5b\x82\x79\x53\x00\x00\x5b\x79\x5b\x7a\x79\x5f\x79\x5d\x00\x00\x79\x5c\x79\x4e\x00\x00\x79\x5a\x00\x00\x5b\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x7b\x79\x5b\x79\x4c\x79\x4f\x79\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x44\x7c\xbe\x00\x00\x7c\xb7\x7c\xca\x7c\xd3\x7c\xba\x5d\xc8\x00\x00\x7c\xc7\x5d\xbe\x5d\xc0\x5d\xcc\x7c\xb8\x00\x00\x00\x00\x5d\xc1\x5d\xc3\x5d\xcd\x5d\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x5d\xcb\x7c\xc0\x00\x00\x7c\xb5\x5d\xc9\x7c\xbf\x5d\xc5\x7c\xd1\x5d\xca\x7c\xcf\x7c\xc3\x7c\xcd\x5d\xc7\x7c\xb6\x7c\xd0\x7c\xcb\x00\x00\x7c\xd2\x5d\xbf\x00\x00\x00\x00\x5d\xce\x5d\xc4\x00\x00\x00\x00\x7c\xbc\x00\x00\x7c\xc4\x7c\xc8\x00\x00\x7c\xcc\x5d\xc6\x7c\xbb\x7c\xb9\x7c\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x7c\xc2\x7c\xc1\x00\x00\x7c\xc6\x7c\xc9\x00\x00\x7c\xce\x00\x00\x00\x00\x00\x00\x7f\xe1\x00\x00\x5f\xce\x7f\xeb\x7f\xe3\x5f\xd3\x5f\xd7\x7f\xf4\x7f\xfc\x7f\xed", /* 9280 */ "\x5f\xcf\x00\x00\x7f\xf1\x7c\xbd\x00\x00\x5f\xd0\x7f\xf8\x7f\xfd\x7f\xf5\x00\x00\x7f\xf7\x80\x43\x7f\xf9\x7f\xe7\x7f\xf0\x00\x00\x00\x00\x5f\xd8\x00\x00\x5f\xd4\x7f\xe5\x7f\xf2\x5f\xd2\x7f\xec\x5f\xd1\x7f\xfa\x7f\xe9\x7f\xe2\x5f\xd5\x80\x42\x00\x00\x00\x00\x7f\xe4\x7f\xf6\x7f\xf3\x7f\xee\x7f\xe0\x7f\xdf\x7f\xe8\x7f\xfb\x5f\xd6\x80\x41\x7f\xe6\x7f\xea\x61\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\xe2\x61\xdd\x83\x6e\x83\x6b\x83\x53\x61\xd8\x00\x00\x00\x00\x00\x00\x61\xd7\x61\xde\x00\x00\x00\x00\x00\x00\x83\x51\x61\xdc\x83\x5d\x83\x4f\x83\x50\x61\xd6\x83\x6d\x61\xe0\x83\x60\x83\x65\x83\x5f\x86\x5b\x83\x5b\x83\x63\x83\x61\x83\x54\x83\x4e\x83\x69\x61\xdf\x83\x6a\x00\x00\x83\x64\x00\x00\x83\x59\x83\x57\x83\x52\x00\x00\x00\x00\x00\x00\x83\x5a\x83\x67\x83\x56\x83\x66\x83\x6c\x00\x00\x00\x00\x61\xdb\x00\x00\x83\x62\x83\x68\x83\x5e\x83\x58\x61\xd9\x00\x00\x00\x00\x00\x00\x7f\xef\x83\x5c\x61\xe1\x83\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x61\x63\x82\x86\x60\x86\x5d\x86\x70\x63\x86\x00\x00\x86\x6d\x86\x65", /* 9300 */ "\x86\x6f\x86\x56\x86\x63\x00\x00\x63\x88\x00\x00\x86\x4e\x00\x00\x86\x4c\x86\x6e\x00\x00\x86\x6c\x86\x6b\x86\x5a\x86\x59\x86\x4f\x63\x8a\x00\x00\x86\x55\x86\x5f\x86\x6a\x63\x8d\x86\x71\x00\x00\x64\xf1\x63\x8f\x63\x89\x86\x53\x00\x00\x86\x5c\x86\x4b\x86\x4d\x63\x7f\x63\x8c\x63\x85\x86\x54\x86\x64\x86\x5e\x63\x8b\x86\x4a\x64\xec\x86\x66\x86\x69\x63\x87\x00\x00\x86\x58\x63\x8e\x63\x84\x00\x00\x00\x00\x00\x00\x63\x83\x86\x62\x86\x68\x63\x81\x00\x00\x86\x51\x86\x67\x00\x00\x00\x00\x86\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x57\x88\x9f\x00\x00\x88\xa4\x64\xee\x64\xf0\x88\xaa\x64\xea\x88\xb9\x88\xb0\x88\xa5\x88\xa6\x88\xaf\x00\x00\x64\xf7\x88\xae\x88\x9e\x88\xad\x88\xa1\x88\xba\x64\xf6\x64\xf4\x88\xa2\x00\x00\x88\xb5\x00\x00\x88\xa7\x88\xb4\x00\x00\x88\xb6\x88\x9d\x64\xef\x00\x00\x88\xb7\x00\x00\x00\x00\x88\xab\x00\x00\x64\xf3\x88\xa8\x00\x00\x00\x00\x64\xf5\x88\xb1\x00\x00\x00\x00\x00\x00\x64\xed\x88\xa3\x88\xb2\x00\x00\x88\xac\x86\x50\x88\xb3\x88\xa0\x00\x00\x64\xf2\x00\x00", /* 9380 */ "\x88\xb8\x00\x00\x64\xeb\x88\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xae\x8a\xa7\x65\xd3\x00\x00\x8a\xa2\x8a\xb1\x8a\xa9\x88\xa9\x00\x00\x8a\xb3\x8a\xa3\x00\x00\x65\xd2\x8a\xad\x65\xd4\x65\xdc\x65\xda\x8a\xaf\x65\xdb\x8a\xa5\x00\x00\x8a\xa6\x8a\xab\x8a\xb0\x00\x00\x88\x9a\x65\xd5\x8a\xb8\x8a\xb5\x8a\xb9\x8a\xac\x8a\xa8\x8a\xb6\x8c\x79\x8a\xaa\x00\x00\x65\xd8\x00\x00\x65\xd7\x88\x9c\x65\xd9\x8a\xb2\x8a\xb4\x65\xd6\x8a\xb7\x8a\xa1\x00\x00\x8a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x83\x00\x00\x8c\x72\x66\xb6\x8c\x81\x00\x00\x00\x00\x8c\x70\x66\xb7\x00\x00\x8c\x7b\x00\x00\x8c\x77\x66\xbc\x8c\x82\x8c\x71\x8c\x74\x66\xb4\x8c\x84\x00\x00\x8c\x7c\x8c\x7f\x66\xba\x66\xbf\x66\xbd\x8c\x78\x8c\x73\x00\x00\x66\xb8\x66\xb9\x8c\x6f\x66\xb5\x00\x00\x66\xb3\x66\xbb\x8c\x7e\x66\xbe\x00\x00\x8c\x7a\x8c\x85\x66\xc0\x00\x00\x00\x00\x00\x00\x8c\x76\x00\x00\x8c\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xc2\x8d\xd0\x8d\xc4\x8d\xcb\x8c\x75\x8d\xc9\x8d\xb8\x8d\xce\x67\x6e\x8d\xbc\x8d\xcd", /* 9400 */ "\x8d\xc3\x00\x00\x00\x00\x67\x6d\x00\x00\x00\x00\x8d\xd2\x8d\xc5\x00\x00\x8d\xca\x8d\xcc\x8d\xb6\x8d\xcf\x8d\xc1\x8d\xc6\x8d\xba\x8d\xbe\x8d\xd1\x8d\xc8\x8d\xb7\x8d\xbb\x8d\xbd\x8d\xc7\x00\x00\x67\x6c\x8d\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbf\x8e\xd0\x8e\xd5\x67\xba\x8e\xd7\x00\x00\x67\xb4\x00\x00\x8e\xd3\x8e\xd9\x67\xb9\x67\xb5\x00\x00\x67\xb6\x8e\xcf\x8e\xd6\x67\xb8\x8e\xd4\x67\xb7\x8e\xce\x8e\xd2\x8e\xd1\x00\x00\x8e\xcd\x8e\xd8\x00\x00\x00\x00\x00\x00\x67\xfa\x8f\xbd\x8f\xc0\x8f\xbc\x8f\xbe\x8f\xbf\x8f\xb9\x8f\xba\x8f\xb7\x00\x00\x00\x00\x8f\xbb\x8f\xb8\x67\xfb\x67\xfc\x00\x00\x00\x00\x90\x7b\x00\x00\x90\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x7c\x90\x7e\x00\x00\x68\x6c\x00\x00\x90\x7a\x68\x6b\x68\x6d\x00\x00\x00\x00\x00\x00\x90\xda\x90\xdb\x68\x90\x90\xd9\x00\x00\x91\x64\x91\x63\x91\x65\x68\xab\x91\x66\x68\xaa\x91\x67\x91\x84\x91\x87\x91\x86\x68\xb4\x91\x85\x00\x00\x00\x00\x00\x00\x68\xbe\x68\xbc\x68\xbd\x68\xc3", /* 9480 */ "\x91\xb0\x91\xb1\x91\xaf\x91\xb9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xda\x00\x00\x00\x00\x75\xa9\x79\x60\x83\x6f\x8c\x86\x00\x00\x00\x00", /* 9580 */ "\x51\xdb\x00\x00\x53\xed\x56\x81\x00\x00\x00\x00\x75\xaa\x00\x00\x75\xab\x58\xef\x00\x00\x5b\x85\x79\x62\x79\x61\x5b\x89\x5b\x84\x79\x63\x5b\x86\x5b\x88\x5b\x87\x5b\x83\x00\x00\x00\x00\x00\x00\x5d\xcf\x00\x00\x00\x00\x7c\xd7\x7c\xd5\x00\x00\x7c\xd6\x7c\xd4\x00\x00\x5f\xd9\x00\x00\x5f\xdc\x5f\xde\x5f\xdd\x00\x00\x00\x00\x5f\xda\x5f\xdb\x00\x00\x83\x71\x83\x70\x61\xe3\x83\x72\x00\x00\x83\x73\x61\xe4\x00\x00\x00\x00\x00\x00\x86\x79\x86\x77\x88\xc0\x00\x00\x86\x75\x86\x76\x63\x90\x86\x72\x86\x7a\x86\x74\x86\x78\x88\xbc\x00\x00\x00\x00\x88\xbe\x00\x00\x88\xbf\x64\xfc\x88\xbb\x64\xfb\x88\xbd\x64\xf8\x64\xf9\x64\xfa\x86\x73\x00\x00\x00\x00\x65\xdf\x8a\xbc\x8a\xba\x8a\xbb\x65\xdd\x65\xe0\x65\xde\x00\x00\x00\x00\x00\x00\x8c\x87\x8c\x88\x66\xc1\x00\x00\x8d\xd3\x8d\xd5\x8d\xd4\x67\x6f\x67\xbb\x8e\xdc\x8e\xdb\x8e\xda\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xdc\x00\x00\x69\x8a\x00\x00\x69\xf7\x4e\x8b\x69\xf5\x69\xf8\x69\xf6\x00\x00\x00\x00\x00\x00\x6b\x4f\x00\x00\x4f\xe1\x00\x00\x4f\xe2\x6b\x51\x4f\xdf\x6b\x50\x6b\x4e\x4f\xe0\x4f\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\xf8\x6c\xfb\x51\xdf\x6c\xfa\x6c\xf9\x00\x00\x51\xde\x51\xdd\x00\x00\x51\xe1\x6c\xfc\x51\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x89\x53\xef\x53\xf0\x53\xf1\x6f\x8a\x6f\x86\x53\xee\x6f\x87\x00\x00\x6f\x88\x6f\x85\x00\x00\x00\x00\x00\x00\x56\x88\x00\x00\x00\x00\x56\x85\x72\x69\x56\x86\x56\x89\x72\x6a\x00\x00\x56\x84\x56\x82\x56\x83\x56\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\xf0\x75\xae\x58\xf8\x75\xad\x00\x00\x75\xb0\x58\xf4\x75\xaf\x5b\x91\x58\xf2\x58\xf5\x58\xf1\x58\xf6\x58\xf7\x58\xf3\x00\x00\x00\x00\x00\x00\x75\xac\x5b\x8d\x79\x65\x00\x00", /* 9680 */ "\x79\x69\x00\x00\x00\x00\x79\x68\x5b\x92\x5b\x8e\x5b\x8f\x79\x64\x79\x66\x79\x67\x5b\x8a\x5b\x8c\x00\x00\x5b\x90\x5b\x8b\x00\x00\x00\x00\x7c\xda\x7c\xd8\x7c\xd9\x5d\xd1\x5d\xd2\x00\x00\x7c\xdb\x5d\xd0\x5f\xdf\x00\x00\x5f\xe1\x5f\xe0\x00\x00\x80\x45\x00\x00\x00\x00\x80\x46\x83\x75\x00\x00\x83\x74\x00\x00\x00\x00\x63\x91\x63\x92\x86\x7b\x63\x93\x00\x00\x88\xc3\x00\x00\x88\xc1\x00\x00\x88\xc2\x64\xfd\x00\x00\x8a\xbd\x66\xc2\x00\x00\x48\xeb\x00\x00\x65\x41\x51\xe2\x00\x00\x56\x8a\x72\x6b\x00\x00\x00\x00\x75\xb1\x58\xf9\x5b\x93\x79\x6a\x79\x6c\x5b\x95\x5b\x94\x5b\x96\x5b\x97\x79\x6b\x5d\xd5\x5d\xd6\x5d\xd4\x5f\xe2\x5d\xd3\x7c\xdc\x00\x00\x00\x00\x00\x00\x5f\xe3\x83\x76\x86\x7c\x63\x94\x65\x42\x8a\xbe\x8a\xc2\x65\xe3\x8a\xbf\x65\xe4\x65\xe2\x8a\xc3\x65\xe5\x8a\xc1\x00\x00\x8c\x89\x65\xe1\x66\xc3\x00\x00\x90\xdc\x00\x00\x00\x00\x51\xe3\x58\xfb\x58\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x98\x79\x6e\x79\x6d\x5b\x99\x00\x00\x00\x00\x7c\xe0\x5d\xda\x5d\xd7\x7c\xdf\x5d\xd9\x7c\xdd\x5d\xd8\x00\x00\x7c\xde\x00\x00\x80\x47", /* 9700 */ "\x5f\xe4\x00\x00\x83\x79\x00\x00\x61\xe5\x83\x77\x61\xe6\x61\xe7\x83\x78\x61\xe8\x00\x00\x86\x7d\x00\x00\x63\x98\x63\x95\x63\x9a\x86\x7f\x63\x96\x86\x7e\x63\x99\x00\x00\x00\x00\x63\x97\x00\x00\x88\xc6\x88\xc8\x00\x00\x00\x00\x65\x43\x88\xc7\x65\x44\x88\xc5\x88\xc4\x00\x00\x8a\xc5\x8a\xc4\x65\xe6\x8a\xc6\x8c\x8e\x66\xc5\x8c\x8d\x8c\x8a\x66\xc4\x8c\x8b\x8c\x8c\x00\x00\x8d\xd6\x8d\xd7\x67\x70\x00\x00\x67\xbe\x00\x00\x00\x00\x8e\xdd\x00\x00\x00\x00\x67\xbc\x67\xbd\x8e\xde\x00\x00\x00\x00\x67\xfd\x68\x41\x8f\xc1\x00\x00\x00\x00\x68\x91\x90\xde\x68\x93\x00\x00\x90\xdd\x90\xdf\x68\x92\x91\x68\x00\x00\x91\x9d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xe4\x00\x00\x00\x00\x00\x00\x5d\xdb\x00\x00\x80\x48\x00\x00\x83\x7a\x63\x9b\x63\x9c\x00\x00\x51\xe5\x00\x00\x61\xe9\x66\xc6\x53\xf2\x00\x00\x00\x00\x00\x00\x63\x9d\x00\x00\x68\x6e\x53\xf3\x75\xb2\x00\x00\x79\x6f\x00\x00\x79\x71\x00\x00\x79\x70\x00\x00\x7c\xe4\x7c\xe1\x5d\xdc\x00\x00\x5d\xdd\x7c\xe2\x7c\xe3\x00\x00\x80\x4a\x80\x4f\x5f\xe5\x80\x49\x80\x4b\x80\x52", /* 9780 */ "\x80\x4d\x80\x51\x80\x4e\x80\x4c\x80\x50\x5f\xe6\x00\x00\x00\x00\x83\x7d\x00\x00\x83\x7b\x61\xeb\x00\x00\x61\xea\x83\x7c\x61\xec\x00\x00\x00\x00\x00\x00\x00\x00\x86\x83\x00\x00\x00\x00\x86\x82\x63\x9e\x86\x81\x88\xc9\x00\x00\x88\xcb\x88\xcd\x88\xcc\x00\x00\x65\x45\x88\xca\x8a\xcd\x65\xe7\x8a\xcb\x8a\xce\x65\xe8\x00\x00\x8a\xc9\x00\x00\x8a\xcc\x8a\xca\x8a\xc7\x65\xe9\x8a\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x8f\x00\x00\x00\x00\x8c\x91\x8c\x90\x00\x00\x8d\xd8\x00\x00\x8d\xd9\x00\x00\x00\x00\x00\x00\x8e\xdf\x00\x00\x68\x43\x00\x00\x68\x42\x90\x7f\x90\x81\x68\x94\x90\xe0\x00\x00\x68\xb5\x00\x00\x53\xf4\x5b\x9a\x80\x54\x80\x53\x83\x7f\x83\x7e\x00\x00\x00\x00\x65\x46\x88\xcf\x88\xce\x8a\xd1\x8a\xcf\x8a\xd2\x8a\xd0\x00\x00\x00\x00\x66\xc7\x8c\x92\x8c\x93\x8c\x94\x00\x00\x8e\xe0\x00\x00\x8f\xc2\x00\x00\x90\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf5\x00\x00\x00\x00\x86\x84\x88\xd0\x00\x00\x53\xf6\x00\x00\x00\x00\x5f\xe7\x00\x00\x86\x85\x65\xea\x8a\xd3\x66\xc8\x00\x00\x8d\xda\x8d\xdb\x67\xbf", /* 9800 */ "\x90\x82\x53\xf7\x59\x41\x59\x42\x75\xb3\x5b\x9b\x5b\x9c\x79\x72\x5b\x9d\x00\x00\x5d\xe1\x00\x00\x5d\xe3\x7c\xe6\x7c\xe7\x7c\xe5\x5d\xde\x5d\xdf\x5d\xe2\x5d\xe0\x00\x00\x00\x00\x80\x55\x5f\xe8\x5f\xe9\x00\x00\x00\x00\x83\x87\x61\xef\x83\x82\x83\x81\x00\x00\x83\x86\x61\xed\x00\x00\x00\x00\x63\xa5\x00\x00\x83\x83\x83\x88\x83\x85\x83\x84\x00\x00\x61\xee\x00\x00\x63\xa3\x00\x00\x86\x87\x63\x9f\x00\x00\x86\x88\x00\x00\x00\x00\x86\x86\x00\x00\x63\xa2\x63\xa0\x63\xa4\x00\x00\x63\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\xd1\x00\x00\x88\xd6\x88\xd2\x88\xd5\x65\x47\x00\x00\x87\xc0\x88\xd4\x88\xd3\x00\x00\x65\xed\x65\xeb\x65\xee\x65\xec\x8a\xd4\x8a\xd5\x8a\xd6\x65\xef\x00\x00\x00\x00\x00\x00\x8c\x98\x66\xca\x8c\x96\x00\x00\x66\xcb\x8c\x95\x8c\x97\x66\xc9\x8d\xdf\x8d\xdc\x00\x00\x8d\xdd\x8d\xde\x8e\xe1\x67\xc1\x00\x00\x67\xc0\x00\x00\x8f\xc4\x8f\xc3\x68\x44\x00\x00\x00\x00\x00\x00\x68\x6f\x68\x95\x68\xac\x91\x69\x91\x9e\x91\x9f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9880 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf8\x79\x73\x00\x00\x00\x00\x7c\xe8\x80\x56\x80\x57\x5f\xea\x00\x00\x5f\xeb\x83\x89\x61\xf0\x00\x00\x00\x00\x65\x48\x00\x00\x8a\xd7\x00\x00\x65\xf0\x8c\x9b\x66\xcc\x8c\x9a\x8c\x9c\x8c\x99\x8e\xe4\x8d\xe0\x8d\xe1\x00\x00\x67\x71\x00\x00\x8e\xe3\x00\x00\x00\x00\x8e\xe2\x00\x00\x8f\xc5\x91\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xf9\x00\x00\x00\x00\x00\x00\x53\xfa\x00\x00\x00\x00\x56\x8b\x72\x6c\x00\x00\x75\xb4\x00\x00\x5b\x9e\x00\x00\x5b\xa1\x5b\x9f\x79\x74\x00\x00\x5b\xa3\x00\x00\x5b\xa0\x00\x00\x00\x00\x5b\xa2\x00\x00\x5d\xe5\x00\x00\x7c\xe9\x00\x00\x00\x00\x7c\xea\x83\x8b\x00\x00\x5d\xe4\x5d\xe6\x5d\xe7\x00\x00", /* 9900 */ "\x80\x59\x00\x00\x80\x58\x5f\xec\x00\x00\x5f\xed\x00\x00\x80\x5a\x83\x8a\x5f\xef\x61\xf1\x00\x00\x5f\xee\x00\x00\x00\x00\x00\x00\x63\xa6\x83\x8c\x61\xf3\x61\xf2\x83\x8d\x83\x90\x83\x8e\x83\x8f\x61\xf4\x00\x00\x63\xab\x63\xa9\x00\x00\x00\x00\x63\xa8\x86\x8a\x00\x00\x63\xaa\x00\x00\x00\x00\x86\x89\x88\xd7\x00\x00\x86\x8b\x63\xa7\x86\x8c\x88\xda\x88\xd8\x88\xd9\x88\xde\x65\xf4\x88\xdd\x88\xe0\x88\xdf\x88\xdc\x88\xdb\x00\x00\x65\x49\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xda\x00\x00\x8a\xd9\x65\xf3\x65\xf1\x65\xf2\x00\x00\x8a\xd8\x00\x00\x8c\x9f\x00\x00\x66\xcd\x00\x00\x8c\x9e\x8c\x9d\x66\xce\x00\x00\x8d\xe6\x8d\xe5\x00\x00\x8d\xe3\x00\x00\x8d\xe2\x67\x73\x67\x72\x8d\xe7\x8f\xc6\x68\x45\x8e\xe6\x67\xc2\x8e\xe5\x8d\xe4\x00\x00\x8f\xc7\x68\x70\x00\x00\x68\xad\x91\x6a\x00\x00\x91\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\xfb\x75\xb5\x88\xe1\x53\xfc\x00\x00\x00\x00\x80\x5c\x80\x5b\x86\x8d\x00\x00\x00\x00\x88\xe3\x00\x00\x88\xe2\x00\x00\x65\xf5\x8c\xa0\x8c\xa1\x67\x74\x00\x00\x00\x00\x91\xa2\x56\x8c\x5b\xa5\x5b\xa4\x7c\xeb\x7c\xed\x5d\xe9\x7c\xec\x5d\xe8\x5d\xea\x7c\xee\x00\x00\x00\x00\x00\x00\x80\x5e\x80\x60\x80\x5f\x00\x00\x80\x62\x00\x00\x00\x00\x00\x00\x5f\xf0\x80\x61\x80\x5d\x00\x00\x00\x00\x00\x00\x80\x63\x00\x00\x83\x97\x00\x00\x83\x9a\x83\x9c\x83\x92\x83\x96\x83\x93\x61\xf6\x61\xf9\x61\xfb\x83\x94\x83\x95\x61\xfa\x83\x98\x83\x9b\x83\x99\x61\xfc\x00\x00\x61\xf8\x83\x91\x61\xf5\x00\x00\x61\xf7\x00\x00\x00\x00\x63\xad\x86\x93\x86\x91\x86\x90\x00\x00\x86\x96\x00\x00\x86\x95\x86\x94\x00\x00\x86\x8f\x63\xac\x86\x8e\x00\x00\x86\x92\x63\xae\x00\x00\x00\x00\x88\xe6\x00\x00\x88\xea\x88\xe7\x88\xe9\x88\xe8\x88\xe5\x88\xeb\x88\xee\x88\xec\x88\xed\x65\x4b", /* 9a00 */ "\x00\x00\x65\x4a\x88\xe4\x88\xef\x8a\xdf\x8a\xe2\x8a\xe4\x8a\xe3\x00\x00\x8a\xdd\x8a\xe1\x8a\xdc\x00\x00\x8a\xde\x65\xf6\x8a\xdb\x00\x00\x8a\xe0\x00\x00\x00\x00\x8c\xae\x8c\xa3\x66\xcf\x00\x00\x00\x00\x66\xd0\x8c\xa2\x8c\xa7\x8c\xad\x8c\xa5\x8c\xac\x00\x00\x8c\xa9\x00\x00\x8c\xa8\x8c\xab\x8c\xa6\x8c\xa4\x00\x00\x8c\xaa\x00\x00\x8d\xee\x8d\xec\x67\x75\x8d\xeb\x8d\xf1\x8d\xef\x00\x00\x67\x76\x8d\xea\x8d\xe8\x00\x00\x8d\xe9\x67\x78\x8d\xed\x67\x77\x8d\xf0\x8e\xe7\x8e\xed\x00\x00\x00\x00\x8e\xe8\x67\xc6\x8e\xee\x67\xc5\x8e\xec\x8e\xeb\x67\xc4\x8e\xea\x67\xc3\x8e\xe9\x00\x00\x8f\xcd\x8f\xcf\x8f\xce\x00\x00\x8f\xcb\x68\x47\x8f\xc8\x8f\xcc\x8f\xd1\x00\x00\x8f\xd0\x8f\xc9\x8f\xca\x68\x46\x90\x83\x68\x73\x00\x00\x90\x84\x68\x71\x68\x72\x00\x00\x00\x00\x90\xe2\x68\x96\x91\x88\x00\x00\x68\xb6\x00\x00\x91\xa3\x68\xb7\x91\xa4\x91\xa5\x91\xb3\x91\xb2\x68\xc6\x91\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9a80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x8d\x00\x00\x00\x00\x7c\xf0\x00\x00\x7c\xef\x00\x00\x5f\xf1\x5f\xf2\x80\x64\x00\x00\x83\x9d\x86\x99\x00\x00\x00\x00\x61\xfd\x63\xaf\x86\x97\x00\x00\x86\x9a\x63\xb0\x00\x00\x88\xf0\x86\x98\x8a\xe5\x65\xf7\x8c\xaf\x00\x00\x00\x00\x00\x00\x8d\xf4\x8d\xf2\x00\x00\x00\x00\x8d\xf3\x00\x00\x00\x00\x8e\xef\x00\x00\x67\xc7\x8f\xd2\x68\x76\x68\x48\x68\x74\x68\x75\x90\xe3\x68\xae\x00\x00\x56\x8e\x00\x00\x00\x00\x00\x00\x8a\xe6\x00\x00\x00\x00\x72\x6d\x00\x00\x5d\xeb\x00\x00\x80\x65\x00\x00\x00\x00\x5f\xf3\x80\x66\x00\x00\x00\x00\x00\x00\x83\x9f\x83\x9e\x63\xb2\x62\x41\x62\x42\x00\x00\x83\xa2\x83\xa1\x83\xa0\x00\x00\x00\x00\x86\x9b\x86\x9e\x00\x00\x86\x9d\x86\x9c\x63\xb1\x88\xf4\x88\xf2\x88\xf1\x00\x00", /* 9b00 */ "\x00\x00\x88\xf3\x00\x00\x65\xf8\x8a\xe8\x8a\xe9\x65\xf9\x00\x00\x8a\xe7\x00\x00\x8c\xb1\x8c\xb0\x8c\xb3\x66\xd1\x8c\xb2\x00\x00\x8d\xf5\x8d\xf7\x8d\xf6\x00\x00\x00\x00\x8e\xf0\x8e\xf3\x8e\xf1\x8e\xf2\x8f\xd3\x68\x49\x00\x00\x00\x00\x00\x00\x90\x85\x90\x86\x90\x87\x00\x00\x68\x97\x68\xaf\x91\xa6\x56\x8f\x00\x00\x62\x43\x63\xb3\x8a\xea\x00\x00\x8f\xd4\x00\x00\x00\x00\x91\xb4\x72\x6e\x00\x00\x68\xc7\x56\x90\x86\x9f\x00\x00\x8a\xeb\x00\x00\x8c\xb4\x00\x00\x00\x00\x8e\xf4\x8f\xd5\x56\x91\x00\x00\x80\x67\x80\x68\x00\x00\x5f\xf4\x5f\xf5\x83\xa4\x62\x45\x62\x44\x83\xa3\x00\x00\x88\xf5\x00\x00\x8a\xec\x8a\xee\x8a\xed\x65\xfc\x65\xfb\x65\xfa\x00\x00\x67\xc9\x8e\xf5\x00\x00\x67\xc8\x8f\xd7\x8f\xd6\x00\x00\x68\x98\x90\xe4\x59\x43\x7c\xf1\x00\x00\x00\x00\x00\x00\x80\x6b\x80\x69\x80\x6a\x00\x00\x00\x00\x83\xad\x00\x00\x83\xa8\x83\xa5\x83\xac\x00\x00\x00\x00\x00\x00\x83\xae\x00\x00\x00\x00\x62\x47\x83\xab\x83\xa7\x00\x00\x00\x00\x83\xa6\x83\xaa\x83\xa9\x62\x46\x00\x00\x00\x00\x86\xaa\x86\xa5\x86\xa3\x86\xac\x86\xa4\x00\x00", /* 9b80 */ "\x86\xa0\x00\x00\x86\xa6\x00\x00\x00\x00\x86\xa1\x89\x41\x86\xa2\x86\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xa9\x63\xb4\x86\xa8\x86\xa7\x00\x00\x86\xab\x00\x00\x00\x00\x00\x00\x00\x00\x88\xf6\x88\xf9\x00\x00\x00\x00\x88\xf8\x00\x00\x89\x43\x88\xfb\x89\x42\x00\x00\x88\xfd\x88\xfc\x88\xfa\x00\x00\x88\xf7\x00\x00\x65\x4e\x65\x4d\x00\x00\x65\x4f\x65\x4c\x89\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xf4\x8a\xf7\x00\x00\x8a\xf5\x8a\xf9\x00\x00\x00\x00\x00\x00\x8a\xfa\x00\x00\x8a\xf2\x66\x44\x8a\xf3\x00\x00\x8a\xf1\x8a\xf8\x00\x00\x8a\xf0\x8a\xef\x66\x43\x66\x41\x65\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\xf6\x8c\xbd\x8c\xc3\x66\xd4\x8c\xbe\x00\x00\x8c\xc1\x8c\xc5\x66\xd5\x8c\xc0\x00\x00\x8c\xb8\x00\x00\x8c\xb7\x8c\xc4\x8c\xbb\x00\x00\x8c\xb9\x8c\xc2\x8c\xba\x66\xd3\x66\xd2\x00\x00\x8c\xb5\x8c\xb6\x8c\xbf\x00\x00\x00\x00\x00\x00\x8c\xbc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xfa\x8d\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x66\x42\x00\x00\x00\x00", /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xfb\x8e\x44\x8e\x42\x8d\xf9\x8e\x47\x00\x00\x8d\xf8\x00\x00\x67\x7a\x8e\x43\x00\x00\x00\x00\x00\x00\x8d\xfc\x67\x79\x8e\x46\x00\x00\x00\x00\x8e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x8e\xf8\x8e\xf7\x00\x00\x00\x00\x00\x00\x8f\x41\x00\x00\x8e\xfa\x8e\xfd\x67\xcb\x00\x00\x00\x00\x8e\xfb\x8e\xfc\x00\x00\x8e\xf6\x8e\xf9\x67\xca\x00\x00\x00\x00\x00\x00\x68\x4b\x8f\xe2\x8f\xdd\x8f\xe1\x00\x00\x8f\xe4\x8f\xe0\x00\x00\x8f\xdc\x00\x00\x68\x4d\x8f\xdf\x8f\xe3\x68\x4c\x8f\xda\x8e\x41\x8f\xde\x00\x00\x00\x00\x8f\xdb\x00\x00\x8f\xd8\x00\x00\x8f\xd9\x68\x4a\x90\x8b\x90\x8d\x90\x90\x90\x8c\x90\x91\x00\x00\x90\x8a\x00\x00\x90\x88\x00\x00\x68\x77\x90\x8e\x68\x79\x68\x78\x90\x89\x90\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x90\xe9\x68\x99\x90\xea\x00\x00\x90\xe8\x90\xe5\x00\x00\x00\x00\x90\xe7\x90\xe6\x91\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x91\x6d\x91\x6c\x00\x00\x00\x00\x91\x8b\x00\x00\x91\x8a\x91\x89\x91\x8c\x00\x00\x68\xbf\x68\xc0\x91\xba\x91\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9c80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x44\x79\x75\x7c\xf4\x00\x00\x5d\xec\x7c\xf2\x00\x00\x00\x00\x7c\xf3\x00\x00\x00\x00\x00\x00\x80\x6c\x80\x6d\x5f\xf8\x5f\xf6\x80\x6e\x5f\xf7\x83\xb3\x00\x00\x83\xb6\x83\xb0\x83\xb7\x83\xaf\x83\xb1\x00\x00\x83\xb2", /* 9d00 */ "\x83\xb5\x00\x00\x00\x00\x62\x4a\x83\xba\x83\xb9\x62\x48\x83\xb4\x83\xb8\x62\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\xb7\x00\x00\x63\xb9\x00\x00\x86\xb2\x63\xb5\x00\x00\x86\xaf\x86\xb5\x86\xb8\x00\x00\x63\xba\x00\x00\x86\xb4\x86\xb1\x86\xb9\x86\xb0\x00\x00\x86\xb6\x63\xb6\x00\x00\x86\xae\x63\xb7\x00\x00\x63\xb8\x86\xb3\x00\x00\x00\x00\x00\x00\x89\x56\x89\x49\x89\x4a\x89\x4d\x89\x4b\x00\x00\x89\x45\x00\x00\x00\x00\x89\x48\x89\x52\x89\x4c\x00\x00\x00\x00\x65\x50\x00\x00\x89\x54\x89\x51\x65\x51\x89\x53\x89\x46\x89\x4f\x89\x50\x00\x00\x89\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x41\x8b\x43\x8b\x46\x00\x00\x00\x00\x8a\xfd\x00\x00\x66\x45\x8b\x48\x8a\xfc\x8b\x49\x00\x00\x8b\x45\x8b\x47\x8b\x4b\x8b\x44\x8b\x4c\x8b\x42\x8a\xfb\x66\x46\x00\x00\x8b\x4a\x66\x47\x66\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x47\x8c\xdf\x8c\xd6\x66\xd9\x8c\xd2\x66\xda\x00\x00\x00\x00\x8c\xdb\x8c\xd5\x8c\xcb\x66\xd8\x8c\xd8\x8c\xd3\x8c\xd4\x00\x00\x8c\xc6\x8c\xcd\x8c\xdc\x00\x00\x8c\xd9\x00\x00\x8c\xd1\x00\x00\x8c\xdd", /* 9d80 */ "\x8c\xcc\x8c\xc7\x8c\xda\x00\x00\x8c\xc9\x8c\xd7\x8c\xce\x8c\xde\x8c\xca\x66\xd6\x8c\xc8\x8c\xcf\x8c\xd0\x00\x00\x00\x00\x00\x00\x8e\x4e\x00\x00\x8e\x4c\x00\x00\x8e\x51\x00\x00\x8e\x5d\x8e\x54\x8e\x4d\x8e\x49\x8e\x56\x8e\x4f\x8e\x52\x8e\x4b\x8e\x59\x8e\x48\x8e\x50\x8e\x55\x8e\x57\x8e\x5a\x8e\x4a\x00\x00\x8e\x5e\x8e\x5f\x8e\x58\x8e\x5c\x8e\x53\x00\x00\x8f\x51\x8f\x54\x00\x00\x67\xcc\x00\x00\x8f\x53\x8f\x58\x8f\x56\x67\xcd\x8f\x4d\x8f\x43\x8f\x42\x67\xcf\x8f\x4f\x8f\x50\x8f\x4c\x8f\x44\x00\x00\x8f\x49\x8e\x5b\x00\x00\x8f\x45\x67\xce\x8f\x4b\x00\x00\x8f\x4a\x00\x00\x8f\x46\x8f\x52\x00\x00\x8f\x47\x8f\xe9\x8f\x55\x8f\x57\x8f\x4e\x8f\x48\x8f\xea\x8f\xec\x8f\xe6\x68\x4e\x00\x00\x8f\xf3\x8f\xf1\x68\x4f\x8f\xf0\x8f\xef\x8f\xe8\x8f\xe5\x8f\xeb\x8f\xf4\x8f\xe7\x8f\xed\x00\x00\x90\x9a\x90\x9f\x90\x95\x90\x98\x68\x7a\x90\x9c\x00\x00\x90\xa3\x8f\xee\x00\x00\x90\x96\x90\xa0\x90\xa4\x90\x9b\x90\x94\x90\x9e\x00\x00\x90\x9d\x90\xa2\x90\xa1\x8f\xf2\x90\x99\x90\x93\x90\x97\x68\x9a\x68\x9b\x90\x92\x00\x00\x90\xf5\x90\xec\x90\xf4", /* 9e00 */ "\x90\xf1\x90\xf2\x90\xeb\x90\xee\x90\xf6\x90\xf0\x90\xef\x90\xed\x00\x00\x90\xf3\x00\x00\x91\x6e\x00\x00\x91\x6f\x00\x00\x91\x71\x91\x70\x91\x73\x91\x72\x91\x8e\x91\x8d\x91\xa7\x00\x00\x91\xa8\x00\x00\x91\xb5\x68\xc4\x68\xc8\x00\x00\x91\xbf\x68\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x45\x00\x00\x00\x00\x00\x00\x67\x7b\x8f\x59\x00\x00\x68\x9c\x68\x9d\x00\x00\x59\x46", /* 9e80 */ "\x7c\xf5\x00\x00\x5d\xed\x83\xbb\x00\x00\x00\x00\x86\xbb\x86\xbc\x86\xba\x89\x58\x89\x57\x65\x52\x8b\x4e\x89\x59\x8b\x4d\x00\x00\x00\x00\x8c\xe1\x66\xdb\x66\xdd\x8c\xe0\x00\x00\x00\x00\x66\xdc\x00\x00\x8e\x60\x8e\x62\x8e\x61\x8f\x5a\x67\xd0\x00\x00\x68\x7b\x90\xf7\x91\x74\x00\x00\x00\x00\x91\xc2\x59\x47\x00\x00\x80\x6f\x00\x00\x62\x4b\x00\x00\x00\x00\x00\x00\x86\xbe\x86\xbd\x00\x00\x89\x5a\x00\x00\x00\x00\x00\x00\x66\xde\x67\x7c\x8f\xf5\x91\xbb\x00\x00\x00\x00\x00\x00\x59\x48\x5f\xf9\x00\x00\x62\x4c\x00\x00\x8c\xe2\x00\x00\x90\xa5\x5b\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x89\x5b\x00\x00\x00\x00\x00\x00\x68\xb0\x5b\xa7\x62\x4d\x65\x53\x90\xa6\x5b\xa8\x00\x00\x83\xbc\x63\xbc\x86\xbf\x86\xc0\x00\x00\x63\xbb\x00\x00\x89\x5c\x65\x57\x65\x55\x65\x56\x65\x54\x8b\x4f\x66\x48\x00\x00\x00\x00\x00\x00\x8e\x64\x8e\x63\x8e\x66\x8e\x65\x67\x7d\x00\x00\x00\x00\x8f\x5b\x00\x00\x8f\x5d\x8f\x5c\x67\xd1\x8f\xf6\x00\x00\x90\xa7\x90\xa8\x68\x7c\x91\x75\x91\x8f\x68\xc1\x00\x00\x79\x76\x86\xc1\x89\x5d\x8c\xe3\x7c\xf6\x00\x00\x89\x5e", /* 9f00 */ "\x8b\x51\x8b\x50\x00\x00\x00\x00\x00\x00\x00\x00\x90\xa9\x68\x9e\x00\x00\x91\x76\x91\x90\x00\x00\x00\x00\x00\x00\x5d\xee\x83\xbd\x83\xbe\x00\x00\x86\xc2\x5d\xef\x00\x00\x66\x49\x8b\x52\x00\x00\x8f\x5f\x67\xd2\x8f\x60\x8f\x5e\x90\xaa\x00\x00\x90\xf8\x00\x00\x5d\xf0\x00\x00\x89\x61\x89\x60\x89\x5f\x8b\x53\x00\x00\x00\x00\x8b\x57\x8b\x56\x8b\x55\x8b\x54\x66\x4a\x8c\xe4\x8e\x68\x67\x7e\x8e\x67\x8f\x61\x8f\xf9\x8f\xf8\x68\x50\x8f\xf7\x90\xad\x90\xac\x90\xab\x00\x00\x00\x00\x5f\xfa\x00\x00\x86\xc3\x65\x58\x00\x00\x8c\xe5\x8c\xe6\x8f\xfa\x90\xae\x00\x00\x00\x00\x90\xf9\x91\x77\x91\xa9\x91\xc4\x5f\xfb\x65\x59\x8b\x58\x8c\xe7\x8f\x62\x90\xaf\x00\x00\x00\x00\x62\x4f\x00\x00\x89\x62\x8b\x59\x8c\xe8\x8c\xe9\x8c\xea\x8e\x6d\x00\x00\x8e\x69\x67\xd3\x8e\x6c\x8e\x6b\x67\x7f\x8e\x6a\x67\x82\x00\x00\x67\x81\x8f\x64\x8f\x63\x67\xd4\x67\xd5\x00\x00\x00\x00\x68\x52\x8f\xfb\x68\x51\x00\x00\x90\xb2\x90\xb3\x90\xb1\x90\xb0\x68\xa0\x00\x00\x90\xfa\x90\xfb\x90\xfc\x68\x9f\x91\x78\x91\x7b\x91\x7a\x91\x79\x00\x00\x00\x00\x91\xc3\x00\x00", /* 9f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xbd\x00\x00\x00\x00\x66\x51\x8e\x6e\x8f\x65\x00\x00\x68\x53\x8f\xfc\x00\x00\x00\x00\x91\xc5\x00\x00\x00\x00\x00\x00\x63\xbe\x00\x00\x00\x00\x00\x00\x89\x63\x00\x00\x8f\xfd\x00\x00\x91\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\xc2\x41\xc2\x42\xc2\x43\xc2\x44\xc2\x45\xc2\x46\xc2\x47\xc2\x48\xc2\x49\xc2\x4a\xc2\x4b\xc2\x4c\xc2\x4d\xc2\x4e\xc2\x4f\xc2\x50\xc2\x51\xc2\x52\xc2\x53\xc2\x54\xc2\x55\xc2\x56\xc2\x57\xc2\x58\xc2\x59\xc2\x5a\xc2\x5b\xc2\x5c\xc2\x5d\xc2\x5e\xc2\x5f\xc2\x60\xc2\x61\xc2\x62\xc2\x63\xc2\x64\xc2\x65\xc2\x66\xc2\x67\xc2\x68\xc2\x69\xc2\x6a\xc2\x6b\xc2\x6c\xc2\x6d\xc2\x6e\xc2\x6f\xc2\x70\xc2\x71\xc2\x72\xc2\x73\xc2\x74\xc2\x75\xc2\x76\xc2\x77\xc2\x78\xc2\x79\xc2\x7a\xc2\x7b\xc2\x7c\xc2\x7d\xc2\x7e\xc2\x7f\xc2\x81\xc2\x82\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\xc2\x88\xc2\x89\xc2\x8a\xc2\x8b\xc2\x8c\xc2\x8d\xc2\x8e\xc2\x8f\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\xc2\x95\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\xc2\xa3\xc2\xa4\xc2\xa5\xc2\xa6\xc2\xa7\xc2\xa8\xc2\xa9\xc2\xaa\xc2\xab\xc2\xac\xc2\xad\xc2\xae\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc2\xc0\xc2\xc1", /* e080 */ "\xc2\xc2\xc2\xc3\xc2\xc4\xc2\xc5\xc2\xc6\xc2\xc7\xc2\xc8\xc2\xc9\xc2\xca\xc2\xcb\xc2\xcc\xc2\xcd\xc2\xce\xc2\xcf\xc2\xd0\xc2\xd1\xc2\xd2\xc2\xd3\xc2\xd4\xc2\xd5\xc2\xd6\xc2\xd7\xc2\xd8\xc2\xd9\xc2\xda\xc2\xdb\xc2\xdc\xc2\xdd\xc2\xde\xc2\xdf\xc2\xe0\xc2\xe1\xc2\xe2\xc2\xe3\xc2\xe4\xc2\xe5\xc2\xe6\xc2\xe7\xc2\xe8\xc2\xe9\xc2\xea\xc2\xeb\xc2\xec\xc2\xed\xc2\xee\xc2\xef\xc2\xf0\xc2\xf1\xc2\xf2\xc2\xf3\xc2\xf4\xc2\xf5\xc2\xf6\xc2\xf7\xc2\xf8\xc2\xf9\xc2\xfa\xc2\xfb\xc2\xfc\xc2\xfd\xc3\x41\xc3\x42\xc3\x43\xc3\x44\xc3\x45\xc3\x46\xc3\x47\xc3\x48\xc3\x49\xc3\x4a\xc3\x4b\xc3\x4c\xc3\x4d\xc3\x4e\xc3\x4f\xc3\x50\xc3\x51\xc3\x52\xc3\x53\xc3\x54\xc3\x55\xc3\x56\xc3\x57\xc3\x58\xc3\x59\xc3\x5a\xc3\x5b\xc3\x5c\xc3\x5d\xc3\x5e\xc3\x5f\xc3\x60\xc3\x61\xc3\x62\xc3\x63\xc3\x64\xc3\x65\xc3\x66\xc3\x67\xc3\x68\xc3\x69\xc3\x6a\xc3\x6b\xc3\x6c\xc3\x6d\xc3\x6e\xc3\x6f\xc3\x70\xc3\x71\xc3\x72\xc3\x73\xc3\x74\xc3\x75\xc3\x76\xc3\x77\xc3\x78\xc3\x79\xc3\x7a\xc3\x7b\xc3\x7c\xc3\x7d\xc3\x7e\xc3\x7f\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85", /* e100 */ "\xc3\x86\xc3\x87\xc3\x88\xc3\x89\xc3\x8a\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\xc3\x90\xc3\x91\xc3\x92\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\xc3\x9d\xc3\x9e\xc3\x9f\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xb7\xc3\xb8\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf\xc3\xc0\xc3\xc1\xc3\xc2\xc3\xc3\xc3\xc4\xc3\xc5\xc3\xc6\xc3\xc7\xc3\xc8\xc3\xc9\xc3\xca\xc3\xcb\xc3\xcc\xc3\xcd\xc3\xce\xc3\xcf\xc3\xd0\xc3\xd1\xc3\xd2\xc3\xd3\xc3\xd4\xc3\xd5\xc3\xd6\xc3\xd7\xc3\xd8\xc3\xd9\xc3\xda\xc3\xdb\xc3\xdc\xc3\xdd\xc3\xde\xc3\xdf\xc3\xe0\xc3\xe1\xc3\xe2\xc3\xe3\xc3\xe4\xc3\xe5\xc3\xe6\xc3\xe7\xc3\xe8\xc3\xe9\xc3\xea\xc3\xeb\xc3\xec\xc3\xed\xc3\xee\xc3\xef\xc3\xf0\xc3\xf1\xc3\xf2\xc3\xf3\xc3\xf4\xc3\xf5\xc3\xf6\xc3\xf7\xc3\xf8\xc3\xf9\xc3\xfa\xc3\xfb\xc3\xfc\xc3\xfd\xc4\x41\xc4\x42\xc4\x43\xc4\x44\xc4\x45\xc4\x46\xc4\x47\xc4\x48", /* e180 */ "\xc4\x49\xc4\x4a\xc4\x4b\xc4\x4c\xc4\x4d\xc4\x4e\xc4\x4f\xc4\x50\xc4\x51\xc4\x52\xc4\x53\xc4\x54\xc4\x55\xc4\x56\xc4\x57\xc4\x58\xc4\x59\xc4\x5a\xc4\x5b\xc4\x5c\xc4\x5d\xc4\x5e\xc4\x5f\xc4\x60\xc4\x61\xc4\x62\xc4\x63\xc4\x64\xc4\x65\xc4\x66\xc4\x67\xc4\x68\xc4\x69\xc4\x6a\xc4\x6b\xc4\x6c\xc4\x6d\xc4\x6e\xc4\x6f\xc4\x70\xc4\x71\xc4\x72\xc4\x73\xc4\x74\xc4\x75\xc4\x76\xc4\x77\xc4\x78\xc4\x79\xc4\x7a\xc4\x7b\xc4\x7c\xc4\x7d\xc4\x7e\xc4\x7f\xc4\x81\xc4\x82\xc4\x83\xc4\x84\xc4\x85\xc4\x86\xc4\x87\xc4\x88\xc4\x89\xc4\x8a\xc4\x8b\xc4\x8c\xc4\x8d\xc4\x8e\xc4\x8f\xc4\x90\xc4\x91\xc4\x92\xc4\x93\xc4\x94\xc4\x95\xc4\x96\xc4\x97\xc4\x98\xc4\x99\xc4\x9a\xc4\x9b\xc4\x9c\xc4\x9d\xc4\x9e\xc4\x9f\xc4\xa0\xc4\xa1\xc4\xa2\xc4\xa3\xc4\xa4\xc4\xa5\xc4\xa6\xc4\xa7\xc4\xa8\xc4\xa9\xc4\xaa\xc4\xab\xc4\xac\xc4\xad\xc4\xae\xc4\xaf\xc4\xb0\xc4\xb1\xc4\xb2\xc4\xb3\xc4\xb4\xc4\xb5\xc4\xb6\xc4\xb7\xc4\xb8\xc4\xb9\xc4\xba\xc4\xbb\xc4\xbc\xc4\xbd\xc4\xbe\xc4\xbf\xc4\xc0\xc4\xc1\xc4\xc2\xc4\xc3\xc4\xc4\xc4\xc5\xc4\xc6\xc4\xc7\xc4\xc8\xc4\xc9", /* e200 */ "\xc4\xca\xc4\xcb\xc4\xcc\xc4\xcd\xc4\xce\xc4\xcf\xc4\xd0\xc4\xd1\xc4\xd2\xc4\xd3\xc4\xd4\xc4\xd5\xc4\xd6\xc4\xd7\xc4\xd8\xc4\xd9\xc4\xda\xc4\xdb\xc4\xdc\xc4\xdd\xc4\xde\xc4\xdf\xc4\xe0\xc4\xe1\xc4\xe2\xc4\xe3\xc4\xe4\xc4\xe5\xc4\xe6\xc4\xe7\xc4\xe8\xc4\xe9\xc4\xea\xc4\xeb\xc4\xec\xc4\xed\xc4\xee\xc4\xef\xc4\xf0\xc4\xf1\xc4\xf2\xc4\xf3\xc4\xf4\xc4\xf5\xc4\xf6\xc4\xf7\xc4\xf8\xc4\xf9\xc4\xfa\xc4\xfb\xc4\xfc\xc4\xfd\xc5\x41\xc5\x42\xc5\x43\xc5\x44\xc5\x45\xc5\x46\xc5\x47\xc5\x48\xc5\x49\xc5\x4a\xc5\x4b\xc5\x4c\xc5\x4d\xc5\x4e\xc5\x4f\xc5\x50\xc5\x51\xc5\x52\xc5\x53\xc5\x54\xc5\x55\xc5\x56\xc5\x57\xc5\x58\xc5\x59\xc5\x5a\xc5\x5b\xc5\x5c\xc5\x5d\xc5\x5e\xc5\x5f\xc5\x60\xc5\x61\xc5\x62\xc5\x63\xc5\x64\xc5\x65\xc5\x66\xc5\x67\xc5\x68\xc5\x69\xc5\x6a\xc5\x6b\xc5\x6c\xc5\x6d\xc5\x6e\xc5\x6f\xc5\x70\xc5\x71\xc5\x72\xc5\x73\xc5\x74\xc5\x75\xc5\x76\xc5\x77\xc5\x78\xc5\x79\xc5\x7a\xc5\x7b\xc5\x7c\xc5\x7d\xc5\x7e\xc5\x7f\xc5\x81\xc5\x82\xc5\x83\xc5\x84\xc5\x85\xc5\x86\xc5\x87\xc5\x88\xc5\x89\xc5\x8a\xc5\x8b\xc5\x8c\xc5\x8d", /* e280 */ "\xc5\x8e\xc5\x8f\xc5\x90\xc5\x91\xc5\x92\xc5\x93\xc5\x94\xc5\x95\xc5\x96\xc5\x97\xc5\x98\xc5\x99\xc5\x9a\xc5\x9b\xc5\x9c\xc5\x9d\xc5\x9e\xc5\x9f\xc5\xa0\xc5\xa1\xc5\xa2\xc5\xa3\xc5\xa4\xc5\xa5\xc5\xa6\xc5\xa7\xc5\xa8\xc5\xa9\xc5\xaa\xc5\xab\xc5\xac\xc5\xad\xc5\xae\xc5\xaf\xc5\xb0\xc5\xb1\xc5\xb2\xc5\xb3\xc5\xb4\xc5\xb5\xc5\xb6\xc5\xb7\xc5\xb8\xc5\xb9\xc5\xba\xc5\xbb\xc5\xbc\xc5\xbd\xc5\xbe\xc5\xbf\xc5\xc0\xc5\xc1\xc5\xc2\xc5\xc3\xc5\xc4\xc5\xc5\xc5\xc6\xc5\xc7\xc5\xc8\xc5\xc9\xc5\xca\xc5\xcb\xc5\xcc\xc5\xcd\xc5\xce\xc5\xcf\xc5\xd0\xc5\xd1\xc5\xd2\xc5\xd3\xc5\xd4\xc5\xd5\xc5\xd6\xc5\xd7\xc5\xd8\xc5\xd9\xc5\xda\xc5\xdb\xc5\xdc\xc5\xdd\xc5\xde\xc5\xdf\xc5\xe0\xc5\xe1\xc5\xe2\xc5\xe3\xc5\xe4\xc5\xe5\xc5\xe6\xc5\xe7\xc5\xe8\xc5\xe9\xc5\xea\xc5\xeb\xc5\xec\xc5\xed\xc5\xee\xc5\xef\xc5\xf0\xc5\xf1\xc5\xf2\xc5\xf3\xc5\xf4\xc5\xf5\xc5\xf6\xc5\xf7\xc5\xf8\xc5\xf9\xc5\xfa\xc5\xfb\xc5\xfc\xc5\xfd\xc6\x41\xc6\x42\xc6\x43\xc6\x44\xc6\x45\xc6\x46\xc6\x47\xc6\x48\xc6\x49\xc6\x4a\xc6\x4b\xc6\x4c\xc6\x4d\xc6\x4e\xc6\x4f\xc6\x50", /* e300 */ "\xc6\x51\xc6\x52\xc6\x53\xc6\x54\xc6\x55\xc6\x56\xc6\x57\xc6\x58\xc6\x59\xc6\x5a\xc6\x5b\xc6\x5c\xc6\x5d\xc6\x5e\xc6\x5f\xc6\x60\xc6\x61\xc6\x62\xc6\x63\xc6\x64\xc6\x65\xc6\x66\xc6\x67\xc6\x68\xc6\x69\xc6\x6a\xc6\x6b\xc6\x6c\xc6\x6d\xc6\x6e\xc6\x6f\xc6\x70\xc6\x71\xc6\x72\xc6\x73\xc6\x74\xc6\x75\xc6\x76\xc6\x77\xc6\x78\xc6\x79\xc6\x7a\xc6\x7b\xc6\x7c\xc6\x7d\xc6\x7e\xc6\x7f\xc6\x81\xc6\x82\xc6\x83\xc6\x84\xc6\x85\xc6\x86\xc6\x87\xc6\x88\xc6\x89\xc6\x8a\xc6\x8b\xc6\x8c\xc6\x8d\xc6\x8e\xc6\x8f\xc6\x90\xc6\x91\xc6\x92\xc6\x93\xc6\x94\xc6\x95\xc6\x96\xc6\x97\xc6\x98\xc6\x99\xc6\x9a\xc6\x9b\xc6\x9c\xc6\x9d\xc6\x9e\xc6\x9f\xc6\xa0\xc6\xa1\xc6\xa2\xc6\xa3\xc6\xa4\xc6\xa5\xc6\xa6\xc6\xa7\xc6\xa8\xc6\xa9\xc6\xaa\xc6\xab\xc6\xac\xc6\xad\xc6\xae\xc6\xaf\xc6\xb0\xc6\xb1\xc6\xb2\xc6\xb3\xc6\xb4\xc6\xb5\xc6\xb6\xc6\xb7\xc6\xb8\xc6\xb9\xc6\xba\xc6\xbb\xc6\xbc\xc6\xbd\xc6\xbe\xc6\xbf\xc6\xc0\xc6\xc1\xc6\xc2\xc6\xc3\xc6\xc4\xc6\xc5\xc6\xc6\xc6\xc7\xc6\xc8\xc6\xc9\xc6\xca\xc6\xcb\xc6\xcc\xc6\xcd\xc6\xce\xc6\xcf\xc6\xd0\xc6\xd1", /* e380 */ "\xc6\xd2\xc6\xd3\xc6\xd4\xc6\xd5\xc6\xd6\xc6\xd7\xc6\xd8\xc6\xd9\xc6\xda\xc6\xdb\xc6\xdc\xc6\xdd\xc6\xde\xc6\xdf\xc6\xe0\xc6\xe1\xc6\xe2\xc6\xe3\xc6\xe4\xc6\xe5\xc6\xe6\xc6\xe7\xc6\xe8\xc6\xe9\xc6\xea\xc6\xeb\xc6\xec\xc6\xed\xc6\xee\xc6\xef\xc6\xf0\xc6\xf1\xc6\xf2\xc6\xf3\xc6\xf4\xc6\xf5\xc6\xf6\xc6\xf7\xc6\xf8\xc6\xf9\xc6\xfa\xc6\xfb\xc6\xfc\xc6\xfd\xc7\x41\xc7\x42\xc7\x43\xc7\x44\xc7\x45\xc7\x46\xc7\x47\xc7\x48\xc7\x49\xc7\x4a\xc7\x4b\xc7\x4c\xc7\x4d\xc7\x4e\xc7\x4f\xc7\x50\xc7\x51\xc7\x52\xc7\x53\xc7\x54\xc7\x55\xc7\x56\xc7\x57\xc7\x58\xc7\x59\xc7\x5a\xc7\x5b\xc7\x5c\xc7\x5d\xc7\x5e\xc7\x5f\xc7\x60\xc7\x61\xc7\x62\xc7\x63\xc7\x64\xc7\x65\xc7\x66\xc7\x67\xc7\x68\xc7\x69\xc7\x6a\xc7\x6b\xc7\x6c\xc7\x6d\xc7\x6e\xc7\x6f\xc7\x70\xc7\x71\xc7\x72\xc7\x73\xc7\x74\xc7\x75\xc7\x76\xc7\x77\xc7\x78\xc7\x79\xc7\x7a\xc7\x7b\xc7\x7c\xc7\x7d\xc7\x7e\xc7\x7f\xc7\x81\xc7\x82\xc7\x83\xc7\x84\xc7\x85\xc7\x86\xc7\x87\xc7\x88\xc7\x89\xc7\x8a\xc7\x8b\xc7\x8c\xc7\x8d\xc7\x8e\xc7\x8f\xc7\x90\xc7\x91\xc7\x92\xc7\x93\xc7\x94\xc7\x95", /* e400 */ "\xc7\x96\xc7\x97\xc7\x98\xc7\x99\xc7\x9a\xc7\x9b\xc7\x9c\xc7\x9d\xc7\x9e\xc7\x9f\xc7\xa0\xc7\xa1\xc7\xa2\xc7\xa3\xc7\xa4\xc7\xa5\xc7\xa6\xc7\xa7\xc7\xa8\xc7\xa9\xc7\xaa\xc7\xab\xc7\xac\xc7\xad\xc7\xae\xc7\xaf\xc7\xb0\xc7\xb1\xc7\xb2\xc7\xb3\xc7\xb4\xc7\xb5\xc7\xb6\xc7\xb7\xc7\xb8\xc7\xb9\xc7\xba\xc7\xbb\xc7\xbc\xc7\xbd\xc7\xbe\xc7\xbf\xc7\xc0\xc7\xc1\xc7\xc2\xc7\xc3\xc7\xc4\xc7\xc5\xc7\xc6\xc7\xc7\xc7\xc8\xc7\xc9\xc7\xca\xc7\xcb\xc7\xcc\xc7\xcd\xc7\xce\xc7\xcf\xc7\xd0\xc7\xd1\xc7\xd2\xc7\xd3\xc7\xd4\xc7\xd5\xc7\xd6\xc7\xd7\xc7\xd8\xc7\xd9\xc7\xda\xc7\xdb\xc7\xdc\xc7\xdd\xc7\xde\xc7\xdf\xc7\xe0\xc7\xe1\xc7\xe2\xc7\xe3\xc7\xe4\xc7\xe5\xc7\xe6\xc7\xe7\xc7\xe8\xc7\xe9\xc7\xea\xc7\xeb\xc7\xec\xc7\xed\xc7\xee\xc7\xef\xc7\xf0\xc7\xf1\xc7\xf2\xc7\xf3\xc7\xf4\xc7\xf5\xc7\xf6\xc7\xf7\xc7\xf8\xc7\xf9\xc7\xfa\xc7\xfb\xc7\xfc\xc7\xfd\xc8\x41\xc8\x42\xc8\x43\xc8\x44\xc8\x45\xc8\x46\xc8\x47\xc8\x48\xc8\x49\xc8\x4a\xc8\x4b\xc8\x4c\xc8\x4d\xc8\x4e\xc8\x4f\xc8\x50\xc8\x51\xc8\x52\xc8\x53\xc8\x54\xc8\x55\xc8\x56\xc8\x57\xc8\x58", /* e480 */ "\xc8\x59\xc8\x5a\xc8\x5b\xc8\x5c\xc8\x5d\xc8\x5e\xc8\x5f\xc8\x60\xc8\x61\xc8\x62\xc8\x63\xc8\x64\xc8\x65\xc8\x66\xc8\x67\xc8\x68\xc8\x69\xc8\x6a\xc8\x6b\xc8\x6c\xc8\x6d\xc8\x6e\xc8\x6f\xc8\x70\xc8\x71\xc8\x72\xc8\x73\xc8\x74\xc8\x75\xc8\x76\xc8\x77\xc8\x78\xc8\x79\xc8\x7a\xc8\x7b\xc8\x7c\xc8\x7d\xc8\x7e\xc8\x7f\xc8\x81\xc8\x82\xc8\x83\xc8\x84\xc8\x85\xc8\x86\xc8\x87\xc8\x88\xc8\x89\xc8\x8a\xc8\x8b\xc8\x8c\xc8\x8d\xc8\x8e\xc8\x8f\xc8\x90\xc8\x91\xc8\x92\xc8\x93\xc8\x94\xc8\x95\xc8\x96\xc8\x97\xc8\x98\xc8\x99\xc8\x9a\xc8\x9b\xc8\x9c\xc8\x9d\xc8\x9e\xc8\x9f\xc8\xa0\xc8\xa1\xc8\xa2\xc8\xa3\xc8\xa4\xc8\xa5\xc8\xa6\xc8\xa7\xc8\xa8\xc8\xa9\xc8\xaa\xc8\xab\xc8\xac\xc8\xad\xc8\xae\xc8\xaf\xc8\xb0\xc8\xb1\xc8\xb2\xc8\xb3\xc8\xb4\xc8\xb5\xc8\xb6\xc8\xb7\xc8\xb8\xc8\xb9\xc8\xba\xc8\xbb\xc8\xbc\xc8\xbd\xc8\xbe\xc8\xbf\xc8\xc0\xc8\xc1\xc8\xc2\xc8\xc3\xc8\xc4\xc8\xc5\xc8\xc6\xc8\xc7\xc8\xc8\xc8\xc9\xc8\xca\xc8\xcb\xc8\xcc\xc8\xcd\xc8\xce\xc8\xcf\xc8\xd0\xc8\xd1\xc8\xd2\xc8\xd3\xc8\xd4\xc8\xd5\xc8\xd6\xc8\xd7\xc8\xd8\xc8\xd9", /* e500 */ "\xc8\xda\xc8\xdb\xc8\xdc\xc8\xdd\xc8\xde\xc8\xdf\xc8\xe0\xc8\xe1\xc8\xe2\xc8\xe3\xc8\xe4\xc8\xe5\xc8\xe6\xc8\xe7\xc8\xe8\xc8\xe9\xc8\xea\xc8\xeb\xc8\xec\xc8\xed\xc8\xee\xc8\xef\xc8\xf0\xc8\xf1\xc8\xf2\xc8\xf3\xc8\xf4\xc8\xf5\xc8\xf6\xc8\xf7\xc8\xf8\xc8\xf9\xc8\xfa\xc8\xfb\xc8\xfc\xc8\xfd\xc9\x41\xc9\x42\xc9\x43\xc9\x44\xc9\x45\xc9\x46\xc9\x47\xc9\x48\xc9\x49\xc9\x4a\xc9\x4b\xc9\x4c\xc9\x4d\xc9\x4e\xc9\x4f\xc9\x50\xc9\x51\xc9\x52\xc9\x53\xc9\x54\xc9\x55\xc9\x56\xc9\x57\xc9\x58\xc9\x59\xc9\x5a\xc9\x5b\xc9\x5c\xc9\x5d\xc9\x5e\xc9\x5f\xc9\x60\xc9\x61\xc9\x62\xc9\x63\xc9\x64\xc9\x65\xc9\x66\xc9\x67\xc9\x68\xc9\x69\xc9\x6a\xc9\x6b\xc9\x6c\xc9\x6d\xc9\x6e\xc9\x6f\xc9\x70\xc9\x71\xc9\x72\xc9\x73\xc9\x74\xc9\x75\xc9\x76\xc9\x77\xc9\x78\xc9\x79\xc9\x7a\xc9\x7b\xc9\x7c\xc9\x7d\xc9\x7e\xc9\x7f\xc9\x81\xc9\x82\xc9\x83\xc9\x84\xc9\x85\xc9\x86\xc9\x87\xc9\x88\xc9\x89\xc9\x8a\xc9\x8b\xc9\x8c\xc9\x8d\xc9\x8e\xc9\x8f\xc9\x90\xc9\x91\xc9\x92\xc9\x93\xc9\x94\xc9\x95\xc9\x96\xc9\x97\xc9\x98\xc9\x99\xc9\x9a\xc9\x9b\xc9\x9c\xc9\x9d", /* e580 */ "\xc9\x9e\xc9\x9f\xc9\xa0\xc9\xa1\xc9\xa2\xc9\xa3\xc9\xa4\xc9\xa5\xc9\xa6\xc9\xa7\xc9\xa8\xc9\xa9\xc9\xaa\xc9\xab\xc9\xac\xc9\xad\xc9\xae\xc9\xaf\xc9\xb0\xc9\xb1\xc9\xb2\xc9\xb3\xc9\xb4\xc9\xb5\xc9\xb6\xc9\xb7\xc9\xb8\xc9\xb9\xc9\xba\xc9\xbb\xc9\xbc\xc9\xbd\xc9\xbe\xc9\xbf\xc9\xc0\xc9\xc1\xc9\xc2\xc9\xc3\xc9\xc4\xc9\xc5\xc9\xc6\xc9\xc7\xc9\xc8\xc9\xc9\xc9\xca\xc9\xcb\xc9\xcc\xc9\xcd\xc9\xce\xc9\xcf\xc9\xd0\xc9\xd1\xc9\xd2\xc9\xd3\xc9\xd4\xc9\xd5\xc9\xd6\xc9\xd7\xc9\xd8\xc9\xd9\xc9\xda\xc9\xdb\xc9\xdc\xc9\xdd\xc9\xde\xc9\xdf\xc9\xe0\xc9\xe1\xc9\xe2\xc9\xe3\xc9\xe4\xc9\xe5\xc9\xe6\xc9\xe7\xc9\xe8\xc9\xe9\xc9\xea\xc9\xeb\xc9\xec\xc9\xed\xc9\xee\xc9\xef\xc9\xf0\xc9\xf1\xc9\xf2\xc9\xf3\xc9\xf4\xc9\xf5\xc9\xf6\xc9\xf7\xc9\xf8\xc9\xf9\xc9\xfa\xc9\xfb\xc9\xfc\xc9\xfd\xca\x41\xca\x42\xca\x43\xca\x44\xca\x45\xca\x46\xca\x47\xca\x48\xca\x49\xca\x4a\xca\x4b\xca\x4c\xca\x4d\xca\x4e\xca\x4f\xca\x50\xca\x51\xca\x52\xca\x53\xca\x54\xca\x55\xca\x56\xca\x57\xca\x58\xca\x59\xca\x5a\xca\x5b\xca\x5c\xca\x5d\xca\x5e\xca\x5f\xca\x60", /* e600 */ "\xca\x61\xca\x62\xca\x63\xca\x64\xca\x65\xca\x66\xca\x67\xca\x68\xca\x69\xca\x6a\xca\x6b\xca\x6c\xca\x6d\xca\x6e\xca\x6f\xca\x70\xca\x71\xca\x72\xca\x73\xca\x74\xca\x75\xca\x76\xca\x77\xca\x78\xca\x79\xca\x7a\xca\x7b\xca\x7c\xca\x7d\xca\x7e\xca\x7f\xca\x81\xca\x82\xca\x83\xca\x84\xca\x85\xca\x86\xca\x87\xca\x88\xca\x89\xca\x8a\xca\x8b\xca\x8c\xca\x8d\xca\x8e\xca\x8f\xca\x90\xca\x91\xca\x92\xca\x93\xca\x94\xca\x95\xca\x96\xca\x97\xca\x98\xca\x99\xca\x9a\xca\x9b\xca\x9c\xca\x9d\xca\x9e\xca\x9f\xca\xa0\xca\xa1\xca\xa2\xca\xa3\xca\xa4\xca\xa5\xca\xa6\xca\xa7\xca\xa8\xca\xa9\xca\xaa\xca\xab\xca\xac\xca\xad\xca\xae\xca\xaf\xca\xb0\xca\xb1\xca\xb2\xca\xb3\xca\xb4\xca\xb5\xca\xb6\xca\xb7\xca\xb8\xca\xb9\xca\xba\xca\xbb\xca\xbc\xca\xbd\xca\xbe\xca\xbf\xca\xc0\xca\xc1\xca\xc2\xca\xc3\xca\xc4\xca\xc5\xca\xc6\xca\xc7\xca\xc8\xca\xc9\xca\xca\xca\xcb\xca\xcc\xca\xcd\xca\xce\xca\xcf\xca\xd0\xca\xd1\xca\xd2\xca\xd3\xca\xd4\xca\xd5\xca\xd6\xca\xd7\xca\xd8\xca\xd9\xca\xda\xca\xdb\xca\xdc\xca\xdd\xca\xde\xca\xdf\xca\xe0\xca\xe1", /* e680 */ "\xca\xe2\xca\xe3\xca\xe4\xca\xe5\xca\xe6\xca\xe7\xca\xe8\xca\xe9\xca\xea\xca\xeb\xca\xec\xca\xed\xca\xee\xca\xef\xca\xf0\xca\xf1\xca\xf2\xca\xf3\xca\xf4\xca\xf5\xca\xf6\xca\xf7\xca\xf8\xca\xf9\xca\xfa\xca\xfb\xca\xfc\xca\xfd\xcb\x41\xcb\x42\xcb\x43\xcb\x44\xcb\x45\xcb\x46\xcb\x47\xcb\x48\xcb\x49\xcb\x4a\xcb\x4b\xcb\x4c\xcb\x4d\xcb\x4e\xcb\x4f\xcb\x50\xcb\x51\xcb\x52\xcb\x53\xcb\x54\xcb\x55\xcb\x56\xcb\x57\xcb\x58\xcb\x59\xcb\x5a\xcb\x5b\xcb\x5c\xcb\x5d\xcb\x5e\xcb\x5f\xcb\x60\xcb\x61\xcb\x62\xcb\x63\xcb\x64\xcb\x65\xcb\x66\xcb\x67\xcb\x68\xcb\x69\xcb\x6a\xcb\x6b\xcb\x6c\xcb\x6d\xcb\x6e\xcb\x6f\xcb\x70\xcb\x71\xcb\x72\xcb\x73\xcb\x74\xcb\x75\xcb\x76\xcb\x77\xcb\x78\xcb\x79\xcb\x7a\xcb\x7b\xcb\x7c\xcb\x7d\xcb\x7e\xcb\x7f\xcb\x81\xcb\x82\xcb\x83\xcb\x84\xcb\x85\xcb\x86\xcb\x87\xcb\x88\xcb\x89\xcb\x8a\xcb\x8b\xcb\x8c\xcb\x8d\xcb\x8e\xcb\x8f\xcb\x90\xcb\x91\xcb\x92\xcb\x93\xcb\x94\xcb\x95\xcb\x96\xcb\x97\xcb\x98\xcb\x99\xcb\x9a\xcb\x9b\xcb\x9c\xcb\x9d\xcb\x9e\xcb\x9f\xcb\xa0\xcb\xa1\xcb\xa2\xcb\xa3\xcb\xa4\xcb\xa5", /* e700 */ "\xcb\xa6\xcb\xa7\xcb\xa8\xcb\xa9\xcb\xaa\xcb\xab\xcb\xac\xcb\xad\xcb\xae\xcb\xaf\xcb\xb0\xcb\xb1\xcb\xb2\xcb\xb3\xcb\xb4\xcb\xb5\xcb\xb6\xcb\xb7\xcb\xb8\xcb\xb9\xcb\xba\xcb\xbb\xcb\xbc\xcb\xbd\xcb\xbe\xcb\xbf\xcb\xc0\xcb\xc1\xcb\xc2\xcb\xc3\xcb\xc4\xcb\xc5\xcb\xc6\xcb\xc7\xcb\xc8\xcb\xc9\xcb\xca\xcb\xcb\xcb\xcc\xcb\xcd\xcb\xce\xcb\xcf\xcb\xd0\xcb\xd1\xcb\xd2\xcb\xd3\xcb\xd4\xcb\xd5\xcb\xd6\xcb\xd7\xcb\xd8\xcb\xd9\xcb\xda\xcb\xdb\xcb\xdc\xcb\xdd\xcb\xde\xcb\xdf\xcb\xe0\xcb\xe1\xcb\xe2\xcb\xe3\xcb\xe4\xcb\xe5\xcb\xe6\xcb\xe7\xcb\xe8\xcb\xe9\xcb\xea\xcb\xeb\xcb\xec\xcb\xed\xcb\xee\xcb\xef\xcb\xf0\xcb\xf1\xcb\xf2\xcb\xf3\xcb\xf4\xcb\xf5\xcb\xf6\xcb\xf7\xcb\xf8\xcb\xf9\xcb\xfa\xcb\xfb\xcb\xfc\xcb\xfd\xcc\x41\xcc\x42\xcc\x43\xcc\x44\xcc\x45\xcc\x46\xcc\x47\xcc\x48\xcc\x49\xcc\x4a\xcc\x4b\xcc\x4c\xcc\x4d\xcc\x4e\xcc\x4f\xcc\x50\xcc\x51\xcc\x52\xcc\x53\xcc\x54\xcc\x55\xcc\x56\xcc\x57\xcc\x58\xcc\x59\xcc\x5a\xcc\x5b\xcc\x5c\xcc\x5d\xcc\x5e\xcc\x5f\xcc\x60\xcc\x61\xcc\x62\xcc\x63\xcc\x64\xcc\x65\xcc\x66\xcc\x67\xcc\x68", /* e780 */ "\xcc\x69\xcc\x6a\xcc\x6b\xcc\x6c\xcc\x6d\xcc\x6e\xcc\x6f\xcc\x70\xcc\x71\xcc\x72\xcc\x73\xcc\x74\xcc\x75\xcc\x76\xcc\x77\xcc\x78\xcc\x79\xcc\x7a\xcc\x7b\xcc\x7c\xcc\x7d\xcc\x7e\xcc\x7f\xcc\x81\xcc\x82\xcc\x83\xcc\x84\xcc\x85\xcc\x86\xcc\x87\xcc\x88\xcc\x89\xcc\x8a\xcc\x8b\xcc\x8c\xcc\x8d\xcc\x8e\xcc\x8f\xcc\x90\xcc\x91\xcc\x92\xcc\x93\xcc\x94\xcc\x95\xcc\x96\xcc\x97\xcc\x98\xcc\x99\xcc\x9a\xcc\x9b\xcc\x9c\xcc\x9d\xcc\x9e\xcc\x9f\xcc\xa0\xcc\xa1\xcc\xa2\xcc\xa3\xcc\xa4\xcc\xa5\xcc\xa6\xcc\xa7\xcc\xa8\xcc\xa9\xcc\xaa\xcc\xab\xcc\xac\xcc\xad\xcc\xae\xcc\xaf\xcc\xb0\xcc\xb1\xcc\xb2\xcc\xb3\xcc\xb4\xcc\xb5\xcc\xb6\xcc\xb7\xcc\xb8\xcc\xb9\xcc\xba\xcc\xbb\xcc\xbc\xcc\xbd\xcc\xbe\xcc\xbf\xcc\xc0\xcc\xc1\xcc\xc2\xcc\xc3\xcc\xc4\xcc\xc5\xcc\xc6\xcc\xc7\xcc\xc8\xcc\xc9\xcc\xca\xcc\xcb\xcc\xcc\xcc\xcd\xcc\xce\xcc\xcf\xcc\xd0\xcc\xd1\xcc\xd2\xcc\xd3\xcc\xd4\xcc\xd5\xcc\xd6\xcc\xd7\xcc\xd8\xcc\xd9\xcc\xda\xcc\xdb\xcc\xdc\xcc\xdd\xcc\xde\xcc\xdf\xcc\xe0\xcc\xe1\xcc\xe2\xcc\xe3\xcc\xe4\xcc\xe5\xcc\xe6\xcc\xe7\xcc\xe8\xcc\xe9", /* e800 */ "\xcc\xea\xcc\xeb\xcc\xec\xcc\xed\xcc\xee\xcc\xef\xcc\xf0\xcc\xf1\xcc\xf2\xcc\xf3\xcc\xf4\xcc\xf5\xcc\xf6\xcc\xf7\xcc\xf8\xcc\xf9\xcc\xfa\xcc\xfb\xcc\xfc\xcc\xfd\xcd\x41\xcd\x42\xcd\x43\xcd\x44\xcd\x45\xcd\x46\xcd\x47\xcd\x48\xcd\x49\xcd\x4a\xcd\x4b\xcd\x4c\xcd\x4d\xcd\x4e\xcd\x4f\xcd\x50\xcd\x51\xcd\x52\xcd\x53\xcd\x54\xcd\x55\xcd\x56\xcd\x57\xcd\x58\xcd\x59\xcd\x5a\xcd\x5b\xcd\x5c\xcd\x5d\xcd\x5e\xcd\x5f\xcd\x60\xcd\x61\xcd\x62\xcd\x63\xcd\x64\xcd\x65\xcd\x66\xcd\x67\xcd\x68\xcd\x69\xcd\x6a\xcd\x6b\xcd\x6c\xcd\x6d\xcd\x6e\xcd\x6f\xcd\x70\xcd\x71\xcd\x72\xcd\x73\xcd\x74\xcd\x75\xcd\x76\xcd\x77\xcd\x78\xcd\x79\xcd\x7a\xcd\x7b\xcd\x7c\xcd\x7d\xcd\x7e\xcd\x7f\xcd\x81\xcd\x82\xcd\x83\xcd\x84\xcd\x85\xcd\x86\xcd\x87\xcd\x88\xcd\x89\xcd\x8a\xcd\x8b\xcd\x8c\xcd\x8d\xcd\x8e\xcd\x8f\xcd\x90\xcd\x91\xcd\x92\xcd\x93\xcd\x94\xcd\x95\xcd\x96\xcd\x97\xcd\x98\xcd\x99\xcd\x9a\xcd\x9b\xcd\x9c\xcd\x9d\xcd\x9e\xcd\x9f\xcd\xa0\xcd\xa1\xcd\xa2\xcd\xa3\xcd\xa4\xcd\xa5\xcd\xa6\xcd\xa7\xcd\xa8\xcd\xa9\xcd\xaa\xcd\xab\xcd\xac\xcd\xad", /* e880 */ "\xcd\xae\xcd\xaf\xcd\xb0\xcd\xb1\xcd\xb2\xcd\xb3\xcd\xb4\xcd\xb5\xcd\xb6\xcd\xb7\xcd\xb8\xcd\xb9\xcd\xba\xcd\xbb\xcd\xbc\xcd\xbd\xcd\xbe\xcd\xbf\xcd\xc0\xcd\xc1\xcd\xc2\xcd\xc3\xcd\xc4\xcd\xc5\xcd\xc6\xcd\xc7\xcd\xc8\xcd\xc9\xcd\xca\xcd\xcb\xcd\xcc\xcd\xcd\xcd\xce\xcd\xcf\xcd\xd0\xcd\xd1\xcd\xd2\xcd\xd3\xcd\xd4\xcd\xd5\xcd\xd6\xcd\xd7\xcd\xd8\xcd\xd9\xcd\xda\xcd\xdb\xcd\xdc\xcd\xdd\xcd\xde\xcd\xdf\xcd\xe0\xcd\xe1\xcd\xe2\xcd\xe3\xcd\xe4\xcd\xe5\xcd\xe6\xcd\xe7\xcd\xe8\xcd\xe9\xcd\xea\xcd\xeb\xcd\xec\xcd\xed\xcd\xee\xcd\xef\xcd\xf0\xcd\xf1\xcd\xf2\xcd\xf3\xcd\xf4\xcd\xf5\xcd\xf6\xcd\xf7\xcd\xf8\xcd\xf9\xcd\xfa\xcd\xfb\xcd\xfc\xcd\xfd\xce\x41\xce\x42\xce\x43\xce\x44\xce\x45\xce\x46\xce\x47\xce\x48\xce\x49\xce\x4a\xce\x4b\xce\x4c\xce\x4d\xce\x4e\xce\x4f\xce\x50\xce\x51\xce\x52\xce\x53\xce\x54\xce\x55\xce\x56\xce\x57\xce\x58\xce\x59\xce\x5a\xce\x5b\xce\x5c\xce\x5d\xce\x5e\xce\x5f\xce\x60\xce\x61\xce\x62\xce\x63\xce\x64\xce\x65\xce\x66\xce\x67\xce\x68\xce\x69\xce\x6a\xce\x6b\xce\x6c\xce\x6d\xce\x6e\xce\x6f\xce\x70", /* e900 */ "\xce\x71\xce\x72\xce\x73\xce\x74\xce\x75\xce\x76\xce\x77\xce\x78\xce\x79\xce\x7a\xce\x7b\xce\x7c\xce\x7d\xce\x7e\xce\x7f\xce\x81\xce\x82\xce\x83\xce\x84\xce\x85\xce\x86\xce\x87\xce\x88\xce\x89\xce\x8a\xce\x8b\xce\x8c\xce\x8d\xce\x8e\xce\x8f\xce\x90\xce\x91\xce\x92\xce\x93\xce\x94\xce\x95\xce\x96\xce\x97\xce\x98\xce\x99\xce\x9a\xce\x9b\xce\x9c\xce\x9d\xce\x9e\xce\x9f\xce\xa0\xce\xa1\xce\xa2\xce\xa3\xce\xa4\xce\xa5\xce\xa6\xce\xa7\xce\xa8\xce\xa9\xce\xaa\xce\xab\xce\xac\xce\xad\xce\xae\xce\xaf\xce\xb0\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xce\xb5\xce\xb6\xce\xb7\xce\xb8\xce\xb9\xce\xba\xce\xbb\xce\xbc\xce\xbd\xce\xbe\xce\xbf\xce\xc0\xce\xc1\xce\xc2\xce\xc3\xce\xc4\xce\xc5\xce\xc6\xce\xc7\xce\xc8\xce\xc9\xce\xca\xce\xcb\xce\xcc\xce\xcd\xce\xce\xce\xcf\xce\xd0\xce\xd1\xce\xd2\xce\xd3\xce\xd4\xce\xd5\xce\xd6\xce\xd7\xce\xd8\xce\xd9\xce\xda\xce\xdb\xce\xdc\xce\xdd\xce\xde\xce\xdf\xce\xe0\xce\xe1\xce\xe2\xce\xe3\xce\xe4\xce\xe5\xce\xe6\xce\xe7\xce\xe8\xce\xe9\xce\xea\xce\xeb\xce\xec\xce\xed\xce\xee\xce\xef\xce\xf0\xce\xf1", /* e980 */ "\xce\xf2\xce\xf3\xce\xf4\xce\xf5\xce\xf6\xce\xf7\xce\xf8\xce\xf9\xce\xfa\xce\xfb\xce\xfc\xce\xfd\xcf\x41\xcf\x42\xcf\x43\xcf\x44\xcf\x45\xcf\x46\xcf\x47\xcf\x48\xcf\x49\xcf\x4a\xcf\x4b\xcf\x4c\xcf\x4d\xcf\x4e\xcf\x4f\xcf\x50\xcf\x51\xcf\x52\xcf\x53\xcf\x54\xcf\x55\xcf\x56\xcf\x57\xcf\x58\xcf\x59\xcf\x5a\xcf\x5b\xcf\x5c\xcf\x5d\xcf\x5e\xcf\x5f\xcf\x60\xcf\x61\xcf\x62\xcf\x63\xcf\x64\xcf\x65\xcf\x66\xcf\x67\xcf\x68\xcf\x69\xcf\x6a\xcf\x6b\xcf\x6c\xcf\x6d\xcf\x6e\xcf\x6f\xcf\x70\xcf\x71\xcf\x72\xcf\x73\xcf\x74\xcf\x75\xcf\x76\xcf\x77\xcf\x78\xcf\x79\xcf\x7a\xcf\x7b\xcf\x7c\xcf\x7d\xcf\x7e\xcf\x7f\xcf\x81\xcf\x82\xcf\x83\xcf\x84\xcf\x85\xcf\x86\xcf\x87\xcf\x88\xcf\x89\xcf\x8a\xcf\x8b\xcf\x8c\xcf\x8d\xcf\x8e\xcf\x8f\xcf\x90\xcf\x91\xcf\x92\xcf\x93\xcf\x94\xcf\x95\xcf\x96\xcf\x97\xcf\x98\xcf\x99\xcf\x9a\xcf\x9b\xcf\x9c\xcf\x9d\xcf\x9e\xcf\x9f\xcf\xa0\xcf\xa1\xcf\xa2\xcf\xa3\xcf\xa4\xcf\xa5\xcf\xa6\xcf\xa7\xcf\xa8\xcf\xa9\xcf\xaa\xcf\xab\xcf\xac\xcf\xad\xcf\xae\xcf\xaf\xcf\xb0\xcf\xb1\xcf\xb2\xcf\xb3\xcf\xb4\xcf\xb5", /* ea00 */ "\xcf\xb6\xcf\xb7\xcf\xb8\xcf\xb9\xcf\xba\xcf\xbb\xcf\xbc\xcf\xbd\xcf\xbe\xcf\xbf\xcf\xc0\xcf\xc1\xcf\xc2\xcf\xc3\xcf\xc4\xcf\xc5\xcf\xc6\xcf\xc7\xcf\xc8\xcf\xc9\xcf\xca\xcf\xcb\xcf\xcc\xcf\xcd\xcf\xce\xcf\xcf\xcf\xd0\xcf\xd1\xcf\xd2\xcf\xd3\xcf\xd4\xcf\xd5\xcf\xd6\xcf\xd7\xcf\xd8\xcf\xd9\xcf\xda\xcf\xdb\xcf\xdc\xcf\xdd\xcf\xde\xcf\xdf\xcf\xe0\xcf\xe1\xcf\xe2\xcf\xe3\xcf\xe4\xcf\xe5\xcf\xe6\xcf\xe7\xcf\xe8\xcf\xe9\xcf\xea\xcf\xeb\xcf\xec\xcf\xed\xcf\xee\xcf\xef\xcf\xf0\xcf\xf1\xcf\xf2\xcf\xf3\xcf\xf4\xcf\xf5\xcf\xf6\xcf\xf7\xcf\xf8\xcf\xf9\xcf\xfa\xcf\xfb\xcf\xfc\xcf\xfd\xd0\x41\xd0\x42\xd0\x43\xd0\x44\xd0\x45\xd0\x46\xd0\x47\xd0\x48\xd0\x49\xd0\x4a\xd0\x4b\xd0\x4c\xd0\x4d\xd0\x4e\xd0\x4f\xd0\x50\xd0\x51\xd0\x52\xd0\x53\xd0\x54\xd0\x55\xd0\x56\xd0\x57\xd0\x58\xd0\x59\xd0\x5a\xd0\x5b\xd0\x5c\xd0\x5d\xd0\x5e\xd0\x5f\xd0\x60\xd0\x61\xd0\x62\xd0\x63\xd0\x64\xd0\x65\xd0\x66\xd0\x67\xd0\x68\xd0\x69\xd0\x6a\xd0\x6b\xd0\x6c\xd0\x6d\xd0\x6e\xd0\x6f\xd0\x70\xd0\x71\xd0\x72\xd0\x73\xd0\x74\xd0\x75\xd0\x76\xd0\x77\xd0\x78", /* ea80 */ "\xd0\x79\xd0\x7a\xd0\x7b\xd0\x7c\xd0\x7d\xd0\x7e\xd0\x7f\xd0\x81\xd0\x82\xd0\x83\xd0\x84\xd0\x85\xd0\x86\xd0\x87\xd0\x88\xd0\x89\xd0\x8a\xd0\x8b\xd0\x8c\xd0\x8d\xd0\x8e\xd0\x8f\xd0\x90\xd0\x91\xd0\x92\xd0\x93\xd0\x94\xd0\x95\xd0\x96\xd0\x97\xd0\x98\xd0\x99\xd0\x9a\xd0\x9b\xd0\x9c\xd0\x9d\xd0\x9e\xd0\x9f\xd0\xa0\xd0\xa1\xd0\xa2\xd0\xa3\xd0\xa4\xd0\xa5\xd0\xa6\xd0\xa7\xd0\xa8\xd0\xa9\xd0\xaa\xd0\xab\xd0\xac\xd0\xad\xd0\xae\xd0\xaf\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5\xd0\xb6\xd0\xb7\xd0\xb8\xd0\xb9\xd0\xba\xd0\xbb\xd0\xbc\xd0\xbd\xd0\xbe\xd0\xbf\xd0\xc0\xd0\xc1\xd0\xc2\xd0\xc3\xd0\xc4\xd0\xc5\xd0\xc6\xd0\xc7\xd0\xc8\xd0\xc9\xd0\xca\xd0\xcb\xd0\xcc\xd0\xcd\xd0\xce\xd0\xcf\xd0\xd0\xd0\xd1\xd0\xd2\xd0\xd3\xd0\xd4\xd0\xd5\xd0\xd6\xd0\xd7\xd0\xd8\xd0\xd9\xd0\xda\xd0\xdb\xd0\xdc\xd0\xdd\xd0\xde\xd0\xdf\xd0\xe0\xd0\xe1\xd0\xe2\xd0\xe3\xd0\xe4\xd0\xe5\xd0\xe6\xd0\xe7\xd0\xe8\xd0\xe9\xd0\xea\xd0\xeb\xd0\xec\xd0\xed\xd0\xee\xd0\xef\xd0\xf0\xd0\xf1\xd0\xf2\xd0\xf3\xd0\xf4\xd0\xf5\xd0\xf6\xd0\xf7\xd0\xf8\xd0\xf9", /* eb00 */ "\xd0\xfa\xd0\xfb\xd0\xfc\xd0\xfd\xd1\x41\xd1\x42\xd1\x43\xd1\x44\xd1\x45\xd1\x46\xd1\x47\xd1\x48\xd1\x49\xd1\x4a\xd1\x4b\xd1\x4c\xd1\x4d\xd1\x4e\xd1\x4f\xd1\x50\xd1\x51\xd1\x52\xd1\x53\xd1\x54\xd1\x55\xd1\x56\xd1\x57\xd1\x58\xd1\x59\xd1\x5a\xd1\x5b\xd1\x5c\xd1\x5d\xd1\x5e\xd1\x5f\xd1\x60\xd1\x61\xd1\x62\xd1\x63\xd1\x64\xd1\x65\xd1\x66\xd1\x67\xd1\x68\xd1\x69\xd1\x6a\xd1\x6b\xd1\x6c\xd1\x6d\xd1\x6e\xd1\x6f\xd1\x70\xd1\x71\xd1\x72\xd1\x73\xd1\x74\xd1\x75\xd1\x76\xd1\x77\xd1\x78\xd1\x79\xd1\x7a\xd1\x7b\xd1\x7c\xd1\x7d\xd1\x7e\xd1\x7f\xd1\x81\xd1\x82\xd1\x83\xd1\x84\xd1\x85\xd1\x86\xd1\x87\xd1\x88\xd1\x89\xd1\x8a\xd1\x8b\xd1\x8c\xd1\x8d\xd1\x8e\xd1\x8f\xd1\x90\xd1\x91\xd1\x92\xd1\x93\xd1\x94\xd1\x95\xd1\x96\xd1\x97\xd1\x98\xd1\x99\xd1\x9a\xd1\x9b\xd1\x9c\xd1\x9d\xd1\x9e\xd1\x9f\xd1\xa0\xd1\xa1\xd1\xa2\xd1\xa3\xd1\xa4\xd1\xa5\xd1\xa6\xd1\xa7\xd1\xa8\xd1\xa9\xd1\xaa\xd1\xab\xd1\xac\xd1\xad\xd1\xae\xd1\xaf\xd1\xb0\xd1\xb1\xd1\xb2\xd1\xb3\xd1\xb4\xd1\xb5\xd1\xb6\xd1\xb7\xd1\xb8\xd1\xb9\xd1\xba\xd1\xbb\xd1\xbc\xd1\xbd", /* eb80 */ "\xd1\xbe\xd1\xbf\xd1\xc0\xd1\xc1\xd1\xc2\xd1\xc3\xd1\xc4\xd1\xc5\xd1\xc6\xd1\xc7\xd1\xc8\xd1\xc9\xd1\xca\xd1\xcb\xd1\xcc\xd1\xcd\xd1\xce\xd1\xcf\xd1\xd0\xd1\xd1\xd1\xd2\xd1\xd3\xd1\xd4\xd1\xd5\xd1\xd6\xd1\xd7\xd1\xd8\xd1\xd9\xd1\xda\xd1\xdb\xd1\xdc\xd1\xdd\xd1\xde\xd1\xdf\xd1\xe0\xd1\xe1\xd1\xe2\xd1\xe3\xd1\xe4\xd1\xe5\xd1\xe6\xd1\xe7\xd1\xe8\xd1\xe9\xd1\xea\xd1\xeb\xd1\xec\xd1\xed\xd1\xee\xd1\xef\xd1\xf0\xd1\xf1\xd1\xf2\xd1\xf3\xd1\xf4\xd1\xf5\xd1\xf6\xd1\xf7\xd1\xf8\xd1\xf9\xd1\xfa\xd1\xfb\xd1\xfc\xd1\xfd\xd2\x41\xd2\x42\xd2\x43\xd2\x44\xd2\x45\xd2\x46\xd2\x47\xd2\x48\xd2\x49\xd2\x4a\xd2\x4b\xd2\x4c\xd2\x4d\xd2\x4e\xd2\x4f\xd2\x50\xd2\x51\xd2\x52\xd2\x53\xd2\x54\xd2\x55\xd2\x56\xd2\x57\xd2\x58\xd2\x59\xd2\x5a\xd2\x5b\xd2\x5c\xd2\x5d\xd2\x5e\xd2\x5f\xd2\x60\xd2\x61\xd2\x62\xd2\x63\xd2\x64\xd2\x65\xd2\x66\xd2\x67\xd2\x68\xd2\x69\xd2\x6a\xd2\x6b\xd2\x6c\xd2\x6d\xd2\x6e\xd2\x6f\xd2\x70\xd2\x71\xd2\x72\xd2\x73\xd2\x74\xd2\x75\xd2\x76\xd2\x77\xd2\x78\xd2\x79\xd2\x7a\xd2\x7b\xd2\x7c\xd2\x7d\xd2\x7e\xd2\x7f\xd2\x81", /* ec00 */ "\xd2\x82\xd2\x83\xd2\x84\xd2\x85\xd2\x86\xd2\x87\xd2\x88\xd2\x89\xd2\x8a\xd2\x8b\xd2\x8c\xd2\x8d\xd2\x8e\xd2\x8f\xd2\x90\xd2\x91\xd2\x92\xd2\x93\xd2\x94\xd2\x95\xd2\x96\xd2\x97\xd2\x98\xd2\x99\xd2\x9a\xd2\x9b\xd2\x9c\xd2\x9d\xd2\x9e\xd2\x9f\xd2\xa0\xd2\xa1\xd2\xa2\xd2\xa3\xd2\xa4\xd2\xa5\xd2\xa6\xd2\xa7\xd2\xa8\xd2\xa9\xd2\xaa\xd2\xab\xd2\xac\xd2\xad\xd2\xae\xd2\xaf\xd2\xb0\xd2\xb1\xd2\xb2\xd2\xb3\xd2\xb4\xd2\xb5\xd2\xb6\xd2\xb7\xd2\xb8\xd2\xb9\xd2\xba\xd2\xbb\xd2\xbc\xd2\xbd\xd2\xbe\xd2\xbf\xd2\xc0\xd2\xc1\xd2\xc2\xd2\xc3\xd2\xc4\xd2\xc5\xd2\xc6\xd2\xc7\xd2\xc8\xd2\xc9\xd2\xca\xd2\xcb\xd2\xcc\xd2\xcd\xd2\xce\xd2\xcf\xd2\xd0\xd2\xd1\xd2\xd2\xd2\xd3\xd2\xd4\xd2\xd5\xd2\xd6\xd2\xd7\xd2\xd8\xd2\xd9\xd2\xda\xd2\xdb\xd2\xdc\xd2\xdd\xd2\xde\xd2\xdf\xd2\xe0\xd2\xe1\xd2\xe2\xd2\xe3\xd2\xe4\xd2\xe5\xd2\xe6\xd2\xe7\xd2\xe8\xd2\xe9\xd2\xea\xd2\xeb\xd2\xec\xd2\xed\xd2\xee\xd2\xef\xd2\xf0\xd2\xf1\xd2\xf2\xd2\xf3\xd2\xf4\xd2\xf5\xd2\xf6\xd2\xf7\xd2\xf8\xd2\xf9\xd2\xfa\xd2\xfb\xd2\xfc\xd2\xfd\xd3\x41\xd3\x42\xd3\x43\xd3\x44", /* ec80 */ "\xd3\x45\xd3\x46\xd3\x47\xd3\x48\xd3\x49\xd3\x4a\xd3\x4b\xd3\x4c\xd3\x4d\xd3\x4e\xd3\x4f\xd3\x50\xd3\x51\xd3\x52\xd3\x53\xd3\x54\xd3\x55\xd3\x56\xd3\x57\xd3\x58\xd3\x59\xd3\x5a\xd3\x5b\xd3\x5c\xd3\x5d\xd3\x5e\xd3\x5f\xd3\x60\xd3\x61\xd3\x62\xd3\x63\xd3\x64\xd3\x65\xd3\x66\xd3\x67\xd3\x68\xd3\x69\xd3\x6a\xd3\x6b\xd3\x6c\xd3\x6d\xd3\x6e\xd3\x6f\xd3\x70\xd3\x71\xd3\x72\xd3\x73\xd3\x74\xd3\x75\xd3\x76\xd3\x77\xd3\x78\xd3\x79\xd3\x7a\xd3\x7b\xd3\x7c\xd3\x7d\xd3\x7e\xd3\x7f\xd3\x81\xd3\x82\xd3\x83\xd3\x84\xd3\x85\xd3\x86\xd3\x87\xd3\x88\xd3\x89\xd3\x8a\xd3\x8b\xd3\x8c\xd3\x8d\xd3\x8e\xd3\x8f\xd3\x90\xd3\x91\xd3\x92\xd3\x93\xd3\x94\xd3\x95\xd3\x96\xd3\x97\xd3\x98\xd3\x99\xd3\x9a\xd3\x9b\xd3\x9c\xd3\x9d\xd3\x9e\xd3\x9f\xd3\xa0\xd3\xa1\xd3\xa2\xd3\xa3\xd3\xa4\xd3\xa5\xd3\xa6\xd3\xa7\xd3\xa8\xd3\xa9\xd3\xaa\xd3\xab\xd3\xac\xd3\xad\xd3\xae\xd3\xaf\xd3\xb0\xd3\xb1\xd3\xb2\xd3\xb3\xd3\xb4\xd3\xb5\xd3\xb6\xd3\xb7\xd3\xb8\xd3\xb9\xd3\xba\xd3\xbb\xd3\xbc\xd3\xbd\xd3\xbe\xd3\xbf\xd3\xc0\xd3\xc1\xd3\xc2\xd3\xc3\xd3\xc4\xd3\xc5", /* ed00 */ "\xd3\xc6\xd3\xc7\xd3\xc8\xd3\xc9\xd3\xca\xd3\xcb\xd3\xcc\xd3\xcd\xd3\xce\xd3\xcf\xd3\xd0\xd3\xd1\xd3\xd2\xd3\xd3\xd3\xd4\xd3\xd5\xd3\xd6\xd3\xd7\xd3\xd8\xd3\xd9\xd3\xda\xd3\xdb\xd3\xdc\xd3\xdd\xd3\xde\xd3\xdf\xd3\xe0\xd3\xe1\xd3\xe2\xd3\xe3\xd3\xe4\xd3\xe5\xd3\xe6\xd3\xe7\xd3\xe8\xd3\xe9\xd3\xea\xd3\xeb\xd3\xec\xd3\xed\xd3\xee\xd3\xef\xd3\xf0\xd3\xf1\xd3\xf2\xd3\xf3\xd3\xf4\xd3\xf5\xd3\xf6\xd3\xf7\xd3\xf8\xd3\xf9\xd3\xfa\xd3\xfb\xd3\xfc\xd3\xfd\xd4\x41\xd4\x42\xd4\x43\xd4\x44\xd4\x45\xd4\x46\xd4\x47\xd4\x48\xd4\x49\xd4\x4a\xd4\x4b\xd4\x4c\xd4\x4d\xd4\x4e\xd4\x4f\xd4\x50\xd4\x51\xd4\x52\xd4\x53\xd4\x54\xd4\x55\xd4\x56\xd4\x57\xd4\x58\xd4\x59\xd4\x5a\xd4\x5b\xd4\x5c\xd4\x5d\xd4\x5e\xd4\x5f\xd4\x60\xd4\x61\xd4\x62\xd4\x63\xd4\x64\xd4\x65\xd4\x66\xd4\x67\xd4\x68\xd4\x69\xd4\x6a\xd4\x6b\xd4\x6c\xd4\x6d\xd4\x6e\xd4\x6f\xd4\x70\xd4\x71\xd4\x72\xd4\x73\xd4\x74\xd4\x75\xd4\x76\xd4\x77\xd4\x78\xd4\x79\xd4\x7a\xd4\x7b\xd4\x7c\xd4\x7d\xd4\x7e\xd4\x7f\xd4\x81\xd4\x82\xd4\x83\xd4\x84\xd4\x85\xd4\x86\xd4\x87\xd4\x88\xd4\x89", /* ed80 */ "\xd4\x8a\xd4\x8b\xd4\x8c\xd4\x8d\xd4\x8e\xd4\x8f\xd4\x90\xd4\x91\xd4\x92\xd4\x93\xd4\x94\xd4\x95\xd4\x96\xd4\x97\xd4\x98\xd4\x99\xd4\x9a\xd4\x9b\xd4\x9c\xd4\x9d\xd4\x9e\xd4\x9f\xd4\xa0\xd4\xa1\xd4\xa2\xd4\xa3\xd4\xa4\xd4\xa5\xd4\xa6\xd4\xa7\xd4\xa8\xd4\xa9\xd4\xaa\xd4\xab\xd4\xac\xd4\xad\xd4\xae\xd4\xaf\xd4\xb0\xd4\xb1\xd4\xb2\xd4\xb3\xd4\xb4\xd4\xb5\xd4\xb6\xd4\xb7\xd4\xb8\xd4\xb9\xd4\xba\xd4\xbb\xd4\xbc\xd4\xbd\xd4\xbe\xd4\xbf\xd4\xc0\xd4\xc1\xd4\xc2\xd4\xc3\xd4\xc4\xd4\xc5\xd4\xc6\xd4\xc7\xd4\xc8\xd4\xc9\xd4\xca\xd4\xcb\xd4\xcc\xd4\xcd\xd4\xce\xd4\xcf\xd4\xd0\xd4\xd1\xd4\xd2\xd4\xd3\xd4\xd4\xd4\xd5\xd4\xd6\xd4\xd7\xd4\xd8\xd4\xd9\xd4\xda\xd4\xdb\xd4\xdc\xd4\xdd\xd4\xde\xd4\xdf\xd4\xe0\xd4\xe1\xd4\xe2\xd4\xe3\xd4\xe4\xd4\xe5\xd4\xe6\xd4\xe7\xd4\xe8\xd4\xe9\xd4\xea\xd4\xeb\xd4\xec\xd4\xed\xd4\xee\xd4\xef\xd4\xf0\xd4\xf1\xd4\xf2\xd4\xf3\xd4\xf4\xd4\xf5\xd4\xf6\xd4\xf7\xd4\xf8\xd4\xf9\xd4\xfa\xd4\xfb\xd4\xfc\xd4\xfd\xd5\x41\xd5\x42\xd5\x43\xd5\x44\xd5\x45\xd5\x46\xd5\x47\xd5\x48\xd5\x49\xd5\x4a\xd5\x4b\xd5\x4c", /* ee00 */ "\xd5\x4d\xd5\x4e\xd5\x4f\xd5\x50\xd5\x51\xd5\x52\xd5\x53\xd5\x54\xd5\x55\xd5\x56\xd5\x57\xd5\x58\xd5\x59\xd5\x5a\xd5\x5b\xd5\x5c\xd5\x5d\xd5\x5e\xd5\x5f\xd5\x60\xd5\x61\xd5\x62\xd5\x63\xd5\x64\xd5\x65\xd5\x66\xd5\x67\xd5\x68\xd5\x69\xd5\x6a\xd5\x6b\xd5\x6c\xd5\x6d\xd5\x6e\xd5\x6f\xd5\x70\xd5\x71\xd5\x72\xd5\x73\xd5\x74\xd5\x75\xd5\x76\xd5\x77\xd5\x78\xd5\x79\xd5\x7a\xd5\x7b\xd5\x7c\xd5\x7d\xd5\x7e\xd5\x7f\xd5\x81\xd5\x82\xd5\x83\xd5\x84\xd5\x85\xd5\x86\xd5\x87\xd5\x88\xd5\x89\xd5\x8a\xd5\x8b\xd5\x8c\xd5\x8d\xd5\x8e\xd5\x8f\xd5\x90\xd5\x91\xd5\x92\xd5\x93\xd5\x94\xd5\x95\xd5\x96\xd5\x97\xd5\x98\xd5\x99\xd5\x9a\xd5\x9b\xd5\x9c\xd5\x9d\xd5\x9e\xd5\x9f\xd5\xa0\xd5\xa1\xd5\xa2\xd5\xa3\xd5\xa4\xd5\xa5\xd5\xa6\xd5\xa7\xd5\xa8\xd5\xa9\xd5\xaa\xd5\xab\xd5\xac\xd5\xad\xd5\xae\xd5\xaf\xd5\xb0\xd5\xb1\xd5\xb2\xd5\xb3\xd5\xb4\xd5\xb5\xd5\xb6\xd5\xb7\xd5\xb8\xd5\xb9\xd5\xba\xd5\xbb\xd5\xbc\xd5\xbd\xd5\xbe\xd5\xbf\xd5\xc0\xd5\xc1\xd5\xc2\xd5\xc3\xd5\xc4\xd5\xc5\xd5\xc6\xd5\xc7\xd5\xc8\xd5\xc9\xd5\xca\xd5\xcb\xd5\xcc\xd5\xcd", /* ee80 */ "\xd5\xce\xd5\xcf\xd5\xd0\xd5\xd1\xd5\xd2\xd5\xd3\xd5\xd4\xd5\xd5\xd5\xd6\xd5\xd7\xd5\xd8\xd5\xd9\xd5\xda\xd5\xdb\xd5\xdc\xd5\xdd\xd5\xde\xd5\xdf\xd5\xe0\xd5\xe1\xd5\xe2\xd5\xe3\xd5\xe4\xd5\xe5\xd5\xe6\xd5\xe7\xd5\xe8\xd5\xe9\xd5\xea\xd5\xeb\xd5\xec\xd5\xed\xd5\xee\xd5\xef\xd5\xf0\xd5\xf1\xd5\xf2\xd5\xf3\xd5\xf4\xd5\xf5\xd5\xf6\xd5\xf7\xd5\xf8\xd5\xf9\xd5\xfa\xd5\xfb\xd5\xfc\xd5\xfd\xd6\x41\xd6\x42\xd6\x43\xd6\x44\xd6\x45\xd6\x46\xd6\x47\xd6\x48\xd6\x49\xd6\x4a\xd6\x4b\xd6\x4c\xd6\x4d\xd6\x4e\xd6\x4f\xd6\x50\xd6\x51\xd6\x52\xd6\x53\xd6\x54\xd6\x55\xd6\x56\xd6\x57\xd6\x58\xd6\x59\xd6\x5a\xd6\x5b\xd6\x5c\xd6\x5d\xd6\x5e\xd6\x5f\xd6\x60\xd6\x61\xd6\x62\xd6\x63\xd6\x64\xd6\x65\xd6\x66\xd6\x67\xd6\x68\xd6\x69\xd6\x6a\xd6\x6b\xd6\x6c\xd6\x6d\xd6\x6e\xd6\x6f\xd6\x70\xd6\x71\xd6\x72\xd6\x73\xd6\x74\xd6\x75\xd6\x76\xd6\x77\xd6\x78\xd6\x79\xd6\x7a\xd6\x7b\xd6\x7c\xd6\x7d\xd6\x7e\xd6\x7f\xd6\x81\xd6\x82\xd6\x83\xd6\x84\xd6\x85\xd6\x86\xd6\x87\xd6\x88\xd6\x89\xd6\x8a\xd6\x8b\xd6\x8c\xd6\x8d\xd6\x8e\xd6\x8f\xd6\x90\xd6\x91", /* ef00 */ "\xd6\x92\xd6\x93\xd6\x94\xd6\x95\xd6\x96\xd6\x97\xd6\x98\xd6\x99\xd6\x9a\xd6\x9b\xd6\x9c\xd6\x9d\xd6\x9e\xd6\x9f\xd6\xa0\xd6\xa1\xd6\xa2\xd6\xa3\xd6\xa4\xd6\xa5\xd6\xa6\xd6\xa7\xd6\xa8\xd6\xa9\xd6\xaa\xd6\xab\xd6\xac\xd6\xad\xd6\xae\xd6\xaf\xd6\xb0\xd6\xb1\xd6\xb2\xd6\xb3\xd6\xb4\xd6\xb5\xd6\xb6\xd6\xb7\xd6\xb8\xd6\xb9\xd6\xba\xd6\xbb\xd6\xbc\xd6\xbd\xd6\xbe\xd6\xbf\xd6\xc0\xd6\xc1\xd6\xc2\xd6\xc3\xd6\xc4\xd6\xc5\xd6\xc6\xd6\xc7\xd6\xc8\xd6\xc9\xd6\xca\xd6\xcb\xd6\xcc\xd6\xcd\xd6\xce\xd6\xcf\xd6\xd0\xd6\xd1\xd6\xd2\xd6\xd3\xd6\xd4\xd6\xd5\xd6\xd6\xd6\xd7\xd6\xd8\xd6\xd9\xd6\xda\xd6\xdb\xd6\xdc\xd6\xdd\xd6\xde\xd6\xdf\xd6\xe0\xd6\xe1\xd6\xe2\xd6\xe3\xd6\xe4\xd6\xe5\xd6\xe6\xd6\xe7\xd6\xe8\xd6\xe9\xd6\xea\xd6\xeb\xd6\xec\xd6\xed\xd6\xee\xd6\xef\xd6\xf0\xd6\xf1\xd6\xf2\xd6\xf3\xd6\xf4\xd6\xf5\xd6\xf6\xd6\xf7\xd6\xf8\xd6\xf9\xd6\xfa\xd6\xfb\xd6\xfc\xd6\xfd\xd7\x41\xd7\x42\xd7\x43\xd7\x44\xd7\x45\xd7\x46\xd7\x47\xd7\x48\xd7\x49\xd7\x4a\xd7\x4b\xd7\x4c\xd7\x4d\xd7\x4e\xd7\x4f\xd7\x50\xd7\x51\xd7\x52\xd7\x53\xd7\x54", /* ef80 */ "\xd7\x55\xd7\x56\xd7\x57\xd7\x58\xd7\x59\xd7\x5a\xd7\x5b\xd7\x5c\xd7\x5d\xd7\x5e\xd7\x5f\xd7\x60\xd7\x61\xd7\x62\xd7\x63\xd7\x64\xd7\x65\xd7\x66\xd7\x67\xd7\x68\xd7\x69\xd7\x6a\xd7\x6b\xd7\x6c\xd7\x6d\xd7\x6e\xd7\x6f\xd7\x70\xd7\x71\xd7\x72\xd7\x73\xd7\x74\xd7\x75\xd7\x76\xd7\x77\xd7\x78\xd7\x79\xd7\x7a\xd7\x7b\xd7\x7c\xd7\x7d\xd7\x7e\xd7\x7f\xd7\x81\xd7\x82\xd7\x83\xd7\x84\xd7\x85\xd7\x86\xd7\x87\xd7\x88\xd7\x89\xd7\x8a\xd7\x8b\xd7\x8c\xd7\x8d\xd7\x8e\xd7\x8f\xd7\x90\xd7\x91\xd7\x92\xd7\x93\xd7\x94\xd7\x95\xd7\x96\xd7\x97\xd7\x98\xd7\x99\xd7\x9a\xd7\x9b\xd7\x9c\xd7\x9d\xd7\x9e\xd7\x9f\xd7\xa0\xd7\xa1\xd7\xa2\xd7\xa3\xd7\xa4\xd7\xa5\xd7\xa6\xd7\xa7\xd7\xa8\xd7\xa9\xd7\xaa\xd7\xab\xd7\xac\xd7\xad\xd7\xae\xd7\xaf\xd7\xb0\xd7\xb1\xd7\xb2\xd7\xb3\xd7\xb4\xd7\xb5\xd7\xb6\xd7\xb7\xd7\xb8\xd7\xb9\xd7\xba\xd7\xbb\xd7\xbc\xd7\xbd\xd7\xbe\xd7\xbf\xd7\xc0\xd7\xc1\xd7\xc2\xd7\xc3\xd7\xc4\xd7\xc5\xd7\xc6\xd7\xc7\xd7\xc8\xd7\xc9\xd7\xca\xd7\xcb\xd7\xcc\xd7\xcd\xd7\xce\xd7\xcf\xd7\xd0\xd7\xd1\xd7\xd2\xd7\xd3\xd7\xd4\xd7\xd5", /* f000 */ "\xd7\xd6\xd7\xd7\xd7\xd8\xd7\xd9\xd7\xda\xd7\xdb\xd7\xdc\xd7\xdd\xd7\xde\xd7\xdf\xd7\xe0\xd7\xe1\xd7\xe2\xd7\xe3\xd7\xe4\xd7\xe5\xd7\xe6\xd7\xe7\xd7\xe8\xd7\xe9\xd7\xea\xd7\xeb\xd7\xec\xd7\xed\xd7\xee\xd7\xef\xd7\xf0\xd7\xf1\xd7\xf2\xd7\xf3\xd7\xf4\xd7\xf5\xd7\xf6\xd7\xf7\xd7\xf8\xd7\xf9\xd7\xfa\xd7\xfb\xd7\xfc\xd7\xfd\xd8\x41\xd8\x42\xd8\x43\xd8\x44\xd8\x45\xd8\x46\xd8\x47\xd8\x48\xd8\x49\xd8\x4a\xd8\x4b\xd8\x4c\xd8\x4d\xd8\x4e\xd8\x4f\xd8\x50\xd8\x51\xd8\x52\xd8\x53\xd8\x54\xd8\x55\xd8\x56\xd8\x57\xd8\x58\xd8\x59\xd8\x5a\xd8\x5b\xd8\x5c\xd8\x5d\xd8\x5e\xd8\x5f\xd8\x60\xd8\x61\xd8\x62\xd8\x63\xd8\x64\xd8\x65\xd8\x66\xd8\x67\xd8\x68\xd8\x69\xd8\x6a\xd8\x6b\xd8\x6c\xd8\x6d\xd8\x6e\xd8\x6f\xd8\x70\xd8\x71\xd8\x72\xd8\x73\xd8\x74\xd8\x75\xd8\x76\xd8\x77\xd8\x78\xd8\x79\xd8\x7a\xd8\x7b\xd8\x7c\xd8\x7d\xd8\x7e\xd8\x7f\xd8\x81\xd8\x82\xd8\x83\xd8\x84\xd8\x85\xd8\x86\xd8\x87\xd8\x88\xd8\x89\xd8\x8a\xd8\x8b\xd8\x8c\xd8\x8d\xd8\x8e\xd8\x8f\xd8\x90\xd8\x91\xd8\x92\xd8\x93\xd8\x94\xd8\x95\xd8\x96\xd8\x97\xd8\x98\xd8\x99", /* f080 */ "\xd8\x9a\xd8\x9b\xd8\x9c\xd8\x9d\xd8\x9e\xd8\x9f\xd8\xa0\xd8\xa1\xd8\xa2\xd8\xa3\xd8\xa4\xd8\xa5\xd8\xa6\xd8\xa7\xd8\xa8\xd8\xa9\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae\xd8\xaf\xd8\xb0\xd8\xb1\xd8\xb2\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba\xd8\xbb\xd8\xbc\xd8\xbd\xd8\xbe\xd8\xbf\xd8\xc0\xd8\xc1\xd8\xc2\xd8\xc3\xd8\xc4\xd8\xc5\xd8\xc6\xd8\xc7\xd8\xc8\xd8\xc9\xd8\xca\xd8\xcb\xd8\xcc\xd8\xcd\xd8\xce\xd8\xcf\xd8\xd0\xd8\xd1\xd8\xd2\xd8\xd3\xd8\xd4\xd8\xd5\xd8\xd6\xd8\xd7\xd8\xd8\xd8\xd9\xd8\xda\xd8\xdb\xd8\xdc\xd8\xdd\xd8\xde\xd8\xdf\xd8\xe0\xd8\xe1\xd8\xe2\xd8\xe3\xd8\xe4\xd8\xe5\xd8\xe6\xd8\xe7\xd8\xe8\xd8\xe9\xd8\xea\xd8\xeb\xd8\xec\xd8\xed\xd8\xee\xd8\xef\xd8\xf0\xd8\xf1\xd8\xf2\xd8\xf3\xd8\xf4\xd8\xf5\xd8\xf6\xd8\xf7\xd8\xf8\xd8\xf9\xd8\xfa\xd8\xfb\xd8\xfc\xd8\xfd\xd9\x41\xd9\x42\xd9\x43\xd9\x44\xd9\x45\xd9\x46\xd9\x47\xd9\x48\xd9\x49\xd9\x4a\xd9\x4b\xd9\x4c\xd9\x4d\xd9\x4e\xd9\x4f\xd9\x50\xd9\x51\xd9\x52\xd9\x53\xd9\x54\xd9\x55\xd9\x56\xd9\x57\xd9\x58\xd9\x59\xd9\x5a\xd9\x5b\xd9\x5c", /* f100 */ "\xd9\x5d\xd9\x5e\xd9\x5f\xd9\x60\xd9\x61\xd9\x62\xd9\x63\xd9\x64\xd9\x65\xd9\x66\xd9\x67\xd9\x68\xd9\x69\xd9\x6a\xd9\x6b\xd9\x6c\xd9\x6d\xd9\x6e\xd9\x6f\xd9\x70\xd9\x71\xd9\x72\xd9\x73\xd9\x74\xd9\x75\xd9\x76\xd9\x77\xd9\x78\xd9\x79\xd9\x7a\xd9\x7b\xd9\x7c\xd9\x7d\xd9\x7e\xd9\x7f\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x88\xd9\x89\xd9\x8a\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f\xd9\x90\xd9\x91\xd9\x92\xd9\x93\xd9\x94\xd9\x95\xd9\x96\xd9\x97\xd9\x98\xd9\x99\xd9\x9a\xd9\x9b\xd9\x9c\xd9\x9d\xd9\x9e\xd9\x9f\xd9\xa0\xd9\xa1\xd9\xa2\xd9\xa3\xd9\xa4\xd9\xa5\xd9\xa6\xd9\xa7\xd9\xa8\xd9\xa9\xd9\xaa\xd9\xab\xd9\xac\xd9\xad\xd9\xae\xd9\xaf\xd9\xb0\xd9\xb1\xd9\xb2\xd9\xb3\xd9\xb4\xd9\xb5\xd9\xb6\xd9\xb7\xd9\xb8\xd9\xb9\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf\xd9\xc0\xd9\xc1\xd9\xc2\xd9\xc3\xd9\xc4\xd9\xc5\xd9\xc6\xd9\xc7\xd9\xc8\xd9\xc9\xd9\xca\xd9\xcb\xd9\xcc\xd9\xcd\xd9\xce\xd9\xcf\xd9\xd0\xd9\xd1\xd9\xd2\xd9\xd3\xd9\xd4\xd9\xd5\xd9\xd6\xd9\xd7\xd9\xd8\xd9\xd9\xd9\xda\xd9\xdb\xd9\xdc\xd9\xdd", /* f180 */ "\xd9\xde\xd9\xdf\xd9\xe0\xd9\xe1\xd9\xe2\xd9\xe3\xd9\xe4\xd9\xe5\xd9\xe6\xd9\xe7\xd9\xe8\xd9\xe9\xd9\xea\xd9\xeb\xd9\xec\xd9\xed\xd9\xee\xd9\xef\xd9\xf0\xd9\xf1\xd9\xf2\xd9\xf3\xd9\xf4\xd9\xf5\xd9\xf6\xd9\xf7\xd9\xf8\xd9\xf9\xd9\xfa\xd9\xfb\xd9\xfc\xd9\xfd\xda\x41\xda\x42\xda\x43\xda\x44\xda\x45\xda\x46\xda\x47\xda\x48\xda\x49\xda\x4a\xda\x4b\xda\x4c\xda\x4d\xda\x4e\xda\x4f\xda\x50\xda\x51\xda\x52\xda\x53\xda\x54\xda\x55\xda\x56\xda\x57\xda\x58\xda\x59\xda\x5a\xda\x5b\xda\x5c\xda\x5d\xda\x5e\xda\x5f\xda\x60\xda\x61\xda\x62\xda\x63\xda\x64\xda\x65\xda\x66\xda\x67\xda\x68\xda\x69\xda\x6a\xda\x6b\xda\x6c\xda\x6d\xda\x6e\xda\x6f\xda\x70\xda\x71\xda\x72\xda\x73\xda\x74\xda\x75\xda\x76\xda\x77\xda\x78\xda\x79\xda\x7a\xda\x7b\xda\x7c\xda\x7d\xda\x7e\xda\x7f\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87\xda\x88\xda\x89\xda\x8a\xda\x8b\xda\x8c\xda\x8d\xda\x8e\xda\x8f\xda\x90\xda\x91\xda\x92\xda\x93\xda\x94\xda\x95\xda\x96\xda\x97\xda\x98\xda\x99\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f\xda\xa0\xda\xa1", /* f200 */ "\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8\xda\xa9\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9\xda\xba\xda\xbb\xda\xbc\xda\xbd\xda\xbe\xda\xbf\xda\xc0\xda\xc1\xda\xc2\xda\xc3\xda\xc4\xda\xc5\xda\xc6\xda\xc7\xda\xc8\xda\xc9\xda\xca\xda\xcb\xda\xcc\xda\xcd\xda\xce\xda\xcf\xda\xd0\xda\xd1\xda\xd2\xda\xd3\xda\xd4\xda\xd5\xda\xd6\xda\xd7\xda\xd8\xda\xd9\xda\xda\xda\xdb\xda\xdc\xda\xdd\xda\xde\xda\xdf\xda\xe0\xda\xe1\xda\xe2\xda\xe3\xda\xe4\xda\xe5\xda\xe6\xda\xe7\xda\xe8\xda\xe9\xda\xea\xda\xeb\xda\xec\xda\xed\xda\xee\xda\xef\xda\xf0\xda\xf1\xda\xf2\xda\xf3\xda\xf4\xda\xf5\xda\xf6\xda\xf7\xda\xf8\xda\xf9\xda\xfa\xda\xfb\xda\xfc\xda\xfd\xdb\x41\xdb\x42\xdb\x43\xdb\x44\xdb\x45\xdb\x46\xdb\x47\xdb\x48\xdb\x49\xdb\x4a\xdb\x4b\xdb\x4c\xdb\x4d\xdb\x4e\xdb\x4f\xdb\x50\xdb\x51\xdb\x52\xdb\x53\xdb\x54\xdb\x55\xdb\x56\xdb\x57\xdb\x58\xdb\x59\xdb\x5a\xdb\x5b\xdb\x5c\xdb\x5d\xdb\x5e\xdb\x5f\xdb\x60\xdb\x61\xdb\x62\xdb\x63\xdb\x64", /* f280 */ "\xdb\x65\xdb\x66\xdb\x67\xdb\x68\xdb\x69\xdb\x6a\xdb\x6b\xdb\x6c\xdb\x6d\xdb\x6e\xdb\x6f\xdb\x70\xdb\x71\xdb\x72\xdb\x73\xdb\x74\xdb\x75\xdb\x76\xdb\x77\xdb\x78\xdb\x79\xdb\x7a\xdb\x7b\xdb\x7c\xdb\x7d\xdb\x7e\xdb\x7f\xdb\x81\xdb\x82\xdb\x83\xdb\x84\xdb\x85\xdb\x86\xdb\x87\xdb\x88\xdb\x89\xdb\x8a\xdb\x8b\xdb\x8c\xdb\x8d\xdb\x8e\xdb\x8f\xdb\x90\xdb\x91\xdb\x92\xdb\x93\xdb\x94\xdb\x95\xdb\x96\xdb\x97\xdb\x98\xdb\x99\xdb\x9a\xdb\x9b\xdb\x9c\xdb\x9d\xdb\x9e\xdb\x9f\xdb\xa0\xdb\xa1\xdb\xa2\xdb\xa3\xdb\xa4\xdb\xa5\xdb\xa6\xdb\xa7\xdb\xa8\xdb\xa9\xdb\xaa\xdb\xab\xdb\xac\xdb\xad\xdb\xae\xdb\xaf\xdb\xb0\xdb\xb1\xdb\xb2\xdb\xb3\xdb\xb4\xdb\xb5\xdb\xb6\xdb\xb7\xdb\xb8\xdb\xb9\xdb\xba\xdb\xbb\xdb\xbc\xdb\xbd\xdb\xbe\xdb\xbf\xdb\xc0\xdb\xc1\xdb\xc2\xdb\xc3\xdb\xc4\xdb\xc5\xdb\xc6\xdb\xc7\xdb\xc8\xdb\xc9\xdb\xca\xdb\xcb\xdb\xcc\xdb\xcd\xdb\xce\xdb\xcf\xdb\xd0\xdb\xd1\xdb\xd2\xdb\xd3\xdb\xd4\xdb\xd5\xdb\xd6\xdb\xd7\xdb\xd8\xdb\xd9\xdb\xda\xdb\xdb\xdb\xdc\xdb\xdd\xdb\xde\xdb\xdf\xdb\xe0\xdb\xe1\xdb\xe2\xdb\xe3\xdb\xe4\xdb\xe5", /* f300 */ "\xdb\xe6\xdb\xe7\xdb\xe8\xdb\xe9\xdb\xea\xdb\xeb\xdb\xec\xdb\xed\xdb\xee\xdb\xef\xdb\xf0\xdb\xf1\xdb\xf2\xdb\xf3\xdb\xf4\xdb\xf5\xdb\xf6\xdb\xf7\xdb\xf8\xdb\xf9\xdb\xfa\xdb\xfb\xdb\xfc\xdb\xfd\xdc\x41\xdc\x42\xdc\x43\xdc\x44\xdc\x45\xdc\x46\xdc\x47\xdc\x48\xdc\x49\xdc\x4a\xdc\x4b\xdc\x4c\xdc\x4d\xdc\x4e\xdc\x4f\xdc\x50\xdc\x51\xdc\x52\xdc\x53\xdc\x54\xdc\x55\xdc\x56\xdc\x57\xdc\x58\xdc\x59\xdc\x5a\xdc\x5b\xdc\x5c\xdc\x5d\xdc\x5e\xdc\x5f\xdc\x60\xdc\x61\xdc\x62\xdc\x63\xdc\x64\xdc\x65\xdc\x66\xdc\x67\xdc\x68\xdc\x69\xdc\x6a\xdc\x6b\xdc\x6c\xdc\x6d\xdc\x6e\xdc\x6f\xdc\x70\xdc\x71\xdc\x72\xdc\x73\xdc\x74\xdc\x75\xdc\x76\xdc\x77\xdc\x78\xdc\x79\xdc\x7a\xdc\x7b\xdc\x7c\xdc\x7d\xdc\x7e\xdc\x7f\xdc\x81\xdc\x82\xdc\x83\xdc\x84\xdc\x85\xdc\x86\xdc\x87\xdc\x88\xdc\x89\xdc\x8a\xdc\x8b\xdc\x8c\xdc\x8d\xdc\x8e\xdc\x8f\xdc\x90\xdc\x91\xdc\x92\xdc\x93\xdc\x94\xdc\x95\xdc\x96\xdc\x97\xdc\x98\xdc\x99\xdc\x9a\xdc\x9b\xdc\x9c\xdc\x9d\xdc\x9e\xdc\x9f\xdc\xa0\xdc\xa1\xdc\xa2\xdc\xa3\xdc\xa4\xdc\xa5\xdc\xa6\xdc\xa7\xdc\xa8\xdc\xa9", /* f380 */ "\xdc\xaa\xdc\xab\xdc\xac\xdc\xad\xdc\xae\xdc\xaf\xdc\xb0\xdc\xb1\xdc\xb2\xdc\xb3\xdc\xb4\xdc\xb5\xdc\xb6\xdc\xb7\xdc\xb8\xdc\xb9\xdc\xba\xdc\xbb\xdc\xbc\xdc\xbd\xdc\xbe\xdc\xbf\xdc\xc0\xdc\xc1\xdc\xc2\xdc\xc3\xdc\xc4\xdc\xc5\xdc\xc6\xdc\xc7\xdc\xc8\xdc\xc9\xdc\xca\xdc\xcb\xdc\xcc\xdc\xcd\xdc\xce\xdc\xcf\xdc\xd0\xdc\xd1\xdc\xd2\xdc\xd3\xdc\xd4\xdc\xd5\xdc\xd6\xdc\xd7\xdc\xd8\xdc\xd9\xdc\xda\xdc\xdb\xdc\xdc\xdc\xdd\xdc\xde\xdc\xdf\xdc\xe0\xdc\xe1\xdc\xe2\xdc\xe3\xdc\xe4\xdc\xe5\xdc\xe6\xdc\xe7\xdc\xe8\xdc\xe9\xdc\xea\xdc\xeb\xdc\xec\xdc\xed\xdc\xee\xdc\xef\xdc\xf0\xdc\xf1\xdc\xf2\xdc\xf3\xdc\xf4\xdc\xf5\xdc\xf6\xdc\xf7\xdc\xf8\xdc\xf9\xdc\xfa\xdc\xfb\xdc\xfc\xdc\xfd\xdd\x41\xdd\x42\xdd\x43\xdd\x44\xdd\x45\xdd\x46\xdd\x47\xdd\x48\xdd\x49\xdd\x4a\xdd\x4b\xdd\x4c\xdd\x4d\xdd\x4e\xdd\x4f\xdd\x50\xdd\x51\xdd\x52\xdd\x53\xdd\x54\xdd\x55\xdd\x56\xdd\x57\xdd\x58\xdd\x59\xdd\x5a\xdd\x5b\xdd\x5c\xdd\x5d\xdd\x5e\xdd\x5f\xdd\x60\xdd\x61\xdd\x62\xdd\x63\xdd\x64\xdd\x65\xdd\x66\xdd\x67\xdd\x68\xdd\x69\xdd\x6a\xdd\x6b\xdd\x6c", /* f400 */ "\xdd\x6d\xdd\x6e\xdd\x6f\xdd\x70\xdd\x71\xdd\x72\xdd\x73\xdd\x74\xdd\x75\xdd\x76\xdd\x77\xdd\x78\xdd\x79\xdd\x7a\xdd\x7b\xdd\x7c\xdd\x7d\xdd\x7e\xdd\x7f\xdd\x81\xdd\x82\xdd\x83\xdd\x84\xdd\x85\xdd\x86\xdd\x87\xdd\x88\xdd\x89\xdd\x8a\xdd\x8b\xdd\x8c\xdd\x8d\xdd\x8e\xdd\x8f\xdd\x90\xdd\x91\xdd\x92\xdd\x93\xdd\x94\xdd\x95\xdd\x96\xdd\x97\xdd\x98\xdd\x99\xdd\x9a\xdd\x9b\xdd\x9c\xdd\x9d\xdd\x9e\xdd\x9f\xdd\xa0\xdd\xa1\xdd\xa2\xdd\xa3\xdd\xa4\xdd\xa5\xdd\xa6\xdd\xa7\xdd\xa8\xdd\xa9\xdd\xaa\xdd\xab\xdd\xac\xdd\xad\xdd\xae\xdd\xaf\xdd\xb0\xdd\xb1\xdd\xb2\xdd\xb3\xdd\xb4\xdd\xb5\xdd\xb6\xdd\xb7\xdd\xb8\xdd\xb9\xdd\xba\xdd\xbb\xdd\xbc\xdd\xbd\xdd\xbe\xdd\xbf\xdd\xc0\xdd\xc1\xdd\xc2\xdd\xc3\xdd\xc4\xdd\xc5\xdd\xc6\xdd\xc7\xdd\xc8\xdd\xc9\xdd\xca\xdd\xcb\xdd\xcc\xdd\xcd\xdd\xce\xdd\xcf\xdd\xd0\xdd\xd1\xdd\xd2\xdd\xd3\xdd\xd4\xdd\xd5\xdd\xd6\xdd\xd7\xdd\xd8\xdd\xd9\xdd\xda\xdd\xdb\xdd\xdc\xdd\xdd\xdd\xde\xdd\xdf\xdd\xe0\xdd\xe1\xdd\xe2\xdd\xe3\xdd\xe4\xdd\xe5\xdd\xe6\xdd\xe7\xdd\xe8\xdd\xe9\xdd\xea\xdd\xeb\xdd\xec\xdd\xed", /* f480 */ "\xdd\xee\xdd\xef\xdd\xf0\xdd\xf1\xdd\xf2\xdd\xf3\xdd\xf4\xdd\xf5\xdd\xf6\xdd\xf7\xdd\xf8\xdd\xf9\xdd\xfa\xdd\xfb\xdd\xfc\xdd\xfd\xde\x41\xde\x42\xde\x43\xde\x44\xde\x45\xde\x46\xde\x47\xde\x48\xde\x49\xde\x4a\xde\x4b\xde\x4c\xde\x4d\xde\x4e\xde\x4f\xde\x50\xde\x51\xde\x52\xde\x53\xde\x54\xde\x55\xde\x56\xde\x57\xde\x58\xde\x59\xde\x5a\xde\x5b\xde\x5c\xde\x5d\xde\x5e\xde\x5f\xde\x60\xde\x61\xde\x62\xde\x63\xde\x64\xde\x65\xde\x66\xde\x67\xde\x68\xde\x69\xde\x6a\xde\x6b\xde\x6c\xde\x6d\xde\x6e\xde\x6f\xde\x70\xde\x71\xde\x72\xde\x73\xde\x74\xde\x75\xde\x76\xde\x77\xde\x78\xde\x79\xde\x7a\xde\x7b\xde\x7c\xde\x7d\xde\x7e\xde\x7f\xde\x81\xde\x82\xde\x83\xde\x84\xde\x85\xde\x86\xde\x87\xde\x88\xde\x89\xde\x8a\xde\x8b\xde\x8c\xde\x8d\xde\x8e\xde\x8f\xde\x90\xde\x91\xde\x92\xde\x93\xde\x94\xde\x95\xde\x96\xde\x97\xde\x98\xde\x99\xde\x9a\xde\x9b\xde\x9c\xde\x9d\xde\x9e\xde\x9f\xde\xa0\xde\xa1\xde\xa2\xde\xa3\xde\xa4\xde\xa5\xde\xa6\xde\xa7\xde\xa8\xde\xa9\xde\xaa\xde\xab\xde\xac\xde\xad\xde\xae\xde\xaf\xde\xb0\xde\xb1", /* f500 */ "\xde\xb2\xde\xb3\xde\xb4\xde\xb5\xde\xb6\xde\xb7\xde\xb8\xde\xb9\xde\xba\xde\xbb\xde\xbc\xde\xbd\xde\xbe\xde\xbf\xde\xc0\xde\xc1\xde\xc2\xde\xc3\xde\xc4\xde\xc5\xde\xc6\xde\xc7\xde\xc8\xde\xc9\xde\xca\xde\xcb\xde\xcc\xde\xcd\xde\xce\xde\xcf\xde\xd0\xde\xd1\xde\xd2\xde\xd3\xde\xd4\xde\xd5\xde\xd6\xde\xd7\xde\xd8\xde\xd9\xde\xda\xde\xdb\xde\xdc\xde\xdd\xde\xde\xde\xdf\xde\xe0\xde\xe1\xde\xe2\xde\xe3\xde\xe4\xde\xe5\xde\xe6\xde\xe7\xde\xe8\xde\xe9\xde\xea\xde\xeb\xde\xec\xde\xed\xde\xee\xde\xef\xde\xf0\xde\xf1\xde\xf2\xde\xf3\xde\xf4\xde\xf5\xde\xf6\xde\xf7\xde\xf8\xde\xf9\xde\xfa\xde\xfb\xde\xfc\xde\xfd\xdf\x41\xdf\x42\xdf\x43\xdf\x44\xdf\x45\xdf\x46\xdf\x47\xdf\x48\xdf\x49\xdf\x4a\xdf\x4b\xdf\x4c\xdf\x4d\xdf\x4e\xdf\x4f\xdf\x50\xdf\x51\xdf\x52\xdf\x53\xdf\x54\xdf\x55\xdf\x56\xdf\x57\xdf\x58\xdf\x59\xdf\x5a\xdf\x5b\xdf\x5c\xdf\x5d\xdf\x5e\xdf\x5f\xdf\x60\xdf\x61\xdf\x62\xdf\x63\xdf\x64\xdf\x65\xdf\x66\xdf\x67\xdf\x68\xdf\x69\xdf\x6a\xdf\x6b\xdf\x6c\xdf\x6d\xdf\x6e\xdf\x6f\xdf\x70\xdf\x71\xdf\x72\xdf\x73\xdf\x74", /* f580 */ "\xdf\x75\xdf\x76\xdf\x77\xdf\x78\xdf\x79\xdf\x7a\xdf\x7b\xdf\x7c\xdf\x7d\xdf\x7e\xdf\x7f\xdf\x81\xdf\x82\xdf\x83\xdf\x84\xdf\x85\xdf\x86\xdf\x87\xdf\x88\xdf\x89\xdf\x8a\xdf\x8b\xdf\x8c\xdf\x8d\xdf\x8e\xdf\x8f\xdf\x90\xdf\x91\xdf\x92\xdf\x93\xdf\x94\xdf\x95\xdf\x96\xdf\x97\xdf\x98\xdf\x99\xdf\x9a\xdf\x9b\xdf\x9c\xdf\x9d\xdf\x9e\xdf\x9f\xdf\xa0\xdf\xa1\xdf\xa2\xdf\xa3\xdf\xa4\xdf\xa5\xdf\xa6\xdf\xa7\xdf\xa8\xdf\xa9\xdf\xaa\xdf\xab\xdf\xac\xdf\xad\xdf\xae\xdf\xaf\xdf\xb0\xdf\xb1\xdf\xb2\xdf\xb3\xdf\xb4\xdf\xb5\xdf\xb6\xdf\xb7\xdf\xb8\xdf\xb9\xdf\xba\xdf\xbb\xdf\xbc\xdf\xbd\xdf\xbe\xdf\xbf\xdf\xc0\xdf\xc1\xdf\xc2\xdf\xc3\xdf\xc4\xdf\xc5\xdf\xc6\xdf\xc7\xdf\xc8\xdf\xc9\xdf\xca\xdf\xcb\xdf\xcc\xdf\xcd\xdf\xce\xdf\xcf\xdf\xd0\xdf\xd1\xdf\xd2\xdf\xd3\xdf\xd4\xdf\xd5\xdf\xd6\xdf\xd7\xdf\xd8\xdf\xd9\xdf\xda\xdf\xdb\xdf\xdc\xdf\xdd\xdf\xde\xdf\xdf\xdf\xe0\xdf\xe1\xdf\xe2\xdf\xe3\xdf\xe4\xdf\xe5\xdf\xe6\xdf\xe7\xdf\xe8\xdf\xe9\xdf\xea\xdf\xeb\xdf\xec\xdf\xed\xdf\xee\xdf\xef\xdf\xf0\xdf\xf1\xdf\xf2\xdf\xf3\xdf\xf4\xdf\xf5", /* f600 */ "\xdf\xf6\xdf\xf7\xdf\xf8\xdf\xf9\xdf\xfa\xdf\xfb\xdf\xfc\xdf\xfd\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9", /* f680 */ "\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc\xe0\xfd\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c", /* f700 */ "\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd", /* f780 */ "\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1", /* f800 */ "\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\x00\x00\x00\x00\x44\x5c\x46\xa8\x46\xa9\x46\xaa\x46\xab\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x4b\x7a\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x41\x46\xa7\x47\x49\x46\xb6\x46\xbc\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xa4\x46\xa5\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xa0\x46\xa1\x46\xa2\x46\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x46\xbe\x46\xbf\x46\xc2\x46\xc3\x46\xc0\x46\xc1\x46\xbd\x47\x42\x47\x43\x47\x44\x00\x00\x47\x45\x47\x46\x47\x47\x47\x48\x47\x4a\x47\x4b\x47\x4c\x47\x4d\x47\x4e\x47\x4f\x47\x50\x47\x53\x47\x54\x46\xc4\x47\x55\x47\x56\x47\x57\x47\x58\x47\x59\x00\x00\x47\x5a\x47\x5b\x47\x5c\x47\x5d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fe80 */ NULL, /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x46\xb8\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x00\x00\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x47\x51\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-937_P110-1999 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\x27\x3d\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x35\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x3e\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x20\x27\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x23\x12\x22\x02\x22\x07\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\x00\x00\x00\x00\x22\x6a\x22\x6b\x00\x00\x22\x3d\x22\x1d\x00\x00\x22\x2c\x22\x08\x22\x0b\x22\x86\x22\x87\x22\x82\x22\x83\x00\x00\x00\x00\x22\x27\x22\x28\x21\xd2\x21\xd4\x22\x00\x22\x03\x21\x2b\x20\x30\x26\x6f\x26\x6d\x26\x6a\x20\x20\x20\x21\x00\xb6\x25\xef\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x01\x25\x03\x25\x0f\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x25\x13\x25\x1b\x25\x17\x25\x23\x25\x33\x25\x2b\x25\x3b\x25\x4b\x25\x20\x25\x2f\x25\x28\x25\x37\x25\x3f\x25\x1d\x25\x30\x25\x25\x25\x38\x25\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x14\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x20\x32\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x02\xba\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x66\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x67\x22\x35\x26\x40\x00\xd7\x00\xf7\x22\x25\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x00\xb4\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x21\x30\x22\x30\x23\x30\x24\x30\x25\x30\x26\x30\x27\x30\x28\x30\x29\x53\x41\x53\x44\x53\x45\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xca\x02\xc7\x02\xcb\x02\xd9\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ NULL, /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x81\x25\x82\x25\x83\x25\x84\x25\x85\x25\x86\x25\x87\x25\x88\x25\x8f\x25\x8e\x25\x8d\x25\x8c\x25\x8b\x25\x8a\x25\x89\x25\x3c\x25\x34\x25\x2c\x25\x24\x25\x1c\x25\x94\x25\x00\x25\x02\x25\x95\x25\x0c\x25\x10\x25\x14\x25\x18\x25\x6d\x25\x6e\x25\x70\x25\x6f", /* 4680 */ "\x00\x00\x25\x50\x25\x5e\x25\x6a\x25\x61\x25\xe2\x25\xe3\x25\xe5\x25\xe4\x25\x71\x25\x72\x25\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x41\xfe\x42\xfe\x43\xfe\x44\xfe\x3b\xfe\x3c\x00\x00\xfe\x31\xf8\x3f\xf8\x40\xf8\x41\xf8\x42\xfe\x35\xfe\x36\xfe\x37\xfe\x38\xfe\x39\xfe\x3a\xfe\x3d\xfe\x3e\xfe\x3f\xfe\x40\xfe\x33\x25\x74\xff\x0a\x30\x03\x32\xa3\x21\x05\xfe\x34\xfe\x4f\xfe\x49\xfe\x4a\xfe\x4d\xfe\x4e\xfe\x4b\xfe\x4c\xfe\x61\x22\x1a\x22\x52\x22\x61\x22\x29\x22\x2a\x22\xa5\x22\x20\x22\x1f\x22\xbf\x33\xd2\x33\xd1\x22\x2b\x22\x2e\x22\x95\x22\x99\x21\x96\x21\x97\x21\x99\x21\x98\x00\x00\x00\x00\x22\x15\x21\x09\x33\xd5\x33\x9c\x33\x9d\x33\x9e\x33\xce\x33\xa1\x33\x8e\x33\x8f\x33\xc4\x00\xb7\x00\x00\x00\x00\x00\x00\x30\x1d\x30\x1e\x00\x00\x00\x00\x00\x00\x21\xe7\x21\xb8\x21\xb9\x51\x59\x51\x5b\x51\x5e\x51\x5d\x51\x61\x51\x63\x55\xe7\x74\xe9\x7c\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x30\xfe\x50\xfe\x51\xfe\x52\xfe\x54\xfe\x55\xfe\x56\xfe\x57\xfe\x32\xfe\x58\xfe\x59\xfe\x5a\xfe\x5b\xfe\x5c\xfe\x5d\xfe\x5e\xff\xe3\x02\xcd\xfe\x5f\xfe\x60\xfe\x62\xfe\x63\xfe\x64\xfe\x65\xfe\x66\xfe\x68\xfe\x69\xfe\x6a\xfe\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4780 */ "\x00\x00\x24\x00\x24\x01\x24\x02\x24\x03\x24\x04\x24\x05\x24\x06\x24\x07\x24\x08\x24\x09\x24\x0a\x24\x0b\x24\x0c\x24\x0d\x24\x0e\x24\x0f\x24\x10\x24\x11\x24\x12\x24\x13\x24\x14\x24\x15\x24\x16\x24\x17\x24\x18\x24\x19\x24\x1a\x24\x1b\x24\x1c\x24\x1d\x24\x1e\x24\x1f\x24\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x28\x4e\x36\x4e\x3f\x4e\x59\x4e\x85\x4e\x8c\x4e\xa0\x4e\xba\x51\x3f\x51\x65\x51\x6b\x51\x82\x51\x96\x51\xab\x51\xe0\x51\xf5\x52\x00\x52\x9b\x52\xf9\x53\x15\x53\x1a\x53\x38\x53\x41\x53\x5c\x53\x69\x53\x82\x53\xb6\x53\xc8\x53\xe3\x56\xd7\x57\x1f\x58\xeb\x59\x0a\x59\x15\x59\x27\x59\x73\x5b\x50\x5b\x80\x5b\xf8\x5c\x0f\x5c\x22\x5c\x38\x5c\x6e\x5c\x71\x5d\xdb\x5d\xe5\x5d\xf1\x5d\xfe\x5e\x72\x5e\x7a\x5e\x7f\x5e\xf4\x5e\xfe\x5f\x0b\x5f\x13\x5f\x50\x5f\x61\x5f\x73\x5f\xc3\x62\x08\x62\x36\x62\x4b", /* 4880 */ "\x00\x00\x65\x2f\x65\x34\x65\x87\x65\x97\x65\xa4\x65\xb9\x65\xe0\x65\xe5\x66\xf0\x67\x08\x67\x28\x6b\x20\x6b\x62\x6b\x79\x6b\xb3\x6b\xcb\x6b\xd4\x6b\xdb\x6c\x0f\x6c\x14\x6c\x34\x70\x6b\x72\x2a\x72\x36\x72\x3b\x72\x3f\x72\x47\x72\x59\x72\x5b\x72\xac\x73\x84\x73\x89\x74\xdc\x74\xe6\x75\x18\x75\x1f\x75\x28\x75\x30\x75\x8b\x75\x92\x76\x76\x76\x7d\x76\xae\x76\xbf\x76\xee\x77\xdb\x77\xe2\x77\xf3\x79\x3a\x79\xb8\x79\xbe\x7a\x74\x7a\xcb\x7a\xf9\x7c\x73\x7c\xf8\x7f\x36\x7f\x51\x7f\x8a\x7f\xbd\x80\x01\x80\x0c\x80\x12\x80\x33\x80\x7f\x80\x89\x81\xe3\x81\xea\x81\xf3\x81\xfc\x82\x0c\x82\x1b\x82\x1f\x82\x6e\x82\x72\x82\x78\x86\x4d\x86\x6b\x88\x40\x88\x4c\x88\x63\x89\x7e\x89\x8b\x89\xd2\x8a\x00\x8c\x37\x8c\x46\x8c\x55\x8c\x78\x8c\x9d\x8d\x64\x8d\x70\x8d\xb3\x8e\xab\x8e\xca\x8f\x9b\x8f\xb0\x8f\xb5\x90\x91\x91\x49\x91\xc6\x91\xcc\x91\xd1\x95\x77\x95\x80\x96\x1c\x96\xb6\x96\xb9\x96\xe8\x97\x52\x97\x5e\x97\x62\x97\x69\x97\xcb\x97\xed\x97\xf3\x98\x01\x98\xa8\x98\xdb\x98\xdf\x99\x96\x99\x99\x99\xac\x9a\xa8\x9a\xd8\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xdf\x9b\x25\x9b\x2f\x9b\x32\x9b\x3c\x9b\x5a\x9c\xe5\x9e\x75\x9e\x7f\x9e\xa5\x9e\xbb\x9e\xc3\x9e\xcd\x9e\xd1\x9e\xf9\x9e\xfd\x9f\x0e\x9f\x13\x9f\x20\x9f\x3b\x9f\x4a\x9f\x52\x9f\x8d\x9f\x9c\x9f\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4980 */ NULL, /* 4a00 */ NULL, /* 4a80 */ NULL, /* 4b00 */ NULL, /* 4b80 */ NULL, /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x4e\x59\x4e\x01\x4e\x03\x4e\x43\x4e\x5d\x4e\x86\x4e\x8c\x4e\xba\x51\x3f\x51\x65\x51\x6b\x51\xe0\x52\x00\x52\x01\x52\x9b\x53\x15\x53\x41\x53\x5c\x53\xc8\x4e\x09\x4e\x0b\x4e\x08\x4e\x0a\x4e\x2b\x4e\x38\x51\xe1\x4e\x45\x4e\x48\x4e\x5f\x4e\x5e\x4e\x8e\x4e\xa1\x51\x40\x52\x03\x52\xfa\x53\x43\x53\xc9\x53\xe3\x57\x1f\x58\xeb\x59\x15\x59\x27\x59\x73\x5b\x50\x5b\x51\x5b\x53\x5b\xf8\x5c\x0f\x5c\x22\x5c\x38\x5c\x71\x5d\xdd\x5d\xe5\x5d\xf1\x5d\xf2\x5d\xf3\x5d\xfe\x5e\x72\x5e\xfe\x5f\x0b\x5f\x13\x62\x4d", /* 4c80 */ "\x00\x00\x4e\x11\x4e\x10\x4e\x0d\x4e\x2d\x4e\x30\x4e\x39\x4e\x4b\x5c\x39\x4e\x88\x4e\x91\x4e\x95\x4e\x92\x4e\x94\x4e\xa2\x4e\xc1\x4e\xc0\x4e\xc3\x4e\xc6\x4e\xc7\x4e\xcd\x4e\xca\x4e\xcb\x4e\xc4\x51\x43\x51\x41\x51\x67\x51\x6d\x51\x6e\x51\x6c\x51\x97\x51\xf6\x52\x06\x52\x07\x52\x08\x52\xfb\x52\xfe\x52\xff\x53\x16\x53\x39\x53\x48\x53\x47\x53\x45\x53\x5e\x53\x84\x53\xcb\x53\xca\x53\xcd\x58\xec\x59\x29\x59\x2b\x59\x2a\x59\x2d\x5b\x54\x5c\x11\x5c\x24\x5c\x3a\x5c\x6f\x5d\xf4\x5e\x7b\x5e\xff\x5f\x14\x5f\x15\x5f\xc3\x62\x08\x62\x36\x62\x4b\x62\x4e\x65\x2f\x65\x87\x65\x97\x65\xa4\x65\xb9\x65\xe5\x66\xf0\x67\x08\x67\x28\x6b\x20\x6b\x62\x6b\x79\x6b\xcb\x6b\xd4\x6b\xdb\x6c\x0f\x6c\x34\x70\x6b\x72\x2a\x72\x36\x72\x3b\x72\x47\x72\x59\x72\x5b\x72\xac\x73\x8b\x4e\x19\x4e\x16\x4e\x15\x4e\x14\x4e\x18\x4e\x3b\x4e\x4d\x4e\x4f\x4e\x4e\x4e\xe5\x4e\xd8\x4e\xd4\x4e\xd5\x4e\xd6\x4e\xd7\x4e\xe3\x4e\xe4\x4e\xd9\x4e\xde\x51\x45\x51\x44\x51\x89\x51\x8a\x51\xac\x51\xf9\x51\xfa\x51\xf8\x52\x0a\x52\xa0\x52\x9f\x53\x05\x53\x06\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x17\x53\x1d\x4e\xdf\x53\x4a\x53\x49\x53\x61\x53\x60\x53\x6f\x53\x6e\x53\xbb\x53\xef\x53\xe4\x53\xf3\x53\xec\x53\xee\x53\xe9\x53\xe8\x53\xfc\x53\xf8\x53\xf5\x53\xeb\x53\xe6\x53\xea\x53\xf2\x53\xf1\x53\xf0\x53\xe5\x53\xed\x53\xfb\x56\xdb\x56\xda\x59\x16\x59\x2e\x59\x31\x59\x74\x59\x76\x5b\x55\x5b\x83\x5c\x3c\x5d\xe8\x5d\xe7\x5d\xe6\x5e\x02\x5e\x03\x5e\x73\x5e\x7c\x5f\x01\x5f\x18\x5f\x17\x5f\xc5\x62\x0a\x62\x53\x62\x54\x62\x52\x62\x51\x65\xa5\x65\xe6\x67\x2e\x67\x2c\x67\x2a\x67\x2b\x67\x2d\x6b\x63", /* 4d80 */ "\x00\x00\x6b\xcd\x6c\x11\x6c\x10\x6c\x38\x6c\x41\x6c\x40\x6c\x3e\x72\xaf\x73\x84\x73\x89\x74\xdc\x74\xe6\x75\x18\x75\x1f\x75\x28\x75\x29\x75\x30\x75\x31\x75\x32\x75\x33\x75\x8b\x76\x7d\x76\xae\x76\xbf\x76\xee\x77\xdb\x77\xe2\x77\xf3\x79\x3a\x79\xbe\x7a\x74\x7a\xcb\x4e\x1e\x4e\x1f\x4e\x52\x4e\x53\x4e\x69\x4e\x99\x4e\xa4\x4e\xa6\x4e\xa5\x4e\xff\x4f\x09\x4f\x19\x4f\x0a\x4f\x15\x4f\x0d\x4f\x10\x4f\x11\x4f\x0f\x4e\xf2\x4e\xf6\x4e\xfb\x4e\xf0\x4e\xf3\x4e\xfd\x4f\x01\x4f\x0b\x51\x49\x51\x47\x51\x46\x51\x48\x51\x68\x51\x71\x51\x8d\x51\xb0\x52\x17\x52\x11\x52\x12\x52\x0e\x52\x16\x52\xa3\x53\x08\x53\x21\x53\x20\x53\x70\x53\x71\x54\x09\x54\x0f\x54\x0c\x54\x0a\x54\x10\x54\x01\x54\x0b\x54\x04\x54\x11\x54\x0d\x54\x08\x54\x03\x54\x0e\x54\x06\x54\x12\x56\xe0\x56\xde\x56\xdd\x57\x33\x57\x30\x57\x28\x57\x2d\x57\x2c\x57\x2f\x57\x29\x59\x19\x59\x1a\x59\x37\x59\x38\x59\x84\x59\x78\x59\x83\x59\x7d\x59\x79\x59\x82\x59\x81\x5b\x57\x5b\x58\x5b\x87\x5b\x88\x5b\x85\x5b\x89\x5b\xfa\x5c\x16\x5c\x79\x5d\xde\x5e\x06\x5e\x76\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x74\x5f\x0f\x5f\x1b\x5f\xd9\x5f\xd6\x62\x0e\x62\x0c\x62\x0d\x62\x10\x62\x63\x62\x5b\x62\x58\x65\x36\x65\xe9\x65\xe8\x65\xec\x65\xed\x66\xf2\x66\xf3\x67\x09\x67\x3d\x67\x34\x67\x31\x67\x35\x6b\x21\x6b\x64\x6b\x7b\x6c\x16\x6c\x5d\x6c\x57\x6c\x59\x6c\x5f\x6c\x60\x6c\x50\x6c\x55\x6c\x61\x6c\x5b\x6c\x4d\x6c\x4e\x70\x70\x72\x5f\x72\x5d\x76\x7e\x7a\xf9\x7c\x73\x7c\xf8\x7f\x36\x7f\x8a\x7f\xbd\x80\x01\x80\x03\x80\x0c\x80\x12\x80\x33\x80\x7f\x80\x89\x80\x8b\x80\x8c\x81\xe3\x81\xea\x81\xf3\x81\xfc\x82\x0c", /* 4e80 */ "\x00\x00\x82\x1b\x82\x1f\x82\x6e\x82\x72\x82\x7e\x86\x6b\x88\x40\x88\x4c\x88\x63\x89\x7f\x96\x21\x4e\x32\x4e\xa8\x4f\x4d\x4f\x4f\x4f\x47\x4f\x57\x4f\x5e\x4f\x34\x4f\x5b\x4f\x55\x4f\x30\x4f\x50\x4f\x51\x4f\x3d\x4f\x3a\x4f\x38\x4f\x43\x4f\x54\x4f\x3c\x4f\x46\x4f\x63\x4f\x5c\x4f\x60\x4f\x2f\x4f\x4e\x4f\x36\x4f\x59\x4f\x5d\x4f\x48\x4f\x5a\x51\x4c\x51\x4b\x51\x4d\x51\x75\x51\xb6\x51\xb7\x52\x25\x52\x24\x52\x29\x52\x2a\x52\x28\x52\xab\x52\xa9\x52\xaa\x52\xac\x53\x23\x53\x73\x53\x75\x54\x1d\x54\x2d\x54\x1e\x54\x3e\x54\x26\x54\x4e\x54\x27\x54\x46\x54\x43\x54\x33\x54\x48\x54\x42\x54\x1b\x54\x29\x54\x4a\x54\x39\x54\x3b\x54\x38\x54\x2e\x54\x35\x54\x36\x54\x20\x54\x3c\x54\x40\x54\x31\x54\x2b\x54\x1f\x54\x2c\x56\xea\x56\xf0\x56\xe4\x56\xeb\x57\x4a\x57\x51\x57\x40\x57\x4d\x57\x47\x57\x4e\x57\x3e\x57\x50\x57\x4f\x57\x3b\x58\xef\x59\x3e\x59\x9d\x59\x92\x59\xa8\x59\x9e\x59\xa3\x59\x99\x59\x96\x59\x8d\x59\xa4\x59\x93\x59\x8a\x59\xa5\x5b\x5d\x5b\x5c\x5b\x5a\x5b\x5b\x5b\x8c\x5b\x8b\x5b\x8f\x5c\x2c\x5c\x40\x5c\x41\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x3f\x5c\x3e\x5c\x90\x5c\x91\x5c\x94\x5c\x8c\x5d\xeb\x5e\x0c\x5e\x8f\x5e\x87\x5e\x8a\x5e\xf7\x5f\x04\x5f\x1f\x5f\x64\x5f\x62\x5f\x77\x5f\x79\x5f\xd8\x5f\xcc\x5f\xd7\x5f\xcd\x5f\xf1\x5f\xeb\x5f\xf8\x5f\xea\x62\x12\x62\x11\x62\x84\x62\x97\x62\x96\x62\x80\x62\x76\x62\x89\x62\x6d\x62\x8a\x62\x7c\x62\x7e\x62\x79\x62\x73\x62\x92\x62\x6f\x62\x98\x62\x6e\x62\x95\x62\x93\x62\x91\x62\x86\x65\x39\x65\x3b\x65\x38\x65\xf1\x66\xf4\x67\x5f\x67\x4e\x67\x4f\x67\x50\x67\x51\x67\x5c\x67\x56\x67\x5e\x67\x49\x67\x46", /* 4f80 */ "\x00\x00\x67\x60\x67\x53\x67\x57\x6b\x65\x6b\xcf\x6c\x42\x6c\x5e\x6c\x99\x6c\x81\x6c\x88\x6c\x89\x6c\x85\x6c\x9b\x6c\x6a\x6c\x7a\x6c\x90\x6c\x70\x6c\x8c\x6c\x68\x6c\x96\x6c\x92\x6c\x7d\x6c\x83\x6c\x72\x6c\x7e\x6c\x74\x6c\x86\x6c\x76\x6c\x8d\x6c\x94\x6c\x98\x6c\x82\x70\x76\x70\x7c\x70\x7d\x70\x78\x72\x62\x72\x61\x72\x60\x72\xc4\x72\xc2\x73\x96\x75\x2c\x75\x2b\x75\x37\x75\x38\x76\x82\x76\xef\x77\xe3\x79\xc1\x79\xc0\x79\xbf\x7a\x76\x7c\xfb\x7f\x55\x80\x96\x80\x93\x80\x9d\x80\x98\x80\x9b\x80\x9a\x80\xb2\x82\x6f\x82\x92\x82\x8b\x82\x8d\x89\x8b\x89\xd2\x8a\x00\x8c\x37\x8c\x46\x8c\x55\x8c\x9d\x8d\x64\x8d\x70\x8d\xb3\x8e\xab\x8e\xca\x8f\x9b\x8f\xb0\x8f\xc2\x8f\xc6\x8f\xc5\x8f\xc4\x5d\xe1\x90\x91\x90\xa2\x90\xaa\x90\xa6\x90\xa3\x91\x49\x91\xc6\x91\xcc\x96\x32\x96\x2e\x96\x31\x96\x2a\x96\x2c\x4e\x26\x4e\x56\x4e\x73\x4e\x8b\x4e\x9b\x4e\x9e\x4e\xab\x4e\xac\x4f\x6f\x4f\x9d\x4f\x8d\x4f\x73\x4f\x7f\x4f\x6c\x4f\x9b\x4f\x8b\x4f\x86\x4f\x83\x4f\x70\x4f\x75\x4f\x88\x4f\x69\x4f\x7b\x4f\x96\x4f\x7e\x4f\x8f\x4f\x91\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x7a\x51\x54\x51\x52\x51\x55\x51\x69\x51\x77\x51\x76\x51\x78\x51\xbd\x51\xfd\x52\x3b\x52\x38\x52\x37\x52\x3a\x52\x30\x52\x2e\x52\x36\x52\x41\x52\xbe\x52\xbb\x53\x52\x53\x54\x53\x53\x53\x51\x53\x66\x53\x77\x53\x78\x53\x79\x53\xd6\x53\xd4\x53\xd7\x54\x73\x54\x75\x54\x96\x54\x78\x54\x95\x54\x80\x54\x7b\x54\x77\x54\x84\x54\x92\x54\x86\x54\x7c\x54\x90\x54\x71\x54\x76\x54\x8c\x54\x9a\x54\x62\x54\x68\x54\x8b\x54\x7d\x54\x8e\x56\xfa\x57\x83\x57\x77\x57\x6a\x57\x69\x57\x61\x57\x66\x57\x64\x57\x7c\x59\x1c", /* 5080 */ "\x00\x00\x59\x49\x59\x47\x59\x48\x59\x44\x59\x54\x59\xbe\x59\xbb\x59\xd4\x59\xb9\x59\xae\x59\xd1\x59\xc6\x59\xd0\x59\xcd\x59\xcb\x59\xd3\x59\xca\x59\xaf\x59\xb3\x59\xd2\x59\xc5\x5b\x5f\x5b\x64\x5b\x63\x5b\x97\x5b\x9a\x5b\x98\x5b\x9c\x5b\x99\x5b\x9b\x5c\x1a\x5c\x48\x5c\x45\x5c\x46\x5c\xb7\x5c\xa1\x5c\xb8\x5c\xa9\x5c\xab\x5c\xb1\x5c\xb3\x5e\x18\x5e\x1a\x5e\x16\x5e\x15\x5e\x1b\x5e\x11\x5e\x78\x5e\x9a\x5e\x97\x5e\x9c\x5e\x95\x5e\x96\x5e\xf6\x5f\x26\x5f\x27\x5f\x29\x5f\x80\x5f\x81\x5f\x7f\x5f\x7c\x5f\xdd\x5f\xe0\x5f\xfd\x5f\xf5\x5f\xff\x60\x0f\x60\x14\x60\x2f\x60\x35\x60\x16\x60\x2a\x60\x15\x60\x21\x60\x27\x60\x29\x60\x2b\x60\x1b\x62\x16\x62\x15\x62\x3f\x62\x3e\x62\x40\x62\x7f\x62\xc9\x62\xcc\x62\xc4\x62\xbf\x62\xc2\x62\xb9\x62\xd2\x62\xdb\x62\xab\x62\xd3\x62\xd4\x62\xcb\x62\xc8\x62\xa8\x62\xbd\x62\xbc\x62\xd0\x62\xd9\x62\xc7\x62\xcd\x62\xb5\x62\xda\x62\xb1\x62\xd8\x62\xd6\x62\xd7\x62\xc6\x62\xac\x62\xce\x65\x3e\x65\xa7\x65\xbc\x65\xfa\x66\x14\x66\x13\x66\x0c\x66\x06\x66\x02\x66\x0e\x66\x00\x66\x0f\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x15\x66\x0a\x66\x07\x67\x0d\x67\x0b\x67\x6d\x67\x8b\x67\x95\x67\x71\x67\x9c\x67\x73\x67\x77\x67\x87\x67\x9d\x67\x97\x67\x6f\x67\x70\x67\x7f\x67\x89\x67\x7e\x67\x90\x67\x75\x67\x9a\x67\x93\x67\x7c\x67\x6a\x67\x72\x6b\x23\x6b\x66\x6b\x67\x6b\x7f\x6c\x13\x6c\x1b\x6c\xe3\x6c\xe8\x6c\xf3\x6c\xb1\x6c\xcc\x6c\xe5\x6c\xb3\x6c\xbd\x6c\xbe\x6c\xbc\x6c\xe2\x6c\xab\x6c\xd5\x6c\xd3\x6c\xb8\x6c\xc4\x6c\xb9\x6c\xc1\x6c\xae\x6c\xd7\x6c\xc5\x6c\xf1\x6c\xbf\x6c\xbb\x6c\xe1\x6c\xdb\x6c\xca\x6c\xac\x6c\xef\x6c\xdc", /* 5180 */ "\x00\x00\x6c\xd6\x6c\xe0\x70\x95\x70\x8e\x70\x92\x70\x8a\x70\x99\x72\x2c\x72\x2d\x72\x38\x72\x48\x72\x67\x72\x69\x72\xc0\x72\xce\x72\xd9\x72\xd7\x72\xd0\x73\xa9\x73\xa8\x73\x9f\x73\xab\x73\xa5\x75\x3d\x75\x9d\x75\x99\x75\x9a\x76\x84\x76\xc2\x76\xf2\x76\xf4\x77\xe5\x77\xfd\x79\x3e\x79\x40\x79\x41\x79\xc9\x79\xc8\x7a\x7a\x7a\x79\x7a\xfa\x7c\xfe\x7f\x54\x7f\x8c\x7f\x8b\x80\x05\x80\xba\x80\xa5\x80\xa2\x80\xb1\x80\xa1\x80\xab\x80\xa9\x80\xb4\x80\xaa\x80\xaf\x81\xe5\x81\xfe\x82\x0d\x82\xb3\x82\x9d\x82\x99\x82\xad\x82\xbd\x82\x9f\x82\xb9\x82\xb1\x82\xac\x82\xa5\x82\xaf\x82\xb8\x82\xa3\x82\xb0\x82\xbe\x82\xb7\x86\x4e\x86\x71\x52\x1d\x88\x68\x8e\xcb\x8f\xce\x8f\xd4\x8f\xd1\x90\xb5\x90\xb8\x90\xb1\x90\xb6\x91\xc7\x91\xd1\x95\x77\x95\x80\x96\x1c\x96\x40\x96\x3f\x96\x3b\x96\x44\x96\x42\x96\xb9\x96\xe8\x97\x52\x97\x5e\x4e\x9f\x4e\xad\x4e\xae\x4f\xe1\x4f\xb5\x4f\xaf\x4f\xbf\x4f\xe0\x4f\xd1\x4f\xcf\x4f\xdd\x4f\xc3\x4f\xb6\x4f\xd8\x4f\xdf\x4f\xca\x4f\xd7\x4f\xae\x4f\xd0\x4f\xc4\x4f\xc2\x4f\xda\x4f\xce\x4f\xde\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xb7\x51\x57\x51\x92\x51\x91\x51\xa0\x52\x4e\x52\x43\x52\x4a\x52\x4d\x52\x4c\x52\x4b\x52\x47\x52\xc7\x52\xc9\x52\xc3\x52\xc1\x53\x0d\x53\x57\x53\x7b\x53\x9a\x53\xdb\x54\xac\x54\xc0\x54\xa8\x54\xce\x54\xc9\x54\xb8\x54\xa6\x54\xb3\x54\xc7\x54\xc2\x54\xbd\x54\xaa\x54\xc1\x54\xc4\x54\xc8\x54\xaf\x54\xab\x54\xb1\x54\xbb\x54\xa9\x54\xa7\x54\xbf\x56\xff\x57\x82\x57\x8b\x57\xa0\x57\xa3\x57\xa2\x57\xce\x57\xae\x57\x93\x59\x55\x59\x51\x59\x4f\x59\x4e\x59\x50\x59\xdc\x59\xd8\x59\xff\x59\xe3\x59\xe8\x5a\x03", /* 5280 */ "\x00\x00\x59\xe5\x59\xea\x59\xda\x59\xe6\x5a\x01\x59\xfb\x5b\x69\x5b\xa3\x5b\xa6\x5b\xa4\x5b\xa2\x5b\xa5\x5c\x01\x5c\x4e\x5c\x4f\x5c\x4d\x5c\x4b\x5c\xd9\x5c\xd2\x5d\xf7\x5e\x1d\x5e\x25\x5e\x1f\x5e\x7d\x5e\xa0\x5e\xa6\x5e\xfa\x5f\x08\x5f\x2d\x5f\x65\x5f\x88\x5f\x85\x5f\x8a\x5f\x8b\x5f\x87\x5f\x8c\x5f\x89\x60\x12\x60\x1d\x60\x20\x60\x25\x60\x0e\x60\x28\x60\x4d\x60\x70\x60\x68\x60\x62\x60\x46\x60\x43\x60\x6c\x60\x6b\x60\x6a\x60\x64\x62\x41\x62\xdc\x63\x16\x63\x09\x62\xfc\x62\xed\x63\x01\x62\xee\x62\xfd\x63\x07\x62\xf1\x62\xf7\x62\xef\x62\xec\x62\xfe\x62\xf4\x63\x11\x63\x02\x65\x3f\x65\x45\x65\xab\x65\xbd\x65\xe2\x66\x25\x66\x2d\x66\x20\x66\x27\x66\x2f\x66\x1f\x66\x28\x66\x31\x66\x24\x66\xf7\x67\xff\x67\xd3\x67\xf1\x67\xd4\x67\xd0\x67\xec\x67\xb6\x67\xaf\x67\xf5\x67\xe9\x67\xef\x67\xc4\x67\xd1\x67\xb4\x67\xda\x67\xe5\x67\xb8\x67\xcf\x67\xde\x67\xf3\x67\xb0\x67\xd9\x67\xe2\x67\xdd\x67\xd2\x6b\x6a\x6b\x83\x6b\x86\x6b\xb5\x6b\xd2\x6b\xd7\x6c\x1f\x6c\xc9\x6d\x0b\x6d\x32\x6d\x2a\x6d\x41\x6d\x25\x6d\x0c\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x31\x6d\x1e\x6d\x17\x6d\x3b\x6d\x3d\x6d\x3e\x6d\x36\x6d\x1b\x6c\xf5\x6d\x39\x6d\x27\x6d\x38\x6d\x29\x6d\x2e\x6d\x35\x6d\x0e\x6d\x2b\x70\xab\x70\xba\x70\xb3\x70\xac\x70\xaf\x70\xad\x70\xb8\x70\xae\x70\xa4\x72\x30\x72\x72\x72\x6f\x72\x74\x72\xe9\x72\xe0\x72\xe1\x73\xb7\x73\xca\x73\xbb\x73\xb2\x73\xcd\x73\xc0\x73\xb3\x75\x1a\x75\x2d\x75\x4f\x75\x4c\x75\x4e\x75\x4b\x75\xab\x75\xa4\x75\xa5\x75\xa2\x75\xa3\x76\x78\x76\x86\x76\x87\x76\x88\x76\xc8\x76\xc6\x76\xc3\x76\xc5\x77\x01\x76\xf9\x76\xf8\x77\x09", /* 5380 */ "\x00\x00\x77\x0b\x76\xfe\x76\xfc\x77\x07\x77\xdc\x78\x02\x78\x14\x78\x0c\x78\x0d\x79\x46\x79\x49\x79\x48\x79\x47\x79\xb9\x79\xba\x79\xd1\x79\xd2\x79\xcb\x7a\x7f\x7a\x81\x7a\xff\x7a\xfd\x7c\x7d\x7d\x02\x7d\x05\x7d\x00\x7d\x09\x7d\x07\x7d\x04\x7d\x06\x7f\x38\x7f\x8e\x7f\xbf\x80\x04\x80\x10\x80\x0d\x80\x11\x80\x36\x80\xd6\x80\xe5\x80\xda\x80\xc3\x80\xc4\x80\xcc\x80\xe1\x80\xdb\x80\xce\x80\xde\x80\xe4\x80\xdd\x81\xf4\x82\x22\x82\xe7\x83\x03\x83\x05\x82\xe3\x82\xdb\x82\xe6\x83\x04\x82\xe5\x83\x02\x83\x09\x82\xd2\x82\xd7\x82\xf1\x83\x01\x82\xdc\x82\xd4\x82\xd1\x82\xde\x82\xd3\x82\xdf\x82\xef\x83\x06\x86\x50\x86\x79\x86\x7b\x86\x7a\x88\x4d\x88\x6b\x89\x81\x89\xd4\x8a\x08\x8a\x02\x8a\x03\x8c\x9e\x8c\xa0\x8d\x74\x8d\x73\x8d\xb4\x8e\xcd\x8e\xcc\x8f\xf0\x8f\xe6\x8f\xe2\x8f\xea\x8f\xe5\x8f\xed\x8f\xeb\x8f\xe4\x8f\xe8\x90\xca\x90\xce\x90\xc1\x90\xc3\x91\x4b\x91\x4a\x91\xcd\x95\x82\x96\x50\x96\x4b\x96\x4c\x96\x4d\x97\x62\x97\x69\x97\xcb\x97\xed\x97\xf3\x98\x01\x98\xa8\x98\xdb\x98\xdf\x99\x96\x99\x99\x4e\x58\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\xb3\x50\x0c\x50\x0d\x50\x23\x4f\xef\x50\x26\x50\x25\x4f\xf8\x50\x29\x50\x16\x50\x06\x50\x3c\x50\x1f\x50\x1a\x50\x12\x50\x11\x4f\xfa\x50\x00\x50\x14\x50\x28\x4f\xf1\x50\x21\x50\x0b\x50\x19\x50\x18\x4f\xf3\x4f\xee\x50\x2d\x50\x2a\x4f\xfe\x50\x2b\x50\x09\x51\x7c\x51\xa4\x51\xa5\x51\xa2\x51\xcd\x51\xcc\x51\xc6\x51\xcb\x52\x56\x52\x5c\x52\x54\x52\x5b\x52\x5d\x53\x2a\x53\x7f\x53\x9f\x53\x9d\x53\xdf\x54\xe8\x55\x10\x55\x01\x55\x37\x54\xfc\x54\xe5\x54\xf2\x55\x06\x54\xfa\x55\x14\x54\xe9\x54\xed\x54\xe1", /* 5480 */ "\x00\x00\x55\x09\x54\xee\x54\xea\x54\xe6\x55\x27\x55\x07\x54\xfd\x55\x0f\x57\x03\x57\x04\x57\xc2\x57\xd4\x57\xcb\x57\xc3\x58\x09\x59\x0f\x59\x57\x59\x58\x59\x5a\x5a\x11\x5a\x18\x5a\x1c\x5a\x1f\x5a\x1b\x5a\x13\x59\xec\x5a\x20\x5a\x23\x5a\x29\x5a\x25\x5a\x0c\x5a\x09\x5b\x6b\x5c\x58\x5b\xb0\x5b\xb3\x5b\xb6\x5b\xb4\x5b\xae\x5b\xb5\x5b\xb9\x5b\xb8\x5c\x04\x5c\x51\x5c\x55\x5c\x50\x5c\xed\x5c\xfd\x5c\xfb\x5c\xea\x5c\xe8\x5c\xf0\x5c\xf6\x5d\x01\x5c\xf4\x5d\xee\x5e\x2d\x5e\x2b\x5e\xab\x5e\xad\x5e\xa7\x5f\x31\x5f\x92\x5f\x91\x5f\x90\x60\x59\x60\x63\x60\x65\x60\x50\x60\x55\x60\x6d\x60\x69\x60\x6f\x60\x84\x60\x9f\x60\x9a\x60\x8d\x60\x94\x60\x8c\x60\x85\x60\x96\x62\x47\x62\xf3\x63\x08\x62\xff\x63\x4e\x63\x3e\x63\x2f\x63\x55\x63\x42\x63\x46\x63\x4f\x63\x49\x63\x3a\x63\x50\x63\x3d\x63\x2a\x63\x2b\x63\x28\x63\x4d\x63\x4c\x65\x48\x65\x49\x65\x99\x65\xc1\x65\xc5\x66\x42\x66\x49\x66\x4f\x66\x43\x66\x52\x66\x4c\x66\x45\x66\x41\x66\xf8\x67\x14\x67\x15\x67\x17\x68\x21\x68\x38\x68\x48\x68\x46\x68\x53\x68\x39\x68\x42\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x54\x68\x29\x68\xb3\x68\x17\x68\x4c\x68\x51\x68\x3d\x67\xf4\x68\x50\x68\x40\x68\x3c\x68\x43\x68\x2a\x68\x45\x68\x13\x68\x18\x68\x41\x6b\x8a\x6b\x89\x6b\xb7\x6c\x23\x6c\x27\x6c\x28\x6c\x26\x6c\x24\x6c\xf0\x6d\x6a\x6d\x95\x6d\x88\x6d\x87\x6d\x66\x6d\x78\x6d\x77\x6d\x59\x6d\x93\x6d\x6c\x6d\x89\x6d\x6e\x6d\x5a\x6d\x74\x6d\x69\x6d\x8c\x6d\x8a\x6d\x79\x6d\x85\x6d\x65\x6d\x94\x70\xca\x70\xd8\x70\xe4\x70\xd9\x70\xc8\x70\xcf\x72\x39\x72\x79\x72\xfc\x72\xf9\x72\xfd\x72\xf8\x72\xf7\x73\x86\x73\xed\x74\x09", /* 5580 */ "\x00\x00\x73\xee\x73\xe0\x73\xea\x73\xde\x75\x54\x75\x5d\x75\x5c\x75\x5a\x75\x59\x75\xbe\x75\xc5\x75\xc7\x75\xb2\x75\xb3\x75\xbd\x75\xbc\x75\xb9\x75\xc2\x75\xb8\x76\x8b\x76\xb0\x76\xca\x76\xcd\x76\xce\x77\x29\x77\x1f\x77\x20\x77\x28\x77\xe9\x78\x30\x78\x27\x78\x38\x78\x1d\x78\x34\x78\x37\x78\x25\x78\x2d\x78\x20\x78\x1f\x78\x32\x79\x55\x79\x50\x79\x60\x79\x5f\x79\x56\x79\x5e\x79\x5d\x79\x57\x79\x5a\x79\xe4\x79\xe3\x79\xe7\x79\xdf\x79\xe6\x79\xe9\x79\xd8\x7a\x84\x7a\x88\x7a\xd9\x7b\x06\x7b\x11\x7c\x89\x7d\x21\x7d\x17\x7d\x0b\x7d\x0a\x7d\x20\x7d\x22\x7d\x14\x7d\x10\x7d\x15\x7d\x1a\x7d\x1c\x7d\x0d\x7d\x19\x7d\x1b\x7f\x3a\x7f\x5f\x7f\x94\x7f\xc5\x7f\xc1\x80\x06\x80\x18\x80\x15\x80\x19\x80\x17\x80\x3d\x80\x3f\x80\xf1\x81\x02\x80\xf0\x81\x05\x80\xed\x80\xf4\x81\x06\x80\xf8\x80\xf3\x81\x08\x80\xfd\x81\x0a\x80\xfc\x80\xef\x81\xed\x81\xec\x82\x00\x82\x10\x82\x2a\x82\x2b\x82\x28\x82\x2c\x82\xbb\x83\x2b\x83\x52\x83\x54\x83\x4a\x83\x38\x83\x50\x83\x49\x83\x35\x83\x34\x83\x4f\x83\x32\x83\x39\x83\x36\x83\x17\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x40\x83\x31\x83\x28\x83\x43\x86\x54\x86\x8a\x86\xaa\x86\x93\x86\xa4\x86\xa9\x86\x8c\x86\xa3\x86\x9c\x88\x70\x88\x77\x88\x81\x88\x82\x88\x7d\x88\x79\x8a\x18\x8a\x10\x8a\x0e\x8a\x0c\x8a\x15\x8a\x0a\x8a\x17\x8a\x13\x8a\x16\x8a\x0f\x8a\x11\x8c\x48\x8c\x7a\x8c\x79\x8c\xa1\x8c\xa2\x8d\x77\x8e\xac\x8e\xd2\x8e\xd4\x8e\xcf\x8f\xb1\x90\x01\x90\x06\x8f\xf7\x90\x00\x8f\xfa\x8f\xf4\x90\x03\x8f\xfd\x90\x05\x8f\xf8\x90\x95\x90\xe1\x90\xdd\x90\xe2\x91\x52\x91\x4d\x91\x4c\x91\xd8\x91\xdd\x91\xd7\x91\xdc\x91\xd9", /* 5680 */ "\x00\x00\x95\x83\x96\x62\x96\x63\x96\x61\x96\x5b\x96\x5d\x96\x64\x96\x58\x96\x5e\x96\xbb\x98\xe2\x99\xac\x9a\xa8\x9a\xd8\x9b\x25\x9b\x32\x9b\x3c\x4e\x7e\x50\x7a\x50\x7d\x50\x5c\x50\x47\x50\x43\x50\x4c\x50\x5a\x50\x49\x50\x65\x50\x76\x50\x4e\x50\x55\x50\x75\x50\x74\x50\x77\x50\x4f\x50\x0f\x50\x6f\x50\x6d\x51\x5c\x51\x95\x51\xf0\x52\x6a\x52\x6f\x52\xd2\x52\xd9\x52\xd8\x52\xd5\x53\x10\x53\x0f\x53\x19\x53\x3f\x53\x40\x53\x3e\x53\xc3\x66\xfc\x55\x46\x55\x6a\x55\x66\x55\x44\x55\x5e\x55\x61\x55\x43\x55\x4a\x55\x31\x55\x56\x55\x4f\x55\x55\x55\x2f\x55\x64\x55\x38\x55\x2e\x55\x5c\x55\x2c\x55\x63\x55\x33\x55\x41\x55\x57\x57\x08\x57\x0b\x57\x09\x57\xdf\x58\x05\x58\x0a\x58\x06\x57\xe0\x57\xe4\x57\xfa\x58\x02\x58\x35\x57\xf7\x57\xf9\x59\x20\x59\x62\x5a\x36\x5a\x41\x5a\x49\x5a\x66\x5a\x6a\x5a\x40\x5a\x3c\x5a\x62\x5a\x5a\x5a\x46\x5a\x4a\x5b\x70\x5b\xc7\x5b\xc5\x5b\xc4\x5b\xc2\x5b\xbf\x5b\xc6\x5c\x09\x5c\x08\x5c\x07\x5c\x60\x5c\x5c\x5c\x5d\x5d\x07\x5d\x06\x5d\x0e\x5d\x1b\x5d\x16\x5d\x22\x5d\x11\x5d\x29\x5d\x14\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x19\x5d\x24\x5d\x27\x5d\x17\x5d\xe2\x5e\x38\x5e\x36\x5e\x33\x5e\x37\x5e\xb7\x5e\xb8\x5e\xb6\x5e\xb5\x5e\xbe\x5f\x35\x5f\x37\x5f\x57\x5f\x6c\x5f\x69\x5f\x6b\x5f\x97\x5f\x99\x5f\x9e\x5f\x98\x5f\xa1\x5f\xa0\x5f\x9c\x60\x7f\x60\xa3\x60\x89\x60\xa0\x60\xa8\x60\xcb\x60\xb4\x60\xe6\x60\xbd\x60\xc5\x60\xbb\x60\xb5\x60\xdc\x60\xbc\x60\xd8\x60\xd5\x60\xc6\x60\xdf\x60\xb8\x60\xda\x60\xc7\x62\x1a\x62\x1b\x62\x48\x63\xa0\x63\xa7\x63\x72\x63\x96\x63\xa2\x63\xa5\x63\x77\x63\x67\x63\x98\x63\xaa\x63\x71\x63\xa9", /* 5780 */ "\x00\x00\x63\x89\x63\x83\x63\x9b\x63\x6b\x63\xa8\x63\x84\x63\x88\x63\x99\x63\xa1\x63\xac\x63\x92\x63\x8f\x63\x80\x63\x7b\x63\x69\x63\x68\x63\x7a\x65\x5d\x65\x56\x65\x51\x65\x59\x65\x57\x55\x5f\x65\x4f\x65\x58\x65\x55\x65\x54\x65\x9c\x65\x9b\x65\xac\x65\xcf\x65\xcb\x65\xcc\x65\xce\x66\x5d\x66\x5a\x66\x64\x66\x68\x66\x66\x66\x5e\x66\xf9\x52\xd7\x67\x1b\x68\x81\x68\xaf\x68\xa2\x68\x93\x68\xb5\x68\x7f\x68\x76\x68\xb1\x68\xa7\x68\x97\x68\xb0\x68\x83\x68\xc4\x68\xad\x68\x86\x68\x85\x68\x94\x68\x9d\x68\xa8\x68\x9f\x68\xa1\x68\x82\x6b\x32\x6b\xba\x6b\xeb\x6b\xec\x6c\x2b\x6d\x8e\x6d\xbc\x6d\xf3\x6d\xd9\x6d\xb2\x6d\xe1\x6d\xcc\x6d\xe4\x6d\xfb\x6d\xfa\x6e\x05\x6d\xc7\x6d\xcb\x6d\xaf\x6d\xd1\x6d\xae\x6d\xde\x6d\xf9\x6d\xb8\x6d\xf7\x6d\xf5\x6d\xc5\x6d\xd2\x6e\x1a\x6d\xb5\x6d\xda\x6d\xeb\x6d\xd8\x6d\xea\x6d\xf1\x6d\xee\x6d\xe8\x6d\xc6\x6d\xc4\x6d\xaa\x6d\xec\x6d\xbf\x6d\xe6\x70\xf9\x71\x09\x71\x0a\x70\xfd\x70\xef\x72\x3d\x72\x7d\x72\x81\x73\x1c\x73\x1b\x73\x16\x73\x13\x73\x19\x73\x87\x74\x05\x74\x0a\x74\x03\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x06\x73\xfe\x74\x0d\x74\xe0\x74\xf6\x74\xf7\x75\x1c\x75\x22\x75\x65\x75\x66\x75\x62\x75\x70\x75\x8f\x75\xd4\x75\xd5\x75\xb5\x75\xca\x75\xcd\x76\x8e\x76\xd4\x76\xd2\x76\xdb\x77\x37\x77\x3e\x77\x3c\x77\x36\x77\x38\x77\x3a\x78\x6b\x78\x43\x78\x4e\x79\x65\x79\x68\x79\x6d\x79\xfb\x7a\x92\x7a\x95\x7b\x20\x7b\x28\x7b\x1b\x7b\x2c\x7b\x26\x7b\x19\x7b\x1e\x7b\x2e\x7c\x92\x7c\x97\x7c\x95\x7d\x46\x7d\x43\x7d\x71\x7d\x2e\x7d\x39\x7d\x3c\x7d\x40\x7d\x30\x7d\x33\x7d\x44\x7d\x2f\x7d\x42\x7d\x32\x7d\x31\x7f\x3d", /* 5880 */ "\x00\x00\x7f\x9e\x7f\x9a\x7f\xcc\x7f\xce\x7f\xd2\x80\x1c\x80\x4a\x80\x46\x81\x2f\x81\x16\x81\x23\x81\x2b\x81\x29\x81\x30\x81\x24\x82\x02\x82\x35\x82\x37\x82\x36\x82\x39\x83\x8e\x83\x9e\x83\x98\x83\x78\x83\xa2\x83\x96\x83\xbd\x83\xab\x83\x92\x83\x8a\x83\x93\x83\x89\x83\xa0\x83\x77\x83\x7b\x83\x7c\x83\x86\x83\xa7\x86\x55\x5f\x6a\x86\xc7\x86\xc0\x86\xb6\x86\xc4\x86\xb5\x86\xc6\x86\xcb\x86\xb1\x86\xaf\x86\xc9\x88\x53\x88\x9e\x88\x88\x88\xab\x88\x92\x88\x96\x88\x8d\x88\x8b\x89\x93\x89\x8f\x8a\x2a\x8a\x1d\x8a\x23\x8a\x25\x8a\x31\x8a\x2d\x8a\x1f\x8a\x1b\x8a\x22\x8c\x49\x8c\x5a\x8c\xa9\x8c\xac\x8c\xab\x8c\xa8\x8c\xaa\x8c\xa7\x8d\x67\x8d\x66\x8d\xbe\x8d\xba\x8e\xdb\x8e\xdf\x90\x19\x90\x0d\x90\x1a\x90\x17\x90\x23\x90\x1f\x90\x1d\x90\x10\x90\x15\x90\x1e\x90\x20\x90\x0f\x90\x22\x90\x16\x90\x1b\x90\x14\x90\xe8\x90\xed\x90\xfd\x91\x57\x91\xce\x91\xf5\x91\xe6\x91\xe3\x91\xe7\x91\xed\x91\xe9\x95\x89\x96\x6a\x96\x75\x96\x73\x96\x78\x96\x70\x96\x74\x96\x76\x96\x77\x96\x6c\x96\xc0\x96\xea\x96\xe9\x7a\xe0\x7a\xdf\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x02\x98\x03\x9b\x5a\x9c\xe5\x9e\x75\x9e\x7f\x9e\xa5\x9e\xbb\x50\xa2\x50\x8d\x50\x85\x50\x99\x50\x91\x50\x80\x50\x96\x50\x98\x50\x9a\x67\x00\x51\xf1\x52\x72\x52\x74\x52\x75\x52\x69\x52\xde\x52\xdd\x52\xdb\x53\x5a\x53\xa5\x55\x7b\x55\x80\x55\xa7\x55\x7c\x55\x8a\x55\x9d\x55\x98\x55\x82\x55\x9c\x55\xaa\x55\x94\x55\x87\x55\x8b\x55\x83\x55\xb3\x55\xae\x55\x9f\x55\x3e\x55\xb2\x55\x9a\x55\xbb\x55\xac\x55\xb1\x55\x7e\x55\x89\x55\xab\x55\x99\x57\x0d\x58\x2f\x58\x2a\x58\x34\x58\x24\x58\x30\x58\x31\x58\x21", /* 5980 */ "\x00\x00\x58\x1d\x58\x20\x58\xf9\x58\xfa\x59\x60\x5a\x77\x5a\x9a\x5a\x7f\x5a\x92\x5a\x9b\x5a\xa7\x5b\x73\x5b\x71\x5b\xd2\x5b\xcc\x5b\xd3\x5b\xd0\x5c\x0a\x5c\x0b\x5c\x31\x5d\x4c\x5d\x50\x5d\x34\x5d\x47\x5d\xfd\x5e\x45\x5e\x3d\x5e\x40\x5e\x43\x5e\x7e\x5e\xca\x5e\xc1\x5e\xc2\x5e\xc4\x5f\x3c\x5f\x6d\x5f\xa9\x5f\xaa\x5f\xa8\x60\xd1\x60\xe1\x60\xb2\x60\xb6\x60\xe0\x61\x1c\x61\x23\x60\xfa\x61\x15\x60\xf0\x60\xfb\x60\xf4\x61\x68\x60\xf1\x61\x0e\x60\xf6\x61\x09\x61\x00\x61\x12\x62\x1f\x62\x49\x63\xa3\x63\x8c\x63\xcf\x63\xc0\x63\xe9\x63\xc9\x63\xc6\x63\xcd\x63\xd2\x63\xe3\x63\xd0\x63\xe1\x63\xd6\x63\xed\x63\xee\x63\x76\x63\xf4\x63\xea\x63\xdb\x64\x52\x63\xda\x63\xf9\x65\x5e\x65\x66\x65\x62\x65\x63\x65\x91\x65\x90\x65\xaf\x66\x6e\x66\x70\x66\x74\x66\x76\x66\x6f\x66\x91\x66\x7a\x66\x7e\x66\x77\x66\xfe\x66\xff\x67\x1f\x67\x1d\x68\xfa\x68\xd5\x68\xe0\x68\xd8\x68\xd7\x69\x05\x68\xdf\x68\xf5\x68\xee\x68\xe7\x68\xf9\x68\xd2\x68\xf2\x68\xe3\x68\xcb\x68\xcd\x69\x0d\x69\x12\x69\x0e\x68\xc9\x68\xda\x69\x6e\x68\xfb\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x3e\x6b\x3a\x6b\x3d\x6b\x98\x6b\x96\x6b\xbc\x6b\xef\x6c\x2e\x6c\x2f\x6c\x2c\x6e\x2f\x6e\x38\x6e\x54\x6e\x21\x6e\x32\x6e\x67\x6e\x4a\x6e\x20\x6e\x25\x6e\x23\x6e\x1b\x6e\x5b\x6e\x58\x6e\x24\x6e\x56\x6e\x6e\x6e\x2d\x6e\x26\x6e\x6f\x6e\x34\x6e\x4d\x6e\x3a\x6e\x2c\x6e\x43\x6e\x1d\x6e\x3e\x6e\xcb\x6e\x89\x6e\x19\x6e\x4e\x6e\x63\x6e\x44\x6e\x72\x6e\x69\x6e\x5f\x71\x19\x71\x1a\x71\x26\x71\x30\x71\x21\x71\x36\x71\x6e\x71\x1c\x72\x4c\x72\x84\x72\x80\x73\x36\x73\x25\x73\x34\x73\x29\x74\x3a\x74\x2a\x74\x33", /* 5a80 */ "\x00\x00\x74\x22\x74\x25\x74\x35\x74\x36\x74\x34\x74\x2f\x74\x1b\x74\x26\x74\x28\x75\x25\x75\x26\x75\x6b\x75\x6a\x75\xe2\x75\xdb\x75\xe3\x75\xd9\x75\xd8\x75\xde\x75\xe0\x76\x7b\x76\x7c\x76\x96\x76\x93\x76\xb4\x76\xdc\x77\x4f\x77\xed\x78\x5d\x78\x6c\x78\x6f\x7a\x0d\x7a\x08\x7a\x0b\x7a\x05\x7a\x00\x7a\x98\x7a\x97\x7a\x96\x7a\xe5\x7a\xe3\x7b\x49\x7b\x56\x7b\x46\x7b\x50\x7b\x52\x7b\x54\x7b\x4d\x7b\x4b\x7b\x4f\x7b\x51\x7c\x9f\x7c\xa5\x7d\x5e\x7d\x50\x7d\x68\x7d\x55\x7d\x2b\x7d\x6e\x7d\x72\x7d\x61\x7d\x66\x7d\x62\x7d\x70\x7d\x73\x55\x84\x7f\xd4\x7f\xd5\x80\x0b\x80\x52\x80\x85\x81\x55\x81\x54\x81\x4b\x81\x51\x81\x4e\x81\x39\x81\x46\x81\x3e\x81\x4c\x81\x53\x81\x74\x82\x12\x82\x1c\x83\xe9\x84\x03\x83\xf8\x84\x0d\x83\xe0\x83\xc5\x84\x0b\x83\xc1\x83\xef\x83\xf1\x83\xf4\x84\x57\x84\x0a\x83\xf0\x84\x0c\x83\xcc\x83\xfd\x83\xf2\x83\xca\x84\x38\x84\x0e\x84\x04\x83\xdc\x84\x07\x83\xd4\x83\xdf\x86\x5b\x86\xdf\x86\xd9\x86\xed\x86\xd4\x86\xdb\x86\xe4\x86\xd0\x86\xde\x88\x57\x88\xc1\x88\xc2\x88\xb1\x89\x83\x89\x96\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x3b\x8a\x60\x8a\x55\x8a\x5e\x8a\x3c\x8a\x41\x8a\x54\x8a\x5b\x8a\x50\x8a\x46\x8a\x34\x8a\x3a\x8a\x36\x8a\x56\x8c\x61\x8c\x82\x8c\xaf\x8c\xbc\x8c\xb3\x8c\xbd\x8c\xc1\x8c\xbb\x8c\xc0\x8c\xb4\x8c\xb7\x8c\xb6\x8c\xbf\x8c\xb8\x8d\x8a\x8d\x85\x8d\x81\x8d\xce\x8d\xdd\x8d\xcb\x8d\xda\x8d\xd1\x8d\xcc\x8d\xdb\x8d\xc6\x8e\xfb\x8e\xf8\x8e\xfc\x8f\x9c\x90\x2e\x90\x35\x90\x31\x90\x38\x90\x32\x90\x36\x91\x02\x90\xf5\x91\x09\x90\xfe\x91\x63\x91\x65\x91\xcf\x92\x14\x92\x15\x92\x23\x92\x09\x92\x1e\x92\x0d\x92\x10", /* 5b80 */ "\x00\x00\x92\x07\x92\x11\x95\x94\x95\x8f\x95\x8b\x95\x91\x95\x93\x95\x92\x95\x8e\x96\x8a\x96\x8e\x96\x8b\x96\x7d\x96\x85\x96\x86\x96\x8d\x96\x72\x96\x84\x96\xc1\x96\xc5\x96\xc4\x96\xc6\x96\xc7\x96\xef\x96\xf2\x97\xcc\x98\x05\x98\x06\x98\x08\x98\xe7\x98\xea\x98\xef\x98\xe9\x98\xf2\x98\xed\x99\xae\x99\xad\x9e\xc3\x9e\xcd\x9e\xd1\x4e\x82\x50\xad\x50\xb5\x50\xb2\x50\xb3\x50\xc5\x50\xbe\x50\xac\x50\xb7\x50\xbb\x50\xaf\x50\xc7\x52\x7f\x52\x77\x52\x7d\x52\xdf\x52\xe6\x52\xe4\x52\xe2\x52\xe3\x53\x2f\x55\xdf\x55\xe8\x55\xd3\x55\xe6\x55\xce\x55\xdc\x55\xc7\x55\xd1\x55\xe3\x55\xe4\x55\xef\x55\xda\x55\xe1\x55\xc5\x55\xc6\x55\xe5\x55\xc9\x57\x12\x57\x13\x58\x5e\x58\x51\x58\x58\x58\x57\x58\x5a\x58\x54\x58\x6b\x58\x4c\x58\x6d\x58\x4a\x58\x62\x58\x52\x58\x4b\x59\x67\x5a\xc1\x5a\xc9\x5a\xcc\x5a\xbe\x5a\xbd\x5a\xbc\x5a\xb3\x5a\xc2\x5a\xb2\x5d\x69\x5d\x6f\x5e\x4c\x5e\x79\x5e\xc9\x5e\xc8\x5f\x12\x5f\x59\x5f\xac\x5f\xae\x61\x1a\x61\x0f\x61\x48\x61\x1f\x60\xf3\x61\x1b\x60\xf9\x61\x01\x61\x08\x61\x4e\x61\x4c\x61\x44\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x4d\x61\x3e\x61\x34\x61\x27\x61\x0d\x61\x06\x61\x37\x62\x21\x62\x22\x64\x13\x64\x3e\x64\x1e\x64\x2a\x64\x2d\x64\x3d\x64\x2c\x64\x0f\x64\x1c\x64\x14\x64\x0d\x64\x36\x64\x16\x64\x17\x64\x06\x65\x6c\x65\x9f\x65\xb0\x66\x97\x66\x89\x66\x87\x66\x88\x66\x96\x66\x84\x66\x98\x66\x8d\x67\x03\x69\x94\x69\x6d\x69\x5a\x69\x77\x69\x60\x69\x54\x69\x75\x69\x30\x69\x82\x69\x4a\x69\x68\x69\x6b\x69\x5e\x69\x53\x69\x79\x69\x86\x69\x5d\x69\x63\x69\x5b\x6b\x47\x6b\x72\x6b\xc0\x6b\xbf\x6b\xd3\x6b\xfd\x6e\xa2\x6e\xaf", /* 5c80 */ "\x00\x00\x6e\xd3\x6e\xb6\x6e\xc2\x6e\x90\x6e\x9d\x6e\xc7\x6e\xc5\x6e\xa5\x6e\x98\x6e\xbc\x6e\xba\x6e\xab\x6e\xd1\x6e\x96\x6e\x9c\x6e\xc4\x6e\xd4\x6e\xaa\x6e\xa7\x6e\xb4\x71\x4e\x71\x59\x71\x69\x71\x64\x71\x49\x71\x67\x71\x5c\x71\x6c\x71\x66\x71\x4c\x71\x65\x71\x5e\x71\x46\x71\x68\x71\x56\x72\x3a\x72\x52\x73\x37\x73\x45\x73\x3f\x73\x3e\x74\x6f\x74\x5a\x74\x55\x74\x5f\x74\x5e\x74\x41\x74\x3f\x74\x59\x74\x5b\x74\x5c\x75\x76\x75\x78\x76\x00\x75\xf0\x76\x01\x75\xf2\x75\xf1\x75\xfa\x75\xff\x75\xf4\x75\xf3\x76\xde\x76\xdf\x77\x5b\x77\x6b\x77\x66\x77\x5e\x77\x63\x77\x79\x77\x6a\x77\x6c\x77\x5c\x77\x65\x77\x68\x77\x62\x77\xee\x78\x8e\x78\xb0\x78\x97\x78\x98\x78\x8c\x78\x89\x78\x7c\x78\x91\x78\x93\x78\x7f\x79\x7a\x79\x7f\x79\x81\x84\x2c\x79\xbd\x7a\x1c\x7a\x1a\x7a\x20\x7a\x14\x7a\x1f\x7a\x1e\x7a\x9f\x7a\xa0\x7b\x77\x7b\xc0\x7b\x60\x7b\x6e\x7b\x67\x7c\xb1\x7c\xb3\x7c\xb5\x7d\x93\x7d\x79\x7d\x91\x7d\x81\x7d\x8f\x7d\x5b\x7f\x6e\x7f\x69\x7f\x6a\x7f\x72\x7f\xa9\x7f\xa8\x7f\xa4\x80\x56\x80\x58\x80\x86\x80\x84\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x71\x81\x70\x81\x78\x81\x65\x81\x6e\x81\x73\x81\x6b\x81\x79\x81\x7a\x81\x66\x82\x05\x82\x47\x84\x82\x84\x77\x84\x3d\x84\x31\x84\x75\x84\x66\x84\x6b\x84\x49\x84\x6c\x84\x5b\x84\x3c\x84\x35\x84\x61\x84\x63\x84\x69\x84\x6d\x84\x46\x86\x5e\x86\x5c\x86\x5f\x86\xf9\x87\x13\x87\x08\x87\x07\x87\x00\x86\xfe\x86\xfb\x87\x02\x87\x03\x87\x06\x87\x0a\x88\x59\x88\xdf\x88\xd4\x88\xd9\x88\xdc\x88\xd8\x88\xdd\x88\xe1\x88\xca\x88\xd5\x88\xd2\x89\x9c\x89\xe3\x8a\x6b\x8a\x72\x8a\x73\x8a\x66\x8a\x69\x8a\x70\x8a\x87", /* 5d80 */ "\x00\x00\x8a\x7c\x8a\x63\x8a\xa0\x8a\x71\x8a\x85\x8a\x6d\x8a\x62\x8a\x6e\x8a\x6c\x8a\x79\x8a\x7b\x8a\x3e\x8a\x68\x8c\x62\x8c\x8a\x8c\x89\x8c\xca\x8c\xc7\x8c\xc8\x8c\xc4\x8c\xb2\x8c\xc3\x8c\xc2\x8c\xc5\x8d\xe1\x8d\xdf\x8d\xe8\x8d\xef\x8d\xf3\x8d\xfa\x8d\xea\x8d\xe4\x8d\xe6\x8e\xb2\x8f\x03\x8f\x09\x8e\xfe\x8f\x0a\x8f\x9f\x8f\xb2\x90\x4b\x90\x4a\x90\x53\x90\x42\x90\x54\x90\x3c\x90\x55\x90\x50\x90\x47\x90\x4f\x90\x4e\x90\x4d\x90\x51\x90\x3e\x90\x41\x91\x12\x91\x17\x91\x6c\x91\x6a\x91\x69\x91\xc9\x92\x37\x92\x57\x92\x38\x92\x3d\x92\x40\x92\x3e\x92\x5b\x92\x4b\x92\x64\x92\x51\x92\x34\x92\x49\x92\x4d\x92\x45\x92\x39\x92\x3f\x92\x5a\x95\x98\x96\x98\x96\x94\x96\x95\x96\xcd\x96\xcb\x96\xc9\x96\xca\x96\xf7\x96\xfb\x96\xf9\x96\xf6\x97\x56\x97\x74\x97\x76\x98\x10\x98\x11\x98\x13\x98\x0a\x98\x12\x98\x0c\x98\xfc\x98\xf4\x98\xfd\x98\xfe\x99\xb3\x99\xb1\x99\xb4\x9a\xe1\x9c\xe9\x9e\x82\x9f\x0e\x9f\x13\x9f\x20\x50\xe7\x50\xee\x50\xe5\x50\xd6\x50\xed\x50\xda\x50\xd5\x50\xcf\x50\xd1\x50\xf1\x50\xce\x50\xe9\x51\x62\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xf3\x52\x83\x52\x82\x53\x31\x53\xad\x55\xfe\x56\x00\x56\x1b\x56\x17\x55\xfd\x56\x14\x56\x06\x56\x09\x56\x0d\x56\x0e\x55\xf7\x56\x16\x56\x1f\x56\x08\x56\x10\x55\xf6\x57\x18\x57\x16\x58\x75\x58\x7e\x58\x83\x58\x93\x58\x8a\x58\x79\x58\x85\x58\x7d\x58\xfd\x59\x25\x59\x22\x59\x24\x59\x6a\x59\x69\x5a\xe1\x5a\xe6\x5a\xe9\x5a\xd7\x5a\xd6\x5a\xd8\x5a\xe3\x5b\x75\x5b\xde\x5b\xe7\x5b\xe1\x5b\xe5\x5b\xe6\x5b\xe8\x5b\xe2\x5b\xe4\x5b\xdf\x5c\x0d\x5c\x62\x5d\x84\x5d\x87\x5e\x5b\x5e\x63\x5e\x55\x5e\x57\x5e\x54", /* 5e80 */ "\x00\x00\x5e\xd3\x5e\xd6\x5f\x0a\x5f\x46\x5f\x70\x5f\xb9\x61\x47\x61\x3f\x61\x4b\x61\x77\x61\x62\x61\x63\x61\x5f\x61\x5a\x61\x58\x61\x75\x62\x2a\x64\x87\x64\x58\x64\x54\x64\xa4\x64\x78\x64\x5f\x64\x7a\x64\x51\x64\x67\x64\x34\x64\x6d\x64\x7b\x65\x72\x65\xa1\x65\xd7\x65\xd6\x66\xa2\x66\xa8\x66\x9d\x69\x9c\x69\xa8\x69\x95\x69\xc1\x69\xae\x69\xd3\x69\xcb\x69\x9b\x69\xb7\x69\xbb\x69\xab\x69\xb4\x69\xd0\x69\xcd\x69\xad\x69\xcc\x69\xa6\x69\xc3\x69\xa3\x6b\x49\x6b\x4c\x6c\x33\x6f\x33\x6f\x14\x6e\xfe\x6f\x13\x6e\xf4\x6f\x29\x6f\x3e\x6f\x20\x6f\x2c\x6f\x0f\x6f\x02\x6f\x22\x6e\xff\x6e\xef\x6f\x06\x6f\x31\x6f\x38\x6f\x32\x6f\x23\x6f\x15\x6f\x2b\x6f\x2f\x6f\x88\x6f\x2a\x6e\xec\x6f\x01\x6e\xf2\x6e\xcc\x6e\xf7\x71\x94\x71\x99\x71\x7d\x71\x8a\x71\x84\x71\x92\x72\x3e\x72\x92\x72\x96\x73\x44\x73\x50\x74\x64\x74\x63\x74\x6a\x74\x70\x74\x6d\x75\x04\x75\x91\x76\x27\x76\x0d\x76\x0b\x76\x09\x76\x13\x76\xe1\x76\xe3\x77\x84\x77\x7d\x77\x7f\x77\x61\x78\xc1\x78\x9f\x78\xa7\x78\xb3\x78\xa9\x78\xa3\x79\x8e\x79\x8f\x79\x8d\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x2e\x7a\x31\x7a\xaa\x7a\xa9\x7a\xed\x7a\xef\x7b\xa1\x7b\x95\x7b\x8b\x7b\x75\x7b\x97\x7b\x9d\x7b\x94\x7b\x8f\x7b\xb8\x7b\x87\x7b\x84\x7c\xb9\x7c\xbd\x7c\xbe\x7d\xbb\x7d\xb0\x7d\x9c\x7d\xbd\x7d\xbe\x7d\xa0\x7d\xca\x7d\xb4\x7d\xb2\x7d\xb1\x7d\xba\x7d\xa2\x7d\xbf\x7d\xb5\x7d\xb8\x7d\xad\x7d\xd2\x7d\xc7\x7d\xac\x7f\x70\x7f\xe0\x7f\xe1\x7f\xdf\x80\x5e\x80\x5a\x80\x87\x81\x50\x81\x80\x81\x8f\x81\x88\x81\x8a\x81\x7f\x81\x82\x81\xe7\x81\xfa\x82\x07\x82\x14\x82\x1e\x82\x4b\x84\xc9\x84\xbf\x84\xc6\x84\xc4", /* 5f80 */ "\x00\x00\x84\x99\x84\x9e\x84\xb2\x84\x9c\x84\xcb\x84\xb8\x84\xc0\x84\xd3\x84\x90\x84\xbc\x84\xd1\x84\xca\x87\x3f\x87\x1c\x87\x3b\x87\x22\x87\x25\x87\x34\x87\x18\x87\x55\x87\x37\x87\x29\x88\xf3\x89\x02\x88\xf4\x88\xf9\x88\xf8\x88\xfd\x88\xe8\x89\x1a\x88\xef\x8a\xa6\x8a\x8c\x8a\x9e\x8a\xa3\x8a\x8d\x8a\xa1\x8a\x93\x8a\xa4\x8a\xaa\x8a\xa5\x8a\xa8\x8a\x98\x8a\x91\x8a\x9a\x8a\xa7\x8c\x6a\x8c\x8d\x8c\x8c\x8c\xd3\x8c\xd1\x8c\xd2\x8d\x6b\x8d\x99\x8d\x95\x8d\xfc\x8f\x14\x8f\x12\x8f\x15\x8f\x13\x8f\xa3\x90\x60\x90\x58\x90\x5c\x90\x63\x90\x59\x90\x5e\x90\x62\x90\x5d\x90\x5b\x91\x19\x91\x18\x91\x1e\x91\x75\x91\x78\x91\x77\x91\x74\x92\x78\x92\x80\x92\x85\x92\x98\x92\x96\x92\x7b\x92\x93\x92\x9c\x92\xa8\x92\x7c\x92\x91\x95\xa1\x95\xa8\x95\xa9\x95\xa3\x95\xa5\x95\xa4\x96\x99\x96\x9c\x96\x9b\x96\xcc\x96\xd2\x97\x00\x97\x7c\x97\x85\x97\xf6\x98\x17\x98\x18\x98\xaf\x98\xb1\x99\x03\x99\x05\x99\x0c\x99\x09\x99\xc1\x9a\xaf\x9a\xb0\x9a\xe6\x9b\x41\x9b\x42\x9c\xf4\x9c\xf6\x9c\xf3\x9e\xbc\x9f\x3b\x9f\x4a\x51\x04\x51\x00\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xfb\x50\xf5\x50\xf9\x51\x02\x51\x08\x51\x09\x51\x05\x51\xdc\x52\x87\x52\x88\x52\x89\x52\x8d\x52\x8a\x52\xf0\x53\xb2\x56\x2e\x56\x3b\x56\x39\x56\x32\x56\x3f\x56\x34\x56\x29\x56\x53\x56\x4e\x56\x57\x56\x74\x56\x36\x56\x2f\x56\x30\x58\x80\x58\x9f\x58\x9e\x58\xb3\x58\x9c\x58\xae\x58\xa9\x58\xa6\x59\x6d\x5b\x09\x5a\xfb\x5b\x0b\x5a\xf5\x5b\x0c\x5b\x08\x5b\xee\x5b\xec\x5b\xe9\x5b\xeb\x5c\x64\x5c\x65\x5d\x9d\x5d\x94\x5e\x62\x5e\x5f\x5e\x61\x5e\xe2\x5e\xda\x5e\xdf\x5e\xdd\x5e\xe3\x5e\xe0\x5f\x48\x5f\x71", /* 6080 */ "\x00\x00\x5f\xb7\x5f\xb5\x61\x76\x61\x67\x61\x6e\x61\x5d\x61\x55\x61\x82\x61\x7c\x61\x70\x61\x6b\x61\x7e\x61\xa7\x61\x90\x61\xab\x61\x8e\x61\xac\x61\x9a\x61\xa4\x61\x94\x61\xae\x62\x2e\x64\x69\x64\x6f\x64\x79\x64\x9e\x64\xb2\x64\x88\x64\x90\x64\xb0\x64\xa5\x64\x93\x64\x95\x64\xa9\x64\x92\x64\xae\x64\xad\x64\xab\x64\x9a\x64\xac\x64\x99\x64\xa2\x64\xb3\x65\x75\x65\x77\x65\x78\x66\xae\x66\xab\x66\xb4\x66\xb1\x6a\x23\x6a\x1f\x69\xe8\x6a\x01\x6a\x1e\x6a\x19\x69\xfd\x6a\x21\x6a\x13\x6a\x0a\x69\xf3\x6a\x02\x6a\x05\x69\xed\x6a\x11\x6b\x50\x6b\x4e\x6b\xa4\x6b\xc5\x6b\xc6\x6f\x3f\x6f\x7c\x6f\x84\x6f\x51\x6f\x66\x6f\x54\x6f\x86\x6f\x6d\x6f\x5b\x6f\x78\x6f\x6e\x6f\x8e\x6f\x7a\x6f\x70\x6f\x64\x6f\x97\x6f\x58\x6e\xd5\x6f\x6f\x6f\x60\x6f\x5f\x71\x9f\x71\xac\x71\xb1\x71\xa8\x72\x56\x72\x9b\x73\x4e\x73\x57\x74\x69\x74\x8b\x74\x83\x74\x7e\x74\x80\x75\x7f\x76\x20\x76\x29\x76\x1f\x76\x24\x76\x26\x76\x21\x76\x22\x76\x9a\x76\xba\x76\xe4\x77\x8e\x77\x87\x77\x8c\x77\x91\x77\x8b\x78\xcb\x78\xc5\x78\xba\x78\xca\x78\xbe\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xd5\x78\xbc\x78\xd0\x7a\x3f\x7a\x3c\x7a\x40\x7a\x3d\x7a\x37\x7a\x3b\x7a\xaf\x7a\xae\x7b\xad\x7b\xb1\x7b\xc4\x7b\xb4\x7b\xc6\x7b\xc7\x7b\xc1\x7b\xa0\x7b\xcc\x7c\xca\x7d\xe0\x7d\xf4\x7d\xef\x7d\xfb\x7d\xd8\x7d\xec\x7d\xdd\x7d\xe8\x7d\xe3\x7d\xda\x7d\xde\x7d\xe9\x7d\x9e\x7d\xd9\x7d\xf2\x7d\xf9\x7f\x75\x7f\x77\x7f\xaf\x7f\xe9\x80\x26\x81\x9b\x81\x9c\x81\x9d\x81\xa0\x81\x9a\x81\x98\x85\x17\x85\x3d\x85\x1a\x84\xee\x85\x2c\x85\x2d\x85\x13\x85\x11\x85\x23\x85\x21\x85\x14\x84\xec\x85\x25\x84\xff\x85\x06", /* 6180 */ "\x00\x00\x87\x82\x87\x74\x87\x76\x87\x60\x87\x66\x87\x78\x87\x68\x87\x59\x87\x57\x87\x4c\x87\x53\x88\x5b\x88\x5d\x89\x10\x89\x07\x89\x12\x89\x13\x89\x15\x89\x0a\x8a\xbc\x8a\xd2\x8a\xc7\x8a\xc4\x8a\x95\x8a\xcb\x8a\xf8\x8a\xb2\x8a\xc9\x8a\xc2\x8a\xbf\x8a\xb0\x8a\xd6\x8a\xcd\x8a\xb6\x8a\xb9\x8a\xdb\x8c\x4c\x8c\x4e\x8c\x6c\x8c\xe0\x8c\xde\x8c\xe6\x8c\xe4\x8c\xec\x8c\xed\x8c\xe2\x8c\xe3\x8c\xdc\x8c\xea\x8c\xe1\x8d\x6d\x8d\x9f\x8d\xa3\x8e\x2b\x8e\x10\x8e\x1d\x8e\x22\x8e\x0f\x8e\x29\x8e\x1f\x8e\x21\x8e\x1e\x8e\xba\x8f\x1d\x8f\x1b\x8f\x1f\x8f\x29\x8f\x26\x8f\x2a\x8f\x1c\x8f\x1e\x8f\x25\x90\x69\x90\x6e\x90\x68\x90\x6d\x90\x77\x91\x30\x91\x2d\x91\x27\x91\x31\x91\x87\x91\x89\x91\x8b\x91\x83\x92\xc5\x92\xbb\x92\xb7\x92\xea\x92\xac\x92\xe4\x92\xc1\x92\xb3\x92\xbc\x92\xd2\x92\xc7\x92\xf0\x92\xb2\x95\xad\x95\xb1\x97\x04\x97\x06\x97\x07\x97\x09\x97\x60\x97\x8d\x97\x8b\x97\x8f\x98\x21\x98\x2b\x98\x1c\x98\xb3\x99\x0a\x99\x13\x99\x12\x99\x18\x99\xdd\x99\xd0\x99\xdf\x99\xdb\x99\xd1\x99\xd5\x99\xd2\x99\xd9\x9a\xb7\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xee\x9a\xef\x9b\x27\x9b\x45\x9b\x44\x9b\x77\x9b\x6f\x9d\x06\x9d\x09\x9d\x03\x9e\xa9\x9e\xbe\x9e\xce\x58\xa8\x9f\x52\x51\x12\x51\x18\x51\x14\x51\x10\x51\x15\x51\x80\x51\xaa\x51\xdd\x52\x91\x52\x93\x52\xf3\x56\x59\x56\x6b\x56\x79\x56\x69\x56\x64\x56\x78\x56\x6a\x56\x68\x56\x65\x56\x71\x56\x6f\x56\x6c\x56\x62\x56\x76\x58\xc1\x58\xbe\x58\xc7\x58\xc5\x59\x6e\x5b\x1d\x5b\x34\x5b\x78\x5b\xf0\x5c\x0e\x5f\x4a\x61\xb2\x61\x91\x61\xa9\x61\x8a\x61\xcd\x61\xb6\x61\xbe\x61\xca\x61\xc8\x62\x30\x64\xc5\x64\xc1", /* 6280 */ "\x00\x00\x64\xcb\x64\xbb\x64\xbc\x64\xda\x64\xc4\x64\xc7\x64\xc2\x64\xcd\x64\xbf\x64\xd2\x64\xd4\x64\xbe\x65\x74\x66\xc6\x66\xc9\x66\xb9\x66\xc4\x66\xc7\x66\xb8\x6a\x3d\x6a\x38\x6a\x3a\x6a\x59\x6a\x6b\x6a\x58\x6a\x39\x6a\x44\x6a\x62\x6a\x61\x6a\x4b\x6a\x47\x6a\x35\x6a\x5f\x6a\x48\x6b\x59\x6b\x77\x6c\x05\x6f\xc2\x6f\xb1\x6f\xa1\x6f\xc3\x6f\xa4\x6f\xc1\x6f\xa7\x6f\xb3\x6f\xc0\x6f\xb9\x6f\xb6\x6f\xa6\x6f\xa0\x6f\xb4\x71\xbe\x71\xc9\x71\xd0\x71\xd2\x71\xc8\x71\xd5\x71\xb9\x71\xce\x71\xd9\x71\xdc\x71\xc3\x71\xc4\x73\x68\x74\x9c\x74\xa3\x74\x98\x74\x9f\x74\x9e\x74\xe2\x75\x0c\x75\x0d\x76\x34\x76\x38\x76\x3a\x76\xe7\x76\xe5\x77\xa0\x77\x9e\x77\x9f\x77\xa5\x78\xe8\x78\xda\x78\xec\x78\xe7\x79\xa6\x7a\x4d\x7a\x4e\x7a\x46\x7a\x4c\x7a\x4b\x7a\xba\x7b\xd9\x7c\x11\x7b\xc9\x7b\xe4\x7b\xdb\x7b\xe1\x7b\xe9\x7b\xe6\x7c\xd5\x7c\xd6\x7e\x0a\x7e\x11\x7e\x08\x7e\x1b\x7e\x23\x7e\x1e\x7e\x1d\x7e\x09\x7e\x10\x7f\x79\x7f\xb2\x7f\xf0\x7f\xf1\x7f\xee\x80\x28\x81\xb3\x81\xa9\x81\xa8\x81\xfb\x82\x08\x82\x58\x82\x59\x85\x4a\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x59\x85\x48\x85\x68\x85\x69\x85\x43\x85\x49\x85\x6d\x85\x6a\x85\x5e\x87\x83\x87\x9f\x87\x9e\x87\xa2\x87\x8d\x88\x61\x89\x2a\x89\x32\x89\x25\x89\x2b\x89\x21\x89\xaa\x89\xa6\x8a\xe6\x8a\xfa\x8a\xeb\x8a\xf1\x8b\x00\x8a\xdc\x8a\xe7\x8a\xee\x8a\xfe\x8b\x01\x8b\x02\x8a\xf7\x8a\xed\x8a\xf3\x8a\xf6\x8a\xfc\x8c\x6b\x8c\x6d\x8c\x93\x8c\xf4\x8e\x44\x8e\x31\x8e\x34\x8e\x42\x8e\x39\x8e\x35\x8f\x3b\x8f\x2f\x8f\x38\x8f\x33\x8f\xa8\x8f\xa6\x90\x75\x90\x74\x90\x78\x90\x72\x90\x7c\x90\x7a\x91\x34\x91\x92\x93\x20", /* 6380 */ "\x00\x00\x93\x36\x92\xf8\x93\x33\x93\x2f\x93\x22\x92\xfc\x93\x2b\x93\x04\x93\x1a\x93\x10\x93\x26\x93\x21\x93\x15\x93\x2e\x93\x19\x95\xbb\x96\xa7\x96\xa8\x96\xaa\x96\xd5\x97\x0e\x97\x11\x97\x16\x97\x0d\x97\x13\x97\x0f\x97\x5b\x97\x5c\x97\x66\x97\x98\x98\x30\x98\x38\x98\x3b\x98\x37\x98\x2d\x98\x39\x98\x24\x99\x10\x99\x28\x99\x1e\x99\x1b\x99\x21\x99\x1a\x99\xed\x99\xe2\x99\xf1\x9a\xb8\x9a\xbc\x9a\xfb\x9a\xed\x9b\x28\x9b\x91\x9d\x15\x9d\x23\x9d\x26\x9d\x28\x9d\x12\x9d\x1b\x9e\xd8\x9e\xd4\x9f\x8d\x9f\x9c\x51\x2a\x51\x1f\x51\x21\x51\x32\x52\xf5\x56\x8e\x56\x80\x56\x90\x56\x85\x56\x87\x56\x8f\x58\xd5\x58\xd3\x58\xd1\x58\xce\x5b\x30\x5b\x2a\x5b\x24\x5b\x7a\x5c\x37\x5c\x68\x5d\xbc\x5d\xba\x5d\xbd\x5d\xb8\x5e\x6b\x5f\x4c\x5f\xbd\x61\xc9\x61\xc2\x61\xc7\x61\xe6\x61\xcb\x62\x32\x62\x34\x64\xce\x64\xca\x64\xd8\x64\xe0\x64\xf0\x64\xe6\x64\xec\x64\xf1\x64\xe2\x64\xed\x65\x82\x65\x83\x66\xd9\x66\xd6\x6a\x80\x6a\x94\x6a\x84\x6a\xa2\x6a\x9c\x6a\xdb\x6a\xa3\x6a\x7e\x6a\x97\x6a\x90\x6a\xa0\x6b\x5c\x6b\xae\x6b\xda\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x08\x6f\xd8\x6f\xf1\x6f\xdf\x6f\xe0\x6f\xdb\x6f\xe4\x6f\xeb\x6f\xef\x6f\x80\x6f\xec\x6f\xe1\x6f\xe9\x6f\xd5\x6f\xee\x6f\xf0\x71\xe7\x71\xdf\x71\xee\x71\xe6\x71\xe5\x71\xed\x71\xec\x71\xf4\x71\xe0\x72\x35\x72\x46\x73\x70\x73\x72\x74\xa9\x74\xb0\x74\xa6\x74\xa8\x76\x46\x76\x42\x76\x4c\x76\xea\x77\xb3\x77\xaa\x77\xb0\x77\xac\x77\xa7\x77\xad\x77\xef\x78\xf7\x78\xfa\x78\xf4\x78\xef\x79\x01\x79\xa7\x79\xaa\x7a\x57\x7a\xbf\x7c\x07\x7c\x0d\x7b\xfe\x7b\xf7\x7c\x0c\x7b\xe0\x7c\xe0\x7c\xdc\x7c\xde\x7c\xe2", /* 6480 */ "\x00\x00\x7c\xdf\x7c\xd9\x7c\xdd\x7e\x2e\x7e\x3e\x7e\x46\x7e\x37\x7e\x32\x7e\x43\x7e\x2b\x7e\x3d\x7e\x31\x7e\x45\x7e\x41\x7e\x34\x7e\x39\x7e\x48\x7e\x35\x7e\x3f\x7e\x2f\x7f\x44\x7f\xf3\x7f\xfc\x80\x71\x80\x72\x80\x70\x80\x6f\x80\x73\x81\xc6\x81\xc3\x81\xba\x81\xc2\x81\xc0\x81\xbf\x81\xbd\x81\xc9\x81\xbe\x81\xe8\x82\x09\x82\x71\x85\xaa\x85\x84\x85\x7e\x85\x9c\x85\x91\x85\x94\x85\xaf\x85\x9b\x85\x87\x85\xa8\x85\x8a\x86\x67\x87\xc0\x87\xd1\x87\xb3\x87\xd2\x87\xc6\x87\xab\x87\xbb\x87\xba\x87\xc8\x87\xcb\x89\x3b\x89\x36\x89\x44\x89\x38\x89\x3d\x89\xac\x8b\x0e\x8b\x17\x8b\x19\x8b\x1b\x8b\x0a\x8b\x20\x8b\x1d\x8b\x04\x8b\x10\x8c\x41\x8c\x3f\x8c\x73\x8c\xfa\x8c\xfd\x8c\xfc\x8c\xf8\x8c\xfb\x8d\xa8\x8e\x49\x8e\x4b\x8e\x48\x8e\x4a\x8f\x44\x8f\x3e\x8f\x42\x8f\x45\x8f\x3f\x90\x7f\x90\x7d\x90\x84\x90\x81\x90\x82\x90\x80\x91\x39\x91\xa3\x91\x9e\x91\x9c\x93\x4d\x93\x82\x93\x28\x93\x75\x93\x4a\x93\x65\x93\x4b\x93\x18\x93\x7e\x93\x6c\x93\x5b\x93\x70\x93\x5a\x93\x54\x95\xca\x95\xcb\x95\xcc\x95\xc8\x95\xc6\x96\xb1\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\xb8\x96\xd6\x97\x1c\x97\x1e\x97\xa0\x97\xd3\x98\x46\x98\xb6\x99\x35\x9a\x01\x99\xff\x9b\xae\x9b\xab\x9b\xaa\x9b\xad\x9d\x3b\x9d\x3f\x9e\x8b\x9e\xcf\x9e\xde\x9e\xdc\x9e\xdd\x9e\xdb\x9f\x3e\x9f\x4b\x53\xe2\x56\x95\x56\xae\x58\xd9\x58\xd8\x5b\x38\x5f\x5e\x61\xe3\x62\x33\x64\xf4\x64\xf2\x64\xfe\x65\x06\x64\xfa\x64\xfb\x64\xf7\x65\xb7\x66\xdc\x67\x26\x6a\xb3\x6a\xac\x6a\xc3\x6a\xbb\x6a\xb8\x6a\xc2\x6a\xae\x6a\xaf\x6b\x5f\x6b\x78\x6b\xaf\x70\x09\x70\x0b\x6f\xfe\x70\x06\x6f\xfa\x70\x11\x70\x0f\x71\xfb", /* 6580 */ "\x00\x00\x71\xfc\x71\xfe\x71\xf8\x73\x77\x73\x75\x74\xa7\x74\xbf\x75\x15\x76\x56\x76\x58\x76\x52\x77\xbd\x77\xbf\x77\xbb\x77\xbc\x79\x0e\x79\xae\x7a\x61\x7a\x62\x7a\x60\x7a\xc4\x7a\xc5\x7c\x2b\x7c\x27\x7c\x2a\x7c\x1e\x7c\x23\x7c\x21\x7c\xe7\x7e\x54\x7e\x55\x7e\x5e\x7e\x5a\x7e\x61\x7e\x52\x7e\x59\x7f\x48\x7f\xf9\x7f\xfb\x80\x77\x80\x76\x81\xcd\x81\xcf\x82\x0a\x85\xcf\x85\xa9\x85\xcd\x85\xd0\x85\xc9\x85\xb0\x85\xba\x85\xb9\x85\xa6\x87\xef\x87\xec\x87\xf2\x87\xe0\x89\x86\x89\xb2\x89\xf4\x8b\x28\x8b\x39\x8b\x2c\x8b\x2b\x8c\x50\x8d\x05\x8e\x59\x8e\x63\x8e\x66\x8e\x64\x8e\x5f\x8e\x55\x8e\xc0\x8f\x49\x8f\x4d\x90\x87\x90\x83\x90\x88\x91\xab\x91\xac\x91\xd0\x93\x94\x93\x8a\x93\x96\x93\xa2\x93\xb3\x93\xae\x93\xac\x93\xb0\x93\x98\x93\x9a\x93\x97\x95\xd4\x95\xd6\x95\xd0\x95\xd5\x96\xe2\x96\xdc\x96\xd9\x96\xdb\x96\xde\x97\x24\x97\xa3\x97\xa6\x97\xad\x97\xf9\x98\x4d\x98\x4f\x98\x4c\x98\x4e\x98\x53\x98\xba\x99\x3e\x99\x3f\x99\x3d\x99\x2e\x99\xa5\x9a\x0e\x9a\xc1\x9b\x03\x9b\x06\x9b\x4f\x9b\x4e\x9b\x4d\x9b\xca\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xc9\x9b\xfd\x9b\xc8\x9b\xc0\x9d\x51\x9d\x5d\x9d\x60\x9e\xe0\x9f\x15\x9f\x2c\x51\x33\x56\xa5\x58\xde\x58\xdf\x58\xe2\x5b\xf5\x9f\x90\x5e\xec\x61\xf2\x61\xf7\x61\xf6\x61\xf5\x65\x00\x65\x0f\x66\xe0\x66\xdd\x6a\xe5\x6a\xdd\x6a\xda\x6a\xd3\x70\x1b\x70\x1f\x70\x28\x70\x1a\x70\x1d\x70\x15\x70\x18\x72\x06\x72\x0d\x72\x58\x72\xa2\x73\x78\x73\x7a\x74\xbd\x74\xca\x74\xe3\x75\x87\x75\x86\x76\x5f\x76\x61\x77\xc7\x79\x19\x79\xb1\x7a\x6b\x7a\x69\x7c\x3e\x7c\x3f\x7c\x38\x7c\x3d\x7c\x37\x7c\x40\x7e\x6b\x7e\x6d", /* 6680 */ "\x00\x00\x7e\x79\x7e\x69\x7e\x6a\x7f\x85\x7e\x73\x7f\xb6\x7f\xb9\x7f\xb8\x81\xd8\x85\xe9\x85\xdd\x85\xea\x85\xd5\x85\xe4\x85\xe5\x85\xf7\x87\xfb\x88\x05\x88\x0d\x87\xf9\x87\xfe\x89\x60\x89\x5f\x89\x56\x89\x5e\x8b\x41\x8b\x5c\x8b\x58\x8b\x49\x8b\x5a\x8b\x4e\x8b\x4f\x8b\x46\x8b\x59\x8d\x08\x8d\x0a\x8e\x7c\x8e\x72\x8e\x87\x8e\x76\x8e\x6c\x8e\x7a\x8e\x74\x8f\x54\x8f\x4e\x8f\xad\x90\x8a\x90\x8b\x91\xb1\x91\xae\x93\xe1\x93\xd1\x93\xdf\x93\xc3\x93\xc8\x93\xdc\x93\xdd\x93\xd6\x93\xe2\x93\xcd\x93\xd8\x93\xe4\x93\xd7\x93\xe8\x95\xdc\x96\xb4\x96\xe3\x97\x2a\x97\x27\x97\x61\x97\xdc\x97\xfb\x98\x5e\x98\x58\x98\x5b\x98\xbc\x99\x45\x99\x49\x9a\x16\x9a\x19\x9b\x0d\x9b\xe8\x9b\xe7\x9b\xd6\x9b\xdb\x9d\x89\x9d\x61\x9d\x72\x9d\x6a\x9d\x6c\x9e\x92\x9e\x97\x9e\x93\x9e\xb4\x52\xf8\x56\xa8\x56\xb7\x56\xb6\x56\xb4\x56\xbc\x58\xe4\x5b\x40\x5b\x43\x5b\x7d\x5b\xf6\x5d\xc9\x61\xf8\x61\xfa\x65\x18\x65\x14\x65\x19\x66\xe6\x67\x27\x6a\xec\x70\x3e\x70\x30\x70\x32\x72\x10\x73\x7b\x74\xcf\x76\x62\x76\x65\x79\x26\x79\x2a\x79\x2c\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x2b\x7a\xc7\x7a\xf6\x7c\x4c\x7c\x43\x7c\x4d\x7c\xef\x7c\xf0\x8f\xae\x7e\x7d\x7e\x7c\x7e\x82\x7f\x4c\x80\x00\x81\xda\x82\x66\x85\xfb\x85\xf9\x86\x11\x85\xfa\x86\x06\x86\x0b\x86\x07\x86\x0a\x88\x14\x88\x15\x89\x64\x89\xba\x89\xf8\x8b\x70\x8b\x6c\x8b\x66\x8b\x6f\x8b\x5f\x8b\x6b\x8d\x0f\x8d\x0d\x8e\x89\x8e\x81\x8e\x85\x8e\x82\x91\xb4\x91\xcb\x94\x18\x94\x03\x93\xfd\x95\xe1\x97\x30\x98\xc4\x99\x52\x99\x51\x99\xa8\x9a\x2b\x9a\x30\x9a\x37\x9a\x35\x9c\x13\x9c\x0d\x9e\x79\x9e\xb5\x9e\xe8\x9f\x2f\x9f\x5f", /* 6780 */ "\x00\x00\x9f\x63\x9f\x61\x51\x37\x51\x38\x56\xc1\x56\xc0\x56\xc2\x59\x14\x5c\x6c\x5d\xcd\x61\xfc\x61\xfe\x65\x1d\x65\x1c\x65\x95\x66\xe9\x6a\xfb\x6b\x04\x6a\xfa\x6b\xb2\x70\x4c\x72\x1b\x72\xa7\x74\xd6\x74\xd4\x76\x69\x77\xd3\x7c\x50\x7e\x8f\x7e\x8c\x7f\xbc\x86\x17\x86\x2d\x86\x1a\x88\x23\x88\x22\x88\x21\x88\x1f\x89\x6a\x89\x6c\x89\xbd\x8b\x74\x8b\x77\x8b\x7d\x8d\x13\x8e\x8a\x8e\x8d\x8e\x8b\x8f\x5f\x8f\xaf\x91\xba\x94\x2e\x94\x33\x94\x35\x94\x3a\x94\x38\x94\x32\x94\x2b\x95\xe2\x97\x38\x97\x39\x97\x32\x97\xff\x98\x67\x98\x65\x99\x57\x9a\x45\x9a\x43\x9a\x40\x9a\x3e\x9a\xcf\x9b\x54\x9b\x51\x9c\x2d\x9c\x25\x9d\xaf\x9d\xb4\x9d\xc2\x9d\xb8\x9e\x9d\x9e\xef\x9f\x19\x9f\x5c\x9f\x66\x9f\x67\x51\x3c\x51\x3b\x56\xc8\x56\xca\x56\xc9\x5b\x7f\x5d\xd4\x5d\xd2\x5f\x4e\x61\xff\x65\x24\x6b\x0a\x6b\x61\x70\x51\x70\x58\x73\x80\x74\xe4\x75\x8a\x76\x6e\x76\x6c\x79\xb3\x7c\x60\x7c\x5f\x80\x7e\x80\x7d\x81\xdf\x89\x72\x89\x6f\x89\xfc\x8b\x80\x8d\x16\x8d\x17\x8e\x91\x8e\x93\x8f\x61\x91\x48\x94\x44\x94\x51\x94\x52\x97\x3d\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x3e\x97\xc3\x97\xc1\x98\x6b\x99\x55\x9a\x55\x9a\x4d\x9a\xd2\x9b\x1a\x9c\x49\x9c\x31\x9c\x3e\x9c\x3b\x9d\xd3\x9d\xd7\x9f\x34\x9f\x6c\x9f\x6a\x9f\x94\x56\xcc\x5d\xd6\x62\x00\x65\x23\x65\x2b\x65\x2a\x66\xec\x6b\x10\x74\xda\x7a\xca\x7c\x64\x7c\x63\x7c\x65\x7e\x93\x7e\x96\x7e\x94\x81\xe2\x86\x38\x86\x3f\x88\x31\x8b\x8a\x90\x90\x90\x8f\x94\x63\x94\x60\x94\x64\x97\x68\x98\x6f\x99\x5c\x9a\x5a\x9a\x5b\x9a\x57\x9a\xd3\x9a\xd4\x9a\xd1\x9c\x54\x9c\x57\x9c\x56\x9d\xe5\x9e\x9f\x9e\xf4\x56\xd1\x58\xe9\x65\x2c", /* 6880 */ "\x00\x00\x70\x5e\x76\x71\x76\x72\x77\xd7\x7f\x50\x7f\x88\x88\x36\x88\x39\x88\x62\x8b\x93\x8b\x92\x8b\x96\x82\x77\x8d\x1b\x91\xc0\x94\x6a\x97\x42\x97\x48\x97\x44\x97\xc6\x98\x70\x9a\x5f\x9b\x22\x9b\x58\x9c\x5f\x9d\xf9\x9d\xfa\x9e\x7c\x9e\x7d\x9f\x07\x9f\x77\x9f\x72\x5e\xf3\x6b\x16\x70\x63\x7c\x6c\x7c\x6e\x88\x3b\x89\xc0\x8e\xa1\x91\xc1\x94\x72\x94\x70\x98\x71\x99\x5e\x9a\xd6\x9b\x23\x9e\xcc\x70\x64\x77\xda\x8b\x9a\x94\x77\x97\xc9\x9a\x62\x9a\x65\x7e\x9c\x8b\x9c\x8e\xaa\x91\xc5\x94\x7d\x94\x7e\x94\x7c\x9c\x77\x9c\x78\x9e\xf7\x8c\x54\x94\x7f\x9e\x1a\x72\x28\x9a\x6a\x9b\x31\x9e\x1b\x9e\x1e\x7c\x72\x64\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x42\x4e\x5c\x51\xf5\x53\x1a\x53\x82\x4e\x07\x4e\x0c\x4e\x47\x4e\x8d\x56\xd7\xfa\x0c\x5c\x6e\x5f\x73\x4e\x0f\x51\x87\x4e\x0e\x4e\x2e\x4e\x93\x4e\xc2\x4e\xc9\x4e\xc8\x51\x98\x52\xfc\x53\x6c\x53\xb9\x57\x20\x59\x03\x59\x2c\x5c\x10\x5d\xff\x65\xe1\x6b\xb3\x6b\xcc\x6c\x14\x72\x3f\x4e\x31\x4e\x3c\x4e\xe8\x4e\xdc\x4e\xe9\x4e\xe1\x4e\xdd\x4e\xda\x52\x0c\x53\x1c\x53\x4c\x57\x22\x57\x23\x59\x17\x59\x2f\x5b\x81\x5b\x84\x5c\x12\x5c\x3b\x5c\x74\x5c\x73\x5e\x04\x5e\x80\x5e\x82\x5f\xc9\x62\x09\x62\x50\x6c\x15", /* 6980 */ "\x00\x00\x6c\x36\x6c\x43\x6c\x3f\x6c\x3b\x72\xae\x72\xb0\x73\x8a\x79\xb8\x80\x8a\x96\x1e\x4f\x0e\x4f\x18\x4f\x2c\x4e\xf5\x4f\x14\x4e\xf1\x4f\x00\x4e\xf7\x4f\x08\x4f\x1d\x4f\x02\x4f\x05\x4f\x22\x4f\x13\x4f\x04\x4e\xf4\x4f\x12\x51\xb1\x52\x13\x52\x09\x52\x10\x52\xa6\x53\x22\x53\x1f\x53\x4d\x53\x8a\x54\x07\x56\xe1\x56\xdf\x57\x2e\x57\x2a\x57\x34\x59\x3c\x59\x80\x59\x7c\x59\x85\x59\x7b\x59\x7e\x59\x77\x59\x7f\x5b\x56\x5c\x15\x5c\x25\x5c\x7c\x5c\x7a\x5c\x7b\x5c\x7e\x5d\xdf\x5e\x75\x5e\x84\x5f\x02\x5f\x1a\x5f\x74\x5f\xd5\x5f\xd4\x5f\xcf\x62\x65\x62\x5c\x62\x5e\x62\x64\x62\x61\x62\x66\x62\x62\x62\x59\x62\x60\x62\x5a\x65\xef\x65\xee\x67\x3e\x67\x39\x67\x38\x67\x3b\x67\x3a\x67\x3f\x67\x3c\x67\x33\x6c\x18\x6c\x46\x6c\x52\x6c\x5c\x6c\x4f\x6c\x4a\x6c\x54\x6c\x4b\x6c\x4c\x70\x71\x72\x5e\x72\xb4\x72\xb5\x73\x8e\x75\x2a\x76\x7f\x7a\x75\x7f\x51\x82\x78\x82\x7c\x82\x80\x82\x7d\x82\x7f\x86\x4d\x89\x7e\x90\x99\x90\x97\x90\x98\x90\x9b\x90\x94\x96\x22\x96\x24\x96\x20\x96\x23\x4f\x56\x4f\x3b\x4f\x62\x4f\x49\x4f\x53\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x64\x4f\x3e\x4f\x67\x4f\x52\x4f\x5f\x4f\x41\x4f\x58\x4f\x2d\x4f\x33\x4f\x3f\x4f\x61\x51\x8f\x51\xb9\x52\x1c\x52\x1e\x52\x21\x52\xad\x52\xae\x53\x09\x53\x63\x53\x72\x53\x8e\x53\x8f\x54\x30\x54\x37\x54\x2a\x54\x54\x54\x45\x54\x19\x54\x1c\x54\x25\x54\x18\x54\x3d\x54\x4f\x54\x41\x54\x28\x54\x24\x54\x47\x56\xee\x56\xe7\x56\xe5\x57\x41\x57\x45\x57\x4c\x57\x49\x57\x4b\x57\x52\x59\x06\x59\x40\x59\xa6\x59\x98\x59\xa0\x59\x97\x59\x8e\x59\xa2\x59\x90\x59\x8f\x59\xa7\x59\xa1\x5b\x8e\x5b\x92\x5c\x28\x5c\x2a", /* 6a80 */ "\x00\x00\x5c\x8d\x5c\x8f\x5c\x88\x5c\x8b\x5c\x89\x5c\x92\x5c\x8a\x5c\x86\x5c\x93\x5c\x95\x5d\xe0\x5e\x0a\x5e\x0e\x5e\x8b\x5e\x89\x5e\x8c\x5e\x88\x5e\x8d\x5f\x05\x5f\x1d\x5f\x78\x5f\x76\x5f\xd2\x5f\xd1\x5f\xd0\x5f\xed\x5f\xe8\x5f\xee\x5f\xf3\x5f\xe1\x5f\xe4\x5f\xe3\x5f\xfa\x5f\xef\x5f\xf7\x5f\xfb\x60\x00\x5f\xf4\x62\x3a\x62\x83\x62\x8c\x62\x8e\x62\x8f\x62\x94\x62\x87\x62\x71\x62\x7b\x62\x7a\x62\x70\x62\x81\x62\x88\x62\x77\x62\x7d\x62\x72\x62\x74\x65\x37\x65\xf0\x65\xf4\x65\xf3\x65\xf2\x65\xf5\x67\x45\x67\x47\x67\x59\x67\x55\x67\x4c\x67\x48\x67\x5d\x67\x4d\x67\x5a\x67\x4b\x6b\xd0\x6c\x19\x6c\x1a\x6c\x78\x6c\x67\x6c\x6b\x6c\x84\x6c\x8b\x6c\x8f\x6c\x71\x6c\x6f\x6c\x69\x6c\x9a\x6c\x6d\x6c\x87\x6c\x95\x6c\x9c\x6c\x66\x6c\x73\x6c\x65\x6c\x7b\x6c\x8e\x70\x74\x70\x7a\x72\x63\x72\xbf\x72\xbd\x72\xc3\x72\xc6\x72\xc1\x72\xba\x72\xc5\x73\x95\x73\x97\x73\x93\x73\x94\x73\x92\x75\x3a\x75\x39\x75\x94\x75\x95\x76\x81\x79\x3d\x80\x34\x80\x95\x80\x99\x80\x90\x80\x92\x80\x9c\x82\x90\x82\x8f\x82\x85\x82\x8e\x82\x91\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x93\x82\x8a\x82\x83\x82\x84\x8c\x78\x8f\xc9\x8f\xbf\x90\x9f\x90\xa1\x90\xa5\x90\x9e\x90\xa7\x90\xa0\x96\x30\x96\x28\x96\x2f\x96\x2d\x4e\x33\x4f\x98\x4f\x7c\x4f\x85\x4f\x7d\x4f\x80\x4f\x87\x4f\x76\x4f\x74\x4f\x89\x4f\x84\x4f\x77\x4f\x4c\x4f\x97\x4f\x6a\x4f\x9a\x4f\x79\x4f\x81\x4f\x78\x4f\x90\x4f\x9c\x4f\x94\x4f\x9e\x4f\x92\x4f\x82\x4f\x95\x4f\x6b\x4f\x6e\x51\x9e\x51\xbc\x51\xbe\x52\x35\x52\x32\x52\x33\x52\x46\x52\x31\x52\xbc\x53\x0a\x53\x0b\x53\x3c\x53\x92\x53\x94\x54\x87\x54\x7f\x54\x81\x54\x91", /* 6b80 */ "\x00\x00\x54\x82\x54\x88\x54\x6b\x54\x7a\x54\x7e\x54\x65\x54\x6c\x54\x74\x54\x66\x54\x8d\x54\x6f\x54\x61\x54\x60\x54\x98\x54\x63\x54\x67\x54\x64\x56\xf7\x56\xf9\x57\x6f\x57\x72\x57\x6d\x57\x6b\x57\x71\x57\x70\x57\x76\x57\x80\x57\x75\x57\x7b\x57\x73\x57\x74\x57\x62\x57\x68\x57\x7d\x59\x0c\x59\x45\x59\xb5\x59\xba\x59\xcf\x59\xce\x59\xb2\x59\xcc\x59\xc1\x59\xb6\x59\xbc\x59\xc3\x59\xd6\x59\xb1\x59\xbd\x59\xc0\x59\xc8\x59\xb4\x59\xc7\x5b\x62\x5b\x65\x5b\x93\x5b\x95\x5c\x44\x5c\x47\x5c\xae\x5c\xa4\x5c\xa0\x5c\xb5\x5c\xaf\x5c\xa8\x5c\xac\x5c\x9f\x5c\xa3\x5c\xad\x5c\xa2\x5c\xaa\x5c\xa7\x5c\x9d\x5c\xa5\x5c\xb6\x5c\xb0\x5c\xa6\x5e\x17\x5e\x14\x5e\x19\x5f\x28\x5f\x22\x5f\x23\x5f\x24\x5f\x54\x5f\x82\x5f\x7e\x5f\x7d\x5f\xde\x5f\xe5\x60\x2d\x60\x26\x60\x19\x60\x32\x60\x0b\x60\x34\x60\x0a\x60\x17\x60\x33\x60\x1a\x60\x1e\x60\x2c\x60\x22\x60\x0d\x60\x10\x60\x2e\x60\x13\x60\x11\x60\x0c\x60\x09\x60\x1c\x62\x14\x62\x3d\x62\xad\x62\xb4\x62\xd1\x62\xbe\x62\xaa\x62\xb6\x62\xca\x62\xae\x62\xb3\x62\xaf\x62\xbb\x62\xa9\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xb0\x62\xb8\x65\x3d\x65\xa8\x65\xbb\x66\x09\x65\xfc\x66\x04\x66\x12\x66\x08\x65\xfb\x66\x03\x66\x0b\x66\x0d\x66\x05\x65\xfd\x66\x11\x66\x10\x66\xf6\x67\x0a\x67\x85\x67\x6c\x67\x8e\x67\x92\x67\x76\x67\x7b\x67\x98\x67\x86\x67\x84\x67\x74\x67\x8d\x67\x8c\x67\x7a\x67\x9f\x67\x91\x67\x99\x67\x83\x67\x7d\x67\x81\x67\x78\x67\x79\x67\x94\x6b\x25\x6b\x80\x6b\x7e\x6b\xde\x6c\x1d\x6c\x93\x6c\xec\x6c\xeb\x6c\xee\x6c\xd9\x6c\xb6\x6c\xd4\x6c\xad\x6c\xe7\x6c\xb7\x6c\xd0\x6c\xc2\x6c\xba\x6c\xc3\x6c\xc6\x6c\xed", /* 6c80 */ "\x00\x00\x6c\xf2\x6c\xd2\x6c\xdd\x6c\xb4\x6c\x8a\x6c\x9d\x6c\x80\x6c\xde\x6c\xc0\x6d\x30\x6c\xcd\x6c\xc7\x6c\xb0\x6c\xf9\x6c\xcf\x6c\xe9\x6c\xd1\x70\x94\x70\x98\x70\x85\x70\x93\x70\x86\x70\x84\x70\x91\x70\x96\x70\x82\x70\x9a\x70\x83\x72\x6a\x72\xd6\x72\xcb\x72\xd8\x72\xc9\x72\xdc\x72\xd2\x72\xd4\x72\xda\x72\xcc\x72\xd1\x73\xa4\x73\xa1\x73\xad\x73\xa6\x73\xa2\x73\xa0\x73\xac\x73\x9d\x74\xdd\x74\xe8\x75\x3f\x75\x40\x75\x3e\x75\x8c\x75\x98\x76\xaf\x76\xf3\x76\xf1\x76\xf0\x76\xf5\x77\xf8\x77\xfc\x77\xf9\x77\xfb\x77\xfa\x77\xf7\x79\x42\x79\x3f\x79\xc5\x7a\x78\x7a\x7b\x7a\xfb\x7c\x75\x7c\xfd\x80\x35\x80\x8f\x80\xae\x80\xa3\x80\xb8\x80\xb5\x80\xad\x82\x20\x82\xa0\x82\xc0\x82\xab\x82\x9a\x82\x98\x82\x9b\x82\xb5\x82\xa7\x82\xae\x82\xbc\x82\x9e\x82\xba\x82\xb4\x82\xa8\x82\xa1\x82\xa9\x82\xc2\x82\xa4\x82\xc3\x82\xb6\x82\xa2\x86\x70\x86\x6f\x86\x6d\x86\x6e\x8c\x56\x8f\xd2\x8f\xcb\x8f\xd3\x8f\xcd\x8f\xd6\x8f\xd5\x8f\xd7\x90\xb2\x90\xb4\x90\xaf\x90\xb3\x90\xb0\x96\x39\x96\x3d\x96\x3c\x96\x3a\x96\x43\x4f\xcd\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xc5\x4f\xd3\x4f\xb2\x4f\xc9\x4f\xcb\x4f\xc1\x4f\xd4\x4f\xdc\x4f\xd9\x4f\xbb\x4f\xb3\x4f\xdb\x4f\xc7\x4f\xd6\x4f\xba\x4f\xc0\x4f\xb9\x4f\xec\x52\x44\x52\x49\x52\xc0\x52\xc2\x53\x3d\x53\x7c\x53\x97\x53\x96\x53\x99\x53\x98\x54\xba\x54\xa1\x54\xad\x54\xa5\x54\xcf\x54\xc3\x83\x0d\x54\xb7\x54\xae\x54\xd6\x54\xb6\x54\xc5\x54\xc6\x54\xa0\x54\x70\x54\xbc\x54\xa2\x54\xbe\x54\x72\x54\xde\x54\xb0\x57\xb5\x57\x9e\x57\x9f\x57\xa4\x57\x8c\x57\x97\x57\x9d\x57\x9b\x57\x94\x57\x98\x57\x8f\x57\x99\x57\xa5\x57\x9a", /* 6d80 */ "\x00\x00\x57\x95\x58\xf4\x59\x0d\x59\x53\x59\xe1\x59\xde\x59\xee\x5a\x00\x59\xf1\x59\xdd\x59\xfa\x59\xfd\x59\xfc\x59\xf6\x59\xe4\x59\xf2\x59\xf7\x59\xdb\x59\xe9\x59\xf3\x59\xf5\x59\xe0\x59\xfe\x59\xf4\x59\xed\x5b\xa8\x5c\x4c\x5c\xd0\x5c\xd8\x5c\xcc\x5c\xd7\x5c\xcb\x5c\xdb\x5c\xde\x5c\xda\x5c\xc9\x5c\xc7\x5c\xca\x5c\xd6\x5c\xd3\x5c\xd4\x5c\xcf\x5c\xc8\x5c\xc6\x5c\xce\x5c\xdf\x5c\xf8\x5d\xf9\x5e\x21\x5e\x22\x5e\x23\x5e\x20\x5e\x24\x5e\xb0\x5e\xa4\x5e\xa2\x5e\x9b\x5e\xa3\x5e\xa5\x5f\x07\x5f\x2e\x5f\x56\x5f\x86\x60\x37\x60\x39\x60\x54\x60\x72\x60\x5e\x60\x45\x60\x53\x60\x47\x60\x49\x60\x5b\x60\x4c\x60\x40\x60\x42\x60\x5f\x60\x24\x60\x44\x60\x58\x60\x66\x60\x6e\x62\x42\x62\x43\x62\xcf\x63\x0d\x63\x0b\x62\xf5\x63\x0e\x63\x03\x62\xeb\x62\xf9\x63\x0f\x63\x0c\x62\xf8\x62\xf6\x63\x00\x63\x13\x63\x14\x62\xfa\x63\x15\x62\xfb\x62\xf0\x65\x41\x65\x43\x65\xaa\x65\xbf\x66\x36\x66\x21\x66\x32\x66\x35\x66\x1c\x66\x26\x66\x22\x66\x33\x66\x2b\x66\x3a\x66\x1d\x66\x34\x66\x39\x66\x2e\x67\x0f\x67\x10\x67\xc1\x67\xf2\x00\x00\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xc8\x67\xba\x67\xdc\x67\xbb\x67\xf8\x67\xd8\x67\xc0\x67\xb7\x67\xc5\x67\xeb\x67\xe4\x67\xdf\x67\xb5\x67\xcd\x67\xb3\x67\xf7\x67\xf6\x67\xee\x67\xe3\x67\xc2\x67\xb9\x67\xce\x67\xe7\x67\xf0\x67\xb2\x67\xfc\x67\xc6\x67\xed\x67\xcc\x67\xae\x67\xe6\x67\xdb\x67\xfa\x67\xc9\x67\xca\x67\xc3\x67\xea\x67\xcb\x6b\x28\x6b\x82\x6b\x84\x6b\xb6\x6b\xd6\x6b\xd8\x6b\xe0\x6c\x20\x6c\x21\x6d\x28\x6d\x34\x6d\x2d\x6d\x1f\x6d\x3c\x6d\x3f\x6d\x12\x6d\x0a\x6c\xda\x6d\x33\x6d\x04\x6d\x19\x6d\x3a\x6d\x1a\x6d\x11\x6d\x00", /* 6e80 */ "\x00\x00\x6d\x1d\x6d\x42\x6d\x01\x6d\x18\x6d\x37\x6d\x03\x6d\x0f\x6d\x40\x6d\x07\x6d\x20\x6d\x2c\x6d\x08\x6d\x22\x6d\x09\x6d\x10\x70\xb7\x70\x9f\x70\xbe\x70\xb1\x70\xb0\x70\xa1\x70\xb4\x70\xb5\x70\xa9\x72\x41\x72\x49\x72\x4a\x72\x6c\x72\x70\x72\x73\x72\x6e\x72\xca\x72\xe4\x72\xe8\x72\xeb\x72\xdf\x72\xea\x72\xe6\x72\xe3\x73\x85\x73\xcc\x73\xc2\x73\xc8\x73\xc5\x73\xb9\x73\xb6\x73\xb5\x73\xb4\x73\xeb\x73\xbf\x73\xc7\x73\xbe\x73\xc3\x73\xc6\x73\xb8\x73\xcb\x74\xec\x74\xee\x75\x2e\x75\x47\x75\x48\x75\xa7\x75\xaa\x76\x79\x76\xc4\x77\x08\x77\x03\x77\x04\x77\x05\x77\x0a\x76\xf7\x76\xfb\x76\xfa\x77\xe7\x77\xe8\x78\x06\x78\x11\x78\x12\x78\x05\x78\x10\x78\x0f\x78\x0e\x78\x09\x78\x03\x78\x13\x79\x4a\x79\x4c\x79\x4b\x79\x45\x79\x44\x79\xd5\x79\xcd\x79\xcf\x79\xd6\x79\xce\x7a\x80\x7a\x7e\x7a\xd1\x7b\x00\x7b\x01\x7c\x7a\x7c\x78\x7c\x79\x7c\x7f\x7c\x80\x7c\x81\x7d\x03\x7d\x08\x7d\x01\x7f\x58\x7f\x91\x7f\x8d\x7f\xbe\x80\x07\x80\x0e\x80\x0f\x80\x14\x80\x37\x80\xd8\x80\xc7\x80\xe0\x80\xd1\x80\xc8\x80\xc2\x80\xd0\x00\x00\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc5\x80\xe3\x80\xd9\x80\xdc\x80\xca\x80\xd5\x80\xc9\x80\xcf\x80\xd7\x80\xe6\x80\xcd\x81\xff\x82\x21\x82\x94\x82\xd9\x82\xfe\x82\xf9\x83\x07\x82\xe8\x83\x00\x82\xd5\x83\x3a\x82\xeb\x82\xd6\x82\xf4\x82\xec\x82\xe1\x82\xf2\x82\xf5\x83\x0c\x82\xfb\x82\xf6\x82\xf0\x82\xea\x82\xe4\x82\xe0\x82\xfa\x82\xf3\x82\xed\x86\x77\x86\x74\x86\x7c\x86\x73\x88\x41\x88\x4e\x88\x67\x88\x6a\x88\x69\x89\xd3\x8a\x04\x8a\x07\x8d\x72\x8f\xe3\x8f\xe1\x8f\xee\x8f\xe0\x90\xf1\x90\xbd\x90\xbf\x90\xd5\x90\xc5\x90\xbe\x90\xc7", /* 6f80 */ "\x00\x00\x90\xcb\x90\xc8\x91\xd4\x91\xd3\x96\x54\x96\x4f\x96\x51\x96\x53\x96\x4a\x96\x4e\x50\x1e\x50\x05\x50\x07\x50\x13\x50\x22\x50\x30\x50\x1b\x4f\xf5\x4f\xf4\x50\x33\x50\x37\x50\x2c\x4f\xf6\x4f\xf7\x50\x17\x50\x1c\x50\x20\x50\x27\x50\x35\x50\x2f\x50\x31\x50\x0e\x51\x5a\x51\x94\x51\x93\x51\xca\x51\xc4\x51\xc5\x51\xc8\x51\xce\x52\x61\x52\x5a\x52\x52\x52\x5e\x52\x5f\x52\x55\x52\x62\x52\xcd\x53\x0e\x53\x9e\x55\x26\x54\xe2\x55\x17\x55\x12\x54\xe7\x54\xf3\x54\xe4\x55\x1a\x54\xff\x55\x04\x55\x08\x54\xeb\x55\x11\x55\x05\x54\xf1\x55\x0a\x54\xfb\x54\xf7\x54\xf8\x54\xe0\x55\x0e\x55\x03\x55\x0b\x57\x01\x57\x02\x57\xcc\x58\x32\x57\xd5\x57\xd2\x57\xba\x57\xc6\x57\xbd\x57\xbc\x57\xb8\x57\xb6\x57\xbf\x57\xc7\x57\xd0\x57\xb9\x57\xc1\x59\x0e\x59\x4a\x5a\x19\x5a\x16\x5a\x2d\x5a\x2e\x5a\x15\x5a\x0f\x5a\x17\x5a\x0a\x5a\x1e\x5a\x33\x5b\x6c\x5b\xa7\x5b\xad\x5b\xac\x5c\x03\x5c\x56\x5c\x54\x5c\xec\x5c\xff\x5c\xee\x5c\xf1\x5c\xf7\x5d\x00\x5c\xf9\x5e\x29\x5e\x28\x5e\xa8\x5e\xae\x5e\xaa\x5e\xac\x5f\x33\x5f\x30\x5f\x67\x00\x00\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\xa2\x60\x88\x60\x80\x60\x92\x60\x81\x60\x9d\x60\x83\x60\x95\x60\x9b\x60\x97\x60\x87\x60\x9c\x60\x8e\x62\x19\x62\x46\x62\xf2\x63\x10\x63\x56\x63\x2c\x63\x44\x63\x45\x63\x36\x63\x43\x63\xe4\x63\x39\x63\x4b\x63\x4a\x63\x3c\x63\x29\x63\x41\x63\x34\x63\x58\x63\x54\x63\x59\x63\x2d\x63\x47\x63\x33\x63\x5a\x63\x51\x63\x38\x63\x57\x63\x40\x63\x48\x65\x4a\x65\x46\x65\xc6\x65\xc3\x65\xc4\x65\xc2\x66\x4a\x66\x5f\x66\x47\x66\x51\x67\x12\x67\x13\x68\x1f\x68\x1a\x68\x49\x68\x32", /* 7080 */ "\x00\x00\x68\x33\x68\x3b\x68\x4b\x68\x4f\x68\x16\x68\x31\x68\x1c\x68\x35\x68\x2b\x68\x2d\x68\x2f\x68\x4e\x68\x44\x68\x34\x68\x1d\x68\x12\x68\x14\x68\x26\x68\x28\x68\x2e\x68\x4d\x68\x3a\x68\x25\x68\x20\x6b\x2c\x6b\x2f\x6b\x2d\x6b\x31\x6b\x34\x6b\x6d\x80\x82\x6b\x88\x6b\xe6\x6b\xe4\x6b\xe8\x6b\xe3\x6b\xe2\x6b\xe7\x6c\x25\x6d\x7a\x6d\x63\x6d\x64\x6d\x76\x6d\x0d\x6d\x61\x6d\x92\x6d\x58\x6d\x62\x6d\x6d\x6d\x6f\x6d\x91\x6d\x8d\x6d\xef\x6d\x7f\x6d\x86\x6d\x5e\x6d\x67\x6d\x60\x6d\x97\x6d\x70\x6d\x7c\x6d\x5f\x6d\x82\x6d\x98\x6d\x2f\x6d\x68\x6d\x8b\x6d\x7e\x6d\x80\x6d\x84\x6d\x16\x6d\x83\x6d\x7b\x6d\x7d\x6d\x75\x6d\x90\x70\xdc\x70\xd3\x70\xd1\x70\xdd\x70\xcb\x7f\x39\x70\xe2\x70\xd7\x70\xd2\x70\xde\x70\xe0\x70\xd4\x70\xcd\x70\xc5\x70\xc6\x70\xc7\x70\xda\x70\xce\x70\xe1\x72\x42\x72\x78\x72\x77\x72\x76\x73\x00\x72\xfa\x72\xf4\x72\xfe\x72\xf6\x72\xf3\x72\xfb\x73\x01\x73\xd3\x73\xd9\x73\xe5\x73\xd6\x73\xbc\x73\xe7\x73\xe3\x73\xe9\x73\xdc\x73\xd2\x73\xdb\x73\xd4\x73\xdd\x73\xda\x73\xd7\x73\xd8\x73\xe8\x74\xde\x00\x00\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\xdf\x74\xf4\x74\xf5\x75\x21\x75\x5b\x75\x5f\x75\xb0\x75\xc1\x75\xbb\x75\xc4\x75\xc0\x75\xbf\x75\xb6\x75\xba\x76\x8a\x76\xc9\x77\x1d\x77\x1b\x77\x10\x77\x13\x77\x12\x77\x23\x77\x11\x77\x15\x77\x19\x77\x1a\x77\x22\x77\x27\x78\x23\x78\x2c\x78\x22\x78\x35\x78\x2f\x78\x28\x78\x2e\x78\x2b\x78\x21\x78\x29\x78\x33\x78\x2a\x78\x31\x79\x54\x79\x5b\x79\x4f\x79\x5c\x79\x53\x79\x52\x79\x51\x79\xeb\x79\xec\x79\xe0\x79\xee\x79\xed\x79\xea\x79\xdc\x79\xde\x79\xdd\x7a\x86\x7a\x89\x7a\x85\x7a\x8b\x7a\x8c\x7a\x8a", /* 7180 */ "\x00\x00\x7a\x87\x7a\xd8\x7b\x10\x7b\x04\x7b\x13\x7b\x05\x7b\x0f\x7b\x08\x7b\x0a\x7b\x0e\x7b\x09\x7b\x12\x7c\x84\x7c\x91\x7c\x8a\x7c\x8c\x7c\x88\x7c\x8d\x7c\x85\x7d\x1e\x7d\x1d\x7d\x11\x7d\x0e\x7d\x18\x7d\x16\x7d\x13\x7d\x1f\x7d\x12\x7d\x0f\x7d\x0c\x7f\x5c\x7f\x61\x7f\x5e\x7f\x60\x7f\x5d\x7f\x5b\x7f\x96\x7f\x92\x7f\xc3\x7f\xc2\x7f\xc0\x80\x16\x80\x3e\x80\x39\x80\xfa\x80\xf2\x80\xf9\x80\xf5\x81\x01\x80\xfb\x81\x00\x82\x01\x82\x2f\x82\x25\x83\x33\x83\x2d\x83\x44\x83\x19\x83\x51\x83\x25\x83\x56\x83\x3f\x83\x41\x83\x26\x83\x1c\x83\x22\x83\x42\x83\x4e\x83\x1b\x83\x2a\x83\x08\x83\x3c\x83\x4d\x83\x16\x83\x24\x83\x20\x83\x37\x83\x2f\x83\x29\x83\x47\x83\x45\x83\x4c\x83\x53\x83\x1e\x83\x2c\x83\x4b\x83\x27\x83\x48\x86\x53\x86\x52\x86\xa2\x86\xa8\x86\x96\x86\x8d\x86\x91\x86\x9e\x86\x87\x86\x97\x86\x86\x86\x8b\x86\x9a\x86\x85\x86\xa5\x86\x99\x86\xa1\x86\xa7\x86\x95\x86\x98\x86\x8e\x86\x9d\x86\x90\x86\x94\x88\x43\x88\x44\x88\x6d\x88\x75\x88\x76\x88\x72\x88\x80\x88\x71\x88\x7f\x88\x6f\x88\x83\x88\x7e\x88\x74\x00\x00\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x7c\x8a\x12\x8c\x47\x8c\x57\x8c\x7b\x8c\xa4\x8c\xa3\x8d\x76\x8d\x78\x8d\xb5\x8d\xb7\x8d\xb6\x8e\xd1\x8e\xd3\x8f\xfe\x8f\xf5\x90\x02\x8f\xff\x8f\xfb\x90\x04\x8f\xfc\x8f\xf6\x90\xd6\x90\xe0\x90\xd9\x90\xda\x90\xe3\x90\xdf\x90\xe5\x90\xd8\x90\xdb\x90\xd7\x90\xdc\x90\xe4\x91\x50\x91\x4e\x91\x4f\x91\xd5\x91\xe2\x91\xda\x96\x5c\x96\x5f\x96\xbc\x98\xe3\x9a\xdf\x9b\x2f\x4e\x7f\x50\x70\x50\x6a\x50\x61\x50\x5e\x50\x60\x50\x53\x50\x4b\x50\x5d\x50\x72\x50\x48\x50\x4d\x50\x41\x50\x5b\x50\x4a\x50\x62\x50\x15", /* 7280 */ "\x00\x00\x50\x45\x50\x5f\x50\x69\x50\x6b\x50\x63\x50\x64\x50\x46\x50\x40\x50\x6e\x50\x73\x50\x57\x50\x51\x51\xd0\x52\x6b\x52\x6d\x52\x6c\x52\x6e\x52\xd6\x52\xd3\x53\x2d\x53\x9c\x55\x75\x55\x76\x55\x3c\x55\x4d\x55\x50\x55\x34\x55\x2a\x55\x51\x55\x62\x55\x36\x55\x35\x55\x30\x55\x52\x55\x45\x55\x0c\x55\x32\x55\x65\x55\x4e\x55\x39\x55\x48\x55\x2d\x55\x3b\x55\x40\x55\x4b\x57\x0a\x57\x07\x57\xfb\x58\x14\x57\xe2\x57\xf6\x57\xdc\x57\xf4\x58\x00\x57\xed\x57\xfd\x58\x08\x57\xf8\x58\x0b\x57\xf3\x57\xcf\x58\x07\x57\xee\x57\xe3\x57\xf2\x57\xe5\x57\xec\x57\xe1\x58\x0e\x57\xfc\x58\x10\x57\xe7\x58\x01\x58\x0c\x57\xf1\x57\xe9\x57\xf0\x58\x0d\x58\x04\x59\x5c\x5a\x60\x5a\x58\x5a\x55\x5a\x67\x5a\x5e\x5a\x38\x5a\x35\x5a\x6d\x5a\x50\x5a\x5f\x5a\x65\x5a\x6c\x5a\x53\x5a\x64\x5a\x57\x5a\x43\x5a\x5d\x5a\x52\x5a\x44\x5a\x5b\x5a\x48\x5a\x8e\x5a\x3e\x5a\x4d\x5a\x39\x5a\x4c\x5a\x70\x5a\x69\x5a\x47\x5a\x51\x5a\x56\x5a\x42\x5a\x5c\x5b\x72\x5b\x6e\x5b\xc1\x5b\xc0\x5c\x59\x5d\x1e\x5d\x0b\x5d\x1d\x5d\x1a\x5d\x20\x5d\x0c\x5d\x28\x00\x00\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x0d\x5d\x26\x5d\x25\x5d\x0f\x5d\x30\x5d\x12\x5d\x23\x5d\x1f\x5d\x2e\x5e\x3e\x5e\x34\x5e\xb1\x5e\xb4\x5e\xb9\x5e\xb2\x5e\xb3\x5f\x36\x5f\x38\x5f\x9b\x5f\x96\x5f\x9f\x60\x8a\x60\x90\x60\x86\x60\xbe\x60\xb0\x60\xba\x60\xd3\x60\xd4\x60\xcf\x60\xe4\x60\xd9\x60\xdd\x60\xc8\x60\xb1\x60\xdb\x60\xb7\x60\xca\x60\xbf\x60\xc3\x60\xcd\x60\xc0\x63\x32\x63\x65\x63\x8a\x63\x82\x63\x7d\x63\xbd\x63\x9e\x63\xad\x63\x9d\x63\x97\x63\xab\x63\x8e\x63\x6f\x63\x87\x63\x90\x63\x6e\x63\xaf\x63\x75\x63\x9c\x63\x6d\x63\xae", /* 7380 */ "\x00\x00\x63\x7c\x63\xa4\x63\x3b\x63\x9f\x63\x78\x63\x85\x63\x81\x63\x91\x63\x8d\x63\x70\x65\x53\x65\xcd\x66\x65\x66\x61\x66\x5b\x66\x59\x66\x5c\x66\x62\x67\x18\x68\x79\x68\x87\x68\x90\x68\x9c\x68\x6d\x68\x6e\x68\xae\x68\xab\x69\x56\x68\x6f\x68\xa3\x68\xac\x68\xa9\x68\x75\x68\x74\x68\xb2\x68\x8f\x68\x77\x68\x92\x68\x7c\x68\x6b\x68\x72\x68\xaa\x68\x80\x68\x71\x68\x7e\x68\x9b\x68\x96\x68\x8b\x68\xa0\x68\x89\x68\xa4\x68\x78\x68\x7b\x68\x91\x68\x8c\x68\x8a\x68\x7d\x6b\x36\x6b\x33\x6b\x37\x6b\x38\x6b\x91\x6b\x8f\x6b\x8d\x6b\x8e\x6b\x8c\x6c\x2a\x6d\xc0\x6d\xab\x6d\xb4\x6d\xb3\x6e\x74\x6d\xac\x6d\xe9\x6d\xe2\x6d\xb7\x6d\xf6\x6d\xd4\x6e\x00\x6d\xc8\x6d\xe0\x6d\xdf\x6d\xd6\x6d\xbe\x6d\xe5\x6d\xdc\x6d\xdd\x6d\xdb\x6d\xf4\x6d\xca\x6d\xbd\x6d\xed\x6d\xf0\x6d\xba\x6d\xd5\x6d\xc2\x6d\xcf\x6d\xc9\x6d\xd0\x6d\xf2\x6d\xd3\x6d\xfd\x6d\xd7\x6d\xcd\x6d\xe3\x6d\xbb\x70\xfa\x71\x0d\x70\xf7\x71\x17\x70\xf4\x71\x0c\x70\xf0\x71\x04\x70\xf3\x71\x10\x70\xfc\x70\xff\x71\x06\x71\x13\x71\x00\x70\xf8\x70\xf6\x71\x0b\x71\x02\x00\x00\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x0e\x72\x7e\x72\x7b\x72\x7c\x72\x7f\x73\x1d\x73\x17\x73\x07\x73\x11\x73\x18\x73\x0a\x73\x08\x72\xff\x73\x0f\x73\x1e\x73\x88\x73\xf6\x73\xf8\x73\xf5\x74\x04\x74\x01\x73\xfd\x74\x07\x74\x00\x73\xfa\x73\xfc\x73\xff\x74\x0c\x74\x0b\x73\xf4\x74\x08\x75\x64\x75\x63\x75\xce\x75\xd2\x75\xcf\x75\xcb\x75\xcc\x75\xd1\x75\xd0\x76\x8f\x76\x89\x76\xd3\x77\x39\x77\x2f\x77\x2d\x77\x31\x77\x32\x77\x34\x77\x33\x77\x3d\x77\x25\x77\x3b\x77\x35\x78\x48\x78\x52\x78\x49\x78\x4d\x78\x4a\x78\x4c\x78\x26\x78\x45\x78\x50", /* 7480 */ "\x00\x00\x79\x64\x79\x67\x79\x69\x79\x6a\x79\x63\x79\x6b\x79\x61\x79\xbb\x79\xfa\x79\xf8\x79\xf6\x79\xf7\x7a\x8f\x7a\x94\x7a\x90\x7b\x35\x7b\x47\x7b\x34\x7b\x25\x7b\x30\x7b\x22\x7b\x24\x7b\x33\x7b\x18\x7b\x2a\x7b\x1d\x7b\x31\x7b\x2b\x7b\x2d\x7b\x2f\x7b\x32\x7b\x38\x7b\x1a\x7b\x23\x7c\x94\x7c\x98\x7c\x96\x7c\xa3\x7d\x35\x7d\x3d\x7d\x38\x7d\x36\x7d\x3a\x7d\x45\x7d\x2c\x7d\x29\x7d\x41\x7d\x47\x7d\x3e\x7d\x3f\x7d\x4a\x7d\x3b\x7d\x28\x7f\x63\x7f\x95\x7f\x9c\x7f\x9d\x7f\x9b\x7f\xca\x7f\xcb\x7f\xcd\x7f\xd0\x7f\xd1\x7f\xc7\x7f\xcf\x7f\xc9\x80\x1f\x80\x1e\x80\x1b\x80\x47\x80\x43\x80\x48\x81\x18\x81\x25\x81\x19\x81\x1b\x81\x2d\x81\x1f\x81\x2c\x81\x1e\x81\x21\x81\x15\x81\x27\x81\x1d\x81\x22\x82\x11\x82\x38\x82\x33\x82\x3a\x82\x34\x82\x32\x82\x74\x83\x90\x83\xa3\x83\xa8\x83\x8d\x83\x7a\x83\x73\x83\xa4\x83\x74\x83\x8f\x83\x81\x83\x95\x83\x99\x83\x75\x83\x94\x83\xa9\x83\x7d\x83\x83\x83\x8c\x83\x9d\x83\x9b\x83\xaa\x83\x8b\x83\x7e\x83\xa5\x83\xaf\x83\x88\x83\x97\x83\xb0\x83\x7f\x83\xa6\x83\x87\x83\xae\x83\x76\x00\x00\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x9a\x86\x59\x86\x56\x86\xbf\x86\xb7\x86\xc2\x86\xc1\x86\xc5\x86\xba\x86\xb0\x86\xc8\x86\xb9\x86\xb3\x86\xb8\x86\xcc\x86\xb4\x86\xbb\x86\xbc\x86\xc3\x86\xbd\x86\xbe\x88\x52\x88\x89\x88\x95\x88\xa8\x88\xa2\x88\xaa\x88\x9a\x88\x91\x88\xa1\x88\x9f\x88\x98\x88\xa7\x88\x99\x88\x9b\x88\x97\x88\xa4\x88\xac\x88\x8c\x88\x93\x88\x8e\x89\x82\x89\xd6\x89\xd9\x89\xd5\x8a\x30\x8a\x27\x8a\x2c\x8a\x1e\x8c\x39\x8c\x3b\x8c\x5c\x8c\x5d\x8c\x7d\x8c\xa5\x8d\x7d\x8d\x7b\x8d\x79\x8d\xbc\x8d\xc2\x8d\xb9\x8d\xbf\x8d\xc1", /* 7580 */ "\x00\x00\x8e\xd8\x8e\xde\x8e\xdd\x8e\xdc\x8e\xd7\x8e\xe0\x8e\xe1\x90\x24\x90\x0b\x90\x11\x90\x1c\x90\x0c\x90\x21\x90\xef\x90\xea\x90\xf0\x90\xf4\x90\xf2\x90\xf3\x90\xd4\x90\xeb\x90\xec\x90\xe9\x91\x56\x91\x58\x91\x5a\x91\x53\x91\x55\x91\xec\x91\xf4\x91\xf1\x91\xf3\x91\xf8\x91\xe4\x91\xf9\x91\xea\x91\xeb\x91\xf7\x91\xe8\x91\xee\x95\x7a\x95\x86\x95\x88\x96\x7c\x96\x6d\x96\x6b\x96\x71\x96\x6f\x96\xbf\x97\x6a\x98\x04\x98\xe5\x99\x97\x50\x9b\x50\x95\x50\x94\x50\x9e\x50\x8b\x50\xa3\x50\x83\x50\x8c\x50\x8e\x50\x9d\x50\x68\x50\x9c\x50\x92\x50\x82\x50\x87\x51\x5f\x51\xd4\x53\x12\x53\x11\x53\xa4\x53\xa7\x55\x91\x55\xa8\x55\xa5\x55\xad\x55\x77\x56\x45\x55\xa2\x55\x93\x55\x88\x55\x8f\x55\xb5\x55\x81\x55\xa3\x55\x92\x55\xa4\x55\x7d\x55\x8c\x55\xa6\x55\x7f\x55\x95\x55\xa1\x55\x8e\x57\x0c\x58\x29\x58\x37\x58\x19\x58\x1e\x58\x27\x58\x23\x58\x28\x57\xf5\x58\x48\x58\x25\x58\x1c\x58\x1b\x58\x33\x58\x3f\x58\x36\x58\x2e\x58\x39\x58\x38\x58\x2d\x58\x2c\x58\x3b\x59\x61\x5a\xaf\x5a\x94\x5a\x9f\x5a\x7a\x5a\xa2\x5a\x9e\x00\x00\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x78\x5a\xa6\x5a\x7c\x5a\xa5\x5a\xac\x5a\x95\x5a\xae\x5a\x37\x5a\x84\x5a\x8a\x5a\x97\x5a\x83\x5a\x8b\x5a\xa9\x5a\x7b\x5a\x7d\x5a\x8c\x5a\x9c\x5a\x8f\x5a\x93\x5a\x9d\x5b\xea\x5b\xcd\x5b\xcb\x5b\xd4\x5b\xd1\x5b\xca\x5b\xce\x5c\x0c\x5c\x30\x5d\x37\x5d\x43\x5d\x6b\x5d\x41\x5d\x4b\x5d\x3f\x5d\x35\x5d\x51\x5d\x4e\x5d\x55\x5d\x33\x5d\x3a\x5d\x52\x5d\x3d\x5d\x31\x5d\x59\x5d\x42\x5d\x39\x5d\x49\x5d\x38\x5d\x3c\x5d\x32\x5d\x36\x5d\x40\x5d\x45\x5e\x44\x5e\x41\x5f\x58\x5f\xa6\x5f\xa5\x5f\xab\x60\xc9\x60\xb9", /* 7680 */ "\x00\x00\x60\xcc\x60\xe2\x60\xce\x60\xc4\x61\x14\x60\xf2\x61\x0a\x61\x16\x61\x05\x60\xf5\x61\x13\x60\xf8\x60\xfc\x60\xfe\x60\xc1\x61\x03\x61\x18\x61\x1d\x61\x10\x60\xff\x61\x04\x61\x0b\x62\x4a\x63\x94\x63\xb1\x63\xb0\x63\xce\x63\xe5\x63\xe8\x63\xef\x63\xc3\x64\x9d\x63\xf3\x63\xca\x63\xe0\x63\xf6\x63\xd5\x63\xf2\x63\xf5\x64\x61\x63\xdf\x63\xbe\x63\xdd\x63\xdc\x63\xc4\x63\xd8\x63\xd3\x63\xc2\x63\xc7\x63\xcc\x63\xcb\x63\xc8\x63\xf0\x63\xd7\x63\xd9\x65\x32\x65\x67\x65\x6a\x65\x64\x65\x5c\x65\x68\x65\x65\x65\x8c\x65\x9d\x65\x9e\x65\xae\x65\xd0\x65\xd2\x66\x7c\x66\x6c\x66\x7b\x66\x80\x66\x71\x66\x79\x66\x6a\x66\x72\x67\x01\x69\x0c\x68\xd3\x69\x04\x68\xdc\x69\x2a\x68\xec\x68\xea\x68\xf1\x69\x0f\x68\xd6\x68\xf7\x68\xeb\x68\xe4\x68\xf6\x69\x13\x69\x10\x68\xf3\x68\xe1\x69\x07\x68\xcc\x69\x08\x69\x70\x68\xb4\x69\x11\x68\xef\x68\xc6\x69\x14\x68\xf8\x68\xd0\x68\xfd\x68\xfc\x68\xe8\x69\x0b\x69\x0a\x69\x17\x68\xce\x68\xc8\x68\xdd\x68\xde\x68\xe6\x68\xf4\x68\xd1\x69\x06\x68\xd4\x68\xe9\x69\x15\x69\x25\x68\xc7\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\x39\x6b\x3b\x6b\x3f\x6b\x3c\x6b\x94\x6b\x97\x6b\x99\x6b\x95\x6b\xbd\x6b\xf0\x6b\xf2\x6b\xf3\x6c\x30\x6d\xfc\x6e\x46\x6e\x47\x6e\x1f\x6e\x49\x6e\x88\x6e\x3c\x6e\x3d\x6e\x45\x6e\x62\x6e\x2b\x6e\x3f\x6e\x41\x6e\x5d\x6e\x73\x6e\x1c\x6e\x33\x6e\x4b\x6e\x40\x6e\x51\x6e\x3b\x6e\x03\x6e\x2e\x6e\x5e\x6e\x68\x6e\x5c\x6e\x61\x6e\x31\x6e\x28\x6e\x60\x6e\x71\x6e\x6b\x6e\x39\x6e\x22\x6e\x30\x6e\x53\x6e\x65\x6e\x27\x6e\x78\x6e\x64\x6e\x77\x6e\x55\x6e\x79\x6e\x52\x6e\x66\x6e\x35\x6e\x36\x6e\x5a\x71\x20\x71\x1e", /* 7780 */ "\x00\x00\x71\x2f\x70\xfb\x71\x2e\x71\x31\x71\x23\x71\x25\x71\x22\x71\x32\x71\x1f\x71\x28\x71\x3a\x71\x1b\x72\x4b\x72\x5a\x72\x88\x72\x89\x72\x86\x72\x85\x72\x8b\x73\x12\x73\x0b\x73\x30\x73\x22\x73\x31\x73\x33\x73\x27\x73\x32\x73\x2d\x73\x26\x73\x23\x73\x35\x73\x0c\x74\x2e\x74\x2c\x74\x30\x74\x2b\x74\x16\x74\x1a\x74\x21\x74\x2d\x74\x31\x74\x24\x74\x23\x74\x1d\x74\x29\x74\x20\x74\x32\x74\xfb\x75\x2f\x75\x6f\x75\x6c\x75\xe7\x75\xda\x75\xe1\x75\xe6\x75\xdd\x75\xdf\x75\xe4\x75\xd7\x76\x95\x76\x92\x76\xda\x77\x46\x77\x47\x77\x44\x77\x4d\x77\x45\x77\x4a\x77\x4e\x77\x4b\x77\x4c\x77\xde\x77\xec\x78\x60\x78\x64\x78\x65\x78\x5c\x78\x6d\x78\x71\x78\x6a\x78\x6e\x78\x70\x78\x69\x78\x68\x78\x5e\x78\x62\x79\x74\x79\x73\x79\x72\x79\x70\x7a\x02\x7a\x0a\x7a\x03\x7a\x0c\x7a\x04\x7a\x99\x7a\xe6\x7a\xe4\x7b\x4a\x7b\x3b\x7b\x44\x7b\x48\x7b\x4c\x7b\x4e\x7b\x40\x7b\x58\x7b\x45\x7c\xa2\x7c\x9e\x7c\xa8\x7c\xa1\x7d\x58\x7d\x6f\x7d\x63\x7d\x53\x7d\x56\x7d\x67\x7d\x6a\x7d\x4f\x7d\x6d\x7d\x5c\x7d\x6b\x7d\x52\x7d\x54\x7d\x69\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x51\x7d\x5f\x7d\x4e\x7f\x3e\x7f\x3f\x7f\x65\x7f\x66\x7f\xa2\x7f\xa0\x7f\xa1\x7f\xd7\x80\x51\x80\x4f\x80\x50\x80\xfe\x80\xd4\x81\x43\x81\x4a\x81\x52\x81\x4f\x81\x47\x81\x3d\x81\x4d\x81\x3a\x81\xe6\x81\xee\x81\xf7\x81\xf8\x81\xf9\x82\x04\x82\x3c\x82\x3d\x82\x3f\x82\x75\x83\x3b\x83\xcf\x83\xf9\x84\x23\x83\xc0\x83\xe8\x84\x12\x83\xe7\x83\xe4\x83\xfc\x83\xf6\x84\x10\x83\xc6\x83\xc8\x83\xeb\x83\xe3\x83\xbf\x84\x01\x83\xdd\x83\xe5\x83\xd8\x83\xff\x83\xe1\x83\xcb\x83\xce\x83\xd6\x83\xf5\x83\xc9\x84\x09", /* 7880 */ "\x00\x00\x84\x0f\x83\xde\x84\x11\x84\x06\x83\xc2\x83\xf3\x83\xd5\x83\xfa\x83\xc7\x83\xd1\x83\xea\x84\x13\x83\xc3\x83\xec\x83\xee\x83\xc4\x83\xfb\x83\xd7\x83\xe2\x84\x1b\x83\xdb\x83\xfe\x86\xd8\x86\xe2\x86\xe6\x86\xd3\x86\xe3\x86\xda\x86\xea\x86\xdd\x86\xeb\x86\xdc\x86\xec\x86\xe9\x86\xd7\x86\xe8\x86\xd1\x88\x48\x88\x56\x88\x55\x88\xba\x88\xd7\x88\xb9\x88\xb8\x88\xc0\x88\xbe\x88\xb6\x88\xbc\x88\xb7\x88\xbd\x88\xb2\x89\x01\x88\xc9\x89\x95\x89\x98\x89\x97\x89\xdd\x89\xda\x89\xdb\x8a\x4e\x8a\x4d\x8a\x39\x8a\x59\x8a\x40\x8a\x57\x8a\x58\x8a\x44\x8a\x45\x8a\x52\x8a\x48\x8a\x51\x8a\x4a\x8a\x4c\x8a\x4f\x8c\x5f\x8c\x81\x8c\x80\x8c\xba\x8c\xbe\x8c\xb0\x8c\xb9\x8c\xb5\x8d\x84\x8d\x80\x8d\x89\x8d\xd8\x8d\xd3\x8d\xcd\x8d\xc7\x8d\xd6\x8d\xdc\x8d\xcf\x8d\xd5\x8d\xd9\x8d\xc8\x8d\xd7\x8d\xc5\x8e\xef\x8e\xf7\x8e\xfa\x8e\xf9\x8e\xe6\x8e\xee\x8e\xe5\x8e\xf5\x8e\xe7\x8e\xe8\x8e\xf6\x8e\xeb\x8e\xf1\x8e\xec\x8e\xf4\x8e\xe9\x90\x2d\x90\x34\x90\x2f\x91\x06\x91\x2c\x91\x04\x90\xff\x90\xfc\x91\x08\x90\xf9\x90\xfb\x91\x01\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x00\x91\x07\x91\x05\x91\x03\x91\x61\x91\x64\x91\x5f\x91\x62\x91\x60\x92\x01\x92\x0a\x92\x25\x92\x03\x92\x1a\x92\x26\x92\x0f\x92\x0c\x92\x00\x92\x12\x91\xff\x91\xfd\x92\x06\x92\x04\x92\x27\x92\x02\x92\x1c\x92\x24\x92\x19\x92\x17\x92\x05\x92\x16\x95\x7b\x95\x8d\x95\x8c\x95\x90\x96\x87\x96\x7e\x96\x88\x96\x89\x96\x83\x96\x80\x96\xc2\x96\xc8\x96\xc3\x96\xf1\x96\xf0\x97\x6c\x97\x70\x97\x6e\x98\x07\x98\xa9\x98\xeb\x9c\xe6\x9e\xf9\x4e\x83\x4e\x84\x4e\xb6\x50\xbd\x50\xbf\x50\xc6\x50\xae\x50\xc4\x50\xca", /* 7980 */ "\x00\x00\x50\xb4\x50\xc8\x50\xc2\x50\xb0\x50\xc1\x50\xba\x50\xb1\x50\xcb\x50\xc9\x50\xb6\x50\xb8\x51\xd7\x52\x7a\x52\x78\x52\x7b\x52\x7c\x55\xc3\x55\xdb\x55\xcc\x55\xd0\x55\xcb\x55\xca\x55\xdd\x55\xc0\x55\xd4\x55\xc4\x55\xe9\x55\xbf\x55\xd2\x55\x8d\x55\xcf\x55\xd5\x55\xe2\x55\xd6\x55\xc8\x55\xf2\x55\xcd\x55\xd9\x55\xc2\x57\x14\x58\x53\x58\x68\x58\x64\x58\x4f\x58\x4d\x58\x49\x58\x6f\x58\x55\x58\x4e\x58\x5d\x58\x59\x58\x65\x58\x5b\x58\x3d\x58\x63\x58\x71\x58\xfc\x5a\xc7\x5a\xc4\x5a\xcb\x5a\xba\x5a\xb8\x5a\xb1\x5a\xb5\x5a\xb0\x5a\xbf\x5a\xc8\x5a\xbb\x5a\xc6\x5a\xb7\x5a\xc0\x5a\xca\x5a\xb4\x5a\xb6\x5a\xcd\x5a\xb9\x5a\x90\x5b\xd6\x5b\xd8\x5b\xd9\x5c\x1f\x5c\x33\x5d\x71\x5d\x63\x5d\x4a\x5d\x65\x5d\x72\x5d\x6c\x5d\x5e\x5d\x68\x5d\x67\x5d\x62\x5d\xf0\x5e\x4f\x5e\x4e\x5e\x4a\x5e\x4d\x5e\x4b\x5e\xc5\x5e\xcc\x5e\xc6\x5e\xcb\x5e\xc7\x5f\x40\x5f\xaf\x5f\xad\x60\xf7\x61\x49\x61\x4a\x61\x2b\x61\x45\x61\x36\x61\x32\x61\x2e\x61\x46\x61\x2f\x61\x4f\x61\x29\x61\x40\x62\x20\x91\x68\x62\x23\x62\x25\x62\x24\x63\xc5\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\xf1\x63\xeb\x64\x10\x64\x12\x64\x09\x64\x20\x64\x24\x64\x33\x64\x43\x64\x1f\x64\x15\x64\x18\x64\x39\x64\x37\x64\x22\x64\x23\x64\x0c\x64\x26\x64\x30\x64\x28\x64\x41\x64\x35\x64\x2f\x64\x0a\x64\x1a\x64\x40\x64\x25\x64\x27\x64\x0b\x63\xe7\x64\x1b\x64\x2e\x64\x21\x64\x0e\x65\x6f\x65\x92\x65\xd3\x66\x86\x66\x8c\x66\x95\x66\x90\x66\x8b\x66\x8a\x66\x99\x66\x94\x66\x78\x67\x20\x69\x66\x69\x5f\x69\x38\x69\x4e\x69\x62\x69\x71\x69\x3f\x69\x45\x69\x6a\x69\x39\x69\x42\x69\x57\x69\x59\x69\x7a\x69\x48\x69\x49", /* 7a80 */ "\x00\x00\x69\x35\x69\x6c\x69\x33\x69\x3d\x69\x65\x68\xf0\x69\x78\x69\x34\x69\x69\x69\x40\x69\x6f\x69\x44\x69\x76\x69\x58\x69\x41\x69\x74\x69\x4c\x69\x3b\x69\x4b\x69\x37\x69\x5c\x69\x4f\x69\x51\x69\x32\x69\x52\x69\x2f\x69\x7b\x69\x3c\x6b\x46\x6b\x45\x6b\x43\x6b\x42\x6b\x48\x6b\x41\x6b\x9b\xfa\x0d\x6b\xfb\x6b\xfc\x6b\xf9\x6b\xf7\x6b\xf8\x6e\x9b\x6e\xd6\x6e\xc8\x6e\x8f\x6e\xc0\x6e\x9f\x6e\x93\x6e\x94\x6e\xa0\x6e\xb1\x6e\xb9\x6e\xc6\x6e\xd2\x6e\xbd\x6e\xc1\x6e\x9e\x6e\xc9\x6e\xb7\x6e\xb0\x6e\xcd\x6e\xa6\x6e\xcf\x6e\xb2\x6e\xbe\x6e\xc3\x6e\xdc\x6e\xd8\x6e\x99\x6e\x92\x6e\x8e\x6e\x8d\x6e\xa4\x6e\xa1\x6e\xbf\x6e\xb3\x6e\xd0\x6e\xca\x6e\x97\x6e\xae\x6e\xa3\x71\x47\x71\x54\x71\x52\x71\x63\x71\x60\x71\x41\x71\x5d\x71\x62\x71\x72\x71\x78\x71\x6a\x71\x61\x71\x42\x71\x58\x71\x43\x71\x4b\x71\x70\x71\x5f\x71\x50\x71\x53\x71\x44\x71\x4d\x71\x5a\x72\x4f\x72\x8d\x72\x8c\x72\x91\x72\x90\x72\x8e\x73\x3c\x73\x42\x73\x3b\x73\x3a\x73\x40\x73\x4a\x73\x49\x74\x44\x74\x4a\x74\x4b\x74\x52\x74\x51\x74\x57\x74\x40\x74\x4f\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x50\x74\x4e\x74\x42\x74\x46\x74\x4d\x74\x54\x74\xe1\x74\xff\x74\xfe\x74\xfd\x75\x1d\x75\x79\x75\x77\x69\x83\x75\xef\x76\x0f\x76\x03\x75\xf7\x75\xfe\x75\xfc\x75\xf9\x75\xf8\x76\x10\x75\xfb\x75\xf6\x75\xed\x75\xf5\x75\xfd\x76\x99\x76\xb5\x76\xdd\x77\x55\x77\x5f\x77\x60\x77\x52\x77\x56\x77\x5a\x77\x69\x77\x67\x77\x54\x77\x59\x77\x6d\x77\xe0\x78\x87\x78\x9a\x78\x94\x78\x8f\x78\x84\x78\x95\x78\x85\x78\x86\x78\xa1\x78\x83\x78\x79\x78\x99\x78\x80\x78\x96\x78\x7b\x79\x7c\x79\x82\x79\x7d\x79\x79\x7a\x11", /* 7b80 */ "\x00\x00\x7a\x18\x7a\x19\x7a\x12\x7a\x17\x7a\x15\x7a\x22\x7a\x13\x7a\x1b\x7a\x10\x7a\xa3\x7a\xa2\x7a\x9e\x7a\xeb\x7b\x66\x7b\x64\x7b\x6d\x7b\x74\x7b\x69\x7b\x72\x7b\x65\x7b\x73\x7b\x71\x7b\x70\x7b\x61\x7b\x78\x7b\x76\x7b\x63\x7c\xb2\x7c\xb4\x7c\xaf\x7d\x88\x7d\x86\x7d\x80\x7d\x8d\x7d\x7f\x7d\x85\x7d\x7a\x7d\x8e\x7d\x7b\x7d\x83\x7d\x7c\x7d\x8c\x7d\x94\x7d\x84\x7d\x7d\x7d\x92\x7f\x6d\x7f\x6b\x7f\x67\x7f\x68\x7f\x6c\x7f\xa6\x7f\xa5\x7f\xa7\x7f\xdb\x7f\xdc\x80\x21\x81\x64\x81\x60\x81\x77\x81\x5c\x81\x69\x81\x5b\x81\x62\x81\x72\x67\x21\x81\x5e\x81\x76\x81\x67\x81\x6f\x81\x44\x81\x61\x82\x1d\x82\x49\x82\x44\x82\x40\x82\x42\x82\x45\x84\xf1\x84\x3f\x84\x56\x84\x76\x84\x79\x84\x8f\x84\x8d\x84\x65\x84\x51\x84\x40\x84\x86\x84\x67\x84\x30\x84\x4d\x84\x7d\x84\x5a\x84\x59\x84\x74\x84\x73\x84\x5d\x85\x07\x84\x5e\x84\x37\x84\x3a\x84\x34\x84\x7a\x84\x43\x84\x78\x84\x32\x84\x45\x84\x29\x83\xd9\x84\x4b\x84\x2f\x84\x42\x84\x2d\x84\x5f\x84\x70\x84\x39\x84\x4e\x84\x4c\x84\x52\x84\x6f\x84\xc5\x84\x8e\x84\x3b\x84\x47\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x36\x84\x33\x84\x68\x84\x7e\x84\x44\x84\x2b\x84\x60\x84\x54\x84\x6e\x84\x50\x87\x0b\x87\x04\x86\xf7\x87\x0c\x86\xfa\x86\xd6\x86\xf5\x87\x4d\x86\xf8\x87\x0e\x87\x09\x87\x01\x86\xf6\x87\x0d\x87\x05\x88\xd6\x88\xcb\x88\xcd\x88\xce\x88\xde\x88\xdb\x88\xda\x88\xcc\x88\xd0\x89\x85\x89\x9b\x89\xdf\x89\xe5\x89\xe4\x89\xe1\x89\xe0\x89\xe2\x89\xdc\x89\xe6\x8a\x76\x8a\x86\x8a\x7f\x8a\x61\x8a\x3f\x8a\x77\x8a\x82\x8a\x84\x8a\x75\x8a\x83\x8a\x81\x8a\x74\x8a\x7a\x8c\x3c\x8c\x4b\x8c\x4a\x8c\x65\x8c\x64\x8c\x66", /* 7c80 */ "\x00\x00\x8c\x86\x8c\x84\x8c\x85\x8c\xcc\x8d\x68\x8d\x69\x8d\x91\x8d\x8c\x8d\x8e\x8d\x8f\x8d\x8d\x8d\x93\x8d\x94\x8d\x90\x8d\x92\x8d\xf0\x8d\xe0\x8d\xec\x8d\xf1\x8d\xee\x8d\xd0\x8d\xe9\x8d\xe3\x8d\xe2\x8d\xe7\x8d\xf2\x8d\xeb\x8d\xf4\x8f\x06\x8e\xff\x8f\x01\x8f\x00\x8f\x05\x8f\x07\x8f\x08\x8f\x02\x8f\x0b\x90\x52\x90\x3f\x90\x44\x90\x49\x90\x3d\x91\x10\x91\x0d\x91\x0f\x91\x11\x91\x16\x91\x14\x91\x0b\x91\x0e\x91\x6e\x91\x6f\x92\x48\x92\x52\x92\x30\x92\x3a\x92\x66\x92\x33\x92\x65\x92\x5e\x92\x83\x92\x2e\x92\x4a\x92\x46\x92\x6d\x92\x6c\x92\x4f\x92\x60\x92\x67\x92\x6f\x92\x36\x92\x61\x92\x70\x92\x31\x92\x54\x92\x63\x92\x50\x92\x72\x92\x4e\x92\x53\x92\x4c\x92\x56\x92\x32\x95\x9f\x95\x9c\x95\x9e\x95\x9b\x96\x92\x96\x93\x96\x91\x96\x97\x96\xce\x96\xfa\x96\xfd\x96\xf8\x96\xf5\x97\x73\x97\x77\x97\x78\x97\x72\x98\x0f\x98\x0d\x98\x0e\x98\xac\x98\xf6\x98\xf9\x99\xaf\x99\xb2\x99\xb0\x99\xb5\x9a\xad\x9a\xab\x9b\x5b\x9c\xea\x9c\xed\x9c\xe7\x9e\x80\x9e\xfd\x50\xe6\x50\xd4\x50\xd7\x50\xe8\x50\xf3\x50\xdb\x50\xea\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xdd\x50\xe4\x50\xd3\x50\xec\x50\xf0\x50\xef\x50\xe3\x50\xe0\x51\xd8\x52\x80\x52\x81\x52\xe9\x52\xeb\x53\x30\x53\xac\x56\x27\x56\x15\x56\x0c\x56\x12\x55\xfc\x56\x0f\x56\x1c\x56\x01\x56\x13\x56\x02\x55\xfa\x56\x1d\x56\x04\x55\xff\x55\xf9\x58\x89\x58\x7c\x58\x90\x58\x98\x58\x86\x58\x81\x58\x7f\x58\x74\x58\x8b\x58\x7a\x58\x87\x58\x91\x58\x8e\x58\x76\x58\x82\x58\x88\x58\x7b\x58\x94\x58\x8f\x58\xfe\x59\x6b\x5a\xdc\x5a\xee\x5a\xe5\x5a\xd5\x5a\xea\x5a\xda\x5a\xed\x5a\xeb\x5a\xf3\x5a\xe2\x5a\xe0\x5a\xdb", /* 7d80 */ "\x00\x00\x5a\xec\x5a\xde\x5a\xdd\x5a\xd9\x5a\xe8\x5a\xdf\x5b\x77\x5b\xe0\x5b\xe3\x5c\x63\x5d\x82\x5d\x80\x5d\x7d\x5d\x86\x5d\x7a\x5d\x81\x5d\x77\x5d\x8a\x5d\x89\x5d\x88\x5d\x7e\x5d\x7c\x5d\x8d\x5d\x79\x5d\x7f\x5e\x58\x5e\x59\x5e\x53\x5e\xd8\x5e\xd1\x5e\xd7\x5e\xce\x5e\xdc\x5e\xd5\x5e\xd9\x5e\xd2\x5e\xd4\x5f\x44\x5f\x43\x5f\x6f\x5f\xb6\x61\x2c\x61\x28\x61\x41\x61\x5e\x61\x71\x61\x73\x61\x52\x61\x53\x61\x72\x61\x6c\x61\x80\x61\x74\x61\x54\x61\x7a\x61\x5b\x61\x65\x61\x3b\x61\x6a\x61\x61\x61\x56\x62\x29\x62\x27\x62\x2b\x64\x2b\x64\x4d\x64\x5b\x64\x5d\x64\x74\x64\x76\x64\x72\x64\x73\x64\x7d\x64\x75\x64\x66\x64\xa6\x64\x4e\x64\x82\x64\x5e\x64\x5c\x64\x4b\x64\x53\x64\x60\x64\x50\x64\x7f\x64\x3f\x64\x6c\x64\x6b\x64\x59\x64\x65\x64\x77\x65\x73\x65\xa0\x66\xa1\x66\xa0\x66\x9f\x67\x05\x67\x04\x67\x22\x69\xb1\x69\xb6\x69\xc9\x69\xa0\x69\xce\x69\x96\x69\xb0\x69\xac\x69\xbc\x69\x91\x69\x99\x69\x8e\x69\xa7\x69\x8d\x69\xa9\x69\xbe\x69\xaf\x69\xbf\x69\xc4\x69\xbd\x69\xa4\x69\xd4\x69\xb9\x69\xca\x69\x9a\x69\xcf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\xb3\x69\x93\x69\xaa\x69\xa1\x69\x9e\x69\xd9\x69\x97\x69\x90\x69\xc2\x69\xb5\x69\xa5\x69\xc6\x6b\x4a\x6b\x4d\x6b\x4b\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xc3\x6b\xc4\x6b\xfe\x6e\xce\x6e\xf5\x6e\xf1\x6f\x03\x6f\x25\x6e\xf8\x6f\x37\x6e\xfb\x6f\x2e\x6f\x09\x6f\x4e\x6f\x19\x6f\x1a\x6f\x27\x6f\x18\x6f\x3b\x6f\x12\x6e\xed\x6f\x0a\x6f\x36\x6f\x73\x6e\xf9\x6e\xee\x6f\x2d\x6f\x40\x6f\x30\x6f\x3c\x6f\x35\x6e\xeb\x6f\x07\x6f\x0e\x6f\x43\x6f\x05\x6e\xfd\x6e\xf6\x6f\x39\x6f\x1c\x6e\xfc\x6f\x3a\x6f\x1f\x6f\x0d\x6f\x1e", /* 7e80 */ "\x00\x00\x6f\x08\x6f\x21\x71\x87\x71\x90\x71\x89\x71\x80\x71\x85\x71\x82\x71\x8f\x71\x7b\x71\x86\x71\x81\x71\x97\x72\x44\x72\x53\x72\x97\x72\x95\x72\x93\x73\x43\x73\x4d\x73\x51\x73\x4c\x74\x62\x74\x73\x74\x71\x74\x75\x74\x72\x74\x67\x74\x6e\x75\x00\x75\x02\x75\x03\x75\x7d\x75\x90\x76\x16\x76\x08\x76\x0c\x76\x15\x76\x11\x76\x0a\x76\x14\x76\xb8\x77\x81\x77\x7c\x77\x85\x77\x82\x77\x6e\x77\x80\x77\x6f\x77\x7e\x77\x83\x78\xb2\x78\xaa\x78\xb4\x78\xad\x78\xa8\x78\x7e\x78\xab\x78\x9e\x78\xa5\x78\xa0\x78\xac\x78\xa2\x78\xa4\x79\x98\x79\x8a\x79\x8b\x79\x96\x79\x95\x79\x94\x79\x93\x79\x97\x79\x88\x79\x92\x79\x90\x7a\x2b\x7a\x4a\x7a\x30\x7a\x2f\x7a\x28\x7a\x26\x7a\xa8\x7a\xab\x7a\xac\x7a\xee\x7b\x88\x7b\x9c\x7b\x8a\x7b\x91\x7b\x90\x7b\x96\x7b\x8d\x7b\x8c\x7b\x9b\x7b\x8e\x7b\x85\x7b\x98\x52\x84\x7b\x99\x7b\xa4\x7b\x82\x7c\xbb\x7c\xbf\x7c\xbc\x7c\xba\x7d\xa7\x7d\xb7\x7d\xc2\x7d\xa3\x7d\xaa\x7d\xc1\x7d\xc0\x7d\xc5\x7d\x9d\x7d\xce\x7d\xc4\x7d\xc6\x7d\xcb\x7d\xcc\x7d\xaf\x7d\xb9\x7d\x96\x7d\xbc\x7d\x9f\x7d\xa6\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xae\x7d\xa9\x7d\xa1\x7d\xc9\x7f\x73\x7f\xe2\x7f\xe3\x7f\xe5\x7f\xde\x80\x24\x80\x5d\x80\x5c\x81\x89\x81\x86\x81\x83\x81\x87\x81\x8d\x81\x8c\x81\x8b\x82\x15\x84\x97\x84\xa4\x84\xa1\x84\x9f\x84\xba\x84\xce\x84\xc2\x84\xac\x84\xae\x84\xab\x84\xb9\x84\xb4\x84\xc1\x84\xcd\x84\xaa\x84\x9a\x84\xb1\x84\xd0\x84\x9d\x84\xa7\x84\xbb\x84\xa2\x84\x94\x84\xc7\x84\xcc\x84\x9b\x84\xa9\x84\xaf\x84\xa8\x84\xd6\x84\x98\x84\xb6\x84\xcf\x84\xa0\x84\xd7\x84\xd4\x84\xd2\x84\xdb\x84\xb0\x84\x91\x86\x61\x87\x33\x87\x23", /* 7f80 */ "\x00\x00\x87\x28\x87\x6b\x87\x40\x87\x2e\x87\x1e\x87\x21\x87\x19\x87\x1b\x87\x43\x87\x2c\x87\x41\x87\x3e\x87\x46\x87\x20\x87\x32\x87\x2a\x87\x2d\x87\x3c\x87\x12\x87\x3a\x87\x31\x87\x35\x87\x42\x87\x26\x87\x27\x87\x38\x87\x24\x87\x1a\x87\x30\x87\x11\x88\xf7\x88\xe7\x88\xf1\x88\xf2\x88\xfa\x88\xfe\x88\xee\x88\xfc\x88\xf6\x88\xfb\x88\xf0\x88\xec\x88\xeb\x89\x9d\x89\xa1\x89\x9f\x89\x9e\x89\xe9\x89\xeb\x89\xe8\x8a\xab\x8a\x99\x8a\x8b\x8a\x92\x8a\x8f\x8a\x96\x8c\x3d\x8c\x68\x8c\x69\x8c\xd5\x8c\xcf\x8c\xd7\x8d\x96\x8e\x09\x8e\x02\x8d\xff\x8e\x0d\x8d\xfd\x8e\x0a\x8e\x03\x8e\x07\x8e\x06\x8e\x05\x8d\xfe\x8e\x00\x8e\x04\x8f\x10\x8f\x11\x8f\x0e\x8f\x0d\x91\x23\x91\x1c\x91\x20\x91\x22\x91\x1f\x91\x1d\x91\x1a\x91\x24\x91\x21\x91\x1b\x91\x7a\x91\x72\x91\x79\x91\x73\x92\xa5\x92\xa4\x92\x76\x92\x9b\x92\x7a\x92\xa0\x92\x94\x92\xaa\x92\x8d\x92\xa6\x92\x9a\x92\xab\x92\x79\x92\x97\x92\x7f\x92\xa3\x92\xee\x92\x8e\x92\x82\x92\x95\x92\xa2\x92\x7d\x92\x88\x92\xa1\x92\x8a\x92\x86\x92\x8c\x92\x99\x92\xa7\x92\x7e\x92\x87\x00\x00\x00\x00", /* 8000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\xa9\x92\x9d\x92\x8b\x92\x2d\x96\x9e\x96\xa1\x96\xff\x97\x58\x97\x7d\x97\x7a\x97\x7e\x97\x83\x97\x80\x97\x82\x97\x7b\x97\x84\x97\x81\x97\x7f\x97\xce\x97\xcd\x98\x16\x98\xad\x98\xae\x99\x02\x99\x00\x99\x07\x99\x9d\x99\x9c\x99\xc3\x99\xb9\x99\xbb\x99\xba\x99\xc2\x99\xbd\x99\xc7\x9a\xb1\x9a\xe3\x9a\xe7\x9b\x3e\x9b\x3f\x9b\x60\x9b\x61\x9b\x5f\x9c\xf1\x9c\xf2\x9c\xf5\x9e\xa7\x50\xff\x51\x03\x51\x30\x50\xf8\x51\x06\x51\x07\x50\xf6\x50\xfe\x51\x0b\x51\x0c\x50\xfd\x51\x0a\x52\x8b\x52\x8c\x52\xf1\x52\xef", /* 8080 */ "\x00\x00\x56\x48\x56\x42\x56\x4c\x56\x35\x56\x41\x56\x4a\x56\x49\x56\x46\x56\x58\x56\x5a\x56\x40\x56\x33\x56\x3d\x56\x2c\x56\x3e\x56\x38\x56\x2a\x56\x3a\x57\x1a\x58\xab\x58\x9d\x58\xb1\x58\xa0\x58\xa3\x58\xaf\x58\xac\x58\xa5\x58\xa1\x58\xff\x5a\xff\x5a\xf4\x5a\xfd\x5a\xf7\x5a\xf6\x5b\x03\x5a\xf8\x5b\x02\x5a\xf9\x5b\x01\x5b\x07\x5b\x05\x5b\x0f\x5c\x67\x5d\x99\x5d\x97\x5d\x9f\x5d\x92\x5d\xa2\x5d\x93\x5d\x95\x5d\xa0\x5d\x9c\x5d\xa1\x5d\x9a\x5d\x9e\x5e\x69\x5e\x5d\x5e\x60\x5e\x5c\x7d\xf3\x5e\xdb\x5e\xde\x5e\xe1\x5f\x49\x5f\xb2\x61\x8b\x61\x83\x61\x79\x61\xb1\x61\xb0\x61\xa2\x61\x89\x61\x9b\x61\x93\x61\xaf\x61\xad\x61\x9f\x61\x92\x61\xaa\x61\xa1\x61\x8d\x61\x66\x61\xb3\x62\x2d\x64\x6e\x64\x70\x64\x96\x64\xa0\x64\x85\x64\x97\x64\x9c\x64\x8f\x64\x8b\x64\x8a\x64\x8c\x64\xa3\x64\x9f\x64\x68\x64\xb1\x64\x98\x65\x76\x65\x7a\x65\x79\x65\x7b\x65\xb2\x65\xb3\x66\xb5\x66\xb0\x66\xa9\x66\xb2\x66\xb7\x66\xaa\x66\xaf\x6a\x00\x6a\x06\x6a\x17\x69\xe5\x69\xf8\x6a\x15\x69\xf1\x69\xe4\x6a\x20\x69\xff\x69\xec\x69\xe2\x00\x00\x00\x00", /* 8100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1b\x6a\x1d\x69\xfe\x6a\x27\x69\xf2\x69\xee\x6a\x14\x69\xf7\x69\xe7\x6a\x40\x6a\x08\x69\xe6\x69\xfb\x6a\x0d\x69\xfc\x69\xeb\x6a\x09\x6a\x04\x6a\x18\x6a\x25\x6a\x0f\x69\xf6\x6a\x26\x6a\x07\x69\xf4\x6a\x16\x6b\x51\x6b\xa5\x6b\xa3\x6b\xa2\x6b\xa6\x6c\x01\x6c\x00\x6b\xff\x6c\x02\x6f\x41\x6f\x26\x6f\x7e\x6f\x87\x6f\xc6\x6f\x92\x6f\x8d\x6f\x89\x6f\x8c\x6f\x62\x6f\x4f\x6f\x85\x6f\x5a\x6f\x96\x6f\x76\x6f\x6c\x6f\x82\x6f\x55\x6f\x72\x6f\x52\x6f\x50\x6f\x57\x6f\x94\x6f\x93\x6f\x5d\x6f\x00\x6f\x61\x6f\x6b", /* 8180 */ "\x00\x00\x6f\x7d\x6f\x67\x6f\x90\x6f\x53\x6f\x8b\x6f\x69\x6f\x7f\x6f\x95\x6f\x63\x6f\x77\x6f\x6a\x6f\x7b\x71\xb2\x71\xaf\x71\x9b\x71\xb0\x71\xa0\x71\x9a\x71\xa9\x71\xb5\x71\x9d\x71\xa5\x71\x9e\x71\xa4\x71\xa1\x71\xaa\x71\x9c\x71\xa7\x71\xb3\x72\x98\x72\x9a\x73\x58\x73\x52\x73\x5e\x73\x5f\x73\x60\x73\x5d\x73\x5b\x73\x61\x73\x5a\x73\x59\x73\x62\x74\x87\x74\x89\x74\x8a\x74\x86\x74\x81\x74\x7d\x74\x85\x74\x88\x74\x7c\x74\x79\x75\x08\x75\x07\x75\x7e\x76\x25\x76\x1e\x76\x19\x76\x1d\x76\x1c\x76\x23\x76\x1a\x76\x28\x76\x1b\x76\x9c\x76\x9d\x76\x9e\x76\x9b\x77\x8d\x77\x8f\x77\x89\x77\x88\x78\xcd\x78\xbb\x78\xcf\x78\xcc\x78\xd1\x78\xce\x78\xd4\x78\xc8\x78\xc3\x78\xc4\x78\xc9\x79\x9a\x79\xa1\x79\xa0\x79\x9c\x79\xa2\x79\x9b\x6b\x76\x7a\x39\x7a\xb2\x7a\xb4\x7a\xb3\x7b\xb7\x7b\xcb\x7b\xbe\x7b\xac\x7b\xce\x7b\xaf\x7b\xb9\x7b\xca\x7b\xb5\x7c\xc5\x7c\xc8\x7c\xcc\x7c\xcb\x7d\xf7\x7d\xdb\x7d\xea\x7d\xe7\x7d\xd7\x7d\xe1\x7e\x03\x7d\xfa\x7d\xe6\x7d\xf6\x7d\xf1\x7d\xf0\x7d\xee\x7d\xdf\x7f\x76\x7f\xac\x7f\xb0\x7f\xad\x00\x00\x00\x00", /* 8200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xed\x7f\xeb\x7f\xea\x7f\xec\x7f\xe6\x7f\xe8\x80\x64\x80\x67\x81\xa3\x81\x9f\x81\x9e\x81\x95\x81\xa2\x81\x99\x81\x97\x82\x16\x82\x4f\x82\x53\x82\x52\x82\x50\x82\x4e\x82\x51\x85\x24\x85\x3b\x85\x0f\x85\x00\x85\x29\x85\x0e\x85\x09\x85\x0d\x85\x1f\x85\x0a\x85\x27\x85\x1c\x84\xfb\x85\x2b\x84\xfa\x85\x08\x85\x0c\x84\xf4\x85\x2a\x84\xf2\x85\x15\x84\xf7\x84\xeb\x84\xf3\x84\xfc\x85\x12\x84\xea\x84\xe9\x85\x16\x84\xfe\x85\x28\x85\x1d\x85\x2e\x85\x02\x84\xfd\x85\x1e\x84\xf6\x85\x31\x85\x26\x84\xe7\x84\xe8", /* 8280 */ "\x00\x00\x84\xf0\x84\xef\x84\xf9\x85\x18\x85\x20\x85\x30\x85\x0b\x85\x19\x85\x2f\x86\x62\x87\x56\x87\x63\x87\x64\x87\x77\x87\xe1\x87\x73\x87\x58\x87\x54\x87\x5b\x87\x52\x87\x61\x87\x5a\x87\x51\x87\x5e\x87\x6d\x87\x6a\x87\x50\x87\x4e\x87\x5f\x87\x5d\x87\x6f\x87\x6c\x87\x7a\x87\x6e\x87\x5c\x87\x65\x87\x4f\x87\x7b\x87\x75\x87\x62\x87\x67\x87\x69\x88\x5a\x89\x05\x89\x0c\x89\x14\x89\x0b\x89\x17\x89\x18\x89\x19\x89\x06\x89\x16\x89\x11\x89\x0e\x89\x09\x89\xa2\x89\xa4\x89\xa3\x89\xed\x89\xf0\x89\xec\x8a\xcf\x8a\xc6\x8a\xb8\x8a\xd3\x8a\xd1\x8a\xd4\x8a\xd5\x8a\xbb\x8a\xd7\x8a\xbe\x8a\xc0\x8a\xc5\x8a\xd8\x8a\xc3\x8a\xba\x8a\xbd\x8a\xd9\x8c\x3e\x8c\x4d\x8c\x8f\x8c\xe5\x8c\xdf\x8c\xd9\x8c\xe8\x8c\xda\x8c\xdd\x8c\xe7\x8d\xa0\x8d\x9c\x8d\xa1\x8d\x9b\x8e\x20\x8e\x23\x8e\x25\x8e\x24\x8e\x2e\x8e\x15\x8e\x1b\x8e\x16\x8e\x11\x8e\x19\x8e\x26\x8e\x27\x8e\x14\x8e\x12\x8e\x18\x8e\x13\x8e\x1c\x8e\x17\x8e\x1a\x8f\x2c\x8f\x24\x8f\x18\x8f\x1a\x8f\x20\x8f\x23\x8f\x16\x8f\x17\x90\x73\x90\x70\x90\x6f\x90\x67\x90\x6b\x91\x2f\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x2b\x91\x29\x91\x2a\x91\x32\x91\x26\x91\x2e\x91\x85\x91\x86\x91\x8a\x91\x81\x91\x82\x91\x84\x91\x80\x92\xd0\x92\xc3\x92\xc4\x92\xc0\x92\xd9\x92\xb6\x92\xcf\x92\xf1\x92\xdf\x92\xd8\x92\xe9\x92\xd7\x92\xdd\x92\xcc\x92\xef\x92\xc2\x92\xe8\x92\xca\x92\xc8\x92\xce\x92\xe6\x92\xcd\x92\xd5\x92\xc9\x92\xe0\x92\xde\x92\xe7\x92\xd1\x92\xd3\x92\xb5\x92\xe1\x92\xc6\x92\xb4\x95\x7c\x95\xac\x95\xab\x95\xae\x95\xb0\x96\xa4\x96\xa2\x96\xd3\x97\x05\x97\x08\x97\x02\x97\x5a\x97\x8a\x97\x8e\x97\x88\x97\xd0\x97\xcf", /* 8380 */ "\x00\x00\x98\x1e\x98\x1d\x98\x26\x98\x29\x98\x28\x98\x20\x98\x1b\x98\x27\x98\xb2\x99\x08\x98\xfa\x99\x11\x99\x14\x99\x16\x99\x17\x99\x15\x99\xdc\x99\xcd\x99\xcf\x99\xd3\x99\xd4\x99\xce\x99\xc9\x99\xd6\x99\xd8\x99\xcb\x99\xd7\x99\xcc\x9a\xb3\x9a\xec\x9a\xeb\x9a\xf3\x9a\xf2\x9a\xf1\x9b\x46\x9b\x43\x9b\x67\x9b\x74\x9b\x71\x9b\x66\x9b\x76\x9b\x75\x9b\x70\x9b\x68\x9b\x64\x9b\x6c\x9c\xfc\x9c\xfa\x9c\xfd\x9c\xff\x9c\xf7\x9d\x07\x9d\x00\x9c\xf9\x9c\xfb\x9d\x08\x9d\x05\x9d\x04\x9e\x83\x9e\xd3\x9f\x0f\x9f\x10\x51\x1c\x51\x13\x51\x17\x51\x1a\x51\x11\x51\xde\x53\x34\x53\xe1\x56\x70\x56\x60\x56\x6e\x56\x73\x56\x66\x56\x63\x56\x6d\x56\x72\x56\x5e\x56\x77\x57\x1c\x57\x1b\x58\xc8\x58\xbd\x58\xc9\x58\xbf\x58\xba\x58\xc2\x58\xbc\x58\xc6\x5b\x17\x5b\x19\x5b\x1b\x5b\x21\x5b\x14\x5b\x13\x5b\x10\x5b\x16\x5b\x28\x5b\x1a\x5b\x20\x5b\x1e\x5b\xef\x5d\xac\x5d\xb1\x5d\xa9\x5d\xa7\x5d\xb5\x5d\xb0\x5d\xae\x5d\xaa\x5d\xa8\x5d\xb2\x5d\xad\x5d\xaf\x5d\xb4\x5e\x67\x5e\x68\x5e\x66\x5e\x6f\x5e\xe9\x5e\xe7\x5e\xe6\x5e\xe8\x5e\xe5\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x4b\x5f\xbc\x61\x9d\x61\xa8\x61\x96\x61\xc5\x61\xb4\x61\xc6\x61\xc1\x61\xcc\x61\xba\x61\xbf\x61\xb8\x61\x8c\x64\xd7\x64\xd6\x64\xd0\x64\xcf\x64\xc9\x64\xbd\x64\x89\x64\xc3\x64\xdb\x64\xf3\x64\xd9\x65\x33\x65\x7f\x65\x7c\x65\xa2\x66\xc8\x66\xbe\x66\xc0\x66\xca\x66\xcb\x66\xcf\x66\xbd\x66\xbb\x66\xba\x66\xcc\x67\x23\x6a\x34\x6a\x66\x6a\x49\x6a\x67\x6a\x32\x6a\x68\x6a\x3e\x6a\x5d\x6a\x6d\x6a\x76\x6a\x5b\x6a\x51\x6a\x28\x6a\x5a\x6a\x3b\x6a\x3f\x6a\x41\x6a\x6a\x6a\x64\x6a\x50\x6a\x4f\x6a\x54\x6a\x6f", /* 8480 */ "\x00\x00\x6a\x69\x6a\x60\x6a\x3c\x6a\x5e\x6a\x56\x6a\x55\x6a\x4d\x6a\x4e\x6a\x46\x6b\x55\x6b\x54\x6b\x56\x6b\xa7\x6b\xaa\x6b\xab\x6b\xc8\x6b\xc7\x6c\x04\x6c\x03\x6c\x06\x6f\xad\x6f\xcb\x6f\xa3\x6f\xc7\x6f\xbc\x6f\xce\x6f\xc8\x6f\x5e\x6f\xc4\x6f\xbd\x6f\x9e\x6f\xca\x6f\xa8\x70\x04\x6f\xa5\x6f\xae\x6f\xba\x6f\xac\x6f\xaa\x6f\xcf\x6f\xbf\x6f\xb8\x6f\xa2\x6f\xc9\x6f\xab\x6f\xcd\x6f\xaf\x6f\xb2\x6f\xb0\x71\xc5\x71\xc2\x71\xbf\x71\xb8\x71\xd6\x71\xc0\x71\xc1\x71\xcb\x71\xd4\x71\xca\x71\xc7\x71\xcf\x71\xbd\x71\xd8\x71\xbc\x71\xc6\x71\xda\x71\xdb\x72\x9d\x72\x9e\x73\x69\x73\x66\x73\x67\x73\x6c\x73\x65\x73\x6b\x73\x6a\x74\x7f\x74\x9a\x74\xa0\x74\x94\x74\x92\x74\x95\x74\xa1\x75\x0b\x75\x80\x76\x2f\x76\x2d\x76\x31\x76\x3d\x76\x33\x76\x3c\x76\x35\x76\x32\x76\x30\x76\xbb\x76\xe6\x77\x9a\x77\x9d\x77\xa1\x77\x9c\x77\x9b\x77\xa2\x77\xa3\x77\x95\x77\x99\x77\x97\x78\xdd\x78\xe9\x78\xe5\x78\xea\x78\xde\x78\xe3\x78\xdb\x78\xe1\x78\xe2\x78\xed\x78\xdf\x78\xe0\x79\xa4\x7a\x44\x7a\x48\x7a\x47\x7a\xb6\x7a\xb8\x7a\xb5\x00\x00\x00\x00", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\xb1\x7a\xb7\x7b\xde\x7b\xe3\x7b\xe7\x7b\xdd\x7b\xd5\x7b\xe5\x7b\xda\x7b\xe8\x7b\xf9\x7b\xd4\x7b\xea\x7b\xe2\x7b\xdc\x7b\xeb\x7b\xd8\x7b\xdf\x7c\xd2\x7c\xd4\x7c\xd7\x7c\xd0\x7c\xd1\x7e\x12\x7e\x21\x7e\x17\x7e\x0c\x7e\x1f\x7e\x20\x7e\x13\x7e\x0e\x7e\x1c\x7e\x15\x7e\x1a\x7e\x22\x7e\x0b\x7e\x0f\x7e\x16\x7e\x0d\x7e\x14\x7e\x25\x7e\x24\x7f\x43\x7f\x7b\x7f\x7c\x7f\x7a\x7f\xb1\x7f\xef\x80\x2a\x80\x29\x80\x6c\x81\xb1\x81\xa6\x81\xae\x81\xb9\x81\xb5\x81\xab\x81\xb0\x81\xac\x81\xb4\x81\xb2\x81\xb7\x81\xa7", /* 8580 */ "\x00\x00\x81\xf2\x82\x55\x82\x56\x82\x57\x85\x56\x85\x45\x85\x6b\x85\x4d\x85\x53\x85\x61\x85\x58\x85\x40\x85\x46\x85\x64\x85\x41\x85\x62\x85\x44\x85\x51\x85\x47\x85\x63\x85\x3e\x85\x5b\x85\x71\x85\x4e\x85\x6e\x85\x75\x85\x55\x85\x67\x85\x60\x85\x8c\x85\x66\x85\x5d\x85\x54\x85\x65\x85\x6c\x86\x63\x86\x65\x86\x64\x87\x9b\x87\x8f\x87\x97\x87\x93\x87\x92\x87\x88\x87\x81\x87\x96\x87\x98\x87\x79\x87\x87\x87\xa3\x87\x85\x87\x90\x87\x91\x87\x9d\x87\x84\x87\x94\x87\x9c\x87\x9a\x87\x89\x89\x1e\x89\x26\x89\x30\x89\x2d\x89\x2e\x89\x27\x89\x31\x89\x22\x89\x29\x89\x23\x89\x2f\x89\x2c\x89\x1f\x89\xf1\x8a\xe0\x8a\xe2\x8a\xf2\x8a\xf4\x8a\xf5\x8a\xdd\x8b\x14\x8a\xe4\x8a\xdf\x8a\xf0\x8a\xc8\x8a\xde\x8a\xe1\x8a\xe8\x8a\xff\x8a\xef\x8a\xfb\x8c\x91\x8c\x92\x8c\x90\x8c\xf5\x8c\xee\x8c\xf1\x8c\xf0\x8c\xf3\x8d\x6c\x8d\x6e\x8d\xa5\x8d\xa7\x8e\x33\x8e\x3e\x8e\x38\x8e\x40\x8e\x45\x8e\x36\x8e\x3c\x8e\x3d\x8e\x41\x8e\x30\x8e\x3f\x8e\xbd\x8f\x36\x8f\x2e\x8f\x35\x8f\x32\x8f\x39\x8f\x37\x8f\x34\x90\x76\x90\x79\x90\x7b\x90\x86\x00\x00\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xfa\x91\x33\x91\x35\x91\x36\x91\x93\x91\x90\x91\x91\x91\x8d\x91\x8f\x93\x27\x93\x1e\x93\x08\x93\x1f\x93\x06\x93\x0f\x93\x7a\x93\x38\x93\x3c\x93\x1b\x93\x23\x93\x12\x93\x01\x93\x46\x93\x2d\x93\x0e\x93\x0d\x92\xcb\x93\x1d\x92\xfa\x93\x25\x93\x13\x92\xf9\x92\xf7\x93\x34\x93\x02\x93\x24\x92\xff\x93\x29\x93\x39\x93\x35\x93\x2a\x93\x14\x93\x0c\x93\x0b\x92\xfe\x93\x09\x93\x00\x92\xfb\x93\x16\x95\xbc\x95\xcd\x95\xbe\x95\xb9\x95\xba\x95\xb6\x95\xbf\x95\xb5\x95\xbd\x96\xa9\x96\xd4\x97\x0b\x97\x12\x97\x10", /* 8680 */ "\x00\x00\x97\x99\x97\x97\x97\x94\x97\xf0\x97\xf8\x98\x35\x98\x2f\x98\x32\x99\x24\x99\x1f\x99\x27\x99\x29\x99\x9e\x99\xee\x99\xec\x99\xe5\x99\xe4\x99\xf0\x99\xe3\x99\xea\x99\xe9\x99\xe7\x9a\xb9\x9a\xbf\x9a\xb4\x9a\xbb\x9a\xf6\x9a\xfa\x9a\xf9\x9a\xf7\x9b\x33\x9b\x80\x9b\x85\x9b\x87\x9b\x7c\x9b\x7e\x9b\x7b\x9b\x82\x9b\x93\x9b\x92\x9b\x90\x9b\x7a\x9b\x95\x9b\x7d\x9b\x88\x9d\x25\x9d\x17\x9d\x20\x9d\x1e\x9d\x14\x9d\x29\x9d\x1d\x9d\x18\x9d\x22\x9d\x10\x9d\x19\x9d\x1f\x9e\x88\x9e\x86\x9e\x87\x9e\xae\x9e\xad\x9e\xd5\x9e\xd6\x9e\xfa\x9f\x12\x9f\x3d\x51\x26\x51\x25\x51\x22\x51\x24\x51\x20\x51\x29\x52\xf4\x56\x93\x56\x8c\x56\x8d\x56\x86\x56\x84\x56\x83\x56\x7e\x56\x82\x56\x7f\x56\x81\x58\xd6\x58\xd4\x58\xcf\x58\xd2\x5b\x2d\x5b\x25\x5b\x32\x5b\x23\x5b\x2c\x5b\x27\x5b\x26\x5b\x2f\x5b\x2e\x5b\x7b\x5b\xf1\x5b\xf2\x5d\xb7\x5e\x6c\x5e\x6a\x5f\xbe\x5f\xbb\x61\xc3\x61\xb5\x61\xbc\x61\xe7\x61\xe0\x61\xe5\x61\xe4\x61\xe8\x61\xde\x64\xef\x64\xe9\x64\xe3\x64\xeb\x64\xe4\x64\xe8\x65\x81\x65\x80\x65\xb6\x65\xda\x66\xd2\x00\x00\x00\x00", /* 8700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x8d\x6a\x96\x6a\x81\x6a\xa5\x6a\x89\x6a\x9f\x6a\x9b\x6a\xa1\x6a\x9e\x6a\x87\x6a\x93\x6a\x8e\x6a\x95\x6a\x83\x6a\xa8\x6a\xa4\x6a\x91\x6a\x7f\x6a\xa6\x6a\x9a\x6a\x85\x6a\x8c\x6a\x92\x6b\x5b\x6b\xad\x6c\x09\x6f\xcc\x6f\xa9\x6f\xf4\x6f\xd4\x6f\xe3\x6f\xdc\x6f\xed\x6f\xe7\x6f\xe6\x6f\xde\x6f\xf2\x6f\xdd\x6f\xe2\x6f\xe8\x71\xe1\x71\xf1\x71\xe8\x71\xf2\x71\xe4\x71\xf0\x71\xe2\x73\x73\x73\x6e\x73\x6f\x74\x97\x74\xb2\x74\xab\x74\x90\x74\xaa\x74\xad\x74\xb1\x74\xa5\x74\xaf\x75\x10\x75\x11\x75\x12\x75\x0f", /* 8780 */ "\x00\x00\x75\x84\x76\x43\x76\x48\x76\x49\x76\x47\x76\xa4\x76\xe9\x77\xb5\x77\xab\x77\xb2\x77\xb7\x77\xb6\x77\xb4\x77\xb1\x77\xa8\x77\xf0\x78\xf3\x78\xfd\x79\x02\x78\xfb\x78\xfc\x78\xf2\x79\x05\x78\xf9\x78\xfe\x79\x04\x79\xab\x79\xa8\x7a\x5c\x7a\x5b\x7a\x56\x7a\x58\x7a\x54\x7a\x5a\x7a\xbe\x7a\xc0\x7a\xc1\x7c\x05\x7c\x0f\x7b\xf2\x7c\x00\x7b\xff\x7b\xfb\x7c\x0e\x7b\xf4\x7c\x0b\x7b\xf3\x7c\x02\x7c\x09\x7c\x03\x7c\x01\x7b\xf8\x7b\xfd\x7c\x06\x7b\xf0\x7b\xf1\x7c\x10\x7c\x0a\x7c\xe8\x7e\x2d\x7e\x3c\x7e\x42\x7e\x33\x98\x48\x7e\x38\x7e\x2a\x7e\x49\x7e\x40\x7e\x47\x7e\x29\x7e\x4c\x7e\x30\x7e\x3b\x7e\x36\x7e\x44\x7e\x3a\x7f\x45\x7f\x7f\x7f\x7e\x7f\x7d\x7f\xf4\x7f\xf2\x80\x2c\x81\xbb\x81\xc4\x81\xcc\x81\xca\x81\xc5\x81\xc7\x81\xbc\x81\xe9\x82\x5b\x82\x5a\x82\x5c\x85\x83\x85\x80\x85\x8f\x85\xa7\x85\x95\x85\xa0\x85\x8b\x85\xa3\x85\x7b\x85\xa4\x85\x9a\x85\x9e\x85\x77\x85\x7c\x85\x89\x85\xa1\x85\x7a\x85\x78\x85\x57\x85\x8e\x85\x96\x85\x86\x85\x8d\x85\x99\x85\x9d\x85\x81\x85\xa2\x85\x82\x85\x88\x85\x85\x85\x79\x00\x00\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x76\x85\x98\x85\x90\x85\x9f\x86\x68\x87\xbe\x87\xaa\x87\xad\x87\xc5\x87\xb0\x87\xac\x87\xb9\x87\xb5\x87\xbc\x87\xae\x87\xc9\x87\xc3\x87\xc2\x87\xcc\x87\xb7\x87\xaf\x87\xc4\x87\xca\x87\xb4\x87\xb6\x87\xbf\x87\xb8\x87\xbd\x87\xde\x87\xb2\x89\x35\x89\x33\x89\x3c\x89\x3e\x89\x41\x89\x52\x89\x37\x89\x42\x89\xad\x89\xaf\x89\xae\x89\xf2\x89\xf3\x8b\x1e\x8b\x18\x8b\x16\x8b\x11\x8b\x05\x8b\x0b\x8b\x22\x8b\x0f\x8b\x12\x8b\x15\x8b\x07\x8b\x0d\x8b\x08\x8b\x06\x8b\x1c\x8b\x13\x8b\x1a\x8c\x4f\x8c\x70\x8c\x72", /* 8880 */ "\x00\x00\x8c\x71\x8c\x6f\x8c\x95\x8c\x94\x8c\xf9\x8d\x6f\x8e\x4e\x8e\x4d\x8e\x53\x8e\x50\x8e\x4c\x8e\x47\x8f\x43\x8f\x40\x90\x85\x90\x7e\x91\x38\x91\x9a\x91\xa2\x91\x9b\x91\x99\x91\x9f\x91\xa1\x91\x9d\x91\xa0\x93\xa1\x93\x83\x93\xaf\x93\x64\x93\x56\x93\x47\x93\x7c\x93\x58\x93\x5c\x93\x76\x93\x49\x93\x50\x93\x51\x93\x60\x93\x6d\x93\x8f\x93\x4c\x93\x6a\x93\x79\x93\x57\x93\x55\x93\x52\x93\x4f\x93\x71\x93\x77\x93\x7b\x93\x61\x93\x5e\x93\x63\x93\x67\x93\x80\x93\x4e\x93\x59\x95\xc7\x95\xc0\x95\xc9\x95\xc3\x95\xc5\x95\xb7\x96\xae\x96\xb0\x96\xac\x97\x20\x97\x1f\x97\x18\x97\x1d\x97\x19\x97\x9a\x97\xa1\x97\x9c\x97\x9e\x97\x9d\x97\xd5\x97\xd4\x97\xf1\x98\x41\x98\x44\x98\x4a\x98\x49\x98\x45\x98\x43\x99\x25\x99\x2b\x99\x2c\x99\x2a\x99\x33\x99\x32\x99\x2f\x99\x2d\x99\x31\x99\x30\x99\x98\x99\xa3\x99\xa1\x9a\x02\x99\xfa\x99\xf4\x99\xf7\x99\xf9\x99\xf8\x99\xf6\x99\xfb\x99\xfd\x99\xfe\x99\xfc\x9a\x03\x9a\xbe\x9a\xfe\x9a\xfd\x9b\x01\x9a\xfc\x9b\x48\x9b\x9a\x9b\xa8\x9b\x9e\x9b\x9b\x9b\xa6\x9b\xa1\x9b\xa5\x9b\xa4\x00\x00\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x86\x9b\xa2\x9b\xa0\x9b\xaf\x9d\x33\x9d\x41\x9d\x67\x9d\x36\x9d\x2e\x9d\x2f\x9d\x31\x9d\x38\x9d\x30\x9d\x45\x9d\x42\x9d\x43\x9d\x3e\x9d\x37\x9d\x40\x9d\x3d\x7f\xf5\x9d\x2d\x9e\x8a\x9e\x89\x9e\x8d\x9e\xb0\x9e\xc8\x9e\xda\x9e\xfb\x9e\xff\x9f\x24\x9f\x23\x9f\x22\x9f\x54\x9f\xa0\x51\x31\x51\x2d\x51\x2e\x56\x98\x56\x9c\x56\x97\x56\x9a\x56\x9d\x56\x99\x59\x70\x5b\x3c\x5c\x69\x5c\x6a\x5d\xc0\x5e\x6d\x5e\x6e\x61\xd8\x61\xdf\x61\xed\x61\xee\x61\xf1\x61\xea\x61\xf0\x61\xeb\x61\xd6\x61\xe9\x64\xff\x65\x04", /* 8980 */ "\x00\x00\x64\xfd\x64\xf8\x65\x01\x65\x03\x64\xfc\x65\x94\x65\xdb\x66\xda\x66\xdb\x66\xd8\x6a\xc5\x6a\xb9\x6a\xbd\x6a\xe1\x6a\xc6\x6a\xba\x6a\xb6\x6a\xb7\x6a\xc7\x6a\xb4\x6a\xad\x6b\x5e\x6b\xc9\x6c\x0b\x70\x07\x70\x0c\x70\x0d\x70\x01\x70\x05\x70\x14\x70\x0e\x6f\xff\x70\x00\x6f\xfb\x70\x26\x6f\xfc\x6f\xf7\x70\x0a\x72\x01\x71\xff\x71\xf9\x72\x03\x71\xfd\x73\x76\x74\xb8\x74\xc0\x74\xb5\x74\xc1\x74\xbe\x74\xb6\x74\xbb\x74\xc2\x75\x14\x75\x13\x76\x5c\x76\x64\x76\x59\x76\x50\x76\x53\x76\x57\x76\x5a\x76\xa6\x76\xbd\x76\xec\x77\xc2\x77\xba\x78\xff\x79\x0c\x79\x13\x79\x14\x79\x09\x79\x10\x79\x12\x79\x11\x79\xad\x79\xac\x7a\x5f\x7c\x1c\x7c\x29\x7c\x19\x7c\x20\x7c\x1f\x7c\x2d\x7c\x1d\x7c\x26\x7c\x28\x7c\x22\x7c\x25\x7c\x30\x7e\x5c\x7e\x50\x7e\x56\x7e\x63\x7e\x58\x7e\x62\x7e\x5f\x7e\x51\x7e\x60\x7e\x57\x7e\x53\x7f\xb5\x7f\xb3\x7f\xf7\x7f\xf8\x80\x75\x81\xd1\x81\xd2\x81\xd0\x82\x5f\x82\x5e\x85\xb4\x85\xc6\x85\xc0\x85\xc3\x85\xc2\x85\xb3\x85\xb5\x85\xbd\x85\xc7\x85\xc4\x85\xbf\x85\xcb\x85\xce\x85\xc8\x85\xc5\x00\x00\x00\x00", /* 8a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\xb1\x85\xb6\x85\xd2\x86\x24\x85\xb8\x85\xb7\x85\xbe\x86\x69\x87\xe7\x87\xe6\x87\xe2\x87\xdb\x87\xeb\x87\xea\x87\xe5\x87\xdf\x87\xf3\x87\xe4\x87\xd4\x87\xdc\x87\xd3\x87\xed\x87\xd8\x87\xe3\x87\xa4\x87\xd7\x87\xd9\x88\x01\x87\xf4\x87\xe8\x87\xdd\x89\x53\x89\x4b\x89\x4f\x89\x4c\x89\x46\x89\x50\x89\x51\x89\x49\x8b\x2a\x8b\x27\x8b\x23\x8b\x33\x8b\x30\x8b\x35\x8b\x47\x8b\x2f\x8b\x3c\x8b\x3e\x8b\x31\x8b\x25\x8b\x37\x8b\x26\x8b\x36\x8b\x2e\x8b\x24\x8b\x3b\x8b\x3d\x8b\x3a\x8c\x42\x8c\x75\x8c\x99\x8c\x98", /* 8a80 */ "\x00\x00\x8c\x97\x8c\xfe\x8d\x04\x8d\x02\x8d\x00\x8e\x5c\x8e\x62\x8e\x60\x8e\x57\x8e\x56\x8e\x5e\x8e\x65\x8e\x67\x8e\x5b\x8e\x5a\x8e\x61\x8e\x5d\x8e\x69\x8e\x54\x8f\x46\x8f\x47\x8f\x48\x8f\x4b\x91\x28\x91\x3a\x91\x3b\x91\x3e\x91\xa8\x91\xa5\x91\xa7\x91\xaf\x91\xaa\x93\xb5\x93\x8c\x93\x92\x93\xb7\x93\x9b\x93\x9d\x93\x89\x93\xa7\x93\x8e\x93\xaa\x93\x9e\x93\xa6\x93\x95\x93\x88\x93\x99\x93\x9f\x93\x8d\x93\xb1\x93\x91\x93\xb2\x93\xa4\x93\xa8\x93\xb4\x93\xa3\x93\xa5\x95\xd2\x95\xd3\x95\xd1\x96\xb3\x96\xd7\x96\xda\x5d\xc2\x96\xdf\x96\xd8\x96\xdd\x97\x23\x97\x22\x97\x25\x97\xac\x97\xae\x97\xa8\x97\xab\x97\xa4\x97\xaa\x97\xa2\x97\xa5\x97\xd7\x97\xd9\x97\xd6\x97\xd8\x97\xfa\x98\x50\x98\x51\x98\x52\x98\xb8\x99\x41\x99\x3c\x99\x3a\x9a\x0f\x9a\x0b\x9a\x09\x9a\x0d\x9a\x04\x9a\x11\x9a\x0a\x9a\x05\x9a\x07\x9a\x06\x9a\xc0\x9a\xdc\x9b\x08\x9b\x04\x9b\x05\x9b\x29\x9b\x35\x9b\x4a\x9b\x4c\x9b\x4b\x9b\xc7\x9b\xc6\x9b\xc3\x9b\xbf\x9b\xc1\x9b\xb5\x9b\xb8\x9b\xd3\x9b\xb6\x9b\xc4\x9b\xb9\x9b\xbd\x9d\x5c\x9d\x53\x9d\x4f\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x4a\x9d\x5b\x9d\x4b\x9d\x59\x9d\x56\x9d\x4c\x9d\x57\x9d\x52\x9d\x54\x9d\x5f\x9d\x58\x9d\x5a\x9e\x8e\x9e\x8c\x9e\xdf\x9f\x01\x9f\x00\x9f\x16\x9f\x25\x9f\x2b\x9f\x2a\x9f\x29\x9f\x28\x9f\x4c\x9f\x55\x51\x34\x51\x35\x52\x96\x52\xf7\x53\xb4\x56\xab\x56\xad\x56\xa6\x56\xa7\x56\xaa\x56\xac\x58\xda\x58\xdd\x58\xdb\x59\x12\x5b\x3d\x5b\x3e\x5b\x3f\x5d\xc3\x5e\x70\x5f\xbf\x61\xfb\x65\x07\x65\x10\x65\x0d\x65\x09\x65\x0c\x65\x0e\x65\x84\x65\xde\x65\xdd\x66\xde\x6a\xe7\x6a\xe0\x6a\xcc\x6a\xd1\x6a\xd9\x6a\xcb", /* 8b80 */ "\x00\x00\x6a\xdf\x6a\xdc\x6a\xd0\x6a\xeb\x6a\xcf\x6a\xcd\x6a\xde\x6b\x60\x6b\xb0\x6c\x0c\x70\x19\x70\x27\x70\x20\x70\x16\x70\x2b\x70\x21\x70\x22\x70\x23\x70\x29\x70\x17\x70\x24\x70\x1c\x70\x2a\x72\x0c\x72\x0a\x72\x07\x72\x02\x72\x05\x72\xa5\x72\xa6\x72\xa4\x72\xa3\x72\xa1\x74\xcb\x74\xc5\x74\xb7\x74\xc3\x75\x16\x76\x60\x77\xc9\x77\xca\x77\xc4\x77\xf1\x79\x1d\x79\x1b\x79\x21\x79\x1c\x79\x17\x79\x1e\x79\xb0\x7a\x67\x7a\x68\x7c\x33\x7c\x3c\x7c\x39\x7c\x2c\x7c\x3b\x7c\xec\x7c\xea\x7e\x76\x7e\x75\x7e\x78\x7e\x70\x7e\x77\x7e\x6f\x7e\x7a\x7e\x72\x7e\x74\x7e\x68\x7f\x4b\x7f\x4a\x7f\x83\x7f\x86\x7f\xb7\x7f\xfd\x7f\xfe\x80\x78\x81\xd7\x81\xd5\x82\x64\x82\x61\x82\x63\x85\xeb\x85\xf1\x85\xed\x85\xd9\x85\xe1\x85\xe8\x85\xda\x85\xd7\x85\xec\x85\xf2\x85\xf8\x85\xd8\x85\xdf\x85\xe3\x85\xdc\x85\xd1\x85\xf0\x85\xe6\x85\xef\x85\xde\x85\xe2\x88\x00\x87\xfa\x88\x03\x87\xf6\x87\xf7\x88\x09\x88\x0c\x88\x0b\x88\x06\x87\xfc\x88\x08\x87\xff\x88\x0a\x88\x02\x89\x62\x89\x5a\x89\x5b\x89\x57\x89\x61\x89\x5c\x89\x58\x89\x5d\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x59\x89\x88\x89\xb7\x89\xb6\x89\xf6\x8b\x50\x8b\x48\x8b\x4a\x8b\x40\x8b\x53\x8b\x56\x8b\x54\x8b\x4b\x8b\x55\x8b\x51\x8b\x42\x8b\x52\x8b\x57\x8c\x43\x8c\x77\x8c\x76\x8c\x9a\x8d\x06\x8d\x07\x8d\x09\x8d\xac\x8d\xaa\x8d\xad\x8d\xab\x8e\x6d\x8e\x78\x8e\x73\x8e\x6a\x8e\x6f\x8e\x7b\x8e\xc2\x8f\x52\x8f\x51\x8f\x4f\x8f\x50\x8f\x53\x8f\xb4\x91\x40\x91\x3f\x91\xb0\x91\xad\x93\xde\x93\xc7\x93\xcf\x93\xc2\x93\xda\x93\xd0\x93\xf9\x93\xec\x93\xcc\x93\xd9\x93\xa9\x93\xe6\x93\xca\x93\xd4\x93\xee\x93\xe3\x93\xd5", /* 8c80 */ "\x00\x00\x93\xc4\x93\xce\x93\xc0\x93\xd2\x93\xe7\x95\x7d\x95\xda\x95\xdb\x96\xe1\x97\x29\x97\x2b\x97\x2c\x97\x28\x97\x26\x97\xb3\x97\xb7\x97\xb6\x97\xdd\x97\xde\x97\xdf\x98\x5c\x98\x59\x98\x5d\x98\x57\x98\xbf\x98\xbd\x98\xbb\x98\xbe\x99\x48\x99\x47\x99\x43\x99\xa6\x99\xa7\x9a\x1a\x9a\x15\x9a\x25\x9a\x1d\x9a\x24\x9a\x1b\x9a\x22\x9a\x20\x9a\x27\x9a\x23\x9a\x1e\x9a\x1c\x9a\x14\x9a\xc2\x9b\x0b\x9b\x0a\x9b\x0e\x9b\x0c\x9b\x37\x9b\xea\x9b\xeb\x9b\xe0\x9b\xde\x9b\xe4\x9b\xe6\x9b\xe2\x9b\xf0\x9b\xd4\x9b\xd7\x9b\xec\x9b\xdc\x9b\xd9\x9b\xe5\x9b\xd5\x9b\xe1\x9b\xda\x9d\x77\x9d\x81\x9d\x8a\x9d\x84\x9d\x88\x9d\x71\x9d\x80\x9d\x78\x9d\x86\x9d\x8b\x9d\x8c\x9d\x7d\x9d\x6b\x9d\x74\x9d\x75\x9d\x70\x9d\x69\x9d\x85\x9d\x73\x9d\x7b\x9d\x82\x9d\x6f\x9d\x79\x9d\x7f\x9d\x87\x9d\x68\x9e\x94\x9e\x91\x9e\xc0\x9e\xfc\x9f\x2d\x9f\x40\x9f\x41\x9f\x4d\x9f\x56\x9f\x57\x9f\x58\x53\x37\x56\xb2\x56\xb5\x56\xb3\x58\xe3\x5b\x45\x5d\xc6\x5d\xc7\x5e\xee\x5e\xef\x5f\xc0\x5f\xc1\x61\xf9\x65\x17\x65\x16\x65\x15\x65\x13\x65\xdf\x66\xe8\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xe3\x66\xe4\x6a\xf3\x6a\xf0\x6a\xea\x6a\xe8\x6a\xf9\x6a\xf1\x6a\xee\x6a\xef\x70\x3c\x70\x35\x70\x2f\x70\x37\x70\x34\x70\x31\x70\x42\x70\x38\x70\x3f\x70\x3a\x70\x39\x70\x40\x70\x3b\x70\x33\x70\x41\x72\x13\x72\x14\x72\xa8\x73\x7d\x73\x7c\x74\xba\x76\xab\x76\xaa\x76\xbe\x76\xed\x77\xcc\x77\xce\x77\xcf\x77\xcd\x77\xf2\x79\x25\x79\x23\x79\x27\x79\x28\x79\x24\x79\x29\x79\xb2\x7a\x6e\x7a\x6c\x7a\x6d\x7a\xf7\x7c\x49\x7c\x48\x7c\x4a\x7c\x47\x7c\x45\x7c\xee\x7e\x7b\x7e\x7e\x7e\x81\x7e\x80\x7f\xba\x7f\xff", /* 8d80 */ "\x00\x00\x80\x79\x81\xdb\x81\xd9\x82\x0b\x82\x68\x82\x69\x86\x22\x85\xff\x86\x01\x85\xfe\x86\x1b\x86\x00\x85\xf6\x86\x04\x86\x09\x86\x05\x86\x0c\x85\xfd\x88\x19\x88\x10\x88\x11\x88\x17\x88\x13\x88\x16\x89\x63\x89\x66\x89\xb9\x89\xf7\x8b\x60\x8b\x6a\x8b\x5d\x8b\x68\x8b\x63\x8b\x65\x8b\x67\x8b\x6d\x8d\xae\x8e\x86\x8e\x88\x8e\x84\x8f\x59\x8f\x56\x8f\x57\x8f\x55\x8f\x58\x8f\x5a\x90\x8d\x91\x43\x91\x41\x91\xb7\x91\xb5\x91\xb2\x91\xb3\x94\x0b\x94\x13\x93\xfb\x94\x20\x94\x0f\x94\x14\x93\xfe\x94\x15\x94\x10\x94\x28\x94\x19\x94\x0d\x93\xf5\x94\x00\x93\xf7\x94\x07\x94\x0e\x94\x16\x94\x12\x93\xfa\x94\x09\x93\xf8\x94\x0a\x93\xff\x93\xfc\x94\x0c\x93\xf6\x94\x11\x94\x06\x95\xde\x95\xe0\x95\xdf\x97\x2e\x97\x2f\x97\xb9\x97\xbb\x97\xfd\x97\xfe\x98\x60\x98\x62\x98\x63\x98\x5f\x98\xc1\x98\xc2\x99\x50\x99\x4e\x99\x59\x99\x4c\x99\x4b\x99\x53\x9a\x32\x9a\x34\x9a\x31\x9a\x2c\x9a\x2a\x9a\x36\x9a\x29\x9a\x2e\x9a\x38\x9a\x2d\x9a\xc7\x9a\xca\x9a\xc6\x9b\x10\x9b\x12\x9b\x11\x9c\x0b\x9c\x08\x9b\xf7\x9c\x05\x9c\x12\x9b\xf8\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x40\x9c\x07\x9c\x0e\x9c\x06\x9c\x17\x9c\x14\x9c\x09\x9d\x9f\x9d\x99\x9d\xa4\x9d\x9d\x9d\x92\x9d\x98\x9d\x90\x9d\x9b\x9d\xa0\x9d\x94\x9d\x9c\x9d\xaa\x9d\x97\x9d\xa1\x9d\x9a\x9d\xa2\x9d\xa8\x9d\x9e\x9d\xa3\x9d\xbf\x9d\xa9\x9d\x96\x9d\xa6\x9d\xa7\x9e\x99\x9e\x9b\x9e\x9a\x9e\xe5\x9e\xe4\x9e\xe7\x9e\xe6\x9f\x30\x9f\x2e\x9f\x5b\x9f\x60\x9f\x5e\x9f\x5d\x9f\x59\x9f\x91\x51\x3a\x51\x39\x52\x98\x52\x97\x56\xc3\x56\xbd\x56\xbe\x5b\x48\x5b\x47\x5d\xcb\x5d\xcf\x5e\xf1\x61\xfd\x65\x1b\x6b\x02\x6a\xfc\x6b\x03", /* 8e80 */ "\x00\x00\x6a\xf8\x6b\x00\x70\x43\x70\x44\x70\x4a\x70\x48\x70\x49\x70\x45\x70\x46\x72\x1d\x72\x1a\x72\x19\x73\x7e\x75\x17\x76\x6a\x77\xd0\x79\x2d\x79\x31\x79\x2f\x7c\x54\x7c\x53\x7c\xf2\x7e\x8a\x7e\x87\x7e\x88\x7e\x8b\x7e\x86\x7e\x8d\x7f\x4d\x7f\xbb\x80\x30\x81\xdd\x86\x18\x86\x2a\x86\x26\x86\x1f\x86\x23\x86\x1c\x86\x19\x86\x27\x86\x2e\x86\x21\x86\x20\x86\x29\x86\x1e\x86\x25\x88\x29\x88\x1d\x88\x1b\x88\x20\x88\x24\x88\x1c\x88\x2b\x88\x4a\x89\x6d\x89\x69\x89\x6e\x89\x6b\x89\xfa\x8b\x79\x8b\x78\x8b\x45\x8b\x7a\x8b\x7b\x8d\x10\x8d\x14\x8d\xaf\x8e\x8e\x8e\x8c\x8f\x5e\x8f\x5b\x8f\x5d\x91\x46\x91\x44\x91\x45\x91\xb9\x94\x3f\x94\x3b\x94\x36\x94\x29\x94\x3d\x94\x3c\x94\x30\x94\x39\x94\x2a\x94\x37\x94\x2c\x94\x40\x94\x31\x95\xe5\x95\xe4\x95\xe3\x97\x35\x97\x3a\x97\xbf\x97\xe1\x98\x64\x98\xc9\x98\xc6\x98\xc0\x99\x58\x99\x56\x9a\x39\x9a\x3d\x9a\x46\x9a\x44\x9a\x42\x9a\x41\x9a\x3a\x9a\x3f\x9a\xcd\x9b\x15\x9b\x17\x9b\x18\x9b\x16\x9b\x3a\x9b\x52\x9c\x2b\x9c\x1d\x9c\x1c\x9c\x2c\x9c\x23\x9c\x28\x9c\x29\x9c\x24\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x21\x9d\xb7\x9d\xb6\x9d\xbc\x9d\xc1\x9d\xc7\x9d\xca\x9d\xcf\x9d\xbe\x9d\xc5\x9d\xc3\x9d\xbb\x9d\xb5\x9d\xce\x9d\xb9\x9d\xba\x9d\xac\x9d\xc8\x9d\xb1\x9d\xad\x9d\xcc\x9d\xb3\x9d\xcd\x9d\xb2\x9e\x7a\x9e\x9c\x9e\xeb\x9e\xee\x9e\xed\x9f\x1b\x9f\x18\x9f\x1a\x9f\x31\x9f\x4e\x9f\x65\x9f\x64\x9f\x92\x4e\xb9\x56\xc6\x56\xc5\x56\xcb\x59\x71\x5b\x4b\x5b\x4c\x5d\xd5\x5d\xd1\x5e\xf2\x65\x21\x65\x20\x65\x26\x65\x22\x6b\x0b\x6b\x08\x6b\x09\x6c\x0d\x70\x55\x70\x56\x70\x57\x70\x52\x72\x1e\x72\x1f\x72\xa9\x73\x7f", /* 8f80 */ "\x00\x00\x74\xd8\x74\xd5\x74\xd9\x74\xd7\x76\x6d\x76\xad\x79\x35\x79\xb4\x7a\x70\x7a\x71\x7c\x57\x7c\x5c\x7c\x59\x7c\x5b\x7c\x5a\x7c\xf4\x7c\xf1\x7e\x91\x7f\x4f\x7f\x87\x81\xde\x82\x6b\x86\x34\x86\x35\x86\x33\x86\x2c\x86\x32\x86\x36\x88\x2c\x88\x28\x88\x26\x88\x2a\x88\x25\x89\x71\x89\xbf\x89\xbe\x89\xfb\x8b\x7e\x8b\x84\x8b\x82\x8b\x86\x8b\x85\x8b\x7f\x8d\x15\x8e\x95\x8e\x94\x8e\x9a\x8e\x92\x8e\x90\x8e\x96\x8e\x97\x8f\x60\x8f\x62\x91\x47\x94\x4c\x94\x50\x94\x4a\x94\x4b\x94\x4f\x94\x47\x94\x45\x94\x48\x94\x49\x94\x46\x97\x3f\x97\xe3\x98\x6a\x98\x69\x98\xcb\x99\x54\x99\x5b\x9a\x4e\x9a\x53\x9a\x54\x9a\x4c\x9a\x4f\x9a\x48\x9a\x4a\x9a\x49\x9a\x52\x9a\x50\x9a\xd0\x9b\x19\x9b\x2b\x9b\x3b\x9b\x56\x9b\x55\x9c\x46\x9c\x48\x9c\x3f\x9c\x44\x9c\x39\x9c\x33\x9c\x41\x9c\x3c\x9c\x37\x9c\x34\x9c\x32\x9c\x3d\x9c\x36\x9d\xdb\x9d\xd2\x9d\xde\x9d\xda\x9d\xcb\x9d\xd0\x9d\xdc\x9d\xd1\x9d\xdf\x9d\xe9\x9d\xd9\x9d\xd8\x9d\xd6\x9d\xf5\x9d\xd5\x9d\xdd\x9e\xb6\x9e\xf0\x9f\x35\x9f\x33\x9f\x32\x9f\x42\x9f\x6b\x9f\x95\x9f\xa2\x00\x00\x00\x00", /* 9000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x3d\x52\x99\x58\xe8\x58\xe7\x59\x72\x5b\x4d\x5d\xd8\x88\x2f\x5f\x4f\x62\x01\x62\x03\x62\x04\x65\x29\x65\x25\x65\x96\x66\xeb\x6b\x11\x6b\x12\x6b\x0f\x6b\xca\x70\x5b\x70\x5a\x72\x22\x73\x82\x73\x81\x73\x83\x76\x70\x77\xd4\x7c\x67\x7c\x66\x7e\x95\x82\x6c\x86\x3a\x86\x40\x86\x39\x86\x3c\x86\x31\x86\x3b\x86\x3e\x88\x30\x88\x32\x88\x2e\x88\x33\x89\x76\x89\x74\x89\x73\x89\xfe\x8b\x8c\x8b\x8e\x8b\x8b\x8b\x88\x8c\x45\x8d\x19\x8e\x98\x8f\x64\x8f\x63\x91\xbc\x94\x62\x94\x55\x94\x5d\x94\x57\x94\x5e\x97\xc4", /* 9080 */ "\x00\x00\x97\xc5\x98\x00\x9a\x56\x9a\x59\x9b\x1e\x9b\x1f\x9b\x20\x9c\x52\x9c\x58\x9c\x50\x9c\x4a\x9c\x4d\x9c\x4b\x9c\x55\x9c\x59\x9c\x4c\x9c\x4e\x9d\xfb\x9d\xf7\x9d\xef\x9d\xe3\x9d\xeb\x9d\xf8\x9d\xe4\x9d\xf6\x9d\xe1\x9d\xee\x9d\xe6\x9d\xf2\x9d\xf0\x9d\xe2\x9d\xec\x9d\xf4\x9d\xf3\x9d\xe8\x9d\xed\x9e\xc2\x9e\xd0\x9e\xf2\x9e\xf3\x9f\x06\x9f\x1c\x9f\x38\x9f\x37\x9f\x36\x9f\x43\x9f\x4f\x9f\x71\x9f\x70\x9f\x6e\x9f\x6f\x56\xd3\x56\xcd\x5b\x4e\x5c\x6d\x65\x2d\x66\xed\x66\xee\x6b\x13\x70\x5f\x70\x61\x70\x5d\x70\x60\x72\x23\x74\xdb\x74\xe5\x77\xd5\x79\x38\x79\xb7\x79\xb6\x7c\x6a\x7e\x97\x7f\x89\x82\x6d\x86\x43\x88\x38\x88\x37\x88\x35\x88\x4b\x8b\x94\x8b\x95\x8e\x9e\x8e\x9f\x8e\xa0\x8e\x9d\x91\xbe\x91\xbd\x91\xc2\x94\x6b\x94\x68\x94\x69\x96\xe5\x97\x46\x97\x43\x97\x47\x97\xc7\x97\xe5\x9a\x5e\x9a\xd5\x9b\x59\x9c\x63\x9c\x67\x9c\x66\x9c\x62\x9c\x5e\x9c\x60\x9e\x02\x9d\xfe\x9e\x07\x9e\x03\x9e\x06\x9e\x05\x9e\x00\x9e\x01\x9e\x09\x9d\xff\x9d\xfd\x9e\x04\x9e\xa0\x9f\x1e\x9f\x46\x9f\x74\x9f\x75\x9f\x76\x56\xd4\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x2e\x65\xb8\x6b\x18\x6b\x19\x6b\x17\x6b\x1a\x70\x62\x72\x26\x72\xaa\x77\xd8\x77\xd9\x79\x39\x7c\x69\x7c\x6b\x7c\xf6\x7e\x9a\x7e\x98\x7e\x9b\x7e\x99\x81\xe0\x81\xe1\x86\x46\x86\x47\x86\x48\x89\x79\x89\x7a\x89\x7c\x89\x7b\x89\xff\x8b\x98\x8b\x99\x8e\xa5\x8e\xa4\x8e\xa3\x94\x6e\x94\x6d\x94\x6f\x94\x71\x94\x73\x97\x49\x98\x72\x99\x5f\x9c\x68\x9c\x6e\x9c\x6d\x9e\x0b\x9e\x0d\x9e\x10\x9e\x0f\x9e\x12\x9e\x11\x9e\xa1\x9e\xf5\x9f\x09\x9f\x47\x9f\x78\x9f\x7b\x9f\x7a\x9f\x79\x57\x1e\x70\x66\x7c\x6f\x88\x3c", /* 9180 */ "\x00\x00\x8d\xb2\x8e\xa6\x91\xc3\x94\x74\x94\x78\x94\x76\x94\x75\x9a\x60\x9c\x74\x9c\x73\x9c\x71\x9c\x75\x9e\x14\x9e\x13\x9e\xf6\x9f\x0a\x9f\xa4\x70\x68\x70\x65\x7c\xf7\x86\x6a\x88\x3e\x88\x3d\x88\x3f\x8b\x9e\x8c\x9c\x8e\xa9\x8e\xc9\x97\x4b\x98\x73\x98\x74\x98\xcc\x99\x61\x99\xab\x9a\x64\x9a\x66\x9a\x67\x9b\x24\x9e\x15\x9e\x17\x9f\x48\x62\x07\x6b\x1e\x72\x27\x86\x4c\x8e\xa8\x94\x82\x94\x80\x94\x81\x9a\x69\x9a\x68\x9b\x2e\x9e\x19\x72\x29\x86\x4b\x8b\x9f\x94\x83\x9c\x79\x9e\xb7\x76\x75\x9a\x6b\x9c\x7a\x9e\x1d\x70\x69\x70\x6a\x9e\xa4\x9f\x7e\x9f\x49\x9f\x98\x69\x1e\x6e\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 9200 */ NULL, /* 9280 */ NULL, /* 9300 */ NULL, /* 9380 */ NULL, /* 9400 */ NULL, /* 9480 */ NULL, /* 9500 */ NULL, /* 9580 */ NULL, /* 9600 */ NULL, /* 9680 */ NULL, /* 9700 */ NULL, /* 9780 */ NULL, /* 9800 */ NULL, /* 9880 */ NULL, /* 9900 */ NULL, /* 9980 */ NULL, /* 9a00 */ NULL, /* 9a80 */ NULL, /* 9b00 */ NULL, /* 9b80 */ NULL, /* 9c00 */ NULL, /* 9c80 */ NULL, /* 9d00 */ NULL, /* 9d80 */ NULL, /* 9e00 */ NULL, /* 9e80 */ NULL, /* 9f00 */ NULL, /* 9f80 */ NULL, /* a000 */ NULL, /* a080 */ NULL, /* a100 */ NULL, /* a180 */ NULL, /* a200 */ NULL, /* a280 */ NULL, /* a300 */ NULL, /* a380 */ NULL, /* a400 */ NULL, /* a480 */ NULL, /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* c280 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* c300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* c380 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* c400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* c480 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* c500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* c580 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* c600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* c680 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* c700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* c780 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* c800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* c880 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* c900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* c980 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* ca00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* ca80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* cb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* cb80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* cc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96", /* cc80 */ "\x00\x00\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xe7\xa8\xe7\xa9\xe7\xaa\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe7\xff\xe8\x00\xe8\x01\xe8\x02\xe8\x03\xe8\x04\xe8\x05\xe8\x06\xe8\x07\xe8\x08\xe8\x09\xe8\x0a\xe8\x0b\xe8\x0c\xe8\x0d\xe8\x0e\xe8\x0f\xe8\x10\xe8\x11\xe8\x12\xe8\x13\x00\x00\x00\x00", /* cd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x14\xe8\x15\xe8\x16\xe8\x17\xe8\x18\xe8\x19\xe8\x1a\xe8\x1b\xe8\x1c\xe8\x1d\xe8\x1e\xe8\x1f\xe8\x20\xe8\x21\xe8\x22\xe8\x23\xe8\x24\xe8\x25\xe8\x26\xe8\x27\xe8\x28\xe8\x29\xe8\x2a\xe8\x2b\xe8\x2c\xe8\x2d\xe8\x2e\xe8\x2f\xe8\x30\xe8\x31\xe8\x32\xe8\x33\xe8\x34\xe8\x35\xe8\x36\xe8\x37\xe8\x38\xe8\x39\xe8\x3a\xe8\x3b\xe8\x3c\xe8\x3d\xe8\x3e\xe8\x3f\xe8\x40\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52", /* cd80 */ "\x00\x00\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\x00\x00\x00\x00", /* ce00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe8\xff\xe9\x00\xe9\x01\xe9\x02\xe9\x03\xe9\x04\xe9\x05\xe9\x06\xe9\x07\xe9\x08\xe9\x09\xe9\x0a\xe9\x0b\xe9\x0c\xe9\x0d\xe9\x0e", /* ce80 */ "\x00\x00\xe9\x0f\xe9\x10\xe9\x11\xe9\x12\xe9\x13\xe9\x14\xe9\x15\xe9\x16\xe9\x17\xe9\x18\xe9\x19\xe9\x1a\xe9\x1b\xe9\x1c\xe9\x1d\xe9\x1e\xe9\x1f\xe9\x20\xe9\x21\xe9\x22\xe9\x23\xe9\x24\xe9\x25\xe9\x26\xe9\x27\xe9\x28\xe9\x29\xe9\x2a\xe9\x2b\xe9\x2c\xe9\x2d\xe9\x2e\xe9\x2f\xe9\x30\xe9\x31\xe9\x32\xe9\x33\xe9\x34\xe9\x35\xe9\x36\xe9\x37\xe9\x38\xe9\x39\xe9\x3a\xe9\x3b\xe9\x3c\xe9\x3d\xe9\x3e\xe9\x3f\xe9\x40\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xe9\x58\xe9\x59\xe9\x5a\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\x00\x00\x00\x00", /* cf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca", /* cf80 */ "\x00\x00\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xe9\xff\xea\x00\xea\x01\xea\x02\xea\x03\xea\x04\xea\x05\xea\x06\xea\x07\xea\x08\xea\x09\xea\x0a\xea\x0b\xea\x0c\xea\x0d\xea\x0e\xea\x0f\xea\x10\xea\x11\xea\x12\xea\x13\xea\x14\xea\x15\xea\x16\xea\x17\xea\x18\xea\x19\xea\x1a\xea\x1b\xea\x1c\xea\x1d\xea\x1e\xea\x1f\xea\x20\xea\x21\xea\x22\xea\x23\xea\x24\xea\x25\xea\x26\xea\x27\xea\x28\xea\x29\xea\x2a\xea\x2b\xea\x2c\xea\x2d\xea\x2e\xea\x2f\xea\x30\xea\x31\xea\x32\xea\x33\xea\x34\xea\x35\xea\x36\xea\x37\xea\x38\xea\x39\xea\x3a\xea\x3b\xea\x3c\xea\x3d\xea\x3e\xea\x3f\xea\x40\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\x00\x00\x00\x00", /* d000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86", /* d080 */ "\x00\x00\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xea\xff\xeb\x00\xeb\x01\xeb\x02\xeb\x03\x00\x00\x00\x00", /* d100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\x04\xeb\x05\xeb\x06\xeb\x07\xeb\x08\xeb\x09\xeb\x0a\xeb\x0b\xeb\x0c\xeb\x0d\xeb\x0e\xeb\x0f\xeb\x10\xeb\x11\xeb\x12\xeb\x13\xeb\x14\xeb\x15\xeb\x16\xeb\x17\xeb\x18\xeb\x19\xeb\x1a\xeb\x1b\xeb\x1c\xeb\x1d\xeb\x1e\xeb\x1f\xeb\x20\xeb\x21\xeb\x22\xeb\x23\xeb\x24\xeb\x25\xeb\x26\xeb\x27\xeb\x28\xeb\x29\xeb\x2a\xeb\x2b\xeb\x2c\xeb\x2d\xeb\x2e\xeb\x2f\xeb\x30\xeb\x31\xeb\x32\xeb\x33\xeb\x34\xeb\x35\xeb\x36\xeb\x37\xeb\x38\xeb\x39\xeb\x3a\xeb\x3b\xeb\x3c\xeb\x3d\xeb\x3e\xeb\x3f\xeb\x40\xeb\x41\xeb\x42", /* d180 */ "\x00\x00\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d\xeb\x5e\xeb\x5f\xeb\x60\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\x00\x00\x00\x00", /* d200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xeb\xd7\xeb\xd8\xeb\xd9\xeb\xda\xeb\xdb\xeb\xdc\xeb\xdd\xeb\xde\xeb\xdf\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xeb\xf2\xeb\xf3\xeb\xf4\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe", /* d280 */ "\x00\x00\xeb\xff\xec\x00\xec\x01\xec\x02\xec\x03\xec\x04\xec\x05\xec\x06\xec\x07\xec\x08\xec\x09\xec\x0a\xec\x0b\xec\x0c\xec\x0d\xec\x0e\xec\x0f\xec\x10\xec\x11\xec\x12\xec\x13\xec\x14\xec\x15\xec\x16\xec\x17\xec\x18\xec\x19\xec\x1a\xec\x1b\xec\x1c\xec\x1d\xec\x1e\xec\x1f\xec\x20\xec\x21\xec\x22\xec\x23\xec\x24\xec\x25\xec\x26\xec\x27\xec\x28\xec\x29\xec\x2a\xec\x2b\xec\x2c\xec\x2d\xec\x2e\xec\x2f\xec\x30\xec\x31\xec\x32\xec\x33\xec\x34\xec\x35\xec\x36\xec\x37\xec\x38\xec\x39\xec\x3a\xec\x3b\xec\x3c\xec\x3d\xec\x3e\xec\x3f\xec\x40\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\x00\x00\x00\x00", /* d300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba", /* d380 */ "\x00\x00\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xec\xff\xed\x00\xed\x01\xed\x02\xed\x03\xed\x04\xed\x05\xed\x06\xed\x07\xed\x08\xed\x09\xed\x0a\xed\x0b\xed\x0c\xed\x0d\xed\x0e\xed\x0f\xed\x10\xed\x11\xed\x12\xed\x13\xed\x14\xed\x15\xed\x16\xed\x17\xed\x18\xed\x19\xed\x1a\xed\x1b\xed\x1c\xed\x1d\xed\x1e\xed\x1f\xed\x20\xed\x21\xed\x22\xed\x23\xed\x24\xed\x25\xed\x26\xed\x27\xed\x28\xed\x29\xed\x2a\xed\x2b\xed\x2c\xed\x2d\xed\x2e\xed\x2f\xed\x30\xed\x31\xed\x32\xed\x33\xed\x34\xed\x35\xed\x36\xed\x37\x00\x00\x00\x00", /* d400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x38\xed\x39\xed\x3a\xed\x3b\xed\x3c\xed\x3d\xed\x3e\xed\x3f\xed\x40\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76", /* d480 */ "\x00\x00\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\x00\x00\x00\x00", /* d500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xed\xff\xee\x00\xee\x01\xee\x02\xee\x03\xee\x04\xee\x05\xee\x06\xee\x07\xee\x08\xee\x09\xee\x0a\xee\x0b\xee\x0c\xee\x0d\xee\x0e\xee\x0f\xee\x10\xee\x11\xee\x12\xee\x13\xee\x14\xee\x15\xee\x16\xee\x17\xee\x18\xee\x19\xee\x1a\xee\x1b\xee\x1c\xee\x1d\xee\x1e\xee\x1f\xee\x20\xee\x21\xee\x22\xee\x23\xee\x24\xee\x25\xee\x26\xee\x27\xee\x28\xee\x29\xee\x2a\xee\x2b\xee\x2c\xee\x2d\xee\x2e\xee\x2f\xee\x30\xee\x31\xee\x32", /* d580 */ "\x00\x00\xee\x33\xee\x34\xee\x35\xee\x36\xee\x37\xee\x38\xee\x39\xee\x3a\xee\x3b\xee\x3c\xee\x3d\xee\x3e\xee\x3f\xee\x40\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\x00\x00\x00\x00", /* d600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee", /* d680 */ "\x00\x00\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xee\xff\xef\x00\xef\x01\xef\x02\xef\x03\xef\x04\xef\x05\xef\x06\xef\x07\xef\x08\xef\x09\xef\x0a\xef\x0b\xef\x0c\xef\x0d\xef\x0e\xef\x0f\xef\x10\xef\x11\xef\x12\xef\x13\xef\x14\xef\x15\xef\x16\xef\x17\xef\x18\xef\x19\xef\x1a\xef\x1b\xef\x1c\xef\x1d\xef\x1e\xef\x1f\xef\x20\xef\x21\xef\x22\xef\x23\xef\x24\xef\x25\xef\x26\xef\x27\xef\x28\xef\x29\xef\x2a\xef\x2b\xef\x2c\xef\x2d\xef\x2e\xef\x2f\xef\x30\xef\x31\xef\x32\xef\x33\xef\x34\xef\x35\xef\x36\xef\x37\xef\x38\xef\x39\xef\x3a\xef\x3b\xef\x3c\xef\x3d\xef\x3e\xef\x3f\xef\x40\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\x00\x00\x00\x00", /* d700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa", /* d780 */ "\x00\x00\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xef\xd2\xef\xd3\xef\xd4\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xef\xff\xf0\x00\xf0\x01\xf0\x02\xf0\x03\xf0\x04\xf0\x05\xf0\x06\xf0\x07\xf0\x08\xf0\x09\xf0\x0a\xf0\x0b\xf0\x0c\xf0\x0d\xf0\x0e\xf0\x0f\xf0\x10\xf0\x11\xf0\x12\xf0\x13\xf0\x14\xf0\x15\xf0\x16\xf0\x17\xf0\x18\xf0\x19\xf0\x1a\xf0\x1b\xf0\x1c\xf0\x1d\xf0\x1e\xf0\x1f\xf0\x20\xf0\x21\xf0\x22\xf0\x23\xf0\x24\xf0\x25\xf0\x26\xf0\x27\x00\x00\x00\x00", /* d800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x28\xf0\x29\xf0\x2a\xf0\x2b\xf0\x2c\xf0\x2d\xf0\x2e\xf0\x2f\xf0\x30\xf0\x31\xf0\x32\xf0\x33\xf0\x34\xf0\x35\xf0\x36\xf0\x37\xf0\x38\xf0\x39\xf0\x3a\xf0\x3b\xf0\x3c\xf0\x3d\xf0\x3e\xf0\x3f\xf0\x40\xf0\x41\xf0\x42\xf0\x43\xf0\x44\xf0\x45\xf0\x46\xf0\x47\xf0\x48\xf0\x49\xf0\x4a\xf0\x4b\xf0\x4c\xf0\x4d\xf0\x4e\xf0\x4f\xf0\x50\xf0\x51\xf0\x52\xf0\x53\xf0\x54\xf0\x55\xf0\x56\xf0\x57\xf0\x58\xf0\x59\xf0\x5a\xf0\x5b\xf0\x5c\xf0\x5d\xf0\x5e\xf0\x5f\xf0\x60\xf0\x61\xf0\x62\xf0\x63\xf0\x64\xf0\x65\xf0\x66", /* d880 */ "\x00\x00\xf0\x67\xf0\x68\xf0\x69\xf0\x6a\xf0\x6b\xf0\x6c\xf0\x6d\xf0\x6e\xf0\x6f\xf0\x70\xf0\x71\xf0\x72\xf0\x73\xf0\x74\xf0\x75\xf0\x76\xf0\x77\xf0\x78\xf0\x79\xf0\x7a\xf0\x7b\xf0\x7c\xf0\x7d\xf0\x7e\xf0\x7f\xf0\x80\xf0\x81\xf0\x82\xf0\x83\xf0\x84\xf0\x85\xf0\x86\xf0\x87\xf0\x88\xf0\x89\xf0\x8a\xf0\x8b\xf0\x8c\xf0\x8d\xf0\x8e\xf0\x8f\xf0\x90\xf0\x91\xf0\x92\xf0\x93\xf0\x94\xf0\x95\xf0\x96\xf0\x97\xf0\x98\xf0\x99\xf0\x9a\xf0\x9b\xf0\x9c\xf0\x9d\xf0\x9e\xf0\x9f\xf0\xa0\xf0\xa1\xf0\xa2\xf0\xa3\xf0\xa4\xf0\xa5\xf0\xa6\xf0\xa7\xf0\xa8\xf0\xa9\xf0\xaa\xf0\xab\xf0\xac\xf0\xad\xf0\xae\xf0\xaf\xf0\xb0\xf0\xb1\xf0\xb2\xf0\xb3\xf0\xb4\xf0\xb5\xf0\xb6\xf0\xb7\xf0\xb8\xf0\xb9\xf0\xba\xf0\xbb\xf0\xbc\xf0\xbd\xf0\xbe\xf0\xbf\xf0\xc0\xf0\xc1\xf0\xc2\xf0\xc3\xf0\xc4\xf0\xc5\xf0\xc6\xf0\xc7\xf0\xc8\xf0\xc9\xf0\xca\xf0\xcb\xf0\xcc\xf0\xcd\xf0\xce\xf0\xcf\xf0\xd0\xf0\xd1\xf0\xd2\xf0\xd3\xf0\xd4\xf0\xd5\xf0\xd6\xf0\xd7\xf0\xd8\xf0\xd9\xf0\xda\xf0\xdb\xf0\xdc\xf0\xdd\xf0\xde\xf0\xdf\xf0\xe0\xf0\xe1\xf0\xe2\xf0\xe3\x00\x00\x00\x00", /* d900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xe4\xf0\xe5\xf0\xe6\xf0\xe7\xf0\xe8\xf0\xe9\xf0\xea\xf0\xeb\xf0\xec\xf0\xed\xf0\xee\xf0\xef\xf0\xf0\xf0\xf1\xf0\xf2\xf0\xf3\xf0\xf4\xf0\xf5\xf0\xf6\xf0\xf7\xf0\xf8\xf0\xf9\xf0\xfa\xf0\xfb\xf0\xfc\xf0\xfd\xf0\xfe\xf0\xff\xf1\x00\xf1\x01\xf1\x02\xf1\x03\xf1\x04\xf1\x05\xf1\x06\xf1\x07\xf1\x08\xf1\x09\xf1\x0a\xf1\x0b\xf1\x0c\xf1\x0d\xf1\x0e\xf1\x0f\xf1\x10\xf1\x11\xf1\x12\xf1\x13\xf1\x14\xf1\x15\xf1\x16\xf1\x17\xf1\x18\xf1\x19\xf1\x1a\xf1\x1b\xf1\x1c\xf1\x1d\xf1\x1e\xf1\x1f\xf1\x20\xf1\x21\xf1\x22", /* d980 */ "\x00\x00\xf1\x23\xf1\x24\xf1\x25\xf1\x26\xf1\x27\xf1\x28\xf1\x29\xf1\x2a\xf1\x2b\xf1\x2c\xf1\x2d\xf1\x2e\xf1\x2f\xf1\x30\xf1\x31\xf1\x32\xf1\x33\xf1\x34\xf1\x35\xf1\x36\xf1\x37\xf1\x38\xf1\x39\xf1\x3a\xf1\x3b\xf1\x3c\xf1\x3d\xf1\x3e\xf1\x3f\xf1\x40\xf1\x41\xf1\x42\xf1\x43\xf1\x44\xf1\x45\xf1\x46\xf1\x47\xf1\x48\xf1\x49\xf1\x4a\xf1\x4b\xf1\x4c\xf1\x4d\xf1\x4e\xf1\x4f\xf1\x50\xf1\x51\xf1\x52\xf1\x53\xf1\x54\xf1\x55\xf1\x56\xf1\x57\xf1\x58\xf1\x59\xf1\x5a\xf1\x5b\xf1\x5c\xf1\x5d\xf1\x5e\xf1\x5f\xf1\x60\xf1\x61\xf1\x62\xf1\x63\xf1\x64\xf1\x65\xf1\x66\xf1\x67\xf1\x68\xf1\x69\xf1\x6a\xf1\x6b\xf1\x6c\xf1\x6d\xf1\x6e\xf1\x6f\xf1\x70\xf1\x71\xf1\x72\xf1\x73\xf1\x74\xf1\x75\xf1\x76\xf1\x77\xf1\x78\xf1\x79\xf1\x7a\xf1\x7b\xf1\x7c\xf1\x7d\xf1\x7e\xf1\x7f\xf1\x80\xf1\x81\xf1\x82\xf1\x83\xf1\x84\xf1\x85\xf1\x86\xf1\x87\xf1\x88\xf1\x89\xf1\x8a\xf1\x8b\xf1\x8c\xf1\x8d\xf1\x8e\xf1\x8f\xf1\x90\xf1\x91\xf1\x92\xf1\x93\xf1\x94\xf1\x95\xf1\x96\xf1\x97\xf1\x98\xf1\x99\xf1\x9a\xf1\x9b\xf1\x9c\xf1\x9d\xf1\x9e\xf1\x9f\x00\x00\x00\x00", /* da00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\xa0\xf1\xa1\xf1\xa2\xf1\xa3\xf1\xa4\xf1\xa5\xf1\xa6\xf1\xa7\xf1\xa8\xf1\xa9\xf1\xaa\xf1\xab\xf1\xac\xf1\xad\xf1\xae\xf1\xaf\xf1\xb0\xf1\xb1\xf1\xb2\xf1\xb3\xf1\xb4\xf1\xb5\xf1\xb6\xf1\xb7\xf1\xb8\xf1\xb9\xf1\xba\xf1\xbb\xf1\xbc\xf1\xbd\xf1\xbe\xf1\xbf\xf1\xc0\xf1\xc1\xf1\xc2\xf1\xc3\xf1\xc4\xf1\xc5\xf1\xc6\xf1\xc7\xf1\xc8\xf1\xc9\xf1\xca\xf1\xcb\xf1\xcc\xf1\xcd\xf1\xce\xf1\xcf\xf1\xd0\xf1\xd1\xf1\xd2\xf1\xd3\xf1\xd4\xf1\xd5\xf1\xd6\xf1\xd7\xf1\xd8\xf1\xd9\xf1\xda\xf1\xdb\xf1\xdc\xf1\xdd\xf1\xde", /* da80 */ "\x00\x00\xf1\xdf\xf1\xe0\xf1\xe1\xf1\xe2\xf1\xe3\xf1\xe4\xf1\xe5\xf1\xe6\xf1\xe7\xf1\xe8\xf1\xe9\xf1\xea\xf1\xeb\xf1\xec\xf1\xed\xf1\xee\xf1\xef\xf1\xf0\xf1\xf1\xf1\xf2\xf1\xf3\xf1\xf4\xf1\xf5\xf1\xf6\xf1\xf7\xf1\xf8\xf1\xf9\xf1\xfa\xf1\xfb\xf1\xfc\xf1\xfd\xf1\xfe\xf1\xff\xf2\x00\xf2\x01\xf2\x02\xf2\x03\xf2\x04\xf2\x05\xf2\x06\xf2\x07\xf2\x08\xf2\x09\xf2\x0a\xf2\x0b\xf2\x0c\xf2\x0d\xf2\x0e\xf2\x0f\xf2\x10\xf2\x11\xf2\x12\xf2\x13\xf2\x14\xf2\x15\xf2\x16\xf2\x17\xf2\x18\xf2\x19\xf2\x1a\xf2\x1b\xf2\x1c\xf2\x1d\xf2\x1e\xf2\x1f\xf2\x20\xf2\x21\xf2\x22\xf2\x23\xf2\x24\xf2\x25\xf2\x26\xf2\x27\xf2\x28\xf2\x29\xf2\x2a\xf2\x2b\xf2\x2c\xf2\x2d\xf2\x2e\xf2\x2f\xf2\x30\xf2\x31\xf2\x32\xf2\x33\xf2\x34\xf2\x35\xf2\x36\xf2\x37\xf2\x38\xf2\x39\xf2\x3a\xf2\x3b\xf2\x3c\xf2\x3d\xf2\x3e\xf2\x3f\xf2\x40\xf2\x41\xf2\x42\xf2\x43\xf2\x44\xf2\x45\xf2\x46\xf2\x47\xf2\x48\xf2\x49\xf2\x4a\xf2\x4b\xf2\x4c\xf2\x4d\xf2\x4e\xf2\x4f\xf2\x50\xf2\x51\xf2\x52\xf2\x53\xf2\x54\xf2\x55\xf2\x56\xf2\x57\xf2\x58\xf2\x59\xf2\x5a\xf2\x5b\x00\x00\x00\x00", /* db00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x5c\xf2\x5d\xf2\x5e\xf2\x5f\xf2\x60\xf2\x61\xf2\x62\xf2\x63\xf2\x64\xf2\x65\xf2\x66\xf2\x67\xf2\x68\xf2\x69\xf2\x6a\xf2\x6b\xf2\x6c\xf2\x6d\xf2\x6e\xf2\x6f\xf2\x70\xf2\x71\xf2\x72\xf2\x73\xf2\x74\xf2\x75\xf2\x76\xf2\x77\xf2\x78\xf2\x79\xf2\x7a\xf2\x7b\xf2\x7c\xf2\x7d\xf2\x7e\xf2\x7f\xf2\x80\xf2\x81\xf2\x82\xf2\x83\xf2\x84\xf2\x85\xf2\x86\xf2\x87\xf2\x88\xf2\x89\xf2\x8a\xf2\x8b\xf2\x8c\xf2\x8d\xf2\x8e\xf2\x8f\xf2\x90\xf2\x91\xf2\x92\xf2\x93\xf2\x94\xf2\x95\xf2\x96\xf2\x97\xf2\x98\xf2\x99\xf2\x9a", /* db80 */ "\x00\x00\xf2\x9b\xf2\x9c\xf2\x9d\xf2\x9e\xf2\x9f\xf2\xa0\xf2\xa1\xf2\xa2\xf2\xa3\xf2\xa4\xf2\xa5\xf2\xa6\xf2\xa7\xf2\xa8\xf2\xa9\xf2\xaa\xf2\xab\xf2\xac\xf2\xad\xf2\xae\xf2\xaf\xf2\xb0\xf2\xb1\xf2\xb2\xf2\xb3\xf2\xb4\xf2\xb5\xf2\xb6\xf2\xb7\xf2\xb8\xf2\xb9\xf2\xba\xf2\xbb\xf2\xbc\xf2\xbd\xf2\xbe\xf2\xbf\xf2\xc0\xf2\xc1\xf2\xc2\xf2\xc3\xf2\xc4\xf2\xc5\xf2\xc6\xf2\xc7\xf2\xc8\xf2\xc9\xf2\xca\xf2\xcb\xf2\xcc\xf2\xcd\xf2\xce\xf2\xcf\xf2\xd0\xf2\xd1\xf2\xd2\xf2\xd3\xf2\xd4\xf2\xd5\xf2\xd6\xf2\xd7\xf2\xd8\xf2\xd9\xf2\xda\xf2\xdb\xf2\xdc\xf2\xdd\xf2\xde\xf2\xdf\xf2\xe0\xf2\xe1\xf2\xe2\xf2\xe3\xf2\xe4\xf2\xe5\xf2\xe6\xf2\xe7\xf2\xe8\xf2\xe9\xf2\xea\xf2\xeb\xf2\xec\xf2\xed\xf2\xee\xf2\xef\xf2\xf0\xf2\xf1\xf2\xf2\xf2\xf3\xf2\xf4\xf2\xf5\xf2\xf6\xf2\xf7\xf2\xf8\xf2\xf9\xf2\xfa\xf2\xfb\xf2\xfc\xf2\xfd\xf2\xfe\xf2\xff\xf3\x00\xf3\x01\xf3\x02\xf3\x03\xf3\x04\xf3\x05\xf3\x06\xf3\x07\xf3\x08\xf3\x09\xf3\x0a\xf3\x0b\xf3\x0c\xf3\x0d\xf3\x0e\xf3\x0f\xf3\x10\xf3\x11\xf3\x12\xf3\x13\xf3\x14\xf3\x15\xf3\x16\xf3\x17\x00\x00\x00\x00", /* dc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x18\xf3\x19\xf3\x1a\xf3\x1b\xf3\x1c\xf3\x1d\xf3\x1e\xf3\x1f\xf3\x20\xf3\x21\xf3\x22\xf3\x23\xf3\x24\xf3\x25\xf3\x26\xf3\x27\xf3\x28\xf3\x29\xf3\x2a\xf3\x2b\xf3\x2c\xf3\x2d\xf3\x2e\xf3\x2f\xf3\x30\xf3\x31\xf3\x32\xf3\x33\xf3\x34\xf3\x35\xf3\x36\xf3\x37\xf3\x38\xf3\x39\xf3\x3a\xf3\x3b\xf3\x3c\xf3\x3d\xf3\x3e\xf3\x3f\xf3\x40\xf3\x41\xf3\x42\xf3\x43\xf3\x44\xf3\x45\xf3\x46\xf3\x47\xf3\x48\xf3\x49\xf3\x4a\xf3\x4b\xf3\x4c\xf3\x4d\xf3\x4e\xf3\x4f\xf3\x50\xf3\x51\xf3\x52\xf3\x53\xf3\x54\xf3\x55\xf3\x56", /* dc80 */ "\x00\x00\xf3\x57\xf3\x58\xf3\x59\xf3\x5a\xf3\x5b\xf3\x5c\xf3\x5d\xf3\x5e\xf3\x5f\xf3\x60\xf3\x61\xf3\x62\xf3\x63\xf3\x64\xf3\x65\xf3\x66\xf3\x67\xf3\x68\xf3\x69\xf3\x6a\xf3\x6b\xf3\x6c\xf3\x6d\xf3\x6e\xf3\x6f\xf3\x70\xf3\x71\xf3\x72\xf3\x73\xf3\x74\xf3\x75\xf3\x76\xf3\x77\xf3\x78\xf3\x79\xf3\x7a\xf3\x7b\xf3\x7c\xf3\x7d\xf3\x7e\xf3\x7f\xf3\x80\xf3\x81\xf3\x82\xf3\x83\xf3\x84\xf3\x85\xf3\x86\xf3\x87\xf3\x88\xf3\x89\xf3\x8a\xf3\x8b\xf3\x8c\xf3\x8d\xf3\x8e\xf3\x8f\xf3\x90\xf3\x91\xf3\x92\xf3\x93\xf3\x94\xf3\x95\xf3\x96\xf3\x97\xf3\x98\xf3\x99\xf3\x9a\xf3\x9b\xf3\x9c\xf3\x9d\xf3\x9e\xf3\x9f\xf3\xa0\xf3\xa1\xf3\xa2\xf3\xa3\xf3\xa4\xf3\xa5\xf3\xa6\xf3\xa7\xf3\xa8\xf3\xa9\xf3\xaa\xf3\xab\xf3\xac\xf3\xad\xf3\xae\xf3\xaf\xf3\xb0\xf3\xb1\xf3\xb2\xf3\xb3\xf3\xb4\xf3\xb5\xf3\xb6\xf3\xb7\xf3\xb8\xf3\xb9\xf3\xba\xf3\xbb\xf3\xbc\xf3\xbd\xf3\xbe\xf3\xbf\xf3\xc0\xf3\xc1\xf3\xc2\xf3\xc3\xf3\xc4\xf3\xc5\xf3\xc6\xf3\xc7\xf3\xc8\xf3\xc9\xf3\xca\xf3\xcb\xf3\xcc\xf3\xcd\xf3\xce\xf3\xcf\xf3\xd0\xf3\xd1\xf3\xd2\xf3\xd3\x00\x00\x00\x00", /* dd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xd4\xf3\xd5\xf3\xd6\xf3\xd7\xf3\xd8\xf3\xd9\xf3\xda\xf3\xdb\xf3\xdc\xf3\xdd\xf3\xde\xf3\xdf\xf3\xe0\xf3\xe1\xf3\xe2\xf3\xe3\xf3\xe4\xf3\xe5\xf3\xe6\xf3\xe7\xf3\xe8\xf3\xe9\xf3\xea\xf3\xeb\xf3\xec\xf3\xed\xf3\xee\xf3\xef\xf3\xf0\xf3\xf1\xf3\xf2\xf3\xf3\xf3\xf4\xf3\xf5\xf3\xf6\xf3\xf7\xf3\xf8\xf3\xf9\xf3\xfa\xf3\xfb\xf3\xfc\xf3\xfd\xf3\xfe\xf3\xff\xf4\x00\xf4\x01\xf4\x02\xf4\x03\xf4\x04\xf4\x05\xf4\x06\xf4\x07\xf4\x08\xf4\x09\xf4\x0a\xf4\x0b\xf4\x0c\xf4\x0d\xf4\x0e\xf4\x0f\xf4\x10\xf4\x11\xf4\x12", /* dd80 */ "\x00\x00\xf4\x13\xf4\x14\xf4\x15\xf4\x16\xf4\x17\xf4\x18\xf4\x19\xf4\x1a\xf4\x1b\xf4\x1c\xf4\x1d\xf4\x1e\xf4\x1f\xf4\x20\xf4\x21\xf4\x22\xf4\x23\xf4\x24\xf4\x25\xf4\x26\xf4\x27\xf4\x28\xf4\x29\xf4\x2a\xf4\x2b\xf4\x2c\xf4\x2d\xf4\x2e\xf4\x2f\xf4\x30\xf4\x31\xf4\x32\xf4\x33\xf4\x34\xf4\x35\xf4\x36\xf4\x37\xf4\x38\xf4\x39\xf4\x3a\xf4\x3b\xf4\x3c\xf4\x3d\xf4\x3e\xf4\x3f\xf4\x40\xf4\x41\xf4\x42\xf4\x43\xf4\x44\xf4\x45\xf4\x46\xf4\x47\xf4\x48\xf4\x49\xf4\x4a\xf4\x4b\xf4\x4c\xf4\x4d\xf4\x4e\xf4\x4f\xf4\x50\xf4\x51\xf4\x52\xf4\x53\xf4\x54\xf4\x55\xf4\x56\xf4\x57\xf4\x58\xf4\x59\xf4\x5a\xf4\x5b\xf4\x5c\xf4\x5d\xf4\x5e\xf4\x5f\xf4\x60\xf4\x61\xf4\x62\xf4\x63\xf4\x64\xf4\x65\xf4\x66\xf4\x67\xf4\x68\xf4\x69\xf4\x6a\xf4\x6b\xf4\x6c\xf4\x6d\xf4\x6e\xf4\x6f\xf4\x70\xf4\x71\xf4\x72\xf4\x73\xf4\x74\xf4\x75\xf4\x76\xf4\x77\xf4\x78\xf4\x79\xf4\x7a\xf4\x7b\xf4\x7c\xf4\x7d\xf4\x7e\xf4\x7f\xf4\x80\xf4\x81\xf4\x82\xf4\x83\xf4\x84\xf4\x85\xf4\x86\xf4\x87\xf4\x88\xf4\x89\xf4\x8a\xf4\x8b\xf4\x8c\xf4\x8d\xf4\x8e\xf4\x8f\x00\x00\x00\x00", /* de00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\x90\xf4\x91\xf4\x92\xf4\x93\xf4\x94\xf4\x95\xf4\x96\xf4\x97\xf4\x98\xf4\x99\xf4\x9a\xf4\x9b\xf4\x9c\xf4\x9d\xf4\x9e\xf4\x9f\xf4\xa0\xf4\xa1\xf4\xa2\xf4\xa3\xf4\xa4\xf4\xa5\xf4\xa6\xf4\xa7\xf4\xa8\xf4\xa9\xf4\xaa\xf4\xab\xf4\xac\xf4\xad\xf4\xae\xf4\xaf\xf4\xb0\xf4\xb1\xf4\xb2\xf4\xb3\xf4\xb4\xf4\xb5\xf4\xb6\xf4\xb7\xf4\xb8\xf4\xb9\xf4\xba\xf4\xbb\xf4\xbc\xf4\xbd\xf4\xbe\xf4\xbf\xf4\xc0\xf4\xc1\xf4\xc2\xf4\xc3\xf4\xc4\xf4\xc5\xf4\xc6\xf4\xc7\xf4\xc8\xf4\xc9\xf4\xca\xf4\xcb\xf4\xcc\xf4\xcd\xf4\xce", /* de80 */ "\x00\x00\xf4\xcf\xf4\xd0\xf4\xd1\xf4\xd2\xf4\xd3\xf4\xd4\xf4\xd5\xf4\xd6\xf4\xd7\xf4\xd8\xf4\xd9\xf4\xda\xf4\xdb\xf4\xdc\xf4\xdd\xf4\xde\xf4\xdf\xf4\xe0\xf4\xe1\xf4\xe2\xf4\xe3\xf4\xe4\xf4\xe5\xf4\xe6\xf4\xe7\xf4\xe8\xf4\xe9\xf4\xea\xf4\xeb\xf4\xec\xf4\xed\xf4\xee\xf4\xef\xf4\xf0\xf4\xf1\xf4\xf2\xf4\xf3\xf4\xf4\xf4\xf5\xf4\xf6\xf4\xf7\xf4\xf8\xf4\xf9\xf4\xfa\xf4\xfb\xf4\xfc\xf4\xfd\xf4\xfe\xf4\xff\xf5\x00\xf5\x01\xf5\x02\xf5\x03\xf5\x04\xf5\x05\xf5\x06\xf5\x07\xf5\x08\xf5\x09\xf5\x0a\xf5\x0b\xf5\x0c\xf5\x0d\xf5\x0e\xf5\x0f\xf5\x10\xf5\x11\xf5\x12\xf5\x13\xf5\x14\xf5\x15\xf5\x16\xf5\x17\xf5\x18\xf5\x19\xf5\x1a\xf5\x1b\xf5\x1c\xf5\x1d\xf5\x1e\xf5\x1f\xf5\x20\xf5\x21\xf5\x22\xf5\x23\xf5\x24\xf5\x25\xf5\x26\xf5\x27\xf5\x28\xf5\x29\xf5\x2a\xf5\x2b\xf5\x2c\xf5\x2d\xf5\x2e\xf5\x2f\xf5\x30\xf5\x31\xf5\x32\xf5\x33\xf5\x34\xf5\x35\xf5\x36\xf5\x37\xf5\x38\xf5\x39\xf5\x3a\xf5\x3b\xf5\x3c\xf5\x3d\xf5\x3e\xf5\x3f\xf5\x40\xf5\x41\xf5\x42\xf5\x43\xf5\x44\xf5\x45\xf5\x46\xf5\x47\xf5\x48\xf5\x49\xf5\x4a\xf5\x4b\x00\x00\x00\x00", /* df00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x4c\xf5\x4d\xf5\x4e\xf5\x4f\xf5\x50\xf5\x51\xf5\x52\xf5\x53\xf5\x54\xf5\x55\xf5\x56\xf5\x57\xf5\x58\xf5\x59\xf5\x5a\xf5\x5b\xf5\x5c\xf5\x5d\xf5\x5e\xf5\x5f\xf5\x60\xf5\x61\xf5\x62\xf5\x63\xf5\x64\xf5\x65\xf5\x66\xf5\x67\xf5\x68\xf5\x69\xf5\x6a\xf5\x6b\xf5\x6c\xf5\x6d\xf5\x6e\xf5\x6f\xf5\x70\xf5\x71\xf5\x72\xf5\x73\xf5\x74\xf5\x75\xf5\x76\xf5\x77\xf5\x78\xf5\x79\xf5\x7a\xf5\x7b\xf5\x7c\xf5\x7d\xf5\x7e\xf5\x7f\xf5\x80\xf5\x81\xf5\x82\xf5\x83\xf5\x84\xf5\x85\xf5\x86\xf5\x87\xf5\x88\xf5\x89\xf5\x8a", /* df80 */ "\x00\x00\xf5\x8b\xf5\x8c\xf5\x8d\xf5\x8e\xf5\x8f\xf5\x90\xf5\x91\xf5\x92\xf5\x93\xf5\x94\xf5\x95\xf5\x96\xf5\x97\xf5\x98\xf5\x99\xf5\x9a\xf5\x9b\xf5\x9c\xf5\x9d\xf5\x9e\xf5\x9f\xf5\xa0\xf5\xa1\xf5\xa2\xf5\xa3\xf5\xa4\xf5\xa5\xf5\xa6\xf5\xa7\xf5\xa8\xf5\xa9\xf5\xaa\xf5\xab\xf5\xac\xf5\xad\xf5\xae\xf5\xaf\xf5\xb0\xf5\xb1\xf5\xb2\xf5\xb3\xf5\xb4\xf5\xb5\xf5\xb6\xf5\xb7\xf5\xb8\xf5\xb9\xf5\xba\xf5\xbb\xf5\xbc\xf5\xbd\xf5\xbe\xf5\xbf\xf5\xc0\xf5\xc1\xf5\xc2\xf5\xc3\xf5\xc4\xf5\xc5\xf5\xc6\xf5\xc7\xf5\xc8\xf5\xc9\xf5\xca\xf5\xcb\xf5\xcc\xf5\xcd\xf5\xce\xf5\xcf\xf5\xd0\xf5\xd1\xf5\xd2\xf5\xd3\xf5\xd4\xf5\xd5\xf5\xd6\xf5\xd7\xf5\xd8\xf5\xd9\xf5\xda\xf5\xdb\xf5\xdc\xf5\xdd\xf5\xde\xf5\xdf\xf5\xe0\xf5\xe1\xf5\xe2\xf5\xe3\xf5\xe4\xf5\xe5\xf5\xe6\xf5\xe7\xf5\xe8\xf5\xe9\xf5\xea\xf5\xeb\xf5\xec\xf5\xed\xf5\xee\xf5\xef\xf5\xf0\xf5\xf1\xf5\xf2\xf5\xf3\xf5\xf4\xf5\xf5\xf5\xf6\xf5\xf7\xf5\xf8\xf5\xf9\xf5\xfa\xf5\xfb\xf5\xfc\xf5\xfd\xf5\xfe\xf5\xff\xf6\x00\xf6\x01\xf6\x02\xf6\x03\xf6\x04\xf6\x05\xf6\x06\xf6\x07\x00\x00\x00\x00", /* e000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x08\xf6\x09\xf6\x0a\xf6\x0b\xf6\x0c\xf6\x0d\xf6\x0e\xf6\x0f\xf6\x10\xf6\x11\xf6\x12\xf6\x13\xf6\x14\xf6\x15\xf6\x16\xf6\x17\xf6\x18\xf6\x19\xf6\x1a\xf6\x1b\xf6\x1c\xf6\x1d\xf6\x1e\xf6\x1f\xf6\x20\xf6\x21\xf6\x22\xf6\x23\xf6\x24\xf6\x25\xf6\x26\xf6\x27\xf6\x28\xf6\x29\xf6\x2a\xf6\x2b\xf6\x2c\xf6\x2d\xf6\x2e\xf6\x2f\xf6\x30\xf6\x31\xf6\x32\xf6\x33\xf6\x34\xf6\x35\xf6\x36\xf6\x37\xf6\x38\xf6\x39\xf6\x3a\xf6\x3b\xf6\x3c\xf6\x3d\xf6\x3e\xf6\x3f\xf6\x40\xf6\x41\xf6\x42\xf6\x43\xf6\x44\xf6\x45\xf6\x46", /* e080 */ "\x00\x00\xf6\x47\xf6\x48\xf6\x49\xf6\x4a\xf6\x4b\xf6\x4c\xf6\x4d\xf6\x4e\xf6\x4f\xf6\x50\xf6\x51\xf6\x52\xf6\x53\xf6\x54\xf6\x55\xf6\x56\xf6\x57\xf6\x58\xf6\x59\xf6\x5a\xf6\x5b\xf6\x5c\xf6\x5d\xf6\x5e\xf6\x5f\xf6\x60\xf6\x61\xf6\x62\xf6\x63\xf6\x64\xf6\x65\xf6\x66\xf6\x67\xf6\x68\xf6\x69\xf6\x6a\xf6\x6b\xf6\x6c\xf6\x6d\xf6\x6e\xf6\x6f\xf6\x70\xf6\x71\xf6\x72\xf6\x73\xf6\x74\xf6\x75\xf6\x76\xf6\x77\xf6\x78\xf6\x79\xf6\x7a\xf6\x7b\xf6\x7c\xf6\x7d\xf6\x7e\xf6\x7f\xf6\x80\xf6\x81\xf6\x82\xf6\x83\xf6\x84\xf6\x85\xf6\x86\xf6\x87\xf6\x88\xf6\x89\xf6\x8a\xf6\x8b\xf6\x8c\xf6\x8d\xf6\x8e\xf6\x8f\xf6\x90\xf6\x91\xf6\x92\xf6\x93\xf6\x94\xf6\x95\xf6\x96\xf6\x97\xf6\x98\xf6\x99\xf6\x9a\xf6\x9b\xf6\x9c\xf6\x9d\xf6\x9e\xf6\x9f\xf6\xa0\xf6\xa1\xf6\xa2\xf6\xa3\xf6\xa4\xf6\xa5\xf6\xa6\xf6\xa7\xf6\xa8\xf6\xa9\xf6\xaa\xf6\xab\xf6\xac\xf6\xad\xf6\xae\xf6\xaf\xf6\xb0\xf6\xb1\xf6\xb2\xf6\xb3\xf6\xb4\xf6\xb5\xf6\xb6\xf6\xb7\xf6\xb8\xf6\xb9\xf6\xba\xf6\xbb\xf6\xbc\xf6\xbd\xf6\xbe\xf6\xbf\xf6\xc0\xf6\xc1\xf6\xc2\xf6\xc3\x00\x00\x00\x00", /* e100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xc4\xf6\xc5\xf6\xc6\xf6\xc7\xf6\xc8\xf6\xc9\xf6\xca\xf6\xcb\xf6\xcc\xf6\xcd\xf6\xce\xf6\xcf\xf6\xd0\xf6\xd1\xf6\xd2\xf6\xd3\xf6\xd4\xf6\xd5\xf6\xd6\xf6\xd7\xf6\xd8\xf6\xd9\xf6\xda\xf6\xdb\xf6\xdc\xf6\xdd\xf6\xde\xf6\xdf\xf6\xe0\xf6\xe1\xf6\xe2\xf6\xe3\xf6\xe4\xf6\xe5\xf6\xe6\xf6\xe7\xf6\xe8\xf6\xe9\xf6\xea\xf6\xeb\xf6\xec\xf6\xed\xf6\xee\xf6\xef\xf6\xf0\xf6\xf1\xf6\xf2\xf6\xf3\xf6\xf4\xf6\xf5\xf6\xf6\xf6\xf7\xf6\xf8\xf6\xf9\xf6\xfa\xf6\xfb\xf6\xfc\xf6\xfd\xf6\xfe\xf6\xff\xf7\x00\xf7\x01\xf7\x02", /* e180 */ "\x00\x00\xf7\x03\xf7\x04\xf7\x05\xf7\x06\xf7\x07\xf7\x08\xf7\x09\xf7\x0a\xf7\x0b\xf7\x0c\xf7\x0d\xf7\x0e\xf7\x0f\xf7\x10\xf7\x11\xf7\x12\xf7\x13\xf7\x14\xf7\x15\xf7\x16\xf7\x17\xf7\x18\xf7\x19\xf7\x1a\xf7\x1b\xf7\x1c\xf7\x1d\xf7\x1e\xf7\x1f\xf7\x20\xf7\x21\xf7\x22\xf7\x23\xf7\x24\xf7\x25\xf7\x26\xf7\x27\xf7\x28\xf7\x29\xf7\x2a\xf7\x2b\xf7\x2c\xf7\x2d\xf7\x2e\xf7\x2f\xf7\x30\xf7\x31\xf7\x32\xf7\x33\xf7\x34\xf7\x35\xf7\x36\xf7\x37\xf7\x38\xf7\x39\xf7\x3a\xf7\x3b\xf7\x3c\xf7\x3d\xf7\x3e\xf7\x3f\xf7\x40\xf7\x41\xf7\x42\xf7\x43\xf7\x44\xf7\x45\xf7\x46\xf7\x47\xf7\x48\xf7\x49\xf7\x4a\xf7\x4b\xf7\x4c\xf7\x4d\xf7\x4e\xf7\x4f\xf7\x50\xf7\x51\xf7\x52\xf7\x53\xf7\x54\xf7\x55\xf7\x56\xf7\x57\xf7\x58\xf7\x59\xf7\x5a\xf7\x5b\xf7\x5c\xf7\x5d\xf7\x5e\xf7\x5f\xf7\x60\xf7\x61\xf7\x62\xf7\x63\xf7\x64\xf7\x65\xf7\x66\xf7\x67\xf7\x68\xf7\x69\xf7\x6a\xf7\x6b\xf7\x6c\xf7\x6d\xf7\x6e\xf7\x6f\xf7\x70\xf7\x71\xf7\x72\xf7\x73\xf7\x74\xf7\x75\xf7\x76\xf7\x77\xf7\x78\xf7\x79\xf7\x7a\xf7\x7b\xf7\x7c\xf7\x7d\xf7\x7e\xf7\x7f\x00\x00\x00\x00", /* e200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x80\xf7\x81\xf7\x82\xf7\x83\xf7\x84\xf7\x85\xf7\x86\xf7\x87\xf7\x88\xf7\x89\xf7\x8a\xf7\x8b\xf7\x8c\xf7\x8d\xf7\x8e\xf7\x8f\xf7\x90\xf7\x91\xf7\x92\xf7\x93\xf7\x94\xf7\x95\xf7\x96\xf7\x97\xf7\x98\xf7\x99\xf7\x9a\xf7\x9b\xf7\x9c\xf7\x9d\xf7\x9e\xf7\x9f\xf7\xa0\xf7\xa1\xf7\xa2\xf7\xa3\xf7\xa4\xf7\xa5\xf7\xa6\xf7\xa7\xf7\xa8\xf7\xa9\xf7\xaa\xf7\xab\xf7\xac\xf7\xad\xf7\xae\xf7\xaf\xf7\xb0\xf7\xb1\xf7\xb2\xf7\xb3\xf7\xb4\xf7\xb5\xf7\xb6\xf7\xb7\xf7\xb8\xf7\xb9\xf7\xba\xf7\xbb\xf7\xbc\xf7\xbd\xf7\xbe", /* e280 */ "\x00\x00\xf7\xbf\xf7\xc0\xf7\xc1\xf7\xc2\xf7\xc3\xf7\xc4\xf7\xc5\xf7\xc6\xf7\xc7\xf7\xc8\xf7\xc9\xf7\xca\xf7\xcb\xf7\xcc\xf7\xcd\xf7\xce\xf7\xcf\xf7\xd0\xf7\xd1\xf7\xd2\xf7\xd3\xf7\xd4\xf7\xd5\xf7\xd6\xf7\xd7\xf7\xd8\xf7\xd9\xf7\xda\xf7\xdb\xf7\xdc\xf7\xdd\xf7\xde\xf7\xdf\xf7\xe0\xf7\xe1\xf7\xe2\xf7\xe3\xf7\xe4\xf7\xe5\xf7\xe6\xf7\xe7\xf7\xe8\xf7\xe9\xf7\xea\xf7\xeb\xf7\xec\xf7\xed\xf7\xee\xf7\xef\xf7\xf0\xf7\xf1\xf7\xf2\xf7\xf3\xf7\xf4\xf7\xf5\xf7\xf6\xf7\xf7\xf7\xf8\xf7\xf9\xf7\xfa\xf7\xfb\xf7\xfc\xf7\xfd\xf7\xfe\xf7\xff\xf8\x00\xf8\x01\xf8\x02\xf8\x03\xf8\x04\xf8\x05\xf8\x06\xf8\x07\xf8\x08\xf8\x09\xf8\x0a\xf8\x0b\xf8\x0c\xf8\x0d\xf8\x0e\xf8\x0f\xf8\x10\xf8\x11\xf8\x12\xf8\x13\xf8\x14\xf8\x15\xf8\x16\xf8\x17\xf8\x18\xf8\x19\xf8\x1a\xf8\x1b\xf8\x1c\xf8\x1d\xf8\x1e\xf8\x1f\xf8\x20\xf8\x21\xf8\x22\xf8\x23\xf8\x24\xf8\x25\xf8\x26\xf8\x27\xf8\x28\xf8\x29\xf8\x2a\xf8\x2b\xf8\x2c\xf8\x2d\xf8\x2e\xf8\x2f\xf8\x30\xf8\x31\xf8\x32\xf8\x33\xf8\x34\xf8\x35\xf8\x36\xf8\x37\xf8\x38\xf8\x39\xf8\x3a\xf8\x3b\x00\x00\x00\x00", /* e300 */ NULL, /* e380 */ NULL, /* e400 */ NULL, /* e480 */ NULL, /* e500 */ NULL, /* e580 */ NULL, /* e600 */ NULL, /* e680 */ NULL, /* e700 */ NULL, /* e780 */ NULL, /* e800 */ NULL, /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ NULL, /* f880 */ NULL, /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ NULL, /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { "cp1388", "0x03a90345" /* 937, 837 */, "gb18030.2000-1,iso10646-1", /* Unicode to EBCDIC DBCS translation table for ibm-1388_P103-2001 */ { /* 0000 */ NULL, /* 0080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x88\x00\x00\x00\x00\x44\x6a\x44\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xed\x44\x4b\x00\x00\x00\x00\x44\x50\x00\x00\x00\x00\x43\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x44\x46\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x48\x46\x46\x46\x5a\x00\x00\x46\x4c\x46\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x46\x50\x46\x4e\x00\x00\x00\x00\x00\x00\x44\x7b\x00\x00\x46\x54\x46\x52\x00\x00\x46\x59\x00\x00\x00\x00\x00\x00", /* 0100 */ "\x00\x00\x46\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5d\x00\x00\x00\x00\x00\x00\x46\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x46\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x43\x00\x00\x46\x4b\x00\x00\x46\x4f\x00\x00\x46\x53\x00\x00\x46\x55\x00\x00\x46\x56\x00\x00\x46\x57\x00\x00\x46\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x46\x00\x00\x45\x45\xcd\x41\xcd\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0300 */ NULL, /* 0380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x00\x00\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x00\x00\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0400 */ "\x00\x00\x41\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x00\x00\x41\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ "\x47\x5d\x47\x5e\x47\x5f\x47\x60\x47\x61\x47\x62\x47\x63\x47\x64\x47\x65\x47\x66\x47\x67\x47\x68\x47\x69\x47\x6a\x47\x6b\x47\x6c\x47\x6d\x47\x6e\x47\x6f\x47\x70\x47\x71\x47\x72\x47\x73\x47\x74\x47\x75\x47\x76\x47\x77\x47\x78\x47\x79\x47\x7a\x47\x7b\x47\x7c\x47\x7d\x47\x7e\x47\x7f\x47\x80\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8d\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x47\xa1\x47\xa2\x47\xa3\x47\xa4\x47\xa5\x47\xa6\x47\xa7\x47\xa8\x47\xa9\x47\xaa\x47\xab\x47\xac\x47\xad\x47\xae\x47\xaf\x47\xb0\x47\xb1\x47\xb2\x47\xb3\x47\xb4\x47\xb5\x47\xb6\x47\xb7\x47\xb8\x47\xb9\x47\xba\x47\xbb\x47\xbc\x47\xbd\x47\xbe\x47\xbf\x47\xc0\x47\xc1\x47\xc2\x47\xc3\x47\xc4\x47\xc5\x47\xc6\x47\xc7\x47\xc8\x47\xc9\x47\xca\x47\xcb\x47\xcc\x47\xcd\x47\xce\x47\xcf\x47\xd0\x47\xd1\x47\xd2\x47\xd3\x47\xd4\x47\xd5\x47\xd6\x47\xd7\x47\xd8\x47\xd9\x47\xda\x47\xdb\x47\xdc", /* 0680 */ "\x47\xdd\x47\xde\x47\xdf\x47\xe0\x47\xe1\x47\xe2\x47\xe3\x47\xe4\x47\xe5\x47\xe6\x47\xe7\x47\xe8\x47\xe9\x47\xea\x47\xeb\x47\xec\x47\xed\x47\xee\x47\xef\x47\xf0\x47\xf1\x47\xf2\x47\xf3\x47\xf4\x47\xf5\x47\xf6\x47\xf7\x47\xf8\x47\xf9\x47\xfa\x47\xfb\x47\xfc\x47\xfd\x47\xfe\x48\x41\x48\x42\x48\x43\x48\x44\x48\x45\x48\x46\x48\x47\x48\x48\x48\x49\x48\x4a\x48\x4b\x48\x4c\x48\x4d\x48\x4e\x48\x4f\x48\x50\x48\x51\x48\x52\x48\x53\x48\x54\x48\x55\x48\x56\x48\x57\x48\x58\x48\x59\x48\x5a\x48\x5b\x48\x5c\x48\x5d\x48\x5e\x48\x5f\x48\x60\x48\x61\x48\x62\x48\x63\x48\x64\x48\x65\x48\x66\x48\x67\x48\x68\x48\x69\x48\x6a\x48\x6b\x48\x6c\x48\x6d\x48\x6e\x48\x6f\x48\x70\x48\x71\x48\x72\x48\x73\x48\x74\x48\x75\x48\x76\x48\x77\x48\x78\x48\x79\x48\x7a\x48\x7b\x48\x7c\x48\x7d\x48\x7e\x48\x7f\x48\x80\x48\x81\x48\x82\x48\x83\x48\x84\x48\x85\x48\x86\x48\x87\x48\x88\x48\x89\x48\x8a\x48\x8b\x48\x8c\x48\x8d\x48\x8e\x48\x8f\x48\x90\x48\x91\x48\x92\x48\x93\x48\x94\x48\x95\x48\x96\x48\x97\x48\x98\x48\x99\x48\x9a\x48\x9b\x48\x9c\x48\x9d\x48\x9e", /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ "\x6d\x41\x6d\x42\x6d\x43\x6d\x44\x6d\x45\x6d\x46\x6d\x47\x6d\x48\x6d\x49\x6d\x4a\x6d\x4b\x6d\x4c\x6d\x4d\x6d\x4e\x6d\x4f\x6d\x50\x6d\x51\x6d\x52\x6d\x53\x6d\x54\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x59\x6d\x5a\x6d\x5b\x6d\x5c\x6d\x5d\x6d\x5e\x6d\x5f\x6d\x60\x6d\x61\x6d\x62\x6d\x63\x6d\x64\x6d\x65\x6d\x66\x6d\x67\x6d\x68\x6d\x69\x6d\x6a\x6d\x6b\x6d\x6c\x6d\x6d\x6d\x6e\x6d\x6f\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x74\x6d\x75\x6d\x76\x6d\x77\x6d\x78\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7c\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x82\x6d\x83\x6d\x84\x6d\x85\x6d\x86\x6d\x87\x6d\x88\x6d\x89\x6d\x8a\x6d\x8b\x6d\x8c\x6d\x8d\x6d\x8e\x6d\x8f\x6d\x90\x6d\x91\x6d\x92\x6d\x93\x6d\x94\x6d\x95\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9b\x6d\x9c\x6d\x9d\x6d\x9e\x6d\x9f\x6d\xa0\x6d\xa1\x6d\xa2\x6d\xa3\x6d\xa4\x6d\xa5\x6d\xa6\x6d\xa7\x6d\xa8\x6d\xa9\x6d\xaa\x6d\xab\x6d\xac\x6d\xad\x6d\xae\x6d\xaf\x6d\xb0\x6d\xb1\x6d\xb2\x6d\xb3\x6d\xb4\x6d\xb5\x6d\xb6\x6d\xb7\x6d\xb8\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xbf\x6d\xc0", /* 0f80 */ "\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc4\x6d\xc5\x6d\xc6\x6d\xc7\x6d\xc8\x6d\xc9\x6d\xca\x6d\xcb\x6d\xcc\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd1\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd6\x6d\xd7\x6d\xd8\x6d\xd9\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdd\x6d\xde\x6d\xdf\x6d\xe0\x6d\xe1\x6d\xe2\x6d\xe3\x6d\xe4\x6d\xe5\x6d\xe6\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xeb\x6d\xec\x6d\xed\x6d\xee\x6d\xef\x6d\xf0\x6d\xf1\x6d\xf2\x6d\xf3\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf7\x6d\xf8\x6d\xf9\x6d\xfa\x6d\xfb\x6d\xfc\x6d\xfd\x6d\xfe\x6e\x41\x6e\x42\x6e\x43\x6e\x44\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4d\x6e\x4e\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x53\x6e\x54\x6e\x55\x6e\x56\x6e\x57\x6e\x58\x6e\x59\x6e\x5a\x6e\x5b\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x5f\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6b\x6e\x6c\x6e\x6d\x6e\x6e\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x7e\x6e\x7f\x6e\x80\x6e\x81\x6e\x82", /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ "\x6e\x83\x6e\x84\x6e\x85\x6e\x86\x6e\x87\x6e\x88\x6e\x89\x6e\x8a\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x8f\x6e\x90\x6e\x91\x6e\x92\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x98\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9c\x6e\x9d\x6e\x9e\x6e\x9f\x6e\xa0\x6e\xa1\x6e\xa2\x6e\xa3\x6e\xa4\x6e\xa5\x6e\xa6\x6e\xa7\x6e\xa8\x6e\xa9\x6e\xaa\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xaf\x6e\xb0\x6e\xb1\x6e\xb2\x6e\xb3\x6e\xb4\x6e\xb5\x6e\xb6\x6e\xb7\x6e\xb8\x6e\xb9\x6e\xba\x6e\xbb\x6e\xbc\x6e\xbd\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc1\x6e\xc2\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc7\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcb\x6e\xcc\x6e\xcd\x6e\xce\x6e\xcf\x6e\xd0\x6e\xd1\x6e\xd2\x6e\xd3\x6e\xd4\x6e\xd5\x6e\xd6\x6e\xd7\x6e\xd8\x6e\xd9\x6e\xda\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xde\x6e\xdf\x6e\xe0\x6e\xe1\x6e\xe2\x6e\xe3\x6e\xe4\x6e\xe5\x6e\xe6\x6e\xe7\x6e\xe8\x6e\xe9\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf4\x6e\xf5\x6e\xf6\x6e\xf7\x6e\xf8\x6e\xf9\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6f\x41\x6f\x42\x6f\x43\x6f\x44", /* 1880 */ "\x6f\x45\x6f\x46\x6f\x47\x6f\x48\x6f\x49\x6f\x4a\x6f\x4b\x6f\x4c\x6f\x4d\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x58\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5c\x6f\x5d\x6f\x5e\x6f\x5f\x6f\x60\x6f\x61\x6f\x62\x6f\x63\x6f\x64\x6f\x65\x6f\x66\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6d\x6f\x6e\x6f\x6f\x6f\x70\x6f\x71\x6f\x72\x6f\x73\x6f\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x5a\x00\x00\x00\x00\xcd\x44\xcd\x45\x44\x4a\x44\x7c\x00\x00\x44\x61\x44\x71\x00\x00\x00\x00\x44\x62\x44\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x7e\x44\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x8b\x00\x00\x44\xee\x44\xef\x00\x00\xcd\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2080 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2100 */ "\x00\x00\x00\x00\x00\x00\x44\x4e\x00\x00\xcd\x47\x00\x00\x00\x00\x00\x00\xcd\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2180 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xf1\x44\xf2\x44\xf0\x44\xf3\x00\x00\x00\x00\xcd\x49\xcd\x4a\xcd\x4b\xcd\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x66\x00\x00\x45\x65\x00\x00\x00\x00\x00\x00\xcd\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6b\x00\x00\x00\x00\x45\x77\x44\x4d\xcd\x4e\x45\x6e\x00\x00\x00\x00\xcd\x4f\x00\x00\x45\x6d\x00\x00\x45\x63\x45\x64\x45\x68\x45\x67\x45\x71\x00\x00\x00\x00\x45\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x78\x45\x62\x45\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x75\x00\x00\x00\x00\x00\x00\x45\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x4c\x45\x73\x00\x00\x00\x00\x44\x67\x44\x77\xcd\x51\xcd\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x79\x45\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x90\x00\x00\x00\x00\x00\x00\x45\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2380 */ NULL, /* 2400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0", /* 2480 */ "\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2500 */ "\x46\xa4\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x54\xcd\x55\xcd\x56\xcd\x57\xcd\x58\xcd\x59\xcd\x5a\xcd\x5b\xcd\x5c\xcd\x5d\xcd\x5e\xcd\x5f\xcd\x60\xcd\x61\xcd\x62\xcd\x63\xcd\x64\xcd\x65\xcd\x66\xcd\x67\xcd\x68\xcd\x69\xcd\x6a\xcd\x6b\xcd\x6c\xcd\x6d\xcd\x6e\xcd\x6f\xcd\x70\xcd\x71\xcd\x72\xcd\x73\xcd\x74\xcd\x75\xcd\x76\xcd\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2580 */ "\x00\x00\xcd\x78\xcd\x79\xcd\x7a\xcd\x7b\xcd\x7c\xcd\x7d\xcd\x7e\xcd\x7f\xcd\x81\xcd\x82\xcd\x83\xcd\x84\xcd\x85\xcd\x86\xcd\x87\x00\x00\x00\x00\x00\x00\xcd\x88\xcd\x89\xcd\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xea\x44\xe9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe3\x44\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xec\x44\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe8\x44\xe7\x00\x00\x00\x00\x00\x00\x44\xe0\x00\x00\x00\x00\x44\xe4\x44\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x8b\xcd\x8c\xcd\x8d\xcd\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\xe6\x44\xe5\x00\x00\x00\x00\xcd\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x79\x00\x00\x44\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ "\x00\x00\xce\x56\x00\x00\x00\x00\xce\x5a\x00\x00\x00\x00\x00\x00\xce\x5d\x00\x00\x00\x00\xce\x5e\xce\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x71\x00\x00\x00\x00\xce\x74\x00\x00\x00\x00\x00\x00\xce\x77\x00\x00\x00\x00\x00\x00\x00\x00\xce\x79\x00\x00\x00\x00\xce\x7a\xce\x7b\x00\x00\x00\x00\x00\x00\xce\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 2f00 */ NULL, /* 2f80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xca\xcd\xcb\xcd\xcc\xcd\xcd\xcd\xce\xcd\xcf\xcd\xd0\xcd\xd1\xcd\xd2\xcd\xd3\xcd\xd4\xcd\xd5\x00\x00\x00\x00\x00\x00\x00\x00", /* 3000 */ "\x40\x40\x43\x44\x43\x41\x44\x5b\x00\x00\x44\x5d\x44\x5e\x44\x5f\x44\x64\x44\x74\x44\x65\x44\x75\x43\x42\x43\x43\x44\x42\x44\x43\x44\x66\x44\x76\x44\x6c\x44\x7d\x44\x63\x44\x73\x45\x5b\x45\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x91\xcd\x92\x00\x00\x00\x00\xcd\x93\xcd\x94\xcd\x95\xcd\x96\xcd\x97\xcd\x98\xcd\x99\xcd\x9a\xcd\x9b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xc9\x00\x00\x00\x00\x44\x47\x44\x81\x44\x48\x44\x82\x44\x49\x44\x83\x44\x51\x44\x84\x44\x52\x44\x85\x44\x86\x44\xc0\x44\x87\x44\xc1\x44\x88\x44\xc2\x44\x89\x44\xc3\x44\x8a\x44\xc4\x44\x8c\x44\xc5\x44\x8d\x44\xc6\x44\x8e\x44\xc7\x44\x8f\x44\xc8\x44\x90\x44\xc9\x44\x91\x44\xca\x44\x92\x44\xcb\x44\x56\x44\x93\x44\xcc\x44\x94\x44\xcd\x44\x95\x44\xce\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9d\x44\xcf\x44\xd5\x44\x9e\x44\xd0\x44\xd6\x44\x9f\x44\xd1\x44\xd7\x44\xa2\x44\xd2\x44\xd8\x44\xa3\x44\xd3\x44\xd9\x44\xa4\x44\xa5", /* 3080 */ "\x44\xa6\x44\xa7\x44\xa8\x44\x53\x44\xa9\x44\x54\x44\xaa\x44\x55\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xba\x44\xbb\x44\x57\x44\xbc\x44\xda\x44\xdb\x44\x46\x44\xbd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xbe\x43\xbf\x44\xdc\x44\xdd\x00\x00\x00\x00\x43\x47\x43\x81\x43\x48\x43\x82\x43\x49\x43\x83\x43\x51\x43\x84\x43\x52\x43\x85\x43\x86\x43\xc0\x43\x87\x43\xc1\x43\x88\x43\xc2\x43\x89\x43\xc3\x43\x8a\x43\xc4\x43\x8c\x43\xc5\x43\x8d\x43\xc6\x43\x8e\x43\xc7\x43\x8f\x43\xc8\x43\x90\x43\xc9\x43\x91\x43\xca\x43\x92\x43\xcb\x43\x56\x43\x93\x43\xcc\x43\x94\x43\xcd\x43\x95\x43\xce\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9d\x43\xcf\x43\xd5\x43\x9e\x43\xd0\x43\xd6\x43\x9f\x43\xd1\x43\xd7\x43\xa2\x43\xd2\x43\xd8\x43\xa3\x43\xd3\x43\xd9\x43\xa4\x43\xa5\x43\xa6\x43\xa7\x43\xa8\x43\x53\x43\xa9\x43\x54\x43\xaa\x43\x55\x43\xac\x43\xad\x43\xae\x43\xaf\x43\xba\x43\xbb\x43\x57\x43\xbc\x43\xda\x43\xdb\x43\x46\x43\xbd\x43\xd4\x43\x59\x43\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x43\x45\x43\x58\x43\xdc\x43\xdd\x00\x00", /* 3100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3180 */ NULL, /* 3200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3280 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3300 */ NULL, /* 3380 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9d\xcd\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x9f\xcd\xa0\xcd\xa1\x00\x00\x00\x00\xcd\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa4\x00\x00\x00\x00\xcd\xa5\xcd\xa6\x00\x00\x00\x00\xcd\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 3400 */ "\xcf\x41\xcf\x42\xcf\x43\xcf\x44\xcf\x45\xcf\x46\xcf\x47\xcf\x48\xcf\x49\xcf\x4a\xcf\x4b\xcf\x4c\xcf\x4d\xcf\x4e\xcf\x4f\xcf\x50\xcf\x51\xcf\x52\xcf\x53\xcf\x54\xcf\x55\xcf\x56\xcf\x57\xcf\x58\xcf\x59\xcf\x5a\xcf\x5b\xcf\x5c\xcf\x5d\xcf\x5e\xcf\x5f\xcf\x60\xcf\x61\xcf\x62\xcf\x63\xcf\x64\xcf\x65\xcf\x66\xcf\x67\xcf\x68\xcf\x69\xcf\x6a\xcf\x6b\xcf\x6c\xcf\x6d\xcf\x6e\xcf\x6f\xcf\x70\xcf\x71\xcf\x72\xcf\x73\xcf\x74\xcf\x75\xcf\x76\xcf\x77\xcf\x78\xcf\x79\xcf\x7a\xcf\x7b\xcf\x7c\xcf\x7d\xcf\x7e\xcf\x7f\xcf\x80\xcf\x81\xcf\x82\xcf\x83\xcf\x84\xcf\x85\xcf\x86\xcf\x87\xce\x5c\xcf\x88\xcf\x89\xcf\x8a\xcf\x8b\xcf\x8c\xcf\x8d\xcf\x8e\xcf\x8f\xcf\x90\xcf\x91\xcf\x92\xcf\x93\xcf\x94\xcf\x95\xcf\x96\xcf\x97\xcf\x98\xcf\x99\xcf\x9a\xcf\x9b\xcf\x9c\xcf\x9d\xcf\x9e\xcf\x9f\xcf\xa0\xcf\xa1\xcf\xa2\xcf\xa3\xcf\xa4\xcf\xa5\xcf\xa6\xcf\xa7\xcf\xa8\xcf\xa9\xcf\xaa\xcf\xab\xcf\xac\xcf\xad\xcf\xae\xcf\xaf\xcf\xb0\xcf\xb1\xcf\xb2\xce\x5b\xcf\xb3\xcf\xb4\xcf\xb5\xcf\xb6\xcf\xb7\xcf\xb8\xcf\xb9\xcf\xba\xcf\xbb\xcf\xbc\xcf\xbd\xcf\xbe", /* 3480 */ "\xcf\xbf\xcf\xc0\xcf\xc1\xcf\xc2\xcf\xc3\xcf\xc4\xcf\xc5\xcf\xc6\xcf\xc7\xcf\xc8\xcf\xc9\xcf\xca\xcf\xcb\xcf\xcc\xcf\xcd\xcf\xce\xcf\xcf\xcf\xd0\xcf\xd1\xcf\xd2\xcf\xd3\xcf\xd4\xcf\xd5\xcf\xd6\xcf\xd7\xcf\xd8\xcf\xd9\xcf\xda\xcf\xdb\xcf\xdc\xcf\xdd\xcf\xde\xcf\xdf\xcf\xe0\xcf\xe1\xcf\xe2\xcf\xe3\xcf\xe4\xcf\xe5\xcf\xe6\xcf\xe7\xcf\xe8\xcf\xe9\xcf\xea\xcf\xeb\xcf\xec\xcf\xed\xcf\xee\xcf\xef\xcf\xf0\xcf\xf1\xcf\xf2\xcf\xf3\xcf\xf4\xcf\xf5\xcf\xf6\xcf\xf7\xcf\xf8\xcf\xf9\xcf\xfa\xcf\xfb\xcf\xfc\xcf\xfd\xcf\xfe\xd0\x41\xd0\x42\xd0\x43\xd0\x44\xd0\x45\xd0\x46\xd0\x47\xd0\x48\xd0\x49\xd0\x4a\xd0\x4b\xd0\x4c\xd0\x4d\xd0\x4e\xd0\x4f\xd0\x50\xd0\x51\xd0\x52\xd0\x53\xd0\x54\xd0\x55\xd0\x56\xd0\x57\xd0\x58\xd0\x59\xd0\x5a\xd0\x5b\xd0\x5c\xd0\x5d\xd0\x5e\xd0\x5f\xd0\x60\xd0\x61\xd0\x62\xd0\x63\xd0\x64\xd0\x65\xd0\x66\xd0\x67\xd0\x68\xd0\x69\xd0\x6a\xd0\x6b\xd0\x6c\xd0\x6d\xd0\x6e\xd0\x6f\xd0\x70\xd0\x71\xd0\x72\xd0\x73\xd0\x74\xd0\x75\xd0\x76\xd0\x77\xd0\x78\xd0\x79\xd0\x7a\xd0\x7b\xd0\x7c\xd0\x7d\xd0\x7e\xd0\x7f\xd0\x80", /* 3500 */ "\xd0\x81\xd0\x82\xd0\x83\xd0\x84\xd0\x85\xd0\x86\xd0\x87\xd0\x88\xd0\x89\xd0\x8a\xd0\x8b\xd0\x8c\xd0\x8d\xd0\x8e\xd0\x8f\xd0\x90\xd0\x91\xd0\x92\xd0\x93\xd0\x94\xd0\x95\xd0\x96\xd0\x97\xd0\x98\xd0\x99\xd0\x9a\xd0\x9b\xd0\x9c\xd0\x9d\xd0\x9e\xd0\x9f\xd0\xa0\xd0\xa1\xd0\xa2\xd0\xa3\xd0\xa4\xd0\xa5\xd0\xa6\xd0\xa7\xd0\xa8\xd0\xa9\xd0\xaa\xd0\xab\xd0\xac\xd0\xad\xd0\xae\xd0\xaf\xd0\xb0\xd0\xb1\xd0\xb2\xd0\xb3\xd0\xb4\xd0\xb5\xd0\xb6\xd0\xb7\xd0\xb8\xd0\xb9\xd0\xba\xd0\xbb\xd0\xbc\xd0\xbd\xd0\xbe\xd0\xbf\xd0\xc0\xd0\xc1\xd0\xc2\xd0\xc3\xd0\xc4\xd0\xc5\xd0\xc6\xd0\xc7\xd0\xc8\xd0\xc9\xd0\xca\xd0\xcb\xd0\xcc\xd0\xcd\xd0\xce\xd0\xcf\xd0\xd0\xd0\xd1\xd0\xd2\xd0\xd3\xd0\xd4\xd0\xd5\xd0\xd6\xd0\xd7\xd0\xd8\xd0\xd9\xd0\xda\xd0\xdb\xd0\xdc\xd0\xdd\xd0\xde\xd0\xdf\xd0\xe0\xd0\xe1\xd0\xe2\xd0\xe3\xd0\xe4\xd0\xe5\xd0\xe6\xd0\xe7\xd0\xe8\xd0\xe9\xd0\xea\xd0\xeb\xd0\xec\xd0\xed\xd0\xee\xd0\xef\xd0\xf0\xd0\xf1\xd0\xf2\xd0\xf3\xd0\xf4\xd0\xf5\xd0\xf6\xd0\xf7\xd0\xf8\xd0\xf9\xd0\xfa\xd0\xfb\xd0\xfc\xd0\xfd\xd0\xfe\xd1\x41\xd1\x42", /* 3580 */ "\xd1\x43\xd1\x44\xd1\x45\xd1\x46\xd1\x47\xd1\x48\xd1\x49\xd1\x4a\xd1\x4b\xd1\x4c\xd1\x4d\xd1\x4e\xd1\x4f\xd1\x50\xd1\x51\xd1\x52\xd1\x53\xd1\x54\xd1\x55\xd1\x56\xd1\x57\xd1\x58\xd1\x59\xd1\x5a\xd1\x5b\xd1\x5c\xd1\x5d\xd1\x5e\xd1\x5f\xd1\x60\xce\x60\xd1\x61\xd1\x62\xd1\x63\xd1\x64\xd1\x65\xd1\x66\xd1\x67\xd1\x68\xd1\x69\xd1\x6a\xd1\x6b\xd1\x6c\xd1\x6d\xd1\x6e\xd1\x6f\xd1\x70\xd1\x71\xd1\x72\xd1\x73\xd1\x74\xd1\x75\xd1\x76\xd1\x77\xd1\x78\xd1\x79\xd1\x7a\xd1\x7b\xd1\x7c\xd1\x7d\xd1\x7e\xd1\x7f\xd1\x80\xd1\x81\xd1\x82\xd1\x83\xd1\x84\xd1\x85\xd1\x86\xd1\x87\xd1\x88\xd1\x89\xd1\x8a\xd1\x8b\xd1\x8c\xd1\x8d\xd1\x8e\xd1\x8f\xd1\x90\xd1\x91\xd1\x92\xd1\x93\xd1\x94\xd1\x95\xd1\x96\xd1\x97\xd1\x98\xd1\x99\xd1\x9a\xd1\x9b\xd1\x9c\xd1\x9d\xd1\x9e\xd1\x9f\xd1\xa0\xd1\xa1\xd1\xa2\xd1\xa3\xd1\xa4\xd1\xa5\xd1\xa6\xd1\xa7\xd1\xa8\xd1\xa9\xd1\xaa\xd1\xab\xd1\xac\xd1\xad\xd1\xae\xd1\xaf\xd1\xb0\xd1\xb1\xd1\xb2\xd1\xb3\xd1\xb4\xd1\xb5\xd1\xb6\xd1\xb7\xd1\xb8\xd1\xb9\xd1\xba\xd1\xbb\xd1\xbc\xd1\xbd\xd1\xbe\xd1\xbf\xd1\xc0\xd1\xc1", /* 3600 */ "\xd1\xc2\xd1\xc3\xd1\xc4\xd1\xc5\xd1\xc6\xd1\xc7\xd1\xc8\xd1\xc9\xd1\xca\xd1\xcb\xd1\xcc\xd1\xcd\xd1\xce\xd1\xcf\xce\x62\xd1\xd0\xd1\xd1\xd1\xd2\xd1\xd3\xd1\xd4\xd1\xd5\xd1\xd6\xd1\xd7\xd1\xd8\xd1\xd9\xd1\xda\xce\x61\xd1\xdb\xd1\xdc\xd1\xdd\xd1\xde\xd1\xdf\xd1\xe0\xd1\xe1\xd1\xe2\xd1\xe3\xd1\xe4\xd1\xe5\xd1\xe6\xd1\xe7\xd1\xe8\xd1\xe9\xd1\xea\xd1\xeb\xd1\xec\xd1\xed\xd1\xee\xd1\xef\xd1\xf0\xd1\xf1\xd1\xf2\xd1\xf3\xd1\xf4\xd1\xf5\xd1\xf6\xd1\xf7\xd1\xf8\xd1\xf9\xd1\xfa\xd1\xfb\xd1\xfc\xd1\xfd\xd1\xfe\xd2\x41\xd2\x42\xd2\x43\xd2\x44\xd2\x45\xd2\x46\xd2\x47\xd2\x48\xd2\x49\xd2\x4a\xd2\x4b\xd2\x4c\xd2\x4d\xd2\x4e\xd2\x4f\xd2\x50\xd2\x51\xd2\x52\xd2\x53\xd2\x54\xd2\x55\xd2\x56\xd2\x57\xd2\x58\xd2\x59\xd2\x5a\xd2\x5b\xd2\x5c\xd2\x5d\xd2\x5e\xd2\x5f\xd2\x60\xd2\x61\xd2\x62\xd2\x63\xd2\x64\xd2\x65\xd2\x66\xd2\x67\xd2\x68\xd2\x69\xd2\x6a\xd2\x6b\xd2\x6c\xd2\x6d\xd2\x6e\xd2\x6f\xd2\x70\xd2\x71\xd2\x72\xd2\x73\xd2\x74\xd2\x75\xd2\x76\xd2\x77\xd2\x78\xd2\x79\xd2\x7a\xd2\x7b\xd2\x7c\xd2\x7d\xd2\x7e\xd2\x7f\xd2\x80\xd2\x81", /* 3680 */ "\xd2\x82\xd2\x83\xd2\x84\xd2\x85\xd2\x86\xd2\x87\xd2\x88\xd2\x89\xd2\x8a\xd2\x8b\xd2\x8c\xd2\x8d\xd2\x8e\xd2\x8f\xd2\x90\xd2\x91\xd2\x92\xd2\x93\xd2\x94\xd2\x95\xd2\x96\xd2\x97\xd2\x98\xd2\x99\xd2\x9a\xd2\x9b\xd2\x9c\xd2\x9d\xd2\x9e\xd2\x9f\xd2\xa0\xd2\xa1\xd2\xa2\xd2\xa3\xd2\xa4\xd2\xa5\xd2\xa6\xd2\xa7\xd2\xa8\xd2\xa9\xd2\xaa\xd2\xab\xd2\xac\xd2\xad\xd2\xae\xd2\xaf\xd2\xb0\xd2\xb1\xd2\xb2\xd2\xb3\xd2\xb4\xd2\xb5\xd2\xb6\xd2\xb7\xd2\xb8\xd2\xb9\xd2\xba\xd2\xbb\xd2\xbc\xd2\xbd\xd2\xbe\xd2\xbf\xd2\xc0\xd2\xc1\xd2\xc2\xd2\xc3\xd2\xc4\xd2\xc5\xd2\xc6\xd2\xc7\xd2\xc8\xd2\xc9\xd2\xca\xd2\xcb\xd2\xcc\xd2\xcd\xd2\xce\xd2\xcf\xd2\xd0\xd2\xd1\xd2\xd2\xd2\xd3\xd2\xd4\xd2\xd5\xd2\xd6\xd2\xd7\xd2\xd8\xd2\xd9\xd2\xda\xd2\xdb\xd2\xdc\xd2\xdd\xd2\xde\xd2\xdf\xd2\xe0\xd2\xe1\xd2\xe2\xd2\xe3\xd2\xe4\xd2\xe5\xd2\xe6\xd2\xe7\xd2\xe8\xd2\xe9\xd2\xea\xd2\xeb\xd2\xec\xd2\xed\xd2\xee\xd2\xef\xd2\xf0\xd2\xf1\xd2\xf2\xd2\xf3\xd2\xf4\xd2\xf5\xd2\xf6\xd2\xf7\xd2\xf8\xd2\xf9\xd2\xfa\xd2\xfb\xd2\xfc\xd2\xfd\xd2\xfe\xd3\x41\xd3\x42\xd3\x43", /* 3700 */ "\xd3\x44\xd3\x45\xd3\x46\xd3\x47\xd3\x48\xd3\x49\xd3\x4a\xd3\x4b\xd3\x4c\xd3\x4d\xd3\x4e\xd3\x4f\xd3\x50\xd3\x51\xd3\x52\xd3\x53\xd3\x54\xd3\x55\xd3\x56\xd3\x57\xd3\x58\xd3\x59\xd3\x5a\xd3\x5b\xd3\x5c\xd3\x5d\xd3\x5e\xd3\x5f\xd3\x60\xd3\x61\xd3\x62\xd3\x63\xd3\x64\xd3\x65\xd3\x66\xd3\x67\xd3\x68\xd3\x69\xd3\x6a\xd3\x6b\xd3\x6c\xd3\x6d\xd3\x6e\xd3\x6f\xd3\x70\xd3\x71\xd3\x72\xd3\x73\xd3\x74\xd3\x75\xd3\x76\xd3\x77\xd3\x78\xd3\x79\xd3\x7a\xd3\x7b\xd3\x7c\xd3\x7d\xd3\x7e\xd3\x7f\xd3\x80\xd3\x81\xd3\x82\xd3\x83\xd3\x84\xd3\x85\xd3\x86\xd3\x87\xd3\x88\xd3\x89\xd3\x8a\xd3\x8b\xd3\x8c\xd3\x8d\xd3\x8e\xd3\x8f\xd3\x90\xd3\x91\xd3\x92\xd3\x93\xd3\x94\xd3\x95\xd3\x96\xd3\x97\xd3\x98\xd3\x99\xd3\x9a\xd3\x9b\xd3\x9c\xd3\x9d\xd3\x9e\xd3\x9f\xd3\xa0\xd3\xa1\xd3\xa2\xd3\xa3\xd3\xa4\xd3\xa5\xd3\xa6\xd3\xa7\xd3\xa8\xd3\xa9\xd3\xaa\xd3\xab\xd3\xac\xd3\xad\xd3\xae\xd3\xaf\xd3\xb0\xd3\xb1\xd3\xb2\xd3\xb3\xd3\xb4\xd3\xb5\xd3\xb6\xd3\xb7\xd3\xb8\xd3\xb9\xd3\xba\xd3\xbb\xd3\xbc\xd3\xbd\xd3\xbe\xd3\xbf\xd3\xc0\xd3\xc1\xd3\xc2\xd3\xc3", /* 3780 */ "\xd3\xc4\xd3\xc5\xd3\xc6\xd3\xc7\xd3\xc8\xd3\xc9\xd3\xca\xd3\xcb\xd3\xcc\xd3\xcd\xd3\xce\xd3\xcf\xd3\xd0\xd3\xd1\xd3\xd2\xd3\xd3\xd3\xd4\xd3\xd5\xd3\xd6\xd3\xd7\xd3\xd8\xd3\xd9\xd3\xda\xd3\xdb\xd3\xdc\xd3\xdd\xd3\xde\xd3\xdf\xd3\xe0\xd3\xe1\xd3\xe2\xd3\xe3\xd3\xe4\xd3\xe5\xd3\xe6\xd3\xe7\xd3\xe8\xd3\xe9\xd3\xea\xd3\xeb\xd3\xec\xd3\xed\xd3\xee\xd3\xef\xd3\xf0\xd3\xf1\xd3\xf2\xd3\xf3\xd3\xf4\xd3\xf5\xd3\xf6\xd3\xf7\xd3\xf8\xd3\xf9\xd3\xfa\xd3\xfb\xd3\xfc\xd3\xfd\xd3\xfe\xd4\x41\xd4\x42\xd4\x43\xd4\x44\xd4\x45\xd4\x46\xd4\x47\xd4\x48\xd4\x49\xd4\x4a\xd4\x4b\xd4\x4c\xd4\x4d\xd4\x4e\xd4\x4f\xd4\x50\xd4\x51\xd4\x52\xd4\x53\xd4\x54\xd4\x55\xd4\x56\xd4\x57\xd4\x58\xd4\x59\xd4\x5a\xd4\x5b\xd4\x5c\xd4\x5d\xd4\x5e\xd4\x5f\xd4\x60\xd4\x61\xd4\x62\xd4\x63\xd4\x64\xd4\x65\xd4\x66\xd4\x67\xd4\x68\xd4\x69\xd4\x6a\xd4\x6b\xd4\x6c\xd4\x6d\xd4\x6e\xd4\x6f\xd4\x70\xd4\x71\xd4\x72\xd4\x73\xd4\x74\xd4\x75\xd4\x76\xd4\x77\xd4\x78\xd4\x79\xd4\x7a\xd4\x7b\xd4\x7c\xd4\x7d\xd4\x7e\xd4\x7f\xd4\x80\xd4\x81\xd4\x82\xd4\x83\xd4\x84\xd4\x85", /* 3800 */ "\xd4\x86\xd4\x87\xd4\x88\xd4\x89\xd4\x8a\xd4\x8b\xd4\x8c\xd4\x8d\xd4\x8e\xd4\x8f\xd4\x90\xd4\x91\xd4\x92\xd4\x93\xd4\x94\xd4\x95\xd4\x96\xd4\x97\xd4\x98\xd4\x99\xd4\x9a\xd4\x9b\xd4\x9c\xd4\x9d\xd4\x9e\xd4\x9f\xd4\xa0\xd4\xa1\xd4\xa2\xd4\xa3\xd4\xa4\xd4\xa5\xd4\xa6\xd4\xa7\xd4\xa8\xd4\xa9\xd4\xaa\xd4\xab\xd4\xac\xd4\xad\xd4\xae\xd4\xaf\xd4\xb0\xd4\xb1\xd4\xb2\xd4\xb3\xd4\xb4\xd4\xb5\xd4\xb6\xd4\xb7\xd4\xb8\xd4\xb9\xd4\xba\xd4\xbb\xd4\xbc\xd4\xbd\xd4\xbe\xd4\xbf\xd4\xc0\xd4\xc1\xd4\xc2\xd4\xc3\xd4\xc4\xd4\xc5\xd4\xc6\xd4\xc7\xd4\xc8\xd4\xc9\xd4\xca\xd4\xcb\xd4\xcc\xd4\xcd\xd4\xce\xd4\xcf\xd4\xd0\xd4\xd1\xd4\xd2\xd4\xd3\xd4\xd4\xd4\xd5\xd4\xd6\xd4\xd7\xd4\xd8\xd4\xd9\xd4\xda\xd4\xdb\xd4\xdc\xd4\xdd\xd4\xde\xd4\xdf\xd4\xe0\xd4\xe1\xd4\xe2\xd4\xe3\xd4\xe4\xd4\xe5\xd4\xe6\xd4\xe7\xd4\xe8\xd4\xe9\xd4\xea\xd4\xeb\xd4\xec\xd4\xed\xd4\xee\xd4\xef\xd4\xf0\xd4\xf1\xd4\xf2\xd4\xf3\xd4\xf4\xd4\xf5\xd4\xf6\xd4\xf7\xd4\xf8\xd4\xf9\xd4\xfa\xd4\xfb\xd4\xfc\xd4\xfd\xd4\xfe\xd5\x41\xd5\x42\xd5\x43\xd5\x44\xd5\x45\xd5\x46\xd5\x47", /* 3880 */ "\xd5\x48\xd5\x49\xd5\x4a\xd5\x4b\xd5\x4c\xd5\x4d\xd5\x4e\xd5\x4f\xd5\x50\xd5\x51\xd5\x52\xd5\x53\xd5\x54\xd5\x55\xd5\x56\xd5\x57\xd5\x58\xd5\x59\xd5\x5a\xd5\x5b\xd5\x5c\xd5\x5d\xd5\x5e\xd5\x5f\xd5\x60\xd5\x61\xd5\x62\xd5\x63\xd5\x64\xd5\x65\xd5\x66\xd5\x67\xd5\x68\xd5\x69\xd5\x6a\xd5\x6b\xd5\x6c\xd5\x6d\xd5\x6e\xd5\x6f\xd5\x70\xd5\x71\xd5\x72\xd5\x73\xd5\x74\xd5\x75\xd5\x76\xd5\x77\xd5\x78\xd5\x79\xd5\x7a\xd5\x7b\xd5\x7c\xd5\x7d\xd5\x7e\xd5\x7f\xd5\x80\xd5\x81\xd5\x82\xd5\x83\xd5\x84\xd5\x85\xd5\x86\xd5\x87\xd5\x88\xd5\x89\xd5\x8a\xd5\x8b\xd5\x8c\xd5\x8d\xd5\x8e\xd5\x8f\xd5\x90\xd5\x91\xd5\x92\xd5\x93\xd5\x94\xd5\x95\xd5\x96\xd5\x97\xd5\x98\xd5\x99\xd5\x9a\xd5\x9b\xd5\x9c\xd5\x9d\xd5\x9e\xd5\x9f\xd5\xa0\xd5\xa1\xd5\xa2\xd5\xa3\xd5\xa4\xd5\xa5\xd5\xa6\xd5\xa7\xd5\xa8\xd5\xa9\xd5\xaa\xd5\xab\xd5\xac\xd5\xad\xd5\xae\xd5\xaf\xd5\xb0\xd5\xb1\xd5\xb2\xd5\xb3\xd5\xb4\xd5\xb5\xd5\xb6\xd5\xb7\xd5\xb8\xd5\xb9\xd5\xba\xd5\xbb\xd5\xbc\xd5\xbd\xd5\xbe\xd5\xbf\xd5\xc0\xd5\xc1\xd5\xc2\xd5\xc3\xd5\xc4\xd5\xc5\xd5\xc6\xd5\xc7", /* 3900 */ "\xd5\xc8\xd5\xc9\xd5\xca\xd5\xcb\xd5\xcc\xd5\xcd\xd5\xce\xd5\xcf\xd5\xd0\xd5\xd1\xd5\xd2\xd5\xd3\xd5\xd4\xd5\xd5\xd5\xd6\xd5\xd7\xd5\xd8\xd5\xd9\xd5\xda\xd5\xdb\xd5\xdc\xd5\xdd\xd5\xde\xd5\xdf\xce\x66\xd5\xe0\xd5\xe1\xd5\xe2\xd5\xe3\xd5\xe4\xd5\xe5\xd5\xe6\xd5\xe7\xd5\xe8\xd5\xe9\xd5\xea\xd5\xeb\xd5\xec\xd5\xed\xd5\xee\xd5\xef\xd5\xf0\xd5\xf1\xd5\xf2\xd5\xf3\xd5\xf4\xd5\xf5\xd5\xf6\xd5\xf7\xd5\xf8\xd5\xf9\xd5\xfa\xd5\xfb\xd5\xfc\xd5\xfd\xd5\xfe\xd6\x41\xd6\x42\xd6\x43\xd6\x44\xd6\x45\xd6\x46\xd6\x47\xd6\x48\xd6\x49\xd6\x4a\xd6\x4b\xd6\x4c\xd6\x4d\xd6\x4e\xd6\x4f\xd6\x50\xd6\x51\xd6\x52\xd6\x53\xd6\x54\xd6\x55\xd6\x56\xd6\x57\xd6\x58\xd6\x59\xd6\x5a\xd6\x5b\xd6\x5c\xd6\x5d\xd6\x5e\xd6\x5f\xd6\x60\xd6\x61\xd6\x62\xd6\x63\xd6\x64\xd6\x65\xd6\x66\xd6\x67\xd6\x68\xd6\x69\xd6\x6a\xd6\x6b\xd6\x6c\xd6\x6d\xd6\x6e\xd6\x6f\xd6\x70\xd6\x71\xd6\x72\xd6\x73\xd6\x74\xd6\x75\xd6\x76\xce\x65\xd6\x77\xd6\x78\xd6\x79\xd6\x7a\xd6\x7b\xd6\x7c\xd6\x7d\xd6\x7e\xd6\x7f\xd6\x80\xd6\x81\xd6\x82\xd6\x83\xd6\x84\xd6\x85\xd6\x86\xd6\x87", /* 3980 */ "\xd6\x88\xd6\x89\xd6\x8a\xd6\x8b\xd6\x8c\xd6\x8d\xd6\x8e\xd6\x8f\xd6\x90\xd6\x91\xd6\x92\xd6\x93\xd6\x94\xd6\x95\xd6\x96\xd6\x97\xd6\x98\xd6\x99\xd6\x9a\xd6\x9b\xd6\x9c\xd6\x9d\xd6\x9e\xd6\x9f\xd6\xa0\xd6\xa1\xd6\xa2\xd6\xa3\xd6\xa4\xd6\xa5\xd6\xa6\xd6\xa7\xd6\xa8\xd6\xa9\xd6\xaa\xd6\xab\xd6\xac\xd6\xad\xd6\xae\xd6\xaf\xd6\xb0\xd6\xb1\xd6\xb2\xd6\xb3\xd6\xb4\xd6\xb5\xd6\xb6\xd6\xb7\xd6\xb8\xd6\xb9\xd6\xba\xd6\xbb\xd6\xbc\xd6\xbd\xd6\xbe\xd6\xbf\xd6\xc0\xd6\xc1\xd6\xc2\xd6\xc3\xd6\xc4\xd6\xc5\xd6\xc6\xd6\xc7\xd6\xc8\xd6\xc9\xd6\xca\xd6\xcb\xd6\xcc\xd6\xcd\xd6\xce\xd6\xcf\xd6\xd0\xd6\xd1\xd6\xd2\xd6\xd3\xd6\xd4\xd6\xd5\xd6\xd6\xce\x68\xce\x6b\xd6\xd7\xd6\xd8\xd6\xd9\xd6\xda\xd6\xdb\xd6\xdc\xd6\xdd\xd6\xde\xd6\xdf\xd6\xe0\xd6\xe1\xd6\xe2\xd6\xe3\xd6\xe4\xce\x69\xd6\xe5\xd6\xe6\xd6\xe7\xd6\xe8\xd6\xe9\xd6\xea\xd6\xeb\xd6\xec\xd6\xed\xd6\xee\xd6\xef\xd6\xf0\xd6\xf1\xd6\xf2\xd6\xf3\xd6\xf4\xd6\xf5\xd6\xf6\xd6\xf7\xd6\xf8\xd6\xf9\xd6\xfa\xd6\xfb\xd6\xfc\xd6\xfd\xd6\xfe\xd7\x41\xd7\x42\xd7\x43\xd7\x44\xd7\x45\xd7\x46", /* 3a00 */ "\xd7\x47\xd7\x48\xd7\x49\xd7\x4a\xd7\x4b\xd7\x4c\xd7\x4d\xd7\x4e\xd7\x4f\xd7\x50\xd7\x51\xd7\x52\xd7\x53\xd7\x54\xd7\x55\xd7\x56\xd7\x57\xd7\x58\xd7\x59\xd7\x5a\xd7\x5b\xd7\x5c\xd7\x5d\xd7\x5e\xd7\x5f\xd7\x60\xd7\x61\xd7\x62\xd7\x63\xd7\x64\xd7\x65\xd7\x66\xd7\x67\xd7\x68\xd7\x69\xd7\x6a\xd7\x6b\xd7\x6c\xd7\x6d\xd7\x6e\xd7\x6f\xd7\x70\xd7\x71\xd7\x72\xd7\x73\xd7\x74\xd7\x75\xd7\x76\xd7\x77\xd7\x78\xd7\x79\xd7\x7a\xd7\x7b\xd7\x7c\xd7\x7d\xd7\x7e\xd7\x7f\xd7\x80\xd7\x81\xd7\x82\xd7\x83\xd7\x84\xd7\x85\xd7\x86\xd7\x87\xd7\x88\xd7\x89\xd7\x8a\xd7\x8b\xd7\x8c\xd7\x8d\xd7\x8e\xd7\x8f\xd7\x90\xd7\x91\xd7\x92\xd7\x93\xd7\x94\xd7\x95\xd7\x96\xd7\x97\xd7\x98\xd7\x99\xd7\x9a\xd7\x9b\xd7\x9c\xd7\x9d\xd7\x9e\xd7\x9f\xd7\xa0\xd7\xa1\xd7\xa2\xd7\xa3\xd7\xa4\xd7\xa5\xd7\xa6\xd7\xa7\xd7\xa8\xd7\xa9\xd7\xaa\xd7\xab\xd7\xac\xd7\xad\xd7\xae\xd7\xaf\xd7\xb0\xd7\xb1\xd7\xb2\xd7\xb3\xd7\xb4\xd7\xb5\xd7\xb6\xd7\xb7\xd7\xb8\xd7\xb9\xce\x6a\xd7\xba\xd7\xbb\xd7\xbc\xd7\xbd\xd7\xbe\xd7\xbf\xd7\xc0\xd7\xc1\xd7\xc2\xd7\xc3\xd7\xc4\xd7\xc5", /* 3a80 */ "\xd7\xc6\xd7\xc7\xd7\xc8\xd7\xc9\xd7\xca\xd7\xcb\xd7\xcc\xd7\xcd\xd7\xce\xd7\xcf\xd7\xd0\xd7\xd1\xd7\xd2\xd7\xd3\xd7\xd4\xd7\xd5\xd7\xd6\xd7\xd7\xd7\xd8\xd7\xd9\xd7\xda\xd7\xdb\xd7\xdc\xd7\xdd\xd7\xde\xd7\xdf\xd7\xe0\xd7\xe1\xd7\xe2\xd7\xe3\xd7\xe4\xd7\xe5\xd7\xe6\xd7\xe7\xd7\xe8\xd7\xe9\xd7\xea\xd7\xeb\xd7\xec\xd7\xed\xd7\xee\xd7\xef\xd7\xf0\xd7\xf1\xd7\xf2\xd7\xf3\xd7\xf4\xd7\xf5\xd7\xf6\xd7\xf7\xd7\xf8\xd7\xf9\xd7\xfa\xd7\xfb\xd7\xfc\xd7\xfd\xd7\xfe\xd8\x41\xd8\x42\xd8\x43\xd8\x44\xd8\x45\xd8\x46\xd8\x47\xd8\x48\xd8\x49\xd8\x4a\xd8\x4b\xd8\x4c\xd8\x4d\xd8\x4e\xd8\x4f\xd8\x50\xd8\x51\xd8\x52\xd8\x53\xd8\x54\xd8\x55\xd8\x56\xd8\x57\xd8\x58\xd8\x59\xd8\x5a\xd8\x5b\xd8\x5c\xd8\x5d\xd8\x5e\xd8\x5f\xd8\x60\xd8\x61\xd8\x62\xd8\x63\xd8\x64\xd8\x65\xd8\x66\xd8\x67\xd8\x68\xd8\x69\xd8\x6a\xd8\x6b\xd8\x6c\xd8\x6d\xd8\x6e\xd8\x6f\xd8\x70\xd8\x71\xd8\x72\xd8\x73\xd8\x74\xd8\x75\xd8\x76\xd8\x77\xd8\x78\xd8\x79\xd8\x7a\xd8\x7b\xd8\x7c\xd8\x7d\xd8\x7e\xd8\x7f\xd8\x80\xd8\x81\xd8\x82\xd8\x83\xd8\x84\xd8\x85\xd8\x86\xd8\x87", /* 3b00 */ "\xd8\x88\xd8\x89\xd8\x8a\xd8\x8b\xd8\x8c\xd8\x8d\xd8\x8e\xd8\x8f\xd8\x90\xd8\x91\xd8\x92\xd8\x93\xd8\x94\xd8\x95\xd8\x96\xd8\x97\xd8\x98\xd8\x99\xd8\x9a\xd8\x9b\xd8\x9c\xd8\x9d\xd8\x9e\xd8\x9f\xd8\xa0\xd8\xa1\xd8\xa2\xd8\xa3\xd8\xa4\xd8\xa5\xd8\xa6\xd8\xa7\xd8\xa8\xd8\xa9\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae\xd8\xaf\xd8\xb0\xd8\xb1\xd8\xb2\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba\xd8\xbb\xd8\xbc\xd8\xbd\xd8\xbe\xd8\xbf\xd8\xc0\xd8\xc1\xd8\xc2\xd8\xc3\xd8\xc4\xd8\xc5\xd8\xc6\xd8\xc7\xd8\xc8\xd8\xc9\xd8\xca\xd8\xcb\xd8\xcc\xd8\xcd\xd8\xce\xd8\xcf\xd8\xd0\xd8\xd1\xd8\xd2\xd8\xd3\xd8\xd4\xd8\xd5\xce\x6e\xd8\xd6\xd8\xd7\xd8\xd8\xd8\xd9\xd8\xda\xd8\xdb\xd8\xdc\xd8\xdd\xd8\xde\xd8\xdf\xd8\xe0\xd8\xe1\xd8\xe2\xd8\xe3\xd8\xe4\xd8\xe5\xd8\xe6\xd8\xe7\xd8\xe8\xd8\xe9\xd8\xea\xd8\xeb\xd8\xec\xd8\xed\xd8\xee\xd8\xef\xd8\xf0\xd8\xf1\xd8\xf2\xd8\xf3\xd8\xf4\xd8\xf5\xd8\xf6\xd8\xf7\xd8\xf8\xd8\xf9\xd8\xfa\xd8\xfb\xd8\xfc\xd8\xfd\xd8\xfe\xd9\x41\xd9\x42\xd9\x43\xd9\x44\xd9\x45\xd9\x46\xd9\x47\xd9\x48", /* 3b80 */ "\xd9\x49\xd9\x4a\xd9\x4b\xd9\x4c\xd9\x4d\xd9\x4e\xd9\x4f\xd9\x50\xd9\x51\xd9\x52\xd9\x53\xd9\x54\xd9\x55\xd9\x56\xd9\x57\xd9\x58\xd9\x59\xd9\x5a\xd9\x5b\xd9\x5c\xd9\x5d\xd9\x5e\xd9\x5f\xd9\x60\xd9\x61\xd9\x62\xd9\x63\xd9\x64\xd9\x65\xd9\x66\xd9\x67\xd9\x68\xd9\x69\xd9\x6a\xd9\x6b\xd9\x6c\xd9\x6d\xd9\x6e\xd9\x6f\xd9\x70\xd9\x71\xd9\x72\xd9\x73\xd9\x74\xd9\x75\xd9\x76\xd9\x77\xd9\x78\xd9\x79\xd9\x7a\xd9\x7b\xd9\x7c\xd9\x7d\xd9\x7e\xd9\x7f\xd9\x80\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x88\xd9\x89\xd9\x8a\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f\xd9\x90\xd9\x91\xd9\x92\xd9\x93\xd9\x94\xd9\x95\xd9\x96\xd9\x97\xd9\x98\xd9\x99\xd9\x9a\xd9\x9b\xd9\x9c\xd9\x9d\xd9\x9e\xd9\x9f\xd9\xa0\xd9\xa1\xd9\xa2\xd9\xa3\xd9\xa4\xd9\xa5\xd9\xa6\xd9\xa7\xd9\xa8\xd9\xa9\xd9\xaa\xd9\xab\xd9\xac\xd9\xad\xd9\xae\xd9\xaf\xd9\xb0\xd9\xb1\xd9\xb2\xd9\xb3\xd9\xb4\xd9\xb5\xd9\xb6\xd9\xb7\xd9\xb8\xd9\xb9\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf\xd9\xc0\xd9\xc1\xd9\xc2\xd9\xc3\xd9\xc4\xd9\xc5\xd9\xc6\xd9\xc7\xd9\xc8", /* 3c00 */ "\xd9\xc9\xd9\xca\xd9\xcb\xd9\xcc\xd9\xcd\xd9\xce\xd9\xcf\xd9\xd0\xd9\xd1\xd9\xd2\xd9\xd3\xd9\xd4\xd9\xd5\xd9\xd6\xd9\xd7\xd9\xd8\xd9\xd9\xd9\xda\xd9\xdb\xd9\xdc\xd9\xdd\xd9\xde\xd9\xdf\xd9\xe0\xd9\xe1\xd9\xe2\xd9\xe3\xd9\xe4\xd9\xe5\xd9\xe6\xd9\xe7\xd9\xe8\xd9\xe9\xd9\xea\xd9\xeb\xd9\xec\xd9\xed\xd9\xee\xd9\xef\xd9\xf0\xd9\xf1\xd9\xf2\xd9\xf3\xd9\xf4\xd9\xf5\xd9\xf6\xd9\xf7\xd9\xf8\xd9\xf9\xd9\xfa\xd9\xfb\xd9\xfc\xd9\xfd\xd9\xfe\xda\x41\xda\x42\xda\x43\xda\x44\xda\x45\xda\x46\xda\x47\xda\x48\xda\x49\xda\x4a\xda\x4b\xda\x4c\xda\x4d\xda\x4e\xda\x4f\xda\x50\xda\x51\xda\x52\xda\x53\xda\x54\xda\x55\xda\x56\xda\x57\xda\x58\xda\x59\xda\x5a\xda\x5b\xda\x5c\xda\x5d\xda\x5e\xda\x5f\xda\x60\xda\x61\xda\x62\xda\x63\xda\x64\xda\x65\xda\x66\xda\x67\xda\x68\xda\x69\xda\x6a\xda\x6b\xda\x6c\xda\x6d\xda\x6e\xda\x6f\xda\x70\xda\x71\xda\x72\xda\x73\xda\x74\xda\x75\xda\x76\xda\x77\xda\x78\xce\x6f\xda\x79\xda\x7a\xda\x7b\xda\x7c\xda\x7d\xda\x7e\xda\x7f\xda\x80\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87\xda\x88\xda\x89", /* 3c80 */ "\xda\x8a\xda\x8b\xda\x8c\xda\x8d\xda\x8e\xda\x8f\xda\x90\xda\x91\xda\x92\xda\x93\xda\x94\xda\x95\xda\x96\xda\x97\xda\x98\xda\x99\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f\xda\xa0\xda\xa1\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8\xda\xa9\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9\xda\xba\xda\xbb\xda\xbc\xda\xbd\xda\xbe\xda\xbf\xda\xc0\xda\xc1\xda\xc2\xda\xc3\xda\xc4\xda\xc5\xda\xc6\xda\xc7\xda\xc8\xda\xc9\xda\xca\xda\xcb\xda\xcc\xda\xcd\xda\xce\xda\xcf\xda\xd0\xda\xd1\xda\xd2\xda\xd3\xda\xd4\xda\xd5\xda\xd6\xda\xd7\xda\xd8\xda\xd9\xda\xda\xda\xdb\xda\xdc\xda\xdd\xda\xde\xda\xdf\xda\xe0\xda\xe1\xda\xe2\xda\xe3\xda\xe4\xda\xe5\xda\xe6\xda\xe7\xda\xe8\xda\xe9\xce\x70\xda\xea\xda\xeb\xda\xec\xda\xed\xda\xee\xda\xef\xda\xf0\xda\xf1\xda\xf2\xda\xf3\xda\xf4\xda\xf5\xda\xf6\xda\xf7\xda\xf8\xda\xf9\xda\xfa\xda\xfb\xda\xfc\xda\xfd\xda\xfe\xdb\x41\xdb\x42\xdb\x43\xdb\x44\xdb\x45\xdb\x46\xdb\x47\xdb\x48\xdb\x49\xdb\x4a", /* 3d00 */ "\xdb\x4b\xdb\x4c\xdb\x4d\xdb\x4e\xdb\x4f\xdb\x50\xdb\x51\xdb\x52\xdb\x53\xdb\x54\xdb\x55\xdb\x56\xdb\x57\xdb\x58\xdb\x59\xdb\x5a\xdb\x5b\xdb\x5c\xdb\x5d\xdb\x5e\xdb\x5f\xdb\x60\xdb\x61\xdb\x62\xdb\x63\xdb\x64\xdb\x65\xdb\x66\xdb\x67\xdb\x68\xdb\x69\xdb\x6a\xdb\x6b\xdb\x6c\xdb\x6d\xdb\x6e\xdb\x6f\xdb\x70\xdb\x71\xdb\x72\xdb\x73\xdb\x74\xdb\x75\xdb\x76\xdb\x77\xdb\x78\xdb\x79\xdb\x7a\xdb\x7b\xdb\x7c\xdb\x7d\xdb\x7e\xdb\x7f\xdb\x80\xdb\x81\xdb\x82\xdb\x83\xdb\x84\xdb\x85\xdb\x86\xdb\x87\xdb\x88\xdb\x89\xdb\x8a\xdb\x8b\xdb\x8c\xdb\x8d\xdb\x8e\xdb\x8f\xdb\x90\xdb\x91\xdb\x92\xdb\x93\xdb\x94\xdb\x95\xdb\x96\xdb\x97\xdb\x98\xdb\x99\xdb\x9a\xdb\x9b\xdb\x9c\xdb\x9d\xdb\x9e\xdb\x9f\xdb\xa0\xdb\xa1\xdb\xa2\xdb\xa3\xdb\xa4\xdb\xa5\xdb\xa6\xdb\xa7\xdb\xa8\xdb\xa9\xdb\xaa\xdb\xab\xdb\xac\xdb\xad\xdb\xae\xdb\xaf\xdb\xb0\xdb\xb1\xdb\xb2\xdb\xb3\xdb\xb4\xdb\xb5\xdb\xb6\xdb\xb7\xdb\xb8\xdb\xb9\xdb\xba\xdb\xbb\xdb\xbc\xdb\xbd\xdb\xbe\xdb\xbf\xdb\xc0\xdb\xc1\xdb\xc2\xdb\xc3\xdb\xc4\xdb\xc5\xdb\xc6\xdb\xc7\xdb\xc8\xdb\xc9\xdb\xca", /* 3d80 */ "\xdb\xcb\xdb\xcc\xdb\xcd\xdb\xce\xdb\xcf\xdb\xd0\xdb\xd1\xdb\xd2\xdb\xd3\xdb\xd4\xdb\xd5\xdb\xd6\xdb\xd7\xdb\xd8\xdb\xd9\xdb\xda\xdb\xdb\xdb\xdc\xdb\xdd\xdb\xde\xdb\xdf\xdb\xe0\xdb\xe1\xdb\xe2\xdb\xe3\xdb\xe4\xdb\xe5\xdb\xe6\xdb\xe7\xdb\xe8\xdb\xe9\xdb\xea\xdb\xeb\xdb\xec\xdb\xed\xdb\xee\xdb\xef\xdb\xf0\xdb\xf1\xdb\xf2\xdb\xf3\xdb\xf4\xdb\xf5\xdb\xf6\xdb\xf7\xdb\xf8\xdb\xf9\xdb\xfa\xdb\xfb\xdb\xfc\xdb\xfd\xdb\xfe\xdc\x41\xdc\x42\xdc\x43\xdc\x44\xdc\x45\xdc\x46\xdc\x47\xdc\x48\xdc\x49\xdc\x4a\xdc\x4b\xdc\x4c\xdc\x4d\xdc\x4e\xdc\x4f\xdc\x50\xdc\x51\xdc\x52\xdc\x53\xdc\x54\xdc\x55\xdc\x56\xdc\x57\xdc\x58\xdc\x59\xdc\x5a\xdc\x5b\xdc\x5c\xdc\x5d\xdc\x5e\xdc\x5f\xdc\x60\xdc\x61\xdc\x62\xdc\x63\xdc\x64\xdc\x65\xdc\x66\xdc\x67\xdc\x68\xdc\x69\xdc\x6a\xdc\x6b\xdc\x6c\xdc\x6d\xdc\x6e\xdc\x6f\xdc\x70\xdc\x71\xdc\x72\xdc\x73\xdc\x74\xdc\x75\xdc\x76\xdc\x77\xdc\x78\xdc\x79\xdc\x7a\xdc\x7b\xdc\x7c\xdc\x7d\xdc\x7e\xdc\x7f\xdc\x80\xdc\x81\xdc\x82\xdc\x83\xdc\x84\xdc\x85\xdc\x86\xdc\x87\xdc\x88\xdc\x89\xdc\x8a\xdc\x8b\xdc\x8c", /* 3e00 */ "\xdc\x8d\xdc\x8e\xdc\x8f\xdc\x90\xdc\x91\xdc\x92\xdc\x93\xdc\x94\xdc\x95\xdc\x96\xdc\x97\xdc\x98\xdc\x99\xdc\x9a\xdc\x9b\xdc\x9c\xdc\x9d\xdc\x9e\xdc\x9f\xdc\xa0\xdc\xa1\xdc\xa2\xdc\xa3\xdc\xa4\xdc\xa5\xdc\xa6\xdc\xa7\xdc\xa8\xdc\xa9\xdc\xaa\xdc\xab\xdc\xac\xdc\xad\xdc\xae\xdc\xaf\xdc\xb0\xdc\xb1\xdc\xb2\xdc\xb3\xdc\xb4\xdc\xb5\xdc\xb6\xdc\xb7\xdc\xb8\xdc\xb9\xdc\xba\xdc\xbb\xdc\xbc\xdc\xbd\xdc\xbe\xdc\xbf\xdc\xc0\xdc\xc1\xdc\xc2\xdc\xc3\xdc\xc4\xdc\xc5\xdc\xc6\xdc\xc7\xdc\xc8\xdc\xc9\xdc\xca\xdc\xcb\xdc\xcc\xdc\xcd\xdc\xce\xdc\xcf\xdc\xd0\xdc\xd1\xdc\xd2\xdc\xd3\xdc\xd4\xdc\xd5\xdc\xd6\xdc\xd7\xdc\xd8\xdc\xd9\xdc\xda\xdc\xdb\xdc\xdc\xdc\xdd\xdc\xde\xdc\xdf\xdc\xe0\xdc\xe1\xdc\xe2\xdc\xe3\xdc\xe4\xdc\xe5\xdc\xe6\xdc\xe7\xdc\xe8\xdc\xe9\xdc\xea\xdc\xeb\xdc\xec\xdc\xed\xdc\xee\xdc\xef\xdc\xf0\xdc\xf1\xdc\xf2\xdc\xf3\xdc\xf4\xdc\xf5\xdc\xf6\xdc\xf7\xdc\xf8\xdc\xf9\xdc\xfa\xdc\xfb\xdc\xfc\xdc\xfd\xdc\xfe\xdd\x41\xdd\x42\xdd\x43\xdd\x44\xdd\x45\xdd\x46\xdd\x47\xdd\x48\xdd\x49\xdd\x4a\xdd\x4b\xdd\x4c\xdd\x4d\xdd\x4e", /* 3e80 */ "\xdd\x4f\xdd\x50\xdd\x51\xdd\x52\xdd\x53\xdd\x54\xdd\x55\xdd\x56\xdd\x57\xdd\x58\xdd\x59\xdd\x5a\xdd\x5b\xdd\x5c\xdd\x5d\xdd\x5e\xdd\x5f\xdd\x60\xdd\x61\xdd\x62\xdd\x63\xdd\x64\xdd\x65\xdd\x66\xdd\x67\xdd\x68\xdd\x69\xdd\x6a\xdd\x6b\xdd\x6c\xdd\x6d\xdd\x6e\xdd\x6f\xdd\x70\xdd\x71\xdd\x72\xdd\x73\xdd\x74\xdd\x75\xdd\x76\xdd\x77\xdd\x78\xdd\x79\xdd\x7a\xdd\x7b\xdd\x7c\xdd\x7d\xdd\x7e\xdd\x7f\xdd\x80\xdd\x81\xdd\x82\xdd\x83\xdd\x84\xdd\x85\xdd\x86\xdd\x87\xdd\x88\xdd\x89\xdd\x8a\xdd\x8b\xdd\x8c\xdd\x8d\xdd\x8e\xdd\x8f\xdd\x90\xdd\x91\xdd\x92\xdd\x93\xdd\x94\xdd\x95\xdd\x96\xdd\x97\xdd\x98\xdd\x99\xdd\x9a\xdd\x9b\xdd\x9c\xdd\x9d\xdd\x9e\xdd\x9f\xdd\xa0\xdd\xa1\xdd\xa2\xdd\xa3\xdd\xa4\xdd\xa5\xdd\xa6\xdd\xa7\xdd\xa8\xdd\xa9\xdd\xaa\xdd\xab\xdd\xac\xdd\xad\xdd\xae\xdd\xaf\xdd\xb0\xdd\xb1\xdd\xb2\xdd\xb3\xdd\xb4\xdd\xb5\xdd\xb6\xdd\xb7\xdd\xb8\xdd\xb9\xdd\xba\xdd\xbb\xdd\xbc\xdd\xbd\xdd\xbe\xdd\xbf\xdd\xc0\xdd\xc1\xdd\xc2\xdd\xc3\xdd\xc4\xdd\xc5\xdd\xc6\xdd\xc7\xdd\xc8\xdd\xc9\xdd\xca\xdd\xcb\xdd\xcc\xdd\xcd\xdd\xce", /* 3f00 */ "\xdd\xcf\xdd\xd0\xdd\xd1\xdd\xd2\xdd\xd3\xdd\xd4\xdd\xd5\xdd\xd6\xdd\xd7\xdd\xd8\xdd\xd9\xdd\xda\xdd\xdb\xdd\xdc\xdd\xdd\xdd\xde\xdd\xdf\xdd\xe0\xdd\xe1\xdd\xe2\xdd\xe3\xdd\xe4\xdd\xe5\xdd\xe6\xdd\xe7\xdd\xe8\xdd\xe9\xdd\xea\xdd\xeb\xdd\xec\xdd\xed\xdd\xee\xdd\xef\xdd\xf0\xdd\xf1\xdd\xf2\xdd\xf3\xdd\xf4\xdd\xf5\xdd\xf6\xdd\xf7\xdd\xf8\xdd\xf9\xdd\xfa\xdd\xfb\xdd\xfc\xdd\xfd\xdd\xfe\xde\x41\xde\x42\xde\x43\xde\x44\xde\x45\xde\x46\xde\x47\xde\x48\xde\x49\xde\x4a\xde\x4b\xde\x4c\xde\x4d\xde\x4e\xde\x4f\xde\x50\xde\x51\xde\x52\xde\x53\xde\x54\xde\x55\xde\x56\xde\x57\xde\x58\xde\x59\xde\x5a\xde\x5b\xde\x5c\xde\x5d\xde\x5e\xde\x5f\xde\x60\xde\x61\xde\x62\xde\x63\xde\x64\xde\x65\xde\x66\xde\x67\xde\x68\xde\x69\xde\x6a\xde\x6b\xde\x6c\xde\x6d\xde\x6e\xde\x6f\xde\x70\xde\x71\xde\x72\xde\x73\xde\x74\xde\x75\xde\x76\xde\x77\xde\x78\xde\x79\xde\x7a\xde\x7b\xde\x7c\xde\x7d\xde\x7e\xde\x7f\xde\x80\xde\x81\xde\x82\xde\x83\xde\x84\xde\x85\xde\x86\xde\x87\xde\x88\xde\x89\xde\x8a\xde\x8b\xde\x8c\xde\x8d\xde\x8e\xde\x8f\xde\x90", /* 3f80 */ "\xde\x91\xde\x92\xde\x93\xde\x94\xde\x95\xde\x96\xde\x97\xde\x98\xde\x99\xde\x9a\xde\x9b\xde\x9c\xde\x9d\xde\x9e\xde\x9f\xde\xa0\xde\xa1\xde\xa2\xde\xa3\xde\xa4\xde\xa5\xde\xa6\xde\xa7\xde\xa8\xde\xa9\xde\xaa\xde\xab\xde\xac\xde\xad\xde\xae\xde\xaf\xde\xb0\xde\xb1\xde\xb2\xde\xb3\xde\xb4\xde\xb5\xde\xb6\xde\xb7\xde\xb8\xde\xb9\xde\xba\xde\xbb\xde\xbc\xde\xbd\xde\xbe\xde\xbf\xde\xc0\xde\xc1\xde\xc2\xde\xc3\xde\xc4\xde\xc5\xde\xc6\xde\xc7\xde\xc8\xde\xc9\xde\xca\xde\xcb\xde\xcc\xde\xcd\xde\xce\xde\xcf\xde\xd0\xde\xd1\xde\xd2\xde\xd3\xde\xd4\xde\xd5\xde\xd6\xde\xd7\xde\xd8\xde\xd9\xde\xda\xde\xdb\xde\xdc\xde\xdd\xde\xde\xde\xdf\xde\xe0\xde\xe1\xde\xe2\xde\xe3\xde\xe4\xde\xe5\xde\xe6\xde\xe7\xde\xe8\xde\xe9\xde\xea\xde\xeb\xde\xec\xde\xed\xde\xee\xde\xef\xde\xf0\xde\xf1\xde\xf2\xde\xf3\xde\xf4\xde\xf5\xde\xf6\xde\xf7\xde\xf8\xde\xf9\xde\xfa\xde\xfb\xde\xfc\xde\xfd\xde\xfe\xdf\x41\xdf\x42\xdf\x43\xdf\x44\xdf\x45\xdf\x46\xdf\x47\xdf\x48\xdf\x49\xdf\x4a\xdf\x4b\xdf\x4c\xdf\x4d\xdf\x4e\xdf\x4f\xdf\x50\xdf\x51\xdf\x52", /* 4000 */ "\xdf\x53\xdf\x54\xdf\x55\xdf\x56\xdf\x57\xdf\x58\xdf\x59\xdf\x5a\xdf\x5b\xdf\x5c\xdf\x5d\xdf\x5e\xdf\x5f\xdf\x60\xdf\x61\xdf\x62\xdf\x63\xdf\x64\xdf\x65\xdf\x66\xdf\x67\xdf\x68\xdf\x69\xdf\x6a\xdf\x6b\xdf\x6c\xdf\x6d\xdf\x6e\xdf\x6f\xdf\x70\xdf\x71\xdf\x72\xdf\x73\xdf\x74\xdf\x75\xdf\x76\xdf\x77\xdf\x78\xdf\x79\xdf\x7a\xdf\x7b\xdf\x7c\xdf\x7d\xdf\x7e\xdf\x7f\xdf\x80\xdf\x81\xdf\x82\xdf\x83\xdf\x84\xdf\x85\xdf\x86\xdf\x87\xdf\x88\xdf\x89\xdf\x8a\xdf\x8b\xdf\x8c\xdf\x8d\xdf\x8e\xdf\x8f\xdf\x90\xdf\x91\xdf\x92\xdf\x93\xdf\x94\xdf\x95\xdf\x96\xdf\x97\xdf\x98\xdf\x99\xdf\x9a\xdf\x9b\xdf\x9c\xdf\x9d\xdf\x9e\xdf\x9f\xdf\xa0\xdf\xa1\xdf\xa2\xdf\xa3\xdf\xa4\xdf\xa5\xdf\xa6\xdf\xa7\xdf\xa8\xce\x75\xdf\xa9\xdf\xaa\xdf\xab\xdf\xac\xdf\xad\xdf\xae\xdf\xaf\xdf\xb0\xdf\xb1\xdf\xb2\xdf\xb3\xdf\xb4\xdf\xb5\xdf\xb6\xdf\xb7\xdf\xb8\xdf\xb9\xdf\xba\xdf\xbb\xdf\xbc\xdf\xbd\xdf\xbe\xdf\xbf\xdf\xc0\xdf\xc1\xdf\xc2\xdf\xc3\xdf\xc4\xdf\xc5\xdf\xc6\xdf\xc7\xdf\xc8\xdf\xc9\xdf\xca\xdf\xcb\xdf\xcc\xdf\xcd\xdf\xce\xdf\xcf\xdf\xd0\xdf\xd1", /* 4080 */ "\xdf\xd2\xdf\xd3\xdf\xd4\xdf\xd5\xdf\xd6\xdf\xd7\xdf\xd8\xdf\xd9\xdf\xda\xdf\xdb\xdf\xdc\xdf\xdd\xdf\xde\xdf\xdf\xdf\xe0\xdf\xe1\xdf\xe2\xdf\xe3\xdf\xe4\xdf\xe5\xdf\xe6\xdf\xe7\xdf\xe8\xdf\xe9\xdf\xea\xdf\xeb\xdf\xec\xdf\xed\xdf\xee\xdf\xef\xdf\xf0\xdf\xf1\xdf\xf2\xdf\xf3\xdf\xf4\xdf\xf5\xdf\xf6\xdf\xf7\xdf\xf8\xdf\xf9\xdf\xfa\xdf\xfb\xdf\xfc\xdf\xfd\xdf\xfe\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93", /* 4100 */ "\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xce\x76\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54", /* 4180 */ "\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4", /* 4200 */ "\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96", /* 4280 */ "\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58", /* 4300 */ "\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xce\x78\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7", /* 4380 */ "\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xce\x7e\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xce\x7d\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xce\x81\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96", /* 4400 */ "\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58", /* 4480 */ "\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xce\x82\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7", /* 4500 */ "\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99", /* 4580 */ "\xe6\x9a\xe6\x9b\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b", /* 4600 */ "\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\xe7\x66\xe7\x67\xe7\x68\xe7\x69\xe7\x6a\xe7\x6b\xe7\x6c\xe7\x6d\xe7\x6e\xe7\x6f\xe7\x70\xe7\x71\xe7\x72\xe7\x73\xe7\x74\xe7\x75\xe7\x76\xe7\x77\xe7\x78\xe7\x79\xe7\x7a\xe7\x7b\xe7\x7c\xe7\x7d\xe7\x7e\xe7\x7f\xe7\x80\xe7\x81\xe7\x82\xe7\x83\xe7\x84\xe7\x85\xe7\x86\xe7\x87\xe7\x88\xe7\x89\xe7\x8a\xe7\x8b\xe7\x8c\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\xe7\x97\xe7\x98\xe7\x99\xe7\x9a\xe7\x9b\xe7\x9c\xe7\x9d\xe7\x9e\xe7\x9f\xe7\xa0\xe7\xa1\xe7\xa2\xe7\xa3\xe7\xa4\xe7\xa5\xe7\xa6\xe7\xa7\xce\x84\xe7\xa8\xe7\xa9\xe7\xaa\xe7\xab\xe7\xac\xe7\xad\xe7\xae\xe7\xaf\xe7\xb0\xe7\xb1\xe7\xb2\xe7\xb3\xe7\xb4\xe7\xb5\xe7\xb6\xe7\xb7\xe7\xb8\xe7\xb9\xe7\xba\xe7\xbb\xce\x83\xe7\xbc\xe7\xbd\xe7\xbe\xe7\xbf\xe7\xc0\xe7\xc1\xe7\xc2\xe7\xc3\xe7\xc4\xe7\xc5\xe7\xc6\xe7\xc7\xe7\xc8\xe7\xc9\xe7\xca\xe7\xcb\xe7\xcc\xe7\xcd\xe7\xce\xe7\xcf\xe7\xd0\xe7\xd1\xe7\xd2\xe7\xd3\xe7\xd4\xe7\xd5\xe7\xd6\xe7\xd7\xe7\xd8\xe7\xd9", /* 4680 */ "\xe7\xda\xe7\xdb\xe7\xdc\xe7\xdd\xe7\xde\xe7\xdf\xe7\xe0\xe7\xe1\xe7\xe2\xe7\xe3\xe7\xe4\xe7\xe5\xe7\xe6\xe7\xe7\xe7\xe8\xe7\xe9\xe7\xea\xe7\xeb\xe7\xec\xe7\xed\xe7\xee\xe7\xef\xe7\xf0\xe7\xf1\xe7\xf2\xe7\xf3\xe7\xf4\xe7\xf5\xe7\xf6\xe7\xf7\xe7\xf8\xe7\xf9\xe7\xfa\xe7\xfb\xe7\xfc\xe7\xfd\xe7\xfe\xe8\x41\xe8\x42\xe8\x43\xe8\x44\xe8\x45\xe8\x46\xe8\x47\xe8\x48\xe8\x49\xe8\x4a\xe8\x4b\xe8\x4c\xe8\x4d\xe8\x4e\xe8\x4f\xe8\x50\xe8\x51\xe8\x52\xe8\x53\xe8\x54\xe8\x55\xe8\x56\xe8\x57\xe8\x58\xe8\x59\xe8\x5a\xe8\x5b\xe8\x5c\xe8\x5d\xe8\x5e\xe8\x5f\xe8\x60\xe8\x61\xe8\x62\xe8\x63\xe8\x64\xe8\x65\xe8\x66\xe8\x67\xe8\x68\xe8\x69\xe8\x6a\xe8\x6b\xe8\x6c\xe8\x6d\xe8\x6e\xe8\x6f\xe8\x70\xe8\x71\xe8\x72\xe8\x73\xe8\x74\xe8\x75\xe8\x76\xe8\x77\xe8\x78\xe8\x79\xe8\x7a\xe8\x7b\xe8\x7c\xe8\x7d\xe8\x7e\xe8\x7f\xe8\x80\xe8\x81\xe8\x82\xe8\x83\xe8\x84\xe8\x85\xe8\x86\xe8\x87\xe8\x88\xe8\x89\xe8\x8a\xe8\x8b\xe8\x8c\xe8\x8d\xe8\x8e\xe8\x8f\xe8\x90\xe8\x91\xe8\x92\xe8\x93\xe8\x94\xe8\x95\xe8\x96\xe8\x97\xe8\x98\xe8\x99\xe8\x9a\xe8\x9b", /* 4700 */ "\xe8\x9c\xe8\x9d\xe8\x9e\xe8\x9f\xe8\xa0\xe8\xa1\xe8\xa2\xe8\xa3\xe8\xa4\xe8\xa5\xe8\xa6\xe8\xa7\xe8\xa8\xe8\xa9\xe8\xaa\xe8\xab\xe8\xac\xe8\xad\xe8\xae\xe8\xaf\xe8\xb0\xe8\xb1\xe8\xb2\xe8\xb3\xe8\xb4\xe8\xb5\xe8\xb6\xe8\xb7\xe8\xb8\xe8\xb9\xe8\xba\xe8\xbb\xe8\xbc\xe8\xbd\xe8\xbe\xce\x86\xe8\xbf\xe8\xc0\xe8\xc1\xe8\xc2\xe8\xc3\xce\x87\xe8\xc4\xe8\xc5\xe8\xc6\xe8\xc7\xe8\xc8\xe8\xc9\xe8\xca\xe8\xcb\xe8\xcc\xe8\xcd\xe8\xce\xe8\xcf\xe8\xd0\xe8\xd1\xe8\xd2\xe8\xd3\xe8\xd4\xe8\xd5\xe8\xd6\xe8\xd7\xe8\xd8\xe8\xd9\xe8\xda\xe8\xdb\xe8\xdc\xe8\xdd\xe8\xde\xe8\xdf\xe8\xe0\xe8\xe1\xe8\xe2\xe8\xe3\xe8\xe4\xe8\xe5\xe8\xe6\xe8\xe7\xe8\xe8\xe8\xe9\xe8\xea\xe8\xeb\xe8\xec\xe8\xed\xe8\xee\xe8\xef\xe8\xf0\xe8\xf1\xe8\xf2\xe8\xf3\xe8\xf4\xe8\xf5\xe8\xf6\xe8\xf7\xe8\xf8\xe8\xf9\xe8\xfa\xe8\xfb\xe8\xfc\xe8\xfd\xe8\xfe\xe9\x41\xe9\x42\xe9\x43\xe9\x44\xe9\x45\xe9\x46\xe9\x47\xe9\x48\xe9\x49\xe9\x4a\xe9\x4b\xe9\x4c\xe9\x4d\xe9\x4e\xe9\x4f\xe9\x50\xe9\x51\xe9\x52\xe9\x53\xe9\x54\xe9\x55\xe9\x56\xe9\x57\xce\x88\xe9\x58\xe9\x59\xe9\x5a", /* 4780 */ "\xe9\x5b\xe9\x5c\xe9\x5d\xe9\x5e\xe9\x5f\xe9\x60\xe9\x61\xe9\x62\xe9\x63\xe9\x64\xe9\x65\xe9\x66\xe9\x67\xce\x89\xe9\x68\xe9\x69\xe9\x6a\xe9\x6b\xe9\x6c\xe9\x6d\xe9\x6e\xe9\x6f\xe9\x70\xe9\x71\xe9\x72\xe9\x73\xe9\x74\xe9\x75\xe9\x76\xe9\x77\xe9\x78\xe9\x79\xe9\x7a\xe9\x7b\xe9\x7c\xe9\x7d\xe9\x7e\xe9\x7f\xe9\x80\xe9\x81\xe9\x82\xe9\x83\xe9\x84\xe9\x85\xe9\x86\xe9\x87\xe9\x88\xe9\x89\xe9\x8a\xe9\x8b\xe9\x8c\xe9\x8d\xe9\x8e\xe9\x8f\xe9\x90\xe9\x91\xe9\x92\xe9\x93\xe9\x94\xe9\x95\xe9\x96\xe9\x97\xe9\x98\xe9\x99\xe9\x9a\xe9\x9b\xe9\x9c\xe9\x9d\xe9\x9e\xe9\x9f\xe9\xa0\xe9\xa1\xe9\xa2\xe9\xa3\xe9\xa4\xe9\xa5\xe9\xa6\xe9\xa7\xe9\xa8\xe9\xa9\xe9\xaa\xe9\xab\xe9\xac\xe9\xad\xe9\xae\xe9\xaf\xe9\xb0\xe9\xb1\xe9\xb2\xe9\xb3\xe9\xb4\xe9\xb5\xe9\xb6\xe9\xb7\xe9\xb8\xe9\xb9\xe9\xba\xe9\xbb\xe9\xbc\xe9\xbd\xe9\xbe\xe9\xbf\xe9\xc0\xe9\xc1\xe9\xc2\xe9\xc3\xe9\xc4\xe9\xc5\xe9\xc6\xe9\xc7\xe9\xc8\xe9\xc9\xe9\xca\xe9\xcb\xe9\xcc\xe9\xcd\xe9\xce\xe9\xcf\xe9\xd0\xe9\xd1\xe9\xd2\xe9\xd3\xe9\xd4\xe9\xd5\xe9\xd6\xe9\xd7\xe9\xd8\xe9\xd9", /* 4800 */ "\xe9\xda\xe9\xdb\xe9\xdc\xe9\xdd\xe9\xde\xe9\xdf\xe9\xe0\xe9\xe1\xe9\xe2\xe9\xe3\xe9\xe4\xe9\xe5\xe9\xe6\xe9\xe7\xe9\xe8\xe9\xe9\xe9\xea\xe9\xeb\xe9\xec\xe9\xed\xe9\xee\xe9\xef\xe9\xf0\xe9\xf1\xe9\xf2\xe9\xf3\xe9\xf4\xe9\xf5\xe9\xf6\xe9\xf7\xe9\xf8\xe9\xf9\xe9\xfa\xe9\xfb\xe9\xfc\xe9\xfd\xe9\xfe\xea\x41\xea\x42\xea\x43\xea\x44\xea\x45\xea\x46\xea\x47\xea\x48\xea\x49\xea\x4a\xea\x4b\xea\x4c\xea\x4d\xea\x4e\xea\x4f\xea\x50\xea\x51\xea\x52\xea\x53\xea\x54\xea\x55\xea\x56\xea\x57\xea\x58\xea\x59\xea\x5a\xea\x5b\xea\x5c\xea\x5d\xea\x5e\xea\x5f\xea\x60\xea\x61\xea\x62\xea\x63\xea\x64\xea\x65\xea\x66\xea\x67\xea\x68\xea\x69\xea\x6a\xea\x6b\xea\x6c\xea\x6d\xea\x6e\xea\x6f\xea\x70\xea\x71\xea\x72\xea\x73\xea\x74\xea\x75\xea\x76\xea\x77\xea\x78\xea\x79\xea\x7a\xea\x7b\xea\x7c\xea\x7d\xea\x7e\xea\x7f\xea\x80\xea\x81\xea\x82\xea\x83\xea\x84\xea\x85\xea\x86\xea\x87\xea\x88\xea\x89\xea\x8a\xea\x8b\xea\x8c\xea\x8d\xea\x8e\xea\x8f\xea\x90\xea\x91\xea\x92\xea\x93\xea\x94\xea\x95\xea\x96\xea\x97\xea\x98\xea\x99\xea\x9a\xea\x9b", /* 4880 */ "\xea\x9c\xea\x9d\xea\x9e\xea\x9f\xea\xa0\xea\xa1\xea\xa2\xea\xa3\xea\xa4\xea\xa5\xea\xa6\xea\xa7\xea\xa8\xea\xa9\xea\xaa\xea\xab\xea\xac\xea\xad\xea\xae\xea\xaf\xea\xb0\xea\xb1\xea\xb2\xea\xb3\xea\xb4\xea\xb5\xea\xb6\xea\xb7\xea\xb8\xea\xb9\xea\xba\xea\xbb\xea\xbc\xea\xbd\xea\xbe\xea\xbf\xea\xc0\xea\xc1\xea\xc2\xea\xc3\xea\xc4\xea\xc5\xea\xc6\xea\xc7\xea\xc8\xea\xc9\xea\xca\xea\xcb\xea\xcc\xea\xcd\xea\xce\xea\xcf\xea\xd0\xea\xd1\xea\xd2\xea\xd3\xea\xd4\xea\xd5\xea\xd6\xea\xd7\xea\xd8\xea\xd9\xea\xda\xea\xdb\xea\xdc\xea\xdd\xea\xde\xea\xdf\xea\xe0\xea\xe1\xea\xe2\xea\xe3\xea\xe4\xea\xe5\xea\xe6\xea\xe7\xea\xe8\xea\xe9\xea\xea\xea\xeb\xea\xec\xea\xed\xea\xee\xea\xef\xea\xf0\xea\xf1\xea\xf2\xea\xf3\xea\xf4\xea\xf5\xea\xf6\xea\xf7\xea\xf8\xea\xf9\xea\xfa\xea\xfb\xea\xfc\xea\xfd\xea\xfe\xeb\x41\xeb\x42\xeb\x43\xeb\x44\xeb\x45\xeb\x46\xeb\x47\xeb\x48\xeb\x49\xeb\x4a\xeb\x4b\xeb\x4c\xeb\x4d\xeb\x4e\xeb\x4f\xeb\x50\xeb\x51\xeb\x52\xeb\x53\xeb\x54\xeb\x55\xeb\x56\xeb\x57\xeb\x58\xeb\x59\xeb\x5a\xeb\x5b\xeb\x5c\xeb\x5d", /* 4900 */ "\xeb\x5e\xeb\x5f\xeb\x60\xeb\x61\xeb\x62\xeb\x63\xeb\x64\xeb\x65\xeb\x66\xeb\x67\xeb\x68\xeb\x69\xeb\x6a\xeb\x6b\xeb\x6c\xeb\x6d\xeb\x6e\xeb\x6f\xeb\x70\xeb\x71\xeb\x72\xeb\x73\xeb\x74\xeb\x75\xeb\x76\xeb\x77\xeb\x78\xeb\x79\xeb\x7a\xeb\x7b\xeb\x7c\xeb\x7d\xeb\x7e\xeb\x7f\xeb\x80\xeb\x81\xeb\x82\xeb\x83\xeb\x84\xeb\x85\xeb\x86\xeb\x87\xeb\x88\xeb\x89\xeb\x8a\xeb\x8b\xeb\x8c\xeb\x8d\xeb\x8e\xeb\x8f\xeb\x90\xeb\x91\xeb\x92\xeb\x93\xeb\x94\xeb\x95\xeb\x96\xeb\x97\xeb\x98\xeb\x99\xeb\x9a\xeb\x9b\xeb\x9c\xeb\x9d\xeb\x9e\xeb\x9f\xeb\xa0\xeb\xa1\xeb\xa2\xeb\xa3\xeb\xa4\xce\x8b\xeb\xa5\xeb\xa6\xeb\xa7\xeb\xa8\xeb\xa9\xeb\xaa\xeb\xab\xeb\xac\xeb\xad\xeb\xae\xeb\xaf\xeb\xb0\xeb\xb1\xeb\xb2\xeb\xb3\xeb\xb4\xeb\xb5\xeb\xb6\xeb\xb7\xeb\xb8\xeb\xb9\xeb\xba\xeb\xbb\xeb\xbc\xeb\xbd\xeb\xbe\xeb\xbf\xeb\xc0\xeb\xc1\xeb\xc2\xeb\xc3\xeb\xc4\xeb\xc5\xeb\xc6\xeb\xc7\xeb\xc8\xeb\xc9\xeb\xca\xeb\xcb\xeb\xcc\xeb\xcd\xeb\xce\xeb\xcf\xeb\xd0\xeb\xd1\xeb\xd2\xeb\xd3\xeb\xd4\xeb\xd5\xeb\xd6\xce\x8c\xeb\xd7\xeb\xd8\xce\x8d\xeb\xd9\xeb\xda", /* 4980 */ "\xeb\xdb\xeb\xdc\xce\x8e\xce\x8f\xeb\xdd\xce\x90\xce\x91\xeb\xde\xeb\xdf\xeb\xe0\xeb\xe1\xeb\xe2\xeb\xe3\xeb\xe4\xeb\xe5\xeb\xe6\xeb\xe7\xeb\xe8\xeb\xe9\xeb\xea\xeb\xeb\xeb\xec\xeb\xed\xeb\xee\xeb\xef\xeb\xf0\xeb\xf1\xce\x93\xeb\xf2\xeb\xf3\xeb\xf4\xce\x92\xeb\xf5\xeb\xf6\xeb\xf7\xeb\xf8\xeb\xf9\xeb\xfa\xeb\xfb\xeb\xfc\xeb\xfd\xeb\xfe\xec\x41\xec\x42\xec\x43\xec\x44\xec\x45\xec\x46\xec\x47\xec\x48\xec\x49\xec\x4a\xec\x4b\xec\x4c\xce\x95\xce\x94\xec\x4d\xec\x4e\xec\x4f\xec\x50\xec\x51\xec\x52\xec\x53\xec\x54\xec\x55\xec\x56\xec\x57\xec\x58\xec\x59\xec\x5a\xec\x5b\xec\x5c\xec\x5d\xec\x5e\xec\x5f\xec\x60\xec\x61\xec\x62\xec\x63\xec\x64\xec\x65\xec\x66\xec\x67\xec\x68\xec\x69\xec\x6a\xec\x6b\xec\x6c\xec\x6d\xec\x6e\xec\x6f\xec\x70\xec\x71\xec\x72\xec\x73\xec\x74\xec\x75\xec\x76\xec\x77\xec\x78\xec\x79\xec\x7a\xec\x7b\xec\x7c\xec\x7d\xec\x7e\xec\x7f\xec\x80\xec\x81\xec\x82\xec\x83\xec\x84\xec\x85\xec\x86\xec\x87\xec\x88\xec\x89\xec\x8a\xec\x8b\xec\x8c\xec\x8d\xec\x8e\xec\x8f\xec\x90\xec\x91\xec\x92\xec\x93\xec\x94", /* 4a00 */ "\xec\x95\xec\x96\xec\x97\xec\x98\xec\x99\xec\x9a\xec\x9b\xec\x9c\xec\x9d\xec\x9e\xec\x9f\xec\xa0\xec\xa1\xec\xa2\xec\xa3\xec\xa4\xec\xa5\xec\xa6\xec\xa7\xec\xa8\xec\xa9\xec\xaa\xec\xab\xec\xac\xec\xad\xec\xae\xec\xaf\xec\xb0\xec\xb1\xec\xb2\xec\xb3\xec\xb4\xec\xb5\xec\xb6\xec\xb7\xec\xb8\xec\xb9\xec\xba\xec\xbb\xec\xbc\xec\xbd\xec\xbe\xec\xbf\xec\xc0\xec\xc1\xec\xc2\xec\xc3\xec\xc4\xec\xc5\xec\xc6\xec\xc7\xec\xc8\xec\xc9\xec\xca\xec\xcb\xec\xcc\xec\xcd\xec\xce\xec\xcf\xec\xd0\xec\xd1\xec\xd2\xec\xd3\xec\xd4\xec\xd5\xec\xd6\xec\xd7\xec\xd8\xec\xd9\xec\xda\xec\xdb\xec\xdc\xec\xdd\xec\xde\xec\xdf\xec\xe0\xec\xe1\xec\xe2\xec\xe3\xec\xe4\xec\xe5\xec\xe6\xec\xe7\xec\xe8\xec\xe9\xec\xea\xec\xeb\xec\xec\xec\xed\xec\xee\xec\xef\xec\xf0\xec\xf1\xec\xf2\xec\xf3\xec\xf4\xec\xf5\xec\xf6\xec\xf7\xec\xf8\xec\xf9\xec\xfa\xec\xfb\xec\xfc\xec\xfd\xec\xfe\xed\x41\xed\x42\xed\x43\xed\x44\xed\x45\xed\x46\xed\x47\xed\x48\xed\x49\xed\x4a\xed\x4b\xed\x4c\xed\x4d\xed\x4e\xed\x4f\xed\x50\xed\x51\xed\x52\xed\x53\xed\x54\xed\x55\xed\x56", /* 4a80 */ "\xed\x57\xed\x58\xed\x59\xed\x5a\xed\x5b\xed\x5c\xed\x5d\xed\x5e\xed\x5f\xed\x60\xed\x61\xed\x62\xed\x63\xed\x64\xed\x65\xed\x66\xed\x67\xed\x68\xed\x69\xed\x6a\xed\x6b\xed\x6c\xed\x6d\xed\x6e\xed\x6f\xed\x70\xed\x71\xed\x72\xed\x73\xed\x74\xed\x75\xed\x76\xed\x77\xed\x78\xed\x79\xed\x7a\xed\x7b\xed\x7c\xed\x7d\xed\x7e\xed\x7f\xed\x80\xed\x81\xed\x82\xed\x83\xed\x84\xed\x85\xed\x86\xed\x87\xed\x88\xed\x89\xed\x8a\xed\x8b\xed\x8c\xed\x8d\xed\x8e\xed\x8f\xed\x90\xed\x91\xed\x92\xed\x93\xed\x94\xed\x95\xed\x96\xed\x97\xed\x98\xed\x99\xed\x9a\xed\x9b\xed\x9c\xed\x9d\xed\x9e\xed\x9f\xed\xa0\xed\xa1\xed\xa2\xed\xa3\xed\xa4\xed\xa5\xed\xa6\xed\xa7\xed\xa8\xed\xa9\xed\xaa\xed\xab\xed\xac\xed\xad\xed\xae\xed\xaf\xed\xb0\xed\xb1\xed\xb2\xed\xb3\xed\xb4\xed\xb5\xed\xb6\xed\xb7\xed\xb8\xed\xb9\xed\xba\xed\xbb\xed\xbc\xed\xbd\xed\xbe\xed\xbf\xed\xc0\xed\xc1\xed\xc2\xed\xc3\xed\xc4\xed\xc5\xed\xc6\xed\xc7\xed\xc8\xed\xc9\xed\xca\xed\xcb\xed\xcc\xed\xcd\xed\xce\xed\xcf\xed\xd0\xed\xd1\xed\xd2\xed\xd3\xed\xd4\xed\xd5\xed\xd6", /* 4b00 */ "\xed\xd7\xed\xd8\xed\xd9\xed\xda\xed\xdb\xed\xdc\xed\xdd\xed\xde\xed\xdf\xed\xe0\xed\xe1\xed\xe2\xed\xe3\xed\xe4\xed\xe5\xed\xe6\xed\xe7\xed\xe8\xed\xe9\xed\xea\xed\xeb\xed\xec\xed\xed\xed\xee\xed\xef\xed\xf0\xed\xf1\xed\xf2\xed\xf3\xed\xf4\xed\xf5\xed\xf6\xed\xf7\xed\xf8\xed\xf9\xed\xfa\xed\xfb\xed\xfc\xed\xfd\xed\xfe\xee\x41\xee\x42\xee\x43\xee\x44\xee\x45\xee\x46\xee\x47\xee\x48\xee\x49\xee\x4a\xee\x4b\xee\x4c\xee\x4d\xee\x4e\xee\x4f\xee\x50\xee\x51\xee\x52\xee\x53\xee\x54\xee\x55\xee\x56\xee\x57\xee\x58\xee\x59\xee\x5a\xee\x5b\xee\x5c\xee\x5d\xee\x5e\xee\x5f\xee\x60\xee\x61\xee\x62\xee\x63\xee\x64\xee\x65\xee\x66\xee\x67\xee\x68\xee\x69\xee\x6a\xee\x6b\xee\x6c\xee\x6d\xee\x6e\xee\x6f\xee\x70\xee\x71\xee\x72\xee\x73\xee\x74\xee\x75\xee\x76\xee\x77\xee\x78\xee\x79\xee\x7a\xee\x7b\xee\x7c\xee\x7d\xee\x7e\xee\x7f\xee\x80\xee\x81\xee\x82\xee\x83\xee\x84\xee\x85\xee\x86\xee\x87\xee\x88\xee\x89\xee\x8a\xee\x8b\xee\x8c\xee\x8d\xee\x8e\xee\x8f\xee\x90\xee\x91\xee\x92\xee\x93\xee\x94\xee\x95\xee\x96\xee\x97\xee\x98", /* 4b80 */ "\xee\x99\xee\x9a\xee\x9b\xee\x9c\xee\x9d\xee\x9e\xee\x9f\xee\xa0\xee\xa1\xee\xa2\xee\xa3\xee\xa4\xee\xa5\xee\xa6\xee\xa7\xee\xa8\xee\xa9\xee\xaa\xee\xab\xee\xac\xee\xad\xee\xae\xee\xaf\xee\xb0\xee\xb1\xee\xb2\xee\xb3\xee\xb4\xee\xb5\xee\xb6\xee\xb7\xee\xb8\xee\xb9\xee\xba\xee\xbb\xee\xbc\xee\xbd\xee\xbe\xee\xbf\xee\xc0\xee\xc1\xee\xc2\xee\xc3\xee\xc4\xee\xc5\xee\xc6\xee\xc7\xee\xc8\xee\xc9\xee\xca\xee\xcb\xee\xcc\xee\xcd\xee\xce\xee\xcf\xee\xd0\xee\xd1\xee\xd2\xee\xd3\xee\xd4\xee\xd5\xee\xd6\xee\xd7\xee\xd8\xee\xd9\xee\xda\xee\xdb\xee\xdc\xee\xdd\xee\xde\xee\xdf\xee\xe0\xee\xe1\xee\xe2\xee\xe3\xee\xe4\xee\xe5\xee\xe6\xee\xe7\xee\xe8\xee\xe9\xee\xea\xee\xeb\xee\xec\xee\xed\xee\xee\xee\xef\xee\xf0\xee\xf1\xee\xf2\xee\xf3\xee\xf4\xee\xf5\xee\xf6\xee\xf7\xee\xf8\xee\xf9\xee\xfa\xee\xfb\xee\xfc\xee\xfd\xee\xfe\xef\x41\xef\x42\xef\x43\xef\x44\xef\x45\xef\x46\xef\x47\xef\x48\xef\x49\xef\x4a\xef\x4b\xef\x4c\xef\x4d\xef\x4e\xef\x4f\xef\x50\xef\x51\xef\x52\xef\x53\xef\x54\xef\x55\xef\x56\xef\x57\xef\x58\xef\x59\xef\x5a", /* 4c00 */ "\xef\x5b\xef\x5c\xef\x5d\xef\x5e\xef\x5f\xef\x60\xef\x61\xef\x62\xef\x63\xef\x64\xef\x65\xef\x66\xef\x67\xef\x68\xef\x69\xef\x6a\xef\x6b\xef\x6c\xef\x6d\xef\x6e\xef\x6f\xef\x70\xef\x71\xef\x72\xef\x73\xef\x74\xef\x75\xef\x76\xef\x77\xef\x78\xef\x79\xef\x7a\xef\x7b\xef\x7c\xef\x7d\xef\x7e\xef\x7f\xef\x80\xef\x81\xef\x82\xef\x83\xef\x84\xef\x85\xef\x86\xef\x87\xef\x88\xef\x89\xef\x8a\xef\x8b\xef\x8c\xef\x8d\xef\x8e\xef\x8f\xef\x90\xef\x91\xef\x92\xef\x93\xef\x94\xef\x95\xef\x96\xef\x97\xef\x98\xef\x99\xef\x9a\xef\x9b\xef\x9c\xef\x9d\xef\x9e\xef\x9f\xef\xa0\xef\xa1\xef\xa2\xef\xa3\xef\xa4\xef\xa5\xef\xa6\xef\xa7\xef\xa8\xef\xa9\xef\xaa\xef\xab\xef\xac\xef\xad\xef\xae\xef\xaf\xef\xb0\xef\xb1\xef\xb2\xef\xb3\xef\xb4\xef\xb5\xef\xb6\xef\xb7\xef\xb8\xef\xb9\xef\xba\xef\xbb\xef\xbc\xef\xbd\xef\xbe\xef\xbf\xef\xc0\xef\xc1\xef\xc2\xef\xc3\xef\xc4\xef\xc5\xef\xc6\xef\xc7\xef\xc8\xef\xc9\xef\xca\xef\xcb\xef\xcc\xef\xcd\xef\xce\xef\xcf\xef\xd0\xef\xd1\xce\x9c\xef\xd2\xef\xd3\xef\xd4\xef\xd5\xef\xd6\xef\xd7\xef\xd8\xef\xd9", /* 4c80 */ "\xef\xda\xef\xdb\xef\xdc\xef\xdd\xef\xde\xef\xdf\xef\xe0\xef\xe1\xef\xe2\xef\xe3\xef\xe4\xef\xe5\xef\xe6\xef\xe7\xef\xe8\xef\xe9\xef\xea\xef\xeb\xef\xec\xef\xed\xef\xee\xef\xef\xef\xf0\xef\xf1\xef\xf2\xef\xf3\xef\xf4\xef\xf5\xef\xf6\xef\xf7\xef\xf8\xce\x99\xce\x9a\xce\x9b\xce\x9d\xce\x98\xef\xf9\xef\xfa\xef\xfb\xef\xfc\xef\xfd\xef\xfe\xf6\x41\xf6\x42\xf6\x43\xf6\x44\xf6\x45\xf6\x46\xf6\x47\xf6\x48\xf6\x49\xf6\x4a\xf6\x4b\xf6\x4c\xf6\x4d\xf6\x4e\xf6\x4f\xf6\x50\xf6\x51\xf6\x52\xf6\x53\xf6\x54\xf6\x55\xf6\x56\xf6\x57\xf6\x58\xf6\x59\xf6\x5a\xf6\x5b\xf6\x5c\xf6\x5d\xf6\x5e\xf6\x5f\xf6\x60\xf6\x61\xf6\x62\xf6\x63\xf6\x64\xf6\x65\xf6\x66\xf6\x67\xf6\x68\xf6\x69\xf6\x6a\xf6\x6b\xf6\x6c\xf6\x6d\xf6\x6e\xf6\x6f\xf6\x70\xf6\x71\xf6\x72\xf6\x73\xf6\x74\xf6\x75\xf6\x76\xf6\x77\xf6\x78\xf6\x79\xf6\x7a\xf6\x7b\xf6\x7c\xf6\x7d\xf6\x7e\xf6\x7f\xf6\x80\xf6\x81\xf6\x82\xf6\x83\xf6\x84\xf6\x85\xf6\x86\xf6\x87\xf6\x88\xf6\x89\xf6\x8a\xf6\x8b\xf6\x8c\xf6\x8d\xf6\x8e\xf6\x8f\xf6\x90\xf6\x91\xf6\x92\xf6\x93\xf6\x94\xf6\x95\xf6\x96", /* 4d00 */ "\xf6\x97\xf6\x98\xf6\x99\xf6\x9a\xf6\x9b\xf6\x9c\xf6\x9d\xf6\x9e\xf6\x9f\xf6\xa0\xf6\xa1\xf6\xa2\xf6\xa3\xf6\xa4\xf6\xa5\xf6\xa6\xf6\xa7\xf6\xa8\xf6\xa9\xce\x9e\xce\x9f\xce\xa0\xce\xa1\xce\xa2\xce\xa3\xce\xa4\xf6\xaa\xf6\xab\xf6\xac\xf6\xad\xf6\xae\xf6\xaf\xf6\xb0\xf6\xb1\xf6\xb2\xf6\xb3\xf6\xb4\xf6\xb5\xf6\xb6\xf6\xb7\xf6\xb8\xf6\xb9\xf6\xba\xf6\xbb\xf6\xbc\xf6\xbd\xf6\xbe\xf6\xbf\xf6\xc0\xf6\xc1\xf6\xc2\xf6\xc3\xf6\xc4\xf6\xc5\xf6\xc6\xf6\xc7\xf6\xc8\xf6\xc9\xf6\xca\xf6\xcb\xf6\xcc\xf6\xcd\xf6\xce\xf6\xcf\xf6\xd0\xf6\xd1\xf6\xd2\xf6\xd3\xf6\xd4\xf6\xd5\xf6\xd6\xf6\xd7\xf6\xd8\xf6\xd9\xf6\xda\xf6\xdb\xf6\xdc\xf6\xdd\xf6\xde\xf6\xdf\xf6\xe0\xf6\xe1\xf6\xe2\xf6\xe3\xf6\xe4\xf6\xe5\xf6\xe6\xf6\xe7\xf6\xe8\xf6\xe9\xf6\xea\xf6\xeb\xf6\xec\xf6\xed\xf6\xee\xf6\xef\xf6\xf0\xf6\xf1\xf6\xf2\xf6\xf3\xf6\xf4\xf6\xf5\xf6\xf6\xf6\xf7\xf6\xf8\xf6\xf9\xf6\xfa\xf6\xfb\xf6\xfc\xf6\xfd\xf6\xfe\xf7\x41\xf7\x42\xf7\x43\xf7\x44\xf7\x45\xf7\x46\xf7\x47\xf7\x48\xf7\x49\xf7\x4a\xf7\x4b\xf7\x4c\xf7\x4d\xf7\x4e\xf7\x4f\xf7\x50\xf7\x51", /* 4d80 */ "\xf7\x52\xf7\x53\xf7\x54\xf7\x55\xf7\x56\xf7\x57\xf7\x58\xf7\x59\xf7\x5a\xf7\x5b\xf7\x5c\xf7\x5d\xf7\x5e\xf7\x5f\xf7\x60\xf7\x61\xf7\x62\xf7\x63\xf7\x64\xf7\x65\xf7\x66\xf7\x67\xf7\x68\xf7\x69\xf7\x6a\xf7\x6b\xf7\x6c\xf7\x6d\xf7\x6e\xf7\x6f\xf7\x70\xf7\x71\xf7\x72\xf7\x73\xf7\x74\xf7\x75\xf7\x76\xf7\x77\xf7\x78\xf7\x79\xf7\x7a\xf7\x7b\xf7\x7c\xf7\x7d\xf7\x7e\xf7\x7f\xce\xa5\xf7\x80\xf7\x81\xf7\x82\xf7\x83\xf7\x84\xf7\x85\xf7\x86\xf7\x87\xf7\x88\xf7\x89\xf7\x8a\xf7\x8b\xf7\x8c\xf7\x8d\xf7\x8e\xf7\x8f\xf7\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4e00 */ "\x59\xba\x4b\xa0\x81\x41\x53\xde\x81\x42\x81\x43\x81\x44\x57\x93\x5b\x69\x54\xfc\x55\x6f\x58\x62\x5c\xa1\x49\xba\x5a\x8c\x81\x45\x5c\xa3\x4a\x94\x81\x46\x5c\x48\x54\x72\x5c\xa6\x55\xbf\x81\x47\x54\x91\x49\x9c\x59\xb4\x4a\xd3\x4b\xaa\x56\x5f\x5c\xa8\x81\x48\x81\x49\x81\x4a\x4b\xa9\x81\x4b\x51\x5d\x59\x6f\x81\x4c\x55\x45\x5c\xac\x81\x4d\x4c\xf5\x59\x5e\x62\x7c\x5b\xcf\x81\x4e\x81\x4f\x4c\x82\x81\x50\x4a\xad\x81\x51\x51\x79\x81\x52\x5c\xbb\x81\x53\x57\x89\x4b\x44\x57\xa9\x5b\xf6\x81\x54\x50\xf5\x4f\xd8\x5c\xae\x81\x55\x81\x56\x81\x57\x52\xca\x81\x58\x4f\xc2\x81\x59\x5c\xb0\x52\x54\x59\xe4\x81\x5a\x5b\xad\x57\xd9\x5b\x47\x4d\xf4\x4c\x46\x50\xd5\x81\x5b\x53\xb8\x53\x72\x54\x67\x81\x5c\x4d\x74\x81\x5d\x4a\x6b\x59\xd1\x81\x5e\x81\x5f\x5c\xbe\x4f\xc4\x53\xf1\x59\xb1\x58\x50\x58\x88\x81\x60\x81\x61\x81\x62\x81\x63\x55\xe8\x81\x64\x81\x65\x5c\xbf\x81\x66\x81\x67\x81\x68\x81\x69\x81\x6a\x81\x6b\x51\xf1\x51\xd1\x81\x6c\x54\xe8\x81\x6d\x81\x6e\x81\x6f\x81\x70\x81\x71\x81\x72\x81\x73\x81\x74\x81\x75\x81\x76\x54\x4c\x81\x77", /* 4e80 */ "\x81\x78\x81\x79\x81\x7a\x81\x7b\x81\x7c\x81\x7d\x51\x6b\x81\x7e\x5a\x89\x5b\x9a\x81\x7f\x55\xc1\x4b\xfd\x5c\xa0\x5a\x7a\x50\x98\x81\x81\x5a\xc5\x4e\x45\x5c\xc0\x57\xe4\x4f\xad\x81\x82\x81\x83\x5c\xa7\x81\x84\x59\x67\x58\xa8\x81\x85\x81\x86\x81\x87\x5c\xbc\x5d\x90\x57\x97\x50\x5a\x81\x88\x4f\x5b\x4d\xa4\x59\xdf\x49\xf9\x4d\xdf\x52\xb5\x81\x89\x58\x8e\x4f\xa8\x57\x44\x51\x61\x81\x8a\x81\x8b\x81\x8c\x54\x77\x5d\x92\x81\x8d\x5d\x95\x81\x8e\x81\x8f\x81\x90\x81\x91\x54\xca\x5c\xe8\x81\x92\x81\x93\x81\x94\x59\xd9\x55\xb1\x54\xc9\x5c\xeb\x5c\xe9\x5c\xc5\x4f\x97\x53\xcc\x4a\x91\x81\x95\x5c\xea\x4f\x92\x4f\x8a\x81\x96\x54\xd3\x4a\xd2\x81\x97\x81\x98\x51\xd7\x81\x99\x49\xd5\x5c\x70\x55\xca\x56\x9c\x5b\x6c\x4c\xb5\x58\x69\x81\x9a\x81\x9b\x81\x9c\x5d\x7a\x5c\xef\x54\x4a\x81\x9d\x5c\xed\x81\x9e\x4a\xf9\x51\x8f\x59\xd3\x81\x9f\x81\xa0\x5c\xec\x81\xa1\x59\xc6\x5c\xee\x52\x67\x81\xa2\x81\xa3\x81\xa4\x59\x97\x81\xa5\x5b\xd8\x5c\xf1\x81\xa6\x5c\xf4\x4e\xfd\x4e\xda\x81\xa7\x81\xa8\x81\xa9\x54\xcd\x81\xaa\x4c\x7d\x81\xab\x4c\x62", /* 4f00 */ "\x81\xac\x53\xf2\x81\xad\x81\xae\x81\xaf\x81\xb0\x81\xb1\x81\xb2\x81\xb3\x5c\xf7\x59\xc0\x81\xb4\x81\xb5\x57\xe8\x4e\xbe\x4c\x9d\x4c\x45\x58\xdc\x81\xb6\x81\xb7\x81\xb8\x81\xb9\x81\xba\x5b\xd9\x5a\x65\x4e\x90\x4e\x82\x5c\xf0\x81\xbb\x81\xbc\x55\x41\x57\xaf\x4a\xaa\x81\xbd\x5c\xf2\x81\xbe\x55\x6b\x5c\xf5\x51\xd6\x5c\xf6\x81\xbf\x81\xc0\x57\xb0\x5c\xf8\x81\xc1\x81\xc2\x81\xc3\x49\xad\x4d\x60\x81\xc4\x5d\x43\x81\xc5\x48\xe8\x81\xc6\x51\x87\x81\xc7\x55\x8d\x81\xc8\x56\x65\x81\xc9\x56\x66\x5d\x44\x81\xca\x81\xcb\x81\xcc\x81\xcd\x81\xce\x4b\x89\x81\xcf\x81\xd0\x4b\x4b\x81\xd1\x81\xd2\x81\xd3\x81\xd4\x81\xd5\x81\xd6\x57\xba\x4b\x6d\x5c\x41\x5c\x95\x5a\x73\x81\xd7\x56\xe4\x81\xd8\x4d\xcd\x81\xd9\x5d\x42\x5d\x7c\x5a\x81\x5c\xfc\x4c\x91\x5c\x98\x5c\xfd\x5c\xf9\x5d\x41\x52\xe2\x81\xda\x81\xdb\x5a\x56\x5c\xf3\x5d\x7d\x81\xdc\x5c\xfa\x81\xdd\x53\x86\x81\xde\x81\xdf\x50\xcf\x81\xe0\x81\xe1\x59\x91\x48\xda\x81\xe2\x81\xe3\x4e\xd0\x5d\x46\x81\xe4\x5d\x45\x81\xe5\x81\xe6\x81\xe7\x81\xe8\x5d\x4c\x5d\x4e\x81\xe9\x5d\x4b\x55\xb8", /* 4f80 */ "\x81\xea\x81\xeb\x81\xec\x5d\x49\x5b\xb5\x81\xed\x81\xee\x81\xef\x4a\x7e\x5d\x48\x81\xf0\x50\xfc\x81\xf1\x55\xcb\x81\xf2\x5d\x4a\x81\xf3\x5d\x47\x81\xf4\x81\xf5\x5d\x50\x81\xf6\x81\xf7\x4b\xb0\x81\xf8\x81\xf9\x81\xfa\x4d\x49\x81\xfb\x59\xbf\x81\xfc\x81\xfd\x58\x60\x82\x41\x82\x42\x51\xc1\x82\x43\x4f\x64\x5b\x8d\x49\xdf\x54\x68\x50\x8c\x5d\x4d\x82\x44\x5d\x4f\x82\x45\x57\xe9\x4d\xed\x82\x46\x82\x47\x82\x48\x82\x49\x82\x4a\x54\x76\x82\x4b\x82\x4c\x82\x4d\x82\x4e\x82\x4f\x82\x50\x82\x51\x82\x52\x82\x53\x49\x84\x82\x54\x82\x55\x82\x56\x4a\xd8\x4b\xec\x5d\x54\x82\x57\x82\x58\x82\x59\x82\x5a\x50\x41\x82\x5b\x82\x5c\x82\x5d\x5d\x7e\x54\x6e\x50\xfd\x5d\x58\x82\x5e\x82\x5f\x82\x60\x82\x61\x82\x62\x56\x77\x4c\x9e\x82\x63\x5d\x55\x82\x64\x5d\x57\x49\x43\x5a\x82\x5d\x59\x82\x65\x58\xc4\x82\x66\x5d\x56\x82\x67\x82\x68\x5d\x51\x82\x69\x5d\x52\x51\x49\x5d\x53\x82\x6a\x82\x6b\x4e\xf2\x58\xdd\x4c\xa8\x82\x6c\x4f\xe2\x82\x6d\x5d\x5d\x82\x6e\x82\x6f\x82\x70\x82\x71\x5d\x5a\x82\x72\x48\xb2\x82\x73\x82\x74\x82\x75\x5d\x62\x82\x76", /* 5000 */ "\x82\x77\x82\x78\x82\x79\x82\x7a\x82\x7b\x82\x7c\x82\x7d\x82\x7e\x82\x7f\x82\x81\x82\x82\x82\x83\x5d\x64\x49\x56\x82\x84\x5d\x5f\x82\x85\x82\x86\x4b\x59\x82\x87\x4f\xf2\x82\x88\x82\x89\x82\x8a\x56\xc7\x4d\xf1\x59\xcf\x82\x8b\x5d\x63\x82\x8c\x82\x8d\x4f\x89\x82\x8e\x4a\x4b\x82\x8f\x82\x90\x82\x91\x5d\x65\x4f\xea\x82\x92\x5d\x66\x5d\x5b\x52\xde\x82\x93\x5d\x5e\x5d\x61\x5d\x60\x82\x94\x82\x95\x82\x96\x82\x97\x82\x98\x82\x99\x82\x9a\x82\x9b\x82\x9c\x82\x9d\x82\x9e\x5b\x4e\x82\x9f\x5b\xb4\x82\xa0\x54\x84\x82\xa1\x82\xa2\x82\xa3\x82\xa4\x5d\x68\x82\xa5\x82\xa6\x82\xa7\x4e\xd8\x5d\x6a\x82\xa8\x82\xa9\x82\xaa\x5d\x5c\x82\xab\x5d\x6b\x53\xaa\x82\xac\x82\xad\x82\xae\x82\xaf\x82\xb0\x5d\x69\x82\xb1\x82\xb2\x82\xb3\x82\xb4\x5c\x97\x82\xb5\x57\x43\x82\xb6\x82\xb7\x82\xb8\x82\xb9\x82\xba\x82\xbb\x82\xbc\x82\xbd\x4f\x41\x82\xbe\x82\xbf\x82\xc0\x82\xc1\x82\xc2\x82\xc3\x5d\x6c\x82\xc4\x82\xc5\x82\xc6\x82\xc7\x82\xc8\x82\xc9\x82\xca\x82\xcb\x82\xcc\x53\x5c\x57\x55\x82\xcd\x82\xce\x82\xcf\x5d\x6d\x82\xd0\x82\xd1\x5d\x67\x4a\x45", /* 5080 */ "\x50\x9f\x82\xd2\x82\xd3\x82\xd4\x82\xd5\x4c\xb4\x82\xd6\x82\xd7\x50\xfb\x82\xd8\x82\xd9\x82\xda\x82\xdb\x48\xf7\x82\xdc\x82\xdd\x82\xde\x82\xdf\x82\xe0\x82\xe1\x82\xe2\x82\xe3\x82\xe4\x82\xe5\x82\xe6\x82\xe7\x82\xe8\x82\xe9\x82\xea\x82\xeb\x82\xec\x82\xed\x82\xee\x82\xef\x82\xf0\x4a\xf5\x82\xf1\x5d\x6e\x82\xf2\x5d\x6f\x4a\xa1\x5d\x70\x82\xf3\x82\xf4\x4a\xde\x82\xf5\x82\xf6\x82\xf7\x82\xf8\x82\xf9\x48\xc0\x82\xfa\x82\xfb\x82\xfc\x82\xfd\x83\x41\x83\x42\x83\x43\x5d\x71\x55\x55\x83\x44\x83\x45\x83\x46\x83\x47\x83\x48\x83\x49\x83\x4a\x83\x4b\x83\x4c\x83\x4d\x83\x4e\x83\x4f\x83\x50\x83\x51\x83\x52\x83\x53\x83\x54\x83\x55\x83\x56\x58\x92\x83\x57\x83\x58\x83\x59\x83\x5a\x83\x5b\x83\x5c\x5d\x72\x83\x5d\x83\x5e\x83\x5f\x51\x65\x83\x60\x83\x61\x83\x62\x83\x63\x83\x64\x83\x65\x83\x66\x83\x67\x83\x68\x83\x69\x83\x6a\x5d\x76\x55\x4e\x83\x6b\x83\x6c\x83\x6d\x83\x6e\x5d\x75\x5d\x74\x5d\x77\x83\x6f\x83\x70\x83\x71\x83\x72\x56\x7b\x83\x73\x4f\x49\x83\x74\x83\x75\x83\x76\x83\x77\x83\x78\x53\xa6\x83\x79\x83\x7a\x83\x7b\x83\x7c", /* 5100 */ "\x83\x7d\x83\x7e\x83\x7f\x83\x81\x83\x82\x83\x83\x5d\x73\x5d\x78\x83\x84\x83\x85\x83\x86\x5d\x79\x83\x87\x83\x88\x83\x89\x83\x8a\x83\x8b\x83\x8c\x54\xe4\x83\x8d\x83\x8e\x83\x8f\x83\x90\x83\x91\x83\x92\x83\x93\x83\x94\x83\x95\x83\x96\x83\x97\x83\x98\x83\x99\x83\x9a\x50\xdb\x83\x9b\x83\x9c\x83\x9d\x83\x9e\x83\x9f\x83\xa0\x83\xa1\x83\xa2\x83\xa3\x83\xa4\x83\xa5\x83\xa6\x83\xa7\x83\xa8\x83\xa9\x83\xaa\x83\xab\x83\xac\x83\xad\x83\xae\x83\xaf\x83\xb0\x83\xb1\x83\xb2\x83\xb3\x83\xb4\x83\xb5\x83\xb6\x83\xb7\x4b\xf8\x5c\xa2\x5a\xc9\x83\xb8\x5a\xa9\x58\xd5\x4a\x85\x5b\x77\x83\xb9\x58\x68\x4d\x83\x83\xba\x50\x6b\x83\xbb\x52\x83\x83\xbc\x83\xbd\x83\xbe\x4b\xd1\x83\xbf\x83\xc0\x57\x63\x5d\x8f\x5d\x91\x83\xc1\x83\xc2\x83\xc3\x4b\x53\x83\xc4\x4b\xb4\x83\xc5\x83\xc6\x83\xc7\x83\xc8\x83\xc9\x4f\xa3\x83\xca\x83\xcb\x54\xea\x83\xcc\x83\xcd\x54\xaa\x83\xce\x83\xcf\x48\xca\x4d\x4b\x51\x9a\x5d\x83\x83\xd0\x50\xbb\x4d\x52\x83\xd1\x4d\x78\x58\xca\x49\x99\x53\xe3\x4f\xde\x4b\x85\x5c\x68\x83\xd2\x59\x99\x4e\xe5\x55\xdd\x83\xd3\x83\xd4", /* 5180 */ "\x4e\xbc\x5d\x87\x5c\xe6\x83\xd5\x83\xd6\x52\xd9\x83\xd7\x83\xd8\x4c\xd3\x54\xbc\x83\xd9\x83\xda\x49\xe0\x5a\xd8\x83\xdb\x83\xdc\x83\xdd\x83\xde\x52\x50\x83\xdf\x83\xe0\x52\x82\x5d\xa1\x54\xde\x83\xe1\x58\xb3\x83\xe2\x4f\xfb\x53\x49\x83\xe3\x83\xe4\x83\xe5\x4d\x7a\x83\xe6\x5d\xa2\x83\xe7\x5a\xa8\x5d\xa3\x83\xe8\x83\xe9\x83\xea\x83\xeb\x83\xec\x5d\x9c\x4b\xab\x83\xed\x83\xee\x4c\x8c\x49\x9a\x5d\x9d\x4a\x86\x4f\xf5\x83\xef\x50\x97\x59\xb0\x50\xe3\x83\xf0\x83\xf1\x83\xf2\x4b\xb2\x5d\x9f\x5d\x9e\x83\xf3\x83\xf4\x4f\xba\x83\xf5\x83\xf6\x83\xf7\x53\xdf\x83\xf8\x5c\x5c\x5d\xa0\x83\xf9\x51\x59\x83\xfa\x4b\x93\x51\x89\x83\xfb\x83\xfc\x4e\xf4\x83\xfd\x4a\xd4\x84\x41\x84\x42\x84\x43\x84\x44\x84\x45\x84\x46\x84\x47\x84\x48\x84\x49\x51\x7d\x84\x4a\x52\xfc\x84\x4b\x84\x4c\x4e\xb7\x4c\x52\x84\x4d\x84\x4e\x4c\x90\x84\x4f\x84\x50\x84\x51\x84\x52\x84\x53\x84\x54\x5d\x8d\x84\x55\x53\xbd\x84\x56\x50\x4d\x4e\x6b\x84\x57\x84\x58\x4b\x6a\x84\x59\x5e\x69\x58\xd6\x84\x5a\x57\x59\x48\xbb\x4a\x97\x4e\x98\x5e\x6a\x4d\xae\x84\x5b\x5a\xe3", /* 5200 */ "\x4b\x56\x4b\x94\x5c\xd5\x54\xcf\x84\x5c\x84\x5d\x4c\x76\x54\x70\x5c\xd6\x84\x5e\x50\x4f\x84\x5f\x84\x60\x5e\x5b\x5c\xd7\x84\x61\x84\x62\x58\xcb\x4e\x4e\x84\x63\x84\x64\x84\x65\x66\x5e\x51\x70\x51\x96\x5a\xf1\x4c\xd4\x4a\xb3\x84\x66\x4a\x96\x84\x67\x84\x68\x55\x5e\x84\x69\x84\x6a\x84\x6b\x53\x70\x84\x6c\x84\x6d\x84\x6e\x53\x79\x50\xfa\x84\x6f\x49\x91\x84\x70\x5c\xd8\x4d\x6e\x84\x71\x4b\x5d\x84\x72\x84\x73\x5c\xd9\x84\x74\x84\x75\x5b\xc5\x56\x42\x54\xae\x55\x52\x4a\xcb\x50\x6c\x84\x76\x4d\x95\x84\x77\x5c\xda\x5c\xdb\x4b\xe6\x4e\xc0\x56\xe9\x84\x78\x84\x79\x84\x7a\x84\x7b\x84\x7c\x84\x7d\x58\x98\x84\x7e\x5c\xdc\x54\x50\x84\x7f\x84\x81\x4d\x70\x4f\x43\x84\x82\x84\x83\x56\xdd\x84\x84\x53\xc9\x84\x85\x84\x86\x84\x87\x84\x88\x84\x89\x5c\xdf\x84\x8a\x5c\xdd\x84\x8b\x84\x8c\x5c\xde\x84\x8d\x84\x8e\x84\x8f\x48\xfd\x84\x90\x4f\xe6\x84\x91\x55\xa2\x4e\xf3\x84\x92\x84\x93\x84\x94\x84\x95\x4c\xb0\x84\x96\x84\x97\x4c\xed\x84\x98\x84\x99\x84\x9a\x84\x9b\x84\x9c\x84\x9d\x84\x9e\x84\x9f\x84\xa0\x84\xa1\x5c\xe1\x84\xa2\x4f\x6b", /* 5280 */ "\x84\xa3\x5c\xe3\x5c\xe2\x84\xa4\x84\xa5\x84\xa6\x84\xa7\x84\xa8\x53\x9d\x84\xa9\x84\xaa\x84\xab\x84\xac\x84\xad\x84\xae\x84\xaf\x5c\xe4\x84\xb0\x84\xb1\x5c\xe5\x84\xb2\x84\xb3\x84\xb4\x84\xb5\x84\xb6\x84\xb7\x84\xb8\x51\x46\x84\xb9\x54\xaf\x48\xeb\x4d\x46\x4e\xd2\x57\xf0\x5e\x5d\x51\x73\x84\xba\x84\xbb\x84\xbc\x84\xbd\x4b\xae\x5b\xf9\x53\x4c\x4f\x79\x5e\x5e\x5e\x5f\x84\xbe\x84\xbf\x84\xc0\x50\xf7\x4f\xa1\x50\xcc\x84\xc1\x84\xc2\x84\xc3\x84\xc4\x84\xc5\x84\xc6\x84\xc7\x84\xc8\x84\xc9\x84\xca\x5e\x60\x55\xc5\x84\xcb\x84\xcc\x84\xcd\x49\xa9\x84\xce\x84\xcf\x84\xd0\x5a\x62\x84\xd1\x52\x84\x84\xd2\x59\x4b\x84\xd3\x84\xd4\x84\xd5\x84\xd6\x5e\x62\x84\xd7\x50\xd4\x84\xd8\x84\xd9\x84\xda\x5e\x63\x84\xdb\x50\x51\x84\xdc\x84\xdd\x84\xde\x84\xdf\x84\xe0\x84\xe1\x52\xbb\x84\xe2\x84\xe3\x84\xe4\x84\xe5\x54\x7a\x84\xe6\x84\xe7\x84\xe8\x84\xe9\x84\xea\x84\xeb\x84\xec\x84\xed\x84\xee\x84\xef\x84\xf0\x5e\x64\x84\xf1\x84\xf2\x84\xf3\x84\xf4\x84\xf5\x84\xf6\x84\xf7\x84\xf8\x5d\x89\x55\x77\x84\xf9\x84\xfa\x84\xfb\x4d\x54\x57\xef", /* 5300 */ "\x5a\xc7\x84\xfc\x84\xfd\x85\x41\x85\x42\x48\xfb\x4a\xd1\x85\x43\x58\xd8\x85\x44\x85\x45\x85\x46\x85\x47\x5d\x8a\x85\x48\x5f\xca\x5d\x8c\x85\x49\x85\x4a\x85\x4b\x85\x4c\x5c\xaf\x4e\x4f\x49\x51\x85\x4d\x4a\x77\x5c\xcd\x85\x4e\x85\x4f\x5a\xd0\x85\x50\x85\x51\x4f\x53\x50\x90\x85\x52\x58\x5b\x85\x53\x85\x54\x5c\xcf\x85\x55\x85\x56\x85\x57\x4c\x6b\x85\x58\x85\x59\x85\x5a\x5c\xd0\x85\x5b\x85\x5c\x85\x5d\x85\x5e\x85\x5f\x85\x60\x85\x61\x85\x62\x85\x63\x85\x64\x53\xa4\x54\x99\x59\xbc\x85\x65\x85\x66\x5c\xd1\x52\xe3\x85\x67\x55\xad\x85\x68\x54\x47\x85\x69\x5c\xa5\x85\x6a\x55\x9e\x57\xe6\x4e\x7c\x48\xea\x85\x6b\x85\x6c\x85\x6d\x4e\x4a\x58\xac\x85\x6e\x49\x50\x5c\x85\x5c\x5f\x85\x6f\x4b\x45\x51\xf3\x52\xce\x85\x70\x85\x71\x49\xa8\x85\x72\x49\xb6\x85\x73\x49\x86\x60\x52\x5b\x5c\x50\x48\x51\xab\x5c\xd4\x51\xb0\x85\x74\x5c\xd3\x57\xd3\x85\x75\x5d\xdf\x85\x76\x57\xbf\x85\x77\x85\x78\x5c\xb3\x52\x4e\x5a\x41\x57\xa2\x85\x79\x4e\xb3\x54\xb3\x51\xd0\x85\x7a\x4f\xec\x58\xb5\x85\x7b\x5d\xe0\x85\x7c\x85\x7d\x85\x7e\x85\x7f\x54\x85", /* 5380 */ "\x85\x81\x85\x82\x4a\x47\x85\x83\x4b\xf1\x56\xfb\x50\xf9\x85\x84\x85\x85\x50\xf6\x85\x86\x59\x59\x59\x82\x5c\xc6\x85\x87\x85\x88\x85\x89\x85\x8a\x85\x8b\x85\x8c\x85\x8d\x49\xdd\x85\x8e\x85\x8f\x50\xe4\x85\x90\x4d\xf0\x85\x91\x85\x92\x5c\xc7\x85\x93\x5a\xac\x85\x94\x85\x95\x58\x82\x5c\xc8\x85\x96\x5c\xc9\x58\x63\x85\x97\x4a\x99\x4f\xc6\x85\x98\x85\x99\x85\x9a\x85\x9b\x5c\xca\x85\x9c\x85\x9d\x85\x9e\x85\x9f\x85\xa0\x85\xa1\x85\xa2\x5e\x6c\x85\xa3\x85\xa4\x85\xa5\x85\xa6\x54\xa4\x85\xa7\x85\xa8\x85\xa9\x58\x78\x85\xaa\x54\xfd\x49\xcd\x85\xab\x85\xac\x85\xad\x85\xae\x85\xaf\x5a\x76\x49\xe5\x4e\xaf\x5a\x71\x56\x4b\x4c\x54\x85\xb0\x85\xb1\x85\xb2\x4c\x42\x85\xb3\x85\xb4\x55\xe4\x85\xb5\x54\xa0\x55\xdb\x49\x85\x58\xef\x85\xb6\x53\x71\x85\xb7\x85\xb8\x85\xb9\x5e\x65\x4b\x9f\x85\xba\x85\xbb\x50\x7a\x4d\x65\x4f\xe3\x51\x8e\x85\xbc\x60\x56\x60\x55\x5b\xba\x4f\x70\x5b\x79\x48\xc7\x4b\xa2\x50\x69\x56\xa7\x60\x53\x55\xb6\x5a\x72\x85\xbd\x5c\xce\x59\xb5\x4d\xc4\x56\x5e\x56\xbd\x85\xbe\x60\x57\x4b\x91\x60\x54\x85\xbf\x85\xc0", /* 5400 */ "\x85\xc1\x5a\x96\x85\xc2\x4a\x74\x4c\xf6\x85\xc3\x60\x5a\x85\xc4\x4d\xce\x4e\xa9\x4b\x96\x85\xc5\x57\x4c\x52\x9c\x4d\xf2\x50\xf3\x57\x62\x58\x93\x60\x58\x58\x65\x85\xc6\x51\xbf\x60\x59\x51\xef\x85\xc7\x85\xc8\x85\xc9\x4f\xfc\x85\xca\x51\x7f\x57\x6c\x59\xf6\x4c\x6d\x60\x61\x85\xcb\x60\x64\x85\xcc\x85\xcd\x4c\x92\x48\xc8\x4b\xd5\x4c\x74\x85\xce\x4d\xab\x56\xfc\x50\x74\x56\x51\x53\xf3\x85\xcf\x5b\xa7\x60\x65\x85\xd0\x57\xe1\x4a\x53\x85\xd1\x85\xd2\x57\xfb\x4a\xb4\x85\xd3\x57\xc6\x4d\xef\x85\xd4\x57\xe0\x85\xd5\x59\x5d\x85\xd6\x85\xd7\x60\x60\x85\xd8\x85\xd9\x4a\xf3\x85\xda\x4a\x6a\x85\xdb\x4c\xe5\x60\x5b\x85\xdc\x85\xdd\x85\xde\x85\xdf\x52\xc4\x85\xe0\x60\x5c\x60\x5d\x60\x5e\x53\x5b\x60\x5f\x60\x62\x5a\xb0\x60\x63\x85\xe1\x54\x5a\x57\xd7\x85\xe2\x85\xe3\x85\xe4\x85\xe5\x85\xe6\x52\xd7\x85\xe7\x60\x6a\x85\xe8\x60\x6f\x85\xe9\x5b\xdb\x85\xea\x85\xeb\x85\xec\x85\xed\x85\xee\x85\xef\x85\xf0\x85\xf1\x60\x69\x60\x7a\x57\xb5\x85\xf2\x4d\xc6\x60\x6e\x60\x68\x53\x7e\x85\xf3\x85\xf4\x55\x8c\x4d\xf3\x52\x9d\x85\xf5\x85\xf6", /* 5480 */ "\x4f\xd6\x85\xf7\x60\x66\x85\xf8\x60\x6d\x85\xf9\x53\x78\x85\xfa\x85\xfb\x85\xfc\x85\xfd\x5b\x46\x4d\xcc\x86\x41\x4f\xcb\x5a\x5d\x4c\xbf\x86\x42\x5b\xe3\x86\x43\x60\x67\x4d\x5e\x50\x47\x86\x44\x86\x45\x51\x9d\x60\x6b\x60\x6c\x86\x46\x60\x70\x86\x47\x86\x48\x86\x49\x86\x4a\x86\x4b\x60\x7b\x60\x86\x86\x4c\x60\x77\x60\x76\x5c\x69\x60\x84\x60\x85\x63\x8c\x59\xa6\x60\x72\x86\x4d\x50\x49\x86\x4e\x5a\xda\x86\x4f\x50\x68\x60\x74\x86\x50\x86\x51\x86\x52\x58\x6c\x86\x53\x86\x54\x60\x7d\x86\x55\x59\x6a\x86\x56\x60\x7e\x48\xa6\x53\xb6\x60\x73\x86\x57\x4d\xe4\x86\x58\x4b\xde\x57\x7b\x4d\x9f\x5a\xd4\x86\x59\x86\x5a\x60\x7f\x58\x8d\x48\xa4\x60\x88\x60\x71\x59\x66\x60\x75\x60\x78\x60\x79\x60\x7c\x86\x5b\x4e\x49\x86\x5c\x60\x81\x60\x82\x86\x5d\x60\x83\x60\x87\x60\x89\x5a\x54\x86\x5e\x86\x5f\x86\x60\x86\x61\x86\x62\x4c\xe6\x53\x56\x60\x8b\x55\x7a\x51\x48\x52\xc3\x86\x63\x86\x64\x50\x7e\x58\x99\x86\x65\x86\x66\x86\x67\x5b\x7c\x60\x8f\x86\x68\x86\x69\x86\x6a\x86\x6b\x86\x6c\x86\x6d\x49\xb7\x86\x6e\x4d\xde\x60\x8d\x86\x6f\x5e\x61", /* 5500 */ "\x86\x70\x59\x85\x86\x71\x86\x72\x86\x73\x86\x74\x56\x95\x4a\xbc\x86\x75\x48\xa5\x86\x76\x86\x77\x86\x78\x86\x79\x86\x7a\x60\x92\x56\xc5\x60\x93\x86\x7b\x86\x7c\x60\x8e\x86\x7d\x86\x7e\x86\x7f\x86\x81\x86\x82\x86\x83\x60\x8a\x86\x84\x86\x85\x86\x86\x86\x87\x60\x8c\x86\x88\x60\x90\x60\x91\x4e\x5d\x86\x89\x86\x8a\x60\x94\x86\x8b\x86\x8c\x60\x95\x86\x8d\x4e\x43\x86\x8e\x55\xda\x57\xa7\x60\xa6\x4a\x4a\x86\x8f\x60\xa5\x86\x90\x86\x91\x86\x92\x60\xa0\x86\x93\x86\x94\x86\x95\x86\x96\x60\x9f\x86\x97\x57\x79\x60\x9d\x86\x98\x60\x9b\x86\x99\x50\x70\x5c\x64\x86\x9a\x55\x6c\x86\x9b\x86\x9c\x60\x99\x48\xa0\x86\x9d\x86\x9e\x86\x9f\x86\xa0\x86\xa1\x60\x9e\x86\xa2\x86\xa3\x86\xa4\x86\xa5\x60\x9c\x60\xa1\x86\xa6\x86\xa7\x86\xa8\x86\xa9\x86\xaa\x60\xa7\x86\xab\x86\xac\x86\xad\x86\xae\x4c\x68\x86\xaf\x86\xb0\x53\xa0\x55\x56\x50\xb1\x60\x96\x86\xb1\x86\xb2\x53\x5e\x86\xb3\x5c\xc3\x60\x9a\x52\xf5\x86\xb4\x86\xb5\x86\xb6\x86\xb7\x86\xb8\x86\xb9\x60\xa2\x60\xa3\x60\xa4\x58\xa4\x86\xba\x86\xbb\x60\xb3\x56\xe3\x86\xbc\x60\xb0\x86\xbd", /* 5580 */ "\x50\x46\x60\xae\x57\xb8\x60\xaa\x55\x66\x86\xbe\x86\xbf\x50\xad\x60\xad\x4d\xec\x4d\xaf\x60\xa8\x86\xc0\x86\xc1\x86\xc2\x60\x97\x86\xc3\x60\xb2\x86\xc4\x86\xc5\x60\xb7\x86\xc6\x86\xc7\x86\xc8\x4a\xac\x60\xb8\x86\xc9\x86\xca\x58\x52\x4d\xc7\x86\xcb\x60\xaf\x86\xcc\x86\xcd\x86\xce\x86\xcf\x86\xd0\x86\xd1\x86\xd2\x58\xf9\x86\xd3\x86\xd4\x86\xd5\x86\xd6\x86\xd7\x86\xd8\x86\xd9\x86\xda\x86\xdb\x60\xab\x86\xdc\x5a\xfa\x86\xdd\x60\x98\x86\xde\x53\x88\x86\xdf\x60\xac\x86\xe0\x5a\x98\x86\xe1\x60\xb5\x60\xb6\x86\xe2\x86\xe3\x86\xe4\x86\xe5\x86\xe6\x60\xc3\x58\xe0\x86\xe7\x86\xe8\x86\xe9\x60\xbb\x86\xea\x86\xeb\x60\xc8\x60\xc9\x86\xec\x86\xed\x86\xee\x60\xbd\x60\xa9\x55\x44\x60\xc0\x86\xef\x60\xb1\x86\xf0\x86\xf1\x86\xf2\x86\xf3\x86\xf4\x55\xc7\x60\xc2\x86\xf5\x60\xb4\x86\xf6\x57\xca\x86\xf7\x56\x63\x60\xcc\x60\xc5\x60\xc1\x86\xf8\x60\xca\x86\xf9\x60\xb9\x60\xbe\x60\xbf\x86\xfa\x86\xfb\x60\xc4\x86\xfc\x86\xfd\x60\xc6\x60\xc7\x87\x41\x60\xcb\x87\x42\x60\xba\x87\x43\x87\x44\x87\x45\x87\x46\x87\x47\x56\x74\x60\xd4\x87\x48", /* 5600 */ "\x60\xd5\x60\xd1\x87\x49\x87\x4a\x87\x4b\x87\x4c\x87\x4d\x87\x4e\x60\xcf\x4e\xcd\x87\x4f\x87\x50\x60\xd0\x87\x51\x4c\xc1\x5c\xc4\x87\x52\x87\x53\x87\x54\x87\x55\x87\x56\x87\x57\x87\x58\x87\x59\x58\xe9\x87\x5a\x87\x5b\x51\xee\x87\x5c\x87\x5d\x60\xce\x60\xbc\x87\x5e\x87\x5f\x87\x60\x60\xd3\x60\xd2\x87\x61\x87\x62\x60\xd6\x87\x63\x87\x64\x87\x65\x87\x66\x60\xdb\x60\xd7\x87\x67\x87\x68\x87\x69\x5b\xf5\x4a\x50\x87\x6a\x5c\x8d\x87\x6b\x56\x5b\x87\x6c\x87\x6d\x60\xd9\x87\x6e\x57\xfa\x87\x6f\x87\x70\x87\x71\x4d\xd8\x87\x72\x87\x73\x87\x74\x87\x75\x87\x76\x87\x77\x87\x78\x87\x79\x87\x7a\x87\x7b\x87\x7c\x87\x7d\x60\xe0\x60\xdc\x59\xac\x87\x7e\x87\x7f\x87\x81\x87\x82\x87\x83\x60\xe1\x87\x84\x87\x85\x60\xda\x60\xd8\x60\xde\x87\x86\x87\x87\x60\xdf\x87\x88\x87\x89\x87\x8a\x87\x8b\x87\x8c\x60\xdd\x87\x8d\x60\xe3\x87\x8e\x87\x8f\x87\x90\x53\xf6\x5c\xab\x5a\xea\x60\xe5\x55\xc8\x87\x91\x87\x92\x87\x93\x87\x94\x60\xe4\x87\x95\x87\x96\x87\x97\x87\x98\x4c\xc0\x87\x99\x87\x9a\x87\x9b\x87\x9c\x60\xe6\x60\xe7\x87\x9d\x87\x9e\x87\x9f", /* 5680 */ "\x87\xa0\x87\xa1\x87\xa2\x87\xa3\x87\xa4\x60\xe8\x60\xe2\x87\xa5\x87\xa6\x87\xa7\x87\xa8\x87\xa9\x87\xaa\x87\xab\x4d\xbe\x56\xe6\x87\xac\x87\xad\x87\xae\x60\xe9\x87\xaf\x87\xb0\x87\xb1\x87\xb2\x87\xb3\x87\xb4\x87\xb5\x87\xb6\x87\xb7\x87\xb8\x87\xb9\x87\xba\x87\xbb\x87\xbc\x87\xbd\x58\x9a\x87\xbe\x87\xbf\x87\xc0\x87\xc1\x87\xc2\x87\xc3\x87\xc4\x87\xc5\x87\xc6\x87\xc7\x87\xc8\x60\xea\x87\xc9\x87\xca\x87\xcb\x87\xcc\x87\xcd\x87\xce\x87\xcf\x54\xc1\x87\xd0\x87\xd1\x87\xd2\x87\xd3\x4f\x60\x87\xd4\x87\xd5\x87\xd6\x87\xd7\x87\xd8\x87\xd9\x87\xda\x87\xdb\x87\xdc\x87\xdd\x87\xde\x87\xdf\x87\xe0\x52\xd1\x87\xe1\x87\xe2\x87\xe3\x87\xe4\x87\xe5\x87\xe6\x87\xe7\x87\xe8\x87\xe9\x60\xeb\x87\xea\x87\xeb\x60\xec\x87\xec\x87\xed\x54\x95\x56\x64\x87\xee\x60\xed\x4e\x78\x5c\xb5\x59\xf1\x60\xee\x57\x65\x87\xef\x4b\xd9\x87\xf0\x87\xf1\x87\xf2\x87\xf3\x87\xf4\x87\xf5\x60\xf0\x87\xf6\x5a\xaf\x87\xf7\x87\xf8\x50\xa6\x4a\xd0\x87\xf9\x87\xfa\x57\xa6\x60\xef\x87\xfb\x87\xfc\x87\xfd\x60\xf1\x4d\x6c\x88\x41\x88\x42\x4d\x9b\x57\x5c\x60\xf2", /* 5700 */ "\x88\x43\x88\x44\x88\x45\x53\xd3\x60\xf3\x88\x46\x5a\xb1\x88\x47\x54\xa5\x60\xf5\x60\xf4\x88\x48\x88\x49\x88\x4a\x88\x4b\x88\x4c\x88\x4d\x88\x4e\x88\x4f\x88\x50\x88\x51\x88\x52\x88\x53\x88\x54\x88\x55\x88\x56\x88\x57\x88\x58\x60\xf6\x88\x59\x88\x5a\x57\x61\x88\x5b\x88\x5c\x88\x5d\x55\xa4\x88\x5e\x88\x5f\x88\x60\x88\x61\x5a\xd9\x5e\x77\x5e\x79\x88\x62\x5e\x78\x4d\x88\x5e\x7c\x5e\x7d\x4b\x78\x88\x63\x88\x64\x5e\x7a\x88\x65\x88\x66\x88\x67\x88\x68\x88\x69\x5e\x7b\x4a\x41\x5e\x7f\x88\x6a\x88\x6b\x4e\x99\x88\x6c\x5b\xb6\x88\x6d\x5e\x81\x88\x6e\x88\x6f\x88\x70\x88\x71\x4f\xf8\x88\x72\x88\x73\x4c\x5b\x88\x74\x5e\x70\x56\xad\x50\x52\x4e\x55\x5c\x99\x50\x73\x88\x75\x88\x76\x88\x77\x88\x78\x88\x79\x50\x8a\x88\x7a\x88\x7b\x4e\xe0\x56\xb2\x5e\x7e\x48\xd2\x57\xea\x4c\x78\x5c\x59\x53\xc1\x88\x7c\x88\x7d\x50\xa3\x88\x7e\x56\xb8\x88\x7f\x5e\x88\x5e\x82\x53\xb9\x5e\x84\x88\x81\x5e\x89\x88\x82\x53\x98\x88\x83\x88\x84\x88\x85\x5e\x8b\x88\x86\x88\x87\x5e\x8a\x50\x60\x88\x88\x88\x89\x88\x8a\x5e\x87\x5e\x86\x88\x8b\x88\x8c\x88\x8d", /* 5780 */ "\x88\x8e\x88\x8f\x4a\xb8\x50\xab\x51\xa1\x5e\x83\x5e\x85\x88\x90\x88\x91\x88\x92\x88\x93\x58\xcc\x5e\x8e\x88\x94\x88\x95\x88\x96\x88\x97\x88\x98\x50\xdc\x5e\x93\x88\x99\x88\x9a\x88\x9b\x88\x9c\x88\x9d\x88\x9e\x88\x9f\x4b\xe1\x88\xa0\x88\xa1\x88\xa2\x88\xa3\x5e\x94\x5e\x72\x4d\x58\x5a\xaa\x5e\x8d\x88\xa4\x50\x71\x5e\x91\x88\xa5\x5e\x71\x88\xa6\x4b\x87\x88\xa7\x5e\x8c\x50\x86\x88\xa8\x88\xa9\x88\xaa\x5e\x8f\x88\xab\x5e\x92\x88\xac\x88\xad\x88\xae\x5e\x9a\x88\xaf\x88\xb0\x88\xb1\x88\xb2\x88\xb3\x88\xb4\x88\xb5\x88\xb6\x88\xb7\x4d\x41\x48\xa2\x88\xb8\x88\xb9\x88\xba\x88\xbb\x88\xbc\x88\xbd\x88\xbe\x51\xf0\x88\xbf\x88\xc0\x4a\x67\x5e\x90\x88\xc1\x88\xc2\x5e\x99\x88\xc3\x53\xd1\x5e\x95\x88\xc4\x88\xc5\x5e\x96\x5e\x98\x5e\x97\x88\xc6\x88\xc7\x5e\x9f\x88\xc8\x5a\x93\x49\xb9\x88\xc9\x88\xca\x88\xcb\x5e\x9e\x88\xcc\x88\xcd\x88\xce\x88\xcf\x88\xd0\x88\xd1\x88\xd2\x88\xd3\x5e\xa3\x88\xd4\x5e\x9c\x88\xd5\x88\xd6\x88\xd7\x88\xd8\x5e\x9b\x88\xd9\x88\xda\x88\xdb\x5e\x9d\x53\x81\x4e\x9a\x88\xdc\x88\xdd\x5e\xa2\x88\xde\x88\xdf", /* 5800 */ "\x5e\xa4\x88\xe0\x56\xc2\x88\xe1\x88\xe2\x88\xe3\x4b\xd0\x5f\x60\x88\xe4\x88\xe5\x88\xe6\x5e\xa0\x88\xe7\x5e\xa1\x88\xe8\x88\xe9\x88\xea\x54\x55\x88\xeb\x88\xec\x88\xed\x4b\xe8\x88\xee\x88\xef\x88\xf0\x5e\xa6\x88\xf1\x88\xf2\x88\xf3\x88\xf4\x5e\xa5\x88\xf5\x5e\xa8\x49\x44\x88\xf6\x88\xf7\x4b\x6c\x88\xf8\x88\xf9\x88\xfa\x88\xfb\x88\xfc\x50\x50\x88\xfd\x89\x41\x89\x42\x89\x43\x89\x44\x59\x7f\x89\x45\x89\x46\x89\x47\x89\x48\x4b\xc1\x89\x49\x89\x4a\x89\x4b\x89\x4c\x89\x4d\x89\x4e\x89\x4f\x89\x50\x89\x51\x89\x52\x89\x53\x89\x54\x89\x55\x89\x56\x5e\xa7\x89\x57\x89\x58\x89\x59\x89\x5a\x89\x5b\x89\x5c\x89\x5d\x56\x9b\x66\x94\x89\x5e\x89\x5f\x89\x60\x56\x7c\x89\x61\x89\x62\x56\x9f\x89\x63\x89\x64\x89\x65\x56\xc0\x89\x66\x89\x67\x89\x68\x89\x69\x89\x6a\x54\xfa\x89\x6b\x89\x6c\x89\x6d\x89\x6e\x89\x6f\x89\x70\x5e\xa9\x89\x71\x89\x72\x89\x73\x89\x74\x89\x75\x56\xed\x5e\xaa\x89\x76\x89\x77\x89\x78\x89\x79\x89\x7a\x89\x7b\x89\x7c\x89\x7d\x89\x7e\x89\x7f\x89\x81\x89\x82\x89\x83\x89\x84\x89\x85\x89\x86\x89\x87\x5e\x73\x89\x88", /* 5880 */ "\x5e\xae\x5e\xab\x89\x89\x4f\xb2\x89\x8a\x55\xfa\x89\x8b\x89\x8c\x89\x8d\x5e\xac\x89\x8e\x89\x8f\x89\x90\x89\x91\x89\x92\x89\x93\x89\x94\x89\x95\x55\x6a\x52\xb8\x89\x96\x89\x97\x89\x98\x89\x99\x89\x9a\x54\x5d\x5e\xad\x89\x9b\x89\x9c\x89\x9d\x5a\xf5\x58\xe5\x89\x9e\x89\x9f\x89\xa0\x89\xa1\x89\xa2\x89\xa3\x89\xa4\x89\xa5\x52\xaa\x4b\xd4\x89\xa6\x89\xa7\x89\xa8\x89\xa9\x89\xaa\x89\xab\x89\xac\x89\xad\x89\xae\x89\xaf\x89\xb0\x89\xb1\x89\xb2\x89\xb3\x89\xb4\x89\xb5\x89\xb6\x89\xb7\x5e\x74\x89\xb8\x89\xb9\x89\xba\x89\xbb\x49\x7a\x89\xbc\x89\xbd\x89\xbe\x5e\x75\x89\xbf\x89\xc0\x89\xc1\x89\xc2\x89\xc3\x89\xc4\x89\xc5\x89\xc6\x89\xc7\x89\xc8\x89\xc9\x5e\x76\x89\xca\x89\xcb\x89\xcc\x4d\xbd\x89\xcd\x89\xce\x89\xcf\x89\xd0\x89\xd1\x89\xd2\x89\xd3\x89\xd4\x89\xd5\x89\xd6\x89\xd7\x89\xd8\x89\xd9\x89\xda\x54\xbf\x89\xdb\x89\xdc\x89\xdd\x89\xde\x89\xdf\x89\xe0\x55\xbe\x54\xc8\x89\xe1\x5c\x53\x89\xe2\x55\x9a\x89\xe3\x89\xe4\x50\x67\x89\xe5\x89\xe6\x4d\xf7\x89\xe7\x89\xe8\x59\xbb\x89\xe9\x89\xea\x89\xeb\x89\xec\x89\xed\x89\xee", /* 5900 */ "\x89\xef\x89\xf0\x61\xb9\x89\xf1\x4a\xa5\x89\xf2\x89\xf3\x49\x58\x89\xf4\x89\xf5\x89\xf6\x89\xf7\x89\xf8\x4c\xb3\x89\xf9\x58\x64\x89\xfa\x89\xfb\x89\xfc\x89\xfd\x5d\x88\x58\x46\x57\x83\x8a\x41\x8a\x42\x5d\x8e\x4b\xdf\x8a\x43\x59\xb8\x8a\x44\x8a\x45\x4d\x5b\x8a\x46\x8a\x47\x8a\x48\x8a\x49\x61\xb8\x61\xb6\x8a\x4a\x4a\xf2\x8a\x4b\x56\xeb\x56\xaa\x4c\x93\x8a\x4c\x5c\xb1\x59\x8c\x4d\xba\x8a\x4d\x55\xa6\x8a\x4e\x8a\x4f\x57\x57\x8a\x50\x8a\x51\x59\xc3\x50\x85\x4e\xcf\x4b\xe0\x8a\x52\x5f\xc4\x8a\x53\x8a\x54\x8a\x55\x8a\x56\x5f\xc5\x5e\x5c\x8a\x57\x59\x79\x8a\x58\x8a\x59\x53\xe5\x52\xcd\x4c\x8f\x8a\x5a\x4c\x7c\x8a\x5b\x8a\x5c\x50\x9d\x5c\x81\x8a\x5d\x53\xf4\x8a\x5e\x8a\x5f\x49\x5c\x5f\xc7\x4f\x51\x56\xd6\x5f\xc9\x8a\x60\x5f\xc8\x8a\x61\x8a\x62\x8a\x63\x8a\x64\x8a\x65\x4b\x8d\x8a\x66\x55\x7d\x8a\x67\x8a\x68\x48\xc1\x8a\x69\x8a\x6a\x8a\x6b\x8a\x6c\x8a\x6d\x8a\x6e\x8a\x6f\x8a\x70\x8a\x71\x8a\x72\x8a\x73\x8a\x74\x8a\x75\x53\x4e\x53\x4b\x8a\x76\x52\xcb\x8a\x77\x4e\xe8\x56\x9e\x8a\x78\x8a\x79\x8a\x7a\x4d\xc2\x8a\x7b\x8a\x7c", /* 5980 */ "\x8a\x7d\x63\x9a\x54\xe6\x63\x9b\x57\x9e\x8a\x7e\x5c\x51\x4c\xbd\x51\xe7\x8a\x7f\x54\xd0\x8a\x81\x8a\x82\x63\x9c\x8a\x83\x8a\x84\x8a\x85\x8a\x86\x4b\xc9\x4e\xca\x8a\x87\x8a\x88\x59\x9e\x63\xa0\x8a\x89\x52\x8f\x8a\x8a\x8a\x8b\x8a\x8c\x8a\x8d\x63\xa3\x8a\x8e\x8a\x8f\x8a\x90\x8a\x91\x63\x9f\x63\xa4\x57\x77\x8a\x92\x8a\x93\x4c\x61\x63\x9d\x63\x9e\x63\xa2\x8a\x94\x8a\x95\x52\xdc\x63\xa7\x8a\x96\x8a\x97\x63\xa6\x8a\x98\x8a\x99\x8a\x9a\x8a\x9b\x8a\x9c\x8a\x9d\x52\x63\x8a\x9e\x53\xdd\x8a\x9f\x8a\xa0\x63\xa9\x8a\xa1\x8a\xa2\x8a\xa3\x8a\xa4\x8a\xa5\x8a\xa6\x8a\xa7\x52\xb6\x8a\xa8\x8a\xa9\x8a\xaa\x63\xa1\x55\xbb\x8a\xab\x8a\xac\x8a\xad\x8a\xae\x4f\x84\x4d\x63\x63\xa5\x58\xd4\x57\xae\x8a\xaf\x8a\xb0\x63\xa8\x63\xaf\x8a\xb1\x59\xa5\x8a\xb2\x4f\x4a\x63\xac\x8a\xb3\x8a\xb4\x8a\xb5\x8a\xb6\x8a\xb7\x63\xae\x8a\xb8\x50\xd0\x8a\xb9\x8a\xba\x59\xcb\x8a\xbb\x8a\xbc\x8a\xbd\x4e\xa6\x8a\xbe\x8a\xbf\x8a\xc0\x8a\xc1\x8a\xc2\x8a\xc3\x8a\xc4\x8a\xc5\x8a\xc6\x8a\xc7\x8a\xc8\x8a\xc9\x63\xb0\x8a\xca\x59\xf5\x8a\xcb\x8a\xcc\x8a\xcd\x5c\x6b", /* 5a00 */ "\x8a\xce\x57\x9f\x8a\xcf\x57\x7e\x51\xa5\x63\xaa\x63\xab\x4f\x5f\x63\xad\x63\xb2\x8a\xd0\x8a\xd1\x63\xb1\x8a\xd2\x8a\xd3\x8a\xd4\x8a\xd5\x63\xb5\x8a\xd6\x63\xb7\x8a\xd7\x8a\xd8\x8a\xd9\x8a\xda\x52\xee\x8a\xdb\x8a\xdc\x8a\xdd\x52\xc7\x8a\xde\x8a\xdf\x4f\xe9\x55\x90\x8a\xe0\x8a\xe1\x63\xb6\x8a\xe2\x4b\xef\x8a\xe3\x8a\xe4\x8a\xe5\x52\x85\x8a\xe6\x8a\xe7\x8a\xe8\x8a\xe9\x8a\xea\x8a\xeb\x8a\xec\x5a\x8a\x63\xb3\x8a\xed\x63\xb4\x8a\xee\x54\xa1\x8a\xef\x8a\xf0\x8a\xf1\x8a\xf2\x8a\xf3\x63\xbc\x8a\xf4\x8a\xf5\x8a\xf6\x63\xb8\x8a\xf7\x8a\xf8\x8a\xf9\x8a\xfa\x8a\xfb\x53\xc4\x8a\xfc\x8a\xfd\x57\x92\x63\xba\x8b\x41\x8b\x42\x8b\x43\x8b\x44\x8b\x45\x8b\x46\x8b\x47\x8b\x48\x8b\x49\x8b\x4a\x63\xbb\x8b\x4b\x8b\x4c\x8b\x4d\x8b\x4e\x4e\x8a\x8b\x4f\x8b\x50\x8b\x51\x8b\x52\x8b\x53\x8b\x54\x8b\x55\x63\xbd\x8b\x56\x8b\x57\x8b\x58\x8b\x59\x63\xb9\x8b\x5a\x8b\x5b\x50\xb6\x8b\x5c\x8b\x5d\x8b\x5e\x8b\x5f\x8b\x60\x8b\x61\x8b\x62\x8b\x63\x8b\x64\x5a\x44\x63\xbe\x55\x95\x63\xc2\x8b\x65\x8b\x66\x63\xc3\x8b\x67\x8b\x68\x8b\x69\x8b\x6a\x58\xf5", /* 5a80 */ "\x8b\x6b\x8b\x6c\x8b\x6d\x8b\x6e\x8b\x6f\x8b\x70\x8b\x71\x8b\x72\x8b\x73\x8b\x74\x8b\x75\x8b\x76\x8b\x77\x8b\x78\x8b\x79\x8b\x7a\x8b\x7b\x8b\x7c\x52\x5d\x8b\x7d\x8b\x7e\x8b\x7f\x8b\x81\x8b\x82\x8b\x83\x8b\x84\x52\x64\x63\xc1\x8b\x85\x8b\x86\x8b\x87\x8b\x88\x8b\x89\x8b\x8a\x8b\x8b\x8b\x8c\x8b\x8d\x8b\x8e\x8b\x8f\x8b\x90\x8b\x91\x8b\x92\x63\xc0\x8b\x93\x8b\x94\x8b\x95\x8b\x96\x8b\x97\x8b\x98\x8b\x99\x63\xc6\x58\x51\x8b\x9a\x66\x95\x8b\x9b\x8b\x9c\x63\xc9\x8b\x9d\x8b\x9e\x8b\x9f\x8b\xa0\x8b\xa1\x63\xc4\x8b\xa2\x8b\xa3\x4e\xdd\x55\x49\x8b\xa4\x8b\xa5\x8b\xa6\x8b\xa7\x8b\xa8\x8b\xa9\x4e\xb4\x8b\xaa\x8b\xab\x58\x73\x8b\xac\x8b\xad\x8b\xae\x8b\xaf\x8b\xb0\x63\xc7\x8b\xb1\x63\xc8\x8b\xb2\x63\xcd\x8b\xb3\x63\xcf\x8b\xb4\x8b\xb5\x8b\xb6\x63\xd0\x8b\xb7\x8b\xb8\x8b\xb9\x63\xca\x4b\x75\x8b\xba\x63\xcb\x8b\xbb\x8b\xbc\x63\xce\x8b\xbd\x8b\xbe\x52\xda\x8b\xbf\x63\xc5\x8b\xc0\x8b\xc1\x8b\xc2\x8b\xc3\x8b\xc4\x63\xcc\x8b\xc5\x8b\xc6\x8b\xc7\x8b\xc8\x8b\xc9\x8b\xca\x8b\xcb\x8b\xcc\x8b\xcd\x8b\xce\x8b\xcf\x8b\xd0\x8b\xd1\x8b\xd2", /* 5b00 */ "\x8b\xd3\x8b\xd4\x8b\xd5\x8b\xd6\x8b\xd7\x8b\xd8\x8b\xd9\x8b\xda\x8b\xdb\x63\xd1\x8b\xdc\x8b\xdd\x8b\xde\x8b\xdf\x8b\xe0\x8b\xe1\x8b\xe2\x8b\xe3\x8b\xe4\x8b\xe5\x8b\xe6\x8b\xe7\x63\xd3\x63\xd2\x8b\xe8\x8b\xe9\x8b\xea\x8b\xeb\x8b\xec\x8b\xed\x8b\xee\x8b\xef\x8b\xf0\x8b\xf1\x8b\xf2\x8b\xf3\x8b\xf4\x8b\xf5\x8b\xf6\x8b\xf7\x8b\xf8\x8b\xf9\x8b\xfa\x8b\xfb\x8b\xfc\x8b\xfd\x8c\x41\x8c\x42\x8c\x43\x8c\x44\x63\xd4\x8c\x45\x5d\x99\x8c\x46\x8c\x47\x63\xd5\x8c\x48\x8c\x49\x8c\x4a\x8c\x4b\x8c\x4c\x8c\x4d\x8c\x4e\x8c\x4f\x63\xd6\x8c\x50\x8c\x51\x8c\x52\x8c\x53\x8c\x54\x8c\x55\x8c\x56\x8c\x57\x8c\x58\x8c\x59\x8c\x5a\x8c\x5b\x8c\x5c\x8c\x5d\x8c\x5e\x5c\x73\x63\xdc\x8c\x5f\x63\xdd\x50\x77\x5a\xcf\x8c\x60\x5c\x76\x4a\xe5\x56\x90\x63\xd9\x5c\xc2\x5c\x6e\x58\xa1\x8c\x61\x52\x6f\x8c\x62\x8c\x63\x63\xde\x4e\xbd\x4d\x62\x63\xda\x59\x47\x8c\x64\x8c\x65\x4d\xa1\x51\xce\x8c\x66\x5c\xaa\x8c\x67\x8c\x68\x8c\x69\x55\xea\x63\x8f\x8c\x6a\x63\xdb\x8c\x6b\x4c\x96\x8c\x6c\x8c\x6d\x8c\x6e\x8c\x6f\x54\xe5\x8c\x70\x8c\x71\x52\xf4\x8c\x72\x8c\x73", /* 5b80 */ "\x63\x52\x52\xfd\x8c\x74\x56\x9d\x63\x53\x5b\x4c\x8c\x75\x5a\x8f\x55\xd7\x48\xb1\x8c\x76\x56\x6e\x57\x8b\x8c\x77\x8c\x78\x4d\xe9\x8c\x79\x8c\x7a\x8c\x7b\x63\x55\x8c\x7c\x63\x54\x8c\x7d\x5c\x7a\x4d\x79\x5b\xe5\x4b\xa7\x57\x91\x59\xca\x49\x46\x55\xb4\x8c\x7e\x4a\x89\x55\x94\x50\x6d\x58\xfa\x55\xd1\x63\x56\x4e\x62\x8c\x7f\x8c\x81\x8c\x82\x58\x7c\x4d\x4c\x8c\x83\x8c\x84\x8c\x85\x8c\x86\x5a\xd6\x8c\x87\x8c\x88\x4d\xa5\x59\x88\x58\x9d\x4e\xd1\x8c\x89\x63\x57\x54\xdc\x8c\x8a\x8c\x8b\x8c\x8c\x50\x8e\x49\x97\x56\x7e\x8c\x8d\x8c\x8e\x4e\xc4\x8c\x8f\x4e\xc3\x59\xf9\x52\x7c\x50\x7c\x8c\x90\x8c\x91\x8c\x92\x8c\x93\x4c\xba\x8c\x94\x8c\x95\x8c\x96\x52\x62\x8c\x97\x4d\xad\x5a\xa1\x8c\x98\x8c\x99\x8c\x9a\x8c\x9b\x8c\x9c\x8c\x9d\x8c\x9e\x8c\x9f\x8c\xa0\x54\x7e\x52\xae\x49\xeb\x8c\xa1\x4d\x71\x8c\xa2\x8c\xa3\x63\x5b\x51\x68\x8c\xa4\x8c\xa5\x5b\x4f\x8c\xa6\x8c\xa7\x8c\xa8\x8c\xa9\x8c\xaa\x63\x5c\x8c\xab\x63\x5e\x8c\xac\x8c\xad\x8c\xae\x8c\xaf\x8c\xb0\x8c\xb1\x8c\xb2\x4a\xe6\x4b\xd3\x56\x62\x59\x50\x4b\x5c\x8c\xb3\x8c\xb4\x55\xd8", /* 5c00 */ "\x8c\xb5\x4c\x83\x8c\xb6\x8c\xb7\x55\x85\x8c\xb8\x4f\x4b\x8c\xb9\x8c\xba\x57\xbd\x5c\x91\x8c\xbb\x8c\xbc\x8c\xbd\x8c\xbe\x58\xa0\x8c\xbf\x55\x79\x8c\xc0\x8c\xc1\x4b\xfa\x63\xd7\x4e\xe1\x8c\xc2\x4a\x5e\x8c\xc3\x55\x70\x8c\xc4\x63\xd8\x4a\x42\x8c\xc5\x8c\xc6\x8c\xc7\x8c\xc8\x5f\xcb\x8c\xc9\x5a\x68\x5f\xcc\x8c\xca\x59\xa1\x8c\xcb\x8c\xcc\x8c\xcd\x8c\xce\x5f\xcd\x8c\xcf\x8c\xd0\x8c\xd1\x8c\xd2\x4f\xcc\x8c\xd3\x8c\xd4\x5f\xce\x8c\xd5\x8c\xd6\x8c\xd7\x55\xab\x59\xfb\x4a\x7f\x63\x8b\x52\xe0\x4f\xa0\x57\xb1\x52\xf1\x4f\xd5\x53\xa7\x49\xe2\x8c\xd8\x8c\xd9\x4f\xd2\x8c\xda\x8c\xdb\x54\x9d\x56\xea\x4f\x8d\x57\xdc\x8c\xdc\x8c\xdd\x55\xb9\x53\xc0\x63\x8d\x58\xbb\x8c\xde\x8c\xdf\x8c\xe0\x5b\x59\x8c\xe1\x8c\xe2\x8c\xe3\x63\x8e\x8c\xe4\x8c\xe5\x8c\xe6\x8c\xe7\x55\xf3\x8c\xe8\x57\x60\x51\xc4\x8c\xe9\x63\x90\x8c\xea\x51\xc3\x63\x91\x8c\xeb\x8c\xec\x8c\xed\x8c\xee\x8c\xef\x8c\xf0\x8c\xf1\x63\x99\x57\x6d\x8c\xf2\x55\x5d\x8c\xf3\x8c\xf4\x8c\xf5\x8c\xf6\x8c\xf7\x8c\xf8\x8c\xf9\x59\xd8\x61\x48\x8c\xfa\x8c\xfb\x8c\xfc\x8c\xfd\x5a\x8d", /* 5c80 */ "\x8d\x41\x56\x8b\x53\xf0\x8d\x42\x8d\x43\x8d\x44\x8d\x45\x8d\x46\x61\x4c\x8d\x47\x8d\x48\x8d\x49\x61\x47\x61\x49\x8d\x4a\x8d\x4b\x61\x4a\x61\x4f\x8d\x4c\x8d\x4d\x49\xec\x8d\x4e\x61\x4b\x4c\xd9\x61\x4d\x61\x4e\x61\x50\x4b\x5a\x61\x51\x8d\x4f\x8d\x50\x8d\x51\x8d\x52\x8d\x53\x61\x53\x61\x58\x8d\x54\x8d\x55\x8d\x56\x8d\x57\x8d\x58\x59\x72\x8d\x59\x61\x56\x61\x55\x51\x8c\x8d\x5a\x8d\x5b\x8d\x5c\x61\x57\x8d\x5d\x5a\xbf\x8d\x5e\x61\x52\x8d\x5f\x61\x5a\x48\xb5\x8d\x60\x8d\x61\x8d\x62\x8d\x63\x61\x54\x8d\x64\x50\x9a\x8d\x65\x61\x59\x8d\x66\x8d\x67\x61\x5b\x8d\x68\x8d\x69\x8d\x6a\x8d\x6b\x8d\x6c\x8d\x6d\x61\x5e\x8d\x6e\x8d\x6f\x8d\x70\x8d\x71\x8d\x72\x8d\x73\x61\x5c\x8d\x74\x8d\x75\x8d\x76\x8d\x77\x8d\x78\x8d\x79\x5b\xc4\x8d\x7a\x8d\x7b\x8d\x7c\x8d\x7d\x8d\x7e\x8d\x7f\x8d\x81\x58\x5f\x8d\x82\x8d\x83\x61\x5d\x61\x5f\x51\xcc\x8d\x84\x4b\xea\x8d\x85\x5a\x99\x8d\x86\x8d\x87\x54\x6d\x8d\x88\x8d\x89\x4c\x86\x8d\x8a\x8d\x8b\x8d\x8c\x8d\x8d\x8d\x8e\x8d\x8f\x8d\x90\x8d\x91\x8d\x92\x8d\x93\x4f\xfd\x8d\x94\x8d\x95\x8d\x96\x8d\x97", /* 5d00 */ "\x8d\x98\x8d\x99\x61\x60\x61\x61\x8d\x9a\x8d\x9b\x61\x67\x4a\x88\x8d\x9c\x8d\x9d\x8d\x9e\x8d\x9f\x8d\xa0\x8d\xa1\x53\xe8\x8d\xa2\x8d\xa3\x8d\xa4\x8d\xa5\x8d\xa6\x4a\xdd\x8d\xa7\x59\x62\x8d\xa8\x8d\xa9\x8d\xaa\x8d\xab\x61\x68\x8d\xac\x8d\xad\x61\x66\x8d\xae\x8d\xaf\x8d\xb0\x8d\xb1\x8d\xb2\x61\x65\x8d\xb3\x61\x63\x61\x62\x8d\xb4\x49\x60\x8d\xb5\x8d\xb6\x8d\xb7\x5b\x58\x61\x64\x8d\xb8\x8d\xb9\x8d\xba\x8d\xbb\x8d\xbc\x61\x6b\x8d\xbd\x8d\xbe\x8d\xbf\x8d\xc0\x8d\xc1\x8d\xc2\x8d\xc3\x8d\xc4\x61\x6c\x61\x6a\x8d\xc5\x8d\xc6\x8d\xc7\x8d\xc8\x8d\xc9\x8d\xca\x8d\xcb\x8d\xcc\x68\x9b\x8d\xcd\x8d\xce\x61\x73\x61\x72\x54\x56\x8d\xcf\x8d\xd0\x8d\xd1\x8d\xd2\x8d\xd3\x8d\xd4\x8d\xd5\x8d\xd6\x8d\xd7\x8d\xd8\x8d\xd9\x61\x69\x8d\xda\x8d\xdb\x61\x6e\x8d\xdc\x61\x70\x8d\xdd\x8d\xde\x8d\xdf\x8d\xe0\x8d\xe1\x8d\xe2\x8d\xe3\x8d\xe4\x8d\xe5\x8d\xe6\x8d\xe7\x61\x74\x8d\xe8\x61\x71\x61\x6d\x8d\xe9\x8d\xea\x61\x6f\x8d\xeb\x8d\xec\x8d\xed\x8d\xee\x61\x75\x8d\xef\x8d\xf0\x8d\xf1\x8d\xf2\x8d\xf3\x8d\xf4\x8d\xf5\x8d\xf6\x8d\xf7\x8d\xf8\x8d\xf9", /* 5d80 */ "\x8d\xfa\x8d\xfb\x61\x76\x8d\xfc\x8d\xfd\x8e\x41\x8e\x42\x8e\x43\x8e\x44\x8e\x45\x8e\x46\x8e\x47\x8e\x48\x8e\x49\x8e\x4a\x8e\x4b\x8e\x4c\x8e\x4d\x8e\x4e\x8e\x4f\x8e\x50\x8e\x51\x8e\x52\x8e\x53\x8e\x54\x61\x77\x8e\x55\x8e\x56\x8e\x57\x61\x78\x8e\x58\x8e\x59\x8e\x5a\x8e\x5b\x8e\x5c\x8e\x5d\x8e\x5e\x8e\x5f\x8e\x60\x8e\x61\x8e\x62\x8e\x63\x8e\x64\x8e\x65\x8e\x66\x8e\x67\x8e\x68\x8e\x69\x8e\x6a\x8e\x6b\x8e\x6c\x8e\x6d\x8e\x6e\x8e\x6f\x8e\x70\x61\x7a\x8e\x71\x8e\x72\x8e\x73\x8e\x74\x8e\x75\x8e\x76\x8e\x77\x8e\x78\x8e\x79\x8e\x7a\x8e\x7b\x8e\x7c\x8e\x7d\x61\x7b\x8e\x7e\x8e\x7f\x8e\x81\x8e\x82\x8e\x83\x8e\x84\x8e\x85\x57\xa0\x8e\x86\x8e\x87\x8e\x88\x8e\x89\x8e\x8a\x8e\x8b\x8e\x8c\x8e\x8d\x8e\x8e\x8e\x8f\x8e\x90\x8e\x91\x8e\x92\x64\x7d\x8e\x93\x4a\xa7\x5b\xdc\x8e\x94\x8e\x95\x59\x52\x4a\x52\x8e\x96\x8e\x97\x4d\x44\x5c\x94\x54\x69\x4f\xdd\x4d\x4e\x8e\x98\x57\xd6\x8e\x99\x8e\x9a\x49\xed\x5e\x6f\x8e\x9b\x4e\xb9\x59\xd0\x56\x68\x48\xcc\x8e\x9c\x8e\x9d\x58\x90\x8e\x9e\x8e\x9f\x8e\xa0\x8e\xa1\x8e\xa2\x5d\x84\x4f\x8e\x8e\xa3", /* 5e00 */ "\x8e\xa4\x49\x72\x55\xcf\x49\xbb\x8e\xa5\x56\x47\x4c\x4b\x8e\xa6\x55\xa5\x8e\xa7\x8e\xa8\x8e\xa9\x58\x43\x8e\xaa\x8e\xab\x60\xf7\x5b\x6a\x60\xfa\x8e\xac\x8e\xad\x60\xf9\x53\x61\x56\xfa\x8e\xae\x51\x51\x60\xf8\x5b\xe2\x49\xae\x5b\xc3\x4b\x7b\x8e\xaf\x8e\xb0\x8e\xb1\x8e\xb2\x8e\xb3\x8e\xb4\x8e\xb5\x8e\xb6\x4a\xf7\x5b\xa0\x8e\xb7\x8e\xb8\x8e\xb9\x8e\xba\x8e\xbb\x58\x4f\x48\xee\x8e\xbc\x8e\xbd\x60\xfb\x8e\xbe\x8e\xbf\x8e\xc0\x8e\xc1\x8e\xc2\x61\x41\x4a\x43\x8e\xc3\x8e\xc4\x60\xfc\x60\xfd\x52\x51\x8e\xc5\x8e\xc6\x8e\xc7\x8e\xc8\x52\x7d\x8e\xc9\x61\x42\x4c\x9a\x8e\xca\x8e\xcb\x8e\xcc\x8e\xcd\x8e\xce\x8e\xcf\x4e\x6f\x8e\xd0\x8e\xd1\x8e\xd2\x8e\xd3\x8e\xd4\x8e\xd5\x8e\xd6\x61\x43\x52\xba\x8e\xd7\x8e\xd8\x8e\xd9\x8e\xda\x8e\xdb\x61\x44\x8e\xdc\x8e\xdd\x61\x45\x8e\xde\x8e\xdf\x61\x46\x4a\xb0\x8e\xe0\x8e\xe1\x8e\xe2\x8e\xe3\x8e\xe4\x8e\xe5\x8e\xe6\x8e\xe7\x8e\xe8\x8e\xe9\x8e\xea\x8e\xeb\x8e\xec\x8e\xed\x8e\xee\x4c\xc8\x53\xbc\x52\xe9\x8e\xef\x49\xa1\x8e\xf0\x58\xd1\x8e\xf1\x64\x7b\x4e\x63\x5a\x77\x5a\x64\x8e\xf2\x4d\x84", /* 5e80 */ "\x61\xce\x8e\xf3\x8e\xf4\x8e\xf5\x5c\x4f\x8e\xf6\x54\x8d\x49\x73\x8e\xf7\x8e\xf8\x4a\xb1\x61\xd0\x8e\xf9\x8e\xfa\x8e\xfb\x58\xf1\x51\xad\x61\xcf\x8e\xfc\x50\x83\x5a\x46\x4b\x77\x61\xd1\x4b\x8b\x8e\xfd\x52\x8e\x4c\xfc\x8f\x41\x4c\xad\x8f\x42\x53\x73\x4c\x6f\x61\xd3\x8f\x43\x8f\x44\x8f\x45\x8f\x46\x61\xd2\x4b\xc7\x5c\x9a\x8f\x47\x8f\x48\x8f\x49\x8f\x4a\x8f\x4b\x57\x45\x8f\x4c\x8f\x4d\x8f\x4e\x8f\x4f\x8f\x50\x61\xd7\x8f\x51\x61\xd5\x55\xfb\x50\x55\x5a\x59\x61\xd4\x8f\x52\x8f\x53\x8f\x54\x8f\x55\x61\xd6\x8f\x56\x8f\x57\x8f\x58\x8f\x59\x8f\x5a\x8f\x5b\x8f\x5c\x8f\x5d\x8f\x5e\x8f\x5f\x51\x4e\x50\xc7\x8f\x60\x8f\x61\x8f\x62\x8f\x63\x8f\x64\x8f\x65\x61\xda\x61\xd9\x50\xa9\x8f\x66\x8f\x67\x51\x6e\x8f\x68\x8f\x69\x8f\x6a\x8f\x6b\x61\xdb\x8f\x6c\x8f\x6d\x8f\x6e\x8f\x6f\x8f\x70\x8f\x71\x8f\x72\x8f\x73\x8f\x74\x8f\x75\x8f\x76\x8f\x77\x61\xdc\x8f\x78\x61\xdd\x8f\x79\x8f\x7a\x8f\x7b\x8f\x7c\x8f\x7d\x8f\x7e\x8f\x7f\x8f\x81\x8f\x82\x5e\x68\x8f\x83\x59\x73\x57\x42\x8f\x84\x8f\x85\x4f\x48\x8f\x86\x8f\x87\x8f\x88\x5f\xc2\x5c\xa4", /* 5f00 */ "\x50\x4a\x5e\x6d\x59\xeb\x53\xf9\x53\x4a\x8f\x89\x8f\x8a\x8f\x8b\x5f\xc3\x8f\x8c\x49\x77\x60\x4e\x8f\x8d\x8f\x8e\x8f\x8f\x55\xbc\x8f\x90\x60\x51\x8f\x91\x4d\x4d\x8f\x92\x59\xfc\x8f\x93\x4c\xa4\x4d\xea\x8f\x94\x8f\x95\x4a\x7a\x8f\x96\x8f\x97\x8f\x98\x4b\x7c\x5b\x65\x8f\x99\x8f\x9a\x8f\x9b\x8f\x9c\x52\x76\x58\x72\x4e\x41\x8f\x9d\x63\x94\x63\x93\x8f\x9e\x8f\x9f\x63\x95\x8f\xa0\x57\x85\x8f\xa1\x54\xf4\x8f\xa2\x8f\xa3\x8f\xa4\x8f\xa5\x8f\xa6\x8f\xa7\x8f\xa8\x4b\x4f\x54\x5f\x8f\xa9\x63\x97\x8f\xaa\x8f\xab\x8f\xac\x66\xaf\x8f\xad\x8f\xae\x8f\xaf\x8f\xb0\x8f\xb1\x8f\xb2\x8f\xb3\x8f\xb4\x8f\xb5\x8f\xb6\x8f\xb7\x8f\xb8\x8f\xb9\x8f\xba\x8f\xbb\x63\x87\x8f\xbc\x4d\x8a\x4b\x51\x8f\xbd\x51\xbb\x63\x89\x63\x88\x63\x8a\x8f\xbe\x8f\xbf\x8f\xc0\x8f\xc1\x59\xcc\x8f\xc2\x8f\xc3\x8f\xc4\x61\x8b\x58\xcd\x8f\xc5\x57\x4e\x8f\xc6\x59\x86\x8f\xc7\x8f\xc8\x49\xc9\x49\x8c\x8f\xc9\x49\x93\x53\x8e\x8f\xca\x8f\xcb\x5b\x63\x5a\x50\x8f\xcc\x61\x7c\x8f\xcd\x8f\xce\x8f\xcf\x61\x7d\x8f\xd0\x59\xda\x8f\xd1\x4a\x59\x49\x6b\x8f\xd2\x8f\xd3\x8f\xd4", /* 5f80 */ "\x57\x9a\x5b\x98\x61\x7e\x8f\xd5\x4f\xb5\x4a\xfc\x8f\xd6\x61\x7f\x4d\xdb\x61\x81\x4e\x52\x51\xc8\x61\x82\x8f\xd7\x8f\xd8\x8f\xd9\x58\xeb\x8f\xda\x57\x5d\x8f\xdb\x8f\xdc\x61\x83\x8f\xdd\x4b\x63\x53\x67\x61\x84\x8f\xde\x8f\xdf\x61\x85\x8f\xe0\x8f\xe1\x8f\xe2\x8f\xe3\x5a\x9a\x8f\xe4\x8f\xe5\x8f\xe6\x8f\xe7\x8f\xe8\x8f\xe9\x61\x86\x8f\xea\x59\x4d\x8f\xeb\x8f\xec\x61\x87\x57\xa1\x8f\xed\x8f\xee\x8f\xef\x8f\xf0\x8f\xf1\x8f\xf2\x61\x88\x8f\xf3\x4b\x62\x8f\xf4\x8f\xf5\x8f\xf6\x8f\xf7\x61\x89\x4e\x75\x8f\xf8\x8f\xf9\x8f\xfa\x8f\xfb\x8f\xfc\x58\xc3\x61\xdf\x49\x78\x59\xe3\x8f\xfd\x90\x41\x61\xe0\x90\x42\x90\x43\x4e\xc8\x54\xcb\x90\x44\x61\xe2\x66\xfd\x66\xfc\x60\x4f\x90\x45\x90\x46\x90\x47\x61\xe1\x5b\xbd\x57\x9d\x52\x46\x90\x48\x90\x49\x90\x4a\x62\x63\x90\x4b\x90\x4c\x5b\xd1\x61\xe6\x90\x4d\x90\x4e\x61\xe7\x90\x4f\x90\x50\x5a\x67\x90\x51\x90\x52\x61\xeb\x50\x8d\x90\x53\x61\xec\x61\xe4\x90\x54\x90\x55\x4a\x60\x90\x56\x90\x57\x90\x58\x52\xed\x90\x59\x90\x5a\x61\xed\x90\x5b\x90\x5c\x58\xc2\x90\x5d\x4d\xf5\x61\xe8\x4c\x7e", /* 6000 */ "\x4e\x53\x56\xab\x56\x6b\x61\xe3\x61\xe5\x61\xe9\x61\xea\x90\x5e\x90\x5f\x90\x60\x61\xf6\x90\x61\x90\x62\x61\xf3\x5a\xf4\x61\xf2\x90\x63\x90\x64\x53\x4d\x90\x65\x5b\x9b\x53\x62\x49\xbf\x90\x66\x90\x67\x61\xee\x90\x68\x61\xf1\x51\x4f\x56\x5c\x90\x69\x90\x6a\x4b\x41\x61\xf8\x90\x6b\x90\x6c\x90\x6d\x4e\xb0\x61\xf0\x58\xd3\x5a\xb8\x61\xf4\x4d\x76\x61\xf5\x90\x6e\x90\x6f\x90\x70\x54\x73\x90\x71\x90\x72\x90\x73\x90\x74\x90\x75\x61\xef\x90\x76\x90\x77\x90\x78\x90\x79\x90\x7a\x5c\x7c\x67\x41\x90\x7b\x90\x7c\x61\xf7\x90\x7d\x67\x45\x61\xfd\x55\xd0\x90\x7e\x90\x7f\x90\x81\x90\x82\x90\x83\x90\x84\x90\x85\x51\x55\x90\x86\x4e\x70\x90\x87\x90\x88\x50\x76\x90\x89\x4d\xe2\x90\x8a\x90\x8b\x56\x41\x90\x8c\x90\x8d\x90\x8e\x67\x46\x67\x43\x90\x8f\x90\x90\x67\x42\x90\x91\x90\x92\x90\x93\x90\x94\x4e\x76\x67\x47\x58\xf3\x90\x95\x90\x96\x67\x44\x4d\xdd\x4b\xf6\x62\x41\x4b\xb1\x56\xf0\x4d\x47\x90\x97\x58\x42\x54\x41\x90\x98\x90\x99\x50\x72\x90\x9a\x90\x9b\x4b\xf0\x90\x9c\x61\xf9\x61\xfa\x61\xfc\x61\xfb\x52\xd4\x62\x42\x90\x9d\x5a\x61", /* 6080 */ "\x90\x9e\x90\x9f\x90\xa0\x62\x47\x54\x64\x90\xa1\x90\xa2\x90\xa3\x90\xa4\x58\x44\x90\xa5\x90\xa6\x62\x49\x4d\xb6\x90\xa7\x90\xa8\x90\xa9\x90\xaa\x62\x48\x90\xab\x4e\x7a\x90\xac\x62\x43\x90\xad\x90\xae\x90\xaf\x62\x44\x62\x4a\x90\xb0\x62\x46\x90\xb1\x57\xf1\x5a\x66\x90\xb2\x90\xb3\x4e\x5c\x90\xb4\x90\xb5\x5a\xc2\x90\xb6\x52\xf9\x90\xb7\x90\xb8\x67\x48\x58\xfb\x62\x45\x90\xb9\x52\x96\x90\xba\x62\x4d\x49\x4f\x90\xbb\x62\x52\x90\xbc\x90\xbd\x90\xbe\x4e\xc1\x90\xbf\x90\xc0\x62\x4c\x4b\x5f\x90\xc1\x90\xc2\x90\xc3\x90\xc4\x90\xc5\x90\xc6\x90\xc7\x90\xc8\x54\x8a\x62\x50\x90\xc9\x90\xca\x90\xcb\x4f\xa9\x57\x90\x90\xcc\x90\xcd\x90\xce\x90\xcf\x90\xd0\x4e\x94\x90\xd1\x90\xd2\x90\xd3\x56\xe7\x90\xd4\x90\xd5\x62\x4f\x90\xd6\x62\x51\x90\xd7\x58\x47\x62\x4e\x90\xd8\x57\xa8\x4e\x7d\x90\xd9\x90\xda\x90\xdb\x90\xdc\x90\xdd\x4b\x8c\x4f\xe4\x49\xd1\x4a\x6d\x90\xde\x49\x59\x62\x4b\x49\xd0\x4b\x4c\x4d\x7f\x4b\xe7\x90\xdf\x90\xe0\x58\x8c\x62\x57\x90\xe1\x4e\x6c\x90\xe2\x90\xe3\x54\xc6\x58\xc9\x90\xe4\x90\xe5\x90\xe6\x90\xe7\x90\xe8", /* 6100 */ "\x62\x58\x4a\x8f\x90\xe9\x90\xea\x90\xeb\x90\xec\x67\x49\x90\xed\x5a\x9b\x5a\x85\x90\xee\x90\xef\x90\xf0\x67\x4a\x62\x59\x59\xe1\x90\xf1\x90\xf2\x90\xf3\x90\xf4\x90\xf5\x62\x55\x90\xf6\x90\xf7\x90\xf8\x90\xf9\x5a\x7e\x90\xfa\x90\xfb\x90\xfc\x90\xfd\x4c\xcf\x62\x53\x91\x41\x91\x42\x62\x56\x4c\x7f\x91\x43\x62\x54\x50\xa1\x91\x44\x91\x45\x91\x46\x62\x5a\x91\x47\x91\x48\x91\x49\x91\x4a\x91\x4b\x91\x4c\x91\x4d\x91\x4e\x91\x4f\x91\x50\x91\x51\x91\x52\x91\x53\x91\x54\x91\x55\x91\x56\x91\x57\x91\x58\x91\x59\x5a\xb7\x91\x5a\x91\x5b\x91\x5c\x91\x5d\x91\x5e\x91\x5f\x91\x60\x91\x61\x4a\xc7\x91\x62\x62\x5b\x91\x63\x4e\x65\x91\x64\x55\x98\x91\x65\x91\x66\x55\x86\x91\x67\x91\x68\x91\x69\x52\xbc\x91\x6a\x91\x6b\x91\x6c\x91\x6d\x91\x6e\x91\x6f\x91\x70\x67\x4b\x91\x71\x91\x72\x91\x73\x91\x74\x51\xfc\x91\x75\x91\x76\x91\x77\x91\x78\x4e\x7b\x50\x4e\x91\x79\x91\x7a\x91\x7b\x91\x7c\x91\x7d\x91\x7e\x91\x7f\x57\xbe\x91\x81\x91\x82\x91\x83\x91\x84\x62\x5c\x91\x85\x50\x56\x91\x86\x91\x87\x91\x88\x91\x89\x91\x8a\x91\x8b\x91\x8c\x91\x8d", /* 6180 */ "\x91\x8e\x91\x8f\x91\x90\x91\x91\x91\x92\x91\x93\x91\x94\x91\x95\x91\x96\x91\x97\x91\x98\x49\x90\x91\x99\x91\x9a\x5a\xf6\x91\x9b\x91\x9c\x91\x9d\x91\x9e\x91\x9f\x62\x5e\x91\xa0\x91\xa1\x91\xa2\x91\xa3\x91\xa4\x91\xa5\x91\xa6\x91\xa7\x67\x4d\x91\xa8\x91\xa9\x91\xaa\x91\xab\x91\xac\x91\xad\x91\xae\x91\xaf\x91\xb0\x62\x5f\x4d\xa8\x67\x4c\x91\xb1\x91\xb2\x62\x5d\x91\xb3\x91\xb4\x91\xb5\x91\xb6\x91\xb7\x91\xb8\x91\xb9\x91\xba\x91\xbb\x91\xbc\x62\x60\x91\xbd\x91\xbe\x91\xbf\x91\xc0\x91\xc1\x91\xc2\x4d\xb5\x91\xc3\x91\xc4\x91\xc5\x4b\xad\x91\xc6\x91\xc7\x91\xc8\x91\xc9\x91\xca\x58\xb7\x91\xcb\x48\xc2\x67\x4e\x91\xcc\x91\xcd\x91\xce\x91\xcf\x91\xd0\x67\x4f\x50\xc0\x91\xd1\x62\x61\x91\xd2\x91\xd3\x91\xd4\x91\xd5\x91\xd6\x91\xd7\x91\xd8\x91\xd9\x91\xda\x91\xdb\x91\xdc\x91\xdd\x91\xde\x91\xdf\x91\xe0\x91\xe1\x91\xe2\x53\x53\x91\xe3\x91\xe4\x91\xe5\x91\xe6\x91\xe7\x91\xe8\x91\xe9\x91\xea\x91\xeb\x91\xec\x91\xed\x91\xee\x91\xef\x91\xf0\x62\x62\x91\xf1\x91\xf2\x91\xf3\x91\xf4\x91\xf5\x91\xf6\x91\xf7\x91\xf8\x91\xf9\x5e\xb1", /* 6200 */ "\x91\xfa\x91\xfb\x91\xfc\x91\xfd\x92\x41\x92\x42\x67\x50\x92\x43\x4c\xe9\x92\x44\x57\xeb\x65\xa6\x58\xe6\x55\xf8\x54\xd5\x58\x57\x4a\x69\x57\xd1\x4f\x85\x92\x45\x92\x46\x62\x7e\x4e\x93\x65\xa7\x5b\x5d\x92\x47\x53\xdc\x65\xa8\x92\x48\x92\x49\x92\x4a\x65\xa9\x92\x4b\x65\xab\x65\xaa\x92\x4c\x65\xad\x65\xac\x92\x4d\x92\x4e\x92\x4f\x92\x50\x4f\x78\x92\x51\x65\xae\x92\x52\x51\xbd\x92\x53\x92\x54\x92\x55\x92\x56\x4a\xc0\x4a\xf6\x92\x57\x92\x58\x4e\x47\x92\x59\x92\x5a\x92\x5b\x92\x5c\x92\x5d\x66\xe5\x66\xe4\x4c\x5f\x56\x9a\x49\x83\x92\x5e\x66\xe6\x92\x5f\x92\x60\x92\x61\x55\x68\x66\xe7\x66\xe8\x92\x62\x55\xd5\x5f\xcf\x49\xc4\x5a\xf9\x92\x63\x92\x64\x53\xca\x48\xc6\x4a\xf1\x54\xd2\x92\x65\x92\x66\x92\x67\x57\x70\x92\x68\x92\x69\x50\x58\x92\x6a\x92\x6b\x92\x6c\x92\x6d\x92\x6e\x92\x6f\x92\x70\x50\x7b\x92\x71\x92\x72\x54\x44\x5b\xb3\x92\x73\x50\xa8\x5f\xd0\x55\x48\x59\x90\x53\x44\x48\xe6\x4a\x56\x54\xc4\x92\x74\x92\x75\x48\xe1\x92\x76\x92\x77\x4c\x97\x92\x78\x92\x79\x53\x9b\x92\x7a\x92\x7b\x4b\xf2\x92\x7c\x5b\x72\x4a\x70", /* 6280 */ "\x4e\xbb\x92\x7d\x92\x7e\x92\x7f\x4a\x4d\x92\x81\x92\x82\x92\x83\x92\x84\x4f\xf0\x48\xd0\x92\x85\x92\x86\x92\x87\x92\x88\x92\x89\x92\x8a\x59\xd5\x55\xe2\x5c\x45\x92\x8b\x57\x56\x4b\xb5\x50\x59\x5b\x7b\x92\x8c\x4c\xa6\x53\x77\x92\x8d\x92\x8e\x92\x8f\x5f\xd1\x50\x79\x51\xd4\x54\x60\x92\x90\x4e\x44\x49\x48\x92\x91\x92\x92\x53\x8b\x92\x93\x92\x94\x53\x9c\x56\xa6\x92\x95\x92\x96\x92\x97\x92\x98\x49\x47\x92\x99\x92\x9a\x92\x9b\x4b\x76\x92\x9c\x92\x9d\x92\x9e\x52\xa7\x92\x9f\x5f\xd2\x59\x5a\x4a\x8a\x92\xa0\x52\x93\x92\xa1\x92\xa2\x4c\x98\x92\xa3\x5b\xf3\x4b\x43\x49\xef\x52\xb3\x52\xe8\x50\xac\x5f\xd3\x92\xa4\x48\xe7\x53\x64\x51\x81\x92\xa5\x4d\x75\x92\xa6\x4f\xdb\x57\x78\x48\xcd\x92\xa7\x57\x6f\x5f\xd5\x4f\xcf\x5c\x5e\x5f\xd4\x5b\x70\x48\xdc\x92\xa8\x92\xa9\x52\xe1\x92\xaa\x92\xab\x51\xa2\x4e\xef\x92\xac\x5a\x55\x50\xb8\x53\x41\x49\xa5\x5a\xf0\x92\xad\x92\xae\x50\xa7\x55\xc2\x5f\xd6\x5b\x9d\x92\xaf\x4d\x50\x92\xb0\x54\xac\x56\x49\x92\xb1\x5f\xd8\x50\x5d\x92\xb2\x92\xb3\x92\xb4\x92\xb5\x53\xb3\x5c\x47\x55\xaf\x52\xc2", /* 6300 */ "\x92\xb6\x4a\x76\x4d\x72\x92\xb7\x92\xb8\x92\xb9\x92\xba\x5b\xb7\x65\xfb\x48\xb3\x92\xbb\x92\xbc\x92\xbd\x92\xbe\x50\x87\x92\xbf\x92\xc0\x56\xf3\x92\xc1\x92\xc2\x92\xc3\x92\xc4\x57\x7a\x92\xc5\x92\xc6\x92\xc7\x5b\xbe\x51\xcd\x92\xc8\x57\xcd\x56\xa1\x58\xad\x52\xd2\x4b\x52\x5f\xd7\x5b\x96\x4e\xb6\x4e\x73\x92\xc9\x92\xca\x48\xa3\x92\xcb\x53\x52\x4a\xeb\x92\xcc\x92\xcd\x92\xce\x5b\x92\x92\xcf\x92\xd0\x65\xfc\x92\xd1\x92\xd2\x92\xd3\x92\xd4\x92\xd5\x92\xd6\x5f\xd9\x57\x46\x92\xd7\x92\xd8\x57\x8d\x92\xd9\x92\xda\x92\xdb\x92\xdc\x57\xe5\x5f\xdb\x92\xdd\x57\x51\x50\xa5\x92\xde\x92\xdf\x5c\x5d\x92\xe0\x5f\xda\x48\xc5\x4d\xb3\x55\x73\x52\xf2\x4f\xe7\x92\xe1\x92\xe2\x92\xe3\x92\xe4\x49\xb5\x92\xe5\x92\xe6\x92\xe7\x92\xe8\x92\xe9\x92\xea\x92\xeb\x92\xec\x50\xcb\x56\x91\x92\xed\x4e\xf0\x4e\x5b\x4b\x57\x92\xee\x92\xef\x92\xf0\x53\x96\x92\xf1\x5f\xe5\x92\xf2\x92\xf3\x92\xf4\x5f\xe2\x4f\xdc\x92\xf5\x92\xf6\x5f\xde\x92\xf7\x92\xf8\x92\xf9\x92\xfa\x4a\xb6\x4f\x7d\x92\xfb\x92\xfc\x5f\xdf\x52\xec\x92\xfd\x93\x41\x93\x42\x93\x43", /* 6380 */ "\x58\x66\x93\x44\x4b\x81\x93\x45\x93\x46\x93\x47\x93\x48\x4b\xdd\x55\xd9\x4b\x95\x5f\xe4\x93\x49\x5b\x66\x93\x4a\x5f\xe0\x56\xcc\x53\xfd\x93\x4b\x53\x65\x93\x4c\x93\x4d\x93\x4e\x59\xb3\x93\x4f\x4f\xf1\x93\x50\x93\x51\x93\x52\x93\x53\x93\x54\x93\x55\x93\x56\x51\xd2\x93\x57\x56\xbc\x4a\x58\x93\x58\x4f\x73\x93\x59\x50\x78\x57\x66\x59\x7a\x4a\xea\x93\x5a\x5f\xe3\x5f\xdc\x5f\xe6\x93\x5b\x65\xfd\x93\x5c\x93\x5d\x51\xaf\x5f\xe1\x93\x5e\x93\x5f\x5b\xbf\x4b\x47\x93\x60\x49\xf3\x93\x61\x5f\xe7\x93\x62\x5f\xf1\x93\x63\x93\x64\x93\x65\x93\x66\x93\x67\x5f\xec\x93\x68\x5f\xf0\x93\x69\x93\x6a\x54\xdf\x93\x6b\x93\x6c\x93\x6d\x5c\x82\x5f\xee\x52\x89\x56\xe0\x93\x6e\x49\xe4\x93\x6f\x93\x70\x93\x71\x59\xbd\x93\x72\x93\x73\x93\x74\x93\x75\x93\x76\x93\x77\x93\x78\x5f\xed\x93\x79\x5f\xea\x57\xd4\x93\x7a\x4a\xa6\x93\x7b\x93\x7c\x93\x7d\x93\x7e\x93\x7f\x50\x4b\x4f\xbd\x93\x81\x93\x82\x4f\x72\x93\x83\x93\x84\x93\x85\x93\x86\x5f\xe8\x93\x87\x5a\xad\x93\x88\x5f\xdd\x93\x89\x5f\xe9\x93\x8a\x93\x8b\x93\x8c\x93\x8d\x50\xbe\x93\x8e\x5f\xeb", /* 6400 */ "\x49\xf2\x4c\xe8\x51\xa6\x93\x8f\x93\x90\x4f\x61\x93\x91\x93\x92\x93\x93\x93\x94\x93\x95\x5f\xf4\x5f\xf7\x93\x96\x93\x97\x49\xaa\x4a\xa3\x93\x98\x93\x99\x4a\xe9\x55\x46\x93\x9a\x93\x9b\x93\x9c\x93\x9d\x93\x9e\x93\x9f\x5f\xf5\x56\x71\x93\xa0\x4c\xe2\x93\xa1\x5f\xf6\x5f\xf9\x93\xa2\x93\xa3\x93\xa4\x93\xa5\x5f\xf8\x93\xa6\x93\xa7\x93\xa8\x56\xc1\x93\xa9\x48\xe0\x4a\xed\x93\xaa\x93\xab\x93\xac\x93\xad\x93\xae\x93\xaf\x63\x5a\x93\xb0\x93\xb1\x93\xb2\x93\xb3\x93\xb4\x58\xae\x93\xb5\x93\xb6\x49\xea\x93\xb7\x66\x41\x93\xb8\x5f\xf3\x93\xb9\x93\xba\x55\x84\x5f\xf2\x48\xd9\x59\xa0\x49\x98\x93\xbb\x56\xae\x93\xbc\x93\xbd\x93\xbe\x93\xbf\x93\xc0\x93\xc1\x93\xc2\x5f\xef\x93\xc3\x56\x44\x93\xc4\x93\xc5\x93\xc6\x5b\x4a\x93\xc7\x93\xc8\x93\xc9\x93\xca\x93\xcb\x5f\xfa\x93\xcc\x93\xcd\x93\xce\x93\xcf\x93\xd0\x93\xd1\x93\xd2\x93\xd3\x4a\xdc\x93\xd4\x52\xa5\x93\xd5\x93\xd6\x93\xd7\x5f\xfc\x93\xd8\x93\xd9\x93\xda\x93\xdb\x93\xdc\x93\xdd\x93\xde\x93\xdf\x93\xe0\x93\xe1\x52\x9f\x52\xa0\x60\x41\x93\xe2\x93\xe3\x93\xe4\x93\xe5\x93\xe6", /* 6480 */ "\x93\xe7\x93\xe8\x51\x6c\x93\xe9\x5f\xfb\x4f\xee\x93\xea\x53\xb1\x93\xeb\x93\xec\x93\xed\x93\xee\x93\xef\x93\xf0\x93\xf1\x93\xf2\x93\xf3\x4a\x65\x54\xf5\x93\xf4\x93\xf5\x56\x5a\x5f\xfd\x93\xf6\x93\xf7\x60\x44\x93\xf8\x93\xf9\x93\xfa\x93\xfb\x5c\x52\x93\xfc\x93\xfd\x94\x41\x94\x42\x94\x43\x4a\x57\x94\x44\x94\x45\x94\x46\x94\x47\x51\x63\x94\x48\x94\x49\x54\x6b\x49\xa4\x4a\xe8\x94\x4a\x5c\x4b\x94\x4b\x94\x4c\x94\x4d\x94\x4e\x52\xeb\x94\x4f\x60\x42\x60\x43\x94\x50\x60\x45\x94\x51\x4d\xb2\x94\x52\x94\x53\x94\x54\x60\x46\x94\x55\x50\xdd\x94\x56\x94\x57\x55\x63\x94\x58\x94\x59\x94\x5a\x94\x5b\x94\x5c\x94\x5d\x94\x5e\x49\xd8\x54\x87\x94\x5f\x60\x47\x94\x60\x54\x7c\x94\x61\x94\x62\x94\x63\x94\x64\x60\x48\x66\x42\x94\x65\x94\x66\x94\x67\x94\x68\x94\x69\x56\x73\x94\x6a\x94\x6b\x94\x6c\x60\x4a\x94\x6d\x60\x49\x94\x6e\x49\xc0\x94\x6f\x94\x70\x94\x71\x94\x72\x94\x73\x94\x74\x94\x75\x94\x76\x94\x77\x94\x78\x94\x79\x94\x7a\x94\x7b\x94\x7c\x94\x7d\x94\x7e\x94\x7f\x94\x81\x94\x82\x94\x83\x94\x84\x94\x85\x94\x86\x94\x87\x94\x88", /* 6500 */ "\x53\x6a\x94\x89\x94\x8a\x94\x8b\x94\x8c\x94\x8d\x94\x8e\x94\x8f\x94\x90\x60\x4b\x94\x91\x94\x92\x94\x93\x94\x94\x94\x95\x94\x96\x94\x97\x94\x98\x5a\xdb\x94\x99\x94\x9a\x94\x9b\x94\x9c\x94\x9d\x54\xc0\x94\x9e\x94\x9f\x94\xa0\x94\xa1\x94\xa2\x94\xa3\x94\xa4\x94\xa5\x94\xa6\x94\xa7\x94\xa8\x94\xa9\x60\x4c\x94\xaa\x94\xab\x94\xac\x94\xad\x94\xae\x4f\xef\x94\xaf\x94\xb0\x60\x4d\x5b\xa6\x94\xb1\x94\xb2\x94\xb3\x94\xb4\x65\xb6\x66\x56\x55\xd4\x94\xb5\x5c\xfb\x4c\xc3\x94\xb6\x4d\x45\x94\xb7\x94\xb8\x4c\x65\x5b\x9f\x94\xb9\x94\xba\x94\xbb\x94\xbc\x94\xbd\x4d\x6a\x94\xbe\x94\xbf\x58\xa6\x6a\xcc\x94\xc0\x94\xc1\x4b\x70\x94\xc2\x94\xc3\x52\x95\x94\xc4\x4f\xc7\x94\xc5\x94\xc6\x94\xc7\x66\x57\x48\xbc\x94\xc8\x94\xc9\x4f\x6c\x94\xca\x51\x52\x94\xcb\x49\x76\x4a\x48\x94\xcc\x94\xcd\x94\xce\x4c\xd1\x55\x42\x94\xcf\x94\xd0\x4b\xd7\x94\xd1\x94\xd2\x94\xd3\x94\xd4\x66\x58\x4f\xb3\x94\xd5\x94\xd6\x94\xd7\x55\xfc\x94\xd8\x54\x63\x94\xd9\x5b\x9c\x94\xda\x94\xdb\x4c\x94\x94\xdc\x94\xdd\x94\xde\x94\xdf\x94\xe0\x94\xe1\x94\xe2\x94\xe3", /* 6580 */ "\x94\xe4\x94\xe5\x94\xe6\x94\xe7\x94\xe8\x94\xe9\x94\xea\x57\xc3\x94\xeb\x94\xec\x94\xed\x5b\x4b\x49\x94\x94\xee\x94\xef\x94\xf0\x66\xb2\x48\xde\x94\xf1\x66\xb4\x94\xf2\x94\xf3\x94\xf4\x4b\xb6\x94\xf5\x51\x6f\x94\xf6\x6b\x9b\x58\xb0\x94\xf7\x94\xf8\x5b\x86\x94\xf9\x57\xd2\x94\xfa\x94\xfb\x4f\x90\x4a\x83\x94\xfc\x4c\xaa\x94\xfd\x5b\x56\x95\x41\x67\x5d\x95\x42\x4b\xce\x95\x43\x56\x59\x58\xc1\x95\x44\x95\x45\x95\x46\x95\x47\x95\x48\x95\x49\x95\x4a\x95\x4b\x4c\x5d\x95\x4c\x95\x4d\x66\xb5\x55\xa8\x95\x4e\x95\x4f\x95\x50\x53\x74\x95\x51\x66\xb8\x66\xb7\x51\xc2\x66\xb6\x95\x52\x95\x53\x95\x54\x95\x55\x58\xfc\x66\xb9\x95\x56\x66\xba\x5c\x86\x95\x57\x95\x58\x66\xbb\x95\x59\x95\x5a\x95\x5b\x66\xbc\x53\xeb\x95\x5c\x95\x5d\x95\x5e\x95\x5f\x95\x60\x95\x61\x95\x62\x95\x63\x57\xdd\x95\x64\x4e\xc7\x95\x65\x95\x66\x54\xd4\x4b\x49\x4f\xc8\x5b\xbb\x5a\xe6\x95\x67\x95\x68\x59\x4e\x58\xf0\x65\xb7\x65\xb8\x65\xb9\x4d\xb4\x95\x69\x95\x6a\x95\x6b\x95\x6c\x55\xb0\x50\x96\x95\x6d\x95\x6e\x57\x9b\x95\x6f\x95\x70\x95\x71\x95\x72\x95\x73", /* 6600 */ "\x65\xbf\x95\x74\x48\xb9\x65\xbd\x95\x75\x95\x76\x50\xa4\x95\x77\x95\x78\x95\x79\x65\xba\x95\x7a\x49\xfc\x95\x7b\x52\x98\x4e\x89\x95\x7c\x95\x7d\x95\x7e\x59\xd6\x57\xf3\x65\xbe\x95\x7f\x95\x81\x95\x82\x65\xbb\x95\x83\x95\x84\x95\x85\x65\xc2\x95\x86\x58\xc6\x5a\x53\x95\x87\x95\x88\x95\x89\x95\x8a\x4a\xb9\x95\x8b\x52\x61\x5c\x93\x95\x8c\x95\x8d\x95\x8e\x95\x8f\x5b\x71\x95\x90\x55\xc6\x95\x91\x65\xc4\x95\x92\x95\x93\x65\xc3\x65\xc6\x65\xc5\x95\x94\x95\x95\x95\x96\x95\x97\x95\x98\x5b\xe6\x95\x99\x58\x74\x95\x9a\x95\x9b\x65\xca\x95\x9c\x4e\x6e\x95\x9d\x95\x9e\x95\x9f\x95\xa0\x95\xa1\x95\xa2\x95\xa3\x4f\x9b\x55\x6e\x95\xa4\x95\xa5\x65\xcb\x95\xa6\x95\xa7\x55\x59\x58\x9f\x65\xc9\x5a\xcd\x65\xcc\x65\xce\x95\xa8\x95\xa9\x57\x8e\x95\xaa\x95\xab\x95\xac\x95\xad\x65\xc8\x95\xae\x65\xcd\x95\xaf\x95\xb0\x57\xed\x95\xb1\x4e\x7e\x95\xb2\x4a\x5f\x95\xb3\x95\xb4\x95\xb5\x95\xb6\x95\xb7\x53\xd4\x4f\xaf\x57\xf9\x95\xb8\x95\xb9\x95\xba\x54\x88\x95\xbb\x4f\xa6\x65\xcf\x95\xbc\x95\xbd\x5b\xc6\x95\xbe\x95\xbf\x95\xc0\x51\x60\x95\xc1", /* 6680 */ "\x95\xc2\x95\xc3\x5a\xdc\x95\xc4\x65\xd0\x95\xc5\x95\xc6\x58\x5e\x95\xc7\x95\xc8\x95\xc9\x95\xca\x65\xd1\x95\xcb\x95\xcc\x95\xcd\x95\xce\x55\xed\x95\xcf\x95\xd0\x95\xd1\x95\xd2\x53\x4f\x48\xb4\x95\xd3\x95\xd4\x95\xd5\x95\xd6\x95\xd7\x65\xd3\x95\xd8\x95\xd9\x95\xda\x95\xdb\x95\xdc\x95\xdd\x95\xde\x95\xdf\x95\xe0\x65\xd2\x6a\xde\x95\xe1\x95\xe2\x95\xe3\x95\xe4\x95\xe5\x52\xb9\x95\xe6\x95\xe7\x95\xe8\x95\xe9\x95\xea\x49\x49\x95\xeb\x95\xec\x95\xed\x95\xee\x63\x7f\x95\xef\x95\xf0\x95\xf1\x95\xf2\x65\xd4\x95\xf3\x95\xf4\x95\xf5\x95\xf6\x95\xf7\x95\xf8\x95\xf9\x95\xfa\x95\xfb\x95\xfc\x95\xfd\x96\x41\x96\x42\x96\x43\x96\x44\x96\x45\x96\x46\x96\x47\x96\x48\x96\x49\x96\x4a\x96\x4b\x96\x4c\x96\x4d\x96\x4e\x96\x4f\x55\xee\x96\x50\x65\xd5\x65\xd6\x53\xd7\x96\x51\x96\x52\x96\x53\x96\x54\x96\x55\x96\x56\x96\x57\x96\x58\x65\xd7\x96\x59\x96\x5a\x65\xd8\x96\x5b\x96\x5c\x96\x5d\x96\x5e\x96\x5f\x96\x60\x5a\xba\x96\x61\x54\x9b\x59\xb6\x4c\xfb\x96\x62\x96\x63\x65\xc1\x96\x64\x49\xdb\x96\x65\x96\x66\x51\xfb\x96\x67\x5a\xf7\x56\xe5", /* 6700 */ "\x5c\x8f\x96\x68\x96\x69\x96\x6a\x96\x6b\x96\x6c\x96\x6d\x96\x6e\x5a\xc1\x5a\x70\x66\x63\x53\x94\x96\x6f\x4c\x9f\x96\x70\x96\x71\x66\x74\x96\x72\x96\x73\x96\x74\x56\x57\x66\x7e\x96\x75\x50\xc9\x96\x76\x96\x77\x96\x78\x57\x9c\x96\x79\x4a\x4f\x96\x7a\x53\xd9\x96\x7b\x96\x7c\x96\x7d\x96\x7e\x96\x7f\x96\x81\x66\x9d\x96\x82\x52\xbd\x96\x83\x57\xb3\x52\xa8\x49\x5e\x5a\xfc\x96\x84\x55\xf4\x96\x85\x5b\xeb\x96\x86\x96\x87\x53\xd2\x4b\xe3\x96\x88\x96\x89\x96\x8a\x96\x8b\x4e\x9b\x96\x8c\x96\x8d\x58\xdf\x96\x8e\x96\x8f\x55\x51\x96\x90\x5a\xd2\x54\xa7\x96\x91\x96\x92\x4c\xca\x96\x93\x64\xbd\x55\x5c\x96\x94\x96\x95\x64\xba\x96\x96\x50\xed\x58\xd2\x49\xc3\x4a\xe4\x96\x97\x64\xbb\x96\x98\x96\x99\x5b\x68\x96\x9a\x96\x9b\x96\x9c\x96\x9d\x96\x9e\x4b\xc4\x96\x9f\x64\xbc\x55\xf7\x4c\xdb\x56\xf4\x96\xa0\x96\xa1\x96\xa2\x50\xb3\x96\xa3\x96\xa4\x59\x8f\x64\xbe\x64\xc1\x96\xa5\x96\xa6\x4d\xbb\x96\xa7\x49\x4d\x4f\x7c\x96\xa8\x65\xbc\x64\xc2\x96\xa9\x64\xc5\x96\xaa\x64\xca\x96\xab\x96\xac\x96\xad\x96\xae\x64\xcb\x96\xaf\x56\x69\x48\xe4", /* 6780 */ "\x96\xb0\x4e\xaa\x96\xb1\x96\xb2\x4d\x59\x96\xb3\x96\xb4\x64\xc0\x96\xb5\x57\x98\x96\xb6\x64\xc9\x96\xb7\x96\xb8\x96\xb9\x96\xba\x57\xf5\x96\xbb\x96\xbc\x96\xbd\x96\xbe\x5b\x8e\x96\xbf\x51\x76\x64\xc3\x96\xc0\x52\x56\x96\xc1\x4d\x9c\x5b\xa5\x64\xc7\x96\xc2\x96\xc3\x96\xc4\x55\xdf\x5a\xe5\x96\xc5\x64\xbf\x96\xc6\x64\xc4\x64\xc6\x96\xc7\x54\x59\x4c\x84\x96\xc8\x64\xc8\x96\xc9\x50\x7d\x64\xd1\x96\xca\x96\xcb\x64\xd6\x96\xcc\x64\xd4\x4e\xdb\x4e\xce\x64\xda\x96\xcd\x96\xce\x96\xcf\x96\xd0\x96\xd1\x96\xd2\x96\xd3\x96\xd4\x64\xdd\x96\xd5\x64\xd9\x49\x9b\x96\xd6\x96\xd7\x96\xd8\x96\xd9\x96\xda\x96\xdb\x96\xdc\x96\xdd\x96\xde\x96\xdf\x48\xd7\x52\xb2\x4c\xcb\x53\xe1\x54\xbd\x54\xe0\x96\xe0\x96\xe1\x96\xe2\x64\xce\x64\xd3\x64\xd5\x96\xe3\x4d\x92\x64\xd7\x5c\x96\x96\xe4\x52\xfa\x96\xe5\x64\xdb\x96\xe6\x96\xe7\x49\xe8\x96\xe8\x96\xe9\x96\xea\x64\xd0\x96\xeb\x96\xec\x4e\xec\x96\xed\x96\xee\x50\x62\x64\xcc\x5b\xf8\x96\xef\x51\x99\x49\xf0\x96\xf0\x96\xf1\x96\xf2\x96\xf3\x96\xf4\x96\xf5\x96\xf6\x96\xf7\x64\xde\x96\xf8\x55\xc0", /* 6800 */ "\x64\xd8\x96\xf9\x96\xfa\x96\xfb\x96\xfc\x5b\x44\x96\xfd\x49\x8b\x5b\x5b\x64\xcd\x64\xcf\x4b\xaf\x64\xd2\x97\x41\x64\xdc\x50\xb7\x97\x42\x55\xf6\x97\x43\x56\x48\x97\x44\x97\x45\x53\xdb\x50\xf4\x97\x46\x97\x47\x97\x48\x97\x49\x97\x4a\x64\xe8\x97\x4b\x97\x4c\x97\x4d\x58\xa2\x97\x4e\x97\x4f\x97\x50\x97\x51\x97\x52\x97\x53\x97\x54\x64\xf1\x5b\xe9\x97\x55\x97\x56\x97\x57\x97\x58\x97\x59\x97\x5a\x97\x5b\x64\xdf\x64\xe0\x97\x5c\x97\x5d\x97\x5e\x59\x9a\x4d\xca\x4c\xf8\x97\x5f\x97\x60\x4c\xf0\x5a\xd3\x64\xee\x97\x61\x64\xed\x64\xeb\x4d\x91\x56\xd1\x64\xe5\x57\xa5\x50\x93\x97\x62\x48\xb7\x64\xf0\x64\xef\x97\x63\x5c\x60\x97\x64\x64\xe3\x97\x65\x57\x49\x55\x43\x97\x66\x4e\x58\x4f\x7b\x64\xe9\x97\x67\x97\x68\x97\x69\x97\x6a\x97\x6b\x97\x6c\x97\x6d\x97\x6e\x97\x6f\x97\x70\x64\xe1\x64\xe2\x64\xe4\x4b\x55\x64\xe6\x54\x65\x64\xea\x64\xec\x4f\x50\x5c\x4e\x97\x71\x64\xf7\x97\x72\x97\x73\x97\x74\x97\x75\x97\x76\x97\x77\x97\x78\x97\x79\x64\xf4\x97\x7a\x57\x50\x64\xf5\x97\x7b\x97\x7c\x97\x7d\x97\x7e\x97\x7f\x97\x81\x97\x82\x97\x83", /* 6880 */ "\x97\x84\x51\x5a\x97\x85\x64\xe7\x97\x86\x52\x57\x48\xef\x97\x87\x97\x88\x97\x89\x97\x8a\x97\x8b\x97\x8c\x97\x8d\x97\x8e\x64\xf3\x97\x8f\x97\x90\x97\x91\x64\xf6\x97\x92\x97\x93\x97\x94\x4d\x43\x97\x95\x97\x96\x97\x97\x97\x98\x97\x99\x97\x9a\x97\x9b\x97\x9c\x97\x9d\x97\x9e\x55\x72\x97\x9f\x97\xa0\x97\xa1\x52\x6e\x57\xdf\x50\xe5\x97\xa2\x97\xa3\x97\xa4\x97\xa5\x56\x94\x97\xa6\x56\xdc\x58\xb4\x97\xa7\x97\xa8\x55\xe0\x97\xa9\x64\xf2\x97\xaa\x97\xab\x97\xac\x97\xad\x97\xae\x97\xaf\x97\xb0\x97\xb1\x97\xb2\x97\xb3\x4e\xeb\x97\xb4\x64\xf8\x97\xb5\x97\xb6\x97\xb7\x97\xb8\x97\xb9\x97\xba\x52\x7e\x97\xbb\x53\xe4\x97\xbc\x4d\x98\x97\xbd\x97\xbe\x97\xbf\x97\xc0\x48\xf3\x97\xc1\x97\xc2\x5c\x78\x97\xc3\x97\xc4\x4e\xab\x97\xc5\x53\x90\x97\xc6\x97\xc7\x97\xc8\x97\xc9\x97\xca\x56\xc3\x97\xcb\x97\xcc\x65\x46\x97\xcd\x97\xce\x97\xcf\x97\xd0\x97\xd1\x97\xd2\x97\xd3\x97\xd4\x97\xd5\x97\xd6\x55\x4d\x97\xd7\x65\x42\x50\xe1\x97\xd8\x97\xd9\x97\xda\x50\x63\x97\xdb\x97\xdc\x97\xdd\x64\xfd\x4d\x77\x97\xde\x64\xfa\x97\xdf\x97\xe0\x97\xe1", /* 6900 */ "\x97\xe2\x65\x44\x97\xe3\x97\xe4\x97\xe5\x59\xcd\x97\xe6\x97\xe7\x97\xe8\x97\xe9\x97\xea\x65\x43\x97\xeb\x5b\xb1\x5c\x55\x97\xec\x65\x47\x97\xed\x4f\x57\x97\xee\x97\xef\x97\xf0\x97\xf1\x97\xf2\x97\xf3\x97\xf4\x97\xf5\x97\xf6\x97\xf7\x97\xf8\x97\xf9\x64\xfb\x64\xfc\x97\xfa\x97\xfb\x97\xfc\x65\x41\x97\xfd\x98\x41\x98\x42\x98\x43\x98\x44\x98\x45\x98\x46\x98\x47\x57\x76\x98\x48\x98\x49\x59\xab\x98\x4a\x98\x4b\x98\x4c\x65\x52\x98\x4d\x98\x4e\x98\x4f\x98\x50\x65\x49\x98\x51\x98\x52\x98\x53\x4a\xa9\x98\x54\x4a\xba\x98\x55\x98\x56\x65\x4b\x98\x57\x98\x58\x98\x59\x98\x5a\x98\x5b\x98\x5c\x98\x5d\x98\x5e\x98\x5f\x98\x60\x98\x61\x98\x62\x98\x63\x98\x64\x98\x65\x98\x66\x98\x67\x58\xa7\x98\x68\x98\x69\x65\x45\x98\x6a\x98\x6b\x4a\x9f\x98\x6c\x98\x6d\x65\x4c\x50\xe2\x98\x6e\x65\x4a\x98\x6f\x98\x70\x65\x59\x98\x71\x98\x72\x65\x58\x98\x73\x98\x74\x98\x75\x98\x76\x65\x4e\x98\x77\x98\x78\x64\xf9\x98\x79\x98\x7a\x65\x48\x98\x7b\x98\x7c\x98\x7d\x98\x7e\x98\x7f\x50\x4c\x65\x51\x65\x5a\x98\x81\x98\x82\x51\xa4\x98\x83\x98\x84\x98\x85", /* 6980 */ "\x65\x4f\x98\x86\x4c\xc4\x98\x87\x65\x4d\x98\x88\x5a\x7c\x65\x54\x65\x55\x65\x57\x98\x89\x98\x8a\x98\x8b\x65\x67\x98\x8c\x98\x8d\x98\x8e\x98\x8f\x98\x90\x98\x91\x50\xc5\x65\x65\x98\x92\x98\x93\x65\x50\x98\x94\x98\x95\x65\x5b\x48\xf0\x98\x96\x98\x97\x98\x98\x98\x99\x98\x9a\x98\x9b\x98\x9c\x98\x9d\x98\x9e\x98\x9f\x65\x5c\x5b\x45\x98\xa0\x98\xa1\x65\x5e\x98\xa2\x65\x5f\x98\xa3\x98\xa4\x98\xa5\x65\x61\x98\xa6\x98\xa7\x51\x92\x98\xa8\x98\xa9\x54\xb5\x98\xaa\x98\xab\x98\xac\x65\x5d\x98\xad\x98\xae\x98\xaf\x98\xb0\x98\xb1\x65\x62\x98\xb2\x98\xb3\x98\xb4\x98\xb5\x98\xb6\x98\xb7\x98\xb8\x98\xb9\x65\x63\x98\xba\x65\x53\x98\xbb\x65\x56\x98\xbc\x4e\x51\x98\xbd\x98\xbe\x98\xbf\x65\x60\x98\xc0\x98\xc1\x98\xc2\x98\xc3\x98\xc4\x98\xc5\x4e\xf6\x98\xc6\x98\xc7\x98\xc8\x65\x64\x65\x66\x98\xc9\x98\xca\x98\xcb\x98\xcc\x98\xcd\x98\xce\x98\xcf\x98\xd0\x98\xd1\x98\xd2\x98\xd3\x98\xd4\x65\x6a\x98\xd5\x98\xd6\x98\xd7\x98\xd8\x65\x6e\x98\xd9\x98\xda\x98\xdb\x98\xdc\x98\xdd\x98\xde\x98\xdf\x98\xe0\x98\xe1\x98\xe2\x49\xda\x98\xe3\x65\x68", /* 6a00 */ "\x98\xe4\x98\xe5\x98\xe6\x98\xe7\x98\xe8\x98\xe9\x98\xea\x98\xeb\x98\xec\x98\xed\x4c\x4e\x98\xee\x98\xef\x98\xf0\x98\xf1\x98\xf2\x98\xf3\x98\xf4\x98\xf5\x98\xf6\x98\xf7\x98\xf8\x98\xf9\x65\x6b\x65\x6c\x98\xfa\x98\xfb\x98\xfc\x98\xfd\x99\x41\x99\x42\x5b\x61\x99\x43\x52\xa2\x99\x44\x99\x45\x99\x46\x99\x47\x99\x48\x99\x49\x65\x78\x99\x4a\x4d\xe0\x99\x4b\x99\x4c\x99\x4d\x99\x4e\x65\x69\x99\x4f\x5a\x43\x99\x50\x99\x51\x99\x52\x65\x74\x99\x53\x99\x54\x99\x55\x99\x56\x99\x57\x99\x58\x99\x59\x65\x77\x65\x70\x99\x5a\x99\x5b\x99\x5c\x99\x5d\x99\x5e\x65\x6f\x99\x5f\x99\x60\x54\x61\x99\x61\x99\x62\x99\x63\x99\x64\x99\x65\x99\x66\x99\x67\x99\x68\x65\x72\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x6d\x99\x6e\x99\x6f\x65\x79\x4a\x68\x99\x70\x65\x73\x99\x71\x99\x72\x99\x73\x99\x74\x99\x75\x58\x91\x99\x76\x99\x77\x99\x78\x65\x6d\x99\x79\x99\x7a\x99\x7b\x99\x7c\x99\x7d\x99\x7e\x99\x7f\x99\x81\x99\x82\x99\x83\x99\x84\x4a\x98\x99\x85\x99\x86\x99\x87\x99\x88\x99\x89\x99\x8a\x99\x8b\x65\x76\x99\x8c\x99\x8d\x65\x7a\x99\x8e\x99\x8f\x99\x90", /* 6a80 */ "\x56\xb3\x99\x91\x99\x92\x99\x93\x58\x4d\x99\x94\x99\x95\x99\x96\x99\x97\x99\x98\x99\x99\x99\x9a\x99\x9b\x99\x9c\x65\x75\x99\x9d\x65\x7c\x65\x7b\x99\x9e\x99\x9f\x99\xa0\x99\xa1\x99\xa2\x65\x7e\x99\xa3\x99\xa4\x99\xa5\x99\xa6\x99\xa7\x99\xa8\x99\xa9\x99\xaa\x65\x71\x99\xab\x99\xac\x99\xad\x99\xae\x99\xaf\x99\xb0\x99\xb1\x99\xb2\x65\x7d\x99\xb3\x65\x7f\x52\x6a\x99\xb4\x99\xb5\x99\xb6\x99\xb7\x99\xb8\x99\xb9\x99\xba\x99\xbb\x99\xbc\x99\xbd\x99\xbe\x99\xbf\x99\xc0\x99\xc1\x99\xc2\x99\xc3\x99\xc4\x99\xc5\x99\xc6\x99\xc7\x99\xc8\x99\xc9\x99\xca\x99\xcb\x99\xcc\x99\xcd\x99\xce\x99\xcf\x99\xd0\x99\xd1\x99\xd2\x99\xd3\x99\xd4\x99\xd5\x99\xd6\x99\xd7\x99\xd8\x99\xd9\x99\xda\x99\xdb\x99\xdc\x99\xdd\x99\xde\x99\xdf\x99\xe0\x99\xe1\x99\xe2\x99\xe3\x99\xe4\x99\xe5\x99\xe6\x99\xe7\x99\xe8\x99\xe9\x99\xea\x99\xeb\x99\xec\x99\xed\x99\xee\x99\xef\x99\xf0\x99\xf1\x99\xf2\x99\xf3\x99\xf4\x99\xf5\x99\xf6\x99\xf7\x99\xf8\x99\xf9\x99\xfa\x99\xfb\x99\xfc\x99\xfd\x9a\x41\x9a\x42\x9a\x43\x9a\x44\x9a\x45\x9a\x46\x9a\x47\x9a\x48\x9a\x49", /* 6b00 */ "\x9a\x4a\x9a\x4b\x9a\x4c\x9a\x4d\x9a\x4e\x9a\x4f\x9a\x50\x9a\x51\x9a\x52\x9a\x53\x9a\x54\x9a\x55\x9a\x56\x9a\x57\x9a\x58\x9a\x59\x9a\x5a\x9a\x5b\x9a\x5c\x9a\x5d\x9a\x5e\x9a\x5f\x9a\x60\x9a\x61\x9a\x62\x9a\x63\x9a\x64\x9a\x65\x9a\x66\x9a\x67\x9a\x68\x9a\x69\x54\x57\x4a\xcd\x4e\x56\x58\xbf\x66\xa2\x9a\x6a\x9a\x6b\x53\x57\x9a\x6c\x9a\x6d\x9a\x6e\x9a\x6f\x9a\x70\x9a\x71\x9a\x72\x9a\x73\x9a\x74\x9a\x75\x5a\x9c\x9a\x76\x9a\x77\x9a\x78\x9a\x79\x66\xa3\x9a\x7a\x66\xa4\x53\xda\x9a\x7b\x9a\x7c\x9a\x7d\x50\x8f\x9a\x7e\x9a\x7f\x9a\x81\x9a\x82\x66\xa5\x9a\x83\x9a\x84\x66\xa6\x58\xa9\x9a\x85\x54\x58\x9a\x86\x9a\x87\x4c\xe7\x9a\x88\x9a\x89\x9a\x8a\x9a\x8b\x9a\x8c\x9a\x8d\x9a\x8e\x9a\x8f\x9a\x90\x9a\x91\x9a\x92\x9a\x93\x66\xa7\x9a\x94\x9a\x95\x9a\x96\x9a\x97\x9a\x98\x9a\x99\x9a\x9a\x9a\x9b\x5b\xb8\x5b\x9e\x4a\xca\x49\xbc\x57\xe3\x53\xe6\x9a\x9c\x9a\x9d\x57\x82\x9a\x9e\x9a\x9f\x9a\xa0\x9a\xa1\x9a\xa2\x9a\xa3\x9a\xa4\x9a\xa5\x9a\xa6\x9a\xa7\x9a\xa8\x9a\xa9\x9a\xaa\x9a\xab\x4a\xf4\x9a\xac\x56\x60\x4e\xde\x9a\xad\x9a\xae\x9a\xaf", /* 6b80 */ "\x9a\xb0\x65\x83\x65\x84\x59\x8b\x65\x86\x9a\xb1\x4a\xf8\x65\x85\x9a\xb2\x59\x53\x55\xe1\x49\xcf\x9a\xb3\x65\x89\x9a\xb4\x9a\xb5\x9a\xb6\x9a\xb7\x65\x87\x65\x88\x9a\xb8\x9a\xb9\x5b\xb2\x9a\xba\x9a\xbb\x9a\xbc\x65\x8a\x65\x8b\x9a\xbd\x9a\xbe\x9a\xbf\x9a\xc0\x9a\xc1\x65\x8c\x9a\xc2\x9a\xc3\x9a\xc4\x9a\xc5\x9a\xc6\x9a\xc7\x9a\xc8\x9a\xc9\x65\x8d\x9a\xca\x9a\xcb\x9a\xcc\x9a\xcd\x9a\xce\x9a\xcf\x9a\xd0\x9a\xd1\x66\xae\x53\x59\x4b\xcd\x9a\xd2\x59\xf2\x9a\xd3\x9a\xd4\x9a\xd5\x9a\xd6\x9a\xd7\x9a\xd8\x9a\xd9\x4b\x8f\x9a\xda\x4e\x79\x66\xb0\x9a\xdb\x9a\xdc\x59\xe2\x9a\xdd\x9a\xde\x9a\xdf\x9a\xe0\x9a\xe1\x57\xe2\x9a\xe2\x52\xb7\x9a\xe3\x52\x5f\x9a\xe4\x9a\xe5\x4b\xbd\x5c\xb8\x49\x68\x49\x6f\x49\x71\x53\x9f\x9a\xe6\x49\x70\x9a\xe7\x52\x4b\x9a\xe8\x9a\xe9\x9a\xea\x9a\xeb\x9a\xec\x5b\x51\x9a\xed\x9a\xee\x9a\xef\x9a\xf0\x9a\xf1\x9a\xf2\x9a\xf3\x9a\xf4\x66\x44\x4d\xc0\x9a\xf5\x9a\xf6\x9a\xf7\x56\xb9\x9a\xf8\x9a\xf9\x9a\xfa\x66\x45\x9a\xfb\x66\x47\x9a\xfc\x9a\xfd\x9b\x41\x66\x48\x9b\x42\x9b\x43\x9b\x44\x66\x46\x9b\x45\x9b\x46", /* 6c00 */ "\x9b\x47\x9b\x48\x9b\x49\x9b\x4a\x9b\x4b\x66\x49\x66\x4b\x66\x4a\x9b\x4c\x9b\x4d\x9b\x4e\x9b\x4f\x9b\x50\x66\x4c\x9b\x51\x55\xce\x5c\xb4\x52\x92\x9b\x52\x52\x45\x53\xf7\x66\x4d\x52\xc9\x9b\x53\x66\x4e\x66\x4f\x66\x50\x4c\x75\x9b\x54\x9b\x55\x9b\x56\x4c\x9b\x9b\x57\x66\x51\x54\x83\x9b\x58\x66\x53\x9b\x59\x4d\xa3\x59\x96\x48\xb0\x66\x52\x66\x54\x9b\x5a\x9b\x5b\x9b\x5c\x4b\x4a\x51\xc7\x54\x89\x9b\x5d\x66\x55\x9b\x5e\x56\x4e\x62\x7f\x9b\x5f\x9b\x60\x5a\x60\x9b\x61\x9b\x62\x9b\x63\x9b\x64\x5d\x7b\x9b\x65\x9b\x66\x57\x41\x5b\xac\x54\x94\x9b\x67\x9b\x68\x9b\x69\x5d\x81\x4e\x84\x9b\x6a\x4d\xb9\x62\x83\x9b\x6b\x9b\x6c\x9b\x6d\x9b\x6e\x9b\x6f\x58\x4b\x9b\x70\x9b\x71\x9b\x72\x62\x81\x55\x67\x9b\x73\x4d\xb8\x9b\x74\x9b\x75\x9b\x76\x59\x54\x62\x82\x54\xe9\x4d\x4f\x4f\x4d\x4a\x78\x57\xda\x9b\x77\x9b\x78\x56\xbf\x9b\x79\x9b\x7a\x9b\x7b\x62\x89\x62\x8a\x57\x95\x9b\x7c\x9b\x7d\x9b\x7e\x9b\x7f\x9b\x81\x56\xac\x9b\x82\x4e\xb2\x9b\x83\x62\x8b\x9b\x84\x62\x8c\x9b\x85\x9b\x86\x58\xd9\x9b\x87\x9b\x88\x9b\x89\x53\xfa\x4c\x7a\x9b\x8a", /* 6c80 */ "\x9b\x8b\x54\x7f\x59\xc9\x57\xd5\x9b\x8c\x62\x85\x62\x8d\x9b\x8d\x55\x93\x4a\x61\x9b\x8e\x9b\x8f\x62\x88\x9b\x90\x9b\x91\x53\xe2\x62\x86\x9b\x92\x9b\x93\x67\x53\x62\x87\x9b\x94\x9b\x95\x9b\x96\x9b\x97\x55\x53\x9b\x98\x53\x87\x9b\x99\x9b\x9a\x9b\x9b\x4d\x55\x9b\x9c\x52\x5b\x9b\x9d\x62\x84\x53\x5d\x51\x44\x51\xd8\x49\xd6\x9b\x9e\x62\x8e\x4e\x46\x52\xac\x9b\x9f\x62\x91\x4f\xd9\x9b\xa0\x9b\xa1\x62\x9c\x62\x96\x4d\xd2\x9b\xa2\x9b\xa3\x9b\xa4\x9b\xa5\x4c\x70\x5a\x6d\x9b\xa6\x5b\xcd\x5b\x73\x4d\x61\x5b\x54\x59\x78\x9b\xa7\x9b\xa8\x9b\xa9\x9b\xaa\x58\xb8\x54\x97\x9b\xab\x9b\xac\x9b\xad\x54\xa9\x49\xb3\x9b\xae\x52\x7a\x9b\xaf\x9b\xb0\x9b\xb1\x62\x8f\x9b\xb2\x9b\xb3\x62\x9d\x62\x90\x4c\x48\x62\x98\x62\x95\x9b\xb4\x9b\xb5\x9b\xb6\x4c\x5a\x9b\xb7\x9b\xb8\x53\x42\x9b\xb9\x62\x97\x53\x7d\x49\xa7\x53\xfb\x9b\xba\x52\xdf\x9b\xbb\x9b\xbc\x5c\x42\x9b\xbd\x50\xe0\x62\x9a\x9b\xbe\x9b\xbf\x62\x9b\x62\x9e\x56\xa8\x62\x94\x9b\xc0\x5a\x5e\x9b\xc1\x49\x63\x67\x54\x62\x92\x62\x93\x9b\xc2\x62\x99\x58\xb9\x53\xc2\x5a\xf2\x62\x9f\x9b\xc3", /* 6d00 */ "\x9b\xc4\x4f\x81\x9b\xc5\x9b\xc6\x62\xa6\x9b\xc7\x9b\xc8\x62\xa5\x9b\xc9\x9b\xca\x9b\xcb\x59\x94\x62\xa2\x9b\xcc\x62\xa8\x9b\xcd\x9b\xce\x9b\xcf\x54\xf6\x9b\xd0\x9b\xd1\x9b\xd2\x9b\xd3\x58\x54\x9b\xd4\x62\xa7\x62\xad\x51\xe4\x9b\xd5\x9b\xd6\x4b\xb3\x9b\xd7\x9b\xd8\x9b\xd9\x9b\xda\x9b\xdb\x9b\xdc\x4f\x93\x9b\xdd\x62\xa1\x9b\xde\x9b\xdf\x4d\xe8\x62\xa9\x9b\xe0\x9b\xe1\x62\xab\x9b\xe2\x9b\xe3\x4b\xfc\x5b\xdd\x62\xb1\x9b\xe4\x62\xac\x9b\xe5\x9b\xe6\x9b\xe7\x62\xa0\x9b\xe8\x4e\x8f\x57\x7d\x54\x42\x53\x69\x9b\xe9\x9b\xea\x51\x98\x9b\xeb\x62\xa3\x9b\xec\x54\x53\x4f\x4c\x4f\x5d\x62\xa4\x9b\xed\x5c\x67\x49\xe1\x9b\xee\x62\xaa\x4e\xc2\x62\xae\x9b\xef\x4e\x8c\x62\xaf\x53\x48\x62\xb0\x9b\xf0\x9b\xf1\x9b\xf2\x9b\xf3\x5b\x84\x50\x43\x9b\xf4\x62\xb9\x9b\xf5\x62\xb6\x9b\xf6\x62\xba\x9b\xf7\x9b\xf8\x62\xbc\x9b\xf9\x9b\xfa\x53\xd5\x9b\xfb\x9b\xfc\x4d\xc5\x50\xca\x9b\xfd\x9c\x41\x9c\x42\x4c\xa0\x62\xb3\x9c\x43\x9c\x44\x9c\x45\x9c\x46\x5a\xa0\x9c\x47\x9c\x48\x4d\xa2\x4f\x9f\x9c\x49\x9c\x4a\x9c\x4b\x62\xbb\x9c\x4c\x9c\x4d\x9c\x4e", /* 6d80 */ "\x9c\x4f\x9c\x50\x57\x5f\x9c\x51\x9c\x52\x52\xf8\x9c\x53\x9c\x54\x58\x9c\x55\x87\x9c\x55\x9c\x56\x5a\x5f\x9c\x57\x58\x71\x9c\x58\x9c\x59\x62\xb2\x9c\x5a\x62\xb7\x62\xb8\x56\xe8\x9c\x5b\x9c\x5c\x9c\x5d\x9c\x5e\x9c\x5f\x56\xcd\x9c\x60\x50\xd3\x62\xb4\x51\x50\x62\xb5\x57\xcf\x9c\x61\x4e\x61\x4b\x73\x9c\x62\x54\xf2\x4f\x47\x5b\x67\x55\x4c\x4c\xa1\x62\xc9\x9c\x63\x9c\x64\x62\xcb\x59\x64\x9c\x65\x9c\x66\x59\xb9\x9c\x67\x9c\x68\x4d\xac\x9c\x69\x9c\x6a\x4d\xd3\x9c\x6b\x9c\x6c\x9c\x6d\x9c\x6e\x9c\x6f\x9c\x70\x62\xc2\x4b\x8e\x9c\x71\x9c\x72\x9c\x73\x5c\x6d\x62\xbf\x58\x9e\x62\xbe\x9c\x74\x9c\x75\x9c\x76\x51\x7c\x56\xc9\x9c\x77\x9c\x78\x9c\x79\x9c\x7a\x55\xe6\x9c\x7b\x9c\x7c\x9c\x7d\x9c\x7e\x52\xd6\x9c\x7f\x56\xd3\x62\xc7\x9c\x81\x9c\x82\x9c\x83\x62\xc6\x62\xc0\x9c\x84\x62\xc3\x4b\x4d\x9c\x85\x9c\x86\x5a\x79\x9c\x87\x62\xc5\x9c\x88\x9c\x89\x9c\x8a\x9c\x8b\x59\xf8\x4a\xe2\x9c\x8c\x4e\x54\x9c\x8d\x9c\x8e\x55\x8f\x9c\x8f\x4a\xbd\x9c\x90\x9c\x91\x9c\x92\x4e\x8d\x9c\x93\x59\x6d\x9c\x94\x56\xec\x67\x55\x9c\x95\x9c\x96\x9c\x97", /* 6e00 */ "\x9c\x98\x9c\x99\x9c\x9a\x9c\x9b\x9c\x9c\x54\x86\x9c\x9d\x9c\x9e\x9c\x9f\x9c\xa0\x5a\xa7\x9c\xa1\x62\xca\x5c\x75\x62\xc1\x9c\xa2\x4f\x45\x62\xc4\x9c\xa3\x9c\xa4\x5a\x87\x9c\xa5\x62\xc8\x55\x99\x9c\xa6\x9c\xa7\x62\xbd\x9c\xa8\x9c\xa9\x5a\x86\x9c\xaa\x9c\xab\x54\x9f\x4b\xc8\x9c\xac\x5a\xfb\x49\xb2\x62\xd6\x9c\xad\x9c\xae\x9c\xaf\x57\xc1\x9c\xb0\x62\xcc\x9c\xb1\x57\xbb\x9c\xb2\x4c\xda\x9c\xb3\x9c\xb4\x62\xd5\x9c\xb5\x50\x6a\x9c\xb6\x9c\xb7\x9c\xb8\x5a\x6e\x9c\xb9\x52\x8d\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xbe\x9c\xbf\x9c\xc0\x9c\xc1\x53\x68\x62\xd7\x9c\xc2\x9c\xc3\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xc8\x9c\xc9\x57\x64\x62\xce\x9c\xca\x9c\xcb\x9c\xcc\x9c\xcd\x62\xd3\x62\xd4\x9c\xce\x4d\xfd\x9c\xcf\x58\x87\x9c\xd0\x9c\xd1\x5b\x5f\x9c\xd2\x9c\xd3\x9c\xd4\x62\xd1\x9c\xd5\x9c\xd6\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xda\x9c\xdb\x9c\xdc\x9c\xdd\x9c\xde\x9c\xdf\x62\xcf\x9c\xe0\x9c\xe1\x62\xcd\x9c\xe2\x9c\xe3\x9c\xe4\x9c\xe5\x9c\xe6\x9c\xe7\x9c\xe8\x9c\xe9\x9c\xea\x9c\xeb\x9c\xec\x9c\xed\x9c\xee\x9c\xef\x9c\xf0\x57\x86\x55\xa9", /* 6e80 */ "\x9c\xf1\x9c\xf2\x9c\xf3\x50\xa2\x9c\xf4\x4f\x46\x62\xd2\x9c\xf5\x9c\xf6\x4c\xc7\x9c\xf7\x9c\xf8\x9c\xf9\x9c\xfa\x9c\xfb\x62\xe6\x5a\xb3\x9c\xfc\x9c\xfd\x9d\x41\x9d\x42\x9d\x43\x9d\x44\x9d\x45\x62\xda\x9d\x46\x9d\x47\x9d\x48\x51\x90\x9d\x49\x9d\x4a\x62\xe8\x9d\x4b\x9d\x4c\x59\xe6\x9d\x4d\x9d\x4e\x62\xde\x9d\x4f\x62\xdf\x9d\x50\x9d\x51\x58\x4a\x9d\x52\x9d\x53\x9d\x54\x9d\x55\x56\x7d\x9d\x56\x62\xd9\x62\xd0\x9d\x57\x62\xe4\x9d\x58\x54\xdb\x62\xe2\x9d\x59\x9d\x5a\x52\xe6\x62\xe1\x9d\x5b\x62\xe0\x9d\x5c\x9d\x5d\x9d\x5e\x4a\x9d\x62\xe7\x9d\x5f\x9d\x60\x9d\x61\x9d\x62\x4b\x82\x9d\x63\x9d\x64\x9d\x65\x5c\x6c\x9d\x66\x9d\x67\x9d\x68\x62\xe5\x9d\x69\x4e\x4c\x9d\x6a\x5c\x72\x56\xce\x66\x99\x9d\x6b\x62\xe3\x9d\x6c\x9d\x6d\x4d\x97\x9d\x6e\x9d\x6f\x9d\x70\x5b\xcc\x62\xd8\x62\xdb\x51\xf9\x62\xdd\x9d\x71\x51\xca\x50\xc3\x51\xcf\x9d\x72\x49\x96\x56\xb1\x9d\x73\x9d\x74\x9d\x75\x9d\x76\x9d\x77\x9d\x78\x9d\x79\x9d\x7a\x9d\x7b\x9d\x7c\x4b\x6e\x9d\x7d\x9d\x7e\x9d\x7f\x9d\x81\x62\xee\x9d\x82\x9d\x83\x9d\x84\x9d\x85\x9d\x86\x9d\x87", /* 6f00 */ "\x9d\x88\x9d\x89\x53\xae\x9d\x8a\x9d\x8b\x9d\x8c\x53\xe0\x9d\x8d\x9d\x8e\x62\xf4\x9d\x8f\x9d\x90\x9d\x91\x9d\x92\x9d\x93\x51\xa8\x9d\x94\x9d\x95\x9d\x96\x50\xeb\x59\x7d\x62\xed\x9d\x97\x9d\x98\x9d\x99\x9d\x9a\x9d\x9b\x9d\x9c\x9d\x9d\x9d\x9e\x9d\x9f\x9d\xa0\x52\xad\x9d\xa1\x9d\xa2\x9d\xa3\x62\xec\x9d\xa4\x9d\xa5\x9d\xa6\x9d\xa7\x62\xf5\x62\xf3\x51\xfd\x9d\xa8\x62\xdc\x9d\xa9\x62\xef\x9d\xaa\x55\xfd\x9d\xab\x5b\x64\x9d\xac\x9d\xad\x62\xf0\x9d\xae\x9d\xaf\x9d\xb0\x9d\xb1\x9d\xb2\x9d\xb3\x9d\xb4\x59\x9b\x9d\xb5\x9d\xb6\x9d\xb7\x9d\xb8\x9d\xb9\x9d\xba\x9d\xbb\x62\xea\x62\xeb\x9d\xbc\x9d\xbd\x9d\xbe\x62\xf1\x9d\xbf\x57\xaa\x9d\xc0\x9d\xc1\x9d\xc2\x9d\xc3\x9d\xc4\x9d\xc5\x9d\xc6\x9d\xc7\x9d\xc8\x9d\xc9\x53\x6b\x9d\xca\x9d\xcb\x9d\xcc\x54\x51\x9d\xcd\x51\xb9\x9d\xce\x9d\xcf\x9d\xd0\x62\xe9\x9d\xd1\x9d\xd2\x9d\xd3\x51\x6a\x9d\xd4\x9d\xd5\x9d\xd6\x9d\xd7\x9d\xd8\x9d\xd9\x56\xb5\x4a\x51\x9d\xda\x9d\xdb\x9d\xdc\x62\xfa\x9d\xdd\x62\xf2\x9d\xde\x9d\xdf\x9d\xe0\x62\xf9\x9d\xe1\x62\xfc\x9d\xe2\x62\xfb\x9d\xe3\x9d\xe4\x9d\xe5", /* 6f80 */ "\x9d\xe6\x9d\xe7\x9d\xe8\x9d\xe9\x4a\x6e\x9d\xea\x9d\xeb\x9d\xec\x4a\x5a\x62\xf6\x9d\xed\x9d\xee\x62\xf8\x62\xf7\x53\x8d\x9d\xef\x9d\xf0\x9d\xf1\x9d\xf2\x9d\xf3\x9d\xf4\x9d\xf5\x9d\xf6\x9d\xf7\x9d\xf8\x9d\xf9\x9d\xfa\x9d\xfb\x50\xbc\x9d\xfc\x9d\xfd\x9e\x41\x9e\x42\x5a\xe7\x9e\x43\x9e\x44\x9e\x45\x9e\x46\x9e\x47\x63\x42\x9e\x48\x9e\x49\x9e\x4a\x9e\x4b\x9e\x4c\x9e\x4d\x9e\x4e\x9e\x4f\x9e\x50\x9e\x51\x9e\x52\x48\xc3\x9e\x53\x9e\x54\x63\x44\x9e\x55\x9e\x56\x63\x43\x9e\x57\x9e\x58\x9e\x59\x9e\x5a\x9e\x5b\x9e\x5c\x4e\xa3\x9e\x5d\x63\x45\x9e\x5e\x9e\x5f\x9e\x60\x9e\x61\x9e\x62\x9e\x63\x63\x41\x9e\x64\x9e\x65\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x62\xfd\x49\x95\x9e\x6b\x9e\x6c\x9e\x6d\x9e\x6e\x9e\x6f\x9e\x70\x9e\x71\x9e\x72\x9e\x73\x9e\x74\x9e\x75\x63\x48\x9e\x76\x63\x49\x63\x46\x9e\x77\x9e\x78\x9e\x79\x9e\x7a\x9e\x7b\x9e\x7c\x9e\x7d\x9e\x7e\x9e\x7f\x9e\x81\x9e\x82\x9e\x83\x63\x47\x63\x4a\x9e\x84\x9e\x85\x9e\x86\x9e\x87\x9e\x88\x9e\x89\x9e\x8a\x9e\x8b\x9e\x8c\x9e\x8d\x9e\x8e\x9e\x8f\x9e\x90\x9e\x91\x9e\x92\x9e\x93", /* 7000 */ "\x9e\x94\x9e\x95\x9e\x96\x9e\x97\x9e\x98\x9e\x99\x9e\x9a\x9e\x9b\x9e\x9c\x9e\x9d\x9e\x9e\x9e\x9f\x9e\xa0\x9e\xa1\x9e\xa2\x9e\xa3\x9e\xa4\x53\xd8\x9e\xa5\x9e\xa6\x9e\xa7\x9e\xa8\x9e\xa9\x9e\xaa\x9e\xab\x9e\xac\x63\x4b\x63\x4d\x9e\xad\x9e\xae\x9e\xaf\x9e\xb0\x9e\xb1\x9e\xb2\x9e\xb3\x63\x4c\x9e\xb4\x9e\xb5\x9e\xb6\x9e\xb7\x9e\xb8\x9e\xb9\x9e\xba\x9e\xbb\x9e\xbc\x9e\xbd\x9e\xbe\x9e\xbf\x9e\xc0\x9e\xc1\x9e\xc2\x9e\xc3\x9e\xc4\x63\x4f\x9e\xc5\x9e\xc6\x9e\xc7\x63\x4e\x9e\xc8\x9e\xc9\x9e\xca\x9e\xcb\x9e\xcc\x9e\xcd\x9e\xce\x9e\xcf\x9e\xd0\x9e\xd1\x9e\xd2\x9e\xd3\x9e\xd4\x9e\xd5\x9e\xd6\x9e\xd7\x9e\xd8\x9e\xd9\x4d\x81\x9e\xda\x9e\xdb\x63\x50\x9e\xdc\x9e\xdd\x9e\xde\x9e\xdf\x9e\xe0\x9e\xe1\x9e\xe2\x9e\xe3\x9e\xe4\x9e\xe5\x9e\xe6\x9e\xe7\x9e\xe8\x9e\xe9\x63\x51\x9e\xea\x9e\xeb\x9e\xec\x9e\xed\x9e\xee\x9e\xef\x9e\xf0\x9e\xf1\x9e\xf2\x9e\xf3\x9e\xf4\x9e\xf5\x4e\x91\x66\xe0\x52\x91\x9e\xf6\x4b\x66\x4e\x72\x9e\xf7\x9e\xf8\x9e\xf9\x9e\xfa\x51\x8a\x5a\xed\x9e\xfb\x4f\xc3\x9e\xfc\x9e\xfd\x9f\x41\x5c\x66\x9f\x42\x5a\xd5\x49\xd2", /* 7080 */ "\x66\xbd\x9f\x43\x9f\x44\x9f\x45\x9f\x46\x65\xc0\x9f\x47\x9f\x48\x9f\x49\x51\xae\x4a\xb5\x9f\x4a\x9f\x4b\x9f\x4c\x59\x77\x9f\x4d\x9f\x4e\x9f\x4f\x4a\x54\x9f\x50\x54\xb1\x50\x5b\x66\xbf\x9f\x51\x9f\x52\x5b\xca\x9f\x53\x9f\x54\x66\xbe\x66\xc0\x9f\x55\x9f\x56\x9f\x57\x9f\x58\x9f\x59\x9f\x5a\x9f\x5b\x9f\x5c\x9f\x5d\x9f\x5e\x9f\x5f\x9f\x60\x9f\x61\x66\xc4\x4f\xe5\x56\xbe\x53\x7a\x4f\xbb\x9f\x62\x66\xc5\x9f\x63\x49\x9f\x9f\x64\x9f\x65\x9f\x66\x66\xc3\x5b\x48\x4b\x84\x9f\x67\x66\xc1\x51\x56\x4a\x84\x9f\x68\x9f\x69\x66\xc2\x56\x58\x50\xc2\x56\xfd\x9f\x6a\x9f\x6b\x9f\x6c\x9f\x6d\x51\x72\x9f\x6e\x66\xc7\x9f\x6f\x9f\x70\x9f\x71\x9f\x72\x9f\x73\x9f\x74\x9f\x75\x9f\x76\x9f\x77\x9f\x78\x9f\x79\x9f\x7a\x9f\x7b\x4d\xe5\x50\xd2\x9f\x7c\x5b\xf1\x9f\x7d\x9f\x7e\x9f\x7f\x59\x6c\x9f\x81\x9f\x82\x9f\x83\x9f\x84\x50\x5e\x9f\x85\x4c\x53\x55\x75\x66\xc6\x4e\x83\x9f\x86\x56\xcb\x4f\x9e\x54\xc7\x9f\x87\x58\x49\x9f\x88\x9f\x89\x9f\x8a\x9f\x8b\x9f\x8c\x9f\x8d\x9f\x8e\x57\x8a\x9f\x8f\x53\x8c\x9f\x90\x9f\x91\x9f\x92\x4c\x8a\x9f\x93\x9f\x94", /* 7100 */ "\x9f\x95\x9f\x96\x9f\x97\x9f\x98\x9f\x99\x9f\x9a\x9f\x9b\x9f\x9c\x9f\x9d\x59\x69\x4d\xb7\x9f\x9e\x9f\x9f\x9f\xa0\x9f\xa1\x9f\xa2\x66\xc8\x9f\xa3\x9f\xa4\x66\xc9\x9f\xa5\x4e\x60\x66\xca\x9f\xa6\x66\xe1\x49\x5a\x4c\x79\x9f\xa7\x9f\xa8\x9f\xa9\x9f\xaa\x9f\xab\x9f\xac\x9f\xad\x9f\xae\x9f\xaf\x9f\xb0\x9f\xb1\x4f\x59\x9f\xb2\x9f\xb3\x9f\xb4\x9f\xb5\x9f\xb6\x9f\xb7\x9f\xb8\x9f\xb9\x66\xcb\x59\x87\x66\xcc\x9f\xba\x9f\xbb\x9f\xbc\x9f\xbd\x54\xba\x9f\xbe\x9f\xbf\x9f\xc0\x9f\xc1\x9f\xc2\x9f\xc3\x9f\xc4\x9f\xc5\x9f\xc6\x9f\xc7\x9f\xc8\x9f\xc9\x9f\xca\x9f\xcb\x66\xd0\x9f\xcc\x9f\xcd\x9f\xce\x9f\xcf\x66\xd2\x9f\xd0\x4e\x6d\x9f\xd1\x4e\xe4\x9f\xd2\x9f\xd3\x9f\xd4\x9f\xd5\x9f\xd6\x9f\xd7\x9f\xd8\x9f\xd9\x9f\xda\x9f\xdb\x9f\xdc\x9f\xdd\x9f\xde\x66\xce\x9f\xdf\x55\x57\x9f\xe0\x9f\xe1\x9f\xe2\x9f\xe3\x9f\xe4\x52\x5a\x9f\xe5\x66\xe2\x5b\x75\x66\xcf\x9f\xe6\x9f\xe7\x9f\xe8\x9f\xe9\x9f\xea\x5b\xf2\x9f\xeb\x9f\xec\x9f\xed\x66\xd1\x66\xcd\x9f\xee\x9f\xef\x9f\xf0\x9f\xf1\x66\xd3\x9f\xf2\x66\xd4\x9f\xf3\x9f\xf4\x55\x5f\x9f\xf5\x9f\xf6", /* 7180 */ "\x9f\xf7\x9f\xf8\x9f\xf9\x9f\xfa\x58\x48\x9f\xfb\x9f\xfc\x9f\xfd\xa0\x41\xa0\x42\x58\xdb\xa0\x43\xa0\x44\xa0\x45\xa0\x46\x59\x4c\xa0\x47\xa0\x48\xa0\x49\xa0\x4a\x54\xda\xa0\x4b\xa0\x4c\xa0\x4d\x66\xd5\x57\xf4\xa0\x4e\xa0\x4f\xa0\x50\xa0\x51\xa0\x52\x55\xeb\x66\xd9\xa0\x53\xa0\x54\xa0\x55\xa0\x56\xa0\x57\xa0\x58\xa0\x59\x66\xd8\xa0\x5a\xa0\x5b\xa0\x5c\x48\xbd\xa0\x5d\xa0\x5e\xa0\x5f\xa0\x60\xa0\x61\xa0\x62\x66\xd6\xa0\x63\x66\xd7\xa0\x64\xa0\x65\xa0\x66\x66\xe3\xa0\x67\xa0\x68\xa0\x69\xa0\x6a\xa0\x6b\xa0\x6c\xa0\x6d\xa0\x6e\xa0\x6f\x54\xbb\xa0\x70\xa0\x71\xa0\x72\xa0\x73\xa0\x74\xa0\x75\xa0\x76\xa0\x77\xa0\x78\xa0\x79\x51\x67\xa0\x7a\xa0\x7b\xa0\x7c\xa0\x7d\xa0\x7e\x66\xdb\x59\x81\xa0\x7f\xa0\x81\xa0\x82\xa0\x83\xa0\x84\xa0\x85\xa0\x86\xa0\x87\xa0\x88\xa0\x89\x66\xda\xa0\x8a\xa0\x8b\xa0\x8c\xa0\x8d\x5a\xee\xa0\x8e\x66\xdc\xa0\x8f\xa0\x90\xa0\x91\xa0\x92\xa0\x93\xa0\x94\x5e\x66\xa0\x95\xa0\x96\xa0\x97\xa0\x98\xa0\x99\xa0\x9a\xa0\x9b\xa0\x9c\xa0\x9d\xa0\x9e\x66\xdd\xa0\x9f\xa0\xa0\xa0\xa1\xa0\xa2\xa0\xa3\xa0\xa4", /* 7200 */ "\xa0\xa5\xa0\xa6\xa0\xa7\xa0\xa8\xa0\xa9\xa0\xaa\x49\x4c\xa0\xab\xa0\xac\xa0\xad\xa0\xae\xa0\xaf\xa0\xb0\xa0\xb1\xa0\xb2\xa0\xb3\xa0\xb4\xa0\xb5\xa0\xb6\xa0\xb7\xa0\xb8\xa0\xb9\xa0\xba\xa0\xbb\xa0\xbc\xa0\xbd\xa0\xbe\xa0\xbf\xa0\xc0\x66\xde\xa0\xc1\xa0\xc2\xa0\xc3\xa0\xc4\xa0\xc5\xa0\xc6\xa0\xc7\xa0\xc8\xa0\xc9\xa0\xca\x66\xdf\xa0\xcb\x5c\x46\xa0\xcc\x53\x60\xa0\xcd\xa0\xce\xa0\xcf\x66\x5c\x48\xad\xa0\xd0\xa0\xd1\xa0\xd2\x4f\xf3\x4c\xb7\x59\xae\x48\xd5\x4b\x9a\xa0\xd3\x5c\xb2\xa0\xd4\x56\x4c\xa0\xd5\x62\x7d\xa0\xd6\xa0\xd7\xa0\xd8\xa0\xd9\xa0\xda\xa0\xdb\xa0\xdc\x53\xab\x48\xe5\xa0\xdd\xa0\xde\xa0\xdf\x53\x66\x66\x59\xa0\xe0\xa0\xe1\xa0\xe2\xa0\xe3\x66\x5a\xa0\xe4\xa0\xe5\xa0\xe6\x66\x5b\xa0\xe7\xa0\xe8\x59\x60\xa0\xe9\x53\x43\xa0\xea\x65\xf1\xa0\xeb\x52\xb1\xa0\xec\x52\xb4\x50\xcd\xa0\xed\xa0\xee\xa0\xef\x65\xf2\x52\xc0\xa0\xf0\x57\xee\xa0\xf1\xa0\xf2\xa0\xf3\xa0\xf4\x65\xef\x65\xf3\xa0\xf5\xa0\xf6\x55\x9d\xa0\xf7\xa0\xf8\x54\x43\xa0\xf9\xa0\xfa\xa0\xfb\x56\xd7\x57\xfd\xa0\xfc\xa0\xfd\xa1\x41\x65\xf4\x65\xf5", /* 7280 */ "\x58\x4c\x50\xe6\xa1\x42\xa1\x43\x65\xf6\xa1\x44\xa1\x45\xa1\x46\xa1\x47\xa1\x48\x4b\xbe\x65\xf7\xa1\x49\x65\xf8\xa1\x4a\x65\xf9\xa1\x4b\xa1\x4c\x65\xfa\xa1\x4d\xa1\x4e\xa1\x4f\xa1\x50\xa1\x51\xa1\x52\xa1\x53\xa1\x54\xa1\x55\xa1\x56\xa1\x57\xa1\x58\x65\xf0\xa1\x59\xa1\x5a\xa1\x5b\xa1\x5c\xa1\x5d\xa1\x5e\xa1\x5f\xa1\x60\xa1\x61\xa1\x62\xa1\x63\xa1\x64\x54\xad\x61\x8c\xa1\x65\x4c\x58\x61\x8d\xa1\x66\xa1\x67\xa1\x68\x61\x8e\xa1\x69\x5c\x54\x61\x8f\x61\x90\x5a\x6c\xa1\x6a\xa1\x6b\xa1\x6c\xa1\x6d\xa1\x6e\xa1\x6f\xa1\x70\x61\x92\x50\x92\x61\x91\x4b\x72\xa1\x71\xa1\x72\xa1\x73\x49\x57\xa1\x74\xa1\x75\xa1\x76\xa1\x77\x61\x94\x61\x93\xa1\x78\x4d\xfb\xa1\x79\x61\x95\xa1\x7a\xa1\x7b\xa1\x7c\xa1\x7d\x4d\x57\xa1\x7e\x4f\xd0\xa1\x7f\xa1\x81\xa1\x82\xa1\x83\x52\xfb\xa1\x84\x4d\xdc\x4f\x66\xa1\x85\xa1\x86\xa1\x87\xa1\x88\xa1\x89\xa1\x8a\x61\x96\x61\x98\xa1\x8b\xa1\x8c\x4b\xbf\x58\x61\x55\xa7\x61\x97\x5b\x99\x5a\x9d\x61\x99\x61\x9d\x61\x9a\xa1\x8d\xa1\x8e\x61\x9b\x50\xe9\xa1\x8f\x61\x9f\x61\xa0\x50\xc6\xa1\x90\xa1\x91\xa1\x92", /* 7300 */ "\xa1\x93\x61\x9c\xa1\x94\x61\x9e\xa1\x95\xa1\x96\xa1\x97\xa1\x98\xa1\x99\xa1\x9a\x61\xa4\xa1\x9b\xa1\x9c\xa1\x9d\x51\x74\xa1\x9e\xa1\x9f\xa1\xa0\xa1\xa1\x61\xa2\xa1\xa2\x61\xa7\x49\xfd\x61\xa1\xa1\xa3\xa1\xa4\xa1\xa5\x52\x6d\x49\xc1\x61\xa6\x61\xa5\xa1\xa6\xa1\xa7\x61\xa3\x61\xa8\xa1\xa8\xa1\xa9\x61\xaa\xa1\xaa\xa1\xab\xa1\xac\x58\xc8\x5b\xec\x52\x48\x61\xab\xa1\xad\x58\x77\xa1\xae\xa1\xaf\x61\xad\xa1\xb0\xa1\xb1\x4d\xee\xa1\xb2\xa1\xb3\x65\x81\x61\xac\x61\xa9\xa1\xb4\xa1\xb5\xa1\xb6\xa1\xb7\x4e\x4b\x5a\xb2\xa1\xb8\xa1\xb9\xa1\xba\xa1\xbb\xa1\xbc\xa1\xbd\xa1\xbe\xa1\xbf\xa1\xc0\xa1\xc1\xa1\xc2\xa1\xc3\xa1\xc4\x61\xaf\xa1\xc5\xa1\xc6\x61\xae\xa1\xc7\x65\x82\xa1\xc8\xa1\xc9\xa1\xca\xa1\xcb\x61\xb0\xa1\xcc\xa1\xcd\xa1\xce\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xd2\xa1\xd3\x61\xb1\xa1\xd4\xa1\xd5\xa1\xd6\xa1\xd7\xa1\xd8\xa1\xd9\xa1\xda\xa1\xdb\xa1\xdc\xa1\xdd\xa1\xde\x61\xb2\x56\xa0\xa1\xdf\x61\xb3\xa1\xe0\xa1\xe1\xa1\xe2\xa1\xe3\xa1\xe4\xa1\xe5\xa1\xe6\xa1\xe7\xa1\xe8\xa1\xe9\xa1\xea\xa1\xeb\xa1\xec\xa1\xed\x61\xb4\xa1\xee", /* 7380 */ "\xa1\xef\xa1\xf0\xa1\xf1\xa1\xf2\x58\xfd\xa1\xf3\xa1\xf4\x51\xc9\xa1\xf5\x5a\x92\xa1\xf6\x57\x96\xa1\xf7\xa1\xf8\x64\x81\xa1\xf9\xa1\xfa\x64\x82\xa1\xfb\xa1\xfc\xa1\xfd\xa2\x41\x4f\xc0\xa2\x42\xa2\x43\xa2\x44\xa2\x45\x51\xe9\xa2\x46\xa2\x47\xa2\x48\x64\x85\xa2\x49\xa2\x4a\x64\x84\xa2\x4b\xa2\x4c\xa2\x4d\xa2\x4e\xa2\x4f\xa2\x50\x57\x87\xa2\x51\x52\x55\xa2\x52\xa2\x53\x64\x83\x4e\x57\x58\x76\xa2\x54\x51\x82\x64\x8a\xa2\x55\xa2\x56\xa2\x57\x64\x89\xa2\x58\xa2\x59\x64\x95\x49\xa2\xa2\x5a\xa2\x5b\xa2\x5c\xa2\x5d\x64\x8b\xa2\x5e\x64\x87\xa2\x5f\xa2\x60\xa2\x61\xa2\x62\xa2\x63\x64\x8d\x64\x8c\x55\x5a\xa2\x64\xa2\x65\x5b\x85\xa2\x66\x64\x86\x4c\x49\x64\x88\xa2\x67\xa2\x68\xa2\x69\xa2\x6a\xa2\x6b\xa2\x6c\xa2\x6d\x64\x8f\xa2\x6e\xa2\x6f\xa2\x70\xa2\x71\x64\x94\xa2\x72\x5b\xe8\xa2\x73\xa2\x74\xa2\x75\xa2\x76\x64\x8e\xa2\x77\x64\x93\xa2\x78\x64\x92\xa2\x79\xa2\x7a\xa2\x7b\x48\xdf\xa2\x7c\xa2\x7d\xa2\x7e\xa2\x7f\x64\x96\xa2\x81\xa2\x82\xa2\x83\xa2\x84\xa2\x85\xa2\x86\xa2\x87\xa2\x88\xa2\x89\xa2\x8a\xa2\x8b\xa2\x8c\xa2\x8d", /* 7400 */ "\xa2\x8e\xa2\x8f\xa2\x90\x54\x93\xa2\x91\x50\xc4\x50\xec\xa2\x92\xa2\x93\x51\x91\x64\x91\xa2\x94\xa2\x95\xa2\x96\xa2\x97\x64\x97\x56\x97\xa2\x98\xa2\x99\xa2\x9a\xa2\x9b\xa2\x9c\xa2\x9d\xa2\x9e\xa2\x9f\xa2\xa0\x64\xa1\x64\xa0\xa2\xa1\xa2\xa2\xa2\xa3\xa2\xa4\xa2\xa5\xa2\xa6\x5c\x61\xa2\xa7\xa2\xa8\x64\x9b\x64\x9a\xa2\xa9\x64\x9c\xa2\xaa\x64\x98\xa2\xab\x64\x9f\xa2\xac\x64\x9e\xa2\xad\x64\x9d\xa2\xae\xa2\xaf\x51\x75\x54\x79\x53\x9e\x53\x63\xa2\xb0\xa2\xb1\xa2\xb2\xa2\xb3\xa2\xb4\x54\x8e\xa2\xb5\xa2\xb6\xa2\xb7\xa2\xb8\x64\xa2\xa2\xb9\xa2\xba\xa2\xbb\xa2\xbc\xa2\xbd\xa2\xbe\xa2\xbf\xa2\xc0\xa2\xc1\xa2\xc2\xa2\xc3\xa2\xc4\xa2\xc5\xa2\xc6\xa2\xc7\xa2\xc8\xa2\xc9\xa2\xca\xa2\xcb\x64\xa5\xa2\xcc\x64\xa4\xa2\xcd\x64\xa6\x4d\xf6\x64\x99\x64\xa3\xa2\xce\x54\xef\x55\x4a\xa2\xcf\xa2\xd0\xa2\xd1\xa2\xd2\xa2\xd3\xa2\xd4\xa2\xd5\xa2\xd6\xa2\xd7\xa2\xd8\xa2\xd9\xa2\xda\xa2\xdb\x64\xa8\xa2\xdc\xa2\xdd\x4d\x86\xa2\xde\xa2\xdf\xa2\xe0\xa2\xe1\xa2\xe2\x59\x9f\x64\xa7\xa2\xe3\xa2\xe4\xa2\xe5\xa2\xe6\xa2\xe7\xa2\xe8\x64\xa9\xa2\xe9", /* 7480 */ "\x64\xac\x64\xad\xa2\xea\x51\x47\xa2\xeb\xa2\xec\xa2\xed\x64\xae\xa2\xee\xa2\xef\xa2\xf0\x64\xaf\xa2\xf1\xa2\xf2\x64\xab\xa2\xf3\x64\xb3\xa2\xf4\xa2\xf5\xa2\xf6\xa2\xf7\xa2\xf8\xa2\xf9\xa2\xfa\xa2\xfb\xa2\xfc\xa2\xfd\xa3\x41\x64\xaa\xa3\x42\x64\xb0\xa3\x43\xa3\x44\xa3\x45\xa3\x46\xa3\x47\xa3\x48\xa3\x49\xa3\x4a\x64\xb4\x64\xb1\x64\xb2\xa3\x4b\xa3\x4c\xa3\x4d\xa3\x4e\xa3\x4f\xa3\x50\xa3\x51\xa3\x52\xa3\x53\xa3\x54\xa3\x55\xa3\x56\xa3\x57\xa3\x58\xa3\x59\xa3\x5a\x64\xb6\xa3\x5b\xa3\x5c\xa3\x5d\xa3\x5e\xa3\x5f\xa3\x60\xa3\x61\xa3\x62\xa3\x63\xa3\x64\xa3\x65\xa3\x66\xa3\x67\xa3\x68\xa3\x69\xa3\x6a\xa3\x6b\xa3\x6c\xa3\x6d\xa3\x6e\xa3\x6f\xa3\x70\xa3\x71\x64\xb5\xa3\x72\xa3\x73\xa3\x74\xa3\x75\xa3\x76\xa3\x77\xa3\x78\xa3\x79\xa3\x7a\x4d\x6f\xa3\x7b\x68\xab\xa3\x7c\x68\xac\xa3\x7d\x53\xaf\x48\xe9\x54\xbe\xa3\x7e\x57\x7f\xa3\x7f\xa3\x81\xa3\x82\xa3\x83\xa3\x84\xa3\x85\xa3\x86\x57\xcc\x65\xb0\xa3\x87\xa3\x88\xa3\x89\xa3\x8a\x65\xb1\xa3\x8b\x53\xbe\x4a\xc8\xa3\x8c\xa3\x8d\xa3\x8e\xa3\x8f\xa3\x90\xa3\x91\xa3\x92\x65\xb2", /* 7500 */ "\xa3\x93\xa3\x94\xa3\x95\xa3\x96\x5b\x88\xa3\x97\xa3\x98\xa3\x99\xa3\x9a\xa3\x9b\xa3\x9c\xa3\x9d\xa3\x9e\x5f\x9a\xa3\x9f\x65\xb3\xa3\xa0\x65\xb4\xa3\xa1\x65\xb5\xa3\xa2\xa3\xa3\xa3\xa4\xa3\xa5\x4c\xc9\x60\x50\x55\x96\xa3\xa6\x56\xef\xa3\xa7\xa3\xa8\x55\x9b\xa3\xa9\xa3\xaa\xa3\xab\xa3\xac\xa3\xad\x55\x9c\xa3\xae\xa3\xaf\x5a\x63\x56\x46\xa3\xb0\x4c\xa5\x68\xad\x49\x62\xa3\xb1\x63\x58\x56\xee\x5a\x69\x4e\xd6\x55\x8b\xa3\xb2\x4b\x88\xa3\xb3\x52\xcf\x4b\x8a\xa3\xb4\x67\xad\x4e\x4d\xa3\xb5\xa3\xb6\x64\x7e\xa3\xb7\x67\xae\xa3\xb8\xa3\xb9\xa3\xba\xa3\xbb\x4a\x49\xa3\xbc\xa3\xbd\x67\xb1\xa3\xbe\xa3\xbf\x67\xb0\x4f\x88\xa3\xc0\x67\xaf\x57\xb6\xa3\xc1\xa3\xc2\xa3\xc3\xa3\xc4\x53\x6f\xa3\xc5\xa3\xc6\xa3\xc7\xa3\xc8\x51\x95\x5e\x6e\x67\xb2\x58\xf2\xa3\xc9\xa3\xca\xa3\xcb\xa3\xcc\xa3\xcd\xa3\xce\xa3\xcf\xa3\xd0\x51\xd3\x53\xe7\xa3\xd1\xa3\xd2\xa3\xd3\x4c\x4c\xa3\xd4\xa3\xd5\xa3\xd6\xa3\xd7\xa3\xd8\xa3\xd9\xa3\xda\x67\xb3\xa3\xdb\x4a\x8c\xa3\xdc\xa3\xdd\xa3\xde\x4e\x9c\x67\xb4\xa3\xdf\xa3\xe0\xa3\xe1\xa3\xe2\xa3\xe3\x64\x7c", /* 7580 */ "\xa3\xe4\xa3\xe5\xa3\xe6\x67\xb5\xa3\xe7\xa3\xe8\x4f\x4e\xa3\xe9\xa3\xea\xa3\xeb\xa3\xec\x69\x83\xa3\xed\xa3\xee\xa3\xef\x55\xe7\xa3\xf0\x59\xc8\x68\xd9\xa3\xf1\x68\xda\xa3\xf2\x68\xdb\x51\x66\xa3\xf3\x4c\xec\x4f\xcd\xa3\xf4\xa3\xf5\x68\xdd\xa3\xf6\x53\x51\x68\xdc\x59\x92\xa3\xf7\x68\xdf\x48\xcb\x4f\x8b\xa3\xf8\xa3\xf9\xa3\xfa\xa3\xfb\xa3\xfc\x59\xde\x68\xde\xa3\xfd\x4a\xae\x4c\x89\x68\xe5\x68\xe4\x53\xa2\x68\xe0\x68\xe1\x4a\xc2\xa4\x41\xa4\x42\x68\xe2\x5b\x8f\xa4\x43\xa4\x44\x56\xda\x4f\xd1\x4e\xb1\xa4\x45\xa4\x46\xa4\x47\x68\xe7\x68\xe6\x68\xe3\x49\xa0\xa4\x48\x5b\xa1\x5a\x58\x4f\xb6\x54\xab\xa4\x49\xa4\x4a\x68\xe9\xa4\x4b\xa4\x4c\xa4\x4d\xa4\x4e\x59\x98\xa4\x4f\x5b\xcb\x4d\xda\x68\xe8\xa4\x50\x4b\xba\xa4\x51\xa4\x52\x57\x54\xa4\x53\xa4\x54\x53\xa5\xa4\x55\xa4\x56\xa4\x57\x51\x41\x68\xea\x68\xed\xa4\x58\x68\xec\x68\xef\x68\xeb\xa4\x59\x4e\x5e\x68\xee\xa4\x5a\xa4\x5b\xa4\x5c\xa4\x5d\x56\xb4\x68\xf1\xa4\x5e\xa4\x5f\x4a\x75\xa4\x60\xa4\x61\xa4\x62\xa4\x63\x49\x74\xa4\x64\xa4\x65\x68\xf2\xa4\x66\xa4\x67\x68\xf3", /* 7600 */ "\x68\xf5\x4a\xe0\xa4\x68\x68\xf0\xa4\x69\x68\xf6\xa4\x6a\xa4\x6b\xa4\x6c\xa4\x6d\x68\xf9\xa4\x6e\x68\xf7\xa4\x6f\xa4\x70\xa4\x71\x68\xf4\xa4\x72\xa4\x73\xa4\x74\xa4\x75\x68\xfc\xa4\x76\x68\xf8\x68\xfb\x68\xfd\xa4\x77\x69\x41\xa4\x78\xa4\x79\xa4\x7a\x57\xc0\x69\x44\xa4\x7b\x69\x43\xa4\x7c\x51\x97\x68\xfa\x55\xdc\xa4\x7d\xa4\x7e\x4a\xf0\x49\x92\x56\xb0\xa4\x7f\x69\x46\xa4\x81\xa4\x82\x69\x47\xa4\x83\xa4\x84\x69\x4c\x5b\x6e\x69\x49\xa4\x85\xa4\x86\x54\xb2\xa4\x87\xa4\x88\xa4\x89\x69\x42\xa4\x8a\x69\x4b\x69\x48\x69\x45\xa4\x8b\xa4\x8c\x69\x4a\xa4\x8d\xa4\x8e\xa4\x8f\xa4\x90\xa4\x91\xa4\x92\xa4\x93\xa4\x94\x48\xa8\x69\x4d\xa4\x95\xa4\x96\xa4\x97\xa4\x98\xa4\x99\xa4\x9a\x69\x4f\xa4\x9b\x69\x51\xa4\x9c\xa4\x9d\xa4\x9e\xa4\x9f\xa4\xa0\x69\x50\xa4\xa1\x69\x4e\xa4\xa2\xa4\xa3\xa4\xa4\xa4\xa5\x59\x42\xa4\xa6\xa4\xa7\xa4\xa8\xa4\xa9\xa4\xaa\xa4\xab\xa4\xac\x69\x52\xa4\xad\xa4\xae\xa4\xaf\x69\x53\xa4\xb0\xa4\xb1\xa4\xb2\xa4\xb3\xa4\xb4\xa4\xb5\xa4\xb6\xa4\xb7\x4d\x90\xa4\xb8\xa4\xb9\x4b\x67\xa4\xba\x48\xd6\x48\xd8\xa4\xbb", /* 7680 */ "\xa4\xbc\xa4\xbd\x5a\xec\xa4\xbe\x4b\x64\xa4\xbf\x4f\x74\x4e\x6a\x68\xa6\xa4\xc0\xa4\xc1\x4c\xdd\xa4\xc2\xa4\xc3\x68\xa7\xa4\xc4\xa4\xc5\x48\xa7\xa4\xc6\x68\xa8\xa4\xc7\xa4\xc8\x57\x8f\xa4\xc9\xa4\xca\x68\xa9\xa4\xcb\xa4\xcc\xa4\xcd\xa4\xce\xa4\xcf\xa4\xd0\xa4\xd1\xa4\xd2\xa4\xd3\xa4\xd4\x68\xaa\xa4\xd5\xa4\xd6\xa4\xd7\xa4\xd8\xa4\xd9\xa4\xda\xa4\xdb\xa4\xdc\xa4\xdd\x53\xa3\xa4\xde\xa4\xdf\x5b\xe4\x69\x85\xa4\xe0\x69\x86\xa4\xe1\xa4\xe2\xa4\xe3\xa4\xe4\xa4\xe5\xa4\xe6\xa4\xe7\xa4\xe8\xa4\xe9\xa4\xea\x52\x94\xa4\xeb\xa4\xec\x5a\x7b\xa4\xed\xa4\xee\x5b\xd0\x53\x89\xa4\xef\x5a\x4f\xa4\xf0\x59\xe5\xa4\xf1\xa4\xf2\x67\xc0\x48\xba\x5b\x55\x59\x6e\x4e\xdf\x4d\xcf\xa4\xf3\x50\x99\xa4\xf4\x4c\xc6\x4b\x61\x53\x6c\xa4\xf5\xa4\xf6\x55\xa1\xa4\xf7\xa4\xf8\xa4\xf9\x52\x6b\xa4\xfa\xa4\xfb\xa4\xfc\xa4\xfd\xa5\x41\x67\xc1\xa5\x42\xa5\x43\xa5\x44\xa5\x45\xa5\x46\xa5\x47\xa5\x48\xa5\x49\x52\xbe\x4b\xa1\xa5\x4a\x67\x8d\x52\x44\xa5\x4b\x5b\xb0\xa5\x4c\xa5\x4d\xa5\x4e\x58\x81\x67\x90\xa5\x4f\xa5\x50\x53\x6e\xa5\x51\x4b\xdb\xa5\x52", /* 7700 */ "\xa5\x53\x55\xa0\xa5\x54\xa5\x55\x67\x8e\xa5\x56\xa5\x57\x67\x91\x67\x92\x52\x5c\xa5\x58\x50\x54\xa5\x59\x67\x8f\xa5\x5a\xa5\x5b\xa5\x5c\xa5\x5d\xa5\x5e\xa5\x5f\xa5\x60\xa5\x61\xa5\x62\xa5\x63\xa5\x64\x67\x95\x67\x93\xa5\x65\xa5\x66\xa5\x67\xa5\x68\x5b\x87\x52\x7f\xa5\x69\x67\x94\xa5\x6a\xa5\x6b\xa5\x6c\x67\x97\xa5\x6d\x5b\x43\x59\x43\xa5\x6e\xa5\x6f\xa5\x70\x67\x96\xa5\x71\x52\x70\xa5\x72\xa5\x73\xa5\x74\xa5\x75\xa5\x76\x67\x98\x50\x95\x4f\xeb\x67\x99\xa5\x77\x56\xf6\xa5\x78\x59\x7b\xa5\x79\xa5\x7a\xa5\x7b\x5c\x65\x5b\x97\xa5\x7c\x67\x9d\xa5\x7d\xa5\x7e\xa5\x7f\x67\x9c\xa5\x81\xa5\x82\xa5\x83\xa5\x84\xa5\x85\xa5\x86\xa5\x87\xa5\x88\x67\x9a\x67\x9b\xa5\x89\xa5\x8a\xa5\x8b\xa5\x8c\xa5\x8d\xa5\x8e\xa5\x8f\xa5\x90\x67\x9e\x4f\xa5\xa5\x91\xa5\x92\xa5\x93\xa5\x94\xa5\x95\x56\x4f\x67\xa0\x4b\xbc\xa5\x96\x67\xa1\x52\xbf\xa5\x97\x67\x9f\xa5\x98\xa5\x99\x4f\x7e\x49\xc6\xa5\x9a\xa5\x9b\xa5\x9c\xa5\x9d\xa5\x9e\xa5\x9f\xa5\xa0\xa5\xa1\xa5\xa2\xa5\xa3\xa5\xa4\xa5\xa5\x4b\xc2\xa5\xa6\xa5\xa7\xa5\xa8\x67\xa4\x5c\xb9\x67\xa2", /* 7780 */ "\x67\xa5\xa5\xa9\xa5\xaa\xa5\xab\x52\x8a\x4a\x93\xa5\xac\xa5\xad\xa5\xae\xa5\xaf\xa5\xb0\xa5\xb1\x67\xa6\x67\xa3\x58\x59\xa5\xb2\xa5\xb3\x67\xa7\x51\xf6\xa5\xb4\xa5\xb5\xa5\xb6\xa5\xb7\xa5\xb8\xa5\xb9\xa5\xba\xa5\xbb\xa5\xbc\xa5\xbd\xa5\xbe\xa5\xbf\x67\xa8\x67\xa9\xa5\xc0\x5f\xaa\xa5\xc1\xa5\xc2\x53\xb2\xa5\xc3\x54\x66\xa5\xc4\x5b\xf4\x4b\x69\xa5\xc5\x56\x52\xa5\xc6\xa5\xc7\xa5\xc8\x67\xaa\xa5\xc9\xa5\xca\x57\x4b\xa5\xcb\x67\xab\xa5\xcc\xa5\xcd\xa5\xce\xa5\xcf\xa5\xd0\x5b\x50\xa5\xd1\x67\xac\xa5\xd2\x6b\xc3\xa5\xd3\xa5\xd4\xa5\xd5\xa5\xd6\xa5\xd7\xa5\xd8\xa5\xd9\xa5\xda\xa5\xdb\xa5\xdc\xa5\xdd\xa5\xde\xa5\xdf\x5e\x67\xa5\xe0\xa5\xe1\xa5\xe2\xa5\xe3\xa5\xe4\xa5\xe5\xa5\xe6\xa5\xe7\xa5\xe8\x4a\xa2\xa5\xe9\xa5\xea\xa5\xeb\x52\x4c\x69\x87\xa5\xec\xa5\xed\xa5\xee\xa5\xef\xa5\xf0\x55\xb7\x59\xd2\xa5\xf1\x5b\xa9\xa5\xf2\x68\x93\xa5\xf3\x4f\xd7\xa5\xf4\x4f\x63\x68\x94\x4b\xcb\x48\xaa\xa5\xf5\xa5\xf6\xa5\xf7\xa5\xf8\x55\xae\xa5\xf9\xa5\xfa\x67\x56\xa5\xfb\x67\x57\xa5\xfc\xa5\xfd\xa6\x41\xa6\x42\x57\xf8\x4c\x4f\x50\x94", /* 7800 */ "\x67\x58\x51\xea\x55\x50\xa6\x43\xa6\x44\xa6\x45\xa6\x46\xa6\x47\xa6\x48\x67\x59\xa6\x49\xa6\x4a\x53\xf5\x50\x53\xa6\x4b\xa6\x4c\xa6\x4d\x67\x5c\x53\x99\xa6\x4e\x59\x70\xa6\x4f\x5c\x49\x67\x5a\x67\x5b\xa6\x50\x59\x83\xa6\x51\x67\x5f\x67\x60\xa6\x52\x67\x64\xa6\x53\xa6\x54\xa6\x55\x67\x68\xa6\x56\x67\x66\x67\x6e\x5b\x89\xa6\x57\x67\x69\xa6\x58\xa6\x59\x67\x67\x67\x5e\xa6\x5a\xa6\x5b\x53\x8a\xa6\x5c\xa6\x5d\xa6\x5e\x53\xc5\xa6\x5f\xa6\x60\x55\x8a\x5a\xd1\x67\x61\x67\x62\x67\x63\x67\x65\xa6\x61\x50\xf8\xa6\x62\x4a\xa0\xa6\x63\xa6\x64\xa6\x65\xa6\x66\x4d\x89\xa6\x67\x67\x70\xa6\x68\xa6\x69\xa6\x6a\xa6\x6b\x67\x71\xa6\x6c\x67\x6a\xa6\x6d\x67\x6f\xa6\x6e\x57\xf7\xa6\x6f\xa6\x70\x56\x56\x67\x6c\x67\x6d\xa6\x71\xa6\x72\xa6\x73\xa6\x74\xa6\x75\x58\x96\xa6\x76\xa6\x77\xa6\x78\xa6\x79\xa6\x7a\xa6\x7b\xa6\x7c\xa6\x7d\xa6\x7e\xa6\x7f\xa6\x81\xa6\x82\x67\x72\x51\x93\x5a\x52\x67\x6b\x54\xb6\xa6\x83\xa6\x84\xa6\x85\xa6\x86\xa6\x87\xa6\x88\xa6\x89\xa6\x8a\x4e\xee\xa6\x8b\xa6\x8c\xa6\x8d\xa6\x8e\x53\x91\xa6\x8f\xa6\x90\xa6\x91", /* 7880 */ "\xa6\x92\xa6\x93\xa6\x94\xa6\x95\xa6\x96\xa6\x97\xa6\x98\x67\x76\xa6\x99\x4b\x90\xa6\x9a\xa6\x9b\x51\xb4\x48\xac\x56\x8a\xa6\x9c\xa6\x9d\x49\x4e\xa6\x9e\x67\x74\xa6\x9f\xa6\xa0\xa6\xa1\x57\x8c\x4b\x83\xa6\xa2\x67\x75\x67\x73\x67\x77\xa6\xa3\xa6\xa4\x4b\x9b\xa6\xa5\x67\x78\xa6\xa6\x67\x79\xa6\xa7\x67\x7c\xa6\xa8\x49\x6c\xa6\xa9\xa6\xaa\xa6\xab\xa6\xac\xa6\xad\xa6\xae\xa6\xaf\xa6\xb0\x53\x97\x4e\xed\x67\x7a\x56\xbb\x49\xe9\xa6\xb1\xa6\xb2\xa6\xb3\xa6\xb4\x67\x7b\xa6\xb5\xa6\xb6\xa6\xb7\xa6\xb8\x52\xea\xa6\xb9\xa6\xba\x4a\xc4\xa6\xbb\xa6\xbc\xa6\xbd\x48\xf4\xa6\xbe\xa6\xbf\xa6\xc0\x67\x7f\x50\xd9\x4a\xe7\xa6\xc1\xa6\xc2\xa6\xc3\xa6\xc4\x53\x6d\xa6\xc5\xa6\xc6\xa6\xc7\x67\x7d\x50\x64\xa6\xc8\xa6\xc9\xa6\xca\x67\x7e\xa6\xcb\xa6\xcc\xa6\xcd\xa6\xce\xa6\xcf\xa6\xd0\xa6\xd1\xa6\xd2\xa6\xd3\xa6\xd4\xa6\xd5\xa6\xd6\xa6\xd7\xa6\xd8\x52\xa4\xa6\xd9\xa6\xda\xa6\xdb\x67\x81\xa6\xdc\xa6\xdd\xa6\xde\xa6\xdf\xa6\xe0\x67\x82\xa6\xe1\x67\x84\xa6\xe2\xa6\xe3\x51\x77\xa6\xe4\xa6\xe5\x4e\x67\xa6\xe6\xa6\xe7\xa6\xe8\xa6\xe9\xa6\xea", /* 7900 */ "\xa6\xeb\x4f\x58\xa6\xec\xa6\xed\xa6\xee\x67\x83\xa6\xef\xa6\xf0\xa6\xf1\xa6\xf2\xa6\xf3\xa6\xf4\xa6\xf5\xa6\xf6\xa6\xf7\xa6\xf8\xa6\xf9\xa6\xfa\xa6\xfb\x67\x85\xa6\xfc\xa6\xfd\xa7\x41\xa7\x42\xa7\x43\xa7\x44\xa7\x45\xa7\x46\xa7\x47\xa7\x48\x67\x87\xa7\x49\xa7\x4a\xa7\x4b\xa7\x4c\xa7\x4d\x67\x86\xa7\x4e\xa7\x4f\xa7\x50\xa7\x51\xa7\x52\xa7\x53\xa7\x54\xa7\x55\xa7\x56\xa7\x57\xa7\x58\xa7\x59\xa7\x5a\xa7\x5b\xa7\x5c\x67\x88\xa7\x5d\xa7\x5e\xa7\x5f\xa7\x60\xa7\x61\x55\xbd\x66\xe9\x50\xf0\xa7\x62\x55\x88\xa7\x63\x66\xea\x53\xed\xa7\x64\xa7\x65\xa7\x66\xa7\x67\x66\xeb\xa7\x68\x53\xec\x66\xec\xa7\x69\xa7\x6a\xa7\x6b\xa7\x6c\xa7\x6d\xa7\x6e\xa7\x6f\xa7\x70\xa7\x71\x66\xef\xa7\x72\xa7\x73\x5c\x87\x66\xf2\xa7\x74\xa7\x75\x66\xf0\x66\xed\x66\xee\x5c\x43\x55\x92\x56\x8f\x66\xf3\xa7\x76\x66\xf1\xa7\x77\xa7\x78\x58\x8a\xa7\x79\x66\xf5\x53\xb0\xa7\x7a\xa7\x7b\xa7\x7c\xa7\x7d\x4e\xbf\xa7\x7e\x66\xf4\xa7\x7f\xa7\x81\xa7\x82\xa7\x83\xa7\x84\xa7\x85\xa7\x86\x4b\x5b\x4e\x97\xa7\x87\x66\xf6\xa7\x88\xa7\x89\xa7\x8a\xa7\x8b\xa7\x8c", /* 7980 */ "\x5d\x98\x4f\x9c\xa7\x8d\xa7\x8e\x51\xba\x66\xf7\xa7\x8f\xa7\x90\xa7\x91\xa7\x92\x66\xf8\xa7\x93\xa7\x94\xa7\x95\xa7\x96\x4c\xa2\xa7\x97\xa7\x98\xa7\x99\xa7\x9a\xa7\x9b\xa7\x9c\xa7\x9d\xa7\x9e\xa7\x9f\xa7\xa0\x66\xf9\xa7\xa1\xa7\xa2\xa7\xa3\xa7\xa4\xa7\xa5\xa7\xa6\xa7\xa7\xa7\xa8\xa7\xa9\xa7\xaa\xa7\xab\xa7\xac\x66\xfa\xa7\xad\xa7\xae\xa7\xaf\xa7\xb0\xa7\xb1\xa7\xb2\xa7\xb3\xa7\xb4\xa7\xb5\xa7\xb6\xa7\xb7\x66\xfb\xa7\xb8\xa7\xb9\xa7\xba\xa7\xbb\xa7\xbc\x5a\x8e\x5c\xad\x50\xea\xa7\xbd\x54\x7d\x4d\xcb\xa7\xbe\x58\xe2\x56\x5d\xa7\xbf\x57\x5a\xa7\xc0\xa7\xc1\x4c\xd0\xa7\xc2\xa7\xc3\x49\x9d\xa7\xc4\x54\x90\xa7\xc5\x5b\xd5\xa7\xc6\xa7\xc7\xa7\xc8\x50\x66\x52\x8c\xa7\xc9\xa7\xca\x68\x96\xa7\xcb\xa7\xcc\x52\x78\xa7\xcd\xa7\xce\xa7\xcf\xa7\xd0\xa7\xd1\xa7\xd2\x5c\x83\xa7\xd3\xa7\xd4\xa7\xd5\x68\x98\x4a\x73\xa7\xd6\x54\x78\x59\x8e\xa7\xd7\x5b\xc7\xa7\xd8\x68\x99\xa7\xd9\x68\x97\xa7\xda\x4e\x9e\x4a\x66\xa7\xdb\xa7\xdc\xa7\xdd\xa7\xde\xa7\xdf\xa7\xe0\xa7\xe1\x4f\x75\xa7\xe2\xa7\xe3\x59\xc5\xa7\xe4\x4e\x81\xa7\xe5\xa7\xe6", /* 7a00 */ "\x58\x41\xa7\xe7\x68\x9d\x68\x9c\xa7\xe8\xa7\xe9\x68\x9a\xa7\xea\xa7\xeb\xa7\xec\xa7\xed\x4a\x6c\xa7\xee\x55\x74\x56\x50\xa7\xef\xa7\xf0\xa7\xf1\xa7\xf2\xa7\xf3\x68\x9f\xa7\xf4\xa7\xf5\x48\xdd\xa7\xf6\xa7\xf7\x5b\xc8\xa7\xf8\xa7\xf9\xa7\xfa\x68\x9e\xa7\xfb\x4a\x8e\xa7\xfc\xa7\xfd\x6b\xd4\xa8\x41\xa8\x42\xa8\x43\xa8\x44\xa8\x45\xa8\x46\xa8\x47\xa8\x48\xa8\x49\xa8\x4a\xa8\x4b\xa8\x4c\xa8\x4d\xa8\x4e\xa8\x4f\x57\xc7\xa8\x50\xa8\x51\xa8\x52\x68\xa1\xa8\x53\x68\xa0\xa8\x54\x4b\x5e\x4e\xd9\x4e\x9d\xa8\x55\x4c\xe4\xa8\x56\xa8\x57\xa8\x58\xa8\x59\xa8\x5a\xa8\x5b\x52\xc1\xa8\x5c\xa8\x5d\xa8\x5e\xa8\x5f\xa8\x60\xa8\x61\xa8\x62\xa8\x63\xa8\x64\xa8\x65\x68\xa2\xa8\x66\xa8\x67\xa8\x68\xa8\x69\xa8\x6a\x56\x8c\xa8\x6b\xa8\x6c\xa8\x6d\xa8\x6e\xa8\x6f\xa8\x70\xa8\x71\xa8\x72\xa8\x73\xa8\x74\xa8\x75\xa8\x76\xa8\x77\xa8\x78\xa8\x79\xa8\x7a\xa8\x7b\xa8\x7c\xa8\x7d\xa8\x7e\xa8\x7f\xa8\x81\xa8\x82\xa8\x83\x68\xa5\xa8\x84\xa8\x85\xa8\x86\x59\x48\xa8\x87\x4f\xbe\x54\x8f\x69\x56\x69\x57\x50\x75\xa8\x88\xa8\x89\xa8\x8a\xa8\x8b\x4a\xa8", /* 7a80 */ "\x69\x58\x57\x5b\xa8\x8c\x54\x74\x5b\x4d\xa8\x8d\x69\x59\xa8\x8e\x69\x5a\xa8\x8f\xa8\x90\xa8\x91\xa8\x92\x54\x6f\xa8\x93\xa8\x94\xa8\x95\x59\xa3\x5b\xce\xa8\x96\xa8\x97\x69\x5b\x4f\x71\x4a\xaf\x4f\xbc\xa8\x98\xa8\x99\xa8\x9a\x4a\xdb\x57\xd0\xa8\x9b\x50\x7f\x69\x5d\xa8\x9c\xa8\x9d\xa8\x9e\xa8\x9f\x50\x9b\x69\x5c\xa8\xa0\x69\x5f\xa8\xa1\xa8\xa2\xa8\xa3\x69\x5e\x69\x60\xa8\xa4\xa8\xa5\xa8\xa6\xa8\xa7\xa8\xa8\x69\x61\xa8\xa9\xa8\xaa\xa8\xab\xa8\xac\xa8\xad\xa8\xae\xa8\xaf\xa8\xb0\xa8\xb1\xa8\xb2\xa8\xb3\x51\x9f\xa8\xb4\xa8\xb5\xa8\xb6\xa8\xb7\xa8\xb8\xa8\xb9\xa8\xba\xa8\xbb\xa8\xbc\xa8\xbd\xa8\xbe\x51\x42\xa8\xbf\xa8\xc0\xa8\xc1\xa8\xc2\xa8\xc3\xa8\xc4\xa8\xc5\xa8\xc6\xa8\xc7\xa8\xc8\x55\xf9\xa8\xc9\xa8\xca\x5b\x5e\xa8\xcb\xa8\xcc\xa8\xcd\xa8\xce\x4f\xb9\x4f\xb8\x5b\x62\xa8\xcf\xa8\xd0\x50\x42\xa8\xd1\x57\x4f\x69\x55\xa8\xd2\xa8\xd3\xa8\xd4\xa8\xd5\xa8\xd6\xa8\xd7\x4f\x7f\xa8\xd8\x4b\xca\xa8\xd9\xa8\xda\xa8\xdb\xa8\xdc\xa8\xdd\xa8\xde\xa8\xdf\xa8\xe0\xa8\xe1\x5b\xf0\x6a\x63\xa8\xe2\xa8\xe3\x6a\x64\xa8\xe4\x4c\xcc", /* 7b00 */ "\xa8\xe5\xa8\xe6\xa8\xe7\x6a\x66\x6a\x67\xa8\xe8\x48\xc9\xa8\xe9\x6a\x65\xa8\xea\x6a\x69\x56\x92\xa8\xeb\xa8\xec\xa8\xed\x6a\x6b\xa8\xee\x58\xa5\xa8\xef\xa8\xf0\x49\x6a\x6a\x68\xa8\xf1\xa8\xf2\xa8\xf3\x6a\x6f\xa8\xf4\x4b\x71\xa8\xf5\xa8\xf6\x6a\x77\xa8\xf7\x6a\x72\xa8\xf8\xa8\xf9\xa8\xfa\x6a\x74\x6a\x73\x4c\x9c\xa8\xfb\x49\x5f\xa8\xfc\x6a\x6e\x6a\x6a\x4b\x7a\xa8\xfd\x6a\x70\xa9\x41\xa9\x42\x6a\x71\xa9\x43\x6a\x75\xa9\x44\xa9\x45\xa9\x46\xa9\x47\x6a\x6d\xa9\x48\x4e\xe2\xa9\x49\x51\x9e\xa9\x4a\x6a\x76\xa9\x4b\xa9\x4c\xa9\x4d\xa9\x4e\xa9\x4f\xa9\x50\x6a\x7a\xa9\x51\x6a\x6c\xa9\x52\x4b\x68\xa9\x53\x4f\x8f\x6a\x7c\xa9\x54\xa9\x55\x4c\x44\x50\x91\x5b\xfd\x57\x52\xa9\x56\x4a\xef\xa9\x57\x49\xde\xa9\x58\x6a\x78\xa9\x59\x6a\x79\x55\x58\xa9\x5a\x6a\x7d\xa9\x5b\xa9\x5c\x6a\x7e\xa9\x5d\x6a\x82\xa9\x5e\xa9\x5f\xa9\x60\xa9\x61\xa9\x62\xa9\x63\xa9\x64\xa9\x65\xa9\x66\xa9\x67\xa9\x68\x6a\x7f\xa9\x69\xa9\x6a\x6a\x84\x6a\x83\xa9\x6b\xa9\x6c\x6a\x7b\xa9\x6d\x50\x8b\xa9\x6e\x4a\x90\xa9\x6f\x6a\x81\xa9\x70\xa9\x71\x54\x49\xa9\x72", /* 7b80 */ "\x4e\xf1\xa9\x73\xa9\x74\xa9\x75\xa9\x76\x6a\x8c\xa9\x77\xa9\x78\xa9\x79\xa9\x7a\xa9\x7b\xa9\x7c\xa9\x7d\x4d\x5f\xa9\x7e\xa9\x7f\x6a\x85\xa9\x81\xa9\x82\xa9\x83\x49\xac\x4e\x9f\xa9\x84\x56\x84\xa9\x85\xa9\x86\xa9\x87\xa9\x88\x6a\x8e\x6a\x8a\xa9\x89\xa9\x8a\xa9\x8b\x4d\x7c\x6a\x8f\xa9\x8c\xa9\x8d\xa9\x8e\x6a\x86\x6a\x87\x6a\x8b\x51\xe0\x6a\x8d\x6a\x90\x6a\x89\x4e\xfc\xa9\x8f\xa9\x90\xa9\x91\x58\x85\xa9\x92\xa9\x93\x6a\x91\xa9\x94\xa9\x95\xa9\x96\x6a\x88\xa9\x97\xa9\x98\xa9\x99\xa9\x9a\xa9\x9b\xa9\x9c\xa9\x9d\xa9\x9e\x6a\x93\xa9\x9f\xa9\xa0\xa9\xa1\xa9\xa2\x5c\x4d\x53\xa9\xa9\xa3\xa9\xa4\xa9\xa5\xa9\xa6\x6a\x94\xa9\xa7\xa9\xa8\xa9\xa9\xa9\xaa\x6a\x92\xa9\xab\x51\xa7\xa9\xac\xa9\xad\xa9\xae\xa9\xaf\xa9\xb0\x4c\xdc\x6a\x96\xa9\xb1\xa9\xb2\x6a\x95\xa9\xb3\xa9\xb4\xa9\xb5\x4a\xda\xa9\xb6\xa9\xb7\xa9\xb8\x6a\x97\x6a\x98\xa9\xb9\xa9\xba\xa9\xbb\x6a\x99\xa9\xbc\xa9\xbd\xa9\xbe\x50\xb9\xa9\xbf\xa9\xc0\x50\xe8\xa9\xc1\xa9\xc2\xa9\xc3\xa9\xc4\xa9\xc5\x53\x92\xa9\xc6\xa9\xc7\xa9\xc8\xa9\xc9\x6a\x9c\xa9\xca\x6a\x9b\xa9\xcb", /* 7c00 */ "\xa9\xcc\xa9\xcd\xa9\xce\xa9\xcf\xa9\xd0\xa9\xd1\xa9\xd2\x4a\xd7\xa9\xd3\xa9\xd4\xa9\xd5\x6a\x9f\x6a\x9a\xa9\xd6\xa9\xd7\x6a\x9d\xa9\xd8\xa9\xd9\xa9\xda\xa9\xdb\xa9\xdc\xa9\xdd\x6a\x9e\xa9\xde\xa9\xdf\xa9\xe0\xa9\xe1\xa9\xe2\xa9\xe3\xa9\xe4\xa9\xe5\x6a\xa0\xa9\xe6\xa9\xe7\xa9\xe8\xa9\xe9\xa9\xea\xa9\xeb\x6a\xa2\x4e\x69\xa9\xec\xa9\xed\x6a\xa1\xa9\xee\xa9\xef\xa9\xf0\xa9\xf1\xa9\xf2\xa9\xf3\xa9\xf4\xa9\xf5\xa9\xf6\xa9\xf7\xa9\xf8\xa9\xf9\xa9\xfa\x6a\xa3\xa9\xfb\xa9\xfc\xa9\xfd\xaa\x41\xaa\x42\xaa\x43\x49\xbd\x6a\xa5\x6a\xa4\xaa\x44\xaa\x45\xaa\x46\xaa\x47\xaa\x48\xaa\x49\xaa\x4a\xaa\x4b\xaa\x4c\xaa\x4d\xaa\x4e\x4e\xad\xaa\x4f\xaa\x50\xaa\x51\xaa\x52\xaa\x53\xaa\x54\xaa\x55\xaa\x56\xaa\x57\xaa\x58\xaa\x59\xaa\x5a\xaa\x5b\xaa\x5c\xaa\x5d\xaa\x5e\xaa\x5f\xaa\x60\xaa\x61\xaa\x62\xaa\x63\xaa\x64\xaa\x65\xaa\x66\xaa\x67\xaa\x68\xaa\x69\xaa\x6a\xaa\x6b\xaa\x6c\xaa\x6d\xaa\x6e\xaa\x6f\xaa\x70\xaa\x71\xaa\x72\xaa\x73\x52\x77\x5d\x82\xaa\x74\xaa\x75\xaa\x76\xaa\x77\xaa\x78\xaa\x79\x50\xdf\x6a\xcb\x5c\x71\xaa\x7a\xaa\x7b", /* 7c80 */ "\xaa\x7c\xaa\x7d\xaa\x7e\xaa\x7f\xaa\x81\xaa\x82\xaa\x83\xaa\x84\xaa\x85\x4c\x7b\xaa\x86\xaa\x87\xaa\x88\xaa\x89\xaa\x8a\xaa\x8b\xaa\x8c\x6a\xcd\x51\x43\xaa\x8d\xaa\x8e\x53\xc8\xaa\x8f\x4a\xd5\x5b\x53\xaa\x90\xaa\x91\xaa\x92\x6a\xcf\x6a\xce\x6a\xd0\x56\x7a\xaa\x93\xaa\x94\x6a\xd1\xaa\x95\x5a\xc0\x5b\xdf\xaa\x96\xaa\x97\xaa\x98\xaa\x99\x4c\x81\xaa\x9a\xaa\x9b\xaa\x9c\x51\x58\xaa\x9d\xaa\x9e\x51\x5b\x6a\xd2\x4f\xab\xaa\x9f\xaa\xa0\xaa\xa1\xaa\xa2\xaa\xa3\x4a\xe1\xaa\xa4\xaa\xa5\x6a\xd3\x6a\xd4\x4f\xaa\xaa\xa6\xaa\xa7\x6a\xd5\xaa\xa8\xaa\xa9\xaa\xaa\x6a\xda\xaa\xab\x6a\xd6\x6a\xd9\xaa\xac\x4d\xfc\xaa\xad\x6a\xd7\x6a\xd8\xaa\xae\xaa\xaf\xaa\xb0\xaa\xb1\xaa\xb2\xaa\xb3\xaa\xb4\x4c\xe1\x56\xc6\x6a\xdb\xaa\xb5\x49\xd9\xaa\xb6\xaa\xb7\x52\x73\xaa\xb8\xaa\xb9\x5a\xe2\x50\x57\xaa\xba\xaa\xbb\xaa\xbc\xaa\xbd\xaa\xbe\xaa\xbf\xaa\xc0\x6a\xdc\xaa\xc1\xaa\xc2\xaa\xc3\xaa\xc4\xaa\xc5\xaa\xc6\x53\x54\xaa\xc7\xaa\xc8\xaa\xc9\xaa\xca\xaa\xcb\xaa\xcc\xaa\xcd\xaa\xce\x6a\xe8\xaa\xcf\xaa\xd0\x58\x55\xaa\xd1\xaa\xd2\xaa\xd3\xaa\xd4", /* 7d00 */ "\xaa\xd5\xaa\xd6\xaa\xd7\xaa\xd8\xaa\xd9\xaa\xda\xaa\xdb\xaa\xdc\xaa\xdd\xaa\xde\x57\xc8\xaa\xdf\xaa\xe0\xaa\xe1\xaa\xe2\xaa\xe3\xaa\xe4\xaa\xe5\xaa\xe6\xaa\xe7\xaa\xe8\xaa\xe9\xaa\xea\xaa\xeb\xaa\xec\xaa\xed\xaa\xee\xaa\xef\xaa\xf0\xaa\xf1\xaa\xf2\xaa\xf3\x56\x78\xaa\xf4\x56\x98\xaa\xf5\xaa\xf6\xaa\xf7\xaa\xf8\x4f\x95\xaa\xf9\xaa\xfa\xaa\xfb\x5c\x6f\xaa\xfc\xaa\xfd\xab\x41\x50\xda\xab\x42\xab\x43\xab\x44\xab\x45\xab\x46\xab\x47\xab\x48\xab\x49\xab\x4a\xab\x4b\xab\x4c\xab\x4d\xab\x4e\xab\x4f\xab\x50\xab\x51\xab\x52\xab\x53\xab\x54\xab\x55\xab\x56\xab\x57\xab\x58\xab\x59\xab\x5a\xab\x5b\xab\x5c\xab\x5d\xab\x5e\xab\x5f\xab\x60\xab\x61\xab\x62\xab\x63\xab\x64\xab\x65\xab\x66\xab\x67\xab\x68\xab\x69\xab\x6a\xab\x6b\xab\x6c\xab\x6d\xab\x6e\xab\x6f\xab\x70\xab\x71\xab\x72\xab\x73\xab\x74\xab\x75\xab\x76\xab\x77\xab\x78\xab\x79\xab\x7a\xab\x7b\xab\x7c\xab\x7d\xab\x7e\xab\x7f\x58\xf4\xab\x81\xab\x82\xab\x83\xab\x84\xab\x85\xab\x86\xab\x87\xab\x88\x6a\xe9\xab\x89\xab\x8a\xab\x8b\xab\x8c\xab\x8d\xab\x8e\xab\x8f\xab\x90", /* 7d80 */ "\xab\x91\xab\x92\xab\x93\xab\x94\xab\x95\xab\x96\xab\x97\xab\x98\xab\x99\xab\x9a\xab\x9b\xab\x9c\xab\x9d\xab\x9e\xab\x9f\xab\xa0\xab\xa1\xab\xa2\xab\xa3\xab\xa4\xab\xa5\xab\xa6\xab\xa7\xab\xa8\xab\xa9\xab\xaa\xab\xab\xab\xac\xab\xad\xab\xae\xab\xaf\xab\xb0\xab\xb1\xab\xb2\xab\xb3\xab\xb4\xab\xb5\xab\xb6\x6a\xea\xab\xb7\xab\xb8\xab\xb9\xab\xba\xab\xbb\xab\xbc\xab\xbd\x6a\xeb\xab\xbe\xab\xbf\xab\xc0\xab\xc1\xab\xc2\xab\xc3\xab\xc4\xab\xc5\xab\xc6\xab\xc7\xab\xc8\xab\xc9\xab\xca\xab\xcb\xab\xcc\xab\xcd\xab\xce\xab\xcf\xab\xd0\xab\xd1\xab\xd2\xab\xd3\xab\xd4\xab\xd5\xab\xd6\xab\xd7\xab\xd8\xab\xd9\xab\xda\xab\xdb\xab\xdc\xab\xdd\xab\xde\xab\xdf\xab\xe0\xab\xe1\xab\xe2\xab\xe3\xab\xe4\xab\xe5\xab\xe6\xab\xe7\xab\xe8\xab\xe9\xab\xea\xab\xeb\xab\xec\xab\xed\xab\xee\xab\xef\xab\xf0\xab\xf1\xab\xf2\xab\xf3\xab\xf4\xab\xf5\xab\xf6\xab\xf7\xab\xf8\xab\xf9\xab\xfa\xab\xfb\xab\xfc\xab\xfd\xac\x41\xac\x42\xac\x43\xac\x44\xac\x45\xac\x46\xac\x47\xac\x48\xac\x49\xac\x4a\xac\x4b\xac\x4c\xac\x4d\xac\x4e\xac\x4f\xac\x50\xac\x51", /* 7e00 */ "\xac\x52\xac\x53\xac\x54\xac\x55\xac\x56\xac\x57\xac\x58\xac\x59\xac\x5a\xac\x5b\xac\x5c\xac\x5d\xac\x5e\xac\x5f\xac\x60\xac\x61\xac\x62\xac\x63\xac\x64\xac\x65\xac\x66\xac\x67\xac\x68\xac\x69\xac\x6a\xac\x6b\xac\x6c\xac\x6d\xac\x6e\xac\x6f\xac\x70\xac\x71\xac\x72\xac\x73\xac\x74\xac\x75\xac\x76\xac\x77\xac\x78\xac\x79\xac\x7a\xac\x7b\xac\x7c\xac\x7d\xac\x7e\xac\x7f\xac\x81\xac\x82\xac\x83\xac\x84\xac\x85\xac\x86\xac\x87\xac\x88\xac\x89\xac\x8a\xac\x8b\xac\x8c\xac\x8d\x6c\x84\xac\x8e\xac\x8f\xac\x90\xac\x91\xac\x92\x4c\x51\xac\x93\xac\x94\xac\x95\xac\x96\xac\x97\x6a\xec\xac\x98\xac\x99\xac\x9a\xac\x9b\xac\x9c\xac\x9d\xac\x9e\xac\x9f\xac\xa0\xac\xa1\xac\xa2\xac\xa3\xac\xa4\xac\xa5\xac\xa6\xac\xa7\xac\xa8\xac\xa9\xac\xaa\xac\xab\xac\xac\xac\xad\xac\xae\xac\xaf\xac\xb0\xac\xb1\xac\xb2\xac\xb3\xac\xb4\xac\xb5\xac\xb6\xac\xb7\xac\xb8\xac\xb9\xac\xba\xac\xbb\xac\xbc\xac\xbd\xac\xbe\xac\xbf\xac\xc0\xac\xc1\xac\xc2\xac\xc3\xac\xc4\xac\xc5\xac\xc6\xac\xc7\xac\xc8\xac\xc9\xac\xca\xac\xcb\xac\xcc\xac\xcd\xac\xce\xac\xcf", /* 7e80 */ "\xac\xd0\xac\xd1\x5c\x8c\xac\xd2\xac\xd3\xac\xd4\xac\xd5\xac\xd6\xac\xd7\xac\xd8\xac\xd9\xac\xda\xac\xdb\xac\xdc\xac\xdd\xac\xde\xac\xdf\xac\xe0\xac\xe1\xac\xe2\xac\xe3\xac\xe4\xac\xe5\xac\xe6\xac\xe7\xac\xe8\xac\xe9\x6a\xed\xac\xea\xac\xeb\xac\xec\x63\xf8\x4f\xbf\x63\xf9\x4d\xeb\x63\xfa\x58\x6b\x63\xfb\x5a\xbb\x4e\xb5\x63\xfc\x63\xfd\x4e\xcc\x54\xd1\x57\xb2\x64\x41\xac\xed\x4a\xbe\x64\x42\x55\x54\x4c\xd8\x52\xc8\xac\xee\x5c\x7d\x51\xd9\x4c\x77\x5b\xbc\x57\xc5\x4c\x64\xac\xef\xac\xf0\x53\x46\x64\x43\x58\x7f\x64\x44\x64\x45\x64\x46\x51\x57\x5c\x8a\x55\x91\x58\x58\x5b\xae\x5b\xd4\x64\x47\x48\xec\x64\x48\x64\x49\x55\x7c\x59\xee\x4f\xac\x64\x4a\x48\xf2\x54\xdd\x4f\x82\x64\x4b\x54\xc5\xac\xf1\x64\x4c\x4e\x87\x4c\xf7\x59\x44\x64\x4d\x51\xe6\x4f\xf7\x4f\x6a\x57\x53\x64\x4e\x64\x4f\x4f\xed\x58\xe4\xac\xf2\x56\x88\x56\xcf\x4e\xcb\x64\x50\x4e\xa7\x58\xf6\x64\x51\xac\xf3\x58\xf7\x64\x52\x64\x53\x4a\xc1\x64\x54\x64\x55\x55\x9f\x57\xab\x52\x81\x64\x57\x49\x61\x4a\x92\xac\xf4\x64\x58\x64\x59\x5c\x7b\x5b\x60\x64\x5a\x51\xcb", /* 7f00 */ "\x5c\x5a\x64\x5b\x64\x5c\x64\x5d\x4e\xe9\x52\x86\x50\xc1\x64\x5e\x64\x5f\x4e\xa8\xac\xf5\x64\x60\x64\x61\x64\x56\x4b\xcf\x64\x62\xac\xf6\x64\x63\x64\x64\x4e\x5a\x4b\x7e\x51\xc5\x49\x81\x64\x65\x5a\xb4\x64\x66\x4c\xbe\x64\x68\x64\x67\x4c\x8d\xac\xf7\x64\x69\x49\xf7\x64\x6a\x64\x6b\x64\x6c\x64\x6d\x64\x6e\x64\x6f\x64\x70\x5a\x47\x56\x96\x64\x71\x64\x72\x64\x73\x64\x74\x55\x69\x64\x75\x64\x76\x64\x77\x64\x78\x64\x79\x4f\x69\x64\x7a\x6a\x5e\xac\xf8\x4c\xd6\xac\xf9\x54\xb0\xac\xfa\xac\xfb\xac\xfc\xac\xfd\xad\x41\xad\x42\xad\x43\x6a\x5f\xad\x44\x6a\x60\x6a\x61\xad\x45\xad\x46\xad\x47\xad\x48\xad\x49\xad\x4a\xad\x4b\xad\x4c\xad\x4d\xad\x4e\x4d\x7e\x57\x99\xad\x4f\xad\x50\x5c\xe7\x4d\xb0\xad\x51\x51\xdd\x67\xb6\xad\x52\x4c\x43\xad\x53\xad\x54\xad\x55\xad\x56\x67\xb8\xad\x57\x67\xb7\x48\xd4\xad\x58\xad\x59\xad\x5a\xad\x5b\xad\x5c\x67\xba\x5b\x76\x5c\x90\xad\x5d\xad\x5e\xad\x5f\x5b\xc2\xad\x60\xad\x61\x67\xbc\x55\xef\xad\x62\x67\xbb\xad\x63\xad\x64\xad\x65\xad\x66\x67\xbd\xad\x67\xad\x68\xad\x69\xad\x6a\x67\xbf\xad\x6b", /* 7f80 */ "\xad\x6c\x67\xbe\xad\x6d\xad\x6e\xad\x6f\xad\x70\xad\x71\xad\x72\xad\x73\xad\x74\x59\x93\xad\x75\x54\x5c\xad\x76\x52\x60\xad\x77\xad\x78\xad\x79\xad\x7a\xad\x7b\x4c\xe0\xad\x7c\xad\x7d\xad\x7e\xad\x7f\xad\x81\x51\x88\xad\x82\xad\x83\x6a\xc5\x58\xde\x6a\xc6\xad\x84\x58\x7b\xad\x85\xad\x86\x54\xb9\xad\x87\xad\x88\x6a\xc7\xad\x89\xad\x8a\xad\x8b\xad\x8c\xad\x8d\xad\x8e\xad\x8f\x6a\xc8\x6a\xc9\xad\x90\x6a\xca\xad\x91\xad\x92\xad\x93\xad\x94\xad\x95\x5d\x9b\x4c\xfd\xad\x96\xad\x97\x63\x92\x5a\x91\xad\x98\x6a\xdf\xad\x99\x57\xcb\xad\x9a\xad\x9b\xad\x9c\x4a\x82\xad\x9d\xad\x9e\xad\x9f\xad\xa0\x69\x54\xad\xa1\x59\xed\xad\xa2\x6a\xe0\xad\xa3\xad\xa4\xad\xa5\xad\xa6\xad\xa7\x58\x89\x6a\xe1\xad\xa8\xad\xa9\x54\x6c\xad\xaa\xad\xab\xad\xac\xad\xad\xad\xae\xad\xaf\x4b\x74\x4a\xe3\x6a\xe3\xad\xb0\xad\xb1\xad\xb2\x6a\xe2\x6a\xe4\xad\xb3\xad\xb4\x6a\xe5\xad\xb5\xad\xb6\xad\xb7\xad\xb8\x6a\xe6\xad\xb9\x4d\xb1\x48\xbe\xad\xba\x6a\xe7\xad\xbb\xad\xbc\xad\xbd\xad\xbe\xad\xbf\xad\xc0\xad\xc1\x4c\x4d\x59\xec\xad\xc2\xad\xc3\xad\xc4", /* 8000 */ "\x59\xaa\x50\xce\xad\xc5\x50\x5c\x66\x43\x5b\x7f\x65\xc7\xad\xc6\xad\xc7\xad\xc8\xad\xc9\x69\x94\x4b\xf7\x56\x43\xad\xca\xad\xcb\x52\xcc\xad\xcc\x69\x88\xad\xcd\x69\x89\x4c\xfa\x69\x8a\x4d\xc3\x5a\xc4\x48\xd1\xad\xce\xad\xcf\x69\x8b\xad\xd0\xad\xd1\xad\xd2\x69\x8c\xad\xd3\x69\x8d\xad\xd4\xad\xd5\x69\x8e\x69\x8f\x69\x90\x69\x92\x69\x91\x53\x75\xad\xd6\xad\xd7\xad\xd8\xad\xd9\xad\xda\xad\xdb\x69\x93\xad\xdc\x4b\xf9\xad\xdd\x69\x95\x59\xad\x5f\xc6\x56\x6a\xad\xde\xad\xdf\x4a\x7c\xad\xe0\x4b\x42\xad\xe1\x4d\x42\xad\xe2\xad\xe3\x52\xf3\x69\x96\xad\xe4\xad\xe5\x69\x97\xad\xe6\xad\xe7\xad\xe8\x51\x64\x51\x9c\x5b\xaf\x69\x98\xad\xe9\xad\xea\xad\xeb\xad\xec\x69\x99\xad\xed\x51\x4a\xad\xee\xad\xef\xad\xf0\x53\xb7\xad\xf1\x4f\xda\xad\xf2\xad\xf3\xad\xf4\xad\xf5\xad\xf6\xad\xf7\xad\xf8\xad\xf9\xad\xfa\xad\xfb\xad\xfc\xad\xfd\xae\x41\xae\x42\x69\x9a\x4a\xce\xae\x43\xae\x44\xae\x45\xae\x46\xae\x47\xae\x48\x69\x9b\xae\x49\xae\x4a\xae\x4b\xae\x4c\xae\x4d\xae\x4e\xae\x4f\xae\x50\xae\x51\xae\x52\xae\x53\xae\x54\xae\x55\x67\x52", /* 8080 */ "\x67\x51\xae\x56\xae\x57\x56\x81\x59\xdd\xae\x58\x56\x61\x5b\x78\xae\x59\x54\xe1\xae\x5a\x50\xde\x4e\xa0\xae\x5b\xae\x5c\xae\x5d\xae\x5e\xae\x5f\xae\x60\x66\x61\xae\x61\xae\x62\x58\xa3\xae\x63\x5b\xe1\xae\x64\x4b\xc6\x4c\xd7\x66\x60\x4c\xcd\xae\x65\x66\x5f\x4a\x46\x4d\x69\x5b\xaa\xae\x66\x4c\x95\x4c\x6a\xae\x67\xae\x68\xae\x69\x4e\xe6\x4c\x5e\x66\x66\xae\x6a\x66\x67\x48\xb8\x50\x6f\xae\x6b\x66\x65\x5a\x9e\xae\x6c\x66\x68\xae\x6d\xae\x6e\x66\x69\xae\x6f\xae\x70\x4c\x6e\xae\x71\x66\x62\x66\x64\x55\x97\x5b\xd6\x5b\x6d\x58\xb1\x66\x6f\x57\xb7\x66\x70\xae\x72\x4b\x48\xae\x73\xae\x74\xae\x75\xae\x76\xae\x77\x49\x53\x66\x72\x56\xa4\xae\x78\xae\x79\xae\x7a\xae\x7b\xae\x7c\xae\x7d\xae\x7e\x53\x76\x66\x73\xae\x7f\x66\x71\x53\x7f\x66\x6e\x55\xa3\x66\x75\x48\xfa\xae\x81\xae\x82\x4d\xf9\xae\x83\xae\x84\x5c\xb6\x69\x84\xae\x85\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x76\x63\xbf\x66\x79\xae\x86\x50\x89\x59\xc7\x66\x77\x66\x7c\x4c\xeb\x66\x78\xae\x87\x4f\x5a\xae\x88\x58\xd7\xae\x89\x48\xb6\xae\x8a\x66\x7d\x52\xdb\xae\x8b\xae\x8c", /* 8100 */ "\xae\x8d\xae\x8e\x5b\xab\xae\x8f\xae\x90\xae\x91\x4a\xdf\xae\x92\xae\x93\x51\xf5\x4e\xb8\xae\x94\xae\x95\x66\x7a\x66\x7b\x5a\xdf\x53\xe9\x52\xd3\x66\x7f\x53\x47\x5d\x96\xae\x96\x49\xb0\xae\x97\x66\x85\xae\x98\x4f\x65\xae\x99\xae\x9a\xae\x9b\x66\x83\xae\x9c\xae\x9d\xae\x9e\xae\x9f\xae\xa0\xae\xa1\xae\xa2\xae\xa3\xae\xa4\xae\xa5\xae\xa6\xae\xa7\xae\xa8\x66\x84\xae\xa9\xae\xaa\x4c\xab\xae\xab\x57\x71\x66\x86\xae\xac\xae\xad\xae\xae\x66\x82\xae\xaf\x51\x53\xae\xb0\xae\xb1\xae\xb2\xae\xb3\xae\xb4\x53\xa1\xae\xb5\xae\xb6\xae\xb7\xae\xb8\xae\xb9\xae\xba\xae\xbb\x56\xf2\xae\xbc\x66\x87\xae\xbd\x50\xaf\x59\xb7\x66\x88\xae\xbe\xae\xbf\xae\xc0\x4c\xae\x4c\xac\xae\xc1\x66\x89\x54\x5b\x57\x94\xae\xc2\xae\xc3\xae\xc4\x66\x8b\x66\x8c\xae\xc5\xae\xc6\xae\xc7\xae\xc8\xae\xc9\x66\x8e\xae\xca\xae\xcb\xae\xcc\xae\xcd\x58\xc7\xae\xce\x66\x93\xae\xcf\x66\x8f\xae\xd0\xae\xd1\xae\xd2\x66\x92\x54\xf8\xae\xd3\x59\x9d\x66\x8d\xae\xd4\xae\xd5\x66\x8a\xae\xd6\xae\xd7\xae\xd8\xae\xd9\x4c\xb8\x58\x79\x52\xe4\x66\x90\x66\x91\x56\xd9\x57\x68", /* 8180 */ "\x48\xf1\xae\xda\x66\x97\xae\xdb\xae\xdc\xae\xdd\xae\xde\xae\xdf\x66\x96\xae\xe0\x49\xb1\xae\xe1\xae\xe2\xae\xe3\xae\xe4\x4c\xdf\xae\xe5\x66\x98\xae\xe6\xae\xe7\xae\xe8\xae\xe9\xae\xea\xae\xeb\x49\x8d\xae\xec\xae\xed\x56\xc4\x52\xa3\x58\x45\xae\xee\xae\xef\xae\xf0\xae\xf1\xae\xf2\x66\x9a\xae\xf3\xae\xf4\x66\xa1\xae\xf5\x53\x93\xae\xf6\x66\x9b\xae\xf7\xae\xf8\xae\xf9\xae\xfa\xae\xfb\xae\xfc\xae\xfd\xaf\x41\x55\x65\xaf\x42\xaf\x43\xaf\x44\xaf\x45\xaf\x46\xaf\x47\x61\xde\x66\x9f\xaf\x48\xaf\x49\xaf\x4a\xaf\x4b\x57\x6e\x66\xa0\x49\x7b\x5a\x57\xaf\x4c\xaf\x4d\x59\xdb\xaf\x4e\xaf\x4f\xaf\x50\x66\x9e\xaf\x51\x66\x9c\xaf\x52\xaf\x53\xaf\x54\xaf\x55\xaf\x56\xaf\x57\xaf\x58\xaf\x59\xaf\x5a\xaf\x5b\xaf\x5c\xaf\x5d\xaf\x5e\xaf\x5f\xaf\x60\xaf\x61\xaf\x62\xaf\x63\xaf\x64\xaf\x65\xaf\x66\xaf\x67\x4a\x5c\xaf\x68\xaf\x69\xaf\x6a\x65\xaf\xaf\x6b\xaf\x6c\x5c\x74\xaf\x6d\x6a\xaa\x4a\x95\xaf\x6e\xaf\x6f\xaf\x70\xaf\x71\xaf\x72\x5b\xc0\x5b\xc1\xaf\x73\xaf\x74\xaf\x75\xaf\x76\xaf\x77\xaf\x78\x5b\x8a\x4f\xc9\xaf\x79\x6a\xa6\xaf\x7a", /* 8200 */ "\x59\xa7\x6a\xa7\x6a\xa8\xaf\x7b\x6a\xa9\x4f\xca\x5a\x7f\xaf\x7c\xaf\x7d\xaf\x7e\xaf\x7f\xaf\x81\x55\x81\x55\x82\xaf\x82\xaf\x83\x6a\x62\xaf\x84\x55\xe5\xaf\x85\x56\xf1\xaf\x86\xaf\x87\xaf\x88\xaf\x89\xaf\x8a\xaf\x8b\x61\xb5\x56\x54\xaf\x8c\x57\xe7\x5b\xda\xaf\x8d\x6a\xac\x6a\xad\x6a\xae\xaf\x8e\xaf\x8f\xaf\x90\xaf\x91\x6a\xb1\xaf\x92\x4d\xbc\x6a\xb2\x48\xe2\x6a\xaf\xaf\x93\x6a\xb0\x4f\x42\x49\xd4\xaf\x94\x6a\xb5\x6a\xb6\x4b\xe5\x49\xaf\x58\x6f\x6a\xb3\x4a\xab\xaf\x95\x6a\xb4\xaf\x96\xaf\x97\x6a\xb7\xaf\x98\xaf\x99\xaf\x9a\xaf\x9b\xaf\x9c\x6a\xb8\xaf\x9d\xaf\x9e\x57\x47\xaf\x9f\x6a\xb9\xaf\xa0\x6a\xba\xaf\xa1\xaf\xa2\xaf\xa3\x6a\xbb\xaf\xa4\xaf\xa5\xaf\xa6\xaf\xa7\xaf\xa8\xaf\xa9\xaf\xaa\xaf\xab\x56\x72\xaf\xac\x6a\xbc\xaf\xad\xaf\xae\xaf\xaf\xaf\xb0\x6a\xbd\xaf\xb1\xaf\xb2\xaf\xb3\xaf\xb4\xaf\xb5\xaf\xb6\xaf\xb7\xaf\xb8\x6a\xbe\xaf\xb9\xaf\xba\xaf\xbb\xaf\xbc\xaf\xbd\x6a\xdd\x51\x5c\x4e\xe7\xaf\xbe\x55\x4b\x59\x7e\x63\x96\xaf\xbf\xaf\xc0\xaf\xc1\xaf\xc2\x5e\xb2\x59\xd4\xaf\xc3\xaf\xc4\x5e\xb3\x48\xab\x5e\xb4", /* 8280 */ "\xaf\xc5\xaf\xc6\x4f\x7a\xaf\xc7\x5e\xb8\xaf\xc8\xaf\xc9\xaf\xca\x5c\xc1\xaf\xcb\x5e\xb6\x5a\x94\xaf\xcc\x55\x76\x5e\xb9\x5e\xb5\xaf\xcd\x5e\xba\x52\x42\xaf\xce\xaf\xcf\xaf\xd0\xaf\xd1\x5e\xbb\x5e\xc4\x5e\xbc\xaf\xd2\xaf\xd3\x57\xde\x5b\xa4\xaf\xd4\x5e\xce\xaf\xd5\x5e\xcc\xaf\xd6\xaf\xd7\x5e\xd1\x4f\x87\x51\xaa\xaf\xd8\x5e\xb7\x5e\xca\x5e\xcd\x5e\xbd\x4c\x72\x48\xc4\x5e\xc6\x58\xbd\x5e\xc0\x4e\x48\xaf\xd9\x4c\x5c\x5e\xcb\xaf\xda\xaf\xdb\x5e\xc5\x5e\xbe\x54\x7b\xaf\xdc\xaf\xdd\xaf\xde\x59\x5f\x5e\xbf\xaf\xdf\xaf\xe0\x5e\xc9\xaf\xe1\xaf\xe2\x5e\xcf\xaf\xe3\xaf\xe4\x57\xac\x5e\xc1\xaf\xe5\x5e\xc2\x5e\xc7\x5e\xc8\x49\xd3\x5e\xd0\x56\x75\xaf\xe6\x5a\xb6\x5e\xda\x5e\xde\x56\xa5\x5e\xe5\xaf\xe7\x52\x88\x5e\xdb\xaf\xe8\xaf\xe9\x50\x61\x5e\xd8\xaf\xea\x48\xf9\x4d\x56\x5e\xe4\x5e\xd2\xaf\xeb\x5e\xc3\x5e\xd5\x54\xf3\x50\x81\xaf\xec\xaf\xed\xaf\xee\xaf\xef\x55\x5b\xaf\xf0\xaf\xf1\xaf\xf2\x49\x5d\xaf\xf3\x5a\x42\xaf\xf4\xaf\xf5\x5e\xd9\xaf\xf6\xaf\xf7\x5e\xd4\xaf\xf8\x53\xba\xaf\xf9\x5e\xdd\xaf\xfa\xaf\xfb\xaf\xfc\xaf\xfd", /* 8300 */ "\xb0\x41\x5c\x62\x52\x4f\x4c\x56\x54\x71\x52\x49\x5e\xe1\x5e\xd7\x5e\xea\x5e\xd3\xb0\x42\xb0\x43\x5e\xdc\xb0\x44\x4f\xa4\x5e\xd6\xb0\x45\x5e\xdf\xb0\x46\xb0\x47\x5e\xe2\x5e\xe3\xb0\x48\x5e\xf7\xb0\x49\xb0\x4a\x5e\xe0\x5f\x42\x5e\xe6\xb0\x4b\xb0\x4c\xb0\x4d\xb0\x4e\xb0\x4f\xb0\x50\xb0\x51\xb0\x52\xb0\x53\xb0\x54\x4e\xea\x4a\xc3\xb0\x55\xb0\x56\x52\x43\x49\xe6\x5e\xf9\xb0\x57\x5e\xf1\xb0\x58\x5e\xee\xb0\x59\x5e\xfb\x5e\xed\x59\xef\x49\xe7\xb0\x5a\x54\xd6\x54\xe2\x5e\xfa\xb0\x5b\x5e\xec\xb0\x5c\xb0\x5d\xb0\x5e\x5e\xf6\xb0\x5f\xb0\x60\x5e\xf4\xb0\x61\xb0\x62\x4f\xa2\x5e\xf3\xb0\x63\x49\xdc\xb0\x64\xb0\x65\xb0\x66\xb0\x67\xb0\x68\x5e\xf2\x4e\xf5\x5e\xe7\x4e\x64\xb0\x69\x50\xf2\xb0\x6a\xb0\x6b\xb0\x6c\xb0\x6d\xb0\x6e\x4e\xd3\x5e\xe8\x5e\xe9\xb0\x6f\x5e\xf0\x5e\xf5\x5e\xf8\x4b\x54\xb0\x70\x54\xd8\x4e\x88\x5e\xfd\x5e\xfc\x5a\x4b\x5f\x41\x5f\x43\x5f\x45\x59\xf0\x5f\x44\x5f\x46\x5f\x47\x59\xa8\xb0\x71\xb0\x72\xb0\x73\xb0\x74\xb0\x75\xb0\x76\xb0\x77\x4d\xc8\x5f\x49\xb0\x78\xb0\x79\x5f\x56\x5f\x51\x5f\x54\xb0\x7a\xb0\x7b", /* 8380 */ "\xb0\x7c\xb0\x7d\xb0\x7e\xb0\x7f\xb0\x81\x5f\x50\x53\xcd\xb0\x82\xb0\x83\x50\xf1\xb0\x84\xb0\x85\xb0\x86\xb0\x87\x55\x4f\xb0\x88\xb0\x89\xb0\x8a\x5e\xeb\x5f\x4e\xb0\x8b\xb0\x8c\xb0\x8d\xb0\x8e\x5f\x57\xb0\x8f\xb0\x90\x5e\xef\x5f\x4f\xb0\x91\x5f\x58\xb0\x92\x5f\x4c\xb0\x93\xb0\x94\xb0\x95\xb0\x96\xb0\x97\xb0\x98\xb0\x99\x5f\x59\x5f\x53\x5f\x4d\x52\xa9\xb0\x9a\xb0\x9b\xb0\x9c\xb0\x9d\x5f\x48\x50\xb2\x51\x4b\x5f\x4a\x5f\x4b\xb0\x9e\x5f\x52\x4e\x92\x5f\x55\x5a\x48\x5f\x5a\xb0\x9f\x5f\x5b\x52\x47\xb0\xa0\xb0\xa1\x5f\x72\x5f\x5c\xb0\xa2\xb0\xa3\xb0\xa4\x5f\x71\xb0\xa5\x4d\x5d\xb0\xa6\xb0\xa7\x4f\xd4\xb0\xa8\x4f\xf9\xb0\xa9\xb0\xaa\x4d\xc9\xb0\xab\xb0\xac\xb0\xad\xb0\xae\x5f\x6a\xb0\xaf\x5f\x65\xb0\xb0\x5f\x5f\xb0\xb1\xb0\xb2\xb0\xb3\x49\xca\x5f\x63\xb0\xb4\x5f\x6b\x49\xa3\x5f\x75\xb0\xb5\xb0\xb6\xb0\xb7\x5f\x5e\xb0\xb8\xb0\xb9\xb0\xba\x53\xcf\x5f\x70\xb0\xbb\xb0\xbc\xb0\xbd\xb0\xbe\xb0\xbf\x5f\x74\x51\x83\x4c\x66\xb0\xc0\xb0\xc1\xb0\xc2\xb0\xc3\xb0\xc4\x5f\x6e\x5f\x6f\xb0\xc5\xb0\xc6\xb0\xc7\x5f\x64\xb0\xc8\xb0\xc9", /* 8400 */ "\xb0\xca\x5f\x5d\xb0\xcb\x5f\x6d\x56\xd0\xb0\xcc\x5f\x69\xb0\xcd\xb0\xce\xb0\xcf\xb0\xd0\x5f\x62\x52\x68\x53\xbb\x57\xad\x5f\x6c\xb0\xd1\x5f\x68\xb0\xd2\xb0\xd3\xb0\xd4\xb0\xd5\xb0\xd6\xb0\xd7\x5f\x61\xb0\xd8\xb0\xd9\xb0\xda\x5f\x66\x51\xdb\xb0\xdb\xb0\xdc\xb0\xdd\xb0\xde\xb0\xdf\xb0\xe0\x5a\x49\x5a\x4a\x5f\x73\x58\x95\x54\xf7\xb0\xe1\xb0\xe2\xb0\xe3\xb0\xe4\xb0\xe5\xb0\xe6\xb0\xe7\xb0\xe8\x5f\x87\xb0\xe9\xb0\xea\xb0\xeb\xb0\xec\xb0\xed\xb0\xee\x5f\x67\xb0\xef\xb0\xf0\xb0\xf1\x5f\x81\x51\xe3\xb0\xf2\xb0\xf3\xb0\xf4\xb0\xf5\xb0\xf6\xb0\xf7\xb0\xf8\xb0\xf9\x5f\x82\xb0\xfa\xb0\xfb\xb0\xfc\xb0\xfd\xb1\x41\xb1\x42\xb1\x43\xb1\x44\xb1\x45\xb1\x46\x5f\x77\xb1\x47\xb1\x48\xb1\x49\xb1\x4a\xb1\x4b\x5b\xf7\xb1\x4c\x5f\x79\x5f\x78\x4c\xef\x5f\x76\xb1\x4d\xb1\x4e\xb1\x4f\xb1\x50\x53\xce\xb1\x51\x4b\xac\xb1\x52\xb1\x53\xb1\x54\xb1\x55\xb1\x56\x5f\x83\xb1\x57\x4d\xf8\x5a\xe0\x5f\x88\xb1\x58\xb1\x59\xb1\x5a\x4a\xcf\xb1\x5b\x5f\x7a\xb1\x5c\x50\x9c\x5f\x84\xb1\x5d\x5f\x7f\xb1\x5e\x5f\x7d\xb1\x5f\xb1\x60\xb1\x61\xb1\x62\xb1\x63", /* 8480 */ "\xb1\x64\xb1\x65\x4b\x79\xb1\x66\xb1\x67\xb1\x68\xb1\x69\x5f\x7b\x5f\x7c\x5f\x7e\xb1\x6a\x4f\x4f\x5f\x85\xb1\x6b\x5f\x86\xb1\x6c\xb1\x6d\xb1\x6e\xb1\x6f\xb1\x70\xb1\x71\xb1\x72\xb1\x73\x5f\x96\xb1\x74\x52\x69\xb1\x75\xb1\x76\x56\x83\xb1\x77\xb1\x78\xb1\x79\xb1\x7a\x5f\x93\xb1\x7b\xb1\x7c\xb1\x7d\xb1\x7e\xb1\x7f\xb1\x81\xb1\x82\xb1\x83\xb1\x84\xb1\x85\xb1\x86\xb1\x87\xb1\x88\x5c\xe0\xb1\x89\xb1\x8a\x53\xd0\xb1\x8b\x5f\x95\xb1\x8c\xb1\x8d\xb1\x8e\x5b\x95\x5f\x94\x5f\x91\xb1\x8f\xb1\x90\x5f\x8d\xb1\x91\x5f\x90\xb1\x92\x5f\x89\xb1\x93\xb1\x94\x58\xed\xb1\x95\xb1\x96\xb1\x97\xb1\x98\x54\xd7\x5f\x8f\xb1\x99\xb1\x9a\x5f\x8a\xb1\x9b\xb1\x9c\x5f\x8b\x56\x93\xb1\x9d\x5f\x8e\xb1\x9e\xb1\x9f\x49\x6d\xb1\xa0\xb1\xa1\xb1\xa2\xb1\xa3\xb1\xa4\xb1\xa5\x50\xb5\xb1\xa6\x4e\xba\x5f\x92\xb1\xa7\xb1\xa8\x5f\x98\xb1\xa9\x5f\x97\x5f\x8c\xb1\xaa\xb1\xab\xb1\xac\xb1\xad\xb1\xae\x53\x8f\xb1\xaf\xb1\xb0\xb1\xb1\x5f\x9c\xb1\xb2\xb1\xb3\xb1\xb4\xb1\xb5\xb1\xb6\xb1\xb7\xb1\xb8\xb1\xb9\xb1\xba\xb1\xbb\xb1\xbc\x5f\xa3\xb1\xbd\xb1\xbe\x5f\xa2", /* 8500 */ "\xb1\xbf\xb1\xc0\xb1\xc1\xb1\xc2\xb1\xc3\xb1\xc4\xb1\xc5\xb1\xc6\xb1\xc7\xb1\xc8\xb1\xc9\xb1\xca\x5f\x99\xb1\xcb\xb1\xcc\xb1\xcd\xb1\xce\x52\x90\xb1\xcf\x51\xfa\xb1\xd0\xb1\xd1\xb1\xd2\x5b\x82\xb1\xd3\xb1\xd4\x57\xb4\xb1\xd5\xb1\xd6\xb1\xd7\xb1\xd8\x5f\x9e\xb1\xd9\x49\xcb\xb1\xda\xb1\xdb\xb1\xdc\xb1\xdd\xb1\xde\xb1\xdf\xb1\xe0\xb1\xe1\xb1\xe2\x52\xe7\x55\xde\xb1\xe3\xb1\xe4\xb1\xe5\xb1\xe6\xb1\xe7\xb1\xe8\xb1\xe9\xb1\xea\xb1\xeb\xb1\xec\x54\x5e\x5f\x9b\x5f\x9d\x5f\x9f\x5f\xa1\x48\xa9\x49\x6e\xb1\xed\xb1\xee\xb1\xef\xb1\xf0\xb1\xf1\x5f\xab\xb1\xf2\xb1\xf3\xb1\xf4\xb1\xf5\x5f\xa5\x4f\x56\x54\xee\xb1\xf6\xb1\xf7\xb1\xf8\xb1\xf9\xb1\xfa\xb1\xfb\xb1\xfc\xb1\xfd\xb2\x41\xb2\x42\xb2\x43\x5f\xa0\xb2\x44\xb2\x45\x5f\xa4\xb2\x46\xb2\x47\xb2\x48\xb2\x49\x5f\xa8\xb2\x4a\xb2\x4b\xb2\x4c\xb2\x4d\xb2\x4e\x5f\xa7\xb2\x4f\xb2\x50\xb2\x51\x5f\xa6\xb2\x52\xb2\x53\xb2\x54\xb2\x55\xb2\x56\xb2\x57\xb2\x58\xb2\x59\xb2\x5a\x5f\xac\xb2\x5b\x5a\xcb\xb2\x5c\xb2\x5d\xb2\x5e\xb2\x5f\x5f\xb2\x5f\xa9\x5f\xad\xb2\x60\xb2\x61\x50\xd8\xb2\x62", /* 8580 */ "\xb2\x63\xb2\x64\xb2\x65\xb2\x66\x49\x41\x5f\xb5\xb2\x67\x5f\xb0\xb2\x68\xb2\x69\xb2\x6a\xb2\x6b\xb2\x6c\xb2\x6d\xb2\x6e\x5f\xb1\xb2\x6f\xb2\x70\xb2\x71\xb2\x72\xb2\x73\xb2\x74\xb2\x75\xb2\x76\xb2\x77\xb2\x78\xb2\x79\x59\x46\x5f\xb4\xb2\x7a\xb2\x7b\xb2\x7c\xb2\x7d\xb2\x7e\xb2\x7f\xb2\x81\x5f\xae\xb2\x82\xb2\x83\xb2\x84\x5f\xaf\xb2\x85\x58\xbc\xb2\x86\xb2\x87\xb2\x88\x5f\xb3\x55\xec\x5f\xb8\xb2\x89\xb2\x8a\xb2\x8b\xb2\x8c\xb2\x8d\xb2\x8e\x5f\xb7\xb2\x8f\x5f\xb6\xb2\x90\xb2\x91\xb2\x92\xb2\x93\xb2\x94\xb2\x95\xb2\x96\x5f\xba\xb2\x97\xb2\x98\xb2\x99\xb2\x9a\xb2\x9b\xb2\x9c\xb2\x9d\x4f\x86\xb2\x9e\xb2\x9f\xb2\xa0\xb2\xa1\xb2\xa2\x49\xd7\x52\x8b\xb2\xa3\xb2\xa4\x5f\xb9\xb2\xa5\x53\x5a\xb2\xa6\xb2\xa7\xb2\xa8\xb2\xa9\xb2\xaa\xb2\xab\x5f\xbb\xb2\xac\xb2\xad\xb2\xae\xb2\xaf\xb2\xb0\xb2\xb1\xb2\xb2\x56\xd8\xb2\xb3\xb2\xb4\xb2\xb5\xb2\xb6\x4c\x4a\xb2\xb7\xb2\xb8\xb2\xb9\xb2\xba\xb2\xbb\xb2\xbc\xb2\xbd\xb2\xbe\xb2\xbf\xb2\xc0\xb2\xc1\xb2\xc2\xb2\xc3\xb2\xc4\xb2\xc5\xb2\xc6\xb2\xc7\x5a\xe4\xb2\xc8\xb2\xc9\xb2\xca\x5f\xbc", /* 8600 */ "\xb2\xcb\xb2\xcc\xb2\xcd\xb2\xce\xb2\xcf\x5f\xbe\xb2\xd0\xb2\xd1\xb2\xd2\xb2\xd3\xb2\xd4\xb2\xd5\xb2\xd6\xb2\xd7\xb2\xd8\xb2\xd9\xb2\xda\x52\xa1\xb2\xdb\xb2\xdc\xb2\xdd\xb2\xde\x5f\xc0\xb2\xdf\xb2\xe0\xb2\xe1\xb2\xe2\xb2\xe3\xb2\xe4\xb2\xe5\xb2\xe6\xb2\xe7\xb2\xe8\xb2\xe9\xb2\xea\xb2\xeb\xb2\xec\xb2\xed\xb2\xee\x5f\xbd\xb2\xef\x5f\xbf\xb2\xf0\xb2\xf1\xb2\xf2\xb2\xf3\xb2\xf4\xb2\xf5\xb2\xf6\xb2\xf7\xb2\xf8\xb2\xf9\xb2\xfa\xb2\xfb\xb2\xfc\xb2\xfd\x5b\x5a\xb3\x41\xb3\x42\xb3\x43\x5f\xc1\xb3\x44\xb3\x45\xb3\x46\xb3\x47\xb3\x48\xb3\x49\xb3\x4a\xb3\x4b\xb3\x4c\xb3\x4d\xb3\x4e\xb3\x4f\xb3\x50\xb3\x51\xb3\x52\xb3\x53\x69\xad\x4e\x42\x51\xb1\x53\x50\x51\xc6\xb3\x54\xb3\x55\x69\xae\xb3\x56\xb3\x57\xb3\x58\xb3\x59\xb3\x5a\x58\xe8\xb3\x5b\xb3\x5c\xb3\x5d\x5a\x7d\xb3\x5e\xb3\x5f\xb3\x60\x66\x5d\xb3\x61\xb3\x62\xb3\x63\xb3\x64\xb3\x65\xb3\x66\xb3\x67\xb3\x68\x4a\x87\x69\xaf\xb3\x69\x69\xb0\xb3\x6a\xb3\x6b\x55\xac\xb3\x6c\xb3\x6d\xb3\x6e\xb3\x6f\xb3\x70\xb3\x71\xb3\x72\x4d\xe6\x69\xb2\x69\xb4\x69\xb3\x56\x85\x58\x5a\x69\xb1", /* 8680 */ "\x55\xb3\x59\xce\x51\xeb\xb3\x73\xb3\x74\xb3\x75\xb3\x76\xb3\x77\xb3\x78\xb3\x79\x57\xc2\x69\xb7\x48\xf5\x69\xb6\xb3\x7a\xb3\x7b\xb3\x7c\xb3\x7d\xb3\x7e\x69\xbd\xb3\x7f\x49\xce\xb3\x81\xb3\x82\xb3\x83\xb3\x84\xb3\x85\xb3\x86\x59\x61\x69\xb9\xb3\x87\xb3\x88\xb3\x89\xb3\x8a\xb3\x8b\x69\xbb\x5a\xe8\xb3\x8c\xb3\x8d\x69\xba\x69\xb5\x69\xbe\x69\xbc\xb3\x8e\x69\xb8\xb3\x8f\xb3\x90\x69\xc6\x69\xc3\x69\xc5\xb3\x91\xb3\x92\x69\xc9\x69\xc1\x69\xbf\xb3\x93\xb3\x94\xb3\x95\x69\xc4\xb3\x96\xb3\x97\xb3\x98\xb3\x99\xb3\x9a\x5b\xfa\xb3\x9b\xb3\x9c\xb3\x9d\x69\xc0\xb3\x9e\x54\x9a\x55\x7f\xb3\x9f\x69\xc7\x4d\x66\x4b\x50\xb3\xa0\xb3\xa1\x69\xc2\x69\xc8\x69\xcf\x69\xd5\xb3\xa2\xb3\xa3\x4e\x77\xb3\xa4\xb3\xa5\xb3\xa6\x69\xd4\x57\x7c\xb3\xa7\x5b\xea\xb3\xa8\xb3\xa9\x69\xd1\x69\xd3\xb3\xaa\xb3\xab\xb3\xac\xb3\xad\x4c\xf1\xb3\xae\xb3\xaf\xb3\xb0\xb3\xb1\x69\xca\xb3\xb2\xb3\xb3\xb3\xb4\x69\xcd\x51\xf8\xb3\xb5\x5b\x7d\x69\xcb\x69\xcc\x69\xce\x69\xd2\xb3\xb6\xb3\xb7\xb3\xb8\x69\xd8\x5a\x5c\xb3\xb9\xb3\xba\xb3\xbb\xb3\xbc\x4b\xe9\xb3\xbd", /* 8700 */ "\x55\xf0\xb3\xbe\x4c\x85\x69\xd6\xb3\xbf\xb3\xc0\xb3\xc1\x69\xd7\x69\xd9\x69\xdc\x69\xda\xb3\xc2\xb3\xc3\x69\xdb\xb3\xc4\xb3\xc5\xb3\xc6\xb3\xc7\x59\x71\x69\xd0\xb3\xc8\x57\x69\xb3\xc9\x57\xce\x5b\xa8\xb3\xca\x69\xe2\xb3\xcb\x52\x7b\xb3\xcc\x69\xdf\xb3\xcd\xb3\xce\x50\xae\x69\xeb\x69\xdd\xb3\xcf\x69\xe0\xb3\xd0\xb3\xd1\xb3\xd2\x69\xe7\xb3\xd3\xb3\xd4\xb3\xd5\xb3\xd6\x69\xe1\xb3\xd7\xb3\xd8\x69\xe6\xb3\xd9\xb3\xda\x69\xe5\xb3\xdb\xb3\xdc\x69\xe8\xb3\xdd\xb3\xde\xb3\xdf\x69\xde\xb3\xe0\xb3\xe1\x69\xe3\x69\xe9\xb3\xe2\xb3\xe3\xb3\xe4\xb3\xe5\xb3\xe6\xb3\xe7\xb3\xe8\x5a\x4c\x69\xe4\x49\xf4\xb3\xe9\xb3\xea\x69\xf1\xb3\xeb\x58\xaa\xb3\xec\xb3\xed\xb3\xee\xb3\xef\x69\xf4\xb3\xf0\xb3\xf1\xb3\xf2\x4e\x68\xb3\xf3\x69\xf8\xb3\xf4\xb3\xf5\xb3\xf6\xb3\xf7\xb3\xf8\xb3\xf9\x69\xef\xb3\xfa\xb3\xfb\x69\xf5\x69\xf7\x69\xf9\xb3\xfc\xb3\xfd\xb4\x41\xb4\x42\xb4\x43\xb4\x44\xb4\x45\xb4\x46\x69\xf2\xb4\x47\x69\xf0\xb4\x48\xb4\x49\xb4\x4a\x4d\xfa\xb4\x4b\x4b\x9c\xb4\x4c\xb4\x4d\xb4\x4e\xb4\x4f\x69\xee\x69\xf6\x69\xec\x69\xed\xb4\x50", /* 8780 */ "\xb4\x51\xb4\x52\x69\xea\x6a\x46\xb4\x53\x6a\x43\xb4\x54\xb4\x55\x6a\x42\xb4\x56\xb4\x57\x69\xf3\xb4\x58\x54\xd9\xb4\x59\xb4\x5a\xb4\x5b\xb4\x5c\xb4\x5d\x69\xfa\xb4\x5e\xb4\x5f\xb4\x60\x6a\x45\xb4\x61\xb4\x62\xb4\x63\xb4\x64\xb4\x65\xb4\x66\xb4\x67\x52\x99\xb4\x68\xb4\x69\xb4\x6a\xb4\x6b\xb4\x6c\xb4\x6d\xb4\x6e\xb4\x6f\x69\xfc\xb4\x70\xb4\x71\x6a\x47\x6a\x49\x6a\x44\xb4\x72\x69\xfb\xb4\x73\xb4\x74\xb4\x75\x6a\x4b\xb4\x76\x6a\x4a\xb4\x77\xb4\x78\xb4\x79\xb4\x7a\x51\xdc\xb4\x7b\xb4\x7c\x6a\x4e\xb4\x7d\xb4\x7e\x6a\x50\xb4\x7f\xb4\x81\xb4\x82\xb4\x83\xb4\x84\x6a\x41\xb4\x85\xb4\x86\xb4\x87\x6a\x51\x6a\x4c\xb4\x88\xb4\x89\xb4\x8a\xb4\x8b\xb4\x8c\x6a\x4f\x69\xfd\x6a\x4d\xb4\x8d\xb4\x8e\xb4\x8f\xb4\x90\xb4\x91\xb4\x92\xb4\x93\x6a\x52\xb4\x94\xb4\x95\xb4\x96\xb4\x97\x6a\x54\xb4\x98\xb4\x99\xb4\x9a\xb4\x9b\x6a\x48\xb4\x9c\xb4\x9d\xb4\x9e\xb4\x9f\x6a\x53\xb4\xa0\xb4\xa1\xb4\xa2\x6a\x55\xb4\xa3\xb4\xa4\xb4\xa5\xb4\xa6\xb4\xa7\xb4\xa8\xb4\xa9\xb4\xaa\xb4\xab\xb4\xac\x58\xb6\xb4\xad\xb4\xae\xb4\xaf\xb4\xb0\x6a\x58\xb4\xb1", /* 8800 */ "\xb4\xb2\xb4\xb3\xb4\xb4\x5d\x9a\xb4\xb5\xb4\xb6\xb4\xb7\xb4\xb8\xb4\xb9\xb4\xba\x6a\x59\xb4\xbb\xb4\xbc\xb4\xbd\xb4\xbe\xb4\xbf\xb4\xc0\xb4\xc1\xb4\xc2\x6a\x57\xb4\xc3\x54\xe3\x6a\x56\xb4\xc4\xb4\xc5\xb4\xc6\xb4\xc7\x6a\x5a\xb4\xc8\xb4\xc9\xb4\xca\xb4\xcb\xb4\xcc\x6a\x5b\x4a\xbf\xb4\xcd\xb4\xce\xb4\xcf\xb4\xd0\xb4\xd1\xb4\xd2\xb4\xd3\xb4\xd4\xb4\xd5\xb4\xd6\xb4\xd7\xb4\xd8\xb4\xd9\xb4\xda\xb4\xdb\x67\xc2\xb4\xdc\xb4\xdd\xb4\xde\xb4\xdf\xb4\xe0\xb4\xe1\x6a\x5c\xb4\xe2\xb4\xe3\x6a\x5d\xb4\xe4\xb4\xe5\xb4\xe6\x59\x4a\xb4\xe7\xb4\xe8\xb4\xe9\x6a\xab\x58\xc5\xb4\xea\xb4\xeb\xb4\xec\xb4\xed\xb4\xee\xb4\xef\x58\xcf\x59\x7c\xb4\xf0\xb4\xf1\xb4\xf2\xb4\xf3\xb4\xf4\xb4\xf5\x58\x6e\xb4\xf6\xb4\xf7\x4f\x76\xb4\xf8\x59\x63\xb4\xf9\xb4\xfa\xb4\xfb\xb4\xfc\xb4\xfd\xb5\x41\xb5\x42\x4d\xe1\x61\x8a\x59\xc1\x69\x62\x49\xb8\xb5\x43\xb5\x44\x49\x8e\x69\x63\xb5\x45\x55\x60\x4a\x64\xb5\x46\x5d\x93\xb5\x47\x56\x45\xb5\x48\x69\x64\xb5\x49\xb5\x4a\xb5\x4b\xb5\x4c\x5b\xd3\xb5\x4d\xb5\x4e\xb5\x4f\xb5\x50\xb5\x51\x69\x65\x6a\xbf\x69\x66", /* 8880 */ "\xb5\x52\x5a\xab\x69\x67\xb5\x53\x48\xbf\x6a\xc0\xb5\x54\xb5\x55\x6a\xc1\xb5\x56\xb5\x57\x4a\xfb\xb5\x58\x53\x7b\xb5\x59\xb5\x5a\xb5\x5b\xb5\x5c\x56\xba\xb5\x5d\xb5\x5e\xb5\x5f\x58\xe3\xb5\x60\xb5\x61\xb5\x62\xb5\x63\xb5\x64\x57\x81\xb5\x65\xb5\x66\xb5\x67\xb5\x68\xb5\x69\x69\x68\xb5\x6a\x5d\x94\xb5\x6b\xb5\x6c\xb5\x6d\xb5\x6e\xb5\x6f\xb5\x70\x49\x5b\xb5\x71\x58\x4e\xb5\x72\xb5\x73\xb5\x74\x4c\xa3\xb5\x75\xb5\x76\xb5\x77\xb5\x78\xb5\x79\x69\x6a\xb5\x7a\xb5\x7b\xb5\x7c\xb5\x7d\x69\x6b\xb5\x7e\xb5\x7f\xb5\x81\xb5\x82\x49\xc2\x51\x71\xb5\x83\xb5\x84\x5c\x50\x69\x69\xb5\x85\xb5\x86\x69\x6c\xb5\x87\xb5\x88\xb5\x89\xb5\x8a\x69\x6e\xb5\x8b\xb5\x8c\xb5\x8d\x5d\x97\xb5\x8e\x59\xe0\x5a\xa2\xb5\x8f\xb5\x90\x6a\xc2\x54\xb8\xb5\x91\xb5\x92\xb5\x93\xb5\x94\xb5\x95\x6a\xc3\xb5\x96\xb5\x97\x69\x6d\x69\x6f\x50\x84\x69\x70\xb5\x98\xb5\x99\x69\x74\xb5\x9a\xb5\x9b\xb5\x9c\xb5\x9d\xb5\x9e\xb5\x9f\xb5\xa0\x69\x76\x69\x71\xb5\xa1\x55\x71\x53\x82\xb5\xa2\xb5\xa3\xb5\xa4\x51\xe2\x4d\x9d\xb5\xa5\xb5\xa6\x69\x73\xb5\xa7\x69\x75\xb5\xa8", /* 8900 */ "\xb5\xa9\xb5\xaa\x4d\x73\xb5\xab\xb5\xac\xb5\xad\xb5\xae\xb5\xaf\xb5\xb0\xb5\xb1\x69\x7b\xb5\xb2\xb5\xb3\xb5\xb4\xb5\xb5\xb5\xb6\x4d\xd5\xb5\xb7\x48\xfc\x69\x79\xb5\xb8\xb5\xb9\xb5\xba\xb5\xbb\xb5\xbc\x69\x78\x69\x72\x69\x7a\xb5\xbd\xb5\xbe\xb5\xbf\xb5\xc0\xb5\xc1\x69\x77\xb5\xc2\xb5\xc3\xb5\xc4\x54\xeb\xb5\xc5\xb5\xc6\xb5\xc7\xb5\xc8\x57\x6a\x69\x7d\xb5\xc9\xb5\xca\xb5\xcb\xb5\xcc\x63\x5d\xb5\xcd\xb5\xce\xb5\xcf\x69\x7c\xb5\xd0\x69\x7e\xb5\xd1\xb5\xd2\xb5\xd3\xb5\xd4\xb5\xd5\xb5\xd6\xb5\xd7\xb5\xd8\xb5\xd9\xb5\xda\x69\x7f\xb5\xdb\xb5\xdc\x58\x86\xb5\xdd\xb5\xde\xb5\xdf\xb5\xe0\xb5\xe1\xb5\xe2\xb5\xe3\xb5\xe4\xb5\xe5\xb5\xe6\xb5\xe7\xb5\xe8\xb5\xe9\xb5\xea\xb5\xeb\xb5\xec\xb5\xed\xb5\xee\xb5\xef\xb5\xf0\xb5\xf1\xb5\xf2\xb5\xf3\xb5\xf4\xb5\xf5\x6a\xc4\x4f\x94\xb5\xf6\xb5\xf7\xb5\xf8\xb5\xf9\xb5\xfa\xb5\xfb\x69\x81\xb5\xfc\xb5\xfd\xb6\x41\xb6\x42\xb6\x43\xb6\x44\xb6\x45\xb6\x46\xb6\x47\xb6\x48\xb6\x49\xb6\x4a\xb6\x4b\xb6\x4c\xb6\x4d\xb6\x4e\xb6\x4f\xb6\x50\xb6\x51\xb6\x52\x69\x82\xb6\x53\xb6\x54\xb6\x55\x57\xf6", /* 8980 */ "\xb6\x56\x59\xa9\xb6\x57\x69\x9c\xb6\x58\xb6\x59\x4c\xb1\xb6\x5a\xb6\x5b\xb6\x5c\xb6\x5d\xb6\x5e\xb6\x5f\xb6\x60\xb6\x61\xb6\x62\xb6\x63\xb6\x64\xb6\x65\xb6\x66\xb6\x67\xb6\x68\xb6\x69\xb6\x6a\xb6\x6b\xb6\x6c\xb6\x6d\xb6\x6e\xb6\x6f\xb6\x70\xb6\x71\xb6\x72\xb6\x73\xb6\x74\xb6\x75\xb6\x76\xb6\x77\xb6\x78\xb6\x79\xb6\x7a\xb6\x7b\xb6\x7c\xb6\x7d\xb6\x7e\xb6\x7f\xb6\x81\xb6\x82\xb6\x83\xb6\x84\xb6\x85\xb6\x86\xb6\x87\xb6\x88\xb6\x89\xb6\x8a\xb6\x8b\xb6\x8c\xb6\x8d\xb6\x8e\xb6\x8f\xb6\x90\xb6\x91\xb6\x92\xb6\x93\xb6\x94\x4e\xfa\x4d\x7b\xb6\x95\x4d\x87\x52\x79\x55\xd2\x65\xe7\x50\xbf\x4f\xf4\x65\xe8\x65\xe9\x65\xea\xb6\x96\x65\xeb\x65\xec\x65\xed\x65\xee\x4f\x67\xb6\x97\xb6\x98\xb6\x99\x6b\x9c\xb6\x9a\xb6\x9b\xb6\x9c\x6b\x9e\xb6\x9d\x6b\x9f\xb6\x9e\x6b\x9d\xb6\x9f\xb6\xa0\xb6\xa1\xb6\xa2\x4f\x83\xb6\xa3\x6b\xa0\x4a\xa4\xb6\xa4\xb6\xa5\xb6\xa6\xb6\xa7\x6b\xa1\xb6\xa8\xb6\xa9\xb6\xaa\x6b\xa2\xb6\xab\xb6\xac\xb6\xad\x66\xb1\xb6\xae\xb6\xaf\xb6\xb0\xb6\xb1\xb6\xb2\xb6\xb3\xb6\xb4\xb6\xb5\xb6\xb6\xb6\xb7\xb6\xb8\xb6\xb9", /* 8a00 */ "\x59\x74\xb6\xba\xb6\xbb\xb6\xbc\xb6\xbd\xb6\xbe\xb6\xbf\x5d\x8b\xb6\xc0\xb6\xc1\xb6\xc2\xb6\xc3\xb6\xc4\xb6\xc5\xb6\xc6\xb6\xc7\xb6\xc8\xb6\xc9\xb6\xca\xb6\xcb\xb6\xcc\xb6\xcd\xb6\xce\xb6\xcf\xb6\xd0\xb6\xd1\xb6\xd2\xb6\xd3\xb6\xd4\xb6\xd5\xb6\xd6\xb6\xd7\xb6\xd8\xb6\xd9\xb6\xda\xb6\xdb\xb6\xdc\xb6\xdd\xb6\xde\xb6\xdf\xb6\xe0\xb6\xe1\xb6\xe2\xb6\xe3\xb6\xe4\xb6\xe5\xb6\xe6\xb6\xe7\xb6\xe8\xb6\xe9\xb6\xea\xb6\xeb\xb6\xec\xb6\xed\xb6\xee\xb6\xef\xb6\xf0\xb6\xf1\xb6\xf2\xb6\xf3\xb6\xf4\xb6\xf5\x6b\xa3\xb6\xf6\xb6\xf7\xb6\xf8\xb6\xf9\xb6\xfa\xb6\xfb\xb6\xfc\xb6\xfd\xb7\x41\x67\xb9\xb7\x42\xb7\x43\xb7\x44\xb7\x45\xb7\x46\xb7\x47\xb7\x48\xb7\x49\xb7\x4a\xb7\x4b\xb7\x4c\xb7\x4d\xb7\x4e\xb7\x4f\xb7\x50\xb7\x51\xb7\x52\xb7\x53\xb7\x54\xb7\x55\xb7\x56\xb7\x57\xb7\x58\xb7\x59\xb7\x5a\xb7\x5b\xb7\x5c\xb7\x5d\xb7\x5e\xb7\x5f\xb7\x60\xb7\x61\xb7\x62\xb7\x63\xb7\x64\xb7\x65\xb7\x66\xb7\x67\xb7\x68\xb7\x69\xb7\x6a\xb7\x6b\xb7\x6c\xb7\x6d\xb7\x6e\xb7\x6f\xb7\x70\xb7\x71\x5b\x52\xb7\x72\xb7\x73\xb7\x74\xb7\x75\xb7\x76\xb7\x77", /* 8a80 */ "\xb7\x78\xb7\x79\xb7\x7a\xb7\x7b\xb7\x7c\xb7\x7d\xb7\x7e\xb7\x7f\xb7\x81\x5a\x9f\x56\xdb\xb7\x82\xb7\x83\xb7\x84\xb7\x85\xb7\x86\xb7\x87\xb7\x88\xb7\x89\x55\xc3\xb7\x8a\xb7\x8b\xb7\x8c\xb7\x8d\xb7\x8e\xb7\x8f\xb7\x90\xb7\x91\xb7\x92\xb7\x93\xb7\x94\xb7\x95\xb7\x96\xb7\x97\xb7\x98\xb7\x99\xb7\x9a\xb7\x9b\xb7\x9c\xb7\x9d\xb7\x9e\xb7\x9f\xb7\xa0\xb7\xa1\xb7\xa2\xb7\xa3\xb7\xa4\xb7\xa5\xb7\xa6\xb7\xa7\xb7\xa8\xb7\xa9\xb7\xaa\xb7\xab\xb7\xac\xb7\xad\xb7\xae\xb7\xaf\xb7\xb0\xb7\xb1\xb7\xb2\xb7\xb3\xb7\xb4\xb7\xb5\xb7\xb6\xb7\xb7\xb7\xb8\xb7\xb9\xb7\xba\xb7\xbb\xb7\xbc\xb7\xbd\xb7\xbe\xb7\xbf\xb7\xc0\xb7\xc1\xb7\xc2\xb7\xc3\xb7\xc4\xb7\xc5\xb7\xc6\xb7\xc7\xb7\xc8\xb7\xc9\xb7\xca\xb7\xcb\xb7\xcc\xb7\xcd\xb7\xce\xb7\xcf\xb7\xd0\xb7\xd1\xb7\xd2\xb7\xd3\xb7\xd4\xb7\xd5\xb7\xd6\xb7\xd7\xb7\xd8\xb7\xd9\xb7\xda\xb7\xdb\xb7\xdc\xb7\xdd\xb7\xde\xb7\xdf\xb7\xe0\xb7\xe1\xb7\xe2\xb7\xe3\xb7\xe4\xb7\xe5\xb7\xe6\xb7\xe7\xb7\xe8\xb7\xe9\xb7\xea\xb7\xeb\xb7\xec\xb7\xed\xb7\xee\xb7\xef\xb7\xf0\xb7\xf1\xb7\xf2\xb7\xf3\xb7\xf4\xb7\xf5", /* 8b00 */ "\xb7\xf6\xb7\xf7\xb7\xf8\xb7\xf9\xb7\xfa\xb7\xfb\xb7\xfc\x63\x60\xb7\xfd\xb8\x41\xb8\x42\xb8\x43\xb8\x44\xb8\x45\xb8\x46\xb8\x47\xb8\x48\xb8\x49\xb8\x4a\xb8\x4b\xb8\x4c\xb8\x4d\xb8\x4e\xb8\x4f\xb8\x50\xb8\x51\xb8\x52\xb8\x53\xb8\x54\xb8\x55\xb8\x56\xb8\x57\xb8\x58\xb8\x59\xb8\x5a\xb8\x5b\xb8\x5c\xb8\x5d\x6b\xa4\xb8\x5e\xb8\x5f\xb8\x60\xb8\x61\xb8\x62\xb8\x63\xb8\x64\xb8\x65\xb8\x66\xb8\x67\xb8\x68\xb8\x69\xb8\x6a\xb8\x6b\xb8\x6c\xb8\x6d\xb8\x6e\xb8\x6f\xb8\x70\xb8\x71\xb8\x72\xb8\x73\xb8\x74\xb8\x75\xb8\x76\xb8\x77\xb8\x78\xb8\x79\xb8\x7a\xb8\x7b\xb8\x7c\xb8\x7d\xb8\x7e\xb8\x7f\xb8\x81\xb8\x82\xb8\x83\xb8\x84\xb8\x85\xb8\x86\xb8\x87\xb8\x88\xb8\x89\xb8\x8a\xb8\x8b\xb8\x8c\xb8\x8d\xb8\x8e\xb8\x8f\xb8\x90\xb8\x91\xb8\x92\xb8\x93\xb8\x94\xb8\x95\xb8\x96\xb8\x97\xb8\x98\xb8\x99\xb8\x9a\xb8\x9b\xb8\x9c\xb8\x9d\x4f\xae\xb8\x9e\xb8\x9f\xb8\xa0\xb8\xa1\xb8\xa2\x53\xa8\xb8\xa3\xb8\xa4\xb8\xa5\xb8\xa6\xb8\xa7\xb8\xa8\xb8\xa9\xb8\xaa\xb8\xab\xb8\xac\xb8\xad\xb8\xae\xb8\xaf\xb8\xb0\xb8\xb1\xb8\xb2\xb8\xb3\xb8\xb4\xb8\xb5", /* 8b80 */ "\xb8\xb6\xb8\xb7\xb8\xb8\xb8\xb9\xb8\xba\xb8\xbb\xb8\xbc\xb8\xbd\xb8\xbe\xb8\xbf\xb8\xc0\xb8\xc1\xb8\xc2\xb8\xc3\xb8\xc4\xb8\xc5\xb8\xc6\xb8\xc7\xb8\xc8\xb8\xc9\xb8\xca\xb8\xcb\xb8\xcc\xb8\xcd\xb8\xce\xb8\xcf\xb8\xd0\xb8\xd1\xb8\xd2\xb8\xd3\xb8\xd4\xb8\xd5\x5d\xa4\x4e\xc5\x4b\xa8\x4c\xbb\x54\xce\x4e\xa4\x5d\xa5\x5d\xa6\x56\xd5\x54\xc2\x5d\xa7\x53\xfc\xb8\xd6\x59\x55\x59\xe8\x59\x56\x4e\xc6\xb8\xd7\x4f\x52\x4e\x85\x5d\xa8\x5d\xa9\x59\x68\x5d\xaa\x58\xec\x4b\xee\x51\xda\xb8\xd8\x56\x6f\x4c\x8e\x55\x89\x4c\x63\x4f\xf6\x5b\xa3\x5d\xab\x5d\xac\x53\xbf\x5c\x88\x55\xb5\xb8\xd9\x5b\x49\x56\x7f\x5b\x90\x5d\xad\x5b\xde\x4a\xc9\x5d\xaf\x5d\xae\xb8\xda\x59\xea\x5d\xb0\x5d\xb1\x5d\xb2\x55\xd3\x5d\xb3\x55\xaa\x5d\xb4\x5d\xb5\x4a\x6f\x5b\xee\x5d\xb6\x4e\x50\x4b\x4e\x5d\xb7\x5d\xb8\x4d\x8f\x59\x4f\x59\xe7\x5d\xb9\x4c\xc2\x58\x8b\x49\xee\x5d\xba\x5d\xbb\xb8\xdb\x4f\x8c\x57\xdb\x5a\x90\x5d\xbc\x57\xf2\x5d\xbd\x5a\x75\x4e\x86\x5d\xbe\x56\x55\x56\x70\x5d\xbf\x54\x8c\x5b\xed\x5d\xc0\x53\x55\x4b\xc0\x5d\xc1\x4c\x6c\x50\x6e\x5d\xc2", /* 8c00 */ "\x5d\xc3\x56\x4d\x5d\xc4\x4b\x98\x5d\xc5\x51\x62\x5c\x5b\x5d\xc6\x56\xb7\xb8\xdc\x59\xe9\x52\xb0\x5d\xc7\x4b\x9e\x4e\x71\x5d\xc8\x58\xb2\x5d\xc9\x5d\xca\x57\xbc\x5d\xcb\x5d\xcc\x5d\xcd\x49\xf6\x5d\xd0\x5d\xce\x59\x89\x5d\xcf\x52\x75\x5d\xd1\xb8\xdd\x5d\xd2\x5d\xd3\x5d\xd4\x58\xba\x59\xa4\x48\xf8\x5d\xd5\x54\x4b\x5d\xd6\x4f\x98\x52\x41\x5d\xd7\x5d\xd8\x52\x9e\x56\xb6\x5d\xd9\x5d\xda\x50\xbd\x53\xd6\x5d\xdb\x5d\xdc\x54\x54\x5d\xdd\x5d\xde\x4d\x68\xb8\xde\xb8\xdf\xb8\xe0\xb8\xe1\xb8\xe2\xb8\xe3\xb8\xe4\xb8\xe5\xb8\xe6\x4e\x8e\xb8\xe7\xb8\xe8\xb8\xe9\xb8\xea\x4b\xb8\x6a\xf7\xb8\xeb\x6a\xf8\xb8\xec\xb8\xed\x57\x84\xb8\xee\xb8\xef\xb8\xf0\xb8\xf1\xb8\xf2\xb8\xf3\xb8\xf4\xb8\xf5\x6b\x59\xb8\xf6\xb8\xf7\xb8\xf8\xb8\xf9\x66\x81\xb8\xfa\xb8\xfb\xb8\xfc\xb8\xfd\xb9\x41\xb9\x42\x58\x94\x4e\x5f\xb9\x43\xb9\x44\xb9\x45\xb9\x46\xb9\x47\xb9\x48\xb9\x49\x4d\xbf\x5a\xa4\xb9\x4a\xb9\x4b\xb9\x4c\xb9\x4d\xb9\x4e\xb9\x4f\xb9\x50\x61\x79\xb9\x51\xb9\x52\xb9\x53\xb9\x54\x6b\x95\x49\x4a\x49\xf1\xb9\x55\xb9\x56\xb9\x57\xb9\x58\xb9\x59", /* 8c80 */ "\xb9\x5a\xb9\x5b\x6b\x96\xb9\x5c\xb9\x5d\x6b\x98\xb9\x5e\xb9\x5f\xb9\x60\x4d\xd0\x6b\x97\xb9\x61\x52\x52\xb9\x62\xb9\x63\xb9\x64\xb9\x65\xb9\x66\xb9\x67\xb9\x68\x6b\x9a\xb9\x69\xb9\x6a\xb9\x6b\x6b\x99\xb9\x6c\xb9\x6d\xb9\x6e\xb9\x6f\xb9\x70\xb9\x71\xb9\x72\xb9\x73\xb9\x74\xb9\x75\xb9\x76\xb9\x77\xb9\x78\xb9\x79\xb9\x7a\xb9\x7b\xb9\x7c\xb9\x7d\xb9\x7e\xb9\x7f\xb9\x81\xb9\x82\xb9\x83\xb9\x84\xb9\x85\xb9\x86\xb9\x87\xb9\x88\xb9\x89\xb9\x8a\xb9\x8b\xb9\x8c\xb9\x8d\xb9\x8e\xb9\x8f\xb9\x90\xb9\x91\xb9\x92\xb9\x93\xb9\x94\xb9\x95\xb9\x96\xb9\x97\xb9\x98\xb9\x99\xb9\x9a\xb9\x9b\xb9\x9c\xb9\x9d\xb9\x9e\xb9\x9f\xb9\xa0\xb9\xa1\xb9\xa2\xb9\xa3\xb9\xa4\xb9\xa5\xb9\xa6\xb9\xa7\xb9\xa8\xb9\xa9\xb9\xaa\xb9\xab\xb9\xac\xb9\xad\xb9\xae\xb9\xaf\xb9\xb0\xb9\xb1\xb9\xb2\xb9\xb3\xb9\xb4\xb9\xb5\xb9\xb6\xb9\xb7\xb9\xb8\xb9\xb9\xb9\xba\xb9\xbb\xb9\xbc\xb9\xbd\xb9\xbe\xb9\xbf\xb9\xc0\xb9\xc1\xb9\xc2\xb9\xc3\xb9\xc4\xb9\xc5\xb9\xc6\xb9\xc7\xb9\xc8\xb9\xc9\xb9\xca\xb9\xcb\xb9\xcc\xb9\xcd\xb9\xce\xb9\xcf\xb9\xd0\xb9\xd1\xb9\xd2\xb9\xd3", /* 8d00 */ "\xb9\xd4\xb9\xd5\xb9\xd6\xb9\xd7\xb9\xd8\xb9\xd9\xb9\xda\xb9\xdb\xb9\xdc\xb9\xdd\xb9\xde\xb9\xdf\xb9\xe0\xb9\xe1\xb9\xe2\xb9\xe3\xb9\xe4\xb9\xe5\xb9\xe6\xb9\xe7\xb9\xe8\xb9\xe9\xb9\xea\xb9\xeb\xb9\xec\xb9\xed\xb9\xee\xb9\xef\xb9\xf0\x49\x54\x5b\x8b\x4c\xb9\xb9\xf1\x4d\x51\x49\xc5\x5a\xef\x58\x6d\x48\xdb\x5b\x6b\x4e\x96\x5b\xc9\x4c\x57\x56\xaf\x53\xb5\x49\x82\x4d\x5a\x5b\xfb\x4d\x82\x4c\x41\x4e\xf9\x65\xd9\x65\xda\x56\xf8\x4d\x94\x65\xdb\x4a\xfa\x52\x53\x4c\x71\x4d\xd7\x65\xdc\x5a\xf3\x65\xdd\x4e\xd5\x4e\x7f\x65\xde\x51\x7e\x51\xb7\x5a\xde\x5c\x6a\x65\xdf\x65\xe0\x65\xe3\x65\xe1\x65\xe2\x55\x7e\x4c\xb2\x4b\xc3\x65\xe4\x55\xe9\x55\x6d\x4a\xcc\xb9\xf2\xb9\xf3\x61\xd8\x53\x83\x65\xe5\x50\xb4\xb9\xf4\x5c\x58\x65\xe6\x5c\x4c\x54\xfb\x5c\xd2\x5c\xcc\x5a\xdd\xb9\xf5\x5a\xf8\x55\x64\x5a\x4e\x4c\xd2\x4a\x81\xb9\xf6\x55\x83\x6a\xf5\xb9\xf7\xb9\xf8\xb9\xf9\x4d\xd4\xb9\xfa\x6a\xf6\xb9\xfb\xb9\xfc\x5c\x7f\xb9\xfd\xba\x41\x6a\xf0\x4c\xaf\x5b\x74\x4c\xce\x53\xef\xba\x42\xba\x43\xba\x44\xba\x45\xba\x46\xba\x47\xba\x48\xba\x49", /* 8d80 */ "\xba\x4a\x4a\x63\xba\x4b\xba\x4c\x6a\xf1\x4a\x4c\xba\x4d\xba\x4e\xba\x4f\xba\x50\x5a\xbc\x54\x98\xba\x51\xba\x52\xba\x53\xba\x54\xba\x55\x6a\xf3\xba\x56\xba\x57\x6a\xf2\xba\x58\xba\x59\xba\x5a\xba\x5b\xba\x5c\xba\x5d\xba\x5e\xba\x5f\xba\x60\xba\x61\x56\xca\xba\x62\xba\x63\xba\x64\x54\xa3\xba\x65\xba\x66\xba\x67\xba\x68\xba\x69\xba\x6a\xba\x6b\xba\x6c\xba\x6d\xba\x6e\xba\x6f\xba\x70\xba\x71\x6a\xf4\xba\x72\x5c\x84\x53\x5f\x6b\x60\xba\x73\xba\x74\x6b\x5b\xba\x75\x6b\x63\xba\x76\x6b\x62\xba\x77\x5b\xb9\x6b\x61\xba\x78\xba\x79\xba\x7a\x5a\xbd\x6b\x64\xba\x7b\x6b\x6c\xba\x7c\xba\x7d\xba\x7e\xba\x7f\x48\xce\x4b\x99\xba\x81\x6b\x69\x6b\x6a\xba\x82\x53\x7c\xba\x83\xba\x84\xba\x85\xba\x86\x6b\x65\x6b\x66\xba\x87\xba\x88\x6b\x67\x6b\x6b\xba\x89\x4f\xdf\x6b\x68\x4c\xf9\xba\x8a\xba\x8b\xba\x8c\x6b\x70\x6b\x73\xba\x8d\xba\x8e\xba\x8f\x50\x88\xba\x90\x4d\x93\x6b\x5c\x6b\x6d\xba\x91\xba\x92\x51\xb6\xba\x93\xba\x94\xba\x95\x56\xf7\xba\x96\x4e\xf8\xba\x97\x6b\x6e\x6b\x6f\x6b\x71\x4b\xe4\x6b\x72\xba\x98\x6b\x75\xba\x99\xba\x9a", /* 8e00 */ "\xba\x9b\xba\x9c\xba\x9d\xba\x9e\xba\x9f\x6b\x5d\xba\xa0\xba\xa1\xba\xa2\x6b\x74\x5a\x5b\xba\xa3\x4a\x8d\xba\xa4\xba\xa5\x56\xa3\xba\xa6\xba\xa7\xba\xa8\xba\xa9\x6b\x76\xba\xaa\xba\xab\xba\xac\xba\xad\xba\xae\xba\xaf\xba\xb0\xba\xb1\x6b\x77\x4f\xe0\x6b\x78\xba\xb2\xba\xb3\x56\xde\x6b\x7b\xba\xb4\xba\xb5\xba\xb6\xba\xb7\xba\xb8\x49\xc7\x5c\x79\xba\xb9\x6b\x79\xba\xba\x6b\x7a\x6b\x7c\xba\xbb\x6b\x83\xba\xbc\xba\xbd\xba\xbe\x6b\x81\xba\xbf\xba\xc0\xba\xc1\x6b\x7f\x6b\x7d\xba\xc2\xba\xc3\x6b\x82\xba\xc4\xba\xc5\x6b\x7e\x6b\x85\x6b\x86\xba\xc6\x56\xe2\xba\xc7\xba\xc8\x63\x5f\x4b\x58\x6b\x84\x6b\x89\x56\xa2\xba\xc9\xba\xca\xba\xcb\xba\xcc\xba\xcd\x6b\x87\x6b\x88\xba\xce\xba\xcf\xba\xd0\xba\xd1\xba\xd2\xba\xd3\x6b\x5e\xba\xd4\xba\xd5\xba\xd6\xba\xd7\xba\xd8\xba\xd9\xba\xda\xba\xdb\xba\xdc\xba\xdd\xba\xde\xba\xdf\x49\x64\xba\xe0\xba\xe1\x6b\x5f\xba\xe2\xba\xe3\x4b\x65\x49\xe3\xba\xe4\x6b\x8d\x6b\x8a\xba\xe5\x4b\xd6\xba\xe6\x6b\x8e\xba\xe7\x6b\x8b\xba\xe8\xba\xe9\xba\xea\xba\xeb\xba\xec\x6b\x8c\xba\xed\xba\xee\x4a\xd9", /* 8e80 */ "\xba\xef\x5a\xe9\xba\xf0\xba\xf1\xba\xf2\x6b\x8f\xba\xf3\x4a\x9a\xba\xf4\xba\xf5\xba\xf6\xba\xf7\xba\xf8\xba\xf9\xba\xfa\x6b\x90\x6b\x92\xba\xfb\xba\xfc\xba\xfd\x6b\x91\xbb\x41\xbb\x42\xbb\x43\xbb\x44\xbb\x45\xbb\x46\xbb\x47\x6b\x93\xbb\x48\x6b\x94\xbb\x49\xbb\x4a\xbb\x4b\xbb\x4c\xbb\x4d\xbb\x4e\xbb\x4f\xbb\x50\xbb\x51\xbb\x52\xbb\x53\xbb\x54\x55\x8e\x4d\x4a\xbb\x55\xbb\x56\x54\x9c\xbb\x57\xbb\x58\x4b\xe2\xbb\x59\xbb\x5a\xbb\x5b\xbb\x5c\xbb\x5d\xbb\x5e\xbb\x5f\x56\xc8\xbb\x60\xbb\x61\xbb\x62\xbb\x63\xbb\x64\xbb\x65\xbb\x66\xbb\x67\xbb\x68\xbb\x69\xbb\x6a\xbb\x6b\xbb\x6c\xbb\x6d\xbb\x6e\xbb\x6f\xbb\x70\xbb\x71\xbb\x72\x65\xa5\xbb\x73\xbb\x74\xbb\x75\xbb\x76\xbb\x77\xbb\x78\xbb\x79\xbb\x7a\xbb\x7b\xbb\x7c\xbb\x7d\xbb\x7e\xbb\x7f\xbb\x81\xbb\x82\xbb\x83\xbb\x84\xbb\x85\xbb\x86\xbb\x87\xbb\x88\xbb\x89\xbb\x8a\xbb\x8b\xbb\x8c\xbb\x8d\xbb\x8e\xbb\x8f\xbb\x90\xbb\x91\xbb\x92\xbb\x93\xbb\x94\xbb\x95\xbb\x96\xbb\x97\xbb\x98\xbb\x99\xbb\x9a\xbb\x9b\xbb\x9c\xbb\x9d\xbb\x9e\xbb\x9f\xbb\xa0\xbb\xa1\xbb\xa2\xbb\xa3\xbb\xa4", /* 8f00 */ "\xbb\xa5\xbb\xa6\xbb\xa7\xbb\xa8\xbb\xa9\xbb\xaa\xbb\xab\xbb\xac\xbb\xad\xbb\xae\xbb\xaf\xbb\xb0\xbb\xb1\xbb\xb2\xbb\xb3\xbb\xb4\xbb\xb5\xbb\xb6\xbb\xb7\xbb\xb8\xbb\xb9\xbb\xba\xbb\xbb\xbb\xbc\xbb\xbd\xbb\xbe\xbb\xbf\xbb\xc0\xbb\xc1\xbb\xc2\xbb\xc3\xbb\xc4\xbb\xc5\xbb\xc6\xbb\xc7\xbb\xc8\xbb\xc9\xbb\xca\xbb\xcb\xbb\xcc\xbb\xcd\xbb\xce\xbb\xcf\xbb\xd0\xbb\xd1\xbb\xd2\xbb\xd3\xbb\xd4\xbb\xd5\xbb\xd6\xbb\xd7\xbb\xd8\xbb\xd9\xbb\xda\xbb\xdb\xbb\xdc\xbb\xdd\xbb\xde\xbb\xdf\xbb\xe0\xbb\xe1\xbb\xe2\xbb\xe3\xbb\xe4\xbb\xe5\xbb\xe6\xbb\xe7\xbb\xe8\xbb\xe9\xbb\xea\xbb\xeb\xbb\xec\xbb\xed\xbb\xee\xbb\xef\xbb\xf0\xbb\xf1\xbb\xf2\xbb\xf3\xbb\xf4\xbb\xf5\xbb\xf6\xbb\xf7\xbb\xf8\xbb\xf9\xbb\xfa\xbb\xfb\xbb\xfc\xbb\xfd\xbc\x41\xbc\x42\xbc\x43\xbc\x44\xbc\x45\xbc\x46\xbc\x47\xbc\x48\xbc\x49\xbc\x4a\xbc\x4b\xbc\x4c\xbc\x4d\x4a\x55\x5a\xfd\x4d\x8d\x58\xf8\xbc\x4e\x65\x8e\x5c\x4a\x65\x8f\x51\xd5\x54\xec\x4d\xe3\x65\x90\x65\x91\x65\x92\x5b\xe0\x65\x93\x65\x94\x65\x96\x65\x95\x65\x97\x65\x98\x54\x82\x65\x99\x5a\xd7\x65\x9a\x4f\x6e", /* 8f80 */ "\xbc\x4f\x65\x9b\x65\x9c\x4f\x6f\x65\x9d\x4c\xa7\x51\x5e\x65\x9e\x49\x52\x4e\x74\x4d\x96\x65\x9f\xbc\x50\x65\xa0\x65\xa1\x65\xa2\x4c\x99\x4e\xac\xbc\x51\x55\xe3\x60\xcd\x5a\xae\x58\x5d\x5b\x57\x65\xa3\x5b\x7e\x65\xa4\x58\xc0\x4d\x5c\xbc\x52\x4a\xc6\x49\x79\xbc\x53\xbc\x54\xbc\x55\x50\xb0\xbc\x56\xbc\x57\xbc\x58\xbc\x59\x49\x87\x49\x88\xbc\x5a\x49\x89\xbc\x5b\xbc\x5c\xbc\x5d\xbc\x5e\x4a\x5d\x54\xe7\xbc\x5f\xbc\x60\xbc\x61\xbc\x62\x63\x61\xbc\x63\xbc\x64\x49\x7f\xbc\x65\xbc\x66\xbc\x67\x51\x69\x4a\xee\xbc\x68\xbc\x69\x54\x48\x5a\x78\xbc\x6a\x53\xf8\x59\x58\xbc\x6b\x4d\x9e\x51\xf4\xbc\x6c\xbc\x6d\xbc\x6e\xbc\x6f\xbc\x70\x5a\x4d\xbc\x71\x5a\xca\x4f\x9d\xbc\x72\x63\x62\x4c\x55\x63\x63\xbc\x73\xbc\x74\x4e\x59\x5b\x83\xbc\x75\x4f\x99\x5a\xb5\x57\xa4\x51\x4c\x4a\x79\xbc\x76\xbc\x77\x56\xf5\xbc\x78\x63\x66\x63\x64\x63\x68\xbc\x79\x63\x6a\x63\x67\x4b\x6f\x53\xc7\xbc\x7a\x4b\x9d\x63\x65\xbc\x7b\x55\xf5\xbc\x7c\xbc\x7d\x63\x69\xbc\x7e\xbc\x7f\xbc\x81\x52\x74\x49\x65\x4e\xa2\xbc\x82\xbc\x83\xbc\x84\x5c\x57\xbc\x85\xbc\x86", /* 9000 */ "\x57\x6b\x56\x6d\x55\xc9\x56\xd2\x63\x6c\x63\x6b\x52\xe5\xbc\x87\xbc\x88\x59\x41\x59\x57\x63\x6d\xbc\x89\x63\x70\xbc\x8a\x57\x58\x5b\xef\x63\x6f\x4b\x7d\xbc\x8b\x57\x5e\xbc\x8c\x63\x71\x4b\xb9\xbc\x8d\xbc\x8e\x57\x48\x4d\x85\xbc\x8f\x55\xc4\x4a\x71\x56\x79\x5a\xeb\x63\x72\x4c\x8b\xbc\x90\xbc\x91\xbc\x92\x63\x6e\xbc\x93\xbc\x94\xbc\x95\xbc\x96\xbc\x97\xbc\x98\x63\x75\x4a\xfd\x63\x76\xbc\x99\xbc\x9a\xbc\x9b\xbc\x9c\xbc\x9d\x63\x73\x63\x74\xbc\x9e\x59\xdc\xbc\x9f\xbc\xa0\x51\xde\x49\x66\xbc\xa1\x5a\x83\xbc\xa2\xbc\xa3\x4b\xdc\x56\x8d\xbc\xa4\x63\x77\xbc\xa5\xbc\xa6\x5a\x97\xbc\xa7\xbc\xa8\xbc\xa9\xbc\xaa\xbc\xab\x49\x8a\xbc\xac\x4b\xf3\x63\x7a\x63\x78\x63\x79\x4b\x60\xbc\xad\xbc\xae\xbc\xaf\x59\xc4\x63\x7c\xbc\xb0\xbc\xb1\x63\x7e\xbc\xb2\xbc\xb3\xbc\xb4\xbc\xb5\xbc\xb6\xbc\xb7\x63\x7d\x54\x52\xbc\xb8\x59\xa2\xbc\xb9\xbc\xba\x63\x7b\xbc\xbb\xbc\xbc\xbc\xbd\xbc\xbe\x5a\xe1\x5b\x7a\xbc\xbf\xbc\xc0\xbc\xc1\xbc\xc2\xbc\xc3\x63\x81\x5c\x92\xbc\xc4\xbc\xc5\xbc\xc6\xbc\xc7\xbc\xc8\xbc\xc9\xbc\xca\x63\x82\xbc\xcb\x49\x7c", /* 9080 */ "\x59\x9c\xbc\xcc\x63\x83\x63\x85\xbc\xcd\xbc\xce\xbc\xcf\xbc\xd0\x63\x84\xbc\xd1\xbc\xd2\x63\x86\xbc\xd3\xbc\xd4\xbc\xd5\xbc\xd6\xbc\xd7\x59\xd7\xbc\xd8\x4b\x6b\xbc\xd9\x64\x7f\xbc\xda\x5d\xf4\xbc\xdb\x5d\xf7\xbc\xdc\x5d\xf5\xbc\xdd\x5d\xf6\xbc\xde\xbc\xdf\xbc\xe0\x5d\xf9\x58\xce\x52\xc6\xbc\xe1\xbc\xe2\x48\xed\xbc\xe3\xbc\xe4\xbc\xe5\x58\xaf\xbc\xe6\x5d\xf8\xbc\xe7\x5a\x6a\x4d\xa9\x5e\x42\x54\x92\xbc\xe8\x5d\xfb\x5d\xfa\x55\x7b\x5d\xfc\xbc\xe9\x5e\x41\x5c\x7e\x5d\xfd\x51\x7a\xbc\xea\xbc\xeb\x5e\x45\xbc\xec\xbc\xed\x5a\x95\xbc\xee\xbc\xef\x5e\x47\x5e\x44\xbc\xf0\x5e\x48\xbc\xf1\xbc\xf2\x4f\x5c\xbc\xf3\xbc\xf4\xbc\xf5\x50\xc8\x5e\x43\x5e\x46\x5b\xa2\xbc\xf6\x5e\x49\xbc\xf7\xbc\xf8\xbc\xf9\x5e\x4d\xbc\xfa\xbc\xfb\xbc\xfc\x5e\x4e\x5e\x4c\x4d\xc1\xbc\xfd\xbd\x41\xbd\x42\x50\x44\x5e\x4b\xbd\x43\xbd\x44\xbd\x45\x5e\x4a\x5a\xc6\x49\xbe\xbd\x46\xbd\x47\x5e\x4f\xbd\x48\x4d\x9a\xbd\x49\x5e\x50\xbd\x4a\xbd\x4b\xbd\x4c\xbd\x4d\x4a\x5b\xbd\x4e\xbd\x4f\xbd\x50\x4b\x46\xbd\x51\xbd\x52\xbd\x53\xbd\x54\x4b\xbb\x5e\x51\xbd\x55", /* 9100 */ "\xbd\x56\xbd\x57\x4b\xf4\xbd\x58\x5e\x52\xbd\x59\xbd\x5a\xbd\x5b\xbd\x5c\xbd\x5d\xbd\x5e\xbd\x5f\xbd\x60\xbd\x61\xbd\x62\xbd\x63\xbd\x64\xbd\x65\xbd\x66\xbd\x67\xbd\x68\xbd\x69\xbd\x6a\xbd\x6b\xbd\x6c\x49\x69\xbd\x6d\xbd\x6e\xbd\x6f\xbd\x70\x5e\x54\xbd\x71\xbd\x72\xbd\x73\x5e\x53\x5e\x55\xbd\x74\xbd\x75\xbd\x76\xbd\x77\xbd\x78\xbd\x79\xbd\x7a\xbd\x7b\xbd\x7c\xbd\x7d\xbd\x7e\x5e\x57\xbd\x7f\x5e\x56\xbd\x81\xbd\x82\xbd\x83\xbd\x84\xbd\x85\xbd\x86\xbd\x87\x5e\x58\xbd\x88\xbd\x89\xbd\x8a\xbd\x8b\xbd\x8c\xbd\x8d\xbd\x8e\xbd\x8f\xbd\x90\x5e\x59\xbd\x91\xbd\x92\x5e\x5a\xbd\x93\xbd\x94\x5a\x6f\x6a\xf9\x54\x96\x5c\x63\x53\x85\x6a\xfb\x6a\xfc\x6a\xfa\xbd\x95\x4f\xc5\xbd\x96\xbd\x97\xbd\x98\xbd\x99\x58\xee\xbd\x9a\xbd\x9b\x4c\x73\xbd\x9c\xbd\x9d\x5a\xcc\x56\xa9\xbd\x9e\xbd\x9f\x6b\x42\x6b\x41\x4d\xa7\x6a\xfd\x56\x76\xbd\xa0\xbd\xa1\xbd\xa2\x6b\x44\x50\xd1\xbd\xa3\x4a\x8b\xbd\xa4\x57\x4a\x6b\x45\x6b\x43\x4f\x54\x6b\x48\xbd\xa5\x6b\x49\x4f\x6d\x52\x58\x50\x82\x56\x82\x6b\x4a\xbd\xa6\xbd\xa7\xbd\xa8\x6b\x46\x6b\x47\x52\xef", /* 9180 */ "\xbd\xa9\xbd\xaa\xbd\xab\xbd\xac\xbd\xad\x6b\x4c\xbd\xae\x4a\xbb\xbd\xaf\x5c\x8e\xbd\xb0\x4a\xd6\x6b\x4b\x6b\x4e\xbd\xb1\xbd\xb2\x6b\x4d\x6b\x4f\x58\xd0\xbd\xb3\xbd\xb4\xbd\xb5\xbd\xb6\xbd\xb7\xbd\xb8\xbd\xb9\x52\x71\x54\xa8\xbd\xba\xbd\xbb\xbd\xbc\xbd\xbd\xbd\xbe\xbd\xbf\x6b\x50\x6b\x51\xbd\xc0\xbd\xc1\xbd\xc2\xbd\xc3\xbd\xc4\xbd\xc5\x6b\x52\xbd\xc6\xbd\xc7\x6b\x53\x6b\x54\x6b\x55\xbd\xc8\xbd\xc9\xbd\xca\xbd\xcb\x6b\x57\x6b\x56\xbd\xcc\xbd\xcd\xbd\xce\xbd\xcf\x6b\x58\xbd\xd0\xbd\xd1\xbd\xd2\xbd\xd3\xbd\xd4\xbd\xd5\xbd\xd6\xbd\xd7\xbd\xd8\xbd\xd9\xbd\xda\xbd\xdb\x49\xc8\xbd\xdc\x5a\x74\x55\xcc\xbd\xdd\x50\xee\x5b\xd7\x59\xaf\x51\x5f\xbd\xde\x4f\x91\xbd\xdf\xbd\xe0\xbd\xe1\xbd\xe2\xbd\xe3\xbd\xe4\xbd\xe5\xbd\xe6\xbd\xe7\xbd\xe8\x4c\xa9\xbd\xe9\xbd\xea\xbd\xeb\xbd\xec\xbd\xed\xbd\xee\xbd\xef\xbd\xf0\xbd\xf1\xbd\xf2\xbd\xf3\xbd\xf4\xbd\xf5\xbd\xf6\xbd\xf7\xbd\xf8\xbd\xf9\xbd\xfa\xbd\xfb\xbd\xfc\xbd\xfd\xbe\x41\xbe\x42\xbe\x43\xbe\x44\xbe\x45\xbe\x46\xbe\x47\xbe\x48\xbe\x49\xbe\x4a\xbe\x4b\xbe\x4c\xbe\x4d\xbe\x4e", /* 9200 */ "\xbe\x4f\xbe\x50\xbe\x51\xbe\x52\xbe\x53\xbe\x54\xbe\x55\xbe\x56\xbe\x57\xbe\x58\xbe\x59\xbe\x5a\xbe\x5b\xbe\x5c\xbe\x5d\xbe\x5e\xbe\x5f\xbe\x60\xbe\x61\xbe\x62\xbe\x63\xbe\x64\xbe\x65\xbe\x66\xbe\x67\xbe\x68\xbe\x69\xbe\x6a\xbe\x6b\xbe\x6c\xbe\x6d\xbe\x6e\xbe\x6f\xbe\x70\xbe\x71\xbe\x72\xbe\x73\xbe\x74\xbe\x75\xbe\x76\xbe\x77\xbe\x78\xbe\x79\xbe\x7a\xbe\x7b\xbe\x7c\xbe\x7d\xbe\x7e\xbe\x7f\xbe\x81\xbe\x82\xbe\x83\xbe\x84\xbe\x85\xbe\x86\xbe\x87\xbe\x88\xbe\x89\xbe\x8a\xbe\x8b\xbe\x8c\xbe\x8d\xbe\x8e\xbe\x8f\xbe\x90\xbe\x91\xbe\x92\xbe\x93\xbe\x94\xbe\x95\xbe\x96\xbe\x97\xbe\x98\xbe\x99\xbe\x9a\xbe\x9b\xbe\x9c\xbe\x9d\xbe\x9e\xbe\x9f\xbe\xa0\xbe\xa1\xbe\xa2\xbe\xa3\xbe\xa4\xbe\xa5\xbe\xa6\xbe\xa7\xbe\xa8\xbe\xa9\xbe\xaa\xbe\xab\xbe\xac\xbe\xad\xbe\xae\xbe\xaf\xbe\xb0\xbe\xb1\xbe\xb2\xbe\xb3\xbe\xb4\xbe\xb5\xbe\xb6\xbe\xb7\xbe\xb8\xbe\xb9\xbe\xba\xbe\xbb\xbe\xbc\xbe\xbd\xbe\xbe\xbe\xbf\xbe\xc0\xbe\xc1\xbe\xc2\xbe\xc3\x4e\xf7\xbe\xc4\xbe\xc5\xbe\xc6\xbe\xc7\xbe\xc8\xbe\xc9\xbe\xca\xbe\xcb\xbe\xcc\xbe\xcd\xbe\xce", /* 9280 */ "\xbe\xcf\xbe\xd0\xbe\xd1\xbe\xd2\xbe\xd3\xbe\xd4\xbe\xd5\xbe\xd6\xbe\xd7\xbe\xd8\xbe\xd9\xbe\xda\xbe\xdb\xbe\xdc\x6b\xc5\xbe\xdd\xbe\xde\xbe\xdf\xbe\xe0\xbe\xe1\xbe\xe2\xbe\xe3\xbe\xe4\xbe\xe5\xbe\xe6\xbe\xe7\xbe\xe8\xbe\xe9\xbe\xea\xbe\xeb\xbe\xec\xbe\xed\xbe\xee\xbe\xef\xbe\xf0\xbe\xf1\xbe\xf2\xbe\xf3\xbe\xf4\xbe\xf5\xbe\xf6\xbe\xf7\xbe\xf8\xbe\xf9\xbe\xfa\xbe\xfb\x6b\xc6\xbe\xfc\xbe\xfd\xbf\x41\xbf\x42\xbf\x43\xbf\x44\xbf\x45\xbf\x46\xbf\x47\xbf\x48\xbf\x49\xbf\x4a\xbf\x4b\xbf\x4c\xbf\x4d\xbf\x4e\xbf\x4f\xbf\x50\xbf\x51\xbf\x52\xbf\x53\xbf\x54\xbf\x55\xbf\x56\xbf\x57\x6b\xc7\xbf\x58\xbf\x59\xbf\x5a\xbf\x5b\xbf\x5c\xbf\x5d\xbf\x5e\xbf\x5f\xbf\x60\xbf\x61\xbf\x62\xbf\x63\xbf\x64\xbf\x65\xbf\x66\xbf\x67\xbf\x68\xbf\x69\xbf\x6a\xbf\x6b\xbf\x6c\xbf\x6d\xbf\x6e\xbf\x6f\xbf\x70\xbf\x71\xbf\x72\xbf\x73\xbf\x74\xbf\x75\xbf\x76\xbf\x77\xbf\x78\xbf\x79\xbf\x7a\xbf\x7b\xbf\x7c\xbf\x7d\xbf\x7e\xbf\x7f\xbf\x81\xbf\x82\xbf\x83\xbf\x84\xbf\x85\xbf\x86\xbf\x87\xbf\x88\xbf\x89\xbf\x8a\xbf\x8b\xbf\x8c\xbf\x8d\xbf\x8e\xbf\x8f", /* 9300 */ "\xbf\x90\xbf\x91\xbf\x92\xbf\x93\xbf\x94\xbf\x95\xbf\x96\xbf\x97\xbf\x98\xbf\x99\xbf\x9a\xbf\x9b\xbf\x9c\xbf\x9d\xbf\x9e\xbf\x9f\xbf\xa0\xbf\xa1\xbf\xa2\xbf\xa3\xbf\xa4\xbf\xa5\xbf\xa6\xbf\xa7\xbf\xa8\xbf\xa9\xbf\xaa\xbf\xab\xbf\xac\xbf\xad\xbf\xae\xbf\xaf\xbf\xb0\xbf\xb1\xbf\xb2\xbf\xb3\xbf\xb4\xbf\xb5\xbf\xb6\xbf\xb7\xbf\xb8\xbf\xb9\xbf\xba\xbf\xbb\xbf\xbc\xbf\xbd\xbf\xbe\xbf\xbf\xbf\xc0\xbf\xc1\xbf\xc2\xbf\xc3\xbf\xc4\xbf\xc5\xbf\xc6\xbf\xc7\xbf\xc8\xbf\xc9\xbf\xca\xbf\xcb\xbf\xcc\xbf\xcd\x6b\xc8\xbf\xce\xbf\xcf\xbf\xd0\xbf\xd1\xbf\xd2\xbf\xd3\xbf\xd4\xbf\xd5\xbf\xd6\xbf\xd7\xbf\xd8\xbf\xd9\xbf\xda\xbf\xdb\xbf\xdc\xbf\xdd\xbf\xde\xbf\xdf\xbf\xe0\xbf\xe1\xbf\xe2\xbf\xe3\xbf\xe4\xbf\xe5\xbf\xe6\xbf\xe7\xbf\xe8\xbf\xe9\xbf\xea\xbf\xeb\xbf\xec\xbf\xed\xbf\xee\xbf\xef\xbf\xf0\xbf\xf1\xbf\xf2\xbf\xf3\xbf\xf4\xbf\xf5\xbf\xf6\xbf\xf7\xbf\xf8\x6b\xc9\xbf\xf9\xbf\xfa\xbf\xfb\xbf\xfc\xbf\xfd\xc0\x41\xc0\x42\xc0\x43\xc0\x44\xc0\x45\xc0\x46\xc0\x47\xc0\x48\xc0\x49\xc0\x4a\xc0\x4b\xc0\x4c\xc0\x4d\xc0\x4e\xc0\x4f\xc0\x50", /* 9380 */ "\xc0\x51\xc0\x52\xc0\x53\xc0\x54\xc0\x55\xc0\x56\xc0\x57\xc0\x58\xc0\x59\xc0\x5a\xc0\x5b\xc0\x5c\xc0\x5d\xc0\x5e\xc0\x5f\x6b\xcb\xc0\x60\xc0\x61\xc0\x62\xc0\x63\xc0\x64\xc0\x65\xc0\x66\xc0\x67\xc0\x68\xc0\x69\xc0\x6a\xc0\x6b\xc0\x6c\xc0\x6d\xc0\x6e\xc0\x6f\xc0\x70\xc0\x71\xc0\x72\xc0\x73\xc0\x74\xc0\x75\xc0\x76\xc0\x77\xc0\x78\xc0\x79\xc0\x7a\xc0\x7b\xc0\x7c\xc0\x7d\xc0\x7e\xc0\x7f\xc0\x81\xc0\x82\xc0\x83\xc0\x84\xc0\x85\xc0\x86\xc0\x87\xc0\x88\xc0\x89\xc0\x8a\xc0\x8b\xc0\x8c\xc0\x8d\xc0\x8e\xc0\x8f\xc0\x90\xc0\x91\xc0\x92\xc0\x93\xc0\x94\xc0\x95\xc0\x96\xc0\x97\xc0\x98\xc0\x99\xc0\x9a\x6b\xca\xc0\x9b\xc0\x9c\xc0\x9d\xc0\x9e\xc0\x9f\xc0\xa0\xc0\xa1\xc0\xa2\xc0\xa3\xc0\xa4\xc0\xa5\x6c\x8a\xc0\xa6\xc0\xa7\xc0\xa8\xc0\xa9\xc0\xaa\xc0\xab\xc0\xac\xc0\xad\xc0\xae\xc0\xaf\xc0\xb0\xc0\xb1\xc0\xb2\xc0\xb3\xc0\xb4\xc0\xb5\xc0\xb6\xc0\xb7\xc0\xb8\xc0\xb9\xc0\xba\xc0\xbb\xc0\xbc\xc0\xbd\xc0\xbe\xc0\xbf\xc0\xc0\xc0\xc1\xc0\xc2\xc0\xc3\xc0\xc4\xc0\xc5\xc0\xc6\xc0\xc7\xc0\xc8\xc0\xc9\xc0\xca\xc0\xcb\xc0\xcc\xc0\xcd\xc0\xce", /* 9400 */ "\xc0\xcf\xc0\xd0\xc0\xd1\xc0\xd2\xc0\xd3\xc0\xd4\xc0\xd5\xc0\xd6\xc0\xd7\xc0\xd8\xc0\xd9\xc0\xda\xc0\xdb\xc0\xdc\xc0\xdd\xc0\xde\xc0\xdf\xc0\xe0\xc0\xe1\xc0\xe2\xc0\xe3\xc0\xe4\xc0\xe5\xc0\xe6\xc0\xe7\xc0\xe8\xc0\xe9\xc0\xea\xc0\xeb\xc0\xec\xc0\xed\xc0\xee\xc0\xef\xc0\xf0\xc0\xf1\xc0\xf2\xc0\xf3\xc0\xf4\xc0\xf5\xc0\xf6\xc0\xf7\xc0\xf8\xc0\xf9\xc0\xfa\xc0\xfb\xc0\xfc\xc0\xfd\xc1\x41\xc1\x42\xc1\x43\xc1\x44\xc1\x45\xc1\x46\xc1\x47\xc1\x48\xc1\x49\xc1\x4a\xc1\x4b\xc1\x4c\xc1\x4d\xc1\x4e\xc1\x4f\x6b\xcc\xc1\x50\xc1\x51\xc1\x52\xc1\x53\xc1\x54\xc1\x55\xc1\x56\xc1\x57\xc1\x58\xc1\x59\xc1\x5a\xc1\x5b\xc1\x5c\xc1\x5d\xc1\x5e\xc1\x5f\xc1\x60\xc1\x61\xc1\x62\xc1\x63\xc1\x64\xc1\x65\xc1\x66\xc1\x67\xc1\x68\xc1\x69\xc1\x6a\xc1\x6b\xc1\x6c\xc1\x6d\xc1\x6e\xc1\x6f\xc1\x70\xc1\x71\xc1\x72\xc1\x73\xc1\x74\xc1\x75\xc1\x76\xc1\x77\xc1\x78\xc1\x79\xc1\x7a\xc1\x7b\x6b\xcd\xc1\x7c\xc1\x7d\xc1\x7e\xc1\x7f\xc1\x81\xc1\x82\xc1\x83\xc1\x84\xc1\x85\xc1\x86\xc1\x87\xc1\x88\xc1\x89\xc1\x8a\xc1\x8b\xc1\x8c\xc1\x8d\xc1\x8e\xc1\x8f\xc1\x90", /* 9480 */ "\xc1\x91\xc1\x92\xc1\x93\xc1\x94\xc1\x95\x67\xc3\x67\xc4\x67\xc5\x5b\x8c\x4b\xa3\x67\xc7\x67\xc6\x67\xc8\x67\xc9\x54\x45\x67\xca\x67\xcb\xc1\x96\x4c\x50\x4b\x97\x67\xcc\x67\xce\xc1\x97\x67\xcd\xc1\x98\x4c\xc5\x67\xcf\x67\xd0\x67\xd1\x4b\xda\x4a\x4e\x5b\xd2\x52\xc5\x49\x55\x4c\xd5\x67\xd2\x67\xd3\x5a\xbe\x54\x75\x4f\xfa\x57\xd8\x4d\x53\x67\xd5\x67\xd4\x67\xd7\x67\xd6\x53\x45\x67\xd8\x67\xd9\x54\x4e\x67\xda\x54\x4f\x67\xdb\x49\xa6\x67\xdc\x67\xdd\x67\xde\x67\xdf\x67\xe0\x5c\x8b\x67\xe1\x67\xe2\x4e\xd7\x67\xe3\x5a\x6b\x56\xf9\x49\xab\x51\x86\x67\xe4\x54\x46\x52\x4d\xc1\x99\x67\xe5\x67\xe6\x67\xe7\x67\xe8\x67\xe9\x67\xea\x67\xeb\xc1\x9a\x67\xec\x67\xed\x67\xee\xc1\x9b\xc1\x9c\x67\xef\x67\xf0\x67\xf1\x67\xf3\x67\xf2\xc1\x9d\x67\xf4\x57\x4d\x51\xc0\x67\xf5\x67\xf6\x67\xf7\x5b\x41\x67\xf8\x58\x53\x67\xf9\x67\xfa\xc1\x9e\x67\xfb\x67\xfc\x68\x41\x67\xfd\x68\x42\x4c\xf4\x52\x9b\x68\x43\x68\x44\x4f\x62\x59\xbe\x49\xf8\x68\x45\x68\x46\x68\x47\x59\xf7\x68\x48\x5b\xfc\x68\x49\x53\xcb\xc1\x9f\x68\x4a\x68\x4b\x51\x54\x68\x4c", /* 9500 */ "\x58\x9b\x56\x99\x68\x4e\x68\x4d\x4a\x9b\x4d\x99\x68\x4f\x68\x50\x58\xe1\x68\x51\x68\x52\x4c\x87\x58\xbe\x68\x53\x68\x54\x68\x55\x54\xf0\x56\xdf\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x5b\x81\x68\x5b\x4a\xec\x52\x4a\x68\x5c\xc1\xa0\x68\x5d\x68\x5e\x68\x5f\xc1\xa1\x57\xfc\x68\x60\x51\xdf\x4a\xb7\x5c\x56\x4f\x96\xc1\xa2\x58\x67\x68\x63\x68\x61\x68\x62\x68\x64\x4b\xa6\x4e\xfb\x4f\xe1\x52\x6c\x68\x65\x68\x66\xc1\xa3\x68\x67\x68\x6f\x68\x68\x68\x69\x68\x6a\x54\x62\x68\x92\x4b\xcc\x68\x6b\xc1\xa4\x68\x6c\x68\x6d\x4b\xc5\x52\x5e\x68\x6e\xc1\xa5\x68\x70\x68\x71\x68\x72\x5b\x93\xc1\xa6\x68\x73\x52\xf6\xc1\xa7\x68\x74\x52\xf7\x68\x75\x68\x76\x4c\xe3\x48\xf6\x68\x77\x68\x78\x68\x79\xc1\xa8\x68\x7a\x68\x7b\x68\x7c\x68\x7d\xc1\xa9\x68\x7e\x4f\xb4\x68\x82\x68\x7f\x68\x81\xc1\xaa\x68\x83\x68\x84\x51\x6d\x68\x85\x68\x86\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x50\xd7\xc1\xab\x68\x8e\x51\x4d\x68\x8f\x68\x90\x68\x91\xc1\xac\xc1\xad\x58\x83\xc1\xae\xc1\xaf\xc1\xb0\xc1\xb1\xc1\xb2\xc1\xb3\xc1\xb4\xc1\xb5\x4a\x44", /* 9580 */ "\xc1\xb6\xc1\xb7\xc1\xb8\xc1\xb9\xc1\xba\xc1\xbb\xc1\xbc\xc1\xbd\xc1\xbe\xc1\xbf\xc1\xc0\xc1\xc1\xc1\xc2\xc1\xc3\xc1\xc4\xc1\xc5\xc1\xc6\xc1\xc7\xc1\xc8\xc1\xc9\xc1\xca\xc1\xcb\xc1\xcc\xc1\xcd\xc1\xce\xc1\xcf\xc1\xd0\xc1\xd1\xc1\xd2\xc1\xd3\xc1\xd4\xc1\xd5\xc1\xd6\xc1\xd7\xc1\xd8\xc1\xd9\xc1\xda\xc1\xdb\xc1\xdc\xc1\xdd\xc1\xde\xc1\xdf\xc1\xe0\xc1\xe1\xc1\xe2\xc1\xe3\xc1\xe4\xc1\xe5\xc1\xe6\xc1\xe7\xc1\xe8\xc1\xe9\xc1\xea\xc1\xeb\xc1\xec\xc1\xed\xc1\xee\xc1\xef\xc1\xf0\xc1\xf1\xc1\xf2\xc1\xf3\xc1\xf4\xc1\xf5\xc1\xf6\xc1\xf7\xc1\xf8\xc1\xf9\xc1\xfa\xc1\xfb\xc1\xfc\xc1\xfd\xc2\x41\xc2\x42\xc2\x43\xc2\x44\xc2\x45\xc2\x46\xc2\x47\xc2\x48\xc2\x49\xc2\x4a\xc2\x4b\xc2\x4c\xc2\x4d\xc2\x4e\xc2\x4f\xc2\x50\xc2\x51\xc2\x52\xc2\x53\xc2\x54\xc2\x55\xc2\x56\xc2\x57\xc2\x58\xc2\x59\xc2\x5a\xc2\x5b\xc2\x5c\xc2\x5d\xc2\x5e\xc2\x5f\xc2\x60\x52\x65\x62\x65\x55\x61\x62\x66\xc2\x61\x49\x75\x57\xc9\x4a\xb2\x54\xf1\x62\x67\x58\x70\x62\x68\x4e\xe3\x62\x69\x62\x6a\x52\x66\x5b\x42\x52\xd5\x4d\x8c\x57\xc4\x62\x6b\x52\x97\x62\x6c\xc2\x62", /* 9600 */ "\x4c\x47\x4c\xf2\x4d\xd1\x62\x6d\x62\x6e\x5a\xc3\x62\x6f\xc2\x63\x62\x70\x59\x6b\x62\x71\x62\x72\x62\x73\x62\x74\x59\x76\x62\x75\x49\xfa\x50\xba\x62\x76\xc2\x64\x50\xaa\x62\x77\x62\x78\x62\x79\xc2\x65\x62\x7a\x62\x7b\xc2\x66\x4c\xb6\x5d\xe1\xc2\x67\x4b\xd2\xc2\x68\x5d\xe3\x5d\xe2\xc2\x69\xc2\x6a\xc2\x6b\xc2\x6c\xc2\x6d\xc2\x6e\xc2\x6f\x5d\xe5\xc2\x70\xc2\x71\xc2\x72\x54\xed\xc2\x73\xc2\x74\x5d\xe4\x4c\x60\x59\x95\x59\xf4\x5b\x94\x4f\x77\xc2\x75\xc2\x76\xc2\x77\xc2\x78\x5c\x89\x5d\xe7\x5d\xe6\xc2\x79\x48\xa1\x57\x73\xc2\x7a\x5d\xe8\xc2\x7b\x4c\xbc\x4e\xc9\x51\xbc\x51\xa3\x4a\x62\x5d\xe9\xc2\x7c\x51\xa9\x52\xaf\x4f\x55\xc2\x7d\xc2\x7e\x58\x7e\xc2\x7f\xc2\x81\xc2\x82\x5d\xea\x55\x62\xc2\x83\xc2\x84\xc2\x85\xc2\x86\xc2\x87\x49\x7d\xc2\x88\xc2\x89\xc2\x8a\x5d\xeb\xc2\x8b\x4b\xb7\x5a\xb9\xc2\x8c\x4a\x9e\xc2\x8d\xc2\x8e\x5d\xec\x5a\xc8\x58\x75\x53\x84\xc2\x8f\x5d\xed\xc2\x90\xc2\x91\xc2\x92\xc2\x93\xc2\x94\x5d\xee\xc2\x95\x5d\xef\x51\x8b\x56\xd4\x58\x7d\xc2\x96\xc2\x97\xc2\x98\xc2\x99\xc2\x9a\xc2\x9b\xc2\x9c\xc2\x9d", /* 9680 */ "\xc2\x9e\xc2\x9f\xc2\xa0\xc2\xa1\xc2\xa2\x5a\x88\x51\xa0\xc2\xa3\x5d\xf0\xc2\xa4\xc2\xa5\x56\x86\xc2\xa6\x5d\xf1\xc2\xa7\x56\x87\x59\xfd\xc2\xa8\xc2\xa9\xc2\xaa\x4c\xf3\xc2\xab\xc2\xac\x5d\xf2\x48\xae\x58\x56\xc2\xad\xc2\xae\x5b\x6f\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3\xc2\xb4\xc2\xb5\xc2\xb6\xc2\xb7\xc2\xb8\x56\x8e\xc2\xb9\xc2\xba\xc2\xbb\xc2\xbc\xc2\xbd\xc2\xbe\xc2\xbf\xc2\xc0\x5d\xf3\xc2\xc1\xc2\xc2\x62\x64\xc2\xc3\xc2\xc4\x51\x45\xc2\xc5\xc2\xc6\x6b\xbe\xc2\xc7\xc2\xc8\x6b\xbf\x6b\xc0\x52\xd0\xc2\xc9\x54\xb7\x59\x84\xc2\xca\xc2\xcb\x58\xda\x59\x65\x4e\xae\x4d\x6d\xc2\xcc\x68\x95\xc2\xcd\xc2\xce\x4a\xc5\x5a\x5a\x6b\xc1\x4a\x9c\xc2\xcf\xc2\xd0\x6b\xc2\xc2\xd1\xc2\xd2\x4b\x92\xc2\xd3\xc2\xd4\xc2\xd5\xc2\xd6\xc2\xd7\xc2\xd8\xc2\xd9\xc2\xda\xc2\xdb\xc2\xdc\x6b\xc4\xc2\xdd\xc2\xde\xc2\xdf\xc2\xe0\xc2\xe1\xc2\xe2\xc2\xe3\x5a\x8b\x6b\xa6\x59\x49\xc2\xe4\xc2\xe5\xc2\xe6\xc2\xe7\x6b\xa8\xc2\xe8\xc2\xe9\xc2\xea\x6b\xa7\xc2\xeb\xc2\xec\x51\x84\x50\xd6\xc2\xed\x49\x42\xc2\xee\xc2\xef\xc2\xf0\xc2\xf1\x57\xec\xc2\xf2", /* 9700 */ "\x58\xe7\x6b\xaa\xc2\xf3\xc2\xf4\x58\x97\xc2\xf5\x6b\xa9\x5b\x91\x6b\xab\x52\x59\xc2\xf6\xc2\xf7\xc2\xf8\x4e\x95\x6b\xad\x6b\xac\xc2\xf9\xc2\xfa\xc2\xfb\x52\xdd\xc2\xfc\xc2\xfd\x51\x78\xc3\x41\xc3\x42\xc3\x43\xc3\x44\xc3\x45\x56\x4a\xc3\x46\x58\x5c\xc3\x47\xc3\x48\xc3\x49\xc3\x4a\xc3\x4b\xc3\x4c\xc3\x4d\xc3\x4e\xc3\x4f\xc3\x50\xc3\x51\x6b\xae\xc3\x52\xc3\x53\x6b\xaf\xc3\x54\xc3\x55\x6b\xb0\xc3\x56\x51\xb5\xc3\x57\xc3\x58\xc3\x59\xc3\x5a\xc3\x5b\x48\xd3\x53\x9a\xc3\x5c\xc3\x5d\xc3\x5e\xc3\x5f\x6b\xb1\xc3\x60\xc3\x61\xc3\x62\xc3\x63\xc3\x64\xc3\x65\xc3\x66\xc3\x67\xc3\x68\xc3\x69\xc3\x6a\xc3\x6b\xc3\x6c\xc3\x6d\xc3\x6e\xc3\x6f\xc3\x70\xc3\x71\xc3\x72\x54\x81\x6b\xa5\xc3\x73\xc3\x74\x4f\xb7\xc3\x75\xc3\x76\x4f\xb1\xc3\x77\x4b\x86\xc3\x78\xc3\x79\x4c\x67\xc3\x7a\x50\x5f\x52\x72\x52\x87\xc3\x7b\xc3\x7c\x5c\xcb\xc3\x7d\xc3\x7e\xc3\x7f\x4c\xee\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85\xc3\x86\xc3\x87\xc3\x88\xc3\x89\x4f\x9a\x59\x45\xc3\x8a\x48\xcf\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\x6c\x50\xc3\x90\xc3\x91\xc3\x92", /* 9780 */ "\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x97\x6c\x51\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\x58\xab\xc3\x9d\x48\xaf\xc3\x9e\xc3\x9f\xc3\xa0\x6c\x52\x6c\x53\xc3\xa1\x6c\x54\xc3\xa2\xc3\xa3\xc3\xa4\x54\x6a\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\x4f\xce\xc3\xac\xc3\xad\x6c\x57\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\x6c\x56\xc3\xb5\x49\x7e\xc3\xb6\x6c\x55\xc3\xb7\xc3\xb8\x6c\x58\xc3\xb9\x6c\x59\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf\xc3\xc0\xc3\xc1\xc3\xc2\xc3\xc3\xc3\xc4\xc3\xc5\xc3\xc6\xc3\xc7\xc3\xc8\xc3\xc9\xc3\xca\xc3\xcb\xc3\xcc\xc3\xcd\xc3\xce\xc3\xcf\xc3\xd0\xc3\xd1\xc3\xd2\xc3\xd3\xc3\xd4\xc3\xd5\xc3\xd6\xc3\xd7\xc3\xd8\xc3\xd9\xc3\xda\xc3\xdb\xc3\xdc\xc3\xdd\xc3\xde\xc3\xdf\xc3\xe0\xc3\xe1\xc3\xe2\xc3\xe3\xc3\xe4\xc3\xe5\xc3\xe6\xc3\xe7\xc3\xe8\xc3\xe9\xc3\xea\x57\xa3\x54\xcc\xc3\xeb\x4d\xaa\x64\xb7\x64\xb8\x64\xb9\x4f\xc1\xc3\xec\xc3\xed\xc3\xee\xc3\xef\xc3\xf0\x59\xf3\xc3\xf1\x5a\xce\x55\x78\xc3\xf2\xc3\xf3\xc3\xf4\xc3\xf5\xc3\xf6\xc3\xf7\xc3\xf8\xc3\xf9\xc3\xfa", /* 9800 */ "\xc3\xfb\xc3\xfc\xc3\xfd\xc4\x41\xc4\x42\xc4\x43\xc4\x44\xc4\x45\xc4\x46\xc4\x47\xc4\x48\xc4\x49\xc4\x4a\xc4\x4b\xc4\x4c\xc4\x4d\xc4\x4e\xc4\x4f\xc4\x50\xc4\x51\xc4\x52\xc4\x53\xc4\x54\xc4\x55\xc4\x56\xc4\x57\xc4\x58\xc4\x59\xc4\x5a\xc4\x5b\xc4\x5c\xc4\x5d\xc4\x5e\xc4\x5f\xc4\x60\xc4\x61\xc4\x62\xc4\x63\xc4\x64\xc4\x65\xc4\x66\xc4\x67\xc4\x68\xc4\x69\xc4\x6a\xc4\x6b\xc4\x6c\xc4\x6d\xc4\x6e\xc4\x6f\xc4\x70\xc4\x71\xc4\x72\xc4\x73\xc4\x74\xc4\x75\xc4\x76\xc4\x77\xc4\x78\xc4\x79\xc4\x7a\xc4\x7b\xc4\x7c\xc4\x7d\xc4\x7e\xc4\x7f\xc4\x81\xc4\x82\xc4\x83\xc4\x84\xc4\x85\xc4\x86\xc4\x87\xc4\x88\xc4\x89\xc4\x8a\xc4\x8b\xc4\x8c\xc4\x8d\xc4\x8e\xc4\x8f\xc4\x90\xc4\x91\xc4\x92\xc4\x93\xc4\x94\xc4\x95\xc4\x96\xc4\x97\xc4\x98\xc4\x99\xc4\x9a\xc4\x9b\xc4\x9c\xc4\x9d\xc4\x9e\xc4\x9f\xc4\xa0\xc4\xa1\xc4\xa2\xc4\xa3\xc4\xa4\xc4\xa5\xc4\xa6\xc4\xa7\xc4\xa8\xc4\xa9\xc4\xaa\xc4\xab\xc4\xac\xc4\xad\xc4\xae\xc4\xaf\xc4\xb0\xc4\xb1\xc4\xb2\xc4\xb3\x59\xb2\x4b\xa4\x54\x8b\x69\x9d\x58\x8f\x56\x53\x58\xea\x64\x90\x57\x88\x4d\x6b\x4b\xd8", /* 9880 */ "\x69\x9e\x48\xe3\x56\x6c\x69\x9f\x5a\xa3\x51\xac\x51\x8d\x53\xc3\x4f\xb0\x69\xa0\x4e\xd4\xc4\xb4\x69\xa1\x69\xa2\xc4\xb5\x69\xa3\x59\xc2\x53\xb4\xc4\xb6\x57\x67\x69\xa4\xc4\xb7\x5a\x51\x50\x65\x56\xe1\xc4\xb8\x69\xa5\x69\xa6\x59\x75\x4b\xed\x69\xa7\x69\xa8\x4b\x7f\x69\xa9\x69\xaa\xc4\xb9\x49\xfb\x69\xab\x69\xac\x54\xa6\xc4\xba\xc4\xbb\xc4\xbc\xc4\xbd\xc4\xbe\xc4\xbf\xc4\xc0\xc4\xc1\xc4\xc2\xc4\xc3\xc4\xc4\xc4\xc5\xc4\xc6\xc4\xc7\xc4\xc8\xc4\xc9\xc4\xca\xc4\xcb\xc4\xcc\xc4\xcd\xc4\xce\xc4\xcf\xc4\xd0\xc4\xd1\xc4\xd2\xc4\xd3\xc4\xd4\xc4\xd5\xc4\xd6\xc4\xd7\xc4\xd8\xc4\xd9\xc4\xda\xc4\xdb\xc4\xdc\xc4\xdd\xc4\xde\xc4\xdf\x4c\x88\xc4\xe0\xc4\xe1\x66\xa8\x66\xa9\x66\xaa\xc4\xe2\x66\xab\xc4\xe3\xc4\xe4\x53\xad\x66\xac\x66\xad\xc4\xe5\xc4\xe6\xc4\xe7\x4c\x69\x55\xb2\xc4\xe8\xc4\xe9\xc4\xea\xc4\xeb\xc4\xec\xc4\xed\xc4\xee\x61\xb7\x6c\x6f\xc4\xef\xc4\xf0\xc4\xf1\xc4\xf2\xc4\xf3\xc4\xf4\xc4\xf5\xc4\xf6\xc4\xf7\xc4\xf8\xc4\xf9\xc4\xfa\xc4\xfb\xc4\xfc\xc4\xfd\xc5\x41\xc5\x42\xc5\x43\xc5\x44\xc5\x45\xc5\x46\xc5\x47\xc5\x48", /* 9900 */ "\xc5\x49\xc5\x4a\xc5\x4b\xc5\x4c\xc5\x4d\xc5\x4e\xc5\x4f\xc5\x50\xc5\x51\xc5\x52\xc5\x53\xc5\x54\xc5\x55\x6c\x70\xc5\x56\xc5\x57\x49\xcc\xc5\x58\xc5\x59\xc5\x5a\xc5\x5b\xc5\x5c\xc5\x5d\xc5\x5e\xc5\x5f\xc5\x60\xc5\x61\xc5\x62\xc5\x63\xc5\x64\xc5\x65\xc5\x66\xc5\x67\xc5\x68\xc5\x69\xc5\x6a\xc5\x6b\xc5\x6c\xc5\x6d\xc5\x6e\xc5\x6f\xc5\x70\xc5\x71\xc5\x72\xc5\x73\xc5\x74\x6c\x71\xc5\x75\xc5\x76\xc5\x77\xc5\x78\xc5\x79\xc5\x7a\xc5\x7b\xc5\x7c\xc5\x7d\xc5\x7e\xc5\x7f\xc5\x81\xc5\x82\xc5\x83\xc5\x84\xc5\x85\xc5\x86\xc5\x87\xc5\x88\xc5\x89\xc5\x8a\xc5\x8b\xc5\x8c\xc5\x8d\xc5\x8e\xc5\x8f\xc5\x90\xc5\x91\xc5\x92\xc5\x93\xc5\x94\xc5\x95\xc5\x96\xc5\x97\xc5\x98\xc5\x99\xc5\x9a\x6c\x73\x6c\x72\xc5\x9b\xc5\x9c\xc5\x9d\xc5\x9e\xc5\x9f\xc5\xa0\xc5\xa1\xc5\xa2\xc5\xa3\xc5\xa4\xc5\xa5\xc5\xa6\xc5\xa7\x61\xba\xc5\xa8\x4e\xa1\xc5\xa9\x61\xbb\x61\xbc\x61\xbd\x61\xbe\x61\xbf\x61\xc0\x4c\x59\x59\xfa\x4f\x44\x55\xcd\x49\x45\x56\x67\xc5\xaa\x61\xc1\x4b\xfb\x54\xc3\x61\xc2\xc5\xab\xc5\xac\x4f\x68\xc5\xad\x49\x9e\x61\xc3\xc5\xae\x4b\xf5", /* 9980 */ "\x61\xc4\x52\xd8\xc5\xaf\xc5\xb0\x61\xc5\x58\x7a\x4d\x7d\x61\xc6\x50\xa0\xc5\xb1\x61\xc7\x49\xf5\xc5\xb2\x61\xc8\xc5\xb3\x51\x94\x61\xc9\x61\xca\x51\xf7\x61\xcb\x61\xcc\x61\xcd\x55\xd6\x5c\xb7\x5d\x86\x58\x84\xc5\xb4\xc5\xb5\xc5\xb6\xc5\xb7\xc5\xb8\xc5\xb9\xc5\xba\xc5\xbb\xc5\xbc\xc5\xbd\xc5\xbe\x68\xa4\xc5\xbf\xc5\xc0\x5e\xaf\xc5\xc1\xc5\xc2\xc5\xc3\xc5\xc4\xc5\xc5\xc5\xc6\xc5\xc7\xc5\xc8\xc5\xc9\xc5\xca\xc5\xcb\xc5\xcc\xc5\xcd\xc5\xce\xc5\xcf\xc5\xd0\xc5\xd1\xc5\xd2\xc5\xd3\xc5\xd4\xc5\xd5\xc5\xd6\xc5\xd7\xc5\xd8\xc5\xd9\xc5\xda\xc5\xdb\xc5\xdc\xc5\xdd\xc5\xde\xc5\xdf\xc5\xe0\xc5\xe1\xc5\xe2\xc5\xe3\xc5\xe4\xc5\xe5\xc5\xe6\xc5\xe7\xc5\xe8\xc5\xe9\xc5\xea\xc5\xeb\xc5\xec\xc5\xed\xc5\xee\xc5\xef\xc5\xf0\xc5\xf1\xc5\xf2\xc5\xf3\xc5\xf4\xc5\xf5\xc5\xf6\xc5\xf7\xc5\xf8\xc5\xf9\xc5\xfa\xc5\xfb\xc5\xfc\xc5\xfd\xc6\x41\xc6\x42\xc6\x43\xc6\x44\xc6\x45\xc6\x46\xc6\x47\xc6\x48\xc6\x49\xc6\x4a\xc6\x4b\xc6\x4c\xc6\x4d\xc6\x4e\xc6\x4f\xc6\x50\xc6\x51\xc6\x52\xc6\x53\xc6\x54\xc6\x55\xc6\x56\xc6\x57\xc6\x58\xc6\x59\xc6\x5a", /* 9a00 */ "\xc6\x5b\xc6\x5c\xc6\x5d\xc6\x5e\xc6\x5f\xc6\x60\xc6\x61\xc6\x62\xc6\x63\xc6\x64\xc6\x65\xc6\x66\xc6\x67\xc6\x68\xc6\x69\xc6\x6a\xc6\x6b\xc6\x6c\xc6\x6d\xc6\x6e\xc6\x6f\xc6\x70\xc6\x71\xc6\x72\xc6\x73\xc6\x74\xc6\x75\xc6\x76\xc6\x77\xc6\x78\xc6\x79\xc6\x7a\xc6\x7b\xc6\x7c\xc6\x7d\xc6\x7e\xc6\x7f\xc6\x81\xc6\x82\xc6\x83\xc6\x84\xc6\x85\xc6\x86\xc6\x87\xc6\x88\xc6\x89\xc6\x8a\xc6\x8b\xc6\x8c\xc6\x8d\xc6\x8e\xc6\x8f\xc6\x90\xc6\x91\xc6\x92\xc6\x93\xc6\x94\xc6\x95\xc6\x96\xc6\x97\xc6\x98\xc6\x99\xc6\x9a\xc6\x9b\xc6\x9c\xc6\x9d\xc6\x9e\xc6\x9f\xc6\xa0\xc6\xa1\xc6\xa2\xc6\xa3\xc6\xa4\xc6\xa5\xc6\xa6\xc6\xa7\xc6\xa8\xc6\xa9\xc6\xaa\xc6\xab\xc6\xac\xc6\xad\xc6\xae\xc6\xaf\xc6\xb0\xc6\xb1\xc6\xb2\xc6\xb3\xc6\xb4\xc6\xb5\xc6\xb6\xc6\xb7\xc6\xb8\xc6\xb9\xc6\xba\xc6\xbb\xc6\xbc\xc6\xbd\xc6\xbe\xc6\xbf\xc6\xc0\xc6\xc1\xc6\xc2\xc6\xc3\xc6\xc4\xc6\xc5\xc6\xc6\xc6\xc7\x51\xec\x5a\xa5\x57\x74\x59\x51\x4a\x7b\x54\x9e\xc6\xc8\x49\xb4\x51\xbe\x63\xdf\x55\xba\x63\xe0\x63\xe1\x4f\xd3\x63\xe2\x5c\x44\x57\x75\x63\xe4\x4e\xdc\x63\xe3", /* 9a80 */ "\x63\xe5\x63\xe6\x51\xed\xc6\xc9\x4f\x5e\x63\xe7\x51\xe5\x4d\xa6\x63\xe8\xc6\xca\x63\xe9\x4a\x72\x59\x8a\xc6\xcb\xc6\xcc\x50\x45\x63\xea\x53\xee\x63\xeb\x63\xec\xc6\xcd\xc6\xce\x63\xed\x53\xac\x63\xee\xc6\xcf\x55\x47\x63\xef\x63\xf0\x63\xf1\x63\x59\x63\xf2\x63\xf3\x51\xe1\x63\xf4\x63\xf5\x5b\xe7\x63\xf6\xc6\xd0\x63\xf7\x4d\x67\xc6\xd1\xc6\xd2\xc6\xd3\xc6\xd4\xc6\xd5\xc6\xd6\xc6\xd7\x6c\x5b\x6c\x5a\xc6\xd8\xc6\xd9\xc6\xda\xc6\xdb\x6c\x5e\x6c\x5c\x4d\xa0\xc6\xdc\x6c\x5f\xc6\xdd\x6c\x60\xc6\xde\xc6\xdf\xc6\xe0\x6c\x62\x6c\x61\x6c\x64\xc6\xe1\xc6\xe2\x6c\x63\xc6\xe3\xc6\xe4\xc6\xe5\xc6\xe6\xc6\xe7\x6c\x65\x6c\x66\xc6\xe8\xc6\xe9\xc6\xea\xc6\xeb\x6c\x67\xc6\xec\x56\x89\xc6\xed\xc6\xee\xc6\xef\xc6\xf0\x4c\xde\xc6\xf1\xc6\xf2\xc6\xf3\xc6\xf4\xc6\xf5\xc6\xf6\x6c\x74\xc6\xf7\x6c\x75\xc6\xf8\xc6\xf9\xc6\xfa\xc6\xfb\x6c\x76\xc6\xfc\xc6\xfd\xc7\x41\xc7\x42\x6c\x78\xc7\x43\x6c\x7a\xc7\x44\x6c\x77\xc7\x45\xc7\x46\xc7\x47\xc7\x48\xc7\x49\xc7\x4a\xc7\x4b\xc7\x4c\xc7\x4d\x6c\x7b\xc7\x4e\x6c\x79\xc7\x4f\xc7\x50\xc7\x51\xc7\x52", /* 9b00 */ "\xc7\x53\xc7\x54\xc7\x55\x5c\x77\xc7\x56\xc7\x57\xc7\x58\xc7\x59\x6c\x7c\xc7\x5a\xc7\x5b\xc7\x5c\xc7\x5d\xc7\x5e\xc7\x5f\x6c\x7d\xc7\x60\xc7\x61\xc7\x62\x6c\x7e\xc7\x63\xc7\x64\xc7\x65\xc7\x66\xc7\x67\xc7\x68\xc7\x69\xc7\x6a\xc7\x6b\xc7\x6c\xc7\x6d\x6c\x7f\xc7\x6e\xc7\x6f\xc7\x70\x6c\x81\xc7\x71\xc7\x72\xc7\x73\xc7\x74\xc7\x75\xc7\x76\xc7\x77\xc7\x78\xc7\x79\xc7\x7a\xc7\x7b\x5e\x6b\xc7\x7c\xc7\x7d\x5c\xa9\xc7\x7e\xc7\x7f\xc7\x81\xc7\x82\xc7\x83\xc7\x84\xc7\x85\xc7\x86\x63\x98\x4d\x8e\xc7\x87\xc7\x88\xc7\x89\xc7\x8a\x50\x9e\x4e\x8b\x6c\x69\x53\xc6\x6c\x68\xc7\x8b\x6c\x6a\x6c\x6c\x6c\x6b\xc7\x8c\xc7\x8d\xc7\x8e\x6c\x6d\xc7\x8f\x57\xb9\xc7\x90\x6c\x6e\xc7\x91\xc7\x92\x52\xa6\xc7\x93\xc7\x94\xc7\x95\xc7\x96\xc7\x97\xc7\x98\xc7\x99\xc7\x9a\xc7\x9b\xc7\x9c\xc7\x9d\xc7\x9e\xc7\x9f\xc7\xa0\xc7\xa1\xc7\xa2\xc7\xa3\xc7\xa4\xc7\xa5\xc7\xa6\xc7\xa7\xc7\xa8\xc7\xa9\xc7\xaa\xc7\xab\xc7\xac\xc7\xad\xc7\xae\xc7\xaf\xc7\xb0\xc7\xb1\xc7\xb2\xc7\xb3\xc7\xb4\xc7\xb5\xc7\xb6\xc7\xb7\xc7\xb8\xc7\xb9\xc7\xba\xc7\xbb\xc7\xbc\xc7\xbd", /* 9b80 */ "\xc7\xbe\xc7\xbf\xc7\xc0\xc7\xc1\xc7\xc2\xc7\xc3\xc7\xc4\xc7\xc5\xc7\xc6\xc7\xc7\xc7\xc8\xc7\xc9\xc7\xca\xc7\xcb\xc7\xcc\xc7\xcd\xc7\xce\xc7\xcf\xc7\xd0\xc7\xd1\xc7\xd2\xc7\xd3\xc7\xd4\xc7\xd5\xc7\xd6\xc7\xd7\xc7\xd8\xc7\xd9\xc7\xda\xc7\xdb\xc7\xdc\xc7\xdd\xc7\xde\xc7\xdf\xc7\xe0\xc7\xe1\xc7\xe2\xc7\xe3\xc7\xe4\xc7\xe5\xc7\xe6\xc7\xe7\xc7\xe8\xc7\xe9\xc7\xea\xc7\xeb\xc7\xec\xc7\xed\xc7\xee\xc7\xef\xc7\xf0\xc7\xf1\xc7\xf2\xc7\xf3\xc7\xf4\xc7\xf5\xc7\xf6\xc7\xf7\xc7\xf8\xc7\xf9\xc7\xfa\xc7\xfb\xc7\xfc\xc7\xfd\xc8\x41\xc8\x42\xc8\x43\xc8\x44\xc8\x45\xc8\x46\xc8\x47\xc8\x48\xc8\x49\xc8\x4a\xc8\x4b\xc8\x4c\xc8\x4d\xc8\x4e\xc8\x4f\xc8\x50\xc8\x51\xc8\x52\xc8\x53\xc8\x54\xc8\x55\xc8\x56\xc8\x57\xc8\x58\xc8\x59\xc8\x5a\xc8\x5b\xc8\x5c\xc8\x5d\xc8\x5e\xc8\x5f\xc8\x60\xc8\x61\xc8\x62\xc8\x63\xc8\x64\xc8\x65\xc8\x66\xc8\x67\xc8\x68\xc8\x69\xc8\x6a\xc8\x6b\xc8\x6c\xc8\x6d\xc8\x6e\xc8\x6f\xc8\x70\xc8\x71\xc8\x72\xc8\x73\xc8\x74\xc8\x75\xc8\x76\xc8\x77\xc8\x78\xc8\x79\xc8\x7a\xc8\x7b\xc8\x7c\xc8\x7d\xc8\x7e\xc8\x7f\xc8\x81", /* 9c00 */ "\xc8\x82\xc8\x83\xc8\x84\xc8\x85\xc8\x86\xc8\x87\xc8\x88\xc8\x89\xc8\x8a\xc8\x8b\xc8\x8c\xc8\x8d\xc8\x8e\xc8\x8f\xc8\x90\xc8\x91\xc8\x92\xc8\x93\xc8\x94\xc8\x95\xc8\x96\xc8\x97\xc8\x98\xc8\x99\xc8\x9a\xc8\x9b\xc8\x9c\xc8\x9d\xc8\x9e\xc8\x9f\xc8\xa0\xc8\xa1\xc8\xa2\xc8\xa3\xc8\xa4\xc8\xa5\xc8\xa6\xc8\xa7\xc8\xa8\xc8\xa9\xc8\xaa\xc8\xab\xc8\xac\xc8\xad\xc8\xae\xc8\xaf\xc8\xb0\xc8\xb1\xc8\xb2\xc8\xb3\xc8\xb4\xc8\xb5\xc8\xb6\xc8\xb7\xc8\xb8\xc8\xb9\xc8\xba\xc8\xbb\xc8\xbc\xc8\xbd\xc8\xbe\xc8\xbf\xc8\xc0\xc8\xc1\xc8\xc2\xc8\xc3\xc8\xc4\xc8\xc5\xc8\xc6\xc8\xc7\xc8\xc8\xc8\xc9\xc8\xca\xc8\xcb\xc8\xcc\xc8\xcd\xc8\xce\xc8\xcf\xc8\xd0\xc8\xd1\xc8\xd2\xc8\xd3\xc8\xd4\xc8\xd5\xc8\xd6\xc8\xd7\xc8\xd8\xc8\xd9\xc8\xda\xc8\xdb\xc8\xdc\xc8\xdd\xc8\xde\xc8\xdf\xc8\xe0\xc8\xe1\xc8\xe2\xc8\xe3\xc8\xe4\xc8\xe5\xc8\xe6\xc8\xe7\xc8\xe8\xc8\xe9\xc8\xea\xc8\xeb\xc8\xec\xc8\xed\xc8\xee\xc8\xef\xc8\xf0\xc8\xf1\xc8\xf2\xc8\xf3\xc8\xf4\xc8\xf5\xc8\xf6\xc8\xf7\xc8\xf8\xc8\xf9\xc8\xfa\xc8\xfb\xc8\xfc\xc8\xfd\x5a\x84\xc9\x41\xc9\x42\x6b\xce", /* 9c80 */ "\xc9\x43\x51\xb2\x6b\xcf\xc9\x44\xc9\x45\x6b\xd0\x6b\xd1\x6b\xd2\x6b\xd3\xc9\x46\xc9\x47\x6b\xd5\xc9\x48\x49\x4b\x6b\xd6\xc9\x49\x6b\xd7\x6b\xd8\x6b\xd9\xc9\x4a\x6b\xda\x6b\xdb\xc9\x4b\xc9\x4c\xc9\x4d\xc9\x4e\x6b\xdc\x6b\xdd\x58\x6a\xc9\x4f\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe1\x6b\xe2\x6b\xe3\x50\xef\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\xc9\x50\x6b\xe9\xc9\x51\x6b\xea\x6b\xeb\xc9\x52\x6b\xec\x6b\xed\x6b\xee\x6b\xef\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf3\x4f\xa7\xc9\x53\x6b\xf4\x6b\xf5\x6b\xf6\x6b\xf7\xc9\x54\xc9\x55\xc9\x56\xc9\x57\xc9\x58\x54\xf9\x6b\xf8\x6b\xf9\x6b\xfa\x6b\xfb\xc9\x59\xc9\x5a\x6b\xfc\x6b\xfd\x6c\x41\x6c\x42\x6c\x43\x6c\x44\x6c\x45\xc9\x5b\xc9\x5c\x6c\x46\x6c\x47\x6c\x48\x49\x8f\x6c\x49\x6c\x4a\x6c\x4b\xc9\x5d\xc9\x5e\x6c\x4c\x6c\x4d\x51\x7b\x6c\x4e\xc9\x5f\xc9\x60\x6c\x4f\xc9\x61\xc9\x62\xc9\x63\xc9\x64\xc9\x65\xc9\x66\xc9\x67\xc9\x68\xc9\x69\xc9\x6a\xc9\x6b\xc9\x6c\xc9\x6d\xc9\x6e\xc9\x6f\xc9\x70\xc9\x71\xc9\x72\xc9\x73\xc9\x74\xc9\x75\xc9\x76\xc9\x77\xc9\x78\xc9\x79\xc9\x7a\xc9\x7b\xc9\x7c\xc9\x7d", /* 9d00 */ "\xc9\x7e\xc9\x7f\xc9\x81\xc9\x82\xc9\x83\xc9\x84\xc9\x85\xc9\x86\xc9\x87\xc9\x88\xc9\x89\xc9\x8a\xc9\x8b\xc9\x8c\xc9\x8d\xc9\x8e\xc9\x8f\xc9\x90\xc9\x91\xc9\x92\xc9\x93\xc9\x94\xc9\x95\xc9\x96\xc9\x97\xc9\x98\xc9\x99\xc9\x9a\xc9\x9b\xc9\x9c\xc9\x9d\xc9\x9e\xc9\x9f\xc9\xa0\xc9\xa1\xc9\xa2\xc9\xa3\xc9\xa4\xc9\xa5\xc9\xa6\xc9\xa7\xc9\xa8\xc9\xa9\xc9\xaa\xc9\xab\xc9\xac\xc9\xad\xc9\xae\xc9\xaf\xc9\xb0\xc9\xb1\xc9\xb2\xc9\xb3\xc9\xb4\xc9\xb5\xc9\xb6\xc9\xb7\xc9\xb8\xc9\xb9\xc9\xba\xc9\xbb\xc9\xbc\xc9\xbd\xc9\xbe\xc9\xbf\xc9\xc0\xc9\xc1\xc9\xc2\xc9\xc3\xc9\xc4\xc9\xc5\xc9\xc6\xc9\xc7\xc9\xc8\xc9\xc9\xc9\xca\xc9\xcb\xc9\xcc\xc9\xcd\xc9\xce\xc9\xcf\xc9\xd0\xc9\xd1\xc9\xd2\xc9\xd3\xc9\xd4\xc9\xd5\xc9\xd6\xc9\xd7\xc9\xd8\xc9\xd9\xc9\xda\xc9\xdb\xc9\xdc\xc9\xdd\xc9\xde\xc9\xdf\xc9\xe0\xc9\xe1\xc9\xe2\xc9\xe3\xc9\xe4\xc9\xe5\xc9\xe6\xc9\xe7\xc9\xe8\xc9\xe9\xc9\xea\xc9\xeb\xc9\xec\xc9\xed\xc9\xee\xc9\xef\xc9\xf0\xc9\xf1\xc9\xf2\xc9\xf3\xc9\xf4\xc9\xf5\xc9\xf6\xc9\xf7\xc9\xf8\xc9\xf9\xc9\xfa\xc9\xfb\xc9\xfc\xc9\xfd\xca\x41", /* 9d80 */ "\xca\x42\xca\x43\xca\x44\xca\x45\xca\x46\xca\x47\xca\x48\xca\x49\xca\x4a\xca\x4b\xca\x4c\xca\x4d\xca\x4e\xca\x4f\xca\x50\xca\x51\xca\x52\xca\x53\xca\x54\xca\x55\xca\x56\xca\x57\xca\x58\xca\x59\xca\x5a\xca\x5b\xca\x5c\xca\x5d\xca\x5e\xca\x5f\xca\x60\xca\x61\xca\x62\xca\x63\xca\x64\xca\x65\xca\x66\xca\x67\xca\x68\xca\x69\xca\x6a\xca\x6b\xca\x6c\xca\x6d\xca\x6e\xca\x6f\xca\x70\xca\x71\xca\x72\xca\x73\xca\x74\xca\x75\xca\x76\xca\x77\xca\x78\xca\x79\xca\x7a\xca\x7b\xca\x7c\xca\x7d\xca\x7e\xca\x7f\xca\x81\xca\x82\xca\x83\xca\x84\xca\x85\xca\x86\xca\x87\xca\x88\xca\x89\xca\x8a\xca\x8b\xca\x8c\xca\x8d\xca\x8e\xca\x8f\xca\x90\xca\x91\xca\x92\xca\x93\xca\x94\xca\x95\xca\x96\xca\x97\xca\x98\xca\x99\xca\x9a\xca\x9b\xca\x9c\xca\x9d\xca\x9e\xca\x9f\xca\xa0\xca\xa1\xca\xa2\xca\xa3\xca\xa4\xca\xa5\xca\xa6\xca\xa7\xca\xa8\xca\xa9\xca\xaa\xca\xab\xca\xac\xca\xad\xca\xae\xca\xaf\xca\xb0\xca\xb1\xca\xb2\xca\xb3\xca\xb4\xca\xb5\xca\xb6\xca\xb7\xca\xb8\xca\xb9\xca\xba\xca\xbb\xca\xbc\xca\xbd\xca\xbe\xca\xbf\xca\xc0\xca\xc1\xca\xc2", /* 9e00 */ "\xca\xc3\xca\xc4\xca\xc5\xca\xc6\xca\xc7\xca\xc8\xca\xc9\xca\xca\xca\xcb\xca\xcc\xca\xcd\xca\xce\xca\xcf\xca\xd0\xca\xd1\xca\xd2\xca\xd3\xca\xd4\xca\xd5\xca\xd6\xca\xd7\xca\xd8\xca\xd9\xca\xda\xca\xdb\xca\xdc\xca\xdd\xca\xde\xca\xdf\xca\xe0\xca\xe1\x52\xf0\x68\xae\x4e\xa5\x68\xaf\x52\x9a\xca\xe2\x53\x58\x59\x5b\xca\xe3\x68\xb0\x68\xb1\x68\xb2\x68\xb3\x68\xb4\x59\x5c\xca\xe4\x59\x8d\xca\xe5\x68\xb6\x68\xb5\x5a\xa6\xca\xe6\x57\x72\x68\xb7\x68\xb9\x68\xb8\x68\xba\x68\xbb\xca\xe7\xca\xe8\x4c\xea\x68\xbc\x4d\xe7\xca\xe9\x68\xbd\x68\xbe\x4f\xe8\x68\xbf\x4b\xeb\x68\xc0\x68\xc1\x68\xc2\x68\xc3\x54\xb4\x68\xc4\x68\xc5\xca\xea\x68\xc6\x53\x95\xca\xeb\x68\xc7\xca\xec\xca\xed\xca\xee\x68\xc8\xca\xef\x68\xc9\x6c\x5d\xca\xf0\x68\xca\x68\xcb\x68\xcc\xca\xf1\x68\xcd\xca\xf2\xca\xf3\xca\xf4\xca\xf5\x68\xce\x4d\xd6\xca\xf6\x68\xcf\x68\xd0\x68\xd1\x68\xd2\x68\xd3\x68\xd4\x68\xd5\x68\xd7\xca\xf7\xca\xf8\x5a\x45\x68\xd6\xca\xf9\x68\xd8\xca\xfa\xca\xfb\xca\xfc\xca\xfd\xcb\x41\xcb\x42\xcb\x43\xcb\x44\xcb\x45\xcb\x46\x6b\x5a\x51\xb8", /* 9e80 */ "\xcb\x47\xcb\x48\x6c\x85\xcb\x49\xcb\x4a\xcb\x4b\xcb\x4c\x6c\x86\x6c\x87\xcb\x4d\xcb\x4e\x6c\x88\xcb\x4f\xcb\x50\xcb\x51\xcb\x52\xcb\x53\xcb\x54\x6c\x89\x51\xb3\xcb\x55\xcb\x56\xcb\x57\xcb\x58\xcb\x59\xcb\x5a\xcb\x5b\xcb\x5c\xcb\x5d\x6c\x8b\xcb\x5e\x6c\x8c\xcb\x5f\xcb\x60\xcb\x61\xcb\x62\xcb\x63\xcb\x64\x51\xf2\xcb\x65\xcb\x66\xcb\x67\xcb\x68\xcb\x69\xcb\x6a\xcb\x6b\xcb\x6c\xcb\x6d\xcb\x6e\xcb\x6f\xcb\x70\xcb\x71\x6a\xef\xcb\x72\xcb\x73\xcb\x74\x6a\xee\xcb\x75\xcb\x76\x51\xe8\xcb\x77\x6c\x82\x6c\x83\xcb\x78\xcb\x79\xcb\x7a\xcb\x7b\xcb\x7c\x4e\x66\xcb\x7d\xcb\x7e\xcb\x7f\xcb\x81\x5d\x85\xcb\x82\xcb\x83\xcb\x84\x55\xf1\x50\xe7\x68\xa3\xcb\x85\x4d\xd9\xcb\x86\xcb\x87\x54\x4d\xcb\x88\xcb\x89\xcb\x8a\x52\xab\xcb\x8b\xcb\x8c\x6c\x8d\x6c\x8e\x6c\x8f\xcb\x8d\x6c\x91\x6c\x90\xcb\x8e\x6c\x92\xcb\x8f\xcb\x90\x6c\x95\xcb\x91\x6c\x94\xcb\x92\x6c\x93\x6c\x96\xcb\x93\xcb\x94\xcb\x95\xcb\x96\x6c\x97\xcb\x97\xcb\x98\xcb\x99\xcb\x9a\xcb\x9b\xcb\x9c\xcb\x9d\xcb\x9e\xcb\x9f\x67\x8a\xcb\xa0\x67\x8b\x67\x8c\xcb\xa1\x6b\xbb\xcb\xa2", /* 9f00 */ "\xcb\xa3\xcb\xa4\xcb\xa5\xcb\xa6\xcb\xa7\xcb\xa8\xcb\xa9\xcb\xaa\xcb\xab\xcb\xac\xcb\xad\x6b\xbc\xcb\xae\x6b\xbd\x4b\xa5\xcb\xaf\x5c\xbd\xcb\xb0\xcb\xb1\x4d\x64\xcb\xb2\xcb\xb3\xcb\xb4\x5c\xba\xcb\xb5\x5e\xb0\xcb\xb6\xcb\xb7\xcb\xb8\xcb\xb9\xcb\xba\xcb\xbb\x55\xf2\xcb\xbc\x6c\x98\xcb\xbd\xcb\xbe\xcb\xbf\xcb\xc0\xcb\xc1\xcb\xc2\xcb\xc3\xcb\xc4\xcb\xc5\x6c\x99\xcb\xc6\xcb\xc7\x6c\x9a\xcb\xc8\xcb\xc9\xcb\xca\xcb\xcb\xcb\xcc\xcb\xcd\xcb\xce\x6c\x9c\xcb\xcf\x6c\x9b\xcb\xd0\x49\x67\xcb\xd1\x6c\x9d\x6c\x9e\xcb\xd2\xcb\xd3\xcb\xd4\xcb\xd5\xcb\xd6\x6c\x9f\xcb\xd7\xcb\xd8\xcb\xd9\xcb\xda\xcb\xdb\xcb\xdc\xcb\xdd\xcb\xde\xcb\xdf\xcb\xe0\xcb\xe1\x53\xea\x66\xb3\xcb\xe2\xcb\xe3\xcb\xe4\xcb\xe5\xcb\xe6\xcb\xe7\xcb\xe8\xcb\xe9\xcb\xea\xcb\xeb\xcb\xec\xcb\xed\xcb\xee\xcb\xef\xcb\xf0\xcb\xf1\xcb\xf2\xcb\xf3\xcb\xf4\xcb\xf5\xcb\xf6\xcb\xf7\xcb\xf8\xcb\xf9\xcb\xfa\xcb\xfb\xcb\xfc\xcb\xfd\xcc\x41\xcc\x42\xcc\x43\xcc\x44\xcc\x45\xcc\x46\xcc\x47\xcc\x48\xcc\x49\xcc\x4a\xcc\x4b\xcc\x4c\xcc\x4d\xcc\x4e\xcc\x4f\xcc\x50\xcc\x51\x4a\x7d", /* 9f80 */ "\x6b\xb2\xcc\x52\xcc\x53\x6b\xb3\x51\x85\x6b\xb4\x6b\xb5\x6b\xb6\x6b\xb7\x6b\xb8\x6b\xb9\x54\xa2\x6b\xba\xcc\x54\xcc\x55\xcc\x56\xcc\x57\xcc\x58\xcc\x59\xcc\x5a\xcc\x5b\xcc\x5c\xcc\x5d\xcc\x5e\xcc\x5f\x51\x9b\x4d\x48\x67\x89\xcc\x60\xcc\x61\xcc\x62\x4d\x8b\x5d\x7f\xcc\x63\xcc\x64\xcc\x65\xcc\x66\xcc\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a000 */ "\x6f\x75\x6f\x76\x6f\x77\x6f\x78\x6f\x79\x6f\x7a\x6f\x7b\x6f\x7c\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x84\x6f\x85\x6f\x86\x6f\x87\x6f\x88\x6f\x89\x6f\x8a\x6f\x8b\x6f\x8c\x6f\x8d\x6f\x8e\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9c\x6f\x9d\x6f\x9e\x6f\x9f\x6f\xa0\x6f\xa1\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa7\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb3\x6f\xb4\x6f\xb5\x6f\xb6\x6f\xb7\x6f\xb8\x6f\xb9\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc0\x6f\xc1\x6f\xc2\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xc9\x6f\xca\x6f\xcb\x6f\xcc\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd1\x6f\xd2\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xde\x6f\xdf\x6f\xe0\x6f\xe1\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea\x6f\xeb\x6f\xec\x6f\xed\x6f\xee\x6f\xef\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4", /* a080 */ "\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4c\x70\x4d\x70\x4e\x70\x4f\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5e\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6b\x70\x6c\x70\x6d\x70\x6e\x70\x6f\x70\x70\x70\x71\x70\x72\x70\x73\x70\x74\x70\x75\x70\x76\x70\x77\x70\x78\x70\x79\x70\x7a\x70\x7b\x70\x7c\x70\x7d\x70\x7e\x70\x7f\x70\x80\x70\x81\x70\x82\x70\x83\x70\x84\x70\x85\x70\x86\x70\x87\x70\x88\x70\x89\x70\x8a\x70\x8b\x70\x8c\x70\x8d\x70\x8e\x70\x8f\x70\x90\x70\x91\x70\x92\x70\x93\x70\x94\x70\x95\x70\x96\x70\x97\x70\x98\x70\x99\x70\x9a\x70\x9b\x70\x9c\x70\x9d\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xab\x70\xac\x70\xad\x70\xae\x70\xaf\x70\xb0\x70\xb1\x70\xb2\x70\xb3\x70\xb4\x70\xb5\x70\xb6", /* a100 */ "\x70\xb7\x70\xb8\x70\xb9\x70\xba\x70\xbb\x70\xbc\x70\xbd\x70\xbe\x70\xbf\x70\xc0\x70\xc1\x70\xc2\x70\xc3\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc8\x70\xc9\x70\xca\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xd8\x70\xd9\x70\xda\x70\xdb\x70\xdc\x70\xdd\x70\xde\x70\xdf\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe4\x70\xe5\x70\xe6\x70\xe7\x70\xe8\x70\xe9\x70\xea\x70\xeb\x70\xec\x70\xed\x70\xee\x70\xef\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf7\x70\xf8\x70\xf9\x70\xfa\x70\xfb\x70\xfc\x70\xfd\x70\xfe\x71\x41\x71\x42\x71\x43\x71\x44\x71\x45\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4a\x71\x4b\x71\x4c\x71\x4d\x71\x4e\x71\x4f\x71\x50\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5c\x71\x5d\x71\x5e\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x64\x71\x65\x71\x66\x71\x67\x71\x68\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6e\x71\x6f\x71\x70\x71\x71\x71\x72\x71\x73\x71\x74\x71\x75\x71\x76\x71\x77\x71\x78", /* a180 */ "\x71\x79\x71\x7a\x71\x7b\x71\x7c\x71\x7d\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x84\x71\x85\x71\x86\x71\x87\x71\x88\x71\x89\x71\x8a\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x8f\x71\x90\x71\x91\x71\x92\x71\x93\x71\x94\x71\x95\x71\x96\x71\x97\x71\x98\x71\x99\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\x9f\x71\xa0\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa8\x71\xa9\x71\xaa\x71\xab\x71\xac\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb3\x71\xb4\x71\xb5\x71\xb6\x71\xb7\x71\xb8\x71\xb9\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc3\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xce\x71\xcf\x71\xd0\x71\xd1\x71\xd2\x71\xd3\x71\xd4\x71\xd5\x71\xd6\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe0\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe5\x71\xe6\x71\xe7\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xee\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8", /* a200 */ "\x71\xf9\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x47\x72\x48\x72\x49\x72\x4a\x72\x4b\x72\x4c\x72\x4d\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x52\x72\x53\x72\x54\x72\x55\x72\x56\x72\x57\x72\x58\x72\x59\x72\x5a\x72\x5b\x72\x5c\x72\x5d\x72\x5e\x72\x5f\x72\x60\x72\x61\x72\x62\x72\x63\x72\x64\x72\x65\x72\x66\x72\x67\x72\x68\x72\x69\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x6e\x72\x6f\x72\x70\x72\x71\x72\x72\x72\x73\x72\x74\x72\x75\x72\x76\x72\x77\x72\x78\x72\x79\x72\x7a\x72\x7b\x72\x7c\x72\x7d\x72\x7e\x72\x7f\x72\x80\x72\x81\x72\x82\x72\x83\x72\x84\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8a\x72\x8b\x72\x8c\x72\x8d\x72\x8e\x72\x8f\x72\x90\x72\x91\x72\x92\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\x9f\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xac\x72\xad\x72\xae\x72\xaf\x72\xb0\x72\xb1\x72\xb2\x72\xb3\x72\xb4\x72\xb5\x72\xb6\x72\xb7\x72\xb8\x72\xb9\x72\xba", /* a280 */ "\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc1\x72\xc2\x72\xc3\x72\xc4\x72\xc5\x72\xc6\x72\xc7\x72\xc8\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcd\x72\xce\x72\xcf\x72\xd0\x72\xd1\x72\xd2\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd7\x72\xd8\x72\xd9\x72\xda\x72\xdb\x72\xdc\x72\xdd\x72\xde\x72\xdf\x72\xe0\x72\xe1\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xe8\x72\xe9\x72\xea\x72\xeb\x72\xec\x72\xed\x72\xee\x72\xef\x72\xf0\x72\xf1\x72\xf2\x72\xf3\x72\xf4\x72\xf5\x72\xf6\x72\xf7\x72\xf8\x72\xf9\x72\xfa\x72\xfb\x72\xfc\x72\xfd\x72\xfe\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4d\x73\x4e\x73\x4f\x73\x50\x73\x51\x73\x52\x73\x53\x73\x54\x73\x55\x73\x56\x73\x57\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x60\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6c\x73\x6d\x73\x6e\x73\x6f\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c", /* a300 */ "\x73\x7d\x73\x7e\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x84\x73\x85\x73\x86\x73\x87\x73\x88\x73\x89\x73\x8a\x73\x8b\x73\x8c\x73\x8d\x73\x8e\x73\x8f\x73\x90\x73\x91\x73\x92\x73\x93\x73\x94\x73\x95\x73\x96\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9b\x73\x9c\x73\x9d\x73\x9e\x73\x9f\x73\xa0\x73\xa1\x73\xa2\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xa9\x73\xaa\x73\xab\x73\xac\x73\xad\x73\xae\x73\xaf\x73\xb0\x73\xb1\x73\xb2\x73\xb3\x73\xb4\x73\xb5\x73\xb6\x73\xb7\x73\xb8\x73\xb9\x73\xba\x73\xbb\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc0\x73\xc1\x73\xc2\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xc8\x73\xc9\x73\xca\x73\xcb\x73\xcc\x73\xcd\x73\xce\x73\xcf\x73\xd0\x73\xd1\x73\xd2\x73\xd3\x73\xd4\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xd9\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xde\x73\xdf\x73\xe0\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe5\x73\xe6\x73\xe7\x73\xe8\x73\xe9\x73\xea\x73\xeb\x73\xec\x73\xed\x73\xee\x73\xef\x73\xf0\x73\xf1\x73\xf2\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc", /* a380 */ "\x73\xfd\x73\xfe\x74\x41\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x55\x74\x56\x74\x57\x74\x58\x74\x59\x74\x5a\x74\x5b\x74\x5c\x74\x5d\x74\x5e\x74\x5f\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6d\x74\x6e\x74\x6f\x74\x70\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x76\x74\x77\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7e\x74\x7f\x74\x80\x74\x81\x74\x82\x74\x83\x74\x84\x74\x85\x74\x86\x74\x87\x74\x88\x74\x89\x74\x8a\x74\x8b\x74\x8c\x74\x8d\x74\x8e\x74\x8f\x74\x90\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96\x74\x97\x74\x98\x74\x99\x74\x9a\x74\x9b\x74\x9c\x74\x9d\x74\x9e\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xa7\x74\xa8\x74\xa9\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xba\x74\xbb\x74\xbc\x74\xbd\x74\xbe", /* a400 */ "\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd2\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdc\x74\xdd\x74\xde\x74\xdf\x74\xe0\x74\xe1\x74\xe2\x74\xe3\x74\xe4\x74\xe5\x74\xe6\x74\xe7\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xee\x74\xef\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf4\x74\xf5\x74\xf6\x74\xf7\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x41\x75\x42\x75\x43\x75\x44\x75\x45\x75\x46\x75\x47\x75\x48\x75\x49\x75\x4a\x75\x4b\x75\x4c\x75\x4d\x75\x4e\x75\x4f\x75\x50\x75\x51\x75\x52\x75\x53\x75\x54\x75\x55\x75\x56\x75\x57\x75\x58\x75\x59\x75\x5a\x75\x5b\x75\x5c\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x65\x75\x66\x75\x67\x75\x68\x75\x69\x75\x6a\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x72\x75\x73\x75\x74\x75\x75\x75\x76\x75\x77\x75\x78\x75\x79\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x7f\x75\x80", /* a480 */ "\x75\x81\x75\x82\x75\x83\x75\x84\x75\x85\x75\x86\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8b\x75\x8c\x75\x8d\x75\x8e\x75\x8f\x75\x90\x75\x91\x75\x92\x75\x93\x75\x94\x75\x95\x75\x96\x75\x97\x75\x98\x75\x99\x75\x9a\x75\x9b\x75\x9c\x75\x9d\x75\x9e\x75\x9f\x75\xa0\x75\xa1\x75\xa2\x75\xa3\x75\xa4\x75\xa5\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xab\x75\xac\x75\xad\x75\xae\x75\xaf\x75\xb0\x75\xb1\x75\xb2\x75\xb3\x75\xb4\x75\xb5\x75\xb6\x75\xb7\x75\xb8\x75\xb9\x75\xba\x75\xbb\x75\xbc\x75\xbd\x75\xbe\x75\xbf\x75\xc0\x75\xc1\x75\xc2\x75\xc3\x75\xc4\x75\xc5\x75\xc6\x75\xc7\x75\xc8\x75\xc9\x75\xca\x75\xcb\x75\xcc\x75\xcd\x75\xce\x75\xcf\x75\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* a500 */ NULL, /* a580 */ NULL, /* a600 */ NULL, /* a680 */ NULL, /* a700 */ NULL, /* a780 */ NULL, /* a800 */ NULL, /* a880 */ NULL, /* a900 */ NULL, /* a980 */ NULL, /* aa00 */ NULL, /* aa80 */ NULL, /* ab00 */ NULL, /* ab80 */ NULL, /* ac00 */ NULL, /* ac80 */ NULL, /* ad00 */ NULL, /* ad80 */ NULL, /* ae00 */ NULL, /* ae80 */ NULL, /* af00 */ NULL, /* af80 */ NULL, /* b000 */ NULL, /* b080 */ NULL, /* b100 */ NULL, /* b180 */ NULL, /* b200 */ NULL, /* b280 */ NULL, /* b300 */ NULL, /* b380 */ NULL, /* b400 */ NULL, /* b480 */ NULL, /* b500 */ NULL, /* b580 */ NULL, /* b600 */ NULL, /* b680 */ NULL, /* b700 */ NULL, /* b780 */ NULL, /* b800 */ NULL, /* b880 */ NULL, /* b900 */ NULL, /* b980 */ NULL, /* ba00 */ NULL, /* ba80 */ NULL, /* bb00 */ NULL, /* bb80 */ NULL, /* bc00 */ NULL, /* bc80 */ NULL, /* bd00 */ NULL, /* bd80 */ NULL, /* be00 */ NULL, /* be80 */ NULL, /* bf00 */ NULL, /* bf80 */ NULL, /* c000 */ NULL, /* c080 */ NULL, /* c100 */ NULL, /* c180 */ NULL, /* c200 */ NULL, /* c280 */ NULL, /* c300 */ NULL, /* c380 */ NULL, /* c400 */ NULL, /* c480 */ NULL, /* c500 */ NULL, /* c580 */ NULL, /* c600 */ NULL, /* c680 */ NULL, /* c700 */ NULL, /* c780 */ NULL, /* c800 */ NULL, /* c880 */ NULL, /* c900 */ NULL, /* c980 */ NULL, /* ca00 */ NULL, /* ca80 */ NULL, /* cb00 */ NULL, /* cb80 */ NULL, /* cc00 */ NULL, /* cc80 */ NULL, /* cd00 */ NULL, /* cd80 */ NULL, /* ce00 */ NULL, /* ce80 */ NULL, /* cf00 */ NULL, /* cf80 */ NULL, /* d000 */ NULL, /* d080 */ NULL, /* d100 */ NULL, /* d180 */ NULL, /* d200 */ NULL, /* d280 */ NULL, /* d300 */ NULL, /* d380 */ NULL, /* d400 */ NULL, /* d480 */ NULL, /* d500 */ NULL, /* d580 */ NULL, /* d600 */ NULL, /* d680 */ NULL, /* d700 */ NULL, /* d780 */ NULL, /* d800 */ NULL, /* d880 */ NULL, /* d900 */ NULL, /* d980 */ NULL, /* da00 */ NULL, /* da80 */ NULL, /* db00 */ NULL, /* db80 */ NULL, /* dc00 */ NULL, /* dc80 */ NULL, /* dd00 */ NULL, /* dd80 */ NULL, /* de00 */ NULL, /* de80 */ NULL, /* df00 */ NULL, /* df80 */ NULL, /* e000 */ "\x76\x41\x76\x42\x76\x43\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4c\x76\x4d\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x54\x76\x55\x76\x56\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5c\x76\x5d\x76\x5e\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x63\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6b\x76\x6c\x76\x6d\x76\x6e\x76\x6f\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x78\x76\x79\x76\x7a\x76\x7b\x76\x7c\x76\x7d\x76\x7e\x76\x7f\x76\x81\x76\x82\x76\x83\x76\x84\x76\x85\x76\x86\x76\x87\x76\x88\x76\x89\x76\x8a\x76\x8b\x76\x8c\x76\x8d\x76\x8e\x76\x8f\x76\x90\x76\x91\x76\x92\x76\x93\x76\x94\x76\x95\x76\x96\x76\x97\x76\x98\x76\x99\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa4\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xae\x76\xaf\x76\xb0\x76\xb1\x76\xb2\x76\xb3\x76\xb4\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xbf\x76\xc0\x76\xc1", /* e080 */ "\x76\xc2\x76\xc3\x76\xc4\x76\xc5\x76\xc6\x76\xc7\x76\xc8\x76\xc9\x76\xca\x76\xcb\x76\xcc\x76\xcd\x76\xce\x76\xcf\x76\xd0\x76\xd1\x76\xd2\x76\xd3\x76\xd4\x76\xd5\x76\xd6\x76\xd7\x76\xd8\x76\xd9\x76\xda\x76\xdb\x76\xdc\x76\xdd\x76\xde\x76\xdf\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x76\xe4\x76\xe5\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xee\x76\xef\x76\xf0\x76\xf1\x76\xf2\x76\xf3\x76\xf4\x76\xf5\x76\xf6\x76\xf7\x76\xf8\x76\xf9\x76\xfa\x76\xfb\x76\xfc\x76\xfd\x77\x41\x77\x42\x77\x43\x77\x44\x77\x45\x77\x46\x77\x47\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x50\x77\x51\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5a\x77\x5b\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x61\x77\x62\x77\x63\x77\x64\x77\x65\x77\x66\x77\x67\x77\x68\x77\x69\x77\x6a\x77\x6b\x77\x6c\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x79\x77\x7a\x77\x7b\x77\x7c\x77\x7d\x77\x7e\x77\x7f\x77\x81\x77\x82\x77\x83\x77\x84\x77\x85", /* e100 */ "\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8c\x77\x8d\x77\x8e\x77\x8f\x77\x90\x77\x91\x77\x92\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\x9f\x77\xa0\x77\xa1\x77\xa2\x77\xa3\x77\xa4\x77\xa5\x77\xa6\x77\xa7\x77\xa8\x77\xa9\x77\xaa\x77\xab\x77\xac\x77\xad\x77\xae\x77\xaf\x77\xb0\x77\xb1\x77\xb2\x77\xb3\x77\xb4\x77\xb5\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbb\x77\xbc\x77\xbd\x77\xbe\x77\xbf\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xcd\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd7\x77\xd8\x77\xd9\x77\xda\x77\xdb\x77\xdc\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe2\x77\xe3\x77\xe4\x77\xe5\x77\xe6\x77\xe7\x77\xe8\x77\xe9\x77\xea\x77\xeb\x77\xec\x77\xed\x77\xee\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf3\x77\xf4\x77\xf5\x77\xf6\x77\xf7\x77\xf8\x77\xf9\x77\xfa\x77\xfb\x77\xfc\x77\xfd\x78\x41\x78\x42\x78\x43\x78\x44\x78\x45\x78\x46\x78\x47\x78\x48", /* e180 */ "\x78\x49\x78\x4a\x78\x4b\x78\x4c\x78\x4d\x78\x4e\x78\x4f\x78\x50\x78\x51\x78\x52\x78\x53\x78\x54\x78\x55\x78\x56\x78\x57\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5d\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67\x78\x68\x78\x69\x78\x6a\x78\x6b\x78\x6c\x78\x6d\x78\x6e\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x77\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7c\x78\x7d\x78\x7e\x78\x7f\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x87\x78\x88\x78\x89\x78\x8a\x78\x8b\x78\x8c\x78\x8d\x78\x8e\x78\x8f\x78\x90\x78\x91\x78\x92\x78\x93\x78\x94\x78\x95\x78\x96\x78\x97\x78\x98\x78\x99\x78\x9a\x78\x9b\x78\x9c\x78\x9d\x78\x9e\x78\x9f\x78\xa0\x78\xa1\x78\xa2\x78\xa3\x78\xa4\x78\xa5\x78\xa6\x78\xa7\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb0\x78\xb1\x78\xb2\x78\xb3\x78\xb4\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xb9\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbe\x78\xbf\x78\xc0\x78\xc1\x78\xc2\x78\xc3\x78\xc4\x78\xc5\x78\xc6\x78\xc7\x78\xc8\x78\xc9", /* e200 */ "\x78\xca\x78\xcb\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd0\x78\xd1\x78\xd2\x78\xd3\x78\xd4\x78\xd5\x78\xd6\x78\xd7\x78\xd8\x78\xd9\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe8\x78\xe9\x78\xea\x78\xeb\x78\xec\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf2\x78\xf3\x78\xf4\x78\xf5\x78\xf6\x78\xf7\x78\xf8\x78\xf9\x78\xfa\x78\xfb\x78\xfc\x78\xfd\x79\x41\x79\x42\x79\x43\x79\x44\x79\x45\x79\x46\x79\x47\x79\x48\x79\x49\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x53\x79\x54\x79\x55\x79\x56\x79\x57\x79\x58\x79\x59\x79\x5a\x79\x5b\x79\x5c\x79\x5d\x79\x5e\x79\x5f\x79\x60\x79\x61\x79\x62\x79\x63\x79\x64\x79\x65\x79\x66\x79\x67\x79\x68\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6d\x79\x6e\x79\x6f\x79\x70\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x77\x79\x78\x79\x79\x79\x7a\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x81\x79\x82\x79\x83\x79\x84\x79\x85\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8a\x79\x8b\x79\x8c\x79\x8d", /* e280 */ "\x79\x8e\x79\x8f\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9a\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa7\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb3\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xb9\x79\xba\x79\xbb\x79\xbc\x79\xbd\x79\xbe\x79\xbf\x79\xc0\x79\xc1\x79\xc2\x79\xc3\x79\xc4\x79\xc5\x79\xc6\x79\xc7\x79\xc8\x79\xc9\x79\xca\x79\xcb\x79\xcc\x79\xcd\x79\xce\x79\xcf\x79\xd0\x79\xd1\x79\xd2\x79\xd3\x79\xd4\x79\xd5\x79\xd6\x79\xd7\x79\xd8\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xdf\x79\xe0\x79\xe1\x79\xe2\x79\xe3\x79\xe4\x79\xe5\x79\xe6\x79\xe7\x79\xe8\x79\xe9\x79\xea\x79\xeb\x79\xec\x79\xed\x79\xee\x79\xef\x79\xf0\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf8\x79\xf9\x79\xfa\x79\xfb\x79\xfc\x79\xfd\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x46\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50", /* e300 */ "\x7a\x51\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x57\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x70\x7a\x71\x7a\x72\x7a\x73\x7a\x74\x7a\x75\x7a\x76\x7a\x77\x7a\x78\x7a\x79\x7a\x7a\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x7f\x7a\x81\x7a\x82\x7a\x83\x7a\x84\x7a\x85\x7a\x86\x7a\x87\x7a\x88\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8d\x7a\x8e\x7a\x8f\x7a\x90\x7a\x91\x7a\x92\x7a\x93\x7a\x94\x7a\x95\x7a\x96\x7a\x97\x7a\x98\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9c\x7a\x9d\x7a\x9e\x7a\x9f\x7a\xa0\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa5\x7a\xa6\x7a\xa7\x7a\xa8\x7a\xa9\x7a\xaa\x7a\xab\x7a\xac\x7a\xad\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb3\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xbf\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcb\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1", /* e380 */ "\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd6\x7a\xd7\x7a\xd8\x7a\xd9\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xde\x7a\xdf\x7a\xe0\x7a\xe1\x7a\xe2\x7a\xe3\x7a\xe4\x7a\xe5\x7a\xe6\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xed\x7a\xee\x7a\xef\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xf9\x7a\xfa\x7a\xfb\x7a\xfc\x7a\xfd\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x45\x7b\x46\x7b\x47\x7b\x48\x7b\x49\x7b\x4a\x7b\x4b\x7b\x4c\x7b\x4d\x7b\x4e\x7b\x4f\x7b\x50\x7b\x51\x7b\x52\x7b\x53\x7b\x54\x7b\x55\x7b\x56\x7b\x57\x7b\x58\x7b\x59\x7b\x5a\x7b\x5b\x7b\x5c\x7b\x5d\x7b\x5e\x7b\x5f\x7b\x60\x7b\x61\x7b\x62\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6e\x7b\x6f\x7b\x70\x7b\x71\x7b\x72\x7b\x73\x7b\x74\x7b\x75\x7b\x76\x7b\x77\x7b\x78\x7b\x79\x7b\x7a\x7b\x7b\x7b\x7c\x7b\x7d\x7b\x7e\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x85\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8d\x7b\x8e\x7b\x8f\x7b\x90\x7b\x91\x7b\x92\x7b\x93\x7b\x94\x7b\x95", /* e400 */ "\x7b\x96\x7b\x97\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9c\x7b\x9d\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa1\x7b\xa2\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xa6\x7b\xa7\x7b\xa8\x7b\xa9\x7b\xaa\x7b\xab\x7b\xac\x7b\xad\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb1\x7b\xb2\x7b\xb3\x7b\xb4\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb8\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc1\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc6\x7b\xc7\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcc\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd1\x7b\xd2\x7b\xd3\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xd9\x7b\xda\x7b\xdb\x7b\xdc\x7b\xdd\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe1\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe5\x7b\xe6\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xea\x7b\xeb\x7b\xec\x7b\xed\x7b\xee\x7b\xef\x7b\xf0\x7b\xf1\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf7\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfc\x7b\xfd\x7c\x41\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4d\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58", /* e480 */ "\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x73\x7c\x74\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7b\x7c\x7c\x7c\x7d\x7c\x7e\x7c\x7f\x7c\x81\x7c\x82\x7c\x83\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x89\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x91\x7c\x92\x7c\x93\x7c\x94\x7c\x95\x7c\x96\x7c\x97\x7c\x98\x7c\x99\x7c\x9a\x7c\x9b\x7c\x9c\x7c\x9d\x7c\x9e\x7c\x9f\x7c\xa0\x7c\xa1\x7c\xa2\x7c\xa3\x7c\xa4\x7c\xa5\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xaa\x7c\xab\x7c\xac\x7c\xad\x7c\xae\x7c\xaf\x7c\xb0\x7c\xb1\x7c\xb2\x7c\xb3\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xb9\x7c\xba\x7c\xbb\x7c\xbc\x7c\xbd\x7c\xbe\x7c\xbf\x7c\xc0\x7c\xc1\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc5\x7c\xc6\x7c\xc7\x7c\xc8\x7c\xc9\x7c\xca\x7c\xcb\x7c\xcc\x7c\xcd\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd5\x7c\xd6\x7c\xd7\x7c\xd8\x7c\xd9", /* e500 */ "\x7c\xda\x7c\xdb\x7c\xdc\x7c\xdd\x7c\xde\x7c\xdf\x7c\xe0\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe8\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xef\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf8\x7c\xf9\x7c\xfa\x7c\xfb\x7c\xfc\x7c\xfd\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d\x7d\x6e\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x77\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d", /* e580 */ "\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa6\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xae\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7e\x41\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x47\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60", /* e600 */ "\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x81\x7e\x82\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9b\x7e\x9c\x7e\x9d\x7e\x9e\x7e\x9f\x7e\xa0\x7e\xa1\x7e\xa2\x7e\xa3\x7e\xa4\x7e\xa5\x7e\xa6\x7e\xa7\x7e\xa8\x7e\xa9\x7e\xaa\x7e\xab\x7e\xac\x7e\xad\x7e\xae\x7e\xaf\x7e\xb0\x7e\xb1\x7e\xb2\x7e\xb3\x7e\xb4\x7e\xb5\x7e\xb6\x7e\xb7\x7e\xb8\x7e\xb9\x7e\xba\x7e\xbb\x7e\xbc\x7e\xbd\x7e\xbe\x7e\xbf\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc3\x7e\xc4\x7e\xc5\x7e\xc6\x7e\xc7\x7e\xc8\x7e\xc9\x7e\xca\x7e\xcb\x7e\xcc\x7e\xcd\x7e\xce\x7e\xcf\x7e\xd0\x7e\xd1\x7e\xd2\x7e\xd3\x7e\xd4\x7e\xd5\x7e\xd6\x7e\xd7\x7e\xd8\x7e\xd9\x7e\xda\x7e\xdb\x7e\xdc\x7e\xdd\x7e\xde\x7e\xdf\x7e\xe0\x7e\xe1", /* e680 */ "\x7e\xe2\x7e\xe3\x7e\xe4\x7e\xe5\x7e\xe6\x7e\xe7\x7e\xe8\x7e\xe9\x7e\xea\x7e\xeb\x7e\xec\x7e\xed\x7e\xee\x7e\xef\x7e\xf0\x7e\xf1\x7e\xf2\x7e\xf3\x7e\xf4\x7e\xf5\x7e\xf6\x7e\xf7\x7e\xf8\x7e\xf9\x7e\xfa\x7e\xfb\x7e\xfc\x7e\xfd\x7f\x41\x7f\x42\x7f\x43\x7f\x44\x7f\x45\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x50\x7f\x51\x7f\x52\x7f\x53\x7f\x54\x7f\x55\x7f\x56\x7f\x57\x7f\x58\x7f\x59\x7f\x5a\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x5f\x7f\x60\x7f\x61\x7f\x62\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x68\x7f\x69\x7f\x6a\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6e\x7f\x6f\x7f\x70\x7f\x71\x7f\x72\x7f\x73\x7f\x74\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x79\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7e\x7f\x7f\x7f\x81\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8a\x7f\x8b\x7f\x8c\x7f\x8d\x7f\x8e\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x94\x7f\x95\x7f\x96\x7f\x97\x7f\x98\x7f\x99\x7f\x9a\x7f\x9b\x7f\x9c\x7f\x9d\x7f\x9e\x7f\x9f\x7f\xa0\x7f\xa1\x7f\xa2\x7f\xa3\x7f\xa4\x7f\xa5", /* e700 */ "\x7f\xa6\x7f\xa7\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xaf\x7f\xb0\x7f\xb1\x7f\xb2\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xb8\x7f\xb9\x7f\xba\x7f\xbb\x7f\xbc\x7f\xbd\x7f\xbe\x7f\xbf\x7f\xc0\x7f\xc1\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc5\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xca\x7f\xcb\x7f\xcc\x7f\xcd\x7f\xce\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd4\x7f\xd5\x7f\xd6\x7f\xd7\x7f\xd8\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xdf\x7f\xe0\x7f\xe1\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe5\x7f\xe6\x7f\xe7\x7f\xe8\x7f\xe9\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xee\x7f\xef\x7f\xf0\x7f\xf1\x7f\xf2\x7f\xf3\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfb\x7f\xfc\x7f\xfd\x80\x41\x80\x42\x80\x43\x80\x44\x80\x45\x80\x46\x80\x47\x80\x48\x80\x49\x80\x4a\x80\x4b\x80\x4c\x80\x4d\x80\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e780 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x90\xfc\x91\xfc\x92\xfc\x93\xfc\x94\xfc\x95\xfc\x96\xfc\x97\xfc\x98\xfc\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x57\xce\x58\xce\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x5f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x67\x00\x00\x00\x00\x00\x00\x00\x00\xce\x6c\xce\x6d\x00\x00\x00\x00\x00\x00\x00\x00\xce\x72\xce\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x96\xce\x97\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\xa6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* e880 */ NULL, /* e900 */ NULL, /* e980 */ NULL, /* ea00 */ NULL, /* ea80 */ NULL, /* eb00 */ NULL, /* eb80 */ NULL, /* ec00 */ NULL, /* ec80 */ NULL, /* ed00 */ NULL, /* ed80 */ NULL, /* ee00 */ NULL, /* ee80 */ NULL, /* ef00 */ NULL, /* ef80 */ NULL, /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ NULL, /* f680 */ NULL, /* f700 */ NULL, /* f780 */ NULL, /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x5b\x44\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f880 */ NULL, /* f900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f980 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x46\xce\x47\xce\x48\xce\x49\x00\x00\xce\x4a\x00\x00\xce\x4b\xce\x4c\x00\x00\x00\x00\x00\x00\xce\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x4e\xce\x4f\xce\x50\x00\x00\xce\x51\xce\x52\x00\x00\x00\x00\xce\x53\xce\x54\xce\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fa80 */ NULL, /* fb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x47\xf8\x48\xf8\x49\xf8\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x6b\xf8\x6c\xf8\x6d\xf8\x6e\x00\x00\x00\x00", /* fb80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x7f\xf8\x80\xf8\x81\xf8\x82\xf8\x83\xf8\x84\xf8\x85\xf8\x86\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x9b\xf8\x9c\xf8\x9d\xf8\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xc4\xf8\xc5\xf8\xc6\xf8\xc7\xf8\xc8\xf8\xc9\xf8\xca\xf8\xcb\xf8\xcc\xf8\xcd\xf8\xce\xf8\xcf\xf8\xd0\xf8\xd1\xf8\xd2\xf8\xd3\xf8\xd4\xf8\xd5\xf8\xd6\xf8\xd7\xf8\xd8\xf8\xd9\xf8\xda\xf8\xdb\xf8\xdc\xf8\xdd\xf8\xde\xf8\xdf\xf8\xe0\xf8\xe1\xf8\xe2\xf8\xe3\xf8\xe4\xf8\xe5\xf8\xe6\xf8\xe7\xf8\xe8\xf8\xe9\xf8\xea\xf8\xeb\xf8\xec\xf8\xed\xf8\xee\xf8\xef\xf8\xf0", /* fc00 */ NULL, /* fc80 */ NULL, /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa8\x47\x51\x00\x00\x47\x52\x47\x53\x47\x41\x47\x42\x47\x4f\x47\x50\x47\x43\x47\x44\x47\x4d\x47\x4e\x47\x47\x47\x48\x47\x45\x47\x46\x47\x49\x47\x4a\x47\x4b\x47\x4c\x00\x00\x00\x00\x00\x00\x00\x00\xcd\xa9\xcd\xaa\xcd\xab\xcd\xac\xcd\xad\xcd\xae\xcd\xaf\xcd\xb0\xcd\xb1\xcd\xb2\x00\x00\xcd\xb3\xcd\xb4\xcd\xb5\xcd\xb6\x00\x00\xcd\xb7\xcd\xb8\xcd\xb9\xcd\xba\xcd\xbb\xcd\xbc\xcd\xbd\xcd\xbe\xcd\xbf\xcd\xc0\xcd\xc1\xcd\xc2\xcd\xc3\xcd\xc4\x00\x00\xcd\xc5\xcd\xc6\xcd\xc7\xcd\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fe80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xd0\xfb\xd1\xfb\xd2\xfb\xd3\xfb\xd4\xfb\xd5\xfb\xd6\xfb\xd7\xfb\xd8\xfb\xd9\x00\x00\x00\x00\xfb\xdc\xfb\xdd\xfb\xde\xfb\xdf\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xe4\xfb\xe5\xfb\xe6\xfb\xe7\xfb\xe8\xfb\xe9\xfb\xea\xfb\xeb\xfb\xec\xfb\xed\xfb\xee\xfb\xef\xfb\xf0\xfb\xf1\x00\x00\x00\x00\xfb\xf4\xfb\xf5\xfb\xf6\xfb\xf7\xfb\xf8\xfb\xf9\xfb\xfa\xfb\xfb\xfb\xfc\xfb\xfd\xfb\xfe\xfc\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x52\xfc\x53\xfc\x54\xfc\x55\xfc\x56\xfc\x57\xfc\x58\xfc\x59\xfc\x5a\xfc\x5b\xfc\x5c\xfc\x5d\xfc\x5e\xfc\x5f\xfc\x60\xfc\x61\xfc\x62\xfc\x63\xfc\x64\xfc\x65\xfc\x66\xfc\x67\xfc\x68\xfc\x69\xfc\x6a\xfc\x6b\xfc\x6c\xfc\x6d\xfc\x6e\xfc\x6f\xfc\x70\xfc\x71\xfc\x72\xfc\x73\xfc\x74\xfc\x75\xfc\x76\xfc\x77\xfc\x78\xfc\x79\xfc\x7a\xfc\x7b\xfc\x7c\xfc\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x84\xfc\x85\x00\x00\x00\x00\x00\x00", /* ff00 */ "\x00\x00\x42\x5a\x42\x7f\x42\x7b\x42\xe0\x42\x6c\x42\x50\x42\x7d\x42\x4d\x42\x5d\x42\x5c\x42\x4e\x42\x6b\x42\x60\x42\x4b\x42\x61\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\x7a\x42\x5e\x42\x4c\x42\x7e\x42\x6e\x42\x6f\x42\x7c\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x42\xe8\x42\xe9\x44\x44\x43\xe0\x44\x45\x44\x70\x42\x6d\x42\x79\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xc0\x42\x4f\x42\xd0\x43\xa1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ff80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x4a\x42\x4a\x42\x5f\x42\xa1\x42\x6a\x42\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" }, /* EBCDIC DBCS to Unicode translation table for ibm-1388_P103-2001 */ { /* 0000 */ NULL, /* 0080 */ NULL, /* 0100 */ NULL, /* 0180 */ NULL, /* 0200 */ NULL, /* 0280 */ NULL, /* 0300 */ NULL, /* 0380 */ NULL, /* 0400 */ NULL, /* 0480 */ NULL, /* 0500 */ NULL, /* 0580 */ NULL, /* 0600 */ NULL, /* 0680 */ NULL, /* 0700 */ NULL, /* 0780 */ NULL, /* 0800 */ NULL, /* 0880 */ NULL, /* 0900 */ NULL, /* 0980 */ NULL, /* 0a00 */ NULL, /* 0a80 */ NULL, /* 0b00 */ NULL, /* 0b80 */ NULL, /* 0c00 */ NULL, /* 0c80 */ NULL, /* 0d00 */ NULL, /* 0d80 */ NULL, /* 0e00 */ NULL, /* 0e80 */ NULL, /* 0f00 */ NULL, /* 0f80 */ NULL, /* 1000 */ NULL, /* 1080 */ NULL, /* 1100 */ NULL, /* 1180 */ NULL, /* 1200 */ NULL, /* 1280 */ NULL, /* 1300 */ NULL, /* 1380 */ NULL, /* 1400 */ NULL, /* 1480 */ NULL, /* 1500 */ NULL, /* 1580 */ NULL, /* 1600 */ NULL, /* 1680 */ NULL, /* 1700 */ NULL, /* 1780 */ NULL, /* 1800 */ NULL, /* 1880 */ NULL, /* 1900 */ NULL, /* 1980 */ NULL, /* 1a00 */ NULL, /* 1a80 */ NULL, /* 1b00 */ NULL, /* 1b80 */ NULL, /* 1c00 */ NULL, /* 1c80 */ NULL, /* 1d00 */ NULL, /* 1d80 */ NULL, /* 1e00 */ NULL, /* 1e80 */ NULL, /* 1f00 */ NULL, /* 1f80 */ NULL, /* 2000 */ NULL, /* 2080 */ NULL, /* 2100 */ NULL, /* 2180 */ NULL, /* 2200 */ NULL, /* 2280 */ NULL, /* 2300 */ NULL, /* 2380 */ NULL, /* 2400 */ NULL, /* 2480 */ NULL, /* 2500 */ NULL, /* 2580 */ NULL, /* 2600 */ NULL, /* 2680 */ NULL, /* 2700 */ NULL, /* 2780 */ NULL, /* 2800 */ NULL, /* 2880 */ NULL, /* 2900 */ NULL, /* 2980 */ NULL, /* 2a00 */ NULL, /* 2a80 */ NULL, /* 2b00 */ NULL, /* 2b80 */ NULL, /* 2c00 */ NULL, /* 2c80 */ NULL, /* 2d00 */ NULL, /* 2d80 */ NULL, /* 2e00 */ NULL, /* 2e80 */ NULL, /* 2f00 */ NULL, /* 2f80 */ NULL, /* 3000 */ NULL, /* 3080 */ NULL, /* 3100 */ NULL, /* 3180 */ NULL, /* 3200 */ NULL, /* 3280 */ NULL, /* 3300 */ NULL, /* 3380 */ NULL, /* 3400 */ NULL, /* 3480 */ NULL, /* 3500 */ NULL, /* 3580 */ NULL, /* 3600 */ NULL, /* 3680 */ NULL, /* 3700 */ NULL, /* 3780 */ NULL, /* 3800 */ NULL, /* 3880 */ NULL, /* 3900 */ NULL, /* 3980 */ NULL, /* 3a00 */ NULL, /* 3a80 */ NULL, /* 3b00 */ NULL, /* 3b80 */ NULL, /* 3c00 */ NULL, /* 3c80 */ NULL, /* 3d00 */ NULL, /* 3d80 */ NULL, /* 3e00 */ NULL, /* 3e80 */ NULL, /* 3f00 */ NULL, /* 3f80 */ NULL, /* 4000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4080 */ NULL, /* 4100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xb1\x03\xb2\x03\xb3\x03\xb4\x03\xb5\x03\xb6\x03\xb7\x03\xb8\x03\xb9\x03\xba\x03\xbb\x03\xbc\x03\xbd\x03\xbe\x03\xbf\x03\xc0\x03\xc1\x03\xc3\x03\xc4\x03\xc5\x03\xc6\x03\xc7\x03\xc8\x03\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x91\x03\x92\x03\x93\x03\x94\x03\x95\x03\x96\x03\x97\x03\x98\x03\x99\x03\x9a\x03\x9b\x03\x9c\x03\x9d\x03\x9e\x03\x9f\x03\xa0\x03\xa1\x03\xa3\x03\xa4\x03\xa5\x03\xa6\x03\xa7\x03\xa8\x03\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4180 */ "\x04\x30\x04\x31\x04\x32\x04\x33\x04\x34\x04\x35\x04\x51\x04\x36\x04\x37\x04\x38\x04\x39\x04\x3a\x04\x3b\x04\x3c\x04\x3d\x04\x3e\x04\x3f\x04\x40\x04\x41\x04\x42\x04\x43\x04\x44\x04\x45\x04\x46\x04\x47\x04\x48\x04\x49\x04\x4a\x04\x4b\x04\x4c\x04\x4d\x04\x4e\x04\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x70\x21\x71\x21\x72\x21\x73\x21\x74\x21\x75\x21\x76\x21\x77\x21\x78\x21\x79\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x10\x04\x11\x04\x12\x04\x13\x04\x14\x04\x15\x04\x01\x04\x16\x04\x17\x04\x18\x04\x19\x04\x1a\x04\x1b\x04\x1c\x04\x1d\x04\x1e\x04\x1f\x04\x20\x04\x21\x04\x22\x04\x23\x04\x24\x04\x25\x04\x26\x04\x27\x04\x28\x04\x29\x04\x2a\x04\x2b\x04\x2c\x04\x2d\x04\x2e\x04\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x60\x21\x61\x21\x62\x21\x63\x21\x64\x21\x65\x21\x66\x21\x67\x21\x68\x21\x69\x21\x6a\x21\x6b\x00\x00\x00\x00\x00\x00", /* 4200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe1\xff\x0e\xff\x1c\xff\x08\xff\x0b\xff\x5c\xff\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x01\xff\xe5\xff\x0a\xff\x09\xff\x1b\xff\xe2\xff\x0d\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe4\xff\x0c\xff\x05\xff\x3f\xff\x1e\xff\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x40\xff\x1a\xff\x03\xff\x20\xff\x07\xff\x1d\xff\x02", /* 4280 */ "\x00\x00\xff\x41\xff\x42\xff\x43\xff\x44\xff\x45\xff\x46\xff\x47\xff\x48\xff\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x4a\xff\x4b\xff\x4c\xff\x4d\xff\x4e\xff\x4f\xff\x50\xff\x51\xff\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xe3\xff\x53\xff\x54\xff\x55\xff\x56\xff\x57\xff\x58\xff\x59\xff\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5b\xff\x21\xff\x22\xff\x23\xff\x24\xff\x25\xff\x26\xff\x27\xff\x28\xff\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x5d\xff\x2a\xff\x2b\xff\x2c\xff\x2d\xff\x2e\xff\x2f\xff\x30\xff\x31\xff\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x04\x00\x00\xff\x33\xff\x34\xff\x35\xff\x36\xff\x37\xff\x38\xff\x39\xff\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x10\xff\x11\xff\x12\xff\x13\xff\x14\xff\x15\xff\x16\xff\x17\xff\x18\xff\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x02\x30\x0c\x30\x0d\x30\x01\x30\xfb\x30\xf2\x30\xa1\x30\xa3\x30\xa5\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xa7\x30\xa9\x30\xe3\x30\xe5\x30\xe7\x30\xc3\x30\xee\x30\xfc\x30\xf5\x30\xf6\xf8\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4380 */ "\x00\x00\x30\xa2\x30\xa4\x30\xa6\x30\xa8\x30\xaa\x30\xab\x30\xad\x30\xaf\x30\xb1\x30\xb3\x00\x00\x30\xb5\x30\xb7\x30\xb9\x30\xbb\x30\xbd\x30\xbf\x30\xc1\x30\xc4\x30\xc6\x30\xc8\x30\xca\x30\xcb\x30\xcc\x30\xcd\x30\xce\x00\x00\x00\x00\x30\xcf\x30\xd2\x30\xd5\x00\x00\xff\x5e\x30\xd8\x30\xdb\x30\xde\x30\xdf\x30\xe0\x30\xe1\x30\xe2\x30\xe4\x30\xe6\x00\x00\x30\xe8\x30\xe9\x30\xea\x30\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\xec\x30\xed\x30\xef\x30\xf3\x30\x9b\x30\x9c\x30\xac\x30\xae\x30\xb0\x30\xb2\x30\xb4\x30\xb6\x30\xb8\x30\xba\x30\xbc\x30\xbe\x30\xc0\x30\xc2\x30\xc5\x30\xc7\x30\xc9\x30\xd0\x30\xd3\x30\xd6\x30\xd9\x30\xdc\x30\xf4\x30\xd1\x30\xd4\x30\xd7\x30\xda\x30\xdd\x30\xf0\x30\xf1\x30\xfd\x30\xfe\x00\x00\x00\x00\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x0e\x30\x0f\xff\x3b\xff\x3d\x30\x92\x30\x41\x30\x43\x30\x45\x20\x15\x00\xb1\x22\x60\x22\x1e\x21\x03\x00\x00\x00\xb4\x30\x47\x30\x49\x30\x83\x30\x85\x30\x87\x30\x63\x30\x8e\x00\x00\x00\x00\x20\x10\x30\x03\xf8\x3e\x30\x05\x30\x06\x30\x07\x00\xa8\x20\x18\x20\x1c\x30\x14\x30\x08\x30\x0a\x30\x10\x22\x64\x22\x34\x26\x42\x00\xa7\x20\x3b\x30\x12\x32\x31\x21\x16\x21\x21\xff\x3e\x20\x19\x20\x1d\x30\x15\x30\x09\x30\x0b\x30\x11\x22\x65\x22\x35\x26\x40\x00\xd7\x00\xf7\x20\x16\x30\x13\x20\x25\x20\x26", /* 4480 */ "\x00\x00\x30\x42\x30\x44\x30\x46\x30\x48\x30\x4a\x30\x4b\x30\x4d\x30\x4f\x30\x51\x30\x53\x00\x00\x30\x55\x30\x57\x30\x59\x30\x5b\x30\x5d\x30\x5f\x30\x61\x30\x64\x30\x66\x30\x68\x30\x6a\x30\x6b\x30\x6c\x30\x6d\x30\x6e\x00\x00\x00\x00\x30\x6f\x30\x72\x30\x75\x00\x00\x00\x00\x30\x78\x30\x7b\x30\x7e\x30\x7f\x30\x80\x30\x81\x30\x82\x30\x84\x30\x86\x00\x00\x30\x88\x30\x89\x30\x8a\x30\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x8c\x30\x8d\x30\x8f\x30\x93\x00\x00\x00\x00\x30\x4c\x30\x4e\x30\x50\x30\x52\x30\x54\x30\x56\x30\x58\x30\x5a\x30\x5c\x30\x5e\x30\x60\x30\x62\x30\x65\x30\x67\x30\x69\x30\x70\x30\x73\x30\x76\x30\x79\x30\x7c\x00\x00\x30\x71\x30\x74\x30\x77\x30\x7a\x30\x7d\x30\x90\x30\x91\x30\x9d\x30\x9e\x00\x00\x00\x00\x25\xcb\x25\xcf\x25\xb3\x25\xb2\x25\xce\x26\x06\x26\x05\x25\xc7\x25\xc6\x25\xa1\x25\xa0\x25\xbd\x25\xbc\x00\xb0\x20\x32\x20\x33\x21\x92\x21\x90\x21\x91\x21\x93\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xc9\x02\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x16\x30\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x36\x22\x27\x22\x28\x22\x11\x22\x0f\x22\x2a\x22\x29\x22\x08\x22\x37\x22\x1a\x22\xa5\x22\x25\x22\x20\x23\x12\x22\x99\x22\x2b\x22\x2e\x22\x61\x22\x4c\x22\x48\x22\x3d\x22\x1d\x00\x00\x22\x6e\x22\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4580 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x20\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x88\x24\x89\x24\x8a\x24\x8b\x24\x8c\x24\x8d\x24\x8e\x24\x8f\x24\x90\x24\x91\x24\x92\x24\x93\x24\x94\x24\x95\x24\x96\x24\x97\x24\x98\x24\x99\x24\x9a\x24\x9b\x24\x74\x24\x75\x24\x76\x24\x77\x24\x78\x24\x79\x24\x7a\x24\x7b\x24\x7c\x24\x7d\x24\x7e\x24\x7f\x24\x80\x24\x81\x24\x82\x24\x83\x24\x84\x24\x85\x24\x86\x24\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x60\x24\x61\x24\x62\x24\x63\x24\x64\x24\x65\x24\x66\x24\x67\x24\x68\x24\x69\x20\xac\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x20\x32\x21\x32\x22\x32\x23\x32\x24\x32\x25\x32\x26\x32\x27\x32\x28\x32\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xe1\x01\xce\x00\xe0\x01\x13\x00\xe9\x01\x1b\x00\xe8\x01\x2b\x00\xed\x01\xd0\x00\xec\x01\x4d\x00\xf3\x01\xd2\x00\xf2\x01\x6b\x00\xfa\x01\xd4\x00\xf9\x01\xd6\x01\xd8\x01\xda\x01\xdc\x00\xfc\x00\xea\x02\x51\xe7\xc7\x01\x44\x01\x48\x01\xf9\x02\x61\x00\x00\x00\x00\x00\x00\x00\x00\x31\x05\x31\x06\x31\x07\x31\x08\x31\x09\x31\x0a\x31\x0b\x31\x0c\x31\x0d\x31\x0e\x31\x0f\x31\x10\x31\x11\x31\x12\x31\x13\x31\x14\x31\x15\x31\x16\x31\x17\x31\x18\x31\x19\x31\x1a\x31\x1b\x31\x1c\x31\x1d\x31\x1e\x31\x1f", /* 4680 */ "\x31\x20\x31\x21\x31\x22\x31\x23\x31\x24\x31\x25\x31\x26\x31\x27\x31\x28\x31\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x25\x01\x25\x02\x25\x03\x25\x04\x25\x05\x25\x06\x25\x07\x25\x08\x25\x09\x25\x0a\x25\x0b\x25\x0c\x25\x0d\x25\x0e\x25\x0f\x25\x10\x25\x11\x25\x12\x25\x13\x25\x14\x25\x15\x25\x16\x25\x17\x25\x18\x25\x19\x25\x1a\x25\x1b\x25\x1c\x25\x1d\x25\x1e\x25\x1f\x25\x20\x25\x21\x25\x22\x25\x23\x25\x24\x25\x25\x25\x26\x25\x27\x25\x28\x25\x29\x25\x2a\x25\x2b\x25\x2c\x25\x2d\x25\x2e\x25\x2f\x25\x30\x25\x31\x25\x32\x25\x33\x25\x34\x25\x35\x25\x36\x25\x37\x25\x38\x25\x39\x25\x3a\x25\x3b\x25\x3c\x25\x3d\x25\x3e\x25\x3f\x25\x40\x25\x41\x25\x42\x25\x43\x25\x44\x25\x45\x25\x46\x25\x47\x25\x48\x25\x49\x25\x4a\x25\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 4700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x35\xfe\x36\xfe\x39\xfe\x3a\xfe\x3f\xfe\x40\xfe\x3d\xfe\x3e\xfe\x41\xfe\x42\xfe\x43\xfe\x44\xfe\x3b\xfe\x3c\xfe\x37\xfe\x38\xfe\x31\xfe\x33\xfe\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x06\x01\x06\x02\x06\x03\x06\x04\x06\x05\x06\x06\x06\x07\x06\x08\x06\x09\x06\x0a\x06\x0b\x06\x0c\x06\x0d\x06\x0e\x06\x0f\x06\x10\x06\x11\x06\x12\x06\x13\x06\x14\x06\x15\x06\x16\x06\x17\x06\x18\x06\x19\x06\x1a\x06\x1b\x06\x1c\x06\x1d\x06\x1e\x06\x1f\x06\x20\x06\x21\x06\x22", /* 4780 */ "\x06\x23\x06\x24\x06\x25\x06\x26\x06\x27\x06\x28\x06\x29\x06\x2a\x06\x2b\x06\x2c\x06\x2d\x06\x2e\x06\x2f\x06\x30\x06\x31\x06\x32\x06\x33\x06\x34\x06\x35\x06\x36\x06\x37\x06\x38\x06\x39\x06\x3a\x06\x3b\x06\x3c\x06\x3d\x06\x3e\x06\x3f\x06\x40\x06\x41\x06\x42\x06\x43\x06\x44\x06\x45\x06\x46\x06\x47\x06\x48\x06\x49\x06\x4a\x06\x4b\x06\x4c\x06\x4d\x06\x4e\x06\x4f\x06\x50\x06\x51\x06\x52\x06\x53\x06\x54\x06\x55\x06\x56\x06\x57\x06\x58\x06\x59\x06\x5a\x06\x5b\x06\x5c\x06\x5d\x06\x5e\x06\x5f\x06\x60\x06\x61\x06\x62\x06\x63\x06\x64\x06\x65\x06\x66\x06\x67\x06\x68\x06\x69\x06\x6a\x06\x6b\x06\x6c\x06\x6d\x06\x6e\x06\x6f\x06\x70\x06\x71\x06\x72\x06\x73\x06\x74\x06\x75\x06\x76\x06\x77\x06\x78\x06\x79\x06\x7a\x06\x7b\x06\x7c\x06\x7d\x06\x7e\x06\x7f\x06\x80\x06\x81\x06\x82\x06\x83\x06\x84\x06\x85\x06\x86\x06\x87\x06\x88\x06\x89\x06\x8a\x06\x8b\x06\x8c\x06\x8d\x06\x8e\x06\x8f\x06\x90\x06\x91\x06\x92\x06\x93\x06\x94\x06\x95\x06\x96\x06\x97\x06\x98\x06\x99\x06\x9a\x06\x9b\x06\x9c\x06\x9d\x06\x9e\x06\x9f\x06\xa0\x06\xa1\x00\x00", /* 4800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\xa2\x06\xa3\x06\xa4\x06\xa5\x06\xa6\x06\xa7\x06\xa8\x06\xa9\x06\xaa\x06\xab\x06\xac\x06\xad\x06\xae\x06\xaf\x06\xb0\x06\xb1\x06\xb2\x06\xb3\x06\xb4\x06\xb5\x06\xb6\x06\xb7\x06\xb8\x06\xb9\x06\xba\x06\xbb\x06\xbc\x06\xbd\x06\xbe\x06\xbf\x06\xc0\x06\xc1\x06\xc2\x06\xc3\x06\xc4\x06\xc5\x06\xc6\x06\xc7\x06\xc8\x06\xc9\x06\xca\x06\xcb\x06\xcc\x06\xcd\x06\xce\x06\xcf\x06\xd0\x06\xd1\x06\xd2\x06\xd3\x06\xd4\x06\xd5\x06\xd6\x06\xd7\x06\xd8\x06\xd9\x06\xda\x06\xdb\x06\xdc\x06\xdd\x06\xde\x06\xdf\x06\xe0", /* 4880 */ "\x06\xe1\x06\xe2\x06\xe3\x06\xe4\x06\xe5\x06\xe6\x06\xe7\x06\xe8\x06\xe9\x06\xea\x06\xeb\x06\xec\x06\xed\x06\xee\x06\xef\x06\xf0\x06\xf1\x06\xf2\x06\xf3\x06\xf4\x06\xf5\x06\xf6\x06\xf7\x06\xf8\x06\xf9\x06\xfa\x06\xfb\x06\xfc\x06\xfd\x06\xfe\x06\xff\x00\x00\x55\x4a\x96\x3f\x57\xc3\x63\x28\x54\xce\x55\x09\x54\xc0\x76\x91\x76\x4c\x85\x3c\x77\xee\x82\x7e\x78\x8d\x72\x31\x96\x98\x97\x8d\x6c\x28\x5b\x89\x4f\xfa\x63\x09\x66\x97\x5c\xb8\x80\xfa\x68\x48\x80\xae\x66\x02\x76\xce\x51\xf9\x65\x56\x71\xac\x7f\xf1\x88\x84\x50\xb2\x59\x65\x61\xca\x6f\xb3\x82\xad\x63\x4c\x62\x52\x53\xed\x54\x27\x7b\x06\x51\x6b\x75\xa4\x5d\xf4\x62\xd4\x8d\xcb\x97\x76\x62\x8a\x80\x19\x57\x5d\x97\x38\x7f\x62\x72\x38\x76\x7d\x67\xcf\x76\x7e\x64\x46\x4f\x70\x8d\x25\x62\xdc\x7a\x17\x65\x91\x73\xed\x64\x2c\x62\x73\x82\x2c\x98\x81\x67\x7f\x72\x48\x62\x6e\x62\xcc\x4f\x34\x74\xe3\x53\x4a\x52\x9e\x7e\xca\x90\xa6\x5e\x2e\x68\x86\x69\x9c\x81\x80\x7e\xd1\x68\xd2\x78\xc5\x86\x8c\x95\x51\x50\x8d\x8c\x24\x82\xde\x80\xde\x53\x05\x89\x12\x52\x65\x00\x00\x00\x00", /* 4900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x84\x96\xf9\x4f\xdd\x58\x21\x99\x71\x5b\x9d\x62\xb1\x62\xa5\x66\xb4\x8c\x79\x9c\x8d\x72\x06\x67\x6f\x78\x91\x60\xb2\x53\x51\x53\x17\x8f\x88\x80\xcc\x8d\x1d\x94\xa1\x50\x0d\x72\xc8\x59\x07\x60\xeb\x71\x19\x88\xab\x59\x54\x82\xef\x67\x2c\x7b\x28\x5d\x29\x7e\xf7\x75\x2d\x6c\xf5\x8e\x66\x8f\xf8\x90\x3c\x9f\x3b\x6b\xd4\x91\x19\x7b\x14\x5f\x7c\x78\xa7\x84\xd6\x85\x3d\x6b\xd5\x6b\xd9\x6b\xd6\x5e\x01\x5e\x87\x75\xf9\x95\xed\x65\x5d\x5f\x0a\x5f\xc5\x8f\x9f\x58\xc1\x81\xc2\x90\x7f\x96\x5b\x97\xad\x8f\xb9", /* 4980 */ "\x00\x00\x7f\x16\x8d\x2c\x62\x41\x4f\xbf\x53\xd8\x53\x5e\x8f\xa8\x8f\xa9\x8f\xab\x90\x4d\x68\x07\x5f\x6a\x81\x98\x88\x68\x9c\xd6\x61\x8b\x52\x2b\x76\x2a\x5f\x6c\x65\x8c\x6f\xd2\x6e\xe8\x5b\xbe\x64\x48\x51\x75\x51\xb0\x67\xc4\x4e\x19\x79\xc9\x99\x7c\x70\xb3\x75\xc5\x5e\x76\x73\xbb\x83\xe0\x64\xad\x62\xe8\x94\xb5\x6c\xe2\x53\x5a\x52\xc3\x64\x0f\x94\xc2\x7b\x94\x4f\x2f\x5e\x1b\x82\x36\x81\x16\x81\x8a\x6e\x24\x6c\xca\x9a\x73\x63\x55\x53\x5c\x54\xfa\x88\x65\x57\xe0\x4e\x0d\x5e\x03\x6b\x65\x7c\x3f\x90\xe8\x60\x16\x64\xe6\x73\x1c\x88\xc1\x67\x50\x62\x4d\x8d\x22\x77\x6c\x8e\x29\x91\xc7\x5f\x69\x83\xdc\x85\x21\x99\x10\x53\xc2\x86\x95\x6b\x8b\x60\xed\x60\xe8\x70\x7f\x82\xcd\x82\x31\x4e\xd3\x6c\xa7\x85\xcf\x64\xcd\x7c\xd9\x69\xfd\x66\xf9\x83\x49\x53\x95\x7b\x56\x4f\xa7\x51\x8c\x6d\x4b\x5c\x42\x8e\x6d\x63\xd2\x53\xc9\x83\x2c\x83\x36\x67\xe5\x78\xb4\x64\x3d\x5b\xdf\x5c\x94\x5d\xee\x8b\xe7\x62\xc6\x67\xf4\x8c\x7a\x64\x00\x63\xba\x87\x49\x99\x8b\x8c\x17\x7f\x20\x94\xf2\x4e\xa7\x96\x10\x98\xa4\x66\x0c\x73\x16\x00\x00\x00\x00", /* 4a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x3a\x5c\x1d\x5e\x38\x95\x7f\x50\x7f\x80\xa0\x53\x82\x65\x5e\x75\x45\x55\x31\x50\x21\x8d\x85\x62\x84\x94\x9e\x67\x1d\x56\x32\x6f\x6e\x5d\xe2\x54\x35\x70\x92\x8f\x66\x62\x6f\x64\xa4\x63\xa3\x5f\x7b\x6f\x88\x90\xf4\x81\xe3\x8f\xb0\x5c\x18\x66\x68\x5f\xf1\x6c\x89\x96\x48\x8d\x81\x88\x6c\x64\x91\x79\xf0\x57\xce\x6a\x59\x62\x10\x54\x48\x4e\x58\x7a\x0b\x60\xe9\x6f\x84\x8b\xda\x62\x7f\x90\x1e\x9a\x8b\x79\xe4\x54\x03\x75\xf4\x63\x01\x53\x19\x6c\x60\x8f\xdf\x5f\x1b\x9a\x70\x80\x3b\x9f\x7f\x4f\x88\x5c\x3a", /* 4a80 */ "\x00\x00\x8d\x64\x7f\xc5\x65\xa5\x70\xbd\x51\x45\x51\xb2\x86\x6b\x5d\x07\x5b\xa0\x62\xbd\x91\x6c\x75\x74\x8e\x0c\x7a\x20\x61\x01\x7b\x79\x4e\xc7\x7e\xf8\x77\x85\x4e\x11\x81\xed\x52\x1d\x51\xfa\x6a\x71\x53\xa8\x8e\x87\x95\x04\x96\xcf\x6e\xc1\x96\x64\x69\x5a\x78\x40\x50\xa8\x77\xd7\x64\x10\x89\xe6\x59\x04\x63\xe3\x5d\xdd\x7a\x7f\x69\x3d\x4f\x20\x82\x39\x55\x98\x4e\x32\x75\xae\x7a\x97\x5e\x62\x5e\x8a\x95\xef\x52\x1b\x54\x39\x70\x8a\x63\x76\x95\x24\x57\x82\x66\x25\x69\x3f\x91\x87\x55\x07\x6d\xf3\x7e\xaf\x88\x22\x62\x33\x7e\xf0\x75\xb5\x83\x28\x78\xc1\x96\xcc\x8f\x9e\x61\x48\x74\xf7\x8b\xcd\x6b\x64\x52\x3a\x8d\x50\x6b\x21\x80\x6a\x84\x71\x56\xf1\x53\x06\x4e\xce\x4e\x1b\x51\xd1\x7c\x97\x91\x8b\x7c\x07\x4f\xc3\x8e\x7f\x7b\xe1\x7a\x9c\x64\x67\x5d\x14\x50\xac\x81\x06\x76\x01\x7c\xb9\x6d\xec\x7f\xe0\x67\x51\x5b\x58\x5b\xf8\x78\xcb\x64\xae\x64\x13\x63\xaa\x63\x2b\x95\x19\x64\x2d\x8f\xbe\x7b\x54\x76\x29\x62\x53\x59\x27\x54\x46\x6b\x79\x50\xa3\x62\x34\x5e\x26\x6b\x86\x4e\xe3\x8d\x37\x88\x8b\x5f\x85\x90\x2e\x00\x00\x00\x00", /* 4b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x20\x80\x3d\x62\xc5\x4e\x39\x53\x55\x90\xf8\x63\xb8\x80\xc6\x65\xe6\x6c\x2e\x4f\x46\x60\xee\x6d\xe1\x8b\xde\x5f\x39\x86\xcb\x5f\x53\x63\x21\x51\x5a\x83\x61\x68\x63\x52\x00\x63\x63\x8e\x48\x50\x12\x5c\x9b\x79\x77\x5b\xfc\x52\x30\x7a\x3b\x60\xbc\x90\x53\x76\xd7\x5f\xb7\x5f\x97\x76\x84\x8e\x6c\x70\x6f\x76\x7b\x7b\x49\x77\xaa\x51\xf3\x90\x93\x58\x24\x4f\x4e\x6e\xf4\x8f\xea\x65\x4c\x7b\x1b\x72\xc4\x6d\xa4\x7f\xdf\x5a\xe1\x62\xb5\x5e\x95\x57\x30\x84\x82\x7b\x2c\x5e\x1d\x5f\x1f\x90\x12\x7f\x14\x98\xa0", /* 4b80 */ "\x00\x00\x63\x82\x6e\xc7\x78\x98\x70\xb9\x51\x78\x97\x5b\x57\xab\x75\x35\x4f\x43\x75\x38\x5e\x97\x60\xe6\x59\x60\x6d\xc0\x6b\xbf\x78\x89\x53\xfc\x96\xd5\x51\xcb\x52\x01\x63\x89\x54\x0a\x94\x93\x8c\x03\x8d\xcc\x72\x39\x78\x9f\x87\x76\x8f\xed\x8c\x0d\x53\xe0\x4e\x01\x76\xef\x53\xee\x94\x89\x98\x76\x9f\x0e\x95\x2d\x5b\x9a\x8b\xa2\x4e\x22\x4e\x1c\x51\xac\x84\x63\x61\xc2\x52\xa8\x68\x0b\x4f\x97\x60\x6b\x51\xbb\x6d\x1e\x51\x5c\x62\x96\x65\x97\x96\x61\x8c\x46\x90\x17\x75\xd8\x90\xfd\x77\x63\x6b\xd2\x72\x8a\x72\xec\x8b\xfb\x58\x35\x77\x79\x8d\x4c\x67\x5c\x95\x40\x80\x9a\x5e\xa6\x6e\x21\x59\x92\x7a\xef\x77\xed\x95\x3b\x6b\xb5\x65\xad\x7f\x0e\x58\x06\x51\x51\x96\x1f\x5b\xf9\x58\xa9\x54\x28\x8e\x72\x65\x66\x98\x7f\x56\xe4\x94\x9d\x76\xfe\x90\x41\x63\x87\x54\xc6\x59\x1a\x59\x3a\x57\x9b\x8e\xb2\x67\x35\x8d\xfa\x82\x35\x52\x41\x60\xf0\x58\x15\x86\xfe\x5c\xe8\x9e\x45\x4f\xc4\x98\x9d\x8b\xb9\x5a\x25\x60\x76\x53\x84\x62\x7c\x90\x4f\x91\x02\x99\x7f\x60\x69\x80\x0c\x51\x3f\x80\x33\x5c\x14\x99\x75\x6d\x31\x4e\x8c\x00\x00\x00\x00", /* 4c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x30\x53\xd1\x7f\x5a\x7b\x4f\x4f\x10\x4e\x4f\x96\x00\x6c\xd5\x73\xd0\x85\xe9\x5e\x06\x75\x6a\x7f\xfb\x6a\x0a\x77\xfe\x94\x92\x7e\x41\x51\xe1\x70\xe6\x53\xcd\x8f\xd4\x83\x03\x8d\x29\x72\xaf\x99\x6d\x6c\xdb\x57\x4a\x82\xb3\x65\xb9\x80\xaa\x62\x3f\x96\x32\x59\xa8\x4e\xff\x8b\xbf\x7e\xba\x65\x3e\x83\xf2\x97\x5e\x55\x61\x98\xde\x80\xa5\x53\x2a\x8b\xfd\x54\x20\x80\xba\x5e\x9f\x6c\xb8\x8d\x39\x82\xac\x91\x5a\x54\x29\x6c\x1b\x52\x06\x7e\xb7\x57\x5f\x71\x1a\x6c\x7e\x7c\x89\x59\x4b\x4e\xfd\x5f\xff\x61\x24", /* 4c80 */ "\x00\x00\x7c\xaa\x4e\x30\x5c\x01\x67\xab\x87\x02\x5c\xf0\x95\x0b\x98\xce\x75\xaf\x70\xfd\x90\x22\x51\xaf\x7f\x1d\x8b\xbd\x59\x49\x51\xe4\x4f\x5b\x54\x26\x59\x2b\x65\x77\x80\xa4\x5b\x75\x62\x76\x62\xc2\x8f\x90\x5e\x45\x6c\x1f\x7b\x26\x4f\x0f\x4f\xd8\x67\x0d\x6d\x6e\x6d\xaa\x79\x8f\x88\xb1\x5f\x17\x75\x2b\x62\x9a\x8f\x85\x4f\xef\x91\xdc\x65\xa7\x81\x2f\x81\x51\x5e\x9c\x81\x50\x8d\x74\x52\x6f\x89\x86\x8d\x4b\x59\x0d\x50\x85\x4e\xd8\x96\x1c\x72\x36\x81\x79\x8d\x1f\x5b\xcc\x8b\xa3\x96\x44\x59\x87\x7f\x1a\x54\x90\x56\x76\x56\x0e\x8b\xe5\x65\x39\x69\x82\x94\x99\x76\xd6\x6e\x89\x5e\x72\x75\x18\x67\x46\x67\xd1\x7a\xff\x80\x9d\x8d\x76\x61\x1f\x79\xc6\x65\x62\x8d\x63\x51\x88\x52\x1a\x94\xa2\x7f\x38\x80\x9b\x7e\xb2\x5c\x97\x6e\x2f\x67\x60\x7b\xd9\x76\x8b\x9a\xd8\x81\x8f\x7f\x94\x7c\xd5\x64\x1e\x95\x50\x7a\x3f\x54\x4a\x54\xe5\x6b\x4c\x64\x01\x62\x08\x9e\x3d\x80\xf3\x75\x99\x52\x72\x97\x69\x84\x5b\x68\x3c\x86\xe4\x96\x01\x96\x94\x94\xec\x4e\x2a\x54\x04\x7e\xd9\x68\x39\x8d\xdf\x80\x15\x66\xf4\x5e\x9a\x7f\xb9\x00\x00\x00\x00", /* 4d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\xc2\x80\x3f\x68\x97\x5d\xe5\x65\x3b\x52\x9f\x60\x6d\x9f\x9a\x4f\x9b\x8e\xac\x51\x6c\x5b\xab\x5f\x13\x5d\xe9\x6c\x5e\x62\xf1\x8d\x21\x51\x71\x94\xa9\x52\xfe\x6c\x9f\x82\xdf\x72\xd7\x57\xa2\x67\x84\x8d\x2d\x59\x1f\x8f\x9c\x83\xc7\x54\x95\x7b\x8d\x4f\x30\x6c\xbd\x5b\x64\x59\xd1\x9f\x13\x53\xe4\x86\xca\x9a\xa8\x8c\x37\x80\xa1\x65\x45\x98\x7e\x56\xfa\x96\xc7\x52\x2e\x74\xdc\x52\x50\x5b\xe1\x63\x02\x89\x02\x4e\x56\x62\xd0\x60\x2a\x68\xfa\x51\x73\x5b\x98\x51\xa0\x89\xc2\x7b\xa1\x99\x86\x7f\x50\x60\xef", /* 4d80 */ "\x00\x00\x70\x4c\x8d\x2f\x51\x49\x5e\x7f\x90\x1b\x74\x70\x89\xc4\x57\x2d\x78\x45\x5f\x52\x9f\x9f\x95\xfa\x8f\x68\x9b\x3c\x8b\xe1\x76\x78\x68\x42\x67\xdc\x8d\xea\x8d\x35\x52\x3d\x8f\x8a\x6e\xda\x68\xcd\x95\x05\x90\xed\x56\xfd\x67\x9c\x88\xf9\x8f\xc7\x54\xc8\x9a\xb8\x5b\x69\x6d\x77\x6c\x26\x4e\xa5\x5b\xb3\x9a\x87\x91\x63\x61\xa8\x90\xaf\x97\xe9\x54\x2b\x6d\xb5\x5b\xd2\x51\xfd\x55\x8a\x7f\x55\x7f\xf0\x64\xbc\x63\x4d\x65\xf1\x61\xbe\x60\x8d\x71\x0a\x6c\x57\x6c\x49\x59\x2f\x67\x6d\x82\x2a\x58\xd5\x56\x8e\x8c\x6a\x6b\xeb\x90\xdd\x59\x7d\x80\x17\x53\xf7\x6d\x69\x54\x75\x55\x9d\x83\x77\x83\xcf\x68\x38\x79\xbe\x54\x8c\x4f\x55\x54\x08\x76\xd2\x8c\x89\x96\x02\x6c\xb3\x6d\xb8\x8d\x6b\x89\x10\x9e\x64\x8d\x3a\x56\x3f\x9e\xd1\x75\xd5\x5f\x88\x72\xe0\x60\x68\x54\xfc\x4e\xa8\x6a\x2a\x88\x61\x60\x52\x8f\x70\x54\xc4\x70\xd8\x86\x79\x9e\x3f\x6d\x2a\x5b\x8f\x5f\x18\x7e\xa2\x55\x89\x4f\xaf\x73\x34\x54\x3c\x53\x9a\x50\x19\x54\x0e\x54\x7c\x4e\x4e\x5f\xfd\x74\x5a\x58\xf6\x84\x6b\x80\xe1\x87\x74\x72\xd0\x7c\xca\x6e\x56\x00\x00\x00\x00", /* 4e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x27\x86\x4e\x55\x2c\x62\xa4\x4e\x92\x6c\xaa\x62\x37\x82\xb1\x54\xd7\x53\x4e\x73\x3e\x6e\xd1\x75\x3b\x52\x12\x53\x16\x8b\xdd\x69\xd0\x5f\x8a\x60\x00\x6d\xee\x57\x4f\x6b\x22\x73\xaf\x68\x53\x8f\xd8\x7f\x13\x63\x62\x60\xa3\x55\x24\x75\xea\x8c\x62\x71\x15\x6d\xa3\x5b\xa6\x5e\x7b\x83\x52\x61\x4c\x9e\xc4\x78\xfa\x87\x57\x7c\x27\x76\x87\x51\xf0\x60\xf6\x71\x4c\x66\x43\x5e\x4c\x60\x4d\x8c\x0e\x70\x70\x63\x25\x8f\x89\x5f\xbd\x60\x62\x86\xd4\x56\xde\x6b\xc1\x60\x94\x61\x67\x53\x49\x60\xe0\x66\x66\x8d\x3f", /* 4e80 */ "\x00\x00\x79\xfd\x4f\x1a\x70\xe9\x6c\x47\x8b\xb3\x8b\xf2\x7e\xd8\x83\x64\x66\x0f\x5a\x5a\x9b\x42\x6d\x51\x6d\xf7\x8c\x41\x6d\x3b\x4f\x19\x70\x6b\x83\xb7\x62\x16\x60\xd1\x97\x0d\x8d\x27\x79\x78\x51\xfb\x57\x3e\x57\xfa\x67\x3a\x75\x78\x7a\x3d\x79\xef\x7b\x95\x80\x8c\x99\x65\x8f\xf9\x6f\xc0\x8b\xa5\x9e\x21\x59\xec\x7e\xe9\x7f\x09\x54\x09\x67\x81\x68\xd8\x8f\x91\x7c\x4d\x96\xc6\x53\xca\x60\x25\x75\xbe\x6c\x72\x53\x73\x5a\xc9\x7e\xa7\x63\x24\x51\xe0\x81\x0a\x5d\xf1\x84\xdf\x62\x80\x51\x80\x5b\x63\x4f\x0e\x79\x6d\x52\x42\x60\xb8\x6d\x4e\x5b\xc4\x5b\xc2\x8b\xa1\x8b\xb0\x65\xe2\x5f\xcc\x96\x45\x59\x93\x7e\xe7\x7e\xaa\x56\x09\x67\xb7\x59\x39\x4f\x73\x5b\xb6\x52\xa0\x83\x5a\x98\x8a\x8d\x3e\x75\x32\x94\xbe\x50\x47\x7a\x3c\x4e\xf7\x67\xb6\x9a\x7e\x5a\xc1\x6b\x7c\x76\xd1\x57\x5a\x5c\x16\x7b\x3a\x95\xf4\x71\x4e\x51\x7c\x80\xa9\x82\x70\x59\x78\x7f\x04\x83\x27\x68\xc0\x67\xec\x78\xb1\x78\x77\x62\xe3\x63\x61\x7b\x80\x4f\xed\x52\x6a\x51\xcf\x83\x50\x69\xdb\x92\x74\x8d\xf5\x8d\x31\x89\xc1\x95\x2e\x7b\xad\x4e\xf6\x00\x00\x00\x00", /* 4f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x65\x82\x30\x52\x51\x99\x6f\x6e\x10\x6e\x85\x6d\xa7\x5e\xfa\x50\xf5\x59\xdc\x5c\x06\x6d\x46\x6c\x5f\x75\x86\x84\x8b\x68\x68\x59\x56\x8b\xb2\x53\x20\x91\x71\x96\x4d\x85\x49\x69\x12\x79\x01\x71\x26\x80\xf6\x4e\xa4\x90\xca\x6d\x47\x9a\x84\x5a\x07\x56\xbc\x64\x05\x94\xf0\x77\xeb\x4f\xa5\x81\x1a\x72\xe1\x89\xd2\x99\x7a\x7f\x34\x7e\xde\x52\x7f\x65\x59\x91\x75\x8f\x7f\x8f\x83\x53\xeb\x7a\x96\x63\xed\x63\xa5\x76\x86\x79\xf8\x88\x57\x96\x36\x62\x2a\x52\xab\x82\x82\x68\x54\x67\x70\x63\x77\x77\x6b\x7a\xed", /* 4f80 */ "\x00\x00\x6d\x01\x7e\xd3\x89\xe3\x59\xd0\x62\x12\x85\xc9\x82\xa5\x75\x4c\x50\x1f\x4e\xcb\x75\xa5\x8b\xeb\x5c\x4a\x5d\xfe\x7b\x4b\x65\xa4\x91\xd1\x4e\xca\x6d\x25\x89\x5f\x7d\x27\x95\x26\x4e\xc5\x8c\x28\x8f\xdb\x97\x73\x66\x4b\x79\x81\x8f\xd1\x70\xec\x6d\x78\x5c\x3d\x52\xb2\x83\x46\x51\x62\x83\x0e\x77\x5b\x66\x76\x9c\xb8\x4e\xac\x60\xca\x7c\xbe\x7c\xb3\x7e\xcf\x4e\x95\x8b\x66\x66\x6f\x98\x88\x97\x59\x58\x83\x65\x6c\x95\x5c\x5f\x84\x75\xc9\x97\x56\x7a\xdf\x7a\xde\x51\xc0\x70\xaf\x7a\x98\x63\xea\x7a\x76\x7e\xa0\x73\x96\x97\xed\x4e\x45\x70\x78\x4e\x5d\x91\x52\x53\xa9\x65\x51\x65\xe7\x81\xfc\x82\x05\x54\x8e\x5c\x31\x75\x9a\x97\xa0\x62\xd8\x72\xd9\x75\xbd\x5c\x45\x9a\x79\x83\xca\x5c\x40\x54\x80\x77\xe9\x4e\x3e\x6c\xae\x80\x5a\x62\xd2\x63\x6e\x5d\xe8\x51\x77\x8d\xdd\x8e\x1e\x95\x2f\x4f\xf1\x53\xe5\x60\xe7\x70\xac\x52\x67\x63\x50\x9e\x43\x5a\x1f\x50\x26\x77\x37\x53\x77\x7e\xe2\x64\x85\x65\x2b\x62\x89\x63\x98\x50\x14\x72\x35\x89\xc9\x51\xb3\x8b\xc0\x7e\xdd\x57\x47\x83\xcc\x94\xa7\x51\x9b\x54\x1b\x5c\xfb\x00\x00\x00\x00", /* 5000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xca\x7a\xe3\x6d\x5a\x90\xe1\x9a\x8f\x55\x80\x54\x96\x53\x61\x54\xaf\x5f\x00\x63\xe9\x69\x77\x51\xef\x61\x68\x52\x0a\x58\x2a\x52\xd8\x57\x4e\x78\x0d\x77\x0b\x5e\xb7\x61\x77\x7c\xe0\x62\x5b\x62\x97\x4e\xa2\x70\x95\x80\x03\x62\xf7\x70\xe4\x97\x60\x57\x77\x82\xdb\x67\xef\x68\xf5\x78\xd5\x98\x97\x79\xd1\x58\xf3\x54\xb3\x53\xef\x6e\x34\x51\x4b\x52\x3b\x5b\xa2\x8b\xfe\x80\xaf\x55\x43\x57\xa6\x60\x73\x57\x51\x54\x2d\x7a\x7a\x60\x50\x5b\x54\x63\xa7\x62\xa0\x53\xe3\x62\x63\x5b\xc7\x67\xaf\x54\xed\x7a\x9f", /* 5080 */ "\x00\x00\x82\xe6\x91\x77\x5e\x93\x88\xe4\x59\x38\x57\xae\x63\x0e\x8d\xe8\x80\xef\x57\x57\x7b\x77\x4f\xa9\x5f\xeb\x5b\xbd\x6b\x3e\x53\x21\x7b\x50\x72\xc2\x68\x46\x77\xff\x77\x36\x65\xf7\x51\xb5\x4e\x8f\x76\xd4\x5c\xbf\x7a\xa5\x84\x75\x59\x4e\x9b\x41\x50\x80\x99\x88\x61\x27\x6e\x83\x57\x64\x66\x06\x63\x46\x56\xf0\x62\xec\x62\x69\x5e\xd3\x96\x14\x57\x83\x62\xc9\x55\x87\x87\x21\x81\x4a\x8f\xa3\x55\x66\x83\xb1\x67\x65\x8d\x56\x84\xdd\x5a\x6a\x68\x0f\x62\xe6\x7b\xee\x96\x11\x51\x70\x6f\x9c\x8c\x30\x63\xfd\x89\xc8\x61\xd2\x7f\x06\x70\xc2\x6e\xe5\x74\x05\x69\x94\x72\xfc\x5e\xca\x90\xce\x67\x17\x6d\x6a\x63\x5e\x52\xb3\x72\x62\x80\x01\x4f\x6c\x59\xe5\x91\x6a\x70\xd9\x6d\x9d\x52\xd2\x4e\x50\x96\xf7\x95\x6d\x85\x7e\x78\xca\x7d\x2f\x51\x21\x57\x92\x64\xc2\x80\x8b\x7c\x7b\x6c\xea\x68\xf1\x69\x5e\x51\xb7\x53\x98\x68\xa8\x72\x81\x9e\xce\x7b\xf1\x72\xf8\x79\xbb\x6f\x13\x74\x06\x67\x4e\x91\xcc\x9c\xa4\x79\x3c\x83\x89\x83\x54\x54\x0f\x68\x17\x4e\x3d\x53\x89\x52\xb1\x78\x3e\x53\x86\x52\x29\x50\x88\x4f\x8b\x4f\xd0\x00\x00\x00\x00", /* 5100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xe2\x7a\xcb\x7c\x92\x6c\xa5\x96\xb6\x52\x9b\x74\x83\x54\xe9\x4f\xe9\x80\x54\x83\xb2\x8f\xde\x95\x70\x5e\xc9\x60\x1c\x6d\x9f\x5e\x18\x65\x5b\x81\x38\x94\xfe\x60\x4b\x70\xbc\x7e\xc3\x7c\xae\x51\xc9\x68\x81\x7c\xb1\x82\x6f\x4e\x24\x8f\x86\x91\xcf\x66\x7e\x4e\xae\x8c\x05\x64\xa9\x80\x4a\x50\xda\x75\x97\x71\xce\x5b\xe5\x8f\xbd\x6f\x66\x4e\x86\x64\x82\x95\x63\x5e\xd6\x65\x99\x52\x17\x88\xc2\x70\xc8\x52\xa3\x73\x0e\x74\x33\x67\x97\x78\xf7\x97\x16\x4e\x34\x90\xbb\x9c\xde\x6d\xcb\x51\xdb\x8d\x41\x54\x1d", /* 5180 */ "\x00\x00\x62\xce\x73\xb2\x83\xf1\x96\xf6\x9f\x84\x94\xc3\x4f\x36\x7f\x9a\x51\xcc\x70\x75\x96\x75\x5c\xad\x98\x86\x53\xe6\x4e\xe4\x6e\x9c\x74\x09\x69\xb4\x78\x6b\x99\x8f\x75\x59\x52\x18\x76\x24\x6d\x41\x67\xf3\x51\x6d\x9f\x99\x80\x4b\x54\x99\x7b\x3c\x7a\xbf\x96\x86\x57\x84\x62\xe2\x96\x47\x69\x7c\x5a\x04\x64\x02\x7b\xd3\x6f\x0f\x96\x4b\x82\xa6\x53\x62\x98\x85\x5e\x90\x70\x89\x63\xb3\x53\x64\x86\x4f\x9c\x81\x9e\x93\x78\x8c\x97\x32\x8d\xef\x8d\x42\x9e\x7f\x6f\x5e\x79\x84\x5f\x55\x96\x46\x62\x2e\x9a\x74\x54\x15\x94\xdd\x4f\xa3\x65\xc5\x5c\x65\x5c\x61\x7f\x15\x86\x51\x6c\x2f\x5f\x8b\x73\x87\x6e\xe4\x7e\xff\x5c\xe6\x63\x1b\x5b\x6a\x6e\xe6\x53\x75\x4e\x71\x63\xa0\x75\x65\x62\xa1\x8f\x6e\x4f\x26\x4e\xd1\x6c\xa6\x7e\xb6\x8b\xba\x84\x1d\x87\xba\x7f\x57\x90\x3b\x95\x23\x7b\xa9\x9a\xa1\x88\xf8\x84\x3d\x6d\x1b\x9a\x86\x7e\xdc\x59\x88\x9e\xbb\x73\x9b\x78\x01\x86\x82\x9a\x6c\x9a\x82\x56\x1b\x54\x17\x57\xcb\x4e\x70\x9e\xa6\x53\x56\x8f\xc8\x81\x09\x77\x92\x99\x92\x86\xee\x6e\xe1\x85\x13\x66\xfc\x61\x62\x6f\x2b\x00\x00\x00\x00", /* 5200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x29\x82\x92\x83\x2b\x76\xf2\x6c\x13\x5f\xd9\x83\xbd\x73\x2b\x83\x05\x95\x1a\x6b\xdb\x77\xdb\x94\xc6\x53\x6f\x83\x02\x51\x92\x5e\x3d\x8c\x8c\x8d\x38\x4e\x48\x73\xab\x67\x9a\x68\x85\x91\x76\x97\x09\x71\x64\x6c\xa1\x77\x09\x5a\x92\x95\x41\x6b\xcf\x7f\x8e\x66\x27\x5b\xd0\x59\xb9\x5a\x9a\x95\xe8\x95\xf7\x4e\xec\x84\x0c\x84\x99\x6a\xac\x76\xdf\x95\x30\x73\x1b\x68\xa6\x5b\x5f\x77\x2f\x91\x9a\x97\x61\x7c\xdc\x8f\xf7\x8c\x1c\x5f\x25\x7c\x73\x79\xd8\x89\xc5\x6c\xcc\x87\x1c\x5b\xc6\x5e\x42\x68\xc9\x77\x20", /* 5280 */ "\x00\x00\x7e\xf5\x51\x95\x51\x4d\x52\xc9\x5a\x29\x7f\x05\x97\x62\x82\xd7\x63\xcf\x77\x84\x85\xd0\x79\xd2\x6e\x3a\x5e\x99\x59\x99\x85\x11\x70\x6d\x6c\x11\x62\xbf\x76\xbf\x65\x4f\x60\xaf\x95\xfd\x66\x0e\x87\x9f\x9e\x23\x94\xed\x54\x0d\x54\x7d\x8c\x2c\x64\x78\x64\x79\x86\x11\x6a\x21\x81\x9c\x78\xe8\x64\x69\x9b\x54\x62\xb9\x67\x2b\x83\xab\x58\xa8\x9e\xd8\x6c\xab\x6f\x20\x5b\xde\x96\x4c\x8c\x0b\x72\x5f\x67\xd0\x62\xc7\x72\x61\x4e\xa9\x59\xc6\x6b\xcd\x58\x93\x66\xae\x5e\x55\x52\xdf\x61\x55\x67\x28\x76\xee\x77\x66\x72\x67\x7a\x46\x62\xff\x54\xea\x54\x50\x94\xa0\x90\xa3\x5a\x1c\x7e\xb3\x6c\x16\x4e\x43\x59\x76\x80\x10\x59\x48\x53\x57\x75\x37\x96\xbe\x56\xca\x63\x20\x81\x11\x60\x7c\x95\xf9\x6d\xd6\x54\x62\x99\x81\x51\x85\x5a\xe9\x80\xfd\x59\xae\x97\x13\x50\x2a\x6c\xe5\x5c\x3c\x62\xdf\x4f\x60\x53\x3f\x81\x7b\x90\x06\x6e\xba\x85\x2b\x62\xc8\x5e\x74\x78\xbe\x64\xb5\x63\x7b\x5f\xf5\x5a\x18\x91\x7f\x9e\x1f\x5c\x3f\x63\x4f\x80\x42\x5b\x7d\x55\x6e\x95\x4a\x95\x4d\x6d\x85\x60\xa8\x67\xe0\x72\xde\x51\xdd\x5b\x81\x00\x00\x00\x00", /* 5300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\xe7\x6c\xde\x72\x5b\x62\x6d\x94\xae\x7e\xbd\x81\x13\x6d\x53\x51\x9c\x5f\x04\x59\x74\x52\xaa\x60\x12\x59\x73\x66\x96\x86\x50\x75\x9f\x63\x2a\x61\xe6\x7c\xef\x8b\xfa\x54\xe6\x6b\x27\x9e\x25\x6b\xb4\x85\xd5\x54\x55\x50\x76\x6c\xa4\x55\x6a\x8d\xb4\x72\x2c\x5e\x15\x60\x15\x74\x36\x62\xcd\x63\x92\x72\x4c\x5f\x98\x6e\x43\x6d\x3e\x65\x00\x6f\x58\x76\xd8\x78\xd0\x76\xfc\x75\x54\x52\x24\x53\xdb\x4e\x53\x5e\x9e\x65\xc1\x80\x2a\x80\xd6\x62\x9b\x54\x86\x52\x28\x70\xae\x88\x8d\x8d\xd1\x6c\xe1\x54\x78\x80\xda", /* 5380 */ "\x00\x00\x57\xf9\x88\xf4\x8d\x54\x96\x6a\x91\x4d\x4f\x69\x6c\x9b\x55\xb7\x76\xc6\x78\x30\x62\xa8\x70\xf9\x6f\x8e\x5f\x6d\x84\xec\x68\xda\x78\x7c\x7b\xf7\x81\xa8\x67\x0b\x9e\x4f\x63\x67\x78\xb0\x57\x6f\x78\x12\x97\x39\x62\x79\x62\xab\x52\x88\x74\x35\x6b\xd7\x55\x64\x81\x3e\x75\xb2\x76\xae\x53\x39\x75\xde\x50\xfb\x5c\x41\x8b\x6c\x7b\xc7\x50\x4f\x72\x47\x9a\x97\x98\xd8\x6f\x02\x74\xe2\x79\x68\x64\x87\x77\xa5\x62\xfc\x98\x91\x8d\x2b\x54\xc1\x80\x58\x4e\x52\x57\x6a\x82\xf9\x84\x0d\x5e\x73\x51\xed\x74\xf6\x8b\xc4\x5c\x4f\x57\x61\x6c\xfc\x98\x87\x5a\x46\x78\x34\x9b\x44\x8f\xeb\x7c\x95\x52\x56\x62\x51\x94\xfa\x4e\xc6\x83\x86\x84\x61\x83\xe9\x84\xb2\x57\xd4\x67\x34\x57\x03\x66\x6e\x6d\x66\x8c\x31\x66\xdd\x70\x11\x67\x1f\x6b\x3a\x68\x16\x62\x1a\x59\xbb\x4e\x03\x51\xc4\x6f\x06\x67\xd2\x6c\x8f\x51\x76\x68\xcb\x59\x47\x6b\x67\x75\x66\x5d\x0e\x81\x10\x9f\x50\x65\xd7\x79\x48\x79\x41\x9a\x91\x8d\x77\x5c\x82\x4e\x5e\x4f\x01\x54\x2f\x59\x51\x78\x0c\x56\x68\x6c\x14\x8f\xc4\x5f\x03\x6c\x7d\x6c\xe3\x8b\xab\x63\x90\x00\x00\x00\x00", /* 5400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x70\x6d\x3d\x72\x75\x62\x66\x94\x8e\x94\xc5\x53\x43\x8f\xc1\x7b\x7e\x4e\xdf\x8c\x26\x4e\x7e\x9e\xd4\x94\xb1\x94\xb3\x52\x4d\x6f\x5c\x90\x63\x6d\x45\x8c\x34\x58\x11\x5d\x4c\x6b\x20\x6b\x49\x67\xaa\x54\x5b\x81\x54\x7f\x8c\x58\x99\x85\x37\x5f\x3a\x62\xa2\x6a\x47\x95\x39\x65\x72\x60\x84\x68\x65\x77\xa7\x4e\x54\x4f\xa8\x5d\xe7\x97\x98\x64\xac\x7f\xd8\x5c\xed\x4f\xcf\x7a\x8d\x52\x07\x83\x04\x4e\x14\x60\x2f\x7a\x83\x94\xa6\x4f\xb5\x4e\xb2\x79\xe6\x74\x34\x52\xe4\x82\xb9\x64\xd2\x79\xbd\x5b\xdd\x6c\x81", /* 5480 */ "\x00\x00\x97\x52\x8f\x7b\x6c\x22\x50\x3e\x53\x7f\x6e\x05\x64\xce\x66\x74\x6c\x30\x60\xc5\x98\x77\x8b\xf7\x5e\x86\x74\x3c\x7a\x77\x79\xcb\x4e\x18\x90\xb1\x74\x03\x6c\x42\x56\xda\x91\x4b\x6c\xc5\x8d\x8b\x53\x3a\x86\xc6\x66\xf2\x8e\xaf\x5c\x48\x9a\x71\x6e\x20\x53\xd6\x5a\x36\x9f\x8b\x8d\xa3\x53\xbb\x57\x08\x98\xa7\x67\x43\x91\x9b\x6c\xc9\x51\x68\x75\xca\x62\xf3\x72\xac\x52\x38\x52\x9d\x7f\x3a\x70\x94\x76\x38\x53\x74\x9e\x4a\x69\xb7\x78\x6e\x96\xc0\x88\xd9\x7f\xa4\x71\x36\x71\xc3\x51\x89\x67\xd3\x74\xe4\x58\xe4\x65\x18\x56\xb7\x8b\xa9\x99\x76\x62\x70\x7e\xd5\x60\xf9\x70\xed\x58\xec\x4e\xc1\x4e\xba\x5f\xcd\x97\xe7\x4e\xfb\x8b\xa4\x52\x03\x59\x8a\x7e\xab\x62\x54\x4e\xcd\x65\xe5\x62\x0e\x83\x38\x84\xc9\x83\x63\x87\x8d\x71\x94\x6e\xb6\x5b\xb9\x7e\xd2\x51\x97\x63\xc9\x67\xd4\x80\x89\x83\x39\x88\x15\x51\x12\x5b\x7a\x59\x82\x8f\xb1\x4e\x73\x6c\x5d\x51\x65\x89\x25\x8f\x6f\x96\x2e\x85\x4a\x74\x5e\x95\x10\x95\xf0\x6d\xa6\x82\xe5\x5f\x31\x64\x92\x6d\x12\x84\x28\x81\x6e\x9c\xc3\x58\x5e\x8d\x5b\x4e\x09\x53\xc1\x00\x00\x00\x00", /* 5500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x1e\x65\x63\x68\x51\x55\xd3\x4e\x27\x64\x14\x9a\x9a\x62\x6b\x5a\xc2\x74\x5f\x82\x72\x6d\xa9\x68\xee\x50\xe7\x83\x8e\x78\x02\x67\x40\x52\x39\x6c\x99\x7e\xb1\x50\xbb\x55\x65\x71\x5e\x7b\x5b\x66\x52\x73\xca\x82\xeb\x67\x49\x5c\x71\x52\x20\x71\x7d\x88\x6b\x95\xea\x96\x55\x64\xc5\x8d\x61\x81\xb3\x55\x84\x6c\x55\x62\x47\x7f\x2e\x58\x92\x4f\x24\x55\x46\x8d\x4f\x66\x4c\x4e\x0a\x5c\x1a\x88\xf3\x68\xa2\x63\x4e\x7a\x0d\x70\xe7\x82\x8d\x52\xfa\x97\xf6\x5c\x11\x54\xe8\x90\xb5\x7e\xcd\x59\x62\x8d\x4a\x86\xc7", /* 5580 */ "\x00\x00\x82\x0c\x82\x0d\x8d\x66\x64\x44\x5c\x04\x61\x51\x6d\x89\x79\x3e\x8b\xbe\x78\x37\x75\x33\x54\x7b\x4f\x38\x8e\xab\x6d\xf1\x5a\x20\x7e\xc5\x79\x5e\x6c\x88\x5b\xa1\x5a\x76\x75\x1a\x80\xbe\x61\x4e\x6e\x17\x58\xf0\x75\x1f\x75\x25\x72\x72\x53\x47\x7e\xf3\x77\x01\x76\xdb\x52\x69\x80\xdc\x57\x23\x5e\x08\x59\x31\x72\xee\x65\xbd\x6e\x7f\x8b\xd7\x5c\x38\x86\x71\x53\x41\x77\xf3\x62\xfe\x65\xf6\x4e\xc0\x98\xdf\x86\x80\x5b\x9e\x8b\xc6\x53\xf2\x77\xe2\x4f\x7f\x5c\x4e\x9a\x76\x59\xcb\x5f\x0f\x79\x3a\x58\xeb\x4e\x16\x67\xff\x4e\x8b\x62\xed\x8a\x93\x90\x1d\x52\xbf\x66\x2f\x55\xdc\x56\x6c\x90\x02\x4e\xd5\x4f\x8d\x91\xca\x99\x70\x6c\x0f\x5e\x02\x60\x43\x5b\xa4\x89\xc6\x8b\xd5\x65\x36\x62\x4b\x99\x96\x5b\x88\x5b\xff\x63\x88\x55\x2e\x53\xd7\x76\x26\x51\x7d\x85\x2c\x67\xa2\x68\xb3\x6b\x8a\x62\x92\x8f\x93\x53\xd4\x82\x12\x6d\xd1\x75\x8f\x4e\x66\x8d\x4e\x5b\x70\x71\x9f\x85\xaf\x66\x91\x66\xd9\x7f\x72\x87\x00\x9e\xcd\x9f\x20\x5c\x5e\x67\x2f\x8f\xf0\x68\x11\x67\x5f\x62\x0d\x7a\xd6\x58\x85\x5e\xb6\x65\x70\x6f\x31\x00\x00\x00\x00", /* 5600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x55\x52\x37\x80\x0d\x64\x54\x88\x70\x75\x29\x5e\x05\x68\x13\x62\xf4\x97\x1c\x53\xcc\x72\x3d\x8c\x01\x6c\x34\x77\x61\x7a\x0e\x54\x2e\x77\xac\x98\x7a\x82\x1c\x8b\xf4\x78\x55\x67\x14\x70\xc1\x65\xaf\x64\x95\x56\x36\x60\x1d\x79\xc1\x53\xf8\x4e\x1d\x6b\x7b\x80\x86\x5b\xfa\x55\xe3\x56\xdb\x4f\x3a\x4f\x3c\x99\x72\x5d\xf3\x67\x7e\x80\x38\x60\x02\x98\x82\x90\x01\x5b\x8b\x8b\xbc\x8b\xf5\x64\x1c\x82\x58\x64\xde\x55\xfd\x82\xcf\x91\x65\x4f\xd7\x7d\x20\x90\x1f\x7c\x9f\x50\xf3\x58\x51\x6e\xaf\x5b\xbf\x8b\xc9", /* 5680 */ "\x00\x00\x80\x83\x91\x78\x84\x9c\x7b\x97\x86\x7d\x96\x8b\x96\x8f\x7e\xe5\x9a\xd3\x78\x8e\x5c\x81\x7a\x57\x90\x42\x96\xa7\x79\x5f\x5b\x59\x63\x5f\x7b\x0b\x84\xd1\x68\xad\x55\x06\x7f\x29\x74\x10\x7d\x22\x95\x01\x62\x40\x58\x4c\x4e\xd6\x5b\x83\x59\x79\x58\x54\x73\x6d\x63\x1e\x8e\x4b\x8e\x0f\x80\xce\x82\xd4\x62\xac\x53\xf0\x6c\xf0\x91\x5e\x59\x2a\x60\x01\x6c\x70\x57\x4d\x64\x4a\x8d\x2a\x76\x2b\x6e\xe9\x57\x5b\x6a\x80\x75\xf0\x6f\x6d\x8c\x2d\x8c\x08\x57\x66\x6b\xef\x88\x92\x78\xb3\x63\xa2\x53\xf9\x70\xad\x6c\x64\x58\x58\x64\x2a\x58\x02\x68\xe0\x81\x9b\x55\x10\x7c\xd6\x50\x18\x8e\xba\x6d\xcc\x8d\x9f\x70\xeb\x63\x8f\x6d\x9b\x6e\xd4\x7e\xe6\x84\x04\x68\x43\x90\x03\x6d\xd8\x96\x76\x8b\xa8\x59\x57\x72\x79\x85\xe4\x81\x7e\x75\xbc\x8a\x8a\x68\xaf\x52\x54\x8e\x22\x95\x11\x63\xd0\x98\x98\x8e\x44\x55\x7c\x4f\x53\x66\xff\x56\x8f\x60\xd5\x6d\x95\x52\x43\x5c\x49\x59\x29\x6d\xfb\x58\x6b\x75\x30\x75\x1c\x60\x6c\x82\x14\x81\x46\x63\x11\x67\x61\x8f\xe2\x77\x3a\x8d\xf3\x8d\x34\x94\xc1\x5e\x16\x53\x85\x54\x2c\x70\xc3\x00\x00\x00\x00", /* 5700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x40\x5e\xf7\x50\x5c\x4e\xad\x5e\xad\x63\x3a\x82\x47\x90\x1a\x68\x50\x91\x6e\x77\xb3\x54\x0c\x94\xdc\x5f\x64\x7a\xe5\x68\x76\x63\x45\x7b\x52\x7e\xdf\x75\xdb\x50\x77\x62\x95\x59\x34\x90\x0f\x51\xf8\x79\xc3\x7a\x81\x56\xfe\x5f\x92\x90\x14\x6d\x82\x5c\x60\x57\x1f\x54\x10\x51\x54\x6e\x4d\x56\xe2\x63\xa8\x98\x93\x81\x7f\x87\x15\x89\x2a\x90\x00\x54\x1e\x5c\x6f\x81\xc0\x62\xd6\x62\x58\x81\x31\x9e\x35\x96\x40\x9a\x6e\x9a\x7c\x69\x2d\x59\xa5\x62\xd3\x55\x3e\x63\x16\x54\xc7\x86\xd9\x6d\x3c\x5a\x03\x74\xe6", /* 5780 */ "\x00\x00\x88\x9c\x6b\x6a\x59\x16\x8c\x4c\x5f\x2f\x6e\x7e\x73\xa9\x98\x7d\x4e\x38\x70\xf7\x5b\x8c\x78\x97\x63\x3d\x66\x5a\x76\x96\x60\xcb\x5b\x9b\x5a\x49\x4e\x07\x81\x55\x6c\x6a\x73\x8b\x4e\xa1\x67\x89\x7f\x51\x5f\x80\x65\xfa\x67\x1b\x5f\xd8\x59\x84\x5a\x01\x5d\xcd\x5f\xae\x53\x71\x97\xe6\x8f\xdd\x68\x45\x56\xf4\x55\x2f\x60\xdf\x4e\x3a\x6f\x4d\x7e\xf4\x82\xc7\x84\x0e\x59\xd4\x4f\x1f\x4f\x2a\x5c\x3e\x7e\xac\x67\x2a\x85\x1a\x54\x73\x75\x4f\x80\xc3\x55\x82\x9b\x4f\x4f\x4d\x6e\x2d\x8c\x13\x5c\x09\x61\x70\x53\x6b\x76\x1f\x6e\x29\x86\x8a\x65\x87\x95\xfb\x7e\xb9\x54\x3b\x7a\x33\x7d\x0a\x95\xee\x55\xe1\x7f\xc1\x74\xee\x63\x1d\x87\x17\x6d\xa1\x7a\x9d\x62\x11\x65\xa1\x53\x67\x63\xe1\x6c\x83\x5d\xeb\x54\x5c\x94\xa8\x4e\x4c\x6c\x61\x8b\xec\x5c\x4b\x65\xe0\x82\x9c\x68\xa7\x54\x3e\x54\x34\x6b\xcb\x6b\x66\x4e\x94\x63\x42\x53\x48\x82\x1e\x4f\x0d\x4f\xae\x57\x5e\x62\x0a\x96\xfe\x66\x64\x72\x69\x52\xff\x52\xa1\x60\x9f\x8b\xef\x66\x14\x71\x99\x67\x90\x89\x7f\x78\x52\x77\xfd\x66\x70\x56\x3b\x54\x38\x95\x21\x72\x7a\x00\x00\x00\x00", /* 5800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x00\x60\x6f\x5e\x0c\x60\x89\x81\x9d\x59\x15\x60\xdc\x71\x84\x70\xef\x6e\xaa\x6c\x50\x72\x80\x6a\x84\x88\xad\x5e\x2d\x4e\x60\x5a\xb3\x55\x9c\x94\xe3\x6d\x17\x7c\xfb\x96\x99\x62\x0f\x7e\xc6\x77\x8e\x86\x7e\x53\x23\x97\x1e\x8f\x96\x66\x87\x5c\xe1\x4f\xa0\x72\xed\x4e\x0b\x53\xa6\x59\x0f\x54\x13\x63\x80\x95\x28\x51\x48\x4e\xd9\x9c\x9c\x7e\xa4\x54\xb8\x8d\x24\x88\x54\x82\x37\x95\xf2\x6d\x8e\x5f\x26\x5a\xcc\x66\x3e\x96\x69\x73\xb0\x73\x2e\x53\xbf\x81\x7a\x99\x85\x7f\xa1\x5b\xaa\x96\x77\x96\x50\x7e\xbf", /* 5880 */ "\x00\x00\x76\xf8\x53\xa2\x95\x76\x99\x99\x7b\xb1\x89\x44\x6e\x58\x4e\x61\x7f\xd4\x79\x65\x8b\xe6\x60\xf3\x54\xcd\x4e\xab\x98\x79\x5d\xf7\x6a\x61\x50\xcf\x54\x11\x8c\x61\x84\x27\x78\x5d\x97\x04\x52\x4a\x54\xee\x56\xa3\x95\x00\x6d\x88\x5b\xb5\x6d\xc6\x66\x53\x5c\x0f\x5b\x5d\x68\x21\x80\x96\x55\x78\x7b\x11\x65\x48\x69\x54\x4e\x9b\x6b\x47\x87\x4e\x97\x8b\x53\x4f\x63\x1f\x64\x3a\x90\xaa\x65\x9c\x80\xc1\x8c\x10\x51\x99\x68\xb0\x53\x78\x87\xf9\x61\xc8\x6c\xc4\x6c\xfb\x8c\x22\x5c\x51\x85\xaa\x82\xaf\x95\x0c\x6b\x23\x8f\x9b\x65\xb0\x5f\xfb\x5f\xc3\x4f\xe1\x88\x45\x66\x1f\x81\x65\x73\x29\x60\xfa\x51\x74\x52\x11\x57\x8b\x5f\x62\x90\xa2\x88\x4c\x91\x92\x5e\x78\x67\x4f\x60\x27\x59\xd3\x51\x44\x51\xf6\x80\xf8\x53\x08\x6c\x79\x96\xc4\x71\x8a\x4f\x11\x4f\xee\x7f\x9e\x67\x3d\x55\xc5\x95\x08\x79\xc0\x88\x96\x7e\xe3\x58\x9f\x62\x0c\x97\x00\x86\x5a\x56\x18\x98\x7b\x5f\x90\x8b\xb8\x84\xc4\x91\x57\x53\xd9\x65\xed\x5e\x8f\x75\x5c\x60\x64\x7d\x6e\x5a\x7f\x7e\xea\x7e\xed\x8f\x69\x55\xa7\x5b\xa3\x60\xac\x65\xcb\x73\x84\x00\x00\x00\x00", /* 5900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x09\x76\x63\x77\x29\x7e\xda\x97\x74\x85\x9b\x5b\x66\x7a\x74\x96\xea\x88\x40\x52\xcb\x71\x8f\x5f\xaa\x65\xec\x8b\xe2\x5b\xfb\x9a\x6f\x5d\xe1\x6b\x89\x6c\x5b\x8b\xad\x8b\xaf\x90\x0a\x8f\xc5\x53\x8b\x62\xbc\x9e\x26\x9e\x2d\x54\x40\x4e\x2b\x82\xbd\x72\x59\x86\x9c\x5d\x16\x88\x59\x6d\xaf\x96\xc5\x54\xd1\x4e\x9a\x8b\xb6\x71\x09\x54\xbd\x96\x09\x70\xdf\x6d\xf9\x76\xd0\x4e\x25\x78\x14\x87\x12\x5c\xa9\x5e\xf6\x8a\x00\x98\x9c\x96\x0e\x70\x8e\x6c\xbf\x59\x44\x63\xa9\x77\x3c\x88\x4d\x6f\x14\x82\x73\x58\x30", /* 5980 */ "\x00\x00\x71\xd5\x53\x8c\x78\x1a\x96\xc1\x55\x01\x5f\x66\x71\x30\x5b\xb4\x8c\x1a\x9a\x8c\x6b\x83\x59\x2e\x9e\x2f\x79\xe7\x67\x68\x62\x6c\x4f\x6f\x75\xa1\x7f\x8a\x6d\x0b\x96\x33\x6c\x27\x4e\xf0\x75\xd2\x51\x7b\x68\x37\x6f\x3e\x90\x80\x81\x70\x59\x96\x74\x76\x64\x47\x5c\x27\x90\x65\x7a\x91\x8c\x23\x59\xda\x54\xac\x82\x00\x83\x6f\x89\x81\x80\x00\x69\x30\x56\x4e\x80\x36\x72\x37\x91\xce\x51\xb6\x4e\x5f\x98\x75\x63\x96\x4e\x1a\x53\xf6\x66\xf3\x81\x4b\x59\x1c\x6d\xb2\x4e\x00\x58\xf9\x53\x3b\x63\xd6\x94\xf1\x4f\x9d\x4f\x0a\x88\x63\x98\x90\x59\x37\x90\x57\x79\xfb\x4e\xea\x80\xf0\x75\x91\x6c\x82\x5b\x9c\x59\xe8\x5f\x5d\x69\x05\x86\x81\x50\x1a\x5d\xf2\x4e\x59\x77\xe3\x4e\xe5\x82\x7a\x62\x91\x66\x13\x90\x91\x5c\x79\x4e\xbf\x5f\x79\x81\xc6\x90\x38\x80\x84\x75\xab\x4e\xa6\x88\xd4\x61\x0f\x6b\xc5\x5f\xc6\x4e\x49\x76\xca\x6e\xa2\x8b\xe3\x8b\xae\x8c\x0a\x8b\xd1\x5f\x02\x7f\xfc\x7f\xcc\x7e\xce\x83\x35\x83\x6b\x56\xe0\x6b\xb7\x97\xf3\x96\x34\x59\xfb\x54\x1f\x94\xf6\x6d\xeb\x5b\xc5\x99\x6e\x5c\x39\x5f\x15\x96\x90\x00\x00\x00\x00", /* 5a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x70\x82\xf1\x6a\x31\x5a\x74\x9e\x70\x5e\x94\x7f\x28\x83\xb9\x84\x24\x84\x25\x83\x67\x87\x47\x8f\xce\x8d\x62\x76\xc8\x5f\x71\x98\x96\x78\x6c\x66\x20\x54\xdf\x62\xe5\x4f\x63\x81\xc3\x75\xc8\x5e\xb8\x96\xcd\x8e\x0a\x86\xf9\x54\x8f\x6c\xf3\x6d\x8c\x6c\x38\x60\x7f\x52\xc7\x75\x28\x5e\x7d\x4f\x18\x60\xa0\x5f\xe7\x5c\x24\x75\x31\x90\xae\x94\xc0\x72\xb9\x6c\xb9\x6e\x38\x91\x49\x67\x09\x53\xcb\x53\xf3\x4f\x51\x91\xc9\x8b\xf1\x53\xc8\x5e\x7c\x8f\xc2\x6d\xe4\x4e\x8e\x76\xc2\x69\x86\x86\x5e\x61\x1a\x82\x06", /* 5a80 */ "\x00\x00\x4f\x59\x4f\xde\x90\x3e\x9c\x7c\x61\x09\x6e\x1d\x6e\x14\x96\x85\x4e\x88\x5a\x31\x96\xe8\x4e\x0e\x5c\x7f\x79\xb9\x5b\x87\x8b\xed\x7f\xbd\x73\x89\x57\xdf\x82\x8b\x90\xc1\x54\x01\x90\x47\x55\xbb\x5c\xea\x5f\xa1\x61\x08\x6b\x32\x72\xf1\x80\xb2\x8a\x89\x6d\x74\x5b\xd3\x88\xd5\x98\x84\x8c\x6b\x9a\x6d\x9e\x33\x6e\x0a\x51\xa4\x51\x43\x57\xa3\x88\x81\x53\x9f\x63\xf4\x8f\x95\x56\xed\x54\x58\x57\x06\x73\x3f\x6e\x90\x7f\x18\x8f\xdc\x82\xd1\x61\x3f\x60\x28\x96\x62\x66\xf0\x7e\xa6\x8d\x8a\x8d\xc3\x94\xa5\x5c\xb3\x7c\xa4\x67\x08\x60\xa6\x96\x05\x80\x18\x4e\x91\x90\xe7\x53\x00\x96\x68\x51\x41\x8f\xd0\x85\x74\x91\x5d\x66\x55\x97\xf5\x5b\x55\x53\x1d\x78\x38\x67\x42\x68\x3d\x54\xc9\x70\x7e\x5b\xb0\x8f\x7d\x51\x8d\x57\x28\x54\xb1\x65\x12\x66\x82\x8d\x5e\x8d\x43\x81\x0f\x84\x6c\x90\x6d\x7c\xdf\x51\xff\x85\xfb\x67\xa3\x65\xe9\x6f\xa1\x86\xa4\x8e\x81\x56\x6a\x90\x20\x76\x82\x70\x76\x71\xe5\x8d\x23\x62\xe9\x52\x19\x6c\xfd\x8d\x3c\x60\x0e\x58\x9e\x61\x8e\x66\xfe\x8d\x60\x62\x4e\x55\xb3\x6e\x23\x67\x2d\x8f\x67\x00\x00\x00\x00", /* 5b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe1\x95\xf8\x77\x28\x68\x05\x69\xa8\x54\x8b\x4e\x4d\x70\xb8\x8b\xc8\x64\x58\x65\x8b\x5b\x85\x7a\x84\x50\x3a\x5b\xe8\x77\xbb\x6b\xe1\x8a\x79\x7c\x98\x6c\xbe\x76\xcf\x65\xa9\x8f\x97\x5d\x2d\x5c\x55\x86\x38\x68\x08\x53\x60\x62\x18\x7a\xd9\x6e\x5b\x7e\xfd\x6a\x1f\x7a\xe0\x5f\x70\x6f\x33\x5f\x20\x63\x8c\x6d\xa8\x67\x56\x4e\x08\x5e\x10\x8d\x26\x4e\xd7\x80\xc0\x76\x34\x96\x9c\x62\xdb\x66\x2d\x62\x7e\x6c\xbc\x8d\x75\x71\x67\x7f\x69\x51\x46\x80\x87\x53\xec\x90\x6e\x62\x98\x54\xf2\x86\xf0\x8f\x99\x80\x05", /* 5b80 */ "\x00\x00\x95\x17\x85\x17\x8f\xd9\x6d\x59\x73\xcd\x65\x9f\x77\x1f\x75\x04\x78\x27\x81\xfb\x8d\x1e\x94\x88\x4f\xa6\x67\x95\x75\xb9\x8b\xca\x97\x07\x63\x2f\x95\x47\x96\x35\x84\xb8\x63\x23\x77\x41\x5f\x81\x72\xf0\x4e\x89\x60\x14\x65\x74\x62\xef\x6b\x63\x65\x3f\x5e\x27\x75\xc7\x90\xd1\x8b\xc1\x82\x9d\x67\x9d\x65\x2f\x54\x31\x87\x18\x77\xe5\x80\xa2\x81\x02\x6c\x41\x4e\x4b\x7e\xc7\x80\x4c\x76\xf4\x69\x0d\x6b\x96\x62\x67\x50\x3c\x4f\x84\x57\x40\x63\x07\x6b\x62\x8d\xbe\x53\xea\x65\xe8\x7e\xb8\x5f\xd7\x63\x1a\x63\xb7\x81\xf3\x81\xf4\x7f\x6e\x5e\x1c\x5c\xd9\x52\x36\x66\x7a\x79\xe9\x7a\x1a\x8d\x28\x70\x99\x75\xd4\x6e\xde\x6c\xbb\x7a\x92\x4e\x2d\x76\xc5\x5f\xe0\x94\x9f\x88\x77\x7e\xc8\x79\xcd\x80\xbf\x91\xcd\x4e\xf2\x4f\x17\x82\x1f\x54\x68\x5d\xde\x6d\x32\x8b\xcc\x7c\xa5\x8f\x74\x80\x98\x5e\x1a\x54\x92\x76\xb1\x5b\x99\x66\x3c\x9a\xa4\x73\xe0\x68\x2a\x86\xdb\x67\x31\x73\x2a\x8b\xf8\x8b\xdb\x90\x10\x7a\xf9\x70\xdb\x71\x6e\x62\xc4\x77\xa9\x56\x31\x4e\x3b\x84\x57\x67\xf1\x52\xa9\x86\xc0\x8d\x2e\x94\xf8\x7b\x51\x00\x00\x00\x00", /* 5c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x4f\x6c\xe8\x79\x5d\x9a\x7b\x62\x93\x72\x2a\x62\xfd\x4e\x13\x78\x16\x8f\x6c\x64\xb0\x8d\x5a\x7b\xc6\x68\x69\x5e\x84\x88\xc5\x59\x86\x64\x9e\x58\xee\x72\xb6\x69\x0e\x95\x25\x8f\xfd\x8d\x58\x57\x60\x7f\x00\x8c\x06\x51\xc6\x63\x49\x62\xd9\x53\x53\x68\x4c\x74\x22\x83\x01\x91\x4c\x55\x44\x77\x40\x70\x7c\x6d\x4a\x51\x79\x54\xa8\x8d\x44\x59\xff\x6e\xcb\x6d\xc4\x5b\x5c\x7d\x2b\x4e\xd4\x7c\x7d\x6e\xd3\x5b\x50\x81\xea\x6e\x0d\x5b\x57\x9b\x03\x68\xd5\x8e\x2a\x5b\x97\x7e\xfc\x60\x3b\x7e\xb5\x90\xb9\x8d\x70", /* 5c80 */ "\x00\x00\x59\x4f\x63\xcd\x79\xdf\x8d\xb3\x53\x52\x65\xcf\x79\x56\x8b\xc5\x96\x3b\x7e\xc4\x94\xbb\x7e\x82\x56\x34\x91\x89\x67\x00\x7f\x6a\x5c\x0a\x90\x75\x66\x28\x5d\xe6\x4f\x50\x67\xde\x50\x5a\x4f\x5c\x57\x50\x5e\xa7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x8d\x4e\x0c\x51\x40\x4e\x10\x5e\xff\x53\x45\x4e\x15\x4e\x98\x4e\x1e\x9b\x32\x5b\x6c\x56\x69\x4e\x28\x79\xba\x4e\x3f\x53\x15\x4e\x47\x59\x2d\x72\x3b\x53\x6e\x6c\x10\x56\xdf\x80\xe4\x99\x97\x6b\xd3\x77\x7e\x9f\x17\x4e\x36\x4e\x9f\x9f\x10\x4e\x5c\x4e\x69\x4e\x93\x82\x88\x5b\x5b\x55\x6c\x56\x0f\x4e\xc4\x53\x8d\x53\x9d\x53\xa3\x53\xa5\x53\xae\x97\x65\x8d\x5d\x53\x1a\x53\xf5\x53\x26\x53\x2e\x53\x3e\x8d\x5c\x53\x66\x53\x63\x52\x02\x52\x08\x52\x0e\x52\x2d\x52\x33\x52\x3f\x52\x40\x52\x4c\x52\x5e\x52\x61\x52\x5c\x84\xaf\x52\x7d\x52\x82\x52\x81\x52\x90\x52\x93\x51\x82\x7f\x54\x4e\xbb\x4e\xc3\x4e\xc9\x4e\xc2\x4e\xe8\x4e\xe1\x4e\xeb\x4e\xde\x4f\x1b\x4e\xf3\x4f\x22\x4f\x64\x4e\xf5\x4f\x25\x4f\x27\x4f\x09\x4f\x2b\x4f\x5e\x4f\x67\x65\x38\x4f\x5a\x4f\x5d\x00\x00\x00\x00", /* 5d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x5f\x4f\x57\x4f\x32\x4f\x3d\x4f\x76\x4f\x74\x4f\x91\x4f\x89\x4f\x83\x4f\x8f\x4f\x7e\x4f\x7b\x4f\xaa\x4f\x7c\x4f\xac\x4f\x94\x4f\xe6\x4f\xe8\x4f\xea\x4f\xc5\x4f\xda\x4f\xe3\x4f\xdc\x4f\xd1\x4f\xdf\x4f\xf8\x50\x29\x50\x4c\x4f\xf3\x50\x2c\x50\x0f\x50\x2e\x50\x2d\x4f\xfe\x50\x1c\x50\x0c\x50\x25\x50\x28\x50\x7e\x50\x43\x50\x55\x50\x48\x50\x4e\x50\x6c\x50\x7b\x50\xa5\x50\xa7\x50\xa9\x50\xba\x50\xd6\x51\x06\x50\xed\x50\xec\x50\xe6\x50\xee\x51\x07\x51\x0b\x4e\xdd\x6c\x3d\x4f\x58\x4f\x65\x4f\xce\x9f\xa0", /* 5d80 */ "\x00\x00\x6c\x46\x7c\x74\x51\x6e\x5d\xfd\x9e\xc9\x99\x98\x51\x81\x59\x14\x52\xf9\x53\x0d\x8a\x07\x53\x10\x51\xeb\x59\x19\x51\x55\x4e\xa0\x51\x56\x4e\xb3\x88\x6e\x88\xa4\x4e\xb5\x81\x14\x88\xd2\x79\x80\x5b\x34\x88\x03\x7f\xb8\x51\xab\x51\xb1\x51\xbd\x51\xbc\x51\xc7\x51\x96\x51\xa2\x51\xa5\x8b\xa0\x8b\xa6\x8b\xa7\x8b\xaa\x8b\xb4\x8b\xb5\x8b\xb7\x8b\xc2\x8b\xc3\x8b\xcb\x8b\xcf\x8b\xce\x8b\xd2\x8b\xd3\x8b\xd4\x8b\xd6\x8b\xd8\x8b\xd9\x8b\xdc\x8b\xdf\x8b\xe0\x8b\xe4\x8b\xe8\x8b\xe9\x8b\xee\x8b\xf0\x8b\xf3\x8b\xf6\x8b\xf9\x8b\xfc\x8b\xff\x8c\x00\x8c\x02\x8c\x04\x8c\x07\x8c\x0c\x8c\x0f\x8c\x11\x8c\x12\x8c\x14\x8c\x15\x8c\x16\x8c\x19\x8c\x1b\x8c\x18\x8c\x1d\x8c\x1f\x8c\x20\x8c\x21\x8c\x25\x8c\x27\x8c\x2a\x8c\x2b\x8c\x2e\x8c\x2f\x8c\x32\x8c\x33\x8c\x35\x8c\x36\x53\x69\x53\x7a\x96\x1d\x96\x22\x96\x21\x96\x31\x96\x2a\x96\x3d\x96\x3c\x96\x42\x96\x49\x96\x54\x96\x5f\x96\x67\x96\x6c\x96\x72\x96\x74\x96\x88\x96\x8d\x96\x97\x96\xb0\x90\x97\x90\x9b\x90\x9d\x90\x99\x90\xac\x90\xa1\x90\xb4\x90\xb3\x90\xb6\x90\xba\x00\x00\x00\x00", /* 5e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xb8\x90\xb0\x90\xcf\x90\xc5\x90\xbe\x90\xd0\x90\xc4\x90\xc7\x90\xd3\x90\xe6\x90\xe2\x90\xdc\x90\xd7\x90\xdb\x90\xeb\x90\xef\x90\xfe\x91\x04\x91\x22\x91\x1e\x91\x23\x91\x31\x91\x2f\x91\x39\x91\x43\x91\x46\x52\x0d\x59\x42\x52\xa2\x52\xac\x52\xad\x52\xbe\x54\xff\x52\xd0\x52\xd6\x52\xf0\x53\xdf\x71\xee\x77\xcd\x5e\xf4\x51\xf5\x51\xfc\x9b\x2f\x53\xb6\x5f\x01\x75\x5a\x5d\xef\x57\x4c\x57\xa9\x57\xa1\x58\x7e\x58\xbc\x58\xc5\x58\xd1\x57\x29\x57\x2c\x57\x2a\x57\x33\x57\x39\x57\x2e\x57\x2f\x57\x5c\x57\x3b", /* 5e80 */ "\x00\x00\x57\x42\x57\x69\x57\x85\x57\x6b\x57\x86\x57\x7c\x57\x7b\x57\x68\x57\x6d\x57\x76\x57\x73\x57\xad\x57\xa4\x57\x8c\x57\xb2\x57\xcf\x57\xa7\x57\xb4\x57\x93\x57\xa0\x57\xd5\x57\xd8\x57\xda\x57\xd9\x57\xd2\x57\xb8\x57\xf4\x57\xef\x57\xf8\x57\xe4\x57\xdd\x58\x0b\x58\x0d\x57\xfd\x57\xed\x58\x00\x58\x1e\x58\x19\x58\x44\x58\x20\x58\x65\x58\x6c\x58\x81\x58\x89\x58\x9a\x58\x80\x99\xa8\x9f\x19\x61\xff\x82\x79\x82\x7d\x82\x7f\x82\x8f\x82\x8a\x82\xa8\x82\x84\x82\x8e\x82\x91\x82\x97\x82\x99\x82\xab\x82\xb8\x82\xbe\x82\xb0\x82\xc8\x82\xca\x82\xe3\x82\x98\x82\xb7\x82\xae\x82\xcb\x82\xcc\x82\xc1\x82\xa9\x82\xb4\x82\xa1\x82\xaa\x82\x9f\x82\xc4\x82\xce\x82\xa4\x82\xe1\x83\x09\x82\xf7\x82\xe4\x83\x0f\x83\x07\x82\xdc\x82\xf4\x82\xd2\x82\xd8\x83\x0c\x82\xfb\x82\xd3\x83\x11\x83\x1a\x83\x06\x83\x14\x83\x15\x82\xe0\x82\xd5\x83\x1c\x83\x51\x83\x5b\x83\x5c\x83\x08\x83\x92\x83\x3c\x83\x34\x83\x31\x83\x9b\x83\x5e\x83\x2f\x83\x4f\x83\x47\x83\x43\x83\x5f\x83\x40\x83\x17\x83\x60\x83\x2d\x83\x3a\x83\x33\x83\x66\x83\x65\x00\x00\x00\x00", /* 5f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x68\x83\x1b\x83\x69\x83\x6c\x83\x6a\x83\x6d\x83\x6e\x83\xb0\x83\x78\x83\xb3\x83\xb4\x83\xa0\x83\xaa\x83\x93\x83\x9c\x83\x85\x83\x7c\x83\xb6\x83\xa9\x83\x7d\x83\xb8\x83\x7b\x83\x98\x83\x9e\x83\xa8\x83\xba\x83\xbc\x83\xc1\x84\x01\x83\xe5\x83\xd8\x58\x07\x84\x18\x84\x0b\x83\xdd\x83\xfd\x83\xd6\x84\x1c\x84\x38\x84\x11\x84\x06\x83\xd4\x83\xdf\x84\x0f\x84\x03\x83\xf8\x83\xf9\x83\xea\x83\xc5\x83\xc0\x84\x26\x83\xf0\x83\xe1\x84\x5c\x84\x51\x84\x5a\x84\x59\x84\x73\x84\x87\x84\x88\x84\x7a\x84\x89\x84\x78", /* 5f80 */ "\x00\x00\x84\x3c\x84\x46\x84\x69\x84\x76\x84\x8c\x84\x8e\x84\x31\x84\x6d\x84\xc1\x84\xcd\x84\xd0\x84\xe6\x84\xbd\x84\xd3\x84\xca\x84\xbf\x84\xba\x84\xe0\x84\xa1\x84\xb9\x84\xb4\x84\x97\x84\xe5\x84\xe3\x85\x0c\x75\x0d\x85\x38\x84\xf0\x85\x39\x85\x1f\x85\x3a\x85\x56\x85\x3b\x84\xff\x84\xfc\x85\x59\x85\x48\x85\x68\x85\x64\x85\x5e\x85\x7a\x77\xa2\x85\x43\x85\x72\x85\x7b\x85\xa4\x85\xa8\x85\x87\x85\x8f\x85\x79\x85\xae\x85\x9c\x85\x85\x85\xb9\x85\xb7\x85\xb0\x85\xd3\x85\xc1\x85\xdc\x85\xff\x86\x27\x86\x05\x86\x29\x86\x16\x86\x3c\x5e\xfe\x5f\x08\x59\x3c\x59\x41\x80\x37\x59\x55\x59\x5a\x59\x58\x53\x0f\x5c\x22\x5c\x25\x5c\x2c\x5c\x34\x62\x4c\x62\x6a\x62\x9f\x62\xbb\x62\xca\x62\xda\x62\xd7\x62\xee\x63\x22\x62\xf6\x63\x39\x63\x4b\x63\x43\x63\xad\x63\xf6\x63\x71\x63\x7a\x63\x8e\x63\xb4\x63\x6d\x63\xac\x63\x8a\x63\x69\x63\xae\x63\xbc\x63\xf2\x63\xf8\x63\xe0\x63\xff\x63\xc4\x63\xde\x63\xce\x64\x52\x63\xc6\x63\xbe\x64\x45\x64\x41\x64\x0b\x64\x1b\x64\x20\x64\x0c\x64\x26\x64\x21\x64\x5e\x64\x84\x64\x6d\x64\x96\x00\x00\x00\x00", /* 6000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x7a\x64\xb7\x64\xb8\x64\x99\x64\xba\x64\xc0\x64\xd0\x64\xd7\x64\xe4\x64\xe2\x65\x09\x65\x25\x65\x2e\x5f\x0b\x5f\xd2\x75\x19\x5f\x11\x53\x5f\x53\xf1\x53\xfd\x53\xe9\x53\xe8\x53\xfb\x54\x12\x54\x16\x54\x06\x54\x4b\x54\x52\x54\x53\x54\x54\x54\x56\x54\x43\x54\x21\x54\x57\x54\x59\x54\x23\x54\x32\x54\x82\x54\x94\x54\x77\x54\x71\x54\x64\x54\x9a\x54\x9b\x54\x84\x54\x76\x54\x66\x54\x9d\x54\xd0\x54\xad\x54\xc2\x54\xb4\x54\xd2\x54\xa7\x54\xa6\x54\xd3\x54\xd4\x54\x72\x54\xa3\x54\xd5\x54\xbb\x54\xbf\x54\xcc", /* 6080 */ "\x00\x00\x54\xd9\x54\xda\x54\xdc\x54\xa9\x54\xaa\x54\xa4\x54\xdd\x54\xcf\x54\xde\x55\x1b\x54\xe7\x55\x20\x54\xfd\x55\x14\x54\xf3\x55\x22\x55\x23\x55\x0f\x55\x11\x55\x27\x55\x2a\x55\x67\x55\x8f\x55\xb5\x55\x49\x55\x6d\x55\x41\x55\x55\x55\x3f\x55\x50\x55\x3c\x55\x37\x55\x56\x55\x75\x55\x76\x55\x77\x55\x33\x55\x30\x55\x5c\x55\x8b\x55\xd2\x55\x83\x55\xb1\x55\xb9\x55\x88\x55\x81\x55\x9f\x55\x7e\x55\xd6\x55\x91\x55\x7b\x55\xdf\x55\xbd\x55\xbe\x55\x94\x55\x99\x55\xea\x55\xf7\x55\xc9\x56\x1f\x55\xd1\x55\xeb\x55\xec\x55\xd4\x55\xe6\x55\xdd\x55\xc4\x55\xef\x55\xe5\x55\xf2\x55\xf3\x55\xcc\x55\xcd\x55\xe8\x55\xf5\x55\xe4\x8f\x94\x56\x1e\x56\x08\x56\x0c\x56\x01\x56\x24\x56\x23\x55\xfe\x56\x00\x56\x27\x56\x2d\x56\x58\x56\x39\x56\x57\x56\x2c\x56\x4d\x56\x62\x56\x59\x56\x5c\x56\x4c\x56\x54\x56\x86\x56\x64\x56\x71\x56\x6b\x56\x7b\x56\x7c\x56\x85\x56\x93\x56\xaf\x56\xd4\x56\xd7\x56\xdd\x56\xe1\x56\xf5\x56\xeb\x56\xf9\x56\xff\x57\x04\x57\x0a\x57\x09\x57\x1c\x5e\x0f\x5e\x19\x5e\x14\x5e\x11\x5e\x31\x5e\x3b\x5e\x3c\x00\x00\x00\x00", /* 6100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x37\x5e\x44\x5e\x54\x5e\x5b\x5e\x5e\x5e\x61\x5c\x8c\x5c\x7a\x5c\x8d\x5c\x90\x5c\x96\x5c\x88\x5c\x98\x5c\x99\x5c\x91\x5c\x9a\x5c\x9c\x5c\xb5\x5c\xa2\x5c\xbd\x5c\xac\x5c\xab\x5c\xb1\x5c\xa3\x5c\xc1\x5c\xb7\x5c\xc4\x5c\xd2\x5c\xe4\x5c\xcb\x5c\xe5\x5d\x02\x5d\x03\x5d\x27\x5d\x26\x5d\x2e\x5d\x24\x5d\x1e\x5d\x06\x5d\x1b\x5d\x58\x5d\x3e\x5d\x34\x5d\x3d\x5d\x6c\x5d\x5b\x5d\x6f\x5d\x5d\x5d\x6b\x5d\x4b\x5d\x4a\x5d\x69\x5d\x74\x5d\x82\x5d\x99\x5d\x9d\x8c\x73\x5d\xb7\x5d\xc5\x5f\x73\x5f\x77\x5f\x82\x5f\x87", /* 6180 */ "\x00\x00\x5f\x89\x5f\x8c\x5f\x95\x5f\x99\x5f\x9c\x5f\xa8\x5f\xad\x5f\xb5\x5f\xbc\x88\x62\x5f\x61\x72\xad\x72\xb0\x72\xb4\x72\xb7\x72\xb8\x72\xc3\x72\xc1\x72\xce\x72\xcd\x72\xd2\x72\xe8\x72\xef\x72\xe9\x72\xf2\x72\xf4\x72\xf7\x73\x01\x72\xf3\x73\x03\x72\xfa\x72\xfb\x73\x17\x73\x13\x73\x21\x73\x0a\x73\x1e\x73\x1d\x73\x15\x73\x22\x73\x39\x73\x25\x73\x2c\x73\x38\x73\x31\x73\x50\x73\x4d\x73\x57\x73\x60\x73\x6c\x73\x6f\x73\x7e\x82\x1b\x59\x25\x98\xe7\x59\x24\x59\x02\x99\x63\x99\x67\x99\x68\x99\x69\x99\x6a\x99\x6b\x99\x6c\x99\x74\x99\x77\x99\x7d\x99\x80\x99\x84\x99\x87\x99\x8a\x99\x8d\x99\x90\x99\x91\x99\x93\x99\x94\x99\x95\x5e\x80\x5e\x91\x5e\x8b\x5e\x96\x5e\xa5\x5e\xa0\x5e\xb9\x5e\xb5\x5e\xbe\x5e\xb3\x8d\x53\x5e\xd2\x5e\xd1\x5e\xdb\x5e\xe8\x5e\xea\x81\xba\x5f\xc4\x5f\xc9\x5f\xd6\x5f\xcf\x60\x03\x5f\xee\x60\x04\x5f\xe1\x5f\xe4\x5f\xfe\x60\x05\x60\x06\x5f\xea\x5f\xed\x5f\xf8\x60\x19\x60\x35\x60\x26\x60\x1b\x60\x0f\x60\x0d\x60\x29\x60\x2b\x60\x0a\x60\x3f\x60\x21\x60\x78\x60\x79\x60\x7b\x60\x7a\x60\x42\x00\x00\x00\x00", /* 6200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x6a\x60\x7d\x60\x96\x60\x9a\x60\xad\x60\x9d\x60\x83\x60\x92\x60\x8c\x60\x9b\x60\xec\x60\xbb\x60\xb1\x60\xdd\x60\xd8\x60\xc6\x60\xda\x60\xb4\x61\x20\x61\x26\x61\x15\x61\x23\x60\xf4\x61\x00\x61\x0e\x61\x2b\x61\x4a\x61\x75\x61\xac\x61\x94\x61\xa7\x61\xb7\x61\xd4\x61\xf5\x5f\xdd\x96\xb3\x95\xe9\x95\xeb\x95\xf1\x95\xf3\x95\xf5\x95\xf6\x95\xfc\x95\xfe\x96\x03\x96\x04\x96\x06\x96\x08\x96\x0a\x96\x0b\x96\x0c\x96\x0d\x96\x0f\x96\x12\x96\x15\x96\x16\x96\x17\x96\x19\x96\x1a\x4e\x2c\x72\x3f\x62\x15\x6c\x35", /* 6280 */ "\x00\x00\x6c\x54\x6c\x5c\x6c\x4a\x6c\xa3\x6c\x85\x6c\x90\x6c\x94\x6c\x8c\x6c\x68\x6c\x69\x6c\x74\x6c\x76\x6c\x86\x6c\xa9\x6c\xd0\x6c\xd4\x6c\xad\x6c\xf7\x6c\xf8\x6c\xf1\x6c\xd7\x6c\xb2\x6c\xe0\x6c\xd6\x6c\xfa\x6c\xeb\x6c\xee\x6c\xb1\x6c\xd3\x6c\xef\x6c\xfe\x6d\x39\x6d\x27\x6d\x0c\x6d\x43\x6d\x48\x6d\x07\x6d\x04\x6d\x19\x6d\x0e\x6d\x2b\x6d\x4d\x6d\x2e\x6d\x35\x6d\x1a\x6d\x4f\x6d\x52\x6d\x54\x6d\x33\x6d\x91\x6d\x6f\x6d\x9e\x6d\xa0\x6d\x5e\x6d\x93\x6d\x94\x6d\x5c\x6d\x60\x6d\x7c\x6d\x63\x6e\x1a\x6d\xc7\x6d\xc5\x6d\xde\x6e\x0e\x6d\xbf\x6d\xe0\x6e\x11\x6d\xe6\x6d\xdd\x6d\xd9\x6e\x16\x6d\xab\x6e\x0c\x6d\xae\x6e\x2b\x6e\x6e\x6e\x4e\x6e\x6b\x6e\xb2\x6e\x5f\x6e\x86\x6e\x53\x6e\x54\x6e\x32\x6e\x25\x6e\x44\x6e\xdf\x6e\xb1\x6e\x98\x6e\xe0\x6f\x2d\x6e\xe2\x6e\xa5\x6e\xa7\x6e\xbd\x6e\xbb\x6e\xb7\x6e\xd7\x6e\xb4\x6e\xcf\x6e\x8f\x6e\xc2\x6e\x9f\x6f\x62\x6f\x46\x6f\x47\x6f\x24\x6f\x15\x6e\xf9\x6f\x2f\x6f\x36\x6f\x4b\x6f\x74\x6f\x2a\x6f\x09\x6f\x29\x6f\x89\x6f\x8d\x6f\x8c\x6f\x78\x6f\x72\x6f\x7c\x6f\x7a\x6f\xd1\x00\x00\x00\x00", /* 6300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xc9\x6f\xa7\x6f\xb9\x6f\xb6\x6f\xc2\x6f\xe1\x6f\xee\x6f\xde\x6f\xe0\x6f\xef\x70\x1a\x70\x23\x70\x1b\x70\x39\x70\x35\x70\x4f\x70\x5e\x5b\x80\x5b\x84\x5b\x95\x5b\x93\x5b\xa5\x5b\xb8\x75\x2f\x9a\x9e\x64\x34\x5b\xe4\x5b\xee\x89\x30\x5b\xf0\x8e\x47\x8b\x07\x8f\xb6\x8f\xd3\x8f\xd5\x8f\xe5\x8f\xee\x8f\xe4\x8f\xe9\x8f\xe6\x8f\xf3\x8f\xe8\x90\x05\x90\x04\x90\x0b\x90\x26\x90\x11\x90\x0d\x90\x16\x90\x21\x90\x35\x90\x36\x90\x2d\x90\x2f\x90\x44\x90\x51\x90\x52\x90\x50\x90\x68\x90\x58\x90\x62\x90\x5b\x66\xb9", /* 6380 */ "\x00\x00\x90\x74\x90\x7d\x90\x82\x90\x88\x90\x83\x90\x8b\x5f\x50\x5f\x57\x5f\x56\x5f\x58\x5c\x3b\x54\xab\x5c\x50\x5c\x59\x5b\x71\x5c\x63\x5c\x66\x7f\xbc\x5f\x2a\x5f\x29\x5f\x2d\x82\x74\x5f\x3c\x9b\x3b\x5c\x6e\x59\x81\x59\x83\x59\x8d\x59\xa9\x59\xaa\x59\xa3\x59\x97\x59\xca\x59\xab\x59\x9e\x59\xa4\x59\xd2\x59\xb2\x59\xaf\x59\xd7\x59\xbe\x5a\x05\x5a\x06\x59\xdd\x5a\x08\x59\xe3\x59\xd8\x59\xf9\x5a\x0c\x5a\x09\x5a\x32\x5a\x34\x5a\x11\x5a\x23\x5a\x13\x5a\x40\x5a\x67\x5a\x4a\x5a\x55\x5a\x3c\x5a\x62\x5a\x75\x80\xec\x5a\xaa\x5a\x9b\x5a\x77\x5a\x7a\x5a\xbe\x5a\xeb\x5a\xb2\x5a\xd2\x5a\xd4\x5a\xb8\x5a\xe0\x5a\xe3\x5a\xf1\x5a\xd6\x5a\xe6\x5a\xd8\x5a\xdc\x5b\x09\x5b\x17\x5b\x16\x5b\x32\x5b\x37\x5b\x40\x5c\x15\x5c\x1c\x5b\x5a\x5b\x65\x5b\x73\x5b\x51\x5b\x53\x5b\x62\x9a\x75\x9a\x77\x9a\x78\x9a\x7a\x9a\x7f\x9a\x7d\x9a\x80\x9a\x81\x9a\x85\x9a\x88\x9a\x8a\x9a\x90\x9a\x92\x9a\x93\x9a\x96\x9a\x98\x9a\x9b\x9a\x9c\x9a\x9d\x9a\x9f\x9a\xa0\x9a\xa2\x9a\xa3\x9a\xa5\x9a\xa7\x7e\x9f\x7e\xa1\x7e\xa3\x7e\xa5\x7e\xa8\x7e\xa9\x00\x00\x00\x00", /* 6400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xad\x7e\xb0\x7e\xbe\x7e\xc0\x7e\xc1\x7e\xc2\x7e\xc9\x7e\xcb\x7e\xcc\x7e\xd0\x7e\xd4\x7e\xd7\x7e\xdb\x7e\xe0\x7e\xe1\x7e\xe8\x7e\xeb\x7e\xee\x7e\xef\x7e\xf1\x7e\xf2\x7f\x0d\x7e\xf6\x7e\xfa\x7e\xfb\x7e\xfe\x7f\x01\x7f\x02\x7f\x03\x7f\x07\x7f\x08\x7f\x0b\x7f\x0c\x7f\x0f\x7f\x11\x7f\x12\x7f\x17\x7f\x19\x7f\x1c\x7f\x1b\x7f\x1f\x7f\x21\x7f\x22\x7f\x23\x7f\x24\x7f\x25\x7f\x26\x7f\x27\x7f\x2a\x7f\x2b\x7f\x2c\x7f\x2d\x7f\x2f\x7f\x30\x7f\x31\x7f\x32\x7f\x33\x7f\x35\x5e\x7a\x75\x7f\x5d\xdb\x75\x3e\x90\x95", /* 6480 */ "\x00\x00\x73\x8e\x73\x91\x73\xae\x73\xa2\x73\x9f\x73\xcf\x73\xc2\x73\xd1\x73\xb7\x73\xb3\x73\xc0\x73\xc9\x73\xc8\x73\xe5\x73\xd9\x98\x7c\x74\x0a\x73\xe9\x73\xe7\x73\xde\x73\xba\x73\xf2\x74\x0f\x74\x2a\x74\x5b\x74\x26\x74\x25\x74\x28\x74\x30\x74\x2e\x74\x2c\x74\x1b\x74\x1a\x74\x41\x74\x5c\x74\x57\x74\x55\x74\x59\x74\x77\x74\x6d\x74\x7e\x74\x9c\x74\x8e\x74\x80\x74\x81\x74\x87\x74\x8b\x74\x9e\x74\xa8\x74\xa9\x74\x90\x74\xa7\x74\xd2\x74\xba\x97\xea\x97\xeb\x97\xec\x67\x4c\x67\x53\x67\x5e\x67\x48\x67\x69\x67\xa5\x67\x87\x67\x6a\x67\x73\x67\x98\x67\xa7\x67\x75\x67\xa8\x67\x9e\x67\xad\x67\x8b\x67\x77\x67\x7c\x67\xf0\x68\x09\x67\xd8\x68\x0a\x67\xe9\x67\xb0\x68\x0c\x67\xd9\x67\xb5\x67\xda\x67\xb3\x67\xdd\x68\x00\x67\xc3\x67\xb8\x67\xe2\x68\x0e\x67\xc1\x67\xfd\x68\x32\x68\x33\x68\x60\x68\x61\x68\x4e\x68\x62\x68\x44\x68\x64\x68\x83\x68\x1d\x68\x55\x68\x66\x68\x41\x68\x67\x68\x40\x68\x3e\x68\x4a\x68\x49\x68\x29\x68\xb5\x68\x8f\x68\x74\x68\x77\x68\x93\x68\x6b\x68\xc2\x69\x6e\x68\xfc\x69\x1f\x69\x20\x68\xf9\x00\x00\x00\x00", /* 6500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x24\x68\xf0\x69\x0b\x69\x01\x69\x57\x68\xe3\x69\x10\x69\x71\x69\x39\x69\x60\x69\x42\x69\x5d\x69\x84\x69\x6b\x69\x80\x69\x98\x69\x78\x69\x34\x69\xcc\x69\x87\x69\x88\x69\xce\x69\x89\x69\x66\x69\x63\x69\x79\x69\x9b\x69\xa7\x69\xbb\x69\xab\x69\xad\x69\xd4\x69\xb1\x69\xc1\x69\xca\x69\xdf\x69\x95\x69\xe0\x69\x8d\x69\xff\x6a\x2f\x69\xed\x6a\x17\x6a\x18\x6a\x65\x69\xf2\x6a\x44\x6a\x3e\x6a\xa0\x6a\x50\x6a\x5b\x6a\x35\x6a\x8e\x6a\x79\x6a\x3d\x6a\x28\x6a\x58\x6a\x7c\x6a\x91\x6a\x90\x6a\xa9\x6a\x97\x6a\xab", /* 6580 */ "\x00\x00\x73\x37\x73\x52\x6b\x81\x6b\x82\x6b\x87\x6b\x84\x6b\x92\x6b\x93\x6b\x8d\x6b\x9a\x6b\x9b\x6b\xa1\x6b\xaa\x8f\x6b\x8f\x6d\x8f\x71\x8f\x72\x8f\x73\x8f\x75\x8f\x76\x8f\x78\x8f\x77\x8f\x79\x8f\x7a\x8f\x7c\x8f\x7e\x8f\x81\x8f\x82\x8f\x84\x8f\x87\x8f\x8b\x8f\x8d\x8f\x8e\x8f\x8f\x8f\x98\x8f\x9a\x8e\xce\x62\x0b\x62\x17\x62\x1b\x62\x1f\x62\x22\x62\x21\x62\x25\x62\x24\x62\x2c\x81\xe7\x74\xef\x74\xf4\x74\xff\x75\x0f\x75\x11\x75\x13\x65\x34\x65\xee\x65\xef\x65\xf0\x66\x0a\x66\x19\x67\x72\x66\x03\x66\x15\x66\x00\x70\x85\x66\xf7\x66\x1d\x66\x34\x66\x31\x66\x36\x66\x35\x80\x06\x66\x5f\x66\x54\x66\x41\x66\x4f\x66\x56\x66\x61\x66\x57\x66\x77\x66\x84\x66\x8c\x66\xa7\x66\x9d\x66\xbe\x66\xdb\x66\xdc\x66\xe6\x66\xe9\x8d\x32\x8d\x33\x8d\x36\x8d\x3b\x8d\x3d\x8d\x40\x8d\x45\x8d\x46\x8d\x48\x8d\x49\x8d\x47\x8d\x4d\x8d\x55\x8d\x59\x89\xc7\x89\xca\x89\xcb\x89\xcc\x89\xce\x89\xcf\x89\xd0\x89\xd1\x72\x6e\x72\x9f\x72\x5d\x72\x66\x72\x6f\x72\x7e\x72\x7f\x72\x84\x72\x8b\x72\x8d\x72\x8f\x72\x92\x63\x08\x63\x32\x63\xb0\x00\x00\x00\x00", /* 6600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x3f\x64\xd8\x80\x04\x6b\xea\x6b\xf3\x6b\xfd\x6b\xf5\x6b\xf9\x6c\x05\x6c\x07\x6c\x06\x6c\x0d\x6c\x15\x6c\x18\x6c\x19\x6c\x1a\x6c\x21\x6c\x29\x6c\x24\x6c\x2a\x6c\x32\x65\x35\x65\x55\x65\x6b\x72\x4d\x72\x52\x72\x56\x72\x30\x86\x62\x52\x16\x80\x9f\x80\x9c\x80\x93\x80\xbc\x67\x0a\x80\xbd\x80\xb1\x80\xab\x80\xad\x80\xb4\x80\xb7\x80\xe7\x80\xe8\x80\xe9\x80\xea\x80\xdb\x80\xc2\x80\xc4\x80\xd9\x80\xcd\x80\xd7\x67\x10\x80\xdd\x80\xeb\x80\xf1\x80\xf4\x80\xed\x81\x0d\x81\x0e\x80\xf2\x80\xfc\x67\x15\x81\x12", /* 6680 */ "\x00\x00\x8c\x5a\x81\x36\x81\x1e\x81\x2c\x81\x18\x81\x32\x81\x48\x81\x4c\x81\x53\x81\x74\x81\x59\x81\x5a\x81\x71\x81\x60\x81\x69\x81\x7c\x81\x7d\x81\x6d\x81\x67\x58\x4d\x5a\xb5\x81\x88\x81\x82\x81\x91\x6e\xd5\x81\xa3\x81\xaa\x81\xcc\x67\x26\x81\xca\x81\xbb\x81\xc1\x81\xa6\x6b\x24\x6b\x37\x6b\x39\x6b\x43\x6b\x46\x6b\x59\x98\xd1\x98\xd2\x98\xd3\x98\xd5\x98\xd9\x98\xda\x6b\xb3\x5f\x40\x6b\xc2\x89\xf3\x65\x90\x9f\x51\x65\x93\x65\xbc\x65\xc6\x65\xc4\x65\xc3\x65\xcc\x65\xce\x65\xd2\x65\xd6\x70\x80\x70\x9c\x70\x96\x70\x9d\x70\xbb\x70\xc0\x70\xb7\x70\xab\x70\xb1\x70\xe8\x70\xca\x71\x10\x71\x13\x71\x16\x71\x2f\x71\x31\x71\x73\x71\x5c\x71\x68\x71\x45\x71\x72\x71\x4a\x71\x78\x71\x7a\x71\x98\x71\xb3\x71\xb5\x71\xa8\x71\xa0\x71\xe0\x71\xd4\x71\xe7\x71\xf9\x72\x1d\x72\x28\x70\x6c\x71\x18\x71\x66\x71\xb9\x62\x3e\x62\x3d\x62\x43\x62\x48\x62\x49\x79\x3b\x79\x40\x79\x46\x79\x49\x79\x5b\x79\x5c\x79\x53\x79\x5a\x79\x62\x79\x57\x79\x60\x79\x6f\x79\x67\x79\x7a\x79\x85\x79\x8a\x79\x9a\x79\xa7\x79\xb3\x5f\xd1\x5f\xd0\x00\x00\x00\x00", /* 6700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x3c\x60\x5d\x60\x5a\x60\x67\x60\x41\x60\x59\x60\x63\x60\xab\x61\x06\x61\x0d\x61\x5d\x61\xa9\x61\x9d\x61\xcb\x61\xd1\x62\x06\x80\x80\x80\x7f\x6c\x93\x6c\xf6\x6d\xfc\x77\xf6\x77\xf8\x78\x00\x78\x09\x78\x17\x78\x18\x78\x11\x65\xab\x78\x2d\x78\x1c\x78\x1d\x78\x39\x78\x3a\x78\x3b\x78\x1f\x78\x3c\x78\x25\x78\x2c\x78\x23\x78\x29\x78\x4e\x78\x6d\x78\x56\x78\x57\x78\x26\x78\x50\x78\x47\x78\x4c\x78\x6a\x78\x9b\x78\x93\x78\x9a\x78\x87\x78\x9c\x78\xa1\x78\xa3\x78\xb2\x78\xb9\x78\xa5\x78\xd4\x78\xd9\x78\xc9", /* 6780 */ "\x00\x00\x78\xec\x78\xf2\x79\x05\x78\xf4\x79\x13\x79\x24\x79\x1e\x79\x34\x9f\x9b\x9e\xf9\x9e\xfb\x9e\xfc\x76\xf1\x77\x04\x77\x0d\x76\xf9\x77\x07\x77\x08\x77\x1a\x77\x22\x77\x19\x77\x2d\x77\x26\x77\x35\x77\x38\x77\x50\x77\x51\x77\x47\x77\x43\x77\x5a\x77\x68\x77\x62\x77\x65\x77\x7f\x77\x8d\x77\x7d\x77\x80\x77\x8c\x77\x91\x77\x9f\x77\xa0\x77\xb0\x77\xb5\x77\xbd\x75\x3a\x75\x40\x75\x4e\x75\x4b\x75\x48\x75\x5b\x75\x72\x75\x79\x75\x83\x7f\x58\x7f\x61\x7f\x5f\x8a\x48\x7f\x68\x7f\x74\x7f\x71\x7f\x79\x7f\x81\x7f\x7e\x76\xcd\x76\xe5\x88\x32\x94\x85\x94\x86\x94\x87\x94\x8b\x94\x8a\x94\x8c\x94\x8d\x94\x8f\x94\x90\x94\x94\x94\x97\x94\x95\x94\x9a\x94\x9b\x94\x9c\x94\xa3\x94\xa4\x94\xab\x94\xaa\x94\xad\x94\xac\x94\xaf\x94\xb0\x94\xb2\x94\xb4\x94\xb6\x94\xb7\x94\xb8\x94\xb9\x94\xba\x94\xbc\x94\xbd\x94\xbf\x94\xc4\x94\xc8\x94\xc9\x94\xca\x94\xcb\x94\xcc\x94\xcd\x94\xce\x94\xd0\x94\xd1\x94\xd2\x94\xd5\x94\xd6\x94\xd7\x94\xd9\x94\xd8\x94\xdb\x94\xde\x94\xdf\x94\xe0\x94\xe2\x94\xe4\x94\xe5\x94\xe7\x94\xe8\x94\xea\x00\x00\x00\x00", /* 6800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\xe9\x94\xeb\x94\xee\x94\xef\x94\xf3\x94\xf4\x94\xf5\x94\xf7\x94\xf9\x94\xfc\x94\xfd\x94\xff\x95\x03\x95\x02\x95\x06\x95\x07\x95\x09\x95\x0a\x95\x0d\x95\x0e\x95\x0f\x95\x12\x95\x13\x95\x14\x95\x15\x95\x16\x95\x18\x95\x1b\x95\x1d\x95\x1e\x95\x1f\x95\x22\x95\x2a\x95\x2b\x95\x29\x95\x2c\x95\x31\x95\x32\x95\x34\x95\x36\x95\x37\x95\x38\x95\x3c\x95\x3e\x95\x3f\x95\x42\x95\x35\x95\x44\x95\x45\x95\x46\x95\x49\x95\x4c\x95\x4e\x95\x4f\x95\x52\x95\x53\x95\x54\x95\x56\x95\x57\x95\x58\x95\x59\x95\x5b\x95\x5e", /* 6880 */ "\x00\x00\x95\x5f\x95\x5d\x95\x61\x95\x62\x95\x64\x95\x65\x95\x66\x95\x67\x95\x68\x95\x69\x95\x6a\x95\x6b\x95\x6c\x95\x6f\x95\x71\x95\x72\x95\x73\x95\x3a\x77\xe7\x77\xec\x96\xc9\x79\xd5\x79\xed\x79\xe3\x79\xeb\x7a\x06\x5d\x47\x7a\x03\x7a\x02\x7a\x1e\x7a\x14\x7a\x39\x7a\x37\x7a\x51\x9e\xcf\x99\xa5\x7a\x70\x76\x88\x76\x8e\x76\x93\x76\x99\x76\xa4\x74\xde\x74\xe0\x75\x2c\x9e\x20\x9e\x22\x9e\x28\x9e\x29\x9e\x2a\x9e\x2b\x9e\x2c\x9e\x32\x9e\x31\x9e\x36\x9e\x38\x9e\x37\x9e\x39\x9e\x3a\x9e\x3e\x9e\x41\x9e\x42\x9e\x44\x9e\x46\x9e\x47\x9e\x48\x9e\x49\x9e\x4b\x9e\x4c\x9e\x4e\x9e\x51\x9e\x55\x9e\x57\x9e\x5a\x9e\x5b\x9e\x5c\x9e\x5e\x9e\x63\x9e\x66\x9e\x67\x9e\x68\x9e\x69\x9e\x6a\x9e\x6b\x9e\x6c\x9e\x71\x9e\x6d\x9e\x73\x75\x92\x75\x94\x75\x96\x75\xa0\x75\x9d\x75\xac\x75\xa3\x75\xb3\x75\xb4\x75\xb8\x75\xc4\x75\xb1\x75\xb0\x75\xc3\x75\xc2\x75\xd6\x75\xcd\x75\xe3\x75\xe8\x75\xe6\x75\xe4\x75\xeb\x75\xe7\x76\x03\x75\xf1\x75\xfc\x75\xff\x76\x10\x76\x00\x76\x05\x76\x0c\x76\x17\x76\x0a\x76\x25\x76\x18\x76\x15\x76\x19\x00\x00\x00\x00", /* 6900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x1b\x76\x3c\x76\x22\x76\x20\x76\x40\x76\x2d\x76\x30\x76\x3f\x76\x35\x76\x43\x76\x3e\x76\x33\x76\x4d\x76\x5e\x76\x54\x76\x5c\x76\x56\x76\x6b\x76\x6f\x7f\xca\x7a\xe6\x7a\x78\x7a\x79\x7a\x80\x7a\x86\x7a\x88\x7a\x95\x7a\xa6\x7a\xa0\x7a\xac\x7a\xa8\x7a\xad\x7a\xb3\x88\x64\x88\x69\x88\x72\x88\x7d\x88\x7f\x88\x82\x88\xa2\x88\xc6\x88\xb7\x88\xbc\x88\xc9\x88\xe2\x88\xce\x88\xe3\x88\xe5\x88\xf1\x89\x1a\x88\xfc\x88\xe8\x88\xfe\x88\xf0\x89\x21\x89\x19\x89\x13\x89\x1b\x89\x0a\x89\x34\x89\x2b\x89\x36\x89\x41", /* 6980 */ "\x00\x00\x89\x66\x89\x7b\x75\x8b\x80\xe5\x76\xb2\x76\xb4\x77\xdc\x80\x12\x80\x14\x80\x16\x80\x1c\x80\x20\x80\x22\x80\x25\x80\x26\x80\x27\x80\x29\x80\x28\x80\x31\x80\x0b\x80\x35\x80\x43\x80\x46\x80\x4d\x80\x52\x80\x69\x80\x71\x89\x83\x98\x78\x98\x80\x98\x83\x98\x89\x98\x8c\x98\x8d\x98\x8f\x98\x94\x98\x9a\x98\x9b\x98\x9e\x98\x9f\x98\xa1\x98\xa2\x98\xa5\x98\xa6\x86\x4d\x86\x54\x86\x6c\x86\x6e\x86\x7f\x86\x7a\x86\x7c\x86\x7b\x86\xa8\x86\x8d\x86\x8b\x86\xac\x86\x9d\x86\xa7\x86\xa3\x86\xaa\x86\x93\x86\xa9\x86\xb6\x86\xc4\x86\xb5\x86\xce\x86\xb0\x86\xba\x86\xb1\x86\xaf\x86\xc9\x86\xcf\x86\xb4\x86\xe9\x86\xf1\x86\xf2\x86\xed\x86\xf3\x86\xd0\x87\x13\x86\xde\x86\xf4\x86\xdf\x86\xd8\x86\xd1\x87\x03\x87\x07\x86\xf8\x87\x08\x87\x0a\x87\x0d\x87\x09\x87\x23\x87\x3b\x87\x1e\x87\x25\x87\x2e\x87\x1a\x87\x3e\x87\x48\x87\x34\x87\x31\x87\x29\x87\x37\x87\x3f\x87\x82\x87\x22\x87\x7d\x87\x7e\x87\x7b\x87\x60\x87\x70\x87\x4c\x87\x6e\x87\x8b\x87\x53\x87\x63\x87\x7c\x87\x64\x87\x59\x87\x65\x87\x93\x87\xaf\x87\xa8\x87\xd2\x00\x00\x00\x00", /* 6a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xc6\x87\x88\x87\x85\x87\xad\x87\x97\x87\x83\x87\xab\x87\xe5\x87\xac\x87\xb5\x87\xb3\x87\xcb\x87\xd3\x87\xbd\x87\xd1\x87\xc0\x87\xca\x87\xdb\x87\xea\x87\xe0\x87\xee\x88\x16\x88\x13\x87\xfe\x88\x0a\x88\x1b\x88\x21\x88\x39\x88\x3c\x7f\x36\x7f\x42\x7f\x44\x7f\x45\x82\x10\x7a\xfa\x7a\xfd\x7b\x08\x7b\x03\x7b\x04\x7b\x15\x7b\x0a\x7b\x2b\x7b\x0f\x7b\x47\x7b\x38\x7b\x2a\x7b\x19\x7b\x2e\x7b\x31\x7b\x20\x7b\x25\x7b\x24\x7b\x33\x7b\x3e\x7b\x1e\x7b\x58\x7b\x5a\x7b\x45\x7b\x75\x7b\x4c\x7b\x5d\x7b\x60\x7b\x6e", /* 6a80 */ "\x00\x00\x7b\x7b\x7b\x62\x7b\x72\x7b\x71\x7b\x90\x7b\xa6\x7b\xa7\x7b\xb8\x7b\xac\x7b\x9d\x7b\xa8\x7b\x85\x7b\xaa\x7b\x9c\x7b\xa2\x7b\xab\x7b\xb4\x7b\xd1\x7b\xc1\x7b\xcc\x7b\xdd\x7b\xda\x7b\xe5\x7b\xe6\x7b\xea\x7c\x0c\x7b\xfe\x7b\xfc\x7c\x0f\x7c\x16\x7c\x0b\x7c\x1f\x7c\x2a\x7c\x26\x7c\x38\x7c\x41\x7c\x40\x81\xfe\x82\x01\x82\x02\x82\x04\x81\xec\x88\x44\x82\x21\x82\x22\x82\x23\x82\x2d\x82\x2f\x82\x28\x82\x2b\x82\x38\x82\x3b\x82\x33\x82\x34\x82\x3e\x82\x44\x82\x49\x82\x4b\x82\x4f\x82\x5a\x82\x5f\x82\x68\x88\x7e\x88\x85\x88\x88\x88\xd8\x88\xdf\x89\x5e\x7f\x9d\x7f\x9f\x7f\xa7\x7f\xaf\x7f\xb0\x7f\xb2\x7c\x7c\x65\x49\x7c\x91\x7c\x9d\x7c\x9c\x7c\x9e\x7c\xa2\x7c\xb2\x7c\xbc\x7c\xbd\x7c\xc1\x7c\xc7\x7c\xcc\x7c\xcd\x7c\xc8\x7c\xc5\x7c\xd7\x7c\xe8\x82\x6e\x66\xa8\x7f\xbf\x7f\xce\x7f\xd5\x7f\xe5\x7f\xe1\x7f\xe6\x7f\xe9\x7f\xee\x7f\xf3\x7c\xf8\x7d\x77\x7d\xa6\x7d\xae\x7e\x47\x7e\x9b\x9e\xb8\x9e\xb4\x8d\x73\x8d\x84\x8d\x94\x8d\x91\x8d\xb1\x8d\x67\x8d\x6d\x8c\x47\x8c\x49\x91\x4a\x91\x50\x91\x4e\x91\x4f\x91\x64\x00\x00\x00\x00", /* 6b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x62\x91\x61\x91\x70\x91\x69\x91\x6f\x91\x7d\x91\x7e\x91\x72\x91\x74\x91\x79\x91\x8c\x91\x85\x91\x90\x91\x8d\x91\x91\x91\xa2\x91\xa3\x91\xaa\x91\xad\x91\xae\x91\xaf\x91\xb5\x91\xb4\x91\xba\x8c\x55\x9e\x7e\x8d\xb8\x8d\xeb\x8e\x05\x8e\x59\x8e\x69\x8d\xb5\x8d\xbf\x8d\xbc\x8d\xba\x8d\xc4\x8d\xd6\x8d\xd7\x8d\xda\x8d\xde\x8d\xce\x8d\xcf\x8d\xdb\x8d\xc6\x8d\xec\x8d\xf7\x8d\xf8\x8d\xe3\x8d\xf9\x8d\xfb\x8d\xe4\x8e\x09\x8d\xfd\x8e\x14\x8e\x1d\x8e\x1f\x8e\x2c\x8e\x2e\x8e\x23\x8e\x2f\x8e\x3a\x8e\x40\x8e\x39", /* 6b80 */ "\x00\x00\x8e\x35\x8e\x3d\x8e\x31\x8e\x49\x8e\x41\x8e\x42\x8e\x51\x8e\x52\x8e\x4a\x8e\x70\x8e\x76\x8e\x7c\x8e\x6f\x8e\x74\x8e\x85\x8e\x8f\x8e\x94\x8e\x90\x8e\x9c\x8e\x9e\x8c\x78\x8c\x82\x8c\x8a\x8c\x85\x8c\x98\x8c\x94\x65\x9b\x89\xd6\x89\xde\x89\xda\x89\xdc\x89\xe5\x89\xeb\x89\xef\x8a\x3e\x8b\x26\x97\x53\x96\xe9\x96\xf3\x96\xef\x97\x06\x97\x01\x97\x08\x97\x0f\x97\x0e\x97\x2a\x97\x2d\x97\x30\x97\x3e\x9f\x80\x9f\x83\x9f\x85\x9f\x86\x9f\x87\x9f\x88\x9f\x89\x9f\x8a\x9f\x8c\x9e\xfe\x9f\x0b\x9f\x0d\x96\xb9\x96\xbc\x96\xbd\x96\xce\x96\xd2\x77\xbf\x96\xe0\x92\x8e\x92\xae\x92\xc8\x93\x3e\x93\x6a\x93\xca\x93\x8f\x94\x3e\x94\x6b\x9c\x7f\x9c\x82\x9c\x85\x9c\x86\x9c\x87\x9c\x88\x7a\x23\x9c\x8b\x9c\x8e\x9c\x90\x9c\x91\x9c\x92\x9c\x94\x9c\x95\x9c\x9a\x9c\x9b\x9c\x9e\x9c\x9f\x9c\xa0\x9c\xa1\x9c\xa2\x9c\xa3\x9c\xa5\x9c\xa6\x9c\xa7\x9c\xa8\x9c\xa9\x9c\xab\x9c\xad\x9c\xae\x9c\xb0\x9c\xb1\x9c\xb2\x9c\xb3\x9c\xb4\x9c\xb5\x9c\xb6\x9c\xb7\x9c\xba\x9c\xbb\x9c\xbc\x9c\xbd\x9c\xc4\x9c\xc5\x9c\xc6\x9c\xc7\x9c\xca\x9c\xcb\x00\x00\x00\x00", /* 6c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xcc\x9c\xcd\x9c\xce\x9c\xcf\x9c\xd0\x9c\xd3\x9c\xd4\x9c\xd5\x9c\xd7\x9c\xd8\x9c\xd9\x9c\xdc\x9c\xdd\x9c\xdf\x9c\xe2\x97\x7c\x97\x85\x97\x91\x97\x92\x97\x94\x97\xaf\x97\xab\x97\xa3\x97\xb2\x97\xb4\x9a\xb1\x9a\xb0\x9a\xb7\x9e\x58\x9a\xb6\x9a\xba\x9a\xbc\x9a\xc1\x9a\xc0\x9a\xc5\x9a\xc2\x9a\xcb\x9a\xcc\x9a\xd1\x9b\x45\x9b\x43\x9b\x47\x9b\x49\x9b\x48\x9b\x4d\x9b\x51\x98\xe8\x99\x0d\x99\x2e\x99\x55\x99\x54\x9a\xdf\x9a\xe1\x9a\xe6\x9a\xef\x9a\xeb\x9a\xfb\x9a\xed\x9a\xf9\x9b\x08\x9b\x0f\x9b\x13\x9b\x1f", /* 6c80 */ "\x00\x00\x9b\x23\x9e\xbd\x9e\xbe\x7e\x3b\x9e\x82\x9e\x87\x9e\x88\x9e\x8b\x9e\x92\x93\xd6\x9e\x9d\x9e\x9f\x9e\xdb\x9e\xdc\x9e\xdd\x9e\xe0\x9e\xdf\x9e\xe2\x9e\xe9\x9e\xe7\x9e\xe5\x9e\xea\x9e\xef\x9f\x22\x9f\x2c\x9f\x2f\x9f\x39\x9f\x37\x9f\x3d\x9f\x3e\x9f\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 6d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x0f\x01\x0f\x02\x0f\x03\x0f\x04\x0f\x05\x0f\x06\x0f\x07\x0f\x08\x0f\x09\x0f\x0a\x0f\x0b\x0f\x0c\x0f\x0d\x0f\x0e\x0f\x0f\x0f\x10\x0f\x11\x0f\x12\x0f\x13\x0f\x14\x0f\x15\x0f\x16\x0f\x17\x0f\x18\x0f\x19\x0f\x1a\x0f\x1b\x0f\x1c\x0f\x1d\x0f\x1e\x0f\x1f\x0f\x20\x0f\x21\x0f\x22\x0f\x23\x0f\x24\x0f\x25\x0f\x26\x0f\x27\x0f\x28\x0f\x29\x0f\x2a\x0f\x2b\x0f\x2c\x0f\x2d\x0f\x2e\x0f\x2f\x0f\x30\x0f\x31\x0f\x32\x0f\x33\x0f\x34\x0f\x35\x0f\x36\x0f\x37\x0f\x38\x0f\x39\x0f\x3a\x0f\x3b\x0f\x3c\x0f\x3d\x0f\x3e", /* 6d80 */ "\x0f\x3f\x0f\x40\x0f\x41\x0f\x42\x0f\x43\x0f\x44\x0f\x45\x0f\x46\x0f\x47\x0f\x48\x0f\x49\x0f\x4a\x0f\x4b\x0f\x4c\x0f\x4d\x0f\x4e\x0f\x4f\x0f\x50\x0f\x51\x0f\x52\x0f\x53\x0f\x54\x0f\x55\x0f\x56\x0f\x57\x0f\x58\x0f\x59\x0f\x5a\x0f\x5b\x0f\x5c\x0f\x5d\x0f\x5e\x0f\x5f\x0f\x60\x0f\x61\x0f\x62\x0f\x63\x0f\x64\x0f\x65\x0f\x66\x0f\x67\x0f\x68\x0f\x69\x0f\x6a\x0f\x6b\x0f\x6c\x0f\x6d\x0f\x6e\x0f\x6f\x0f\x70\x0f\x71\x0f\x72\x0f\x73\x0f\x74\x0f\x75\x0f\x76\x0f\x77\x0f\x78\x0f\x79\x0f\x7a\x0f\x7b\x0f\x7c\x0f\x7d\x0f\x7e\x0f\x7f\x0f\x80\x0f\x81\x0f\x82\x0f\x83\x0f\x84\x0f\x85\x0f\x86\x0f\x87\x0f\x88\x0f\x89\x0f\x8a\x0f\x8b\x0f\x8c\x0f\x8d\x0f\x8e\x0f\x8f\x0f\x90\x0f\x91\x0f\x92\x0f\x93\x0f\x94\x0f\x95\x0f\x96\x0f\x97\x0f\x98\x0f\x99\x0f\x9a\x0f\x9b\x0f\x9c\x0f\x9d\x0f\x9e\x0f\x9f\x0f\xa0\x0f\xa1\x0f\xa2\x0f\xa3\x0f\xa4\x0f\xa5\x0f\xa6\x0f\xa7\x0f\xa8\x0f\xa9\x0f\xaa\x0f\xab\x0f\xac\x0f\xad\x0f\xae\x0f\xaf\x0f\xb0\x0f\xb1\x0f\xb2\x0f\xb3\x0f\xb4\x0f\xb5\x0f\xb6\x0f\xb7\x0f\xb8\x0f\xb9\x0f\xba\x0f\xbb\x0f\xbc\x0f\xbd\x00\x00", /* 6e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\xbe\x0f\xbf\x0f\xc0\x0f\xc1\x0f\xc2\x0f\xc3\x0f\xc4\x0f\xc5\x0f\xc6\x0f\xc7\x0f\xc8\x0f\xc9\x0f\xca\x0f\xcb\x0f\xcc\x0f\xcd\x0f\xce\x0f\xcf\x0f\xd0\x0f\xd1\x0f\xd2\x0f\xd3\x0f\xd4\x0f\xd5\x0f\xd6\x0f\xd7\x0f\xd8\x0f\xd9\x0f\xda\x0f\xdb\x0f\xdc\x0f\xdd\x0f\xde\x0f\xdf\x0f\xe0\x0f\xe1\x0f\xe2\x0f\xe3\x0f\xe4\x0f\xe5\x0f\xe6\x0f\xe7\x0f\xe8\x0f\xe9\x0f\xea\x0f\xeb\x0f\xec\x0f\xed\x0f\xee\x0f\xef\x0f\xf0\x0f\xf1\x0f\xf2\x0f\xf3\x0f\xf4\x0f\xf5\x0f\xf6\x0f\xf7\x0f\xf8\x0f\xf9\x0f\xfa\x0f\xfb\x0f\xfc", /* 6e80 */ "\x0f\xfd\x0f\xfe\x0f\xff\x18\x00\x18\x01\x18\x02\x18\x03\x18\x04\x18\x05\x18\x06\x18\x07\x18\x08\x18\x09\x18\x0a\x18\x0b\x18\x0c\x18\x0d\x18\x0e\x18\x0f\x18\x10\x18\x11\x18\x12\x18\x13\x18\x14\x18\x15\x18\x16\x18\x17\x18\x18\x18\x19\x18\x1a\x18\x1b\x18\x1c\x18\x1d\x18\x1e\x18\x1f\x18\x20\x18\x21\x18\x22\x18\x23\x18\x24\x18\x25\x18\x26\x18\x27\x18\x28\x18\x29\x18\x2a\x18\x2b\x18\x2c\x18\x2d\x18\x2e\x18\x2f\x18\x30\x18\x31\x18\x32\x18\x33\x18\x34\x18\x35\x18\x36\x18\x37\x18\x38\x18\x39\x18\x3a\x18\x3b\x18\x3c\x18\x3d\x18\x3e\x18\x3f\x18\x40\x18\x41\x18\x42\x18\x43\x18\x44\x18\x45\x18\x46\x18\x47\x18\x48\x18\x49\x18\x4a\x18\x4b\x18\x4c\x18\x4d\x18\x4e\x18\x4f\x18\x50\x18\x51\x18\x52\x18\x53\x18\x54\x18\x55\x18\x56\x18\x57\x18\x58\x18\x59\x18\x5a\x18\x5b\x18\x5c\x18\x5d\x18\x5e\x18\x5f\x18\x60\x18\x61\x18\x62\x18\x63\x18\x64\x18\x65\x18\x66\x18\x67\x18\x68\x18\x69\x18\x6a\x18\x6b\x18\x6c\x18\x6d\x18\x6e\x18\x6f\x18\x70\x18\x71\x18\x72\x18\x73\x18\x74\x18\x75\x18\x76\x18\x77\x18\x78\x18\x79\x18\x7a\x18\x7b\x00\x00", /* 6f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x7c\x18\x7d\x18\x7e\x18\x7f\x18\x80\x18\x81\x18\x82\x18\x83\x18\x84\x18\x85\x18\x86\x18\x87\x18\x88\x18\x89\x18\x8a\x18\x8b\x18\x8c\x18\x8d\x18\x8e\x18\x8f\x18\x90\x18\x91\x18\x92\x18\x93\x18\x94\x18\x95\x18\x96\x18\x97\x18\x98\x18\x99\x18\x9a\x18\x9b\x18\x9c\x18\x9d\x18\x9e\x18\x9f\x18\xa0\x18\xa1\x18\xa2\x18\xa3\x18\xa4\x18\xa5\x18\xa6\x18\xa7\x18\xa8\x18\xa9\x18\xaa\x18\xab\x18\xac\x18\xad\x18\xae\x18\xaf\xa0\x00\xa0\x01\xa0\x02\xa0\x03\xa0\x04\xa0\x05\xa0\x06\xa0\x07\xa0\x08\xa0\x09\xa0\x0a", /* 6f80 */ "\xa0\x0b\xa0\x0c\xa0\x0d\xa0\x0e\xa0\x0f\xa0\x10\xa0\x11\xa0\x12\xa0\x13\xa0\x14\xa0\x15\xa0\x16\xa0\x17\xa0\x18\xa0\x19\xa0\x1a\xa0\x1b\xa0\x1c\xa0\x1d\xa0\x1e\xa0\x1f\xa0\x20\xa0\x21\xa0\x22\xa0\x23\xa0\x24\xa0\x25\xa0\x26\xa0\x27\xa0\x28\xa0\x29\xa0\x2a\xa0\x2b\xa0\x2c\xa0\x2d\xa0\x2e\xa0\x2f\xa0\x30\xa0\x31\xa0\x32\xa0\x33\xa0\x34\xa0\x35\xa0\x36\xa0\x37\xa0\x38\xa0\x39\xa0\x3a\xa0\x3b\xa0\x3c\xa0\x3d\xa0\x3e\xa0\x3f\xa0\x40\xa0\x41\xa0\x42\xa0\x43\xa0\x44\xa0\x45\xa0\x46\xa0\x47\xa0\x48\xa0\x49\xa0\x4a\xa0\x4b\xa0\x4c\xa0\x4d\xa0\x4e\xa0\x4f\xa0\x50\xa0\x51\xa0\x52\xa0\x53\xa0\x54\xa0\x55\xa0\x56\xa0\x57\xa0\x58\xa0\x59\xa0\x5a\xa0\x5b\xa0\x5c\xa0\x5d\xa0\x5e\xa0\x5f\xa0\x60\xa0\x61\xa0\x62\xa0\x63\xa0\x64\xa0\x65\xa0\x66\xa0\x67\xa0\x68\xa0\x69\xa0\x6a\xa0\x6b\xa0\x6c\xa0\x6d\xa0\x6e\xa0\x6f\xa0\x70\xa0\x71\xa0\x72\xa0\x73\xa0\x74\xa0\x75\xa0\x76\xa0\x77\xa0\x78\xa0\x79\xa0\x7a\xa0\x7b\xa0\x7c\xa0\x7d\xa0\x7e\xa0\x7f\xa0\x80\xa0\x81\xa0\x82\xa0\x83\xa0\x84\xa0\x85\xa0\x86\xa0\x87\xa0\x88\xa0\x89\x00\x00", /* 7000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x8a\xa0\x8b\xa0\x8c\xa0\x8d\xa0\x8e\xa0\x8f\xa0\x90\xa0\x91\xa0\x92\xa0\x93\xa0\x94\xa0\x95\xa0\x96\xa0\x97\xa0\x98\xa0\x99\xa0\x9a\xa0\x9b\xa0\x9c\xa0\x9d\xa0\x9e\xa0\x9f\xa0\xa0\xa0\xa1\xa0\xa2\xa0\xa3\xa0\xa4\xa0\xa5\xa0\xa6\xa0\xa7\xa0\xa8\xa0\xa9\xa0\xaa\xa0\xab\xa0\xac\xa0\xad\xa0\xae\xa0\xaf\xa0\xb0\xa0\xb1\xa0\xb2\xa0\xb3\xa0\xb4\xa0\xb5\xa0\xb6\xa0\xb7\xa0\xb8\xa0\xb9\xa0\xba\xa0\xbb\xa0\xbc\xa0\xbd\xa0\xbe\xa0\xbf\xa0\xc0\xa0\xc1\xa0\xc2\xa0\xc3\xa0\xc4\xa0\xc5\xa0\xc6\xa0\xc7\xa0\xc8", /* 7080 */ "\xa0\xc9\xa0\xca\xa0\xcb\xa0\xcc\xa0\xcd\xa0\xce\xa0\xcf\xa0\xd0\xa0\xd1\xa0\xd2\xa0\xd3\xa0\xd4\xa0\xd5\xa0\xd6\xa0\xd7\xa0\xd8\xa0\xd9\xa0\xda\xa0\xdb\xa0\xdc\xa0\xdd\xa0\xde\xa0\xdf\xa0\xe0\xa0\xe1\xa0\xe2\xa0\xe3\xa0\xe4\xa0\xe5\xa0\xe6\xa0\xe7\xa0\xe8\xa0\xe9\xa0\xea\xa0\xeb\xa0\xec\xa0\xed\xa0\xee\xa0\xef\xa0\xf0\xa0\xf1\xa0\xf2\xa0\xf3\xa0\xf4\xa0\xf5\xa0\xf6\xa0\xf7\xa0\xf8\xa0\xf9\xa0\xfa\xa0\xfb\xa0\xfc\xa0\xfd\xa0\xfe\xa0\xff\xa1\x00\xa1\x01\xa1\x02\xa1\x03\xa1\x04\xa1\x05\xa1\x06\xa1\x07\xa1\x08\xa1\x09\xa1\x0a\xa1\x0b\xa1\x0c\xa1\x0d\xa1\x0e\xa1\x0f\xa1\x10\xa1\x11\xa1\x12\xa1\x13\xa1\x14\xa1\x15\xa1\x16\xa1\x17\xa1\x18\xa1\x19\xa1\x1a\xa1\x1b\xa1\x1c\xa1\x1d\xa1\x1e\xa1\x1f\xa1\x20\xa1\x21\xa1\x22\xa1\x23\xa1\x24\xa1\x25\xa1\x26\xa1\x27\xa1\x28\xa1\x29\xa1\x2a\xa1\x2b\xa1\x2c\xa1\x2d\xa1\x2e\xa1\x2f\xa1\x30\xa1\x31\xa1\x32\xa1\x33\xa1\x34\xa1\x35\xa1\x36\xa1\x37\xa1\x38\xa1\x39\xa1\x3a\xa1\x3b\xa1\x3c\xa1\x3d\xa1\x3e\xa1\x3f\xa1\x40\xa1\x41\xa1\x42\xa1\x43\xa1\x44\xa1\x45\xa1\x46\xa1\x47\x00\x00", /* 7100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x48\xa1\x49\xa1\x4a\xa1\x4b\xa1\x4c\xa1\x4d\xa1\x4e\xa1\x4f\xa1\x50\xa1\x51\xa1\x52\xa1\x53\xa1\x54\xa1\x55\xa1\x56\xa1\x57\xa1\x58\xa1\x59\xa1\x5a\xa1\x5b\xa1\x5c\xa1\x5d\xa1\x5e\xa1\x5f\xa1\x60\xa1\x61\xa1\x62\xa1\x63\xa1\x64\xa1\x65\xa1\x66\xa1\x67\xa1\x68\xa1\x69\xa1\x6a\xa1\x6b\xa1\x6c\xa1\x6d\xa1\x6e\xa1\x6f\xa1\x70\xa1\x71\xa1\x72\xa1\x73\xa1\x74\xa1\x75\xa1\x76\xa1\x77\xa1\x78\xa1\x79\xa1\x7a\xa1\x7b\xa1\x7c\xa1\x7d\xa1\x7e\xa1\x7f\xa1\x80\xa1\x81\xa1\x82\xa1\x83\xa1\x84\xa1\x85\xa1\x86", /* 7180 */ "\xa1\x87\xa1\x88\xa1\x89\xa1\x8a\xa1\x8b\xa1\x8c\xa1\x8d\xa1\x8e\xa1\x8f\xa1\x90\xa1\x91\xa1\x92\xa1\x93\xa1\x94\xa1\x95\xa1\x96\xa1\x97\xa1\x98\xa1\x99\xa1\x9a\xa1\x9b\xa1\x9c\xa1\x9d\xa1\x9e\xa1\x9f\xa1\xa0\xa1\xa1\xa1\xa2\xa1\xa3\xa1\xa4\xa1\xa5\xa1\xa6\xa1\xa7\xa1\xa8\xa1\xa9\xa1\xaa\xa1\xab\xa1\xac\xa1\xad\xa1\xae\xa1\xaf\xa1\xb0\xa1\xb1\xa1\xb2\xa1\xb3\xa1\xb4\xa1\xb5\xa1\xb6\xa1\xb7\xa1\xb8\xa1\xb9\xa1\xba\xa1\xbb\xa1\xbc\xa1\xbd\xa1\xbe\xa1\xbf\xa1\xc0\xa1\xc1\xa1\xc2\xa1\xc3\xa1\xc4\xa1\xc5\xa1\xc6\xa1\xc7\xa1\xc8\xa1\xc9\xa1\xca\xa1\xcb\xa1\xcc\xa1\xcd\xa1\xce\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xd2\xa1\xd3\xa1\xd4\xa1\xd5\xa1\xd6\xa1\xd7\xa1\xd8\xa1\xd9\xa1\xda\xa1\xdb\xa1\xdc\xa1\xdd\xa1\xde\xa1\xdf\xa1\xe0\xa1\xe1\xa1\xe2\xa1\xe3\xa1\xe4\xa1\xe5\xa1\xe6\xa1\xe7\xa1\xe8\xa1\xe9\xa1\xea\xa1\xeb\xa1\xec\xa1\xed\xa1\xee\xa1\xef\xa1\xf0\xa1\xf1\xa1\xf2\xa1\xf3\xa1\xf4\xa1\xf5\xa1\xf6\xa1\xf7\xa1\xf8\xa1\xf9\xa1\xfa\xa1\xfb\xa1\xfc\xa1\xfd\xa1\xfe\xa1\xff\xa2\x00\xa2\x01\xa2\x02\xa2\x03\xa2\x04\xa2\x05\x00\x00", /* 7200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x06\xa2\x07\xa2\x08\xa2\x09\xa2\x0a\xa2\x0b\xa2\x0c\xa2\x0d\xa2\x0e\xa2\x0f\xa2\x10\xa2\x11\xa2\x12\xa2\x13\xa2\x14\xa2\x15\xa2\x16\xa2\x17\xa2\x18\xa2\x19\xa2\x1a\xa2\x1b\xa2\x1c\xa2\x1d\xa2\x1e\xa2\x1f\xa2\x20\xa2\x21\xa2\x22\xa2\x23\xa2\x24\xa2\x25\xa2\x26\xa2\x27\xa2\x28\xa2\x29\xa2\x2a\xa2\x2b\xa2\x2c\xa2\x2d\xa2\x2e\xa2\x2f\xa2\x30\xa2\x31\xa2\x32\xa2\x33\xa2\x34\xa2\x35\xa2\x36\xa2\x37\xa2\x38\xa2\x39\xa2\x3a\xa2\x3b\xa2\x3c\xa2\x3d\xa2\x3e\xa2\x3f\xa2\x40\xa2\x41\xa2\x42\xa2\x43\xa2\x44", /* 7280 */ "\xa2\x45\xa2\x46\xa2\x47\xa2\x48\xa2\x49\xa2\x4a\xa2\x4b\xa2\x4c\xa2\x4d\xa2\x4e\xa2\x4f\xa2\x50\xa2\x51\xa2\x52\xa2\x53\xa2\x54\xa2\x55\xa2\x56\xa2\x57\xa2\x58\xa2\x59\xa2\x5a\xa2\x5b\xa2\x5c\xa2\x5d\xa2\x5e\xa2\x5f\xa2\x60\xa2\x61\xa2\x62\xa2\x63\xa2\x64\xa2\x65\xa2\x66\xa2\x67\xa2\x68\xa2\x69\xa2\x6a\xa2\x6b\xa2\x6c\xa2\x6d\xa2\x6e\xa2\x6f\xa2\x70\xa2\x71\xa2\x72\xa2\x73\xa2\x74\xa2\x75\xa2\x76\xa2\x77\xa2\x78\xa2\x79\xa2\x7a\xa2\x7b\xa2\x7c\xa2\x7d\xa2\x7e\xa2\x7f\xa2\x80\xa2\x81\xa2\x82\xa2\x83\xa2\x84\xa2\x85\xa2\x86\xa2\x87\xa2\x88\xa2\x89\xa2\x8a\xa2\x8b\xa2\x8c\xa2\x8d\xa2\x8e\xa2\x8f\xa2\x90\xa2\x91\xa2\x92\xa2\x93\xa2\x94\xa2\x95\xa2\x96\xa2\x97\xa2\x98\xa2\x99\xa2\x9a\xa2\x9b\xa2\x9c\xa2\x9d\xa2\x9e\xa2\x9f\xa2\xa0\xa2\xa1\xa2\xa2\xa2\xa3\xa2\xa4\xa2\xa5\xa2\xa6\xa2\xa7\xa2\xa8\xa2\xa9\xa2\xaa\xa2\xab\xa2\xac\xa2\xad\xa2\xae\xa2\xaf\xa2\xb0\xa2\xb1\xa2\xb2\xa2\xb3\xa2\xb4\xa2\xb5\xa2\xb6\xa2\xb7\xa2\xb8\xa2\xb9\xa2\xba\xa2\xbb\xa2\xbc\xa2\xbd\xa2\xbe\xa2\xbf\xa2\xc0\xa2\xc1\xa2\xc2\xa2\xc3\x00\x00", /* 7300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\xc4\xa2\xc5\xa2\xc6\xa2\xc7\xa2\xc8\xa2\xc9\xa2\xca\xa2\xcb\xa2\xcc\xa2\xcd\xa2\xce\xa2\xcf\xa2\xd0\xa2\xd1\xa2\xd2\xa2\xd3\xa2\xd4\xa2\xd5\xa2\xd6\xa2\xd7\xa2\xd8\xa2\xd9\xa2\xda\xa2\xdb\xa2\xdc\xa2\xdd\xa2\xde\xa2\xdf\xa2\xe0\xa2\xe1\xa2\xe2\xa2\xe3\xa2\xe4\xa2\xe5\xa2\xe6\xa2\xe7\xa2\xe8\xa2\xe9\xa2\xea\xa2\xeb\xa2\xec\xa2\xed\xa2\xee\xa2\xef\xa2\xf0\xa2\xf1\xa2\xf2\xa2\xf3\xa2\xf4\xa2\xf5\xa2\xf6\xa2\xf7\xa2\xf8\xa2\xf9\xa2\xfa\xa2\xfb\xa2\xfc\xa2\xfd\xa2\xfe\xa2\xff\xa3\x00\xa3\x01\xa3\x02", /* 7380 */ "\xa3\x03\xa3\x04\xa3\x05\xa3\x06\xa3\x07\xa3\x08\xa3\x09\xa3\x0a\xa3\x0b\xa3\x0c\xa3\x0d\xa3\x0e\xa3\x0f\xa3\x10\xa3\x11\xa3\x12\xa3\x13\xa3\x14\xa3\x15\xa3\x16\xa3\x17\xa3\x18\xa3\x19\xa3\x1a\xa3\x1b\xa3\x1c\xa3\x1d\xa3\x1e\xa3\x1f\xa3\x20\xa3\x21\xa3\x22\xa3\x23\xa3\x24\xa3\x25\xa3\x26\xa3\x27\xa3\x28\xa3\x29\xa3\x2a\xa3\x2b\xa3\x2c\xa3\x2d\xa3\x2e\xa3\x2f\xa3\x30\xa3\x31\xa3\x32\xa3\x33\xa3\x34\xa3\x35\xa3\x36\xa3\x37\xa3\x38\xa3\x39\xa3\x3a\xa3\x3b\xa3\x3c\xa3\x3d\xa3\x3e\xa3\x3f\xa3\x40\xa3\x41\xa3\x42\xa3\x43\xa3\x44\xa3\x45\xa3\x46\xa3\x47\xa3\x48\xa3\x49\xa3\x4a\xa3\x4b\xa3\x4c\xa3\x4d\xa3\x4e\xa3\x4f\xa3\x50\xa3\x51\xa3\x52\xa3\x53\xa3\x54\xa3\x55\xa3\x56\xa3\x57\xa3\x58\xa3\x59\xa3\x5a\xa3\x5b\xa3\x5c\xa3\x5d\xa3\x5e\xa3\x5f\xa3\x60\xa3\x61\xa3\x62\xa3\x63\xa3\x64\xa3\x65\xa3\x66\xa3\x67\xa3\x68\xa3\x69\xa3\x6a\xa3\x6b\xa3\x6c\xa3\x6d\xa3\x6e\xa3\x6f\xa3\x70\xa3\x71\xa3\x72\xa3\x73\xa3\x74\xa3\x75\xa3\x76\xa3\x77\xa3\x78\xa3\x79\xa3\x7a\xa3\x7b\xa3\x7c\xa3\x7d\xa3\x7e\xa3\x7f\xa3\x80\xa3\x81\x00\x00", /* 7400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x82\xa3\x83\xa3\x84\xa3\x85\xa3\x86\xa3\x87\xa3\x88\xa3\x89\xa3\x8a\xa3\x8b\xa3\x8c\xa3\x8d\xa3\x8e\xa3\x8f\xa3\x90\xa3\x91\xa3\x92\xa3\x93\xa3\x94\xa3\x95\xa3\x96\xa3\x97\xa3\x98\xa3\x99\xa3\x9a\xa3\x9b\xa3\x9c\xa3\x9d\xa3\x9e\xa3\x9f\xa3\xa0\xa3\xa1\xa3\xa2\xa3\xa3\xa3\xa4\xa3\xa5\xa3\xa6\xa3\xa7\xa3\xa8\xa3\xa9\xa3\xaa\xa3\xab\xa3\xac\xa3\xad\xa3\xae\xa3\xaf\xa3\xb0\xa3\xb1\xa3\xb2\xa3\xb3\xa3\xb4\xa3\xb5\xa3\xb6\xa3\xb7\xa3\xb8\xa3\xb9\xa3\xba\xa3\xbb\xa3\xbc\xa3\xbd\xa3\xbe\xa3\xbf\xa3\xc0", /* 7480 */ "\xa3\xc1\xa3\xc2\xa3\xc3\xa3\xc4\xa3\xc5\xa3\xc6\xa3\xc7\xa3\xc8\xa3\xc9\xa3\xca\xa3\xcb\xa3\xcc\xa3\xcd\xa3\xce\xa3\xcf\xa3\xd0\xa3\xd1\xa3\xd2\xa3\xd3\xa3\xd4\xa3\xd5\xa3\xd6\xa3\xd7\xa3\xd8\xa3\xd9\xa3\xda\xa3\xdb\xa3\xdc\xa3\xdd\xa3\xde\xa3\xdf\xa3\xe0\xa3\xe1\xa3\xe2\xa3\xe3\xa3\xe4\xa3\xe5\xa3\xe6\xa3\xe7\xa3\xe8\xa3\xe9\xa3\xea\xa3\xeb\xa3\xec\xa3\xed\xa3\xee\xa3\xef\xa3\xf0\xa3\xf1\xa3\xf2\xa3\xf3\xa3\xf4\xa3\xf5\xa3\xf6\xa3\xf7\xa3\xf8\xa3\xf9\xa3\xfa\xa3\xfb\xa3\xfc\xa3\xfd\xa3\xfe\xa3\xff\xa4\x00\xa4\x01\xa4\x02\xa4\x03\xa4\x04\xa4\x05\xa4\x06\xa4\x07\xa4\x08\xa4\x09\xa4\x0a\xa4\x0b\xa4\x0c\xa4\x0d\xa4\x0e\xa4\x0f\xa4\x10\xa4\x11\xa4\x12\xa4\x13\xa4\x14\xa4\x15\xa4\x16\xa4\x17\xa4\x18\xa4\x19\xa4\x1a\xa4\x1b\xa4\x1c\xa4\x1d\xa4\x1e\xa4\x1f\xa4\x20\xa4\x21\xa4\x22\xa4\x23\xa4\x24\xa4\x25\xa4\x26\xa4\x27\xa4\x28\xa4\x29\xa4\x2a\xa4\x2b\xa4\x2c\xa4\x2d\xa4\x2e\xa4\x2f\xa4\x30\xa4\x31\xa4\x32\xa4\x33\xa4\x34\xa4\x35\xa4\x36\xa4\x37\xa4\x38\xa4\x39\xa4\x3a\xa4\x3b\xa4\x3c\xa4\x3d\xa4\x3e\xa4\x3f\x00\x00", /* 7500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x40\xa4\x41\xa4\x42\xa4\x43\xa4\x44\xa4\x45\xa4\x46\xa4\x47\xa4\x48\xa4\x49\xa4\x4a\xa4\x4b\xa4\x4c\xa4\x4d\xa4\x4e\xa4\x4f\xa4\x50\xa4\x51\xa4\x52\xa4\x53\xa4\x54\xa4\x55\xa4\x56\xa4\x57\xa4\x58\xa4\x59\xa4\x5a\xa4\x5b\xa4\x5c\xa4\x5d\xa4\x5e\xa4\x5f\xa4\x60\xa4\x61\xa4\x62\xa4\x63\xa4\x64\xa4\x65\xa4\x66\xa4\x67\xa4\x68\xa4\x69\xa4\x6a\xa4\x6b\xa4\x6c\xa4\x6d\xa4\x6e\xa4\x6f\xa4\x70\xa4\x71\xa4\x72\xa4\x73\xa4\x74\xa4\x75\xa4\x76\xa4\x77\xa4\x78\xa4\x79\xa4\x7a\xa4\x7b\xa4\x7c\xa4\x7d\xa4\x7e", /* 7580 */ "\xa4\x7f\xa4\x80\xa4\x81\xa4\x82\xa4\x83\xa4\x84\xa4\x85\xa4\x86\xa4\x87\xa4\x88\xa4\x89\xa4\x8a\xa4\x8b\xa4\x8c\xa4\x8d\xa4\x8e\xa4\x8f\xa4\x90\xa4\x91\xa4\x92\xa4\x93\xa4\x94\xa4\x95\xa4\x96\xa4\x97\xa4\x98\xa4\x99\xa4\x9a\xa4\x9b\xa4\x9c\xa4\x9d\xa4\x9e\xa4\x9f\xa4\xa0\xa4\xa1\xa4\xa2\xa4\xa3\xa4\xa4\xa4\xa5\xa4\xa6\xa4\xa7\xa4\xa8\xa4\xa9\xa4\xaa\xa4\xab\xa4\xac\xa4\xad\xa4\xae\xa4\xaf\xa4\xb0\xa4\xb1\xa4\xb2\xa4\xb3\xa4\xb4\xa4\xb5\xa4\xb6\xa4\xb7\xa4\xb8\xa4\xb9\xa4\xba\xa4\xbb\xa4\xbc\xa4\xbd\xa4\xbe\xa4\xbf\xa4\xc0\xa4\xc1\xa4\xc2\xa4\xc3\xa4\xc4\xa4\xc5\xa4\xc6\xa4\xc7\xa4\xc8\xa4\xc9\xa4\xca\xa4\xcb\xa4\xcc\xa4\xcd\xa4\xce\xa4\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 7600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xe0\x01\xe0\x02\xe0\x03\xe0\x04\xe0\x05\xe0\x06\xe0\x07\xe0\x08\xe0\x09\xe0\x0a\xe0\x0b\xe0\x0c\xe0\x0d\xe0\x0e\xe0\x0f\xe0\x10\xe0\x11\xe0\x12\xe0\x13\xe0\x14\xe0\x15\xe0\x16\xe0\x17\xe0\x18\xe0\x19\xe0\x1a\xe0\x1b\xe0\x1c\xe0\x1d\xe0\x1e\xe0\x1f\xe0\x20\xe0\x21\xe0\x22\xe0\x23\xe0\x24\xe0\x25\xe0\x26\xe0\x27\xe0\x28\xe0\x29\xe0\x2a\xe0\x2b\xe0\x2c\xe0\x2d\xe0\x2e\xe0\x2f\xe0\x30\xe0\x31\xe0\x32\xe0\x33\xe0\x34\xe0\x35\xe0\x36\xe0\x37\xe0\x38\xe0\x39\xe0\x3a\xe0\x3b\xe0\x3c\xe0\x3d\xe0\x3e", /* 7680 */ "\x00\x00\xe0\x3f\xe0\x40\xe0\x41\xe0\x42\xe0\x43\xe0\x44\xe0\x45\xe0\x46\xe0\x47\xe0\x48\xe0\x49\xe0\x4a\xe0\x4b\xe0\x4c\xe0\x4d\xe0\x4e\xe0\x4f\xe0\x50\xe0\x51\xe0\x52\xe0\x53\xe0\x54\xe0\x55\xe0\x56\xe0\x57\xe0\x58\xe0\x59\xe0\x5a\xe0\x5b\xe0\x5c\xe0\x5d\xe0\x5e\xe0\x5f\xe0\x60\xe0\x61\xe0\x62\xe0\x63\xe0\x64\xe0\x65\xe0\x66\xe0\x67\xe0\x68\xe0\x69\xe0\x6a\xe0\x6b\xe0\x6c\xe0\x6d\xe0\x6e\xe0\x6f\xe0\x70\xe0\x71\xe0\x72\xe0\x73\xe0\x74\xe0\x75\xe0\x76\xe0\x77\xe0\x78\xe0\x79\xe0\x7a\xe0\x7b\xe0\x7c\xe0\x7d\xe0\x7e\xe0\x7f\xe0\x80\xe0\x81\xe0\x82\xe0\x83\xe0\x84\xe0\x85\xe0\x86\xe0\x87\xe0\x88\xe0\x89\xe0\x8a\xe0\x8b\xe0\x8c\xe0\x8d\xe0\x8e\xe0\x8f\xe0\x90\xe0\x91\xe0\x92\xe0\x93\xe0\x94\xe0\x95\xe0\x96\xe0\x97\xe0\x98\xe0\x99\xe0\x9a\xe0\x9b\xe0\x9c\xe0\x9d\xe0\x9e\xe0\x9f\xe0\xa0\xe0\xa1\xe0\xa2\xe0\xa3\xe0\xa4\xe0\xa5\xe0\xa6\xe0\xa7\xe0\xa8\xe0\xa9\xe0\xaa\xe0\xab\xe0\xac\xe0\xad\xe0\xae\xe0\xaf\xe0\xb0\xe0\xb1\xe0\xb2\xe0\xb3\xe0\xb4\xe0\xb5\xe0\xb6\xe0\xb7\xe0\xb8\xe0\xb9\xe0\xba\xe0\xbb\x00\x00\x00\x00", /* 7700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xbc\xe0\xbd\xe0\xbe\xe0\xbf\xe0\xc0\xe0\xc1\xe0\xc2\xe0\xc3\xe0\xc4\xe0\xc5\xe0\xc6\xe0\xc7\xe0\xc8\xe0\xc9\xe0\xca\xe0\xcb\xe0\xcc\xe0\xcd\xe0\xce\xe0\xcf\xe0\xd0\xe0\xd1\xe0\xd2\xe0\xd3\xe0\xd4\xe0\xd5\xe0\xd6\xe0\xd7\xe0\xd8\xe0\xd9\xe0\xda\xe0\xdb\xe0\xdc\xe0\xdd\xe0\xde\xe0\xdf\xe0\xe0\xe0\xe1\xe0\xe2\xe0\xe3\xe0\xe4\xe0\xe5\xe0\xe6\xe0\xe7\xe0\xe8\xe0\xe9\xe0\xea\xe0\xeb\xe0\xec\xe0\xed\xe0\xee\xe0\xef\xe0\xf0\xe0\xf1\xe0\xf2\xe0\xf3\xe0\xf4\xe0\xf5\xe0\xf6\xe0\xf7\xe0\xf8\xe0\xf9\xe0\xfa", /* 7780 */ "\x00\x00\xe0\xfb\xe0\xfc\xe0\xfd\xe0\xfe\xe0\xff\xe1\x00\xe1\x01\xe1\x02\xe1\x03\xe1\x04\xe1\x05\xe1\x06\xe1\x07\xe1\x08\xe1\x09\xe1\x0a\xe1\x0b\xe1\x0c\xe1\x0d\xe1\x0e\xe1\x0f\xe1\x10\xe1\x11\xe1\x12\xe1\x13\xe1\x14\xe1\x15\xe1\x16\xe1\x17\xe1\x18\xe1\x19\xe1\x1a\xe1\x1b\xe1\x1c\xe1\x1d\xe1\x1e\xe1\x1f\xe1\x20\xe1\x21\xe1\x22\xe1\x23\xe1\x24\xe1\x25\xe1\x26\xe1\x27\xe1\x28\xe1\x29\xe1\x2a\xe1\x2b\xe1\x2c\xe1\x2d\xe1\x2e\xe1\x2f\xe1\x30\xe1\x31\xe1\x32\xe1\x33\xe1\x34\xe1\x35\xe1\x36\xe1\x37\xe1\x38\xe1\x39\xe1\x3a\xe1\x3b\xe1\x3c\xe1\x3d\xe1\x3e\xe1\x3f\xe1\x40\xe1\x41\xe1\x42\xe1\x43\xe1\x44\xe1\x45\xe1\x46\xe1\x47\xe1\x48\xe1\x49\xe1\x4a\xe1\x4b\xe1\x4c\xe1\x4d\xe1\x4e\xe1\x4f\xe1\x50\xe1\x51\xe1\x52\xe1\x53\xe1\x54\xe1\x55\xe1\x56\xe1\x57\xe1\x58\xe1\x59\xe1\x5a\xe1\x5b\xe1\x5c\xe1\x5d\xe1\x5e\xe1\x5f\xe1\x60\xe1\x61\xe1\x62\xe1\x63\xe1\x64\xe1\x65\xe1\x66\xe1\x67\xe1\x68\xe1\x69\xe1\x6a\xe1\x6b\xe1\x6c\xe1\x6d\xe1\x6e\xe1\x6f\xe1\x70\xe1\x71\xe1\x72\xe1\x73\xe1\x74\xe1\x75\xe1\x76\xe1\x77\x00\x00\x00\x00", /* 7800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x78\xe1\x79\xe1\x7a\xe1\x7b\xe1\x7c\xe1\x7d\xe1\x7e\xe1\x7f\xe1\x80\xe1\x81\xe1\x82\xe1\x83\xe1\x84\xe1\x85\xe1\x86\xe1\x87\xe1\x88\xe1\x89\xe1\x8a\xe1\x8b\xe1\x8c\xe1\x8d\xe1\x8e\xe1\x8f\xe1\x90\xe1\x91\xe1\x92\xe1\x93\xe1\x94\xe1\x95\xe1\x96\xe1\x97\xe1\x98\xe1\x99\xe1\x9a\xe1\x9b\xe1\x9c\xe1\x9d\xe1\x9e\xe1\x9f\xe1\xa0\xe1\xa1\xe1\xa2\xe1\xa3\xe1\xa4\xe1\xa5\xe1\xa6\xe1\xa7\xe1\xa8\xe1\xa9\xe1\xaa\xe1\xab\xe1\xac\xe1\xad\xe1\xae\xe1\xaf\xe1\xb0\xe1\xb1\xe1\xb2\xe1\xb3\xe1\xb4\xe1\xb5\xe1\xb6", /* 7880 */ "\x00\x00\xe1\xb7\xe1\xb8\xe1\xb9\xe1\xba\xe1\xbb\xe1\xbc\xe1\xbd\xe1\xbe\xe1\xbf\xe1\xc0\xe1\xc1\xe1\xc2\xe1\xc3\xe1\xc4\xe1\xc5\xe1\xc6\xe1\xc7\xe1\xc8\xe1\xc9\xe1\xca\xe1\xcb\xe1\xcc\xe1\xcd\xe1\xce\xe1\xcf\xe1\xd0\xe1\xd1\xe1\xd2\xe1\xd3\xe1\xd4\xe1\xd5\xe1\xd6\xe1\xd7\xe1\xd8\xe1\xd9\xe1\xda\xe1\xdb\xe1\xdc\xe1\xdd\xe1\xde\xe1\xdf\xe1\xe0\xe1\xe1\xe1\xe2\xe1\xe3\xe1\xe4\xe1\xe5\xe1\xe6\xe1\xe7\xe1\xe8\xe1\xe9\xe1\xea\xe1\xeb\xe1\xec\xe1\xed\xe1\xee\xe1\xef\xe1\xf0\xe1\xf1\xe1\xf2\xe1\xf3\xe1\xf4\xe1\xf5\xe1\xf6\xe1\xf7\xe1\xf8\xe1\xf9\xe1\xfa\xe1\xfb\xe1\xfc\xe1\xfd\xe1\xfe\xe1\xff\xe2\x00\xe2\x01\xe2\x02\xe2\x03\xe2\x04\xe2\x05\xe2\x06\xe2\x07\xe2\x08\xe2\x09\xe2\x0a\xe2\x0b\xe2\x0c\xe2\x0d\xe2\x0e\xe2\x0f\xe2\x10\xe2\x11\xe2\x12\xe2\x13\xe2\x14\xe2\x15\xe2\x16\xe2\x17\xe2\x18\xe2\x19\xe2\x1a\xe2\x1b\xe2\x1c\xe2\x1d\xe2\x1e\xe2\x1f\xe2\x20\xe2\x21\xe2\x22\xe2\x23\xe2\x24\xe2\x25\xe2\x26\xe2\x27\xe2\x28\xe2\x29\xe2\x2a\xe2\x2b\xe2\x2c\xe2\x2d\xe2\x2e\xe2\x2f\xe2\x30\xe2\x31\xe2\x32\xe2\x33\x00\x00\x00\x00", /* 7900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x34\xe2\x35\xe2\x36\xe2\x37\xe2\x38\xe2\x39\xe2\x3a\xe2\x3b\xe2\x3c\xe2\x3d\xe2\x3e\xe2\x3f\xe2\x40\xe2\x41\xe2\x42\xe2\x43\xe2\x44\xe2\x45\xe2\x46\xe2\x47\xe2\x48\xe2\x49\xe2\x4a\xe2\x4b\xe2\x4c\xe2\x4d\xe2\x4e\xe2\x4f\xe2\x50\xe2\x51\xe2\x52\xe2\x53\xe2\x54\xe2\x55\xe2\x56\xe2\x57\xe2\x58\xe2\x59\xe2\x5a\xe2\x5b\xe2\x5c\xe2\x5d\xe2\x5e\xe2\x5f\xe2\x60\xe2\x61\xe2\x62\xe2\x63\xe2\x64\xe2\x65\xe2\x66\xe2\x67\xe2\x68\xe2\x69\xe2\x6a\xe2\x6b\xe2\x6c\xe2\x6d\xe2\x6e\xe2\x6f\xe2\x70\xe2\x71\xe2\x72", /* 7980 */ "\x00\x00\xe2\x73\xe2\x74\xe2\x75\xe2\x76\xe2\x77\xe2\x78\xe2\x79\xe2\x7a\xe2\x7b\xe2\x7c\xe2\x7d\xe2\x7e\xe2\x7f\xe2\x80\xe2\x81\xe2\x82\xe2\x83\xe2\x84\xe2\x85\xe2\x86\xe2\x87\xe2\x88\xe2\x89\xe2\x8a\xe2\x8b\xe2\x8c\xe2\x8d\xe2\x8e\xe2\x8f\xe2\x90\xe2\x91\xe2\x92\xe2\x93\xe2\x94\xe2\x95\xe2\x96\xe2\x97\xe2\x98\xe2\x99\xe2\x9a\xe2\x9b\xe2\x9c\xe2\x9d\xe2\x9e\xe2\x9f\xe2\xa0\xe2\xa1\xe2\xa2\xe2\xa3\xe2\xa4\xe2\xa5\xe2\xa6\xe2\xa7\xe2\xa8\xe2\xa9\xe2\xaa\xe2\xab\xe2\xac\xe2\xad\xe2\xae\xe2\xaf\xe2\xb0\xe2\xb1\xe2\xb2\xe2\xb3\xe2\xb4\xe2\xb5\xe2\xb6\xe2\xb7\xe2\xb8\xe2\xb9\xe2\xba\xe2\xbb\xe2\xbc\xe2\xbd\xe2\xbe\xe2\xbf\xe2\xc0\xe2\xc1\xe2\xc2\xe2\xc3\xe2\xc4\xe2\xc5\xe2\xc6\xe2\xc7\xe2\xc8\xe2\xc9\xe2\xca\xe2\xcb\xe2\xcc\xe2\xcd\xe2\xce\xe2\xcf\xe2\xd0\xe2\xd1\xe2\xd2\xe2\xd3\xe2\xd4\xe2\xd5\xe2\xd6\xe2\xd7\xe2\xd8\xe2\xd9\xe2\xda\xe2\xdb\xe2\xdc\xe2\xdd\xe2\xde\xe2\xdf\xe2\xe0\xe2\xe1\xe2\xe2\xe2\xe3\xe2\xe4\xe2\xe5\xe2\xe6\xe2\xe7\xe2\xe8\xe2\xe9\xe2\xea\xe2\xeb\xe2\xec\xe2\xed\xe2\xee\xe2\xef\x00\x00\x00\x00", /* 7a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf0\xe2\xf1\xe2\xf2\xe2\xf3\xe2\xf4\xe2\xf5\xe2\xf6\xe2\xf7\xe2\xf8\xe2\xf9\xe2\xfa\xe2\xfb\xe2\xfc\xe2\xfd\xe2\xfe\xe2\xff\xe3\x00\xe3\x01\xe3\x02\xe3\x03\xe3\x04\xe3\x05\xe3\x06\xe3\x07\xe3\x08\xe3\x09\xe3\x0a\xe3\x0b\xe3\x0c\xe3\x0d\xe3\x0e\xe3\x0f\xe3\x10\xe3\x11\xe3\x12\xe3\x13\xe3\x14\xe3\x15\xe3\x16\xe3\x17\xe3\x18\xe3\x19\xe3\x1a\xe3\x1b\xe3\x1c\xe3\x1d\xe3\x1e\xe3\x1f\xe3\x20\xe3\x21\xe3\x22\xe3\x23\xe3\x24\xe3\x25\xe3\x26\xe3\x27\xe3\x28\xe3\x29\xe3\x2a\xe3\x2b\xe3\x2c\xe3\x2d\xe3\x2e", /* 7a80 */ "\x00\x00\xe3\x2f\xe3\x30\xe3\x31\xe3\x32\xe3\x33\xe3\x34\xe3\x35\xe3\x36\xe3\x37\xe3\x38\xe3\x39\xe3\x3a\xe3\x3b\xe3\x3c\xe3\x3d\xe3\x3e\xe3\x3f\xe3\x40\xe3\x41\xe3\x42\xe3\x43\xe3\x44\xe3\x45\xe3\x46\xe3\x47\xe3\x48\xe3\x49\xe3\x4a\xe3\x4b\xe3\x4c\xe3\x4d\xe3\x4e\xe3\x4f\xe3\x50\xe3\x51\xe3\x52\xe3\x53\xe3\x54\xe3\x55\xe3\x56\xe3\x57\xe3\x58\xe3\x59\xe3\x5a\xe3\x5b\xe3\x5c\xe3\x5d\xe3\x5e\xe3\x5f\xe3\x60\xe3\x61\xe3\x62\xe3\x63\xe3\x64\xe3\x65\xe3\x66\xe3\x67\xe3\x68\xe3\x69\xe3\x6a\xe3\x6b\xe3\x6c\xe3\x6d\xe3\x6e\xe3\x6f\xe3\x70\xe3\x71\xe3\x72\xe3\x73\xe3\x74\xe3\x75\xe3\x76\xe3\x77\xe3\x78\xe3\x79\xe3\x7a\xe3\x7b\xe3\x7c\xe3\x7d\xe3\x7e\xe3\x7f\xe3\x80\xe3\x81\xe3\x82\xe3\x83\xe3\x84\xe3\x85\xe3\x86\xe3\x87\xe3\x88\xe3\x89\xe3\x8a\xe3\x8b\xe3\x8c\xe3\x8d\xe3\x8e\xe3\x8f\xe3\x90\xe3\x91\xe3\x92\xe3\x93\xe3\x94\xe3\x95\xe3\x96\xe3\x97\xe3\x98\xe3\x99\xe3\x9a\xe3\x9b\xe3\x9c\xe3\x9d\xe3\x9e\xe3\x9f\xe3\xa0\xe3\xa1\xe3\xa2\xe3\xa3\xe3\xa4\xe3\xa5\xe3\xa6\xe3\xa7\xe3\xa8\xe3\xa9\xe3\xaa\xe3\xab\x00\x00\x00\x00", /* 7b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xac\xe3\xad\xe3\xae\xe3\xaf\xe3\xb0\xe3\xb1\xe3\xb2\xe3\xb3\xe3\xb4\xe3\xb5\xe3\xb6\xe3\xb7\xe3\xb8\xe3\xb9\xe3\xba\xe3\xbb\xe3\xbc\xe3\xbd\xe3\xbe\xe3\xbf\xe3\xc0\xe3\xc1\xe3\xc2\xe3\xc3\xe3\xc4\xe3\xc5\xe3\xc6\xe3\xc7\xe3\xc8\xe3\xc9\xe3\xca\xe3\xcb\xe3\xcc\xe3\xcd\xe3\xce\xe3\xcf\xe3\xd0\xe3\xd1\xe3\xd2\xe3\xd3\xe3\xd4\xe3\xd5\xe3\xd6\xe3\xd7\xe3\xd8\xe3\xd9\xe3\xda\xe3\xdb\xe3\xdc\xe3\xdd\xe3\xde\xe3\xdf\xe3\xe0\xe3\xe1\xe3\xe2\xe3\xe3\xe3\xe4\xe3\xe5\xe3\xe6\xe3\xe7\xe3\xe8\xe3\xe9\xe3\xea", /* 7b80 */ "\x00\x00\xe3\xeb\xe3\xec\xe3\xed\xe3\xee\xe3\xef\xe3\xf0\xe3\xf1\xe3\xf2\xe3\xf3\xe3\xf4\xe3\xf5\xe3\xf6\xe3\xf7\xe3\xf8\xe3\xf9\xe3\xfa\xe3\xfb\xe3\xfc\xe3\xfd\xe3\xfe\xe3\xff\xe4\x00\xe4\x01\xe4\x02\xe4\x03\xe4\x04\xe4\x05\xe4\x06\xe4\x07\xe4\x08\xe4\x09\xe4\x0a\xe4\x0b\xe4\x0c\xe4\x0d\xe4\x0e\xe4\x0f\xe4\x10\xe4\x11\xe4\x12\xe4\x13\xe4\x14\xe4\x15\xe4\x16\xe4\x17\xe4\x18\xe4\x19\xe4\x1a\xe4\x1b\xe4\x1c\xe4\x1d\xe4\x1e\xe4\x1f\xe4\x20\xe4\x21\xe4\x22\xe4\x23\xe4\x24\xe4\x25\xe4\x26\xe4\x27\xe4\x28\xe4\x29\xe4\x2a\xe4\x2b\xe4\x2c\xe4\x2d\xe4\x2e\xe4\x2f\xe4\x30\xe4\x31\xe4\x32\xe4\x33\xe4\x34\xe4\x35\xe4\x36\xe4\x37\xe4\x38\xe4\x39\xe4\x3a\xe4\x3b\xe4\x3c\xe4\x3d\xe4\x3e\xe4\x3f\xe4\x40\xe4\x41\xe4\x42\xe4\x43\xe4\x44\xe4\x45\xe4\x46\xe4\x47\xe4\x48\xe4\x49\xe4\x4a\xe4\x4b\xe4\x4c\xe4\x4d\xe4\x4e\xe4\x4f\xe4\x50\xe4\x51\xe4\x52\xe4\x53\xe4\x54\xe4\x55\xe4\x56\xe4\x57\xe4\x58\xe4\x59\xe4\x5a\xe4\x5b\xe4\x5c\xe4\x5d\xe4\x5e\xe4\x5f\xe4\x60\xe4\x61\xe4\x62\xe4\x63\xe4\x64\xe4\x65\xe4\x66\xe4\x67\x00\x00\x00\x00", /* 7c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x68\xe4\x69\xe4\x6a\xe4\x6b\xe4\x6c\xe4\x6d\xe4\x6e\xe4\x6f\xe4\x70\xe4\x71\xe4\x72\xe4\x73\xe4\x74\xe4\x75\xe4\x76\xe4\x77\xe4\x78\xe4\x79\xe4\x7a\xe4\x7b\xe4\x7c\xe4\x7d\xe4\x7e\xe4\x7f\xe4\x80\xe4\x81\xe4\x82\xe4\x83\xe4\x84\xe4\x85\xe4\x86\xe4\x87\xe4\x88\xe4\x89\xe4\x8a\xe4\x8b\xe4\x8c\xe4\x8d\xe4\x8e\xe4\x8f\xe4\x90\xe4\x91\xe4\x92\xe4\x93\xe4\x94\xe4\x95\xe4\x96\xe4\x97\xe4\x98\xe4\x99\xe4\x9a\xe4\x9b\xe4\x9c\xe4\x9d\xe4\x9e\xe4\x9f\xe4\xa0\xe4\xa1\xe4\xa2\xe4\xa3\xe4\xa4\xe4\xa5\xe4\xa6", /* 7c80 */ "\x00\x00\xe4\xa7\xe4\xa8\xe4\xa9\xe4\xaa\xe4\xab\xe4\xac\xe4\xad\xe4\xae\xe4\xaf\xe4\xb0\xe4\xb1\xe4\xb2\xe4\xb3\xe4\xb4\xe4\xb5\xe4\xb6\xe4\xb7\xe4\xb8\xe4\xb9\xe4\xba\xe4\xbb\xe4\xbc\xe4\xbd\xe4\xbe\xe4\xbf\xe4\xc0\xe4\xc1\xe4\xc2\xe4\xc3\xe4\xc4\xe4\xc5\xe4\xc6\xe4\xc7\xe4\xc8\xe4\xc9\xe4\xca\xe4\xcb\xe4\xcc\xe4\xcd\xe4\xce\xe4\xcf\xe4\xd0\xe4\xd1\xe4\xd2\xe4\xd3\xe4\xd4\xe4\xd5\xe4\xd6\xe4\xd7\xe4\xd8\xe4\xd9\xe4\xda\xe4\xdb\xe4\xdc\xe4\xdd\xe4\xde\xe4\xdf\xe4\xe0\xe4\xe1\xe4\xe2\xe4\xe3\xe4\xe4\xe4\xe5\xe4\xe6\xe4\xe7\xe4\xe8\xe4\xe9\xe4\xea\xe4\xeb\xe4\xec\xe4\xed\xe4\xee\xe4\xef\xe4\xf0\xe4\xf1\xe4\xf2\xe4\xf3\xe4\xf4\xe4\xf5\xe4\xf6\xe4\xf7\xe4\xf8\xe4\xf9\xe4\xfa\xe4\xfb\xe4\xfc\xe4\xfd\xe4\xfe\xe4\xff\xe5\x00\xe5\x01\xe5\x02\xe5\x03\xe5\x04\xe5\x05\xe5\x06\xe5\x07\xe5\x08\xe5\x09\xe5\x0a\xe5\x0b\xe5\x0c\xe5\x0d\xe5\x0e\xe5\x0f\xe5\x10\xe5\x11\xe5\x12\xe5\x13\xe5\x14\xe5\x15\xe5\x16\xe5\x17\xe5\x18\xe5\x19\xe5\x1a\xe5\x1b\xe5\x1c\xe5\x1d\xe5\x1e\xe5\x1f\xe5\x20\xe5\x21\xe5\x22\xe5\x23\x00\x00\x00\x00", /* 7d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x24\xe5\x25\xe5\x26\xe5\x27\xe5\x28\xe5\x29\xe5\x2a\xe5\x2b\xe5\x2c\xe5\x2d\xe5\x2e\xe5\x2f\xe5\x30\xe5\x31\xe5\x32\xe5\x33\xe5\x34\xe5\x35\xe5\x36\xe5\x37\xe5\x38\xe5\x39\xe5\x3a\xe5\x3b\xe5\x3c\xe5\x3d\xe5\x3e\xe5\x3f\xe5\x40\xe5\x41\xe5\x42\xe5\x43\xe5\x44\xe5\x45\xe5\x46\xe5\x47\xe5\x48\xe5\x49\xe5\x4a\xe5\x4b\xe5\x4c\xe5\x4d\xe5\x4e\xe5\x4f\xe5\x50\xe5\x51\xe5\x52\xe5\x53\xe5\x54\xe5\x55\xe5\x56\xe5\x57\xe5\x58\xe5\x59\xe5\x5a\xe5\x5b\xe5\x5c\xe5\x5d\xe5\x5e\xe5\x5f\xe5\x60\xe5\x61\xe5\x62", /* 7d80 */ "\x00\x00\xe5\x63\xe5\x64\xe5\x65\xe5\x66\xe5\x67\xe5\x68\xe5\x69\xe5\x6a\xe5\x6b\xe5\x6c\xe5\x6d\xe5\x6e\xe5\x6f\xe5\x70\xe5\x71\xe5\x72\xe5\x73\xe5\x74\xe5\x75\xe5\x76\xe5\x77\xe5\x78\xe5\x79\xe5\x7a\xe5\x7b\xe5\x7c\xe5\x7d\xe5\x7e\xe5\x7f\xe5\x80\xe5\x81\xe5\x82\xe5\x83\xe5\x84\xe5\x85\xe5\x86\xe5\x87\xe5\x88\xe5\x89\xe5\x8a\xe5\x8b\xe5\x8c\xe5\x8d\xe5\x8e\xe5\x8f\xe5\x90\xe5\x91\xe5\x92\xe5\x93\xe5\x94\xe5\x95\xe5\x96\xe5\x97\xe5\x98\xe5\x99\xe5\x9a\xe5\x9b\xe5\x9c\xe5\x9d\xe5\x9e\xe5\x9f\xe5\xa0\xe5\xa1\xe5\xa2\xe5\xa3\xe5\xa4\xe5\xa5\xe5\xa6\xe5\xa7\xe5\xa8\xe5\xa9\xe5\xaa\xe5\xab\xe5\xac\xe5\xad\xe5\xae\xe5\xaf\xe5\xb0\xe5\xb1\xe5\xb2\xe5\xb3\xe5\xb4\xe5\xb5\xe5\xb6\xe5\xb7\xe5\xb8\xe5\xb9\xe5\xba\xe5\xbb\xe5\xbc\xe5\xbd\xe5\xbe\xe5\xbf\xe5\xc0\xe5\xc1\xe5\xc2\xe5\xc3\xe5\xc4\xe5\xc5\xe5\xc6\xe5\xc7\xe5\xc8\xe5\xc9\xe5\xca\xe5\xcb\xe5\xcc\xe5\xcd\xe5\xce\xe5\xcf\xe5\xd0\xe5\xd1\xe5\xd2\xe5\xd3\xe5\xd4\xe5\xd5\xe5\xd6\xe5\xd7\xe5\xd8\xe5\xd9\xe5\xda\xe5\xdb\xe5\xdc\xe5\xdd\xe5\xde\xe5\xdf\x00\x00\x00\x00", /* 7e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xe0\xe5\xe1\xe5\xe2\xe5\xe3\xe5\xe4\xe5\xe5\xe5\xe6\xe5\xe7\xe5\xe8\xe5\xe9\xe5\xea\xe5\xeb\xe5\xec\xe5\xed\xe5\xee\xe5\xef\xe5\xf0\xe5\xf1\xe5\xf2\xe5\xf3\xe5\xf4\xe5\xf5\xe5\xf6\xe5\xf7\xe5\xf8\xe5\xf9\xe5\xfa\xe5\xfb\xe5\xfc\xe5\xfd\xe5\xfe\xe5\xff\xe6\x00\xe6\x01\xe6\x02\xe6\x03\xe6\x04\xe6\x05\xe6\x06\xe6\x07\xe6\x08\xe6\x09\xe6\x0a\xe6\x0b\xe6\x0c\xe6\x0d\xe6\x0e\xe6\x0f\xe6\x10\xe6\x11\xe6\x12\xe6\x13\xe6\x14\xe6\x15\xe6\x16\xe6\x17\xe6\x18\xe6\x19\xe6\x1a\xe6\x1b\xe6\x1c\xe6\x1d\xe6\x1e", /* 7e80 */ "\x00\x00\xe6\x1f\xe6\x20\xe6\x21\xe6\x22\xe6\x23\xe6\x24\xe6\x25\xe6\x26\xe6\x27\xe6\x28\xe6\x29\xe6\x2a\xe6\x2b\xe6\x2c\xe6\x2d\xe6\x2e\xe6\x2f\xe6\x30\xe6\x31\xe6\x32\xe6\x33\xe6\x34\xe6\x35\xe6\x36\xe6\x37\xe6\x38\xe6\x39\xe6\x3a\xe6\x3b\xe6\x3c\xe6\x3d\xe6\x3e\xe6\x3f\xe6\x40\xe6\x41\xe6\x42\xe6\x43\xe6\x44\xe6\x45\xe6\x46\xe6\x47\xe6\x48\xe6\x49\xe6\x4a\xe6\x4b\xe6\x4c\xe6\x4d\xe6\x4e\xe6\x4f\xe6\x50\xe6\x51\xe6\x52\xe6\x53\xe6\x54\xe6\x55\xe6\x56\xe6\x57\xe6\x58\xe6\x59\xe6\x5a\xe6\x5b\xe6\x5c\xe6\x5d\xe6\x5e\xe6\x5f\xe6\x60\xe6\x61\xe6\x62\xe6\x63\xe6\x64\xe6\x65\xe6\x66\xe6\x67\xe6\x68\xe6\x69\xe6\x6a\xe6\x6b\xe6\x6c\xe6\x6d\xe6\x6e\xe6\x6f\xe6\x70\xe6\x71\xe6\x72\xe6\x73\xe6\x74\xe6\x75\xe6\x76\xe6\x77\xe6\x78\xe6\x79\xe6\x7a\xe6\x7b\xe6\x7c\xe6\x7d\xe6\x7e\xe6\x7f\xe6\x80\xe6\x81\xe6\x82\xe6\x83\xe6\x84\xe6\x85\xe6\x86\xe6\x87\xe6\x88\xe6\x89\xe6\x8a\xe6\x8b\xe6\x8c\xe6\x8d\xe6\x8e\xe6\x8f\xe6\x90\xe6\x91\xe6\x92\xe6\x93\xe6\x94\xe6\x95\xe6\x96\xe6\x97\xe6\x98\xe6\x99\xe6\x9a\xe6\x9b\x00\x00\x00\x00", /* 7f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x9c\xe6\x9d\xe6\x9e\xe6\x9f\xe6\xa0\xe6\xa1\xe6\xa2\xe6\xa3\xe6\xa4\xe6\xa5\xe6\xa6\xe6\xa7\xe6\xa8\xe6\xa9\xe6\xaa\xe6\xab\xe6\xac\xe6\xad\xe6\xae\xe6\xaf\xe6\xb0\xe6\xb1\xe6\xb2\xe6\xb3\xe6\xb4\xe6\xb5\xe6\xb6\xe6\xb7\xe6\xb8\xe6\xb9\xe6\xba\xe6\xbb\xe6\xbc\xe6\xbd\xe6\xbe\xe6\xbf\xe6\xc0\xe6\xc1\xe6\xc2\xe6\xc3\xe6\xc4\xe6\xc5\xe6\xc6\xe6\xc7\xe6\xc8\xe6\xc9\xe6\xca\xe6\xcb\xe6\xcc\xe6\xcd\xe6\xce\xe6\xcf\xe6\xd0\xe6\xd1\xe6\xd2\xe6\xd3\xe6\xd4\xe6\xd5\xe6\xd6\xe6\xd7\xe6\xd8\xe6\xd9\xe6\xda", /* 7f80 */ "\x00\x00\xe6\xdb\xe6\xdc\xe6\xdd\xe6\xde\xe6\xdf\xe6\xe0\xe6\xe1\xe6\xe2\xe6\xe3\xe6\xe4\xe6\xe5\xe6\xe6\xe6\xe7\xe6\xe8\xe6\xe9\xe6\xea\xe6\xeb\xe6\xec\xe6\xed\xe6\xee\xe6\xef\xe6\xf0\xe6\xf1\xe6\xf2\xe6\xf3\xe6\xf4\xe6\xf5\xe6\xf6\xe6\xf7\xe6\xf8\xe6\xf9\xe6\xfa\xe6\xfb\xe6\xfc\xe6\xfd\xe6\xfe\xe6\xff\xe7\x00\xe7\x01\xe7\x02\xe7\x03\xe7\x04\xe7\x05\xe7\x06\xe7\x07\xe7\x08\xe7\x09\xe7\x0a\xe7\x0b\xe7\x0c\xe7\x0d\xe7\x0e\xe7\x0f\xe7\x10\xe7\x11\xe7\x12\xe7\x13\xe7\x14\xe7\x15\xe7\x16\xe7\x17\xe7\x18\xe7\x19\xe7\x1a\xe7\x1b\xe7\x1c\xe7\x1d\xe7\x1e\xe7\x1f\xe7\x20\xe7\x21\xe7\x22\xe7\x23\xe7\x24\xe7\x25\xe7\x26\xe7\x27\xe7\x28\xe7\x29\xe7\x2a\xe7\x2b\xe7\x2c\xe7\x2d\xe7\x2e\xe7\x2f\xe7\x30\xe7\x31\xe7\x32\xe7\x33\xe7\x34\xe7\x35\xe7\x36\xe7\x37\xe7\x38\xe7\x39\xe7\x3a\xe7\x3b\xe7\x3c\xe7\x3d\xe7\x3e\xe7\x3f\xe7\x40\xe7\x41\xe7\x42\xe7\x43\xe7\x44\xe7\x45\xe7\x46\xe7\x47\xe7\x48\xe7\x49\xe7\x4a\xe7\x4b\xe7\x4c\xe7\x4d\xe7\x4e\xe7\x4f\xe7\x50\xe7\x51\xe7\x52\xe7\x53\xe7\x54\xe7\x55\xe7\x56\xe7\x57\x00\x00\x00\x00", /* 8000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x58\xe7\x59\xe7\x5a\xe7\x5b\xe7\x5c\xe7\x5d\xe7\x5e\xe7\x5f\xe7\x60\xe7\x61\xe7\x62\xe7\x63\xe7\x64\xe7\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* 8080 */ NULL, /* 8100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x02\x4e\x04\x4e\x05\x4e\x06\x4e\x0f\x4e\x12\x4e\x17\x4e\x1f\x4e\x20\x4e\x21\x4e\x23\x4e\x26\x4e\x29\x4e\x2e\x4e\x2f\x4e\x31\x4e\x33\x4e\x35\x4e\x37\x4e\x3c\x4e\x40\x4e\x41\x4e\x42\x4e\x44\x4e\x46\x4e\x4a\x4e\x51\x4e\x55\x4e\x57\x4e\x5a\x4e\x5b\x4e\x62\x4e\x63\x4e\x64\x4e\x65\x4e\x67\x4e\x68\x4e\x6a\x4e\x6b\x4e\x6c\x4e\x6d\x4e\x6e\x4e\x6f\x4e\x72\x4e\x74\x4e\x75\x4e\x76\x4e\x77\x4e\x78\x4e\x79\x4e\x7a\x4e\x7b\x4e\x7c\x4e\x7d\x4e\x7f\x4e\x80\x4e\x81\x4e\x82\x4e\x83\x4e\x84\x4e\x85\x4e\x87\x4e\x8a", /* 8180 */ "\x00\x00\x4e\x90\x4e\x96\x4e\x97\x4e\x99\x4e\x9c\x4e\x9d\x4e\x9e\x4e\xa3\x4e\xaa\x4e\xaf\x4e\xb0\x4e\xb1\x4e\xb4\x4e\xb6\x4e\xb7\x4e\xb8\x4e\xb9\x4e\xbc\x4e\xbd\x4e\xbe\x4e\xc8\x4e\xcc\x4e\xcf\x4e\xd0\x4e\xd2\x4e\xda\x4e\xdb\x4e\xdc\x4e\xe0\x4e\xe2\x4e\xe6\x4e\xe7\x4e\xe9\x4e\xed\x4e\xee\x4e\xef\x4e\xf1\x4e\xf4\x4e\xf8\x4e\xf9\x4e\xfa\x4e\xfc\x4e\xfe\x4f\x00\x4f\x02\x4f\x03\x4f\x04\x4f\x05\x4f\x06\x4f\x07\x4f\x08\x4f\x0b\x4f\x0c\x4f\x12\x4f\x13\x4f\x14\x4f\x15\x4f\x16\x4f\x1c\x4f\x1d\x4f\x21\x4f\x23\x4f\x28\x4f\x29\x4f\x2c\x4f\x2d\x4f\x2e\x4f\x31\x4f\x33\x4f\x35\x4f\x37\x4f\x39\x4f\x3b\x4f\x3e\x4f\x3f\x4f\x40\x4f\x41\x4f\x42\x4f\x44\x4f\x45\x4f\x47\x4f\x48\x4f\x49\x4f\x4a\x4f\x4b\x4f\x4c\x4f\x52\x4f\x54\x4f\x56\x4f\x61\x4f\x62\x4f\x66\x4f\x68\x4f\x6a\x4f\x6b\x4f\x6d\x4f\x6e\x4f\x71\x4f\x72\x4f\x75\x4f\x77\x4f\x78\x4f\x79\x4f\x7a\x4f\x7d\x4f\x80\x4f\x81\x4f\x82\x4f\x85\x4f\x86\x4f\x87\x4f\x8a\x4f\x8c\x4f\x8e\x4f\x90\x4f\x92\x4f\x93\x4f\x95\x4f\x96\x4f\x98\x4f\x99\x4f\x9a\x4f\x9c\x4f\x9e\x4f\x9f\x00\x00\x00\x00", /* 8200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\xa1\x4f\xa2\x4f\xa4\x4f\xab\x4f\xad\x4f\xb0\x4f\xb1\x4f\xb2\x4f\xb3\x4f\xb4\x4f\xb6\x4f\xb7\x4f\xb8\x4f\xb9\x4f\xba\x4f\xbb\x4f\xbc\x4f\xbd\x4f\xbe\x4f\xc0\x4f\xc1\x4f\xc2\x4f\xc6\x4f\xc7\x4f\xc8\x4f\xc9\x4f\xcb\x4f\xcc\x4f\xcd\x4f\xd2\x4f\xd3\x4f\xd4\x4f\xd5\x4f\xd6\x4f\xd9\x4f\xdb\x4f\xe0\x4f\xe2\x4f\xe4\x4f\xe5\x4f\xe7\x4f\xeb\x4f\xec\x4f\xf0\x4f\xf2\x4f\xf4\x4f\xf5\x4f\xf6\x4f\xf7\x4f\xf9\x4f\xfb\x4f\xfc\x4f\xfd\x4f\xff\x50\x00\x50\x01\x50\x02\x50\x03\x50\x04\x50\x05\x50\x06\x50\x07\x50\x08", /* 8280 */ "\x00\x00\x50\x09\x50\x0a\x50\x0b\x50\x0e\x50\x10\x50\x11\x50\x13\x50\x15\x50\x16\x50\x17\x50\x1b\x50\x1d\x50\x1e\x50\x20\x50\x22\x50\x23\x50\x24\x50\x27\x50\x2b\x50\x2f\x50\x30\x50\x31\x50\x32\x50\x33\x50\x34\x50\x35\x50\x36\x50\x37\x50\x38\x50\x39\x50\x3b\x50\x3d\x50\x3f\x50\x40\x50\x41\x50\x42\x50\x44\x50\x45\x50\x46\x50\x49\x50\x4a\x50\x4b\x50\x4d\x50\x50\x50\x51\x50\x52\x50\x53\x50\x54\x50\x56\x50\x57\x50\x58\x50\x59\x50\x5b\x50\x5d\x50\x5e\x50\x5f\x50\x60\x50\x61\x50\x62\x50\x63\x50\x64\x50\x66\x50\x67\x50\x68\x50\x69\x50\x6a\x50\x6b\x50\x6d\x50\x6e\x50\x6f\x50\x70\x50\x71\x50\x72\x50\x73\x50\x74\x50\x75\x50\x78\x50\x79\x50\x7a\x50\x7c\x50\x7d\x50\x81\x50\x82\x50\x83\x50\x84\x50\x86\x50\x87\x50\x89\x50\x8a\x50\x8b\x50\x8c\x50\x8e\x50\x8f\x50\x90\x50\x91\x50\x92\x50\x93\x50\x94\x50\x95\x50\x96\x50\x97\x50\x98\x50\x99\x50\x9a\x50\x9b\x50\x9c\x50\x9d\x50\x9e\x50\x9f\x50\xa0\x50\xa1\x50\xa2\x50\xa4\x50\xa6\x50\xaa\x50\xab\x50\xad\x50\xae\x50\xaf\x50\xb0\x50\xb1\x50\xb3\x50\xb4\x50\xb5\x50\xb6\x00\x00\x00\x00", /* 8300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\xb7\x50\xb8\x50\xb9\x50\xbc\x50\xbd\x50\xbe\x50\xbf\x50\xc0\x50\xc1\x50\xc2\x50\xc3\x50\xc4\x50\xc5\x50\xc6\x50\xc7\x50\xc8\x50\xc9\x50\xca\x50\xcb\x50\xcc\x50\xcd\x50\xce\x50\xd0\x50\xd1\x50\xd2\x50\xd3\x50\xd4\x50\xd5\x50\xd7\x50\xd8\x50\xd9\x50\xdb\x50\xdc\x50\xdd\x50\xde\x50\xdf\x50\xe0\x50\xe1\x50\xe2\x50\xe3\x50\xe4\x50\xe5\x50\xe8\x50\xe9\x50\xea\x50\xeb\x50\xef\x50\xf0\x50\xf1\x50\xf2\x50\xf4\x50\xf6\x50\xf7\x50\xf8\x50\xf9\x50\xfa\x50\xfc\x50\xfd\x50\xfe\x50\xff\x51\x00\x51\x01\x51\x02", /* 8380 */ "\x00\x00\x51\x03\x51\x04\x51\x05\x51\x08\x51\x09\x51\x0a\x51\x0c\x51\x0d\x51\x0e\x51\x0f\x51\x10\x51\x11\x51\x13\x51\x14\x51\x15\x51\x16\x51\x17\x51\x18\x51\x19\x51\x1a\x51\x1b\x51\x1c\x51\x1d\x51\x1e\x51\x1f\x51\x20\x51\x22\x51\x23\x51\x24\x51\x25\x51\x26\x51\x27\x51\x28\x51\x29\x51\x2a\x51\x2b\x51\x2c\x51\x2d\x51\x2e\x51\x2f\x51\x30\x51\x31\x51\x32\x51\x33\x51\x34\x51\x35\x51\x36\x51\x37\x51\x38\x51\x39\x51\x3a\x51\x3b\x51\x3c\x51\x3d\x51\x3e\x51\x42\x51\x47\x51\x4a\x51\x4c\x51\x4e\x51\x4f\x51\x50\x51\x52\x51\x53\x51\x57\x51\x58\x51\x59\x51\x5b\x51\x5d\x51\x5e\x51\x5f\x51\x60\x51\x61\x51\x63\x51\x64\x51\x66\x51\x67\x51\x69\x51\x6a\x51\x6f\x51\x72\x51\x7a\x51\x7e\x51\x7f\x51\x83\x51\x84\x51\x86\x51\x87\x51\x8a\x51\x8b\x51\x8e\x51\x8f\x51\x90\x51\x91\x51\x93\x51\x94\x51\x98\x51\x9a\x51\x9d\x51\x9e\x51\x9f\x51\xa1\x51\xa3\x51\xa6\x51\xa7\x51\xa8\x51\xa9\x51\xaa\x51\xad\x51\xae\x51\xb4\x51\xb8\x51\xb9\x51\xba\x51\xbe\x51\xbf\x51\xc1\x51\xc2\x51\xc3\x51\xc5\x51\xc8\x51\xca\x51\xcd\x51\xce\x51\xd0\x00\x00\x00\x00", /* 8400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\xd2\x51\xd3\x51\xd4\x51\xd5\x51\xd6\x51\xd7\x51\xd8\x51\xd9\x51\xda\x51\xdc\x51\xde\x51\xdf\x51\xe2\x51\xe3\x51\xe5\x51\xe6\x51\xe7\x51\xe8\x51\xe9\x51\xea\x51\xec\x51\xee\x51\xf1\x51\xf2\x51\xf4\x51\xf7\x51\xfe\x52\x04\x52\x05\x52\x09\x52\x0b\x52\x0c\x52\x0f\x52\x10\x52\x13\x52\x14\x52\x15\x52\x1c\x52\x1e\x52\x1f\x52\x21\x52\x22\x52\x23\x52\x25\x52\x26\x52\x27\x52\x2a\x52\x2c\x52\x2f\x52\x31\x52\x32\x52\x34\x52\x35\x52\x3c\x52\x3e\x52\x44\x52\x45\x52\x46\x52\x47\x52\x48\x52\x49\x52\x4b\x52\x4e", /* 8480 */ "\x00\x00\x52\x4f\x52\x52\x52\x53\x52\x55\x52\x57\x52\x58\x52\x59\x52\x5a\x52\x5b\x52\x5d\x52\x5f\x52\x60\x52\x62\x52\x63\x52\x64\x52\x66\x52\x68\x52\x6b\x52\x6c\x52\x6d\x52\x6e\x52\x70\x52\x71\x52\x73\x52\x74\x52\x75\x52\x76\x52\x77\x52\x78\x52\x79\x52\x7a\x52\x7b\x52\x7c\x52\x7e\x52\x80\x52\x83\x52\x84\x52\x85\x52\x86\x52\x87\x52\x89\x52\x8a\x52\x8b\x52\x8c\x52\x8d\x52\x8e\x52\x8f\x52\x91\x52\x92\x52\x94\x52\x95\x52\x96\x52\x97\x52\x98\x52\x99\x52\x9a\x52\x9c\x52\xa4\x52\xa5\x52\xa6\x52\xa7\x52\xae\x52\xaf\x52\xb0\x52\xb4\x52\xb5\x52\xb6\x52\xb7\x52\xb8\x52\xb9\x52\xba\x52\xbb\x52\xbc\x52\xbd\x52\xc0\x52\xc1\x52\xc2\x52\xc4\x52\xc5\x52\xc6\x52\xc8\x52\xca\x52\xcc\x52\xcd\x52\xce\x52\xcf\x52\xd1\x52\xd3\x52\xd4\x52\xd5\x52\xd7\x52\xd9\x52\xda\x52\xdb\x52\xdc\x52\xdd\x52\xde\x52\xe0\x52\xe1\x52\xe2\x52\xe3\x52\xe5\x52\xe6\x52\xe7\x52\xe8\x52\xe9\x52\xea\x52\xeb\x52\xec\x52\xed\x52\xee\x52\xef\x52\xf1\x52\xf2\x52\xf3\x52\xf4\x52\xf5\x52\xf6\x52\xf7\x52\xf8\x52\xfb\x52\xfc\x52\xfd\x53\x01\x53\x02\x00\x00\x00\x00", /* 8500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x03\x53\x04\x53\x07\x53\x09\x53\x0a\x53\x0b\x53\x0c\x53\x0e\x53\x11\x53\x12\x53\x13\x53\x14\x53\x18\x53\x1b\x53\x1c\x53\x1e\x53\x1f\x53\x22\x53\x24\x53\x25\x53\x27\x53\x28\x53\x29\x53\x2b\x53\x2c\x53\x2d\x53\x2f\x53\x30\x53\x31\x53\x32\x53\x33\x53\x34\x53\x35\x53\x36\x53\x37\x53\x38\x53\x3c\x53\x3d\x53\x40\x53\x42\x53\x44\x53\x46\x53\x4b\x53\x4c\x53\x4d\x53\x50\x53\x54\x53\x58\x53\x59\x53\x5b\x53\x5d\x53\x65\x53\x68\x53\x6a\x53\x6c\x53\x6d\x53\x72\x53\x76\x53\x79\x53\x7b\x53\x7c\x53\x7d\x53\x7e", /* 8580 */ "\x00\x00\x53\x80\x53\x81\x53\x83\x53\x87\x53\x88\x53\x8a\x53\x8e\x53\x8f\x53\x90\x53\x91\x53\x92\x53\x93\x53\x94\x53\x96\x53\x97\x53\x99\x53\x9b\x53\x9c\x53\x9e\x53\xa0\x53\xa1\x53\xa4\x53\xa7\x53\xaa\x53\xab\x53\xac\x53\xad\x53\xaf\x53\xb0\x53\xb1\x53\xb2\x53\xb3\x53\xb4\x53\xb5\x53\xb7\x53\xb8\x53\xb9\x53\xba\x53\xbc\x53\xbd\x53\xbe\x53\xc0\x53\xc3\x53\xc4\x53\xc5\x53\xc6\x53\xc7\x53\xce\x53\xcf\x53\xd0\x53\xd2\x53\xd3\x53\xd5\x53\xda\x53\xdc\x53\xdd\x53\xde\x53\xe1\x53\xe2\x53\xe7\x53\xf4\x53\xfa\x53\xfe\x53\xff\x54\x00\x54\x02\x54\x05\x54\x07\x54\x0b\x54\x14\x54\x18\x54\x19\x54\x1a\x54\x1c\x54\x22\x54\x24\x54\x25\x54\x2a\x54\x30\x54\x33\x54\x36\x54\x37\x54\x3a\x54\x3d\x54\x3f\x54\x41\x54\x42\x54\x44\x54\x45\x54\x47\x54\x49\x54\x4c\x54\x4d\x54\x4e\x54\x4f\x54\x51\x54\x5a\x54\x5d\x54\x5e\x54\x5f\x54\x60\x54\x61\x54\x63\x54\x65\x54\x67\x54\x69\x54\x6a\x54\x6b\x54\x6c\x54\x6d\x54\x6e\x54\x6f\x54\x70\x54\x74\x54\x79\x54\x7a\x54\x7e\x54\x7f\x54\x81\x54\x83\x54\x85\x54\x87\x54\x88\x54\x89\x54\x8a\x00\x00\x00\x00", /* 8600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x8d\x54\x91\x54\x93\x54\x97\x54\x98\x54\x9c\x54\x9e\x54\x9f\x54\xa0\x54\xa1\x54\xa2\x54\xa5\x54\xae\x54\xb0\x54\xb2\x54\xb5\x54\xb6\x54\xb7\x54\xb9\x54\xba\x54\xbc\x54\xbe\x54\xc3\x54\xc5\x54\xca\x54\xcb\x54\xd6\x54\xd8\x54\xdb\x54\xe0\x54\xe1\x54\xe2\x54\xe3\x54\xe4\x54\xeb\x54\xec\x54\xef\x54\xf0\x54\xf1\x54\xf4\x54\xf5\x54\xf6\x54\xf7\x54\xf8\x54\xf9\x54\xfb\x54\xfe\x55\x00\x55\x02\x55\x03\x55\x04\x55\x05\x55\x08\x55\x0a\x55\x0b\x55\x0c\x55\x0d\x55\x0e\x55\x12\x55\x13\x55\x15\x55\x16\x55\x17", /* 8680 */ "\x00\x00\x55\x18\x55\x19\x55\x1a\x55\x1c\x55\x1d\x55\x1e\x55\x1f\x55\x21\x55\x25\x55\x26\x55\x28\x55\x29\x55\x2b\x55\x2d\x55\x32\x55\x34\x55\x35\x55\x36\x55\x38\x55\x39\x55\x3a\x55\x3b\x55\x3d\x55\x40\x55\x42\x55\x45\x55\x47\x55\x48\x55\x4b\x55\x4c\x55\x4d\x55\x4e\x55\x4f\x55\x51\x55\x52\x55\x53\x55\x54\x55\x57\x55\x58\x55\x59\x55\x5a\x55\x5b\x55\x5d\x55\x5e\x55\x5f\x55\x60\x55\x62\x55\x63\x55\x68\x55\x69\x55\x6b\x55\x6f\x55\x70\x55\x71\x55\x72\x55\x73\x55\x74\x55\x79\x55\x7a\x55\x7d\x55\x7f\x55\x85\x55\x86\x55\x8c\x55\x8d\x55\x8e\x55\x90\x55\x92\x55\x93\x55\x95\x55\x96\x55\x97\x55\x9a\x55\x9b\x55\x9e\x55\xa0\x55\xa1\x55\xa2\x55\xa3\x55\xa4\x55\xa5\x55\xa6\x55\xa8\x55\xa9\x55\xaa\x55\xab\x55\xac\x55\xad\x55\xae\x55\xaf\x55\xb0\x55\xb2\x55\xb4\x55\xb6\x55\xb8\x55\xba\x55\xbc\x55\xbf\x55\xc0\x55\xc1\x55\xc2\x55\xc3\x55\xc6\x55\xc7\x55\xc8\x55\xca\x55\xcb\x55\xce\x55\xcf\x55\xd0\x55\xd5\x55\xd7\x55\xd8\x55\xd9\x55\xda\x55\xdb\x55\xde\x55\xe0\x55\xe2\x55\xe7\x55\xe9\x55\xed\x55\xee\x55\xf0\x55\xf1\x00\x00\x00\x00", /* 8700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\xf4\x55\xf6\x55\xf8\x55\xf9\x55\xfa\x55\xfb\x55\xfc\x55\xff\x56\x02\x56\x03\x56\x04\x56\x05\x56\x06\x56\x07\x56\x0a\x56\x0b\x56\x0d\x56\x10\x56\x11\x56\x12\x56\x13\x56\x14\x56\x15\x56\x16\x56\x17\x56\x19\x56\x1a\x56\x1c\x56\x1d\x56\x20\x56\x21\x56\x22\x56\x25\x56\x26\x56\x28\x56\x29\x56\x2a\x56\x2b\x56\x2e\x56\x2f\x56\x30\x56\x33\x56\x35\x56\x37\x56\x38\x56\x3a\x56\x3c\x56\x3d\x56\x3e\x56\x40\x56\x41\x56\x42\x56\x43\x56\x44\x56\x45\x56\x46\x56\x47\x56\x48\x56\x49\x56\x4a\x56\x4b\x56\x4f\x56\x50", /* 8780 */ "\x00\x00\x56\x51\x56\x52\x56\x53\x56\x55\x56\x56\x56\x5a\x56\x5b\x56\x5d\x56\x5e\x56\x5f\x56\x60\x56\x61\x56\x63\x56\x65\x56\x66\x56\x67\x56\x6d\x56\x6e\x56\x6f\x56\x70\x56\x72\x56\x73\x56\x74\x56\x75\x56\x77\x56\x78\x56\x79\x56\x7a\x56\x7d\x56\x7e\x56\x7f\x56\x80\x56\x81\x56\x82\x56\x83\x56\x84\x56\x87\x56\x88\x56\x89\x56\x8a\x56\x8b\x56\x8c\x56\x8d\x56\x90\x56\x91\x56\x92\x56\x94\x56\x95\x56\x96\x56\x97\x56\x98\x56\x99\x56\x9a\x56\x9b\x56\x9c\x56\x9d\x56\x9e\x56\x9f\x56\xa0\x56\xa1\x56\xa2\x56\xa4\x56\xa5\x56\xa6\x56\xa7\x56\xa8\x56\xa9\x56\xaa\x56\xab\x56\xac\x56\xad\x56\xae\x56\xb0\x56\xb1\x56\xb2\x56\xb3\x56\xb4\x56\xb5\x56\xb6\x56\xb8\x56\xb9\x56\xba\x56\xbb\x56\xbd\x56\xbe\x56\xbf\x56\xc0\x56\xc1\x56\xc2\x56\xc3\x56\xc4\x56\xc5\x56\xc6\x56\xc7\x56\xc8\x56\xc9\x56\xcb\x56\xcc\x56\xcd\x56\xce\x56\xcf\x56\xd0\x56\xd1\x56\xd2\x56\xd3\x56\xd5\x56\xd6\x56\xd8\x56\xd9\x56\xdc\x56\xe3\x56\xe5\x56\xe6\x56\xe7\x56\xe8\x56\xe9\x56\xea\x56\xec\x56\xee\x56\xef\x56\xf2\x56\xf3\x56\xf6\x56\xf7\x56\xf8\x00\x00\x00\x00", /* 8800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\xfb\x56\xfc\x57\x00\x57\x01\x57\x02\x57\x05\x57\x07\x57\x0b\x57\x0c\x57\x0d\x57\x0e\x57\x0f\x57\x10\x57\x11\x57\x12\x57\x13\x57\x14\x57\x15\x57\x16\x57\x17\x57\x18\x57\x19\x57\x1a\x57\x1b\x57\x1d\x57\x1e\x57\x20\x57\x21\x57\x22\x57\x24\x57\x25\x57\x26\x57\x27\x57\x2b\x57\x31\x57\x32\x57\x34\x57\x35\x57\x36\x57\x37\x57\x38\x57\x3c\x57\x3d\x57\x3f\x57\x41\x57\x43\x57\x44\x57\x45\x57\x46\x57\x48\x57\x49\x57\x4b\x57\x52\x57\x53\x57\x54\x57\x55\x57\x56\x57\x58\x57\x59\x57\x62\x57\x63\x57\x65\x57\x67", /* 8880 */ "\x00\x00\x57\x6c\x57\x6e\x57\x70\x57\x71\x57\x72\x57\x74\x57\x75\x57\x78\x57\x79\x57\x7a\x57\x7d\x57\x7e\x57\x7f\x57\x80\x57\x81\x57\x87\x57\x88\x57\x89\x57\x8a\x57\x8d\x57\x8e\x57\x8f\x57\x90\x57\x91\x57\x94\x57\x95\x57\x96\x57\x97\x57\x98\x57\x99\x57\x9a\x57\x9c\x57\x9d\x57\x9e\x57\x9f\x57\xa5\x57\xa8\x57\xaa\x57\xac\x57\xaf\x57\xb0\x57\xb1\x57\xb3\x57\xb5\x57\xb6\x57\xb7\x57\xb9\x57\xba\x57\xbb\x57\xbc\x57\xbd\x57\xbe\x57\xbf\x57\xc0\x57\xc1\x57\xc4\x57\xc5\x57\xc6\x57\xc7\x57\xc8\x57\xc9\x57\xca\x57\xcc\x57\xcd\x57\xd0\x57\xd1\x57\xd3\x57\xd6\x57\xd7\x57\xdb\x57\xdc\x57\xde\x57\xe1\x57\xe2\x57\xe3\x57\xe5\x57\xe6\x57\xe7\x57\xe8\x57\xe9\x57\xea\x57\xeb\x57\xec\x57\xee\x57\xf0\x57\xf1\x57\xf2\x57\xf3\x57\xf5\x57\xf6\x57\xf7\x57\xfb\x57\xfc\x57\xfe\x57\xff\x58\x01\x58\x03\x58\x04\x58\x05\x58\x08\x58\x09\x58\x0a\x58\x0c\x58\x0e\x58\x0f\x58\x10\x58\x12\x58\x13\x58\x14\x58\x16\x58\x17\x58\x18\x58\x1a\x58\x1b\x58\x1c\x58\x1d\x58\x1f\x58\x22\x58\x23\x58\x25\x58\x26\x58\x27\x58\x28\x58\x29\x58\x2b\x00\x00\x00\x00", /* 8900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x2c\x58\x2d\x58\x2e\x58\x2f\x58\x31\x58\x32\x58\x33\x58\x34\x58\x36\x58\x37\x58\x38\x58\x39\x58\x3a\x58\x3b\x58\x3c\x58\x3d\x58\x3e\x58\x3f\x58\x40\x58\x41\x58\x42\x58\x43\x58\x45\x58\x46\x58\x47\x58\x48\x58\x49\x58\x4a\x58\x4b\x58\x4e\x58\x4f\x58\x50\x58\x52\x58\x53\x58\x55\x58\x56\x58\x57\x58\x59\x58\x5a\x58\x5b\x58\x5c\x58\x5d\x58\x5f\x58\x60\x58\x61\x58\x62\x58\x63\x58\x64\x58\x66\x58\x67\x58\x68\x58\x69\x58\x6a\x58\x6d\x58\x6e\x58\x6f\x58\x70\x58\x71\x58\x72\x58\x73\x58\x74\x58\x75\x58\x76", /* 8980 */ "\x00\x00\x58\x77\x58\x78\x58\x79\x58\x7a\x58\x7b\x58\x7c\x58\x7d\x58\x7f\x58\x82\x58\x84\x58\x86\x58\x87\x58\x88\x58\x8a\x58\x8b\x58\x8c\x58\x8d\x58\x8e\x58\x8f\x58\x90\x58\x91\x58\x94\x58\x95\x58\x96\x58\x97\x58\x98\x58\x9b\x58\x9c\x58\x9d\x58\xa0\x58\xa1\x58\xa2\x58\xa3\x58\xa4\x58\xa5\x58\xa6\x58\xa7\x58\xaa\x58\xab\x58\xac\x58\xad\x58\xae\x58\xaf\x58\xb0\x58\xb1\x58\xb2\x58\xb3\x58\xb4\x58\xb5\x58\xb6\x58\xb7\x58\xb8\x58\xb9\x58\xba\x58\xbb\x58\xbd\x58\xbe\x58\xbf\x58\xc0\x58\xc2\x58\xc3\x58\xc4\x58\xc6\x58\xc7\x58\xc8\x58\xc9\x58\xca\x58\xcb\x58\xcc\x58\xcd\x58\xce\x58\xcf\x58\xd0\x58\xd2\x58\xd3\x58\xd4\x58\xd6\x58\xd7\x58\xd8\x58\xd9\x58\xda\x58\xdb\x58\xdc\x58\xdd\x58\xde\x58\xdf\x58\xe0\x58\xe1\x58\xe2\x58\xe3\x58\xe5\x58\xe6\x58\xe7\x58\xe8\x58\xe9\x58\xea\x58\xed\x58\xef\x58\xf1\x58\xf2\x58\xf4\x58\xf5\x58\xf7\x58\xf8\x58\xfa\x58\xfb\x58\xfc\x58\xfd\x58\xfe\x58\xff\x59\x00\x59\x01\x59\x03\x59\x05\x59\x06\x59\x08\x59\x09\x59\x0a\x59\x0b\x59\x0c\x59\x0e\x59\x10\x59\x11\x59\x12\x59\x13\x00\x00\x00\x00", /* 8a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x17\x59\x18\x59\x1b\x59\x1d\x59\x1e\x59\x20\x59\x21\x59\x22\x59\x23\x59\x26\x59\x28\x59\x2c\x59\x30\x59\x32\x59\x33\x59\x35\x59\x36\x59\x3b\x59\x3d\x59\x3e\x59\x3f\x59\x40\x59\x43\x59\x45\x59\x46\x59\x4a\x59\x4c\x59\x4d\x59\x50\x59\x52\x59\x53\x59\x59\x59\x5b\x59\x5c\x59\x5d\x59\x5e\x59\x5f\x59\x61\x59\x63\x59\x64\x59\x66\x59\x67\x59\x68\x59\x69\x59\x6a\x59\x6b\x59\x6c\x59\x6d\x59\x6e\x59\x6f\x59\x70\x59\x71\x59\x72\x59\x75\x59\x77\x59\x7a\x59\x7b\x59\x7c\x59\x7e\x59\x7f\x59\x80\x59\x85\x59\x89", /* 8a80 */ "\x00\x00\x59\x8b\x59\x8c\x59\x8e\x59\x8f\x59\x90\x59\x91\x59\x94\x59\x95\x59\x98\x59\x9a\x59\x9b\x59\x9c\x59\x9d\x59\x9f\x59\xa0\x59\xa1\x59\xa2\x59\xa6\x59\xa7\x59\xac\x59\xad\x59\xb0\x59\xb1\x59\xb3\x59\xb4\x59\xb5\x59\xb6\x59\xb7\x59\xb8\x59\xba\x59\xbc\x59\xbd\x59\xbf\x59\xc0\x59\xc1\x59\xc2\x59\xc3\x59\xc4\x59\xc5\x59\xc7\x59\xc8\x59\xc9\x59\xcc\x59\xcd\x59\xce\x59\xcf\x59\xd5\x59\xd6\x59\xd9\x59\xdb\x59\xde\x59\xdf\x59\xe0\x59\xe1\x59\xe2\x59\xe4\x59\xe6\x59\xe7\x59\xe9\x59\xea\x59\xeb\x59\xed\x59\xee\x59\xef\x59\xf0\x59\xf1\x59\xf2\x59\xf3\x59\xf4\x59\xf5\x59\xf6\x59\xf7\x59\xf8\x59\xfa\x59\xfc\x59\xfd\x59\xfe\x5a\x00\x5a\x02\x5a\x0a\x5a\x0b\x5a\x0d\x5a\x0e\x5a\x0f\x5a\x10\x5a\x12\x5a\x14\x5a\x15\x5a\x16\x5a\x17\x5a\x19\x5a\x1a\x5a\x1b\x5a\x1d\x5a\x1e\x5a\x21\x5a\x22\x5a\x24\x5a\x26\x5a\x27\x5a\x28\x5a\x2a\x5a\x2b\x5a\x2c\x5a\x2d\x5a\x2e\x5a\x2f\x5a\x30\x5a\x33\x5a\x35\x5a\x37\x5a\x38\x5a\x39\x5a\x3a\x5a\x3b\x5a\x3d\x5a\x3e\x5a\x3f\x5a\x41\x5a\x42\x5a\x43\x5a\x44\x5a\x45\x5a\x47\x5a\x48\x00\x00\x00\x00", /* 8b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x4b\x5a\x4c\x5a\x4d\x5a\x4e\x5a\x4f\x5a\x50\x5a\x51\x5a\x52\x5a\x53\x5a\x54\x5a\x56\x5a\x57\x5a\x58\x5a\x59\x5a\x5b\x5a\x5c\x5a\x5d\x5a\x5e\x5a\x5f\x5a\x60\x5a\x61\x5a\x63\x5a\x64\x5a\x65\x5a\x66\x5a\x68\x5a\x69\x5a\x6b\x5a\x6c\x5a\x6d\x5a\x6e\x5a\x6f\x5a\x70\x5a\x71\x5a\x72\x5a\x73\x5a\x78\x5a\x79\x5a\x7b\x5a\x7c\x5a\x7d\x5a\x7e\x5a\x80\x5a\x81\x5a\x82\x5a\x83\x5a\x84\x5a\x85\x5a\x86\x5a\x87\x5a\x88\x5a\x89\x5a\x8a\x5a\x8b\x5a\x8c\x5a\x8d\x5a\x8e\x5a\x8f\x5a\x90\x5a\x91\x5a\x93\x5a\x94\x5a\x95", /* 8b80 */ "\x00\x00\x5a\x96\x5a\x97\x5a\x98\x5a\x99\x5a\x9c\x5a\x9d\x5a\x9e\x5a\x9f\x5a\xa0\x5a\xa1\x5a\xa2\x5a\xa3\x5a\xa4\x5a\xa5\x5a\xa6\x5a\xa7\x5a\xa8\x5a\xa9\x5a\xab\x5a\xac\x5a\xad\x5a\xae\x5a\xaf\x5a\xb0\x5a\xb1\x5a\xb4\x5a\xb6\x5a\xb7\x5a\xb9\x5a\xba\x5a\xbb\x5a\xbc\x5a\xbd\x5a\xbf\x5a\xc0\x5a\xc3\x5a\xc4\x5a\xc5\x5a\xc6\x5a\xc7\x5a\xc8\x5a\xca\x5a\xcb\x5a\xcd\x5a\xce\x5a\xcf\x5a\xd0\x5a\xd1\x5a\xd3\x5a\xd5\x5a\xd7\x5a\xd9\x5a\xda\x5a\xdb\x5a\xdd\x5a\xde\x5a\xdf\x5a\xe2\x5a\xe4\x5a\xe5\x5a\xe7\x5a\xe8\x5a\xea\x5a\xec\x5a\xed\x5a\xee\x5a\xef\x5a\xf0\x5a\xf2\x5a\xf3\x5a\xf4\x5a\xf5\x5a\xf6\x5a\xf7\x5a\xf8\x5a\xf9\x5a\xfa\x5a\xfb\x5a\xfc\x5a\xfd\x5a\xfe\x5a\xff\x5b\x00\x5b\x01\x5b\x02\x5b\x03\x5b\x04\x5b\x05\x5b\x06\x5b\x07\x5b\x08\x5b\x0a\x5b\x0b\x5b\x0c\x5b\x0d\x5b\x0e\x5b\x0f\x5b\x10\x5b\x11\x5b\x12\x5b\x13\x5b\x14\x5b\x15\x5b\x18\x5b\x19\x5b\x1a\x5b\x1b\x5b\x1c\x5b\x1d\x5b\x1e\x5b\x1f\x5b\x20\x5b\x21\x5b\x22\x5b\x23\x5b\x24\x5b\x25\x5b\x26\x5b\x27\x5b\x28\x5b\x29\x5b\x2a\x5b\x2b\x5b\x2c\x5b\x2d\x00\x00\x00\x00", /* 8c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x2e\x5b\x2f\x5b\x30\x5b\x31\x5b\x33\x5b\x35\x5b\x36\x5b\x38\x5b\x39\x5b\x3a\x5b\x3b\x5b\x3c\x5b\x3d\x5b\x3e\x5b\x3f\x5b\x41\x5b\x42\x5b\x43\x5b\x44\x5b\x45\x5b\x46\x5b\x47\x5b\x48\x5b\x49\x5b\x4a\x5b\x4b\x5b\x4c\x5b\x4d\x5b\x4e\x5b\x4f\x5b\x52\x5b\x56\x5b\x5e\x5b\x60\x5b\x61\x5b\x67\x5b\x68\x5b\x6b\x5b\x6d\x5b\x6e\x5b\x6f\x5b\x72\x5b\x74\x5b\x76\x5b\x77\x5b\x78\x5b\x79\x5b\x7b\x5b\x7c\x5b\x7e\x5b\x7f\x5b\x82\x5b\x86\x5b\x8a\x5b\x8d\x5b\x8e\x5b\x90\x5b\x91\x5b\x92\x5b\x94\x5b\x96\x5b\x9f\x5b\xa7", /* 8c80 */ "\x00\x00\x5b\xa8\x5b\xa9\x5b\xac\x5b\xad\x5b\xae\x5b\xaf\x5b\xb1\x5b\xb2\x5b\xb7\x5b\xba\x5b\xbb\x5b\xbc\x5b\xc0\x5b\xc1\x5b\xc3\x5b\xc8\x5b\xc9\x5b\xca\x5b\xcb\x5b\xcd\x5b\xce\x5b\xcf\x5b\xd1\x5b\xd4\x5b\xd5\x5b\xd6\x5b\xd7\x5b\xd8\x5b\xd9\x5b\xda\x5b\xdb\x5b\xdc\x5b\xe0\x5b\xe2\x5b\xe3\x5b\xe6\x5b\xe7\x5b\xe9\x5b\xea\x5b\xeb\x5b\xec\x5b\xed\x5b\xef\x5b\xf1\x5b\xf2\x5b\xf3\x5b\xf4\x5b\xf5\x5b\xf6\x5b\xf7\x5b\xfd\x5b\xfe\x5c\x00\x5c\x02\x5c\x03\x5c\x05\x5c\x07\x5c\x08\x5c\x0b\x5c\x0c\x5c\x0d\x5c\x0e\x5c\x10\x5c\x12\x5c\x13\x5c\x17\x5c\x19\x5c\x1b\x5c\x1e\x5c\x1f\x5c\x20\x5c\x21\x5c\x23\x5c\x26\x5c\x28\x5c\x29\x5c\x2a\x5c\x2b\x5c\x2d\x5c\x2e\x5c\x2f\x5c\x30\x5c\x32\x5c\x33\x5c\x35\x5c\x36\x5c\x37\x5c\x43\x5c\x44\x5c\x46\x5c\x47\x5c\x4c\x5c\x4d\x5c\x52\x5c\x53\x5c\x54\x5c\x56\x5c\x57\x5c\x58\x5c\x5a\x5c\x5b\x5c\x5c\x5c\x5d\x5c\x5f\x5c\x62\x5c\x64\x5c\x67\x5c\x68\x5c\x69\x5c\x6a\x5c\x6b\x5c\x6c\x5c\x6d\x5c\x70\x5c\x72\x5c\x73\x5c\x74\x5c\x75\x5c\x76\x5c\x77\x5c\x78\x5c\x7b\x5c\x7c\x5c\x7d\x5c\x7e\x00\x00\x00\x00", /* 8d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x80\x5c\x83\x5c\x84\x5c\x85\x5c\x86\x5c\x87\x5c\x89\x5c\x8a\x5c\x8b\x5c\x8e\x5c\x8f\x5c\x92\x5c\x93\x5c\x95\x5c\x9d\x5c\x9e\x5c\x9f\x5c\xa0\x5c\xa1\x5c\xa4\x5c\xa5\x5c\xa6\x5c\xa7\x5c\xa8\x5c\xaa\x5c\xae\x5c\xaf\x5c\xb0\x5c\xb2\x5c\xb4\x5c\xb6\x5c\xb9\x5c\xba\x5c\xbb\x5c\xbc\x5c\xbe\x5c\xc0\x5c\xc2\x5c\xc3\x5c\xc5\x5c\xc6\x5c\xc7\x5c\xc8\x5c\xc9\x5c\xca\x5c\xcc\x5c\xcd\x5c\xce\x5c\xcf\x5c\xd0\x5c\xd1\x5c\xd3\x5c\xd4\x5c\xd5\x5c\xd6\x5c\xd7\x5c\xd8\x5c\xda\x5c\xdb\x5c\xdc\x5c\xdd\x5c\xde\x5c\xdf", /* 8d80 */ "\x00\x00\x5c\xe0\x5c\xe2\x5c\xe3\x5c\xe7\x5c\xe9\x5c\xeb\x5c\xec\x5c\xee\x5c\xef\x5c\xf1\x5c\xf2\x5c\xf3\x5c\xf4\x5c\xf5\x5c\xf6\x5c\xf7\x5c\xf8\x5c\xf9\x5c\xfa\x5c\xfc\x5c\xfd\x5c\xfe\x5c\xff\x5d\x00\x5d\x01\x5d\x04\x5d\x05\x5d\x08\x5d\x09\x5d\x0a\x5d\x0b\x5d\x0c\x5d\x0d\x5d\x0f\x5d\x10\x5d\x11\x5d\x12\x5d\x13\x5d\x15\x5d\x17\x5d\x18\x5d\x19\x5d\x1a\x5d\x1c\x5d\x1d\x5d\x1f\x5d\x20\x5d\x21\x5d\x22\x5d\x23\x5d\x25\x5d\x28\x5d\x2a\x5d\x2b\x5d\x2c\x5d\x2f\x5d\x30\x5d\x31\x5d\x32\x5d\x33\x5d\x35\x5d\x36\x5d\x37\x5d\x38\x5d\x39\x5d\x3a\x5d\x3b\x5d\x3c\x5d\x3f\x5d\x40\x5d\x41\x5d\x42\x5d\x43\x5d\x44\x5d\x45\x5d\x46\x5d\x48\x5d\x49\x5d\x4d\x5d\x4e\x5d\x4f\x5d\x50\x5d\x51\x5d\x52\x5d\x53\x5d\x54\x5d\x55\x5d\x56\x5d\x57\x5d\x59\x5d\x5a\x5d\x5c\x5d\x5e\x5d\x5f\x5d\x60\x5d\x61\x5d\x62\x5d\x63\x5d\x64\x5d\x65\x5d\x66\x5d\x67\x5d\x68\x5d\x6a\x5d\x6d\x5d\x6e\x5d\x70\x5d\x71\x5d\x72\x5d\x73\x5d\x75\x5d\x76\x5d\x77\x5d\x78\x5d\x79\x5d\x7a\x5d\x7b\x5d\x7c\x5d\x7d\x5d\x7e\x5d\x7f\x5d\x80\x5d\x81\x5d\x83\x5d\x84\x00\x00\x00\x00", /* 8e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x85\x5d\x86\x5d\x87\x5d\x88\x5d\x89\x5d\x8a\x5d\x8b\x5d\x8c\x5d\x8d\x5d\x8e\x5d\x8f\x5d\x90\x5d\x91\x5d\x92\x5d\x93\x5d\x94\x5d\x95\x5d\x96\x5d\x97\x5d\x98\x5d\x9a\x5d\x9b\x5d\x9c\x5d\x9e\x5d\x9f\x5d\xa0\x5d\xa1\x5d\xa2\x5d\xa3\x5d\xa4\x5d\xa5\x5d\xa6\x5d\xa7\x5d\xa8\x5d\xa9\x5d\xaa\x5d\xab\x5d\xac\x5d\xad\x5d\xae\x5d\xaf\x5d\xb0\x5d\xb1\x5d\xb2\x5d\xb3\x5d\xb4\x5d\xb5\x5d\xb6\x5d\xb8\x5d\xb9\x5d\xba\x5d\xbb\x5d\xbc\x5d\xbd\x5d\xbe\x5d\xbf\x5d\xc0\x5d\xc1\x5d\xc2\x5d\xc3\x5d\xc4\x5d\xc6\x5d\xc7", /* 8e80 */ "\x00\x00\x5d\xc8\x5d\xc9\x5d\xca\x5d\xcb\x5d\xcc\x5d\xce\x5d\xcf\x5d\xd0\x5d\xd1\x5d\xd2\x5d\xd3\x5d\xd4\x5d\xd5\x5d\xd6\x5d\xd7\x5d\xd8\x5d\xd9\x5d\xda\x5d\xdc\x5d\xdf\x5d\xe0\x5d\xe3\x5d\xe4\x5d\xea\x5d\xec\x5d\xed\x5d\xf0\x5d\xf5\x5d\xf6\x5d\xf8\x5d\xf9\x5d\xfa\x5d\xfb\x5d\xfc\x5d\xff\x5e\x00\x5e\x04\x5e\x07\x5e\x09\x5e\x0a\x5e\x0b\x5e\x0d\x5e\x0e\x5e\x12\x5e\x13\x5e\x17\x5e\x1e\x5e\x1f\x5e\x20\x5e\x21\x5e\x22\x5e\x23\x5e\x24\x5e\x25\x5e\x28\x5e\x29\x5e\x2a\x5e\x2b\x5e\x2c\x5e\x2f\x5e\x30\x5e\x32\x5e\x33\x5e\x34\x5e\x35\x5e\x36\x5e\x39\x5e\x3a\x5e\x3e\x5e\x3f\x5e\x40\x5e\x41\x5e\x43\x5e\x46\x5e\x47\x5e\x48\x5e\x49\x5e\x4a\x5e\x4b\x5e\x4d\x5e\x4e\x5e\x4f\x5e\x50\x5e\x51\x5e\x52\x5e\x53\x5e\x56\x5e\x57\x5e\x58\x5e\x59\x5e\x5a\x5e\x5c\x5e\x5d\x5e\x5f\x5e\x60\x5e\x63\x5e\x64\x5e\x65\x5e\x66\x5e\x67\x5e\x68\x5e\x69\x5e\x6a\x5e\x6b\x5e\x6c\x5e\x6d\x5e\x6e\x5e\x6f\x5e\x70\x5e\x71\x5e\x75\x5e\x77\x5e\x79\x5e\x7e\x5e\x81\x5e\x82\x5e\x83\x5e\x85\x5e\x88\x5e\x89\x5e\x8c\x5e\x8d\x5e\x8e\x5e\x92\x5e\x98\x00\x00\x00\x00", /* 8f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x9b\x5e\x9d\x5e\xa1\x5e\xa2\x5e\xa3\x5e\xa4\x5e\xa8\x5e\xa9\x5e\xaa\x5e\xab\x5e\xac\x5e\xae\x5e\xaf\x5e\xb0\x5e\xb1\x5e\xb2\x5e\xb4\x5e\xba\x5e\xbb\x5e\xbc\x5e\xbd\x5e\xbf\x5e\xc0\x5e\xc1\x5e\xc2\x5e\xc3\x5e\xc4\x5e\xc5\x5e\xc6\x5e\xc7\x5e\xc8\x5e\xcb\x5e\xcc\x5e\xcd\x5e\xce\x5e\xcf\x5e\xd0\x5e\xd4\x5e\xd5\x5e\xd7\x5e\xd8\x5e\xd9\x5e\xda\x5e\xdc\x5e\xdd\x5e\xde\x5e\xdf\x5e\xe0\x5e\xe1\x5e\xe2\x5e\xe3\x5e\xe4\x5e\xe5\x5e\xe6\x5e\xe7\x5e\xe9\x5e\xeb\x5e\xec\x5e\xed\x5e\xee\x5e\xef\x5e\xf0\x5e\xf1", /* 8f80 */ "\x00\x00\x5e\xf2\x5e\xf3\x5e\xf5\x5e\xf8\x5e\xf9\x5e\xfb\x5e\xfc\x5e\xfd\x5f\x05\x5f\x06\x5f\x07\x5f\x09\x5f\x0c\x5f\x0d\x5f\x0e\x5f\x10\x5f\x12\x5f\x14\x5f\x16\x5f\x19\x5f\x1a\x5f\x1c\x5f\x1d\x5f\x1e\x5f\x21\x5f\x22\x5f\x23\x5f\x24\x5f\x28\x5f\x2b\x5f\x2c\x5f\x2e\x5f\x30\x5f\x32\x5f\x33\x5f\x34\x5f\x35\x5f\x36\x5f\x37\x5f\x38\x5f\x3b\x5f\x3d\x5f\x3e\x5f\x3f\x5f\x41\x5f\x42\x5f\x43\x5f\x44\x5f\x45\x5f\x46\x5f\x47\x5f\x48\x5f\x49\x5f\x4a\x5f\x4b\x5f\x4c\x5f\x4d\x5f\x4e\x5f\x4f\x5f\x51\x5f\x54\x5f\x59\x5f\x5a\x5f\x5b\x5f\x5c\x5f\x5e\x5f\x5f\x5f\x60\x5f\x63\x5f\x65\x5f\x67\x5f\x68\x5f\x6b\x5f\x6e\x5f\x6f\x5f\x72\x5f\x74\x5f\x75\x5f\x76\x5f\x78\x5f\x7a\x5f\x7d\x5f\x7e\x5f\x7f\x5f\x83\x5f\x86\x5f\x8d\x5f\x8e\x5f\x8f\x5f\x91\x5f\x93\x5f\x94\x5f\x96\x5f\x9a\x5f\x9b\x5f\x9d\x5f\x9e\x5f\x9f\x5f\xa0\x5f\xa2\x5f\xa3\x5f\xa4\x5f\xa5\x5f\xa6\x5f\xa7\x5f\xa9\x5f\xab\x5f\xac\x5f\xaf\x5f\xb0\x5f\xb1\x5f\xb2\x5f\xb3\x5f\xb4\x5f\xb6\x5f\xb8\x5f\xb9\x5f\xba\x5f\xbb\x5f\xbe\x5f\xbf\x5f\xc0\x5f\xc1\x5f\xc2\x5f\xc7\x00\x00\x00\x00", /* 9000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\xc8\x5f\xca\x5f\xcb\x5f\xce\x5f\xd3\x5f\xd4\x5f\xd5\x5f\xda\x5f\xdb\x5f\xdc\x5f\xde\x5f\xdf\x5f\xe2\x5f\xe3\x5f\xe5\x5f\xe6\x5f\xe8\x5f\xe9\x5f\xec\x5f\xef\x5f\xf0\x5f\xf2\x5f\xf3\x5f\xf4\x5f\xf6\x5f\xf7\x5f\xf9\x5f\xfa\x5f\xfc\x60\x07\x60\x08\x60\x09\x60\x0b\x60\x0c\x60\x10\x60\x11\x60\x13\x60\x17\x60\x18\x60\x1a\x60\x1e\x60\x1f\x60\x22\x60\x23\x60\x24\x60\x2c\x60\x2d\x60\x2e\x60\x30\x60\x31\x60\x32\x60\x33\x60\x34\x60\x36\x60\x37\x60\x38\x60\x39\x60\x3a\x60\x3d\x60\x3e\x60\x40\x60\x44\x60\x45", /* 9080 */ "\x00\x00\x60\x46\x60\x47\x60\x48\x60\x49\x60\x4a\x60\x4c\x60\x4e\x60\x4f\x60\x51\x60\x53\x60\x54\x60\x56\x60\x57\x60\x58\x60\x5b\x60\x5c\x60\x5e\x60\x5f\x60\x60\x60\x61\x60\x65\x60\x66\x60\x6e\x60\x71\x60\x72\x60\x74\x60\x75\x60\x77\x60\x7e\x60\x80\x60\x81\x60\x82\x60\x85\x60\x86\x60\x87\x60\x88\x60\x8a\x60\x8b\x60\x8e\x60\x8f\x60\x90\x60\x91\x60\x93\x60\x95\x60\x97\x60\x98\x60\x99\x60\x9c\x60\x9e\x60\xa1\x60\xa2\x60\xa4\x60\xa5\x60\xa7\x60\xa9\x60\xaa\x60\xae\x60\xb0\x60\xb3\x60\xb5\x60\xb6\x60\xb7\x60\xb9\x60\xba\x60\xbd\x60\xbe\x60\xbf\x60\xc0\x60\xc1\x60\xc2\x60\xc3\x60\xc4\x60\xc7\x60\xc8\x60\xc9\x60\xcc\x60\xcd\x60\xce\x60\xcf\x60\xd0\x60\xd2\x60\xd3\x60\xd4\x60\xd6\x60\xd7\x60\xd9\x60\xdb\x60\xde\x60\xe1\x60\xe2\x60\xe3\x60\xe4\x60\xe5\x60\xea\x60\xf1\x60\xf2\x60\xf5\x60\xf7\x60\xf8\x60\xfb\x60\xfc\x60\xfd\x60\xfe\x60\xff\x61\x02\x61\x03\x61\x04\x61\x05\x61\x07\x61\x0a\x61\x0b\x61\x0c\x61\x10\x61\x11\x61\x12\x61\x13\x61\x14\x61\x16\x61\x17\x61\x18\x61\x19\x61\x1b\x61\x1c\x61\x1d\x61\x1e\x00\x00\x00\x00", /* 9100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x21\x61\x22\x61\x25\x61\x28\x61\x29\x61\x2a\x61\x2c\x61\x2d\x61\x2e\x61\x2f\x61\x30\x61\x31\x61\x32\x61\x33\x61\x34\x61\x35\x61\x36\x61\x37\x61\x38\x61\x39\x61\x3a\x61\x3b\x61\x3c\x61\x3d\x61\x3e\x61\x40\x61\x41\x61\x42\x61\x43\x61\x44\x61\x45\x61\x46\x61\x47\x61\x49\x61\x4b\x61\x4d\x61\x4f\x61\x50\x61\x52\x61\x53\x61\x54\x61\x56\x61\x57\x61\x58\x61\x59\x61\x5a\x61\x5b\x61\x5c\x61\x5e\x61\x5f\x61\x60\x61\x61\x61\x63\x61\x64\x61\x65\x61\x66\x61\x69\x61\x6a\x61\x6b\x61\x6c\x61\x6d\x61\x6e\x61\x6f", /* 9180 */ "\x00\x00\x61\x71\x61\x72\x61\x73\x61\x74\x61\x76\x61\x78\x61\x79\x61\x7a\x61\x7b\x61\x7c\x61\x7d\x61\x7e\x61\x7f\x61\x80\x61\x81\x61\x82\x61\x83\x61\x84\x61\x85\x61\x86\x61\x87\x61\x88\x61\x89\x61\x8a\x61\x8c\x61\x8d\x61\x8f\x61\x90\x61\x91\x61\x92\x61\x93\x61\x95\x61\x96\x61\x97\x61\x98\x61\x99\x61\x9a\x61\x9b\x61\x9c\x61\x9e\x61\x9f\x61\xa0\x61\xa1\x61\xa2\x61\xa3\x61\xa4\x61\xa5\x61\xa6\x61\xaa\x61\xab\x61\xad\x61\xae\x61\xaf\x61\xb0\x61\xb1\x61\xb2\x61\xb3\x61\xb4\x61\xb5\x61\xb6\x61\xb8\x61\xb9\x61\xba\x61\xbb\x61\xbc\x61\xbd\x61\xbf\x61\xc0\x61\xc1\x61\xc3\x61\xc4\x61\xc5\x61\xc6\x61\xc7\x61\xc9\x61\xcc\x61\xcd\x61\xce\x61\xcf\x61\xd0\x61\xd3\x61\xd5\x61\xd6\x61\xd7\x61\xd8\x61\xd9\x61\xda\x61\xdb\x61\xdc\x61\xdd\x61\xde\x61\xdf\x61\xe0\x61\xe1\x61\xe2\x61\xe3\x61\xe4\x61\xe5\x61\xe7\x61\xe8\x61\xe9\x61\xea\x61\xeb\x61\xec\x61\xed\x61\xee\x61\xef\x61\xf0\x61\xf1\x61\xf2\x61\xf3\x61\xf4\x61\xf6\x61\xf7\x61\xf8\x61\xf9\x61\xfa\x61\xfb\x61\xfc\x61\xfd\x61\xfe\x62\x00\x62\x01\x62\x02\x62\x03\x00\x00\x00\x00", /* 9200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x04\x62\x05\x62\x07\x62\x09\x62\x13\x62\x14\x62\x19\x62\x1c\x62\x1d\x62\x1e\x62\x20\x62\x23\x62\x26\x62\x27\x62\x28\x62\x29\x62\x2b\x62\x2d\x62\x2f\x62\x30\x62\x31\x62\x32\x62\x35\x62\x36\x62\x38\x62\x39\x62\x3a\x62\x3b\x62\x3c\x62\x42\x62\x44\x62\x45\x62\x46\x62\x4a\x62\x4f\x62\x50\x62\x55\x62\x56\x62\x57\x62\x59\x62\x5a\x62\x5c\x62\x5d\x62\x5e\x62\x5f\x62\x60\x62\x61\x62\x62\x62\x64\x62\x65\x62\x68\x62\x71\x62\x72\x62\x74\x62\x75\x62\x77\x62\x78\x62\x7a\x62\x7b\x62\x7d\x62\x81\x62\x82\x62\x83", /* 9280 */ "\x00\x00\x62\x85\x62\x86\x62\x87\x62\x88\x62\x8b\x62\x8c\x62\x8d\x62\x8e\x62\x8f\x62\x90\x62\x94\x62\x99\x62\x9c\x62\x9d\x62\x9e\x62\xa3\x62\xa6\x62\xa7\x62\xa9\x62\xaa\x62\xad\x62\xae\x62\xaf\x62\xb0\x62\xb2\x62\xb3\x62\xb4\x62\xb6\x62\xb7\x62\xb8\x62\xba\x62\xbe\x62\xc0\x62\xc1\x62\xc3\x62\xcb\x62\xcf\x62\xd1\x62\xd5\x62\xdd\x62\xde\x62\xe0\x62\xe1\x62\xe4\x62\xea\x62\xeb\x62\xf0\x62\xf2\x62\xf5\x62\xf8\x62\xf9\x62\xfa\x62\xfb\x63\x00\x63\x03\x63\x04\x63\x05\x63\x06\x63\x0a\x63\x0b\x63\x0c\x63\x0d\x63\x0f\x63\x10\x63\x12\x63\x13\x63\x14\x63\x15\x63\x17\x63\x18\x63\x19\x63\x1c\x63\x26\x63\x27\x63\x29\x63\x2c\x63\x2d\x63\x2e\x63\x30\x63\x31\x63\x33\x63\x34\x63\x35\x63\x36\x63\x37\x63\x38\x63\x3b\x63\x3c\x63\x3e\x63\x3f\x63\x40\x63\x41\x63\x44\x63\x47\x63\x48\x63\x4a\x63\x51\x63\x52\x63\x53\x63\x54\x63\x56\x63\x57\x63\x58\x63\x59\x63\x5a\x63\x5b\x63\x5c\x63\x5d\x63\x60\x63\x64\x63\x65\x63\x66\x63\x68\x63\x6a\x63\x6b\x63\x6c\x63\x6f\x63\x70\x63\x72\x63\x73\x63\x74\x63\x75\x63\x78\x63\x79\x63\x7c\x00\x00\x00\x00", /* 9300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x7d\x63\x7e\x63\x7f\x63\x81\x63\x83\x63\x84\x63\x85\x63\x86\x63\x8b\x63\x8d\x63\x91\x63\x93\x63\x94\x63\x95\x63\x97\x63\x99\x63\x9a\x63\x9b\x63\x9c\x63\x9d\x63\x9e\x63\x9f\x63\xa1\x63\xa4\x63\xa6\x63\xab\x63\xaf\x63\xb1\x63\xb2\x63\xb5\x63\xb6\x63\xb9\x63\xbb\x63\xbd\x63\xbf\x63\xc0\x63\xc1\x63\xc2\x63\xc3\x63\xc5\x63\xc7\x63\xc8\x63\xca\x63\xcb\x63\xcc\x63\xd1\x63\xd3\x63\xd4\x63\xd5\x63\xd7\x63\xd8\x63\xd9\x63\xda\x63\xdb\x63\xdc\x63\xdd\x63\xdf\x63\xe2\x63\xe4\x63\xe5\x63\xe6\x63\xe7\x63\xe8", /* 9380 */ "\x00\x00\x63\xeb\x63\xec\x63\xee\x63\xef\x63\xf0\x63\xf1\x63\xf3\x63\xf5\x63\xf7\x63\xf9\x63\xfa\x63\xfb\x63\xfc\x63\xfe\x64\x03\x64\x04\x64\x06\x64\x07\x64\x08\x64\x09\x64\x0a\x64\x0d\x64\x0e\x64\x11\x64\x12\x64\x15\x64\x16\x64\x17\x64\x18\x64\x19\x64\x1a\x64\x1d\x64\x1f\x64\x22\x64\x23\x64\x24\x64\x25\x64\x27\x64\x28\x64\x29\x64\x2b\x64\x2e\x64\x2f\x64\x30\x64\x31\x64\x32\x64\x33\x64\x35\x64\x36\x64\x37\x64\x38\x64\x39\x64\x3b\x64\x3c\x64\x3e\x64\x40\x64\x42\x64\x43\x64\x49\x64\x4b\x64\x4c\x64\x4d\x64\x4e\x64\x4f\x64\x50\x64\x51\x64\x53\x64\x55\x64\x56\x64\x57\x64\x59\x64\x5a\x64\x5b\x64\x5c\x64\x5d\x64\x5f\x64\x60\x64\x61\x64\x62\x64\x63\x64\x64\x64\x65\x64\x66\x64\x68\x64\x6a\x64\x6b\x64\x6c\x64\x6e\x64\x6f\x64\x70\x64\x71\x64\x72\x64\x73\x64\x74\x64\x75\x64\x76\x64\x77\x64\x7b\x64\x7c\x64\x7d\x64\x7e\x64\x7f\x64\x80\x64\x81\x64\x83\x64\x86\x64\x88\x64\x89\x64\x8a\x64\x8b\x64\x8c\x64\x8d\x64\x8e\x64\x8f\x64\x90\x64\x93\x64\x94\x64\x97\x64\x98\x64\x9a\x64\x9b\x64\x9c\x64\x9d\x64\x9f\x64\xa0\x00\x00\x00\x00", /* 9400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\xa1\x64\xa2\x64\xa3\x64\xa5\x64\xa6\x64\xa7\x64\xa8\x64\xaa\x64\xab\x64\xaf\x64\xb1\x64\xb2\x64\xb3\x64\xb4\x64\xb6\x64\xb9\x64\xbb\x64\xbd\x64\xbe\x64\xbf\x64\xc1\x64\xc3\x64\xc4\x64\xc6\x64\xc7\x64\xc8\x64\xc9\x64\xca\x64\xcb\x64\xcc\x64\xcf\x64\xd1\x64\xd3\x64\xd4\x64\xd5\x64\xd6\x64\xd9\x64\xda\x64\xdb\x64\xdc\x64\xdd\x64\xdf\x64\xe0\x64\xe1\x64\xe3\x64\xe5\x64\xe7\x64\xe8\x64\xe9\x64\xea\x64\xeb\x64\xec\x64\xed\x64\xee\x64\xef\x64\xf0\x64\xf1\x64\xf2\x64\xf3\x64\xf4\x64\xf5\x64\xf6\x64\xf7", /* 9480 */ "\x00\x00\x64\xf8\x64\xf9\x64\xfa\x64\xfb\x64\xfc\x64\xfd\x64\xfe\x64\xff\x65\x01\x65\x02\x65\x03\x65\x04\x65\x05\x65\x06\x65\x07\x65\x08\x65\x0a\x65\x0b\x65\x0c\x65\x0d\x65\x0e\x65\x0f\x65\x10\x65\x11\x65\x13\x65\x14\x65\x15\x65\x16\x65\x17\x65\x19\x65\x1a\x65\x1b\x65\x1c\x65\x1d\x65\x1e\x65\x1f\x65\x20\x65\x21\x65\x22\x65\x23\x65\x24\x65\x26\x65\x27\x65\x28\x65\x29\x65\x2a\x65\x2c\x65\x2d\x65\x30\x65\x31\x65\x32\x65\x33\x65\x37\x65\x3a\x65\x3c\x65\x3d\x65\x40\x65\x41\x65\x42\x65\x43\x65\x44\x65\x46\x65\x47\x65\x4a\x65\x4b\x65\x4d\x65\x4e\x65\x50\x65\x52\x65\x53\x65\x54\x65\x57\x65\x58\x65\x5a\x65\x5c\x65\x5f\x65\x60\x65\x61\x65\x64\x65\x65\x65\x67\x65\x68\x65\x69\x65\x6a\x65\x6d\x65\x6e\x65\x6f\x65\x71\x65\x73\x65\x75\x65\x76\x65\x78\x65\x79\x65\x7a\x65\x7b\x65\x7c\x65\x7d\x65\x7e\x65\x7f\x65\x80\x65\x81\x65\x82\x65\x83\x65\x84\x65\x85\x65\x86\x65\x88\x65\x89\x65\x8a\x65\x8d\x65\x8e\x65\x8f\x65\x92\x65\x94\x65\x95\x65\x96\x65\x98\x65\x9a\x65\x9d\x65\x9e\x65\xa0\x65\xa2\x65\xa3\x65\xa6\x65\xa8\x00\x00\x00\x00", /* 9500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\xaa\x65\xac\x65\xae\x65\xb1\x65\xb2\x65\xb3\x65\xb4\x65\xb5\x65\xb6\x65\xb7\x65\xb8\x65\xba\x65\xbb\x65\xbe\x65\xbf\x65\xc0\x65\xc2\x65\xc7\x65\xc8\x65\xc9\x65\xca\x65\xcd\x65\xd0\x65\xd1\x65\xd3\x65\xd4\x65\xd5\x65\xd8\x65\xd9\x65\xda\x65\xdb\x65\xdc\x65\xdd\x65\xde\x65\xdf\x65\xe1\x65\xe3\x65\xe4\x65\xea\x65\xeb\x65\xf2\x65\xf3\x65\xf4\x65\xf5\x65\xf8\x65\xf9\x65\xfb\x65\xfc\x65\xfd\x65\xfe\x65\xff\x66\x01\x66\x04\x66\x05\x66\x07\x66\x08\x66\x09\x66\x0b\x66\x0d\x66\x10\x66\x11\x66\x12\x66\x16", /* 9580 */ "\x00\x00\x66\x17\x66\x18\x66\x1a\x66\x1b\x66\x1c\x66\x1e\x66\x21\x66\x22\x66\x23\x66\x24\x66\x26\x66\x29\x66\x2a\x66\x2b\x66\x2c\x66\x2e\x66\x30\x66\x32\x66\x33\x66\x37\x66\x38\x66\x39\x66\x3a\x66\x3b\x66\x3d\x66\x3f\x66\x40\x66\x42\x66\x44\x66\x45\x66\x46\x66\x47\x66\x48\x66\x49\x66\x4a\x66\x4d\x66\x4e\x66\x50\x66\x51\x66\x58\x66\x59\x66\x5b\x66\x5c\x66\x5d\x66\x5e\x66\x60\x66\x62\x66\x63\x66\x65\x66\x67\x66\x69\x66\x6a\x66\x6b\x66\x6c\x66\x6d\x66\x71\x66\x72\x66\x73\x66\x75\x66\x78\x66\x79\x66\x7b\x66\x7c\x66\x7d\x66\x7f\x66\x80\x66\x81\x66\x83\x66\x85\x66\x86\x66\x88\x66\x89\x66\x8a\x66\x8b\x66\x8d\x66\x8e\x66\x8f\x66\x90\x66\x92\x66\x93\x66\x94\x66\x95\x66\x98\x66\x99\x66\x9a\x66\x9b\x66\x9c\x66\x9e\x66\x9f\x66\xa0\x66\xa1\x66\xa2\x66\xa3\x66\xa4\x66\xa5\x66\xa6\x66\xa9\x66\xaa\x66\xab\x66\xac\x66\xad\x66\xaf\x66\xb0\x66\xb1\x66\xb2\x66\xb3\x66\xb5\x66\xb6\x66\xb7\x66\xb8\x66\xba\x66\xbb\x66\xbc\x66\xbd\x66\xbf\x66\xc0\x66\xc1\x66\xc2\x66\xc3\x66\xc4\x66\xc5\x66\xc6\x66\xc7\x66\xc8\x66\xc9\x00\x00\x00\x00", /* 9600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\xca\x66\xcb\x66\xcc\x66\xcd\x66\xce\x66\xcf\x66\xd0\x66\xd1\x66\xd2\x66\xd3\x66\xd4\x66\xd5\x66\xd6\x66\xd7\x66\xd8\x66\xda\x66\xde\x66\xdf\x66\xe0\x66\xe1\x66\xe2\x66\xe3\x66\xe4\x66\xe5\x66\xe7\x66\xe8\x66\xea\x66\xeb\x66\xec\x66\xed\x66\xee\x66\xef\x66\xf1\x66\xf5\x66\xf6\x66\xf8\x66\xfa\x66\xfb\x66\xfd\x67\x01\x67\x02\x67\x03\x67\x04\x67\x05\x67\x06\x67\x07\x67\x0c\x67\x0e\x67\x0f\x67\x11\x67\x12\x67\x13\x67\x16\x67\x18\x67\x19\x67\x1a\x67\x1c\x67\x1e\x67\x20\x67\x21\x67\x22\x67\x23\x67\x24", /* 9680 */ "\x00\x00\x67\x25\x67\x27\x67\x29\x67\x2e\x67\x30\x67\x32\x67\x33\x67\x36\x67\x37\x67\x38\x67\x39\x67\x3b\x67\x3c\x67\x3e\x67\x3f\x67\x41\x67\x44\x67\x45\x67\x47\x67\x4a\x67\x4b\x67\x4d\x67\x52\x67\x54\x67\x55\x67\x57\x67\x58\x67\x59\x67\x5a\x67\x5b\x67\x5d\x67\x62\x67\x63\x67\x64\x67\x66\x67\x67\x67\x6b\x67\x6c\x67\x6e\x67\x71\x67\x74\x67\x76\x67\x78\x67\x79\x67\x7a\x67\x7b\x67\x7d\x67\x80\x67\x82\x67\x83\x67\x85\x67\x86\x67\x88\x67\x8a\x67\x8c\x67\x8d\x67\x8e\x67\x8f\x67\x91\x67\x92\x67\x93\x67\x94\x67\x96\x67\x99\x67\x9b\x67\x9f\x67\xa0\x67\xa1\x67\xa4\x67\xa6\x67\xa9\x67\xac\x67\xae\x67\xb1\x67\xb2\x67\xb4\x67\xb9\x67\xba\x67\xbb\x67\xbc\x67\xbd\x67\xbe\x67\xbf\x67\xc0\x67\xc2\x67\xc5\x67\xc6\x67\xc7\x67\xc8\x67\xc9\x67\xca\x67\xcb\x67\xcc\x67\xcd\x67\xce\x67\xd5\x67\xd6\x67\xd7\x67\xdb\x67\xdf\x67\xe1\x67\xe3\x67\xe4\x67\xe6\x67\xe7\x67\xe8\x67\xea\x67\xeb\x67\xed\x67\xee\x67\xf2\x67\xf5\x67\xf6\x67\xf7\x67\xf8\x67\xf9\x67\xfa\x67\xfb\x67\xfc\x67\xfe\x68\x01\x68\x02\x68\x03\x68\x04\x68\x06\x00\x00\x00\x00", /* 9700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x68\x0d\x68\x10\x68\x12\x68\x14\x68\x15\x68\x18\x68\x19\x68\x1a\x68\x1b\x68\x1c\x68\x1e\x68\x1f\x68\x20\x68\x22\x68\x23\x68\x24\x68\x25\x68\x26\x68\x27\x68\x28\x68\x2b\x68\x2c\x68\x2d\x68\x2e\x68\x2f\x68\x30\x68\x31\x68\x34\x68\x35\x68\x36\x68\x3a\x68\x3b\x68\x3f\x68\x47\x68\x4b\x68\x4d\x68\x4f\x68\x52\x68\x56\x68\x57\x68\x58\x68\x59\x68\x5a\x68\x5b\x68\x5c\x68\x5d\x68\x5e\x68\x5f\x68\x6a\x68\x6c\x68\x6d\x68\x6e\x68\x6f\x68\x70\x68\x71\x68\x72\x68\x73\x68\x75\x68\x78\x68\x79\x68\x7a\x68\x7b\x68\x7c", /* 9780 */ "\x00\x00\x68\x7d\x68\x7e\x68\x7f\x68\x80\x68\x82\x68\x84\x68\x87\x68\x88\x68\x89\x68\x8a\x68\x8b\x68\x8c\x68\x8d\x68\x8e\x68\x90\x68\x91\x68\x92\x68\x94\x68\x95\x68\x96\x68\x98\x68\x99\x68\x9a\x68\x9b\x68\x9c\x68\x9d\x68\x9e\x68\x9f\x68\xa0\x68\xa1\x68\xa3\x68\xa4\x68\xa5\x68\xa9\x68\xaa\x68\xab\x68\xac\x68\xae\x68\xb1\x68\xb2\x68\xb4\x68\xb6\x68\xb7\x68\xb8\x68\xb9\x68\xba\x68\xbb\x68\xbc\x68\xbd\x68\xbe\x68\xbf\x68\xc1\x68\xc3\x68\xc4\x68\xc5\x68\xc6\x68\xc7\x68\xc8\x68\xca\x68\xcc\x68\xce\x68\xcf\x68\xd0\x68\xd1\x68\xd3\x68\xd4\x68\xd6\x68\xd7\x68\xd9\x68\xdb\x68\xdc\x68\xdd\x68\xde\x68\xdf\x68\xe1\x68\xe2\x68\xe4\x68\xe5\x68\xe6\x68\xe7\x68\xe8\x68\xe9\x68\xea\x68\xeb\x68\xec\x68\xed\x68\xef\x68\xf2\x68\xf3\x68\xf4\x68\xf6\x68\xf7\x68\xf8\x68\xfb\x68\xfd\x68\xfe\x68\xff\x69\x00\x69\x02\x69\x03\x69\x04\x69\x06\x69\x07\x69\x08\x69\x09\x69\x0a\x69\x0c\x69\x0f\x69\x11\x69\x13\x69\x14\x69\x15\x69\x16\x69\x17\x69\x18\x69\x19\x69\x1a\x69\x1b\x69\x1c\x69\x1d\x69\x1e\x69\x21\x69\x22\x69\x23\x69\x25\x00\x00\x00\x00", /* 9800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x26\x69\x27\x69\x28\x69\x29\x69\x2a\x69\x2b\x69\x2c\x69\x2e\x69\x2f\x69\x31\x69\x32\x69\x33\x69\x35\x69\x36\x69\x37\x69\x38\x69\x3a\x69\x3b\x69\x3c\x69\x3e\x69\x40\x69\x41\x69\x43\x69\x44\x69\x45\x69\x46\x69\x47\x69\x48\x69\x49\x69\x4a\x69\x4b\x69\x4c\x69\x4d\x69\x4e\x69\x4f\x69\x50\x69\x51\x69\x52\x69\x53\x69\x55\x69\x56\x69\x58\x69\x59\x69\x5b\x69\x5c\x69\x5f\x69\x61\x69\x62\x69\x64\x69\x65\x69\x67\x69\x68\x69\x69\x69\x6a\x69\x6c\x69\x6d\x69\x6f\x69\x70\x69\x72\x69\x73\x69\x74\x69\x75\x69\x76", /* 9880 */ "\x00\x00\x69\x7a\x69\x7b\x69\x7d\x69\x7e\x69\x7f\x69\x81\x69\x83\x69\x85\x69\x8a\x69\x8b\x69\x8c\x69\x8e\x69\x8f\x69\x90\x69\x91\x69\x92\x69\x93\x69\x96\x69\x97\x69\x99\x69\x9a\x69\x9d\x69\x9e\x69\x9f\x69\xa0\x69\xa1\x69\xa2\x69\xa3\x69\xa4\x69\xa5\x69\xa6\x69\xa9\x69\xaa\x69\xac\x69\xae\x69\xaf\x69\xb0\x69\xb2\x69\xb3\x69\xb5\x69\xb6\x69\xb8\x69\xb9\x69\xba\x69\xbc\x69\xbd\x69\xbe\x69\xbf\x69\xc0\x69\xc2\x69\xc3\x69\xc4\x69\xc5\x69\xc6\x69\xc7\x69\xc8\x69\xc9\x69\xcb\x69\xcd\x69\xcf\x69\xd1\x69\xd2\x69\xd3\x69\xd5\x69\xd6\x69\xd7\x69\xd8\x69\xd9\x69\xda\x69\xdc\x69\xdd\x69\xde\x69\xe1\x69\xe2\x69\xe3\x69\xe4\x69\xe5\x69\xe6\x69\xe7\x69\xe8\x69\xe9\x69\xea\x69\xeb\x69\xec\x69\xee\x69\xef\x69\xf0\x69\xf1\x69\xf3\x69\xf4\x69\xf5\x69\xf6\x69\xf7\x69\xf8\x69\xf9\x69\xfa\x69\xfb\x69\xfc\x69\xfe\x6a\x00\x6a\x01\x6a\x02\x6a\x03\x6a\x04\x6a\x05\x6a\x06\x6a\x07\x6a\x08\x6a\x09\x6a\x0b\x6a\x0c\x6a\x0d\x6a\x0e\x6a\x0f\x6a\x10\x6a\x11\x6a\x12\x6a\x13\x6a\x14\x6a\x15\x6a\x16\x6a\x19\x6a\x1a\x6a\x1b\x6a\x1c\x00\x00\x00\x00", /* 9900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x1d\x6a\x1e\x6a\x20\x6a\x22\x6a\x23\x6a\x24\x6a\x25\x6a\x26\x6a\x27\x6a\x29\x6a\x2b\x6a\x2c\x6a\x2d\x6a\x2e\x6a\x30\x6a\x32\x6a\x33\x6a\x34\x6a\x36\x6a\x37\x6a\x38\x6a\x39\x6a\x3a\x6a\x3b\x6a\x3c\x6a\x3f\x6a\x40\x6a\x41\x6a\x42\x6a\x43\x6a\x45\x6a\x46\x6a\x48\x6a\x49\x6a\x4a\x6a\x4b\x6a\x4c\x6a\x4d\x6a\x4e\x6a\x4f\x6a\x51\x6a\x52\x6a\x53\x6a\x54\x6a\x55\x6a\x56\x6a\x57\x6a\x5a\x6a\x5c\x6a\x5d\x6a\x5e\x6a\x5f\x6a\x60\x6a\x62\x6a\x63\x6a\x64\x6a\x66\x6a\x67\x6a\x68\x6a\x69\x6a\x6a\x6a\x6b\x6a\x6c", /* 9980 */ "\x00\x00\x6a\x6d\x6a\x6e\x6a\x6f\x6a\x70\x6a\x72\x6a\x73\x6a\x74\x6a\x75\x6a\x76\x6a\x77\x6a\x78\x6a\x7a\x6a\x7b\x6a\x7d\x6a\x7e\x6a\x7f\x6a\x81\x6a\x82\x6a\x83\x6a\x85\x6a\x86\x6a\x87\x6a\x88\x6a\x89\x6a\x8a\x6a\x8b\x6a\x8c\x6a\x8d\x6a\x8f\x6a\x92\x6a\x93\x6a\x94\x6a\x95\x6a\x96\x6a\x98\x6a\x99\x6a\x9a\x6a\x9b\x6a\x9c\x6a\x9d\x6a\x9e\x6a\x9f\x6a\xa1\x6a\xa2\x6a\xa3\x6a\xa4\x6a\xa5\x6a\xa6\x6a\xa7\x6a\xa8\x6a\xaa\x6a\xad\x6a\xae\x6a\xaf\x6a\xb0\x6a\xb1\x6a\xb2\x6a\xb3\x6a\xb4\x6a\xb5\x6a\xb6\x6a\xb7\x6a\xb8\x6a\xb9\x6a\xba\x6a\xbb\x6a\xbc\x6a\xbd\x6a\xbe\x6a\xbf\x6a\xc0\x6a\xc1\x6a\xc2\x6a\xc3\x6a\xc4\x6a\xc5\x6a\xc6\x6a\xc7\x6a\xc8\x6a\xc9\x6a\xca\x6a\xcb\x6a\xcc\x6a\xcd\x6a\xce\x6a\xcf\x6a\xd0\x6a\xd1\x6a\xd2\x6a\xd3\x6a\xd4\x6a\xd5\x6a\xd6\x6a\xd7\x6a\xd8\x6a\xd9\x6a\xda\x6a\xdb\x6a\xdc\x6a\xdd\x6a\xde\x6a\xdf\x6a\xe0\x6a\xe1\x6a\xe2\x6a\xe3\x6a\xe4\x6a\xe5\x6a\xe6\x6a\xe7\x6a\xe8\x6a\xe9\x6a\xea\x6a\xeb\x6a\xec\x6a\xed\x6a\xee\x6a\xef\x6a\xf0\x6a\xf1\x6a\xf2\x6a\xf3\x6a\xf4\x6a\xf5\x6a\xf6\x00\x00\x00\x00", /* 9a00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xf7\x6a\xf8\x6a\xf9\x6a\xfa\x6a\xfb\x6a\xfc\x6a\xfd\x6a\xfe\x6a\xff\x6b\x00\x6b\x01\x6b\x02\x6b\x03\x6b\x04\x6b\x05\x6b\x06\x6b\x07\x6b\x08\x6b\x09\x6b\x0a\x6b\x0b\x6b\x0c\x6b\x0d\x6b\x0e\x6b\x0f\x6b\x10\x6b\x11\x6b\x12\x6b\x13\x6b\x14\x6b\x15\x6b\x16\x6b\x17\x6b\x18\x6b\x19\x6b\x1a\x6b\x1b\x6b\x1c\x6b\x1d\x6b\x1e\x6b\x1f\x6b\x25\x6b\x26\x6b\x28\x6b\x29\x6b\x2a\x6b\x2b\x6b\x2c\x6b\x2d\x6b\x2e\x6b\x2f\x6b\x30\x6b\x31\x6b\x33\x6b\x34\x6b\x35\x6b\x36\x6b\x38\x6b\x3b\x6b\x3c\x6b\x3d\x6b\x3f\x6b\x40", /* 9a80 */ "\x00\x00\x6b\x41\x6b\x42\x6b\x44\x6b\x45\x6b\x48\x6b\x4a\x6b\x4b\x6b\x4d\x6b\x4e\x6b\x4f\x6b\x50\x6b\x51\x6b\x52\x6b\x53\x6b\x54\x6b\x55\x6b\x56\x6b\x57\x6b\x58\x6b\x5a\x6b\x5b\x6b\x5c\x6b\x5d\x6b\x5e\x6b\x5f\x6b\x60\x6b\x61\x6b\x68\x6b\x69\x6b\x6b\x6b\x6c\x6b\x6d\x6b\x6e\x6b\x6f\x6b\x70\x6b\x71\x6b\x72\x6b\x73\x6b\x74\x6b\x75\x6b\x76\x6b\x77\x6b\x78\x6b\x7a\x6b\x7d\x6b\x7e\x6b\x7f\x6b\x80\x6b\x85\x6b\x88\x6b\x8c\x6b\x8e\x6b\x8f\x6b\x90\x6b\x91\x6b\x94\x6b\x95\x6b\x97\x6b\x98\x6b\x99\x6b\x9c\x6b\x9d\x6b\x9e\x6b\x9f\x6b\xa0\x6b\xa2\x6b\xa3\x6b\xa4\x6b\xa5\x6b\xa6\x6b\xa7\x6b\xa8\x6b\xa9\x6b\xab\x6b\xac\x6b\xad\x6b\xae\x6b\xaf\x6b\xb0\x6b\xb1\x6b\xb2\x6b\xb6\x6b\xb8\x6b\xb9\x6b\xba\x6b\xbb\x6b\xbc\x6b\xbd\x6b\xbe\x6b\xc0\x6b\xc3\x6b\xc4\x6b\xc6\x6b\xc7\x6b\xc8\x6b\xc9\x6b\xca\x6b\xcc\x6b\xce\x6b\xd0\x6b\xd1\x6b\xd8\x6b\xda\x6b\xdc\x6b\xdd\x6b\xde\x6b\xdf\x6b\xe0\x6b\xe2\x6b\xe3\x6b\xe4\x6b\xe5\x6b\xe6\x6b\xe7\x6b\xe8\x6b\xe9\x6b\xec\x6b\xed\x6b\xee\x6b\xf0\x6b\xf1\x6b\xf2\x6b\xf4\x6b\xf6\x6b\xf7\x00\x00\x00\x00", /* 9b00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6b\xf8\x6b\xfa\x6b\xfb\x6b\xfc\x6b\xfe\x6b\xff\x6c\x00\x6c\x01\x6c\x02\x6c\x03\x6c\x04\x6c\x08\x6c\x09\x6c\x0a\x6c\x0b\x6c\x0c\x6c\x0e\x6c\x12\x6c\x17\x6c\x1c\x6c\x1d\x6c\x1e\x6c\x20\x6c\x23\x6c\x25\x6c\x2b\x6c\x2c\x6c\x2d\x6c\x31\x6c\x33\x6c\x36\x6c\x37\x6c\x39\x6c\x3a\x6c\x3b\x6c\x3c\x6c\x3e\x6c\x3f\x6c\x43\x6c\x44\x6c\x45\x6c\x48\x6c\x4b\x6c\x4c\x6c\x4d\x6c\x4e\x6c\x4f\x6c\x51\x6c\x52\x6c\x53\x6c\x56\x6c\x58\x6c\x59\x6c\x5a\x6c\x62\x6c\x63\x6c\x65\x6c\x66\x6c\x67\x6c\x6b\x6c\x6c\x6c\x6d\x6c\x6e", /* 9b80 */ "\x00\x00\x6c\x6f\x6c\x71\x6c\x73\x6c\x75\x6c\x77\x6c\x78\x6c\x7a\x6c\x7b\x6c\x7c\x6c\x7f\x6c\x80\x6c\x84\x6c\x87\x6c\x8a\x6c\x8b\x6c\x8d\x6c\x8e\x6c\x91\x6c\x92\x6c\x95\x6c\x96\x6c\x97\x6c\x98\x6c\x9a\x6c\x9c\x6c\x9d\x6c\x9e\x6c\xa0\x6c\xa2\x6c\xa8\x6c\xac\x6c\xaf\x6c\xb0\x6c\xb4\x6c\xb5\x6c\xb6\x6c\xb7\x6c\xba\x6c\xc0\x6c\xc1\x6c\xc2\x6c\xc3\x6c\xc6\x6c\xc7\x6c\xc8\x6c\xcb\x6c\xcd\x6c\xce\x6c\xcf\x6c\xd1\x6c\xd2\x6c\xd8\x6c\xd9\x6c\xda\x6c\xdc\x6c\xdd\x6c\xdf\x6c\xe4\x6c\xe6\x6c\xe7\x6c\xe9\x6c\xec\x6c\xed\x6c\xf2\x6c\xf4\x6c\xf9\x6c\xff\x6d\x00\x6d\x02\x6d\x03\x6d\x05\x6d\x06\x6d\x08\x6d\x09\x6d\x0a\x6d\x0d\x6d\x0f\x6d\x10\x6d\x11\x6d\x13\x6d\x14\x6d\x15\x6d\x16\x6d\x18\x6d\x1c\x6d\x1d\x6d\x1f\x6d\x20\x6d\x21\x6d\x22\x6d\x23\x6d\x24\x6d\x26\x6d\x28\x6d\x29\x6d\x2c\x6d\x2d\x6d\x2f\x6d\x30\x6d\x34\x6d\x36\x6d\x37\x6d\x38\x6d\x3a\x6d\x3f\x6d\x40\x6d\x42\x6d\x44\x6d\x49\x6d\x4c\x6d\x50\x6d\x55\x6d\x56\x6d\x57\x6d\x58\x6d\x5b\x6d\x5d\x6d\x5f\x6d\x61\x6d\x62\x6d\x64\x6d\x65\x6d\x67\x6d\x68\x6d\x6b\x00\x00\x00\x00", /* 9c00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x6c\x6d\x6d\x6d\x70\x6d\x71\x6d\x72\x6d\x73\x6d\x75\x6d\x76\x6d\x79\x6d\x7a\x6d\x7b\x6d\x7d\x6d\x7e\x6d\x7f\x6d\x80\x6d\x81\x6d\x83\x6d\x84\x6d\x86\x6d\x87\x6d\x8a\x6d\x8b\x6d\x8d\x6d\x8f\x6d\x90\x6d\x92\x6d\x96\x6d\x97\x6d\x98\x6d\x99\x6d\x9a\x6d\x9c\x6d\xa2\x6d\xa5\x6d\xac\x6d\xad\x6d\xb0\x6d\xb1\x6d\xb3\x6d\xb4\x6d\xb6\x6d\xb7\x6d\xb9\x6d\xba\x6d\xbb\x6d\xbc\x6d\xbd\x6d\xbe\x6d\xc1\x6d\xc2\x6d\xc3\x6d\xc8\x6d\xc9\x6d\xca\x6d\xcd\x6d\xce\x6d\xcf\x6d\xd0\x6d\xd2\x6d\xd3\x6d\xd4\x6d\xd5\x6d\xd7", /* 9c80 */ "\x00\x00\x6d\xda\x6d\xdb\x6d\xdc\x6d\xdf\x6d\xe2\x6d\xe3\x6d\xe5\x6d\xe7\x6d\xe8\x6d\xe9\x6d\xea\x6d\xed\x6d\xef\x6d\xf0\x6d\xf2\x6d\xf4\x6d\xf5\x6d\xf6\x6d\xf8\x6d\xfa\x6d\xfd\x6d\xfe\x6d\xff\x6e\x00\x6e\x01\x6e\x02\x6e\x03\x6e\x04\x6e\x06\x6e\x07\x6e\x08\x6e\x09\x6e\x0b\x6e\x0f\x6e\x12\x6e\x13\x6e\x15\x6e\x18\x6e\x19\x6e\x1b\x6e\x1c\x6e\x1e\x6e\x1f\x6e\x22\x6e\x26\x6e\x27\x6e\x28\x6e\x2a\x6e\x2c\x6e\x2e\x6e\x30\x6e\x31\x6e\x33\x6e\x35\x6e\x36\x6e\x37\x6e\x39\x6e\x3b\x6e\x3c\x6e\x3d\x6e\x3e\x6e\x3f\x6e\x40\x6e\x41\x6e\x42\x6e\x45\x6e\x46\x6e\x47\x6e\x48\x6e\x49\x6e\x4a\x6e\x4b\x6e\x4c\x6e\x4f\x6e\x50\x6e\x51\x6e\x52\x6e\x55\x6e\x57\x6e\x59\x6e\x5a\x6e\x5c\x6e\x5d\x6e\x5e\x6e\x60\x6e\x61\x6e\x62\x6e\x63\x6e\x64\x6e\x65\x6e\x66\x6e\x67\x6e\x68\x6e\x69\x6e\x6a\x6e\x6c\x6e\x6d\x6e\x6f\x6e\x70\x6e\x71\x6e\x72\x6e\x73\x6e\x74\x6e\x75\x6e\x76\x6e\x77\x6e\x78\x6e\x79\x6e\x7a\x6e\x7b\x6e\x7c\x6e\x7d\x6e\x80\x6e\x81\x6e\x82\x6e\x84\x6e\x87\x6e\x88\x6e\x8a\x6e\x8b\x6e\x8c\x6e\x8d\x6e\x8e\x6e\x91\x6e\x92\x00\x00\x00\x00", /* 9d00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x93\x6e\x94\x6e\x95\x6e\x96\x6e\x97\x6e\x99\x6e\x9a\x6e\x9b\x6e\x9d\x6e\x9e\x6e\xa0\x6e\xa1\x6e\xa3\x6e\xa4\x6e\xa6\x6e\xa8\x6e\xa9\x6e\xab\x6e\xac\x6e\xad\x6e\xae\x6e\xb0\x6e\xb3\x6e\xb5\x6e\xb8\x6e\xb9\x6e\xbc\x6e\xbe\x6e\xbf\x6e\xc0\x6e\xc3\x6e\xc4\x6e\xc5\x6e\xc6\x6e\xc8\x6e\xc9\x6e\xca\x6e\xcc\x6e\xcd\x6e\xce\x6e\xd0\x6e\xd2\x6e\xd6\x6e\xd8\x6e\xd9\x6e\xdb\x6e\xdc\x6e\xdd\x6e\xe3\x6e\xe7\x6e\xea\x6e\xeb\x6e\xec\x6e\xed\x6e\xee\x6e\xef\x6e\xf0\x6e\xf1\x6e\xf2\x6e\xf3\x6e\xf5\x6e\xf6\x6e\xf7", /* 9d80 */ "\x00\x00\x6e\xf8\x6e\xfa\x6e\xfb\x6e\xfc\x6e\xfd\x6e\xfe\x6e\xff\x6f\x00\x6f\x01\x6f\x03\x6f\x04\x6f\x05\x6f\x07\x6f\x08\x6f\x0a\x6f\x0b\x6f\x0c\x6f\x0d\x6f\x0e\x6f\x10\x6f\x11\x6f\x12\x6f\x16\x6f\x17\x6f\x18\x6f\x19\x6f\x1a\x6f\x1b\x6f\x1c\x6f\x1d\x6f\x1e\x6f\x1f\x6f\x21\x6f\x22\x6f\x23\x6f\x25\x6f\x26\x6f\x27\x6f\x28\x6f\x2c\x6f\x2e\x6f\x30\x6f\x32\x6f\x34\x6f\x35\x6f\x37\x6f\x38\x6f\x39\x6f\x3a\x6f\x3b\x6f\x3c\x6f\x3d\x6f\x3f\x6f\x40\x6f\x41\x6f\x42\x6f\x43\x6f\x44\x6f\x45\x6f\x48\x6f\x49\x6f\x4a\x6f\x4c\x6f\x4e\x6f\x4f\x6f\x50\x6f\x51\x6f\x52\x6f\x53\x6f\x54\x6f\x55\x6f\x56\x6f\x57\x6f\x59\x6f\x5a\x6f\x5b\x6f\x5d\x6f\x5f\x6f\x60\x6f\x61\x6f\x63\x6f\x64\x6f\x65\x6f\x67\x6f\x68\x6f\x69\x6f\x6a\x6f\x6b\x6f\x6c\x6f\x6f\x6f\x70\x6f\x71\x6f\x73\x6f\x75\x6f\x76\x6f\x77\x6f\x79\x6f\x7b\x6f\x7d\x6f\x7e\x6f\x7f\x6f\x80\x6f\x81\x6f\x82\x6f\x83\x6f\x85\x6f\x86\x6f\x87\x6f\x8a\x6f\x8b\x6f\x8f\x6f\x90\x6f\x91\x6f\x92\x6f\x93\x6f\x94\x6f\x95\x6f\x96\x6f\x97\x6f\x98\x6f\x99\x6f\x9a\x6f\x9b\x6f\x9d\x6f\x9e\x00\x00\x00\x00", /* 9e00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x9f\x6f\xa0\x6f\xa2\x6f\xa3\x6f\xa4\x6f\xa5\x6f\xa6\x6f\xa8\x6f\xa9\x6f\xaa\x6f\xab\x6f\xac\x6f\xad\x6f\xae\x6f\xaf\x6f\xb0\x6f\xb1\x6f\xb2\x6f\xb4\x6f\xb5\x6f\xb7\x6f\xb8\x6f\xba\x6f\xbb\x6f\xbc\x6f\xbd\x6f\xbe\x6f\xbf\x6f\xc1\x6f\xc3\x6f\xc4\x6f\xc5\x6f\xc6\x6f\xc7\x6f\xc8\x6f\xca\x6f\xcb\x6f\xcc\x6f\xcd\x6f\xce\x6f\xcf\x6f\xd0\x6f\xd3\x6f\xd4\x6f\xd5\x6f\xd6\x6f\xd7\x6f\xd8\x6f\xd9\x6f\xda\x6f\xdb\x6f\xdc\x6f\xdd\x6f\xdf\x6f\xe2\x6f\xe3\x6f\xe4\x6f\xe5\x6f\xe6\x6f\xe7\x6f\xe8\x6f\xe9\x6f\xea", /* 9e80 */ "\x00\x00\x6f\xeb\x6f\xec\x6f\xed\x6f\xf0\x6f\xf1\x6f\xf2\x6f\xf3\x6f\xf4\x6f\xf5\x6f\xf6\x6f\xf7\x6f\xf8\x6f\xf9\x6f\xfa\x6f\xfb\x6f\xfc\x6f\xfd\x6f\xfe\x6f\xff\x70\x00\x70\x01\x70\x02\x70\x03\x70\x04\x70\x05\x70\x06\x70\x07\x70\x08\x70\x09\x70\x0a\x70\x0b\x70\x0c\x70\x0d\x70\x0e\x70\x0f\x70\x10\x70\x12\x70\x13\x70\x14\x70\x15\x70\x16\x70\x17\x70\x18\x70\x19\x70\x1c\x70\x1d\x70\x1e\x70\x1f\x70\x20\x70\x21\x70\x22\x70\x24\x70\x25\x70\x26\x70\x27\x70\x28\x70\x29\x70\x2a\x70\x2b\x70\x2c\x70\x2d\x70\x2e\x70\x2f\x70\x30\x70\x31\x70\x32\x70\x33\x70\x34\x70\x36\x70\x37\x70\x38\x70\x3a\x70\x3b\x70\x3c\x70\x3d\x70\x3e\x70\x3f\x70\x40\x70\x41\x70\x42\x70\x43\x70\x44\x70\x45\x70\x46\x70\x47\x70\x48\x70\x49\x70\x4a\x70\x4b\x70\x4d\x70\x4e\x70\x50\x70\x51\x70\x52\x70\x53\x70\x54\x70\x55\x70\x56\x70\x57\x70\x58\x70\x59\x70\x5a\x70\x5b\x70\x5c\x70\x5d\x70\x5f\x70\x60\x70\x61\x70\x62\x70\x63\x70\x64\x70\x65\x70\x66\x70\x67\x70\x68\x70\x69\x70\x6a\x70\x6e\x70\x71\x70\x72\x70\x73\x70\x74\x70\x77\x70\x79\x70\x7a\x00\x00\x00\x00", /* 9f00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x7b\x70\x7d\x70\x81\x70\x82\x70\x83\x70\x84\x70\x86\x70\x87\x70\x88\x70\x8b\x70\x8c\x70\x8d\x70\x8f\x70\x90\x70\x91\x70\x93\x70\x97\x70\x98\x70\x9a\x70\x9b\x70\x9e\x70\x9f\x70\xa0\x70\xa1\x70\xa2\x70\xa3\x70\xa4\x70\xa5\x70\xa6\x70\xa7\x70\xa8\x70\xa9\x70\xaa\x70\xb0\x70\xb2\x70\xb4\x70\xb5\x70\xb6\x70\xba\x70\xbe\x70\xbf\x70\xc4\x70\xc5\x70\xc6\x70\xc7\x70\xc9\x70\xcb\x70\xcc\x70\xcd\x70\xce\x70\xcf\x70\xd0\x70\xd1\x70\xd2\x70\xd3\x70\xd4\x70\xd5\x70\xd6\x70\xd7\x70\xda\x70\xdc\x70\xdd\x70\xde", /* 9f80 */ "\x00\x00\x70\xe0\x70\xe1\x70\xe2\x70\xe3\x70\xe5\x70\xea\x70\xee\x70\xf0\x70\xf1\x70\xf2\x70\xf3\x70\xf4\x70\xf5\x70\xf6\x70\xf8\x70\xfa\x70\xfb\x70\xfc\x70\xfe\x70\xff\x71\x00\x71\x01\x71\x02\x71\x03\x71\x04\x71\x05\x71\x06\x71\x07\x71\x08\x71\x0b\x71\x0c\x71\x0d\x71\x0e\x71\x0f\x71\x11\x71\x12\x71\x14\x71\x17\x71\x1b\x71\x1c\x71\x1d\x71\x1e\x71\x1f\x71\x20\x71\x21\x71\x22\x71\x23\x71\x24\x71\x25\x71\x27\x71\x28\x71\x29\x71\x2a\x71\x2b\x71\x2c\x71\x2d\x71\x2e\x71\x32\x71\x33\x71\x34\x71\x35\x71\x37\x71\x38\x71\x39\x71\x3a\x71\x3b\x71\x3c\x71\x3d\x71\x3e\x71\x3f\x71\x40\x71\x41\x71\x42\x71\x43\x71\x44\x71\x46\x71\x47\x71\x48\x71\x49\x71\x4b\x71\x4d\x71\x4f\x71\x50\x71\x51\x71\x52\x71\x53\x71\x54\x71\x55\x71\x56\x71\x57\x71\x58\x71\x59\x71\x5a\x71\x5b\x71\x5d\x71\x5f\x71\x60\x71\x61\x71\x62\x71\x63\x71\x65\x71\x69\x71\x6a\x71\x6b\x71\x6c\x71\x6d\x71\x6f\x71\x70\x71\x71\x71\x74\x71\x75\x71\x76\x71\x77\x71\x79\x71\x7b\x71\x7c\x71\x7e\x71\x7f\x71\x80\x71\x81\x71\x82\x71\x83\x71\x85\x71\x86\x71\x87\x00\x00\x00\x00", /* a000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x88\x71\x89\x71\x8b\x71\x8c\x71\x8d\x71\x8e\x71\x90\x71\x91\x71\x92\x71\x93\x71\x95\x71\x96\x71\x97\x71\x9a\x71\x9b\x71\x9c\x71\x9d\x71\x9e\x71\xa1\x71\xa2\x71\xa3\x71\xa4\x71\xa5\x71\xa6\x71\xa7\x71\xa9\x71\xaa\x71\xab\x71\xad\x71\xae\x71\xaf\x71\xb0\x71\xb1\x71\xb2\x71\xb4\x71\xb6\x71\xb7\x71\xb8\x71\xba\x71\xbb\x71\xbc\x71\xbd\x71\xbe\x71\xbf\x71\xc0\x71\xc1\x71\xc2\x71\xc4\x71\xc5\x71\xc6\x71\xc7\x71\xc8\x71\xc9\x71\xca\x71\xcb\x71\xcc\x71\xcd\x71\xcf\x71\xd0\x71\xd1\x71\xd2\x71\xd3\x71\xd6", /* a080 */ "\x00\x00\x71\xd7\x71\xd8\x71\xd9\x71\xda\x71\xdb\x71\xdc\x71\xdd\x71\xde\x71\xdf\x71\xe1\x71\xe2\x71\xe3\x71\xe4\x71\xe6\x71\xe8\x71\xe9\x71\xea\x71\xeb\x71\xec\x71\xed\x71\xef\x71\xf0\x71\xf1\x71\xf2\x71\xf3\x71\xf4\x71\xf5\x71\xf6\x71\xf7\x71\xf8\x71\xfa\x71\xfb\x71\xfc\x71\xfd\x71\xfe\x71\xff\x72\x00\x72\x01\x72\x02\x72\x03\x72\x04\x72\x05\x72\x07\x72\x08\x72\x09\x72\x0a\x72\x0b\x72\x0c\x72\x0d\x72\x0e\x72\x0f\x72\x10\x72\x11\x72\x12\x72\x13\x72\x14\x72\x15\x72\x16\x72\x17\x72\x18\x72\x19\x72\x1a\x72\x1b\x72\x1c\x72\x1e\x72\x1f\x72\x20\x72\x21\x72\x22\x72\x23\x72\x24\x72\x25\x72\x26\x72\x27\x72\x29\x72\x2b\x72\x2d\x72\x2e\x72\x2f\x72\x32\x72\x33\x72\x34\x72\x3a\x72\x3c\x72\x3e\x72\x40\x72\x41\x72\x42\x72\x43\x72\x44\x72\x45\x72\x46\x72\x49\x72\x4a\x72\x4b\x72\x4e\x72\x4f\x72\x50\x72\x51\x72\x53\x72\x54\x72\x55\x72\x57\x72\x58\x72\x5a\x72\x5c\x72\x5e\x72\x60\x72\x63\x72\x64\x72\x65\x72\x68\x72\x6a\x72\x6b\x72\x6c\x72\x6d\x72\x70\x72\x71\x72\x73\x72\x74\x72\x76\x72\x77\x72\x78\x72\x7b\x72\x7c\x00\x00\x00\x00", /* a100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x7d\x72\x82\x72\x83\x72\x85\x72\x86\x72\x87\x72\x88\x72\x89\x72\x8c\x72\x8e\x72\x90\x72\x91\x72\x93\x72\x94\x72\x95\x72\x96\x72\x97\x72\x98\x72\x99\x72\x9a\x72\x9b\x72\x9c\x72\x9d\x72\x9e\x72\xa0\x72\xa1\x72\xa2\x72\xa3\x72\xa4\x72\xa5\x72\xa6\x72\xa7\x72\xa8\x72\xa9\x72\xaa\x72\xab\x72\xae\x72\xb1\x72\xb2\x72\xb3\x72\xb5\x72\xba\x72\xbb\x72\xbc\x72\xbd\x72\xbe\x72\xbf\x72\xc0\x72\xc5\x72\xc6\x72\xc7\x72\xc9\x72\xca\x72\xcb\x72\xcc\x72\xcf\x72\xd1\x72\xd3\x72\xd4\x72\xd5\x72\xd6\x72\xd8\x72\xda", /* a180 */ "\x00\x00\x72\xdb\x72\xdc\x72\xdd\x72\xdf\x72\xe2\x72\xe3\x72\xe4\x72\xe5\x72\xe6\x72\xe7\x72\xea\x72\xeb\x72\xf5\x72\xf6\x72\xf9\x72\xfd\x72\xfe\x72\xff\x73\x00\x73\x02\x73\x04\x73\x05\x73\x06\x73\x07\x73\x08\x73\x09\x73\x0b\x73\x0c\x73\x0d\x73\x0f\x73\x10\x73\x11\x73\x12\x73\x14\x73\x18\x73\x19\x73\x1a\x73\x1f\x73\x20\x73\x23\x73\x24\x73\x26\x73\x27\x73\x28\x73\x2d\x73\x2f\x73\x30\x73\x32\x73\x33\x73\x35\x73\x36\x73\x3a\x73\x3b\x73\x3c\x73\x3d\x73\x40\x73\x41\x73\x42\x73\x43\x73\x44\x73\x45\x73\x46\x73\x47\x73\x48\x73\x49\x73\x4a\x73\x4b\x73\x4c\x73\x4e\x73\x4f\x73\x51\x73\x53\x73\x54\x73\x55\x73\x56\x73\x58\x73\x59\x73\x5a\x73\x5b\x73\x5c\x73\x5d\x73\x5e\x73\x5f\x73\x61\x73\x62\x73\x63\x73\x64\x73\x65\x73\x66\x73\x67\x73\x68\x73\x69\x73\x6a\x73\x6b\x73\x6e\x73\x70\x73\x71\x73\x72\x73\x73\x73\x74\x73\x75\x73\x76\x73\x77\x73\x78\x73\x79\x73\x7a\x73\x7b\x73\x7c\x73\x7d\x73\x7f\x73\x80\x73\x81\x73\x82\x73\x83\x73\x85\x73\x86\x73\x88\x73\x8a\x73\x8c\x73\x8d\x73\x8f\x73\x90\x73\x92\x73\x93\x73\x94\x00\x00\x00\x00", /* a200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x95\x73\x97\x73\x98\x73\x99\x73\x9a\x73\x9c\x73\x9d\x73\x9e\x73\xa0\x73\xa1\x73\xa3\x73\xa4\x73\xa5\x73\xa6\x73\xa7\x73\xa8\x73\xaa\x73\xac\x73\xad\x73\xb1\x73\xb4\x73\xb5\x73\xb6\x73\xb8\x73\xb9\x73\xbc\x73\xbd\x73\xbe\x73\xbf\x73\xc1\x73\xc3\x73\xc4\x73\xc5\x73\xc6\x73\xc7\x73\xcb\x73\xcc\x73\xce\x73\xd2\x73\xd3\x73\xd4\x73\xd5\x73\xd6\x73\xd7\x73\xd8\x73\xda\x73\xdb\x73\xdc\x73\xdd\x73\xdf\x73\xe1\x73\xe2\x73\xe3\x73\xe4\x73\xe6\x73\xe8\x73\xea\x73\xeb\x73\xec\x73\xee\x73\xef\x73\xf0\x73\xf1", /* a280 */ "\x00\x00\x73\xf3\x73\xf4\x73\xf5\x73\xf6\x73\xf7\x73\xf8\x73\xf9\x73\xfa\x73\xfb\x73\xfc\x73\xfd\x73\xfe\x73\xff\x74\x00\x74\x01\x74\x02\x74\x04\x74\x07\x74\x08\x74\x0b\x74\x0c\x74\x0d\x74\x0e\x74\x11\x74\x12\x74\x13\x74\x14\x74\x15\x74\x16\x74\x17\x74\x18\x74\x19\x74\x1c\x74\x1d\x74\x1e\x74\x1f\x74\x20\x74\x21\x74\x23\x74\x24\x74\x27\x74\x29\x74\x2b\x74\x2d\x74\x2f\x74\x31\x74\x32\x74\x37\x74\x38\x74\x39\x74\x3a\x74\x3b\x74\x3d\x74\x3e\x74\x3f\x74\x40\x74\x42\x74\x43\x74\x44\x74\x45\x74\x46\x74\x47\x74\x48\x74\x49\x74\x4a\x74\x4b\x74\x4c\x74\x4d\x74\x4e\x74\x4f\x74\x50\x74\x51\x74\x52\x74\x53\x74\x54\x74\x56\x74\x58\x74\x5d\x74\x60\x74\x61\x74\x62\x74\x63\x74\x64\x74\x65\x74\x66\x74\x67\x74\x68\x74\x69\x74\x6a\x74\x6b\x74\x6c\x74\x6e\x74\x6f\x74\x71\x74\x72\x74\x73\x74\x74\x74\x75\x74\x78\x74\x79\x74\x7a\x74\x7b\x74\x7c\x74\x7d\x74\x7f\x74\x82\x74\x84\x74\x85\x74\x86\x74\x88\x74\x89\x74\x8a\x74\x8c\x74\x8d\x74\x8f\x74\x91\x74\x92\x74\x93\x74\x94\x74\x95\x74\x96\x74\x97\x74\x98\x74\x99\x74\x9a\x00\x00\x00\x00", /* a300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x9b\x74\x9d\x74\x9f\x74\xa0\x74\xa1\x74\xa2\x74\xa3\x74\xa4\x74\xa5\x74\xa6\x74\xaa\x74\xab\x74\xac\x74\xad\x74\xae\x74\xaf\x74\xb0\x74\xb1\x74\xb2\x74\xb3\x74\xb4\x74\xb5\x74\xb6\x74\xb7\x74\xb8\x74\xb9\x74\xbb\x74\xbc\x74\xbd\x74\xbe\x74\xbf\x74\xc0\x74\xc1\x74\xc2\x74\xc3\x74\xc4\x74\xc5\x74\xc6\x74\xc7\x74\xc8\x74\xc9\x74\xca\x74\xcb\x74\xcc\x74\xcd\x74\xce\x74\xcf\x74\xd0\x74\xd1\x74\xd3\x74\xd4\x74\xd5\x74\xd6\x74\xd7\x74\xd8\x74\xd9\x74\xda\x74\xdb\x74\xdd\x74\xdf\x74\xe1\x74\xe5\x74\xe7", /* a380 */ "\x00\x00\x74\xe8\x74\xe9\x74\xea\x74\xeb\x74\xec\x74\xed\x74\xf0\x74\xf1\x74\xf2\x74\xf3\x74\xf5\x74\xf8\x74\xf9\x74\xfa\x74\xfb\x74\xfc\x74\xfd\x74\xfe\x75\x00\x75\x01\x75\x02\x75\x03\x75\x05\x75\x06\x75\x07\x75\x08\x75\x09\x75\x0a\x75\x0b\x75\x0c\x75\x0e\x75\x10\x75\x12\x75\x14\x75\x15\x75\x16\x75\x17\x75\x1b\x75\x1d\x75\x1e\x75\x20\x75\x21\x75\x22\x75\x23\x75\x24\x75\x26\x75\x27\x75\x2a\x75\x2e\x75\x34\x75\x36\x75\x39\x75\x3c\x75\x3d\x75\x3f\x75\x41\x75\x42\x75\x43\x75\x44\x75\x46\x75\x47\x75\x49\x75\x4a\x75\x4d\x75\x50\x75\x51\x75\x52\x75\x53\x75\x55\x75\x56\x75\x57\x75\x58\x75\x5d\x75\x5e\x75\x5f\x75\x60\x75\x61\x75\x62\x75\x63\x75\x64\x75\x67\x75\x68\x75\x69\x75\x6b\x75\x6c\x75\x6d\x75\x6e\x75\x6f\x75\x70\x75\x71\x75\x73\x75\x75\x75\x76\x75\x77\x75\x7a\x75\x7b\x75\x7c\x75\x7d\x75\x7e\x75\x80\x75\x81\x75\x82\x75\x84\x75\x85\x75\x87\x75\x88\x75\x89\x75\x8a\x75\x8c\x75\x8d\x75\x8e\x75\x90\x75\x93\x75\x95\x75\x98\x75\x9b\x75\x9c\x75\x9e\x75\xa2\x75\xa6\x75\xa7\x75\xa8\x75\xa9\x75\xaa\x75\xad\x00\x00\x00\x00", /* a400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\xb6\x75\xb7\x75\xba\x75\xbb\x75\xbf\x75\xc0\x75\xc1\x75\xc6\x75\xcb\x75\xcc\x75\xce\x75\xcf\x75\xd0\x75\xd1\x75\xd3\x75\xd7\x75\xd9\x75\xda\x75\xdc\x75\xdd\x75\xdf\x75\xe0\x75\xe1\x75\xe5\x75\xe9\x75\xec\x75\xed\x75\xee\x75\xef\x75\xf2\x75\xf3\x75\xf5\x75\xf6\x75\xf7\x75\xf8\x75\xfa\x75\xfb\x75\xfd\x75\xfe\x76\x02\x76\x04\x76\x06\x76\x07\x76\x08\x76\x09\x76\x0b\x76\x0d\x76\x0e\x76\x0f\x76\x11\x76\x12\x76\x13\x76\x14\x76\x16\x76\x1a\x76\x1c\x76\x1d\x76\x1e\x76\x21\x76\x23\x76\x27\x76\x28\x76\x2c", /* a480 */ "\x00\x00\x76\x2e\x76\x2f\x76\x31\x76\x32\x76\x36\x76\x37\x76\x39\x76\x3a\x76\x3b\x76\x3d\x76\x41\x76\x42\x76\x44\x76\x45\x76\x46\x76\x47\x76\x48\x76\x49\x76\x4a\x76\x4b\x76\x4e\x76\x4f\x76\x50\x76\x51\x76\x52\x76\x53\x76\x55\x76\x57\x76\x58\x76\x59\x76\x5a\x76\x5b\x76\x5d\x76\x5f\x76\x60\x76\x61\x76\x62\x76\x64\x76\x65\x76\x66\x76\x67\x76\x68\x76\x69\x76\x6a\x76\x6c\x76\x6d\x76\x6e\x76\x70\x76\x71\x76\x72\x76\x73\x76\x74\x76\x75\x76\x76\x76\x77\x76\x79\x76\x7a\x76\x7c\x76\x7f\x76\x80\x76\x81\x76\x83\x76\x85\x76\x89\x76\x8a\x76\x8c\x76\x8d\x76\x8f\x76\x90\x76\x92\x76\x94\x76\x95\x76\x97\x76\x98\x76\x9a\x76\x9b\x76\x9c\x76\x9d\x76\x9e\x76\x9f\x76\xa0\x76\xa1\x76\xa2\x76\xa3\x76\xa5\x76\xa6\x76\xa7\x76\xa8\x76\xa9\x76\xaa\x76\xab\x76\xac\x76\xad\x76\xaf\x76\xb0\x76\xb3\x76\xb5\x76\xb6\x76\xb7\x76\xb8\x76\xb9\x76\xba\x76\xbb\x76\xbc\x76\xbd\x76\xbe\x76\xc0\x76\xc1\x76\xc3\x76\xc4\x76\xc7\x76\xc9\x76\xcb\x76\xcc\x76\xd3\x76\xd5\x76\xd9\x76\xda\x76\xdc\x76\xdd\x76\xde\x76\xe0\x76\xe1\x76\xe2\x76\xe3\x00\x00\x00\x00", /* a500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\xe4\x76\xe6\x76\xe7\x76\xe8\x76\xe9\x76\xea\x76\xeb\x76\xec\x76\xed\x76\xf0\x76\xf3\x76\xf5\x76\xf6\x76\xf7\x76\xfa\x76\xfb\x76\xfd\x76\xff\x77\x00\x77\x02\x77\x03\x77\x05\x77\x06\x77\x0a\x77\x0c\x77\x0e\x77\x0f\x77\x10\x77\x11\x77\x12\x77\x13\x77\x14\x77\x15\x77\x16\x77\x17\x77\x18\x77\x1b\x77\x1c\x77\x1d\x77\x1e\x77\x21\x77\x23\x77\x24\x77\x25\x77\x27\x77\x2a\x77\x2b\x77\x2c\x77\x2e\x77\x30\x77\x31\x77\x32\x77\x33\x77\x34\x77\x39\x77\x3b\x77\x3d\x77\x3e\x77\x3f\x77\x42\x77\x44\x77\x45\x77\x46", /* a580 */ "\x00\x00\x77\x48\x77\x49\x77\x4a\x77\x4b\x77\x4c\x77\x4d\x77\x4e\x77\x4f\x77\x52\x77\x53\x77\x54\x77\x55\x77\x56\x77\x57\x77\x58\x77\x59\x77\x5c\x77\x5d\x77\x5e\x77\x5f\x77\x60\x77\x64\x77\x67\x77\x69\x77\x6a\x77\x6d\x77\x6e\x77\x6f\x77\x70\x77\x71\x77\x72\x77\x73\x77\x74\x77\x75\x77\x76\x77\x77\x77\x78\x77\x7a\x77\x7b\x77\x7c\x77\x81\x77\x82\x77\x83\x77\x86\x77\x87\x77\x88\x77\x89\x77\x8a\x77\x8b\x77\x8f\x77\x90\x77\x93\x77\x94\x77\x95\x77\x96\x77\x97\x77\x98\x77\x99\x77\x9a\x77\x9b\x77\x9c\x77\x9d\x77\x9e\x77\xa1\x77\xa3\x77\xa4\x77\xa6\x77\xa8\x77\xab\x77\xad\x77\xae\x77\xaf\x77\xb1\x77\xb2\x77\xb4\x77\xb6\x77\xb7\x77\xb8\x77\xb9\x77\xba\x77\xbc\x77\xbe\x77\xc0\x77\xc1\x77\xc2\x77\xc3\x77\xc4\x77\xc5\x77\xc6\x77\xc7\x77\xc8\x77\xc9\x77\xca\x77\xcb\x77\xcc\x77\xce\x77\xcf\x77\xd0\x77\xd1\x77\xd2\x77\xd3\x77\xd4\x77\xd5\x77\xd6\x77\xd8\x77\xd9\x77\xda\x77\xdd\x77\xde\x77\xdf\x77\xe0\x77\xe1\x77\xe4\x77\xe6\x77\xe8\x77\xea\x77\xef\x77\xf0\x77\xf1\x77\xf2\x77\xf4\x77\xf5\x77\xf7\x77\xf9\x77\xfa\x00\x00\x00\x00", /* a600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\xfb\x77\xfc\x78\x03\x78\x04\x78\x05\x78\x06\x78\x07\x78\x08\x78\x0a\x78\x0b\x78\x0e\x78\x0f\x78\x10\x78\x13\x78\x15\x78\x19\x78\x1b\x78\x1e\x78\x20\x78\x21\x78\x22\x78\x24\x78\x28\x78\x2a\x78\x2b\x78\x2e\x78\x2f\x78\x31\x78\x32\x78\x33\x78\x35\x78\x36\x78\x3d\x78\x3f\x78\x41\x78\x42\x78\x43\x78\x44\x78\x46\x78\x48\x78\x49\x78\x4a\x78\x4b\x78\x4d\x78\x4f\x78\x51\x78\x53\x78\x54\x78\x58\x78\x59\x78\x5a\x78\x5b\x78\x5c\x78\x5e\x78\x5f\x78\x60\x78\x61\x78\x62\x78\x63\x78\x64\x78\x65\x78\x66\x78\x67", /* a680 */ "\x00\x00\x78\x68\x78\x69\x78\x6f\x78\x70\x78\x71\x78\x72\x78\x73\x78\x74\x78\x75\x78\x76\x78\x78\x78\x79\x78\x7a\x78\x7b\x78\x7d\x78\x7e\x78\x7f\x78\x80\x78\x81\x78\x82\x78\x83\x78\x84\x78\x85\x78\x86\x78\x88\x78\x8a\x78\x8b\x78\x8f\x78\x90\x78\x92\x78\x94\x78\x95\x78\x96\x78\x99\x78\x9d\x78\x9e\x78\xa0\x78\xa2\x78\xa4\x78\xa6\x78\xa8\x78\xa9\x78\xaa\x78\xab\x78\xac\x78\xad\x78\xae\x78\xaf\x78\xb5\x78\xb6\x78\xb7\x78\xb8\x78\xba\x78\xbb\x78\xbc\x78\xbd\x78\xbf\x78\xc0\x78\xc2\x78\xc3\x78\xc4\x78\xc6\x78\xc7\x78\xc8\x78\xcc\x78\xcd\x78\xce\x78\xcf\x78\xd1\x78\xd2\x78\xd3\x78\xd6\x78\xd7\x78\xd8\x78\xda\x78\xdb\x78\xdc\x78\xdd\x78\xde\x78\xdf\x78\xe0\x78\xe1\x78\xe2\x78\xe3\x78\xe4\x78\xe5\x78\xe6\x78\xe7\x78\xe9\x78\xea\x78\xeb\x78\xed\x78\xee\x78\xef\x78\xf0\x78\xf1\x78\xf3\x78\xf5\x78\xf6\x78\xf8\x78\xf9\x78\xfb\x78\xfc\x78\xfd\x78\xfe\x78\xff\x79\x00\x79\x02\x79\x03\x79\x04\x79\x06\x79\x07\x79\x08\x79\x09\x79\x0a\x79\x0b\x79\x0c\x79\x0d\x79\x0e\x79\x0f\x79\x10\x79\x11\x79\x12\x79\x14\x79\x15\x00\x00\x00\x00", /* a700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x16\x79\x17\x79\x18\x79\x19\x79\x1a\x79\x1b\x79\x1c\x79\x1d\x79\x1f\x79\x20\x79\x21\x79\x22\x79\x23\x79\x25\x79\x26\x79\x27\x79\x28\x79\x29\x79\x2a\x79\x2b\x79\x2c\x79\x2d\x79\x2e\x79\x2f\x79\x30\x79\x31\x79\x32\x79\x33\x79\x35\x79\x36\x79\x37\x79\x38\x79\x39\x79\x3d\x79\x3f\x79\x42\x79\x43\x79\x44\x79\x45\x79\x47\x79\x4a\x79\x4b\x79\x4c\x79\x4d\x79\x4e\x79\x4f\x79\x50\x79\x51\x79\x52\x79\x54\x79\x55\x79\x58\x79\x59\x79\x61\x79\x63\x79\x64\x79\x66\x79\x69\x79\x6a\x79\x6b\x79\x6c\x79\x6e\x79\x70", /* a780 */ "\x00\x00\x79\x71\x79\x72\x79\x73\x79\x74\x79\x75\x79\x76\x79\x79\x79\x7b\x79\x7c\x79\x7d\x79\x7e\x79\x7f\x79\x82\x79\x83\x79\x86\x79\x87\x79\x88\x79\x89\x79\x8b\x79\x8c\x79\x8d\x79\x8e\x79\x90\x79\x91\x79\x92\x79\x93\x79\x94\x79\x95\x79\x96\x79\x97\x79\x98\x79\x99\x79\x9b\x79\x9c\x79\x9d\x79\x9e\x79\x9f\x79\xa0\x79\xa1\x79\xa2\x79\xa3\x79\xa4\x79\xa5\x79\xa6\x79\xa8\x79\xa9\x79\xaa\x79\xab\x79\xac\x79\xad\x79\xae\x79\xaf\x79\xb0\x79\xb1\x79\xb2\x79\xb4\x79\xb5\x79\xb6\x79\xb7\x79\xb8\x79\xbc\x79\xbf\x79\xc2\x79\xc4\x79\xc5\x79\xc7\x79\xc8\x79\xca\x79\xcc\x79\xce\x79\xcf\x79\xd0\x79\xd3\x79\xd4\x79\xd6\x79\xd7\x79\xd9\x79\xda\x79\xdb\x79\xdc\x79\xdd\x79\xde\x79\xe0\x79\xe1\x79\xe2\x79\xe5\x79\xe8\x79\xea\x79\xec\x79\xee\x79\xf1\x79\xf2\x79\xf3\x79\xf4\x79\xf5\x79\xf6\x79\xf7\x79\xf9\x79\xfa\x79\xfc\x79\xfe\x79\xff\x7a\x01\x7a\x04\x7a\x05\x7a\x07\x7a\x08\x7a\x09\x7a\x0a\x7a\x0c\x7a\x0f\x7a\x10\x7a\x11\x7a\x12\x7a\x13\x7a\x15\x7a\x16\x7a\x18\x7a\x19\x7a\x1b\x7a\x1c\x7a\x1d\x7a\x1f\x7a\x21\x7a\x22\x00\x00\x00\x00", /* a800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x24\x7a\x25\x7a\x26\x7a\x27\x7a\x28\x7a\x29\x7a\x2a\x7a\x2b\x7a\x2c\x7a\x2d\x7a\x2e\x7a\x2f\x7a\x30\x7a\x31\x7a\x32\x7a\x34\x7a\x35\x7a\x36\x7a\x38\x7a\x3a\x7a\x3e\x7a\x40\x7a\x41\x7a\x42\x7a\x43\x7a\x44\x7a\x45\x7a\x47\x7a\x48\x7a\x49\x7a\x4a\x7a\x4b\x7a\x4c\x7a\x4d\x7a\x4e\x7a\x4f\x7a\x50\x7a\x52\x7a\x53\x7a\x54\x7a\x55\x7a\x56\x7a\x58\x7a\x59\x7a\x5a\x7a\x5b\x7a\x5c\x7a\x5d\x7a\x5e\x7a\x5f\x7a\x60\x7a\x61\x7a\x62\x7a\x63\x7a\x64\x7a\x65\x7a\x66\x7a\x67\x7a\x68\x7a\x69\x7a\x6a\x7a\x6b\x7a\x6c", /* a880 */ "\x00\x00\x7a\x6d\x7a\x6e\x7a\x6f\x7a\x71\x7a\x72\x7a\x73\x7a\x75\x7a\x7b\x7a\x7c\x7a\x7d\x7a\x7e\x7a\x82\x7a\x85\x7a\x87\x7a\x89\x7a\x8a\x7a\x8b\x7a\x8c\x7a\x8e\x7a\x8f\x7a\x90\x7a\x93\x7a\x94\x7a\x99\x7a\x9a\x7a\x9b\x7a\x9e\x7a\xa1\x7a\xa2\x7a\xa3\x7a\xa4\x7a\xa7\x7a\xa9\x7a\xaa\x7a\xab\x7a\xae\x7a\xaf\x7a\xb0\x7a\xb1\x7a\xb2\x7a\xb4\x7a\xb5\x7a\xb6\x7a\xb7\x7a\xb8\x7a\xb9\x7a\xba\x7a\xbb\x7a\xbc\x7a\xbd\x7a\xbe\x7a\xc0\x7a\xc1\x7a\xc2\x7a\xc3\x7a\xc4\x7a\xc5\x7a\xc6\x7a\xc7\x7a\xc8\x7a\xc9\x7a\xca\x7a\xcc\x7a\xcd\x7a\xce\x7a\xcf\x7a\xd0\x7a\xd1\x7a\xd2\x7a\xd3\x7a\xd4\x7a\xd5\x7a\xd7\x7a\xd8\x7a\xda\x7a\xdb\x7a\xdc\x7a\xdd\x7a\xe1\x7a\xe2\x7a\xe4\x7a\xe7\x7a\xe8\x7a\xe9\x7a\xea\x7a\xeb\x7a\xec\x7a\xee\x7a\xf0\x7a\xf1\x7a\xf2\x7a\xf3\x7a\xf4\x7a\xf5\x7a\xf6\x7a\xf7\x7a\xf8\x7a\xfb\x7a\xfc\x7a\xfe\x7b\x00\x7b\x01\x7b\x02\x7b\x05\x7b\x07\x7b\x09\x7b\x0c\x7b\x0d\x7b\x0e\x7b\x10\x7b\x12\x7b\x13\x7b\x16\x7b\x17\x7b\x18\x7b\x1a\x7b\x1c\x7b\x1d\x7b\x1f\x7b\x21\x7b\x22\x7b\x23\x7b\x27\x7b\x29\x7b\x2d\x00\x00\x00\x00", /* a900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x2f\x7b\x30\x7b\x32\x7b\x34\x7b\x35\x7b\x36\x7b\x37\x7b\x39\x7b\x3b\x7b\x3d\x7b\x3f\x7b\x40\x7b\x41\x7b\x42\x7b\x43\x7b\x44\x7b\x46\x7b\x48\x7b\x4a\x7b\x4d\x7b\x4e\x7b\x53\x7b\x55\x7b\x57\x7b\x59\x7b\x5c\x7b\x5e\x7b\x5f\x7b\x61\x7b\x63\x7b\x64\x7b\x65\x7b\x66\x7b\x67\x7b\x68\x7b\x69\x7b\x6a\x7b\x6b\x7b\x6c\x7b\x6d\x7b\x6f\x7b\x70\x7b\x73\x7b\x74\x7b\x76\x7b\x78\x7b\x7a\x7b\x7c\x7b\x7d\x7b\x7f\x7b\x81\x7b\x82\x7b\x83\x7b\x84\x7b\x86\x7b\x87\x7b\x88\x7b\x89\x7b\x8a\x7b\x8b\x7b\x8c\x7b\x8e\x7b\x8f", /* a980 */ "\x00\x00\x7b\x91\x7b\x92\x7b\x93\x7b\x96\x7b\x98\x7b\x99\x7b\x9a\x7b\x9b\x7b\x9e\x7b\x9f\x7b\xa0\x7b\xa3\x7b\xa4\x7b\xa5\x7b\xae\x7b\xaf\x7b\xb0\x7b\xb2\x7b\xb3\x7b\xb5\x7b\xb6\x7b\xb7\x7b\xb9\x7b\xba\x7b\xbb\x7b\xbc\x7b\xbd\x7b\xbe\x7b\xbf\x7b\xc0\x7b\xc2\x7b\xc3\x7b\xc4\x7b\xc5\x7b\xc8\x7b\xc9\x7b\xca\x7b\xcb\x7b\xcd\x7b\xce\x7b\xcf\x7b\xd0\x7b\xd2\x7b\xd4\x7b\xd5\x7b\xd6\x7b\xd7\x7b\xd8\x7b\xdb\x7b\xdc\x7b\xde\x7b\xdf\x7b\xe0\x7b\xe2\x7b\xe3\x7b\xe4\x7b\xe7\x7b\xe8\x7b\xe9\x7b\xeb\x7b\xec\x7b\xed\x7b\xef\x7b\xf0\x7b\xf2\x7b\xf3\x7b\xf4\x7b\xf5\x7b\xf6\x7b\xf8\x7b\xf9\x7b\xfa\x7b\xfb\x7b\xfd\x7b\xff\x7c\x00\x7c\x01\x7c\x02\x7c\x03\x7c\x04\x7c\x05\x7c\x06\x7c\x08\x7c\x09\x7c\x0a\x7c\x0d\x7c\x0e\x7c\x10\x7c\x11\x7c\x12\x7c\x13\x7c\x14\x7c\x15\x7c\x17\x7c\x18\x7c\x19\x7c\x1a\x7c\x1b\x7c\x1c\x7c\x1d\x7c\x1e\x7c\x20\x7c\x21\x7c\x22\x7c\x23\x7c\x24\x7c\x25\x7c\x28\x7c\x29\x7c\x2b\x7c\x2c\x7c\x2d\x7c\x2e\x7c\x2f\x7c\x30\x7c\x31\x7c\x32\x7c\x33\x7c\x34\x7c\x35\x7c\x36\x7c\x37\x7c\x39\x7c\x3a\x7c\x3b\x00\x00\x00\x00", /* aa00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x3c\x7c\x3d\x7c\x3e\x7c\x42\x7c\x43\x7c\x44\x7c\x45\x7c\x46\x7c\x47\x7c\x48\x7c\x49\x7c\x4a\x7c\x4b\x7c\x4c\x7c\x4e\x7c\x4f\x7c\x50\x7c\x51\x7c\x52\x7c\x53\x7c\x54\x7c\x55\x7c\x56\x7c\x57\x7c\x58\x7c\x59\x7c\x5a\x7c\x5b\x7c\x5c\x7c\x5d\x7c\x5e\x7c\x5f\x7c\x60\x7c\x61\x7c\x62\x7c\x63\x7c\x64\x7c\x65\x7c\x66\x7c\x67\x7c\x68\x7c\x69\x7c\x6a\x7c\x6b\x7c\x6c\x7c\x6d\x7c\x6e\x7c\x6f\x7c\x70\x7c\x71\x7c\x72\x7c\x75\x7c\x76\x7c\x77\x7c\x78\x7c\x79\x7c\x7a\x7c\x7e\x7c\x7f\x7c\x80\x7c\x81\x7c\x82\x7c\x83", /* aa80 */ "\x00\x00\x7c\x84\x7c\x85\x7c\x86\x7c\x87\x7c\x88\x7c\x8a\x7c\x8b\x7c\x8c\x7c\x8d\x7c\x8e\x7c\x8f\x7c\x90\x7c\x93\x7c\x94\x7c\x96\x7c\x99\x7c\x9a\x7c\x9b\x7c\xa0\x7c\xa1\x7c\xa3\x7c\xa6\x7c\xa7\x7c\xa8\x7c\xa9\x7c\xab\x7c\xac\x7c\xad\x7c\xaf\x7c\xb0\x7c\xb4\x7c\xb5\x7c\xb6\x7c\xb7\x7c\xb8\x7c\xba\x7c\xbb\x7c\xbf\x7c\xc0\x7c\xc2\x7c\xc3\x7c\xc4\x7c\xc6\x7c\xc9\x7c\xcb\x7c\xce\x7c\xcf\x7c\xd0\x7c\xd1\x7c\xd2\x7c\xd3\x7c\xd4\x7c\xd8\x7c\xda\x7c\xdb\x7c\xdd\x7c\xde\x7c\xe1\x7c\xe2\x7c\xe3\x7c\xe4\x7c\xe5\x7c\xe6\x7c\xe7\x7c\xe9\x7c\xea\x7c\xeb\x7c\xec\x7c\xed\x7c\xee\x7c\xf0\x7c\xf1\x7c\xf2\x7c\xf3\x7c\xf4\x7c\xf5\x7c\xf6\x7c\xf7\x7c\xf9\x7c\xfa\x7c\xfc\x7c\xfd\x7c\xfe\x7c\xff\x7d\x00\x7d\x01\x7d\x02\x7d\x03\x7d\x04\x7d\x05\x7d\x06\x7d\x07\x7d\x08\x7d\x09\x7d\x0b\x7d\x0c\x7d\x0d\x7d\x0e\x7d\x0f\x7d\x10\x7d\x11\x7d\x12\x7d\x13\x7d\x14\x7d\x15\x7d\x16\x7d\x17\x7d\x18\x7d\x19\x7d\x1a\x7d\x1b\x7d\x1c\x7d\x1d\x7d\x1e\x7d\x1f\x7d\x21\x7d\x23\x7d\x24\x7d\x25\x7d\x26\x7d\x28\x7d\x29\x7d\x2a\x7d\x2c\x7d\x2d\x00\x00\x00\x00", /* ab00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x2e\x7d\x30\x7d\x31\x7d\x32\x7d\x33\x7d\x34\x7d\x35\x7d\x36\x7d\x37\x7d\x38\x7d\x39\x7d\x3a\x7d\x3b\x7d\x3c\x7d\x3d\x7d\x3e\x7d\x3f\x7d\x40\x7d\x41\x7d\x42\x7d\x43\x7d\x44\x7d\x45\x7d\x46\x7d\x47\x7d\x48\x7d\x49\x7d\x4a\x7d\x4b\x7d\x4c\x7d\x4d\x7d\x4e\x7d\x4f\x7d\x50\x7d\x51\x7d\x52\x7d\x53\x7d\x54\x7d\x55\x7d\x56\x7d\x57\x7d\x58\x7d\x59\x7d\x5a\x7d\x5b\x7d\x5c\x7d\x5d\x7d\x5e\x7d\x5f\x7d\x60\x7d\x61\x7d\x62\x7d\x63\x7d\x64\x7d\x65\x7d\x66\x7d\x67\x7d\x68\x7d\x69\x7d\x6a\x7d\x6b\x7d\x6c\x7d\x6d", /* ab80 */ "\x00\x00\x7d\x6f\x7d\x70\x7d\x71\x7d\x72\x7d\x73\x7d\x74\x7d\x75\x7d\x76\x7d\x78\x7d\x79\x7d\x7a\x7d\x7b\x7d\x7c\x7d\x7d\x7d\x7e\x7d\x7f\x7d\x80\x7d\x81\x7d\x82\x7d\x83\x7d\x84\x7d\x85\x7d\x86\x7d\x87\x7d\x88\x7d\x89\x7d\x8a\x7d\x8b\x7d\x8c\x7d\x8d\x7d\x8e\x7d\x8f\x7d\x90\x7d\x91\x7d\x92\x7d\x93\x7d\x94\x7d\x95\x7d\x96\x7d\x97\x7d\x98\x7d\x99\x7d\x9a\x7d\x9b\x7d\x9c\x7d\x9d\x7d\x9e\x7d\x9f\x7d\xa0\x7d\xa1\x7d\xa2\x7d\xa3\x7d\xa4\x7d\xa5\x7d\xa7\x7d\xa8\x7d\xa9\x7d\xaa\x7d\xab\x7d\xac\x7d\xad\x7d\xaf\x7d\xb0\x7d\xb1\x7d\xb2\x7d\xb3\x7d\xb4\x7d\xb5\x7d\xb6\x7d\xb7\x7d\xb8\x7d\xb9\x7d\xba\x7d\xbb\x7d\xbc\x7d\xbd\x7d\xbe\x7d\xbf\x7d\xc0\x7d\xc1\x7d\xc2\x7d\xc3\x7d\xc4\x7d\xc5\x7d\xc6\x7d\xc7\x7d\xc8\x7d\xc9\x7d\xca\x7d\xcb\x7d\xcc\x7d\xcd\x7d\xce\x7d\xcf\x7d\xd0\x7d\xd1\x7d\xd2\x7d\xd3\x7d\xd4\x7d\xd5\x7d\xd6\x7d\xd7\x7d\xd8\x7d\xd9\x7d\xda\x7d\xdb\x7d\xdc\x7d\xdd\x7d\xde\x7d\xdf\x7d\xe0\x7d\xe1\x7d\xe2\x7d\xe3\x7d\xe4\x7d\xe5\x7d\xe6\x7d\xe7\x7d\xe8\x7d\xe9\x7d\xea\x7d\xeb\x7d\xec\x7d\xed\x7d\xee\x00\x00\x00\x00", /* ac00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7d\xef\x7d\xf0\x7d\xf1\x7d\xf2\x7d\xf3\x7d\xf4\x7d\xf5\x7d\xf6\x7d\xf7\x7d\xf8\x7d\xf9\x7d\xfa\x7d\xfb\x7d\xfc\x7d\xfd\x7d\xfe\x7d\xff\x7e\x00\x7e\x01\x7e\x02\x7e\x03\x7e\x04\x7e\x05\x7e\x06\x7e\x07\x7e\x08\x7e\x09\x7e\x0a\x7e\x0b\x7e\x0c\x7e\x0d\x7e\x0e\x7e\x0f\x7e\x10\x7e\x11\x7e\x12\x7e\x13\x7e\x14\x7e\x15\x7e\x16\x7e\x17\x7e\x18\x7e\x19\x7e\x1a\x7e\x1b\x7e\x1c\x7e\x1d\x7e\x1e\x7e\x1f\x7e\x20\x7e\x21\x7e\x22\x7e\x23\x7e\x24\x7e\x25\x7e\x26\x7e\x27\x7e\x28\x7e\x29\x7e\x2a\x7e\x2b\x7e\x2c\x7e\x2d", /* ac80 */ "\x00\x00\x7e\x2e\x7e\x2f\x7e\x30\x7e\x31\x7e\x32\x7e\x33\x7e\x34\x7e\x35\x7e\x36\x7e\x37\x7e\x38\x7e\x39\x7e\x3a\x7e\x3c\x7e\x3d\x7e\x3e\x7e\x3f\x7e\x40\x7e\x42\x7e\x43\x7e\x44\x7e\x45\x7e\x46\x7e\x48\x7e\x49\x7e\x4a\x7e\x4b\x7e\x4c\x7e\x4d\x7e\x4e\x7e\x4f\x7e\x50\x7e\x51\x7e\x52\x7e\x53\x7e\x54\x7e\x55\x7e\x56\x7e\x57\x7e\x58\x7e\x59\x7e\x5a\x7e\x5b\x7e\x5c\x7e\x5d\x7e\x5e\x7e\x5f\x7e\x60\x7e\x61\x7e\x62\x7e\x63\x7e\x64\x7e\x65\x7e\x66\x7e\x67\x7e\x68\x7e\x69\x7e\x6a\x7e\x6b\x7e\x6c\x7e\x6d\x7e\x6e\x7e\x6f\x7e\x70\x7e\x71\x7e\x72\x7e\x73\x7e\x74\x7e\x75\x7e\x76\x7e\x77\x7e\x78\x7e\x79\x7e\x7a\x7e\x7b\x7e\x7c\x7e\x7d\x7e\x7e\x7e\x7f\x7e\x80\x7e\x81\x7e\x83\x7e\x84\x7e\x85\x7e\x86\x7e\x87\x7e\x88\x7e\x89\x7e\x8a\x7e\x8b\x7e\x8c\x7e\x8d\x7e\x8e\x7e\x8f\x7e\x90\x7e\x91\x7e\x92\x7e\x93\x7e\x94\x7e\x95\x7e\x96\x7e\x97\x7e\x98\x7e\x99\x7e\x9a\x7e\x9c\x7e\x9d\x7e\x9e\x7e\xae\x7e\xb4\x7e\xbb\x7e\xbc\x7e\xd6\x7e\xe4\x7e\xec\x7e\xf9\x7f\x0a\x7f\x10\x7f\x1e\x7f\x37\x7f\x39\x7f\x3b\x7f\x3c\x7f\x3d\x7f\x3e\x00\x00\x00\x00", /* ad00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x3f\x7f\x40\x7f\x41\x7f\x43\x7f\x46\x7f\x47\x7f\x48\x7f\x49\x7f\x4a\x7f\x4b\x7f\x4c\x7f\x4d\x7f\x4e\x7f\x4f\x7f\x52\x7f\x53\x7f\x56\x7f\x59\x7f\x5b\x7f\x5c\x7f\x5d\x7f\x5e\x7f\x60\x7f\x63\x7f\x64\x7f\x65\x7f\x66\x7f\x67\x7f\x6b\x7f\x6c\x7f\x6d\x7f\x6f\x7f\x70\x7f\x73\x7f\x75\x7f\x76\x7f\x77\x7f\x78\x7f\x7a\x7f\x7b\x7f\x7c\x7f\x7d\x7f\x7f\x7f\x80\x7f\x82\x7f\x83\x7f\x84\x7f\x85\x7f\x86\x7f\x87\x7f\x88\x7f\x89\x7f\x8b\x7f\x8d\x7f\x8f\x7f\x90\x7f\x91\x7f\x92\x7f\x93\x7f\x95\x7f\x96\x7f\x97\x7f\x98", /* ad80 */ "\x00\x00\x7f\x99\x7f\x9b\x7f\x9c\x7f\xa0\x7f\xa2\x7f\xa3\x7f\xa5\x7f\xa6\x7f\xa8\x7f\xa9\x7f\xaa\x7f\xab\x7f\xac\x7f\xad\x7f\xae\x7f\xb1\x7f\xb3\x7f\xb4\x7f\xb5\x7f\xb6\x7f\xb7\x7f\xba\x7f\xbb\x7f\xbe\x7f\xc0\x7f\xc2\x7f\xc3\x7f\xc4\x7f\xc6\x7f\xc7\x7f\xc8\x7f\xc9\x7f\xcb\x7f\xcd\x7f\xcf\x7f\xd0\x7f\xd1\x7f\xd2\x7f\xd3\x7f\xd6\x7f\xd7\x7f\xd9\x7f\xda\x7f\xdb\x7f\xdc\x7f\xdd\x7f\xde\x7f\xe2\x7f\xe3\x7f\xe4\x7f\xe7\x7f\xe8\x7f\xea\x7f\xeb\x7f\xec\x7f\xed\x7f\xef\x7f\xf2\x7f\xf4\x7f\xf5\x7f\xf6\x7f\xf7\x7f\xf8\x7f\xf9\x7f\xfa\x7f\xfd\x7f\xfe\x7f\xff\x80\x02\x80\x07\x80\x08\x80\x09\x80\x0a\x80\x0e\x80\x0f\x80\x11\x80\x13\x80\x1a\x80\x1b\x80\x1d\x80\x1e\x80\x1f\x80\x21\x80\x23\x80\x24\x80\x2b\x80\x2c\x80\x2d\x80\x2e\x80\x2f\x80\x30\x80\x32\x80\x34\x80\x39\x80\x3a\x80\x3c\x80\x3e\x80\x40\x80\x41\x80\x44\x80\x45\x80\x47\x80\x48\x80\x49\x80\x4e\x80\x4f\x80\x50\x80\x51\x80\x53\x80\x55\x80\x56\x80\x57\x80\x59\x80\x5b\x80\x5c\x80\x5d\x80\x5e\x80\x5f\x80\x60\x80\x61\x80\x62\x80\x63\x80\x64\x80\x65\x80\x66\x00\x00\x00\x00", /* ae00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x67\x80\x68\x80\x6b\x80\x6c\x80\x6d\x80\x6e\x80\x6f\x80\x70\x80\x72\x80\x73\x80\x74\x80\x75\x80\x76\x80\x77\x80\x78\x80\x79\x80\x7a\x80\x7b\x80\x7c\x80\x7d\x80\x7e\x80\x81\x80\x82\x80\x85\x80\x88\x80\x8a\x80\x8d\x80\x8e\x80\x8f\x80\x90\x80\x91\x80\x92\x80\x94\x80\x95\x80\x97\x80\x99\x80\x9e\x80\xa3\x80\xa6\x80\xa7\x80\xa8\x80\xac\x80\xb0\x80\xb3\x80\xb5\x80\xb6\x80\xb8\x80\xb9\x80\xbb\x80\xc5\x80\xc7\x80\xc8\x80\xc9\x80\xca\x80\xcb\x80\xcf\x80\xd0\x80\xd1\x80\xd2\x80\xd3\x80\xd4\x80\xd5\x80\xd8", /* ae80 */ "\x00\x00\x80\xdf\x80\xe0\x80\xe2\x80\xe3\x80\xe6\x80\xee\x80\xf5\x80\xf7\x80\xf9\x80\xfb\x80\xfe\x80\xff\x81\x00\x81\x01\x81\x03\x81\x04\x81\x05\x81\x07\x81\x08\x81\x0b\x81\x0c\x81\x15\x81\x17\x81\x19\x81\x1b\x81\x1c\x81\x1d\x81\x1f\x81\x20\x81\x21\x81\x22\x81\x23\x81\x24\x81\x25\x81\x26\x81\x27\x81\x28\x81\x29\x81\x2a\x81\x2b\x81\x2d\x81\x2e\x81\x30\x81\x33\x81\x34\x81\x35\x81\x37\x81\x39\x81\x3a\x81\x3b\x81\x3c\x81\x3d\x81\x3f\x81\x40\x81\x41\x81\x42\x81\x43\x81\x44\x81\x45\x81\x47\x81\x49\x81\x4d\x81\x4e\x81\x4f\x81\x52\x81\x56\x81\x57\x81\x58\x81\x5b\x81\x5c\x81\x5d\x81\x5e\x81\x5f\x81\x61\x81\x62\x81\x63\x81\x64\x81\x66\x81\x68\x81\x6a\x81\x6b\x81\x6c\x81\x6f\x81\x72\x81\x73\x81\x75\x81\x76\x81\x77\x81\x78\x81\x81\x81\x83\x81\x84\x81\x85\x81\x86\x81\x87\x81\x89\x81\x8b\x81\x8c\x81\x8d\x81\x8e\x81\x90\x81\x92\x81\x93\x81\x94\x81\x95\x81\x96\x81\x97\x81\x99\x81\x9a\x81\x9e\x81\x9f\x81\xa0\x81\xa1\x81\xa2\x81\xa4\x81\xa5\x81\xa7\x81\xa9\x81\xab\x81\xac\x81\xad\x81\xae\x81\xaf\x81\xb0\x81\xb1\x00\x00\x00\x00", /* af00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xb2\x81\xb4\x81\xb5\x81\xb6\x81\xb7\x81\xb8\x81\xb9\x81\xbc\x81\xbd\x81\xbe\x81\xbf\x81\xc4\x81\xc5\x81\xc7\x81\xc8\x81\xc9\x81\xcb\x81\xcd\x81\xce\x81\xcf\x81\xd0\x81\xd1\x81\xd2\x81\xd3\x81\xd4\x81\xd5\x81\xd6\x81\xd7\x81\xd8\x81\xd9\x81\xda\x81\xdb\x81\xdc\x81\xdd\x81\xde\x81\xdf\x81\xe0\x81\xe1\x81\xe2\x81\xe4\x81\xe5\x81\xe6\x81\xe8\x81\xe9\x81\xeb\x81\xee\x81\xef\x81\xf0\x81\xf1\x81\xf2\x81\xf5\x81\xf6\x81\xf7\x81\xf8\x81\xf9\x81\xfa\x81\xfd\x81\xff\x82\x03\x82\x07\x82\x08\x82\x09\x82\x0a", /* af80 */ "\x00\x00\x82\x0b\x82\x0e\x82\x0f\x82\x11\x82\x13\x82\x15\x82\x16\x82\x17\x82\x18\x82\x19\x82\x1a\x82\x1d\x82\x20\x82\x24\x82\x25\x82\x26\x82\x27\x82\x29\x82\x2e\x82\x32\x82\x3a\x82\x3c\x82\x3d\x82\x3f\x82\x40\x82\x41\x82\x42\x82\x43\x82\x45\x82\x46\x82\x48\x82\x4a\x82\x4c\x82\x4d\x82\x4e\x82\x50\x82\x51\x82\x52\x82\x53\x82\x54\x82\x55\x82\x56\x82\x57\x82\x59\x82\x5b\x82\x5c\x82\x5d\x82\x5e\x82\x60\x82\x61\x82\x62\x82\x63\x82\x64\x82\x65\x82\x66\x82\x67\x82\x69\x82\x6a\x82\x6b\x82\x6c\x82\x6d\x82\x71\x82\x75\x82\x76\x82\x77\x82\x78\x82\x7b\x82\x7c\x82\x80\x82\x81\x82\x83\x82\x85\x82\x86\x82\x87\x82\x89\x82\x8c\x82\x90\x82\x93\x82\x94\x82\x95\x82\x96\x82\x9a\x82\x9b\x82\x9e\x82\xa0\x82\xa2\x82\xa3\x82\xa7\x82\xb2\x82\xb5\x82\xb6\x82\xba\x82\xbb\x82\xbc\x82\xbf\x82\xc0\x82\xc2\x82\xc3\x82\xc5\x82\xc6\x82\xc9\x82\xd0\x82\xd6\x82\xd9\x82\xda\x82\xdd\x82\xe2\x82\xe7\x82\xe8\x82\xe9\x82\xea\x82\xec\x82\xed\x82\xee\x82\xf0\x82\xf2\x82\xf3\x82\xf5\x82\xf6\x82\xf8\x82\xfa\x82\xfc\x82\xfd\x82\xfe\x82\xff\x00\x00\x00\x00", /* b000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x83\x0a\x83\x0b\x83\x0d\x83\x10\x83\x12\x83\x13\x83\x16\x83\x18\x83\x19\x83\x1d\x83\x1e\x83\x1f\x83\x20\x83\x21\x83\x22\x83\x23\x83\x24\x83\x25\x83\x26\x83\x29\x83\x2a\x83\x2e\x83\x30\x83\x32\x83\x37\x83\x3b\x83\x3d\x83\x3e\x83\x3f\x83\x41\x83\x42\x83\x44\x83\x45\x83\x48\x83\x4a\x83\x4b\x83\x4c\x83\x4d\x83\x4e\x83\x53\x83\x55\x83\x56\x83\x57\x83\x58\x83\x59\x83\x5d\x83\x62\x83\x70\x83\x71\x83\x72\x83\x73\x83\x74\x83\x75\x83\x76\x83\x79\x83\x7a\x83\x7e\x83\x7f\x83\x80\x83\x81\x83\x82\x83\x83", /* b080 */ "\x00\x00\x83\x84\x83\x87\x83\x88\x83\x8a\x83\x8b\x83\x8c\x83\x8d\x83\x8f\x83\x90\x83\x91\x83\x94\x83\x95\x83\x96\x83\x97\x83\x99\x83\x9a\x83\x9d\x83\x9f\x83\xa1\x83\xa2\x83\xa3\x83\xa4\x83\xa5\x83\xa6\x83\xa7\x83\xac\x83\xad\x83\xae\x83\xaf\x83\xb5\x83\xbb\x83\xbe\x83\xbf\x83\xc2\x83\xc3\x83\xc4\x83\xc6\x83\xc8\x83\xc9\x83\xcb\x83\xcd\x83\xce\x83\xd0\x83\xd1\x83\xd2\x83\xd3\x83\xd5\x83\xd7\x83\xd9\x83\xda\x83\xdb\x83\xde\x83\xe2\x83\xe3\x83\xe4\x83\xe6\x83\xe7\x83\xe8\x83\xeb\x83\xec\x83\xed\x83\xee\x83\xef\x83\xf3\x83\xf4\x83\xf5\x83\xf6\x83\xf7\x83\xfa\x83\xfb\x83\xfc\x83\xfe\x83\xff\x84\x00\x84\x02\x84\x05\x84\x07\x84\x08\x84\x09\x84\x0a\x84\x10\x84\x12\x84\x13\x84\x14\x84\x15\x84\x16\x84\x17\x84\x19\x84\x1a\x84\x1b\x84\x1e\x84\x1f\x84\x20\x84\x21\x84\x22\x84\x23\x84\x29\x84\x2a\x84\x2b\x84\x2c\x84\x2d\x84\x2e\x84\x2f\x84\x30\x84\x32\x84\x33\x84\x34\x84\x35\x84\x36\x84\x37\x84\x39\x84\x3a\x84\x3b\x84\x3e\x84\x3f\x84\x40\x84\x41\x84\x42\x84\x43\x84\x44\x84\x45\x84\x47\x84\x48\x84\x49\x84\x4a\x00\x00\x00\x00", /* b100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x4b\x84\x4c\x84\x4d\x84\x4e\x84\x4f\x84\x50\x84\x52\x84\x53\x84\x54\x84\x55\x84\x56\x84\x58\x84\x5d\x84\x5e\x84\x5f\x84\x60\x84\x62\x84\x64\x84\x65\x84\x66\x84\x67\x84\x68\x84\x6a\x84\x6e\x84\x6f\x84\x70\x84\x72\x84\x74\x84\x77\x84\x79\x84\x7b\x84\x7c\x84\x7d\x84\x7e\x84\x7f\x84\x80\x84\x81\x84\x83\x84\x84\x84\x85\x84\x86\x84\x8a\x84\x8d\x84\x8f\x84\x90\x84\x91\x84\x92\x84\x93\x84\x94\x84\x95\x84\x96\x84\x98\x84\x9a\x84\x9b\x84\x9d\x84\x9e\x84\x9f\x84\xa0\x84\xa2\x84\xa3\x84\xa4\x84\xa5\x84\xa6", /* b180 */ "\x00\x00\x84\xa7\x84\xa8\x84\xa9\x84\xaa\x84\xab\x84\xac\x84\xad\x84\xae\x84\xb0\x84\xb1\x84\xb3\x84\xb5\x84\xb6\x84\xb7\x84\xbb\x84\xbc\x84\xbe\x84\xc0\x84\xc2\x84\xc3\x84\xc5\x84\xc6\x84\xc7\x84\xc8\x84\xcb\x84\xcc\x84\xce\x84\xcf\x84\xd2\x84\xd4\x84\xd5\x84\xd7\x84\xd8\x84\xd9\x84\xda\x84\xdb\x84\xdc\x84\xde\x84\xe1\x84\xe2\x84\xe4\x84\xe7\x84\xe8\x84\xe9\x84\xea\x84\xeb\x84\xed\x84\xee\x84\xef\x84\xf1\x84\xf2\x84\xf3\x84\xf4\x84\xf5\x84\xf6\x84\xf7\x84\xf8\x84\xf9\x84\xfa\x84\xfb\x84\xfd\x84\xfe\x85\x00\x85\x01\x85\x02\x85\x03\x85\x04\x85\x05\x85\x06\x85\x07\x85\x08\x85\x09\x85\x0a\x85\x0b\x85\x0d\x85\x0e\x85\x0f\x85\x10\x85\x12\x85\x14\x85\x15\x85\x16\x85\x18\x85\x19\x85\x1b\x85\x1c\x85\x1d\x85\x1e\x85\x20\x85\x22\x85\x23\x85\x24\x85\x25\x85\x26\x85\x27\x85\x28\x85\x29\x85\x2a\x85\x2d\x85\x2e\x85\x2f\x85\x30\x85\x31\x85\x32\x85\x33\x85\x34\x85\x35\x85\x36\x85\x3e\x85\x3f\x85\x40\x85\x41\x85\x42\x85\x44\x85\x45\x85\x46\x85\x47\x85\x4b\x85\x4c\x85\x4d\x85\x4e\x85\x4f\x85\x50\x85\x51\x85\x52\x00\x00\x00\x00", /* b200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85\x53\x85\x54\x85\x55\x85\x57\x85\x58\x85\x5a\x85\x5b\x85\x5c\x85\x5d\x85\x5f\x85\x60\x85\x61\x85\x62\x85\x63\x85\x65\x85\x66\x85\x67\x85\x69\x85\x6a\x85\x6b\x85\x6c\x85\x6d\x85\x6e\x85\x6f\x85\x70\x85\x71\x85\x73\x85\x75\x85\x76\x85\x77\x85\x78\x85\x7c\x85\x7d\x85\x7f\x85\x80\x85\x81\x85\x82\x85\x83\x85\x86\x85\x88\x85\x89\x85\x8a\x85\x8b\x85\x8c\x85\x8d\x85\x8e\x85\x90\x85\x91\x85\x92\x85\x93\x85\x94\x85\x95\x85\x96\x85\x97\x85\x98\x85\x99\x85\x9a\x85\x9d\x85\x9e\x85\x9f\x85\xa0\x85\xa1\x85\xa2", /* b280 */ "\x00\x00\x85\xa3\x85\xa5\x85\xa6\x85\xa7\x85\xa9\x85\xab\x85\xac\x85\xad\x85\xb1\x85\xb2\x85\xb3\x85\xb4\x85\xb5\x85\xb6\x85\xb8\x85\xba\x85\xbb\x85\xbc\x85\xbd\x85\xbe\x85\xbf\x85\xc0\x85\xc2\x85\xc3\x85\xc4\x85\xc5\x85\xc6\x85\xc7\x85\xc8\x85\xca\x85\xcb\x85\xcc\x85\xcd\x85\xce\x85\xd1\x85\xd2\x85\xd4\x85\xd6\x85\xd7\x85\xd8\x85\xd9\x85\xda\x85\xdb\x85\xdd\x85\xde\x85\xdf\x85\xe0\x85\xe1\x85\xe2\x85\xe3\x85\xe5\x85\xe6\x85\xe7\x85\xe8\x85\xea\x85\xeb\x85\xec\x85\xed\x85\xee\x85\xef\x85\xf0\x85\xf1\x85\xf2\x85\xf3\x85\xf4\x85\xf5\x85\xf6\x85\xf7\x85\xf8\x85\xf9\x85\xfa\x85\xfc\x85\xfd\x85\xfe\x86\x00\x86\x01\x86\x02\x86\x03\x86\x04\x86\x06\x86\x07\x86\x08\x86\x09\x86\x0a\x86\x0b\x86\x0c\x86\x0d\x86\x0e\x86\x0f\x86\x10\x86\x12\x86\x13\x86\x14\x86\x15\x86\x17\x86\x18\x86\x19\x86\x1a\x86\x1b\x86\x1c\x86\x1d\x86\x1e\x86\x1f\x86\x20\x86\x21\x86\x22\x86\x23\x86\x24\x86\x25\x86\x26\x86\x28\x86\x2a\x86\x2b\x86\x2c\x86\x2d\x86\x2e\x86\x2f\x86\x30\x86\x31\x86\x32\x86\x33\x86\x34\x86\x35\x86\x36\x86\x37\x00\x00\x00\x00", /* b300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x39\x86\x3a\x86\x3b\x86\x3d\x86\x3e\x86\x3f\x86\x40\x86\x41\x86\x42\x86\x43\x86\x44\x86\x45\x86\x46\x86\x47\x86\x48\x86\x49\x86\x4a\x86\x4b\x86\x4c\x86\x52\x86\x53\x86\x55\x86\x56\x86\x57\x86\x58\x86\x59\x86\x5b\x86\x5c\x86\x5d\x86\x5f\x86\x60\x86\x61\x86\x63\x86\x64\x86\x65\x86\x66\x86\x67\x86\x68\x86\x69\x86\x6a\x86\x6d\x86\x6f\x86\x70\x86\x72\x86\x73\x86\x74\x86\x75\x86\x76\x86\x77\x86\x78\x86\x83\x86\x84\x86\x85\x86\x86\x86\x87\x86\x88\x86\x89\x86\x8e\x86\x8f\x86\x90\x86\x91\x86\x92\x86\x94", /* b380 */ "\x00\x00\x86\x96\x86\x97\x86\x98\x86\x99\x86\x9a\x86\x9b\x86\x9e\x86\x9f\x86\xa0\x86\xa1\x86\xa2\x86\xa5\x86\xa6\x86\xab\x86\xad\x86\xae\x86\xb2\x86\xb3\x86\xb7\x86\xb8\x86\xb9\x86\xbb\x86\xbc\x86\xbd\x86\xbe\x86\xbf\x86\xc1\x86\xc2\x86\xc3\x86\xc5\x86\xc8\x86\xcc\x86\xcd\x86\xd2\x86\xd3\x86\xd5\x86\xd6\x86\xd7\x86\xda\x86\xdc\x86\xdd\x86\xe0\x86\xe1\x86\xe2\x86\xe3\x86\xe5\x86\xe6\x86\xe7\x86\xe8\x86\xea\x86\xeb\x86\xec\x86\xef\x86\xf5\x86\xf6\x86\xf7\x86\xfa\x86\xfb\x86\xfc\x86\xfd\x86\xff\x87\x01\x87\x04\x87\x05\x87\x06\x87\x0b\x87\x0c\x87\x0e\x87\x0f\x87\x10\x87\x11\x87\x14\x87\x16\x87\x19\x87\x1b\x87\x1d\x87\x1f\x87\x20\x87\x24\x87\x26\x87\x27\x87\x28\x87\x2a\x87\x2b\x87\x2c\x87\x2d\x87\x2f\x87\x30\x87\x32\x87\x33\x87\x35\x87\x36\x87\x38\x87\x39\x87\x3a\x87\x3c\x87\x3d\x87\x40\x87\x41\x87\x42\x87\x43\x87\x44\x87\x45\x87\x46\x87\x4a\x87\x4b\x87\x4d\x87\x4f\x87\x50\x87\x51\x87\x52\x87\x54\x87\x55\x87\x56\x87\x58\x87\x5a\x87\x5b\x87\x5c\x87\x5d\x87\x5e\x87\x5f\x87\x61\x87\x62\x87\x66\x87\x67\x00\x00\x00\x00", /* b400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x68\x87\x69\x87\x6a\x87\x6b\x87\x6c\x87\x6d\x87\x6f\x87\x71\x87\x72\x87\x73\x87\x75\x87\x77\x87\x78\x87\x79\x87\x7a\x87\x7f\x87\x80\x87\x81\x87\x84\x87\x86\x87\x87\x87\x89\x87\x8a\x87\x8c\x87\x8e\x87\x8f\x87\x90\x87\x91\x87\x92\x87\x94\x87\x95\x87\x96\x87\x98\x87\x99\x87\x9a\x87\x9b\x87\x9c\x87\x9d\x87\x9e\x87\xa0\x87\xa1\x87\xa2\x87\xa3\x87\xa4\x87\xa5\x87\xa6\x87\xa7\x87\xa9\x87\xaa\x87\xae\x87\xb0\x87\xb1\x87\xb2\x87\xb4\x87\xb6\x87\xb7\x87\xb8\x87\xb9\x87\xbb\x87\xbc\x87\xbe\x87\xbf\x87\xc1", /* b480 */ "\x00\x00\x87\xc2\x87\xc3\x87\xc4\x87\xc5\x87\xc7\x87\xc8\x87\xc9\x87\xcc\x87\xcd\x87\xce\x87\xcf\x87\xd0\x87\xd4\x87\xd5\x87\xd6\x87\xd7\x87\xd8\x87\xd9\x87\xda\x87\xdc\x87\xdd\x87\xde\x87\xdf\x87\xe1\x87\xe2\x87\xe3\x87\xe4\x87\xe6\x87\xe7\x87\xe8\x87\xe9\x87\xeb\x87\xec\x87\xed\x87\xef\x87\xf0\x87\xf1\x87\xf2\x87\xf3\x87\xf4\x87\xf5\x87\xf6\x87\xf7\x87\xf8\x87\xfa\x87\xfb\x87\xfc\x87\xfd\x87\xff\x88\x00\x88\x01\x88\x02\x88\x04\x88\x05\x88\x06\x88\x07\x88\x08\x88\x09\x88\x0b\x88\x0c\x88\x0d\x88\x0e\x88\x0f\x88\x10\x88\x11\x88\x12\x88\x14\x88\x17\x88\x18\x88\x19\x88\x1a\x88\x1c\x88\x1d\x88\x1e\x88\x1f\x88\x20\x88\x23\x88\x24\x88\x25\x88\x26\x88\x27\x88\x28\x88\x29\x88\x2a\x88\x2b\x88\x2c\x88\x2d\x88\x2e\x88\x2f\x88\x30\x88\x31\x88\x33\x88\x34\x88\x35\x88\x36\x88\x37\x88\x38\x88\x3a\x88\x3b\x88\x3d\x88\x3e\x88\x3f\x88\x41\x88\x42\x88\x43\x88\x46\x88\x47\x88\x48\x88\x49\x88\x4a\x88\x4b\x88\x4e\x88\x4f\x88\x50\x88\x51\x88\x52\x88\x53\x88\x55\x88\x56\x88\x58\x88\x5a\x88\x5b\x88\x5c\x88\x5d\x88\x5e\x00\x00\x00\x00", /* b500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x5f\x88\x60\x88\x66\x88\x67\x88\x6a\x88\x6d\x88\x6f\x88\x71\x88\x73\x88\x74\x88\x75\x88\x76\x88\x78\x88\x79\x88\x7a\x88\x7b\x88\x7c\x88\x80\x88\x83\x88\x86\x88\x87\x88\x89\x88\x8a\x88\x8c\x88\x8e\x88\x8f\x88\x90\x88\x91\x88\x93\x88\x94\x88\x95\x88\x97\x88\x98\x88\x99\x88\x9a\x88\x9b\x88\x9d\x88\x9e\x88\x9f\x88\xa0\x88\xa1\x88\xa3\x88\xa5\x88\xa6\x88\xa7\x88\xa8\x88\xa9\x88\xaa\x88\xac\x88\xae\x88\xaf\x88\xb0\x88\xb2\x88\xb3\x88\xb4\x88\xb5\x88\xb6\x88\xb8\x88\xb9\x88\xba\x88\xbb\x88\xbd\x88\xbe", /* b580 */ "\x00\x00\x88\xbf\x88\xc0\x88\xc3\x88\xc4\x88\xc7\x88\xc8\x88\xca\x88\xcb\x88\xcc\x88\xcd\x88\xcf\x88\xd0\x88\xd1\x88\xd3\x88\xd6\x88\xd7\x88\xda\x88\xdb\x88\xdc\x88\xdd\x88\xde\x88\xe0\x88\xe1\x88\xe6\x88\xe7\x88\xe9\x88\xea\x88\xeb\x88\xec\x88\xed\x88\xee\x88\xef\x88\xf2\x88\xf5\x88\xf6\x88\xf7\x88\xfa\x88\xfb\x88\xfd\x88\xff\x89\x00\x89\x01\x89\x03\x89\x04\x89\x05\x89\x06\x89\x07\x89\x08\x89\x09\x89\x0b\x89\x0c\x89\x0d\x89\x0e\x89\x0f\x89\x11\x89\x14\x89\x15\x89\x16\x89\x17\x89\x18\x89\x1c\x89\x1d\x89\x1e\x89\x1f\x89\x20\x89\x22\x89\x23\x89\x24\x89\x26\x89\x27\x89\x28\x89\x29\x89\x2c\x89\x2d\x89\x2e\x89\x2f\x89\x31\x89\x32\x89\x33\x89\x35\x89\x37\x89\x38\x89\x39\x89\x3a\x89\x3b\x89\x3c\x89\x3d\x89\x3e\x89\x3f\x89\x40\x89\x42\x89\x43\x89\x45\x89\x46\x89\x47\x89\x48\x89\x49\x89\x4a\x89\x4b\x89\x4c\x89\x4d\x89\x4e\x89\x4f\x89\x50\x89\x51\x89\x52\x89\x53\x89\x54\x89\x55\x89\x56\x89\x57\x89\x58\x89\x59\x89\x5a\x89\x5b\x89\x5c\x89\x5d\x89\x60\x89\x61\x89\x62\x89\x63\x89\x64\x89\x65\x89\x67\x89\x68\x00\x00\x00\x00", /* b600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x69\x89\x6a\x89\x6b\x89\x6c\x89\x6d\x89\x6e\x89\x6f\x89\x70\x89\x71\x89\x72\x89\x73\x89\x74\x89\x75\x89\x76\x89\x77\x89\x78\x89\x79\x89\x7a\x89\x7c\x89\x7d\x89\x7e\x89\x80\x89\x82\x89\x84\x89\x85\x89\x87\x89\x88\x89\x89\x89\x8a\x89\x8b\x89\x8c\x89\x8d\x89\x8e\x89\x8f\x89\x90\x89\x91\x89\x92\x89\x93\x89\x94\x89\x95\x89\x96\x89\x97\x89\x98\x89\x99\x89\x9a\x89\x9b\x89\x9c\x89\x9d\x89\x9e\x89\x9f\x89\xa0\x89\xa1\x89\xa2\x89\xa3\x89\xa4\x89\xa5\x89\xa6\x89\xa7\x89\xa8\x89\xa9\x89\xaa\x89\xab\x89\xac", /* b680 */ "\x00\x00\x89\xad\x89\xae\x89\xaf\x89\xb0\x89\xb1\x89\xb2\x89\xb3\x89\xb4\x89\xb5\x89\xb6\x89\xb7\x89\xb8\x89\xb9\x89\xba\x89\xbb\x89\xbc\x89\xbd\x89\xbe\x89\xbf\x89\xc0\x89\xc3\x89\xcd\x89\xd3\x89\xd4\x89\xd5\x89\xd7\x89\xd8\x89\xd9\x89\xdb\x89\xdd\x89\xdf\x89\xe0\x89\xe1\x89\xe2\x89\xe4\x89\xe7\x89\xe8\x89\xe9\x89\xea\x89\xec\x89\xed\x89\xee\x89\xf0\x89\xf1\x89\xf2\x89\xf4\x89\xf5\x89\xf6\x89\xf7\x89\xf8\x89\xf9\x89\xfa\x89\xfb\x89\xfc\x89\xfd\x89\xfe\x89\xff\x8a\x01\x8a\x02\x8a\x03\x8a\x04\x8a\x05\x8a\x06\x8a\x08\x8a\x09\x8a\x0a\x8a\x0b\x8a\x0c\x8a\x0d\x8a\x0e\x8a\x0f\x8a\x10\x8a\x11\x8a\x12\x8a\x13\x8a\x14\x8a\x15\x8a\x16\x8a\x17\x8a\x18\x8a\x19\x8a\x1a\x8a\x1b\x8a\x1c\x8a\x1d\x8a\x1e\x8a\x1f\x8a\x20\x8a\x21\x8a\x22\x8a\x23\x8a\x24\x8a\x25\x8a\x26\x8a\x27\x8a\x28\x8a\x29\x8a\x2a\x8a\x2b\x8a\x2c\x8a\x2d\x8a\x2e\x8a\x2f\x8a\x30\x8a\x31\x8a\x32\x8a\x33\x8a\x34\x8a\x35\x8a\x36\x8a\x37\x8a\x38\x8a\x39\x8a\x3a\x8a\x3b\x8a\x3c\x8a\x3d\x8a\x3f\x8a\x40\x8a\x41\x8a\x42\x8a\x43\x8a\x44\x8a\x45\x8a\x46\x00\x00\x00\x00", /* b700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x47\x8a\x49\x8a\x4a\x8a\x4b\x8a\x4c\x8a\x4d\x8a\x4e\x8a\x4f\x8a\x50\x8a\x51\x8a\x52\x8a\x53\x8a\x54\x8a\x55\x8a\x56\x8a\x57\x8a\x58\x8a\x59\x8a\x5a\x8a\x5b\x8a\x5c\x8a\x5d\x8a\x5e\x8a\x5f\x8a\x60\x8a\x61\x8a\x62\x8a\x63\x8a\x64\x8a\x65\x8a\x66\x8a\x67\x8a\x68\x8a\x69\x8a\x6a\x8a\x6b\x8a\x6c\x8a\x6d\x8a\x6e\x8a\x6f\x8a\x70\x8a\x71\x8a\x72\x8a\x73\x8a\x74\x8a\x75\x8a\x76\x8a\x77\x8a\x78\x8a\x7a\x8a\x7b\x8a\x7c\x8a\x7d\x8a\x7e\x8a\x7f\x8a\x80\x8a\x81\x8a\x82\x8a\x83\x8a\x84\x8a\x85\x8a\x86\x8a\x87", /* b780 */ "\x00\x00\x8a\x88\x8a\x8b\x8a\x8c\x8a\x8d\x8a\x8e\x8a\x8f\x8a\x90\x8a\x91\x8a\x92\x8a\x94\x8a\x95\x8a\x96\x8a\x97\x8a\x98\x8a\x99\x8a\x9a\x8a\x9b\x8a\x9c\x8a\x9d\x8a\x9e\x8a\x9f\x8a\xa0\x8a\xa1\x8a\xa2\x8a\xa3\x8a\xa4\x8a\xa5\x8a\xa6\x8a\xa7\x8a\xa8\x8a\xa9\x8a\xaa\x8a\xab\x8a\xac\x8a\xad\x8a\xae\x8a\xaf\x8a\xb0\x8a\xb1\x8a\xb2\x8a\xb3\x8a\xb4\x8a\xb5\x8a\xb6\x8a\xb7\x8a\xb8\x8a\xb9\x8a\xba\x8a\xbb\x8a\xbc\x8a\xbd\x8a\xbe\x8a\xbf\x8a\xc0\x8a\xc1\x8a\xc2\x8a\xc3\x8a\xc4\x8a\xc5\x8a\xc6\x8a\xc7\x8a\xc8\x8a\xc9\x8a\xca\x8a\xcb\x8a\xcc\x8a\xcd\x8a\xce\x8a\xcf\x8a\xd0\x8a\xd1\x8a\xd2\x8a\xd3\x8a\xd4\x8a\xd5\x8a\xd6\x8a\xd7\x8a\xd8\x8a\xd9\x8a\xda\x8a\xdb\x8a\xdc\x8a\xdd\x8a\xde\x8a\xdf\x8a\xe0\x8a\xe1\x8a\xe2\x8a\xe3\x8a\xe4\x8a\xe5\x8a\xe6\x8a\xe7\x8a\xe8\x8a\xe9\x8a\xea\x8a\xeb\x8a\xec\x8a\xed\x8a\xee\x8a\xef\x8a\xf0\x8a\xf1\x8a\xf2\x8a\xf3\x8a\xf4\x8a\xf5\x8a\xf6\x8a\xf7\x8a\xf8\x8a\xf9\x8a\xfa\x8a\xfb\x8a\xfc\x8a\xfd\x8a\xfe\x8a\xff\x8b\x00\x8b\x01\x8b\x02\x8b\x03\x8b\x04\x8b\x05\x8b\x06\x8b\x08\x00\x00\x00\x00", /* b800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x09\x8b\x0a\x8b\x0b\x8b\x0c\x8b\x0d\x8b\x0e\x8b\x0f\x8b\x10\x8b\x11\x8b\x12\x8b\x13\x8b\x14\x8b\x15\x8b\x16\x8b\x17\x8b\x18\x8b\x19\x8b\x1a\x8b\x1b\x8b\x1c\x8b\x1d\x8b\x1e\x8b\x1f\x8b\x20\x8b\x21\x8b\x22\x8b\x23\x8b\x24\x8b\x25\x8b\x27\x8b\x28\x8b\x29\x8b\x2a\x8b\x2b\x8b\x2c\x8b\x2d\x8b\x2e\x8b\x2f\x8b\x30\x8b\x31\x8b\x32\x8b\x33\x8b\x34\x8b\x35\x8b\x36\x8b\x37\x8b\x38\x8b\x39\x8b\x3a\x8b\x3b\x8b\x3c\x8b\x3d\x8b\x3e\x8b\x3f\x8b\x40\x8b\x41\x8b\x42\x8b\x43\x8b\x44\x8b\x45\x8b\x46\x8b\x47\x8b\x48", /* b880 */ "\x00\x00\x8b\x49\x8b\x4a\x8b\x4b\x8b\x4c\x8b\x4d\x8b\x4e\x8b\x4f\x8b\x50\x8b\x51\x8b\x52\x8b\x53\x8b\x54\x8b\x55\x8b\x56\x8b\x57\x8b\x58\x8b\x59\x8b\x5a\x8b\x5b\x8b\x5c\x8b\x5d\x8b\x5e\x8b\x5f\x8b\x60\x8b\x61\x8b\x62\x8b\x63\x8b\x64\x8b\x65\x8b\x67\x8b\x68\x8b\x69\x8b\x6a\x8b\x6b\x8b\x6d\x8b\x6e\x8b\x6f\x8b\x70\x8b\x71\x8b\x72\x8b\x73\x8b\x74\x8b\x75\x8b\x76\x8b\x77\x8b\x78\x8b\x79\x8b\x7a\x8b\x7b\x8b\x7c\x8b\x7d\x8b\x7e\x8b\x7f\x8b\x80\x8b\x81\x8b\x82\x8b\x83\x8b\x84\x8b\x85\x8b\x86\x8b\x87\x8b\x88\x8b\x89\x8b\x8a\x8b\x8b\x8b\x8c\x8b\x8d\x8b\x8e\x8b\x8f\x8b\x90\x8b\x91\x8b\x92\x8b\x93\x8b\x94\x8b\x95\x8b\x96\x8b\x97\x8b\x98\x8b\x99\x8b\x9a\x8b\x9b\x8b\x9c\x8b\x9d\x8b\x9e\x8b\x9f\x8b\xac\x8b\xb1\x8b\xbb\x8b\xc7\x8b\xd0\x8b\xea\x8c\x09\x8c\x1e\x8c\x38\x8c\x39\x8c\x3a\x8c\x3b\x8c\x3c\x8c\x3d\x8c\x3e\x8c\x3f\x8c\x40\x8c\x42\x8c\x43\x8c\x44\x8c\x45\x8c\x48\x8c\x4a\x8c\x4b\x8c\x4d\x8c\x4e\x8c\x4f\x8c\x50\x8c\x51\x8c\x52\x8c\x53\x8c\x54\x8c\x56\x8c\x57\x8c\x58\x8c\x59\x8c\x5b\x8c\x5c\x8c\x5d\x8c\x5e\x00\x00\x00\x00", /* b900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x5f\x8c\x60\x8c\x63\x8c\x64\x8c\x65\x8c\x66\x8c\x67\x8c\x68\x8c\x69\x8c\x6c\x8c\x6d\x8c\x6e\x8c\x6f\x8c\x70\x8c\x71\x8c\x72\x8c\x74\x8c\x75\x8c\x76\x8c\x77\x8c\x7b\x8c\x7c\x8c\x7d\x8c\x7e\x8c\x7f\x8c\x80\x8c\x81\x8c\x83\x8c\x84\x8c\x86\x8c\x87\x8c\x88\x8c\x8b\x8c\x8d\x8c\x8e\x8c\x8f\x8c\x90\x8c\x91\x8c\x92\x8c\x93\x8c\x95\x8c\x96\x8c\x97\x8c\x99\x8c\x9a\x8c\x9b\x8c\x9c\x8c\x9d\x8c\x9e\x8c\x9f\x8c\xa0\x8c\xa1\x8c\xa2\x8c\xa3\x8c\xa4\x8c\xa5\x8c\xa6\x8c\xa7\x8c\xa8\x8c\xa9\x8c\xaa\x8c\xab\x8c\xac", /* b980 */ "\x00\x00\x8c\xad\x8c\xae\x8c\xaf\x8c\xb0\x8c\xb1\x8c\xb2\x8c\xb3\x8c\xb4\x8c\xb5\x8c\xb6\x8c\xb7\x8c\xb8\x8c\xb9\x8c\xba\x8c\xbb\x8c\xbc\x8c\xbd\x8c\xbe\x8c\xbf\x8c\xc0\x8c\xc1\x8c\xc2\x8c\xc3\x8c\xc4\x8c\xc5\x8c\xc6\x8c\xc7\x8c\xc8\x8c\xc9\x8c\xca\x8c\xcb\x8c\xcc\x8c\xcd\x8c\xce\x8c\xcf\x8c\xd0\x8c\xd1\x8c\xd2\x8c\xd3\x8c\xd4\x8c\xd5\x8c\xd6\x8c\xd7\x8c\xd8\x8c\xd9\x8c\xda\x8c\xdb\x8c\xdc\x8c\xdd\x8c\xde\x8c\xdf\x8c\xe0\x8c\xe1\x8c\xe2\x8c\xe3\x8c\xe4\x8c\xe5\x8c\xe6\x8c\xe7\x8c\xe8\x8c\xe9\x8c\xea\x8c\xeb\x8c\xec\x8c\xed\x8c\xee\x8c\xef\x8c\xf0\x8c\xf1\x8c\xf2\x8c\xf3\x8c\xf4\x8c\xf5\x8c\xf6\x8c\xf7\x8c\xf8\x8c\xf9\x8c\xfa\x8c\xfb\x8c\xfc\x8c\xfd\x8c\xfe\x8c\xff\x8d\x00\x8d\x01\x8d\x02\x8d\x03\x8d\x04\x8d\x05\x8d\x06\x8d\x07\x8d\x08\x8d\x09\x8d\x0a\x8d\x0b\x8d\x0c\x8d\x0d\x8d\x0e\x8d\x0f\x8d\x10\x8d\x11\x8d\x12\x8d\x13\x8d\x14\x8d\x15\x8d\x16\x8d\x17\x8d\x18\x8d\x19\x8d\x1a\x8d\x1b\x8d\x1c\x8d\x20\x8d\x51\x8d\x52\x8d\x57\x8d\x5f\x8d\x65\x8d\x68\x8d\x69\x8d\x6a\x8d\x6c\x8d\x6e\x8d\x6f\x8d\x71\x00\x00\x00\x00", /* ba00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x72\x8d\x78\x8d\x79\x8d\x7a\x8d\x7b\x8d\x7c\x8d\x7d\x8d\x7e\x8d\x7f\x8d\x80\x8d\x82\x8d\x83\x8d\x86\x8d\x87\x8d\x88\x8d\x89\x8d\x8c\x8d\x8d\x8d\x8e\x8d\x8f\x8d\x90\x8d\x92\x8d\x93\x8d\x95\x8d\x96\x8d\x97\x8d\x98\x8d\x99\x8d\x9a\x8d\x9b\x8d\x9c\x8d\x9d\x8d\x9e\x8d\xa0\x8d\xa1\x8d\xa2\x8d\xa4\x8d\xa5\x8d\xa6\x8d\xa7\x8d\xa8\x8d\xa9\x8d\xaa\x8d\xab\x8d\xac\x8d\xad\x8d\xae\x8d\xaf\x8d\xb0\x8d\xb2\x8d\xb6\x8d\xb7\x8d\xb9\x8d\xbb\x8d\xbd\x8d\xc0\x8d\xc1\x8d\xc2\x8d\xc5\x8d\xc7\x8d\xc8\x8d\xc9\x8d\xca", /* ba80 */ "\x00\x00\x8d\xcd\x8d\xd0\x8d\xd2\x8d\xd3\x8d\xd4\x8d\xd5\x8d\xd8\x8d\xd9\x8d\xdc\x8d\xe0\x8d\xe1\x8d\xe2\x8d\xe5\x8d\xe6\x8d\xe7\x8d\xe9\x8d\xed\x8d\xee\x8d\xf0\x8d\xf1\x8d\xf2\x8d\xf4\x8d\xf6\x8d\xfc\x8d\xfe\x8d\xff\x8e\x00\x8e\x01\x8e\x02\x8e\x03\x8e\x04\x8e\x06\x8e\x07\x8e\x08\x8e\x0b\x8e\x0d\x8e\x0e\x8e\x10\x8e\x11\x8e\x12\x8e\x13\x8e\x15\x8e\x16\x8e\x17\x8e\x18\x8e\x19\x8e\x1a\x8e\x1b\x8e\x1c\x8e\x20\x8e\x21\x8e\x24\x8e\x25\x8e\x26\x8e\x27\x8e\x28\x8e\x2b\x8e\x2d\x8e\x30\x8e\x32\x8e\x33\x8e\x34\x8e\x36\x8e\x37\x8e\x38\x8e\x3b\x8e\x3c\x8e\x3e\x8e\x3f\x8e\x43\x8e\x45\x8e\x46\x8e\x4c\x8e\x4d\x8e\x4e\x8e\x4f\x8e\x50\x8e\x53\x8e\x54\x8e\x55\x8e\x56\x8e\x57\x8e\x58\x8e\x5a\x8e\x5b\x8e\x5c\x8e\x5d\x8e\x5e\x8e\x5f\x8e\x60\x8e\x61\x8e\x62\x8e\x63\x8e\x64\x8e\x65\x8e\x67\x8e\x68\x8e\x6a\x8e\x6b\x8e\x6e\x8e\x71\x8e\x73\x8e\x75\x8e\x77\x8e\x78\x8e\x79\x8e\x7a\x8e\x7b\x8e\x7d\x8e\x7e\x8e\x80\x8e\x82\x8e\x83\x8e\x84\x8e\x86\x8e\x88\x8e\x89\x8e\x8a\x8e\x8b\x8e\x8c\x8e\x8d\x8e\x8e\x8e\x91\x8e\x92\x8e\x93\x00\x00\x00\x00", /* bb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x95\x8e\x96\x8e\x97\x8e\x98\x8e\x99\x8e\x9a\x8e\x9b\x8e\x9d\x8e\x9f\x8e\xa0\x8e\xa1\x8e\xa2\x8e\xa3\x8e\xa4\x8e\xa5\x8e\xa6\x8e\xa7\x8e\xa8\x8e\xa9\x8e\xaa\x8e\xad\x8e\xae\x8e\xb0\x8e\xb1\x8e\xb3\x8e\xb4\x8e\xb5\x8e\xb6\x8e\xb7\x8e\xb8\x8e\xb9\x8e\xbb\x8e\xbc\x8e\xbd\x8e\xbe\x8e\xbf\x8e\xc0\x8e\xc1\x8e\xc2\x8e\xc3\x8e\xc4\x8e\xc5\x8e\xc6\x8e\xc7\x8e\xc8\x8e\xc9\x8e\xca\x8e\xcb\x8e\xcc\x8e\xcd\x8e\xcf\x8e\xd0\x8e\xd1\x8e\xd2\x8e\xd3\x8e\xd4\x8e\xd5\x8e\xd6\x8e\xd7\x8e\xd8\x8e\xd9\x8e\xda\x8e\xdb", /* bb80 */ "\x00\x00\x8e\xdc\x8e\xdd\x8e\xde\x8e\xdf\x8e\xe0\x8e\xe1\x8e\xe2\x8e\xe3\x8e\xe4\x8e\xe5\x8e\xe6\x8e\xe7\x8e\xe8\x8e\xe9\x8e\xea\x8e\xeb\x8e\xec\x8e\xed\x8e\xee\x8e\xef\x8e\xf0\x8e\xf1\x8e\xf2\x8e\xf3\x8e\xf4\x8e\xf5\x8e\xf6\x8e\xf7\x8e\xf8\x8e\xf9\x8e\xfa\x8e\xfb\x8e\xfc\x8e\xfd\x8e\xfe\x8e\xff\x8f\x00\x8f\x01\x8f\x02\x8f\x03\x8f\x04\x8f\x05\x8f\x06\x8f\x07\x8f\x08\x8f\x09\x8f\x0a\x8f\x0b\x8f\x0c\x8f\x0d\x8f\x0e\x8f\x0f\x8f\x10\x8f\x11\x8f\x12\x8f\x13\x8f\x14\x8f\x15\x8f\x16\x8f\x17\x8f\x18\x8f\x19\x8f\x1a\x8f\x1b\x8f\x1c\x8f\x1d\x8f\x1e\x8f\x1f\x8f\x20\x8f\x21\x8f\x22\x8f\x23\x8f\x24\x8f\x25\x8f\x26\x8f\x27\x8f\x28\x8f\x29\x8f\x2a\x8f\x2b\x8f\x2c\x8f\x2d\x8f\x2e\x8f\x2f\x8f\x30\x8f\x31\x8f\x32\x8f\x33\x8f\x34\x8f\x35\x8f\x36\x8f\x37\x8f\x38\x8f\x39\x8f\x3a\x8f\x3b\x8f\x3c\x8f\x3d\x8f\x3e\x8f\x3f\x8f\x40\x8f\x41\x8f\x42\x8f\x43\x8f\x44\x8f\x45\x8f\x46\x8f\x47\x8f\x48\x8f\x49\x8f\x4a\x8f\x4b\x8f\x4c\x8f\x4d\x8f\x4e\x8f\x4f\x8f\x50\x8f\x51\x8f\x52\x8f\x53\x8f\x54\x8f\x55\x8f\x56\x8f\x57\x8f\x58\x00\x00\x00\x00", /* bc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x59\x8f\x5a\x8f\x5b\x8f\x5c\x8f\x5d\x8f\x5e\x8f\x5f\x8f\x60\x8f\x61\x8f\x62\x8f\x63\x8f\x64\x8f\x65\x8f\x6a\x8f\x80\x8f\x8c\x8f\x92\x8f\x9d\x8f\xa0\x8f\xa1\x8f\xa2\x8f\xa4\x8f\xa5\x8f\xa6\x8f\xa7\x8f\xaa\x8f\xac\x8f\xad\x8f\xae\x8f\xaf\x8f\xb2\x8f\xb3\x8f\xb4\x8f\xb5\x8f\xb7\x8f\xb8\x8f\xba\x8f\xbb\x8f\xbc\x8f\xbf\x8f\xc0\x8f\xc3\x8f\xc6\x8f\xc9\x8f\xca\x8f\xcb\x8f\xcc\x8f\xcd\x8f\xcf\x8f\xd2\x8f\xd6\x8f\xd7\x8f\xda\x8f\xe0\x8f\xe1\x8f\xe3\x8f\xe7\x8f\xec\x8f\xef\x8f\xf1\x8f\xf2\x8f\xf4\x8f\xf5", /* bc80 */ "\x00\x00\x8f\xf6\x8f\xfa\x8f\xfb\x8f\xfc\x8f\xfe\x8f\xff\x90\x07\x90\x08\x90\x0c\x90\x0e\x90\x13\x90\x15\x90\x18\x90\x19\x90\x1c\x90\x23\x90\x24\x90\x25\x90\x27\x90\x28\x90\x29\x90\x2a\x90\x2b\x90\x2c\x90\x30\x90\x31\x90\x32\x90\x33\x90\x34\x90\x37\x90\x39\x90\x3a\x90\x3d\x90\x3f\x90\x40\x90\x43\x90\x45\x90\x46\x90\x48\x90\x49\x90\x4a\x90\x4b\x90\x4c\x90\x4e\x90\x54\x90\x55\x90\x56\x90\x59\x90\x5a\x90\x5c\x90\x5d\x90\x5e\x90\x5f\x90\x60\x90\x61\x90\x64\x90\x66\x90\x67\x90\x69\x90\x6a\x90\x6b\x90\x6c\x90\x6f\x90\x70\x90\x71\x90\x72\x90\x73\x90\x76\x90\x77\x90\x78\x90\x79\x90\x7a\x90\x7b\x90\x7c\x90\x7e\x90\x81\x90\x84\x90\x85\x90\x86\x90\x87\x90\x89\x90\x8a\x90\x8c\x90\x8d\x90\x8e\x90\x8f\x90\x90\x90\x92\x90\x94\x90\x96\x90\x98\x90\x9a\x90\x9c\x90\x9e\x90\x9f\x90\xa0\x90\xa4\x90\xa5\x90\xa7\x90\xa8\x90\xa9\x90\xab\x90\xad\x90\xb2\x90\xb7\x90\xbc\x90\xbd\x90\xbf\x90\xc0\x90\xc2\x90\xc3\x90\xc6\x90\xc8\x90\xc9\x90\xcb\x90\xcc\x90\xcd\x90\xd2\x90\xd4\x90\xd5\x90\xd6\x90\xd8\x90\xd9\x90\xda\x90\xde\x00\x00\x00\x00", /* bd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xdf\x90\xe0\x90\xe3\x90\xe4\x90\xe5\x90\xe9\x90\xea\x90\xec\x90\xee\x90\xf0\x90\xf1\x90\xf2\x90\xf3\x90\xf5\x90\xf6\x90\xf7\x90\xf9\x90\xfa\x90\xfb\x90\xfc\x90\xff\x91\x00\x91\x01\x91\x03\x91\x05\x91\x06\x91\x07\x91\x08\x91\x09\x91\x0a\x91\x0b\x91\x0c\x91\x0d\x91\x0e\x91\x0f\x91\x10\x91\x11\x91\x12\x91\x13\x91\x14\x91\x15\x91\x16\x91\x17\x91\x18\x91\x1a\x91\x1b\x91\x1c\x91\x1d\x91\x1f\x91\x20\x91\x21\x91\x24\x91\x25\x91\x26\x91\x27\x91\x28\x91\x29\x91\x2a\x91\x2b\x91\x2c\x91\x2d\x91\x2e\x91\x30", /* bd80 */ "\x00\x00\x91\x32\x91\x33\x91\x34\x91\x35\x91\x36\x91\x37\x91\x38\x91\x3a\x91\x3b\x91\x3c\x91\x3d\x91\x3e\x91\x3f\x91\x40\x91\x41\x91\x42\x91\x44\x91\x45\x91\x47\x91\x48\x91\x51\x91\x53\x91\x54\x91\x55\x91\x56\x91\x58\x91\x59\x91\x5b\x91\x5c\x91\x5f\x91\x60\x91\x66\x91\x67\x91\x68\x91\x6b\x91\x6d\x91\x73\x91\x7a\x91\x7b\x91\x7c\x91\x80\x91\x81\x91\x82\x91\x83\x91\x84\x91\x86\x91\x88\x91\x8a\x91\x8e\x91\x8f\x91\x93\x91\x94\x91\x95\x91\x96\x91\x97\x91\x98\x91\x99\x91\x9c\x91\x9d\x91\x9e\x91\x9f\x91\xa0\x91\xa1\x91\xa4\x91\xa5\x91\xa6\x91\xa7\x91\xa8\x91\xa9\x91\xab\x91\xac\x91\xb0\x91\xb1\x91\xb2\x91\xb3\x91\xb6\x91\xb7\x91\xb8\x91\xb9\x91\xbb\x91\xbc\x91\xbd\x91\xbe\x91\xbf\x91\xc0\x91\xc1\x91\xc2\x91\xc3\x91\xc4\x91\xc5\x91\xc6\x91\xc8\x91\xcb\x91\xd0\x91\xd2\x91\xd3\x91\xd4\x91\xd5\x91\xd6\x91\xd7\x91\xd8\x91\xd9\x91\xda\x91\xdb\x91\xdd\x91\xde\x91\xdf\x91\xe0\x91\xe1\x91\xe2\x91\xe3\x91\xe4\x91\xe5\x91\xe6\x91\xe7\x91\xe8\x91\xe9\x91\xea\x91\xeb\x91\xec\x91\xed\x91\xee\x91\xef\x91\xf0\x91\xf1\x00\x00\x00\x00", /* be00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xf2\x91\xf3\x91\xf4\x91\xf5\x91\xf6\x91\xf7\x91\xf8\x91\xf9\x91\xfa\x91\xfb\x91\xfc\x91\xfd\x91\xfe\x91\xff\x92\x00\x92\x01\x92\x02\x92\x03\x92\x04\x92\x05\x92\x06\x92\x07\x92\x08\x92\x09\x92\x0a\x92\x0b\x92\x0c\x92\x0d\x92\x0e\x92\x0f\x92\x10\x92\x11\x92\x12\x92\x13\x92\x14\x92\x15\x92\x16\x92\x17\x92\x18\x92\x19\x92\x1a\x92\x1b\x92\x1c\x92\x1d\x92\x1e\x92\x1f\x92\x20\x92\x21\x92\x22\x92\x23\x92\x24\x92\x25\x92\x26\x92\x27\x92\x28\x92\x29\x92\x2a\x92\x2b\x92\x2c\x92\x2d\x92\x2e\x92\x2f\x92\x30", /* be80 */ "\x00\x00\x92\x31\x92\x32\x92\x33\x92\x34\x92\x35\x92\x36\x92\x37\x92\x38\x92\x39\x92\x3a\x92\x3b\x92\x3c\x92\x3d\x92\x3e\x92\x3f\x92\x40\x92\x41\x92\x42\x92\x43\x92\x44\x92\x45\x92\x46\x92\x47\x92\x48\x92\x49\x92\x4a\x92\x4b\x92\x4c\x92\x4d\x92\x4e\x92\x4f\x92\x50\x92\x51\x92\x52\x92\x53\x92\x54\x92\x55\x92\x56\x92\x57\x92\x58\x92\x59\x92\x5a\x92\x5b\x92\x5c\x92\x5d\x92\x5e\x92\x5f\x92\x60\x92\x61\x92\x62\x92\x63\x92\x64\x92\x65\x92\x66\x92\x67\x92\x68\x92\x69\x92\x6a\x92\x6b\x92\x6c\x92\x6d\x92\x6e\x92\x6f\x92\x70\x92\x71\x92\x72\x92\x73\x92\x75\x92\x76\x92\x77\x92\x78\x92\x79\x92\x7a\x92\x7b\x92\x7c\x92\x7d\x92\x7e\x92\x7f\x92\x80\x92\x81\x92\x82\x92\x83\x92\x84\x92\x85\x92\x86\x92\x87\x92\x88\x92\x89\x92\x8a\x92\x8b\x92\x8c\x92\x8d\x92\x8f\x92\x90\x92\x91\x92\x92\x92\x93\x92\x94\x92\x95\x92\x96\x92\x97\x92\x98\x92\x99\x92\x9a\x92\x9b\x92\x9c\x92\x9d\x92\x9e\x92\x9f\x92\xa0\x92\xa1\x92\xa2\x92\xa3\x92\xa4\x92\xa5\x92\xa6\x92\xa7\x92\xa8\x92\xa9\x92\xaa\x92\xab\x92\xac\x92\xad\x92\xaf\x92\xb0\x00\x00\x00\x00", /* bf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\xb1\x92\xb2\x92\xb3\x92\xb4\x92\xb5\x92\xb6\x92\xb7\x92\xb8\x92\xb9\x92\xba\x92\xbb\x92\xbc\x92\xbd\x92\xbe\x92\xbf\x92\xc0\x92\xc1\x92\xc2\x92\xc3\x92\xc4\x92\xc5\x92\xc6\x92\xc7\x92\xc9\x92\xca\x92\xcb\x92\xcc\x92\xcd\x92\xce\x92\xcf\x92\xd0\x92\xd1\x92\xd2\x92\xd3\x92\xd4\x92\xd5\x92\xd6\x92\xd7\x92\xd8\x92\xd9\x92\xda\x92\xdb\x92\xdc\x92\xdd\x92\xde\x92\xdf\x92\xe0\x92\xe1\x92\xe2\x92\xe3\x92\xe4\x92\xe5\x92\xe6\x92\xe7\x92\xe8\x92\xe9\x92\xea\x92\xeb\x92\xec\x92\xed\x92\xee\x92\xef\x92\xf0", /* bf80 */ "\x00\x00\x92\xf1\x92\xf2\x92\xf3\x92\xf4\x92\xf5\x92\xf6\x92\xf7\x92\xf8\x92\xf9\x92\xfa\x92\xfb\x92\xfc\x92\xfd\x92\xfe\x92\xff\x93\x00\x93\x01\x93\x02\x93\x03\x93\x04\x93\x05\x93\x06\x93\x07\x93\x08\x93\x09\x93\x0a\x93\x0b\x93\x0c\x93\x0d\x93\x0e\x93\x0f\x93\x10\x93\x11\x93\x12\x93\x13\x93\x14\x93\x15\x93\x16\x93\x17\x93\x18\x93\x19\x93\x1a\x93\x1b\x93\x1c\x93\x1d\x93\x1e\x93\x1f\x93\x20\x93\x21\x93\x22\x93\x23\x93\x24\x93\x25\x93\x26\x93\x27\x93\x28\x93\x29\x93\x2a\x93\x2b\x93\x2c\x93\x2d\x93\x2e\x93\x2f\x93\x30\x93\x31\x93\x32\x93\x33\x93\x34\x93\x35\x93\x36\x93\x37\x93\x38\x93\x39\x93\x3a\x93\x3b\x93\x3c\x93\x3d\x93\x3f\x93\x40\x93\x41\x93\x42\x93\x43\x93\x44\x93\x45\x93\x46\x93\x47\x93\x48\x93\x49\x93\x4a\x93\x4b\x93\x4c\x93\x4d\x93\x4e\x93\x4f\x93\x50\x93\x51\x93\x52\x93\x53\x93\x54\x93\x55\x93\x56\x93\x57\x93\x58\x93\x59\x93\x5a\x93\x5b\x93\x5c\x93\x5d\x93\x5e\x93\x5f\x93\x60\x93\x61\x93\x62\x93\x63\x93\x64\x93\x65\x93\x66\x93\x67\x93\x68\x93\x69\x93\x6b\x93\x6c\x93\x6d\x93\x6e\x93\x6f\x00\x00\x00\x00", /* c000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x70\x93\x71\x93\x72\x93\x73\x93\x74\x93\x75\x93\x76\x93\x77\x93\x78\x93\x79\x93\x7a\x93\x7b\x93\x7c\x93\x7d\x93\x7e\x93\x7f\x93\x80\x93\x81\x93\x82\x93\x83\x93\x84\x93\x85\x93\x86\x93\x87\x93\x88\x93\x89\x93\x8a\x93\x8b\x93\x8c\x93\x8d\x93\x8e\x93\x90\x93\x91\x93\x92\x93\x93\x93\x94\x93\x95\x93\x96\x93\x97\x93\x98\x93\x99\x93\x9a\x93\x9b\x93\x9c\x93\x9d\x93\x9e\x93\x9f\x93\xa0\x93\xa1\x93\xa2\x93\xa3\x93\xa4\x93\xa5\x93\xa6\x93\xa7\x93\xa8\x93\xa9\x93\xaa\x93\xab\x93\xac\x93\xad\x93\xae\x93\xaf", /* c080 */ "\x00\x00\x93\xb0\x93\xb1\x93\xb2\x93\xb3\x93\xb4\x93\xb5\x93\xb6\x93\xb7\x93\xb8\x93\xb9\x93\xba\x93\xbb\x93\xbc\x93\xbd\x93\xbe\x93\xbf\x93\xc0\x93\xc1\x93\xc2\x93\xc3\x93\xc4\x93\xc5\x93\xc6\x93\xc7\x93\xc8\x93\xc9\x93\xcb\x93\xcc\x93\xcd\x93\xce\x93\xcf\x93\xd0\x93\xd1\x93\xd2\x93\xd3\x93\xd4\x93\xd5\x93\xd7\x93\xd8\x93\xd9\x93\xda\x93\xdb\x93\xdc\x93\xdd\x93\xde\x93\xdf\x93\xe0\x93\xe1\x93\xe2\x93\xe3\x93\xe4\x93\xe5\x93\xe6\x93\xe7\x93\xe8\x93\xe9\x93\xea\x93\xeb\x93\xec\x93\xed\x93\xee\x93\xef\x93\xf0\x93\xf1\x93\xf2\x93\xf3\x93\xf4\x93\xf5\x93\xf6\x93\xf7\x93\xf8\x93\xf9\x93\xfa\x93\xfb\x93\xfc\x93\xfd\x93\xfe\x93\xff\x94\x00\x94\x01\x94\x02\x94\x03\x94\x04\x94\x05\x94\x06\x94\x07\x94\x08\x94\x09\x94\x0a\x94\x0b\x94\x0c\x94\x0d\x94\x0e\x94\x0f\x94\x10\x94\x11\x94\x12\x94\x13\x94\x14\x94\x15\x94\x16\x94\x17\x94\x18\x94\x19\x94\x1a\x94\x1b\x94\x1c\x94\x1d\x94\x1e\x94\x1f\x94\x20\x94\x21\x94\x22\x94\x23\x94\x24\x94\x25\x94\x26\x94\x27\x94\x28\x94\x29\x94\x2a\x94\x2b\x94\x2c\x94\x2d\x94\x2e\x00\x00\x00\x00", /* c100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x2f\x94\x30\x94\x31\x94\x32\x94\x33\x94\x34\x94\x35\x94\x36\x94\x37\x94\x38\x94\x39\x94\x3a\x94\x3b\x94\x3c\x94\x3d\x94\x3f\x94\x40\x94\x41\x94\x42\x94\x43\x94\x44\x94\x45\x94\x46\x94\x47\x94\x48\x94\x49\x94\x4a\x94\x4b\x94\x4c\x94\x4d\x94\x4e\x94\x4f\x94\x50\x94\x51\x94\x52\x94\x53\x94\x54\x94\x55\x94\x56\x94\x57\x94\x58\x94\x59\x94\x5a\x94\x5b\x94\x5c\x94\x5d\x94\x5e\x94\x5f\x94\x60\x94\x61\x94\x62\x94\x63\x94\x64\x94\x65\x94\x66\x94\x67\x94\x68\x94\x69\x94\x6a\x94\x6c\x94\x6d\x94\x6e\x94\x6f", /* c180 */ "\x00\x00\x94\x70\x94\x71\x94\x72\x94\x73\x94\x74\x94\x75\x94\x76\x94\x77\x94\x78\x94\x79\x94\x7a\x94\x7b\x94\x7c\x94\x7d\x94\x7e\x94\x7f\x94\x80\x94\x81\x94\x82\x94\x83\x94\x84\x94\x91\x94\x96\x94\x98\x94\xc7\x94\xcf\x94\xd3\x94\xd4\x94\xda\x94\xe6\x94\xfb\x95\x1c\x95\x20\x95\x27\x95\x33\x95\x3d\x95\x43\x95\x48\x95\x4b\x95\x55\x95\x5a\x95\x60\x95\x6e\x95\x74\x95\x75\x95\x77\x95\x78\x95\x79\x95\x7a\x95\x7b\x95\x7c\x95\x7d\x95\x7e\x95\x80\x95\x81\x95\x82\x95\x83\x95\x84\x95\x85\x95\x86\x95\x87\x95\x88\x95\x89\x95\x8a\x95\x8b\x95\x8c\x95\x8d\x95\x8e\x95\x8f\x95\x90\x95\x91\x95\x92\x95\x93\x95\x94\x95\x95\x95\x96\x95\x97\x95\x98\x95\x99\x95\x9a\x95\x9b\x95\x9c\x95\x9d\x95\x9e\x95\x9f\x95\xa0\x95\xa1\x95\xa2\x95\xa3\x95\xa4\x95\xa5\x95\xa6\x95\xa7\x95\xa8\x95\xa9\x95\xaa\x95\xab\x95\xac\x95\xad\x95\xae\x95\xaf\x95\xb0\x95\xb1\x95\xb2\x95\xb3\x95\xb4\x95\xb5\x95\xb6\x95\xb7\x95\xb8\x95\xb9\x95\xba\x95\xbb\x95\xbc\x95\xbd\x95\xbe\x95\xbf\x95\xc0\x95\xc1\x95\xc2\x95\xc3\x95\xc4\x95\xc5\x95\xc6\x95\xc7\x00\x00\x00\x00", /* c200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\xc8\x95\xc9\x95\xca\x95\xcb\x95\xcc\x95\xcd\x95\xce\x95\xcf\x95\xd0\x95\xd1\x95\xd2\x95\xd3\x95\xd4\x95\xd5\x95\xd6\x95\xd7\x95\xd8\x95\xd9\x95\xda\x95\xdb\x95\xdc\x95\xdd\x95\xde\x95\xdf\x95\xe0\x95\xe1\x95\xe2\x95\xe3\x95\xe4\x95\xe5\x95\xe6\x95\xe7\x95\xec\x95\xff\x96\x07\x96\x13\x96\x18\x96\x1b\x96\x1e\x96\x20\x96\x23\x96\x24\x96\x25\x96\x26\x96\x27\x96\x28\x96\x29\x96\x2b\x96\x2c\x96\x2d\x96\x2f\x96\x30\x96\x37\x96\x38\x96\x39\x96\x3a\x96\x3e\x96\x41\x96\x43\x96\x4a\x96\x4e\x96\x4f\x96\x51", /* c280 */ "\x00\x00\x96\x52\x96\x53\x96\x56\x96\x57\x96\x58\x96\x59\x96\x5a\x96\x5c\x96\x5d\x96\x5e\x96\x60\x96\x63\x96\x65\x96\x66\x96\x6b\x96\x6d\x96\x6e\x96\x6f\x96\x70\x96\x71\x96\x73\x96\x78\x96\x79\x96\x7a\x96\x7b\x96\x7c\x96\x7d\x96\x7e\x96\x7f\x96\x80\x96\x81\x96\x82\x96\x83\x96\x84\x96\x87\x96\x89\x96\x8a\x96\x8c\x96\x8e\x96\x91\x96\x92\x96\x93\x96\x95\x96\x96\x96\x9a\x96\x9b\x96\x9d\x96\x9e\x96\x9f\x96\xa0\x96\xa1\x96\xa2\x96\xa3\x96\xa4\x96\xa5\x96\xa6\x96\xa8\x96\xa9\x96\xaa\x96\xab\x96\xac\x96\xad\x96\xae\x96\xaf\x96\xb1\x96\xb2\x96\xb4\x96\xb5\x96\xb7\x96\xb8\x96\xba\x96\xbb\x96\xbf\x96\xc2\x96\xc3\x96\xc8\x96\xca\x96\xcb\x96\xd0\x96\xd1\x96\xd3\x96\xd4\x96\xd6\x96\xd7\x96\xd8\x96\xd9\x96\xda\x96\xdb\x96\xdc\x96\xdd\x96\xde\x96\xdf\x96\xe1\x96\xe2\x96\xe3\x96\xe4\x96\xe5\x96\xe6\x96\xe7\x96\xeb\x96\xec\x96\xed\x96\xee\x96\xf0\x96\xf1\x96\xf2\x96\xf4\x96\xf5\x96\xf8\x96\xfa\x96\xfb\x96\xfc\x96\xfd\x96\xff\x97\x02\x97\x03\x97\x05\x97\x0a\x97\x0b\x97\x0c\x97\x10\x97\x11\x97\x12\x97\x14\x97\x15\x00\x00\x00\x00", /* c300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x17\x97\x18\x97\x19\x97\x1a\x97\x1b\x97\x1d\x97\x1f\x97\x20\x97\x21\x97\x22\x97\x23\x97\x24\x97\x25\x97\x26\x97\x27\x97\x28\x97\x29\x97\x2b\x97\x2c\x97\x2e\x97\x2f\x97\x31\x97\x33\x97\x34\x97\x35\x97\x36\x97\x37\x97\x3a\x97\x3b\x97\x3c\x97\x3d\x97\x3f\x97\x40\x97\x41\x97\x42\x97\x43\x97\x44\x97\x45\x97\x46\x97\x47\x97\x48\x97\x49\x97\x4a\x97\x4b\x97\x4c\x97\x4d\x97\x4e\x97\x4f\x97\x50\x97\x51\x97\x54\x97\x55\x97\x57\x97\x58\x97\x5a\x97\x5c\x97\x5d\x97\x5f\x97\x63\x97\x64\x97\x66\x97\x67\x97\x68", /* c380 */ "\x00\x00\x97\x6a\x97\x6b\x97\x6c\x97\x6d\x97\x6e\x97\x6f\x97\x70\x97\x71\x97\x72\x97\x75\x97\x77\x97\x78\x97\x79\x97\x7a\x97\x7b\x97\x7d\x97\x7e\x97\x7f\x97\x80\x97\x81\x97\x82\x97\x83\x97\x84\x97\x86\x97\x87\x97\x88\x97\x89\x97\x8a\x97\x8c\x97\x8e\x97\x8f\x97\x90\x97\x93\x97\x95\x97\x96\x97\x97\x97\x99\x97\x9a\x97\x9b\x97\x9c\x97\x9d\x97\x9e\x97\x9f\x97\xa1\x97\xa2\x97\xa4\x97\xa5\x97\xa6\x97\xa7\x97\xa8\x97\xa9\x97\xaa\x97\xac\x97\xae\x97\xb0\x97\xb1\x97\xb3\x97\xb5\x97\xb6\x97\xb7\x97\xb8\x97\xb9\x97\xba\x97\xbb\x97\xbc\x97\xbd\x97\xbe\x97\xbf\x97\xc0\x97\xc1\x97\xc2\x97\xc3\x97\xc4\x97\xc5\x97\xc6\x97\xc7\x97\xc8\x97\xc9\x97\xca\x97\xcb\x97\xcc\x97\xcd\x97\xce\x97\xcf\x97\xd0\x97\xd1\x97\xd2\x97\xd3\x97\xd4\x97\xd5\x97\xd6\x97\xd7\x97\xd8\x97\xd9\x97\xda\x97\xdb\x97\xdc\x97\xdd\x97\xde\x97\xdf\x97\xe0\x97\xe1\x97\xe2\x97\xe3\x97\xe4\x97\xe5\x97\xe8\x97\xee\x97\xef\x97\xf0\x97\xf1\x97\xf2\x97\xf4\x97\xf7\x97\xf8\x97\xf9\x97\xfa\x97\xfb\x97\xfc\x97\xfd\x97\xfe\x97\xff\x98\x00\x98\x01\x98\x02\x00\x00\x00\x00", /* c400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x03\x98\x04\x98\x05\x98\x06\x98\x07\x98\x08\x98\x09\x98\x0a\x98\x0b\x98\x0c\x98\x0d\x98\x0e\x98\x0f\x98\x10\x98\x11\x98\x12\x98\x13\x98\x14\x98\x15\x98\x16\x98\x17\x98\x18\x98\x19\x98\x1a\x98\x1b\x98\x1c\x98\x1d\x98\x1e\x98\x1f\x98\x20\x98\x21\x98\x22\x98\x23\x98\x24\x98\x25\x98\x26\x98\x27\x98\x28\x98\x29\x98\x2a\x98\x2b\x98\x2c\x98\x2d\x98\x2e\x98\x2f\x98\x30\x98\x31\x98\x32\x98\x33\x98\x34\x98\x35\x98\x36\x98\x37\x98\x38\x98\x39\x98\x3a\x98\x3b\x98\x3c\x98\x3d\x98\x3e\x98\x3f\x98\x40\x98\x41", /* c480 */ "\x00\x00\x98\x42\x98\x43\x98\x44\x98\x45\x98\x46\x98\x47\x98\x48\x98\x49\x98\x4a\x98\x4b\x98\x4c\x98\x4d\x98\x4e\x98\x4f\x98\x50\x98\x51\x98\x52\x98\x53\x98\x54\x98\x55\x98\x56\x98\x57\x98\x58\x98\x59\x98\x5a\x98\x5b\x98\x5c\x98\x5d\x98\x5e\x98\x5f\x98\x60\x98\x61\x98\x62\x98\x63\x98\x64\x98\x65\x98\x66\x98\x67\x98\x68\x98\x69\x98\x6a\x98\x6b\x98\x6c\x98\x6d\x98\x6e\x98\x6f\x98\x70\x98\x71\x98\x72\x98\x73\x98\x74\x98\x8b\x98\x8e\x98\x92\x98\x95\x98\x99\x98\xa3\x98\xa8\x98\xa9\x98\xaa\x98\xab\x98\xac\x98\xad\x98\xae\x98\xaf\x98\xb0\x98\xb1\x98\xb2\x98\xb3\x98\xb4\x98\xb5\x98\xb6\x98\xb7\x98\xb8\x98\xb9\x98\xba\x98\xbb\x98\xbc\x98\xbd\x98\xbe\x98\xbf\x98\xc0\x98\xc1\x98\xc2\x98\xc3\x98\xc4\x98\xc5\x98\xc6\x98\xc7\x98\xc8\x98\xc9\x98\xca\x98\xcb\x98\xcc\x98\xcd\x98\xcf\x98\xd0\x98\xd4\x98\xd6\x98\xd7\x98\xdb\x98\xdc\x98\xdd\x98\xe0\x98\xe1\x98\xe2\x98\xe3\x98\xe4\x98\xe5\x98\xe6\x98\xe9\x98\xea\x98\xeb\x98\xec\x98\xed\x98\xee\x98\xef\x98\xf0\x98\xf1\x98\xf2\x98\xf3\x98\xf4\x98\xf5\x98\xf6\x98\xf7\x00\x00\x00\x00", /* c500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\xf8\x98\xf9\x98\xfa\x98\xfb\x98\xfc\x98\xfd\x98\xfe\x98\xff\x99\x00\x99\x01\x99\x02\x99\x03\x99\x04\x99\x05\x99\x06\x99\x07\x99\x08\x99\x09\x99\x0a\x99\x0b\x99\x0c\x99\x0e\x99\x0f\x99\x11\x99\x12\x99\x13\x99\x14\x99\x15\x99\x16\x99\x17\x99\x18\x99\x19\x99\x1a\x99\x1b\x99\x1c\x99\x1d\x99\x1e\x99\x1f\x99\x20\x99\x21\x99\x22\x99\x23\x99\x24\x99\x25\x99\x26\x99\x27\x99\x28\x99\x29\x99\x2a\x99\x2b\x99\x2c\x99\x2d\x99\x2f\x99\x30\x99\x31\x99\x32\x99\x33\x99\x34\x99\x35\x99\x36\x99\x37\x99\x38\x99\x39", /* c580 */ "\x00\x00\x99\x3a\x99\x3b\x99\x3c\x99\x3d\x99\x3e\x99\x3f\x99\x40\x99\x41\x99\x42\x99\x43\x99\x44\x99\x45\x99\x46\x99\x47\x99\x48\x99\x49\x99\x4a\x99\x4b\x99\x4c\x99\x4d\x99\x4e\x99\x4f\x99\x50\x99\x51\x99\x52\x99\x53\x99\x56\x99\x57\x99\x58\x99\x59\x99\x5a\x99\x5b\x99\x5c\x99\x5d\x99\x5e\x99\x5f\x99\x60\x99\x61\x99\x62\x99\x64\x99\x66\x99\x73\x99\x78\x99\x79\x99\x7b\x99\x7e\x99\x82\x99\x83\x99\x89\x99\x8c\x99\x8e\x99\x9a\x99\x9b\x99\x9c\x99\x9d\x99\x9e\x99\x9f\x99\xa0\x99\xa1\x99\xa2\x99\xa3\x99\xa4\x99\xa6\x99\xa7\x99\xa9\x99\xaa\x99\xab\x99\xac\x99\xad\x99\xae\x99\xaf\x99\xb0\x99\xb1\x99\xb2\x99\xb3\x99\xb4\x99\xb5\x99\xb6\x99\xb7\x99\xb8\x99\xb9\x99\xba\x99\xbb\x99\xbc\x99\xbd\x99\xbe\x99\xbf\x99\xc0\x99\xc1\x99\xc2\x99\xc3\x99\xc4\x99\xc5\x99\xc6\x99\xc7\x99\xc8\x99\xc9\x99\xca\x99\xcb\x99\xcc\x99\xcd\x99\xce\x99\xcf\x99\xd0\x99\xd1\x99\xd2\x99\xd3\x99\xd4\x99\xd5\x99\xd6\x99\xd7\x99\xd8\x99\xd9\x99\xda\x99\xdb\x99\xdc\x99\xdd\x99\xde\x99\xdf\x99\xe0\x99\xe1\x99\xe2\x99\xe3\x99\xe4\x99\xe5\x00\x00\x00\x00", /* c600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xe6\x99\xe7\x99\xe8\x99\xe9\x99\xea\x99\xeb\x99\xec\x99\xed\x99\xee\x99\xef\x99\xf0\x99\xf1\x99\xf2\x99\xf3\x99\xf4\x99\xf5\x99\xf6\x99\xf7\x99\xf8\x99\xf9\x99\xfa\x99\xfb\x99\xfc\x99\xfd\x99\xfe\x99\xff\x9a\x00\x9a\x01\x9a\x02\x9a\x03\x9a\x04\x9a\x05\x9a\x06\x9a\x07\x9a\x08\x9a\x09\x9a\x0a\x9a\x0b\x9a\x0c\x9a\x0d\x9a\x0e\x9a\x0f\x9a\x10\x9a\x11\x9a\x12\x9a\x13\x9a\x14\x9a\x15\x9a\x16\x9a\x17\x9a\x18\x9a\x19\x9a\x1a\x9a\x1b\x9a\x1c\x9a\x1d\x9a\x1e\x9a\x1f\x9a\x20\x9a\x21\x9a\x22\x9a\x23\x9a\x24", /* c680 */ "\x00\x00\x9a\x25\x9a\x26\x9a\x27\x9a\x28\x9a\x29\x9a\x2a\x9a\x2b\x9a\x2c\x9a\x2d\x9a\x2e\x9a\x2f\x9a\x30\x9a\x31\x9a\x32\x9a\x33\x9a\x34\x9a\x35\x9a\x36\x9a\x37\x9a\x38\x9a\x39\x9a\x3a\x9a\x3b\x9a\x3c\x9a\x3d\x9a\x3e\x9a\x3f\x9a\x40\x9a\x41\x9a\x42\x9a\x43\x9a\x44\x9a\x45\x9a\x46\x9a\x47\x9a\x48\x9a\x49\x9a\x4a\x9a\x4b\x9a\x4c\x9a\x4d\x9a\x4e\x9a\x4f\x9a\x50\x9a\x51\x9a\x52\x9a\x53\x9a\x54\x9a\x55\x9a\x56\x9a\x57\x9a\x58\x9a\x59\x9a\x5a\x9a\x5b\x9a\x5c\x9a\x5d\x9a\x5e\x9a\x5f\x9a\x60\x9a\x61\x9a\x62\x9a\x63\x9a\x64\x9a\x65\x9a\x66\x9a\x67\x9a\x68\x9a\x69\x9a\x6a\x9a\x6b\x9a\x72\x9a\x83\x9a\x89\x9a\x8d\x9a\x8e\x9a\x94\x9a\x95\x9a\x99\x9a\xa6\x9a\xa9\x9a\xaa\x9a\xab\x9a\xac\x9a\xad\x9a\xae\x9a\xaf\x9a\xb2\x9a\xb3\x9a\xb4\x9a\xb5\x9a\xb9\x9a\xbb\x9a\xbd\x9a\xbe\x9a\xbf\x9a\xc3\x9a\xc4\x9a\xc6\x9a\xc7\x9a\xc8\x9a\xc9\x9a\xca\x9a\xcd\x9a\xce\x9a\xcf\x9a\xd0\x9a\xd2\x9a\xd4\x9a\xd5\x9a\xd6\x9a\xd7\x9a\xd9\x9a\xda\x9a\xdb\x9a\xdc\x9a\xdd\x9a\xde\x9a\xe0\x9a\xe2\x9a\xe3\x9a\xe4\x9a\xe5\x9a\xe7\x9a\xe8\x00\x00\x00\x00", /* c700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\xe9\x9a\xea\x9a\xec\x9a\xee\x9a\xf0\x9a\xf1\x9a\xf2\x9a\xf3\x9a\xf4\x9a\xf5\x9a\xf6\x9a\xf7\x9a\xf8\x9a\xfa\x9a\xfc\x9a\xfd\x9a\xfe\x9a\xff\x9b\x00\x9b\x01\x9b\x02\x9b\x04\x9b\x05\x9b\x06\x9b\x07\x9b\x09\x9b\x0a\x9b\x0b\x9b\x0c\x9b\x0d\x9b\x0e\x9b\x10\x9b\x11\x9b\x12\x9b\x14\x9b\x15\x9b\x16\x9b\x17\x9b\x18\x9b\x19\x9b\x1a\x9b\x1b\x9b\x1c\x9b\x1d\x9b\x1e\x9b\x20\x9b\x21\x9b\x22\x9b\x24\x9b\x25\x9b\x26\x9b\x27\x9b\x28\x9b\x29\x9b\x2a\x9b\x2b\x9b\x2c\x9b\x2d\x9b\x2e\x9b\x30\x9b\x31\x9b\x33\x9b\x34", /* c780 */ "\x00\x00\x9b\x35\x9b\x36\x9b\x37\x9b\x38\x9b\x39\x9b\x3a\x9b\x3d\x9b\x3e\x9b\x3f\x9b\x40\x9b\x46\x9b\x4a\x9b\x4b\x9b\x4c\x9b\x4e\x9b\x50\x9b\x52\x9b\x53\x9b\x55\x9b\x56\x9b\x57\x9b\x58\x9b\x59\x9b\x5a\x9b\x5b\x9b\x5c\x9b\x5d\x9b\x5e\x9b\x5f\x9b\x60\x9b\x61\x9b\x62\x9b\x63\x9b\x64\x9b\x65\x9b\x66\x9b\x67\x9b\x68\x9b\x69\x9b\x6a\x9b\x6b\x9b\x6c\x9b\x6d\x9b\x6e\x9b\x6f\x9b\x70\x9b\x71\x9b\x72\x9b\x73\x9b\x74\x9b\x75\x9b\x76\x9b\x77\x9b\x78\x9b\x79\x9b\x7a\x9b\x7b\x9b\x7c\x9b\x7d\x9b\x7e\x9b\x7f\x9b\x80\x9b\x81\x9b\x82\x9b\x83\x9b\x84\x9b\x85\x9b\x86\x9b\x87\x9b\x88\x9b\x89\x9b\x8a\x9b\x8b\x9b\x8c\x9b\x8d\x9b\x8e\x9b\x8f\x9b\x90\x9b\x91\x9b\x92\x9b\x93\x9b\x94\x9b\x95\x9b\x96\x9b\x97\x9b\x98\x9b\x99\x9b\x9a\x9b\x9b\x9b\x9c\x9b\x9d\x9b\x9e\x9b\x9f\x9b\xa0\x9b\xa1\x9b\xa2\x9b\xa3\x9b\xa4\x9b\xa5\x9b\xa6\x9b\xa7\x9b\xa8\x9b\xa9\x9b\xaa\x9b\xab\x9b\xac\x9b\xad\x9b\xae\x9b\xaf\x9b\xb0\x9b\xb1\x9b\xb2\x9b\xb3\x9b\xb4\x9b\xb5\x9b\xb6\x9b\xb7\x9b\xb8\x9b\xb9\x9b\xba\x9b\xbb\x9b\xbc\x9b\xbd\x9b\xbe\x9b\xbf\x00\x00\x00\x00", /* c800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xc0\x9b\xc1\x9b\xc2\x9b\xc3\x9b\xc4\x9b\xc5\x9b\xc6\x9b\xc7\x9b\xc8\x9b\xc9\x9b\xca\x9b\xcb\x9b\xcc\x9b\xcd\x9b\xce\x9b\xcf\x9b\xd0\x9b\xd1\x9b\xd2\x9b\xd3\x9b\xd4\x9b\xd5\x9b\xd6\x9b\xd7\x9b\xd8\x9b\xd9\x9b\xda\x9b\xdb\x9b\xdc\x9b\xdd\x9b\xde\x9b\xdf\x9b\xe0\x9b\xe1\x9b\xe2\x9b\xe3\x9b\xe4\x9b\xe5\x9b\xe6\x9b\xe7\x9b\xe8\x9b\xe9\x9b\xea\x9b\xeb\x9b\xec\x9b\xed\x9b\xee\x9b\xef\x9b\xf0\x9b\xf1\x9b\xf2\x9b\xf3\x9b\xf4\x9b\xf5\x9b\xf6\x9b\xf7\x9b\xf8\x9b\xf9\x9b\xfa\x9b\xfb\x9b\xfc\x9b\xfd\x9b\xfe", /* c880 */ "\x00\x00\x9b\xff\x9c\x00\x9c\x01\x9c\x02\x9c\x03\x9c\x04\x9c\x05\x9c\x06\x9c\x07\x9c\x08\x9c\x09\x9c\x0a\x9c\x0b\x9c\x0c\x9c\x0d\x9c\x0e\x9c\x0f\x9c\x10\x9c\x11\x9c\x12\x9c\x13\x9c\x14\x9c\x15\x9c\x16\x9c\x17\x9c\x18\x9c\x19\x9c\x1a\x9c\x1b\x9c\x1c\x9c\x1d\x9c\x1e\x9c\x1f\x9c\x20\x9c\x21\x9c\x22\x9c\x23\x9c\x24\x9c\x25\x9c\x26\x9c\x27\x9c\x28\x9c\x29\x9c\x2a\x9c\x2b\x9c\x2c\x9c\x2d\x9c\x2e\x9c\x2f\x9c\x30\x9c\x31\x9c\x32\x9c\x33\x9c\x34\x9c\x35\x9c\x36\x9c\x37\x9c\x38\x9c\x39\x9c\x3a\x9c\x3b\x9c\x3c\x9c\x3d\x9c\x3e\x9c\x3f\x9c\x40\x9c\x41\x9c\x42\x9c\x43\x9c\x44\x9c\x45\x9c\x46\x9c\x47\x9c\x48\x9c\x49\x9c\x4a\x9c\x4b\x9c\x4c\x9c\x4d\x9c\x4e\x9c\x4f\x9c\x50\x9c\x51\x9c\x52\x9c\x53\x9c\x54\x9c\x55\x9c\x56\x9c\x57\x9c\x58\x9c\x59\x9c\x5a\x9c\x5b\x9c\x5c\x9c\x5d\x9c\x5e\x9c\x5f\x9c\x60\x9c\x61\x9c\x62\x9c\x63\x9c\x64\x9c\x65\x9c\x66\x9c\x67\x9c\x68\x9c\x69\x9c\x6a\x9c\x6b\x9c\x6c\x9c\x6d\x9c\x6e\x9c\x6f\x9c\x70\x9c\x71\x9c\x72\x9c\x73\x9c\x74\x9c\x75\x9c\x76\x9c\x77\x9c\x78\x9c\x79\x9c\x7a\x9c\x7b\x00\x00\x00\x00", /* c900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x7d\x9c\x7e\x9c\x80\x9c\x83\x9c\x84\x9c\x89\x9c\x8a\x9c\x8c\x9c\x8f\x9c\x93\x9c\x96\x9c\x97\x9c\x98\x9c\x99\x9c\x9d\x9c\xaa\x9c\xac\x9c\xaf\x9c\xb9\x9c\xbe\x9c\xbf\x9c\xc0\x9c\xc1\x9c\xc2\x9c\xc8\x9c\xc9\x9c\xd1\x9c\xd2\x9c\xda\x9c\xdb\x9c\xe0\x9c\xe1\x9c\xe3\x9c\xe4\x9c\xe5\x9c\xe6\x9c\xe7\x9c\xe8\x9c\xe9\x9c\xea\x9c\xeb\x9c\xec\x9c\xed\x9c\xee\x9c\xef\x9c\xf0\x9c\xf1\x9c\xf2\x9c\xf3\x9c\xf4\x9c\xf5\x9c\xf6\x9c\xf7\x9c\xf8\x9c\xf9\x9c\xfa\x9c\xfb\x9c\xfc\x9c\xfd\x9c\xfe\x9c\xff\x9d\x00\x9d\x01", /* c980 */ "\x00\x00\x9d\x02\x9d\x03\x9d\x04\x9d\x05\x9d\x06\x9d\x07\x9d\x08\x9d\x09\x9d\x0a\x9d\x0b\x9d\x0c\x9d\x0d\x9d\x0e\x9d\x0f\x9d\x10\x9d\x11\x9d\x12\x9d\x13\x9d\x14\x9d\x15\x9d\x16\x9d\x17\x9d\x18\x9d\x19\x9d\x1a\x9d\x1b\x9d\x1c\x9d\x1d\x9d\x1e\x9d\x1f\x9d\x20\x9d\x21\x9d\x22\x9d\x23\x9d\x24\x9d\x25\x9d\x26\x9d\x27\x9d\x28\x9d\x29\x9d\x2a\x9d\x2b\x9d\x2c\x9d\x2d\x9d\x2e\x9d\x2f\x9d\x30\x9d\x31\x9d\x32\x9d\x33\x9d\x34\x9d\x35\x9d\x36\x9d\x37\x9d\x38\x9d\x39\x9d\x3a\x9d\x3b\x9d\x3c\x9d\x3d\x9d\x3e\x9d\x3f\x9d\x40\x9d\x41\x9d\x42\x9d\x43\x9d\x44\x9d\x45\x9d\x46\x9d\x47\x9d\x48\x9d\x49\x9d\x4a\x9d\x4b\x9d\x4c\x9d\x4d\x9d\x4e\x9d\x4f\x9d\x50\x9d\x51\x9d\x52\x9d\x53\x9d\x54\x9d\x55\x9d\x56\x9d\x57\x9d\x58\x9d\x59\x9d\x5a\x9d\x5b\x9d\x5c\x9d\x5d\x9d\x5e\x9d\x5f\x9d\x60\x9d\x61\x9d\x62\x9d\x63\x9d\x64\x9d\x65\x9d\x66\x9d\x67\x9d\x68\x9d\x69\x9d\x6a\x9d\x6b\x9d\x6c\x9d\x6d\x9d\x6e\x9d\x6f\x9d\x70\x9d\x71\x9d\x72\x9d\x73\x9d\x74\x9d\x75\x9d\x76\x9d\x77\x9d\x78\x9d\x79\x9d\x7a\x9d\x7b\x9d\x7c\x9d\x7d\x9d\x7e\x00\x00\x00\x00", /* ca00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x7f\x9d\x80\x9d\x81\x9d\x82\x9d\x83\x9d\x84\x9d\x85\x9d\x86\x9d\x87\x9d\x88\x9d\x89\x9d\x8a\x9d\x8b\x9d\x8c\x9d\x8d\x9d\x8e\x9d\x8f\x9d\x90\x9d\x91\x9d\x92\x9d\x93\x9d\x94\x9d\x95\x9d\x96\x9d\x97\x9d\x98\x9d\x99\x9d\x9a\x9d\x9b\x9d\x9c\x9d\x9d\x9d\x9e\x9d\x9f\x9d\xa0\x9d\xa1\x9d\xa2\x9d\xa3\x9d\xa4\x9d\xa5\x9d\xa6\x9d\xa7\x9d\xa8\x9d\xa9\x9d\xaa\x9d\xab\x9d\xac\x9d\xad\x9d\xae\x9d\xaf\x9d\xb0\x9d\xb1\x9d\xb2\x9d\xb3\x9d\xb4\x9d\xb5\x9d\xb6\x9d\xb7\x9d\xb8\x9d\xb9\x9d\xba\x9d\xbb\x9d\xbc\x9d\xbd", /* ca80 */ "\x00\x00\x9d\xbe\x9d\xbf\x9d\xc0\x9d\xc1\x9d\xc2\x9d\xc3\x9d\xc4\x9d\xc5\x9d\xc6\x9d\xc7\x9d\xc8\x9d\xc9\x9d\xca\x9d\xcb\x9d\xcc\x9d\xcd\x9d\xce\x9d\xcf\x9d\xd0\x9d\xd1\x9d\xd2\x9d\xd3\x9d\xd4\x9d\xd5\x9d\xd6\x9d\xd7\x9d\xd8\x9d\xd9\x9d\xda\x9d\xdb\x9d\xdc\x9d\xdd\x9d\xde\x9d\xdf\x9d\xe0\x9d\xe1\x9d\xe2\x9d\xe3\x9d\xe4\x9d\xe5\x9d\xe6\x9d\xe7\x9d\xe8\x9d\xe9\x9d\xea\x9d\xeb\x9d\xec\x9d\xed\x9d\xee\x9d\xef\x9d\xf0\x9d\xf1\x9d\xf2\x9d\xf3\x9d\xf4\x9d\xf5\x9d\xf6\x9d\xf7\x9d\xf8\x9d\xf9\x9d\xfa\x9d\xfb\x9d\xfc\x9d\xfd\x9d\xfe\x9d\xff\x9e\x00\x9e\x01\x9e\x02\x9e\x03\x9e\x04\x9e\x05\x9e\x06\x9e\x07\x9e\x08\x9e\x09\x9e\x0a\x9e\x0b\x9e\x0c\x9e\x0d\x9e\x0e\x9e\x0f\x9e\x10\x9e\x11\x9e\x12\x9e\x13\x9e\x14\x9e\x15\x9e\x16\x9e\x17\x9e\x18\x9e\x19\x9e\x1a\x9e\x1b\x9e\x1c\x9e\x1d\x9e\x1e\x9e\x24\x9e\x27\x9e\x2e\x9e\x30\x9e\x34\x9e\x3b\x9e\x3c\x9e\x40\x9e\x4d\x9e\x50\x9e\x52\x9e\x53\x9e\x54\x9e\x56\x9e\x59\x9e\x5d\x9e\x5f\x9e\x60\x9e\x61\x9e\x62\x9e\x65\x9e\x6e\x9e\x6f\x9e\x72\x9e\x74\x9e\x75\x9e\x76\x9e\x77\x00\x00\x00\x00", /* cb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x78\x9e\x79\x9e\x7a\x9e\x7b\x9e\x7c\x9e\x7d\x9e\x80\x9e\x81\x9e\x83\x9e\x84\x9e\x85\x9e\x86\x9e\x89\x9e\x8a\x9e\x8c\x9e\x8d\x9e\x8e\x9e\x8f\x9e\x90\x9e\x91\x9e\x94\x9e\x95\x9e\x96\x9e\x97\x9e\x98\x9e\x99\x9e\x9a\x9e\x9b\x9e\x9c\x9e\x9e\x9e\xa0\x9e\xa1\x9e\xa2\x9e\xa3\x9e\xa4\x9e\xa5\x9e\xa7\x9e\xa8\x9e\xa9\x9e\xaa\x9e\xab\x9e\xac\x9e\xad\x9e\xae\x9e\xaf\x9e\xb0\x9e\xb1\x9e\xb2\x9e\xb3\x9e\xb5\x9e\xb6\x9e\xb7\x9e\xb9\x9e\xba\x9e\xbc\x9e\xbf\x9e\xc0\x9e\xc1\x9e\xc2\x9e\xc3\x9e\xc5\x9e\xc6\x9e\xc7", /* cb80 */ "\x00\x00\x9e\xc8\x9e\xca\x9e\xcb\x9e\xcc\x9e\xd0\x9e\xd2\x9e\xd3\x9e\xd5\x9e\xd6\x9e\xd7\x9e\xd9\x9e\xda\x9e\xde\x9e\xe1\x9e\xe3\x9e\xe4\x9e\xe6\x9e\xe8\x9e\xeb\x9e\xec\x9e\xed\x9e\xee\x9e\xf0\x9e\xf1\x9e\xf2\x9e\xf3\x9e\xf4\x9e\xf5\x9e\xf6\x9e\xf7\x9e\xf8\x9e\xfa\x9e\xfd\x9e\xff\x9f\x00\x9f\x01\x9f\x02\x9f\x03\x9f\x04\x9f\x05\x9f\x06\x9f\x07\x9f\x08\x9f\x09\x9f\x0a\x9f\x0c\x9f\x0f\x9f\x11\x9f\x12\x9f\x14\x9f\x15\x9f\x16\x9f\x18\x9f\x1a\x9f\x1b\x9f\x1c\x9f\x1d\x9f\x1e\x9f\x1f\x9f\x21\x9f\x23\x9f\x24\x9f\x25\x9f\x26\x9f\x27\x9f\x28\x9f\x29\x9f\x2a\x9f\x2b\x9f\x2d\x9f\x2e\x9f\x30\x9f\x31\x9f\x32\x9f\x33\x9f\x34\x9f\x35\x9f\x36\x9f\x38\x9f\x3a\x9f\x3c\x9f\x3f\x9f\x40\x9f\x41\x9f\x42\x9f\x43\x9f\x45\x9f\x46\x9f\x47\x9f\x48\x9f\x49\x9f\x4a\x9f\x4b\x9f\x4c\x9f\x4d\x9f\x4e\x9f\x4f\x9f\x52\x9f\x53\x9f\x54\x9f\x55\x9f\x56\x9f\x57\x9f\x58\x9f\x59\x9f\x5a\x9f\x5b\x9f\x5c\x9f\x5d\x9f\x5e\x9f\x5f\x9f\x60\x9f\x61\x9f\x62\x9f\x63\x9f\x64\x9f\x65\x9f\x66\x9f\x67\x9f\x68\x9f\x69\x9f\x6a\x9f\x6b\x9f\x6c\x9f\x6d\x00\x00\x00\x00", /* cc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x6e\x9f\x6f\x9f\x70\x9f\x71\x9f\x72\x9f\x73\x9f\x74\x9f\x75\x9f\x76\x9f\x77\x9f\x78\x9f\x79\x9f\x7a\x9f\x7b\x9f\x7c\x9f\x7d\x9f\x7e\x9f\x81\x9f\x82\x9f\x8d\x9f\x8e\x9f\x8f\x9f\x90\x9f\x91\x9f\x92\x9f\x93\x9f\x94\x9f\x95\x9f\x96\x9f\x97\x9f\x98\x9f\x9c\x9f\x9d\x9f\x9e\x9f\xa1\x9f\xa2\x9f\xa3\x9f\xa4\x9f\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* cc80 */ NULL, /* cd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xca\x02\xcb\x02\xd9\x20\x13\x20\x14\x20\x35\x21\x05\x21\x09\x21\x96\x21\x97\x21\x98\x21\x99\x22\x15\x22\x1f\x22\x23\x22\x52\x22\x66\x22\x67\x22\xbf\x25\x50\x25\x51\x25\x52\x25\x53\x25\x54\x25\x55\x25\x56\x25\x57\x25\x58\x25\x59\x25\x5a\x25\x5b\x25\x5c\x25\x5d\x25\x5e\x25\x5f\x25\x60\x25\x61\x25\x62\x25\x63\x25\x64\x25\x65\x25\x66\x25\x67\x25\x68\x25\x69\x25\x6a\x25\x6b\x25\x6c\x25\x6d\x25\x6e\x25\x6f\x25\x70\x25\x71\x25\x72\x25\x73\x25\x81\x25\x82\x25\x83\x25\x84\x25\x85\x25\x86\x25\x87\x25\x88", /* cd80 */ "\x00\x00\x25\x89\x25\x8a\x25\x8b\x25\x8c\x25\x8d\x25\x8e\x25\x8f\x25\x93\x25\x94\x25\x95\x25\xe2\x25\xe3\x25\xe4\x25\xe5\x26\x09\x22\x95\x30\x1d\x30\x1e\x30\x21\x30\x22\x30\x23\x30\x24\x30\x25\x30\x26\x30\x27\x30\x28\x30\x29\x32\xa3\x33\x8e\x33\x8f\x33\x9c\x33\x9d\x33\x9e\x33\xa1\x33\xc4\x33\xce\x33\xd1\x33\xd2\x33\xd5\xfe\x30\xfe\x49\xfe\x4a\xfe\x4b\xfe\x4c\xfe\x4d\xfe\x4e\xfe\x4f\xfe\x50\xfe\x51\xfe\x52\xfe\x54\xfe\x55\xfe\x56\xfe\x57\xfe\x59\xfe\x5a\xfe\x5b\xfe\x5c\xfe\x5d\xfe\x5e\xfe\x5f\xfe\x60\xfe\x61\xfe\x62\xfe\x63\xfe\x64\xfe\x65\xfe\x66\xfe\x68\xfe\x69\xfe\x6a\xfe\x6b\x30\x3e\x2f\xf0\x2f\xf1\x2f\xf2\x2f\xf3\x2f\xf4\x2f\xf5\x2f\xf6\x2f\xf7\x2f\xf8\x2f\xf9\x2f\xfa\x2f\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* ce00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\x2c\xf9\x79\xf9\x95\xf9\xe7\xf9\xf1\xfa\x0c\xfa\x0d\xfa\x0e\xfa\x0f\xfa\x11\xfa\x13\xfa\x14\xfa\x18\xfa\x1f\xfa\x20\xfa\x21\xfa\x23\xfa\x24\xfa\x27\xfa\x28\xfa\x29\x2e\x81\xe8\x16\xe8\x17\xe8\x18\x2e\x84\x34\x73\x34\x47\x2e\x88\x2e\x8b\xe8\x1e\x35\x9e\x36\x1a\x36\x0e\x2e\x8c\x2e\x97\x39\x6e\x39\x18\xe8\x26\x39\xcf\x39\xdf\x3a\x73\x39\xd0\xe8\x2b\xe8\x2c\x3b\x4e\x3c\x6e\x3c\xe0\x2e\xa7\xe8\x31\xe8\x32\x2e\xaa\x40\x56\x41\x5f\x2e\xae\x43\x37\x2e\xb3\x2e\xb6\x2e\xb7\xe8\x3b\x43\xb1\x43\xac\x2e\xbb", /* ce80 */ "\x00\x00\x43\xdd\x44\xd6\x46\x61\x46\x4c\xe8\x43\x47\x23\x47\x29\x47\x7c\x47\x8d\x2e\xca\x49\x47\x49\x7a\x49\x7d\x49\x82\x49\x83\x49\x85\x49\x86\x49\x9f\x49\x9b\x49\xb7\x49\xb6\xe8\x54\xe8\x55\x4c\xa3\x4c\x9f\x4c\xa0\x4c\xa1\x4c\x77\x4c\xa2\x4d\x13\x4d\x14\x4d\x15\x4d\x16\x4d\x17\x4d\x18\x4d\x19\x4d\xae\xe8\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* cf00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x34\x01\x34\x02\x34\x03\x34\x04\x34\x05\x34\x06\x34\x07\x34\x08\x34\x09\x34\x0a\x34\x0b\x34\x0c\x34\x0d\x34\x0e\x34\x0f\x34\x10\x34\x11\x34\x12\x34\x13\x34\x14\x34\x15\x34\x16\x34\x17\x34\x18\x34\x19\x34\x1a\x34\x1b\x34\x1c\x34\x1d\x34\x1e\x34\x1f\x34\x20\x34\x21\x34\x22\x34\x23\x34\x24\x34\x25\x34\x26\x34\x27\x34\x28\x34\x29\x34\x2a\x34\x2b\x34\x2c\x34\x2d\x34\x2e\x34\x2f\x34\x30\x34\x31\x34\x32\x34\x33\x34\x34\x34\x35\x34\x36\x34\x37\x34\x38\x34\x39\x34\x3a\x34\x3b\x34\x3c\x34\x3d\x34\x3e", /* cf80 */ "\x34\x3f\x34\x40\x34\x41\x34\x42\x34\x43\x34\x44\x34\x45\x34\x46\x34\x48\x34\x49\x34\x4a\x34\x4b\x34\x4c\x34\x4d\x34\x4e\x34\x4f\x34\x50\x34\x51\x34\x52\x34\x53\x34\x54\x34\x55\x34\x56\x34\x57\x34\x58\x34\x59\x34\x5a\x34\x5b\x34\x5c\x34\x5d\x34\x5e\x34\x5f\x34\x60\x34\x61\x34\x62\x34\x63\x34\x64\x34\x65\x34\x66\x34\x67\x34\x68\x34\x69\x34\x6a\x34\x6b\x34\x6c\x34\x6d\x34\x6e\x34\x6f\x34\x70\x34\x71\x34\x72\x34\x74\x34\x75\x34\x76\x34\x77\x34\x78\x34\x79\x34\x7a\x34\x7b\x34\x7c\x34\x7d\x34\x7e\x34\x7f\x34\x80\x34\x81\x34\x82\x34\x83\x34\x84\x34\x85\x34\x86\x34\x87\x34\x88\x34\x89\x34\x8a\x34\x8b\x34\x8c\x34\x8d\x34\x8e\x34\x8f\x34\x90\x34\x91\x34\x92\x34\x93\x34\x94\x34\x95\x34\x96\x34\x97\x34\x98\x34\x99\x34\x9a\x34\x9b\x34\x9c\x34\x9d\x34\x9e\x34\x9f\x34\xa0\x34\xa1\x34\xa2\x34\xa3\x34\xa4\x34\xa5\x34\xa6\x34\xa7\x34\xa8\x34\xa9\x34\xaa\x34\xab\x34\xac\x34\xad\x34\xae\x34\xaf\x34\xb0\x34\xb1\x34\xb2\x34\xb3\x34\xb4\x34\xb5\x34\xb6\x34\xb7\x34\xb8\x34\xb9\x34\xba\x34\xbb\x34\xbc\x34\xbd\x34\xbe\x34\xbf\x00\x00", /* d000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\xc0\x34\xc1\x34\xc2\x34\xc3\x34\xc4\x34\xc5\x34\xc6\x34\xc7\x34\xc8\x34\xc9\x34\xca\x34\xcb\x34\xcc\x34\xcd\x34\xce\x34\xcf\x34\xd0\x34\xd1\x34\xd2\x34\xd3\x34\xd4\x34\xd5\x34\xd6\x34\xd7\x34\xd8\x34\xd9\x34\xda\x34\xdb\x34\xdc\x34\xdd\x34\xde\x34\xdf\x34\xe0\x34\xe1\x34\xe2\x34\xe3\x34\xe4\x34\xe5\x34\xe6\x34\xe7\x34\xe8\x34\xe9\x34\xea\x34\xeb\x34\xec\x34\xed\x34\xee\x34\xef\x34\xf0\x34\xf1\x34\xf2\x34\xf3\x34\xf4\x34\xf5\x34\xf6\x34\xf7\x34\xf8\x34\xf9\x34\xfa\x34\xfb\x34\xfc\x34\xfd\x34\xfe", /* d080 */ "\x34\xff\x35\x00\x35\x01\x35\x02\x35\x03\x35\x04\x35\x05\x35\x06\x35\x07\x35\x08\x35\x09\x35\x0a\x35\x0b\x35\x0c\x35\x0d\x35\x0e\x35\x0f\x35\x10\x35\x11\x35\x12\x35\x13\x35\x14\x35\x15\x35\x16\x35\x17\x35\x18\x35\x19\x35\x1a\x35\x1b\x35\x1c\x35\x1d\x35\x1e\x35\x1f\x35\x20\x35\x21\x35\x22\x35\x23\x35\x24\x35\x25\x35\x26\x35\x27\x35\x28\x35\x29\x35\x2a\x35\x2b\x35\x2c\x35\x2d\x35\x2e\x35\x2f\x35\x30\x35\x31\x35\x32\x35\x33\x35\x34\x35\x35\x35\x36\x35\x37\x35\x38\x35\x39\x35\x3a\x35\x3b\x35\x3c\x35\x3d\x35\x3e\x35\x3f\x35\x40\x35\x41\x35\x42\x35\x43\x35\x44\x35\x45\x35\x46\x35\x47\x35\x48\x35\x49\x35\x4a\x35\x4b\x35\x4c\x35\x4d\x35\x4e\x35\x4f\x35\x50\x35\x51\x35\x52\x35\x53\x35\x54\x35\x55\x35\x56\x35\x57\x35\x58\x35\x59\x35\x5a\x35\x5b\x35\x5c\x35\x5d\x35\x5e\x35\x5f\x35\x60\x35\x61\x35\x62\x35\x63\x35\x64\x35\x65\x35\x66\x35\x67\x35\x68\x35\x69\x35\x6a\x35\x6b\x35\x6c\x35\x6d\x35\x6e\x35\x6f\x35\x70\x35\x71\x35\x72\x35\x73\x35\x74\x35\x75\x35\x76\x35\x77\x35\x78\x35\x79\x35\x7a\x35\x7b\x35\x7c\x35\x7d\x00\x00", /* d100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x7e\x35\x7f\x35\x80\x35\x81\x35\x82\x35\x83\x35\x84\x35\x85\x35\x86\x35\x87\x35\x88\x35\x89\x35\x8a\x35\x8b\x35\x8c\x35\x8d\x35\x8e\x35\x8f\x35\x90\x35\x91\x35\x92\x35\x93\x35\x94\x35\x95\x35\x96\x35\x97\x35\x98\x35\x99\x35\x9a\x35\x9b\x35\x9c\x35\x9d\x35\x9f\x35\xa0\x35\xa1\x35\xa2\x35\xa3\x35\xa4\x35\xa5\x35\xa6\x35\xa7\x35\xa8\x35\xa9\x35\xaa\x35\xab\x35\xac\x35\xad\x35\xae\x35\xaf\x35\xb0\x35\xb1\x35\xb2\x35\xb3\x35\xb4\x35\xb5\x35\xb6\x35\xb7\x35\xb8\x35\xb9\x35\xba\x35\xbb\x35\xbc\x35\xbd", /* d180 */ "\x35\xbe\x35\xbf\x35\xc0\x35\xc1\x35\xc2\x35\xc3\x35\xc4\x35\xc5\x35\xc6\x35\xc7\x35\xc8\x35\xc9\x35\xca\x35\xcb\x35\xcc\x35\xcd\x35\xce\x35\xcf\x35\xd0\x35\xd1\x35\xd2\x35\xd3\x35\xd4\x35\xd5\x35\xd6\x35\xd7\x35\xd8\x35\xd9\x35\xda\x35\xdb\x35\xdc\x35\xdd\x35\xde\x35\xdf\x35\xe0\x35\xe1\x35\xe2\x35\xe3\x35\xe4\x35\xe5\x35\xe6\x35\xe7\x35\xe8\x35\xe9\x35\xea\x35\xeb\x35\xec\x35\xed\x35\xee\x35\xef\x35\xf0\x35\xf1\x35\xf2\x35\xf3\x35\xf4\x35\xf5\x35\xf6\x35\xf7\x35\xf8\x35\xf9\x35\xfa\x35\xfb\x35\xfc\x35\xfd\x35\xfe\x35\xff\x36\x00\x36\x01\x36\x02\x36\x03\x36\x04\x36\x05\x36\x06\x36\x07\x36\x08\x36\x09\x36\x0a\x36\x0b\x36\x0c\x36\x0d\x36\x0f\x36\x10\x36\x11\x36\x12\x36\x13\x36\x14\x36\x15\x36\x16\x36\x17\x36\x18\x36\x19\x36\x1b\x36\x1c\x36\x1d\x36\x1e\x36\x1f\x36\x20\x36\x21\x36\x22\x36\x23\x36\x24\x36\x25\x36\x26\x36\x27\x36\x28\x36\x29\x36\x2a\x36\x2b\x36\x2c\x36\x2d\x36\x2e\x36\x2f\x36\x30\x36\x31\x36\x32\x36\x33\x36\x34\x36\x35\x36\x36\x36\x37\x36\x38\x36\x39\x36\x3a\x36\x3b\x36\x3c\x36\x3d\x36\x3e\x00\x00", /* d200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x3f\x36\x40\x36\x41\x36\x42\x36\x43\x36\x44\x36\x45\x36\x46\x36\x47\x36\x48\x36\x49\x36\x4a\x36\x4b\x36\x4c\x36\x4d\x36\x4e\x36\x4f\x36\x50\x36\x51\x36\x52\x36\x53\x36\x54\x36\x55\x36\x56\x36\x57\x36\x58\x36\x59\x36\x5a\x36\x5b\x36\x5c\x36\x5d\x36\x5e\x36\x5f\x36\x60\x36\x61\x36\x62\x36\x63\x36\x64\x36\x65\x36\x66\x36\x67\x36\x68\x36\x69\x36\x6a\x36\x6b\x36\x6c\x36\x6d\x36\x6e\x36\x6f\x36\x70\x36\x71\x36\x72\x36\x73\x36\x74\x36\x75\x36\x76\x36\x77\x36\x78\x36\x79\x36\x7a\x36\x7b\x36\x7c\x36\x7d", /* d280 */ "\x36\x7e\x36\x7f\x36\x80\x36\x81\x36\x82\x36\x83\x36\x84\x36\x85\x36\x86\x36\x87\x36\x88\x36\x89\x36\x8a\x36\x8b\x36\x8c\x36\x8d\x36\x8e\x36\x8f\x36\x90\x36\x91\x36\x92\x36\x93\x36\x94\x36\x95\x36\x96\x36\x97\x36\x98\x36\x99\x36\x9a\x36\x9b\x36\x9c\x36\x9d\x36\x9e\x36\x9f\x36\xa0\x36\xa1\x36\xa2\x36\xa3\x36\xa4\x36\xa5\x36\xa6\x36\xa7\x36\xa8\x36\xa9\x36\xaa\x36\xab\x36\xac\x36\xad\x36\xae\x36\xaf\x36\xb0\x36\xb1\x36\xb2\x36\xb3\x36\xb4\x36\xb5\x36\xb6\x36\xb7\x36\xb8\x36\xb9\x36\xba\x36\xbb\x36\xbc\x36\xbd\x36\xbe\x36\xbf\x36\xc0\x36\xc1\x36\xc2\x36\xc3\x36\xc4\x36\xc5\x36\xc6\x36\xc7\x36\xc8\x36\xc9\x36\xca\x36\xcb\x36\xcc\x36\xcd\x36\xce\x36\xcf\x36\xd0\x36\xd1\x36\xd2\x36\xd3\x36\xd4\x36\xd5\x36\xd6\x36\xd7\x36\xd8\x36\xd9\x36\xda\x36\xdb\x36\xdc\x36\xdd\x36\xde\x36\xdf\x36\xe0\x36\xe1\x36\xe2\x36\xe3\x36\xe4\x36\xe5\x36\xe6\x36\xe7\x36\xe8\x36\xe9\x36\xea\x36\xeb\x36\xec\x36\xed\x36\xee\x36\xef\x36\xf0\x36\xf1\x36\xf2\x36\xf3\x36\xf4\x36\xf5\x36\xf6\x36\xf7\x36\xf8\x36\xf9\x36\xfa\x36\xfb\x36\xfc\x00\x00", /* d300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\xfd\x36\xfe\x36\xff\x37\x00\x37\x01\x37\x02\x37\x03\x37\x04\x37\x05\x37\x06\x37\x07\x37\x08\x37\x09\x37\x0a\x37\x0b\x37\x0c\x37\x0d\x37\x0e\x37\x0f\x37\x10\x37\x11\x37\x12\x37\x13\x37\x14\x37\x15\x37\x16\x37\x17\x37\x18\x37\x19\x37\x1a\x37\x1b\x37\x1c\x37\x1d\x37\x1e\x37\x1f\x37\x20\x37\x21\x37\x22\x37\x23\x37\x24\x37\x25\x37\x26\x37\x27\x37\x28\x37\x29\x37\x2a\x37\x2b\x37\x2c\x37\x2d\x37\x2e\x37\x2f\x37\x30\x37\x31\x37\x32\x37\x33\x37\x34\x37\x35\x37\x36\x37\x37\x37\x38\x37\x39\x37\x3a\x37\x3b", /* d380 */ "\x37\x3c\x37\x3d\x37\x3e\x37\x3f\x37\x40\x37\x41\x37\x42\x37\x43\x37\x44\x37\x45\x37\x46\x37\x47\x37\x48\x37\x49\x37\x4a\x37\x4b\x37\x4c\x37\x4d\x37\x4e\x37\x4f\x37\x50\x37\x51\x37\x52\x37\x53\x37\x54\x37\x55\x37\x56\x37\x57\x37\x58\x37\x59\x37\x5a\x37\x5b\x37\x5c\x37\x5d\x37\x5e\x37\x5f\x37\x60\x37\x61\x37\x62\x37\x63\x37\x64\x37\x65\x37\x66\x37\x67\x37\x68\x37\x69\x37\x6a\x37\x6b\x37\x6c\x37\x6d\x37\x6e\x37\x6f\x37\x70\x37\x71\x37\x72\x37\x73\x37\x74\x37\x75\x37\x76\x37\x77\x37\x78\x37\x79\x37\x7a\x37\x7b\x37\x7c\x37\x7d\x37\x7e\x37\x7f\x37\x80\x37\x81\x37\x82\x37\x83\x37\x84\x37\x85\x37\x86\x37\x87\x37\x88\x37\x89\x37\x8a\x37\x8b\x37\x8c\x37\x8d\x37\x8e\x37\x8f\x37\x90\x37\x91\x37\x92\x37\x93\x37\x94\x37\x95\x37\x96\x37\x97\x37\x98\x37\x99\x37\x9a\x37\x9b\x37\x9c\x37\x9d\x37\x9e\x37\x9f\x37\xa0\x37\xa1\x37\xa2\x37\xa3\x37\xa4\x37\xa5\x37\xa6\x37\xa7\x37\xa8\x37\xa9\x37\xaa\x37\xab\x37\xac\x37\xad\x37\xae\x37\xaf\x37\xb0\x37\xb1\x37\xb2\x37\xb3\x37\xb4\x37\xb5\x37\xb6\x37\xb7\x37\xb8\x37\xb9\x37\xba\x00\x00", /* d400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\xbb\x37\xbc\x37\xbd\x37\xbe\x37\xbf\x37\xc0\x37\xc1\x37\xc2\x37\xc3\x37\xc4\x37\xc5\x37\xc6\x37\xc7\x37\xc8\x37\xc9\x37\xca\x37\xcb\x37\xcc\x37\xcd\x37\xce\x37\xcf\x37\xd0\x37\xd1\x37\xd2\x37\xd3\x37\xd4\x37\xd5\x37\xd6\x37\xd7\x37\xd8\x37\xd9\x37\xda\x37\xdb\x37\xdc\x37\xdd\x37\xde\x37\xdf\x37\xe0\x37\xe1\x37\xe2\x37\xe3\x37\xe4\x37\xe5\x37\xe6\x37\xe7\x37\xe8\x37\xe9\x37\xea\x37\xeb\x37\xec\x37\xed\x37\xee\x37\xef\x37\xf0\x37\xf1\x37\xf2\x37\xf3\x37\xf4\x37\xf5\x37\xf6\x37\xf7\x37\xf8\x37\xf9", /* d480 */ "\x37\xfa\x37\xfb\x37\xfc\x37\xfd\x37\xfe\x37\xff\x38\x00\x38\x01\x38\x02\x38\x03\x38\x04\x38\x05\x38\x06\x38\x07\x38\x08\x38\x09\x38\x0a\x38\x0b\x38\x0c\x38\x0d\x38\x0e\x38\x0f\x38\x10\x38\x11\x38\x12\x38\x13\x38\x14\x38\x15\x38\x16\x38\x17\x38\x18\x38\x19\x38\x1a\x38\x1b\x38\x1c\x38\x1d\x38\x1e\x38\x1f\x38\x20\x38\x21\x38\x22\x38\x23\x38\x24\x38\x25\x38\x26\x38\x27\x38\x28\x38\x29\x38\x2a\x38\x2b\x38\x2c\x38\x2d\x38\x2e\x38\x2f\x38\x30\x38\x31\x38\x32\x38\x33\x38\x34\x38\x35\x38\x36\x38\x37\x38\x38\x38\x39\x38\x3a\x38\x3b\x38\x3c\x38\x3d\x38\x3e\x38\x3f\x38\x40\x38\x41\x38\x42\x38\x43\x38\x44\x38\x45\x38\x46\x38\x47\x38\x48\x38\x49\x38\x4a\x38\x4b\x38\x4c\x38\x4d\x38\x4e\x38\x4f\x38\x50\x38\x51\x38\x52\x38\x53\x38\x54\x38\x55\x38\x56\x38\x57\x38\x58\x38\x59\x38\x5a\x38\x5b\x38\x5c\x38\x5d\x38\x5e\x38\x5f\x38\x60\x38\x61\x38\x62\x38\x63\x38\x64\x38\x65\x38\x66\x38\x67\x38\x68\x38\x69\x38\x6a\x38\x6b\x38\x6c\x38\x6d\x38\x6e\x38\x6f\x38\x70\x38\x71\x38\x72\x38\x73\x38\x74\x38\x75\x38\x76\x38\x77\x38\x78\x00\x00", /* d500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x79\x38\x7a\x38\x7b\x38\x7c\x38\x7d\x38\x7e\x38\x7f\x38\x80\x38\x81\x38\x82\x38\x83\x38\x84\x38\x85\x38\x86\x38\x87\x38\x88\x38\x89\x38\x8a\x38\x8b\x38\x8c\x38\x8d\x38\x8e\x38\x8f\x38\x90\x38\x91\x38\x92\x38\x93\x38\x94\x38\x95\x38\x96\x38\x97\x38\x98\x38\x99\x38\x9a\x38\x9b\x38\x9c\x38\x9d\x38\x9e\x38\x9f\x38\xa0\x38\xa1\x38\xa2\x38\xa3\x38\xa4\x38\xa5\x38\xa6\x38\xa7\x38\xa8\x38\xa9\x38\xaa\x38\xab\x38\xac\x38\xad\x38\xae\x38\xaf\x38\xb0\x38\xb1\x38\xb2\x38\xb3\x38\xb4\x38\xb5\x38\xb6\x38\xb7", /* d580 */ "\x38\xb8\x38\xb9\x38\xba\x38\xbb\x38\xbc\x38\xbd\x38\xbe\x38\xbf\x38\xc0\x38\xc1\x38\xc2\x38\xc3\x38\xc4\x38\xc5\x38\xc6\x38\xc7\x38\xc8\x38\xc9\x38\xca\x38\xcb\x38\xcc\x38\xcd\x38\xce\x38\xcf\x38\xd0\x38\xd1\x38\xd2\x38\xd3\x38\xd4\x38\xd5\x38\xd6\x38\xd7\x38\xd8\x38\xd9\x38\xda\x38\xdb\x38\xdc\x38\xdd\x38\xde\x38\xdf\x38\xe0\x38\xe1\x38\xe2\x38\xe3\x38\xe4\x38\xe5\x38\xe6\x38\xe7\x38\xe8\x38\xe9\x38\xea\x38\xeb\x38\xec\x38\xed\x38\xee\x38\xef\x38\xf0\x38\xf1\x38\xf2\x38\xf3\x38\xf4\x38\xf5\x38\xf6\x38\xf7\x38\xf8\x38\xf9\x38\xfa\x38\xfb\x38\xfc\x38\xfd\x38\xfe\x38\xff\x39\x00\x39\x01\x39\x02\x39\x03\x39\x04\x39\x05\x39\x06\x39\x07\x39\x08\x39\x09\x39\x0a\x39\x0b\x39\x0c\x39\x0d\x39\x0e\x39\x0f\x39\x10\x39\x11\x39\x12\x39\x13\x39\x14\x39\x15\x39\x16\x39\x17\x39\x19\x39\x1a\x39\x1b\x39\x1c\x39\x1d\x39\x1e\x39\x1f\x39\x20\x39\x21\x39\x22\x39\x23\x39\x24\x39\x25\x39\x26\x39\x27\x39\x28\x39\x29\x39\x2a\x39\x2b\x39\x2c\x39\x2d\x39\x2e\x39\x2f\x39\x30\x39\x31\x39\x32\x39\x33\x39\x34\x39\x35\x39\x36\x39\x37\x00\x00", /* d600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\x38\x39\x39\x39\x3a\x39\x3b\x39\x3c\x39\x3d\x39\x3e\x39\x3f\x39\x40\x39\x41\x39\x42\x39\x43\x39\x44\x39\x45\x39\x46\x39\x47\x39\x48\x39\x49\x39\x4a\x39\x4b\x39\x4c\x39\x4d\x39\x4e\x39\x4f\x39\x50\x39\x51\x39\x52\x39\x53\x39\x54\x39\x55\x39\x56\x39\x57\x39\x58\x39\x59\x39\x5a\x39\x5b\x39\x5c\x39\x5d\x39\x5e\x39\x5f\x39\x60\x39\x61\x39\x62\x39\x63\x39\x64\x39\x65\x39\x66\x39\x67\x39\x68\x39\x69\x39\x6a\x39\x6b\x39\x6c\x39\x6d\x39\x6f\x39\x70\x39\x71\x39\x72\x39\x73\x39\x74\x39\x75\x39\x76\x39\x77", /* d680 */ "\x39\x78\x39\x79\x39\x7a\x39\x7b\x39\x7c\x39\x7d\x39\x7e\x39\x7f\x39\x80\x39\x81\x39\x82\x39\x83\x39\x84\x39\x85\x39\x86\x39\x87\x39\x88\x39\x89\x39\x8a\x39\x8b\x39\x8c\x39\x8d\x39\x8e\x39\x8f\x39\x90\x39\x91\x39\x92\x39\x93\x39\x94\x39\x95\x39\x96\x39\x97\x39\x98\x39\x99\x39\x9a\x39\x9b\x39\x9c\x39\x9d\x39\x9e\x39\x9f\x39\xa0\x39\xa1\x39\xa2\x39\xa3\x39\xa4\x39\xa5\x39\xa6\x39\xa7\x39\xa8\x39\xa9\x39\xaa\x39\xab\x39\xac\x39\xad\x39\xae\x39\xaf\x39\xb0\x39\xb1\x39\xb2\x39\xb3\x39\xb4\x39\xb5\x39\xb6\x39\xb7\x39\xb8\x39\xb9\x39\xba\x39\xbb\x39\xbc\x39\xbd\x39\xbe\x39\xbf\x39\xc0\x39\xc1\x39\xc2\x39\xc3\x39\xc4\x39\xc5\x39\xc6\x39\xc7\x39\xc8\x39\xc9\x39\xca\x39\xcb\x39\xcc\x39\xcd\x39\xce\x39\xd1\x39\xd2\x39\xd3\x39\xd4\x39\xd5\x39\xd6\x39\xd7\x39\xd8\x39\xd9\x39\xda\x39\xdb\x39\xdc\x39\xdd\x39\xde\x39\xe0\x39\xe1\x39\xe2\x39\xe3\x39\xe4\x39\xe5\x39\xe6\x39\xe7\x39\xe8\x39\xe9\x39\xea\x39\xeb\x39\xec\x39\xed\x39\xee\x39\xef\x39\xf0\x39\xf1\x39\xf2\x39\xf3\x39\xf4\x39\xf5\x39\xf6\x39\xf7\x39\xf8\x39\xf9\x00\x00", /* d700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x39\xfa\x39\xfb\x39\xfc\x39\xfd\x39\xfe\x39\xff\x3a\x00\x3a\x01\x3a\x02\x3a\x03\x3a\x04\x3a\x05\x3a\x06\x3a\x07\x3a\x08\x3a\x09\x3a\x0a\x3a\x0b\x3a\x0c\x3a\x0d\x3a\x0e\x3a\x0f\x3a\x10\x3a\x11\x3a\x12\x3a\x13\x3a\x14\x3a\x15\x3a\x16\x3a\x17\x3a\x18\x3a\x19\x3a\x1a\x3a\x1b\x3a\x1c\x3a\x1d\x3a\x1e\x3a\x1f\x3a\x20\x3a\x21\x3a\x22\x3a\x23\x3a\x24\x3a\x25\x3a\x26\x3a\x27\x3a\x28\x3a\x29\x3a\x2a\x3a\x2b\x3a\x2c\x3a\x2d\x3a\x2e\x3a\x2f\x3a\x30\x3a\x31\x3a\x32\x3a\x33\x3a\x34\x3a\x35\x3a\x36\x3a\x37\x3a\x38", /* d780 */ "\x3a\x39\x3a\x3a\x3a\x3b\x3a\x3c\x3a\x3d\x3a\x3e\x3a\x3f\x3a\x40\x3a\x41\x3a\x42\x3a\x43\x3a\x44\x3a\x45\x3a\x46\x3a\x47\x3a\x48\x3a\x49\x3a\x4a\x3a\x4b\x3a\x4c\x3a\x4d\x3a\x4e\x3a\x4f\x3a\x50\x3a\x51\x3a\x52\x3a\x53\x3a\x54\x3a\x55\x3a\x56\x3a\x57\x3a\x58\x3a\x59\x3a\x5a\x3a\x5b\x3a\x5c\x3a\x5d\x3a\x5e\x3a\x5f\x3a\x60\x3a\x61\x3a\x62\x3a\x63\x3a\x64\x3a\x65\x3a\x66\x3a\x67\x3a\x68\x3a\x69\x3a\x6a\x3a\x6b\x3a\x6c\x3a\x6d\x3a\x6e\x3a\x6f\x3a\x70\x3a\x71\x3a\x72\x3a\x74\x3a\x75\x3a\x76\x3a\x77\x3a\x78\x3a\x79\x3a\x7a\x3a\x7b\x3a\x7c\x3a\x7d\x3a\x7e\x3a\x7f\x3a\x80\x3a\x81\x3a\x82\x3a\x83\x3a\x84\x3a\x85\x3a\x86\x3a\x87\x3a\x88\x3a\x89\x3a\x8a\x3a\x8b\x3a\x8c\x3a\x8d\x3a\x8e\x3a\x8f\x3a\x90\x3a\x91\x3a\x92\x3a\x93\x3a\x94\x3a\x95\x3a\x96\x3a\x97\x3a\x98\x3a\x99\x3a\x9a\x3a\x9b\x3a\x9c\x3a\x9d\x3a\x9e\x3a\x9f\x3a\xa0\x3a\xa1\x3a\xa2\x3a\xa3\x3a\xa4\x3a\xa5\x3a\xa6\x3a\xa7\x3a\xa8\x3a\xa9\x3a\xaa\x3a\xab\x3a\xac\x3a\xad\x3a\xae\x3a\xaf\x3a\xb0\x3a\xb1\x3a\xb2\x3a\xb3\x3a\xb4\x3a\xb5\x3a\xb6\x3a\xb7\x3a\xb8\x00\x00", /* d800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\xb9\x3a\xba\x3a\xbb\x3a\xbc\x3a\xbd\x3a\xbe\x3a\xbf\x3a\xc0\x3a\xc1\x3a\xc2\x3a\xc3\x3a\xc4\x3a\xc5\x3a\xc6\x3a\xc7\x3a\xc8\x3a\xc9\x3a\xca\x3a\xcb\x3a\xcc\x3a\xcd\x3a\xce\x3a\xcf\x3a\xd0\x3a\xd1\x3a\xd2\x3a\xd3\x3a\xd4\x3a\xd5\x3a\xd6\x3a\xd7\x3a\xd8\x3a\xd9\x3a\xda\x3a\xdb\x3a\xdc\x3a\xdd\x3a\xde\x3a\xdf\x3a\xe0\x3a\xe1\x3a\xe2\x3a\xe3\x3a\xe4\x3a\xe5\x3a\xe6\x3a\xe7\x3a\xe8\x3a\xe9\x3a\xea\x3a\xeb\x3a\xec\x3a\xed\x3a\xee\x3a\xef\x3a\xf0\x3a\xf1\x3a\xf2\x3a\xf3\x3a\xf4\x3a\xf5\x3a\xf6\x3a\xf7", /* d880 */ "\x3a\xf8\x3a\xf9\x3a\xfa\x3a\xfb\x3a\xfc\x3a\xfd\x3a\xfe\x3a\xff\x3b\x00\x3b\x01\x3b\x02\x3b\x03\x3b\x04\x3b\x05\x3b\x06\x3b\x07\x3b\x08\x3b\x09\x3b\x0a\x3b\x0b\x3b\x0c\x3b\x0d\x3b\x0e\x3b\x0f\x3b\x10\x3b\x11\x3b\x12\x3b\x13\x3b\x14\x3b\x15\x3b\x16\x3b\x17\x3b\x18\x3b\x19\x3b\x1a\x3b\x1b\x3b\x1c\x3b\x1d\x3b\x1e\x3b\x1f\x3b\x20\x3b\x21\x3b\x22\x3b\x23\x3b\x24\x3b\x25\x3b\x26\x3b\x27\x3b\x28\x3b\x29\x3b\x2a\x3b\x2b\x3b\x2c\x3b\x2d\x3b\x2e\x3b\x2f\x3b\x30\x3b\x31\x3b\x32\x3b\x33\x3b\x34\x3b\x35\x3b\x36\x3b\x37\x3b\x38\x3b\x39\x3b\x3a\x3b\x3b\x3b\x3c\x3b\x3d\x3b\x3e\x3b\x3f\x3b\x40\x3b\x41\x3b\x42\x3b\x43\x3b\x44\x3b\x45\x3b\x46\x3b\x47\x3b\x48\x3b\x49\x3b\x4a\x3b\x4b\x3b\x4c\x3b\x4d\x3b\x4f\x3b\x50\x3b\x51\x3b\x52\x3b\x53\x3b\x54\x3b\x55\x3b\x56\x3b\x57\x3b\x58\x3b\x59\x3b\x5a\x3b\x5b\x3b\x5c\x3b\x5d\x3b\x5e\x3b\x5f\x3b\x60\x3b\x61\x3b\x62\x3b\x63\x3b\x64\x3b\x65\x3b\x66\x3b\x67\x3b\x68\x3b\x69\x3b\x6a\x3b\x6b\x3b\x6c\x3b\x6d\x3b\x6e\x3b\x6f\x3b\x70\x3b\x71\x3b\x72\x3b\x73\x3b\x74\x3b\x75\x3b\x76\x3b\x77\x00\x00", /* d900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x78\x3b\x79\x3b\x7a\x3b\x7b\x3b\x7c\x3b\x7d\x3b\x7e\x3b\x7f\x3b\x80\x3b\x81\x3b\x82\x3b\x83\x3b\x84\x3b\x85\x3b\x86\x3b\x87\x3b\x88\x3b\x89\x3b\x8a\x3b\x8b\x3b\x8c\x3b\x8d\x3b\x8e\x3b\x8f\x3b\x90\x3b\x91\x3b\x92\x3b\x93\x3b\x94\x3b\x95\x3b\x96\x3b\x97\x3b\x98\x3b\x99\x3b\x9a\x3b\x9b\x3b\x9c\x3b\x9d\x3b\x9e\x3b\x9f\x3b\xa0\x3b\xa1\x3b\xa2\x3b\xa3\x3b\xa4\x3b\xa5\x3b\xa6\x3b\xa7\x3b\xa8\x3b\xa9\x3b\xaa\x3b\xab\x3b\xac\x3b\xad\x3b\xae\x3b\xaf\x3b\xb0\x3b\xb1\x3b\xb2\x3b\xb3\x3b\xb4\x3b\xb5\x3b\xb6", /* d980 */ "\x3b\xb7\x3b\xb8\x3b\xb9\x3b\xba\x3b\xbb\x3b\xbc\x3b\xbd\x3b\xbe\x3b\xbf\x3b\xc0\x3b\xc1\x3b\xc2\x3b\xc3\x3b\xc4\x3b\xc5\x3b\xc6\x3b\xc7\x3b\xc8\x3b\xc9\x3b\xca\x3b\xcb\x3b\xcc\x3b\xcd\x3b\xce\x3b\xcf\x3b\xd0\x3b\xd1\x3b\xd2\x3b\xd3\x3b\xd4\x3b\xd5\x3b\xd6\x3b\xd7\x3b\xd8\x3b\xd9\x3b\xda\x3b\xdb\x3b\xdc\x3b\xdd\x3b\xde\x3b\xdf\x3b\xe0\x3b\xe1\x3b\xe2\x3b\xe3\x3b\xe4\x3b\xe5\x3b\xe6\x3b\xe7\x3b\xe8\x3b\xe9\x3b\xea\x3b\xeb\x3b\xec\x3b\xed\x3b\xee\x3b\xef\x3b\xf0\x3b\xf1\x3b\xf2\x3b\xf3\x3b\xf4\x3b\xf5\x3b\xf6\x3b\xf7\x3b\xf8\x3b\xf9\x3b\xfa\x3b\xfb\x3b\xfc\x3b\xfd\x3b\xfe\x3b\xff\x3c\x00\x3c\x01\x3c\x02\x3c\x03\x3c\x04\x3c\x05\x3c\x06\x3c\x07\x3c\x08\x3c\x09\x3c\x0a\x3c\x0b\x3c\x0c\x3c\x0d\x3c\x0e\x3c\x0f\x3c\x10\x3c\x11\x3c\x12\x3c\x13\x3c\x14\x3c\x15\x3c\x16\x3c\x17\x3c\x18\x3c\x19\x3c\x1a\x3c\x1b\x3c\x1c\x3c\x1d\x3c\x1e\x3c\x1f\x3c\x20\x3c\x21\x3c\x22\x3c\x23\x3c\x24\x3c\x25\x3c\x26\x3c\x27\x3c\x28\x3c\x29\x3c\x2a\x3c\x2b\x3c\x2c\x3c\x2d\x3c\x2e\x3c\x2f\x3c\x30\x3c\x31\x3c\x32\x3c\x33\x3c\x34\x3c\x35\x00\x00", /* da00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x36\x3c\x37\x3c\x38\x3c\x39\x3c\x3a\x3c\x3b\x3c\x3c\x3c\x3d\x3c\x3e\x3c\x3f\x3c\x40\x3c\x41\x3c\x42\x3c\x43\x3c\x44\x3c\x45\x3c\x46\x3c\x47\x3c\x48\x3c\x49\x3c\x4a\x3c\x4b\x3c\x4c\x3c\x4d\x3c\x4e\x3c\x4f\x3c\x50\x3c\x51\x3c\x52\x3c\x53\x3c\x54\x3c\x55\x3c\x56\x3c\x57\x3c\x58\x3c\x59\x3c\x5a\x3c\x5b\x3c\x5c\x3c\x5d\x3c\x5e\x3c\x5f\x3c\x60\x3c\x61\x3c\x62\x3c\x63\x3c\x64\x3c\x65\x3c\x66\x3c\x67\x3c\x68\x3c\x69\x3c\x6a\x3c\x6b\x3c\x6c\x3c\x6d\x3c\x6f\x3c\x70\x3c\x71\x3c\x72\x3c\x73\x3c\x74\x3c\x75", /* da80 */ "\x3c\x76\x3c\x77\x3c\x78\x3c\x79\x3c\x7a\x3c\x7b\x3c\x7c\x3c\x7d\x3c\x7e\x3c\x7f\x3c\x80\x3c\x81\x3c\x82\x3c\x83\x3c\x84\x3c\x85\x3c\x86\x3c\x87\x3c\x88\x3c\x89\x3c\x8a\x3c\x8b\x3c\x8c\x3c\x8d\x3c\x8e\x3c\x8f\x3c\x90\x3c\x91\x3c\x92\x3c\x93\x3c\x94\x3c\x95\x3c\x96\x3c\x97\x3c\x98\x3c\x99\x3c\x9a\x3c\x9b\x3c\x9c\x3c\x9d\x3c\x9e\x3c\x9f\x3c\xa0\x3c\xa1\x3c\xa2\x3c\xa3\x3c\xa4\x3c\xa5\x3c\xa6\x3c\xa7\x3c\xa8\x3c\xa9\x3c\xaa\x3c\xab\x3c\xac\x3c\xad\x3c\xae\x3c\xaf\x3c\xb0\x3c\xb1\x3c\xb2\x3c\xb3\x3c\xb4\x3c\xb5\x3c\xb6\x3c\xb7\x3c\xb8\x3c\xb9\x3c\xba\x3c\xbb\x3c\xbc\x3c\xbd\x3c\xbe\x3c\xbf\x3c\xc0\x3c\xc1\x3c\xc2\x3c\xc3\x3c\xc4\x3c\xc5\x3c\xc6\x3c\xc7\x3c\xc8\x3c\xc9\x3c\xca\x3c\xcb\x3c\xcc\x3c\xcd\x3c\xce\x3c\xcf\x3c\xd0\x3c\xd1\x3c\xd2\x3c\xd3\x3c\xd4\x3c\xd5\x3c\xd6\x3c\xd7\x3c\xd8\x3c\xd9\x3c\xda\x3c\xdb\x3c\xdc\x3c\xdd\x3c\xde\x3c\xdf\x3c\xe1\x3c\xe2\x3c\xe3\x3c\xe4\x3c\xe5\x3c\xe6\x3c\xe7\x3c\xe8\x3c\xe9\x3c\xea\x3c\xeb\x3c\xec\x3c\xed\x3c\xee\x3c\xef\x3c\xf0\x3c\xf1\x3c\xf2\x3c\xf3\x3c\xf4\x3c\xf5\x00\x00", /* db00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\xf6\x3c\xf7\x3c\xf8\x3c\xf9\x3c\xfa\x3c\xfb\x3c\xfc\x3c\xfd\x3c\xfe\x3c\xff\x3d\x00\x3d\x01\x3d\x02\x3d\x03\x3d\x04\x3d\x05\x3d\x06\x3d\x07\x3d\x08\x3d\x09\x3d\x0a\x3d\x0b\x3d\x0c\x3d\x0d\x3d\x0e\x3d\x0f\x3d\x10\x3d\x11\x3d\x12\x3d\x13\x3d\x14\x3d\x15\x3d\x16\x3d\x17\x3d\x18\x3d\x19\x3d\x1a\x3d\x1b\x3d\x1c\x3d\x1d\x3d\x1e\x3d\x1f\x3d\x20\x3d\x21\x3d\x22\x3d\x23\x3d\x24\x3d\x25\x3d\x26\x3d\x27\x3d\x28\x3d\x29\x3d\x2a\x3d\x2b\x3d\x2c\x3d\x2d\x3d\x2e\x3d\x2f\x3d\x30\x3d\x31\x3d\x32\x3d\x33\x3d\x34", /* db80 */ "\x3d\x35\x3d\x36\x3d\x37\x3d\x38\x3d\x39\x3d\x3a\x3d\x3b\x3d\x3c\x3d\x3d\x3d\x3e\x3d\x3f\x3d\x40\x3d\x41\x3d\x42\x3d\x43\x3d\x44\x3d\x45\x3d\x46\x3d\x47\x3d\x48\x3d\x49\x3d\x4a\x3d\x4b\x3d\x4c\x3d\x4d\x3d\x4e\x3d\x4f\x3d\x50\x3d\x51\x3d\x52\x3d\x53\x3d\x54\x3d\x55\x3d\x56\x3d\x57\x3d\x58\x3d\x59\x3d\x5a\x3d\x5b\x3d\x5c\x3d\x5d\x3d\x5e\x3d\x5f\x3d\x60\x3d\x61\x3d\x62\x3d\x63\x3d\x64\x3d\x65\x3d\x66\x3d\x67\x3d\x68\x3d\x69\x3d\x6a\x3d\x6b\x3d\x6c\x3d\x6d\x3d\x6e\x3d\x6f\x3d\x70\x3d\x71\x3d\x72\x3d\x73\x3d\x74\x3d\x75\x3d\x76\x3d\x77\x3d\x78\x3d\x79\x3d\x7a\x3d\x7b\x3d\x7c\x3d\x7d\x3d\x7e\x3d\x7f\x3d\x80\x3d\x81\x3d\x82\x3d\x83\x3d\x84\x3d\x85\x3d\x86\x3d\x87\x3d\x88\x3d\x89\x3d\x8a\x3d\x8b\x3d\x8c\x3d\x8d\x3d\x8e\x3d\x8f\x3d\x90\x3d\x91\x3d\x92\x3d\x93\x3d\x94\x3d\x95\x3d\x96\x3d\x97\x3d\x98\x3d\x99\x3d\x9a\x3d\x9b\x3d\x9c\x3d\x9d\x3d\x9e\x3d\x9f\x3d\xa0\x3d\xa1\x3d\xa2\x3d\xa3\x3d\xa4\x3d\xa5\x3d\xa6\x3d\xa7\x3d\xa8\x3d\xa9\x3d\xaa\x3d\xab\x3d\xac\x3d\xad\x3d\xae\x3d\xaf\x3d\xb0\x3d\xb1\x3d\xb2\x3d\xb3\x00\x00", /* dc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\xb4\x3d\xb5\x3d\xb6\x3d\xb7\x3d\xb8\x3d\xb9\x3d\xba\x3d\xbb\x3d\xbc\x3d\xbd\x3d\xbe\x3d\xbf\x3d\xc0\x3d\xc1\x3d\xc2\x3d\xc3\x3d\xc4\x3d\xc5\x3d\xc6\x3d\xc7\x3d\xc8\x3d\xc9\x3d\xca\x3d\xcb\x3d\xcc\x3d\xcd\x3d\xce\x3d\xcf\x3d\xd0\x3d\xd1\x3d\xd2\x3d\xd3\x3d\xd4\x3d\xd5\x3d\xd6\x3d\xd7\x3d\xd8\x3d\xd9\x3d\xda\x3d\xdb\x3d\xdc\x3d\xdd\x3d\xde\x3d\xdf\x3d\xe0\x3d\xe1\x3d\xe2\x3d\xe3\x3d\xe4\x3d\xe5\x3d\xe6\x3d\xe7\x3d\xe8\x3d\xe9\x3d\xea\x3d\xeb\x3d\xec\x3d\xed\x3d\xee\x3d\xef\x3d\xf0\x3d\xf1\x3d\xf2", /* dc80 */ "\x3d\xf3\x3d\xf4\x3d\xf5\x3d\xf6\x3d\xf7\x3d\xf8\x3d\xf9\x3d\xfa\x3d\xfb\x3d\xfc\x3d\xfd\x3d\xfe\x3d\xff\x3e\x00\x3e\x01\x3e\x02\x3e\x03\x3e\x04\x3e\x05\x3e\x06\x3e\x07\x3e\x08\x3e\x09\x3e\x0a\x3e\x0b\x3e\x0c\x3e\x0d\x3e\x0e\x3e\x0f\x3e\x10\x3e\x11\x3e\x12\x3e\x13\x3e\x14\x3e\x15\x3e\x16\x3e\x17\x3e\x18\x3e\x19\x3e\x1a\x3e\x1b\x3e\x1c\x3e\x1d\x3e\x1e\x3e\x1f\x3e\x20\x3e\x21\x3e\x22\x3e\x23\x3e\x24\x3e\x25\x3e\x26\x3e\x27\x3e\x28\x3e\x29\x3e\x2a\x3e\x2b\x3e\x2c\x3e\x2d\x3e\x2e\x3e\x2f\x3e\x30\x3e\x31\x3e\x32\x3e\x33\x3e\x34\x3e\x35\x3e\x36\x3e\x37\x3e\x38\x3e\x39\x3e\x3a\x3e\x3b\x3e\x3c\x3e\x3d\x3e\x3e\x3e\x3f\x3e\x40\x3e\x41\x3e\x42\x3e\x43\x3e\x44\x3e\x45\x3e\x46\x3e\x47\x3e\x48\x3e\x49\x3e\x4a\x3e\x4b\x3e\x4c\x3e\x4d\x3e\x4e\x3e\x4f\x3e\x50\x3e\x51\x3e\x52\x3e\x53\x3e\x54\x3e\x55\x3e\x56\x3e\x57\x3e\x58\x3e\x59\x3e\x5a\x3e\x5b\x3e\x5c\x3e\x5d\x3e\x5e\x3e\x5f\x3e\x60\x3e\x61\x3e\x62\x3e\x63\x3e\x64\x3e\x65\x3e\x66\x3e\x67\x3e\x68\x3e\x69\x3e\x6a\x3e\x6b\x3e\x6c\x3e\x6d\x3e\x6e\x3e\x6f\x3e\x70\x3e\x71\x00\x00", /* dd00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x72\x3e\x73\x3e\x74\x3e\x75\x3e\x76\x3e\x77\x3e\x78\x3e\x79\x3e\x7a\x3e\x7b\x3e\x7c\x3e\x7d\x3e\x7e\x3e\x7f\x3e\x80\x3e\x81\x3e\x82\x3e\x83\x3e\x84\x3e\x85\x3e\x86\x3e\x87\x3e\x88\x3e\x89\x3e\x8a\x3e\x8b\x3e\x8c\x3e\x8d\x3e\x8e\x3e\x8f\x3e\x90\x3e\x91\x3e\x92\x3e\x93\x3e\x94\x3e\x95\x3e\x96\x3e\x97\x3e\x98\x3e\x99\x3e\x9a\x3e\x9b\x3e\x9c\x3e\x9d\x3e\x9e\x3e\x9f\x3e\xa0\x3e\xa1\x3e\xa2\x3e\xa3\x3e\xa4\x3e\xa5\x3e\xa6\x3e\xa7\x3e\xa8\x3e\xa9\x3e\xaa\x3e\xab\x3e\xac\x3e\xad\x3e\xae\x3e\xaf\x3e\xb0", /* dd80 */ "\x3e\xb1\x3e\xb2\x3e\xb3\x3e\xb4\x3e\xb5\x3e\xb6\x3e\xb7\x3e\xb8\x3e\xb9\x3e\xba\x3e\xbb\x3e\xbc\x3e\xbd\x3e\xbe\x3e\xbf\x3e\xc0\x3e\xc1\x3e\xc2\x3e\xc3\x3e\xc4\x3e\xc5\x3e\xc6\x3e\xc7\x3e\xc8\x3e\xc9\x3e\xca\x3e\xcb\x3e\xcc\x3e\xcd\x3e\xce\x3e\xcf\x3e\xd0\x3e\xd1\x3e\xd2\x3e\xd3\x3e\xd4\x3e\xd5\x3e\xd6\x3e\xd7\x3e\xd8\x3e\xd9\x3e\xda\x3e\xdb\x3e\xdc\x3e\xdd\x3e\xde\x3e\xdf\x3e\xe0\x3e\xe1\x3e\xe2\x3e\xe3\x3e\xe4\x3e\xe5\x3e\xe6\x3e\xe7\x3e\xe8\x3e\xe9\x3e\xea\x3e\xeb\x3e\xec\x3e\xed\x3e\xee\x3e\xef\x3e\xf0\x3e\xf1\x3e\xf2\x3e\xf3\x3e\xf4\x3e\xf5\x3e\xf6\x3e\xf7\x3e\xf8\x3e\xf9\x3e\xfa\x3e\xfb\x3e\xfc\x3e\xfd\x3e\xfe\x3e\xff\x3f\x00\x3f\x01\x3f\x02\x3f\x03\x3f\x04\x3f\x05\x3f\x06\x3f\x07\x3f\x08\x3f\x09\x3f\x0a\x3f\x0b\x3f\x0c\x3f\x0d\x3f\x0e\x3f\x0f\x3f\x10\x3f\x11\x3f\x12\x3f\x13\x3f\x14\x3f\x15\x3f\x16\x3f\x17\x3f\x18\x3f\x19\x3f\x1a\x3f\x1b\x3f\x1c\x3f\x1d\x3f\x1e\x3f\x1f\x3f\x20\x3f\x21\x3f\x22\x3f\x23\x3f\x24\x3f\x25\x3f\x26\x3f\x27\x3f\x28\x3f\x29\x3f\x2a\x3f\x2b\x3f\x2c\x3f\x2d\x3f\x2e\x3f\x2f\x00\x00", /* de00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x30\x3f\x31\x3f\x32\x3f\x33\x3f\x34\x3f\x35\x3f\x36\x3f\x37\x3f\x38\x3f\x39\x3f\x3a\x3f\x3b\x3f\x3c\x3f\x3d\x3f\x3e\x3f\x3f\x3f\x40\x3f\x41\x3f\x42\x3f\x43\x3f\x44\x3f\x45\x3f\x46\x3f\x47\x3f\x48\x3f\x49\x3f\x4a\x3f\x4b\x3f\x4c\x3f\x4d\x3f\x4e\x3f\x4f\x3f\x50\x3f\x51\x3f\x52\x3f\x53\x3f\x54\x3f\x55\x3f\x56\x3f\x57\x3f\x58\x3f\x59\x3f\x5a\x3f\x5b\x3f\x5c\x3f\x5d\x3f\x5e\x3f\x5f\x3f\x60\x3f\x61\x3f\x62\x3f\x63\x3f\x64\x3f\x65\x3f\x66\x3f\x67\x3f\x68\x3f\x69\x3f\x6a\x3f\x6b\x3f\x6c\x3f\x6d\x3f\x6e", /* de80 */ "\x3f\x6f\x3f\x70\x3f\x71\x3f\x72\x3f\x73\x3f\x74\x3f\x75\x3f\x76\x3f\x77\x3f\x78\x3f\x79\x3f\x7a\x3f\x7b\x3f\x7c\x3f\x7d\x3f\x7e\x3f\x7f\x3f\x80\x3f\x81\x3f\x82\x3f\x83\x3f\x84\x3f\x85\x3f\x86\x3f\x87\x3f\x88\x3f\x89\x3f\x8a\x3f\x8b\x3f\x8c\x3f\x8d\x3f\x8e\x3f\x8f\x3f\x90\x3f\x91\x3f\x92\x3f\x93\x3f\x94\x3f\x95\x3f\x96\x3f\x97\x3f\x98\x3f\x99\x3f\x9a\x3f\x9b\x3f\x9c\x3f\x9d\x3f\x9e\x3f\x9f\x3f\xa0\x3f\xa1\x3f\xa2\x3f\xa3\x3f\xa4\x3f\xa5\x3f\xa6\x3f\xa7\x3f\xa8\x3f\xa9\x3f\xaa\x3f\xab\x3f\xac\x3f\xad\x3f\xae\x3f\xaf\x3f\xb0\x3f\xb1\x3f\xb2\x3f\xb3\x3f\xb4\x3f\xb5\x3f\xb6\x3f\xb7\x3f\xb8\x3f\xb9\x3f\xba\x3f\xbb\x3f\xbc\x3f\xbd\x3f\xbe\x3f\xbf\x3f\xc0\x3f\xc1\x3f\xc2\x3f\xc3\x3f\xc4\x3f\xc5\x3f\xc6\x3f\xc7\x3f\xc8\x3f\xc9\x3f\xca\x3f\xcb\x3f\xcc\x3f\xcd\x3f\xce\x3f\xcf\x3f\xd0\x3f\xd1\x3f\xd2\x3f\xd3\x3f\xd4\x3f\xd5\x3f\xd6\x3f\xd7\x3f\xd8\x3f\xd9\x3f\xda\x3f\xdb\x3f\xdc\x3f\xdd\x3f\xde\x3f\xdf\x3f\xe0\x3f\xe1\x3f\xe2\x3f\xe3\x3f\xe4\x3f\xe5\x3f\xe6\x3f\xe7\x3f\xe8\x3f\xe9\x3f\xea\x3f\xeb\x3f\xec\x3f\xed\x00\x00", /* df00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\xee\x3f\xef\x3f\xf0\x3f\xf1\x3f\xf2\x3f\xf3\x3f\xf4\x3f\xf5\x3f\xf6\x3f\xf7\x3f\xf8\x3f\xf9\x3f\xfa\x3f\xfb\x3f\xfc\x3f\xfd\x3f\xfe\x3f\xff\x40\x00\x40\x01\x40\x02\x40\x03\x40\x04\x40\x05\x40\x06\x40\x07\x40\x08\x40\x09\x40\x0a\x40\x0b\x40\x0c\x40\x0d\x40\x0e\x40\x0f\x40\x10\x40\x11\x40\x12\x40\x13\x40\x14\x40\x15\x40\x16\x40\x17\x40\x18\x40\x19\x40\x1a\x40\x1b\x40\x1c\x40\x1d\x40\x1e\x40\x1f\x40\x20\x40\x21\x40\x22\x40\x23\x40\x24\x40\x25\x40\x26\x40\x27\x40\x28\x40\x29\x40\x2a\x40\x2b\x40\x2c", /* df80 */ "\x40\x2d\x40\x2e\x40\x2f\x40\x30\x40\x31\x40\x32\x40\x33\x40\x34\x40\x35\x40\x36\x40\x37\x40\x38\x40\x39\x40\x3a\x40\x3b\x40\x3c\x40\x3d\x40\x3e\x40\x3f\x40\x40\x40\x41\x40\x42\x40\x43\x40\x44\x40\x45\x40\x46\x40\x47\x40\x48\x40\x49\x40\x4a\x40\x4b\x40\x4c\x40\x4d\x40\x4e\x40\x4f\x40\x50\x40\x51\x40\x52\x40\x53\x40\x54\x40\x55\x40\x57\x40\x58\x40\x59\x40\x5a\x40\x5b\x40\x5c\x40\x5d\x40\x5e\x40\x5f\x40\x60\x40\x61\x40\x62\x40\x63\x40\x64\x40\x65\x40\x66\x40\x67\x40\x68\x40\x69\x40\x6a\x40\x6b\x40\x6c\x40\x6d\x40\x6e\x40\x6f\x40\x70\x40\x71\x40\x72\x40\x73\x40\x74\x40\x75\x40\x76\x40\x77\x40\x78\x40\x79\x40\x7a\x40\x7b\x40\x7c\x40\x7d\x40\x7e\x40\x7f\x40\x80\x40\x81\x40\x82\x40\x83\x40\x84\x40\x85\x40\x86\x40\x87\x40\x88\x40\x89\x40\x8a\x40\x8b\x40\x8c\x40\x8d\x40\x8e\x40\x8f\x40\x90\x40\x91\x40\x92\x40\x93\x40\x94\x40\x95\x40\x96\x40\x97\x40\x98\x40\x99\x40\x9a\x40\x9b\x40\x9c\x40\x9d\x40\x9e\x40\x9f\x40\xa0\x40\xa1\x40\xa2\x40\xa3\x40\xa4\x40\xa5\x40\xa6\x40\xa7\x40\xa8\x40\xa9\x40\xaa\x40\xab\x40\xac\x00\x00", /* e000 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xad\x40\xae\x40\xaf\x40\xb0\x40\xb1\x40\xb2\x40\xb3\x40\xb4\x40\xb5\x40\xb6\x40\xb7\x40\xb8\x40\xb9\x40\xba\x40\xbb\x40\xbc\x40\xbd\x40\xbe\x40\xbf\x40\xc0\x40\xc1\x40\xc2\x40\xc3\x40\xc4\x40\xc5\x40\xc6\x40\xc7\x40\xc8\x40\xc9\x40\xca\x40\xcb\x40\xcc\x40\xcd\x40\xce\x40\xcf\x40\xd0\x40\xd1\x40\xd2\x40\xd3\x40\xd4\x40\xd5\x40\xd6\x40\xd7\x40\xd8\x40\xd9\x40\xda\x40\xdb\x40\xdc\x40\xdd\x40\xde\x40\xdf\x40\xe0\x40\xe1\x40\xe2\x40\xe3\x40\xe4\x40\xe5\x40\xe6\x40\xe7\x40\xe8\x40\xe9\x40\xea\x40\xeb", /* e080 */ "\x40\xec\x40\xed\x40\xee\x40\xef\x40\xf0\x40\xf1\x40\xf2\x40\xf3\x40\xf4\x40\xf5\x40\xf6\x40\xf7\x40\xf8\x40\xf9\x40\xfa\x40\xfb\x40\xfc\x40\xfd\x40\xfe\x40\xff\x41\x00\x41\x01\x41\x02\x41\x03\x41\x04\x41\x05\x41\x06\x41\x07\x41\x08\x41\x09\x41\x0a\x41\x0b\x41\x0c\x41\x0d\x41\x0e\x41\x0f\x41\x10\x41\x11\x41\x12\x41\x13\x41\x14\x41\x15\x41\x16\x41\x17\x41\x18\x41\x19\x41\x1a\x41\x1b\x41\x1c\x41\x1d\x41\x1e\x41\x1f\x41\x20\x41\x21\x41\x22\x41\x23\x41\x24\x41\x25\x41\x26\x41\x27\x41\x28\x41\x29\x41\x2a\x41\x2b\x41\x2c\x41\x2d\x41\x2e\x41\x2f\x41\x30\x41\x31\x41\x32\x41\x33\x41\x34\x41\x35\x41\x36\x41\x37\x41\x38\x41\x39\x41\x3a\x41\x3b\x41\x3c\x41\x3d\x41\x3e\x41\x3f\x41\x40\x41\x41\x41\x42\x41\x43\x41\x44\x41\x45\x41\x46\x41\x47\x41\x48\x41\x49\x41\x4a\x41\x4b\x41\x4c\x41\x4d\x41\x4e\x41\x4f\x41\x50\x41\x51\x41\x52\x41\x53\x41\x54\x41\x55\x41\x56\x41\x57\x41\x58\x41\x59\x41\x5a\x41\x5b\x41\x5c\x41\x5d\x41\x5e\x41\x60\x41\x61\x41\x62\x41\x63\x41\x64\x41\x65\x41\x66\x41\x67\x41\x68\x41\x69\x41\x6a\x41\x6b\x00\x00", /* e100 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x6c\x41\x6d\x41\x6e\x41\x6f\x41\x70\x41\x71\x41\x72\x41\x73\x41\x74\x41\x75\x41\x76\x41\x77\x41\x78\x41\x79\x41\x7a\x41\x7b\x41\x7c\x41\x7d\x41\x7e\x41\x7f\x41\x80\x41\x81\x41\x82\x41\x83\x41\x84\x41\x85\x41\x86\x41\x87\x41\x88\x41\x89\x41\x8a\x41\x8b\x41\x8c\x41\x8d\x41\x8e\x41\x8f\x41\x90\x41\x91\x41\x92\x41\x93\x41\x94\x41\x95\x41\x96\x41\x97\x41\x98\x41\x99\x41\x9a\x41\x9b\x41\x9c\x41\x9d\x41\x9e\x41\x9f\x41\xa0\x41\xa1\x41\xa2\x41\xa3\x41\xa4\x41\xa5\x41\xa6\x41\xa7\x41\xa8\x41\xa9\x41\xaa", /* e180 */ "\x41\xab\x41\xac\x41\xad\x41\xae\x41\xaf\x41\xb0\x41\xb1\x41\xb2\x41\xb3\x41\xb4\x41\xb5\x41\xb6\x41\xb7\x41\xb8\x41\xb9\x41\xba\x41\xbb\x41\xbc\x41\xbd\x41\xbe\x41\xbf\x41\xc0\x41\xc1\x41\xc2\x41\xc3\x41\xc4\x41\xc5\x41\xc6\x41\xc7\x41\xc8\x41\xc9\x41\xca\x41\xcb\x41\xcc\x41\xcd\x41\xce\x41\xcf\x41\xd0\x41\xd1\x41\xd2\x41\xd3\x41\xd4\x41\xd5\x41\xd6\x41\xd7\x41\xd8\x41\xd9\x41\xda\x41\xdb\x41\xdc\x41\xdd\x41\xde\x41\xdf\x41\xe0\x41\xe1\x41\xe2\x41\xe3\x41\xe4\x41\xe5\x41\xe6\x41\xe7\x41\xe8\x41\xe9\x41\xea\x41\xeb\x41\xec\x41\xed\x41\xee\x41\xef\x41\xf0\x41\xf1\x41\xf2\x41\xf3\x41\xf4\x41\xf5\x41\xf6\x41\xf7\x41\xf8\x41\xf9\x41\xfa\x41\xfb\x41\xfc\x41\xfd\x41\xfe\x41\xff\x42\x00\x42\x01\x42\x02\x42\x03\x42\x04\x42\x05\x42\x06\x42\x07\x42\x08\x42\x09\x42\x0a\x42\x0b\x42\x0c\x42\x0d\x42\x0e\x42\x0f\x42\x10\x42\x11\x42\x12\x42\x13\x42\x14\x42\x15\x42\x16\x42\x17\x42\x18\x42\x19\x42\x1a\x42\x1b\x42\x1c\x42\x1d\x42\x1e\x42\x1f\x42\x20\x42\x21\x42\x22\x42\x23\x42\x24\x42\x25\x42\x26\x42\x27\x42\x28\x42\x29\x00\x00", /* e200 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x2a\x42\x2b\x42\x2c\x42\x2d\x42\x2e\x42\x2f\x42\x30\x42\x31\x42\x32\x42\x33\x42\x34\x42\x35\x42\x36\x42\x37\x42\x38\x42\x39\x42\x3a\x42\x3b\x42\x3c\x42\x3d\x42\x3e\x42\x3f\x42\x40\x42\x41\x42\x42\x42\x43\x42\x44\x42\x45\x42\x46\x42\x47\x42\x48\x42\x49\x42\x4a\x42\x4b\x42\x4c\x42\x4d\x42\x4e\x42\x4f\x42\x50\x42\x51\x42\x52\x42\x53\x42\x54\x42\x55\x42\x56\x42\x57\x42\x58\x42\x59\x42\x5a\x42\x5b\x42\x5c\x42\x5d\x42\x5e\x42\x5f\x42\x60\x42\x61\x42\x62\x42\x63\x42\x64\x42\x65\x42\x66\x42\x67\x42\x68", /* e280 */ "\x42\x69\x42\x6a\x42\x6b\x42\x6c\x42\x6d\x42\x6e\x42\x6f\x42\x70\x42\x71\x42\x72\x42\x73\x42\x74\x42\x75\x42\x76\x42\x77\x42\x78\x42\x79\x42\x7a\x42\x7b\x42\x7c\x42\x7d\x42\x7e\x42\x7f\x42\x80\x42\x81\x42\x82\x42\x83\x42\x84\x42\x85\x42\x86\x42\x87\x42\x88\x42\x89\x42\x8a\x42\x8b\x42\x8c\x42\x8d\x42\x8e\x42\x8f\x42\x90\x42\x91\x42\x92\x42\x93\x42\x94\x42\x95\x42\x96\x42\x97\x42\x98\x42\x99\x42\x9a\x42\x9b\x42\x9c\x42\x9d\x42\x9e\x42\x9f\x42\xa0\x42\xa1\x42\xa2\x42\xa3\x42\xa4\x42\xa5\x42\xa6\x42\xa7\x42\xa8\x42\xa9\x42\xaa\x42\xab\x42\xac\x42\xad\x42\xae\x42\xaf\x42\xb0\x42\xb1\x42\xb2\x42\xb3\x42\xb4\x42\xb5\x42\xb6\x42\xb7\x42\xb8\x42\xb9\x42\xba\x42\xbb\x42\xbc\x42\xbd\x42\xbe\x42\xbf\x42\xc0\x42\xc1\x42\xc2\x42\xc3\x42\xc4\x42\xc5\x42\xc6\x42\xc7\x42\xc8\x42\xc9\x42\xca\x42\xcb\x42\xcc\x42\xcd\x42\xce\x42\xcf\x42\xd0\x42\xd1\x42\xd2\x42\xd3\x42\xd4\x42\xd5\x42\xd6\x42\xd7\x42\xd8\x42\xd9\x42\xda\x42\xdb\x42\xdc\x42\xdd\x42\xde\x42\xdf\x42\xe0\x42\xe1\x42\xe2\x42\xe3\x42\xe4\x42\xe5\x42\xe6\x42\xe7\x00\x00", /* e300 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\xe8\x42\xe9\x42\xea\x42\xeb\x42\xec\x42\xed\x42\xee\x42\xef\x42\xf0\x42\xf1\x42\xf2\x42\xf3\x42\xf4\x42\xf5\x42\xf6\x42\xf7\x42\xf8\x42\xf9\x42\xfa\x42\xfb\x42\xfc\x42\xfd\x42\xfe\x42\xff\x43\x00\x43\x01\x43\x02\x43\x03\x43\x04\x43\x05\x43\x06\x43\x07\x43\x08\x43\x09\x43\x0a\x43\x0b\x43\x0c\x43\x0d\x43\x0e\x43\x0f\x43\x10\x43\x11\x43\x12\x43\x13\x43\x14\x43\x15\x43\x16\x43\x17\x43\x18\x43\x19\x43\x1a\x43\x1b\x43\x1c\x43\x1d\x43\x1e\x43\x1f\x43\x20\x43\x21\x43\x22\x43\x23\x43\x24\x43\x25\x43\x26", /* e380 */ "\x43\x27\x43\x28\x43\x29\x43\x2a\x43\x2b\x43\x2c\x43\x2d\x43\x2e\x43\x2f\x43\x30\x43\x31\x43\x32\x43\x33\x43\x34\x43\x35\x43\x36\x43\x38\x43\x39\x43\x3a\x43\x3b\x43\x3c\x43\x3d\x43\x3e\x43\x3f\x43\x40\x43\x41\x43\x42\x43\x43\x43\x44\x43\x45\x43\x46\x43\x47\x43\x48\x43\x49\x43\x4a\x43\x4b\x43\x4c\x43\x4d\x43\x4e\x43\x4f\x43\x50\x43\x51\x43\x52\x43\x53\x43\x54\x43\x55\x43\x56\x43\x57\x43\x58\x43\x59\x43\x5a\x43\x5b\x43\x5c\x43\x5d\x43\x5e\x43\x5f\x43\x60\x43\x61\x43\x62\x43\x63\x43\x64\x43\x65\x43\x66\x43\x67\x43\x68\x43\x69\x43\x6a\x43\x6b\x43\x6c\x43\x6d\x43\x6e\x43\x6f\x43\x70\x43\x71\x43\x72\x43\x73\x43\x74\x43\x75\x43\x76\x43\x77\x43\x78\x43\x79\x43\x7a\x43\x7b\x43\x7c\x43\x7d\x43\x7e\x43\x7f\x43\x80\x43\x81\x43\x82\x43\x83\x43\x84\x43\x85\x43\x86\x43\x87\x43\x88\x43\x89\x43\x8a\x43\x8b\x43\x8c\x43\x8d\x43\x8e\x43\x8f\x43\x90\x43\x91\x43\x92\x43\x93\x43\x94\x43\x95\x43\x96\x43\x97\x43\x98\x43\x99\x43\x9a\x43\x9b\x43\x9c\x43\x9d\x43\x9e\x43\x9f\x43\xa0\x43\xa1\x43\xa2\x43\xa3\x43\xa4\x43\xa5\x43\xa6\x00\x00", /* e400 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\xa7\x43\xa8\x43\xa9\x43\xaa\x43\xab\x43\xad\x43\xae\x43\xaf\x43\xb0\x43\xb2\x43\xb3\x43\xb4\x43\xb5\x43\xb6\x43\xb7\x43\xb8\x43\xb9\x43\xba\x43\xbb\x43\xbc\x43\xbd\x43\xbe\x43\xbf\x43\xc0\x43\xc1\x43\xc2\x43\xc3\x43\xc4\x43\xc5\x43\xc6\x43\xc7\x43\xc8\x43\xc9\x43\xca\x43\xcb\x43\xcc\x43\xcd\x43\xce\x43\xcf\x43\xd0\x43\xd1\x43\xd2\x43\xd3\x43\xd4\x43\xd5\x43\xd6\x43\xd7\x43\xd8\x43\xd9\x43\xda\x43\xdb\x43\xdc\x43\xde\x43\xdf\x43\xe0\x43\xe1\x43\xe2\x43\xe3\x43\xe4\x43\xe5\x43\xe6\x43\xe7\x43\xe8", /* e480 */ "\x43\xe9\x43\xea\x43\xeb\x43\xec\x43\xed\x43\xee\x43\xef\x43\xf0\x43\xf1\x43\xf2\x43\xf3\x43\xf4\x43\xf5\x43\xf6\x43\xf7\x43\xf8\x43\xf9\x43\xfa\x43\xfb\x43\xfc\x43\xfd\x43\xfe\x43\xff\x44\x00\x44\x01\x44\x02\x44\x03\x44\x04\x44\x05\x44\x06\x44\x07\x44\x08\x44\x09\x44\x0a\x44\x0b\x44\x0c\x44\x0d\x44\x0e\x44\x0f\x44\x10\x44\x11\x44\x12\x44\x13\x44\x14\x44\x15\x44\x16\x44\x17\x44\x18\x44\x19\x44\x1a\x44\x1b\x44\x1c\x44\x1d\x44\x1e\x44\x1f\x44\x20\x44\x21\x44\x22\x44\x23\x44\x24\x44\x25\x44\x26\x44\x27\x44\x28\x44\x29\x44\x2a\x44\x2b\x44\x2c\x44\x2d\x44\x2e\x44\x2f\x44\x30\x44\x31\x44\x32\x44\x33\x44\x34\x44\x35\x44\x36\x44\x37\x44\x38\x44\x39\x44\x3a\x44\x3b\x44\x3c\x44\x3d\x44\x3e\x44\x3f\x44\x40\x44\x41\x44\x42\x44\x43\x44\x44\x44\x45\x44\x46\x44\x47\x44\x48\x44\x49\x44\x4a\x44\x4b\x44\x4c\x44\x4d\x44\x4e\x44\x4f\x44\x50\x44\x51\x44\x52\x44\x53\x44\x54\x44\x55\x44\x56\x44\x57\x44\x58\x44\x59\x44\x5a\x44\x5b\x44\x5c\x44\x5d\x44\x5e\x44\x5f\x44\x60\x44\x61\x44\x62\x44\x63\x44\x64\x44\x65\x44\x66\x44\x67\x00\x00", /* e500 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x68\x44\x69\x44\x6a\x44\x6b\x44\x6c\x44\x6d\x44\x6e\x44\x6f\x44\x70\x44\x71\x44\x72\x44\x73\x44\x74\x44\x75\x44\x76\x44\x77\x44\x78\x44\x79\x44\x7a\x44\x7b\x44\x7c\x44\x7d\x44\x7e\x44\x7f\x44\x80\x44\x81\x44\x82\x44\x83\x44\x84\x44\x85\x44\x86\x44\x87\x44\x88\x44\x89\x44\x8a\x44\x8b\x44\x8c\x44\x8d\x44\x8e\x44\x8f\x44\x90\x44\x91\x44\x92\x44\x93\x44\x94\x44\x95\x44\x96\x44\x97\x44\x98\x44\x99\x44\x9a\x44\x9b\x44\x9c\x44\x9d\x44\x9e\x44\x9f\x44\xa0\x44\xa1\x44\xa2\x44\xa3\x44\xa4\x44\xa5\x44\xa6", /* e580 */ "\x44\xa7\x44\xa8\x44\xa9\x44\xaa\x44\xab\x44\xac\x44\xad\x44\xae\x44\xaf\x44\xb0\x44\xb1\x44\xb2\x44\xb3\x44\xb4\x44\xb5\x44\xb6\x44\xb7\x44\xb8\x44\xb9\x44\xba\x44\xbb\x44\xbc\x44\xbd\x44\xbe\x44\xbf\x44\xc0\x44\xc1\x44\xc2\x44\xc3\x44\xc4\x44\xc5\x44\xc6\x44\xc7\x44\xc8\x44\xc9\x44\xca\x44\xcb\x44\xcc\x44\xcd\x44\xce\x44\xcf\x44\xd0\x44\xd1\x44\xd2\x44\xd3\x44\xd4\x44\xd5\x44\xd7\x44\xd8\x44\xd9\x44\xda\x44\xdb\x44\xdc\x44\xdd\x44\xde\x44\xdf\x44\xe0\x44\xe1\x44\xe2\x44\xe3\x44\xe4\x44\xe5\x44\xe6\x44\xe7\x44\xe8\x44\xe9\x44\xea\x44\xeb\x44\xec\x44\xed\x44\xee\x44\xef\x44\xf0\x44\xf1\x44\xf2\x44\xf3\x44\xf4\x44\xf5\x44\xf6\x44\xf7\x44\xf8\x44\xf9\x44\xfa\x44\xfb\x44\xfc\x44\xfd\x44\xfe\x44\xff\x45\x00\x45\x01\x45\x02\x45\x03\x45\x04\x45\x05\x45\x06\x45\x07\x45\x08\x45\x09\x45\x0a\x45\x0b\x45\x0c\x45\x0d\x45\x0e\x45\x0f\x45\x10\x45\x11\x45\x12\x45\x13\x45\x14\x45\x15\x45\x16\x45\x17\x45\x18\x45\x19\x45\x1a\x45\x1b\x45\x1c\x45\x1d\x45\x1e\x45\x1f\x45\x20\x45\x21\x45\x22\x45\x23\x45\x24\x45\x25\x45\x26\x00\x00", /* e600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x27\x45\x28\x45\x29\x45\x2a\x45\x2b\x45\x2c\x45\x2d\x45\x2e\x45\x2f\x45\x30\x45\x31\x45\x32\x45\x33\x45\x34\x45\x35\x45\x36\x45\x37\x45\x38\x45\x39\x45\x3a\x45\x3b\x45\x3c\x45\x3d\x45\x3e\x45\x3f\x45\x40\x45\x41\x45\x42\x45\x43\x45\x44\x45\x45\x45\x46\x45\x47\x45\x48\x45\x49\x45\x4a\x45\x4b\x45\x4c\x45\x4d\x45\x4e\x45\x4f\x45\x50\x45\x51\x45\x52\x45\x53\x45\x54\x45\x55\x45\x56\x45\x57\x45\x58\x45\x59\x45\x5a\x45\x5b\x45\x5c\x45\x5d\x45\x5e\x45\x5f\x45\x60\x45\x61\x45\x62\x45\x63\x45\x64\x45\x65", /* e680 */ "\x45\x66\x45\x67\x45\x68\x45\x69\x45\x6a\x45\x6b\x45\x6c\x45\x6d\x45\x6e\x45\x6f\x45\x70\x45\x71\x45\x72\x45\x73\x45\x74\x45\x75\x45\x76\x45\x77\x45\x78\x45\x79\x45\x7a\x45\x7b\x45\x7c\x45\x7d\x45\x7e\x45\x7f\x45\x80\x45\x81\x45\x82\x45\x83\x45\x84\x45\x85\x45\x86\x45\x87\x45\x88\x45\x89\x45\x8a\x45\x8b\x45\x8c\x45\x8d\x45\x8e\x45\x8f\x45\x90\x45\x91\x45\x92\x45\x93\x45\x94\x45\x95\x45\x96\x45\x97\x45\x98\x45\x99\x45\x9a\x45\x9b\x45\x9c\x45\x9d\x45\x9e\x45\x9f\x45\xa0\x45\xa1\x45\xa2\x45\xa3\x45\xa4\x45\xa5\x45\xa6\x45\xa7\x45\xa8\x45\xa9\x45\xaa\x45\xab\x45\xac\x45\xad\x45\xae\x45\xaf\x45\xb0\x45\xb1\x45\xb2\x45\xb3\x45\xb4\x45\xb5\x45\xb6\x45\xb7\x45\xb8\x45\xb9\x45\xba\x45\xbb\x45\xbc\x45\xbd\x45\xbe\x45\xbf\x45\xc0\x45\xc1\x45\xc2\x45\xc3\x45\xc4\x45\xc5\x45\xc6\x45\xc7\x45\xc8\x45\xc9\x45\xca\x45\xcb\x45\xcc\x45\xcd\x45\xce\x45\xcf\x45\xd0\x45\xd1\x45\xd2\x45\xd3\x45\xd4\x45\xd5\x45\xd6\x45\xd7\x45\xd8\x45\xd9\x45\xda\x45\xdb\x45\xdc\x45\xdd\x45\xde\x45\xdf\x45\xe0\x45\xe1\x45\xe2\x45\xe3\x45\xe4\x00\x00", /* e700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\xe5\x45\xe6\x45\xe7\x45\xe8\x45\xe9\x45\xea\x45\xeb\x45\xec\x45\xed\x45\xee\x45\xef\x45\xf0\x45\xf1\x45\xf2\x45\xf3\x45\xf4\x45\xf5\x45\xf6\x45\xf7\x45\xf8\x45\xf9\x45\xfa\x45\xfb\x45\xfc\x45\xfd\x45\xfe\x45\xff\x46\x00\x46\x01\x46\x02\x46\x03\x46\x04\x46\x05\x46\x06\x46\x07\x46\x08\x46\x09\x46\x0a\x46\x0b\x46\x0c\x46\x0d\x46\x0e\x46\x0f\x46\x10\x46\x11\x46\x12\x46\x13\x46\x14\x46\x15\x46\x16\x46\x17\x46\x18\x46\x19\x46\x1a\x46\x1b\x46\x1c\x46\x1d\x46\x1e\x46\x1f\x46\x20\x46\x21\x46\x22\x46\x23", /* e780 */ "\x46\x24\x46\x25\x46\x26\x46\x27\x46\x28\x46\x29\x46\x2a\x46\x2b\x46\x2c\x46\x2d\x46\x2e\x46\x2f\x46\x30\x46\x31\x46\x32\x46\x33\x46\x34\x46\x35\x46\x36\x46\x37\x46\x38\x46\x39\x46\x3a\x46\x3b\x46\x3c\x46\x3d\x46\x3e\x46\x3f\x46\x40\x46\x41\x46\x42\x46\x43\x46\x44\x46\x45\x46\x46\x46\x47\x46\x48\x46\x49\x46\x4a\x46\x4b\x46\x4d\x46\x4e\x46\x4f\x46\x50\x46\x51\x46\x52\x46\x53\x46\x54\x46\x55\x46\x56\x46\x57\x46\x58\x46\x59\x46\x5a\x46\x5b\x46\x5c\x46\x5d\x46\x5e\x46\x5f\x46\x60\x46\x62\x46\x63\x46\x64\x46\x65\x46\x66\x46\x67\x46\x68\x46\x69\x46\x6a\x46\x6b\x46\x6c\x46\x6d\x46\x6e\x46\x6f\x46\x70\x46\x71\x46\x72\x46\x73\x46\x74\x46\x75\x46\x76\x46\x77\x46\x78\x46\x79\x46\x7a\x46\x7b\x46\x7c\x46\x7d\x46\x7e\x46\x7f\x46\x80\x46\x81\x46\x82\x46\x83\x46\x84\x46\x85\x46\x86\x46\x87\x46\x88\x46\x89\x46\x8a\x46\x8b\x46\x8c\x46\x8d\x46\x8e\x46\x8f\x46\x90\x46\x91\x46\x92\x46\x93\x46\x94\x46\x95\x46\x96\x46\x97\x46\x98\x46\x99\x46\x9a\x46\x9b\x46\x9c\x46\x9d\x46\x9e\x46\x9f\x46\xa0\x46\xa1\x46\xa2\x46\xa3\x46\xa4\x00\x00", /* e800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\xa5\x46\xa6\x46\xa7\x46\xa8\x46\xa9\x46\xaa\x46\xab\x46\xac\x46\xad\x46\xae\x46\xaf\x46\xb0\x46\xb1\x46\xb2\x46\xb3\x46\xb4\x46\xb5\x46\xb6\x46\xb7\x46\xb8\x46\xb9\x46\xba\x46\xbb\x46\xbc\x46\xbd\x46\xbe\x46\xbf\x46\xc0\x46\xc1\x46\xc2\x46\xc3\x46\xc4\x46\xc5\x46\xc6\x46\xc7\x46\xc8\x46\xc9\x46\xca\x46\xcb\x46\xcc\x46\xcd\x46\xce\x46\xcf\x46\xd0\x46\xd1\x46\xd2\x46\xd3\x46\xd4\x46\xd5\x46\xd6\x46\xd7\x46\xd8\x46\xd9\x46\xda\x46\xdb\x46\xdc\x46\xdd\x46\xde\x46\xdf\x46\xe0\x46\xe1\x46\xe2\x46\xe3", /* e880 */ "\x46\xe4\x46\xe5\x46\xe6\x46\xe7\x46\xe8\x46\xe9\x46\xea\x46\xeb\x46\xec\x46\xed\x46\xee\x46\xef\x46\xf0\x46\xf1\x46\xf2\x46\xf3\x46\xf4\x46\xf5\x46\xf6\x46\xf7\x46\xf8\x46\xf9\x46\xfa\x46\xfb\x46\xfc\x46\xfd\x46\xfe\x46\xff\x47\x00\x47\x01\x47\x02\x47\x03\x47\x04\x47\x05\x47\x06\x47\x07\x47\x08\x47\x09\x47\x0a\x47\x0b\x47\x0c\x47\x0d\x47\x0e\x47\x0f\x47\x10\x47\x11\x47\x12\x47\x13\x47\x14\x47\x15\x47\x16\x47\x17\x47\x18\x47\x19\x47\x1a\x47\x1b\x47\x1c\x47\x1d\x47\x1e\x47\x1f\x47\x20\x47\x21\x47\x22\x47\x24\x47\x25\x47\x26\x47\x27\x47\x28\x47\x2a\x47\x2b\x47\x2c\x47\x2d\x47\x2e\x47\x2f\x47\x30\x47\x31\x47\x32\x47\x33\x47\x34\x47\x35\x47\x36\x47\x37\x47\x38\x47\x39\x47\x3a\x47\x3b\x47\x3c\x47\x3d\x47\x3e\x47\x3f\x47\x40\x47\x41\x47\x42\x47\x43\x47\x44\x47\x45\x47\x46\x47\x47\x47\x48\x47\x49\x47\x4a\x47\x4b\x47\x4c\x47\x4d\x47\x4e\x47\x4f\x47\x50\x47\x51\x47\x52\x47\x53\x47\x54\x47\x55\x47\x56\x47\x57\x47\x58\x47\x59\x47\x5a\x47\x5b\x47\x5c\x47\x5d\x47\x5e\x47\x5f\x47\x60\x47\x61\x47\x62\x47\x63\x47\x64\x00\x00", /* e900 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x65\x47\x66\x47\x67\x47\x68\x47\x69\x47\x6a\x47\x6b\x47\x6c\x47\x6d\x47\x6e\x47\x6f\x47\x70\x47\x71\x47\x72\x47\x73\x47\x74\x47\x75\x47\x76\x47\x77\x47\x78\x47\x79\x47\x7a\x47\x7b\x47\x7d\x47\x7e\x47\x7f\x47\x80\x47\x81\x47\x82\x47\x83\x47\x84\x47\x85\x47\x86\x47\x87\x47\x88\x47\x89\x47\x8a\x47\x8b\x47\x8c\x47\x8e\x47\x8f\x47\x90\x47\x91\x47\x92\x47\x93\x47\x94\x47\x95\x47\x96\x47\x97\x47\x98\x47\x99\x47\x9a\x47\x9b\x47\x9c\x47\x9d\x47\x9e\x47\x9f\x47\xa0\x47\xa1\x47\xa2\x47\xa3\x47\xa4\x47\xa5", /* e980 */ "\x47\xa6\x47\xa7\x47\xa8\x47\xa9\x47\xaa\x47\xab\x47\xac\x47\xad\x47\xae\x47\xaf\x47\xb0\x47\xb1\x47\xb2\x47\xb3\x47\xb4\x47\xb5\x47\xb6\x47\xb7\x47\xb8\x47\xb9\x47\xba\x47\xbb\x47\xbc\x47\xbd\x47\xbe\x47\xbf\x47\xc0\x47\xc1\x47\xc2\x47\xc3\x47\xc4\x47\xc5\x47\xc6\x47\xc7\x47\xc8\x47\xc9\x47\xca\x47\xcb\x47\xcc\x47\xcd\x47\xce\x47\xcf\x47\xd0\x47\xd1\x47\xd2\x47\xd3\x47\xd4\x47\xd5\x47\xd6\x47\xd7\x47\xd8\x47\xd9\x47\xda\x47\xdb\x47\xdc\x47\xdd\x47\xde\x47\xdf\x47\xe0\x47\xe1\x47\xe2\x47\xe3\x47\xe4\x47\xe5\x47\xe6\x47\xe7\x47\xe8\x47\xe9\x47\xea\x47\xeb\x47\xec\x47\xed\x47\xee\x47\xef\x47\xf0\x47\xf1\x47\xf2\x47\xf3\x47\xf4\x47\xf5\x47\xf6\x47\xf7\x47\xf8\x47\xf9\x47\xfa\x47\xfb\x47\xfc\x47\xfd\x47\xfe\x47\xff\x48\x00\x48\x01\x48\x02\x48\x03\x48\x04\x48\x05\x48\x06\x48\x07\x48\x08\x48\x09\x48\x0a\x48\x0b\x48\x0c\x48\x0d\x48\x0e\x48\x0f\x48\x10\x48\x11\x48\x12\x48\x13\x48\x14\x48\x15\x48\x16\x48\x17\x48\x18\x48\x19\x48\x1a\x48\x1b\x48\x1c\x48\x1d\x48\x1e\x48\x1f\x48\x20\x48\x21\x48\x22\x48\x23\x48\x24\x00\x00", /* ea00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x25\x48\x26\x48\x27\x48\x28\x48\x29\x48\x2a\x48\x2b\x48\x2c\x48\x2d\x48\x2e\x48\x2f\x48\x30\x48\x31\x48\x32\x48\x33\x48\x34\x48\x35\x48\x36\x48\x37\x48\x38\x48\x39\x48\x3a\x48\x3b\x48\x3c\x48\x3d\x48\x3e\x48\x3f\x48\x40\x48\x41\x48\x42\x48\x43\x48\x44\x48\x45\x48\x46\x48\x47\x48\x48\x48\x49\x48\x4a\x48\x4b\x48\x4c\x48\x4d\x48\x4e\x48\x4f\x48\x50\x48\x51\x48\x52\x48\x53\x48\x54\x48\x55\x48\x56\x48\x57\x48\x58\x48\x59\x48\x5a\x48\x5b\x48\x5c\x48\x5d\x48\x5e\x48\x5f\x48\x60\x48\x61\x48\x62\x48\x63", /* ea80 */ "\x48\x64\x48\x65\x48\x66\x48\x67\x48\x68\x48\x69\x48\x6a\x48\x6b\x48\x6c\x48\x6d\x48\x6e\x48\x6f\x48\x70\x48\x71\x48\x72\x48\x73\x48\x74\x48\x75\x48\x76\x48\x77\x48\x78\x48\x79\x48\x7a\x48\x7b\x48\x7c\x48\x7d\x48\x7e\x48\x7f\x48\x80\x48\x81\x48\x82\x48\x83\x48\x84\x48\x85\x48\x86\x48\x87\x48\x88\x48\x89\x48\x8a\x48\x8b\x48\x8c\x48\x8d\x48\x8e\x48\x8f\x48\x90\x48\x91\x48\x92\x48\x93\x48\x94\x48\x95\x48\x96\x48\x97\x48\x98\x48\x99\x48\x9a\x48\x9b\x48\x9c\x48\x9d\x48\x9e\x48\x9f\x48\xa0\x48\xa1\x48\xa2\x48\xa3\x48\xa4\x48\xa5\x48\xa6\x48\xa7\x48\xa8\x48\xa9\x48\xaa\x48\xab\x48\xac\x48\xad\x48\xae\x48\xaf\x48\xb0\x48\xb1\x48\xb2\x48\xb3\x48\xb4\x48\xb5\x48\xb6\x48\xb7\x48\xb8\x48\xb9\x48\xba\x48\xbb\x48\xbc\x48\xbd\x48\xbe\x48\xbf\x48\xc0\x48\xc1\x48\xc2\x48\xc3\x48\xc4\x48\xc5\x48\xc6\x48\xc7\x48\xc8\x48\xc9\x48\xca\x48\xcb\x48\xcc\x48\xcd\x48\xce\x48\xcf\x48\xd0\x48\xd1\x48\xd2\x48\xd3\x48\xd4\x48\xd5\x48\xd6\x48\xd7\x48\xd8\x48\xd9\x48\xda\x48\xdb\x48\xdc\x48\xdd\x48\xde\x48\xdf\x48\xe0\x48\xe1\x48\xe2\x00\x00", /* eb00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\xe3\x48\xe4\x48\xe5\x48\xe6\x48\xe7\x48\xe8\x48\xe9\x48\xea\x48\xeb\x48\xec\x48\xed\x48\xee\x48\xef\x48\xf0\x48\xf1\x48\xf2\x48\xf3\x48\xf4\x48\xf5\x48\xf6\x48\xf7\x48\xf8\x48\xf9\x48\xfa\x48\xfb\x48\xfc\x48\xfd\x48\xfe\x48\xff\x49\x00\x49\x01\x49\x02\x49\x03\x49\x04\x49\x05\x49\x06\x49\x07\x49\x08\x49\x09\x49\x0a\x49\x0b\x49\x0c\x49\x0d\x49\x0e\x49\x0f\x49\x10\x49\x11\x49\x12\x49\x13\x49\x14\x49\x15\x49\x16\x49\x17\x49\x18\x49\x19\x49\x1a\x49\x1b\x49\x1c\x49\x1d\x49\x1e\x49\x1f\x49\x20\x49\x21", /* eb80 */ "\x49\x22\x49\x23\x49\x24\x49\x25\x49\x26\x49\x27\x49\x28\x49\x29\x49\x2a\x49\x2b\x49\x2c\x49\x2d\x49\x2e\x49\x2f\x49\x30\x49\x31\x49\x32\x49\x33\x49\x34\x49\x35\x49\x36\x49\x37\x49\x38\x49\x39\x49\x3a\x49\x3b\x49\x3c\x49\x3d\x49\x3e\x49\x3f\x49\x40\x49\x41\x49\x42\x49\x43\x49\x44\x49\x45\x49\x46\x49\x48\x49\x49\x49\x4a\x49\x4b\x49\x4c\x49\x4d\x49\x4e\x49\x4f\x49\x50\x49\x51\x49\x52\x49\x53\x49\x54\x49\x55\x49\x56\x49\x57\x49\x58\x49\x59\x49\x5a\x49\x5b\x49\x5c\x49\x5d\x49\x5e\x49\x5f\x49\x60\x49\x61\x49\x62\x49\x63\x49\x64\x49\x65\x49\x66\x49\x67\x49\x68\x49\x69\x49\x6a\x49\x6b\x49\x6c\x49\x6d\x49\x6e\x49\x6f\x49\x70\x49\x71\x49\x72\x49\x73\x49\x74\x49\x75\x49\x76\x49\x77\x49\x78\x49\x79\x49\x7b\x49\x7c\x49\x7e\x49\x7f\x49\x80\x49\x81\x49\x84\x49\x87\x49\x88\x49\x89\x49\x8a\x49\x8b\x49\x8c\x49\x8d\x49\x8e\x49\x8f\x49\x90\x49\x91\x49\x92\x49\x93\x49\x94\x49\x95\x49\x96\x49\x97\x49\x98\x49\x99\x49\x9a\x49\x9c\x49\x9d\x49\x9e\x49\xa0\x49\xa1\x49\xa2\x49\xa3\x49\xa4\x49\xa5\x49\xa6\x49\xa7\x49\xa8\x49\xa9\x00\x00", /* ec00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\xaa\x49\xab\x49\xac\x49\xad\x49\xae\x49\xaf\x49\xb0\x49\xb1\x49\xb2\x49\xb3\x49\xb4\x49\xb5\x49\xb8\x49\xb9\x49\xba\x49\xbb\x49\xbc\x49\xbd\x49\xbe\x49\xbf\x49\xc0\x49\xc1\x49\xc2\x49\xc3\x49\xc4\x49\xc5\x49\xc6\x49\xc7\x49\xc8\x49\xc9\x49\xca\x49\xcb\x49\xcc\x49\xcd\x49\xce\x49\xcf\x49\xd0\x49\xd1\x49\xd2\x49\xd3\x49\xd4\x49\xd5\x49\xd6\x49\xd7\x49\xd8\x49\xd9\x49\xda\x49\xdb\x49\xdc\x49\xdd\x49\xde\x49\xdf\x49\xe0\x49\xe1\x49\xe2\x49\xe3\x49\xe4\x49\xe5\x49\xe6\x49\xe7\x49\xe8\x49\xe9\x49\xea", /* ec80 */ "\x49\xeb\x49\xec\x49\xed\x49\xee\x49\xef\x49\xf0\x49\xf1\x49\xf2\x49\xf3\x49\xf4\x49\xf5\x49\xf6\x49\xf7\x49\xf8\x49\xf9\x49\xfa\x49\xfb\x49\xfc\x49\xfd\x49\xfe\x49\xff\x4a\x00\x4a\x01\x4a\x02\x4a\x03\x4a\x04\x4a\x05\x4a\x06\x4a\x07\x4a\x08\x4a\x09\x4a\x0a\x4a\x0b\x4a\x0c\x4a\x0d\x4a\x0e\x4a\x0f\x4a\x10\x4a\x11\x4a\x12\x4a\x13\x4a\x14\x4a\x15\x4a\x16\x4a\x17\x4a\x18\x4a\x19\x4a\x1a\x4a\x1b\x4a\x1c\x4a\x1d\x4a\x1e\x4a\x1f\x4a\x20\x4a\x21\x4a\x22\x4a\x23\x4a\x24\x4a\x25\x4a\x26\x4a\x27\x4a\x28\x4a\x29\x4a\x2a\x4a\x2b\x4a\x2c\x4a\x2d\x4a\x2e\x4a\x2f\x4a\x30\x4a\x31\x4a\x32\x4a\x33\x4a\x34\x4a\x35\x4a\x36\x4a\x37\x4a\x38\x4a\x39\x4a\x3a\x4a\x3b\x4a\x3c\x4a\x3d\x4a\x3e\x4a\x3f\x4a\x40\x4a\x41\x4a\x42\x4a\x43\x4a\x44\x4a\x45\x4a\x46\x4a\x47\x4a\x48\x4a\x49\x4a\x4a\x4a\x4b\x4a\x4c\x4a\x4d\x4a\x4e\x4a\x4f\x4a\x50\x4a\x51\x4a\x52\x4a\x53\x4a\x54\x4a\x55\x4a\x56\x4a\x57\x4a\x58\x4a\x59\x4a\x5a\x4a\x5b\x4a\x5c\x4a\x5d\x4a\x5e\x4a\x5f\x4a\x60\x4a\x61\x4a\x62\x4a\x63\x4a\x64\x4a\x65\x4a\x66\x4a\x67\x4a\x68\x4a\x69\x00\x00", /* ed00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x6a\x4a\x6b\x4a\x6c\x4a\x6d\x4a\x6e\x4a\x6f\x4a\x70\x4a\x71\x4a\x72\x4a\x73\x4a\x74\x4a\x75\x4a\x76\x4a\x77\x4a\x78\x4a\x79\x4a\x7a\x4a\x7b\x4a\x7c\x4a\x7d\x4a\x7e\x4a\x7f\x4a\x80\x4a\x81\x4a\x82\x4a\x83\x4a\x84\x4a\x85\x4a\x86\x4a\x87\x4a\x88\x4a\x89\x4a\x8a\x4a\x8b\x4a\x8c\x4a\x8d\x4a\x8e\x4a\x8f\x4a\x90\x4a\x91\x4a\x92\x4a\x93\x4a\x94\x4a\x95\x4a\x96\x4a\x97\x4a\x98\x4a\x99\x4a\x9a\x4a\x9b\x4a\x9c\x4a\x9d\x4a\x9e\x4a\x9f\x4a\xa0\x4a\xa1\x4a\xa2\x4a\xa3\x4a\xa4\x4a\xa5\x4a\xa6\x4a\xa7\x4a\xa8", /* ed80 */ "\x4a\xa9\x4a\xaa\x4a\xab\x4a\xac\x4a\xad\x4a\xae\x4a\xaf\x4a\xb0\x4a\xb1\x4a\xb2\x4a\xb3\x4a\xb4\x4a\xb5\x4a\xb6\x4a\xb7\x4a\xb8\x4a\xb9\x4a\xba\x4a\xbb\x4a\xbc\x4a\xbd\x4a\xbe\x4a\xbf\x4a\xc0\x4a\xc1\x4a\xc2\x4a\xc3\x4a\xc4\x4a\xc5\x4a\xc6\x4a\xc7\x4a\xc8\x4a\xc9\x4a\xca\x4a\xcb\x4a\xcc\x4a\xcd\x4a\xce\x4a\xcf\x4a\xd0\x4a\xd1\x4a\xd2\x4a\xd3\x4a\xd4\x4a\xd5\x4a\xd6\x4a\xd7\x4a\xd8\x4a\xd9\x4a\xda\x4a\xdb\x4a\xdc\x4a\xdd\x4a\xde\x4a\xdf\x4a\xe0\x4a\xe1\x4a\xe2\x4a\xe3\x4a\xe4\x4a\xe5\x4a\xe6\x4a\xe7\x4a\xe8\x4a\xe9\x4a\xea\x4a\xeb\x4a\xec\x4a\xed\x4a\xee\x4a\xef\x4a\xf0\x4a\xf1\x4a\xf2\x4a\xf3\x4a\xf4\x4a\xf5\x4a\xf6\x4a\xf7\x4a\xf8\x4a\xf9\x4a\xfa\x4a\xfb\x4a\xfc\x4a\xfd\x4a\xfe\x4a\xff\x4b\x00\x4b\x01\x4b\x02\x4b\x03\x4b\x04\x4b\x05\x4b\x06\x4b\x07\x4b\x08\x4b\x09\x4b\x0a\x4b\x0b\x4b\x0c\x4b\x0d\x4b\x0e\x4b\x0f\x4b\x10\x4b\x11\x4b\x12\x4b\x13\x4b\x14\x4b\x15\x4b\x16\x4b\x17\x4b\x18\x4b\x19\x4b\x1a\x4b\x1b\x4b\x1c\x4b\x1d\x4b\x1e\x4b\x1f\x4b\x20\x4b\x21\x4b\x22\x4b\x23\x4b\x24\x4b\x25\x4b\x26\x4b\x27\x00\x00", /* ee00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x28\x4b\x29\x4b\x2a\x4b\x2b\x4b\x2c\x4b\x2d\x4b\x2e\x4b\x2f\x4b\x30\x4b\x31\x4b\x32\x4b\x33\x4b\x34\x4b\x35\x4b\x36\x4b\x37\x4b\x38\x4b\x39\x4b\x3a\x4b\x3b\x4b\x3c\x4b\x3d\x4b\x3e\x4b\x3f\x4b\x40\x4b\x41\x4b\x42\x4b\x43\x4b\x44\x4b\x45\x4b\x46\x4b\x47\x4b\x48\x4b\x49\x4b\x4a\x4b\x4b\x4b\x4c\x4b\x4d\x4b\x4e\x4b\x4f\x4b\x50\x4b\x51\x4b\x52\x4b\x53\x4b\x54\x4b\x55\x4b\x56\x4b\x57\x4b\x58\x4b\x59\x4b\x5a\x4b\x5b\x4b\x5c\x4b\x5d\x4b\x5e\x4b\x5f\x4b\x60\x4b\x61\x4b\x62\x4b\x63\x4b\x64\x4b\x65\x4b\x66", /* ee80 */ "\x4b\x67\x4b\x68\x4b\x69\x4b\x6a\x4b\x6b\x4b\x6c\x4b\x6d\x4b\x6e\x4b\x6f\x4b\x70\x4b\x71\x4b\x72\x4b\x73\x4b\x74\x4b\x75\x4b\x76\x4b\x77\x4b\x78\x4b\x79\x4b\x7a\x4b\x7b\x4b\x7c\x4b\x7d\x4b\x7e\x4b\x7f\x4b\x80\x4b\x81\x4b\x82\x4b\x83\x4b\x84\x4b\x85\x4b\x86\x4b\x87\x4b\x88\x4b\x89\x4b\x8a\x4b\x8b\x4b\x8c\x4b\x8d\x4b\x8e\x4b\x8f\x4b\x90\x4b\x91\x4b\x92\x4b\x93\x4b\x94\x4b\x95\x4b\x96\x4b\x97\x4b\x98\x4b\x99\x4b\x9a\x4b\x9b\x4b\x9c\x4b\x9d\x4b\x9e\x4b\x9f\x4b\xa0\x4b\xa1\x4b\xa2\x4b\xa3\x4b\xa4\x4b\xa5\x4b\xa6\x4b\xa7\x4b\xa8\x4b\xa9\x4b\xaa\x4b\xab\x4b\xac\x4b\xad\x4b\xae\x4b\xaf\x4b\xb0\x4b\xb1\x4b\xb2\x4b\xb3\x4b\xb4\x4b\xb5\x4b\xb6\x4b\xb7\x4b\xb8\x4b\xb9\x4b\xba\x4b\xbb\x4b\xbc\x4b\xbd\x4b\xbe\x4b\xbf\x4b\xc0\x4b\xc1\x4b\xc2\x4b\xc3\x4b\xc4\x4b\xc5\x4b\xc6\x4b\xc7\x4b\xc8\x4b\xc9\x4b\xca\x4b\xcb\x4b\xcc\x4b\xcd\x4b\xce\x4b\xcf\x4b\xd0\x4b\xd1\x4b\xd2\x4b\xd3\x4b\xd4\x4b\xd5\x4b\xd6\x4b\xd7\x4b\xd8\x4b\xd9\x4b\xda\x4b\xdb\x4b\xdc\x4b\xdd\x4b\xde\x4b\xdf\x4b\xe0\x4b\xe1\x4b\xe2\x4b\xe3\x4b\xe4\x4b\xe5\x00\x00", /* ef00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\xe6\x4b\xe7\x4b\xe8\x4b\xe9\x4b\xea\x4b\xeb\x4b\xec\x4b\xed\x4b\xee\x4b\xef\x4b\xf0\x4b\xf1\x4b\xf2\x4b\xf3\x4b\xf4\x4b\xf5\x4b\xf6\x4b\xf7\x4b\xf8\x4b\xf9\x4b\xfa\x4b\xfb\x4b\xfc\x4b\xfd\x4b\xfe\x4b\xff\x4c\x00\x4c\x01\x4c\x02\x4c\x03\x4c\x04\x4c\x05\x4c\x06\x4c\x07\x4c\x08\x4c\x09\x4c\x0a\x4c\x0b\x4c\x0c\x4c\x0d\x4c\x0e\x4c\x0f\x4c\x10\x4c\x11\x4c\x12\x4c\x13\x4c\x14\x4c\x15\x4c\x16\x4c\x17\x4c\x18\x4c\x19\x4c\x1a\x4c\x1b\x4c\x1c\x4c\x1d\x4c\x1e\x4c\x1f\x4c\x20\x4c\x21\x4c\x22\x4c\x23\x4c\x24", /* ef80 */ "\x4c\x25\x4c\x26\x4c\x27\x4c\x28\x4c\x29\x4c\x2a\x4c\x2b\x4c\x2c\x4c\x2d\x4c\x2e\x4c\x2f\x4c\x30\x4c\x31\x4c\x32\x4c\x33\x4c\x34\x4c\x35\x4c\x36\x4c\x37\x4c\x38\x4c\x39\x4c\x3a\x4c\x3b\x4c\x3c\x4c\x3d\x4c\x3e\x4c\x3f\x4c\x40\x4c\x41\x4c\x42\x4c\x43\x4c\x44\x4c\x45\x4c\x46\x4c\x47\x4c\x48\x4c\x49\x4c\x4a\x4c\x4b\x4c\x4c\x4c\x4d\x4c\x4e\x4c\x4f\x4c\x50\x4c\x51\x4c\x52\x4c\x53\x4c\x54\x4c\x55\x4c\x56\x4c\x57\x4c\x58\x4c\x59\x4c\x5a\x4c\x5b\x4c\x5c\x4c\x5d\x4c\x5e\x4c\x5f\x4c\x60\x4c\x61\x4c\x62\x4c\x63\x4c\x64\x4c\x65\x4c\x66\x4c\x67\x4c\x68\x4c\x69\x4c\x6a\x4c\x6b\x4c\x6c\x4c\x6d\x4c\x6e\x4c\x6f\x4c\x70\x4c\x71\x4c\x72\x4c\x73\x4c\x74\x4c\x75\x4c\x76\x4c\x78\x4c\x79\x4c\x7a\x4c\x7b\x4c\x7c\x4c\x7d\x4c\x7e\x4c\x7f\x4c\x80\x4c\x81\x4c\x82\x4c\x83\x4c\x84\x4c\x85\x4c\x86\x4c\x87\x4c\x88\x4c\x89\x4c\x8a\x4c\x8b\x4c\x8c\x4c\x8d\x4c\x8e\x4c\x8f\x4c\x90\x4c\x91\x4c\x92\x4c\x93\x4c\x94\x4c\x95\x4c\x96\x4c\x97\x4c\x98\x4c\x99\x4c\x9a\x4c\x9b\x4c\x9c\x4c\x9d\x4c\x9e\x4c\xa4\x4c\xa5\x4c\xa6\x4c\xa7\x4c\xa8\x4c\xa9\x00\x00", /* f000 */ NULL, /* f080 */ NULL, /* f100 */ NULL, /* f180 */ NULL, /* f200 */ NULL, /* f280 */ NULL, /* f300 */ NULL, /* f380 */ NULL, /* f400 */ NULL, /* f480 */ NULL, /* f500 */ NULL, /* f580 */ NULL, /* f600 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\xaa\x4c\xab\x4c\xac\x4c\xad\x4c\xae\x4c\xaf\x4c\xb0\x4c\xb1\x4c\xb2\x4c\xb3\x4c\xb4\x4c\xb5\x4c\xb6\x4c\xb7\x4c\xb8\x4c\xb9\x4c\xba\x4c\xbb\x4c\xbc\x4c\xbd\x4c\xbe\x4c\xbf\x4c\xc0\x4c\xc1\x4c\xc2\x4c\xc3\x4c\xc4\x4c\xc5\x4c\xc6\x4c\xc7\x4c\xc8\x4c\xc9\x4c\xca\x4c\xcb\x4c\xcc\x4c\xcd\x4c\xce\x4c\xcf\x4c\xd0\x4c\xd1\x4c\xd2\x4c\xd3\x4c\xd4\x4c\xd5\x4c\xd6\x4c\xd7\x4c\xd8\x4c\xd9\x4c\xda\x4c\xdb\x4c\xdc\x4c\xdd\x4c\xde\x4c\xdf\x4c\xe0\x4c\xe1\x4c\xe2\x4c\xe3\x4c\xe4\x4c\xe5\x4c\xe6\x4c\xe7\x4c\xe8", /* f680 */ "\x4c\xe9\x4c\xea\x4c\xeb\x4c\xec\x4c\xed\x4c\xee\x4c\xef\x4c\xf0\x4c\xf1\x4c\xf2\x4c\xf3\x4c\xf4\x4c\xf5\x4c\xf6\x4c\xf7\x4c\xf8\x4c\xf9\x4c\xfa\x4c\xfb\x4c\xfc\x4c\xfd\x4c\xfe\x4c\xff\x4d\x00\x4d\x01\x4d\x02\x4d\x03\x4d\x04\x4d\x05\x4d\x06\x4d\x07\x4d\x08\x4d\x09\x4d\x0a\x4d\x0b\x4d\x0c\x4d\x0d\x4d\x0e\x4d\x0f\x4d\x10\x4d\x11\x4d\x12\x4d\x1a\x4d\x1b\x4d\x1c\x4d\x1d\x4d\x1e\x4d\x1f\x4d\x20\x4d\x21\x4d\x22\x4d\x23\x4d\x24\x4d\x25\x4d\x26\x4d\x27\x4d\x28\x4d\x29\x4d\x2a\x4d\x2b\x4d\x2c\x4d\x2d\x4d\x2e\x4d\x2f\x4d\x30\x4d\x31\x4d\x32\x4d\x33\x4d\x34\x4d\x35\x4d\x36\x4d\x37\x4d\x38\x4d\x39\x4d\x3a\x4d\x3b\x4d\x3c\x4d\x3d\x4d\x3e\x4d\x3f\x4d\x40\x4d\x41\x4d\x42\x4d\x43\x4d\x44\x4d\x45\x4d\x46\x4d\x47\x4d\x48\x4d\x49\x4d\x4a\x4d\x4b\x4d\x4c\x4d\x4d\x4d\x4e\x4d\x4f\x4d\x50\x4d\x51\x4d\x52\x4d\x53\x4d\x54\x4d\x55\x4d\x56\x4d\x57\x4d\x58\x4d\x59\x4d\x5a\x4d\x5b\x4d\x5c\x4d\x5d\x4d\x5e\x4d\x5f\x4d\x60\x4d\x61\x4d\x62\x4d\x63\x4d\x64\x4d\x65\x4d\x66\x4d\x67\x4d\x68\x4d\x69\x4d\x6a\x4d\x6b\x4d\x6c\x4d\x6d\x4d\x6e\x00\x00", /* f700 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x6f\x4d\x70\x4d\x71\x4d\x72\x4d\x73\x4d\x74\x4d\x75\x4d\x76\x4d\x77\x4d\x78\x4d\x79\x4d\x7a\x4d\x7b\x4d\x7c\x4d\x7d\x4d\x7e\x4d\x7f\x4d\x80\x4d\x81\x4d\x82\x4d\x83\x4d\x84\x4d\x85\x4d\x86\x4d\x87\x4d\x88\x4d\x89\x4d\x8a\x4d\x8b\x4d\x8c\x4d\x8d\x4d\x8e\x4d\x8f\x4d\x90\x4d\x91\x4d\x92\x4d\x93\x4d\x94\x4d\x95\x4d\x96\x4d\x97\x4d\x98\x4d\x99\x4d\x9a\x4d\x9b\x4d\x9c\x4d\x9d\x4d\x9e\x4d\x9f\x4d\xa0\x4d\xa1\x4d\xa2\x4d\xa3\x4d\xa4\x4d\xa5\x4d\xa6\x4d\xa7\x4d\xa8\x4d\xa9\x4d\xaa\x4d\xab\x4d\xac\x4d\xad", /* f780 */ "\x4d\xaf\x4d\xb0\x4d\xb1\x4d\xb2\x4d\xb3\x4d\xb4\x4d\xb5\x4d\xb6\x4d\xb7\x4d\xb8\x4d\xb9\x4d\xba\x4d\xbb\x4d\xbc\x4d\xbd\x4d\xbe\x4d\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f800 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x56\xfb\x57\xfb\x58\xfb\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x7a\xfb\x7b\xfb\x7c\xfb\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x8e", /* f880 */ "\xfb\x8f\xfb\x90\xfb\x91\xfb\x92\xfb\x93\xfb\x94\xfb\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xaa\xfb\xab\xfb\xac\xfb\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xd3\xfb\xd4\xfb\xd5\xfb\xd6\xfb\xd7\xfb\xd8\xfb\xd9\xfb\xda\xfb\xdb\xfb\xdc\xfb\xdd\xfb\xde\xfb\xdf\xfb\xe0\xfb\xe1\xfb\xe2\xfb\xe3\xfb\xe4\xfb\xe5\xfb\xe6\xfb\xe7\xfb\xe8\xfb\xe9\xfb\xea\xfb\xeb\xfb\xec\xfb\xed\xfb\xee\xfb\xef\xfb\xf0\xfb\xf1\xfb\xf2\xfb\xf3\xfb\xf4\xfb\xf5\xfb\xf6\xfb\xf7\xfb\xf8\xfb\xf9\xfb\xfa\xfb\xfb\xfb\xfc\xfb\xfd\xfb\xfe\xfb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* f900 */ NULL, /* f980 */ NULL, /* fa00 */ NULL, /* fa80 */ NULL, /* fb00 */ NULL, /* fb80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x89\xfe\x8a\xfe\x8b\xfe\x8c\xfe\x8d\xfe\x8e\xfe\x8f\xfe\x90\xfe\x91\xfe\x92\x00\x00\x00\x00\xfe\x95\xfe\x96\xfe\x97\xfe\x98\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x9d\xfe\x9e\xfe\x9f\xfe\xa0\xfe\xa1\xfe\xa2\xfe\xa3\xfe\xa4\xfe\xa5\xfe\xa6\xfe\xa7\xfe\xa8\xfe\xa9\xfe\xaa\x00\x00\x00\x00\xfe\xad\xfe\xae\xfe\xaf\xfe\xb0\xfe\xb1\xfe\xb2\xfe\xb3\xfe\xb4\xfe\xb5\xfe\xb6\xfe\xb7\x00\x00", /* fc00 */ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xc9\xfe\xca\xfe\xcb\xfe\xcc\xfe\xcd\xfe\xce\xfe\xcf\xfe\xd0\xfe\xd1\xfe\xd2\xfe\xd3\xfe\xd4\xfe\xd5\xfe\xd6\xfe\xd7\xfe\xd8\xfe\xd9\xfe\xda\xfe\xdb\xfe\xdc\xfe\xdd\xfe\xde\xfe\xdf\xfe\xe0\xfe\xe1\xfe\xe2\xfe\xe3\xfe\xe4\xfe\xe5\xfe\xe6\xfe\xe7\xfe\xe8\xfe\xe9\xfe\xea\xfe\xeb\xfe\xec\xfe\xed\xfe\xee\xfe\xef\xfe\xf0\xfe\xf1\xfe\xf2\xfe\xf3\xfe\xf4\x00\x00\x00\x00", /* fc80 */ "\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfb\xfe\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x8d\xe7\x8e\xe7\x8f\xe7\x90\xe7\x91\xe7\x92\xe7\x93\xe7\x94\xe7\x95\xe7\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", /* fd00 */ NULL, /* fd80 */ NULL, /* fe00 */ NULL, /* fe80 */ NULL, /* ff00 */ NULL, /* ff80 */ NULL } }, { NULL } }; /* Code page aliases. */ typedef struct { char *alias; char *canon; } cpalias_t; cpalias_t cpaliases16[] = { { "chinese-gb18030", "cp1388" }, { "cp1027", "cp930" }, /* historical error */ { "cp290", "cp930" }, /* historical error */ { "cp936", "cp935" }, /* historical error */ { "japanese-1027", "cp930" }, /* historical error */ { "japanese-290", "cp930" }, /* historical error */ { "japanese-kana", "cp930" }, { "japanese-latin", "cp930" }, /* 930 and 939 DBCS are the same */ { "simplified-chinese", "cp935" }, { "traditional-chinese", "cp937" }, { NULL, NULL } }; static uni16_t *cur_uni16 = NULL; void charset_list_dbcs(void) { int i; int j; char *sep = ""; printf("DBCS host code pages (with aliases):\n"); for (i = 0; uni16[i].name != NULL; i++) { Boolean any = False; char *asep = " ("; printf("%s%s", sep, uni16[i].name); for (j = 0; cpaliases16[j].alias != NULL; j++) { if (!strcmp(cpaliases16[j].canon, uni16[i].name)) { printf("%s%s", asep, cpaliases16[j].alias); asep = ", "; any = True; } } if (any) printf(")"); sep = ", "; } printf("\n"); } /* * Translate a single DBCS EBCDIC character to Unicode. * * If EUO_BLANK_UNDEF is set, undisplayable characters are returned as * wide spaces (U+3000); otherwise they are returned as 0. */ ucs4_t ebcdic_dbcs_to_unicode(ebc_t c, unsigned flags) { int row, col; int ix; if (cur_uni16 == NULL || c < 0x100) return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; if (c == 0x4040) return 0x3000; row = (c >> 7) & 0x1ff; if (cur_uni16->ebc2u[row] == NULL) return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; col = (c & 0x7f) * 2; ix = ((cur_uni16->ebc2u[row][col] & 0xff) << 8) | (cur_uni16->ebc2u[row][col + 1] & 0xff); if (ix) return ix; else return (flags & EUO_BLANK_UNDEF)? 0x3000: 0; } /* * Map a UCS-4 character to a DBCS EBCDIC character. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic_dbcs(ucs4_t u) { int row, col; int ix; if (cur_uni16 == NULL || !u) return 0; if (u == 0x3000) return 0x4040; row = (u >> 7) & 0x1ff; if (cur_uni16->u2ebc[row] == NULL) return 0; col = (u & 0x7f) * 2; ix = ((cur_uni16->u2ebc[row][col] & 0xff) << 8) | (cur_uni16->u2ebc[row][col + 1] & 0xff); return ix; } /* * Set the EBCDIC-to-Unicode DBCS translation table. * Returns 0 for success, -1 for failure. */ int set_uni_dbcs(const char *csname, const char **codepage, const char **display_charsets) { int i; const char *realname = csname; int rc = -1; /* Search for an alias. */ for (i = 0; cpaliases16[i].alias != NULL; i++) { if (!strcasecmp(csname, cpaliases16[i].alias)) { realname = cpaliases16[i].canon; break; } } /* Search for a match. */ for (i = 0; uni16[i].name != NULL; i++) { if (!strcasecmp(realname, uni16[i].name)) { cur_uni16 = &uni16[i]; *codepage = uni16[i].codepage; *display_charsets = uni16[i].display_charset; rc = 0; break; } } /* * If this fails (which we sometimes do on purpose), forget any * old setting. */ if (rc == -1) cur_uni16 = NULL; return rc; } #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/3270ds.h0000644000175000017500000003372511254565704015241 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES AND GTRC * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, JEFF * SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * 3270ds.h * * Header file for the 3270 Data Stream Protocol. */ /* 3270 commands */ #define CMD_W 0x01 /* write */ #define CMD_RB 0x02 /* read buffer */ #define CMD_NOP 0x03 /* no-op */ #define CMD_EW 0x05 /* erase/write */ #define CMD_RM 0x06 /* read modified */ #define CMD_EWA 0x0d /* erase/write alternate */ #define CMD_RMA 0x0e /* read modified all */ #define CMD_EAU 0x0f /* erase all unprotected */ #define CMD_WSF 0x11 /* write structured field */ /* SNA 3270 commands */ #define SNA_CMD_RMA 0x6e /* read modified all */ #define SNA_CMD_EAU 0x6f /* erase all unprotected */ #define SNA_CMD_EWA 0x7e /* erase/write alternate */ #define SNA_CMD_W 0xf1 /* write */ #define SNA_CMD_RB 0xf2 /* read buffer */ #define SNA_CMD_WSF 0xf3 /* write structured field */ #define SNA_CMD_EW 0xf5 /* erase/write */ #define SNA_CMD_RM 0xf6 /* read modified */ /* 3270 orders */ #define ORDER_PT 0x05 /* program tab */ #define ORDER_GE 0x08 /* graphic escape */ #define ORDER_SBA 0x11 /* set buffer address */ #define ORDER_EUA 0x12 /* erase unprotected to address */ #define ORDER_IC 0x13 /* insert cursor */ #define ORDER_SF 0x1d /* start field */ #define ORDER_SA 0x28 /* set attribute */ #define ORDER_SFE 0x29 /* start field extended */ #define ORDER_YALE 0x2b /* Yale sub command */ #define ORDER_MF 0x2c /* modify field */ #define ORDER_RA 0x3c /* repeat to address */ #define FCORDER_NULL 0x00 /* format control: null */ #define FCORDER_FF 0x0c /* form feed */ #define FCORDER_CR 0x0d /* carriage return */ #define FCORDER_SO 0x0e /* shift out (DBCS subfield) */ #define FCORDER_SI 0x0f /* shift in (DBCS end) */ #define FCORDER_NL 0x15 /* new line */ #define FCORDER_EM 0x19 /* end of medium */ #define FCORDER_DUP 0x1c /* duplicate */ #define FCORDER_FM 0x1e /* field mark */ #define FCORDER_SUB 0x3f /* substitute */ #define FCORDER_EO 0xff /* eight ones */ /* SCS control code, some overlap orders */ #define SCS_BS 0x16 /* Back Space */ #define SCS_BEL 0x2f /* Bell Function */ #define SCS_CR 0x0d /* Carriage Return */ #define SCS_ENP 0x14 /* Enable Presentation */ #define SCS_FF 0x0c /* Forms Feed */ #define SCS_GE 0x08 /* Graphic Escape */ #define SCS_HT 0x05 /* Horizontal Tab */ #define SCS_INP 0x24 /* Inhibit Presentation */ #define SCS_IRS 0x1e /* Interchange-Record Separator */ #define SCS_LF 0x25 /* Line Feed */ #define SCS_NL 0x15 /* New Line */ #define SCS_SA 0x28 /* Set Attribute: */ #define SCS_SA_RESET 0x00 /* Reset all */ #define SCS_SA_HIGHLIGHT 0x41 /* Highlighting */ #define SCS_SA_CS 0x42 /* Character set */ #define SCS_SA_GRID 0xc2 /* Grid */ #define SCS_SET 0x2b /* Set: */ #define SCS_SHF 0xc1 /* Horizontal format */ #define SCS_SLD 0xc6 /* Line Density */ #define SCS_SVF 0xc2 /* Vertical Format */ #define SCS_SO 0x0e /* Shift out (DBCS subfield start) */ #define SCS_SI 0x0f /* Shift in (DBCS subfield end) */ #define SCS_TRN 0x35 /* Transparent */ #define SCS_VCS 0x04 /* Vertical Channel Select */ #define SCS_VT 0x0b /* Vertical Tab */ /* Structured fields */ #define SF_READ_PART 0x01 /* read partition */ #define SF_RP_QUERY 0x02 /* query */ #define SF_RP_QLIST 0x03 /* query list */ #define SF_RPQ_LIST 0x00 /* QCODE list */ #define SF_RPQ_EQUIV 0x40 /* equivalent+ QCODE list */ #define SF_RPQ_ALL 0x80 /* all */ #define SF_ERASE_RESET 0x03 /* erase/reset */ #define SF_ER_DEFAULT 0x00 /* default */ #define SF_ER_ALT 0x80 /* alternate */ #define SF_SET_REPLY_MODE 0x09 /* set reply mode */ #define SF_SRM_FIELD 0x00 /* field */ #define SF_SRM_XFIELD 0x01 /* extended field */ #define SF_SRM_CHAR 0x02 /* character */ #define SF_CREATE_PART 0x0c /* create partition */ #define CPFLAG_PROT 0x40 /* protected flag */ #define CPFLAG_COPY_PS 0x20 /* local copy to presentation space */ #define CPFLAG_BASE 0x07 /* base character set index */ #define SF_OUTBOUND_DS 0x40 /* outbound 3270 DS */ #define SF_TRANSFER_DATA 0xd0 /* file transfer open request */ /* Query replies */ #define QR_SUMMARY 0x80 /* summary */ #define QR_USABLE_AREA 0x81 /* usable area */ #define QR_IMAGE 0x82 /* image */ #define QR_TEXT_PART 0x83 /* text partitions */ #define QR_ALPHA_PART 0x84 /* alphanumeric partitions */ #define QR_CHARSETS 0x85 /* character sets */ #define QR_COLOR 0x86 /* color */ #define QR_HIGHLIGHTING 0x87 /* highlighting */ #define QR_REPLY_MODES 0x88 /* reply modes */ #define QR_FIELD_VAL 0x8a /* field validation */ #define QR_MSR_CTL 0x8b /* MSR control */ #define QR_OUTLINING 0x8c /* field outlining */ #define QR_PART_CHAR 0x8e /* partition characteristics */ #define QR_OEM_AUX 0x8f /* OEM auxiliary device */ #define QR_FMT_PRES 0x90 /* format presentation */ #define QR_DBCS_ASIA 0x91 /* DBCS-Asia */ #define QR_SAVE_RESTORE 0x92 /* save/restore format */ #define QR_PC3270 0x93 /* PC3270 */ #define QR_FMT_SAD 0x94 /* format storage auxiliary device */ #define QR_DDM 0x95 /* distributed data management */ #define QR_STG_POOLS 0x96 /* storage pools */ #define QR_DIA 0x97 /* document interchange architecture */ #define QR_DATA_CHAIN 0x98 /* data chaining */ #define QR_AUX_DEVICE 0x99 /* auxiliary device */ #define QR_3270_IPDS 0x9a /* 3270 IPDS */ #define QR_PDDS 0x9c /* product defined data stream */ #define QR_IBM_AUX 0x9e /* IBM auxiliary device */ #define QR_BEGIN_EOF 0x9f /* begin/end of file */ #define QR_DEVICE_CHAR 0xa0 /* device characteristics */ #define QR_RPQNAMES 0xa1 /* RPQ names */ #define QR_DATA_STREAMS 0xa2 /* data streams */ #define QR_IMP_PART 0xa6 /* implicit partition */ #define QR_PAPER_FEED 0xa7 /* paper feed techniques */ #define QR_TRANSPARENCY 0xa8 /* transparency */ #define QR_SPC 0xa9 /* settable printer characteristics */ #define QR_IOCA_AD 0xaa /* IOCA auxiliary device */ #define QR_CPR 0xab /* cooperative proc. requestor */ #define QR_SEGMENT 0xb0 /* segment */ #define QR_PROCEDURE 0xb1 /* procedure */ #define QR_LINE_TYPE 0xb2 /* line type */ #define QR_PORT 0xb3 /* port */ #define QR_GCOLOR 0xb4 /* graphic color */ #define QR_XDR 0xb5 /* extended drawing routine */ #define QR_GSS 0xb6 /* graphic symbol sets */ #define QR_NULL 0xff /* null */ #define BA_TO_ROW(ba) ((ba) / COLS) #define BA_TO_COL(ba) ((ba) % COLS) #define ROWCOL_TO_BA(r,c) (((r) * COLS) + c) #define INC_BA(ba) { (ba) = ((ba) + 1) % (COLS * ROWS); } #define DEC_BA(ba) { (ba) = (ba) ? (ba - 1) : ((COLS*ROWS) - 1); } /* Field attributes. */ #define FA_PRINTABLE 0xc0 /* these make the character "printable" */ #define FA_PROTECT 0x20 /* unprotected (0) / protected (1) */ #define FA_NUMERIC 0x10 /* alphanumeric (0) /numeric (1) */ #define FA_INTENSITY 0x0c /* display/selector pen detectable: */ #define FA_INT_NORM_NSEL 0x00 /* 00 normal, non-detect */ #define FA_INT_NORM_SEL 0x04 /* 01 normal, detectable */ #define FA_INT_HIGH_SEL 0x08 /* 10 intensified, detectable */ #define FA_INT_ZERO_NSEL 0x0c /* 11 nondisplay, non-detect */ #define FA_RESERVED 0x02 /* must be 0 */ #define FA_MODIFY 0x01 /* modified (1) */ /* Bits in the field attribute that are stored. */ #define FA_MASK (FA_PROTECT | FA_NUMERIC | FA_INTENSITY | FA_MODIFY) /* Tests for various attribute properties. */ #define FA_IS_MODIFIED(c) ((c) & FA_MODIFY) #define FA_IS_NUMERIC(c) ((c) & FA_NUMERIC) #define FA_IS_PROTECTED(c) ((c) & FA_PROTECT) #define FA_IS_SKIP(c) (((c) & FA_PROTECT) && ((c) & FA_NUMERIC)) #define FA_IS_ZERO(c) \ (((c) & FA_INTENSITY) == FA_INT_ZERO_NSEL) #define FA_IS_HIGH(c) \ (((c) & FA_INTENSITY) == FA_INT_HIGH_SEL) #define FA_IS_NORMAL(c) \ ( \ ((c) & FA_INTENSITY) == FA_INT_NORM_NSEL \ || \ ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \ ) #define FA_IS_SELECTABLE(c) \ ( \ ((c) & FA_INTENSITY) == FA_INT_NORM_SEL \ || \ ((c) & FA_INTENSITY) == FA_INT_HIGH_SEL \ ) #define FA_IS_INTENSE(c) \ ((c & FA_INT_HIGH_SEL) == FA_INT_HIGH_SEL) /* Extended attributes */ #define XA_ALL 0x00 #define XA_3270 0xc0 #define XA_VALIDATION 0xc1 #define XAV_FILL 0x04 #define XAV_ENTRY 0x02 #define XAV_TRIGGER 0x01 #define XA_OUTLINING 0xc2 #define XAO_UNDERLINE 0x01 #define XAO_RIGHT 0x02 #define XAO_OVERLINE 0x04 #define XAO_LEFT 0x08 #define XA_HIGHLIGHTING 0x41 #define XAH_DEFAULT 0x00 #define XAH_NORMAL 0xf0 #define XAH_BLINK 0xf1 #define XAH_REVERSE 0xf2 #define XAH_UNDERSCORE 0xf4 #define XAH_INTENSIFY 0xf8 #define XA_FOREGROUND 0x42 #define XAC_DEFAULT 0x00 #define XA_CHARSET 0x43 #define XA_BACKGROUND 0x45 #define XA_TRANSPARENCY 0x46 #define XAT_DEFAULT 0x00 #define XAT_OR 0xf0 #define XAT_XOR 0xf1 #define XAT_OPAQUE 0xff #define XA_INPUT_CONTROL 0xfe #define XAI_DISABLED 0x00 #define XAI_ENABLED 0x01 /* WCC definitions */ #define WCC_RESET(c) ((c) & 0x40) #define WCC_START_PRINTER(c) ((c) & 0x08) #define WCC_SOUND_ALARM(c) ((c) & 0x04) #define WCC_KEYBOARD_RESTORE(c) ((c) & 0x02) #define WCC_RESET_MDT(c) ((c) & 0x01) /* AIDs */ #define AID_NO 0x60 /* no AID generated */ #define AID_QREPLY 0x61 #define AID_ENTER 0x7d #define AID_PF1 0xf1 #define AID_PF2 0xf2 #define AID_PF3 0xf3 #define AID_PF4 0xf4 #define AID_PF5 0xf5 #define AID_PF6 0xf6 #define AID_PF7 0xf7 #define AID_PF8 0xf8 #define AID_PF9 0xf9 #define AID_PF10 0x7a #define AID_PF11 0x7b #define AID_PF12 0x7c #define AID_PF13 0xc1 #define AID_PF14 0xc2 #define AID_PF15 0xc3 #define AID_PF16 0xc4 #define AID_PF17 0xc5 #define AID_PF18 0xc6 #define AID_PF19 0xc7 #define AID_PF20 0xc8 #define AID_PF21 0xc9 #define AID_PF22 0x4a #define AID_PF23 0x4b #define AID_PF24 0x4c #define AID_OICR 0xe6 #define AID_MSR_MHS 0xe7 #define AID_SELECT 0x7e #define AID_PA1 0x6c #define AID_PA2 0x6e #define AID_PA3 0x6b #define AID_CLEAR 0x6d #define AID_SYSREQ 0xf0 #define AID_SF 0x88 #define SFID_QREPLY 0x81 /* Colors */ #define HOST_COLOR_NEUTRAL_BLACK 0 #define HOST_COLOR_BLUE 1 #define HOST_COLOR_RED 2 #define HOST_COLOR_PINK 3 #define HOST_COLOR_GREEN 4 #define HOST_COLOR_TURQUOISE 5 #define HOST_COLOR_YELLOW 6 #define HOST_COLOR_NEUTRAL_WHITE 7 #define HOST_COLOR_BLACK 8 #define HOST_COLOR_DEEP_BLUE 9 #define HOST_COLOR_ORANGE 10 #define HOST_COLOR_PURPLE 11 #define HOST_COLOR_PALE_GREEN 12 #define HOST_COLOR_PALE_TURQUOISE 13 #define HOST_COLOR_GREY 14 #define HOST_COLOR_WHITE 15 /* Data stream manipulation macros. */ #define MASK32 0xff000000U #define MASK24 0x00ff0000U #define MASK16 0x0000ff00U #define MASK08 0x000000ffU #define MINUS1 0xffffffffU #define SET16(ptr, val) { \ *((ptr)++) = ((val) & MASK16) >> 8; \ *((ptr)++) = ((val) & MASK08); \ } #define GET16(val, ptr) { \ (val) = *((ptr)+1); \ (val) += *(ptr) << 8; \ } #define SET32(ptr, val) { \ *((ptr)++) = ((val) & MASK32) >> 24; \ *((ptr)++) = ((val) & MASK24) >> 16; \ *((ptr)++) = ((val) & MASK16) >> 8; \ *((ptr)++) = ((val) & MASK08); \ } #define HIGH8(s) (((s) >> 8) & 0xff) #define LOW8(s) ((s) & 0xff) /* Other EBCDIC control codes. */ #define EBC_null 0x00 #define EBC_ff 0x0c #define EBC_cr 0x0d #define EBC_so 0x0e #define EBC_si 0x0f #define EBC_nl 0x15 #define EBC_em 0x19 #define EBC_dup 0x1c #define EBC_fm 0x1e #define EBC_sub 0x3f #define EBC_space 0x40 #define EBC_nobreakspace 0x41 #define EBC_period 0x4b #define EBC_ampersand 0x50 #define EBC_underscore 0x6d #define EBC_greater 0x6e #define EBC_question 0x6f #define EBC_Yacute 0xad #define EBC_diaeresis 0xbd #define EBC_minus 0xca #define EBC_0 0xf0 #define EBC_9 0xf9 #define EBC_eo 0xff #define EBC_less 0x4c #define EBC_greaer 0x6e #define EBC_P 0xd7 #define EBC_M 0xd4 #define EBC_U 0xe4 /* Unicode private-use definitions. */ #define UPRIV_GE_00 0xf700 /* first GE */ #define UPRIV_GE_ff 0xf7ff /* last GE */ #define UPRIV_sub 0xf8fc #define UPRIV_eo 0xf8fd #define UPRIV_fm 0xf8fe #define UPRIV_dup 0xf8ff /* BIND definitions. */ #define BIND_RU 0x31 #define BIND_OFF_MAXRU_SEC 10 #define BIND_OFF_MAXRU_PRI 11 #define BIND_OFF_RD 20 #define BIND_OFF_CD 21 #define BIND_OFF_RA 22 #define BIND_OFF_CA 23 #define BIND_OFF_SSIZE 24 #define BIND_OFF_PLU_NAME_LEN 27 #define BIND_PLU_NAME_MAX 8 #define BIND_OFF_PLU_NAME 28 /* Screen sizes. */ #define MODEL_2_ROWS 24 #define MODEL_2_COLS 80 #define MODEL_3_ROWS 32 #define MODEL_3_COLS 80 #define MODEL_4_ROWS 43 #define MODEL_4_COLS 80 #define MODEL_5_ROWS 27 #define MODEL_5_COLS 132 ibm-3270-3.3.10ga4/ws3270/proxy.h0000644000175000017500000000367311254565704015477 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxy.h * Common definitions for proxy. */ #define PROXY_PASSTHRU "passthru" #define PORT_PASSTHRU "3514" #define PROXY_HTTP "http" #define PORT_HTTP "3128" #define PROXY_TELNET "telnet" #define PROXY_SOCKS4 "socks4" #define PORT_SOCKS4 "1080" #define PROXY_SOCKS4A "socks4a" #define PORT_SOCKS4A "1080" #define PROXY_SOCKS5 "socks5" #define PORT_SOCKS5 "1080" #define PROXY_SOCKS5D "socks5d" #define PORT_SOCKS5D "1080" ibm-3270-3.3.10ga4/ws3270/proxyc.h0000644000175000017500000000334311254565704015634 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * proxyc.h * Declarations for proxy.c. */ extern int proxy_setup(char **phost, char **pport); extern int proxy_negotiate(int type, int fd, char *host, unsigned short port); extern char *proxy_type_name(int type); ibm-3270-3.3.10ga4/ws3270/see.c0000644000175000017500000002356011254565704015062 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC nor * the names of their contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * see.c * 3270 data stream decode functions. * */ #include "globals.h" #if defined(X3270_TRACE) /*[*/ #include #include #include #include #include "3270ds.h" #include "tablesc.h" #include "utf8c.h" #include "seec.h" #include "unicodec.h" const char * unknown(unsigned char value) { static char buf[64]; (void) sprintf(buf, "unknown[0x%x]", value); return buf; } const char * see_ebc(unsigned char ch) { static char buf[8]; char mb[16]; ucs4_t uc; switch (ch) { case FCORDER_NULL: return "NULL"; case FCORDER_SUB: return "SUB"; case FCORDER_DUP: return "DUP"; case FCORDER_FM: return "FM"; case FCORDER_FF: return "FF"; case FCORDER_CR: return "CR"; case FCORDER_NL: return "NL"; case FCORDER_EM: return "EM"; case FCORDER_EO: return "EO"; case FCORDER_SI: return "SI"; case FCORDER_SO: return "SO"; } if (ebcdic_to_multibyte_x(ch, CS_BASE, mb, sizeof(mb), EUO_NONE, &uc) && (mb[0] != ' ' || ch == 0x40)) strcpy(buf, mb); else (void) sprintf(buf, "X'%02X'", ch); return buf; } const char * see_aid(unsigned char code) { switch (code) { case AID_NO: return "NoAID"; case AID_ENTER: return "Enter"; case AID_PF1: return "PF1"; case AID_PF2: return "PF2"; case AID_PF3: return "PF3"; case AID_PF4: return "PF4"; case AID_PF5: return "PF5"; case AID_PF6: return "PF6"; case AID_PF7: return "PF7"; case AID_PF8: return "PF8"; case AID_PF9: return "PF9"; case AID_PF10: return "PF10"; case AID_PF11: return "PF11"; case AID_PF12: return "PF12"; case AID_PF13: return "PF13"; case AID_PF14: return "PF14"; case AID_PF15: return "PF15"; case AID_PF16: return "PF16"; case AID_PF17: return "PF17"; case AID_PF18: return "PF18"; case AID_PF19: return "PF19"; case AID_PF20: return "PF20"; case AID_PF21: return "PF21"; case AID_PF22: return "PF22"; case AID_PF23: return "PF23"; case AID_PF24: return "PF24"; case AID_OICR: return "OICR"; case AID_MSR_MHS: return "MSR_MHS"; case AID_SELECT: return "Select"; case AID_PA1: return "PA1"; case AID_PA2: return "PA2"; case AID_PA3: return "PA3"; case AID_CLEAR: return "Clear"; case AID_SYSREQ: return "SysReq"; case AID_QREPLY: return "QueryReplyAID"; default: return unknown(code); } } const char * see_attr(unsigned char fa) { static char buf[256]; const char *paren = "("; buf[0] = '\0'; if (fa & FA_PROTECT) { (void) strcat(buf, paren); (void) strcat(buf, "protected"); paren = ","; if (fa & FA_NUMERIC) { (void) strcat(buf, paren); (void) strcat(buf, "skip"); paren = ","; } } else if (fa & FA_NUMERIC) { (void) strcat(buf, paren); (void) strcat(buf, "numeric"); paren = ","; } switch (fa & FA_INTENSITY) { case FA_INT_NORM_NSEL: break; case FA_INT_NORM_SEL: (void) strcat(buf, paren); (void) strcat(buf, "detectable"); paren = ","; break; case FA_INT_HIGH_SEL: (void) strcat(buf, paren); (void) strcat(buf, "intensified"); paren = ","; break; case FA_INT_ZERO_NSEL: (void) strcat(buf, paren); (void) strcat(buf, "nondisplay"); paren = ","; break; } if (fa & FA_MODIFY) { (void) strcat(buf, paren); (void) strcat(buf, "modified"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(default)"); return buf; } static const char * see_highlight(unsigned char setting) { switch (setting) { case XAH_DEFAULT: return "default"; case XAH_NORMAL: return "normal"; case XAH_BLINK: return "blink"; case XAH_REVERSE: return "reverse"; case XAH_UNDERSCORE: return "underscore"; case XAH_INTENSIFY: return "intensify"; default: return unknown(setting); } } const char * see_color(unsigned char setting) { static const char *color_name[] = { "neutralBlack", "blue", "red", "pink", "green", "turquoise", "yellow", "neutralWhite", "black", "deepBlue", "orange", "purple", "paleGreen", "paleTurquoise", "grey", "white" }; if (setting == XAC_DEFAULT) return "default"; else if (setting < 0xf0) return unknown(setting); else return color_name[setting - 0xf0]; } static const char * see_transparency(unsigned char setting) { switch (setting) { case XAT_DEFAULT: return "default"; case XAT_OR: return "or"; case XAT_XOR: return "xor"; case XAT_OPAQUE: return "opaque"; default: return unknown(setting); } } static const char * see_validation(unsigned char setting) { static char buf[64]; const char *paren = "("; (void) strcpy(buf, ""); if (setting & XAV_FILL) { (void) strcat(buf, paren); (void) strcat(buf, "fill"); paren = ","; } if (setting & XAV_ENTRY) { (void) strcat(buf, paren); (void) strcat(buf, "entry"); paren = ","; } if (setting & XAV_TRIGGER) { (void) strcat(buf, paren); (void) strcat(buf, "trigger"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(none)"); return buf; } static const char * see_outline(unsigned char setting) { static char buf[64]; const char *paren = "("; (void) strcpy(buf, ""); if (setting & XAO_UNDERLINE) { (void) strcat(buf, paren); (void) strcat(buf, "underline"); paren = ","; } if (setting & XAO_RIGHT) { (void) strcat(buf, paren); (void) strcat(buf, "right"); paren = ","; } if (setting & XAO_OVERLINE) { (void) strcat(buf, paren); (void) strcat(buf, "overline"); paren = ","; } if (setting & XAO_LEFT) { (void) strcat(buf, paren); (void) strcat(buf, "left"); paren = ","; } if (strcmp(paren, "(")) (void) strcat(buf, ")"); else (void) strcpy(buf, "(none)"); return buf; } static const char * see_input_control(unsigned char setting) { switch (setting) { case XAI_DISABLED: return "disabled"; case XAI_ENABLED: return "enabled"; default: return unknown(setting); } } const char * see_efa(unsigned char efa, unsigned char value) { static char buf[64]; switch (efa) { case XA_ALL: (void) sprintf(buf, " all(%x)", value); break; case XA_3270: (void) sprintf(buf, " 3270%s", see_attr(value)); break; case XA_VALIDATION: (void) sprintf(buf, " validation%s", see_validation(value)); break; case XA_OUTLINING: (void) sprintf(buf, " outlining(%s)", see_outline(value)); break; case XA_HIGHLIGHTING: (void) sprintf(buf, " highlighting(%s)", see_highlight(value)); break; case XA_FOREGROUND: (void) sprintf(buf, " foreground(%s)", see_color(value)); break; case XA_CHARSET: (void) sprintf(buf, " charset(%x)", value); break; case XA_BACKGROUND: (void) sprintf(buf, " background(%s)", see_color(value)); break; case XA_TRANSPARENCY: (void) sprintf(buf, " transparency(%s)", see_transparency(value)); break; case XA_INPUT_CONTROL: (void) sprintf(buf, " input-control(%s)", see_input_control(value)); break; default: (void) sprintf(buf, " %s[0x%x]", unknown(efa), value); break; } return buf; } const char * see_efa_only(unsigned char efa) { switch (efa) { case XA_ALL: return "all"; case XA_3270: return "3270"; case XA_VALIDATION: return "validation"; case XA_OUTLINING: return "outlining"; case XA_HIGHLIGHTING: return "highlighting"; case XA_FOREGROUND: return "foreground"; case XA_CHARSET: return "charset"; case XA_BACKGROUND: return "background"; case XA_TRANSPARENCY: return "transparency"; default: return unknown(efa); } } const char * see_qcode(unsigned char id) { static char buf[64]; switch (id) { case QR_CHARSETS: return "CharacterSets"; case QR_IMP_PART: return "ImplicitPartition"; case QR_SUMMARY: return "Summary"; case QR_USABLE_AREA: return "UsableArea"; case QR_COLOR: return "Color"; case QR_HIGHLIGHTING: return "Highlighting"; case QR_REPLY_MODES: return "ReplyModes"; case QR_DBCS_ASIA: return "DbcsAsia"; case QR_ALPHA_PART: return "AlphanumericPartitions"; case QR_DDM: return "DistributedDataManagement"; case QR_RPQNAMES: return "RPQNames"; default: (void) sprintf(buf, "unknown[0x%x]", id); return buf; } } #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/xl.h0000644000175000017500000000325211254565704014732 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xl.h * DBCS translation table structure. */ typedef struct { unsigned n; unsigned short *data; } xl_t; #define XL_SIZE(e) ((sizeof(e)/sizeof(e[0]))/3) ibm-3270-3.3.10ga4/ws3270/togglesc.h0000644000175000017500000000365611254565704016126 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * toggles.c * Global declarations for toggles.c. */ extern void do_toggle(int); extern void initialize_toggles(void); extern void shutdown_toggles(void); extern void Toggle_action(Widget, XEvent *, String *, Cardinal *); ibm-3270-3.3.10ga4/ws3270/X11/0000755000175000017500000000000011261530022014464 5ustar bastianbastianibm-3270-3.3.10ga4/ws3270/X11/keysym.h0000644000175000017500000002130211254565672016201 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* X11 keysyms used by c3270, s3270 and tcl3270 */ #if !defined(_x11_keysym_h) /*[*/ #define _x11_keysym_h 1 /* Latin-1 Keysyms */ #define XK_space 0x020 #define XK_exclam 0x021 #define XK_quotedbl 0x022 #define XK_numbersign 0x023 #define XK_dollar 0x024 #define XK_percent 0x025 #define XK_ampersand 0x026 #define XK_apostrophe 0x027 #define XK_quoteright 0x027 #define XK_parenleft 0x028 #define XK_parenright 0x029 #define XK_asterisk 0x02a #define XK_plus 0x02b #define XK_comma 0x02c #define XK_minus 0x02d #define XK_period 0x02e #define XK_slash 0x02f #define XK_0 0x030 #define XK_1 0x031 #define XK_2 0x032 #define XK_3 0x033 #define XK_4 0x034 #define XK_5 0x035 #define XK_6 0x036 #define XK_7 0x037 #define XK_8 0x038 #define XK_9 0x039 #define XK_colon 0x03a #define XK_semicolon 0x03b #define XK_less 0x03c #define XK_equal 0x03d #define XK_greater 0x03e #define XK_question 0x03f #define XK_at 0x040 #define XK_A 0x041 #define XK_B 0x042 #define XK_C 0x043 #define XK_D 0x044 #define XK_E 0x045 #define XK_F 0x046 #define XK_G 0x047 #define XK_H 0x048 #define XK_I 0x049 #define XK_J 0x04a #define XK_K 0x04b #define XK_L 0x04c #define XK_M 0x04d #define XK_N 0x04e #define XK_O 0x04f #define XK_P 0x050 #define XK_Q 0x051 #define XK_R 0x052 #define XK_S 0x053 #define XK_T 0x054 #define XK_U 0x055 #define XK_V 0x056 #define XK_W 0x057 #define XK_X 0x058 #define XK_Y 0x059 #define XK_Z 0x05a #define XK_bracketleft 0x05b #define XK_backslash 0x05c #define XK_bracketright 0x05d #define XK_asciicircum 0x05e #define XK_underscore 0x05f #define XK_grave 0x060 #define XK_quoteleft 0x060 #define XK_a 0x061 #define XK_b 0x062 #define XK_c 0x063 #define XK_d 0x064 #define XK_e 0x065 #define XK_f 0x066 #define XK_g 0x067 #define XK_h 0x068 #define XK_i 0x069 #define XK_j 0x06a #define XK_k 0x06b #define XK_l 0x06c #define XK_m 0x06d #define XK_n 0x06e #define XK_o 0x06f #define XK_p 0x070 #define XK_q 0x071 #define XK_r 0x072 #define XK_s 0x073 #define XK_t 0x074 #define XK_u 0x075 #define XK_v 0x076 #define XK_w 0x077 #define XK_x 0x078 #define XK_y 0x079 #define XK_z 0x07a #define XK_braceleft 0x07b #define XK_bar 0x07c #define XK_braceright 0x07d #define XK_asciitilde 0x07e #define XK_nobreakspace 0x0a0 #define XK_exclamdown 0x0a1 #define XK_cent 0x0a2 #define XK_sterling 0x0a3 #define XK_currency 0x0a4 #define XK_yen 0x0a5 #define XK_brokenbar 0x0a6 #define XK_section 0x0a7 #define XK_diaeresis 0x0a8 #define XK_copyright 0x0a9 #define XK_ordfeminine 0x0aa #define XK_guillemotleft 0x0ab #define XK_notsign 0x0ac #define XK_hyphen 0x0ad #define XK_registered 0x0ae #define XK_macron 0x0af #define XK_degree 0x0b0 #define XK_plusminus 0x0b1 #define XK_twosuperior 0x0b2 #define XK_threesuperior 0x0b3 #define XK_acute 0x0b4 #define XK_mu 0x0b5 #define XK_paragraph 0x0b6 #define XK_periodcentered 0x0b7 #define XK_cedilla 0x0b8 #define XK_onesuperior 0x0b9 #define XK_masculine 0x0ba #define XK_guillemotright 0x0bb #define XK_onequarter 0x0bc #define XK_onehalf 0x0bd #define XK_threequarters 0x0be #define XK_questiondown 0x0bf #define XK_Agrave 0x0c0 #define XK_Aacute 0x0c1 #define XK_Acircumflex 0x0c2 #define XK_Atilde 0x0c3 #define XK_Adiaeresis 0x0c4 #define XK_Aring 0x0c5 #define XK_AE 0x0c6 #define XK_Ccedilla 0x0c7 #define XK_Egrave 0x0c8 #define XK_Eacute 0x0c9 #define XK_Ecircumflex 0x0ca #define XK_Ediaeresis 0x0cb #define XK_Igrave 0x0cc #define XK_Iacute 0x0cd #define XK_Icircumflex 0x0ce #define XK_Idiaeresis 0x0cf #define XK_ETH 0x0d0 #define XK_Eth 0x0d0 #define XK_Ntilde 0x0d1 #define XK_Ograve 0x0d2 #define XK_Oacute 0x0d3 #define XK_Ocircumflex 0x0d4 #define XK_Otilde 0x0d5 #define XK_Odiaeresis 0x0d6 #define XK_multiply 0x0d7 #define XK_Ooblique 0x0d8 #define XK_Ugrave 0x0d9 #define XK_Uacute 0x0da #define XK_Ucircumflex 0x0db #define XK_Udiaeresis 0x0dc #define XK_Yacute 0x0dd #define XK_THORN 0x0de #define XK_Thorn 0x0de #define XK_ssharp 0x0df #define XK_agrave 0x0e0 #define XK_aacute 0x0e1 #define XK_acircumflex 0x0e2 #define XK_atilde 0x0e3 #define XK_adiaeresis 0x0e4 #define XK_aring 0x0e5 #define XK_ae 0x0e6 #define XK_ccedilla 0x0e7 #define XK_egrave 0x0e8 #define XK_eacute 0x0e9 #define XK_ecircumflex 0x0ea #define XK_ediaeresis 0x0eb #define XK_igrave 0x0ec #define XK_iacute 0x0ed #define XK_icircumflex 0x0ee #define XK_idiaeresis 0x0ef #define XK_eth 0x0f0 #define XK_ntilde 0x0f1 #define XK_ograve 0x0f2 #define XK_oacute 0x0f3 #define XK_ocircumflex 0x0f4 #define XK_otilde 0x0f5 #define XK_odiaeresis 0x0f6 #define XK_division 0x0f7 #define XK_oslash 0x0f8 #define XK_ugrave 0x0f9 #define XK_uacute 0x0fa #define XK_ucircumflex 0x0fb #define XK_udiaeresis 0x0fc #define XK_yacute 0x0fd #define XK_thorn 0x0fe #define XK_ydiaeresis 0x0ff #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/toggles.c0000644000175000017500000001326411254565704015752 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * toggles.c * This module handles toggles. */ #include "globals.h" #include "appres.h" #include "ansic.h" #include "actionsc.h" #include "ctlrc.h" #include "menubarc.h" #include "popupsc.h" #include "screenc.h" #include "trace_dsc.h" #include "togglesc.h" /* * Generic toggle stuff */ static void do_toggle_reason(int ix, enum toggle_type reason) { struct toggle *t = &appres.toggle[ix]; /* * Change the value, call the internal update routine, and reset the * menu label(s). */ toggle_toggle(t); if (t->upcall != NULL) t->upcall(t, reason); #if defined(X3270_MENUS) /*[*/ menubar_retoggle(t); #endif /*]*/ } void do_toggle(int ix) { do_toggle_reason(ix, TT_INTERACTIVE); } /* * Called from system initialization code to handle initial toggle settings. */ void initialize_toggles(void) { #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ appres.toggle[MONOCASE].upcall = toggle_monocase; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ appres.toggle[ALT_CURSOR].upcall = toggle_altCursor; appres.toggle[CURSOR_BLINK].upcall = toggle_cursorBlink; appres.toggle[SHOW_TIMING].upcall = toggle_showTiming; appres.toggle[CURSOR_POS].upcall = toggle_cursorPos; appres.toggle[MARGINED_PASTE].upcall = toggle_nop; appres.toggle[RECTANGLE_SELECT].upcall = toggle_nop; appres.toggle[SCROLL_BAR].upcall = toggle_scrollBar; appres.toggle[CROSSHAIR].upcall = toggle_crosshair; appres.toggle[VISIBLE_CONTROL].upcall = toggle_visible_control; #endif /*]*/ #if defined(X3270_TRACE) /*[*/ appres.toggle[DS_TRACE].upcall = toggle_dsTrace; appres.toggle[SCREEN_TRACE].upcall = toggle_screenTrace; appres.toggle[EVENT_TRACE].upcall = toggle_eventTrace; #endif /*]*/ #if defined(X3270_ANSI) /*[*/ appres.toggle[LINE_WRAP].upcall = toggle_lineWrap; #endif /*]*/ appres.toggle[BLANK_FILL].upcall = toggle_nop; #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ appres.toggle[AID_WAIT].upcall = toggle_nop; #endif /*]*/ #if defined(C3270) /*[*/ appres.toggle[UNDERSCORE].upcall = toggle_underscore; #endif /*]*/ #if defined(X3270_TRACE) /*[*/ if (toggled(DS_TRACE)) appres.toggle[DS_TRACE].upcall(&appres.toggle[DS_TRACE], TT_INITIAL); if (toggled(EVENT_TRACE)) appres.toggle[EVENT_TRACE].upcall(&appres.toggle[EVENT_TRACE], TT_INITIAL); if (toggled(SCREEN_TRACE)) appres.toggle[SCREEN_TRACE].upcall(&appres.toggle[SCREEN_TRACE], TT_INITIAL); #endif /*]*/ } /* * Called from system exit code to handle toggles. */ void shutdown_toggles(void) { #if defined(X3270_TRACE) /*[*/ /* Clean up the data stream trace monitor window. */ if (toggled(DS_TRACE)) { appres.toggle[DS_TRACE].value = False; toggle_dsTrace(&appres.toggle[DS_TRACE], TT_FINAL); } if (toggled(EVENT_TRACE)) { appres.toggle[EVENT_TRACE].value = False; toggle_dsTrace(&appres.toggle[EVENT_TRACE], TT_FINAL); } /* Clean up the screen trace file. */ if (toggled(SCREEN_TRACE)) { appres.toggle[SCREEN_TRACE].value = False; toggle_screenTrace(&appres.toggle[SCREEN_TRACE], TT_FINAL); } #endif /*]*/ } void Toggle_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int j; int ix; action_debug(Toggle_action, event, params, num_params); if (check_usage(Toggle_action, *num_params, 1, 2) < 0) return; for (j = 0; toggle_names[j].name != NULL; j++) { if (!strcasecmp(params[0], toggle_names[j].name)) { ix = toggle_names[j].index; break; } } if (toggle_names[j].name == NULL) { popup_an_error("%s: Unknown toggle name '%s'", action_name(Toggle_action), params[0]); return; } if (*num_params == 1) { do_toggle_reason(ix, TT_ACTION); } else if (!strcasecmp(params[1], "set")) { if (!toggled(ix)) { do_toggle_reason(ix, TT_ACTION); } } else if (!strcasecmp(params[1], "clear")) { if (toggled(ix)) { do_toggle_reason(ix, TT_ACTION); } } else { popup_an_error("%s: Unknown keyword '%s' (must be 'set' or " "'clear')", action_name(Toggle_action), params[1]); } } ibm-3270-3.3.10ga4/ws3270/sf.c0000644000175000017500000005524711254565704014725 0ustar bastianbastian/* * Copyright (c) 1994-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell nor their * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * sf.c * This module handles 3270 structured fields. * */ #include "globals.h" #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include "3270ds.h" #include "appres.h" #include "screen.h" #include "ctlr.h" #include "resources.h" #include "charsetc.h" #include "ctlrc.h" #if defined(X3270_FT) /*[*/ #include "ft_dftc.h" #endif /*]*/ #include "kybdc.h" #include "screenc.h" #include "seec.h" #include "sfc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "utilc.h" /* #define X3270_COMPAT 1 make x3270 compatible with all of the other emulators */ #define SW_3279_2 0x09 #define SH_3279_2 0x0c #define Xr_3279_2 0x000a02e5 #define Yr_3279_2 0x0002006f /* Externals: ctlr.c */ extern Boolean screen_alt; extern unsigned char reply_mode; extern int crm_nattr; extern unsigned char crm_attr[]; /* Statics */ static Boolean qr_in_progress = False; static enum pds sf_read_part(unsigned char buf[], unsigned buflen); static enum pds sf_erase_reset(unsigned char buf[], int buflen); static enum pds sf_set_reply_mode(unsigned char buf[], int buflen); static enum pds sf_create_partition(unsigned char buf[], int buflen); static enum pds sf_outbound_ds(unsigned char buf[], int buflen); static void query_reply_start(void); static void do_query_reply(unsigned char code); static void query_reply_end(void); typedef void qr_single_fn_t(void); typedef Boolean qr_multi_fn_t(unsigned *subindex, Boolean *more); static qr_single_fn_t do_qr_summary, do_qr_usable_area, do_qr_alpha_part, do_qr_charsets, do_qr_color, do_qr_highlighting, do_qr_reply_modes, do_qr_imp_part, do_qr_null; extern qr_single_fn_t do_qr_rpqnames; #if defined(X3270_DBCS) /*[*/ static qr_single_fn_t do_qr_dbcs_asia; #endif /*]*/ #if defined(X3270_FT) /*[*/ static qr_single_fn_t do_qr_ddm; #endif /*]*/ static struct reply { unsigned char code; qr_single_fn_t *single_fn; qr_multi_fn_t *multi_fn; } replies[] = { { QR_SUMMARY, do_qr_summary, NULL }, /* 0x80 */ { QR_USABLE_AREA, do_qr_usable_area, NULL }, /* 0x81 */ { QR_ALPHA_PART, do_qr_alpha_part, NULL }, /* 0x84 */ { QR_CHARSETS, do_qr_charsets, NULL }, /* 0x85 */ { QR_COLOR, do_qr_color, NULL }, /* 0x86 */ { QR_HIGHLIGHTING, do_qr_highlighting, NULL }, /* 0x87 */ { QR_REPLY_MODES, do_qr_reply_modes, NULL }, /* 0x88 */ #if defined(X3270_DBCS) /*[*/ { QR_DBCS_ASIA, do_qr_dbcs_asia, NULL }, /* 0x91 */ #endif /*]*/ #if defined(X3270_FT) /*[*/ { QR_DDM, do_qr_ddm, NULL }, /* 0x95 */ #endif /*]*/ { QR_RPQNAMES, do_qr_rpqnames, NULL }, /* 0xa1 */ { QR_IMP_PART, do_qr_imp_part, NULL }, /* 0xa6 */ /* QR_NULL must be last in the table */ { QR_NULL, do_qr_null, NULL }, /* 0xff */ }; /* * NSR_ALL is the number of query replies supported, including NULL. * NSR is the number of query replies supported, except for NULL. */ #define NSR_ALL (sizeof(replies)/sizeof(struct reply)) #define NSR (NSR_ALL - 1) /* * Process a 3270 Write Structured Field command */ enum pds write_structured_field(unsigned char buf[], int buflen) { unsigned short fieldlen; unsigned char *cp = buf; Boolean first = True; enum pds rv = PDS_OKAY_NO_OUTPUT; enum pds rv_this = PDS_OKAY_NO_OUTPUT; Boolean bad_cmd = False; /* Skip the WSF command itself. */ cp++; buflen--; /* Interpret fields. */ while (buflen > 0) { if (first) trace_ds(" "); else trace_ds("< WriteStructuredField "); first = False; /* Pick out the field length. */ if (buflen < 2) { trace_ds("error: single byte at end of message\n"); return rv ? rv : PDS_BAD_CMD; } fieldlen = (cp[0] << 8) + cp[1]; if (fieldlen == 0) fieldlen = buflen; if (fieldlen < 3) { trace_ds("error: field length %d too small\n", fieldlen); return rv ? rv : PDS_BAD_CMD; } if ((int)fieldlen > buflen) { trace_ds("error: field length %d exceeds remaining " "message length %d\n", fieldlen, buflen); return rv ? rv : PDS_BAD_CMD; } /* Dispatch on the ID. */ switch (cp[2]) { case SF_READ_PART: trace_ds("ReadPartition"); rv_this = sf_read_part(cp, (int)fieldlen); break; case SF_ERASE_RESET: trace_ds("EraseReset"); rv_this = sf_erase_reset(cp, (int)fieldlen); break; case SF_SET_REPLY_MODE: trace_ds("SetReplyMode"); rv_this = sf_set_reply_mode(cp, (int)fieldlen); break; case SF_CREATE_PART: trace_ds("CreatePartition"); rv_this = sf_create_partition(cp, (int)fieldlen); break; case SF_OUTBOUND_DS: trace_ds("OutboundDS"); rv_this = sf_outbound_ds(cp, (int)fieldlen); break; #if defined(X3270_FT) /*[*/ case SF_TRANSFER_DATA: /* File transfer data */ trace_ds("FileTransferData"); ft_dft_data(cp, (int)fieldlen); break; #endif /*]*/ default: trace_ds("unsupported ID 0x%02x\n", cp[2]); rv_this = PDS_BAD_CMD; break; } /* * Accumulate errors or output flags. * One real ugliness here is that if we have already * generated some output, then we have already positively * acknowledged the request, so if we fail here, we have no * way to return the error indication. */ if (rv_this < 0) bad_cmd = True; else rv |= rv_this; /* Skip to the next field. */ cp += fieldlen; buflen -= fieldlen; } if (first) trace_ds(" (null)\n"); if (bad_cmd && !rv) return PDS_BAD_CMD; else return rv; } static enum pds sf_read_part(unsigned char buf[], unsigned buflen) { unsigned char partition; unsigned i; int any = 0; const char *comma = ""; if (buflen < 5) { trace_ds(" error: field length %d too small\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; trace_ds("(0x%02x)", partition); switch (buf[4]) { case SF_RP_QUERY: trace_ds(" Query"); if (partition != 0xff) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); query_reply_start(); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(replies[i].code); } query_reply_end(); break; case SF_RP_QLIST: trace_ds(" QueryList "); if (partition != 0xff) { trace_ds("error: illegal partition\n"); return PDS_BAD_CMD; } if (buflen < 6) { trace_ds("error: missing request type\n"); return PDS_BAD_CMD; } query_reply_start(); switch (buf[5]) { case SF_RPQ_LIST: trace_ds("List("); if (buflen < 7) { trace_ds(")\n"); do_query_reply(QR_NULL); } else { for (i = 6; i < buflen; i++) { trace_ds("%s%s", comma, see_qcode(buf[i])); comma = ","; } trace_ds(")\n"); for (i = 0; i < NSR; i++) { if (memchr((char *)&buf[6], (char)replies[i].code, buflen-6) #if defined(X3270_DBCS) /*[*/ && (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ ) { do_query_reply(replies[i].code); any++; } } if (!any) { do_query_reply(QR_NULL); } } break; case SF_RPQ_EQUIV: trace_ds("Equivlent+List("); for (i = 6; i < buflen; i++) { trace_ds("%s%s", comma, see_qcode(buf[i])); comma = ","; } trace_ds(")\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(replies[i].code); break; case SF_RPQ_ALL: trace_ds("All\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) #endif /*]*/ do_query_reply(replies[i].code); break; default: trace_ds("unknown request type 0x%02x\n", buf[5]); return PDS_BAD_CMD; } query_reply_end(); break; case SNA_CMD_RMA: trace_ds(" ReadModifiedAll"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); ctlr_read_modified(AID_QREPLY, True); break; case SNA_CMD_RB: trace_ds(" ReadBuffer"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); ctlr_read_buffer(AID_QREPLY); break; case SNA_CMD_RM: trace_ds(" ReadModified"); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } trace_ds("\n"); ctlr_read_modified(AID_QREPLY, False); break; default: trace_ds(" unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_OUTPUT; } static enum pds sf_erase_reset(unsigned char buf[], int buflen) { if (buflen != 4) { trace_ds(" error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } switch (buf[3]) { case SF_ER_DEFAULT: trace_ds(" Default\n"); ctlr_erase(False); break; case SF_ER_ALT: trace_ds(" Alternate\n"); ctlr_erase(True); break; default: trace_ds(" unknown type 0x%02x\n", buf[3]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static enum pds sf_set_reply_mode(unsigned char buf[], int buflen) { unsigned char partition; int i; const char *comma = "("; if (buflen < 5) { trace_ds(" error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; trace_ds("(0x%02x)", partition); if (partition != 0x00) { trace_ds(" error: illegal partition\n"); return PDS_BAD_CMD; } switch (buf[4]) { case SF_SRM_FIELD: trace_ds(" Field\n"); break; case SF_SRM_XFIELD: trace_ds(" ExtendedField\n"); break; case SF_SRM_CHAR: trace_ds(" Character"); break; default: trace_ds(" unknown mode 0x%02x\n", buf[4]); return PDS_BAD_CMD; } reply_mode = buf[4]; if (buf[4] == SF_SRM_CHAR) { crm_nattr = buflen - 5; for (i = 5; i < buflen; i++) { crm_attr[i - 5] = buf[i]; trace_ds("%s%s", comma, see_efa_only(buf[i])); comma = ","; } trace_ds("%s\n", crm_nattr ? ")" : ""); } return PDS_OKAY_NO_OUTPUT; } static enum pds sf_create_partition(unsigned char buf[], int buflen) { unsigned char pid; unsigned char uom; /* unit of measure */ unsigned char am; /* addressing mode */ unsigned char flags; /* flags */ unsigned short h; /* height of presentation space */ unsigned short w; /* width of presentation space */ unsigned short rv; /* viewport origin row */ unsigned short cv; /* viewport origin column */ unsigned short hv; /* viewport height */ unsigned short wv; /* viewport width */ unsigned short rw; /* window origin row */ unsigned short cw; /* window origin column */ unsigned short rs; /* scroll rows */ /* hole */ unsigned short pw; /* character cell point width */ unsigned short ph; /* character cell point height */ #if defined(X3270_TRACE) /*[*/ static const char *bit4[16] = { "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" }; #endif /*]*/ if (buflen > 3) { trace_ds("("); /* Partition. */ pid = buf[3]; trace_ds("pid=0x%02x", pid); if (pid != 0x00) { trace_ds(") error: illegal partition\n"); return PDS_BAD_CMD; } } else pid = 0x00; if (buflen > 4) { uom = (buf[4] & 0xf0) >> 4; trace_ds(",uom=B'%s'", bit4[uom]); if (uom != 0x0 && uom != 0x02) { trace_ds(") error: illegal units\n"); return PDS_BAD_CMD; } am = buf[4] & 0x0f; trace_ds(",am=B'%s'", bit4[am]); if (am > 0x2) { trace_ds(") error: illegal a-mode\n"); return PDS_BAD_CMD; } } else { uom = 0; am = 0; } if (buflen > 5) { flags = buf[5]; trace_ds(",flags=0x%02x", flags); } else flags = 0; if (buflen > 7) { GET16(h, &buf[6]); trace_ds(",h=%d", h); } else h = maxROWS; if (buflen > 9) { GET16(w, &buf[8]); trace_ds(",w=%d", w); } else w = maxCOLS; if (buflen > 11) { GET16(rv, &buf[10]); trace_ds(",rv=%d", rv); } else rv = 0; if (buflen > 13) { GET16(cv, &buf[12]); trace_ds(",cv=%d", cv); } else cv = 0; if (buflen > 15) { GET16(hv, &buf[14]); trace_ds(",hv=%d", hv); } else hv = (h > maxROWS)? maxROWS: h; if (buflen > 17) { GET16(wv, &buf[16]); trace_ds(",wv=%d", wv); } else wv = (w > maxCOLS)? maxCOLS: w; if (buflen > 19) { GET16(rw, &buf[18]); trace_ds(",rw=%d", rw); } else rw = 0; if (buflen > 21) { GET16(cw, &buf[20]); trace_ds(",cw=%d", cw); } else cw = 0; if (buflen > 23) { GET16(rs, &buf[22]); trace_ds(",rs=%d", rs); } else rs = (h > hv)? 1: 0; if (buflen > 27) { GET16(pw, &buf[26]); trace_ds(",pw=%d", pw); } else pw = *char_width; if (buflen > 29) { GET16(ph, &buf[28]); trace_ds(",ph=%d", ph); } else ph = *char_height; trace_ds(")\n"); cursor_move(0); buffer_addr = 0; return PDS_OKAY_NO_OUTPUT; } static enum pds sf_outbound_ds(unsigned char buf[], int buflen) { enum pds rv; if (buflen < 5) { trace_ds(" error: field length %d too short\n", buflen); return PDS_BAD_CMD; } trace_ds("(0x%02x)", buf[3]); if (buf[3] != 0x00) { trace_ds(" error: illegal partition 0x%0x\n", buf[3]); return PDS_BAD_CMD; } switch (buf[4]) { case SNA_CMD_W: trace_ds(" Write"); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, False)) < 0) return rv; } else trace_ds("\n"); break; case SNA_CMD_EW: trace_ds(" EraseWrite"); ctlr_erase(screen_alt); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, True)) < 0) return rv; } else trace_ds("\n"); break; case SNA_CMD_EWA: trace_ds(" EraseWriteAlternate"); ctlr_erase(screen_alt); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, True)) < 0) return rv; } else trace_ds("\n"); break; case SNA_CMD_EAU: trace_ds(" EraseAllUnprotected\n"); ctlr_erase_all_unprotected(); break; default: trace_ds(" unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; } static void query_reply_start(void) { obptr = obuf; space3270out(1); *obptr++ = AID_SF; qr_in_progress = True; } static void do_query_reply(unsigned char code) { unsigned i; unsigned subindex = 0; Boolean more = False; /* Find the right entry in the reply table. */ for (i = 0; i < NSR_ALL; i++) { if (replies[i].code == code) break; } if (i >= NSR_ALL || (replies[i].single_fn == NULL && replies[i].multi_fn == NULL)) return; if (qr_in_progress) { trace_ds("> StructuredField\n"); qr_in_progress = False; } do { int obptr0 = obptr - obuf; Boolean full = True; space3270out(4); obptr += 2; /* skip length for now */ *obptr++ = SFID_QREPLY; *obptr++ = code; more = False; if (replies[i].single_fn) replies[i].single_fn(); else full = replies[i].multi_fn(&subindex, &more); if (full) { int len; unsigned char *obptr_len; /* Fill in the length. */ obptr_len = obuf + obptr0; len = (obptr - obuf) - obptr0; SET16(obptr_len, len); } else { /* Back over the header. */ obptr -= 4; } } while (more); } static void do_qr_null(void) { trace_ds("> QueryReply(Null)\n"); } static void do_qr_summary(void) { unsigned i; const char *comma = ""; trace_ds("> QueryReply(Summary("); space3270out(NSR); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) { #endif /*]*/ trace_ds("%s%s", comma, see_qcode(replies[i].code)); comma = ","; *obptr++ = replies[i].code; #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ } trace_ds("))\n"); } static void do_qr_usable_area(void) { trace_ds("> QueryReply(UsableArea)\n"); space3270out(19); *obptr++ = 0x01; /* 12/14-bit addressing */ *obptr++ = 0x00; /* no special character features */ SET16(obptr, maxCOLS); /* usable width */ SET16(obptr, maxROWS); /* usable height */ *obptr++ = 0x01; /* units (mm) */ SET32(obptr, Xr_3279_2); /* Xr, canned from 3279-2 */ SET32(obptr, Yr_3279_2); /* Yr, canned from 3279-2 */ /* * If we ever implement graphics, these will * need to change. */ *obptr++ = SW_3279_2; /* AW, canned from 3279-2 */ *obptr++ = SH_3279_2; /* AH, canned from 3279-2 */ SET16(obptr, maxCOLS*maxROWS); /* buffer, questionable */ } static void do_qr_color(void) { int i; int color_max; trace_ds("> QueryReply(Color)\n"); color_max = (appres.color8 || !appres.m3279)? 8: 16; space3270out(4 + 2*15); *obptr++ = 0x00; /* no options */ *obptr++ = color_max; /* report on 8 or 16 colors */ *obptr++ = 0x00; /* default color: */ *obptr++ = 0xf0 + HOST_COLOR_GREEN; /* green */ for (i = 0xf1; i < 0xf1 + color_max - 1; i++) { *obptr++ = i; if (appres.m3279) *obptr++ = i; else *obptr++ = 0x00; } #if defined(X3270_COMPAT) || !defined(X3270_DISPLAY) /*[*/ /* Add background color. */ if (appres.m3279) { space3270out(4); *obptr++ = 4; /* length */ *obptr++ = 0x02; /* background color */ *obptr++ = 0x00; /* attribute */ *obptr++ = 0xf0; /* default color */ } #endif /*]*/ } static void do_qr_highlighting(void) { trace_ds("> QueryReply(Highlighting)\n"); space3270out(11); *obptr++ = 5; /* report on 5 pairs */ *obptr++ = XAH_DEFAULT; /* default: */ *obptr++ = XAH_NORMAL; /* normal */ *obptr++ = XAH_BLINK; /* blink: */ *obptr++ = XAH_BLINK; /* blink */ *obptr++ = XAH_REVERSE; /* reverse: */ *obptr++ = XAH_REVERSE; /* reverse */ *obptr++ = XAH_UNDERSCORE; /* underscore: */ *obptr++ = XAH_UNDERSCORE; /* underscore */ *obptr++ = XAH_INTENSIFY; /* intensify: */ *obptr++ = XAH_INTENSIFY; /* intensify */ } static void do_qr_reply_modes(void) { trace_ds("> QueryReply(ReplyModes)\n"); space3270out(3); *obptr++ = SF_SRM_FIELD; *obptr++ = SF_SRM_XFIELD; *obptr++ = SF_SRM_CHAR; } #if defined(X3270_DBCS) /*[*/ static void do_qr_dbcs_asia(void) { /* XXX: Should we support this, even when not in DBCS mode? */ trace_ds("> QueryReply(DbcsAsia)\n"); space3270out(7); *obptr++ = 0x00; /* flags (none) */ *obptr++ = 0x03; /* field length 3 */ *obptr++ = 0x01; /* SI/SO supported */ *obptr++ = 0x80; /* character set ID 0x80 */ *obptr++ = 0x03; /* field length 3 */ *obptr++ = 0x02; /* input control */ *obptr++ = 0x01; /* creation supported */ } #endif /*]*/ static void do_qr_alpha_part(void) { trace_ds("> QueryReply(AlphanumericPartitions)\n"); space3270out(4); *obptr++ = 0; /* 1 partition */ SET16(obptr, maxROWS*maxCOLS); /* buffer space */ *obptr++ = 0; /* no special features */ } static void do_qr_charsets(void) { trace_ds("> QueryReply(CharacterSets)\n"); space3270out(64); #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x8e; /* flags: GE, CGCSGID, DBCS */ else #endif /*]*/ *obptr++ = 0x82; /* flags: GE, CGCSGID present */ *obptr++ = 0x00; /* more flags */ *obptr++ = SW_3279_2; /* SDW, canned from 3279-2 */ *obptr++ = SH_3279_2; /* SDW, canned from 3279-2 */ *obptr++ = 0x00; /* no load PS */ *obptr++ = 0x00; *obptr++ = 0x00; *obptr++ = 0x00; #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x0b; /* DL (11 bytes) */ else #endif /*]*/ *obptr++ = 0x07; /* DL (7 bytes) */ *obptr++ = 0x00; /* SET 0: */ #if defined(X3270_DBCS) /*[*/ if (dbcs) *obptr++ = 0x00; /* FLAGS: non-load, single- plane, single-byte */ else #endif /*]*/ *obptr++ = 0x10; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ *obptr++ = 0x00; /* LCID 0 */ #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x00; /* SW 0 */ *obptr++ = 0x00; /* SH 0 */ *obptr++ = 0x00; /* SUBSN */ *obptr++ = 0x00; /* SUBSN */ } #endif /*]*/ SET32(obptr, cgcsgid); /* CGCSGID */ /* special 3270 font, includes APL */ *obptr++ = 0x01;/* SET 1: */ if (appres.apl_mode) *obptr++ = 0x00; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ else *obptr++ = 0x10; /* FLAGS: non-loadable, single-plane, single-byte, no compare */ *obptr++ = 0xf1; /* LCID */ #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x00; /* SW 0 */ *obptr++ = 0x00; /* SH 0 */ *obptr++ = 0x00; /* SUBSN */ *obptr++ = 0x00; /* SUBSN */ } #endif /*]*/ *obptr++ = 0x03; /* CGCSGID: 3179-style APL2 */ *obptr++ = 0xc3; *obptr++ = 0x01; *obptr++ = 0x36; #if defined(X3270_DBCS) /*[*/ if (dbcs) { *obptr++ = 0x80; /* SET 0x80: */ *obptr++ = 0x20; /* FLAGS: DBCS */ *obptr++ = 0xf8; /* LCID: 0xf8 */ *obptr++ = SW_3279_2 * 2; /* SW, canned from 3279-2 */ *obptr++ = SH_3279_2; /* SH, canned from 3279-2 */ *obptr++ = 0x41; /* SUBSN */ *obptr++ = 0x7f; /* SUBSN */ SET32(obptr, cgcsgid_dbcs); /* CGCSGID */ } #endif /*]*/ } #if defined(X3270_FT) /*[*/ static void do_qr_ddm(void) { set_dft_buffersize(); trace_ds("> QueryReply(DistributedDataManagement)\n"); space3270out(8); SET16(obptr,0); /* set reserved field to 0 */ SET16(obptr, dft_buffersize); /* set inbound length limit INLIM */ SET16(obptr, dft_buffersize); /* set outbound length limit OUTLIM */ SET16(obptr, 0x0101); /* NSS=01, DDMSS=01 */ } #endif /*]*/ static void do_qr_imp_part(void) { trace_ds("> QueryReply(ImplicitPartition)\n"); space3270out(13); *obptr++ = 0x0; /* reserved */ *obptr++ = 0x0; *obptr++ = 0x0b; /* length of display size */ *obptr++ = 0x01; /* "implicit partition size" */ *obptr++ = 0x00; /* reserved */ SET16(obptr, 80); /* implicit partition width */ SET16(obptr, 24); /* implicit partition height */ SET16(obptr, maxCOLS); /* alternate height */ SET16(obptr, maxROWS); /* alternate width */ } static void query_reply_end(void) { net_output(); kybd_inhibit(True); } ibm-3270-3.3.10ga4/ws3270/macrosc.h0000644000175000017500000001232411254565704015736 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * macrosc.h * Global declarations for macros.c. */ /* macro definition */ struct macro_def { char *name; char **parents; char *action; struct macro_def *next; }; extern struct macro_def *macro_defs; extern Boolean macro_output; extern void abort_script(void); extern void Abort_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void AnsiText_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void AsciiField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Ascii_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) /*[*/ extern void cancel_if_idle_command(void); #else /*][*/ #define cancel_if_idle_command() #endif /*]*/ extern void Bell_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CloseScript_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ContinueScript_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EbcdicField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Ebcdic_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Execute_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void execute_action_option(Widget w, XtPointer client_data, XtPointer call_data); extern void Expect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) && defined(X3270_PLUGIN) /*[*/ extern void plugin_aid(unsigned char aid); #else /*][*/ #define plugin_aid(a) #endif /*]*/ #if defined(X3270_SCRIPT) /*[*/ extern void Plugin_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #endif /*]*/ extern void login_macro(char *s); extern void macros_init(void); extern void Macro_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void macro_command(struct macro_def *m); extern void PauseScript_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void peer_script_init(void); extern void ps_set(char *s, Boolean is_hex); extern void Printer_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void push_command(char *); extern void push_idle(char *); extern void push_keymap_action(char *); extern void push_macro(char *, Boolean); extern void Query_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ReadBuffer_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Script_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #if defined(X3270_SCRIPT) /*[*/ extern void sms_accumulate_time(struct timeval *, struct timeval *); #else /*][*/ #define sms_accumulate_time(a, b) #endif /*]*/ extern Boolean sms_active(void); extern void sms_connect_wait(void); extern void sms_continue(void); extern void sms_error(const char *msg); extern void sms_host_output(void); extern void sms_info(const char *fmt, ...) printflike(1, 2); extern void sms_init(void); extern Boolean sms_in_macro(void); extern Boolean sms_redirect(void); extern void sms_store(unsigned char c); #if defined(X3270_SCRIPT) || defined(TCL3270) || defined(S3270) /*[*/ extern void Snap_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #endif /*]*/ #if defined(TCL3270) /*[*/ extern void Status_action(Widget w, XEvent *event, String *params, Cardinal *num_params); #endif /*]*/ extern void Source_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Wait_action(Widget w, XEvent *event, String *params, Cardinal *num_params); ibm-3270-3.3.10ga4/ws3270/cg.h0000644000175000017500000001735111254565704014705 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * cg.h * * Character encoding for the 3270 character generator font, * using the same suffixes as Latin-1 XK_xxx keysyms. * * Charaters that represent unique EBCDIC or status line codes * are noted with comments. */ #define CG_null 0x00 /* EBCDIC 00 */ #define CG_nobreakspace 0x01 #define CG_ff 0x02 /* EBCDIC 0C */ #define CG_cr 0x03 /* EBCDIC 0D */ #define CG_nl 0x04 /* EBCDIC 15 */ #define CG_em 0x05 /* EBCDIC 19 */ #define CG_eightones 0x06 /* EBCDIC FF */ #define CG_hyphen 0x07 #define CG_greater 0x08 #define CG_less 0x09 #define CG_bracketleft 0x0a #define CG_bracketright 0x0b #define CG_parenleft 0x0c #define CG_parenright 0x0d #define CG_braceleft 0x0e #define CG_braceright 0x0f #define CG_space 0x10 #define CG_equal 0x11 #define CG_apostrophe 0x12 #define CG_quotedbl 0x13 #define CG_slash 0x14 #define CG_backslash 0x15 #define CG_bar 0x16 #define CG_brokenbar 0x17 #define CG_question 0x18 #define CG_exclam 0x19 #define CG_dollar 0x1a #define CG_cent 0x1b #define CG_sterling 0x1c #define CG_yen 0x1d #define CG_paragraph 0x1e #define CG_currency 0x1f #define CG_0 0x20 #define CG_1 0x21 #define CG_2 0x22 #define CG_3 0x23 #define CG_4 0x24 #define CG_5 0x25 #define CG_6 0x26 #define CG_7 0x27 #define CG_8 0x28 #define CG_9 0x29 #define CG_ssharp 0x2a #define CG_section 0x2b #define CG_numbersign 0x2c #define CG_at 0x2d #define CG_percent 0x2e #define CG_underscore 0x2f #define CG_ampersand 0x30 #define CG_minus 0x31 #define CG_period 0x32 #define CG_comma 0x33 #define CG_colon 0x34 #define CG_plus 0x35 #define CG_notsign 0x36 #define CG_macron 0x37 #define CG_degree 0x38 #define CG_periodcentered 0x39 #define CG_asciicircum 0x3a #define CG_asciitilde 0x3b #define CG_diaeresis 0x3c #define CG_grave 0x3d #define CG_acute 0x3e #define CG_cedilla 0x3f #define CG_agrave 0x40 #define CG_egrave 0x41 #define CG_igrave 0x42 #define CG_ograve 0x43 #define CG_ugrave 0x44 #define CG_atilde 0x45 #define CG_otilde 0x46 #define CG_ydiaeresis 0x47 #define CG_Yacute 0x48 #define CG_yacute 0x49 #define CG_eacute 0x4a #define CG_onequarter 0x4b #define CG_onehalf 0x4c #define CG_threequarters 0x4d #define CG_udiaeresis 0x4e #define CG_udiaeresis 0x4e #define CG_ccedilla 0x4f #define CG_adiaeresis 0x50 #define CG_ediaeresis 0x51 #define CG_idiaeresis 0x52 #define CG_odiaeresis 0x53 #define CG_mu 0x54 #define CG_acircumflex 0x55 #define CG_ecircumflex 0x56 #define CG_icircumflex 0x57 #define CG_ocircumflex 0x58 #define CG_ucircumflex 0x59 #define CG_aacute 0x5a #define CG_multiply 0x5b #define CG_iacute 0x5c #define CG_oacute 0x5d #define CG_uacute 0x5e #define CG_ntilde 0x5f #define CG_Agrave 0x60 #define CG_Egrave 0x61 #define CG_Igrave 0x62 #define CG_Ograve 0x63 #define CG_Ugrave 0x64 #define CG_Atilde 0x65 #define CG_Otilde 0x66 #define CG_onesuperior 0x67 #define CG_twosuperior 0x68 #define CG_threesuperior 0x69 #define CG_ordfeminine 0x6a #define CG_masculine 0x6b #define CG_guillemotleft 0x6c #define CG_guillemotright 0x6d #define CG_exclamdown 0x6e #define CG_questiondown 0x6f #define CG_Adiaeresis 0x70 #define CG_Ediaeresis 0x71 #define CG_Idiaeresis 0x72 #define CG_Odiaeresis 0x73 #define CG_Udiaeresis 0x74 #define CG_Acircumflex 0x75 #define CG_Ecircumflex 0x76 #define CG_Icircumflex 0x77 #define CG_Ocircumflex 0x78 #define CG_Ucircumflex 0x79 #define CG_Aacute 0x7a #define CG_Eacute 0x7b #define CG_Iacute 0x7c #define CG_Oacute 0x7d #define CG_Uacute 0x7e #define CG_Ntilde 0x7f #define CG_a 0x80 #define CG_b 0x81 #define CG_c 0x82 #define CG_d 0x83 #define CG_e 0x84 #define CG_f 0x85 #define CG_g 0x86 #define CG_h 0x87 #define CG_i 0x88 #define CG_j 0x89 #define CG_k 0x8a #define CG_l 0x8b #define CG_m 0x8c #define CG_n 0x8d #define CG_o 0x8e #define CG_p 0x8f #define CG_q 0x90 #define CG_r 0x91 #define CG_s 0x92 #define CG_t 0x93 #define CG_u 0x94 #define CG_v 0x95 #define CG_w 0x96 #define CG_x 0x97 #define CG_y 0x98 #define CG_z 0x99 #define CG_ae 0x9a #define CG_oslash 0x9b #define CG_aring 0x9c #define CG_division 0x9d #define CG_fm 0x9e /* EBCDIC 1E */ #define CG_dup 0x9f /* EBCDIC 1C */ #define CG_A 0xa0 #define CG_B 0xa1 #define CG_C 0xa2 #define CG_D 0xa3 #define CG_E 0xa4 #define CG_F 0xa5 #define CG_G 0xa6 #define CG_H 0xa7 #define CG_I 0xa8 #define CG_J 0xa9 #define CG_K 0xaa #define CG_L 0xab #define CG_M 0xac #define CG_N 0xad #define CG_O 0xae #define CG_P 0xaf #define CG_Q 0xb0 #define CG_R 0xb1 #define CG_S 0xb2 #define CG_T 0xb3 #define CG_U 0xb4 #define CG_V 0xb5 #define CG_W 0xb6 #define CG_X 0xb7 #define CG_Y 0xb8 #define CG_Z 0xb9 #define CG_AE 0xba #define CG_Ooblique 0xbb #define CG_Aring 0xbc #define CG_Ccedilla 0xbd #define CG_semicolon 0xbe #define CG_asterisk 0xbf /* codes 0xc0 through 0xcf are for field attributes */ #define CG_copyright 0xd0 #define CG_registered 0xd1 #define CG_boxA 0xd2 /* status boxed A */ #define CG_insert 0xd3 /* status insert mode indicator */ #define CG_boxB 0xd4 /* status boxed B */ #define CG_box6 0xd5 /* status boxed 6 */ #define CG_plusminus 0xd6 #define CG_ETH 0xd7 #define CG_rightarrow 0xd8 #define CG_THORN 0xd9 #define CG_upshift 0xda /* status upshift indicator */ #define CG_human 0xdb /* status illegal position indicator */ #define CG_underB 0xdc /* status underlined B */ #define CG_downshift 0xdd /* status downshift indicator */ #define CG_boxquestion 0xde /* status boxed question mark */ #define CG_boxsolid 0xdf /* status solid block */ /* codes 0xe0 through 0xef are for field attributes */ #define CG_badcommhi 0xf0 /* status bad communication indicator */ #define CG_commhi 0xf1 /* status communication indicator */ #define CG_commjag 0xf2 /* status communication indicator */ #define CG_commlo 0xf3 /* status communication indicator */ #define CG_clockleft 0xf4 /* status wait symbol */ #define CG_clockright 0xf5 /* status wait symbol */ #define CG_lock 0xf6 /* status keyboard lock X symbol */ #define CG_eth 0xf7 #define CG_leftarrow 0xf8 #define CG_thorn 0xf9 #define CG_keyleft 0xfa /* status key lock indicator */ #define CG_keyright 0xfb /* status key lock indicator */ #define CG_box4 0xfc /* status boxed 4 */ #define CG_underA 0xfd /* status underlined A */ #define CG_magcard 0xfe /* status magnetic card indicator */ #define CG_boxhuman 0xff /* status boxed position indicator */ ibm-3270-3.3.10ga4/ws3270/kybd.c0000644000175000017500000030143611256300017015222 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * kybd.c * This module handles the keyboard for the 3270 emulator. */ #include "globals.h" #if defined(X3270_DISPLAY) /*[*/ #include #endif #define XK_3270 #if defined(X3270_APL) /*[*/ #define XK_APL #endif /*]*/ #include #include #include "3270ds.h" #include "appres.h" #include "ctlr.h" #if defined(X3270_DISPLAY) /*[*/ #include "keysym2ucs.h" #endif /*]*/ #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "aplc.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "hostc.h" #include "idlec.h" #include "keymapc.h" #include "keypadc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "printc.h" #include "screenc.h" #if defined(X3270_DISPLAY) /*[*/ #include "selectc.h" #endif /*]*/ #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utf8c.h" #include "utilc.h" #if defined(_WIN32) /*[*/ #include #endif /*]*/ /*#define KYBDLOCK_TRACE 1*/ /* Statics */ static enum { NONE, COMPOSE, FIRST } composing = NONE; static unsigned char pf_xlate[] = { AID_PF1, AID_PF2, AID_PF3, AID_PF4, AID_PF5, AID_PF6, AID_PF7, AID_PF8, AID_PF9, AID_PF10, AID_PF11, AID_PF12, AID_PF13, AID_PF14, AID_PF15, AID_PF16, AID_PF17, AID_PF18, AID_PF19, AID_PF20, AID_PF21, AID_PF22, AID_PF23, AID_PF24 }; static unsigned char pa_xlate[] = { AID_PA1, AID_PA2, AID_PA3 }; #define PF_SZ (sizeof(pf_xlate)/sizeof(pf_xlate[0])) #define PA_SZ (sizeof(pa_xlate)/sizeof(pa_xlate[0])) static unsigned long unlock_id; static time_t unlock_delay_time; Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped); static Boolean flush_ta(void); static void key_AID(unsigned char aid_code); static void kybdlock_set(unsigned int bits, const char *cause); static KeySym MyStringToKeysym(char *s, enum keytype *keytypep, ucs4_t *ucs4); #if defined(X3270_DBCS) /*[*/ Boolean key_WCharacter(unsigned char code[], Boolean *skipped); #endif /*]*/ static Boolean insert = False; /* insert mode */ static Boolean reverse = False; /* reverse-input mode */ /* Globals */ unsigned int kybdlock = KL_NOT_CONNECTED; unsigned char aid = AID_NO; /* current attention ID */ /* Composite key mappings. */ struct akeysym { KeySym keysym; enum keytype keytype; }; static struct akeysym cc_first; static struct composite { struct akeysym k1, k2; struct akeysym translation; } *composites = NULL; static int n_composites = 0; #define ak_eq(k1, k2) (((k1).keysym == (k2).keysym) && \ ((k1).keytype == (k2).keytype)) static struct ta { struct ta *next; XtActionProc fn; char *parm1; char *parm2; } *ta_head = (struct ta *) NULL, *ta_tail = (struct ta *) NULL; static char dxl[] = "0123456789abcdef"; #define FROM_HEX(c) (strchr(dxl, tolower(c)) - dxl) extern Widget *screen; #define KYBDLOCK_IS_OERR (kybdlock && !(kybdlock & ~KL_OERR_MASK)) /* * Put an action on the typeahead queue. */ static void enq_ta(XtActionProc fn, char *parm1, char *parm2) { struct ta *ta; /* If no connection, forget it. */ if (!CONNECTED) { trace_event(" dropped (not connected)\n"); return; } /* If operator error, complain and drop it. */ if (kybdlock & KL_OERR_MASK) { ring_bell(); trace_event(" dropped (operator error)\n"); return; } /* If scroll lock, complain and drop it. */ if (kybdlock & KL_SCROLLED) { ring_bell(); trace_event(" dropped (scrolled)\n"); return; } /* If typeahead disabled, complain and drop it. */ if (!appres.typeahead) { trace_event(" dropped (no typeahead)\n"); return; } ta = (struct ta *) Malloc(sizeof(*ta)); ta->next = (struct ta *) NULL; ta->fn = fn; ta->parm1 = ta->parm2 = CN; if (parm1) { ta->parm1 = NewString(parm1); if (parm2) ta->parm2 = NewString(parm2); } if (ta_head) ta_tail->next = ta; else { ta_head = ta; status_typeahead(True); } ta_tail = ta; trace_event(" action queued (kybdlock 0x%x)\n", kybdlock); } /* * Execute an action from the typeahead queue. */ Boolean run_ta(void) { struct ta *ta; if (kybdlock || (ta = ta_head) == (struct ta *)NULL) return False; if ((ta_head = ta->next) == (struct ta *)NULL) { ta_tail = (struct ta *)NULL; status_typeahead(False); } action_internal(ta->fn, IA_TYPEAHEAD, ta->parm1, ta->parm2); Free(ta->parm1); Free(ta->parm2); Free(ta); return True; } /* * Flush the typeahead queue. * Returns whether or not anything was flushed. */ static Boolean flush_ta(void) { struct ta *ta, *next; Boolean any = False; for (ta = ta_head; ta != (struct ta *) NULL; ta = next) { Free(ta->parm1); Free(ta->parm2); next = ta->next; Free(ta); any = True; } ta_head = ta_tail = (struct ta *) NULL; status_typeahead(False); return any; } /* Decode keyboard lock bits. */ static char * kybdlock_decode(char *how, unsigned int bits) { static char buf[1024]; char *s = buf; char *space = ""; if (bits == (unsigned int)-1) return "all"; if (bits & KL_OERR_MASK) { s += sprintf(s, "%sOERR(", how); switch(bits & KL_OERR_MASK) { case KL_OERR_PROTECTED: s += sprintf(s, "PROTECTED"); break; case KL_OERR_NUMERIC: s += sprintf(s, "NUMERIC"); break; case KL_OERR_OVERFLOW: s += sprintf(s, "OVERFLOW"); break; case KL_OERR_DBCS: s += sprintf(s, "DBCS"); break; default: s += sprintf(s, "?%d", bits & KL_OERR_MASK); break; } s += sprintf(s, ")"); space = " "; } if (bits & KL_NOT_CONNECTED) { s += sprintf(s, "%s%sNOT_CONNECTED", space, how); space = " "; } if (bits & KL_AWAITING_FIRST) { s += sprintf(s, "%s%sAWAITING_FIRST", space, how); space = " "; } if (bits & KL_OIA_TWAIT) { s += sprintf(s, "%s%sOIA_TWAIT", space, how); space = " "; } if (bits & KL_OIA_LOCKED) { s += sprintf(s, "%s%sOIA_LOCKED", space, how); space = " "; } if (bits & KL_DEFERRED_UNLOCK) { s += sprintf(s, "%s%sDEFERRED_UNLOCK", space, how); space = " "; } if (bits & KL_ENTER_INHIBIT) { s += sprintf(s, "%s%sENTER_INHIBIT", space, how); space = " "; } if (bits & KL_SCROLLED) { s += sprintf(s, "%s%sSCROLLED", space, how); space = " "; } if (bits & KL_OIA_MINUS) { s += sprintf(s, "%s%sOIA_MINUS", space, how); space = " "; } return buf; } /* Set bits in the keyboard lock. */ static void kybdlock_set(unsigned int bits, const char *cause _is_unused) { unsigned int n; trace_event("Keyboard lock(%s) %s\n", cause, kybdlock_decode("+", bits)); n = kybdlock | bits; if (n != kybdlock) { #if defined(KYBDLOCK_TRACE) /*[*/ trace_event(" %s: kybdlock |= 0x%04x, 0x%04x -> 0x%04x\n", cause, bits, kybdlock, n); #endif /*]*/ if ((kybdlock ^ bits) & KL_DEFERRED_UNLOCK) { /* Turned on deferred unlock. */ unlock_delay_time = time(NULL); } kybdlock = n; status_kybdlock(); } } /* Clear bits in the keyboard lock. */ void kybdlock_clr(unsigned int bits, const char *cause _is_unused) { unsigned int n; if (kybdlock & bits) trace_event("Keyboard unlock(%s) %s\n", cause, kybdlock_decode("-", kybdlock & bits)); n = kybdlock & ~bits; if (n != kybdlock) { #if defined(KYBDLOCK_TRACE) /*[*/ trace_event(" %s: kybdlock &= ~0x%04x, 0x%04x -> 0x%04x\n", cause, bits, kybdlock, n); #endif /*]*/ if ((kybdlock ^ n) & KL_DEFERRED_UNLOCK) { /* Turned off deferred unlock. */ unlock_delay_time = 0; } kybdlock = n; status_kybdlock(); } } /* * Set or clear enter-inhibit mode. */ void kybd_inhibit(Boolean inhibit) { if (inhibit) { kybdlock_set(KL_ENTER_INHIBIT, "kybd_inhibit"); if (kybdlock == KL_ENTER_INHIBIT) status_reset(); } else { kybdlock_clr(KL_ENTER_INHIBIT, "kybd_inhibit"); if (!kybdlock) status_reset(); } } /* * Called when a host connects or disconnects. */ static void kybd_connect(Boolean connected) { if ((kybdlock & KL_DEFERRED_UNLOCK) && unlock_id) { RemoveTimeOut(unlock_id); unlock_id = 0; } kybdlock_clr(-1, "kybd_connect"); if (connected) { /* Wait for any output or a WCC(restore) from the host */ kybdlock_set(KL_AWAITING_FIRST, "kybd_connect"); } else { kybdlock_set(KL_NOT_CONNECTED, "kybd_connect"); (void) flush_ta(); } } /* * Called when we switch between 3270 and ANSI modes. */ static void kybd_in3270(Boolean in3270 _is_unused) { if ((kybdlock & KL_DEFERRED_UNLOCK) && unlock_id) { RemoveTimeOut(unlock_id); unlock_id = 0; } switch ((int)cstate) { case CONNECTED_INITIAL_E: /* * Either we just negotiated TN3270E, or we just processed * and UNBIND from the host. In either case, we are now * awaiting a first unlock from the host, or a transition to * 3270, NVT or SSCP-LU mode. */ kybdlock_set(KL_AWAITING_FIRST, "kybd_in3270"); break; case CONNECTED_ANSI: case CONNECTED_NVT: case CONNECTED_SSCP: /* * We just transitioned to ANSI, TN3270E NVT or TN3270E SSCP-LU * mode. Remove all lock bits. */ kybdlock_clr(-1, "kybd_in3270"); break; default: /* * We just transitioned into or out of 3270 mode. * Remove all lock bits except AWAITING_FIRST. */ kybdlock_clr(~KL_AWAITING_FIRST, "kybd_in3270"); break; } /* There might be a macro pending. */ if (CONNECTED) ps_process(); } /* * Called to initialize the keyboard logic. */ void kybd_init(void) { /* Register interest in connect and disconnect events. */ register_schange(ST_CONNECT, kybd_connect); register_schange(ST_3270_MODE, kybd_in3270); } /* * Toggle insert mode. */ static void insert_mode(Boolean on) { insert = on; status_insert_mode(on); } /* * Toggle reverse mode. */ static void reverse_mode(Boolean on) { #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif /*]*/ { reverse = on; status_reverse_mode(on); } } /* * Lock the keyboard because of an operator error. */ static void operator_error(int error_type) { if (sms_redirect()) popup_an_error("Keyboard locked"); if (appres.oerr_lock || sms_redirect()) { status_oerr(error_type); mcursor_locked(); kybdlock_set((unsigned int)error_type, "operator_error"); (void) flush_ta(); } else { ring_bell(); } } /* * Handle an AID (Attention IDentifier) key. This is the common stuff that * gets executed for all AID keys (PFs, PAs, Clear and etc). */ static void key_AID(unsigned char aid_code) { #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { register unsigned i; if (aid_code == AID_ENTER) { net_sendc('\r'); return; } for (i = 0; i < PF_SZ; i++) if (aid_code == pf_xlate[i]) { ansi_send_pf(i+1); return; } for (i = 0; i < PA_SZ; i++) if (aid_code == pa_xlate[i]) { ansi_send_pa(i+1); return; } return; } #endif /*]*/ #if defined(X3270_PLUGIN) /*[*/ plugin_aid(aid_code); #endif /*]*/ if (IN_SSCP) { if (kybdlock & KL_OIA_MINUS) return; switch (aid_code) { case AID_CLEAR: /* Handled locally. */ break; case AID_ENTER: /* * Act as if the host had written our input, and * send it as a Read Modified. */ buffer_addr = cursor_addr; aid = aid_code; ctlr_read_modified(aid, False); status_ctlr_done(); break; default: /* Everything else is invalid in SSCP-LU mode. */ status_minus(); kybdlock_set(KL_OIA_MINUS, "key_AID"); return; } return; } status_twait(); mcursor_waiting(); insert_mode(False); kybdlock_set(KL_OIA_TWAIT | KL_OIA_LOCKED, "key_AID"); aid = aid_code; ctlr_read_modified(aid, False); ticking_start(False); status_ctlr_done(); } void PF_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { unsigned k; action_debug(PF_action, event, params, num_params); if (check_usage(PF_action, *num_params, 1, 1) < 0) return; k = atoi(params[0]); if (k < 1 || k > PF_SZ) { popup_an_error("%s: Invalid argument '%s'", action_name(PF_action), params[0]); cancel_if_idle_command(); return; } reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(PF_action, params[0], CN); else key_AID(pf_xlate[k-1]); } void PA_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { unsigned k; action_debug(PA_action, event, params, num_params); if (check_usage(PA_action, *num_params, 1, 1) < 0) return; k = atoi(params[0]); if (k < 1 || k > PA_SZ) { popup_an_error("%s: Invalid argument '%s'", action_name(PA_action), params[0]); cancel_if_idle_command(); return; } reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(PA_action, params[0], CN); else key_AID(pa_xlate[k-1]); } /* * ATTN key, per RFC 2355. Sends IP, regardless. */ void Attn_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Attn_action, event, params, num_params); if (check_usage(Attn_action, *num_params, 0, 0) < 0) return; if (!IN_3270) return; reset_idle_timer(); if (IN_E) { if (net_bound()) { net_interrupt(); } else { status_minus(); kybdlock_set(KL_OIA_MINUS, "Attn_action"); } } else { net_break(); } } /* * IAC IP, which works for 5250 System Request and interrupts the program * on an AS/400, even when the keyboard is locked. * * This is now the same as the Attn action. */ void Interrupt_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Interrupt_action, event, params, num_params); if (check_usage(Interrupt_action, *num_params, 0, 0) < 0) return; if (!IN_3270) return; reset_idle_timer(); net_interrupt(); } /* * Prepare for an insert of 'count' bytes. * Returns True if the insert is legal, False otherwise. */ static Boolean ins_prep(int faddr, int baddr, int count, Boolean *no_room) { int next_faddr; int xaddr; int need; int ntb; int tb_start = -1; int copy_len; *no_room = False; /* Find the end of the field. */ if (faddr == -1) { /* Unformatted. Use the end of the line. */ next_faddr = (((baddr / COLS) + 1) * COLS) % (ROWS*COLS); } else { next_faddr = faddr; INC_BA(next_faddr); while (next_faddr != faddr && !ea_buf[next_faddr].fa) { INC_BA(next_faddr); } } /* Are there enough NULLs or trailing blanks available? */ xaddr = baddr; need = count; ntb = 0; while (need && (xaddr != next_faddr)) { if (ea_buf[xaddr].cc == EBC_null) need--; else if (toggled(BLANK_FILL) && ((ea_buf[xaddr].cc == EBC_space) || (ea_buf[xaddr].cc == EBC_underscore))) { if (tb_start == -1) tb_start = xaddr; ntb++; } else { tb_start = -1; ntb = 0; } INC_BA(xaddr); } #if defined(_ST) /*[*/ printf("need %d at %d, tb_start at %d\n", count, baddr, tb_start); #endif /*]*/ if (need - ntb > 0) { if (!reverse) { operator_error(KL_OERR_OVERFLOW); return False; } else { *no_room = True; return True; } } /* * Shift the buffer to the right until we've consumed the available * (and needed) NULLs. */ need = count; xaddr = baddr; while (need && (xaddr != next_faddr)) { int n_nulls = 0; int first_null = -1; while (need && ((ea_buf[xaddr].cc == EBC_null) || (tb_start >= 0 && xaddr >= tb_start))) { need--; n_nulls++; if (first_null == -1) first_null = xaddr; INC_BA(xaddr); } if (n_nulls) { int to; /* Shift right n_nulls worth. */ copy_len = first_null - baddr; if (copy_len < 0) copy_len += ROWS*COLS; to = (baddr + n_nulls) % (ROWS*COLS); #if defined(_ST) /*[*/ printf("found %d NULLs at %d\n", n_nulls, first_null); printf("copying %d from %d to %d\n", copy_len, to, first_null); #endif /*]*/ if (copy_len) ctlr_wrapping_memmove(to, baddr, copy_len); } INC_BA(xaddr); } return True; } #define GE_WFLAG 0x100 #define PASTE_WFLAG 0x200 static void key_Character_wrapper(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params _is_unused) { int code; Boolean with_ge = False; Boolean pasting = False; char mb[16]; ucs4_t uc; code = atoi(params[0]); if (code & GE_WFLAG) { with_ge = True; code &= ~GE_WFLAG; } if (code & PASTE_WFLAG) { pasting = True; code &= ~PASTE_WFLAG; } ebcdic_to_multibyte_x(code, with_ge? CS_GE: CS_BASE, mb, sizeof(mb), EUO_BLANK_UNDEF, &uc); trace_event(" %s -> Key(%s\"%s\")\n", ia_name[(int) ia_cause], with_ge ? "GE " : "", mb); (void) key_Character(code, with_ge, pasting, NULL); } /* * Handle an ordinary displayable character key. Lots of stuff to handle * insert-mode, protected fields and etc. */ /*static*/ Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean *skipped) { register int baddr, faddr, xaddr; register unsigned char fa; enum dbcs_why why = DBCS_FIELD; Boolean no_room = False; reset_idle_timer(); if (skipped != NULL) *skipped = False; if (kybdlock) { char codename[64]; (void) sprintf(codename, "%d", code | (with_ge ? GE_WFLAG : 0) | (pasting ? PASTE_WFLAG : 0)); enq_ta(key_Character_wrapper, codename, CN); return False; } baddr = cursor_addr; faddr = find_field_attribute(baddr); fa = get_field_attribute(baddr); if (ea_buf[baddr].fa || FA_IS_PROTECTED(fa)) { operator_error(KL_OERR_PROTECTED); return False; } if (appres.numeric_lock && FA_IS_NUMERIC(fa) && !((code >= EBC_0 && code <= EBC_9) || code == EBC_minus || code == EBC_period)) { operator_error(KL_OERR_NUMERIC); return False; } /* Can't put an SBCS in a DBCS field. */ if (ea_buf[faddr].cs == CS_DBCS) { operator_error(KL_OERR_DBCS); return False; } /* If it's an SI (end of DBCS subfield), move over one position. */ if (ea_buf[baddr].cc == EBC_si) { INC_BA(baddr); if (baddr == faddr) { operator_error(KL_OERR_OVERFLOW); return False; } } /* Add the character. */ if (ea_buf[baddr].cc == EBC_so) { if (insert) { if (!ins_prep(faddr, baddr, 1, &no_room)) return False; } else { Boolean was_si = False; /* * Overwriting an SO (start of DBCS subfield). * If it's followed by an SI, replace the SO/SI * pair with x/space. If not, replace it and * the following DBCS character with * x/space/SO. */ xaddr = baddr; INC_BA(xaddr); was_si = (ea_buf[xaddr].cc == EBC_si); ctlr_add(xaddr, EBC_space, CS_BASE); ctlr_add_fg(xaddr, 0); #if defined(X3270_ANSI) /*[*/ ctlr_add_bg(xaddr, 0); #endif /*]*/ if (!was_si) { INC_BA(xaddr); ctlr_add(xaddr, EBC_so, CS_BASE); ctlr_add_fg(xaddr, 0); #if defined(X3270_ANSI) /*[*/ ctlr_add_bg(xaddr, 0); #endif /*]*/ } } } else switch (ctlr_lookleft_state(baddr, &why)) { case DBCS_RIGHT: DEC_BA(baddr); /* fall through... */ case DBCS_LEFT: if (why == DBCS_ATTRIBUTE) { if (insert) { if (!ins_prep(faddr, baddr, 1, &no_room)) return False; } else { /* * Replace single DBCS char with * x/space. */ xaddr = baddr; INC_BA(xaddr); ctlr_add(xaddr, EBC_space, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); } } else { Boolean was_si; if (insert) { /* * Inserting SBCS into a DBCS subfield. * If this is the first position, we * can just insert one character in * front of the SO. Otherwise, we'll * need room for SI (to end subfield), * the character, and SO (to begin the * subfield again). */ xaddr = baddr; DEC_BA(xaddr); if (ea_buf[xaddr].cc == EBC_so) { DEC_BA(baddr); if (!ins_prep(faddr, baddr, 1, &no_room)) return False; } else { if (!ins_prep(faddr, baddr, 3, &no_room)) return False; xaddr = baddr; ctlr_add(xaddr, EBC_si, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); INC_BA(xaddr); INC_BA(baddr); INC_BA(xaddr); ctlr_add(xaddr, EBC_so, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); } } else { /* Overwriting part of a subfield. */ xaddr = baddr; ctlr_add(xaddr, EBC_si, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); INC_BA(xaddr); INC_BA(baddr); INC_BA(xaddr); was_si = (ea_buf[xaddr].cc == EBC_si); ctlr_add(xaddr, EBC_space, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); if (!was_si) { INC_BA(xaddr); ctlr_add(xaddr, EBC_so, CS_BASE); ctlr_add_fg(xaddr, 0); ctlr_add_gr(xaddr, 0); } } } break; default: case DBCS_NONE: if ((reverse || insert) && !ins_prep(faddr, baddr, 1, &no_room)) return False; break; } if (no_room) { do { INC_BA(baddr); } while (ea_buf[baddr].fa); } else { ctlr_add(baddr, (unsigned char)code, (unsigned char)(with_ge ? CS_GE : 0)); ctlr_add_fg(baddr, 0); ctlr_add_gr(baddr, 0); if (!reverse) INC_BA(baddr); } /* Replace leading nulls with blanks, if desired. */ if (formatted && toggled(BLANK_FILL)) { register int baddr_fill = baddr; DEC_BA(baddr_fill); while (baddr_fill != faddr) { /* Check for backward line wrap. */ if ((baddr_fill % COLS) == COLS - 1) { Boolean aborted = True; register int baddr_scan = baddr_fill; /* * Check the field within the preceeding line * for NULLs. */ while (baddr_scan != faddr) { if (ea_buf[baddr_scan].cc != EBC_null) { aborted = False; break; } if (!(baddr_scan % COLS)) break; DEC_BA(baddr_scan); } if (aborted) break; } if (ea_buf[baddr_fill].cc == EBC_null) ctlr_add(baddr_fill, EBC_space, 0); DEC_BA(baddr_fill); } } mdt_set(cursor_addr); /* * Implement auto-skip, and don't land on attribute bytes. * This happens for all pasted data (even DUP), and for all * keyboard-generated data except DUP. */ if (pasting || (code != EBC_dup)) { while (ea_buf[baddr].fa) { if (skipped != NULL) *skipped = True; if (FA_IS_SKIP(ea_buf[baddr].fa)) baddr = next_unprotected(baddr); else INC_BA(baddr); } cursor_move(baddr); } (void) ctlr_dbcs_postprocess(); return True; } #if defined(X3270_DBCS) /*[*/ static void key_WCharacter_wrapper(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params _is_unused) { int code; unsigned char codebuf[2]; code = atoi(params[0]); trace_event(" %s -> Key(0x%04x)\n", ia_name[(int) ia_cause], code); codebuf[0] = (code >> 8) & 0xff; codebuf[1] = code & 0xff; (void) key_WCharacter(codebuf, NULL); } /* * Input a DBCS character. * Returns True if a character was stored in the buffer, False otherwise. */ Boolean key_WCharacter(unsigned char code[], Boolean *skipped) { int baddr; register unsigned char fa; int faddr; enum dbcs_state d; int xaddr; Boolean done = False; Boolean no_si = False; Boolean no_room = False; extern unsigned char reply_mode; /* XXX */ reset_idle_timer(); if (kybdlock) { char codename[64]; (void) sprintf(codename, "%d", (code[0] << 8) | code[1]); enq_ta(key_WCharacter_wrapper, codename, CN); return False; } if (skipped != NULL) *skipped = False; /* In DBCS mode? */ #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif /*]*/ { trace_event("DBCS character received when not in DBCS mode, " "ignoring.\n"); return True; } #if defined(X3270_ANSI) /*[*/ /* In ANSI mode? */ if (IN_ANSI) { char mb[16]; (void) ebcdic_to_multibyte((code[0] << 8) | code[1], mb, sizeof(mb)); net_sends(mb); return True; } #endif /*]*/ baddr = cursor_addr; fa = get_field_attribute(baddr); faddr = find_field_attribute(baddr); /* Protected? */ if (ea_buf[baddr].fa || FA_IS_PROTECTED(fa)) { operator_error(KL_OERR_PROTECTED); return False; } /* Numeric? */ if (appres.numeric_lock && FA_IS_NUMERIC(fa)) { operator_error(KL_OERR_NUMERIC); return False; } /* * Figure our what to do based on the DBCS state of the buffer. * Leaves baddr pointing to the next unmodified position. */ retry: switch (d = ctlr_dbcs_state(baddr)) { case DBCS_RIGHT: case DBCS_RIGHT_WRAP: /* Back up one position and process it as a LEFT. */ DEC_BA(baddr); /* fall through... */ case DBCS_LEFT: case DBCS_LEFT_WRAP: /* Overwrite the existing character. */ if (insert) { if (!ins_prep(faddr, baddr, 2, &no_room)) { return False; } } ctlr_add(baddr, code[0], ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[1], ea_buf[baddr].cs); INC_BA(baddr); done = True; break; case DBCS_SB: /* Back up one position and process it as an SI. */ DEC_BA(baddr); /* fall through... */ case DBCS_SI: /* Extend the subfield to the right. */ if (insert) { if (!ins_prep(faddr, baddr, 2, &no_room)) { return False; } } else { /* Don't overwrite a field attribute or an SO. */ xaddr = baddr; INC_BA(xaddr); /* C1 */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) no_si = True; INC_BA(xaddr); /* SI */ if (ea_buf[xaddr].fa || ea_buf[xaddr].cc == EBC_so) break; } ctlr_add(baddr, code[0], ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[1], ea_buf[baddr].cs); if (!no_si) { INC_BA(baddr); ctlr_add(baddr, EBC_si, ea_buf[baddr].cs); } done = True; break; case DBCS_DEAD: break; case DBCS_NONE: if (ea_buf[faddr].ic) { Boolean extend_left = False; /* Is there room? */ if (insert) { if (!ins_prep(faddr, baddr, 4, &no_room)) { return False; } } else { xaddr = baddr; /* baddr, SO */ if (ea_buf[xaddr].cc == EBC_so) { /* * (baddr), where we would have put the * SO, is already an SO. Move to * (baddr+1) and try again. */ #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 0\n"); #endif /*]*/ INC_BA(baddr); goto retry; } INC_BA(xaddr); /* baddr+1, C0 */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) { enum dbcs_state e; /* * (baddr+1), where we would have put * the left side of the DBCS, is a SO. * If there's room, we can extend the * subfield to the left. If not, we're * stuck. */ DEC_BA(xaddr); DEC_BA(xaddr); e = ctlr_dbcs_state(xaddr); if (e == DBCS_NONE || e == DBCS_SB) { extend_left = True; no_si = True; #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 1, " "extend left\n"); #endif /*]*/ } else { /* * Won't actually happen, * because this implies that * the buffer addr at baddr * is an SB. */ #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 1, " "no room on left, " "fail\n"); #endif /*]*/ break; } } INC_BA(xaddr); /* baddr+2, C1 */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) { /* * (baddr+2), where we want to put the * right half of the DBCS character, is * a SO. This is a natural extension * to the left -- just make sure we * don't write an SI. */ no_si = True; #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 2, no SI\n"); #endif /*]*/ } /* * Check the fourth position only if we're * not doing an extend-left. */ if (!no_si) { INC_BA(xaddr); /* baddr+3, SI */ if (ea_buf[xaddr].fa) break; if (ea_buf[xaddr].cc == EBC_so) { /* * (baddr+3), where we want to * put an * SI, is an SO. Forget it. */ #if defined(DBCS_RIGHT_DEBUG) /*[*/ printf("SO in position 3, " "retry right\n"); INC_BA(baddr); goto retry; #endif /*]*/ break; } } } /* Yes, add it. */ if (extend_left) DEC_BA(baddr); ctlr_add(baddr, EBC_so, ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[0], ea_buf[baddr].cs); INC_BA(baddr); ctlr_add(baddr, code[1], ea_buf[baddr].cs); if (!no_si) { INC_BA(baddr); ctlr_add(baddr, EBC_si, ea_buf[baddr].cs); } done = True; } else if (reply_mode == SF_SRM_CHAR) { /* Use the character attribute. */ if (insert) { if (!ins_prep(faddr, baddr, 2, &no_room)) { return False; } } else { xaddr = baddr; INC_BA(xaddr); if (ea_buf[xaddr].fa) break; } ctlr_add(baddr, code[0], CS_DBCS); INC_BA(baddr); ctlr_add(baddr, code[1], CS_DBCS); INC_BA(baddr); done = True; } break; } if (done) { /* Implement blank fill mode. */ if (toggled(BLANK_FILL)) { xaddr = faddr; INC_BA(xaddr); while (xaddr != baddr) { if (ea_buf[xaddr].cc == EBC_null) ctlr_add(xaddr, EBC_space, CS_BASE); else break; INC_BA(xaddr); } } mdt_set(cursor_addr); /* Implement auto-skip. */ while (ea_buf[baddr].fa) { if (skipped != NULL) *skipped = True; if (FA_IS_SKIP(ea_buf[baddr].fa)) baddr = next_unprotected(baddr); else INC_BA(baddr); } cursor_move(baddr); (void) ctlr_dbcs_postprocess(); return True; } else { operator_error(KL_OERR_DBCS); return False; } } #endif /*]*/ /* * Handle an ordinary character key, given its Unicode value. */ static void key_UCharacter(ucs4_t ucs4, enum keytype keytype, enum iaction cause, Boolean *skipped) { register int i; struct akeysym ak; reset_idle_timer(); if (skipped != NULL) *skipped = False; ak.keysym = ucs4; ak.keytype = keytype; switch (composing) { case NONE: break; case COMPOSE: for (i = 0; i < n_composites; i++) if (ak_eq(composites[i].k1, ak) || ak_eq(composites[i].k2, ak)) break; if (i < n_composites) { cc_first.keysym = ucs4; cc_first.keytype = keytype; composing = FIRST; status_compose(True, ucs4, keytype); } else { ring_bell(); composing = NONE; status_compose(False, 0, KT_STD); } return; case FIRST: composing = NONE; status_compose(False, 0, KT_STD); for (i = 0; i < n_composites; i++) if ((ak_eq(composites[i].k1, cc_first) && ak_eq(composites[i].k2, ak)) || (ak_eq(composites[i].k1, ak) && ak_eq(composites[i].k2, cc_first))) break; if (i < n_composites) { ucs4 = composites[i].translation.keysym; keytype = composites[i].translation.keytype; } else { ring_bell(); return; } break; } trace_event(" %s -> Key(U+%04x)\n", ia_name[(int) cause], ucs4); if (IN_3270) { ebc_t ebc; Boolean ge; if (ucs4 < ' ') { trace_event(" dropped (control char)\n"); return; } ebc = unicode_to_ebcdic_ge(ucs4, &ge); if (ebc == 0) { trace_event(" dropped (no EBCDIC translation)\n"); return; } #if defined(X3270_DBCS) /*[*/ if (ebc & 0xff00) { unsigned char code[2]; code[0] = (ebc & 0xff00)>> 8; code[1] = ebc & 0xff; (void) key_WCharacter(code, skipped); } else #endif /*]*/ (void) key_Character(ebc, (keytype == KT_GE) || ge, False, skipped); } #if defined(X3270_ANSI) /*[*/ else if (IN_ANSI) { char mb[16]; unicode_to_multibyte(ucs4, mb, sizeof(mb)); net_sends(mb); } #endif /*]*/ else { trace_event(" dropped (not connected)\n"); } } #if defined(X3270_DISPLAY) /*[*/ /* * Handle an ordinary character key, given its NULL-terminated multibyte * representation. */ static void key_ACharacter(char *mb, enum keytype keytype, enum iaction cause, Boolean *skipped) { ucs4_t ucs4; int consumed; enum me_fail error; reset_idle_timer(); if (skipped != NULL) *skipped = False; /* Convert the multibyte string to UCS4. */ ucs4 = multibyte_to_unicode(mb, strlen(mb), &consumed, &error); if (ucs4 == 0) { trace_event(" %s -> Key(?)\n", ia_name[(int) cause]); trace_event(" dropped (invalid multibyte sequence)\n"); return; } key_UCharacter(ucs4, keytype, cause, skipped); } #endif /*]*/ /* * Simple toggles. */ #if defined(X3270_DISPLAY) /*[*/ void AltCursor_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(AltCursor_action, event, params, num_params); if (check_usage(AltCursor_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); do_toggle(ALT_CURSOR); } #endif /*]*/ void MonoCase_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(MonoCase_action, event, params, num_params); if (check_usage(MonoCase_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); do_toggle(MONOCASE); } /* * Flip the display left-to-right */ void Flip_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Flip_action, event, params, num_params); if (check_usage(Flip_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); #if defined(X3270_DBCS) /*[*/ if (!dbcs) #endif /*]*/ screen_flip(); } /* * Tab forward to next field. */ void Tab_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Tab_action, event, params, num_params); if (check_usage(Tab_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Tab"); status_reset(); } else { enq_ta(Tab_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_sendc('\t'); return; } #endif /*]*/ cursor_move(next_unprotected(cursor_addr)); } /* * Tab backward to previous field. */ void BackTab_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr, nbaddr; int sbaddr; action_debug(BackTab_action, event, params, num_params); if (check_usage(BackTab_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "BackTab"); status_reset(); } else { enq_ta(BackTab_action, CN, CN); return; } } if (!IN_3270) return; baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].fa) /* at bof */ DEC_BA(baddr); sbaddr = baddr; while (True) { nbaddr = baddr; INC_BA(nbaddr); if (ea_buf[baddr].fa && !FA_IS_PROTECTED(ea_buf[baddr].fa) && !ea_buf[nbaddr].fa) break; DEC_BA(baddr); if (baddr == sbaddr) { cursor_move(0); return; } } INC_BA(baddr); cursor_move(baddr); } /* * Deferred keyboard unlock. */ static void defer_unlock(void) { kybdlock_clr(KL_DEFERRED_UNLOCK, "defer_unlock"); status_reset(); if (CONNECTED) ps_process(); } /* * Reset keyboard lock. */ void do_reset(Boolean explicit) { /* * If explicit (from the keyboard) and there is typeahead or * a half-composed key, simply flush it. */ if (explicit #if defined(X3270_FT) /*[*/ || ft_state != FT_NONE #endif /*]*/ ) { Boolean half_reset = False; if (flush_ta()) half_reset = True; if (composing != NONE) { composing = NONE; status_compose(False, 0, KT_STD); half_reset = True; } if (half_reset) return; } /* Always clear insert mode. */ insert_mode(False); /* Otherwise, if not connect, reset is a no-op. */ if (!CONNECTED) return; /* * Remove any deferred keyboard unlock. We will either unlock the * keyboard now, or want to defer further into the future. */ if ((kybdlock & KL_DEFERRED_UNLOCK) && unlock_id) { RemoveTimeOut(unlock_id); unlock_id = 0; } /* * If explicit (from the keyboard), unlock the keyboard now. * Otherwise (from the host), schedule a deferred keyboard unlock. */ if (explicit #if defined(X3270_FT) /*[*/ || ft_state != FT_NONE #endif /*]*/ || (!appres.unlock_delay && !sms_in_macro()) || (unlock_delay_time != 0 && (time(NULL) - unlock_delay_time) > 1) || !appres.unlock_delay_ms) { kybdlock_clr(-1, "do_reset"); } else if (kybdlock & (KL_DEFERRED_UNLOCK | KL_OIA_TWAIT | KL_OIA_LOCKED | KL_AWAITING_FIRST)) { kybdlock_clr(~KL_DEFERRED_UNLOCK, "do_reset"); kybdlock_set(KL_DEFERRED_UNLOCK, "do_reset"); unlock_id = AddTimeOut(appres.unlock_delay_ms, defer_unlock); trace_event("Deferring keyboard unlock %dms\n", appres.unlock_delay_ms); } /* Clean up other modes. */ status_reset(); mcursor_normal(); composing = NONE; status_compose(False, 0, KT_STD); } void Reset_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Reset_action, event, params, num_params); if (check_usage(Reset_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); do_reset(True); } /* * Move to first unprotected field on screen. */ void Home_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Home_action, event, params, num_params); if (check_usage(Home_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Home_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_home(); return; } #endif /*]*/ if (!formatted) { cursor_move(0); return; } cursor_move(next_unprotected(ROWS*COLS-1)); } /* * Cursor left 1 position. */ static void do_left(void) { register int baddr; enum dbcs_state d; baddr = cursor_addr; DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) { DEC_BA(baddr); } else if (IS_LEFT(d)) { DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) DEC_BA(baddr); } cursor_move(baddr); } void Left_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Left_action, event, params, num_params); if (check_usage(Left_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Left"); status_reset(); } else { enq_ta(Left_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_left(); return; } #endif /*]*/ if (!flipped) do_left(); else { register int baddr; baddr = cursor_addr; INC_BA(baddr); cursor_move(baddr); } } /* * Delete char key. * Returns "True" if succeeds, "False" otherwise. */ static Boolean do_delete(void) { register int baddr, end_baddr; int xaddr; register unsigned char fa; int ndel; register int i; baddr = cursor_addr; /* Can't delete a field attribute. */ fa = get_field_attribute(baddr); if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return False; } if (ea_buf[baddr].cc == EBC_so || ea_buf[baddr].cc == EBC_si) { /* * Can't delete SO or SI, unless it's adjacent to its * opposite. */ xaddr = baddr; INC_BA(xaddr); if (ea_buf[xaddr].cc == SOSI(ea_buf[baddr].cc)) { ndel = 2; } else { operator_error(KL_OERR_PROTECTED); return False; } } else if (IS_DBCS(ea_buf[baddr].db)) { if (IS_RIGHT(ea_buf[baddr].db)) DEC_BA(baddr); ndel = 2; } else ndel = 1; /* find next fa */ if (formatted) { end_baddr = baddr; do { INC_BA(end_baddr); if (ea_buf[end_baddr].fa) break; } while (end_baddr != baddr); DEC_BA(end_baddr); } else { if ((baddr % COLS) == COLS - ndel) return True; end_baddr = baddr + (COLS - (baddr % COLS)) - 1; } /* Shift the remainder of the field left. */ if (end_baddr > baddr) { ctlr_bcopy(baddr + ndel, baddr, end_baddr - (baddr + ndel) + 1, 0); } else if (end_baddr != baddr) { /* XXX: Need to verify this. */ ctlr_bcopy(baddr + ndel, baddr, ((ROWS * COLS) - 1) - (baddr + ndel) + 1, 0); ctlr_bcopy(0, (ROWS * COLS) - ndel, ndel, 0); ctlr_bcopy(ndel, 0, end_baddr - ndel + 1, 0); } /* NULL fill at the end. */ for (i = 0; i < ndel; i++) ctlr_add(end_baddr - i, EBC_null, 0); /* Set the MDT for this field. */ mdt_set(cursor_addr); /* Patch up the DBCS state for display. */ (void) ctlr_dbcs_postprocess(); return True; } void Delete_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Delete_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(Delete_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_sendc('\177'); return; } #endif /*]*/ if (!do_delete()) return; if (reverse) { int baddr = cursor_addr; DEC_BA(baddr); if (!ea_buf[baddr].fa) cursor_move(baddr); } } /* * 3270-style backspace. */ void BackSpace_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(BackSpace_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(BackSpace_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_erase(); return; } #endif /*]*/ if (reverse) (void) do_delete(); else if (!flipped) do_left(); else { register int baddr; baddr = cursor_addr; DEC_BA(baddr); cursor_move(baddr); } } /* * Destructive backspace, like Unix "erase". */ static void do_erase(void) { int baddr, faddr; enum dbcs_state d; baddr = cursor_addr; faddr = find_field_attribute(baddr); if (faddr == baddr || FA_IS_PROTECTED(ea_buf[baddr].fa)) { operator_error(KL_OERR_PROTECTED); return; } if (baddr && faddr == baddr - 1) return; do_left(); /* * If we are now on an SI, move left again. */ if (ea_buf[cursor_addr].cc == EBC_si) { baddr = cursor_addr; DEC_BA(baddr); cursor_move(baddr); } /* * If we landed on the right-hand side of a DBCS character, move to the * left-hand side. * This ensures that if this is the end of a DBCS subfield, we will * land on the SI, instead of on the character following. */ d = ctlr_dbcs_state(cursor_addr); if (IS_RIGHT(d)) { baddr = cursor_addr; DEC_BA(baddr); cursor_move(baddr); } /* * Try to delete this character. */ if (!do_delete()) return; /* * If we've just erased the last character of a DBCS subfield, erase * the SO/SI pair as well. */ baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].cc == EBC_so && ea_buf[cursor_addr].cc == EBC_si) { cursor_move(baddr); (void) do_delete(); } } void Erase_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Erase_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(Erase_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_erase(); return; } #endif /*]*/ if (reverse) do_delete(); else do_erase(); } /* * Cursor right 1 position. */ void Right_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; enum dbcs_state d; action_debug(Right_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Right"); status_reset(); } else { enq_ta(Right_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_right(); return; } #endif /*]*/ if (!flipped) { baddr = cursor_addr; INC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) INC_BA(baddr); cursor_move(baddr); } else do_left(); } /* * Cursor left 2 positions. */ void Left2_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; enum dbcs_state d; action_debug(Left2_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Left2"); status_reset(); } else { enq_ta(Left2_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ baddr = cursor_addr; DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) DEC_BA(baddr); DEC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_LEFT(d)) DEC_BA(baddr); cursor_move(baddr); } /* * Cursor to previous word. */ void PreviousWord_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; int baddr0; unsigned char c; Boolean prot; action_debug(PreviousWord_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(PreviousWord_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (!formatted) return; baddr = cursor_addr; prot = FA_IS_PROTECTED(get_field_attribute(baddr)); /* Skip to before this word, if in one now. */ if (!prot) { c = ea_buf[baddr].cc; while (!ea_buf[baddr].fa && c != EBC_space && c != EBC_null) { DEC_BA(baddr); if (baddr == cursor_addr) return; c = ea_buf[baddr].cc; } } baddr0 = baddr; /* Find the end of the preceding word. */ do { c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) { DEC_BA(baddr); prot = FA_IS_PROTECTED(get_field_attribute(baddr)); continue; } if (!prot && c != EBC_space && c != EBC_null) break; DEC_BA(baddr); } while (baddr != baddr0); if (baddr == baddr0) return; /* Go it its front. */ for (;;) { DEC_BA(baddr); c = ea_buf[baddr].cc; if (ea_buf[baddr].fa || c == EBC_space || c == EBC_null) { break; } } INC_BA(baddr); cursor_move(baddr); } /* * Cursor right 2 positions. */ void Right2_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; enum dbcs_state d; action_debug(Right2_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Right2"); status_reset(); } else { enq_ta(Right2_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ baddr = cursor_addr; INC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) INC_BA(baddr); INC_BA(baddr); d = ctlr_dbcs_state(baddr); if (IS_RIGHT(d)) INC_BA(baddr); cursor_move(baddr); } /* Find the next unprotected word, or -1 */ static int nu_word(int baddr) { int baddr0 = baddr; unsigned char c; Boolean prot; prot = FA_IS_PROTECTED(get_field_attribute(baddr)); do { c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) prot = FA_IS_PROTECTED(ea_buf[baddr].fa); else if (!prot && c != EBC_space && c != EBC_null) return baddr; INC_BA(baddr); } while (baddr != baddr0); return -1; } /* Find the next word in this field, or -1 */ static int nt_word(int baddr) { int baddr0 = baddr; unsigned char c; Boolean in_word = True; do { c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) return -1; if (in_word) { if (c == EBC_space || c == EBC_null) in_word = False; } else { if (c != EBC_space && c != EBC_null) return baddr; } INC_BA(baddr); } while (baddr != baddr0); return -1; } /* * Cursor to next unprotected word. */ void NextWord_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; unsigned char c; action_debug(NextWord_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { enq_ta(NextWord_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (!formatted) return; /* If not in an unprotected field, go to the next unprotected word. */ if (ea_buf[cursor_addr].fa || FA_IS_PROTECTED(get_field_attribute(cursor_addr))) { baddr = nu_word(cursor_addr); if (baddr != -1) cursor_move(baddr); return; } /* If there's another word in this field, go to it. */ baddr = nt_word(cursor_addr); if (baddr != -1) { cursor_move(baddr); return; } /* If in a word, go to just after its end. */ c = ea_buf[cursor_addr].cc; if (c != EBC_space && c != EBC_null) { baddr = cursor_addr; do { c = ea_buf[baddr].cc; if (c == EBC_space || c == EBC_null) { cursor_move(baddr); return; } else if (ea_buf[baddr].fa) { baddr = nu_word(baddr); if (baddr != -1) cursor_move(baddr); return; } INC_BA(baddr); } while (baddr != cursor_addr); } /* Otherwise, go to the next unprotected word. */ else { baddr = nu_word(cursor_addr); if (baddr != -1) cursor_move(baddr); } } /* * Cursor up 1 position. */ void Up_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; action_debug(Up_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Up"); status_reset(); } else { enq_ta(Up_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_up(); return; } #endif /*]*/ baddr = cursor_addr - COLS; if (baddr < 0) baddr = (cursor_addr + (ROWS * COLS)) - COLS; cursor_move(baddr); } /* * Cursor down 1 position. */ void Down_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; action_debug(Down_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (KYBDLOCK_IS_OERR) { kybdlock_clr(KL_OERR_MASK, "Down"); status_reset(); } else { enq_ta(Down_action, CN, CN); return; } } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_down(); return; } #endif /*]*/ baddr = (cursor_addr + COLS) % (COLS * ROWS); cursor_move(baddr); } /* * Cursor to first field on next line or any lines after that. */ void Newline_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr, faddr; register unsigned char fa; action_debug(Newline_action, event, params, num_params); if (check_usage(Newline_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Newline_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_sendc('\n'); return; } #endif /*]*/ baddr = (cursor_addr + COLS) % (COLS * ROWS); /* down */ baddr = (baddr / COLS) * COLS; /* 1st col */ faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (faddr != baddr && !FA_IS_PROTECTED(fa)) cursor_move(baddr); else cursor_move(next_unprotected(baddr)); } /* * DUP key */ void Dup_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Dup_action, event, params, num_params); if (check_usage(Dup_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Dup_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (key_Character(EBC_dup, False, False, NULL)) cursor_move(next_unprotected(cursor_addr)); } /* * FM key */ void FieldMark_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(FieldMark_action, event, params, num_params); if (check_usage(FieldMark_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(FieldMark_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ (void) key_Character(EBC_fm, False, False, NULL); } /* * Vanilla AID keys. */ void Enter_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Enter_action, event, params, num_params); if (check_usage(Enter_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(Enter_action, CN, CN); else key_AID(AID_ENTER); } void SysReq_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(SysReq_action, event, params, num_params); if (check_usage(SysReq_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (IN_ANSI) return; #if defined(X3270_TN3270E) /*[*/ if (IN_E) { net_abort(); } else #endif /*]*/ { if (kybdlock & KL_OIA_MINUS) return; else if (kybdlock) enq_ta(SysReq_action, CN, CN); else key_AID(AID_SYSREQ); } } /* * Clear AID key */ void Clear_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Clear_action, event, params, num_params); if (check_usage(Clear_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock & KL_OIA_MINUS) return; if (kybdlock && CONNECTED) { enq_ta(Clear_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { ansi_send_clear(); return; } #endif /*]*/ buffer_addr = 0; ctlr_clear(True); cursor_move(0); if (CONNECTED) key_AID(AID_CLEAR); } /* * Cursor Select key (light pen simulator). */ static void lightpen_select(int baddr) { int faddr; register unsigned char fa; int designator; #if defined(X3270_DBCS) /*[*/ int designator2; #endif /*]*/ faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (!FA_IS_SELECTABLE(fa)) { ring_bell(); return; } designator = faddr; INC_BA(designator); #if defined(X3270_DBCS) /*[*/ if (dbcs) { if (ea_buf[baddr].cs == CS_DBCS) { designator2 = designator; INC_BA(designator2); if ((ea_buf[designator].db != DBCS_LEFT && ea_buf[designator].db != DBCS_LEFT_WRAP) && (ea_buf[designator2].db != DBCS_RIGHT && ea_buf[designator2].db != DBCS_RIGHT_WRAP)) { ring_bell(); return; } if (ea_buf[designator].cc == 0x42 && ea_buf[designator2].cc == EBC_greater) { ctlr_add(designator2, EBC_question, CS_DBCS); mdt_clear(faddr); } else if (ea_buf[designator].cc == 0x42 && ea_buf[designator2].cc == EBC_question) { ctlr_add(designator2, EBC_greater, CS_DBCS); mdt_clear(faddr); } else if ((ea_buf[designator].cc == EBC_space && ea_buf[designator2].cc == EBC_space) || (ea_buf[designator].cc == EBC_null && ea_buf[designator2].cc == EBC_null)) { ctlr_add(designator2, EBC_greater, CS_DBCS); mdt_set(faddr); key_AID(AID_SELECT); } else if (ea_buf[designator].cc == 0x42 && ea_buf[designator2].cc == EBC_ampersand) { mdt_set(faddr); key_AID(AID_ENTER); } else { ring_bell(); } return; } } #endif /*]*/ switch (ea_buf[designator].cc) { case EBC_greater: /* > */ ctlr_add(designator, EBC_question, 0); /* change to ? */ mdt_clear(faddr); break; case EBC_question: /* ? */ ctlr_add(designator, EBC_greater, 0); /* change to > */ mdt_set(faddr); break; case EBC_space: /* space */ case EBC_null: /* null */ mdt_set(faddr); key_AID(AID_SELECT); break; case EBC_ampersand: /* & */ mdt_set(faddr); key_AID(AID_ENTER); break; default: ring_bell(); break; } } /* * Cursor Select key (light pen simulator) -- at the current cursor location. */ void CursorSelect_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(CursorSelect_action, event, params, num_params); if (check_usage(CursorSelect_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(CursorSelect_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ lightpen_select(cursor_addr); } #if defined(X3270_DISPLAY) /*[*/ /* * Cursor Select mouse action (light pen simulator). */ void MouseSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(MouseSelect_action, event, params, num_params); if (check_usage(MouseSelect_action, *num_params, 0, 0) < 0) return; if (w != *screen) return; reset_idle_timer(); if (kybdlock) return; #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ lightpen_select(mouse_baddr(w, event)); } #endif /*]*/ /* * Erase End Of Field Key. */ void EraseEOF_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; register unsigned char fa; enum dbcs_state d; enum dbcs_why why = DBCS_FIELD; action_debug(EraseEOF_action, event, params, num_params); if (check_usage(EraseEOF_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(EraseEOF_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ baddr = cursor_addr; fa = get_field_attribute(baddr); if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return; } if (formatted) { /* erase to next field attribute */ do { ctlr_add(baddr, EBC_null, 0); INC_BA(baddr); } while (!ea_buf[baddr].fa); mdt_set(cursor_addr); } else { /* erase to end of screen */ do { ctlr_add(baddr, EBC_null, 0); INC_BA(baddr); } while (baddr != 0); } /* If the cursor was in a DBCS subfield, re-create the SI. */ d = ctlr_lookleft_state(cursor_addr, &why); if (IS_DBCS(d) && why == DBCS_SUBFIELD) { if (d == DBCS_RIGHT) { baddr = cursor_addr; DEC_BA(baddr); ea_buf[baddr].cc = EBC_si; } else ea_buf[cursor_addr].cc = EBC_si; } (void) ctlr_dbcs_postprocess(); } /* * Erase all Input Key. */ void EraseInput_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr, sbaddr; unsigned char fa; Boolean f; action_debug(EraseInput_action, event, params, num_params); if (check_usage(EraseInput_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(EraseInput_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (formatted) { /* find first field attribute */ baddr = 0; do { if (ea_buf[baddr].fa) break; INC_BA(baddr); } while (baddr != 0); sbaddr = baddr; f = False; do { fa = ea_buf[baddr].fa; if (!FA_IS_PROTECTED(fa)) { mdt_clear(baddr); do { INC_BA(baddr); if (!f) { cursor_move(baddr); f = True; } if (!ea_buf[baddr].fa) { ctlr_add(baddr, EBC_null, 0); } } while (!ea_buf[baddr].fa); } else { /* skip protected */ do { INC_BA(baddr); } while (!ea_buf[baddr].fa); } } while (baddr != sbaddr); if (!f) cursor_move(0); } else { ctlr_clear(True); cursor_move(0); } } /* * Delete word key. Backspaces the cursor until it hits the front of a word, * deletes characters until it hits a blank or null, and deletes all of these * but the last. * * Which is to say, does a ^W. */ void DeleteWord_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; register unsigned char fa; action_debug(DeleteWord_action, event, params, num_params); if (check_usage(DeleteWord_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(DeleteWord_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_werase(); return; } #endif /*]*/ if (!formatted) return; baddr = cursor_addr; fa = get_field_attribute(baddr); /* Make sure we're on a modifiable field. */ if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return; } /* Backspace over any spaces to the left of the cursor. */ for (;;) { baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].fa) return; if (ea_buf[baddr].cc == EBC_null || ea_buf[baddr].cc == EBC_space) do_erase(); else break; } /* Backspace until the character to the left of the cursor is blank. */ for (;;) { baddr = cursor_addr; DEC_BA(baddr); if (ea_buf[baddr].fa) return; if (ea_buf[baddr].cc == EBC_null || ea_buf[baddr].cc == EBC_space) break; else do_erase(); } } /* * Delete field key. Similar to EraseEOF, but it wipes out the entire field * rather than just to the right of the cursor, and it leaves the cursor at * the front of the field. * * Which is to say, does a ^U. */ void DeleteField_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { register int baddr; register unsigned char fa; action_debug(DeleteField_action, event, params, num_params); if (check_usage(DeleteField_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(DeleteField_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { net_send_kill(); return; } #endif /*]*/ if (!formatted) return; baddr = cursor_addr; fa = get_field_attribute(baddr); if (FA_IS_PROTECTED(fa) || ea_buf[baddr].fa) { operator_error(KL_OERR_PROTECTED); return; } while (!ea_buf[baddr].fa) DEC_BA(baddr); INC_BA(baddr); mdt_set(cursor_addr); cursor_move(baddr); while (!ea_buf[baddr].fa) { ctlr_add(baddr, EBC_null, 0); INC_BA(baddr); } } /* * Set insert mode key. */ void Insert_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Insert_action, event, params, num_params); if (check_usage(Insert_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(Insert_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ insert_mode(True); } /* * Toggle insert mode key. */ void ToggleInsert_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(ToggleInsert_action, event, params, num_params); if (check_usage(ToggleInsert_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(ToggleInsert_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (insert) insert_mode(False); else insert_mode(True); } /* * Toggle reverse mode key. */ void ToggleReverse_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(ToggleReverse_action, event, params, num_params); if (check_usage(ToggleReverse_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(ToggleReverse_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ reverse_mode(!reverse); } /* * Move the cursor to the first blank after the last nonblank in the * field, or if the field is full, to the last character in the field. */ void FieldEnd_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { int baddr, faddr; unsigned char fa, c; int last_nonblank = -1; action_debug(FieldEnd_action, event, params, num_params); if (check_usage(FieldEnd_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (kybdlock) { enq_ta(FieldEnd_action, CN, CN); return; } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) return; #endif /*]*/ if (!formatted) return; baddr = cursor_addr; faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (faddr == baddr || FA_IS_PROTECTED(fa)) return; baddr = faddr; while (True) { INC_BA(baddr); c = ea_buf[baddr].cc; if (ea_buf[baddr].fa) break; if (c != EBC_null && c != EBC_space) last_nonblank = baddr; } if (last_nonblank == -1) { baddr = faddr; INC_BA(baddr); } else { baddr = last_nonblank; INC_BA(baddr); if (ea_buf[baddr].fa) baddr = last_nonblank; } cursor_move(baddr); } /* * MoveCursor action. Depending on arguments, this is either a move to the * mouse cursor position, or to an absolute location. */ void MoveCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { register int baddr; int row, col; action_debug(MoveCursor_action, event, params, num_params); reset_idle_timer(); if (kybdlock) { if (*num_params == 2) enq_ta(MoveCursor_action, params[0], params[1]); return; } switch (*num_params) { #if defined(X3270_DISPLAY) /*[*/ case 0: /* mouse click, presumably */ if (w != *screen) return; cursor_move(mouse_baddr(w, event)); break; #endif /*]*/ case 2: /* probably a macro call */ row = atoi(params[0]); col = atoi(params[1]); if (!IN_3270) { row--; col--; } if (row < 0) row = 0; if (col < 0) col = 0; baddr = ((row * COLS) + col) % (ROWS * COLS); cursor_move(baddr); break; default: /* couln't say */ popup_an_error("%s requires 0 or 2 arguments", action_name(MoveCursor_action)); cancel_if_idle_command(); break; } } #if defined(X3270_DBCS) && defined(X3270_DISPLAY) /*[*/ /* * Run a KeyPress through XIM. * Returns True if there is further processing to do, False otherwise. */ static Boolean xim_lookup(XKeyEvent *event) { static char *buf = NULL; static int buf_len = 0, rlen; KeySym k; Status status; extern XIC ic; int i; Boolean rv = False; #define BASE_BUFSIZE 50 if (ic == NULL) return True; if (buf == NULL) { buf_len = BASE_BUFSIZE; buf = Malloc(buf_len); } for (;;) { memset(buf, '\0', buf_len); rlen = XmbLookupString(ic, event, buf, buf_len - 1, &k, &status); if (status != XBufferOverflow) break; buf_len += BASE_BUFSIZE; buf = Realloc(buf, buf_len); } switch (status) { case XLookupNone: rv = False; break; case XLookupKeySym: rv = True; break; case XLookupChars: trace_event("%d XIM char%s:", rlen, (rlen != 1)? "s": ""); for (i = 0; i < rlen; i++) { trace_event(" %02x", buf[i] & 0xff); } trace_event("\n"); buf[rlen] = '\0'; key_ACharacter(buf, KT_STD, ia_cause, NULL); rv = False; break; case XLookupBoth: rv = True; break; } return rv; } #endif /*]*/ /* * Key action. */ void Key_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; KeySym k; enum keytype keytype; ucs4_t ucs4; action_debug(Key_action, event, params, num_params); reset_idle_timer(); for (i = 0; i < *num_params; i++) { char *s = params[i]; k = MyStringToKeysym(s, &keytype, &ucs4); if (k == NoSymbol && !ucs4) { popup_an_error("%s: Nonexistent or invalid KeySym: %s", action_name(Key_action), s); cancel_if_idle_command(); continue; } if (k & ~0xff) { /* * Can't pass symbolic KeySyms that aren't in the * range 0x01..0xff. */ popup_an_error("%s: Invalid KeySym: %s", action_name(Key_action), s); cancel_if_idle_command(); continue; } if (k != NoSymbol) key_UCharacter(k, keytype, IA_KEY, NULL); else key_UCharacter(ucs4, keytype, IA_KEY, NULL); } } /* * String action. */ void String_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; int len = 0; char *s; action_debug(String_action, event, params, num_params); reset_idle_timer(); /* Determine the total length of the strings. */ for (i = 0; i < *num_params; i++) len += strlen(params[i]); if (!len) return; /* Allocate a block of memory and copy them in. */ s = Malloc(len + 1); s[0] = '\0'; for (i = 0; i < *num_params; i++) { strcat(s, params[i]); } /* Set a pending string. */ ps_set(s, False); Free(s); } /* * HexString action. */ void HexString_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { Cardinal i; int len = 0; char *s; char *t; action_debug(HexString_action, event, params, num_params); reset_idle_timer(); /* Determine the total length of the strings. */ for (i = 0; i < *num_params; i++) { t = params[i]; if (!strncmp(t, "0x", 2) || !strncmp(t, "0X", 2)) t += 2; len += strlen(t); } if (!len) return; /* Allocate a block of memory and copy them in. */ s = Malloc(len + 1); *s = '\0'; for (i = 0; i < *num_params; i++) { t = params[i]; if (!strncmp(t, "0x", 2) || !strncmp(t, "0X", 2)) t += 2; (void) strcat(s, t); } /* Set a pending string. */ ps_set(s, True); } /* * Dual-mode action for the "asciicircum" ("^") key: * If in ANSI mode, pass through untranslated. * If in 3270 mode, translate to "notsign". * This action is obsoleted by the use of 3270-mode and NVT-mode keymaps, but * is still defined here for backwards compatibility with old keymaps. */ void CircumNot_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(CircumNot_action, event, params, num_params); if (check_usage(CircumNot_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (IN_3270 && composing == NONE) key_UCharacter(0xac, KT_STD, IA_KEY, NULL); else key_UCharacter('^', KT_STD, IA_KEY, NULL); } /* PA key action for String actions */ static void do_pa(unsigned n) { if (n < 1 || n > PA_SZ) { popup_an_error("Unknown PA key %d", n); cancel_if_idle_command(); return; } if (kybdlock) { char nn[3]; (void) sprintf(nn, "%d", n); enq_ta(PA_action, nn, CN); return; } key_AID(pa_xlate[n-1]); } /* PF key action for String actions */ static void do_pf(unsigned n) { if (n < 1 || n > PF_SZ) { popup_an_error("Unknown PF key %d", n); cancel_if_idle_command(); return; } if (kybdlock) { char nn[3]; (void) sprintf(nn, "%d", n); enq_ta(PF_action, nn, CN); return; } key_AID(pf_xlate[n-1]); } /* * Set or clear the keyboard scroll lock. */ void kybd_scroll_lock(Boolean lock) { if (!IN_3270) return; if (lock) kybdlock_set(KL_SCROLLED, "kybd_scroll_lock"); else kybdlock_clr(KL_SCROLLED, "kybd_scroll_lock"); } /* * Move the cursor back within the legal paste area. * Returns a Boolean indicating success. */ static Boolean remargin(int lmargin) { Boolean ever = False; int baddr, b0 = 0; int faddr; unsigned char fa; baddr = cursor_addr; while (BA_TO_COL(baddr) < lmargin) { baddr = ROWCOL_TO_BA(BA_TO_ROW(baddr), lmargin); if (!ever) { b0 = baddr; ever = True; } faddr = find_field_attribute(baddr); fa = ea_buf[faddr].fa; if (faddr == baddr || FA_IS_PROTECTED(fa)) { baddr = next_unprotected(baddr); if (baddr <= b0) return False; } } cursor_move(baddr); return True; } /* * Pretend that a sequence of keys was entered at the keyboard. * * "Pasting" means that the sequence came from the X clipboard. Returns are * ignored; newlines mean "move to beginning of next line"; tabs and formfeeds * become spaces. Backslashes are not special, but ASCII ESC characters are * used to signify 3270 Graphic Escapes. * * "Not pasting" means that the sequence is a login string specified in the * hosts file, or a parameter to the String action. Returns are "move to * beginning of next line"; newlines mean "Enter AID" and the termination of * processing the string. Backslashes are processed as in C. * * Returns the number of unprocessed characters. */ int emulate_uinput(ucs4_t *ws, int xlen, Boolean pasting) { enum { BASE, BACKSLASH, BACKX, BACKE, BACKP, BACKPA, BACKPF, OCTAL, HEX, EBC, XGE } state = BASE; int literal = 0; int nc = 0; enum iaction ia = pasting ? IA_PASTE : IA_STRING; int orig_addr = cursor_addr; int orig_col = BA_TO_COL(cursor_addr); Boolean skipped = False; ucs4_t c; /* * In the switch statements below, "break" generally means "consume * this character," while "continue" means "rescan this character." */ while (xlen) { /* * It isn't possible to unlock the keyboard from a string, * so if the keyboard is locked, it's fatal */ if (kybdlock) { trace_event(" keyboard locked, string dropped\n"); return 0; } if (pasting && IN_3270) { /* Check for cursor wrap to top of screen. */ if (cursor_addr < orig_addr) return xlen-1; /* wrapped */ /* Jump cursor over left margin. */ if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { if (!remargin(orig_col)) return xlen-1; skipped = True; } } c = *ws; switch (state) { case BASE: switch (c) { case '\b': action_internal(Left_action, ia, CN, CN); skipped = False; break; case '\f': if (pasting) { key_UCharacter(' ', KT_STD, ia, &skipped); } else { action_internal(Clear_action, ia, CN, CN); skipped = False; if (IN_3270) return xlen-1; } break; case '\n': if (pasting) { if (!skipped) action_internal(Newline_action, ia, CN, CN); skipped = False; } else { action_internal(Enter_action, ia, CN, CN); skipped = False; if (IN_3270) return xlen-1; } break; case '\r': if (!pasting) { action_internal(Newline_action, ia, CN, CN); skipped = False; } break; case '\t': action_internal(Tab_action, ia, CN, CN); skipped = False; break; case '\\': /* backslashes are NOT special when pasting */ if (!pasting) state = BACKSLASH; else key_UCharacter((unsigned char)c, KT_STD, ia, &skipped); break; case '\033': /* ESC is special only when pasting */ if (pasting) state = XGE; break; case '[': /* APL left bracket */ if (pasting && appres.apl_mode) key_UCharacter(XK_Yacute, KT_GE, ia, &skipped); else key_UCharacter((unsigned char)c, KT_STD, ia, &skipped); break; case ']': /* APL right bracket */ if (pasting && appres.apl_mode) key_UCharacter(XK_diaeresis, KT_GE, ia, &skipped); else key_UCharacter((unsigned char)c, KT_STD, ia, &skipped); break; case UPRIV_fm: /* private-use FM */ if (pasting) key_Character(EBC_fm, False, True, &skipped); break; case UPRIV_dup: /* private-use DUP */ if (pasting) key_Character(EBC_dup, False, True, &skipped); break; case UPRIV_eo: /* private-use EO */ if (pasting) key_Character(EBC_eo, False, True, &skipped); break; case UPRIV_sub: /* private-use SUB */ if (pasting) key_Character(EBC_sub, False, True, &skipped); break; default: if (pasting && (c >= UPRIV_GE_00 && c <= UPRIV_GE_ff)) key_Character(c - UPRIV_GE_00, KT_GE, ia, &skipped); else key_UCharacter(c, KT_STD, ia, &skipped); break; } break; case BACKSLASH: /* last character was a backslash */ switch (c) { case 'a': popup_an_error("%s: Bell not supported", action_name(String_action)); cancel_if_idle_command(); state = BASE; break; case 'b': action_internal(Left_action, ia, CN, CN); skipped = False; state = BASE; break; case 'f': action_internal(Clear_action, ia, CN, CN); skipped = False; state = BASE; if (IN_3270) return xlen-1; else break; case 'n': action_internal(Enter_action, ia, CN, CN); skipped = False; state = BASE; if (IN_3270) return xlen-1; else break; case 'p': state = BACKP; break; case 'r': action_internal(Newline_action, ia, CN, CN); skipped = False; state = BASE; break; case 't': action_internal(Tab_action, ia, CN, CN); skipped = False; state = BASE; break; case 'T': action_internal(BackTab_action, ia, CN, CN); skipped = False; state = BASE; break; case 'v': popup_an_error("%s: Vertical tab not supported", action_name(String_action)); cancel_if_idle_command(); state = BASE; break; case 'u': case 'x': state = BACKX; break; case 'e': state = BACKE; break; case '\\': key_UCharacter((unsigned char) c, KT_STD, ia, &skipped); state = BASE; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': state = OCTAL; literal = 0; nc = 0; continue; default: state = BASE; continue; } break; case BACKP: /* last two characters were "\p" */ switch (c) { case 'a': literal = 0; nc = 0; state = BACKPA; break; case 'f': literal = 0; nc = 0; state = BACKPF; break; default: popup_an_error("%s: Unknown character " "after \\p", action_name(String_action)); cancel_if_idle_command(); state = BASE; break; } break; case BACKPF: /* last three characters were "\pf" */ if (nc < 2 && isdigit(c)) { literal = (literal * 10) + (c - '0'); nc++; } else if (!nc) { popup_an_error("%s: Unknown character " "after \\pf", action_name(String_action)); cancel_if_idle_command(); state = BASE; } else { do_pf(literal); skipped = False; if (IN_3270) { return xlen; } state = BASE; continue; } break; case BACKPA: /* last three characters were "\pa" */ if (nc < 1 && isdigit(c)) { literal = (literal * 10) + (c - '0'); nc++; } else if (!nc) { popup_an_error("%s: Unknown character " "after \\pa", action_name(String_action)); cancel_if_idle_command(); state = BASE; } else { do_pa(literal); skipped = False; if (IN_3270) return xlen-1; state = BASE; continue; } break; case BACKX: /* last two characters were "\x" or "\u" */ if (isxdigit(c)) { state = HEX; literal = 0; nc = 0; continue; } else { popup_an_error("%s: Missing hex digits after \\x", action_name(String_action)); cancel_if_idle_command(); state = BASE; continue; } case BACKE: /* last two characters were "\e" */ if (isxdigit(c)) { state = EBC; literal = 0; nc = 0; continue; } else { popup_an_error("%s: Missing hex digits after \\e", action_name(String_action)); cancel_if_idle_command(); state = BASE; continue; } case OCTAL: /* have seen \ and one or more octal digits */ if (nc < 3 && isdigit(c) && c < '8') { literal = (literal * 8) + FROM_HEX(c); nc++; break; } else { key_UCharacter((unsigned char) literal, KT_STD, ia, &skipped); state = BASE; continue; } case HEX: /* have seen \x and one or more hex digits */ if (nc < 4 && isxdigit(c)) { literal = (literal * 16) + FROM_HEX(c); nc++; break; } else { key_UCharacter((unsigned char) literal, KT_STD, ia, &skipped); state = BASE; continue; } case EBC: /* have seen \e and one or more hex digits */ if (nc < 4 && isxdigit(c)) { literal = (literal * 16) + FROM_HEX(c); nc++; break; } else { trace_event(" %s -> Key(X'%02X')\n", ia_name[(int) ia], literal); if (!(literal & ~0xff)) key_Character((unsigned char) literal, False, True, &skipped); else { #if defined(X3270_DBCS) /*[*/ unsigned char code[2]; code[0] = (literal >> 8) & 0xff; code[1] = literal & 0xff; key_WCharacter(code, &skipped); #else /*][*/ popup_an_error("%s: EBCDIC code > 255", action_name(String_action)); cancel_if_idle_command(); #endif /*]*/ } state = BASE; continue; } case XGE: /* have seen ESC */ switch (c) { case ';': /* FM */ key_Character(EBC_fm, False, True, &skipped); break; case '*': /* DUP */ key_Character(EBC_dup, False, True, &skipped); break; default: key_UCharacter((unsigned char) c, KT_GE, ia, &skipped); break; } state = BASE; break; } ws++; xlen--; } switch (state) { case BASE: if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { (void) remargin(orig_col); } break; case OCTAL: case HEX: key_UCharacter((unsigned char) literal, KT_STD, ia, &skipped); state = BASE; if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { (void) remargin(orig_col); } break; case EBC: /* XXX: line below added after 3.3.7p7 */ trace_event(" %s -> Key(X'%02X')\n", ia_name[(int) ia], literal); key_Character((unsigned char) literal, False, True, &skipped); state = BASE; if (toggled(MARGINED_PASTE) && BA_TO_COL(cursor_addr) < orig_col) { (void) remargin(orig_col); } break; case BACKPF: if (nc > 0) { do_pf(literal); state = BASE; } break; case BACKPA: if (nc > 0) { do_pa(literal); state = BASE; } break; default: popup_an_error("%s: Missing data after \\", action_name(String_action)); cancel_if_idle_command(); break; } return xlen; } /* Multibyte version of emulate_uinput. */ int emulate_input(char *s, int len, Boolean pasting) { static ucs4_t *w_ibuf = NULL; static size_t w_ibuf_len = 0; int xlen; /* Convert from a multi-byte string to a Unicode string. */ if ((size_t)(len + 1) > w_ibuf_len) { w_ibuf_len = len + 1; w_ibuf = (ucs4_t *)Realloc(w_ibuf, w_ibuf_len * sizeof(ucs4_t)); } xlen = multibyte_to_unicode_string(s, len, w_ibuf, w_ibuf_len); if (xlen < 0) { return 0; /* failed */ } /* Process it as Unicode. */ return emulate_uinput(w_ibuf, xlen, pasting); } /* * Pretend that a sequence of hexadecimal characters was entered at the * keyboard. The input is a sequence of hexadecimal bytes, 2 characters * per byte. If connected in ANSI mode, these are treated as ASCII * characters; if in 3270 mode, they are considered EBCDIC. * * Graphic Escapes are handled as \E. */ void hex_input(char *s) { char *t; Boolean escaped; #if defined(X3270_ANSI) /*[*/ unsigned char *xbuf = (unsigned char *)NULL; unsigned char *tbuf = (unsigned char *)NULL; int nbytes = 0; #endif /*]*/ /* Validate the string. */ if (strlen(s) % 2) { popup_an_error("%s: Odd number of characters in specification", action_name(HexString_action)); cancel_if_idle_command(); return; } t = s; escaped = False; while (*t) { if (isxdigit(*t) && isxdigit(*(t + 1))) { escaped = False; #if defined(X3270_ANSI) /*[*/ nbytes++; #endif /*]*/ } else if (!strncmp(t, "\\E", 2) || !strncmp(t, "\\e", 2)) { if (escaped) { popup_an_error("%s: Double \\E", action_name(HexString_action)); cancel_if_idle_command(); return; } if (!IN_3270) { popup_an_error("%s: \\E in ANSI mode", action_name(HexString_action)); cancel_if_idle_command(); return; } escaped = True; } else { popup_an_error("%s: Illegal character in specification", action_name(HexString_action)); cancel_if_idle_command(); return; } t += 2; } if (escaped) { popup_an_error("%s: Nothing follows \\E", action_name(HexString_action)); cancel_if_idle_command(); return; } #if defined(X3270_ANSI) /*[*/ /* Allocate a temporary buffer. */ if (!IN_3270 && nbytes) tbuf = xbuf = (unsigned char *)Malloc(nbytes); #endif /*]*/ /* Pump it in. */ t = s; escaped = False; while (*t) { if (isxdigit(*t) && isxdigit(*(t + 1))) { unsigned c; c = (FROM_HEX(*t) * 16) + FROM_HEX(*(t + 1)); if (IN_3270) key_Character(c, escaped, True, NULL); #if defined(X3270_ANSI) /*[*/ else *tbuf++ = (unsigned char)c; #endif /*]*/ escaped = False; } else if (!strncmp(t, "\\E", 2) || !strncmp(t, "\\e", 2)) { escaped = True; } t += 2; } #if defined(X3270_ANSI) /*[*/ if (!IN_3270 && nbytes) { net_hexansi_out(xbuf, nbytes); Free(xbuf); } #endif /*]*/ } void ignore_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(ignore_action, event, params, num_params); reset_idle_timer(); } #if defined(X3270_FT) /*[*/ /* * Set up the cursor and input field for command input. * Returns the length of the input field, or 0 if there is no field * to set up. */ int kybd_prime(void) { int baddr; register unsigned char fa; int len = 0; /* * No point in trying if the screen isn't formatted, the keyboard * is locked, or we aren't in 3270 mode. */ if (!formatted || kybdlock || !IN_3270) return 0; fa = get_field_attribute(cursor_addr); if (ea_buf[cursor_addr].fa || FA_IS_PROTECTED(fa)) { /* * The cursor is not in an unprotected field. Find the * next one. */ baddr = next_unprotected(cursor_addr); /* If there isn't any, give up. */ if (!baddr) return 0; /* Move the cursor there. */ } else { /* Already in an unprotected field. Find its start. */ baddr = cursor_addr; while (!ea_buf[baddr].fa) { DEC_BA(baddr); } INC_BA(baddr); } /* Move the cursor to the beginning of the field. */ cursor_move(baddr); /* Erase it. */ while (!ea_buf[baddr].fa) { ctlr_add(baddr, 0, 0); len++; INC_BA(baddr); } /* Return the field length. */ return len; } #endif /*]*/ /* * Translate a keysym name to a keysym, including APL and extended * characters. */ static KeySym MyStringToKeysym(char *s, enum keytype *keytypep, ucs4_t *ucs4) { KeySym k; int consumed; enum me_fail error; /* No UCS-4 yet. */ *ucs4 = 0L; #if defined(X3270_APL) /*[*/ /* Look for my contrived APL symbols. */ if (!strncmp(s, "apl_", 4)) { int is_ge; k = APLStringToKeysym(s, &is_ge); if (is_ge) *keytypep = KT_GE; else *keytypep = KT_STD; return k; } else #endif /*]*/ { /* Look for a standard X11 keysym. */ k = StringToKeysym(s); *keytypep = KT_STD; if (k != NoSymbol) return k; } /* Look for "euro". */ if (!strcasecmp(s, "euro")) { *ucs4 = 0x20ac; return NoSymbol; } /* Look for U+nnnn of 0xXXXX. */ if (!strncasecmp(s, "U+", 2) || !strncasecmp(s, "0x", 2)) { *ucs4 = strtoul(s + 2, NULL, 16); return NoSymbol; } /* Look for a valid local multibyte character. */ *ucs4 = multibyte_to_unicode(s, strlen(s), &consumed, &error); if ((size_t)consumed != strlen(s)) *ucs4 = 0; return NoSymbol; } #if defined(X3270_DISPLAY) /*[*/ /* * X-dependent code starts here. */ /* * Translate a keymap (from an XQueryKeymap or a KeymapNotify event) into * a bitmap of Shift, Meta or Alt keys pressed. */ #define key_is_down(kc, bitmap) (kc && ((bitmap)[(kc)/8] & (1<<((kc)%8)))) int state_from_keymap(char keymap[32]) { static Boolean initted = False; static KeyCode kc_Shift_L, kc_Shift_R; static KeyCode kc_Meta_L, kc_Meta_R; static KeyCode kc_Alt_L, kc_Alt_R; int pseudo_state = 0; if (!initted) { kc_Shift_L = XKeysymToKeycode(display, XK_Shift_L); kc_Shift_R = XKeysymToKeycode(display, XK_Shift_R); kc_Meta_L = XKeysymToKeycode(display, XK_Meta_L); kc_Meta_R = XKeysymToKeycode(display, XK_Meta_R); kc_Alt_L = XKeysymToKeycode(display, XK_Alt_L); kc_Alt_R = XKeysymToKeycode(display, XK_Alt_R); initted = True; } if (key_is_down(kc_Shift_L, keymap) || key_is_down(kc_Shift_R, keymap)) pseudo_state |= ShiftKeyDown; if (key_is_down(kc_Meta_L, keymap) || key_is_down(kc_Meta_R, keymap)) pseudo_state |= MetaKeyDown; if (key_is_down(kc_Alt_L, keymap) || key_is_down(kc_Alt_R, keymap)) pseudo_state |= AltKeyDown; return pseudo_state; } #undef key_is_down /* * Process shift keyboard events. The code has to look for the raw Shift keys, * rather than using the handy "state" field in the event structure. This is * because the event state is the state _before_ the key was pressed or * released. This isn't enough information to distinguish between "left * shift released" and "left shift released, right shift still held down" * events, for example. * * This function is also called as part of Focus event processing. */ void PA_Shift_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { char keys[32]; #if defined(INTERNAL_ACTION_DEBUG) /*[*/ action_debug(PA_Shift_action, event, params, num_params); #endif /*]*/ XQueryKeymap(display, keys); shift_event(state_from_keymap(keys)); } #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ static Boolean build_composites(void) { char *c, *c0, *c1; char *ln; char ksname[3][64]; char junk[2]; KeySym k[3]; enum keytype a[3]; int i; struct composite *cp; if (appres.compose_map == CN) { popup_an_error("%s: No %s defined", action_name(Compose_action), ResComposeMap); return False; } c0 = get_fresource("%s.%s", ResComposeMap, appres.compose_map); if (c0 == CN) { popup_an_error("%s: Cannot find %s \"%s\"", action_name(Compose_action), ResComposeMap, appres.compose_map); return False; } c1 = c = NewString(c0); /* will be modified by strtok */ while ((ln = strtok(c, "\n"))) { Boolean okay = True; c = NULL; if (sscanf(ln, " %63[^+ \t] + %63[^= \t] =%63s%1s", ksname[0], ksname[1], ksname[2], junk) != 3) { popup_an_error("%s: Invalid syntax: %s", action_name(Compose_action), ln); continue; } for (i = 0; i < 3; i++) { ucs4_t ucs4; k[i] = MyStringToKeysym(ksname[i], &a[i], &ucs4); if (k[i] == NoSymbol) { /* For now, ignore UCS4. XXX: Fix this. */ popup_an_error("%s: Invalid KeySym: \"%s\"", action_name(Compose_action), ksname[i]); okay = False; break; } } if (!okay) continue; composites = (struct composite *) Realloc((char *)composites, (n_composites + 1) * sizeof(struct composite)); cp = composites + n_composites; cp->k1.keysym = k[0]; cp->k1.keytype = a[0]; cp->k2.keysym = k[1]; cp->k2.keytype = a[1]; cp->translation.keysym = k[2]; cp->translation.keytype = a[2]; n_composites++; } Free(c1); return True; } /* * Called by the toolkit when the "Compose" key is pressed. "Compose" is * implemented by pressing and releasing three keys: "Compose" and two * data keys. For example, "Compose" "s" "s" gives the German "ssharp" * character, and "Compose" "C", "," gives a capital "C" with a cedilla * (symbol Ccedilla). * * The mechanism breaks down a little when the user presses "Compose" and * then a non-data key. Oh well. */ void Compose_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(Compose_action, event, params, num_params); if (check_usage(Compose_action, *num_params, 0, 0) < 0) return; reset_idle_timer(); if (!composites && !build_composites()) return; if (composing == NONE) { composing = COMPOSE; status_compose(True, 0, KT_STD); } } #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ /* * Called by the toolkit for any key without special actions. */ void Default_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { XKeyEvent *kevent = (XKeyEvent *)event; char buf[32]; KeySym ks; int ll; action_debug(Default_action, event, params, num_params); if (check_usage(Default_action, *num_params, 0, 0) < 0) return; switch (event->type) { case KeyPress: #if defined(X3270_DBCS) /*[*/ if (!xim_lookup((XKeyEvent *)event)) return; #endif /*]*/ ll = XLookupString(kevent, buf, 32, &ks, (XComposeStatus *) 0); buf[ll] = '\0'; if (ll > 1) { key_ACharacter(buf, KT_STD, IA_DEFAULT, NULL); return; } if (ll == 1) { /* Remap certain control characters. */ if (!IN_ANSI) switch (buf[0]) { case '\t': action_internal(Tab_action, IA_DEFAULT, CN, CN); break; case '\177': action_internal(Delete_action, IA_DEFAULT, CN, CN); break; case '\b': action_internal(Erase_action, IA_DEFAULT, CN, CN); break; case '\r': action_internal(Enter_action, IA_DEFAULT, CN, CN); break; case '\n': action_internal(Newline_action, IA_DEFAULT, CN, CN); break; default: key_ACharacter(buf, KT_STD, IA_DEFAULT, NULL); break; } else { key_ACharacter(buf, KT_STD, IA_DEFAULT, NULL); } return; } /* Pick some other reasonable defaults. */ switch (ks) { case XK_Up: action_internal(Up_action, IA_DEFAULT, CN, CN); break; case XK_Down: action_internal(Down_action, IA_DEFAULT, CN, CN); break; case XK_Left: action_internal(Left_action, IA_DEFAULT, CN, CN); break; case XK_Right: action_internal(Right_action, IA_DEFAULT, CN, CN); break; case XK_Insert: #if defined(XK_KP_Insert) /*[*/ case XK_KP_Insert: #endif /*]*/ action_internal(Insert_action, IA_DEFAULT, CN, CN); break; case XK_Delete: action_internal(Delete_action, IA_DEFAULT, CN, CN); break; case XK_Home: action_internal(Home_action, IA_DEFAULT, CN, CN); break; case XK_Tab: action_internal(Tab_action, IA_DEFAULT, CN, CN); break; #if defined(XK_ISO_Left_Tab) /*[*/ case XK_ISO_Left_Tab: action_internal(BackTab_action, IA_DEFAULT, CN, CN); break; #endif /*]*/ case XK_Clear: action_internal(Clear_action, IA_DEFAULT, CN, CN); break; case XK_Sys_Req: action_internal(SysReq_action, IA_DEFAULT, CN, CN); break; #if defined(XK_EuroSign) /*[*/ case XK_EuroSign: action_internal(Key_action, IA_DEFAULT, "currency", CN); break; #endif /*]*/ #if defined(XK_3270_Duplicate) /*[*/ /* Funky 3270 keysyms. */ case XK_3270_Duplicate: action_internal(Dup_action, IA_DEFAULT, CN, CN); break; case XK_3270_FieldMark: action_internal(FieldMark_action, IA_DEFAULT, CN, CN); break; case XK_3270_Right2: action_internal(Right2_action, IA_DEFAULT, CN, CN); break; case XK_3270_Left2: action_internal(Left2_action, IA_DEFAULT, CN, CN); break; case XK_3270_BackTab: action_internal(BackTab_action, IA_DEFAULT, CN, CN); break; case XK_3270_EraseEOF: action_internal(EraseEOF_action, IA_DEFAULT, CN, CN); break; case XK_3270_EraseInput: action_internal(EraseInput_action, IA_DEFAULT, CN, CN); break; case XK_3270_Reset: action_internal(Reset_action, IA_DEFAULT, CN, CN); break; case XK_3270_PA1: action_internal(PA_action, IA_DEFAULT, "1", CN); break; case XK_3270_PA2: action_internal(PA_action, IA_DEFAULT, "2", CN); break; case XK_3270_PA3: action_internal(PA_action, IA_DEFAULT, "3", CN); break; case XK_3270_Attn: action_internal(Attn_action, IA_DEFAULT, CN, CN); break; case XK_3270_AltCursor: action_internal(AltCursor_action, IA_DEFAULT, CN, CN); break; case XK_3270_CursorSelect: action_internal(CursorSelect_action, IA_DEFAULT, CN, CN); break; case XK_3270_Enter: action_internal(Enter_action, IA_DEFAULT, CN, CN); break; #endif /*]*/ #if defined(X3270_APL) /*[*/ /* Funky APL keysyms. */ case XK_downcaret: action_internal(Key_action, IA_DEFAULT, "apl_downcaret", CN); break; case XK_upcaret: action_internal(Key_action, IA_DEFAULT, "apl_upcaret", CN); break; case XK_overbar: action_internal(Key_action, IA_DEFAULT, "apl_overbar", CN); break; case XK_downtack: action_internal(Key_action, IA_DEFAULT, "apl_downtack", CN); break; case XK_upshoe: action_internal(Key_action, IA_DEFAULT, "apl_upshoe", CN); break; case XK_downstile: action_internal(Key_action, IA_DEFAULT, "apl_downstile", CN); break; case XK_underbar: action_internal(Key_action, IA_DEFAULT, "apl_underbar", CN); break; case XK_jot: action_internal(Key_action, IA_DEFAULT, "apl_jot", CN); break; case XK_quad: action_internal(Key_action, IA_DEFAULT, "apl_quad", CN); break; case XK_uptack: action_internal(Key_action, IA_DEFAULT, "apl_uptack", CN); break; case XK_circle: action_internal(Key_action, IA_DEFAULT, "apl_circle", CN); break; case XK_upstile: action_internal(Key_action, IA_DEFAULT, "apl_upstile", CN); break; case XK_downshoe: action_internal(Key_action, IA_DEFAULT, "apl_downshoe", CN); break; case XK_rightshoe: action_internal(Key_action, IA_DEFAULT, "apl_rightshoe", CN); break; case XK_leftshoe: action_internal(Key_action, IA_DEFAULT, "apl_leftshoe", CN); break; case XK_lefttack: action_internal(Key_action, IA_DEFAULT, "apl_lefttack", CN); break; case XK_righttack: action_internal(Key_action, IA_DEFAULT, "apl_righttack", CN); break; #endif /*]*/ default: if (ks >= XK_F1 && ks <= XK_F24) { (void) sprintf(buf, "%ld", ks - XK_F1 + 1); action_internal(PF_action, IA_DEFAULT, buf, CN); } else { ucs4_t ucs4; ucs4 = keysym2ucs(ks); if (ucs4 != (ucs4_t)-1) { key_UCharacter(ucs4, KT_STD, IA_KEY, NULL); } else { trace_event( " %s: dropped (unknown keysym)\n", action_name(Default_action)); } } break; } break; case ButtonPress: case ButtonRelease: trace_event(" %s: dropped (no action configured)\n", action_name(Default_action)); break; default: trace_event(" %s: dropped (unknown event type)\n", action_name(Default_action)); break; } } /* * Set or clear a temporary keymap. * * TemporaryKeymap(x) toggle keymap "x" (add "x" to the keymap, or if * "x" was already added, remove it) * TemporaryKeymap() removes the previous keymap, if any * TemporaryKeymap(None) removes the previous keymap, if any */ void TemporaryKeymap_action(Widget w _is_unused, XEvent *event, String *params, Cardinal *num_params) { action_debug(TemporaryKeymap_action, event, params, num_params); reset_idle_timer(); if (check_usage(TemporaryKeymap_action, *num_params, 0, 1) < 0) return; if (*num_params == 0 || !strcmp(params[0], "None")) { (void) temporary_keymap(CN); return; } if (temporary_keymap(params[0]) < 0) { popup_an_error("%s: Can't find %s %s", action_name(TemporaryKeymap_action), ResKeymap, params[0]); cancel_if_idle_command(); } } #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/telnet.c0000644000175000017500000023661011254565704015603 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, * GA 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell, Jeff Sparkes, GTRC * nor their contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES AND * GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, * DON RUSSELL, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * telnet.c * This module initializes and manages a telnet socket to * the given IBM host. */ #include "globals.h" #if defined(_WIN32) /*[*/ #include #include #else /*][*/ #include #include #include #endif /*]*/ #define TELCMDS 1 #define TELOPTS 1 #include "arpa_telnet.h" #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #include #if !defined(_WIN32) /*[*/ #include #endif /*]*/ #include #if defined(HAVE_LIBSSL) /*[*/ #include #include #endif /*]*/ #include "tn3270e.h" #include "3270ds.h" #include "appres.h" #include "ansic.h" #include "ctlrc.h" #include "hostc.h" #include "kybdc.h" #include "macrosc.h" #include "popupsc.h" #include "proxyc.h" #include "resolverc.h" #include "statusc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include "w3miscc.h" #include "xioc.h" #if !defined(TELOPT_NAWS) /*[*/ #define TELOPT_NAWS 31 #endif /*]*/ #if !defined(TELOPT_STARTTLS) /*[*/ #define TELOPT_STARTTLS 46 #endif /*]*/ #define TLS_FOLLOWS 1 #define BUFSZ 16384 #define TRACELINE 72 #define N_OPTS 256 /* Globals */ char *hostname = CN; time_t ns_time; int ns_brcvd; int ns_rrcvd; int ns_bsent; int ns_rsent; unsigned char *obuf; /* 3270 output buffer */ unsigned char *obptr = (unsigned char *) NULL; int linemode = 1; #if defined(LOCAL_PROCESS) /*[*/ Boolean local_process = False; #endif /*]*/ char *termtype; /* Externals */ extern struct timeval ds_ts; /* Statics */ static int sock = -1; /* active socket */ #if defined(_WIN32) /*[*/ static HANDLE sock_handle = NULL; #endif /*]*/ static unsigned char myopts[N_OPTS], hisopts[N_OPTS]; /* telnet option flags */ static unsigned char *ibuf = (unsigned char *) NULL; /* 3270 input buffer */ static unsigned char *ibptr; static int ibuf_size = 0; /* size of ibuf */ static unsigned char *obuf_base = (unsigned char *)NULL; static int obuf_size = 0; static unsigned char *netrbuf = (unsigned char *)NULL; /* network input buffer */ static unsigned char *sbbuf = (unsigned char *)NULL; /* telnet sub-option buffer */ static unsigned char *sbptr; static unsigned char telnet_state; static int syncing; #if !defined(_WIN32) /*[*/ static unsigned long output_id = 0L; #endif /*]*/ static char ttype_tmpval[13]; #if defined(X3270_TN3270E) /*[*/ static unsigned long e_funcs; /* negotiated TN3270E functions */ #define E_OPT(n) (1 << (n)) static unsigned short e_xmit_seq; /* transmit sequence number */ static int response_required; #endif /*]*/ #if defined(X3270_ANSI) /*[*/ static int ansi_data = 0; static unsigned char *lbuf = (unsigned char *)NULL; /* line-mode input buffer */ static unsigned char *lbptr; static int lnext = 0; static int backslashed = 0; static int t_valid = 0; static char vintr; static char vquit; static char verase; static char vkill; static char veof; static char vwerase; static char vrprnt; static char vlnext; #endif /*]*/ static int tn3270e_negotiated = 0; static enum { E_NONE, E_3270, E_NVT, E_SSCP } tn3270e_submode = E_NONE; static int tn3270e_bound = 0; static unsigned char *bind_image = NULL; static int bind_image_len = 0; static char *plu_name = NULL; static int maxru_sec = 0; static int maxru_pri = 0; static int bind_rd = 0; static int bind_cd = 0; static int bind_ra = 0; static int bind_ca = 0; static char **lus = (char **)NULL; static char **curr_lu = (char **)NULL; static char *try_lu = CN; static int proxy_type = 0; static char *proxy_host = CN; static char *proxy_portname = CN; static unsigned short proxy_port = 0; static int telnet_fsm(unsigned char c); static void net_rawout(unsigned const char *buf, int len); static void check_in3270(void); static void store3270in(unsigned char c); static void check_linemode(Boolean init); static int non_blocking(Boolean on); static void net_connected(void); #if defined(X3270_TN3270E) /*[*/ static int tn3270e_negotiate(void); #endif /*]*/ static int process_eor(void); #if defined(X3270_TN3270E) /*[*/ #if defined(X3270_TRACE) /*[*/ static const char *tn3270e_function_names(const unsigned char *, int); #endif /*]*/ static void tn3270e_subneg_send(unsigned char, unsigned long); static unsigned long tn3270e_fdecode(const unsigned char *, int); static void tn3270e_ack(void); static void tn3270e_nak(enum pds); #endif /*]*/ #if defined(X3270_ANSI) /*[*/ static void do_data(char c); static void do_intr(char c); static void do_quit(char c); static void do_cerase(char c); static void do_werase(char c); static void do_kill(char c); static void do_rprnt(char c); static void do_eof(char c); static void do_eol(char c); static void do_lnext(char c); static char parse_ctlchar(char *s); static void cooked_init(void); #endif /*]*/ #if defined(X3270_TRACE) /*[*/ static const char *cmd(int c); static const char *opt(unsigned char c); static const char *nnn(int c); #else /*][*/ #if defined(__GNUC__) /*[*/ #else /*][*/ #endif /*]*/ #define cmd(x) 0 #define opt(x) 0 #define nnn(x) 0 #endif /*]*/ /* telnet states */ #define TNS_DATA 0 /* receiving data */ #define TNS_IAC 1 /* got an IAC */ #define TNS_WILL 2 /* got an IAC WILL */ #define TNS_WONT 3 /* got an IAC WONT */ #define TNS_DO 4 /* got an IAC DO */ #define TNS_DONT 5 /* got an IAC DONT */ #define TNS_SB 6 /* got an IAC SB */ #define TNS_SB_IAC 7 /* got an IAC after an IAC SB */ /* telnet predefined messages */ static unsigned char do_opt[] = { IAC, DO, '_' }; static unsigned char dont_opt[] = { IAC, DONT, '_' }; static unsigned char will_opt[] = { IAC, WILL, '_' }; static unsigned char wont_opt[] = { IAC, WONT, '_' }; #if defined(X3270_TN3270E) /*[*/ static unsigned char functions_req[] = { IAC, SB, TELOPT_TN3270E, TN3270E_OP_FUNCTIONS }; #endif /*]*/ #if defined(X3270_TRACE) /*[*/ static const char *telquals[2] = { "IS", "SEND" }; #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ #if defined(X3270_TRACE) /*[*/ static const char *reason_code[8] = { "CONN-PARTNER", "DEVICE-IN-USE", "INV-ASSOCIATE", "INV-NAME", "INV-DEVICE-TYPE", "TYPE-NAME-ERROR", "UNKNOWN-ERROR", "UNSUPPORTED-REQ" }; #define rsn(n) (((n) <= TN3270E_REASON_UNSUPPORTED_REQ) ? \ reason_code[(n)] : "??") #endif /*]*/ static const char *function_name[5] = { "BIND-IMAGE", "DATA-STREAM-CTL", "RESPONSES", "SCS-CTL-CODES", "SYSREQ" }; #define fnn(n) (((n) <= TN3270E_FUNC_SYSREQ) ? \ function_name[(n)] : "??") #if defined(X3270_TRACE) /*[*/ static const char *data_type[9] = { "3270-DATA", "SCS-DATA", "RESPONSE", "BIND-IMAGE", "UNBIND", "NVT-DATA", "REQUEST", "SSCP-LU-DATA", "PRINT-EOJ" }; #define e_dt(n) (((n) <= TN3270E_DT_PRINT_EOJ) ? \ data_type[(n)] : "??") static const char *req_flag[1] = { " ERR-COND-CLEARED" }; #define e_rq(fn, n) (((fn) == TN3270E_DT_REQUEST) ? \ (((n) <= TN3270E_RQF_ERR_COND_CLEARED) ? \ req_flag[(n)] : " ??") : "") static const char *hrsp_flag[3] = { "NO-RESPONSE", "ERROR-RESPONSE", "ALWAYS-RESPONSE" }; #define e_hrsp(n) (((n) <= TN3270E_RSF_ALWAYS_RESPONSE) ? \ hrsp_flag[(n)] : "??") static const char *trsp_flag[2] = { "POSITIVE-RESPONSE", "NEGATIVE-RESPONSE" }; #define e_trsp(n) (((n) <= TN3270E_RSF_NEGATIVE_RESPONSE) ? \ trsp_flag[(n)] : "??") #define e_rsp(fn, n) (((fn) == TN3270E_DT_RESPONSE) ? e_trsp(n) : e_hrsp(n)) #endif /*]*/ #endif /*]*/ #if defined(C3270) && defined(C3270_80_132) /*[*/ #define XMIT_ROWS ((appres.altscreen != CN)? MODEL_2_ROWS: maxROWS) #define XMIT_COLS ((appres.altscreen != CN)? MODEL_2_COLS: maxCOLS) #else /*][*/ #define XMIT_ROWS maxROWS #define XMIT_COLS maxCOLS #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ Boolean secure_connection = False; static SSL_CTX *ssl_ctx; static SSL *ssl_con; static Boolean need_tls_follows = False; static void ssl_init(void); #if OPENSSL_VERSION_NUMBER >= 0x00907000L /*[*/ #define INFO_CONST const #else /*][*/ #define INFO_CONST #endif /*]*/ static void client_info_callback(INFO_CONST SSL *s, int where, int ret); static void continue_tls(unsigned char *sbbuf, int len); #endif /*]*/ #if !defined(_WIN32) /*[*/ static void output_possible(void); #endif /*]*/ #if defined(_WIN32) /*[*/ #define socket_errno() WSAGetLastError() #define SE_EWOULDBLOCK WSAEWOULDBLOCK #define SE_ECONNRESET WSAECONNRESET #define SE_EINTR WSAEINTR #define SE_EAGAIN WSAEINPROGRESS #define SE_EPIPE WSAECONNABORTED #define SE_EINPROGRESS WSAEINPROGRESS #define SOCK_CLOSE(s) closesocket(s) #define SOCK_IOCTL(s, f, v) ioctlsocket(s, f, (DWORD *)v) #else /*][*/ #define socket_errno() errno #define SE_EWOULDBLOCK EWOULDBLOCK #define SE_ECONNRESET ECONNRESET #define SE_EINTR EINTR #define SE_EAGAIN EAGAIN #define SE_EPIPE EPIPE #if defined(EINPROGRESS) /*[*/ #define SE_EINPROGRESS EINPROGRESS #endif /*]*/ #define SOCK_CLOSE(s) close(s) #define SOCK_IOCTL ioctl #endif /*]*/ #define NUM_HA 4 static union { struct sockaddr sa; struct sockaddr_in sin; #if defined(AF_INET6) /*[*/ struct sockaddr_in6 sin6; #endif /*]*/ } haddr[4]; static socklen_t ha_len[NUM_HA] = { sizeof(haddr[0]), sizeof(haddr[0]), sizeof(haddr[0]), sizeof(haddr[0]) }; static int num_ha = 0; static int ha_ix = 0; #if defined(_WIN32) /*[*/ void popup_a_sockerr(char *fmt, ...) { va_list args; char buffer[4096]; va_start(args, fmt); vsprintf(buffer, fmt, args); va_end(args); popup_an_error("%s: %s", buffer, win32_strerror(socket_errno())); } #else /*][*/ void popup_a_sockerr(char *fmt, ...) { va_list args; char buffer[4096]; va_start(args, fmt); vsprintf(buffer, fmt, args); va_end(args); popup_an_errno(errno, "%s", buffer); } #endif /*]*/ /* Connect to one of the addresses in haddr[]. */ static int connect_to(int ix, Boolean noisy, Boolean *pending) { int on = 1; char hn[256]; char pn[256]; char errmsg[1024]; #if defined(OMTU) /*[*/ int mtu = OMTU; #endif /*]*/ # define close_fail { (void) SOCK_CLOSE(sock); sock = -1; return -1; } /* create the socket */ if ((sock = socket(haddr[ix].sa.sa_family, SOCK_STREAM, 0)) == -1) { popup_a_sockerr("socket"); return -1; } /* set options for inline out-of-band data and keepalives */ if (setsockopt(sock, SOL_SOCKET, SO_OOBINLINE, (char *)&on, sizeof(on)) < 0) { popup_a_sockerr("setsockopt(SO_OOBINLINE)"); close_fail; } if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (char *)&on, sizeof(on)) < 0) { popup_a_sockerr("setsockopt(SO_KEEPALIVE)"); close_fail; } #if defined(OMTU) /*[*/ if (setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (char *)&mtu, sizeof(mtu)) < 0) { popup_a_sockerr("setsockopt(SO_SNDBUF)"); close_fail; } #endif /*]*/ /* set the socket to be non-delaying */ #if defined(_WIN32) /*[*/ if (non_blocking(False) < 0) #else /*][*/ if (non_blocking(True) < 0) #endif /*]*/ close_fail; #if !defined(_WIN32) /*[*/ /* don't share the socket with our children */ (void) fcntl(sock, F_SETFD, 1); #endif /*]*/ /* init ssl */ #if defined(HAVE_LIBSSL) /*[*/ if (ssl_host) ssl_init(); #endif /*]*/ if (numeric_host_and_port(&haddr[ix].sa, ha_len[ix], hn, sizeof(hn), pn, sizeof(pn), errmsg, sizeof(errmsg)) == 0) { trace_dsn("Trying %s, port %s...\n", hn, pn); #if defined(C3270) /*[*/ printf("Trying %s, port %s...\n", hn, pn); fflush(stdout); #endif /*]*/ } /* connect */ if (connect(sock, &haddr[ix].sa, ha_len[ix]) == -1) { if (socket_errno() == SE_EWOULDBLOCK #if defined(SE_EINPROGRESS) /*[*/ || socket_errno() == SE_EINPROGRESS #endif /*]*/ ) { trace_dsn("Connection pending.\n"); *pending = True; #if !defined(_WIN32) /*[*/ output_id = AddOutput(sock, output_possible); #endif /*]*/ } else { if (noisy) popup_a_sockerr("Connect to %s, port %d", hostname, current_port); close_fail; } } else { if (non_blocking(False) < 0) close_fail; net_connected(); } /* all done */ #if defined(_WIN32) /*[*/ if (sock_handle == NULL) { char ename[256]; sprintf(ename, "wc3270-%d", getpid()); sock_handle = CreateEvent(NULL, TRUE, FALSE, ename); if (sock_handle == NULL) { fprintf(stderr, "Cannot create socket handle: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } } if (WSAEventSelect(sock, sock_handle, FD_READ | FD_CONNECT | FD_CLOSE) != 0) { fprintf(stderr, "WSAEventSelect failed: %s\n", win32_strerror(GetLastError())); x3270_exit(1); } return (int)sock_handle; #else /*][*/ return sock; #endif /*]*/ } /* * net_connect * Establish a telnet socket to the given host passed as an argument. * Called only once and is responsible for setting up the telnet * variables. Returns the file descriptor of the connected socket. */ int net_connect(const char *host, char *portname, Boolean ls, Boolean *resolving, Boolean *pending) { struct servent *sp; struct hostent *hp; char passthru_haddr[8]; int passthru_len = 0; unsigned short passthru_port = 0; char errmsg[1024]; int s; if (netrbuf == (unsigned char *)NULL) netrbuf = (unsigned char *)Malloc(BUFSZ); #if defined(X3270_ANSI) /*[*/ if (!t_valid) { vintr = parse_ctlchar(appres.intr); vquit = parse_ctlchar(appres.quit); verase = parse_ctlchar(appres.erase); vkill = parse_ctlchar(appres.kill); veof = parse_ctlchar(appres.eof); vwerase = parse_ctlchar(appres.werase); vrprnt = parse_ctlchar(appres.rprnt); vlnext = parse_ctlchar(appres.lnext); t_valid = 1; } #endif /*]*/ *resolving = False; *pending = False; Replace(hostname, NewString(host)); /* set up temporary termtype */ if (appres.termname == CN) { if (std_ds_host) { (void) sprintf(ttype_tmpval, "IBM-327%c-%d", appres.m3279 ? '9' : '8', model_num); termtype = ttype_tmpval; } else { termtype = full_model_name; } } /* get the passthru host and port number */ if (passthru_host) { const char *hn; hn = getenv("INTERNET_HOST"); if (hn == CN) hn = "internet-gateway"; hp = gethostbyname(hn); if (hp == (struct hostent *) 0) { popup_an_error("Unknown passthru host: %s", hn); return -1; } (void) memmove(passthru_haddr, hp->h_addr, hp->h_length); passthru_len = hp->h_length; sp = getservbyname("telnet-passthru","tcp"); if (sp != (struct servent *)NULL) passthru_port = sp->s_port; else passthru_port = htons(3514); } else if (appres.proxy != CN && !proxy_type) { proxy_type = proxy_setup(&proxy_host, &proxy_portname); if (proxy_type > 0) { unsigned long lport; char *ptr; struct servent *sp; lport = strtoul(portname, &ptr, 0); if (ptr == portname || *ptr != '\0' || lport == 0L || lport & ~0xffff) { if (!(sp = getservbyname(portname, "tcp"))) { popup_an_error("Unknown port number " "or service: %s", portname); return -1; } current_port = ntohs(sp->s_port); } else current_port = (unsigned short)lport; } if (proxy_type < 0) return -1; } /* fill in the socket address of the given host */ (void) memset((char *) &haddr, 0, sizeof(haddr)); if (passthru_host) { /* * XXX: We don't try multiple addresses for the passthru * host. */ haddr[0].sin.sin_family = AF_INET; (void) memmove(&haddr[0].sin.sin_addr, passthru_haddr, passthru_len); haddr[0].sin.sin_port = passthru_port; ha_len[0] = sizeof(struct sockaddr_in); num_ha = 1; ha_ix = 0; } else if (proxy_type > 0) { /* * XXX: We don't try multiple addresses for a proxy * host. */ if (resolve_host_and_port(proxy_host, proxy_portname, 0, &proxy_port, &haddr[0].sa, &ha_len[0], errmsg, sizeof(errmsg), NULL) < 0) { popup_an_error("%s", errmsg); return -1; } num_ha = 1; ha_ix = 0; } else { #if defined(LOCAL_PROCESS) /*[*/ if (ls) { local_process = True; } else { #endif /*]*/ int i; int last = False; #if defined(LOCAL_PROCESS) /*[*/ local_process = False; #endif /*]*/ num_ha = 0; for (i = 0; i < NUM_HA && !last; i++) { if (resolve_host_and_port(host, portname, i, ¤t_port, &haddr[i].sa, &ha_len[i], errmsg, sizeof(errmsg), &last) < 0) { popup_an_error("%s", errmsg); return -1; } num_ha++; } ha_ix = 0; #if defined(LOCAL_PROCESS) /*[*/ } #endif /*]*/ } #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { int amaster; struct winsize w; w.ws_row = XMIT_ROWS; w.ws_col = XMIT_COLS; w.ws_xpixel = 0; w.ws_ypixel = 0; switch (forkpty(&amaster, NULL, NULL, &w)) { case -1: /* failed */ popup_an_errno(errno, "forkpty"); close_fail; case 0: /* child */ putenv("TERM=xterm"); if (strchr(host, ' ') != CN) { (void) execlp("/bin/sh", "sh", "-c", host, NULL); } else { char *arg1; arg1 = strrchr(host, '/'); (void) execlp(host, (arg1 == CN) ? host : arg1 + 1, NULL); } perror(host); _exit(1); break; default: /* parent */ sock = amaster; #if !defined(_WIN32) /*[*/ (void) fcntl(sock, F_SETFD, 1); #endif /*]*/ net_connected(); host_in3270(CONNECTED_ANSI); break; } return sock; } #endif /*]*/ /* Try each of the haddrs. */ while (ha_ix < num_ha) { if ((s = connect_to(ha_ix, (ha_ix == num_ha - 1), pending)) >= 0) return s; ha_ix++; } /* Ran out. */ return -1; } #undef close_fail /* Set up the LU list. */ static void setup_lus(void) { char *lu; char *comma; int n_lus = 1; int i; connected_lu = CN; connected_type = CN; if (!luname[0]) { Replace(lus, NULL); curr_lu = (char **)NULL; try_lu = CN; return; } /* * Count the commas in the LU name. That plus one is the * number of LUs to try. */ lu = luname; while ((comma = strchr(lu, ',')) != CN) { n_lus++; lu++; } /* * Allocate enough memory to construct an argv[] array for * the LUs. */ Replace(lus, (char **)Malloc((n_lus+1) * sizeof(char *) + strlen(luname) + 1)); /* Copy each LU into the array. */ lu = (char *)(lus + n_lus + 1); (void) strcpy(lu, luname); i = 0; do { lus[i++] = lu; comma = strchr(lu, ','); if (comma != CN) { *comma = '\0'; lu = comma + 1; } } while (comma != CN); lus[i] = CN; curr_lu = lus; try_lu = *curr_lu; } static void net_connected(void) { if (proxy_type > 0) { /* Negotiate with the proxy. */ trace_dsn("Connected to proxy server %s, port %u.\n", proxy_host, proxy_port); if (proxy_negotiate(proxy_type, sock, hostname, current_port) < 0) { host_disconnect(True); return; } } trace_dsn("Connected to %s, port %u%s.\n", hostname, current_port, ssl_host? " via SSL": ""); #if defined(HAVE_LIBSSL) /*[*/ /* Set up SSL. */ if (ssl_host && !secure_connection) { if (SSL_set_fd(ssl_con, sock) != 1) { trace_dsn("Can't set fd!\n"); } if (SSL_connect(ssl_con) != 1) { /* * No need to trace the error, it was already * displayed. */ host_disconnect(True); return; } secure_connection = True; trace_dsn("TLS/SSL tunneled connection complete. " "Connection is now secure.\n"); /* Tell everyone else again. */ host_connected(); } #endif /*]*/ /* set up telnet options */ (void) memset((char *) myopts, 0, sizeof(myopts)); (void) memset((char *) hisopts, 0, sizeof(hisopts)); #if defined(X3270_TN3270E) /*[*/ e_funcs = E_OPT(TN3270E_FUNC_BIND_IMAGE) | E_OPT(TN3270E_FUNC_RESPONSES) | E_OPT(TN3270E_FUNC_SYSREQ); e_xmit_seq = 0; response_required = TN3270E_RSF_NO_RESPONSE; #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ need_tls_follows = False; #endif /*]*/ telnet_state = TNS_DATA; ibptr = ibuf; /* clear statistics and flags */ (void) time(&ns_time); ns_brcvd = 0; ns_rrcvd = 0; ns_bsent = 0; ns_rsent = 0; syncing = 0; tn3270e_negotiated = 0; tn3270e_submode = E_NONE; tn3270e_bound = 0; setup_lus(); check_linemode(True); /* write out the passthru hostname and port nubmer */ if (passthru_host) { char *buf; buf = Malloc(strlen(hostname) + 32); (void) sprintf(buf, "%s %d\r\n", hostname, current_port); (void) send(sock, buf, strlen(buf), 0); Free(buf); } } /* * connection_complete * The connection appears to be complete (output is possible or input * appeared ready but recv() returned EWOULDBLOCK). Complete the * connection-completion processing. */ static void connection_complete(void) { #if !defined(_WIN32) /*[*/ if (non_blocking(False) < 0) { host_disconnect(True); return; } #endif /*]*/ host_connected(); net_connected(); } #if !defined(_WIN32) /*[*/ /* * output_possible * Output is possible on the socket. Used only when a connection is * pending, to determine that the connection is complete. */ static void output_possible(void) { if (HALF_CONNECTED) { connection_complete(); } if (output_id) { RemoveInput(output_id); output_id = 0L; } } #endif /*]*/ /* * net_disconnect * Shut down the socket. */ void net_disconnect(void) { #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { SSL_shutdown(ssl_con); SSL_free(ssl_con); ssl_con = NULL; } secure_connection = False; #endif /*]*/ if (CONNECTED) (void) shutdown(sock, 2); (void) SOCK_CLOSE(sock); sock = -1; trace_dsn("SENT disconnect\n"); /* We're not connected to an LU any more. */ status_lu(CN); #if !defined(_WIN32) /*[*/ /* We have no more interest in output buffer space. */ if (output_id != 0L) { RemoveInput(output_id); output_id = 0L; } #endif /*]*/ } /* * net_input * Called by the toolkit whenever there is input available on the * socket. Reads the data, processes the special telnet commands * and calls process_ds to process the 3270 data stream. */ void net_input(void) { register unsigned char *cp; int nr; #if defined(HAVE_LIBSSL) /*[*/ Boolean ignore_ssl = False; #endif /*]*/ #if defined(_WIN32) /*[*/ for (;;) #endif /*]*/ { if (sock < 0) return; #if defined(_WIN32) /*[*/ if (HALF_CONNECTED) { if (connect(sock, &haddr[ha_ix].sa, sizeof(haddr[0])) < 0) { int err = GetLastError(); switch (err) { case WSAEISCONN: connection_complete(); /* and go get data...? */ break; case WSAEALREADY: case WSAEWOULDBLOCK: case WSAEINVAL: return; default: fprintf(stderr, "second connect() failed: %s\n", win32_strerror(err)); x3270_exit(1); } } } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ ansi_data = 0; #endif /*]*/ #if defined(_WIN32) /*[*/ (void) ResetEvent(sock_handle); #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { /* * OpenSSL does not like getting refused connections * when it hasn't done any I/O yet. So peek ahead to * see if it's worth getting it involved at all. */ if (HALF_CONNECTED && (nr = recv(sock, (char *) netrbuf, 1, MSG_PEEK)) <= 0) ignore_ssl = True; else nr = SSL_read(ssl_con, (char *) netrbuf, BUFSZ); } else #else /*][*/ #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ if (local_process) nr = read(sock, (char *) netrbuf, BUFSZ); else #endif /*]*/ nr = recv(sock, (char *) netrbuf, BUFSZ, 0); if (nr < 0) { if (socket_errno() == SE_EWOULDBLOCK) { return; } #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL && !ignore_ssl) { unsigned long e; char err_buf[120]; e = ERR_get_error(); if (e != 0) (void) ERR_error_string(e, err_buf); else strcpy(err_buf, "unknown error"); trace_dsn("RCVD SSL_read error %ld (%s)\n", e, err_buf); popup_an_error("SSL_read:\n%s", err_buf); host_disconnect(True); return; } #endif /*]*/ if (HALF_CONNECTED && socket_errno() == SE_EAGAIN) { connection_complete(); return; } #if defined(LOCAL_PROCESS) /*[*/ if (errno == EIO && local_process) { trace_dsn("RCVD local process disconnect\n"); host_disconnect(False); return; } #endif /*]*/ trace_dsn("RCVD socket error %d (%s)\n", socket_errno(), #if !defined(_WIN32) /*[*/ strerror(errno) #else /*][*/ win32_strerror(GetLastError()) #endif /*]*/ ); if (HALF_CONNECTED) { if (ha_ix == num_ha - 1) { popup_a_sockerr("Connect to %s, " "port %d", hostname, current_port); } else { Boolean dummy; int s; net_disconnect(); #if defined(HAVE_LIBSSL) /*[*/ if (ssl_host) ssl_init(); #endif /*]*/ while (++ha_ix < num_ha) { s = connect_to(ha_ix, (ha_ix == num_ha - 1), &dummy); if (s >= 0) { host_newfd(s); return; } } } } else if (socket_errno() != SE_ECONNRESET) { popup_a_sockerr("Socket read"); } host_disconnect(True); return; } else if (nr == 0) { /* Host disconnected. */ trace_dsn("RCVD disconnect\n"); host_disconnect(False); return; } /* Process the data. */ if (HALF_CONNECTED) { if (non_blocking(False) < 0) { host_disconnect(True); return; } host_connected(); net_connected(); } #if defined(X3270_TRACE) /*[*/ trace_netdata('<', netrbuf, nr); #endif /*]*/ ns_brcvd += nr; for (cp = netrbuf; cp < (netrbuf + nr); cp++) { #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { /* More to do here, probably. */ if (IN_NEITHER) { /* now can assume ANSI mode */ host_in3270(CONNECTED_ANSI); hisopts[TELOPT_ECHO] = 1; check_linemode(False); kybdlock_clr(KL_AWAITING_FIRST, "telnet_fsm"); status_reset(); ps_process(); } ansi_process((unsigned int) *cp); } else { #endif /*]*/ if (telnet_fsm(*cp)) { (void) ctlr_dbcs_postprocess(); host_disconnect(True); return; } #if defined(LOCAL_PROCESS) /*[*/ } #endif /*]*/ } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { (void) ctlr_dbcs_postprocess(); } if (ansi_data) { trace_dsn("\n"); ansi_data = 0; } #endif /*]*/ #if defined(X3270_TRACE) /*[*/ /* See if it's time to roll over the trace file. */ trace_rollover_check(); #endif /*]*/ } } /* * set16 * Put a 16-bit value in a buffer. * Returns the number of bytes required. */ static int set16(char *buf, int n) { char *b0 = buf; n %= 256 * 256; if ((n / 256) == IAC) *(unsigned char *)buf++ = IAC; *buf++ = (n / 256); n %= 256; if (n == IAC) *(unsigned char *)buf++ = IAC; *buf++ = n; return buf - b0; } /* * send_naws * Send a Telnet window size sub-option negotation. */ static void send_naws(void) { char naws_msg[14]; int naws_len = 0; (void) sprintf(naws_msg, "%c%c%c", IAC, SB, TELOPT_NAWS); naws_len += 3; naws_len += set16(naws_msg + naws_len, XMIT_COLS); naws_len += set16(naws_msg + naws_len, XMIT_ROWS); (void) sprintf(naws_msg + naws_len, "%c%c", IAC, SE); naws_len += 2; net_rawout((unsigned char *)naws_msg, naws_len); trace_dsn("SENT %s NAWS %d %d %s\n", cmd(SB), XMIT_COLS, XMIT_ROWS, cmd(SE)); } /* Advance 'try_lu' to the next desired LU name. */ static void next_lu(void) { if (curr_lu != (char **)NULL && (try_lu = *++curr_lu) == CN) curr_lu = (char **)NULL; } /* * telnet_fsm * Telnet finite-state machine. * Returns 0 for okay, -1 for errors. */ static int telnet_fsm(unsigned char c) { #if defined(X3270_ANSI) /*[*/ char *see_chr; int sl; #endif /*]*/ switch (telnet_state) { case TNS_DATA: /* normal data processing */ if (c == IAC) { /* got a telnet command */ telnet_state = TNS_IAC; #if defined(X3270_ANSI) /*[*/ if (ansi_data) { trace_dsn("\n"); ansi_data = 0; } #endif /*]*/ break; } if (IN_NEITHER) { /* now can assume ANSI mode */ #if defined(X3270_ANSI)/*[*/ if (linemode) cooked_init(); #endif /*]*/ host_in3270(CONNECTED_ANSI); kybdlock_clr(KL_AWAITING_FIRST, "telnet_fsm"); status_reset(); ps_process(); } if (IN_ANSI && !IN_E) { #if defined(X3270_ANSI) /*[*/ if (!ansi_data) { trace_dsn("<.. "); ansi_data = 4; } see_chr = ctl_see((int) c); ansi_data += (sl = strlen(see_chr)); if (ansi_data >= TRACELINE) { trace_dsn(" ...\n... "); ansi_data = 4 + sl; } trace_dsn("%s", see_chr); if (!syncing) { if (linemode && appres.onlcr && c == '\n') ansi_process((unsigned int) '\r'); ansi_process((unsigned int) c); sms_store(c); } #endif /*]*/ } else { store3270in(c); } break; case TNS_IAC: /* process a telnet command */ if (c != EOR && c != IAC) { trace_dsn("RCVD %s ", cmd(c)); } switch (c) { case IAC: /* escaped IAC, insert it */ if (IN_ANSI && !IN_E) { #if defined(X3270_ANSI) /*[*/ if (!ansi_data) { trace_dsn("<.. "); ansi_data = 4; } see_chr = ctl_see((int) c); ansi_data += (sl = strlen(see_chr)); if (ansi_data >= TRACELINE) { trace_dsn(" ...\n ..."); ansi_data = 4 + sl; } trace_dsn("%s", see_chr); ansi_process((unsigned int) c); sms_store(c); #endif /*]*/ } else store3270in(c); telnet_state = TNS_DATA; break; case EOR: /* eor, process accumulated input */ if (IN_3270 || (IN_E && tn3270e_negotiated)) { ns_rrcvd++; if (process_eor()) return -1; } else Warning("EOR received when not in 3270 mode, " "ignored."); trace_dsn("RCVD EOR\n"); ibptr = ibuf; telnet_state = TNS_DATA; break; case WILL: telnet_state = TNS_WILL; break; case WONT: telnet_state = TNS_WONT; break; case DO: telnet_state = TNS_DO; break; case DONT: telnet_state = TNS_DONT; break; case SB: telnet_state = TNS_SB; if (sbbuf == (unsigned char *)NULL) sbbuf = (unsigned char *)Malloc(1024); sbptr = sbbuf; break; case DM: trace_dsn("\n"); if (syncing) { syncing = 0; x_except_on(sock); } telnet_state = TNS_DATA; break; case GA: case NOP: trace_dsn("\n"); telnet_state = TNS_DATA; break; default: trace_dsn("???\n"); telnet_state = TNS_DATA; break; } break; case TNS_WILL: /* telnet WILL DO OPTION command */ trace_dsn("%s\n", opt(c)); switch (c) { case TELOPT_SGA: case TELOPT_BINARY: case TELOPT_EOR: case TELOPT_TTYPE: case TELOPT_ECHO: #if defined(X3270_TN3270E) /*[*/ case TELOPT_TN3270E: #endif /*]*/ if (c != TELOPT_TN3270E || !non_tn3270e_host) { if (!hisopts[c]) { hisopts[c] = 1; do_opt[2] = c; net_rawout(do_opt, sizeof(do_opt)); trace_dsn("SENT %s %s\n", cmd(DO), opt(c)); /* * For UTS, volunteer to do EOR when * they do. */ if (c == TELOPT_EOR && !myopts[c]) { myopts[c] = 1; will_opt[2] = c; net_rawout(will_opt, sizeof(will_opt)); trace_dsn("SENT %s %s\n", cmd(WILL), opt(c)); } check_in3270(); check_linemode(False); } break; } default: dont_opt[2] = c; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(c)); break; } telnet_state = TNS_DATA; break; case TNS_WONT: /* telnet WONT DO OPTION command */ trace_dsn("%s\n", opt(c)); if (hisopts[c]) { hisopts[c] = 0; dont_opt[2] = c; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(c)); check_in3270(); check_linemode(False); } telnet_state = TNS_DATA; break; case TNS_DO: /* telnet PLEASE DO OPTION command */ trace_dsn("%s\n", opt(c)); switch (c) { case TELOPT_BINARY: case TELOPT_EOR: case TELOPT_TTYPE: case TELOPT_SGA: case TELOPT_NAWS: case TELOPT_TM: #if defined(X3270_TN3270E) /*[*/ case TELOPT_TN3270E: #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ case TELOPT_STARTTLS: #endif /*]*/ if (c == TELOPT_TN3270E && non_tn3270e_host) goto wont; if (c == TELOPT_TM && !appres.bsd_tm) goto wont; if (!myopts[c]) { if (c != TELOPT_TM) myopts[c] = 1; will_opt[2] = c; net_rawout(will_opt, sizeof(will_opt)); trace_dsn("SENT %s %s\n", cmd(WILL), opt(c)); check_in3270(); check_linemode(False); } if (c == TELOPT_NAWS) send_naws(); #if defined(HAVE_LIBSSL) /*[*/ if (c == TELOPT_STARTTLS) { static unsigned char follows_msg[] = { IAC, SB, TELOPT_STARTTLS, TLS_FOLLOWS, IAC, SE }; /* * Send IAC SB STARTTLS FOLLOWS IAC SE * to announce that what follows is TLS. */ net_rawout(follows_msg, sizeof(follows_msg)); trace_dsn("SENT %s %s FOLLOWS %s\n", cmd(SB), opt(TELOPT_STARTTLS), cmd(SE)); need_tls_follows = True; } #endif /*]*/ break; default: wont: wont_opt[2] = c; net_rawout(wont_opt, sizeof(wont_opt)); trace_dsn("SENT %s %s\n", cmd(WONT), opt(c)); break; } telnet_state = TNS_DATA; break; case TNS_DONT: /* telnet PLEASE DON'T DO OPTION command */ trace_dsn("%s\n", opt(c)); if (myopts[c]) { myopts[c] = 0; wont_opt[2] = c; net_rawout(wont_opt, sizeof(wont_opt)); trace_dsn("SENT %s %s\n", cmd(WONT), opt(c)); check_in3270(); check_linemode(False); } telnet_state = TNS_DATA; break; case TNS_SB: /* telnet sub-option string command */ if (c == IAC) telnet_state = TNS_SB_IAC; else *sbptr++ = c; break; case TNS_SB_IAC: /* telnet sub-option string command */ *sbptr++ = c; if (c == SE) { telnet_state = TNS_DATA; if (sbbuf[0] == TELOPT_TTYPE && sbbuf[1] == TELQUAL_SEND) { int tt_len, tb_len; char *tt_out; trace_dsn("%s %s\n", opt(sbbuf[0]), telquals[sbbuf[1]]); if (lus != (char **)NULL && try_lu == CN) { /* None of the LUs worked. */ popup_an_error("Cannot connect to " "specified LU"); return -1; } tt_len = strlen(termtype); if (try_lu != CN && *try_lu) { tt_len += strlen(try_lu) + 1; connected_lu = try_lu; } else connected_lu = CN; status_lu(connected_lu); tb_len = 4 + tt_len + 2; tt_out = Malloc(tb_len + 1); (void) sprintf(tt_out, "%c%c%c%c%s%s%s%c%c", IAC, SB, TELOPT_TTYPE, TELQUAL_IS, termtype, (try_lu != CN && *try_lu) ? "@" : "", (try_lu != CN && *try_lu) ? try_lu : "", IAC, SE); net_rawout((unsigned char *)tt_out, tb_len); trace_dsn("SENT %s %s %s %.*s %s\n", cmd(SB), opt(TELOPT_TTYPE), telquals[TELQUAL_IS], tt_len, tt_out + 4, cmd(SE)); Free(tt_out); /* Advance to the next LU name. */ next_lu(); } #if defined(X3270_TN3270E) /*[*/ else if (myopts[TELOPT_TN3270E] && sbbuf[0] == TELOPT_TN3270E) { if (tn3270e_negotiate()) return -1; } #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ else if (need_tls_follows && myopts[TELOPT_STARTTLS] && sbbuf[0] == TELOPT_STARTTLS) { continue_tls(sbbuf, sbptr - sbbuf); } #endif /*]*/ } else { telnet_state = TNS_SB; } break; } return 0; } #if defined(X3270_TN3270E) /*[*/ /* Send a TN3270E terminal type request. */ static void tn3270e_request(void) { int tt_len, tb_len; char *tt_out; char *t; tt_len = strlen(termtype); if (try_lu != CN && *try_lu) tt_len += strlen(try_lu) + 1; tb_len = 5 + tt_len + 2; tt_out = Malloc(tb_len + 1); t = tt_out; t += sprintf(tt_out, "%c%c%c%c%c%s", IAC, SB, TELOPT_TN3270E, TN3270E_OP_DEVICE_TYPE, TN3270E_OP_REQUEST, termtype); /* Convert 3279 to 3278, per the RFC. */ if (tt_out[12] == '9') tt_out[12] = '8'; if (try_lu != CN && *try_lu) t += sprintf(t, "%c%s", TN3270E_OP_CONNECT, try_lu); (void) sprintf(t, "%c%c", IAC, SE); net_rawout((unsigned char *)tt_out, tb_len); trace_dsn("SENT %s %s DEVICE-TYPE REQUEST %.*s%s%s " "%s\n", cmd(SB), opt(TELOPT_TN3270E), (int)strlen(termtype), tt_out + 5, (try_lu != CN && *try_lu) ? " CONNECT " : "", (try_lu != CN && *try_lu) ? try_lu : "", cmd(SE)); Free(tt_out); } /* * Back off of TN3270E. */ static void backoff_tn3270e(const char *why) { trace_dsn("Aborting TN3270E: %s\n", why); /* Tell the host 'no'. */ wont_opt[2] = TELOPT_TN3270E; net_rawout(wont_opt, sizeof(wont_opt)); trace_dsn("SENT %s %s\n", cmd(WONT), opt(TELOPT_TN3270E)); /* Restore the LU list; we may need to run it again in TN3270 mode. */ setup_lus(); /* Reset our internal state. */ myopts[TELOPT_TN3270E] = 0; check_in3270(); } /* * Negotiation of TN3270E options. * Returns 0 if okay, -1 if we have to give up altogether. */ static int tn3270e_negotiate(void) { #define LU_MAX 32 static char reported_lu[LU_MAX+1]; static char reported_type[LU_MAX+1]; int sblen; unsigned long e_rcvd; /* Find out how long the subnegotiation buffer is. */ for (sblen = 0; ; sblen++) { if (sbbuf[sblen] == SE) break; } trace_dsn("TN3270E "); switch (sbbuf[1]) { case TN3270E_OP_SEND: if (sbbuf[2] == TN3270E_OP_DEVICE_TYPE) { /* Host wants us to send our device type. */ trace_dsn("SEND DEVICE-TYPE SE\n"); tn3270e_request(); } else { trace_dsn("SEND ??%u SE\n", sbbuf[2]); } break; case TN3270E_OP_DEVICE_TYPE: /* Device type negotiation. */ trace_dsn("DEVICE-TYPE "); switch (sbbuf[2]) { case TN3270E_OP_IS: { int tnlen, snlen; /* Device type success. */ /* Isolate the terminal type and session. */ tnlen = 0; while (sbbuf[3+tnlen] != SE && sbbuf[3+tnlen] != TN3270E_OP_CONNECT) tnlen++; snlen = 0; if (sbbuf[3+tnlen] == TN3270E_OP_CONNECT) { while(sbbuf[3+tnlen+1+snlen] != SE) snlen++; } trace_dsn("IS %.*s CONNECT %.*s SE\n", tnlen, &sbbuf[3], snlen, &sbbuf[3+tnlen+1]); /* Remember the LU. */ if (tnlen) { if (tnlen > LU_MAX) tnlen = LU_MAX; (void)strncpy(reported_type, (char *)&sbbuf[3], tnlen); reported_type[tnlen] = '\0'; connected_type = reported_type; } if (snlen) { if (snlen > LU_MAX) snlen = LU_MAX; (void)strncpy(reported_lu, (char *)&sbbuf[3+tnlen+1], snlen); reported_lu[snlen] = '\0'; connected_lu = reported_lu; status_lu(connected_lu); } /* Tell them what we can do. */ tn3270e_subneg_send(TN3270E_OP_REQUEST, e_funcs); break; } case TN3270E_OP_REJECT: /* Device type failure. */ trace_dsn("REJECT REASON %s SE\n", rsn(sbbuf[4])); if (sbbuf[4] == TN3270E_REASON_INV_DEVICE_TYPE || sbbuf[4] == TN3270E_REASON_UNSUPPORTED_REQ) { backoff_tn3270e("Host rejected device type or " "request type"); break; } next_lu(); if (try_lu != CN) { /* Try the next LU. */ tn3270e_request(); } else if (lus != (char **)NULL) { /* No more LUs to try. Give up. */ backoff_tn3270e("Host rejected resource(s)"); } else { backoff_tn3270e("Device type rejected"); } break; default: trace_dsn("??%u SE\n", sbbuf[2]); break; } break; case TN3270E_OP_FUNCTIONS: /* Functions negotiation. */ trace_dsn("FUNCTIONS "); switch (sbbuf[2]) { case TN3270E_OP_REQUEST: /* Host is telling us what functions they want. */ trace_dsn("REQUEST %s SE\n", tn3270e_function_names(sbbuf+3, sblen-3)); e_rcvd = tn3270e_fdecode(sbbuf+3, sblen-3); if ((e_rcvd == e_funcs) || (e_funcs & ~e_rcvd)) { /* They want what we want, or less. Done. */ e_funcs = e_rcvd; tn3270e_subneg_send(TN3270E_OP_IS, e_funcs); tn3270e_negotiated = 1; trace_dsn("TN3270E option negotiation " "complete.\n"); check_in3270(); } else { /* * They want us to do something we can't. * Request the common subset. */ e_funcs &= e_rcvd; tn3270e_subneg_send(TN3270E_OP_REQUEST, e_funcs); } break; case TN3270E_OP_IS: /* They accept our last request, or a subset thereof. */ trace_dsn("IS %s SE\n", tn3270e_function_names(sbbuf+3, sblen-3)); e_rcvd = tn3270e_fdecode(sbbuf+3, sblen-3); if (e_rcvd != e_funcs) { if (e_funcs & ~e_rcvd) { /* * They've removed something. This is * technically illegal, but we can * live with it. */ e_funcs = e_rcvd; } else { /* * They've added something. Abandon * TN3270E, they're brain dead. */ backoff_tn3270e("Host illegally added " "function(s)"); break; } } tn3270e_negotiated = 1; trace_dsn("TN3270E option negotiation complete.\n"); check_in3270(); break; default: trace_dsn("??%u SE\n", sbbuf[2]); break; } break; default: trace_dsn("??%u SE\n", sbbuf[1]); } /* Good enough for now. */ return 0; } #if defined(X3270_TRACE) /*[*/ /* Expand a string of TN3270E function codes into text. */ static const char * tn3270e_function_names(const unsigned char *buf, int len) { int i; static char text_buf[1024]; char *s = text_buf; if (!len) return("(null)"); for (i = 0; i < len; i++) { s += sprintf(s, "%s%s", (s == text_buf) ? "" : " ", fnn(buf[i])); } return text_buf; } #endif /*]*/ /* Expand the current TN3270E function codes into text. */ const char * tn3270e_current_opts(void) { int i; static char text_buf[1024]; char *s = text_buf; if (!e_funcs || !IN_E) return CN; for (i = 0; i < 32; i++) { if (e_funcs & E_OPT(i)) s += sprintf(s, "%s%s", (s == text_buf) ? "" : " ", fnn(i)); } return text_buf; } /* Transmit a TN3270E FUNCTIONS REQUEST or FUNCTIONS IS message. */ static void tn3270e_subneg_send(unsigned char op, unsigned long funcs) { unsigned char proto_buf[7 + 32]; int proto_len; int i; /* Construct the buffers. */ (void) memcpy(proto_buf, functions_req, 4); proto_buf[4] = op; proto_len = 5; for (i = 0; i < 32; i++) { if (funcs & E_OPT(i)) proto_buf[proto_len++] = i; } /* Complete and send out the protocol message. */ proto_buf[proto_len++] = IAC; proto_buf[proto_len++] = SE; net_rawout(proto_buf, proto_len); /* Complete and send out the trace text. */ trace_dsn("SENT %s %s FUNCTIONS %s %s %s\n", cmd(SB), opt(TELOPT_TN3270E), (op == TN3270E_OP_REQUEST)? "REQUEST": "IS", tn3270e_function_names(proto_buf + 5, proto_len - 7), cmd(SE)); } /* Translate a string of TN3270E functions into a bit-map. */ static unsigned long tn3270e_fdecode(const unsigned char *buf, int len) { unsigned long r = 0L; int i; /* Note that this code silently ignores options >= 32. */ for (i = 0; i < len; i++) { if (buf[i] < 32) r |= E_OPT(buf[i]); } return r; } #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ static int maxru(unsigned char c) { if (!(c & 0x80)) return 0; return ((c >> 4) & 0x0f) * (1 << (c & 0xf)); } static void process_bind(unsigned char *buf, int buflen) { int namelen, i; int dest_ix = 0; /* Save the raw image. */ if (bind_image != NULL) Free(bind_image); bind_image = (unsigned char *)Malloc(buflen); memcpy(bind_image, buf, buflen); bind_image_len = buflen; /* Clean up the derived state. */ if (plu_name == CN) plu_name = Malloc(mb_max_len(BIND_PLU_NAME_MAX)); (void) memset(plu_name, '\0', mb_max_len(BIND_PLU_NAME_MAX)); maxru_sec = 0; maxru_pri = 0; bind_rd = 0; bind_cd = 0; bind_ra = 0; bind_ca = 0; /* Make sure it's a BIND. */ if (buflen < 1 || buf[0] != BIND_RU) { return; } /* Extract the maximum RUs. */ if (buflen > BIND_OFF_MAXRU_SEC) maxru_sec = maxru(buf[BIND_OFF_MAXRU_SEC]); if (buflen > BIND_OFF_MAXRU_PRI) maxru_pri = maxru(buf[BIND_OFF_MAXRU_PRI]); /* Extract the screen size. */ if (buflen > BIND_OFF_SSIZE) { int bind_ss = buf[BIND_OFF_SSIZE]; switch (bind_ss) { case 0x00: case 0x02: bind_rd = MODEL_2_ROWS; bind_cd = MODEL_2_COLS; bind_ra = MODEL_2_ROWS; bind_ca = MODEL_2_COLS; break; case 0x03: bind_rd = MODEL_2_ROWS; bind_cd = MODEL_2_COLS; bind_ra = maxROWS; bind_ca = maxCOLS; break; case 0x7e: bind_rd = buf[BIND_OFF_RD]; bind_cd = buf[BIND_OFF_CD]; bind_ra = buf[BIND_OFF_RD]; bind_ca = buf[BIND_OFF_CD]; break; case 0x7f: bind_rd = buf[BIND_OFF_RD]; bind_cd = buf[BIND_OFF_CD]; bind_ra = buf[BIND_OFF_RA]; bind_ca = buf[BIND_OFF_CA]; break; default: break; } } /* Validate and implement the screen size. */ if (bind_rd > maxROWS || bind_cd > maxCOLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Default Rows-Cols %ux%u > Maximum %ux%u", bind_rd, bind_cd, maxROWS, maxCOLS); } else if (bind_rd < MODEL_2_ROWS || bind_cd < MODEL_2_COLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Default Rows-Cols %ux%u < Minimum %ux%u", bind_rd, bind_cd, MODEL_2_ROWS, MODEL_2_COLS); } else if (bind_ra > maxROWS || bind_ca > maxCOLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Alternate Rows-Cols %ux%u > Maximum %ux%u", bind_ra, bind_ca, maxROWS, maxCOLS); } else if (bind_ra < MODEL_2_ROWS || bind_ca < MODEL_2_COLS) { popup_an_error("Ignoring invalid BIND image screen size " "parameters:\n" " BIND Alternate Rows-Cols %ux%u < Minimum %ux%u", bind_ra, bind_ca, MODEL_2_ROWS, MODEL_2_COLS); } else { defROWS = bind_rd; defCOLS = bind_cd; altROWS = bind_ra; altCOLS = bind_ca; } ctlr_erase(False); /* Extract the PLU name. */ if (buflen > BIND_OFF_PLU_NAME_LEN) { namelen = buf[BIND_OFF_PLU_NAME_LEN]; if (namelen > BIND_PLU_NAME_MAX) namelen = BIND_PLU_NAME_MAX; if ((namelen > 0) && (buflen > BIND_OFF_PLU_NAME + namelen)) { for (i = 0; i < namelen; i++) { int nx; nx = ebcdic_to_multibyte( buf[BIND_OFF_PLU_NAME + i], plu_name + dest_ix, mb_max_len(1)); if (nx > 1) dest_ix += nx - 1; } } } } #endif /*]*/ static int process_eor(void) { if (syncing || !(ibptr - ibuf)) return(0); #if defined(X3270_TN3270E) /*[*/ if (IN_E) { tn3270e_header *h = (tn3270e_header *)ibuf; unsigned char *s; enum pds rv; trace_dsn("RCVD TN3270E(%s%s %s %u)\n", e_dt(h->data_type), e_rq(h->data_type, h->request_flag), e_rsp(h->data_type, h->response_flag), h->seq_number[0] << 8 | h->seq_number[1]); switch (h->data_type) { case TN3270E_DT_3270_DATA: if ((e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE)) && !tn3270e_bound) return 0; tn3270e_submode = E_3270; check_in3270(); response_required = h->response_flag; rv = process_ds(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); if (rv < 0 && response_required != TN3270E_RSF_NO_RESPONSE) tn3270e_nak(rv); else if (rv == PDS_OKAY_NO_OUTPUT && response_required == TN3270E_RSF_ALWAYS_RESPONSE) tn3270e_ack(); response_required = TN3270E_RSF_NO_RESPONSE; return 0; case TN3270E_DT_BIND_IMAGE: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; process_bind(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); trace_ds("< BIND PLU-name '%s' " "MaxSec-RU %d MaxPri-RU %d " "Rows-Cols Default %dx%d Alternate %dx%d\n", plu_name, maxru_sec, maxru_pri, bind_rd, bind_cd, bind_ra, bind_ca); tn3270e_bound = 1; check_in3270(); return 0; case TN3270E_DT_UNBIND: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; tn3270e_bound = 0; /* * Undo any screen-sizing effects from a previous BIND. */ defROWS = MODEL_2_ROWS; defCOLS = MODEL_2_COLS; altROWS = maxROWS; altCOLS = maxCOLS; ctlr_erase(False); if (tn3270e_submode == E_3270) tn3270e_submode = E_NONE; check_in3270(); return 0; case TN3270E_DT_NVT_DATA: /* In tn3270e NVT mode */ tn3270e_submode = E_NVT; check_in3270(); for (s = ibuf; s < ibptr; s++) { ansi_process(*s++); } return 0; case TN3270E_DT_SSCP_LU_DATA: if (!(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return 0; tn3270e_submode = E_SSCP; check_in3270(); ctlr_write_sscp_lu(ibuf + EH_SIZE, (ibptr - ibuf) - EH_SIZE); return 0; default: /* Should do something more extraordinary here. */ return 0; } } else #endif /*]*/ { (void) process_ds(ibuf, ibptr - ibuf); } return 0; } /* * net_exception * Called when there is an exceptional condition on the socket. */ void net_exception(void) { #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { trace_dsn("RCVD exception\n"); } else #endif /*[*/ { trace_dsn("RCVD urgent data indication\n"); if (!syncing) { syncing = 1; x_except_off(); } } } /* * Flavors of Network Output: * * 3270 mode * net_output send a 3270 record * * ANSI mode; call each other in turn * net_sendc net_cookout for 1 byte * net_sends net_cookout for a null-terminated string * net_cookout send user data with cooked-mode processing, ANSI mode * net_cookedout send user data, ANSI mode, already cooked * net_rawout send telnet protocol data, ANSI mode * */ /* * net_rawout * Send out raw telnet data. We assume that there will always be enough * space to buffer what we want to transmit, so we don't handle EAGAIN or * EWOULDBLOCK. */ static void net_rawout(unsigned const char *buf, int len) { int nw; #if defined(X3270_TRACE) /*[*/ trace_netdata('>', buf, len); #endif /*]*/ while (len) { #if defined(OMTU) /*[*/ int n2w = len; int pause = 0; if (n2w > OMTU) { n2w = OMTU; pause = 1; } #else # define n2w len #endif #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) nw = SSL_write(ssl_con, (const char *) buf, n2w); else #endif /*]*/ #if defined(LOCAL_PROCESS) /*[*/ if (local_process) nw = write(sock, (const char *) buf, n2w); else #endif /*]*/ nw = send(sock, (const char *) buf, n2w, 0); if (nw < 0) { #if defined(HAVE_LIBSSL) /*[*/ if (ssl_con != NULL) { unsigned long e; char err_buf[120]; e = ERR_get_error(); (void) ERR_error_string(e, err_buf); trace_dsn("RCVD SSL_write error %ld (%s)\n", e, err_buf); popup_an_error("SSL_write:\n%s", err_buf); host_disconnect(False); return; } #endif /*]*/ trace_dsn("RCVD socket error %d (%s)\n", socket_errno(), #if !defined(_WIN32) /*[*/ strerror(errno) #else /*][*/ win32_strerror(GetLastError()) #endif /*]*/ ); if (socket_errno() == SE_EPIPE || socket_errno() == SE_ECONNRESET) { host_disconnect(False); return; } else if (socket_errno() == SE_EINTR) { goto bot; } else { popup_a_sockerr("Socket write"); host_disconnect(True); return; } } ns_bsent += nw; len -= nw; buf += nw; bot: #if defined(OMTU) /*[*/ if (pause) sleep(1); #endif /*]*/ ; } } #if defined(X3270_ANSI) /*[*/ /* * net_hexansi_out * Send uncontrolled user data to the host in ANSI mode, performing IAC * and CR quoting as necessary. */ void net_hexansi_out(unsigned char *buf, int len) { unsigned char *tbuf; unsigned char *xbuf; if (!len) return; #if defined(X3270_TRACE) /*[*/ /* Trace the data. */ if (toggled(DS_TRACE)) { int i; trace_dsn(">"); for (i = 0; i < len; i++) trace_dsn(" %s", ctl_see((int) *(buf+i))); trace_dsn("\n"); } #endif /*]*/ /* Expand it. */ tbuf = xbuf = (unsigned char *)Malloc(2*len); while (len) { unsigned char c = *buf++; *tbuf++ = c; len--; if (c == IAC) *tbuf++ = IAC; else if (c == '\r' && (!len || *buf != '\n')) *tbuf++ = '\0'; } /* Send it to the host. */ net_rawout(xbuf, tbuf - xbuf); Free(xbuf); } /* * net_cookedout * Send user data out in ANSI mode, without cooked-mode processing. */ static void net_cookedout(const char *buf, int len) { #if defined(X3270_TRACE) /*[*/ if (toggled(DS_TRACE)) { int i; trace_dsn(">"); for (i = 0; i < len; i++) trace_dsn(" %s", ctl_see((int) *(buf+i))); trace_dsn("\n"); } #endif /*]*/ net_rawout((unsigned const char *) buf, len); } /* * net_cookout * Send output in ANSI mode, including cooked-mode processing if * appropriate. */ static void net_cookout(const char *buf, int len) { if (!IN_ANSI || (kybdlock & KL_AWAITING_FIRST)) return; if (linemode) { register int i; char c; for (i = 0; i < len; i++) { c = buf[i]; /* Input conversions. */ if (!lnext && c == '\r' && appres.icrnl) c = '\n'; else if (!lnext && c == '\n' && appres.inlcr) c = '\r'; /* Backslashes. */ if (c == '\\' && !backslashed) backslashed = 1; else backslashed = 0; /* Control chars. */ if (c == '\n') do_eol(c); else if (c == vintr) do_intr(c); else if (c == vquit) do_quit(c); else if (c == verase) do_cerase(c); else if (c == vkill) do_kill(c); else if (c == vwerase) do_werase(c); else if (c == vrprnt) do_rprnt(c); else if (c == veof) do_eof(c); else if (c == vlnext) do_lnext(c); else if (c == 0x08 || c == 0x7f) /* Yes, a hack. */ do_cerase(c); else do_data(c); } return; } else net_cookedout(buf, len); } /* * Cooked mode input processing. */ static void cooked_init(void) { if (lbuf == (unsigned char *)NULL) lbuf = (unsigned char *)Malloc(BUFSZ); lbptr = lbuf; lnext = 0; backslashed = 0; } static void ansi_process_s(const char *data) { while (*data) ansi_process((unsigned int) *data++); } static void forward_data(void) { net_cookedout((char *) lbuf, lbptr - lbuf); cooked_init(); } static void do_data(char c) { if (lbptr+1 < lbuf + BUFSZ) { *lbptr++ = c; if (c == '\r') *lbptr++ = '\0'; if (c == '\t') ansi_process((unsigned int) c); else ansi_process_s(ctl_see((int) c)); } else ansi_process_s("\007"); lnext = 0; backslashed = 0; } static void do_intr(char c) { if (lnext) { do_data(c); return; } ansi_process_s(ctl_see((int) c)); cooked_init(); net_interrupt(); } static void do_quit(char c) { if (lnext) { do_data(c); return; } ansi_process_s(ctl_see((int) c)); cooked_init(); net_break(); } static void do_cerase(char c) { int len; if (backslashed) { lbptr--; ansi_process_s("\b"); do_data(c); return; } if (lnext) { do_data(c); return; } if (lbptr > lbuf) { len = strlen(ctl_see((int) *--lbptr)); while (len--) ansi_process_s("\b \b"); } } static void do_werase(char c) { int any = 0; int len; if (lnext) { do_data(c); return; } while (lbptr > lbuf) { char ch; ch = *--lbptr; if (ch == ' ' || ch == '\t') { if (any) { ++lbptr; break; } } else any = 1; len = strlen(ctl_see((int) ch)); while (len--) ansi_process_s("\b \b"); } } static void do_kill(char c) { int i, len; if (backslashed) { lbptr--; ansi_process_s("\b"); do_data(c); return; } if (lnext) { do_data(c); return; } while (lbptr > lbuf) { len = strlen(ctl_see((int) *--lbptr)); for (i = 0; i < len; i++) ansi_process_s("\b \b"); } } static void do_rprnt(char c) { unsigned char *p; if (lnext) { do_data(c); return; } ansi_process_s(ctl_see((int) c)); ansi_process_s("\r\n"); for (p = lbuf; p < lbptr; p++) ansi_process_s(ctl_see((int) *p)); } static void do_eof(char c) { if (backslashed) { lbptr--; ansi_process_s("\b"); do_data(c); return; } if (lnext) { do_data(c); return; } do_data(c); forward_data(); } static void do_eol(char c) { if (lnext) { do_data(c); return; } if (lbptr+2 >= lbuf + BUFSZ) { ansi_process_s("\007"); return; } *lbptr++ = '\r'; *lbptr++ = '\n'; ansi_process_s("\r\n"); forward_data(); } static void do_lnext(char c) { if (lnext) { do_data(c); return; } lnext = 1; ansi_process_s("^\b"); } #endif /*]*/ /* * check_in3270 * Check for switches between NVT, SSCP-LU and 3270 modes. */ static void check_in3270(void) { enum cstate new_cstate = NOT_CONNECTED; #if defined(X3270_TRACE) /*[*/ static const char *state_name[] = { "unconnected", "resolving", "pending", "initial connection", "TN3270 NVT", "TN3270 3270", "TN3270E", "TN3270E NVT", "TN3270E SSCP-LU", "TN3270E 3270" }; #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ if (myopts[TELOPT_TN3270E]) { if (!tn3270e_negotiated) new_cstate = CONNECTED_INITIAL_E; else switch (tn3270e_submode) { case E_NONE: new_cstate = CONNECTED_INITIAL_E; break; case E_NVT: new_cstate = CONNECTED_NVT; break; case E_3270: new_cstate = CONNECTED_TN3270E; break; case E_SSCP: new_cstate = CONNECTED_SSCP; break; } } else #endif /*]*/ if (myopts[TELOPT_BINARY] && myopts[TELOPT_EOR] && myopts[TELOPT_TTYPE] && hisopts[TELOPT_BINARY] && hisopts[TELOPT_EOR]) { new_cstate = CONNECTED_3270; } else if (cstate == CONNECTED_INITIAL) { /* Nothing has happened, yet. */ return; } else { new_cstate = CONNECTED_INITIAL; } if (new_cstate != cstate) { #if defined(X3270_TN3270E) /*[*/ int was_in_e = IN_E; #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ /* * If we've now switched between non-TN3270E mode and * TN3270E mode, reset the LU list so we can try again * in the new mode. */ if (lus != (char **)NULL && was_in_e != IN_E) { curr_lu = lus; try_lu = *curr_lu; } #endif /*]*/ /* Allocate the initial 3270 input buffer. */ if (new_cstate >= CONNECTED_INITIAL && !ibuf_size) { ibuf = (unsigned char *)Malloc(BUFSIZ); ibuf_size = BUFSIZ; ibptr = ibuf; } #if defined(X3270_ANSI) /*[*/ /* Reinitialize line mode. */ if ((new_cstate == CONNECTED_ANSI && linemode) || new_cstate == CONNECTED_NVT) cooked_init(); #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ /* If we fell out of TN3270E, remove the state. */ if (!myopts[TELOPT_TN3270E]) { tn3270e_negotiated = 0; tn3270e_submode = E_NONE; tn3270e_bound = 0; } #endif /*]*/ trace_dsn("Now operating in %s mode.\n", state_name[new_cstate]); host_in3270(new_cstate); } } /* * store3270in * Store a character in the 3270 input buffer, checking for buffer * overflow and reallocating ibuf if necessary. */ static void store3270in(unsigned char c) { if (ibptr - ibuf >= ibuf_size) { ibuf_size += BUFSIZ; ibuf = (unsigned char *)Realloc((char *)ibuf, ibuf_size); ibptr = ibuf + ibuf_size - BUFSIZ; } *ibptr++ = c; } /* * space3270out * Ensure that more characters will fit in the 3270 output buffer. * Allocates the buffer in BUFSIZ chunks. * Allocates hidden space at the front of the buffer for TN3270E. */ void space3270out(int n) { unsigned nc = 0; /* amount of data currently in obuf */ unsigned more = 0; if (obuf_size) nc = obptr - obuf; while ((nc + n + EH_SIZE) > (obuf_size + more)) { more += BUFSIZ; } if (more) { obuf_size += more; obuf_base = (unsigned char *)Realloc((char *)obuf_base, obuf_size); obuf = obuf_base + EH_SIZE; obptr = obuf + nc; } } /* * check_linemode * Set the global variable 'linemode', which says whether we are in * character-by-character mode or line mode. */ static void check_linemode(Boolean init) { int wasline = linemode; /* * The next line is a deliberate kluge to effectively ignore the SGA * option. If the host will echo for us, we assume * character-at-a-time; otherwise we assume fully cooked by us. * * This allows certain IBM hosts which volunteer SGA but refuse * ECHO to operate more-or-less normally, at the expense of * implementing the (hopefully useless) "character-at-a-time, local * echo" mode. * * We still implement "switch to line mode" and "switch to character * mode" properly by asking for both SGA and ECHO to be off or on, but * we basically ignore the reply for SGA. */ linemode = !hisopts[TELOPT_ECHO] /* && !hisopts[TELOPT_SGA] */; if (init || linemode != wasline) { st_changed(ST_LINE_MODE, linemode); if (!init) { trace_dsn("Operating in %s mode.\n", linemode ? "line" : "character-at-a-time"); } #if defined(X3270_ANSI) /*[*/ if (IN_ANSI && linemode) cooked_init(); #endif /*]*/ } } #if defined(X3270_TRACE) /*[*/ /* * nnn * Expands a number to a character string, for displaying unknown telnet * commands and options. */ static const char * nnn(int c) { static char buf[64]; (void) sprintf(buf, "%d", c); return buf; } /* * cmd * Expands a TELNET command into a character string. */ static const char * cmd(int c) { if (TELCMD_OK(c)) return TELCMD(c); else return nnn(c); } /* * opt * Expands a TELNET option into a character string. */ static const char * opt(unsigned char c) { if (TELOPT_OK(c)) return TELOPT(c); else if (c == TELOPT_TN3270E) return "TN3270E"; #if defined(HAVE_LIBSSL) /*[*/ else if (c == TELOPT_STARTTLS) return "START-TLS"; #endif /*]*/ else return nnn((int)c); } #define LINEDUMP_MAX 32 void trace_netdata(char direction, unsigned const char *buf, int len) { int offset; struct timeval ts; double tdiff; if (!toggled(DS_TRACE)) return; (void) gettimeofday(&ts, (struct timezone *)NULL); if (IN_3270) { tdiff = ((1.0e6 * (double)(ts.tv_sec - ds_ts.tv_sec)) + (double)(ts.tv_usec - ds_ts.tv_usec)) / 1.0e6; trace_dsn("%c +%gs\n", direction, tdiff); } ds_ts = ts; for (offset = 0; offset < len; offset++) { if (!(offset % LINEDUMP_MAX)) trace_dsn("%s%c 0x%-3x ", (offset ? "\n" : ""), direction, offset); trace_dsn("%02x", buf[offset]); } trace_dsn("\n"); } #endif /*]*/ /* * net_output * Send 3270 output over the network: * - Prepend TN3270E header * - Expand IAC to IAC IAC * - Append IAC EOR */ void net_output(void) { static unsigned char *xobuf = NULL; static int xobuf_len = 0; int need_resize = 0; unsigned char *nxoptr, *xoptr; #if defined(X3270_TN3270E) /*[*/ #define BSTART ((IN_TN3270E || IN_SSCP) ? obuf_base : obuf) #else /*][*/ #define BSTART obuf #endif /*]*/ #if defined(X3270_TN3270E) /*[*/ /* Set the TN3720E header. */ if (IN_TN3270E || IN_SSCP) { tn3270e_header *h = (tn3270e_header *)obuf_base; /* Check for sending a TN3270E response. */ if (response_required == TN3270E_RSF_ALWAYS_RESPONSE) { tn3270e_ack(); response_required = TN3270E_RSF_NO_RESPONSE; } /* Set the outbound TN3270E header. */ h->data_type = IN_TN3270E ? TN3270E_DT_3270_DATA : TN3270E_DT_SSCP_LU_DATA; h->request_flag = 0; h->response_flag = 0; h->seq_number[0] = (e_xmit_seq >> 8) & 0xff; h->seq_number[1] = e_xmit_seq & 0xff; trace_dsn("SENT TN3270E(%s NO-RESPONSE %u)\n", IN_TN3270E ? "3270-DATA" : "SSCP-LU-DATA", e_xmit_seq); if (e_funcs & E_OPT(TN3270E_FUNC_RESPONSES)) e_xmit_seq = (e_xmit_seq + 1) & 0x7fff; } #endif /*]*/ /* Reallocate the expanded output buffer. */ while (xobuf_len < (obptr - BSTART + 1) * 2) { xobuf_len += BUFSZ; need_resize++; } if (need_resize) { Replace(xobuf, (unsigned char *)Malloc(xobuf_len)); } /* Copy and expand IACs. */ xoptr = xobuf; nxoptr = BSTART; while (nxoptr < obptr) { if ((*xoptr++ = *nxoptr++) == IAC) { *xoptr++ = IAC; } } /* Append the IAC EOR and transmit. */ *xoptr++ = IAC; *xoptr++ = EOR; net_rawout(xobuf, xoptr - xobuf); trace_dsn("SENT EOR\n"); ns_rsent++; #undef BSTART } #if defined(X3270_TN3270E) /*[*/ /* Send a TN3270E positive response to the server. */ static void tn3270e_ack(void) { unsigned char rsp_buf[10]; tn3270e_header *h_in = (tn3270e_header *)ibuf; int rsp_len = 0; rsp_len = 0; rsp_buf[rsp_len++] = TN3270E_DT_RESPONSE; /* data_type */ rsp_buf[rsp_len++] = 0; /* request_flag */ rsp_buf[rsp_len++] = TN3270E_RSF_POSITIVE_RESPONSE; /* response_flag */ rsp_buf[rsp_len++] = h_in->seq_number[0]; /* seq_number[0] */ if (h_in->seq_number[0] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = h_in->seq_number[1]; /* seq_number[1] */ if (h_in->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = TN3270E_POS_DEVICE_END; rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; trace_dsn("SENT TN3270E(RESPONSE POSITIVE-RESPONSE " "%u) DEVICE-END\n", h_in->seq_number[0] << 8 | h_in->seq_number[1]); net_rawout(rsp_buf, rsp_len); } /* Send a TN3270E negative response to the server. */ static void tn3270e_nak(enum pds rv) { unsigned char rsp_buf[10]; tn3270e_header *h_in = (tn3270e_header *)ibuf; int rsp_len = 0; char *neg = NULL; rsp_buf[rsp_len++] = TN3270E_DT_RESPONSE; /* data_type */ rsp_buf[rsp_len++] = 0; /* request_flag */ rsp_buf[rsp_len++] = TN3270E_RSF_NEGATIVE_RESPONSE; /* response_flag */ rsp_buf[rsp_len++] = h_in->seq_number[0]; /* seq_number[0] */ if (h_in->seq_number[0] == IAC) rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = h_in->seq_number[1]; /* seq_number[1] */ if (h_in->seq_number[1] == IAC) rsp_buf[rsp_len++] = IAC; switch (rv) { default: case PDS_BAD_CMD: rsp_buf[rsp_len++] = TN3270E_NEG_COMMAND_REJECT; neg = "COMMAND-REJECT"; break; case PDS_BAD_ADDR: rsp_buf[rsp_len++] = TN3270E_NEG_OPERATION_CHECK; neg = "OPERATION-CHECK"; break; } rsp_buf[rsp_len++] = IAC; rsp_buf[rsp_len++] = EOR; trace_dsn("SENT TN3270E(RESPONSE NEGATIVE-RESPONSE %u) %s\n", h_in->seq_number[0] << 8 | h_in->seq_number[1], neg); net_rawout(rsp_buf, rsp_len); } #if defined(X3270_TRACE) /*[*/ /* Add a dummy TN3270E header to the output buffer. */ Boolean net_add_dummy_tn3270e(void) { tn3270e_header *h; if (!IN_E || tn3270e_submode == E_NONE) return False; space3270out(EH_SIZE); h = (tn3270e_header *)obptr; switch (tn3270e_submode) { case E_NONE: break; case E_NVT: h->data_type = TN3270E_DT_NVT_DATA; break; case E_SSCP: h->data_type = TN3270E_DT_SSCP_LU_DATA; break; case E_3270: h->data_type = TN3270E_DT_3270_DATA; break; } h->request_flag = 0; h->response_flag = TN3270E_RSF_NO_RESPONSE; h->seq_number[0] = 0; h->seq_number[1] = 0; obptr += EH_SIZE; return True; } #endif /*]*/ #endif /*]*/ #if defined(X3270_TRACE) /*[*/ /* * Add IAC EOR to a buffer. */ void net_add_eor(unsigned char *buf, int len) { buf[len++] = IAC; buf[len++] = EOR; } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ /* * net_sendc * Send a character of user data over the network in ANSI mode. */ void net_sendc(char c) { if (c == '\r' && !linemode #if defined(LOCAL_PROCESS) /*[*/ && !local_process #endif /*]*/ ) { /* CR must be quoted */ net_cookout("\r\0", 2); } else { net_cookout(&c, 1); } } /* * net_sends * Send a null-terminated string of user data in ANSI mode. */ void net_sends(const char *s) { net_cookout(s, strlen(s)); } /* * net_send_erase * Sends the KILL character in ANSI mode. */ void net_send_erase(void) { net_cookout(&verase, 1); } /* * net_send_kill * Sends the KILL character in ANSI mode. */ void net_send_kill(void) { net_cookout(&vkill, 1); } /* * net_send_werase * Sends the WERASE character in ANSI mode. */ void net_send_werase(void) { net_cookout(&vwerase, 1); } #endif /*]*/ #if defined(X3270_MENUS) /*[*/ /* * External entry points to negotiate line or character mode. */ void net_linemode(void) { if (!CONNECTED) return; if (hisopts[TELOPT_ECHO]) { dont_opt[2] = TELOPT_ECHO; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(TELOPT_ECHO)); } if (hisopts[TELOPT_SGA]) { dont_opt[2] = TELOPT_SGA; net_rawout(dont_opt, sizeof(dont_opt)); trace_dsn("SENT %s %s\n", cmd(DONT), opt(TELOPT_SGA)); } } void net_charmode(void) { if (!CONNECTED) return; if (!hisopts[TELOPT_ECHO]) { do_opt[2] = TELOPT_ECHO; net_rawout(do_opt, sizeof(do_opt)); trace_dsn("SENT %s %s\n", cmd(DO), opt(TELOPT_ECHO)); } if (!hisopts[TELOPT_SGA]) { do_opt[2] = TELOPT_SGA; net_rawout(do_opt, sizeof(do_opt)); trace_dsn("SENT %s %s\n", cmd(DO), opt(TELOPT_SGA)); } } #endif /*]*/ /* * net_break * Send telnet break, which is used to implement 3270 ATTN. * */ void net_break(void) { static unsigned char buf[] = { IAC, BREAK }; /* I don't know if we should first send TELNET synch ? */ net_rawout(buf, sizeof(buf)); trace_dsn("SENT BREAK\n"); } /* * net_interrupt * Send telnet IP. * */ void net_interrupt(void) { static unsigned char buf[] = { IAC, IP }; /* I don't know if we should first send TELNET synch ? */ net_rawout(buf, sizeof(buf)); trace_dsn("SENT IP\n"); } /* * net_abort * Send telnet AO. * */ #if defined(X3270_TN3270E) /*[*/ void net_abort(void) { static unsigned char buf[] = { IAC, AO }; if (e_funcs & E_OPT(TN3270E_FUNC_SYSREQ)) { /* * I'm not sure yet what to do here. Should the host respond * to the AO by sending us SSCP-LU data (and putting us into * SSCP-LU mode), or should we put ourselves in it? * Time, and testers, will tell. */ switch (tn3270e_submode) { case E_NONE: case E_NVT: break; case E_SSCP: net_rawout(buf, sizeof(buf)); trace_dsn("SENT AO\n"); if (tn3270e_bound || !(e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) { tn3270e_submode = E_3270; check_in3270(); } break; case E_3270: net_rawout(buf, sizeof(buf)); trace_dsn("SENT AO\n"); tn3270e_submode = E_SSCP; check_in3270(); break; } } } #endif /*]*/ #if defined(X3270_ANSI) /*[*/ /* * parse_ctlchar * Parse an stty control-character specification. * A cheap, non-complaining implementation. */ static char parse_ctlchar(char *s) { if (!s || !*s) return 0; if ((int) strlen(s) > 1) { if (*s != '^') return 0; else if (*(s+1) == '?') return 0177; else return *(s+1) - '@'; } else return *s; } #endif /*]*/ #if (defined(X3270_MENUS) || defined(C3270)) && defined(X3270_ANSI) /*[*/ /* * net_linemode_chars * Report line-mode characters. */ struct ctl_char * net_linemode_chars(void) { static struct ctl_char c[9]; c[0].name = "intr"; (void) strcpy(c[0].value, ctl_see(vintr)); c[1].name = "quit"; (void) strcpy(c[1].value, ctl_see(vquit)); c[2].name = "erase"; (void) strcpy(c[2].value, ctl_see(verase)); c[3].name = "kill"; (void) strcpy(c[3].value, ctl_see(vkill)); c[4].name = "eof"; (void) strcpy(c[4].value, ctl_see(veof)); c[5].name = "werase"; (void) strcpy(c[5].value, ctl_see(vwerase)); c[6].name = "rprnt"; (void) strcpy(c[6].value, ctl_see(vrprnt)); c[7].name = "lnext"; (void) strcpy(c[7].value, ctl_see(vlnext)); c[8].name = 0; return c; } #endif /*]*/ #if defined(X3270_TRACE) /*[*/ /* * Construct a string to reproduce the current TELNET options. * Returns a Boolean indicating whether it is necessary. */ Boolean net_snap_options(void) { Boolean any = False; int i; static unsigned char ttype_str[] = { IAC, DO, TELOPT_TTYPE, IAC, SB, TELOPT_TTYPE, TELQUAL_SEND, IAC, SE }; if (!CONNECTED) return False; obptr = obuf; /* Do TTYPE first. */ if (myopts[TELOPT_TTYPE]) { unsigned j; space3270out(sizeof(ttype_str)); for (j = 0; j < sizeof(ttype_str); j++) *obptr++ = ttype_str[j]; } /* Do the other options. */ for (i = 0; i < N_OPTS; i++) { space3270out(6); if (i == TELOPT_TTYPE) continue; if (hisopts[i]) { *obptr++ = IAC; *obptr++ = WILL; *obptr++ = (unsigned char)i; any = True; } if (myopts[i]) { *obptr++ = IAC; *obptr++ = DO; *obptr++ = (unsigned char)i; any = True; } } #if defined(X3270_TN3270E) /*[*/ /* If we're in TN3270E mode, snap the subnegotations as well. */ if (myopts[TELOPT_TN3270E]) { any = True; space3270out(5 + ((connected_type != CN) ? strlen(connected_type) : 0) + ((connected_lu != CN) ? + strlen(connected_lu) : 0) + 2); *obptr++ = IAC; *obptr++ = SB; *obptr++ = TELOPT_TN3270E; *obptr++ = TN3270E_OP_DEVICE_TYPE; *obptr++ = TN3270E_OP_IS; if (connected_type != CN) { (void) memcpy(obptr, connected_type, strlen(connected_type)); obptr += strlen(connected_type); } if (connected_lu != CN) { *obptr++ = TN3270E_OP_CONNECT; (void) memcpy(obptr, connected_lu, strlen(connected_lu)); obptr += strlen(connected_lu); } *obptr++ = IAC; *obptr++ = SE; space3270out(38); (void) memcpy(obptr, functions_req, 4); obptr += 4; *obptr++ = TN3270E_OP_IS; for (i = 0; i < 32; i++) { if (e_funcs & E_OPT(i)) *obptr++ = i; } *obptr++ = IAC; *obptr++ = SE; if (tn3270e_bound) { tn3270e_header *h; int i; int xlen = 0; for (i = 0; i < bind_image_len; i++) { if (bind_image[i] == 0xff) xlen++; } space3270out(EH_SIZE + bind_image_len + xlen + 3); h = (tn3270e_header *)obptr; h->data_type = TN3270E_DT_BIND_IMAGE; h->request_flag = 0; h->response_flag = 0; h->seq_number[0] = 0; h->seq_number[1] = 0; obptr += EH_SIZE; for (i = 0; i < bind_image_len; i++) { if (bind_image[i] == 0xff) *obptr++ = 0xff; *obptr++ = bind_image[i]; } *obptr++ = IAC; *obptr++ = EOR; } } #endif /*]*/ return any; } #endif /*]*/ /* * Set blocking/non-blocking mode on the socket. On error, pops up an error * message, but does not close the socket. */ static int non_blocking(Boolean on) { #if !defined(BLOCKING_CONNECT_ONLY) /*[*/ # if defined(FIONBIO) /*[*/ int i = on ? 1 : 0; if (SOCK_IOCTL(sock, FIONBIO, &i) < 0) { popup_a_sockerr("ioctl(FIONBIO)"); return -1; } # else /*][*/ int f; if ((f = fcntl(sock, F_GETFL, 0)) == -1) { popup_an_errno(errno, "fcntl(F_GETFL)"); return -1; } if (on) f |= O_NDELAY; else f &= ~O_NDELAY; if (fcntl(sock, F_SETFL, f) < 0) { popup_an_errno(errno, "fcntl(F_SETFL)"); return -1; } # endif /*]*/ #endif /*]*/ return 0; } #if defined(HAVE_LIBSSL) /*[*/ /* Initialize the OpenSSL library. */ static void ssl_init(void) { static Boolean ssl_initted = False; if (!ssl_initted) { SSL_load_error_strings(); SSL_library_init(); ssl_initted = True; ssl_ctx = SSL_CTX_new(SSLv23_method()); if (ssl_ctx == NULL) { popup_an_error("SSL_CTX_new failed"); ssl_host = False; return; } SSL_CTX_set_options(ssl_ctx, SSL_OP_ALL); } ssl_con = SSL_new(ssl_ctx); if (ssl_con == NULL) { popup_an_error("SSL_new failed"); ssl_host = False; } SSL_set_verify(ssl_con, 0/*xxx*/, NULL); SSL_CTX_set_info_callback(ssl_ctx, client_info_callback); /* XXX: May need to get key file and password. */ if (appres.cert_file) { if (!(SSL_CTX_use_certificate_chain_file(ssl_ctx, appres.cert_file))) { unsigned long e; char err_buf[120]; e = ERR_get_error(); (void) ERR_error_string(e, err_buf); popup_an_error("SSL_CTX_use_certificate_chain_file(" "\"%s\") failed:\n%s", appres.cert_file, err_buf); } } SSL_CTX_set_default_verify_paths(ssl_ctx); } /* Callback for tracing protocol negotiation. */ static void client_info_callback(INFO_CONST SSL *s, int where, int ret) { if (where == SSL_CB_CONNECT_LOOP) { trace_dsn("SSL_connect: %s %s\n", SSL_state_string(s), SSL_state_string_long(s)); } else if (where == SSL_CB_CONNECT_EXIT) { if (ret == 0) { trace_dsn("SSL_connect: failed in %s\n", SSL_state_string_long(s)); } else if (ret < 0) { unsigned long e; char err_buf[1024]; err_buf[0] = '\n'; e = ERR_get_error(); if (e != 0) (void) ERR_error_string(e, err_buf + 1); #if defined(_WIN32) /*[*/ else if (GetLastError() != 0) strcpy(err_buf + 1, win32_strerror(GetLastError())); #else /*][*/ else if (errno != 0) strcpy(err_buf + 1, strerror(errno)); #endif /*]*/ else err_buf[0] = '\0'; trace_dsn("SSL_connect: error in %s%s\n", SSL_state_string_long(s), err_buf); popup_an_error("SSL_connect: error in %s%s", SSL_state_string_long(s), err_buf); } } } /* Process a STARTTLS subnegotiation. */ static void continue_tls(unsigned char *sbbuf, int len) { int rv; /* Whatever happens, we're not expecting another SB STARTTLS. */ need_tls_follows = False; /* Make sure the option is FOLLOWS. */ if (len < 2 || sbbuf[1] != TLS_FOLLOWS) { /* Trace the junk. */ trace_dsn("%s ? %s\n", opt(TELOPT_STARTTLS), cmd(SE)); popup_an_error("TLS negotiation failure"); net_disconnect(); return; } /* Trace what we got. */ trace_dsn("%s FOLLOWS %s\n", opt(TELOPT_STARTTLS), cmd(SE)); /* Initialize the SSL library. */ ssl_init(); if (ssl_con == NULL) { /* Failed. */ net_disconnect(); return; } /* Set up the TLS/SSL connection. */ if (SSL_set_fd(ssl_con, sock) != 1) { trace_dsn("Can't set fd!\n"); } #if defined(_WIN32) /*[*/ /* Make the socket blocking for SSL. */ (void) WSAEventSelect(sock, sock_handle, 0); (void) non_blocking(False); #endif /*]*/ rv = SSL_connect(ssl_con); #if defined(_WIN32) /*[*/ /* Make the socket non-blocking again for event processing. */ (void) WSAEventSelect(sock, sock_handle, FD_READ | FD_CONNECT | FD_CLOSE); #endif /*]*/ if (rv != 1) { /* Error already displayed. */ trace_dsn("continue_tls: SSL_connect failed\n"); net_disconnect(); return; } secure_connection = True; /* Success. */ trace_dsn("TLS/SSL negotiated connection complete. " "Connection is now secure.\n"); /* Tell the world that we are (still) connected, now in secure mode. */ host_connected(); } #endif /*]*/ /* Return the current BIND application name, if any. */ const char * net_query_bind_plu_name(void) { #if defined(X3270_TN3270E) /*[*/ /* * Return the PLU name, if we're in TN3270E 3270 mode and have * negotiated the BIND-IMAGE option. */ if ((cstate == CONNECTED_TN3270E) && (e_funcs & E_OPT(TN3270E_FUNC_BIND_IMAGE))) return plu_name? plu_name: ""; else return ""; #else /*][*/ /* No TN3270E, no BIND negotiation. */ return ""; #endif /*]*/ } /* Return the current connection state. */ const char * net_query_connection_state(void) { if (CONNECTED) { #if defined(X3270_TN3270E) /*[*/ if (IN_E) { switch (tn3270e_submode) { default: case E_NONE: if (tn3270e_bound) return "tn3270e bound"; else return "tn3270e unbound"; case E_3270: return "tn3270e lu-lu"; case E_NVT: return "tn3270e nvt"; case E_SSCP: return "tn3270 sscp-lu"; } } else #endif /*]*/ { if (IN_3270) return "tn3270 3270"; else return "tn3270 nvt"; } } else if (HALF_CONNECTED) return "connecting"; else return ""; } /* Return the LU name. */ const char * net_query_lu_name(void) { if (CONNECTED && connected_lu != CN) return connected_lu; else return ""; } /* Return the hostname and port. */ const char * net_query_host(void) { static char *s = CN; if (CONNECTED) { Free(s); #if defined(LOCAL_PROCESS) /*[*/ if (local_process) { s = xs_buffer("process %s", hostname); } else #endif /*]*/ { s = xs_buffer("host %s %u %s", hostname, current_port, #if defined(HAVE_LIBSSL) /*[*/ secure_connection? "encrypted": #endif /*]*/ "unencrypted" ); } return s; } else return ""; } /* Return the local address for the socket. */ int net_getsockname(void *buf, int *len) { if (sock < 0) return -1; return getsockname(sock, buf, (socklen_t *)(void *)len); } /* Return a text version of the current proxy type, or NULL. */ char * net_proxy_type(void) { if (proxy_type > 0) return proxy_type_name(proxy_type); else return NULL; } /* Return the current proxy host, or NULL. */ char * net_proxy_host(void) { if (proxy_type > 0) return proxy_host; else return NULL; } /* Return the current proxy port, or NULL. */ char * net_proxy_port(void) { if (proxy_type > 0) return proxy_portname; else return NULL; } /* Return the SNA binding state. */ Boolean net_bound(void) { return (IN_E && tn3270e_bound); } ibm-3270-3.3.10ga4/ws3270/winvers.c0000644000175000017500000000445211254565675016011 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * winvers.c * A Windows console-based 3270 Terminal Emulator * OS version query */ #include #include #include "winversc.h" int is_nt = 1; int has_ipv6 = 1; int get_version_info(void) { OSVERSIONINFO info; /* Figure out what version of Windows this is. */ memset(&info, '\0', sizeof(info)); info.dwOSVersionInfoSize = sizeof(info); if (GetVersionEx(&info) == 0) { fprintf(stderr, "Can't get Windows version\n"); return -1; } /* Yes, people still run Win98. */ if (info.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) is_nt = 0; /* Win2K and earlier is IPv4-only. WinXP and later can have IPv6. */ if (!is_nt || info.dwMajorVersion < 5 || (info.dwMajorVersion == 5 && info.dwMinorVersion < 1)) { has_ipv6 = 0; } return 0; } ibm-3270-3.3.10ga4/ws3270/ft_dft.c0000644000175000017500000004317111254565704015554 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * ft_dft.c * File transfer: DFT-style data processing functions */ #include "globals.h" #if defined(X3270_FT) /*[*/ #include "appres.h" #include "3270ds.h" #include "ft_dft_ds.h" #include "actionsc.h" #include "charsetc.h" #include "kybdc.h" #include "ft_dftc.h" #include "ftc.h" #include "tablesc.h" #include "telnetc.h" #include "trace_dsc.h" #include "unicodec.h" #include "utilc.h" #include extern unsigned char aid; /* Macros. */ #define OPEN_MSG "FT:MSG" /* Open request for message */ #define END_TRANSFER "TRANS03" /* Message for xfer complete */ #define DFT_MIN_BUF 256 #define DFT_MAX_BUF 32768 #define DFT_MAX_UNGETC 32 /* Typedefs. */ struct data_buffer { char sf_length[2]; /* SF length = 0x0023 */ char sf_d0; /* 0xD0 */ char sf_request_type[2]; /* request type */ char compress_indic[2]; /* 0xc080 */ char begin_data; /* 0x61 */ char data_length[2]; /* Data Length in 3270 byte order+5 */ char data[256]; /* The actual data */ }; /* Globals. */ int dft_buffersize = 0; /* Buffer size (LIMIN, LIMOUT) */ /* Statics. */ static Boolean message_flag = False; /* Open Request for msg received */ static int dft_eof; static unsigned long recnum; static char *abort_string = CN; static unsigned char *dft_savebuf = NULL; static int dft_savebuf_len = 0; static int dft_savebuf_max = 0; static unsigned char dft_ungetc_cache[DFT_MAX_UNGETC]; static size_t dft_ungetc_count = 0; static void dft_abort(const char *s, unsigned short code); static void dft_close_request(void); static void dft_data_insert(struct data_buffer *data_bufr); static void dft_get_request(void); static void dft_insert_request(void); static void dft_open_request(unsigned short len, unsigned char *cp); static void dft_set_cur_req(void); /* Process a Transfer Data structured field from the host. */ void ft_dft_data(unsigned char *data, int length _is_unused) { struct data_buffer *data_bufr = (struct data_buffer *)data; unsigned short data_length, data_type; unsigned char *cp; if (ft_state == FT_NONE) { trace_ds(" (no transfer in progress)\n"); return; } /* Get the length. */ cp = (unsigned char *)(data_bufr->sf_length); GET16(data_length, cp); /* Get the function type. */ cp = (unsigned char *)(data_bufr->sf_request_type); GET16(data_type, cp); /* Handle the requests */ switch (data_type) { case TR_OPEN_REQ: dft_open_request(data_length, cp); break; case TR_INSERT_REQ: /* Insert Request */ dft_insert_request(); break; case TR_DATA_INSERT: dft_data_insert(data_bufr); break; case TR_SET_CUR_REQ: dft_set_cur_req(); break; case TR_GET_REQ: dft_get_request(); break; case TR_CLOSE_REQ: dft_close_request(); break; default: trace_ds(" Unsupported(0x%04x)\n", data_type); break; } } /* Process an Open request. */ static void dft_open_request(unsigned short len, unsigned char *cp) { char *name = "?"; char namebuf[8]; char *s; unsigned short recsz = 0; if (len == 0x23) { name = (char *)cp + 25; } else if (len == 0x29) { unsigned char *recszp; recszp = cp + 27; GET16(recsz, recszp); name = (char *)cp + 31; } else { dft_abort(get_message("ftDftUknownOpen"), TR_OPEN_REQ); return; } (void) memcpy(namebuf, name, 7); namebuf[7] = '\0'; s = &namebuf[6]; while (s >= namebuf && *s == ' ') { *s-- = '\0'; } if (recsz) { trace_ds(" Open('%s',recsz=%u)\n", namebuf, recsz); } else { trace_ds(" Open('%s')\n", namebuf); } if (!strcmp(namebuf, OPEN_MSG)) message_flag = True; else { message_flag = False; ft_running(False); } dft_eof = False; recnum = 1; dft_ungetc_count = 0; /* Acknowledge the Open. */ trace_ds("> WriteStructuredField FileTransferData OpenAck\n"); obptr = obuf; space3270out(6); *obptr++ = AID_SF; SET16(obptr, 5); *obptr++ = SF_TRANSFER_DATA; SET16(obptr, 9); net_output(); } /* Process an Insert request. */ static void dft_insert_request(void) { trace_ds(" Insert\n"); /* Doesn't currently do anything. */ } /* Process a Data Insert request. */ static void dft_data_insert(struct data_buffer *data_bufr) { /* Received a data buffer, get the length and process it */ int my_length; unsigned char *cp; if (!message_flag && ft_state == FT_ABORT_WAIT) { dft_abort(get_message("ftUserCancel"), TR_DATA_INSERT); return; } cp = (unsigned char *) (data_bufr->data_length); /* Get the data length in native format. */ GET16(my_length, cp); /* Adjust for 5 extra count */ my_length -= 5; trace_ds(" Data(rec=%lu) %d bytes\n", recnum, my_length); /* * First, check to see if we have message data or file data. * Message data will result in a popup. */ if (message_flag) { /* Data is from a message */ unsigned char *msgp; unsigned char *dollarp; /* Get storage to copy the message. */ msgp = (unsigned char *)Malloc(my_length + 1); /* Copy the message. */ memcpy(msgp, data_bufr->data, my_length); /* Null terminate the string. */ dollarp = (unsigned char *)memchr(msgp, '$', my_length); if (dollarp != NULL) *dollarp = '\0'; else *(msgp + my_length) = '\0'; /* If transfer completed ok, use our msg. */ if (memcmp(msgp, END_TRANSFER, strlen(END_TRANSFER)) == 0) { Free(msgp); ft_complete((String)NULL); } else if (ft_state == FT_ABORT_SENT && abort_string != CN) { Free(msgp); ft_complete(abort_string); Replace(abort_string, CN); } else { ft_complete((char *)msgp); Free(msgp); } } else if (my_length > 0) { int rv = 1; /* Write the data out to the file. */ if (ascii_flag && (remap_flag || cr_flag)) { size_t obuf_len = 4 * my_length; char *ob0 = Malloc(obuf_len); char *ob = ob0; unsigned char *s = (unsigned char *)data_bufr->data; unsigned len = my_length; int nx; /* Copy and convert data_bufr->data to ob0. */ while (len-- && obuf_len) { unsigned char c = *s++; /* Strip CR's and ^Z's. */ if (cr_flag && ((c == '\r' || c == 0x1a))) { continue; } if (!remap_flag) { *ob++ = c; obuf_len--; continue; } /* * Convert to local multi-byte. * We do that by inverting the host's * EBCDIC-to-ASCII map, getting back to * EBCDIC, and converting to multi-byte * from there. */ #if defined(X3270_DBCS) /*[*/ switch (ft_dbcs_state) { case FT_DBCS_NONE: if (c == EBC_so) { ft_dbcs_state = FT_DBCS_SO; continue; } /* * fall through to non-DBCS case below */ break; case FT_DBCS_SO: if (c == EBC_si) ft_dbcs_state = FT_DBCS_NONE; else { ft_dbcs_byte1 = i_asc2ft[c]; ft_dbcs_state = FT_DBCS_LEFT; } continue; case FT_DBCS_LEFT: if (c == EBC_si) { ft_dbcs_state = FT_DBCS_NONE; continue; } nx = ebcdic_to_multibyte( (ft_dbcs_byte1 << 8) | i_asc2ft[c], (char *)ob, obuf_len); if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; ft_dbcs_state = FT_DBCS_SO; continue; } #endif /*]*/ if (c < 0x20 || (c >= 0x80 && c < 0xa0 && c != 0x9f)) { /* * Control code, treat it as Unicode. * * Note that IND$FILE and the VM 'TYPE' * command think that EBCDIC X'E1' is * a control code; IND$FILE maps it * onto ASCII 0x9f. So we skip it * explicitly and treat it as printable * here. */ nx = unicode_to_multibyte(c, ob, obuf_len); } else if (c == 0xff) { /* * IND$FILE maps X'FF' to 0xff. We * want U+009F. */ nx = unicode_to_multibyte(0x9f, ob, obuf_len); } else { /* Displayable character, remap. */ c = i_asc2ft[c]; nx = ebcdic_to_multibyte(c, (char *)ob, obuf_len); } if (nx && (ob[nx - 1] == '\0')) nx--; ob += nx; obuf_len -= nx; } /* Write the result to the file. */ if (ob - ob0) { rv = fwrite(ob0, ob - ob0, (size_t)1, ft_local_file); ft_length += ob - ob0; } Free(ob0); } else { /* Write the buffer to the file directly. */ rv = fwrite((char *)data_bufr->data, my_length, (size_t)1, ft_local_file); ft_length += my_length; } if (!rv) { /* write failed */ char *buf; buf = xs_buffer("write(%s): %s", ft_local_filename, strerror(errno)); dft_abort(buf, TR_DATA_INSERT); Free(buf); } /* Add up amount transferred. */ ft_update_length(); } /* Send an acknowledgement frame back. */ trace_ds("> WriteStructuredField FileTransferData DataAck(rec=%lu)\n", recnum); obptr = obuf; space3270out(12); *obptr++ = AID_SF; SET16(obptr, 11); *obptr++ = SF_TRANSFER_DATA; SET16(obptr, TR_NORMAL_REPLY); SET16(obptr, TR_RECNUM_HDR); SET32(obptr, recnum); recnum++; net_output(); } /* Process a Set Cursor request. */ static void dft_set_cur_req(void) { trace_ds(" SetCursor\n"); /* Currently doesn't do anything. */ } #if defined(X3270_DBCS) /*[*/ /* Store a byte inthe input buffer or ungetc cache. */ static void store_inbyte(unsigned char c, unsigned char **bufptr, size_t *numbytes) { if (*numbytes) { *(*bufptr) = c; (*bufptr)++; (*numbytes)--; } else { dft_ungetc_cache[dft_ungetc_count++] = c; } } #endif /*]*/ /* * Read a character from a local file in ASCII mode. * Stores the data in 'bufptr' and returns the number of bytes stored. * Returns -1 for EOF. */ /*static*/ size_t dft_ascii_read(unsigned char *bufptr, size_t numbytes) { char inbuf[16]; int in_ix = 0; char c; enum me_fail error; ebc_t e; int consumed; ucs4_t u; /* Belt-n-suspenders. */ if (!numbytes) return 0; /* Return data from the ungetc cache first. */ if (dft_ungetc_count) { size_t nm = dft_ungetc_count; if (nm > numbytes) nm = numbytes; memcpy(bufptr, dft_ungetc_cache, nm); if (dft_ungetc_count > nm) memmove(dft_ungetc_cache, &dft_ungetc_cache[nm], dft_ungetc_count - nm); dft_ungetc_count -= nm; return nm; } if (remap_flag) { /* Read bytes until we have a legal multibyte sequence. */ do { int consumed; c = fgetc(ft_local_file); if (c == EOF) { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { *bufptr = EBC_si; ft_last_dbcs = False; return 1; } #endif /*]*/ return -1; } error = ME_NONE; inbuf[in_ix++] = c; (void) multibyte_to_unicode(inbuf, in_ix, &consumed, &error); if (error == ME_INVALID) { #if defined(EILSEQ) /*[*/ errno = EILSEQ; #else /*][*/ errno = EINVAL; #endif /*]*/ return -1; } } while (error == ME_SHORT); } else { /* Get a byte from the file. */ c = fgetc(ft_local_file); if (c == EOF) return -1; } /* Expand NL to CR/LF. */ if (cr_flag && !ft_last_cr && c == '\n') { #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { *bufptr = EBC_si; dft_ungetc_cache[0] = '\r'; dft_ungetc_cache[1] = '\n'; dft_ungetc_count = 2; ft_last_dbcs = False; return 1; } else #endif /*]*/ { *bufptr = '\r'; dft_ungetc_cache[0] = '\n'; dft_ungetc_count = 1; } return 1; } ft_last_cr = (c == '\r'); /* The no-remap case is pretty simple. */ if (!remap_flag) { *bufptr = c; return 1; } /* * Translate, inverting the host's fixed EBCDIC-to-ASCII conversion * table and applying the host code page. * Control codes are treated as Unicode and mapped directly. * We also handle DBCS here. */ u = multibyte_to_unicode(inbuf, in_ix, &consumed, &error); if (u < 0x20 || ((u >= 0x80 && u < 0x9f))) e = i_asc2ft[u]; else if (u == 0x9f) e = 0xff; else e = unicode_to_ebcdic(u); if (e & 0xff00) { #if defined(X3270_DBCS) /*[*/ unsigned char *bp0 = bufptr; if (!ft_last_dbcs) store_inbyte(EBC_so, &bufptr, &numbytes); store_inbyte(i_ft2asc[(e >> 8) & 0xff], &bufptr, &numbytes); store_inbyte(i_ft2asc[e & 0xff], &bufptr, &numbytes); ft_last_dbcs = True; return bufptr - bp0; #else /*][*/ *bufptr = '?'; return 1; #endif /*]*/ } else { unsigned char nc = e? i_ft2asc[e]: '?'; #if defined(X3270_DBCS) /*[*/ if (ft_last_dbcs) { *bufptr = EBC_si; dft_ungetc_cache[0] = nc; dft_ungetc_count = 1; ft_last_dbcs = False; } else #endif /*]*/ *bufptr = nc; return 1; } } /* Process a Get request. */ static void dft_get_request(void) { size_t numbytes; size_t numread; size_t total_read = 0; unsigned char *bufptr; trace_ds(" Get\n"); if (!message_flag && ft_state == FT_ABORT_WAIT) { dft_abort(get_message("ftUserCancel"), TR_GET_REQ); return; } /* Read a buffer's worth. */ set_dft_buffersize(); space3270out(dft_buffersize); numbytes = dft_buffersize - 27; /* always read 5 bytes less than we're allowed */ bufptr = obuf + 17; while (!dft_eof && numbytes) { if (ascii_flag && (remap_flag || cr_flag)) { numread = dft_ascii_read(bufptr, numbytes); if (numread == (size_t)-1) { dft_eof = True; break; } bufptr += numread; numbytes -= numread; total_read += numread; } else { /* Binary read. */ numread = fread(bufptr, 1, numbytes, ft_local_file); if (numread <= 0) { break; } bufptr += numread; numbytes -= numread; total_read += numread; if (feof(ft_local_file)) dft_eof = True; if (feof(ft_local_file) || ferror(ft_local_file)) { break; } } } /* Check for read error. */ if (ferror(ft_local_file)) { char *buf; buf = xs_buffer("read(%s): %s", ft_local_filename, strerror(errno)); dft_abort(buf, TR_GET_REQ); Free(buf); return; } /* Set up SF header for Data or EOF. */ obptr = obuf; *obptr++ = AID_SF; obptr += 2; /* skip SF length for now */ *obptr++ = SF_TRANSFER_DATA; if (total_read) { trace_ds("> WriteStructuredField FileTransferData Data(rec=%lu) %d bytes\n", recnum, (int)total_read); SET16(obptr, TR_GET_REPLY); SET16(obptr, TR_RECNUM_HDR); SET32(obptr, recnum); recnum++; SET16(obptr, TR_NOT_COMPRESSED); *obptr++ = TR_BEGIN_DATA; SET16(obptr, total_read + 5); obptr += total_read; ft_length += total_read; } else { trace_ds("> WriteStructuredField FileTransferData EOF\n"); *obptr++ = HIGH8(TR_GET_REQ); *obptr++ = TR_ERROR_REPLY; SET16(obptr, TR_ERROR_HDR); SET16(obptr, TR_ERR_EOF); dft_eof = True; } /* Set the SF length. */ bufptr = obuf + 1; SET16(bufptr, obptr - (obuf + 1)); /* Save the data. */ dft_savebuf_len = obptr - obuf; if (dft_savebuf_len > dft_savebuf_max) { dft_savebuf_max = dft_savebuf_len; Replace(dft_savebuf, (unsigned char *)Malloc(dft_savebuf_max)); } (void) memcpy(dft_savebuf, obuf, dft_savebuf_len); aid = AID_SF; /* Write the data. */ net_output(); ft_update_length(); } /* Process a Close request. */ static void dft_close_request(void) { /* * Recieved a close request from the system. * Return a close acknowledgement. */ trace_ds(" Close\n"); trace_ds("> WriteStructuredField FileTransferData CloseAck\n"); obptr = obuf; space3270out(6); *obptr++ = AID_SF; SET16(obptr, 5); /* length */ *obptr++ = SF_TRANSFER_DATA; SET16(obptr, TR_CLOSE_REPLY); net_output(); } /* Abort a transfer. */ static void dft_abort(const char *s, unsigned short code) { Replace(abort_string, NewString(s)); trace_ds("> WriteStructuredField FileTransferData Error\n"); obptr = obuf; space3270out(10); *obptr++ = AID_SF; SET16(obptr, 9); /* length */ *obptr++ = SF_TRANSFER_DATA; *obptr++ = HIGH8(code); *obptr++ = TR_ERROR_REPLY; SET16(obptr, TR_ERROR_HDR); SET16(obptr, TR_ERR_CMDFAIL); net_output(); /* Update the pop-up and state. */ ft_aborting(); } /* Processes a Read Modified command when there is upload data pending. */ void dft_read_modified(void) { if (dft_savebuf_len) { trace_ds("> WriteStructuredField FileTransferData\n"); obptr = obuf; space3270out(dft_savebuf_len); memcpy(obptr, dft_savebuf, dft_savebuf_len); obptr += dft_savebuf_len; net_output(); } } /* Update the buffersize for generating a Query Reply. */ void set_dft_buffersize(void) { if (dft_buffersize == 0) { dft_buffersize = appres.dft_buffer_size; if (dft_buffersize == 0) dft_buffersize = DFT_BUF; } if (dft_buffersize > DFT_MAX_BUF) dft_buffersize = DFT_MAX_BUF; if (dft_buffersize < DFT_MIN_BUF) dft_buffersize = DFT_MIN_BUF; } #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/ansic.h0000644000175000017500000000453411254565704015410 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * ansic.h * Global declarations for ansi.c. */ #if defined(X3270_ANSI) /*[*/ extern void ansi_init(void); extern void ansi_process(unsigned int c); extern void ansi_send_clear(void); extern void ansi_send_down(void); extern void ansi_send_home(void); extern void ansi_send_left(void); extern void ansi_send_pa(int nn); extern void ansi_send_pf(int nn); extern void ansi_send_right(void); extern void ansi_send_up(void); extern void ansi_snap(void); extern void ansi_snap_modes(void); extern void toggle_lineWrap(struct toggle *t, enum toggle_type type); #else /*][*/ #define ansi_init() #define ansi_process(n) #define ansi_send_clear() #define ansi_send_down() #define ansi_send_home() #define ansi_send_left() #define ansi_send_pa(n) #define ansi_send_pf(n) #define ansi_send_right() #define ansi_send_up() #define ansi_snap() #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/ft_cut_ds.h0000644000175000017500000000727411254565704016271 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Data Stream definitions for CUT-style file transfers. */ /* Primary Area */ #define O_FRAME_TYPE 0 /* offset to frame type */ #define FT_CONTROL_CODE 0xc3 /* frame type: control code (host->) */ #define O_CC_FRAME_SEQ 1 /* offset to frame sequence */ #define O_CC_STATUS_CODE 2 /* offset to status code */ #define SC_HOST_ACK 0x8181 /* ack of IND$FILE command */ #define SC_XFER_COMPLETE 0x8189 /* file transfer complete */ #define SC_ABORT_FILE 0x8194 /* abort, file error */ #define SC_ABORT_XMIT 0x8198 /* abort, transmission error */ #define O_CC_MESSAGE 4 /* offset of message text */ #define FT_DATA_REQUEST 0xc2 /* frame type: data request (host->) */ #define O_DR_SF 1 /* offset to start field */ #define O_DR_DATA_CODE 2 /* offset to data code */ #define O_DR_FRAME_SEQ 3 /* offset to frame sequence */ #define FT_RETRANSMIT 0x4c /* frame type: retransmit (host->) */ #define FT_DATA 0xc1 /* frame type: data (bidirectional) */ #define O_DT_FRAME_SEQ 1 /* offset to frame sequence */ #define O_DT_CSUM 2 /* offset to checksum */ #define O_DT_LEN 3 /* offset to length */ #define O_DT_DATA 5 /* offset to data */ /* Response Area */ #define O_RESPONSE 1914 /* offset to response area */ #define RO_FRAME_TYPE (O_RESPONSE+1) /* response frame type */ #define RFT_RETRANSMIT 0x4c /* response frame type: retransmit */ #define RFT_CONTROL_CODE 0xc3 /* response frame type: control code */ #define RO_FRAME_SEQ (O_RESPONSE+2) /* response frame sequence */ #define RO_REASON_CODE (O_RESPONSE+3) /* response reason code */ /* Special Data */ #define EOF_DATA1 0x5c /* special data for EOF */ #define EOF_DATA2 0xa9 /* Acknowledgement AIDs */ #define ACK_OK AID_ENTER #define ACK_RETRANSMIT AID_PF1 #define ACK_RESYNC_VM AID_CLEAR #define ACK_RESYNC_TSO AID_PA2 #define ACK_ABORT AID_PF2 /* Data area for uploads. */ #define O_UP_DATA_CODE 2 /* offset to data code */ #define O_UP_FRAME_SEQ 3 /* offset to frame sequence */ #define O_UP_CSUM 4 /* offset to checksum */ #define O_UP_LEN 5 /* offset to length */ #define O_UP_DATA 7 /* offset to start of data */ #define O_UP_MAX (1919 - O_UP_DATA) /* max upload data */ ibm-3270-3.3.10ga4/ws3270/trace_dsc.h0000644000175000017500000000505511254565704016241 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * trace_dsc.h * Global declarations for trace_ds.c. */ #if defined(X3270_TRACE) /*[*/ extern Boolean trace_skipping; extern char *tracefile_name; const char *rcba(int baddr); void toggle_dsTrace(struct toggle *t, enum toggle_type tt); void toggle_eventTrace(struct toggle *t, enum toggle_type tt); void toggle_screenTrace(struct toggle *t, enum toggle_type tt); void trace_ansi_disc(void); void trace_char(char c); void trace_ds(const char *fmt, ...) printflike(1, 2); void trace_ds_nb(const char *fmt, ...) printflike(1, 2); void trace_dsn(const char *fmt, ...) printflike(1, 2); void trace_event(const char *fmt, ...) printflike(1, 2); void trace_screen(void); void trace_rollover_check(void); #else /*][*/ #define rcba 0 && #if defined(__GNUC__) /*[*/ #define trace_ds(format, args...) #define trace_dsn(format, args...) #define trace_ds_nb(format, args...) #define trace_event(format, args...) #else /*][*/ #define trace_ds 0 && #define trace_ds_nb 0 && #define trace_dsn 0 && #define trace_event 0 && #define rcba 0 && #endif /*]*/ #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/actionsc.h0000644000175000017500000000465711254565704016124 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * actionsc.h * Global declarations for actions.c. */ /* types of internal actions */ enum iaction { IA_STRING, IA_PASTE, IA_REDRAW, IA_KEYPAD, IA_DEFAULT, IA_KEY, IA_MACRO, IA_SCRIPT, IA_PEEK, IA_TYPEAHEAD, IA_FT, IA_COMMAND, IA_KEYMAP, IA_IDLE }; extern enum iaction ia_cause; extern int actioncount; extern XtActionsRec *actions; extern const char *ia_name[]; #if defined(X3270_TRACE) /*[*/ extern void action_debug(XtActionProc action, XEvent *event, String *params, Cardinal *num_params); #else /*][*/ #define action_debug(a, e, p, n) #endif /*]*/ extern void action_init(void); extern void action_internal(XtActionProc action, enum iaction cause, const char *parm1, const char *parm2); extern const char *action_name(XtActionProc action); extern int check_usage(XtActionProc action, Cardinal nargs, Cardinal nargs_min, Cardinal nargs_max); extern Boolean event_is_meta(int state); ibm-3270-3.3.10ga4/ws3270/objects.h0000644000175000017500000000346311254565704015744 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * objects.h * x3270 object names. */ #define ObjConfirmButton "confirmButton" #define ObjConfirm2Button "confirm2Button" #define ObjCancelButton "cancelButton" #define ObjDialog "dialog" #define ObjSmallLabel "smallLabel" #define ObjNameLabel "nameLabel" #define ObjDataLabel "dataLabel" ibm-3270-3.3.10ga4/ws3270/appres.h0000644000175000017500000001527511254565704015611 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND JEFF SPARKES "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR JEFF SPARKES BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ /* * appres.h * Application resource definitions for x3270, c3270, s3270 and * tcl3270. */ /* Toggles */ enum toggle_type { TT_INITIAL, TT_INTERACTIVE, TT_ACTION, TT_FINAL }; struct toggle { Boolean value; /* toggle value */ Boolean changed; /* has the value changed since init */ Widget w[2]; /* the menu item widgets */ const char *label[2]; /* labels */ void (*upcall)(struct toggle *, enum toggle_type); /* change value */ }; #define MONOCASE 0 #define ALT_CURSOR 1 #define CURSOR_BLINK 2 #define SHOW_TIMING 3 #define CURSOR_POS 4 #if defined(X3270_TRACE) /*[*/ #define DS_TRACE 5 #endif /*]*/ #define SCROLL_BAR 6 #if defined(X3270_ANSI) /*[*/ #define LINE_WRAP 7 #endif /*]*/ #define BLANK_FILL 8 #if defined(X3270_TRACE) /*[*/ #define SCREEN_TRACE 9 #define EVENT_TRACE 10 #endif /*]*/ #define MARGINED_PASTE 11 #define RECTANGLE_SELECT 12 #if defined(X3270_DISPLAY) /*[*/ #define CROSSHAIR 13 #define VISIBLE_CONTROL 14 #endif /*]*/ #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/ #define AID_WAIT 15 #endif /*]*/ #if defined(C3270) /*[*/ #define UNDERSCORE 16 #endif /*]*/ #define N_TOGGLES 17 #define toggled(ix) (appres.toggle[ix].value) #define toggle_toggle(t) \ { (t)->value = !(t)->value; (t)->changed = True; } /* Application resources */ typedef struct { /* Basic colors */ #if defined(X3270_DISPLAY) /*[*/ Pixel foreground; Pixel background; #endif /*]*/ /* Options (not toggles) */ #if defined(X3270_DISPLAY) || (defined(C3270) && !defined(_WIN32)) /*[*/ Boolean mono; #endif /*]*/ Boolean extended; Boolean m3279; Boolean modified_sel; Boolean once; #if defined(X3270_DISPLAY) || (defined(C3270) && defined(_WIN32)) /*[*/ Boolean visual_bell; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ Boolean menubar; Boolean active_icon; Boolean label_icon; Boolean invert_kpshift; Boolean use_cursor_color; Boolean allow_resize; Boolean no_other; Boolean visual_select; Boolean suppress_host; Boolean suppress_font_menu; # if defined(X3270_KEYPAD) /*[*/ Boolean keypad_on; # endif /*]*/ #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ Boolean do_confirms; Boolean reconnect; #endif /*]*/ #if defined(C3270) /*[*/ Boolean all_bold_on; Boolean curses_keypad; Boolean cbreak_mode; Boolean no_prompt; #if !defined(_WIN32) /*[*/ Boolean reverse_video; #endif /*]*/ #if defined(_WIN32) /*[*/ Boolean auto_shortcut; #endif /*]*/ #endif /*]*/ Boolean apl_mode; Boolean scripted; Boolean numeric_lock; Boolean secure; Boolean oerr_lock; Boolean typeahead; Boolean debug_tracing; Boolean disconnect_clear; Boolean highlight_bold; Boolean color8; Boolean bsd_tm; Boolean unlock_delay; #if defined(X3270_SCRIPT) /*[*/ Boolean socket; int script_port; #endif /*]*/ /* Named resources */ #if defined(X3270_KEYPAD) /*[*/ char *keypad; #endif /*]*/ #if defined(X3270_DISPLAY) || defined(C3270) /*[*/ char *key_map; char *compose_map; char *printer_lu; #endif /*]*/ #if defined(X3270_DISPLAY) /*[*/ char *efontname; char *fixed_size; char *icon_font; char *icon_label_font; int save_lines; char *normal_name; char *select_name; char *bold_name; char *colorbg_name; char *keypadbg_name; char *selbg_name; char *cursor_color_name; char *color_scheme; int bell_volume; char *char_class; int modified_sel_color; int visual_select_color; #if defined(X3270_DBCS) /*[*/ char *input_method; char *preedit_type; #endif /*]*/ #endif /*]*/ #if defined(X3270_DBCS) /*[*/ char *dbcs_cgcsgid; #endif /*]*/ #if defined(C3270) /*[*/ char *meta_escape; char *all_bold; char *altscreen; char *defscreen; Boolean acs; Boolean ascii_box_draw; # if !defined(_WIN32) /*[*/ Boolean mouse; # endif /*]*/ #endif /*]*/ char *conf_dir; char *model; char *hostsfile; char *port; char *charset; char *sbcs_cgcsgid; char *termname; char *login_macro; char *macros; #if defined(X3270_TRACE) /*[*/ char *trace_dir; char *trace_file; char *screentrace_file; char *trace_file_size; # if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ Boolean trace_monitor; # endif /*]*/ #endif /*]*/ char *oversize; #if defined(X3270_FT) /*[*/ char *ft_command; int dft_buffer_size; #endif /*]*/ char *connectfile_name; char *idle_command; Boolean idle_command_enabled; char *idle_timeout; #if defined(X3270_SCRIPT) /*[*/ char *plugin_command; #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ char *cert_file; #endif /*]*/ char *proxy; #if defined(TCL3270) /*[*/ int command_timeout; #endif /*]*/ int unlock_delay_ms; /* Toggles */ struct toggle toggle[N_TOGGLES]; #if defined(X3270_DISPLAY) /*[*/ /* Simple widget resources */ Cursor normal_mcursor; Cursor wait_mcursor; Cursor locked_mcursor; #endif /*]*/ #if defined(X3270_ANSI) /*[*/ /* Line-mode TTY parameters */ Boolean icrnl; Boolean inlcr; Boolean onlcr; char *erase; char *kill; char *werase; char *rprnt; char *lnext; char *intr; char *quit; char *eof; #endif /*]*/ char *hostname; #if defined(WC3270) /*[*/ char *title; #endif /*]*/ #if defined(WS3270) /*[*/ int local_cp; #endif /*]*/ #if defined(USE_APP_DEFAULTS) /*[*/ /* App-defaults version */ char *ad_version; #endif /*]*/ } AppRes, *AppResptr; extern AppRes appres; ibm-3270-3.3.10ga4/ws3270/html/0000755000175000017500000000000011261530022015057 5ustar bastianbastianibm-3270-3.3.10ga4/ws3270/html/Intro.html0000644000175000017500000000221011254565671017057 0ustar bastianbastian ws3270 Introduction

ws3270 Introduction

ws3270 is a scripted IBM 3270 terminal emulator. It can be used to communicate with any IBM host that supports 3270-style connections over TELNET. It can also communicate with hosts that use line-by-line ASCII mode to do initial login negotiation before switching to full-screen 3270 mode.

ws3270 emulates one of four models of an IBM 3278 or 3279 terminal. The difference between the various models is the screen size. The emulation is not quite complete; ws3270 understands extended field orders but does not implement some of the extended attributes (outlining, extended validation, etc.). It does not support 3179G bit-mapped graphics (GDDM).

ws3270 supports the APL character set and several international character sets. Many APL and international symbols may be entered by their X11 symbol names. ibm-3270-3.3.10ga4/ws3270/html/x3270-script.html0000644000175000017500000006646311261530016020054 0ustar bastianbastian x3270-script Manual Page

x3270-script Manual Page

Contents

Name
Synopsis
Description
Status Format
Differences
Script-Specific Actions
File Transfer
See Also
Version

Name

Scripting Facilities for x3270, s3270, ws3270 and c3270

Synopsis

x3270 -script [ x3270-options ]
s3270 [ s3270-options ]
ws3270 [ ws3270-options ]
Script ( command [ ,arg... ] )

Description

The x3270 scripting facilities allow the interactive 3270 emulators x3270 and c3270 to be operated under the control of another program, and form the basis for the script-only emulators s3270 and ws3270.

There are two basic scripting methods. The first is the peer script facility, invoked by the x3270 -script switch, and the default mode for s3270 and ws3270. This runs x3270, s3270 or ws3270 as a child of another process. Typically this would be a script using expect(1), perl(1), or the co-process facility of the Korn Shell ksh(1). Inthis mode, the emulator process looks for commands on its standard input, and places the responses on standard output and standard error output.

The second method is the child script facility, invoked by the Script action in x3270, c3270, or s3270. This runs a script as a child process of the emulator. The child has access to pipes connected to the emulator; the emulator look for commands on one pipe, and places the responses on the other. (The file descriptor of the pipe for commands to the emulator is passed in the environment variable X3270INPUT; the file descriptor of the pipe for responses from the emulator is passed in the environment variable X3270OUTPUT.)

It is possible to mix the two methods. A script can invoke another script with the Script action, and may also be implicitly nested when a script invokes the Connect action, and the ibm_hosts file specifies a login script for that host name.

Commands are emulator actions; the syntax is the same as for the right-hand side of an Xt translation table entry (an x3270 or c3270 keymap). Unlike translation tables, action names are case-insensitive, can be uniquely abbreviated, and the parentheses may be omitted if there are no parameters. Any input line that begins with # or ! is treaded as a comment and will be ignored.

Any emulator action may be specified. Several specific actions have been defined for use by scripts, and the behavior of certain other actions (and of the emulators in general) is different when an action is initiated by a script.

Some actions generate output; some may delay completion until the certain external events occur, such as the host unlocking the keyboard. The completion of every command is marked by a two-line message. The first line is the current status of the emulator, documented below. If the command is successful, the second line is the string "ok"; otherwise it is the string "error".

Status Format

The status message consists of 12 blank-separated fields:
1 Keyboard State
If the keyboard is unlocked, the letter U. If the keyboard is locked waiting for a response from the host, or if not connected to a host, the letter L. If the keyboard is locked because of an operator error (field overflow, protected field, etc.), the letter E.
2 Screen Formatting
If the screen is formatted, the letter F. If unformatted or in NVT mode, the letter U.
3 Field Protection
If the field containing the cursor is protected, the letter P. If unprotected or unformatted, the letter U.
4 Connection State
If connected to a host, the string C(hostname). Otherwise, the letter N.
5 Emulator Mode
If connected in 3270 mode, the letter I. If connected in NVT line mode, the letter L. If connected in NVT character mode, the letter C. If connected in unnegotiated mode (no BIND active from the host), the letter P. If not connected, the letter N.
6 Model Number (2-5)
7 Number of Rows
The current number of rows defined on the screen. The host can request that the emulator use a 24x80 screen, so this number may be smaller than the maximum number of rows possible with the current model.
8 Number of Columns
The current number of columns defined on the screen, subject to the same difference for rows, above.
9 Cursor Row
The current cursor row (zero-origin).
10 Cursor Column
The current cursor column (zero-origin).
11 Window ID
The X window identifier for the main x3270 window, in hexadecimal preceded by 0x. For s3270, ws3270 and c3270, this is zero.
12 Command Execution Time
The time that it took for the host to respond to the previous commnd, in seconds with milliseconds after the decimal. If the previous command did not require a host response, this is a dash.

Differences

When an action is initiated by a script, the emulators behave in several different ways:

If an error occurs in processing an action, the usual pop-up window does not appear. Instead, the text is written to standard error output.

If end-of-file is detected on standard input, the emulator exits. (A script can exit without killing the emulator by using the CloseScript action, below.) Note that this applies to peer scripts only; end-of-file on the pipe connected to a child script simply causes the pipes to be closed and the Script action to complete.

The Quit action always causes the emulator to exit. (When called from the keyboard, it will exit only if not connected to a host.)

Normally, the AID actions (Clear, Enter, PF, and PA) will not complete until the host unlocks the keyboard. If the parameter to a String action includes a code for one these actions, it will also wait for the keyboard to unlock before proceeding.

The AidWait toggle controls with behavior. When this toggle is set (the default), actions block as described above. When the toggle is clear, AID actions complete immediately. The Wait(Output) action can then be used to delay a script until the host changes something on the screen, and the Wait(Unlock) action can be used to delay a script until the host unlocks the keyboard, regardless of the state of the AidWait toggle.

Note that the Script action does not complete until end-of-file is detected on the pipe or the CloseScript action is called by the child process. This behavior is not affected by the state of the AidWait toggle.

Script-Specific Actions

The following actions have been defined or modified for use with scripts. (Note that unlike the display on the status line, row and col coordinates used in these actions use [0,0] as their origin, not [1,1]).
AnsiText
Outputs whatever data that has been output by the host in NVT mode since the last time that AnsiText was called. The data is preceded by the string "data: ", and has had all control characters expanded into C backslash sequences.

This is a convenient way to capture NVT mode output in a synchronous manner without trying to decode the screen contents.

Ascii(row,col,rows,cols)
Ascii(row,col,length)
Ascii(length)
Ascii
Outputs an ASCII text representation of the screen contents. Each line is preceded by the string "data: ", and there are no control characters.

If four parameters are given, a rectangular region of the screen is output.

If three parameters are given, length characters are output, starting at the specified row and column.

If only the length parameter is given, that many characters are output, starting at the cursor position.

If no parameters are given, the entire screen is output.

The EBCDIC-to-ASCII translation and output character set depend on the both the emulator character set (the -charset option) and the locale. UTF-8 and certain DBCS locales may result in multi-byte expansions of EBCDIC characters that translate to ASCII codes greater than 0x7f.

AsciiField
Outputs an ASCII text representation of the field containing the cursor. The text is preceded by the string "data: ".
Connect(hostname)
Connects to a host. The command does not return until the emulator is successfully connected in the proper mode, or the connection fails.
CloseScript(status)
Causes the emulator to stop reading commands from the script. This is useful to allow a peer script to exit, with the emulator proceeding interactively. (Without this command, the emulator would exit when it detected end-of-file on standard input.) If the script was invoked by the Script action, the optional status is used as the return status of Script; if nonzero, Script will complete with an error, and if this script was invoked as part of login through the ibm_hosts file, the connection will be broken.
ContinueScript(param)
Allows a script that is waiting in a PauseScript action, below, to continue. The param given is output by the PauseScript action.
Disconnect
Disconnects from the host.
Ebcdic(row,col,rows,cols)
Ebcdic(row,col,length)
Ebcdic(length)
Ebcdic
The same function as Ascii above, except that rather than generating ASCII text, each character is output as a hexadecimal EBCDIC code, preceded by 0x.
EbcdicField
The same function as AsciiField above, except that it generates hexadecimal EBCDIC codes.
Info(message)
In x3270, pops up an informational message. In c3270 and wc3270, writes an informational message to the OIA (the line below the display). Not defined for s3270 or tcl3270.
Expect(text[,timeout])
Pauses the script until the specified text appears in the data stream from the host, or the specified timeout (in seconds) expires. If no timeout is specified, the default is 30 seconds. Text can contain standard C-language escape (backslash) sequences. No wild-card characters or pattern anchor characters are understood. Expect is valid only in NVT mode.
MoveCursor(row,col)
Moves the cursor to the specified coordinates.
PauseScript
Stops a script until the ContinueScript action, above, is executed. This allows a script to wait for user input and continue. Outputs the single parameter to ContinueScript.
PrintText([command,]filter)
) Pipes an ASCII representation of the current screen image through the named filter, e.g., lpr.
PrintText([html,],file,filename)
) Saves the current screen contents in a file. With the html option, saves it as HTML, otherwise saves it as plain ASCII.
PrintText(html,string)
Returns the current screen contents as HTML.
ReadBuffer(Ascii)
Dumps the contents of the screen buffer, one line at a time. Positions inside data fields are generally output as 2-digit hexadecimal codes in the current display character set. If the current locale specifies UTF-8 (or certain DBCS character sets), some positions may be output as multi-byte strings (4-, 6- or 8-digit codes). DBCS characters take two positions in the screen buffer; the first location is output as a multi-byte string in the current locale codeset, and the second location is output as a dash. Start-of-field characters (each of which takes up a display position) are output as SF(aa=nn[,...]), where aa is a field attribute type and nn is its value.

Attribute
Values
c0 basic 3270
20 protected
10 numeric
04 detectable
08 intensified
0c non-display
01 modified
41 highlighting
f1 blink
f2 reverse
f4 underscore
f8 intensify
42 foreground
f0 neutral black
f1 blue
f2 red
f3 pink
f4 green
f5 turquoise
f6 yellow
f7 neutral white
f8 black
f9 deep blue
fa orange
fb purple
fc pale green
fd pale turquoise
fe grey
ff white
43 character set
f0 default
f1 APL
f8 DBCS

Extended attributes (which do not take up display positions) are output as SA(aa=nn), with aa and nn having the same definitions as above (though the basic 3270 attribute will never appear as an extended attribute).

In addition, NULL characters in the screen buffer are reported as ASCII character 00 instead of 20, even though they should be displayed as blanks.

ReadBuffer(Ebcdic)
Equivalent to Snap(Ascii), but with the data fields output as hexadecimal EBCDIC codes instead. Additionally, if a buffer position has the Graphic Escape attribute, it is displayed as GE(xx).
Snap
Equivalent to Snap(Save) (see below).
Snap(Ascii,...)
Performs the Ascii action on the saved screen image.
Snap(Cols)
Returns the number of columns in the saved screen image.
Snap(Ebcdic,...)
Performs the Ebcdic action on the saved screen image.
Snap(ReadBuffer)
Performs the ReadBuffer action on the saved screen image.
Snap(Rows)
Returns the number of rows in the saved screen image.
Snap(Save)
Saves a copy of the screen image and status in a temporary buffer. This copy can be queried with other Snap actions to allow a script to examine a consistent screen image, even when the host may be changing the image (or even the screen dimensions) dynamically.
Snap(Status)
Returns the status line from when the screen was last saved.
Snap(Wait[,timeout],Output)
Pauses the script until the host sends further output, then updates the snap buffer with the new screen contents. Used when the host unlocks the keyboard (allowing the script to proceed after an Enter, PF or PA action), but has not finished updating the screen. This action is usually invoked in a loop that uses the Snap(Ascii) or Snap(Ebcdic) action to scan the screen for some pattern that indicates that the host has fully processed the last command.

The optional timeout parameter specifies a number of seconds to wait before failing the Snap action. The default is to wait indefinitely.

Source(file)
Read and execute commands from file. Any output from those commands will become the output from Source. If any of the commands fails, the Source command will not abort; it will continue reading commands until EOF.
Title(text)
Changes the x3270 window title to text.
Transfer(keyword=value,...)
Invokes IND$FILE file transfer. See FILE TRANSFER below.
Wait([timeout,] 3270Mode)
Used when communicating with a host that switches between NVT mode and 3270 mode. Pauses the script or macro until the host negotiates 3270 mode, then waits for a formatted screen as above.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

For backwards compatibility, Wait(3270) is equivalent to Wait(3270Mode)

Wait([timeout,] Disconnect)
Pauses the script until the host disconnects. Often used to after sending a logoff command to a VM/CMS host, to ensure that the session is not unintentionally set to disconnected state.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

Wait([timeout,] InputField)
A useful utility for use at the beginning of scripts and after the Connect action. In 3270 mode, waits until the screen is formatted, and the host has positioned the cursor on a modifiable field. In NVT mode, waits until the host sends at least one byte of data.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

For backwards compatibility, Wait is equivalent to Wait(InputField).

Wait([timeout,] NVTMode)
Used when communicating with a host that switches between 3270 mode and NVT mode. Pauses the script or macro until the host negotiates NVT mode, then waits for a byte from the host as above.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

For backwards compatibility, Wait(ansi) is equivalent to Wait(NVTMode).

Wait([timeout,] Output)
Pauses the script until the host sends further output. Often needed when the host unlocks the keyboard (allowing the script to proceed after a Clear, Enter, PF or PA action), but has not finished updating the screen. Also used in non-blocking AID mode (see DIFFERENCES for details). This action is usually invoked in a loop that uses the Ascii or Ebcdic action to scan the screen for some pattern that indicates that the host has fully processed the last command.

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

Wait([timeout,] Unlock)
Pauses the script until the host unlocks the keyboard. This is useful when operating in non-blocking AID mode (toggle AidWait clear), to wait for a host command to complete. See DIFFERENCES for details).

The optional timeout parameter specifies a number of seconds to wait before failing the Wait action. The default is to wait indefinitely.

Wait(timeout, Seconds)
Delays the script timeout seconds. Unlike the other forms of Wait, the timeout is not optional.
WindowState(mode)
If mode is Iconic, changes the x3270 window into an icon. If mode is Normal, changes the x3270 window from an icon to a normal window.

File Transfer

The Transfer action implements IND$FILE file transfer. This action requires that the IND$FILE program be installed on the IBM host, and that the 3270 cursor be located in a field that will accept a TSO or VM/CMS command.

The Transfer action can be entered at the command prompt with no parameters, which will cause it to prompt interactively for the file names and options. It can also be invoked with parameters to define the entire transfer.

Because of the complexity and number of options for file transfer, the parameters to the Transfer action take the unique form of option=value, and can appear in any order. Note that if the value contains spaces (such as a VM/CMS file name), then the entire parameter must be quoted, e.g., "HostFile=xxx foo a". The options are:

Option Required? Default Other Values
Direction No receive send
HostFile Yes    
LocalFile Yes    
Host No tso vm
Mode No ascii binary
Cr No remove add, keep
Remap No yes no
Exist No keep replace, append
Recfm No   fixed, variable, undefined
Lrecl No    
Blksize No    
Allocation No   tracks, cylinders, avblock
PrimarySpace No    
SecondarySpace No    
BufferSize No 4096  

The option details are as follows.

Direction
send to send a file to the host, receive to receive a file from the host.
HostFile
The name of the file on the host.
LocalFile
The name of the file on the local workstation.
Host
The type of host (which dictates the form of the IND$FILE command): tso (the default) or vm.
Mode
Use ascii (the default) for a text file, which will be translated between EBCDIC and ASCII as necessary. Use binary for non-text files.
Cr
Controls how Newline characters are handled when transferring Mode=ascii files. remove (the default) strips Newline characters in local files before transferring them to the host. add adds Newline characters to each host file record before transferring it to the local workstation. keep preserves Newline characters when transferring a local file to the host.
Remap
Controls text translation for Mode=ascii files. The value yes (the default) causes x3270-script to remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page. The value no causes x3270-script to pass the text to or from the host as-is, leaving all translation to the IND$FILE program on the host.
Exist
Controls what happens when the destination file already exists. keep (the default) preserves the file, causing the Transfer action to fail. replace overwrites the destination file with the source file. append appends the source file to the destination file.
Recfm
Controls the record format of files created on the host. fixed creates a file with fixed-length records. variable creates a file with variable-length records. undefined creates a file with undefined-length records (TSO hosts only). The Lrecl option controls the record length or maximum record length for Recfm=fixed and Recfm=variable files, respectively.
Lrecl
Specifies the record length (or maximum record length) for files created on the host.
Blksize
Specifies the block size for files created on the host. (TSO hosts only.)
Allocation
Specifies the units for the TSO host PrimarySpace and SecondarySpace options: tracks, cylinders or avblock.
PrimarySpace
Primary allocation for a file created on a TSO host. The units are given by the Allocation option.
SecondarySpace
Secondary allocation for a file created on a TSO host. The units are given by the Allocation option.
BufferSize
Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them.

See Also

expect(1)
ksh(1)
x3270(1)
c3270(1)
s3270(1)
ws3270(1)

Version

Version 3.3.10ga4
This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/ws3270/html/Bugs.html0000644000175000017500000000056211254565671016674 0ustar bastianbastian Known Bugs in s3270 3.3

Known Bugs in ws3270 3.3

(none)
ibm-3270-3.3.10ga4/ws3270/html/Resources.html0000644000175000017500000007214711261530016017735 0ustar bastianbastian ws3270 Resources

ws3270 Resources

Resources are used to configure ws3270. Resources are named items with string, integer or Boolean values.

Resource definitions come from the following sources:

  • Default values are compiled into ws3270.
  • If a session file foo.ws3270 is specified on the command line, its contents are applied. These definitions override resource values defined by compiled-in defaults.
  • Command-line options override all other resource definitions. If more than one command-line option sets a resource, the last one is used.
Many resources have their own command-line switches, which are listed below. Those that do not can still be set from the command-line via the -xrm command-line option. For example the ws3270.bsdTm resource can be set by the following command-line option:
     -xrm 'ws3270.bsdTm: true'
 
Note that -xrm is supported on all of the 3270 emulators, not just on x3270.

Resource File Syntax

A resource file (session file) has the following syntax.
  • Each definition consists of:
        ws3270.resource-name: value
      
  • Comment lines begin with !.
  • Line continuation is indicated by a backshash (\) character at the end of a line.

Alphabetical Resource List

Name: ws3270.blankFill
Type: Boolean
Default: false
Command Line: -set blankFill , -clear blankFill
Description:

When true, in 3270 mode ws3270 will automatically convert trailing blanks in a field to NULLs in order to insert a character, and will automatically convert leading NULLs to blanks so that input data is not squeezed to the left. This works around some of the quirkier behavior of real 3270 terminals.

Name: ws3270.bsdTm
Type: Boolean
Default: false
Description:

Defines ws3270's response to the TELNET DO TIMING MARK option. When set to false, ws3270 will respond to DO TIMING MARK with WONT TIMING MARK, which is consistent with most modern TELNET clients. When true, ws3270 will respond with WILL TIMING MARK, which is consistent with the old BSD telnet command and with previous versions of ws3270. In either case, ws3270 will never respond to a DONT TIMING MARK option.

Name: ws3270.certFile
Type: String
Command Line: -certfile
Description:

Gives the name of a certificate file, used by the OpenSSL library.

Name: ws3270.charset
Type: String
Default: bracket
Command Line: -charset
Description:

This defines the host EBCDIC character set, that is, what glyph (image) is displayed for each EBCDIC code sent by the host, and what EBCDIC code is sent to the host for each character typed on the keyboard. This is more correctly referred to as the host code page.

To display the character sets supported by ws3270, use the -v command-line option.

Name: ws3270.color8
Type: Boolean
Default: false
Description:

If true, ws3270 will respond to a Query(Color) with a list of 8 supported colors. If false, it will send a list of 16 colors. The 8-color setting is required for some hosts which abort a session if 16 colors are reported.

Name: ws3270.confDir
Type: String
Default: .
Description:

Defines the ws3270 configuration directory, where ws3270 will search for the ibm_hosts file by default. (See ws3270.hostsFile.)

The default is to search the directory where ws3270 was started, which usually its installation directory.

Name: ws3270.dbcsCgcsgid
Type: String
Description:

Overrides the compiled-in value of the CGCSGID for the current host character set, which will be reported to the host in response to a Query(Character Sets). The value is an integer, which can be prefixed with '0x' to be in hexadecimal. The upper 16 bits are the GCSGID (character set) and the lower 16 bits are the CPGID (code page). This value applies only to the double-byte (DBCS) character set. Use ws3270.sbcsCgcsgid for the single-byte (SBCS) character set.

Name: ws3270.dftBufferSize
Type: Integer
Default: 4096
Description:

Specifies the default buffer size for DFT IND$FILE file transfers. This value can be overridden in the File Transfer dialog and by a parameter to the Transfer action.

Name: ws3270.dsTrace
Type: Boolean
Default: false
Command Line: -trace , -set dsTrace , -clear dsTrace
Description:

When true, ws3270 writes a hexadecimal representation of all network traffic (and its interpretation) into a file, which defaults to x3trc.process-id.txt in the ws3270 Application Data directory. The directory prefix is defined by ws3270.traceDir. If ws3270.traceFile is defined, it gives the entire pathname and ws3270.traceDir is ignored.

Name: ws3270.eof
Type: String
Default: ^D
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when ws3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current line of input to be forwarded to the host without a trailing CR/LF sequence.

Name: ws3270.erase
Type: String
Default: ^?
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (ws3270 gathers a line of input before forwarding it ot the host), entering this character at the keyboard will cause ws3270 to discard the last character on the input line.

When connected in character-at-a-time mode (ws3270 sends each keystroke to the host as it is entered), this is the character that will be sent to the host by the Erase action.

Name: ws3270.eventTrace
Type: Boolean
Default: false
Command Line: -set eventTrace , -clear eventTrace
Description:

When true, ws3270 traces information about keyboard and mouse events into a file. The default file name is x3trc.process-id.txt in the ws3270 Application Data directory. The directory prefix is defined by ws3270.traceDir. If ws3270.traceFile is defined, it gives the entire pathname and ws3270.traceDir is ignored.

Name: ws3270.extended
Type: Boolean
Default: false
Command Line: -extended
Description:

Deprecated resource -- replaced by ws3270.model syntax

Indicates support for the 3270 Extended Data Stream.

Name: ws3270.hostname
Type: String
Description:

Gives the name of the host to connect to. The name can include the usual options (prefixes to specify special connection options, LU names, and port). A hostname specified on the command line takes precedence over ws3270.hostName.

The most common use of ws3270.hostName is in session files, where a file is used to pass all of the options to establish a ws3270 session.

Name: ws3270.hostsFile
Type: String
Default: ibm_hosts
Description:

The pathname of a file containing hostname aliases. The file can also be used to define a set of actions to perform when connecting to a host.

The format of the file is explained on the ibm_hosts manual page.

Name: ws3270.icrnl
Type: Boolean
Default: true
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. It controls whether input carriage returns are mapped to newlines.

Name: ws3270.inlcr
Type: Boolean
Default: false
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. It controls whether input newlines are mapped to carriage returns.

Name: ws3270.intr
Type: String
Default: ^C
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When this character is typed on the keyboard, the TELNET IP (Interrupt Process) sequence is sent to the host.

Name: ws3270.kill
Type: String
Default: ^U
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when ws3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current input line to be erased.

When connected in character-at-a-time mode (when ws3270 sends each keystroke to the host), this is the ASCII character that is sent to the host by the DeleteField action.

Name: ws3270.lineWrap
Type: Boolean
Default: true
Command Line: -set lineWrap , -clear lineWrap
Description:

This setting is used only in NVT mode. When true, ws3270 will automatically insert a CR/LF sequence when output reaches the end of a line. When false, output will pile up at the end of each line until the host sends a CR/LF sequence.

Name: ws3270.loginMacro
Type: String
Description:

Defines a sequence of commands to run as soon as a host connection is established. Usually these would be commands used to navigate through login screens, such String, Tab and Enter.

If a ws3270.hostsFile is in use and a matching entry is found, the login macro from that entry will be used in preference to the ws3270.loginMacro.

Name: ws3270.lnext
Type: String
Default: ^V
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when ws3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard removes any special meaning from the next character entered.

Name: ws3270.m3279
Type: Boolean
Default: false
Command Line: -color
Description:

Deprecated resource -- replaced by ws3270.model syntax

Indicates support for color (a 3279 terminal).

Name: ws3270.model
Type: String
Default: 3279-4-E
Command Line: -model
Description:

The terminal model that ws3270 is emulating. The model is in three parts, separated by dashes; each part is optional.

  • 3278 or 3279
    3278 specifies a monochrome (green) 3270 display.
    3279 specifies a color 3270 display.
  • 2, 3, 4 or 5
    The model number, which determines the size of the screen.
    Model 2 has 24 rows and 80 columns.
    Model 3 has 32 rows and 80 columns.
    Model 4 has 43 rows and 80 columns.
    Model 5 has 27 rows and 132 columns.
    The default is 4.
  • E
    An optional suffix which indicates support for the 3270 Extended Data Stream (color, extended attributes, Query Reply). 3279 implies E.

Name: ws3270.monoCase
Type: Boolean
Default: false
Command Line: -set monoCase , -clear monoCase
Description:

When true, causes ws3270 to run in uppercase-only mode.

Name: ws3270.numericLock
Type: Boolean
Default: false
Description:

When true, causes ws3270 to lock the keyboard when non-numeric data is entered into fields with the Numeric attribute.

Name: ws3270.onlcr
Type: Boolean
Default: true
Description:

Used only in NVT line-at-a-time mode; similar to the stty parameter of the same name. It controls whether output newlines are mapped to CR/LF sequences.

Name: ws3270.oerrLock
Type: Boolean
Default: true
Description:

If true, operator errors (typing into protected fields, insert overflow, etc.) will cause the keyboard to lock with an error message in the OIA (status line). If false, these errors will simply cause the terminal bell will ring, without any keyboard lock or message.

Name: ws3270.once
Type: Boolean
Default: false
Command Line: -once
Description:

When true, ws3270 will exit as soon as a host disconnects. The default is false if no hostname is specified on the command line, true otherwise.

Name: ws3270.oversize
Type: String
Command Line: -oversize
Description:

Sets the screen dimensions to be larger than the default for the chosen model. Its value is a string in the format colsxrows. It is used only if the ws3270.model includes the "-E" (extended data stream) suffix, and only if the specified dimensions are larger than the model number defaults. Also, only hosts that support the Query Reply structured field will function properly with ws3270 in this mode.

Name: ws3270.port
Type: String
Default: telnet
Command Line: -port
Description:

The name of the default TCP port for ws3270 to connect to. This can be either a symbolic name from /etc/services, or an integer.

Name: ws3270.proxy
Type: String
Command Line: -proxy
Description:

Defines a proxy server that ws3270 will use to connect to hosts. The value is of the form type:server[:port], where options for type are described on the ws3270 manual page.

Name: ws3270.quit
Type: String
Default: ^\
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when ws3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the TELNET BREAK sequence to be sent to the host.

Name: ws3270.rprnt
Type: String
Default: ^R
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when ws3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current input line to be redisplayed.

Name: ws3270.sbcsCgcsgid
Type: String
Description:

Overrides the compiled-in value of the CGCSGID for the current host character set. The value is an integer, which can be prefixed with '0x' to be in hexadecimal. The upper 16 bits are the GCSGID (character set) and the lower 16 bits are the CPGID (code page). This value applies only to the single-byte (SBCS) character set. Use ws3270.dbcsCgcsgid for the double-byte (DBCS) character set.

Name: ws3270.screenTrace
Type: Boolean
Default: false
Command Line: -set screenTrace , -clear screenTrace
Description:

When true, ws3270 will save an ASCII version of the screen image in a file every time it changes. The file name defaults to x3scr.pid.txt in the ws3270 Application Data directory. The directory prefix is defined by the ws3270.traceDir resource. If the ws3270.screenTraceFile resource is defined, it defines the file name and ws3270.traceDir is ignored. file name.

Name: ws3270.screenTraceFile
Type: String
Description:

If defined, gives the name of the file that screen traces will be written into.

Name: ws3270.scriptPort
Type: Integer
Command Line: -scriptport
Description:

If defined, ws3270 will accept script connections on the specified local TCP port. The rules for the commands passed over these connections are documented in the x3270-script manual page.

Name: ws3270.suppressActions
Type: String
Description:

A list of whitespace-separated action names, with or without parentheses, which are to be ignored. The actions will be completely inaccessible, whether by keymaps, scripts, macros or the Execute an Action menu option. This resource is intended to be used as a security precaution for users who can define their own keymaps, but who do not have access to resource definitions or command-line options.

Name: ws3270.termName
Type: String
Command Line: -tn
Description:

An alternate name to be sent in response to the host's TELNET DO OPTION TERMINAL-NAME request. The default is IBM-, followed by the value of ws3270.model.

Name: ws3270.traceDir
Type: String
Default: app-data
Description:

Defines the directory that trace files are written into. The default is the ws3270 Application Data directory.

Name: ws3270.traceFile
Type: String
Command Line: -tracefile
Description:

If defined, gives the name of the file that data stream and event traces will be written into.

Name: ws3270.traceFileSize
Type: String
Command Line: -tracefilesize
Description:

If defined, gives a limit on the size of the file that data stream and event traces will be written into. If not defined, or defined as 0, there will be no limit on the size of the file. The value is a number, followed by an optional suffix. If the suffix is K (e.g., 128K), the value will be multiplied by 1024. If the suffix is M, the value will be multiplied by (1024*1024). The size limit enforced at operation boundaries, not per byte, so the actual file may grow slightly larger. When the file size exceeds the limit, the second half of the file will be written over the first, so that in steady state, the file size will vary between half the ws3270.traceFileSize and the entire ws3270.traceFileSize.

Name: ws3270.typeahead
Type: Boolean
Default: true
Description:

When true, ws3270 will store keystrokes in a buffer when the keyboard is locked. When false, these keystrokes will be dropped.

Name: ws3270.unlockDelay
Type: Boolean
Default: true
Description:

When ws3270 sends the host an AID (the Enter, Clear, PF or PA actions), it locks the keyboard until the host sends a reply to unlock it. Some hosts unlock the keyboard before they are actually finished processing the command, which can cause scripts to malfunction subtly. To avoid this, ws3270 implements a hack to briefly delay actually unlocking the keyboard. When ws3270.unlockDelay is true, the keyboard unlock will be delayed for ws3270.unlockDelayMs milliseconds. Setting it to false removes this delay, except when executing a macro.

Name: ws3270.unlockDelayMs
Type: Integer
Default: 350
Description:

Overrides the default value for the unlock delay (the delay between the host unlocking the keyboard and ws3270 actually performing the unlock). The value is in milliseconds; use 0 to turn off the delay completely, including for macros.

Name: ws3270.werase
Type: String
Default: ^W
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when ws3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard erases the last word of input.

When connected in character-at-a-time mode (when ws3270 sends each keystroke to the host), this is the ASCII character that is sent to the host by the DeleteWord action.

Index of All Resources

blankFill bsdTm certFile charset
color8 confDir dbcsCgcsgid dftBufferSize
dsTrace eof erase eventTrace
extended hostname hostsFile icrnl
inlcr intr kill lineWrap
loginMacro lnext m3279 model
monoCase numericLock onlcr oerrLock
once oversize port proxy
quit rprnt sbcsCgcsgid screenTrace
screenTraceFile scriptPort suppressActions termName
traceDir traceFile traceFileSize typeahead
unlockDelay unlockDelayMs werase

Basic Configuration Resources

charset hostname model port
proxy

NVT-Mode Resources

eof erase icrnl inlcr
intr kill lineWrap lnext
onlcr quit rprnt werase

Protocol Resources

bsdTm color8 dbcsCgcsgid dftBufferSize
sbcsCgcsgid termName

Terminal Interaction Resources

blankFill numericLock oerrLock

Security Resources

certFile suppressActions

Tracing Resources

dsTrace eventTrace screenTrace screenTraceFile
traceDir traceFile traceFileSize

Other Resources

confDir hostsFile loginMacro monoCase
once oversize scriptPort typeahead
unlockDelay unlockDelayMs

Deprecated Resources

extended m3279

ws3270 verson 3.3.10ga4 Fri Oct 2 20:59:42 CDT 2009 ibm-3270-3.3.10ga4/ws3270/html/ws3270-man.html0000644000175000017500000011307711261530016017477 0ustar bastianbastian ws3270 Manual Page

ws3270 Manual Page

Contents

Name
Synopsis
Description
Options
Character Sets
NVT (ANSI) Mode
Toggles
Actions
File Transfer
The PrintText Action
Nested Scripts
Passthru
Proxy
Resources
See Also
Copyrights
Version

Name

ws3270 - IBM host access tool

Synopsis

ws3270 [options] [host]
ws3270 [options] session-file.ws3270

Description

ws3270 opens a telnet connection to an IBM host, then allows a script to control the host login session. It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection), and supports IND$FILE file transfer.

The full syntax for host is:

[prefix:]...[LUname@]hostname[:port]

Prepending a P: onto hostname causes the connection to go through the telnet-passthru service rather than directly to the host. See PASSTHRU below.

Prepending an S: onto hostname removes the "extended data stream" option reported to the host. See -tn below for further information.

Prepending an N: onto hostname turns off TN3270E support for the session.

Prepending an L: onto hostname causes ws3270 to first create an SSL tunnel to the host, and then create a TN3270 session inside the tunnel. (This function is supported only if ws3270 was built with SSL/TLS support). Note that TLS-encrypted sessions using the TELNET START-TLS option are negotiated with the host automatically; for these sessions the L: prefix should not be used.

A specific Logical Unit (LU) name to use may be specified by prepending it to the hostname with an `@'. Multiple LU names to try can be separated by commas. An empty LU can be placed in the list with an extra comma. (Note that the LU name is used for different purposes by different kinds of hosts. For example, CICS uses the LU name as the Terminal ID.)

The hostname may optionally be placed inside square-bracket characters `[' and `]'. This will prevent any colon `:' characters in the hostname from being interpreted as indicating option prefixes or port numbers. This allows numeric IPv6 addresses to be used as hostnames.

The port to connect to defaults to telnet. This can be overridden with the -port option, or by appending a port to the hostname with a colon `:'. (For compatability with previous versions of ws3270 and with tn3270(1), the port may also be specified as a second, separate argument.)

Options

ws3270 understands the following options:
-charset name
Specifies an EBCDIC host character set. See CHARACTER SETS below.
-clear toggle
Sets the initial value of toggle to false. The list of toggle names is under TOGGLES below.
-localcp codepage
Specifies the Windows code page to use for local I/O. The default is to use the system's ANSI code page.
-model name
The model of 3270 display to be emulated. The model name is in two parts, either of which may be omitted:

The first part is the base model, which is either 3278 or 3279. 3278 specifies a monochrome (green on black) 3270 display; 3279 specifies a color 3270 display.

The second part is the model number, which specifies the number of rows and columns. Model 4 is the default.

Model Number
Columns
Rows
2
80
24
3
80
32
4
80
43
5
132
27

Note: Technically, there is no such 3270 display as a 3279-4 or 3279-5, but most hosts seem to work with them anyway.

The default model is 3278-4.

-oversize colsxrows
Makes the screen larger than the default for the chosen model number. This option has effect only in combination with extended data stream support (controlled by the "ws3270.extended" resource), and only if the host supports the Query Reply structured field. The number of columns multiplied by the number of rows must not exceed 16383 (3fff hex), the limit of 14-bit 3270 buffer addressing.
-port n
Specifies a different TCP port to connect to. n can be a name from /etc/services like telnet, or a number. This option changes the default port number used for all connections. (The positional parameter affects only the initial connection.)
-proxy type:host[:port]
Causes ws3270 to connect via the specified proxy, instead of using a direct connection. The host can be an IP address or hostname. The optional port can be a number or a service name. For a list of supported proxy types, see PROXY below.
-scriptport port
Causes ws3270 to listen for scripting connections on local TCP port port.
-set toggle
Sets the initial value of toggle to true. The list of toggle names is under TOGGLES below. The -p option of x3270if causes it to use this socket, instead of pipes specified by environment variables.
-tn name
Specifies the terminal name to be transmitted over the telnet connection. The default name is IBM-model_name-E, for example, IBM-3278-4-E.

Some hosts are confused by the -E suffix on the terminal name, and will ignore the extra screen area on models 3, 4 and 5. Prepending an s: on the hostname, or setting the "ws3270.extended" resource to "false", removes the -E from the terminal name when connecting to such hosts.

The name can also be specified with the "ws3270.termName" resource.

-trace
Turns on data stream and event tracing at startup. The default trace file name is x3trc.process_id.txt in the ws3270 Application Data directory.
-tracefile file
Specifies a file to save data stream and event traces into.
-tracefilesize size
Places a limit on the size of a trace file. If this option is not specified, or is specified as 0 or none, the trace file will be unlimited. If specified, the trace file cannot already exist, and the (silently enforced) minimum size is 64 Kbytes. The value of size can have a K or M suffix, indicating kilobytes or megabytes respectively.
-v Display the version and build options for ws3270
and exit.
-xrm "ws3270.resource: value"
Sets the value of the named resource to value. Resources control less common ws3270 options, and are defined under RESOURCES below.

Character Sets

The -charset option or the "ws3270.charset" resource controls the EBCDIC host character set used by ws3270. Available sets include:

Charset Name
Host Code Page
belgian
500
belgian-euro
1148
bracket
037
brazilian
275
chinese-gb18030
1388
cp1047
1047
cp870
870
finnish
278
finnish-euro
1143
french
297
french-euro
1147
german
273
german-euro
1141
greek
423
hebrew
424
icelandic
871
icelandic-euro
1149
italian
280
italian-euro
1144
japanese-kana
930
japanese-latin
939
norwegian
277
norwegian-euro
1142
russian
880
simplified-chinese
935
slovenian
870
spanish
284
spanish-euro
1145
thai
1160
traditional-chinese
937
turkish
1026
uk
285
uk-euro
1146
us-euro
1140
us-intl
037

The default character set is bracket, which is useful for common U.S. IBM hosts which use EBCDIC codes AD and BD for the `[' and `]' characters, respectively.

Note that any of the host code pages listed above can be specified by adding cp to the host code page, e.g., cp037 for host code page 037. Also note that the code pages available for a given version of ws3270 are displayed by the -v command-line option.

NVT (ANSI) Mode

Some hosts use an ASCII front-end to do initial login negotiation, then later switch to 3270 mode. ws3270 will emulate an ANSI X.64 terminal until the host places it in 3270 mode (telnet BINARY and SEND EOR modes, or TN3270E mode negotiation).

If the host later negotiates to stop functioning in 3270 mode, ws3270 will return to ANSI emulation.

In NVT mode, ws3270 supports both character-at-a-time mode and line mode operation. You may select the mode with a menu option. When in line mode, the special characters and operational characteristics are defined by resources:

Mode/Character Resource Default
Translate CR to NL ws3270.icrnl true
Translate NL to CR ws3270.inlcr false
Erase previous character ws3270.erase ^?
Erase entire line ws3270.kill ^U
Erase previous word ws3270.werase ^W
Redisplay line ws3270.rprnt ^R
Ignore special meaning of next character ws3270.lnext ^V
Interrupt ws3270.intr ^C
Quit ws3270.quit ^\
End of file ws3270.eof ^D

Toggles

ws3270 has a number of configurable modes which may be selected by the -set and -clear options.
monoCase
If set, ws3270 operates in uppercase-only mode.
blankFill
If set, ws3270 behaves in some un-3270-like ways. First, when a character is typed into a field, all nulls in the field to the left of that character are changed to blanks. This eliminates a common 3270 data-entry surprise. Second, in insert mode, trailing blanks in a field are treated like nulls, eliminating the annoying `lock-up' that often occurs when inserting into an field with (apparent) space at the end.
lineWrap
If set, the ANSI terminal emulator automatically assumes a NEWLINE character when it reaches the end of a line.

The names of the toggles for use with the -set and -clear options are as follows:

Option Name
Monocase monoCase
Blank Fill blankFill
Track Cursor cursorPos
Trace Data Stream dsTrace
Trace Events eventTrace
Save Screen(s) in File screenTrace
Wraparound lineWrap

These names are also used as the first parameter to the Toggle action.

Actions

Here is a complete list of basic ws3270 actions. Script-specific actions are described on the x3270-script(1) manual page.

Actions marked with an asterisk (*) may block, sending data to the host and possibly waiting for a response.

*Attn attention key
BackSpace move cursor left (or send ASCII BS)
BackTab tab to start of previous input field
CircumNot input "^" in NVT mode, or "¬" in 3270 mode
*Clear clear screen
*Connect(host) connect to host
*CursorSelect Cursor Select AID
Delete delete character under cursor (or send ASCII DEL)
DeleteField delete the entire field
DeleteWord delete the current or previous word
*Disconnect disconnect from host
Down move cursor down
Dup duplicate field
*Enter Enter AID (or send ASCII CR)
Erase erase previous character (or send ASCII BS)
EraseEOF erase to end of current field
EraseInput erase all input fields
Execute(cmd) execute a command in a shell
FieldEnd move cursor to end of field
FieldMark mark field
HexString(hex_digits) insert control-character string
Home move cursor to first input field
Insert set insert mode
*Interrupt send TELNET IP to host
Key(keysym) insert key keysym
Key(0xxx) insert key with character code xx
Left move cursor left
Left2 move cursor left 2 positions
MonoCase toggle uppercase-only mode
MoveCursor(row, col) move cursor to (row,col)
Newline move cursor to first field on next line (or send ASCII LF)
NextWord move cursor to next word
*PA(n) Program Attention AID (n from 1 to 3)
*PF(n) Program Function AID (n from 1 to 24)
PreviousWord move cursor to previous word
Quit exit ws3270
Redraw redraw window
Reset reset locked keyboard
Right move cursor right
Right2 move cursor right 2 positions
*Script(command[,arg...]) run a script
*String(string) insert string (simple macro facility)
*SysReq System Request AID
Tab move cursor to next input field
Toggle(option[,set|clear]) toggle an option
ToggleInsert toggle insert mode
ToggleReverse toggle reverse-input mode
*Transfer(option=value...) file transfer
Up move cursor up

File Transfer

The Transfer action implements IND$FILE file transfer. This action requires that the IND$FILE program be installed on the IBM host, and that the 3270 cursor be located in a field that will accept a TSO or VM/CMS command.

The Transfer action can be entered at the command prompt with no parameters, which will cause it to prompt interactively for the file names and options. It can also be invoked with parameters to define the entire transfer.

Because of the complexity and number of options for file transfer, the parameters to the Transfer action take the unique form of option=value, and can appear in any order. Note that if the value contains spaces (such as a VM/CMS file name), then the entire parameter must be quoted, e.g., "HostFile=xxx foo a". The options are:

Option Required? Default Other Values
Direction No receive send
HostFile Yes    
LocalFile Yes    
Host No tso vm
Mode No ascii binary
Cr No remove add, keep
Remap No yes no
Exist No keep replace, append
Recfm No   fixed, variable, undefined
Lrecl No    
Blksize No    
Allocation No   tracks, cylinders, avblock
PrimarySpace No    
SecondarySpace No    
BufferSize No 4096  

The option details are as follows.

Direction
send to send a file to the host, receive to receive a file from the host.
HostFile
The name of the file on the host.
LocalFile
The name of the file on the local workstation.
Host
The type of host (which dictates the form of the IND$FILE command): tso (the default) or vm.
Mode
Use ascii (the default) for a text file, which will be translated between EBCDIC and ASCII as necessary. Use binary for non-text files.
Cr
Controls how Newline characters are handled when transferring Mode=ascii files. remove (the default) strips Newline characters in local files before transferring them to the host. add adds Newline characters to each host file record before transferring it to the local workstation. keep preserves Newline characters when transferring a local file to the host.
Remap
Controls text translation for Mode=ascii files. The value yes (the default) causes ws3270 to remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page. The value no causes ws3270 to pass the text to or from the host as-is, leaving all translation to the IND$FILE program on the host.
Exist
Controls what happens when the destination file already exists. keep (the default) preserves the file, causing the Transfer action to fail. replace overwrites the destination file with the source file. append appends the source file to the destination file.
Recfm
Controls the record format of files created on the host. fixed creates a file with fixed-length records. variable creates a file with variable-length records. undefined creates a file with undefined-length records (TSO hosts only). The Lrecl option controls the record length or maximum record length for Recfm=fixed and Recfm=variable files, respectively.
Lrecl
Specifies the record length (or maximum record length) for files created on the host.
Blksize
Specifies the block size for files created on the host. (TSO hosts only.)
Allocation
Specifies the units for the TSO host PrimarySpace and SecondarySpace options: tracks, cylinders or avblock.
PrimarySpace
Primary allocation for a file created on a TSO host. The units are given by the Allocation option.
SecondarySpace
Secondary allocation for a file created on a TSO host. The units are given by the Allocation option.
BufferSize
Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them.

The PrintText Action

The PrintText produces screen snapshots in a number of different forms. The default form wth no arguments sends a copy of the screen to the default printer. A single argument is the name of the printer to use. The font defaults to Courier New and the point size defaults to 8. These can be overridden by the printTextFont and printTextSize resources, respectively. Multiple arguments can include keywords to control the output of PrintText:
file filename
Save the output in a file.
html
Save the output as HTML. This option implies file.
rtf
Save the output as RichText. This option implies file. The font defaults to Courier New and the point size defaults to 8. These can be overridden by the printTextFont and printTextSize resources, respectively.
modi
Render modified fields in italics.
caption text
Add the specified text as a caption above the output. Within text, the special sequence %T% will be replaced with a timestamp.

Nested Scripts

There are several types of nested script functions available.
The String Action
The simplest method for nested scripts is provided via the String action. The arguments to String are one or more double-quoted strings which are inserted directly as if typed. The C backslash conventions are honored as follows. (Entries marked * mean that after sending the AID code to the host, ws3270 will wait for the host to unlock the keyboard before further processing the string.)
\b Left
\exxxx EBCDIC character in hex
\f Clear*
\n Enter*
\pan PA(n)*
\pfnn PF(nn)*
\r Newline
\t Tab
\T BackTab
\uxxxx Unicode character in hex
\xxxxx Unicode character in hex

Note that the numeric values for the \e, \u and \x sequences can be abbreviated to 2 digits. Note also that EBCDIC codes greater than 255 and some Unicode character codes represent DBCS characters, which will work only if ws3270 is built with DBCS support and the host allows DBCS input in the current field.

Note: The strings are in ASCII and converted to EBCDIC, so beware of inserting control codes.

There is also an alternate form of the String action, HexString, which is used to enter non-printing data. The argument to HexString is a string of hexadecimal digits, two per character. A leading 0x or 0X is optional. In 3270 mode, the hexadecimal data represent EBCDIC characters, which are entered into the current field. In NVT mode, the hexadecimal data represent ASCII characters, which are sent directly to the host.

The Script Action
This action causes ws3270 to start a child process which can execute ws3270 actions. ws3270 listens for connections from the child process on a dynamically-generated TCP port. The Script action is fully documented in x3270-script(1).

Passthru

ws3270 supports the Sun telnet-passthru service provided by the in.telnet-gw server. This allows outbound telnet connections through a firewall machine. When a p: is prepended to a hostname, ws3270 acts much like the itelnet(1) command. It contacts the machine named internet-gateway at the port defined in /etc/services as telnet-passthru (which defaults to 3514). It then passes the requested hostname and port to the in.telnet-gw server.

Proxy

The -proxy option or the ws3270.proxy resource causes ws3270 to use a proxy server to connect to the host. The syntax of the option or resource is:
type:host[:port]
The supported values for type are:
Proxy Type
Protocol
Default Port
http
RFC 2817 HTTP tunnel (squid)
3128
passthru
Sun in.telnet-gw
none
socks4
SOCKS version 4
1080
socks5
SOCKS version 5 (RFC 1928)
1080
telnet
No protocol (just send connect host port)
none

The special types socks4a and socks5d can also be used to force the proxy server to do the hostname resolution for the SOCKS protocol.

Resources

Certain ws3270 options can be configured via resources. Resources are defined by -xrm options. The definitions are similar to X11 resources, and use a similar syntax. The resources available in ws3270 are:

Resource Default Option Purpose
blankFill False -set blankFill Blank Fill mode
charset bracket -charset EBCDIC character set
dbcsCgcsgid     Override DBCS CGCSGID
dsTrace False -trace Data stream tracing
eof ^D   NVT-mode EOF character
erase ^H   NVT-mode erase character
extended True   Use 3270 extended data stream
eventTrace False -trace Event tracing
icrnl False   Map CR to NL on NVT-mode input
inlcr False   Map NL to CR in NVT-mode input
intr ^C   NVT-mode interrupt character
kill ^U   NVT-mode kill character
lineWrap False -set lineWrap NVT line wrap mode
lnext ^V   NVT-mode lnext character
m3279 (note 1) -model 3279 (color) emulation
marginedPaste False -set marginedPaste Keep left margin when pasting
monoCase False -set monoCase Mono-case mode
numericLock False   Lock keyboard for numeric field error
oerrLock False   Lock keyboard for input error
oversize   -oversize Oversize screen dimensions
port telnet -port Non-default TCP port
quit ^\   NVT-mode quit character
rprnt ^R   NVT-mode reprint character
sbcsCgcsgid     Override SBCS CGCSGID
secure False   Disable "dangerous" options
termName (note 2) -tn TELNET terminal type string
traceFile (note 3) -tracefile File for trace output
werase ^W   NVT-mode word-erase character

Note 1: m3279 defaults to False. It can be forced to True with the proper -model option.

Note 2: The default terminal type string is constructed from the model number, color emulation, and extended data stream modes. E.g., a model 2 with color emulation and the extended data stream option would be sent as IBM-3279-2-E. Note also that when TN3270E mode is used, the terminal type is always sent as 3278, but this does not affect color capabilities.

Note 3: The default trace file is x3trc.pid.txt in the directory where ws3270 was started.

If more than one -xrm option is given for the same resource, the last one on the command line is used.

See Also

x3270(1), s3270(1), c3270(1), tcl3270(1), ibm_hosts(5), x3270-script(1), telnet(1), tn3270(1)
Data Stream Programmer's Reference, IBM GA23-0059
Character Set Reference, IBM GA27-3831
RFC 1576, TN3270 Current Practices
RFC 1646, TN3270 Extensions for LUname and Printer Selection
RFC 2355, TN3270 Enhancements

Copyrights

Copyright © 1993-2009, Paul Mattes.
Copyright © 2004-2005, Don Russell.
Copyright © 2004, Dick Altenbern.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

*
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
*
Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Version

ws3270 3.3.10ga4
This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/ws3270/html/FAQ.html0000644000175000017500000000375311254565671016410 0ustar bastianbastian ws3270 Frequently Asked Questions

ws3270 Frequently Asked Questions

If you have a problem building, installing, or running ws3270, please browse through this file first.

General Questions

Am I allowed to use it?

Yes. Full copyright information is in the Lineage file, but the gist is that anyone is free to use the code, and anyone is free to sell copies of the code.

You are also free to modify it and to redistribute it, provided you preserve the existing copyright notices.

Getting Help

If you are still having a problem with ws3270, feel free to send e-mail to Paul Mattes, Paul.Mattes@usa.net No guarantees are made about responses to particular problems, but a patches are usually forthcoming in a few days. It will also get you on an x3270 mailing list, which also includes information on ws3270, and where you can find out about new releases and bug fixes.

When you send a question about ws3270, please include the following information. It makes it much easier to narrow down the problem.

  1. The version of ws3270 you are using, including all patches, e.g., "3.3.6p1".
  2. What kind of machine you are running on, e.g., "64-bit dual-core".
  3. What operating system you are running, and what version, e.g., "Windows XP SP2".
Complaints, suggestions, requests for enhancements, and porting experiences are also welcome. Code changes for bug fixes and enhancements are also welcome, provided that you don't mind your code being placed (often anonymously) under the x3270 license. ibm-3270-3.3.10ga4/ws3270/html/ReleaseNotes.html0000644000175000017500000016451711261530016020357 0ustar bastianbastian ws3270 Release Notes

Changes in x3270, c3270, wc3270, s3270, tcl3270, pr3287 and wpr3287 3.3

3.3 is the current development line for the x3270 suite.

Changes in version 3.3.10ga4, 2. October 2009

  • [all x3270] Improved the File Transfer summary display.
  • [all x3270] Removed the keyboard lock when processing an Enter AID in SSCP-LU mode.
  • [x3270] Fixed a build problem when DBCS support is disabled.
  • [c3270] Made the special keymap key names (e.g., PRINT) case-insensitive.
  • [c3270] Fixed a problem with keyboard input in ISO 8859 locales.
  • [x3270] Increased the maximum number of fonts scanned to 50000.

Changes in version 3.3.10ga3, 15. September 2009

  • [x3270] Fixed some bugs in the xmkmf-free build.

Changes in version 3.3.10alpha2, 10. September 2009

  • [c3270] Added the ability to move the 3270 cursor with the mouse, if the terminal supports it. Add a Mouse resource, which can be set to False to disable it.
  • [all 3270] Added a Translate keyword to the Transfer action's parameters and an additional question to the interactive c3270/wc3270 Transfer dialog, to allow the automatic remapping of text (usually done to get the most accurate translation) to be disabled.
  • Restored the pop-up window that displays trace files.

Changes in version 3.3.10alpha1, 3. September 2009

  • [3270] Allow the program to be built without xmkmf.
  • [all 3270] Fixed the mapping of EBCDIC X'FF' to U+009F in ASCII-mode file transfers.
  • [all 3270] Fixed a crash in CUT-mode binary file sends, and corrected the local fopen() flags when receiving a binary file.
  • [x3270] Added the APL up- and down-arrow characters (↑ and ↓) to the 12-point fonts (thanks to Paul Scott for the fix).
  • [all 3270] Script comments are now allowed (any input line beginning with # or !).
  • [wc3270] Added support for the Enhanced keymap modifier (EnhancedReturn is the keypad Enter key. Also added Enter, PageUp and PageDown as aliases for the Windows keys RETURN, PRIOR and NEXT.
  • [wc3270] Added oversize, font size and background color support to the Session Wizard.
  • [x3270] Fixed a problem with ignored -set and -clear options.
  • [c3270 and wc3270] Added support for the -oversize auto option, which allows the emulator to use the entire area of the terminal or console window it is running in.
  • [x3270] Removed the huge delay at start-up.
  • [x3270, c3270, s3270 and wc3270] Added support for TCP-socket-based scripting via the -scriptport option. For wc3270, this is the first time that scripting has been available.
  • [all 3270 except x3270] Added support for the screenTraceFile resource.
  • [all 3270] Fixed a file descriptor leak with the -socket option.
  • [all 3270] Fixed a crash with the Toggle action and undefined toggles.
  • [wc3270] Implemented no-install mode (allowing wc3270 to run without installing the software) and auto-shortcut mode (where wc3270 automatically creates a temporary shortcut file to match a session file and runs it).
  • [all 3270] When a hostname resolves to multiple addresses, try each until one works.
  • [all 3270] Corrected an issue where the keyboard would lock on the first screen when connecting to hosts like Hercules.
  • [wc3270] Added mappings of the Page Up and Page Down keys to PF(7) and PF(8) respectively.
  • [wc3270, ws3270] Removed the .dll files from the distribution.
  • [c3270] Corrected an issue with cursor and function keys not being recognized if they are the first key pressed.
  • [all 3270] BIND image screen sizing is now observed.
  • [pr3287 and wpr3287] Corrected the -charset documentation on the manual page.
  • [all 3270] Resurrected flipped-screen mode via the Flip and ToggleReverse actions.
  • [all 3270] Added a Seconds form to the Wait action, allowing a script or macro to delay itself an arbitrary length of time.
  • [wc3270] Modified the PrintText action so that Wordpad is started minimized.

Changes in version 3.3.9ga11, 25. March 2009

  • [x3270 and c3270] Re-enable the ibm_hosts file (it was accidentally being ignored).
  • [all but wc3270] Don't crash when there is no iconv translation for the locale codeset.
  • [all but x3270] Fixed a build failure in glue.c when DBCS was disabled.
  • [wc3270] Corrected the default keymap so that the uppercase versions of the Alt mapping also work.
  • [wc3270] Corrected the documentation of the printTextFont and printTextSize resources.
  • [c3270] Corrected a number of errors in parsing CursesColorForxxx resources.
  • [c3270] Added support for -rv, which puts c3270 into black-on-white mode.
  • [c3270] Added support for 16-color terminals, with the -color8 option overriding this and forcing 8-color support only. On a 16-color terminal, -allbold is no longer the default.
  • [c3270, wc3270, s3270 and tcl3270] Ensured that command-line parameters override session files.
  • [c3270] Made session files replace profiles, rather than just overridding any common definitions. This is more intuitive and consistent with x3270.

Changes in version 3.3.9ga11, 27. February 2009

Common Changes

  • Improved hostname parsing. Now backslashes can be used to quote any character, and square brackets can be used to quote any element (LU name, host name, or port).
  • Fixed a number of compiler warnings from newer versions of gcc and a number of small memory leaks.
  • Overhauled the host code pages and CGCSGIDs for DBCS. Added sbcsCgcsgid and dbcsCgcsgid resources to override the compiled-in values.
  • Added a caption text option to the PrintText action, which will place the specified caption above the screen image. Within the text, the string %T% is interpolated to a timestamp.
  • Improved the state dump when tracing starts to include NVT and SSCP-LU state and the SNA BIND image.
  • Updated the copyright and licensing notices (now a standard BSD license).
  • Added support for carriage-return (0x0d) characters in the String action, which imply the Newline action.
  • Changed the Attn action so that it sends an IAC BREAK in TN3270 mode, and locks the keyboard in TN3270E mode when the session is not SNA bound.
  • Added Traditional Chinese (host code page 937) support.
  • Extended the String action's \e and \x sequences to accept 4-digit hex values, thus allowing EBCDIC DBCS input and arbitrary Unicode input. Also added \u as an alias for \x.

Changes to x3270

  • Fixed a crash when pasting an empty selection.
  • Made the Query Reply response for x3270 identical to the other tools.
  • Included fonts for Traditional Chinese.

Changes to x3270 and c3270

  • Removed the nested copy of pr3287. from the source. pr3287 must now be built separately from its own package.

Changes to wc3270

  • Corrected a problem with color mapping in the OIA.
  • Changed the New Session Wizard to the Session Wizard and gave it the ability to edit existing session files and re-create missing session files. Note that this ability is limited to session files created with 3.3.9beta10 or later.
  • Added a wc3270.printer.codepage resource to set the Windows code page for the associated pr3287 printer session.
  • Simplified the operation of the New Session Wizard, so it asks fewer questions.
  • Added a pager to interactive mode.
  • Made the PrintText font and point size configurable via the printTextFont and printTextSize resources.
  • Changed the default 'blue' color for created shortcuts to a somewhat lighter shade, to make it more readable.
  • Changed the Session Wizard to specify the code page and proper font when creating shortcuts for DBCS sessions. This should allow DBCS to work on Windows 2000 and Vista.
  • Included ws3270 in the wc3270 release.

Changes to c3270 and wc3270

  • Added feedback for the progress of file transfers.
  • Implemented the Info action, which writes a message to the OIA (the line below the display).
  • Added a no-prompt mode, via the -noprompt command-line option and the noPrompt resource .
  • Added automatic reconnect, via the -reconnect command-line option and the reconnect resource.

Changes to ws3270 (formerly available as a pre-release)

  • Fixed a bug which resulted in all command timings being displayed as '-'.
  • Added the -localcp option and localCP resource to change the Windows code page used for local workstation I/O.
  • Added DBCS support and support for building using Microsoft tools.

Changes to pr3287 and wpr3287

  • Fixed a serious character-mapping bug.
  • Added DBCS support.

Changes to specific versions

  • [c3270, s3270, s3270, ws3270 and x3270] Added support for session files.
  • [All except wc3270 and ws3270] Extended the rtf option of the PrintText to non-Windows platforms.
  • [All except x3270] Fixed a number of issues with -xrm option processing and keymap display when backslash sequences were used.

Changes in version 3.3.8p2, 13 December 2008

  • [wc3270] Corrected the handling of 8-bit and DBCS characters in the PrintText action.
  • [tcl3270] Extended configure to find the Tcl library version automatically.
  • [wc3270] Corrected a problem which caused mouse clicks not to be recognized (not moving the cursor) if NumLock was set.
  • [all] Corrected the configure script to recognize a separately-installed iconv library even if the iconv() function is defined in libc.
  • [wc3270] Restored the bell sound, and added a visualBell resource to disable it.

Changes in version 3.3.8p1, 20 October 2008

  • [wc3270] Restored the Ctrl-] mapping for the Escape action, which had been inadvertently removed.
  • [wc3270] wc3270 now starts successfully on Windows Vista.
  • [c3270] On platforms that require the iconv library, c3270 once again recognizes ncurses names in keymaps.
  • [x3270] The module keysym2ucs.c now builds on FreeBSD.
  • [x3270] Selections now work properly on platforms that do not support XA_UTF8_STRING.

Changes in version 3.3.8, 11 October 2008

Version 3.3.8 includes a significant internal change, using Unicode for all translations between the host and the local workstation. This change should be transparent, but users who depended on certain behaviors of the old implementation may see unexpected differences.

Common Changes

  • Many more EBCDIC characters, such as Graphics Escape line-drawing and APL characters, are now properly displayed (even without special 3270 fonts), traced, cut/pasted with other applications, and returned by scripting actions like Ascii.
  • With two exceptions, the locale's encoding is now observed consistently when reading keymaps, generating trace files, etc. The exceptions are:
    • tcl3270 always uses UTF-8, per the internal Tcl convention.
    • Because Cygwin doesn't really support locales, the Windows ANSI code page is used as the local encoding instead.
    • Stateful encodings such as ISO 2022 are untested and very likely do not work.
  • The ICU library is no longer used, and ICU .cnv files are no longer included with the code.
  • Translation to/from the local encoding requires one of two facilities: Either libc must support __STDC_ISO_10646__ (wchar_ts are defined to be unicode values, as on Linux and Windows), or there must be an iconv library that can translate between UTF-8 and all local encodings.
  • DBCS support is enabled by default, except on Windows. It can be explicitly disabled in the configure script to reduce the size of the executable (removing several large translation tables).
  • The -v/--verbose option has been added to display build and copyright information.
  • The Thai host code page has changed from 838 to 1160.

Changes Common to the 3270 Terminal Emulators

  • The Key action now accepts Unicode arguments in the form U+nnnn, removing possible ambiguity from translating from the
  • Added a Source action to read script commands from a file.
  • Added a 10 second timeout to the start of the Transfer action.
  • Added an unlockDelayMs resource to change the number of milliseconds of delay before atually unlocking the keyboard after the host requests it. The default is 350; use 0 to disable the delay altogether.
  • IND$FILE file transfer now transfers DBCS text files properly.

Changes Common to 3287 Printer Emulators

  • Added direct support for all x3270 host character sets via the -charset option.
  • Added -trnpre and -trnpost options to specify files containing transparent data to send to the printer before and after each print job, respectively.

Product-Speific Changes

  • [x3270] Commands entered into the Print Screen Text dialog are now saved by the Save Changed Options in File option.
  • [x3270] Fixed some bad interactions between the pop-up keypad and the GNOME window manager.
  • [x3270] The Euro fonts have been folded into the standard fonts.
  • [x3270] The font menu is now arranged hierarchically by foundry and family.
  • [c3270] Added an underscore toggle to allow underlined fields to be displayed even on consoles with no native underlining support, by substituting underscore '_' characters for blanks and nulls in underlined fields.
  • [c3270] Overhauled Meta and Alt key support. Removed support for the archaic Meta modifier in keymaps (it was an alias for setting bit 0x80 in each key). Replaced it with an Alt modifier, which matches the ESC sequence sent for the Alt key by many terminals, and which can be combined with full 8-bit input characters.
  • [c3270] Changed the interpretation of keymaps so that keys and symbols are matched in Unicode. That is, keymap text is converted from the current locale's encoding to Unicode before matching, and input character codes are converted to Unicode before matching. This eliminates the difficulty in creating keymaps and interpreting traces in non-Latin-1 locales -- needing to translate from the accidental interpretation of 8-bit values as Latin-1 when they are not -- but with the side-effect of rendering some carefully-crafted existing keymaps invalid. Keymaps can also be written using Unicode U+nnnn notation.
  • [c3270] Changed the metaEscape resource so that auto means on, instead of using the terminfo km resource.
  • [c3270] Added an acs resource to control the use of curses ACS codes. If c3270.acs is set to true (the default), c3270 will use curses ACS codes for line-drawing characters. If set to false, it will display line-drawing characters with Unicode.
  • [wc3270] Added an underscore toggle to control how underlined and blinking fields are displayed. If it is set (the default), underlined fields are displayed by substituting underscore (_) characters for blanks and nulls, and blinking fields actually blink. If it is clear, underlined and blinking fields are displayed with highlighted backgrounds, which is compatible with previous verions of wc3270.
  • [wc3270] Left-clicking with the mouse will now move the cursor to that location.
  • [wc3270] The PrintText action now works, and is mapped by default to the sequence Alt <Key>p. The printer.name resource defines the default printer to use.
  • [wc3270] The PrintText action can now be used to produce a RichText snapshot of the screen contents, via the rtf keyword.
  • [wc3270] The program longer attempts to set the console code page, which was error-prone and unnecessary.
  • [wc3270] The idle command feature now works, controlled by the idleCommand, idleCommandEnabled and idleTimeout resources.
  • [wc3270] The program no longer attempts to set the console code page, which could lead to hangs on Vista.
  • [wc3270] The installation now creates a program group item to explore the wc3270 Application Data directory.
  • [wc3270] Corrected a problem with console color overrides, which prevented reverse-video mode (white background) from working properly. For now, the recommended method for enabling reverse video mode is to add these lines to your session file:
          wc3270.consoleColorForHostColor0: 15
          wc3270.consoleColorForHostColor7: 0
  • [wc3270] wc3270 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.
  • [tcl3270] Added a commandTimeout resource to force any Tcl3270 command to time out after the specified number of seconds. (Thanks to Mark Young.)
  • [tcl3270] Fixed a per-command memory leak. (Thanks to Mark Young.)
  • [wpr3287] Added a -printercp option to specify a particular code page for printer output.
  • [wpr3287] wpr3287 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.

Changes in x3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in x3270 3.3.7p7, 4. July 2008

  • Bug Fixes:
    • Corrected input of 8-bit characters when x3270 is run in a UTF-8 locale.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.
  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.

Changes in x3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Fixed an issue with Idle commands, which would cause x3270 to exit with a Not Found error as soon as the idle command fired.

Changes in x3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed the annoying delay when x3270 starts with an error pop-up.
    • Shortened the manpage so that it displays on non-groff platforms. The full text is still available in the HTML version.
    • Plugged a number of memory leaks.
    • x3270 will now compile on platforms that do not support IPv6, such as Cygwin.
    • x3270 will no longer crash or spin when the -script option is used.
    • Shifted function keys should work again (they map to PF13-PF24).
    • The screen can now be resized larger, as well as smaller.
    • Removed the dependency on <bitmaps/gray>, which required installing an obscure X11 development package on some platforms.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added a SelectAll action, mapped to Ctrl-A.

Changes in c3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.
    • Allowed c3270 to build under SLES 10's unusual ncurses configuration.

Changes in c3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in c3270 3.3.7p4, 29. February 2008

  • Bug Fixes:
    • Fixed c3270's configure script again, so it will build on systems without the ncurses library.
    • Enabled idle command functionality, which had been accidentally disabled.

Changes in c3270 3.3.7p1, 28. December 2007

  • Bug Fixes:
    • c3270's configure script would not detect missing ncurses header files, and c3270 would not build if ncursesw was not installed.

Changes in c3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • c3270 will now display characters such as the notsign ¬ properly in terminal windows in UTF-8 locales. Note that this display support requires an ncurses or curses library that supports wide characters.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added display of the host code page and locale codeset to the show status command.
    • Added support for changing the color mappings. The curses color for a given host color can be specified with the resource c3270.cursesColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a curses color number (0 through 7).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      c3270.cursesColorForDefault
      c3270.cursesColorForIntensified
      c3270.cursesColorForProtected
      c3270.cursesColorForProtectedIntensified
             
      The value for each of these is a curses color number (0 through 7).

Changes in wc3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed idle command support.

Changes in wc3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Fixed a problem with transferring binary files, where 0x0d characters might be acidentally added to or removed from the data.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in wc3270 3.3.7p5, 11. April 2008

  • Bug Fixes:
    • After installation is complete, get rid of mkshort.exe, which shares its name (but not its functionality) with a computer surveillance application.
    • Corrected several issues with key event processing and the default keymap.

Changes in wc3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Changed the New Session Wizard to create the Application Data directory, so wc3270 can be run by any user, not just the one that installed it.
    • Changed the default window title from the pathname of the session to just the session name.

Changes in wc3270 3.3.7p2, 15. January 2008

  • Bug Fixes:
    • Fixed an embarassing problem that kept wpr3287 from starting.

Changes in wc3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed line-drawing characters.
    • Enabled IPv6 support for Windows XP and later.
    • Set the input code page correctly, so that keyboard input works correctly when there is a mismatch between the default Windows code page and the code page implied by the wc3270 character set option.
  • New Features:
    • Added limited support for Windows 98. wc3270 will install and run on Windows 98, but internationalization support is limited -- the only supported host code page is 37, and the only supported Windows code page is 437. This is expected to improve in the future.
    • Added a wc3270.highlightUnderline resource to control highlighting of underlined and blinking text. (Set to false to disable background highlighting.)
    • Moved session files, keymaps and trace files to the Application Data directory. (wc3270 will still look in its installation directory for session files and keymaps, after first searching the Application Data directory.) This makes wc3270 a better Windows citizen in general, and a better Vista citizen in particular.
    • Added support for changing the color mappings. The console color for a given host color can be specified with the resource wc3270.consoleColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a console color number (0 through 15).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      wc3270.hostColorForDefault
      wc3270.hostColorForIntensified
      wc3270.hostColorForProtected
      wc3270.hostColorForProtectedIntensified
             
      The value for each of these is a host color number; the actual color displayed is defined by the corresponding wc3270.consoleColorForHostColorn resource.
    • Added a new cp1153 character set. It implements host code page 1153 and uses Windows code page 1250, used primarily in Central Europe.
    • Added display of the Windows code page to the character set screen in the New Session Wizard.
    • Added display of the host and Windows code pages to the show status command.

Changes in s3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in s3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in s3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer(Ascii) actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

      NOTE: If you were were previously running s3270 in a UTF-8 locale, this is an incompatible change. To ensure the previous behavior, set your locale to C before starting s3270.

Changes in tcl3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in tcl3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in tcl3270 3.3.7p3, 22. Febuary 2008

  • Bug Fixes:
    • Fixed a problem with non-ASCII characters returned by the Ascii command.
    • Fixed a problem with the Connect command, which resulted in subsequent actions not blocking properly.

Changes in tcl3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

Changes in pr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in pr3287 3.3.7, 25. December 2007

  • Enhancements:
    • Added proxy support via the -proxy option.

Changes in wpr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in wpr3287 3.3.7, 25. December 2007

(none)

Changes in x3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Fixed the highlighted attribute for individual regions of the screen (versus the highlighted field attribute); it had been accidentally disabled.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Pseudo-Color mode is no more. This was the mode that x3270 used when a 3278 model was specified, or if the m3279 resource were set to False. Pseudo-Color assigned colors to regions of the screen based on intensity and light-pen selectability, and did not support 3279 colors. Now turning off color or selecting a 3278 results in something that looks like a 3278 (i.e., it's green). To resurrect Pseudo-Color mode, set the following resources:
        x3270.inputColor: orange
        x3270.boldColor: cyan

Changes in c3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Got local process (-e) support to work again.
    • Fixed -mono -allbold mode.
    • c3270 now paints the entire screen, not just the areas it intends to use, so there are no uninitialized regions.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for the 3270 background color attribute.
    • Added more mappings to the 3270 default keymap (IC -> ToggleInsert, Ctrl<Key>U -> DeleteField, etc.).
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Like x3270 and wc3270, -model 3278 now specifies a green-screen 3278 (if the terminal supports color), and like x3270, -mono specifies that any color capabilities reported by the terminal should be ignored.

Changes in wc3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Restored line-drawing character support.
    • Restored background color support in NVT mode.
    • Corrected some screen rendering issues.
    • Fixed screen trace (-set screenTrace).
    • Removed the -mono option and mono resource.
  • New Features:
    • Added the Spanish character set, CP 284.
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for setting the window title, either automatically, or via the -title option or wc3270.title resource.
    • Added gray background highlighting of underlined and blinking text. Windows consoles don't support these attributes, but at least they can be distinguished from other text now.
    • Added background color support in 3270 mode.
    • Added a window to monitor trace output.
    • Greatly improved key event tracing.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in s3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in tcl3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in wc3270 3.3.5p9, 10. June 2007

  • Bug Fixes:
    • The shortcut cursor size property is now obeyed.
    • The -model 3278 option now works correctly.
  • New Features:
    • Added secure connection status to the status line and the show status command.
    • Reverse video is now supported.
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added a keymap tutorial to the documentation.

Changes in wc3270 3.3.5p8, 29. April 2007

  • Bug Fixes:
    • Fixed a hang when wpr3287 exits unexpectedly.
    • Improved behavior when input comes from multiple sources, such as when pasting text.
    • Greatly improved screen update speed.
  • New Features:
    • Added wpr3287 support back to the wizard. It was in the GUI version, but was never in the text version.
    • Integrated new back-end printer support in wpr3287, including a new wc3270.printer.name resource.
    • Added a Paste() action, mapped to Ctrl-V, to do multi-line paste properly.
    • Added a .wc3270km suffix to keymap files.
    • Added keymap support to the wizard.
    • Added interactive prompting to the Transfer() action.

Changes in wpr3287 3.3.5p8, 29. April 2007

  • New Features:
    • Added direct support for Windows printers, instead of relying on the DOS PRINT command. This included changing the -command option to a -printer option, to specify the Windows printer to use as a back end.

Changes in x3270 3.3.5p6, 7. April 2007

  • Bug Fixes:
    • x3270 will now build with ICU 3.6.
    • A long-standing screen update bug is finally fixed.
    • The unused x3270hist.pl script is no longer installed.

Changes in c3270 3.3.5p4, 7. April 2007

  • Bug Fixes:
    • c3270 can now be built without File Transfer support.
    • The unused x3270hist.pl script is no longer installed.

Changes in wc3270 3.3.5p3, 2. March 2007

  • Bug Fixes:
    • Reverted the wc3270 New Session Wizard to the non-GUI version, because the GUI version, built with Microsoft Visual C++ 2005 Express Edition, had too many dependencies (latest service pack, .NET framework) on the target machine.

Changes in wc3270 3.3.5p2, 16. February 2007

  • Bug Fixes:
    • Ensured that the desktop shortcuts specify Lucida Console, so non-ASCII-7 characters are displayed properly.
  • New Features:
    • Added a file association for the .wc3270 suffix.
    • Replaced the console version of the New Session Wizard with a proper GUI version.

Changes in wc3270 3.3.5p1, 6. February 2007

  • Bug Fixes:
    • Added the working directory to the desktop links created by the setup program.
  • New Features:
    • Added printer session (wpr3287) support.

Changes in x3270 3.3.5, 1. February 2007

  • Bug Fixes:
    • Fixed a crash when the user's home directory or the ~/.x3270connect file wasn't writeable.
    • Fixed some endcases when pasting text that wraps lines and a field skip is encountered.
    • Fixed the handling of SI characters in cut/pasted text.
    • Allow the use of ICU version 3.0 or greater.
    • Fixed a scripting hang when the host disconnects during Wait(output)).
    • Turned the unlockDelay option back on by default.
    • Fixed a problem where unlockDelay could result in the keyboard never unlocking, if the host unlocked the keyboard often enough.
    • Added a workaround for very old snprintf() implementations.
    • Fixed a problem with DBCS input corrupting existing DBCS subfields.
    • Fixed a problem with the Wait action in the expect glue. (Thanks to Jason Howk for the fix.)
    • Enlarged the input buffer in x3270if. (Thanks to Igor Klingen for the fix.)
    • Fixed a SIGCHLD handler issue on AIX.
    • Fixed a problem with CR/LF translation on ASCII file transfers.
  • New Features:
    • Added a -socket option to x3270, s3270 and c3270 to allow a script to connect to a Unix-domain socket to control the emulator, and added a -p option to x3270if to connect to the socket.
    • Added optional support for plugins, with a first plugin to implement command history on VM/CMS and TSO hosts.
    • Allow arbitrary color names (#rrggbb) to be used in color schemes.
    • Added support for hierarchical macro menus.
    • Added an XkSelector resource to allow transparent support of non-English keyboards.
    • Added preliminary support the 16-bit display fonts and the Persian character set.
    • Added Title and WindowState actions to allow the x3270 window title and icon state to bw changed respectively.

Changes in x3270 3.3.4, 10. April 2005

  • Bug Fixes:
    • The code once again builds on Cygwin and other systems not supporting IPv6.
    • The -xrm option works again in x3270.
    • The -name X Toolkit option works with x3270, though not yet with app-defaults files.
    • Removed spurious 'no child' error messages from pr3287 on some systems.
    • Removed unintended blank-line suppression from the output of PrintText html string.
    • Restored some missing keymap definitions (rlx, ow) and some missing lines from other keymap definitions (apl).
    • Restored the automatic keyboard unlock delay when processing a macro or string. This allows macros and strings with embedded AID sequences to work with hosts that unlock the keyboard before they finish processing a command. Scripts are presumed to be able to figure out when the host is finished, or can set the unlockDelay resource to true get the delay all the time.
    • Fixed an apparent hang (actually just extreme slowness) when the host sends a message larger than 4 Kbytes on an SSL tunnel.
    • Removed spurious 'Wait timed out' errors in the Wait action.
  • New Features:
    • Added a newer, more flexible version of Don Russell's RPQNAMES support.
    • Added support for IPv6.
    • Added an oldclick keymap to restore the pre-3.3 mouse click behavior.

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta2, 1. February 2005

  • Bug Fixes:
    • Reduced the Resident Set Size (RSS) of x3270 from about 40 MBytes to less than 4 MBytes. This was a bug in how compiled-in app-defaults files were generated.
    • Got separate app-defaults files (configure --enable-app-defaults) to work again.
    • Fixed a crash when a login macro is used in NVT mode or when the host un-negotiates TN3270E mode.
    • Fixed the titles of the Copyright and Configuration pop-ups.
    • Temporarily disabled the RPQNAMES Query Reply. It was causing IBM QMF to crash. It can be re-enabled by adding #define X3270_RPQNAMES 1 to conf.h. Hopefully a proper fix can be found shortly.
  • New Features:

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta1, 31. December 2004

  • Bug Fixes:
    • The Transfer() action did not work at all -- it generated (null) as the name of the IND$FILE command. Also improved its behavior when invoked from a script or macro in x3270 and c3270.
    • Corrected the definition of the hebrew (code page 424) character set, removing undefined characters.
    • Corrected the display character set for the brazilian (code page 275) character set.
    • Corrected the character set definition logic so that undefined ASCII codes are truly undefined in NVT mode.
    • Corrected the ibm_hosts file (the hostsFile resource or the -hostsfile option). Variable and tilde substitution are now performed on the value, and if a non-default value is specified and the file does not exist, an error pop-up is generated.
    • Added a pause to make sure that c3270 start-up error messages will be seen.
    • Got the c3270 default field colors right, and made all-bold mode actually make all the fields bold.
    • Fixed the default primary/alternate screen size (it was alternate, it's supposed to be primary).
    • Fixed c3270 color support with ncurses and 80/132 screen-size switching. Sometimes only one of the screen sizes had color.
    • Fixed a memory leak in pr3287 when the -reconnect option is used. (Thanks to Marcelo Lemos for the fix.)
    • Fixed the output of NVT-mode ANSI line-drawing characters in the Ascii() scripting action. These were formerly all output as blanks; now they are output in the same was as x3270 3.2.
    • Fixed the display of NVT-mode ANSI line-drawing characters when x3270 is using a 3270 font.
    • Fixed the display of DBCS blanks, which sometimes displayed as 'undefined' characters.
    • Fixed DBCS character display with fonts whose maximum bounds are larger than their reported line-spacing bounds.
    • Fixed make depend.
    • Fixed x3270_glue.expect, which got confused when there was a whitespace-delimited double-quote in the emulator output.
    • Fixed crashes when the entire File or Options menus were suppressed.
    • Fixed a scripting hang when an UNBIND command arrived while an AID was pending.
    • Fixed a problem with the incomplete processing of a NULLing Program Tab order, which could leave formatting artifacts on the screen.
    • Removed <subchar1> clauses in two of the .ucm files that prevents later versions of ICU's makeconv from accepting them, and removed DOS carriage-return characters from the CP837 .ucm file.
    • Corrected some DFT-mode file upload problems: corrected the data length, and corrected an empty-buffer problem when the file size was an even multiple of the buffer size.
    • Corrected a DBCS conversion problem with ICU 3.0.
    • Added variable buffer-size support to DFT file transfers.
    • Corrected a line-drawing character bug in c3270.
    • Fixed a buffer overflow problem in the ReadBuffer action.
    • Fixed garbage characters generated for APL data by the Ascii and ReadBuffer actions.
    • Allow 0 timeouts in Wait actions.
  • New Features:
    • Added command-line options to the pr3287 trace file.
    • Added support for dead keys (acute, grave, circumflex, tilde, diaeresis) to the x3270 default keymap, and improved the Latin-1 compose map. (Thanks to Marcelo Lemos for the change.)
    • Added new actions for improved mouse interactions, and made them the default. Button 1 now moves the cursor, without the Shift key.
    • Added support for DBCS in pr3287, but only when started from an x3270 or c3270 session.
    • Added Don Russell's RPQNAMES support.
    • Removed Minolta-copyrighted 5250 code, because of licensing problems.
    • Added an aidWait toggle to allow AID script actions (Clear, Enter, PA and PF) to complete immediately without waiting for the host to unlock the keyboard, and a Wait(Unlock) action action to block a script until the keyboard is unlocked, regardless of the state of the new toggle.
    • Removed the old scripting hack that delayed actually unlocking the keyboard for 50ms after the host indicates that it should be unlocked. Added an unlockDelay resource, which can be set to true to turn the delay hack back on.
    • Added a dftBufferSize resource to set the default DFT buffer size.
    • Added an x3270 Save Screen Text menu option to save the screen image in a file, optionally in HTML.
    • Added options to the PrintText action to save to a file, to save HTML, and to return the text as script data.

Changes in x3270, c3270, s3270 and tcl3270 3.3.2, 1. December 2003

  • Bug Fixes:
    • Corrected an x3270 screen-redraw crash when using fixedSize and xim.
    • Corrected a problem in x3270_glue.expect, which caused Tcl syntax errors if a string began with a dash. Thanks to David Taylor for the fix.
    • Fixed a problem with x3270 DBCS input when using a single DBCS/SBCS character set.
    • Made DBCS encoding recognition automatic wherever possible, leaving the -km option for cases when x3270 can't figure it out from the locale.
    • Made c3270's configure more robust when it can't find one or the other of libncurses or ncurses.h.
    • Got automatic pr3287 start-up (-printerlu) working again in c3270.
    • Fixed an s3270 crash which made s3270 3.3.1alpha10 pretty much useless.
  • New Features:
    • Added support for Cyrillic keysyms to the x3270 Default() action.
    • Added an 'unlocked' icon for unencrypted connections, if x3270 is built with SSL/TLS support.
    • Error messages are now written to the trace file.
    • The response to the TELNET TIMING MARK option has been changed to make it compatible with the majority of TELNET clients. The response to DO TIMING MARK is now WONT TIMING MARK. To restore the previous behavior (responding with WILL TIMING MARK, originally derived from the BSD TELNET client), set the resource x3270.bsdTm to true.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha10, 29. August 2003

  • Bug Fixes:
    • Made nondisplay fields invisible to the Ascii() action.
    • Corrected start-field values at the beginning of data stream traces and in the 3270 Read Buffer response.
    • Corrected a tight loop in the macro error cancellation logic.
    • Corrected a crash when connecting to a host and there is no menu bar visible.
    • Corrected x3270 crashes in monochrome mode (-mono) and pseudo-color mode (-model 3278).
  • New Features:
    • Added a ReadBuffer() action to dump the entire contents of the 3270 buffer, including field attributes and extended attributes.
    • Added support for suppress resources for each menu item. If set to True, that menu item will not appear.
    • Added a suppressActions resource, a list of the names of actions to disable. This is primarily for controlled environments where the user does not have access to the x3270 command line, but can edit keymap definitions.
    • Added a Setverbose function to x3270_glue.expect to allow verbosity to be changed on the fly. (Courtesy of David Taylor.)
    • Added the ability to define resources in an environment variable, $X3270RDB. The environment variable overrides values set in the profile file, but is overridden by command-line options.
    • Added a fixedSize resource to force the x3270 main window to a particular size. fixedSize has the form widthxheight, in pixels. The 3270 display will float in the center of the window, if need be.
    • Added a new x3270 keypad position (x3270.keypad): insideRight. This positions the keypad on top of the upper right-hand corner of the x3270 window, just under the keypad button on the menu bar.

Changes in pr3287 3.3.1alpha10, 10. August 2003

  • Enhancements:
    • Added support for the -tracedir option, to specify a directory to store trace files in.
    • Added support the the -eojtimeout option, to automatically flush any pending print job after a specified period of inactivity.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha9, 24. July 2003

  • Bug Fixes:
    • DBCS character set names are displayed in the x3270 Options->Font menu only when DBCS support is built into x3270.
    • Removed the concept of 'per-host' resources. Use profiles for this.
    • Fixed idle commands. They were pretty much hopeless in 3.3.1alpha8 and 3.2.20.
    • Fixed a Unicode conversion crash.
    • Fixed a bug in processing the Modify Field order, which would cause the character set attribute for the field to be accidentally reset to the default.
  • New Features:
    • x3270 user-specified lists (character sets, hosts, fonts, color schemes) can now be organized into sub-lists. The name Bob>Fred>Tony specifies that there is a sub-list called Bob, which contains a sub-list Fred, which contains the item Tony.
    • The TELNET START-TLS option is now supported.

Changes in pr3287 3.3.1alpha9, 30. July 2003

  • Bug Fixes:
    • Ignore SIGINT in the print job process, so that killing an interactive pr3287 with ^C won't cause buffered data to be lost.
    • Fixed a problem with losing a byte of data after an SHF order.
    • Fixed the SCS HT order, which was completely broken.
  • Enhancements:
    • Added support for SIGUSR1 to flush the print job.
    • Added support for the TELNET START-TLS option.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha8, 15. April 2003

  • Bug Fixes:
    • Builds cleanly on Linux with -Wall -ansi -pedantic.
    • Builds without OpenSSL libraries being present.
    • Correctly records Field Attributes in the initial screen snapshot in a Data Stream Trace file.
    • Auto-Skip fields work properly.
    • "Dead" positions in DBCS fields are handled correctly.
    • Invalid host DBCS characters are handled better and are displayed in the Data Stream Trace file.
    • The Erase action now works properly with DBCS characters.
    • The x3270 Visible Control Characters toggle now works properly.
    • The EBCDIC notsign '¬' can now be entered in c3270 with Ctrl-A, ^ (it formerly caused an error message).
  • New Features:
    • The Erase action is now the default for the BackSpace key in x3270.
    • Ctrl-A, a is now mapped onto the Attn action in the c3270 default 3270 keymap.
    • Four more Japanese host code pages have been added: 930, 939, 1390 and 1399. This uses new support for combined SBCS/DBCS code pages.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1, 14. February 2003

  • Bug Fixes:
    • (Same as x3270 3.2.20)
  • New Features:
    • DBCS support for Simplfied Chinese and Japanese, including x3270 integration with XIM.
    • Tunneled SSL support added (entire Telnet session inside of an SSL tunnel). Uses the OpenSSL library. Toggled with an 'L:' prefix on the hostname.
    • A Visible Control Characters toggle replaces x3270's 3270d Debug Font.
    • About x3270 pop-up split into three smaller pieces.
ibm-3270-3.3.10ga4/ws3270/html/Build.html0000644000175000017500000000615511254565671017037 0ustar bastianbastian ws3270 Build Instructions

ws3270 Build Instructions

ws3270 is built on Windows using the MinGW tools under Cygwin. For more information about MinGW, visit the MinGW webpage. For more information about Cygwin, visit the Cygwin webpage.

The minimum set of Cygwin packages needed to build ws3270 are:

  • The default set (bash, etc.)
  • The make package from the Devel group.
  • The gcc-core package from the Devel group.

[optional] If you want SSL support, you will need to build a MinGW OpenSSL library. That requres the following packages:

  • The openssl package from the Net group. Note that you want the source for openssl, not just the binaries.
  • The perl package from the Interpreters group.
[optional] To build and install the OpenSSL library, use the following Cygwin shell commands:
   cd /usr/src/openssl-*
   ./Configure --prefix=/usr/local/mingw-openssl mingw
   make
   make install

To build ws3270 (with or without SSL support), start a Cygwin shell, cd to the directory where the source code resides, and type:

   make

ws3270 was developed primarily on 32-bit Windows XP, but should be buildable on Windows Server 2003 or Windows 2000 (though Windows 2000 has been known to build defective ws3270 DLLs). It has not been built on 64-bit Windows or on Windows Vista.

The source tarball also includes an .iss file for use with Inno Setup. This is used to construct the install executable. See the Inno Setup webpage for details.

ws3270 can also be built on Linux, using the MinGW cross-compiler. (This is how public releases of ws3270 are built.) The precise method for building a cross-compiler varies with gcc, Binutils and MinGW releases, but this link should get you started.

Using Microsoft Tools

To build ws3270 using Microsoft Visual C++, start a Command Prompt window. At the command prompt, 'cd' to the ws3270 source directory, and type:
   nmake /f Msc\Makefile

This will build ws3270.exe and the DLLs and utilities needed to install and run it.

Note that the resulting version of ws3270 will not include SSL support. To build ws3270 with a statically-linked OpenSSL library, you must modify Msc\Makefile; instructions for doing that are included in the file.

ibm-3270-3.3.10ga4/ws3270/html/Lineage.html0000644000175000017500000000445711254565671017347 0ustar bastianbastian ws3270 Lineage

ws3270 Lineage

Here is the official copyright notice for ws3270 3.3. It is a standard 3-element BSD license.

Copyright © 1993-2009, Paul Mattes.
Copyright © 2004-2005, Don Russell.
Copyright © 2004, Dick Altenbern.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

ibm-3270-3.3.10ga4/ws3270/html/README.html0000644000175000017500000000420311254565671016725 0ustar bastianbastian ws3270 3.3 General Release

ws3270 3.3 General Release

ws3270 is a scripted IBM 3278/3279 terminal emulator.

Documentation is in the directory. The files are:

Intro
What ws3270 is
Lineage
Where ws3270 came from (copyright stuff)
Build
How to build ws3270 from source
FAQ
Frequently Asked Questions (what to do when something goes wrong)
ReleaseNotes
What's new in this release
Resources
A complete list of ws3270 resources (configuration items)
Bugs
What's broken in this release
Wishlist
What isn't in this release
There is hypertext version of the ws3270 man page, and of the man page for x3270-script. Please read Build before going ahead and building the program. Also, if you have a problem, scan through FAQ; there are lots of interesting answers there.

Updates to ws3270, as well as the current status of development and bugs, are available from the x3270 Web Page.

Feel free to send comments, criticism, suggestions, complaints, etc., to Paul Mattes, Paul.Mattes@usa.net. Requests will be addressed as time and resources permit.

There is also an x3270 mailing list, which also includes information about ws3270, and which receives news about new releases. Send a message to Paul.Mattes@usa.net (a real person, with an automatic responses for certain subject lines) to get on the list. ibm-3270-3.3.10ga4/ws3270/html/Wishlist.html0000644000175000017500000000124111254565671017575 0ustar bastianbastian The ws3270 Wish List

The ws3270 Wish List

Here is a list of some of the more interesting suggestions and requests made for ws3270. You may also take this as a list of functions that are definitely not in this version of ws3270.

There is no guarantee that anyone is actively working on these, but feel free to yourself...

  • (nothing at the moment...)
ibm-3270-3.3.10ga4/ws3270/unicode.c0000644000175000017500000025016111254565704015733 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * unicode.c * A Windows console-based 3270 Terminal Emulator * EBCDIC/Unicode translation functions */ #include "globals.h" #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #include "3270ds.h" #if !defined(PR3287) /*[*/ #include "appres.h" #endif /*]*/ #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" #if !defined(PR3287) /*[*/ #include "utilc.h" #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(USE_ICONV) /*[*/ iconv_t i_u2mb = (iconv_t)-1; iconv_t i_mb2u = (iconv_t)-1; #if !defined(_LIBICONV_VERSION) || _LIBICONV_VERSION < 0x0108 /*[*/ typedef char *ici_t; /* old iconv */ #else /*][*/ typedef const char *ici_t; /* new iconv */ #endif /*]*/ #endif /*]*/ #define DEFAULT_CSNAME "us" #if defined(_WIN32) /*[*/ # if defined(WS3270) /*[*/ # define LOCAL_CODEPAGE appres.local_cp # else /*[*/ # define LOCAL_CODEPAGE CP_ACP # endif /*]*/ #endif /*]*/ /* * EBCDIC-to-Unicode translation tables. * Each table maps EBCDIC codes X'41' through X'FE' to UCS-2. * Other codes are mapped programmatically. */ #define UT_SIZE 190 #define UT_OFFSET 0x41 typedef struct { char *name; unsigned short code[UT_SIZE]; const char *host_codepage; const char *cgcsgid; const char *display_charset; } uni_t; static uni_t uni[] = { { "cp037", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp273", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "273", "273", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp275", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00c9, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x00c7, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e7, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e3, 0x003a, 0x00d5, 0x00c3, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f5, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e9, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "275", "275", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp277", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "277", "277", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp278", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "278", "278", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp280", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "280", "280", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp284", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "284", "284", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp285", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "285", "285", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp297", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "297", "297", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp424", { 0x5d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x05ea, 0x0000, 0x0000, 0x00a0, 0x0000, 0x0000, 0x0000, 0x21d4, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x00b8, 0x0000, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000 }, "424", "0x03ad01a8", "3270cg-8,iso10646-1,iso8859-8" }, { "cp500", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "500", "500", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp870", { 0x00a0, 0x00e2, 0x00e4, 0x0163, 0x00e1, 0x0103, 0x010d, 0x00e7, 0x0107, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x0119, 0x00eb, 0x016f, 0x00ed, 0x00ee, 0x013e, 0x013a, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x02dd, 0x00c1, 0x0102, 0x010c, 0x00c7, 0x0106, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x02c7, 0x00c9, 0x0118, 0x00cb, 0x016e, 0x00cd, 0x00ce, 0x013d, 0x0139, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x015b, 0x0148, 0x0111, 0x00fd, 0x0159, 0x015f, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00b8, 0x02db, 0x00a4, 0x0105, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x015a, 0x0147, 0x0110, 0x00dd, 0x0158, 0x015e, 0x00b7, 0x0104, 0x017c, 0x0162, 0x017b, 0x00a7, 0x017e, 0x017a, 0x017d, 0x0179, 0x0141, 0x0143, 0x0160, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x0155, 0x00f3, 0x0151, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x011a, 0x0171, 0x00fc, 0x0165, 0x00fa, 0x011b, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x010f, 0x00d4, 0x00d6, 0x0154, 0x00d3, 0x0150, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x010e, 0x0170, 0x00dc, 0x0164, 0x00da }, "870", "0x03bf0366", "iso10646-1,iso8859-2" }, { "cp871", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00fe, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00de, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "871", "871", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp875", { 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a8, 0x0386, 0x0388, 0x0389, 0x2207, 0x038a, 0x038c, 0x038e, 0x038f, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x00b4, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x00a3, 0x03ac, 0x03ad, 0x03ae, 0x0390, 0x03af, 0x03cc, 0x03cd, 0x03b0, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x03c9, 0x03ca, 0x03cb, 0x2018, 0x2015, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b1, 0x00bd, 0x0000, 0x00b7, 0x2019, 0x00a6, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00a7, 0x0000, 0x0000, 0x00ab, 0x00ac, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00a9, 0x0000, 0x0000, 0x00bb }, "875", "0x0464036b", "3270cg-7,iso10646-1,iso8859-7" }, { "cp880", { 0x0000, 0x0452, 0x0453, 0x0451, 0x0000, 0x0455, 0x0456, 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x0000, 0x045f, 0x042a, 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0403, 0x0401, 0x0000, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x040a, 0x040b, 0x040c, 0x0000, 0x0000, 0x040f, 0x044e, 0x0430, 0x0431, 0x0000, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0000, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0000, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x0000, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x005c, 0x00a4, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427 }, "880", "0x03bf0370", "iso10646-1,koi8-r" }, #if defined(X3270_DBCS) /*[*/ { "cp930", { /* 0x40 */ 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67, /* 0x48 */ 0xff68, 0xff69, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 0x50 */ 0x0026, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, 0x0000, /* 0x58 */ 0xff70, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, /* 0x60 */ 0x002d, 0x002f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, /* 0x68 */ 0x0067, 0x0068, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 0x70 */ 0x005b, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, /* 0x78 */ 0x0070, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 0x80 */ 0x005d, 0xff67, 0xff68, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 0x88 */ 0xff78, 0xff79, 0xff7a, 0x0071, 0xff7b, 0xff7c, 0xff7d, 0xff7e, /* 0x90 */ 0xff7f, 0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, /* 0x98 */ 0xff87, 0xff88, 0xff89, 0x0072, 0x0000, 0xff8a, 0xff8b, 0xff8c, /* 0xa0 */ 0x007e, 0x00af, 0xff8d, 0xff8e, 0xff8f, 0xff90, 0xff91, 0xff92, /* 0xa8 */ 0xff93, 0xff94, 0xff95, 0x0073, 0xff96, 0xff97, 0xff98, 0xff99, /* 0xb0 */ 0x005e, 0x00a2, 0x005c, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* 0xb8 */ 0x0079, 0x007a, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f, /* 0xc0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0xc8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xd0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* 0xd8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xe0 */ 0x0024, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* 0xe8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xf0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0xf8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } , "930", "0x04940122" /* 1172, 0290 */, "iso10646-1,jisx0201.1976-0" }, { "cp935", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "935", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp937", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "937", "0x04970025" /* 1175, 037 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp939", { /* 40 */ 0x0000, 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, /* 48 */ 0xff67, 0xff68, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 50 */ 0x0026, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, /* 58 */ 0xff70, 0xff71, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, /* 60 */ 0x002d, 0x002f, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 68 */ 0xff78, 0xff79, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 70 */ 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, 0xff80, 0xff81, /* 78 */ 0xff82, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 80 */ 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 88 */ 0x0068, 0x0069, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, 0xff88, /* 90 */ 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, /* 98 */ 0x0071, 0x0072, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, /* a0 */ 0x00af, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* a8 */ 0x0079, 0x007a, 0xff8f, 0xff90, 0xff91, 0x005b, 0xff92, 0xff93, /* b0 */ 0x005e, 0x00a3, 0x00a5, 0xff94, 0xff95, 0xff96, 0xff97, 0xff98, /* b8 */ 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0x005d, 0xff9e, 0xff9f, /* c0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* c8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* d8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x005c, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* e8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* f8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "939", "0x04940403" /* 1172, 1027 */, "iso10646-1,jisx0201.1976-0" }, #endif /*]*/ { "cp1026", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x007d, 0x0060, 0x00a6, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x02db, 0x00c6, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x005d, 0x0024, 0x0040, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x2014, 0x00a8, 0x00b4, 0x00d7, 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0x00ff, 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da }, "1026", "0x04800402", "iso10646-1,iso8859-9" }, { "cp1047", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x00ac, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1047", "1047", "iso10646-1,iso8859-1" }, { "cp1140", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1140", "0x02b70474" /* 695, 1140 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1141", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "1141", "0x02b70475" /* 695, 1141 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1142", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1142", "0x02b70476" /* 695, 1142 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1143", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1143", "0x02b70477" /* 695, 1143 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1144", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1144", "0x02b70478" /* 695, 1144 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1145", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1145", "0x02b70478" /* 695, 1145 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1146", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1146", "0x02b7047a" /* 695, 1146 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1147", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1147", "0x02b7047a" /* 695, 1147 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1148", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1148", "0x02b7047c" /* 695, 1148 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1149", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00de, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x20ac, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00fe, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1149", "0x02b7047d" /* 695, 1149 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1160", { 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, 0x005b, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0e48, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x005d, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x005e, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0e3f, 0x0e4e, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0e4f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, 0x0e5a, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e5b, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, 0x0e58, 0x0e59, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0e49, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0e3a, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x005c, 0x0e4a, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4b, 0x20ac }, "1160", "0x05730488" /* 1395, 1160 */, "iso10646-1,iso8859-11" }, #if defined(X3270_DBCS) /*[*/ { "cp1388", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "1388", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, #endif /*]*/ { "apl", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,iso10646-1" }, { "bracket", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37+", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { NULL } }; /* Code page aliases. */ typedef struct { char *alias; char *canon; } cpalias_t; cpalias_t cpaliases[] = { { "belgian", "cp500" }, { "belgian-euro", "cp1148" }, { "brazilian", "cp275" }, #if defined(X3270_DBCS) /*[*/ { "chinese-gb18030","cp1388" }, { "cp1027", "cp939" }, /* historical error */ { "cp290", "cp930" }, /* historical error */ #endif /*]*/ { "cp37", "cp037" }, #if defined(X3270_DBCS) /*[*/ { "cp836", "cp935" }, /* historical error */ #endif /*]*/ { "finnish", "cp278" }, { "finnish-euro", "cp1143" }, { "french", "cp297" }, { "french-euro", "cp1147" }, { "german", "cp273" }, { "german-euro", "cp1141" }, { "greek", "cp875" }, { "hebrew", "cp424" }, { "icelandic", "cp871" }, { "icelandic-euro", "cp1149" }, { "italian", "cp280" }, { "italian-euro", "cp1144" }, #if defined(X3270_DBCS) /*[*/ { "japanese-1027", "cp939" }, /* historical error */ { "japanese-290", "cp930" }, /* historical error */ { "japanese-kana", "cp930" }, { "japanese-latin", "cp939" }, #endif /*]*/ { "norwegian", "cp277" }, { "norwegian-euro", "cp1142" }, { "oldibm", "bracket" }, { "bracket437", "bracket" }, { "polish", "cp870" }, { "russian", "cp880" }, #if defined(X3270_DBCS) /*[*/ { "simplified-chinese","cp935" }, #endif /*]*/ { "slovenian", "cp870" }, { "spanish", "cp284" }, { "spanish-euro", "cp1145" }, { "thai", "cp1160" }, #if defined(X3270_DBCS) /*[*/ { "traditional-chinese", "cp937" }, #endif /*]*/ { "turkish", "cp1026" }, { "uk", "cp285" }, { "uk-euro", "cp1146" }, { DEFAULT_CSNAME, "cp037" }, { "us-euro", "cp1140" }, { "us-intl", "cp037" }, { NULL, NULL } }; static uni_t *cur_uni = NULL; void charset_list(void) { int i; int j; char *sep = ""; printf("SBCS host code pages (with aliases):\n"); for (i = 0; uni[i].name != NULL; i++) { Boolean any = False; char *asep = " ("; printf("%s%s", sep, uni[i].name); for (j = 0; cpaliases[j].alias != NULL; j++) { if (!strcmp(cpaliases[j].canon, uni[i].name)) { printf("%s%s", asep, cpaliases[j].alias); asep = ", "; any = True; } } if (any) printf(")"); sep = ", "; } printf("\n"); #if defined(X3270_DBCS) /*[*/ charset_list_dbcs(); #endif /*]*/ } /* * Translate a single EBCDIC character in an arbitrary character set to * Unicode. Note that CS_DBCS is never used -- use CS_BASE and pass an * EBCDIC character > 0xff. * * Returns 0 for no translation. */ ucs4_t ebcdic_to_unicode(ebc_t c, unsigned char cs, unsigned flags) { int iuc; ucs4_t uc; #if 0 /* I'm not sure why this was put in, but it breaks display of DUP and FM. Hopefully I'll figure out why it was put in in the first place and I can put it back under the right conditions. */ /* Control characters become blanks. */ if (c <= 0x41 || c == 0xff) uc = 0; #endif /* * We do not pay attention to BLANK_UNDEF -- we always return 0 * for undefined characters. */ flags &= ~EUO_BLANK_UNDEF; /* Dispatch on the character set. */ if ((cs & CS_GE) || ((cs & CS_MASK) == CS_APL)) { iuc = apl_to_unicode(c, flags); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs == CS_LINEDRAW) { iuc = linedraw_to_unicode(c /* XXX: flags */); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs != CS_BASE) uc = 0; else uc = ebcdic_base_to_unicode(c, flags); return uc; } /* * Translate a single EBCDIC character in the base or DBCS character sets to * Unicode. * * EBCDIC 'FM' and 'DUP' characters are treated specially. If EUO_UPRIV * is set, they are returned as U+f8fe and U+feff (private-use) respectively * so they can be displayed with overscores in the special 3270 font; * otherwise they are returned as '*' and ';'. * EBCDIC 'EO' and 'SUB' are special-cased to U+25cf and U+25a0, respectively. * * If EUO_BLANK_UNDEF is set, other undisplayable characters are returned as * spaces; otherwise they are returned as 0. */ ucs4_t ebcdic_base_to_unicode(ebc_t c, unsigned flags) { #if defined(X3270_DBCS) /*[*/ if (c & 0xff00) return ebcdic_dbcs_to_unicode(c, flags); #endif /*]*/ if (c == 0x40) return 0x0020; if (c >= UT_OFFSET && c < 0xff) { ebc_t uc = cur_uni->code[c - UT_OFFSET]; return uc? uc: ((flags & EUO_BLANK_UNDEF)? ' ': 0); } else switch (c) { case EBC_fm: return (flags & EUO_UPRIV)? UPRIV_fm: ';'; case EBC_dup: return (flags & EUO_UPRIV)? UPRIV_dup: '*'; case EBC_eo: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_eo: 0x25cf; /* solid circle */ case EBC_sub: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_sub: 0x25a0; /* solid block */ default: if (flags & EUO_BLANK_UNDEF) return ' '; else return 0; } } /* * Map a UCS-4 character to an EBCDIC character. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic(ucs4_t u) { int i; #if defined(X3270_DBCS) /*[*/ ebc_t d; #endif /*]*/ if (!u) return 0; if (u == 0x0020) return 0x40; for (i = 0; i < UT_SIZE; i++) { if (cur_uni->code[i] == u) { return UT_OFFSET + i; } } #if defined(X3270_DBCS) /*[*/ /* See if it's DBCS. */ d = unicode_to_ebcdic_dbcs(u); if (d) return d; #endif /*]*/ return 0; } /* * Map a UCS-4 character to an EBCDIC character, possibly including APL (GE) * characters. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic_ge(ucs4_t u, Boolean *ge) { ebc_t e; *ge = False; e = unicode_to_ebcdic(u); if (e) return e; /* Handle GEs. Yes, this is slow, but I'm lazy. */ for (e = 0x70; e <= 0xfe; e++) { if ((ucs4_t)apl_to_unicode(e, EUO_NONE) == u) { *ge = True; return e; } } return 0; } /* * Set the SBCS EBCDIC-to-Unicode translation table. * Returns 0 for success, -1 for failure. */ int set_uni(const char *csname, const char **host_codepage, const char **cgcsgid, const char **display_charsets) { int i; const char *realname; int rc = -1; Boolean cannot_fail = False; /* * If the csname is NULL, this is a fallback to the default * and the iconv lookup cannot fail. */ if (csname == NULL) { csname = DEFAULT_CSNAME; cannot_fail = True; } realname = csname; /* Search for an alias. */ for (i = 0; cpaliases[i].alias != NULL; i++) { if (!strcasecmp(csname, cpaliases[i].alias)) { realname = cpaliases[i].canon; break; } } /* Search for a match. */ for (i = 0; uni[i].name != NULL; i++) { if (!strcasecmp(realname, uni[i].name)) { cur_uni = &uni[i]; *host_codepage = uni[i].host_codepage; *cgcsgid = uni[i].cgcsgid; *display_charsets = uni[i].display_charset; rc = 0; break; } } if (cannot_fail && rc == -1) Error("Cannot find default charset definition"); #if defined(USE_ICONV) /*[*/ /* * wchar_t's are not Unicode, so getting to/from Unicode is only half * the battle. We need to use iconv() to get between Unicode to the * local multi-byte representation. We'll explicitly use UTF-8, which * appears to be the most broadly-supported translation. */ if (rc == 0) { if (!is_utf8) { /* * If iconv doesn't support the locale's codeset, then * this box is hosed. */ i_u2mb = iconv_open(locale_codeset, "UTF-8"); if (i_u2mb == (iconv_t)(-1)) rc = -1; else { i_mb2u = iconv_open("UTF-8", locale_codeset); if (i_mb2u == (iconv_t)(-1)) { iconv_close(i_u2mb); rc = -1; } } } if (rc == -1 && cannot_fail) { /* Try again with plain-old ASCII. */ #if defined(PR3287) /*[*/ Warning("Cannot find iconv translation from locale " "codeset to UTF-8, using ASCII"); #else /*][*/ xs_warning("Cannot find iconv translation from locale " "codeset '%s' to UTF-8, using ASCII", locale_codeset); #endif /*]*/ i_u2mb = iconv_open("ASCII", "UTF-8"); if (i_u2mb == (iconv_t)-1) Error("No iconv UTF-8 to ASCII translation"); i_mb2u = iconv_open("UTF-8", "ASCII"); if (i_mb2u == (iconv_t)-1) Error("No iconv ASCII to UTF-8 translation"); rc = 0; } } #endif /*]*/ return rc; } /* * Translate an x3270 font line-drawing character (the first two rows of a * standard X11 fixed-width font) to Unicode. * * Returns -1 if there is no translation. */ int linedraw_to_unicode(ebc_t c) { static ebc_t ld2uc[32] = { /* 00 */ 0x2588, 0x25c6, 0x2592, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, /* 08 */ 0x00b1, 0x0000, 0x0000, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, /* 10 */ 0x002d, 0x002d, 0x2500, 0x002d, 0x005f, 0x251c, 0x2524, 0x2534, /* 18 */ 0x252c, 0x2502, 0x2264, 0x2265, 0x03c0, 0x2260, 0x00a3, 0x2022 }; if (c < 32 && ld2uc[c] != 0x0000) return ld2uc[c]; else return -1; } int apl_to_unicode(ebc_t c, unsigned flags) { static ebc_t apl2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x25c6, 0x22c0, 0x00a8, 0x223b, 0x2378, 0x2377, 0x22a2, 0x22a3, /* 78 */ 0x2228, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x23b8, 0x23b9, 0x2502, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x2191, 0x2193, 0x2264, 0x2308, 0x230a, 0x2192, /* 90 */ 0x2395, 0x258c, 0x2590, 0x2580, 0x2584, 0x25a0, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x2283, 0x2282, 0x00a4, 0x25cb, 0x00b1, 0x2190, /* a0 */ 0x00af, 0x00b0, 0x2500, 0x2022, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x22c2, 0x22c3, 0x22a5, 0x005b, 0x2265, 0x2218, /* b0 */ 0x03b1, 0x03b5, 0x03b9, 0x03c1, 0x03c9, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x2207, 0x2206, 0x22a4, 0x005d, 0x2260, 0x2502, /* c0 */ 0x007b, 0x207c, 0x002b, 0x220e, 0x2514, 0x250c, 0x251c, 0x2534, /* c8 */ 0x00a7, 0x0000, 0x2372, 0x2371, 0x2337, 0x233d, 0x2342, 0x2349, /* d0 */ 0x007d, 0x207e, 0x002d, 0x253c, 0x2518, 0x2510, 0x2524, 0x252c, /* d8 */ 0x00b6, 0x0000, 0x2336, 0x0021, 0x2352, 0x234b, 0x235e, 0x235d, /* e0 */ 0x2261, 0x2081, 0x0282, 0x0283, 0x2364, 0x2365, 0x236a, 0x20ac, /* e8 */ 0x0000, 0x0000, 0x233f, 0x2240, 0x2235, 0x2296, 0x2339, 0x2355, /* f0 */ 0x2070, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x2075, 0x2076, 0x2077, /* f8 */ 0x2078, 0x2079, 0x0000, 0x236b, 0x2359, 0x235f, 0x234e, 0x0000 }; #if defined(C3270) /*[*/ static ebc_t apla2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x0000, 0x0000, 0x00a8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x0000, 0x0000, 0x007c, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 90 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x00a4, 0x0000, 0x00b1, 0x0000, /* a0 */ 0x00af, 0x00b0, 0x002d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x0000, 0x0000, /* b0 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x0000, 0x0000, 0x0000, 0x005d, 0x0000, 0x007c, /* c0 */ 0x007b, 0x0000, 0x002b, 0x0000, 0x002b, 0x002b, 0x002b, 0x002b, /* c8 */ 0x00a7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x0000, 0x002d, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, /* d8 */ 0x00b6, 0x0000, 0x0000, 0x0021, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x0000, 0x0000, 0x0282, 0x0283, 0x0000, 0x0000, 0x0000, 0x0000, /* e8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0000, 0x00b9, 0x00b2, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000, /* f8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; #endif /*]*/ #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) { if (c < 256 && apla2uc[c] != 0x0000) { #if defined(_WIN32) /*[*/ /* Windows DBCS fonts make U+0080..U+00ff wide, too. */ if (apla2uc[c] > 0x7f) return -1; #endif /*]*/ return apla2uc[c]; } else return -1; } #endif /*]*/ if (c < 256 && apl2uc[c] != 0x0000) return apl2uc[c]; else return -1; } /* * Translate an EBCDIC character to the current locale's multi-byte * representation. * * Returns the number of bytes in the multi-byte representation, including * the terminating NULL. mb[] should be big enough to include the NULL * in the result. * * Also returns in 'ucp' the UCS-4 Unicode value of the EBCDIC character. * * Note that 'ebc' is an ebc_t (uint16_t), not an unsigned char. This is * so that DBCS values can be passed in as 16 bits (with the first byte * in the high-order bits). There is no ambiguity because all valid EBCDIC * DBCS characters have a nonzero first byte. * * Returns 0 if EUO_BLANK_UNDEF is clear and there is no printable EBCDIC * translation for 'ebc'. * * Returns '?' in mb[] if there is no local multi-byte representation of * the EBCDIC character. */ int ebcdic_to_multibyte_x(ebc_t ebc, unsigned char cs, char mb[], int mb_len, unsigned flags, ucs4_t *ucp) { ucs4_t uc; #if defined(_WIN32) /*[*/ int nc; BOOL udc; wchar_t wuc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; wchar_t wuc; #else /*][*/ char u8b[7]; size_t nu8; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; #endif /*]*/ /* Translate from EBCDIC to Unicode. */ uc = ebcdic_to_unicode(ebc, cs, flags); if (ucp != NULL) *ucp = uc; if (uc == 0) { if (flags & EUO_BLANK_UNDEF) { mb[0] = ' '; mb[1] = '\0'; return 2; } else { return 0; } } /* Translate from Unicode to local multibyte. */ #if defined(_WIN32) /*[*/ /* * wchar_t's are Unicode. */ wuc = uc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc != 0) { mb[nc++] = '\0'; return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #elif defined(UNICODE_WCHAR) /*][*/ /* * wchar_t's are Unicode. * If 'is_utf8' is set, use unicode_to_utf8(). This allows us to set * 'is_utf8' directly, ignoring the locale, for Tcl. * Otherwise, use wctomb(). */ if (is_utf8) { nc = unicode_to_utf8(uc, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } wuc = uc; nc = wctomb(mb, uc); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ /* * Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(uc, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc < 0 || inbytesleft == nu8) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc < 0) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } /* Commonest version of ebcdic_to_multibyte_x: * cs is CS_BASE * EUO_BLANK_UNDEF is set * ucp is ignored */ int ebcdic_to_multibyte(ebc_t ebc, char mb[], int mb_len) { return ebcdic_to_multibyte_x(ebc, CS_BASE, mb, mb_len, EUO_BLANK_UNDEF, NULL); } /* * Convert an EBCDIC string to a multibyte string. * Makes lots of assumptions: standard character set, EUO_BLANK_UNDEF. * Returns the length of the multibyte string. */ int ebcdic_to_multibyte_string(unsigned char *ebc, size_t ebc_len, char mb[], size_t mb_len) { int nmb = 0; while (ebc_len && mb_len) { int xlen; xlen = ebcdic_to_multibyte(*ebc, mb, mb_len); if (xlen) { mb += xlen - 1; mb_len -= (xlen - 1); nmb += xlen - 1; } ebc++; ebc_len--; } return nmb; } /* * Return the maximum buffer length needed to translate 'len' EBCDIC characters * in the current locale. */ int mb_max_len(int len) { #if defined(_WIN32) /*[*/ /* * On Windows, it's 1:1 (we don't do DBCS, and we don't support locales * like UTF-8). */ return len + 1; #elif defined(UNICODE_WCHAR) /*][*/ /* Allocate enough space for shift-state transitions. */ return (MB_CUR_MAX * (len * 2)) + 1; #else /*]*/ if (is_utf8) return (len * 6) + 1; else /* * We don't actually know. Guess that MB_CUR_MAX is 16, and compute * as for UNICODE_WCHAR. */ return (16 * (len * 2)) + 1; #endif /*]*/ } /* * Translate a multi-byte character in the current locale to UCS-4. * * Returns a UCS-4 character or 0, indicating an error in translation. * Also returns the number of characters consumed. */ ucs4_t multibyte_to_unicode(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { size_t nw; ucs4_t ucs4; #if defined(_WIN32) /*[*/ wchar_t wc[3]; int i; /* Use MultiByteToWideChar() to get from the ANSI codepage to UTF-16. */ for (i = 1; i <= mb_len; i++) { nw = MultiByteToWideChar(LOCAL_CODEPAGE, MB_ERR_INVALID_CHARS, mb, i, wc, 3); if (nw != 0) break; } if (i > mb_len) { *errorp = ME_INVALID; return 0; } *consumedp = i; ucs4 = wc[0]; #elif defined(UNICODE_WCHAR) /*][*/ wchar_t wc[3]; /* wchar_t's are Unicode. */ if (is_utf8) { int nc; /* * Use utf8_to_unicode() instead of mbtowc(), so we can set is_utf8 * directly and ignore the locale for Tcl. */ nc = utf8_to_unicode(mb, mb_len, &ucs4); if (nc > 0) { *errorp = ME_NONE; *consumedp = nc; return ucs4; } else if (nc == 0) { *errorp = ME_SHORT; return 0; } else { *errorp = ME_INVALID; return 0; } } /* mbtowc() will translate to Unicode. */ nw = mbtowc(wc, mb, mb_len); if (nw == (size_t)-1) { if (errno == EILSEQ) *errorp = ME_INVALID; else *errorp = ME_SHORT; nw = mbtowc(NULL, NULL, 0); return 0; } /* * Reset the shift state. * XXX: Doing this will ruin the shift state if this function is called * repeatedly to process a string. There should probably be a parameter * passed in to control whether or not to reset the shift state, or * perhaps there should be a function to translate a string. */ *consumedp = nw; nw = mbtowc(NULL, NULL, 0); ucs4 = wc[0]; #else /*][*/ /* wchar_t's have unknown encoding. */ if (!is_utf8) { ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; char utf8buf[16]; size_t ibl; /* Translate from local MB to UTF-8 using iconv(). */ for (ibl = 1; ibl <= mb_len; ibl++) { inbuf = (ici_t)mb; outbuf = utf8buf; inbytesleft = ibl; outbytesleft = sizeof(utf8buf); nw = iconv(i_mb2u, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nw < 0) { if (errno == EILSEQ) { *errorp = ME_INVALID; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } else { if (ibl == mb_len) { *errorp = ME_SHORT; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } } } else break; } *consumedp = ibl - inbytesleft; /* Translate from UTF-8 to UCS-4. */ (void) utf8_to_unicode(utf8buf, sizeof(utf8buf) - outbytesleft, &ucs4); } else { /* Translate from UTF-8 to UCS-4. */ nw = utf8_to_unicode(mb, mb_len, &ucs4); if (nw < 0) { *errorp = ME_INVALID; return 0; } if (nw == 0) { *errorp = ME_SHORT; return 0; } *consumedp = nw; } #endif /*]*/ /* Translate from UCS4 to EBCDIC. */ return ucs4; } /* * Convert a multi-byte string to a UCS-4 string. * Does not NULL-terminate the result. * Returns the number of UCS-4 characters stored. */ int multibyte_to_unicode_string(char *mb, size_t mb_len, ucs4_t *ucs4, size_t u_len) { int consumed; enum me_fail error; int nr = 0; error = ME_NONE; while (u_len && mb_len && (*ucs4++ = multibyte_to_unicode(mb, mb_len, &consumed, &error)) != 0) { u_len--; mb += consumed; mb_len -= consumed; nr++; } if (error != ME_NONE) return -1; else return nr; } /* * Translate a multi-byte character in the current locale to an EBCDIC * character. * * Returns an 8-bit (SBCS) or 16-bit (DBCS) EBCDIC character, or 0, indicating * an error in translation. Also returns the number of characters consumed. */ ebc_t multibyte_to_ebcdic(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { ucs4_t ucs4; ucs4 = multibyte_to_unicode(mb, mb_len, consumedp, errorp); if (ucs4 == 0) return 0; return unicode_to_ebcdic(ucs4); } /* * Convert a local multi-byte string to an EBCDIC string. * Returns the length of the resulting EBCDIC string, or -1 if there is a * conversion error. */ int multibyte_to_ebcdic_string(char *mb, size_t mb_len, unsigned char *ebc, size_t ebc_len, enum me_fail *errorp) { int ne = 0; Boolean in_dbcs = False; while (mb_len > 0 && ebc_len > 0) { ebc_t e; int consumed; e = multibyte_to_ebcdic(mb, mb_len, &consumed, errorp); if (e == 0) return -1; if (e & 0xff00) { /* DBCS. */ if (!in_dbcs) { /* Make sure there's room for SO, b1, b2, SI. */ if (ebc_len < 4) return ne; *ebc++ = EBC_so; ebc_len++; ne++; in_dbcs = True; } /* Make sure there's room for b1, b2, SI. */ if (ebc_len < 3) { *ebc++ = EBC_si; ne++; return ne; } *ebc++ = (e >> 8) & 0xff; *ebc++ = e & 0xff; ebc_len -= 2; ne += 2; } else { /* SBCS. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; if (!--ebc_len) return ne; in_dbcs = False; } *ebc++ = e & 0xff; ebc_len--; ne++; } mb += consumed; mb_len -= consumed; } /* * Terminate the DBCS string, if we end inside it. * We're guaranteed to have space for the SI; we checked before adding * the last DBCS character. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; } return ne; } /* * Translate a UCS-4 character to a local multi-byte string. */ int unicode_to_multibyte(ucs4_t ucs4, char *mb, size_t mb_len) { #if defined(_WIN32) /*[*/ wchar_t wuc = ucs4; BOOL udc; int nc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc > 0) mb[nc++] = '\0'; return nc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; if (is_utf8) { nc = unicode_to_utf8(ucs4, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } nc = wctomb(mb, ucs4); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ int nu8; char u8b[16]; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; /* Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(ucs4, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } ibm-3270-3.3.10ga4/ws3270/ws3270.rc0000644000175000017500000000004211254565672015427 0ustar bastianbastianLANGUAGE 0, 0 100 ICON ws3270.ico ibm-3270-3.3.10ga4/ws3270/LICENSE.txt0000644000175000017500000000346511254565672015773 0ustar bastianbastianCopyright (c) 1993-2009, Paul Mattes. Copyright (c) 2004-2005, Don Russell. Copyright (c) 2004, Dick Altenbern. Copyright (c) 1990, Jeff Sparkes. Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES, DICK ALTENBERN AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ibm-3270-3.3.10ga4/ws3270/localdefs.h0000644000175000017500000000551411254565672016252 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * localdefs.h * Local definitions for c3270. * * This file contains definitions for environment-specific * facilities, such as memory allocation, I/O registration, * and timers. */ /* Identify ourselves. */ #define S3270 1 /* Conditional 80/132 mode switch support. */ #if defined(BROKEN_NEWTERM) /*[*/ #undef C3270_80_132 #else /*][*/ #define C3270_80_132 1 #endif /*]*/ /* These first definitions were cribbed from X11 -- but no X code is used. */ #define False 0 #define True 1 typedef void *XtPointer; typedef void *Widget; typedef void *XEvent; typedef char Boolean; typedef char *String; typedef unsigned int Cardinal; typedef unsigned long KeySym; #define Bool int typedef void (*XtActionProc)( Widget /* widget */, XEvent* /* event */, String* /* params */, Cardinal* /* num_params */ ); typedef struct _XtActionsRec{ String string; XtActionProc proc; } XtActionsRec; #define XtNumber(n) (sizeof(n)/sizeof((n)[0])) #define NoSymbol 0L /* These are local functions with similar semantics to X functions. */ extern void *Malloc(size_t); extern void Free(void *); extern void *Calloc(size_t, size_t); extern void *Realloc(void *, size_t); extern char *NewString(const char *); extern void Error(const char *); extern void Warning(const char *); /* "Required" optional parts. */ #define X3270_SCRIPT 1 ibm-3270-3.3.10ga4/ws3270/conf.h0000644000175000017500000000025111254565672015234 0ustar bastianbastian/* Hard-coded conf.h for ws3270 */ #define LIBX3270DIR "." #define X3270_TN3270E 1 #define X3270_TRACE 1 #define X3270_FT 1 #define X3270_ANSI 1 #define X3270_DBCS 1 ibm-3270-3.3.10ga4/ws3270/hostc.h0000644000175000017500000000472011254565704015430 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * hostc.h * Global declarations for host.c. */ struct host { char *name; char **parents; char *hostname; enum { PRIMARY, ALIAS, RECENT } entry_type; char *loginstring; time_t connect_time; struct host *prev, *next; }; extern struct host *hosts; extern void Connect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Disconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Reconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); /* Host connect/disconnect and state change. */ extern void hostfile_init(void); extern void host_cancel_reconnect(void); extern int host_connect(const char *n); extern void host_connected(void); extern void host_disconnect(Boolean disable); extern void host_in3270(enum cstate); extern void host_newfd(int s); extern void register_schange(int tx, void (*func)(Boolean)); extern void st_changed(int tx, Boolean mode); ibm-3270-3.3.10ga4/ws3270/aplc.h0000644000175000017500000000316211254565704015226 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * aplc.h * Global declarations for apl.c. */ extern KeySym APLStringToKeysym(char *s, int *is_gep); ibm-3270-3.3.10ga4/ws3270/resources.h0000644000175000017500000003537711254565704016336 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resources.h * x3270/c3270/s3270/tcl3270 resource and option names. */ /* Resources. */ #define ResAcs "acs" #define ResActiveIcon "activeIcon" #define ResAdVersion "adVersion" #define ResAidWait "aidWait" #define ResAllBold "allBold" #define ResAllowResize "allowResize" #define ResAltCursor "altCursor" #define ResAltScreen "altScreen" #define ResAplMode "aplMode" #define ResAsciiBoxDraw "asciiBoxDraw" #define ResAssocCommand "printer.assocCommandLine" #define ResAutoShortcut "autoShortcut" #define ResBaselevelTranslations "baselevelTranslations" #define ResBellVolume "bellVolume" #define ResBlankFill "blankFill" #define ResBoldColor "boldColor" #define ResBsdTm "bsdTm" #define ResCbreak "cbreak" #define ResCertFile "certFile" #define ResCharClass "charClass" #define ResCharset "charset" #define ResCharsetList "charsetList" #define ResColor8 "color8" #define ResColorBackground "colorBackground" #define ResColorScheme "colorScheme" #define ResCommandTimeout "commandTimeout" #define ResComposeMap "composeMap" #define ResConfDir "confDir" #define ResConnectFileName "connectFileName" #define ResConsoleColorForHostColor "consoleColorForHostColor" #define ResCrosshair "crosshair" #define ResCursesColorFor "cursesColorFor" #define ResCursesColorForDefault ResCursesColorFor "Default" #define ResCursesColorForHostColor ResCursesColorFor "HostColor" #define ResCursesColorForIntensified ResCursesColorFor "Intensified" #define ResCursesColorForProtected ResCursesColorFor "Protected" #define ResCursesColorForProtectedIntensified ResCursesColorFor "ProtectedIntensified" #define ResCursesKeypad "cursesKeypad" #define ResCursorBlink "cursorBlink" #define ResCursorColor "cursorColor" #define ResCursorPos "cursorPos" #define ResDebugTracing "debugTracing" #define ResDefScreen "defScreen" #define ResDftBufferSize "dftBufferSize" #define ResDisconnectClear "disconnectClear" #define ResDoConfirms "doConfirms" #define ResDbcsCgcsgid "dbcsCgcsgid" #define ResDsTrace "dsTrace" #define ResEmulatorFont "emulatorFont" #define ResEof "eof" #define ResErase "erase" #define ResEventTrace "eventTrace" #define ResExtended "extended" #define ResFixedSize "fixedSize" #define ResHighlightBold "highlightBold" #define ResHostColorFor "hostColorFor" #define ResHostColorForDefault ResHostColorFor "Default" #define ResHostColorForIntensified ResHostColorFor "Intensified" #define ResHostColorForProtected ResHostColorFor "Protected" #define ResHostColorForProtectedIntensified ResHostColorFor "ProtectedIntensified" #define ResHostname "hostname" #define ResHostsFile "hostsFile" #define ResIconFont "iconFont" #define ResIconLabelFont "iconLabelFont" #define ResIcrnl "icrnl" #define ResIdleCommand "idleCommand" #define ResIdleCommandEnabled "idleCommandEnabled" #define ResIdleTimeout "idleTimeout" #define ResInlcr "inlcr" #define ResInputColor "inputColor" #define ResInputMethod "inputMethod" #define ResIntr "intr" #define ResInvertKeypadShift "invertKeypadShift" #define ResKeymap "keymap" #define ResKeypad "keypad" #define ResKeypadBackground "keypadBackground" #define ResKeypadOn "keypadOn" #define ResKill "kill" #define ResLabelIcon "labelIcon" #define ResLineWrap "lineWrap" #define ResLnext "lnext" #define ResLocalCp "localCp" #define ResLoginMacro "loginMacro" #define ResLockedCursor "lockedCursor" #define ResLuCommandLine "printer.luCommandLine" #define ResM3279 "m3279" #define ResMacros "macros" #define ResMarginedPaste "marginedPaste" #define ResMenuBar "menuBar" #define ResMetaEscape "metaEscape" #define ResModel "model" #define ResModifiedSel "modifiedSel" #define ResModifiedSelColor "modifiedSelColor" #define ResMono "mono" #define ResMonoCase "monoCase" #define ResMouse "mouse" #define ResNoOther "noOther" #define ResNoPrompt "noPrompt" #define ResNormalColor "normalColor" #define ResNormalCursor "normalCursor" #define ResNumericLock "numericLock" #define ResOerrLock "oerrLock" #define ResOnce "once" #define ResOnlcr "onlcr" #define ResOversize "oversize" #define ResPluginCommand "pluginCommand" #define ResPort "port" #define ResPreeditType "preeditType" #define ResPrinterCodepage "printer.codepage" #define ResPrinterCommand "printer.command" #define ResPrinterLu "printerLu" #define ResPrinterName "printer.name" #define ResProxy "proxy" #define ResQuit "quit" #define ResReconnect "reconnect" #define ResRectangleSelect "rectangleSelect" #define ResReverseVideo "reverseVideo" #define ResRprnt "rprnt" #define ResSaveLines "saveLines" #define ResSchemeList "schemeList" #define ResScreenTrace "screenTrace" #define ResScreenTraceFile "screenTraceFile" #define ResScripted "scripted" #define ResScriptPort "scriptPort" #define ResScrollBar "scrollBar" #define ResSecure "secure" #define ResSelectBackground "selectBackground" #define ResSbcsCgcsgid "sbcsCgcsgid" #define ResShowTiming "showTiming" #define ResSocket "socket" #define ResSuppressActions "suppressActions" #define ResSuppressHost "suppressHost" #define ResSuppressFontMenu "suppressFontMenu" #define ResSuppress "suppress" #define ResTermName "termName" #define ResTitle "title" #define ResTraceDir "traceDir" #define ResTraceFile "traceFile" #define ResTraceFileSize "traceFileSize" #define ResTraceMonitor "traceMonitor" #define ResTypeahead "typeahead" #define ResUnderscore "underscore" #define ResUnlockDelay "unlockDelay" #define ResUnlockDelayMs "unlockDelayMs" #define ResUseCursorColor "useCursorColor" #define ResV "v" #define ResVisibleControl "visibleControl" #define ResVisualBell "visualBell" #define ResVisualSelect "visualSelect" #define ResVisualSelectColor "visualSelectColor" #define ResWaitCursor "waitCursor" #define ResWerase "werase" /* Dotted resource names. */ #define DotActiveIcon "." ResActiveIcon #define DotAplMode "." ResAplMode #define DotCertFile "." ResCertFile #define DotCbreak "." ResCbreak #define DotCharClass "." ResCharClass #define DotCharset "." ResCharset #define DotColorScheme "." ResColorScheme #define DotDsTrace "." ResDsTrace #define DotEmulatorFont "." ResEmulatorFont #define DotExtended "." ResExtended #define DotInputMethod "." ResInputMethod #define DotKeymap "." ResKeymap #define DotKeypadOn "." ResKeypadOn #define DotM3279 "." ResM3279 #define DotModel "." ResModel #define DotMono "." ResMono #define DotOnce "." ResOnce #define DotOversize "." ResOversize #define DotPort "." ResPort #define DotPreeditType "." ResPreeditType #define DotPrinterLu "." ResPrinterLu #define DotProxy "." ResProxy #define DotReconnect "." ResReconnect #define DotSaveLines "." ResSaveLines #define DotScripted "." ResScripted #define DotScriptPort "." ResScriptPort #define DotScrollBar "." ResScrollBar #define DotSocket "." ResSocket #define DotTermName "." ResTermName #define DotTitle "." ResTitle #define DotTraceFile "." ResTraceFile #define DotTraceFileSize "." ResTraceFileSize #define DotV "." ResV /* Resource classes. */ #define ClsActiveIcon "ActiveIcon" #define ClsAdVersion "AdVersion" #define ClsAidWait "AidWait" #define ClsAllBold "AllBold" #define ClsAllowResize "AllowResize" #define ClsAltCursor "AltCursor" #define ClsAplMode "AplMode" #define ClsBaselevelTranslations "BaselevelTranslations" #define ClsBellVolume "BellVolume" #define ClsBlankFill "BlankFill" #define ClsBoldColor "BoldColor" #define ClsBsdTm "BsdTm" #define ClsCbreak "Cbreak" #define ClsCertFile "CertFile" #define ClsCharClass "CharClass" #define ClsCharset "Charset" #define ClsColor8 "Color8" #define ClsColorBackground "ColorBackground" #define ClsColorScheme "ColorScheme" #define ClsComposeMap "ComposeMap" #define ClsConfDir "ConfDir" #define ClsConnectFileName "ConnectFileName" #define ClsCrosshair "Crosshair" #define ClsCursorBlink "CursorBlink" #define ClsCursorColor "CursorColor" #define ClsCursorPos "CursorPos" #define ClsDbcsCgcsgid "DbcsCgcsgid" #define ClsDebugTracing "DebugTracing" #define ClsDftBufferSize "DftBufferSize" #define ClsDisconnectClear "DisconnectClear" #define ClsDoConfirms "DoConfirms" #define ClsDsTrace "DsTrace" #define ClsEmulatorFont "EmulatorFont" #define ClsEof "Eof" #define ClsErase "Erase" #define ClsEventTrace "EventTrace" #define ClsExtended "Extended" #define ClsFixedSize "FixedSize" #define ClsFtCommand "FtCommand" #define ClsHighlightBold "HighlightBold" #define ClsHostname "Hostname" #define ClsHostsFile "HostsFile" #define ClsIconFont "IconFont" #define ClsIconLabelFont "IconLabelFont" #define ClsIcrnl "Icrnl" #define ClsIdleCommand "IdleCommand" #define ClsIdleCommandEnabled "IdleCommandEnabled" #define ClsIdleTimeout "IdleTimeout" #define ClsInlcr "Inlcr" #define ClsInputColor "InputColor" #define ClsInputMethod "InputMethod" #define ClsIntr "Intr" #define ClsInvertKeypadShift "InvertKeypadShift" #define ClsKeymap "Keymap" #define ClsKeypad "Keypad" #define ClsKeypadBackground "KeypadBackground" #define ClsKeypadOn "KeypadOn" #define ClsKill "Kill" #define ClsLabelIcon "LabelIcon" #define ClsLineWrap "LineWrap" #define ClsLnext "Lnext" #define ClsLockedCursor "LockedCursor" #define ClsM3279 "M3279" #define ClsMacros "Macros" #define ClsMarginedPaste "MarginedPaste" #define ClsMenuBar "MenuBar" #define ClsMetaEscape "MetaEscape" #define ClsModel "Model" #define ClsModifiedSel "ModifiedSel" #define ClsModifiedSelColor "ModifiedSelColor" #define ClsMono "Mono" #define ClsMonoCase "MonoCase" #define ClsNoOther "NoOther" #define ClsNormalColor "NormalColor" #define ClsNormalCursor "NormalCursor" #define ClsNumericLock "NumericLock" #define ClsOerrLock "OerrLock" #define ClsOnce "Once" #define ClsOnlcr "Onlcr" #define ClsOversize "Oversize" #define ClsPluginCommand "PluginCommand" #define ClsPort "Port" #define ClsPreeditType "PreeditType" #define ClsPrinterLu "PrinterLu" #define ClsProxy "Proxy" #define ClsQuit "Quit" #define ClsReconnect "Reconnect" #define ClsRectangleSelect "RectangleSelect" #define ClsRprnt "Rprnt" #define ClsSaveLines "SaveLines" #define ClsSbcsCgcsgid "SbcsSgcsgid" #define ClsScreenTrace "ScreenTrace" #define ClsScreenTraceFile "ScreenTraceFile" #define ClsScripted "Scripted" #define ClsScriptPort "ScriptPort" #define ClsScrollBar "ScrollBar" #define ClsSecure "Secure" #define ClsSelectBackground "SelectBackground" #define ClsShowTiming "ShowTiming" #define ClsSocket "Socket" #define ClsSuppressHost "SuppressHost" #define ClsSuppressFontMenu "SuppressFontMenu" #define ClsTermName "TermName" #define ClsTraceDir "TraceDir" #define ClsTraceFile "TraceFile" #define ClsTraceFileSize "TraceFileSize" #define ClsTraceMonitor "TraceMonitor" #define ClsTypeahead "Typeahead" #define ClsUnlockDelay "UnlockDelay" #define ClsUnlockDelayMs "UnlockDelayMs" #define ClsUseCursorColor "UseCursorColor" #define ClsVisibleControl "VisibleControl" #define ClsVisualBell "VisualBell" #define ClsVisualSelect "VisualSelect" #define ClsVisualSelectColor "VisualSelectColor" #define ClsWaitCursor "WaitCursor" #define ClsWerase "Werase" /* Options. */ #define OptActiveIcon "-activeicon" #define OptAllBold "-allbold" #define OptAltScreen "-altscreen" #define OptAplMode "-apl" #define OptCbreak "-cbreak" #define OptCertFile "-certificate" #define OptCharClass "-cc" #define OptCharset "-charset" #define OptClear "-clear" #define OptColorScheme "-scheme" #define OptDefScreen "-defscreen" #define OptDsTrace "-trace" #define OptEmulatorFont "-efont" #define OptExtended "-extended" #define OptHostsFile "-hostsfile" #define OptIconName "-iconname" #define OptIconX "-iconx" #define OptIconY "-icony" #define OptInputMethod "-im" #define OptKeymap "-keymap" #define OptKeypadOn "-keypad" #define OptLocalCp "-localcp" #define OptLocalProcess "-e" #define OptM3279 "-color" #define OptModel "-model" #define OptMono "-mono" #define OptNoPrompt "-noprompt" #define OptNoScrollBar "+sb" #define OptOnce "-once" #define OptOversize "-oversize" #define OptPort "-port" #define OptPreeditType "-pt" #define OptPrinterLu "-printerlu" #define OptProxy "-proxy" #define OptReconnect "-reconnect" #define OptReverseVideo "-rv" #define OptSaveLines "-sl" #define OptSecure "-secure" #define OptScripted "-script" #define OptScriptPort "-scriptport" #define OptScrollBar "-sb" #define OptSet "-set" #define OptSocket "-socket" #define OptAutoShortcut "-S" #define OptNoAutoShortcut "+S" #define OptTermName "-tn" #define OptTitle "-title" #define OptTraceFile "-tracefile" #define OptTraceFileSize "-tracefilesize" #define OptV "-v" #define OptVersion "--version" /* Miscellaneous values. */ #define ResTrue "true" #define ResFalse "false" #define KpLeft "left" #define KpRight "right" #define KpBottom "bottom" #define KpIntegral "integral" #define KpInsideRight "insideRight" #define Apl "apl" /* Resources that are gotten explicitly. */ #define ResComposeMap "composeMap" #define ResEmulatorFontList "emulatorFontList" #define ResKeyHeight "keyHeight" #define ResKeyWidth "keyWidth" #define ResLargeKeyWidth "largeKeyWidth" #define ResMessage "message" #define ResNvt "nvt" #define ResPaWidth "paWidth" #define ResPfWidth "pfWidth" #define ResPrintTextCommand "printTextCommand" #define ResPrintTextFont "printTextFont" #define ResPrintTextSize "printTextSize" #define ResPrintWindowCommand "printWindowCommand" #define ResTraceCommand "traceCommand" #define ResUser "user" ibm-3270-3.3.10ga4/ws3270/kybdc.h0000644000175000017500000001572211254565704015410 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * kybdc.h * Global declarations for kybd.c. */ /* keyboard lock states */ extern unsigned int kybdlock; #define KL_OERR_MASK 0x000f #define KL_OERR_PROTECTED 1 #define KL_OERR_NUMERIC 2 #define KL_OERR_OVERFLOW 3 #define KL_OERR_DBCS 4 #define KL_NOT_CONNECTED 0x0010 #define KL_AWAITING_FIRST 0x0020 #define KL_OIA_TWAIT 0x0040 #define KL_OIA_LOCKED 0x0080 #define KL_DEFERRED_UNLOCK 0x0100 #define KL_ENTER_INHIBIT 0x0200 #define KL_SCROLLED 0x0400 #define KL_OIA_MINUS 0x0800 /* actions */ extern void AltCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Attn_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void BackSpace_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void BackTab_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CircumNot_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Clear_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Compose_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CursorSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Default_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void DeleteField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void DeleteWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Delete_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Down_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Dup_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Enter_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EraseEOF_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EraseInput_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Erase_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void FieldEnd_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void FieldMark_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Flip_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void HexString_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Home_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ignore_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Insert_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Interrupt_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Key_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Left2_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Left_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MonoCase_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MouseSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MoveCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Newline_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void NextWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PA_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PA_Shift_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PF_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PreviousWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Reset_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Right2_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Right_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void String_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void SysReq_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Tab_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void TemporaryKeymap_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ToggleInsert_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ToggleReverse_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Up_action(Widget w, XEvent *event, String *params, Cardinal *num_params); /* other functions */ extern void do_reset(Boolean explicit); extern int emulate_input(char *s, int len, Boolean pasting); extern int emulate_uinput(ucs4_t *s, int len, Boolean pasting); extern void hex_input(char *s); extern void kybdlock_clr(unsigned int bits, const char *cause); extern void kybd_inhibit(Boolean inhibit); extern void kybd_init(void); extern int kybd_prime(void); extern void kybd_scroll_lock(Boolean lock); extern Boolean run_ta(void); extern int state_from_keymap(char keymap[32]); ibm-3270-3.3.10ga4/ws3270/gluec.h0000644000175000017500000000427511254565704015414 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * gluec.h * Declarations for glue.c and XtGlue.c */ /* glue.c */ extern int parse_command_line(int argc, const char **argv, const char **cl_hostname); extern void parse_xrm(const char *arg, const char *where); extern char *safe_string(const char *s); extern Boolean process_events(Boolean block); extern void cmdline_help(Boolean as_action); struct host_color { char *name; int index; }; extern struct host_color host_color[]; /* XtGlue.c */ extern void (*Warning_redirect)(const char *); #if !defined(_WIN32) /*[*/ extern int select_setup(int *nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval **timeout, struct timeval *timebuf); #endif /*]*/ ibm-3270-3.3.10ga4/ws3270/printc.h0000644000175000017500000000432611254565704015611 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * printc.h * Global declarations for print.c. */ typedef enum { P_TEXT, P_HTML, P_RTF } ptype_t; #define FPS_EVEN_IF_EMPTY 0x1 #define FPS_MODIFIED_ITALIC 0x2 extern Boolean fprint_screen(FILE *f, ptype_t ptype, unsigned opts, char *caption); extern void PrintText_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PrintWindow_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void print_text_option(Widget w, XtPointer client_data, XtPointer call_data); extern void print_window_option(Widget w, XtPointer client_data, XtPointer call_data); extern void save_text_option(Widget w, XtPointer client_data, XtPointer call_data); ibm-3270-3.3.10ga4/ws3270/strtok_r.c0000644000175000017500000000473411254565704016157 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * strtok_r.c * A standard C library function that isn't available everywhere. */ #include /* * Isolate sequential tokens in a null-terminated string, str. These tokens * are separated in the string by at least one of the characters in sep. The * first time that strtok() is called, str should be specified; subsequent * calls, wishing to obtain further tokens from the same string, should pass * a null pointer instead. The separator string, sep, must be supplied each * time, and may change between calls. * * strtok_r() is reentrant. The context pointer last must be provided on * each call. strtok_r() may also be used to nest two parsing loops within * one another, as long as separate context pointers are used. */ char * strtok_r(char *str, const char *sep, char **last) { char *r, *e; if (str != NULL) *last = str; r = *last + strspn(*last, sep); e = r + strcspn(r, sep); if (*e) *e++ = '\0'; *last = e; return *r? r: NULL; } ibm-3270-3.3.10ga4/ws3270/savec.h0000644000175000017500000000314211254565673015413 0ustar bastianbastian/* * Copyright (c) 1999-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* Non-display version of savec.h */ #define save_yourself() extern char *command_string; ibm-3270-3.3.10ga4/ws3270/ft_dftc.h0000644000175000017500000000335411254565704015723 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ extern void ft_dft_data(unsigned char *data, int length); extern void dft_read_modified(void); extern void set_dft_buffersize(void); ibm-3270-3.3.10ga4/ws3270/utilc.h0000644000175000017500000000644711256026610015426 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utilc.h * Global declarations for util.c. */ extern void add_resource(const char *name, const char *value); extern char *ctl_see(int c); extern char *do_subst(const char *s, Boolean do_vars, Boolean do_tilde); extern void fcatv(FILE *f, char *s); extern const char *get_message(const char *key); extern char *get_fresource(const char *fmt, ...) printflike(1, 2); extern char *get_resource(const char *name); extern char *scatv(const char *s, char *buf, size_t len); extern int split_dbcs_resource(const char *value, char sep, char **part1, char **part2); extern int split_dresource(char **st, char **left, char **right); extern int split_lresource(char **st, char **value); extern char *strip_whitespace(const char *s); extern char *xs_buffer(const char *fmt, ...) printflike(1, 2); extern void xs_error(const char *fmt, ...) printflike(1, 2); extern void xs_warning(const char *fmt, ...) printflike(1, 2); extern unsigned long AddInput(int, void (*)(void)); extern unsigned long AddExcept(int, void (*)(void)); extern unsigned long AddOutput(int, void (*)(void)); extern void RemoveInput(unsigned long); extern unsigned long AddTimeOut(unsigned long msec, void (*fn)(void)); extern void RemoveTimeOut(unsigned long cookie); extern KeySym StringToKeysym(char *s); extern char *KeysymToString(KeySym k); extern int read_resource_file(const char *filename, Boolean fatal); extern Boolean split_hier(char *label, char **base, char ***parents); typedef struct { char *buf; int alloc_len; int cur_len; } rpf_t; extern void rpf_init(rpf_t *r); extern void rpf_reset(rpf_t *r); extern void rpf(rpf_t *r, char *fmt, ...) printflike(2, 3); extern void rpf_free(rpf_t *r); extern const char *build_options(void); extern void dump_version(void); extern const char *display_scale(double d, char *buf, size_t buflen); ibm-3270-3.3.10ga4/ws3270/windirsc.h0000644000175000017500000000317011254565675016137 0ustar bastianbastian/* * Copyright (c) 2006-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ extern int get_dirs(char *argv0, char *appname, char **instdir, char **desktop, char **appdata, int *installed); ibm-3270-3.3.10ga4/ws3270/tablesc.h0000644000175000017500000000334711254565704015731 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tablesc.h * Global declarations for tables.c. */ extern const unsigned char asc2cg0[256]; extern const unsigned char ebc2cg0[256]; extern const unsigned char ebc2asc0[256]; extern const unsigned char asc2ebc0[256]; ibm-3270-3.3.10ga4/x3270/0000755000175000017500000000000011261530021013730 5ustar bastianbastianibm-3270-3.3.10ga4/x3270/selectc.h0000644000175000017500000000624711254565667015566 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * selectc.h * Global declarations for select.c. */ extern Boolean area_is_selected(int baddr, int len); extern void insert_selection_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Cut_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void KybdSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern int mouse_baddr(Widget w, XEvent *e); extern void move_select_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void SelectAll_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void SelectDown_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void reclass(char *s); extern void SelectDown_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void SelectMotion_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void SelectUp_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void select_end_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void select_extend_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void select_start_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void set_select_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void start_extend_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void unselect(int baddr, int len); extern void Unselect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); ibm-3270-3.3.10ga4/x3270/x3270_glue.expect0000644000175000017500000002102711254565704016765 0ustar bastianbastian# Copyright (c) 2000-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the names of Paul Mattes nor the names of his contributors # may be used to endorse or promote products derived from this software # without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Glue functions between 'expect' and x3270 # Usage: source x3270_glue.expect namespace eval x3270 { variable verbose 0 variable pid 0 # Start function: Start ?-nohup? ?program? ?options? # # Sets up the 'expect' environment correctly and spawns a 3270 # interface process. # # The 'program' and 'options' can be: # "x3270 -script" to drive an x3270 session # "s3270" to drive a displayless 3270 session # "x3270if -i" to run as a child script of x3270 (via the Script() # action) # # If "args" is empty, or starts with an option besides '-nohup', # guesses which process to start. # It will only guess "x3270if -i" or "s3270"; if you want to start # x3270, you need to specify it explicitly. # # Returns the process ID of the spawned process. proc Start {args} { global stty_init timeout spawn_id env variable verbose variable pid if {$pid != 0} {return -code error "Already started."} # If the first argument is "-nohup", remember that as an # argument to 'spawn'. if {[lindex $args 0] == "-nohup"} { set nohup {-ignore HUP} set args [lrange $args 1 end] } { set nohup {} } # If there are no arguments, or the first argument is an # option, guess what to start. # If X3270INPUT is defined in the environment, this must be a # child script; start x3270if. Otherwise, this must be a peer # script; start s3270. if {$args == {} || [string index [lindex $args 0] 0] == "-"} { if {[info exists env(X3270INPUT)]} { set args [concat x3270if -i $args] } { if {$::tcl_platform(platform) == "windows"} { set args [concat ws3270 $args] } { set args [concat s3270 $args] } } } # Set up the pty initialization default. set stty_init -echo # Spawn the process. if {$verbose} { set pid [eval [concat spawn $nohup $args]] } { set pid [eval [concat spawn -noecho $nohup $args]] log_user 0 } # Set the 'expect' timeout. set timeout -1 return $pid } # Basic interface command. Used internally by the action functions # below. proc cmd {cmd} { variable verbose variable pid if {$pid==0} { return -code error "Not started yet." } if {$verbose} {puts "+$cmd"} send "$cmd\r" expect { -re "data: (.*)\r?\n.*\r?\nok\r?\n$" { set r $expect_out(buffer) } -re ".*ok\r?\n" { return {} } -re "(.*)\r?\n.*?\r?\nerror\r?\n" { return -code error "$expect_out(1,string)" } -re ".*error\r?\n" { return -code error \ "$cmd failed: $expect_out(buffer)" } eof { set pid 0; error "process died" } } # Convert result to a list. set ret {} set iter 0 while {1} { if {! [regexp "data: (.*?)\r?\n" $r dummy elt]} {break} if {$iter==1} {set ret [list $ret]} set r [string range $r [expr [string length $elt]+7] \ end] if {$iter > 0} { set ret [linsert $ret end $elt] } { set ret $elt } set iter [expr $iter + 1] } if {$verbose} {puts "ret $iter"} return $ret } # Convert an argument list to a comma-separated list that x3270 will # accept. proc commafy {alist} { set i 0 set a "" while {$i < [llength $alist]} { if {$i > 0} { set a "$a,[lindex $alist $i]" } { set a [lindex $alist $i] } incr i } return $a } # Quote a text string into x3270-acceptable format. proc stringify {text} { set a "\"" set i 0 while {$i < [string len $text]} { set c [string range $text $i $i] switch -- $c { "\n" { set a "$a\\n" } "\r" { set a "$a\\r" } " " { set a "$a\\ " } "\"" { set a "$a\\\"" } default { set a "$a$c" } } incr i } set a "$a\"" return $a } # User-accessible actions. # Some of these apply only to x3270 and x3270if, and not to s3270. proc AltCursor {} { return [cmd "AltCursor"] } proc Ascii {args} { return [cmd "Ascii([commafy $args])"] } proc AsciiField {} { return [cmd "AsciiField"] } proc Attn {} { return [cmd "Attn"] } proc BackSpace {} { return [cmd "BackSpace"] } proc BackTab {} { return [cmd "BackTab"] } proc CircumNot {} { return [cmd "CircumNot"] } proc Clear {} { return [cmd "Clear"] } proc CloseScript {} { return [cmd "CloseScript"] } proc Cols {} { return [lindex [Status] 7] } proc Compose {} { return [cmd "Compose"] } proc Connect {host} { return [cmd "Connect($host)"] } proc CursorSelect {} { return [cmd "CursorSelect"] } proc Delete {} { return [cmd "Delete"] } proc DeleteField {} { return [cmd "DeleteField"] } proc DeleteWord {} { return [cmd "DeleteWord"] } proc Disconnect {} { return [cmd "Disconnect"] } proc Down {} { return [cmd "Down"] } proc Dup {} { return [cmd "Dup"] } proc Ebcdic {args} { return [cmd "Ebcdic([commafy $args])"] } proc EbcdicField {} { return [cmd "EbcdicField"] } proc Enter {} { return [cmd "Enter"] } proc Erase {} { return [cmd "Erase"] } proc EraseEOF {} { return [cmd "EraseEOF"] } proc EraseInput {} { return [cmd "EraseInput"] } proc FieldEnd {} { return [cmd "FieldEnd"] } proc FieldMark {} { return [cmd "FieldMark"] } proc FieldExit {} { return [cmd "FieldExit"] } proc Flip {} { return [cmd "Flip"] } proc HexString {x} { return [cmd "HexString($x)"] } proc Home {} { return [cmd "Home"] } proc Info {text} { return [cmd "Info([stringify $text])"] } proc Insert {} { return [cmd "Insert"] } proc Interrupt {} { return [cmd "Interrupt"] } proc Key {k} { return [cmd "Key($k)"] } proc Keymap {k} { return [cmd "Keymap($k)"] } proc Left {} { return [cmd "Left"] } proc Left2 {} { return [cmd "Left2"] } proc MonoCase {} { return [cmd "MonoCase"] } proc MoveCursor {r c} { return [cmd "MoveCursor($r,$c)"] } proc Newline {} { return [cmd "Newline"] } proc NextWord {} { return [cmd "NextWord"] } proc PA {n} { return [cmd "PA($n)"] } proc PF {n} { return [cmd "PF($n)"] } proc PreviousWord {} { return [cmd "PreviousWord"] } proc Quit {} { exit } proc Reset {} { return [cmd "Reset"] } proc Right {} { return [cmd "Right"] } proc Right2 {} { return [cmd "Right2"] } proc Rows {} { return [lindex [Status] 6] } proc SetFont {font} { return [cmd "SetFont($font)"] } proc Snap {args} { return [cmd "Snap([commafy $args])"] } proc Status {} { variable verbose variable pid if {$pid==0} { return -code error "Not started yet." } if {$verbose} {puts "+(nothing)"} send "\r" expect { -re ".*ok\r?\n" { set r $expect_out(buffer) } eof { set pid 0; error "process died" } } return [string range $r 0 [expr [string length $r]-7]] } proc String {text} { return [cmd "String([stringify $text])"] } proc SysReq {} { return [cmd "SysReq"] } proc Tab {} { return [cmd "Tab"] } proc ToggleInsert {} { return [cmd "ToggleInsert"] } proc ToggleReverse {} { return [cmd "ToggleReverse"] } proc TemporaryKeymap {args} { return [cmd "TemporaryKeymap($args)"] } proc Transfer {args} { return [cmd "Transfer([commafy $args])"] } proc Up {} { return [cmd "Up"] } proc Wait {args} { return [cmd "Wait([commafy $args])"] } # Extra function to toggle verbosity on the fly. proc Setverbose {level} { variable verbose set verbose $level return } # Export all the user-visible functions. namespace export \[A-Z\]* } # Import all of the exported functions. namespace import x3270::* ibm-3270-3.3.10ga4/x3270/about.c0000644000175000017500000004467411254565667015257 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 2004, Don Russell. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Don Russell nor their * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DON RUSSELL "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DON RUSSELL * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * about.c * Pop-up window with the current state of x3270. */ #include "globals.h" #if defined(X3270_MENUS) /*[*/ #include #include #include #include #include #include "appres.h" #include "objects.h" #include "resources.h" #include "aboutc.h" #include "charsetc.h" #include "keymapc.h" #include "popupsc.h" #include "screenc.h" #include "telnetc.h" #include "utf8c.h" #include "utilc.h" static Widget about_shell = NULL; static Widget about_form; extern time_t ns_time; extern int ns_brcvd; extern int ns_rrcvd; extern int ns_bsent; extern int ns_rsent; extern int linemode; extern Pixmap icon; /* Called when OK is pressed on the about popup */ static void saw_about(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(about_shell); } /* Called when the about popup is popped down */ static void destroy_about(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtDestroyWidget(about_shell); about_shell = NULL; } /* Return a time difference in English */ static char * hms(time_t ts) { time_t t, td; long hr, mn, sc; static char buf[128]; (void) time(&t); td = t - ts; hr = td / 3600; mn = (td % 3600) / 60; sc = td % 60; if (hr > 0) (void) sprintf(buf, "%ld %s %ld %s %ld %s", hr, (hr == 1) ? get_message("hour") : get_message("hours"), mn, (mn == 1) ? get_message("minute") : get_message("minutes"), sc, (sc == 1) ? get_message("second") : get_message("seconds")); else if (mn > 0) (void) sprintf(buf, "%ld %s %ld %s", mn, (mn == 1) ? get_message("minute") : get_message("minutes"), sc, (sc == 1) ? get_message("second") : get_message("seconds")); else (void) sprintf(buf, "%ld %s", sc, (sc == 1) ? get_message("second") : get_message("seconds")); return buf; } #define MAKE_SMALL(label, n) { \ w_prev = w; \ w = XtVaCreateManagedWidget( \ ObjSmallLabel, labelWidgetClass, about_form, \ XtNborderWidth, 0, \ XtNlabel, label, \ XtNfromVert, w, \ XtNleft, XtChainLeft, \ XtNvertDistance, (n), \ NULL); \ vd = n; \ } #define MAKE_LABEL(label, n) { \ w_prev = w; \ w = XtVaCreateManagedWidget( \ ObjNameLabel, labelWidgetClass, about_form, \ XtNborderWidth, 0, \ XtNlabel, label, \ XtNfromVert, w, \ XtNfromHoriz, left_anchor, \ XtNleft, XtChainLeft, \ XtNvertDistance, (n), \ NULL); \ vd = n; \ } #define MAKE_VALUE(label) { \ v = XtVaCreateManagedWidget( \ ObjDataLabel, labelWidgetClass, about_form, \ XtNborderWidth, 0, \ XtNlabel, label, \ XtNfromVert, w_prev, \ XtNfromHoriz, w, \ XtNhorizDistance, 0, \ XtNvertDistance, vd, \ XtNleft, XtChainLeft, \ NULL); \ } #define MAKE_LABEL2(label) { \ w = XtVaCreateManagedWidget( \ ObjNameLabel, labelWidgetClass, about_form, \ XtNborderWidth, 0, \ XtNlabel, label, \ XtNfromVert, w_prev, \ XtNfromHoriz, v, \ XtNhorizDistance, 0, \ XtNvertDistance, vd, \ XtNleft, XtChainLeft, \ NULL); \ } /* Called when the "About x3270->Copyright" button is pressed */ void popup_about_copyright(void) { Widget w = NULL, w_prev = NULL; Widget left_anchor = NULL; int vd = 4; static Boolean catted = False; static char *s1 = NULL; static char *s2 = NULL; static char *s1a = "* Redistributions of source code must retain the above copyright\n\ notice, this list of conditions and the following disclaimer.\n\ * Redistributions in binary form must reproduce the above copyright\n\ notice, this list of conditions and the following disclaimer in the\n"; static char *s1b = "documentation and/or other materials provided with the distribution.\n\ * Neither the names of Paul Mattes, Don Russell, Dick Altenbern,\n\ Jeff Sparkes, GTRC nor their contributors may be used to endorse or\n\ promote products derived from this software without specific prior\n\ written permission."; static char *s2a = "THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN,\n\ JEFF SPARKES AND GTRC \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\n\ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY\n\ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL\n\ MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY\n\ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n"; static char *s2b = "(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n\ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n\ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n\ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\n\ DAMAGE."; if (!catted) { /* Make up for the ANSI C listerl string length limit. */ s1 = Malloc(strlen(s1a) + strlen(s1b) + 1); strcpy(s1, s1a); strcat(s1, s1b); s2 = Malloc(strlen(s2a) + strlen(s2b) + 1); strcpy(s2, s2a); strcat(s2, s2b); catted = True; } /* Create the popup */ about_shell = XtVaCreatePopupShell( "aboutCopyrightPopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(about_shell, XtNpopupCallback, place_popup, (XtPointer) CenterP); XtAddCallback(about_shell, XtNpopdownCallback, destroy_about, NULL); /* Create a form in the popup */ about_form = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, about_shell, NULL); /* Pretty picture */ left_anchor = XtVaCreateManagedWidget( "icon", labelWidgetClass, about_form, XtNborderWidth, 0, XtNbitmap, icon, XtNfromVert, w, XtNleft, XtChainLeft, NULL); /* Miscellany */ MAKE_LABEL(build, 4); /* Everything else at the left margin under the bitmap */ w = left_anchor; left_anchor = NULL; MAKE_SMALL( "Copyright \251 1993-2009, Paul Mattes.\n\ Copyright \251 2004-2005, Don Russell.\n\ Copyright \251 1995, Dick Altenbern.\n\ Copyright \251 1990, Jeff Sparkes.\n\ Copyright \251 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.\n\ All rights reserved.", 4); MAKE_SMALL( "Redistribution and use in source and binary forms, with or without\n\ modification, are permitted provided that the following conditions\n\ are met:", 4); MAKE_SMALL(s1, 4); MAKE_SMALL(s2, 4); /* Add "OK" button at the lower left */ w = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, about_form, XtNfromVert, w, XtNleft, XtChainLeft, XtNbottom, XtChainBottom, NULL); XtAddCallback(w, XtNcallback, saw_about, 0); /* Pop it up */ popup_popup(about_shell, XtGrabExclusive); } /* Called when the "About x3270->Configuration" button is pressed */ void popup_about_config(void) { Widget w = NULL, w_prev = NULL; Widget v = NULL; Widget left_anchor = NULL; int vd = 4; char fbuf[1024]; const char *ftype; char *xbuf; /* Create the popup */ about_shell = XtVaCreatePopupShell( "aboutConfigPopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(about_shell, XtNpopupCallback, place_popup, (XtPointer) CenterP); XtAddCallback(about_shell, XtNpopdownCallback, destroy_about, NULL); /* Create a form in the popup */ about_form = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, about_shell, NULL); /* Pretty picture */ left_anchor = XtVaCreateManagedWidget( "icon", labelWidgetClass, about_form, XtNborderWidth, 0, XtNbitmap, icon, XtNfromVert, w, XtNleft, XtChainLeft, NULL); /* Miscellany */ MAKE_LABEL(build, 4); MAKE_LABEL(get_message("processId"), 4); (void) sprintf(fbuf, "%d", getpid()); MAKE_VALUE(fbuf); MAKE_LABEL2(get_message("windowId")); (void) sprintf(fbuf, "0x%lx", XtWindow(toplevel)); MAKE_VALUE(fbuf); /* Everything else at the left margin under the bitmap */ w = left_anchor; left_anchor = NULL; (void) sprintf(fbuf, "%s %s: %d %s x %d %s, %s, %s", get_message("model"), model_name, maxCOLS, get_message("columns"), maxROWS, get_message("rows"), appres.mono ? get_message("mono") : (appres.m3279 ? get_message("fullColor") : get_message("pseudoColor")), (appres.extended && !std_ds_host) ? get_message("extendedDs") : get_message("standardDs")); MAKE_LABEL(fbuf, 4); MAKE_LABEL(get_message("terminalName"), 4); MAKE_VALUE(termtype); MAKE_LABEL(get_message("emulatorFont"), 4); MAKE_VALUE(full_efontname); if (*standard_font) { ftype = get_message("xFont"); } else { ftype = get_message("cgFont"); } xbuf = xs_buffer(" %s", ftype); MAKE_LABEL(xbuf, 0); XtFree(xbuf); #if defined(X3270_DBCS) /*[*/ if (dbcs) { MAKE_LABEL(get_message("emulatorFontDbcs"), 4); MAKE_VALUE(full_efontname_dbcs); } #endif /*]*/ MAKE_LABEL(get_message("displayCharacterSet"), 4); if (!efont_matches) { xbuf = xs_buffer("ascii-7 (%s %s, %s %s)", get_message("require"), display_charset(), get_message("have"), efont_charset); MAKE_VALUE(xbuf); XtFree(xbuf); } else { MAKE_VALUE(efont_charset); } #if defined(X3270_DBCS) /*[*/ if (dbcs) { MAKE_LABEL(get_message("displayCharacterSetDbcs"), 4); MAKE_VALUE(efont_charset_dbcs); } #endif /*]*/ MAKE_LABEL(get_message("charset"), 4); xbuf = xs_buffer("%s (code page %s)", get_charset_name(), get_host_codepage()); MAKE_VALUE(xbuf); XtFree(xbuf); MAKE_LABEL(get_message("sbcsCgcsgid"), 4); xbuf = xs_buffer("GCSGID %u, CPGID %u", (unsigned short)((cgcsgid >> 16) & 0xffff), (unsigned short)(cgcsgid & 0xffff)); MAKE_VALUE(xbuf); XtFree(xbuf); #if defined(X3270_DBCS) /*[*/ if (dbcs) { MAKE_LABEL(get_message("dbcsCgcsgid"), 4); xbuf = xs_buffer("GCSGID %u, CPGID %u", (unsigned short)((cgcsgid_dbcs >> 16) & 0xffff), (unsigned short)(cgcsgid_dbcs & 0xffff)); MAKE_VALUE(xbuf); XtFree(xbuf); MAKE_LABEL(get_message("inputMethod"), 4); if (appres.input_method) { MAKE_VALUE(appres.input_method); } else if (getenv("XMODIFIERS") != CN) { MAKE_VALUE("(via environment)"); } else { MAKE_VALUE("(unspecified)"); } MAKE_LABEL2(get_message("ximState")); if (xim_error) ftype = get_message("ximDisabled"); else if (im == NULL) ftype = get_message("ximNotFound"); else ftype = get_message("ximActive"); MAKE_VALUE(ftype); MAKE_LABEL2(get_message("ximLocale")); if (locale_name != CN) { MAKE_VALUE(locale_name); } else { MAKE_VALUE("(error)"); } } #endif /*]*/ MAKE_LABEL(get_message("localeCodeset"), 4); MAKE_VALUE(locale_codeset); if (trans_list != (struct trans_list *)NULL || temp_keymaps != (struct trans_list *)NULL) { struct trans_list *t; fbuf[0] = '\0'; for (t = trans_list; t; t = t->next) { if (fbuf[0]) (void) strcat(fbuf, ","); (void) strcat(fbuf, t->name); } for (t = temp_keymaps; t; t = t->next) { if (fbuf[0]) (void) strcat(fbuf, " "); (void) strcat(fbuf, "+"); (void) strcat(fbuf, t->name); } MAKE_LABEL(get_message("keyboardMap"), 4) MAKE_VALUE(fbuf); } else MAKE_LABEL(get_message("defaultKeyboardMap"), 4); if (appres.compose_map) { MAKE_LABEL(get_message("composeMap"), 4); MAKE_VALUE(appres.compose_map); } else { MAKE_LABEL(get_message("noComposeMap"), 4); } if (appres.active_icon) { MAKE_LABEL(get_message("activeIcon"), 4); xbuf = xs_buffer(" %s", get_message("iconFont")); MAKE_LABEL(xbuf, 0); XtFree(xbuf); MAKE_VALUE(appres.icon_font); if (appres.label_icon) { xbuf = xs_buffer(" %s", get_message("iconLabelFont")); MAKE_LABEL(xbuf, 0); XtFree(xbuf); MAKE_VALUE(appres.icon_label_font); } } else MAKE_LABEL(get_message("staticIcon"), 4); /* Add "OK" button at the lower left */ w = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, about_form, XtNfromVert, w, XtNleft, XtChainLeft, XtNbottom, XtChainBottom, NULL); XtAddCallback(w, XtNcallback, saw_about, 0); /* Pop it up */ popup_popup(about_shell, XtGrabExclusive); } /* Called when the "About x3270->Connection Status" button is pressed */ void popup_about_status(void) { Widget w = NULL, w_prev = NULL; Widget v = NULL; Widget left_anchor = NULL; int vd = 4; char fbuf[1024]; const char *ftype; const char *emode; #if defined(X3270_TN3270E) /*[*/ const char *eopts; #endif /*]*/ const char *ptype; const char *bplu; /* Create the popup */ about_shell = XtVaCreatePopupShell( "aboutStatusPopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(about_shell, XtNpopupCallback, place_popup, (XtPointer) CenterP); XtAddCallback(about_shell, XtNpopdownCallback, destroy_about, NULL); /* Create a form in the popup */ about_form = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, about_shell, NULL); /* Pretty picture */ left_anchor = XtVaCreateManagedWidget( "icon", labelWidgetClass, about_form, XtNborderWidth, 0, XtNbitmap, icon, XtNfromVert, w, XtNleft, XtChainLeft, NULL); /* Miscellany */ MAKE_LABEL(build, 4); /* Everything else at the left margin under the bitmap */ w = left_anchor; left_anchor = NULL; if (CONNECTED) { MAKE_LABEL(get_message("connectedTo"), 4); #if defined(LOCAL_PROCESS) /*[*/ if (local_process && !strlen(current_host)) { MAKE_VALUE("(shell)"); } else #endif /*]*/ { if (!appres.suppress_host) { MAKE_VALUE(current_host); } } #if defined(LOCAL_PROCESS) /*[*/ if (!local_process) { #endif /*]*/ (void) sprintf(fbuf, " %s", get_message("port")); MAKE_LABEL2(fbuf); (void) sprintf(fbuf, "%d", current_port); MAKE_VALUE(fbuf); #if defined(LOCAL_PROCESS) /*[*/ } #endif /*]*/ #if defined(HAVE_LIBSSL) /*[*/ if (secure_connection) { (void) sprintf(fbuf, "%s", get_message("secure")); MAKE_LABEL2(fbuf); } #endif /*]*/ ptype = net_proxy_type(); if (ptype) { MAKE_LABEL(get_message("proxyType"), 4); MAKE_VALUE(ptype); (void) sprintf(fbuf, " %s", get_message("server")); MAKE_LABEL2(fbuf); MAKE_VALUE(net_proxy_host()); (void) sprintf(fbuf, " %s", get_message("port")); MAKE_LABEL2(fbuf); MAKE_VALUE(net_proxy_port()); } if (IN_E) emode = "TN3270E "; else emode = ""; if (IN_ANSI) { if (linemode) ftype = get_message("lineMode"); else ftype = get_message("charMode"); (void) sprintf(fbuf, " %s%s, ", emode, ftype); } else if (IN_SSCP) { (void) sprintf(fbuf, " %s%s, ", emode, get_message("sscpMode")); } else if (IN_3270) { (void) sprintf(fbuf, " %s%s, ", emode, get_message("dsMode")); } else (void) strcpy(fbuf, " "); (void) strcat(fbuf, hms(ns_time)); MAKE_LABEL(fbuf, 0); if (connected_lu != CN && connected_lu[0]) { sprintf(fbuf, " %s", get_message("luName")); MAKE_LABEL(fbuf, 0); MAKE_VALUE(connected_lu); } bplu = net_query_bind_plu_name(); if (bplu != CN && bplu[0]) { sprintf(fbuf, " %s", get_message("bindPluName")); MAKE_LABEL(fbuf, 0); MAKE_VALUE(bplu); } #if defined(X3270_TN3270E) /*[*/ eopts = tn3270e_current_opts(); if (eopts != CN) { (void) sprintf(fbuf, " %s", get_message("tn3270eOpts")); MAKE_LABEL(fbuf, 0); MAKE_VALUE(eopts); } else if (IN_E) { (void) sprintf(fbuf, " %s", get_message("tn3270eNoOpts")); MAKE_LABEL(fbuf, 0); } #endif /*]*/ if (IN_3270) (void) sprintf(fbuf, "%s %d %s, %d %s\n%s %d %s, %d %s", get_message("sent"), ns_bsent, (ns_bsent == 1) ? get_message("byte") : get_message("bytes"), ns_rsent, (ns_rsent == 1) ? get_message("record") : get_message("records"), get_message("Received"), ns_brcvd, (ns_brcvd == 1) ? get_message("byte") : get_message("bytes"), ns_rrcvd, (ns_rrcvd == 1) ? get_message("record") : get_message("records")); else (void) sprintf(fbuf, "%s %d %s, %s %d %s", get_message("sent"), ns_bsent, (ns_bsent == 1) ? get_message("byte") : get_message("bytes"), get_message("received"), ns_brcvd, (ns_brcvd == 1) ? get_message("byte") : get_message("bytes")); MAKE_LABEL(fbuf, 4); #if defined(X3270_ANSI) /*[*/ if (IN_ANSI) { struct ctl_char *c = net_linemode_chars(); int i; MAKE_LABEL(get_message("specialCharacters"), 4); for (i = 0; c[i].name; i++) { if (!i || !(i % 4)) { (void) sprintf(fbuf, " %s", c[i].name); MAKE_LABEL(fbuf, 0); } else { MAKE_LABEL2(c[i].name); } MAKE_VALUE(c[i].value); } } #endif /*]*/ } else if (HALF_CONNECTED) { MAKE_LABEL(get_message("connectionPending"), 4); MAKE_VALUE(current_host); } else MAKE_LABEL(get_message("notConnected"), 4); /* Add "OK" button at the lower left */ w = XtVaCreateManagedWidget( ObjConfirmButton, commandWidgetClass, about_form, XtNfromVert, w, XtNleft, XtChainLeft, XtNbottom, XtChainBottom, NULL); XtAddCallback(w, XtNcallback, saw_about, 0); /* Pop it up */ popup_popup(about_shell, XtGrabExclusive); } #undef MAKE_LABEL #undef MAKE_VALUE #endif /*]*/ ibm-3270-3.3.10ga4/x3270/x3270hist.pl0000755000175000017500000002741711254565704016000 0ustar bastianbastian#!/usr/bin/perl # # Copyright (c) 2005-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # x3270hist.pl # An x3270 history plugin. # # Uses the x3270 plugin protocol to maintain command history. # Persistent history for a given is kept in the file ~/.x3hist.. # Each line of the history file contains a context prefix and text. Currently # supported prefixes are 'cms' (VM/CMS Ready prompt), 'cp' (VM CP mode) and # 'tso' (TSO READY prompt). Other modes, such as support for application # command history, may be added in the future. # # The x3270 plugin protocol starts the plugin process as a child of the # emulator process, with the plugin process's stdin and stdout connected # back to the emulator. # # The plugin is initially sent a string in the form: # x3270 host # If the plugin initializes successfully, it answers with the line "ok". # Otherwise it answers with an error message and exits. # # Just before the emulator sends any AID to the host, the emulator sends the # following text to the plugin: # aid # rows cols cursor # # The plugin responds with a line of text, which is ignored (but logged) by # the emulator. # # When the emulator user runs the Plugin(command,xxx) action, the emulator # sends the following text to the plugin: # command # rows cols cursor # # By convention, the values for are 'prev' and 'next', meaning that the # user wants the previous or next saved command respectively. Other commands # may be added in the future. # The plugin responds to the command with a line of text, which will be # interpreted as an x3270 macro, and thus can contain actions like # MoveCursor(), String(), etc. If the plugin is unable to process the command, # it responds with the Bell() action (to ring the terminal bell, if the problem # is minor such as running out of stored commands), or with the Info() action # (to pop up a dialog box to describe a more serious problem). # # Usage: # x3270hist.pl [-d] # The -d option causes debug information to be written to the file # /tmp/hist. # use strict; my $histmax = 100; # maximum history # Hashes that hold stored commands. The hash key is the host type or mode # (cms, cp or tso) my %hist; my %ix; # last returned index my %direction; # history direction if ($ARGV[0] eq "-d") { # Open the debug trace, unbuffered. open DEBUG, ">/tmp/hist" . $$; select DEBUG; $| = 1; select STDOUT; } # Make stdout unbuffered. $| = 1; # Read the initial status and say hello. my ($emu, $dummy, $host) = split /\s+/, ; if (!defined($host)) { die "Bad init string\n"; } print "ok\n"; print DEBUG "emulator $emu host $host\n"; # See if there's a history file for this host. if (defined($ENV{'HOME'}) && -d $ENV{'HOME'}) { my $histdir = "$ENV{'HOME'}/.x3hist"; if (-d $histdir || mkdir $histdir) { if (open HFILE, "<$histdir/$host") { my $line; my $mode; my $remainder; # Read in the history file, keeping only the last # $history_max entries for each mode. while ($line = ) { chomp $line; ($mode, $remainder) = split(/\s+/, $line, 2); print DEBUG "file: got $mode $remainder\n"; push @{$hist{$mode}}, $remainder; $ix{$mode} = scalar(@{$hist{$mode}}) - 1; if ($ix{$mode} >= $histmax) { shift @{$hist{$mode}}; $ix{$mode}--; } $direction{$mode} = -1; } # Rewrite the history file. close HFILE; open HFILE, ">$histdir/$host"; foreach $mode (keys(%hist)) { for (@{$hist{$mode}}) { print HFILE "$mode $_\n"; } } close HFILE; } # Get ready to append to it. open HFILE, ">>$histdir/$host"; select HFILE; $| = 1; select STDOUT; } } # AID digester. # Returns the row on the screen where the input field is, -1 if it can't # recognize one, and 0 if it was given an AID to process and there's nothing # to save. Also returns the mode (cms, cp, tso). sub digest { my $aid = shift; my $i; my @screen; my @sf; my $nsf = 0; my $cmd_row = -1; my $mode; my ($dummy, $rows, $dummy, $cols, $dummy, $cursor) = split /\s+/, ; print DEBUG "AID $aid rows $rows cols $cols cursor $cursor\n"; # Read, or skip, the screen data. # @screen contains the ASCII text # @sf contains the SF specifiers, with '*' indicating normal # 'z' indicating invisible, and # '+' indicating highlighted foreach $i (0..$rows-1) { my $row = ; #print DEBUG "got [$i] $row"; # If it isn't an Enter or a command, we don't care. if ($aid ne "Enter" && $aid ne "command") { #print DEBUG "ignoring\n"; next; } my $c; $screen[$i] = ""; $sf[$i] = ""; foreach $c (split /\s+/, $row) { # Treat SFs as spaces. if ($c =~ /SF/) { $screen[$i] .= " "; if ($c =~ /c0=(..)/ && ((hex("0x" . $1) & 0x0c) == 0x0c)) { #print DEBUG "invisible!\n"; $sf[$i] .= "z"; } elsif ($c =~ /c0=(..)/ && ((hex("0x" . $1) & 0x0c) == 0x08)) { #print DEBUG "highlighted!\n"; $sf[$i] .= "+"; } else { $sf[$i] .= "*"; } $nsf++; next; } # Ignore SAs. if ($c =~ /SA/) { next; } # Translate NULLs to spaces (for now). if (hex("0x" . $c) < ord(" ")) { $c = "20"; } # Accumulate the result. $screen[$i] .= chr(hex("0x" . $c)); $sf[$i] .= " "; } #print DEBUG "done: ", $screen[$i] . "\n"; #print DEBUG "done: ", $sf[$i] . "\n"; } if ($aid ne "Enter" && $aid ne "command") { #print DEBUG "AID not Enter or command\n"; return 0; } # The CMS input area is an unprotected field on the last two rows of # the screen, taking up all of the second-last row and all but the last # 21 positions of the last row. # # The TSO input area is either a cleared screen with an SF at the end # of the last row, or a highlighted 'READY ' prompt with an # unhighlighted empty field filling the rest of the screen. # If there is any highlighted text below the 'READY ', then there is a # subcommand active. if (substr($sf[$rows - 3], -1, 1) eq "*" && substr($sf[$rows - 1], -21, 1) eq "*" && $cursor >= ($cols * ($rows - 2)) && $cursor < ($cols * $rows) - 21) { # CMS or CP command prompt. $cmd_row = $rows - 2; if (substr($screen[$rows - 1], -20, 7) eq "CP READ") { $mode = "cp"; } else { $mode = "cms"; } } elsif ($nsf == 1 && substr($sf[$rows - 1], $cols - 1, 1) eq "*") { # TSO cleared screen. $cmd_row = 0; $mode = "tso"; } else { for ($i = $rows - 1; $i >= 0; $i--) { if (($sf[$i] =~ /\+/) && substr($screen[$i], 1, 6) ne "READY ") { # TSO Subcommand mode. print DEBUG "TSO subcommand mode?\n"; last; } if ((substr($sf[$i], 0, 8) eq "+ *") && (substr($screen[$i], 1, 6) eq "READY ") && (substr($screen[$i], 8) =~ /^\s+$/) && ($cursor >= ($i + 1) * $cols)) { # TSO 'READY' prompt. $cmd_row = $i + 1; $mode = "tso"; last; } } } if ($cmd_row == -1) { #print DEBUG "AID done not found\n"; return -1; } if ($aid eq "Enter") { my $cmd = ""; if ($mode eq "tso") { my $j; for ($j = $cmd_row; $j < $rows; $j++) { $cmd .= $screen[$j]; } } else { $cmd = $screen[$rows-2] . substr($screen[$rows-1], 1, $cols-21); } while ($cmd =~ /^.*\s+$/) { chop $cmd; } while ($cmd =~ /^\s+.*$/) { $cmd = substr($cmd, 1); } print DEBUG "mode='$mode' cmd='$cmd'\n"; if ($cmd ne "") { if (defined($hist{$mode})) { if ((@{$hist{$mode}})[-1] eq $cmd) { print DEBUG "duplicate\n"; return -1; } } push @{$hist{$mode}}, $cmd; $ix{$mode} = scalar(@{$hist{$mode}}) - 1; if ($ix{$mode} >= $histmax) { shift @{@hist{$mode}}; $ix{$mode}--; } $direction{$mode} = -1; print HFILE "$mode $cmd\n"; } else { $cmd_row = -1; } } #print DEBUG "AID done row $cmd_row\n"; return ($cmd_row, $mode); } # Ring the terminal bell with our response, but don't display any text. sub bell { my $msg = shift; # Print it to the debug file. print DEBUG "Bell - $msg\n"; # Tell the emulator. print 'Bell("', $msg, '")', "\n"; } # Pop up an error on the terminal. sub info { my $msg = shift; # Print it to the debug file. print DEBUG "Info - $msg\n"; # Tell the emulator. print 'Info("', $msg, '")', "\n"; } # Respond successfully to a command. sub success { my $msg = shift; # Print it to the debug file. print DEBUG "Success - $msg\n"; # Tell the emulator. print "$msg\n"; } # Quote a string for String(). sub quoteit { my $s = shift; $s =~ s/([\\"])/\\\1/g; return '"' . $s . '"'; } # Read indications from the emulator. while () { # Get the verb. We can do verb-specific splitting again later. print DEBUG "Got $_"; my ($verb) = split; if ($verb eq "aid") { # Split again. my ($dummy, $aid) = split; my ($okrow, $mode) = digest($aid); if ($okrow <= 0) { print "no new command\n"; } else { print "saved ", $mode, " ", (@{$hist{$mode}})[-1], "\n"; } } elsif ($verb eq "command") { my ($dummy, $what) = split; my ($okrow, $mode) = digest("command"); my $jump = 0; if ($what eq "prev") { if ($okrow < 0) { bell("Not in an input field."); next; } if (!defined($hist{$mode})) { bell("No saved '" . $mode . "' commands."); next; } if ($direction{$mode} > 0) { $direction{$mode} = -1; $jump = 2; } else { $jump = 1; } if ($ix{$mode} - ($jump - 1) < 0) { bell("No more '" . $mode . "' commands."); } else { success("MoveCursor($okrow,0) EraseEOF() String(" . quoteit((@{$hist{$mode}})[$ix{$mode} - ($jump - 1)]) . ")"); $ix{$mode} -= $jump; } $direction{$mode} = -1; } elsif ($what eq "next") { if ($okrow < 0) { bell("Not in an input field."); next; } if (!defined($hist{$mode})) { bell("No saved '" . $mode . "' commands."); next; } if ($direction{$mode} < 0) { $direction{$mode} = 1; $jump = 2; } else { $jump = 1; } if ($ix{$mode} + $jump > scalar @{$hist{$mode}}) { bell("No more '" . $mode . "' commands."); } else { $ix{$mode} += $jump; success("MoveCursor($okrow,0) EraseEOF() String(" . quoteit((@{$hist{$mode}})[$ix{$mode}]) . ")"); $direction{$mode} = 1; } } else { info("Unknown history command: '" . $what . "'"); } } else { info("Unknown history verb '" . $verb . "'"); } } print DEBUG "EOF, exiting\n"; ibm-3270-3.3.10ga4/x3270/CmeLine.h0000644000175000017500000000771611254565667015462 0ustar bastianbastian/* * (from) $XConsortium: SmeLine.h,v 1.3 89/12/11 15:20:19 kit Exp $ * * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * Copyright 1989 Massachusetts Institute of Technology * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name of M.I.T. not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. M.I.T. makes no representations about the * suitability of this software for any purpose. It is provided "as is" * without express or implied warranty. * * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T. * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* * CmeLine.h - Public Header file for CmeLine object. * (from) SmeLine.h - Public Header file for SmeLine object. * * This is the public header file for the Athena CmeLine object. * It is intended to be used with the complex menu widget. * * Date: April 3, 1989 * * By: Chris D. Peterson * MIT X Consortium * kit@expo.lcs.mit.edu */ #ifndef _CmeLine_h #define _CmeLine_h #include "Cme.h" #include /**************************************************************** * * CmeLine Object * ****************************************************************/ /* Menu Entry Resources: Name Class RepType Default Value ---- ----- ------- ------------- callback Callback Pointer NULL destroyCallback Callback Pointer NULL height Height Dimension 0 sensitive Sensitive Boolean True width Width Dimension 0 x Position Position 0n y Position Position 0 */ #define XtCLineWidth "LineWidth" #define XtCStipple "Stipple" #define XtNlineWidth "lineWidth" #define XtNstipple "stipple" typedef struct _CmeLineClassRec* CmeLineObjectClass; typedef struct _CmeLineRec* CmeLineObject; extern WidgetClass cmeLineObjectClass; #endif /* _CmeLine_h */ ibm-3270-3.3.10ga4/x3270/dryrun0000755000175000017500000000424711254565667015242 0ustar bastianbastian#! /bin/sh # Copyright (c) 1995-2009, Paul Mattes. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of Paul Mattes nor his contributors may be used # to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN # NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Run x3270 from the current directory # Bomb on any error set -e d=`pwd` # Say what you're doing set -x # Set up the fonts mkfontdir . xset +fp $d/ xset fp rehash # Set up the dynamic library path if [ -d /usr/openwin/lib ] then LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/openwin/lib fi if [ -d /usr/ucblib ] then LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/ucblib fi export LD_LIBRARY_PATH # Set up the PATH to include pr3287. PATH=$PATH:$d/pr3287 export PATH # Set up ICU_DATA, for DBCS translations. ICU_DATA=.:$ICU_DATA export ICU_DATA # Run x3270, pointing it to the current directory for its configuration files set +e ./x3270 -xrm "x3270.confDir: $d" "$@" # Clean up xset -fp $d/ xset fp rehash ibm-3270-3.3.10ga4/x3270/status.c0000644000175000017500000006767011254565667015471 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * status.c * This module handles the 3270 status line. */ #include "globals.h" #include #include #include "3270ds.h" #include "appres.h" #include "screen.h" #include "cg.h" #include "kybdc.h" #include "hostc.h" #include "screenc.h" #include "statusc.h" #include "tablesc.h" #include "utilc.h" extern Window *screen_window; static XChar2b *status_2b; static unsigned char *status_1b; static XChar2b *display_2b; static Boolean status_changed = False; static struct status_line { Boolean changed; int start, len, color; XChar2b *s2b; unsigned char *s1b; XChar2b *d2b; } *status_line; static int offsets[] = { 0, /* connection status */ 8, /* wait, locked */ 39, /* shift, insert, timing, cursor position */ -1 }; #define SSZ ((sizeof(offsets)/sizeof(offsets[0])) - 1) #define CTLR_REGION 0 #define WAIT_REGION 1 #define MISC_REGION 2 static int colors[SSZ] = { FA_INT_NORM_NSEL, FA_INT_HIGH_SEL, FA_INT_NORM_NSEL }; static int colors3279[SSZ] = { HOST_COLOR_BLUE, HOST_COLOR_WHITE, HOST_COLOR_BLUE }; #define CM (60 * 10) /* csec per minute */ /* * The status line is laid out thusly (M is maxCOLS): * * 0 "4" in a square * 1 "A" underlined * 2 solid box if connected, "?" in a box if not * 3..7 empty * 8... message area * M-41 Meta indication ("M" or blank) * M-40 Alt indication ("A" or blank) * M-39 Shift indication (Special symbol/"^" or blank) * M-38..M-37 empty * M-36 Compose indication ("C" or blank) * M-35 Compose first character * M-34 empty * M-33 Typeahead indication ("T" or blank) * M-32 empty * M-31 Alternate keymap indication ("K" or blank) * M-30 Reverse input mode indication ("R" or blank) * M-29 Insert mode indication (Special symbol/"I" or blank) * M-28 Printer indication ("P" or blank) * M-27 Script indication ("S" or blank) * M-26..M-16 empty * M-15..M-9 command timing (Clock symbol and m:ss, or blank) * M-7..M cursor position (rrr/ccc or blank) */ /* Positions */ #define LBOX 0 /* left-hand box */ #define CNCT 1 /* connection between */ #define RBOX 2 /* right-hand box */ #define M0 8 /* message area */ #define SHIFT (maxCOLS-39) /* shift indication */ #define COMPOSE (maxCOLS-36) /* compose characters */ #define TYPEAHD (maxCOLS-33) /* typeahead */ #define KMAP (maxCOLS-31) /* alt keymap in effect */ #define REVERSE (maxCOLS-30) /* reverse input mode in effect */ #define INSERT (maxCOLS-29) /* insert mode */ #define PSESS (maxCOLS-28) /* printer session */ #define SCRIPT (maxCOLS-27) /* script in progress */ #define LU (maxCOLS-25) /* LU name */ #define LUCNT 8 #define T0 (maxCOLS-15) /* timings */ #define TCNT 7 #define C0 (maxCOLS-7) /* cursor position */ #define CCNT 7 #define STATUS_Y (ROW_TO_Y(maxROWS)+SGAP-1) static unsigned char nullblank; static Position status_y; /* Status line contents (high-level) */ static void do_disconnected(void); static void do_resolving(void); static void do_connecting(void); static void do_nonspecific(void); static void do_inhibit(void); static void do_blank(void); static void do_twait(void); static void do_syswait(void); static void do_protected(void); static void do_numeric(void); static void do_overflow(void); static void do_dbcs(void); static void do_scrolled(void); static void do_minus(void); static Boolean oia_undera = True; static Boolean oia_boxsolid = False; static int oia_shift = 0; static Boolean oia_typeahead = False; static Boolean oia_compose = False; static unsigned char oia_compose_char = 0; static enum keytype oia_compose_keytype = KT_STD; static enum msg { DISCONNECTED, /* X Not Connected */ XRESOLVING, /* X Resolving */ CONNECTING, /* X Connecting */ NONSPECIFIC, /* X */ INHIBIT, /* X Inhibit */ BLANK, /* (blank) */ TWAIT, /* X Wait */ SYSWAIT, /* X SYSTEM */ PROTECTED, /* X Protected */ NUMERIC, /* X Numeric */ OVERFLOW, /* X Overflow */ DBCS, /* X DBCS */ SCROLLED, /* X Scrolled */ MINUS /* X -f */ } oia_msg = DISCONNECTED, saved_msg; static char oia_lu[LUCNT+1]; static Boolean msg_is_saved = False; static int n_scrolled = 0; static void (*msg_proc[])(void) = { do_disconnected, do_resolving, do_connecting, do_nonspecific, do_inhibit, do_blank, do_twait, do_syswait, do_protected, do_numeric, do_overflow, do_dbcs, do_scrolled, do_minus }; static int msg_color[] = { FA_INT_HIGH_SEL, FA_INT_NORM_NSEL, FA_INT_NORM_NSEL, FA_INT_NORM_NSEL, FA_INT_NORM_NSEL, FA_INT_NORM_NSEL, FA_INT_NORM_SEL, FA_INT_NORM_SEL, FA_INT_NORM_SEL, FA_INT_NORM_SEL, FA_INT_NORM_SEL, FA_INT_NORM_SEL, FA_INT_NORM_SEL }; static int msg_color3279[] = { HOST_COLOR_WHITE, HOST_COLOR_WHITE, HOST_COLOR_WHITE, HOST_COLOR_WHITE, HOST_COLOR_BLUE, HOST_COLOR_WHITE, HOST_COLOR_WHITE, HOST_COLOR_RED, HOST_COLOR_RED, HOST_COLOR_RED, HOST_COLOR_RED, HOST_COLOR_WHITE, HOST_COLOR_RED }; static Boolean oia_insert = False; static Boolean oia_reverse = False; static Boolean oia_kmap = False; static Boolean oia_script = False; static Boolean oia_printer = False; static char *oia_cursor = (char *) 0; static char *oia_timing = (char *) 0; static unsigned char disc_pfx[] = { CG_lock, CG_space, CG_badcommhi, CG_commjag, CG_commlo, CG_space }; static unsigned char *disc_msg; static int disc_len = sizeof(disc_pfx); static unsigned char rslv_pfx[] = { CG_lock, CG_space, CG_commhi, CG_commjag, CG_commlo, CG_space }; static unsigned char *rslv_msg; static int rslv_len = sizeof(rslv_pfx); static unsigned char cnct_pfx[] = { CG_lock, CG_space, CG_commhi, CG_commjag, CG_commlo, CG_space }; static unsigned char *cnct_msg; static int cnct_len = sizeof(cnct_pfx); static unsigned char *a_not_connected; static unsigned char *a_resolving; static unsigned char *a_connecting; static unsigned char *a_inhibit; static unsigned char *a_twait; static unsigned char *a_syswait; static unsigned char *a_protected; static unsigned char *a_numeric; static unsigned char *a_overflow; static unsigned char *a_dbcs; static unsigned char *a_scrolled; static unsigned char *a_minus; static unsigned char *make_amsg(const char *key); static unsigned char *make_emsg(unsigned char prefix[], const char *key, int *len); static void status_render(int region); static void do_ctlr(void); static void do_msg(enum msg t); static void paint_msg(enum msg t); static void do_insert(Boolean on); static void do_reverse(Boolean on); static void do_kmap(Boolean on); static void do_script(Boolean on); static void do_printer(Boolean on); static void do_shift(int state); static void do_typeahead(int state); static void do_compose(Boolean on, unsigned char c, enum keytype keytype); static void do_lu(const char *lu); static void do_timing(char *buf); static void do_cursor(char *buf); static void status_connect(Boolean connected); static void status_3270_mode(Boolean connected); static void status_resolving(Boolean ignored); static void status_half_connect(Boolean ignored); static void status_printer(Boolean on); /* Initialize the status line */ void status_init(void) { a_not_connected = make_amsg("statusNotConnected"); disc_msg = make_emsg(disc_pfx, "statusNotConnected", &disc_len); a_resolving = make_amsg("statusResolving"); rslv_msg = make_emsg(rslv_pfx, "statusResolving", &rslv_len); a_connecting = make_amsg("statusConnecting"); cnct_msg = make_emsg(cnct_pfx, "statusConnecting", &cnct_len); a_inhibit = make_amsg("statusInhibit"); a_twait = make_amsg("statusTwait"); a_syswait = make_amsg("statusSyswait"); a_protected = make_amsg("statusProtected"); a_numeric = make_amsg("statusNumeric"); a_overflow = make_amsg("statusOverflow"); a_dbcs = make_amsg("statusDbcs"); a_scrolled = make_amsg("statusScrolled"); a_minus = make_amsg("statusMinus"); register_schange(ST_RESOLVING, status_resolving); register_schange(ST_HALF_CONNECT, status_half_connect); register_schange(ST_CONNECT, status_connect); register_schange(ST_3270_MODE, status_3270_mode); register_schange(ST_PRINTER, status_printer); } /* Reinitialize the status line */ void status_reinit(unsigned cmask) { unsigned i; if (cmask & FONT_CHANGE) nullblank = *standard_font ? ' ' : CG_space; if (cmask & (FONT_CHANGE | MODEL_CHANGE)) { status_y = STATUS_Y; if (!*descent) ++status_y; } if (cmask & MODEL_CHANGE) { Replace(status_line, (struct status_line *)XtCalloc(sizeof(struct status_line), SSZ)); Replace(status_2b, (XChar2b *)XtCalloc(sizeof(XChar2b), maxCOLS)); Replace(status_1b, (unsigned char *)XtCalloc(sizeof(unsigned char), maxCOLS)); Replace(display_2b, (XChar2b *)XtCalloc(sizeof(XChar2b), maxCOLS)); offsets[SSZ] = maxCOLS; if (appres.mono) colors[1] = FA_INT_NORM_NSEL; for (i = 0; i < SSZ; i++) { status_line[i].start = offsets[i]; status_line[i].len = offsets[i+1] - offsets[i]; status_line[i].s2b = status_2b + offsets[i]; status_line[i].s1b = status_1b + offsets[i]; status_line[i].d2b = display_2b + offsets[i]; } } else (void) memset(display_2b, 0, maxCOLS * sizeof(XChar2b)); if (cmask & (COLOR_CHANGE | MODEL_CHANGE)) { for (i = 0; i < SSZ; i++) { status_line[i].color = appres.m3279 ? colors3279[i] : colors[i]; } } for (i = 0; i < SSZ; i++) status_line[i].changed = True; status_changed = True; /* * Always redraw all the fields; it's easier than keeping track of * what may have changed and why. */ do_ctlr(); paint_msg(oia_msg); do_insert(oia_insert); do_reverse(oia_reverse); do_kmap(oia_kmap); do_script(oia_script); do_printer(oia_printer); do_shift(oia_shift); do_typeahead(oia_typeahead); do_compose(oia_compose, oia_compose_char, oia_compose_keytype); do_lu(oia_lu); do_cursor(oia_cursor); do_timing(oia_timing); } /* Render the status line onto the screen */ void status_disp(void) { unsigned i; if (!status_changed) return; for (i = 0; i < SSZ; i++) if (status_line[i].changed) { status_render(i); (void) memmove(status_line[i].d2b, status_line[i].s2b, status_line[i].len * sizeof(XChar2b)); status_line[i].changed = False; } status_changed = False; } /* Mark the entire status line as changed */ void status_touch(void) { unsigned i; for (i = 0; i < SSZ; i++) { status_line[i].changed = True; (void) memset(status_line[i].d2b, 0, status_line[i].len * sizeof(XChar2b)); } status_changed = True; } /* Keyboard lock status changed */ void status_kybdlock(void) { /* presently implemented as explicit calls */ } /* Connected or disconnected */ static void status_connect(Boolean connected) { if (connected) { oia_boxsolid = IN_3270 && !IN_SSCP; do_ctlr(); if (kybdlock & KL_AWAITING_FIRST) do_msg(NONSPECIFIC); else do_msg(BLANK); status_untiming(); } else { oia_boxsolid = False; do_ctlr(); do_msg(DISCONNECTED); status_uncursor_pos(); } } /* Changed 3270 mode */ static void status_3270_mode(Boolean connected) { oia_boxsolid = IN_3270 && !IN_SSCP; do_ctlr(); status_untiming(); } /* Resolving */ static void status_resolving(Boolean ignored _is_unused) { oia_boxsolid = False; do_ctlr(); do_msg(RESOLVING); status_untiming(); status_uncursor_pos(); } /* Half connected */ static void status_half_connect(Boolean ignored _is_unused) { oia_boxsolid = False; do_ctlr(); do_msg(CONNECTING); status_untiming(); status_uncursor_pos(); } /* Toggle printer session mode */ static void status_printer(Boolean on) { do_printer(oia_printer = on); } /* Lock the keyboard (twait) */ void status_twait(void) { oia_undera = False; do_ctlr(); do_msg(TWAIT); } /* Done with controller confirmation */ void status_ctlr_done(void) { oia_undera = True; do_ctlr(); } /* Lock the keyboard (X SYSTEM) */ void status_syswait(void) { do_msg(SYSWAIT); } /* Lock the keyboard (operator error) */ void status_oerr(int error_type) { switch (error_type) { case KL_OERR_PROTECTED: do_msg(PROTECTED); break; case KL_OERR_NUMERIC: do_msg(NUMERIC); break; case KL_OERR_OVERFLOW: do_msg(OVERFLOW); break; case KL_OERR_DBCS: do_msg(DBCS); break; } } /* Lock the keyboard (X Scrolled) */ void status_scrolled(int n) { if (n != 0) { if (!msg_is_saved) { saved_msg = oia_msg; msg_is_saved = True; } n_scrolled = n; paint_msg(SCROLLED); } else { if (msg_is_saved) { msg_is_saved = False; paint_msg(saved_msg); } } } /* Lock the keyboard (X -f) */ void status_minus(void) { do_msg(MINUS); } /* Unlock the keyboard */ void status_reset(void) { if (kybdlock & KL_ENTER_INHIBIT) do_msg(INHIBIT); else if (kybdlock & KL_DEFERRED_UNLOCK) do_msg(NONSPECIFIC); else do_msg(BLANK); } /* Toggle insert mode */ void status_insert_mode(Boolean on) { do_insert(oia_insert = on); } /* Toggle reverse mode */ void status_reverse_mode(Boolean on) { do_reverse(oia_reverse = on); } /* Toggle kmap mode */ void status_kmap(Boolean on) { do_kmap(oia_kmap = on); } /* Toggle script mode */ void status_script(Boolean on) { do_script(oia_script = on); } /* Toggle shift mode */ void status_shift_mode(int state) { do_shift(oia_shift = state); } /* Toggle typeahead */ void status_typeahead(Boolean on) { do_typeahead(oia_typeahead = on); } /* Set compose character */ void status_compose(Boolean on, unsigned char c, enum keytype keytype) { oia_compose = on; oia_compose_char = c; oia_compose_keytype = keytype; do_compose(on, c, keytype); } /* Set LU name */ void status_lu(const char *lu) { if (lu != NULL) { (void) strncpy(oia_lu, lu, LUCNT); oia_lu[LUCNT] = '\0'; } else (void) memset(oia_lu, '\0', sizeof(oia_lu)); do_lu(oia_lu); } /* Display timing */ void status_timing(struct timeval *t0, struct timeval *t1) { static char no_time[] = ":??.?"; static char buf[TCNT+1]; if (t1->tv_sec - t0->tv_sec > (99*60)) { do_timing(oia_timing = no_time); } else { unsigned long cs; /* centiseconds */ cs = (t1->tv_sec - t0->tv_sec) * 10 + (t1->tv_usec - t0->tv_usec + 50000) / 100000; if (cs < CM) (void) sprintf(buf, ":%02ld.%ld", cs / 10, cs % 10); else (void) sprintf(buf, "%02ld:%02ld", cs / CM, (cs % CM) / 10); do_timing(oia_timing = buf); } } /* Erase timing indication */ void status_untiming(void) { do_timing(oia_timing = (char *) 0); } /* Update cursor position */ void status_cursor_pos(int ca) { static char buf[CCNT+1]; (void) sprintf(buf, "%03d/%03d", ca/COLS + 1, ca%COLS + 1); do_cursor(oia_cursor = buf); } /* Erase cursor position */ void status_uncursor_pos(void) { do_cursor(oia_cursor = (char *) 0); } /* Internal routines */ /* Update the status line by displaying "symbol" at column "col". */ static void status_add(int col, unsigned char symbol, enum keytype keytype) { unsigned i; XChar2b n2b; n2b.byte1 = (keytype == KT_STD) ? 0 : 1; n2b.byte2 = symbol; if (status_2b[col].byte1 == n2b.byte1 && status_2b[col].byte2 == n2b.byte2) return; status_2b[col] = n2b; status_1b[col] = symbol; status_changed = True; for (i = 0; i < SSZ; i++) if (col >= status_line[i].start && col < status_line[i].start + status_line[i].len) { status_line[i].changed = True; return; } } /* * Render a region of the status line onto the display, the idea being to * minimize the number of redundant X drawing operations performed. * * What isn't optimized is what happens when "ABC" becomes "XBZ" -- should we * redundantly draw over B or not? Right now we don't. */ static void status_render(int region) { int i; struct status_line *sl = &status_line[region]; int nd = 0; int i0 = -1; XTextItem16 text1; /* The status region may change colors; don't be so clever */ if (region == WAIT_REGION) { XFillRectangle(display, *screen_window, screen_invgc(sl->color), COL_TO_X(sl->start), status_y - *ascent, *char_width * sl->len, *char_height); text1.chars = sl->s2b; text1.nchars = sl->len; text1.delta = 0; text1.font = *fid; XDrawText16(display, *screen_window, screen_gc(sl->color), COL_TO_X(sl->start), status_y, &text1, 1); } else { for (i = 0; i < sl->len; i++) { if (*funky_font || *xtra_width) { if (!sl->s1b[i]) continue; XFillRectangle(display, *screen_window, screen_invgc(sl->color), COL_TO_X(sl->start + i), status_y - *ascent, *char_width, *char_height); text1.chars = sl->s2b + i; text1.nchars = 1; text1.delta = 0; text1.font = *fid; XDrawText16(display, *screen_window, screen_gc(sl->color), COL_TO_X(sl->start + i), status_y, &text1, 1); continue; } if (sl->s2b[i].byte1 == sl->d2b[i].byte1 && sl->s2b[i].byte2 == sl->d2b[i].byte2) { if (nd) { XFillRectangle(display, *screen_window, screen_invgc(sl->color), COL_TO_X(sl->start + i0), status_y - *ascent, *char_width * nd, *char_height); text1.chars = sl->s2b + i0; text1.nchars = nd; text1.delta = 0; text1.font = *fid; XDrawText16(display, *screen_window, screen_gc(sl->color), COL_TO_X(sl->start + i0), status_y, &text1, 1); nd = 0; i0 = -1; } } else { if (!nd++) i0 = i; } } if (nd) { XFillRectangle(display, *screen_window, screen_invgc(sl->color), COL_TO_X(sl->start + i0), status_y - *ascent, *char_width * nd, *char_height); text1.chars = sl->s2b + i0; text1.nchars = nd; text1.delta = 0; text1.font = *fid; XDrawText16(display, *screen_window, screen_gc(sl->color), COL_TO_X(sl->start + i0), status_y, &text1, 1); } } /* Leftmost region has unusual attributes */ if (*standard_font && region == CTLR_REGION) { XFillRectangle(display, *screen_window, screen_invgc(sl->color), COL_TO_X(sl->start), status_y - *ascent, *char_width * 3, *char_height); XFillRectangle(display, *screen_window, screen_gc(sl->color), COL_TO_X(sl->start + LBOX), status_y - *ascent, *char_width, *char_height); XFillRectangle(display, *screen_window, screen_gc(sl->color), COL_TO_X(sl->start + RBOX), status_y - *ascent, *char_width, *char_height); text1.chars = sl->s2b + LBOX; text1.nchars = 1; text1.delta = 0; text1.font = *fid; XDrawText16(display, *screen_window, screen_invgc(sl->color), COL_TO_X(sl->start + LBOX), status_y, &text1, 1); XDrawRectangle(display, *screen_window, screen_gc(sl->color), COL_TO_X(sl->start + CNCT), status_y - *ascent + *char_height - 1, *char_width - 1, 0); text1.chars = sl->s2b + CNCT; XDrawText16(display, *screen_window, screen_gc(sl->color), COL_TO_X(sl->start + CNCT), status_y, &text1, 1); text1.chars = sl->s2b + RBOX; XDrawText16(display, *screen_window, screen_invgc(sl->color), COL_TO_X(sl->start + RBOX), status_y, &text1, 1); } } /* Write into the message area of the status line */ static void status_msg_set(unsigned const char *msg, int len) { register int i; for (i = 0; i < status_line[WAIT_REGION].len; i++) { status_add(M0+i, len ? msg[i] : nullblank, KT_STD); if (len) len--; } } /* Controller status */ static void do_ctlr(void) { if (*standard_font) { status_add(LBOX, '4', KT_STD); if (oia_undera) status_add(CNCT, (IN_E ? 'B' : 'A'), KT_STD); else status_add(CNCT, ' ', KT_STD); if (IN_ANSI) status_add(RBOX, 'N', KT_STD); else if (oia_boxsolid) status_add(RBOX, ' ', KT_STD); else if (IN_SSCP) status_add(RBOX, 'S', KT_STD); else status_add(RBOX, '?', KT_STD); } else { status_add(LBOX, CG_box4, KT_STD); if (oia_undera) status_add(CNCT, (IN_E ? CG_underB : CG_underA), KT_STD); else status_add(CNCT, CG_null, KT_STD); if (IN_ANSI) status_add(RBOX, CG_N, KT_STD); else if (oia_boxsolid) status_add(RBOX, CG_boxsolid, KT_STD); else if (IN_SSCP) status_add(RBOX, CG_boxhuman, KT_STD); else status_add(RBOX, CG_boxquestion, KT_STD); } } /* Message area */ /* Change the state of the message area, or if scrolled, the saved message */ static void do_msg(enum msg t) { if (msg_is_saved) { saved_msg = t; return; } paint_msg(t); } /* Paint the message area. */ static void paint_msg(enum msg t) { oia_msg = t; (*msg_proc[(int)t])(); if (!appres.mono) status_line[WAIT_REGION].color = appres.m3279 ? msg_color3279[(int)t] : msg_color[(int)t]; } static void do_blank(void) { status_msg_set((unsigned char *) 0, 0); } static void do_disconnected(void) { if (*standard_font) status_msg_set(a_not_connected, strlen((char *)a_not_connected)); else status_msg_set(disc_msg, disc_len); } static void do_resolving(void) { if (*standard_font) status_msg_set(a_resolving, strlen((char *)a_resolving)); else status_msg_set(rslv_msg, rslv_len); } static void do_connecting(void) { if (*standard_font) status_msg_set(a_connecting, strlen((char *)a_connecting)); else status_msg_set(cnct_msg, cnct_len); } static void do_nonspecific(void) { static unsigned char nonspecific[] = { CG_lock }; if (*standard_font) status_msg_set((unsigned const char *)"X", 1); else status_msg_set(nonspecific, sizeof(nonspecific)); } static void do_inhibit(void) { static unsigned char inhibit[] = { CG_lock, CG_space, CG_I, CG_n, CG_h, CG_i, CG_b, CG_i, CG_t }; if (*standard_font) status_msg_set(a_inhibit, strlen((char *)a_inhibit)); else status_msg_set(inhibit, sizeof(inhibit)); } static void do_twait(void) { static unsigned char twait[] = { CG_lock, CG_space, CG_clockleft, CG_clockright }; if (*standard_font) status_msg_set(a_twait, strlen((char *)a_twait)); else status_msg_set(twait, sizeof(twait)); } static void do_syswait(void) { static unsigned char syswait[] = { CG_lock, CG_space, CG_S, CG_Y, CG_S, CG_T, CG_E, CG_M }; if (*standard_font) status_msg_set(a_syswait, strlen((char *)a_syswait)); else status_msg_set(syswait, sizeof(syswait)); } static void do_protected(void) { static unsigned char protected[] = { CG_lock, CG_space, CG_leftarrow, CG_human, CG_rightarrow }; if (*standard_font) status_msg_set(a_protected, strlen((char *)a_protected)); else status_msg_set(protected, sizeof(protected)); } static void do_numeric(void) { static unsigned char numeric[] = { CG_lock, CG_space, CG_human, CG_N, CG_U, CG_M }; if (*standard_font) status_msg_set(a_numeric, strlen((char *)a_numeric)); else status_msg_set(numeric, sizeof(numeric)); } static void do_overflow(void) { static unsigned char overflow[] = { CG_lock, CG_space, CG_human, CG_greater }; if (*standard_font) status_msg_set(a_overflow, strlen((char *)a_overflow)); else status_msg_set(overflow, sizeof(overflow)); } static void do_dbcs(void) { static unsigned char dbcs[] = { CG_lock, CG_space, CG_less, CG_S, CG_greater }; if (*standard_font) status_msg_set(a_dbcs, strlen((char *)a_dbcs)); else status_msg_set(dbcs, sizeof(dbcs)); } static void do_scrolled(void) { static unsigned char scrolled[] = { CG_lock, CG_space, CG_S, CG_c, CG_r, CG_o, CG_l, CG_l, CG_e, CG_d, CG_space, CG_space, CG_space, CG_space, CG_space }; static unsigned char spaces[] = { CG_space, CG_space, CG_space, CG_space }; if (*standard_font) { char *t; t = XtMalloc(strlen((char *)a_scrolled) + 4); (void) sprintf(t, "%s %d", (char *)a_scrolled, n_scrolled); status_msg_set((unsigned char *)t, strlen(t)); XtFree(t); } else { char nnn[5]; int i; (void) sprintf(nnn, "%d", n_scrolled); (void) memcpy((char *)&scrolled[11], (char *)spaces, sizeof(spaces)); for (i = 0; nnn[i]; i++) scrolled[11 + i] = asc2cg0[(int)nnn[i]]; status_msg_set(scrolled, sizeof(scrolled)); } } static void do_minus(void) { static unsigned char minus[] = { CG_lock, CG_space, CG_minus, CG_f }; if (*standard_font) status_msg_set(a_minus, strlen((char *)a_minus)); else status_msg_set(minus, sizeof(minus)); } /* Insert, reverse, kmap, script, shift, compose */ static void do_insert(Boolean on) { status_add(INSERT, on ? (*standard_font ? 'I' : CG_insert) : nullblank, KT_STD); } static void do_reverse(Boolean on) { status_add(REVERSE, on ? (*standard_font ? 'R' : CG_R) : nullblank, KT_STD); } static void do_kmap(Boolean on) { status_add(KMAP, on ? (*standard_font ? 'K' : CG_K) : nullblank, KT_STD); } static void do_script(Boolean on) { status_add(SCRIPT, on ? (*standard_font ? 'S' : CG_S) : nullblank, KT_STD); } static void do_printer(Boolean on) { status_add(PSESS, on ? (*standard_font ? 'P' : CG_P) : nullblank, KT_STD); } static void do_shift(int state) { status_add(SHIFT-2, (state & MetaKeyDown) ? (*standard_font ? 'M' : CG_M) : nullblank, KT_STD); status_add(SHIFT-1, (state & AltKeyDown) ? (*standard_font ? 'A' : CG_A) : nullblank, KT_STD); status_add(SHIFT, (state & ShiftKeyDown) ? (*standard_font ? '^' : CG_upshift) : nullblank, KT_STD); } static void do_typeahead(int state) { status_add(TYPEAHD, state ? (*standard_font ? 'T' : CG_T) : nullblank, KT_STD); } static void do_compose(Boolean on, unsigned char c, enum keytype keytype) { if (on) { status_add(COMPOSE, (unsigned char)(*standard_font ? 'C' : CG_C), KT_STD); status_add(COMPOSE+1, c ? (*standard_font ? c : asc2cg0[c]) : nullblank, keytype); } else { status_add(COMPOSE, nullblank, KT_STD); status_add(COMPOSE+1, nullblank, KT_STD); } } static void do_lu(const char *lu) { int i; for (i = 0; i < LUCNT; i++) { status_add(LU+i, lu[i]? (*standard_font? lu[i]: asc2cg0[(int)lu[i]]): nullblank, KT_STD); } } /* Timing */ static void do_timing(char *buf) { register int i; if (buf) { if (*standard_font) { status_add(T0, nullblank, KT_STD); status_add(T0+1, nullblank, KT_STD); } else { status_add(T0, CG_clockleft, KT_STD); status_add(T0+1, CG_clockright, KT_STD); } for (i = 0; i < (int) strlen(buf); i++) status_add(T0+2+i, *standard_font ? buf[i] : asc2cg0[(unsigned char) buf[i]], KT_STD); } else for (i = 0; i < TCNT; i++) status_add(T0+i, nullblank, KT_STD); } /* Cursor position */ static void do_cursor(char *buf) { register int i; if (buf) for (i = 0; i < (int) strlen(buf); i++) status_add(C0+i, *standard_font ? buf[i] : asc2cg0[(unsigned char) buf[i]], KT_STD); else for (i = 0; i < CCNT; i++) status_add(C0+i, nullblank, KT_STD); } /* Prepare status messages */ static unsigned char * make_amsg(const char *key) { return (unsigned char *)xs_buffer("X %s", get_message(key)); } static unsigned char * make_emsg(unsigned char prefix[], const char *key, int *len) { const char *text = get_message(key); unsigned char *buf = (unsigned char *)XtMalloc(*len + strlen(text)); (void) memmove(buf, prefix, *len); while (*text) buf[(*len)++] = asc2cg0[(int)*text++]; return buf; } ibm-3270-3.3.10ga4/x3270/xio.c0000644000175000017500000000752211254565704014723 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, * GA 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor their * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR * GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * xio.c * Low-level I/O setup functions and exit code. */ #include "globals.h" #include "actionsc.h" #include "hostc.h" #include "telnetc.h" #include "togglesc.h" #include "utilc.h" #include "xioc.h" /* Statics. */ static unsigned long ns_read_id; static unsigned long ns_exception_id; static Boolean reading = False; static Boolean excepting = False; /* * Called to set up input on a new network connection. */ void x_add_input(int net_sock) { ns_exception_id = AddExcept(net_sock, net_exception); excepting = True; ns_read_id = AddInput(net_sock, net_input); reading = True; } /* * Called when an exception is received to disable further exceptions. */ void x_except_off(void) { if (excepting) { RemoveInput(ns_exception_id); excepting = False; } } /* * Called when exception processing is complete to re-enable exceptions. * This includes removing and restoring reading, so the exceptions are always * processed first. */ void x_except_on(int net_sock) { if (excepting) return; if (reading) RemoveInput(ns_read_id); ns_exception_id = AddExcept(net_sock, net_exception); excepting = True; if (reading) ns_read_id = AddInput(net_sock, net_input); } /* * Called to disable input on a closing network connection. */ void x_remove_input(void) { if (reading) { RemoveInput(ns_read_id); reading = False; } if (excepting) { RemoveInput(ns_exception_id); excepting = False; } } /* * Application exit, with cleanup. */ void x3270_exit(int n) { static Boolean already_exiting = 0; /* Handle unintentional recursion. */ if (already_exiting) return; already_exiting = True; /* Turn off toggle-related activity. */ shutdown_toggles(); /* Shut down the socket gracefully. */ host_disconnect(False); /* Tell anyone else who's interested. */ st_changed(ST_EXITING, True); #if defined(WC3270) /*[*/ if (n) { char buf[2]; printf("\n[Press ] "); fflush(stdout); (void) fgets(buf, sizeof(buf), stdin); } #endif /*]*/ exit(n); } void Quit_action(Widget w, XEvent *event, String *params, Cardinal *num_params) { action_debug(Quit_action, event, params, num_params); if (!w || !CONNECTED) { x3270_exit(0); } } ibm-3270-3.3.10ga4/x3270/resolverc.h0000644000175000017500000000361311254565704016132 0ustar bastianbastian/* * Copyright (c) 2007-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resolverc.h * Hostname resolution. */ extern int resolve_host_and_port(const char *host, char *portname, int ix, unsigned short *pport, struct sockaddr *sa, socklen_t *sa_len, char *errmsg, int em_size, int *lastp); extern int numeric_host_and_port(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, char *errmsg, int em_len); ibm-3270-3.3.10ga4/x3270/3270gt16.bdf0000644000175000017500000015057011254565667015544 0ustar bastianbastianSTARTFONT 2.1 COMMENT "16-point 3270 font" COMMENT "Uses nonstandard ordering:" COMMENT " Page 0: EBCDIC US-International set, CG order" COMMENT " Page 1: EBCDIC APL/APL2 set, CG order (incomplete)" COMMENT " Page 2: (first 16 characters only) DEC line-drawing characters from" COMMENT " fixed-width X fonts" COMMENT "" COMMENT "Copyright (c) 1993-2009, Paul Mattes." COMMENT "Copyright (c) 1990, Georgia Tech Research Corporation (GTRC)," COMMENT " Atlanta, GA 30332." COMMENT "All rights reserved." COMMENT "" COMMENT "Redistribution and use in source and binary forms, with or" COMMENT "without modification, are permitted provided that the following" COMMENT "conditions are met:" COMMENT " * Redistributions of source code must retain the above" COMMENT " copyright notice, this list of conditions and the following" COMMENT " disclaimer." COMMENT " * Redistributions in binary form must reproduce the above" COMMENT " copyright notice, this list of conditions and the following" COMMENT " disclaimer in the documentation and/or other materials" COMMENT " provided with the distribution." COMMENT " * Neither the names of Paul Mattes, GTRC nor their" COMMENT " contributors may be used to endorse or promote products" COMMENT " derived from this software without specific prior written" COMMENT " permission." COMMENT "" COMMENT "THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND GTRC 'AS IS' AND" COMMENT "ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED" COMMENT "TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR" COMMENT "A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL" COMMENT "MATTES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL," COMMENT "SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT" COMMENT "NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;" COMMENT "LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER" COMMENT "CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT," COMMENT "STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)" COMMENT "ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF" COMMENT "ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." FONT 3270gt16 SIZE 16 72 72 FONTBOUNDINGBOX 9 16 0 -4 STARTPROPERTIES 27 FOUNDRY "GaTech" FAMILY_NAME "3270" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 16 POINT_SIZE 160 RESOLUTION_X 72 RESOLUTION_Y 72 SPACING "C" AVERAGE_WIDTH 90 CHARSET_REGISTRY "3270cg" CHARSET_ENCODING "1" MIN_SPACE 9 NORM_SPACE 9 MAX_SPACE 9 END_SPACE 9 AVG_CAPITAL_WIDTH 90 AVG_LOWERCASE_WIDTH 90 CAP_HEIGHT 9 X_HEIGHT 7 RELATIVE_WEIGHT 50 DESTINATION "Video Text" FONT_ASCENT 12 FONT_DESCENT 4 DEFAULT_CHAR 514 ENDPROPERTIES CHARS 312 STARTCHAR null ENCODING 0 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR nobreakspace ENCODING 1 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR euro ENCODING 2 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0e00 1100 2000 7f00 2000 7e00 2000 1100 0e00 0000 0000 0000 0000 ENDCHAR STARTCHAR cr ENCODING 3 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR nl ENCODING 4 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR em ENCODING 5 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR eightones ENCODING 6 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 1c00 3e00 7f00 7f00 7f00 3e00 1c00 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR hyphen ENCODING 7 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 3e00 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR greater ENCODING 8 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 2000 1000 0800 0400 0200 0400 0800 1000 2000 0000 0000 0000 0000 ENDCHAR STARTCHAR less ENCODING 9 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0200 0400 0800 1000 2000 1000 0800 0400 0200 0000 0000 0000 0000 ENDCHAR STARTCHAR bracketleft ENCODING 10 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1c00 1000 1000 1000 1000 1000 1000 1000 1000 1000 1c00 0000 0000 0000 ENDCHAR STARTCHAR bracketright ENCODING 11 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1c00 0400 0400 0400 0400 0400 0400 0400 0400 0400 1c00 0000 0000 0000 ENDCHAR STARTCHAR parenright ENCODING 12 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 1000 0800 0400 0400 0400 0400 0400 0800 1000 0000 0000 0000 0000 ENDCHAR STARTCHAR parenleft ENCODING 13 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0400 0800 1000 1000 1000 1000 1000 0800 0400 0000 0000 0000 0000 ENDCHAR STARTCHAR braceright ENCODING 14 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 3000 0800 0800 0800 0800 0400 0800 0800 0800 0800 3000 0000 0000 0000 ENDCHAR STARTCHAR braceleft ENCODING 15 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0c00 1000 1000 1000 1000 2000 1000 1000 1000 1000 0c00 0000 0000 0000 ENDCHAR STARTCHAR space ENCODING 16 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR equal ENCODING 17 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 7f00 0000 0000 7f00 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR apostrophe ENCODING 18 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 0800 0800 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR quotedbl ENCODING 19 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 2400 2400 2400 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR slash ENCODING 20 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0100 0200 0400 0800 1000 2000 4000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR backslash ENCODING 21 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 4000 2000 1000 0800 0400 0200 0100 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR bar ENCODING 22 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0000 0000 ENDCHAR STARTCHAR brokenbar ENCODING 23 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 0800 0800 0800 0800 0000 0000 0800 0800 0800 0800 0800 0000 0000 ENDCHAR STARTCHAR question ENCODING 24 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1e00 2100 2100 0200 0400 0800 0800 0000 0000 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR exclam ENCODING 25 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 0800 0800 0800 0800 0800 0800 0000 0000 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR dollar ENCODING 26 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 0800 3f00 4800 4800 3e00 0900 0900 7e00 0800 0800 0000 0000 0000 ENDCHAR STARTCHAR cent ENCODING 27 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 0800 3e00 4800 4800 4800 3e00 0800 0800 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR sterling ENCODING 28 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0c00 1200 1000 1000 7c00 1000 1000 1000 7100 6e00 0000 0000 0000 0000 ENDCHAR STARTCHAR yen ENCODING 29 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 4100 2200 1400 0800 7f00 0800 0800 7f00 0800 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR paragraph ENCODING 30 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 7800 4400 4400 4400 7800 4000 4400 4e00 4400 4400 0400 0000 0000 0000 ENDCHAR STARTCHAR currency ENCODING 31 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 4100 2200 1c00 2200 2200 2200 1c00 2200 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR 0 ENCODING 32 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1c00 2200 4100 4100 4900 4900 4100 4100 2200 1c00 0000 0000 0000 0000 ENDCHAR STARTCHAR 1 ENCODING 33 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 1800 2800 0800 0800 0800 0800 0800 0800 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR 2 ENCODING 34 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1e00 2100 4100 0100 0200 0400 0800 1000 2000 7f00 0000 0000 0000 0000 ENDCHAR STARTCHAR 3 ENCODING 35 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 3f00 0100 0200 0400 0c00 0200 0100 0100 4200 3c00 0000 0000 0000 0000 ENDCHAR STARTCHAR 4 ENCODING 36 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0600 0a00 1200 2200 4200 4200 7f00 0200 0200 0200 0000 0000 0000 0000 ENDCHAR STARTCHAR 5 ENCODING 37 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 7f00 4000 4000 7c00 0200 0100 0100 0100 0200 7c00 0000 0000 0000 0000 ENDCHAR STARTCHAR 6 ENCODING 38 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1000 2000 4000 4000 5c00 6200 4100 4100 2200 1c00 0000 0000 0000 0000 ENDCHAR STARTCHAR 7 ENCODING 39 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 7f00 0100 0200 0400 0800 1000 1000 1000 1000 1000 0000 0000 0000 0000 ENDCHAR STARTCHAR 8 ENCODING 40 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1c00 2200 2200 2200 1c00 2200 4100 4100 2200 1c00 0000 0000 0000 0000 ENDCHAR STARTCHAR 9 ENCODING 41 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1e00 2100 4100 4300 4500 3900 0100 0100 0100 0200 0000 0000 0000 0000 ENDCHAR STARTCHAR ssharp ENCODING 42 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1800 2400 4400 4800 4400 4200 4100 4100 5100 4e00 0000 0000 0000 0000 ENDCHAR STARTCHAR section ENCODING 43 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1c00 2000 2000 5000 4800 4400 2200 1200 0a00 0400 0400 3800 0000 0000 ENDCHAR STARTCHAR numbersign ENCODING 44 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 2400 7e00 2400 2400 7e00 2400 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR at ENCODING 45 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 3e00 4100 4100 4d00 5500 5e00 4000 4000 4000 3f00 0000 0000 0000 0000 ENDCHAR STARTCHAR percent ENCODING 46 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 2000 5000 2100 0200 0400 0800 1000 2000 4200 0500 0200 0000 0000 0000 ENDCHAR STARTCHAR underscore ENCODING 47 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 7f00 0000 0000 0000 ENDCHAR STARTCHAR ampersand ENCODING 48 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 3000 4800 4800 4800 3000 5100 4a00 4400 3a00 0100 0000 0000 0000 ENDCHAR STARTCHAR minus ENCODING 49 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 3e00 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR period ENCODING 50 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1800 1800 0000 0000 0000 0000 ENDCHAR STARTCHAR comma ENCODING 51 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0c00 0c00 1800 3000 0000 0000 ENDCHAR STARTCHAR colon ENCODING 52 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 1800 1800 0000 0000 1800 1800 0000 0000 0000 0000 ENDCHAR STARTCHAR plus ENCODING 53 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0800 0800 0800 7f00 0800 0800 0800 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR notsign ENCODING 54 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 7f00 0100 0100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR macron ENCODING 55 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 7f00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR degree ENCODING 56 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1800 2400 2400 1800 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR periodcentered ENCODING 57 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 1800 1800 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR asciicircum ENCODING 58 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 1400 2200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR asciitilde ENCODING 59 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 3000 4900 0600 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR diaeresis ENCODING 60 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 6300 6300 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR grave ENCODING 61 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1000 0800 0400 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR acute ENCODING 62 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0400 0800 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR cedilla ENCODING 63 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0800 0800 0800 3000 0000 0000 ENDCHAR STARTCHAR agrave ENCODING 64 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 2000 1000 0800 0000 3c00 0200 0200 3e00 4200 4200 3f00 0000 0000 0000 0000 ENDCHAR STARTCHAR egrave ENCODING 65 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 2000 1000 0800 0000 3c00 4200 4200 7e00 4000 4000 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR igrave ENCODING 66 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 1000 0800 0400 0000 0000 0800 0800 0800 0800 0800 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR ograve ENCODING 67 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 2000 1000 0800 0000 3c00 4200 4200 4200 4200 4200 3c00 0000 0000 0000 0000 ENDCHAR STARTCHAR ugrave ENCODING 68 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 2000 1000 0800 0000 4200 4200 4200 4200 4200 4200 3d00 0000 0000 0000 0000 ENDCHAR STARTCHAR atilde ENCODING 69 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1900 2600 0000 3c00 0200 0200 3e00 4200 4200 3f00 0000 0000 0000 0000 ENDCHAR STARTCHAR otilde ENCODING 70 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 3200 4c00 0000 3c00 4200 4200 4200 4200 4200 3c00 0000 0000 0000 0000 ENDCHAR STARTCHAR ydiaeresis ENCODING 71 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 2400 0000 0000 4200 4200 4200 4200 2200 1400 0800 1000 2000 4000 0000 ENDCHAR STARTCHAR Yacute ENCODING 72 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0200 0400 0800 4100 2200 1400 0800 0800 0800 0800 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR yacute ENCODING 73 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0200 0400 0800 0000 4200 4200 4200 4200 2200 1400 0800 1000 2000 4000 0000 ENDCHAR STARTCHAR eacute ENCODING 74 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0200 0400 0800 0000 3c00 4200 4200 7e00 4000 4000 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR onequarter ENCODING 75 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 2000 6000 2000 2000 2000 2000 0200 0600 0a00 0f00 0200 0200 0000 0000 0000 ENDCHAR STARTCHAR onehalf ENCODING 76 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 2000 6000 2000 2000 2000 2000 0600 0900 0100 0600 0800 0f00 0000 0000 0000 ENDCHAR STARTCHAR threequarters ENCODING 77 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 7000 1000 2000 1000 5000 2000 0200 0600 0a00 0f00 0200 0200 0000 0000 0000 ENDCHAR STARTCHAR udiaeresis ENCODING 78 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 2400 0000 0000 4200 4200 4200 4200 4200 4200 3d00 0000 0000 0000 0000 ENDCHAR STARTCHAR ccedilla ENCODING 79 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 1e00 2000 4000 4000 4000 2000 1e00 0800 3800 0000 0000 ENDCHAR STARTCHAR adiaeresis ENCODING 80 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 2400 0000 0000 3c00 0200 0200 3e00 4200 4200 3f00 0000 0000 0000 0000 ENDCHAR STARTCHAR ediaeresis ENCODING 81 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 2400 0000 0000 3c00 4200 4200 7e00 4000 4000 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR idiaeresis ENCODING 82 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 2200 0000 0000 0800 0800 0800 0800 0800 0800 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR odiaeresis ENCODING 83 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 2400 0000 0000 3c00 4200 4200 4200 4200 4200 3c00 0000 0000 0000 0000 ENDCHAR STARTCHAR mu ENCODING 84 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 4200 4200 4200 4200 4200 6200 5d00 4000 4000 4000 0000 ENDCHAR STARTCHAR acircumflex ENCODING 85 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 1400 0000 3c00 0200 0200 3e00 4200 4200 3f00 0000 0000 0000 0000 ENDCHAR STARTCHAR ecircumflex ENCODING 86 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 1400 0000 3c00 4200 4200 7e00 4000 4000 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR icircumflex ENCODING 87 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 1400 0000 0000 0800 0800 0800 0800 0800 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR ocircumflex ENCODING 88 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 1400 0000 1c00 2200 2200 2200 2200 2200 1c00 0000 0000 0000 0000 ENDCHAR STARTCHAR ucircumflex ENCODING 89 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1000 2800 0000 4400 4400 4400 4400 4400 4400 3a00 0000 0000 0000 0000 ENDCHAR STARTCHAR aacute ENCODING 90 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0200 0400 0800 0000 3c00 0200 0200 3e00 4200 4200 3f00 0000 0000 0000 0000 ENDCHAR STARTCHAR multiply ENCODING 91 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 4100 2200 1400 0800 1400 2200 4100 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR iacute ENCODING 92 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0400 0800 1000 0000 0000 0800 0800 0800 0800 0800 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR oacute ENCODING 93 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0400 0800 1000 0000 3c00 4200 4200 4200 4200 4200 3c00 0000 0000 0000 0000 ENDCHAR STARTCHAR uacute ENCODING 94 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0400 0800 1000 0000 4200 4200 4200 4200 4200 4200 3d00 0000 0000 0000 0000 ENDCHAR STARTCHAR ntilde ENCODING 95 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1900 2600 0000 5e00 2100 2100 2100 2100 2100 2100 0000 0000 0000 0000 ENDCHAR STARTCHAR Agrave ENCODING 96 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0800 0400 0200 0800 1400 2200 4100 7f00 4100 4100 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR Egrave ENCODING 97 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 2000 1000 0800 7f00 4000 4000 7c00 4000 4000 4000 7f00 0000 0000 0000 0000 ENDCHAR STARTCHAR Igrave ENCODING 98 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 1000 0800 0400 0000 1c00 0800 0800 0800 0800 0800 1c00 0000 0000 0000 0000 ENDCHAR STARTCHAR Ograve ENCODING 99 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 2000 1000 0800 3e00 4100 4100 4100 4100 4100 4100 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR Ugrave ENCODING 100 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 2000 1000 0800 4100 4100 4100 4100 4100 4100 4100 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR Atilde ENCODING 101 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1900 2600 0000 0800 1400 2200 4100 7f00 4100 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR Otilde ENCODING 102 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 1900 2600 3e00 4100 4100 4100 4100 4100 4100 4100 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR onesuperior ENCODING 103 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 1800 0800 0800 0800 0800 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR twosuperior ENCODING 104 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1800 2400 0400 0800 1000 3c00 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR threesuperior ENCODING 105 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 3c00 0400 0800 0400 2400 1800 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ordfeminine ENCODING 106 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 3c00 0200 0200 3e00 4200 4200 3f00 0000 7f00 0000 0000 0000 0000 ENDCHAR STARTCHAR masculine ENCODING 107 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 3e00 4100 4100 4100 4100 4100 3e00 0000 7f00 0000 0000 0000 0000 ENDCHAR STARTCHAR guillemotleft ENCODING 108 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0900 1200 2400 4800 2400 1200 0900 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR guillemotright ENCODING 109 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 4800 2400 1200 0900 1200 2400 4800 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR exclamdown ENCODING 110 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 0000 0000 0800 0800 0800 0800 0800 0800 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR questiondown ENCODING 111 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 0000 0000 0800 0800 0400 0200 2100 2100 1e00 0000 0000 0000 0000 ENDCHAR STARTCHAR Adiaeresis ENCODING 112 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 2200 0000 0800 1400 2200 4100 4100 7f00 4100 4100 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR Ediaeresis ENCODING 113 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 2200 0000 7f00 4000 4000 4000 7c00 4000 4000 4000 7f00 0000 0000 0000 0000 ENDCHAR STARTCHAR Idiaeresis ENCODING 114 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 2200 0000 1c00 0800 0800 0800 0800 0800 0800 0800 1c00 0000 0000 0000 0000 ENDCHAR STARTCHAR Odiaeresis ENCODING 115 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 2200 0000 3e00 4100 4100 4100 4100 4100 4100 4100 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR Udiaeresis ENCODING 116 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 2200 0000 4100 4100 4100 4100 4100 4100 4100 4100 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR Acircumflex ENCODING 117 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0800 1400 0000 0800 1400 2200 4100 7f00 4100 4100 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR Ecircumflex ENCODING 118 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0800 1400 0000 7f00 4000 4000 4000 7c00 4000 4000 7f00 0000 0000 0000 0000 ENDCHAR STARTCHAR Icircumflex ENCODING 119 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0800 1400 0000 1c00 0800 0800 0800 0800 0800 0800 1c00 0000 0000 0000 0000 ENDCHAR STARTCHAR Ocircumflex ENCODING 120 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0800 1400 0000 3e00 4100 4100 4100 4100 4100 4100 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR Ucircumflex ENCODING 121 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0800 1400 0000 4100 4100 4100 4100 4100 4100 4100 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR Aacute ENCODING 122 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0800 1000 2000 0800 1400 2200 4100 7f00 4100 4100 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR Eacute ENCODING 123 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0200 0400 0800 7f00 4000 4000 4000 7c00 4000 4000 7f00 0000 0000 0000 0000 ENDCHAR STARTCHAR Iacute ENCODING 124 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0400 0800 1000 0000 1c00 0800 0800 0800 0800 0800 1c00 0000 0000 0000 0000 ENDCHAR STARTCHAR Oacute ENCODING 125 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0200 0400 0800 3e00 4100 4100 4100 4100 4100 4100 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR Uacute ENCODING 126 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0200 0400 0800 4100 4100 4100 4100 4100 4100 4100 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR Ntilde ENCODING 127 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1900 2600 0000 4100 6100 5100 4900 4500 4300 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR a ENCODING 128 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 3c00 0200 0200 3e00 4200 4200 3f00 0000 0000 0000 0000 ENDCHAR STARTCHAR b ENCODING 129 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 4000 4000 4000 7800 4400 4200 4200 4200 4400 7800 0000 0000 0000 0000 ENDCHAR STARTCHAR c ENCODING 130 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 1e00 2000 4000 4000 4000 2000 1e00 0000 0000 0000 0000 ENDCHAR STARTCHAR d ENCODING 131 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0200 0200 0200 1e00 2200 4200 4200 4200 2200 1e00 0000 0000 0000 0000 ENDCHAR STARTCHAR e ENCODING 132 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 3c00 4200 4200 7e00 4000 4000 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR f ENCODING 133 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0e00 1000 1000 7c00 1000 1000 1000 1000 1000 1000 0000 0000 0000 0000 ENDCHAR STARTCHAR g ENCODING 134 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 1e00 2100 4100 4100 2300 1d00 0100 2100 1e00 0000 0000 ENDCHAR STARTCHAR h ENCODING 135 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 4000 4000 4000 5c00 6200 4200 4200 4200 4200 4200 0000 0000 0000 0000 ENDCHAR STARTCHAR i ENCODING 136 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 0000 0000 0800 0800 0800 0800 0800 0800 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR j ENCODING 137 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0200 0000 0000 0200 0200 0200 0200 0200 0200 0200 2200 1c00 0000 0000 ENDCHAR STARTCHAR k ENCODING 138 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 2000 2000 2000 2200 2400 2800 3000 2800 2400 2200 0000 0000 0000 0000 ENDCHAR STARTCHAR l ENCODING 139 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 0800 0800 0800 0800 0800 0800 0800 0800 0c00 0000 0000 0000 0000 ENDCHAR STARTCHAR m ENCODING 140 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 3600 4900 4900 4900 4900 4900 4900 0000 0000 0000 0000 ENDCHAR STARTCHAR n ENCODING 141 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 5e00 2100 2100 2100 2100 2100 2100 0000 0000 0000 0000 ENDCHAR STARTCHAR o ENCODING 142 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 3c00 4200 4200 4200 4200 4200 3c00 0000 0000 0000 0000 ENDCHAR STARTCHAR p ENCODING 143 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 7800 4400 4200 4200 4200 4400 7800 4000 4000 4000 0000 ENDCHAR STARTCHAR q ENCODING 144 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 1e00 2200 4200 4200 2200 1e00 0200 0200 0300 0000 0000 ENDCHAR STARTCHAR r ENCODING 145 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 4e00 3100 2000 2000 2000 2000 2000 0000 0000 0000 0000 ENDCHAR STARTCHAR s ENCODING 146 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 3c00 4200 2000 1800 0400 4200 3c00 0000 0000 0000 0000 ENDCHAR STARTCHAR t ENCODING 147 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 0800 0800 3e00 0800 0800 0800 0800 0800 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR u ENCODING 148 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 4200 4200 4200 4200 4200 4200 3d00 0000 0000 0000 0000 ENDCHAR STARTCHAR v ENCODING 149 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 4100 4100 2200 2200 1400 1400 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR w ENCODING 150 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 4100 4100 4100 4900 4900 5500 2200 0000 0000 0000 0000 ENDCHAR STARTCHAR x ENCODING 151 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 4100 2200 1400 0800 1400 2200 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR y ENCODING 152 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 4200 4200 4200 4200 2200 1400 0800 1000 2000 4000 0000 ENDCHAR STARTCHAR z ENCODING 153 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 7f00 0200 0400 0800 1000 2000 7f00 0000 0000 0000 0000 ENDCHAR STARTCHAR ae ENCODING 154 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 7600 0900 1900 2f00 4800 4800 3700 0000 0000 0000 0000 ENDCHAR STARTCHAR oslash ENCODING 155 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 1d00 2200 2600 2a00 3200 2200 5c00 0000 0000 0000 0000 ENDCHAR STARTCHAR aring ENCODING 156 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1c00 1c00 0000 3c00 0200 0200 3e00 4200 4200 3f00 0000 0000 0000 0000 ENDCHAR STARTCHAR division ENCODING 157 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 1800 1800 0000 7e00 0000 1800 1800 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR fm ENCODING 158 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 7f00 7f00 0000 0c00 0c00 0000 0000 0c00 0c00 1800 3000 0000 0000 0000 ENDCHAR STARTCHAR dup ENCODING 159 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 7f00 7f00 0000 0800 4900 2a00 1400 2a00 4900 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR A ENCODING 160 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0800 1400 2200 4100 4100 7f00 4100 4100 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR B ENCODING 161 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 7c00 2200 2100 2200 3c00 2200 2100 2200 7c00 0000 0000 0000 0000 ENDCHAR STARTCHAR C ENCODING 162 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0e00 1100 2000 4000 4000 4000 2000 1100 0e00 0000 0000 0000 0000 ENDCHAR STARTCHAR D ENCODING 163 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 7c00 2200 2100 2100 2100 2100 2100 2200 7c00 0000 0000 0000 0000 ENDCHAR STARTCHAR E ENCODING 164 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 7f00 4000 4000 4000 7c00 4000 4000 4000 7f00 0000 0000 0000 0000 ENDCHAR STARTCHAR F ENCODING 165 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 7f00 4000 4000 4000 7e00 4000 4000 4000 4000 0000 0000 0000 0000 ENDCHAR STARTCHAR G ENCODING 166 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 1c00 2200 4000 4000 4000 4f00 4200 2200 1e00 0000 0000 0000 0000 ENDCHAR STARTCHAR H ENCODING 167 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 4100 4100 4100 4100 7f00 4100 4100 4100 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR I ENCODING 168 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 1c00 0800 0800 0800 0800 0800 0800 0800 1c00 0000 0000 0000 0000 ENDCHAR STARTCHAR J ENCODING 169 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0e00 0400 0400 0400 0400 0400 4400 4400 3800 0000 0000 0000 0000 ENDCHAR STARTCHAR K ENCODING 170 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 4100 4200 4400 4800 5000 6800 4400 4200 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR L ENCODING 171 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 4000 4000 4000 4000 4000 4000 4000 4000 7f00 0000 0000 0000 0000 ENDCHAR STARTCHAR M ENCODING 172 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 4100 6300 5500 4900 4900 4100 4100 4100 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR N ENCODING 173 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 4100 6100 5100 4900 4500 4300 4100 4100 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR O ENCODING 174 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 3e00 4100 4100 4100 4100 4100 4100 4100 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR P ENCODING 175 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 7c00 4200 4100 4100 4200 7c00 4000 4000 4000 0000 0000 0000 0000 ENDCHAR STARTCHAR Q ENCODING 176 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 1c00 2200 4100 4100 4100 4100 4900 2a00 1c00 0200 0100 0000 0000 ENDCHAR STARTCHAR R ENCODING 177 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 7e00 4100 4100 4100 7e00 4800 4400 4200 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR S ENCODING 178 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 3e00 4100 4000 3000 0800 0600 0100 4100 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR T ENCODING 179 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 7f00 0800 0800 0800 0800 0800 0800 0800 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR U ENCODING 180 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 4100 4100 4100 4100 4100 4100 4100 4100 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR V ENCODING 181 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 4100 4100 2200 2200 2200 1400 1400 0800 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR W ENCODING 182 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 4100 4100 4100 4100 4900 4900 4900 5500 2200 0000 0000 0000 0000 ENDCHAR STARTCHAR X ENCODING 183 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 4100 4100 2200 1400 0800 1400 2200 4100 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR Y ENCODING 184 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 4100 2200 1400 0800 0800 0800 0800 0800 0800 0000 0000 0000 0000 ENDCHAR STARTCHAR Z ENCODING 185 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 7f00 0100 0200 0400 0800 1000 2000 4000 7f00 0000 0000 0000 0000 ENDCHAR STARTCHAR AE ENCODING 186 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0f00 1400 2400 4400 4700 7c00 4400 4400 4700 0000 0000 0000 0000 ENDCHAR STARTCHAR Ooblique ENCODING 187 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 3e00 4100 4300 4500 4900 5100 6100 4100 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR Aring ENCODING 188 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 1c00 1c00 0800 1400 2200 4100 4100 7f00 4100 4100 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR Ccedilla ENCODING 189 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0e00 1100 2000 4000 4000 4000 2000 1100 0e00 0400 3c00 0000 0000 ENDCHAR STARTCHAR semicolon ENCODING 190 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0c00 0c00 0000 0000 0c00 0c00 1800 3000 0000 0000 ENDCHAR STARTCHAR asterisk ENCODING 191 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0800 4900 2a00 1400 2a00 4900 0800 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c0 ENCODING 192 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c1 ENCODING 193 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c2 ENCODING 194 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c3 ENCODING 195 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c4 ENCODING 196 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c5 ENCODING 197 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c6 ENCODING 198 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c7 ENCODING 199 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c8 ENCODING 200 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c9 ENCODING 201 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ca ENCODING 202 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR cb ENCODING 203 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR cc ENCODING 204 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR cd ENCODING 205 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ce ENCODING 206 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR cf ENCODING 207 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR copyright ENCODING 208 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 3e00 4100 4900 5500 5100 5500 4900 4100 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR registered ENCODING 209 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 3e00 4100 5900 5500 5900 5500 5500 4100 3e00 0000 0000 0000 0000 ENDCHAR STARTCHAR boxA ENCODING 210 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 2000 5000 8800 8800 f800 8800 8800 0000 ff80 8080 8080 ff80 0000 0000 0000 ENDCHAR STARTCHAR insert ENCODING 211 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0800 1c00 3e00 7700 e380 c180 8080 0000 0000 0000 0000 ENDCHAR STARTCHAR boxB ENCODING 212 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0f00 0480 0480 0700 0480 0480 0f00 0000 ff80 8080 8080 ff80 0000 0000 0000 ENDCHAR STARTCHAR box6 ENCODING 213 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 ff80 8080 9080 a080 a080 ac80 b280 a280 9c80 8080 ff80 0000 0000 ENDCHAR STARTCHAR plusminus ENCODING 214 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 0800 0800 7f00 0800 0800 0800 0000 7f00 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ETH ENCODING 215 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 7c00 2200 2100 2100 7900 2100 2100 2200 7c00 0000 0000 0000 0000 ENDCHAR STARTCHAR rightarrow ENCODING 216 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0400 0600 ff00 0600 0400 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR THORN ENCODING 217 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 4000 4000 7c00 4200 4100 4200 7c00 4000 4000 0000 0000 0000 0000 ENDCHAR STARTCHAR upshift ENCODING 218 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 1400 2200 4100 7700 1400 1400 1400 1400 1400 1c00 0000 0000 0000 ENDCHAR STARTCHAR human ENCODING 219 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1c00 1400 1c00 0800 7f00 0800 0800 1400 2200 4100 0000 0000 0000 0000 ENDCHAR STARTCHAR underB ENCODING 220 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 3c00 1200 1200 1c00 1200 1200 3c00 0000 ff80 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR downshift ENCODING 221 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1c00 1400 1400 1400 1400 1400 7700 4100 2200 1400 0800 0000 0000 0000 ENDCHAR STARTCHAR boxquestion ENCODING 222 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 ff80 8080 9c80 a280 a280 8280 8480 8880 8880 8080 8880 8080 ff80 0000 0000 ENDCHAR STARTCHAR boxsolid ENCODING 223 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 0000 0000 ENDCHAR STARTCHAR e0 ENCODING 224 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e1 ENCODING 225 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e2 ENCODING 226 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e3 ENCODING 227 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e4 ENCODING 228 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e5 ENCODING 229 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e6 ENCODING 230 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e7 ENCODING 231 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e8 ENCODING 232 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e9 ENCODING 233 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ea ENCODING 234 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR eb ENCODING 235 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ec ENCODING 236 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ed ENCODING 237 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ee ENCODING 238 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ef ENCODING 239 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR badcommhi ENCODING 240 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 8000 c000 e000 7000 3800 ff80 0e00 0700 0380 0180 0080 0000 0000 0000 ENDCHAR STARTCHAR commhi ENCODING 241 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 ff80 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR commjag ENCODING 242 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 fc00 0800 1000 2000 7f80 0000 0000 0000 0000 ENDCHAR STARTCHAR commlo ENCODING 243 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ff80 0000 0000 0000 0000 ENDCHAR STARTCHAR clockleft ENCODING 244 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0100 0800 0000 2000 0000 0080 4100 0100 0100 2100 0100 0800 0100 0000 ENDCHAR STARTCHAR clockright ENCODING 245 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 2000 0000 2800 4000 8000 0400 0000 0000 0800 0000 2000 0000 0000 0000 ENDCHAR STARTCHAR lock ENCODING 246 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 8080 c180 e380 f780 7f00 3e00 3e00 7f00 f780 e380 c180 8080 0000 0000 0000 ENDCHAR STARTCHAR eth ENCODING 247 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0a00 0400 0a00 0200 1e00 2200 4200 4200 4200 2200 1c00 0000 0000 0000 0000 ENDCHAR STARTCHAR leftarrow ENCODING 248 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 1000 3000 7f80 3000 1000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR thorn ENCODING 249 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 4000 4000 4000 7800 4400 4200 4200 4200 4400 7800 4000 4000 4000 0000 ENDCHAR STARTCHAR keyleft ENCODING 250 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0e00 1100 1180 1100 0e00 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR keyright ENCODING 251 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 ff80 1d80 1d80 0180 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR box4 ENCODING 252 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 ff80 8080 8480 8c80 9480 a480 be80 8480 8480 8080 ff80 0000 0000 ENDCHAR STARTCHAR underA ENCODING 253 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0800 1400 2200 2200 3e00 2200 2200 0000 ff80 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR magcard ENCODING 254 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 ff80 8080 8080 8080 ff80 8080 ff80 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR boxhuman ENCODING 255 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 ff80 8080 9c80 9480 9c80 8880 ff80 8880 8880 9480 a280 c180 ff80 0000 0000 ENDCHAR STARTCHAR apl_space ENCODING 272 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR apl_bracketright ENCODING 316 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1c00 0400 0400 0400 0400 0400 0400 0400 0400 0400 1c00 0000 0000 0000 ENDCHAR STARTCHAR apl_bracketleft ENCODING 328 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1c00 1000 1000 1000 1000 1000 1000 1000 1000 1000 1c00 0000 0000 0000 ENDCHAR STARTCHAR apl_stile ENCODING 347 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR apl_2vertical ENCODING 384 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 4100 4100 4100 4100 4100 4100 4100 4100 4100 4100 4100 4100 4100 4100 4100 4100 ENDCHAR STARTCHAR apl_2horizontal ENCODING 385 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 ff80 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ff80 0000 ENDCHAR STARTCHAR apl_leftvbar ENCODING 386 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 4000 ENDCHAR STARTCHAR apl_rightvbar ENCODING 387 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 ENDCHAR STARTCHAR apl_midvbar ENCODING 388 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR apl_leftsolid ENCODING 393 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP f800 f800 f800 f800 f800 f800 f800 f800 f800 f800 f800 f800 f800 f800 f800 f800 ENDCHAR STARTCHAR apl_rightsolid ENCODING 394 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0f80 0f80 0f80 0f80 0f80 0f80 0f80 0f80 0f80 0f80 0f80 0f80 0f80 0f80 0f80 0f80 ENDCHAR STARTCHAR apl_topsolid ENCODING 395 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR apl_bottomsolid ENCODING 396 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ENDCHAR STARTCHAR apl_solid ENCODING 397 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ff80 ENDCHAR STARTCHAR apl_midhbar ENCODING 402 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 ff80 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR apl_lowerleft ENCODING 419 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 0f80 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR apl_upperleft ENCODING 420 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0f80 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR apl_leftjoin ENCODING 421 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 0f80 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR apl_bottomjoin ENCODING 422 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 ff80 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR apl_intersect ENCODING 427 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 ff80 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR apl_lowerright ENCODING 428 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 f800 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR apl_upperright ENCODING 429 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 f800 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR apl_rightjoin ENCODING 430 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 f800 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR apl_topjoin ENCODING 431 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 ff80 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR dec_solid ENCODING 512 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 3e00 3e00 3e00 3e00 3e00 3e00 3e00 3e00 3e00 3e00 3e00 3e00 3e00 3e00 3e00 3e00 ENDCHAR STARTCHAR dec_filled_circle ENCODING 513 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 1c00 3e00 3e00 3e00 1c00 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_halftone_block ENCODING 514 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP aa80 5500 aa80 5500 aa80 5500 aa80 5500 aa80 5500 aa80 5500 aa80 5500 aa80 5500 ENDCHAR STARTCHAR dec_ht ENCODING 515 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 4800 4800 7800 4800 4800 4800 0000 1f00 0400 0400 0400 0400 0400 0000 0000 ENDCHAR STARTCHAR dec_ff ENCODING 516 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 7800 4000 7000 4000 4000 4000 0000 0f00 0800 0e00 0800 0800 0800 0000 0000 ENDCHAR STARTCHAR dec_cr ENCODING 517 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 3000 4800 4000 4000 4800 3000 0000 0e00 0900 0e00 0900 0900 0900 0000 0000 ENDCHAR STARTCHAR dec_lf ENCODING 518 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 4000 4000 4000 4000 4000 7800 0000 0f00 0800 0e00 0800 0800 0800 0000 0000 ENDCHAR STARTCHAR dec_degree ENCODING 519 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 1800 2400 2400 1800 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_plusminus ENCODING 520 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0800 0800 0800 7f00 0800 0800 0800 0000 7f00 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_nl ENCODING 521 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 4800 6800 5800 4800 4800 4800 0000 0800 0800 0800 0800 0800 0f00 0000 0000 ENDCHAR STARTCHAR dec_vt ENCODING 522 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 4400 4400 4400 2800 2800 1000 0000 1f00 0400 0400 0400 0400 0400 0000 0000 ENDCHAR STARTCHAR dec_lowerright ENCODING 523 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 f800 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_upperright ENCODING 524 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 f800 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR dec_upperleft ENCODING 525 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0f80 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR dec_lowerleft ENCODING 526 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 0f80 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_intersect ENCODING 527 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 ff80 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR dec_hbar1 ENCODING 528 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 ff80 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_hbar2 ENCODING 529 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 ff80 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_hbar3 ENCODING 530 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 ff80 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_hbar4 ENCODING 531 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ff80 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_hbar5 ENCODING 532 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ff80 0000 0000 ENDCHAR STARTCHAR dec_leftjoin ENCODING 533 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 0f80 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR dec_rightjoin ENCODING 534 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 f800 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR dec_bottomjoin ENCODING 535 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 ff80 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_topjoin ENCODING 536 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 0000 ff80 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR dec_vbar ENCODING 537 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR dec_notgreater ENCODING 538 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0200 0400 0800 1000 2000 1000 0800 0400 0200 0000 3e00 0000 0000 ENDCHAR STARTCHAR dec_notless ENCODING 539 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 2000 1000 0800 0400 0200 0400 0800 1000 2000 0000 3e00 0000 0000 ENDCHAR STARTCHAR dec_pi ENCODING 540 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 7f00 2200 2200 2200 2200 2200 2200 2200 4200 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_notequal ENCODING 541 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0100 0200 7f00 0800 7f00 1000 2000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_sterling ENCODING 542 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0c00 1200 1000 1000 7c00 1000 1000 1000 7100 6e00 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_periodcentered ENCODING 543 SWIDTH 563 0 DWIDTH 9 0 BBX 9 16 0 -4 BITMAP 0000 0000 0000 0000 0000 0000 1800 1800 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR ENDFONT ibm-3270-3.3.10ga4/x3270/main.c0000644000175000017500000006017011254565667015056 0ustar bastianbastian/* * Copyright (c) 1993-2009, Paul Mattes. * Copyright (c) 1990, Jeff Sparkes. * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA * 30332. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR GTRC BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * main.c * A 3270 Terminal Emulator for X11 * Main proceudre. */ #include "globals.h" #include #include #include #include #include #include #include "appres.h" #include "3270ds.h" #include "resources.h" #include "actionsc.h" #include "ansic.h" #include "charsetc.h" #include "ctlrc.h" #include "ftc.h" #include "hostc.h" #include "idlec.h" #include "keymapc.h" #include "kybdc.h" #include "macrosc.h" #include "menubarc.h" #include "popupsc.h" #include "printerc.h" #include "resourcesc.h" #include "savec.h" #include "screenc.h" #include "selectc.h" #include "statusc.h" #include "telnetc.h" #include "togglesc.h" #include "trace_dsc.h" #include "utilc.h" /* Externals */ #if defined(USE_APP_DEFAULTS) /*[*/ extern const char *app_defaults_version; #endif /*]*/ /* Globals */ const char *programname; Display *display; int default_screen; Window root_window; int screen_depth; Widget toplevel; XtAppContext appcontext; Atom a_delete_me, a_save_yourself, a_3270, a_registry, a_encoding, a_state; char full_model_name[13] = "IBM-"; char *model_name = &full_model_name[4]; Pixmap gray; XrmDatabase rdb; AppRes appres; int children = 0; Boolean exiting = False; char *user_title = CN; /* Statics */ static void peek_at_xevent(XEvent *); static XtErrorMsgHandler old_emh; static void trap_colormaps(String, String, String, String, String *, Cardinal *); static Boolean colormap_failure = False; #if defined(LOCAL_PROCESS) /*[*/ static void parse_local_process(int *argcp, char **argv, char **cmds); #endif /*]*/ static int parse_model_number(char *m); static void parse_set_clear(int *, char **); static void label_init(void); static void sigchld_handler(int); static char *user_icon_name = CN; XrmOptionDescRec options[]= { { OptActiveIcon,DotActiveIcon, XrmoptionNoArg, ResTrue }, { OptAplMode, DotAplMode, XrmoptionNoArg, ResTrue }, #if defined(HAVE_LIBSSL) /*[*/ { OptCertFile, DotCertFile, XrmoptionSepArg, NULL }, #endif /*]*/ { OptCharClass, DotCharClass, XrmoptionSepArg, NULL }, { OptCharset, DotCharset, XrmoptionSepArg, NULL }, { OptClear, ".xxx", XrmoptionSkipArg, NULL }, { OptColorScheme,DotColorScheme,XrmoptionSepArg, NULL }, #if defined(X3270_TRACE) /*[*/ { OptDsTrace, DotDsTrace, XrmoptionNoArg, ResTrue }, #endif /*]*/ { OptEmulatorFont,DotEmulatorFont,XrmoptionSepArg, NULL }, { OptExtended, DotExtended, XrmoptionNoArg, ResTrue }, { OptIconName, ".iconName", XrmoptionSepArg, NULL }, { OptIconX, ".iconX", XrmoptionSepArg, NULL }, { OptIconY, ".iconY", XrmoptionSepArg, NULL }, { OptKeymap, DotKeymap, XrmoptionSepArg, NULL }, { OptKeypadOn, DotKeypadOn, XrmoptionNoArg, ResTrue }, { OptM3279, DotM3279, XrmoptionNoArg, ResTrue }, { OptModel, DotModel, XrmoptionSepArg, NULL }, { OptMono, DotMono, XrmoptionNoArg, ResTrue }, { OptNoScrollBar,DotScrollBar, XrmoptionNoArg, ResFalse }, { OptOnce, DotOnce, XrmoptionNoArg, ResTrue }, { OptOversize, DotOversize, XrmoptionSepArg, NULL }, { OptPort, DotPort, XrmoptionSepArg, NULL }, #if defined(X3270_PRINTER) /*[*/ { OptPrinterLu, DotPrinterLu, XrmoptionSepArg, NULL }, #endif /*]*/ { OptProxy, DotProxy, XrmoptionSepArg, NULL }, { OptReconnect, DotReconnect, XrmoptionNoArg, ResTrue }, { OptSaveLines, DotSaveLines, XrmoptionSepArg, NULL }, { OptScripted, DotScripted, XrmoptionNoArg, ResTrue }, { OptScrollBar, DotScrollBar, XrmoptionNoArg, ResTrue }, { OptSet, ".xxx", XrmoptionSkipArg, NULL }, #if defined(X3270_SCRIPT) /*[*/ { OptSocket, DotSocket, XrmoptionNoArg, ResTrue }, { OptScriptPort,DotScriptPort, XrmoptionSepArg, NULL }, #endif /*]*/ { OptTermName, DotTermName, XrmoptionSepArg, NULL }, #if defined(X3270_TRACE) /*[*/ { OptTraceFile, DotTraceFile, XrmoptionSepArg, NULL }, { OptTraceFileSize,DotTraceFileSize,XrmoptionSepArg, NULL }, #endif /*]*/ #if defined(X3270_DBCS) /*[*/ { OptInputMethod,DotInputMethod,XrmoptionSepArg, NULL }, { OptPreeditType,DotPreeditType,XrmoptionSepArg, NULL }, #endif /*]*/ { OptV, DotV, XrmoptionNoArg, ResTrue }, { OptVersion, DotV, XrmoptionNoArg, ResTrue }, { "-xrm", NULL, XrmoptionResArg, NULL } }; int num_options = XtNumber(options); static struct { char *opt; char *args; char *help; } option_help[] = { { OptActiveIcon, CN, "Make icon a miniature of the display" }, { OptAplMode, CN, "Turn on APL mode" }, #if defined(HAVE_LIBSSL) /*[*/ { OptCertFile, "", "Specify OpenSSL certificate file" }, #endif /*]*/ { OptCharClass, "", "Define characters for word boundaries" }, { OptCharset, "", "Use host EBCDIC character set (code page) " }, { OptClear, "", "Turn on " }, { OptColorScheme, "", "Use color scheme " }, #if defined(X3270_TRACE) /*[*/ #endif /*]*/ { OptEmulatorFont, "", "Font for emulator window" }, { OptExtended, CN, "Extended 3270 data stream (deprecated)" }, { OptIconName, "", "Title for icon" }, { OptIconX, "", "X position for icon" }, { OptIconY, "", "Y position for icon" }, { OptKeymap, "[,...]", "Keyboard map name(s)" }, { OptKeypadOn, CN, "Turn on pop-up keypad at start-up" }, { OptM3279, CN, "3279 emulation (deprecated)" }, { OptModel, "[327{8,9}-]", "Emulate a 3278 or 3279 model " }, { OptMono, CN, "Do not use color" }, { OptNoScrollBar, CN, "Disable scroll bar" }, { OptOnce, CN, "Exit as soon as the host disconnects" }, { OptOversize, "x", "Specify larger screen" }, { OptPort, "", "Specify default TELNET port" }, #if defined(X3270_PRINTER) /*[*/ { OptPrinterLu, "", "Automatically start a pr3287 printer session to " }, #endif /*]*/ { OptProxy, ":[:]", "Secify proxy type and server" }, { OptReconnect, CN, "Reconnect to host as soon as it disconnects" }, { OptSaveLines, "", "Number of lines to save for scroll bar" }, { OptScripted, CN, "Accept commands on standard input" }, { OptScrollBar, CN, "Turn on scroll bar" }, { OptSet, "", "Turn on " }, #if defined(X3270_SCRIPT) /*[*/ { OptSocket, CN, "Create socket for script control" }, { OptScriptPort, "", "Listen on TCP port for script connections" }, #endif /*]*/ { OptTermName, "", "Send as TELNET terminal name" }, #if defined(X3270_TRACE) /*[*/ { OptDsTrace, CN, "Enable tracing" }, { OptTraceFile, "", "Write traces to " }, { OptTraceFileSize, "[KM]", "Limit trace file to bytes" }, #endif /*]*/ #if defined(X3270_DBCS) /*[*/ { OptInputMethod, "", "Specify multi-byte input method" }, { OptPreeditType, "

x3270 Resources

Resources are used to configure x3270. Resources are named items with string, integer or Boolean values.

Resource definitions come from the following sources:

  • Default values are compiled into x3270.
  • Standard X11 methods can be used to override the compiled-in defaults. These methods include:
    • The x3270 app-defaults file (only if x3270 is built with app-defaults support). This can be a locale-specific or generic app-defaults file located in the user's home directory or in the system X11 directory.
    • Definitions set by the xrdb command.
    • The ~/.Xdefaults file.
  • If a session file foo.x3270 is specified on the command line, its contents are applied. Otherwise, if the x3270 profile (~/.x3270pro) exists, it is read and its contents are applied. These definitions override resource values defined by X11 methods and compiled-in defaults.
  • Command-line options override all other resource definitions. If more than one command-line option sets a resource, the last one is used.
Many resources have their own command-line switches, which are listed below. Those that do not can still be set from the command-line via the -xrm command-line option. For example the x3270.bsdTm resource can be set by the following command-line option:
     -xrm 'x3270.bsdTm: true'
 
Note that -xrm is supported on all of the 3270 emulators, not just on x3270.

Resource File Syntax

A resource file (app-defaults file, profile or session file) has the following syntax.
  • Each definition consists of:
        x3270.resource-name: value
      
  • Comment lines begin with !.
  • Line continuation is indicated by a backshash (\) character at the end of a line.
  • Multi-line resources, such as keymap definitions, are split with newline characters, e.g.:
        x3270.keymap.foo: \
          <Key>a: String("bob") \n\
          <Key>b: String("fred") \n\
          <Key>c: String("joe")
      

Alphabetical Resource List

Name: x3270.activeIcon
Type: Boolean
Default: false
Command Line: -activeicon
Description:

When true, x3270's icon becomes a live miniature of the screen display.

Name: x3270.aidWait
Type: Boolean
Default: false
Command Line: -set aidWait , -clear aidWait
Description:

When true, x3270 will not block a script after executing an AID action (Enter, Clear, PF or PA). It is then script's responsibility to poll x3270's status until it shows that the keyboard is no longer unlocked.

Name: x3270.allowResize
Type: Boolean
Default: true
Description:

When true, the x3270 window can be resized by the mouse (actually, by the window manager). When false, the window can only be resized from menu options. The purpose of disabling mouse resizing is to allow a window bigger than will fit on the screen, which some window managers (e.g., mwm) will not allow if permitted to resize it.

Name: x3270.altCursor
Type: Boolean
Default: false
Command Line: -set altCursor , -clear altCursor
Option: Options -> Toggles -> Underline Cursor
Option: Options -> Toggles -> Block Cursor
Description:

When true, this causes x3270 to use the alternate (underscore) cursor. When false, it will use a block cursor.

Name: x3270.aplMode
Type: Boolean
Default: false
Command Line: -apl
Description:

Enables x3270 APL mode. APL mode appends apl to the list of names in x3270.keymap (causing the Alt key plus many alphanumeric keys to produce basic APL symbols), sets x3270.composeMap to apl (allowing Compose key sequences to construct complex APL symbols), and sets x3270.charset to apl (allowing the display of APL symbols using several of the 3270 fonts).

Name: x3270.background
Type: String
Default: white
Command Line: -bg , -rv
Description:

The background color for menus, buttons, and on monochrome X11 displays, the emulator window.

Name: x3270.bellVolume
Type: Integer
Description:

Controls the volume used when ringing the terminal bell. The value ranges from -100 (silent) through 0 (normal) to +100 (loud). Not all X11 servers can vary the bell volume, other than turning it on and off. This resource can be overridden by x3270.visualBell, which if true, will replace the bell with a flash of the screen.

Name: x3270.blankFill
Type: Boolean
Default: false
Command Line: -set blankFill , -clear blankFill
Option: Options -> Toggles -> Blank Fill
Description:

When true, in 3270 mode x3270 will automatically convert trailing blanks in a field to NULLs in order to insert a character, and will automatically convert leading NULLs to blanks so that input data is not squeezed to the left. This works around some of the quirkier behavior of real 3270 terminals.

Name: x3270.boldColor
Type: String
Default: green
Description:

This resource defines the X11 color used to display intensified text in 3278 mode.

Previous versions of x3270 implemented something called pseudo-color mode, where a monochrome (3278) terminal was emulated with various colors assigned to different kinds of fields. To emulate pseudo-color mode with the current version of x3270, select 3278 emulation with x3270.model, set x3270.inputColor to orange and set x3270.boldColor to cyan.

Name: x3270.bsdTm
Type: Boolean
Default: false
Description:

Defines x3270's response to the TELNET DO TIMING MARK option. When set to false, x3270 will respond to DO TIMING MARK with WONT TIMING MARK, which is consistent with most modern TELNET clients. When true, x3270 will respond with WILL TIMING MARK, which is consistent with the old BSD telnet command and with previous versions of x3270. In either case, x3270 will never respond to a DONT TIMING MARK option.

Name: x3270.certFile
Type: String
Command Line: -certfile
Description:

Gives the name of a certificate file, used by the OpenSSL library.

Name: x3270.charClass
Type: String
Description:

Defines groups of characters that should be treated the same when doing cut and paste of words. Identical in use to the xterm resource of the same name.

Name: x3270.charset
Type: String
Default: bracket
Command Line: -charset
Option: Options -> Character Set
Description:

This defines the host EBCDIC character set, that is, what glyph (image) is displayed for each EBCDIC code sent by the host, and what EBCDIC code is sent to the host for each character typed on the keyboard. This is more correctly referred to as the host code page.

To display the character sets supported by x3270, use the -v command-line option.

Name: x3270.charsetList
Type: String
Description:

Defines the Options -> Character Set menu. Can contain '>' characters to define a menu hierarchy.

See the file X3270.xad for an example.

Name: x3270.color8
Type: Boolean
Default: false
Description:

If true, x3270 will respond to a Query(Color) with a list of 8 supported colors. If false, it will send a list of 16 colors. The 8-color setting is required for some hosts which abort a session if 16 colors are reported.

Name: x3270.colorBackground
Type: String
Default: black
Description:

The background color for the emulator window. This resource is used only on color X11 displays when x3270.model specifies 3278 mode. On monochrome X11 displays, the background color is white, unless -rv (reverse video) is selected on the command line; in 3279 mode, the screen background is determined by x3270.colorScheme.

Name: x3270.colorScheme
Type: String
Default: default
Option: Options -> Color Scheme
Description:

Defines the colors used to paint the emulator window in 3279 (full-color) mode. This resource is used only when x3270.model specifies a 3279 display. x3270.colorScheme is just the name of the color scheme. The actual color scheme definition for color scheme foo is x3270.colorScheme.foo.

Name: x3270.colorScheme.foo
Type: String
Description:

An individual color scheme definition. I.e., to define color scheme foo, a resource named x3270.colorScheme.foo must be defined.

Each resource is a whitespace-separated list of 23 items:

  1. X11 color for host color 0 NeutralBlack (also used for NVT color 0)
  2. X11 color for host color 1 Blue (also used for NVT color 4)
  3. X11 color for host color 2 Red (also used for NVT color 1)
  4. X11 color for host color 3 Pink (also used for NVT color 5)
  5. X11 color for host color 4 Green (also used for NVT color 2)
  6. X11 color for host color 5 Turquoise
  7. X11 color for host color 6 Yellow (also used for NVT color 3)
  8. X11 color for host color 7 NeutralWhite
  9. X11 color for host color 8 Black
  10. X11 color for host color 9 DeepBlue
  11. X11 color for host color 10 Orange
  12. X11 color for host color 11 Purple
  13. X11 color for host color 12 PaleGreen
  14. X11 color for host color 13 PaleTurquoise (also used for NVT color 6)
  15. X11 color for host color 14 Grey
  16. X11 color for host color 15 white (also used for NVT color 7)
  17. X11 color to use if one of 0..15 cannot be allocated (white or black)
  18. X11 color to use as the default screen background
  19. X11 color to use as the select background
  20. Host color (0..15) for unprotected, unhighlighted fields
  21. Host color (0..15) for unprotected, highlighted fields
  22. Host color (0..15) for protected, unhighlighted fields
  23. Host color (0..15) for protected, highlighted fields

Note: Host color 0 (NeutralBlack) means black on a display screen (a white-on-black device) and white on a printer (a black-on-white device). Host color 7 (NeutralWhite) means white on a display screen and black on a printer.

Name: x3270.composeMap
Type: String
Default: latin1
Description:

Gives the name of the map used to define the pairs of characters that form composite characters with the Compose key. The definition of compose map foo is the resource x3270.composeMap.foo.

Name: x3270.composeMap.foo
Type: String
Description:

An individual compose map definition. Each line in the resource is of the form:

         keysym1 + keysym2 = keysym3
Name: x3270.confDir
Type: String
Default: /usr/local/etc/x3270
Description:

Defines the x3270 configuration directory, where x3270 will search for the ibm_hosts file by default. (See x3270.hostsFile.)

Name: x3270.connectFileName
Type: String
Default: ~/.x3270connect
Description:

Gives the name of the file to store the recently-connected host list in. If given the value none, no file will be read or written. Note that by default, this file is shared among all instances of x3270 that run under the same username.

Name: x3270.crosshair
Type: Boolean
Default: false
Command Line: -set crosshair , -clear crosshair
Option: Options -> Toggles -> Crosshair Cursor
Description:

When true, causes x3270 to display a crosshair over the cursor: lines extending with height and width of the screen.

Name: x3270.cursorBlink
Type: Boolean
Default: false
Command Line: -set cursorBlink , -clear cursorBlink
Option: Options -> Toggles -> Blinking Cursor
Description:

When true, causes x3270 to use a blinking cursor.

Name: x3270.cursorColor
Type: String
Default: red
Description:

On color X11 displays, this is the color of the text cursor. This resource is used only if x3270.useCursorColor is true.

Name: x3270.cursorPos
Type: Boolean
Default: true
Command Line: -set cursorPos , -clear cursorPos
Option: Options -> Toggles -> Track Cursor
Description:

When true, causes x3270 to display the cursor location in the OIA (the status line).

Name: x3270.dbcsCgcsgid
Type: String
Description:

Overrides the compiled-in value of the CGCSGID for the current host character set, which will be reported to the host in response to a Query(Character Sets). The value is an integer, which can be prefixed with '0x' to be in hexadecimal. The upper 16 bits are the GCSGID (character set) and the lower 16 bits are the CPGID (code page). This value applies only to the double-byte (DBCS) character set. Use x3270.sbcsCgcsgid for the single-byte (SBCS) character set.

Name: x3270.debugTracing
Type: Boolean
Default: true
Description:

If true, options are available on the File menu to trace the 3270 data stream and X11 events. If false, these options are not displayed.

Name: x3270.dftBufferSize
Type: Integer
Default: 4096
Description:

Specifies the default buffer size for DFT IND$FILE file transfers. This value can be overridden in the File Transfer dialog and by a parameter to the Transfer action.

Name: x3270.disconnectClear
Type: Boolean
Default: false
Description:

If true, x3270 will clear the screen when a host disconnects.

Name: x3270.doConfirms
Type: Boolean
Default: true
Description:

When true, x3270 will display a pop-up to report successful completion of certain operations, such as screen printing. When false, these pop-ups are not displayed.

Name: x3270.dsTrace
Type: Boolean
Default: false
Command Line: -trace , -set dsTrace , -clear dsTrace
Option: File -> Trace Data Stream
Description:

When true, x3270 writes a hexadecimal representation of all network traffic (and its interpretation) into a file, which defaults to /tmp/x3trc.pid. It also pops up a window to watch the file as it is created, with the pathname of the file as the window title. The command run in the window is defined by x3270.traceCommand. The directory prefix is defined by x3270.traceDir. If x3270.traceFile is defined, it gives the entire pathname and x3270.traceDir is ignored.

Name: x3270.emulatorFont
Type: String
Default: 3270
Command Line: -efont
Option: Options -> Font
Description:

The font used for the emulator window. By default it is 3270, a 14-pixel clone of a real 3278 display font. Other 3270-specific fonts are available in 8-, 12-, 16-, 24- and 32-pixel sizes. Any standard X11 constant-spaced font can also be used, provided that it implements a display character set compatible with the host code page (x3270.charset). However, the special OIA (status line) symbols are only available with the 3270 fonts.

Name: x3270.emulatorFontList.foo
Type: String
Description:

A list of fonts for display character set foo. This list will be presented by the Options -> Font menu when the host code page (x3270.charset) requires display character set foo.

The list can include '>' characters to present a hierarchy of options.

See the file X3270.xad for an example.

Name: x3270.eof
Type: String
Default: ^D
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when x3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current line of input to be forwarded to the host without a trailing CR/LF sequence.

Name: x3270.erase
Type: String
Default: ^?
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (x3270 gathers a line of input before forwarding it ot the host), entering this character at the keyboard will cause x3270 to discard the last character on the input line.

When connected in character-at-a-time mode (x3270 sends each keystroke to the host as it is entered), this is the character that will be sent to the host by the Erase action.

Name: x3270.eventTrace
Type: Boolean
Default: false
Command Line: -set eventTrace , -clear eventTrace
Option: File -> Trace Keyboard/Mouse Events
Description:

When true, x3270 traces information about keyboard and mouse events into a file. The default file name is /tmp/x3trc.pid. It also pops up a window to watch the file as it is created, with the pathname of the file as the window title. The command run in the window is defined by x3270.traceCommand. The directory prefix is defined by x3270.traceDir. If x3270.traceFile is defined, it gives the entire pathname and x3270.traceDir is ignored.

Name: x3270.extended
Type: Boolean
Default: false
Command Line: -extended
Description:

Deprecated resource -- replaced by x3270.model syntax

Indicates support for the 3270 Extended Data Stream.

Name: x3270.fixedSize
Type: String
Description:

Specifies a fixed size for the x3270 display window. If set, x3270 will not allow its window to be resized by the window manager. The syntax is widthxheight. The 3270 display screen will float in the center of the window if necessary.

Name: x3270.foreground
Type: String
Default: black
Command Line: -fg , -rv
Description:

The foreground color for menus, buttons, and on monochrome X11 displays, the emulator display.

Name: x3270.highlightBold
Type: Boolean
Default: false
Description:

If true, highlighted fields will be displayed in bold. If false, highlighted fields will be displayed in the normal font.

Name: x3270.hostname
Type: String
Description:

Gives the name of the host to connect to. The name can include the usual options (prefixes to specify special connection options, LU names, and port). A hostname specified on the command line takes precedence over x3270.hostName.

The most common use of x3270.hostName is in session files, where a file is used to pass all of the options to establish a x3270 session.

Name: x3270.hostsFile
Type: String
Default: /usr/local/etc/x3270/ibm_hosts
Description:

The pathname of a file listing the host names that appear on the File -> Connect menu. The file can also be used to create hostname aliases and to define a set of actions to perform when connecting to a host.

The format of the file is explained on the ibm_hosts manual page. The default pathname is actually ibm_hosts in the directory defined by x3270.confDir.

Name: x3270.iconFont
Type: String
Default: nil2
Description:

The font used to paint the text inside the active icon (see x3270.activeIcon). The default of nil2 is a one-by-two pixel font that produces a "greeked" picture of the screen image.

Name: x3270.iconLabelFont
Type: String
Default: 8x13
Description:

When x3270.activeIcon and x3270.labelIcon are true, this is the name of the font used to paint the icon label.

Name: x3270.icrnl
Type: Boolean
Default: true
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. It controls whether input carriage returns are mapped to newlines.

Name: x3270.idleCommand
Type: String
Description:

When x3270.idleCommand is defined, it specifies a command to execute after a period of keyboard inactivity (no AID keys pressed). The x3270.idleCommand can be an arbitrary sequence of x3270 actions, but it should include an action which generates an AID (Enter, Clear, PF or PA). x3270.idleCommandEnabled must be true in order for the x3270.idleCommand to take effect. (This is so an idle command can be defined, but needs to be enabled explicitly at some point after login.) x3270.idleTimeout specifies the inactivity interval.

Name: x3270.idleCommandEnabled
Type: Boolean
Default: false
Description:

Controls whether x3270.idleCommand has effect as soon as a host session is established. (This is so an idle command can be defined, but needs to be explicitly enabled at some point after login.)

Name: x3270.idleTimeout
Type: String
Default: ~7m
Description:

The timeout value for x3270.idleCommand. If the value ends in h, it specifies hours; if it ends in m it specifies minutes; if it ends in s or does not have an alphanumeric suffix, it specifies seconds.

If the value begins with a tilde ~, the time will be randomly varied +/-10% from the value specified.

Name: x3270.inlcr
Type: Boolean
Default: false
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. It controls whether input newlines are mapped to carriage returns.

Name: x3270.inputColor
Type: String
Default: green
Description:

This resource defines the color used to display light-pen selectable text in 3278 (monochrome) emulation mode.

Previous versions of x3270 implemented something called pseudo-color mode, where a monochrome (3278) terminal was emulated with various colors assigned to different kinds of fields. To emulate pseudo-color mode with the current version of x3270, select 3278 emulation with x3270.model, set x3270.inputColor to orange and set x3270.boldColor to cyan.

If the resource x3270.modifiedSel is true, modified fields are also displayed using x3270.inputColor.

Name: x3270.inputMethod
Type: String
Command Line: -im
Description:

Specifies the name of the multi-byte input method. The default is specified by the XMODIFIERS environment variable, if set, or will be constructed by Xlib based on the current locale.

Name: x3270.intr
Type: String
Default: ^C
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When this character is typed on the keyboard, the TELNET IP (Interrupt Process) sequence is sent to the host.

Name: x3270.invertKeypadShift
Type: Boolean
Default: false
Description:

When true, causes the PF1-PF12 and PF13-PF24 keys on the pop-up keypad to be swapped. Normally, the low-numbered keys appear; when Shift, Alt, Ctrl or Meta is pressed, the high-numbered keys appear. With this resource true, that is reversed.

Name: x3270.keyHeight
Type: Integer
Default: 24
Description:

Defines the height of the keys on the pop-up keypad.

Name: x3270.keymap
Type: String
Command Line: -keymap
Description:

The name of the keyboard map to use. It can be a single keymap name or a comma-separated list of keymaps, which will be applied in order.

Each keymap can optionally be defined in three separate parts: a common keymap, which is applied at all times, an NVT-mode keymap, which is applied only in NVT mode, and a 3270-mode keymap, which is only applied in 3270 mode. The NVT-mode keymap has the same name as the common keymap, with the suffix .nvt appended. The 3270-mode keymap has the suffix .3270 appended. Thus specifying a x3270.keymap value of foo implies the use of three different keymaps (if found): foo, foo.nvt and foo.3270.

After that, the string .user is appended to the keymap name and three more keymaps are searched for: foo.user, foo.user.nvt and foo.user.3270, for a total of six.

If no x3270.keymap is defined, the environment variables $KEYMAP and $KEYBD are checked, in that order, for the name. x3270.keymap is only the name; the keymap definition for name foo is the resource x3270.keymap.foo.

Name: x3270.keymap.foo
Type: String
Description:

The definition of keymap foo. Please refer to the How To Create a Custom Keymap document for a full description of the syntax.

Name: x3270.keypad
Type: String
Default: right
Description:

This controls the position of the pop-up keypad. It can have one of five values:

  • left, a pop-up window positioned to the left of the main x3270 window
  • right, a pop-up window positioned to the right of the main x3270 window
  • bottom, a pop-up window positioned below the main x3270 window
  • integral, making the keypad an extension of the bottom of the main window itself
  • insideRight, placing the keypad over the upper-right corner of the emulator window, just below the keypad button on the menu bar

Name: x3270.keypad.keyHeight
Type: Integer
Default: 24
Description:

The height in pixels of all of the buttons on the keypad.

Name: x3270.keyWidth
Type: Integer
Default: 48
Description:

The width in pixels of the lower tier of buttons on a horizontal keypad.

Name: x3270.keypad.largeKeyWidth
Type: Integer
Default: 56
Description:

The width in pixels of the lower tier of buttons on a vertical keypad.

Name: x3270.keypad.paWidth
Type: Integer
Default: 36
Description:

The width in pixels of PA and cursor keys on the keypad.

Name: x3270.keypad.pfWidth
Type: Integer
Default: 32
Description:

The width in pixels of PF keys on the keypad.

Name: x3270.keypadBackground
Type: String
Default: grey70
Description:

On color X11 displays, this is the color of the empty area behind the buttons on the main window and keypad window. On monochrome X11 displays, these areas are filled with a 50% grey bitmap.

Name: x3270.keypadOn
Type: Boolean
Default: false
Description:

If true, the keypad will automatically appear when x3270 is started.

Name: x3270.kill
Type: String
Default: ^U
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when x3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current input line to be erased.

When connected in character-at-a-time mode (when x3270 sends each keystroke to the host), this is the ASCII character that is sent to the host by the DeleteField action.

Name: x3270.labelIcon
Type: Boolean
Default: false
Description:

When x3270.activeIcon is true, the twm window manager will not put a label on x3270's icon. Setting x3270.labelIcon to true causes x3270 to supply its own label for the icon.

The icon label is drawn using the font specified by x3270.iconLabelFont.

Name: x3270.largeKeyWidth
Type: Integer
Default: 56
Description:

Defines the width of the "large" keys in the lower section of the pop-up keypad.

Name: x3270.lineWrap
Type: Boolean
Default: true
Command Line: -set lineWrap , -clear lineWrap
Option: Options -> Toggles -> Wraparound
Description:

This setting is used only in NVT mode. When true, x3270 will automatically insert a CR/LF sequence when output reaches the end of a line. When false, output will pile up at the end of each line until the host sends a CR/LF sequence.

Name: x3270.loginMacro
Type: String
Description:

Defines a sequence of commands to run as soon as a host connection is established. Usually these would be commands used to navigate through login screens, such String, Tab and Enter.

If a x3270.hostsFile is in use and a matching entry is found, the login macro from that entry will be used in preference to the x3270.loginMacro.

Name: x3270.lnext
Type: String
Default: ^V
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name.

When connected in line-at-a-time mode (when x3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard removes any special meaning from the next character entered.

Name: x3270.lockedCursor
Type: String
Default: X_cursor
Description:

The name of the mouse cursor displayed with x3270 is not connected to a host.

Name: x3270.m3279
Type: Boolean
Default: false
Command Line: -color
Description:

Deprecated resource -- replaced by x3270.model syntax

Indicates support for color (a 3279 terminal).

Name: x3270.macros
Type: String
Description:

Defines a set of macros assigned to the Macros menu that appears when connected to a host. The syntax is similar to a keymap (an X11 translation table), except that rather than a keysym name, the left-hand side is a name that will appear on the menu. A list of actions can be specified on the right-hand side.

x3270.macros defines a set of macros for all hosts. To specify a set of macros for host foo, use x3270.macros.foo.

Name: x3270.macros.foo
Type: String
Description:

Defines a set of macros assigned to the Macros menu that appears when connected to host foo. It overrides the contents of x3270.macros. See x3270.macros for details on its syntax.

Name: x3270.marginedPaste
Type: Boolean
Default: false
Command Line: -set marginedPaste , -clear marginedPaste
Option: Options -> Toggles -> Paste With Left Margin
Description:

When true, x3270 will use the current cursor position as a left margin for pasted data: no pasted data will be input into an area to the left of the current cursor positon.

Name: x3270.menuBar
Type: Boolean
Default: true
Description:

If false, the menu bar will not be displayed at the top of the x3270 main window. The three pull-down menus are still available, however, by pressing Ctrl and each of the mouse buttons.

Name: x3270.model
Type: String
Default: 3279-4-E
Command Line: -model
Option: Options -> Screen Size
Description:

The terminal model that x3270 is emulating. The model is in three parts, separated by dashes; each part is optional.

  • 3278 or 3279
    3278 specifies a monochrome (green) 3270 display. If used on a color X11 display, it will cause all fields to be drawn in green. 3278 is the default for monochrome X11 displays.
    3279 specifies a color 3270 display. This is the default for color X11 displays.
  • 2, 3, 4 or 5
    The model number, which determines the size of the screen.
    Model 2 has 24 rows and 80 columns.
    Model 3 has 32 rows and 80 columns.
    Model 4 has 43 rows and 80 columns.
    Model 5 has 27 rows and 132 columns.
    The default is 4.
  • E
    An optional suffix which indicates support for the 3270 Extended Data Stream (color, extended attributes, Query Reply). 3279 implies E.

Name: x3270.modifiedSel
Type: Boolean
Default: false
Description:

When true, modified fields are displayed in a different color than other modifiable fields. In 3278 mode, this color is the "input" (light pen selectable) color, defined by x3270.inputColor. In 3279 mode, this is the color whose index is defined by x3270.modifiedSelColor. When x3270.modifiedSel is false, modified fields are displayed in the same colors as unmodified fields.

Name: x3270.modifiedSelColor
Type: Integer
Default: 10
Description:

In 3279 mode, when x3270.modifiedSel is true, this is index of the host color used to display modified fields. The default value of 10 corresponds to "orange". (See x3270.colorSchemes for the host color index definitions.)

Name: x3270.mono
Type: Boolean
Default: false
Command Line: -mono
Description:

If true, x3270 will operate as if it were running on a monochrome X11 display.

Name: x3270.monoCase
Type: Boolean
Default: false
Command Line: -set monoCase , -clear monoCase
Option: Options -> Toggles -> Monocase
Description:

When true, causes x3270 to run in uppercase-only mode.

Name: x3270.noOther
Type: Boolean
Default: false
Description:

If true, the "Other" options are disabled for selecting fonts and connecting to hosts, limiting users to the options provided on the menus.

Name: x3270.normalCursor
Type: String
Default: top_left_arrow
Description:

Defines the mouse cursor that x3270 uses when it is connected to a host, not waiting for the host to complete a command, and the keyboard is not locked.

Name: x3270.numericLock
Type: Boolean
Default: false
Description:

When true, causes x3270 to lock the keyboard when non-numeric data is entered into fields with the Numeric attribute.

Name: x3270.normalColor
Type: String
Default: green
Description:

On color X11 displays in 3278 mode, this is the color of normal-intensity text. On monochrome X11 displays, normal text uses the foreground color.

Name: x3270.onlcr
Type: Boolean
Default: true
Description:

Used only in NVT line-at-a-time mode; similar to the stty parameter of the same name. It controls whether output newlines are mapped to CR/LF sequences.

Name: x3270.oerrLock
Type: Boolean
Default: true
Description:

If true, operator errors (typing into protected fields, insert overflow, etc.) will cause the keyboard to lock with an error message in the OIA (status line). If false, these errors will simply cause the terminal bell will ring, without any keyboard lock or message.

Name: x3270.once
Type: Boolean
Default: false
Command Line: -once
Description:

When true, x3270 will exit as soon as a host disconnects. The default is false if no hostname is specified on the command line or in a session file, true otherwise.

Name: x3270.oversize
Type: String
Command Line: -oversize
Description:

Sets the screen dimensions to be larger than the default for the chosen model. Its value is a string in the format colsxrows. It is used only if the x3270.model includes the "-E" (extended data stream) suffix, and only if the specified dimensions are larger than the model number defaults. Also, only hosts that support the Query Reply structured field will function properly with x3270 in this mode.

Name: x3270.paWidth
Type: Integer
Default: 36
Description:

Defines the width of the PA keys in the lower section of the pop-up keypad.

Name: x3270.pfWidth
Type: Integer
Default: 32
Description:

Defines the width of the PF keys on the pop-up keypad.

Name: x3270.port
Type: String
Default: telnet
Command Line: -port
Description:

The name of the default TCP port for x3270 to connect to. This can be either a symbolic name from /etc/services, or an integer.

Name: x3270.proxy
Type: String
Command Line: -proxy
Description:

Defines a proxy server that x3270 will use to connect to hosts. The value is of the form type:server[:port], where options for type are described on the x3270 manual page.

Name: x3270.preeditType
Type: String
Default: OverTheSpot+1
Command Line: -pt
Description:

The preedit type for the multi-byte input method. Valid values are OverTheSpot, OffTheSpot, Root and OnTheSpot. The value for OverTheSpot can include an optional suffix, a signed number indicating the vertical distance in rows of the preedit window from the cursor position, e.g. OverTheSpot+1 or OverTheSpot-2.

Name: x3270.printerLu
Type: String
Command Line: -printerlu
Description:

If a value is set, x3270 will automatically start a pr3287 printer session when a host connection is established. If the value is ".", the pr3287 session will be associated with the interactive terminal session (this requires that the host supports TN3270E). Otherwise, the value is taken as the LU name to associate with the printer session.

Name: x3270.printer.assocCommandLine
Type: String
Default: pr3287 -assoc %L% -command %C% %R% %P% %H%
Description:

The shell command to use to start a printer session, when associated with the current TN3270E session LU (when x3270.printerLU is "."). Within the string, the following substitutions are made:

  • %C% is replaced with the x3270.printer.command
  • %H% is replaced with the current host name
  • %L% is replaced with the current session's LU
  • %P% is replaced with the current session's proxy option (x3270.proxy)
  • %R% is replaced with an option to pass the current character set

Name: x3270.printer.command
Type: String
Default: lpr
Description:

The name of the command supplied to the "-command" option of the pr3287 program to print each job. This is the text which is substituted for %C in x3270.printer.assocCommandLine and x3270.printer.luCommandLine resources.

Name: x3270.printer.luCommandLine
Type: String
Default: pr3287 -command %C% %R% %p% %L%@%H%
Description:

The shell command to use to start a printer session, when associated with a specific LU. Within the string, the following substitutions are made:

  • %C% is replaced with x3270.printer.command
  • %H% is replaced with the current host name
  • %L% is replaced with the LU value entered into the dialog box
  • %P% is replaced with current session's proxy option (x3270.proxy)
  • %R% is replaced with an option to pass the current character set

Name: x3270.printTextCommand
Type: String
Default: lpr
Description:

The shell command used by the PrintText action. An ASCII image of the 3270 display becomes the standard input to this command. If the first character of the command is '@', the usual pop-up windows before and after the text is printed will not appear.

Name: x3270.printWindowCommand
Type: String
Default: xwd -id %d | xpr | lpr
Description:

The shell command used by the PrintWindow action. The X11 window identifier of the main x3270 window is substituted for any %d in the command. If the first character of the command is '@', the usual pop-up windows before and after the window is printed will not appear.

Name: x3270.quit
Type: String
Default: ^\
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when x3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the TELNET BREAK sequence to be sent to the host.

Name: x3270.reconnect
Type: Boolean
Default: false
Description:

When true, x3270 will automatically reconnect to a host after it disconnects.

Name: x3270.rectangleSelect
Type: Boolean
Default: false
Command Line: -set rectangleSelect , -clear rectangleSelect
Option: Options -> Toggles -> Select by Rectangles
Description:

When true, x3270 will always select rectangular areas of the screen. When false, x3270 will select rectangular areas in 3270 mode, but in NVT mode it will select continuous areas of the screen like xterm.

Name: x3270.rprnt
Type: String
Default: ^R
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when x3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard causes the current input line to be redisplayed.

Name: x3270.saveLines
Type: Integer
Default: 64
Command Line: -sl
Description:

The number of display lines to save for the scroll bar.

Name: x3270.sbcsCgcsgid
Type: String
Description:

Overrides the compiled-in value of the CGCSGID for the current host character set. The value is an integer, which can be prefixed with '0x' to be in hexadecimal. The upper 16 bits are the GCSGID (character set) and the lower 16 bits are the CPGID (code page). This value applies only to the single-byte (SBCS) character set. Use x3270.dbcsCgcsgid for the double-byte (DBCS) character set.

Name: x3270.schemeList
Type: String
Description:

Lists the options on the Color Scheme menu. Can contain '>' characters to indicate a menu hierarchy. See the file X3270.xad for an example.

Name: x3270.screenTrace
Type: Boolean
Default: false
Command Line: -set screenTrace , -clear screenTrace
Option: File -> Save Screen(s) in File
Description:

When true, x3270 will save an ASCII version of the screen image in a file every time it changes. The file name defaults to /tmp/x3scr.pid. The directory prefix is defined by the x3270.traceDir resource. If the x3270.screenTraceFile resource is defined, it defines the file name and x3270.traceDir is ignored.

Name: x3270.screenTraceFile
Type: String
Description:

If defined, gives the name of the file that screen traces will be written into.

Name: x3270.scripted
Type: Boolean
Default: false
Command Line: -script
Description:

When true, x3270 will read commands from standard input. The rules for these commands are documented in the x3270-script manual page.

Name: x3270.scriptPort
Type: Integer
Command Line: -scriptport
Description:

If defined, x3270 will accept script connections on the specified local TCP port. The rules for the commands passed over these connections are documented in the x3270-script manual page.

Name: x3270.scrollBar
Type: Boolean
Default: false
Command Line: -sb , +sb , -set scrollBar , -clear scrollBar
Description:

When true, x3270 will display a scroll bar to the right of the emulator window.

Name: x3270.secure
Type: Boolean
Default: false
Description:

When true, x3270 will prevent users from executing arbitrary commands from within the program. In particular, the File -> Execute an Action menu option is disabled, as are the pop-ups which allow editing the commands for File -> Print Screen Text and File -> Print Window Bitmap, and x3270.disconnectClear is true. See x3270.noOther and x3270.suppressActions for additional security options.

Name: x3270.selectBackground
Type: String
Default: dimGrey
Description:

On color X11 displays, this is the background color used for selected text (text highlighted with the mouse for cut and paste). On monochrome X11 displays, selected text is in reverse video.

Name: x3270.showTiming
Type: Boolean
Default: false
Command Line: -set showTiming , -clear showTiming
Option: Options -> Toggles -> Show Timing
Description:

When true, x3270 will display on the OIA (status line) the time that the host takes to unlock the keyboard after an AID is sent.

Name: x3270.socket
Type: Boolean
Default: false
Command Line: -socket
Description:

When true, x3270 will create a Unix-domain socket than can be used by an external script to control the session. The name of the socket is /tmp/x3sck.pid. The -p option of the x3270if command can be used to connect to this socket.

Name: x3270.*suppress
Type: Boolean
Description:

When true, suppresses a menu item. For example, setting x3270*executeActionOption.suppress to true will remove the Execute an Action option on the File menu. The names of the menu items generally end in 'Option' and have label resources in X3270.xad.

Name: x3270.suppressActions
Type: String
Description:

A list of whitespace-separated action names, with or without parentheses, which are to be ignored. The actions will be completely inaccessible, whether by keymaps, scripts, macros or the Execute an Action menu option. This resource is intended to be used as a security precaution for users who can define their own keymaps, but who do not have access to resource definitions or command-line options.

Name: x3270.suppressFontMenu
Type: Boolean
Default: false
Description:

If true, the Options -> Font menu will not be displayed.

Name: x3270.suppressHost
Type: Boolean
Default: false
Description:

If true, x3270 will omit the hostname from the File -> About x3270 -> Connection Status pop-up.

Name: x3270.termName
Type: String
Command Line: -tn
Description:

An alternate name to be sent in response to the host's TELNET DO OPTION TERMINAL-NAME request. The default is IBM-, followed by the value of x3270.model.

Name: x3270.title
Type: String
Command Line: -title
Description:

Sets the title for the x3270 window, overriding the default of constructing the name from the host that is connected to.

Name: x3270.traceCommand
Type: String
Default: tail -f
Description:

Defines the command that runs in the trace window.

Name: x3270.traceDir
Type: String
Default: /tmp
Description:

Defines the directory that trace files are written into.

Name: x3270.traceFile
Type: String
Command Line: -tracefile
Description:

If defined, gives the name of the file that data stream and event traces will be written into. If given the value stdout, traces will be written to standard output. If given the value none, then the traces will be piped directory to the monitor window, and no file will be created.

Name: x3270.traceFileSize
Type: String
Command Line: -tracefilesize
Description:

If defined, gives a limit on the size of the file that data stream and event traces will be written into. If not defined, or defined as 0, there will be no limit on the size of the file. The value is a number, followed by an optional suffix. If the suffix is K (e.g., 128K), the value will be multiplied by 1024. If the suffix is M, the value will be multiplied by (1024*1024). The size limit enforced at operation boundaries, not per byte, so the actual file may grow slightly larger. When the file size exceeds the limit, the second half of the file will be written over the first, so that in steady state, the file size will vary between half the x3270.traceFileSize and the entire x3270.traceFileSize.

Name: x3270.traceMonitor
Type: Boolean
Default: true
Description:

When true, x3270 will create a window to monitor data stream and event traces. When false, no monitor window will be created (and the value of none for x3270.traceFile will be considered invalid).

Name: x3270.unlockDelay
Type: Boolean
Default: true
Description:

When x3270 sends the host an AID (the Enter, Clear, PF or PA actions), it locks the keyboard until the host sends a reply to unlock it. Some hosts unlock the keyboard before they are actually finished processing the command, which can cause scripts to malfunction subtly. To avoid this, x3270 implements a hack to briefly delay actually unlocking the keyboard. When x3270.unlockDelay is true, the keyboard unlock will be delayed for x3270.unlockDelayMs milliseconds. Setting it to false removes this delay, except when executing a macro.

Name: x3270.unlockDelayMs
Type: Integer
Default: 350
Description:

Overrides the default value for the unlock delay (the delay between the host unlocking the keyboard and x3270 actually performing the unlock). The value is in milliseconds; use 0 to turn off the delay completely, including for macros.

Name: x3270.useCursorColor
Type: Boolean
Default: false
Description:

If to false, the cursor will be drawn using the same color as the text behind it. If true, on color X11 displays the cursor will be drawn with the color specified by x3270.cursorColor.

Name: x3270.visibleControl
Type: Boolean
Default: false
Command Line: -set visibleControl , -clear visibleControl
Option: Options -> Toggles -> Visible Control Characters
Description:

If true, control characters will be displayed on the screen (normally they are blank). Control characters, displayed with underlines, are as follows:

  • <: The EBCDIC SO character (begins a DBCS subfield)
  • >: The EBCDIC SI character (ends a DBCS subfield)
  • P: The start of a protected field
  • M: The start of a modified field
  • U: The start of an unprotected field
  • .: The EBCDIC NUL character

Name: x3270.visualBell
Type: Boolean
Default: false
Description:

When true, x3270 will flash the screen in response to an ALARM WCC or BELL character, rather than ringing the terminal's bell.

Name: x3270.visualSelect
Type: Boolean
Default: false
Description:

This resource controls how x3270 displays light pen selectable fields that do not have a color explicitly set by the host. When true, x3270 will display these fields using the color defined by x3270.visualSelectColor. When false, x3270 will display these fields based on their highlighting attribute. This attribute is used only in 3279 mode.

Name: x3270.visualSelectColor
Type: Integer
Default: 6
Description:

The host color index of the color to use to display light pen selectable fields. This resource is used only if x3270.visualSelect is true. The default is 6 (yellow).

Name: x3270.waitCursor
Type: String
Default: watch
Description:

The name of the mouse cursor displayed when x3270 is connected to a host, but is unable to process keyboard input. Cursor names are in the file <X11/cursorfont.h>.

Name: x3270.werase
Type: String
Default: ^W
Description:

This setting is used only in NVT mode, and is similar in function to the stty parameter of the same name. When connected in line-at-a-time mode (when x3270 gathers a line of input before forwarding it to the host), entering this character at the keyboard erases the last word of input.

When connected in character-at-a-time mode (when x3270 sends each keystroke to the host), this is the ASCII character that is sent to the host by the DeleteWord action.

Index of All Resources

activeIcon aidWait allowResize altCursor
aplMode background bellVolume blankFill
boldColor bsdTm certFile charClass
charset charsetList color8 colorBackground
colorScheme colorScheme.foo composeMap composeMap.foo
confDir connectFileName crosshair cursorBlink
cursorColor cursorPos dbcsCgcsgid debugTracing
dftBufferSize disconnectClear doConfirms dsTrace
emulatorFont emulatorFontList.foo eof erase
eventTrace extended fixedSize foreground
highlightBold hostname hostsFile iconFont
iconLabelFont icrnl idleCommand idleCommandEnabled
idleTimeout inlcr inputColor inputMethod
intr invertKeypadShift keyHeight keymap
keymap.foo keypad keypad.keyHeight keyWidth
keypad.largeKeyWidth keypad.paWidth keypad.pfWidth keypadBackground
keypadOn kill labelIcon largeKeyWidth
lineWrap loginMacro lnext lockedCursor
m3279 macros macros.foo marginedPaste
menuBar model modifiedSel modifiedSelColor
mono monoCase noOther normalCursor
numericLock normalColor onlcr oerrLock
once oversize paWidth pfWidth
port proxy preeditType printerLu
printer.assocCommandLine printer.command printer.luCommandLine printTextCommand
printWindowCommand quit reconnect rectangleSelect
rprnt saveLines sbcsCgcsgid schemeList
screenTrace screenTraceFile scripted scriptPort
scrollBar secure selectBackground showTiming
socket *suppress suppressActions suppressFontMenu
suppressHost termName title traceCommand
traceDir traceFile traceFileSize traceMonitor
unlockDelay unlockDelayMs useCursorColor visibleControl
visualBell visualSelect visualSelectColor waitCursor
werase

Basic Configuration Resources

charset hostname keymap model
port proxy printerLu

Appearance Resources

activeIcon altCursor background boldColor
colorBackground colorScheme colorScheme.foo crosshair
cursorBlink cursorColor cursorPos emulatorFont
fixedSize foreground highlightBold iconFont
iconLabelFont inputColor keyHeight keypad
keypad.keyHeight keyWidth keypad.largeKeyWidth keypad.paWidth
keypad.pfWidth keypadBackground labelIcon largeKeyWidth
lockedCursor menuBar modifiedSel modifiedSelColor
normalCursor normalColor paWidth pfWidth
selectBackground showTiming title useCursorColor
visualSelect visualSelectColor waitCursor

NVT-Mode Resources

eof erase icrnl inlcr
intr kill lineWrap lnext
onlcr quit rprnt werase

Protocol Resources

bsdTm color8 dbcsCgcsgid dftBufferSize
sbcsCgcsgid termName

Terminal Interaction Resources

blankFill idleCommand idleCommandEnabled idleTimeout
marginedPaste numericLock oerrLock rectangleSelect
visualBell

Security Resources

certFile debugTracing noOther secure
*suppress suppressActions

Tracing Resources

debugTracing dsTrace eventTrace screenTrace
screenTraceFile traceDir traceFile traceFileSize
traceMonitor

Other Resources

aidWait allowResize aplMode bellVolume
charClass charsetList composeMap composeMap.foo
confDir connectFileName disconnectClear doConfirms
emulatorFontList.foo hostsFile inputMethod invertKeypadShift
keymap.foo keypadOn loginMacro macros
macros.foo mono monoCase once
oversize preeditType printer.assocCommandLine printer.command
printer.luCommandLine printTextCommand printWindowCommand reconnect
saveLines schemeList scripted scriptPort
scrollBar socket suppressFontMenu suppressHost
traceCommand unlockDelay unlockDelayMs visibleControl

Deprecated Resources

extended m3279

x3270 verson 3.3.10ga3 Mon Sep 21 20:59:48 CDT 2009 ibm-3270-3.3.10ga4/x3270/html/x3270-man.html0000644000175000017500000023471411261527752017152 0ustar bastianbastian x3270 Manual Page

x3270 Manual Page

Contents

Name
Synopsis
Description
Options
Fonts
Character Sets
Character Classes
Keypad
Hosts Database
Color Schemes
NVT (ANSI) Mode
Menus
Status Line
Icons
Keymaps
The PrintText Action
Macros and Scripts
Composite Characters
APL Support
XIM Support
Screen Printing
Bugs
Passthru
Proxy
Files
Environment Variables
See Also
Copyrights
Version

Name

x3270 - IBM host access tool

Synopsis

x3270 [options] [host]
x3270 [options] session-file.x3270

Description

x3270 opens a telnet connection to an IBM host in an X window. It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection), and supports IND$FILE file transfer. The window created by x3270 can use its own font for displaying characters, so it is a fairly accurate representation of an IBM 3278 or 3279. It is similar to tn3270(1) except that it is X-based, not curses-based.

The full syntax for host is:

[prefix:]...[LUname@]hostname[:port]

Prepending a P: onto hostname causes the connection to go through the telnet-passthru service rather than directly to the host. See PASSTHRU below.

Prepending an S: onto hostname removes the "extended data stream" option reported to the host. See -tn below for further information.

Prepending an N: onto hostname turns off TN3270E support for the session.

Prepending an L: onto hostname causes x3270 to first create an SSL tunnel to the host, and then create a TN3270 session inside the tunnel. (This function is supported only if x3270 was built with SSL/TLS support). Note that TLS-encrypted sessions using the TELNET START-TLS option are negotiated with the host automatically; for these sessions the L: prefix should not be used.

A specific Logical Unit (LU) name to use may be specified by prepending it to the hostname with an `@'. Multiple LU names to try can be separated by commas. An empty LU can be placed in the list with an extra comma. (Note that the LU name is used for different purposes by different kinds of hosts. For example, CICS uses the LU name as the Terminal ID.)

The hostname may optionally be placed inside square-bracket characters `[' and `]'. This will prevent any colon `:' characters in the hostname from being interpreted as indicating option prefixes or port numbers. This allows numeric IPv6 addresses to be used as hostnames.

On systems that support the forkpty library call, the hostname may be replaced with -e and a command string. This will cause x3270 to connect to a local child process, such as a shell.

The port to connect to defaults to telnet. This can be overridden with the -port option, or by appending a port to the hostname with a colon `:'. (For compatability with previous versions of x3270 and with tn3270(1), the port may also be specified as a second, separate argument.)

Options

x3270 is a toolkit based program, so it understands standard Xt options and resources. It also understands the following options:
-activeicon
Specifies that the icon should be a miniature version of the screen image. See ICONS below.
-apl
Sets up APL mode. This is actually an abbreviation for several options. See APL SUPPORT below.
-cc range:value[,...]
Sets character classes. See CHARACTER CLASSES, below.
-charset name
Specifies an EBCDIC host character set. See CHARACTER SETS below.
-clear toggle
Sets the initial value of toggle to false. The list of toggle names is under MENUS below.
-efont name
Specifies a font for the emulator window. See FONTS below.
-iconname name
Specifies an alternate title for the program icon.
-iconx x
Specifies the initial x coordinate for the program icon.
-icony y
Specifies the initial y coordinate for the program icon.
-im method
Specifies the name of the input method to use for multi-byte input. (Supported only when x3270 is compiled with DBCS support.)
-keymap name
Specifies a keymap name and optional modifiers. See KEYMAPS below.
-keypad
Turns on the keypad as soon as x3270 starts.
-km name
Specifies the local encoding method for multi-byte text. name is an encoding name recognized by the ICU library. (Supported only when x3270 is compiled with DBCS support, and necessary only when x3270 cannot figure it out from the locale.)
-model name
The model of 3270 display to be emulated. The model name is in two parts, either of which may be omitted:

The first part is the base model, which is either 3278 or 3279. 3278 specifies a monochrome (green on black) 3270 display; 3279 specifies a color 3270 display.

The second part is the model number, which specifies the number of rows and columns. Model 4 is the default.

Model Number
Columns
Rows
2
80
24
3
80
32
4
80
43
5
132
27

Note: Technically, there is no such 3270 display as a 3279-4 or 3279-5, but most hosts seem to work with them anyway.

The default model for a color X display is 3279-4. For a monochrome X display, it is 3278-4.

-mono
Forces x3270 to believe it is running on a monochrome X display.
-once
Causes x3270 to exit after a host disconnects. This option has effect only if a hostname is specified on the command line.
-oversize colsxrows
Makes the screen larger than the default for the chosen model number. This option has effect only in combination with extended data stream support (controlled by the "x3270.extended" resource), and only if the host supports the Query Reply structured field. The number of columns multiplied by the number of rows must not exceed 16383 (3fff hex), the limit of 14-bit 3270 buffer addressing.
-port n
Specifies a different TCP port to connect to. n can be a name from /etc/services like telnet, or a number. This option changes the default port number used for all connections. (The positional parameter affects only the initial connection.)
-printerlu luname
Causes x3270 to automatically start a pr3287 printer session. If luname is ".", then the printer session will be associated with the interactive terminal session (this requires that the host support TN3270E). Otherwise, the value is used as the explicit LU name to associate with the printer session.
-proxy type:host[:port]
Causes x3270 to connect via the specified proxy, instead of using a direct connection. The host can be an IP address or hostname. The optional port can be a number or a service name. For a list of supported proxy types, see PROXY below.
-pt type
Specifies the preedit type for the multi-byte input method. Valid values are OverTheSpot, OffTheSpot, Root and OnTheSpot. The value for OverTheSpot can include an optional suffix, a signed number indicating the vertical distance in rows of the preedit window from the cursor position, e.g. OverTheSpot+1 or OverTheSpot-2. The default value is OverTheSpot+1. (Supported only when x3270 is compiled with DBCS support.)
-reconnect
Causes x3270 to automatically reconnect to the host if it ever disconnects. This option has effect only if a hostname is specified on the command line.
-sb
Turns on the scrollbar.
+sb
Turns the scrollbar off.
-scheme name
Specifes a color scheme to use in 3279 mode. This option has effect only in combination with 3279 emulation. See COLOR SCHEMES below.
-script
Causes x3270 to read commands from standard input, with the results written to standard output. The protocol for these commands is documented in x3270-script(1).
-sl n
Specifies that n lines should be saved for scrolling back. The default is 64.
-scriptport port
Causes x3270 to listen for scripting connections on local TCP port port.
-set toggle
Sets the initial value of toggle to true. The list of toggle names is under MENUS below.
-socket
Causes the emulator to create a Unix-domain socket when it starts, for use by script processes to send commands to the emulator. The socket is named /tmp/x3sck.process_id. The -p option of x3270if causes it to use this socket, instead of pipes specified by environment variables.
-tn name
Specifies the terminal name to be transmitted over the telnet connection. The default name is IBM-model_name-E, for example, IBM-3279-4-E for a color X display, or IBM-3278-4-E for a monochrome X display.

Some hosts are confused by the -E suffix on the terminal name, and will ignore the extra screen area on models 3, 4 and 5. Prepending an s: on the hostname, or setting the "x3270.extended" resource to "false", removes the -E from the terminal name when connecting to such hosts.

The name can also be specified with the "x3270.termName" resource.

-trace
Turns on data stream tracing at startup. Unlike turning it on from a menu option, there is no pop-up to confirm the file name, which defaults to /tmp/x3trc.process_id.
-tracefile file
Specifies a file to save data stream and event traces into. If the value stdout is given, then traces will be written to standard output. If the value none is given, then traces will be piped directly to the monitor window, and no file will be created.
-tracefilesize size
Places a limit on the size of a trace file. If this option is not specified, or is specified as 0 or none, the trace file will be unlimited. If specified, the trace file cannot already exist, and the (silently enforced) minimum size is 64 Kbytes. The value of size can have a K or M suffix, indicating kilobytes or megabytes respectively.
-v Display the version and build options for x3270
and exit.

After reading resource definitions from the X server and any standandard X11 resource definition files ($HOME/.Xdefaults, etc.), x3270 will read definitions from the file $HOME/.x3270pro. This file contains local customizations and is also used to save changed options by the Save Changed Options in File menu option.

Note that -xrm options override any definitions in the .x3270pro file.

Fonts

x3270 does not use the "*font" resource for its main window. Instead, it uses a custom 14-point font called 3270, which is a close approximation of a real 3270 display and allows x3270 to display the ISO 8859-1 (Latin-1) character set and special status-line symbols. A more compact font, 3270-12, is also supported, as are the various sized fonts 3270gt8, 3270gt12, 3270gt16, 3270-20, 3270gt24, and 3270gt32. The fonts 3270h and 3270gr are also included to allow display of Hebrew and Greek text, respectively.

The font may be specified with the -efont option or the "x3270.emulatorFont" resource.

x3270 can also use any X11 font that implements the display character set required by the host EBCDIC character set.

An additional font, 3270d, is supplied. This font is identical to the default 3270 font, except that it has bitmaps defined for field attribute characters. This means that field attributes, which are normally displayed as blanks, are now visible on the screen. The characters displayed are hexadecimal codes, which can be translated using a document provided with the x3270 sources.

The font can be changed at any time through a menu option. It can also be implicitly changed by changing the size of the x3270 window with the mouse: if the window is made larger, x3270 will try to change to a larger font, and vice-versa.

Character Sets

The -charset option or the "x3270.charset" resource controls the EBCDIC host character set used by x3270. Available sets include:

Charset Name
Host Code Page
Display Character Sets
apl
037
3270cg-1a
belgian
500
3270cg-1a 3270cg-1 iso8859-1
belgian-euro
1148
3270cg-15a 3270cg-15 iso8859-15
bracket
037
3270cg-1a 3270cg-1 iso8859-1
brazilian
275
3270cg-1a 3270cg-1 iso8859-1
chinese-gb18030
1388
3270cg-1a iso8859-1 + iso10646-1
cp1047
1047
3270cg-1a 3270cg-1 iso8859-1
cp870
870
3270cg-1a 3270cg-1 iso8859-2
finnish
278
3270cg-1a 3270cg-1 iso8859-1
finnish-euro
1143
3270cg-15a 3270cg-15 iso8859-15
french
297
3270cg-1a 3270cg-1 iso8859-1
french-euro
1147
3270cg-15a 3270cg-15 iso8859-15
german
273
3270cg-1a 3270cg-1 iso8859-1
german-euro
1141
3270cg-15a 3270cg-15 iso8859-15
greek
423
3270cg-7 iso8859-7
hebrew
424
3270cg-8 iso8859-8
icelandic
871
3270cg-1a 3270cg-1 iso8859-1
icelandic-euro
1149
3270cg-15a 3270cg-15 iso8859-15
italian
280
3270cg-1a 3270cg-1 iso8859-1
italian-euro
1144
3270cg-15a 3270cg-15 iso8859-15
japanese-kana
930
jisx0201.1976-0 + jisx0208.1983-0
japanese-latin
939
jisx0201.1976-0 + jisx0208.1983-0
norwegian
277
3270cg-1a 3270cg-1 iso8859-1
norwegian-euro
1142
3270cg-15a 3270cg-15 iso8859-15
russian
880
koi8-r
simplified-chinese
935
3270cg-1a iso8859-1 + gb2312.1980-0
slovenian
870
iso8859-2
spanish
284
3270cg-1a 3270cg-1 iso8859-1
spanish-euro
1145
3270cg-15a 3270cg-15 iso8859-15
thai
1160
iso8859-11 tis620.2529-0
traditional-chinese
937
3270cg-1a iso8859-1 + Big5-0
turkish
1026
iso8859-9
uk
285
3270cg-1a 3270cg-1 iso8859-1
uk-euro
1146
3270cg-15a 3270cg-15 iso8859-15
us-euro
1140
3270cg-15a 3270cg-15 iso8859-15
us-intl
037
3270cg-1a 3270cg-1 iso8859-1

The default character set is bracket, which is useful for common U.S. IBM hosts which use EBCDIC codes AD and BD for the `[' and `]' characters, respectively.

Note that any of the host code pages listed above can be specified by adding cp to the host code page, e.g., cp037 for host code page 037. Also note that the code pages available for a given version of x3270 are displayed by the -v command-line option.

Most 3270 fonts implement the 3270cg-1 display character set, which is a reordered version of the ISO 8859-1 character set. Some implement the 3270cg-1a display character set, which is a superset of 3270cg-1 that includes APL2 characters. 3270h and 3270gr implement special character sets for Hebrew and Greek, respectively.

You can also specify national-language translations for your keyboard; see KEYMAPS below.

Character Classes

x3270 supports character classes (groupings of characters chosen with a double mouse click) in the same manner as xterm(1). The "x3270.charClass" resource or the -cc option can be used to alter the character class table. The default table is the same as xterm's; It groups letters together, and puts most punctuation characters in individual classes. To put all non-whitespace characters together in the same class (and duplicate the behavior of some early versions of x3270, use the following value:

33-127:48,161-255:48

See xterm(1) for further syntax details.

Keypad

A keypad may optionally be displayed, with a mouse-clickable button for each 3270 function key (these functions are also available from the keyboard). The keypad can be turned on and off by clicking on the "keypad" button in the upper-right-hand corner of the window. The "x3270.keypad" resource controls where it is displayed. Options are:

left in a separate window, to the left of the screen
right in a separate window, to the right of the screen
bottom in a separate window, below the screen
integral in the same window as the screen, below it

The default is right.

If the "x3270.keypadOn" resource is set to true, the keypad will be displayed at startup.

Hosts Database

x3270 uses the ibm_hosts database to construct a pull-down menu of hosts to connect to. It also allows host name aliases to be defined, as well as specifying macros to be executed when a connection is first made. See ibm_hosts(5) for details.

You may specify a different ibm_hosts database with the "x3270.hostsFile" resource.

Color Schemes

When emulating a 3279 display, the X colors used to draw the display are selected by two resources: the "x3270.colorScheme" resource, which gives the name of the color scheme to use, and the individual "x3270.colorScheme.xxx" resources, which give the actual definitions. The color scheme resources are documented in the Resources file with the x3270 source.

The color scheme may also be changed while x3270 is running with a selection from the Options menu.

NVT (ANSI) Mode

Some hosts use an ASCII front-end to do initial login negotiation, then later switch to 3270 mode. x3270 will emulate an ANSI X.64 terminal until the host places it in 3270 mode (telnet BINARY and SEND EOR modes, or TN3270E mode negotiation). The emulation is fairly complete; however, it is not intended to make x3270 a replacement for xterm(1).

If the host later negotiates to stop functioning in 3270 mode, x3270 will return to ANSI emulation.

In NVT mode, x3270 supports both character-at-a-time mode and line mode operation. You may select the mode with a menu option. When in line mode, the special characters and operational characteristics are defined by resources:

Mode/Character Resource Default
Translate CR to NL x3270.icrnl true
Translate NL to CR x3270.inlcr false
Erase previous character x3270.erase ^?
Erase entire line x3270.kill ^U
Erase previous word x3270.werase ^W
Redisplay line x3270.rprnt ^R
Ignore special meaning of next character x3270.lnext ^V
Interrupt x3270.intr ^C
Quit x3270.quit ^\
End of file x3270.eof ^D

Separate keymaps can be defined for use only when x3270 is in 3270 mode or NVT mode. See KEYMAPS for details.

Menus

x3270 has a menu bar with three pull-down menus (File, Options, and Connect) and a button to turn the keypad on and off. The pull-down menus are also available as pop-up menus by using the "Ctrl" key and the left, middle and right mouse buttons, respectively.

The menu bar can be turned off by setting the "x3270.menuBar" resource to false.

Many sections of the File and Options menus are toggles, options that may be either on or off. The entries under the File menu are as follows:

File Transfer
Initiates transferring a file between the IBM host and the local workstation, using the IND$FILE protocol. A pop-up menu allows specifying the file names and other attributes of the transfer.
The IND$FILE program must be installed on the IBM host, and the 3270 cursor must be located in a field that will accept a TSO or VM/CMS command.
Printer Session
Starts or stops a printer session.
Trace Data Stream
If set, network traffic (both a hexadecimal representation and its interpretation) are logged to the file /tmp/x3trc.process_id, and a window is popped up to monitor the data. The file name is confirmed with a pop-up; the default directory name for the trace file can be changed with the "x3270.traceDir" resource.
Trace Keyboard/Mouse Events
If set, information about keyboard and mouse events and the actions that x3270 takes in response are logged to a file. This is the same file as used for tracing the data stream, above. Event tracing is useful for creating and debugging custom keymaps, macros and scripts. For example, it will tell you precisely what action was taken in response to pressing a particular key. If the key is not mapped, it will tell you the keysym name and keycode so you can add it to a custom keymap.
Save Screen(s) in File
If set, saves an ASCII representation of the current screen image in the file /tmp/x3scr.process_id. A pop-up allows the file name to be changed; the default directory name can be changed with the "x3270.traceDir" resource. The pop-up also has buttons to choose between saving just the current image, or continuously saving it as it is redrawn.
Print Screen Text
Pipes an ASCII representation of the screen contents to a command for printing. The default command is lpr.
Save Screen Text in File
Appends a text representation of the screen contents to a file. The data can be saved in plain ASCII or HTML.
Print Window Bitmap
Uses the xwd and xpr commands to print a copy of the graphical screen contents.
Save Changed Options in File
Saves into a file the values of all options that have been changed since x3270 was started. A pop-up allows the file name to be changed; the default file is .x3270pro in the user's home directory. If the file already exists, it is appended to. x3270 will read the contents of this file the next time it starts up. The options settings in the file override any resources defined with xrdb or in the user's .Xdefaults file; command-line switches override the file. A different options file can be specified by the X3270PRO environment variable. If the environment variable NOX3270PRO is set, no options file will be read.
Execute an Action
Allows an action name and parameters to be entered from the keyboard. This allows experimentation with actions without having to edit keymaps and repeatedly restart x3270.

The toggles under the Options menu are as follows:

Monocase
If set, x3270 operates in uppercase-only mode.
Blinking Cursor
If set, the cursor blinks once per second.
Blank Fill
If set, x3270 behaves in some un-3270-like ways. First, when a character is typed into a field, all nulls in the field to the left of that character are changed to blanks. This eliminates a common 3270 data-entry surprise. Second, in insert mode, trailing blanks in a field are treated like nulls, eliminating the annoying `lock-up' that often occurs when inserting into an field with (apparent) space at the end.
Show Timing
If set, the time taken by the host to process an AID is displayed on the status line.
Track Cursor
If set, the cursor position is displayed on the status line.
Scrollbar
If set, the scrollbar appears.
Wraparound
If set, the ANSI terminal emulator automatically assumes a NEWLINE character when it reaches the end of a line.
Paste with Left Margin
If set, puts restrictions on how pasted text is placed on the screen. The position of the cursor at the time the paste operation is begun is used as a left margin. No pasted text will fill any area of the screen to the left of that position. This option is useful for pasting into certain IBM editors that use the left side of the screen for control information.
Select by Rectangles
If set, x3270 will always select rectangular areas of the screen. Otherwise, x3270 selects by rectangles when in 3270 mode, but in ANSI mode it selects continuous regions of the screen like xterm(1).
Crosshair Cursor
If set, x3270 will display a crosshair over the cursor: lines extending the full width and height of the screen, centered over the cursor position. This makes locating the cursor on the screen much easier.

The names of the toggles for use with the -set and -clear options are as follows:

Menu Option Name
Monocase monoCase
Blinking Cursor cursorBlink
Blank Fill blankFill
Show Timing showTiming
Track Cursor cursorPos
Trace Data Stream dsTrace
Trace Keyboard/Mouse Events eventTrace
Save Screen(s) in File screenTrace
Scrollbar scrollBar
Wraparound lineWrap
Paste with Left Margin marginedPaste
Select by Rectangles rectangleSelect
Crosshair Cursor crosshair

In addition, the toggle altCursor can be used to select the cursor type. If set, an underline cursor will be used. If clear, the normal block cursor will be used.

These names also represent resources that can be set in your .Xdefaults or .x3270pro file. For example, if you always want to have the scrollbar on, you can add the following to your .Xdefaults or .x3270pro:

x3270.scrollBar: true

These names are also used as the first parameter to the Toggle action.

Status Line

The x3270 status line contains a variety of information. From left to right, the fields are:
comm status
The first symbol is always a 4. If x3270 is in TN3270E mode, the second symbol is a B; otherwise it is an A. If x3270 is disconnected, the third symbol is a question mark. Otherwise, if x3270 is in SSCP-LU mode, the third symbol is an S. Otherwise it is blank.
keyboard lock
If the keyboard is locked, an "X" symbol and a message field indicate the reason for the keyboard lock.
shift
Three characters indicate the keyboard modifier status. "M" indicates the Meta key, "A" the Alt key, and an up-arrow or "^" indicates the Shift key.
compose
The letter "C" indicates that a composite character is in progress. If another symbol follows the "C", it is the first character of the composite.
typeahead
The letter "T" indicates that one or more keystrokes are in the typeahead buffer.
temporary keymap
The letter "K" indicates that a temporary keymap is in effect.
reverse
The letter "R" indicates that the keyboard is in reverse field entry mode.
insert mode
A thick caret "^" or the letter "I" indicates that the keyboard is in insert mode.
printer session
The letter "P" indicates that a pr3287 session is active.
script
The letter "S" indicates that a script is active.
LU name
The LU name associated with the session, if there is one.
timing
A clock symbol and a time in seconds indicate the time it took to process the last AID or the time to connect to a host. This display is optional.
cursor position
The cursor row and column are optionally displayed, separated by a "/".

Icons

If the -activeicon option is given (or the "x3270.activeIcon" resource is set to true), x3270 will attempt to make its icon a miniature version of the current screen image. This function is highly dependent on your window manager:
mwm
The size of the icon is limited by the "Mwm.iconImageMaximum" resource, which defaults to 50x50. The image will be clipped at the bottom and right. The icon cannot accept keyboard input.
olwm
The full screen image of all 3270 models can be displayed on the icon. However, the icon cannot be resized, so if the model is later changed with an x3270 menu option, the icon image will be corrupted. The icon cannot accept keyboard input.
twm and tvtwm
The full screen image of all 3270 models can be displayed on the icon, and the icon can be resized. The icon can accept keyboard input.

However, twm does not put labels on application-supplied icon windows. You can have x3270 add its own label to the icon by setting the "x3270.labelIcon" resource to true. The default font for icon labels is 8x13; you may change it with the "x3270.iconLabelFont" resource.

Keymaps

The type of keyboard may be specified with the -keymap switch or using either the KEYMAP or KEYBD environment variables. The types of supported keyboards include sun_k3, sun_k4, sun_k5, hp-k1, hp-pc and ncd.

The keymap may also be specified as a comma-separated list of names. Later definitions override earlier ones. This is used to specify both a primary keyboard type and a set of modifiers. The modifiers defined include:

ow
(OpenWindows) Swaps the middle and right mouse button definitions, so the middle button performs the "Extend" function and the right-hand button performs the "Paste" function. Also changes the cut and paste actions to use the OpenWindows CLIPBOARD.
apl
Allows entry of APL characters (see APL SUPPORT below).
finnish7
Replaces the bracket, brace and bar keys with common Finnish characters.
norwegian7
Replaces the bracket, brace and bar keys with common Norwegian characters.

A temporary keymap can also be specified while x3270 is running with the Keymap action. When the action Keymap(n) is executed, temporary keymap n is added to or deleted from the current keymap. Multiple temporary keymaps can be active simultaneously. The action Keymap(None) restores the original keymap. Note: When Keymap() is specified as part of a list of multiple actions in a keymap, it must be the last action in the list.

The temporary keymap hebrew is provided to allow entry of Hebrew characters.

The X Toolkit translation mechanism is used to provide keyboard emulation. It maps events into actions. The best documentation can be found with X toolkit documents, but the following should suffice for simple customization.

An Xt event consists of (at least) four fields. The first is called a modifier. It may be any combination of Meta, Shift and Ctrl. If it is prefaced by !, it means those modifiers only. The second field is the specific event, in x3270 usually just <Key>. The third field is the detail field, which gives the actual key. The name of the key may be determined using the xev program or with the "Trace X Events" menu option. The last field is the action, which is the internal emulator function. A complete list of actions may be found later in the manual.

There are three levels of translation tables in x3270. The first is a defined by the resource x3270.keymap.base. It defines alphabetic, numeric, function keys, and such basic functions as Enter and Delete. It allows a minimal useful functionality. It is generally compiled in x3270, but can be overridden.

The second level is a keyboard specific table, which is selected by the x3270.keymap resource, and defined by the x3270.keymap.name resource (where name is the value of the x3270.keymap resource). This keymap defines actions for such things as keypad keys, and keys unique to certain keyboards. Several predefined keymaps are included with x3270.

The third level is a user customizable table which may be used to augment or override key definitions. This keymap is defined by the x3270.keymap.name.user resource.

In addition, keymaps may be defined for use in 3270 mode or NVT mode only. These keymaps use the suffixes .3270 and .nvt in their names, respectively. If a keymap x3270.keymap.name.mode is defined, it will augment the keymap x3270.keymap.name when x3270 is in the given mode. If a keymap x3270.keymap.name.user.mode is defined, it will augment the keymap x3270.keymap.name.user when x3270 is in the given mode.

The default translation table x3270.keymap.base is:
<Key>Multi_key Compose()
Shift<Key>Left KybdSelect(Left,PRIMARY)
<Key>Left Left()
Meta<Key>Right NextWord()
Shift<Key>Right KybdSelect(Right,PRIMARY)
<Key>Right Right()
Shift<Key>Up KybdSelect(Up,PRIMARY)
<Key>Up Up()
Shift<Key>Down KybdSelect(Down,PRIMARY)
<Key>Down Down()
Ctrl<Btn1Down> HandleMenu(quitMenu)
Ctrl<Btn2Down> HandleMenu(optionsMenu)
Ctrl<Btn3Down> HandleMenu(hostMenu)
Shift<Btn1Down> MoveCursor()
<Btn1Down> select-start()
<Btn1Motion> select-extend()
<Btn2Down> ignore()
<Btn2Motion> ignore()
<Btn2Up> insert-selection(PRIMARY)
<Btn3Down> start-extend()
<Btn3Motion> select-extend()
<BtnUp> select-end(PRIMARY)
Meta<Key>F1 PF(13)
Meta<Key>F2 PF(14)
Meta<Key>F3 PF(15)
Meta<Key>F4 PF(16)
Meta<Key>F5 PF(17)
Meta<Key>F6 PF(18)
Meta<Key>F7 PF(19)
Meta<Key>F8 PF(20)
Meta<Key>F9 PF(21)
Meta<Key>F10 PF(22)
Meta<Key>F11 PF(23)
Meta<Key>F12 PF(24)
<Key>F1 PF(1)
<Key>F2 PF(2)
<Key>F3 PF(3)
<Key>F4 PF(4)
<Key>F5 PF(5)
<Key>F6 PF(6)
<Key>F7 PF(7)
<Key>F8 PF(8)
<Key>F9 PF(9)
<Key>F10 PF(10)
<Key>F11 PF(11)
<Key>F12 PF(12)
Alt<Key>q Quit()
:<Key> Default()

The default 3270-mode table x3270.keymap.base.3270 adds the following definitions:
Shift<Key>Return Newline()
<Key>Return Enter()
<Key>Linefeed Newline()
Shift<Key>Tab BackTab()
<Key>Tab Tab()
<Key>Home Home()
Meta<Key>Left PreviousWord()
Meta<Key>Right NextWord()
<Key>Insert Insert()
<Key>Delete Delete()
<Key>BackSpace BackSpace()
Ctrl Shift<Btn1Down> MouseSelect()
Shift<Btn1Down> MoveCursor()
Meta<Key>1 PA(1)
Meta<Key>2 PA(2)
Meta<Key>3 PA(3)
Ctrl<Key>a SelectAll(PRIMARY)
Meta<Key>a Attn()
Meta<Key>b PrintWindow()
Ctrl<Key>c set-select(CLIPBOARD)
Meta<Key>c Clear()
Meta<Key>d Delete()
Meta<Key>h Home()
Meta<Key>i Insert()
Meta<Key>l Redraw()
Meta<Key>p PrintText()
Meta<Key>r Reset()
Meta<Key>u Unselect()
Ctrl<Key>u DeleteField()
Ctrl<Key>v insert-selection(CLIPBOARD)
Ctrl<Key>w DeleteWord()
:Meta<Key>asciicircum Key(notsign)

Meta is the diamond shaped key on a sun_k4, "Alt" on an NCD, "Extend Char" on an HP. The following xmodmap command must be used on the NCD to allow use the the "Alt" key:

xmodmap -e "keysym Alt_L = Meta_L"

The left mouse button may be used to make a selection. Clicking once unselects the current selection. Clicking twice selects the word under the mouse cursor. Clicking three times selects the line under the mouse cursor. Clicking and dragging selects a rectangular area of the display.

The middle mouse button may be used to paste a selection.

The right mouse button may also be used for selections, selecting the rectangular area between the current position and where the left button was last pressed.

On color X displays, the "x3270.selectBackground" resource is used to distinguish the selected text from the rest of the screen. On monochrome X displays, selected text is in reverse video. (It can be distinguished from a block cursor because the block cursor covers slightly less than an entire character position on the screen.)

The left mouse button, when pressed with the "Shift" key held down, moves the 3270 cursor to the where the mouse cursor is pointing.

This is the complete list of keymap-callable actions. Other actions are defined for use by scripts and are documented in x3270-script(1); still others are defined for internal use by x3270 and are not documented here. Note that when an action with no parameters is used in a keymap, the parentheses and empty argument list are still required.

Actions marked with an asterisk (*) may block, sending data to the host and possibly waiting for a response.

*Attn attention key
AltCursor switch between block and underscore cursor
BackSpace move cursor left (or send ASCII BS)
BackTab tab to start of previous input field
CircumNot input "^" in NVT mode, or "¬" in 3270 mode
*Clear clear screen
Compose next two keys form a special symbol
*Connect(host) connect to host
*CursorSelect Cursor Select AID
Cut erase selected text
Default enter key literally
Delete delete character under cursor (or send ASCII DEL)
DeleteField delete the entire field
DeleteWord delete the current or previous word
*Disconnect disconnect from host
Down move cursor down
Dup duplicate field
*Enter Enter AID (or send ASCII CR)
Erase erase previous character (or send ASCII BS)
EraseEOF erase to end of current field
EraseInput erase all input fields
Execute(cmd) execute a command in a shell
FieldEnd move cursor to end of field
FieldMark mark field
HandleMenu(name) pop up a menu
HexString(hex_digits) insert control-character string
Home move cursor to first input field
Insert set insert mode
*Interrupt send TELNET IP to host
Key(keysym) insert key keysym
Key(0xxx) insert key with character code xx
Keymap(keymap) toggle alternate keymap (or remove with None)
KybdSelect(direction[,atom...]) Extend selection by one row or column
Left move cursor left
Left2 move cursor left 2 positions
*Macro(macro) run a macro
MonoCase toggle uppercase-only mode
MoveCursor move cursor to mouse position
MoveCursor(row, col) move cursor to (row,col)
*MoveCursorSelect move cursor to mouse position, light pen selection
Newline move cursor to first field on next line (or send ASCII LF)
NextWord move cursor to next word
*PA(n) Program Attention AID (n from 1 to 3)
*PF(n) Program Function AID (n from 1 to 24)
PreviousWord move cursor to previous word
Printer(Start[,lu]|Stop) start or stop printer session
PrintText(command) print screen text on printer
PrintWindow(command) print screen image (bitmap) on printer
Quit exit x3270
*Reconnect reconnect to previous host
Redraw redraw window
Reset reset locked keyboard
Right move cursor right
Right2 move cursor right 2 positions
*Script(command[,arg...]) run a script
SelectAll(atom) select entire screen
SetFont(font) change emulator font
*String(string) insert string (simple macro facility)
*SysReq System Request AID
Tab move cursor to next input field
Toggle(option[,set|clear]) toggle an option
ToggleInsert toggle insert mode
ToggleReverse toggle reverse-input mode
*Transfer(option=value...) file transfer
Unselect release selection
Up move cursor up
(the following are similar to xterm)
ignore do nothing
insert-selection([atom[,atom...]]) paste selection
move-select a combination of MoveCursor and select-start
select-end(atom[,atom...]]) complete selection and assign to atom(s)
select-extend move the end of a selection
select-start mark the beginning of a selection
set-select(atom[,atom...]]) assign existing selection to atom(s)
start-extend begin marking the end of a selection

The PrintText Action

The PrintText produces screen snapshots in a number of different forms. The default form wth no arguments sends a copy of the screen to the default printer. A single argument is the command to use to print, e.g., lpr. Multiple arguments can include keywords to control the output of PrintText:
file filename
Save the output in a file.
html
Save the output as HTML. This option implies file.
rtf
Save the output as RichText. This option implies file. The font defaults to Courier New and the point size defaults to 8. These can be overridden by the printTextFont and printTextSize resources, respectively.
string
Return the output as a string. This can only be used from scripts.
modi
Render modified fields in italics.
caption text
Add the specified text as a caption above the output. Within text, the special sequence %T% will be replaced with a timestamp.
secure
Disables the pop-up dialog.
command command
Directs the output to a command. This allows one or more of the other keywords to be specified, while still sending the output to the printer.

Macros and Scripts

There are several types of macros and script functions available.
The String Action
The simplest method for macros is provided via the String action. The arguments to String are one or more double-quoted strings which are inserted directly as if typed. The C backslash conventions are honored as follows. (Entries marked * mean that after sending the AID code to the host, x3270 will wait for the host to unlock the keyboard before further processing the string.)
\b Left
\exxxx EBCDIC character in hex
\f Clear*
\n Enter*
\pan PA(n)*
\pfnn PF(nn)*
\r Newline
\t Tab
\T BackTab
\uxxxx Unicode character in hex
\xxxxx Unicode character in hex

Note that the numeric values for the \e, \u and \x sequences can be abbreviated to 2 digits. Note also that EBCDIC codes greater than 255 and some Unicode character codes represent DBCS characters, which will work only if x3270 is built with DBCS support and the host allows DBCS input in the current field.

An example keymap entry would be:

Meta<Key>p: String("probs clearrdr\n")

Note: The strings are in ASCII and converted to EBCDIC, so beware of inserting control codes. Also, a backslash before a p may need to be doubled so it will not be removed when a resource file is read.

There is also an alternate form of the String action, HexString, which is used to enter non-printing data. The argument to HexString is a string of hexadecimal digits, two per character. A leading 0x or 0X is optional. In 3270 mode, the hexadecimal data represent EBCDIC characters, which are entered into the current field. In NVT mode, the hexadecimal data represent ASCII characters, which are sent directly to the host.

The Script Action
This action causes x3270 to start a child process which can execute x3270 actions. Standard input and output from the child process are piped back to x3270. The Script action is fully documented in x3270-script(1).
The macros Resource
An alternate method of defining macros is the "x3270.macros" resource. This resource is similar to a keymap, but instead of defining keyboard mappings, it associates a list of X actions with a name. These names are displayed on a Macros menu that appears when x3270 is connected to a host. Selecting one of the names on the menu executes the X actions associated with it. Typically the actions are String calls, but any action may be specified. Here is a sample macros resource definition, which would result in a four-entry Macros menu:
x3270.macros: \
log off: String("logout\n")\n\
vtam: String("dial vtam\n")\n\
pa1: PA(1)\n\
alt printer: PrintText("lpr -Plw2")

You can also define a different set of macros for each host. If there is a resource named `x3270.macros.somehost', it defines the macros menu for when x3270 is connected to somehost.

The -script Option
This facility allows x3270 to operate under the complete control of a script. x3270 accepts actions from standard input, and prints results on standard output. The -script option is fully documented in x3270-script(1).

Composite Characters

x3270 allows the direct entry of accented letters and special symbols. Pressing and releasing the "Compose" key, followed by two other keys, causes entry of the symbol combining those two keys. For example, "Compose" followed by the "C" key and the "," (comma) key, enters the "C-cedilla" symbol. A C on the status line indicates a pending composite character.

The mappings between these pairs of ordinary keys and the symbols they represent is controlled by the "x3270.composeMap" resource; it gives the name of the map to use. The maps themselves are named "x3270.composeMap.name". The default is "latin1", which gives mappings for most of the symbols in the ISO 8859-1 Latin-1 character set that are not in the 7-bit ASCII character set.

Note: The default keymap defines the "Multi_key" keysym as the "Compose" key. If your keyboard lacks such a key, you may set up your own "Compose" key with a keymap that maps some other keysym onto the Compose action.

APL Support

x3270 supports the full APL2 character set and the entry of APL characters from the keyboard.

APL characters are supported only in the special 3270 font.

Keyboard entry of APL characters is supported through the apl keymap modifier. This modifier defines the "Alt" key as an APL shift key, with a typical APL keyboard layout, e.g., "Alt" pressed with the A key results in the APL "alpha" symbol. Overstruck characters such as "quad-quote" are not defined as single keystrokes; instead they are entered as composites (see COMPOSITE CHARACTERS above). A special composite map, apl, is provided for this purpose.

Note: Some keyboards do not define the "Alt" key as a modifier, so keymaps that use the "Alt" key will not function. On a Sun for example, this can be remedied with the command:

xmodmap -e "add mod2 = Alt_L"

For convenience, an -apl option is defined, which is an abbreviation for the following resource definitions:

x3270.keymap: your_keymap_name,apl
x3270.charset: apl
x3270.composeMap: apl

There are a number of APL characters that are similar in appearance to non-APL characters. In particular, the APL "stile", "slope," "tilde" and "quotedot" characters are similar to the EBCDIC "bar", "backslash," "tilde" and "exclaim" characters. The APL characters are entered with the "Alt" key, and have slightly different appearances.

The complete list of special APL keysyms is as follows. Entries marked with an asterisk (*) represent simple aliases for standard EBCDIC characters. Entries marked with an (S) represent Sharp APL charatcers.

APL Symbol Hex x3270 Keysym x3270 Key x3270 Composed Keys
A underbar 41 apl_Aunderbar Alt-A A + underbar
alpha B0 apl_alpha Alt-a  
B underbar 42 apl_Bunderbar Alt-B B + underbar
bar 60* apl_bar -  
brace left C0 apl_braceleft Alt-{  
brace right D0 apl_braceright Alt-}  
C underbar 43 apl_Cunderbar Alt-C C + underbar
circle 9D apl_circle Alt-o  
circle bar ED apl_circlebar   circle + bar
circle slope CF apl_circleslope   circle + slope
circle star FD apl_circlestar   circle + star
circle stile CD apl_circlestile   circle + stile
colon 7A* apl_colon :  
comma 6B* apl_comma ,  
comma bar (S) E5 apl_commabar   comma + bar
D underbar 44 apl_Dunderbar Alt-D D + underbar
del BA apl_del Alt-g  
del stile DC apl_delstile   del + stile
del tilde FB apl_deltilde   del + tilde
delta BB apl_delta Alt-h  
delta stile DD apl_deltastile   delta + stile
delta underbar FC apl_deltaunderbar   delta + underbar
diamond 70 apl_diamond   up caret + down caret
dieresis 72 apl_dieresis Alt-1  
dieresis circle (S) E5 apl_dieresiscircle   dieresis + circle
dieresis dot EC apl_dieresisdot   dieresis + dot
dieresis jot (S) E4 apl_dieresisjot   dieresis + jot
divide B8 apl_divide Alt-+  
dot 4B* apl_dot .  
down arrow 8B apl_downarrow Alt-u  
down caret 78 apl_downcaret Alt-9  
down caret tilde CB apl_downcarettilde   down caret + tilde
down shoe AB apl_downshoe Alt-v  
down stile 8E apl_downstile Alt-d  
down tack AC apl_downtack Alt-b  
down tack jot FE apl_downtackjot   down tack + jot
down tack up tack DA apl_downtackuptack   down tack + up tack
E underbar 45 apl_Eunderbar Alt-E E + underbar
epsilon B1 apl_epsilon Alt-e  
epsilon underbar 75 apl_epsilonunderbar   epsilon + underbar
equal 7E* apl_equal "="  
equal underbar E1 apl_equalunderbar   equal + underbar
euro (S) E7 apl_euro   C + =
F underbar 46 apl_Funderbar Alt-F F + underbar
G underbar 47 apl_Gunderbar Alt-G G + underbar
greater 6E* apl_greater >  
H underbar 48 apl_Hunderbar Alt-H H + underbar
I underbar 49 apl_Iunderbar Alt-I I + underbar
iota B2 apl_iota Alt-i  
iota underbar 74 apl_iotaunderbar   iota + underbar
J underbar 51 apl_Junderbar Alt-J J + underbar
jot AF apl_jot alt-j  
K underbar 52 apl_Kunderbar Alt-K K + underbar
L underbar 53 apl_Lunderbar Alt-L L + underbar
left arrow 9F apl_leftarrow Alt-[  
left bracket AD apl_leftbracket [  
left paren 4D* apl_leftparen (  
left shoe 9B apl_leftshoe Alt-z  
less 4C* apl_less <  
M underbar 54 apl_Munderbar Alt-M M + underbar
N underbar 55 apl_Nunderbar Alt-N N + underbar
not equal BE apl_notequal Alt-8 equal + slash
not greater 8C apl_notgreater Alt-4 less + equal
not less AE apl_notless Alt-6 greater + equal
O underbar 56 apl_Ounderbar Alt-O O + underbar
omega B4 apl_omega Alt-w  
overbar A0 apl_overbar Alt-2  
P underbar 57 apl_Punderbar Alt-P P + underbar
plus 4E* apl_plus +  
Q underbar 58 apl_Qunderbar Alt-Q Q + underbar
quad 90 apl_quad Alt-l  
quad divide EE apl_quaddivide   quad + divide
quad jot 73 apl_quadjot   quad + jot
quad quote DE apl_quadquote   quad + quote
quad slope CE apl_quadslope   quad + slope
query 6F* apl_query ?  
quote 7D* apl_quote '  
quote dot DB apl_quotedot   quote + dot
R underbar 59 apl_Runderbar Alt-R R + underbar
rho B3 apl_rho Alt-r  
right arrow 8F apl_rightarrow Alt-]  
right bracket BD apl_rightbracket ]  
right paren 5D* apl_rightparen )  
right shoe 9A apl_rightshoe Alt-x  
S underbar 62 apl_Sunderbar Alt-S S + underbar
semicolon 5E* apl_semicolon ;  
slash 61* apl_slash /  
slash bar EA apl_slashbar   slash + bar
slope B7 apl_slope Alt-\  
slope bar EB apl_slopebar   slope + bar
squad CC apl_squad   quad + quad
star 5C* apl_star *  
stile BF apl_stile Alt-|  
T underbar 63 apl_Tunderbar Alt-T T + underbar
tilde 80 apl_tilde Alt-~  
times B6 apl_times Alt-=  
U underbar 64 apl_Uunderbar Alt-U U + underbar
underbar 6D* apl_underbar "_"  
up arrow 8A apl_uparrow Alt-y  
up caret 71 apl_upcaret Alt-0  
up caret tilde CA apl_upcarettilde   up caret + tilde
up shoe AA apl_upshoe Alt-c  
up shoe jot DF apl_upshoejot   up shoe + jot
up stile 8D apl_upstile Alt-s  
up tack BC apl_uptack Alt-n  
up tack jot EF apl_uptackjot   up tack + jot
V underbar 65 apl_Vunderbar Alt-V V + underbar
W underbar 66 apl_Wunderbar Alt-W W + underbar
X underbar 67 apl_Xunderbar Alt-X X + underbar
Y underbar 68 apl_Yunderbar Alt-Y Y + underbar
Z underbar 69 apl_Zunderbar Alt-Z Z + underbar

XIM Support

When compiled with DBCS support, x3270 supports multi-byte input methods via the XIM protocol.

The input method is selected by the XMODIFIERS environment variable or the -im command-line option.

The preedit type is specified by the -pt command-line option, with a default of OverTheSpot+1.

Screen Printing

Screen printing is handled through options on the File menu or by the PrintText and PrintWindow actions. Each results in a pop-up to confirm the print command.

The PrintText action (usually assigned to the key <Meta>p) sends the current screen image to the printer as ASCII characters. The default command used to print the data is controlled by the "x3270.printTextCommand" resource; the default is lpr. You may also use a keymap definition to pass a print command the PrintText action itself. The command receives the screen text as its standard input. For example, the following keymap will save the screen text in a file:

Meta<Key>f: PrintText("cat >screen.image")

Note: HardPrint is an alias for PrintText.

The PrintWindow action (usually assigned to the key <Meta>b) sends the current screen image to the printer as a bitmap. The default command used to print the data is controlled by the "x3270.printWindowCommand" resource; the default is

xwd -id %d | xpr | lpr.

You may also use a keymap definition to pass a print command to the PrintWindow action itself. If the command contains the text "%d", the window ID of x3270 will be substituted before it is run. For example, the following keymap will pop up a duplicate of the current screen image:

Meta<Key>g: PrintWindow("xwd -id %d | xwud &")

If the command for PrintWindow or PrintText begins with an "@" character, the initial pop-up menu to confirm the print command is not displayed and the command cannot be edited.

Bugs

Cursor highlighting will not work with if you use the NoTitleFocus option in your .twmrc file.

Passthru

x3270 supports the Sun telnet-passthru service provided by the in.telnet-gw server. This allows outbound telnet connections through a firewall machine. When a p: is prepended to a hostname, x3270 acts much like the itelnet(1) command. It contacts the machine named internet-gateway at the port defined in /etc/services as telnet-passthru (which defaults to 3514). It then passes the requested hostname and port to the in.telnet-gw server.

Proxy

The -proxy option or the x3270.proxy resource causes x3270 to use a proxy server to connect to the host. The syntax of the option or resource is:
type:host[:port]
The supported values for type are:
Proxy Type
Protocol
Default Port
http
RFC 2817 HTTP tunnel (squid)
3128
passthru
Sun in.telnet-gw
none
socks4
SOCKS version 4
1080
socks5
SOCKS version 5 (RFC 1928)
1080
telnet
No protocol (just send connect host port)
none

The special types socks4a and socks5d can also be used to force the proxy server to do the hostname resolution for the SOCKS protocol.

Files

/usr/lib/X11/x3270/ibm_hosts
$HOME/.x3270pro

Environment Variables

3270PRO Path of profile file, containing resource definitions. Merged after the system resource database, but before X3270RDB. Defaults to $HOME/.x3270pro.
NOX3270PRO If set, do not read the profile.
X3270RDB Additional resource definitions, merged after the profile file but before the command-line options.
KEYMAP Keymap name.
KEYBD Keymap name.

See Also

s3270(1), c3270(1), tcl3270(1), ibm_hosts(5), x3270-script(1), telnet(1), tn3270(1)
X Toolkit Intrinsics
Data Stream Programmer's Reference, IBM GA23-0059
Character Set Reference, IBM GA27-3831
RFC 1576, TN3270 Current Practices
RFC 1646, TN3270 Extensions for LUname and Printer Selection
RFC 2355, TN3270 Enhancements

Copyrights

Copyright © 1993-2009, Paul Mattes.
Copyright © 2004-2005, Don Russell.
Copyright © 2004, Dick Altenbern.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

*
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
*
Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Version

x3270 3.3.10ga4
This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/x3270/html/Keymap.html0000755000175000017500000001606111254565663017045 0ustar bastianbastian Creating a Custom x3270 Keymap

How to Create a Custom x3270 Keymap

It Might Already be Defined

First, you might want to make sure that the action you want isn't already defined in the default keymap. The default keymap, documented on the x3270 manual page, defines common actions using the Meta key. For example, the Reset action, which unlocks the keyboard, is defined as Meta-R.

You Might Just Need the Alt Keymap

If your keyboard does not have a Meta key, it probably has an Alt key. For such keyboards, there is an alternate version of the default keymap, called alt; it defines the same actions using the Alt key instead.  You can also specify the alt keymap at start-up with the command:
x3270 -keymap alt
You can also select the alt keymap at runtime with the Options->Change Keymap... menu option; type alt in the pop-up window.

Defining a Simple Keymap in .x3270pro

If the action you want isn't defined in the default keymap or the alt keymap, then you need to create a custom keymap.  The easiest way to do this is as follows. Using your favorite editor, create a file called .x3270pro in your home directory.  In that file, put the following:
! Use the 'mine' keymap, defined below
x3270.keymap: mine
! Definition of the 'mine' keymap
x3270.keymap.mine: #override \
    <Key>Prior: PF(7)\n\
    <Key>Next: PF(8)
The first entry (x3270.keymap) tells x3270 to use the keymap named mine.  The second entry (x3270.keymap.mine) is the definition of the mine keymap itself.

Now, run x3270, and do not specify a -keymap option.  The Page Up key will now emulate the 3270 PF7 key, and the Page Down key will emulate the 3270 PF8 key.  (If you do not have a Page Up or Page Down key, or if these keys do not generate the X11 Prior and Next keysyms, this will not work, but for most PC-based systems, it will.)

Rules for Keymap Definitions

You may now edit the keymap to create your own custom definition. The full set of rules for keymaps (which are actually X11 Translation Tables) takes a couple of chapters in a book -- I would suggest two O'Reilly's books (Volume 4M: X Toolkit Intrinsics Programming Manual, and Volume 5: X Toolkit Intrinsics Reference Manual) -- but here are the basics:
  • The first line is always:
    • x3270.keymap.name: #override \
    where name is replaced by the name of the keymap you want to define. (Note the backslash, which must be the last character on the line).
  • The body (middle) lines always have the format:
    • modifier <Key> keysym : Action(args)\n\
    where:
      modifier is an optional keyboard modifier such as Shift or Ctrl
      keysym is an X11 keysym: a symbolic name for a key, such as semicolon (the ';' key) or BackSpace (the Backspace key)
      Action is an x3270 action such as Enter or PF
      args are the optional action arguments, such as a number to specify which PF key to transmit.
    Note that each body line must end with the three characters '\n\'.
  • The last line is the same as the body lines, but must not have the '\n\' at the end:
    • modifier <Key> keysym : Action(args)
  • More-specific definitions must come before less-specific definitions.  For example, the definition for Shift<Key>Backspace must come before the definition for <Key>BackSpace (which also 'matches' the BackSpace key with the Shift key pressed).

How to Find the Keysyms

To find out which keysym is being generated for any given key on your keyboard, start x3270, but do not connect to a host.  Then select the File->Trace Keyboard and Mouse Events menu option, and press the No File button on the pop-up.

An xterm window will appear.  In that window, several lines of text will appear for each key you press.  Each entry will begin with the text for the left-hand side of a keymap entry that will match the key you pressed.  You can cut and paste the text into your keymap definition.

How to Find the Actions

These are documented on the x3270 manual page.

How to Debug Your Keymap

There are two x3270 options to aid with keymap debugging.  The File->Trace Keyboard and Mouse Events menu option pops up an xterm window which traces each keyboard and mouse event that x3270 processes.  The information traced includes the keymap (and line within the keymap) that matched the event, the x3270 action that was run in response, and if for some reason the action did not work, why it did not work.

The Options->Display Current Keymap menu option pops up a window which displays the current keymap. This pop-up tells you exactly which keymap entries are active, and can be sorted by keymap name, event, or action name.  Often times it will point out that x3270 isn't using the keymap you thought it was, or that some of your keymap entries are interfering with one another (such as the more-specific rule described above).

Note that one of the commonest problems in configuring x3270 is figuring out where resources are being defined. Keymaps are defined using resources, so this problem can complicate keymap definitions.  X11 resources can be defined in a number of different places:

  • In your X server, by reading them in with the xrdb command
  • In the file .Xdefaults in your home directory
  • In the file .Xdefaults-hostname in your home directory
  • In the file /usr/X11R6/lib/X11/app-defaults/X3270 (this is disabled by default, but x3270 can be built to consult this file)
  • In the definitions compiled into x3270 from the file X3270.xad
  • In the file .x3270pro in your home directory
Note that of the above list, .x3270pro is guaranteed to be consulted last, and its definitions override anything that appears in any of the other places.  This is why the example in this document uses .x3270pro. ibm-3270-3.3.10ga4/x3270/html/ibm_hosts.html0000644000175000017500000000760711261527752017604 0ustar bastianbastian ibm_hosts Manual Page

ibm_hosts Manual Page

Contents

Name
Synopsis
Description
Example
Files
See Also

Name

ibm_hosts - host database for x3270 and c3270

Synopsis

/usr/lib/X11/x3270/ibm_hosts

Description

The ibm_hosts file contains information regarding IBM hosts on the network. An IBM host is a host which can communicate with a 3270 terminal emulator such as x3270 or c3270. Each line defines a name in the following format (optional fields are shown in brackets):

name type [opt:]...[luname@]hostname[:port] [actions]

Items are separated by any number of blanks and/or TAB characters. A line beginning with # is taken as a comment (note that # anywhere else on a line does not indicate a comment).

The name field is a mnemonic used to identify the host.

The type field is a keyword that indicates the type of entry. The value primary means that the name will be included in host-selection menus that may be displayed by a 3270 emulator. The value alias means that the name will not be included in menus, but will still be accepted as valid input when a host name is required.

The hostname field is the Internet hostname or dot-notation Internet address of the host.

The hostname can include `s:' or `p:' prefixes, e.g., s:finicky (see the x3270(1) or c3270(1) man page sfor details). It can also include an LU name, separated by an `@' character, e.g., oddlu@bluehost. Finally, it can include a non-default port number, appended to the hostname with a colon `:' character, e.g., bluehost:97. (For compatability with earlier versions of x3270, the port can also be separated by a slash `/' character.)

The optional actions field specifies actions to be taken once the connection is made and a data-entry field is defined. If the text looks like an action, e.g., PF(1), it is unmodified; otherwise it is taken as the parameter to the String() action. The actions are not intended for entering usernames and passwords; rather they provide an automated way of specifying a front-end menu option.

Example

Given the following ibm_hosts file:

mvs primary mvs-host
tso alias mvs-host
mvs2 primary mvs-host:4012
vm primary vtam Tab() String(3) Enter()
A 3270 emulator will display four names (mvs, mvs2, afhost and vm) on its hosts menu. The names mvs and tso will cause connections to the host mvs-host. The name mvs2 will also cause a connection to mvs-host, but to port 4012 rather than the emulator's default port (usually 23). The name vm will cause the 3270 emulator to connect to the host vtam (presumably some sort of host-selection front-end), enter the string `3' on the second data-entry field on the screen, and send the Enter AID sequence.

Files

/usr/lib/X11/x3270/ibm_hosts

See Also

x3270(1), c3270(1)
This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/x3270/html/FAQ.html0000644000175000017500000003066311256027623016216 0ustar bastianbastian x3270 Frequently Asked Questions

x3270, c3270, wc3270, s3270, tcl3270 and pr3287 Frequently Asked Questions

If you have a problem building, installing, or running one of the programs in the x3270 suite, please browse through this file first.

General Questions

wc3270 includes mkshort.exe. Isn't that some sort of keylogger?

The program called mkshort.exe that is installed with wc3270 is not spyware -- it's a little utility program that is used to create the desktop shortcuts when wc3270 is installed. Unfortunately, it has the same name as a very bad program.

You can safely remove mkshort.exe from the wc3270 installation directory; it is not needed once wc3270 is installed.

mkshort.exe will be removed (or at least renamed) in a future release of wc3270.

How do I change the keyboard mapping?

Look at the x3270 Keymap document, the c3270 Keymap document or the wc3270 Keymap document.

Why can't I map the Alt, Ctrl or Shift keys in c3270?

That's because c3270 runs on dumb terminals, not on graphics displays.

c3270 can only respond to keys that generate input on a TTY device, and it can only respond differently to combinations of keys that generate different input on a TTY device.

Most dumb terminals -- and that includes the Linux console -- do not generate any TTY input at all when the Alt, Ctrl or Shift keys are pressed. They generate input only when another key is pressed in combination with one of those keys. In addition, there is nothing in the input that indicates that the Alt or Shift key was pressed in combination with a key. The presence of the Ctrl key can be inferred by the ASCII code that is generated (the Ctrl key subtracts 0x20 from the ASCII value of the key without Ctrl).

Furthermore, most terminals generate exactly the same TTY input for a given function key (F1..F12), whether or not Shift, Ctrl or Alt are pressed. This is complicated by the fact that the curses library, which is what c3270 uses to do its I/O, does not even provide a way to convey such an event to c3270 -- there is a "Function Key 1" event, but no "Shifted Function Key 1" event and no "Alt Function Key 1" event.

Is there a Windows version?

Yes!

First, there is wc3270, the native Windows console version of c3270.

Second, x3270 and c3270 compile and run under Cygwin, the free Unix emulator for Windows. (In fact, they are standard packages with more recent versions of Cygwin). You can get Cygwin here.

If disk space is a concern, you can run c3270 with a minimal set of Cygwin DLLs and one text file -- there is no need to install all of Cygwin.

Note that there is not a native Win32 port of x3270, nor are there concrete plans for one.

Why are the [ and ] characters displayed wrong?

Look at the Brackets document.

Fatal Errors From 'make'

Make reports: Fatal error: Don't know how to make target `FontObj(3270)'.

This generally means that you are running X11R4, rather than X11R5 or X11R6. x3270 does not run under X11R4.

Other Problems

x3270 Isn't Using the 3270 Font

One of the trickier areas; x3270 uses its own fonts to replicate a life-like IBM 3270. This is not fatal, however; x3270 can use any fixed-width X font. If it can't find its own font, it defaults to "fixed".

The simplest probem to fix is that you haven't told your X server that there are new fonts it can use. This is corrected with:

    xset fp rehash
If this doesn't help, it is possible that your X server font path doesn't include the directory that the 3270 fonts were installed in. Run the command "xset q". The output will include an entry like:
    Font Path:
      /usr/lib/X11/fonts/misc/,/usr/lib/X11/fonts/Speedo/,/usr/lib/X11/fonts/75dpi/,/usr/lib/X11/fonts/100dpi/
x3270's fonts are usually installed in /usr/local/fonts. If this (or some variation on it) does not appear in the "xset q" output, you can try:
    xset fp+ /usr/local/fonts/
    xset fp rehash

x3270 isn't paying any attention to my keymap definition.

There are two likely causes for this problem: either x3270 isn't seeing your keymap definition, or there is something wrong with the definition itself.

You can tell exactly which keymap and keymap modifiers x3270 is using with the "About x3270" option on the "Options" menu. There is an entry labeled "Keyboard map:" which lists the keymap(s) in effect. If yours is missing, there are a number of possible causes:

  • There is a hierarchy of places that x3270 looks for the keymap list, and the one you are assuming may not be the one it finds. In the following list, earlier objects override those below:
    • The -keymap switch on the command line.
    • The definition of "x3270.keymap" in your .Xdefaults file.
    • The KEYMAP environment variable.
    • The KEYBD environment variable.
  • You may have modified your .Xdefaults file, but not yet re-read the database. You can either log off of X and start over, or you can run the command:
    	xrdb $HOME/.Xdefaults
    
  • Beware that there are some subtle interactions between .Xdefaults and cpp on your system. On a sun4 for example, cpp defines the symbol "sun" as "1", so a keymap definition for "sun-k4" becomes "1-k4".
  • A keymap definition is in two parts, the name of the keymap and the definition of the keymap. The "x3270.keymap" resource controls the name of the keymap; then for each keymap type "x" there must be an additional resourced named "x3270.keymap.x". If this definition is missing, x3270 will not recognize the keymap.
  • One other cause of missed keymaps is the symbol "sun" defined by the C preprocessor. If you have an entry in your .Xdefaults file that looks like:
    	x3270.keymap: sun-k5
    
    then use xrdb to read in the file, the symbol "sun" may be defined as "1" as the file is read. This turns the above into:
    	x3270.keymap: 1-k5
    
    causing much confusion.

    The fix is to add the following line to the top of your .Xdefaults:

    	#undef sun
    
If your keymap appears in the list, but doesn't seem to have any effect, the causes are probably more subtle. Keymap definitions (X translation tables) are an object of study in themselves; the O'Reilly books (volume 4 in particular) are your best guide here, along with a thorough reading of the "Resources" document.

The "Alt" key doesn't work.

If the "A" appears on the status line when you press the Alt key, but none of the key mappings that use Alt seem to work (i.e., the APL keys), perhaps your X server isn't configured with Alt as a modifier. Try the following xmodmap command:
	xmodmap -e 'add Mod2 = Alt_L'
If this fixes the problem, you can add it to your .xinitrc file, so it takes effect every time your start X.

x3270 is misbehaving on a certain application.

If x3270 produces a different display or interaction than a real 3270 or some other emulator, it is entirely possible that x3270 is at fault. What you can do to help debug it is to capture a trace of the session. The easiest way to do this is:
    x3270 -trace
x3270 will create a trace file in /tmp, which will contain a dump of all of the data that x3270 sent or received, along with its interpretation. x3270 will also pop up a window to view the file while it is being created; the title of that window is the full pathname of the trace file. If you are familiar with the 3270 Data Stream protocol, you may be able to figure out the problem yourself; otherwise, after suitable editing to remove passwords and proprietary information, you may send it in (see below).

I can't get Num Lock to work on my Sun keyboard.

If you are using an X server based directly on the MIT distribution (the NumLock light does not turn on when you press the NumLock key), then you are pretty much stuck; your server does not support NumLock. (However, you can get the keypad to produce numbers by holding down the Shift key.)

There is no termcap entry for "IBM-3278-xxx"

If you log into a non-IBM host with x3270 your TERM variable will be set to "IBM-327x", which is not especially useful for running programs like vi.

One solution is to set your TERM variable to "xterm" after you log in, and to set the number of lines and columns to match the current x3270 model number (this is done through the "stty" command or with environment variables, depending on your system).

A second solution is to create termcap entries for the 3270 terminal types. Here are some sample entries:

    I2|IBM-3278-2|x3270 Emulating 3278-2:li#24:tc=xterm:
    I3|IBM-3278-3|x3270 Emulating 3278-3:li#32:tc=xterm:
    I4|IBM-3278-4|x3270 Emulating 3278-4:li#43:tc=xterm:
    I5|IBM-3278-5|x3270 Emulating 3278-5:li#27:co#127:tc=xterm:

My screen isn't being drawn properly

There is a bug in certain versions of the Linux Mach32 X server, which causes the x3270 screen to be drawn incompletely. The screen image can be restored by iconifying and un-iconifying the window.

x3270 can be modified to work around this problem. An unfortunate side-effect is that it will no longer be able to display APL characters, or line-drawing characters with any of the 3270 fonts.

To rebuild x3270 to work around this bug, edit the Imakefile and add a line at the top:

    EXTRA_DEFINES = -DBROKEN_MACH32
Then rebuild the makefile, the module "screen.o", and x3270:
    rm screen.o
    xmkmf
    make depend
    make

The PF12 Key Doesn't Work on KDE

KDE reserves the F12 key for "Mouse Emulation", so x3270 cannot use this key. To allow x3270 to use F12, pull up the KDE Control Center, look under "Look & Feel", and under that, "Key Bindings". Remove the binding for F12.

Getting Help

If you are still having a problem with x3270, feel free to send e-mail to Paul Mattes No guarantees are made about responses to particular problems, but a patches are usually forthcoming in a few days. You can also ask to be added to the x3270 mailing list, where you can find out about new releases and bug fixes.

When you send a question about x3270, please include the following information. It makes it much easier to narrow down the problem.

  1. The version of x3270 you are using, including all patches, e.g., "3.3.2". This is displayed at the top of the "About x3270" pop-up.
  2. What kind of machine you are running on, e.g., "Sun SPARC-10".
  3. What operating system you are running, and what version, e.g., "SunOS 4.1.3_U1" or "Irix 5.2". The "uname -a" command will usually provide this information.
  4. What version of X Windows you are running, and where it came from, e.g., "X11R6 built from the MIT distribution", or "Sun OpenWindows 3.0 as delivered with the machine".
Complaints, suggestions, requests for enhancements, and porting experiences are also welcome. Code changes for bug fixes and enhancements are also welcome, provided that you don't mind your code being placed (often anonymously) in the public domain. ibm-3270-3.3.10ga4/x3270/html/Charset.html0000644000175000017500000004537511254565663017217 0ustar bastianbastian x3270 Character Set

x3270 Character Set

x3270 can use any constant-spaced X11 font, but in order to display special characters on the status line, it uses a family of special fonts with nonstandard ordering.

The character set ordering was originally based on the character generator ROM for a particular IBM terminal, but has since been modified to include all of the graphics in later versions of the U.S. EBCDIC and ISO 8859-1 Latin-1 character sets.

The column definitions are:

3270 CG
The index in the 3270 character set, and if the graphic is not in the Latin-1 character set, its name.
EBCDIC
The Code Page 037 (U.S.-International) EBCDIC code that is displayed using that graphic. If preceded by "GE", the graphic is generated by preceding the EBCDIC code by a Graphic Escape order.
Unicode
The Unicode code and symbol name that is equivalent to that CG index. If an ISO 10646-1 X11 font is used rather than a 3270 font, this is the character that x3270 will display for the EBCDIC code listed to the left.
All numbers are in hexadecimal.

Note that CG indices 0x0c0-0x0cf and 0x0e0-0x0ef correspond to field attribute bytes; they normally display as blanks and do not have names. GC indices 0x200-0x21f correspond to the DEC line-drawing characters.

3270 CG                 EBCDIC  Unicode

000 null                00      U+0020   space 
001                     41      U+00e7   nobreakspace 
002 euro                --      U+20ac € eurosign
006 eightones           ff      U+25cf ● solidcircle
007                     ca      U+00ad ­ hyphen
008                     6e      U+003e > greater
009                     4c      U+003c < less
00a                     ba      U+005b [ bracketleft
00b                     bb      U+005d ] bracketright
00c                     5d      U+0029 ) parenright
00d                     4d      U+0028 ( parenleft
00e                     d0      U+007d } braceright
00f                     c0      U+007b { braceleft

3270 CG                 EBCDIC  Unicode

010                     40      U+0020 space
011                     7e      U+003d = equal
012                     7d      U+0027 ' apostrophe
013                     7f      U+0022 " quotedbl
014                     61      U+002f / slash
015                     e0      U+005c \ backslash
016                     4f      U+007c | bar
017                     6a      U+00a6 ¦ brokenbar
018                     6f      U+003f ? question
019                     5a      U+0021 ! exclam
01a                     5b      U+0024 $ dollar
01b                     4a      U+00a2 ¢ cent
01c                     b1      U+00a3 £ sterling
01d                     b2      U+00a5 ¥ yen
01e                     b6      U+00b6 ¶ paragraph
01f                     9f      U+00a4 ¤ currency

3270 CG                 EBCDIC  Unicode

020                     f0      U+0030 0
021                     f1      U+0031 1
022                     f2      U+0032 2
023                     f3      U+0033 3
024                     f4      U+0034 4
025                     f5      U+0035 5
026                     f6      U+0036 6
027                     f7      U+0037 7
028                     f8      U+0038 8
029                     f9      U+0039 9
02a                     59      U+00df ß ssharp
02b                     b5      U+00a7 § section
02c                     7b      U+0023 # numbersign
02d                     7c      U+0040 @ at
02e                     6c      U+0025 % percent
02f                     6d      U+005f _ underscore

3270 CG                 EBCDIC  Unicode

030                     50      U+0026 & ampersand
031                     60      U+002d - minus
032                     4b      U+002e . period
033                     6b      U+002c , comma
034                     7a      U+003a : colon
035                     4e      U+002b + plus
036                     5f      U+00ac ¬ notsign
037                     bc      U+00af ¯ macron
038                     90      U+00b0 ° degree
039                     b3      U+00b7 · periodcentered
03a                     b0      U+005e ^ asciicircum
03b                     a1      U+007e ~ asciitilde
03c                     bd      U+00a8 ¨ diaeresis
03d                     79      U+0060 ` grave
03e                     be      U+00b4 ´ acute
03f                     9d      U+00b8 ¸ cedilla

3270 CG                 EBCDIC  Unicode

040                     44      U+00e0 à agrave
041                     54      U+00e8 è egrave
042                     58      U+00ec ì igrave
043                     cd      U+00f2 ò ograve
044                     dd      U+00f9 ù ugrave
045                     46      U+00e3 ã atilde
046                     cf      U+00f5 õ otilde
047                     df      U+00ff ÿ ydiaeresis
048                     ad      U+00dd Ý Yacute
049                     8d      U+00fd ý yacute
04a                     51      U+00e9 é eacute
04b                     b7      U+00bc ¼ onequarter
04c                     b8      U+00bd ½ onehalf
04d                     b9      U+00be ¾ threequarters
04e                     dc      U+00fc ü udiaeresis
04f                     48      U+00e7 ç ccedilla

3270 CG                 EBCDIC  Unicode

050                     43      U+00e4 ä adiaeresis
051                     53      U+00eb ë ediaeresis
052                     57      U+00ef ï idiaeresis
053                     cc      U+00f6 ö odiaeresis
054                     a0      U+00b5 µ mu
055                     42      U+00e2 â acircumflex
056                     52      U+00ea ê ecircumflex
057                     56      U+00ee î icircumflex
058                     cb      U+00f4 ô ocircumflex
059                     db      U+00fb û ucircumflex
05a                     45      U+00e1 á aacute
05b                     bf      U+00d7 × multiply
05c                     55      U+00ed í iacute
05d                     ce      U+00f3 ó oacute
05e                     de      U+00fa ú uacute
05f                     49      U+00f1 ñ ntilde

3270 CG                 EBCDIC  Unicode

060                     64      U+00c0 À Agrave
061                     74      U+00c8 È Egrave
062                     78      U+00cc Ì Igrave
063                     ed      U+00d2 Ò Ograve
064                     fd      U+00d9 Ù Ugrave
065                     66      U+00c3 Ã Atilde
066                     ef      U+00d5 Õ Otilde
067                     da      U+00b9 ¹ onesuperior
068                     ea      U+00b2 ² twosuperior
069                     fa      U+00b3 ³ threesuperior
06a                     9a      U+00aa ª ordfeminine
06b                     9b      U+00ba º masculine
06c                     8a      U+00ab « guillemotleft
06d                     8b      U+00bb » guillemotright
06e                     aa      U+00a1 ¡ exclamdown
06f                     ab      U+00bf ¿ questiondown

3270 CG                 EBCDIC  Unicode

070                     63      U+00c4 Ä Adiaeresis
071                     73      U+00cb Ë Ediaeresis
072                     77      U+00cf Ï Idiaeresis
073                     ec      U+00d6 Ö Odiaeresis
074                     fc      U+00dc Ü Udiaeresis
075                     62      U+00c2 Â Acircumflex
076                     72      U+00ca Ê Ecircumflex
077                     76      U+00ce Î Icircumflex
078                     eb      U+00d4 Ô Ocircumflex
079                     fb      U+00db Û Ucircumflex
07a                     65      U+00c1 Á Aacute
07b                     71      U+00c9 É Eacute
07c                     75      U+00cd Í Iacute
07d                     ee      U+00d3 Ó Oacute
07e                     fe      U+00da Ú Uacute
07f                     69      U+00d1 Ñ Ntilde

3270 CG                 EBCDIC  Unicode

080                     81      U+0061 a
081                     82      U+0062 b
082                     83      U+0063 c
083                     84      U+0064 d
084                     85      U+0065 e
085                     86      U+0066 f
086                     87      U+0067 g
087                     88      U+0068 h
088                     89      U+0069 i
089                     91      U+006a j
08a                     92      U+006b k
08b                     93      U+006c l
08c                     94      U+006d m
08d                     95      U+006e n
08e                     96      U+006f o
08f                     97      U+0070 p

3270 CG                 EBCDIC  Unicode

090                     98      U+0071 q
091                     99      U+0072 r
092                     a2      U+0073 s
093                     a3      U+0074 t
094                     a4      U+0075 u
095                     a5      U+0076 v
096                     a6      U+0077 w
097                     a7      U+0078 x
098                     a8      U+0079 y
099                     a9      U+007a z
09a                     9c      U+00e6 ae
09b                     70      U+00f8 ø oslash
09c                     47      U+00e5 å aring
09d                     e1      U+00f7 ÷ division
09e fm                  1e      U+003b ; semicolon
09f dup                 1c      U+002a * asterisk

3270 CG                 EBCDIC  Unicode

0a0                     c1      U+0041 A
0a1                     c2      U+0042 B
0a2                     c3      U+0043 C
0a3                     c4      U+0044 D
0a4                     c5      U+0045 E
0a5                     c6      U+0046 F
0a6                     c7      U+0047 G
0a7                     c8      U+0048 H
0a8                     c9      U+0049 I
0a9                     d1      U+004a J
0aa                     d2      U+004b K
0ab                     d3      U+004c L
0ac                     d4      U+004d M
0ad                     d5      U+004e N
0ae                     d6      U+004f O
0af                     d7      U+0050 P

3270 CG                 EBCDIC  Unicode

0b0                     d8      U+0051 Q
0b1                     d9      U+0052 R
0b2                     e2      U+0053 S
0b3                     e3      U+0054 T
0b4                     e4      U+0055 U
0b5                     e5      U+0056 V
0b6                     e6      U+0057 W
0b7                     e7      U+0058 X
0b8                     e8      U+0059 Y
0b9                     e9      U+005a Z
0ba                     9e      U+00c6 Æ AE
0bb                     80      U+00d8 Ø Ooblique
0bc                     67      U+00c5 Å Aring
0bd                     68      U+00c7 Ç Ccedilla
0be                     5e      U+003b ; semicolon
0bf                     5c      U+002a * asterisk

3270 CG                 EBCDIC  Unicode

0d0                     b4      U+00a9 © copyright
0d1                     af      U+00ae ® registered
0d2 boxA
0d3 insert
0d4 boxB
0d5 box6
0d6                     8f      U+00b1 ± plusminus
0d7                     ac      U+00d0 Ð ETH
0d8 rightarrow
0d9                     ae      U+00de Þ THORN
0da upshift
0db human
0dc underB
0dd downshift
0de boxquestion
0df boxsolid		3f	U+25a0 ■

3270 CG                 EBCDIC  Unicode

0f0 badcommhi
0f1 commhi
0f2 commjag
0f3 commlo
0f4 clockleft
0f5 clockright
0d6 lock
0f7                     8c      U+00f0 ð eth
0f8 leftarrow
0f9                     8e      U+00fe þ thorn
0fa keyleft
0fb keyright
0fc box4
0fd underA
0fe magcard
0ff boxhuman

3270 CG                 EBCDIC  Unicode

101 apl_Aunderbar       GE 41
107 apl_upcarettilde    GE ca   U+2372 ⍲
10a apl_del             GE ba	U+2207 ∇
10b apl_delta           GE bb	U+2206 ∆
10e apl_braceright      GE d0	U+007d } braceright
10f apl_braceleft       GE c0	U+007b { braceleft

3270 CG                 EBCDIC  Unicode

110 apl_space           GE 40	U+0020 space
115 apl_equiv           GE e0	U+2261 ≡
11c apl_epsilon         GE b1	U+03b5 㬵
11d apl_iota            GE b2	U+03b9 㬹
11e apl_multiply        GE b6	U+00d7 × multiply
11f apl_leftarrow       GE 9f	U+2190 ←

3270 CG                 EBCDIC  Unicode

120 apl_super0          GE f0	U+2070 ⁰
121 apl_super1          GE f1	U+00b9 ¹ onesuperior
122 apl_super2          GE f2	U+00b2 ² twosuperior
123 apl_super3          GE f3	U+00b3 ³ threesuperior
124 apl_super4          GE f4	U+2074 ⁴
125 apl_super5          GE f5	U+2075 ⁵
126 apl_super6          GE f6	U+2076 ⁶
127 apl_super7          GE f7	U+2077 ⁷
128 apl_super8          GE f8	U+2078 ⁸
129 apl_super9          GE f9	U+2079 ⁹
12a apl_Runderbar       GE 59

3270 CG                 EBCDIC  Unicode

137 apl_uptack          GE bc	U+22a4 ⊤
138 apl_quad            GE 90	U+2395 ⎕
139 apl_rho             GE b3	U+03c1 ρ
13a apl_alpha           GE b0	U+03b1 α
13b apl_degree          GE a1	U+00b0 ° degree
13c apl_bracketright    GE bd	U+005d ] bracketright
13e apl_notequal        GE be	U+2260 ≠
13f apl_circle          GE 9d	U+25cb ○

3270 CG                 EBCDIC  Unicode

140 apl_Dunderbar       GE 44
141 apl_Munderbar       GE 54
142 apl_Qunderbar       GE 58
143 apl_circlestile     GE cd	U+233d ⌽
144 apl_deltastile      GE dd	U+234b ⍋
145 apl_Funderbar       GE 46
146 apl_circleslope     GE cf	U+2349 ⍉
147 apl_upshoejot       GE df	U+235d ⍝
148 apl_bracketleft     GE ad	U+005b [ bracketleft
149 apl_upstile         GE 8d	U+2308 ⌈
14a apl_Junderbar       GE 51
14b apl_slope           GE b7	U+005c \ backslash
14c apl_divide          GE b8	U+00f7 ÷ division
14e apl_delstile        GE dc	U+2352 ⍒
14f apl_Hunderbar       GE 48

3270 CG                 EBCDIC  Unicode

150 apl_Cunderbar       GE 43
151 apl_Lunderbar       GE 53
152 apl_Punderbar       GE 57
153 apl_squad           GE cc	U+2337 ⌷
154 apl_overbar         GE a0	U+203e ‾
155 apl_Bunderbar       GE 42
156 apl_Kunderbar       GE 52
157 apl_Ounderbar       GE 56
158 apl_downcarettilde  GE cb	U+2371 ⍱
159 apl_quotedot        GE db	U+0021 ! exclam
15a apl_Eunderbar       GE 45
15b apl_stile           GE bf	U+2502 │
15c apl_Nunderbar       GE 55
15d apl_quadslope       GE ce	U+2342 ⍂
15e apl_quadquote       GE de	U+235e ⍞
15f apl_Iunderbar       GE 49

3270 CG                 EBCDIC  Unicode

160 apl_Uunderbar       GE 64
161 apl_iotaunderbar    GE 74	U+2378 ⍸
162 apl_downcaret       GE 78	U+2228 ∨
163 apl_circlebar       GE ed	U+2296 ⊖
164 apl_circlestar      GE fd	U+235f ⍟
165 apl_Wunderbar       GE 66
166 apl_uptackjot       GE ef	U+2355 ⍕
167 apl_downtackup      GE da	U+2336 ⌶
168 apl_slashbar        GE ea	U+233f ⌿
16a apl_rightshoe       GE 9a	U+2283 ⊃
16b apl_leftshoe        GE 9b	U+2282 ⊂
16c apl_uparrow         GE 8a	U+2191 ↑
16d apl_downarrow       GE 8b	U+2193 ↓
16e apl_upshoe          GE aa	U+22c2 ⋂
16f apl_downshoe        GE ab	U+22c3 ⋃

3270 CG                 EBCDIC  Unicode

170 apl_Tunderbar       GE 63
171 apl_quadjot         GE 73	U+233b ⌻
172 apl_righttack       GE 77	U+22a3 ⊣
173 apl_diaeresisdot    GE ec	U+2235 ∵
174 apl_deltaunderbar   GE fc	U+2359 ⍙
175 apl_Sunderbar       GE 62
176 apl_diaeresis       GE 72	U+00a8 ¨ diaeresis
177 apl_lefttack        GE 76	U+22a2 ⊢
178 apl_slopebar        GE eb	U+2340 ⍀
179 apl_deltilde        GE fb	U+236b ⍫
17a apl_Vunderbar       GE 65
17b apl_upcaret         GE 71	U+22c0 ⋀
17c apl_epsilonunderbar GE 75	U+2377 ⍷
17d apl_quaddivide      GE ee	U+2339 ⌹
17e apl_downtackjot     GE fe	U+234e ⍎
17f apl_Zunderbar       GE 69

3270 CG                 EBCDIC  Unicode

180 apl_2vertical       GE 81	(none?)
181 apl_2horizontal     GE 82	(none?)
182 apl_leftvbar        GE 83	U+23b8 ⎸
183 apl_rightvbar       GE 84	U+23b9 ⎹
184 apl_midvbar         GE 85	U+23a5 ⎥
189 apl_leftsolid       GE 91	U+258c ▌
18a apl_rightsolid      GE 92	U+2590 ▐
18b apl_topsolid        GE 93	U+2580 ▀
18c apl_bottomsolid     GE 94	U+2584 ▄
18d apl_solid           GE 95	U+25a0 ■

3270 CG                 EBCDIC  Unicode

192 apl_midhbar         GE a2	U+2500 ─
193 apl_solidcircle     GE a3	U+2022 •
194 apl_subn            GE a4	(none)
19a apl_splat           GE 9c	U+00a4 ¤ currency
19b apl_diamond         GE 70	U+25c6 ◆
19c apl_Gunderbar       GE 47
19d apl_sub1            GE e1	U+2081 ₁

3270 CG                 EBCDIC  Unicode

1a0 apl_superlparen     GE c1	U+207d ⁽
1a1 apl_plus2           GE c2	U+002b + plus
1a2 apl_solidbox        GE c3	U+220e ∎
1a3 apl_lowerleft       GE c4	U+2514 └
1a4 apl_upperleft       GE c5	U+250c ┌
1a5 apl_leftjoin        GE c6	U+251c ├
1a6 apl_bottomjoin      GE c7	U+2534 ┴
1a7 apl_section         GE c8	U+00a7 § section
1a9 apl_superrparen     GE d1	U+207e ⁾
1aa apl_minus2          GE d2	U+002d - minus
1ab apl_intersect       GE d3	U+253c ┼
1ac apl_lowerright      GE d4	U+2518 ┘
1ad apl_upperright      GE d5	U+2510 ┐
1ae apl_rightjoin       GE d6	U+2524 ┤
1af apl_topjoin         GE d7	U+252c ┬

3270 CG                 EBCDIC  Unicode

1b0 apl_paragraph       GE d8	U+00b6 ¶ paragraph
1b2 apl_sub2            GE e2	U+2082 ₂
1b3 apl_sub3            GE e3	U+2083 ₃
1b4 apl_dieresisjot     GE e4	U+2364 ⍤                (Sharp) 
1b5 apl_dieresiscircle  GE e5	U+2365 ⍥                (Sharp) 
1b6 apl_commabar        GE e6	U+236a ⍪                (Sharp) 
1b7 apl_euro            GE e7	U+20ac €                (Sharp) 
1ba apl_plusminus       GE 9e	U+00b1 ± plusminus
1bb apl_tilde           GE 80	U+007e ~ asciitilde
1bc apl_Xunderbar       GE 67
1bd apl_Yunderbar       GE 68

3270 CG                 EBCDIC  Unicode

1d0 apl_omega           GE b4	U+03c9 ω
1d1 apl_jot             GE af	U+2218 ∘
1d6 apl_rightarrow      GE 8f	U+2192 →
1d7 apl_downtack        GE ac	U+22a5 ⊥
1d9 apl_notless         GE ae	U+2265 ≥

3270 CG                 EBCDIC  Unicode

1f7 apl_notgreater      GE 8c	U+2264 ≤
1f9 apl_downstile       GE 8e	U+230a ⌊
ibm-3270-3.3.10ga4/x3270/html/ReleaseNotes.html0000644000175000017500000016451611261527752020211 0ustar bastianbastian x3270 Release Notes

Changes in x3270, c3270, wc3270, s3270, tcl3270, pr3287 and wpr3287 3.3

3.3 is the current development line for the x3270 suite.

Changes in version 3.3.10ga4, 2. October 2009

  • [all x3270] Improved the File Transfer summary display.
  • [all x3270] Removed the keyboard lock when processing an Enter AID in SSCP-LU mode.
  • [x3270] Fixed a build problem when DBCS support is disabled.
  • [c3270] Made the special keymap key names (e.g., PRINT) case-insensitive.
  • [c3270] Fixed a problem with keyboard input in ISO 8859 locales.
  • [x3270] Increased the maximum number of fonts scanned to 50000.

Changes in version 3.3.10ga3, 15. September 2009

  • [x3270] Fixed some bugs in the xmkmf-free build.

Changes in version 3.3.10alpha2, 10. September 2009

  • [c3270] Added the ability to move the 3270 cursor with the mouse, if the terminal supports it. Add a Mouse resource, which can be set to False to disable it.
  • [all 3270] Added a Translate keyword to the Transfer action's parameters and an additional question to the interactive c3270/wc3270 Transfer dialog, to allow the automatic remapping of text (usually done to get the most accurate translation) to be disabled.
  • Restored the pop-up window that displays trace files.

Changes in version 3.3.10alpha1, 3. September 2009

  • [3270] Allow the program to be built without xmkmf.
  • [all 3270] Fixed the mapping of EBCDIC X'FF' to U+009F in ASCII-mode file transfers.
  • [all 3270] Fixed a crash in CUT-mode binary file sends, and corrected the local fopen() flags when receiving a binary file.
  • [x3270] Added the APL up- and down-arrow characters (↑ and ↓) to the 12-point fonts (thanks to Paul Scott for the fix).
  • [all 3270] Script comments are now allowed (any input line beginning with # or !).
  • [wc3270] Added support for the Enhanced keymap modifier (EnhancedReturn is the keypad Enter key. Also added Enter, PageUp and PageDown as aliases for the Windows keys RETURN, PRIOR and NEXT.
  • [wc3270] Added oversize, font size and background color support to the Session Wizard.
  • [x3270] Fixed a problem with ignored -set and -clear options.
  • [c3270 and wc3270] Added support for the -oversize auto option, which allows the emulator to use the entire area of the terminal or console window it is running in.
  • [x3270] Removed the huge delay at start-up.
  • [x3270, c3270, s3270 and wc3270] Added support for TCP-socket-based scripting via the -scriptport option. For wc3270, this is the first time that scripting has been available.
  • [all 3270 except x3270] Added support for the screenTraceFile resource.
  • [all 3270] Fixed a file descriptor leak with the -socket option.
  • [all 3270] Fixed a crash with the Toggle action and undefined toggles.
  • [wc3270] Implemented no-install mode (allowing wc3270 to run without installing the software) and auto-shortcut mode (where wc3270 automatically creates a temporary shortcut file to match a session file and runs it).
  • [all 3270] When a hostname resolves to multiple addresses, try each until one works.
  • [all 3270] Corrected an issue where the keyboard would lock on the first screen when connecting to hosts like Hercules.
  • [wc3270] Added mappings of the Page Up and Page Down keys to PF(7) and PF(8) respectively.
  • [wc3270, ws3270] Removed the .dll files from the distribution.
  • [c3270] Corrected an issue with cursor and function keys not being recognized if they are the first key pressed.
  • [all 3270] BIND image screen sizing is now observed.
  • [pr3287 and wpr3287] Corrected the -charset documentation on the manual page.
  • [all 3270] Resurrected flipped-screen mode via the Flip and ToggleReverse actions.
  • [all 3270] Added a Seconds form to the Wait action, allowing a script or macro to delay itself an arbitrary length of time.
  • [wc3270] Modified the PrintText action so that Wordpad is started minimized.

Changes in version 3.3.9ga11, 25. March 2009

  • [x3270 and c3270] Re-enable the ibm_hosts file (it was accidentally being ignored).
  • [all but wc3270] Don't crash when there is no iconv translation for the locale codeset.
  • [all but x3270] Fixed a build failure in glue.c when DBCS was disabled.
  • [wc3270] Corrected the default keymap so that the uppercase versions of the Alt mapping also work.
  • [wc3270] Corrected the documentation of the printTextFont and printTextSize resources.
  • [c3270] Corrected a number of errors in parsing CursesColorForxxx resources.
  • [c3270] Added support for -rv, which puts c3270 into black-on-white mode.
  • [c3270] Added support for 16-color terminals, with the -color8 option overriding this and forcing 8-color support only. On a 16-color terminal, -allbold is no longer the default.
  • [c3270, wc3270, s3270 and tcl3270] Ensured that command-line parameters override session files.
  • [c3270] Made session files replace profiles, rather than just overridding any common definitions. This is more intuitive and consistent with x3270.

Changes in version 3.3.9ga11, 27. February 2009

Common Changes

  • Improved hostname parsing. Now backslashes can be used to quote any character, and square brackets can be used to quote any element (LU name, host name, or port).
  • Fixed a number of compiler warnings from newer versions of gcc and a number of small memory leaks.
  • Overhauled the host code pages and CGCSGIDs for DBCS. Added sbcsCgcsgid and dbcsCgcsgid resources to override the compiled-in values.
  • Added a caption text option to the PrintText action, which will place the specified caption above the screen image. Within the text, the string %T% is interpolated to a timestamp.
  • Improved the state dump when tracing starts to include NVT and SSCP-LU state and the SNA BIND image.
  • Updated the copyright and licensing notices (now a standard BSD license).
  • Added support for carriage-return (0x0d) characters in the String action, which imply the Newline action.
  • Changed the Attn action so that it sends an IAC BREAK in TN3270 mode, and locks the keyboard in TN3270E mode when the session is not SNA bound.
  • Added Traditional Chinese (host code page 937) support.
  • Extended the String action's \e and \x sequences to accept 4-digit hex values, thus allowing EBCDIC DBCS input and arbitrary Unicode input. Also added \u as an alias for \x.

Changes to x3270

  • Fixed a crash when pasting an empty selection.
  • Made the Query Reply response for x3270 identical to the other tools.
  • Included fonts for Traditional Chinese.

Changes to x3270 and c3270

  • Removed the nested copy of pr3287. from the source. pr3287 must now be built separately from its own package.

Changes to wc3270

  • Corrected a problem with color mapping in the OIA.
  • Changed the New Session Wizard to the Session Wizard and gave it the ability to edit existing session files and re-create missing session files. Note that this ability is limited to session files created with 3.3.9beta10 or later.
  • Added a wc3270.printer.codepage resource to set the Windows code page for the associated pr3287 printer session.
  • Simplified the operation of the New Session Wizard, so it asks fewer questions.
  • Added a pager to interactive mode.
  • Made the PrintText font and point size configurable via the printTextFont and printTextSize resources.
  • Changed the default 'blue' color for created shortcuts to a somewhat lighter shade, to make it more readable.
  • Changed the Session Wizard to specify the code page and proper font when creating shortcuts for DBCS sessions. This should allow DBCS to work on Windows 2000 and Vista.
  • Included ws3270 in the wc3270 release.

Changes to c3270 and wc3270

  • Added feedback for the progress of file transfers.
  • Implemented the Info action, which writes a message to the OIA (the line below the display).
  • Added a no-prompt mode, via the -noprompt command-line option and the noPrompt resource .
  • Added automatic reconnect, via the -reconnect command-line option and the reconnect resource.

Changes to ws3270 (formerly available as a pre-release)

  • Fixed a bug which resulted in all command timings being displayed as '-'.
  • Added the -localcp option and localCP resource to change the Windows code page used for local workstation I/O.
  • Added DBCS support and support for building using Microsoft tools.

Changes to pr3287 and wpr3287

  • Fixed a serious character-mapping bug.
  • Added DBCS support.

Changes to specific versions

  • [c3270, s3270, s3270, ws3270 and x3270] Added support for session files.
  • [All except wc3270 and ws3270] Extended the rtf option of the PrintText to non-Windows platforms.
  • [All except x3270] Fixed a number of issues with -xrm option processing and keymap display when backslash sequences were used.

Changes in version 3.3.8p2, 13 December 2008

  • [wc3270] Corrected the handling of 8-bit and DBCS characters in the PrintText action.
  • [tcl3270] Extended configure to find the Tcl library version automatically.
  • [wc3270] Corrected a problem which caused mouse clicks not to be recognized (not moving the cursor) if NumLock was set.
  • [all] Corrected the configure script to recognize a separately-installed iconv library even if the iconv() function is defined in libc.
  • [wc3270] Restored the bell sound, and added a visualBell resource to disable it.

Changes in version 3.3.8p1, 20 October 2008

  • [wc3270] Restored the Ctrl-] mapping for the Escape action, which had been inadvertently removed.
  • [wc3270] wc3270 now starts successfully on Windows Vista.
  • [c3270] On platforms that require the iconv library, c3270 once again recognizes ncurses names in keymaps.
  • [x3270] The module keysym2ucs.c now builds on FreeBSD.
  • [x3270] Selections now work properly on platforms that do not support XA_UTF8_STRING.

Changes in version 3.3.8, 11 October 2008

Version 3.3.8 includes a significant internal change, using Unicode for all translations between the host and the local workstation. This change should be transparent, but users who depended on certain behaviors of the old implementation may see unexpected differences.

Common Changes

  • Many more EBCDIC characters, such as Graphics Escape line-drawing and APL characters, are now properly displayed (even without special 3270 fonts), traced, cut/pasted with other applications, and returned by scripting actions like Ascii.
  • With two exceptions, the locale's encoding is now observed consistently when reading keymaps, generating trace files, etc. The exceptions are:
    • tcl3270 always uses UTF-8, per the internal Tcl convention.
    • Because Cygwin doesn't really support locales, the Windows ANSI code page is used as the local encoding instead.
    • Stateful encodings such as ISO 2022 are untested and very likely do not work.
  • The ICU library is no longer used, and ICU .cnv files are no longer included with the code.
  • Translation to/from the local encoding requires one of two facilities: Either libc must support __STDC_ISO_10646__ (wchar_ts are defined to be unicode values, as on Linux and Windows), or there must be an iconv library that can translate between UTF-8 and all local encodings.
  • DBCS support is enabled by default, except on Windows. It can be explicitly disabled in the configure script to reduce the size of the executable (removing several large translation tables).
  • The -v/--verbose option has been added to display build and copyright information.
  • The Thai host code page has changed from 838 to 1160.

Changes Common to the 3270 Terminal Emulators

  • The Key action now accepts Unicode arguments in the form U+nnnn, removing possible ambiguity from translating from the
  • Added a Source action to read script commands from a file.
  • Added a 10 second timeout to the start of the Transfer action.
  • Added an unlockDelayMs resource to change the number of milliseconds of delay before atually unlocking the keyboard after the host requests it. The default is 350; use 0 to disable the delay altogether.
  • IND$FILE file transfer now transfers DBCS text files properly.

Changes Common to 3287 Printer Emulators

  • Added direct support for all x3270 host character sets via the -charset option.
  • Added -trnpre and -trnpost options to specify files containing transparent data to send to the printer before and after each print job, respectively.

Product-Speific Changes

  • [x3270] Commands entered into the Print Screen Text dialog are now saved by the Save Changed Options in File option.
  • [x3270] Fixed some bad interactions between the pop-up keypad and the GNOME window manager.
  • [x3270] The Euro fonts have been folded into the standard fonts.
  • [x3270] The font menu is now arranged hierarchically by foundry and family.
  • [c3270] Added an underscore toggle to allow underlined fields to be displayed even on consoles with no native underlining support, by substituting underscore '_' characters for blanks and nulls in underlined fields.
  • [c3270] Overhauled Meta and Alt key support. Removed support for the archaic Meta modifier in keymaps (it was an alias for setting bit 0x80 in each key). Replaced it with an Alt modifier, which matches the ESC sequence sent for the Alt key by many terminals, and which can be combined with full 8-bit input characters.
  • [c3270] Changed the interpretation of keymaps so that keys and symbols are matched in Unicode. That is, keymap text is converted from the current locale's encoding to Unicode before matching, and input character codes are converted to Unicode before matching. This eliminates the difficulty in creating keymaps and interpreting traces in non-Latin-1 locales -- needing to translate from the accidental interpretation of 8-bit values as Latin-1 when they are not -- but with the side-effect of rendering some carefully-crafted existing keymaps invalid. Keymaps can also be written using Unicode U+nnnn notation.
  • [c3270] Changed the metaEscape resource so that auto means on, instead of using the terminfo km resource.
  • [c3270] Added an acs resource to control the use of curses ACS codes. If c3270.acs is set to true (the default), c3270 will use curses ACS codes for line-drawing characters. If set to false, it will display line-drawing characters with Unicode.
  • [wc3270] Added an underscore toggle to control how underlined and blinking fields are displayed. If it is set (the default), underlined fields are displayed by substituting underscore (_) characters for blanks and nulls, and blinking fields actually blink. If it is clear, underlined and blinking fields are displayed with highlighted backgrounds, which is compatible with previous verions of wc3270.
  • [wc3270] Left-clicking with the mouse will now move the cursor to that location.
  • [wc3270] The PrintText action now works, and is mapped by default to the sequence Alt <Key>p. The printer.name resource defines the default printer to use.
  • [wc3270] The PrintText action can now be used to produce a RichText snapshot of the screen contents, via the rtf keyword.
  • [wc3270] The program longer attempts to set the console code page, which was error-prone and unnecessary.
  • [wc3270] The idle command feature now works, controlled by the idleCommand, idleCommandEnabled and idleTimeout resources.
  • [wc3270] The program no longer attempts to set the console code page, which could lead to hangs on Vista.
  • [wc3270] The installation now creates a program group item to explore the wc3270 Application Data directory.
  • [wc3270] Corrected a problem with console color overrides, which prevented reverse-video mode (white background) from working properly. For now, the recommended method for enabling reverse video mode is to add these lines to your session file:
          wc3270.consoleColorForHostColor0: 15
          wc3270.consoleColorForHostColor7: 0
  • [wc3270] wc3270 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.
  • [tcl3270] Added a commandTimeout resource to force any Tcl3270 command to time out after the specified number of seconds. (Thanks to Mark Young.)
  • [tcl3270] Fixed a per-command memory leak. (Thanks to Mark Young.)
  • [wpr3287] Added a -printercp option to specify a particular code page for printer output.
  • [wpr3287] wpr3287 now builds with the Microsoft tools. The file Msc/Makefile is a makefile for nmake.

Changes in x3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in x3270 3.3.7p7, 4. July 2008

  • Bug Fixes:
    • Corrected input of 8-bit characters when x3270 is run in a UTF-8 locale.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.
  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.

Changes in x3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Fixed an issue with Idle commands, which would cause x3270 to exit with a Not Found error as soon as the idle command fired.

Changes in x3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed the annoying delay when x3270 starts with an error pop-up.
    • Shortened the manpage so that it displays on non-groff platforms. The full text is still available in the HTML version.
    • Plugged a number of memory leaks.
    • x3270 will now compile on platforms that do not support IPv6, such as Cygwin.
    • x3270 will no longer crash or spin when the -script option is used.
    • Shifted function keys should work again (they map to PF13-PF24).
    • The screen can now be resized larger, as well as smaller.
    • Removed the dependency on <bitmaps/gray>, which required installing an obscure X11 development package on some platforms.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added a SelectAll action, mapped to Ctrl-A.

Changes in c3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.
    • Allowed c3270 to build under SLES 10's unusual ncurses configuration.

Changes in c3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in c3270 3.3.7p4, 29. February 2008

  • Bug Fixes:
    • Fixed c3270's configure script again, so it will build on systems without the ncurses library.
    • Enabled idle command functionality, which had been accidentally disabled.

Changes in c3270 3.3.7p1, 28. December 2007

  • Bug Fixes:
    • c3270's configure script would not detect missing ncurses header files, and c3270 would not build if ncursesw was not installed.

Changes in c3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • c3270 will now display characters such as the notsign ¬ properly in terminal windows in UTF-8 locales. Note that this display support requires an ncurses or curses library that supports wide characters.
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, script interactions, screen snapshots, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
    • Added display of the host code page and locale codeset to the show status command.
    • Added support for changing the color mappings. The curses color for a given host color can be specified with the resource c3270.cursesColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a curses color number (0 through 7).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      c3270.cursesColorForDefault
      c3270.cursesColorForIntensified
      c3270.cursesColorForProtected
      c3270.cursesColorForProtectedIntensified
             
      The value for each of these is a curses color number (0 through 7).

Changes in wc3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed idle command support.

Changes in wc3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Fixed a problem with transferring binary files, where 0x0d characters might be acidentally added to or removed from the data.
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in wc3270 3.3.7p5, 11. April 2008

  • Bug Fixes:
    • After installation is complete, get rid of mkshort.exe, which shares its name (but not its functionality) with a computer surveillance application.
    • Corrected several issues with key event processing and the default keymap.

Changes in wc3270 3.3.7p3, 22. February 2008

  • Bug Fixes:
    • Changed the New Session Wizard to create the Application Data directory, so wc3270 can be run by any user, not just the one that installed it.
    • Changed the default window title from the pathname of the session to just the session name.

Changes in wc3270 3.3.7p2, 15. January 2008

  • Bug Fixes:
    • Fixed an embarassing problem that kept wpr3287 from starting.

Changes in wc3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • Fixed line-drawing characters.
    • Enabled IPv6 support for Windows XP and later.
    • Set the input code page correctly, so that keyboard input works correctly when there is a mismatch between the default Windows code page and the code page implied by the wc3270 character set option.
  • New Features:
    • Added limited support for Windows 98. wc3270 will install and run on Windows 98, but internationalization support is limited -- the only supported host code page is 37, and the only supported Windows code page is 437. This is expected to improve in the future.
    • Added a wc3270.highlightUnderline resource to control highlighting of underlined and blinking text. (Set to false to disable background highlighting.)
    • Moved session files, keymaps and trace files to the Application Data directory. (wc3270 will still look in its installation directory for session files and keymaps, after first searching the Application Data directory.) This makes wc3270 a better Windows citizen in general, and a better Vista citizen in particular.
    • Added support for changing the color mappings. The console color for a given host color can be specified with the resource wc3270.consoleColorForHostColorn, where n is a host color number (0 through 15), and the value of the resource is a console color number (0 through 15).
      In addition, the field-attribute-based colors used when the host does not specify a particular color can be changed via the following resources:
      wc3270.hostColorForDefault
      wc3270.hostColorForIntensified
      wc3270.hostColorForProtected
      wc3270.hostColorForProtectedIntensified
             
      The value for each of these is a host color number; the actual color displayed is defined by the corresponding wc3270.consoleColorForHostColorn resource.
    • Added a new cp1153 character set. It implements host code page 1153 and uses Windows code page 1250, used primarily in Central Europe.
    • Added display of the Windows code page to the character set screen in the New Session Wizard.
    • Added display of the host and Windows code pages to the show status command.

Changes in s3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in s3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in s3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer(Ascii) actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

      NOTE: If you were were previously running s3270 in a UTF-8 locale, this is an incompatible change. To ensure the previous behavior, set your locale to C before starting s3270.

Changes in tcl3270 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Corrected the buffer addressing mode logic for oversize screens.

Changes in tcl3270 3.3.7p7, 4. July 2008

  • New Features:
    • Added \eXX support to the String() action, which allows an EBCDIC code to be entered.
  • Bug Fixes:
    • Corrected a bug which sometimes left the local file open after a failed file transfer.

Changes in tcl3270 3.3.7p3, 22. Febuary 2008

  • Bug Fixes:
    • Fixed a problem with non-ASCII characters returned by the Ascii command.
    • Fixed a problem with the Connect command, which resulted in subsequent actions not blocking properly.

Changes in tcl3270 3.3.7, 25. December 2007

  • Bug Fixes:
    • (none)
  • New Features:
    • Added UTF-8 support. If the current locale specifies UTF-8 encoding, then all text output (trace data, screen snapshots, the Ascii and ReadBuffer actions, etc.) will be UTF-8 encoded, and all text input (arguments to the Key and String actions, etc.) must be UTF-8 encoded. In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.

Changes in pr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in pr3287 3.3.7, 25. December 2007

  • Enhancements:
    • Added proxy support via the -proxy option.

Changes in wpr3287 3.3.7p8, 28. August 2008

  • Bug Fixes:
    • Fixed the interpretation of SCS CR characters.<\li>

Changes in wpr3287 3.3.7, 25. December 2007

(none)

Changes in x3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Fixed the highlighted attribute for individual regions of the screen (versus the highlighted field attribute); it had been accidentally disabled.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Pseudo-Color mode is no more. This was the mode that x3270 used when a 3278 model was specified, or if the m3279 resource were set to False. Pseudo-Color assigned colors to regions of the screen based on intensity and light-pen selectability, and did not support 3279 colors. Now turning off color or selecting a 3278 results in something that looks like a 3278 (i.e., it's green). To resurrect Pseudo-Color mode, set the following resources:
        x3270.inputColor: orange
        x3270.boldColor: cyan

Changes in c3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Got local process (-e) support to work again.
    • Fixed -mono -allbold mode.
    • c3270 now paints the entire screen, not just the areas it intends to use, so there are no uninitialized regions.
  • New Features:
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for the 3270 background color attribute.
    • Added more mappings to the 3270 default keymap (IC -> ToggleInsert, Ctrl<Key>U -> DeleteField, etc.).
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.
    • Like x3270 and wc3270, -model 3278 now specifies a green-screen 3278 (if the terminal supports color), and like x3270, -mono specifies that any color capabilities reported by the terminal should be ignored.

Changes in wc3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • Restored line-drawing character support.
    • Restored background color support in NVT mode.
    • Corrected some screen rendering issues.
    • Fixed screen trace (-set screenTrace).
    • Removed the -mono option and mono resource.
  • New Features:
    • Added the Spanish character set, CP 284.
    • Added proxy support via the -proxy option or the proxy resource.
    • Added support for setting the window title, either automatically, or via the -title option or wc3270.title resource.
    • Added gray background highlighting of underlined and blinking text. Windows consoles don't support these attributes, but at least they can be distinguished from other text now.
    • Added background color support in 3270 mode.
    • Added a window to monitor trace output.
    • Greatly improved key event tracing.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in s3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in tcl3270 3.3.6, 23. June 2007

  • Bug Fixes:
    • The code now builds with ICU 3.6.
    • Removed the -mono option and mono resource.
  • New Features:
    • Added proxy support via the -proxy option or the proxy resource.
    • Modified Blank Fill mode to treat trailing underscore chararacters ('_') like blanks when checking for input overflow.

Changes in wc3270 3.3.5p9, 10. June 2007

  • Bug Fixes:
    • The shortcut cursor size property is now obeyed.
    • The -model 3278 option now works correctly.
  • New Features:
    • Added secure connection status to the status line and the show status command.
    • Reverse video is now supported.
    • Added support for IBM Code Page 1047 (-charset cp1047).
    • Added a keymap tutorial to the documentation.

Changes in wc3270 3.3.5p8, 29. April 2007

  • Bug Fixes:
    • Fixed a hang when wpr3287 exits unexpectedly.
    • Improved behavior when input comes from multiple sources, such as when pasting text.
    • Greatly improved screen update speed.
  • New Features:
    • Added wpr3287 support back to the wizard. It was in the GUI version, but was never in the text version.
    • Integrated new back-end printer support in wpr3287, including a new wc3270.printer.name resource.
    • Added a Paste() action, mapped to Ctrl-V, to do multi-line paste properly.
    • Added a .wc3270km suffix to keymap files.
    • Added keymap support to the wizard.
    • Added interactive prompting to the Transfer() action.

Changes in wpr3287 3.3.5p8, 29. April 2007

  • New Features:
    • Added direct support for Windows printers, instead of relying on the DOS PRINT command. This included changing the -command option to a -printer option, to specify the Windows printer to use as a back end.

Changes in x3270 3.3.5p6, 7. April 2007

  • Bug Fixes:
    • x3270 will now build with ICU 3.6.
    • A long-standing screen update bug is finally fixed.
    • The unused x3270hist.pl script is no longer installed.

Changes in c3270 3.3.5p4, 7. April 2007

  • Bug Fixes:
    • c3270 can now be built without File Transfer support.
    • The unused x3270hist.pl script is no longer installed.

Changes in wc3270 3.3.5p3, 2. March 2007

  • Bug Fixes:
    • Reverted the wc3270 New Session Wizard to the non-GUI version, because the GUI version, built with Microsoft Visual C++ 2005 Express Edition, had too many dependencies (latest service pack, .NET framework) on the target machine.

Changes in wc3270 3.3.5p2, 16. February 2007

  • Bug Fixes:
    • Ensured that the desktop shortcuts specify Lucida Console, so non-ASCII-7 characters are displayed properly.
  • New Features:
    • Added a file association for the .wc3270 suffix.
    • Replaced the console version of the New Session Wizard with a proper GUI version.

Changes in wc3270 3.3.5p1, 6. February 2007

  • Bug Fixes:
    • Added the working directory to the desktop links created by the setup program.
  • New Features:
    • Added printer session (wpr3287) support.

Changes in x3270 3.3.5, 1. February 2007

  • Bug Fixes:
    • Fixed a crash when the user's home directory or the ~/.x3270connect file wasn't writeable.
    • Fixed some endcases when pasting text that wraps lines and a field skip is encountered.
    • Fixed the handling of SI characters in cut/pasted text.
    • Allow the use of ICU version 3.0 or greater.
    • Fixed a scripting hang when the host disconnects during Wait(output)).
    • Turned the unlockDelay option back on by default.
    • Fixed a problem where unlockDelay could result in the keyboard never unlocking, if the host unlocked the keyboard often enough.
    • Added a workaround for very old snprintf() implementations.
    • Fixed a problem with DBCS input corrupting existing DBCS subfields.
    • Fixed a problem with the Wait action in the expect glue. (Thanks to Jason Howk for the fix.)
    • Enlarged the input buffer in x3270if. (Thanks to Igor Klingen for the fix.)
    • Fixed a SIGCHLD handler issue on AIX.
    • Fixed a problem with CR/LF translation on ASCII file transfers.
  • New Features:
    • Added a -socket option to x3270, s3270 and c3270 to allow a script to connect to a Unix-domain socket to control the emulator, and added a -p option to x3270if to connect to the socket.
    • Added optional support for plugins, with a first plugin to implement command history on VM/CMS and TSO hosts.
    • Allow arbitrary color names (#rrggbb) to be used in color schemes.
    • Added support for hierarchical macro menus.
    • Added an XkSelector resource to allow transparent support of non-English keyboards.
    • Added preliminary support the 16-bit display fonts and the Persian character set.
    • Added Title and WindowState actions to allow the x3270 window title and icon state to bw changed respectively.

Changes in x3270 3.3.4, 10. April 2005

  • Bug Fixes:
    • The code once again builds on Cygwin and other systems not supporting IPv6.
    • The -xrm option works again in x3270.
    • The -name X Toolkit option works with x3270, though not yet with app-defaults files.
    • Removed spurious 'no child' error messages from pr3287 on some systems.
    • Removed unintended blank-line suppression from the output of PrintText html string.
    • Restored some missing keymap definitions (rlx, ow) and some missing lines from other keymap definitions (apl).
    • Restored the automatic keyboard unlock delay when processing a macro or string. This allows macros and strings with embedded AID sequences to work with hosts that unlock the keyboard before they finish processing a command. Scripts are presumed to be able to figure out when the host is finished, or can set the unlockDelay resource to true get the delay all the time.
    • Fixed an apparent hang (actually just extreme slowness) when the host sends a message larger than 4 Kbytes on an SSL tunnel.
    • Removed spurious 'Wait timed out' errors in the Wait action.
  • New Features:
    • Added a newer, more flexible version of Don Russell's RPQNAMES support.
    • Added support for IPv6.
    • Added an oldclick keymap to restore the pre-3.3 mouse click behavior.

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta2, 1. February 2005

  • Bug Fixes:
    • Reduced the Resident Set Size (RSS) of x3270 from about 40 MBytes to less than 4 MBytes. This was a bug in how compiled-in app-defaults files were generated.
    • Got separate app-defaults files (configure --enable-app-defaults) to work again.
    • Fixed a crash when a login macro is used in NVT mode or when the host un-negotiates TN3270E mode.
    • Fixed the titles of the Copyright and Configuration pop-ups.
    • Temporarily disabled the RPQNAMES Query Reply. It was causing IBM QMF to crash. It can be re-enabled by adding #define X3270_RPQNAMES 1 to conf.h. Hopefully a proper fix can be found shortly.
  • New Features:

Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta1, 31. December 2004

  • Bug Fixes:
    • The Transfer() action did not work at all -- it generated (null) as the name of the IND$FILE command. Also improved its behavior when invoked from a script or macro in x3270 and c3270.
    • Corrected the definition of the hebrew (code page 424) character set, removing undefined characters.
    • Corrected the display character set for the brazilian (code page 275) character set.
    • Corrected the character set definition logic so that undefined ASCII codes are truly undefined in NVT mode.
    • Corrected the ibm_hosts file (the hostsFile resource or the -hostsfile option). Variable and tilde substitution are now performed on the value, and if a non-default value is specified and the file does not exist, an error pop-up is generated.
    • Added a pause to make sure that c3270 start-up error messages will be seen.
    • Got the c3270 default field colors right, and made all-bold mode actually make all the fields bold.
    • Fixed the default primary/alternate screen size (it was alternate, it's supposed to be primary).
    • Fixed c3270 color support with ncurses and 80/132 screen-size switching. Sometimes only one of the screen sizes had color.
    • Fixed a memory leak in pr3287 when the -reconnect option is used. (Thanks to Marcelo Lemos for the fix.)
    • Fixed the output of NVT-mode ANSI line-drawing characters in the Ascii() scripting action. These were formerly all output as blanks; now they are output in the same was as x3270 3.2.
    • Fixed the display of NVT-mode ANSI line-drawing characters when x3270 is using a 3270 font.
    • Fixed the display of DBCS blanks, which sometimes displayed as 'undefined' characters.
    • Fixed DBCS character display with fonts whose maximum bounds are larger than their reported line-spacing bounds.
    • Fixed make depend.
    • Fixed x3270_glue.expect, which got confused when there was a whitespace-delimited double-quote in the emulator output.
    • Fixed crashes when the entire File or Options menus were suppressed.
    • Fixed a scripting hang when an UNBIND command arrived while an AID was pending.
    • Fixed a problem with the incomplete processing of a NULLing Program Tab order, which could leave formatting artifacts on the screen.
    • Removed <subchar1> clauses in two of the .ucm files that prevents later versions of ICU's makeconv from accepting them, and removed DOS carriage-return characters from the CP837 .ucm file.
    • Corrected some DFT-mode file upload problems: corrected the data length, and corrected an empty-buffer problem when the file size was an even multiple of the buffer size.
    • Corrected a DBCS conversion problem with ICU 3.0.
    • Added variable buffer-size support to DFT file transfers.
    • Corrected a line-drawing character bug in c3270.
    • Fixed a buffer overflow problem in the ReadBuffer action.
    • Fixed garbage characters generated for APL data by the Ascii and ReadBuffer actions.
    • Allow 0 timeouts in Wait actions.
  • New Features:
    • Added command-line options to the pr3287 trace file.
    • Added support for dead keys (acute, grave, circumflex, tilde, diaeresis) to the x3270 default keymap, and improved the Latin-1 compose map. (Thanks to Marcelo Lemos for the change.)
    • Added new actions for improved mouse interactions, and made them the default. Button 1 now moves the cursor, without the Shift key.
    • Added support for DBCS in pr3287, but only when started from an x3270 or c3270 session.
    • Added Don Russell's RPQNAMES support.
    • Removed Minolta-copyrighted 5250 code, because of licensing problems.
    • Added an aidWait toggle to allow AID script actions (Clear, Enter, PA and PF) to complete immediately without waiting for the host to unlock the keyboard, and a Wait(Unlock) action action to block a script until the keyboard is unlocked, regardless of the state of the new toggle.
    • Removed the old scripting hack that delayed actually unlocking the keyboard for 50ms after the host indicates that it should be unlocked. Added an unlockDelay resource, which can be set to true to turn the delay hack back on.
    • Added a dftBufferSize resource to set the default DFT buffer size.
    • Added an x3270 Save Screen Text menu option to save the screen image in a file, optionally in HTML.
    • Added options to the PrintText action to save to a file, to save HTML, and to return the text as script data.

Changes in x3270, c3270, s3270 and tcl3270 3.3.2, 1. December 2003

  • Bug Fixes:
    • Corrected an x3270 screen-redraw crash when using fixedSize and xim.
    • Corrected a problem in x3270_glue.expect, which caused Tcl syntax errors if a string began with a dash. Thanks to David Taylor for the fix.
    • Fixed a problem with x3270 DBCS input when using a single DBCS/SBCS character set.
    • Made DBCS encoding recognition automatic wherever possible, leaving the -km option for cases when x3270 can't figure it out from the locale.
    • Made c3270's configure more robust when it can't find one or the other of libncurses or ncurses.h.
    • Got automatic pr3287 start-up (-printerlu) working again in c3270.
    • Fixed an s3270 crash which made s3270 3.3.1alpha10 pretty much useless.
  • New Features:
    • Added support for Cyrillic keysyms to the x3270 Default() action.
    • Added an 'unlocked' icon for unencrypted connections, if x3270 is built with SSL/TLS support.
    • Error messages are now written to the trace file.
    • The response to the TELNET TIMING MARK option has been changed to make it compatible with the majority of TELNET clients. The response to DO TIMING MARK is now WONT TIMING MARK. To restore the previous behavior (responding with WILL TIMING MARK, originally derived from the BSD TELNET client), set the resource x3270.bsdTm to true.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha10, 29. August 2003

  • Bug Fixes:
    • Made nondisplay fields invisible to the Ascii() action.
    • Corrected start-field values at the beginning of data stream traces and in the 3270 Read Buffer response.
    • Corrected a tight loop in the macro error cancellation logic.
    • Corrected a crash when connecting to a host and there is no menu bar visible.
    • Corrected x3270 crashes in monochrome mode (-mono) and pseudo-color mode (-model 3278).
  • New Features:
    • Added a ReadBuffer() action to dump the entire contents of the 3270 buffer, including field attributes and extended attributes.
    • Added support for suppress resources for each menu item. If set to True, that menu item will not appear.
    • Added a suppressActions resource, a list of the names of actions to disable. This is primarily for controlled environments where the user does not have access to the x3270 command line, but can edit keymap definitions.
    • Added a Setverbose function to x3270_glue.expect to allow verbosity to be changed on the fly. (Courtesy of David Taylor.)
    • Added the ability to define resources in an environment variable, $X3270RDB. The environment variable overrides values set in the profile file, but is overridden by command-line options.
    • Added a fixedSize resource to force the x3270 main window to a particular size. fixedSize has the form widthxheight, in pixels. The 3270 display will float in the center of the window, if need be.
    • Added a new x3270 keypad position (x3270.keypad): insideRight. This positions the keypad on top of the upper right-hand corner of the x3270 window, just under the keypad button on the menu bar.

Changes in pr3287 3.3.1alpha10, 10. August 2003

  • Enhancements:
    • Added support for the -tracedir option, to specify a directory to store trace files in.
    • Added support the the -eojtimeout option, to automatically flush any pending print job after a specified period of inactivity.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha9, 24. July 2003

  • Bug Fixes:
    • DBCS character set names are displayed in the x3270 Options->Font menu only when DBCS support is built into x3270.
    • Removed the concept of 'per-host' resources. Use profiles for this.
    • Fixed idle commands. They were pretty much hopeless in 3.3.1alpha8 and 3.2.20.
    • Fixed a Unicode conversion crash.
    • Fixed a bug in processing the Modify Field order, which would cause the character set attribute for the field to be accidentally reset to the default.
  • New Features:
    • x3270 user-specified lists (character sets, hosts, fonts, color schemes) can now be organized into sub-lists. The name Bob>Fred>Tony specifies that there is a sub-list called Bob, which contains a sub-list Fred, which contains the item Tony.
    • The TELNET START-TLS option is now supported.

Changes in pr3287 3.3.1alpha9, 30. July 2003

  • Bug Fixes:
    • Ignore SIGINT in the print job process, so that killing an interactive pr3287 with ^C won't cause buffered data to be lost.
    • Fixed a problem with losing a byte of data after an SHF order.
    • Fixed the SCS HT order, which was completely broken.
  • Enhancements:
    • Added support for SIGUSR1 to flush the print job.
    • Added support for the TELNET START-TLS option.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha8, 15. April 2003

  • Bug Fixes:
    • Builds cleanly on Linux with -Wall -ansi -pedantic.
    • Builds without OpenSSL libraries being present.
    • Correctly records Field Attributes in the initial screen snapshot in a Data Stream Trace file.
    • Auto-Skip fields work properly.
    • "Dead" positions in DBCS fields are handled correctly.
    • Invalid host DBCS characters are handled better and are displayed in the Data Stream Trace file.
    • The Erase action now works properly with DBCS characters.
    • The x3270 Visible Control Characters toggle now works properly.
    • The EBCDIC notsign '¬' can now be entered in c3270 with Ctrl-A, ^ (it formerly caused an error message).
  • New Features:
    • The Erase action is now the default for the BackSpace key in x3270.
    • Ctrl-A, a is now mapped onto the Attn action in the c3270 default 3270 keymap.
    • Four more Japanese host code pages have been added: 930, 939, 1390 and 1399. This uses new support for combined SBCS/DBCS code pages.

Changes in x3270, c3270, s3270 and tcl3270 3.3.1, 14. February 2003

  • Bug Fixes:
    • (Same as x3270 3.2.20)
  • New Features:
    • DBCS support for Simplfied Chinese and Japanese, including x3270 integration with XIM.
    • Tunneled SSL support added (entire Telnet session inside of an SSL tunnel). Uses the OpenSSL library. Toggled with an 'L:' prefix on the hostname.
    • A Visible Control Characters toggle replaces x3270's 3270d Debug Font.
    • About x3270 pop-up split into three smaller pieces.
ibm-3270-3.3.10ga4/x3270/html/Build.html0000644000175000017500000003634511254565663016662 0ustar bastianbastian x3270 Build and Install Instructions

x3270 Build and Install Instructions

Where Things Get Installed

By default, parts of x3270 are installed under two different directories.

Files which are specific to X11 (the x3270 binary, x3270 manual pages, and fonts) are installed in the system X11 directory (typically /usr/X11R6 or /usr/openwin). This directory is defined when your system is installed and cannot be easily changed. This is referred to as xdir in the table below.

Files which are shared with other non-X11 3270 applications (the x3270if  and pr3287 binaries and man pages, and the configuration files) are installed in the autoconf prefix directory, typically /usr/local. The autoconf prefix directory can be changed with options to the x3270configure script. This is referred to as prefix in the table below.
 
Files Installed In
Binary for x3270 xdir/bin
Manual pages for x3270 xdir/man
Fonts xdir/fonts/misc
Binaries for x3270if and pr3287 prefix/bin
Manual pages for x3720if and pr3287 prefix/man
Configuration files (ibm_hosts, character set definitions) used by x3270 and other programs prefix/etc

If you want everything installed in your system X11 directory, use the following configure command:

configure --with-all-xinstall
By contrast, if you want everyting to be installed in the autoconf prefix directory, use the default configure command, but use a different make target:
make install.byprefix

Vanilla X11R6 or X11R5

x3270 is set up to build and install without modifications under any complete X11R6 or X11R5 implementation.

A "complete" R6 or R5 implementation means that xmkmf and imake are configured and installed on your system, and that the Xaw and Xmu libraries and header files are installed. Some vendors (HP, IBM, SCO) consider these optional software and do not always install them.

If you are running vanilla X11R6 or X11R5, then the build procedure is to ensure that your X11 bin directory is in your $PATH, then:

    ./configure         # probe for system dependencies and create the Makefile
    make depend         # add dependency information
    make                # build x3270 and its fonts
x3270 prefers that its fonts be installed in order to run. However, a script is provided for testing a local copy of x3270 in the current directory:
    ./dryrun            # test x3270
Once you are satisfied that x3270 is working, you can install it (as root) with the command:
    make install
    make install.man
Before running x3270, you will also need to (once):
    xset fp rehash
That's the easy way. Here are the exceptions:

IBM AIX

AIX X11R5 does not include xmkmf or imake, but it includes the source code for them. If these have not been built and installed on your system (e.g., if there is no such file as /usr/bin/X11/imake), you must first build and install them by following the instructions in /usr/lpp/X11/Xamples/README.

Once these have been installed, you can use the standard X11R5 build procedure above.

The default installation of AIX may also not include the bdftopcf utility, which may need to be installed separately as part of the X11.fnt.util package.

HP-UX A9.01, X11R5

HP's X11R5 distribution does not include the Xaw libraries or header files. As HP's X man page says,
A number of unsupported core MIT clients and miscellaneous utilities are provided in /usr/contrib/bin. In addition, the entire core MIT distribution, compiled for Hewlett-Packard platforms, can be obtained from HP's users group INTERWORKS for a nominal fee. See the release notes for details.
What you need is the Xaw and Xmu libraries, imake, and xmkmf. Then you can follow the vanilla R5 build and install instructions.

Sun Solaris 2.x

Follow the instructions for Vanilla X11R6, with the following changes.

Using Sun's Unbundled C Compiler

Do not use Sun's "BSD-compatibility" C compiler, /usr/ucb/cc. This is good advice in general, and in particular, x3270 will not build under it. To build x3270 with Sun's unbundled C compiler, you should have /opt/SUNWspro/SCx.x/bin (replacing x.x with the actual version of the compiler) in your $PATH, before /usr/ucb.

You might also want to take advantage of the Sun compiler's optimization features.  This can be done with the command line:

make CDEBUGFLAGS=-x02

Using gcc

Sun's xmkmf configuration puts some compiler flags in the Makefile that are specific to Sun's unbundled C compiler, and you will get a number of harmless, but annoying error messages when compiling with gcc. To eliminate these, use the command:
    make CDEBUGFLAGS=-O CCOPTIONS="-DSYSV -DSVR4"

Running x3270

To run x3270, your LD_LIBRARY_PATH environment variable must include /usr/openwin/lib.

Mixed X Environments

If you are running a mixture of X environments, such as running a Sun XNews server but using X11R6 libraries and header files, the supplied Imakefile may not work properly, because it assumes that your server and libraries are of the same type. This is not an impossible situation, just a difficult one. It generally means that you will have to build and install the fonts separately, perhaps even by hand.

Building Fonts for X Terminals

The Imakefile that comes with x3270 assumes that you plan to run the x3270 client on the same workstation as your X server. Therefore it builds fonts for that kind of X server. Compiled fonts (.snf or .pcf files) are not compatible between different servers, so if you run x3270 with its display somewhere else (such as on an X Terminal), you will need to compile the fonts for that server. It is impossible to give comprehensive instructions here; however, here is an outline for how to do it:
    Copy all of the .bdf files from the x3270 distribution into a new directory, say XXX.

    cd into XXX.

    For each .bdf file, run the server-specific version of bdftosnf or bdftopcf to create a .snf or .pcf file. For example, for to build an NCD font on a Sun-4, the command is:

            /usr/local/NCD/binSun4/bdftosnf 3270.bdf >3270.snf
    Run the server-specific version of mkfontdir. For example:
            /usr/local/NCD/binSun4/mkfontdir .
    Then tell your X server to use this directory:
            xset fp+ XXX
            xset fp rehash

SCO Open Desktop 3

x3270 requires the Athena Widgets library, which is available from sosco.sco.com.

Building on FreeBSD

FreeBSD's iconv library is installed in /usr/local, so the the following options must be passed to the configure script:
       ./configure LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include

Using an app-defaults File

Earlier versions of x3270 required a separate app-defaults file. The app-defaults file contains definitions for options, text strings, fonts, colors, etc. The file allows x3270 to be reconfigured without recompiling by simply editing the file.

Unfortunately, using an app-defaults file is a pain. The mechanism for finding the file is so flexible as to be almost incomprehensible, and it is difficult to run the program without doing a full installation, requiring root access to your system. Also, the app-defaults file generally changes whenever the program changes, and making sure that x3270 finds the correct app-defaults file compounds the above problems.

Starting with version 3.1.0.0, x3270 no longer uses a separate app-defaults file. Instead, the file is compiled into x3270 itself. If however, you prefer to have a separate app-defaults file, you can compile x3270 to use it.

First, you must decide whether you want app-defaults for a color display or a monochrome display. For a color display, the commands are:

        ./configure --enable-app-defaults
        make clean
        make
For a monochrome display, the commands are:
        ./configure --enable-app-defaults=-UCOLOR
        make clean
        make

Summary of configure Options

The x3270 configure script accepts the following options:
 
--help Print a help message.
--with-all-xinstall Install all files (even those that are common with other non-X11 3270 programs) in the system's X11 directory.
This is compatible with earlier releases of x3270.
It is equivalent to --prefix='$(PROJECTROOT)'.
--prefix=prefix Install common architecture-independent files under prefix (defaults to /usr/local).
When using make install, this affects only pr3287 and the configuration files.
When using make install.byprefix, this affects all files.
--exec-prefix=eprefix Install common architecture-dependent files (executables) under eprefix (defaults to same as prefix).
See the note under --prefix, above.
--bindir=dir Install common user executables in dir (defaults to eprefix/bin).
See the note under --prefix, above.
--sysconfdir=dir Install configuration files (ibm_hosts, character sets) in dir/x3270 (defaults to prefix/etc).
See the note under --prefix, above.
--enable-app-defaults
--enable-app-defaults=-UCOLOR
Use a separate app-defaults file, instead of compiling one into the x3270 executable.
With the =-UCOLOR option, builds for a monochrome display.
--without-pr3287 Don't build pr3287.
Useful if you don't need printer session support, or if you want to build pr3287 separately or with different configuration options.
--with-fontdir=/full-path
--with-fontdir=relative-path
Install fonts in an alternate directory.
If the parameter starts with "/", it specifies the full pathname of a directory.
If not, it specifies a subdirectory of the system's X11 font directory (if using make install) or of the fonts subdirectory of the architecture-dependent install directory (if using make install.byprefix).
The default is misc.
--disable-ansi Leave out NVT (ANSI) support.
Note that NVT support is required for TN3270E support.
--disable-apl Leave out APL character support.
--disable-dbcs
Leave out DBCS (Double Byte Character Set) support.
--disable-ft Leave out IND$FILE file transfer support.
--disable-keypad Leave out pop-up keypad support.
--disable-local-process Leave out local process (connecting to "-e shell_command") support.
This will be automatically disabled if the local system does not support the forkpty() library call.
--disable-menus Leave out menu support. This is helpful for building kiosk applications where the user cannot reconfigure x3270.
--disable-printer Leave out printer session (pr3287) support.
--disable-script
Leave out scripting support.
--disable-ssl
Leave out SSL/TLS (Secure Sockets Layer / Transport Layer Security) support.  SSL/TLS support requires the OpenSSL library.
--with-ssl=dir
Specify the directory where the OpenSSL library is installed.
--disable-tn3270e Leave out TN3270E support.
--disable-trace Leave out tracing support.

Leaving out all of the optional features will result in a binary that's about 40% smaller, and doesn't do a whole lot more than a single session of basic TN3270.



ibm-3270-3.3.10ga4/x3270/html/x3270if.html0000644000175000017500000001606611261527752016716 0ustar bastianbastian x3270if Manual Page

x3270if Manual Page

Contents

Name
Synopsis
Description
Options
Exit Status
Environment
See Also
Copyright

Name

x3270if - command interface to x3270, c3270 and s3270

Synopsis

x3270if [option]... [ action ]
x3270if -i

Description

x3270if provides an interface between scripts and the 3270 emulators x3270, c3270, and s3270.

x3270if operates in one of two modes. In action mode, it passes a single action and parameters to the emulator for execution. The result of the action is written to standard output, along with the (optional) status of the emulator. (The action is optional as well, so that x3270if can just reports the emulator status.) In iterative mode, it forms a continuous conduit between a script and the emulator.

The action takes the form:

action-name(param[,param]...)

The parentheses are manatory, and usually must be quoted when x3270if is called from a shell script.

If any param contains a space or comma, it must be surrounded by double quotes.

Options

-s field
Causes x3270if to write to stdout the value of one of the emulator status fields. Field is an integer in the range 0 through 11. The value 0 is a no-op and is used only to return exit status indicating the state of the emulator. The indices 1-11 and meanings of each field are documented on the x3270-script(1) manual page. If an action is specified as well, the status field is written after the output of the action, separated by a newline. The -s option is mutually exclusive with the -S and -i options.
-S
Causes x3270if to write to stdout the value of all of the emulator status fields. If an action is specified as well, the status fields are written after the output of the action, separated by a newline. The -S option is mutually exclusive with the -s and -i options.
-i
Puts x3270if in iterative mode. Data from x3270if's standard input is copied to the emulator's script input; data from the emulator's script output is copied to x3270if's standard output. The -i option is mutually exclusive with the -s and -S options. x3270if runs until it detects end-of-file on its standard input or on the output from the emulator. (This mode exists primarily to give expect(1) a process to run, on systems which do not support bidirectional pipes.)
-p process-id
Causes x3270if to use a Unix-domain socket to connect to the emulator, rather than pipe file descriptors given in environment variables. The emulator must have been started with the -socket option.
-t port
Causes x3270if to use a TCP socket to connect to the emulator, rather than pipe file descriptors given in environment variables. The emulator must have been started with the -scriptport option.
-v
Turns on verbose debug messages, showing on stderr the literal data that is passed between the emulator and x3270if.

Exit Status

In action mode, if the requested action succeeds, x3270if exits with status 0. If the action fails, x3270if exits with status 1. In iterative mode, x3270if exits with status 0 when it encounters end-of-file. If there is an operational error within x3270if itself, such as a command-line syntax error, missing environment variable, or an unexpectedly closed pipe, x3270if exits with status 2.

Environment

When a script is run as a child process of one of the emulators via the Script action, the emulator passes information about how to control it in environment variables.

On Unix, the emulator process creates a pair of pipes for communication with the child script process. The values of the file descriptors for these pipes are encoded as text in two environment variables:

X3270OUTPUT
Output from the emulator, input to the child process.
X3270INPUT
Input to the emulator, output from the child process.

On Windows, or when a Unix emulator is started with the -scriptport option, the emulator will pass the port number encoded as text in the X3270PORT environment variable. x3270if will use that value as if it had been passed to it via the -t option. X3270PORT takes precedence over X3270OUTPUT and X3270INPUT.

See Also

x3270(1), c3270(1), s3270(1), x3270-script(1)

Copyright

Copyright © 1999-2009, Paul Mattes.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

*
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
*
Neither the names of Paul Mattes nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES `AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


This HTML document and the accompanying troff document were generated with a set of write-only m4 macros and the powerful vi editor.
Last modified 02 October 2009.
ibm-3270-3.3.10ga4/x3270/html/Brackets.html0000644000175000017500000001046411254565663017353 0ustar bastianbastian Square Bracket Characters

Square Bracket Characters

The Problem

Most IBM 3270 emulators have some degree of difficulty with the square-bracket characters, [ and ]. The problem is that there is not a consistent definition of what EBCDIC codes represent them. Hosts may define the square bracket characters as X'BA' and X'BB' (as defined in the IBM Chararcter Set Reference as standard EBCDIC characters), or as X'AD' and X'BD' (which is what the IBM C compilers recognize). In addition, some (but not all) hosts display these characters with a Graphics Escape (GE) sequence. When the host and/or x3270 are misconfigured, the square-bracket characters may be displayed as  and , or Ý and ¨.

Host Configuration

If you are using ISPF, you may simply need to use the correct terminal translation table. According to the IBM's ISPF Planning and Customizing (SC28-1298), Section 3.11, the correct translation table for displaying square bracket characters is called 3278A.

In VM/CMS, the commands terminal apl on and set apl on cause the X'AD', X'BD', X'BA' and X'BB' characters to be displayed with a Graphics Escape (GE) prefix. With terminal apl off and set apl off in effect, they are displayed without the GE prefix.

x3270 Facilities

x3270 has two facilities to deal with this situation: character sets and keymaps. By selecting the correct character set and keymap, you can set up x3270 to generate and display the proper codes for the square-bracket characters.
-charset bracket is the default mode, and is used with hosts that use X'AD' and X'BD' for the square-bracket characters. It can be used if the host displays these characters with or without a GE sequence.
-charset us is for use with hosts that use X'BA' and X'BB' for the square-bracket characters, and do not display these characters with a GE sequence.
-apl (an abbreviation for -charset apl, -keymap apl) is for use with hosts running APL, which use GE X'AD' and GE X'BD' to represent and display the APL2 square-bracket characters.
Here is a table which summarizes the combinations of characters generated and displayed in the various modes.
 
 
keyboard generates
graphic displayed for EBCDIC codes
x3270 Mode
[ key
] key
X'AD'
X'BD'
X'BA'
X'BB'
GE X'BA'
GE X'BB'
GE X'AD'
GE X'BD'
-charset bracket (default) X'AD'
X'BD'
[
]
Ý
¨
[
]
-charset us
X'BA'
X'BB'
Ý
¨
[
]
-apl
GE X'AD'
GE X'BD'
ibm-3270-3.3.10ga4/x3270/html/Lineage.html0000644000175000017500000001155311256027624017151 0ustar bastianbastian x3270 Licensing

Licensing Information

Here is the official copyright notice for x3270, c3270, wc3270, s3270, tcl3270 and pr3287. It is a standard 3-element BSD license.

Copyright © 1993-2009, Paul Mattes.
Copyright © 2004-2005, Don Russell.
Copyright © 2004, Dick Altenbern.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The 3270-20 font is derived from an NCD font, so it carries an additional notice (an MIT license):

Copyright © 1989-1991 Network Computing Devices, Inc.
NCD is a registered trademark of Network Computing Devices, Inc.

Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of NCD may not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. NCD makes no representations about the suitability of this software for any purpose. It is provided ``as is'' without express or implied warranty.

NCD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

The ComplexMenu sources are derived from the MIT X11R5 Athena SimpleMenu widget, and carry an additional notice (another MIT license):

Copyright © 1989 Massachusetts Institute of Technology

Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of M.I.T. not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. M.I.T. makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

ibm-3270-3.3.10ga4/x3270/html/delta.jpg0000644000175000017500000000115711254565663016521 0ustar bastianbastianÿØÿàJFIFÿþHCREATOR: XV Version 3.10a Rev: 12/29/94 Quality = 75, Smoothing = 0 ÿÛC    $.' ",#(7),01444'9=82<.342ÿÀ ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÚ?÷úãí|oöŸ‰SødÚì±û#5µó«qq~ú8ÎH“ha0U£{v—¯êSiº[5ŽMB᎔rU¦~°%—|rö®â€º„ô}L[¹ï<+p—@«7›u0F^2ã.îTç ‘†5è–Öúžmg'™kuM í#r0N# ޵¥¤éºÍºÛêš}¥ô áÖ;¨VU ‚23‚F}Íeÿ àÿú4?üCÿÄÖÅ…ž™g…¤–±çd0F#EÉ$áG$“ø×ÿÙibm-3270-3.3.10ga4/x3270/html/README.html0000644000175000017500000000502511254565663016547 0ustar bastianbastian x3270 3.3 General Release

x3270 3.3 General Release

x3270 is an IBM 3278/3279 terminal emulator for X11.

Documentation is in the html directory. The files are:

Intro
What x3270 is
Lineage
Where x3270 came from (copyright stuff)
Build
How to build and install x3270
FAQ
Frequently Asked Questions (what to do when something goes wrong)
Attributes
A translation table for 3270 field attributes
Resources
A complete list of x3270 resources (configuration items)
Charset
An explanation of x3270's use of fonts and character sets
Keymap
How to create a custom x3270 keymap
Brackets
How to get [ and ] to display correctly
ReleaseNotes
What's new in this release
Bugs
What's broken in this release
Wishlist
What isn't in this release

There is also a hypertext version of the x3270 man page, and of the man pages for x3270if, x3270-script and ibm_hosts.

Please read Build before going ahead and building the program. Also, if you have a problem, scan through FAQ; there are lots of interesting answers there.

Updates to x3270, as well as the current status of development and bugs, are available from the x3270 webpage.

Feel free to send comments, criticism, suggestions, complaints, etc., to Paul Mattes, Paul.Mattes@usa.net. Requests will be addressed as time and resources permit.

There is also an x3270 mailing list, which receives news about new releases. Send a message to Paul.Mattes@usa.net (a real person, with an automatic responses for certain subject lines) to get on the list. ibm-3270-3.3.10ga4/x3270/html/Wishlist.html0000644000175000017500000000155611254565663017425 0ustar bastianbastian The x3270 Wish List

The x3270 Wish List

Here is a list of some of the more interesting suggestions and requests made for x3270. You may also take this as a list of functions that are definitely not in this version of x3270.

There is no guarantee that anyone is actively working on these, but feel free to yourself...

  • Support for the rest of the extended attributes: field outlining, extended validation, etc.
  • Support for GDDM bit-mapped graphics.
  • Data-entry assists like local columnar tabs, automatic line wrap, etc.
ibm-3270-3.3.10ga4/x3270/3270gt12b.bdf0000644000175000017500000011573611254565667015707 0ustar bastianbastianSTARTFONT 2.1 COMMENT "12-point bold 3270 font" COMMENT "Uses nonstandard ordering:" COMMENT " Page 0: EBCDIC US-International set, CG order" COMMENT " Page 1: EBCDIC APL/APL2 set, CG order (incomplete)" COMMENT " Page 2: (first 16 characters only) DEC line-drawing characters from" COMMENT " fixed-width X fonts" COMMENT "" COMMENT "Copyright (c) 1994-2009, Paul Mattes." COMMENT "Copyright (c) 1989, Georgia Tech Research Corporation (GTRC)," COMMENT " Atlanta, GA 30332." COMMENT "All rights reserved." COMMENT "" COMMENT "Redistribution and use in source and binary forms, with or" COMMENT "without modification, are permitted provided that the following" COMMENT "conditions are met:" COMMENT " * Redistributions of source code must retain the above" COMMENT " copyright notice, this list of conditions and the following" COMMENT " disclaimer." COMMENT " * Redistributions in binary form must reproduce the above" COMMENT " copyright notice, this list of conditions and the following" COMMENT " disclaimer in the documentation and/or other materials" COMMENT " provided with the distribution." COMMENT " * Neither the names of Paul Mattes, GTRC nor their" COMMENT " contributors may be used to endorse or promote products" COMMENT " derived from this software without specific prior written" COMMENT " permission." COMMENT "" COMMENT "THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND GTRC 'AS IS' AND" COMMENT "ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED" COMMENT "TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR" COMMENT "A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL" COMMENT "MATTES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL," COMMENT "SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT" COMMENT "NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;" COMMENT "LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER" COMMENT "CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT," COMMENT "STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)" COMMENT "ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF" COMMENT "ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." FONT 3270gt12bold SIZE 12 72 72 FONTBOUNDINGBOX 7 12 0 -3 STARTPROPERTIES 27 FOUNDRY "GaTech" FAMILY_NAME "3270" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 12 POINT_SIZE 120 RESOLUTION_X 72 RESOLUTION_Y 72 SPACING "C" AVERAGE_WIDTH 70 CHARSET_REGISTRY "3270cg" CHARSET_ENCODING "1" MIN_SPACE 7 NORM_SPACE 7 MAX_SPACE 7 END_SPACE 7 AVG_CAPITAL_WIDTH 70 AVG_LOWERCASE_WIDTH 70 CAP_HEIGHT 7 X_HEIGHT 5 RELATIVE_WEIGHT 50 DESTINATION "Video Text" FONT_ASCENT 9 FONT_DESCENT 3 DEFAULT_CHAR 514 ENDPROPERTIES CHARS 312 STARTCHAR null ENCODING 0 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR nobreakspace ENCODING 1 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR euro ENCODING 2 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 38 6C 60 F8 60 F0 6C 38 00 00 00 ENDCHAR STARTCHAR cr ENCODING 3 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR nl ENCODING 4 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR em ENCODING 5 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR eightones ENCODING 6 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 38 7c 7c 7c 38 00 00 00 00 ENDCHAR STARTCHAR hyphen ENCODING 7 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 7e 00 00 00 00 00 00 ENDCHAR STARTCHAR greater ENCODING 8 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 30 18 0c 06 0c 18 30 00 00 00 ENDCHAR STARTCHAR less ENCODING 9 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 0c 18 30 60 30 18 0c 00 00 00 ENDCHAR STARTCHAR bracketleft ENCODING 10 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 30 30 30 30 30 30 30 3c 00 00 ENDCHAR STARTCHAR bracketright ENCODING 11 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 0c 0c 0c 0c 0c 0c 0c 3c 00 00 ENDCHAR STARTCHAR parenright ENCODING 12 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 30 18 0c 0c 0c 0c 0c 18 30 00 00 ENDCHAR STARTCHAR parenleft ENCODING 13 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 0c 18 30 30 30 30 30 18 0c 00 00 ENDCHAR STARTCHAR braceright ENCODING 14 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 30 18 18 18 0c 18 18 18 30 00 00 ENDCHAR STARTCHAR braceleft ENCODING 15 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 0c 18 18 18 30 18 18 18 0c 00 00 ENDCHAR STARTCHAR space ENCODING 16 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR equal ENCODING 17 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 7e 00 7e 00 00 00 00 00 ENDCHAR STARTCHAR apostrophe ENCODING 18 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 18 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR quotedbl ENCODING 19 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 3c 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR slash ENCODING 20 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 06 06 0c 0c 18 18 30 30 60 00 00 ENDCHAR STARTCHAR backslash ENCODING 21 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 60 60 30 30 18 18 0c 0c 06 00 00 ENDCHAR STARTCHAR bar ENCODING 22 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 18 18 18 18 18 18 18 18 18 00 ENDCHAR STARTCHAR brokenbar ENCODING 23 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 18 18 18 00 00 18 18 18 18 00 ENDCHAR STARTCHAR question ENCODING 24 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 66 06 0c 18 18 00 18 18 00 00 ENDCHAR STARTCHAR exclam ENCODING 25 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 18 18 18 18 18 00 18 18 00 00 ENDCHAR STARTCHAR dollar ENCODING 26 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 3e 78 78 3c 1e 1e 7c 18 00 00 ENDCHAR STARTCHAR cent ENCODING 27 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 18 3e 78 78 3e 18 00 00 00 00 ENDCHAR STARTCHAR sterling ENCODING 28 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 3c 30 7c 30 30 36 7c 00 00 00 ENDCHAR STARTCHAR yen ENCODING 29 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 66 3c 18 7e 18 7e 18 18 00 00 00 ENDCHAR STARTCHAR paragraph ENCODING 30 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 78 6c 6c 78 60 6c 7e 6c 0c 00 00 ENDCHAR STARTCHAR currency ENCODING 31 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 66 3c 3c 3c 3c 3c 66 00 00 00 ENDCHAR STARTCHAR 0 ENCODING 32 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 66 66 7e 7e 66 66 3c 00 00 00 ENDCHAR STARTCHAR 1 ENCODING 33 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 0c 1c 3c 0c 0c 0c 0c 0c 00 00 00 ENDCHAR STARTCHAR 2 ENCODING 34 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 66 06 06 0c 18 30 7e 00 00 00 ENDCHAR STARTCHAR 3 ENCODING 35 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 7e 06 0c 1c 06 06 06 7c 00 00 00 ENDCHAR STARTCHAR 4 ENCODING 36 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 1c 1c 3c 3c 6c 7e 0c 0c 00 00 00 ENDCHAR STARTCHAR 5 ENCODING 37 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 7e 60 60 7c 06 06 06 7c 00 00 00 ENDCHAR STARTCHAR 6 ENCODING 38 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 30 60 7c 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR 7 ENCODING 39 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 7e 06 0c 18 30 30 30 30 00 00 00 ENDCHAR STARTCHAR 8 ENCODING 40 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 66 66 3c 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR 9 ENCODING 41 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 66 66 6e 3e 06 06 0c 00 00 00 ENDCHAR STARTCHAR ssharp ENCODING 42 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 38 6c 6c 78 6c 66 76 7c 00 00 00 ENDCHAR STARTCHAR section ENCODING 43 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 1c 30 30 78 6c 36 1e 0c 0c 38 00 ENDCHAR STARTCHAR numbersign ENCODING 44 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 3c 7e 3c 7e 3c 00 00 00 00 00 ENDCHAR STARTCHAR at ENCODING 45 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 66 7e 7e 7c 60 60 3e 00 00 00 ENDCHAR STARTCHAR percent ENCODING 46 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 30 78 36 0c 18 30 6c 1e 0c 00 00 ENDCHAR STARTCHAR underscore ENCODING 47 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 7e 00 00 ENDCHAR STARTCHAR ampersand ENCODING 48 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 30 78 78 30 70 7e 6c 3c 06 00 00 ENDCHAR STARTCHAR minus ENCODING 49 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 7e 00 00 00 00 00 00 ENDCHAR STARTCHAR period ENCODING 50 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 18 18 00 00 ENDCHAR STARTCHAR comma ENCODING 51 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 18 18 30 00 ENDCHAR STARTCHAR colon ENCODING 52 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 18 18 00 00 18 18 00 00 ENDCHAR STARTCHAR plus ENCODING 53 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 18 18 7e 18 18 00 00 00 00 ENDCHAR STARTCHAR notsign ENCODING 54 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 7e 06 06 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR macron ENCODING 55 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 7e 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR degree ENCODING 56 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 3c 18 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR periodcentered ENCODING 57 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 18 18 00 00 00 00 00 00 ENDCHAR STARTCHAR asciicircum ENCODING 58 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 3c 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR asciitilde ENCODING 59 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 3e 7c 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR diaeresis ENCODING 60 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR grave ENCODING 61 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 30 18 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR acute ENCODING 62 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 0c 18 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR cedilla ENCODING 63 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 18 38 00 ENDCHAR STARTCHAR agrave ENCODING 64 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 30 18 00 3c 06 3e 66 3e 00 00 00 ENDCHAR STARTCHAR egrave ENCODING 65 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 30 18 00 3c 66 7e 60 3c 00 00 00 ENDCHAR STARTCHAR igrave ENCODING 66 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 30 18 00 18 18 18 18 18 00 00 00 ENDCHAR STARTCHAR ograve ENCODING 67 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 30 18 00 3c 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR ugrave ENCODING 68 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 30 18 00 66 66 66 66 3e 00 00 00 ENDCHAR STARTCHAR atilde ENCODING 69 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3e 7c 00 3c 06 3e 66 3e 00 00 00 ENDCHAR STARTCHAR otilde ENCODING 70 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3e 7c 00 3c 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR ydiaeresis ENCODING 71 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 3c 00 66 66 66 66 3e 06 3c 00 ENDCHAR STARTCHAR Yacute ENCODING 72 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 0c 18 66 66 3c 18 18 18 18 00 00 00 ENDCHAR STARTCHAR yacute ENCODING 73 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 0c 18 00 66 66 66 66 3e 06 3c 00 ENDCHAR STARTCHAR eacute ENCODING 74 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 0c 18 00 3c 66 7e 60 3c 00 00 00 ENDCHAR STARTCHAR onequarter ENCODING 75 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 30 70 30 30 30 1e 1e 1e 06 06 00 ENDCHAR STARTCHAR onehalf ENCODING 76 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 30 70 30 30 30 1c 06 0c 18 1e 00 ENDCHAR STARTCHAR threequarters ENCODING 77 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 70 18 30 18 70 1e 1e 1e 06 06 00 ENDCHAR STARTCHAR udiaeresis ENCODING 78 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 3c 00 66 66 66 66 3e 00 00 00 ENDCHAR STARTCHAR ccedilla ENCODING 79 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 3e 60 60 60 3e 18 38 00 ENDCHAR STARTCHAR adiaeresis ENCODING 80 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 3c 00 3c 06 3e 66 3e 00 00 00 ENDCHAR STARTCHAR ediaeresis ENCODING 81 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 3c 00 3c 66 7e 60 3c 00 00 00 ENDCHAR STARTCHAR idiaeresis ENCODING 82 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 3c 00 18 18 18 18 18 00 00 00 ENDCHAR STARTCHAR odiaeresis ENCODING 83 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 3c 00 3c 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR mu ENCODING 84 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 66 66 66 66 7c 60 60 60 ENDCHAR STARTCHAR acircumflex ENCODING 85 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 3c 00 3c 06 3e 66 3e 00 00 00 ENDCHAR STARTCHAR ecircumflex ENCODING 86 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 3c 00 3c 66 7e 60 3c 00 00 00 ENDCHAR STARTCHAR icircumflex ENCODING 87 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 3c 00 18 18 18 18 18 00 00 00 ENDCHAR STARTCHAR ocircumflex ENCODING 88 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 3c 00 3c 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR ucircumflex ENCODING 89 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 3c 00 66 66 66 66 3e 00 00 00 ENDCHAR STARTCHAR aacute ENCODING 90 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 0c 18 00 3c 06 3e 66 3e 00 00 00 ENDCHAR STARTCHAR multiply ENCODING 91 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 66 3c 18 3c 66 00 00 00 00 ENDCHAR STARTCHAR iacute ENCODING 92 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 0c 18 00 18 18 18 18 18 00 00 00 ENDCHAR STARTCHAR oacute ENCODING 93 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 0c 18 00 3c 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR uacute ENCODING 94 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 0c 18 00 66 66 66 66 3e 00 00 00 ENDCHAR STARTCHAR ntilde ENCODING 95 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3e 7c 00 7c 66 66 66 66 00 00 00 ENDCHAR STARTCHAR Agrave ENCODING 96 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 30 18 18 3c 66 66 7e 66 66 00 00 00 ENDCHAR STARTCHAR Egrave ENCODING 97 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 30 18 7e 60 60 7c 60 60 7e 00 00 00 ENDCHAR STARTCHAR Igrave ENCODING 98 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 30 18 3c 18 18 18 18 18 3c 00 00 00 ENDCHAR STARTCHAR Ograve ENCODING 99 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 30 18 3c 66 66 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR Ugrave ENCODING 100 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 30 18 66 66 66 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR Atilde ENCODING 101 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 3e 7c 18 3c 66 66 7e 66 66 00 00 00 ENDCHAR STARTCHAR Otilde ENCODING 102 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 3e 7c 3c 66 66 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR onesuperior ENCODING 103 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 38 18 18 18 00 00 00 00 00 00 ENDCHAR STARTCHAR twosuperior ENCODING 104 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 38 0c 18 30 3c 00 00 00 00 00 00 ENDCHAR STARTCHAR threesuperior ENCODING 105 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 38 0c 18 0c 38 00 00 00 00 00 00 ENDCHAR STARTCHAR ordfeminine ENCODING 106 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 06 3e 66 3e 00 7e 00 00 00 00 ENDCHAR STARTCHAR masculine ENCODING 107 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 66 66 66 3c 00 7e 00 00 00 00 ENDCHAR STARTCHAR guillemotleft ENCODING 108 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 1a 36 6c 36 1a 00 00 00 00 ENDCHAR STARTCHAR guillemotright ENCODING 109 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 d8 6c 36 6c d8 00 00 00 00 ENDCHAR STARTCHAR exclamdown ENCODING 110 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 18 00 18 18 18 18 18 18 00 00 ENDCHAR STARTCHAR questiondown ENCODING 111 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 18 00 18 18 30 60 66 3c 00 00 ENDCHAR STARTCHAR Adiaeresis ENCODING 112 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 3c 00 18 3c 66 66 7e 66 66 00 00 00 ENDCHAR STARTCHAR Ediaeresis ENCODING 113 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 3c 00 7e 60 60 7c 60 60 7e 00 00 00 ENDCHAR STARTCHAR Idiaeresis ENCODING 114 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 3c 00 3c 18 18 18 18 18 3c 00 00 00 ENDCHAR STARTCHAR Odiaeresis ENCODING 115 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 3c 00 3c 66 66 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR Udiaeresis ENCODING 116 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 3c 00 66 66 66 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR Acircumflex ENCODING 117 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 3c 18 3c 66 66 7e 66 66 00 00 00 ENDCHAR STARTCHAR Ecircumflex ENCODING 118 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 3c 7e 60 60 7c 60 60 7e 00 00 00 ENDCHAR STARTCHAR Icircumflex ENCODING 119 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 3c 3c 18 18 18 18 18 3c 00 00 00 ENDCHAR STARTCHAR Ocircumflex ENCODING 120 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 3c 3c 66 66 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR Ucircumflex ENCODING 121 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 3c 66 66 66 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR Aacute ENCODING 122 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 0c 18 18 3c 66 66 7e 66 66 00 00 00 ENDCHAR STARTCHAR Eacute ENCODING 123 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 0c 18 7e 60 60 7c 60 60 7e 00 00 00 ENDCHAR STARTCHAR Iacute ENCODING 124 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 0c 18 3c 18 18 18 18 18 3c 00 00 00 ENDCHAR STARTCHAR Oacute ENCODING 125 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 0c 18 3c 66 66 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR Uacute ENCODING 126 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 0c 18 66 66 66 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR Ntilde ENCODING 127 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 3e 7c 66 76 7e 6e 66 66 66 00 00 00 ENDCHAR STARTCHAR a ENCODING 128 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 3c 06 3e 66 3e 00 00 00 ENDCHAR STARTCHAR b ENCODING 129 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 60 60 60 7c 66 66 66 7c 00 00 00 ENDCHAR STARTCHAR c ENCODING 130 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 3e 60 60 60 3e 00 00 00 ENDCHAR STARTCHAR d ENCODING 131 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 06 06 06 3e 66 66 66 3e 00 00 00 ENDCHAR STARTCHAR e ENCODING 132 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 3c 66 7e 60 3c 00 00 00 ENDCHAR STARTCHAR f ENCODING 133 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 0e 18 18 7e 18 18 18 18 00 00 00 ENDCHAR STARTCHAR g ENCODING 134 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 3e 66 66 66 3e 06 3c 00 ENDCHAR STARTCHAR h ENCODING 135 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 60 60 60 7c 76 66 66 66 00 00 00 ENDCHAR STARTCHAR i ENCODING 136 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 18 00 18 18 18 18 18 00 00 00 ENDCHAR STARTCHAR j ENCODING 137 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 06 00 06 06 06 06 06 66 3c 00 ENDCHAR STARTCHAR k ENCODING 138 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 60 60 60 66 6c 78 7c 66 00 00 00 ENDCHAR STARTCHAR l ENCODING 139 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 18 18 18 18 18 18 0c 00 00 00 ENDCHAR STARTCHAR m ENCODING 140 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 7c 7e 7e 7e 7e 00 00 00 ENDCHAR STARTCHAR n ENCODING 141 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 7c 66 66 66 66 00 00 00 ENDCHAR STARTCHAR o ENCODING 142 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 3c 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR p ENCODING 143 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 7c 66 66 66 7c 60 60 00 ENDCHAR STARTCHAR q ENCODING 144 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 3e 66 66 66 3e 06 06 00 ENDCHAR STARTCHAR r ENCODING 145 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 7c 76 60 60 60 00 00 00 ENDCHAR STARTCHAR s ENCODING 146 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 3e 60 3c 06 7c 00 00 00 ENDCHAR STARTCHAR t ENCODING 147 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 18 18 7e 18 18 18 1c 00 00 00 ENDCHAR STARTCHAR u ENCODING 148 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 66 66 66 66 3e 00 00 00 ENDCHAR STARTCHAR v ENCODING 149 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 66 66 3c 3c 18 00 00 00 ENDCHAR STARTCHAR w ENCODING 150 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 66 66 7e 7e 3c 00 00 00 ENDCHAR STARTCHAR x ENCODING 151 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 66 3c 18 3c 66 00 00 00 ENDCHAR STARTCHAR y ENCODING 152 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 66 66 66 66 3e 06 3c 00 ENDCHAR STARTCHAR z ENCODING 153 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 7e 0c 18 30 7e 00 00 00 ENDCHAR STARTCHAR ae ENCODING 154 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 7c 1e 3e 78 7e 00 00 00 ENDCHAR STARTCHAR oslash ENCODING 155 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 3e 6e 7e 76 7c 00 00 00 ENDCHAR STARTCHAR aring ENCODING 156 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 3c 00 3c 06 3e 66 3e 00 00 00 ENDCHAR STARTCHAR division ENCODING 157 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 18 18 00 7e 00 18 18 00 00 00 ENDCHAR STARTCHAR fm ENCODING 158 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 7e 00 00 18 18 00 00 18 18 30 00 ENDCHAR STARTCHAR dup ENCODING 159 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 7e 00 18 7e 3c 3c 7e 18 00 00 00 ENDCHAR STARTCHAR A ENCODING 160 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 3c 66 66 7e 66 66 66 00 00 00 ENDCHAR STARTCHAR B ENCODING 161 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 7c 66 66 7c 66 66 66 7c 00 00 00 ENDCHAR STARTCHAR C ENCODING 162 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 1c 36 60 60 60 60 36 1c 00 00 00 ENDCHAR STARTCHAR D ENCODING 163 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 7c 66 66 66 66 66 66 7c 00 00 00 ENDCHAR STARTCHAR E ENCODING 164 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 7e 60 60 7c 60 60 60 7e 00 00 00 ENDCHAR STARTCHAR F ENCODING 165 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 7e 60 60 7c 60 60 60 60 00 00 00 ENDCHAR STARTCHAR G ENCODING 166 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 66 60 6e 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR H ENCODING 167 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 66 66 66 7e 66 66 66 66 00 00 00 ENDCHAR STARTCHAR I ENCODING 168 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 18 18 18 18 18 18 3c 00 00 00 ENDCHAR STARTCHAR J ENCODING 169 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 1e 0c 0c 0c 0c 6c 6c 38 00 00 00 ENDCHAR STARTCHAR K ENCODING 170 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 66 6c 78 70 70 78 6c 66 00 00 00 ENDCHAR STARTCHAR L ENCODING 171 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 60 60 60 60 60 60 60 7e 00 00 00 ENDCHAR STARTCHAR M ENCODING 172 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 66 7e 7e 7e 66 66 66 66 00 00 00 ENDCHAR STARTCHAR N ENCODING 173 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 66 76 7e 7e 6e 66 66 66 00 00 00 ENDCHAR STARTCHAR O ENCODING 174 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 66 66 66 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR P ENCODING 175 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 7c 66 66 7c 60 60 60 60 00 00 00 ENDCHAR STARTCHAR Q ENCODING 176 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 66 66 66 66 66 7e 3c 0c 06 00 ENDCHAR STARTCHAR R ENCODING 177 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 7c 66 66 7c 78 6c 6c 66 00 00 00 ENDCHAR STARTCHAR S ENCODING 178 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 66 60 3c 06 06 66 3c 00 00 00 ENDCHAR STARTCHAR T ENCODING 179 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 7e 18 18 18 18 18 18 18 00 00 00 ENDCHAR STARTCHAR U ENCODING 180 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 66 66 66 66 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR V ENCODING 181 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 66 66 66 3c 3c 3c 18 18 00 00 00 ENDCHAR STARTCHAR W ENCODING 182 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 66 66 66 66 7e 7e 7e 3c 00 00 00 ENDCHAR STARTCHAR X ENCODING 183 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 66 66 3c 18 18 3c 66 66 00 00 00 ENDCHAR STARTCHAR Y ENCODING 184 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 66 66 3c 18 18 18 18 18 00 00 00 ENDCHAR STARTCHAR Z ENCODING 185 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 7e 06 0c 18 18 30 60 7e 00 00 00 ENDCHAR STARTCHAR AE ENCODING 186 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3e 78 78 7e 78 78 78 7e 00 00 00 ENDCHAR STARTCHAR Ooblique ENCODING 187 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 6e 6e 7e 7e 76 76 3c 00 00 00 ENDCHAR STARTCHAR Aring ENCODING 188 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 3c 3c 18 3c 66 66 7e 66 66 00 00 00 ENDCHAR STARTCHAR Ccedilla ENCODING 189 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 1c 36 60 60 60 60 36 1c 0c 3c 00 ENDCHAR STARTCHAR semicolon ENCODING 190 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 18 18 00 00 18 18 30 00 ENDCHAR STARTCHAR asterisk ENCODING 191 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 18 7e 3c 3c 7e 18 00 00 00 00 ENDCHAR STARTCHAR c0 ENCODING 192 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR c1 ENCODING 193 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR c2 ENCODING 194 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR c3 ENCODING 195 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR c4 ENCODING 196 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR c5 ENCODING 197 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR c6 ENCODING 198 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR c7 ENCODING 199 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR c8 ENCODING 200 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR c9 ENCODING 201 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR ca ENCODING 202 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR cb ENCODING 203 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR cc ENCODING 204 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR cd ENCODING 205 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR ce ENCODING 206 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR cf ENCODING 207 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR copyright ENCODING 208 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 38 44 54 64 64 54 44 38 00 00 00 ENDCHAR STARTCHAR registered ENCODING 209 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 38 44 74 6c 74 6c 44 38 00 00 00 ENDCHAR STARTCHAR boxA ENCODING 210 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 60 90 90 f0 90 00 fe 82 fe 00 00 ENDCHAR STARTCHAR insert ENCODING 211 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 10 38 7c ee c6 82 00 00 00 ENDCHAR STARTCHAR boxB ENCODING 212 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 1c 12 1c 12 1c 00 fe 82 fe 00 00 ENDCHAR STARTCHAR box6 ENCODING 213 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 fe 82 a2 a2 ba aa ba 82 fe 00 ENDCHAR STARTCHAR plusminus ENCODING 214 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 18 18 7e 18 18 00 7e 00 00 00 ENDCHAR STARTCHAR ETH ENCODING 215 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 7c 36 36 7e 36 36 36 7c 00 00 00 ENDCHAR STARTCHAR rightarrow ENCODING 216 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 10 18 fc 18 10 00 00 00 00 ENDCHAR STARTCHAR THORN ENCODING 217 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 60 7c 66 66 7c 60 60 60 00 00 00 ENDCHAR STARTCHAR upshift ENCODING 218 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 10 28 44 6c 28 28 28 28 38 00 00 ENDCHAR STARTCHAR human ENCODING 219 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 38 28 38 10 7c 10 10 28 44 00 00 00 ENDCHAR STARTCHAR underB ENCODING 220 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 30 28 30 28 30 00 fe 00 00 00 00 ENDCHAR STARTCHAR downshift ENCODING 221 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 38 28 28 28 28 6c 44 28 10 00 00 ENDCHAR STARTCHAR boxquestion ENCODING 222 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 fe 82 92 aa 8a 92 82 92 82 fe 00 ENDCHAR STARTCHAR boxsolid ENCODING 223 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 fe fe fe fe fe fe fe fe fe fe 00 ENDCHAR STARTCHAR e0 ENCODING 224 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR e1 ENCODING 225 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR e2 ENCODING 226 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR e3 ENCODING 227 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR e4 ENCODING 228 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR e5 ENCODING 229 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR e6 ENCODING 230 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR e7 ENCODING 231 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR e8 ENCODING 232 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR e9 ENCODING 233 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR ea ENCODING 234 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR eb ENCODING 235 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR ec ENCODING 236 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR ed ENCODING 237 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR ee ENCODING 238 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR ef ENCODING 239 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR badcommhi ENCODING 240 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 80 c0 60 fe 18 0c 06 02 00 00 ENDCHAR STARTCHAR commhi ENCODING 241 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 fe 00 00 00 00 00 00 ENDCHAR STARTCHAR commjag ENCODING 242 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 f8 10 20 7e 00 00 00 ENDCHAR STARTCHAR commlo ENCODING 243 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 fe 00 00 00 ENDCHAR STARTCHAR clockleft ENCODING 244 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 02 10 00 00 22 22 02 02 10 02 00 ENDCHAR STARTCHAR clockright ENCODING 245 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 20 40 80 08 08 00 00 20 00 00 ENDCHAR STARTCHAR lock ENCODING 246 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 82 c6 ee 7c 38 7c ee c6 82 00 00 ENDCHAR STARTCHAR eth ENCODING 247 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 1e 0c 06 3e 66 66 66 3c 00 00 00 ENDCHAR STARTCHAR leftarrow ENCODING 248 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 10 30 7e 30 10 00 00 00 00 ENDCHAR STARTCHAR thorn ENCODING 249 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 60 60 7c 66 66 66 7c 60 60 00 ENDCHAR STARTCHAR keyleft ENCODING 250 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 18 26 24 18 00 00 00 00 00 ENDCHAR STARTCHAR keyright ENCODING 251 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 fe 36 36 06 00 00 00 00 ENDCHAR STARTCHAR box4 ENCODING 252 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 fe 82 8a 9a aa ba 8a 82 fe 00 ENDCHAR STARTCHAR underA ENCODING 253 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 10 28 28 38 28 00 fe 00 00 00 00 ENDCHAR STARTCHAR magcard ENCODING 254 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 fe 82 82 fe 82 fe 00 00 00 ENDCHAR STARTCHAR boxhuman ENCODING 255 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 fe ba aa ba fe 92 92 aa c6 fe 00 ENDCHAR STARTCHAR apl_space ENCODING 272 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR apl_bracketright ENCODING 316 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 0c 0c 0c 0c 0c 0c 0c 3c 00 00 ENDCHAR STARTCHAR apl_bracketleft ENCODING 328 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 3c 30 30 30 30 30 30 30 3c 00 00 ENDCHAR STARTCHAR apl_stile ENCODING 347 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 18 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR apl_2vertical ENCODING 384 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 66 66 66 66 66 66 66 66 66 66 66 66 ENDCHAR STARTCHAR apl_2horizontal ENCODING 385 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 fe 00 00 00 00 00 00 00 00 fe 00 ENDCHAR STARTCHAR apl_leftvbar ENCODING 386 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 60 60 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR apl_rightvbar ENCODING 387 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 06 06 06 06 06 06 06 06 06 06 06 06 ENDCHAR STARTCHAR apl_midvbar ENCODING 388 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 18 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR apl_leftsolid ENCODING 393 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 ENDCHAR STARTCHAR apl_rightsolid ENCODING 394 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e 1e ENDCHAR STARTCHAR apl_topsolid ENCODING 395 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP fe fe fe fe fe fe 00 00 00 00 00 00 ENDCHAR STARTCHAR apl_bottomsolid ENCODING 396 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 fe fe fe fe fe fe ENDCHAR STARTCHAR apl_solid ENCODING 397 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP fe fe fe fe fe fe fe fe fe fe fe fe ENDCHAR STARTCHAR apl_midhbar ENCODING 402 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 fe 00 00 00 00 00 00 ENDCHAR STARTCHAR apl_lowerleft ENCODING 419 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 18 18 18 1e 00 00 00 00 00 00 ENDCHAR STARTCHAR apl_upperleft ENCODING 420 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 1e 18 18 18 18 18 18 ENDCHAR STARTCHAR apl_leftjoin ENCODING 421 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 18 18 18 1e 18 18 18 18 18 18 ENDCHAR STARTCHAR apl_bottomjoin ENCODING 422 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 18 18 18 fe 00 00 00 00 00 00 ENDCHAR STARTCHAR apl_intersect ENCODING 427 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 18 18 18 fe 18 18 18 18 18 18 ENDCHAR STARTCHAR apl_lowerright ENCODING 428 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 18 18 18 f8 00 00 00 00 00 00 ENDCHAR STARTCHAR apl_upperright ENCODING 429 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 f8 18 18 18 18 18 18 ENDCHAR STARTCHAR apl_rightjoin ENCODING 430 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 18 18 18 f8 18 18 18 18 18 18 ENDCHAR STARTCHAR apl_topjoin ENCODING 431 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 fe 18 18 18 18 18 18 ENDCHAR STARTCHAR dec_solid ENCODING 512 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c 3c ENDCHAR STARTCHAR dec_filled_circle ENCODING 513 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 18 3c 7e 3c 18 00 00 00 00 ENDCHAR STARTCHAR dec_halftone_block ENCODING 514 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP aa 54 aa 54 aa 54 aa 54 aa 54 aa 54 ENDCHAR STARTCHAR dec_ht ENCODING 515 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 78 78 78 78 78 1e 0c 0c 0c 0c 00 ENDCHAR STARTCHAR dec_ff ENCODING 516 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 78 60 70 60 60 1e 18 1c 18 18 00 ENDCHAR STARTCHAR dec_cr ENCODING 517 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 38 60 60 60 38 1c 1e 1c 1e 1e 00 ENDCHAR STARTCHAR dec_lf ENCODING 518 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 60 60 60 60 78 1e 18 1c 18 18 00 ENDCHAR STARTCHAR dec_degree ENCODING 519 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 3c 18 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR dec_plusminus ENCODING 520 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 18 18 7e 18 18 00 7e 00 00 00 ENDCHAR STARTCHAR dec_nl ENCODING 521 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 6c 7c 7c 6c 6c 18 18 18 18 1e 00 ENDCHAR STARTCHAR dec_vt ENCODING 522 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 78 78 78 30 30 1e 0c 0c 0c 0c 00 ENDCHAR STARTCHAR dec_lowerright ENCODING 523 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 18 18 18 f8 00 00 00 00 00 00 ENDCHAR STARTCHAR dec_upperright ENCODING 524 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 f8 18 18 18 18 18 18 ENDCHAR STARTCHAR dec_upperleft ENCODING 525 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 1e 18 18 18 18 18 18 ENDCHAR STARTCHAR dec_lowerleft ENCODING 526 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 18 18 18 1e 00 00 00 00 00 00 ENDCHAR STARTCHAR dec_intersect ENCODING 527 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 18 18 18 fe 18 18 18 18 18 18 ENDCHAR STARTCHAR dec_hbar1 ENCODING 528 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 fe 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR dec_hbar2 ENCODING 529 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 fe 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR dec_hbar3 ENCODING 530 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 fe 00 00 00 00 00 00 ENDCHAR STARTCHAR dec_hbar4 ENCODING 531 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 fe 00 00 00 00 ENDCHAR STARTCHAR dec_hbar5 ENCODING 532 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 00 00 00 00 fe 00 00 ENDCHAR STARTCHAR dec_leftjoin ENCODING 533 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 18 18 18 1e 18 18 18 18 18 18 ENDCHAR STARTCHAR dec_rightjoin ENCODING 534 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 18 18 18 f8 18 18 18 18 18 18 ENDCHAR STARTCHAR dec_bottomjoin ENCODING 535 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 18 18 18 fe 00 00 00 00 00 00 ENDCHAR STARTCHAR dec_topjoin ENCODING 536 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 00 fe 18 18 18 18 18 18 ENDCHAR STARTCHAR dec_vbar ENCODING 537 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 18 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR dec_notgreater ENCODING 538 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 0c 18 30 60 30 18 0c 00 7c 00 ENDCHAR STARTCHAR dec_notless ENCODING 539 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 30 18 0c 06 0c 18 30 00 3e 00 ENDCHAR STARTCHAR dec_pi ENCODING 540 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 7e 3c 3c 3c 3c 6c 00 00 00 ENDCHAR STARTCHAR dec_notequal ENCODING 541 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 06 0c 7e 18 7e 30 60 00 00 00 ENDCHAR STARTCHAR dec_sterling ENCODING 542 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 18 3c 30 7c 30 30 36 7c 00 00 00 ENDCHAR STARTCHAR dec_periodcentered ENCODING 543 SWIDTH 563 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 00 00 00 00 18 18 00 00 00 00 00 00 ENDCHAR ENDFONT ibm-3270-3.3.10ga4/x3270/config.sub0000755000175000017500000010115311254565704015736 0ustar bastianbastian#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ibm-3270-3.3.10ga4/x3270/keymap.c0000644000175000017500000007400511254565667015422 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * keymap.c * This module handles keymaps. */ #include "globals.h" #include #include #include #include #include #include #include #include #include #include #include "appres.h" #include "objects.h" #include "resources.h" #include "hostc.h" #include "keymapc.h" #include "keypadc.h" #include "kybdc.h" #include "popupsc.h" #include "screenc.h" #include "statusc.h" #include "utilc.h" #define PA_ENDL " " PA_END "()" #define Res3270 "3270" Boolean keymap_changed = False; struct trans_list *trans_list = (struct trans_list *)NULL; static struct trans_list **last_trans = &trans_list; static struct trans_list *tkm_last; struct trans_list *temp_keymaps; /* temporary keymap list */ char *keymap_trace = CN; static char *last_keymap = CN; static Boolean last_nvt = False; static Boolean last_3270 = False; static void setup_keymaps(const char *km, Boolean do_popup); static void add_keymap(const char *name, Boolean do_popup); static void add_trans(const char *name, char *translations, char *pathname, Boolean is_from_server); static char *get_file_keymap(const char *name, char **pathp); static void keymap_3270_mode(Boolean); /* Undocumented Xt function to convert translations to text. */ extern String _XtPrintXlations(Widget w, XtTranslations xlations, Widget accelWidget, Boolean includeRHS); extern Widget *screen; #if defined(X3270_MENUS) /*[*/ extern Pixmap diamond; extern Pixmap no_diamond; static enum { SORT_EVENT, SORT_KEYMAP, SORT_ACTION } sort = SORT_KEYMAP; static Boolean km_isup = False; static Boolean km_exists = False; static Widget km_shell, sort_event, sort_keymap, sort_action, text; static char km_file[128]; static void create_text(void); static void km_up(Widget w, XtPointer client_data, XtPointer call_data); static void km_down(Widget w, XtPointer client_data, XtPointer call_data); static void km_done(Widget w, XtPointer client_data, XtPointer call_data); static void do_sort_action(Widget w, XtPointer client_data, XtPointer call_data); static void do_sort_keymap(Widget w, XtPointer client_data, XtPointer call_data); static void do_sort_event(Widget w, XtPointer client_data, XtPointer call_data); static void format_xlations(String s, FILE *f); static int action_cmp(char *s1, char *s2); static int keymap_cmp(char *k1, int l1, char *k2, int l2); static int event_cmp(char *e1, char *e2); static Boolean is_temp(char *k); static char *pathname(char *k); static Boolean from_server(char *k); static void km_regen(void); #else /*][*/ #define km_regen() #endif /*]*/ char *current_keymap = CN; /* Keymap initialization. */ void keymap_init(const char *km, Boolean interactive) { static Boolean initted = False; if (km == CN) if ((km = (char *)getenv("KEYMAP")) == CN) if ((km = (char *)getenv("KEYBD")) == CN) km = "@server"; setup_keymaps(km, interactive); if (!initted) { initted = True; last_nvt = IN_ANSI; last_3270 = IN_3270; register_schange(ST_3270_MODE, keymap_3270_mode); register_schange(ST_CONNECT, keymap_3270_mode); } else { screen_set_keymap(); keypad_set_keymap(); } km_regen(); /* Save the name(s) of the last keymap, so we can switch modes later. */ if (km != last_keymap) { Replace(last_keymap, km? NewString(km): CN); } } /* * 3270/NVT mode change. */ static void keymap_3270_mode(Boolean ignored _is_unused) { if (last_nvt != IN_ANSI || last_3270 != IN_3270) { last_nvt = IN_ANSI; last_3270 = IN_3270; /* Switch between 3270 and NVT keymaps. */ keymap_init(last_keymap, False); } } /* * Set up a user keymap. */ static void setup_keymaps(const char *km, Boolean do_popup) { char *bkm; Boolean saw_apl_keymod = False; struct trans_list *t; struct trans_list *next; /* Make sure it starts with "base". */ if (km == CN) bkm = XtNewString("base"); else bkm = xs_buffer("base,%s", km); if (do_popup) keymap_changed = True; /* Clear out any existing translations. */ Replace(current_keymap, CN); for (t = trans_list; t != (struct trans_list *)NULL; t = next) { next = t->next; Free(t->name); Free(t->pathname); Free(t); } trans_list = (struct trans_list *)NULL; last_trans = &trans_list; /* Build up the new list. */ if (bkm != CN) { char *ns = XtNewString(bkm); char *n0 = ns; char *comma; do { comma = strchr(ns, ','); if (comma) *comma = '\0'; if (!strcmp(ns, Apl)) saw_apl_keymod = True; add_keymap(ns, do_popup); if (comma) ns = comma + 1; else ns = NULL; } while (ns); XtFree(n0); } if (appres.apl_mode && !saw_apl_keymod) add_keymap(Apl, do_popup); XtFree(bkm); } /* * Get a keymap from a file. */ static char * get_file_keymap(const char *name, char **pathp) { char *path; XrmDatabase dd = (XrmDatabase)NULL; char *resname; XrmValue value; char *type; char *r = CN; *pathp = CN; /* Look for a global keymap file. */ if (dd == (XrmDatabase)NULL) { path = xs_buffer("%s/keymap.%s", appres.conf_dir, name); dd = XrmGetFileDatabase(path); if (dd != (XrmDatabase)NULL) *pathp = path; else { XtFree(path); return CN; } } /* Look up the resource in that file. */ resname = xs_buffer("%s.%s.%s", XtName(toplevel), ResKeymap, name); if ((XrmGetResource(dd, resname, 0, &type, &value) == True) && *value.addr) { r = XtNewString(value.addr); } else { *pathp = CN; } XtFree(resname); XrmDestroyDatabase(dd); return r; } /* * Add to the list of user-specified keymap translations, finding both the * system and user versions of a keymap. */ static void add_keymap(const char *name, Boolean do_popup) { char *translations, *translations_nvt, *translations_3270; char *buf, *buf_nvt, *buf_3270; int any = 0; char *path, *path_nvt, *path_3270; Boolean is_from_server = False; if (strcmp(name, "base")) { if (current_keymap == CN) current_keymap = XtNewString(name); else { Replace(current_keymap, xs_buffer("%s,%s", current_keymap, name)); } } /* Translate '@server' to a vendor-specific keymap. */ if (!strcmp(name, "@server")) { struct sk { struct sk *next; char *vendor; char *keymap; }; static struct sk *sk_list = (struct sk *)NULL; struct sk *sk; if (sk_list == (struct sk *)NULL) { char *s, *vendor, *keymap; s = get_resource("serverKeymapList"); if (s == CN) return; s = XtNewString(s); while (split_dresource(&s, &vendor, &keymap) == 1) { sk = (struct sk *)XtMalloc(sizeof(struct sk)); sk->vendor = vendor; sk->keymap = keymap; sk->next = sk_list; sk_list = sk; } } for (sk = sk_list; sk != (struct sk *)NULL; sk = sk->next) { if (!strcmp(sk->vendor, ServerVendor(display))) { name = sk->keymap; is_from_server = True; break; } } if (sk == (struct sk *)NULL) return; } /* Try for a file first, then resources. */ translations = get_file_keymap(name, &path); buf_nvt = xs_buffer("%s.%s", name, ResNvt); translations_nvt = get_file_keymap(buf_nvt, &path_nvt); buf_3270 = xs_buffer("%s.%s", name, Res3270); translations_3270 = get_file_keymap(buf_3270, &path_3270); if (translations != CN || translations_nvt != CN || translations_3270 != CN) { any++; if (translations != CN) add_trans(name, translations, path, is_from_server); if (IN_ANSI && translations_nvt != CN) add_trans(buf_nvt, translations_nvt, path_nvt, is_from_server); if (IN_3270 && translations_3270 != CN) add_trans(buf_3270, translations_3270, path_3270, is_from_server); XtFree(translations); XtFree(translations_nvt); XtFree(translations_3270); XtFree(buf_nvt); XtFree(buf_3270); } else { XtFree(buf_nvt); XtFree(buf_3270); /* Shared keymap. */ buf = xs_buffer("%s.%s", ResKeymap, name); translations = get_resource(buf); buf_nvt = xs_buffer("%s.%s.%s", ResKeymap, name, ResNvt); translations_nvt = get_resource(buf_nvt); buf_3270 = xs_buffer("%s.%s.%s", ResKeymap, name, Res3270); translations_3270 = get_resource(buf_3270); if (translations != CN || translations_nvt != CN || translations_3270) any++; if (translations != CN) add_trans(name, translations, CN, is_from_server); if (IN_ANSI && translations_nvt != CN) add_trans(buf_nvt + strlen(ResKeymap) + 1, translations_nvt, CN, is_from_server); if (IN_3270 && translations_3270 != CN) add_trans(buf_3270 + strlen(ResKeymap) + 1, translations_3270, CN, is_from_server); XtFree(buf); XtFree(buf_nvt); XtFree(buf_3270); /* User keymap */ buf = xs_buffer("%s.%s.%s", ResKeymap, name, ResUser); translations = get_resource(buf); buf_nvt = xs_buffer("%s.%s.%s.%s", ResKeymap, name, ResNvt, ResUser); translations_nvt = get_resource(buf_nvt); buf_3270 = xs_buffer("%s.%s.%s.%s", ResKeymap, name, Res3270, ResUser); translations_3270 = get_resource(buf_3270); if (translations != CN || translations_nvt != CN || translations_3270 != CN) any++; if (IN_ANSI && translations_nvt != CN) add_trans(buf_nvt + strlen(ResKeymap) + 1, translations_nvt, CN, is_from_server); if (IN_3270 && translations_3270 != CN) add_trans(buf_3270 + strlen(ResKeymap) + 1, translations_3270, CN, is_from_server); if (translations != CN) add_trans(buf, translations, CN, is_from_server); XtFree(buf); XtFree(buf_nvt); XtFree(buf_3270); } if (!any) { if (do_popup) popup_an_error("Cannot find %s \"%s\"", ResKeymap, name); else xs_warning("Cannot find %s \"%s\"", ResKeymap, name); } } /* * Add a single keymap name and translation to the translation list. */ static void add_trans(const char *name, char *translations, char *path_name, Boolean is_from_server) { struct trans_list *t; t = (struct trans_list *)XtMalloc(sizeof(*t)); t->name = XtNewString(name); t->pathname = path_name; t->is_temp = False; t->from_server = is_from_server; (void) lookup_tt(name, translations); t->next = NULL; *last_trans = t; last_trans = &t->next; } /* * Translation table expansion. */ /* Find the first unquoted newline an an action list. */ static char * unquoted_newline(char *s) { Boolean bs = False; enum { UQ_BASE, UQ_PLIST, UQ_Q } state = UQ_BASE; char c; for ( ; (c = *s); s++) { if (bs) { bs = False; continue; } else if (c == '\\') { bs = True; continue; } switch (state) { case UQ_BASE: if (c == '(') state = UQ_PLIST; else if (c == '\n') return s; break; case UQ_PLIST: if (c == ')') state = UQ_BASE; else if (c == '"') state = UQ_Q; break; case UQ_Q: if (c == '"') state = UQ_PLIST; break; } } return CN; } /* Expand a translation table with keymap tracing calls. */ static char * expand_table(const char *name, char *table) { char *cm, *t0, *t, *s; int nlines = 1; if (table == CN) return CN; /* Roughly count the number of lines in the table. */ cm = table; while ((cm = strchr(cm, '\n')) != CN) { nlines++; cm++; } /* Allocate a new buffer. */ t = t0 = (char *)XtMalloc(2 + strlen(table) + nlines * (strlen(" " PA_KEYMAP_TRACE "(,nnnn) ") + strlen(name) + strlen(PA_ENDL))); *t = '\0'; /* Expand the table into it. */ s = table; nlines = 0; while (*s) { /* Skip empty lines. */ while (*s == ' ' || *s == '\t') s++; if (*s == '\n') { *t++ = '\n'; *t = '\0'; s++; continue; } /* Find the '>' from the event name, and copy up through it. */ cm = strchr(s, '>'); if (cm == CN) { while ((*t++ = *s++)) ; break; } while (s <= cm) *t++ = *s++; /* Find the ':' following, and copy up throught that. */ cm = strchr(s, ':'); if (cm == CN) { while ((*t++ = *s++)) ; break; } nlines++; while (s <= cm) *t++ = *s++; #if defined(X3270_TRACE) /*[*/ /* Insert a PA-KeymapTrace call. */ (void) sprintf(t, " " PA_KEYMAP_TRACE "(%s,%d) ", name, nlines); t = strchr(t, '\0'); #endif /*]*/ /* * Copy to the next unquoted newline and append a PA-End call. */ cm = unquoted_newline(s); if (cm == CN) { while ((*t = *s)) { t++; s++; } } else { while (s < cm) *t++ = *s++; } #if defined(X3270_TRACE) /*[*/ (void) strcpy(t, PA_ENDL); t += strlen(PA_ENDL); #endif /*]*/ if (cm == CN) break; else *t++ = *s++; } *t = '\0'; return t0; } #if defined(X3270_TRACE) /*[*/ /* * Trace a keymap. * * This function leaves a value in the global "keymap_trace", which is used * by the action_debug function when subsequent actions are called. */ void PA_KeymapTrace_action(Widget w _is_unused, XEvent *event _is_unused, String *params, Cardinal *num_params) { if (!toggled(EVENT_TRACE) || *num_params != 2) return; Replace(keymap_trace, XtMalloc(strlen(params[0]) + 1 + strlen(params[1]) + 1)); (void) sprintf(keymap_trace, "%s:%s", params[0], params[1]); } #endif /*]*/ /* * End a keymap trace. * * This function clears the value in the global "keymap_trace". */ void PA_End_action(Widget w _is_unused, XEvent *event _is_unused, String *params _is_unused, Cardinal *num_params _is_unused) { Replace(keymap_trace, CN); } /* * Translation table cache. */ XtTranslations lookup_tt(const char *name, char *table) { struct tt_cache { char *name; XtTranslations trans; struct tt_cache *next; }; # define TTN (struct tt_cache *)NULL static struct tt_cache *tt_cache = TTN; struct tt_cache *t; char *xtable; /* Look for an old one. */ for (t = tt_cache; t != TTN; t = t->next) if (!strcmp(name, t->name)) return t->trans; /* Allocate and translate a new one. */ t = (struct tt_cache *)XtMalloc(sizeof(*t)); t->name = XtNewString(name); xtable = expand_table(name, table); t->trans = XtParseTranslationTable(xtable); Free(xtable); t->next = tt_cache; tt_cache = t; return t->trans; } #undef TTN /* * Set or clear a temporary keymap. * * If the parameter is CN, removes all keymaps. * Otherwise, toggles the keymap by that name. * * Returns 0 if the action was successful, -1 otherwise. * */ int temporary_keymap(char *k) { char *km; XtTranslations trans; struct trans_list *t, *prev; char *path = CN; # define TN (struct trans_list *)NULL if (k == CN) { struct trans_list *next; /* Delete all temporary keymaps. */ for (t = temp_keymaps; t != TN; t = next) { Free(t->name); Free(t->pathname); next = t->next; Free(t); } tkm_last = temp_keymaps = TN; screen_set_temp_keymap((XtTranslations)NULL); keypad_set_temp_keymap((XtTranslations)NULL); status_kmap(False); km_regen(); return 0; } /* Check for deleting one keymap. */ for (prev = TN, t = temp_keymaps; t != TN; prev = t, t = t->next) if (!strcmp(k, t->name)) break; if (t != TN) { /* Delete the keymap from the list. */ if (prev != TN) prev->next = t->next; else temp_keymaps = t->next; if (tkm_last == t) tkm_last = prev; Free(t->name); Free(t); /* Rebuild the translation tables from the remaining ones. */ screen_set_temp_keymap((XtTranslations)NULL); keypad_set_temp_keymap((XtTranslations)NULL); for (t = temp_keymaps; t != TN; t = t->next) { trans = lookup_tt(t->name, CN); screen_set_temp_keymap(trans); keypad_set_temp_keymap(trans); } /* Update the status line. */ if (temp_keymaps == TN) status_kmap(False); km_regen(); return 0; } /* Add a keymap. */ /* Try a file first. */ km = get_file_keymap(k, &path); if (km == CN) { /* Then try a resource. */ km = get_fresource("%s.%s", ResKeymap, k); if (km == CN) return -1; } /* Update the translation tables. */ trans = lookup_tt(k, km); screen_set_temp_keymap(trans); keypad_set_temp_keymap(trans); /* Add it to the list. */ t = (struct trans_list *)XtMalloc(sizeof(*t)); t->name = XtNewString(k); t->pathname = path; t->is_temp = True; t->from_server = False; t->next = TN; if (tkm_last != TN) tkm_last->next = t; else temp_keymaps = t; tkm_last = t; /* Update the status line. */ status_kmap(True); km_regen(); /* Success. */ return 0; } #undef TN #if defined(X3270_MENUS) /*[*/ /* Create and pop up the current keymap pop-up. */ void do_keymap_display(Widget w _is_unused, XtPointer userdata _is_unused, XtPointer calldata _is_unused) { Widget form, label, done; /* If it's already up, do nothing. */ if (km_isup) return; if (km_exists) { popup_popup(km_shell, XtGrabNone); return; } /* Create the popup. */ km_shell = XtVaCreatePopupShell( "kmPopup", transientShellWidgetClass, toplevel, NULL); XtAddCallback(km_shell, XtNpopupCallback, place_popup, (XtPointer) CenterP); XtAddCallback(km_shell, XtNpopupCallback, km_up, (XtPointer)NULL); XtAddCallback(km_shell, XtNpopdownCallback, km_down, (XtPointer)NULL); /* Create a form in the popup. */ form = XtVaCreateManagedWidget( ObjDialog, formWidgetClass, km_shell, NULL); /* Create the title. */ label = XtVaCreateManagedWidget("label", labelWidgetClass, form, XtNborderWidth, 0, NULL); /* Create the options. */ sort_event = XtVaCreateManagedWidget("sortEventOption", commandWidgetClass, form, XtNborderWidth, 0, XtNfromVert, label, XtNleftBitmap, sort == SORT_EVENT ? diamond : no_diamond, NULL); XtAddCallback(sort_event, XtNcallback, do_sort_event, (XtPointer)NULL); sort_keymap = XtVaCreateManagedWidget("sortKeymapOption", commandWidgetClass, form, XtNborderWidth, 0, XtNfromVert, sort_event, XtNleftBitmap, sort == SORT_KEYMAP ? diamond : no_diamond, NULL); XtAddCallback(sort_keymap, XtNcallback, do_sort_keymap, (XtPointer)NULL); sort_action = XtVaCreateManagedWidget("sortActionOption", commandWidgetClass, form, XtNborderWidth, 0, XtNfromVert, sort_keymap, XtNleftBitmap, sort == SORT_ACTION ? diamond : no_diamond, NULL); XtAddCallback(sort_action, XtNcallback, do_sort_action, (XtPointer)NULL); /* Create a text widget attached to the file. */ text = XtVaCreateManagedWidget( "text", asciiTextWidgetClass, form, XtNfromVert, sort_action, XtNscrollHorizontal, XawtextScrollAlways, XtNscrollVertical, XawtextScrollAlways, XtNdisplayCaret, False, NULL); create_text(); /* Create the Done button. */ done = XtVaCreateManagedWidget(ObjConfirmButton, commandWidgetClass, form, XtNfromVert, text, NULL); XtAddCallback(done, XtNcallback, km_done, (XtPointer)NULL); /* Pop it up. */ km_exists = True; popup_popup(km_shell, XtGrabNone); } /* Called when x3270 is exiting. */ static void remove_keymap_file(Boolean ignored _is_unused) { (void) unlink(km_file); } /* Format the keymap into a text source. */ static void create_text(void) { String s; FILE *f; static Widget source = NULL; /* Ready a file. */ (void) sprintf(km_file, "/tmp/km.%d", getpid()); f = fopen(km_file, "w"); if (f == (FILE *)NULL) { popup_an_errno(errno, "temporary file open"); return; } s = _XtPrintXlations(*screen, (*screen)->core.tm.translations, NULL, True); format_xlations(s, f); XtFree(s); fclose(f); if (source != NULL) { XtVaSetValues(source, XtNstring, km_file, NULL); } else { source = XtVaCreateWidget( "source", asciiSrcObjectClass, text, XtNtype, XawAsciiFile, XtNstring, km_file, XtNeditType, XawtextRead, NULL); XawTextSetSource(text, source, (XawTextPosition)0); register_schange(ST_EXITING, remove_keymap_file); } } /* Refresh the keymap display, if it's up. */ static void km_regen(void) { if (km_exists) create_text(); } /* Popup callback. */ static void km_up(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { km_isup = True; } /* Popdown callback. */ static void km_down(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { km_isup = False; } /* Done button callback. Pop down the widget. */ static void km_done(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { XtPopdown(km_shell); } /* "Sort-by-event" button callback. */ static void do_sort_event(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { if (sort != SORT_EVENT) { sort = SORT_EVENT; XtVaSetValues(sort_action, XtNleftBitmap, no_diamond, NULL); XtVaSetValues(sort_keymap, XtNleftBitmap, no_diamond, NULL); XtVaSetValues(sort_event, XtNleftBitmap, diamond, NULL); create_text(); } } /* "Sort-by-keymap" button callback. */ static void do_sort_keymap(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { if (sort != SORT_KEYMAP) { sort = SORT_KEYMAP; XtVaSetValues(sort_action, XtNleftBitmap, no_diamond, NULL); XtVaSetValues(sort_keymap, XtNleftBitmap, diamond, NULL); XtVaSetValues(sort_event, XtNleftBitmap, no_diamond, NULL); create_text(); } } /* "Sort-by-action" button callback. */ static void do_sort_action(Widget w _is_unused, XtPointer client_data _is_unused, XtPointer call_data _is_unused) { if (sort != SORT_ACTION) { sort = SORT_ACTION; XtVaSetValues(sort_action, XtNleftBitmap, diamond, NULL); XtVaSetValues(sort_keymap, XtNleftBitmap, no_diamond, NULL); XtVaSetValues(sort_event, XtNleftBitmap, no_diamond, NULL); create_text(); } } #define DASHES \ "-------------------------- ---------------- ------------------------------------" /* * Format translations for display. * * The data from _XtPrintXlations looks like this: * []event:[PA-KeymapTrace("keymap","line")][action...] * with the delightful complication that embedded quotes are not quoted. * * What we want to do is to: * remove all lines without PA-KeymapTrace * remove the leading space * sort by actions list * reformat as: * action... event (keymap:line) */ static void format_xlations(String s, FILE *f) { char *t; char *t_next; struct xl { struct xl *next; char *actions; char *event; char *keymap; int km_line; char *full_keymap; } *xl_list = (struct xl *)NULL, *x, *xs, *xlp, *xn; char *km_last; int line_last = 0; /* Construct the list. */ for (t = s; t != CN; t = t_next) { char *k, *a, *kk; int nq; static char cmps[] = ": " PA_KEYMAP_TRACE "("; /* Find the end of this rule and terminate this line. */ t_next = strstr(t, PA_ENDL "\n"); if (t_next != CN) { t_next += strlen(PA_ENDL); *t_next++ = '\0'; } /* Remove the leading space. */ while (*t == ' ') t++; /* Use only traced events. */ k = strstr(t, cmps); if (k == CN) continue; *k = '\0'; k += strlen(cmps); /* Find the rest of the actions. */ a = strchr(k, ')'); if (a == CN) continue; while (*(++a) == ' ') ; if (!*a) continue; /* Remove the trailing PA-End call. */ if (strlen(a) >= strlen(PA_ENDL) && !strcmp(a + strlen(a) - strlen(PA_ENDL), PA_ENDL)) a[strlen(a) - strlen(PA_ENDL)] = '\0'; /* Allocate the new element. */ x = (struct xl *)XtCalloc(sizeof(struct xl), 1); x->actions = XtNewString(a); x->event = XtNewString(t); x->keymap = kk = (char *)XtMalloc(a - k + 1); x->km_line = 0; x->full_keymap = (char *)XtMalloc(a - k + 1); nq = 0; while (*k != ')') { if (*k == '"') { nq++; } else if (nq == 1) { *kk++ = *k; } else if (nq == 3) { x->km_line = atoi(k); break; } k++; } *kk = '\0'; (void) sprintf(x->full_keymap, "%s:%d", x->keymap, x->km_line); /* Find where it should be inserted. */ for (xs = xl_list, xlp = (struct xl *)NULL; xs != (struct xl *)NULL; xlp = xs, xs = xs->next) { int halt = 0; switch (sort) { case SORT_EVENT: halt = (event_cmp(xs->event, x->event) > 0); break; case SORT_KEYMAP: halt = (keymap_cmp(xs->keymap, xs->km_line, x->keymap, x->km_line) > 0); break; case SORT_ACTION: halt = (action_cmp(xs->actions, a) > 0); break; } if (halt) break; } /* Insert it. */ if (xlp != (struct xl *)NULL) { x->next = xlp->next; xlp->next = x; } else { x->next = xl_list; xl_list = x; } } /* Walk it. */ if (sort != SORT_KEYMAP) (void) fprintf(f, "%-26s %-16s %s\n%s\n", get_message("kmEvent"), get_message("kmKeymapLine"), get_message("kmActions"), DASHES); km_last = CN; for (xs = xl_list; xs != (struct xl *)NULL; xs = xs->next) { switch (sort) { case SORT_EVENT: if (km_last != CN) { char *l; l = strchr(xs->event, '<'); if (l != CN) { if (strcmp(km_last, l)) (void) fprintf(f, "\n"); km_last = l; } } else km_last = strchr(xs->event, '<'); break; case SORT_KEYMAP: if (km_last == CN || strcmp(xs->keymap, km_last)) { char *p; (void) fprintf(f, "%s%s '%s'%s", km_last == CN ? "" : "\n", get_message(is_temp(xs->keymap) ? "kmTemporaryKeymap" : "kmKeymap"), xs->keymap, from_server(xs->keymap) ? get_message("kmFromServer") : ""); if ((p = pathname(xs->keymap)) != CN) (void) fprintf(f, ", %s %s", get_message("kmFile"), p); else (void) fprintf(f, ", %s %s.%s.%s", get_message("kmResource"), programname, ResKeymap, xs->keymap); (void) fprintf(f, "\n%-26s %-16s %s\n%s\n", get_message("kmEvent"), get_message("kmKeymapLine"), get_message("kmActions"), DASHES); km_last = xs->keymap; line_last = 0; } while (xs->km_line != ++line_last) { (void) fprintf(f, "%-26s %s:%d\n", get_message("kmOverridden"), xs->keymap, line_last); } break; case SORT_ACTION: break; } (void) fprintf(f, "%-26s %-16s ", xs->event, xs->full_keymap); (void) fcatv(f, xs->actions); (void) fputc('\n', f); } /* Free it. */ for (xs = xl_list; xs != (struct xl *)NULL; xs = xn) { xn = xs->next; Free(xs->actions); Free(xs->event); Free(xs->keymap); Free(xs->full_keymap); Free(xs); } } /* * Comparison function for actions. Basically, a strcmp() that handles "PF" * and "PA" specially. */ #define PA "PA(" #define PF "PF(" static int action_cmp(char *s1, char *s2) { if ((!strncmp(s1, PA, 3) && !strncmp(s2, PA, 3)) || (!strncmp(s1, PF, 3) && !strncmp(s2, PF, 3))) return atoi(s1 + 4) - atoi(s2 + 4); else return strcmp(s1, s2); } /* Return a keymap's index in the lists. */ static int km_index(char *n) { struct trans_list *t; int ix = 0; for (t = trans_list; t != (struct trans_list *)NULL; t = t->next) { if (!strcmp(t->name, n)) return ix; ix++; } for (t = temp_keymaps; t != (struct trans_list *)NULL; t = t->next) { if (!strcmp(t->name, n)) return ix; ix++; } return ix; } /* Return whether or not a keymap is temporary. */ static Boolean is_temp(char *k) { struct trans_list *t; for (t = trans_list; t != (struct trans_list *)NULL; t = t->next) { if (!strcmp(t->name, k)) return t->is_temp; } for (t = temp_keymaps; t != (struct trans_list *)NULL; t = t->next) { if (!strcmp(t->name, k)) return t->is_temp; } return False; } /* Return the pathname associated with a keymap. */ static char * pathname(char *k) { struct trans_list *t; for (t = trans_list; t != (struct trans_list *)NULL; t = t->next) { if (!strcmp(t->name, k)) return t->pathname; } for (t = temp_keymaps; t != (struct trans_list *)NULL; t = t->next) { if (!strcmp(t->name, k)) return t->pathname; } return CN; } /* Return whether or not a keymap was translated from "@server". */ static Boolean from_server(char *k) { struct trans_list *t; for (t = trans_list; t != (struct trans_list *)NULL; t = t->next) { if (!strcmp(t->name, k)) return t->from_server; } for (t = temp_keymaps; t != (struct trans_list *)NULL; t = t->next) { if (!strcmp(t->name, k)) return t->from_server; } return False; } /* * Comparison function for keymaps. */ static int keymap_cmp(char *k1, int l1, char *k2, int l2) { /* If the keymaps are the same, do a numerical comparison. */ if (!strcmp(k1, k2)) return l1 - l2; /* The keymaps are different. Order them according to trans_list. */ return km_index(k1) - km_index(k2); } /* * strcmp() that handles Fnn numercally. */ static int Fnn_strcmp(char *s1, char *s2) { static char kp[] = "F"; # define KPL (sizeof(kp) - 1) if (strncmp(s1, kp, KPL) || !isdigit(s1[KPL]) || strncmp(s2, kp, KPL) || !isdigit(s2[KPL])) return strcmp(s1, s2); return atoi(s1 + KPL) - atoi(s2 + KPL); } /* * Comparison function for events. */ static int event_cmp(char *e1, char *e2) { char *l1, *l2; int r; /* If either has a syntax problem, do a straight string compare. */ if ((l1 = strchr(e1, '<')) == CN || (l2 = strchr(e2, '<')) == CN) return strcmp(e1, e2); /* * If the events are different, sort on the event only. Otherwise, * sort on the modifier(s). */ r = Fnn_strcmp(l1, l2); if (r) return r; else return strcmp(e1, e2); } #endif /*]*/ ibm-3270-3.3.10ga4/x3270/unicode.c0000644000175000017500000025016111254565704015551 0ustar bastianbastian/* * Copyright (c) 2008-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * unicode.c * A Windows console-based 3270 Terminal Emulator * EBCDIC/Unicode translation functions */ #include "globals.h" #include #if !defined(_MSC_VER) /*[*/ #include #endif /*]*/ #include #include "3270ds.h" #if !defined(PR3287) /*[*/ #include "appres.h" #endif /*]*/ #include "unicodec.h" #include "unicode_dbcsc.h" #include "utf8c.h" #if !defined(PR3287) /*[*/ #include "utilc.h" #endif /*]*/ #if defined(_WIN32) /*[*/ #include #endif /*]*/ #if defined(USE_ICONV) /*[*/ iconv_t i_u2mb = (iconv_t)-1; iconv_t i_mb2u = (iconv_t)-1; #if !defined(_LIBICONV_VERSION) || _LIBICONV_VERSION < 0x0108 /*[*/ typedef char *ici_t; /* old iconv */ #else /*][*/ typedef const char *ici_t; /* new iconv */ #endif /*]*/ #endif /*]*/ #define DEFAULT_CSNAME "us" #if defined(_WIN32) /*[*/ # if defined(WS3270) /*[*/ # define LOCAL_CODEPAGE appres.local_cp # else /*[*/ # define LOCAL_CODEPAGE CP_ACP # endif /*]*/ #endif /*]*/ /* * EBCDIC-to-Unicode translation tables. * Each table maps EBCDIC codes X'41' through X'FE' to UCS-2. * Other codes are mapped programmatically. */ #define UT_SIZE 190 #define UT_OFFSET 0x41 typedef struct { char *name; unsigned short code[UT_SIZE]; const char *host_codepage; const char *cgcsgid; const char *display_charset; } uni_t; static uni_t uni[] = { { "cp037", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp273", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "273", "273", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp275", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00c9, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x00c7, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e7, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e3, 0x003a, 0x00d5, 0x00c3, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f5, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00e9, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "275", "275", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp277", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "277", "277", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp278", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "278", "278", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp280", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "280", "280", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp284", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "284", "284", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp285", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "285", "285", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp297", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "297", "297", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp424", { 0x5d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x05ea, 0x0000, 0x0000, 0x00a0, 0x0000, 0x0000, 0x0000, 0x21d4, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x00b8, 0x0000, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000 }, "424", "0x03ad01a8", "3270cg-8,iso10646-1,iso8859-8" }, { "cp500", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "500", "500", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp870", { 0x00a0, 0x00e2, 0x00e4, 0x0163, 0x00e1, 0x0103, 0x010d, 0x00e7, 0x0107, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x0119, 0x00eb, 0x016f, 0x00ed, 0x00ee, 0x013e, 0x013a, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x02dd, 0x00c1, 0x0102, 0x010c, 0x00c7, 0x0106, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x02c7, 0x00c9, 0x0118, 0x00cb, 0x016e, 0x00cd, 0x00ce, 0x013d, 0x0139, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x015b, 0x0148, 0x0111, 0x00fd, 0x0159, 0x015f, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00b8, 0x02db, 0x00a4, 0x0105, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x015a, 0x0147, 0x0110, 0x00dd, 0x0158, 0x015e, 0x00b7, 0x0104, 0x017c, 0x0162, 0x017b, 0x00a7, 0x017e, 0x017a, 0x017d, 0x0179, 0x0141, 0x0143, 0x0160, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x0155, 0x00f3, 0x0151, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x011a, 0x0171, 0x00fc, 0x0165, 0x00fa, 0x011b, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x010f, 0x00d4, 0x00d6, 0x0154, 0x00d3, 0x0150, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x010e, 0x0170, 0x00dc, 0x0164, 0x00da }, "870", "0x03bf0366", "iso10646-1,iso8859-2" }, { "cp871", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00fe, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00de, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "871", "871", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp875", { 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a8, 0x0386, 0x0388, 0x0389, 0x2207, 0x038a, 0x038c, 0x038e, 0x038f, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x00b4, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x00a3, 0x03ac, 0x03ad, 0x03ae, 0x0390, 0x03af, 0x03cc, 0x03cd, 0x03b0, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x03c9, 0x03ca, 0x03cb, 0x2018, 0x2015, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b1, 0x00bd, 0x0000, 0x00b7, 0x2019, 0x00a6, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00a7, 0x0000, 0x0000, 0x00ab, 0x00ac, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00a9, 0x0000, 0x0000, 0x00bb }, "875", "0x0464036b", "3270cg-7,iso10646-1,iso8859-7" }, { "cp880", { 0x0000, 0x0452, 0x0453, 0x0451, 0x0000, 0x0455, 0x0456, 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x0000, 0x045f, 0x042a, 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x0403, 0x0401, 0x0000, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x040a, 0x040b, 0x040c, 0x0000, 0x0000, 0x040f, 0x044e, 0x0430, 0x0431, 0x0000, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0000, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0000, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x0000, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x005c, 0x00a4, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427 }, "880", "0x03bf0370", "iso10646-1,koi8-r" }, #if defined(X3270_DBCS) /*[*/ { "cp930", { /* 0x40 */ 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67, /* 0x48 */ 0xff68, 0xff69, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 0x50 */ 0x0026, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, 0x0000, /* 0x58 */ 0xff70, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, /* 0x60 */ 0x002d, 0x002f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, /* 0x68 */ 0x0067, 0x0068, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 0x70 */ 0x005b, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, /* 0x78 */ 0x0070, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 0x80 */ 0x005d, 0xff67, 0xff68, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 0x88 */ 0xff78, 0xff79, 0xff7a, 0x0071, 0xff7b, 0xff7c, 0xff7d, 0xff7e, /* 0x90 */ 0xff7f, 0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, /* 0x98 */ 0xff87, 0xff88, 0xff89, 0x0072, 0x0000, 0xff8a, 0xff8b, 0xff8c, /* 0xa0 */ 0x007e, 0x00af, 0xff8d, 0xff8e, 0xff8f, 0xff90, 0xff91, 0xff92, /* 0xa8 */ 0xff93, 0xff94, 0xff95, 0x0073, 0xff96, 0xff97, 0xff98, 0xff99, /* 0xb0 */ 0x005e, 0x00a2, 0x005c, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* 0xb8 */ 0x0079, 0x007a, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f, /* 0xc0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* 0xc8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xd0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* 0xd8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xe0 */ 0x0024, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* 0xe8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xf0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* 0xf8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } , "930", "0x04940122" /* 1172, 0290 */, "iso10646-1,jisx0201.1976-0" }, { "cp935", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "935", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp937", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "937", "0x04970025" /* 1175, 037 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { "cp939", { /* 40 */ 0x0000, 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, /* 48 */ 0xff67, 0xff68, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, /* 50 */ 0x0026, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, /* 58 */ 0xff70, 0xff71, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, /* 60 */ 0x002d, 0x002f, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, /* 68 */ 0xff78, 0xff79, 0x0000, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, /* 70 */ 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, 0xff80, 0xff81, /* 78 */ 0xff82, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, /* 80 */ 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, /* 88 */ 0x0068, 0x0069, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, 0xff88, /* 90 */ 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, /* 98 */ 0x0071, 0x0072, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, /* a0 */ 0x00af, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, /* a8 */ 0x0079, 0x007a, 0xff8f, 0xff90, 0xff91, 0x005b, 0xff92, 0xff93, /* b0 */ 0x005e, 0x00a3, 0x00a5, 0xff94, 0xff95, 0xff96, 0xff97, 0xff98, /* b8 */ 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0x005d, 0xff9e, 0xff9f, /* c0 */ 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, /* c8 */ 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, /* d8 */ 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x005c, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, /* e8 */ 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, /* f8 */ 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "939", "0x04940403" /* 1172, 1027 */, "iso10646-1,jisx0201.1976-0" }, #endif /*]*/ { "cp1026", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x007d, 0x0060, 0x00a6, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x02db, 0x00c6, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x005d, 0x0024, 0x0040, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x2014, 0x00a8, 0x00b4, 0x00d7, 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0x00ff, 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da }, "1026", "0x04800402", "iso10646-1,iso8859-9" }, { "cp1047", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x00ac, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1047", "1047", "iso10646-1,iso8859-1" }, { "cp1140", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1140", "0x02b70474" /* 695, 1140 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1141", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da }, "1141", "0x02b70475" /* 695, 1141 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1142", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1142", "0x02b70476" /* 695, 1142 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1143", { 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1143", "0x02b70477" /* 695, 1143 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1144", { 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1144", "0x02b70478" /* 695, 1144 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1145", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1145", "0x02b70478" /* 695, 1145 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1146", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1146", "0x02b7047a" /* 695, 1146 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1147", { 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1147", "0x02b7047a" /* 695, 1147 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1148", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1148", "0x02b7047c" /* 695, 1148 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1149", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00de, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x20ac, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, 0x00fe, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "1149", "0x02b7047d" /* 695, 1149 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-15" }, { "cp1160", { 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, 0x005b, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0e48, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x005d, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x005e, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0e3f, 0x0e4e, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0e4f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, 0x0e5a, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e5b, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, 0x0e58, 0x0e59, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0e49, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0e3a, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x005c, 0x0e4a, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4b, 0x20ac }, "1160", "0x05730488" /* 1395, 1160 */, "iso10646-1,iso8859-11" }, #if defined(X3270_DBCS) /*[*/ { "cp1388", { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a3, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x00a5, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x005c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005d, 0x0000, 0x0000, 0x0000, 0x0000, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, "1388", "0x04960344" /* 1174, 836 */, "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, #endif /*]*/ { "apl", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37", "37", "3270cg-1a,iso10646-1" }, { "bracket", { 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da }, "37+", "37", "3270cg-1a,3270cg-1,iso10646-1,iso8859-1" }, { NULL } }; /* Code page aliases. */ typedef struct { char *alias; char *canon; } cpalias_t; cpalias_t cpaliases[] = { { "belgian", "cp500" }, { "belgian-euro", "cp1148" }, { "brazilian", "cp275" }, #if defined(X3270_DBCS) /*[*/ { "chinese-gb18030","cp1388" }, { "cp1027", "cp939" }, /* historical error */ { "cp290", "cp930" }, /* historical error */ #endif /*]*/ { "cp37", "cp037" }, #if defined(X3270_DBCS) /*[*/ { "cp836", "cp935" }, /* historical error */ #endif /*]*/ { "finnish", "cp278" }, { "finnish-euro", "cp1143" }, { "french", "cp297" }, { "french-euro", "cp1147" }, { "german", "cp273" }, { "german-euro", "cp1141" }, { "greek", "cp875" }, { "hebrew", "cp424" }, { "icelandic", "cp871" }, { "icelandic-euro", "cp1149" }, { "italian", "cp280" }, { "italian-euro", "cp1144" }, #if defined(X3270_DBCS) /*[*/ { "japanese-1027", "cp939" }, /* historical error */ { "japanese-290", "cp930" }, /* historical error */ { "japanese-kana", "cp930" }, { "japanese-latin", "cp939" }, #endif /*]*/ { "norwegian", "cp277" }, { "norwegian-euro", "cp1142" }, { "oldibm", "bracket" }, { "bracket437", "bracket" }, { "polish", "cp870" }, { "russian", "cp880" }, #if defined(X3270_DBCS) /*[*/ { "simplified-chinese","cp935" }, #endif /*]*/ { "slovenian", "cp870" }, { "spanish", "cp284" }, { "spanish-euro", "cp1145" }, { "thai", "cp1160" }, #if defined(X3270_DBCS) /*[*/ { "traditional-chinese", "cp937" }, #endif /*]*/ { "turkish", "cp1026" }, { "uk", "cp285" }, { "uk-euro", "cp1146" }, { DEFAULT_CSNAME, "cp037" }, { "us-euro", "cp1140" }, { "us-intl", "cp037" }, { NULL, NULL } }; static uni_t *cur_uni = NULL; void charset_list(void) { int i; int j; char *sep = ""; printf("SBCS host code pages (with aliases):\n"); for (i = 0; uni[i].name != NULL; i++) { Boolean any = False; char *asep = " ("; printf("%s%s", sep, uni[i].name); for (j = 0; cpaliases[j].alias != NULL; j++) { if (!strcmp(cpaliases[j].canon, uni[i].name)) { printf("%s%s", asep, cpaliases[j].alias); asep = ", "; any = True; } } if (any) printf(")"); sep = ", "; } printf("\n"); #if defined(X3270_DBCS) /*[*/ charset_list_dbcs(); #endif /*]*/ } /* * Translate a single EBCDIC character in an arbitrary character set to * Unicode. Note that CS_DBCS is never used -- use CS_BASE and pass an * EBCDIC character > 0xff. * * Returns 0 for no translation. */ ucs4_t ebcdic_to_unicode(ebc_t c, unsigned char cs, unsigned flags) { int iuc; ucs4_t uc; #if 0 /* I'm not sure why this was put in, but it breaks display of DUP and FM. Hopefully I'll figure out why it was put in in the first place and I can put it back under the right conditions. */ /* Control characters become blanks. */ if (c <= 0x41 || c == 0xff) uc = 0; #endif /* * We do not pay attention to BLANK_UNDEF -- we always return 0 * for undefined characters. */ flags &= ~EUO_BLANK_UNDEF; /* Dispatch on the character set. */ if ((cs & CS_GE) || ((cs & CS_MASK) == CS_APL)) { iuc = apl_to_unicode(c, flags); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs == CS_LINEDRAW) { iuc = linedraw_to_unicode(c /* XXX: flags */); if (iuc != -1) uc = iuc; else uc = 0; } else if (cs != CS_BASE) uc = 0; else uc = ebcdic_base_to_unicode(c, flags); return uc; } /* * Translate a single EBCDIC character in the base or DBCS character sets to * Unicode. * * EBCDIC 'FM' and 'DUP' characters are treated specially. If EUO_UPRIV * is set, they are returned as U+f8fe and U+feff (private-use) respectively * so they can be displayed with overscores in the special 3270 font; * otherwise they are returned as '*' and ';'. * EBCDIC 'EO' and 'SUB' are special-cased to U+25cf and U+25a0, respectively. * * If EUO_BLANK_UNDEF is set, other undisplayable characters are returned as * spaces; otherwise they are returned as 0. */ ucs4_t ebcdic_base_to_unicode(ebc_t c, unsigned flags) { #if defined(X3270_DBCS) /*[*/ if (c & 0xff00) return ebcdic_dbcs_to_unicode(c, flags); #endif /*]*/ if (c == 0x40) return 0x0020; if (c >= UT_OFFSET && c < 0xff) { ebc_t uc = cur_uni->code[c - UT_OFFSET]; return uc? uc: ((flags & EUO_BLANK_UNDEF)? ' ': 0); } else switch (c) { case EBC_fm: return (flags & EUO_UPRIV)? UPRIV_fm: ';'; case EBC_dup: return (flags & EUO_UPRIV)? UPRIV_dup: '*'; case EBC_eo: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_eo: 0x25cf; /* solid circle */ case EBC_sub: #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) return (flags & EUO_BLANK_UNDEF)? ' ': 0; #endif /*]*/ return (flags & EUO_UPRIV)? UPRIV_sub: 0x25a0; /* solid block */ default: if (flags & EUO_BLANK_UNDEF) return ' '; else return 0; } } /* * Map a UCS-4 character to an EBCDIC character. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic(ucs4_t u) { int i; #if defined(X3270_DBCS) /*[*/ ebc_t d; #endif /*]*/ if (!u) return 0; if (u == 0x0020) return 0x40; for (i = 0; i < UT_SIZE; i++) { if (cur_uni->code[i] == u) { return UT_OFFSET + i; } } #if defined(X3270_DBCS) /*[*/ /* See if it's DBCS. */ d = unicode_to_ebcdic_dbcs(u); if (d) return d; #endif /*]*/ return 0; } /* * Map a UCS-4 character to an EBCDIC character, possibly including APL (GE) * characters. * Returns 0 for failure, nonzero for success. */ ebc_t unicode_to_ebcdic_ge(ucs4_t u, Boolean *ge) { ebc_t e; *ge = False; e = unicode_to_ebcdic(u); if (e) return e; /* Handle GEs. Yes, this is slow, but I'm lazy. */ for (e = 0x70; e <= 0xfe; e++) { if ((ucs4_t)apl_to_unicode(e, EUO_NONE) == u) { *ge = True; return e; } } return 0; } /* * Set the SBCS EBCDIC-to-Unicode translation table. * Returns 0 for success, -1 for failure. */ int set_uni(const char *csname, const char **host_codepage, const char **cgcsgid, const char **display_charsets) { int i; const char *realname; int rc = -1; Boolean cannot_fail = False; /* * If the csname is NULL, this is a fallback to the default * and the iconv lookup cannot fail. */ if (csname == NULL) { csname = DEFAULT_CSNAME; cannot_fail = True; } realname = csname; /* Search for an alias. */ for (i = 0; cpaliases[i].alias != NULL; i++) { if (!strcasecmp(csname, cpaliases[i].alias)) { realname = cpaliases[i].canon; break; } } /* Search for a match. */ for (i = 0; uni[i].name != NULL; i++) { if (!strcasecmp(realname, uni[i].name)) { cur_uni = &uni[i]; *host_codepage = uni[i].host_codepage; *cgcsgid = uni[i].cgcsgid; *display_charsets = uni[i].display_charset; rc = 0; break; } } if (cannot_fail && rc == -1) Error("Cannot find default charset definition"); #if defined(USE_ICONV) /*[*/ /* * wchar_t's are not Unicode, so getting to/from Unicode is only half * the battle. We need to use iconv() to get between Unicode to the * local multi-byte representation. We'll explicitly use UTF-8, which * appears to be the most broadly-supported translation. */ if (rc == 0) { if (!is_utf8) { /* * If iconv doesn't support the locale's codeset, then * this box is hosed. */ i_u2mb = iconv_open(locale_codeset, "UTF-8"); if (i_u2mb == (iconv_t)(-1)) rc = -1; else { i_mb2u = iconv_open("UTF-8", locale_codeset); if (i_mb2u == (iconv_t)(-1)) { iconv_close(i_u2mb); rc = -1; } } } if (rc == -1 && cannot_fail) { /* Try again with plain-old ASCII. */ #if defined(PR3287) /*[*/ Warning("Cannot find iconv translation from locale " "codeset to UTF-8, using ASCII"); #else /*][*/ xs_warning("Cannot find iconv translation from locale " "codeset '%s' to UTF-8, using ASCII", locale_codeset); #endif /*]*/ i_u2mb = iconv_open("ASCII", "UTF-8"); if (i_u2mb == (iconv_t)-1) Error("No iconv UTF-8 to ASCII translation"); i_mb2u = iconv_open("UTF-8", "ASCII"); if (i_mb2u == (iconv_t)-1) Error("No iconv ASCII to UTF-8 translation"); rc = 0; } } #endif /*]*/ return rc; } /* * Translate an x3270 font line-drawing character (the first two rows of a * standard X11 fixed-width font) to Unicode. * * Returns -1 if there is no translation. */ int linedraw_to_unicode(ebc_t c) { static ebc_t ld2uc[32] = { /* 00 */ 0x2588, 0x25c6, 0x2592, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b0, /* 08 */ 0x00b1, 0x0000, 0x0000, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, /* 10 */ 0x002d, 0x002d, 0x2500, 0x002d, 0x005f, 0x251c, 0x2524, 0x2534, /* 18 */ 0x252c, 0x2502, 0x2264, 0x2265, 0x03c0, 0x2260, 0x00a3, 0x2022 }; if (c < 32 && ld2uc[c] != 0x0000) return ld2uc[c]; else return -1; } int apl_to_unicode(ebc_t c, unsigned flags) { static ebc_t apl2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x25c6, 0x22c0, 0x00a8, 0x223b, 0x2378, 0x2377, 0x22a2, 0x22a3, /* 78 */ 0x2228, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x23b8, 0x23b9, 0x2502, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x2191, 0x2193, 0x2264, 0x2308, 0x230a, 0x2192, /* 90 */ 0x2395, 0x258c, 0x2590, 0x2580, 0x2584, 0x25a0, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x2283, 0x2282, 0x00a4, 0x25cb, 0x00b1, 0x2190, /* a0 */ 0x00af, 0x00b0, 0x2500, 0x2022, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x22c2, 0x22c3, 0x22a5, 0x005b, 0x2265, 0x2218, /* b0 */ 0x03b1, 0x03b5, 0x03b9, 0x03c1, 0x03c9, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x2207, 0x2206, 0x22a4, 0x005d, 0x2260, 0x2502, /* c0 */ 0x007b, 0x207c, 0x002b, 0x220e, 0x2514, 0x250c, 0x251c, 0x2534, /* c8 */ 0x00a7, 0x0000, 0x2372, 0x2371, 0x2337, 0x233d, 0x2342, 0x2349, /* d0 */ 0x007d, 0x207e, 0x002d, 0x253c, 0x2518, 0x2510, 0x2524, 0x252c, /* d8 */ 0x00b6, 0x0000, 0x2336, 0x0021, 0x2352, 0x234b, 0x235e, 0x235d, /* e0 */ 0x2261, 0x2081, 0x0282, 0x0283, 0x2364, 0x2365, 0x236a, 0x20ac, /* e8 */ 0x0000, 0x0000, 0x233f, 0x2240, 0x2235, 0x2296, 0x2339, 0x2355, /* f0 */ 0x2070, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x2075, 0x2076, 0x2077, /* f8 */ 0x2078, 0x2079, 0x0000, 0x236b, 0x2359, 0x235f, 0x234e, 0x0000 }; #if defined(C3270) /*[*/ static ebc_t apla2uc[256] = { /* 00 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 08 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 10 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 18 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */ 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 70 */ 0x0000, 0x0000, 0x00a8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 80 */ 0x007e, 0x0000, 0x0000, 0x0000, 0x0000, 0x007c, 0x0000, 0x0000, /* 88 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 90 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 98 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x00a4, 0x0000, 0x00b1, 0x0000, /* a0 */ 0x00af, 0x00b0, 0x002d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* a8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x0000, 0x0000, /* b0 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d7, 0x005c, /* b8 */ 0x00f7, 0x0000, 0x0000, 0x0000, 0x0000, 0x005d, 0x0000, 0x007c, /* c0 */ 0x007b, 0x0000, 0x002b, 0x0000, 0x002b, 0x002b, 0x002b, 0x002b, /* c8 */ 0x00a7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* d0 */ 0x007d, 0x0000, 0x002d, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, /* d8 */ 0x00b6, 0x0000, 0x0000, 0x0021, 0x0000, 0x0000, 0x0000, 0x0000, /* e0 */ 0x0000, 0x0000, 0x0282, 0x0283, 0x0000, 0x0000, 0x0000, 0x0000, /* e8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* f0 */ 0x0000, 0x00b9, 0x00b2, 0x00b3, 0x0000, 0x0000, 0x0000, 0x0000, /* f8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; #endif /*]*/ #if defined(C3270) /*[*/ if (flags & EUO_ASCII_BOX) { if (c < 256 && apla2uc[c] != 0x0000) { #if defined(_WIN32) /*[*/ /* Windows DBCS fonts make U+0080..U+00ff wide, too. */ if (apla2uc[c] > 0x7f) return -1; #endif /*]*/ return apla2uc[c]; } else return -1; } #endif /*]*/ if (c < 256 && apl2uc[c] != 0x0000) return apl2uc[c]; else return -1; } /* * Translate an EBCDIC character to the current locale's multi-byte * representation. * * Returns the number of bytes in the multi-byte representation, including * the terminating NULL. mb[] should be big enough to include the NULL * in the result. * * Also returns in 'ucp' the UCS-4 Unicode value of the EBCDIC character. * * Note that 'ebc' is an ebc_t (uint16_t), not an unsigned char. This is * so that DBCS values can be passed in as 16 bits (with the first byte * in the high-order bits). There is no ambiguity because all valid EBCDIC * DBCS characters have a nonzero first byte. * * Returns 0 if EUO_BLANK_UNDEF is clear and there is no printable EBCDIC * translation for 'ebc'. * * Returns '?' in mb[] if there is no local multi-byte representation of * the EBCDIC character. */ int ebcdic_to_multibyte_x(ebc_t ebc, unsigned char cs, char mb[], int mb_len, unsigned flags, ucs4_t *ucp) { ucs4_t uc; #if defined(_WIN32) /*[*/ int nc; BOOL udc; wchar_t wuc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; wchar_t wuc; #else /*][*/ char u8b[7]; size_t nu8; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; #endif /*]*/ /* Translate from EBCDIC to Unicode. */ uc = ebcdic_to_unicode(ebc, cs, flags); if (ucp != NULL) *ucp = uc; if (uc == 0) { if (flags & EUO_BLANK_UNDEF) { mb[0] = ' '; mb[1] = '\0'; return 2; } else { return 0; } } /* Translate from Unicode to local multibyte. */ #if defined(_WIN32) /*[*/ /* * wchar_t's are Unicode. */ wuc = uc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc != 0) { mb[nc++] = '\0'; return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #elif defined(UNICODE_WCHAR) /*][*/ /* * wchar_t's are Unicode. * If 'is_utf8' is set, use unicode_to_utf8(). This allows us to set * 'is_utf8' directly, ignoring the locale, for Tcl. * Otherwise, use wctomb(). */ if (is_utf8) { nc = unicode_to_utf8(uc, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } wuc = uc; nc = wctomb(mb, uc); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ /* * Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(uc, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc < 0 || inbytesleft == nu8) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc < 0) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } /* Commonest version of ebcdic_to_multibyte_x: * cs is CS_BASE * EUO_BLANK_UNDEF is set * ucp is ignored */ int ebcdic_to_multibyte(ebc_t ebc, char mb[], int mb_len) { return ebcdic_to_multibyte_x(ebc, CS_BASE, mb, mb_len, EUO_BLANK_UNDEF, NULL); } /* * Convert an EBCDIC string to a multibyte string. * Makes lots of assumptions: standard character set, EUO_BLANK_UNDEF. * Returns the length of the multibyte string. */ int ebcdic_to_multibyte_string(unsigned char *ebc, size_t ebc_len, char mb[], size_t mb_len) { int nmb = 0; while (ebc_len && mb_len) { int xlen; xlen = ebcdic_to_multibyte(*ebc, mb, mb_len); if (xlen) { mb += xlen - 1; mb_len -= (xlen - 1); nmb += xlen - 1; } ebc++; ebc_len--; } return nmb; } /* * Return the maximum buffer length needed to translate 'len' EBCDIC characters * in the current locale. */ int mb_max_len(int len) { #if defined(_WIN32) /*[*/ /* * On Windows, it's 1:1 (we don't do DBCS, and we don't support locales * like UTF-8). */ return len + 1; #elif defined(UNICODE_WCHAR) /*][*/ /* Allocate enough space for shift-state transitions. */ return (MB_CUR_MAX * (len * 2)) + 1; #else /*]*/ if (is_utf8) return (len * 6) + 1; else /* * We don't actually know. Guess that MB_CUR_MAX is 16, and compute * as for UNICODE_WCHAR. */ return (16 * (len * 2)) + 1; #endif /*]*/ } /* * Translate a multi-byte character in the current locale to UCS-4. * * Returns a UCS-4 character or 0, indicating an error in translation. * Also returns the number of characters consumed. */ ucs4_t multibyte_to_unicode(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { size_t nw; ucs4_t ucs4; #if defined(_WIN32) /*[*/ wchar_t wc[3]; int i; /* Use MultiByteToWideChar() to get from the ANSI codepage to UTF-16. */ for (i = 1; i <= mb_len; i++) { nw = MultiByteToWideChar(LOCAL_CODEPAGE, MB_ERR_INVALID_CHARS, mb, i, wc, 3); if (nw != 0) break; } if (i > mb_len) { *errorp = ME_INVALID; return 0; } *consumedp = i; ucs4 = wc[0]; #elif defined(UNICODE_WCHAR) /*][*/ wchar_t wc[3]; /* wchar_t's are Unicode. */ if (is_utf8) { int nc; /* * Use utf8_to_unicode() instead of mbtowc(), so we can set is_utf8 * directly and ignore the locale for Tcl. */ nc = utf8_to_unicode(mb, mb_len, &ucs4); if (nc > 0) { *errorp = ME_NONE; *consumedp = nc; return ucs4; } else if (nc == 0) { *errorp = ME_SHORT; return 0; } else { *errorp = ME_INVALID; return 0; } } /* mbtowc() will translate to Unicode. */ nw = mbtowc(wc, mb, mb_len); if (nw == (size_t)-1) { if (errno == EILSEQ) *errorp = ME_INVALID; else *errorp = ME_SHORT; nw = mbtowc(NULL, NULL, 0); return 0; } /* * Reset the shift state. * XXX: Doing this will ruin the shift state if this function is called * repeatedly to process a string. There should probably be a parameter * passed in to control whether or not to reset the shift state, or * perhaps there should be a function to translate a string. */ *consumedp = nw; nw = mbtowc(NULL, NULL, 0); ucs4 = wc[0]; #else /*][*/ /* wchar_t's have unknown encoding. */ if (!is_utf8) { ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; char utf8buf[16]; size_t ibl; /* Translate from local MB to UTF-8 using iconv(). */ for (ibl = 1; ibl <= mb_len; ibl++) { inbuf = (ici_t)mb; outbuf = utf8buf; inbytesleft = ibl; outbytesleft = sizeof(utf8buf); nw = iconv(i_mb2u, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nw < 0) { if (errno == EILSEQ) { *errorp = ME_INVALID; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } else { if (ibl == mb_len) { *errorp = ME_SHORT; (void) iconv(i_mb2u, NULL, NULL, NULL, NULL); return 0; } } } else break; } *consumedp = ibl - inbytesleft; /* Translate from UTF-8 to UCS-4. */ (void) utf8_to_unicode(utf8buf, sizeof(utf8buf) - outbytesleft, &ucs4); } else { /* Translate from UTF-8 to UCS-4. */ nw = utf8_to_unicode(mb, mb_len, &ucs4); if (nw < 0) { *errorp = ME_INVALID; return 0; } if (nw == 0) { *errorp = ME_SHORT; return 0; } *consumedp = nw; } #endif /*]*/ /* Translate from UCS4 to EBCDIC. */ return ucs4; } /* * Convert a multi-byte string to a UCS-4 string. * Does not NULL-terminate the result. * Returns the number of UCS-4 characters stored. */ int multibyte_to_unicode_string(char *mb, size_t mb_len, ucs4_t *ucs4, size_t u_len) { int consumed; enum me_fail error; int nr = 0; error = ME_NONE; while (u_len && mb_len && (*ucs4++ = multibyte_to_unicode(mb, mb_len, &consumed, &error)) != 0) { u_len--; mb += consumed; mb_len -= consumed; nr++; } if (error != ME_NONE) return -1; else return nr; } /* * Translate a multi-byte character in the current locale to an EBCDIC * character. * * Returns an 8-bit (SBCS) or 16-bit (DBCS) EBCDIC character, or 0, indicating * an error in translation. Also returns the number of characters consumed. */ ebc_t multibyte_to_ebcdic(const char *mb, size_t mb_len, int *consumedp, enum me_fail *errorp) { ucs4_t ucs4; ucs4 = multibyte_to_unicode(mb, mb_len, consumedp, errorp); if (ucs4 == 0) return 0; return unicode_to_ebcdic(ucs4); } /* * Convert a local multi-byte string to an EBCDIC string. * Returns the length of the resulting EBCDIC string, or -1 if there is a * conversion error. */ int multibyte_to_ebcdic_string(char *mb, size_t mb_len, unsigned char *ebc, size_t ebc_len, enum me_fail *errorp) { int ne = 0; Boolean in_dbcs = False; while (mb_len > 0 && ebc_len > 0) { ebc_t e; int consumed; e = multibyte_to_ebcdic(mb, mb_len, &consumed, errorp); if (e == 0) return -1; if (e & 0xff00) { /* DBCS. */ if (!in_dbcs) { /* Make sure there's room for SO, b1, b2, SI. */ if (ebc_len < 4) return ne; *ebc++ = EBC_so; ebc_len++; ne++; in_dbcs = True; } /* Make sure there's room for b1, b2, SI. */ if (ebc_len < 3) { *ebc++ = EBC_si; ne++; return ne; } *ebc++ = (e >> 8) & 0xff; *ebc++ = e & 0xff; ebc_len -= 2; ne += 2; } else { /* SBCS. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; if (!--ebc_len) return ne; in_dbcs = False; } *ebc++ = e & 0xff; ebc_len--; ne++; } mb += consumed; mb_len -= consumed; } /* * Terminate the DBCS string, if we end inside it. * We're guaranteed to have space for the SI; we checked before adding * the last DBCS character. */ if (in_dbcs) { *ebc++ = EBC_si; ne++; } return ne; } /* * Translate a UCS-4 character to a local multi-byte string. */ int unicode_to_multibyte(ucs4_t ucs4, char *mb, size_t mb_len) { #if defined(_WIN32) /*[*/ wchar_t wuc = ucs4; BOOL udc; int nc; nc = WideCharToMultiByte(LOCAL_CODEPAGE, 0, &wuc, 1, mb, mb_len, "?", &udc); if (nc > 0) mb[nc++] = '\0'; return nc; #elif defined(UNICODE_WCHAR) /*][*/ int nc; if (is_utf8) { nc = unicode_to_utf8(ucs4, mb); if (nc < 0) return 0; mb[nc++] = '\0'; return nc; } nc = wctomb(mb, ucs4); if (nc > 0) { /* Return to the initial shift state and null-terminate. */ nc += wctomb(mb + nc, 0); return nc; } else { mb[0] = '?'; mb[1] = '\0'; return 2; } #else /*][*/ int nu8; char u8b[16]; ici_t inbuf; char *outbuf; size_t inbytesleft, outbytesleft; size_t nc; /* Use iconv. */ /* Translate the wchar_t we got from UCS-4 to UTF-8. */ nu8 = unicode_to_utf8(ucs4, u8b); if (nu8 < 0) return 0; /* Local multi-byte might be UTF-8, in which case, we're done. */ if (is_utf8) { memcpy(mb, u8b, nu8); mb[nu8++] = '\0'; return nu8; } /* Let iconv translate from UTF-8 to local multi-byte. */ inbuf = u8b; inbytesleft = nu8; outbuf = mb; outbytesleft = mb_len; nc = iconv(i_u2mb, &inbuf, &inbytesleft, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 2; } /* Return to the initial shift state. */ nc = iconv(i_u2mb, NULL, NULL, &outbuf, &outbytesleft); if (nc == (size_t)-1) { mb[0] = '?'; mb[1] = '\0'; return 0; } /* Null-terminate the return the length. */ mb[mb_len - outbytesleft--] = '\0'; return mb_len - outbytesleft; #endif /*]*/ } ibm-3270-3.3.10ga4/x3270/localdefs.h0000644000175000017500000000405511254565667016073 0ustar bastianbastian/* * Copyright (c) 2000-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * localdefs.h * Local definitions for x3270. * * This file contains definitions for environment-specific * facilities, such as memory allocation, I/O registration, * and timers. */ /* Use X for this stuff. */ #include #define Malloc(n) XtMalloc(n) #define Free(p) XtFree((void *)p) #define Calloc(n, s) XtCalloc(n, s) #define Realloc(p, s) XtRealloc((XtPointer)p, s) #define NewString(s) XtNewString(s) #define Error(s) XtError(s) #define Warning(s) XtWarning(s) /* "Required" optional parts. */ #define X3270_DISPLAY 1 ibm-3270-3.3.10ga4/x3270/x3270-script.man0000644000175000017500000006011211261527751016532 0ustar bastianbastian'\" t .TH X3270-SCRIPT 1 "02 October 2009" .SH "NAME" Scripting Facilities for x3270, s3270, ws3270 and c3270 .SH "SYNOPSIS" \fBx3270\fP \fB\-script\fP [ \fIx3270-options\fP ] .br \fBs3270\fP [ \fIs3270-options\fP ] .br \fBws3270\fP [ \fIws3270-options\fP ] .br \fBScript\fP ( \fIcommand\fP [ ,\fIarg\fP... ] ) .SH "DESCRIPTION" The \fBx3270\fP scripting facilities allow the interactive 3270 emulators \fBx3270\fP and \fBc3270\fP to be operated under the control of another program, and form the basis for the script-only emulators \fBs3270\fP and \fBws3270\fP. .PP There are two basic scripting methods. The first is the \fBpeer script\fP facility, invoked by the \fBx3270\fP \fB\-script\fP switch, and the default mode for \fBs3270\fP and \fBws3270\fP. This runs \fBx3270\fP, \fBs3270\fP or \fBws3270\fP as a child of another process. Typically this would be a script using \fIexpect\fP(1), \fIperl\fP(1), or the co-process facility of the Korn Shell \fIksh\fP(1). Inthis mode, the emulator process looks for commands on its standard input, and places the responses on standard output and standard error output. .PP The second method is the \fBchild script\fP facility, invoked by the \fBScript\fP action in \fBx3270\fP, \fBc3270\fP, or \fBs3270\fP. This runs a script as a child process of the emulator. The child has access to pipes connected to the emulator; the emulator look for commands on one pipe, and places the responses on the other. (The file descriptor of the pipe for commands to the emulator is passed in the environment variable X3270INPUT; the file descriptor of the pipe for responses from the emulator is passed in the environment variable X3270OUTPUT.) .PP It is possible to mix the two methods. A script can invoke another script with the \fBScript\fP action, and may also be implicitly nested when a script invokes the \fBConnect\fP action, and the \fBibm_hosts\fP file specifies a login script for that host name. .PP Commands are emulator \fIactions\fP; the syntax is the same as for the right-hand side of an Xt translation table entry (an \fBx3270\fP or \fBc3270\fP keymap). Unlike translation tables, action names are case-insensitive, can be uniquely abbreviated, and the parentheses may be omitted if there are no parameters. Any input line that begins with \fB#\fP or \fB!\fP is treaded as a comment and will be ignored. .PP Any emulator action may be specified. Several specific actions have been defined for use by scripts, and the behavior of certain other actions (and of the emulators in general) is different when an action is initiated by a script. .PP Some actions generate output; some may delay completion until the certain external events occur, such as the host unlocking the keyboard. The completion of every command is marked by a two-line message. The first line is the current status of the emulator, documented below. If the command is successful, the second line is the string "ok"; otherwise it is the string "error". .SH "STATUS FORMAT" The status message consists of 12 blank-separated fields: .TP 1 Keyboard State If the keyboard is unlocked, the letter \fBU\fP. If the keyboard is locked waiting for a response from the host, or if not connected to a host, the letter \fBL\fP. If the keyboard is locked because of an operator error (field overflow, protected field, etc.), the letter \fBE\fP. .TP 2 Screen Formatting If the screen is formatted, the letter \fBF\fP. If unformatted or in \s-1NVT\s+1 mode, the letter \fBU\fP. .TP 3 Field Protection If the field containing the cursor is protected, the letter \fBP\fP. If unprotected or unformatted, the letter \fBU\fP. .TP 4 Connection State If connected to a host, the string \fBC(\fP\fIhostname\fP\fB)\fP. Otherwise, the letter \fBN\fP. .TP 5 Emulator Mode If connected in 3270 mode, the letter \fBI\fP. If connected in \s-1NVT\s+1 line mode, the letter \fBL\fP. If connected in \s-1NVT\s+1 character mode, the letter \fBC\fP. If connected in unnegotiated mode (no BIND active from the host), the letter \fBP\fP. If not connected, the letter \fBN\fP. .TP 6 Model Number (2-5) .TP 7 Number of Rows The current number of rows defined on the screen. The host can request that the emulator use a 24x80 screen, so this number may be smaller than the maximum number of rows possible with the current model. .TP 8 Number of Columns The current number of columns defined on the screen, subject to the same difference for rows, above. .TP 9 Cursor Row The current cursor row (zero-origin). .TP 10 Cursor Column The current cursor column (zero-origin). .TP 11 Window ID The X window identifier for the main \fBx3270\fP window, in hexadecimal preceded by \fB0x\fP. For \fBs3270\fP, \fBws3270\fP and \fBc3270\fP, this is zero. .TP 12 Command Execution Time The time that it took for the host to respond to the previous commnd, in seconds with milliseconds after the decimal. If the previous command did not require a host response, this is a dash. .SH "DIFFERENCES" When an action is initiated by a script, the emulators behave in several different ways: .PP If an error occurs in processing an action, the usual pop-up window does not appear. Instead, the text is written to standard error output. .PP If end-of-file is detected on standard input, the emulator exits. (A script can exit without killing the emulator by using the \fBCloseScript\fP action, below.) Note that this applies to peer scripts only; end-of-file on the pipe connected to a child script simply causes the pipes to be closed and the \fBScript\fP action to complete. .PP The \fBQuit\fP action always causes the emulator to exit. (When called from the keyboard, it will exit only if not connected to a host.) .PP Normally, the AID actions (\fBClear\fP, \fBEnter\fP, \fBPF\fP, and \fBPA\fP) will not complete until the host unlocks the keyboard. If the parameter to a \fBString\fP action includes a code for one these actions, it will also wait for the keyboard to unlock before proceeding. .PP The \fBAidWait\fP toggle controls with behavior. When this toggle is set (the default), actions block as described above. When the toggle is clear, AID actions complete immediately. The \fBWait(Output)\fP action can then be used to delay a script until the host changes something on the screen, and the \fBWait(Unlock)\fP action can be used to delay a script until the host unlocks the keyboard, regardless of the state of the \fBAidWait\fP toggle. .PP Note that the \fBScript\fP action does not complete until end-of-file is detected on the pipe or the \fBCloseScript\fP action is called by the child process. This behavior is not affected by the state of the \fBAidWait\fP toggle. .SH "SCRIPT-SPECIFIC ACTIONS" The following actions have been defined or modified for use with scripts. (Note that unlike the display on the status line, \fIrow\fP and \fIcol\fP coordinates used in these actions use [0,0] as their origin, not [1,1]). .TP \fBAnsiText\fP Outputs whatever data that has been output by the host in \s-1NVT\s+1 mode since the last time that \fBAnsiText\fP was called. The data is preceded by the string "data:\ ", and has had all control characters expanded into C backslash sequences. .IP This is a convenient way to capture \s-1NVT\s+1 mode output in a synchronous manner without trying to decode the screen contents. .TP \fBAscii\fP(\fIrow\fP,\fIcol\fP,\fIrows\fP,\fIcols\fP) .TP \fBAscii\fP(\fIrow\fP,\fIcol\fP,\fIlength\fP) .TP \fBAscii\fP(\fIlength\fP) .TP \fBAscii\fP Outputs an \s-1ASCII\s+1 text representation of the screen contents. Each line is preceded by the string "data:\ ", and there are no control characters. .IP If four parameters are given, a rectangular region of the screen is output. .IP If three parameters are given, \fIlength\fP characters are output, starting at the specified row and column. .IP If only the \fIlength\fP parameter is given, that many characters are output, starting at the cursor position. .IP If no parameters are given, the entire screen is output. .IP The EBCDIC-to-ASCII translation and output character set depend on the both the emulator character set (the \fB\-charset\fP option) and the locale. UTF-8 and certain DBCS locales may result in multi-byte expansions of EBCDIC characters that translate to ASCII codes greater than 0x7f. .TP \fBAsciiField\fP Outputs an \s-1ASCII\s+1 text representation of the field containing the cursor. The text is preceded by the string "data:\ ". .TP \fBConnect\fP(\fIhostname\fP) Connects to a host. The command does not return until the emulator is successfully connected in the proper mode, or the connection fails. .TP \fBCloseScript\fP(\fIstatus\fP) Causes the emulator to stop reading commands from the script. This is useful to allow a peer script to exit, with the emulator proceeding interactively. (Without this command, the emulator would exit when it detected end-of-file on standard input.) If the script was invoked by the \fBScript\fP action, the optional \fIstatus\fP is used as the return status of \fBScript\fP; if nonzero, \fBScript\fP will complete with an error, and if this script was invoked as part of login through the \fBibm_hosts\fP file, the connection will be broken. .TP \fBContinueScript\fP(\fIparam\fP) Allows a script that is waiting in a \fBPauseScript\fP action, below, to continue. The \fIparam\fP given is output by the \fBPauseScript\fP action. .TP \fBDisconnect\fP Disconnects from the host. .TP \fBEbcdic\fP(\fIrow\fP,\fIcol\fP,\fIrows\fP,\fIcols\fP) .TP \fBEbcdic\fP(\fIrow\fP,\fIcol\fP,\fIlength\fP) .TP \fBEbcdic\fP(\fIlength\fP) .TP \fBEbcdic\fP The same function as \fBAscii\fP above, except that rather than generating \s-1ASCII\s+1 text, each character is output as a hexadecimal \s-1EBCDIC\s+1 code, preceded by \fB0x\fP. .TP \fBEbcdicField\fP The same function as \fBAsciiField\fP above, except that it generates hexadecimal \s-1EBCDIC\s+1 codes. .TP \fBInfo\fP(\fImessage\fP) In x3270, pops up an informational message. In c3270 and wc3270, writes an informational message to the OIA (the line below the display). Not defined for s3270 or tcl3270. .TP \fBExpect\fP(\fItext\fP[,\fItimeout\fP]) Pauses the script until the specified \fItext\fP appears in the data stream from the host, or the specified \fItimeout\fP (in seconds) expires. If no \fItimeout\fP is specified, the default is 30 seconds. \fIText\fP can contain standard C-language escape (backslash) sequences. No wild-card characters or pattern anchor characters are understood. \fBExpect\fP is valid only in \s-1NVT\s+1 mode. .TP \fBMoveCursor\fP(\fIrow\fP,\fIcol\fP) Moves the cursor to the specified coordinates. .TP \fBPauseScript\fP Stops a script until the \fBContinueScript\fP action, above, is executed. This allows a script to wait for user input and continue. Outputs the single parameter to \fBContinueScript\fP. .TP \fBPrintText\fP([\fBcommand\fP,]\fIfilter\fP)) Pipes an ASCII representation of the current screen image through the named \fIfilter\fP, e.g., \fBlpr\fP. .TP \fBPrintText\fP([\fBhtml\fP,],\fBfile\fP,\fIfilename\fP)) Saves the current screen contents in a file. With the \fBhtml\fP option, saves it as HTML, otherwise saves it as plain ASCII. .TP \fBPrintText\fP(\fBhtml,string\fP) Returns the current screen contents as HTML. .TP \fBReadBuffer\fP(\fBAscii\fP) Dumps the contents of the screen buffer, one line at a time. Positions inside data fields are generally output as 2-digit hexadecimal codes in the current display character set. If the current locale specifies UTF-8 (or certain DBCS character sets), some positions may be output as multi-byte strings (4-, 6- or 8-digit codes). DBCS characters take two positions in the screen buffer; the first location is output as a multi-byte string in the current locale codeset, and the second location is output as a dash. Start-of-field characters (each of which takes up a display position) are output as \fBSF(aa=nn[,...])\fP, where \fIaa\fP is a field attribute type and \fInn\fP is its value. .PP .TS center; l l . T{ .na .nh Attribute T} T{ .na .nh Values T} _ T{ .na .nh c0 basic 3270 T} T{ .na .nh 20 protected T} T{ .na .nh T} T{ .na .nh 10 numeric T} T{ .na .nh T} T{ .na .nh 04 detectable T} T{ .na .nh T} T{ .na .nh 08 intensified T} T{ .na .nh T} T{ .na .nh 0c non-display T} T{ .na .nh T} T{ .na .nh 01 modified T} T{ .na .nh 41 highlighting T} T{ .na .nh f1 blink T} T{ .na .nh T} T{ .na .nh f2 reverse T} T{ .na .nh T} T{ .na .nh f4 underscore T} T{ .na .nh T} T{ .na .nh f8 intensify T} T{ .na .nh 42 foreground T} T{ .na .nh f0 neutral black T} T{ .na .nh T} T{ .na .nh f1 blue T} T{ .na .nh T} T{ .na .nh f2 red T} T{ .na .nh T} T{ .na .nh f3 pink T} T{ .na .nh T} T{ .na .nh f4 green T} T{ .na .nh T} T{ .na .nh f5 turquoise T} T{ .na .nh T} T{ .na .nh f6 yellow T} T{ .na .nh T} T{ .na .nh f7 neutral white T} T{ .na .nh T} T{ .na .nh f8 black T} T{ .na .nh T} T{ .na .nh f9 deep blue T} T{ .na .nh T} T{ .na .nh fa orange T} T{ .na .nh T} T{ .na .nh fb purple T} T{ .na .nh T} T{ .na .nh fc pale green T} T{ .na .nh T} T{ .na .nh fd pale turquoise T} T{ .na .nh T} T{ .na .nh fe grey T} T{ .na .nh T} T{ .na .nh ff white T} T{ .na .nh 43 character set T} T{ .na .nh f0 default T} T{ .na .nh T} T{ .na .nh f1 APL T} T{ .na .nh T} T{ .na .nh f8 DBCS T} .TE .IP Extended attributes (which do not take up display positions) are output as \fBSA(aa=nn)\fP, with \fIaa\fP and \fInn\fP having the same definitions as above (though the basic 3270 attribute will never appear as an extended attribute). .IP In addition, NULL characters in the screen buffer are reported as ASCII character 00 instead of 20, even though they should be displayed as blanks. .TP \fBReadBuffer\fP(\fBEbcdic\fP) Equivalent to \fBSnap\fP(\fBAscii\fP), but with the data fields output as hexadecimal EBCDIC codes instead. Additionally, if a buffer position has the Graphic Escape attribute, it is displayed as \fBGE(\fIxx\fP)\fP. .TP \fBSnap\fP Equivalent to \fBSnap\fP(\fBSave\fP) (see below). .TP \fBSnap\fP(\fBAscii\fP,...) Performs the \fBAscii\fP action on the saved screen image. .TP \fBSnap\fP(\fBCols\fP) Returns the number of columns in the saved screen image. .TP \fBSnap\fP(\fBEbcdic\fP,...) Performs the \fBEbcdic\fP action on the saved screen image. .TP \fBSnap\fP(\fBReadBuffer\fP) Performs the \fBReadBuffer\fP action on the saved screen image. .TP \fBSnap\fP(\fBRows\fP) Returns the number of rows in the saved screen image. .TP \fBSnap\fP(\fBSave\fP) Saves a copy of the screen image and status in a temporary buffer. This copy can be queried with other \fBSnap\fP actions to allow a script to examine a consistent screen image, even when the host may be changing the image (or even the screen dimensions) dynamically. .TP \fBSnap\fP(\fBStatus\fP) Returns the status line from when the screen was last saved. .TP \fBSnap\fP(\fBWait\fP[,\fItimeout\fP],\fBOutput\fP) Pauses the script until the host sends further output, then updates the snap buffer with the new screen contents. Used when the host unlocks the keyboard (allowing the script to proceed after an \fBEnter\fP, \fBPF\fP or \fBPA\fP action), but has not finished updating the screen. This action is usually invoked in a loop that uses the \fBSnap\fP(\fBAscii\fP) or \fBSnap\fP(\fBEbcdic\fP) action to scan the screen for some pattern that indicates that the host has fully processed the last command. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBSnap\fP action. The default is to wait indefinitely. .TP \fBSource\fP(\fIfile\fP) Read and execute commands from \fIfile\fP. Any output from those commands will become the output from \fBSource\fP. If any of the commands fails, the \fBSource\fP command will \fInot\fP abort; it will continue reading commands until EOF. .TP \fBTitle\fP(\fItext\fP) Changes the x3270 window title to \fItext\fP. .TP \fBTransfer\fP(\fIkeyword\fP=\fIvalue\fP,...) Invokes IND$FILE file transfer. See \s-1FILE TRANSFER\s+1 below. .TP \fBWait\fP([\fItimeout\fP,] \fB3270Mode\fP) Used when communicating with a host that switches between \s-1NVT\s+1 mode and 3270 mode. Pauses the script or macro until the host negotiates 3270 mode, then waits for a formatted screen as above. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .IP For backwards compatibility, \fBWait(3270)\fP is equivalent to \fBWait\fP(\fB3270Mode\fP) .TP \fBWait\fP([\fItimeout\fP,] \fBDisconnect\fP) Pauses the script until the host disconnects. Often used to after sending a \fIlogoff\fP command to a \s-1VM/CMS\s+1 host, to ensure that the session is not unintentionally set to \fBdisconnected\fP state. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .TP \fBWait\fP([\fItimeout\fP,] \fBInputField\fP) A useful utility for use at the beginning of scripts and after the \fBConnect\fP action. In 3270 mode, waits until the screen is formatted, and the host has positioned the cursor on a modifiable field. In \s-1NVT\s+1 mode, waits until the host sends at least one byte of data. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .IP For backwards compatibility, \fBWait\fP is equivalent to \fBWait\fP(\fBInputField\fP). .TP \fBWait\fP([\fItimeout\fP,] \fBNVTMode\fP) Used when communicating with a host that switches between 3270 mode and \s-1NVT\s+1 mode. Pauses the script or macro until the host negotiates \s-1NVT\s+1 mode, then waits for a byte from the host as above. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .IP For backwards compatibility, \fBWait\fP(\fBansi\fP) is equivalent to \fBWait\fP(\fBNVTMode\fP). .TP \fBWait\fP([\fItimeout\fP,] \fBOutput\fP) Pauses the script until the host sends further output. Often needed when the host unlocks the keyboard (allowing the script to proceed after a \fBClear\fP, \fBEnter\fP, \fBPF\fP or \fBPA\fP action), but has not finished updating the screen. Also used in non-blocking AID mode (see \s-1DIFFERENCES\s+1 for details). This action is usually invoked in a loop that uses the \fBAscii\fP or \fBEbcdic\fP action to scan the screen for some pattern that indicates that the host has fully processed the last command. .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .TP \fBWait\fP([\fItimeout\fP,] \fBUnlock\fP) Pauses the script until the host unlocks the keyboard. This is useful when operating in non-blocking AID mode (\fBtoggle AidWait clear\fP), to wait for a host command to complete. See \s-1DIFFERENCES\s+1 for details). .IP The optional \fItimeout\fP parameter specifies a number of seconds to wait before failing the \fBWait\fP action. The default is to wait indefinitely. .TP \fBWait\fP(\fItimeout\fP, \fBSeconds\fP) Delays the script \fItimeout\fP seconds. Unlike the other forms of \fBWait\fP, the timeout is not optional. .TP \fBWindowState\fP(\fImode\fP) If \fImode\fP is \fBIconic\fP, changes the x3270 window into an icon. If \fImode\fP is \fBNormal\fP, changes the x3270 window from an icon to a normal window. .SH "FILE TRANSFER" The \fBTransfer\fP action implements \fBIND$FILE\fP file transfer. This action requires that the \fBIND$FILE\fP program be installed on the \s-1IBM\s+1 host, and that the 3270 cursor be located in a field that will accept a \s-1TSO\s+1 or \s-1VM/CMS\s+1 command. .LP The \fBTransfer\fP action can be entered at the command prompt with no parameters, which will cause it to prompt interactively for the file names and options. It can also be invoked with parameters to define the entire transfer. .LP Because of the complexity and number of options for file transfer, the parameters to the \fBTransfer\fP action take the unique form of \fIoption\fP=\fIvalue\fP, and can appear in any order. Note that if the \fIvalue\fP contains spaces (such as a VM/CMS file name), then the entire parameter must be quoted, e.g., "HostFile=xxx foo a". The options are: .LP .TS l c l l. T{ .na .nh Option T} T{ .na .nh Required? T} T{ .na .nh Default T} T{ .na .nh Other Values T} _ T{ .na .nh Direction T} T{ .na .nh No T} T{ .na .nh receive T} T{ .na .nh send T} T{ .na .nh HostFile T} T{ .na .nh Yes T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh LocalFile T} T{ .na .nh Yes T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Host T} T{ .na .nh No T} T{ .na .nh tso T} T{ .na .nh vm T} T{ .na .nh Mode T} T{ .na .nh No T} T{ .na .nh ascii T} T{ .na .nh binary T} T{ .na .nh Cr T} T{ .na .nh No T} T{ .na .nh remove T} T{ .na .nh add, keep T} T{ .na .nh Remap T} T{ .na .nh No T} T{ .na .nh yes T} T{ .na .nh no T} T{ .na .nh Exist T} T{ .na .nh No T} T{ .na .nh keep T} T{ .na .nh replace, append T} T{ .na .nh Recfm T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh fixed, variable, undefined T} T{ .na .nh Lrecl T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Blksize T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh Allocation T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh tracks, cylinders, avblock T} T{ .na .nh PrimarySpace T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh SecondarySpace T} T{ .na .nh No T} T{ .na .nh \ T} T{ .na .nh \ T} T{ .na .nh BufferSize T} T{ .na .nh No T} T{ .na .nh 4096 T} T{ .na .nh \ T} .TE .LP The option details are as follows. .TP \fBDirection\fP \fBsend\fP to send a file to the host, \fBreceive\fP to receive a file from the host. .TP \fBHostFile\fP The name of the file on the host. .TP \fBLocalFile\fP The name of the file on the local workstation. .TP \fBHost\fP The type of host (which dictates the form of the \fBIND$FILE\fP command): \fBtso\fP (the default) or \fBvm\fP. .TP \fBMode\fP Use \fBascii\fP (the default) for a text file, which will be translated between \s-1EBCDIC\s+1 and \s-1ASCII\s+1 as necessary. Use \fBbinary\fP for non-text files. .TP \fBCr\fP Controls how \fBNewline\fP characters are handled when transferring \fBMode=ascii\fP files. \fBremove\fP (the default) strips \fBNewline\fP characters in local files before transferring them to the host. \fBadd\fP adds \fBNewline\fP characters to each host file record before transferring it to the local workstation. \fBkeep\fP preserves \fBNewline\fP characters when transferring a local file to the host. .TP \fBRemap\fP Controls text translation for \fBMode=ascii\fP files. The value \fByes\fP (the default) causes x3270-script to remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page. The value \fBno\fP causes x3270-script to pass the text to or from the host as-is, leaving all translation to the \fBIND$FILE\fP program on the host. .TP \fBExist\fP Controls what happens when the destination file already exists. \fBkeep\fP (the default) preserves the file, causing the \fBTransfer\fP action to fail. \fBreplace\fP overwrites the destination file with the source file. \fBappend\fP appends the source file to the destination file. .TP \fBRecfm\fP Controls the record format of files created on the host. \fBfixed\fP creates a file with fixed-length records. \fBvariable\fP creates a file with variable-length records. \fBundefined\fP creates a file with undefined-length records (\s-1TSO\s+1 hosts only). The \fBLrecl\fP option controls the record length or maximum record length for \fBRecfm=fixed\fP and \fBRecfm=variable\fP files, respectively. .TP \fBLrecl\fP Specifies the record length (or maximum record length) for files created on the host. .TP \fBBlksize\fP Specifies the block size for files created on the host. (\s-1TSO\s+1 hosts only.) .TP \fBAllocation\fP Specifies the units for the \s-1TSO\s+1 host \fBPrimarySpace\fP and \fBSecondarySpace\fP options: \fBtracks\fP, \fBcylinders\fP or \fBavblock\fP. .TP \fBPrimarySpace\fP Primary allocation for a file created on a \s-1TSO\s+1 host. The units are given by the \fBAllocation\fP option. .TP \fBSecondarySpace\fP Secondary allocation for a file created on a \s-1TSO\s+1 host. The units are given by the \fBAllocation\fP option. .TP \fBBufferSize\fP Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them. .SH "SEE ALSO" expect(1) .br ksh(1) .br x3270(1) .br c3270(1) .br s3270(1) .br ws3270(1) .SH "VERSION" Version 3.3.10ga4 ibm-3270-3.3.10ga4/x3270/hostc.h0000644000175000017500000000472011254565704015246 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * hostc.h * Global declarations for host.c. */ struct host { char *name; char **parents; char *hostname; enum { PRIMARY, ALIAS, RECENT } entry_type; char *loginstring; time_t connect_time; struct host *prev, *next; }; extern struct host *hosts; extern void Connect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Disconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Reconnect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); /* Host connect/disconnect and state change. */ extern void hostfile_init(void); extern void host_cancel_reconnect(void); extern int host_connect(const char *n); extern void host_connected(void); extern void host_disconnect(Boolean disable); extern void host_in3270(enum cstate); extern void host_newfd(int s); extern void register_schange(int tx, void (*func)(Boolean)); extern void st_changed(int tx, Boolean mode); ibm-3270-3.3.10ga4/x3270/aplc.h0000644000175000017500000000316211254565704015044 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * aplc.h * Global declarations for apl.c. */ extern KeySym APLStringToKeysym(char *s, int *is_gep); ibm-3270-3.3.10ga4/x3270/resources.h0000644000175000017500000003537711254565704016154 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * resources.h * x3270/c3270/s3270/tcl3270 resource and option names. */ /* Resources. */ #define ResAcs "acs" #define ResActiveIcon "activeIcon" #define ResAdVersion "adVersion" #define ResAidWait "aidWait" #define ResAllBold "allBold" #define ResAllowResize "allowResize" #define ResAltCursor "altCursor" #define ResAltScreen "altScreen" #define ResAplMode "aplMode" #define ResAsciiBoxDraw "asciiBoxDraw" #define ResAssocCommand "printer.assocCommandLine" #define ResAutoShortcut "autoShortcut" #define ResBaselevelTranslations "baselevelTranslations" #define ResBellVolume "bellVolume" #define ResBlankFill "blankFill" #define ResBoldColor "boldColor" #define ResBsdTm "bsdTm" #define ResCbreak "cbreak" #define ResCertFile "certFile" #define ResCharClass "charClass" #define ResCharset "charset" #define ResCharsetList "charsetList" #define ResColor8 "color8" #define ResColorBackground "colorBackground" #define ResColorScheme "colorScheme" #define ResCommandTimeout "commandTimeout" #define ResComposeMap "composeMap" #define ResConfDir "confDir" #define ResConnectFileName "connectFileName" #define ResConsoleColorForHostColor "consoleColorForHostColor" #define ResCrosshair "crosshair" #define ResCursesColorFor "cursesColorFor" #define ResCursesColorForDefault ResCursesColorFor "Default" #define ResCursesColorForHostColor ResCursesColorFor "HostColor" #define ResCursesColorForIntensified ResCursesColorFor "Intensified" #define ResCursesColorForProtected ResCursesColorFor "Protected" #define ResCursesColorForProtectedIntensified ResCursesColorFor "ProtectedIntensified" #define ResCursesKeypad "cursesKeypad" #define ResCursorBlink "cursorBlink" #define ResCursorColor "cursorColor" #define ResCursorPos "cursorPos" #define ResDebugTracing "debugTracing" #define ResDefScreen "defScreen" #define ResDftBufferSize "dftBufferSize" #define ResDisconnectClear "disconnectClear" #define ResDoConfirms "doConfirms" #define ResDbcsCgcsgid "dbcsCgcsgid" #define ResDsTrace "dsTrace" #define ResEmulatorFont "emulatorFont" #define ResEof "eof" #define ResErase "erase" #define ResEventTrace "eventTrace" #define ResExtended "extended" #define ResFixedSize "fixedSize" #define ResHighlightBold "highlightBold" #define ResHostColorFor "hostColorFor" #define ResHostColorForDefault ResHostColorFor "Default" #define ResHostColorForIntensified ResHostColorFor "Intensified" #define ResHostColorForProtected ResHostColorFor "Protected" #define ResHostColorForProtectedIntensified ResHostColorFor "ProtectedIntensified" #define ResHostname "hostname" #define ResHostsFile "hostsFile" #define ResIconFont "iconFont" #define ResIconLabelFont "iconLabelFont" #define ResIcrnl "icrnl" #define ResIdleCommand "idleCommand" #define ResIdleCommandEnabled "idleCommandEnabled" #define ResIdleTimeout "idleTimeout" #define ResInlcr "inlcr" #define ResInputColor "inputColor" #define ResInputMethod "inputMethod" #define ResIntr "intr" #define ResInvertKeypadShift "invertKeypadShift" #define ResKeymap "keymap" #define ResKeypad "keypad" #define ResKeypadBackground "keypadBackground" #define ResKeypadOn "keypadOn" #define ResKill "kill" #define ResLabelIcon "labelIcon" #define ResLineWrap "lineWrap" #define ResLnext "lnext" #define ResLocalCp "localCp" #define ResLoginMacro "loginMacro" #define ResLockedCursor "lockedCursor" #define ResLuCommandLine "printer.luCommandLine" #define ResM3279 "m3279" #define ResMacros "macros" #define ResMarginedPaste "marginedPaste" #define ResMenuBar "menuBar" #define ResMetaEscape "metaEscape" #define ResModel "model" #define ResModifiedSel "modifiedSel" #define ResModifiedSelColor "modifiedSelColor" #define ResMono "mono" #define ResMonoCase "monoCase" #define ResMouse "mouse" #define ResNoOther "noOther" #define ResNoPrompt "noPrompt" #define ResNormalColor "normalColor" #define ResNormalCursor "normalCursor" #define ResNumericLock "numericLock" #define ResOerrLock "oerrLock" #define ResOnce "once" #define ResOnlcr "onlcr" #define ResOversize "oversize" #define ResPluginCommand "pluginCommand" #define ResPort "port" #define ResPreeditType "preeditType" #define ResPrinterCodepage "printer.codepage" #define ResPrinterCommand "printer.command" #define ResPrinterLu "printerLu" #define ResPrinterName "printer.name" #define ResProxy "proxy" #define ResQuit "quit" #define ResReconnect "reconnect" #define ResRectangleSelect "rectangleSelect" #define ResReverseVideo "reverseVideo" #define ResRprnt "rprnt" #define ResSaveLines "saveLines" #define ResSchemeList "schemeList" #define ResScreenTrace "screenTrace" #define ResScreenTraceFile "screenTraceFile" #define ResScripted "scripted" #define ResScriptPort "scriptPort" #define ResScrollBar "scrollBar" #define ResSecure "secure" #define ResSelectBackground "selectBackground" #define ResSbcsCgcsgid "sbcsCgcsgid" #define ResShowTiming "showTiming" #define ResSocket "socket" #define ResSuppressActions "suppressActions" #define ResSuppressHost "suppressHost" #define ResSuppressFontMenu "suppressFontMenu" #define ResSuppress "suppress" #define ResTermName "termName" #define ResTitle "title" #define ResTraceDir "traceDir" #define ResTraceFile "traceFile" #define ResTraceFileSize "traceFileSize" #define ResTraceMonitor "traceMonitor" #define ResTypeahead "typeahead" #define ResUnderscore "underscore" #define ResUnlockDelay "unlockDelay" #define ResUnlockDelayMs "unlockDelayMs" #define ResUseCursorColor "useCursorColor" #define ResV "v" #define ResVisibleControl "visibleControl" #define ResVisualBell "visualBell" #define ResVisualSelect "visualSelect" #define ResVisualSelectColor "visualSelectColor" #define ResWaitCursor "waitCursor" #define ResWerase "werase" /* Dotted resource names. */ #define DotActiveIcon "." ResActiveIcon #define DotAplMode "." ResAplMode #define DotCertFile "." ResCertFile #define DotCbreak "." ResCbreak #define DotCharClass "." ResCharClass #define DotCharset "." ResCharset #define DotColorScheme "." ResColorScheme #define DotDsTrace "." ResDsTrace #define DotEmulatorFont "." ResEmulatorFont #define DotExtended "." ResExtended #define DotInputMethod "." ResInputMethod #define DotKeymap "." ResKeymap #define DotKeypadOn "." ResKeypadOn #define DotM3279 "." ResM3279 #define DotModel "." ResModel #define DotMono "." ResMono #define DotOnce "." ResOnce #define DotOversize "." ResOversize #define DotPort "." ResPort #define DotPreeditType "." ResPreeditType #define DotPrinterLu "." ResPrinterLu #define DotProxy "." ResProxy #define DotReconnect "." ResReconnect #define DotSaveLines "." ResSaveLines #define DotScripted "." ResScripted #define DotScriptPort "." ResScriptPort #define DotScrollBar "." ResScrollBar #define DotSocket "." ResSocket #define DotTermName "." ResTermName #define DotTitle "." ResTitle #define DotTraceFile "." ResTraceFile #define DotTraceFileSize "." ResTraceFileSize #define DotV "." ResV /* Resource classes. */ #define ClsActiveIcon "ActiveIcon" #define ClsAdVersion "AdVersion" #define ClsAidWait "AidWait" #define ClsAllBold "AllBold" #define ClsAllowResize "AllowResize" #define ClsAltCursor "AltCursor" #define ClsAplMode "AplMode" #define ClsBaselevelTranslations "BaselevelTranslations" #define ClsBellVolume "BellVolume" #define ClsBlankFill "BlankFill" #define ClsBoldColor "BoldColor" #define ClsBsdTm "BsdTm" #define ClsCbreak "Cbreak" #define ClsCertFile "CertFile" #define ClsCharClass "CharClass" #define ClsCharset "Charset" #define ClsColor8 "Color8" #define ClsColorBackground "ColorBackground" #define ClsColorScheme "ColorScheme" #define ClsComposeMap "ComposeMap" #define ClsConfDir "ConfDir" #define ClsConnectFileName "ConnectFileName" #define ClsCrosshair "Crosshair" #define ClsCursorBlink "CursorBlink" #define ClsCursorColor "CursorColor" #define ClsCursorPos "CursorPos" #define ClsDbcsCgcsgid "DbcsCgcsgid" #define ClsDebugTracing "DebugTracing" #define ClsDftBufferSize "DftBufferSize" #define ClsDisconnectClear "DisconnectClear" #define ClsDoConfirms "DoConfirms" #define ClsDsTrace "DsTrace" #define ClsEmulatorFont "EmulatorFont" #define ClsEof "Eof" #define ClsErase "Erase" #define ClsEventTrace "EventTrace" #define ClsExtended "Extended" #define ClsFixedSize "FixedSize" #define ClsFtCommand "FtCommand" #define ClsHighlightBold "HighlightBold" #define ClsHostname "Hostname" #define ClsHostsFile "HostsFile" #define ClsIconFont "IconFont" #define ClsIconLabelFont "IconLabelFont" #define ClsIcrnl "Icrnl" #define ClsIdleCommand "IdleCommand" #define ClsIdleCommandEnabled "IdleCommandEnabled" #define ClsIdleTimeout "IdleTimeout" #define ClsInlcr "Inlcr" #define ClsInputColor "InputColor" #define ClsInputMethod "InputMethod" #define ClsIntr "Intr" #define ClsInvertKeypadShift "InvertKeypadShift" #define ClsKeymap "Keymap" #define ClsKeypad "Keypad" #define ClsKeypadBackground "KeypadBackground" #define ClsKeypadOn "KeypadOn" #define ClsKill "Kill" #define ClsLabelIcon "LabelIcon" #define ClsLineWrap "LineWrap" #define ClsLnext "Lnext" #define ClsLockedCursor "LockedCursor" #define ClsM3279 "M3279" #define ClsMacros "Macros" #define ClsMarginedPaste "MarginedPaste" #define ClsMenuBar "MenuBar" #define ClsMetaEscape "MetaEscape" #define ClsModel "Model" #define ClsModifiedSel "ModifiedSel" #define ClsModifiedSelColor "ModifiedSelColor" #define ClsMono "Mono" #define ClsMonoCase "MonoCase" #define ClsNoOther "NoOther" #define ClsNormalColor "NormalColor" #define ClsNormalCursor "NormalCursor" #define ClsNumericLock "NumericLock" #define ClsOerrLock "OerrLock" #define ClsOnce "Once" #define ClsOnlcr "Onlcr" #define ClsOversize "Oversize" #define ClsPluginCommand "PluginCommand" #define ClsPort "Port" #define ClsPreeditType "PreeditType" #define ClsPrinterLu "PrinterLu" #define ClsProxy "Proxy" #define ClsQuit "Quit" #define ClsReconnect "Reconnect" #define ClsRectangleSelect "RectangleSelect" #define ClsRprnt "Rprnt" #define ClsSaveLines "SaveLines" #define ClsSbcsCgcsgid "SbcsSgcsgid" #define ClsScreenTrace "ScreenTrace" #define ClsScreenTraceFile "ScreenTraceFile" #define ClsScripted "Scripted" #define ClsScriptPort "ScriptPort" #define ClsScrollBar "ScrollBar" #define ClsSecure "Secure" #define ClsSelectBackground "SelectBackground" #define ClsShowTiming "ShowTiming" #define ClsSocket "Socket" #define ClsSuppressHost "SuppressHost" #define ClsSuppressFontMenu "SuppressFontMenu" #define ClsTermName "TermName" #define ClsTraceDir "TraceDir" #define ClsTraceFile "TraceFile" #define ClsTraceFileSize "TraceFileSize" #define ClsTraceMonitor "TraceMonitor" #define ClsTypeahead "Typeahead" #define ClsUnlockDelay "UnlockDelay" #define ClsUnlockDelayMs "UnlockDelayMs" #define ClsUseCursorColor "UseCursorColor" #define ClsVisibleControl "VisibleControl" #define ClsVisualBell "VisualBell" #define ClsVisualSelect "VisualSelect" #define ClsVisualSelectColor "VisualSelectColor" #define ClsWaitCursor "WaitCursor" #define ClsWerase "Werase" /* Options. */ #define OptActiveIcon "-activeicon" #define OptAllBold "-allbold" #define OptAltScreen "-altscreen" #define OptAplMode "-apl" #define OptCbreak "-cbreak" #define OptCertFile "-certificate" #define OptCharClass "-cc" #define OptCharset "-charset" #define OptClear "-clear" #define OptColorScheme "-scheme" #define OptDefScreen "-defscreen" #define OptDsTrace "-trace" #define OptEmulatorFont "-efont" #define OptExtended "-extended" #define OptHostsFile "-hostsfile" #define OptIconName "-iconname" #define OptIconX "-iconx" #define OptIconY "-icony" #define OptInputMethod "-im" #define OptKeymap "-keymap" #define OptKeypadOn "-keypad" #define OptLocalCp "-localcp" #define OptLocalProcess "-e" #define OptM3279 "-color" #define OptModel "-model" #define OptMono "-mono" #define OptNoPrompt "-noprompt" #define OptNoScrollBar "+sb" #define OptOnce "-once" #define OptOversize "-oversize" #define OptPort "-port" #define OptPreeditType "-pt" #define OptPrinterLu "-printerlu" #define OptProxy "-proxy" #define OptReconnect "-reconnect" #define OptReverseVideo "-rv" #define OptSaveLines "-sl" #define OptSecure "-secure" #define OptScripted "-script" #define OptScriptPort "-scriptport" #define OptScrollBar "-sb" #define OptSet "-set" #define OptSocket "-socket" #define OptAutoShortcut "-S" #define OptNoAutoShortcut "+S" #define OptTermName "-tn" #define OptTitle "-title" #define OptTraceFile "-tracefile" #define OptTraceFileSize "-tracefilesize" #define OptV "-v" #define OptVersion "--version" /* Miscellaneous values. */ #define ResTrue "true" #define ResFalse "false" #define KpLeft "left" #define KpRight "right" #define KpBottom "bottom" #define KpIntegral "integral" #define KpInsideRight "insideRight" #define Apl "apl" /* Resources that are gotten explicitly. */ #define ResComposeMap "composeMap" #define ResEmulatorFontList "emulatorFontList" #define ResKeyHeight "keyHeight" #define ResKeyWidth "keyWidth" #define ResLargeKeyWidth "largeKeyWidth" #define ResMessage "message" #define ResNvt "nvt" #define ResPaWidth "paWidth" #define ResPfWidth "pfWidth" #define ResPrintTextCommand "printTextCommand" #define ResPrintTextFont "printTextFont" #define ResPrintTextSize "printTextSize" #define ResPrintWindowCommand "printWindowCommand" #define ResTraceCommand "traceCommand" #define ResUser "user" ibm-3270-3.3.10ga4/x3270/kybdc.h0000644000175000017500000001572211254565704015226 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * kybdc.h * Global declarations for kybd.c. */ /* keyboard lock states */ extern unsigned int kybdlock; #define KL_OERR_MASK 0x000f #define KL_OERR_PROTECTED 1 #define KL_OERR_NUMERIC 2 #define KL_OERR_OVERFLOW 3 #define KL_OERR_DBCS 4 #define KL_NOT_CONNECTED 0x0010 #define KL_AWAITING_FIRST 0x0020 #define KL_OIA_TWAIT 0x0040 #define KL_OIA_LOCKED 0x0080 #define KL_DEFERRED_UNLOCK 0x0100 #define KL_ENTER_INHIBIT 0x0200 #define KL_SCROLLED 0x0400 #define KL_OIA_MINUS 0x0800 /* actions */ extern void AltCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Attn_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void BackSpace_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void BackTab_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CircumNot_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Clear_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Compose_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void CursorSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Default_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void DeleteField_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void DeleteWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Delete_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Down_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Dup_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Enter_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EraseEOF_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void EraseInput_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Erase_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void FieldEnd_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void FieldMark_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Flip_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void HexString_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Home_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ignore_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Insert_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Interrupt_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Key_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Left2_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Left_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MonoCase_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MouseSelect_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void MoveCursor_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Newline_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void NextWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PA_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PA_Shift_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PF_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PreviousWord_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Reset_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Right2_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Right_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void String_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void SysReq_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Tab_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void TemporaryKeymap_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ToggleInsert_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void ToggleReverse_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void Up_action(Widget w, XEvent *event, String *params, Cardinal *num_params); /* other functions */ extern void do_reset(Boolean explicit); extern int emulate_input(char *s, int len, Boolean pasting); extern int emulate_uinput(ucs4_t *s, int len, Boolean pasting); extern void hex_input(char *s); extern void kybdlock_clr(unsigned int bits, const char *cause); extern void kybd_inhibit(Boolean inhibit); extern void kybd_init(void); extern int kybd_prime(void); extern void kybd_scroll_lock(Boolean lock); extern Boolean run_ta(void); extern int state_from_keymap(char keymap[32]); ibm-3270-3.3.10ga4/x3270/printc.h0000644000175000017500000000432611254565704015427 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * printc.h * Global declarations for print.c. */ typedef enum { P_TEXT, P_HTML, P_RTF } ptype_t; #define FPS_EVEN_IF_EMPTY 0x1 #define FPS_MODIFIED_ITALIC 0x2 extern Boolean fprint_screen(FILE *f, ptype_t ptype, unsigned opts, char *caption); extern void PrintText_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void PrintWindow_action(Widget w, XEvent *event, String *params, Cardinal *num_params); extern void print_text_option(Widget w, XtPointer client_data, XtPointer call_data); extern void print_window_option(Widget w, XtPointer client_data, XtPointer call_data); extern void save_text_option(Widget w, XtPointer client_data, XtPointer call_data); ibm-3270-3.3.10ga4/x3270/LICENSE0000644000175000017500000001033711254565667014773 0ustar bastianbastianCopyright (c) 1993-2009, Paul Mattes. Copyright (c) 2004-2005, Don Russell. Copyright (c) 2004, Dick Altenbern. Copyright (c) 1990, Jeff Sparkes. Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA 30332. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes, GTRC nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES, DICK ALTENBERN AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The 3270-20 font is derived from an NCD font, so it carries an additional notice: Copyright 1989-1991 Network Computing Devices, Inc. NCD is a registered trademark of Network Computing Devices, Inc. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of NCD may not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. NCD makes no representations about the suitability of this software for any purpose. It is provided ``as is'' without express or implied warranty. NCD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. The ComplexMenu sources are derived from the MIT X11R5 Athena SimpleMenu widget, and carry an additional notice: Copyright 1989 Massachusetts Institute of Technology Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of M.I.T. not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. M.I.T. makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ibm-3270-3.3.10ga4/x3270/strtok_r.c0000644000175000017500000000473411254565704015775 0ustar bastianbastian/* * Copyright (c) 2002-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * strtok_r.c * A standard C library function that isn't available everywhere. */ #include /* * Isolate sequential tokens in a null-terminated string, str. These tokens * are separated in the string by at least one of the characters in sep. The * first time that strtok() is called, str should be specified; subsequent * calls, wishing to obtain further tokens from the same string, should pass * a null pointer instead. The separator string, sep, must be supplied each * time, and may change between calls. * * strtok_r() is reentrant. The context pointer last must be provided on * each call. strtok_r() may also be used to nest two parsing loops within * one another, as long as separate context pointers are used. */ char * strtok_r(char *str, const char *sep, char **last) { char *r, *e; if (str != NULL) *last = str; r = *last + strspn(*last, sep); e = r + strcspn(r, sep); if (*e) *e++ = '\0'; *last = e; return *r? r: NULL; } ibm-3270-3.3.10ga4/x3270/savec.h0000644000175000017500000000363011254565667015236 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * savec.h * Global declarations for save.c. */ extern char *command_string; extern char *profile_name; extern void charset_list_changed(char *charset); extern void merge_profile(XrmDatabase *d, char *session, Boolean mono); extern void save_args(int argc, char *argv[]); extern void save_init(int argc, char *hostname, char *port); extern int save_options(char *n); extern void save_yourself(void); ibm-3270-3.3.10ga4/x3270/README0000644000175000017500000000302211254565667014637 0ustar bastianbastianx3270 3.3 General Release x3270 is an IBM 3278/3279 terminal emulator for X11. Documentation is in the html directory. The files are: Intro What x3270 is Lineage Where x3270 came from (copyright stuff) Build How to build and install x3270 FAQ Frequently Asked Questions (what to do when something goes wrong) Attributes A translation table for 3270 field attributes Resources Voluminous documentation of all the X resources used by x3270 Charset An explanation of x3270's use of fonts and character sets Keymap How to create a custom x3270 keymap Brackets How to get [ and ] to display correctly New What's new in this release Bugs What's broken in this release Wishlist What isn't in this release There is also a hypertext version of the x3270 man page, and of the man pages for x3270if, x3270-script and ibm_hosts. Please read Build before going ahead and building the program. Also, if you have a problem, scan through FAQ; there are lots of interesting answers there. Updates to x3270, as well as the current status of development and bugs, are available from the x3270 Web Page, http://x3270.sourceforge.net/. Feel free to send comments, criticism, suggestions, complaints, etc., to Paul Mattes, Paul.Mattes@usa.net. Requests will be addressed as time and resources permit. There is also an x3270 mailing list, which receives news about new releases. Send a message to Paul.Mattes@usa.net (a real person, with an automatic responses for certain subject lines) to get on the list. ibm-3270-3.3.10ga4/x3270/diamond.bm0000644000175000017500000000033211254565667015713 0ustar bastianbastian#define diamond_width 10 #define diamond_height 10 static unsigned char diamond_bits[] = { 0x00, 0x00, 0x10, 0x00, 0x68, 0x00, 0xf4, 0x00, 0xfa, 0x01, 0xfd, 0x03, 0xfa, 0x01, 0xf4, 0x00, 0x68, 0x00, 0x10, 0x00}; ibm-3270-3.3.10ga4/x3270/3270gt24b.bdf0000644000175000017500000020227111254565667015701 0ustar bastianbastianSTARTFONT 2.1 COMMENT "24-point bold 3270 font" COMMENT "Uses nonstandard ordering:" COMMENT " Page 0: EBCDIC US-International set, CG order" COMMENT " Page 1: EBCDIC APL/APL2 set, CG order (incomplete)" COMMENT " Page 2: (first 16 characters only) DEC line-drawing characters from" COMMENT " fixed-width X fonts" COMMENT "" COMMENT "Copyright (c) 1994-2009, Paul Mattes." COMMENT "Copyright (c) 1989, Georgia Tech Research Corporation (GTRC)," COMMENT " Atlanta, GA 30332." COMMENT "All rights reserved." COMMENT "" COMMENT "Redistribution and use in source and binary forms, with or" COMMENT "without modification, are permitted provided that the following" COMMENT "conditions are met:" COMMENT " * Redistributions of source code must retain the above" COMMENT " copyright notice, this list of conditions and the following" COMMENT " disclaimer." COMMENT " * Redistributions in binary form must reproduce the above" COMMENT " copyright notice, this list of conditions and the following" COMMENT " disclaimer in the documentation and/or other materials" COMMENT " provided with the distribution." COMMENT " * Neither the names of Paul Mattes, GTRC nor their" COMMENT " contributors may be used to endorse or promote products" COMMENT " derived from this software without specific prior written" COMMENT " permission." COMMENT "" COMMENT "THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND GTRC 'AS IS' AND" COMMENT "ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED" COMMENT "TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR" COMMENT "A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL" COMMENT "MATTES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL," COMMENT "SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT" COMMENT "NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;" COMMENT "LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER" COMMENT "CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT," COMMENT "STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)" COMMENT "ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF" COMMENT "ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." FONT 3270gt24bold SIZE 24 72 72 FONTBOUNDINGBOX 14 24 0 -6 STARTPROPERTIES 27 FOUNDRY "GaTech" FAMILY_NAME "3270" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 24 POINT_SIZE 240 RESOLUTION_X 72 RESOLUTION_Y 72 SPACING "C" AVERAGE_WIDTH 140 CHARSET_REGISTRY "3270cg" CHARSET_ENCODING "1" MIN_SPACE 14 NORM_SPACE 14 MAX_SPACE 14 END_SPACE 14 AVG_CAPITAL_WIDTH 140 AVG_LOWERCASE_WIDTH 140 CAP_HEIGHT 14 X_HEIGHT 10 RELATIVE_WEIGHT 50 DESTINATION "Video Text" FONT_ASCENT 18 FONT_DESCENT 6 DEFAULT_CHAR 514 ENDPROPERTIES CHARS 312 STARTCHAR null ENCODING 0 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR nobreakspace ENCODING 1 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR euro ENCODING 2 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 03F0 07FC 0FFC 1E04 1C00 7FF0 FFF0 1C00 1C00 7FE0 FFC0 1C00 1E00 0FFC 07F8 03F0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR cr ENCODING 3 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR nl ENCODING 4 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR em ENCODING 5 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR eightones ENCODING 6 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0380 0fe0 0fe0 1ff0 1ff0 1ff0 0fe0 0fe0 0380 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR hyphen ENCODING 7 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3ff8 3ff8 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR greater ENCODING 8 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0e00 0f00 0780 03c0 01e0 00f0 0078 0078 00f0 01e0 03c0 0780 0f00 0e00 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR less ENCODING 9 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 00e0 01e0 03c0 0780 0f00 1e00 3c00 3c00 1e00 0f00 0780 03c0 01e0 00e0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR bracketleft ENCODING 10 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 0fe0 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0fe0 0fe0 0000 0000 0000 0000 ENDCHAR STARTCHAR bracketright ENCODING 11 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 0fe0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 0fe0 0fe0 0000 0000 0000 0000 ENDCHAR STARTCHAR parenright ENCODING 12 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0e00 0f00 0780 03c0 01e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 01e0 03c0 0780 0f00 0e00 0000 0000 0000 0000 ENDCHAR STARTCHAR parenleft ENCODING 13 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 00e0 01e0 03c0 0780 0f00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0f00 0780 03c0 01e0 00e0 0000 0000 0000 0000 ENDCHAR STARTCHAR braceright ENCODING 14 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0e00 0f00 0780 0380 0380 0380 0380 03c0 01e0 01e0 03c0 0380 0380 0380 0380 0780 0f00 0e00 0000 0000 0000 0000 ENDCHAR STARTCHAR braceleft ENCODING 15 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 00e0 01e0 03c0 0380 0380 0380 0380 0780 0f00 0f00 0780 0380 0380 0380 0380 03c0 01e0 00e0 0000 0000 0000 0000 ENDCHAR STARTCHAR space ENCODING 16 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR equal ENCODING 17 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3ff8 3ff8 0000 0000 3ff8 3ff8 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR apostrophe ENCODING 18 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 0380 0380 0380 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR quotedbl ENCODING 19 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0ee0 0ee0 0ee0 0ee0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR slash ENCODING 20 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0038 0038 0038 0078 00f0 00e0 00e0 01e0 03c0 0380 0380 0780 0f00 0e00 0e00 1e00 3c00 3800 0000 0000 0000 0000 ENDCHAR STARTCHAR backslash ENCODING 21 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3800 3800 3800 3c00 1e00 0e00 0e00 0f00 0780 0380 0380 03c0 01e0 00e0 00e0 00f0 0078 0038 0000 0000 0000 0000 ENDCHAR STARTCHAR bar ENCODING 22 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0000 0000 ENDCHAR STARTCHAR brokenbar ENCODING 23 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 0380 0380 0380 0380 0380 0380 0380 0000 0000 0000 0000 0380 0380 0380 0380 0380 0380 0380 0380 0000 0000 ENDCHAR STARTCHAR question ENCODING 24 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 1ff0 3c78 3838 0038 0078 00f0 01e0 03c0 0380 0380 0380 0000 0000 0380 0380 0380 0380 0000 0000 0000 0000 ENDCHAR STARTCHAR exclam ENCODING 25 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0000 0000 0380 0380 0380 0380 0000 0000 0000 0000 ENDCHAR STARTCHAR dollar ENCODING 26 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 0380 0ff8 1ff8 3f80 3b80 3b80 3f80 1fe0 0ff0 03f8 03b8 03b8 03f8 3ff0 3fe0 0380 0380 0000 0000 0000 0000 ENDCHAR STARTCHAR cent ENCODING 27 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0380 0380 0ff8 1ff8 3f80 3b80 3b80 3f80 1ff8 0ff8 0380 0380 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR sterling ENCODING 28 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 07c0 0fe0 0ee0 0e00 0e00 3fe0 3fe0 0e00 0e00 0e00 0e00 0e38 1f78 3ff0 3be0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR yen ENCODING 29 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3838 3c78 1ef0 0fe0 07c0 0380 3ff8 3ff8 0380 0380 3ff8 3ff8 0380 0380 0380 0380 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR paragraph ENCODING 30 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3f80 3fc0 39e0 38e0 38e0 39e0 3fc0 3f80 3800 3800 38e0 38e0 3bf8 3bf8 38e0 38e0 00e0 00e0 0000 0000 0000 0000 ENDCHAR STARTCHAR currency ENCODING 31 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 3838 3c78 1ef0 0fe0 0fe0 1ff0 1c70 1c70 1ff0 0fe0 0fe0 1ef0 3c78 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR 0 ENCODING 32 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 1ff0 3c78 3838 3838 3838 3bb8 3bb8 3bb8 3bb8 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR 1 ENCODING 33 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 00e0 01e0 03e0 07e0 0fe0 0ee0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR 2 ENCODING 34 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 1ff0 3c78 3838 0038 0038 0038 0078 00f0 01e0 03c0 0780 0f00 1e00 3ff8 3ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR 3 ENCODING 35 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3ff8 3ff8 0038 0078 00f0 01e0 03e0 07f0 0078 0038 0038 0038 0038 0078 3ff0 3fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR 4 ENCODING 36 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 03e0 03e0 03e0 07e0 0fe0 0ee0 0ee0 1ee0 3ce0 38e0 3ff8 3ff8 00e0 00e0 00e0 00e0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR 5 ENCODING 37 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3ff8 3ff8 3800 3800 3800 3800 3fe0 3ff0 0078 0038 0038 0038 0038 0078 3ff0 3fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR 6 ENCODING 38 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 0780 0f00 1e00 3c00 3800 3fe0 3ff0 3c78 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR 7 ENCODING 39 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3ff8 3ff8 0038 0078 00f0 01e0 03c0 0780 0f00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR 8 ENCODING 40 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 1ff0 3c78 3838 3838 3c78 1ff0 1ff0 3c78 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR 9 ENCODING 41 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 1ff0 3c78 3838 3838 3878 38f8 3df8 1ff8 0fb8 0038 0038 0038 0078 00f0 00e0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ssharp ENCODING 42 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0f80 1fc0 3de0 38e0 38e0 39e0 3b80 3fc0 39e0 38f0 3878 3c38 3e38 3f78 3ff0 3be0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR section ENCODING 43 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 03e0 07e0 0f00 0e00 0e00 1f00 3f80 3bc0 39e0 3cf0 1e78 0f38 07b8 03f8 01f0 00e0 00e0 01e0 0fc0 0f80 0000 0000 ENDCHAR STARTCHAR numbersign ENCODING 44 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0ee0 0ee0 3ff8 3ff8 0ee0 0ee0 3ff8 3ff8 0ee0 0ee0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR at ENCODING 45 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 1ff0 3c78 3838 3bb8 3ff8 3ff8 3ff8 3ff0 3be0 3800 3800 3800 3c00 1ff8 0ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR percent ENCODING 46 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0e00 1f00 3b80 3b80 1f38 0e78 00f0 01e0 03c0 0780 0f00 1e00 3ce0 39f0 03b8 03b8 01f0 00e0 0000 0000 0000 0000 ENDCHAR STARTCHAR underscore ENCODING 47 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3ff8 3ff8 0000 0000 0000 0000 ENDCHAR STARTCHAR ampersand ENCODING 48 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0e00 1f00 3f80 3b80 3b80 3f80 1f00 1e00 3e00 3f00 3fb8 3ff8 39f0 3ce0 1ff0 0ff8 003c 001c 0000 0000 0000 0000 ENDCHAR STARTCHAR minus ENCODING 49 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3ff8 3ff8 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR period ENCODING 50 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0380 0380 0380 0380 0000 0000 0000 0000 ENDCHAR STARTCHAR comma ENCODING 51 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0380 0380 0380 0780 0f00 0e00 0000 0000 ENDCHAR STARTCHAR colon ENCODING 52 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0380 0380 0380 0380 0000 0000 0000 0000 0380 0380 0380 0380 0000 0000 0000 0000 ENDCHAR STARTCHAR plus ENCODING 53 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0380 0380 0380 0380 3ff8 3ff8 0380 0380 0380 0380 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR notsign ENCODING 54 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3ff8 3ff8 0038 0038 0038 0038 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR macron ENCODING 55 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 3ff8 3ff8 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR degree ENCODING 56 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 07c0 0fe0 0ee0 0ee0 0fe0 07c0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR periodcentered ENCODING 57 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0380 0380 0380 0380 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR asciicircum ENCODING 58 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 07c0 0fe0 0ee0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR asciitilde ENCODING 59 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0f38 1ff8 3ff0 39e0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR diaeresis ENCODING 60 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0ee0 0ee0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR grave ENCODING 61 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0e00 0f00 0780 0380 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR acute ENCODING 62 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 00e0 01e0 03c0 0380 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR cedilla ENCODING 63 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0380 0380 0f80 0f00 0000 0000 ENDCHAR STARTCHAR agrave ENCODING 64 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0e00 0f00 0780 0380 0000 0000 0fe0 0ff0 0078 0038 0ff8 1ff8 3c38 3c38 1ff8 0ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR egrave ENCODING 65 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0e00 0f00 0780 0380 0000 0000 0fe0 1ff0 3c78 3838 3ff8 3ff8 3800 3c00 1fe0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR igrave ENCODING 66 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0e00 0f00 0780 0380 0000 0000 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ograve ENCODING 67 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0e00 0f00 0780 0380 0000 0000 0fe0 1ff0 3c78 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ugrave ENCODING 68 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0e00 0f00 0780 0380 0000 0000 3838 3838 3838 3838 3838 3838 3838 3c78 1ff8 0ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR atilde ENCODING 69 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0f38 1ff8 3ff0 39e0 0000 0000 0fe0 0ff0 0078 0038 0ff8 1ff8 3c38 3c38 1ff8 0ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR otilde ENCODING 70 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0f38 1ff8 3ff0 39e0 0000 0000 0fe0 1ff0 3c78 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ydiaeresis ENCODING 71 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0ee0 0ee0 0000 0000 3838 3838 3838 3838 3838 3838 3838 3c78 1ff8 0ff8 0038 0078 0ff0 0fe0 0000 0000 ENDCHAR STARTCHAR Yacute ENCODING 72 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 00e0 01e0 03c0 0380 3838 3838 3838 3c78 1ef0 0fe0 07c0 0380 0380 0380 0380 0380 0380 0380 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR yacute ENCODING 73 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 00e0 01e0 03c0 0380 0000 0000 3838 3838 3838 3838 3838 3838 3838 3c78 1ff8 0ff8 0038 0078 0ff0 0fe0 0000 0000 ENDCHAR STARTCHAR eacute ENCODING 74 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 00e0 01e0 03c0 0380 0000 0000 0fe0 1ff0 3c78 3838 3ff8 3ff8 3800 3c00 1fe0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR onequarter ENCODING 75 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 1c00 3c00 7c00 7c00 1c00 1c00 1c00 1c00 1c00 1cf0 01f0 03f0 07f0 0770 07fc 07fc 0070 0070 0070 0000 0000 0000 0000 ENDCHAR STARTCHAR onehalf ENCODING 76 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 1c00 3c00 7c00 7c00 1c00 1c00 1c00 1c00 1c00 1df0 03f8 03bc 003c 0078 00f0 01e0 03c0 03fc 03fc 0000 0000 0000 0000 ENDCHAR STARTCHAR threequarters ENCODING 77 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 7f00 7f00 0e00 1c00 3e00 0f00 0700 0700 7f00 7ef0 01f0 03f0 07f0 0770 07fc 07fc 0070 0070 0070 0000 0000 0000 0000 ENDCHAR STARTCHAR udiaeresis ENCODING 78 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0ee0 0ee0 0000 0000 3838 3838 3838 3838 3838 3838 3838 3c78 1ff8 0ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ccedilla ENCODING 79 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0ff8 1ff8 3c00 3800 3800 3800 3800 3c00 1ff8 0ff8 0380 0380 0f80 0f00 0000 0000 ENDCHAR STARTCHAR adiaeresis ENCODING 80 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0ee0 0ee0 0000 0000 0fe0 0ff0 0078 0038 0ff8 1ff8 3c38 3c38 1ff8 0ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ediaeresis ENCODING 81 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0ee0 0ee0 0000 0000 0fe0 1ff0 3c78 3838 3ff8 3ff8 3800 3c00 1fe0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR idiaeresis ENCODING 82 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0ee0 0ee0 0000 0000 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR odiaeresis ENCODING 83 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0ee0 0ee0 0000 0000 0fe0 1ff0 3c78 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR mu ENCODING 84 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3838 3838 3838 3838 3838 3838 3838 3c78 3ff8 3ff8 3800 3800 3800 3800 0000 0000 ENDCHAR STARTCHAR acircumflex ENCODING 85 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 07c0 0fe0 0ee0 0000 0000 0fe0 0ff0 0078 0038 0ff8 1ff8 3c38 3c38 1ff8 0ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ecircumflex ENCODING 86 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 07c0 0fe0 0ee0 0000 0000 0fe0 1ff0 3c78 3838 3ff8 3ff8 3800 3c00 1fe0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR icircumflex ENCODING 87 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 07c0 0fe0 0ee0 0000 0000 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ocircumflex ENCODING 88 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 07c0 0fe0 0ee0 0000 0000 0fe0 1ff0 3c78 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ucircumflex ENCODING 89 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 07c0 0fe0 0ee0 0000 0000 3838 3838 3838 3838 3838 3838 3838 3c78 1ff8 0ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR aacute ENCODING 90 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 00e0 01e0 03c0 0380 0000 0000 0fe0 0ff0 0078 0038 0ff8 1ff8 3c38 3c38 1ff8 0ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR multiply ENCODING 91 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 3838 3c78 1ef0 0fe0 07c0 07c0 0fe0 1ef0 3c78 3838 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR iacute ENCODING 92 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 00e0 01e0 03c0 0380 0000 0000 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR oacute ENCODING 93 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 00e0 01e0 03c0 0380 0000 0000 0fe0 1ff0 3c78 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR uacute ENCODING 94 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 00e0 01e0 03c0 0380 0000 0000 3838 3838 3838 3838 3838 3838 3838 3c78 1ff8 0ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ntilde ENCODING 95 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0f38 1ff8 3ff0 39e0 0000 0000 3fe0 3ff0 3c78 3838 3838 3838 3838 3838 3838 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Agrave ENCODING 96 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0e00 0f00 0780 0380 0380 07c0 0fe0 1ef0 3c78 3838 3838 3838 3ff8 3ff8 3838 3838 3838 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Egrave ENCODING 97 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0e00 0f00 0780 0380 3ff8 3ff8 3800 3800 3800 3800 3fe0 3fe0 3800 3800 3800 3800 3ff8 3ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Igrave ENCODING 98 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0e00 0f00 0780 0380 0fe0 0fe0 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0fe0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Ograve ENCODING 99 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0e00 0f00 0780 0380 0fe0 1ff0 3c78 3838 3838 3838 3838 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Ugrave ENCODING 100 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0e00 0f00 0780 0380 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Atilde ENCODING 101 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0f38 1ff8 3ff0 39e0 0380 07c0 0fe0 1ef0 3c78 3838 3838 3838 3ff8 3ff8 3838 3838 3838 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Otilde ENCODING 102 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0f38 1ff8 3ff0 39e0 0fe0 1ff0 3c78 3838 3838 3838 3838 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR onesuperior ENCODING 103 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 01c0 03c0 07c0 07c0 01c0 01c0 01c0 01c0 01c0 01c0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR twosuperior ENCODING 104 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 07c0 0fe0 0ef0 00f0 01e0 03c0 0780 0f00 0ff0 0ff0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR threesuperior ENCODING 105 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0ff0 0ff0 00e0 01c0 03e0 00f0 0070 0070 0ff0 0fe0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ordfeminine ENCODING 106 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0fe0 0ff0 0070 0038 0ff8 1ff8 3c38 3c38 1ff8 0ff8 0000 0000 3ff8 3ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR masculine ENCODING 107 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0fe0 1ff0 3c78 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 3ff8 3ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR guillemotleft ENCODING 108 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 039c 07bc 0f78 1ef0 3de0 3de0 1ef0 0f78 07bc 039c 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR guillemotright ENCODING 109 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 39c0 3de0 1ef0 0f78 07bc 07bc 0f78 1ef0 3de0 39c0 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR exclamdown ENCODING 110 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 0380 0380 0380 0000 0000 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0000 0000 0000 0000 ENDCHAR STARTCHAR questiondown ENCODING 111 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 0380 0380 0380 0000 0000 0380 0380 0380 0780 0f00 1e00 3c00 3800 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 ENDCHAR STARTCHAR Adiaeresis ENCODING 112 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0ee0 0ee0 0000 0000 0380 07c0 0fe0 1ef0 3c78 3838 3838 3838 3ff8 3ff8 3838 3838 3838 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Ediaeresis ENCODING 113 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0ee0 0ee0 0000 0000 3ff8 3ff8 3800 3800 3800 3800 3fe0 3fe0 3800 3800 3800 3800 3ff8 3ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Idiaeresis ENCODING 114 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0ee0 0ee0 0000 0000 0fe0 0fe0 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0fe0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Odiaeresis ENCODING 115 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0ee0 0ee0 0000 0000 0fe0 1ff0 3c78 3838 3838 3838 3838 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Udiaeresis ENCODING 116 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0ee0 0ee0 0000 0000 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Acircumflex ENCODING 117 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 07c0 0fe0 0ee0 0380 07c0 0fe0 1ef0 3c78 3838 3838 3838 3ff8 3ff8 3838 3838 3838 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Ecircumflex ENCODING 118 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 07c0 0fe0 0ee0 3ff8 3ff8 3800 3800 3800 3800 3fe0 3fe0 3800 3800 3800 3800 3ff8 3ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Icircumflex ENCODING 119 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 07c0 0fe0 0ee0 0fe0 0fe0 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0fe0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Ocircumflex ENCODING 120 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 07c0 0fe0 0ee0 0fe0 1ff0 3c78 3838 3838 3838 3838 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Ucircumflex ENCODING 121 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 07c0 0fe0 0ee0 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Aacute ENCODING 122 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 00e0 01e0 03c0 0380 0380 07c0 0fe0 1ef0 3c78 3838 3838 3838 3ff8 3ff8 3838 3838 3838 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Eacute ENCODING 123 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 00e0 01e0 03c0 0380 3ff8 3ff8 3800 3800 3800 3800 3fe0 3fe0 3800 3800 3800 3800 3ff8 3ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Iacute ENCODING 124 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 00e0 01e0 03c0 0380 0fe0 0fe0 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0fe0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Oacute ENCODING 125 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 00e0 01e0 03c0 0380 0fe0 1ff0 3c78 3838 3838 3838 3838 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Uacute ENCODING 126 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 00e0 01e0 03c0 0380 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Ntilde ENCODING 127 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0f38 1ff8 3ff0 39e0 3838 3c38 3e38 3f38 3fb8 3bf8 39f8 38f8 3878 3838 3838 3838 3838 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR a ENCODING 128 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0fe0 0ff0 0078 0038 0ff8 1ff8 3c38 3c38 1ff8 0ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR b ENCODING 129 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3800 3800 3800 3800 3800 3800 3fe0 3ff0 3878 3838 3838 3838 3838 3878 3ff0 3fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c ENCODING 130 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0ff8 1ff8 3c00 3800 3800 3800 3800 3c00 1ff8 0ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR d ENCODING 131 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0038 0038 0038 0038 0038 0038 0ff8 1ff8 3c38 3838 3838 3838 3838 3c38 1ff8 0ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e ENCODING 132 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0fe0 1ff0 3c78 3838 3ff8 3ff8 3800 3c00 1fe0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR f ENCODING 133 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 00f8 01f8 03c0 0380 0380 0380 3ff8 3ff8 0380 0380 0380 0380 0380 0380 0380 0380 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR g ENCODING 134 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0ff8 1ff8 3c38 3838 3838 3838 3838 3c78 1ff8 0ff8 0038 0078 0ff0 0fe0 0000 0000 ENDCHAR STARTCHAR h ENCODING 135 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3800 3800 3800 3800 3800 3800 3be0 3ff0 3f78 3e38 3c38 3838 3838 3838 3838 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR i ENCODING 136 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0380 0380 0000 0000 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR j ENCODING 137 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0038 0038 0000 0000 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 3838 3c78 1ff0 0fe0 0000 0000 ENDCHAR STARTCHAR k ENCODING 138 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3800 3800 3800 3800 3800 3800 3838 3878 38f0 39e0 3bc0 3fc0 3fe0 3ef0 3c78 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR l ENCODING 139 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 03c0 01e0 00e0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR m ENCODING 140 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3fe0 3ff0 3ff8 3bb8 3bb8 3bb8 3bb8 3bb8 3bb8 3bb8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR n ENCODING 141 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3fe0 3ff0 3c78 3838 3838 3838 3838 3838 3838 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR o ENCODING 142 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0fe0 1ff0 3c78 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR p ENCODING 143 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3fe0 3ff0 3878 3838 3838 3838 3838 3878 3ff0 3fe0 3800 3800 3800 3800 0000 0000 ENDCHAR STARTCHAR q ENCODING 144 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0ff8 1ff8 3c38 3838 3838 3838 3838 3c78 1ff8 0ff8 0038 0038 0038 0038 0000 0000 ENDCHAR STARTCHAR r ENCODING 145 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3be0 3ff0 3f78 3e38 3c00 3800 3800 3800 3800 3800 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR s ENCODING 146 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0ff8 1ff8 3c00 3c00 1fe0 0ff0 0078 0078 3ff0 3fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR t ENCODING 147 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 0380 0380 0380 0380 0380 3ff8 3ff8 0380 0380 0380 0380 0380 0380 03e0 01e0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR u ENCODING 148 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3838 3838 3838 3838 3838 3838 3838 3c78 1ff8 0ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR v ENCODING 149 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3838 3838 3838 3c78 1ef0 0ee0 0ee0 0fe0 07c0 0380 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR w ENCODING 150 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3838 3838 3838 3838 3bb8 3bb8 3bb8 3ff8 1ff0 0ee0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR x ENCODING 151 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3838 3c78 1ef0 0fe0 07c0 07c0 0fe0 1ef0 3c78 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR y ENCODING 152 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3838 3838 3838 3838 3838 3838 3838 3c78 1ff8 0ff8 0038 0078 0ff0 0fe0 0000 0000 ENDCHAR STARTCHAR z ENCODING 153 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3ff8 3ff8 00f0 01e0 03c0 0780 0f00 1e00 3ff8 3ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ae ENCODING 154 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 3ff0 3ff8 03b8 03b8 1ff8 3ff8 3b80 3b80 3ff8 1ff0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR oslash ENCODING 155 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0ff8 1ff8 3cf8 39f8 3bf8 3fb8 3f38 3e78 3ff0 3fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR aring ENCODING 156 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 0fe0 0fe0 0fe0 0000 0000 0fe0 0ff0 0078 0038 0ff8 1ff8 3c38 3c38 1ff8 0ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR division ENCODING 157 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0380 0380 0380 0000 0000 3ff8 3ff8 0000 0000 0380 0380 0380 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR fm ENCODING 158 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3ff8 3ff8 0000 0000 0000 0000 0380 0380 0380 0380 0000 0000 0000 0000 0380 0380 0380 0780 0f00 0e00 0000 0000 ENDCHAR STARTCHAR dup ENCODING 159 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3ff8 3ff8 0000 0000 0380 0380 3bb8 3ff8 1ff0 0ee0 0ee0 1ff0 3ff8 3bb8 0380 0380 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR A ENCODING 160 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 07c0 0fe0 1ef0 3c78 3838 3838 3838 3ff8 3ff8 3838 3838 3838 3838 3838 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR B ENCODING 161 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3fe0 3ff0 3878 3838 3838 3878 3ff0 3ff0 3878 3838 3838 3838 3838 3878 3ff0 3fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR C ENCODING 162 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 03e0 07f0 0f78 1e38 3c00 3800 3800 3800 3800 3800 3800 3c00 1e38 0f78 07f0 03e0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR D ENCODING 163 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3fe0 3ff0 3878 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3878 3ff0 3fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR E ENCODING 164 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3ff8 3ff8 3800 3800 3800 3800 3fe0 3fe0 3800 3800 3800 3800 3800 3800 3ff8 3ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR F ENCODING 165 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3ff8 3ff8 3800 3800 3800 3800 3fe0 3fe0 3800 3800 3800 3800 3800 3800 3800 3800 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR G ENCODING 166 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 1ff0 3c78 3838 3800 3800 38f8 38f8 3838 3838 3838 3838 3838 3c78 1ff8 0ff0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR H ENCODING 167 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3838 3838 3838 3838 3838 3838 3ff8 3ff8 3838 3838 3838 3838 3838 3838 3838 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR I ENCODING 168 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 0fe0 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0fe0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR J ENCODING 169 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 03f8 03f8 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 38e0 38e0 38e0 3de0 1fc0 0f80 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR K ENCODING 170 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3838 3878 38f0 39e0 3bc0 3f80 3f00 3e00 3e00 3f00 3f80 3bc0 39e0 38f0 3878 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR L ENCODING 171 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3ff8 3ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR M ENCODING 172 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3838 3c78 3ef8 3ff8 3ff8 3bb8 3bb8 3bb8 3838 3838 3838 3838 3838 3838 3838 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR N ENCODING 173 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3838 3c38 3e38 3f38 3fb8 3bb8 3bb8 3bf8 39f8 38f8 3878 3838 3838 3838 3838 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR O ENCODING 174 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 1ff0 3c78 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR P ENCODING 175 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3fe0 3ff0 3878 3838 3838 3878 3ff0 3fe0 3800 3800 3800 3800 3800 3800 3800 3800 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Q ENCODING 176 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 1ff0 3c78 3838 3838 3838 3838 3838 3838 3838 3838 3838 3bb8 3ff8 1ff0 0fe0 01e0 00f0 0078 0038 0000 0000 ENDCHAR STARTCHAR R ENCODING 177 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3fe0 3ff0 3878 3838 3838 3878 3ff0 3fe0 3b80 3bc0 39c0 38e0 38e0 3870 3878 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR S ENCODING 178 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 1ff0 3c78 3838 3800 3c00 1fe0 0ff0 0078 0038 0038 0038 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR T ENCODING 179 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3ff8 3ff8 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR U ENCODING 180 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR V ENCODING 181 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3838 3838 3838 1c70 1c70 1c70 0ee0 0ee0 0ee0 07c0 07c0 07c0 0380 0380 0380 0380 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR W ENCODING 182 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3838 3838 3838 3838 3838 3838 3838 3838 3bb8 3bb8 3bb8 3bb8 3bb8 3ff8 1ff0 0ee0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR X ENCODING 183 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3838 3838 3838 3c78 1ef0 0fe0 07c0 0380 0380 07c0 0fe0 1ef0 3c78 3838 3838 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Y ENCODING 184 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3838 3838 3838 3c78 1ef0 0fe0 07c0 0380 0380 0380 0380 0380 0380 0380 0380 0380 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Z ENCODING 185 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3ff8 3ff8 0038 0078 00f0 01e0 03c0 0380 0380 0780 0f00 1e00 3c00 3800 3ff8 3ff8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR AE ENCODING 186 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0ff8 1ff8 3dc0 39c0 39c0 39c0 3ff8 3ff8 39c0 39c0 39c0 39c0 39c0 39c0 39f8 39f8 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Ooblique ENCODING 187 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 1ff0 3cf8 38f8 38f8 39f8 3bf8 3bb8 3bb8 3fb8 3f38 3e38 3e38 3e78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Aring ENCODING 188 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0fe0 0fe0 0fe0 0fe0 0380 07c0 0fe0 1ef0 3c78 3838 3838 3838 3ff8 3ff8 3838 3838 3838 3838 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR Ccedilla ENCODING 189 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 03e0 07f0 0f78 1e38 3c00 3800 3800 3800 3800 3800 3800 3c00 1e38 0f78 07f0 03e0 00e0 00e0 0fe0 0fc0 0000 0000 ENDCHAR STARTCHAR semicolon ENCODING 190 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0380 0380 0380 0380 0000 0000 0000 0000 0380 0380 0380 0780 0f00 0e00 0000 0000 ENDCHAR STARTCHAR asterisk ENCODING 191 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0380 0380 3bb8 3ff8 1ff0 0ee0 0ee0 1ff0 3ff8 3bb8 0380 0380 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c0 ENCODING 192 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c1 ENCODING 193 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c2 ENCODING 194 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c3 ENCODING 195 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c4 ENCODING 196 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c5 ENCODING 197 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c6 ENCODING 198 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c7 ENCODING 199 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c8 ENCODING 200 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR c9 ENCODING 201 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ca ENCODING 202 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR cb ENCODING 203 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR cc ENCODING 204 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR cd ENCODING 205 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ce ENCODING 206 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR cf ENCODING 207 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR copyright ENCODING 208 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fc0 1fe0 3870 7038 6018 6318 6498 6418 6418 6498 6318 6018 7038 3870 1fe0 0fc0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR registered ENCODING 209 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fc0 1fe0 3870 7038 6018 6718 6498 6498 6718 6498 6498 6018 7038 3870 1fe0 0fc0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR boxA ENCODING 210 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3c00 7e00 e700 c300 c300 c300 ff00 ff00 c300 c300 0000 0000 fffc fffc c00c c00c fffc fffc 0000 0000 0000 0000 ENDCHAR STARTCHAR insert ENCODING 211 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0300 0780 0fc0 1fe0 3ff0 7ff8 fffc fcfc f87c f03c e01c c00c 8004 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR boxB ENCODING 212 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 03f0 03f8 031c 031c 03f8 03f8 031c 031c 03f8 03f0 0000 0000 fffc fffc c00c c00c fffc fffc 0000 0000 0000 0000 ENDCHAR STARTCHAR box6 ENCODING 213 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 fffc fffc c00c c30c c70c ce0c cc0c cc0c cf8c cfcc cccc cccc cfcc c78c c00c c00c fffc fffc 0000 0000 ENDCHAR STARTCHAR plusminus ENCODING 214 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 0380 0380 0380 3ff8 3ff8 0380 0380 0380 0380 0000 0000 3ff8 3ff8 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ETH ENCODING 215 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3fe0 3ff0 0e78 0e38 0e38 0e38 0e38 3fb8 3fb8 0e38 0e38 0e38 0e38 0e78 3ff0 3fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR rightarrow ENCODING 216 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0180 01c0 01e0 fff0 fff0 01e0 01c0 0180 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR THORN ENCODING 217 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 3800 3800 3800 3fe0 3ff0 3878 3838 3838 3878 3ff0 3fe0 3800 3800 3800 3800 3800 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR upshift ENCODING 218 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0300 0780 0fc0 1ce0 3870 3030 3cf0 3cf0 0cc0 0cc0 0cc0 0cc0 0cc0 0cc0 0cc0 0cc0 0fc0 0fc0 0000 0000 0000 0000 ENDCHAR STARTCHAR human ENCODING 219 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0780 0fc0 0cc0 0cc0 0fc0 0780 0300 0300 3ff0 3ff0 0300 0300 0300 0780 0fc0 1ce0 3870 3030 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR underB ENCODING 220 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0f00 0f80 0cc0 0cc0 0f80 0f80 0cc0 0cc0 0f80 0f00 0000 0000 fffc fffc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR downshift ENCODING 221 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fc0 0fc0 0cc0 0cc0 0cc0 0cc0 0cc0 0cc0 0cc0 0cc0 3cf0 3cf0 3030 3870 1ce0 0fc0 0780 0300 0000 0000 0000 0000 ENDCHAR STARTCHAR boxquestion ENCODING 222 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 fffc fffc c00c c00c c30c c78c cfcc cccc c0cc c1cc c38c c30c c30c c00c c30c c30c c00c c00c fffc fffc 0000 0000 ENDCHAR STARTCHAR boxsolid ENCODING 223 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc 0000 0000 ENDCHAR STARTCHAR e0 ENCODING 224 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e1 ENCODING 225 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e2 ENCODING 226 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e3 ENCODING 227 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e4 ENCODING 228 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e5 ENCODING 229 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e6 ENCODING 230 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e7 ENCODING 231 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e8 ENCODING 232 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR e9 ENCODING 233 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ea ENCODING 234 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR eb ENCODING 235 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ec ENCODING 236 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ed ENCODING 237 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ee ENCODING 238 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR ef ENCODING 239 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR badcommhi ENCODING 240 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 8000 c000 e000 f000 f800 7c00 3e00 fffc fffc 07c0 03e0 01f0 00f8 007c 003c 001c 000c 0004 0000 0000 0000 ENDCHAR STARTCHAR commhi ENCODING 241 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffc fffc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR commjag ENCODING 242 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffc0 ffc0 0380 0700 0e00 1c00 3ffc 3ffc 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR commlo ENCODING 243 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffc fffc 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR clockleft ENCODING 244 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 000c 000c 0300 0300 0000 0000 0000 0004 000c 0c0c 0c0c 000c 000c 000c 000c 000c 0300 0300 000c 000c 0000 0000 ENDCHAR STARTCHAR clockright ENCODING 245 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0c00 0c00 3000 7000 e000 c000 8000 00c0 00c0 0000 0000 0000 0000 0000 0c00 0c00 0000 0000 0000 0000 ENDCHAR STARTCHAR lock ENCODING 246 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 8004 c00c e01c f03c f87c fcfc fffc 7ff8 3ff0 1fe0 1fe0 3ff0 7ff8 fffc fcfc f87c f03c e01c c00c 8004 0000 0000 0000 ENDCHAR STARTCHAR eth ENCODING 247 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0ee0 0fe0 07c0 0fe0 0ef0 0078 0ff8 1ff8 3c38 3838 3838 3838 3838 3c78 1ff0 0fe0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR leftarrow ENCODING 248 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0600 0e00 1e00 3ffc 3ffc 1e00 0e00 0600 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR thorn ENCODING 249 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 3800 3800 3800 3800 3fe0 3ff0 3878 3838 3838 3838 3838 3878 3ff0 3fe0 3800 3800 3800 3800 0000 0000 ENDCHAR STARTCHAR keyleft ENCODING 250 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 03c0 07e0 0e70 0c3c 0c3c 0e70 07e0 03c0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR keyright ENCODING 251 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffc fffc 0f3c 0f3c 0f3c 003c 003c 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR box4 ENCODING 252 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 fffc fffc c00c c00c c0cc c1cc c3cc c7cc cecc cccc cfcc cfcc c0cc c0cc c00c c00c fffc fffc 0000 0000 ENDCHAR STARTCHAR underA ENCODING 253 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0300 0780 0fc0 0cc0 0cc0 0cc0 0fc0 0fc0 0cc0 0cc0 0000 0000 fffc fffc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR magcard ENCODING 254 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 fffc fffc c00c c00c c00c c00c fffc fffc c00c c00c fffc fffc 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR boxhuman ENCODING 255 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 fffc fffc c78c cfcc cccc cccc cfcc c78c fffc fffc c30c c30c c30c c78c cfcc dcec f87c f03c fffc fffc 0000 0000 ENDCHAR STARTCHAR apl_space ENCODING 272 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR apl_bracketright ENCODING 316 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 0fe0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 0fe0 0fe0 0000 0000 0000 0000 ENDCHAR STARTCHAR apl_bracketleft ENCODING 328 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0fe0 0fe0 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0e00 0fe0 0fe0 0000 0000 0000 0000 ENDCHAR STARTCHAR apl_stile ENCODING 347 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR apl_2vertical ENCODING 384 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 ENDCHAR STARTCHAR apl_2horizontal ENCODING 385 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 fffc fffc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffc fffc 0000 0000 ENDCHAR STARTCHAR apl_leftvbar ENCODING 386 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 ENDCHAR STARTCHAR apl_rightvbar ENCODING 387 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 0038 ENDCHAR STARTCHAR apl_midvbar ENCODING 388 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR apl_leftsolid ENCODING 393 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00 ENDCHAR STARTCHAR apl_rightsolid ENCODING 394 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc 01fc ENDCHAR STARTCHAR apl_topsolid ENCODING 395 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR apl_bottomsolid ENCODING 396 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc ENDCHAR STARTCHAR apl_solid ENCODING 397 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc fffc ENDCHAR STARTCHAR apl_midhbar ENCODING 402 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffc fffc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR apl_lowerleft ENCODING 419 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 03c0 03fc 01fc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR apl_upperleft ENCODING 420 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 01fc 03fc 03c0 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR apl_leftjoin ENCODING 421 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 03fc 03fc 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR apl_bottomjoin ENCODING 422 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 fffc fffc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR apl_intersect ENCODING 427 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 fffc fffc 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR apl_lowerright ENCODING 428 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 0780 ff80 ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR apl_upperright ENCODING 429 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ff00 ff80 0780 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR apl_rightjoin ENCODING 430 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ff80 ff80 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR apl_topjoin ENCODING 431 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffc fffc 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR dec_solid ENCODING 512 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 0fe0 ENDCHAR STARTCHAR dec_filled_circle ENCODING 513 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 03c0 07e0 0ff0 0ff0 0ff0 07e0 03c0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_halftone_block ENCODING 514 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP aaa8 5554 aaa8 5554 aaa8 5554 aaa8 5554 aaa8 5554 aaa8 5554 aaa8 5554 aaa8 5554 aaa8 5554 aaa8 5554 aaa8 5554 aaa8 5554 ENDCHAR STARTCHAR dec_ht ENCODING 515 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 7700 7700 7700 7700 7f00 7f00 7700 7700 7700 7700 0000 0000 03f8 03f8 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 0000 ENDCHAR STARTCHAR dec_ff ENCODING 516 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 7f00 7f00 7000 7000 7e00 7e00 7000 7000 7000 7000 0000 0000 03f8 03f8 0380 0380 03f0 03f0 0380 0380 0380 0380 0000 ENDCHAR STARTCHAR dec_cr ENCODING 517 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 3e00 7f00 7f00 7000 7000 7000 7000 7f00 7f00 3e00 0000 0000 03f0 03f8 03b8 03b8 03f0 03e0 03f0 03f8 03b8 03b8 0000 ENDCHAR STARTCHAR dec_lf ENCODING 518 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 7000 7000 7000 7000 7000 7000 7000 7000 7f00 7f00 0000 0000 03f8 03f8 0380 0380 03f0 03f0 0380 0380 0380 0380 0000 ENDCHAR STARTCHAR dec_degree ENCODING 519 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 07c0 0fe0 0ee0 0ee0 0fe0 07c0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_plusminus ENCODING 520 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 0380 0380 0380 3ff8 3ff8 0380 0380 0380 0380 0000 0000 3ff8 3ff8 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_nl ENCODING 521 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 7380 7b80 7b80 7f80 7f80 7f80 7780 7780 7380 7380 0000 0000 0380 0380 0380 0380 0380 0380 0380 0380 03f8 03f8 0000 ENDCHAR STARTCHAR dec_vt ENCODING 522 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 7380 7380 7380 7380 7380 7380 7f80 3f00 1e00 0c00 0000 0000 03f8 03f8 00e0 00e0 00e0 00e0 00e0 00e0 00e0 00e0 0000 ENDCHAR STARTCHAR dec_lowerright ENCODING 523 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 0780 ff80 ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_upperright ENCODING 524 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ff00 ff80 0780 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR dec_upperleft ENCODING 525 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 01fc 03fc 03c0 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR dec_lowerleft ENCODING 526 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 03c0 03fc 01fc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_intersect ENCODING 527 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 fffc fffc 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR dec_hbar1 ENCODING 528 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 fffc fffc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_hbar2 ENCODING 529 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 fffc fffc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_hbar3 ENCODING 530 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffc fffc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_hbar4 ENCODING 531 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffc fffc 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_hbar5 ENCODING 532 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffc fffc 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_leftjoin ENCODING 533 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 03fc 03fc 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR dec_rightjoin ENCODING 534 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ff80 ff80 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR dec_bottomjoin ENCODING 535 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 fffc fffc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_topjoin ENCODING 536 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fffc fffc 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR dec_vbar ENCODING 537 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR dec_notgreater ENCODING 538 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 00e0 01e0 03c0 0780 0f00 1e00 3c00 3c00 1e00 0f00 0780 03c0 01e0 00e0 0000 0000 7ff0 7ff0 0000 0000 ENDCHAR STARTCHAR dec_notless ENCODING 539 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0e00 0f00 0780 03c0 01e0 00f0 0078 0078 00f0 01e0 03c0 0780 0f00 0e00 0000 0000 1ffc 1ffc 0000 0000 ENDCHAR STARTCHAR dec_pi ENCODING 540 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 7ffc 7ffc 1c70 1c70 1c70 1c70 1c70 1c70 1c70 3c70 3c70 3870 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_notequal ENCODING 541 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0038 0038 0078 00f0 00e0 3ff8 3ff8 03c0 0380 3ff8 3ff8 0f00 0e00 0e00 1e00 1c00 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_sterling ENCODING 542 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0380 07c0 0fe0 0ee0 0e00 0e00 3fe0 3fe0 0e00 0e00 0e00 0e00 0e38 1f78 3ff0 3be0 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR dec_periodcentered ENCODING 543 SWIDTH 563 0 DWIDTH 14 0 BBX 14 24 0 -6 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0380 0380 0380 0380 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR ENDFONT ibm-3270-3.3.10ga4/x3270/Cme.h0000644000175000017500000000740411254565667014644 0ustar bastianbastian/* * (from) $XConsortium: Sme.h,v 1.4 89/12/11 15:20:09 kit Exp $ * * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * Copyright 1989 Massachusetts Institute of Technology * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name of M.I.T. not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. M.I.T. makes no representations about the * suitability of this software for any purpose. It is provided "as is" * without express or implied warranty. * * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T. * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* * Cme.h - Public Header file for Cme object. * (from) Sme.h - Public Header file for Sme object. * * This is the public header file for the Athena Cme object. * It is intended to be used with the complex menu widget. * * Date: April 3, 1989 * * By: Chris D. Peterson * MIT X Consortium * kit@expo.lcs.mit.edu */ #ifndef _Cme_h #define _Cme_h #include /**************************************************************** * * Cme Object * ****************************************************************/ /* Complex Menu Entry Resources: Name Class RepType Default Value ---- ----- ------- ------------- callback Callback Pointer NULL destroyCallback Callback Pointer NULL height Height Dimension 0 sensitive Sensitive Boolean True width Width Dimension 0 x Position Position 0n y Position Position 0 */ typedef struct _CmeClassRec* CmeObjectClass; typedef struct _CmeRec* CmeObject; extern WidgetClass cmeObjectClass; #endif /* _Cme_h */ ibm-3270-3.3.10ga4/x3270/ft_dftc.h0000644000175000017500000000335411254565704015541 0ustar bastianbastian/* * Copyright (c) 1996-2009, Paul Mattes. * Copyright (c) 1995, Dick Altenbern. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes, Dick Altenbern nor the names of * their contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES AND DICK ALTENBERN "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES OR DICK ALTENBERN BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ extern void ft_dft_data(unsigned char *data, int length); extern void dft_read_modified(void); extern void set_dft_buffersize(void); ibm-3270-3.3.10ga4/x3270/install-sh0000755000175000017500000001267111254565704015765 0ustar bastianbastian#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else : fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=$mkdirprog fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then : else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else : fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else : fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else : fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else : fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 ibm-3270-3.3.10ga4/x3270/CmeBSB.h0000644000175000017500000001135311254565667015171 0ustar bastianbastian/* * (from) $XConsortium: SmeBSB.h,v 1.5 89/12/11 15:20:14 kit Exp $ * * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * Copyright 1989 Massachusetts Institute of Technology * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name of M.I.T. not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. M.I.T. makes no representations about the * suitability of this software for any purpose. It is provided "as is" * without express or implied warranty. * * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T. * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* * CmeBSB.h - Public Header file for CmeBSB object. * (from) SmeBSB.h - Public Header file for SmeBSB object. * * This is the public header file for the Athena BSB Cme object. * It is intended to be used with the complex menu widget. This object * provides bitmap - string - bitmap style entries. * * Date: April 3, 1989 * * By: Chris D. Peterson * MIT X Consortium * kit@expo.lcs.mit.edu */ #ifndef _CmeBSB_h #define _CmeBSB_h #include #include "Cme.h" /**************************************************************** * * CmeBSB object * ****************************************************************/ /* BSB Menu Entry Resources: Name Class RepType Default Value ---- ----- ------- ------------- callback Callback Callback NULL destroyCallback Callback Pointer NULL font Font XFontStruct * XtDefaultFont foreground Foreground Pixel XtDefaultForeground height Height Dimension 0 label Label String Name of entry leftBitmap LeftBitmap Pixmap None leftMargin HorizontalMargins Dimension 4 rightBitmap RightBitmap Pixmap None rightMargin HorizontalMargins Dimension 4 sensitive Sensitive Boolean True vertSpace VertSpace int 25 width Width Dimension 0 x Position Position 0n y Position Position 0 */ typedef struct _CmeBSBClassRec *CmeBSBObjectClass; typedef struct _CmeBSBRec *CmeBSBObject; extern WidgetClass cmeBSBObjectClass; #define XtNleftBitmap "leftBitmap" #define XtNleftMargin "leftMargin" #define XtNrightBitmap "rightBitmap" #define XtNrightMargin "rightMargin" #define XtNvertSpace "vertSpace" #define XtCLeftBitmap "LeftBitmap" #define XtCHorizontalMargins "HorizontalMargins" #define XtCRightBitmap "RightBitmap" #define XtCVertSpace "VertSpace" #endif /* _CmeBSB_h */ ibm-3270-3.3.10ga4/x3270/utilc.h0000644000175000017500000000644711256026610015244 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * utilc.h * Global declarations for util.c. */ extern void add_resource(const char *name, const char *value); extern char *ctl_see(int c); extern char *do_subst(const char *s, Boolean do_vars, Boolean do_tilde); extern void fcatv(FILE *f, char *s); extern const char *get_message(const char *key); extern char *get_fresource(const char *fmt, ...) printflike(1, 2); extern char *get_resource(const char *name); extern char *scatv(const char *s, char *buf, size_t len); extern int split_dbcs_resource(const char *value, char sep, char **part1, char **part2); extern int split_dresource(char **st, char **left, char **right); extern int split_lresource(char **st, char **value); extern char *strip_whitespace(const char *s); extern char *xs_buffer(const char *fmt, ...) printflike(1, 2); extern void xs_error(const char *fmt, ...) printflike(1, 2); extern void xs_warning(const char *fmt, ...) printflike(1, 2); extern unsigned long AddInput(int, void (*)(void)); extern unsigned long AddExcept(int, void (*)(void)); extern unsigned long AddOutput(int, void (*)(void)); extern void RemoveInput(unsigned long); extern unsigned long AddTimeOut(unsigned long msec, void (*fn)(void)); extern void RemoveTimeOut(unsigned long cookie); extern KeySym StringToKeysym(char *s); extern char *KeysymToString(KeySym k); extern int read_resource_file(const char *filename, Boolean fatal); extern Boolean split_hier(char *label, char **base, char ***parents); typedef struct { char *buf; int alloc_len; int cur_len; } rpf_t; extern void rpf_init(rpf_t *r); extern void rpf_reset(rpf_t *r); extern void rpf(rpf_t *r, char *fmt, ...) printflike(2, 3); extern void rpf_free(rpf_t *r); extern const char *build_options(void); extern void dump_version(void); extern const char *display_scale(double d, char *buf, size_t buflen); ibm-3270-3.3.10ga4/x3270/aboutc.h0000644000175000017500000000325611254565667015416 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * aboutc.h * Global declarations for about.c. */ extern void popup_about_copyright(void); extern void popup_about_config(void); extern void popup_about_status(void); ibm-3270-3.3.10ga4/x3270/CmeLineP.h0000644000175000017500000001065111254565667015572 0ustar bastianbastian/* * (from) $XConsortium: SmeLineP.h,v 1.3 89/12/11 15:20:20 kit Exp $ * * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Paul Mattes nor his contributors may be used * to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * Copyright 1989 Massachusetts Institute of Technology * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name of M.I.T. not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. M.I.T. makes no representations about the * suitability of this software for any purpose. It is provided "as is" * without express or implied warranty. * * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T. * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * Author: Chris D. Peterson, MIT X Consortium */ /* * CmeLineP.h - Private definitions for CmeLine widget * (from) SmeLineP.h - Private definitions for SmeLine widget * */ #ifndef _XawCmeLineP_h #define _XawCmeLineP_h /*********************************************************************** * * CmeLine Widget Private Data * ***********************************************************************/ #include "CmeP.h" #include "CmeLine.h" /************************************************************ * * New fields for the CmeLine widget class record. * ************************************************************/ typedef struct _CmeLineClassPart { XtPointer extension; } CmeLineClassPart; /* Full class record declaration */ typedef struct _CmeLineClassRec { RectObjClassPart rect_class; CmeClassPart cme_class; CmeLineClassPart cme_line_class; } CmeLineClassRec; extern CmeLineClassRec cmeLineClassRec; /* New fields for the CmeLine widget record */ typedef struct { /* resources */ Pixel foreground; /* Foreground color. */ Pixmap stipple; /* Line Stipple. */ Dimension line_width; /* Width of the line. */ /* private data. */ GC gc; /* Graphics context for drawing line. */ } CmeLinePart; /**************************************************************** * * Full instance record declaration * ****************************************************************/ typedef struct _CmeLineRec { ObjectPart object; RectObjPart rectangle; CmePart cme; CmeLinePart cme_line; } CmeLineRec; /************************************************************ * * Private declarations. * ************************************************************/ #endif /* _XawCmeLineP_h */ ibm-3270-3.3.10ga4/x3270/tablesc.h0000644000175000017500000000334711254565704015547 0ustar bastianbastian/* * Copyright (c) 1995-2009, Paul Mattes. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the names of Paul Mattes nor the names of his contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * tablesc.h * Global declarations for tables.c. */ extern const unsigned char asc2cg0[256]; extern const unsigned char ebc2cg0[256]; extern const unsigned char ebc2asc0[256]; extern const unsigned char asc2ebc0[256];

meaning "when the Compose key is pressed, followed by keysym1 and keysym2 (in either order), interpret it as keysym3." The definitions are case-sensitive.